diff --git a/.yarn/releases/yarn.mjs b/.yarn/releases/yarn.mjs index 71f3d8c56..c80bbb250 100755 --- a/.yarn/releases/yarn.mjs +++ b/.yarn/releases/yarn.mjs @@ -95,16 +95,16 @@ ${t.map(r=>` `)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}};Ife.FakeFS=hct;var wjt=class extends hct{constructor(){super(Lbn.ppath)}};Ife.BasePortableFakeFS=wjt;function i7s(e){let t=e.match(/\r?\n/g);if(t===null)return r7s.EOL;let r=t.filter(a=>a===`\r `).length,n=t.length-r;return r>n?`\r `:` -`}function Tjt(e,t){return t.replace(/\r?\n/g,i7s(e))}});var Yq=H(mct=>{"use strict";Object.defineProperty(mct,"__esModule",{value:!0});mct.ProxiedFS=void 0;var s7s=hfe(),Rjt=class extends s7s.FakeFS{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};mct.ProxiedFS=Rjt});var Vbn=H(Cct=>{"use strict";Object.defineProperty(Cct,"__esModule",{value:!0});Cct.AliasFS=void 0;var o7s=Yq(),Njt=class extends o7s.ProxiedFS{constructor(t,{baseFs:r,pathUtils:n}){super(n),this.target=t,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};Cct.AliasFS=Njt});var mfe=H(_ct=>{"use strict";Object.defineProperty(_ct,"__esModule",{value:!0});_ct.NodeFS=void 0;var a7s=(Pa(),vi(Va)),c7s=a7s.__importDefault(wt("fs")),l7s=hfe(),ku=L9();function Pbn(e){let t=e;return typeof e.path=="string"&&(t.path=ku.npath.toPortablePath(e.path)),t}var Djt=class extends l7s.BasePortableFakeFS{constructor(t=c7s.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return ku.PortablePath.root}resolve(t){return ku.ppath.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(ku.npath.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(ku.npath.fromPortablePath(t),r):this.realFs.opendirSync(ku.npath.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(ku.npath.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}realpathSync(t){return ku.npath.toPortablePath(this.realFs.realpathSync(ku.npath.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(ku.npath.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(ku.npath.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(ku.npath.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(ku.npath.fromPortablePath(t),r):this.realFs.statSync(ku.npath.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(ku.npath.fromPortablePath(t),r):this.realFs.lstatSync(ku.npath.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(ku.npath.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(ku.npath.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(ku.npath.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(ku.npath.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(ku.npath.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(ku.npath.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(ku.npath.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(ku.npath.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?ku.npath.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?ku.npath.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Pbn)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(ku.npath.toPortablePath)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(Pbn):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(ku.npath.toPortablePath):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r):this.realFs.readdirSync(ku.npath.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}readlinkSync(t){return ku.npath.toPortablePath(this.realFs.readlinkSync(ku.npath.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(ku.npath.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(ku.npath.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(ku.npath.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(ku.npath.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}};_ct.NodeFS=Djt});var Wbn=H(yct=>{"use strict";Object.defineProperty(yct,"__esModule",{value:!0});yct.CwdFS=void 0;var u7s=mfe(),g7s=Yq(),kjt=L9(),xjt=class extends g7s.ProxiedFS{constructor(t,{baseFs:r=new u7s.NodeFS}={}){super(kjt.ppath),this.target=this.pathUtils.normalize(t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?kjt.ppath.normalize(t):this.baseFs.resolve(kjt.ppath.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};yct.CwdFS=xjt});var Mbn=H(Ect=>{"use strict";Object.defineProperty(Ect,"__esModule",{value:!0});Ect.JailFS=void 0;var A7s=mfe(),d7s=Yq(),bct=L9(),Obn=bct.PortablePath.root,Gjt=class extends d7s.ProxiedFS{constructor(t,{baseFs:r=new A7s.NodeFS}={}){super(bct.ppath),this.target=this.pathUtils.resolve(bct.PortablePath.root,t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(bct.PortablePath.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let r=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(Obn,t));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(Obn,this.pathUtils.relative(this.target,t))}};Ect.JailFS=Gjt});var Hbn=H(Sct=>{"use strict";Object.defineProperty(Sct,"__esModule",{value:!0});Sct.LazyFS=void 0;var p7s=Yq(),Fjt=class extends p7s.ProxiedFS{constructor(t,r){super(r),this.instance=null,this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};Sct.LazyFS=Fjt});var Ybn=H(wct=>{"use strict";Object.defineProperty(wct,"__esModule",{value:!0});wct.MountFS=void 0;var f7s=(Pa(),vi(Va)),ISe=wt("fs"),I7s=hfe(),h7s=mfe(),vct=Bjt(),V9=f7s.__importStar(lct()),Bct=L9(),P9=4278190080,Zjt=class extends I7s.BasePortableFakeFS{constructor({baseFs:t=new h7s.NodeFS,filter:r=null,magicByte:n=42,maxOpenFiles:a=1/0,useCache:o=!0,maxAge:l=5e3,typeCheck:A=ISe.constants.S_IFREG,getMountPoint:f,factoryPromise:I,factorySync:C}){if(Math.floor(n)!==n||!(n>1&&n<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super(),this.fdMap=new Map,this.nextFd=3,this.isMount=new Set,this.notMount=new Set,this.realPaths=new Map,this.limitOpenFilesTimeout=null,this.baseFs=t,this.mountInstances=o?new Map:null,this.factoryPromise=I,this.factorySync=C,this.filter=r,this.getMountPoint=f,this.magic=n<<24,this.maxAge=l,this.maxOpenFiles=a,this.typeCheck=A}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.saveAndClose?.(),this.mountInstances.delete(t)}discardAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.discardAndClose?.(),this.mountInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,r){let n=this.nextFd++|this.magic;return this.fdMap.set(n,[t,r]),n}async openPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,r,n),async(a,{subPath:o})=>this.remapFd(a,await a.openPromise(o,r,n)))}openSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,r,n),(a,{subPath:o})=>this.remapFd(a,a.openSync(o,r,n)))}async opendirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,r),async(n,{subPath:a})=>await n.opendirPromise(a,r),{requireSubpath:!1})}opendirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,r),(n,{subPath:a})=>n.opendirSync(a,r),{requireSubpath:!1})}async readPromise(t,r,n,a,o){if((t&P9)!==this.magic)return await this.baseFs.readPromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("read");let[A,f]=l;return await A.readPromise(f,r,n,a,o)}readSync(t,r,n,a,o){if((t&P9)!==this.magic)return this.baseFs.readSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("readSync");let[A,f]=l;return A.readSync(f,r,n,a,o)}async writePromise(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("write");let[A,f]=l;return typeof r=="string"?await A.writePromise(f,r,n):await A.writePromise(f,r,n,a,o)}writeSync(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("writeSync");let[A,f]=l;return typeof r=="string"?A.writeSync(f,r,n):A.writeSync(f,r,n,a,o)}async closePromise(t){if((t&P9)!==this.magic)return await this.baseFs.closePromise(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("close");this.fdMap.delete(t);let[n,a]=r;return await n.closePromise(a)}closeSync(t){if((t&P9)!==this.magic)return this.baseFs.closeSync(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("closeSync");this.fdMap.delete(t);let[n,a]=r;return n.closeSync(a)}createReadStream(t,r){return t===null?this.baseFs.createReadStream(t,r):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,r),(n,{archivePath:a,subPath:o})=>{let l=n.createReadStream(o,r);return l.path=Bct.npath.fromPortablePath(this.pathUtils.join(a,o)),l})}createWriteStream(t,r){return t===null?this.baseFs.createWriteStream(t,r):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,r),(n,{subPath:a})=>n.createWriteStream(a,r))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,await r.realpathPromise(a)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,r.realpathSync(a)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(r,{subPath:n})=>await r.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(r,{subPath:n})=>r.existsSync(n))}async accessPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,r),async(n,{subPath:a})=>await n.accessPromise(a,r))}accessSync(t,r){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,r),(n,{subPath:a})=>n.accessSync(a,r))}async statPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,r),async(n,{subPath:a})=>await n.statPromise(a,r))}statSync(t,r){return this.makeCallSync(t,()=>this.baseFs.statSync(t,r),(n,{subPath:a})=>n.statSync(a,r))}async fstatPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstat");let[a,o]=n;return a.fstatPromise(o,r)}fstatSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstatSync");let[a,o]=n;return a.fstatSync(o,r)}async lstatPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,r),async(n,{subPath:a})=>await n.lstatPromise(a,r))}lstatSync(t,r){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,r),(n,{subPath:a})=>n.lstatSync(a,r))}async fchmodPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmod");let[a,o]=n;return a.fchmodPromise(o,r)}fchmodSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmodSync");let[a,o]=n;return a.fchmodSync(o,r)}async chmodPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,r),async(n,{subPath:a})=>await n.chmodPromise(a,r))}chmodSync(t,r){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,r),(n,{subPath:a})=>n.chmodSync(a,r))}async fchownPromise(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownPromise(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchown");let[o,l]=a;return o.fchownPromise(l,r,n)}fchownSync(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownSync(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchownSync");let[o,l]=a;return o.fchownSync(l,r,n)}async chownPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,r,n),async(a,{subPath:o})=>await a.chownPromise(o,r,n))}chownSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,r,n),(a,{subPath:o})=>a.chownSync(o,r,n))}async renamePromise(t,r){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(t,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:a})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(a,l)}))}renameSync(t,r){return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(t,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:a})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(a,l)}))}async copyFilePromise(t,r,n=0){let a=async(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&await this.existsPromise(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=await o.readFilePromise(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}await A.writeFilePromise(f,I)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(t,r,n),async(o,{subPath:l})=>await a(this.baseFs,t,o,l)),async(o,{subPath:l})=>await this.makeCallPromise(r,async()=>await a(o,l,this.baseFs,r),async(A,{subPath:f})=>o!==A?await a(o,l,A,f):await o.copyFilePromise(l,f,n)))}copyFileSync(t,r,n=0){let a=(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&this.existsSync(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=o.readFileSync(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}A.writeFileSync(f,I)};return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(t,r,n),(o,{subPath:l})=>a(this.baseFs,t,o,l)),(o,{subPath:l})=>this.makeCallSync(r,()=>a(o,l,this.baseFs,r),(A,{subPath:f})=>o!==A?a(o,l,A,f):o.copyFileSync(l,f,n)))}async appendFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,r,n),async(a,{subPath:o})=>await a.appendFilePromise(o,r,n))}appendFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,r,n),(a,{subPath:o})=>a.appendFileSync(o,r,n))}async writeFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,r,n),async(a,{subPath:o})=>await a.writeFilePromise(o,r,n))}writeFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,r,n),(a,{subPath:o})=>a.writeFileSync(o,r,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(r,{subPath:n})=>await r.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(r,{subPath:n})=>r.unlinkSync(n))}async utimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,r,n),async(a,{subPath:o})=>await a.utimesPromise(o,r,n))}utimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,r,n),(a,{subPath:o})=>a.utimesSync(o,r,n))}async lutimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.lutimesPromise(t,r,n),async(a,{subPath:o})=>await a.lutimesPromise(o,r,n))}lutimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.lutimesSync(t,r,n),(a,{subPath:o})=>a.lutimesSync(o,r,n))}async mkdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,r),async(n,{subPath:a})=>await n.mkdirPromise(a,r))}mkdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,r),(n,{subPath:a})=>n.mkdirSync(a,r))}async rmdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,r),async(n,{subPath:a})=>await n.rmdirPromise(a,r))}rmdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,r),(n,{subPath:a})=>n.rmdirSync(a,r))}async rmPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmPromise(t,r),async(n,{subPath:a})=>await n.rmPromise(a,r))}rmSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmSync(t,r),(n,{subPath:a})=>n.rmSync(a,r))}async linkPromise(t,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(t,r),async(n,{subPath:a})=>await n.linkPromise(t,a))}linkSync(t,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(t,r),(n,{subPath:a})=>n.linkSync(t,a))}async symlinkPromise(t,r,n){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(t,r,n),async(a,{subPath:o})=>await a.symlinkPromise(t,o))}symlinkSync(t,r,n){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(t,r,n),(a,{subPath:o})=>a.symlinkSync(t,o))}async readFilePromise(t,r){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,r),async(n,{subPath:a})=>await n.readFilePromise(a,r))}readFileSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,r),(n,{subPath:a})=>n.readFileSync(a,r))}async readdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,r),async(n,{subPath:a})=>await n.readdirPromise(a,r),{requireSubpath:!1})}readdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,r),(n,{subPath:a})=>n.readdirSync(a,r),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(r,{subPath:n})=>await r.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(r,{subPath:n})=>r.readlinkSync(n))}async truncatePromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,r),async(n,{subPath:a})=>await n.truncatePromise(a,r))}truncateSync(t,r){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,r),(n,{subPath:a})=>n.truncateSync(a,r))}async ftruncatePromise(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncatePromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncate");let[a,o]=n;return a.ftruncatePromise(o,r)}ftruncateSync(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncateSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncateSync");let[a,o]=n;return a.ftruncateSync(o,r)}watch(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,r,n),(a,{subPath:o})=>a.watch(o,r,n))}watchFile(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,r,n),()=>(0,vct.watchFile)(this,t,r,n))}unwatchFile(t,r){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,r),()=>(0,vct.unwatchFile)(this,t,r))}async makeCallPromise(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return await r();let o=this.resolve(t),l=this.findMount(o);return l?a&&l.subPath==="/"?await r():await this.getMountPromise(l.archivePath,async A=>await n(A,l)):await r()}makeCallSync(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return r();let o=this.resolve(t),l=this.findMount(o);return!l||a&&l.subPath==="/"?r():this.getMountSync(l.archivePath,A=>n(A,l))}findMount(t){if(this.filter&&!this.filter.test(t))return null;let r="";for(;;){let n=t.substring(r.length),a=this.getMountPoint(n,r);if(!a)return null;if(r=this.pathUtils.join(r,a),!this.isMount.has(r)){if(this.notMount.has(r))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(r).mode&ISe.constants.S_IFMT)!==this.typeCheck){this.notMount.add(r);continue}}catch{return null}this.isMount.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Bct.PortablePath.root,t.substring(r.length))}}}limitOpenFiles(t){if(this.mountInstances===null)return;let r=Date.now(),n=r+this.maxAge,a=t===null?0:this.mountInstances.size-t;for(let[o,{childFs:l,expiresAt:A,refCount:f}]of this.mountInstances.entries())if(!(f!==0||l.hasOpenFileHandles?.())){if(r>=A){l.saveAndClose?.(),this.mountInstances.delete(o),a-=1;continue}else if(t===null||a<=0){n=A;break}l.saveAndClose?.(),this.mountInstances.delete(o),a-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.mountInstances.size>0||t!==null)&&isFinite(n)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-r).unref())}async getMountPromise(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);if(!n){let a=await this.factoryPromise(this.baseFs,t);n=this.mountInstances.get(t),n||(n={childFs:a(),expiresAt:0,refCount:0})}this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,t))();try{return await r(n)}finally{n.saveAndClose?.()}}}getMountSync(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);return n||(n={childFs:this.factorySync(this.baseFs,t),expiresAt:0,refCount:0}),this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,r(n.childFs)}else{let n=this.factorySync(this.baseFs,t);try{return r(n)}finally{n.saveAndClose?.()}}}};wct.MountFS=Zjt});var Qbn=H(Tct=>{"use strict";Object.defineProperty(Tct,"__esModule",{value:!0});Tct.NoFS=void 0;var m7s=hfe(),C7s=L9(),Pg=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),KOe=class extends m7s.FakeFS{constructor(){super(C7s.ppath)}getExtractHint(){throw Pg()}getRealPath(){throw Pg()}resolve(){throw Pg()}async openPromise(){throw Pg()}openSync(){throw Pg()}async opendirPromise(){throw Pg()}opendirSync(){throw Pg()}async readPromise(){throw Pg()}readSync(){throw Pg()}async writePromise(){throw Pg()}writeSync(){throw Pg()}async closePromise(){throw Pg()}closeSync(){throw Pg()}createWriteStream(){throw Pg()}createReadStream(){throw Pg()}async realpathPromise(){throw Pg()}realpathSync(){throw Pg()}async readdirPromise(){throw Pg()}readdirSync(){throw Pg()}async existsPromise(t){throw Pg()}existsSync(t){throw Pg()}async accessPromise(){throw Pg()}accessSync(){throw Pg()}async statPromise(){throw Pg()}statSync(){throw Pg()}async fstatPromise(t){throw Pg()}fstatSync(t){throw Pg()}async lstatPromise(t){throw Pg()}lstatSync(t){throw Pg()}async fchmodPromise(){throw Pg()}fchmodSync(){throw Pg()}async chmodPromise(){throw Pg()}chmodSync(){throw Pg()}async fchownPromise(){throw Pg()}fchownSync(){throw Pg()}async chownPromise(){throw Pg()}chownSync(){throw Pg()}async mkdirPromise(){throw Pg()}mkdirSync(){throw Pg()}async rmdirPromise(){throw Pg()}rmdirSync(){throw Pg()}async rmPromise(){throw Pg()}rmSync(){throw Pg()}async linkPromise(){throw Pg()}linkSync(){throw Pg()}async symlinkPromise(){throw Pg()}symlinkSync(){throw Pg()}async renamePromise(){throw Pg()}renameSync(){throw Pg()}async copyFilePromise(){throw Pg()}copyFileSync(){throw Pg()}async appendFilePromise(){throw Pg()}appendFileSync(){throw Pg()}async writeFilePromise(){throw Pg()}writeFileSync(){throw Pg()}async unlinkPromise(){throw Pg()}unlinkSync(){throw Pg()}async utimesPromise(){throw Pg()}utimesSync(){throw Pg()}async lutimesPromise(){throw Pg()}lutimesSync(){throw Pg()}async readFilePromise(){throw Pg()}readFileSync(){throw Pg()}async readlinkPromise(){throw Pg()}readlinkSync(){throw Pg()}async truncatePromise(){throw Pg()}truncateSync(){throw Pg()}async ftruncatePromise(t,r){throw Pg()}ftruncateSync(t,r){throw Pg()}watch(){throw Pg()}watchFile(){throw Pg()}unwatchFile(){throw Pg()}};Tct.NoFS=KOe;KOe.instance=new KOe});var Xbn=H(Rct=>{"use strict";Object.defineProperty(Rct,"__esModule",{value:!0});Rct.PosixFS=void 0;var _7s=Yq(),Ljt=L9(),Vjt=class extends _7s.ProxiedFS{constructor(t){super(Ljt.npath),this.baseFs=t}mapFromBase(t){return Ljt.npath.fromPortablePath(t)}mapToBase(t){return Ljt.npath.toPortablePath(t)}};Rct.PosixFS=Vjt});var Jbn=H(Nct=>{"use strict";Object.defineProperty(Nct,"__esModule",{value:!0});Nct.VirtualFS=void 0;var y7s=mfe(),b7s=Yq(),$Q=L9(),E7s=/^[0-9]+$/,Pjt=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,S7s=/^([^/]+-)?[a-f0-9]+$/,Wjt=class e extends b7s.ProxiedFS{static makeVirtualPath(t,r,n){if($Q.ppath.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!$Q.ppath.basename(r).match(S7s))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=$Q.ppath.relative($Q.ppath.dirname(t),n).split("/"),l=0;for(;l{"use strict";Object.defineProperty(Dct,"__esModule",{value:!0});Dct.NodePathFS=void 0;var v7s=(Pa(),vi(Va)),Ubn=v7s.__importDefault(wt("buffer")),B7s=wt("url"),w7s=wt("util"),T7s=Yq(),R7s=L9(),Ojt=class extends T7s.ProxiedFS{constructor(t){super(R7s.npath),this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof URL)return(0,B7s.fileURLToPath)(t);if(Buffer.isBuffer(t)){let r=t.toString();if(!N7s(t,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,w7s.inspect)(t)}`)}};Dct.NodePathFS=Ojt;function N7s(e,t){return typeof Ubn.default.isUtf8<"u"?Ubn.default.isUtf8(e):Buffer.byteLength(t)===e.byteLength}});var eEn=H(Gct=>{"use strict";var jbn,zbn,qbn,$bn;Object.defineProperty(Gct,"__esModule",{value:!0});Gct.FileHandle=void 0;var D7s=wt("readline"),yZ=Symbol("kBaseFs"),zse=Symbol("kFd"),qse=Symbol("kClosePromise"),kct=Symbol("kCloseResolve"),xct=Symbol("kCloseReject"),hSe=Symbol("kRefs"),eX=Symbol("kRef"),tX=Symbol("kUnref"),Mjt=class{constructor(t,r){this[jbn]=1,this[zbn]=void 0,this[qbn]=void 0,this[$bn]=void 0,this[yZ]=r,this[zse]=t}get fd(){return this[zse]}async appendFile(t,r){try{this[eX](this.appendFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;return await this[yZ].appendFilePromise(this.fd,t,n?{encoding:n}:void 0)}finally{this[tX]()}}async chown(t,r){try{return this[eX](this.chown),await this[yZ].fchownPromise(this.fd,t,r)}finally{this[tX]()}}async chmod(t){try{return this[eX](this.chmod),await this[yZ].fchmodPromise(this.fd,t)}finally{this[tX]()}}createReadStream(t){return this[yZ].createReadStream(null,{...t,fd:this.fd})}createWriteStream(t){return this[yZ].createWriteStream(null,{...t,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(t,r,n,a){try{this[eX](this.read);let o,l;return ArrayBuffer.isView(t)?typeof r=="object"&&r!==null?(o=t,l=r?.offset??0,n=r?.length??o.byteLength-l,a=r?.position??null):(o=t,l=r??0,n??=0):(o=t?.buffer??Buffer.alloc(16384),l=t?.offset??0,n=t?.length??o.byteLength-l,a=t?.position??null),n===0?{bytesRead:n,buffer:o}:{bytesRead:await this[yZ].readPromise(this.fd,Buffer.isBuffer(o)?o:Buffer.from(o.buffer,o.byteOffset,o.byteLength),l,n,a),buffer:o}}finally{this[tX]()}}async readFile(t){try{this[eX](this.readFile);let r=(typeof t=="string"?t:t?.encoding)??void 0;return await this[yZ].readFilePromise(this.fd,r)}finally{this[tX]()}}readLines(t){return(0,D7s.createInterface)({input:this.createReadStream(t),crlfDelay:1/0})}async stat(t){try{return this[eX](this.stat),await this[yZ].fstatPromise(this.fd,t)}finally{this[tX]()}}async truncate(t){try{return this[eX](this.truncate),await this[yZ].ftruncatePromise(this.fd,t)}finally{this[tX]()}}utimes(t,r){throw new Error("Method not implemented.")}async writeFile(t,r){try{this[eX](this.writeFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;await this[yZ].writeFilePromise(this.fd,t,n)}finally{this[tX]()}}async write(...t){try{if(this[eX](this.write),ArrayBuffer.isView(t[0])){let[r,n,a,o]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n??void 0,a??void 0,o??void 0),buffer:r}}else{let[r,n,a]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n,a),buffer:r}}}finally{this[tX]()}}async writev(t,r){try{this[eX](this.writev);let n=0;if(typeof r<"u")for(let a of t){let o=await this.write(a,void 0,void 0,r);n+=o.bytesWritten,r+=o.bytesWritten}else for(let a of t){let o=await this.write(a);n+=o.bytesWritten}return{buffers:t,bytesWritten:n}}finally{this[tX]()}}readv(t,r){throw new Error("Method not implemented.")}close(){if(this[zse]===-1)return Promise.resolve();if(this[qse])return this[qse];if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[qse]=this[yZ].closePromise(t).finally(()=>{this[qse]=void 0})}else this[qse]=new Promise((t,r)=>{this[kct]=t,this[xct]=r}).finally(()=>{this[qse]=void 0,this[xct]=void 0,this[kct]=void 0});return this[qse]}[(jbn=hSe,zbn=qse,qbn=kct,$bn=xct,eX)](t){if(this[zse]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=t.name,r}this[hSe]++}[tX](){if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[yZ].closePromise(t).then(this[kct],this[xct])}}};Gct.FileHandle=Mjt});var iEn=H(Fct=>{"use strict";Object.defineProperty(Fct,"__esModule",{value:!0});Fct.patchFs=nEn;Fct.extendFs=G7s;var jOe=wt("util"),k7s=Kbn(),tEn=eEn(),x7s=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),rEn=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function nEn(e,t){t=new k7s.NodePathFS(t);let r=(n,a,o)=>{let l=n[a];n[a]=o,typeof l?.[jOe.promisify.custom]<"u"&&(o[jOe.promisify.custom]=l[jOe.promisify.custom])};{r(e,"exists",(n,...a)=>{let l=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{t.existsPromise(n).then(A=>{l(A)},()=>{l(!1)})})}),r(e,"read",(...n)=>{let[a,o,l,A,f,I]=n;if(n.length<=3){let C={};n.length<3?I=n[1]:(C=n[1],I=n[2]),{buffer:o=Buffer.alloc(16384),offset:l=0,length:A=o.byteLength,position:f}=C}if(l==null&&(l=0),A|=0,A===0){process.nextTick(()=>{I(null,0,o)});return}f==null&&(f=-1),process.nextTick(()=>{t.readPromise(a,o,l,A,f).then(C=>{I(null,C,o)},C=>{I(C,0,o)})})});for(let n of rEn){let a=n.replace(/Promise$/,"");if(typeof e[a]>"u")continue;let o=t[n];if(typeof o>"u")continue;r(e,a,(...A)=>{let I=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{o.apply(t,A).then(C=>{I(null,C)},C=>{I(C)})})})}e.realpath.native=e.realpath}{r(e,"existsSync",n=>{try{return t.existsSync(n)}catch{return!1}}),r(e,"readSync",(...n)=>{let[a,o,l,A,f]=n;return n.length<=3&&({offset:l=0,length:A=o.byteLength,position:f}=n[2]||{}),l==null&&(l=0),A|=0,A===0?0:(f==null&&(f=-1),t.readSync(a,o,l,A,f))});for(let n of x7s){let a=n;if(typeof e[a]>"u")continue;let o=t[n];typeof o>"u"||r(e,a,o.bind(t))}e.realpathSync.native=e.realpathSync}{let n=e.promises;for(let a of rEn){let o=a.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let l=t[a];typeof l>"u"||a!=="open"&&r(n,o,(A,...f)=>A instanceof tEn.FileHandle?A[o].apply(A,f):l.call(t,A,...f))}r(n,"open",async(...a)=>{let o=await t.openPromise(...a);return new tEn.FileHandle(o,t)})}e.read[jOe.promisify.custom]=async(n,a,...o)=>({bytesRead:await t.readPromise(n,a,...o),buffer:a}),e.write[jOe.promisify.custom]=async(n,a,...o)=>({bytesWritten:await t.writePromise(n,a,...o),buffer:a})}function G7s(e,t){let r=Object.create(e);return nEn(r,t),r}});var aEn=H($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});$se.xfs=void 0;var F7s=(Pa(),vi(Va)),Z7s=F7s.__importDefault(wt("os")),L7s=mfe(),zOe=L9();function sEn(e){let t=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${e}${t}`}var rX=new Set,Hjt=null;function oEn(){if(Hjt)return Hjt;let e=zOe.npath.toPortablePath(Z7s.default.tmpdir()),t=$se.xfs.realpathSync(e);return process.once("exit",()=>{$se.xfs.rmtempSync()}),Hjt={tmpdir:e,realTmpdir:t}}$se.xfs=Object.assign(new L7s.NodeFS,{detachTemp(e){rX.delete(e)},mktempSync(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{this.mkdirSync(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return e(a)}finally{if(rX.has(a)){rX.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{await this.mkdirPromise(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return await e(a)}finally{if(rX.has(a)){rX.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(rX.values()).map(async e=>{try{await $se.xfs.removePromise(e,{maxRetries:0}),rX.delete(e)}catch{}}))},rmtempSync(){for(let e of rX)try{$se.xfs.removeSync(e),rX.delete(e)}catch{}}})});var no=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.xfs=md.extendFs=md.patchFs=md.VirtualFS=md.ProxiedFS=md.PosixFS=md.NodeFS=md.NoFS=md.MountFS=md.LazyFS=md.JailFS=md.CwdFS=md.BasePortableFakeFS=md.FakeFS=md.AliasFS=md.ppath=md.npath=md.Filename=md.PortablePath=md.normalizeLineEndings=md.unwatchAllFiles=md.unwatchFile=md.watchFile=md.CustomDir=md.opendir=md.setupCopyIndex=md.statUtils=md.errors=md.constants=void 0;var Yjt=(Pa(),vi(Va)),V7s=Yjt.__importStar(cct());md.constants=V7s;var P7s=Yjt.__importStar(lct());md.errors=P7s;var W7s=Yjt.__importStar(_jt());md.statUtils=W7s;var O7s=Ejt();Object.defineProperty(md,"setupCopyIndex",{enumerable:!0,get:function(){return O7s.setupCopyIndex}});var cEn=Gbn();Object.defineProperty(md,"opendir",{enumerable:!0,get:function(){return cEn.opendir}});Object.defineProperty(md,"CustomDir",{enumerable:!0,get:function(){return cEn.CustomDir}});var Qjt=Bjt();Object.defineProperty(md,"watchFile",{enumerable:!0,get:function(){return Qjt.watchFile}});Object.defineProperty(md,"unwatchFile",{enumerable:!0,get:function(){return Qjt.unwatchFile}});Object.defineProperty(md,"unwatchAllFiles",{enumerable:!0,get:function(){return Qjt.unwatchAllFiles}});var M7s=hfe();Object.defineProperty(md,"normalizeLineEndings",{enumerable:!0,get:function(){return M7s.normalizeLineEndings}});var lEn=L9();Object.defineProperty(md,"PortablePath",{enumerable:!0,get:function(){return lEn.PortablePath}});Object.defineProperty(md,"Filename",{enumerable:!0,get:function(){return lEn.Filename}});var uEn=L9();Object.defineProperty(md,"npath",{enumerable:!0,get:function(){return uEn.npath}});Object.defineProperty(md,"ppath",{enumerable:!0,get:function(){return uEn.ppath}});var H7s=Vbn();Object.defineProperty(md,"AliasFS",{enumerable:!0,get:function(){return H7s.AliasFS}});var gEn=hfe();Object.defineProperty(md,"FakeFS",{enumerable:!0,get:function(){return gEn.FakeFS}});Object.defineProperty(md,"BasePortableFakeFS",{enumerable:!0,get:function(){return gEn.BasePortableFakeFS}});var Y7s=Wbn();Object.defineProperty(md,"CwdFS",{enumerable:!0,get:function(){return Y7s.CwdFS}});var Q7s=Mbn();Object.defineProperty(md,"JailFS",{enumerable:!0,get:function(){return Q7s.JailFS}});var X7s=Hbn();Object.defineProperty(md,"LazyFS",{enumerable:!0,get:function(){return X7s.LazyFS}});var J7s=Ybn();Object.defineProperty(md,"MountFS",{enumerable:!0,get:function(){return J7s.MountFS}});var U7s=Qbn();Object.defineProperty(md,"NoFS",{enumerable:!0,get:function(){return U7s.NoFS}});var K7s=mfe();Object.defineProperty(md,"NodeFS",{enumerable:!0,get:function(){return K7s.NodeFS}});var j7s=Xbn();Object.defineProperty(md,"PosixFS",{enumerable:!0,get:function(){return j7s.PosixFS}});var z7s=Yq();Object.defineProperty(md,"ProxiedFS",{enumerable:!0,get:function(){return z7s.ProxiedFS}});var q7s=Jbn();Object.defineProperty(md,"VirtualFS",{enumerable:!0,get:function(){return q7s.VirtualFS}});var AEn=iEn();Object.defineProperty(md,"patchFs",{enumerable:!0,get:function(){return AEn.patchFs}});Object.defineProperty(md,"extendFs",{enumerable:!0,get:function(){return AEn.extendFs}});var $7s=aEn();Object.defineProperty(md,"xfs",{enumerable:!0,get:function(){return $7s.xfs}})});var hEn=H((p3l,IEn)=>{IEn.exports=fEn;fEn.sync=tzs;var dEn=wt("fs");function ezs(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{yEn.exports=CEn;CEn.sync=rzs;var mEn=wt("fs");function CEn(e,t,r){mEn.stat(e,function(n,a){r(n,n?!1:_En(a,t))})}function rzs(e,t){return _En(mEn.statSync(e),t)}function _En(e,t){return e.isFile()&&nzs(e,t)}function nzs(e,t){var r=e.mode,n=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),l=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),f=parseInt("010",8),I=parseInt("001",8),C=A|f,b=r&I||r&f&&a===l||r&A&&n===o||r&C&&o===0;return b}});var SEn=H((h3l,EEn)=>{var I3l=wt("fs"),Zct;process.platform==="win32"||global.TESTING_WINDOWS?Zct=hEn():Zct=bEn();EEn.exports=Xjt;Xjt.sync=izs;function Xjt(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,a){Xjt(e,t||{},function(o,l){o?a(o):n(l)})})}Zct(e,t||{},function(n,a){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,a=!1),r(n,a)})}function izs(e,t){try{return Zct.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Jjt=H((m3l,NEn)=>{var mSe=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",vEn=wt("path"),szs=mSe?";":":",BEn=SEn(),wEn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),TEn=(e,t)=>{let r=t.colon||szs,n=e.match(/\//)||mSe&&e.match(/\\/)?[""]:[...mSe?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],a=mSe?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=mSe?a.split(r):[""];return mSe&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:a}},REn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:a,pathExtExe:o}=TEn(e,t),l=[],A=I=>new Promise((C,b)=>{if(I===n.length)return t.all&&l.length?C(l):b(wEn(e));let E=n[I],N=/^".*"$/.test(E)?E.slice(1,-1):E,B=vEn.join(N,e),F=!N&&/^\.[\\\/]/.test(e)?e.slice(0,2)+B:B;C(f(F,I,0))}),f=(I,C,b)=>new Promise((E,N)=>{if(b===a.length)return E(A(C+1));let B=a[b];BEn(I+B,{pathExt:o},(F,Q)=>{if(!F&&Q)if(t.all)l.push(I+B);else return E(I+B);return E(f(I,C,b+1))})});return r?A(0).then(I=>r(null,I),r):A(0)},ozs=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:a}=TEn(e,t),o=[];for(let l=0;l{"use strict";var DEn=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ujt.exports=DEn;Ujt.exports.default=DEn});var FEn=H((_3l,GEn)=>{"use strict";var kEn=wt("path"),azs=Jjt(),czs=Kjt();function xEn(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=azs.sync(e.command,{path:r[czs({env:r})],pathExt:t?kEn.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=kEn.resolve(a?e.options.cwd:"",l)),l}function lzs(e){return xEn(e)||xEn(e,!0)}GEn.exports=lzs});var ZEn=H((y3l,zjt)=>{"use strict";var jjt=/([()\][%!^"`<>&|;, *?])/g;function uzs(e){return e=e.replace(jjt,"^$1"),e}function gzs(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(jjt,"^$1"),t&&(e=e.replace(jjt,"^$1")),e}zjt.exports.command=uzs;zjt.exports.argument=gzs});var VEn=H((b3l,LEn)=>{"use strict";LEn.exports=/^#!(.*)/});var qjt=H((E3l,PEn)=>{"use strict";var Azs=VEn();PEn.exports=(e="")=>{let t=e.match(Azs);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?n:n?`${a} ${n}`:a}});var OEn=H((S3l,WEn)=>{"use strict";var $jt=wt("fs"),dzs=qjt();function pzs(e){let r=Buffer.alloc(150),n;try{n=$jt.openSync(e,"r"),$jt.readSync(n,r,0,150,0),$jt.closeSync(n)}catch{}return dzs(r.toString())}WEn.exports=pzs});var QEn=H((v3l,YEn)=>{"use strict";var fzs=wt("path"),MEn=FEn(),HEn=ZEn(),Izs=OEn(),hzs=process.platform==="win32",mzs=/\.(?:com|exe)$/i,Czs=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function _zs(e){e.file=MEn(e);let t=e.file&&Izs(e.file);return t?(e.args.unshift(e.file),e.command=t,MEn(e)):e.file}function yzs(e){if(!hzs)return e;let t=_zs(e),r=!mzs.test(t);if(e.options.forceShell||r){let n=Czs.test(t);e.command=fzs.normalize(e.command),e.command=HEn.command(e.command),e.args=e.args.map(o=>HEn.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function bzs(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:yzs(n)}YEn.exports=bzs});var UEn=H((B3l,JEn)=>{"use strict";var e6t=process.platform==="win32";function t6t(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Ezs(e,t){if(!e6t)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=XEn(a,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function XEn(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawn"):null}function Szs(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawnSync"):null}JEn.exports={hookChildProcess:Ezs,verifyENOENT:XEn,verifyENOENTSync:Szs,notFoundError:t6t}});var Lct=H((w3l,CSe)=>{"use strict";var KEn=wt("child_process"),r6t=QEn(),n6t=UEn();function jEn(e,t,r){let n=r6t(e,t,r),a=KEn.spawn(n.command,n.args,n.options);return n6t.hookChildProcess(a,n),a}function vzs(e,t,r){let n=r6t(e,t,r),a=KEn.spawnSync(n.command,n.args,n.options);return a.error=a.error||n6t.verifyENOENTSync(a.status,n),a}CSe.exports=jEn;CSe.exports.spawn=jEn;CSe.exports.sync=vzs;CSe.exports._parse=r6t;CSe.exports._enoent=n6t});var qEn=H((T3l,zEn)=>{"use strict";function Bzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Cfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Cfe)}Bzs(Cfe,Error);Cfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b>",_n=ca(">>",!1),ke=">&",jt=ca(">&",!1),Fn=">",Nn=ca(">",!1),Hi="<<<",po=ca("<<<",!1),Vr="<&",xi=ca("<&",!1),io="<",ga=ca("<",!1),Ya=function(ut){return{type:"argument",segments:[].concat(...ut)}},Gc=function(ut){return ut},cl="$'",Sc=ca("$'",!1),Hr="'",Wr=ca("'",!1),Ft=function(ut){return[{type:"text",text:ut}]},zr='""',Rn=ca('""',!1),Or=function(){return{type:"text",text:""}},Qi='"',ps=ca('"',!1),yo=function(ut){return ut},bo=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!0}},Qa=function(ut){return{type:"shell",shell:ut,quoted:!0}},gc=function(ut){return{type:"variable",...ut,quoted:!0}},Cg=function(ut){return{type:"text",text:ut}},Nc=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!1}},iA=function(ut){return{type:"shell",shell:ut,quoted:!1}},ma=function(ut){return{type:"variable",...ut,quoted:!1}},vu=function(ut){return{type:"glob",pattern:ut}},li=/^[^']/,Ei=Bl(["'"],!0,!1),Ps=function(ut){return ut.join("")},Xa=/^[^$"]/,ac=Bl(["$",'"'],!0,!1),Yl=`\\ +`}function Tjt(e,t){return t.replace(/\r?\n/g,i7s(e))}});var Yq=H(mct=>{"use strict";Object.defineProperty(mct,"__esModule",{value:!0});mct.ProxiedFS=void 0;var s7s=hfe(),Rjt=class extends s7s.FakeFS{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};mct.ProxiedFS=Rjt});var Vbn=H(Cct=>{"use strict";Object.defineProperty(Cct,"__esModule",{value:!0});Cct.AliasFS=void 0;var o7s=Yq(),Njt=class extends o7s.ProxiedFS{constructor(t,{baseFs:r,pathUtils:n}){super(n),this.target=t,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};Cct.AliasFS=Njt});var mfe=H(_ct=>{"use strict";Object.defineProperty(_ct,"__esModule",{value:!0});_ct.NodeFS=void 0;var a7s=(Pa(),vi(Va)),c7s=a7s.__importDefault(wt("fs")),l7s=hfe(),ku=L9();function Pbn(e){let t=e;return typeof e.path=="string"&&(t.path=ku.npath.toPortablePath(e.path)),t}var Djt=class extends l7s.BasePortableFakeFS{constructor(t=c7s.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return ku.PortablePath.root}resolve(t){return ku.ppath.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(ku.npath.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(ku.npath.fromPortablePath(t),r):this.realFs.opendirSync(ku.npath.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(ku.npath.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}realpathSync(t){return ku.npath.toPortablePath(this.realFs.realpathSync(ku.npath.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(ku.npath.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(ku.npath.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(ku.npath.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(ku.npath.fromPortablePath(t),r):this.realFs.statSync(ku.npath.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(ku.npath.fromPortablePath(t),r):this.realFs.lstatSync(ku.npath.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(ku.npath.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(ku.npath.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(ku.npath.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(ku.npath.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(ku.npath.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(ku.npath.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(ku.npath.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(ku.npath.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?ku.npath.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?ku.npath.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Pbn)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(ku.npath.toPortablePath)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(Pbn):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(ku.npath.toPortablePath):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r):this.realFs.readdirSync(ku.npath.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}readlinkSync(t){return ku.npath.toPortablePath(this.realFs.readlinkSync(ku.npath.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(ku.npath.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(ku.npath.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(ku.npath.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(ku.npath.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}};_ct.NodeFS=Djt});var Wbn=H(yct=>{"use strict";Object.defineProperty(yct,"__esModule",{value:!0});yct.CwdFS=void 0;var u7s=mfe(),g7s=Yq(),kjt=L9(),xjt=class extends g7s.ProxiedFS{constructor(t,{baseFs:r=new u7s.NodeFS}={}){super(kjt.ppath),this.target=this.pathUtils.normalize(t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?kjt.ppath.normalize(t):this.baseFs.resolve(kjt.ppath.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};yct.CwdFS=xjt});var Mbn=H(Ect=>{"use strict";Object.defineProperty(Ect,"__esModule",{value:!0});Ect.JailFS=void 0;var A7s=mfe(),d7s=Yq(),bct=L9(),Obn=bct.PortablePath.root,Gjt=class extends d7s.ProxiedFS{constructor(t,{baseFs:r=new A7s.NodeFS}={}){super(bct.ppath),this.target=this.pathUtils.resolve(bct.PortablePath.root,t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(bct.PortablePath.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let r=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(Obn,t));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(Obn,this.pathUtils.relative(this.target,t))}};Ect.JailFS=Gjt});var Hbn=H(Sct=>{"use strict";Object.defineProperty(Sct,"__esModule",{value:!0});Sct.LazyFS=void 0;var p7s=Yq(),Fjt=class extends p7s.ProxiedFS{constructor(t,r){super(r),this.instance=null,this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};Sct.LazyFS=Fjt});var Ybn=H(wct=>{"use strict";Object.defineProperty(wct,"__esModule",{value:!0});wct.MountFS=void 0;var f7s=(Pa(),vi(Va)),ISe=wt("fs"),I7s=hfe(),h7s=mfe(),vct=Bjt(),V9=f7s.__importStar(lct()),Bct=L9(),P9=4278190080,Zjt=class extends I7s.BasePortableFakeFS{constructor({baseFs:t=new h7s.NodeFS,filter:r=null,magicByte:n=42,maxOpenFiles:a=1/0,useCache:o=!0,maxAge:l=5e3,typeCheck:A=ISe.constants.S_IFREG,getMountPoint:f,factoryPromise:I,factorySync:C}){if(Math.floor(n)!==n||!(n>1&&n<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super(),this.fdMap=new Map,this.nextFd=3,this.isMount=new Set,this.notMount=new Set,this.realPaths=new Map,this.limitOpenFilesTimeout=null,this.baseFs=t,this.mountInstances=o?new Map:null,this.factoryPromise=I,this.factorySync=C,this.filter=r,this.getMountPoint=f,this.magic=n<<24,this.maxAge=l,this.maxOpenFiles=a,this.typeCheck=A}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.saveAndClose?.(),this.mountInstances.delete(t)}discardAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.discardAndClose?.(),this.mountInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,r){let n=this.nextFd++|this.magic;return this.fdMap.set(n,[t,r]),n}async openPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,r,n),async(a,{subPath:o})=>this.remapFd(a,await a.openPromise(o,r,n)))}openSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,r,n),(a,{subPath:o})=>this.remapFd(a,a.openSync(o,r,n)))}async opendirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,r),async(n,{subPath:a})=>await n.opendirPromise(a,r),{requireSubpath:!1})}opendirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,r),(n,{subPath:a})=>n.opendirSync(a,r),{requireSubpath:!1})}async readPromise(t,r,n,a,o){if((t&P9)!==this.magic)return await this.baseFs.readPromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("read");let[A,f]=l;return await A.readPromise(f,r,n,a,o)}readSync(t,r,n,a,o){if((t&P9)!==this.magic)return this.baseFs.readSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("readSync");let[A,f]=l;return A.readSync(f,r,n,a,o)}async writePromise(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("write");let[A,f]=l;return typeof r=="string"?await A.writePromise(f,r,n):await A.writePromise(f,r,n,a,o)}writeSync(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("writeSync");let[A,f]=l;return typeof r=="string"?A.writeSync(f,r,n):A.writeSync(f,r,n,a,o)}async closePromise(t){if((t&P9)!==this.magic)return await this.baseFs.closePromise(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("close");this.fdMap.delete(t);let[n,a]=r;return await n.closePromise(a)}closeSync(t){if((t&P9)!==this.magic)return this.baseFs.closeSync(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("closeSync");this.fdMap.delete(t);let[n,a]=r;return n.closeSync(a)}createReadStream(t,r){return t===null?this.baseFs.createReadStream(t,r):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,r),(n,{archivePath:a,subPath:o})=>{let l=n.createReadStream(o,r);return l.path=Bct.npath.fromPortablePath(this.pathUtils.join(a,o)),l})}createWriteStream(t,r){return t===null?this.baseFs.createWriteStream(t,r):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,r),(n,{subPath:a})=>n.createWriteStream(a,r))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,await r.realpathPromise(a)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,r.realpathSync(a)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(r,{subPath:n})=>await r.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(r,{subPath:n})=>r.existsSync(n))}async accessPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,r),async(n,{subPath:a})=>await n.accessPromise(a,r))}accessSync(t,r){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,r),(n,{subPath:a})=>n.accessSync(a,r))}async statPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,r),async(n,{subPath:a})=>await n.statPromise(a,r))}statSync(t,r){return this.makeCallSync(t,()=>this.baseFs.statSync(t,r),(n,{subPath:a})=>n.statSync(a,r))}async fstatPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstat");let[a,o]=n;return a.fstatPromise(o,r)}fstatSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstatSync");let[a,o]=n;return a.fstatSync(o,r)}async lstatPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,r),async(n,{subPath:a})=>await n.lstatPromise(a,r))}lstatSync(t,r){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,r),(n,{subPath:a})=>n.lstatSync(a,r))}async fchmodPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmod");let[a,o]=n;return a.fchmodPromise(o,r)}fchmodSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmodSync");let[a,o]=n;return a.fchmodSync(o,r)}async chmodPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,r),async(n,{subPath:a})=>await n.chmodPromise(a,r))}chmodSync(t,r){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,r),(n,{subPath:a})=>n.chmodSync(a,r))}async fchownPromise(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownPromise(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchown");let[o,l]=a;return o.fchownPromise(l,r,n)}fchownSync(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownSync(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchownSync");let[o,l]=a;return o.fchownSync(l,r,n)}async chownPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,r,n),async(a,{subPath:o})=>await a.chownPromise(o,r,n))}chownSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,r,n),(a,{subPath:o})=>a.chownSync(o,r,n))}async renamePromise(t,r){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(t,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:a})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(a,l)}))}renameSync(t,r){return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(t,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:a})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(a,l)}))}async copyFilePromise(t,r,n=0){let a=async(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&await this.existsPromise(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=await o.readFilePromise(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}await A.writeFilePromise(f,I)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(t,r,n),async(o,{subPath:l})=>await a(this.baseFs,t,o,l)),async(o,{subPath:l})=>await this.makeCallPromise(r,async()=>await a(o,l,this.baseFs,r),async(A,{subPath:f})=>o!==A?await a(o,l,A,f):await o.copyFilePromise(l,f,n)))}copyFileSync(t,r,n=0){let a=(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&this.existsSync(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=o.readFileSync(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}A.writeFileSync(f,I)};return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(t,r,n),(o,{subPath:l})=>a(this.baseFs,t,o,l)),(o,{subPath:l})=>this.makeCallSync(r,()=>a(o,l,this.baseFs,r),(A,{subPath:f})=>o!==A?a(o,l,A,f):o.copyFileSync(l,f,n)))}async appendFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,r,n),async(a,{subPath:o})=>await a.appendFilePromise(o,r,n))}appendFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,r,n),(a,{subPath:o})=>a.appendFileSync(o,r,n))}async writeFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,r,n),async(a,{subPath:o})=>await a.writeFilePromise(o,r,n))}writeFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,r,n),(a,{subPath:o})=>a.writeFileSync(o,r,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(r,{subPath:n})=>await r.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(r,{subPath:n})=>r.unlinkSync(n))}async utimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,r,n),async(a,{subPath:o})=>await a.utimesPromise(o,r,n))}utimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,r,n),(a,{subPath:o})=>a.utimesSync(o,r,n))}async lutimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.lutimesPromise(t,r,n),async(a,{subPath:o})=>await a.lutimesPromise(o,r,n))}lutimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.lutimesSync(t,r,n),(a,{subPath:o})=>a.lutimesSync(o,r,n))}async mkdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,r),async(n,{subPath:a})=>await n.mkdirPromise(a,r))}mkdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,r),(n,{subPath:a})=>n.mkdirSync(a,r))}async rmdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,r),async(n,{subPath:a})=>await n.rmdirPromise(a,r))}rmdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,r),(n,{subPath:a})=>n.rmdirSync(a,r))}async rmPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmPromise(t,r),async(n,{subPath:a})=>await n.rmPromise(a,r))}rmSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmSync(t,r),(n,{subPath:a})=>n.rmSync(a,r))}async linkPromise(t,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(t,r),async(n,{subPath:a})=>await n.linkPromise(t,a))}linkSync(t,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(t,r),(n,{subPath:a})=>n.linkSync(t,a))}async symlinkPromise(t,r,n){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(t,r,n),async(a,{subPath:o})=>await a.symlinkPromise(t,o))}symlinkSync(t,r,n){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(t,r,n),(a,{subPath:o})=>a.symlinkSync(t,o))}async readFilePromise(t,r){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,r),async(n,{subPath:a})=>await n.readFilePromise(a,r))}readFileSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,r),(n,{subPath:a})=>n.readFileSync(a,r))}async readdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,r),async(n,{subPath:a})=>await n.readdirPromise(a,r),{requireSubpath:!1})}readdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,r),(n,{subPath:a})=>n.readdirSync(a,r),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(r,{subPath:n})=>await r.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(r,{subPath:n})=>r.readlinkSync(n))}async truncatePromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,r),async(n,{subPath:a})=>await n.truncatePromise(a,r))}truncateSync(t,r){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,r),(n,{subPath:a})=>n.truncateSync(a,r))}async ftruncatePromise(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncatePromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncate");let[a,o]=n;return a.ftruncatePromise(o,r)}ftruncateSync(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncateSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncateSync");let[a,o]=n;return a.ftruncateSync(o,r)}watch(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,r,n),(a,{subPath:o})=>a.watch(o,r,n))}watchFile(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,r,n),()=>(0,vct.watchFile)(this,t,r,n))}unwatchFile(t,r){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,r),()=>(0,vct.unwatchFile)(this,t,r))}async makeCallPromise(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return await r();let o=this.resolve(t),l=this.findMount(o);return l?a&&l.subPath==="/"?await r():await this.getMountPromise(l.archivePath,async A=>await n(A,l)):await r()}makeCallSync(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return r();let o=this.resolve(t),l=this.findMount(o);return!l||a&&l.subPath==="/"?r():this.getMountSync(l.archivePath,A=>n(A,l))}findMount(t){if(this.filter&&!this.filter.test(t))return null;let r="";for(;;){let n=t.substring(r.length),a=this.getMountPoint(n,r);if(!a)return null;if(r=this.pathUtils.join(r,a),!this.isMount.has(r)){if(this.notMount.has(r))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(r).mode&ISe.constants.S_IFMT)!==this.typeCheck){this.notMount.add(r);continue}}catch{return null}this.isMount.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Bct.PortablePath.root,t.substring(r.length))}}}limitOpenFiles(t){if(this.mountInstances===null)return;let r=Date.now(),n=r+this.maxAge,a=t===null?0:this.mountInstances.size-t;for(let[o,{childFs:l,expiresAt:A,refCount:f}]of this.mountInstances.entries())if(!(f!==0||l.hasOpenFileHandles?.())){if(r>=A){l.saveAndClose?.(),this.mountInstances.delete(o),a-=1;continue}else if(t===null||a<=0){n=A;break}l.saveAndClose?.(),this.mountInstances.delete(o),a-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.mountInstances.size>0||t!==null)&&isFinite(n)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-r).unref())}async getMountPromise(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);if(!n){let a=await this.factoryPromise(this.baseFs,t);n=this.mountInstances.get(t),n||(n={childFs:a(),expiresAt:0,refCount:0})}this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,t))();try{return await r(n)}finally{n.saveAndClose?.()}}}getMountSync(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);return n||(n={childFs:this.factorySync(this.baseFs,t),expiresAt:0,refCount:0}),this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,r(n.childFs)}else{let n=this.factorySync(this.baseFs,t);try{return r(n)}finally{n.saveAndClose?.()}}}};wct.MountFS=Zjt});var Qbn=H(Tct=>{"use strict";Object.defineProperty(Tct,"__esModule",{value:!0});Tct.NoFS=void 0;var m7s=hfe(),C7s=L9(),Pg=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),KOe=class extends m7s.FakeFS{constructor(){super(C7s.ppath)}getExtractHint(){throw Pg()}getRealPath(){throw Pg()}resolve(){throw Pg()}async openPromise(){throw Pg()}openSync(){throw Pg()}async opendirPromise(){throw Pg()}opendirSync(){throw Pg()}async readPromise(){throw Pg()}readSync(){throw Pg()}async writePromise(){throw Pg()}writeSync(){throw Pg()}async closePromise(){throw Pg()}closeSync(){throw Pg()}createWriteStream(){throw Pg()}createReadStream(){throw Pg()}async realpathPromise(){throw Pg()}realpathSync(){throw Pg()}async readdirPromise(){throw Pg()}readdirSync(){throw Pg()}async existsPromise(t){throw Pg()}existsSync(t){throw Pg()}async accessPromise(){throw Pg()}accessSync(){throw Pg()}async statPromise(){throw Pg()}statSync(){throw Pg()}async fstatPromise(t){throw Pg()}fstatSync(t){throw Pg()}async lstatPromise(t){throw Pg()}lstatSync(t){throw Pg()}async fchmodPromise(){throw Pg()}fchmodSync(){throw Pg()}async chmodPromise(){throw Pg()}chmodSync(){throw Pg()}async fchownPromise(){throw Pg()}fchownSync(){throw Pg()}async chownPromise(){throw Pg()}chownSync(){throw Pg()}async mkdirPromise(){throw Pg()}mkdirSync(){throw Pg()}async rmdirPromise(){throw Pg()}rmdirSync(){throw Pg()}async rmPromise(){throw Pg()}rmSync(){throw Pg()}async linkPromise(){throw Pg()}linkSync(){throw Pg()}async symlinkPromise(){throw Pg()}symlinkSync(){throw Pg()}async renamePromise(){throw Pg()}renameSync(){throw Pg()}async copyFilePromise(){throw Pg()}copyFileSync(){throw Pg()}async appendFilePromise(){throw Pg()}appendFileSync(){throw Pg()}async writeFilePromise(){throw Pg()}writeFileSync(){throw Pg()}async unlinkPromise(){throw Pg()}unlinkSync(){throw Pg()}async utimesPromise(){throw Pg()}utimesSync(){throw Pg()}async lutimesPromise(){throw Pg()}lutimesSync(){throw Pg()}async readFilePromise(){throw Pg()}readFileSync(){throw Pg()}async readlinkPromise(){throw Pg()}readlinkSync(){throw Pg()}async truncatePromise(){throw Pg()}truncateSync(){throw Pg()}async ftruncatePromise(t,r){throw Pg()}ftruncateSync(t,r){throw Pg()}watch(){throw Pg()}watchFile(){throw Pg()}unwatchFile(){throw Pg()}};Tct.NoFS=KOe;KOe.instance=new KOe});var Xbn=H(Rct=>{"use strict";Object.defineProperty(Rct,"__esModule",{value:!0});Rct.PosixFS=void 0;var _7s=Yq(),Ljt=L9(),Vjt=class extends _7s.ProxiedFS{constructor(t){super(Ljt.npath),this.baseFs=t}mapFromBase(t){return Ljt.npath.fromPortablePath(t)}mapToBase(t){return Ljt.npath.toPortablePath(t)}};Rct.PosixFS=Vjt});var Jbn=H(Nct=>{"use strict";Object.defineProperty(Nct,"__esModule",{value:!0});Nct.VirtualFS=void 0;var y7s=mfe(),b7s=Yq(),$Q=L9(),E7s=/^[0-9]+$/,Pjt=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,S7s=/^([^/]+-)?[a-f0-9]+$/,Wjt=class e extends b7s.ProxiedFS{static makeVirtualPath(t,r,n){if($Q.ppath.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!$Q.ppath.basename(r).match(S7s))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=$Q.ppath.relative($Q.ppath.dirname(t),n).split("/"),l=0;for(;l{"use strict";Object.defineProperty(Dct,"__esModule",{value:!0});Dct.NodePathFS=void 0;var v7s=(Pa(),vi(Va)),Ubn=v7s.__importDefault(wt("buffer")),B7s=wt("url"),w7s=wt("util"),T7s=Yq(),R7s=L9(),Ojt=class extends T7s.ProxiedFS{constructor(t){super(R7s.npath),this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof URL)return(0,B7s.fileURLToPath)(t);if(Buffer.isBuffer(t)){let r=t.toString();if(!N7s(t,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,w7s.inspect)(t)}`)}};Dct.NodePathFS=Ojt;function N7s(e,t){return typeof Ubn.default.isUtf8<"u"?Ubn.default.isUtf8(e):Buffer.byteLength(t)===e.byteLength}});var eEn=H(Gct=>{"use strict";var jbn,zbn,qbn,$bn;Object.defineProperty(Gct,"__esModule",{value:!0});Gct.FileHandle=void 0;var D7s=wt("readline"),yZ=Symbol("kBaseFs"),zse=Symbol("kFd"),qse=Symbol("kClosePromise"),kct=Symbol("kCloseResolve"),xct=Symbol("kCloseReject"),hSe=Symbol("kRefs"),eX=Symbol("kRef"),tX=Symbol("kUnref"),Mjt=class{constructor(t,r){this[jbn]=1,this[zbn]=void 0,this[qbn]=void 0,this[$bn]=void 0,this[yZ]=r,this[zse]=t}get fd(){return this[zse]}async appendFile(t,r){try{this[eX](this.appendFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;return await this[yZ].appendFilePromise(this.fd,t,n?{encoding:n}:void 0)}finally{this[tX]()}}async chown(t,r){try{return this[eX](this.chown),await this[yZ].fchownPromise(this.fd,t,r)}finally{this[tX]()}}async chmod(t){try{return this[eX](this.chmod),await this[yZ].fchmodPromise(this.fd,t)}finally{this[tX]()}}createReadStream(t){return this[yZ].createReadStream(null,{...t,fd:this.fd})}createWriteStream(t){return this[yZ].createWriteStream(null,{...t,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(t,r,n,a){try{this[eX](this.read);let o,l;return ArrayBuffer.isView(t)?typeof r=="object"&&r!==null?(o=t,l=r?.offset??0,n=r?.length??o.byteLength-l,a=r?.position??null):(o=t,l=r??0,n??=0):(o=t?.buffer??Buffer.alloc(16384),l=t?.offset??0,n=t?.length??o.byteLength-l,a=t?.position??null),n===0?{bytesRead:n,buffer:o}:{bytesRead:await this[yZ].readPromise(this.fd,Buffer.isBuffer(o)?o:Buffer.from(o.buffer,o.byteOffset,o.byteLength),l,n,a),buffer:o}}finally{this[tX]()}}async readFile(t){try{this[eX](this.readFile);let r=(typeof t=="string"?t:t?.encoding)??void 0;return await this[yZ].readFilePromise(this.fd,r)}finally{this[tX]()}}readLines(t){return(0,D7s.createInterface)({input:this.createReadStream(t),crlfDelay:1/0})}async stat(t){try{return this[eX](this.stat),await this[yZ].fstatPromise(this.fd,t)}finally{this[tX]()}}async truncate(t){try{return this[eX](this.truncate),await this[yZ].ftruncatePromise(this.fd,t)}finally{this[tX]()}}utimes(t,r){throw new Error("Method not implemented.")}async writeFile(t,r){try{this[eX](this.writeFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;await this[yZ].writeFilePromise(this.fd,t,n)}finally{this[tX]()}}async write(...t){try{if(this[eX](this.write),ArrayBuffer.isView(t[0])){let[r,n,a,o]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n??void 0,a??void 0,o??void 0),buffer:r}}else{let[r,n,a]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n,a),buffer:r}}}finally{this[tX]()}}async writev(t,r){try{this[eX](this.writev);let n=0;if(typeof r<"u")for(let a of t){let o=await this.write(a,void 0,void 0,r);n+=o.bytesWritten,r+=o.bytesWritten}else for(let a of t){let o=await this.write(a);n+=o.bytesWritten}return{buffers:t,bytesWritten:n}}finally{this[tX]()}}readv(t,r){throw new Error("Method not implemented.")}close(){if(this[zse]===-1)return Promise.resolve();if(this[qse])return this[qse];if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[qse]=this[yZ].closePromise(t).finally(()=>{this[qse]=void 0})}else this[qse]=new Promise((t,r)=>{this[kct]=t,this[xct]=r}).finally(()=>{this[qse]=void 0,this[xct]=void 0,this[kct]=void 0});return this[qse]}[(jbn=hSe,zbn=qse,qbn=kct,$bn=xct,eX)](t){if(this[zse]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=t.name,r}this[hSe]++}[tX](){if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[yZ].closePromise(t).then(this[kct],this[xct])}}};Gct.FileHandle=Mjt});var iEn=H(Fct=>{"use strict";Object.defineProperty(Fct,"__esModule",{value:!0});Fct.patchFs=nEn;Fct.extendFs=G7s;var jOe=wt("util"),k7s=Kbn(),tEn=eEn(),x7s=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),rEn=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function nEn(e,t){t=new k7s.NodePathFS(t);let r=(n,a,o)=>{let l=n[a];n[a]=o,typeof l?.[jOe.promisify.custom]<"u"&&(o[jOe.promisify.custom]=l[jOe.promisify.custom])};{r(e,"exists",(n,...a)=>{let l=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{t.existsPromise(n).then(A=>{l(A)},()=>{l(!1)})})}),r(e,"read",(...n)=>{let[a,o,l,A,f,I]=n;if(n.length<=3){let C={};n.length<3?I=n[1]:(C=n[1],I=n[2]),{buffer:o=Buffer.alloc(16384),offset:l=0,length:A=o.byteLength,position:f}=C}if(l==null&&(l=0),A|=0,A===0){process.nextTick(()=>{I(null,0,o)});return}f==null&&(f=-1),process.nextTick(()=>{t.readPromise(a,o,l,A,f).then(C=>{I(null,C,o)},C=>{I(C,0,o)})})});for(let n of rEn){let a=n.replace(/Promise$/,"");if(typeof e[a]>"u")continue;let o=t[n];if(typeof o>"u")continue;r(e,a,(...A)=>{let I=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{o.apply(t,A).then(C=>{I(null,C)},C=>{I(C)})})})}e.realpath.native=e.realpath}{r(e,"existsSync",n=>{try{return t.existsSync(n)}catch{return!1}}),r(e,"readSync",(...n)=>{let[a,o,l,A,f]=n;return n.length<=3&&({offset:l=0,length:A=o.byteLength,position:f}=n[2]||{}),l==null&&(l=0),A|=0,A===0?0:(f==null&&(f=-1),t.readSync(a,o,l,A,f))});for(let n of x7s){let a=n;if(typeof e[a]>"u")continue;let o=t[n];typeof o>"u"||r(e,a,o.bind(t))}e.realpathSync.native=e.realpathSync}{let n=e.promises;for(let a of rEn){let o=a.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let l=t[a];typeof l>"u"||a!=="open"&&r(n,o,(A,...f)=>A instanceof tEn.FileHandle?A[o].apply(A,f):l.call(t,A,...f))}r(n,"open",async(...a)=>{let o=await t.openPromise(...a);return new tEn.FileHandle(o,t)})}e.read[jOe.promisify.custom]=async(n,a,...o)=>({bytesRead:await t.readPromise(n,a,...o),buffer:a}),e.write[jOe.promisify.custom]=async(n,a,...o)=>({bytesWritten:await t.writePromise(n,a,...o),buffer:a})}function G7s(e,t){let r=Object.create(e);return nEn(r,t),r}});var aEn=H($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});$se.xfs=void 0;var F7s=(Pa(),vi(Va)),Z7s=F7s.__importDefault(wt("os")),L7s=mfe(),zOe=L9();function sEn(e){let t=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${e}${t}`}var rX=new Set,Hjt=null;function oEn(){if(Hjt)return Hjt;let e=zOe.npath.toPortablePath(Z7s.default.tmpdir()),t=$se.xfs.realpathSync(e);return process.once("exit",()=>{$se.xfs.rmtempSync()}),Hjt={tmpdir:e,realTmpdir:t}}$se.xfs=Object.assign(new L7s.NodeFS,{detachTemp(e){rX.delete(e)},mktempSync(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{this.mkdirSync(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return e(a)}finally{if(rX.has(a)){rX.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{await this.mkdirPromise(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return await e(a)}finally{if(rX.has(a)){rX.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(rX.values()).map(async e=>{try{await $se.xfs.removePromise(e,{maxRetries:0}),rX.delete(e)}catch{}}))},rmtempSync(){for(let e of rX)try{$se.xfs.removeSync(e),rX.delete(e)}catch{}}})});var no=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.xfs=md.extendFs=md.patchFs=md.VirtualFS=md.ProxiedFS=md.PosixFS=md.NodeFS=md.NoFS=md.MountFS=md.LazyFS=md.JailFS=md.CwdFS=md.BasePortableFakeFS=md.FakeFS=md.AliasFS=md.ppath=md.npath=md.Filename=md.PortablePath=md.normalizeLineEndings=md.unwatchAllFiles=md.unwatchFile=md.watchFile=md.CustomDir=md.opendir=md.setupCopyIndex=md.statUtils=md.errors=md.constants=void 0;var Yjt=(Pa(),vi(Va)),V7s=Yjt.__importStar(cct());md.constants=V7s;var P7s=Yjt.__importStar(lct());md.errors=P7s;var W7s=Yjt.__importStar(_jt());md.statUtils=W7s;var O7s=Ejt();Object.defineProperty(md,"setupCopyIndex",{enumerable:!0,get:function(){return O7s.setupCopyIndex}});var cEn=Gbn();Object.defineProperty(md,"opendir",{enumerable:!0,get:function(){return cEn.opendir}});Object.defineProperty(md,"CustomDir",{enumerable:!0,get:function(){return cEn.CustomDir}});var Qjt=Bjt();Object.defineProperty(md,"watchFile",{enumerable:!0,get:function(){return Qjt.watchFile}});Object.defineProperty(md,"unwatchFile",{enumerable:!0,get:function(){return Qjt.unwatchFile}});Object.defineProperty(md,"unwatchAllFiles",{enumerable:!0,get:function(){return Qjt.unwatchAllFiles}});var M7s=hfe();Object.defineProperty(md,"normalizeLineEndings",{enumerable:!0,get:function(){return M7s.normalizeLineEndings}});var lEn=L9();Object.defineProperty(md,"PortablePath",{enumerable:!0,get:function(){return lEn.PortablePath}});Object.defineProperty(md,"Filename",{enumerable:!0,get:function(){return lEn.Filename}});var uEn=L9();Object.defineProperty(md,"npath",{enumerable:!0,get:function(){return uEn.npath}});Object.defineProperty(md,"ppath",{enumerable:!0,get:function(){return uEn.ppath}});var H7s=Vbn();Object.defineProperty(md,"AliasFS",{enumerable:!0,get:function(){return H7s.AliasFS}});var gEn=hfe();Object.defineProperty(md,"FakeFS",{enumerable:!0,get:function(){return gEn.FakeFS}});Object.defineProperty(md,"BasePortableFakeFS",{enumerable:!0,get:function(){return gEn.BasePortableFakeFS}});var Y7s=Wbn();Object.defineProperty(md,"CwdFS",{enumerable:!0,get:function(){return Y7s.CwdFS}});var Q7s=Mbn();Object.defineProperty(md,"JailFS",{enumerable:!0,get:function(){return Q7s.JailFS}});var X7s=Hbn();Object.defineProperty(md,"LazyFS",{enumerable:!0,get:function(){return X7s.LazyFS}});var J7s=Ybn();Object.defineProperty(md,"MountFS",{enumerable:!0,get:function(){return J7s.MountFS}});var U7s=Qbn();Object.defineProperty(md,"NoFS",{enumerable:!0,get:function(){return U7s.NoFS}});var K7s=mfe();Object.defineProperty(md,"NodeFS",{enumerable:!0,get:function(){return K7s.NodeFS}});var j7s=Xbn();Object.defineProperty(md,"PosixFS",{enumerable:!0,get:function(){return j7s.PosixFS}});var z7s=Yq();Object.defineProperty(md,"ProxiedFS",{enumerable:!0,get:function(){return z7s.ProxiedFS}});var q7s=Jbn();Object.defineProperty(md,"VirtualFS",{enumerable:!0,get:function(){return q7s.VirtualFS}});var AEn=iEn();Object.defineProperty(md,"patchFs",{enumerable:!0,get:function(){return AEn.patchFs}});Object.defineProperty(md,"extendFs",{enumerable:!0,get:function(){return AEn.extendFs}});var $7s=aEn();Object.defineProperty(md,"xfs",{enumerable:!0,get:function(){return $7s.xfs}})});var hEn=H((f3l,IEn)=>{IEn.exports=fEn;fEn.sync=tzs;var dEn=wt("fs");function ezs(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{yEn.exports=CEn;CEn.sync=rzs;var mEn=wt("fs");function CEn(e,t,r){mEn.stat(e,function(n,a){r(n,n?!1:_En(a,t))})}function rzs(e,t){return _En(mEn.statSync(e),t)}function _En(e,t){return e.isFile()&&nzs(e,t)}function nzs(e,t){var r=e.mode,n=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),l=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),f=parseInt("010",8),I=parseInt("001",8),C=A|f,b=r&I||r&f&&a===l||r&A&&n===o||r&C&&o===0;return b}});var SEn=H((m3l,EEn)=>{var h3l=wt("fs"),Zct;process.platform==="win32"||global.TESTING_WINDOWS?Zct=hEn():Zct=bEn();EEn.exports=Xjt;Xjt.sync=izs;function Xjt(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,a){Xjt(e,t||{},function(o,l){o?a(o):n(l)})})}Zct(e,t||{},function(n,a){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,a=!1),r(n,a)})}function izs(e,t){try{return Zct.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Jjt=H((C3l,NEn)=>{var mSe=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",vEn=wt("path"),szs=mSe?";":":",BEn=SEn(),wEn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),TEn=(e,t)=>{let r=t.colon||szs,n=e.match(/\//)||mSe&&e.match(/\\/)?[""]:[...mSe?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],a=mSe?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=mSe?a.split(r):[""];return mSe&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:a}},REn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:a,pathExtExe:o}=TEn(e,t),l=[],A=I=>new Promise((C,b)=>{if(I===n.length)return t.all&&l.length?C(l):b(wEn(e));let E=n[I],N=/^".*"$/.test(E)?E.slice(1,-1):E,B=vEn.join(N,e),F=!N&&/^\.[\\\/]/.test(e)?e.slice(0,2)+B:B;C(f(F,I,0))}),f=(I,C,b)=>new Promise((E,N)=>{if(b===a.length)return E(A(C+1));let B=a[b];BEn(I+B,{pathExt:o},(F,Q)=>{if(!F&&Q)if(t.all)l.push(I+B);else return E(I+B);return E(f(I,C,b+1))})});return r?A(0).then(I=>r(null,I),r):A(0)},ozs=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:a}=TEn(e,t),o=[];for(let l=0;l{"use strict";var DEn=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ujt.exports=DEn;Ujt.exports.default=DEn});var FEn=H((y3l,GEn)=>{"use strict";var kEn=wt("path"),azs=Jjt(),czs=Kjt();function xEn(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=azs.sync(e.command,{path:r[czs({env:r})],pathExt:t?kEn.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=kEn.resolve(a?e.options.cwd:"",l)),l}function lzs(e){return xEn(e)||xEn(e,!0)}GEn.exports=lzs});var ZEn=H((b3l,zjt)=>{"use strict";var jjt=/([()\][%!^"`<>&|;, *?])/g;function uzs(e){return e=e.replace(jjt,"^$1"),e}function gzs(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(jjt,"^$1"),t&&(e=e.replace(jjt,"^$1")),e}zjt.exports.command=uzs;zjt.exports.argument=gzs});var VEn=H((E3l,LEn)=>{"use strict";LEn.exports=/^#!(.*)/});var qjt=H((S3l,PEn)=>{"use strict";var Azs=VEn();PEn.exports=(e="")=>{let t=e.match(Azs);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?n:n?`${a} ${n}`:a}});var OEn=H((v3l,WEn)=>{"use strict";var $jt=wt("fs"),dzs=qjt();function pzs(e){let r=Buffer.alloc(150),n;try{n=$jt.openSync(e,"r"),$jt.readSync(n,r,0,150,0),$jt.closeSync(n)}catch{}return dzs(r.toString())}WEn.exports=pzs});var QEn=H((B3l,YEn)=>{"use strict";var fzs=wt("path"),MEn=FEn(),HEn=ZEn(),Izs=OEn(),hzs=process.platform==="win32",mzs=/\.(?:com|exe)$/i,Czs=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function _zs(e){e.file=MEn(e);let t=e.file&&Izs(e.file);return t?(e.args.unshift(e.file),e.command=t,MEn(e)):e.file}function yzs(e){if(!hzs)return e;let t=_zs(e),r=!mzs.test(t);if(e.options.forceShell||r){let n=Czs.test(t);e.command=fzs.normalize(e.command),e.command=HEn.command(e.command),e.args=e.args.map(o=>HEn.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function bzs(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:yzs(n)}YEn.exports=bzs});var UEn=H((w3l,JEn)=>{"use strict";var e6t=process.platform==="win32";function t6t(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Ezs(e,t){if(!e6t)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=XEn(a,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function XEn(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawn"):null}function Szs(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawnSync"):null}JEn.exports={hookChildProcess:Ezs,verifyENOENT:XEn,verifyENOENTSync:Szs,notFoundError:t6t}});var Lct=H((T3l,CSe)=>{"use strict";var KEn=wt("child_process"),r6t=QEn(),n6t=UEn();function jEn(e,t,r){let n=r6t(e,t,r),a=KEn.spawn(n.command,n.args,n.options);return n6t.hookChildProcess(a,n),a}function vzs(e,t,r){let n=r6t(e,t,r),a=KEn.spawnSync(n.command,n.args,n.options);return a.error=a.error||n6t.verifyENOENTSync(a.status,n),a}CSe.exports=jEn;CSe.exports.spawn=jEn;CSe.exports.sync=vzs;CSe.exports._parse=r6t;CSe.exports._enoent=n6t});var qEn=H((R3l,zEn)=>{"use strict";function Bzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Cfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Cfe)}Bzs(Cfe,Error);Cfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b>",_n=ca(">>",!1),ke=">&",jt=ca(">&",!1),Fn=">",Nn=ca(">",!1),Hi="<<<",po=ca("<<<",!1),Vr="<&",xi=ca("<&",!1),io="<",ga=ca("<",!1),Ya=function(ut){return{type:"argument",segments:[].concat(...ut)}},Gc=function(ut){return ut},cl="$'",Sc=ca("$'",!1),Hr="'",Wr=ca("'",!1),Ft=function(ut){return[{type:"text",text:ut}]},zr='""',Rn=ca('""',!1),Or=function(){return{type:"text",text:""}},Qi='"',ps=ca('"',!1),yo=function(ut){return ut},bo=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!0}},Qa=function(ut){return{type:"shell",shell:ut,quoted:!0}},gc=function(ut){return{type:"variable",...ut,quoted:!0}},Cg=function(ut){return{type:"text",text:ut}},Nc=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!1}},iA=function(ut){return{type:"shell",shell:ut,quoted:!1}},ma=function(ut){return{type:"variable",...ut,quoted:!1}},vu=function(ut){return{type:"glob",pattern:ut}},li=/^[^']/,Ei=Bl(["'"],!0,!1),Ps=function(ut){return ut.join("")},Xa=/^[^$"]/,ac=Bl(["$",'"'],!0,!1),Yl=`\\ `,Wc=ca(`\\ `,!1),Sg=function(){return""},Ul="\\",Xu=ca("\\",!1),Da=/^[\\$"`]/,pu=Bl(["\\","$",'"',"`"],!1,!1),_g=function(ut){return ut},mI="\\a",Qh=ca("\\a",!1),Ri=function(){return"a"},Do="\\b",Wt=ca("\\b",!1),Hu=function(){return"\b"},Ru=/^[Ee]/,Vs=Bl(["E","e"],!1,!1),Ju=function(){return"\x1B"},Yn="\\f",Ko=ca("\\f",!1),Eg=function(){return"\f"},OA="\\n",GA=ca("\\n",!1),$i=function(){return` `},dl="\\r",Uf=ca("\\r",!1),Kd=function(){return"\r"},oA="\\t",oo=ca("\\t",!1),Ki=function(){return" "},cc="\\v",Xs=ca("\\v",!1),ws=function(){return"\v"},Gs=/^[\\'"?]/,Ma=Bl(["\\","'",'"',"?"],!1,!1),Dc=function(ut){return String.fromCharCode(parseInt(ut,16))},As="\\x",Tf=ca("\\x",!1),cm="\\u",Fl=ca("\\u",!1),rc="\\U",sd=ca("\\U",!1),Om=function(ut){return String.fromCodePoint(parseInt(ut,16))},il=/^[0-7]/,FA=Bl([["0","7"]],!1,!1),ZA=/^[0-9a-fA-f]/,El=Bl([["0","9"],["a","f"],["A","f"]],!1,!1),yg=$g(),Mp="{}",MA=ca("{}",!1),Er=function(){return"{}"},Zt="-",yn=ca("-",!1),ls="+",oa=ca("+",!1),Fs=".",Wa=ca(".",!1),Ca=function(ut,ar,Jr){return{type:"number",value:(ut==="-"?-1:1)*parseFloat(ar.join("")+"."+Jr.join(""))}},ld=function(ut,ar){return{type:"number",value:(ut==="-"?-1:1)*parseInt(ar.join(""))}},Rp=function(ut){return{type:"variable",...ut}},np=function(ut){return{type:"variable",name:ut}},HA=function(ut){return ut},df="*",Zs=ca("*",!1),so="/",Ea=ca("/",!1),Ml=function(ut,ar,Jr){return{type:ar==="*"?"multiplication":"division",right:Jr}},Dr=function(ut,ar){return ar.reduce((Jr,Gn)=>({left:Jr,...Gn}),ut)},Wn=function(ut,ar,Jr){return{type:ar==="+"?"addition":"subtraction",right:Jr}},di="$((",aa=ca("$((",!1),Bo="))",us=ca("))",!1),Ql=function(ut){return ut},LA="$(",pf=ca("$(",!1),ef=function(ut){return ut},ip="${",_d=ca("${",!1),j1=":-",pw=ca(":-",!1),YA=function(ut,ar){return{name:ut,defaultValue:ar}},Ac=":-}",Nm=ca(":-}",!1),HS=function(ut){return{name:ut,defaultValue:[]}},jd=":+",dh=ca(":+",!1),Hp=function(ut,ar){return{name:ut,alternativeValue:ar}},uC=":+}",nE=ca(":+}",!1),J_=function(ut){return{name:ut,alternativeValue:[]}},q0=function(ut){return{name:ut}},XE="$",TC=ca("$",!1),t_=function(ut){return t.isGlobPattern(ut)},cp=function(ut){return ut},Mm=/^[a-zA-Z0-9_]/,fb=Bl([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),pe=function(){return $n()},lm=/^[$@*?#a-zA-Z0-9_\-]/,Kf=Bl(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),CI=/^[()}<>$|&; \t"']/,_I=Bl(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),H2=/^[<>&; \t"']/,iE=Bl(["<",">","&",";"," "," ",'"',"'"],!1,!1),se=/^[ \t]/,O=Bl([" "," "],!1,!1),K=0,we=0,gt=[{line:1,column:1}],sr=0,Yr=[],Lr=0,fi;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function $n(){return e.substring(we,K)}function ra(){return Ib(we,K)}function kc(ut,ar){throw ar=ar!==void 0?ar:Ib(we,K),z1([lI(ut)],e.substring(we,K),ar)}function Nl(ut,ar){throw ar=ar!==void 0?ar:Ib(we,K),wd(ut,ar)}function ca(ut,ar){return{type:"literal",text:ut,ignoreCase:ar}}function Bl(ut,ar,Jr){return{type:"class",parts:ut,inverted:ar,ignoreCase:Jr}}function $g(){return{type:"any"}}function SA(){return{type:"end"}}function lI(ut){return{type:"other",description:ut}}function lp(ut){var ar=gt[ut],Jr;if(ar)return ar;for(Jr=ut-1;!gt[Jr];)Jr--;for(ar=gt[Jr],ar={line:ar.line,column:ar.column};Jrsr&&(sr=K,Yr=[]),Yr.push(ut))}function wd(ut,ar){return new Cfe(ut,null,null,ar)}function z1(ut,ar,Jr){return new Cfe(Cfe.buildMessage(ut,ar),ut,ar,Jr)}function T_(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(Jr=RC(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=o(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function RC(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=Fg(),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();Jr!==r?(Gn=YS(),Gn!==r?(Ts=Hm(),Ts===r&&(Ts=null),Ts!==r?(we=ut,ar=l(ar,Gn,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;if(ut===r)if(ut=K,ar=Fg(),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();Jr!==r?(Gn=YS(),Gn===r&&(Gn=null),Gn!==r?(we=ut,ar=A(ar,Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;return ut}function Hm(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=RC(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=f(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;return ut}function YS(){var ut;return e.charCodeAt(K)===59?(ut=I,K++):(ut=r,Lr===0&&Na(C)),ut===r&&(e.charCodeAt(K)===38?(ut=b,K++):(ut=r,Lr===0&&Na(E))),ut}function Fg(){var ut,ar,Jr;return ut=K,ar=NC(),ar!==r?(Jr=hb(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=N(ar,Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function hb(){var ut,ar,Jr,Gn,Ts,Qo,vg;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=gC(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=Fg(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=B(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;return ut}function gC(){var ut;return e.substr(K,2)===F?(ut=F,K+=2):(ut=r,Lr===0&&Na(Q)),ut===r&&(e.substr(K,2)===X?(ut=X,K+=2):(ut=r,Lr===0&&Na(ae))),ut}function NC(){var ut,ar,Jr;return ut=K,ar=kC(),ar!==r?(Jr=Y2(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=ne(ar,Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function Y2(){var ut,ar,Jr,Gn,Ts,Qo,vg;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=U_(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=NC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=ce(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;return ut}function U_(){var ut;return e.substr(K,2)===fe?(ut=fe,K+=2):(ut=r,Lr===0&&Na(ue)),ut===r&&(e.charCodeAt(K)===124?(ut=de,K++):(ut=r,Lr===0&&Na(be))),ut}function DC(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,ar=By(),ar!==r)if(e.charCodeAt(K)===61?(Jr=Se,K++):(Jr=r,Lr===0&&Na(De)),Jr!==r)if(Gn=Pf(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(we=ut,ar=k(ar,Gn),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;else K=ut,ut=r;if(ut===r)if(ut=K,ar=By(),ar!==r)if(e.charCodeAt(K)===61?(Jr=Se,K++):(Jr=r,Lr===0&&Na(De)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=et(ar),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;return ut}function kC(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng,Rf,uI,Th;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(e.charCodeAt(K)===40?(Jr=ct,K++):(Jr=r,Lr===0&&Na(Me)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=RC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();if(Qo!==r)if(e.charCodeAt(K)===41?(vg=je,K++):(vg=r,Lr===0&&Na(St)),vg!==r){for(Ng=[],Rf=xc();Rf!==r;)Ng.push(Rf),Rf=xc();if(Ng!==r){for(Rf=[],uI=vA();uI!==r;)Rf.push(uI),uI=vA();if(Rf!==r){for(uI=[],Th=xc();Th!==r;)uI.push(Th),Th=xc();uI!==r?(we=ut,ar=At(Ts,Rf),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(e.charCodeAt(K)===123?(Jr=Yt,K++):(Jr=r,Lr===0&&Na(Tr)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=RC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();if(Qo!==r)if(e.charCodeAt(K)===125?(vg=Nr,K++):(vg=r,Lr===0&&Na(er)),vg!==r){for(Ng=[],Rf=xc();Rf!==r;)Ng.push(Rf),Rf=xc();if(Ng!==r){for(Rf=[],uI=vA();uI!==r;)Rf.push(uI),uI=vA();if(Rf!==r){for(uI=[],Th=xc();Th!==r;)uI.push(Th),Th=xc();uI!==r?(we=ut,ar=vt(Ts,Rf),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){for(Jr=[],Gn=DC();Gn!==r;)Jr.push(Gn),Gn=DC();if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r){if(Ts=[],Qo=ph(),Qo!==r)for(;Qo!==r;)Ts.push(Qo),Qo=ph();else Ts=r;if(Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=xt(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){if(Jr=[],Gn=DC(),Gn!==r)for(;Gn!==r;)Jr.push(Gn),Gn=DC();else Jr=r;if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=Zr(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}}}return ut}function qI(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){if(Jr=[],Gn=Mc(),Gn!==r)for(;Gn!==r;)Jr.push(Gn),Gn=Mc();else Jr=r;if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=qt(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r;return ut}function ph(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r?(Jr=vA(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();ar!==r?(Jr=Mc(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}return ut}function vA(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(lr.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(cr)),Jr===r&&(Jr=null),Jr!==r?(Gn=Td(),Gn!==r?(Ts=Mc(),Ts!==r?(we=ut,ar=Ar(Jr,Gn,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function Td(){var ut;return e.substr(K,2)===qr?(ut=qr,K+=2):(ut=r,Lr===0&&Na(_n)),ut===r&&(e.substr(K,2)===ke?(ut=ke,K+=2):(ut=r,Lr===0&&Na(jt)),ut===r&&(e.charCodeAt(K)===62?(ut=Fn,K++):(ut=r,Lr===0&&Na(Nn)),ut===r&&(e.substr(K,3)===Hi?(ut=Hi,K+=3):(ut=r,Lr===0&&Na(po)),ut===r&&(e.substr(K,2)===Vr?(ut=Vr,K+=2):(ut=r,Lr===0&&Na(xi)),ut===r&&(e.charCodeAt(K)===60?(ut=io,K++):(ut=r,Lr===0&&Na(ga))))))),ut}function Mc(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(Jr=Pf(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function Pf(){var ut,ar,Jr;if(ut=K,ar=[],Jr=sE(),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=sE();else ar=r;return ar!==r&&(we=ut,ar=Ya(ar)),ut=ar,ut}function sE(){var ut,ar;return ut=K,ar=eA(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=QS(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=XS(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=um(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar))),ut}function eA(){var ut,ar,Jr,Gn;return ut=K,e.substr(K,2)===cl?(ar=cl,K+=2):(ar=r,Lr===0&&Na(Sc)),ar!==r?(Jr=Kl(),Jr!==r?(e.charCodeAt(K)===39?(Gn=Hr,K++):(Gn=r,Lr===0&&Na(Wr)),Gn!==r?(we=ut,ar=Ft(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function QS(){var ut,ar,Jr,Gn;return ut=K,e.charCodeAt(K)===39?(ar=Hr,K++):(ar=r,Lr===0&&Na(Wr)),ar!==r?(Jr=na(),Jr!==r?(e.charCodeAt(K)===39?(Gn=Hr,K++):(Gn=r,Lr===0&&Na(Wr)),Gn!==r?(we=ut,ar=Ft(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function XS(){var ut,ar,Jr,Gn;if(ut=K,e.substr(K,2)===zr?(ar=zr,K+=2):(ar=r,Lr===0&&Na(Rn)),ar!==r&&(we=ut,ar=Or()),ut=ar,ut===r)if(ut=K,e.charCodeAt(K)===34?(ar=Qi,K++):(ar=r,Lr===0&&Na(ps)),ar!==r){for(Jr=[],Gn=gm();Gn!==r;)Jr.push(Gn),Gn=gm();Jr!==r?(e.charCodeAt(K)===34?(Gn=Qi,K++):(Gn=r,Lr===0&&Na(ps)),Gn!==r?(we=ut,ar=yo(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;return ut}function um(){var ut,ar,Jr;if(ut=K,ar=[],Jr=cs(),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=cs();else ar=r;return ar!==r&&(we=ut,ar=yo(ar)),ut=ar,ut}function gm(){var ut,ar;return ut=K,ar=od(),ar!==r&&(we=ut,ar=bo(ar)),ut=ar,ut===r&&(ut=K,ar=UE(),ar!==r&&(we=ut,ar=Qa(ar)),ut=ar,ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=gc(ar)),ut=ar,ut===r&&(ut=K,ar=ko(),ar!==r&&(we=ut,ar=Cg(ar)),ut=ar))),ut}function cs(){var ut,ar;return ut=K,ar=od(),ar!==r&&(we=ut,ar=Nc(ar)),ut=ar,ut===r&&(ut=K,ar=UE(),ar!==r&&(we=ut,ar=iA(ar)),ut=ar,ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=ma(ar)),ut=ar,ut===r&&(ut=K,ar=Yp(),ar!==r&&(we=ut,ar=vu(ar)),ut=ar,ut===r&&(ut=K,ar=JE(),ar!==r&&(we=ut,ar=Cg(ar)),ut=ar)))),ut}function na(){var ut,ar,Jr;for(ut=K,ar=[],li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei));Jr!==r;)ar.push(Jr),li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei));return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function ko(){var ut,ar,Jr;if(ut=K,ar=[],Jr=ki(),Jr===r&&(Xa.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(ac))),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=ki(),Jr===r&&(Xa.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(ac)));else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function ki(){var ut,ar,Jr;return ut=K,e.substr(K,2)===Yl?(ar=Yl,K+=2):(ar=r,Lr===0&&Na(Wc)),ar!==r&&(we=ut,ar=Sg()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Da.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(pu)),Jr!==r?(we=ut,ar=_g(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)),ut}function Kl(){var ut,ar,Jr;for(ut=K,ar=[],Jr=fd(),Jr===r&&(li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei)));Jr!==r;)ar.push(Jr),Jr=fd(),Jr===r&&(li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei)));return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function fd(){var ut,ar,Jr;return ut=K,e.substr(K,2)===mI?(ar=mI,K+=2):(ar=r,Lr===0&&Na(Qh)),ar!==r&&(we=ut,ar=Ri()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===Do?(ar=Do,K+=2):(ar=r,Lr===0&&Na(Wt)),ar!==r&&(we=ut,ar=Hu()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Ru.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Vs)),Jr!==r?(we=ut,ar=Ju(),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===Yn?(ar=Yn,K+=2):(ar=r,Lr===0&&Na(Ko)),ar!==r&&(we=ut,ar=Eg()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===OA?(ar=OA,K+=2):(ar=r,Lr===0&&Na(GA)),ar!==r&&(we=ut,ar=$i()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===dl?(ar=dl,K+=2):(ar=r,Lr===0&&Na(Uf)),ar!==r&&(we=ut,ar=Kd()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===oA?(ar=oA,K+=2):(ar=r,Lr===0&&Na(oo)),ar!==r&&(we=ut,ar=Ki()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===cc?(ar=cc,K+=2):(ar=r,Lr===0&&Na(Xs)),ar!==r&&(we=ut,ar=ws()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Gs.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ma)),Jr!==r?(we=ut,ar=_g(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=jf()))))))))),ut}function jf(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng,Rf,uI,Th,oE;return ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Jr=Ld(),Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===As?(ar=As,K+=2):(ar=r,Lr===0&&Na(Tf)),ar!==r?(Jr=K,Gn=K,Ts=Ld(),Ts!==r?(Qo=AC(),Qo!==r?(Ts=[Ts,Qo],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn===r&&(Gn=Ld()),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===cm?(ar=cm,K+=2):(ar=r,Lr===0&&Na(Fl)),ar!==r?(Jr=K,Gn=K,Ts=AC(),Ts!==r?(Qo=AC(),Qo!==r?(vg=AC(),vg!==r?(Ng=AC(),Ng!==r?(Ts=[Ts,Qo,vg,Ng],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===rc?(ar=rc,K+=2):(ar=r,Lr===0&&Na(sd)),ar!==r?(Jr=K,Gn=K,Ts=AC(),Ts!==r?(Qo=AC(),Qo!==r?(vg=AC(),vg!==r?(Ng=AC(),Ng!==r?(Rf=AC(),Rf!==r?(uI=AC(),uI!==r?(Th=AC(),Th!==r?(oE=AC(),oE!==r?(Ts=[Ts,Qo,vg,Ng,Rf,uI,Th,oE],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Om(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)))),ut}function Ld(){var ut;return il.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(FA)),ut}function AC(){var ut;return ZA.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(El)),ut}function JE(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=[],Jr=K,e.charCodeAt(K)===92?(Gn=Ul,K++):(Gn=r,Lr===0&&Na(Xu)),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr===r&&(Jr=K,e.substr(K,2)===Mp?(Gn=Mp,K+=2):(Gn=r,Lr===0&&Na(MA)),Gn!==r&&(we=Jr,Gn=Er()),Jr=Gn,Jr===r&&(Jr=K,Gn=K,Lr++,Ts=fw(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r))),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=K,e.charCodeAt(K)===92?(Gn=Ul,K++):(Gn=r,Lr===0&&Na(Xu)),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr===r&&(Jr=K,e.substr(K,2)===Mp?(Gn=Mp,K+=2):(Gn=r,Lr===0&&Na(MA)),Gn!==r&&(we=Jr,Gn=Er()),Jr=Gn,Jr===r&&(Jr=K,Gn=K,Lr++,Ts=fw(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r)));else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function Ym(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,e.charCodeAt(K)===45?(ar=Zt,K++):(ar=r,Lr===0&&Na(yn)),ar===r&&(e.charCodeAt(K)===43?(ar=ls,K++):(ar=r,Lr===0&&Na(oa))),ar===r&&(ar=null),ar!==r){if(Jr=[],lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr)),Gn!==r)for(;Gn!==r;)Jr.push(Gn),lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr));else Jr=r;if(Jr!==r)if(e.charCodeAt(K)===46?(Gn=Fs,K++):(Gn=r,Lr===0&&Na(Wa)),Gn!==r){if(Ts=[],lr.test(e.charAt(K))?(Qo=e.charAt(K),K++):(Qo=r,Lr===0&&Na(cr)),Qo!==r)for(;Qo!==r;)Ts.push(Qo),lr.test(e.charAt(K))?(Qo=e.charAt(K),K++):(Qo=r,Lr===0&&Na(cr));else Ts=r;Ts!==r?(we=ut,ar=Ca(ar,Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;if(ut===r){if(ut=K,e.charCodeAt(K)===45?(ar=Zt,K++):(ar=r,Lr===0&&Na(yn)),ar===r&&(e.charCodeAt(K)===43?(ar=ls,K++):(ar=r,Lr===0&&Na(oa))),ar===r&&(ar=null),ar!==r){if(Jr=[],lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr)),Gn!==r)for(;Gn!==r;)Jr.push(Gn),lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr));else Jr=r;Jr!==r?(we=ut,ar=ld(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;if(ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=Rp(ar)),ut=ar,ut===r&&(ut=K,ar=$0(),ar!==r&&(we=ut,ar=np(ar)),ut=ar,ut===r)))if(ut=K,e.charCodeAt(K)===40?(ar=ct,K++):(ar=r,Lr===0&&Na(Me)),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();if(Jr!==r)if(Gn=K_(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(e.charCodeAt(K)===41?(Qo=je,K++):(Qo=r,Lr===0&&Na(St)),Qo!==r?(we=ut,ar=HA(Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r}return ut}function vy(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng;if(ut=K,ar=Ym(),ar!==r){for(Jr=[],Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===42?(Qo=df,K++):(Qo=r,Lr===0&&Na(Zs)),Qo===r&&(e.charCodeAt(K)===47?(Qo=so,K++):(Qo=r,Lr===0&&Na(Ea))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=Ym(),Ng!==r?(we=Gn,Ts=Ml(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r;for(;Gn!==r;){for(Jr.push(Gn),Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===42?(Qo=df,K++):(Qo=r,Lr===0&&Na(Zs)),Qo===r&&(e.charCodeAt(K)===47?(Qo=so,K++):(Qo=r,Lr===0&&Na(Ea))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=Ym(),Ng!==r?(we=Gn,Ts=Ml(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r}Jr!==r?(we=ut,ar=Dr(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;return ut}function K_(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng;if(ut=K,ar=vy(),ar!==r){for(Jr=[],Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===43?(Qo=ls,K++):(Qo=r,Lr===0&&Na(oa)),Qo===r&&(e.charCodeAt(K)===45?(Qo=Zt,K++):(Qo=r,Lr===0&&Na(yn))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=vy(),Ng!==r?(we=Gn,Ts=Wn(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r;for(;Gn!==r;){for(Jr.push(Gn),Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===43?(Qo=ls,K++):(Qo=r,Lr===0&&Na(oa)),Qo===r&&(e.charCodeAt(K)===45?(Qo=Zt,K++):(Qo=r,Lr===0&&Na(yn))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=vy(),Ng!==r?(we=Gn,Ts=Wn(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r}Jr!==r?(we=ut,ar=Dr(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;return ut}function od(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,e.substr(K,3)===di?(ar=di,K+=3):(ar=r,Lr===0&&Na(aa)),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();if(Jr!==r)if(Gn=K_(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(e.substr(K,2)===Bo?(Qo=Bo,K+=2):(Qo=r,Lr===0&&Na(us)),Qo!==r?(we=ut,ar=Ql(Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;return ut}function UE(){var ut,ar,Jr,Gn;return ut=K,e.substr(K,2)===LA?(ar=LA,K+=2):(ar=r,Lr===0&&Na(pf)),ar!==r?(Jr=RC(),Jr!==r?(e.charCodeAt(K)===41?(Gn=je,K++):(Gn=r,Lr===0&&Na(St)),Gn!==r?(we=ut,ar=ef(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function KE(){var ut,ar,Jr,Gn,Ts,Qo;return ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,2)===j1?(Gn=j1,K+=2):(Gn=r,Lr===0&&Na(pw)),Gn!==r?(Ts=qI(),Ts!==r?(e.charCodeAt(K)===125?(Qo=Nr,K++):(Qo=r,Lr===0&&Na(er)),Qo!==r?(we=ut,ar=YA(Jr,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,3)===Ac?(Gn=Ac,K+=3):(Gn=r,Lr===0&&Na(Nm)),Gn!==r?(we=ut,ar=HS(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,2)===jd?(Gn=jd,K+=2):(Gn=r,Lr===0&&Na(dh)),Gn!==r?(Ts=qI(),Ts!==r?(e.charCodeAt(K)===125?(Qo=Nr,K++):(Qo=r,Lr===0&&Na(er)),Qo!==r?(we=ut,ar=Hp(Jr,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,3)===uC?(Gn=uC,K+=3):(Gn=r,Lr===0&&Na(nE)),Gn!==r?(we=ut,ar=J_(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.charCodeAt(K)===125?(Gn=Nr,K++):(Gn=r,Lr===0&&Na(er)),Gn!==r?(we=ut,ar=q0(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.charCodeAt(K)===36?(ar=XE,K++):(ar=r,Lr===0&&Na(TC)),ar!==r?(Jr=$0(),Jr!==r?(we=ut,ar=q0(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)))))),ut}function Yp(){var ut,ar,Jr;return ut=K,ar=JS(),ar!==r?(we=K,Jr=t_(ar),Jr?Jr=void 0:Jr=r,Jr!==r?(we=ut,ar=cp(ar),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function JS(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=[],Jr=K,Gn=K,Lr++,Ts=Q2(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=K,Gn=K,Lr++,Ts=Q2(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r);else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function By(){var ut,ar,Jr;if(ut=K,ar=[],Mm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(fb)),Jr!==r)for(;Jr!==r;)ar.push(Jr),Mm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(fb));else ar=r;return ar!==r&&(we=ut,ar=pe()),ut=ar,ut}function $0(){var ut,ar,Jr;if(ut=K,ar=[],lm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Kf)),Jr!==r)for(;Jr!==r;)ar.push(Jr),lm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Kf));else ar=r;return ar!==r&&(we=ut,ar=pe()),ut=ar,ut}function fw(){var ut;return CI.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(_I)),ut}function Q2(){var ut;return H2.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(iE)),ut}function xc(){var ut,ar;if(ut=[],se.test(e.charAt(K))?(ar=e.charAt(K),K++):(ar=r,Lr===0&&Na(O)),ar!==r)for(;ar!==r;)ut.push(ar),se.test(e.charAt(K))?(ar=e.charAt(K),K++):(ar=r,Lr===0&&Na(O));else ut=r;return ut}if(fi=a(),fi!==r&&K===e.length)return fi;throw fi!==r&&K{"use strict";Object.defineProperty(XN,"__esModule",{value:!0});XN.parseShell=Rzs;XN.stringifyShellLine=_fe;XN.stringifyShell=_fe;XN.stringifyCommandLine=s6t;XN.stringifyCommandLineThen=$En;XN.stringifyCommandChain=o6t;XN.stringifyCommandChainThen=e1n;XN.stringifyCommand=t1n;XN.stringifyEnvSegment=i6t;XN.stringifyArgument=r1n;XN.stringifyRedirectArgument=Vct;XN.stringifyValueArgument=_Se;XN.stringifyArgumentSegment=s1n;XN.stringifyArithmeticExpression=a6t;XN.stringifyShellLine=_fe;XN.stringifyShell=_fe;var Tzs=qEn();function Rzs(e,t={isGlobPattern:()=>!1}){try{return(0,Tzs.parse)(e,t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function _fe(e,{endSemicolon:t=!1}={}){return e.map(({command:r,type:n},a)=>`${s6t(r)}${n===";"?a!==e.length-1||t?";":"":" &"}`).join(" ")}function s6t(e){return`${o6t(e.chain)}${e.then?` ${$En(e.then)}`:""}`}function $En(e){return`${e.type} ${s6t(e.line)}`}function o6t(e){return`${t1n(e)}${e.then?` ${e1n(e.then)}`:""}`}function e1n(e){return`${e.type} ${o6t(e.chain)}`}function t1n(e){switch(e.type){case"command":return`${e.envs.length>0?`${e.envs.map(t=>i6t(t)).join(" ")} `:""}${e.args.map(t=>r1n(t)).join(" ")}`;case"subshell":return`(${_fe(e.subshell)})${e.args.length>0?` ${e.args.map(t=>Vct(t)).join(" ")}`:""}`;case"group":return`{ ${_fe(e.group,{endSemicolon:!0})} }${e.args.length>0?` ${e.args.map(t=>Vct(t)).join(" ")}`:""}`;case"envs":return e.envs.map(t=>i6t(t)).join(" ");default:throw new Error(`Unsupported command type: "${e.type}"`)}}function i6t(e){return`${e.name}=${e.args[0]?_Se(e.args[0]):""}`}function r1n(e){switch(e.type){case"redirection":return Vct(e);case"argument":return _Se(e);default:throw new Error(`Unsupported argument type: "${e.type}"`)}}function Vct(e){return`${e.subtype} ${e.args.map(t=>_Se(t)).join(" ")}`}function _Se(e){return e.segments.map(t=>s1n(t)).join("")}var n1n=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Nzs=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(n1n,([e,t])=>[e,`"$'${t}'"`])]),i1n=e=>n1n.get(e)??`\\x${e.charCodeAt(0).toString(16).padStart(2,"0")}`,Dzs=e=>Nzs.get(e)??`"$'${i1n(e)}'"`;function s1n(e){let t=(n,a)=>a?`"${n}"`:n,r=n=>n===""?"''":n.match(/[()}<>$|&;"'\n\t ]/)?n.match(/['\t\p{C}]/u)?n.match(/'/)?`"${n.replace(/["$\t\p{C}]/u,Dzs)}"`:`$'${n.replace(/[\t\p{C}]/u,i1n)}'`:`'${n}'`:n;switch(e.type){case"text":return r(e.text);case"glob":return e.pattern;case"shell":return t(`$(${_fe(e.shell)})`,e.quoted);case"variable":return t(typeof e.defaultValue>"u"?typeof e.alternativeValue>"u"?`\${${e.name}}`:e.alternativeValue.length===0?`\${${e.name}:+}`:`\${${e.name}:+${e.alternativeValue.map(n=>_Se(n)).join(" ")}}`:e.defaultValue.length===0?`\${${e.name}:-}`:`\${${e.name}:-${e.defaultValue.map(n=>_Se(n)).join(" ")}}`,e.quoted);case"arithmetic":return`$(( ${a6t(e.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${e.type}"`)}}function a6t(e){let t=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,o)=>o?`( ${a} )`:a,n=a=>r(a6t(a),!["number","variable"].includes(a.type));switch(e.type){case"number":return String(e.value);case"variable":return e.name;default:return`${n(e.left)} ${t(e.type)} ${n(e.right)}`}}});var c1n=H((N3l,a1n)=>{"use strict";function kzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function yfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yfe)}kzs(yfe,Error);yfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;bfe&&(fe=ae,ue=[]),ue.push(cr))}function er(cr,Ar){return new yfe(cr,null,null,Ar)}function vt(cr,Ar,qr){return new yfe(yfe.buildMessage(cr,Ar),cr,Ar,qr)}function xt(){var cr,Ar,qr,_n;return cr=ae,Ar=Zr(),Ar!==r?(e.charCodeAt(ae)===47?(qr=o,ae++):(qr=r,de===0&&Nr(l)),qr!==r?(_n=Zr(),_n!==r?(ne=cr,Ar=A(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Zr(),Ar!==r&&(ne=cr,Ar=f(Ar)),cr=Ar),cr}function Zr(){var cr,Ar,qr,_n;return cr=ae,Ar=qt(),Ar!==r?(e.charCodeAt(ae)===64?(qr=I,ae++):(qr=r,de===0&&Nr(C)),qr!==r?(_n=lr(),_n!==r?(ne=cr,Ar=b(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=qt(),Ar!==r&&(ne=cr,Ar=E(Ar)),cr=Ar),cr}function qt(){var cr,Ar,qr,_n,ke;return cr=ae,e.charCodeAt(ae)===64?(Ar=I,ae++):(Ar=r,de===0&&Nr(C)),Ar!==r?(qr=Xt(),qr!==r?(e.charCodeAt(ae)===47?(_n=o,ae++):(_n=r,de===0&&Nr(l)),_n!==r?(ke=Xt(),ke!==r?(ne=cr,Ar=N(),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Xt(),Ar!==r&&(ne=cr,Ar=N()),cr=Ar),cr}function Xt(){var cr,Ar,qr;if(cr=ae,Ar=[],B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F)),qr!==r)for(;qr!==r;)Ar.push(qr),B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}function lr(){var cr,Ar,qr;if(cr=ae,Ar=[],Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X)),qr!==r)for(;qr!==r;)Ar.push(qr),Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}if(be=a(),be!==r&&ae===e.length)return be;throw be!==r&&ae{"use strict";Object.defineProperty(Pct,"__esModule",{value:!0});Pct.parseResolution=Fzs;Pct.stringifyResolution=Zzs;var Gzs=c1n();function Fzs(e){let t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,Gzs.parse)(e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Zzs(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+=`@${e.from.description}`),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+=`@${e.descriptor.description}`),t}});var Efe=H((k3l,bfe)=>{"use strict";function u1n(e){return typeof e>"u"||e===null}function Lzs(e){return typeof e=="object"&&e!==null}function Vzs(e){return Array.isArray(e)?e:u1n(e)?[]:[e]}function Pzs(e,t){var r,n,a,o;if(t)for(o=Object.keys(t),r=0,n=o.length;r{"use strict";function qOe(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qOe.prototype=Object.create(Error.prototype);qOe.prototype.constructor=qOe;qOe.prototype.toString=function(t){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!t&&this.mark&&(r+=" "+this.mark.toString()),r};g1n.exports=qOe});var p1n=H((G3l,d1n)=>{"use strict";var A1n=Efe();function c6t(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}c6t.prototype.getSnippet=function(t,r){var n,a,o,l,A;if(!this.buffer)return null;for(t=t||4,r=r||75,n="",a=this.position;a>0&&`\0\r +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Nzs=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(n1n,([e,t])=>[e,`"$'${t}'"`])]),i1n=e=>n1n.get(e)??`\\x${e.charCodeAt(0).toString(16).padStart(2,"0")}`,Dzs=e=>Nzs.get(e)??`"$'${i1n(e)}'"`;function s1n(e){let t=(n,a)=>a?`"${n}"`:n,r=n=>n===""?"''":n.match(/[()}<>$|&;"'\n\t ]/)?n.match(/['\t\p{C}]/u)?n.match(/'/)?`"${n.replace(/["$\t\p{C}]/u,Dzs)}"`:`$'${n.replace(/[\t\p{C}]/u,i1n)}'`:`'${n}'`:n;switch(e.type){case"text":return r(e.text);case"glob":return e.pattern;case"shell":return t(`$(${_fe(e.shell)})`,e.quoted);case"variable":return t(typeof e.defaultValue>"u"?typeof e.alternativeValue>"u"?`\${${e.name}}`:e.alternativeValue.length===0?`\${${e.name}:+}`:`\${${e.name}:+${e.alternativeValue.map(n=>_Se(n)).join(" ")}}`:e.defaultValue.length===0?`\${${e.name}:-}`:`\${${e.name}:-${e.defaultValue.map(n=>_Se(n)).join(" ")}}`,e.quoted);case"arithmetic":return`$(( ${a6t(e.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${e.type}"`)}}function a6t(e){let t=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,o)=>o?`( ${a} )`:a,n=a=>r(a6t(a),!["number","variable"].includes(a.type));switch(e.type){case"number":return String(e.value);case"variable":return e.name;default:return`${n(e.left)} ${t(e.type)} ${n(e.right)}`}}});var c1n=H((D3l,a1n)=>{"use strict";function kzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function yfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yfe)}kzs(yfe,Error);yfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;bfe&&(fe=ae,ue=[]),ue.push(cr))}function er(cr,Ar){return new yfe(cr,null,null,Ar)}function vt(cr,Ar,qr){return new yfe(yfe.buildMessage(cr,Ar),cr,Ar,qr)}function xt(){var cr,Ar,qr,_n;return cr=ae,Ar=Zr(),Ar!==r?(e.charCodeAt(ae)===47?(qr=o,ae++):(qr=r,de===0&&Nr(l)),qr!==r?(_n=Zr(),_n!==r?(ne=cr,Ar=A(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Zr(),Ar!==r&&(ne=cr,Ar=f(Ar)),cr=Ar),cr}function Zr(){var cr,Ar,qr,_n;return cr=ae,Ar=qt(),Ar!==r?(e.charCodeAt(ae)===64?(qr=I,ae++):(qr=r,de===0&&Nr(C)),qr!==r?(_n=lr(),_n!==r?(ne=cr,Ar=b(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=qt(),Ar!==r&&(ne=cr,Ar=E(Ar)),cr=Ar),cr}function qt(){var cr,Ar,qr,_n,ke;return cr=ae,e.charCodeAt(ae)===64?(Ar=I,ae++):(Ar=r,de===0&&Nr(C)),Ar!==r?(qr=Xt(),qr!==r?(e.charCodeAt(ae)===47?(_n=o,ae++):(_n=r,de===0&&Nr(l)),_n!==r?(ke=Xt(),ke!==r?(ne=cr,Ar=N(),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Xt(),Ar!==r&&(ne=cr,Ar=N()),cr=Ar),cr}function Xt(){var cr,Ar,qr;if(cr=ae,Ar=[],B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F)),qr!==r)for(;qr!==r;)Ar.push(qr),B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}function lr(){var cr,Ar,qr;if(cr=ae,Ar=[],Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X)),qr!==r)for(;qr!==r;)Ar.push(qr),Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}if(be=a(),be!==r&&ae===e.length)return be;throw be!==r&&ae{"use strict";Object.defineProperty(Pct,"__esModule",{value:!0});Pct.parseResolution=Fzs;Pct.stringifyResolution=Zzs;var Gzs=c1n();function Fzs(e){let t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,Gzs.parse)(e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Zzs(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+=`@${e.from.description}`),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+=`@${e.descriptor.description}`),t}});var Efe=H((x3l,bfe)=>{"use strict";function u1n(e){return typeof e>"u"||e===null}function Lzs(e){return typeof e=="object"&&e!==null}function Vzs(e){return Array.isArray(e)?e:u1n(e)?[]:[e]}function Pzs(e,t){var r,n,a,o;if(t)for(o=Object.keys(t),r=0,n=o.length;r{"use strict";function qOe(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qOe.prototype=Object.create(Error.prototype);qOe.prototype.constructor=qOe;qOe.prototype.toString=function(t){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!t&&this.mark&&(r+=" "+this.mark.toString()),r};g1n.exports=qOe});var p1n=H((F3l,d1n)=>{"use strict";var A1n=Efe();function c6t(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}c6t.prototype.getSnippet=function(t,r){var n,a,o,l,A;if(!this.buffer)return null;for(t=t||4,r=r||75,n="",a=this.position;a>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){n=" ... ",a+=5;break}for(o="",l=this.position;lr/2-1){o=" ... ",l-=5;break}return A=this.buffer.slice(a,l),A1n.repeat(" ",t)+n+A+o+` `+A1n.repeat(" ",t+this.position-a+n.length)+"^"};c6t.prototype.toString=function(t){var r,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),t||(r=this.getSnippet(),r&&(n+=`: -`+r)),n};d1n.exports=c6t});var ER=H((F3l,I1n)=>{"use strict";var f1n=ySe(),Mzs=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Hzs=["scalar","sequence","mapping"];function Yzs(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function Qzs(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(Mzs.indexOf(r)===-1)throw new f1n('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=Yzs(t.styleAliases||null),Hzs.indexOf(this.kind)===-1)throw new f1n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}I1n.exports=Qzs});var Sfe=H((Z3l,m1n)=>{"use strict";var h1n=Efe(),Wct=ySe(),Xzs=ER();function l6t(e,t,r){var n=[];return e.include.forEach(function(a){r=l6t(a,t,r)}),e[t].forEach(function(a){r.forEach(function(o,l){o.tag===a.tag&&o.kind===a.kind&&n.push(l)}),r.push(a)}),r.filter(function(a,o){return n.indexOf(o)===-1})}function Jzs(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,r;function n(a){e[a.kind][a.tag]=e.fallback[a.tag]=a}for(t=0,r=arguments.length;t{"use strict";var Uzs=ER();C1n.exports=new Uzs("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var b1n=H((V3l,y1n)=>{"use strict";var Kzs=ER();y1n.exports=new Kzs("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var S1n=H((P3l,E1n)=>{"use strict";var jzs=ER();E1n.exports=new jzs("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var Oct=H((W3l,v1n)=>{"use strict";var zzs=Sfe();v1n.exports=new zzs({explicit:[_1n(),b1n(),S1n()]})});var w1n=H((O3l,B1n)=>{"use strict";var qzs=ER();function $zs(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function eqs(){return null}function tqs(e){return e===null}B1n.exports=new qzs("tag:yaml.org,2002:null",{kind:"scalar",resolve:$zs,construct:eqs,predicate:tqs,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var R1n=H((M3l,T1n)=>{"use strict";var rqs=ER();function nqs(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function iqs(e){return e==="true"||e==="True"||e==="TRUE"}function sqs(e){return Object.prototype.toString.call(e)==="[object Boolean]"}T1n.exports=new rqs("tag:yaml.org,2002:bool",{kind:"scalar",resolve:nqs,construct:iqs,predicate:sqs,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var D1n=H((H3l,N1n)=>{"use strict";var oqs=Efe(),aqs=ER();function cqs(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function lqs(e){return 48<=e&&e<=55}function uqs(e){return 48<=e&&e<=57}function gqs(e){if(e===null)return!1;var t=e.length,r=0,n=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var G1n=H((Y3l,x1n)=>{"use strict";var k1n=Efe(),pqs=ER(),fqs=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Iqs(e){return!(e===null||!fqs.test(e)||e[e.length-1]==="_")}function hqs(e){var t,r,n,a;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,a=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(o){a.unshift(parseFloat(o,10))}),t=0,n=1,a.forEach(function(o){t+=o*n,n*=60}),r*t):r*parseFloat(t,10)}var mqs=/^[-+]?[0-9]+e/;function Cqs(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(k1n.isNegativeZero(e))return"-0.0";return r=e.toString(10),mqs.test(r)?r.replace("e",".e"):r}function _qs(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||k1n.isNegativeZero(e))}x1n.exports=new pqs("tag:yaml.org,2002:float",{kind:"scalar",resolve:Iqs,construct:hqs,predicate:_qs,represent:Cqs,defaultStyle:"lowercase"})});var u6t=H((Q3l,F1n)=>{"use strict";var yqs=Sfe();F1n.exports=new yqs({include:[Oct()],implicit:[w1n(),R1n(),D1n(),G1n()]})});var g6t=H((X3l,Z1n)=>{"use strict";var bqs=Sfe();Z1n.exports=new bqs({include:[u6t()]})});var W1n=H((J3l,P1n)=>{"use strict";var Eqs=ER(),L1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),V1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Sqs(e){return e===null?!1:L1n.exec(e)!==null||V1n.exec(e)!==null}function vqs(e){var t,r,n,a,o,l,A,f=0,I=null,C,b,E;if(t=L1n.exec(e),t===null&&(t=V1n.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(o=+t[4],l=+t[5],A=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(C=+t[10],b=+(t[11]||0),I=(C*60+b)*6e4,t[9]==="-"&&(I=-I)),E=new Date(Date.UTC(r,n,a,o,l,A,f)),I&&E.setTime(E.getTime()-I),E}function Bqs(e){return e.toISOString()}P1n.exports=new Eqs("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Sqs,construct:vqs,instanceOf:Date,represent:Bqs})});var M1n=H((U3l,O1n)=>{"use strict";var wqs=ER();function Tqs(e){return e==="<<"||e===null}O1n.exports=new wqs("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Tqs})});var Q1n=H((K3l,Y1n)=>{"use strict";var vfe;try{H1n=wt,vfe=H1n("buffer").Buffer}catch{}var H1n,Rqs=ER(),A6t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Nqs(e){if(e===null)return!1;var t,r,n=0,a=e.length,o=A6t;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8===0}function Dqs(e){var t,r,n=e.replace(/[\r\n=]/g,""),a=n.length,o=A6t,l=0,A=[];for(t=0;t>16&255),A.push(l>>8&255),A.push(l&255)),l=l<<6|o.indexOf(n.charAt(t));return r=a%4*6,r===0?(A.push(l>>16&255),A.push(l>>8&255),A.push(l&255)):r===18?(A.push(l>>10&255),A.push(l>>2&255)):r===12&&A.push(l>>4&255),vfe?vfe.from?vfe.from(A):new vfe(A):A}function kqs(e){var t="",r=0,n,a,o=e.length,l=A6t;for(n=0;n>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]),r=(r<<8)+e[n];return a=o%3,a===0?(t+=l[r>>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]):a===2?(t+=l[r>>10&63],t+=l[r>>4&63],t+=l[r<<2&63],t+=l[64]):a===1&&(t+=l[r>>2&63],t+=l[r<<4&63],t+=l[64],t+=l[64]),t}function xqs(e){return vfe&&vfe.isBuffer(e)}Y1n.exports=new Rqs("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Nqs,construct:Dqs,predicate:xqs,represent:kqs})});var J1n=H((z3l,X1n)=>{"use strict";var Gqs=ER(),Fqs=Object.prototype.hasOwnProperty,Zqs=Object.prototype.toString;function Lqs(e){if(e===null)return!0;var t=[],r,n,a,o,l,A=e;for(r=0,n=A.length;r{"use strict";var Pqs=ER(),Wqs=Object.prototype.toString;function Oqs(e){if(e===null)return!0;var t,r,n,a,o,l=e;for(o=new Array(l.length),t=0,r=l.length;t{"use strict";var Hqs=ER(),Yqs=Object.prototype.hasOwnProperty;function Qqs(e){if(e===null)return!0;var t,r=e;for(t in r)if(Yqs.call(r,t)&&r[t]!==null)return!1;return!0}function Xqs(e){return e!==null?e:{}}j1n.exports=new Hqs("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qqs,construct:Xqs})});var ESe=H((e5l,q1n)=>{"use strict";var Jqs=Sfe();q1n.exports=new Jqs({include:[g6t()],implicit:[W1n(),M1n()],explicit:[Q1n(),J1n(),K1n(),z1n()]})});var e2n=H((t5l,$1n)=>{"use strict";var Uqs=ER();function Kqs(){return!0}function jqs(){}function zqs(){return""}function qqs(e){return typeof e>"u"}$1n.exports=new Uqs("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Kqs,construct:jqs,predicate:qqs,represent:zqs})});var r2n=H((r5l,t2n)=>{"use strict";var $qs=ER();function e$s(e){if(e===null||e.length===0)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";return!(t[0]==="/"&&(r&&(n=r[1]),n.length>3||t[t.length-n.length-1]!=="/"))}function t$s(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return t[0]==="/"&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)}function r$s(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function n$s(e){return Object.prototype.toString.call(e)==="[object RegExp]"}t2n.exports=new $qs("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:e$s,construct:t$s,predicate:n$s,represent:r$s})});var s2n=H((n5l,i2n)=>{"use strict";var Mct;try{n2n=wt,Mct=n2n("esprima")}catch{typeof window<"u"&&(Mct=window.esprima)}var n2n,i$s=ER();function s$s(e){if(e===null)return!1;try{var t="("+e+")",r=Mct.parse(t,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function o$s(e){var t="("+e+")",r=Mct.parse(t,{range:!0}),n=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(o){n.push(o.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}function a$s(e){return e.toString()}function c$s(e){return Object.prototype.toString.call(e)==="[object Function]"}i2n.exports=new i$s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:s$s,construct:o$s,predicate:c$s,represent:a$s})});var $Oe=H((s5l,a2n)=>{"use strict";var o2n=Sfe();a2n.exports=o2n.DEFAULT=new o2n({include:[ESe()],explicit:[e2n(),r2n(),s2n()]})});var B2n=H((o5l,e3e)=>{"use strict";var Qq=Efe(),p2n=ySe(),l$s=p1n(),f2n=ESe(),u$s=$Oe(),toe=Object.prototype.hasOwnProperty,Hct=1,I2n=2,h2n=3,Yct=4,d6t=1,g$s=2,c2n=3,A$s=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d$s=/[\x85\u2028\u2029]/,p$s=/[,\[\]\{\}]/,m2n=/^(?:!|!!|![a-z\-]+!)$/i,C2n=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function l2n(e){return Object.prototype.toString.call(e)}function LK(e){return e===10||e===13}function wfe(e){return e===9||e===32}function W9(e){return e===9||e===32||e===10||e===13}function SSe(e){return e===44||e===91||e===93||e===123||e===125}function f$s(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function I$s(e){return e===120?2:e===117?4:e===85?8:0}function h$s(e){return 48<=e&&e<=57?e-48:-1}function u2n(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`+r)),n};d1n.exports=c6t});var ER=H((Z3l,I1n)=>{"use strict";var f1n=ySe(),Mzs=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Hzs=["scalar","sequence","mapping"];function Yzs(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function Qzs(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(Mzs.indexOf(r)===-1)throw new f1n('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=Yzs(t.styleAliases||null),Hzs.indexOf(this.kind)===-1)throw new f1n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}I1n.exports=Qzs});var Sfe=H((L3l,m1n)=>{"use strict";var h1n=Efe(),Wct=ySe(),Xzs=ER();function l6t(e,t,r){var n=[];return e.include.forEach(function(a){r=l6t(a,t,r)}),e[t].forEach(function(a){r.forEach(function(o,l){o.tag===a.tag&&o.kind===a.kind&&n.push(l)}),r.push(a)}),r.filter(function(a,o){return n.indexOf(o)===-1})}function Jzs(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,r;function n(a){e[a.kind][a.tag]=e.fallback[a.tag]=a}for(t=0,r=arguments.length;t{"use strict";var Uzs=ER();C1n.exports=new Uzs("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var b1n=H((P3l,y1n)=>{"use strict";var Kzs=ER();y1n.exports=new Kzs("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var S1n=H((W3l,E1n)=>{"use strict";var jzs=ER();E1n.exports=new jzs("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var Oct=H((O3l,v1n)=>{"use strict";var zzs=Sfe();v1n.exports=new zzs({explicit:[_1n(),b1n(),S1n()]})});var w1n=H((M3l,B1n)=>{"use strict";var qzs=ER();function $zs(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function eqs(){return null}function tqs(e){return e===null}B1n.exports=new qzs("tag:yaml.org,2002:null",{kind:"scalar",resolve:$zs,construct:eqs,predicate:tqs,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var R1n=H((H3l,T1n)=>{"use strict";var rqs=ER();function nqs(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function iqs(e){return e==="true"||e==="True"||e==="TRUE"}function sqs(e){return Object.prototype.toString.call(e)==="[object Boolean]"}T1n.exports=new rqs("tag:yaml.org,2002:bool",{kind:"scalar",resolve:nqs,construct:iqs,predicate:sqs,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var D1n=H((Y3l,N1n)=>{"use strict";var oqs=Efe(),aqs=ER();function cqs(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function lqs(e){return 48<=e&&e<=55}function uqs(e){return 48<=e&&e<=57}function gqs(e){if(e===null)return!1;var t=e.length,r=0,n=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var G1n=H((Q3l,x1n)=>{"use strict";var k1n=Efe(),pqs=ER(),fqs=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Iqs(e){return!(e===null||!fqs.test(e)||e[e.length-1]==="_")}function hqs(e){var t,r,n,a;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,a=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(o){a.unshift(parseFloat(o,10))}),t=0,n=1,a.forEach(function(o){t+=o*n,n*=60}),r*t):r*parseFloat(t,10)}var mqs=/^[-+]?[0-9]+e/;function Cqs(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(k1n.isNegativeZero(e))return"-0.0";return r=e.toString(10),mqs.test(r)?r.replace("e",".e"):r}function _qs(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||k1n.isNegativeZero(e))}x1n.exports=new pqs("tag:yaml.org,2002:float",{kind:"scalar",resolve:Iqs,construct:hqs,predicate:_qs,represent:Cqs,defaultStyle:"lowercase"})});var u6t=H((X3l,F1n)=>{"use strict";var yqs=Sfe();F1n.exports=new yqs({include:[Oct()],implicit:[w1n(),R1n(),D1n(),G1n()]})});var g6t=H((J3l,Z1n)=>{"use strict";var bqs=Sfe();Z1n.exports=new bqs({include:[u6t()]})});var W1n=H((U3l,P1n)=>{"use strict";var Eqs=ER(),L1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),V1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Sqs(e){return e===null?!1:L1n.exec(e)!==null||V1n.exec(e)!==null}function vqs(e){var t,r,n,a,o,l,A,f=0,I=null,C,b,E;if(t=L1n.exec(e),t===null&&(t=V1n.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(o=+t[4],l=+t[5],A=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(C=+t[10],b=+(t[11]||0),I=(C*60+b)*6e4,t[9]==="-"&&(I=-I)),E=new Date(Date.UTC(r,n,a,o,l,A,f)),I&&E.setTime(E.getTime()-I),E}function Bqs(e){return e.toISOString()}P1n.exports=new Eqs("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Sqs,construct:vqs,instanceOf:Date,represent:Bqs})});var M1n=H((K3l,O1n)=>{"use strict";var wqs=ER();function Tqs(e){return e==="<<"||e===null}O1n.exports=new wqs("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Tqs})});var Q1n=H((j3l,Y1n)=>{"use strict";var vfe;try{H1n=wt,vfe=H1n("buffer").Buffer}catch{}var H1n,Rqs=ER(),A6t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Nqs(e){if(e===null)return!1;var t,r,n=0,a=e.length,o=A6t;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8===0}function Dqs(e){var t,r,n=e.replace(/[\r\n=]/g,""),a=n.length,o=A6t,l=0,A=[];for(t=0;t>16&255),A.push(l>>8&255),A.push(l&255)),l=l<<6|o.indexOf(n.charAt(t));return r=a%4*6,r===0?(A.push(l>>16&255),A.push(l>>8&255),A.push(l&255)):r===18?(A.push(l>>10&255),A.push(l>>2&255)):r===12&&A.push(l>>4&255),vfe?vfe.from?vfe.from(A):new vfe(A):A}function kqs(e){var t="",r=0,n,a,o=e.length,l=A6t;for(n=0;n>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]),r=(r<<8)+e[n];return a=o%3,a===0?(t+=l[r>>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]):a===2?(t+=l[r>>10&63],t+=l[r>>4&63],t+=l[r<<2&63],t+=l[64]):a===1&&(t+=l[r>>2&63],t+=l[r<<4&63],t+=l[64],t+=l[64]),t}function xqs(e){return vfe&&vfe.isBuffer(e)}Y1n.exports=new Rqs("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Nqs,construct:Dqs,predicate:xqs,represent:kqs})});var J1n=H((q3l,X1n)=>{"use strict";var Gqs=ER(),Fqs=Object.prototype.hasOwnProperty,Zqs=Object.prototype.toString;function Lqs(e){if(e===null)return!0;var t=[],r,n,a,o,l,A=e;for(r=0,n=A.length;r{"use strict";var Pqs=ER(),Wqs=Object.prototype.toString;function Oqs(e){if(e===null)return!0;var t,r,n,a,o,l=e;for(o=new Array(l.length),t=0,r=l.length;t{"use strict";var Hqs=ER(),Yqs=Object.prototype.hasOwnProperty;function Qqs(e){if(e===null)return!0;var t,r=e;for(t in r)if(Yqs.call(r,t)&&r[t]!==null)return!1;return!0}function Xqs(e){return e!==null?e:{}}j1n.exports=new Hqs("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qqs,construct:Xqs})});var ESe=H((t5l,q1n)=>{"use strict";var Jqs=Sfe();q1n.exports=new Jqs({include:[g6t()],implicit:[W1n(),M1n()],explicit:[Q1n(),J1n(),K1n(),z1n()]})});var e2n=H((r5l,$1n)=>{"use strict";var Uqs=ER();function Kqs(){return!0}function jqs(){}function zqs(){return""}function qqs(e){return typeof e>"u"}$1n.exports=new Uqs("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Kqs,construct:jqs,predicate:qqs,represent:zqs})});var r2n=H((n5l,t2n)=>{"use strict";var $qs=ER();function e$s(e){if(e===null||e.length===0)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";return!(t[0]==="/"&&(r&&(n=r[1]),n.length>3||t[t.length-n.length-1]!=="/"))}function t$s(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return t[0]==="/"&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)}function r$s(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function n$s(e){return Object.prototype.toString.call(e)==="[object RegExp]"}t2n.exports=new $qs("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:e$s,construct:t$s,predicate:n$s,represent:r$s})});var s2n=H((i5l,i2n)=>{"use strict";var Mct;try{n2n=wt,Mct=n2n("esprima")}catch{typeof window<"u"&&(Mct=window.esprima)}var n2n,i$s=ER();function s$s(e){if(e===null)return!1;try{var t="("+e+")",r=Mct.parse(t,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function o$s(e){var t="("+e+")",r=Mct.parse(t,{range:!0}),n=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(o){n.push(o.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}function a$s(e){return e.toString()}function c$s(e){return Object.prototype.toString.call(e)==="[object Function]"}i2n.exports=new i$s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:s$s,construct:o$s,predicate:c$s,represent:a$s})});var $Oe=H((o5l,a2n)=>{"use strict";var o2n=Sfe();a2n.exports=o2n.DEFAULT=new o2n({include:[ESe()],explicit:[e2n(),r2n(),s2n()]})});var B2n=H((a5l,e3e)=>{"use strict";var Qq=Efe(),p2n=ySe(),l$s=p1n(),f2n=ESe(),u$s=$Oe(),toe=Object.prototype.hasOwnProperty,Hct=1,I2n=2,h2n=3,Yct=4,d6t=1,g$s=2,c2n=3,A$s=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d$s=/[\x85\u2028\u2029]/,p$s=/[,\[\]\{\}]/,m2n=/^(?:!|!!|![a-z\-]+!)$/i,C2n=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function l2n(e){return Object.prototype.toString.call(e)}function LK(e){return e===10||e===13}function wfe(e){return e===9||e===32}function W9(e){return e===9||e===32||e===10||e===13}function SSe(e){return e===44||e===91||e===93||e===123||e===125}function f$s(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function I$s(e){return e===120?2:e===117?4:e===85?8:0}function h$s(e){return 48<=e&&e<=57?e-48:-1}function u2n(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function m$s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var _2n=new Array(256),y2n=new Array(256);for(Bfe=0;Bfe<256;Bfe++)_2n[Bfe]=u2n(Bfe)?1:0,y2n[Bfe]=u2n(Bfe);var Bfe;function C$s(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||u$s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function b2n(e,t){return new p2n(t,new l$s(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function zp(e,t){throw b2n(e,t)}function Qct(e,t){e.onWarning&&e.onWarning.call(null,b2n(e,t))}var g2n={YAML:function(t,r,n){var a,o,l;t.version!==null&&zp(t,"duplication of %YAML directive"),n.length!==1&&zp(t,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),a===null&&zp(t,"ill-formed argument of the YAML directive"),o=parseInt(a[1],10),l=parseInt(a[2],10),o!==1&&zp(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=l<2,l!==1&&l!==2&&Qct(t,"unsupported YAML version of the document")},TAG:function(t,r,n){var a,o;n.length!==2&&zp(t,"TAG directive accepts exactly two arguments"),a=n[0],o=n[1],m2n.test(a)||zp(t,"ill-formed tag handle (first argument) of the TAG directive"),toe.call(t.tagMap,a)&&zp(t,'there is a previously declared suffix for "'+a+'" tag handle'),C2n.test(o)||zp(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[a]=o}};function eoe(e,t,r,n){var a,o,l,A;if(t1&&(e.result+=Qq.repeat(` `,t-1))}function _$s(e,t,r){var n,a,o,l,A,f,I,C,b=e.kind,E=e.result,N;if(N=e.input.charCodeAt(e.position),W9(N)||SSe(N)||N===35||N===38||N===42||N===33||N===124||N===62||N===39||N===34||N===37||N===64||N===96||(N===63||N===45)&&(a=e.input.charCodeAt(e.position+1),W9(a)||r&&SSe(a)))return!1;for(e.kind="scalar",e.result="",o=l=e.position,A=!1;N!==0;){if(N===58){if(a=e.input.charCodeAt(e.position+1),W9(a)||r&&SSe(a))break}else if(N===35){if(n=e.input.charCodeAt(e.position-1),W9(n))break}else{if(e.position===e.lineStart&&Xct(e)||r&&SSe(N))break;if(LK(N))if(f=e.line,I=e.lineStart,C=e.lineIndent,qw(e,!1,-1),e.lineIndent>=t){A=!0,N=e.input.charCodeAt(e.position);continue}else{e.position=l,e.line=f,e.lineStart=I,e.lineIndent=C;break}}A&&(eoe(e,o,l,!1),f6t(e,e.line-f),o=l=e.position,A=!1),wfe(N)||(l=e.position+1),N=e.input.charCodeAt(++e.position)}return eoe(e,o,l,!1),e.result?!0:(e.kind=b,e.result=E,!1)}function y$s(e,t){var r,n,a;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=a=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(eoe(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)n=e.position,e.position++,a=e.position;else return!0;else LK(r)?(eoe(e,n,a,!0),f6t(e,qw(e,!1,t)),n=a=e.position):e.position===e.lineStart&&Xct(e)?zp(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);zp(e,"unexpected end of the stream within a single quoted scalar")}function b$s(e,t){var r,n,a,o,l,A;if(A=e.input.charCodeAt(e.position),A!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;(A=e.input.charCodeAt(e.position))!==0;){if(A===34)return eoe(e,r,e.position,!0),e.position++,!0;if(A===92){if(eoe(e,r,e.position,!0),A=e.input.charCodeAt(++e.position),LK(A))qw(e,!1,t);else if(A<256&&_2n[A])e.result+=y2n[A],e.position++;else if((l=I$s(A))>0){for(a=l,o=0;a>0;a--)A=e.input.charCodeAt(++e.position),(l=f$s(A))>=0?o=(o<<4)+l:zp(e,"expected hexadecimal character");e.result+=m$s(o),e.position++}else zp(e,"unknown escape sequence");r=n=e.position}else LK(A)?(eoe(e,r,n,!0),f6t(e,qw(e,!1,t)),r=n=e.position):e.position===e.lineStart&&Xct(e)?zp(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}zp(e,"unexpected end of the stream within a double quoted scalar")}function E$s(e,t){var r=!0,n,a=e.tag,o,l=e.anchor,A,f,I,C,b,E={},N,B,F,Q;if(Q=e.input.charCodeAt(e.position),Q===91)f=93,b=!1,o=[];else if(Q===123)f=125,b=!0,o={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),Q=e.input.charCodeAt(++e.position);Q!==0;){if(qw(e,!0,t),Q=e.input.charCodeAt(e.position),Q===f)return e.position++,e.tag=a,e.anchor=l,e.kind=b?"mapping":"sequence",e.result=o,!0;r||zp(e,"missed comma between flow collection entries"),B=N=F=null,I=C=!1,Q===63&&(A=e.input.charCodeAt(e.position+1),W9(A)&&(I=C=!0,e.position++,qw(e,!0,t))),n=e.line,BSe(e,t,Hct,!1,!0),B=e.tag,N=e.result,qw(e,!0,t),Q=e.input.charCodeAt(e.position),(C||e.line===n)&&Q===58&&(I=!0,Q=e.input.charCodeAt(++e.position),qw(e,!0,t),BSe(e,t,Hct,!1,!0),F=e.result),b?vSe(e,o,E,B,N,F):I?o.push(vSe(e,null,E,B,N,F)):o.push(N),qw(e,!0,t),Q=e.input.charCodeAt(e.position),Q===44?(r=!0,Q=e.input.charCodeAt(++e.position)):r=!1}zp(e,"unexpected end of the stream within a flow collection")}function S$s(e,t){var r,n,a=d6t,o=!1,l=!1,A=t,f=0,I=!1,C,b;if(b=e.input.charCodeAt(e.position),b===124)n=!1;else if(b===62)n=!0;else return!1;for(e.kind="scalar",e.result="";b!==0;)if(b=e.input.charCodeAt(++e.position),b===43||b===45)d6t===a?a=b===43?c2n:g$s:zp(e,"repeat of a chomping mode identifier");else if((C=h$s(b))>=0)C===0?zp(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?zp(e,"repeat of an indentation width identifier"):(A=t+C-1,l=!0);else break;if(wfe(b)){do b=e.input.charCodeAt(++e.position);while(wfe(b));if(b===35)do b=e.input.charCodeAt(++e.position);while(!LK(b)&&b!==0)}for(;b!==0;){for(p6t(e),e.lineIndent=0,b=e.input.charCodeAt(e.position);(!l||e.lineIndentA&&(A=e.lineIndent),LK(b)){f++;continue}if(e.lineIndent` `,f+1)):f===0?o&&(e.result+=" "):e.result+=Qq.repeat(` `,f):e.result+=Qq.repeat(` `,o?1+f:f),o=!0,l=!0,f=0,r=e.position;!LK(b)&&b!==0;)b=e.input.charCodeAt(++e.position);eoe(e,r,e.position,!1)}return!0}function d2n(e,t){var r,n=e.tag,a=e.anchor,o=[],l,A=!1,f;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),f=e.input.charCodeAt(e.position);f!==0&&!(f!==45||(l=e.input.charCodeAt(e.position+1),!W9(l)));){if(A=!0,e.position++,qw(e,!0,-1)&&e.lineIndent<=t){o.push(null),f=e.input.charCodeAt(e.position);continue}if(r=e.line,BSe(e,t,h2n,!1,!0),o.push(e.result),qw(e,!0,-1),f=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&f!==0)zp(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(BSe(e,t,Yct,!0,a)&&(B?E=e.result:N=e.result),B||(vSe(e,I,C,b,E,N,o,l),b=E=N=null),qw(e,!0,-1),Q=e.input.charCodeAt(e.position)),e.lineIndent>t&&Q!==0)zp(e,"bad indentation of a mapping entry");else if(e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),b=0,E=e.implicitTypes.length;b tag; it should be "'+N.kind+'", not "'+e.kind+'"'),N.resolve(e.result)?(e.result=N.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):zp(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):zp(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||C}function R$s(e){var t=e.position,r,n,a,o=!1,l;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(l=e.input.charCodeAt(e.position))!==0&&(qw(e,!0,-1),l=e.input.charCodeAt(e.position),!(e.lineIndent>0||l!==37));){for(o=!0,l=e.input.charCodeAt(++e.position),r=e.position;l!==0&&!W9(l);)l=e.input.charCodeAt(++e.position);for(n=e.input.slice(r,e.position),a=[],n.length<1&&zp(e,"directive name must not be less than one character in length");l!==0;){for(;wfe(l);)l=e.input.charCodeAt(++e.position);if(l===35){do l=e.input.charCodeAt(++e.position);while(l!==0&&!LK(l));break}if(LK(l))break;for(r=e.position;l!==0&&!W9(l);)l=e.input.charCodeAt(++e.position);a.push(e.input.slice(r,e.position))}l!==0&&p6t(e),toe.call(g2n,n)?g2n[n](e,n,a):Qct(e,'unknown document directive "'+n+'"')}if(qw(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,qw(e,!0,-1)):o&&zp(e,"directives end mark is expected"),BSe(e,e.lineIndent-1,Yct,!1,!0),qw(e,!0,-1),e.checkLineBreaks&&d$s.test(e.input.slice(t,e.position))&&Qct(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Xct(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,qw(e,!0,-1));return}if(e.position"u"&&(r=t,t=null);var n=E2n(e,r);if(typeof t!="function")return n;for(var a=0,o=n.length;a"u"&&(r=t,t=null),S2n(e,t,Qq.extend({schema:f2n},r))}function D$s(e,t){return v2n(e,Qq.extend({schema:f2n},t))}e3e.exports.loadAll=S2n;e3e.exports.load=v2n;e3e.exports.safeLoadAll=N$s;e3e.exports.safeLoad=D$s});var K2n=H((a5l,C6t)=>{"use strict";var r3e=Efe(),n3e=ySe(),k$s=$Oe(),x$s=ESe(),G2n=Object.prototype.toString,F2n=Object.prototype.hasOwnProperty,G$s=9,t3e=10,F$s=13,Z$s=32,L$s=33,V$s=34,Z2n=35,P$s=37,W$s=38,O$s=39,M$s=42,L2n=44,H$s=45,V2n=58,Y$s=61,Q$s=62,X$s=63,J$s=64,P2n=91,W2n=93,U$s=96,O2n=123,K$s=124,M2n=125,aG={};aG[0]="\\0";aG[7]="\\a";aG[8]="\\b";aG[9]="\\t";aG[10]="\\n";aG[11]="\\v";aG[12]="\\f";aG[13]="\\r";aG[27]="\\e";aG[34]='\\"';aG[92]="\\\\";aG[133]="\\N";aG[160]="\\_";aG[8232]="\\L";aG[8233]="\\P";var j$s=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function z$s(e,t){var r,n,a,o,l,A,f;if(t===null)return{};for(r={},n=Object.keys(t),a=0,o=n.length;a"u"&&(r=t,t=null);var n=E2n(e,r);if(typeof t!="function")return n;for(var a=0,o=n.length;a"u"&&(r=t,t=null),S2n(e,t,Qq.extend({schema:f2n},r))}function D$s(e,t){return v2n(e,Qq.extend({schema:f2n},t))}e3e.exports.loadAll=S2n;e3e.exports.load=v2n;e3e.exports.safeLoadAll=N$s;e3e.exports.safeLoad=D$s});var K2n=H((c5l,C6t)=>{"use strict";var r3e=Efe(),n3e=ySe(),k$s=$Oe(),x$s=ESe(),G2n=Object.prototype.toString,F2n=Object.prototype.hasOwnProperty,G$s=9,t3e=10,F$s=13,Z$s=32,L$s=33,V$s=34,Z2n=35,P$s=37,W$s=38,O$s=39,M$s=42,L2n=44,H$s=45,V2n=58,Y$s=61,Q$s=62,X$s=63,J$s=64,P2n=91,W2n=93,U$s=96,O2n=123,K$s=124,M2n=125,aG={};aG[0]="\\0";aG[7]="\\a";aG[8]="\\b";aG[9]="\\t";aG[10]="\\n";aG[11]="\\v";aG[12]="\\f";aG[13]="\\r";aG[27]="\\e";aG[34]='\\"';aG[92]="\\\\";aG[133]="\\N";aG[160]="\\_";aG[8232]="\\L";aG[8233]="\\P";var j$s=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function z$s(e,t){var r,n,a,o,l,A,f;if(t===null)return{};for(r={},n=Object.keys(t),a=0,o=n.length;a0?e.charCodeAt(o-1):null,E=E&&R2n(l,A)}else{for(o=0;on&&e[b+1]!==" ",b=o);else if(!wSe(l))return Jct;A=o>0?e.charCodeAt(o-1):null,E=E&&R2n(l,A)}I=I||C&&o-b-1>n&&e[b+1]!==" "}return!f&&!I?E&&!a(e)?Y2n:Q2n:r>9&&H2n(e)?Jct:I?J2n:X2n}function neo(e,t,r,n){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&j$s.indexOf(t)!==-1)return"'"+t+"'";var a=e.indent*Math.max(1,r),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=n||e.flowLevel>-1&&r>=e.flowLevel;function A(f){return $$s(e,f)}switch(reo(t,l,e.indent,o,A)){case Y2n:return t;case Q2n:return"'"+t.replace(/'/g,"''")+"'";case X2n:return"|"+N2n(t,e.indent)+D2n(T2n(t,a));case J2n:return">"+N2n(t,e.indent)+D2n(T2n(ieo(t,o),a));case Jct:return'"'+seo(t,o)+'"';default:throw new n3e("impossible error: invalid scalar style")}}()}function N2n(e,t){var r=H2n(e)?String(t):"",n=e[e.length-1]===` @@ -128,7 +128,7 @@ ${t.map(r=>` `+e.slice(a,o),a=o+1),l=A;return f+=` `,e.length-a>t&&l>a?f+=e.slice(a,l)+` `+e.slice(l+1):f+=e.slice(a),f.slice(1)}function seo(e){for(var t="",r,n,a,o=0;o=55296&&r<=56319&&(n=e.charCodeAt(o+1),n>=56320&&n<=57343)){t+=w2n((r-55296)*1024+n-56320+65536),o++;continue}a=aG[r],t+=!a&&wSe(r)?e[o]:a||w2n(r)}return t}function oeo(e,t,r){var n="",a=e.tag,o,l;for(o=0,l=r.length;o1024&&(C+="? "),C+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Tfe(e,t,I,!1,!1)&&(C+=e.dump,n+=C));e.tag=a,e.dump="{"+n+"}"}function leo(e,t,r,n){var a="",o=e.tag,l=Object.keys(r),A,f,I,C,b,E;if(e.sortKeys===!0)l.sort();else if(typeof e.sortKeys=="function")l.sort(e.sortKeys);else if(e.sortKeys)throw new n3e("sortKeys must be a boolean or a function");for(A=0,f=l.length;A1024,b&&(e.dump&&t3e===e.dump.charCodeAt(0)?E+="?":E+="? "),E+=e.dump,b&&(E+=I6t(e,t)),Tfe(e,t+1,C,!0,b)&&(e.dump&&t3e===e.dump.charCodeAt(0)?E+=":":E+=": ",E+=e.dump,a+=E));e.tag=o,e.dump=a||"{}"}function x2n(e,t,r){var n,a,o,l,A,f;for(a=r?e.explicitTypes:e.implicitTypes,o=0,l=a.length;o tag resolver accepts not "'+f+'" style');e.dump=n}return!0}return!1}function Tfe(e,t,r,n,a,o){e.tag=null,e.dump=r,x2n(e,r,!1)||x2n(e,r,!0);var l=G2n.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var A=l==="[object Object]"||l==="[object Array]",f,I;if(A&&(f=e.duplicates.indexOf(r),I=f!==-1),(e.tag!==null&&e.tag!=="?"||I||e.indent!==2&&t>0)&&(a=!1),I&&e.usedDuplicates[f])e.dump="*ref_"+f;else{if(A&&I&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),l==="[object Object]")n&&Object.keys(e.dump).length!==0?(leo(e,t,e.dump,a),I&&(e.dump="&ref_"+f+e.dump)):(ceo(e,t,e.dump),I&&(e.dump="&ref_"+f+" "+e.dump));else if(l==="[object Array]"){var C=e.noArrayIndent&&t>0?t-1:t;n&&e.dump.length!==0?(aeo(e,C,e.dump,a),I&&(e.dump="&ref_"+f+e.dump)):(oeo(e,C,e.dump),I&&(e.dump="&ref_"+f+" "+e.dump))}else if(l==="[object String]")e.tag!=="?"&&neo(e,e.dump,t,o);else{if(e.skipInvalid)return!1;throw new n3e("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function ueo(e,t){var r=[],n=[],a,o;for(h6t(e,r,n),a=0,o=n.length;a{"use strict";var Uct=B2n(),j2n=K2n();function Kct(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Fv.exports.Type=ER();Fv.exports.Schema=Sfe();Fv.exports.FAILSAFE_SCHEMA=Oct();Fv.exports.JSON_SCHEMA=u6t();Fv.exports.CORE_SCHEMA=g6t();Fv.exports.DEFAULT_SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_FULL_SCHEMA=$Oe();Fv.exports.load=Uct.load;Fv.exports.loadAll=Uct.loadAll;Fv.exports.safeLoad=Uct.safeLoad;Fv.exports.safeLoadAll=Uct.safeLoadAll;Fv.exports.dump=j2n.dump;Fv.exports.safeDump=j2n.safeDump;Fv.exports.YAMLException=ySe();Fv.exports.MINIMAL_SCHEMA=Oct();Fv.exports.SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_SCHEMA=$Oe();Fv.exports.scan=Kct("scan");Fv.exports.parse=Kct("parse");Fv.exports.compose=Kct("compose");Fv.exports.addConstructor=Kct("addConstructor")});var $2n=H((l5l,q2n)=>{"use strict";var Aeo=z2n();q2n.exports=Aeo});var tSn=H((u5l,eSn)=>{"use strict";function deo(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Rfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Rfe)}deo(Rfe,Error);Rfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b({[aa]:di})))},fe=function(Dr){return Dr},ue=function(Dr){return Dr},de=Gs("correct indentation"),be=" ",Se=Ki(" ",!1),De=function(Dr){return Dr.length===Ml*Ea},k=function(Dr){return Dr.length===(Ml+1)*Ea},et=function(){return Ml++,!0},ct=function(){return Ml--,!0},Me=function(){return Uf()},je=Gs("pseudostring"),St=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,At=cc(["\r",` +`:""}function geo(e,t){return U2n(e,r3e.extend({schema:x$s},t))}C6t.exports.dump=U2n;C6t.exports.safeDump=geo});var z2n=H((l5l,Fv)=>{"use strict";var Uct=B2n(),j2n=K2n();function Kct(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Fv.exports.Type=ER();Fv.exports.Schema=Sfe();Fv.exports.FAILSAFE_SCHEMA=Oct();Fv.exports.JSON_SCHEMA=u6t();Fv.exports.CORE_SCHEMA=g6t();Fv.exports.DEFAULT_SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_FULL_SCHEMA=$Oe();Fv.exports.load=Uct.load;Fv.exports.loadAll=Uct.loadAll;Fv.exports.safeLoad=Uct.safeLoad;Fv.exports.safeLoadAll=Uct.safeLoadAll;Fv.exports.dump=j2n.dump;Fv.exports.safeDump=j2n.safeDump;Fv.exports.YAMLException=ySe();Fv.exports.MINIMAL_SCHEMA=Oct();Fv.exports.SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_SCHEMA=$Oe();Fv.exports.scan=Kct("scan");Fv.exports.parse=Kct("parse");Fv.exports.compose=Kct("compose");Fv.exports.addConstructor=Kct("addConstructor")});var $2n=H((u5l,q2n)=>{"use strict";var Aeo=z2n();q2n.exports=Aeo});var tSn=H((g5l,eSn)=>{"use strict";function deo(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Rfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Rfe)}deo(Rfe,Error);Rfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b({[aa]:di})))},fe=function(Dr){return Dr},ue=function(Dr){return Dr},de=Gs("correct indentation"),be=" ",Se=Ki(" ",!1),De=function(Dr){return Dr.length===Ml*Ea},k=function(Dr){return Dr.length===(Ml+1)*Ea},et=function(){return Ml++,!0},ct=function(){return Ml--,!0},Me=function(){return Uf()},je=Gs("pseudostring"),St=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,At=cc(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Yt=/^[^\r\n\t ,\][{}:#"']/,Tr=cc(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Nr=function(){return Uf().replace(/^ *| *$/g,"")},er="--",vt=Ki("--",!1),xt=/^[a-zA-Z\/0-9]/,Zr=cc([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),qt=/^[^\r\n\t :,]/,Xt=cc(["\r",` `," "," ",":",","],!0,!1),lr="null",cr=Ki("null",!1),Ar=function(){return null},qr="true",_n=Ki("true",!1),ke=function(){return!0},jt="false",Fn=Ki("false",!1),Nn=function(){return!1},Hi=Gs("string"),po='"',Vr=Ki('"',!1),xi=function(){return""},io=function(Dr){return Dr},ga=function(Dr){return Dr.join("")},Ya=/^[^"\\\0-\x1F\x7F]/,Gc=cc(['"',"\\",["\0",""],"\x7F"],!0,!1),cl='\\"',Sc=Ki('\\"',!1),Hr=function(){return'"'},Wr="\\\\",Ft=Ki("\\\\",!1),zr=function(){return"\\"},Rn="\\/",Or=Ki("\\/",!1),Qi=function(){return"/"},ps="\\b",yo=Ki("\\b",!1),bo=function(){return"\b"},Qa="\\f",gc=Ki("\\f",!1),Cg=function(){return"\f"},Nc="\\n",iA=Ki("\\n",!1),ma=function(){return` @@ -150,17 +150,17 @@ ${N}:`:`${b}:`,F=E.startsWith(` ${A}`:`${A}`}throw new Error(`Unsupported value type (${e})`)}function oSn(e){try{let t=_6t(e,0,!1);return t!==` `?t:""}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}oSn.PreserveOrdering=i3e;function heo(e){return e.endsWith(` `)||(e+=` -`),(0,feo.parse)(e)}var meo=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Ceo(e){if(meo.test(e))return heo(e);let t=(0,rSn.safeLoad)(e,{schema:rSn.FAILSAFE_SCHEMA,json:!0});if(t==null)return{};if(typeof t!="object")throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function _eo(e){return Ceo(e)}});var TW=H(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.stringifySyml=ym.parseSyml=ym.stringifyResolution=ym.parseResolution=ym.stringifyValueArgument=ym.stringifyShellLine=ym.stringifyRedirectArgument=ym.stringifyEnvSegment=ym.stringifyCommandLineThen=ym.stringifyCommandLine=ym.stringifyCommandChainThen=ym.stringifyCommandChain=ym.stringifyCommand=ym.stringifyArithmeticExpression=ym.stringifyArgumentSegment=ym.stringifyArgument=ym.stringifyShell=ym.parseShell=void 0;var O9=o1n();Object.defineProperty(ym,"parseShell",{enumerable:!0,get:function(){return O9.parseShell}});Object.defineProperty(ym,"stringifyShell",{enumerable:!0,get:function(){return O9.stringifyShell}});Object.defineProperty(ym,"stringifyArgument",{enumerable:!0,get:function(){return O9.stringifyArgument}});Object.defineProperty(ym,"stringifyArgumentSegment",{enumerable:!0,get:function(){return O9.stringifyArgumentSegment}});Object.defineProperty(ym,"stringifyArithmeticExpression",{enumerable:!0,get:function(){return O9.stringifyArithmeticExpression}});Object.defineProperty(ym,"stringifyCommand",{enumerable:!0,get:function(){return O9.stringifyCommand}});Object.defineProperty(ym,"stringifyCommandChain",{enumerable:!0,get:function(){return O9.stringifyCommandChain}});Object.defineProperty(ym,"stringifyCommandChainThen",{enumerable:!0,get:function(){return O9.stringifyCommandChainThen}});Object.defineProperty(ym,"stringifyCommandLine",{enumerable:!0,get:function(){return O9.stringifyCommandLine}});Object.defineProperty(ym,"stringifyCommandLineThen",{enumerable:!0,get:function(){return O9.stringifyCommandLineThen}});Object.defineProperty(ym,"stringifyEnvSegment",{enumerable:!0,get:function(){return O9.stringifyEnvSegment}});Object.defineProperty(ym,"stringifyRedirectArgument",{enumerable:!0,get:function(){return O9.stringifyRedirectArgument}});Object.defineProperty(ym,"stringifyShellLine",{enumerable:!0,get:function(){return O9.stringifyShellLine}});Object.defineProperty(ym,"stringifyValueArgument",{enumerable:!0,get:function(){return O9.stringifyValueArgument}});var cSn=l1n();Object.defineProperty(ym,"parseResolution",{enumerable:!0,get:function(){return cSn.parseResolution}});Object.defineProperty(ym,"stringifyResolution",{enumerable:!0,get:function(){return cSn.stringifyResolution}});var lSn=aSn();Object.defineProperty(ym,"parseSyml",{enumerable:!0,get:function(){return lSn.parseSyml}});Object.defineProperty(ym,"stringifySyml",{enumerable:!0,get:function(){return lSn.stringifySyml}})});var gSn=H((d5l,y6t)=>{"use strict";var yeo=e=>{let t=!1,r=!1,n=!1;for(let a=0;a{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);let r=a=>t.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=yeo(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,o)=>o.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(e))};y6t.exports=uSn;y6t.exports.default=uSn});var ASn=H((p5l,beo)=>{beo.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Nfe=H(RW=>{"use strict";var pSn=ASn(),SR=process.env;Object.defineProperty(RW,"_vendors",{value:pSn.map(function(e){return e.constant})});RW.name=null;RW.isPR=null;pSn.forEach(function(e){let r=(Array.isArray(e.env)?e.env:[e.env]).every(function(n){return dSn(n)});if(RW[e.constant]=r,!!r)switch(RW.name=e.name,typeof e.pr){case"string":RW.isPR=!!SR[e.pr];break;case"object":"env"in e.pr?RW.isPR=e.pr.env in SR&&SR[e.pr.env]!==e.pr.ne:"any"in e.pr?RW.isPR=e.pr.any.some(function(n){return!!SR[n]}):RW.isPR=dSn(e.pr);break;default:RW.isPR=null}});RW.isCI=!!(SR.CI!=="false"&&(SR.BUILD_ID||SR.BUILD_NUMBER||SR.CI||SR.CI_APP_ID||SR.CI_BUILD_ID||SR.CI_BUILD_NUMBER||SR.CI_NAME||SR.CONTINUOUS_INTEGRATION||SR.RUN_ID||RW.name));function dSn(e){return typeof e=="string"?!!SR[e]:"env"in e?SR[e.env]&&SR[e.env].includes(e.includes):"any"in e?e.any.some(function(t){return!!SR[t]}):Object.keys(e).every(function(t){return SR[t]===e[t]})}});var fSn=H((I5l,Eeo)=>{Eeo.exports={name:"dotenv",version:"16.4.5",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var CSn=H((h5l,Xq)=>{var b6t=wt("fs"),E6t=wt("path"),Seo=wt("os"),veo=wt("crypto"),Beo=fSn(),S6t=Beo.version,weo=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Teo(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,` +`),(0,feo.parse)(e)}var meo=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Ceo(e){if(meo.test(e))return heo(e);let t=(0,rSn.safeLoad)(e,{schema:rSn.FAILSAFE_SCHEMA,json:!0});if(t==null)return{};if(typeof t!="object")throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function _eo(e){return Ceo(e)}});var TW=H(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.stringifySyml=ym.parseSyml=ym.stringifyResolution=ym.parseResolution=ym.stringifyValueArgument=ym.stringifyShellLine=ym.stringifyRedirectArgument=ym.stringifyEnvSegment=ym.stringifyCommandLineThen=ym.stringifyCommandLine=ym.stringifyCommandChainThen=ym.stringifyCommandChain=ym.stringifyCommand=ym.stringifyArithmeticExpression=ym.stringifyArgumentSegment=ym.stringifyArgument=ym.stringifyShell=ym.parseShell=void 0;var O9=o1n();Object.defineProperty(ym,"parseShell",{enumerable:!0,get:function(){return O9.parseShell}});Object.defineProperty(ym,"stringifyShell",{enumerable:!0,get:function(){return O9.stringifyShell}});Object.defineProperty(ym,"stringifyArgument",{enumerable:!0,get:function(){return O9.stringifyArgument}});Object.defineProperty(ym,"stringifyArgumentSegment",{enumerable:!0,get:function(){return O9.stringifyArgumentSegment}});Object.defineProperty(ym,"stringifyArithmeticExpression",{enumerable:!0,get:function(){return O9.stringifyArithmeticExpression}});Object.defineProperty(ym,"stringifyCommand",{enumerable:!0,get:function(){return O9.stringifyCommand}});Object.defineProperty(ym,"stringifyCommandChain",{enumerable:!0,get:function(){return O9.stringifyCommandChain}});Object.defineProperty(ym,"stringifyCommandChainThen",{enumerable:!0,get:function(){return O9.stringifyCommandChainThen}});Object.defineProperty(ym,"stringifyCommandLine",{enumerable:!0,get:function(){return O9.stringifyCommandLine}});Object.defineProperty(ym,"stringifyCommandLineThen",{enumerable:!0,get:function(){return O9.stringifyCommandLineThen}});Object.defineProperty(ym,"stringifyEnvSegment",{enumerable:!0,get:function(){return O9.stringifyEnvSegment}});Object.defineProperty(ym,"stringifyRedirectArgument",{enumerable:!0,get:function(){return O9.stringifyRedirectArgument}});Object.defineProperty(ym,"stringifyShellLine",{enumerable:!0,get:function(){return O9.stringifyShellLine}});Object.defineProperty(ym,"stringifyValueArgument",{enumerable:!0,get:function(){return O9.stringifyValueArgument}});var cSn=l1n();Object.defineProperty(ym,"parseResolution",{enumerable:!0,get:function(){return cSn.parseResolution}});Object.defineProperty(ym,"stringifyResolution",{enumerable:!0,get:function(){return cSn.stringifyResolution}});var lSn=aSn();Object.defineProperty(ym,"parseSyml",{enumerable:!0,get:function(){return lSn.parseSyml}});Object.defineProperty(ym,"stringifySyml",{enumerable:!0,get:function(){return lSn.stringifySyml}})});var gSn=H((p5l,y6t)=>{"use strict";var yeo=e=>{let t=!1,r=!1,n=!1;for(let a=0;a{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);let r=a=>t.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=yeo(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,o)=>o.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(e))};y6t.exports=uSn;y6t.exports.default=uSn});var ASn=H((f5l,beo)=>{beo.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Nfe=H(RW=>{"use strict";var pSn=ASn(),SR=process.env;Object.defineProperty(RW,"_vendors",{value:pSn.map(function(e){return e.constant})});RW.name=null;RW.isPR=null;pSn.forEach(function(e){let r=(Array.isArray(e.env)?e.env:[e.env]).every(function(n){return dSn(n)});if(RW[e.constant]=r,!!r)switch(RW.name=e.name,typeof e.pr){case"string":RW.isPR=!!SR[e.pr];break;case"object":"env"in e.pr?RW.isPR=e.pr.env in SR&&SR[e.pr.env]!==e.pr.ne:"any"in e.pr?RW.isPR=e.pr.any.some(function(n){return!!SR[n]}):RW.isPR=dSn(e.pr);break;default:RW.isPR=null}});RW.isCI=!!(SR.CI!=="false"&&(SR.BUILD_ID||SR.BUILD_NUMBER||SR.CI||SR.CI_APP_ID||SR.CI_BUILD_ID||SR.CI_BUILD_NUMBER||SR.CI_NAME||SR.CONTINUOUS_INTEGRATION||SR.RUN_ID||RW.name));function dSn(e){return typeof e=="string"?!!SR[e]:"env"in e?SR[e.env]&&SR[e.env].includes(e.includes):"any"in e?e.any.some(function(t){return!!SR[t]}):Object.keys(e).every(function(t){return SR[t]===e[t]})}});var fSn=H((h5l,Eeo)=>{Eeo.exports={name:"dotenv",version:"16.4.5",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var CSn=H((m5l,Xq)=>{var b6t=wt("fs"),E6t=wt("path"),Seo=wt("os"),veo=wt("crypto"),Beo=fSn(),S6t=Beo.version,weo=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Teo(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,` `);let n;for(;(n=weo.exec(r))!=null;){let a=n[1],o=n[2]||"";o=o.trim();let l=o[0];o=o.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),l==='"'&&(o=o.replace(/\\n/g,` -`),o=o.replace(/\\r/g,"\r")),t[a]=o}return t}function Reo(e){let t=mSn(e),r=vR.configDotenv({path:t});if(!r.parsed){let l=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw l.code="MISSING_DATA",l}let n=hSn(e).split(","),a=n.length,o;for(let l=0;l=a)throw A}return vR.parse(o)}function Neo(e){console.log(`[dotenv@${S6t}][INFO] ${e}`)}function Deo(e){console.log(`[dotenv@${S6t}][WARN] ${e}`)}function jct(e){console.log(`[dotenv@${S6t}][DEBUG] ${e}`)}function hSn(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function keo(e,t){let r;try{r=new URL(t)}catch(A){if(A.code==="ERR_INVALID_URL"){let f=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw f.code="INVALID_DOTENV_KEY",f}throw A}let n=r.password;if(!n){let A=new Error("INVALID_DOTENV_KEY: Missing key part");throw A.code="INVALID_DOTENV_KEY",A}let a=r.searchParams.get("environment");if(!a){let A=new Error("INVALID_DOTENV_KEY: Missing environment part");throw A.code="INVALID_DOTENV_KEY",A}let o=`DOTENV_VAULT_${a.toUpperCase()}`,l=e.parsed[o];if(!l){let A=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw A.code="NOT_FOUND_DOTENV_ENVIRONMENT",A}return{ciphertext:l,key:n}}function mSn(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)b6t.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=E6t.resolve(process.cwd(),".env.vault");return b6t.existsSync(t)?t:null}function ISn(e){return e[0]==="~"?E6t.join(Seo.homedir(),e.slice(1)):e}function xeo(e){Neo("Loading env from encrypted .env.vault");let t=vR._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),vR.populate(r,t,e),{parsed:t}}function Geo(e){let t=E6t.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug);e&&e.encoding?r=e.encoding:n&&jct("No encoding is specified. UTF-8 is used by default");let a=[t];if(e&&e.path)if(!Array.isArray(e.path))a=[ISn(e.path)];else{a=[];for(let f of e.path)a.push(ISn(f))}let o,l={};for(let f of a)try{let I=vR.parse(b6t.readFileSync(f,{encoding:r}));vR.populate(l,I,e)}catch(I){n&&jct(`Failed to load ${f} ${I.message}`),o=I}let A=process.env;return e&&e.processEnv!=null&&(A=e.processEnv),vR.populate(A,l,e),o?{parsed:l,error:o}:{parsed:l}}function Feo(e){if(hSn(e).length===0)return vR.configDotenv(e);let t=mSn(e);return t?vR._configVault(e):(Deo(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),vR.configDotenv(e))}function Zeo(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),a=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let l=veo.createDecipheriv("aes-256-gcm",r,a);return l.setAuthTag(o),`${l.update(n)}${l.final()}`}catch(l){let A=l instanceof RangeError,f=l.message==="Invalid key length",I=l.message==="Unsupported state or unable to authenticate data";if(A||f){let C=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw C.code="INVALID_DOTENV_KEY",C}else if(I){let C=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw C.code="DECRYPTION_FAILED",C}else throw l}}function Leo(e,t,r={}){let n=!!(r&&r.debug),a=!!(r&&r.override);if(typeof t!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(t))Object.prototype.hasOwnProperty.call(e,o)?(a===!0&&(e[o]=t[o]),n&&jct(a===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=t[o]}var vR={configDotenv:Geo,_configVault:xeo,_parseVault:Reo,config:Feo,decrypt:Zeo,parse:Teo,populate:Leo};Xq.exports.configDotenv=vR.configDotenv;Xq.exports._configVault=vR._configVault;Xq.exports._parseVault=vR._parseVault;Xq.exports.config=vR.config;Xq.exports.decrypt=vR.decrypt;Xq.exports.parse=vR.parse;Xq.exports.populate=vR.populate;Xq.exports=vR});var ySn=H((m5l,v6t)=>{"use strict";var _Sn=(e,...t)=>new Promise(r=>{r(e(...t))});v6t.exports=_Sn;v6t.exports.default=_Sn});var Dfe=H((C5l,B6t)=>{"use strict";var Veo=ySn(),bSn=e=>{if(!((Number.isInteger(e)||e===1/0)&&e>0))return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},a=(A,f,...I)=>{r++;let C=Veo(A,...I);f(C),C.then(n,n)},o=(A,f,...I)=>{rnew Promise(I=>o(A,I,...f));return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),l};B6t.exports=bSn;B6t.exports.default=bSn});var M9=H(RSe=>{"use strict";Object.defineProperty(RSe,"__esModule",{value:!0});RSe.MessageName=void 0;RSe.stringifyMessageName=Peo;RSe.parseMessageName=Weo;var w6t;(function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",e[e.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",e[e.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",e[e.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",e[e.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",e[e.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",e[e.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",e[e.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",e[e.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",e[e.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",e[e.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",e[e.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",e[e.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",e[e.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",e[e.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",e[e.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",e[e.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",e[e.NETWORK_DISABLED=80]="NETWORK_DISABLED",e[e.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",e[e.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",e[e.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",e[e.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",e[e.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",e[e.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",e[e.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",e[e.VERSION_NOTICE=88]="VERSION_NOTICE",e[e.TIPS_NOTICE=89]="TIPS_NOTICE",e[e.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",e[e.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",e[e.EXPERIMENTAL=92]="EXPERIMENTAL"})(w6t||(RSe.MessageName=w6t={}));function Peo(e){return`YN${e.toString(10).padStart(4,"0")}`}function Weo(e){let t=Number(e.slice(2));if(typeof w6t[t]>"u")throw new Error(`Unknown message name: "${e}"`);return t}});var s3e=H((y5l,ESn)=>{var Oeo="2.0.0",Meo=Number.MAX_SAFE_INTEGER||9007199254740991,Heo=16,Yeo=250,Qeo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ESn.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Heo,MAX_SAFE_BUILD_LENGTH:Yeo,MAX_SAFE_INTEGER:Meo,RELEASE_TYPES:Qeo,SEMVER_SPEC_VERSION:Oeo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var o3e=H((b5l,SSn)=>{var Xeo=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};SSn.exports=Xeo});var NSe=H((Jq,vSn)=>{var{MAX_SAFE_COMPONENT_LENGTH:T6t,MAX_SAFE_BUILD_LENGTH:Jeo,MAX_LENGTH:Ueo}=s3e(),Keo=o3e();Jq=vSn.exports={};var jeo=Jq.re=[],zeo=Jq.safeRe=[],AA=Jq.src=[],dA=Jq.t={},qeo=0,R6t="[a-zA-Z0-9-]",$eo=[["\\s",1],["\\d",Ueo],[R6t,Jeo]],eto=e=>{for(let[t,r]of $eo)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},jI=(e,t,r)=>{let n=eto(t),a=qeo++;Keo(e,a,t),dA[e]=a,AA[a]=t,jeo[a]=new RegExp(t,r?"g":void 0),zeo[a]=new RegExp(n,r?"g":void 0)};jI("NUMERICIDENTIFIER","0|[1-9]\\d*");jI("NUMERICIDENTIFIERLOOSE","\\d+");jI("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R6t}*`);jI("MAINVERSION",`(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})`);jI("MAINVERSIONLOOSE",`(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})`);jI("PRERELEASEIDENTIFIER",`(?:${AA[dA.NUMERICIDENTIFIER]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASEIDENTIFIERLOOSE",`(?:${AA[dA.NUMERICIDENTIFIERLOOSE]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASE",`(?:-(${AA[dA.PRERELEASEIDENTIFIER]}(?:\\.${AA[dA.PRERELEASEIDENTIFIER]})*))`);jI("PRERELEASELOOSE",`(?:-?(${AA[dA.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${AA[dA.PRERELEASEIDENTIFIERLOOSE]})*))`);jI("BUILDIDENTIFIER",`${R6t}+`);jI("BUILD",`(?:\\+(${AA[dA.BUILDIDENTIFIER]}(?:\\.${AA[dA.BUILDIDENTIFIER]})*))`);jI("FULLPLAIN",`v?${AA[dA.MAINVERSION]}${AA[dA.PRERELEASE]}?${AA[dA.BUILD]}?`);jI("FULL",`^${AA[dA.FULLPLAIN]}$`);jI("LOOSEPLAIN",`[v=\\s]*${AA[dA.MAINVERSIONLOOSE]}${AA[dA.PRERELEASELOOSE]}?${AA[dA.BUILD]}?`);jI("LOOSE",`^${AA[dA.LOOSEPLAIN]}$`);jI("GTLT","((?:<|>)?=?)");jI("XRANGEIDENTIFIERLOOSE",`${AA[dA.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jI("XRANGEIDENTIFIER",`${AA[dA.NUMERICIDENTIFIER]}|x|X|\\*`);jI("XRANGEPLAIN",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:${AA[dA.PRERELEASE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGEPLAINLOOSE",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:${AA[dA.PRERELEASELOOSE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAIN]}$`);jI("XRANGELOOSE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COERCEPLAIN",`(^|[^\\d])(\\d{1,${T6t}})(?:\\.(\\d{1,${T6t}}))?(?:\\.(\\d{1,${T6t}}))?`);jI("COERCE",`${AA[dA.COERCEPLAIN]}(?:$|[^\\d])`);jI("COERCEFULL",AA[dA.COERCEPLAIN]+`(?:${AA[dA.PRERELEASE]})?(?:${AA[dA.BUILD]})?(?:$|[^\\d])`);jI("COERCERTL",AA[dA.COERCE],!0);jI("COERCERTLFULL",AA[dA.COERCEFULL],!0);jI("LONETILDE","(?:~>?)");jI("TILDETRIM",`(\\s*)${AA[dA.LONETILDE]}\\s+`,!0);Jq.tildeTrimReplace="$1~";jI("TILDE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAIN]}$`);jI("TILDELOOSE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("LONECARET","(?:\\^)");jI("CARETTRIM",`(\\s*)${AA[dA.LONECARET]}\\s+`,!0);Jq.caretTrimReplace="$1^";jI("CARET",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAIN]}$`);jI("CARETLOOSE",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COMPARATORLOOSE",`^${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]})$|^$`);jI("COMPARATOR",`^${AA[dA.GTLT]}\\s*(${AA[dA.FULLPLAIN]})$|^$`);jI("COMPARATORTRIM",`(\\s*)${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]}|${AA[dA.XRANGEPLAIN]})`,!0);Jq.comparatorTrimReplace="$1$2$3";jI("HYPHENRANGE",`^\\s*(${AA[dA.XRANGEPLAIN]})\\s+-\\s+(${AA[dA.XRANGEPLAIN]})\\s*$`);jI("HYPHENRANGELOOSE",`^\\s*(${AA[dA.XRANGEPLAINLOOSE]})\\s+-\\s+(${AA[dA.XRANGEPLAINLOOSE]})\\s*$`);jI("STAR","(<|>)?=?\\s*\\*");jI("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jI("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var zct=H((E5l,BSn)=>{var tto=Object.freeze({loose:!0}),rto=Object.freeze({}),nto=e=>e?typeof e!="object"?tto:e:rto;BSn.exports=nto});var N6t=H((S5l,RSn)=>{var wSn=/^[0-9]+$/,TSn=(e,t)=>{let r=wSn.test(e),n=wSn.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eTSn(t,e);RSn.exports={compareIdentifiers:TSn,rcompareIdentifiers:ito}});var cG=H((v5l,xSn)=>{var qct=o3e(),{MAX_LENGTH:NSn,MAX_SAFE_INTEGER:$ct}=s3e(),{safeRe:DSn,t:kSn}=NSe(),sto=zct(),{compareIdentifiers:DSe}=N6t(),D6t=class e{constructor(t,r){if(r=sto(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>NSn)throw new TypeError(`version is longer than ${NSn} characters`);qct("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?DSn[kSn.LOOSE]:DSn[kSn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>$ct||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$ct||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$ct||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let o=+a;if(o>=0&&o<$ct)return o}return a}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(qct("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),DSe(this.major,t.major)||DSe(this.minor,t.minor)||DSe(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],a=t.prerelease[r];if(qct("prerelease compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],a=t.build[r];if(qct("build compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}inc(t,r,n){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(n)?1:0;if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let o=[r,a];n===!1&&(o=[r]),DSe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xSn.exports=D6t});var kfe=H((B5l,FSn)=>{var GSn=cG(),oto=(e,t,r=!1)=>{if(e instanceof GSn)return e;try{return new GSn(e,t)}catch(n){if(!r)return null;throw n}};FSn.exports=oto});var k6t=H((w5l,ZSn)=>{var ato=kfe(),cto=(e,t)=>{let r=ato(e,t);return r?r.version:null};ZSn.exports=cto});var x6t=H((T5l,LSn)=>{var lto=kfe(),uto=(e,t)=>{let r=lto(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};LSn.exports=uto});var WSn=H((R5l,PSn)=>{var VSn=cG(),gto=(e,t,r,n,a)=>{typeof r=="string"&&(a=n,n=r,r=void 0);try{return new VSn(e instanceof VSn?e.version:e,r).inc(t,n,a).version}catch{return null}};PSn.exports=gto});var HSn=H((N5l,MSn)=>{var OSn=kfe(),Ato=(e,t)=>{let r=OSn(e,null,!0),n=OSn(t,null,!0),a=r.compare(n);if(a===0)return null;let o=a>0,l=o?r:n,A=o?n:r,f=!!l.prerelease.length;if(!!A.prerelease.length&&!f)return!A.patch&&!A.minor?"major":l.patch?"patch":l.minor?"minor":"major";let C=f?"pre":"";return r.major!==n.major?C+"major":r.minor!==n.minor?C+"minor":r.patch!==n.patch?C+"patch":"prerelease"};MSn.exports=Ato});var QSn=H((D5l,YSn)=>{var dto=cG(),pto=(e,t)=>new dto(e,t).major;YSn.exports=pto});var JSn=H((k5l,XSn)=>{var fto=cG(),Ito=(e,t)=>new fto(e,t).minor;XSn.exports=Ito});var KSn=H((x5l,USn)=>{var hto=cG(),mto=(e,t)=>new hto(e,t).patch;USn.exports=mto});var zSn=H((G5l,jSn)=>{var Cto=kfe(),_to=(e,t)=>{let r=Cto(e,t);return r&&r.prerelease.length?r.prerelease:null};jSn.exports=_to});var U5=H((F5l,$Sn)=>{var qSn=cG(),yto=(e,t,r)=>new qSn(e,r).compare(new qSn(t,r));$Sn.exports=yto});var tvn=H((Z5l,evn)=>{var bto=U5(),Eto=(e,t,r)=>bto(t,e,r);evn.exports=Eto});var nvn=H((L5l,rvn)=>{var Sto=U5(),vto=(e,t)=>Sto(e,t,!0);rvn.exports=vto});var elt=H((V5l,svn)=>{var ivn=cG(),Bto=(e,t,r)=>{let n=new ivn(e,r),a=new ivn(t,r);return n.compare(a)||n.compareBuild(a)};svn.exports=Bto});var avn=H((P5l,ovn)=>{var wto=elt(),Tto=(e,t)=>e.sort((r,n)=>wto(r,n,t));ovn.exports=Tto});var lvn=H((W5l,cvn)=>{var Rto=elt(),Nto=(e,t)=>e.sort((r,n)=>Rto(n,r,t));cvn.exports=Nto});var a3e=H((O5l,uvn)=>{var Dto=U5(),kto=(e,t,r)=>Dto(e,t,r)>0;uvn.exports=kto});var tlt=H((M5l,gvn)=>{var xto=U5(),Gto=(e,t,r)=>xto(e,t,r)<0;gvn.exports=Gto});var G6t=H((H5l,Avn)=>{var Fto=U5(),Zto=(e,t,r)=>Fto(e,t,r)===0;Avn.exports=Zto});var F6t=H((Y5l,dvn)=>{var Lto=U5(),Vto=(e,t,r)=>Lto(e,t,r)!==0;dvn.exports=Vto});var rlt=H((Q5l,pvn)=>{var Pto=U5(),Wto=(e,t,r)=>Pto(e,t,r)>=0;pvn.exports=Wto});var nlt=H((X5l,fvn)=>{var Oto=U5(),Mto=(e,t,r)=>Oto(e,t,r)<=0;fvn.exports=Mto});var Z6t=H((J5l,Ivn)=>{var Hto=G6t(),Yto=F6t(),Qto=a3e(),Xto=rlt(),Jto=tlt(),Uto=nlt(),Kto=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Hto(e,r,n);case"!=":return Yto(e,r,n);case">":return Qto(e,r,n);case">=":return Xto(e,r,n);case"<":return Jto(e,r,n);case"<=":return Uto(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};Ivn.exports=Kto});var mvn=H((U5l,hvn)=>{var jto=cG(),zto=kfe(),{safeRe:ilt,t:slt}=NSe(),qto=(e,t)=>{if(e instanceof jto)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?ilt[slt.COERCEFULL]:ilt[slt.COERCE]);else{let f=t.includePrerelease?ilt[slt.COERCERTLFULL]:ilt[slt.COERCERTL],I;for(;(I=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||I.index+I[0].length!==r.index+r[0].length)&&(r=I),f.lastIndex=I.index+I[1].length+I[2].length;f.lastIndex=-1}if(r===null)return null;let n=r[2],a=r[3]||"0",o=r[4]||"0",l=t.includePrerelease&&r[5]?`-${r[5]}`:"",A=t.includePrerelease&&r[6]?`+${r[6]}`:"";return zto(`${n}.${a}.${o}${l}${A}`,t)};hvn.exports=qto});var _vn=H((K5l,Cvn)=>{var L6t=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let a=this.map.keys().next().value;this.delete(a)}this.map.set(t,r)}return this}};Cvn.exports=L6t});var K5=H((j5l,Svn)=>{var $to=/\s+/g,V6t=class e{constructor(t,r){if(r=tro(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof P6t)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace($to," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(a=>!bvn(a[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&cro(a[0])){this.set=[a];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&oro)|(this.options.loose&&aro))+":"+t,a=yvn.get(n);if(a)return a;let o=this.options.loose,l=o?H9[bZ.HYPHENRANGELOOSE]:H9[bZ.HYPHENRANGE];t=t.replace(l,mro(this.options.includePrerelease)),k1("hyphen replace",t),t=t.replace(H9[bZ.COMPARATORTRIM],nro),k1("comparator trim",t),t=t.replace(H9[bZ.TILDETRIM],iro),k1("tilde trim",t),t=t.replace(H9[bZ.CARETTRIM],sro),k1("caret trim",t);let A=t.split(" ").map(b=>lro(b,this.options)).join(" ").split(/\s+/).map(b=>hro(b,this.options));o&&(A=A.filter(b=>(k1("loose invalid filter",b,this.options),!!b.match(H9[bZ.COMPARATORLOOSE])))),k1("range list",A);let f=new Map,I=A.map(b=>new P6t(b,this.options));for(let b of I){if(bvn(b))return[b];f.set(b.value,b)}f.size>1&&f.has("")&&f.delete("");let C=[...f.values()];return yvn.set(n,C),C}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Evn(n,r)&&t.set.some(a=>Evn(a,r)&&n.every(o=>a.every(l=>o.intersects(l,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new rro(t,this.options)}catch{return!1}for(let r=0;re.value==="<0.0.0-0",cro=e=>e.value==="",Evn=(e,t)=>{let r=!0,n=e.slice(),a=n.pop();for(;r&&n.length;)r=n.every(o=>a.intersects(o,t)),a=n.pop();return r},lro=(e,t)=>(k1("comp",e,t),e=Aro(e,t),k1("caret",e),e=uro(e,t),k1("tildes",e),e=pro(e,t),k1("xrange",e),e=Iro(e,t),k1("stars",e),e),EZ=e=>!e||e.toLowerCase()==="x"||e==="*",uro=(e,t)=>e.trim().split(/\s+/).map(r=>gro(r,t)).join(" "),gro=(e,t)=>{let r=t.loose?H9[bZ.TILDELOOSE]:H9[bZ.TILDE];return e.replace(r,(n,a,o,l,A)=>{k1("tilde",e,n,a,o,l,A);let f;return EZ(a)?f="":EZ(o)?f=`>=${a}.0.0 <${+a+1}.0.0-0`:EZ(l)?f=`>=${a}.${o}.0 <${a}.${+o+1}.0-0`:A?(k1("replaceTilde pr",A),f=`>=${a}.${o}.${l}-${A} <${a}.${+o+1}.0-0`):f=`>=${a}.${o}.${l} <${a}.${+o+1}.0-0`,k1("tilde return",f),f})},Aro=(e,t)=>e.trim().split(/\s+/).map(r=>dro(r,t)).join(" "),dro=(e,t)=>{k1("caret",e,t);let r=t.loose?H9[bZ.CARETLOOSE]:H9[bZ.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(a,o,l,A,f)=>{k1("caret",e,a,o,l,A,f);let I;return EZ(o)?I="":EZ(l)?I=`>=${o}.0.0${n} <${+o+1}.0.0-0`:EZ(A)?o==="0"?I=`>=${o}.${l}.0${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.0${n} <${+o+1}.0.0-0`:f?(k1("replaceCaret pr",f),o==="0"?l==="0"?I=`>=${o}.${l}.${A}-${f} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}-${f} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A}-${f} <${+o+1}.0.0-0`):(k1("no pr"),o==="0"?l==="0"?I=`>=${o}.${l}.${A}${n} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A} <${+o+1}.0.0-0`),k1("caret return",I),I})},pro=(e,t)=>(k1("replaceXRanges",e,t),e.split(/\s+/).map(r=>fro(r,t)).join(" ")),fro=(e,t)=>{e=e.trim();let r=t.loose?H9[bZ.XRANGELOOSE]:H9[bZ.XRANGE];return e.replace(r,(n,a,o,l,A,f)=>{k1("xRange",e,n,a,o,l,A,f);let I=EZ(o),C=I||EZ(l),b=C||EZ(A),E=b;return a==="="&&E&&(a=""),f=t.includePrerelease?"-0":"",I?a===">"||a==="<"?n="<0.0.0-0":n="*":a&&E?(C&&(l=0),A=0,a===">"?(a=">=",C?(o=+o+1,l=0,A=0):(l=+l+1,A=0)):a==="<="&&(a="<",C?o=+o+1:l=+l+1),a==="<"&&(f="-0"),n=`${a+o}.${l}.${A}${f}`):C?n=`>=${o}.0.0${f} <${+o+1}.0.0-0`:b&&(n=`>=${o}.${l}.0${f} <${o}.${+l+1}.0-0`),k1("xRange return",n),n})},Iro=(e,t)=>(k1("replaceStars",e,t),e.trim().replace(H9[bZ.STAR],"")),hro=(e,t)=>(k1("replaceGTE0",e,t),e.trim().replace(H9[t.includePrerelease?bZ.GTE0PRE:bZ.GTE0],"")),mro=e=>(t,r,n,a,o,l,A,f,I,C,b,E)=>(EZ(n)?r="":EZ(a)?r=`>=${n}.0.0${e?"-0":""}`:EZ(o)?r=`>=${n}.${a}.0${e?"-0":""}`:l?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,EZ(I)?f="":EZ(C)?f=`<${+I+1}.0.0-0`:EZ(b)?f=`<${I}.${+C+1}.0-0`:E?f=`<=${I}.${C}.${b}-${E}`:e?f=`<${I}.${C}.${+b+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),Cro=(e,t,r)=>{for(let n=0;n0){let a=e[n].semver;if(a.major===t.major&&a.minor===t.minor&&a.patch===t.patch)return!0}return!1}return!0}});var c3e=H((z5l,Nvn)=>{var l3e=Symbol("SemVer ANY"),M6t=class e{static get ANY(){return l3e}constructor(t,r){if(r=vvn(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),O6t("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===l3e?this.value="":this.value=this.operator+this.semver.version,O6t("comp",this)}parse(t){let r=this.options.loose?Bvn[wvn.COMPARATORLOOSE]:Bvn[wvn.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Tvn(n[2],this.options.loose):this.semver=l3e}toString(){return this.value}test(t){if(O6t("Comparator.test",t,this.options.loose),this.semver===l3e||t===l3e)return!0;if(typeof t=="string")try{t=new Tvn(t,this.options)}catch{return!1}return W6t(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Rvn(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rvn(this.value,r).test(t.semver):(r=vvn(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||W6t(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||W6t(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Nvn.exports=M6t;var vvn=zct(),{safeRe:Bvn,t:wvn}=NSe(),W6t=Z6t(),O6t=o3e(),Tvn=cG(),Rvn=K5()});var u3e=H((q5l,Dvn)=>{var _ro=K5(),yro=(e,t,r)=>{try{t=new _ro(t,r)}catch{return!1}return t.test(e)};Dvn.exports=yro});var xvn=H(($5l,kvn)=>{var bro=K5(),Ero=(e,t)=>new bro(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));kvn.exports=Ero});var Fvn=H((eMl,Gvn)=>{var Sro=cG(),vro=K5(),Bro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new vro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===-1)&&(n=l,a=new Sro(n,r))}),n};Gvn.exports=Bro});var Lvn=H((tMl,Zvn)=>{var wro=cG(),Tro=K5(),Rro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new Tro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===1)&&(n=l,a=new wro(n,r))}),n};Zvn.exports=Rro});var Wvn=H((rMl,Pvn)=>{var H6t=cG(),Nro=K5(),Vvn=a3e(),Dro=(e,t)=>{e=new Nro(e,t);let r=new H6t("0.0.0");if(e.test(r)||(r=new H6t("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n{let A=new H6t(l.semver.version);switch(l.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!o||Vvn(A,o))&&(o=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${l.operator}`)}}),o&&(!r||Vvn(r,o))&&(r=o)}return r&&e.test(r)?r:null};Pvn.exports=Dro});var Mvn=H((nMl,Ovn)=>{var kro=K5(),xro=(e,t)=>{try{return new kro(e,t).range||"*"}catch{return null}};Ovn.exports=xro});var olt=H((iMl,Xvn)=>{var Gro=cG(),Qvn=c3e(),{ANY:Fro}=Qvn,Zro=K5(),Lro=u3e(),Hvn=a3e(),Yvn=tlt(),Vro=nlt(),Pro=rlt(),Wro=(e,t,r,n)=>{e=new Gro(e,n),t=new Zro(t,n);let a,o,l,A,f;switch(r){case">":a=Hvn,o=Vro,l=Yvn,A=">",f=">=";break;case"<":a=Yvn,o=Pro,l=Hvn,A="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Lro(e,t,n))return!1;for(let I=0;I{N.semver===Fro&&(N=new Qvn(">=0.0.0")),b=b||N,E=E||N,a(N.semver,b.semver,n)?b=N:l(N.semver,E.semver,n)&&(E=N)}),b.operator===A||b.operator===f||(!E.operator||E.operator===A)&&o(e,E.semver))return!1;if(E.operator===f&&l(e,E.semver))return!1}return!0};Xvn.exports=Wro});var Uvn=H((sMl,Jvn)=>{var Oro=olt(),Mro=(e,t,r)=>Oro(e,t,">",r);Jvn.exports=Mro});var jvn=H((oMl,Kvn)=>{var Hro=olt(),Yro=(e,t,r)=>Hro(e,t,"<",r);Kvn.exports=Yro});var $vn=H((aMl,qvn)=>{var zvn=K5(),Qro=(e,t,r)=>(e=new zvn(e,r),t=new zvn(t,r),e.intersects(t,r));qvn.exports=Qro});var tBn=H((cMl,eBn)=>{var Xro=u3e(),Jro=U5();eBn.exports=(e,t,r)=>{let n=[],a=null,o=null,l=e.sort((C,b)=>Jro(C,b,r));for(let C of l)Xro(C,t,r)?(o=C,a||(a=C)):(o&&n.push([a,o]),o=null,a=null);a&&n.push([a,null]);let A=[];for(let[C,b]of n)C===b?A.push(C):!b&&C===l[0]?A.push("*"):b?C===l[0]?A.push(`<=${b}`):A.push(`${C} - ${b}`):A.push(`>=${C}`);let f=A.join(" || "),I=typeof t.raw=="string"?t.raw:String(t);return f.length{var rBn=K5(),Q6t=c3e(),{ANY:Y6t}=Q6t,g3e=u3e(),X6t=U5(),Uro=(e,t,r={})=>{if(e===t)return!0;e=new rBn(e,r),t=new rBn(t,r);let n=!1;e:for(let a of e.set){for(let o of t.set){let l=jro(a,o,r);if(n=n||l!==null,l)continue e}if(n)return!1}return!0},Kro=[new Q6t(">=0.0.0-0")],nBn=[new Q6t(">=0.0.0")],jro=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Y6t){if(t.length===1&&t[0].semver===Y6t)return!0;r.includePrerelease?e=Kro:e=nBn}if(t.length===1&&t[0].semver===Y6t){if(r.includePrerelease)return!0;t=nBn}let n=new Set,a,o;for(let N of e)N.operator===">"||N.operator===">="?a=iBn(a,N,r):N.operator==="<"||N.operator==="<="?o=sBn(o,N,r):n.add(N.semver);if(n.size>1)return null;let l;if(a&&o){if(l=X6t(a.semver,o.semver,r),l>0)return null;if(l===0&&(a.operator!==">="||o.operator!=="<="))return null}for(let N of n){if(a&&!g3e(N,String(a),r)||o&&!g3e(N,String(o),r))return null;for(let B of t)if(!g3e(N,String(B),r))return!1;return!0}let A,f,I,C,b=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1,E=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;b&&b.prerelease.length===1&&o.operator==="<"&&b.prerelease[0]===0&&(b=!1);for(let N of t){if(C=C||N.operator===">"||N.operator===">=",I=I||N.operator==="<"||N.operator==="<=",a){if(E&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===E.major&&N.semver.minor===E.minor&&N.semver.patch===E.patch&&(E=!1),N.operator===">"||N.operator===">="){if(A=iBn(a,N,r),A===N&&A!==a)return!1}else if(a.operator===">="&&!g3e(a.semver,String(N),r))return!1}if(o){if(b&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===b.major&&N.semver.minor===b.minor&&N.semver.patch===b.patch&&(b=!1),N.operator==="<"||N.operator==="<="){if(f=sBn(o,N,r),f===N&&f!==o)return!1}else if(o.operator==="<="&&!g3e(o.semver,String(N),r))return!1}if(!N.operator&&(o||a)&&l!==0)return!1}return!(a&&I&&!o&&l!==0||o&&C&&!a&&l!==0||E||b)},iBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},sBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};oBn.exports=Uro});var UC=H((uMl,uBn)=>{var J6t=NSe(),cBn=s3e(),zro=cG(),lBn=N6t(),qro=kfe(),$ro=k6t(),eno=x6t(),tno=WSn(),rno=HSn(),nno=QSn(),ino=JSn(),sno=KSn(),ono=zSn(),ano=U5(),cno=tvn(),lno=nvn(),uno=elt(),gno=avn(),Ano=lvn(),dno=a3e(),pno=tlt(),fno=G6t(),Ino=F6t(),hno=rlt(),mno=nlt(),Cno=Z6t(),_no=mvn(),yno=c3e(),bno=K5(),Eno=u3e(),Sno=xvn(),vno=Fvn(),Bno=Lvn(),wno=Wvn(),Tno=Mvn(),Rno=olt(),Nno=Uvn(),Dno=jvn(),kno=$vn(),xno=tBn(),Gno=aBn();uBn.exports={parse:qro,valid:$ro,clean:eno,inc:tno,diff:rno,major:nno,minor:ino,patch:sno,prerelease:ono,compare:ano,rcompare:cno,compareLoose:lno,compareBuild:uno,sort:gno,rsort:Ano,gt:dno,lt:pno,eq:fno,neq:Ino,gte:hno,lte:mno,cmp:Cno,coerce:_no,Comparator:yno,Range:bno,satisfies:Eno,toComparators:Sno,maxSatisfying:vno,minSatisfying:Bno,minVersion:wno,validRange:Tno,outside:Rno,gtr:Nno,ltr:Dno,intersects:kno,simplifyRange:xno,subset:Gno,SemVer:zro,re:J6t.re,src:J6t.src,tokens:J6t.t,SEMVER_SPEC_VERSION:cBn.SEMVER_SPEC_VERSION,RELEASE_TYPES:cBn.RELEASE_TYPES,compareIdentifiers:lBn.compareIdentifiers,rcompareIdentifiers:lBn.rcompareIdentifiers}});var ABn=H((gMl,gBn)=>{"use strict";function Fno(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function xfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,xfe)}Fno(xfe,Error);xfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b{switch(xi[1]){case"|":return Vr|xi[3];case"&":return Vr&xi[3];case"^":return Vr^xi[3]}},Hi)},E="!",N=vt("!",!1),B=function(Hi){return!Hi},F="(",Q=vt("(",!1),X=")",ae=vt(")",!1),ne=function(Hi){return Hi},ce=/^[^ \t\n\r()!|&\^]/,fe=xt([" "," ",` +`),o=o.replace(/\\r/g,"\r")),t[a]=o}return t}function Reo(e){let t=mSn(e),r=vR.configDotenv({path:t});if(!r.parsed){let l=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw l.code="MISSING_DATA",l}let n=hSn(e).split(","),a=n.length,o;for(let l=0;l=a)throw A}return vR.parse(o)}function Neo(e){console.log(`[dotenv@${S6t}][INFO] ${e}`)}function Deo(e){console.log(`[dotenv@${S6t}][WARN] ${e}`)}function jct(e){console.log(`[dotenv@${S6t}][DEBUG] ${e}`)}function hSn(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function keo(e,t){let r;try{r=new URL(t)}catch(A){if(A.code==="ERR_INVALID_URL"){let f=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw f.code="INVALID_DOTENV_KEY",f}throw A}let n=r.password;if(!n){let A=new Error("INVALID_DOTENV_KEY: Missing key part");throw A.code="INVALID_DOTENV_KEY",A}let a=r.searchParams.get("environment");if(!a){let A=new Error("INVALID_DOTENV_KEY: Missing environment part");throw A.code="INVALID_DOTENV_KEY",A}let o=`DOTENV_VAULT_${a.toUpperCase()}`,l=e.parsed[o];if(!l){let A=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw A.code="NOT_FOUND_DOTENV_ENVIRONMENT",A}return{ciphertext:l,key:n}}function mSn(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)b6t.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=E6t.resolve(process.cwd(),".env.vault");return b6t.existsSync(t)?t:null}function ISn(e){return e[0]==="~"?E6t.join(Seo.homedir(),e.slice(1)):e}function xeo(e){Neo("Loading env from encrypted .env.vault");let t=vR._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),vR.populate(r,t,e),{parsed:t}}function Geo(e){let t=E6t.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug);e&&e.encoding?r=e.encoding:n&&jct("No encoding is specified. UTF-8 is used by default");let a=[t];if(e&&e.path)if(!Array.isArray(e.path))a=[ISn(e.path)];else{a=[];for(let f of e.path)a.push(ISn(f))}let o,l={};for(let f of a)try{let I=vR.parse(b6t.readFileSync(f,{encoding:r}));vR.populate(l,I,e)}catch(I){n&&jct(`Failed to load ${f} ${I.message}`),o=I}let A=process.env;return e&&e.processEnv!=null&&(A=e.processEnv),vR.populate(A,l,e),o?{parsed:l,error:o}:{parsed:l}}function Feo(e){if(hSn(e).length===0)return vR.configDotenv(e);let t=mSn(e);return t?vR._configVault(e):(Deo(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),vR.configDotenv(e))}function Zeo(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),a=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let l=veo.createDecipheriv("aes-256-gcm",r,a);return l.setAuthTag(o),`${l.update(n)}${l.final()}`}catch(l){let A=l instanceof RangeError,f=l.message==="Invalid key length",I=l.message==="Unsupported state or unable to authenticate data";if(A||f){let C=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw C.code="INVALID_DOTENV_KEY",C}else if(I){let C=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw C.code="DECRYPTION_FAILED",C}else throw l}}function Leo(e,t,r={}){let n=!!(r&&r.debug),a=!!(r&&r.override);if(typeof t!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(t))Object.prototype.hasOwnProperty.call(e,o)?(a===!0&&(e[o]=t[o]),n&&jct(a===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=t[o]}var vR={configDotenv:Geo,_configVault:xeo,_parseVault:Reo,config:Feo,decrypt:Zeo,parse:Teo,populate:Leo};Xq.exports.configDotenv=vR.configDotenv;Xq.exports._configVault=vR._configVault;Xq.exports._parseVault=vR._parseVault;Xq.exports.config=vR.config;Xq.exports.decrypt=vR.decrypt;Xq.exports.parse=vR.parse;Xq.exports.populate=vR.populate;Xq.exports=vR});var ySn=H((C5l,v6t)=>{"use strict";var _Sn=(e,...t)=>new Promise(r=>{r(e(...t))});v6t.exports=_Sn;v6t.exports.default=_Sn});var Dfe=H((_5l,B6t)=>{"use strict";var Veo=ySn(),bSn=e=>{if(!((Number.isInteger(e)||e===1/0)&&e>0))return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},a=(A,f,...I)=>{r++;let C=Veo(A,...I);f(C),C.then(n,n)},o=(A,f,...I)=>{rnew Promise(I=>o(A,I,...f));return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),l};B6t.exports=bSn;B6t.exports.default=bSn});var M9=H(RSe=>{"use strict";Object.defineProperty(RSe,"__esModule",{value:!0});RSe.MessageName=void 0;RSe.stringifyMessageName=Peo;RSe.parseMessageName=Weo;var w6t;(function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",e[e.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",e[e.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",e[e.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",e[e.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",e[e.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",e[e.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",e[e.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",e[e.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",e[e.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",e[e.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",e[e.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",e[e.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",e[e.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",e[e.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",e[e.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",e[e.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",e[e.NETWORK_DISABLED=80]="NETWORK_DISABLED",e[e.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",e[e.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",e[e.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",e[e.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",e[e.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",e[e.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",e[e.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",e[e.VERSION_NOTICE=88]="VERSION_NOTICE",e[e.TIPS_NOTICE=89]="TIPS_NOTICE",e[e.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",e[e.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",e[e.EXPERIMENTAL=92]="EXPERIMENTAL"})(w6t||(RSe.MessageName=w6t={}));function Peo(e){return`YN${e.toString(10).padStart(4,"0")}`}function Weo(e){let t=Number(e.slice(2));if(typeof w6t[t]>"u")throw new Error(`Unknown message name: "${e}"`);return t}});var s3e=H((b5l,ESn)=>{var Oeo="2.0.0",Meo=Number.MAX_SAFE_INTEGER||9007199254740991,Heo=16,Yeo=250,Qeo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ESn.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Heo,MAX_SAFE_BUILD_LENGTH:Yeo,MAX_SAFE_INTEGER:Meo,RELEASE_TYPES:Qeo,SEMVER_SPEC_VERSION:Oeo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var o3e=H((E5l,SSn)=>{var Xeo=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};SSn.exports=Xeo});var NSe=H((Jq,vSn)=>{var{MAX_SAFE_COMPONENT_LENGTH:T6t,MAX_SAFE_BUILD_LENGTH:Jeo,MAX_LENGTH:Ueo}=s3e(),Keo=o3e();Jq=vSn.exports={};var jeo=Jq.re=[],zeo=Jq.safeRe=[],AA=Jq.src=[],dA=Jq.t={},qeo=0,R6t="[a-zA-Z0-9-]",$eo=[["\\s",1],["\\d",Ueo],[R6t,Jeo]],eto=e=>{for(let[t,r]of $eo)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},jI=(e,t,r)=>{let n=eto(t),a=qeo++;Keo(e,a,t),dA[e]=a,AA[a]=t,jeo[a]=new RegExp(t,r?"g":void 0),zeo[a]=new RegExp(n,r?"g":void 0)};jI("NUMERICIDENTIFIER","0|[1-9]\\d*");jI("NUMERICIDENTIFIERLOOSE","\\d+");jI("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R6t}*`);jI("MAINVERSION",`(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})`);jI("MAINVERSIONLOOSE",`(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})`);jI("PRERELEASEIDENTIFIER",`(?:${AA[dA.NUMERICIDENTIFIER]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASEIDENTIFIERLOOSE",`(?:${AA[dA.NUMERICIDENTIFIERLOOSE]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASE",`(?:-(${AA[dA.PRERELEASEIDENTIFIER]}(?:\\.${AA[dA.PRERELEASEIDENTIFIER]})*))`);jI("PRERELEASELOOSE",`(?:-?(${AA[dA.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${AA[dA.PRERELEASEIDENTIFIERLOOSE]})*))`);jI("BUILDIDENTIFIER",`${R6t}+`);jI("BUILD",`(?:\\+(${AA[dA.BUILDIDENTIFIER]}(?:\\.${AA[dA.BUILDIDENTIFIER]})*))`);jI("FULLPLAIN",`v?${AA[dA.MAINVERSION]}${AA[dA.PRERELEASE]}?${AA[dA.BUILD]}?`);jI("FULL",`^${AA[dA.FULLPLAIN]}$`);jI("LOOSEPLAIN",`[v=\\s]*${AA[dA.MAINVERSIONLOOSE]}${AA[dA.PRERELEASELOOSE]}?${AA[dA.BUILD]}?`);jI("LOOSE",`^${AA[dA.LOOSEPLAIN]}$`);jI("GTLT","((?:<|>)?=?)");jI("XRANGEIDENTIFIERLOOSE",`${AA[dA.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jI("XRANGEIDENTIFIER",`${AA[dA.NUMERICIDENTIFIER]}|x|X|\\*`);jI("XRANGEPLAIN",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:${AA[dA.PRERELEASE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGEPLAINLOOSE",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:${AA[dA.PRERELEASELOOSE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAIN]}$`);jI("XRANGELOOSE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COERCEPLAIN",`(^|[^\\d])(\\d{1,${T6t}})(?:\\.(\\d{1,${T6t}}))?(?:\\.(\\d{1,${T6t}}))?`);jI("COERCE",`${AA[dA.COERCEPLAIN]}(?:$|[^\\d])`);jI("COERCEFULL",AA[dA.COERCEPLAIN]+`(?:${AA[dA.PRERELEASE]})?(?:${AA[dA.BUILD]})?(?:$|[^\\d])`);jI("COERCERTL",AA[dA.COERCE],!0);jI("COERCERTLFULL",AA[dA.COERCEFULL],!0);jI("LONETILDE","(?:~>?)");jI("TILDETRIM",`(\\s*)${AA[dA.LONETILDE]}\\s+`,!0);Jq.tildeTrimReplace="$1~";jI("TILDE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAIN]}$`);jI("TILDELOOSE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("LONECARET","(?:\\^)");jI("CARETTRIM",`(\\s*)${AA[dA.LONECARET]}\\s+`,!0);Jq.caretTrimReplace="$1^";jI("CARET",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAIN]}$`);jI("CARETLOOSE",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COMPARATORLOOSE",`^${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]})$|^$`);jI("COMPARATOR",`^${AA[dA.GTLT]}\\s*(${AA[dA.FULLPLAIN]})$|^$`);jI("COMPARATORTRIM",`(\\s*)${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]}|${AA[dA.XRANGEPLAIN]})`,!0);Jq.comparatorTrimReplace="$1$2$3";jI("HYPHENRANGE",`^\\s*(${AA[dA.XRANGEPLAIN]})\\s+-\\s+(${AA[dA.XRANGEPLAIN]})\\s*$`);jI("HYPHENRANGELOOSE",`^\\s*(${AA[dA.XRANGEPLAINLOOSE]})\\s+-\\s+(${AA[dA.XRANGEPLAINLOOSE]})\\s*$`);jI("STAR","(<|>)?=?\\s*\\*");jI("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jI("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var zct=H((S5l,BSn)=>{var tto=Object.freeze({loose:!0}),rto=Object.freeze({}),nto=e=>e?typeof e!="object"?tto:e:rto;BSn.exports=nto});var N6t=H((v5l,RSn)=>{var wSn=/^[0-9]+$/,TSn=(e,t)=>{let r=wSn.test(e),n=wSn.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eTSn(t,e);RSn.exports={compareIdentifiers:TSn,rcompareIdentifiers:ito}});var cG=H((B5l,xSn)=>{var qct=o3e(),{MAX_LENGTH:NSn,MAX_SAFE_INTEGER:$ct}=s3e(),{safeRe:DSn,t:kSn}=NSe(),sto=zct(),{compareIdentifiers:DSe}=N6t(),D6t=class e{constructor(t,r){if(r=sto(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>NSn)throw new TypeError(`version is longer than ${NSn} characters`);qct("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?DSn[kSn.LOOSE]:DSn[kSn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>$ct||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$ct||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$ct||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let o=+a;if(o>=0&&o<$ct)return o}return a}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(qct("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),DSe(this.major,t.major)||DSe(this.minor,t.minor)||DSe(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],a=t.prerelease[r];if(qct("prerelease compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],a=t.build[r];if(qct("build compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}inc(t,r,n){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(n)?1:0;if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let o=[r,a];n===!1&&(o=[r]),DSe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xSn.exports=D6t});var kfe=H((w5l,FSn)=>{var GSn=cG(),oto=(e,t,r=!1)=>{if(e instanceof GSn)return e;try{return new GSn(e,t)}catch(n){if(!r)return null;throw n}};FSn.exports=oto});var k6t=H((T5l,ZSn)=>{var ato=kfe(),cto=(e,t)=>{let r=ato(e,t);return r?r.version:null};ZSn.exports=cto});var x6t=H((R5l,LSn)=>{var lto=kfe(),uto=(e,t)=>{let r=lto(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};LSn.exports=uto});var WSn=H((N5l,PSn)=>{var VSn=cG(),gto=(e,t,r,n,a)=>{typeof r=="string"&&(a=n,n=r,r=void 0);try{return new VSn(e instanceof VSn?e.version:e,r).inc(t,n,a).version}catch{return null}};PSn.exports=gto});var HSn=H((D5l,MSn)=>{var OSn=kfe(),Ato=(e,t)=>{let r=OSn(e,null,!0),n=OSn(t,null,!0),a=r.compare(n);if(a===0)return null;let o=a>0,l=o?r:n,A=o?n:r,f=!!l.prerelease.length;if(!!A.prerelease.length&&!f)return!A.patch&&!A.minor?"major":l.patch?"patch":l.minor?"minor":"major";let C=f?"pre":"";return r.major!==n.major?C+"major":r.minor!==n.minor?C+"minor":r.patch!==n.patch?C+"patch":"prerelease"};MSn.exports=Ato});var QSn=H((k5l,YSn)=>{var dto=cG(),pto=(e,t)=>new dto(e,t).major;YSn.exports=pto});var JSn=H((x5l,XSn)=>{var fto=cG(),Ito=(e,t)=>new fto(e,t).minor;XSn.exports=Ito});var KSn=H((G5l,USn)=>{var hto=cG(),mto=(e,t)=>new hto(e,t).patch;USn.exports=mto});var zSn=H((F5l,jSn)=>{var Cto=kfe(),_to=(e,t)=>{let r=Cto(e,t);return r&&r.prerelease.length?r.prerelease:null};jSn.exports=_to});var U5=H((Z5l,$Sn)=>{var qSn=cG(),yto=(e,t,r)=>new qSn(e,r).compare(new qSn(t,r));$Sn.exports=yto});var tvn=H((L5l,evn)=>{var bto=U5(),Eto=(e,t,r)=>bto(t,e,r);evn.exports=Eto});var nvn=H((V5l,rvn)=>{var Sto=U5(),vto=(e,t)=>Sto(e,t,!0);rvn.exports=vto});var elt=H((P5l,svn)=>{var ivn=cG(),Bto=(e,t,r)=>{let n=new ivn(e,r),a=new ivn(t,r);return n.compare(a)||n.compareBuild(a)};svn.exports=Bto});var avn=H((W5l,ovn)=>{var wto=elt(),Tto=(e,t)=>e.sort((r,n)=>wto(r,n,t));ovn.exports=Tto});var lvn=H((O5l,cvn)=>{var Rto=elt(),Nto=(e,t)=>e.sort((r,n)=>Rto(n,r,t));cvn.exports=Nto});var a3e=H((M5l,uvn)=>{var Dto=U5(),kto=(e,t,r)=>Dto(e,t,r)>0;uvn.exports=kto});var tlt=H((H5l,gvn)=>{var xto=U5(),Gto=(e,t,r)=>xto(e,t,r)<0;gvn.exports=Gto});var G6t=H((Y5l,Avn)=>{var Fto=U5(),Zto=(e,t,r)=>Fto(e,t,r)===0;Avn.exports=Zto});var F6t=H((Q5l,dvn)=>{var Lto=U5(),Vto=(e,t,r)=>Lto(e,t,r)!==0;dvn.exports=Vto});var rlt=H((X5l,pvn)=>{var Pto=U5(),Wto=(e,t,r)=>Pto(e,t,r)>=0;pvn.exports=Wto});var nlt=H((J5l,fvn)=>{var Oto=U5(),Mto=(e,t,r)=>Oto(e,t,r)<=0;fvn.exports=Mto});var Z6t=H((U5l,Ivn)=>{var Hto=G6t(),Yto=F6t(),Qto=a3e(),Xto=rlt(),Jto=tlt(),Uto=nlt(),Kto=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Hto(e,r,n);case"!=":return Yto(e,r,n);case">":return Qto(e,r,n);case">=":return Xto(e,r,n);case"<":return Jto(e,r,n);case"<=":return Uto(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};Ivn.exports=Kto});var mvn=H((K5l,hvn)=>{var jto=cG(),zto=kfe(),{safeRe:ilt,t:slt}=NSe(),qto=(e,t)=>{if(e instanceof jto)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?ilt[slt.COERCEFULL]:ilt[slt.COERCE]);else{let f=t.includePrerelease?ilt[slt.COERCERTLFULL]:ilt[slt.COERCERTL],I;for(;(I=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||I.index+I[0].length!==r.index+r[0].length)&&(r=I),f.lastIndex=I.index+I[1].length+I[2].length;f.lastIndex=-1}if(r===null)return null;let n=r[2],a=r[3]||"0",o=r[4]||"0",l=t.includePrerelease&&r[5]?`-${r[5]}`:"",A=t.includePrerelease&&r[6]?`+${r[6]}`:"";return zto(`${n}.${a}.${o}${l}${A}`,t)};hvn.exports=qto});var _vn=H((j5l,Cvn)=>{var L6t=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let a=this.map.keys().next().value;this.delete(a)}this.map.set(t,r)}return this}};Cvn.exports=L6t});var K5=H((z5l,Svn)=>{var $to=/\s+/g,V6t=class e{constructor(t,r){if(r=tro(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof P6t)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace($to," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(a=>!bvn(a[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&cro(a[0])){this.set=[a];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&oro)|(this.options.loose&&aro))+":"+t,a=yvn.get(n);if(a)return a;let o=this.options.loose,l=o?H9[bZ.HYPHENRANGELOOSE]:H9[bZ.HYPHENRANGE];t=t.replace(l,mro(this.options.includePrerelease)),k1("hyphen replace",t),t=t.replace(H9[bZ.COMPARATORTRIM],nro),k1("comparator trim",t),t=t.replace(H9[bZ.TILDETRIM],iro),k1("tilde trim",t),t=t.replace(H9[bZ.CARETTRIM],sro),k1("caret trim",t);let A=t.split(" ").map(b=>lro(b,this.options)).join(" ").split(/\s+/).map(b=>hro(b,this.options));o&&(A=A.filter(b=>(k1("loose invalid filter",b,this.options),!!b.match(H9[bZ.COMPARATORLOOSE])))),k1("range list",A);let f=new Map,I=A.map(b=>new P6t(b,this.options));for(let b of I){if(bvn(b))return[b];f.set(b.value,b)}f.size>1&&f.has("")&&f.delete("");let C=[...f.values()];return yvn.set(n,C),C}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Evn(n,r)&&t.set.some(a=>Evn(a,r)&&n.every(o=>a.every(l=>o.intersects(l,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new rro(t,this.options)}catch{return!1}for(let r=0;re.value==="<0.0.0-0",cro=e=>e.value==="",Evn=(e,t)=>{let r=!0,n=e.slice(),a=n.pop();for(;r&&n.length;)r=n.every(o=>a.intersects(o,t)),a=n.pop();return r},lro=(e,t)=>(k1("comp",e,t),e=Aro(e,t),k1("caret",e),e=uro(e,t),k1("tildes",e),e=pro(e,t),k1("xrange",e),e=Iro(e,t),k1("stars",e),e),EZ=e=>!e||e.toLowerCase()==="x"||e==="*",uro=(e,t)=>e.trim().split(/\s+/).map(r=>gro(r,t)).join(" "),gro=(e,t)=>{let r=t.loose?H9[bZ.TILDELOOSE]:H9[bZ.TILDE];return e.replace(r,(n,a,o,l,A)=>{k1("tilde",e,n,a,o,l,A);let f;return EZ(a)?f="":EZ(o)?f=`>=${a}.0.0 <${+a+1}.0.0-0`:EZ(l)?f=`>=${a}.${o}.0 <${a}.${+o+1}.0-0`:A?(k1("replaceTilde pr",A),f=`>=${a}.${o}.${l}-${A} <${a}.${+o+1}.0-0`):f=`>=${a}.${o}.${l} <${a}.${+o+1}.0-0`,k1("tilde return",f),f})},Aro=(e,t)=>e.trim().split(/\s+/).map(r=>dro(r,t)).join(" "),dro=(e,t)=>{k1("caret",e,t);let r=t.loose?H9[bZ.CARETLOOSE]:H9[bZ.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(a,o,l,A,f)=>{k1("caret",e,a,o,l,A,f);let I;return EZ(o)?I="":EZ(l)?I=`>=${o}.0.0${n} <${+o+1}.0.0-0`:EZ(A)?o==="0"?I=`>=${o}.${l}.0${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.0${n} <${+o+1}.0.0-0`:f?(k1("replaceCaret pr",f),o==="0"?l==="0"?I=`>=${o}.${l}.${A}-${f} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}-${f} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A}-${f} <${+o+1}.0.0-0`):(k1("no pr"),o==="0"?l==="0"?I=`>=${o}.${l}.${A}${n} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A} <${+o+1}.0.0-0`),k1("caret return",I),I})},pro=(e,t)=>(k1("replaceXRanges",e,t),e.split(/\s+/).map(r=>fro(r,t)).join(" ")),fro=(e,t)=>{e=e.trim();let r=t.loose?H9[bZ.XRANGELOOSE]:H9[bZ.XRANGE];return e.replace(r,(n,a,o,l,A,f)=>{k1("xRange",e,n,a,o,l,A,f);let I=EZ(o),C=I||EZ(l),b=C||EZ(A),E=b;return a==="="&&E&&(a=""),f=t.includePrerelease?"-0":"",I?a===">"||a==="<"?n="<0.0.0-0":n="*":a&&E?(C&&(l=0),A=0,a===">"?(a=">=",C?(o=+o+1,l=0,A=0):(l=+l+1,A=0)):a==="<="&&(a="<",C?o=+o+1:l=+l+1),a==="<"&&(f="-0"),n=`${a+o}.${l}.${A}${f}`):C?n=`>=${o}.0.0${f} <${+o+1}.0.0-0`:b&&(n=`>=${o}.${l}.0${f} <${o}.${+l+1}.0-0`),k1("xRange return",n),n})},Iro=(e,t)=>(k1("replaceStars",e,t),e.trim().replace(H9[bZ.STAR],"")),hro=(e,t)=>(k1("replaceGTE0",e,t),e.trim().replace(H9[t.includePrerelease?bZ.GTE0PRE:bZ.GTE0],"")),mro=e=>(t,r,n,a,o,l,A,f,I,C,b,E)=>(EZ(n)?r="":EZ(a)?r=`>=${n}.0.0${e?"-0":""}`:EZ(o)?r=`>=${n}.${a}.0${e?"-0":""}`:l?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,EZ(I)?f="":EZ(C)?f=`<${+I+1}.0.0-0`:EZ(b)?f=`<${I}.${+C+1}.0-0`:E?f=`<=${I}.${C}.${b}-${E}`:e?f=`<${I}.${C}.${+b+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),Cro=(e,t,r)=>{for(let n=0;n0){let a=e[n].semver;if(a.major===t.major&&a.minor===t.minor&&a.patch===t.patch)return!0}return!1}return!0}});var c3e=H((q5l,Nvn)=>{var l3e=Symbol("SemVer ANY"),M6t=class e{static get ANY(){return l3e}constructor(t,r){if(r=vvn(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),O6t("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===l3e?this.value="":this.value=this.operator+this.semver.version,O6t("comp",this)}parse(t){let r=this.options.loose?Bvn[wvn.COMPARATORLOOSE]:Bvn[wvn.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Tvn(n[2],this.options.loose):this.semver=l3e}toString(){return this.value}test(t){if(O6t("Comparator.test",t,this.options.loose),this.semver===l3e||t===l3e)return!0;if(typeof t=="string")try{t=new Tvn(t,this.options)}catch{return!1}return W6t(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Rvn(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rvn(this.value,r).test(t.semver):(r=vvn(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||W6t(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||W6t(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Nvn.exports=M6t;var vvn=zct(),{safeRe:Bvn,t:wvn}=NSe(),W6t=Z6t(),O6t=o3e(),Tvn=cG(),Rvn=K5()});var u3e=H(($5l,Dvn)=>{var _ro=K5(),yro=(e,t,r)=>{try{t=new _ro(t,r)}catch{return!1}return t.test(e)};Dvn.exports=yro});var xvn=H((eMl,kvn)=>{var bro=K5(),Ero=(e,t)=>new bro(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));kvn.exports=Ero});var Fvn=H((tMl,Gvn)=>{var Sro=cG(),vro=K5(),Bro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new vro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===-1)&&(n=l,a=new Sro(n,r))}),n};Gvn.exports=Bro});var Lvn=H((rMl,Zvn)=>{var wro=cG(),Tro=K5(),Rro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new Tro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===1)&&(n=l,a=new wro(n,r))}),n};Zvn.exports=Rro});var Wvn=H((nMl,Pvn)=>{var H6t=cG(),Nro=K5(),Vvn=a3e(),Dro=(e,t)=>{e=new Nro(e,t);let r=new H6t("0.0.0");if(e.test(r)||(r=new H6t("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n{let A=new H6t(l.semver.version);switch(l.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!o||Vvn(A,o))&&(o=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${l.operator}`)}}),o&&(!r||Vvn(r,o))&&(r=o)}return r&&e.test(r)?r:null};Pvn.exports=Dro});var Mvn=H((iMl,Ovn)=>{var kro=K5(),xro=(e,t)=>{try{return new kro(e,t).range||"*"}catch{return null}};Ovn.exports=xro});var olt=H((sMl,Xvn)=>{var Gro=cG(),Qvn=c3e(),{ANY:Fro}=Qvn,Zro=K5(),Lro=u3e(),Hvn=a3e(),Yvn=tlt(),Vro=nlt(),Pro=rlt(),Wro=(e,t,r,n)=>{e=new Gro(e,n),t=new Zro(t,n);let a,o,l,A,f;switch(r){case">":a=Hvn,o=Vro,l=Yvn,A=">",f=">=";break;case"<":a=Yvn,o=Pro,l=Hvn,A="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Lro(e,t,n))return!1;for(let I=0;I{N.semver===Fro&&(N=new Qvn(">=0.0.0")),b=b||N,E=E||N,a(N.semver,b.semver,n)?b=N:l(N.semver,E.semver,n)&&(E=N)}),b.operator===A||b.operator===f||(!E.operator||E.operator===A)&&o(e,E.semver))return!1;if(E.operator===f&&l(e,E.semver))return!1}return!0};Xvn.exports=Wro});var Uvn=H((oMl,Jvn)=>{var Oro=olt(),Mro=(e,t,r)=>Oro(e,t,">",r);Jvn.exports=Mro});var jvn=H((aMl,Kvn)=>{var Hro=olt(),Yro=(e,t,r)=>Hro(e,t,"<",r);Kvn.exports=Yro});var $vn=H((cMl,qvn)=>{var zvn=K5(),Qro=(e,t,r)=>(e=new zvn(e,r),t=new zvn(t,r),e.intersects(t,r));qvn.exports=Qro});var tBn=H((lMl,eBn)=>{var Xro=u3e(),Jro=U5();eBn.exports=(e,t,r)=>{let n=[],a=null,o=null,l=e.sort((C,b)=>Jro(C,b,r));for(let C of l)Xro(C,t,r)?(o=C,a||(a=C)):(o&&n.push([a,o]),o=null,a=null);a&&n.push([a,null]);let A=[];for(let[C,b]of n)C===b?A.push(C):!b&&C===l[0]?A.push("*"):b?C===l[0]?A.push(`<=${b}`):A.push(`${C} - ${b}`):A.push(`>=${C}`);let f=A.join(" || "),I=typeof t.raw=="string"?t.raw:String(t);return f.length{var rBn=K5(),Q6t=c3e(),{ANY:Y6t}=Q6t,g3e=u3e(),X6t=U5(),Uro=(e,t,r={})=>{if(e===t)return!0;e=new rBn(e,r),t=new rBn(t,r);let n=!1;e:for(let a of e.set){for(let o of t.set){let l=jro(a,o,r);if(n=n||l!==null,l)continue e}if(n)return!1}return!0},Kro=[new Q6t(">=0.0.0-0")],nBn=[new Q6t(">=0.0.0")],jro=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Y6t){if(t.length===1&&t[0].semver===Y6t)return!0;r.includePrerelease?e=Kro:e=nBn}if(t.length===1&&t[0].semver===Y6t){if(r.includePrerelease)return!0;t=nBn}let n=new Set,a,o;for(let N of e)N.operator===">"||N.operator===">="?a=iBn(a,N,r):N.operator==="<"||N.operator==="<="?o=sBn(o,N,r):n.add(N.semver);if(n.size>1)return null;let l;if(a&&o){if(l=X6t(a.semver,o.semver,r),l>0)return null;if(l===0&&(a.operator!==">="||o.operator!=="<="))return null}for(let N of n){if(a&&!g3e(N,String(a),r)||o&&!g3e(N,String(o),r))return null;for(let B of t)if(!g3e(N,String(B),r))return!1;return!0}let A,f,I,C,b=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1,E=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;b&&b.prerelease.length===1&&o.operator==="<"&&b.prerelease[0]===0&&(b=!1);for(let N of t){if(C=C||N.operator===">"||N.operator===">=",I=I||N.operator==="<"||N.operator==="<=",a){if(E&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===E.major&&N.semver.minor===E.minor&&N.semver.patch===E.patch&&(E=!1),N.operator===">"||N.operator===">="){if(A=iBn(a,N,r),A===N&&A!==a)return!1}else if(a.operator===">="&&!g3e(a.semver,String(N),r))return!1}if(o){if(b&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===b.major&&N.semver.minor===b.minor&&N.semver.patch===b.patch&&(b=!1),N.operator==="<"||N.operator==="<="){if(f=sBn(o,N,r),f===N&&f!==o)return!1}else if(o.operator==="<="&&!g3e(o.semver,String(N),r))return!1}if(!N.operator&&(o||a)&&l!==0)return!1}return!(a&&I&&!o&&l!==0||o&&C&&!a&&l!==0||E||b)},iBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},sBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};oBn.exports=Uro});var UC=H((gMl,uBn)=>{var J6t=NSe(),cBn=s3e(),zro=cG(),lBn=N6t(),qro=kfe(),$ro=k6t(),eno=x6t(),tno=WSn(),rno=HSn(),nno=QSn(),ino=JSn(),sno=KSn(),ono=zSn(),ano=U5(),cno=tvn(),lno=nvn(),uno=elt(),gno=avn(),Ano=lvn(),dno=a3e(),pno=tlt(),fno=G6t(),Ino=F6t(),hno=rlt(),mno=nlt(),Cno=Z6t(),_no=mvn(),yno=c3e(),bno=K5(),Eno=u3e(),Sno=xvn(),vno=Fvn(),Bno=Lvn(),wno=Wvn(),Tno=Mvn(),Rno=olt(),Nno=Uvn(),Dno=jvn(),kno=$vn(),xno=tBn(),Gno=aBn();uBn.exports={parse:qro,valid:$ro,clean:eno,inc:tno,diff:rno,major:nno,minor:ino,patch:sno,prerelease:ono,compare:ano,rcompare:cno,compareLoose:lno,compareBuild:uno,sort:gno,rsort:Ano,gt:dno,lt:pno,eq:fno,neq:Ino,gte:hno,lte:mno,cmp:Cno,coerce:_no,Comparator:yno,Range:bno,satisfies:Eno,toComparators:Sno,maxSatisfying:vno,minSatisfying:Bno,minVersion:wno,validRange:Tno,outside:Rno,gtr:Nno,ltr:Dno,intersects:kno,simplifyRange:xno,subset:Gno,SemVer:zro,re:J6t.re,src:J6t.src,tokens:J6t.t,SEMVER_SPEC_VERSION:cBn.SEMVER_SPEC_VERSION,RELEASE_TYPES:cBn.RELEASE_TYPES,compareIdentifiers:lBn.compareIdentifiers,rcompareIdentifiers:lBn.rcompareIdentifiers}});var ABn=H((AMl,gBn)=>{"use strict";function Fno(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function xfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,xfe)}Fno(xfe,Error);xfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b{switch(xi[1]){case"|":return Vr|xi[3];case"&":return Vr&xi[3];case"^":return Vr^xi[3]}},Hi)},E="!",N=vt("!",!1),B=function(Hi){return!Hi},F="(",Q=vt("(",!1),X=")",ae=vt(")",!1),ne=function(Hi){return Hi},ce=/^[^ \t\n\r()!|&\^]/,fe=xt([" "," ",` `,"\r","(",")","!","|","&","^"],!0,!1),ue=function(Hi){return t.queryPattern.test(Hi)},de=function(Hi){return t.checkFn(Hi)},be=Xt("whitespace"),Se=/^[ \t\n\r]/,De=xt([" "," ",` -`,"\r"],!1,!1),k=0,et=0,ct=[{line:1,column:1}],Me=0,je=[],St=0,At;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function Yt(){return e.substring(et,k)}function Tr(){return cr(et,k)}function Nr(Hi,po){throw po=po!==void 0?po:cr(et,k),_n([Xt(Hi)],e.substring(et,k),po)}function er(Hi,po){throw po=po!==void 0?po:cr(et,k),qr(Hi,po)}function vt(Hi,po){return{type:"literal",text:Hi,ignoreCase:po}}function xt(Hi,po,Vr){return{type:"class",parts:Hi,inverted:po,ignoreCase:Vr}}function Zr(){return{type:"any"}}function qt(){return{type:"end"}}function Xt(Hi){return{type:"other",description:Hi}}function lr(Hi){var po=ct[Hi],Vr;if(po)return po;for(Vr=Hi-1;!ct[Vr];)Vr--;for(po=ct[Vr],po={line:po.line,column:po.column};VrMe&&(Me=k,je=[]),je.push(Hi))}function qr(Hi,po){return new xfe(Hi,null,null,po)}function _n(Hi,po,Vr){return new xfe(xfe.buildMessage(Hi,po),Hi,po,Vr)}function ke(){var Hi,po,Vr,xi,io,ga,Ya,Gc;if(Hi=k,po=jt(),po!==r){for(Vr=[],xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);xi!==r;)Vr.push(xi),xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);Vr!==r?(et=Hi,po=b(po,Vr),Hi=po):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function jt(){var Hi,po,Vr,xi,io,ga;return Hi=k,e.charCodeAt(k)===33?(po=E,k++):(po=r,St===0&&Ar(N)),po!==r?(Vr=jt(),Vr!==r?(et=Hi,po=B(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=k,e.charCodeAt(k)===40?(po=F,k++):(po=r,St===0&&Ar(Q)),po!==r?(Vr=Nn(),Vr!==r?(xi=ke(),xi!==r?(io=Nn(),io!==r?(e.charCodeAt(k)===41?(ga=X,k++):(ga=r,St===0&&Ar(ae)),ga!==r?(et=Hi,po=ne(xi),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=Fn())),Hi}function Fn(){var Hi,po,Vr,xi,io;if(Hi=k,po=Nn(),po!==r){if(Vr=k,xi=[],ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe)),io!==r)for(;io!==r;)xi.push(io),ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe));else xi=r;xi!==r?Vr=e.substring(Vr,k):Vr=xi,Vr!==r?(et=k,xi=ue(Vr),xi?xi=void 0:xi=r,xi!==r?(et=Hi,po=de(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function Nn(){var Hi,po;for(St++,Hi=[],Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));po!==r;)Hi.push(po),Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));return St--,Hi===r&&(po=r,St===0&&Ar(be)),Hi}if(At=a(),At!==r&&k===e.length)return At;throw At!==r&&k{var{parse:Lno}=ABn();alt.makeParser=(e=/[a-z]+/)=>(t,r)=>Lno(t,{queryPattern:e,checkFn:r});alt.parse=alt.makeParser()});var fBn=H((dMl,pBn)=>{"use strict";pBn.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var U6t=H((pMl,hBn)=>{var A3e=fBn(),IBn={};for(let e of Object.keys(A3e))IBn[A3e[e]]=e;var dd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};hBn.exports=dd;for(let e of Object.keys(dd)){if(!("channels"in dd[e]))throw new Error("missing channels property: "+e);if(!("labels"in dd[e]))throw new Error("missing channel labels property: "+e);if(dd[e].labels.length!==dd[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=dd[e];delete dd[e].channels,delete dd[e].labels,Object.defineProperty(dd[e],"channels",{value:t}),Object.defineProperty(dd[e],"labels",{value:r})}dd.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f;o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360);let I=(a+o)/2;return o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};dd.rgb.hsv=function(e){let t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?(a=0,o=0):(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};dd.rgb.hwb=function(e){let t=e[0],r=e[1],n=e[2],a=dd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};dd.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(1-t,1-r,1-n),o=(1-t-a)/(1-a)||0,l=(1-r-a)/(1-a)||0,A=(1-n-a)/(1-a)||0;return[o*100,l*100,A*100,a*100]};function Vno(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}dd.rgb.keyword=function(e){let t=IBn[e];if(t)return t;let r=1/0,n;for(let a of Object.keys(A3e)){let o=A3e[a],l=Vno(e,o);l.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};dd.rgb.lab=function(e){let t=dd.rgb.xyz(e),r=t[0],n=t[1],a=t[2];r/=95.047,n/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*n-16,l=500*(r-n),A=200*(n-a);return[o,l,A]};dd.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l;if(r===0)return l=n*255,[l,l,l];n<.5?a=n*(1+r):a=n+r-n*r;let A=2*n-a,f=[0,0,0];for(let I=0;I<3;I++)o=t+1/3*-(I-1),o<0&&o++,o>1&&o--,6*o<1?l=A+(a-A)*6*o:2*o<1?l=a:3*o<2?l=A+(a-A)*(2/3-o)*6:l=A,f[I]=l*255;return f};dd.hsl.hsv=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o;let l=(n+r)/2,A=n===0?2*a/(o+a):2*r/(n+r);return[t,A*100,l*100]};dd.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};dd.hsv.hsl=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l;l=(2-r)*n;let A=(2-r)*a;return o=r*a,o/=A<=1?A:2-A,o=o||0,l/=2,[t,o*100,l*100]};dd.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o;a>1&&(r/=a,n/=a);let l=Math.floor(6*t),A=1-n;o=6*t-l,l&1&&(o=1-o);let f=r+o*(A-r),I,C,b;switch(l){default:case 6:case 0:I=A,C=f,b=r;break;case 1:I=f,C=A,b=r;break;case 2:I=r,C=A,b=f;break;case 3:I=r,C=f,b=A;break;case 4:I=f,C=r,b=A;break;case 5:I=A,C=r,b=f;break}return[I*255,C*255,b*255]};dd.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a);return[o*255,l*255,A*255]};dd.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};dd.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let a=116*r-16,o=500*(t-r),l=200*(r-n);return[a,o,l]};dd.lab.xyz=function(e){let t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;let A=o**3,f=a**3,I=l**3;return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};dd.lab.lch=function(e){let t=e[0],r=e[1],n=e[2],a;a=Math.atan2(n,r)*360/2/Math.PI,a<0&&(a+=360);let l=Math.sqrt(r*r+n*n);return[t,l,a]};dd.lch.lab=function(e){let t=e[0],r=e[1],a=e[2]/360*2*Math.PI,o=r*Math.cos(a),l=r*Math.sin(a);return[t,o,l]};dd.rgb.ansi16=function(e,t=null){let[r,n,a]=e,o=t===null?dd.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let l=30+(Math.round(a/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return o===2&&(l+=60),l};dd.hsv.ansi16=function(e){return dd.rgb.ansi16(dd.hsv.rgb(e),e[2])};dd.rgb.ansi256=function(e){let t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};dd.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};dd.ansi256.rgb=function(e){if(e>=232){let o=(e-232)*10+8;return[o,o,o]}e-=16;let t,r=Math.floor(e/36)/5*255,n=Math.floor((t=e%36)/6)/5*255,a=t%6/5*255;return[r,n,a]};dd.rgb.hex=function(e){let r=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};dd.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};dd.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l,f/=6,f%=1,[f*360,l*100,A*100]};dd.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r),a=0;return n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};dd.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};dd.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];let a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};dd.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};dd.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};dd.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};dd.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};dd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};dd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};dd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};dd.gray.hsl=function(e){return[0,0,e[0]]};dd.gray.hsv=dd.gray.hsl;dd.gray.hwb=function(e){return[0,100,e[0]]};dd.gray.cmyk=function(e){return[0,0,0,e[0]]};dd.gray.lab=function(e){return[e[0],0,0]};dd.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n};dd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var CBn=H((fMl,mBn)=>{var clt=U6t();function Pno(){let e={},t=Object.keys(clt);for(let r=t.length,n=0;n{var K6t=U6t(),Hno=CBn(),kSe={},Yno=Object.keys(K6t);function Qno(e){let t=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function Xno(e){let t=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let a=e(r);if(typeof a=="object")for(let o=a.length,l=0;l{kSe[e]={},Object.defineProperty(kSe[e],"channels",{value:K6t[e].channels}),Object.defineProperty(kSe[e],"labels",{value:K6t[e].labels});let t=Hno(e);Object.keys(t).forEach(n=>{let a=t[n];kSe[e][n]=Xno(a),kSe[e][n].raw=Qno(a)})});_Bn.exports=kSe});var ult=H((hMl,BBn)=>{"use strict";var bBn=(e,t)=>(...r)=>`\x1B[${e(...r)+t}m`,EBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};5;${n}m`},SBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};2;${n[0]};${n[1]};${n[2]}m`},llt=e=>e,vBn=(e,t,r)=>[e,t,r],xSe=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{let n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},j6t,GSe=(e,t,r,n)=>{j6t===void 0&&(j6t=yBn());let a=n?10:0,o={};for(let[l,A]of Object.entries(j6t)){let f=l==="ansi16"?"ansi":l;l===t?o[f]=e(r,a):typeof A=="object"&&(o[f]=e(A[t],a))}return o};function Jno(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[a,o]of Object.entries(n))t[a]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[a]=t[a],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",xSe(t.color,"ansi",()=>GSe(bBn,"ansi16",llt,!1)),xSe(t.color,"ansi256",()=>GSe(EBn,"ansi256",llt,!1)),xSe(t.color,"ansi16m",()=>GSe(SBn,"rgb",vBn,!1)),xSe(t.bgColor,"ansi",()=>GSe(bBn,"ansi16",llt,!0)),xSe(t.bgColor,"ansi256",()=>GSe(EBn,"ansi256",llt,!0)),xSe(t.bgColor,"ansi16m",()=>GSe(SBn,"rgb",vBn,!0)),t}Object.defineProperty(BBn,"exports",{enumerable:!0,get:Jno})});var z6t=H((mMl,wBn)=>{"use strict";wBn.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n{"use strict";var Uno=wt("os"),TBn=wt("tty"),j5=z6t(),{env:JN}=process,roe;j5("no-color")||j5("no-colors")||j5("color=false")||j5("color=never")?roe=0:(j5("color")||j5("colors")||j5("color=true")||j5("color=always"))&&(roe=1);"FORCE_COLOR"in JN&&(JN.FORCE_COLOR==="true"?roe=1:JN.FORCE_COLOR==="false"?roe=0:roe=JN.FORCE_COLOR.length===0?1:Math.min(parseInt(JN.FORCE_COLOR,10),3));function q6t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function $6t(e,t){if(roe===0)return 0;if(j5("color=16m")||j5("color=full")||j5("color=truecolor"))return 3;if(j5("color=256"))return 2;if(e&&!t&&roe===void 0)return 0;let r=roe||0;if(JN.TERM==="dumb")return r;if(process.platform==="win32"){let n=Uno.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in JN)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in JN)||JN.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in JN)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(JN.TEAMCITY_VERSION)?1:0;if(JN.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in JN){let n=parseInt((JN.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(JN.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(JN.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(JN.TERM)||"COLORTERM"in JN?1:r}function Kno(e){let t=$6t(e,e&&e.isTTY);return q6t(t)}RBn.exports={supportsColor:Kno,stdout:q6t($6t(!0,TBn.isatty(1))),stderr:q6t($6t(!0,TBn.isatty(2)))}});var DBn=H((_Ml,NBn)=>{"use strict";var jno=(e,t,r)=>{let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.substr(o,n-o)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.substr(o),l},zno=(e,t,r,n)=>{let a=0,o="";do{let l=e[n-1]==="\r";o+=e.substr(a,(l?n-1:n)-a)+t+(l?`\r +`,"\r"],!1,!1),k=0,et=0,ct=[{line:1,column:1}],Me=0,je=[],St=0,At;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function Yt(){return e.substring(et,k)}function Tr(){return cr(et,k)}function Nr(Hi,po){throw po=po!==void 0?po:cr(et,k),_n([Xt(Hi)],e.substring(et,k),po)}function er(Hi,po){throw po=po!==void 0?po:cr(et,k),qr(Hi,po)}function vt(Hi,po){return{type:"literal",text:Hi,ignoreCase:po}}function xt(Hi,po,Vr){return{type:"class",parts:Hi,inverted:po,ignoreCase:Vr}}function Zr(){return{type:"any"}}function qt(){return{type:"end"}}function Xt(Hi){return{type:"other",description:Hi}}function lr(Hi){var po=ct[Hi],Vr;if(po)return po;for(Vr=Hi-1;!ct[Vr];)Vr--;for(po=ct[Vr],po={line:po.line,column:po.column};VrMe&&(Me=k,je=[]),je.push(Hi))}function qr(Hi,po){return new xfe(Hi,null,null,po)}function _n(Hi,po,Vr){return new xfe(xfe.buildMessage(Hi,po),Hi,po,Vr)}function ke(){var Hi,po,Vr,xi,io,ga,Ya,Gc;if(Hi=k,po=jt(),po!==r){for(Vr=[],xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);xi!==r;)Vr.push(xi),xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);Vr!==r?(et=Hi,po=b(po,Vr),Hi=po):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function jt(){var Hi,po,Vr,xi,io,ga;return Hi=k,e.charCodeAt(k)===33?(po=E,k++):(po=r,St===0&&Ar(N)),po!==r?(Vr=jt(),Vr!==r?(et=Hi,po=B(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=k,e.charCodeAt(k)===40?(po=F,k++):(po=r,St===0&&Ar(Q)),po!==r?(Vr=Nn(),Vr!==r?(xi=ke(),xi!==r?(io=Nn(),io!==r?(e.charCodeAt(k)===41?(ga=X,k++):(ga=r,St===0&&Ar(ae)),ga!==r?(et=Hi,po=ne(xi),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=Fn())),Hi}function Fn(){var Hi,po,Vr,xi,io;if(Hi=k,po=Nn(),po!==r){if(Vr=k,xi=[],ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe)),io!==r)for(;io!==r;)xi.push(io),ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe));else xi=r;xi!==r?Vr=e.substring(Vr,k):Vr=xi,Vr!==r?(et=k,xi=ue(Vr),xi?xi=void 0:xi=r,xi!==r?(et=Hi,po=de(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function Nn(){var Hi,po;for(St++,Hi=[],Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));po!==r;)Hi.push(po),Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));return St--,Hi===r&&(po=r,St===0&&Ar(be)),Hi}if(At=a(),At!==r&&k===e.length)return At;throw At!==r&&k{var{parse:Lno}=ABn();alt.makeParser=(e=/[a-z]+/)=>(t,r)=>Lno(t,{queryPattern:e,checkFn:r});alt.parse=alt.makeParser()});var fBn=H((pMl,pBn)=>{"use strict";pBn.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var U6t=H((fMl,hBn)=>{var A3e=fBn(),IBn={};for(let e of Object.keys(A3e))IBn[A3e[e]]=e;var dd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};hBn.exports=dd;for(let e of Object.keys(dd)){if(!("channels"in dd[e]))throw new Error("missing channels property: "+e);if(!("labels"in dd[e]))throw new Error("missing channel labels property: "+e);if(dd[e].labels.length!==dd[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=dd[e];delete dd[e].channels,delete dd[e].labels,Object.defineProperty(dd[e],"channels",{value:t}),Object.defineProperty(dd[e],"labels",{value:r})}dd.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f;o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360);let I=(a+o)/2;return o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};dd.rgb.hsv=function(e){let t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?(a=0,o=0):(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};dd.rgb.hwb=function(e){let t=e[0],r=e[1],n=e[2],a=dd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};dd.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(1-t,1-r,1-n),o=(1-t-a)/(1-a)||0,l=(1-r-a)/(1-a)||0,A=(1-n-a)/(1-a)||0;return[o*100,l*100,A*100,a*100]};function Vno(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}dd.rgb.keyword=function(e){let t=IBn[e];if(t)return t;let r=1/0,n;for(let a of Object.keys(A3e)){let o=A3e[a],l=Vno(e,o);l.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};dd.rgb.lab=function(e){let t=dd.rgb.xyz(e),r=t[0],n=t[1],a=t[2];r/=95.047,n/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*n-16,l=500*(r-n),A=200*(n-a);return[o,l,A]};dd.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l;if(r===0)return l=n*255,[l,l,l];n<.5?a=n*(1+r):a=n+r-n*r;let A=2*n-a,f=[0,0,0];for(let I=0;I<3;I++)o=t+1/3*-(I-1),o<0&&o++,o>1&&o--,6*o<1?l=A+(a-A)*6*o:2*o<1?l=a:3*o<2?l=A+(a-A)*(2/3-o)*6:l=A,f[I]=l*255;return f};dd.hsl.hsv=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o;let l=(n+r)/2,A=n===0?2*a/(o+a):2*r/(n+r);return[t,A*100,l*100]};dd.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};dd.hsv.hsl=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l;l=(2-r)*n;let A=(2-r)*a;return o=r*a,o/=A<=1?A:2-A,o=o||0,l/=2,[t,o*100,l*100]};dd.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o;a>1&&(r/=a,n/=a);let l=Math.floor(6*t),A=1-n;o=6*t-l,l&1&&(o=1-o);let f=r+o*(A-r),I,C,b;switch(l){default:case 6:case 0:I=A,C=f,b=r;break;case 1:I=f,C=A,b=r;break;case 2:I=r,C=A,b=f;break;case 3:I=r,C=f,b=A;break;case 4:I=f,C=r,b=A;break;case 5:I=A,C=r,b=f;break}return[I*255,C*255,b*255]};dd.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a);return[o*255,l*255,A*255]};dd.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};dd.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let a=116*r-16,o=500*(t-r),l=200*(r-n);return[a,o,l]};dd.lab.xyz=function(e){let t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;let A=o**3,f=a**3,I=l**3;return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};dd.lab.lch=function(e){let t=e[0],r=e[1],n=e[2],a;a=Math.atan2(n,r)*360/2/Math.PI,a<0&&(a+=360);let l=Math.sqrt(r*r+n*n);return[t,l,a]};dd.lch.lab=function(e){let t=e[0],r=e[1],a=e[2]/360*2*Math.PI,o=r*Math.cos(a),l=r*Math.sin(a);return[t,o,l]};dd.rgb.ansi16=function(e,t=null){let[r,n,a]=e,o=t===null?dd.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let l=30+(Math.round(a/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return o===2&&(l+=60),l};dd.hsv.ansi16=function(e){return dd.rgb.ansi16(dd.hsv.rgb(e),e[2])};dd.rgb.ansi256=function(e){let t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};dd.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};dd.ansi256.rgb=function(e){if(e>=232){let o=(e-232)*10+8;return[o,o,o]}e-=16;let t,r=Math.floor(e/36)/5*255,n=Math.floor((t=e%36)/6)/5*255,a=t%6/5*255;return[r,n,a]};dd.rgb.hex=function(e){let r=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};dd.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};dd.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l,f/=6,f%=1,[f*360,l*100,A*100]};dd.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r),a=0;return n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};dd.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};dd.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];let a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};dd.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};dd.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};dd.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};dd.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};dd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};dd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};dd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};dd.gray.hsl=function(e){return[0,0,e[0]]};dd.gray.hsv=dd.gray.hsl;dd.gray.hwb=function(e){return[0,100,e[0]]};dd.gray.cmyk=function(e){return[0,0,0,e[0]]};dd.gray.lab=function(e){return[e[0],0,0]};dd.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n};dd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var CBn=H((IMl,mBn)=>{var clt=U6t();function Pno(){let e={},t=Object.keys(clt);for(let r=t.length,n=0;n{var K6t=U6t(),Hno=CBn(),kSe={},Yno=Object.keys(K6t);function Qno(e){let t=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function Xno(e){let t=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let a=e(r);if(typeof a=="object")for(let o=a.length,l=0;l{kSe[e]={},Object.defineProperty(kSe[e],"channels",{value:K6t[e].channels}),Object.defineProperty(kSe[e],"labels",{value:K6t[e].labels});let t=Hno(e);Object.keys(t).forEach(n=>{let a=t[n];kSe[e][n]=Xno(a),kSe[e][n].raw=Qno(a)})});_Bn.exports=kSe});var ult=H((mMl,BBn)=>{"use strict";var bBn=(e,t)=>(...r)=>`\x1B[${e(...r)+t}m`,EBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};5;${n}m`},SBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};2;${n[0]};${n[1]};${n[2]}m`},llt=e=>e,vBn=(e,t,r)=>[e,t,r],xSe=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{let n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},j6t,GSe=(e,t,r,n)=>{j6t===void 0&&(j6t=yBn());let a=n?10:0,o={};for(let[l,A]of Object.entries(j6t)){let f=l==="ansi16"?"ansi":l;l===t?o[f]=e(r,a):typeof A=="object"&&(o[f]=e(A[t],a))}return o};function Jno(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[a,o]of Object.entries(n))t[a]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[a]=t[a],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",xSe(t.color,"ansi",()=>GSe(bBn,"ansi16",llt,!1)),xSe(t.color,"ansi256",()=>GSe(EBn,"ansi256",llt,!1)),xSe(t.color,"ansi16m",()=>GSe(SBn,"rgb",vBn,!1)),xSe(t.bgColor,"ansi",()=>GSe(bBn,"ansi16",llt,!0)),xSe(t.bgColor,"ansi256",()=>GSe(EBn,"ansi256",llt,!0)),xSe(t.bgColor,"ansi16m",()=>GSe(SBn,"rgb",vBn,!0)),t}Object.defineProperty(BBn,"exports",{enumerable:!0,get:Jno})});var z6t=H((CMl,wBn)=>{"use strict";wBn.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n{"use strict";var Uno=wt("os"),TBn=wt("tty"),j5=z6t(),{env:JN}=process,roe;j5("no-color")||j5("no-colors")||j5("color=false")||j5("color=never")?roe=0:(j5("color")||j5("colors")||j5("color=true")||j5("color=always"))&&(roe=1);"FORCE_COLOR"in JN&&(JN.FORCE_COLOR==="true"?roe=1:JN.FORCE_COLOR==="false"?roe=0:roe=JN.FORCE_COLOR.length===0?1:Math.min(parseInt(JN.FORCE_COLOR,10),3));function q6t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function $6t(e,t){if(roe===0)return 0;if(j5("color=16m")||j5("color=full")||j5("color=truecolor"))return 3;if(j5("color=256"))return 2;if(e&&!t&&roe===void 0)return 0;let r=roe||0;if(JN.TERM==="dumb")return r;if(process.platform==="win32"){let n=Uno.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in JN)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in JN)||JN.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in JN)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(JN.TEAMCITY_VERSION)?1:0;if(JN.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in JN){let n=parseInt((JN.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(JN.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(JN.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(JN.TERM)||"COLORTERM"in JN?1:r}function Kno(e){let t=$6t(e,e&&e.isTTY);return q6t(t)}RBn.exports={supportsColor:Kno,stdout:q6t($6t(!0,TBn.isatty(1))),stderr:q6t($6t(!0,TBn.isatty(2)))}});var DBn=H((yMl,NBn)=>{"use strict";var jno=(e,t,r)=>{let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.substr(o,n-o)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.substr(o),l},zno=(e,t,r,n)=>{let a=0,o="";do{let l=e[n-1]==="\r";o+=e.substr(a,(l?n-1:n)-a)+t+(l?`\r `:` `)+r,a=n+1,n=e.indexOf(` -`,a)}while(n!==-1);return o+=e.substr(a),o};NBn.exports={stringReplaceAll:jno,stringEncaseCRLFWithFirstIndex:zno}});var ZBn=H((yMl,FBn)=>{"use strict";var qno=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,kBn=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,$no=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,eio=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,tio=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GBn(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):tio.get(e)||e}function rio(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n){let l=Number(o);if(!Number.isNaN(l))r.push(l);else if(a=o.match($no))r.push(a[2].replace(eio,(A,f,I)=>f?GBn(f):I));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function nio(e){kBn.lastIndex=0;let t=[],r;for(;(r=kBn.exec(e))!==null;){let n=r[1];if(r[2]){let a=rio(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function xBn(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let[a,o]of Object.entries(r))if(Array.isArray(o)){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);n=o.length>0?n[a](...o):n[a]}return n}FBn.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(qno,(o,l,A,f,I,C)=>{if(l)a.push(GBn(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:xBn(e,r)(b)),r.push({inverse:A,styles:nio(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(xBn(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var VK=H((bMl,MBn)=>{"use strict";var d3e=ult(),{stdout:r7t,stderr:n7t}=e7t(),{stringReplaceAll:iio,stringEncaseCRLFWithFirstIndex:sio}=DBn(),{isArray:glt}=Array,VBn=["ansi","ansi","ansi256","ansi16m"],FSe=Object.create(null),oio=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=r7t?r7t.level:0;e.level=t.level===void 0?r:t.level},i7t=class{constructor(t){return PBn(t)}},PBn=e=>{let t={};return oio(t,e),t.template=(...r)=>OBn(t.template,...r),Object.setPrototypeOf(t,Alt.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=i7t,t.template};function Alt(e){return PBn(e)}for(let[e,t]of Object.entries(d3e))FSe[e]={get(){let r=dlt(this,s7t(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};FSe.visible={get(){let e=dlt(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var WBn=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of WBn)FSe[e]={get(){let{level:t}=this;return function(...r){let n=s7t(d3e.color[VBn[t]][e](...r),d3e.color.close,this._styler);return dlt(this,n,this._isEmpty)}}};for(let e of WBn){let t="bg"+e[0].toUpperCase()+e.slice(1);FSe[t]={get(){let{level:r}=this;return function(...n){let a=s7t(d3e.bgColor[VBn[r]][e](...n),d3e.bgColor.close,this._styler);return dlt(this,a,this._isEmpty)}}}}var aio=Object.defineProperties(()=>{},{...FSe,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),s7t=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},dlt=(e,t,r)=>{let n=(...a)=>glt(a[0])&&glt(a[0].raw)?LBn(n,OBn(n,...a)):LBn(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,aio),n._generator=e,n._styler=t,n._isEmpty=r,n},LBn=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=iio(t,r.close,r.open),r=r.parent;let o=t.indexOf(` -`);return o!==-1&&(t=sio(t,a,n,o)),n+t+a},t7t,OBn=(e,...t)=>{let[r]=t;if(!glt(r)||!glt(r.raw))return t.join(" ");let n=t.slice(1),a=[r.raw[0]];for(let o=1;o{"use strict";z5.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;z5.find=(e,t)=>e.nodes.find(r=>r.type===t);z5.exceedsLimit=(e,t,r=1,n)=>n===!1||!z5.isInteger(e)||!z5.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;z5.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};z5.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);z5.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;z5.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;z5.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);z5.flatten=(...e)=>{let t=[],r=n=>{for(let a=0;a{"use strict";var HBn=flt();YBn.exports=(e,t={})=>{let r=(n,a={})=>{let o=t.escapeInvalid&&HBn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A="";if(n.value)return(o||l)&&HBn.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let f of n.nodes)A+=r(f);return A};return r(e)}});var XBn=H((vMl,QBn)=>{"use strict";QBn.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var twn=H((BMl,ewn)=>{"use strict";var JBn=XBn(),Gfe=(e,t,r)=>{if(JBn(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(JBn(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let a=String(n.relaxZeros),o=String(n.shorthand),l=String(n.capture),A=String(n.wrap),f=e+":"+t+"="+a+o+l+A;if(Gfe.cache.hasOwnProperty(f))return Gfe.cache[f].result;let I=Math.min(e,t),C=Math.max(e,t);if(Math.abs(I-C)===1){let F=e+"|"+t;return n.capture?`(${F})`:n.wrap===!1?F:`(?:${F})`}let b=$Bn(e)||$Bn(t),E={min:e,max:t,a:I,b:C},N=[],B=[];if(b&&(E.isPadded=b,E.maxLen=String(E.max).length),I<0){let F=C<0?Math.abs(C):1;B=UBn(F,Math.abs(I),E,n),I=E.a=0}return C>=0&&(N=UBn(I,C,E,n)),E.negatives=B,E.positives=N,E.result=cio(B,N,n),n.capture===!0?E.result=`(${E.result})`:n.wrap!==!1&&N.length+B.length>1&&(E.result=`(?:${E.result})`),Gfe.cache[f]=E,E.result};function cio(e,t,r){let n=o7t(e,t,"-",!1,r)||[],a=o7t(t,e,"",!1,r)||[],o=o7t(e,t,"-?",!0,r)||[];return n.concat(o).concat(a).join("|")}function lio(e,t){let r=1,n=1,a=jBn(e,r),o=new Set([t]);for(;e<=a&&a<=t;)o.add(a),r+=1,a=jBn(e,r);for(a=zBn(t+1,n)-1;e1&&A.count.pop(),A.count.push(C.count[0]),A.string=A.pattern+qBn(A.count),l=I+1;continue}r.isPadded&&(b=pio(I,r,n)),C.string=b+C.pattern+qBn(C.count),o.push(C),l=I+1,A=C}return o}function o7t(e,t,r,n,a){let o=[];for(let l of e){let{string:A}=l;!n&&!KBn(t,"string",A)&&o.push(r+A),n&&KBn(t,"string",A)&&o.push(r+A)}return o}function gio(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function KBn(e,t,r){return e.some(n=>n[t]===r)}function jBn(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function zBn(e,t){return e-e%Math.pow(10,t)}function qBn(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function dio(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function $Bn(e){return/^-?(0+)\d/.test(e)}function pio(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),a=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${n}}`:`0{${n}}`}}Gfe.cache={};Gfe.clearCache=()=>Gfe.cache={};ewn.exports=Gfe});var l7t=H((wMl,cwn)=>{"use strict";var fio=wt("util"),nwn=twn(),rwn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Iio=e=>t=>e===!0?Number(t):String(t),a7t=e=>typeof e=="number"||typeof e=="string"&&e!=="",p3e=e=>Number.isInteger(+e),c7t=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},hio=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,mio=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},mlt=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((A,f)=>Af?1:0),e.positives.sort((A,f)=>Af?1:0);let n=t.capture?"":"?:",a="",o="",l;return e.positives.length&&(a=e.positives.map(A=>mlt(String(A),r)).join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.map(A=>mlt(String(A),r)).join("|")})`),a&&o?l=`${a}|${o}`:l=a||o,t.wrap?`(${n}${l})`:l},iwn=(e,t,r,n)=>{if(r)return nwn(e,t,{wrap:!1,...n});let a=String.fromCharCode(e);if(e===t)return a;let o=String.fromCharCode(t);return`[${a}-${o}]`},swn=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,a=r.capture?"":"?:";return n?`(${a}${e.join("|")})`:e.join("|")}return nwn(e,t,r)},own=(...e)=>new RangeError("Invalid range arguments: "+fio.inspect(...e)),awn=(e,t,r)=>{if(r.strictRanges===!0)throw own([e,t]);return[]},_io=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},yio=(e,t,r=1,n={})=>{let a=Number(e),o=Number(t);if(!Number.isInteger(a)||!Number.isInteger(o)){if(n.strictRanges===!0)throw own([e,t]);return[]}a===0&&(a=0),o===0&&(o=0);let l=a>o,A=String(e),f=String(t),I=String(r);r=Math.max(Math.abs(r),1);let C=c7t(A)||c7t(f)||c7t(I),b=C?Math.max(A.length,f.length,I.length):0,E=C===!1&&hio(e,t,n)===!1,N=n.transform||Iio(E);if(n.toRegex&&r===1)return iwn(mlt(e,b),mlt(t,b),!0,n);let B={negatives:[],positives:[]},F=ae=>B[ae<0?"negatives":"positives"].push(Math.abs(ae)),Q=[],X=0;for(;l?a>=o:a<=o;)n.toRegex===!0&&r>1?F(a):Q.push(mio(N(a,X),b,E)),a=l?a-r:a+r,X++;return n.toRegex===!0?r>1?Cio(B,n,b):swn(Q,null,{wrap:!1,...n}):Q},bio=(e,t,r=1,n={})=>{if(!p3e(e)&&e.length>1||!p3e(t)&&t.length>1)return awn(e,t,n);let a=n.transform||(E=>String.fromCharCode(E)),o=`${e}`.charCodeAt(0),l=`${t}`.charCodeAt(0),A=o>l,f=Math.min(o,l),I=Math.max(o,l);if(n.toRegex&&r===1)return iwn(f,I,!1,n);let C=[],b=0;for(;A?o>=l:o<=l;)C.push(a(o,b)),o=A?o-r:o+r,b++;return n.toRegex===!0?swn(C,null,{wrap:!1,options:n}):C},hlt=(e,t,r,n={})=>{if(t==null&&a7t(e))return[e];if(!a7t(e)||!a7t(t))return awn(e,t,n);if(typeof r=="function")return hlt(e,t,1,{transform:r});if(rwn(r))return hlt(e,t,0,r);let a={...n};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,p3e(r)?p3e(e)&&p3e(t)?yio(e,t,r,a):bio(e,t,Math.max(Math.abs(r),1),a):r!=null&&!rwn(r)?_io(r,a):hlt(e,t,1,r)};cwn.exports=hlt});var gwn=H((TMl,uwn)=>{"use strict";var Eio=l7t(),lwn=flt(),Sio=(e,t={})=>{let r=(n,a={})=>{let o=lwn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A=o===!0||l===!0,f=t.escapeInvalid===!0?"\\":"",I="";if(n.isOpen===!0)return f+n.value;if(n.isClose===!0)return console.log("node.isClose",f,n.value),f+n.value;if(n.type==="open")return A?f+n.value:"(";if(n.type==="close")return A?f+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":A?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let C=lwn.reduce(n.nodes),b=Eio(...C,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(b.length!==0)return C.length>1&&b.length>1?`(${b})`:b}if(n.nodes)for(let C of n.nodes)I+=r(C,n);return I};return r(e)};uwn.exports=Sio});var pwn=H((RMl,dwn)=>{"use strict";var vio=l7t(),Awn=Ilt(),ZSe=flt(),Ffe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?ZSe.flatten(t).map(a=>`{${a}}`):t;for(let a of e)if(Array.isArray(a))for(let o of a)n.push(Ffe(o,t,r));else for(let o of t)r===!0&&typeof o=="string"&&(o=`{${o}}`),n.push(Array.isArray(o)?Ffe(a,o,r):a+o);return ZSe.flatten(n)},Bio=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(a,o={})=>{a.queue=[];let l=o,A=o.queue;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,A=l.queue;if(a.invalid||a.dollar){A.push(Ffe(A.pop(),Awn(a,t)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(Ffe(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let b=ZSe.reduce(a.nodes);if(ZSe.exceedsLimit(...b,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let E=vio(...b,t);E.length===0&&(E=Awn(a,t)),A.push(Ffe(A.pop(),E)),a.nodes=[];return}let f=ZSe.encloseBrace(a),I=a.queue,C=a;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,I=C.queue;for(let b=0;b{"use strict";fwn.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var ywn=H((DMl,_wn)=>{"use strict";var wio=Ilt(),{MAX_LENGTH:hwn,CHAR_BACKSLASH:u7t,CHAR_BACKTICK:Tio,CHAR_COMMA:Rio,CHAR_DOT:Nio,CHAR_LEFT_PARENTHESES:Dio,CHAR_RIGHT_PARENTHESES:kio,CHAR_LEFT_CURLY_BRACE:xio,CHAR_RIGHT_CURLY_BRACE:Gio,CHAR_LEFT_SQUARE_BRACKET:mwn,CHAR_RIGHT_SQUARE_BRACKET:Cwn,CHAR_DOUBLE_QUOTE:Fio,CHAR_SINGLE_QUOTE:Zio,CHAR_NO_BREAK_SPACE:Lio,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Vio}=Iwn(),Pio=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(hwn,r.maxLength):hwn;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let a={type:"root",input:e,nodes:[]},o=[a],l=a,A=a,f=0,I=e.length,C=0,b=0,E,N=()=>e[C++],B=F=>{if(F.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&F.type==="text"){A.value+=F.value;return}return l.nodes.push(F),F.parent=l,F.prev=A,A=F,F};for(B({type:"bos"});C0){if(l.ranges>0){l.ranges=0;let F=l.nodes.shift();l.nodes=[F,{type:"text",value:wio(l)}]}B({type:"comma",value:E}),l.commas++;continue}if(E===Nio&&b>0&&l.commas===0){let F=l.nodes;if(b===0||F.length===0){B({type:"text",value:E});continue}if(A.type==="dot"){if(l.range=[],A.value+=E,A.type="range",l.nodes.length!==3&&l.nodes.length!==5){l.invalid=!0,l.ranges=0,A.type="text";continue}l.ranges++,l.args=[];continue}if(A.type==="range"){F.pop();let Q=F[F.length-1];Q.value+=A.value+E,A=Q,l.ranges--;continue}B({type:"dot",value:E});continue}B({type:"text",value:E})}do if(l=o.pop(),l.type!=="root"){l.nodes.forEach(X=>{X.nodes||(X.type==="open"&&(X.isOpen=!0),X.type==="close"&&(X.isClose=!0),X.nodes||(X.type="text"),X.invalid=!0)});let F=o[o.length-1],Q=F.nodes.indexOf(l);F.nodes.splice(Q,1,...l.nodes)}while(o.length>0);return B({type:"eos"}),a};_wn.exports=Pio});var Swn=H((kMl,Ewn)=>{"use strict";var bwn=Ilt(),Wio=gwn(),Oio=pwn(),Mio=ywn(),NW=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let a=NW.create(n,t);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(NW.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};NW.parse=(e,t={})=>Mio(e,t);NW.stringify=(e,t={})=>bwn(typeof e=="string"?NW.parse(e,t):e,t);NW.compile=(e,t={})=>(typeof e=="string"&&(e=NW.parse(e,t)),Wio(e,t));NW.expand=(e,t={})=>{typeof e=="string"&&(e=NW.parse(e,t));let r=Oio(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};NW.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?NW.compile(e,t):NW.expand(e,t);Ewn.exports=NW});var f3e=H((xMl,Rwn)=>{"use strict";var Hio=wt("path"),PK="\\\\/",vwn=`[^${PK}]`,Uq="\\.",Yio="\\+",Qio="\\?",Clt="\\/",Xio="(?=.)",Bwn="[^/]",g7t=`(?:${Clt}|$)`,wwn=`(?:^|${Clt})`,A7t=`${Uq}{1,2}${g7t}`,Jio=`(?!${Uq})`,Uio=`(?!${wwn}${A7t})`,Kio=`(?!${Uq}{0,1}${g7t})`,jio=`(?!${A7t})`,zio=`[^.${Clt}]`,qio=`${Bwn}*?`,Twn={DOT_LITERAL:Uq,PLUS_LITERAL:Yio,QMARK_LITERAL:Qio,SLASH_LITERAL:Clt,ONE_CHAR:Xio,QMARK:Bwn,END_ANCHOR:g7t,DOTS_SLASH:A7t,NO_DOT:Jio,NO_DOTS:Uio,NO_DOT_SLASH:Kio,NO_DOTS_SLASH:jio,QMARK_NO_DOT:zio,STAR:qio,START_ANCHOR:wwn},$io={...Twn,SLASH_LITERAL:`[${PK}]`,QMARK:vwn,STAR:`${vwn}*?`,DOTS_SLASH:`${Uq}{1,2}(?:[${PK}]|$)`,NO_DOT:`(?!${Uq})`,NO_DOTS:`(?!(?:^|[${PK}])${Uq}{1,2}(?:[${PK}]|$))`,NO_DOT_SLASH:`(?!${Uq}{0,1}(?:[${PK}]|$))`,NO_DOTS_SLASH:`(?!${Uq}{1,2}(?:[${PK}]|$))`,QMARK_NO_DOT:`[^.${PK}]`,START_ANCHOR:`(?:^|[${PK}])`,END_ANCHOR:`(?:[${PK}]|$)`},eso={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Rwn.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:eso,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Hio.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?$io:Twn}}});var I3e=H(Y9=>{"use strict";var tso=wt("path"),rso=process.platform==="win32",{REGEX_BACKSLASH:nso,REGEX_REMOVE_BACKSLASH:iso,REGEX_SPECIAL_CHARS:sso,REGEX_SPECIAL_CHARS_GLOBAL:oso}=f3e();Y9.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Y9.hasRegexChars=e=>sso.test(e);Y9.isRegexChar=e=>e.length===1&&Y9.hasRegexChars(e);Y9.escapeRegex=e=>e.replace(oso,"\\$1");Y9.toPosixSlashes=e=>e.replace(nso,"/");Y9.removeBackslashes=e=>e.replace(iso,t=>t==="\\"?"":t);Y9.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Y9.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:rso===!0||tso.sep==="\\";Y9.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Y9.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Y9.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Y9.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o}});var Lwn=H((FMl,Zwn)=>{"use strict";var Nwn=I3e(),{CHAR_ASTERISK:d7t,CHAR_AT:aso,CHAR_BACKWARD_SLASH:h3e,CHAR_COMMA:cso,CHAR_DOT:p7t,CHAR_EXCLAMATION_MARK:f7t,CHAR_FORWARD_SLASH:Fwn,CHAR_LEFT_CURLY_BRACE:I7t,CHAR_LEFT_PARENTHESES:h7t,CHAR_LEFT_SQUARE_BRACKET:lso,CHAR_PLUS:uso,CHAR_QUESTION_MARK:Dwn,CHAR_RIGHT_CURLY_BRACE:gso,CHAR_RIGHT_PARENTHESES:kwn,CHAR_RIGHT_SQUARE_BRACKET:Aso}=f3e(),xwn=e=>e===Fwn||e===h3e,Gwn=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},dso=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&xwn(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Nwn.removeBackslashes(je)),ct&&ae===!0&&(ct=Nwn.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,xwn(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var _lt=f3e(),DW=I3e(),{MAX_LENGTH:ylt,POSIX_REGEX_SOURCE:pso,REGEX_NON_SPECIAL_CHARS:fso,REGEX_SPECIAL_CHARS_BACKREF:Iso,REPLACEMENTS:Vwn}=_lt,hso=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>DW.escapeRegex(a)).join("..")}return r},LSe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,m7t=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Vwn[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=DW.isWindows(t),I=_lt.globChars(f),C=_lt.extglobChars(I),{DOT_LITERAL:b,PLUS_LITERAL:E,SLASH_LITERAL:N,ONE_CHAR:B,DOTS_SLASH:F,NO_DOT:Q,NO_DOT_SLASH:X,NO_DOTS_SLASH:ae,QMARK:ne,QMARK_NO_DOT:ce,STAR:fe,START_ANCHOR:ue}=I,de=Ar=>`(${A}(?:(?!${ue}${Ar.dot?F:b}).)*?)`,be=r.dot?"":Q,Se=r.dot?ne:ce,De=r.bash===!0?de(r):fe;r.capture&&(De=`(${De})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let k={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=DW.removePrefix(e,k),a=e.length;let et=[],ct=[],Me=[],je=o,St,At=()=>k.index===a-1,Yt=k.peek=(Ar=1)=>e[k.index+Ar],Tr=k.advance=()=>e[++k.index]||"",Nr=()=>e.slice(k.index+1),er=(Ar="",qr=0)=>{k.consumed+=Ar,k.index+=qr},vt=Ar=>{k.output+=Ar.output!=null?Ar.output:Ar.value,er(Ar.value)},xt=()=>{let Ar=1;for(;Yt()==="!"&&(Yt(2)!=="("||Yt(3)==="?");)Tr(),k.start++,Ar++;return Ar%2===0?!1:(k.negated=!0,k.start++,!0)},Zr=Ar=>{k[Ar]++,Me.push(Ar)},qt=Ar=>{k[Ar]--,Me.pop()},Xt=Ar=>{if(je.type==="globstar"){let qr=k.braces>0&&(Ar.type==="comma"||Ar.type==="brace"),_n=Ar.extglob===!0||et.length&&(Ar.type==="pipe"||Ar.type==="paren");Ar.type!=="slash"&&Ar.type!=="paren"&&!qr&&!_n&&(k.output=k.output.slice(0,-je.output.length),je.type="star",je.value="*",je.output=De,k.output+=je.output)}if(et.length&&Ar.type!=="paren"&&(et[et.length-1].inner+=Ar.value),(Ar.value||Ar.output)&&vt(Ar),je&&je.type==="text"&&Ar.type==="text"){je.value+=Ar.value,je.output=(je.output||"")+Ar.value;return}Ar.prev=je,l.push(Ar),je=Ar},lr=(Ar,qr)=>{let _n={...C[qr],conditions:1,inner:""};_n.prev=je,_n.parens=k.parens,_n.output=k.output;let ke=(r.capture?"(":"")+_n.open;Zr("parens"),Xt({type:Ar,value:qr,output:k.output?"":B}),Xt({type:"paren",extglob:!0,value:Tr(),output:ke}),et.push(_n)},cr=Ar=>{let qr=Ar.close+(r.capture?")":""),_n;if(Ar.type==="negate"){let ke=De;if(Ar.inner&&Ar.inner.length>1&&Ar.inner.includes("/")&&(ke=de(r)),(ke!==De||At()||/^\)+$/.test(Nr()))&&(qr=Ar.close=`)$))${ke}`),Ar.inner.includes("*")&&(_n=Nr())&&/^\.[^\\/.]+$/.test(_n)){let jt=m7t(_n,{...t,fastpaths:!1}).output;qr=Ar.close=`)${jt})${ke})`}Ar.prev.type==="bos"&&(k.negatedExtglob=!0)}Xt({type:"paren",extglob:!0,value:St,output:qr}),qt("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let Ar=!1,qr=e.replace(Iso,(_n,ke,jt,Fn,Nn,Hi)=>Fn==="\\"?(Ar=!0,_n):Fn==="?"?ke?ke+Fn+(Nn?ne.repeat(Nn.length):""):Hi===0?Se+(Nn?ne.repeat(Nn.length):""):ne.repeat(jt.length):Fn==="."?b.repeat(jt.length):Fn==="*"?ke?ke+Fn+(Nn?De:""):De:ke?_n:`\\${_n}`);return Ar===!0&&(r.unescape===!0?qr=qr.replace(/\\/g,""):qr=qr.replace(/\\+/g,_n=>_n.length%2===0?"\\\\":_n?"\\":"")),qr===e&&r.contains===!0?(k.output=e,k):(k.output=DW.wrapOutput(qr,k,t),k)}for(;!At();){if(St=Tr(),St==="\0")continue;if(St==="\\"){let _n=Yt();if(_n==="/"&&r.bash!==!0||_n==="."||_n===";")continue;if(!_n){St+="\\",Xt({type:"text",value:St});continue}let ke=/^\\+/.exec(Nr()),jt=0;if(ke&&ke[0].length>2&&(jt=ke[0].length,k.index+=jt,jt%2!==0&&(St+="\\")),r.unescape===!0?St=Tr():St+=Tr(),k.brackets===0){Xt({type:"text",value:St});continue}}if(k.brackets>0&&(St!=="]"||je.value==="["||je.value==="[^")){if(r.posix!==!1&&St===":"){let _n=je.value.slice(1);if(_n.includes("[")&&(je.posix=!0,_n.includes(":"))){let ke=je.value.lastIndexOf("["),jt=je.value.slice(0,ke),Fn=je.value.slice(ke+2),Nn=pso[Fn];if(Nn){je.value=jt+Nn,k.backtrack=!0,Tr(),!o.output&&l.indexOf(je)===1&&(o.output=B);continue}}}(St==="["&&Yt()!==":"||St==="-"&&Yt()==="]")&&(St=`\\${St}`),St==="]"&&(je.value==="["||je.value==="[^")&&(St=`\\${St}`),r.posix===!0&&St==="!"&&je.value==="["&&(St="^"),je.value+=St,vt({value:St});continue}if(k.quotes===1&&St!=='"'){St=DW.escapeRegex(St),je.value+=St,vt({value:St});continue}if(St==='"'){k.quotes=k.quotes===1?0:1,r.keepQuotes===!0&&Xt({type:"text",value:St});continue}if(St==="("){Zr("parens"),Xt({type:"paren",value:St});continue}if(St===")"){if(k.parens===0&&r.strictBrackets===!0)throw new SyntaxError(LSe("opening","("));let _n=et[et.length-1];if(_n&&k.parens===_n.parens+1){cr(et.pop());continue}Xt({type:"paren",value:St,output:k.parens?")":"\\)"}),qt("parens");continue}if(St==="["){if(r.nobracket===!0||!Nr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));St=`\\${St}`}else Zr("brackets");Xt({type:"bracket",value:St});continue}if(St==="]"){if(r.nobracket===!0||je&&je.type==="bracket"&&je.value.length===1){Xt({type:"text",value:St,output:`\\${St}`});continue}if(k.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(LSe("opening","["));Xt({type:"text",value:St,output:`\\${St}`});continue}qt("brackets");let _n=je.value.slice(1);if(je.posix!==!0&&_n[0]==="^"&&!_n.includes("/")&&(St=`/${St}`),je.value+=St,vt({value:St}),r.literalBrackets===!1||DW.hasRegexChars(_n))continue;let ke=DW.escapeRegex(je.value);if(k.output=k.output.slice(0,-je.value.length),r.literalBrackets===!0){k.output+=ke,je.value=ke;continue}je.value=`(${A}${ke}|${je.value})`,k.output+=je.value;continue}if(St==="{"&&r.nobrace!==!0){Zr("braces");let _n={type:"brace",value:St,output:"(",outputIndex:k.output.length,tokensIndex:k.tokens.length};ct.push(_n),Xt(_n);continue}if(St==="}"){let _n=ct[ct.length-1];if(r.nobrace===!0||!_n){Xt({type:"text",value:St,output:St});continue}let ke=")";if(_n.dots===!0){let jt=l.slice(),Fn=[];for(let Nn=jt.length-1;Nn>=0&&(l.pop(),jt[Nn].type!=="brace");Nn--)jt[Nn].type!=="dots"&&Fn.unshift(jt[Nn].value);ke=hso(Fn,r),k.backtrack=!0}if(_n.comma!==!0&&_n.dots!==!0){let jt=k.output.slice(0,_n.outputIndex),Fn=k.tokens.slice(_n.tokensIndex);_n.value=_n.output="\\{",St=ke="\\}",k.output=jt;for(let Nn of Fn)k.output+=Nn.output||Nn.value}Xt({type:"brace",value:St,output:ke}),qt("braces"),ct.pop();continue}if(St==="|"){et.length>0&&et[et.length-1].conditions++,Xt({type:"text",value:St});continue}if(St===","){let _n=St,ke=ct[ct.length-1];ke&&Me[Me.length-1]==="braces"&&(ke.comma=!0,_n="|"),Xt({type:"comma",value:St,output:_n});continue}if(St==="/"){if(je.type==="dot"&&k.index===k.start+1){k.start=k.index+1,k.consumed="",k.output="",l.pop(),je=o;continue}Xt({type:"slash",value:St,output:N});continue}if(St==="."){if(k.braces>0&&je.type==="dot"){je.value==="."&&(je.output=b);let _n=ct[ct.length-1];je.type="dots",je.output+=St,je.value+=St,_n.dots=!0;continue}if(k.braces+k.parens===0&&je.type!=="bos"&&je.type!=="slash"){Xt({type:"text",value:St,output:b});continue}Xt({type:"dot",value:St,output:b});continue}if(St==="?"){if(!(je&&je.value==="(")&&r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("qmark",St);continue}if(je&&je.type==="paren"){let ke=Yt(),jt=St;if(ke==="<"&&!DW.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(je.value==="("&&!/[!=<:]/.test(ke)||ke==="<"&&!/<([!=]|\w+>)/.test(Nr()))&&(jt=`\\${St}`),Xt({type:"text",value:St,output:jt});continue}if(r.dot!==!0&&(je.type==="slash"||je.type==="bos")){Xt({type:"qmark",value:St,output:ce});continue}Xt({type:"qmark",value:St,output:ne});continue}if(St==="!"){if(r.noextglob!==!0&&Yt()==="("&&(Yt(2)!=="?"||!/[!=<:]/.test(Yt(3)))){lr("negate",St);continue}if(r.nonegate!==!0&&k.index===0){xt();continue}}if(St==="+"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("plus",St);continue}if(je&&je.value==="("||r.regex===!1){Xt({type:"plus",value:St,output:E});continue}if(je&&(je.type==="bracket"||je.type==="paren"||je.type==="brace")||k.parens>0){Xt({type:"plus",value:St});continue}Xt({type:"plus",value:E});continue}if(St==="@"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){Xt({type:"at",extglob:!0,value:St,output:""});continue}Xt({type:"text",value:St});continue}if(St!=="*"){(St==="$"||St==="^")&&(St=`\\${St}`);let _n=fso.exec(Nr());_n&&(St+=_n[0],k.index+=_n[0].length),Xt({type:"text",value:St});continue}if(je&&(je.type==="globstar"||je.star===!0)){je.type="star",je.star=!0,je.value+=St,je.output=De,k.backtrack=!0,k.globstar=!0,er(St);continue}let Ar=Nr();if(r.noextglob!==!0&&/^\([^?]/.test(Ar)){lr("star",St);continue}if(je.type==="star"){if(r.noglobstar===!0){er(St);continue}let _n=je.prev,ke=_n.prev,jt=_n.type==="slash"||_n.type==="bos",Fn=ke&&(ke.type==="star"||ke.type==="globstar");if(r.bash===!0&&(!jt||Ar[0]&&Ar[0]!=="/")){Xt({type:"star",value:St,output:""});continue}let Nn=k.braces>0&&(_n.type==="comma"||_n.type==="brace"),Hi=et.length&&(_n.type==="pipe"||_n.type==="paren");if(!jt&&_n.type!=="paren"&&!Nn&&!Hi){Xt({type:"star",value:St,output:""});continue}for(;Ar.slice(0,3)==="/**";){let po=e[k.index+4];if(po&&po!=="/")break;Ar=Ar.slice(3),er("/**",3)}if(_n.type==="bos"&&At()){je.type="globstar",je.value+=St,je.output=de(r),k.output=je.output,k.globstar=!0,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&!Fn&&At()){k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=de(r)+(r.strictSlashes?")":"|$)"),je.value+=St,k.globstar=!0,k.output+=_n.output+je.output,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&Ar[0]==="/"){let po=Ar[1]!==void 0?"|$":"";k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=`${de(r)}${N}|${N}${po})`,je.value+=St,k.output+=_n.output+je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}if(_n.type==="bos"&&Ar[0]==="/"){je.type="globstar",je.value+=St,je.output=`(?:^|${N}|${de(r)}${N})`,k.output=je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}k.output=k.output.slice(0,-je.output.length),je.type="globstar",je.output=de(r),je.value+=St,k.output+=je.output,k.globstar=!0,er(St);continue}let qr={type:"star",value:St,output:De};if(r.bash===!0){qr.output=".*?",(je.type==="bos"||je.type==="slash")&&(qr.output=be+qr.output),Xt(qr);continue}if(je&&(je.type==="bracket"||je.type==="paren")&&r.regex===!0){qr.output=St,Xt(qr);continue}(k.index===k.start||je.type==="slash"||je.type==="dot")&&(je.type==="dot"?(k.output+=X,je.output+=X):r.dot===!0?(k.output+=ae,je.output+=ae):(k.output+=be,je.output+=be),Yt()!=="*"&&(k.output+=B,je.output+=B)),Xt(qr)}for(;k.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));k.output=DW.escapeLast(k.output,"["),qt("brackets")}for(;k.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing",")"));k.output=DW.escapeLast(k.output,"("),qt("parens")}for(;k.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","}"));k.output=DW.escapeLast(k.output,"{"),qt("braces")}if(r.strictSlashes!==!0&&(je.type==="star"||je.type==="bracket")&&Xt({type:"maybe_slash",value:"",output:`${N}?`}),k.backtrack===!0){k.output="";for(let Ar of k.tokens)k.output+=Ar.output!=null?Ar.output:Ar.value,Ar.suffix&&(k.output+=Ar.suffix)}return k};m7t.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=Vwn[e]||e;let o=DW.isWindows(t),{DOT_LITERAL:l,SLASH_LITERAL:A,ONE_CHAR:f,DOTS_SLASH:I,NO_DOT:C,NO_DOTS:b,NO_DOTS_SLASH:E,STAR:N,START_ANCHOR:B}=_lt.globChars(o),F=r.dot?b:C,Q=r.dot?E:C,X=r.capture?"":"?:",ae={negated:!1,prefix:""},ne=r.bash===!0?".*?":N;r.capture&&(ne=`(${ne})`);let ce=be=>be.noglobstar===!0?ne:`(${X}(?:(?!${B}${be.dot?I:l}).)*?)`,fe=be=>{switch(be){case"*":return`${F}${f}${ne}`;case".*":return`${l}${f}${ne}`;case"*.*":return`${F}${ne}${l}${f}${ne}`;case"*/*":return`${F}${ne}${A}${f}${Q}${ne}`;case"**":return F+ce(r);case"**/*":return`(?:${F}${ce(r)}${A})?${Q}${f}${ne}`;case"**/*.*":return`(?:${F}${ce(r)}${A})?${Q}${ne}${l}${f}${ne}`;case"**/.*":return`(?:${F}${ce(r)}${A})?${l}${f}${ne}`;default:{let Se=/^(.*?)\.(\w+)$/.exec(be);if(!Se)return;let De=fe(Se[1]);return De?De+l+Se[2]:void 0}}},ue=DW.removePrefix(e,ae),de=fe(ue);return de&&r.strictSlashes!==!0&&(de+=`${A}?`),de};Pwn.exports=m7t});var Mwn=H((LMl,Own)=>{"use strict";var mso=wt("path"),Cso=Lwn(),C7t=Wwn(),_7t=I3e(),_so=f3e(),yso=e=>e&&typeof e=="object"&&!Array.isArray(e),KB=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>KB(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=yso(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=_7t.isWindows(t),l=n?KB.compileRe(e,t):KB.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=KB(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=KB.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};KB.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?_7t.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=KB.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};KB.matchBase=(e,t,r,n=_7t.isWindows(r))=>(t instanceof RegExp?t:KB.makeRe(t,r)).test(mso.basename(e));KB.isMatch=(e,t,r)=>KB(t,r)(e);KB.parse=(e,t)=>Array.isArray(e)?e.map(r=>KB.parse(r,t)):C7t(e,{...t,fastpaths:!1});KB.scan=(e,t)=>Cso(e,t);KB.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=KB.toRegex(A,t);return n===!0&&(f.state=e),f};KB.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=C7t.fastpaths(e,t)),a.output||(a=C7t(e,t)),KB.compileRe(a,t,r,n)};KB.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};KB.constants=_so;Own.exports=KB});var Ywn=H((VMl,Hwn)=>{"use strict";Hwn.exports=Mwn()});var Ek=H((PMl,Kwn)=>{"use strict";var Xwn=wt("util"),Jwn=Swn(),WK=Ywn(),y7t=I3e(),Qwn=e=>e===""||e==="./",Uwn=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},x1=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,a=new Set,o=new Set,l=0,A=C=>{o.add(C.output),r&&r.onResult&&r.onResult(C)};for(let C=0;C!n.has(C));if(r&&I.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(C=>C.replace(/\\/g,"")):t}return I};x1.match=x1;x1.matcher=(e,t)=>WK(e,t);x1.isMatch=(e,t,r)=>WK(t,r)(e);x1.any=x1.isMatch;x1.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,a=[],o=A=>{r.onResult&&r.onResult(A),a.push(A.output)},l=new Set(x1(e,t,{...r,onResult:o}));for(let A of a)l.has(A)||n.add(A);return[...n]};x1.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>x1.contains(e,n,r));if(typeof t=="string"){if(Qwn(e)||Qwn(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return x1.isMatch(e,t,{...r,contains:!0})};x1.matchKeys=(e,t,r)=>{if(!y7t.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=x1(Object.keys(e),t,r),a={};for(let o of n)a[o]=e[o];return a};x1.some=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(n.some(l=>o(l)))return!0}return!1};x1.every=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(!n.every(l=>o(l)))return!1}return!0};x1.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);return[].concat(t).every(n=>WK(n,r)(e))};x1.capture=(e,t,r)=>{let n=y7t.isWindows(r),o=WK.makeRe(String(e),{...r,capture:!0}).exec(n?y7t.toPosixSlashes(t):t);if(o)return o.slice(1).map(l=>l===void 0?"":l)};x1.makeRe=(...e)=>WK.makeRe(...e);x1.scan=(...e)=>WK.scan(...e);x1.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let a of Jwn(String(n),t))r.push(WK.parse(a,t));return r};x1.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Uwn(e)?[e]:Jwn(e,t)};x1.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return x1.braces(e,{...t,expand:!0})};x1.hasBraces=Uwn;Kwn.exports=x1});var zwn=H((WMl,jwn)=>{"use strict";jwn.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var q5=H((OMl,qwn)=>{"use strict";var bso=zwn();qwn.exports=e=>typeof e=="string"?e.replace(bso(),""):e});var E7t=H(b7t=>{"use strict";Object.defineProperty(b7t,Symbol.toStringTag,{value:"Module"});function Eso(e){return arguments.length===0?[]:Array.isArray(e)?e:[e]}b7t.castArray=Eso});var $wn=H(S7t=>{"use strict";Object.defineProperty(S7t,Symbol.toStringTag,{value:"Module"});function Sso(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Size must be an integer greater than zero.");let r=Math.ceil(e.length/t),n=Array(r);for(let a=0;a{"use strict";Object.defineProperty(v7t,Symbol.toStringTag,{value:"Module"});function vso(e){return Array.isArray(e)?e:Array.from(e)}v7t.toArray=vso});var eTn=H(B7t=>{"use strict";Object.defineProperty(B7t,Symbol.toStringTag,{value:"Module"});function Bso(e){return Number.isSafeInteger(e)&&e>=0}B7t.isLength=Bso});var Sf=H(w7t=>{"use strict";Object.defineProperty(w7t,Symbol.toStringTag,{value:"Module"});var wso=eTn();function Tso(e){return e!=null&&typeof e!="function"&&wso.isLength(e.length)}w7t.isArrayLike=Tso});var R7t=H(T7t=>{"use strict";Object.defineProperty(T7t,Symbol.toStringTag,{value:"Module"});var Rso=$wn(),Nso=SZ(),Dso=Sf();function kso(e,t=1){return t=Math.max(Math.floor(t),0),t===0||!Dso.isArrayLike(e)?[]:Rso.chunk(Nso.toArray(e),t)}T7t.chunk=kso});var tTn=H(N7t=>{"use strict";Object.defineProperty(N7t,Symbol.toStringTag,{value:"Module"});function xso(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(D7t,Symbol.toStringTag,{value:"Module"});var Gso=tTn(),Fso=Sf();function Zso(e){return Fso.isArrayLike(e)?Gso.compact(Array.from(e)):[]}D7t.compact=Zso});var m3e=H(x7t=>{"use strict";Object.defineProperty(x7t,Symbol.toStringTag,{value:"Module"});function Lso(e,t=1){let r=[],n=Math.floor(t),a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(G7t,Symbol.toStringTag,{value:"Module"});var Vso=m3e();function Pso(...e){return Vso.flatten(e)}G7t.concat=Pso});var bm=H(Z7t=>{"use strict";Object.defineProperty(Z7t,Symbol.toStringTag,{value:"Module"});function Wso(e){return e}Z7t.identity=Wso});var C3e=H(L7t=>{"use strict";Object.defineProperty(L7t,Symbol.toStringTag,{value:"Module"});function Oso(e){return e==="__proto__"}L7t.isUnsafeProperty=Oso});var VSe=H(V7t=>{"use strict";Object.defineProperty(V7t,Symbol.toStringTag,{value:"Module"});function Mso(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}V7t.isDeepKey=Mso});var Kq=H(P7t=>{"use strict";Object.defineProperty(P7t,Symbol.toStringTag,{value:"Module"});function Hso(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}P7t.toKey=Hso});var qy=H(W7t=>{"use strict";Object.defineProperty(W7t,Symbol.toStringTag,{value:"Module"});function rTn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(rTn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}W7t.toString=rTn});var $5=H(O7t=>{"use strict";Object.defineProperty(O7t,Symbol.toStringTag,{value:"Module"});var Yso=qy(),Qso=Kq();function Xso(e){if(Array.isArray(e))return e.map(Qso.toKey);if(typeof e=="symbol")return[e];e=Yso.toString(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",o="",l=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n{"use strict";Object.defineProperty(H7t,Symbol.toStringTag,{value:"Module"});var M7t=C3e(),Jso=VSe(),Uso=Kq(),Kso=$5();function nTn(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?Jso.isDeepKey(t)?nTn(e,Kso.toPath(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Uso.toKey(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return jso(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?r:n}}}function jso(e,t,r){if(t.length===0)return r;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Y7t,Symbol.toStringTag,{value:"Module"});var zso=eM();function qso(e){return function(t){return zso.get(t,e)}}Y7t.property=qso});var tM=H(Q7t=>{"use strict";Object.defineProperty(Q7t,Symbol.toStringTag,{value:"Module"});function $so(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Q7t.isObject=$so});var PSe=H(X7t=>{"use strict";Object.defineProperty(X7t,Symbol.toStringTag,{value:"Module"});function eoo(e){return e==null||typeof e!="object"&&typeof e!="function"}X7t.isPrimitive=eoo});var Sk=H(J7t=>{"use strict";Object.defineProperty(J7t,Symbol.toStringTag,{value:"Module"});function too(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}J7t.isEqualsSameValueZero=too});var Elt=H(blt=>{"use strict";Object.defineProperty(blt,Symbol.toStringTag,{value:"Module"});var roo=tM(),iTn=PSe(),sTn=Sk();function oTn(e,t,r){return typeof r!="function"?oTn(e,t,()=>{}):U7t(e,t,function n(a,o,l,A,f,I){let C=r(a,o,l,A,f,I);return C!==void 0?!!C:U7t(a,o,n,I)},new Map)}function U7t(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return noo(e,t,r,n);case"function":return Object.keys(t).length>0?U7t(e,{...t},r,n):sTn.isEqualsSameValueZero(e,t);default:return roo.isObject(e)?typeof t=="string"?t==="":!0:sTn.isEqualsSameValueZero(e,t)}}function noo(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return aTn(e,t,r,n);if(t instanceof Map)return ioo(e,t,r,n);if(t instanceof Set)return cTn(e,t,r,n);let a=Object.keys(t);if(e==null||iTn.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o{"use strict";Object.defineProperty(K7t,Symbol.toStringTag,{value:"Module"});var soo=Elt();function ooo(e,t){return soo.isMatchWith(e,t,()=>{})}K7t.isMatch=ooo});var y3e=H(j7t=>{"use strict";Object.defineProperty(j7t,Symbol.toStringTag,{value:"Module"});function aoo(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}j7t.getSymbols=aoo});var Zfe=H(z7t=>{"use strict";Object.defineProperty(z7t,Symbol.toStringTag,{value:"Module"});function coo(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}z7t.getTag=coo});var b3e=H($y=>{"use strict";Object.defineProperty($y,Symbol.toStringTag,{value:"Module"});var loo="[object RegExp]",uoo="[object String]",goo="[object Number]",Aoo="[object Boolean]",doo="[object Arguments]",poo="[object Symbol]",foo="[object Date]",Ioo="[object Map]",hoo="[object Set]",moo="[object Array]",Coo="[object Function]",_oo="[object ArrayBuffer]",yoo="[object Object]",boo="[object Error]",Eoo="[object DataView]",Soo="[object Uint8Array]",voo="[object Uint8ClampedArray]",Boo="[object Uint16Array]",woo="[object Uint32Array]",Too="[object BigUint64Array]",Roo="[object Int8Array]",Noo="[object Int16Array]",Doo="[object Int32Array]",koo="[object BigInt64Array]",xoo="[object Float32Array]",Goo="[object Float64Array]";$y.argumentsTag=doo;$y.arrayBufferTag=_oo;$y.arrayTag=moo;$y.bigInt64ArrayTag=koo;$y.bigUint64ArrayTag=Too;$y.booleanTag=Aoo;$y.dataViewTag=Eoo;$y.dateTag=foo;$y.errorTag=boo;$y.float32ArrayTag=xoo;$y.float64ArrayTag=Goo;$y.functionTag=Coo;$y.int16ArrayTag=Noo;$y.int32ArrayTag=Doo;$y.int8ArrayTag=Roo;$y.mapTag=Ioo;$y.numberTag=goo;$y.objectTag=yoo;$y.regexpTag=loo;$y.setTag=hoo;$y.stringTag=uoo;$y.symbolTag=poo;$y.uint16ArrayTag=Boo;$y.uint32ArrayTag=woo;$y.uint8ArrayTag=Soo;$y.uint8ClampedArrayTag=voo});var $7t=H(q7t=>{"use strict";Object.defineProperty(q7t,Symbol.toStringTag,{value:"Module"});var Foo=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||function(){return this}()||Function("return this")();q7t.globalThis=Foo});var noe=H(ezt=>{"use strict";Object.defineProperty(ezt,Symbol.toStringTag,{value:"Module"});var lTn=$7t();function Zoo(e){return typeof lTn.globalThis.Buffer<"u"&&lTn.globalThis.Buffer.isBuffer(e)}ezt.isBuffer=Zoo});var Slt=H(tzt=>{"use strict";Object.defineProperty(tzt,Symbol.toStringTag,{value:"Module"});function Loo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}tzt.isTypedArray=Loo});var rzt=H(E3e=>{"use strict";Object.defineProperty(E3e,Symbol.toStringTag,{value:"Module"});var Voo=y3e(),Poo=Zfe(),Zv=b3e(),Woo=noe(),Ooo=PSe(),Moo=Slt();function Hoo(e,t){return Lfe(e,void 0,e,new Map,t)}function Lfe(e,t,r,n=new Map,a=void 0){let o=a?.(e,t,r,n);if(o!==void 0)return o;if(Ooo.isPrimitive(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let l=new Array(e.length);n.set(e,l);for(let A=0;A{"use strict";Object.defineProperty(nzt,Symbol.toStringTag,{value:"Module"});var Qoo=rzt();function Xoo(e){return Qoo.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}nzt.cloneDeep=Xoo});var OK=H(szt=>{"use strict";Object.defineProperty(szt,Symbol.toStringTag,{value:"Module"});var Joo=_3e(),Uoo=izt();function Koo(e){return e=Uoo.cloneDeep(e),t=>Joo.isMatch(t,e)}szt.matches=Koo});var v3e=H(ozt=>{"use strict";Object.defineProperty(ozt,Symbol.toStringTag,{value:"Module"});var vlt=rzt(),joo=Zfe(),S3e=b3e();function zoo(e,t){return vlt.cloneDeepWith(e,(r,n,a,o)=>{let l=t?.(r,n,a,o);if(l!==void 0)return l;if(typeof e=="object"){if(joo.getTag(e)===S3e.objectTag&&typeof e.constructor!="function"){let A={};return o.set(e,A),vlt.copyProperties(A,e,a,o),A}switch(Object.prototype.toString.call(e)){case S3e.numberTag:case S3e.stringTag:case S3e.booleanTag:{let A=new e.constructor(e?.valueOf());return vlt.copyProperties(A,e),A}case S3e.argumentsTag:{let A={};return vlt.copyProperties(A,e),A.length=e.length,A[Symbol.iterator]=e[Symbol.iterator],A}default:return}}})}ozt.cloneDeepWith=zoo});var WSe=H(azt=>{"use strict";Object.defineProperty(azt,Symbol.toStringTag,{value:"Module"});var qoo=v3e();function $oo(e){return qoo.cloneDeepWith(e)}azt.cloneDeep=$oo});var OSe=H(czt=>{"use strict";Object.defineProperty(czt,Symbol.toStringTag,{value:"Module"});var eao=/^(?:0|[1-9]\d*)$/;function tao(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(lzt,Symbol.toStringTag,{value:"Module"});var rao=Zfe();function nao(e){return e!==null&&typeof e=="object"&&rao.getTag(e)==="[object Arguments]"}lzt.isArguments=nao});var B3e=H(uzt=>{"use strict";Object.defineProperty(uzt,Symbol.toStringTag,{value:"Module"});var iao=VSe(),sao=OSe(),oao=Vfe(),aao=$5();function cao(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&iao.isDeepKey(t)&&e?.[t]==null?r=aao.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(gzt,Symbol.toStringTag,{value:"Module"});var lao=_3e(),uao=Kq(),gao=WSe(),Aao=eM(),dao=B3e();function pao(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=uao.toKey(e);break}}return t=gao.cloneDeep(t),function(r){let n=Aao.get(r,e);return n===void 0?dao.has(r,e):t===void 0?n===void 0:lao.isMatch(n,t)}}gzt.matchesProperty=pao});var im=H(Azt=>{"use strict";Object.defineProperty(Azt,Symbol.toStringTag,{value:"Module"});var fao=bm(),Iao=nX(),hao=OK(),mao=MK();function Cao(e){if(e==null)return fao.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?mao.matchesProperty(e[0],e[1]):hao.matches(e);case"string":case"symbol":case"number":return Iao.property(e)}}Azt.iteratee=Cao});var pzt=H(dzt=>{"use strict";Object.defineProperty(dzt,Symbol.toStringTag,{value:"Module"});var _ao=Sf(),yao=im();function bao(e,t){if(e==null)return{};let r=_ao.isArrayLike(e)?Array.from(e):Object.values(e),n=yao.iteratee(t??void 0),a=Object.create(null);for(let o=0;o{"use strict";Object.defineProperty(fzt,Symbol.toStringTag,{value:"Module"});function Eao(e,t){let r=new Set(t);return e.filter(n=>!r.has(n))}fzt.difference=Eao});var ioe=H(Izt=>{"use strict";Object.defineProperty(Izt,Symbol.toStringTag,{value:"Module"});function Sao(e){return typeof e=="object"&&e!==null}Izt.isObjectLike=Sao});var b2=H(hzt=>{"use strict";Object.defineProperty(hzt,Symbol.toStringTag,{value:"Module"});var vao=Sf(),Bao=ioe();function wao(e){return Bao.isObjectLike(e)&&vao.isArrayLike(e)}hzt.isArrayLikeObject=wao});var Czt=H(mzt=>{"use strict";Object.defineProperty(mzt,Symbol.toStringTag,{value:"Module"});var Tao=w3e(),Rao=SZ(),uTn=b2();function Nao(e,...t){if(!uTn.isArrayLikeObject(e))return[];let r=Rao.toArray(e),n=[];for(let a=0;a{"use strict";Object.defineProperty(_zt,Symbol.toStringTag,{value:"Module"});function Dao(e){return e[e.length-1]}_zt.last=Dao});var zq=H(yzt=>{"use strict";Object.defineProperty(yzt,Symbol.toStringTag,{value:"Module"});var kao=T3e(),xao=SZ(),Gao=Sf();function Fao(e){if(Gao.isArrayLike(e))return kao.last(xao.toArray(e))}yzt.last=Fao});var gTn=H(bzt=>{"use strict";Object.defineProperty(bzt,Symbol.toStringTag,{value:"Module"});function Zao(e,t,r){let n=new Set(t.map(a=>r(a)));return e.filter(a=>!n.has(r(a)))}bzt.differenceBy=Zao});var R3e=H(Ezt=>{"use strict";Object.defineProperty(Ezt,Symbol.toStringTag,{value:"Module"});var Lao=b2();function Vao(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(Szt,Symbol.toStringTag,{value:"Module"});var Pao=zq(),Wao=w3e(),Oao=gTn(),Mao=R3e(),ATn=b2(),Hao=im();function Yao(e,...t){if(!ATn.isArrayLikeObject(e))return[];let r=Pao.last(t),n=Mao.flattenArrayLike(t);return ATn.isArrayLikeObject(r)?Wao.difference(Array.from(e),n):Oao.differenceBy(Array.from(e),n,Hao.iteratee(r))}Szt.differenceBy=Yao});var dTn=H(vzt=>{"use strict";Object.defineProperty(vzt,Symbol.toStringTag,{value:"Module"});function Qao(e,t,r){return e.filter(n=>t.every(a=>!r(n,a)))}vzt.differenceWith=Qao});var wlt=H(Bzt=>{"use strict";Object.defineProperty(Bzt,Symbol.toStringTag,{value:"Module"});var Xao=zq(),Jao=w3e(),Uao=dTn(),Kao=R3e(),jao=b2();function zao(e,...t){if(!jao.isArrayLikeObject(e))return[];let r=Xao.last(t),n=Kao.flattenArrayLike(t);return typeof r=="function"?Uao.differenceWith(Array.from(e),n,r):Jao.difference(Array.from(e),n)}Bzt.differenceWith=zao});var pTn=H(wzt=>{"use strict";Object.defineProperty(wzt,Symbol.toStringTag,{value:"Module"});function qao(e,t){return t=Math.max(t,0),e.slice(t)}wzt.drop=qao});var soe=H(Tzt=>{"use strict";Object.defineProperty(Tzt,Symbol.toStringTag,{value:"Module"});function $ao(e){return typeof e=="symbol"||e instanceof Symbol}Tzt.isSymbol=$ao});var Q9=H(Rzt=>{"use strict";Object.defineProperty(Rzt,Symbol.toStringTag,{value:"Module"});var eco=soe();function tco(e){return eco.isSymbol(e)?NaN:Number(e)}Rzt.toNumber=tco});var MSe=H(Nzt=>{"use strict";Object.defineProperty(Nzt,Symbol.toStringTag,{value:"Module"});var rco=Q9();function nco(e){return e?(e=rco.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}Nzt.toFinite=nco});var $w=H(Dzt=>{"use strict";Object.defineProperty(Dzt,Symbol.toStringTag,{value:"Module"});var ico=MSe();function sco(e){let t=ico.toFinite(e),r=t%1;return r?t-r:t}Dzt.toInteger=sco});var xzt=H(kzt=>{"use strict";Object.defineProperty(kzt,Symbol.toStringTag,{value:"Module"});var oco=pTn(),aco=SZ(),cco=Sf(),lco=$w();function uco(e,t=1,r){return cco.isArrayLike(e)?(t=r?1:lco.toInteger(t),oco.drop(aco.toArray(e),t)):[]}kzt.drop=uco});var fTn=H(Gzt=>{"use strict";Object.defineProperty(Gzt,Symbol.toStringTag,{value:"Module"});function gco(e,t){return t=Math.min(-t,0),t===0?e.slice():e.slice(0,t)}Gzt.dropRight=gco});var Zzt=H(Fzt=>{"use strict";Object.defineProperty(Fzt,Symbol.toStringTag,{value:"Module"});var Aco=fTn(),dco=SZ(),pco=Sf(),fco=$w();function Ico(e,t=1,r){return pco.isArrayLike(e)?(t=r?1:fco.toInteger(t),Aco.dropRight(dco.toArray(e),t)):[]}Fzt.dropRight=Ico});var ITn=H(Lzt=>{"use strict";Object.defineProperty(Lzt,Symbol.toStringTag,{value:"Module"});function hco(e,t){for(let r=e.length-1;r>=0;r--)if(!t(e[r],r,e))return e.slice(0,r+1);return[]}Lzt.dropRightWhile=hco});var Pzt=H(Vzt=>{"use strict";Object.defineProperty(Vzt,Symbol.toStringTag,{value:"Module"});var Tlt=ITn(),mco=bm(),Cco=nX(),_co=Sf(),yco=OK(),bco=MK();function Eco(e,t=mco.identity){return _co.isArrayLike(e)?Sco(Array.from(e),t):[]}function Sco(e,t){switch(typeof t){case"function":return Tlt.dropRightWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Tlt.dropRightWhile(e,bco.matchesProperty(r,n))}else return Tlt.dropRightWhile(e,yco.matches(t));case"symbol":case"number":case"string":return Tlt.dropRightWhile(e,Cco.property(t))}}Vzt.dropRightWhile=Eco});var hTn=H(Wzt=>{"use strict";Object.defineProperty(Wzt,Symbol.toStringTag,{value:"Module"});function vco(e,t){let r=e.findIndex((n,a,o)=>!t(n,a,o));return r===-1?[]:e.slice(r)}Wzt.dropWhile=vco});var Mzt=H(Ozt=>{"use strict";Object.defineProperty(Ozt,Symbol.toStringTag,{value:"Module"});var Rlt=hTn(),Bco=bm(),wco=SZ(),Tco=nX(),Rco=Sf(),Nco=OK(),Dco=MK();function kco(e,t=Bco.identity){return Rco.isArrayLike(e)?xco(wco.toArray(e),t):[]}function xco(e,t){switch(typeof t){case"function":return Rlt.dropWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Rlt.dropWhile(e,Dco.matchesProperty(r,n))}else return Rlt.dropWhile(e,Nco.matches(t));case"number":case"symbol":case"string":return Rlt.dropWhile(e,Tco.property(t))}}Ozt.dropWhile=kco});var ooe=H(Hzt=>{"use strict";Object.defineProperty(Hzt,Symbol.toStringTag,{value:"Module"});function Gco(e,t,r=1){if(t==null&&(t=e,e=0),!Number.isInteger(r)||r===0)throw new Error("The step value must be a non-zero integer.");let n=Math.max(Math.ceil((t-e)/r),0),a=new Array(n);for(let o=0;o{"use strict";Object.defineProperty(Yzt,Symbol.toStringTag,{value:"Module"});var Fco=bm(),Zco=ooe(),Lco=Sf();function Vco(e,t=Fco.identity){if(!e)return e;let r=Lco.isArrayLike(e)||Array.isArray(e)?Zco.range(0,e.length):Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(Qzt,Symbol.toStringTag,{value:"Module"});var Pco=bm(),Wco=ooe(),Oco=Sf();function Mco(e,t=Pco.identity){if(!e)return e;let r=Oco.isArrayLike(e)?Wco.range(0,e.length):Object.keys(e);for(let n=r.length-1;n>=0;n--){let a=r[n],o=e[a];if(t(o,a,e)===!1)break}return e}Qzt.forEachRight=Mco});var qq=H(Jzt=>{"use strict";Object.defineProperty(Jzt,Symbol.toStringTag,{value:"Module"});var Hco=OSe(),Yco=Sf(),Qco=tM(),Xco=Sk();function Jco(e,t,r){return Qco.isObject(r)&&(typeof t=="number"&&Yco.isArrayLike(r)&&Hco.isIndex(t)&&t{"use strict";Object.defineProperty(Uzt,Symbol.toStringTag,{value:"Module"});var Uco=bm(),Kco=qq(),jco=nX(),zco=Sf(),qco=OK(),$co=MK();function elo(e,t,r){if(!e)return!0;r&&Kco.isIterateeCall(e,t,r)&&(t=void 0),t||(t=Uco.identity);let n;switch(typeof t){case"function":{n=t;break}case"object":{if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];n=$co.matchesProperty(a,o)}else n=qco.matches(t);break}case"symbol":case"number":case"string":n=jco.property(t)}if(!zco.isArrayLike(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(jzt,Symbol.toStringTag,{value:"Module"});function tlo(e,t,r=0,n=e.length){let a=e.length,o=Math.max(r>=0?r:a+r,0),l=Math.min(n>=0?n:a+n,a);for(let A=o;A{"use strict";Object.defineProperty(zzt,Symbol.toStringTag,{value:"Module"});function rlo(e){return typeof e=="string"||e instanceof String}zzt.isString=rlo});var $zt=H(qzt=>{"use strict";Object.defineProperty(qzt,Symbol.toStringTag,{value:"Module"});var nlo=mTn(),ilo=Sf(),slo=HSe();function olo(e,t,r=0,n=e?e.length:0){return ilo.isArrayLike(e)?slo.isString(e)?e:(r=Math.floor(r),n=Math.floor(n),r||(r=0),n||(n=0),nlo.fill(e,t,r,n)):[]}qzt.fill=olo});var Dlt=H(eqt=>{"use strict";Object.defineProperty(eqt,Symbol.toStringTag,{value:"Module"});var alo=bm(),clo=Sf(),llo=im();function ulo(e,t=alo.identity){if(!e)return[];if(t=llo.iteratee(t),!Array.isArray(e)){let a=[],o=Object.keys(e),l=clo.isArrayLike(e)?e.length:o.length;for(let A=0;A{"use strict";Object.defineProperty(tqt,Symbol.toStringTag,{value:"Module"});var glo=bm(),Alo=im();function dlo(e,t=glo.identity,r=0){if(!e)return;r<0&&(r=Math.max(e.length+r,0));let n=Alo.iteratee(t);if(!Array.isArray(e)){let a=Object.keys(e);for(let o=r;o{"use strict";Object.defineProperty(nqt,Symbol.toStringTag,{value:"Module"});function plo(e){return e}nqt.identity=plo});var sqt=H(iqt=>{"use strict";Object.defineProperty(iqt,Symbol.toStringTag,{value:"Module"});var flo=HK(),Ilo=nX(),hlo=OK(),mlo=MK();function Clo(e,t=flo.identity,r=0){if(!e)return-1;r<0&&(r=Math.max(e.length+r,0));let n=Array.from(e).slice(r),a=-1;switch(typeof t){case"function":{a=n.findIndex(t);break}case"object":{if(Array.isArray(t)&&t.length===2){let o=t[0],l=t[1];a=n.findIndex(mlo.matchesProperty(o,l))}else a=n.findIndex(hlo.matches(t));break}case"number":case"symbol":case"string":a=n.findIndex(Ilo.property(t))}return a===-1?-1:a+r}iqt.findIndex=Clo});var aqt=H(oqt=>{"use strict";Object.defineProperty(oqt,Symbol.toStringTag,{value:"Module"});var _lo=bm(),ylo=im(),blo=$w();function Elo(e,t=_lo.identity,r){if(!e)return;let n=Array.isArray(e)?e.length:Object.keys(e).length;r=blo.toInteger(r??n-1),r<0?r=Math.max(n+r,0):r=Math.min(r,n-1);let a=ylo.iteratee(t);if(!Array.isArray(e)){let o=Object.keys(e);for(let l=r;l>=0;l--){let A=o[l],f=e[A];if(a(f,A,e))return f}return}return e.slice(0,r+1).findLast(a)}oqt.findLast=Elo});var lqt=H(cqt=>{"use strict";Object.defineProperty(cqt,Symbol.toStringTag,{value:"Module"});var Slo=bm(),vlo=SZ(),Blo=nX(),wlo=OK(),Tlo=MK();function Rlo(e,t=Slo.identity,r=e?e.length-1:0){if(!e)return-1;r<0?r=Math.max(e.length+r,0):r=Math.min(r,e.length-1);let n=vlo.toArray(e).slice(0,r+1);switch(typeof t){case"function":return n.findLastIndex(t);case"object":if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];return n.findLastIndex(Tlo.matchesProperty(a,o))}else return n.findLastIndex(wlo.matches(t));case"number":case"symbol":case"string":return n.findLastIndex(Blo.property(t))}}cqt.findLastIndex=Rlo});var CTn=H(uqt=>{"use strict";Object.defineProperty(uqt,Symbol.toStringTag,{value:"Module"});function Nlo(e){return e[0]}uqt.head=Nlo});var Aqt=H(gqt=>{"use strict";Object.defineProperty(gqt,Symbol.toStringTag,{value:"Module"});var Dlo=CTn(),klo=SZ(),xlo=Sf();function Glo(e){if(xlo.isArrayLike(e))return Dlo.head(klo.toArray(e))}gqt.head=Glo});var Pfe=H(dqt=>{"use strict";Object.defineProperty(dqt,Symbol.toStringTag,{value:"Module"});var Flo=Sf();function Zlo(e,t=1){let r=[],n=Math.floor(t);if(!Flo.isArrayLike(e))return r;let a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(pqt,Symbol.toStringTag,{value:"Module"});var Llo=Pfe();function Vlo(e,t=1){return Llo.flatten(e,t)}pqt.flattenDepth=Vlo});var N3e=H(fqt=>{"use strict";Object.defineProperty(fqt,Symbol.toStringTag,{value:"Module"});var Plo=bm(),Wlo=ooe(),Olo=Sf(),Mlo=im();function Hlo(e,t){if(!e)return[];let r=Olo.isArrayLike(e)||Array.isArray(e)?Wlo.range(0,e.length):Object.keys(e),n=Mlo.iteratee(t??Plo.identity),a=new Array(r.length);for(let o=0;o{"use strict";Object.defineProperty(Iqt,Symbol.toStringTag,{value:"Module"});function Ylo(e){return e==null}Iqt.isNil=Ylo});var mqt=H(hqt=>{"use strict";Object.defineProperty(hqt,Symbol.toStringTag,{value:"Module"});var Qlo=YSe(),_Tn=N3e(),yTn=aoe();function Xlo(e,t){if(yTn.isNil(e))return[];let r=yTn.isNil(t)?_Tn.map(e):_Tn.map(e,t);return Qlo.flattenDepth(r,1)}hqt.flatMap=Xlo});var D3e=H(Cqt=>{"use strict";Object.defineProperty(Cqt,Symbol.toStringTag,{value:"Module"});var Jlo=Pfe(),Ulo=N3e(),Klo=bm(),jlo=im();function zlo(e,t=Klo.identity,r=1){if(e==null)return[];let n=jlo.iteratee(t),a=Ulo.map(e,n);return Jlo.flatten(a,r)}Cqt.flatMapDepth=zlo});var yqt=H(_qt=>{"use strict";Object.defineProperty(_qt,Symbol.toStringTag,{value:"Module"});var qlo=D3e();function $lo(e,t){return qlo.flatMapDepth(e,t,1/0)}_qt.flatMapDeep=$lo});var Eqt=H(bqt=>{"use strict";Object.defineProperty(bqt,Symbol.toStringTag,{value:"Module"});var euo=YSe();function tuo(e){return euo.flattenDepth(e,1/0)}bqt.flattenDeep=tuo});var bTn=H(Sqt=>{"use strict";Object.defineProperty(Sqt,Symbol.toStringTag,{value:"Module"});function ruo(e,t){let r={};for(let n=0;n{"use strict";Object.defineProperty(vqt,Symbol.toStringTag,{value:"Module"});var nuo=bTn(),iuo=bm(),suo=Sf(),ouo=im();function auo(e,t){if(e==null)return{};let r=suo.isArrayLike(e)?Array.from(e):Object.values(e),n=ouo.iteratee(t??iuo.identity);return nuo.groupBy(r,n)}vqt.groupBy=auo});var Tqt=H(wqt=>{"use strict";Object.defineProperty(wqt,Symbol.toStringTag,{value:"Module"});var cuo=HSe(),luo=Sk(),uuo=$w();function guo(e,t,r,n){if(e==null)return!1;if(n||!r?r=0:r=uuo.toInteger(r),cuo.isString(e))return r>e.length||t instanceof RegExp?!1:(r<0&&(r=Math.max(0,e.length+r)),e.includes(t,r));if(Array.isArray(e))return e.includes(t,r);let a=Object.keys(e);r<0&&(r=Math.max(0,a.length+r));for(let o=r;o{"use strict";Object.defineProperty(Rqt,Symbol.toStringTag,{value:"Module"});var Auo=Sf();function duo(e,t,r){if(!Auo.isArrayLike(e))return-1;if(Number.isNaN(t)){r=r??0,r<0&&(r=Math.max(0,e.length+r));for(let n=r;n{"use strict";Object.defineProperty(Dqt,Symbol.toStringTag,{value:"Module"});function puo(e){return e.slice(0,-1)}Dqt.initial=puo});var xqt=H(kqt=>{"use strict";Object.defineProperty(kqt,Symbol.toStringTag,{value:"Module"});var fuo=ETn(),Iuo=Sf();function huo(e){return Iuo.isArrayLike(e)?fuo.initial(Array.from(e)):[]}kqt.initial=huo});var STn=H(Gqt=>{"use strict";Object.defineProperty(Gqt,Symbol.toStringTag,{value:"Module"});function muo(e,t){let r=new Set(t);return e.filter(n=>r.has(n))}Gqt.intersection=muo});var Wfe=H(Fqt=>{"use strict";Object.defineProperty(Fqt,Symbol.toStringTag,{value:"Module"});function Cuo(e){return[...new Set(e)]}Fqt.uniq=Cuo});var Lqt=H(Zqt=>{"use strict";Object.defineProperty(Zqt,Symbol.toStringTag,{value:"Module"});var _uo=STn(),yuo=Wfe(),vTn=b2();function buo(...e){if(e.length===0)return[];if(!vTn.isArrayLikeObject(e[0]))return[];let t=yuo.uniq(Array.from(e[0]));for(let r=1;r{"use strict";Object.defineProperty(Vqt,Symbol.toStringTag,{value:"Module"});function Euo(e,t,r){let n=[],a=new Set(t.map(r));for(let o=0;o{"use strict";Object.defineProperty(Wqt,Symbol.toStringTag,{value:"Module"});var Pqt=BTn(),Suo=T3e(),vuo=Wfe(),Buo=bm(),wuo=nX(),klt=b2();function Tuo(e,...t){if(!klt.isArrayLikeObject(e))return[];let r=Suo.last(t);if(r===void 0)return Array.from(e);let n=vuo.uniq(Array.from(e)),a=klt.isArrayLikeObject(r)?t.length:t.length-1;for(let o=0;or(A)):typeof r=="string"&&(n=Pqt.intersectionBy(n,Array.from(l),wuo.property(r)))}return n}Wqt.intersectionBy=Tuo});var wTn=H(Oqt=>{"use strict";Object.defineProperty(Oqt,Symbol.toStringTag,{value:"Module"});function Ruo(e,t,r){return e.filter(n=>t.some(a=>r(n,a)))}Oqt.intersectionWith=Ruo});var k3e=H(Mqt=>{"use strict";Object.defineProperty(Mqt,Symbol.toStringTag,{value:"Module"});var Nuo=Wfe(),Duo=Sf();function kuo(e){return Duo.isArrayLike(e)?Nuo.uniq(Array.from(e)):[]}Mqt.uniq=kuo});var Glt=H(Hqt=>{"use strict";Object.defineProperty(Hqt,Symbol.toStringTag,{value:"Module"});var xuo=zq(),Guo=wTn(),Fuo=k3e(),Zuo=Sk();function Luo(e,...t){if(e==null)return[];let r=xuo.last(t),n=Zuo.isEqualsSameValueZero,a=Fuo.uniq;typeof r=="function"&&(n=r,a=Vuo,t.pop());let o=a(Array.from(e));for(let l=0;l{"use strict";Object.defineProperty(Yqt,Symbol.toStringTag,{value:"Module"});function Puo(e){return typeof e=="function"}Yqt.isFunction=Puo});var Jqt=H(Xqt=>{"use strict";Object.defineProperty(Xqt,Symbol.toStringTag,{value:"Module"});$7t();var Wuo=coe(),Ouo=aoe(),Qqt=eM(),Muo=Sf();function Huo(e,t,...r){if(Ouo.isNil(e))return[];let n=Muo.isArrayLike(e)?Array.from(e):Object.values(e),a=[];for(let o=0;o0&&(f=Qqt.get(l,I))}else if(typeof t=="string"&&t.includes(".")){let C=t.split(".").slice(0,-1).join(".");f=Qqt.get(l,C)}a.push(A?.apply(f,r))}return a}Xqt.invokeMap=Huo});var Kqt=H(Uqt=>{"use strict";Object.defineProperty(Uqt,Symbol.toStringTag,{value:"Module"});var Yuo=Sf();function Quo(e,t){return Yuo.isArrayLike(e)?Array.from(e).join(t):""}Uqt.join=Quo});var Flt=H(jqt=>{"use strict";Object.defineProperty(jqt,Symbol.toStringTag,{value:"Module"});var Xuo=bm(),Juo=ooe(),Uuo=Sf();function Kuo(e,t=Xuo.identity,r){if(!e)return r;let n,a=0;Uuo.isArrayLike(e)?(n=Juo.range(0,e.length),r==null&&e.length>0&&(r=e[0],a+=1)):(n=Object.keys(e),r==null&&(r=e[n[0]],a+=1));for(let o=a;o{"use strict";Object.defineProperty(zqt,Symbol.toStringTag,{value:"Module"});var juo=Flt(),zuo=bm(),quo=Sf(),$uo=ioe(),ego=im();function tgo(e,t){if(!quo.isArrayLike(e)&&!$uo.isObjectLike(e))return{};let r=ego.iteratee(t??zuo.identity);return juo.reduce(e,(n,a)=>{let o=r(a);return n[o]=a,n},{})}zqt.keyBy=tgo});var e$t=H($qt=>{"use strict";Object.defineProperty($qt,Symbol.toStringTag,{value:"Module"});var rgo=Sf();function ngo(e,t,r){if(!rgo.isArrayLike(e)||e.length===0)return-1;let n=e.length,a=r??n-1;if(r!=null&&(a=a<0?Math.max(n+a,0):Math.min(a,n-1)),Number.isNaN(t)){for(let o=a;o>=0;o--)if(Number.isNaN(e[o]))return o}return Array.from(e).lastIndexOf(t,a)}$qt.lastIndexOf=ngo});var r$t=H(t$t=>{"use strict";Object.defineProperty(t$t,Symbol.toStringTag,{value:"Module"});var igo=b2(),sgo=$w();function ogo(e,t=0){if(!(!igo.isArrayLikeObject(e)||e.length===0))return t=sgo.toInteger(t),t<0&&(t+=e.length),e[t]}t$t.nth=ogo});var RTn=H(n$t=>{"use strict";Object.defineProperty(n$t,Symbol.toStringTag,{value:"Module"});function TTn(e){return typeof e=="symbol"?1:e===null?2:e===void 0?3:e!==e?4:0}var ago=(e,t,r)=>{if(e!==t){let n=TTn(e),a=TTn(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};n$t.compareValues=ago});var x3e=H(i$t=>{"use strict";Object.defineProperty(i$t,Symbol.toStringTag,{value:"Module"});var cgo=soe(),lgo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ugo=/^\w*$/;function ggo(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||cgo.isSymbol(e)?!0:typeof e=="string"&&(ugo.test(e)||!lgo.test(e))||t!=null&&Object.hasOwn(t,e)}i$t.isKey=ggo});var Zlt=H(s$t=>{"use strict";Object.defineProperty(s$t,Symbol.toStringTag,{value:"Module"});var Ago=RTn(),dgo=x3e(),pgo=$5();function fgo(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(f=>String(f));let a=(f,I)=>{let C=f;for(let b=0;bI==null||f==null?I:typeof f=="object"&&"key"in f?Object.hasOwn(I,f.key)?I[f.key]:a(I,f.path):typeof f=="function"?f(I):Array.isArray(f)?a(I,f):typeof I=="object"?I[f]:I,l=t.map(f=>(Array.isArray(f)&&f.length===1&&(f=f[0]),f==null||typeof f=="function"||Array.isArray(f)||dgo.isKey(f)?f:{key:f,path:pgo.toPath(f)}));return e.map(f=>({original:f,criteria:l.map(I=>o(I,f))})).slice().sort((f,I)=>{for(let C=0;Cf.original)}s$t.orderBy=fgo});var a$t=H(o$t=>{"use strict";Object.defineProperty(o$t,Symbol.toStringTag,{value:"Module"});var Igo=bm(),hgo=Sf(),mgo=im();function Cgo(e,t=Igo.identity){if(!e)return[[],[]];let r=hgo.isArrayLike(e)?e:Object.values(e);t=mgo.iteratee(t);let n=[],a=[];for(let o=0;o{"use strict";Object.defineProperty(c$t,Symbol.toStringTag,{value:"Module"});function _go(e,t){let r=new Set(t),n=0;for(let a=0;a{"use strict";Object.defineProperty(u$t,Symbol.toStringTag,{value:"Module"});var ygo=l$t();function bgo(e,...t){return ygo.pull(e,t)}u$t.pull=bgo});var d$t=H(A$t=>{"use strict";Object.defineProperty(A$t,Symbol.toStringTag,{value:"Module"});var Ego=l$t();function Sgo(e,t=[]){return Ego.pull(e,Array.from(t))}A$t.pullAll=Sgo});var f$t=H(p$t=>{"use strict";Object.defineProperty(p$t,Symbol.toStringTag,{value:"Module"});var vgo=im();function Bgo(e,t,r){let n=vgo.iteratee(r),a=new Set(Array.from(t).map(l=>n(l))),o=0;for(let l=0;l{"use strict";function wgo(e,t){let r=e.length;t==null&&(t=Array(r));for(let n=0;n{"use strict";Object.defineProperty(I$t,Symbol.toStringTag,{value:"Module"});var Tgo=DTn(),Rgo=Sk();function Ngo(e,t,r){if(e?.length==null||t?.length==null)return e;e===t&&(t=Tgo(t));let n=0;r==null&&(r=(l,A)=>Rgo.isEqualsSameValueZero(l,A));let a=Array.isArray(t)?t:Array.from(t),o=a.includes(void 0);for(let l=0;lr(e[l],f))||(e[n++]=e[l]);continue}o||delete e[n++]}return e.length=n,e}I$t.pullAllWith=Ngo});var Llt=H(m$t=>{"use strict";Object.defineProperty(m$t,Symbol.toStringTag,{value:"Module"});var Dgo=eM(),kgo=Sf(),xgo=HSe();function Ggo(e,...t){if(t.length===0)return[];let r=[];for(let a=0;a{"use strict";Object.defineProperty(_$t,Symbol.toStringTag,{value:"Module"});var Fgo=eM(),C$t=C3e(),Zgo=VSe(),Lgo=Kq(),Vgo=$5();function Pgo(e,t){if(e==null)return!0;switch(typeof t){case"symbol":case"number":case"object":{if(Array.isArray(t))return kTn(e,t);if(typeof t=="number"?t=Lgo.toKey(t):typeof t=="object"&&(Object.is(t?.valueOf(),-0)?t="-0":t=String(t)),C$t.isUnsafeProperty(t))return!1;if(e?.[t]===void 0)return!0;try{return delete e[t],!0}catch{return!1}}case"string":{if(e?.[t]===void 0&&Zgo.isDeepKey(t))return kTn(e,Vgo.toPath(t));if(C$t.isUnsafeProperty(t))return!1;try{return delete e[t],!0}catch{return!1}}}}function kTn(e,t){let r=t.length===1?e:Fgo.get(e,t.slice(0,-1)),n=t[t.length-1];if(r?.[n]===void 0)return!0;if(C$t.isUnsafeProperty(n))return!1;try{return delete r[n],!0}catch{return!1}}_$t.unset=Pgo});var $q=H(y$t=>{"use strict";Object.defineProperty(y$t,Symbol.toStringTag,{value:"Module"});function Wgo(e){return Array.isArray(e)}y$t.isArray=Wgo});var E$t=H(b$t=>{"use strict";Object.defineProperty(b$t,Symbol.toStringTag,{value:"Module"});var Ogo=YSe(),xTn=OSe(),Mgo=x3e(),Hgo=Kq(),Ygo=Llt(),Qgo=G3e(),Xgo=$q(),Jgo=$5();function Ugo(e,...t){let r=Ogo.flattenDepth(t,1);if(!e)return Array(r.length);let n=Ygo.at(e,r),a=r.map(o=>xTn.isIndex(o,e.length)?Number(o):o).sort((o,l)=>l-o);for(let o of new Set(a)){if(xTn.isIndex(o,e.length)){Array.prototype.splice.call(e,o,1);continue}if(Mgo.isKey(o,e)){delete e[Hgo.toKey(o)];continue}let l=Xgo.isArray(o)?o:Jgo.toPath(o);Qgo.unset(e,l)}return n}b$t.pullAt=Ugo});var v$t=H(S$t=>{"use strict";Object.defineProperty(S$t,Symbol.toStringTag,{value:"Module"});var Kgo=bm(),jgo=ooe(),zgo=Sf();function qgo(e,t=Kgo.identity,r){if(!e)return r;let n,a;zgo.isArrayLike(e)?(n=jgo.range(0,e.length).reverse(),r==null&&e.length>0?(r=e[e.length-1],a=1):a=0):(n=Object.keys(e).reverse(),r==null?(r=e[n[0]],a=1):a=0);for(let o=a;o{"use strict";Object.defineProperty(B$t,Symbol.toStringTag,{value:"Module"});function $go(e){if(typeof e!="function")throw new TypeError("Expected a function");return function(...t){return!e.apply(this,t)}}B$t.negate=$go});var T$t=H(w$t=>{"use strict";Object.defineProperty(w$t,Symbol.toStringTag,{value:"Module"});var eAo=Dlt(),tAo=bm(),rAo=F3e(),nAo=im();function iAo(e,t=tAo.identity){return eAo.filter(e,rAo.negate(nAo.iteratee(t)))}w$t.reject=iAo});var GTn=H(R$t=>{"use strict";Object.defineProperty(R$t,Symbol.toStringTag,{value:"Module"});function sAo(e,t){let r=e.slice(),n=[],a=0;for(let o=0;o{"use strict";Object.defineProperty(N$t,Symbol.toStringTag,{value:"Module"});var oAo=GTn(),aAo=bm(),cAo=im();function lAo(e,t=aAo.identity){return oAo.remove(e,cAo.iteratee(t))}N$t.remove=lAo});var x$t=H(k$t=>{"use strict";Object.defineProperty(k$t,Symbol.toStringTag,{value:"Module"});function uAo(e){return e==null?e:e.reverse()}k$t.reverse=uAo});var FTn=H(G$t=>{"use strict";Object.defineProperty(G$t,Symbol.toStringTag,{value:"Module"});function gAo(e){let t=Math.floor(Math.random()*e.length);return e[t]}G$t.sample=gAo});var Z$t=H(F$t=>{"use strict";Object.defineProperty(F$t,Symbol.toStringTag,{value:"Module"});var ZTn=FTn(),AAo=SZ(),dAo=Sf();function pAo(e){if(e!=null)return dAo.isArrayLike(e)?ZTn.sample(AAo.toArray(e)):ZTn.sample(Object.values(e))}F$t.sample=pAo});var V$t=H(L$t=>{"use strict";Object.defineProperty(L$t,Symbol.toStringTag,{value:"Module"});function fAo(e,t){if(t==null&&(t=e,e=0),e>=t)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(t-e)+e}L$t.random=fAo});var W$t=H(P$t=>{"use strict";Object.defineProperty(P$t,Symbol.toStringTag,{value:"Module"});var IAo=V$t();function hAo(e,t){return Math.floor(IAo.random(e,t))}P$t.randomInt=hAo});var LTn=H(O$t=>{"use strict";Object.defineProperty(O$t,Symbol.toStringTag,{value:"Module"});var mAo=W$t();function CAo(e,t){if(t>e.length)throw new Error("Size must be less than or equal to the length of array.");let r=new Array(t),n=new Set;for(let a=e.length-t,o=0;a{"use strict";Object.defineProperty(M$t,Symbol.toStringTag,{value:"Module"});var VTn=Q9();function _Ao(e,t,r){return r===void 0&&(r=t,t=void 0),r!==void 0&&(r=VTn.toNumber(r),e=Math.min(e,Number.isNaN(r)?0:r)),t!==void 0&&(t=VTn.toNumber(t),e=Math.max(e,Number.isNaN(t)?0:t)),e}M$t.clamp=_Ao});var PTn=H(H$t=>{"use strict";Object.defineProperty(H$t,Symbol.toStringTag,{value:"Module"});function yAo(e){return e instanceof Map}H$t.isMap=yAo});var Vlt=H(Y$t=>{"use strict";Object.defineProperty(Y$t,Symbol.toStringTag,{value:"Module"});var bAo=PTn();function EAo(e){return bAo.isMap(e)}Y$t.isMap=EAo});var Z3e=H(Q$t=>{"use strict";Object.defineProperty(Q$t,Symbol.toStringTag,{value:"Module"});var SAo=Sf(),vAo=Vlt();function BAo(e){return e==null?[]:SAo.isArrayLike(e)||vAo.isMap(e)?Array.from(e):typeof e=="object"?Object.values(e):[]}Q$t.toArray=BAo});var J$t=H(X$t=>{"use strict";Object.defineProperty(X$t,Symbol.toStringTag,{value:"Module"});var wAo=LTn(),TAo=qq(),RAo=Ofe(),NAo=Z3e(),DAo=$w();function kAo(e,t,r){let n=NAo.toArray(e);return(r?TAo.isIterateeCall(e,t,r):t===void 0)?t=1:t=RAo.clamp(DAo.toInteger(t),0,n.length),wAo.sampleSize(n,t)}X$t.sampleSize=kAo});var WTn=H(U$t=>{"use strict";Object.defineProperty(U$t,Symbol.toStringTag,{value:"Module"});function xAo(e){let t=e.slice();for(let r=t.length-1;r>=1;r--){let n=Math.floor(Math.random()*(r+1));[t[r],t[n]]=[t[n],t[r]]}return t}U$t.shuffle=xAo});var Plt=H(K$t=>{"use strict";Object.defineProperty(K$t,Symbol.toStringTag,{value:"Module"});function GAo(e){return e==null?[]:Object.values(e)}K$t.values=GAo});var QSe=H(j$t=>{"use strict";Object.defineProperty(j$t,Symbol.toStringTag,{value:"Module"});function FAo(e){return e==null}j$t.isNil=FAo});var $$t=H(q$t=>{"use strict";Object.defineProperty(q$t,Symbol.toStringTag,{value:"Module"});var z$t=WTn(),ZAo=Plt(),LAo=$q(),VAo=Sf(),PAo=QSe(),WAo=ioe();function OAo(e){return PAo.isNil(e)?[]:LAo.isArray(e)?z$t.shuffle(e):VAo.isArrayLike(e)?z$t.shuffle(Array.from(e)):WAo.isObjectLike(e)?z$t.shuffle(ZAo.values(e)):[]}q$t.shuffle=OAo});var ter=H(eer=>{"use strict";Object.defineProperty(eer,Symbol.toStringTag,{value:"Module"});var MAo=aoe();function HAo(e){return MAo.isNil(e)?0:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}eer.size=HAo});var ner=H(rer=>{"use strict";Object.defineProperty(rer,Symbol.toStringTag,{value:"Module"});var YAo=qq(),QAo=Sf(),OTn=$w();function XAo(e,t,r){if(!QAo.isArrayLike(e))return[];let n=e.length;r===void 0?r=n:typeof r!="number"&&YAo.isIterateeCall(e,t,r)&&(t=0,r=n),t=OTn.toInteger(t),r=OTn.toInteger(r),t<0?t=Math.max(n+t,0):t=Math.min(t,n),r<0?r=Math.max(n+r,0):r=Math.min(r,n);let a=Math.max(r-t,0),o=new Array(a);for(let l=0;l{"use strict";Object.defineProperty(ier,Symbol.toStringTag,{value:"Module"});var JAo=bm(),UAo=nX(),KAo=OK(),jAo=MK();function zAo(e,t,r){if(!e)return!1;r!=null&&(t=void 0),t==null&&(t=JAo.identity);let n=Array.isArray(e)?e:Object.values(e);switch(typeof t){case"function":{if(!Array.isArray(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(oer,Symbol.toStringTag,{value:"Module"});var qAo=Zlt(),$Ao=m3e(),MTn=qq();function edo(e,...t){let r=t.length;return r>1&&MTn.isIterateeCall(e,t[0],t[1])?t=[]:r>2&&MTn.isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),qAo.orderBy(e,$Ao.flatten(t),["asc"])}oer.sortBy=edo});var Wlt=H(cer=>{"use strict";Object.defineProperty(cer,Symbol.toStringTag,{value:"Module"});function tdo(e){return e===null}cer.isNull=tdo});var uer=H(ler=>{"use strict";Object.defineProperty(ler,Symbol.toStringTag,{value:"Module"});function rdo(e){return e===void 0}ler.isUndefined=rdo});var Olt=H(ger=>{"use strict";Object.defineProperty(ger,Symbol.toStringTag,{value:"Module"});function ndo(e){return Number.isNaN(e)}ger.isNaN=ndo});var L3e=H(Aer=>{"use strict";Object.defineProperty(Aer,Symbol.toStringTag,{value:"Module"});var HTn=Wlt(),YTn=uer(),ido=HK(),QTn=Olt(),sdo=QSe(),XTn=soe(),odo=im(),ado=4294967295,cdo=ado-1;function ldo(e,t,r=ido.identity,n){if(sdo.isNil(e)||e.length===0)return 0;let a=0,o=e.length,l=odo.iteratee(r),A=l(t),f=QTn.isNaN(A),I=HTn.isNull(A),C=XTn.isSymbol(A),b=YTn.isUndefined(A);for(;a{"use strict";Object.defineProperty(der,Symbol.toStringTag,{value:"Module"});function udo(e){return typeof e=="symbol"}der.isSymbol=udo});var V3e=H(fer=>{"use strict";Object.defineProperty(fer,Symbol.toStringTag,{value:"Module"});function gdo(e){return typeof e=="number"||e instanceof Number}fer.isNumber=gdo});var Mlt=H(Ier=>{"use strict";Object.defineProperty(Ier,Symbol.toStringTag,{value:"Module"});var Ado=L3e(),ddo=aoe(),pdo=Wlt(),fdo=per(),Ido=V3e(),hdo=4294967295,mdo=hdo>>>1;function Cdo(e,t){if(ddo.isNil(e))return 0;let r=0,n=e.length;if(Ido.isNumber(t)&&t===t&&n<=mdo){for(;r>>1,o=e[a];!pdo.isNull(o)&&!fdo.isSymbol(o)&&oa)}Ier.sortedIndex=Cdo});var mer=H(her=>{"use strict";Object.defineProperty(her,Symbol.toStringTag,{value:"Module"});var _do=Mlt(),ydo=Sk();function bdo(e,t){if(!e?.length)return-1;let r=_do.sortedIndex(e,t);return r{"use strict";Object.defineProperty(Cer,Symbol.toStringTag,{value:"Module"});var Edo=L3e();function Sdo(e,t,r){return Edo.sortedIndexBy(e,t,r,!0)}Cer.sortedLastIndexBy=Sdo});var Ylt=H(_er=>{"use strict";Object.defineProperty(_er,Symbol.toStringTag,{value:"Module"});var vdo=Hlt(),Bdo=aoe(),wdo=Wlt(),Tdo=per(),Rdo=V3e(),Ndo=4294967295,Ddo=Ndo>>>1;function kdo(e,t){if(Bdo.isNil(e))return 0;let r=e.length;if(!Rdo.isNumber(t)||Number.isNaN(t)||r>Ddo)return vdo.sortedLastIndexBy(e,t,a=>a);let n=0;for(;n>>1,o=e[a];!wdo.isNull(o)&&!Tdo.isSymbol(o)&&o<=t?n=a+1:r=a}return r}_er.sortedLastIndex=kdo});var ber=H(yer=>{"use strict";Object.defineProperty(yer,Symbol.toStringTag,{value:"Module"});var xdo=Ylt(),Gdo=Sk();function Fdo(e,t){if(!e?.length)return-1;let r=xdo.sortedLastIndex(e,t)-1;return r>=0&&Gdo.isEqualsSameValueZero(e[r],t)?r:-1}yer.sortedLastIndexOf=Fdo});var JTn=H(Eer=>{"use strict";Object.defineProperty(Eer,Symbol.toStringTag,{value:"Module"});function Zdo(e){return e.slice(1)}Eer.tail=Zdo});var ver=H(Ser=>{"use strict";Object.defineProperty(Ser,Symbol.toStringTag,{value:"Module"});var Ldo=JTn(),Vdo=SZ(),Pdo=Sf();function Wdo(e){return Pdo.isArrayLike(e)?Ldo.tail(Vdo.toArray(e)):[]}Ser.tail=Wdo});var UTn=H(Ber=>{"use strict";Object.defineProperty(Ber,Symbol.toStringTag,{value:"Module"});var Odo=$w();function Mdo(e,t,r){return t=r||t===void 0?1:Odo.toInteger(t),e.slice(0,t)}Ber.take=Mdo});var Ter=H(wer=>{"use strict";Object.defineProperty(wer,Symbol.toStringTag,{value:"Module"});var Hdo=UTn(),Ydo=SZ(),Qdo=Sf(),Xdo=$w();function Jdo(e,t=1,r){return t=r?1:Xdo.toInteger(t),t<1||!Qdo.isArrayLike(e)?[]:Hdo.take(Ydo.toArray(e),t)}wer.take=Jdo});var KTn=H(Rer=>{"use strict";Object.defineProperty(Rer,Symbol.toStringTag,{value:"Module"});var Udo=$w();function Kdo(e,t,r){return t=r||t===void 0?1:Udo.toInteger(t),t<=0||e.length===0?[]:e.slice(-t)}Rer.takeRight=Kdo});var Der=H(Ner=>{"use strict";Object.defineProperty(Ner,Symbol.toStringTag,{value:"Module"});var jdo=KTn(),zdo=SZ(),qdo=Sf(),$do=$w();function epo(e,t=1,r){return t=r?1:$do.toInteger(t),t<=0||!qdo.isArrayLike(e)?[]:jdo.takeRight(zdo.toArray(e),t)}Ner.takeRight=epo});var jTn=H(ker=>{"use strict";Object.defineProperty(ker,Symbol.toStringTag,{value:"Module"});function tpo(e){return(...t)=>!e(...t)}ker.negate=tpo});var Ger=H(xer=>{"use strict";Object.defineProperty(xer,Symbol.toStringTag,{value:"Module"});var rpo=bm(),npo=jTn(),ipo=SZ(),spo=b2(),opo=im();function apo(e,t){if(!spo.isArrayLikeObject(e))return[];let r=ipo.toArray(e),n=r.findLastIndex(npo.negate(opo.iteratee(t??rpo.identity)));return r.slice(n+1)}xer.takeRightWhile=apo});var Zer=H(Fer=>{"use strict";Object.defineProperty(Fer,Symbol.toStringTag,{value:"Module"});var cpo=SZ(),lpo=HK(),upo=F3e(),gpo=b2(),Apo=im();function dpo(e,t){if(!gpo.isArrayLikeObject(e))return[];let r=cpo.toArray(e),n=r.findIndex(upo.negate(Apo.iteratee(t??lpo.identity)));return n===-1?r:r.slice(0,n)}Fer.takeWhile=dpo});var Ver=H(Ler=>{"use strict";Object.defineProperty(Ler,Symbol.toStringTag,{value:"Module"});var ppo=D3e(),fpo=Wfe(),Ipo=b2();function hpo(...e){let t=e.filter(Ipo.isArrayLikeObject),r=ppo.flatMapDepth(t,n=>Array.from(n),1);return fpo.uniq(r)}Ler.union=hpo});var Wer=H(Per=>{"use strict";Object.defineProperty(Per,Symbol.toStringTag,{value:"Module"});function mpo(e,t){let r=new Map;for(let n=0;n{"use strict";Object.defineProperty(Oer,Symbol.toStringTag,{value:"Module"});function Cpo(e,t){return function(...r){return e.apply(this,r.slice(0,t))}}Oer.ary=Cpo});var Xlt=H(Mer=>{"use strict";Object.defineProperty(Mer,Symbol.toStringTag,{value:"Module"});var _po=T3e(),ypo=Wfe(),bpo=Wer(),Epo=Qlt(),Spo=R3e(),vpo=b2(),Bpo=im();function wpo(...e){let t=_po.last(e),r=Spo.flattenArrayLike(e);return vpo.isArrayLikeObject(t)||t==null?ypo.uniq(r):bpo.uniqBy(r,Epo.ary(Bpo.iteratee(t),1))}Mer.unionBy=wpo});var Yer=H(Her=>{"use strict";Object.defineProperty(Her,Symbol.toStringTag,{value:"Module"});function Tpo(e,t){let r=[];for(let n=0;n!t(l,a))&&r.push(a)}return r}Her.uniqWith=Tpo});var Jlt=H(Qer=>{"use strict";Object.defineProperty(Qer,Symbol.toStringTag,{value:"Module"});var Rpo=T3e(),Npo=Wfe(),Dpo=Yer(),kpo=R3e(),xpo=b2();function Gpo(...e){let t=Rpo.last(e),r=kpo.flattenArrayLike(e);return xpo.isArrayLikeObject(t)||t==null?Npo.uniq(r):Dpo.uniqWith(r,t)}Qer.unionWith=Gpo});var Jer=H(Xer=>{"use strict";Object.defineProperty(Xer,Symbol.toStringTag,{value:"Module"});var Fpo=Wer(),Zpo=Qlt(),Lpo=bm(),Vpo=b2(),Ppo=im();function Wpo(e,t=Lpo.identity){return Vpo.isArrayLikeObject(e)?Fpo.uniqBy(Array.from(e),Zpo.ary(Ppo.iteratee(t),1)):[]}Xer.uniqBy=Wpo});var Ker=H(Uer=>{"use strict";Object.defineProperty(Uer,Symbol.toStringTag,{value:"Module"});var Opo=Yer(),Mpo=k3e(),Hpo=Sf();function Ypo(e,t){return Hpo.isArrayLike(e)?typeof t=="function"?Opo.uniqWith(Array.from(e),t):Mpo.uniq(Array.from(e)):[]}Uer.uniqWith=Ypo});var zer=H(jer=>{"use strict";Object.defineProperty(jer,Symbol.toStringTag,{value:"Module"});function Qpo(e){let t=0;for(let n=0;nt&&(t=e[n].length);let r=new Array(t);for(let n=0;n{"use strict";Object.defineProperty(qer,Symbol.toStringTag,{value:"Module"});var Xpo=zer(),Jpo=$q(),zTn=b2();function Upo(e){return!zTn.isArrayLikeObject(e)||!e.length?[]:(e=Jpo.isArray(e)?e:Array.from(e),e=e.filter(t=>zTn.isArrayLikeObject(t)),Xpo.unzip(e))}qer.unzip=Upo});var etr=H($er=>{"use strict";Object.defineProperty($er,Symbol.toStringTag,{value:"Module"});var qTn=zer(),Kpo=$q(),jpo=b2();function zpo(e,t){if(!jpo.isArrayLikeObject(e)||!e.length)return[];let r=Kpo.isArray(e)?qTn.unzip(e):qTn.unzip(Array.from(e,a=>Array.from(a)));if(!t)return r;let n=new Array(r.length);for(let a=0;a{"use strict";Object.defineProperty(ttr,Symbol.toStringTag,{value:"Module"});var qpo=w3e();function $po(e,...t){return qpo.difference(e,t)}ttr.without=$po});var ntr=H(rtr=>{"use strict";Object.defineProperty(rtr,Symbol.toStringTag,{value:"Module"});var efo=$Tn(),tfo=b2();function rfo(e,...t){return tfo.isArrayLikeObject(e)?efo.without(Array.from(e),...t):[]}rtr.without=rfo});var str=H(itr=>{"use strict";Object.defineProperty(itr,Symbol.toStringTag,{value:"Module"});var nfo=b2(),ifo=Z3e();function sfo(...e){let t=new Map;for(let n=0;n{"use strict";Object.defineProperty(otr,Symbol.toStringTag,{value:"Module"});function ofo(e,t,r=1,{partialWindows:n=!1}={}){if(t<=0||!Number.isInteger(t))throw new Error("Size must be a positive integer.");if(r<=0||!Number.isInteger(r))throw new Error("Step must be a positive integer.");let a=[],o=n?e.length:e.length-t+1;for(let l=0;l{"use strict";Object.defineProperty(ctr,Symbol.toStringTag,{value:"Module"});var afo=Blt(),cfo=xlt(),lfo=zq(),eRn=Xlt(),ufo=atr(),gfo=bm(),tRn=b2(),Afo=im();function dfo(...e){let t=lfo.last(e),r=gfo.identity;!tRn.isArrayLikeObject(t)&&t!=null&&(r=Afo.iteratee(t),e=e.slice(0,-1));let n=e.filter(tRn.isArrayLikeObject),a=eRn.unionBy(...n,r),o=ufo.windowed(n,2).map(([l,A])=>cfo.intersectionBy(l,A,r));return afo.differenceBy(a,eRn.unionBy(...o,r),r)}ctr.xorBy=dfo});var gtr=H(utr=>{"use strict";Object.defineProperty(utr,Symbol.toStringTag,{value:"Module"});var pfo=wlt(),ffo=Glt(),Ifo=zq(),rRn=Jlt(),hfo=atr(),mfo=b2();function Cfo(...e){let t=Ifo.last(e),r=(l,A)=>l===A;typeof t=="function"&&(r=t,e=e.slice(0,-1));let n=e.filter(mfo.isArrayLikeObject),a=rRn.unionWith(...n,r),o=hfo.windowed(n,2).map(([l,A])=>ffo.intersectionWith(l,A,r));return pfo.differenceWith(a,rRn.unionWith(...o,r),r)}utr.xorWith=Cfo});var dtr=H(Atr=>{"use strict";Object.defineProperty(Atr,Symbol.toStringTag,{value:"Module"});function _fo(...e){let t=0;for(let a=0;at&&(t=e[a].length);let r=e.length,n=Array(t);for(let a=0;a{"use strict";Object.defineProperty(ftr,Symbol.toStringTag,{value:"Module"});var yfo=dtr(),bfo=b2();function Efo(...e){return e.length?yfo.zip(...e.filter(t=>bfo.isArrayLikeObject(t))):[]}ftr.zip=Efo});var Klt=H(htr=>{"use strict";Object.defineProperty(htr,Symbol.toStringTag,{value:"Module"});var Sfo=Sk(),vfo=(e,t,r)=>{let n=e[t];(!(Object.hasOwn(e,t)&&Sfo.isEqualsSameValueZero(n,r))||r===void 0&&!(t in e))&&(e[t]=r)};htr.assignValue=vfo});var Ctr=H(mtr=>{"use strict";Object.defineProperty(mtr,Symbol.toStringTag,{value:"Module"});var Bfo=Klt();function wfo(e=[],t=[]){let r={};for(let n=0;n{"use strict";Object.defineProperty(_tr,Symbol.toStringTag,{value:"Module"});var Tfo=eM(),Rfo=C3e(),Nfo=Klt(),Dfo=OSe(),kfo=x3e(),xfo=Kq(),nRn=tM(),Gfo=$5();function Ffo(e,t,r,n){if(e==null&&!nRn.isObject(e))return e;let a;kfo.isKey(t,e)?a=[t]:Array.isArray(t)?a=t:a=Gfo.toPath(t);let o=r(Tfo.get(e,a)),l=e;for(let A=0;A{"use strict";Object.defineProperty(ytr,Symbol.toStringTag,{value:"Module"});var Zfo=XSe();function Lfo(e,t,r){return Zfo.updateWith(e,t,()=>r,()=>{})}ytr.set=Lfo});var Etr=H(btr=>{"use strict";Object.defineProperty(btr,Symbol.toStringTag,{value:"Module"});var Vfo=dtr(),Pfo=P3e(),iRn=Sf();function Wfo(e,t){let r={};if(!iRn.isArrayLike(e))return r;iRn.isArrayLike(t)||(t=[]);let n=Vfo.zip(Array.from(e),Array.from(t));for(let a=0;a{"use strict";Object.defineProperty(Str,Symbol.toStringTag,{value:"Module"});var Ofo=Ult(),Mfo=coe();function Hfo(...e){let t=e.pop();if(Mfo.isFunction(t)||(e.push(t),t=void 0),!e?.length)return[];let r=Ofo.unzip(e);return t==null?r:r.map(n=>t(...n))}Str.zipWith=Hfo});var wtr=H(Btr=>{"use strict";Object.defineProperty(Btr,Symbol.toStringTag,{value:"Module"});var Yfo=$w();function Qfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");return e=Yfo.toInteger(e),function(...r){if(--e<1)return t.apply(this,r)}}Btr.after=Qfo});var jlt=H(Ttr=>{"use strict";Object.defineProperty(Ttr,Symbol.toStringTag,{value:"Module"});var Xfo=Qlt();function Jfo(e,t=e.length,r){return r&&(t=e.length),(Number.isNaN(t)||t<0)&&(t=0),Xfo.ary(e,t)}Ttr.ary=Jfo});var zlt=H(Rtr=>{"use strict";Object.defineProperty(Rtr,Symbol.toStringTag,{value:"Module"});function Ufo(e,...t){try{return e(...t)}catch(r){return r instanceof Error?r:new Error(r)}}Rtr.attempt=Ufo});var Dtr=H(Ntr=>{"use strict";Object.defineProperty(Ntr,Symbol.toStringTag,{value:"Module"});var Kfo=$w();function jfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");let r;return e=Kfo.toInteger(e),function(...n){return--e>0&&(r=t.apply(this,n)),e<=1&&t&&(t=void 0),r}}Ntr.before=jfo});var Gtr=H(xtr=>{"use strict";Object.defineProperty(xtr,Symbol.toStringTag,{value:"Module"});function ktr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ztr,Symbol.toStringTag,{value:"Module"});function Ftr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ptr,Symbol.toStringTag,{value:"Module"});function W3e(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===W3e.placeholder),l=a.length-o.length;return lA===W3e.placeholder),l=a.length-o.length;return a=$fo(a,r),l{"use strict";Object.defineProperty(Mtr,Symbol.toStringTag,{value:"Module"});function JSe(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===JSe.placeholder),l=a.length-o.length;return lA===JSe.placeholder),l=a.length-o.length;return a=eIo(a,r),ll===JSe.placeholder).length,n=Math.max(e.length-r,0),a=[],o=0;for(let l=0;l{"use strict";Object.defineProperty(Ytr,Symbol.toStringTag,{value:"Module"});function tIo(e,t,{signal:r,edges:n}={}){let a,o=null,l=n!=null&&n.includes("leading"),A=n==null||n.includes("trailing"),f=()=>{o!==null&&(e.apply(a,o),a=void 0,o=null)},I=()=>{A&&f(),N()},C=null,b=()=>{C!=null&&clearTimeout(C),C=setTimeout(()=>{C=null,I()},t)},E=()=>{C!==null&&(clearTimeout(C),C=null)},N=()=>{E(),a=void 0,o=null},B=()=>{f()},F=function(...Q){if(r?.aborted)return;a=this,o=Q;let X=C==null;b(),l&&X&&f()};return F.schedule=b,F.cancel=N,F.flush=B,r?.addEventListener("abort",N,{once:!0}),F}Ytr.debounce=tIo});var qlt=H(Qtr=>{"use strict";Object.defineProperty(Qtr,Symbol.toStringTag,{value:"Module"});var rIo=aRn();function nIo(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:o}=r,l=Array(2);n&&(l[0]="leading"),a&&(l[1]="trailing");let A,f=null,I=rIo.debounce(function(...E){A=e.apply(this,E),f=null},t,{edges:l}),C=function(...E){return o!=null&&(f===null&&(f=Date.now()),Date.now()-f>=o)?(A=e.apply(this,E),f=Date.now(),I.cancel(),I.schedule(),A):(I.apply(this,E),A)},b=()=>(I.flush(),A);return C.cancel=I.cancel,C.flush=b,C}Qtr.debounce=nIo});var Jtr=H(Xtr=>{"use strict";Object.defineProperty(Xtr,Symbol.toStringTag,{value:"Module"});function iIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,1,...t)}Xtr.defer=iIo});var Ktr=H(Utr=>{"use strict";Object.defineProperty(Utr,Symbol.toStringTag,{value:"Module"});var sIo=Q9();function oIo(e,t,...r){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,sIo.toNumber(t)||0,...r)}Utr.delay=oIo});var ztr=H(jtr=>{"use strict";Object.defineProperty(jtr,Symbol.toStringTag,{value:"Module"});function aIo(e){return function(...t){return e.apply(this,t.reverse())}}jtr.flip=aIo});var $tr=H(qtr=>{"use strict";Object.defineProperty(qtr,Symbol.toStringTag,{value:"Module"});function cIo(...e){return function(...t){let r=e.length?e[0].apply(this,t):t[0];for(let n=1;n{"use strict";Object.defineProperty(trr,Symbol.toStringTag,{value:"Module"});var lIo=m3e(),uIo=$tr();function gIo(...e){let t=lIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return uIo.flow(...t)}trr.flow=gIo});var cRn=H(nrr=>{"use strict";Object.defineProperty(nrr,Symbol.toStringTag,{value:"Module"});var AIo=$tr();function dIo(...e){return AIo.flow(...e.reverse())}nrr.flowRight=dIo});var srr=H(irr=>{"use strict";Object.defineProperty(irr,Symbol.toStringTag,{value:"Module"});var pIo=m3e(),fIo=cRn();function IIo(...e){let t=pIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return fIo.flowRight(...t)}irr.flowRight=IIo});var crr=H(arr=>{"use strict";Object.defineProperty(arr,Symbol.toStringTag,{value:"Module"});function orr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");let r=function(...a){let o=t?t.apply(this,a):a[0],l=r.cache;if(l.has(o))return l.get(o);let A=e.apply(this,a);return r.cache=l.set(o,A)||l,A},n=orr.Cache||Map;return r.cache=new n,r}orr.Cache=Map;arr.memoize=orr});var urr=H(lrr=>{"use strict";Object.defineProperty(lrr,Symbol.toStringTag,{value:"Module"});var hIo=$w();function mIo(e=0){return function(...t){return t.at(hIo.toInteger(e))}}lrr.nthArg=mIo});var lRn=H(grr=>{"use strict";Object.defineProperty(grr,Symbol.toStringTag,{value:"Module"});function CIo(e){let t=!1,r;return function(...n){return t||(t=!0,r=e(...n)),r}}grr.once=CIo});var drr=H(Arr=>{"use strict";Object.defineProperty(Arr,Symbol.toStringTag,{value:"Module"});var _Io=lRn();function yIo(e){return _Io.once(e)}Arr.once=yIo});var frr=H(prr=>{"use strict";Object.defineProperty(prr,Symbol.toStringTag,{value:"Module"});var bIo=bm(),EIo=im();function SIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");let r=t.flat();return function(...n){let a=Math.min(n.length,r.length),o=[...n];for(let l=0;l{"use strict";Object.defineProperty($lt,Symbol.toStringTag,{value:"Module"});function uRn(e,...t){return gRn(e,ARn,...t)}function gRn(e,t,...r){let n=function(...a){let o=0,l=r.slice().map(f=>f===t?a[o++]:f),A=a.slice(o);return e.apply(this,l.concat(A))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var ARn=Symbol("partial.placeholder");uRn.placeholder=ARn;$lt.partial=uRn;$lt.partialImpl=gRn});var mrr=H(hrr=>{"use strict";Object.defineProperty(hrr,Symbol.toStringTag,{value:"Module"});var vIo=dRn();function Irr(e,...t){return vIo.partialImpl(e,Irr.placeholder,...t)}Irr.placeholder=Symbol("compat.partial.placeholder");hrr.partial=Irr});var hRn=H(eut=>{"use strict";Object.defineProperty(eut,Symbol.toStringTag,{value:"Module"});function pRn(e,...t){return fRn(e,IRn,...t)}function fRn(e,t,...r){let n=function(...a){let o=r.filter(C=>C===t).length,l=Math.max(a.length-o,0),A=a.slice(0,l),f=l,I=r.slice().map(C=>C===t?a[f++]:C);return e.apply(this,A.concat(I))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var IRn=Symbol("partialRight.placeholder");pRn.placeholder=IRn;eut.partialRight=pRn;eut.partialRightImpl=fRn});var yrr=H(_rr=>{"use strict";Object.defineProperty(_rr,Symbol.toStringTag,{value:"Module"});var BIo=hRn();function Crr(e,...t){return BIo.partialRightImpl(e,Crr.placeholder,...t)}Crr.placeholder=Symbol("compat.partialRight.placeholder");_rr.partialRight=Crr});var Err=H(brr=>{"use strict";Object.defineProperty(brr,Symbol.toStringTag,{value:"Module"});var wIo=Pfe();function TIo(e,...t){let r=wIo.flatten(t);return function(...n){let a=r.map(o=>n[o]).slice(0,n.length);for(let o=a.length;o{"use strict";Object.defineProperty(Srr,Symbol.toStringTag,{value:"Module"});function RIo(e,t=e.length-1){return function(...r){let n=r.slice(t),a=r.slice(0,t);for(;a.length{"use strict";Object.defineProperty(vrr,Symbol.toStringTag,{value:"Module"});var NIo=mRn();function DIo(e,t=e.length-1){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=e.length-1),NIo.rest(e,t)}vrr.rest=DIo});var Trr=H(wrr=>{"use strict";Object.defineProperty(wrr,Symbol.toStringTag,{value:"Module"});function kIo(e,t=0){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=0),function(...r){let n=r[t],a=r.slice(0,t);return n&&a.push(...n),e.apply(this,a)}}wrr.spread=kIo});var Nrr=H(Rrr=>{"use strict";Object.defineProperty(Rrr,Symbol.toStringTag,{value:"Module"});var xIo=qlt();function GIo(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return xIo.debounce(e,t,{leading:n,maxWait:t,trailing:a})}Rrr.throttle=GIo});var krr=H(Drr=>{"use strict";Object.defineProperty(Drr,Symbol.toStringTag,{value:"Module"});var FIo=jlt();function ZIo(e){return FIo.ary(e,1)}Drr.unary=ZIo});var Grr=H(xrr=>{"use strict";Object.defineProperty(xrr,Symbol.toStringTag,{value:"Module"});var LIo=bm(),VIo=coe();function PIo(e,t){return function(...r){return(VIo.isFunction(t)?t:LIo.identity).apply(this,[e,...r])}}xrr.wrap=PIo});var Zrr=H(Frr=>{"use strict";Object.defineProperty(Frr,Symbol.toStringTag,{value:"Module"});var CRn=Q9(),_Rn=qy();function WIo(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=_Rn.toString(e),t=_Rn.toString(t)):(e=CRn.toNumber(e),t=CRn.toNumber(t)),e+t)}Frr.add=WIo});var tut=H(Lrr=>{"use strict";Object.defineProperty(Lrr,Symbol.toStringTag,{value:"Module"});function OIo(e,t,r=0){if(t=Number(t),Object.is(t,-0)&&(t="-0"),r=Math.min(Number.parseInt(r,10),292),r){let[n,a=0]=t.toString().split("e"),o=Math[e](+`${n}e${Number(a)+r}`);Object.is(o,-0)&&(o="-0");let[l,A=0]=o.toString().split("e");return+`${l}e${Number(A)-r}`}return Math[e](Number(t))}Lrr.decimalAdjust=OIo});var Prr=H(Vrr=>{"use strict";Object.defineProperty(Vrr,Symbol.toStringTag,{value:"Module"});var MIo=tut();function HIo(e,t=0){return MIo.decimalAdjust("ceil",e,t)}Vrr.ceil=HIo});var Orr=H(Wrr=>{"use strict";Object.defineProperty(Wrr,Symbol.toStringTag,{value:"Module"});var yRn=Q9(),bRn=qy();function YIo(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=bRn.toString(e),t=bRn.toString(t)):(e=yRn.toNumber(e),t=yRn.toNumber(t)),e/t)}Wrr.divide=YIo});var Hrr=H(Mrr=>{"use strict";Object.defineProperty(Mrr,Symbol.toStringTag,{value:"Module"});var QIo=tut();function XIo(e,t=0){return QIo.decimalAdjust("floor",e,t)}Mrr.floor=XIo});var ERn=H(Yrr=>{"use strict";Object.defineProperty(Yrr,Symbol.toStringTag,{value:"Module"});function JIo(e,t,r){if(r==null&&(r=t,t=0),t>=r)throw new Error("The maximum value must be greater than the minimum value.");return t<=e&&e{"use strict";Object.defineProperty(Qrr,Symbol.toStringTag,{value:"Module"});var UIo=ERn();function KIo(e,t,r){return t||(t=0),r!=null&&!r&&(r=0),t!=null&&typeof t!="number"&&(t=Number(t)),r==null&&t===0||(r!=null&&typeof r!="number"&&(r=Number(r)),r!=null&&t>r&&([t,r]=[r,t]),t===r)?!1:UIo.inRange(e,t,r)}Qrr.inRange=KIo});var Urr=H(Jrr=>{"use strict";Object.defineProperty(Jrr,Symbol.toStringTag,{value:"Module"});function jIo(e){if(!e||e.length===0)return;let t;for(let r=0;rt)&&(t=n)}return t}Jrr.max=jIo});var SRn=H(Krr=>{"use strict";Object.defineProperty(Krr,Symbol.toStringTag,{value:"Module"});function zIo(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;an&&(n=l,r=o)}return r}Krr.maxBy=zIo});var zrr=H(jrr=>{"use strict";Object.defineProperty(jrr,Symbol.toStringTag,{value:"Module"});var qIo=SRn(),$Io=bm(),eho=im();function tho(e,t){if(e!=null)return qIo.maxBy(Array.from(e),eho.iteratee(t??$Io.identity))}jrr.maxBy=tho});var rut=H(qrr=>{"use strict";Object.defineProperty(qrr,Symbol.toStringTag,{value:"Module"});var rho=im();function nho(e,t){if(!e||!e.length)return 0;t!=null&&(t=rho.iteratee(t));let r;for(let n=0;n{"use strict";Object.defineProperty($rr,Symbol.toStringTag,{value:"Module"});var iho=rut();function sho(e){return iho.sumBy(e)}$rr.sum=sho});var tnr=H(enr=>{"use strict";Object.defineProperty(enr,Symbol.toStringTag,{value:"Module"});var oho=nut();function aho(e){let t=e?e.length:0;return t===0?NaN:oho.sum(e)/t}enr.mean=aho});var vRn=H(rnr=>{"use strict";Object.defineProperty(rnr,Symbol.toStringTag,{value:"Module"});function cho(e,t){let r=0;for(let n=0;n{"use strict";Object.defineProperty(nnr,Symbol.toStringTag,{value:"Module"});var lho=vRn();function uho(e,t){return lho.sumBy(e,r=>t(r))/e.length}nnr.meanBy=uho});var snr=H(inr=>{"use strict";Object.defineProperty(inr,Symbol.toStringTag,{value:"Module"});var gho=bm(),Aho=BRn(),dho=im();function pho(e,t){return e==null?NaN:Aho.meanBy(Array.from(e),dho.iteratee(t??gho.identity))}inr.meanBy=pho});var anr=H(onr=>{"use strict";Object.defineProperty(onr,Symbol.toStringTag,{value:"Module"});function fho(e){if(!e||e.length===0)return;let t;for(let r=0;r{"use strict";Object.defineProperty(cnr,Symbol.toStringTag,{value:"Module"});function Iho(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;a{"use strict";Object.defineProperty(lnr,Symbol.toStringTag,{value:"Module"});var hho=wRn(),mho=bm(),Cho=im();function _ho(e,t){if(e!=null)return hho.minBy(Array.from(e),Cho.iteratee(t??mho.identity))}lnr.minBy=_ho});var Anr=H(gnr=>{"use strict";Object.defineProperty(gnr,Symbol.toStringTag,{value:"Module"});var TRn=Q9(),RRn=qy();function yho(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=RRn.toString(e),t=RRn.toString(t)):(e=TRn.toNumber(e),t=TRn.toNumber(t)),e*t)}gnr.multiply=yho});var pnr=H(dnr=>{"use strict";Object.defineProperty(dnr,Symbol.toStringTag,{value:"Module"});function bho(e,t=0,r){return r&&(t=0),Number.parseInt(e,t)}dnr.parseInt=bho});var Inr=H(fnr=>{"use strict";Object.defineProperty(fnr,Symbol.toStringTag,{value:"Module"});var NRn=Ofe(),Eho=V$t(),Sho=W$t();function vho(...e){let t=0,r=1,n=!1;switch(e.length){case 1:{typeof e[0]=="boolean"?n=e[0]:r=e[0];break}case 2:typeof e[1]=="boolean"?(r=e[0],n=e[1]):(t=e[0],r=e[1]);case 3:typeof e[2]=="object"&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,r=e[0],n=!1):(t=e[0],r=e[1],n=e[2])}return typeof t!="number"&&(t=Number(t)),typeof r!="number"&&(t=Number(r)),t||(t=0),r||(r=0),t>r&&([t,r]=[r,t]),t=NRn.clamp(t,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),r=NRn.clamp(r,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),t===r?t:n?Eho.random(t,r+1):Sho.randomInt(t,r+1)}fnr.random=vho});var Cnr=H(mnr=>{"use strict";Object.defineProperty(mnr,Symbol.toStringTag,{value:"Module"});var Bho=qq(),hnr=MSe();function who(e,t,r){r&&typeof r!="number"&&Bho.isIterateeCall(e,t,r)&&(t=r=void 0),e=hnr.toFinite(e),t===void 0?(t=e,e=0):t=hnr.toFinite(t),r=r===void 0?e{"use strict";Object.defineProperty(ynr,Symbol.toStringTag,{value:"Module"});var Tho=qq(),_nr=MSe();function Rho(e,t,r){r&&typeof r!="number"&&Tho.isIterateeCall(e,t,r)&&(t=r=void 0),e=_nr.toFinite(e),t===void 0?(t=e,e=0):t=_nr.toFinite(t),r=r===void 0?e=0;o--)a[o]=e,e+=r;return a}ynr.rangeRight=Rho});var Snr=H(Enr=>{"use strict";Object.defineProperty(Enr,Symbol.toStringTag,{value:"Module"});var Nho=tut();function Dho(e,t=0){return Nho.decimalAdjust("round",e,t)}Enr.round=Dho});var Bnr=H(vnr=>{"use strict";Object.defineProperty(vnr,Symbol.toStringTag,{value:"Module"});var DRn=Q9(),kRn=qy();function kho(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=kRn.toString(e),t=kRn.toString(t)):(e=DRn.toNumber(e),t=DRn.toNumber(t)),e-t)}vnr.subtract=kho});var xRn=H(wnr=>{"use strict";Object.defineProperty(wnr,Symbol.toStringTag,{value:"Module"});function xho(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}wnr.isPlainObject=xho});var Rnr=H(Tnr=>{"use strict";Object.defineProperty(Tnr,Symbol.toStringTag,{value:"Module"});var GRn=noe(),FRn=xRn(),ZRn=y3e(),LRn=Zfe(),hy=b3e(),Gho=Sk();function Fho(e,t,r){return O3e(e,t,void 0,void 0,void 0,void 0,r)}function O3e(e,t,r,n,a,o,l){let A=l(e,t,r,n,a,o);if(A!==void 0)return A;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return M3e(e,t,o,l)}return M3e(e,t,o,l)}function M3e(e,t,r,n){if(Object.is(e,t))return!0;let a=LRn.getTag(e),o=LRn.getTag(t);if(a===hy.argumentsTag&&(a=hy.objectTag),o===hy.argumentsTag&&(o=hy.objectTag),a!==o)return!1;switch(a){case hy.stringTag:return e.toString()===t.toString();case hy.numberTag:{let f=e.valueOf(),I=t.valueOf();return Gho.isEqualsSameValueZero(f,I)}case hy.booleanTag:case hy.dateTag:case hy.symbolTag:return Object.is(e.valueOf(),t.valueOf());case hy.regexpTag:return e.source===t.source&&e.flags===t.flags;case hy.functionTag:return e===t}r=r??new Map;let l=r.get(e),A=r.get(t);if(l!=null&&A!=null)return l===t;r.set(e,t),r.set(t,e);try{switch(a){case hy.mapTag:{if(e.size!==t.size)return!1;for(let[f,I]of e.entries())if(!t.has(f)||!O3e(I,t.get(f),f,e,t,r,n))return!1;return!0}case hy.setTag:{if(e.size!==t.size)return!1;let f=Array.from(e.values()),I=Array.from(t.values());for(let C=0;CO3e(b,N,void 0,e,t,r,n));if(E===-1)return!1;I.splice(E,1)}return!0}case hy.arrayTag:case hy.uint8ArrayTag:case hy.uint8ClampedArrayTag:case hy.uint16ArrayTag:case hy.uint32ArrayTag:case hy.bigUint64ArrayTag:case hy.int8ArrayTag:case hy.int16ArrayTag:case hy.int32ArrayTag:case hy.bigInt64ArrayTag:case hy.float32ArrayTag:case hy.float64ArrayTag:{if(GRn.isBuffer(e)!==GRn.isBuffer(t)||e.length!==t.length)return!1;for(let f=0;f{"use strict";Object.defineProperty(Nnr,Symbol.toStringTag,{value:"Module"});function Zho(){}Nnr.noop=Zho});var xnr=H(knr=>{"use strict";Object.defineProperty(knr,Symbol.toStringTag,{value:"Module"});var Lho=Rnr(),Vho=Dnr();function Pho(e,t){return Lho.isEqualWith(e,t,Vho.noop)}knr.isEqual=Pho});var Fnr=H(Gnr=>{"use strict";Object.defineProperty(Gnr,Symbol.toStringTag,{value:"Module"});function Who(...e){}Gnr.noop=Who});var iut=H(Znr=>{"use strict";Object.defineProperty(Znr,Symbol.toStringTag,{value:"Module"});function Oho(e){let t=e?.constructor,r=typeof t=="function"?t.prototype:Object.prototype;return e===r}Znr.isPrototype=Oho});var e$=H(Lnr=>{"use strict";Object.defineProperty(Lnr,Symbol.toStringTag,{value:"Module"});var Mho=Slt();function Hho(e){return Mho.isTypedArray(e)}Lnr.isTypedArray=Hho});var H3e=H(Vnr=>{"use strict";Object.defineProperty(Vnr,Symbol.toStringTag,{value:"Module"});var Yho=$w();function Qho(e,t){if(e=Yho.toInteger(e),e<1||!Number.isSafeInteger(e))return[];let r=new Array(e);for(let n=0;n{"use strict";Object.defineProperty(Pnr,Symbol.toStringTag,{value:"Module"});var Xho=noe(),Jho=iut(),Uho=Sf(),Kho=e$(),jho=H3e();function zho(e){if(Uho.isArrayLike(e))return qho(e);let t=Object.keys(Object(e));return Jho.isPrototype(e)?t.filter(r=>r!=="constructor"):t}function qho(e){let t=jho.times(e.length,a=>`${a}`),r=new Set(t);Xho.isBuffer(e)&&(r.add("offset"),r.add("parent")),Kho.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=Object.keys(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Pnr.keys=zho});var Onr=H(Wnr=>{"use strict";Object.defineProperty(Wnr,Symbol.toStringTag,{value:"Module"});var $ho=YK(),emo=Sk();function tmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Mnr,Symbol.toStringTag,{value:"Module"});var nmo=noe(),imo=iut(),smo=Sf(),omo=e$(),amo=H3e();function cmo(e){if(e==null)return[];switch(typeof e){case"object":case"function":return smo.isArrayLike(e)?umo(e):imo.isPrototype(e)?lmo(e):sut(e);default:return sut(Object(e))}}function sut(e){let t=[];for(let r in e)t.push(r);return t}function lmo(e){return sut(e).filter(r=>r!=="constructor")}function umo(e){let t=amo.times(e.length,a=>`${a}`),r=new Set(t);nmo.isBuffer(e)&&(r.add("offset"),r.add("parent")),omo.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=sut(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Mnr.keysIn=cmo});var Ynr=H(Hnr=>{"use strict";Object.defineProperty(Hnr,Symbol.toStringTag,{value:"Module"});var gmo=iX(),Amo=Sk();function dmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Qnr,Symbol.toStringTag,{value:"Module"});var fmo=iX(),Imo=Sk();function hmo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(Jnr,Symbol.toStringTag,{value:"Module"});var Cmo=YK(),_mo=Sk();function ymo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(jnr,Symbol.toStringTag,{value:"Module"});var Emo=PSe(),VRn=Zfe(),KC=b3e(),Smo=$q(),vmo=e$();function Bmo(e){if(Emo.isPrimitive(e))return e;let t=VRn.getTag(e);if(!wmo(e))return{};if(Smo.isArray(e)){let n=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(n.index=e.index,n.input=e.input),n}if(vmo.isTypedArray(e)){let n=e,a=n.constructor;return new a(n.buffer,n.byteOffset,n.length)}if(t===KC.arrayBufferTag)return new ArrayBuffer(e.byteLength);if(t===KC.dataViewTag){let n=e,a=n.buffer,o=n.byteOffset,l=n.byteLength,A=new ArrayBuffer(l),f=new Uint8Array(a,o,l);return new Uint8Array(A).set(f),new DataView(A)}if(t===KC.booleanTag||t===KC.numberTag||t===KC.stringTag){let n=e.constructor,a=new n(e.valueOf());return t===KC.stringTag?Rmo(a,e):Knr(a,e),a}if(t===KC.dateTag)return new Date(Number(e));if(t===KC.regexpTag){let n=e,a=new RegExp(n.source,n.flags);return a.lastIndex=n.lastIndex,a}if(t===KC.symbolTag)return Object(Symbol.prototype.valueOf.call(e));if(t===KC.mapTag){let n=e,a=new Map;return n.forEach((o,l)=>{a.set(l,o)}),a}if(t===KC.setTag){let n=e,a=new Set;return n.forEach(o=>{a.add(o)}),a}if(t===KC.argumentsTag){let n=e,a={};return Knr(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}let r={};return Nmo(r,e),Knr(r,e),Tmo(r,e),r}function wmo(e){switch(VRn.getTag(e)){case KC.argumentsTag:case KC.arrayTag:case KC.arrayBufferTag:case KC.dataViewTag:case KC.booleanTag:case KC.dateTag:case KC.float32ArrayTag:case KC.float64ArrayTag:case KC.int8ArrayTag:case KC.int16ArrayTag:case KC.int32ArrayTag:case KC.mapTag:case KC.numberTag:case KC.objectTag:case KC.regexpTag:case KC.setTag:case KC.stringTag:case KC.symbolTag:case KC.uint8ArrayTag:case KC.uint8ClampedArrayTag:case KC.uint16ArrayTag:case KC.uint32ArrayTag:return!0;default:return!1}}function Knr(e,t){for(let r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function Tmo(e,t){let r=Object.getOwnPropertySymbols(t);for(let n=0;n=r)&&(e[n]=t[n])}function Nmo(e,t){let r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}jnr.clone=Bmo});var qnr=H(znr=>{"use strict";Object.defineProperty(znr,Symbol.toStringTag,{value:"Module"});var PRn=out();function Dmo(e,t){if(!t)return PRn.clone(e);let r=t(e);return r!==void 0?r:PRn.clone(e)}znr.cloneWith=Dmo});var eir=H($nr=>{"use strict";Object.defineProperty($nr,Symbol.toStringTag,{value:"Module"});var kmo=YK(),xmo=Klt(),Gmo=tM();function Fmo(e,t){let r=Gmo.isObject(e)?Object.create(e):{};if(t!=null){let n=kmo.keys(t);for(let a=0;a{"use strict";Object.defineProperty(tir,Symbol.toStringTag,{value:"Module"});var Zmo=aoe(),Lmo=qq(),Vmo=Sk();function Pmo(e,...t){e=Object(e);let r=Object.prototype,n=t.length,a=n>2?t[2]:void 0;a&&Lmo.isIterateeCall(t[0],t[1],a)&&(n=1);for(let o=0;o{"use strict";Object.defineProperty(rir,Symbol.toStringTag,{value:"Module"});function Wmo(e){if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){let r=e[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${r}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}rir.isPlainObject=Wmo});var iir=H(nir=>{"use strict";Object.defineProperty(nir,Symbol.toStringTag,{value:"Module"});var Q3e=Mfe();function Omo(e,...t){e=Object(e);for(let r=0;r{"use strict";Object.defineProperty(sir,Symbol.toStringTag,{value:"Module"});function Qmo(e,t){return Object.keys(e).find(n=>t(e[n],n,e))}sir.findKey=Qmo});var air=H(oir=>{"use strict";Object.defineProperty(oir,Symbol.toStringTag,{value:"Module"});var Xmo=WRn(),Jmo=HK(),Umo=tM(),Kmo=im();function jmo(e,t){if(!Umo.isObject(e))return;let r=Kmo.iteratee(t??Jmo.identity);return Xmo.findKey(e,r)}oir.findKey=jmo});var lir=H(cir=>{"use strict";Object.defineProperty(cir,Symbol.toStringTag,{value:"Module"});var zmo=HK(),qmo=tM(),$mo=im();function eCo(e,t){if(!qmo.isObject(e))return;let r=$mo.iteratee(t??zmo.identity);return Object.keys(e).findLast(a=>r(e[a],a,e))}cir.findLastKey=eCo});var gir=H(uir=>{"use strict";Object.defineProperty(uir,Symbol.toStringTag,{value:"Module"});var tCo=bm();function rCo(e,t=tCo.identity){if(e==null)return e;for(let r in e)if(t(e[r],r,e)===!1)break;return e}uir.forIn=rCo});var dir=H(Air=>{"use strict";Object.defineProperty(Air,Symbol.toStringTag,{value:"Module"});var nCo=bm();function iCo(e,t=nCo.identity){if(e==null)return e;let r=[];for(let n in e)r.push(n);for(let n=r.length-1;n>=0;n--){let a=r[n];if(t(e[a],a,e)===!1)break}return e}Air.forInRight=iCo});var fir=H(pir=>{"use strict";Object.defineProperty(pir,Symbol.toStringTag,{value:"Module"});var sCo=YK(),oCo=bm();function aCo(e,t=oCo.identity){if(e==null)return e;let r=Object(e),n=sCo.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Iir,Symbol.toStringTag,{value:"Module"});var cCo=YK(),lCo=bm();function uCo(e,t=lCo.identity){if(e==null)return e;let r=Object(e),n=cCo.keys(e);for(let a=n.length-1;a>=0;--a){let o=n[a];if(t(r[o],o,r)===!1)break}return e}Iir.forOwnRight=uCo});var Cir=H(mir=>{"use strict";Object.defineProperty(mir,Symbol.toStringTag,{value:"Module"});var gCo=Sf();function ACo(e){if(!gCo.isArrayLike(e))return{};let t={};for(let r=0;r{"use strict";Object.defineProperty(_ir,Symbol.toStringTag,{value:"Module"});var dCo=YK();function pCo(e){return e==null?[]:dCo.keys(e).filter(t=>typeof e[t]=="function")}_ir.functions=pCo});var Eir=H(bir=>{"use strict";Object.defineProperty(bir,Symbol.toStringTag,{value:"Module"});var fCo=coe();function ICo(e){if(e==null)return[];let t=[];for(let r in e)fCo.isFunction(e[r])&&t.push(r);return t}bir.functionsIn=ICo});var vir=H(Sir=>{"use strict";Object.defineProperty(Sir,Symbol.toStringTag,{value:"Module"});var hCo=VSe(),mCo=OSe(),CCo=Vfe(),_Co=$5();function yCo(e,t){if(e==null)return!1;let r;if(Array.isArray(t)?r=t:typeof t=="string"&&hCo.isDeepKey(t)&&e[t]==null?r=_Co.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Bir,Symbol.toStringTag,{value:"Module"});function bCo(e){let t={},r=Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(wir,Symbol.toStringTag,{value:"Module"});var ECo=ORn();function SCo(e){return ECo.invert(e)}wir.invert=SCo});var Nir=H(Rir=>{"use strict";Object.defineProperty(Rir,Symbol.toStringTag,{value:"Module"});var vCo=bm(),BCo=aoe(),wCo=im();function TCo(e,t){let r={};if(BCo.isNil(e))return r;t==null&&(t=vCo.identity);let n=Object.keys(e),a=wCo.iteratee(t);for(let o=0;o{"use strict";Object.defineProperty(Dir,Symbol.toStringTag,{value:"Module"});function RCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(kir,Symbol.toStringTag,{value:"Module"});var NCo=bm(),DCo=MRn(),kCo=im();function xCo(e,t=NCo.identity){return e==null?{}:DCo.mapKeys(e,kCo.iteratee(t))}kir.mapKeys=xCo});var HRn=H(Gir=>{"use strict";Object.defineProperty(Gir,Symbol.toStringTag,{value:"Module"});function GCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Fir,Symbol.toStringTag,{value:"Module"});var FCo=bm(),ZCo=HRn(),LCo=im();function VCo(e,t=FCo.identity){return e==null?{}:ZCo.mapValues(e,LCo.iteratee(t))}Fir.mapValues=VCo});var YRn=H(Lir=>{"use strict";Object.defineProperty(Lir,Symbol.toStringTag,{value:"Module"});var PCo=PSe(),WCo=Slt();function OCo(e){if(PCo.isPrimitive(e))return e;if(Array.isArray(e)||WCo.isTypedArray(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);let r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){let n=new r(e);return n.lastIndex=e.lastIndex,n}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let n;return e instanceof AggregateError?n=new r(e.errors,e.message,{cause:e.cause}):n=new r(e.message,{cause:e.cause}),n.stack=e.stack,Object.assign(n,e),n}if(typeof File<"u"&&e instanceof File)return new r([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e=="object"){let n=Object.create(t);return Object.assign(n,e)}return e}Lir.clone=OCo});var lut=H(Wir=>{"use strict";Object.defineProperty(Wir,Symbol.toStringTag,{value:"Module"});var QRn=WSe(),MCo=C3e(),HCo=YRn(),YCo=noe(),QCo=PSe(),XCo=y3e(),XRn=Vfe(),JCo=b2(),JRn=ioe(),Vir=Mfe(),Pir=e$();function UCo(e,...t){let r=t.slice(0,-1),n=t[t.length-1],a=e;for(let o=0;o{"use strict";Object.defineProperty(Oir,Symbol.toStringTag,{value:"Module"});var KCo=lut(),jCo=Dnr();function zCo(e,...t){return KCo.mergeWith(e,...t,jCo.noop)}Oir.merge=zCo});var uut=H(Hir=>{"use strict";Object.defineProperty(Hir,Symbol.toStringTag,{value:"Module"});var qCo=y3e();function $Co(e){let t=[];for(;e;)t.push(...qCo.getSymbols(e)),e=Object.getPrototypeOf(e);return t}Hir.getSymbolsIn=$Co});var Qir=H(Yir=>{"use strict";Object.defineProperty(Yir,Symbol.toStringTag,{value:"Module"});var e_o=v3e(),KRn=iX(),URn=G3e(),jRn=uut(),t_o=VSe(),r_o=Pfe(),n_o=Mfe();function i_o(e,...t){if(e==null)return{};t=r_o.flatten(t);let r=s_o(e,t);for(let n=0;nArray.isArray(n)||t_o.isDeepKey(n))?a_o(e):o_o(e)}function o_o(e){let t={},r=[...KRn.keysIn(e),...jRn.getSymbolsIn(e)];for(let n=0;n{if(!n_o.isPlainObject(o))return o})}return t}Yir.omit=i_o});var Jir=H(Xir=>{"use strict";Object.defineProperty(Xir,Symbol.toStringTag,{value:"Module"});var c_o=iX(),l_o=ooe(),u_o=uut(),g_o=HK(),A_o=Sf(),d_o=soe(),p_o=im();function f_o(e,t){if(e==null)return{};let r={},n=p_o.iteratee(t??g_o.identity),a=A_o.isArrayLike(e)?l_o.range(0,e.length):[...c_o.keysIn(e),...u_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(Uir,Symbol.toStringTag,{value:"Module"});var I_o=eM(),h_o=B3e(),m_o=P3e(),C_o=Sf(),__o=QSe();function y_o(e,...t){if(__o.isNil(e))return{};let r={};for(let n=0;n{"use strict";Object.defineProperty(jir,Symbol.toStringTag,{value:"Module"});var b_o=iX(),E_o=ooe(),S_o=uut(),v_o=HK(),B_o=Sf(),w_o=soe(),T_o=im();function R_o(e,t){if(e==null)return{};let r=T_o.iteratee(t??v_o.identity),n={},a=B_o.isArrayLike(e)?E_o.range(0,e.length):[...b_o.keysIn(e),...S_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(qir,Symbol.toStringTag,{value:"Module"});var N_o=eM();function D_o(e){return function(t){return N_o.get(e,t)}}qir.propertyOf=D_o});var tsr=H(esr=>{"use strict";Object.defineProperty(esr,Symbol.toStringTag,{value:"Module"});var k_o=x3e(),x_o=Kq(),G_o=$5(),F_o=qy();function Z_o(e,t,r){k_o.isKey(t,e)?t=[t]:Array.isArray(t)||(t=G_o.toPath(F_o.toString(t)));let n=Math.max(t.length,1);for(let a=0;a{"use strict";Object.defineProperty(rsr,Symbol.toStringTag,{value:"Module"});var L_o=XSe();function V_o(e,t,r,n){let a;return typeof n=="function"?a=n:a=()=>{},L_o.updateWith(e,t,()=>r,a)}rsr.setWith=V_o});var ssr=H(isr=>{"use strict";Object.defineProperty(isr,Symbol.toStringTag,{value:"Module"});var P_o=WSe(),W_o=Y3e();function O_o(e,...t){let r=P_o.cloneDeep(e);return W_o.defaults(r,...t)}isr.toDefaulted=O_o});var asr=H(osr=>{"use strict";Object.defineProperty(osr,Symbol.toStringTag,{value:"Module"});function M_o(e){let t=new Array(e.size),r=e.keys(),n=e.values();for(let a=0;a{"use strict";Object.defineProperty(csr,Symbol.toStringTag,{value:"Module"});function H_o(e){let t=new Array(e.size),r=e.values();for(let n=0;n{"use strict";Object.defineProperty(usr,Symbol.toStringTag,{value:"Module"});var Y_o=YK(),Q_o=asr(),X_o=lsr();function J_o(e){if(e==null)return[];if(e instanceof Set)return X_o.setToEntries(e);if(e instanceof Map)return Q_o.mapToEntries(e);let t=Y_o.keys(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(Asr,Symbol.toStringTag,{value:"Module"});var U_o=iX(),K_o=asr(),j_o=lsr();function z_o(e){if(e==null)return[];if(e instanceof Set)return j_o.setToEntries(e);if(e instanceof Map)return K_o.mapToEntries(e);let t=U_o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(psr,Symbol.toStringTag,{value:"Module"});var q_o=noe();function $_o(e){return q_o.isBuffer(e)}psr.isBuffer=$_o});var Isr=H(fsr=>{"use strict";Object.defineProperty(fsr,Symbol.toStringTag,{value:"Module"});var e0o=bm(),t0o=coe(),r0o=Nlt(),n0o=gut(),i0o=tM(),s0o=e$(),o0o=im();function a0o(e,t=e0o.identity,r){let n=Array.isArray(e)||n0o.isBuffer(e)||s0o.isTypedArray(e);return t=o0o.iteratee(t),r==null&&(n?r=[]:i0o.isObject(e)&&t0o.isFunction(e.constructor)?r=Object.create(Object.getPrototypeOf(e)):r={}),e==null||r0o.forEach(e,(a,o,l)=>t(r,a,o,l)),r}fsr.transform=a0o});var msr=H(hsr=>{"use strict";Object.defineProperty(hsr,Symbol.toStringTag,{value:"Module"});var c0o=XSe();function l0o(e,t,r){return c0o.updateWith(e,t,r,()=>{})}hsr.update=l0o});var _sr=H(Csr=>{"use strict";Object.defineProperty(Csr,Symbol.toStringTag,{value:"Module"});var u0o=iX();function g0o(e){let t=u0o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(ysr,Symbol.toStringTag,{value:"Module"});function A0o(e){return typeof e=="function"}ysr.isFunction=A0o});var Ssr=H(Esr=>{"use strict";Object.defineProperty(Esr,Symbol.toStringTag,{value:"Module"});function d0o(e){return Number.isSafeInteger(e)&&e>=0}Esr.isLength=d0o});var Bsr=H(vsr=>{"use strict";Object.defineProperty(vsr,Symbol.toStringTag,{value:"Module"});var zRn=Function.prototype.toString,p0o=/[\\^$.*+?()[\]{}|]/g,f0o=RegExp(`^${zRn.call(Object.prototype.hasOwnProperty).replace(p0o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")}$`);function I0o(e){if(typeof e!="function")return!1;if(globalThis?.["__core-js_shared__"]!=null)throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return f0o.test(zRn.call(e))}vsr.isNative=I0o});var Tsr=H(wsr=>{"use strict";Object.defineProperty(wsr,Symbol.toStringTag,{value:"Module"});function h0o(e){return e===null}wsr.isNull=h0o});var Nsr=H(Rsr=>{"use strict";Object.defineProperty(Rsr,Symbol.toStringTag,{value:"Module"});var m0o=uer();function C0o(e){return m0o.isUndefined(e)}Rsr.isUndefined=C0o});var Aut=H(Dsr=>{"use strict";Object.defineProperty(Dsr,Symbol.toStringTag,{value:"Module"});function _0o(e,t){if(t==null)return!0;if(e==null)return Object.keys(t).length===0;let r=Object.keys(t);for(let n=0;n{"use strict";Object.defineProperty(ksr,Symbol.toStringTag,{value:"Module"});var y0o=Aut(),b0o=izt();function E0o(e){return e=b0o.cloneDeep(e),function(t){return y0o.conformsTo(t,e)}}ksr.conforms=E0o});var qRn=H(Gsr=>{"use strict";Object.defineProperty(Gsr,Symbol.toStringTag,{value:"Module"});function S0o(e){return e instanceof ArrayBuffer}Gsr.isArrayBuffer=S0o});var Zsr=H(Fsr=>{"use strict";Object.defineProperty(Fsr,Symbol.toStringTag,{value:"Module"});var v0o=qRn();function B0o(e){return v0o.isArrayBuffer(e)}Fsr.isArrayBuffer=B0o});var Vsr=H(Lsr=>{"use strict";Object.defineProperty(Lsr,Symbol.toStringTag,{value:"Module"});function w0o(e){return typeof e=="boolean"||e instanceof Boolean}Lsr.isBoolean=w0o});var $Rn=H(Psr=>{"use strict";Object.defineProperty(Psr,Symbol.toStringTag,{value:"Module"});function T0o(e){return e instanceof Date}Psr.isDate=T0o});var Osr=H(Wsr=>{"use strict";Object.defineProperty(Wsr,Symbol.toStringTag,{value:"Module"});var R0o=$Rn();function N0o(e){return R0o.isDate(e)}Wsr.isDate=N0o});var Hsr=H(Msr=>{"use strict";Object.defineProperty(Msr,Symbol.toStringTag,{value:"Module"});var D0o=ioe(),k0o=Mfe();function x0o(e){return D0o.isObjectLike(e)&&e.nodeType===1&&!k0o.isPlainObject(e)}Msr.isElement=x0o});var Qsr=H(Ysr=>{"use strict";Object.defineProperty(Ysr,Symbol.toStringTag,{value:"Module"});var G0o=Vfe(),F0o=Sf(),Z0o=e$(),L0o=noe(),V0o=iut();function P0o(e){if(e==null)return!0;if(F0o.isArrayLike(e))return typeof e.splice!="function"&&typeof e!="string"&&!L0o.isBuffer(e)&&!Z0o.isTypedArray(e)&&!G0o.isArguments(e)?!1:e.length===0;if(typeof e=="object"){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return V0o.isPrototype(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}Ysr.isEmpty=P0o});var eNn=H(Xsr=>{"use strict";Object.defineProperty(Xsr,Symbol.toStringTag,{value:"Module"});function W0o(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let r=0;return(...n)=>{if(++r>=e)return t(...n)}}Xsr.after=W0o});var Ksr=H(Usr=>{"use strict";Object.defineProperty(Usr,Symbol.toStringTag,{value:"Module"});var tNn=eNn(),O0o=Rnr();function Jsr(e,t,r){return typeof r!="function"&&(r=()=>{}),O0o.isEqualWith(e,t,(...n)=>{let a=r(...n);if(a!==void 0)return!!a;if(e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set)return Jsr(Array.from(e),Array.from(t),tNn.after(2,r))})}Usr.isEqualWith=Jsr});var zsr=H(jsr=>{"use strict";Object.defineProperty(jsr,Symbol.toStringTag,{value:"Module"});var M0o=Zfe();function H0o(e){return M0o.getTag(e)==="[object Error]"}jsr.isError=H0o});var $sr=H(qsr=>{"use strict";Object.defineProperty(qsr,Symbol.toStringTag,{value:"Module"});function Y0o(e){return Number.isFinite(e)}qsr.isFinite=Y0o});var tor=H(eor=>{"use strict";Object.defineProperty(eor,Symbol.toStringTag,{value:"Module"});function Q0o(e){return Number.isInteger(e)}eor.isInteger=Q0o});var rNn=H(ror=>{"use strict";Object.defineProperty(ror,Symbol.toStringTag,{value:"Module"});function X0o(e){return e instanceof RegExp}ror.isRegExp=X0o});var ior=H(nor=>{"use strict";Object.defineProperty(nor,Symbol.toStringTag,{value:"Module"});var J0o=rNn();function U0o(e){return J0o.isRegExp(e)}nor.isRegExp=U0o});var oor=H(sor=>{"use strict";Object.defineProperty(sor,Symbol.toStringTag,{value:"Module"});function K0o(e){return Number.isSafeInteger(e)}sor.isSafeInteger=K0o});var nNn=H(aor=>{"use strict";Object.defineProperty(aor,Symbol.toStringTag,{value:"Module"});function j0o(e){return e instanceof Set}aor.isSet=j0o});var lor=H(cor=>{"use strict";Object.defineProperty(cor,Symbol.toStringTag,{value:"Module"});var z0o=nNn();function q0o(e){return z0o.isSet(e)}cor.isSet=q0o});var iNn=H(uor=>{"use strict";Object.defineProperty(uor,Symbol.toStringTag,{value:"Module"});function $0o(e){return e instanceof WeakMap}uor.isWeakMap=$0o});var Aor=H(gor=>{"use strict";Object.defineProperty(gor,Symbol.toStringTag,{value:"Module"});var eyo=iNn();function tyo(e){return eyo.isWeakMap(e)}gor.isWeakMap=tyo});var sNn=H(dor=>{"use strict";Object.defineProperty(dor,Symbol.toStringTag,{value:"Module"});function ryo(e){return e instanceof WeakSet}dor.isWeakSet=ryo});var Ior=H(por=>{"use strict";Object.defineProperty(por,Symbol.toStringTag,{value:"Module"});var nyo=sNn();function iyo(e){return nyo.isWeakSet(e)}por.isWeakSet=iyo});var mor=H(hor=>{"use strict";Object.defineProperty(hor,Symbol.toStringTag,{value:"Module"});function syo(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}hor.capitalize=syo});var _or=H(Cor=>{"use strict";Object.defineProperty(Cor,Symbol.toStringTag,{value:"Module"});var oyo=mor(),ayo=qy();function cyo(e){return oyo.capitalize(ayo.toString(e))}Cor.capitalize=cyo});var bor=H(yor=>{"use strict";Object.defineProperty(yor,Symbol.toStringTag,{value:"Module"});var lyo=coe(),oNn=$q(),uyo=tM(),gyo=qy();function Ayo(e,...t){if(e==null||!uyo.isObject(e)||oNn.isArray(e)&&t.length===0)return e;let r=[];for(let n=0;n{"use strict";Object.defineProperty(Eor,Symbol.toStringTag,{value:"Module"});var dyo=new Map([["\xC6","Ae"],["\xD0","D"],["\xD8","O"],["\xDE","Th"],["\xDF","ss"],["\xE6","ae"],["\xF0","d"],["\xF8","o"],["\xFE","th"],["\u0110","D"],["\u0111","d"],["\u0126","H"],["\u0127","h"],["\u0131","i"],["\u0132","IJ"],["\u0133","ij"],["\u0138","k"],["\u013F","L"],["\u0140","l"],["\u0141","L"],["\u0142","l"],["\u0149","'n"],["\u014A","N"],["\u014B","n"],["\u0152","Oe"],["\u0153","oe"],["\u0166","T"],["\u0167","t"],["\u017F","s"]]);function pyo(e){e=e.normalize("NFD");let t="";for(let r=0;r="\u0300"&&n<="\u036F"||n>="\uFE20"&&n<="\uFE23"||(t+=dyo.get(n)??n)}return t}Eor.deburr=pyo});var t$=H(Sor=>{"use strict";Object.defineProperty(Sor,Symbol.toStringTag,{value:"Module"});var fyo=aNn(),Iyo=qy();function hyo(e){return fyo.deburr(Iyo.toString(e))}Sor.deburr=hyo});var Hfe=H(dut=>{"use strict";Object.defineProperty(dut,Symbol.toStringTag,{value:"Module"});var cNn=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function myo(e){return Array.from(e.match(cNn)??[])}dut.CASE_SPLIT_PATTERN=cNn;dut.words=myo});var lNn=H(vor=>{"use strict";Object.defineProperty(vor,Symbol.toStringTag,{value:"Module"});var Cyo=mor(),_yo=Hfe();function yyo(e){let t=_yo.words(e);if(t.length===0)return"";let[r,...n]=t;return`${r.toLowerCase()}${n.map(a=>Cyo.capitalize(a)).join("")}`}vor.camelCase=yyo});var Yfe=H(Bor=>{"use strict";Object.defineProperty(Bor,Symbol.toStringTag,{value:"Module"});var byo=qy();function Eyo(e){return typeof e!="string"&&(e=byo.toString(e)),e.replace(/['\u2019]/g,"")}Bor.normalizeForCase=Eyo});var Tor=H(wor=>{"use strict";Object.defineProperty(wor,Symbol.toStringTag,{value:"Module"});var Syo=t$(),vyo=lNn(),Byo=Yfe();function wyo(e){return vyo.camelCase(Byo.normalizeForCase(Syo.deburr(e)))}wor.camelCase=wyo});var Nor=H(Ror=>{"use strict";Object.defineProperty(Ror,Symbol.toStringTag,{value:"Module"});function Tyo(e,t,r){return e==null||t==null?!1:(r==null&&(r=e.length),e.endsWith(t,r))}Ror.endsWith=Tyo});var uNn=H(Dor=>{"use strict";Object.defineProperty(Dor,Symbol.toStringTag,{value:"Module"});var Ryo={"&":"&","<":"<",">":">",'"':""","'":"'"};function Nyo(e){return e.replace(/[&<>"']/g,t=>Ryo[t])}Dor.escape=Nyo});var put=H(kor=>{"use strict";Object.defineProperty(kor,Symbol.toStringTag,{value:"Module"});var Dyo=uNn(),kyo=qy();function xyo(e){return Dyo.escape(kyo.toString(e))}kor.escape=xyo});var gNn=H(xor=>{"use strict";Object.defineProperty(xor,Symbol.toStringTag,{value:"Module"});function Gyo(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}xor.escapeRegExp=Gyo});var For=H(Gor=>{"use strict";Object.defineProperty(Gor,Symbol.toStringTag,{value:"Module"});var Fyo=gNn(),Zyo=qy();function Lyo(e){return Fyo.escapeRegExp(Zyo.toString(e))}Gor.escapeRegExp=Lyo});var ANn=H(Zor=>{"use strict";Object.defineProperty(Zor,Symbol.toStringTag,{value:"Module"});var Vyo=Hfe();function Pyo(e){return Vyo.words(e).map(r=>r.toLowerCase()).join("-")}Zor.kebabCase=Pyo});var Vor=H(Lor=>{"use strict";Object.defineProperty(Lor,Symbol.toStringTag,{value:"Module"});var Wyo=t$(),Oyo=ANn(),Myo=Yfe();function Hyo(e){return Oyo.kebabCase(Myo.normalizeForCase(Wyo.deburr(e)))}Lor.kebabCase=Hyo});var dNn=H(Por=>{"use strict";Object.defineProperty(Por,Symbol.toStringTag,{value:"Module"});var Yyo=Hfe();function Qyo(e){return Yyo.words(e).map(r=>r.toLowerCase()).join(" ")}Por.lowerCase=Qyo});var Oor=H(Wor=>{"use strict";Object.defineProperty(Wor,Symbol.toStringTag,{value:"Module"});var Xyo=t$(),Jyo=dNn(),Uyo=Yfe();function Kyo(e){return Jyo.lowerCase(Uyo.normalizeForCase(Xyo.deburr(e)))}Wor.lowerCase=Kyo});var pNn=H(Mor=>{"use strict";Object.defineProperty(Mor,Symbol.toStringTag,{value:"Module"});function jyo(e){return e.substring(0,1).toLowerCase()+e.substring(1)}Mor.lowerFirst=jyo});var Yor=H(Hor=>{"use strict";Object.defineProperty(Hor,Symbol.toStringTag,{value:"Module"});var zyo=pNn(),qyo=qy();function $yo(e){return zyo.lowerFirst(qyo.toString(e))}Hor.lowerFirst=$yo});var fNn=H(Qor=>{"use strict";Object.defineProperty(Qor,Symbol.toStringTag,{value:"Module"});function ebo(e,t,r=" "){return e.padStart(Math.floor((t-e.length)/2)+e.length,r).padEnd(t,r)}Qor.pad=ebo});var Jor=H(Xor=>{"use strict";Object.defineProperty(Xor,Symbol.toStringTag,{value:"Module"});var tbo=fNn(),rbo=qy();function nbo(e,t,r){return tbo.pad(rbo.toString(e),t,r)}Xor.pad=nbo});var Kor=H(Uor=>{"use strict";Object.defineProperty(Uor,Symbol.toStringTag,{value:"Module"});var ibo=qy();function sbo(e,t=0,r=" "){return ibo.toString(e).padEnd(t,r)}Uor.padEnd=sbo});var zor=H(jor=>{"use strict";Object.defineProperty(jor,Symbol.toStringTag,{value:"Module"});var obo=qy();function abo(e,t=0,r=" "){return obo.toString(e).padStart(t,r)}jor.padStart=abo});var $or=H(qor=>{"use strict";Object.defineProperty(qor,Symbol.toStringTag,{value:"Module"});var cbo=Number.MAX_SAFE_INTEGER;qor.MAX_SAFE_INTEGER=cbo});var tar=H(ear=>{"use strict";Object.defineProperty(ear,Symbol.toStringTag,{value:"Module"});var lbo=qq(),ubo=$or(),gbo=$w(),Abo=qy();function dbo(e,t,r){return(r?lbo.isIterateeCall(e,t,r):t===void 0)?t=1:t=gbo.toInteger(t),t<1||t>ubo.MAX_SAFE_INTEGER?"":Abo.toString(e).repeat(t)}ear.repeat=dbo});var nar=H(rar=>{"use strict";Object.defineProperty(rar,Symbol.toStringTag,{value:"Module"});var INn=qy();function pbo(e,t,r){return arguments.length<3?INn.toString(e):INn.toString(e).replace(t,r)}rar.replace=pbo});var hNn=H(iar=>{"use strict";Object.defineProperty(iar,Symbol.toStringTag,{value:"Module"});var fbo=Hfe();function Ibo(e){return fbo.words(e).map(r=>r.toLowerCase()).join("_")}iar.snakeCase=Ibo});var oar=H(sar=>{"use strict";Object.defineProperty(sar,Symbol.toStringTag,{value:"Module"});var hbo=t$(),mbo=hNn(),Cbo=Yfe();function _bo(e){return mbo.snakeCase(Cbo.normalizeForCase(hbo.deburr(e)))}sar.snakeCase=_bo});var car=H(aar=>{"use strict";Object.defineProperty(aar,Symbol.toStringTag,{value:"Module"});var ybo=qy();function bbo(e,t,r){return ybo.toString(e).split(t,r)}aar.split=bbo});var uar=H(lar=>{"use strict";Object.defineProperty(lar,Symbol.toStringTag,{value:"Module"});var Ebo=t$(),Sbo=Hfe(),vbo=Yfe();function Bbo(e){let t=Sbo.words(vbo.normalizeForCase(Ebo.deburr(e)).trim()),r="";for(let n=0;n{"use strict";Object.defineProperty(gar,Symbol.toStringTag,{value:"Module"});function wbo(e,t,r){return e==null||t==null?!1:(r==null&&(r=0),e.startsWith(t,r))}gar.startsWith=wbo});var dar=H(hut=>{"use strict";Object.defineProperty(hut,Symbol.toStringTag,{value:"Module"});var Tbo=put(),Rbo=zlt(),mNn=Y3e(),Nbo=qy(),Dbo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,kbo=/['\n\r\u2028\u2029\\]/g,fut=/($^)/,xbo=new Map([["\\","\\"],["'","'"],[` +`,a)}while(n!==-1);return o+=e.substr(a),o};NBn.exports={stringReplaceAll:jno,stringEncaseCRLFWithFirstIndex:zno}});var ZBn=H((bMl,FBn)=>{"use strict";var qno=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,kBn=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,$no=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,eio=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,tio=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GBn(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):tio.get(e)||e}function rio(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n){let l=Number(o);if(!Number.isNaN(l))r.push(l);else if(a=o.match($no))r.push(a[2].replace(eio,(A,f,I)=>f?GBn(f):I));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function nio(e){kBn.lastIndex=0;let t=[],r;for(;(r=kBn.exec(e))!==null;){let n=r[1];if(r[2]){let a=rio(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function xBn(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let[a,o]of Object.entries(r))if(Array.isArray(o)){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);n=o.length>0?n[a](...o):n[a]}return n}FBn.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(qno,(o,l,A,f,I,C)=>{if(l)a.push(GBn(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:xBn(e,r)(b)),r.push({inverse:A,styles:nio(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(xBn(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var VK=H((EMl,MBn)=>{"use strict";var d3e=ult(),{stdout:r7t,stderr:n7t}=e7t(),{stringReplaceAll:iio,stringEncaseCRLFWithFirstIndex:sio}=DBn(),{isArray:glt}=Array,VBn=["ansi","ansi","ansi256","ansi16m"],FSe=Object.create(null),oio=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=r7t?r7t.level:0;e.level=t.level===void 0?r:t.level},i7t=class{constructor(t){return PBn(t)}},PBn=e=>{let t={};return oio(t,e),t.template=(...r)=>OBn(t.template,...r),Object.setPrototypeOf(t,Alt.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=i7t,t.template};function Alt(e){return PBn(e)}for(let[e,t]of Object.entries(d3e))FSe[e]={get(){let r=dlt(this,s7t(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};FSe.visible={get(){let e=dlt(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var WBn=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of WBn)FSe[e]={get(){let{level:t}=this;return function(...r){let n=s7t(d3e.color[VBn[t]][e](...r),d3e.color.close,this._styler);return dlt(this,n,this._isEmpty)}}};for(let e of WBn){let t="bg"+e[0].toUpperCase()+e.slice(1);FSe[t]={get(){let{level:r}=this;return function(...n){let a=s7t(d3e.bgColor[VBn[r]][e](...n),d3e.bgColor.close,this._styler);return dlt(this,a,this._isEmpty)}}}}var aio=Object.defineProperties(()=>{},{...FSe,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),s7t=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},dlt=(e,t,r)=>{let n=(...a)=>glt(a[0])&&glt(a[0].raw)?LBn(n,OBn(n,...a)):LBn(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,aio),n._generator=e,n._styler=t,n._isEmpty=r,n},LBn=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=iio(t,r.close,r.open),r=r.parent;let o=t.indexOf(` +`);return o!==-1&&(t=sio(t,a,n,o)),n+t+a},t7t,OBn=(e,...t)=>{let[r]=t;if(!glt(r)||!glt(r.raw))return t.join(" ");let n=t.slice(1),a=[r.raw[0]];for(let o=1;o{"use strict";z5.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;z5.find=(e,t)=>e.nodes.find(r=>r.type===t);z5.exceedsLimit=(e,t,r=1,n)=>n===!1||!z5.isInteger(e)||!z5.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;z5.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};z5.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);z5.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;z5.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;z5.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);z5.flatten=(...e)=>{let t=[],r=n=>{for(let a=0;a{"use strict";var HBn=flt();YBn.exports=(e,t={})=>{let r=(n,a={})=>{let o=t.escapeInvalid&&HBn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A="";if(n.value)return(o||l)&&HBn.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let f of n.nodes)A+=r(f);return A};return r(e)}});var XBn=H((BMl,QBn)=>{"use strict";QBn.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var twn=H((wMl,ewn)=>{"use strict";var JBn=XBn(),Gfe=(e,t,r)=>{if(JBn(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(JBn(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let a=String(n.relaxZeros),o=String(n.shorthand),l=String(n.capture),A=String(n.wrap),f=e+":"+t+"="+a+o+l+A;if(Gfe.cache.hasOwnProperty(f))return Gfe.cache[f].result;let I=Math.min(e,t),C=Math.max(e,t);if(Math.abs(I-C)===1){let F=e+"|"+t;return n.capture?`(${F})`:n.wrap===!1?F:`(?:${F})`}let b=$Bn(e)||$Bn(t),E={min:e,max:t,a:I,b:C},N=[],B=[];if(b&&(E.isPadded=b,E.maxLen=String(E.max).length),I<0){let F=C<0?Math.abs(C):1;B=UBn(F,Math.abs(I),E,n),I=E.a=0}return C>=0&&(N=UBn(I,C,E,n)),E.negatives=B,E.positives=N,E.result=cio(B,N,n),n.capture===!0?E.result=`(${E.result})`:n.wrap!==!1&&N.length+B.length>1&&(E.result=`(?:${E.result})`),Gfe.cache[f]=E,E.result};function cio(e,t,r){let n=o7t(e,t,"-",!1,r)||[],a=o7t(t,e,"",!1,r)||[],o=o7t(e,t,"-?",!0,r)||[];return n.concat(o).concat(a).join("|")}function lio(e,t){let r=1,n=1,a=jBn(e,r),o=new Set([t]);for(;e<=a&&a<=t;)o.add(a),r+=1,a=jBn(e,r);for(a=zBn(t+1,n)-1;e1&&A.count.pop(),A.count.push(C.count[0]),A.string=A.pattern+qBn(A.count),l=I+1;continue}r.isPadded&&(b=pio(I,r,n)),C.string=b+C.pattern+qBn(C.count),o.push(C),l=I+1,A=C}return o}function o7t(e,t,r,n,a){let o=[];for(let l of e){let{string:A}=l;!n&&!KBn(t,"string",A)&&o.push(r+A),n&&KBn(t,"string",A)&&o.push(r+A)}return o}function gio(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function KBn(e,t,r){return e.some(n=>n[t]===r)}function jBn(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function zBn(e,t){return e-e%Math.pow(10,t)}function qBn(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function dio(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function $Bn(e){return/^-?(0+)\d/.test(e)}function pio(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),a=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${n}}`:`0{${n}}`}}Gfe.cache={};Gfe.clearCache=()=>Gfe.cache={};ewn.exports=Gfe});var l7t=H((TMl,cwn)=>{"use strict";var fio=wt("util"),nwn=twn(),rwn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Iio=e=>t=>e===!0?Number(t):String(t),a7t=e=>typeof e=="number"||typeof e=="string"&&e!=="",p3e=e=>Number.isInteger(+e),c7t=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},hio=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,mio=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},mlt=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((A,f)=>Af?1:0),e.positives.sort((A,f)=>Af?1:0);let n=t.capture?"":"?:",a="",o="",l;return e.positives.length&&(a=e.positives.map(A=>mlt(String(A),r)).join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.map(A=>mlt(String(A),r)).join("|")})`),a&&o?l=`${a}|${o}`:l=a||o,t.wrap?`(${n}${l})`:l},iwn=(e,t,r,n)=>{if(r)return nwn(e,t,{wrap:!1,...n});let a=String.fromCharCode(e);if(e===t)return a;let o=String.fromCharCode(t);return`[${a}-${o}]`},swn=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,a=r.capture?"":"?:";return n?`(${a}${e.join("|")})`:e.join("|")}return nwn(e,t,r)},own=(...e)=>new RangeError("Invalid range arguments: "+fio.inspect(...e)),awn=(e,t,r)=>{if(r.strictRanges===!0)throw own([e,t]);return[]},_io=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},yio=(e,t,r=1,n={})=>{let a=Number(e),o=Number(t);if(!Number.isInteger(a)||!Number.isInteger(o)){if(n.strictRanges===!0)throw own([e,t]);return[]}a===0&&(a=0),o===0&&(o=0);let l=a>o,A=String(e),f=String(t),I=String(r);r=Math.max(Math.abs(r),1);let C=c7t(A)||c7t(f)||c7t(I),b=C?Math.max(A.length,f.length,I.length):0,E=C===!1&&hio(e,t,n)===!1,N=n.transform||Iio(E);if(n.toRegex&&r===1)return iwn(mlt(e,b),mlt(t,b),!0,n);let B={negatives:[],positives:[]},F=ae=>B[ae<0?"negatives":"positives"].push(Math.abs(ae)),Q=[],X=0;for(;l?a>=o:a<=o;)n.toRegex===!0&&r>1?F(a):Q.push(mio(N(a,X),b,E)),a=l?a-r:a+r,X++;return n.toRegex===!0?r>1?Cio(B,n,b):swn(Q,null,{wrap:!1,...n}):Q},bio=(e,t,r=1,n={})=>{if(!p3e(e)&&e.length>1||!p3e(t)&&t.length>1)return awn(e,t,n);let a=n.transform||(E=>String.fromCharCode(E)),o=`${e}`.charCodeAt(0),l=`${t}`.charCodeAt(0),A=o>l,f=Math.min(o,l),I=Math.max(o,l);if(n.toRegex&&r===1)return iwn(f,I,!1,n);let C=[],b=0;for(;A?o>=l:o<=l;)C.push(a(o,b)),o=A?o-r:o+r,b++;return n.toRegex===!0?swn(C,null,{wrap:!1,options:n}):C},hlt=(e,t,r,n={})=>{if(t==null&&a7t(e))return[e];if(!a7t(e)||!a7t(t))return awn(e,t,n);if(typeof r=="function")return hlt(e,t,1,{transform:r});if(rwn(r))return hlt(e,t,0,r);let a={...n};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,p3e(r)?p3e(e)&&p3e(t)?yio(e,t,r,a):bio(e,t,Math.max(Math.abs(r),1),a):r!=null&&!rwn(r)?_io(r,a):hlt(e,t,1,r)};cwn.exports=hlt});var gwn=H((RMl,uwn)=>{"use strict";var Eio=l7t(),lwn=flt(),Sio=(e,t={})=>{let r=(n,a={})=>{let o=lwn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A=o===!0||l===!0,f=t.escapeInvalid===!0?"\\":"",I="";if(n.isOpen===!0)return f+n.value;if(n.isClose===!0)return console.log("node.isClose",f,n.value),f+n.value;if(n.type==="open")return A?f+n.value:"(";if(n.type==="close")return A?f+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":A?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let C=lwn.reduce(n.nodes),b=Eio(...C,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(b.length!==0)return C.length>1&&b.length>1?`(${b})`:b}if(n.nodes)for(let C of n.nodes)I+=r(C,n);return I};return r(e)};uwn.exports=Sio});var pwn=H((NMl,dwn)=>{"use strict";var vio=l7t(),Awn=Ilt(),ZSe=flt(),Ffe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?ZSe.flatten(t).map(a=>`{${a}}`):t;for(let a of e)if(Array.isArray(a))for(let o of a)n.push(Ffe(o,t,r));else for(let o of t)r===!0&&typeof o=="string"&&(o=`{${o}}`),n.push(Array.isArray(o)?Ffe(a,o,r):a+o);return ZSe.flatten(n)},Bio=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(a,o={})=>{a.queue=[];let l=o,A=o.queue;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,A=l.queue;if(a.invalid||a.dollar){A.push(Ffe(A.pop(),Awn(a,t)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(Ffe(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let b=ZSe.reduce(a.nodes);if(ZSe.exceedsLimit(...b,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let E=vio(...b,t);E.length===0&&(E=Awn(a,t)),A.push(Ffe(A.pop(),E)),a.nodes=[];return}let f=ZSe.encloseBrace(a),I=a.queue,C=a;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,I=C.queue;for(let b=0;b{"use strict";fwn.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var ywn=H((kMl,_wn)=>{"use strict";var wio=Ilt(),{MAX_LENGTH:hwn,CHAR_BACKSLASH:u7t,CHAR_BACKTICK:Tio,CHAR_COMMA:Rio,CHAR_DOT:Nio,CHAR_LEFT_PARENTHESES:Dio,CHAR_RIGHT_PARENTHESES:kio,CHAR_LEFT_CURLY_BRACE:xio,CHAR_RIGHT_CURLY_BRACE:Gio,CHAR_LEFT_SQUARE_BRACKET:mwn,CHAR_RIGHT_SQUARE_BRACKET:Cwn,CHAR_DOUBLE_QUOTE:Fio,CHAR_SINGLE_QUOTE:Zio,CHAR_NO_BREAK_SPACE:Lio,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Vio}=Iwn(),Pio=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(hwn,r.maxLength):hwn;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let a={type:"root",input:e,nodes:[]},o=[a],l=a,A=a,f=0,I=e.length,C=0,b=0,E,N=()=>e[C++],B=F=>{if(F.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&F.type==="text"){A.value+=F.value;return}return l.nodes.push(F),F.parent=l,F.prev=A,A=F,F};for(B({type:"bos"});C0){if(l.ranges>0){l.ranges=0;let F=l.nodes.shift();l.nodes=[F,{type:"text",value:wio(l)}]}B({type:"comma",value:E}),l.commas++;continue}if(E===Nio&&b>0&&l.commas===0){let F=l.nodes;if(b===0||F.length===0){B({type:"text",value:E});continue}if(A.type==="dot"){if(l.range=[],A.value+=E,A.type="range",l.nodes.length!==3&&l.nodes.length!==5){l.invalid=!0,l.ranges=0,A.type="text";continue}l.ranges++,l.args=[];continue}if(A.type==="range"){F.pop();let Q=F[F.length-1];Q.value+=A.value+E,A=Q,l.ranges--;continue}B({type:"dot",value:E});continue}B({type:"text",value:E})}do if(l=o.pop(),l.type!=="root"){l.nodes.forEach(X=>{X.nodes||(X.type==="open"&&(X.isOpen=!0),X.type==="close"&&(X.isClose=!0),X.nodes||(X.type="text"),X.invalid=!0)});let F=o[o.length-1],Q=F.nodes.indexOf(l);F.nodes.splice(Q,1,...l.nodes)}while(o.length>0);return B({type:"eos"}),a};_wn.exports=Pio});var Swn=H((xMl,Ewn)=>{"use strict";var bwn=Ilt(),Wio=gwn(),Oio=pwn(),Mio=ywn(),NW=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let a=NW.create(n,t);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(NW.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};NW.parse=(e,t={})=>Mio(e,t);NW.stringify=(e,t={})=>bwn(typeof e=="string"?NW.parse(e,t):e,t);NW.compile=(e,t={})=>(typeof e=="string"&&(e=NW.parse(e,t)),Wio(e,t));NW.expand=(e,t={})=>{typeof e=="string"&&(e=NW.parse(e,t));let r=Oio(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};NW.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?NW.compile(e,t):NW.expand(e,t);Ewn.exports=NW});var f3e=H((GMl,Rwn)=>{"use strict";var Hio=wt("path"),PK="\\\\/",vwn=`[^${PK}]`,Uq="\\.",Yio="\\+",Qio="\\?",Clt="\\/",Xio="(?=.)",Bwn="[^/]",g7t=`(?:${Clt}|$)`,wwn=`(?:^|${Clt})`,A7t=`${Uq}{1,2}${g7t}`,Jio=`(?!${Uq})`,Uio=`(?!${wwn}${A7t})`,Kio=`(?!${Uq}{0,1}${g7t})`,jio=`(?!${A7t})`,zio=`[^.${Clt}]`,qio=`${Bwn}*?`,Twn={DOT_LITERAL:Uq,PLUS_LITERAL:Yio,QMARK_LITERAL:Qio,SLASH_LITERAL:Clt,ONE_CHAR:Xio,QMARK:Bwn,END_ANCHOR:g7t,DOTS_SLASH:A7t,NO_DOT:Jio,NO_DOTS:Uio,NO_DOT_SLASH:Kio,NO_DOTS_SLASH:jio,QMARK_NO_DOT:zio,STAR:qio,START_ANCHOR:wwn},$io={...Twn,SLASH_LITERAL:`[${PK}]`,QMARK:vwn,STAR:`${vwn}*?`,DOTS_SLASH:`${Uq}{1,2}(?:[${PK}]|$)`,NO_DOT:`(?!${Uq})`,NO_DOTS:`(?!(?:^|[${PK}])${Uq}{1,2}(?:[${PK}]|$))`,NO_DOT_SLASH:`(?!${Uq}{0,1}(?:[${PK}]|$))`,NO_DOTS_SLASH:`(?!${Uq}{1,2}(?:[${PK}]|$))`,QMARK_NO_DOT:`[^.${PK}]`,START_ANCHOR:`(?:^|[${PK}])`,END_ANCHOR:`(?:[${PK}]|$)`},eso={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Rwn.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:eso,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Hio.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?$io:Twn}}});var I3e=H(Y9=>{"use strict";var tso=wt("path"),rso=process.platform==="win32",{REGEX_BACKSLASH:nso,REGEX_REMOVE_BACKSLASH:iso,REGEX_SPECIAL_CHARS:sso,REGEX_SPECIAL_CHARS_GLOBAL:oso}=f3e();Y9.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Y9.hasRegexChars=e=>sso.test(e);Y9.isRegexChar=e=>e.length===1&&Y9.hasRegexChars(e);Y9.escapeRegex=e=>e.replace(oso,"\\$1");Y9.toPosixSlashes=e=>e.replace(nso,"/");Y9.removeBackslashes=e=>e.replace(iso,t=>t==="\\"?"":t);Y9.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Y9.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:rso===!0||tso.sep==="\\";Y9.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Y9.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Y9.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Y9.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o}});var Lwn=H((ZMl,Zwn)=>{"use strict";var Nwn=I3e(),{CHAR_ASTERISK:d7t,CHAR_AT:aso,CHAR_BACKWARD_SLASH:h3e,CHAR_COMMA:cso,CHAR_DOT:p7t,CHAR_EXCLAMATION_MARK:f7t,CHAR_FORWARD_SLASH:Fwn,CHAR_LEFT_CURLY_BRACE:I7t,CHAR_LEFT_PARENTHESES:h7t,CHAR_LEFT_SQUARE_BRACKET:lso,CHAR_PLUS:uso,CHAR_QUESTION_MARK:Dwn,CHAR_RIGHT_CURLY_BRACE:gso,CHAR_RIGHT_PARENTHESES:kwn,CHAR_RIGHT_SQUARE_BRACKET:Aso}=f3e(),xwn=e=>e===Fwn||e===h3e,Gwn=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},dso=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&xwn(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Nwn.removeBackslashes(je)),ct&&ae===!0&&(ct=Nwn.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,xwn(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var _lt=f3e(),DW=I3e(),{MAX_LENGTH:ylt,POSIX_REGEX_SOURCE:pso,REGEX_NON_SPECIAL_CHARS:fso,REGEX_SPECIAL_CHARS_BACKREF:Iso,REPLACEMENTS:Vwn}=_lt,hso=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>DW.escapeRegex(a)).join("..")}return r},LSe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,m7t=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Vwn[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=DW.isWindows(t),I=_lt.globChars(f),C=_lt.extglobChars(I),{DOT_LITERAL:b,PLUS_LITERAL:E,SLASH_LITERAL:N,ONE_CHAR:B,DOTS_SLASH:F,NO_DOT:Q,NO_DOT_SLASH:X,NO_DOTS_SLASH:ae,QMARK:ne,QMARK_NO_DOT:ce,STAR:fe,START_ANCHOR:ue}=I,de=Ar=>`(${A}(?:(?!${ue}${Ar.dot?F:b}).)*?)`,be=r.dot?"":Q,Se=r.dot?ne:ce,De=r.bash===!0?de(r):fe;r.capture&&(De=`(${De})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let k={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=DW.removePrefix(e,k),a=e.length;let et=[],ct=[],Me=[],je=o,St,At=()=>k.index===a-1,Yt=k.peek=(Ar=1)=>e[k.index+Ar],Tr=k.advance=()=>e[++k.index]||"",Nr=()=>e.slice(k.index+1),er=(Ar="",qr=0)=>{k.consumed+=Ar,k.index+=qr},vt=Ar=>{k.output+=Ar.output!=null?Ar.output:Ar.value,er(Ar.value)},xt=()=>{let Ar=1;for(;Yt()==="!"&&(Yt(2)!=="("||Yt(3)==="?");)Tr(),k.start++,Ar++;return Ar%2===0?!1:(k.negated=!0,k.start++,!0)},Zr=Ar=>{k[Ar]++,Me.push(Ar)},qt=Ar=>{k[Ar]--,Me.pop()},Xt=Ar=>{if(je.type==="globstar"){let qr=k.braces>0&&(Ar.type==="comma"||Ar.type==="brace"),_n=Ar.extglob===!0||et.length&&(Ar.type==="pipe"||Ar.type==="paren");Ar.type!=="slash"&&Ar.type!=="paren"&&!qr&&!_n&&(k.output=k.output.slice(0,-je.output.length),je.type="star",je.value="*",je.output=De,k.output+=je.output)}if(et.length&&Ar.type!=="paren"&&(et[et.length-1].inner+=Ar.value),(Ar.value||Ar.output)&&vt(Ar),je&&je.type==="text"&&Ar.type==="text"){je.value+=Ar.value,je.output=(je.output||"")+Ar.value;return}Ar.prev=je,l.push(Ar),je=Ar},lr=(Ar,qr)=>{let _n={...C[qr],conditions:1,inner:""};_n.prev=je,_n.parens=k.parens,_n.output=k.output;let ke=(r.capture?"(":"")+_n.open;Zr("parens"),Xt({type:Ar,value:qr,output:k.output?"":B}),Xt({type:"paren",extglob:!0,value:Tr(),output:ke}),et.push(_n)},cr=Ar=>{let qr=Ar.close+(r.capture?")":""),_n;if(Ar.type==="negate"){let ke=De;if(Ar.inner&&Ar.inner.length>1&&Ar.inner.includes("/")&&(ke=de(r)),(ke!==De||At()||/^\)+$/.test(Nr()))&&(qr=Ar.close=`)$))${ke}`),Ar.inner.includes("*")&&(_n=Nr())&&/^\.[^\\/.]+$/.test(_n)){let jt=m7t(_n,{...t,fastpaths:!1}).output;qr=Ar.close=`)${jt})${ke})`}Ar.prev.type==="bos"&&(k.negatedExtglob=!0)}Xt({type:"paren",extglob:!0,value:St,output:qr}),qt("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let Ar=!1,qr=e.replace(Iso,(_n,ke,jt,Fn,Nn,Hi)=>Fn==="\\"?(Ar=!0,_n):Fn==="?"?ke?ke+Fn+(Nn?ne.repeat(Nn.length):""):Hi===0?Se+(Nn?ne.repeat(Nn.length):""):ne.repeat(jt.length):Fn==="."?b.repeat(jt.length):Fn==="*"?ke?ke+Fn+(Nn?De:""):De:ke?_n:`\\${_n}`);return Ar===!0&&(r.unescape===!0?qr=qr.replace(/\\/g,""):qr=qr.replace(/\\+/g,_n=>_n.length%2===0?"\\\\":_n?"\\":"")),qr===e&&r.contains===!0?(k.output=e,k):(k.output=DW.wrapOutput(qr,k,t),k)}for(;!At();){if(St=Tr(),St==="\0")continue;if(St==="\\"){let _n=Yt();if(_n==="/"&&r.bash!==!0||_n==="."||_n===";")continue;if(!_n){St+="\\",Xt({type:"text",value:St});continue}let ke=/^\\+/.exec(Nr()),jt=0;if(ke&&ke[0].length>2&&(jt=ke[0].length,k.index+=jt,jt%2!==0&&(St+="\\")),r.unescape===!0?St=Tr():St+=Tr(),k.brackets===0){Xt({type:"text",value:St});continue}}if(k.brackets>0&&(St!=="]"||je.value==="["||je.value==="[^")){if(r.posix!==!1&&St===":"){let _n=je.value.slice(1);if(_n.includes("[")&&(je.posix=!0,_n.includes(":"))){let ke=je.value.lastIndexOf("["),jt=je.value.slice(0,ke),Fn=je.value.slice(ke+2),Nn=pso[Fn];if(Nn){je.value=jt+Nn,k.backtrack=!0,Tr(),!o.output&&l.indexOf(je)===1&&(o.output=B);continue}}}(St==="["&&Yt()!==":"||St==="-"&&Yt()==="]")&&(St=`\\${St}`),St==="]"&&(je.value==="["||je.value==="[^")&&(St=`\\${St}`),r.posix===!0&&St==="!"&&je.value==="["&&(St="^"),je.value+=St,vt({value:St});continue}if(k.quotes===1&&St!=='"'){St=DW.escapeRegex(St),je.value+=St,vt({value:St});continue}if(St==='"'){k.quotes=k.quotes===1?0:1,r.keepQuotes===!0&&Xt({type:"text",value:St});continue}if(St==="("){Zr("parens"),Xt({type:"paren",value:St});continue}if(St===")"){if(k.parens===0&&r.strictBrackets===!0)throw new SyntaxError(LSe("opening","("));let _n=et[et.length-1];if(_n&&k.parens===_n.parens+1){cr(et.pop());continue}Xt({type:"paren",value:St,output:k.parens?")":"\\)"}),qt("parens");continue}if(St==="["){if(r.nobracket===!0||!Nr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));St=`\\${St}`}else Zr("brackets");Xt({type:"bracket",value:St});continue}if(St==="]"){if(r.nobracket===!0||je&&je.type==="bracket"&&je.value.length===1){Xt({type:"text",value:St,output:`\\${St}`});continue}if(k.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(LSe("opening","["));Xt({type:"text",value:St,output:`\\${St}`});continue}qt("brackets");let _n=je.value.slice(1);if(je.posix!==!0&&_n[0]==="^"&&!_n.includes("/")&&(St=`/${St}`),je.value+=St,vt({value:St}),r.literalBrackets===!1||DW.hasRegexChars(_n))continue;let ke=DW.escapeRegex(je.value);if(k.output=k.output.slice(0,-je.value.length),r.literalBrackets===!0){k.output+=ke,je.value=ke;continue}je.value=`(${A}${ke}|${je.value})`,k.output+=je.value;continue}if(St==="{"&&r.nobrace!==!0){Zr("braces");let _n={type:"brace",value:St,output:"(",outputIndex:k.output.length,tokensIndex:k.tokens.length};ct.push(_n),Xt(_n);continue}if(St==="}"){let _n=ct[ct.length-1];if(r.nobrace===!0||!_n){Xt({type:"text",value:St,output:St});continue}let ke=")";if(_n.dots===!0){let jt=l.slice(),Fn=[];for(let Nn=jt.length-1;Nn>=0&&(l.pop(),jt[Nn].type!=="brace");Nn--)jt[Nn].type!=="dots"&&Fn.unshift(jt[Nn].value);ke=hso(Fn,r),k.backtrack=!0}if(_n.comma!==!0&&_n.dots!==!0){let jt=k.output.slice(0,_n.outputIndex),Fn=k.tokens.slice(_n.tokensIndex);_n.value=_n.output="\\{",St=ke="\\}",k.output=jt;for(let Nn of Fn)k.output+=Nn.output||Nn.value}Xt({type:"brace",value:St,output:ke}),qt("braces"),ct.pop();continue}if(St==="|"){et.length>0&&et[et.length-1].conditions++,Xt({type:"text",value:St});continue}if(St===","){let _n=St,ke=ct[ct.length-1];ke&&Me[Me.length-1]==="braces"&&(ke.comma=!0,_n="|"),Xt({type:"comma",value:St,output:_n});continue}if(St==="/"){if(je.type==="dot"&&k.index===k.start+1){k.start=k.index+1,k.consumed="",k.output="",l.pop(),je=o;continue}Xt({type:"slash",value:St,output:N});continue}if(St==="."){if(k.braces>0&&je.type==="dot"){je.value==="."&&(je.output=b);let _n=ct[ct.length-1];je.type="dots",je.output+=St,je.value+=St,_n.dots=!0;continue}if(k.braces+k.parens===0&&je.type!=="bos"&&je.type!=="slash"){Xt({type:"text",value:St,output:b});continue}Xt({type:"dot",value:St,output:b});continue}if(St==="?"){if(!(je&&je.value==="(")&&r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("qmark",St);continue}if(je&&je.type==="paren"){let ke=Yt(),jt=St;if(ke==="<"&&!DW.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(je.value==="("&&!/[!=<:]/.test(ke)||ke==="<"&&!/<([!=]|\w+>)/.test(Nr()))&&(jt=`\\${St}`),Xt({type:"text",value:St,output:jt});continue}if(r.dot!==!0&&(je.type==="slash"||je.type==="bos")){Xt({type:"qmark",value:St,output:ce});continue}Xt({type:"qmark",value:St,output:ne});continue}if(St==="!"){if(r.noextglob!==!0&&Yt()==="("&&(Yt(2)!=="?"||!/[!=<:]/.test(Yt(3)))){lr("negate",St);continue}if(r.nonegate!==!0&&k.index===0){xt();continue}}if(St==="+"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("plus",St);continue}if(je&&je.value==="("||r.regex===!1){Xt({type:"plus",value:St,output:E});continue}if(je&&(je.type==="bracket"||je.type==="paren"||je.type==="brace")||k.parens>0){Xt({type:"plus",value:St});continue}Xt({type:"plus",value:E});continue}if(St==="@"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){Xt({type:"at",extglob:!0,value:St,output:""});continue}Xt({type:"text",value:St});continue}if(St!=="*"){(St==="$"||St==="^")&&(St=`\\${St}`);let _n=fso.exec(Nr());_n&&(St+=_n[0],k.index+=_n[0].length),Xt({type:"text",value:St});continue}if(je&&(je.type==="globstar"||je.star===!0)){je.type="star",je.star=!0,je.value+=St,je.output=De,k.backtrack=!0,k.globstar=!0,er(St);continue}let Ar=Nr();if(r.noextglob!==!0&&/^\([^?]/.test(Ar)){lr("star",St);continue}if(je.type==="star"){if(r.noglobstar===!0){er(St);continue}let _n=je.prev,ke=_n.prev,jt=_n.type==="slash"||_n.type==="bos",Fn=ke&&(ke.type==="star"||ke.type==="globstar");if(r.bash===!0&&(!jt||Ar[0]&&Ar[0]!=="/")){Xt({type:"star",value:St,output:""});continue}let Nn=k.braces>0&&(_n.type==="comma"||_n.type==="brace"),Hi=et.length&&(_n.type==="pipe"||_n.type==="paren");if(!jt&&_n.type!=="paren"&&!Nn&&!Hi){Xt({type:"star",value:St,output:""});continue}for(;Ar.slice(0,3)==="/**";){let po=e[k.index+4];if(po&&po!=="/")break;Ar=Ar.slice(3),er("/**",3)}if(_n.type==="bos"&&At()){je.type="globstar",je.value+=St,je.output=de(r),k.output=je.output,k.globstar=!0,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&!Fn&&At()){k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=de(r)+(r.strictSlashes?")":"|$)"),je.value+=St,k.globstar=!0,k.output+=_n.output+je.output,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&Ar[0]==="/"){let po=Ar[1]!==void 0?"|$":"";k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=`${de(r)}${N}|${N}${po})`,je.value+=St,k.output+=_n.output+je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}if(_n.type==="bos"&&Ar[0]==="/"){je.type="globstar",je.value+=St,je.output=`(?:^|${N}|${de(r)}${N})`,k.output=je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}k.output=k.output.slice(0,-je.output.length),je.type="globstar",je.output=de(r),je.value+=St,k.output+=je.output,k.globstar=!0,er(St);continue}let qr={type:"star",value:St,output:De};if(r.bash===!0){qr.output=".*?",(je.type==="bos"||je.type==="slash")&&(qr.output=be+qr.output),Xt(qr);continue}if(je&&(je.type==="bracket"||je.type==="paren")&&r.regex===!0){qr.output=St,Xt(qr);continue}(k.index===k.start||je.type==="slash"||je.type==="dot")&&(je.type==="dot"?(k.output+=X,je.output+=X):r.dot===!0?(k.output+=ae,je.output+=ae):(k.output+=be,je.output+=be),Yt()!=="*"&&(k.output+=B,je.output+=B)),Xt(qr)}for(;k.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));k.output=DW.escapeLast(k.output,"["),qt("brackets")}for(;k.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing",")"));k.output=DW.escapeLast(k.output,"("),qt("parens")}for(;k.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","}"));k.output=DW.escapeLast(k.output,"{"),qt("braces")}if(r.strictSlashes!==!0&&(je.type==="star"||je.type==="bracket")&&Xt({type:"maybe_slash",value:"",output:`${N}?`}),k.backtrack===!0){k.output="";for(let Ar of k.tokens)k.output+=Ar.output!=null?Ar.output:Ar.value,Ar.suffix&&(k.output+=Ar.suffix)}return k};m7t.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=Vwn[e]||e;let o=DW.isWindows(t),{DOT_LITERAL:l,SLASH_LITERAL:A,ONE_CHAR:f,DOTS_SLASH:I,NO_DOT:C,NO_DOTS:b,NO_DOTS_SLASH:E,STAR:N,START_ANCHOR:B}=_lt.globChars(o),F=r.dot?b:C,Q=r.dot?E:C,X=r.capture?"":"?:",ae={negated:!1,prefix:""},ne=r.bash===!0?".*?":N;r.capture&&(ne=`(${ne})`);let ce=be=>be.noglobstar===!0?ne:`(${X}(?:(?!${B}${be.dot?I:l}).)*?)`,fe=be=>{switch(be){case"*":return`${F}${f}${ne}`;case".*":return`${l}${f}${ne}`;case"*.*":return`${F}${ne}${l}${f}${ne}`;case"*/*":return`${F}${ne}${A}${f}${Q}${ne}`;case"**":return F+ce(r);case"**/*":return`(?:${F}${ce(r)}${A})?${Q}${f}${ne}`;case"**/*.*":return`(?:${F}${ce(r)}${A})?${Q}${ne}${l}${f}${ne}`;case"**/.*":return`(?:${F}${ce(r)}${A})?${l}${f}${ne}`;default:{let Se=/^(.*?)\.(\w+)$/.exec(be);if(!Se)return;let De=fe(Se[1]);return De?De+l+Se[2]:void 0}}},ue=DW.removePrefix(e,ae),de=fe(ue);return de&&r.strictSlashes!==!0&&(de+=`${A}?`),de};Pwn.exports=m7t});var Mwn=H((VMl,Own)=>{"use strict";var mso=wt("path"),Cso=Lwn(),C7t=Wwn(),_7t=I3e(),_so=f3e(),yso=e=>e&&typeof e=="object"&&!Array.isArray(e),KB=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>KB(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=yso(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=_7t.isWindows(t),l=n?KB.compileRe(e,t):KB.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=KB(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=KB.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};KB.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?_7t.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=KB.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};KB.matchBase=(e,t,r,n=_7t.isWindows(r))=>(t instanceof RegExp?t:KB.makeRe(t,r)).test(mso.basename(e));KB.isMatch=(e,t,r)=>KB(t,r)(e);KB.parse=(e,t)=>Array.isArray(e)?e.map(r=>KB.parse(r,t)):C7t(e,{...t,fastpaths:!1});KB.scan=(e,t)=>Cso(e,t);KB.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=KB.toRegex(A,t);return n===!0&&(f.state=e),f};KB.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=C7t.fastpaths(e,t)),a.output||(a=C7t(e,t)),KB.compileRe(a,t,r,n)};KB.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};KB.constants=_so;Own.exports=KB});var Ywn=H((PMl,Hwn)=>{"use strict";Hwn.exports=Mwn()});var Ek=H((WMl,Kwn)=>{"use strict";var Xwn=wt("util"),Jwn=Swn(),WK=Ywn(),y7t=I3e(),Qwn=e=>e===""||e==="./",Uwn=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},x1=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,a=new Set,o=new Set,l=0,A=C=>{o.add(C.output),r&&r.onResult&&r.onResult(C)};for(let C=0;C!n.has(C));if(r&&I.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(C=>C.replace(/\\/g,"")):t}return I};x1.match=x1;x1.matcher=(e,t)=>WK(e,t);x1.isMatch=(e,t,r)=>WK(t,r)(e);x1.any=x1.isMatch;x1.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,a=[],o=A=>{r.onResult&&r.onResult(A),a.push(A.output)},l=new Set(x1(e,t,{...r,onResult:o}));for(let A of a)l.has(A)||n.add(A);return[...n]};x1.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>x1.contains(e,n,r));if(typeof t=="string"){if(Qwn(e)||Qwn(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return x1.isMatch(e,t,{...r,contains:!0})};x1.matchKeys=(e,t,r)=>{if(!y7t.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=x1(Object.keys(e),t,r),a={};for(let o of n)a[o]=e[o];return a};x1.some=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(n.some(l=>o(l)))return!0}return!1};x1.every=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(!n.every(l=>o(l)))return!1}return!0};x1.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);return[].concat(t).every(n=>WK(n,r)(e))};x1.capture=(e,t,r)=>{let n=y7t.isWindows(r),o=WK.makeRe(String(e),{...r,capture:!0}).exec(n?y7t.toPosixSlashes(t):t);if(o)return o.slice(1).map(l=>l===void 0?"":l)};x1.makeRe=(...e)=>WK.makeRe(...e);x1.scan=(...e)=>WK.scan(...e);x1.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let a of Jwn(String(n),t))r.push(WK.parse(a,t));return r};x1.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Uwn(e)?[e]:Jwn(e,t)};x1.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return x1.braces(e,{...t,expand:!0})};x1.hasBraces=Uwn;Kwn.exports=x1});var zwn=H((OMl,jwn)=>{"use strict";jwn.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var q5=H((MMl,qwn)=>{"use strict";var bso=zwn();qwn.exports=e=>typeof e=="string"?e.replace(bso(),""):e});var E7t=H(b7t=>{"use strict";Object.defineProperty(b7t,Symbol.toStringTag,{value:"Module"});function Eso(e){return arguments.length===0?[]:Array.isArray(e)?e:[e]}b7t.castArray=Eso});var $wn=H(S7t=>{"use strict";Object.defineProperty(S7t,Symbol.toStringTag,{value:"Module"});function Sso(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Size must be an integer greater than zero.");let r=Math.ceil(e.length/t),n=Array(r);for(let a=0;a{"use strict";Object.defineProperty(v7t,Symbol.toStringTag,{value:"Module"});function vso(e){return Array.isArray(e)?e:Array.from(e)}v7t.toArray=vso});var eTn=H(B7t=>{"use strict";Object.defineProperty(B7t,Symbol.toStringTag,{value:"Module"});function Bso(e){return Number.isSafeInteger(e)&&e>=0}B7t.isLength=Bso});var Sf=H(w7t=>{"use strict";Object.defineProperty(w7t,Symbol.toStringTag,{value:"Module"});var wso=eTn();function Tso(e){return e!=null&&typeof e!="function"&&wso.isLength(e.length)}w7t.isArrayLike=Tso});var R7t=H(T7t=>{"use strict";Object.defineProperty(T7t,Symbol.toStringTag,{value:"Module"});var Rso=$wn(),Nso=SZ(),Dso=Sf();function kso(e,t=1){return t=Math.max(Math.floor(t),0),t===0||!Dso.isArrayLike(e)?[]:Rso.chunk(Nso.toArray(e),t)}T7t.chunk=kso});var tTn=H(N7t=>{"use strict";Object.defineProperty(N7t,Symbol.toStringTag,{value:"Module"});function xso(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(D7t,Symbol.toStringTag,{value:"Module"});var Gso=tTn(),Fso=Sf();function Zso(e){return Fso.isArrayLike(e)?Gso.compact(Array.from(e)):[]}D7t.compact=Zso});var m3e=H(x7t=>{"use strict";Object.defineProperty(x7t,Symbol.toStringTag,{value:"Module"});function Lso(e,t=1){let r=[],n=Math.floor(t),a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(G7t,Symbol.toStringTag,{value:"Module"});var Vso=m3e();function Pso(...e){return Vso.flatten(e)}G7t.concat=Pso});var bm=H(Z7t=>{"use strict";Object.defineProperty(Z7t,Symbol.toStringTag,{value:"Module"});function Wso(e){return e}Z7t.identity=Wso});var C3e=H(L7t=>{"use strict";Object.defineProperty(L7t,Symbol.toStringTag,{value:"Module"});function Oso(e){return e==="__proto__"}L7t.isUnsafeProperty=Oso});var VSe=H(V7t=>{"use strict";Object.defineProperty(V7t,Symbol.toStringTag,{value:"Module"});function Mso(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}V7t.isDeepKey=Mso});var Kq=H(P7t=>{"use strict";Object.defineProperty(P7t,Symbol.toStringTag,{value:"Module"});function Hso(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}P7t.toKey=Hso});var qy=H(W7t=>{"use strict";Object.defineProperty(W7t,Symbol.toStringTag,{value:"Module"});function rTn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(rTn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}W7t.toString=rTn});var $5=H(O7t=>{"use strict";Object.defineProperty(O7t,Symbol.toStringTag,{value:"Module"});var Yso=qy(),Qso=Kq();function Xso(e){if(Array.isArray(e))return e.map(Qso.toKey);if(typeof e=="symbol")return[e];e=Yso.toString(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",o="",l=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n{"use strict";Object.defineProperty(H7t,Symbol.toStringTag,{value:"Module"});var M7t=C3e(),Jso=VSe(),Uso=Kq(),Kso=$5();function nTn(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?Jso.isDeepKey(t)?nTn(e,Kso.toPath(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Uso.toKey(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return jso(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?r:n}}}function jso(e,t,r){if(t.length===0)return r;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Y7t,Symbol.toStringTag,{value:"Module"});var zso=eM();function qso(e){return function(t){return zso.get(t,e)}}Y7t.property=qso});var tM=H(Q7t=>{"use strict";Object.defineProperty(Q7t,Symbol.toStringTag,{value:"Module"});function $so(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Q7t.isObject=$so});var PSe=H(X7t=>{"use strict";Object.defineProperty(X7t,Symbol.toStringTag,{value:"Module"});function eoo(e){return e==null||typeof e!="object"&&typeof e!="function"}X7t.isPrimitive=eoo});var Sk=H(J7t=>{"use strict";Object.defineProperty(J7t,Symbol.toStringTag,{value:"Module"});function too(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}J7t.isEqualsSameValueZero=too});var Elt=H(blt=>{"use strict";Object.defineProperty(blt,Symbol.toStringTag,{value:"Module"});var roo=tM(),iTn=PSe(),sTn=Sk();function oTn(e,t,r){return typeof r!="function"?oTn(e,t,()=>{}):U7t(e,t,function n(a,o,l,A,f,I){let C=r(a,o,l,A,f,I);return C!==void 0?!!C:U7t(a,o,n,I)},new Map)}function U7t(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return noo(e,t,r,n);case"function":return Object.keys(t).length>0?U7t(e,{...t},r,n):sTn.isEqualsSameValueZero(e,t);default:return roo.isObject(e)?typeof t=="string"?t==="":!0:sTn.isEqualsSameValueZero(e,t)}}function noo(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return aTn(e,t,r,n);if(t instanceof Map)return ioo(e,t,r,n);if(t instanceof Set)return cTn(e,t,r,n);let a=Object.keys(t);if(e==null||iTn.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o{"use strict";Object.defineProperty(K7t,Symbol.toStringTag,{value:"Module"});var soo=Elt();function ooo(e,t){return soo.isMatchWith(e,t,()=>{})}K7t.isMatch=ooo});var y3e=H(j7t=>{"use strict";Object.defineProperty(j7t,Symbol.toStringTag,{value:"Module"});function aoo(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}j7t.getSymbols=aoo});var Zfe=H(z7t=>{"use strict";Object.defineProperty(z7t,Symbol.toStringTag,{value:"Module"});function coo(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}z7t.getTag=coo});var b3e=H($y=>{"use strict";Object.defineProperty($y,Symbol.toStringTag,{value:"Module"});var loo="[object RegExp]",uoo="[object String]",goo="[object Number]",Aoo="[object Boolean]",doo="[object Arguments]",poo="[object Symbol]",foo="[object Date]",Ioo="[object Map]",hoo="[object Set]",moo="[object Array]",Coo="[object Function]",_oo="[object ArrayBuffer]",yoo="[object Object]",boo="[object Error]",Eoo="[object DataView]",Soo="[object Uint8Array]",voo="[object Uint8ClampedArray]",Boo="[object Uint16Array]",woo="[object Uint32Array]",Too="[object BigUint64Array]",Roo="[object Int8Array]",Noo="[object Int16Array]",Doo="[object Int32Array]",koo="[object BigInt64Array]",xoo="[object Float32Array]",Goo="[object Float64Array]";$y.argumentsTag=doo;$y.arrayBufferTag=_oo;$y.arrayTag=moo;$y.bigInt64ArrayTag=koo;$y.bigUint64ArrayTag=Too;$y.booleanTag=Aoo;$y.dataViewTag=Eoo;$y.dateTag=foo;$y.errorTag=boo;$y.float32ArrayTag=xoo;$y.float64ArrayTag=Goo;$y.functionTag=Coo;$y.int16ArrayTag=Noo;$y.int32ArrayTag=Doo;$y.int8ArrayTag=Roo;$y.mapTag=Ioo;$y.numberTag=goo;$y.objectTag=yoo;$y.regexpTag=loo;$y.setTag=hoo;$y.stringTag=uoo;$y.symbolTag=poo;$y.uint16ArrayTag=Boo;$y.uint32ArrayTag=woo;$y.uint8ArrayTag=Soo;$y.uint8ClampedArrayTag=voo});var $7t=H(q7t=>{"use strict";Object.defineProperty(q7t,Symbol.toStringTag,{value:"Module"});var Foo=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||function(){return this}()||Function("return this")();q7t.globalThis=Foo});var noe=H(ezt=>{"use strict";Object.defineProperty(ezt,Symbol.toStringTag,{value:"Module"});var lTn=$7t();function Zoo(e){return typeof lTn.globalThis.Buffer<"u"&&lTn.globalThis.Buffer.isBuffer(e)}ezt.isBuffer=Zoo});var Slt=H(tzt=>{"use strict";Object.defineProperty(tzt,Symbol.toStringTag,{value:"Module"});function Loo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}tzt.isTypedArray=Loo});var rzt=H(E3e=>{"use strict";Object.defineProperty(E3e,Symbol.toStringTag,{value:"Module"});var Voo=y3e(),Poo=Zfe(),Zv=b3e(),Woo=noe(),Ooo=PSe(),Moo=Slt();function Hoo(e,t){return Lfe(e,void 0,e,new Map,t)}function Lfe(e,t,r,n=new Map,a=void 0){let o=a?.(e,t,r,n);if(o!==void 0)return o;if(Ooo.isPrimitive(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let l=new Array(e.length);n.set(e,l);for(let A=0;A{"use strict";Object.defineProperty(nzt,Symbol.toStringTag,{value:"Module"});var Qoo=rzt();function Xoo(e){return Qoo.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}nzt.cloneDeep=Xoo});var OK=H(szt=>{"use strict";Object.defineProperty(szt,Symbol.toStringTag,{value:"Module"});var Joo=_3e(),Uoo=izt();function Koo(e){return e=Uoo.cloneDeep(e),t=>Joo.isMatch(t,e)}szt.matches=Koo});var v3e=H(ozt=>{"use strict";Object.defineProperty(ozt,Symbol.toStringTag,{value:"Module"});var vlt=rzt(),joo=Zfe(),S3e=b3e();function zoo(e,t){return vlt.cloneDeepWith(e,(r,n,a,o)=>{let l=t?.(r,n,a,o);if(l!==void 0)return l;if(typeof e=="object"){if(joo.getTag(e)===S3e.objectTag&&typeof e.constructor!="function"){let A={};return o.set(e,A),vlt.copyProperties(A,e,a,o),A}switch(Object.prototype.toString.call(e)){case S3e.numberTag:case S3e.stringTag:case S3e.booleanTag:{let A=new e.constructor(e?.valueOf());return vlt.copyProperties(A,e),A}case S3e.argumentsTag:{let A={};return vlt.copyProperties(A,e),A.length=e.length,A[Symbol.iterator]=e[Symbol.iterator],A}default:return}}})}ozt.cloneDeepWith=zoo});var WSe=H(azt=>{"use strict";Object.defineProperty(azt,Symbol.toStringTag,{value:"Module"});var qoo=v3e();function $oo(e){return qoo.cloneDeepWith(e)}azt.cloneDeep=$oo});var OSe=H(czt=>{"use strict";Object.defineProperty(czt,Symbol.toStringTag,{value:"Module"});var eao=/^(?:0|[1-9]\d*)$/;function tao(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(lzt,Symbol.toStringTag,{value:"Module"});var rao=Zfe();function nao(e){return e!==null&&typeof e=="object"&&rao.getTag(e)==="[object Arguments]"}lzt.isArguments=nao});var B3e=H(uzt=>{"use strict";Object.defineProperty(uzt,Symbol.toStringTag,{value:"Module"});var iao=VSe(),sao=OSe(),oao=Vfe(),aao=$5();function cao(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&iao.isDeepKey(t)&&e?.[t]==null?r=aao.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(gzt,Symbol.toStringTag,{value:"Module"});var lao=_3e(),uao=Kq(),gao=WSe(),Aao=eM(),dao=B3e();function pao(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=uao.toKey(e);break}}return t=gao.cloneDeep(t),function(r){let n=Aao.get(r,e);return n===void 0?dao.has(r,e):t===void 0?n===void 0:lao.isMatch(n,t)}}gzt.matchesProperty=pao});var im=H(Azt=>{"use strict";Object.defineProperty(Azt,Symbol.toStringTag,{value:"Module"});var fao=bm(),Iao=nX(),hao=OK(),mao=MK();function Cao(e){if(e==null)return fao.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?mao.matchesProperty(e[0],e[1]):hao.matches(e);case"string":case"symbol":case"number":return Iao.property(e)}}Azt.iteratee=Cao});var pzt=H(dzt=>{"use strict";Object.defineProperty(dzt,Symbol.toStringTag,{value:"Module"});var _ao=Sf(),yao=im();function bao(e,t){if(e==null)return{};let r=_ao.isArrayLike(e)?Array.from(e):Object.values(e),n=yao.iteratee(t??void 0),a=Object.create(null);for(let o=0;o{"use strict";Object.defineProperty(fzt,Symbol.toStringTag,{value:"Module"});function Eao(e,t){let r=new Set(t);return e.filter(n=>!r.has(n))}fzt.difference=Eao});var ioe=H(Izt=>{"use strict";Object.defineProperty(Izt,Symbol.toStringTag,{value:"Module"});function Sao(e){return typeof e=="object"&&e!==null}Izt.isObjectLike=Sao});var b2=H(hzt=>{"use strict";Object.defineProperty(hzt,Symbol.toStringTag,{value:"Module"});var vao=Sf(),Bao=ioe();function wao(e){return Bao.isObjectLike(e)&&vao.isArrayLike(e)}hzt.isArrayLikeObject=wao});var Czt=H(mzt=>{"use strict";Object.defineProperty(mzt,Symbol.toStringTag,{value:"Module"});var Tao=w3e(),Rao=SZ(),uTn=b2();function Nao(e,...t){if(!uTn.isArrayLikeObject(e))return[];let r=Rao.toArray(e),n=[];for(let a=0;a{"use strict";Object.defineProperty(_zt,Symbol.toStringTag,{value:"Module"});function Dao(e){return e[e.length-1]}_zt.last=Dao});var zq=H(yzt=>{"use strict";Object.defineProperty(yzt,Symbol.toStringTag,{value:"Module"});var kao=T3e(),xao=SZ(),Gao=Sf();function Fao(e){if(Gao.isArrayLike(e))return kao.last(xao.toArray(e))}yzt.last=Fao});var gTn=H(bzt=>{"use strict";Object.defineProperty(bzt,Symbol.toStringTag,{value:"Module"});function Zao(e,t,r){let n=new Set(t.map(a=>r(a)));return e.filter(a=>!n.has(r(a)))}bzt.differenceBy=Zao});var R3e=H(Ezt=>{"use strict";Object.defineProperty(Ezt,Symbol.toStringTag,{value:"Module"});var Lao=b2();function Vao(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(Szt,Symbol.toStringTag,{value:"Module"});var Pao=zq(),Wao=w3e(),Oao=gTn(),Mao=R3e(),ATn=b2(),Hao=im();function Yao(e,...t){if(!ATn.isArrayLikeObject(e))return[];let r=Pao.last(t),n=Mao.flattenArrayLike(t);return ATn.isArrayLikeObject(r)?Wao.difference(Array.from(e),n):Oao.differenceBy(Array.from(e),n,Hao.iteratee(r))}Szt.differenceBy=Yao});var dTn=H(vzt=>{"use strict";Object.defineProperty(vzt,Symbol.toStringTag,{value:"Module"});function Qao(e,t,r){return e.filter(n=>t.every(a=>!r(n,a)))}vzt.differenceWith=Qao});var wlt=H(Bzt=>{"use strict";Object.defineProperty(Bzt,Symbol.toStringTag,{value:"Module"});var Xao=zq(),Jao=w3e(),Uao=dTn(),Kao=R3e(),jao=b2();function zao(e,...t){if(!jao.isArrayLikeObject(e))return[];let r=Xao.last(t),n=Kao.flattenArrayLike(t);return typeof r=="function"?Uao.differenceWith(Array.from(e),n,r):Jao.difference(Array.from(e),n)}Bzt.differenceWith=zao});var pTn=H(wzt=>{"use strict";Object.defineProperty(wzt,Symbol.toStringTag,{value:"Module"});function qao(e,t){return t=Math.max(t,0),e.slice(t)}wzt.drop=qao});var soe=H(Tzt=>{"use strict";Object.defineProperty(Tzt,Symbol.toStringTag,{value:"Module"});function $ao(e){return typeof e=="symbol"||e instanceof Symbol}Tzt.isSymbol=$ao});var Q9=H(Rzt=>{"use strict";Object.defineProperty(Rzt,Symbol.toStringTag,{value:"Module"});var eco=soe();function tco(e){return eco.isSymbol(e)?NaN:Number(e)}Rzt.toNumber=tco});var MSe=H(Nzt=>{"use strict";Object.defineProperty(Nzt,Symbol.toStringTag,{value:"Module"});var rco=Q9();function nco(e){return e?(e=rco.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}Nzt.toFinite=nco});var $w=H(Dzt=>{"use strict";Object.defineProperty(Dzt,Symbol.toStringTag,{value:"Module"});var ico=MSe();function sco(e){let t=ico.toFinite(e),r=t%1;return r?t-r:t}Dzt.toInteger=sco});var xzt=H(kzt=>{"use strict";Object.defineProperty(kzt,Symbol.toStringTag,{value:"Module"});var oco=pTn(),aco=SZ(),cco=Sf(),lco=$w();function uco(e,t=1,r){return cco.isArrayLike(e)?(t=r?1:lco.toInteger(t),oco.drop(aco.toArray(e),t)):[]}kzt.drop=uco});var fTn=H(Gzt=>{"use strict";Object.defineProperty(Gzt,Symbol.toStringTag,{value:"Module"});function gco(e,t){return t=Math.min(-t,0),t===0?e.slice():e.slice(0,t)}Gzt.dropRight=gco});var Zzt=H(Fzt=>{"use strict";Object.defineProperty(Fzt,Symbol.toStringTag,{value:"Module"});var Aco=fTn(),dco=SZ(),pco=Sf(),fco=$w();function Ico(e,t=1,r){return pco.isArrayLike(e)?(t=r?1:fco.toInteger(t),Aco.dropRight(dco.toArray(e),t)):[]}Fzt.dropRight=Ico});var ITn=H(Lzt=>{"use strict";Object.defineProperty(Lzt,Symbol.toStringTag,{value:"Module"});function hco(e,t){for(let r=e.length-1;r>=0;r--)if(!t(e[r],r,e))return e.slice(0,r+1);return[]}Lzt.dropRightWhile=hco});var Pzt=H(Vzt=>{"use strict";Object.defineProperty(Vzt,Symbol.toStringTag,{value:"Module"});var Tlt=ITn(),mco=bm(),Cco=nX(),_co=Sf(),yco=OK(),bco=MK();function Eco(e,t=mco.identity){return _co.isArrayLike(e)?Sco(Array.from(e),t):[]}function Sco(e,t){switch(typeof t){case"function":return Tlt.dropRightWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Tlt.dropRightWhile(e,bco.matchesProperty(r,n))}else return Tlt.dropRightWhile(e,yco.matches(t));case"symbol":case"number":case"string":return Tlt.dropRightWhile(e,Cco.property(t))}}Vzt.dropRightWhile=Eco});var hTn=H(Wzt=>{"use strict";Object.defineProperty(Wzt,Symbol.toStringTag,{value:"Module"});function vco(e,t){let r=e.findIndex((n,a,o)=>!t(n,a,o));return r===-1?[]:e.slice(r)}Wzt.dropWhile=vco});var Mzt=H(Ozt=>{"use strict";Object.defineProperty(Ozt,Symbol.toStringTag,{value:"Module"});var Rlt=hTn(),Bco=bm(),wco=SZ(),Tco=nX(),Rco=Sf(),Nco=OK(),Dco=MK();function kco(e,t=Bco.identity){return Rco.isArrayLike(e)?xco(wco.toArray(e),t):[]}function xco(e,t){switch(typeof t){case"function":return Rlt.dropWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Rlt.dropWhile(e,Dco.matchesProperty(r,n))}else return Rlt.dropWhile(e,Nco.matches(t));case"number":case"symbol":case"string":return Rlt.dropWhile(e,Tco.property(t))}}Ozt.dropWhile=kco});var ooe=H(Hzt=>{"use strict";Object.defineProperty(Hzt,Symbol.toStringTag,{value:"Module"});function Gco(e,t,r=1){if(t==null&&(t=e,e=0),!Number.isInteger(r)||r===0)throw new Error("The step value must be a non-zero integer.");let n=Math.max(Math.ceil((t-e)/r),0),a=new Array(n);for(let o=0;o{"use strict";Object.defineProperty(Yzt,Symbol.toStringTag,{value:"Module"});var Fco=bm(),Zco=ooe(),Lco=Sf();function Vco(e,t=Fco.identity){if(!e)return e;let r=Lco.isArrayLike(e)||Array.isArray(e)?Zco.range(0,e.length):Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(Qzt,Symbol.toStringTag,{value:"Module"});var Pco=bm(),Wco=ooe(),Oco=Sf();function Mco(e,t=Pco.identity){if(!e)return e;let r=Oco.isArrayLike(e)?Wco.range(0,e.length):Object.keys(e);for(let n=r.length-1;n>=0;n--){let a=r[n],o=e[a];if(t(o,a,e)===!1)break}return e}Qzt.forEachRight=Mco});var qq=H(Jzt=>{"use strict";Object.defineProperty(Jzt,Symbol.toStringTag,{value:"Module"});var Hco=OSe(),Yco=Sf(),Qco=tM(),Xco=Sk();function Jco(e,t,r){return Qco.isObject(r)&&(typeof t=="number"&&Yco.isArrayLike(r)&&Hco.isIndex(t)&&t{"use strict";Object.defineProperty(Uzt,Symbol.toStringTag,{value:"Module"});var Uco=bm(),Kco=qq(),jco=nX(),zco=Sf(),qco=OK(),$co=MK();function elo(e,t,r){if(!e)return!0;r&&Kco.isIterateeCall(e,t,r)&&(t=void 0),t||(t=Uco.identity);let n;switch(typeof t){case"function":{n=t;break}case"object":{if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];n=$co.matchesProperty(a,o)}else n=qco.matches(t);break}case"symbol":case"number":case"string":n=jco.property(t)}if(!zco.isArrayLike(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(jzt,Symbol.toStringTag,{value:"Module"});function tlo(e,t,r=0,n=e.length){let a=e.length,o=Math.max(r>=0?r:a+r,0),l=Math.min(n>=0?n:a+n,a);for(let A=o;A{"use strict";Object.defineProperty(zzt,Symbol.toStringTag,{value:"Module"});function rlo(e){return typeof e=="string"||e instanceof String}zzt.isString=rlo});var $zt=H(qzt=>{"use strict";Object.defineProperty(qzt,Symbol.toStringTag,{value:"Module"});var nlo=mTn(),ilo=Sf(),slo=HSe();function olo(e,t,r=0,n=e?e.length:0){return ilo.isArrayLike(e)?slo.isString(e)?e:(r=Math.floor(r),n=Math.floor(n),r||(r=0),n||(n=0),nlo.fill(e,t,r,n)):[]}qzt.fill=olo});var Dlt=H(eqt=>{"use strict";Object.defineProperty(eqt,Symbol.toStringTag,{value:"Module"});var alo=bm(),clo=Sf(),llo=im();function ulo(e,t=alo.identity){if(!e)return[];if(t=llo.iteratee(t),!Array.isArray(e)){let a=[],o=Object.keys(e),l=clo.isArrayLike(e)?e.length:o.length;for(let A=0;A{"use strict";Object.defineProperty(tqt,Symbol.toStringTag,{value:"Module"});var glo=bm(),Alo=im();function dlo(e,t=glo.identity,r=0){if(!e)return;r<0&&(r=Math.max(e.length+r,0));let n=Alo.iteratee(t);if(!Array.isArray(e)){let a=Object.keys(e);for(let o=r;o{"use strict";Object.defineProperty(nqt,Symbol.toStringTag,{value:"Module"});function plo(e){return e}nqt.identity=plo});var sqt=H(iqt=>{"use strict";Object.defineProperty(iqt,Symbol.toStringTag,{value:"Module"});var flo=HK(),Ilo=nX(),hlo=OK(),mlo=MK();function Clo(e,t=flo.identity,r=0){if(!e)return-1;r<0&&(r=Math.max(e.length+r,0));let n=Array.from(e).slice(r),a=-1;switch(typeof t){case"function":{a=n.findIndex(t);break}case"object":{if(Array.isArray(t)&&t.length===2){let o=t[0],l=t[1];a=n.findIndex(mlo.matchesProperty(o,l))}else a=n.findIndex(hlo.matches(t));break}case"number":case"symbol":case"string":a=n.findIndex(Ilo.property(t))}return a===-1?-1:a+r}iqt.findIndex=Clo});var aqt=H(oqt=>{"use strict";Object.defineProperty(oqt,Symbol.toStringTag,{value:"Module"});var _lo=bm(),ylo=im(),blo=$w();function Elo(e,t=_lo.identity,r){if(!e)return;let n=Array.isArray(e)?e.length:Object.keys(e).length;r=blo.toInteger(r??n-1),r<0?r=Math.max(n+r,0):r=Math.min(r,n-1);let a=ylo.iteratee(t);if(!Array.isArray(e)){let o=Object.keys(e);for(let l=r;l>=0;l--){let A=o[l],f=e[A];if(a(f,A,e))return f}return}return e.slice(0,r+1).findLast(a)}oqt.findLast=Elo});var lqt=H(cqt=>{"use strict";Object.defineProperty(cqt,Symbol.toStringTag,{value:"Module"});var Slo=bm(),vlo=SZ(),Blo=nX(),wlo=OK(),Tlo=MK();function Rlo(e,t=Slo.identity,r=e?e.length-1:0){if(!e)return-1;r<0?r=Math.max(e.length+r,0):r=Math.min(r,e.length-1);let n=vlo.toArray(e).slice(0,r+1);switch(typeof t){case"function":return n.findLastIndex(t);case"object":if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];return n.findLastIndex(Tlo.matchesProperty(a,o))}else return n.findLastIndex(wlo.matches(t));case"number":case"symbol":case"string":return n.findLastIndex(Blo.property(t))}}cqt.findLastIndex=Rlo});var CTn=H(uqt=>{"use strict";Object.defineProperty(uqt,Symbol.toStringTag,{value:"Module"});function Nlo(e){return e[0]}uqt.head=Nlo});var Aqt=H(gqt=>{"use strict";Object.defineProperty(gqt,Symbol.toStringTag,{value:"Module"});var Dlo=CTn(),klo=SZ(),xlo=Sf();function Glo(e){if(xlo.isArrayLike(e))return Dlo.head(klo.toArray(e))}gqt.head=Glo});var Pfe=H(dqt=>{"use strict";Object.defineProperty(dqt,Symbol.toStringTag,{value:"Module"});var Flo=Sf();function Zlo(e,t=1){let r=[],n=Math.floor(t);if(!Flo.isArrayLike(e))return r;let a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(pqt,Symbol.toStringTag,{value:"Module"});var Llo=Pfe();function Vlo(e,t=1){return Llo.flatten(e,t)}pqt.flattenDepth=Vlo});var N3e=H(fqt=>{"use strict";Object.defineProperty(fqt,Symbol.toStringTag,{value:"Module"});var Plo=bm(),Wlo=ooe(),Olo=Sf(),Mlo=im();function Hlo(e,t){if(!e)return[];let r=Olo.isArrayLike(e)||Array.isArray(e)?Wlo.range(0,e.length):Object.keys(e),n=Mlo.iteratee(t??Plo.identity),a=new Array(r.length);for(let o=0;o{"use strict";Object.defineProperty(Iqt,Symbol.toStringTag,{value:"Module"});function Ylo(e){return e==null}Iqt.isNil=Ylo});var mqt=H(hqt=>{"use strict";Object.defineProperty(hqt,Symbol.toStringTag,{value:"Module"});var Qlo=YSe(),_Tn=N3e(),yTn=aoe();function Xlo(e,t){if(yTn.isNil(e))return[];let r=yTn.isNil(t)?_Tn.map(e):_Tn.map(e,t);return Qlo.flattenDepth(r,1)}hqt.flatMap=Xlo});var D3e=H(Cqt=>{"use strict";Object.defineProperty(Cqt,Symbol.toStringTag,{value:"Module"});var Jlo=Pfe(),Ulo=N3e(),Klo=bm(),jlo=im();function zlo(e,t=Klo.identity,r=1){if(e==null)return[];let n=jlo.iteratee(t),a=Ulo.map(e,n);return Jlo.flatten(a,r)}Cqt.flatMapDepth=zlo});var yqt=H(_qt=>{"use strict";Object.defineProperty(_qt,Symbol.toStringTag,{value:"Module"});var qlo=D3e();function $lo(e,t){return qlo.flatMapDepth(e,t,1/0)}_qt.flatMapDeep=$lo});var Eqt=H(bqt=>{"use strict";Object.defineProperty(bqt,Symbol.toStringTag,{value:"Module"});var euo=YSe();function tuo(e){return euo.flattenDepth(e,1/0)}bqt.flattenDeep=tuo});var bTn=H(Sqt=>{"use strict";Object.defineProperty(Sqt,Symbol.toStringTag,{value:"Module"});function ruo(e,t){let r={};for(let n=0;n{"use strict";Object.defineProperty(vqt,Symbol.toStringTag,{value:"Module"});var nuo=bTn(),iuo=bm(),suo=Sf(),ouo=im();function auo(e,t){if(e==null)return{};let r=suo.isArrayLike(e)?Array.from(e):Object.values(e),n=ouo.iteratee(t??iuo.identity);return nuo.groupBy(r,n)}vqt.groupBy=auo});var Tqt=H(wqt=>{"use strict";Object.defineProperty(wqt,Symbol.toStringTag,{value:"Module"});var cuo=HSe(),luo=Sk(),uuo=$w();function guo(e,t,r,n){if(e==null)return!1;if(n||!r?r=0:r=uuo.toInteger(r),cuo.isString(e))return r>e.length||t instanceof RegExp?!1:(r<0&&(r=Math.max(0,e.length+r)),e.includes(t,r));if(Array.isArray(e))return e.includes(t,r);let a=Object.keys(e);r<0&&(r=Math.max(0,a.length+r));for(let o=r;o{"use strict";Object.defineProperty(Rqt,Symbol.toStringTag,{value:"Module"});var Auo=Sf();function duo(e,t,r){if(!Auo.isArrayLike(e))return-1;if(Number.isNaN(t)){r=r??0,r<0&&(r=Math.max(0,e.length+r));for(let n=r;n{"use strict";Object.defineProperty(Dqt,Symbol.toStringTag,{value:"Module"});function puo(e){return e.slice(0,-1)}Dqt.initial=puo});var xqt=H(kqt=>{"use strict";Object.defineProperty(kqt,Symbol.toStringTag,{value:"Module"});var fuo=ETn(),Iuo=Sf();function huo(e){return Iuo.isArrayLike(e)?fuo.initial(Array.from(e)):[]}kqt.initial=huo});var STn=H(Gqt=>{"use strict";Object.defineProperty(Gqt,Symbol.toStringTag,{value:"Module"});function muo(e,t){let r=new Set(t);return e.filter(n=>r.has(n))}Gqt.intersection=muo});var Wfe=H(Fqt=>{"use strict";Object.defineProperty(Fqt,Symbol.toStringTag,{value:"Module"});function Cuo(e){return[...new Set(e)]}Fqt.uniq=Cuo});var Lqt=H(Zqt=>{"use strict";Object.defineProperty(Zqt,Symbol.toStringTag,{value:"Module"});var _uo=STn(),yuo=Wfe(),vTn=b2();function buo(...e){if(e.length===0)return[];if(!vTn.isArrayLikeObject(e[0]))return[];let t=yuo.uniq(Array.from(e[0]));for(let r=1;r{"use strict";Object.defineProperty(Vqt,Symbol.toStringTag,{value:"Module"});function Euo(e,t,r){let n=[],a=new Set(t.map(r));for(let o=0;o{"use strict";Object.defineProperty(Wqt,Symbol.toStringTag,{value:"Module"});var Pqt=BTn(),Suo=T3e(),vuo=Wfe(),Buo=bm(),wuo=nX(),klt=b2();function Tuo(e,...t){if(!klt.isArrayLikeObject(e))return[];let r=Suo.last(t);if(r===void 0)return Array.from(e);let n=vuo.uniq(Array.from(e)),a=klt.isArrayLikeObject(r)?t.length:t.length-1;for(let o=0;or(A)):typeof r=="string"&&(n=Pqt.intersectionBy(n,Array.from(l),wuo.property(r)))}return n}Wqt.intersectionBy=Tuo});var wTn=H(Oqt=>{"use strict";Object.defineProperty(Oqt,Symbol.toStringTag,{value:"Module"});function Ruo(e,t,r){return e.filter(n=>t.some(a=>r(n,a)))}Oqt.intersectionWith=Ruo});var k3e=H(Mqt=>{"use strict";Object.defineProperty(Mqt,Symbol.toStringTag,{value:"Module"});var Nuo=Wfe(),Duo=Sf();function kuo(e){return Duo.isArrayLike(e)?Nuo.uniq(Array.from(e)):[]}Mqt.uniq=kuo});var Glt=H(Hqt=>{"use strict";Object.defineProperty(Hqt,Symbol.toStringTag,{value:"Module"});var xuo=zq(),Guo=wTn(),Fuo=k3e(),Zuo=Sk();function Luo(e,...t){if(e==null)return[];let r=xuo.last(t),n=Zuo.isEqualsSameValueZero,a=Fuo.uniq;typeof r=="function"&&(n=r,a=Vuo,t.pop());let o=a(Array.from(e));for(let l=0;l{"use strict";Object.defineProperty(Yqt,Symbol.toStringTag,{value:"Module"});function Puo(e){return typeof e=="function"}Yqt.isFunction=Puo});var Jqt=H(Xqt=>{"use strict";Object.defineProperty(Xqt,Symbol.toStringTag,{value:"Module"});$7t();var Wuo=coe(),Ouo=aoe(),Qqt=eM(),Muo=Sf();function Huo(e,t,...r){if(Ouo.isNil(e))return[];let n=Muo.isArrayLike(e)?Array.from(e):Object.values(e),a=[];for(let o=0;o0&&(f=Qqt.get(l,I))}else if(typeof t=="string"&&t.includes(".")){let C=t.split(".").slice(0,-1).join(".");f=Qqt.get(l,C)}a.push(A?.apply(f,r))}return a}Xqt.invokeMap=Huo});var Kqt=H(Uqt=>{"use strict";Object.defineProperty(Uqt,Symbol.toStringTag,{value:"Module"});var Yuo=Sf();function Quo(e,t){return Yuo.isArrayLike(e)?Array.from(e).join(t):""}Uqt.join=Quo});var Flt=H(jqt=>{"use strict";Object.defineProperty(jqt,Symbol.toStringTag,{value:"Module"});var Xuo=bm(),Juo=ooe(),Uuo=Sf();function Kuo(e,t=Xuo.identity,r){if(!e)return r;let n,a=0;Uuo.isArrayLike(e)?(n=Juo.range(0,e.length),r==null&&e.length>0&&(r=e[0],a+=1)):(n=Object.keys(e),r==null&&(r=e[n[0]],a+=1));for(let o=a;o{"use strict";Object.defineProperty(zqt,Symbol.toStringTag,{value:"Module"});var juo=Flt(),zuo=bm(),quo=Sf(),$uo=ioe(),ego=im();function tgo(e,t){if(!quo.isArrayLike(e)&&!$uo.isObjectLike(e))return{};let r=ego.iteratee(t??zuo.identity);return juo.reduce(e,(n,a)=>{let o=r(a);return n[o]=a,n},{})}zqt.keyBy=tgo});var e$t=H($qt=>{"use strict";Object.defineProperty($qt,Symbol.toStringTag,{value:"Module"});var rgo=Sf();function ngo(e,t,r){if(!rgo.isArrayLike(e)||e.length===0)return-1;let n=e.length,a=r??n-1;if(r!=null&&(a=a<0?Math.max(n+a,0):Math.min(a,n-1)),Number.isNaN(t)){for(let o=a;o>=0;o--)if(Number.isNaN(e[o]))return o}return Array.from(e).lastIndexOf(t,a)}$qt.lastIndexOf=ngo});var r$t=H(t$t=>{"use strict";Object.defineProperty(t$t,Symbol.toStringTag,{value:"Module"});var igo=b2(),sgo=$w();function ogo(e,t=0){if(!(!igo.isArrayLikeObject(e)||e.length===0))return t=sgo.toInteger(t),t<0&&(t+=e.length),e[t]}t$t.nth=ogo});var RTn=H(n$t=>{"use strict";Object.defineProperty(n$t,Symbol.toStringTag,{value:"Module"});function TTn(e){return typeof e=="symbol"?1:e===null?2:e===void 0?3:e!==e?4:0}var ago=(e,t,r)=>{if(e!==t){let n=TTn(e),a=TTn(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};n$t.compareValues=ago});var x3e=H(i$t=>{"use strict";Object.defineProperty(i$t,Symbol.toStringTag,{value:"Module"});var cgo=soe(),lgo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ugo=/^\w*$/;function ggo(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||cgo.isSymbol(e)?!0:typeof e=="string"&&(ugo.test(e)||!lgo.test(e))||t!=null&&Object.hasOwn(t,e)}i$t.isKey=ggo});var Zlt=H(s$t=>{"use strict";Object.defineProperty(s$t,Symbol.toStringTag,{value:"Module"});var Ago=RTn(),dgo=x3e(),pgo=$5();function fgo(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(f=>String(f));let a=(f,I)=>{let C=f;for(let b=0;bI==null||f==null?I:typeof f=="object"&&"key"in f?Object.hasOwn(I,f.key)?I[f.key]:a(I,f.path):typeof f=="function"?f(I):Array.isArray(f)?a(I,f):typeof I=="object"?I[f]:I,l=t.map(f=>(Array.isArray(f)&&f.length===1&&(f=f[0]),f==null||typeof f=="function"||Array.isArray(f)||dgo.isKey(f)?f:{key:f,path:pgo.toPath(f)}));return e.map(f=>({original:f,criteria:l.map(I=>o(I,f))})).slice().sort((f,I)=>{for(let C=0;Cf.original)}s$t.orderBy=fgo});var a$t=H(o$t=>{"use strict";Object.defineProperty(o$t,Symbol.toStringTag,{value:"Module"});var Igo=bm(),hgo=Sf(),mgo=im();function Cgo(e,t=Igo.identity){if(!e)return[[],[]];let r=hgo.isArrayLike(e)?e:Object.values(e);t=mgo.iteratee(t);let n=[],a=[];for(let o=0;o{"use strict";Object.defineProperty(c$t,Symbol.toStringTag,{value:"Module"});function _go(e,t){let r=new Set(t),n=0;for(let a=0;a{"use strict";Object.defineProperty(u$t,Symbol.toStringTag,{value:"Module"});var ygo=l$t();function bgo(e,...t){return ygo.pull(e,t)}u$t.pull=bgo});var d$t=H(A$t=>{"use strict";Object.defineProperty(A$t,Symbol.toStringTag,{value:"Module"});var Ego=l$t();function Sgo(e,t=[]){return Ego.pull(e,Array.from(t))}A$t.pullAll=Sgo});var f$t=H(p$t=>{"use strict";Object.defineProperty(p$t,Symbol.toStringTag,{value:"Module"});var vgo=im();function Bgo(e,t,r){let n=vgo.iteratee(r),a=new Set(Array.from(t).map(l=>n(l))),o=0;for(let l=0;l{"use strict";function wgo(e,t){let r=e.length;t==null&&(t=Array(r));for(let n=0;n{"use strict";Object.defineProperty(I$t,Symbol.toStringTag,{value:"Module"});var Tgo=DTn(),Rgo=Sk();function Ngo(e,t,r){if(e?.length==null||t?.length==null)return e;e===t&&(t=Tgo(t));let n=0;r==null&&(r=(l,A)=>Rgo.isEqualsSameValueZero(l,A));let a=Array.isArray(t)?t:Array.from(t),o=a.includes(void 0);for(let l=0;lr(e[l],f))||(e[n++]=e[l]);continue}o||delete e[n++]}return e.length=n,e}I$t.pullAllWith=Ngo});var Llt=H(m$t=>{"use strict";Object.defineProperty(m$t,Symbol.toStringTag,{value:"Module"});var Dgo=eM(),kgo=Sf(),xgo=HSe();function Ggo(e,...t){if(t.length===0)return[];let r=[];for(let a=0;a{"use strict";Object.defineProperty(_$t,Symbol.toStringTag,{value:"Module"});var Fgo=eM(),C$t=C3e(),Zgo=VSe(),Lgo=Kq(),Vgo=$5();function Pgo(e,t){if(e==null)return!0;switch(typeof t){case"symbol":case"number":case"object":{if(Array.isArray(t))return kTn(e,t);if(typeof t=="number"?t=Lgo.toKey(t):typeof t=="object"&&(Object.is(t?.valueOf(),-0)?t="-0":t=String(t)),C$t.isUnsafeProperty(t))return!1;if(e?.[t]===void 0)return!0;try{return delete e[t],!0}catch{return!1}}case"string":{if(e?.[t]===void 0&&Zgo.isDeepKey(t))return kTn(e,Vgo.toPath(t));if(C$t.isUnsafeProperty(t))return!1;try{return delete e[t],!0}catch{return!1}}}}function kTn(e,t){let r=t.length===1?e:Fgo.get(e,t.slice(0,-1)),n=t[t.length-1];if(r?.[n]===void 0)return!0;if(C$t.isUnsafeProperty(n))return!1;try{return delete r[n],!0}catch{return!1}}_$t.unset=Pgo});var $q=H(y$t=>{"use strict";Object.defineProperty(y$t,Symbol.toStringTag,{value:"Module"});function Wgo(e){return Array.isArray(e)}y$t.isArray=Wgo});var E$t=H(b$t=>{"use strict";Object.defineProperty(b$t,Symbol.toStringTag,{value:"Module"});var Ogo=YSe(),xTn=OSe(),Mgo=x3e(),Hgo=Kq(),Ygo=Llt(),Qgo=G3e(),Xgo=$q(),Jgo=$5();function Ugo(e,...t){let r=Ogo.flattenDepth(t,1);if(!e)return Array(r.length);let n=Ygo.at(e,r),a=r.map(o=>xTn.isIndex(o,e.length)?Number(o):o).sort((o,l)=>l-o);for(let o of new Set(a)){if(xTn.isIndex(o,e.length)){Array.prototype.splice.call(e,o,1);continue}if(Mgo.isKey(o,e)){delete e[Hgo.toKey(o)];continue}let l=Xgo.isArray(o)?o:Jgo.toPath(o);Qgo.unset(e,l)}return n}b$t.pullAt=Ugo});var v$t=H(S$t=>{"use strict";Object.defineProperty(S$t,Symbol.toStringTag,{value:"Module"});var Kgo=bm(),jgo=ooe(),zgo=Sf();function qgo(e,t=Kgo.identity,r){if(!e)return r;let n,a;zgo.isArrayLike(e)?(n=jgo.range(0,e.length).reverse(),r==null&&e.length>0?(r=e[e.length-1],a=1):a=0):(n=Object.keys(e).reverse(),r==null?(r=e[n[0]],a=1):a=0);for(let o=a;o{"use strict";Object.defineProperty(B$t,Symbol.toStringTag,{value:"Module"});function $go(e){if(typeof e!="function")throw new TypeError("Expected a function");return function(...t){return!e.apply(this,t)}}B$t.negate=$go});var T$t=H(w$t=>{"use strict";Object.defineProperty(w$t,Symbol.toStringTag,{value:"Module"});var eAo=Dlt(),tAo=bm(),rAo=F3e(),nAo=im();function iAo(e,t=tAo.identity){return eAo.filter(e,rAo.negate(nAo.iteratee(t)))}w$t.reject=iAo});var GTn=H(R$t=>{"use strict";Object.defineProperty(R$t,Symbol.toStringTag,{value:"Module"});function sAo(e,t){let r=e.slice(),n=[],a=0;for(let o=0;o{"use strict";Object.defineProperty(N$t,Symbol.toStringTag,{value:"Module"});var oAo=GTn(),aAo=bm(),cAo=im();function lAo(e,t=aAo.identity){return oAo.remove(e,cAo.iteratee(t))}N$t.remove=lAo});var x$t=H(k$t=>{"use strict";Object.defineProperty(k$t,Symbol.toStringTag,{value:"Module"});function uAo(e){return e==null?e:e.reverse()}k$t.reverse=uAo});var FTn=H(G$t=>{"use strict";Object.defineProperty(G$t,Symbol.toStringTag,{value:"Module"});function gAo(e){let t=Math.floor(Math.random()*e.length);return e[t]}G$t.sample=gAo});var Z$t=H(F$t=>{"use strict";Object.defineProperty(F$t,Symbol.toStringTag,{value:"Module"});var ZTn=FTn(),AAo=SZ(),dAo=Sf();function pAo(e){if(e!=null)return dAo.isArrayLike(e)?ZTn.sample(AAo.toArray(e)):ZTn.sample(Object.values(e))}F$t.sample=pAo});var V$t=H(L$t=>{"use strict";Object.defineProperty(L$t,Symbol.toStringTag,{value:"Module"});function fAo(e,t){if(t==null&&(t=e,e=0),e>=t)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(t-e)+e}L$t.random=fAo});var W$t=H(P$t=>{"use strict";Object.defineProperty(P$t,Symbol.toStringTag,{value:"Module"});var IAo=V$t();function hAo(e,t){return Math.floor(IAo.random(e,t))}P$t.randomInt=hAo});var LTn=H(O$t=>{"use strict";Object.defineProperty(O$t,Symbol.toStringTag,{value:"Module"});var mAo=W$t();function CAo(e,t){if(t>e.length)throw new Error("Size must be less than or equal to the length of array.");let r=new Array(t),n=new Set;for(let a=e.length-t,o=0;a{"use strict";Object.defineProperty(M$t,Symbol.toStringTag,{value:"Module"});var VTn=Q9();function _Ao(e,t,r){return r===void 0&&(r=t,t=void 0),r!==void 0&&(r=VTn.toNumber(r),e=Math.min(e,Number.isNaN(r)?0:r)),t!==void 0&&(t=VTn.toNumber(t),e=Math.max(e,Number.isNaN(t)?0:t)),e}M$t.clamp=_Ao});var PTn=H(H$t=>{"use strict";Object.defineProperty(H$t,Symbol.toStringTag,{value:"Module"});function yAo(e){return e instanceof Map}H$t.isMap=yAo});var Vlt=H(Y$t=>{"use strict";Object.defineProperty(Y$t,Symbol.toStringTag,{value:"Module"});var bAo=PTn();function EAo(e){return bAo.isMap(e)}Y$t.isMap=EAo});var Z3e=H(Q$t=>{"use strict";Object.defineProperty(Q$t,Symbol.toStringTag,{value:"Module"});var SAo=Sf(),vAo=Vlt();function BAo(e){return e==null?[]:SAo.isArrayLike(e)||vAo.isMap(e)?Array.from(e):typeof e=="object"?Object.values(e):[]}Q$t.toArray=BAo});var J$t=H(X$t=>{"use strict";Object.defineProperty(X$t,Symbol.toStringTag,{value:"Module"});var wAo=LTn(),TAo=qq(),RAo=Ofe(),NAo=Z3e(),DAo=$w();function kAo(e,t,r){let n=NAo.toArray(e);return(r?TAo.isIterateeCall(e,t,r):t===void 0)?t=1:t=RAo.clamp(DAo.toInteger(t),0,n.length),wAo.sampleSize(n,t)}X$t.sampleSize=kAo});var WTn=H(U$t=>{"use strict";Object.defineProperty(U$t,Symbol.toStringTag,{value:"Module"});function xAo(e){let t=e.slice();for(let r=t.length-1;r>=1;r--){let n=Math.floor(Math.random()*(r+1));[t[r],t[n]]=[t[n],t[r]]}return t}U$t.shuffle=xAo});var Plt=H(K$t=>{"use strict";Object.defineProperty(K$t,Symbol.toStringTag,{value:"Module"});function GAo(e){return e==null?[]:Object.values(e)}K$t.values=GAo});var QSe=H(j$t=>{"use strict";Object.defineProperty(j$t,Symbol.toStringTag,{value:"Module"});function FAo(e){return e==null}j$t.isNil=FAo});var $$t=H(q$t=>{"use strict";Object.defineProperty(q$t,Symbol.toStringTag,{value:"Module"});var z$t=WTn(),ZAo=Plt(),LAo=$q(),VAo=Sf(),PAo=QSe(),WAo=ioe();function OAo(e){return PAo.isNil(e)?[]:LAo.isArray(e)?z$t.shuffle(e):VAo.isArrayLike(e)?z$t.shuffle(Array.from(e)):WAo.isObjectLike(e)?z$t.shuffle(ZAo.values(e)):[]}q$t.shuffle=OAo});var ter=H(eer=>{"use strict";Object.defineProperty(eer,Symbol.toStringTag,{value:"Module"});var MAo=aoe();function HAo(e){return MAo.isNil(e)?0:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}eer.size=HAo});var ner=H(rer=>{"use strict";Object.defineProperty(rer,Symbol.toStringTag,{value:"Module"});var YAo=qq(),QAo=Sf(),OTn=$w();function XAo(e,t,r){if(!QAo.isArrayLike(e))return[];let n=e.length;r===void 0?r=n:typeof r!="number"&&YAo.isIterateeCall(e,t,r)&&(t=0,r=n),t=OTn.toInteger(t),r=OTn.toInteger(r),t<0?t=Math.max(n+t,0):t=Math.min(t,n),r<0?r=Math.max(n+r,0):r=Math.min(r,n);let a=Math.max(r-t,0),o=new Array(a);for(let l=0;l{"use strict";Object.defineProperty(ier,Symbol.toStringTag,{value:"Module"});var JAo=bm(),UAo=nX(),KAo=OK(),jAo=MK();function zAo(e,t,r){if(!e)return!1;r!=null&&(t=void 0),t==null&&(t=JAo.identity);let n=Array.isArray(e)?e:Object.values(e);switch(typeof t){case"function":{if(!Array.isArray(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(oer,Symbol.toStringTag,{value:"Module"});var qAo=Zlt(),$Ao=m3e(),MTn=qq();function edo(e,...t){let r=t.length;return r>1&&MTn.isIterateeCall(e,t[0],t[1])?t=[]:r>2&&MTn.isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),qAo.orderBy(e,$Ao.flatten(t),["asc"])}oer.sortBy=edo});var Wlt=H(cer=>{"use strict";Object.defineProperty(cer,Symbol.toStringTag,{value:"Module"});function tdo(e){return e===null}cer.isNull=tdo});var uer=H(ler=>{"use strict";Object.defineProperty(ler,Symbol.toStringTag,{value:"Module"});function rdo(e){return e===void 0}ler.isUndefined=rdo});var Olt=H(ger=>{"use strict";Object.defineProperty(ger,Symbol.toStringTag,{value:"Module"});function ndo(e){return Number.isNaN(e)}ger.isNaN=ndo});var L3e=H(Aer=>{"use strict";Object.defineProperty(Aer,Symbol.toStringTag,{value:"Module"});var HTn=Wlt(),YTn=uer(),ido=HK(),QTn=Olt(),sdo=QSe(),XTn=soe(),odo=im(),ado=4294967295,cdo=ado-1;function ldo(e,t,r=ido.identity,n){if(sdo.isNil(e)||e.length===0)return 0;let a=0,o=e.length,l=odo.iteratee(r),A=l(t),f=QTn.isNaN(A),I=HTn.isNull(A),C=XTn.isSymbol(A),b=YTn.isUndefined(A);for(;a{"use strict";Object.defineProperty(der,Symbol.toStringTag,{value:"Module"});function udo(e){return typeof e=="symbol"}der.isSymbol=udo});var V3e=H(fer=>{"use strict";Object.defineProperty(fer,Symbol.toStringTag,{value:"Module"});function gdo(e){return typeof e=="number"||e instanceof Number}fer.isNumber=gdo});var Mlt=H(Ier=>{"use strict";Object.defineProperty(Ier,Symbol.toStringTag,{value:"Module"});var Ado=L3e(),ddo=aoe(),pdo=Wlt(),fdo=per(),Ido=V3e(),hdo=4294967295,mdo=hdo>>>1;function Cdo(e,t){if(ddo.isNil(e))return 0;let r=0,n=e.length;if(Ido.isNumber(t)&&t===t&&n<=mdo){for(;r>>1,o=e[a];!pdo.isNull(o)&&!fdo.isSymbol(o)&&oa)}Ier.sortedIndex=Cdo});var mer=H(her=>{"use strict";Object.defineProperty(her,Symbol.toStringTag,{value:"Module"});var _do=Mlt(),ydo=Sk();function bdo(e,t){if(!e?.length)return-1;let r=_do.sortedIndex(e,t);return r{"use strict";Object.defineProperty(Cer,Symbol.toStringTag,{value:"Module"});var Edo=L3e();function Sdo(e,t,r){return Edo.sortedIndexBy(e,t,r,!0)}Cer.sortedLastIndexBy=Sdo});var Ylt=H(_er=>{"use strict";Object.defineProperty(_er,Symbol.toStringTag,{value:"Module"});var vdo=Hlt(),Bdo=aoe(),wdo=Wlt(),Tdo=per(),Rdo=V3e(),Ndo=4294967295,Ddo=Ndo>>>1;function kdo(e,t){if(Bdo.isNil(e))return 0;let r=e.length;if(!Rdo.isNumber(t)||Number.isNaN(t)||r>Ddo)return vdo.sortedLastIndexBy(e,t,a=>a);let n=0;for(;n>>1,o=e[a];!wdo.isNull(o)&&!Tdo.isSymbol(o)&&o<=t?n=a+1:r=a}return r}_er.sortedLastIndex=kdo});var ber=H(yer=>{"use strict";Object.defineProperty(yer,Symbol.toStringTag,{value:"Module"});var xdo=Ylt(),Gdo=Sk();function Fdo(e,t){if(!e?.length)return-1;let r=xdo.sortedLastIndex(e,t)-1;return r>=0&&Gdo.isEqualsSameValueZero(e[r],t)?r:-1}yer.sortedLastIndexOf=Fdo});var JTn=H(Eer=>{"use strict";Object.defineProperty(Eer,Symbol.toStringTag,{value:"Module"});function Zdo(e){return e.slice(1)}Eer.tail=Zdo});var ver=H(Ser=>{"use strict";Object.defineProperty(Ser,Symbol.toStringTag,{value:"Module"});var Ldo=JTn(),Vdo=SZ(),Pdo=Sf();function Wdo(e){return Pdo.isArrayLike(e)?Ldo.tail(Vdo.toArray(e)):[]}Ser.tail=Wdo});var UTn=H(Ber=>{"use strict";Object.defineProperty(Ber,Symbol.toStringTag,{value:"Module"});var Odo=$w();function Mdo(e,t,r){return t=r||t===void 0?1:Odo.toInteger(t),e.slice(0,t)}Ber.take=Mdo});var Ter=H(wer=>{"use strict";Object.defineProperty(wer,Symbol.toStringTag,{value:"Module"});var Hdo=UTn(),Ydo=SZ(),Qdo=Sf(),Xdo=$w();function Jdo(e,t=1,r){return t=r?1:Xdo.toInteger(t),t<1||!Qdo.isArrayLike(e)?[]:Hdo.take(Ydo.toArray(e),t)}wer.take=Jdo});var KTn=H(Rer=>{"use strict";Object.defineProperty(Rer,Symbol.toStringTag,{value:"Module"});var Udo=$w();function Kdo(e,t,r){return t=r||t===void 0?1:Udo.toInteger(t),t<=0||e.length===0?[]:e.slice(-t)}Rer.takeRight=Kdo});var Der=H(Ner=>{"use strict";Object.defineProperty(Ner,Symbol.toStringTag,{value:"Module"});var jdo=KTn(),zdo=SZ(),qdo=Sf(),$do=$w();function epo(e,t=1,r){return t=r?1:$do.toInteger(t),t<=0||!qdo.isArrayLike(e)?[]:jdo.takeRight(zdo.toArray(e),t)}Ner.takeRight=epo});var jTn=H(ker=>{"use strict";Object.defineProperty(ker,Symbol.toStringTag,{value:"Module"});function tpo(e){return(...t)=>!e(...t)}ker.negate=tpo});var Ger=H(xer=>{"use strict";Object.defineProperty(xer,Symbol.toStringTag,{value:"Module"});var rpo=bm(),npo=jTn(),ipo=SZ(),spo=b2(),opo=im();function apo(e,t){if(!spo.isArrayLikeObject(e))return[];let r=ipo.toArray(e),n=r.findLastIndex(npo.negate(opo.iteratee(t??rpo.identity)));return r.slice(n+1)}xer.takeRightWhile=apo});var Zer=H(Fer=>{"use strict";Object.defineProperty(Fer,Symbol.toStringTag,{value:"Module"});var cpo=SZ(),lpo=HK(),upo=F3e(),gpo=b2(),Apo=im();function dpo(e,t){if(!gpo.isArrayLikeObject(e))return[];let r=cpo.toArray(e),n=r.findIndex(upo.negate(Apo.iteratee(t??lpo.identity)));return n===-1?r:r.slice(0,n)}Fer.takeWhile=dpo});var Ver=H(Ler=>{"use strict";Object.defineProperty(Ler,Symbol.toStringTag,{value:"Module"});var ppo=D3e(),fpo=Wfe(),Ipo=b2();function hpo(...e){let t=e.filter(Ipo.isArrayLikeObject),r=ppo.flatMapDepth(t,n=>Array.from(n),1);return fpo.uniq(r)}Ler.union=hpo});var Wer=H(Per=>{"use strict";Object.defineProperty(Per,Symbol.toStringTag,{value:"Module"});function mpo(e,t){let r=new Map;for(let n=0;n{"use strict";Object.defineProperty(Oer,Symbol.toStringTag,{value:"Module"});function Cpo(e,t){return function(...r){return e.apply(this,r.slice(0,t))}}Oer.ary=Cpo});var Xlt=H(Mer=>{"use strict";Object.defineProperty(Mer,Symbol.toStringTag,{value:"Module"});var _po=T3e(),ypo=Wfe(),bpo=Wer(),Epo=Qlt(),Spo=R3e(),vpo=b2(),Bpo=im();function wpo(...e){let t=_po.last(e),r=Spo.flattenArrayLike(e);return vpo.isArrayLikeObject(t)||t==null?ypo.uniq(r):bpo.uniqBy(r,Epo.ary(Bpo.iteratee(t),1))}Mer.unionBy=wpo});var Yer=H(Her=>{"use strict";Object.defineProperty(Her,Symbol.toStringTag,{value:"Module"});function Tpo(e,t){let r=[];for(let n=0;n!t(l,a))&&r.push(a)}return r}Her.uniqWith=Tpo});var Jlt=H(Qer=>{"use strict";Object.defineProperty(Qer,Symbol.toStringTag,{value:"Module"});var Rpo=T3e(),Npo=Wfe(),Dpo=Yer(),kpo=R3e(),xpo=b2();function Gpo(...e){let t=Rpo.last(e),r=kpo.flattenArrayLike(e);return xpo.isArrayLikeObject(t)||t==null?Npo.uniq(r):Dpo.uniqWith(r,t)}Qer.unionWith=Gpo});var Jer=H(Xer=>{"use strict";Object.defineProperty(Xer,Symbol.toStringTag,{value:"Module"});var Fpo=Wer(),Zpo=Qlt(),Lpo=bm(),Vpo=b2(),Ppo=im();function Wpo(e,t=Lpo.identity){return Vpo.isArrayLikeObject(e)?Fpo.uniqBy(Array.from(e),Zpo.ary(Ppo.iteratee(t),1)):[]}Xer.uniqBy=Wpo});var Ker=H(Uer=>{"use strict";Object.defineProperty(Uer,Symbol.toStringTag,{value:"Module"});var Opo=Yer(),Mpo=k3e(),Hpo=Sf();function Ypo(e,t){return Hpo.isArrayLike(e)?typeof t=="function"?Opo.uniqWith(Array.from(e),t):Mpo.uniq(Array.from(e)):[]}Uer.uniqWith=Ypo});var zer=H(jer=>{"use strict";Object.defineProperty(jer,Symbol.toStringTag,{value:"Module"});function Qpo(e){let t=0;for(let n=0;nt&&(t=e[n].length);let r=new Array(t);for(let n=0;n{"use strict";Object.defineProperty(qer,Symbol.toStringTag,{value:"Module"});var Xpo=zer(),Jpo=$q(),zTn=b2();function Upo(e){return!zTn.isArrayLikeObject(e)||!e.length?[]:(e=Jpo.isArray(e)?e:Array.from(e),e=e.filter(t=>zTn.isArrayLikeObject(t)),Xpo.unzip(e))}qer.unzip=Upo});var etr=H($er=>{"use strict";Object.defineProperty($er,Symbol.toStringTag,{value:"Module"});var qTn=zer(),Kpo=$q(),jpo=b2();function zpo(e,t){if(!jpo.isArrayLikeObject(e)||!e.length)return[];let r=Kpo.isArray(e)?qTn.unzip(e):qTn.unzip(Array.from(e,a=>Array.from(a)));if(!t)return r;let n=new Array(r.length);for(let a=0;a{"use strict";Object.defineProperty(ttr,Symbol.toStringTag,{value:"Module"});var qpo=w3e();function $po(e,...t){return qpo.difference(e,t)}ttr.without=$po});var ntr=H(rtr=>{"use strict";Object.defineProperty(rtr,Symbol.toStringTag,{value:"Module"});var efo=$Tn(),tfo=b2();function rfo(e,...t){return tfo.isArrayLikeObject(e)?efo.without(Array.from(e),...t):[]}rtr.without=rfo});var str=H(itr=>{"use strict";Object.defineProperty(itr,Symbol.toStringTag,{value:"Module"});var nfo=b2(),ifo=Z3e();function sfo(...e){let t=new Map;for(let n=0;n{"use strict";Object.defineProperty(otr,Symbol.toStringTag,{value:"Module"});function ofo(e,t,r=1,{partialWindows:n=!1}={}){if(t<=0||!Number.isInteger(t))throw new Error("Size must be a positive integer.");if(r<=0||!Number.isInteger(r))throw new Error("Step must be a positive integer.");let a=[],o=n?e.length:e.length-t+1;for(let l=0;l{"use strict";Object.defineProperty(ctr,Symbol.toStringTag,{value:"Module"});var afo=Blt(),cfo=xlt(),lfo=zq(),eRn=Xlt(),ufo=atr(),gfo=bm(),tRn=b2(),Afo=im();function dfo(...e){let t=lfo.last(e),r=gfo.identity;!tRn.isArrayLikeObject(t)&&t!=null&&(r=Afo.iteratee(t),e=e.slice(0,-1));let n=e.filter(tRn.isArrayLikeObject),a=eRn.unionBy(...n,r),o=ufo.windowed(n,2).map(([l,A])=>cfo.intersectionBy(l,A,r));return afo.differenceBy(a,eRn.unionBy(...o,r),r)}ctr.xorBy=dfo});var gtr=H(utr=>{"use strict";Object.defineProperty(utr,Symbol.toStringTag,{value:"Module"});var pfo=wlt(),ffo=Glt(),Ifo=zq(),rRn=Jlt(),hfo=atr(),mfo=b2();function Cfo(...e){let t=Ifo.last(e),r=(l,A)=>l===A;typeof t=="function"&&(r=t,e=e.slice(0,-1));let n=e.filter(mfo.isArrayLikeObject),a=rRn.unionWith(...n,r),o=hfo.windowed(n,2).map(([l,A])=>ffo.intersectionWith(l,A,r));return pfo.differenceWith(a,rRn.unionWith(...o,r),r)}utr.xorWith=Cfo});var dtr=H(Atr=>{"use strict";Object.defineProperty(Atr,Symbol.toStringTag,{value:"Module"});function _fo(...e){let t=0;for(let a=0;at&&(t=e[a].length);let r=e.length,n=Array(t);for(let a=0;a{"use strict";Object.defineProperty(ftr,Symbol.toStringTag,{value:"Module"});var yfo=dtr(),bfo=b2();function Efo(...e){return e.length?yfo.zip(...e.filter(t=>bfo.isArrayLikeObject(t))):[]}ftr.zip=Efo});var Klt=H(htr=>{"use strict";Object.defineProperty(htr,Symbol.toStringTag,{value:"Module"});var Sfo=Sk(),vfo=(e,t,r)=>{let n=e[t];(!(Object.hasOwn(e,t)&&Sfo.isEqualsSameValueZero(n,r))||r===void 0&&!(t in e))&&(e[t]=r)};htr.assignValue=vfo});var Ctr=H(mtr=>{"use strict";Object.defineProperty(mtr,Symbol.toStringTag,{value:"Module"});var Bfo=Klt();function wfo(e=[],t=[]){let r={};for(let n=0;n{"use strict";Object.defineProperty(_tr,Symbol.toStringTag,{value:"Module"});var Tfo=eM(),Rfo=C3e(),Nfo=Klt(),Dfo=OSe(),kfo=x3e(),xfo=Kq(),nRn=tM(),Gfo=$5();function Ffo(e,t,r,n){if(e==null&&!nRn.isObject(e))return e;let a;kfo.isKey(t,e)?a=[t]:Array.isArray(t)?a=t:a=Gfo.toPath(t);let o=r(Tfo.get(e,a)),l=e;for(let A=0;A{"use strict";Object.defineProperty(ytr,Symbol.toStringTag,{value:"Module"});var Zfo=XSe();function Lfo(e,t,r){return Zfo.updateWith(e,t,()=>r,()=>{})}ytr.set=Lfo});var Etr=H(btr=>{"use strict";Object.defineProperty(btr,Symbol.toStringTag,{value:"Module"});var Vfo=dtr(),Pfo=P3e(),iRn=Sf();function Wfo(e,t){let r={};if(!iRn.isArrayLike(e))return r;iRn.isArrayLike(t)||(t=[]);let n=Vfo.zip(Array.from(e),Array.from(t));for(let a=0;a{"use strict";Object.defineProperty(Str,Symbol.toStringTag,{value:"Module"});var Ofo=Ult(),Mfo=coe();function Hfo(...e){let t=e.pop();if(Mfo.isFunction(t)||(e.push(t),t=void 0),!e?.length)return[];let r=Ofo.unzip(e);return t==null?r:r.map(n=>t(...n))}Str.zipWith=Hfo});var wtr=H(Btr=>{"use strict";Object.defineProperty(Btr,Symbol.toStringTag,{value:"Module"});var Yfo=$w();function Qfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");return e=Yfo.toInteger(e),function(...r){if(--e<1)return t.apply(this,r)}}Btr.after=Qfo});var jlt=H(Ttr=>{"use strict";Object.defineProperty(Ttr,Symbol.toStringTag,{value:"Module"});var Xfo=Qlt();function Jfo(e,t=e.length,r){return r&&(t=e.length),(Number.isNaN(t)||t<0)&&(t=0),Xfo.ary(e,t)}Ttr.ary=Jfo});var zlt=H(Rtr=>{"use strict";Object.defineProperty(Rtr,Symbol.toStringTag,{value:"Module"});function Ufo(e,...t){try{return e(...t)}catch(r){return r instanceof Error?r:new Error(r)}}Rtr.attempt=Ufo});var Dtr=H(Ntr=>{"use strict";Object.defineProperty(Ntr,Symbol.toStringTag,{value:"Module"});var Kfo=$w();function jfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");let r;return e=Kfo.toInteger(e),function(...n){return--e>0&&(r=t.apply(this,n)),e<=1&&t&&(t=void 0),r}}Ntr.before=jfo});var Gtr=H(xtr=>{"use strict";Object.defineProperty(xtr,Symbol.toStringTag,{value:"Module"});function ktr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ztr,Symbol.toStringTag,{value:"Module"});function Ftr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ptr,Symbol.toStringTag,{value:"Module"});function W3e(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===W3e.placeholder),l=a.length-o.length;return lA===W3e.placeholder),l=a.length-o.length;return a=$fo(a,r),l{"use strict";Object.defineProperty(Mtr,Symbol.toStringTag,{value:"Module"});function JSe(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===JSe.placeholder),l=a.length-o.length;return lA===JSe.placeholder),l=a.length-o.length;return a=eIo(a,r),ll===JSe.placeholder).length,n=Math.max(e.length-r,0),a=[],o=0;for(let l=0;l{"use strict";Object.defineProperty(Ytr,Symbol.toStringTag,{value:"Module"});function tIo(e,t,{signal:r,edges:n}={}){let a,o=null,l=n!=null&&n.includes("leading"),A=n==null||n.includes("trailing"),f=()=>{o!==null&&(e.apply(a,o),a=void 0,o=null)},I=()=>{A&&f(),N()},C=null,b=()=>{C!=null&&clearTimeout(C),C=setTimeout(()=>{C=null,I()},t)},E=()=>{C!==null&&(clearTimeout(C),C=null)},N=()=>{E(),a=void 0,o=null},B=()=>{f()},F=function(...Q){if(r?.aborted)return;a=this,o=Q;let X=C==null;b(),l&&X&&f()};return F.schedule=b,F.cancel=N,F.flush=B,r?.addEventListener("abort",N,{once:!0}),F}Ytr.debounce=tIo});var qlt=H(Qtr=>{"use strict";Object.defineProperty(Qtr,Symbol.toStringTag,{value:"Module"});var rIo=aRn();function nIo(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:o}=r,l=Array(2);n&&(l[0]="leading"),a&&(l[1]="trailing");let A,f=null,I=rIo.debounce(function(...E){A=e.apply(this,E),f=null},t,{edges:l}),C=function(...E){return o!=null&&(f===null&&(f=Date.now()),Date.now()-f>=o)?(A=e.apply(this,E),f=Date.now(),I.cancel(),I.schedule(),A):(I.apply(this,E),A)},b=()=>(I.flush(),A);return C.cancel=I.cancel,C.flush=b,C}Qtr.debounce=nIo});var Jtr=H(Xtr=>{"use strict";Object.defineProperty(Xtr,Symbol.toStringTag,{value:"Module"});function iIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,1,...t)}Xtr.defer=iIo});var Ktr=H(Utr=>{"use strict";Object.defineProperty(Utr,Symbol.toStringTag,{value:"Module"});var sIo=Q9();function oIo(e,t,...r){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,sIo.toNumber(t)||0,...r)}Utr.delay=oIo});var ztr=H(jtr=>{"use strict";Object.defineProperty(jtr,Symbol.toStringTag,{value:"Module"});function aIo(e){return function(...t){return e.apply(this,t.reverse())}}jtr.flip=aIo});var $tr=H(qtr=>{"use strict";Object.defineProperty(qtr,Symbol.toStringTag,{value:"Module"});function cIo(...e){return function(...t){let r=e.length?e[0].apply(this,t):t[0];for(let n=1;n{"use strict";Object.defineProperty(trr,Symbol.toStringTag,{value:"Module"});var lIo=m3e(),uIo=$tr();function gIo(...e){let t=lIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return uIo.flow(...t)}trr.flow=gIo});var cRn=H(nrr=>{"use strict";Object.defineProperty(nrr,Symbol.toStringTag,{value:"Module"});var AIo=$tr();function dIo(...e){return AIo.flow(...e.reverse())}nrr.flowRight=dIo});var srr=H(irr=>{"use strict";Object.defineProperty(irr,Symbol.toStringTag,{value:"Module"});var pIo=m3e(),fIo=cRn();function IIo(...e){let t=pIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return fIo.flowRight(...t)}irr.flowRight=IIo});var crr=H(arr=>{"use strict";Object.defineProperty(arr,Symbol.toStringTag,{value:"Module"});function orr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");let r=function(...a){let o=t?t.apply(this,a):a[0],l=r.cache;if(l.has(o))return l.get(o);let A=e.apply(this,a);return r.cache=l.set(o,A)||l,A},n=orr.Cache||Map;return r.cache=new n,r}orr.Cache=Map;arr.memoize=orr});var urr=H(lrr=>{"use strict";Object.defineProperty(lrr,Symbol.toStringTag,{value:"Module"});var hIo=$w();function mIo(e=0){return function(...t){return t.at(hIo.toInteger(e))}}lrr.nthArg=mIo});var lRn=H(grr=>{"use strict";Object.defineProperty(grr,Symbol.toStringTag,{value:"Module"});function CIo(e){let t=!1,r;return function(...n){return t||(t=!0,r=e(...n)),r}}grr.once=CIo});var drr=H(Arr=>{"use strict";Object.defineProperty(Arr,Symbol.toStringTag,{value:"Module"});var _Io=lRn();function yIo(e){return _Io.once(e)}Arr.once=yIo});var frr=H(prr=>{"use strict";Object.defineProperty(prr,Symbol.toStringTag,{value:"Module"});var bIo=bm(),EIo=im();function SIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");let r=t.flat();return function(...n){let a=Math.min(n.length,r.length),o=[...n];for(let l=0;l{"use strict";Object.defineProperty($lt,Symbol.toStringTag,{value:"Module"});function uRn(e,...t){return gRn(e,ARn,...t)}function gRn(e,t,...r){let n=function(...a){let o=0,l=r.slice().map(f=>f===t?a[o++]:f),A=a.slice(o);return e.apply(this,l.concat(A))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var ARn=Symbol("partial.placeholder");uRn.placeholder=ARn;$lt.partial=uRn;$lt.partialImpl=gRn});var mrr=H(hrr=>{"use strict";Object.defineProperty(hrr,Symbol.toStringTag,{value:"Module"});var vIo=dRn();function Irr(e,...t){return vIo.partialImpl(e,Irr.placeholder,...t)}Irr.placeholder=Symbol("compat.partial.placeholder");hrr.partial=Irr});var hRn=H(eut=>{"use strict";Object.defineProperty(eut,Symbol.toStringTag,{value:"Module"});function pRn(e,...t){return fRn(e,IRn,...t)}function fRn(e,t,...r){let n=function(...a){let o=r.filter(C=>C===t).length,l=Math.max(a.length-o,0),A=a.slice(0,l),f=l,I=r.slice().map(C=>C===t?a[f++]:C);return e.apply(this,A.concat(I))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var IRn=Symbol("partialRight.placeholder");pRn.placeholder=IRn;eut.partialRight=pRn;eut.partialRightImpl=fRn});var yrr=H(_rr=>{"use strict";Object.defineProperty(_rr,Symbol.toStringTag,{value:"Module"});var BIo=hRn();function Crr(e,...t){return BIo.partialRightImpl(e,Crr.placeholder,...t)}Crr.placeholder=Symbol("compat.partialRight.placeholder");_rr.partialRight=Crr});var Err=H(brr=>{"use strict";Object.defineProperty(brr,Symbol.toStringTag,{value:"Module"});var wIo=Pfe();function TIo(e,...t){let r=wIo.flatten(t);return function(...n){let a=r.map(o=>n[o]).slice(0,n.length);for(let o=a.length;o{"use strict";Object.defineProperty(Srr,Symbol.toStringTag,{value:"Module"});function RIo(e,t=e.length-1){return function(...r){let n=r.slice(t),a=r.slice(0,t);for(;a.length{"use strict";Object.defineProperty(vrr,Symbol.toStringTag,{value:"Module"});var NIo=mRn();function DIo(e,t=e.length-1){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=e.length-1),NIo.rest(e,t)}vrr.rest=DIo});var Trr=H(wrr=>{"use strict";Object.defineProperty(wrr,Symbol.toStringTag,{value:"Module"});function kIo(e,t=0){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=0),function(...r){let n=r[t],a=r.slice(0,t);return n&&a.push(...n),e.apply(this,a)}}wrr.spread=kIo});var Nrr=H(Rrr=>{"use strict";Object.defineProperty(Rrr,Symbol.toStringTag,{value:"Module"});var xIo=qlt();function GIo(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return xIo.debounce(e,t,{leading:n,maxWait:t,trailing:a})}Rrr.throttle=GIo});var krr=H(Drr=>{"use strict";Object.defineProperty(Drr,Symbol.toStringTag,{value:"Module"});var FIo=jlt();function ZIo(e){return FIo.ary(e,1)}Drr.unary=ZIo});var Grr=H(xrr=>{"use strict";Object.defineProperty(xrr,Symbol.toStringTag,{value:"Module"});var LIo=bm(),VIo=coe();function PIo(e,t){return function(...r){return(VIo.isFunction(t)?t:LIo.identity).apply(this,[e,...r])}}xrr.wrap=PIo});var Zrr=H(Frr=>{"use strict";Object.defineProperty(Frr,Symbol.toStringTag,{value:"Module"});var CRn=Q9(),_Rn=qy();function WIo(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=_Rn.toString(e),t=_Rn.toString(t)):(e=CRn.toNumber(e),t=CRn.toNumber(t)),e+t)}Frr.add=WIo});var tut=H(Lrr=>{"use strict";Object.defineProperty(Lrr,Symbol.toStringTag,{value:"Module"});function OIo(e,t,r=0){if(t=Number(t),Object.is(t,-0)&&(t="-0"),r=Math.min(Number.parseInt(r,10),292),r){let[n,a=0]=t.toString().split("e"),o=Math[e](+`${n}e${Number(a)+r}`);Object.is(o,-0)&&(o="-0");let[l,A=0]=o.toString().split("e");return+`${l}e${Number(A)-r}`}return Math[e](Number(t))}Lrr.decimalAdjust=OIo});var Prr=H(Vrr=>{"use strict";Object.defineProperty(Vrr,Symbol.toStringTag,{value:"Module"});var MIo=tut();function HIo(e,t=0){return MIo.decimalAdjust("ceil",e,t)}Vrr.ceil=HIo});var Orr=H(Wrr=>{"use strict";Object.defineProperty(Wrr,Symbol.toStringTag,{value:"Module"});var yRn=Q9(),bRn=qy();function YIo(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=bRn.toString(e),t=bRn.toString(t)):(e=yRn.toNumber(e),t=yRn.toNumber(t)),e/t)}Wrr.divide=YIo});var Hrr=H(Mrr=>{"use strict";Object.defineProperty(Mrr,Symbol.toStringTag,{value:"Module"});var QIo=tut();function XIo(e,t=0){return QIo.decimalAdjust("floor",e,t)}Mrr.floor=XIo});var ERn=H(Yrr=>{"use strict";Object.defineProperty(Yrr,Symbol.toStringTag,{value:"Module"});function JIo(e,t,r){if(r==null&&(r=t,t=0),t>=r)throw new Error("The maximum value must be greater than the minimum value.");return t<=e&&e{"use strict";Object.defineProperty(Qrr,Symbol.toStringTag,{value:"Module"});var UIo=ERn();function KIo(e,t,r){return t||(t=0),r!=null&&!r&&(r=0),t!=null&&typeof t!="number"&&(t=Number(t)),r==null&&t===0||(r!=null&&typeof r!="number"&&(r=Number(r)),r!=null&&t>r&&([t,r]=[r,t]),t===r)?!1:UIo.inRange(e,t,r)}Qrr.inRange=KIo});var Urr=H(Jrr=>{"use strict";Object.defineProperty(Jrr,Symbol.toStringTag,{value:"Module"});function jIo(e){if(!e||e.length===0)return;let t;for(let r=0;rt)&&(t=n)}return t}Jrr.max=jIo});var SRn=H(Krr=>{"use strict";Object.defineProperty(Krr,Symbol.toStringTag,{value:"Module"});function zIo(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;an&&(n=l,r=o)}return r}Krr.maxBy=zIo});var zrr=H(jrr=>{"use strict";Object.defineProperty(jrr,Symbol.toStringTag,{value:"Module"});var qIo=SRn(),$Io=bm(),eho=im();function tho(e,t){if(e!=null)return qIo.maxBy(Array.from(e),eho.iteratee(t??$Io.identity))}jrr.maxBy=tho});var rut=H(qrr=>{"use strict";Object.defineProperty(qrr,Symbol.toStringTag,{value:"Module"});var rho=im();function nho(e,t){if(!e||!e.length)return 0;t!=null&&(t=rho.iteratee(t));let r;for(let n=0;n{"use strict";Object.defineProperty($rr,Symbol.toStringTag,{value:"Module"});var iho=rut();function sho(e){return iho.sumBy(e)}$rr.sum=sho});var tnr=H(enr=>{"use strict";Object.defineProperty(enr,Symbol.toStringTag,{value:"Module"});var oho=nut();function aho(e){let t=e?e.length:0;return t===0?NaN:oho.sum(e)/t}enr.mean=aho});var vRn=H(rnr=>{"use strict";Object.defineProperty(rnr,Symbol.toStringTag,{value:"Module"});function cho(e,t){let r=0;for(let n=0;n{"use strict";Object.defineProperty(nnr,Symbol.toStringTag,{value:"Module"});var lho=vRn();function uho(e,t){return lho.sumBy(e,r=>t(r))/e.length}nnr.meanBy=uho});var snr=H(inr=>{"use strict";Object.defineProperty(inr,Symbol.toStringTag,{value:"Module"});var gho=bm(),Aho=BRn(),dho=im();function pho(e,t){return e==null?NaN:Aho.meanBy(Array.from(e),dho.iteratee(t??gho.identity))}inr.meanBy=pho});var anr=H(onr=>{"use strict";Object.defineProperty(onr,Symbol.toStringTag,{value:"Module"});function fho(e){if(!e||e.length===0)return;let t;for(let r=0;r{"use strict";Object.defineProperty(cnr,Symbol.toStringTag,{value:"Module"});function Iho(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;a{"use strict";Object.defineProperty(lnr,Symbol.toStringTag,{value:"Module"});var hho=wRn(),mho=bm(),Cho=im();function _ho(e,t){if(e!=null)return hho.minBy(Array.from(e),Cho.iteratee(t??mho.identity))}lnr.minBy=_ho});var Anr=H(gnr=>{"use strict";Object.defineProperty(gnr,Symbol.toStringTag,{value:"Module"});var TRn=Q9(),RRn=qy();function yho(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=RRn.toString(e),t=RRn.toString(t)):(e=TRn.toNumber(e),t=TRn.toNumber(t)),e*t)}gnr.multiply=yho});var pnr=H(dnr=>{"use strict";Object.defineProperty(dnr,Symbol.toStringTag,{value:"Module"});function bho(e,t=0,r){return r&&(t=0),Number.parseInt(e,t)}dnr.parseInt=bho});var Inr=H(fnr=>{"use strict";Object.defineProperty(fnr,Symbol.toStringTag,{value:"Module"});var NRn=Ofe(),Eho=V$t(),Sho=W$t();function vho(...e){let t=0,r=1,n=!1;switch(e.length){case 1:{typeof e[0]=="boolean"?n=e[0]:r=e[0];break}case 2:typeof e[1]=="boolean"?(r=e[0],n=e[1]):(t=e[0],r=e[1]);case 3:typeof e[2]=="object"&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,r=e[0],n=!1):(t=e[0],r=e[1],n=e[2])}return typeof t!="number"&&(t=Number(t)),typeof r!="number"&&(t=Number(r)),t||(t=0),r||(r=0),t>r&&([t,r]=[r,t]),t=NRn.clamp(t,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),r=NRn.clamp(r,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),t===r?t:n?Eho.random(t,r+1):Sho.randomInt(t,r+1)}fnr.random=vho});var Cnr=H(mnr=>{"use strict";Object.defineProperty(mnr,Symbol.toStringTag,{value:"Module"});var Bho=qq(),hnr=MSe();function who(e,t,r){r&&typeof r!="number"&&Bho.isIterateeCall(e,t,r)&&(t=r=void 0),e=hnr.toFinite(e),t===void 0?(t=e,e=0):t=hnr.toFinite(t),r=r===void 0?e{"use strict";Object.defineProperty(ynr,Symbol.toStringTag,{value:"Module"});var Tho=qq(),_nr=MSe();function Rho(e,t,r){r&&typeof r!="number"&&Tho.isIterateeCall(e,t,r)&&(t=r=void 0),e=_nr.toFinite(e),t===void 0?(t=e,e=0):t=_nr.toFinite(t),r=r===void 0?e=0;o--)a[o]=e,e+=r;return a}ynr.rangeRight=Rho});var Snr=H(Enr=>{"use strict";Object.defineProperty(Enr,Symbol.toStringTag,{value:"Module"});var Nho=tut();function Dho(e,t=0){return Nho.decimalAdjust("round",e,t)}Enr.round=Dho});var Bnr=H(vnr=>{"use strict";Object.defineProperty(vnr,Symbol.toStringTag,{value:"Module"});var DRn=Q9(),kRn=qy();function kho(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=kRn.toString(e),t=kRn.toString(t)):(e=DRn.toNumber(e),t=DRn.toNumber(t)),e-t)}vnr.subtract=kho});var xRn=H(wnr=>{"use strict";Object.defineProperty(wnr,Symbol.toStringTag,{value:"Module"});function xho(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}wnr.isPlainObject=xho});var Rnr=H(Tnr=>{"use strict";Object.defineProperty(Tnr,Symbol.toStringTag,{value:"Module"});var GRn=noe(),FRn=xRn(),ZRn=y3e(),LRn=Zfe(),hy=b3e(),Gho=Sk();function Fho(e,t,r){return O3e(e,t,void 0,void 0,void 0,void 0,r)}function O3e(e,t,r,n,a,o,l){let A=l(e,t,r,n,a,o);if(A!==void 0)return A;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return M3e(e,t,o,l)}return M3e(e,t,o,l)}function M3e(e,t,r,n){if(Object.is(e,t))return!0;let a=LRn.getTag(e),o=LRn.getTag(t);if(a===hy.argumentsTag&&(a=hy.objectTag),o===hy.argumentsTag&&(o=hy.objectTag),a!==o)return!1;switch(a){case hy.stringTag:return e.toString()===t.toString();case hy.numberTag:{let f=e.valueOf(),I=t.valueOf();return Gho.isEqualsSameValueZero(f,I)}case hy.booleanTag:case hy.dateTag:case hy.symbolTag:return Object.is(e.valueOf(),t.valueOf());case hy.regexpTag:return e.source===t.source&&e.flags===t.flags;case hy.functionTag:return e===t}r=r??new Map;let l=r.get(e),A=r.get(t);if(l!=null&&A!=null)return l===t;r.set(e,t),r.set(t,e);try{switch(a){case hy.mapTag:{if(e.size!==t.size)return!1;for(let[f,I]of e.entries())if(!t.has(f)||!O3e(I,t.get(f),f,e,t,r,n))return!1;return!0}case hy.setTag:{if(e.size!==t.size)return!1;let f=Array.from(e.values()),I=Array.from(t.values());for(let C=0;CO3e(b,N,void 0,e,t,r,n));if(E===-1)return!1;I.splice(E,1)}return!0}case hy.arrayTag:case hy.uint8ArrayTag:case hy.uint8ClampedArrayTag:case hy.uint16ArrayTag:case hy.uint32ArrayTag:case hy.bigUint64ArrayTag:case hy.int8ArrayTag:case hy.int16ArrayTag:case hy.int32ArrayTag:case hy.bigInt64ArrayTag:case hy.float32ArrayTag:case hy.float64ArrayTag:{if(GRn.isBuffer(e)!==GRn.isBuffer(t)||e.length!==t.length)return!1;for(let f=0;f{"use strict";Object.defineProperty(Nnr,Symbol.toStringTag,{value:"Module"});function Zho(){}Nnr.noop=Zho});var xnr=H(knr=>{"use strict";Object.defineProperty(knr,Symbol.toStringTag,{value:"Module"});var Lho=Rnr(),Vho=Dnr();function Pho(e,t){return Lho.isEqualWith(e,t,Vho.noop)}knr.isEqual=Pho});var Fnr=H(Gnr=>{"use strict";Object.defineProperty(Gnr,Symbol.toStringTag,{value:"Module"});function Who(...e){}Gnr.noop=Who});var iut=H(Znr=>{"use strict";Object.defineProperty(Znr,Symbol.toStringTag,{value:"Module"});function Oho(e){let t=e?.constructor,r=typeof t=="function"?t.prototype:Object.prototype;return e===r}Znr.isPrototype=Oho});var e$=H(Lnr=>{"use strict";Object.defineProperty(Lnr,Symbol.toStringTag,{value:"Module"});var Mho=Slt();function Hho(e){return Mho.isTypedArray(e)}Lnr.isTypedArray=Hho});var H3e=H(Vnr=>{"use strict";Object.defineProperty(Vnr,Symbol.toStringTag,{value:"Module"});var Yho=$w();function Qho(e,t){if(e=Yho.toInteger(e),e<1||!Number.isSafeInteger(e))return[];let r=new Array(e);for(let n=0;n{"use strict";Object.defineProperty(Pnr,Symbol.toStringTag,{value:"Module"});var Xho=noe(),Jho=iut(),Uho=Sf(),Kho=e$(),jho=H3e();function zho(e){if(Uho.isArrayLike(e))return qho(e);let t=Object.keys(Object(e));return Jho.isPrototype(e)?t.filter(r=>r!=="constructor"):t}function qho(e){let t=jho.times(e.length,a=>`${a}`),r=new Set(t);Xho.isBuffer(e)&&(r.add("offset"),r.add("parent")),Kho.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=Object.keys(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Pnr.keys=zho});var Onr=H(Wnr=>{"use strict";Object.defineProperty(Wnr,Symbol.toStringTag,{value:"Module"});var $ho=YK(),emo=Sk();function tmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Mnr,Symbol.toStringTag,{value:"Module"});var nmo=noe(),imo=iut(),smo=Sf(),omo=e$(),amo=H3e();function cmo(e){if(e==null)return[];switch(typeof e){case"object":case"function":return smo.isArrayLike(e)?umo(e):imo.isPrototype(e)?lmo(e):sut(e);default:return sut(Object(e))}}function sut(e){let t=[];for(let r in e)t.push(r);return t}function lmo(e){return sut(e).filter(r=>r!=="constructor")}function umo(e){let t=amo.times(e.length,a=>`${a}`),r=new Set(t);nmo.isBuffer(e)&&(r.add("offset"),r.add("parent")),omo.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=sut(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Mnr.keysIn=cmo});var Ynr=H(Hnr=>{"use strict";Object.defineProperty(Hnr,Symbol.toStringTag,{value:"Module"});var gmo=iX(),Amo=Sk();function dmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Qnr,Symbol.toStringTag,{value:"Module"});var fmo=iX(),Imo=Sk();function hmo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(Jnr,Symbol.toStringTag,{value:"Module"});var Cmo=YK(),_mo=Sk();function ymo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(jnr,Symbol.toStringTag,{value:"Module"});var Emo=PSe(),VRn=Zfe(),KC=b3e(),Smo=$q(),vmo=e$();function Bmo(e){if(Emo.isPrimitive(e))return e;let t=VRn.getTag(e);if(!wmo(e))return{};if(Smo.isArray(e)){let n=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(n.index=e.index,n.input=e.input),n}if(vmo.isTypedArray(e)){let n=e,a=n.constructor;return new a(n.buffer,n.byteOffset,n.length)}if(t===KC.arrayBufferTag)return new ArrayBuffer(e.byteLength);if(t===KC.dataViewTag){let n=e,a=n.buffer,o=n.byteOffset,l=n.byteLength,A=new ArrayBuffer(l),f=new Uint8Array(a,o,l);return new Uint8Array(A).set(f),new DataView(A)}if(t===KC.booleanTag||t===KC.numberTag||t===KC.stringTag){let n=e.constructor,a=new n(e.valueOf());return t===KC.stringTag?Rmo(a,e):Knr(a,e),a}if(t===KC.dateTag)return new Date(Number(e));if(t===KC.regexpTag){let n=e,a=new RegExp(n.source,n.flags);return a.lastIndex=n.lastIndex,a}if(t===KC.symbolTag)return Object(Symbol.prototype.valueOf.call(e));if(t===KC.mapTag){let n=e,a=new Map;return n.forEach((o,l)=>{a.set(l,o)}),a}if(t===KC.setTag){let n=e,a=new Set;return n.forEach(o=>{a.add(o)}),a}if(t===KC.argumentsTag){let n=e,a={};return Knr(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}let r={};return Nmo(r,e),Knr(r,e),Tmo(r,e),r}function wmo(e){switch(VRn.getTag(e)){case KC.argumentsTag:case KC.arrayTag:case KC.arrayBufferTag:case KC.dataViewTag:case KC.booleanTag:case KC.dateTag:case KC.float32ArrayTag:case KC.float64ArrayTag:case KC.int8ArrayTag:case KC.int16ArrayTag:case KC.int32ArrayTag:case KC.mapTag:case KC.numberTag:case KC.objectTag:case KC.regexpTag:case KC.setTag:case KC.stringTag:case KC.symbolTag:case KC.uint8ArrayTag:case KC.uint8ClampedArrayTag:case KC.uint16ArrayTag:case KC.uint32ArrayTag:return!0;default:return!1}}function Knr(e,t){for(let r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function Tmo(e,t){let r=Object.getOwnPropertySymbols(t);for(let n=0;n=r)&&(e[n]=t[n])}function Nmo(e,t){let r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}jnr.clone=Bmo});var qnr=H(znr=>{"use strict";Object.defineProperty(znr,Symbol.toStringTag,{value:"Module"});var PRn=out();function Dmo(e,t){if(!t)return PRn.clone(e);let r=t(e);return r!==void 0?r:PRn.clone(e)}znr.cloneWith=Dmo});var eir=H($nr=>{"use strict";Object.defineProperty($nr,Symbol.toStringTag,{value:"Module"});var kmo=YK(),xmo=Klt(),Gmo=tM();function Fmo(e,t){let r=Gmo.isObject(e)?Object.create(e):{};if(t!=null){let n=kmo.keys(t);for(let a=0;a{"use strict";Object.defineProperty(tir,Symbol.toStringTag,{value:"Module"});var Zmo=aoe(),Lmo=qq(),Vmo=Sk();function Pmo(e,...t){e=Object(e);let r=Object.prototype,n=t.length,a=n>2?t[2]:void 0;a&&Lmo.isIterateeCall(t[0],t[1],a)&&(n=1);for(let o=0;o{"use strict";Object.defineProperty(rir,Symbol.toStringTag,{value:"Module"});function Wmo(e){if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){let r=e[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${r}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}rir.isPlainObject=Wmo});var iir=H(nir=>{"use strict";Object.defineProperty(nir,Symbol.toStringTag,{value:"Module"});var Q3e=Mfe();function Omo(e,...t){e=Object(e);for(let r=0;r{"use strict";Object.defineProperty(sir,Symbol.toStringTag,{value:"Module"});function Qmo(e,t){return Object.keys(e).find(n=>t(e[n],n,e))}sir.findKey=Qmo});var air=H(oir=>{"use strict";Object.defineProperty(oir,Symbol.toStringTag,{value:"Module"});var Xmo=WRn(),Jmo=HK(),Umo=tM(),Kmo=im();function jmo(e,t){if(!Umo.isObject(e))return;let r=Kmo.iteratee(t??Jmo.identity);return Xmo.findKey(e,r)}oir.findKey=jmo});var lir=H(cir=>{"use strict";Object.defineProperty(cir,Symbol.toStringTag,{value:"Module"});var zmo=HK(),qmo=tM(),$mo=im();function eCo(e,t){if(!qmo.isObject(e))return;let r=$mo.iteratee(t??zmo.identity);return Object.keys(e).findLast(a=>r(e[a],a,e))}cir.findLastKey=eCo});var gir=H(uir=>{"use strict";Object.defineProperty(uir,Symbol.toStringTag,{value:"Module"});var tCo=bm();function rCo(e,t=tCo.identity){if(e==null)return e;for(let r in e)if(t(e[r],r,e)===!1)break;return e}uir.forIn=rCo});var dir=H(Air=>{"use strict";Object.defineProperty(Air,Symbol.toStringTag,{value:"Module"});var nCo=bm();function iCo(e,t=nCo.identity){if(e==null)return e;let r=[];for(let n in e)r.push(n);for(let n=r.length-1;n>=0;n--){let a=r[n];if(t(e[a],a,e)===!1)break}return e}Air.forInRight=iCo});var fir=H(pir=>{"use strict";Object.defineProperty(pir,Symbol.toStringTag,{value:"Module"});var sCo=YK(),oCo=bm();function aCo(e,t=oCo.identity){if(e==null)return e;let r=Object(e),n=sCo.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Iir,Symbol.toStringTag,{value:"Module"});var cCo=YK(),lCo=bm();function uCo(e,t=lCo.identity){if(e==null)return e;let r=Object(e),n=cCo.keys(e);for(let a=n.length-1;a>=0;--a){let o=n[a];if(t(r[o],o,r)===!1)break}return e}Iir.forOwnRight=uCo});var Cir=H(mir=>{"use strict";Object.defineProperty(mir,Symbol.toStringTag,{value:"Module"});var gCo=Sf();function ACo(e){if(!gCo.isArrayLike(e))return{};let t={};for(let r=0;r{"use strict";Object.defineProperty(_ir,Symbol.toStringTag,{value:"Module"});var dCo=YK();function pCo(e){return e==null?[]:dCo.keys(e).filter(t=>typeof e[t]=="function")}_ir.functions=pCo});var Eir=H(bir=>{"use strict";Object.defineProperty(bir,Symbol.toStringTag,{value:"Module"});var fCo=coe();function ICo(e){if(e==null)return[];let t=[];for(let r in e)fCo.isFunction(e[r])&&t.push(r);return t}bir.functionsIn=ICo});var vir=H(Sir=>{"use strict";Object.defineProperty(Sir,Symbol.toStringTag,{value:"Module"});var hCo=VSe(),mCo=OSe(),CCo=Vfe(),_Co=$5();function yCo(e,t){if(e==null)return!1;let r;if(Array.isArray(t)?r=t:typeof t=="string"&&hCo.isDeepKey(t)&&e[t]==null?r=_Co.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Bir,Symbol.toStringTag,{value:"Module"});function bCo(e){let t={},r=Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(wir,Symbol.toStringTag,{value:"Module"});var ECo=ORn();function SCo(e){return ECo.invert(e)}wir.invert=SCo});var Nir=H(Rir=>{"use strict";Object.defineProperty(Rir,Symbol.toStringTag,{value:"Module"});var vCo=bm(),BCo=aoe(),wCo=im();function TCo(e,t){let r={};if(BCo.isNil(e))return r;t==null&&(t=vCo.identity);let n=Object.keys(e),a=wCo.iteratee(t);for(let o=0;o{"use strict";Object.defineProperty(Dir,Symbol.toStringTag,{value:"Module"});function RCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(kir,Symbol.toStringTag,{value:"Module"});var NCo=bm(),DCo=MRn(),kCo=im();function xCo(e,t=NCo.identity){return e==null?{}:DCo.mapKeys(e,kCo.iteratee(t))}kir.mapKeys=xCo});var HRn=H(Gir=>{"use strict";Object.defineProperty(Gir,Symbol.toStringTag,{value:"Module"});function GCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Fir,Symbol.toStringTag,{value:"Module"});var FCo=bm(),ZCo=HRn(),LCo=im();function VCo(e,t=FCo.identity){return e==null?{}:ZCo.mapValues(e,LCo.iteratee(t))}Fir.mapValues=VCo});var YRn=H(Lir=>{"use strict";Object.defineProperty(Lir,Symbol.toStringTag,{value:"Module"});var PCo=PSe(),WCo=Slt();function OCo(e){if(PCo.isPrimitive(e))return e;if(Array.isArray(e)||WCo.isTypedArray(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);let r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){let n=new r(e);return n.lastIndex=e.lastIndex,n}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let n;return e instanceof AggregateError?n=new r(e.errors,e.message,{cause:e.cause}):n=new r(e.message,{cause:e.cause}),n.stack=e.stack,Object.assign(n,e),n}if(typeof File<"u"&&e instanceof File)return new r([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e=="object"){let n=Object.create(t);return Object.assign(n,e)}return e}Lir.clone=OCo});var lut=H(Wir=>{"use strict";Object.defineProperty(Wir,Symbol.toStringTag,{value:"Module"});var QRn=WSe(),MCo=C3e(),HCo=YRn(),YCo=noe(),QCo=PSe(),XCo=y3e(),XRn=Vfe(),JCo=b2(),JRn=ioe(),Vir=Mfe(),Pir=e$();function UCo(e,...t){let r=t.slice(0,-1),n=t[t.length-1],a=e;for(let o=0;o{"use strict";Object.defineProperty(Oir,Symbol.toStringTag,{value:"Module"});var KCo=lut(),jCo=Dnr();function zCo(e,...t){return KCo.mergeWith(e,...t,jCo.noop)}Oir.merge=zCo});var uut=H(Hir=>{"use strict";Object.defineProperty(Hir,Symbol.toStringTag,{value:"Module"});var qCo=y3e();function $Co(e){let t=[];for(;e;)t.push(...qCo.getSymbols(e)),e=Object.getPrototypeOf(e);return t}Hir.getSymbolsIn=$Co});var Qir=H(Yir=>{"use strict";Object.defineProperty(Yir,Symbol.toStringTag,{value:"Module"});var e_o=v3e(),KRn=iX(),URn=G3e(),jRn=uut(),t_o=VSe(),r_o=Pfe(),n_o=Mfe();function i_o(e,...t){if(e==null)return{};t=r_o.flatten(t);let r=s_o(e,t);for(let n=0;nArray.isArray(n)||t_o.isDeepKey(n))?a_o(e):o_o(e)}function o_o(e){let t={},r=[...KRn.keysIn(e),...jRn.getSymbolsIn(e)];for(let n=0;n{if(!n_o.isPlainObject(o))return o})}return t}Yir.omit=i_o});var Jir=H(Xir=>{"use strict";Object.defineProperty(Xir,Symbol.toStringTag,{value:"Module"});var c_o=iX(),l_o=ooe(),u_o=uut(),g_o=HK(),A_o=Sf(),d_o=soe(),p_o=im();function f_o(e,t){if(e==null)return{};let r={},n=p_o.iteratee(t??g_o.identity),a=A_o.isArrayLike(e)?l_o.range(0,e.length):[...c_o.keysIn(e),...u_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(Uir,Symbol.toStringTag,{value:"Module"});var I_o=eM(),h_o=B3e(),m_o=P3e(),C_o=Sf(),__o=QSe();function y_o(e,...t){if(__o.isNil(e))return{};let r={};for(let n=0;n{"use strict";Object.defineProperty(jir,Symbol.toStringTag,{value:"Module"});var b_o=iX(),E_o=ooe(),S_o=uut(),v_o=HK(),B_o=Sf(),w_o=soe(),T_o=im();function R_o(e,t){if(e==null)return{};let r=T_o.iteratee(t??v_o.identity),n={},a=B_o.isArrayLike(e)?E_o.range(0,e.length):[...b_o.keysIn(e),...S_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(qir,Symbol.toStringTag,{value:"Module"});var N_o=eM();function D_o(e){return function(t){return N_o.get(e,t)}}qir.propertyOf=D_o});var tsr=H(esr=>{"use strict";Object.defineProperty(esr,Symbol.toStringTag,{value:"Module"});var k_o=x3e(),x_o=Kq(),G_o=$5(),F_o=qy();function Z_o(e,t,r){k_o.isKey(t,e)?t=[t]:Array.isArray(t)||(t=G_o.toPath(F_o.toString(t)));let n=Math.max(t.length,1);for(let a=0;a{"use strict";Object.defineProperty(rsr,Symbol.toStringTag,{value:"Module"});var L_o=XSe();function V_o(e,t,r,n){let a;return typeof n=="function"?a=n:a=()=>{},L_o.updateWith(e,t,()=>r,a)}rsr.setWith=V_o});var ssr=H(isr=>{"use strict";Object.defineProperty(isr,Symbol.toStringTag,{value:"Module"});var P_o=WSe(),W_o=Y3e();function O_o(e,...t){let r=P_o.cloneDeep(e);return W_o.defaults(r,...t)}isr.toDefaulted=O_o});var asr=H(osr=>{"use strict";Object.defineProperty(osr,Symbol.toStringTag,{value:"Module"});function M_o(e){let t=new Array(e.size),r=e.keys(),n=e.values();for(let a=0;a{"use strict";Object.defineProperty(csr,Symbol.toStringTag,{value:"Module"});function H_o(e){let t=new Array(e.size),r=e.values();for(let n=0;n{"use strict";Object.defineProperty(usr,Symbol.toStringTag,{value:"Module"});var Y_o=YK(),Q_o=asr(),X_o=lsr();function J_o(e){if(e==null)return[];if(e instanceof Set)return X_o.setToEntries(e);if(e instanceof Map)return Q_o.mapToEntries(e);let t=Y_o.keys(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(Asr,Symbol.toStringTag,{value:"Module"});var U_o=iX(),K_o=asr(),j_o=lsr();function z_o(e){if(e==null)return[];if(e instanceof Set)return j_o.setToEntries(e);if(e instanceof Map)return K_o.mapToEntries(e);let t=U_o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(psr,Symbol.toStringTag,{value:"Module"});var q_o=noe();function $_o(e){return q_o.isBuffer(e)}psr.isBuffer=$_o});var Isr=H(fsr=>{"use strict";Object.defineProperty(fsr,Symbol.toStringTag,{value:"Module"});var e0o=bm(),t0o=coe(),r0o=Nlt(),n0o=gut(),i0o=tM(),s0o=e$(),o0o=im();function a0o(e,t=e0o.identity,r){let n=Array.isArray(e)||n0o.isBuffer(e)||s0o.isTypedArray(e);return t=o0o.iteratee(t),r==null&&(n?r=[]:i0o.isObject(e)&&t0o.isFunction(e.constructor)?r=Object.create(Object.getPrototypeOf(e)):r={}),e==null||r0o.forEach(e,(a,o,l)=>t(r,a,o,l)),r}fsr.transform=a0o});var msr=H(hsr=>{"use strict";Object.defineProperty(hsr,Symbol.toStringTag,{value:"Module"});var c0o=XSe();function l0o(e,t,r){return c0o.updateWith(e,t,r,()=>{})}hsr.update=l0o});var _sr=H(Csr=>{"use strict";Object.defineProperty(Csr,Symbol.toStringTag,{value:"Module"});var u0o=iX();function g0o(e){let t=u0o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(ysr,Symbol.toStringTag,{value:"Module"});function A0o(e){return typeof e=="function"}ysr.isFunction=A0o});var Ssr=H(Esr=>{"use strict";Object.defineProperty(Esr,Symbol.toStringTag,{value:"Module"});function d0o(e){return Number.isSafeInteger(e)&&e>=0}Esr.isLength=d0o});var Bsr=H(vsr=>{"use strict";Object.defineProperty(vsr,Symbol.toStringTag,{value:"Module"});var zRn=Function.prototype.toString,p0o=/[\\^$.*+?()[\]{}|]/g,f0o=RegExp(`^${zRn.call(Object.prototype.hasOwnProperty).replace(p0o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")}$`);function I0o(e){if(typeof e!="function")return!1;if(globalThis?.["__core-js_shared__"]!=null)throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return f0o.test(zRn.call(e))}vsr.isNative=I0o});var Tsr=H(wsr=>{"use strict";Object.defineProperty(wsr,Symbol.toStringTag,{value:"Module"});function h0o(e){return e===null}wsr.isNull=h0o});var Nsr=H(Rsr=>{"use strict";Object.defineProperty(Rsr,Symbol.toStringTag,{value:"Module"});var m0o=uer();function C0o(e){return m0o.isUndefined(e)}Rsr.isUndefined=C0o});var Aut=H(Dsr=>{"use strict";Object.defineProperty(Dsr,Symbol.toStringTag,{value:"Module"});function _0o(e,t){if(t==null)return!0;if(e==null)return Object.keys(t).length===0;let r=Object.keys(t);for(let n=0;n{"use strict";Object.defineProperty(ksr,Symbol.toStringTag,{value:"Module"});var y0o=Aut(),b0o=izt();function E0o(e){return e=b0o.cloneDeep(e),function(t){return y0o.conformsTo(t,e)}}ksr.conforms=E0o});var qRn=H(Gsr=>{"use strict";Object.defineProperty(Gsr,Symbol.toStringTag,{value:"Module"});function S0o(e){return e instanceof ArrayBuffer}Gsr.isArrayBuffer=S0o});var Zsr=H(Fsr=>{"use strict";Object.defineProperty(Fsr,Symbol.toStringTag,{value:"Module"});var v0o=qRn();function B0o(e){return v0o.isArrayBuffer(e)}Fsr.isArrayBuffer=B0o});var Vsr=H(Lsr=>{"use strict";Object.defineProperty(Lsr,Symbol.toStringTag,{value:"Module"});function w0o(e){return typeof e=="boolean"||e instanceof Boolean}Lsr.isBoolean=w0o});var $Rn=H(Psr=>{"use strict";Object.defineProperty(Psr,Symbol.toStringTag,{value:"Module"});function T0o(e){return e instanceof Date}Psr.isDate=T0o});var Osr=H(Wsr=>{"use strict";Object.defineProperty(Wsr,Symbol.toStringTag,{value:"Module"});var R0o=$Rn();function N0o(e){return R0o.isDate(e)}Wsr.isDate=N0o});var Hsr=H(Msr=>{"use strict";Object.defineProperty(Msr,Symbol.toStringTag,{value:"Module"});var D0o=ioe(),k0o=Mfe();function x0o(e){return D0o.isObjectLike(e)&&e.nodeType===1&&!k0o.isPlainObject(e)}Msr.isElement=x0o});var Qsr=H(Ysr=>{"use strict";Object.defineProperty(Ysr,Symbol.toStringTag,{value:"Module"});var G0o=Vfe(),F0o=Sf(),Z0o=e$(),L0o=noe(),V0o=iut();function P0o(e){if(e==null)return!0;if(F0o.isArrayLike(e))return typeof e.splice!="function"&&typeof e!="string"&&!L0o.isBuffer(e)&&!Z0o.isTypedArray(e)&&!G0o.isArguments(e)?!1:e.length===0;if(typeof e=="object"){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return V0o.isPrototype(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}Ysr.isEmpty=P0o});var eNn=H(Xsr=>{"use strict";Object.defineProperty(Xsr,Symbol.toStringTag,{value:"Module"});function W0o(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let r=0;return(...n)=>{if(++r>=e)return t(...n)}}Xsr.after=W0o});var Ksr=H(Usr=>{"use strict";Object.defineProperty(Usr,Symbol.toStringTag,{value:"Module"});var tNn=eNn(),O0o=Rnr();function Jsr(e,t,r){return typeof r!="function"&&(r=()=>{}),O0o.isEqualWith(e,t,(...n)=>{let a=r(...n);if(a!==void 0)return!!a;if(e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set)return Jsr(Array.from(e),Array.from(t),tNn.after(2,r))})}Usr.isEqualWith=Jsr});var zsr=H(jsr=>{"use strict";Object.defineProperty(jsr,Symbol.toStringTag,{value:"Module"});var M0o=Zfe();function H0o(e){return M0o.getTag(e)==="[object Error]"}jsr.isError=H0o});var $sr=H(qsr=>{"use strict";Object.defineProperty(qsr,Symbol.toStringTag,{value:"Module"});function Y0o(e){return Number.isFinite(e)}qsr.isFinite=Y0o});var tor=H(eor=>{"use strict";Object.defineProperty(eor,Symbol.toStringTag,{value:"Module"});function Q0o(e){return Number.isInteger(e)}eor.isInteger=Q0o});var rNn=H(ror=>{"use strict";Object.defineProperty(ror,Symbol.toStringTag,{value:"Module"});function X0o(e){return e instanceof RegExp}ror.isRegExp=X0o});var ior=H(nor=>{"use strict";Object.defineProperty(nor,Symbol.toStringTag,{value:"Module"});var J0o=rNn();function U0o(e){return J0o.isRegExp(e)}nor.isRegExp=U0o});var oor=H(sor=>{"use strict";Object.defineProperty(sor,Symbol.toStringTag,{value:"Module"});function K0o(e){return Number.isSafeInteger(e)}sor.isSafeInteger=K0o});var nNn=H(aor=>{"use strict";Object.defineProperty(aor,Symbol.toStringTag,{value:"Module"});function j0o(e){return e instanceof Set}aor.isSet=j0o});var lor=H(cor=>{"use strict";Object.defineProperty(cor,Symbol.toStringTag,{value:"Module"});var z0o=nNn();function q0o(e){return z0o.isSet(e)}cor.isSet=q0o});var iNn=H(uor=>{"use strict";Object.defineProperty(uor,Symbol.toStringTag,{value:"Module"});function $0o(e){return e instanceof WeakMap}uor.isWeakMap=$0o});var Aor=H(gor=>{"use strict";Object.defineProperty(gor,Symbol.toStringTag,{value:"Module"});var eyo=iNn();function tyo(e){return eyo.isWeakMap(e)}gor.isWeakMap=tyo});var sNn=H(dor=>{"use strict";Object.defineProperty(dor,Symbol.toStringTag,{value:"Module"});function ryo(e){return e instanceof WeakSet}dor.isWeakSet=ryo});var Ior=H(por=>{"use strict";Object.defineProperty(por,Symbol.toStringTag,{value:"Module"});var nyo=sNn();function iyo(e){return nyo.isWeakSet(e)}por.isWeakSet=iyo});var mor=H(hor=>{"use strict";Object.defineProperty(hor,Symbol.toStringTag,{value:"Module"});function syo(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}hor.capitalize=syo});var _or=H(Cor=>{"use strict";Object.defineProperty(Cor,Symbol.toStringTag,{value:"Module"});var oyo=mor(),ayo=qy();function cyo(e){return oyo.capitalize(ayo.toString(e))}Cor.capitalize=cyo});var bor=H(yor=>{"use strict";Object.defineProperty(yor,Symbol.toStringTag,{value:"Module"});var lyo=coe(),oNn=$q(),uyo=tM(),gyo=qy();function Ayo(e,...t){if(e==null||!uyo.isObject(e)||oNn.isArray(e)&&t.length===0)return e;let r=[];for(let n=0;n{"use strict";Object.defineProperty(Eor,Symbol.toStringTag,{value:"Module"});var dyo=new Map([["\xC6","Ae"],["\xD0","D"],["\xD8","O"],["\xDE","Th"],["\xDF","ss"],["\xE6","ae"],["\xF0","d"],["\xF8","o"],["\xFE","th"],["\u0110","D"],["\u0111","d"],["\u0126","H"],["\u0127","h"],["\u0131","i"],["\u0132","IJ"],["\u0133","ij"],["\u0138","k"],["\u013F","L"],["\u0140","l"],["\u0141","L"],["\u0142","l"],["\u0149","'n"],["\u014A","N"],["\u014B","n"],["\u0152","Oe"],["\u0153","oe"],["\u0166","T"],["\u0167","t"],["\u017F","s"]]);function pyo(e){e=e.normalize("NFD");let t="";for(let r=0;r="\u0300"&&n<="\u036F"||n>="\uFE20"&&n<="\uFE23"||(t+=dyo.get(n)??n)}return t}Eor.deburr=pyo});var t$=H(Sor=>{"use strict";Object.defineProperty(Sor,Symbol.toStringTag,{value:"Module"});var fyo=aNn(),Iyo=qy();function hyo(e){return fyo.deburr(Iyo.toString(e))}Sor.deburr=hyo});var Hfe=H(dut=>{"use strict";Object.defineProperty(dut,Symbol.toStringTag,{value:"Module"});var cNn=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function myo(e){return Array.from(e.match(cNn)??[])}dut.CASE_SPLIT_PATTERN=cNn;dut.words=myo});var lNn=H(vor=>{"use strict";Object.defineProperty(vor,Symbol.toStringTag,{value:"Module"});var Cyo=mor(),_yo=Hfe();function yyo(e){let t=_yo.words(e);if(t.length===0)return"";let[r,...n]=t;return`${r.toLowerCase()}${n.map(a=>Cyo.capitalize(a)).join("")}`}vor.camelCase=yyo});var Yfe=H(Bor=>{"use strict";Object.defineProperty(Bor,Symbol.toStringTag,{value:"Module"});var byo=qy();function Eyo(e){return typeof e!="string"&&(e=byo.toString(e)),e.replace(/['\u2019]/g,"")}Bor.normalizeForCase=Eyo});var Tor=H(wor=>{"use strict";Object.defineProperty(wor,Symbol.toStringTag,{value:"Module"});var Syo=t$(),vyo=lNn(),Byo=Yfe();function wyo(e){return vyo.camelCase(Byo.normalizeForCase(Syo.deburr(e)))}wor.camelCase=wyo});var Nor=H(Ror=>{"use strict";Object.defineProperty(Ror,Symbol.toStringTag,{value:"Module"});function Tyo(e,t,r){return e==null||t==null?!1:(r==null&&(r=e.length),e.endsWith(t,r))}Ror.endsWith=Tyo});var uNn=H(Dor=>{"use strict";Object.defineProperty(Dor,Symbol.toStringTag,{value:"Module"});var Ryo={"&":"&","<":"<",">":">",'"':""","'":"'"};function Nyo(e){return e.replace(/[&<>"']/g,t=>Ryo[t])}Dor.escape=Nyo});var put=H(kor=>{"use strict";Object.defineProperty(kor,Symbol.toStringTag,{value:"Module"});var Dyo=uNn(),kyo=qy();function xyo(e){return Dyo.escape(kyo.toString(e))}kor.escape=xyo});var gNn=H(xor=>{"use strict";Object.defineProperty(xor,Symbol.toStringTag,{value:"Module"});function Gyo(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}xor.escapeRegExp=Gyo});var For=H(Gor=>{"use strict";Object.defineProperty(Gor,Symbol.toStringTag,{value:"Module"});var Fyo=gNn(),Zyo=qy();function Lyo(e){return Fyo.escapeRegExp(Zyo.toString(e))}Gor.escapeRegExp=Lyo});var ANn=H(Zor=>{"use strict";Object.defineProperty(Zor,Symbol.toStringTag,{value:"Module"});var Vyo=Hfe();function Pyo(e){return Vyo.words(e).map(r=>r.toLowerCase()).join("-")}Zor.kebabCase=Pyo});var Vor=H(Lor=>{"use strict";Object.defineProperty(Lor,Symbol.toStringTag,{value:"Module"});var Wyo=t$(),Oyo=ANn(),Myo=Yfe();function Hyo(e){return Oyo.kebabCase(Myo.normalizeForCase(Wyo.deburr(e)))}Lor.kebabCase=Hyo});var dNn=H(Por=>{"use strict";Object.defineProperty(Por,Symbol.toStringTag,{value:"Module"});var Yyo=Hfe();function Qyo(e){return Yyo.words(e).map(r=>r.toLowerCase()).join(" ")}Por.lowerCase=Qyo});var Oor=H(Wor=>{"use strict";Object.defineProperty(Wor,Symbol.toStringTag,{value:"Module"});var Xyo=t$(),Jyo=dNn(),Uyo=Yfe();function Kyo(e){return Jyo.lowerCase(Uyo.normalizeForCase(Xyo.deburr(e)))}Wor.lowerCase=Kyo});var pNn=H(Mor=>{"use strict";Object.defineProperty(Mor,Symbol.toStringTag,{value:"Module"});function jyo(e){return e.substring(0,1).toLowerCase()+e.substring(1)}Mor.lowerFirst=jyo});var Yor=H(Hor=>{"use strict";Object.defineProperty(Hor,Symbol.toStringTag,{value:"Module"});var zyo=pNn(),qyo=qy();function $yo(e){return zyo.lowerFirst(qyo.toString(e))}Hor.lowerFirst=$yo});var fNn=H(Qor=>{"use strict";Object.defineProperty(Qor,Symbol.toStringTag,{value:"Module"});function ebo(e,t,r=" "){return e.padStart(Math.floor((t-e.length)/2)+e.length,r).padEnd(t,r)}Qor.pad=ebo});var Jor=H(Xor=>{"use strict";Object.defineProperty(Xor,Symbol.toStringTag,{value:"Module"});var tbo=fNn(),rbo=qy();function nbo(e,t,r){return tbo.pad(rbo.toString(e),t,r)}Xor.pad=nbo});var Kor=H(Uor=>{"use strict";Object.defineProperty(Uor,Symbol.toStringTag,{value:"Module"});var ibo=qy();function sbo(e,t=0,r=" "){return ibo.toString(e).padEnd(t,r)}Uor.padEnd=sbo});var zor=H(jor=>{"use strict";Object.defineProperty(jor,Symbol.toStringTag,{value:"Module"});var obo=qy();function abo(e,t=0,r=" "){return obo.toString(e).padStart(t,r)}jor.padStart=abo});var $or=H(qor=>{"use strict";Object.defineProperty(qor,Symbol.toStringTag,{value:"Module"});var cbo=Number.MAX_SAFE_INTEGER;qor.MAX_SAFE_INTEGER=cbo});var tar=H(ear=>{"use strict";Object.defineProperty(ear,Symbol.toStringTag,{value:"Module"});var lbo=qq(),ubo=$or(),gbo=$w(),Abo=qy();function dbo(e,t,r){return(r?lbo.isIterateeCall(e,t,r):t===void 0)?t=1:t=gbo.toInteger(t),t<1||t>ubo.MAX_SAFE_INTEGER?"":Abo.toString(e).repeat(t)}ear.repeat=dbo});var nar=H(rar=>{"use strict";Object.defineProperty(rar,Symbol.toStringTag,{value:"Module"});var INn=qy();function pbo(e,t,r){return arguments.length<3?INn.toString(e):INn.toString(e).replace(t,r)}rar.replace=pbo});var hNn=H(iar=>{"use strict";Object.defineProperty(iar,Symbol.toStringTag,{value:"Module"});var fbo=Hfe();function Ibo(e){return fbo.words(e).map(r=>r.toLowerCase()).join("_")}iar.snakeCase=Ibo});var oar=H(sar=>{"use strict";Object.defineProperty(sar,Symbol.toStringTag,{value:"Module"});var hbo=t$(),mbo=hNn(),Cbo=Yfe();function _bo(e){return mbo.snakeCase(Cbo.normalizeForCase(hbo.deburr(e)))}sar.snakeCase=_bo});var car=H(aar=>{"use strict";Object.defineProperty(aar,Symbol.toStringTag,{value:"Module"});var ybo=qy();function bbo(e,t,r){return ybo.toString(e).split(t,r)}aar.split=bbo});var uar=H(lar=>{"use strict";Object.defineProperty(lar,Symbol.toStringTag,{value:"Module"});var Ebo=t$(),Sbo=Hfe(),vbo=Yfe();function Bbo(e){let t=Sbo.words(vbo.normalizeForCase(Ebo.deburr(e)).trim()),r="";for(let n=0;n{"use strict";Object.defineProperty(gar,Symbol.toStringTag,{value:"Module"});function wbo(e,t,r){return e==null||t==null?!1:(r==null&&(r=0),e.startsWith(t,r))}gar.startsWith=wbo});var dar=H(hut=>{"use strict";Object.defineProperty(hut,Symbol.toStringTag,{value:"Module"});var Tbo=put(),Rbo=zlt(),mNn=Y3e(),Nbo=qy(),Dbo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,kbo=/['\n\r\u2028\u2029\\]/g,fut=/($^)/,xbo=new Map([["\\","\\"],["'","'"],[` `,"n"],["\r","r"],["\u2028","u2028"],["\u2029","u2029"]]);function Gbo(e){return`\\${xbo.get(e)}`}var CNn=/<%=([\s\S]+?)%>/g,Iut={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:CNn,variable:"",imports:{_:{escape:Tbo.escape,template:_Nn}}};function _Nn(e,t,r){e=Nbo.toString(e),r&&(t=Iut),t=mNn.defaults({...t},Iut);let n=new RegExp([t.escape?.source??fut.source,t.interpolate?.source??fut.source,t.interpolate===CNn?Dbo.source:fut.source,t.evaluate?.source??fut.source,"$"].join("|"),"g"),a=0,o=!1,l="__p += ''";for(let N of e.matchAll(n)){let[B,F,Q,X,ae]=N,{index:ne}=N;l+=` + '${e.slice(a,ne).replace(kbo,Gbo)}'`,F&&(l+=` + _.escape(${F})`),Q?l+=` + ((${Q}) == null ? '' : ${Q})`:X&&(l+=` + ((${X}) == null ? '' : ${X})`),ae&&(l+=`; ${ae}; __p += ''`,o=!0),a=ne+B.length}let A=mNn.defaults({...t.imports},Iut.imports),f=Object.keys(A),I=Object.values(A),C=`//# sourceURL=${t.sourceURL?String(t.sourceURL).replace(/[\r\n]/g," "):`es-toolkit.templateSource[${Date.now()}]`} @@ -172,9 +172,9 @@ ${ae}; ${l} }`} return __p; - }`,E=Rbo.attempt(()=>new Function(...f,`${C}return ${b}`)(...I));if(E.source=b,E instanceof Error)throw E;return E}hut.template=_Nn;hut.templateSettings=Iut});var far=H(par=>{"use strict";Object.defineProperty(par,Symbol.toStringTag,{value:"Module"});var Fbo=qy();function Zbo(e){return Fbo.toString(e).toLowerCase()}par.toLower=Zbo});var har=H(Iar=>{"use strict";Object.defineProperty(Iar,Symbol.toStringTag,{value:"Module"});var Lbo=qy();function Vbo(e){return Lbo.toString(e).toUpperCase()}Iar.toUpper=Vbo});var Car=H(mar=>{"use strict";Object.defineProperty(mar,Symbol.toStringTag,{value:"Module"});function Pbo(e,t){if(t===void 0)return e.trimEnd();let r=e.length;switch(typeof t){case"string":{if(t.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;r>0&&e[r-1]===t;)r--;break}case"object":for(;r>0&&t.includes(e[r-1]);)r--}return e.substring(0,r)}mar.trimEnd=Pbo});var yar=H(_ar=>{"use strict";Object.defineProperty(_ar,Symbol.toStringTag,{value:"Module"});function Wbo(e,t){if(t===void 0)return e.trimStart();let r=0;switch(typeof t){case"string":{for(;r{"use strict";Object.defineProperty(bar,Symbol.toStringTag,{value:"Module"});var Obo=Car(),Mbo=yar();function Hbo(e,t){return t===void 0?e.trim():Mbo.trimStart(Obo.trimEnd(e,t),t)}bar.trim=Hbo});var Bar=H(Sar=>{"use strict";Object.defineProperty(Sar,Symbol.toStringTag,{value:"Module"});var Ear=yNn();function Ybo(e,t,r){if(e==null)return"";if(r!=null||t==null)return e.toString().trim();switch(typeof t){case"object":return Array.isArray(t)?Ear.trim(e,t.flatMap(n=>n.toString().split(""))):Ear.trim(e,t.toString().split(""));default:return Ear.trim(e,t.toString().split(""))}}Sar.trim=Ybo});var Tar=H(war=>{"use strict";Object.defineProperty(war,Symbol.toStringTag,{value:"Module"});var Qbo=Car();function Xbo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimEnd():Qbo.trimEnd(e,t.toString().split(""))}war.trimEnd=Xbo});var Nar=H(Rar=>{"use strict";Object.defineProperty(Rar,Symbol.toStringTag,{value:"Module"});var Jbo=yar();function Ubo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimStart():Jbo.trimStart(e,t.toString().split(""))}Rar.trimStart=Ubo});var kar=H(Dar=>{"use strict";Object.defineProperty(Dar,Symbol.toStringTag,{value:"Module"});var Kbo=tM(),jbo=/[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;function zbo(e,t){e=e!=null?`${e}`:"";let r=30,n="...";Kbo.isObject(t)&&(r=qbo(t.length),n="omission"in t?`${t.omission}`:"...");let a=e.length,o=Array.from(n).length,l=Math.max(r-o,0),A;if(jbo.test(e)&&(A=Array.from(e),a=A.length),r>=a)return e;if(a<=o)return n;let I=A===void 0?e.slice(0,l):A?.slice(0,l).join(""),C=t?.separator;if(!C)return I+=n,I;let b=C instanceof RegExp?C.source:C,E="u"+(C instanceof RegExp?C.flags.replace("u",""):""),N=new RegExp(`(?.*(?:(?!${b}).))(?:${b})`,E).exec(I);return(N?.groups?N.groups.result:I)+n}function qbo(e){return e==null?30:e<=0?0:e}Dar.truncate=zbo});var bNn=H(xar=>{"use strict";Object.defineProperty(xar,Symbol.toStringTag,{value:"Module"});var $bo={"&":"&","<":"<",">":">",""":'"',"'":"'"};function eEo(e){return e.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,t=>$bo[t]||"'")}xar.unescape=eEo});var Far=H(Gar=>{"use strict";Object.defineProperty(Gar,Symbol.toStringTag,{value:"Module"});var tEo=bNn(),rEo=qy();function nEo(e){return tEo.unescape(rEo.toString(e))}Gar.unescape=nEo});var ENn=H(Zar=>{"use strict";Object.defineProperty(Zar,Symbol.toStringTag,{value:"Module"});var iEo=Hfe();function sEo(e){let t=iEo.words(e),r="";for(let n=0;n{"use strict";Object.defineProperty(Lar,Symbol.toStringTag,{value:"Module"});var oEo=t$(),aEo=ENn(),cEo=Yfe();function lEo(e){return aEo.upperCase(cEo.normalizeForCase(oEo.deburr(e)))}Lar.upperCase=lEo});var SNn=H(War=>{"use strict";Object.defineProperty(War,Symbol.toStringTag,{value:"Module"});function uEo(e){return e.substring(0,1).toUpperCase()+e.substring(1)}War.upperFirst=uEo});var Mar=H(Oar=>{"use strict";Object.defineProperty(Oar,Symbol.toStringTag,{value:"Module"});var gEo=SNn(),AEo=qy();function dEo(e){return gEo.upperFirst(AEo.toString(e))}Oar.upperFirst=dEo});var Yar=H(Har=>{"use strict";Object.defineProperty(Har,Symbol.toStringTag,{value:"Module"});var pEo=qy(),fEo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7",USe="\\p{Lu}",NNn="\\p{Ll}",DNn="(?:[\\p{Lm}\\p{Lo}]\\p{M}*)",X3e="\\d",vNn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",BNn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",wNn=`[\\p{Z}\\p{P}${fEo}]`,IEo=`(?:${USe}|${DNn})`,TNn=`(?:${NNn}|${DNn})`,RNn=RegExp([`${USe}?${NNn}+${vNn}(?=${wNn}|${USe}|$)`,`${IEo}+${BNn}(?=${wNn}|${USe}${TNn}|$)`,`${USe}?${TNn}+${vNn}`,`${USe}+${BNn}`,`${X3e}*(?:1ST|2ND|3RD|(?![123])${X3e}TH)(?=\\b|[a-z_])`,`${X3e}*(?:1st|2nd|3rd|(?![123])${X3e}th)(?=\\b|[A-Z_])`,`${X3e}+`,"\\p{Emoji_Presentation}","\\p{Extended_Pictographic}"].join("|"),"gu");function hEo(e,t=RNn,r){let n=pEo.toString(e);return r&&(t=RNn),typeof t=="number"&&(t=t.toString()),Array.from(n.match(t)??[]).filter(o=>o!=="")}Har.words=hEo});var Xar=H(Qar=>{"use strict";Object.defineProperty(Qar,Symbol.toStringTag,{value:"Module"});var mEo=im(),CEo=coe();function _Eo(e){let t=e.length,r=e.map(n=>{let a=n[0],o=n[1];if(!CEo.isFunction(o))throw new TypeError("Expected a function");return[mEo.iteratee(a),o]});return function(...n){for(let a=0;a{"use strict";Object.defineProperty(Jar,Symbol.toStringTag,{value:"Module"});function yEo(e){return()=>e}Jar.constant=yEo});var jar=H(Kar=>{"use strict";Object.defineProperty(Kar,Symbol.toStringTag,{value:"Module"});function bEo(e,t){return e==null||Number.isNaN(e)?t:e}Kar.defaultTo=bEo});var qar=H(zar=>{"use strict";Object.defineProperty(zar,Symbol.toStringTag,{value:"Module"});var kNn=Q9();function EEo(e,t){return typeof e=="string"&&typeof t=="string"?e>t:kNn.toNumber(e)>kNn.toNumber(t)}zar.gt=EEo});var ecr=H($ar=>{"use strict";Object.defineProperty($ar,Symbol.toStringTag,{value:"Module"});var xNn=Q9();function SEo(e,t){return typeof e=="string"&&typeof t=="string"?e>=t:xNn.toNumber(e)>=xNn.toNumber(t)}$ar.gte=SEo});var U3e=H(tcr=>{"use strict";Object.defineProperty(tcr,Symbol.toStringTag,{value:"Module"});var vEo=$5(),BEo=Kq(),wEo=zq(),GNn=eM();function TEo(e,t,...r){if(r=r.flat(1),e!=null)switch(typeof t){case"string":return typeof e=="object"&&Object.hasOwn(e,t)?J3e(e,[t],r):J3e(e,vEo.toPath(t),r);case"number":case"symbol":return J3e(e,[t],r);default:return Array.isArray(t)?J3e(e,t,r):J3e(e,[t],r)}}function J3e(e,t,r){let n=GNn.get(e,t.slice(0,-1),e);if(n==null)return;let a=wEo.last(t),o=a?.valueOf();return typeof o=="number"?a=BEo.toKey(o):a=String(a),GNn.get(n,a)?.apply(n,r)}tcr.invoke=TEo});var ncr=H(rcr=>{"use strict";Object.defineProperty(rcr,Symbol.toStringTag,{value:"Module"});var FNn=Q9();function REo(e,t){return typeof e=="string"&&typeof t=="string"?e{"use strict";Object.defineProperty(icr,Symbol.toStringTag,{value:"Module"});var ZNn=Q9();function NEo(e,t){return typeof e=="string"&&typeof t=="string"?e<=t:ZNn.toNumber(e)<=ZNn.toNumber(t)}icr.lte=NEo});var acr=H(ocr=>{"use strict";Object.defineProperty(ocr,Symbol.toStringTag,{value:"Module"});var DEo=U3e();function kEo(e,...t){return function(r){return DEo.invoke(r,e,t)}}ocr.method=kEo});var lcr=H(ccr=>{"use strict";Object.defineProperty(ccr,Symbol.toStringTag,{value:"Module"});var xEo=U3e();function GEo(e,...t){return function(r){return xEo.invoke(e,r,t)}}ccr.methodOf=GEo});var gcr=H(ucr=>{"use strict";Object.defineProperty(ucr,Symbol.toStringTag,{value:"Module"});function FEo(){return Date.now()}ucr.now=FEo});var dcr=H(Acr=>{"use strict";Object.defineProperty(Acr,Symbol.toStringTag,{value:"Module"});var ZEo=im();function LEo(...e){e.length===1&&Array.isArray(e[0])&&(e=e[0]);let t=e.map(r=>ZEo.iteratee(r));return function(...r){return t.map(n=>n.apply(this,r))}}Acr.over=LEo});var fcr=H(pcr=>{"use strict";Object.defineProperty(pcr,Symbol.toStringTag,{value:"Module"});var LNn=im();function VEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(Icr,Symbol.toStringTag,{value:"Module"});var VNn=im();function PEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(mcr,Symbol.toStringTag,{value:"Module"});function WEo(){return[]}mcr.stubArray=WEo});var ycr=H(_cr=>{"use strict";Object.defineProperty(_cr,Symbol.toStringTag,{value:"Module"});function OEo(){return!1}_cr.stubFalse=OEo});var Ecr=H(bcr=>{"use strict";Object.defineProperty(bcr,Symbol.toStringTag,{value:"Module"});function MEo(){return{}}bcr.stubObject=MEo});var vcr=H(Scr=>{"use strict";Object.defineProperty(Scr,Symbol.toStringTag,{value:"Module"});function HEo(){return""}Scr.stubString=HEo});var wcr=H(Bcr=>{"use strict";Object.defineProperty(Bcr,Symbol.toStringTag,{value:"Module"});function YEo(){return!0}Bcr.stubTrue=YEo});var PNn=H(Tcr=>{"use strict";Object.defineProperty(Tcr,Symbol.toStringTag,{value:"Module"});var QEo=4294967295;Tcr.MAX_ARRAY_LENGTH=QEo});var Ncr=H(Rcr=>{"use strict";Object.defineProperty(Rcr,Symbol.toStringTag,{value:"Module"});var XEo=PNn(),JEo=Ofe();function UEo(e){if(e==null)return 0;let t=Math.floor(Number(e));return JEo.clamp(t,0,XEo.MAX_ARRAY_LENGTH)}Rcr.toLength=UEo});var kcr=H(Dcr=>{"use strict";Object.defineProperty(Dcr,Symbol.toStringTag,{value:"Module"});var KEo=iX();function jEo(e){let t={},r=KEo.keysIn(e);for(let n=0;n{"use strict";Object.defineProperty(xcr,Symbol.toStringTag,{value:"Module"});var zEo=$w(),WNn=$or(),qEo=Ofe();function $Eo(e){return e==null?0:qEo.clamp(zEo.toInteger(e),-WNn.MAX_SAFE_INTEGER,WNn.MAX_SAFE_INTEGER)}xcr.toSafeInteger=$Eo});var Zcr=H(Fcr=>{"use strict";Object.defineProperty(Fcr,Symbol.toStringTag,{value:"Module"});var e1o=0;function t1o(e=""){let t=++e1o;return`${e}${t}`}Fcr.uniqueId=t1o});var JNn=H(Kn=>{"use strict";Object.defineProperty(Kn,Symbol.toStringTag,{value:"Module"});var r1o=E7t(),n1o=R7t(),i1o=k7t(),s1o=F7t(),o1o=pzt(),a1o=Czt(),c1o=Blt(),l1o=wlt(),u1o=xzt(),g1o=Zzt(),A1o=Pzt(),d1o=Mzt(),ONn=Nlt(),MNn=Xzt(),p1o=Kzt(),f1o=$zt(),I1o=Dlt(),h1o=rqt(),m1o=sqt(),C1o=aqt(),_1o=lqt(),HNn=Aqt(),y1o=mqt(),b1o=yqt(),E1o=D3e(),S1o=Pfe(),v1o=Eqt(),B1o=YSe(),w1o=Bqt(),T1o=Tqt(),R1o=Nqt(),N1o=xqt(),D1o=Lqt(),k1o=xlt(),x1o=Glt(),G1o=Jqt(),F1o=Kqt(),Z1o=qqt(),L1o=zq(),V1o=e$t(),P1o=N3e(),W1o=r$t(),O1o=Zlt(),M1o=a$t(),H1o=g$t(),Y1o=d$t(),Q1o=f$t(),X1o=h$t(),J1o=E$t(),U1o=Flt(),K1o=v$t(),j1o=T$t(),z1o=D$t(),q1o=x$t(),$1o=Z$t(),e2o=J$t(),t2o=$$t(),r2o=ter(),n2o=ner(),i2o=ser(),s2o=aer(),o2o=Mlt(),a2o=L3e(),c2o=mer(),l2o=Ylt(),u2o=Hlt(),g2o=ber(),A2o=ver(),d2o=Ter(),p2o=Der(),f2o=Ger(),I2o=Zer(),h2o=Ver(),m2o=Xlt(),C2o=Jlt(),_2o=k3e(),y2o=Jer(),b2o=Ker(),E2o=Ult(),S2o=etr(),v2o=ntr(),B2o=str(),w2o=ltr(),T2o=gtr(),R2o=Itr(),N2o=Ctr(),D2o=Etr(),k2o=vtr(),x2o=wtr(),G2o=jlt(),F2o=zlt(),Z2o=Dtr(),L2o=Gtr(),V2o=Ltr(),P2o=Wtr(),W2o=Htr(),O2o=qlt(),M2o=Jtr(),H2o=Ktr(),Y2o=ztr(),Q2o=rrr(),X2o=srr(),J2o=crr(),U2o=F3e(),K2o=urr(),j2o=drr(),z2o=frr(),q2o=mrr(),$2o=yrr(),eSo=Err(),tSo=Brr(),rSo=Trr(),nSo=Nrr(),iSo=krr(),sSo=Grr(),oSo=Zrr(),aSo=Prr(),cSo=Ofe(),lSo=Orr(),uSo=Hrr(),gSo=Xrr(),ASo=Urr(),dSo=zrr(),pSo=tnr(),fSo=snr(),ISo=anr(),hSo=unr(),mSo=Anr(),CSo=pnr(),_So=Inr(),ySo=Cnr(),bSo=bnr(),ESo=Snr(),SSo=Bnr(),vSo=nut(),BSo=rut(),wSo=xnr(),TSo=HK(),RSo=Fnr(),NSo=Onr(),YNn=Ynr(),QNn=Xnr(),DSo=Unr(),kSo=Llt(),xSo=out(),GSo=WSe(),FSo=v3e(),ZSo=qnr(),LSo=eir(),VSo=Y3e(),PSo=iir(),WSo=air(),OSo=lir(),MSo=gir(),HSo=dir(),YSo=fir(),QSo=hir(),XSo=Cir(),JSo=yir(),USo=Eir(),KSo=eM(),jSo=B3e(),zSo=vir(),qSo=Tir(),$So=Nir(),evo=YK(),tvo=iX(),rvo=xir(),nvo=Zir(),ivo=Mir(),svo=lut(),ovo=Qir(),avo=Jir(),cvo=Kir(),lvo=zir(),uvo=nX(),gvo=$ir(),Avo=tsr(),dvo=P3e(),pvo=nsr(),fvo=ssr(),Ivo=gsr(),hvo=dsr(),mvo=Isr(),Cvo=G3e(),_vo=msr(),yvo=XSe(),bvo=Plt(),Evo=_sr(),Svo=bsr(),vvo=Ssr(),Bvo=Elt(),wvo=Bsr(),Tvo=Tsr(),Rvo=Nsr(),Nvo=xsr(),Dvo=Aut(),kvo=Vfe(),xvo=$q(),Gvo=Zsr(),Fvo=Sf(),Zvo=b2(),Lvo=Vsr(),Vvo=gut(),Pvo=Osr(),Wvo=Hsr(),Ovo=Qsr(),Mvo=Ksr(),Hvo=zsr(),Yvo=$sr(),Qvo=tor(),Xvo=Vlt(),Jvo=_3e(),Uvo=Olt(),Kvo=QSe(),jvo=V3e(),zvo=tM(),qvo=ioe(),$vo=Mfe(),eBo=ior(),tBo=oor(),rBo=lor(),nBo=HSe(),iBo=soe(),sBo=e$(),oBo=Aor(),aBo=Ior(),cBo=OK(),lBo=MK(),uBo=_or(),gBo=bor(),ABo=Tor(),dBo=t$(),pBo=Nor(),fBo=put(),IBo=For(),hBo=Vor(),mBo=Oor(),CBo=Yor(),_Bo=Jor(),yBo=Kor(),bBo=zor(),EBo=tar(),SBo=nar(),vBo=oar(),BBo=car(),wBo=uar(),TBo=Aar(),XNn=dar(),RBo=far(),NBo=har(),DBo=Bar(),kBo=Tar(),xBo=Nar(),GBo=kar(),FBo=Far(),ZBo=Par(),LBo=Mar(),VBo=Yar(),PBo=Xar(),WBo=Uar(),OBo=jar(),MBo=Sk(),HBo=qar(),YBo=ecr(),QBo=U3e(),XBo=im(),JBo=ncr(),UBo=scr(),KBo=acr(),jBo=lcr(),zBo=gcr(),qBo=dcr(),$Bo=fcr(),ewo=hcr(),two=Ccr(),rwo=ycr(),nwo=Ecr(),iwo=vcr(),swo=wcr(),owo=H3e(),awo=Z3e(),cwo=MSe(),lwo=$w(),uwo=Ncr(),gwo=Q9(),Awo=$5(),dwo=kcr(),pwo=Gcr(),fwo=qy(),Iwo=Zcr();Kn.castArray=r1o.castArray;Kn.chunk=n1o.chunk;Kn.compact=i1o.compact;Kn.concat=s1o.concat;Kn.countBy=o1o.countBy;Kn.difference=a1o.difference;Kn.differenceBy=c1o.differenceBy;Kn.differenceWith=l1o.differenceWith;Kn.drop=u1o.drop;Kn.dropRight=g1o.dropRight;Kn.dropRightWhile=A1o.dropRightWhile;Kn.dropWhile=d1o.dropWhile;Kn.each=ONn.forEach;Kn.forEach=ONn.forEach;Kn.eachRight=MNn.forEachRight;Kn.forEachRight=MNn.forEachRight;Kn.every=p1o.every;Kn.fill=f1o.fill;Kn.filter=I1o.filter;Kn.find=h1o.find;Kn.findIndex=m1o.findIndex;Kn.findLast=C1o.findLast;Kn.findLastIndex=_1o.findLastIndex;Kn.first=HNn.head;Kn.head=HNn.head;Kn.flatMap=y1o.flatMap;Kn.flatMapDeep=b1o.flatMapDeep;Kn.flatMapDepth=E1o.flatMapDepth;Kn.flatten=S1o.flatten;Kn.flattenDeep=v1o.flattenDeep;Kn.flattenDepth=B1o.flattenDepth;Kn.groupBy=w1o.groupBy;Kn.includes=T1o.includes;Kn.indexOf=R1o.indexOf;Kn.initial=N1o.initial;Kn.intersection=D1o.intersection;Kn.intersectionBy=k1o.intersectionBy;Kn.intersectionWith=x1o.intersectionWith;Kn.invokeMap=G1o.invokeMap;Kn.join=F1o.join;Kn.keyBy=Z1o.keyBy;Kn.last=L1o.last;Kn.lastIndexOf=V1o.lastIndexOf;Kn.map=P1o.map;Kn.nth=W1o.nth;Kn.orderBy=O1o.orderBy;Kn.partition=M1o.partition;Kn.pull=H1o.pull;Kn.pullAll=Y1o.pullAll;Kn.pullAllBy=Q1o.pullAllBy;Kn.pullAllWith=X1o.pullAllWith;Kn.pullAt=J1o.pullAt;Kn.reduce=U1o.reduce;Kn.reduceRight=K1o.reduceRight;Kn.reject=j1o.reject;Kn.remove=z1o.remove;Kn.reverse=q1o.reverse;Kn.sample=$1o.sample;Kn.sampleSize=e2o.sampleSize;Kn.shuffle=t2o.shuffle;Kn.size=r2o.size;Kn.slice=n2o.slice;Kn.some=i2o.some;Kn.sortBy=s2o.sortBy;Kn.sortedIndex=o2o.sortedIndex;Kn.sortedIndexBy=a2o.sortedIndexBy;Kn.sortedIndexOf=c2o.sortedIndexOf;Kn.sortedLastIndex=l2o.sortedLastIndex;Kn.sortedLastIndexBy=u2o.sortedLastIndexBy;Kn.sortedLastIndexOf=g2o.sortedLastIndexOf;Kn.tail=A2o.tail;Kn.take=d2o.take;Kn.takeRight=p2o.takeRight;Kn.takeRightWhile=f2o.takeRightWhile;Kn.takeWhile=I2o.takeWhile;Kn.union=h2o.union;Kn.unionBy=m2o.unionBy;Kn.unionWith=C2o.unionWith;Kn.uniq=_2o.uniq;Kn.uniqBy=y2o.uniqBy;Kn.uniqWith=b2o.uniqWith;Kn.unzip=E2o.unzip;Kn.unzipWith=S2o.unzipWith;Kn.without=v2o.without;Kn.xor=B2o.xor;Kn.xorBy=w2o.xorBy;Kn.xorWith=T2o.xorWith;Kn.zip=R2o.zip;Kn.zipObject=N2o.zipObject;Kn.zipObjectDeep=D2o.zipObjectDeep;Kn.zipWith=k2o.zipWith;Kn.after=x2o.after;Kn.ary=G2o.ary;Kn.attempt=F2o.attempt;Kn.before=Z2o.before;Kn.bind=L2o.bind;Kn.bindKey=V2o.bindKey;Kn.curry=P2o.curry;Kn.curryRight=W2o.curryRight;Kn.debounce=O2o.debounce;Kn.defer=M2o.defer;Kn.delay=H2o.delay;Kn.flip=Y2o.flip;Kn.flow=Q2o.flow;Kn.flowRight=X2o.flowRight;Kn.memoize=J2o.memoize;Kn.negate=U2o.negate;Kn.nthArg=K2o.nthArg;Kn.once=j2o.once;Kn.overArgs=z2o.overArgs;Kn.partial=q2o.partial;Kn.partialRight=$2o.partialRight;Kn.rearg=eSo.rearg;Kn.rest=tSo.rest;Kn.spread=rSo.spread;Kn.throttle=nSo.throttle;Kn.unary=iSo.unary;Kn.wrap=sSo.wrap;Kn.add=oSo.add;Kn.ceil=aSo.ceil;Kn.clamp=cSo.clamp;Kn.divide=lSo.divide;Kn.floor=uSo.floor;Kn.inRange=gSo.inRange;Kn.max=ASo.max;Kn.maxBy=dSo.maxBy;Kn.mean=pSo.mean;Kn.meanBy=fSo.meanBy;Kn.min=ISo.min;Kn.minBy=hSo.minBy;Kn.multiply=mSo.multiply;Kn.parseInt=CSo.parseInt;Kn.random=_So.random;Kn.range=ySo.range;Kn.rangeRight=bSo.rangeRight;Kn.round=ESo.round;Kn.subtract=SSo.subtract;Kn.sum=vSo.sum;Kn.sumBy=BSo.sumBy;Kn.isEqual=wSo.isEqual;Kn.identity=TSo.identity;Kn.noop=RSo.noop;Kn.assign=NSo.assign;Kn.assignIn=YNn.assignIn;Kn.extend=YNn.assignIn;Kn.assignInWith=QNn.assignInWith;Kn.extendWith=QNn.assignInWith;Kn.assignWith=DSo.assignWith;Kn.at=kSo.at;Kn.clone=xSo.clone;Kn.cloneDeep=GSo.cloneDeep;Kn.cloneDeepWith=FSo.cloneDeepWith;Kn.cloneWith=ZSo.cloneWith;Kn.create=LSo.create;Kn.defaults=VSo.defaults;Kn.defaultsDeep=PSo.defaultsDeep;Kn.findKey=WSo.findKey;Kn.findLastKey=OSo.findLastKey;Kn.forIn=MSo.forIn;Kn.forInRight=HSo.forInRight;Kn.forOwn=YSo.forOwn;Kn.forOwnRight=QSo.forOwnRight;Kn.fromPairs=XSo.fromPairs;Kn.functions=JSo.functions;Kn.functionsIn=USo.functionsIn;Kn.get=KSo.get;Kn.has=jSo.has;Kn.hasIn=zSo.hasIn;Kn.invert=qSo.invert;Kn.invertBy=$So.invertBy;Kn.keys=evo.keys;Kn.keysIn=tvo.keysIn;Kn.mapKeys=rvo.mapKeys;Kn.mapValues=nvo.mapValues;Kn.merge=ivo.merge;Kn.mergeWith=svo.mergeWith;Kn.omit=ovo.omit;Kn.omitBy=avo.omitBy;Kn.pick=cvo.pick;Kn.pickBy=lvo.pickBy;Kn.property=uvo.property;Kn.propertyOf=gvo.propertyOf;Kn.result=Avo.result;Kn.set=dvo.set;Kn.setWith=pvo.setWith;Kn.toDefaulted=fvo.toDefaulted;Kn.toPairs=Ivo.toPairs;Kn.toPairsIn=hvo.toPairsIn;Kn.transform=mvo.transform;Kn.unset=Cvo.unset;Kn.update=_vo.update;Kn.updateWith=yvo.updateWith;Kn.values=bvo.values;Kn.valuesIn=Evo.valuesIn;Kn.isFunction=Svo.isFunction;Kn.isLength=vvo.isLength;Kn.isMatchWith=Bvo.isMatchWith;Kn.isNative=wvo.isNative;Kn.isNull=Tvo.isNull;Kn.isUndefined=Rvo.isUndefined;Kn.conforms=Nvo.conforms;Kn.conformsTo=Dvo.conformsTo;Kn.isArguments=kvo.isArguments;Kn.isArray=xvo.isArray;Kn.isArrayBuffer=Gvo.isArrayBuffer;Kn.isArrayLike=Fvo.isArrayLike;Kn.isArrayLikeObject=Zvo.isArrayLikeObject;Kn.isBoolean=Lvo.isBoolean;Kn.isBuffer=Vvo.isBuffer;Kn.isDate=Pvo.isDate;Kn.isElement=Wvo.isElement;Kn.isEmpty=Ovo.isEmpty;Kn.isEqualWith=Mvo.isEqualWith;Kn.isError=Hvo.isError;Kn.isFinite=Yvo.isFinite;Kn.isInteger=Qvo.isInteger;Kn.isMap=Xvo.isMap;Kn.isMatch=Jvo.isMatch;Kn.isNaN=Uvo.isNaN;Kn.isNil=Kvo.isNil;Kn.isNumber=jvo.isNumber;Kn.isObject=zvo.isObject;Kn.isObjectLike=qvo.isObjectLike;Kn.isPlainObject=$vo.isPlainObject;Kn.isRegExp=eBo.isRegExp;Kn.isSafeInteger=tBo.isSafeInteger;Kn.isSet=rBo.isSet;Kn.isString=nBo.isString;Kn.isSymbol=iBo.isSymbol;Kn.isTypedArray=sBo.isTypedArray;Kn.isWeakMap=oBo.isWeakMap;Kn.isWeakSet=aBo.isWeakSet;Kn.matches=cBo.matches;Kn.matchesProperty=lBo.matchesProperty;Kn.capitalize=uBo.capitalize;Kn.bindAll=gBo.bindAll;Kn.camelCase=ABo.camelCase;Kn.deburr=dBo.deburr;Kn.endsWith=pBo.endsWith;Kn.escape=fBo.escape;Kn.escapeRegExp=IBo.escapeRegExp;Kn.kebabCase=hBo.kebabCase;Kn.lowerCase=mBo.lowerCase;Kn.lowerFirst=CBo.lowerFirst;Kn.pad=_Bo.pad;Kn.padEnd=yBo.padEnd;Kn.padStart=bBo.padStart;Kn.repeat=EBo.repeat;Kn.replace=SBo.replace;Kn.snakeCase=vBo.snakeCase;Kn.split=BBo.split;Kn.startCase=wBo.startCase;Kn.startsWith=TBo.startsWith;Kn.template=XNn.template;Kn.templateSettings=XNn.templateSettings;Kn.toLower=RBo.toLower;Kn.toUpper=NBo.toUpper;Kn.trim=DBo.trim;Kn.trimEnd=kBo.trimEnd;Kn.trimStart=xBo.trimStart;Kn.truncate=GBo.truncate;Kn.unescape=FBo.unescape;Kn.upperCase=ZBo.upperCase;Kn.upperFirst=LBo.upperFirst;Kn.words=VBo.words;Kn.cond=PBo.cond;Kn.constant=WBo.constant;Kn.defaultTo=OBo.defaultTo;Kn.eq=MBo.isEqualsSameValueZero;Kn.gt=HBo.gt;Kn.gte=YBo.gte;Kn.invoke=QBo.invoke;Kn.iteratee=XBo.iteratee;Kn.lt=JBo.lt;Kn.lte=UBo.lte;Kn.method=KBo.method;Kn.methodOf=jBo.methodOf;Kn.now=zBo.now;Kn.over=qBo.over;Kn.overEvery=$Bo.overEvery;Kn.overSome=ewo.overSome;Kn.stubArray=two.stubArray;Kn.stubFalse=rwo.stubFalse;Kn.stubObject=nwo.stubObject;Kn.stubString=iwo.stubString;Kn.stubTrue=swo.stubTrue;Kn.times=owo.times;Kn.toArray=awo.toArray;Kn.toFinite=cwo.toFinite;Kn.toInteger=lwo.toInteger;Kn.toLength=uwo.toLength;Kn.toNumber=gwo.toNumber;Kn.toPath=Awo.toPath;Kn.toPlainObject=dwo.toPlainObject;Kn.toSafeInteger=pwo.toSafeInteger;Kn.toString=fwo.toString;Kn.uniqueId=Iwo.uniqueId});var UNn=H(Lcr=>{"use strict";Object.defineProperty(Lcr,Symbol.toStringTag,{value:"Module"});var hwo=JNn(),KSe=e=>e;Object.assign(KSe,hwo);KSe.partial.placeholder=KSe;KSe.partialRight.placeholder=KSe;Lcr.toolkit=KSe});var kW=H(Jn=>{"use strict";Object.defineProperties(Jn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var mwo=E7t(),Cwo=R7t(),_wo=k7t(),ywo=F7t(),bwo=pzt(),Ewo=Czt(),Swo=Blt(),vwo=wlt(),Bwo=xzt(),wwo=Zzt(),Two=Pzt(),Rwo=Mzt(),KNn=Nlt(),jNn=Xzt(),Nwo=Kzt(),Dwo=$zt(),kwo=Dlt(),xwo=rqt(),Gwo=sqt(),Fwo=aqt(),Zwo=lqt(),zNn=Aqt(),Lwo=mqt(),Vwo=yqt(),Pwo=D3e(),Wwo=Pfe(),Owo=Eqt(),Mwo=YSe(),Hwo=Bqt(),Ywo=Tqt(),Qwo=Nqt(),Xwo=xqt(),Jwo=Lqt(),Uwo=xlt(),Kwo=Glt(),jwo=Jqt(),zwo=Kqt(),qwo=qqt(),$wo=zq(),eTo=e$t(),tTo=N3e(),rTo=r$t(),nTo=Zlt(),iTo=a$t(),sTo=g$t(),oTo=d$t(),aTo=f$t(),cTo=h$t(),lTo=E$t(),uTo=Flt(),gTo=v$t(),ATo=T$t(),dTo=D$t(),pTo=x$t(),fTo=Z$t(),ITo=J$t(),hTo=$$t(),mTo=ter(),CTo=ner(),_To=ser(),yTo=aer(),bTo=Mlt(),ETo=L3e(),STo=mer(),vTo=Ylt(),BTo=Hlt(),wTo=ber(),TTo=ver(),RTo=Ter(),NTo=Der(),DTo=Ger(),kTo=Zer(),xTo=Ver(),GTo=Xlt(),FTo=Jlt(),ZTo=k3e(),LTo=Jer(),VTo=Ker(),PTo=Ult(),WTo=etr(),OTo=ntr(),MTo=str(),HTo=ltr(),YTo=gtr(),QTo=Itr(),XTo=Ctr(),JTo=Etr(),UTo=vtr(),KTo=wtr(),jTo=jlt(),zTo=zlt(),qTo=Dtr(),$To=Gtr(),eRo=Ltr(),tRo=Wtr(),rRo=Htr(),nRo=qlt(),iRo=Jtr(),sRo=Ktr(),oRo=ztr(),aRo=rrr(),cRo=srr(),lRo=crr(),uRo=F3e(),gRo=urr(),ARo=drr(),dRo=frr(),pRo=mrr(),fRo=yrr(),IRo=Err(),hRo=Brr(),mRo=Trr(),CRo=Nrr(),_Ro=krr(),yRo=Grr(),bRo=Zrr(),ERo=Prr(),SRo=Ofe(),vRo=Orr(),BRo=Hrr(),wRo=Xrr(),TRo=Urr(),RRo=zrr(),NRo=tnr(),DRo=snr(),kRo=anr(),xRo=unr(),GRo=Anr(),FRo=pnr(),ZRo=Inr(),LRo=Cnr(),VRo=bnr(),PRo=Snr(),WRo=Bnr(),ORo=nut(),MRo=rut(),HRo=xnr(),YRo=HK(),QRo=Fnr(),XRo=Onr(),qNn=Ynr(),$Nn=Xnr(),JRo=Unr(),URo=Llt(),KRo=out(),jRo=WSe(),zRo=v3e(),qRo=qnr(),$Ro=eir(),eNo=Y3e(),tNo=iir(),rNo=air(),nNo=lir(),iNo=gir(),sNo=dir(),oNo=fir(),aNo=hir(),cNo=Cir(),lNo=yir(),uNo=Eir(),gNo=eM(),ANo=B3e(),dNo=vir(),pNo=Tir(),fNo=Nir(),INo=YK(),hNo=iX(),mNo=xir(),CNo=Zir(),_No=Mir(),yNo=lut(),bNo=Qir(),ENo=Jir(),SNo=Kir(),vNo=zir(),BNo=nX(),wNo=$ir(),TNo=tsr(),RNo=P3e(),NNo=nsr(),DNo=ssr(),kNo=gsr(),xNo=dsr(),GNo=Isr(),FNo=G3e(),ZNo=msr(),LNo=XSe(),VNo=Plt(),PNo=_sr(),WNo=bsr(),ONo=Ssr(),MNo=Elt(),HNo=Bsr(),YNo=Tsr(),QNo=Nsr(),XNo=xsr(),JNo=Aut(),UNo=Vfe(),KNo=$q(),jNo=Zsr(),zNo=Sf(),qNo=b2(),$No=Vsr(),eDo=gut(),tDo=Osr(),rDo=Hsr(),nDo=Qsr(),iDo=Ksr(),sDo=zsr(),oDo=$sr(),aDo=tor(),cDo=Vlt(),lDo=_3e(),uDo=Olt(),gDo=QSe(),ADo=V3e(),dDo=tM(),pDo=ioe(),fDo=Mfe(),IDo=ior(),hDo=oor(),mDo=lor(),CDo=HSe(),_Do=soe(),yDo=e$(),bDo=Aor(),EDo=Ior(),SDo=OK(),vDo=MK(),BDo=_or(),wDo=bor(),TDo=Tor(),RDo=t$(),NDo=Nor(),DDo=put(),kDo=For(),xDo=Vor(),GDo=Oor(),FDo=Yor(),ZDo=Jor(),LDo=Kor(),VDo=zor(),PDo=tar(),WDo=nar(),ODo=oar(),MDo=car(),HDo=uar(),YDo=Aar(),eDn=dar(),QDo=far(),XDo=har(),JDo=Bar(),UDo=Tar(),KDo=Nar(),jDo=kar(),zDo=Far(),qDo=Par(),$Do=Mar(),eko=Yar(),tko=Xar(),rko=Uar(),nko=jar(),iko=Sk(),sko=qar(),oko=ecr(),ako=U3e(),cko=im(),lko=ncr(),uko=scr(),gko=acr(),Ako=lcr(),dko=gcr(),pko=dcr(),fko=fcr(),Iko=hcr(),hko=Ccr(),mko=ycr(),Cko=Ecr(),_ko=vcr(),yko=wcr(),bko=H3e(),Eko=Z3e(),Sko=MSe(),vko=$w(),Bko=Ncr(),wko=Q9(),Tko=$5(),Rko=kcr(),Nko=Gcr(),Dko=qy(),kko=Zcr(),xko=UNn();Jn.castArray=mwo.castArray;Jn.chunk=Cwo.chunk;Jn.compact=_wo.compact;Jn.concat=ywo.concat;Jn.countBy=bwo.countBy;Jn.difference=Ewo.difference;Jn.differenceBy=Swo.differenceBy;Jn.differenceWith=vwo.differenceWith;Jn.drop=Bwo.drop;Jn.dropRight=wwo.dropRight;Jn.dropRightWhile=Two.dropRightWhile;Jn.dropWhile=Rwo.dropWhile;Jn.each=KNn.forEach;Jn.forEach=KNn.forEach;Jn.eachRight=jNn.forEachRight;Jn.forEachRight=jNn.forEachRight;Jn.every=Nwo.every;Jn.fill=Dwo.fill;Jn.filter=kwo.filter;Jn.find=xwo.find;Jn.findIndex=Gwo.findIndex;Jn.findLast=Fwo.findLast;Jn.findLastIndex=Zwo.findLastIndex;Jn.first=zNn.head;Jn.head=zNn.head;Jn.flatMap=Lwo.flatMap;Jn.flatMapDeep=Vwo.flatMapDeep;Jn.flatMapDepth=Pwo.flatMapDepth;Jn.flatten=Wwo.flatten;Jn.flattenDeep=Owo.flattenDeep;Jn.flattenDepth=Mwo.flattenDepth;Jn.groupBy=Hwo.groupBy;Jn.includes=Ywo.includes;Jn.indexOf=Qwo.indexOf;Jn.initial=Xwo.initial;Jn.intersection=Jwo.intersection;Jn.intersectionBy=Uwo.intersectionBy;Jn.intersectionWith=Kwo.intersectionWith;Jn.invokeMap=jwo.invokeMap;Jn.join=zwo.join;Jn.keyBy=qwo.keyBy;Jn.last=$wo.last;Jn.lastIndexOf=eTo.lastIndexOf;Jn.map=tTo.map;Jn.nth=rTo.nth;Jn.orderBy=nTo.orderBy;Jn.partition=iTo.partition;Jn.pull=sTo.pull;Jn.pullAll=oTo.pullAll;Jn.pullAllBy=aTo.pullAllBy;Jn.pullAllWith=cTo.pullAllWith;Jn.pullAt=lTo.pullAt;Jn.reduce=uTo.reduce;Jn.reduceRight=gTo.reduceRight;Jn.reject=ATo.reject;Jn.remove=dTo.remove;Jn.reverse=pTo.reverse;Jn.sample=fTo.sample;Jn.sampleSize=ITo.sampleSize;Jn.shuffle=hTo.shuffle;Jn.size=mTo.size;Jn.slice=CTo.slice;Jn.some=_To.some;Jn.sortBy=yTo.sortBy;Jn.sortedIndex=bTo.sortedIndex;Jn.sortedIndexBy=ETo.sortedIndexBy;Jn.sortedIndexOf=STo.sortedIndexOf;Jn.sortedLastIndex=vTo.sortedLastIndex;Jn.sortedLastIndexBy=BTo.sortedLastIndexBy;Jn.sortedLastIndexOf=wTo.sortedLastIndexOf;Jn.tail=TTo.tail;Jn.take=RTo.take;Jn.takeRight=NTo.takeRight;Jn.takeRightWhile=DTo.takeRightWhile;Jn.takeWhile=kTo.takeWhile;Jn.union=xTo.union;Jn.unionBy=GTo.unionBy;Jn.unionWith=FTo.unionWith;Jn.uniq=ZTo.uniq;Jn.uniqBy=LTo.uniqBy;Jn.uniqWith=VTo.uniqWith;Jn.unzip=PTo.unzip;Jn.unzipWith=WTo.unzipWith;Jn.without=OTo.without;Jn.xor=MTo.xor;Jn.xorBy=HTo.xorBy;Jn.xorWith=YTo.xorWith;Jn.zip=QTo.zip;Jn.zipObject=XTo.zipObject;Jn.zipObjectDeep=JTo.zipObjectDeep;Jn.zipWith=UTo.zipWith;Jn.after=KTo.after;Jn.ary=jTo.ary;Jn.attempt=zTo.attempt;Jn.before=qTo.before;Jn.bind=$To.bind;Jn.bindKey=eRo.bindKey;Jn.curry=tRo.curry;Jn.curryRight=rRo.curryRight;Jn.debounce=nRo.debounce;Jn.defer=iRo.defer;Jn.delay=sRo.delay;Jn.flip=oRo.flip;Jn.flow=aRo.flow;Jn.flowRight=cRo.flowRight;Jn.memoize=lRo.memoize;Jn.negate=uRo.negate;Jn.nthArg=gRo.nthArg;Jn.once=ARo.once;Jn.overArgs=dRo.overArgs;Jn.partial=pRo.partial;Jn.partialRight=fRo.partialRight;Jn.rearg=IRo.rearg;Jn.rest=hRo.rest;Jn.spread=mRo.spread;Jn.throttle=CRo.throttle;Jn.unary=_Ro.unary;Jn.wrap=yRo.wrap;Jn.add=bRo.add;Jn.ceil=ERo.ceil;Jn.clamp=SRo.clamp;Jn.divide=vRo.divide;Jn.floor=BRo.floor;Jn.inRange=wRo.inRange;Jn.max=TRo.max;Jn.maxBy=RRo.maxBy;Jn.mean=NRo.mean;Jn.meanBy=DRo.meanBy;Jn.min=kRo.min;Jn.minBy=xRo.minBy;Jn.multiply=GRo.multiply;Jn.parseInt=FRo.parseInt;Jn.random=ZRo.random;Jn.range=LRo.range;Jn.rangeRight=VRo.rangeRight;Jn.round=PRo.round;Jn.subtract=WRo.subtract;Jn.sum=ORo.sum;Jn.sumBy=MRo.sumBy;Jn.isEqual=HRo.isEqual;Jn.identity=YRo.identity;Jn.noop=QRo.noop;Jn.assign=XRo.assign;Jn.assignIn=qNn.assignIn;Jn.extend=qNn.assignIn;Jn.assignInWith=$Nn.assignInWith;Jn.extendWith=$Nn.assignInWith;Jn.assignWith=JRo.assignWith;Jn.at=URo.at;Jn.clone=KRo.clone;Jn.cloneDeep=jRo.cloneDeep;Jn.cloneDeepWith=zRo.cloneDeepWith;Jn.cloneWith=qRo.cloneWith;Jn.create=$Ro.create;Jn.defaults=eNo.defaults;Jn.defaultsDeep=tNo.defaultsDeep;Jn.findKey=rNo.findKey;Jn.findLastKey=nNo.findLastKey;Jn.forIn=iNo.forIn;Jn.forInRight=sNo.forInRight;Jn.forOwn=oNo.forOwn;Jn.forOwnRight=aNo.forOwnRight;Jn.fromPairs=cNo.fromPairs;Jn.functions=lNo.functions;Jn.functionsIn=uNo.functionsIn;Jn.get=gNo.get;Jn.has=ANo.has;Jn.hasIn=dNo.hasIn;Jn.invert=pNo.invert;Jn.invertBy=fNo.invertBy;Jn.keys=INo.keys;Jn.keysIn=hNo.keysIn;Jn.mapKeys=mNo.mapKeys;Jn.mapValues=CNo.mapValues;Jn.merge=_No.merge;Jn.mergeWith=yNo.mergeWith;Jn.omit=bNo.omit;Jn.omitBy=ENo.omitBy;Jn.pick=SNo.pick;Jn.pickBy=vNo.pickBy;Jn.property=BNo.property;Jn.propertyOf=wNo.propertyOf;Jn.result=TNo.result;Jn.set=RNo.set;Jn.setWith=NNo.setWith;Jn.toDefaulted=DNo.toDefaulted;Jn.toPairs=kNo.toPairs;Jn.toPairsIn=xNo.toPairsIn;Jn.transform=GNo.transform;Jn.unset=FNo.unset;Jn.update=ZNo.update;Jn.updateWith=LNo.updateWith;Jn.values=VNo.values;Jn.valuesIn=PNo.valuesIn;Jn.isFunction=WNo.isFunction;Jn.isLength=ONo.isLength;Jn.isMatchWith=MNo.isMatchWith;Jn.isNative=HNo.isNative;Jn.isNull=YNo.isNull;Jn.isUndefined=QNo.isUndefined;Jn.conforms=XNo.conforms;Jn.conformsTo=JNo.conformsTo;Jn.isArguments=UNo.isArguments;Jn.isArray=KNo.isArray;Jn.isArrayBuffer=jNo.isArrayBuffer;Jn.isArrayLike=zNo.isArrayLike;Jn.isArrayLikeObject=qNo.isArrayLikeObject;Jn.isBoolean=$No.isBoolean;Jn.isBuffer=eDo.isBuffer;Jn.isDate=tDo.isDate;Jn.isElement=rDo.isElement;Jn.isEmpty=nDo.isEmpty;Jn.isEqualWith=iDo.isEqualWith;Jn.isError=sDo.isError;Jn.isFinite=oDo.isFinite;Jn.isInteger=aDo.isInteger;Jn.isMap=cDo.isMap;Jn.isMatch=lDo.isMatch;Jn.isNaN=uDo.isNaN;Jn.isNil=gDo.isNil;Jn.isNumber=ADo.isNumber;Jn.isObject=dDo.isObject;Jn.isObjectLike=pDo.isObjectLike;Jn.isPlainObject=fDo.isPlainObject;Jn.isRegExp=IDo.isRegExp;Jn.isSafeInteger=hDo.isSafeInteger;Jn.isSet=mDo.isSet;Jn.isString=CDo.isString;Jn.isSymbol=_Do.isSymbol;Jn.isTypedArray=yDo.isTypedArray;Jn.isWeakMap=bDo.isWeakMap;Jn.isWeakSet=EDo.isWeakSet;Jn.matches=SDo.matches;Jn.matchesProperty=vDo.matchesProperty;Jn.capitalize=BDo.capitalize;Jn.bindAll=wDo.bindAll;Jn.camelCase=TDo.camelCase;Jn.deburr=RDo.deburr;Jn.endsWith=NDo.endsWith;Jn.escape=DDo.escape;Jn.escapeRegExp=kDo.escapeRegExp;Jn.kebabCase=xDo.kebabCase;Jn.lowerCase=GDo.lowerCase;Jn.lowerFirst=FDo.lowerFirst;Jn.pad=ZDo.pad;Jn.padEnd=LDo.padEnd;Jn.padStart=VDo.padStart;Jn.repeat=PDo.repeat;Jn.replace=WDo.replace;Jn.snakeCase=ODo.snakeCase;Jn.split=MDo.split;Jn.startCase=HDo.startCase;Jn.startsWith=YDo.startsWith;Jn.template=eDn.template;Jn.templateSettings=eDn.templateSettings;Jn.toLower=QDo.toLower;Jn.toUpper=XDo.toUpper;Jn.trim=JDo.trim;Jn.trimEnd=UDo.trimEnd;Jn.trimStart=KDo.trimStart;Jn.truncate=jDo.truncate;Jn.unescape=zDo.unescape;Jn.upperCase=qDo.upperCase;Jn.upperFirst=$Do.upperFirst;Jn.words=eko.words;Jn.cond=tko.cond;Jn.constant=rko.constant;Jn.defaultTo=nko.defaultTo;Jn.eq=iko.isEqualsSameValueZero;Jn.gt=sko.gt;Jn.gte=oko.gte;Jn.invoke=ako.invoke;Jn.iteratee=cko.iteratee;Jn.lt=lko.lt;Jn.lte=uko.lte;Jn.method=gko.method;Jn.methodOf=Ako.methodOf;Jn.now=dko.now;Jn.over=pko.over;Jn.overEvery=fko.overEvery;Jn.overSome=Iko.overSome;Jn.stubArray=hko.stubArray;Jn.stubFalse=mko.stubFalse;Jn.stubObject=Cko.stubObject;Jn.stubString=_ko.stubString;Jn.stubTrue=yko.stubTrue;Jn.times=bko.times;Jn.toArray=Eko.toArray;Jn.toFinite=Sko.toFinite;Jn.toInteger=vko.toInteger;Jn.toLength=Bko.toLength;Jn.toNumber=wko.toNumber;Jn.toPath=Tko.toPath;Jn.toPlainObject=Rko.toPlainObject;Jn.toSafeInteger=Nko.toSafeInteger;Jn.toString=Dko.toString;Jn.uniqueId=kko.uniqueId;Jn.default=xko.toolkit});var xW=H((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.CachingStrategy=exports.DefaultStream=exports.AsyncActions=exports.BufferStream=void 0;exports.isTaggedYarnVersion=isTaggedYarnVersion;exports.plural=plural;exports.escapeRegExp=escapeRegExp;exports.overrideType=overrideType;exports.assertNever=assertNever;exports.validateEnum=validateEnum;exports.mapAndFilter=mapAndFilter;exports.mapAndFind=mapAndFind;exports.isIndexableObject=isIndexableObject;exports.allSettledSafe=allSettledSafe;exports.convertMapsToIndexableObjects=convertMapsToIndexableObjects;exports.getFactoryWithDefault=getFactoryWithDefault;exports.getArrayWithDefault=getArrayWithDefault;exports.getSetWithDefault=getSetWithDefault;exports.getMapWithDefault=getMapWithDefault;exports.releaseAfterUseAsync=releaseAfterUseAsync;exports.prettifyAsyncErrors=prettifyAsyncErrors;exports.prettifySyncErrors=prettifySyncErrors;exports.bufferStream=bufferStream;exports.makeDeferred=makeDeferred;exports.dynamicRequire=dynamicRequire;exports.sortMap=sortMap;exports.buildIgnorePattern=buildIgnorePattern;exports.replaceEnvVariables=replaceEnvVariables;exports.parseBoolean=parseBoolean;exports.parseOptionalBoolean=parseOptionalBoolean;exports.tryParseOptionalBoolean=tryParseOptionalBoolean;exports.isPathLike=isPathLike;exports.mergeIntoTarget=mergeIntoTarget;exports.toMerged=toMerged;exports.groupBy=groupBy;exports.parseInt=parseInt;exports.parseDuration=parseDuration;var tslib_1=(Pa(),vi(Va)),fslib_1=no(),clipanion_1=($c(),vi(rg)),compat_1=kW(),micromatch_1=tslib_1.__importDefault(Ek()),p_limit_1=tslib_1.__importDefault(Dfe()),semver_1=tslib_1.__importDefault(UC()),stream_1=wt("stream");function isTaggedYarnVersion(e){return!!(semver_1.default.valid(e)&&e.match(/^[^-]+(-rc\.[0-9]+)?$/))}function plural(e,{one:t,more:r,zero:n=r}){return e===0?n:e===1?t:r}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function overrideType(e){}function assertNever(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function validateEnum(e,t){let r=Object.values(e);if(!r.includes(t))throw new clipanion_1.UsageError(`Invalid value for enumeration: ${JSON.stringify(t)} (expected one of ${r.map(n=>JSON.stringify(n)).join(", ")})`);return t}function mapAndFilter(e,t){let r=[];for(let n of e){let a=t(n);a!==mapAndFilterSkip&&r.push(a)}return r}var mapAndFilterSkip=Symbol();mapAndFilter.skip=mapAndFilterSkip;function mapAndFind(e,t){for(let r of e){let n=t(r);if(n!==mapAndFindSkip)return n}}var mapAndFindSkip=Symbol();mapAndFind.skip=mapAndFindSkip;function isIndexableObject(e){return typeof e=="object"&&e!==null}async function allSettledSafe(e){let t=await Promise.allSettled(e),r=[];for(let n of t){if(n.status==="rejected")throw n.reason;r.push(n.value)}return r}function convertMapsToIndexableObjects(e){if(e instanceof Map&&(e=Object.fromEntries(e)),isIndexableObject(e))for(let t of Object.keys(e)){let r=e[t];isIndexableObject(r)&&(e[t]=convertMapsToIndexableObjects(r))}return e}function getFactoryWithDefault(e,t,r){let n=e.get(t);return typeof n>"u"&&e.set(t,n=r()),n}function getArrayWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=[]),r}function getSetWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Set),r}function getMapWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Map),r}async function releaseAfterUseAsync(e,t){if(t==null)return await e();try{return await e()}finally{await t()}}async function prettifyAsyncErrors(e,t){try{return await e()}catch(r){throw r.message=t(r.message),r}}function prettifySyncErrors(e,t){try{return e()}catch(r){throw r.message=t(r.message),r}}async function bufferStream(e){return await new Promise((t,r)=>{let n=[];e.on("error",a=>{r(a)}),e.on("data",a=>{n.push(a)}),e.on("end",()=>{t(Buffer.concat(n))})})}var BufferStream=class extends stream_1.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};exports.BufferStream=BufferStream;function makeDeferred(){let e,t;return{promise:new Promise((n,a)=>{e=n,t=a}),resolve:e,reject:t}}var AsyncActions=class{constructor(t){this.deferred=new Map,this.promises=new Map,this.limit=(0,p_limit_1.default)(t)}set(t,r){let n=this.deferred.get(t);typeof n>"u"&&this.deferred.set(t,n=makeDeferred());let a=this.limit(()=>r());return this.promises.set(t,a),a.then(()=>{this.promises.get(t)===a&&n.resolve()},o=>{this.promises.get(t)===a&&n.reject(o)}),n.promise}reduce(t,r){let n=this.promises.get(t)??Promise.resolve();this.set(t,()=>r(n))}async wait(){await Promise.all(this.promises.values())}};exports.AsyncActions=AsyncActions;var DefaultStream=class extends stream_1.Transform{constructor(t=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=t}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}};exports.DefaultStream=DefaultStream;var realRequire=eval("require");function dynamicRequireNode(e){return realRequire(fslib_1.npath.fromPortablePath(e))}function dynamicRequireNoCache(path){let physicalPath=fslib_1.npath.fromPortablePath(path),currentCacheEntry=realRequire.cache[physicalPath];delete realRequire.cache[physicalPath];let result;try{result=dynamicRequireNode(physicalPath);let freshCacheEntry=realRequire.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children?dynamicModule.children.indexOf(freshCacheEntry):-1;freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{realRequire.cache[physicalPath]=currentCacheEntry}return result}var dynamicRequireFsTimeCache=new Map;function dynamicRequireFsTime(e){let t=dynamicRequireFsTimeCache.get(e),r=fslib_1.xfs.statSync(e);if(t?.mtime===r.mtimeMs)return t.instance;let n=dynamicRequireNoCache(e);return dynamicRequireFsTimeCache.set(e,{mtime:r.mtimeMs,instance:n}),n}var CachingStrategy;(function(e){e[e.NoCache=0]="NoCache",e[e.FsTime=1]="FsTime",e[e.Node=2]="Node"})(CachingStrategy||(exports.CachingStrategy=CachingStrategy={}));function dynamicRequire(e,{cachingStrategy:t=CachingStrategy.Node}={}){switch(t){case CachingStrategy.NoCache:return dynamicRequireNoCache(e);case CachingStrategy.FsTime:return dynamicRequireFsTime(e);case CachingStrategy.Node:return dynamicRequireNode(e);default:throw new Error("Unsupported caching strategy")}}function sortMap(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function buildIgnorePattern(e){return e.length===0?null:e.map(t=>`(${micromatch_1.default.makeRe(t,{windows:!1,dot:!0}).source})`).join("|")}function replaceEnvVariables(e,{env:t}){let r="",n=0,a=0,o=e.matchAll(/\\(?[\\$}])|\$\{(?[a-zA-Z]\w*)(?:-|-|(?=\}))|(?\$\{)|\}/g),l=()=>{let A=a;for(let{0:f,index:I,groups:{variable:C}={}}of o)if(C)a++;else if(f==="}"&&--a0)throw new clipanion_1.UsageError(`Incomplete variable substitution in input: ${e}`);return r+e.slice(n)}function parseBoolean(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}function parseOptionalBoolean(e){return typeof e>"u"?e:parseBoolean(e)}function tryParseOptionalBoolean(e){try{return parseOptionalBoolean(e)}catch{return null}}function isPathLike(e){return!!(fslib_1.npath.isAbsolute(e)||e.match(/^(\.{1,2}|~)\//))}function mergeIntoTarget(e,...t){let r=l=>({value:l}),n=r(e),a=t.map(l=>r(l)),{value:o}=(0,compat_1.mergeWith)(n,...a,(l,A)=>{if(Array.isArray(l)&&Array.isArray(A)){for(let f of A)l.find(I=>(0,compat_1.isEqual)(I,f))||l.push(f);return l}});return o}function toMerged(...e){return mergeIntoTarget({},...e)}function groupBy(e,t){let r=Object.create(null);for(let n of e){let a=n[t];r[a]??=[],r[a].push(n)}return r}function parseInt(e){return typeof e=="string"?Number.parseInt(e,10):e}var DURATION_UNITS={ms:1,s:1e3,m:60*1e3,h:60*60*1e3,d:24*60*60*1e3,w:7*24*60*60*1e3},DURATION_REGEXP=new RegExp(`^(?\\d*\\.?\\d+)(?${Object.keys(DURATION_UNITS).join("|")})?$`);function parseDuration(e,t){let r=DURATION_REGEXP.exec(e)?.groups;if(!r)throw new Error(`Couldn't parse "${e}" as a duration`);if(r.unit===void 0)return parseFloat(r.num);let n=DURATION_UNITS[r.unit];if(!n)throw new Error(`Invalid duration unit "${r.unit}"`);return parseFloat(r.num)*n/DURATION_UNITS[t]}});var Qfe=H(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});loe.PackageExtensionStatus=loe.PackageExtensionType=loe.LinkType=void 0;var tDn;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(tDn||(loe.LinkType=tDn={}));var rDn;(function(e){e.Dependency="Dependency",e.PeerDependency="PeerDependency",e.PeerDependencyMeta="PeerDependencyMeta"})(rDn||(loe.PackageExtensionType=rDn={}));var nDn;(function(e){e.Inactive="inactive",e.Redundant="redundant",e.Active="active"})(nDn||(loe.PackageExtensionStatus=nDn={}))});var rM=H(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});Wu.LogLevel=Wu.supportsHyperlinks=Wu.supportsColor=Wu.Style=Wu.Type=Wu.stripAnsi=void 0;Wu.tuple=Vko;Wu.applyStyle=aDn;Wu.applyColor=eb;Wu.applyHyperlink=cDn;Wu.pretty=Xfe;Wu.prettyList=Wko;Wu.json=lDn;Wu.jsonOrPretty=Oko;Wu.mark=Mko;Wu.prettyField=Hko;Wu.prettyTruncatedLocatorList=Yko;Wu.addLogFilterSupport=Qko;var zSe=(Pa(),vi(Va)),iDn=no(),yut=zSe.__importDefault(VK()),Cut=zSe.__importDefault(Nfe()),Gko=($c(),vi(rg)),Fko=zSe.__importDefault(Ek()),oDn=zSe.__importDefault(q5());Wu.stripAnsi=oDn.default;var mut=M9(),Zko=zSe.__importStar(xW()),DE=zSe.__importStar(uG()),jSe=Qfe();Wu.Type={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"};var but;(function(e){e[e.BOLD=2]="BOLD"})(but||(Wu.Style=but={}));var Pcr=Cut.default.GITHUB_ACTIONS?{level:2}:yut.default.supportsColor?{level:yut.default.supportsColor.level}:{level:0};Wu.supportsColor=Pcr.level!==0;Wu.supportsHyperlinks=Wu.supportsColor&&!Cut.default.GITHUB_ACTIONS&&!Cut.default.CIRCLE&&!Cut.default.GITLAB;var Vcr=new yut.default.Instance(Pcr),Lko=new Map([[Wu.Type.NO_HINT,null],[Wu.Type.NULL,["#a853b5",129]],[Wu.Type.SCOPE,["#d75f00",166]],[Wu.Type.NAME,["#d7875f",173]],[Wu.Type.RANGE,["#00afaf",37]],[Wu.Type.REFERENCE,["#87afff",111]],[Wu.Type.NUMBER,["#ffd700",220]],[Wu.Type.STRING,["#b4bd68",32]],[Wu.Type.BOOLEAN,["#faa023",209]],[Wu.Type.PATH,["#d75fd7",170]],[Wu.Type.URL,["#d75fd7",170]],[Wu.Type.ADDED,["#5faf00",70]],[Wu.Type.REMOVED,["#ff3131",160]],[Wu.Type.CODE,["#87afff",111]],[Wu.Type.SIZE,["#ffd700",220]]]),lG=e=>e;function sDn(e){let t=["KiB","MiB","GiB","TiB"],r=t.length;for(;r>1&&e<1024**r;)r-=1;let n=1024**r;return`${Math.floor(e*100/n)/100} ${t[r-1]}`}function _ut(e,t){if(Array.isArray(t))return t.length===0?eb(e,"[]",Wu.Type.CODE):eb(e,"[ ",Wu.Type.CODE)+t.map(r=>_ut(e,r)).join(", ")+eb(e," ]",Wu.Type.CODE);if(typeof t=="string")return eb(e,JSON.stringify(t),Wu.Type.STRING);if(typeof t=="number")return eb(e,JSON.stringify(t),Wu.Type.NUMBER);if(typeof t=="boolean")return eb(e,JSON.stringify(t),Wu.Type.BOOLEAN);if(t===null)return eb(e,"null",Wu.Type.NULL);if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){let r=Object.entries(t);return r.length===0?eb(e,"{}",Wu.Type.CODE):eb(e,"{ ",Wu.Type.CODE)+r.map(([n,a])=>`${_ut(e,n)}: ${_ut(e,a)}`).join(", ")+eb(e," }",Wu.Type.CODE)}if(typeof t>"u")return eb(e,"undefined",Wu.Type.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}var Eut={[Wu.Type.ID]:lG({pretty:(e,t)=>typeof t=="number"?eb(e,`${t}`,Wu.Type.NUMBER):eb(e,t,Wu.Type.CODE),json:e=>e}),[Wu.Type.INSPECT]:lG({pretty:(e,t)=>_ut(e,t),json:e=>e}),[Wu.Type.NUMBER]:lG({pretty:(e,t)=>eb(e,`${t}`,Wu.Type.NUMBER),json:e=>e}),[Wu.Type.IDENT]:lG({pretty:(e,t)=>DE.prettyIdent(e,t),json:e=>DE.stringifyIdent(e)}),[Wu.Type.LOCATOR]:lG({pretty:(e,t)=>DE.prettyLocator(e,t),json:e=>DE.stringifyLocator(e)}),[Wu.Type.DESCRIPTOR]:lG({pretty:(e,t)=>DE.prettyDescriptor(e,t),json:e=>DE.stringifyDescriptor(e)}),[Wu.Type.RESOLUTION]:lG({pretty:(e,{descriptor:t,locator:r})=>DE.prettyResolution(e,t,r),json:({descriptor:e,locator:t})=>({descriptor:DE.stringifyDescriptor(e),locator:t!==null?DE.stringifyLocator(t):null})}),[Wu.Type.DEPENDENT]:lG({pretty:(e,{locator:t,descriptor:r})=>DE.prettyDependent(e,t,r),json:({locator:e,descriptor:t})=>({locator:DE.stringifyLocator(e),descriptor:DE.stringifyDescriptor(t)})}),[Wu.Type.PACKAGE_EXTENSION]:lG({pretty:(e,t)=>{switch(t.type){case jSe.PackageExtensionType.Dependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"dependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependenciesMeta",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,DE.parseIdent(t.selector))} \u27A4 ${eb(e,t.key,Wu.Type.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}},json:e=>{switch(e.type){case jSe.PackageExtensionType.Dependency:return`${DE.stringifyIdent(e.parentDescriptor)} > ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${e.selector} / ${e.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}}}),[Wu.Type.SETTING]:lG({pretty:(e,t)=>(e.get(t),cDn(e,eb(e,t,Wu.Type.CODE),`https://yarnpkg.com/configuration/yarnrc#${t}`)),json:e=>e}),[Wu.Type.DURATION]:lG({pretty:(e,t)=>{if(t>1e3*60){let r=Math.floor(t/1e3/60),n=Math.ceil((t-r*60*1e3)/1e3);return n===0?`${r}m`:`${r}m ${n}s`}else{let r=Math.floor(t/1e3),n=t-r*1e3;return n===0?`${r}s`:`${r}s ${n}ms`}},json:e=>e}),[Wu.Type.SIZE]:lG({pretty:(e,t)=>eb(e,sDn(t),Wu.Type.NUMBER),json:e=>e}),[Wu.Type.SIZE_DIFF]:lG({pretty:(e,t)=>{let r=t>=0?"+":"-",n=r==="+"?Wu.Type.REMOVED:Wu.Type.ADDED;return eb(e,`${r} ${sDn(Math.max(Math.abs(t),1))}`,n)},json:e=>e}),[Wu.Type.PATH]:lG({pretty:(e,t)=>eb(e,iDn.npath.fromPortablePath(t),Wu.Type.PATH),json:e=>iDn.npath.fromPortablePath(e)}),[Wu.Type.MARKDOWN]:lG({pretty:(e,{text:t,format:r,paragraphs:n})=>(0,Gko.formatMarkdownish)(t,{format:r,paragraphs:n}),json:({text:e})=>e}),[Wu.Type.MARKDOWN_INLINE]:lG({pretty:(e,t)=>(t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(r,n,a)=>Xfe(e,n+a+n,Wu.Type.CODE)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,n,a)=>aDn(e,a,but.BOLD)),t),json:e=>e})};function Vko(e,t){return[t,e]}function aDn(e,t,r){return e.get("enableColors")&&r&but.BOLD&&(t=yut.default.bold(t)),t}function eb(e,t,r){if(!e.get("enableColors"))return t;let n=Lko.get(r);if(n===null)return t;let a=typeof n>"u"?r:Pcr.level>=3?n[0]:n[1],o=typeof a=="number"?Vcr.ansi256(a):a.startsWith("#")?Vcr.hex(a):Vcr[a];if(typeof o!="function")throw new Error(`Invalid format type ${a}`);return o(t)}var Pko=!!process.env.KONSOLE_VERSION;function cDn(e,t,r){return e.get("enableHyperlinks")?Pko?`\x1B]8;;${r}\x1B\\${t}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${t}\x1B]8;;\x07`:t}function Xfe(e,t,r){if(t===null)return eb(e,"null",Wu.Type.NULL);if(Object.hasOwn(Eut,r))return Eut[r].pretty(e,t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return eb(e,t,r)}function Wko(e,t,r,{separator:n=", "}={}){return[...t].map(a=>Xfe(e,a,r)).join(n)}function lDn(e,t){if(e===null)return null;if(Object.hasOwn(Eut,t))return Zko.overrideType(t),Eut[t].json(e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return e}function Oko(e,t,[r,n]){return e?lDn(r,n):Xfe(t,r,n)}function Mko(e){return{Check:eb(e,"\u2713","green"),Cross:eb(e,"\u2718","red"),Question:eb(e,"?","cyan")}}function Hko(e,{label:t,value:[r,n]}){return`${Xfe(e,t,Wu.Type.CODE)}: ${Xfe(e,r,n)}`}function Yko(e,t,r){let n=[],a=[...t],o=r;for(;a.length>0;){let I=a[0],C=`${DE.prettyLocator(e,I)}, `,b=DE.prettyLocatorNoColors(I).length+2;if(n.length>0&&oI).join("").slice(0,-2);let l="X".repeat(a.length.toString().length),A=`and ${l} more.`,f=a.length;for(;n.length>1&&oI).join(""),A.replace(l,Xfe(e,f,Wu.Type.NUMBER))].join("")}var uoe;(function(e){e.Error="error",e.Warning="warning",e.Info="info",e.Discard="discard"})(uoe||(Wu.LogLevel=uoe={}));function Qko(e,{configuration:t}){let r=t.get("logFilters"),n=new Map,a=new Map,o=[];for(let b of r){let E=b.get("level");if(typeof E>"u")continue;let N=b.get("code");typeof N<"u"&&n.set(N,E);let B=b.get("text");typeof B<"u"&&a.set(B,E);let F=b.get("pattern");typeof F<"u"&&o.push([Fko.default.matcher(F,{contains:!0}),E])}o.reverse();let l=(b,E,N)=>{if(b===null||b===mut.MessageName.UNNAMED)return N;let B=a.size>0||o.length>0?(0,oDn.default)(E):E;if(a.size>0){let F=a.get(B);if(typeof F<"u")return F??N}if(o.length>0){for(let[F,Q]of o)if(F(B))return Q??N}if(n.size>0){let F=n.get((0,mut.stringifyMessageName)(b));if(typeof F<"u")return F??N}return N},A=e.reportInfo,f=e.reportWarning,I=e.reportError,C=function(b,E,N,B){switch(l(E,N,B)){case uoe.Info:A.call(b,E,N);break;case uoe.Warning:f.call(b,E??mut.MessageName.UNNAMED,N);break;case uoe.Error:I.call(b,E??mut.MessageName.UNNAMED,N);break}};e.reportInfo=function(...b){return C(this,...b,uoe.Info)},e.reportWarning=function(...b){return C(this,...b,uoe.Warning)},e.reportError=function(...b){return C(this,...b,uoe.Error)}}});var uDn=H(qSe=>{"use strict";Object.defineProperty(qSe,"__esModule",{value:!0});qSe.splitWhen=qSe.flatten=void 0;function Xko(e){return e.reduce((t,r)=>[].concat(t,r),[])}qSe.flatten=Xko;function Jko(e,t){let r=[[]],n=0;for(let a of e)t(a)?(n++,r[n]=[]):r[n].push(a);return r}qSe.splitWhen=Jko});var gDn=H(Sut=>{"use strict";Object.defineProperty(Sut,"__esModule",{value:!0});Sut.isEnoentCodeError=void 0;function Uko(e){return e.code==="ENOENT"}Sut.isEnoentCodeError=Uko});var ADn=H(vut=>{"use strict";Object.defineProperty(vut,"__esModule",{value:!0});vut.createDirentFromStats=void 0;var Wcr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Kko(e,t){return new Wcr(e,t)}vut.createDirentFromStats=Kko});var IDn=H(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.convertPosixPathToPattern=eT.convertWindowsPathToPattern=eT.convertPathToPattern=eT.escapePosixPath=eT.escapeWindowsPath=eT.escape=eT.removeLeadingDotSegment=eT.makeAbsolute=eT.unixify=void 0;var jko=wt("os"),zko=wt("path"),dDn=jko.platform()==="win32",qko=2,$ko=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,exo=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,txo=/^\\\\([.?])/,rxo=/\\(?![!()+@[\]{}])/g;function nxo(e){return e.replace(/\\/g,"/")}eT.unixify=nxo;function ixo(e,t){return zko.resolve(e,t)}eT.makeAbsolute=ixo;function sxo(e){if(e.charAt(0)==="."){let t=e.charAt(1);if(t==="/"||t==="\\")return e.slice(qko)}return e}eT.removeLeadingDotSegment=sxo;eT.escape=dDn?Ocr:Mcr;function Ocr(e){return e.replace(exo,"\\$2")}eT.escapeWindowsPath=Ocr;function Mcr(e){return e.replace($ko,"\\$2")}eT.escapePosixPath=Mcr;eT.convertPathToPattern=dDn?pDn:fDn;function pDn(e){return Ocr(e).replace(txo,"//$1").replace(rxo,"/")}eT.convertWindowsPathToPattern=pDn;function fDn(e){return Mcr(e)}eT.convertPosixPathToPattern=fDn});var mDn=H((TKl,hDn)=>{hDn.exports=function(t){if(typeof t!="string"||t==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(r[2])return!0;t=t.slice(r.index+r[0].length)}return!1}});var yDn=H((RKl,_Dn)=>{var oxo=mDn(),CDn={"{":"}","(":")","[":"]"},axo=function(e){if(e[0]==="!")return!0;for(var t=0,r=-2,n=-2,a=-2,o=-2,l=-2;tt&&(l===-1||l>n||(l=e.indexOf("\\",t),l===-1||l>n)))||a!==-1&&e[t]==="{"&&e[t+1]!=="}"&&(a=e.indexOf("}",t),a>t&&(l=e.indexOf("\\",t),l===-1||l>a))||o!==-1&&e[t]==="("&&e[t+1]==="?"&&/[:!=]/.test(e[t+2])&&e[t+3]!==")"&&(o=e.indexOf(")",t),o>t&&(l=e.indexOf("\\",t),l===-1||l>o))||r!==-1&&e[t]==="("&&e[t+1]!=="|"&&(rr&&(l=e.indexOf("\\",r),l===-1||l>o))))return!0;if(e[t]==="\\"){var A=e[t+1];t+=2;var f=CDn[A];if(f){var I=e.indexOf(f,t);I!==-1&&(t=I+1)}if(e[t]==="!")return!0}else t++}return!1},cxo=function(e){if(e[0]==="!")return!0;for(var t=0;t{"use strict";var lxo=yDn(),uxo=wt("path").posix.dirname,gxo=wt("os").platform()==="win32",Hcr="/",Axo=/\\/g,dxo=/[\{\[].*[\}\]]$/,pxo=/(^|[^\\])([\{\[]|\([^\)]+$)/,fxo=/\\([\!\*\?\|\[\]\(\)\{\}])/g;bDn.exports=function(t,r){var n=Object.assign({flipBackslashes:!0},r);n.flipBackslashes&&gxo&&t.indexOf(Hcr)<0&&(t=t.replace(Axo,Hcr)),dxo.test(t)&&(t+=Hcr),t+="a";do t=uxo(t);while(lxo(t)||pxo.test(t));return t.replace(fxo,"$1")}});var DDn=H(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});oI.removeDuplicateSlashes=oI.matchAny=oI.convertPatternsToRe=oI.makeRe=oI.getPatternParts=oI.expandBraceExpansion=oI.expandPatternsWithBraceExpansion=oI.isAffectDepthOfReadingPattern=oI.endsWithSlashGlobStar=oI.hasGlobStar=oI.getBaseDirectory=oI.isPatternRelatedToParentDirectory=oI.getPatternsOutsideCurrentDirectory=oI.getPatternsInsideCurrentDirectory=oI.getPositivePatterns=oI.getNegativePatterns=oI.isPositivePattern=oI.isNegativePattern=oI.convertToNegativePattern=oI.convertToPositivePattern=oI.isDynamicPattern=oI.isStaticPattern=void 0;var Ixo=wt("path"),hxo=EDn(),Ycr=Ek(),SDn="**",mxo="\\",Cxo=/[*?]|^!/,_xo=/\[[^[]*]/,yxo=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,bxo=/[!*+?@]\([^(]*\)/,Exo=/,|\.\./,Sxo=/(?!^)\/{2,}/g;function vDn(e,t={}){return!BDn(e,t)}oI.isStaticPattern=vDn;function BDn(e,t={}){return e===""?!1:!!(t.caseSensitiveMatch===!1||e.includes(mxo)||Cxo.test(e)||_xo.test(e)||yxo.test(e)||t.extglob!==!1&&bxo.test(e)||t.braceExpansion!==!1&&vxo(e))}oI.isDynamicPattern=BDn;function vxo(e){let t=e.indexOf("{");if(t===-1)return!1;let r=e.indexOf("}",t+1);if(r===-1)return!1;let n=e.slice(t,r);return Exo.test(n)}function Bxo(e){return But(e)?e.slice(1):e}oI.convertToPositivePattern=Bxo;function wxo(e){return"!"+e}oI.convertToNegativePattern=wxo;function But(e){return e.startsWith("!")&&e[1]!=="("}oI.isNegativePattern=But;function wDn(e){return!But(e)}oI.isPositivePattern=wDn;function Txo(e){return e.filter(But)}oI.getNegativePatterns=Txo;function Rxo(e){return e.filter(wDn)}oI.getPositivePatterns=Rxo;function Nxo(e){return e.filter(t=>!Qcr(t))}oI.getPatternsInsideCurrentDirectory=Nxo;function Dxo(e){return e.filter(Qcr)}oI.getPatternsOutsideCurrentDirectory=Dxo;function Qcr(e){return e.startsWith("..")||e.startsWith("./..")}oI.isPatternRelatedToParentDirectory=Qcr;function kxo(e){return hxo(e,{flipBackslashes:!1})}oI.getBaseDirectory=kxo;function xxo(e){return e.includes(SDn)}oI.hasGlobStar=xxo;function TDn(e){return e.endsWith("/"+SDn)}oI.endsWithSlashGlobStar=TDn;function Gxo(e){let t=Ixo.basename(e);return TDn(e)||vDn(t)}oI.isAffectDepthOfReadingPattern=Gxo;function Fxo(e){return e.reduce((t,r)=>t.concat(RDn(r)),[])}oI.expandPatternsWithBraceExpansion=Fxo;function RDn(e){let t=Ycr.braces(e,{expand:!0,nodupes:!0,keepEscaping:!0});return t.sort((r,n)=>r.length-n.length),t.filter(r=>r!=="")}oI.expandBraceExpansion=RDn;function Zxo(e,t){let{parts:r}=Ycr.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return r.length===0&&(r=[e]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}oI.getPatternParts=Zxo;function NDn(e,t){return Ycr.makeRe(e,t)}oI.makeRe=NDn;function Lxo(e,t){return e.map(r=>NDn(r,t))}oI.convertPatternsToRe=Lxo;function Vxo(e,t){return t.some(r=>r.test(e))}oI.matchAny=Vxo;function Pxo(e){return e.replace(Sxo,"/")}oI.removeDuplicateSlashes=Pxo});var Xcr=H((kKl,GDn)=>{"use strict";var Wxo=wt("stream"),kDn=Wxo.PassThrough,Oxo=Array.prototype.slice;GDn.exports=Mxo;function Mxo(){let e=[],t=Oxo.call(arguments),r=!1,n=t[t.length-1];n&&!Array.isArray(n)&&n.pipe==null?t.pop():n={};let a=n.end!==!1,o=n.pipeError===!0;n.objectMode==null&&(n.objectMode=!0),n.highWaterMark==null&&(n.highWaterMark=64*1024);let l=kDn(n);function A(){for(let C=0,b=arguments.length;C0||(r=!1,f())}function N(B){function F(){B.removeListener("merge2UnpipeEnd",F),B.removeListener("end",F),o&&B.removeListener("error",Q),E()}function Q(X){l.emit("error",X)}if(B._readableState.endEmitted)return E();B.on("merge2UnpipeEnd",F),B.on("end",F),o&&B.on("error",Q),B.pipe(l,{end:!1}),B.resume()}for(let B=0;B{"use strict";Object.defineProperty(wut,"__esModule",{value:!0});wut.merge=void 0;var Hxo=Xcr();function Yxo(e){let t=Hxo(e);return e.forEach(r=>{r.once("error",n=>t.emit("error",n))}),t.once("close",()=>FDn(e)),t.once("end",()=>FDn(e)),t}wut.merge=Yxo;function FDn(e){e.forEach(t=>t.emit("close"))}});var LDn=H($Se=>{"use strict";Object.defineProperty($Se,"__esModule",{value:!0});$Se.isEmpty=$Se.isString=void 0;function Qxo(e){return typeof e=="string"}$Se.isString=Qxo;function Xxo(e){return e===""}$Se.isEmpty=Xxo});var r$=H(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.string=gG.stream=gG.pattern=gG.path=gG.fs=gG.errno=gG.array=void 0;var Jxo=uDn();gG.array=Jxo;var Uxo=gDn();gG.errno=Uxo;var Kxo=ADn();gG.fs=Kxo;var jxo=IDn();gG.path=jxo;var zxo=DDn();gG.pattern=zxo;var qxo=ZDn();gG.stream=qxo;var $xo=LDn();gG.string=$xo});var ODn=H(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.convertPatternGroupToTask=AG.convertPatternGroupsToTasks=AG.groupPatternsByBaseDirectory=AG.getNegativePatternsAsPositive=AG.getPositivePatterns=AG.convertPatternsToTasks=AG.generate=void 0;var sX=r$();function eGo(e,t){let r=VDn(e,t),n=VDn(t.ignore,t),a=PDn(r),o=WDn(r,n),l=a.filter(C=>sX.pattern.isStaticPattern(C,t)),A=a.filter(C=>sX.pattern.isDynamicPattern(C,t)),f=Jcr(l,o,!1),I=Jcr(A,o,!0);return f.concat(I)}AG.generate=eGo;function VDn(e,t){let r=e;return t.braceExpansion&&(r=sX.pattern.expandPatternsWithBraceExpansion(r)),t.baseNameMatch&&(r=r.map(n=>n.includes("/")?n:`**/${n}`)),r.map(n=>sX.pattern.removeDuplicateSlashes(n))}function Jcr(e,t,r){let n=[],a=sX.pattern.getPatternsOutsideCurrentDirectory(e),o=sX.pattern.getPatternsInsideCurrentDirectory(e),l=Ucr(a),A=Ucr(o);return n.push(...Kcr(l,t,r)),"."in A?n.push(jcr(".",o,t,r)):n.push(...Kcr(A,t,r)),n}AG.convertPatternsToTasks=Jcr;function PDn(e){return sX.pattern.getPositivePatterns(e)}AG.getPositivePatterns=PDn;function WDn(e,t){return sX.pattern.getNegativePatterns(e).concat(t).map(sX.pattern.convertToPositivePattern)}AG.getNegativePatternsAsPositive=WDn;function Ucr(e){let t={};return e.reduce((r,n)=>{let a=sX.pattern.getBaseDirectory(n);return a in r?r[a].push(n):r[a]=[n],r},t)}AG.groupPatternsByBaseDirectory=Ucr;function Kcr(e,t,r){return Object.keys(e).map(n=>jcr(n,e[n],t,r))}AG.convertPatternGroupsToTasks=Kcr;function jcr(e,t,r,n){return{dynamic:n,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(sX.pattern.convertToNegativePattern))}}AG.convertPatternGroupToTask=jcr});var HDn=H(Tut=>{"use strict";Object.defineProperty(Tut,"__esModule",{value:!0});Tut.read=void 0;function tGo(e,t,r){t.fs.lstat(e,(n,a)=>{if(n!==null){MDn(r,n);return}if(!a.isSymbolicLink()||!t.followSymbolicLink){zcr(r,a);return}t.fs.stat(e,(o,l)=>{if(o!==null){if(t.throwErrorOnBrokenSymbolicLink){MDn(r,o);return}zcr(r,a);return}t.markSymbolicLink&&(l.isSymbolicLink=()=>!0),zcr(r,l)})})}Tut.read=tGo;function MDn(e,t){e(t)}function zcr(e,t){e(null,t)}});var YDn=H(Rut=>{"use strict";Object.defineProperty(Rut,"__esModule",{value:!0});Rut.read=void 0;function rGo(e,t){let r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{let n=t.fs.statSync(e);return t.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(n){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw n}}Rut.read=rGo});var QDn=H(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});goe.createFileSystemAdapter=goe.FILE_SYSTEM_ADAPTER=void 0;var Nut=wt("fs");goe.FILE_SYSTEM_ADAPTER={lstat:Nut.lstat,stat:Nut.stat,lstatSync:Nut.lstatSync,statSync:Nut.statSync};function nGo(e){return e===void 0?goe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},goe.FILE_SYSTEM_ADAPTER),e)}goe.createFileSystemAdapter=nGo});var XDn=H($cr=>{"use strict";Object.defineProperty($cr,"__esModule",{value:!0});var iGo=QDn(),qcr=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=iGo.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,r){return t??r}};$cr.default=qcr});var Jfe=H(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});Aoe.statSync=Aoe.stat=Aoe.Settings=void 0;var JDn=HDn(),sGo=YDn(),elr=XDn();Aoe.Settings=elr.default;function oGo(e,t,r){if(typeof t=="function"){JDn.read(e,tlr(),t);return}JDn.read(e,tlr(t),r)}Aoe.stat=oGo;function aGo(e,t){let r=tlr(t);return sGo.read(e,r)}Aoe.statSync=aGo;function tlr(e={}){return e instanceof elr.default?e:new elr.default(e)}});var jDn=H((MKl,KDn)=>{var UDn;KDn.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):e=>(UDn||(UDn=Promise.resolve())).then(e).catch(t=>setTimeout(()=>{throw t},0))});var qDn=H((HKl,zDn)=>{zDn.exports=lGo;var cGo=jDn();function lGo(e,t){let r,n,a,o=!0;Array.isArray(e)?(r=[],n=e.length):(a=Object.keys(e),r={},n=a.length);function l(f){function I(){t&&t(f,r),t=null}o?cGo(I):I()}function A(f,I,C){r[f]=C,(--n===0||I)&&l(I)}n?a?a.forEach(function(f){e[f](function(I,C){A(f,I,C)})}):e.forEach(function(f,I){f(function(C,b){A(I,C,b)})}):l(null),o=!1}});var rlr=H(kut=>{"use strict";Object.defineProperty(kut,"__esModule",{value:!0});kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Dut=process.versions.node.split(".");if(Dut[0]===void 0||Dut[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var $Dn=Number.parseInt(Dut[0],10),uGo=Number.parseInt(Dut[1],10),ekn=10,gGo=10,AGo=$Dn>ekn,dGo=$Dn===ekn&&uGo>=gGo;kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=AGo||dGo});var tkn=H(xut=>{"use strict";Object.defineProperty(xut,"__esModule",{value:!0});xut.createDirentFromStats=void 0;var nlr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function pGo(e,t){return new nlr(e,t)}xut.createDirentFromStats=pGo});var ilr=H(Gut=>{"use strict";Object.defineProperty(Gut,"__esModule",{value:!0});Gut.fs=void 0;var fGo=tkn();Gut.fs=fGo});var slr=H(Fut=>{"use strict";Object.defineProperty(Fut,"__esModule",{value:!0});Fut.joinPathSegments=void 0;function IGo(e,t,r){return e.endsWith(r)?e+t:e+r+t}Fut.joinPathSegments=IGo});var akn=H(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});doe.readdir=doe.readdirWithFileTypes=doe.read=void 0;var hGo=Jfe(),rkn=qDn(),mGo=rlr(),nkn=ilr(),ikn=slr();function CGo(e,t,r){if(!t.stats&&mGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES){skn(e,t,r);return}okn(e,t,r)}doe.read=CGo;function skn(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(A=>({dirent:A,name:A.name,path:ikn.joinPathSegments(e,A.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks){olr(r,o);return}let l=o.map(A=>_Go(A,t));rkn(l,(A,f)=>{if(A!==null){Zut(r,A);return}olr(r,f)})})}doe.readdirWithFileTypes=skn;function _Go(e,t){return r=>{if(!e.dirent.isSymbolicLink()){r(null,e);return}t.fs.stat(e.path,(n,a)=>{if(n!==null){if(t.throwErrorOnBrokenSymbolicLink){r(n);return}r(null,e);return}e.dirent=nkn.fs.createDirentFromStats(e.name,a),r(null,e)})}}function okn(e,t,r){t.fs.readdir(e,(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(l=>{let A=ikn.joinPathSegments(e,l,t.pathSegmentSeparator);return f=>{hGo.stat(A,t.fsStatSettings,(I,C)=>{if(I!==null){f(I);return}let b={name:l,path:A,dirent:nkn.fs.createDirentFromStats(l,C)};t.stats&&(b.stats=C),f(null,b)})}});rkn(o,(l,A)=>{if(l!==null){Zut(r,l);return}olr(r,A)})})}doe.readdir=okn;function Zut(e,t){e(t)}function olr(e,t){e(null,t)}});var Akn=H(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});poe.readdir=poe.readdirWithFileTypes=poe.read=void 0;var yGo=Jfe(),bGo=rlr(),ckn=ilr(),lkn=slr();function EGo(e,t){return!t.stats&&bGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES?ukn(e,t):gkn(e,t)}poe.read=EGo;function ukn(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(n=>{let a={dirent:n,name:n.name,path:lkn.joinPathSegments(e,n.name,t.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{let o=t.fs.statSync(a.path);a.dirent=ckn.fs.createDirentFromStats(a.name,o)}catch(o){if(t.throwErrorOnBrokenSymbolicLink)throw o}return a})}poe.readdirWithFileTypes=ukn;function gkn(e,t){return t.fs.readdirSync(e).map(n=>{let a=lkn.joinPathSegments(e,n,t.pathSegmentSeparator),o=yGo.statSync(a,t.fsStatSettings),l={name:n,path:a,dirent:ckn.fs.createDirentFromStats(n,o)};return t.stats&&(l.stats=o),l})}poe.readdir=gkn});var dkn=H(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});foe.createFileSystemAdapter=foe.FILE_SYSTEM_ADAPTER=void 0;var eve=wt("fs");foe.FILE_SYSTEM_ADAPTER={lstat:eve.lstat,stat:eve.stat,lstatSync:eve.lstatSync,statSync:eve.statSync,readdir:eve.readdir,readdirSync:eve.readdirSync};function SGo(e){return e===void 0?foe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},foe.FILE_SYSTEM_ADAPTER),e)}foe.createFileSystemAdapter=SGo});var pkn=H(clr=>{"use strict";Object.defineProperty(clr,"__esModule",{value:!0});var vGo=wt("path"),BGo=Jfe(),wGo=dkn(),alr=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=wGo.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,vGo.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BGo.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};clr.default=alr});var Lut=H(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});Ioe.Settings=Ioe.scandirSync=Ioe.scandir=void 0;var fkn=akn(),TGo=Akn(),llr=pkn();Ioe.Settings=llr.default;function RGo(e,t,r){if(typeof t=="function"){fkn.read(e,ulr(),t);return}fkn.read(e,ulr(t),r)}Ioe.scandir=RGo;function NGo(e,t){let r=ulr(t);return TGo.read(e,r)}Ioe.scandirSync=NGo;function ulr(e={}){return e instanceof llr.default?e:new llr.default(e)}});var hkn=H(($Kl,Ikn)=>{"use strict";function DGo(e){var t=new e,r=t;function n(){var o=t;return o.next?t=o.next:(t=new e,r=t),o.next=null,o}function a(o){r.next=o,r=o}return{get:n,release:a}}Ikn.exports=DGo});var Ckn=H((e8l,glr)=>{"use strict";var kGo=hkn();function mkn(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=kGo(xGo),a=null,o=null,l=0,A=null,f={push:F,drain:nM,saturated:nM,pause:C,paused:!1,get concurrency(){return r},set concurrency(fe){if(!(fe>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=fe,!f.paused)for(;a&&l=r||f.paused?o?(o.next=de,o=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function Q(fe,ue){var de=n.get();de.context=e,de.release=X,de.value=fe,de.callback=ue||nM,de.errorHandler=A,l>=r||f.paused?a?(de.next=a,a=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function X(fe){fe&&n.release(fe);var ue=a;ue&&l<=r?f.paused?l--:(o===a&&(o=null),a=ue.next,ue.next=null,t.call(e,ue.value,ue.worked),o===null&&f.empty()):--l===0&&f.drain()}function ae(){a=null,o=null,f.drain=nM}function ne(){a=null,o=null,f.drain(),f.drain=nM}function ce(fe){A=fe}}function nM(){}function xGo(){this.value=null,this.callback=nM,this.next=null,this.release=nM,this.context=null,this.errorHandler=null;var e=this;this.worked=function(r,n){var a=e.callback,o=e.errorHandler,l=e.value;e.value=null,e.callback=nM,e.errorHandler&&o(r,l),a.call(e.context,r,n),e.release(e)}}function GGo(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(C,b){t.call(this,C).then(function(E){b(null,E)},b)}var a=mkn(e,n,r),o=a.push,l=a.unshift;return a.push=A,a.unshift=f,a.drained=I,a;function A(C){var b=new Promise(function(E,N){o(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function f(C){var b=new Promise(function(E,N){l(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function I(){if(a.idle())return new Promise(function(E){E()});var C=a.drain,b=new Promise(function(E){a.drain=function(){C(),E()}});return b}}glr.exports=mkn;glr.exports.promise=GGo});var Vut=H(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0});QK.joinPathSegments=QK.replacePathSegmentSeparator=QK.isAppliedFilter=QK.isFatalError=void 0;function FGo(e,t){return e.errorFilter===null?!0:!e.errorFilter(t)}QK.isFatalError=FGo;function ZGo(e,t){return e===null||e(t)}QK.isAppliedFilter=ZGo;function LGo(e,t){return e.split(/[/\\]/).join(t)}QK.replacePathSegmentSeparator=LGo;function VGo(e,t,r){return e===""?t:e.endsWith(r)?e+t:e+r+t}QK.joinPathSegments=VGo});var plr=H(dlr=>{"use strict";Object.defineProperty(dlr,"__esModule",{value:!0});var PGo=Vut(),Alr=class{constructor(t,r){this._root=t,this._settings=r,this._root=PGo.replacePathSegmentSeparator(t,r.pathSegmentSeparator)}};dlr.default=Alr});var hlr=H(Ilr=>{"use strict";Object.defineProperty(Ilr,"__esModule",{value:!0});var WGo=wt("events"),OGo=Lut(),MGo=Ckn(),Put=Vut(),HGo=plr(),flr=class extends HGo.default{constructor(t,r){super(t,r),this._settings=r,this._scandir=OGo.scandir,this._emitter=new WGo.EventEmitter,this._queue=MGo(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,r){let n={directory:t,base:r};this._queue.push(n,a=>{a!==null&&this._handleError(a)})}_worker(t,r){this._scandir(t.directory,this._settings.fsScandirSettings,(n,a)=>{if(n!==null){r(n,void 0);return}for(let o of a)this._handleEntry(o,t.base);r(null,void 0)})}_handleError(t){this._isDestroyed||!Put.isFatalError(this._settings,t)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,r){if(this._isDestroyed||this._isFatalError)return;let n=t.path;r!==void 0&&(t.path=Put.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Put.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&Put.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_emitEntry(t){this._emitter.emit("entry",t)}};Ilr.default=flr});var _kn=H(Clr=>{"use strict";Object.defineProperty(Clr,"__esModule",{value:!0});var YGo=hlr(),mlr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new YGo.default(this._root,this._settings),this._storage=[]}read(t){this._reader.onError(r=>{QGo(t,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{XGo(t,this._storage)}),this._reader.read()}};Clr.default=mlr;function QGo(e,t){e(t)}function XGo(e,t){e(null,t)}});var ykn=H(ylr=>{"use strict";Object.defineProperty(ylr,"__esModule",{value:!0});var JGo=wt("stream"),UGo=hlr(),_lr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new UGo.default(this._root,this._settings),this._stream=new JGo.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};ylr.default=_lr});var bkn=H(Elr=>{"use strict";Object.defineProperty(Elr,"__esModule",{value:!0});var KGo=Lut(),Wut=Vut(),jGo=plr(),blr=class extends jGo.default{constructor(){super(...arguments),this._scandir=KGo.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(t,r){this._queue.add({directory:t,base:r})}_handleQueue(){for(let t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,r){try{let n=this._scandir(t,this._settings.fsScandirSettings);for(let a of n)this._handleEntry(a,r)}catch(n){this._handleError(n)}}_handleError(t){if(Wut.isFatalError(this._settings,t))throw t}_handleEntry(t,r){let n=t.path;r!==void 0&&(t.path=Wut.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Wut.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&Wut.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_pushToStorage(t){this._storage.push(t)}};Elr.default=blr});var Ekn=H(vlr=>{"use strict";Object.defineProperty(vlr,"__esModule",{value:!0});var zGo=bkn(),Slr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new zGo.default(this._root,this._settings)}read(){return this._reader.read()}};vlr.default=Slr});var Skn=H(wlr=>{"use strict";Object.defineProperty(wlr,"__esModule",{value:!0});var qGo=wt("path"),$Go=Lut(),Blr=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,qGo.sep),this.fsScandirSettings=new $Go.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};wlr.default=Blr});var Mut=H(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0});XK.Settings=XK.walkStream=XK.walkSync=XK.walk=void 0;var vkn=_kn(),eFo=ykn(),tFo=Ekn(),Tlr=Skn();XK.Settings=Tlr.default;function rFo(e,t,r){if(typeof t=="function"){new vkn.default(e,Out()).read(t);return}new vkn.default(e,Out(t)).read(r)}XK.walk=rFo;function nFo(e,t){let r=Out(t);return new tFo.default(e,r).read()}XK.walkSync=nFo;function iFo(e,t){let r=Out(t);return new eFo.default(e,r).read()}XK.walkStream=iFo;function Out(e={}){return e instanceof Tlr.default?e:new Tlr.default(e)}});var Hut=H(Nlr=>{"use strict";Object.defineProperty(Nlr,"__esModule",{value:!0});var sFo=wt("path"),oFo=Jfe(),Bkn=r$(),Rlr=class{constructor(t){this._settings=t,this._fsStatSettings=new oFo.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return sFo.resolve(this._settings.cwd,t)}_makeEntry(t,r){let n={name:r,path:r,dirent:Bkn.fs.createDirentFromStats(r,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!Bkn.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}};Nlr.default=Rlr});var xlr=H(klr=>{"use strict";Object.defineProperty(klr,"__esModule",{value:!0});var aFo=wt("stream"),cFo=Jfe(),lFo=Mut(),uFo=Hut(),Dlr=class extends uFo.default{constructor(){super(...arguments),this._walkStream=lFo.walkStream,this._stat=cFo.stat}dynamic(t,r){return this._walkStream(t,r)}static(t,r){let n=t.map(this._getFullEntryPath,this),a=new aFo.PassThrough({objectMode:!0});a._write=(o,l,A)=>this._getEntry(n[o],t[o],r).then(f=>{f!==null&&r.entryFilter(f)&&a.push(f),o===n.length-1&&a.end(),A()}).catch(A);for(let o=0;othis._makeEntry(a,r)).catch(a=>{if(n.errorFilter(a))return null;throw a})}_getStat(t){return new Promise((r,n)=>{this._stat(t,this._fsStatSettings,(a,o)=>a===null?r(o):n(a))})}};klr.default=Dlr});var wkn=H(Flr=>{"use strict";Object.defineProperty(Flr,"__esModule",{value:!0});var gFo=Mut(),AFo=Hut(),dFo=xlr(),Glr=class extends AFo.default{constructor(){super(...arguments),this._walkAsync=gFo.walk,this._readerStream=new dFo.default(this._settings)}dynamic(t,r){return new Promise((n,a)=>{this._walkAsync(t,r,(o,l)=>{o===null?n(l):a(o)})})}async static(t,r){let n=[],a=this._readerStream.static(t,r);return new Promise((o,l)=>{a.once("error",l),a.on("data",A=>n.push(A)),a.once("end",()=>o(n))})}};Flr.default=Glr});var Tkn=H(Llr=>{"use strict";Object.defineProperty(Llr,"__esModule",{value:!0});var K3e=r$(),Zlr=class{constructor(t,r,n){this._patterns=t,this._settings=r,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){for(let t of this._patterns){let r=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(r);this._storage.push({complete:n.length<=1,pattern:t,segments:r,sections:n})}}_getPatternSegments(t){return K3e.pattern.getPatternParts(t,this._micromatchOptions).map(n=>K3e.pattern.isDynamicPattern(n,this._settings)?{dynamic:!0,pattern:n,patternRe:K3e.pattern.makeRe(n,this._micromatchOptions)}:{dynamic:!1,pattern:n})}_splitSegmentsIntoSections(t){return K3e.array.splitWhen(t,r=>r.dynamic&&K3e.pattern.hasGlobStar(r.pattern))}};Llr.default=Zlr});var Rkn=H(Plr=>{"use strict";Object.defineProperty(Plr,"__esModule",{value:!0});var pFo=Tkn(),Vlr=class extends pFo.default{match(t){let r=t.split("/"),n=r.length,a=this._storage.filter(o=>!o.complete||o.segments.length>n);for(let o of a){let l=o.sections[0];if(!o.complete&&n>l.length||r.every((f,I)=>{let C=o.segments[I];return!!(C.dynamic&&C.patternRe.test(f)||!C.dynamic&&C.pattern===f)}))return!0}return!1}};Plr.default=Vlr});var Nkn=H(Olr=>{"use strict";Object.defineProperty(Olr,"__esModule",{value:!0});var Yut=r$(),fFo=Rkn(),Wlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r}getFilter(t,r,n){let a=this._getMatcher(r),o=this._getNegativePatternsRe(n);return l=>this._filter(t,l,a,o)}_getMatcher(t){return new fFo.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){let r=t.filter(Yut.pattern.isAffectDepthOfReadingPattern);return Yut.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(t,r,n,a){if(this._isSkippedByDeep(t,r.path)||this._isSkippedSymbolicLink(r))return!1;let o=Yut.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,n)?!1:this._isSkippedByNegativePatterns(o,a)}_isSkippedByDeep(t,r){return this._settings.deep===1/0?!1:this._getEntryLevel(t,r)>=this._settings.deep}_getEntryLevel(t,r){let n=r.split("/").length;if(t==="")return n;let a=t.split("/").length;return n-a}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(t,r){return!this._settings.baseNameMatch&&!r.match(t)}_isSkippedByNegativePatterns(t,r){return!Yut.pattern.matchAny(t,r)}};Olr.default=Wlr});var Dkn=H(Hlr=>{"use strict";Object.defineProperty(Hlr,"__esModule",{value:!0});var Ufe=r$(),Mlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r,this.index=new Map}getFilter(t,r){let n=Ufe.pattern.convertPatternsToRe(t,this._micromatchOptions),a=Ufe.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return o=>this._filter(o,n,a)}_filter(t,r,n){let a=Ufe.path.removeLeadingDotSegment(t.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(t)||this._onlyDirectoryFilter(t)||this._isSkippedByAbsoluteNegativePatterns(a,n))return!1;let o=t.dirent.isDirectory(),l=this._isMatchToPatterns(a,r,o)&&!this._isMatchToPatterns(a,n,o);return this._settings.unique&&l&&this._createIndexRecord(a),l}_isDuplicateEntry(t){return this.index.has(t)}_createIndexRecord(t){this.index.set(t,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,r){if(!this._settings.absolute)return!1;let n=Ufe.path.makeAbsolute(this._settings.cwd,t);return Ufe.pattern.matchAny(n,r)}_isMatchToPatterns(t,r,n){let a=Ufe.pattern.matchAny(t,r);return!a&&n?Ufe.pattern.matchAny(t+"/",r):a}};Hlr.default=Mlr});var kkn=H(Qlr=>{"use strict";Object.defineProperty(Qlr,"__esModule",{value:!0});var IFo=r$(),Ylr=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return IFo.errno.isEnoentCodeError(t)||this._settings.suppressErrors}};Qlr.default=Ylr});var Gkn=H(Jlr=>{"use strict";Object.defineProperty(Jlr,"__esModule",{value:!0});var xkn=r$(),Xlr=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let r=t.path;return this._settings.absolute&&(r=xkn.path.makeAbsolute(this._settings.cwd,r),r=xkn.path.unixify(r)),this._settings.markDirectories&&t.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:r}):r}};Jlr.default=Xlr});var Qut=H(Klr=>{"use strict";Object.defineProperty(Klr,"__esModule",{value:!0});var hFo=wt("path"),mFo=Nkn(),CFo=Dkn(),_Fo=kkn(),yFo=Gkn(),Ulr=class{constructor(t){this._settings=t,this.errorFilter=new _Fo.default(this._settings),this.entryFilter=new CFo.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new mFo.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new yFo.default(this._settings)}_getRootDirectory(t){return hFo.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){let r=t.base==="."?"":t.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Klr.default=Ulr});var Fkn=H(zlr=>{"use strict";Object.defineProperty(zlr,"__esModule",{value:!0});var bFo=wkn(),EFo=Qut(),jlr=class extends EFo.default{constructor(){super(...arguments),this._reader=new bFo.default(this._settings)}async read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return(await this.api(r,t,n)).map(o=>n.transform(o))}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};zlr.default=jlr});var Zkn=H($lr=>{"use strict";Object.defineProperty($lr,"__esModule",{value:!0});var SFo=wt("stream"),vFo=xlr(),BFo=Qut(),qlr=class extends BFo.default{constructor(){super(...arguments),this._reader=new vFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),a=this.api(r,t,n),o=new SFo.Readable({objectMode:!0,read:()=>{}});return a.once("error",l=>o.emit("error",l)).on("data",l=>o.emit("data",n.transform(l))).once("end",()=>o.emit("end")),o.once("close",()=>a.destroy()),o}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};$lr.default=qlr});var Lkn=H(tur=>{"use strict";Object.defineProperty(tur,"__esModule",{value:!0});var wFo=Jfe(),TFo=Mut(),RFo=Hut(),eur=class extends RFo.default{constructor(){super(...arguments),this._walkSync=TFo.walkSync,this._statSync=wFo.statSync}dynamic(t,r){return this._walkSync(t,r)}static(t,r){let n=[];for(let a of t){let o=this._getFullEntryPath(a),l=this._getEntry(o,a,r);l===null||!r.entryFilter(l)||n.push(l)}return n}_getEntry(t,r,n){try{let a=this._getStat(t);return this._makeEntry(a,r)}catch(a){if(n.errorFilter(a))return null;throw a}}_getStat(t){return this._statSync(t,this._fsStatSettings)}};tur.default=eur});var Vkn=H(nur=>{"use strict";Object.defineProperty(nur,"__esModule",{value:!0});var NFo=Lkn(),DFo=Qut(),rur=class extends DFo.default{constructor(){super(...arguments),this._reader=new NFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(r,t,n).map(n.transform)}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};nur.default=rur});var Pkn=H(rve=>{"use strict";Object.defineProperty(rve,"__esModule",{value:!0});rve.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var tve=wt("fs"),kFo=wt("os"),xFo=Math.max(kFo.cpus().length,1);rve.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:tve.lstat,lstatSync:tve.lstatSync,stat:tve.stat,statSync:tve.statSync,readdir:tve.readdir,readdirSync:tve.readdirSync};var iur=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,xFo),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(t,r){return t===void 0?r:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},rve.DEFAULT_FILE_SYSTEM_ADAPTER),t)}};rve.default=iur});var nve=H((v8l,Okn)=>{"use strict";var Wkn=ODn(),GFo=Fkn(),FFo=Zkn(),ZFo=Vkn(),sur=Pkn(),iM=r$();async function our(e,t){oX(e);let r=aur(e,GFo.default,t),n=await Promise.all(r);return iM.array.flatten(n)}(function(e){e.glob=e,e.globSync=t,e.globStream=r,e.async=e;function t(I,C){oX(I);let b=aur(I,ZFo.default,C);return iM.array.flatten(b)}e.sync=t;function r(I,C){oX(I);let b=aur(I,FFo.default,C);return iM.stream.merge(b)}e.stream=r;function n(I,C){oX(I);let b=[].concat(I),E=new sur.default(C);return Wkn.generate(b,E)}e.generateTasks=n;function a(I,C){oX(I);let b=new sur.default(C);return iM.pattern.isDynamicPattern(I,b)}e.isDynamicPattern=a;function o(I){return oX(I),iM.path.escape(I)}e.escapePath=o;function l(I){return oX(I),iM.path.convertPathToPattern(I)}e.convertPathToPattern=l;let A;(function(I){function C(E){return oX(E),iM.path.escapePosixPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertPosixPathToPattern(E)}I.convertPathToPattern=b})(A=e.posix||(e.posix={}));let f;(function(I){function C(E){return oX(E),iM.path.escapeWindowsPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertWindowsPathToPattern(E)}I.convertPathToPattern=b})(f=e.win32||(e.win32={}))})(our||(our={}));function aur(e,t,r){let n=[].concat(e),a=new sur.default(r),o=Wkn.generate(n,a),l=new t(a);return o.map(l.read,l)}function oX(e){if(![].concat(e).every(n=>iM.string.isString(n)&&!iM.string.isEmpty(n)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Okn.exports=our});var moe=H(j3e=>{"use strict";Object.defineProperty(j3e,"__esModule",{value:!0});j3e.makeHash=VFo;j3e.checksumFile=PFo;j3e.checksumPattern=WFo;var LFo=(Pa(),vi(Va)),hoe=no(),cur=wt("crypto"),Mkn=LFo.__importDefault(nve());function VFo(...e){let t=(0,cur.createHash)("sha512"),r="";for(let n of e)typeof n=="string"?r+=n:n&&(r&&(t.update(r),r=""),t.update(n));return r&&t.update(r),t.digest("hex")}async function PFo(e,{baseFs:t,algorithm:r}={baseFs:hoe.xfs,algorithm:"sha512"}){let n=await t.openPromise(e,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=(0,cur.createHash)(r),A=0;for(;(A=await t.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await t.closePromise(n)}}async function WFo(e,{cwd:t}){let n=(await(0,Mkn.default)(e,{cwd:hoe.npath.fromPortablePath(t),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,Mkn.default)([e,...n],{cwd:hoe.npath.fromPortablePath(t),onlyFiles:!1});a.sort();let o=await Promise.all(a.map(async A=>{let f=[Buffer.from(A)],I=hoe.ppath.join(t,hoe.npath.toPortablePath(A)),C=await hoe.xfs.lstatPromise(I);return C.isSymbolicLink()?f.push(Buffer.from(await hoe.xfs.readlinkPromise(I))):C.isFile()&&f.push(await hoe.xfs.readFilePromise(I)),f.join("\0")})),l=(0,cur.createHash)("sha512");for(let A of o)l.update(A);return l.digest("hex")}});var uG=H(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.makeIdent=sve;Xd.makeDescriptor=ave;Xd.makeLocator=cve;Xd.convertToIdent=QFo;Xd.convertDescriptorToLocator=XFo;Xd.convertLocatorToDescriptor=JFo;Xd.convertPackageToLocator=UFo;Xd.renamePackage=Aur;Xd.copyPackage=KFo;Xd.virtualizeDescriptor=jFo;Xd.virtualizePackage=zFo;Xd.isVirtualDescriptor=Jut;Xd.isVirtualLocator=$3e;Xd.devirtualizeDescriptor=Xkn;Xd.devirtualizeLocator=qFo;Xd.ensureDevirtualizedDescriptor=$Fo;Xd.ensureDevirtualizedLocator=eZo;Xd.bindDescriptor=tZo;Xd.bindLocator=rZo;Xd.areIdentsEqual=Jkn;Xd.areDescriptorsEqual=Ukn;Xd.areLocatorsEqual=nZo;Xd.areVirtualPackagesEquivalent=iZo;Xd.parseIdent=sZo;Xd.tryParseIdent=Kkn;Xd.parseDescriptor=aZo;Xd.tryParseDescriptor=jkn;Xd.parseLocator=zkn;Xd.tryParseLocator=qkn;Xd.parseRange=e5e;Xd.tryParseRange=dZo;Xd.parseFileStyleRange=pZo;Xd.makeRange=$kn;Xd.convertToManifestRange=IZo;Xd.stringifyIdent=Kut;Xd.wrapIdentIntoScope=hZo;Xd.unwrapIdentFromScope=mZo;Xd.stringifyDescriptor=CZo;Xd.stringifyLocator=_Zo;Xd.slugifyIdent=uur;Xd.slugifyLocator=bZo;Xd.prettyIdent=jut;Xd.prettyRange=exn;Xd.prettyDescriptor=SZo;Xd.prettyReference=dur;Xd.prettyLocator=Xut;Xd.prettyLocatorNoColors=vZo;Xd.sortDescriptors=BZo;Xd.prettyWorkspace=wZo;Xd.prettyResolution=TZo;Xd.prettyDependent=RZo;Xd.getIdentVendorPath=NZo;Xd.isPackageInRange=DZo;Xd.isPackageCompatible=kZo;Xd.allPeerRequests=xZo;var ove=(Pa(),vi(Va)),q3e=ove.__importDefault(wt("querystring")),Ykn=ove.__importDefault(UC()),OFo=dBn(),vZ=ove.__importStar(rM()),gur=ove.__importStar(moe()),MFo=ove.__importStar(xW()),ive=ove.__importStar(uG()),z3e="virtual:",HFo=5,Qkn=/(os|cpu|libc)=([a-z0-9_-]+)/,YFo=(0,OFo.makeParser)(Qkn);function sve(e,t){if(e?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:gur.makeHash(e,t),scope:e,name:t}}function ave(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:gur.makeHash(e.identHash,t),range:t}}function cve(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:gur.makeHash(e.identHash,t),reference:t}}function QFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function XFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function JFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function UFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function Aur(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,conditions:e.conditions,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function KFo(e){return Aur(e,e)}function jFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return ave(e,`virtual:${t}#${e.range}`)}function zFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return Aur(e,cve(e,`virtual:${t}#${e.reference}`))}function Jut(e){return e.range.startsWith(z3e)}function $3e(e){return e.reference.startsWith(z3e)}var Uut=/^[^#]*#/;function Xkn(e){if(!Jut(e))throw new Error("Not a virtual descriptor");return ave(e,e.range.replace(Uut,""))}function qFo(e){if(!$3e(e))throw new Error("Not a virtual descriptor");return cve(e,e.reference.replace(Uut,""))}function $Fo(e){return Jut(e)?ave(e,e.range.replace(Uut,"")):e}function eZo(e){return $3e(e)?cve(e,e.reference.replace(Uut,"")):e}function tZo(e,t){return e.range.includes("::")?e:ave(e,`${e.range}::${q3e.default.stringify(t)}`)}function rZo(e,t){return e.reference.includes("::")?e:cve(e,`${e.reference}::${q3e.default.stringify(t)}`)}function Jkn(e,t){return e.identHash===t.identHash}function Ukn(e,t){return e.descriptorHash===t.descriptorHash}function nZo(e,t){return e.locatorHash===t.locatorHash}function iZo(e,t){if(!$3e(e))throw new Error("Invalid package type");if(!$3e(t))throw new Error("Invalid package type");if(!Jkn(e,t)||e.dependencies.size!==t.dependencies.size)return!1;for(let r of e.dependencies.values()){let n=t.dependencies.get(r.identHash);if(!n||!Ukn(r,n))return!1}return!0}function sZo(e){let t=Kkn(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}var oZo=/^(?:@([^/]+?)\/)?([^@/]+)$/;function Kkn(e){let t=e.match(oZo);if(!t)return null;let[,r,n]=t;return sve(typeof r<"u"?r:null,n)}function aZo(e,t=!1){let r=jkn(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}var cZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,lZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/,lur="unknown";function jkn(e,t=!1){let r=t?e.match(cZo):e.match(lZo);if(!r)return null;let[,n,a,o]=r;if(o===lur)throw new Error(`Invalid range (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:lur;return ave(sve(l,a),A)}function zkn(e,t=!1){let r=qkn(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}var uZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,gZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;function qkn(e,t=!1){let r=t?e.match(uZo):e.match(gZo);if(!r)return null;let[,n,a,o]=r;if(o==="unknown")throw new Error(`Invalid reference (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:"unknown";return cve(sve(l,a),A)}var AZo=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;function e5e(e,t){let r=e.match(AZo);if(r===null)throw new Error(`Invalid range (${e})`);let n=typeof r[1]<"u"?r[1]:null;if(typeof t?.requireProtocol=="string"&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if(t?.requireProtocol&&n===null)throw new Error(`Missing protocol (${n})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(t?.requireSource&&a===null)throw new Error(`Missing source (${e})`);let o=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),l=t?.parseSelector?q3e.default.parse(o):o,A=typeof r[4]<"u"?q3e.default.parse(r[4]):null;return{protocol:n,source:a,selector:l,params:A}}function dZo(e,t){try{return e5e(e,t)}catch{return null}}function pZo(e,{protocol:t}){let{selector:r,params:n}=e5e(e,{requireProtocol:t,requireBindings:!0});if(typeof n.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${e}`);return{parentLocator:zkn(n.locator,!0),path:r}}function Hkn(e){return e=e.replaceAll("%","%25"),e=e.replaceAll(":","%3A"),e=e.replaceAll("#","%23"),e}function fZo(e){return e===null?!1:Object.entries(e).length>0}function $kn({protocol:e,source:t,selector:r,params:n}){let a="";return e!==null&&(a+=`${e}`),t!==null&&(a+=`${Hkn(t)}#`),a+=Hkn(r),fZo(n)&&(a+=`::${q3e.default.stringify(n)}`),a}function IZo(e){let{params:t,protocol:r,source:n,selector:a}=e5e(e);for(let o in t)o.startsWith("__")&&delete t[o];return $kn({protocol:r,source:n,params:t,selector:a})}function Kut(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function hZo(e,t){return e.scope?ive.makeIdent(t,`${e.scope}__${e.name}`):ive.makeIdent(t,e.name)}function mZo(e,t){if(e.scope!==t)return e;let r=e.name.indexOf("__");if(r===-1)return sve(null,e.name);let n=e.name.slice(0,r),a=e.name.slice(r+2);return sve(n,a)}function CZo(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function _Zo(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function uur(e){return e.scope!==null?`@${e.scope}-${e.name}`:e.name}var yZo=/:$/;function bZo(e){let{protocol:t,selector:r}=e5e(e.reference),n=t!==null?t.replace(yZo,""):"exotic",a=Ykn.default.valid(r),o=a!==null?`${n}-${a}`:`${n}`,l=10;return e.scope?`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`:`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`}function jut(e,t){return t.scope?`${vZ.pretty(e,`@${t.scope}/`,vZ.Type.SCOPE)}${vZ.pretty(e,t.name,vZ.Type.NAME)}`:`${vZ.pretty(e,t.name,vZ.Type.NAME)}`}var EZo=/\?.*/;function zut(e){if(e.startsWith(z3e)){let t=zut(e.substring(e.indexOf("#")+1)),r=e.substring(z3e.length,z3e.length+HFo);return`${t} [${r}]`}else return e.replace(EZo,"?[...]")}function exn(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.RANGE)}`}function SZo(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.RANGE)}${exn(e,t.range)}`}function dur(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.REFERENCE)}`}function Xut(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.REFERENCE)}${dur(e,t.reference)}`}function vZo(e){return`${Kut(e)}@${zut(e.reference)}`}function BZo(e){return MFo.sortMap(e,[t=>Kut(t),t=>t.range])}function wZo(e,t){return jut(e,t.anchoredLocator)}function TZo(e,t,r){let n=Jut(t)?Xkn(t):t;return r===null?`${ive.prettyDescriptor(e,n)} \u2192 ${vZ.mark(e).Cross}`:n.identHash===r.identHash?`${ive.prettyDescriptor(e,n)} \u2192 ${dur(e,r.reference)}`:`${ive.prettyDescriptor(e,n)} \u2192 ${Xut(e,r)}`}function RZo(e,t,r){return r===null?`${Xut(e,t)}`:`${Xut(e,t)} (via ${ive.prettyRange(e,r.range)})`}function NZo(e){return`node_modules/${Kut(e)}`}function DZo(e,t){return t===lur||!e.version?!0:Ykn.default.satisfies(e.version??"",t)}function kZo(e,t){return e.conditions?YFo(e.conditions,r=>{let[,n,a]=r.match(Qkn),o=t[n];return o?o.includes(a):!0}):!0}function xZo(e){let t=new Set;if("children"in e)t.add(e);else for(let r of e.requests.values())t.add(r);for(let r of t)for(let n of r.children.values())t.add(n);return t}});var txn=H(qut=>{"use strict";Object.defineProperty(qut,"__esModule",{value:!0});qut.CorePlugin=void 0;var GZo=(Pa(),vi(Va)),FZo=M9(),Coe=GZo.__importStar(uG());qut.CorePlugin={hooks:{reduceDependency:(e,t,r,n,{resolver:a,resolveOptions:o})=>{for(let{pattern:l,reference:A}of t.topLevelWorkspace.manifest.resolutions){if(l.from&&(l.from.fullName!==Coe.stringifyIdent(r)||t.configuration.normalizeLocator(Coe.makeLocator(Coe.parseIdent(l.from.fullName),l.from.description??r.reference)).locatorHash!==r.locatorHash)||l.descriptor.fullName!==Coe.stringifyIdent(e)||t.configuration.normalizeDependency(Coe.makeDescriptor(Coe.parseLocator(l.descriptor.fullName),l.descriptor.description??e.range)).descriptorHash!==e.descriptorHash)continue;return a.bindDescriptor(t.configuration.normalizeDependency(Coe.makeDescriptor(e,A)),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(let r of e.workspaces){let n=Coe.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,o)=>t.reportWarning(a,`${n}: ${o}`),reportError:(a,o)=>t.reportError(a,`${n}: ${o}`)})}},validateWorkspace:async(e,t)=>{let{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let n of r.errors)t.reportWarning(FZo.MessageName.INVALID_MANIFEST,n.message)}}}});var Kfe=H(egt=>{"use strict";Object.defineProperty(egt,"__esModule",{value:!0});egt.WorkspaceResolver=void 0;var ZZo=Qfe(),$ut=class e{supportsDescriptor(t,r){return!!(t.range.startsWith(e.protocol)||r.project.tryWorkspaceByDescriptor(t)!==null)}supportsLocator(t,r){return!!t.reference.startsWith(e.protocol)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[n.project.getWorkspaceByDescriptor(t).anchoredLocator]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let n=r.project.getWorkspaceByCwd(t.reference.slice(e.protocol.length));return{...t,version:n.manifest.version||"0.0.0",languageName:"unknown",linkType:ZZo.LinkType.SOFT,conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...n.manifest.dependencies,...n.manifest.devDependencies])),peerDependencies:new Map([...n.manifest.peerDependencies]),dependenciesMeta:n.manifest.dependenciesMeta,peerDependenciesMeta:n.manifest.peerDependenciesMeta,bin:n.manifest.bin}}};egt.WorkspaceResolver=$ut;$ut.protocol="workspace:"});var n$=H(aX=>{"use strict";Object.defineProperty(aX,"__esModule",{value:!0});aX.SemVer=void 0;aX.satisfiesWithPrereleases=PZo;aX.validRange=ixn;aX.clean=OZo;aX.getComparator=sxn;aX.mergeComparators=pur;aX.stringifyComparator=oxn;aX.simplifyRanges=MZo;var LZo=(Pa(),vi(Va)),_oe=LZo.__importDefault(UC()),VZo=UC();Object.defineProperty(aX,"SemVer",{enumerable:!0,get:function(){return VZo.SemVer}});var rxn=new Map;function PZo(e,t,r=!1){if(!e)return!1;let n=`${t}${r}`,a=rxn.get(n);if(typeof a>"u")try{a=new _oe.default.Range(t,{includePrerelease:!0,loose:r})}catch{return!1}finally{rxn.set(n,a||null)}else if(a===null)return!1;let o;try{o=new _oe.default.SemVer(e,a)}catch{return!1}return a.test(o)?!0:(o.prerelease&&(o.prerelease=[]),a.set.some(l=>{for(let A of l)A.semver.prerelease&&(A.semver.prerelease=[]);return l.every(A=>A.test(o))}))}var nxn=new Map;function ixn(e){if(e.indexOf(":")!==-1)return null;let t=nxn.get(e);if(typeof t<"u")return t;try{t=new _oe.default.Range(e)}catch{t=null}return nxn.set(e,t),t}var WZo=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function OZo(e){let t=WZo.exec(e);return t?t[1]:null}function sxn(e){if(e.semver===_oe.default.Comparator.ANY)return{gt:null,lt:null};switch(e.operator){case"":return{gt:[">=",e.semver],lt:["<=",e.semver]};case">":case">=":return{gt:[e.operator,e.semver],lt:null};case"<":case"<=":return{gt:null,lt:[e.operator,e.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${e.operator})`)}}function pur(e){if(e.length===0)return null;let t=null,r=null;for(let n of e){if(n.gt){let a=t!==null?_oe.default.compare(n.gt[1],t[1]):null;(a===null||a>0||a===0&&n.gt[0]===">")&&(t=n.gt)}if(n.lt){let a=r!==null?_oe.default.compare(n.lt[1],r[1]):null;(a===null||a<0||a===0&&n.lt[0]==="<")&&(r=n.lt)}}if(t&&r){let n=_oe.default.compare(t[1],r[1]);if(n===0&&(t[0]===">"||r[0]==="<")||n>0)return null}return{gt:t,lt:r}}function oxn(e){if(e.gt&&e.lt){if(e.gt[0]===">="&&e.lt[0]==="<="&&e.gt[1].version===e.lt[1].version)return e.gt[1].version;if(e.gt[0]===">="&&e.lt[0]==="<"){if(e.lt[1].version===`${e.gt[1].major+1}.0.0-0`)return`^${e.gt[1].version}`;if(e.lt[1].version===`${e.gt[1].major}.${e.gt[1].minor+1}.0-0`)return`~${e.gt[1].version}`}}let t=[];return e.gt&&t.push(e.gt[0]+e.gt[1].version),e.lt&&t.push(e.lt[0]+e.lt[1].version),t.length?t.join(" "):"*"}function MZo(e){let t=e.map(HZo).map(n=>ixn(n).set.map(a=>a.map(o=>sxn(o)))),r=t.shift().map(n=>pur(n)).filter(n=>n!==null);for(let n of t){let a=[];for(let o of r)for(let l of n){let A=pur([o,...l]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(n=>oxn(n)).join(" || ")}function HZo(e){let t=e.split("||");if(t.length>1){let r=new Set;for(let n of t)t.some(a=>a!==n&&_oe.default.subset(n,a))||r.add(n);if(r.size{"use strict";Object.defineProperty(sgt,"__esModule",{value:!0});sgt.Manifest=void 0;var igt=(Pa(),vi(Va)),tgt=no(),axn=TW(),YZo=igt.__importDefault(UC()),QZo=Kfe(),ngt=igt.__importStar(xW()),XZo=igt.__importStar(n$()),O0=igt.__importStar(uG()),lve=class e{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.libc=null,this.type=null,this.packageManager=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.browser=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.installConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(t,{baseFs:r=new tgt.NodeFS}={}){let n=tgt.ppath.join(t,"package.json");try{return await e.fromFile(n,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(t,{baseFs:r}={}){let n=await e.tryFind(t,{baseFs:r});if(n===null)throw new Error("Manifest not found");return n}static async fromFile(t,{baseFs:r=new tgt.NodeFS}={}){let n=new e;return await n.loadFile(t,{baseFs:r}),n}static fromText(t){let r=new e;return r.loadFromText(t),r}loadFromText(t){let r;try{r=JSON.parse(lxn(t)||"{}")}catch(n){throw n.message+=` (when parsing ${t})`,n}this.load(r),this.indent=cxn(t)}async loadFile(t,{baseFs:r=new tgt.NodeFS}){let n=await r.readFilePromise(t,"utf8"),a;try{a=JSON.parse(lxn(n)||"{}")}catch(o){throw o.message+=` (when parsing ${t})`,o}this.load(a),this.indent=cxn(n)}load(t,{yamlCompatibilityMode:r=!1}={}){if(typeof t!="object"||t===null)throw new Error(`Utterly invalid manifest data (${t})`);this.raw=t;let n=[];if(this.name=null,typeof t.name=="string")try{this.name=O0.parseIdent(t.name)}catch{n.push(new Error("Parsing failed for the 'name' field"))}if(typeof t.version=="string"?this.version=t.version:this.version=null,Array.isArray(t.os)){let o=[];this.os=o;for(let l of t.os)typeof l!="string"?n.push(new Error("Parsing failed for the 'os' field")):o.push(l)}else this.os=null;if(Array.isArray(t.cpu)){let o=[];this.cpu=o;for(let l of t.cpu)typeof l!="string"?n.push(new Error("Parsing failed for the 'cpu' field")):o.push(l)}else this.cpu=null;if(Array.isArray(t.libc)){let o=[];this.libc=o;for(let l of t.libc)typeof l!="string"?n.push(new Error("Parsing failed for the 'libc' field")):o.push(l)}else this.libc=null;if(typeof t.type=="string"?this.type=t.type:this.type=null,typeof t.packageManager=="string"?this.packageManager=t.packageManager:this.packageManager=null,typeof t.private=="boolean"?this.private=t.private:this.private=!1,typeof t.license=="string"?this.license=t.license:this.license=null,typeof t.languageName=="string"?this.languageName=t.languageName:this.languageName=null,typeof t.main=="string"?this.main=BZ(t.main):this.main=null,typeof t.module=="string"?this.module=BZ(t.module):this.module=null,t.browser!=null)if(typeof t.browser=="string")this.browser=BZ(t.browser);else{this.browser=new Map;for(let[o,l]of Object.entries(t.browser))this.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}else this.browser=null;if(this.bin=new Map,typeof t.bin=="string")t.bin.trim()===""?n.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,BZ(t.bin)):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.bin=="object"&&t.bin!==null)for(let[o,l]of Object.entries(t.bin)){if(typeof l!="string"||l.trim()===""){n.push(new Error(`Invalid bin definition for '${o}'`));continue}let A=O0.parseIdent(o);this.bin.set(A.name,BZ(l))}if(this.scripts=new Map,typeof t.scripts=="object"&&t.scripts!==null)for(let[o,l]of Object.entries(t.scripts)){if(typeof l!="string"){n.push(new Error(`Invalid script definition for '${o}'`));continue}this.scripts.set(o,l)}if(this.dependencies=new Map,typeof t.dependencies=="object"&&t.dependencies!==null)for(let[o,l]of Object.entries(t.dependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f)}if(this.devDependencies=new Map,typeof t.devDependencies=="object"&&t.devDependencies!==null)for(let[o,l]of Object.entries(t.devDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.devDependencies.set(f.identHash,f)}if(this.peerDependencies=new Map,typeof t.peerDependencies=="object"&&t.peerDependencies!==null)for(let[o,l]of Object.entries(t.peerDependencies)){let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}(typeof l!="string"||!l.startsWith(QZo.WorkspaceResolver.protocol)&&!XZo.validRange(l))&&(n.push(new Error(`Invalid dependency range for '${o}'`)),l="*");let f=O0.makeDescriptor(A,l);this.peerDependencies.set(f.identHash,f)}typeof t.workspaces=="object"&&t.workspaces!==null&&t.workspaces.nohoist&&n.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(t.workspaces)?t.workspaces:typeof t.workspaces=="object"&&t.workspaces!==null&&Array.isArray(t.workspaces.packages)?t.workspaces.packages:[];this.workspaceDefinitions=[];for(let o of a){if(typeof o!="string"){n.push(new Error(`Invalid workspace definition for '${o}'`));continue}this.workspaceDefinitions.push({pattern:o})}if(this.dependenciesMeta=new Map,typeof t.dependenciesMeta=="object"&&t.dependenciesMeta!==null)for(let[o,l]of Object.entries(t.dependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}`));continue}let A=O0.parseDescriptor(o),f=this.ensureDependencyMeta(A),I=rgt(l.built,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid built meta field for '${o}'`));continue}let C=rgt(l.optional,{yamlCompatibilityMode:r});if(C===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}let b=rgt(l.unplugged,{yamlCompatibilityMode:r});if(b===null){n.push(new Error(`Invalid unplugged meta field for '${o}'`));continue}Object.assign(f,{built:I,optional:C,unplugged:b})}if(this.peerDependenciesMeta=new Map,typeof t.peerDependenciesMeta=="object"&&t.peerDependenciesMeta!==null)for(let[o,l]of Object.entries(t.peerDependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}'`));continue}let A=O0.parseDescriptor(o),f=this.ensurePeerDependencyMeta(A),I=rgt(l.optional,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}Object.assign(f,{optional:I})}if(this.resolutions=[],typeof t.resolutions=="object"&&t.resolutions!==null)for(let[o,l]of Object.entries(t.resolutions)){if(typeof l!="string"){n.push(new Error(`Invalid resolution entry for '${o}'`));continue}try{this.resolutions.push({pattern:(0,axn.parseResolution)(o),reference:l})}catch(A){n.push(A);continue}}if(Array.isArray(t.files)){this.files=new Set;for(let o of t.files){if(typeof o!="string"){n.push(new Error(`Invalid files entry for '${o}'`));continue}this.files.add(o)}}else this.files=null;if(typeof t.publishConfig=="object"&&t.publishConfig!==null){if(this.publishConfig={},typeof t.publishConfig.access=="string"&&(this.publishConfig.access=t.publishConfig.access),typeof t.publishConfig.main=="string"&&(this.publishConfig.main=BZ(t.publishConfig.main)),typeof t.publishConfig.module=="string"&&(this.publishConfig.module=BZ(t.publishConfig.module)),t.publishConfig.browser!=null)if(typeof t.publishConfig.browser=="string")this.publishConfig.browser=BZ(t.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[o,l]of Object.entries(t.publishConfig.browser))this.publishConfig.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}if(typeof t.publishConfig.registry=="string"&&(this.publishConfig.registry=t.publishConfig.registry),typeof t.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=t.publishConfig.provenance),typeof t.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,BZ(t.publishConfig.bin)]]):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.publishConfig.bin=="object"&&t.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[o,l]of Object.entries(t.publishConfig.bin)){if(typeof l!="string"){n.push(new Error(`Invalid bin definition for '${o}'`));continue}this.publishConfig.bin.set(o,BZ(l))}}if(Array.isArray(t.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let o of t.publishConfig.executableFiles){if(typeof o!="string"){n.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(BZ(o))}}}else this.publishConfig=null;if(typeof t.installConfig=="object"&&t.installConfig!==null){this.installConfig={};for(let o of Object.keys(t.installConfig))o==="hoistingLimits"?typeof t.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=t.installConfig.hoistingLimits:n.push(new Error("Invalid hoisting limits definition")):o=="selfReferences"?typeof t.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=t.installConfig.selfReferences:n.push(new Error("Invalid selfReferences definition, must be a boolean value")):n.push(new Error(`Unrecognized installConfig key: ${o}`))}else this.installConfig=null;if(typeof t.optionalDependencies=="object"&&t.optionalDependencies!==null)for(let[o,l]of Object.entries(t.optionalDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f);let I=O0.makeDescriptor(A,"unknown"),C=this.ensureDependencyMeta(I);Object.assign(C,{optional:!0})}typeof t.preferUnplugged=="boolean"?this.preferUnplugged=t.preferUnplugged:this.preferUnplugged=null,this.errors=n}getForScope(t){switch(t){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${t}")`)}}hasConsumerDependency(t){return!!(this.dependencies.has(t.identHash)||this.peerDependencies.has(t.identHash))}hasHardDependency(t){return!!(this.dependencies.has(t.identHash)||this.devDependencies.has(t.identHash))}hasSoftDependency(t){return!!this.peerDependencies.has(t.identHash)}hasDependency(t){return!!(this.hasHardDependency(t)||this.hasSoftDependency(t))}getConditions(){let t=[];return this.os&&this.os.length>0&&t.push(fur("os",this.os)),this.cpu&&this.cpu.length>0&&t.push(fur("cpu",this.cpu)),this.libc&&this.libc.length>0&&t.push(fur("libc",this.libc)),t.length>0?t.join(" & "):null}ensureDependencyMeta(t){if(t.range!=="unknown"&&!YZo.default.valid(t.range))throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=t.range!=="unknown"?t.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let o=a.get(n);return o||a.set(n,o={}),o}ensurePeerDependencyMeta(t){if(t.range!=="unknown")throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=this.peerDependenciesMeta.get(r);return n||this.peerDependenciesMeta.set(r,n={}),n}setRawField(t,r,{after:n=[]}={}){let a=new Set(n.filter(o=>Object.hasOwn(this.raw,o)));if(a.size===0||Object.hasOwn(this.raw,t))this.raw[t]=r;else{let o=this.raw,l=this.raw={},A=!1;for(let f of Object.keys(o))l[f]=o[f],A||(a.delete(f),a.size===0&&(l[t]=r,A=!0))}}exportTo(t,{compatibilityMode:r=!0}={}){if(Object.assign(t,this.raw),this.name!==null?t.name=O0.stringifyIdent(this.name):delete t.name,this.version!==null?t.version=this.version:delete t.version,this.os!==null?t.os=this.os:delete t.os,this.cpu!==null?t.cpu=this.cpu:delete t.cpu,this.type!==null?t.type=this.type:delete t.type,this.packageManager!==null?t.packageManager=this.packageManager:delete t.packageManager,this.private?t.private=!0:delete t.private,this.license!==null?t.license=this.license:delete t.license,this.languageName!==null?t.languageName=this.languageName:delete t.languageName,this.main!==null?t.main=this.main:delete t.main,this.module!==null?t.module=this.module:delete t.module,this.browser!==null){let o=this.browser;typeof o=="string"?t.browser=o:o instanceof Map&&(t.browser=Object.assign({},...Array.from(o.keys()).sort().map(l=>({[l]:o.get(l)}))))}else delete t.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?t.bin=this.bin.get(this.name.name):this.bin.size>0?t.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete t.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?t.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:t.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?t.workspaces=this.raw.workspaces:delete t.workspaces;let n=[],a=[];for(let o of this.dependencies.values()){let l=this.dependenciesMeta.get(O0.stringifyIdent(o)),A=!1;if(r&&l){let f=l.get(null);f&&f.optional&&(A=!0)}A?a.push(o):n.push(o)}n.length>0?t.dependencies=Object.assign({},...O0.sortDescriptors(n).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.dependencies,a.length>0?t.optionalDependencies=Object.assign({},...O0.sortDescriptors(a).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.optionalDependencies,this.devDependencies.size>0?t.devDependencies=Object.assign({},...O0.sortDescriptors(this.devDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.devDependencies,this.peerDependencies.size>0?t.peerDependencies=Object.assign({},...O0.sortDescriptors(this.peerDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.peerDependencies,t.dependenciesMeta={};for(let[o,l]of ngt.sortMap(this.dependenciesMeta.entries(),([A,f])=>A))for(let[A,f]of ngt.sortMap(l.entries(),([I,C])=>I!==null?`0${I}`:"1")){let I=A!==null?O0.stringifyDescriptor(O0.makeDescriptor(O0.parseIdent(o),A)):o,C={...f};r&&A===null&&delete C.optional,Object.keys(C).length!==0&&(t.dependenciesMeta[I]=C)}if(Object.keys(t.dependenciesMeta).length===0&&delete t.dependenciesMeta,this.peerDependenciesMeta.size>0?t.peerDependenciesMeta=Object.assign({},...ngt.sortMap(this.peerDependenciesMeta.entries(),([o,l])=>o).map(([o,l])=>({[o]:l}))):delete t.peerDependenciesMeta,this.resolutions.length>0?t.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:l})=>({[(0,axn.stringifyResolution)(o)]:l}))):delete t.resolutions,this.files!==null?t.files=Array.from(this.files):delete t.files,this.preferUnplugged!==null?t.preferUnplugged=this.preferUnplugged:delete t.preferUnplugged,this.scripts!==null&&this.scripts.size>0){t.scripts??={};for(let o of Object.keys(t.scripts))this.scripts.has(o)||delete t.scripts[o];for(let[o,l]of this.scripts.entries())t.scripts[o]=l}else delete t.scripts;return t}};sgt.Manifest=lve;lve.fileName="package.json";lve.allDependencies=["dependencies","devDependencies","peerDependencies"];lve.hardDependencies=["dependencies","devDependencies"];function cxn(e){let t=e.match(/^[ \t]+/m);return t?t[0]:" "}function lxn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function BZ(e){return e.replace(/\\/g,"/")}function rgt(e,{yamlCompatibilityMode:t}){return t?ngt.tryParseOptionalBoolean(e):typeof e>"u"||typeof e=="boolean"?e:null}function uxn(e,t){let r=t.search(/[^!]/);if(r===-1)return"invalid";let n=r%2===0?"":"!",a=t.slice(r);return`${n}${e}=${a}`}function fur(e,t){return t.length===1?uxn(e,t[0]):`(${t.map(r=>uxn(e,r)).join(" | ")})`}});var sM=H(jfe=>{"use strict";Object.defineProperty(jfe,"__esModule",{value:!0});jfe.Report=jfe.ReportError=void 0;jfe.isReportError=gxn;var JZo=kW(),UZo=wt("stream"),KZo=wt("string_decoder"),jZo=M9(),zZo=15,Iur=class extends Error{constructor(t,r,n){super(r),this.reportExtra=n,this.reportCode=t}};jfe.ReportError=Iur;function gxn(e){return typeof e.reportCode<"u"}var hur=class{constructor(){this.cacheHits=new Set,this.cacheMisses=new Set,this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(t){this.cacheHits.add(t.locatorHash)}reportCacheMiss(t,r){this.cacheMisses.add(t.locatorHash)}static progressViaCounter(t){let r=0,n,a=new Promise(f=>{n=f}),o=f=>{let I=n;a=new Promise(C=>{n=C}),r=f,I()},l=(f=0)=>{o(r+1)},A=async function*(){for(;r{r=l}),a=(0,JZo.throttle)(l=>{let A=r;n=new Promise(f=>{r=f}),t=l,A()},1e3/zZo),o=async function*(){for(;;)await n,yield{title:t}}();return{[Symbol.asyncIterator](){return o},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(t,r){let n=this.reportProgress(t);try{return await r(t)}finally{n.stop()}}startProgressSync(t,r){let n=this.reportProgress(t);try{return r(t)}finally{n.stop()}}reportInfoOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(t,r),n?.reportExtra?.(this))}reportWarningOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(t,r),n?.reportExtra?.(this))}reportErrorOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(t,r),n?.reportExtra?.(this))}reportExceptionOnce(t){gxn(t)?this.reportErrorOnce(t.reportCode,t.message,{key:t,reportExtra:t.reportExtra}):this.reportErrorOnce(jZo.MessageName.EXCEPTION,t.stack||t.message,{key:t})}createStreamReporter(t=null){let r=new UZo.PassThrough,n=new KZo.StringDecoder,a="";return r.on("data",o=>{let l=n.write(o),A;do if(A=l.indexOf(` -`),A!==-1){let f=a+l.substring(0,A);l=l.substring(A+1),a="",t!==null?this.reportInfo(null,`${t} ${f}`):this.reportInfo(null,f)}while(A!==-1);a+=l}),r.on("end",()=>{let o=n.end();o!==""&&(t!==null?this.reportInfo(null,`${t} ${o}`):this.reportInfo(null,o))}),r}};jfe.Report=hur});var Cur=H(ogt=>{"use strict";Object.defineProperty(ogt,"__esModule",{value:!0});ogt.MultiFetcher=void 0;var qZo=(Pa(),vi(Va)),$Zo=M9(),eLo=sM(),tLo=qZo.__importStar(uG()),mur=class{constructor(t){this.fetchers=t}supports(t,r){return!!this.tryFetcher(t,r)}getLocalPath(t,r){return this.getFetcher(t,r).getLocalPath(t,r)}async fetch(t,r){return await this.getFetcher(t,r).fetch(t,r)}tryFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));return n||null}getFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));if(!n)throw new eLo.ReportError($Zo.MessageName.FETCHER_NOT_FOUND,`${tLo.prettyLocator(r.project.configuration,t)} isn't supported by any available fetcher`);return n}};ogt.MultiFetcher=mur});var yur=H(agt=>{"use strict";Object.defineProperty(agt,"__esModule",{value:!0});agt.MultiResolver=void 0;var rLo=(Pa(),vi(Va)),Axn=rLo.__importStar(uG()),_ur=class{constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Axn.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Axn.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};agt.MultiResolver=_ur});var vur=H(cgt=>{"use strict";Object.defineProperty(cgt,"__esModule",{value:!0});cgt.VirtualFetcher=void 0;var nLo=(Pa(),vi(Va)),bur=no(),Eur=nLo.__importStar(uG()),Sur=class{supports(t){return!!t.reference.startsWith("virtual:")}getLocalPath(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a);return r.fetcher.getLocalPath(o,r)}async fetch(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a),l=await r.fetcher.fetch(o,r);return await this.ensureVirtualLink(t,l,r)}getLocatorFilename(t){return Eur.slugifyLocator(t)}async ensureVirtualLink(t,r,n){let a=r.packageFs.getRealPath(),o=n.project.configuration.get("virtualFolder"),l=this.getLocatorFilename(t),A=bur.VirtualFS.makeVirtualPath(o,l,a),f=new bur.AliasFS(A,{baseFs:r.packageFs,pathUtils:bur.ppath});return{...r,packageFs:f}}};cgt.VirtualFetcher=Sur});var dxn=H(ugt=>{"use strict";Object.defineProperty(ugt,"__esModule",{value:!0});ugt.VirtualResolver=void 0;var lgt=class e{static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};ugt.VirtualResolver=lgt;lgt.protocol="virtual:"});var wur=H(ggt=>{"use strict";Object.defineProperty(ggt,"__esModule",{value:!0});ggt.WorkspaceFetcher=void 0;var pxn=no(),fxn=Kfe(),Bur=class{supports(t){return!!t.reference.startsWith(fxn.WorkspaceResolver.protocol)}getLocalPath(t,r){return this.getWorkspace(t,r).cwd}async fetch(t,r){let n=this.getWorkspace(t,r).cwd;return{packageFs:new pxn.CwdFS(n),prefixPath:pxn.PortablePath.dot,localPath:n}}getWorkspace(t,r){return r.project.getWorkspaceByCwd(t.reference.slice(fxn.WorkspaceResolver.protocol.length))}};ggt.WorkspaceFetcher=Bur});var mxn=H(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});JK.RESOLVED_RC_FILE=void 0;JK.resolveRcFiles=aLo;JK.getValue=cLo;JK.getValueByTree=Nur;JK.getSource=lLo;var iLo=(e,t,r)=>{let n=[...e];return n.reverse(),n.findIndex(t,r)};function t5e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var oM;(function(e){e[e.Object=0]="Object",e[e.Array=1]="Array",e[e.Literal=2]="Literal",e[e.Undefined=3]="Undefined"})(oM||(oM={}));function Ixn(e){return typeof e>"u"?oM.Undefined:t5e(e)?oM.Object:Array.isArray(e)?oM.Array:oM.Literal}function Dur(e,t){return Object.hasOwn(e,t)}function sLo(e){return t5e(e)&&Dur(e,"onConflict")&&typeof e.onConflict=="string"}function oLo(e){if(typeof e>"u")return{onConflict:"default",value:e};if(!sLo(e))return{onConflict:"default",value:e};if(Dur(e,"value"))return e;let{onConflict:t,...r}=e;return{onConflict:t,value:r}}function hxn(e,t){let r=t5e(e)&&Dur(e,t)?e[t]:void 0;return oLo(r)}JK.RESOLVED_RC_FILE=Symbol();function gve(e,t){return[e,t,JK.RESOLVED_RC_FILE]}function kur(e){return Array.isArray(e)?e[2]===JK.RESOLVED_RC_FILE:!1}function Tur(e,t){if(t5e(e)){let r={};for(let n of Object.keys(e))r[n]=Tur(e[n],t);return gve(t,r)}return Array.isArray(e)?gve(t,e.map(r=>Tur(r,t))):gve(t,e)}function Rur(e,t,r,n,a){let o,l=[],A=a,f=0;for(let C=a-1;C>=n;--C){let[b,E]=e[C],{onConflict:N,value:B}=hxn(E,r),F=Ixn(B);if(F!==oM.Undefined){if(o??=F,F!==o||N==="hardReset"){f=A;break}if(F===oM.Literal)return gve(b,B);if(l.unshift([b,B]),N==="reset"){f=C;break}N==="extend"&&C===n&&(n=0),A=C}}if(typeof o>"u")return null;let I=l.map(([C])=>C).join(", ");switch(o){case oM.Array:return gve(I,new Array().concat(...l.map(([C,b])=>b.map(E=>Tur(E,C)))));case oM.Object:{let C=Object.assign({},...l.map(([,F])=>F)),b=Object.keys(C),E={},N=e.map(([F,Q])=>[F,hxn(Q,r).value]),B=iLo(N,([F,Q])=>{let X=Ixn(Q);return X!==oM.Object&&X!==oM.Undefined});if(B!==-1){let F=N.slice(B+1);for(let Q of b)E[Q]=Rur(F,t,Q,0,F.length)}else for(let F of b)E[F]=Rur(N,t,F,f,N.length);return gve(I,E)}default:throw new Error("Assertion failed: Non-extendable value type")}}function aLo(e){return Rur(e.map(([t,r])=>[t,{".":r}]),[],".",0,e.length)}function cLo(e){return kur(e)?e[1]:e}function Nur(e){let t=kur(e)?e[1]:e;if(Array.isArray(t))return t.map(r=>Nur(r));if(t5e(t)){let r={};for(let[n,a]of Object.entries(t))r[n]=Nur(a);return r}return t}function lLo(e){return kur(e)?e[0]:null}});var Agt=H(r5e=>{"use strict";Object.defineProperty(r5e,"__esModule",{value:!0});r5e.getDefaultGlobalFolder=uLo;r5e.getHomeFolder=_xn;r5e.isFolderInside=gLo;var i$=no(),Cxn=wt("os");function uLo(){if(process.platform==="win32"){let e=i$.npath.toPortablePath(process.env.LOCALAPPDATA||i$.npath.join((0,Cxn.homedir)(),"AppData","Local"));return i$.ppath.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let e=i$.npath.toPortablePath(process.env.XDG_DATA_HOME);return i$.ppath.resolve(e,"yarn/berry")}return i$.ppath.resolve(_xn(),".yarn/berry")}function _xn(){return i$.npath.toPortablePath((0,Cxn.homedir)()||"/usr/local/share")}function gLo(e,t){let r=i$.ppath.relative(t,e);return r&&!r.startsWith("..")&&!i$.ppath.isAbsolute(r)}});var Exn=H((W8l,bxn)=>{"use strict";var xur=wt("https"),Gur=wt("http"),{URL:yxn}=wt("url"),Fur=class extends Gur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200?r(null,l):(l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}},Zur=class extends xur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{if(a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200){let f=super.createConnection({...t,socket:l});r(null,f)}else l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}};bxn.exports={HttpProxyAgent:Fur,HttpsProxyAgent:Zur}});var o$=H((s$,dgt)=>{"use strict";Object.defineProperty(s$,"__esModule",{value:!0});var Sxn=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ALo(e){return Sxn.includes(e)}var dLo=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Sxn];function pLo(e){return dLo.includes(e)}var fLo=["null","undefined","string","number","bigint","boolean","symbol"];function ILo(e){return fLo.includes(e)}function Ave(e){return t=>typeof t===e}var{toString:vxn}=Object.prototype,n5e=e=>{let t=vxn.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&Xi.domElement(e))return"HTMLElement";if(pLo(t))return t},Xb=e=>t=>n5e(t)===e;function Xi(e){if(e===null)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Xi.observable(e))return"Observable";if(Xi.array(e))return"Array";if(Xi.buffer(e))return"Buffer";let t=n5e(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Xi.undefined=Ave("undefined");Xi.string=Ave("string");var hLo=Ave("number");Xi.number=e=>hLo(e)&&!Xi.nan(e);Xi.bigint=Ave("bigint");Xi.function_=Ave("function");Xi.null_=e=>e===null;Xi.class_=e=>Xi.function_(e)&&e.toString().startsWith("class ");Xi.boolean=e=>e===!0||e===!1;Xi.symbol=Ave("symbol");Xi.numericString=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e));Xi.array=(e,t)=>Array.isArray(e)?Xi.function_(t)?e.every(t):!0:!1;Xi.buffer=e=>{var t,r,n,a;return(a=(n=(r=(t=e)===null||t===void 0?void 0:t.constructor)===null||r===void 0?void 0:r.isBuffer)===null||n===void 0?void 0:n.call(r,e))!==null&&a!==void 0?a:!1};Xi.blob=e=>Xb("Blob")(e);Xi.nullOrUndefined=e=>Xi.null_(e)||Xi.undefined(e);Xi.object=e=>!Xi.null_(e)&&(typeof e=="object"||Xi.function_(e));Xi.iterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.iterator])};Xi.asyncIterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.asyncIterator])};Xi.generator=e=>{var t,r;return Xi.iterable(e)&&Xi.function_((t=e)===null||t===void 0?void 0:t.next)&&Xi.function_((r=e)===null||r===void 0?void 0:r.throw)};Xi.asyncGenerator=e=>Xi.asyncIterable(e)&&Xi.function_(e.next)&&Xi.function_(e.throw);Xi.nativePromise=e=>Xb("Promise")(e);var mLo=e=>{var t,r;return Xi.function_((t=e)===null||t===void 0?void 0:t.then)&&Xi.function_((r=e)===null||r===void 0?void 0:r.catch)};Xi.promise=e=>Xi.nativePromise(e)||mLo(e);Xi.generatorFunction=Xb("GeneratorFunction");Xi.asyncGeneratorFunction=e=>n5e(e)==="AsyncGeneratorFunction";Xi.asyncFunction=e=>n5e(e)==="AsyncFunction";Xi.boundFunction=e=>Xi.function_(e)&&!e.hasOwnProperty("prototype");Xi.regExp=Xb("RegExp");Xi.date=Xb("Date");Xi.error=Xb("Error");Xi.map=e=>Xb("Map")(e);Xi.set=e=>Xb("Set")(e);Xi.weakMap=e=>Xb("WeakMap")(e);Xi.weakSet=e=>Xb("WeakSet")(e);Xi.int8Array=Xb("Int8Array");Xi.uint8Array=Xb("Uint8Array");Xi.uint8ClampedArray=Xb("Uint8ClampedArray");Xi.int16Array=Xb("Int16Array");Xi.uint16Array=Xb("Uint16Array");Xi.int32Array=Xb("Int32Array");Xi.uint32Array=Xb("Uint32Array");Xi.float32Array=Xb("Float32Array");Xi.float64Array=Xb("Float64Array");Xi.bigInt64Array=Xb("BigInt64Array");Xi.bigUint64Array=Xb("BigUint64Array");Xi.arrayBuffer=Xb("ArrayBuffer");Xi.sharedArrayBuffer=Xb("SharedArrayBuffer");Xi.dataView=Xb("DataView");Xi.enumCase=(e,t)=>Object.values(t).includes(e);Xi.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype;Xi.urlInstance=e=>Xb("URL")(e);Xi.urlString=e=>{if(!Xi.string(e))return!1;try{return new URL(e),!0}catch{return!1}};Xi.truthy=e=>!!e;Xi.falsy=e=>!e;Xi.nan=e=>Number.isNaN(e);Xi.primitive=e=>Xi.null_(e)||ILo(typeof e);Xi.integer=e=>Number.isInteger(e);Xi.safeInteger=e=>Number.isSafeInteger(e);Xi.plainObject=e=>{if(vxn.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})};Xi.typedArray=e=>ALo(n5e(e));var CLo=e=>Xi.safeInteger(e)&&e>=0;Xi.arrayLike=e=>!Xi.nullOrUndefined(e)&&!Xi.function_(e)&&CLo(e.length);Xi.inRange=(e,t)=>{if(Xi.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(Xi.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};var _Lo=1,yLo=["innerHTML","ownerDocument","style","attributes","nodeValue"];Xi.domElement=e=>Xi.object(e)&&e.nodeType===_Lo&&Xi.string(e.nodeName)&&!Xi.plainObject(e)&&yLo.every(t=>t in e);Xi.observable=e=>{var t,r,n,a;return e?e===((r=(t=e)[Symbol.observable])===null||r===void 0?void 0:r.call(t))||e===((a=(n=e)["@@observable"])===null||a===void 0?void 0:a.call(n)):!1};Xi.nodeStream=e=>Xi.object(e)&&Xi.function_(e.pipe)&&!Xi.observable(e);Xi.infinite=e=>e===1/0||e===-1/0;var Bxn=e=>t=>Xi.integer(t)&&Math.abs(t%2)===e;Xi.evenInteger=Bxn(0);Xi.oddInteger=Bxn(1);Xi.emptyArray=e=>Xi.array(e)&&e.length===0;Xi.nonEmptyArray=e=>Xi.array(e)&&e.length>0;Xi.emptyString=e=>Xi.string(e)&&e.length===0;var bLo=e=>Xi.string(e)&&!/\S/.test(e);Xi.emptyStringOrWhitespace=e=>Xi.emptyString(e)||bLo(e);Xi.nonEmptyString=e=>Xi.string(e)&&e.length>0;Xi.nonEmptyStringAndNotWhitespace=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e);Xi.emptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length===0;Xi.nonEmptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length>0;Xi.emptySet=e=>Xi.set(e)&&e.size===0;Xi.nonEmptySet=e=>Xi.set(e)&&e.size>0;Xi.emptyMap=e=>Xi.map(e)&&e.size===0;Xi.nonEmptyMap=e=>Xi.map(e)&&e.size>0;Xi.propertyKey=e=>Xi.any([Xi.string,Xi.number,Xi.symbol],e);Xi.formData=e=>Xb("FormData")(e);Xi.urlSearchParams=e=>Xb("URLSearchParams")(e);var wxn=(e,t,r)=>{if(!Xi.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(r.length===0)throw new TypeError("Invalid number of values");return e.call(r,t)};Xi.any=(e,...t)=>(Xi.array(e)?e:[e]).some(n=>wxn(Array.prototype.some,n,t));Xi.all=(e,...t)=>wxn(Array.prototype.every,e,t);var Mu=(e,t,r,n={})=>{if(!e){let{multipleValues:a}=n,o=a?`received values of types ${[...new Set(r.map(l=>`\`${Xi(l)}\``))].join(", ")}`:`received value of type \`${Xi(r)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${o}.`)}};s$.assert={undefined:e=>Mu(Xi.undefined(e),"undefined",e),string:e=>Mu(Xi.string(e),"string",e),number:e=>Mu(Xi.number(e),"number",e),bigint:e=>Mu(Xi.bigint(e),"bigint",e),function_:e=>Mu(Xi.function_(e),"Function",e),null_:e=>Mu(Xi.null_(e),"null",e),class_:e=>Mu(Xi.class_(e),"Class",e),boolean:e=>Mu(Xi.boolean(e),"boolean",e),symbol:e=>Mu(Xi.symbol(e),"symbol",e),numericString:e=>Mu(Xi.numericString(e),"string with a number",e),array:(e,t)=>{Mu(Xi.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>Mu(Xi.buffer(e),"Buffer",e),blob:e=>Mu(Xi.blob(e),"Blob",e),nullOrUndefined:e=>Mu(Xi.nullOrUndefined(e),"null or undefined",e),object:e=>Mu(Xi.object(e),"Object",e),iterable:e=>Mu(Xi.iterable(e),"Iterable",e),asyncIterable:e=>Mu(Xi.asyncIterable(e),"AsyncIterable",e),generator:e=>Mu(Xi.generator(e),"Generator",e),asyncGenerator:e=>Mu(Xi.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>Mu(Xi.nativePromise(e),"native Promise",e),promise:e=>Mu(Xi.promise(e),"Promise",e),generatorFunction:e=>Mu(Xi.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>Mu(Xi.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>Mu(Xi.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>Mu(Xi.boundFunction(e),"Function",e),regExp:e=>Mu(Xi.regExp(e),"RegExp",e),date:e=>Mu(Xi.date(e),"Date",e),error:e=>Mu(Xi.error(e),"Error",e),map:e=>Mu(Xi.map(e),"Map",e),set:e=>Mu(Xi.set(e),"Set",e),weakMap:e=>Mu(Xi.weakMap(e),"WeakMap",e),weakSet:e=>Mu(Xi.weakSet(e),"WeakSet",e),int8Array:e=>Mu(Xi.int8Array(e),"Int8Array",e),uint8Array:e=>Mu(Xi.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>Mu(Xi.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>Mu(Xi.int16Array(e),"Int16Array",e),uint16Array:e=>Mu(Xi.uint16Array(e),"Uint16Array",e),int32Array:e=>Mu(Xi.int32Array(e),"Int32Array",e),uint32Array:e=>Mu(Xi.uint32Array(e),"Uint32Array",e),float32Array:e=>Mu(Xi.float32Array(e),"Float32Array",e),float64Array:e=>Mu(Xi.float64Array(e),"Float64Array",e),bigInt64Array:e=>Mu(Xi.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>Mu(Xi.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>Mu(Xi.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>Mu(Xi.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>Mu(Xi.dataView(e),"DataView",e),enumCase:(e,t)=>Mu(Xi.enumCase(e,t),"EnumCase",e),urlInstance:e=>Mu(Xi.urlInstance(e),"URL",e),urlString:e=>Mu(Xi.urlString(e),"string with a URL",e),truthy:e=>Mu(Xi.truthy(e),"truthy",e),falsy:e=>Mu(Xi.falsy(e),"falsy",e),nan:e=>Mu(Xi.nan(e),"NaN",e),primitive:e=>Mu(Xi.primitive(e),"primitive",e),integer:e=>Mu(Xi.integer(e),"integer",e),safeInteger:e=>Mu(Xi.safeInteger(e),"integer",e),plainObject:e=>Mu(Xi.plainObject(e),"plain object",e),typedArray:e=>Mu(Xi.typedArray(e),"TypedArray",e),arrayLike:e=>Mu(Xi.arrayLike(e),"array-like",e),domElement:e=>Mu(Xi.domElement(e),"HTMLElement",e),observable:e=>Mu(Xi.observable(e),"Observable",e),nodeStream:e=>Mu(Xi.nodeStream(e),"Node.js Stream",e),infinite:e=>Mu(Xi.infinite(e),"infinite number",e),emptyArray:e=>Mu(Xi.emptyArray(e),"empty array",e),nonEmptyArray:e=>Mu(Xi.nonEmptyArray(e),"non-empty array",e),emptyString:e=>Mu(Xi.emptyString(e),"empty string",e),emptyStringOrWhitespace:e=>Mu(Xi.emptyStringOrWhitespace(e),"empty string or whitespace",e),nonEmptyString:e=>Mu(Xi.nonEmptyString(e),"non-empty string",e),nonEmptyStringAndNotWhitespace:e=>Mu(Xi.nonEmptyStringAndNotWhitespace(e),"non-empty string and not whitespace",e),emptyObject:e=>Mu(Xi.emptyObject(e),"empty object",e),nonEmptyObject:e=>Mu(Xi.nonEmptyObject(e),"non-empty object",e),emptySet:e=>Mu(Xi.emptySet(e),"empty set",e),nonEmptySet:e=>Mu(Xi.nonEmptySet(e),"non-empty set",e),emptyMap:e=>Mu(Xi.emptyMap(e),"empty map",e),nonEmptyMap:e=>Mu(Xi.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>Mu(Xi.propertyKey(e),"PropertyKey",e),formData:e=>Mu(Xi.formData(e),"FormData",e),urlSearchParams:e=>Mu(Xi.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>Mu(Xi.evenInteger(e),"even integer",e),oddInteger:e=>Mu(Xi.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>Mu(Xi.directInstanceOf(e,t),"T",e),inRange:(e,t)=>Mu(Xi.inRange(e,t),"in range",e),any:(e,...t)=>Mu(Xi.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>Mu(Xi.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})};Object.defineProperties(Xi,{class:{value:Xi.class_},function:{value:Xi.function_},null:{value:Xi.null_}});Object.defineProperties(s$.assert,{class:{value:s$.assert.class_},function:{value:s$.assert.function_},null:{value:s$.assert.null_}});s$.default=Xi;dgt.exports=Xi;dgt.exports.default=Xi;dgt.exports.assert=s$.assert});var Txn=H((O8l,Lur)=>{"use strict";var pgt=class extends Error{constructor(t){super(t||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},fgt=class e{static fn(t){return(...r)=>new e((n,a,o)=>{r.push(o),t(...r).then(n,a)})}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,n)=>{this._reject=n;let a=A=>{(!this._isCanceled||!l.shouldReject)&&(this._isPending=!1,r(A))},o=A=>{this._isPending=!1,n(A)},l=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(l,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),t(a,o,l)})}then(t,r){return this._promise.then(t,r)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(t){if(!(!this._isPending||this._isCanceled)){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r);return}this._rejectOnCancel&&this._reject(new pgt(t))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(fgt.prototype,Promise.prototype);Lur.exports=fgt;Lur.exports.CancelError=pgt});var Rxn=H((Pur,Wur)=>{"use strict";Object.defineProperty(Pur,"__esModule",{value:!0});function ELo(e){return e.encrypted}var Vur=(e,t)=>{let r;typeof t=="function"?r={connect:t}:r=t;let n=typeof r.connect=="function",a=typeof r.secureConnect=="function",o=typeof r.close=="function",l=()=>{n&&r.connect(),ELo(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),o&&e.once("close",r.close)};e.writable&&!e.connecting?l():e.connecting?e.once("connect",l):e.destroyed&&o&&r.close(e._hadError)};Pur.default=Vur;Wur.exports=Vur;Wur.exports.default=Vur});var Nxn=H((Mur,Hur)=>{"use strict";Object.defineProperty(Mur,"__esModule",{value:!0});var SLo=Rxn(),vLo=wt("util"),BLo=Number(process.versions.node.split(".")[0]),Our=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let r=A=>{let f=A.emit.bind(A);A.emit=(I,...C)=>(I==="error"&&(t.error=Date.now(),t.phases.total=t.error-t.start,A.emit=f),f(I,...C))};r(e);let n=()=>{t.abort=Date.now(),(!t.response||BLo>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener("abort",n);let a=A=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,vLo.types.isProxy(A))return;let f=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};A.prependOnceListener("lookup",f),SLo.default(A,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(A.removeListener("lookup",f),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?a(e.socket):e.prependOnceListener("socket",a);let o=()=>{var A;t.upload=Date.now(),t.phases.request=t.upload-((A=t.secureConnect)!==null&&A!==void 0?A:t.connect)};return(typeof e.writableFinished=="boolean"?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?o():e.prependOnceListener("finish",o),e.prependOnceListener("response",A=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,A.timings=t,r(A),A.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),A.prependOnceListener("aborted",n)}),t};Mur.default=Our;Hur.exports=Our;Hur.exports.default=Our});var Lxn=H((M8l,Xur)=>{"use strict";var{V4MAPPED:wLo,ADDRCONFIG:TLo,ALL:Zxn,promises:{Resolver:Dxn},lookup:RLo}=wt("dns"),{promisify:Yur}=wt("util"),NLo=wt("os"),dve=Symbol("cacheableLookupCreateConnection"),Qur=Symbol("cacheableLookupInstance"),kxn=Symbol("expires"),DLo=typeof Zxn=="number",xxn=e=>{if(!(e&&typeof e.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},kLo=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},Gxn=()=>{let e=!1,t=!1;for(let r of Object.values(NLo.networkInterfaces()))for(let n of r)if(!n.internal&&(n.family==="IPv6"?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},xLo=e=>Symbol.iterator in e,Fxn={ttl:!0},GLo={all:!0},Igt=class{constructor({cache:t=new Map,maxTtl:r=1/0,fallbackDuration:n=3600,errorTtl:a=.15,resolver:o=new Dxn,lookup:l=RLo}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=t,this._resolver=o,this._dnsLookup=Yur(l),this._resolver instanceof Dxn?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yur(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yur(this._resolver.resolve6.bind(this._resolver))),this._iface=Gxn(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(t){this.clear(),this._resolver.setServers(t)}get servers(){return this._resolver.getServers()}lookup(t,r,n){if(typeof r=="function"?(n=r,r={}):typeof r=="number"&&(r={family:r}),!n)throw new Error("Callback must be a function.");this.lookupAsync(t,r).then(a=>{r.all?n(null,a):n(null,a.address,a.family,a.expires,a.ttl)},n)}async lookupAsync(t,r={}){typeof r=="number"&&(r={family:r});let n=await this.query(t);if(r.family===6){let a=n.filter(o=>o.family===6);r.hints&wLo&&(DLo&&r.hints&Zxn||a.length===0)?kLo(n):n=a}else r.family===4&&(n=n.filter(a=>a.family===4));if(r.hints&TLo){let{_iface:a}=this;n=n.filter(o=>o.family===6?a.has6:a.has4)}if(n.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${t}`);throw a.code="ENOTFOUND",a.hostname=t,a}return r.all?n:n[0]}async query(t){let r=await this._cache.get(t);if(!r){let n=this._pending[t];if(n)r=await n;else{let a=this.queryAndCache(t);this._pending[t]=a;try{r=await a}finally{delete this._pending[t]}}}return r=r.map(n=>({...n})),r}async _resolve(t){let r=async I=>{try{return await I}catch(C){if(C.code==="ENODATA"||C.code==="ENOTFOUND")return[];throw C}},[n,a]=await Promise.all([this._resolve4(t,Fxn),this._resolve6(t,Fxn)].map(I=>r(I))),o=0,l=0,A=0,f=Date.now();for(let I of n)I.family=4,I.expires=f+I.ttl*1e3,o=Math.max(o,I.ttl);for(let I of a)I.family=6,I.expires=f+I.ttl*1e3,l=Math.max(l,I.ttl);return n.length>0?a.length>0?A=Math.min(o,l):A=o:A=l,{entries:[...n,...a],cacheTtl:A}}async _lookup(t){try{return{entries:await this._dnsLookup(t,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(t,r,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,r[kxn]=Date.now()+n;try{await this._cache.set(t,r,n)}catch(a){this.lookupAsync=async()=>{let o=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw o.cause=a,o}}xLo(this._cache)&&this._tick(n)}}async queryAndCache(t){if(this._hostnamesToFallback.has(t))return this._dnsLookup(t,GLo);let r=await this._resolve(t);r.entries.length===0&&this._fallback&&(r=await this._lookup(t),r.entries.length!==0&&this._hostnamesToFallback.add(t));let n=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(t,r.entries,n),r.entries}_tick(t){let r=this._nextRemovalTime;(!r||t{this._nextRemovalTime=!1;let n=1/0,a=Date.now();for(let[o,l]of this._cache){let A=l[kxn];a>=A?this._cache.delete(o):A("lookup"in r||(r.lookup=this.lookup),t[dve](r,n))}uninstall(t){if(xxn(t),t[dve]){if(t[Qur]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");t.createConnection=t[dve],delete t[dve],delete t[Qur]}}updateInterfaceInfo(){let{_iface:t}=this;this._iface=Gxn(),(t.has4&&!this._iface.has4||t.has6&&!this._iface.has6)&&this._cache.clear()}clear(t){if(t){this._cache.delete(t);return}this._cache.clear()}};Xur.exports=Igt;Xur.exports.default=Igt});var Wxn=H((H8l,Pxn)=>{"use strict";var FLo="text/plain",ZLo="us-ascii",Vxn=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),LLo=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===ZLo)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length!==0||f&&f!==FLo)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`},VLo=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return LLo(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname&&(a.pathname=a.pathname.replace(/(?0){let l=a.pathname.split("/"),A=l[l.length-1];Vxn(A,t.removeDirectoryIndex)&&(l=l.slice(0,l.length-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])Vxn(l,t.removeQueryParameters)&&a.searchParams.delete(l);t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};Pxn.exports=VLo});var Hxn=H((Y8l,Mxn)=>{Mxn.exports=Oxn;function Oxn(e,t){if(e&&t)return Oxn(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),a=0;a{var Yxn=Hxn();Jur.exports=Yxn(hgt);Jur.exports.strict=Yxn(Qxn);hgt.proto=hgt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return hgt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Qxn(this)},configurable:!0})});function hgt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function Qxn(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var Uur=H((X8l,Jxn)=>{var PLo=mgt(),WLo=function(){},OLo=function(e){return e.setHeader&&typeof e.abort=="function"},MLo=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},Xxn=function(e,t,r){if(typeof t=="function")return Xxn(e,null,t);t||(t={}),r=PLo(r||WLo);var n=e._writableState,a=e._readableState,o=t.readable||t.readable!==!1&&e.readable,l=t.writable||t.writable!==!1&&e.writable,A=!1,f=function(){e.writable||I()},I=function(){l=!1,o||r.call(e)},C=function(){o=!1,l||r.call(e)},b=function(Q){r.call(e,Q?new Error("exited with error code: "+Q):null)},E=function(Q){r.call(e,Q)},N=function(){process.nextTick(B)},B=function(){if(!A){if(o&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(l&&!(n&&n.ended&&!n.destroyed))return r.call(e,new Error("premature close"))}},F=function(){e.req.on("finish",I)};return OLo(e)?(e.on("complete",I),e.on("abort",N),e.req?F():e.on("request",F)):l&&!n&&(e.on("end",f),e.on("close",f)),MLo(e)&&e.on("exit",b),e.on("end",C),e.on("finish",I),t.error!==!1&&e.on("error",E),e.on("close",N),function(){A=!0,e.removeListener("complete",I),e.removeListener("abort",N),e.removeListener("request",F),e.req&&e.req.removeListener("finish",I),e.removeListener("end",f),e.removeListener("close",f),e.removeListener("finish",I),e.removeListener("exit",b),e.removeListener("end",C),e.removeListener("error",E),e.removeListener("close",N)}};Jxn.exports=Xxn});var jxn=H((J8l,Kxn)=>{var HLo=mgt(),YLo=Uur(),Cgt;try{Cgt=wt("fs")}catch{}var i5e=function(){},QLo=/^v?\.0/.test(process.version),_gt=function(e){return typeof e=="function"},XLo=function(e){return!QLo||!Cgt?!1:(e instanceof(Cgt.ReadStream||i5e)||e instanceof(Cgt.WriteStream||i5e))&&_gt(e.close)},JLo=function(e){return e.setHeader&&_gt(e.abort)},ULo=function(e,t,r,n){n=HLo(n);var a=!1;e.on("close",function(){a=!0}),YLo(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,XLo(e))return e.close(i5e);if(JLo(e))return e.abort();if(_gt(e.destroy))return e.destroy();n(l||new Error("stream was destroyed"))}}},Uxn=function(e){e()},KLo=function(e,t){return e.pipe(t)},jLo=function(){var e=Array.prototype.slice.call(arguments),t=_gt(e[e.length-1]||i5e)&&e.pop()||i5e;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var r,n=e.map(function(a,o){var l=o0;return ULo(a,l,A,function(f){r||(r=f),f&&n.forEach(Uxn),!l&&(n.forEach(Uxn),t(r))})});return e.reduce(KLo)};Kxn.exports=jLo});var qxn=H((U8l,zxn)=>{"use strict";var{PassThrough:zLo}=wt("stream");zxn.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",a=!1;t?a=!(r||n):r=r||"utf8",n&&(r=null);let o=new zLo({objectMode:a});r&&o.setEncoding(r);let l=0,A=[];return o.on("data",f=>{A.push(f),a?l=A.length:l+=f.length}),o.getBufferedValue=()=>t?A:n?Buffer.concat(A,l):A.join(""),o.getBufferedLength=()=>l,o}});var $xn=H((K8l,pve)=>{"use strict";var{constants:qLo}=wt("buffer"),$Lo=jxn(),e9o=qxn(),ygt=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function bgt(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n;return await new Promise((a,o)=>{let l=A=>{A&&n.getBufferedLength()<=qLo.MAX_LENGTH&&(A.bufferedData=n.getBufferedValue()),o(A)};n=$Lo(e,e9o(t),A=>{if(A){l(A);return}a()}),n.on("data",()=>{n.getBufferedLength()>r&&l(new ygt)})}),n.getBufferedValue()}pve.exports=bgt;pve.exports.default=bgt;pve.exports.buffer=(e,t)=>bgt(e,{...t,encoding:"buffer"});pve.exports.array=(e,t)=>bgt(e,{...t,array:!0});pve.exports.MaxBufferError=ygt});var jur=H((z8l,eGn)=>{"use strict";var t9o=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r9o=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),n9o=new Set([500,502,503,504]),i9o={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},s9o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function zfe(e){let t=parseInt(e,10);return isFinite(t)?t:0}function o9o(e){return e?n9o.has(e.status):!0}function Kur(e){let t={};if(!e)return t;let r=e.trim().split(/,/);for(let n of r){let[a,o]=n.split(/=/,2);t[a.trim()]=o===void 0?!0:o.trim().replace(/^"|"$/g,"")}return t}function a9o(e){let t=[];for(let r in e){let n=e[r];t.push(n===!0?r:r+"="+n)}if(t.length)return t.join(", ")}eGn.exports=class{constructor(t,r,{shared:n,cacheHeuristic:a,immutableMinTimeToLive:o,ignoreCargoCult:l,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=n!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=o!==void 0?o:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=Kur(r.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=r.headers.vary?t.headers:null,this._reqcc=Kur(t.headers["cache-control"]),l&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":a9o(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&r9o.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||t9o.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(t){if(!t||!t.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(t){this._assertRequestHasHeaders(t);let r=Kur(t.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(t.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(t,!1)}_requestMatches(t,r){return(!this._url||this._url===t.url)&&this._host===t.headers.host&&(!t.method||this._method===t.method||r&&t.method==="HEAD")&&this._varyMatches(t)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(t){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of r)if(t.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(t){let r={};for(let n in t)i9o[n]||(r[n]=t[n]);if(t.connection){let n=t.connection.trim().split(/\s*,\s*/);for(let a of n)delete r[a]}if(r.warning){let n=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));n.length?r.warning=n.join(",").trim():delete r.warning}return r}responseHeaders(){let t=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(t.warning=(t.warning?`${t.warning}, `:"")+'113 - "rfc7234 5.5.4"'),t.age=`${Math.round(r)}`,t.date=new Date(this.now()).toUTCString(),t}date(){let t=Date.parse(this._resHeaders.date);return isFinite(t)?t:this._responseTime}age(){let t=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return t+r}_ageValue(){return zfe(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return zfe(this._rescc["s-maxage"])}if(this._rescc["max-age"])return zfe(this._rescc["max-age"]);let t=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||nn)return Math.max(t,(r-n)/1e3*this._cacheHeuristic)}return t}timeToLive(){let t=this.maxAge()-this.age(),r=t+zfe(this._rescc["stale-if-error"]),n=t+zfe(this._rescc["stale-while-revalidate"]);return Math.max(0,t,r,n)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+zfe(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+zfe(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(t){return new this(void 0,void 0,{_fromObject:t})}_fromObject(t){if(this._responseTime)throw Error("Reinitialized");if(!t||t.v!==1)throw Error("Invalid serialization");this._responseTime=t.t,this._isShared=t.sh,this._cacheHeuristic=t.ch,this._immutableMinTtl=t.imm!==void 0?t.imm:24*3600*1e3,this._status=t.st,this._resHeaders=t.resh,this._rescc=t.rescc,this._method=t.m,this._url=t.u,this._host=t.h,this._noAuthorization=t.a,this._reqHeaders=t.reqh,this._reqcc=t.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(t){this._assertRequestHasHeaders(t);let r=this._copyWithoutHopByHopHeaders(t.headers);if(delete r["if-range"],!this._requestMatches(t,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(o=>!/^\s*W\//.test(o));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(t,r){if(this._assertRequestHasHeaders(t),this._useStaleIfError()&&o9o(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let n=!1;if(r.status!==void 0&&r.status!=304?n=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?n=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(n=!0),!n)return{policy:new this.constructor(t,r),modified:r.status!=304,matches:!1};let a={};for(let l in this._resHeaders)a[l]=l in r.headers&&!s9o[l]?r.headers[l]:this._resHeaders[l];let o=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(t,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Egt=H((q8l,tGn)=>{"use strict";tGn.exports=e=>{let t={};for(let[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}});var nGn=H(($8l,rGn)=>{"use strict";var c9o=wt("stream").Readable,l9o=Egt(),zur=class extends c9o{constructor(t,r,n,a){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=l9o(r),this.body=n,this.url=a}_read(){this.push(this.body),this.push(null)}};rGn.exports=zur});var sGn=H((ejl,iGn)=>{"use strict";var u9o=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];iGn.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(u9o));for(let n of r)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var aGn=H((tjl,oGn)=>{"use strict";var g9o=wt("stream").PassThrough,A9o=sGn(),d9o=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new g9o;return A9o(e,t),e.pipe(t)};oGn.exports=d9o});var cGn=H(qur=>{qur.stringify=function e(t){if(typeof t>"u")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var r="",n=Array.isArray(t);r=n?"[":"{";var a=!0;for(var o in t){var l=typeof t[o]=="function"||!n&&typeof t[o]>"u";Object.hasOwnProperty.call(t,o)&&!l&&(a||(r+=","),a=!1,n?t[o]==null?r+="null":r+=e(t[o]):t[o]!==void 0&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}",r}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t>"u"?"null":JSON.stringify(t)};qur.parse=function(e){return JSON.parse(e,function(t,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var AGn=H((njl,gGn)=>{"use strict";var p9o=wt("events"),lGn=cGn(),f9o=e=>{let t={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(e.adapter||e.uri){let r=e.adapter||/^[^:+]*/.exec(e.uri)[0];return new(wt(t[r]))(e)}return new Map},uGn=["sqlite","postgres","mysql","mongo","redis","tiered"],$ur=class extends p9o{constructor(t,{emitErrors:r=!0,...n}={}){if(super(),this.opts={namespace:"keyv",serialize:lGn.stringify,deserialize:lGn.parse,...typeof t=="string"?{uri:t}:t,...n},!this.opts.store){let o={...this.opts};this.opts.store=f9o(o)}if(this.opts.compression){let o=this.opts.compression;this.opts.serialize=o.serialize.bind(o),this.opts.deserialize=o.deserialize.bind(o)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace;let a=o=>async function*(){for await(let[l,A]of typeof o=="function"?o(this.opts.store.namespace):o){let f=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!l.includes(this.opts.store.namespace))){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(l);continue}yield[this._getKeyUnprefix(l),f.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return uGn.includes(this.opts.store.opts.dialect)||uGn.findIndex(t=>this.opts.store.opts.url.includes(t))>=0}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}_getKeyPrefixArray(t){return t.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(t){return t.split(":").splice(1).join(":")}get(t,r){let{store:n}=this.opts,a=Array.isArray(t),o=a?this._getKeyPrefixArray(t):this._getKeyPrefix(t);if(a&&n.getMany===void 0){let l=[];for(let A of o)l.push(Promise.resolve().then(()=>n.get(A)).then(f=>typeof f=="string"?this.opts.deserialize(f):this.opts.compression?this.opts.deserialize(f):f).then(f=>{if(f!=null)return typeof f.expires=="number"&&Date.now()>f.expires?this.delete(A).then(()=>{}):r&&r.raw?f:f.value}));return Promise.allSettled(l).then(A=>{let f=[];for(let I of A)f.push(I.value);return f})}return Promise.resolve().then(()=>a?n.getMany(o):n.get(o)).then(l=>typeof l=="string"?this.opts.deserialize(l):this.opts.compression?this.opts.deserialize(l):l).then(l=>{if(l!=null)return a?l.map((A,f)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(t[f]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof l.expires=="number"&&Date.now()>l.expires?this.delete(t).then(()=>{}):r&&r.raw?l:l.value})}set(t,r,n){let a=this._getKeyPrefix(t);typeof n>"u"&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:o}=this.opts;return Promise.resolve().then(()=>{let l=typeof n=="number"?Date.now()+n:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:l},this.opts.serialize(r)}).then(l=>o.set(a,l,n)).then(()=>!0)}delete(t){let{store:r}=this.opts;if(Array.isArray(t)){let a=this._getKeyPrefixArray(t);if(r.deleteMany===void 0){let o=[];for(let l of a)o.push(r.delete(l));return Promise.allSettled(o).then(l=>l.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let n=this._getKeyPrefix(t);return Promise.resolve().then(()=>r.delete(n))}clear(){let{store:t}=this.opts;return Promise.resolve().then(()=>t.clear())}has(t){let r=this._getKeyPrefix(t),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has=="function"?n.has(r):await n.get(r)!==void 0)}disconnect(){let{store:t}=this.opts;if(typeof t.disconnect=="function")return t.disconnect()}};gGn.exports=$ur});var fGn=H((sjl,pGn)=>{"use strict";var I9o=wt("events"),Sgt=wt("url"),h9o=Wxn(),m9o=$xn(),egr=jur(),dGn=nGn(),C9o=Egt(),_9o=aGn(),y9o=AGn(),s5e=class e{constructor(t,r){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new y9o({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(r,n)=>{let a;if(typeof r=="string")a=tgr(Sgt.parse(r)),r={};else if(r instanceof Sgt.URL)a=tgr(Sgt.parse(r.toString())),r={};else{let[b,...E]=(r.path||"").split("?"),N=E.length>0?`?${E.join("?")}`:"";a=tgr({...r,pathname:b,search:N})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...b9o(a)},r.headers=C9o(r.headers);let o=new I9o,l=h9o(Sgt.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${l}`,f=!1,I=!1,C=b=>{I=!0;let E=!1,N,B=new Promise(Q=>{N=()=>{E||(E=!0,Q())}}),F=Q=>{if(f&&!b.forceRefresh){Q.status=Q.statusCode;let ae=egr.fromObject(f.cachePolicy).revalidatedPolicy(b,Q);if(!ae.modified){let ne=ae.policy.responseHeaders();Q=new dGn(f.statusCode,ne,f.body,f.url),Q.cachePolicy=ae.policy,Q.fromCache=!0}}Q.fromCache||(Q.cachePolicy=new egr(b,Q,b),Q.fromCache=!1);let X;b.cache&&Q.cachePolicy.storable()?(X=_9o(Q),(async()=>{try{let ae=m9o.buffer(Q);if(await Promise.race([B,new Promise(ue=>Q.once("end",ue))]),E)return;let ne=await ae,ce={cachePolicy:Q.cachePolicy.toObject(),url:Q.url,statusCode:Q.fromCache?f.statusCode:Q.statusCode,body:ne},fe=b.strictTtl?Q.cachePolicy.timeToLive():void 0;b.maxTtl&&(fe=fe?Math.min(fe,b.maxTtl):b.maxTtl),await this.cache.set(A,ce,fe)}catch(ae){o.emit("error",new e.CacheError(ae))}})()):b.cache&&f&&(async()=>{try{await this.cache.delete(A)}catch(ae){o.emit("error",new e.CacheError(ae))}})(),o.emit("response",X||Q),typeof n=="function"&&n(X||Q)};try{let Q=t(b,F);Q.once("error",N),Q.once("abort",N),o.emit("request",Q)}catch(Q){o.emit("error",new e.RequestError(Q))}};return(async()=>{let b=async N=>{await Promise.resolve();let B=N.cache?await this.cache.get(A):void 0;if(typeof B>"u")return C(N);let F=egr.fromObject(B.cachePolicy);if(F.satisfiesWithoutRevalidation(N)&&!N.forceRefresh){let Q=F.responseHeaders(),X=new dGn(B.statusCode,Q,B.body,B.url);X.cachePolicy=F,X.fromCache=!0,o.emit("response",X),typeof n=="function"&&n(X)}else f=B,N.headers=F.revalidationHeaders(N),C(N)},E=N=>o.emit("error",new e.CacheError(N));this.cache.once("error",E),o.on("response",()=>this.cache.removeListener("error",E));try{await b(r)}catch(N){r.automaticFailover&&!I&&C(r),o.emit("error",new e.CacheError(N))}})(),o}}};function b9o(e){let t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function tgr(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}s5e.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};s5e.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};pGn.exports=s5e});var hGn=H((cjl,IGn)=>{"use strict";var E9o=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];IGn.exports=(e,t)=>{if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(E9o)),n={};for(let a of r)a in t||(n[a]={get(){let o=e[a];return typeof o=="function"?o.bind(e):o},set(o){e[a]=o},enumerable:!0,configurable:!1});return Object.defineProperties(t,n),e.once("aborted",()=>{t.destroy(),t.emit("aborted")}),e.once("close",()=>{e.complete&&t.readable?t.once("end",()=>{t.emit("close")}):t.emit("close")}),t}});var CGn=H((ljl,mGn)=>{"use strict";var{Transform:S9o,PassThrough:v9o}=wt("stream"),rgr=wt("zlib"),B9o=hGn();mGn.exports=e=>{let t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;let r=t==="br";if(r&&typeof rgr.createBrotliDecompress!="function")return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;let n=!0,a=new S9o({transform(A,f,I){n=!1,I(null,A)},flush(A){A()}}),o=new v9o({autoDestroy:!1,destroy(A,f){e.destroy(),f(A)}}),l=r?rgr.createBrotliDecompress():rgr.createUnzip();return l.once("error",A=>{if(n&&!e.readable){o.end();return}o.destroy(A)}),B9o(e,o),e.pipe(a).pipe(l).pipe(o),o}});var igr=H((ujl,_Gn)=>{"use strict";var ngr=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){if(this.cache.set(t,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[n,a]of this.oldCache.entries())this.onEviction(n,a);this.oldCache=this.cache,this.cache=new Map}}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){let r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache)yield t;for(let t of this.oldCache){let[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}};_Gn.exports=ngr});var ogr=H((gjl,SGn)=>{"use strict";var w9o=wt("events"),T9o=wt("tls"),R9o=wt("http2"),N9o=igr(),wZ=Symbol("currentStreamsCount"),yGn=Symbol("request"),aM=Symbol("cachedOriginSet"),fve=Symbol("gracefullyClosing"),D9o=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],k9o=(e,t,r)=>{let n=0,a=e.length;for(;n>>1;r(e[o],t)?n=o+1:a=o}return n},x9o=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,sgr=(e,t)=>{for(let r of e)r[aM].lengtht[aM].includes(n))&&r[wZ]+t[wZ]<=t.remoteSettings.maxConcurrentStreams&&EGn(r)},G9o=(e,t)=>{for(let r of e)t[aM].lengthr[aM].includes(n))&&t[wZ]+r[wZ]<=r.remoteSettings.maxConcurrentStreams&&EGn(t)},bGn=({agent:e,isFree:t})=>{let r={};for(let n in e.sessions){let o=e.sessions[n].filter(l=>{let A=l[qfe.kCurrentStreamsCount]{e[fve]=!0,e[wZ]===0&&e.close()},qfe=class e extends w9o{constructor({timeout:t=6e4,maxSessions:r=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=t,this.maxSessions=r,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new N9o({maxSize:a})}static normalizeOrigin(t,r){return typeof t=="string"&&(t=new URL(t)),r&&t.hostname!==r&&(t.hostname=r),t.origin}normalizeOptions(t){let r="";if(t)for(let n of D9o)t[n]&&(r+=`:${t[n]}`);return r}_tryToCreateNewSession(t,r){if(!(t in this.queue)||!(r in this.queue[t]))return;let n=this.queue[t][r];this._sessionsCount{Array.isArray(n)?(n=[...n],a()):n=[{resolve:a,reject:o}];let l=this.normalizeOptions(r),A=e.normalizeOrigin(t,r&&r.servername);if(A===void 0){for(let{reject:C}of n)C(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(l in this.sessions){let C=this.sessions[l],b=-1,E=-1,N;for(let B of C){let F=B.remoteSettings.maxConcurrentStreams;if(F=F||B[fve]||B.destroyed)continue;N||(b=F),Q>E&&(N=B,E=Q)}}if(N){if(n.length!==1){for(let{reject:B}of n){let F=new Error(`Expected the length of listeners to be 1, got ${n.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return}n[0].resolve(N);return}}if(l in this.queue){if(A in this.queue[l]){this.queue[l][A].listeners.push(...n),this._tryToCreateNewSession(l,A);return}}else this.queue[l]={};let f=()=>{l in this.queue&&this.queue[l][A]===I&&(delete this.queue[l][A],Object.keys(this.queue[l]).length===0&&delete this.queue[l])},I=()=>{let C=`${A}:${l}`,b=!1;try{let E=R9o.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(C),...r});E[wZ]=0,E[fve]=!1;let N=()=>E[wZ]{this.tlsSessionCache.set(C,Q)}),E.once("error",Q=>{for(let{reject:X}of n)X(Q);this.tlsSessionCache.delete(C)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(b){B&&this._freeSessionsCount--,this._sessionsCount--;let Q=this.sessions[l];Q.splice(Q.indexOf(E),1),Q.length===0&&delete this.sessions[l]}else{let Q=new Error("Session closed without receiving a SETTINGS frame");Q.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:X}of n)X(Q);f()}this._tryToCreateNewSession(l,A)});let F=()=>{if(!(!(l in this.queue)||!N())){for(let Q of E[aM])if(Q in this.queue[l]){let{listeners:X}=this.queue[l][Q];for(;X.length!==0&&N();)X.shift().resolve(E);let ae=this.queue[l];if(ae[Q].listeners.length===0&&(delete ae[Q],Object.keys(ae).length===0)){delete this.queue[l];break}if(!N())break}}};E.on("origin",()=>{E[aM]=E.originSet,N()&&(F(),sgr(this.sessions[l],E))}),E.once("remoteSettings",()=>{if(E.ref(),E.unref(),this._sessionsCount++,I.destroyed){let Q=new Error("Agent has been destroyed");for(let X of n)X.reject(Q);E.destroy();return}E[aM]=E.originSet;{let Q=this.sessions;if(l in Q){let X=Q[l];X.splice(k9o(X,E,x9o),0,E)}else Q[l]=[E]}this._freeSessionsCount+=1,b=!0,this.emit("session",E),F(),f(),E[wZ]===0&&this._freeSessionsCount>this.maxFreeSessions&&E.close(),n.length!==0&&(this.getSession(A,r,n),n.length=0),E.on("remoteSettings",()=>{F(),sgr(this.sessions[l],E)})}),E[yGn]=E.request,E.request=(Q,X)=>{if(E[fve])throw new Error("The session is gracefully closing. No new streams are allowed.");let ae=E[yGn](Q,X);return E.ref(),++E[wZ],E[wZ]===E.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,ae.once("close",()=>{if(B=N(),--E[wZ],!E.destroyed&&!E.closed&&(G9o(this.sessions[l],E),N()&&!E.closed)){B||(this._freeSessionsCount++,B=!0);let ne=E[wZ]===0;ne&&E.unref(),ne&&(this._freeSessionsCount>this.maxFreeSessions||E[fve])?E.close():(sgr(this.sessions[l],E),F())}}),ae}}catch(E){for(let N of n)N.reject(E);f()}};I.listeners=n,I.completed=!1,I.destroyed=!1,this.queue[l][A]=I,this._tryToCreateNewSession(l,A)})}request(t,r,n,a){return new Promise((o,l)=>{this.getSession(t,r,[{reject:l,resolve:A=>{try{o(A.request(n,a))}catch(f){l(f)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let n=t.port||443,a=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=a),T9o.connect(n,a,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[wZ]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let n of r)n.destroy(t);for(let r of Object.values(this.queue))for(let n of Object.values(r))n.destroyed=!0;this.queue={}}get freeSessions(){return bGn({agent:this,isFree:!0})}get busySessions(){return bGn({agent:this,isFree:!1})}};qfe.kCurrentStreamsCount=wZ;qfe.kGracefullyClosing=fve;SGn.exports={Agent:qfe,globalAgent:new qfe}});var cgr=H((Ajl,vGn)=>{"use strict";var{Readable:F9o}=wt("stream"),agr=class extends F9o{constructor(t,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};vGn.exports=agr});var lgr=H((djl,BGn)=>{"use strict";BGn.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var TGn=H((pjl,wGn)=>{"use strict";wGn.exports=(e,t,r)=>{for(let n of r)e.on(n,(...a)=>t.emit(n,...a))}});var NGn=H((fjl,RGn)=>{"use strict";RGn.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var kGn=H((hjl,DGn)=>{"use strict";var Ive=(e,t,r)=>{DGn.exports[t]=class extends e{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${t}]`,this.code=t}}};Ive(TypeError,"ERR_INVALID_ARG_TYPE",e=>{let t=e[0].includes(".")?"property":"argument",r=e[1],n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`});Ive(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`);Ive(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`);Ive(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`);Ive(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`);Ive(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)});var pgr=H((mjl,PGn)=>{"use strict";var Z9o=wt("http2"),{Writable:L9o}=wt("stream"),{Agent:xGn,globalAgent:V9o}=ogr(),P9o=cgr(),W9o=lgr(),O9o=TGn(),M9o=NGn(),{ERR_INVALID_ARG_TYPE:ugr,ERR_INVALID_PROTOCOL:H9o,ERR_HTTP_HEADERS_SENT:GGn,ERR_INVALID_HTTP_TOKEN:Y9o,ERR_HTTP_INVALID_HEADER_VALUE:Q9o,ERR_INVALID_CHAR:X9o}=kGn(),{HTTP2_HEADER_STATUS:FGn,HTTP2_HEADER_METHOD:ZGn,HTTP2_HEADER_PATH:LGn,HTTP2_METHOD_CONNECT:J9o}=Z9o.constants,dG=Symbol("headers"),ggr=Symbol("origin"),Agr=Symbol("session"),VGn=Symbol("options"),vgt=Symbol("flushedHeaders"),o5e=Symbol("jobs"),U9o=/^[\^`\-\w!#$%&*+.|~]+$/,K9o=/[^\t\u0020-\u007E\u0080-\u00FF]/,dgr=class extends L9o{constructor(t,r,n){super({autoDestroy:!1});let a=typeof t=="string"||t instanceof URL;if(a&&(t=W9o(t instanceof URL?t:new URL(t))),typeof r=="function"||r===void 0?(n=r,r=a?t:{...t}):r={...t,...r},r.h2session)this[Agr]=r.h2session;else if(r.agent===!1)this.agent=new xGn({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new xGn({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=V9o;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ugr("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new H9o(r.protocol,"https:");let o=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,l=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[dG]=Object.create(null),this[o5e]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[f,I]of Object.entries(r.headers))this.setHeader(f,I);r.auth&&!("authorization"in this[dG])&&(this[dG].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[VGn]=r,o===443?(this[ggr]=`https://${l}`,":authority"in this[dG]||(this[dG][":authority"]=l)):(this[ggr]=`https://${l}:${o}`,":authority"in this[dG]||(this[dG][":authority"]=`${l}:${o}`)),A&&this.setTimeout(A),n&&this.once("response",n),this[vgt]=!1}get method(){return this[dG][ZGn]}set method(t){t&&(this[dG][ZGn]=t.toUpperCase())}get path(){return this[dG][LGn]}set path(t){t&&(this[dG][LGn]=t)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(t,r,n){if(this._mustNotHaveABody){n(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(t,r,n);this._request?a():this[o5e].push(a)}_final(t){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){t();return}this._request.end(t)};this._request?r():this[o5e].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(t,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(t)}async flushHeaders(){if(this[vgt]||this.destroyed)return;this[vgt]=!0;let t=this.method===J9o,r=n=>{if(this._request=n,this.destroyed){n.destroy();return}t||O9o(n,this,["timeout","continue","close","error"]);let a=l=>(...A)=>{!this.writable&&!this.destroyed?l(...A):this.once("finish",()=>{l(...A)})};n.once("response",a((l,A,f)=>{let I=new P9o(this.socket,n.readableHighWaterMark);this.res=I,I.req=this,I.statusCode=l[FGn],I.headers=l,I.rawHeaders=f,I.once("end",()=>{this.aborted?(I.aborted=!0,I.emit("aborted")):(I.complete=!0,I.socket=null,I.connection=null)}),t?(I.upgrade=!0,this.emit("connect",I,n,Buffer.alloc(0))?this.emit("close"):n.destroy()):(n.on("data",C=>{!I._dumped&&!I.push(C)&&n.pause()}),n.once("end",()=>{I.push(null)}),this.emit("response",I)||I._dump())})),n.once("headers",a(l=>this.emit("information",{statusCode:l[FGn]}))),n.once("trailers",a((l,A,f)=>{let{res:I}=this;I.trailers=l,I.rawTrailers=f}));let{socket:o}=n.session;this.socket=o,this.connection=o;for(let l of this[o5e])l();this.emit("socket",this.socket)};if(this[Agr])try{r(this[Agr].request(this[dG]))}catch(n){this.emit("error",n)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[ggr],this[VGn],this[dG]))}catch(n){this.emit("error",n)}}}getHeader(t){if(typeof t!="string")throw new ugr("name","string",t);return this[dG][t.toLowerCase()]}get headersSent(){return this[vgt]}removeHeader(t){if(typeof t!="string")throw new ugr("name","string",t);if(this.headersSent)throw new GGn("remove");delete this[dG][t.toLowerCase()]}setHeader(t,r){if(this.headersSent)throw new GGn("set");if(typeof t!="string"||!U9o.test(t)&&!M9o(t))throw new Y9o("Header name",t);if(typeof r>"u")throw new Q9o(r,t);if(K9o.test(r))throw new X9o("header content",t);this[dG][t.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(t,r){let n=()=>this._request.setTimeout(t,r);return this._request?n():this[o5e].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(t){}};PGn.exports=dgr});var OGn=H((Cjl,WGn)=>{"use strict";var j9o=wt("tls");WGn.exports=(e={},t=j9o.connect)=>new Promise((r,n)=>{let a=!1,o,l=async()=>{await f,o.off("timeout",A),o.off("error",n),e.resolveSocket?(r({alpnProtocol:o.alpnProtocol,socket:o,timeout:a}),a&&(await Promise.resolve(),o.emit("timeout"))):(o.destroy(),r({alpnProtocol:o.alpnProtocol,timeout:a}))},A=async()=>{a=!0,l()},f=(async()=>{try{o=await t(e,l),o.on("error",n),o.once("timeout",A)}catch(I){n(I)}})()})});var HGn=H((_jl,MGn)=>{"use strict";var z9o=wt("net");MGn.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?t=r:t=r.slice(1,-1):t=r.split(":",1)[0]),z9o.isIP(t)?"":t}});var XGn=H((yjl,Igr)=>{"use strict";var YGn=wt("http"),fgr=wt("https"),q9o=OGn(),$9o=igr(),eVo=pgr(),tVo=HGn(),rVo=lgr(),Bgt=new $9o({maxSize:100}),a5e=new Map,QGn=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};let n=()=>{e.emit("free",t,r)};t.on("free",n);let a=()=>{e.removeSocket(t,r)};t.on("close",a);let o=()=>{e.removeSocket(t,r),t.off("close",a),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)},nVo=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!Bgt.has(t)){if(a5e.has(t))return(await a5e.get(t)).alpnProtocol;let{path:r,agent:n}=e;e.path=e.socketPath;let a=q9o(e);a5e.set(t,a);try{let{socket:o,alpnProtocol:l}=await a;if(Bgt.set(t,l),e.path=r,l==="h2")o.destroy();else{let{globalAgent:A}=fgr,f=fgr.Agent.prototype.createConnection;n?n.createConnection===f?QGn(n,o,e):o.destroy():A.createConnection===f?QGn(A,o,e):o.destroy()}return a5e.delete(t),l}catch(o){throw a5e.delete(t),o}}return Bgt.get(t)};Igr.exports=async(e,t,r)=>{if((typeof e=="string"||e instanceof URL)&&(e=rVo(new URL(e))),typeof t=="function"&&(r=t,t=void 0),t={ALPNProtocols:["h2","http/1.1"],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||"https:";let n=t.protocol==="https:";t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||tVo(t),t.port=t.port||(n?443:80),t._defaultAgent=n?fgr.globalAgent:YGn.globalAgent;let a=t.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=a[n?"https":"http"]}return n&&await nVo(t)==="h2"?(a&&(t.agent=a.http2),new eVo(t,r)):YGn.request(t,r)};Igr.exports.protocolCache=Bgt});var UGn=H((bjl,JGn)=>{"use strict";var iVo=wt("http2"),sVo=ogr(),hgr=pgr(),oVo=cgr(),aVo=XGn(),cVo=(e,t,r)=>new hgr(e,t,r),lVo=(e,t,r)=>{let n=new hgr(e,t,r);return n.end(),n};JGn.exports={...iVo,ClientRequest:hgr,IncomingMessage:oVo,...sVo,request:cVo,get:lVo,auto:aVo}});var Cgr=H(mgr=>{"use strict";Object.defineProperty(mgr,"__esModule",{value:!0});var KGn=o$();mgr.default=e=>KGn.default.nodeStream(e)&&KGn.default.function_(e.getBoundary)});var $Gn=H(_gr=>{"use strict";Object.defineProperty(_gr,"__esModule",{value:!0});var zGn=wt("fs"),qGn=wt("util"),jGn=o$(),uVo=Cgr(),gVo=qGn.promisify(zGn.stat);_gr.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(jGn.default.string(e))return Buffer.byteLength(e);if(jGn.default.buffer(e))return e.length;if(uVo.default(e))return qGn.promisify(e.getLength.bind(e))();if(e instanceof zGn.ReadStream){let{size:r}=await gVo(e.path);return r===0?void 0:r}}});var bgr=H(ygr=>{"use strict";Object.defineProperty(ygr,"__esModule",{value:!0});function AVo(e,t,r){let n={};for(let a of r)n[a]=(...o)=>{t.emit(a,...o)},e.on(a,n[a]);return()=>{for(let a of r)e.off(a,n[a])}}ygr.default=AVo});var eFn=H(Egr=>{"use strict";Object.defineProperty(Egr,"__esModule",{value:!0});Egr.default=()=>{let e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(let t of e){let{origin:r,event:n,fn:a}=t;r.removeListener(n,a)}e.length=0}}}});var rFn=H(c5e=>{"use strict";Object.defineProperty(c5e,"__esModule",{value:!0});c5e.TimeoutError=void 0;var dVo=wt("net"),pVo=eFn(),tFn=Symbol("reentry"),fVo=()=>{},wgt=class extends Error{constructor(t,r){super(`Timeout awaiting '${r}' for ${t}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};c5e.TimeoutError=wgt;c5e.default=(e,t,r)=>{if(tFn in e)return fVo;e[tFn]=!0;let n=[],{once:a,unhandleAll:o}=pVo.default(),l=(b,E,N)=>{var B;let F=setTimeout(E,b,b,N);(B=F.unref)===null||B===void 0||B.call(F);let Q=()=>{clearTimeout(F)};return n.push(Q),Q},{host:A,hostname:f}=r,I=(b,E)=>{e.destroy(new wgt(b,E))},C=()=>{for(let b of n)b();o()};if(e.once("error",b=>{if(C(),e.listenerCount("error")===0)throw b}),e.once("close",C),a(e,"response",b=>{a(b,"end",C)}),typeof t.request<"u"&&l(t.request,I,"request"),typeof t.socket<"u"){let b=()=>{I(t.socket,"socket")};e.setTimeout(t.socket,b),n.push(()=>{e.removeListener("timeout",b)})}return a(e,"socket",b=>{var E;let{socketPath:N}=e;if(b.connecting){let B=!!(N??dVo.isIP((E=f??A)!==null&&E!==void 0?E:"")!==0);if(typeof t.lookup<"u"&&!B&&typeof b.address().address>"u"){let F=l(t.lookup,I,"lookup");a(b,"lookup",F)}if(typeof t.connect<"u"){let F=()=>l(t.connect,I,"connect");B?a(b,"connect",F()):a(b,"lookup",Q=>{Q===null&&a(b,"connect",F())})}typeof t.secureConnect<"u"&&r.protocol==="https:"&&a(b,"connect",()=>{let F=l(t.secureConnect,I,"secureConnect");a(b,"secureConnect",F)})}if(typeof t.send<"u"){let B=()=>l(t.send,I,"send");b.connecting?a(b,"connect",()=>{a(e,"upload-complete",B())}):a(e,"upload-complete",B())}}),typeof t.response<"u"&&a(e,"upload-complete",()=>{let b=l(t.response,I,"response");a(e,"response",b)}),C}});var iFn=H(Sgr=>{"use strict";Object.defineProperty(Sgr,"__esModule",{value:!0});var nFn=o$();Sgr.default=e=>{e=e;let t={protocol:e.protocol,hostname:nFn.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return nFn.default.string(e.port)&&e.port.length>0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var sFn=H(vgr=>{"use strict";Object.defineProperty(vgr,"__esModule",{value:!0});var IVo=wt("url"),hVo=["protocol","host","hostname","port","pathname","search"];vgr.default=(e,t)=>{var r,n;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${(n=(r=t.hostname)!==null&&r!==void 0?r:t.host)!==null&&n!==void 0?n:""}`}let a=new IVo.URL(e);if(t.path){let o=t.path.indexOf("?");o===-1?t.pathname=t.path:(t.pathname=t.path.slice(0,o),t.search=t.path.slice(o+1)),delete t.path}for(let o of hVo)t[o]&&(a[o]=t[o].toString());return a}});var oFn=H(wgr=>{"use strict";Object.defineProperty(wgr,"__esModule",{value:!0});var Bgr=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(t,r){typeof t=="object"?this.weakMap.set(t,r):this.map.set(t,r)}get(t){return typeof t=="object"?this.weakMap.get(t):this.map.get(t)}has(t){return typeof t=="object"?this.weakMap.has(t):this.map.has(t)}};wgr.default=Bgr});var Rgr=H(Tgr=>{"use strict";Object.defineProperty(Tgr,"__esModule",{value:!0});var mVo=async e=>{let t=[],r=0;for await(let n of e)t.push(n),r+=Buffer.byteLength(n);return Buffer.isBuffer(t[0])?Buffer.concat(t,r):Buffer.from(t.join(""))};Tgr.default=mVo});var cFn=H($fe=>{"use strict";Object.defineProperty($fe,"__esModule",{value:!0});$fe.dnsLookupIpVersionToFamily=$fe.isDnsLookupIpVersion=void 0;var aFn={auto:0,ipv4:4,ipv6:6};$fe.isDnsLookupIpVersion=e=>e in aFn;$fe.dnsLookupIpVersionToFamily=e=>{if($fe.isDnsLookupIpVersion(e))return aFn[e];throw new Error("Invalid DNS lookup IP version")}});var Ngr=H(Tgt=>{"use strict";Object.defineProperty(Tgt,"__esModule",{value:!0});Tgt.isResponseOk=void 0;Tgt.isResponseOk=e=>{let{statusCode:t}=e,r=e.request.options.followRedirect?299:399;return t>=200&&t<=r||t===304}});var uFn=H(Dgr=>{"use strict";Object.defineProperty(Dgr,"__esModule",{value:!0});var lFn=new Set;Dgr.default=e=>{lFn.has(e)||(lFn.add(e),process.emitWarning(`Got: ${e}`,{type:"DeprecationWarning"}))}});var gFn=H(kgr=>{"use strict";Object.defineProperty(kgr,"__esModule",{value:!0});var G1=o$(),CVo=(e,t)=>{if(G1.default.null_(e.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");G1.assert.any([G1.default.string,G1.default.undefined],e.encoding),G1.assert.any([G1.default.boolean,G1.default.undefined],e.resolveBodyOnly),G1.assert.any([G1.default.boolean,G1.default.undefined],e.methodRewriting),G1.assert.any([G1.default.boolean,G1.default.undefined],e.isStream),G1.assert.any([G1.default.string,G1.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType="text");let{retry:r}=e;if(t?e.retry={...t.retry}:e.retry={calculateDelay:n=>n.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},G1.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(n=>n.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):G1.default.number(r)&&(e.retry.limit=r),G1.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(G1.default.number))),G1.default.object(e.pagination)){t&&(e.pagination={...t.pagination,...e.pagination});let{pagination:n}=e;if(!G1.default.function_(n.transform))throw new Error("`options.pagination.transform` must be implemented");if(!G1.default.function_(n.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!G1.default.function_(n.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!G1.default.function_(n.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return e.responseType==="json"&&e.headers.accept===void 0&&(e.headers.accept="application/json"),e};kgr.default=CVo});var AFn=H(l5e=>{"use strict";Object.defineProperty(l5e,"__esModule",{value:!0});l5e.retryAfterStatusCodes=void 0;l5e.retryAfterStatusCodes=new Set([413,429,503]);var _Vo=({attemptCount:e,retryOptions:t,error:r,retryAfter:n})=>{if(e>t.limit)return 0;let a=t.methods.includes(r.options.method),o=t.errorCodes.includes(r.code),l=r.response&&t.statusCodes.includes(r.response.statusCode);if(!a||!o&&!l)return 0;if(r.response){if(n)return t.maxRetryAfter===void 0||n>t.maxRetryAfter?0:n;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(e-1)*1e3+A};l5e.default=_Vo});var A5e=H(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});O_.UnsupportedProtocolError=O_.ReadError=O_.TimeoutError=O_.UploadError=O_.CacheError=O_.HTTPError=O_.MaxRedirectsError=O_.RequestError=O_.setNonEnumerableProperties=O_.knownHookEvents=O_.withoutBody=O_.kIsNormalizedAlready=void 0;var dFn=wt("util"),pFn=wt("stream"),yVo=wt("fs"),yoe=wt("url"),fFn=wt("http"),xgr=wt("http"),bVo=wt("https"),EVo=Nxn(),SVo=Lxn(),IFn=fGn(),vVo=CGn(),BVo=UGn(),wVo=Egt(),va=o$(),TVo=$Gn(),hFn=Cgr(),RVo=bgr(),mFn=rFn(),NVo=iFn(),CFn=sFn(),DVo=oFn(),kVo=Rgr(),_Fn=cFn(),xVo=Ngr(),boe=uFn(),GVo=gFn(),FVo=AFn(),Ggr,vk=Symbol("request"),Dgt=Symbol("response"),hve=Symbol("responseSize"),mve=Symbol("downloadedSize"),Cve=Symbol("bodySize"),_ve=Symbol("uploadedSize"),Rgt=Symbol("serverResponsesPiped"),yFn=Symbol("unproxyEvents"),bFn=Symbol("isFromCache"),Fgr=Symbol("cancelTimeouts"),EFn=Symbol("startedReading"),yve=Symbol("stopReading"),Ngt=Symbol("triggerRead"),Eoe=Symbol("body"),u5e=Symbol("jobs"),SFn=Symbol("originalResponse"),vFn=Symbol("retryTimeout");O_.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ZVo=va.default.string(process.versions.brotli);O_.withoutBody=new Set(["GET","HEAD"]);O_.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function LVo(e){for(let t in e){let r=e[t];if(!va.default.string(r)&&!va.default.number(r)&&!va.default.boolean(r)&&!va.default.null_(r)&&!va.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function VVo(e){return va.default.object(e)&&!("statusCode"in e)}var Zgr=new DVo.default,PVo=async e=>new Promise((t,r)=>{let n=a=>{r(a)};e.pending||t(),e.once("error",n),e.once("ready",()=>{e.off("error",n),t()})}),WVo=new Set([300,301,302,303,304,307,308]),OVo=["context","body","json","form"];O_.setNonEnumerableProperties=(e,t)=>{let r={};for(let n of e)if(n)for(let a of OVo)a in n&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:n[a]});Object.defineProperties(t,r)};var jB=class extends Error{constructor(t,r,n){var a,o;if(super(t),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=(a=r.code)!==null&&a!==void 0?a:"ERR_GOT_REQUEST_ERROR",n instanceof Vgt?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[Dgt]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=(o=this.request)===null||o===void 0?void 0:o.timings,va.default.string(r.stack)&&va.default.string(this.stack)){let l=this.stack.indexOf(this.message)+this.message.length,A=this.stack.slice(l).split(` + }`,E=Rbo.attempt(()=>new Function(...f,`${C}return ${b}`)(...I));if(E.source=b,E instanceof Error)throw E;return E}hut.template=_Nn;hut.templateSettings=Iut});var far=H(par=>{"use strict";Object.defineProperty(par,Symbol.toStringTag,{value:"Module"});var Fbo=qy();function Zbo(e){return Fbo.toString(e).toLowerCase()}par.toLower=Zbo});var har=H(Iar=>{"use strict";Object.defineProperty(Iar,Symbol.toStringTag,{value:"Module"});var Lbo=qy();function Vbo(e){return Lbo.toString(e).toUpperCase()}Iar.toUpper=Vbo});var Car=H(mar=>{"use strict";Object.defineProperty(mar,Symbol.toStringTag,{value:"Module"});function Pbo(e,t){if(t===void 0)return e.trimEnd();let r=e.length;switch(typeof t){case"string":{if(t.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;r>0&&e[r-1]===t;)r--;break}case"object":for(;r>0&&t.includes(e[r-1]);)r--}return e.substring(0,r)}mar.trimEnd=Pbo});var yar=H(_ar=>{"use strict";Object.defineProperty(_ar,Symbol.toStringTag,{value:"Module"});function Wbo(e,t){if(t===void 0)return e.trimStart();let r=0;switch(typeof t){case"string":{for(;r{"use strict";Object.defineProperty(bar,Symbol.toStringTag,{value:"Module"});var Obo=Car(),Mbo=yar();function Hbo(e,t){return t===void 0?e.trim():Mbo.trimStart(Obo.trimEnd(e,t),t)}bar.trim=Hbo});var Bar=H(Sar=>{"use strict";Object.defineProperty(Sar,Symbol.toStringTag,{value:"Module"});var Ear=yNn();function Ybo(e,t,r){if(e==null)return"";if(r!=null||t==null)return e.toString().trim();switch(typeof t){case"object":return Array.isArray(t)?Ear.trim(e,t.flatMap(n=>n.toString().split(""))):Ear.trim(e,t.toString().split(""));default:return Ear.trim(e,t.toString().split(""))}}Sar.trim=Ybo});var Tar=H(war=>{"use strict";Object.defineProperty(war,Symbol.toStringTag,{value:"Module"});var Qbo=Car();function Xbo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimEnd():Qbo.trimEnd(e,t.toString().split(""))}war.trimEnd=Xbo});var Nar=H(Rar=>{"use strict";Object.defineProperty(Rar,Symbol.toStringTag,{value:"Module"});var Jbo=yar();function Ubo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimStart():Jbo.trimStart(e,t.toString().split(""))}Rar.trimStart=Ubo});var kar=H(Dar=>{"use strict";Object.defineProperty(Dar,Symbol.toStringTag,{value:"Module"});var Kbo=tM(),jbo=/[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;function zbo(e,t){e=e!=null?`${e}`:"";let r=30,n="...";Kbo.isObject(t)&&(r=qbo(t.length),n="omission"in t?`${t.omission}`:"...");let a=e.length,o=Array.from(n).length,l=Math.max(r-o,0),A;if(jbo.test(e)&&(A=Array.from(e),a=A.length),r>=a)return e;if(a<=o)return n;let I=A===void 0?e.slice(0,l):A?.slice(0,l).join(""),C=t?.separator;if(!C)return I+=n,I;let b=C instanceof RegExp?C.source:C,E="u"+(C instanceof RegExp?C.flags.replace("u",""):""),N=new RegExp(`(?.*(?:(?!${b}).))(?:${b})`,E).exec(I);return(N?.groups?N.groups.result:I)+n}function qbo(e){return e==null?30:e<=0?0:e}Dar.truncate=zbo});var bNn=H(xar=>{"use strict";Object.defineProperty(xar,Symbol.toStringTag,{value:"Module"});var $bo={"&":"&","<":"<",">":">",""":'"',"'":"'"};function eEo(e){return e.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,t=>$bo[t]||"'")}xar.unescape=eEo});var Far=H(Gar=>{"use strict";Object.defineProperty(Gar,Symbol.toStringTag,{value:"Module"});var tEo=bNn(),rEo=qy();function nEo(e){return tEo.unescape(rEo.toString(e))}Gar.unescape=nEo});var ENn=H(Zar=>{"use strict";Object.defineProperty(Zar,Symbol.toStringTag,{value:"Module"});var iEo=Hfe();function sEo(e){let t=iEo.words(e),r="";for(let n=0;n{"use strict";Object.defineProperty(Lar,Symbol.toStringTag,{value:"Module"});var oEo=t$(),aEo=ENn(),cEo=Yfe();function lEo(e){return aEo.upperCase(cEo.normalizeForCase(oEo.deburr(e)))}Lar.upperCase=lEo});var SNn=H(War=>{"use strict";Object.defineProperty(War,Symbol.toStringTag,{value:"Module"});function uEo(e){return e.substring(0,1).toUpperCase()+e.substring(1)}War.upperFirst=uEo});var Mar=H(Oar=>{"use strict";Object.defineProperty(Oar,Symbol.toStringTag,{value:"Module"});var gEo=SNn(),AEo=qy();function dEo(e){return gEo.upperFirst(AEo.toString(e))}Oar.upperFirst=dEo});var Yar=H(Har=>{"use strict";Object.defineProperty(Har,Symbol.toStringTag,{value:"Module"});var pEo=qy(),fEo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7",USe="\\p{Lu}",NNn="\\p{Ll}",DNn="(?:[\\p{Lm}\\p{Lo}]\\p{M}*)",X3e="\\d",vNn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",BNn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",wNn=`[\\p{Z}\\p{P}${fEo}]`,IEo=`(?:${USe}|${DNn})`,TNn=`(?:${NNn}|${DNn})`,RNn=RegExp([`${USe}?${NNn}+${vNn}(?=${wNn}|${USe}|$)`,`${IEo}+${BNn}(?=${wNn}|${USe}${TNn}|$)`,`${USe}?${TNn}+${vNn}`,`${USe}+${BNn}`,`${X3e}*(?:1ST|2ND|3RD|(?![123])${X3e}TH)(?=\\b|[a-z_])`,`${X3e}*(?:1st|2nd|3rd|(?![123])${X3e}th)(?=\\b|[A-Z_])`,`${X3e}+`,"\\p{Emoji_Presentation}","\\p{Extended_Pictographic}"].join("|"),"gu");function hEo(e,t=RNn,r){let n=pEo.toString(e);return r&&(t=RNn),typeof t=="number"&&(t=t.toString()),Array.from(n.match(t)??[]).filter(o=>o!=="")}Har.words=hEo});var Xar=H(Qar=>{"use strict";Object.defineProperty(Qar,Symbol.toStringTag,{value:"Module"});var mEo=im(),CEo=coe();function _Eo(e){let t=e.length,r=e.map(n=>{let a=n[0],o=n[1];if(!CEo.isFunction(o))throw new TypeError("Expected a function");return[mEo.iteratee(a),o]});return function(...n){for(let a=0;a{"use strict";Object.defineProperty(Jar,Symbol.toStringTag,{value:"Module"});function yEo(e){return()=>e}Jar.constant=yEo});var jar=H(Kar=>{"use strict";Object.defineProperty(Kar,Symbol.toStringTag,{value:"Module"});function bEo(e,t){return e==null||Number.isNaN(e)?t:e}Kar.defaultTo=bEo});var qar=H(zar=>{"use strict";Object.defineProperty(zar,Symbol.toStringTag,{value:"Module"});var kNn=Q9();function EEo(e,t){return typeof e=="string"&&typeof t=="string"?e>t:kNn.toNumber(e)>kNn.toNumber(t)}zar.gt=EEo});var ecr=H($ar=>{"use strict";Object.defineProperty($ar,Symbol.toStringTag,{value:"Module"});var xNn=Q9();function SEo(e,t){return typeof e=="string"&&typeof t=="string"?e>=t:xNn.toNumber(e)>=xNn.toNumber(t)}$ar.gte=SEo});var U3e=H(tcr=>{"use strict";Object.defineProperty(tcr,Symbol.toStringTag,{value:"Module"});var vEo=$5(),BEo=Kq(),wEo=zq(),GNn=eM();function TEo(e,t,...r){if(r=r.flat(1),e!=null)switch(typeof t){case"string":return typeof e=="object"&&Object.hasOwn(e,t)?J3e(e,[t],r):J3e(e,vEo.toPath(t),r);case"number":case"symbol":return J3e(e,[t],r);default:return Array.isArray(t)?J3e(e,t,r):J3e(e,[t],r)}}function J3e(e,t,r){let n=GNn.get(e,t.slice(0,-1),e);if(n==null)return;let a=wEo.last(t),o=a?.valueOf();return typeof o=="number"?a=BEo.toKey(o):a=String(a),GNn.get(n,a)?.apply(n,r)}tcr.invoke=TEo});var ncr=H(rcr=>{"use strict";Object.defineProperty(rcr,Symbol.toStringTag,{value:"Module"});var FNn=Q9();function REo(e,t){return typeof e=="string"&&typeof t=="string"?e{"use strict";Object.defineProperty(icr,Symbol.toStringTag,{value:"Module"});var ZNn=Q9();function NEo(e,t){return typeof e=="string"&&typeof t=="string"?e<=t:ZNn.toNumber(e)<=ZNn.toNumber(t)}icr.lte=NEo});var acr=H(ocr=>{"use strict";Object.defineProperty(ocr,Symbol.toStringTag,{value:"Module"});var DEo=U3e();function kEo(e,...t){return function(r){return DEo.invoke(r,e,t)}}ocr.method=kEo});var lcr=H(ccr=>{"use strict";Object.defineProperty(ccr,Symbol.toStringTag,{value:"Module"});var xEo=U3e();function GEo(e,...t){return function(r){return xEo.invoke(e,r,t)}}ccr.methodOf=GEo});var gcr=H(ucr=>{"use strict";Object.defineProperty(ucr,Symbol.toStringTag,{value:"Module"});function FEo(){return Date.now()}ucr.now=FEo});var dcr=H(Acr=>{"use strict";Object.defineProperty(Acr,Symbol.toStringTag,{value:"Module"});var ZEo=im();function LEo(...e){e.length===1&&Array.isArray(e[0])&&(e=e[0]);let t=e.map(r=>ZEo.iteratee(r));return function(...r){return t.map(n=>n.apply(this,r))}}Acr.over=LEo});var fcr=H(pcr=>{"use strict";Object.defineProperty(pcr,Symbol.toStringTag,{value:"Module"});var LNn=im();function VEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(Icr,Symbol.toStringTag,{value:"Module"});var VNn=im();function PEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(mcr,Symbol.toStringTag,{value:"Module"});function WEo(){return[]}mcr.stubArray=WEo});var ycr=H(_cr=>{"use strict";Object.defineProperty(_cr,Symbol.toStringTag,{value:"Module"});function OEo(){return!1}_cr.stubFalse=OEo});var Ecr=H(bcr=>{"use strict";Object.defineProperty(bcr,Symbol.toStringTag,{value:"Module"});function MEo(){return{}}bcr.stubObject=MEo});var vcr=H(Scr=>{"use strict";Object.defineProperty(Scr,Symbol.toStringTag,{value:"Module"});function HEo(){return""}Scr.stubString=HEo});var wcr=H(Bcr=>{"use strict";Object.defineProperty(Bcr,Symbol.toStringTag,{value:"Module"});function YEo(){return!0}Bcr.stubTrue=YEo});var PNn=H(Tcr=>{"use strict";Object.defineProperty(Tcr,Symbol.toStringTag,{value:"Module"});var QEo=4294967295;Tcr.MAX_ARRAY_LENGTH=QEo});var Ncr=H(Rcr=>{"use strict";Object.defineProperty(Rcr,Symbol.toStringTag,{value:"Module"});var XEo=PNn(),JEo=Ofe();function UEo(e){if(e==null)return 0;let t=Math.floor(Number(e));return JEo.clamp(t,0,XEo.MAX_ARRAY_LENGTH)}Rcr.toLength=UEo});var kcr=H(Dcr=>{"use strict";Object.defineProperty(Dcr,Symbol.toStringTag,{value:"Module"});var KEo=iX();function jEo(e){let t={},r=KEo.keysIn(e);for(let n=0;n{"use strict";Object.defineProperty(xcr,Symbol.toStringTag,{value:"Module"});var zEo=$w(),WNn=$or(),qEo=Ofe();function $Eo(e){return e==null?0:qEo.clamp(zEo.toInteger(e),-WNn.MAX_SAFE_INTEGER,WNn.MAX_SAFE_INTEGER)}xcr.toSafeInteger=$Eo});var Zcr=H(Fcr=>{"use strict";Object.defineProperty(Fcr,Symbol.toStringTag,{value:"Module"});var e1o=0;function t1o(e=""){let t=++e1o;return`${e}${t}`}Fcr.uniqueId=t1o});var JNn=H(Kn=>{"use strict";Object.defineProperty(Kn,Symbol.toStringTag,{value:"Module"});var r1o=E7t(),n1o=R7t(),i1o=k7t(),s1o=F7t(),o1o=pzt(),a1o=Czt(),c1o=Blt(),l1o=wlt(),u1o=xzt(),g1o=Zzt(),A1o=Pzt(),d1o=Mzt(),ONn=Nlt(),MNn=Xzt(),p1o=Kzt(),f1o=$zt(),I1o=Dlt(),h1o=rqt(),m1o=sqt(),C1o=aqt(),_1o=lqt(),HNn=Aqt(),y1o=mqt(),b1o=yqt(),E1o=D3e(),S1o=Pfe(),v1o=Eqt(),B1o=YSe(),w1o=Bqt(),T1o=Tqt(),R1o=Nqt(),N1o=xqt(),D1o=Lqt(),k1o=xlt(),x1o=Glt(),G1o=Jqt(),F1o=Kqt(),Z1o=qqt(),L1o=zq(),V1o=e$t(),P1o=N3e(),W1o=r$t(),O1o=Zlt(),M1o=a$t(),H1o=g$t(),Y1o=d$t(),Q1o=f$t(),X1o=h$t(),J1o=E$t(),U1o=Flt(),K1o=v$t(),j1o=T$t(),z1o=D$t(),q1o=x$t(),$1o=Z$t(),e2o=J$t(),t2o=$$t(),r2o=ter(),n2o=ner(),i2o=ser(),s2o=aer(),o2o=Mlt(),a2o=L3e(),c2o=mer(),l2o=Ylt(),u2o=Hlt(),g2o=ber(),A2o=ver(),d2o=Ter(),p2o=Der(),f2o=Ger(),I2o=Zer(),h2o=Ver(),m2o=Xlt(),C2o=Jlt(),_2o=k3e(),y2o=Jer(),b2o=Ker(),E2o=Ult(),S2o=etr(),v2o=ntr(),B2o=str(),w2o=ltr(),T2o=gtr(),R2o=Itr(),N2o=Ctr(),D2o=Etr(),k2o=vtr(),x2o=wtr(),G2o=jlt(),F2o=zlt(),Z2o=Dtr(),L2o=Gtr(),V2o=Ltr(),P2o=Wtr(),W2o=Htr(),O2o=qlt(),M2o=Jtr(),H2o=Ktr(),Y2o=ztr(),Q2o=rrr(),X2o=srr(),J2o=crr(),U2o=F3e(),K2o=urr(),j2o=drr(),z2o=frr(),q2o=mrr(),$2o=yrr(),eSo=Err(),tSo=Brr(),rSo=Trr(),nSo=Nrr(),iSo=krr(),sSo=Grr(),oSo=Zrr(),aSo=Prr(),cSo=Ofe(),lSo=Orr(),uSo=Hrr(),gSo=Xrr(),ASo=Urr(),dSo=zrr(),pSo=tnr(),fSo=snr(),ISo=anr(),hSo=unr(),mSo=Anr(),CSo=pnr(),_So=Inr(),ySo=Cnr(),bSo=bnr(),ESo=Snr(),SSo=Bnr(),vSo=nut(),BSo=rut(),wSo=xnr(),TSo=HK(),RSo=Fnr(),NSo=Onr(),YNn=Ynr(),QNn=Xnr(),DSo=Unr(),kSo=Llt(),xSo=out(),GSo=WSe(),FSo=v3e(),ZSo=qnr(),LSo=eir(),VSo=Y3e(),PSo=iir(),WSo=air(),OSo=lir(),MSo=gir(),HSo=dir(),YSo=fir(),QSo=hir(),XSo=Cir(),JSo=yir(),USo=Eir(),KSo=eM(),jSo=B3e(),zSo=vir(),qSo=Tir(),$So=Nir(),evo=YK(),tvo=iX(),rvo=xir(),nvo=Zir(),ivo=Mir(),svo=lut(),ovo=Qir(),avo=Jir(),cvo=Kir(),lvo=zir(),uvo=nX(),gvo=$ir(),Avo=tsr(),dvo=P3e(),pvo=nsr(),fvo=ssr(),Ivo=gsr(),hvo=dsr(),mvo=Isr(),Cvo=G3e(),_vo=msr(),yvo=XSe(),bvo=Plt(),Evo=_sr(),Svo=bsr(),vvo=Ssr(),Bvo=Elt(),wvo=Bsr(),Tvo=Tsr(),Rvo=Nsr(),Nvo=xsr(),Dvo=Aut(),kvo=Vfe(),xvo=$q(),Gvo=Zsr(),Fvo=Sf(),Zvo=b2(),Lvo=Vsr(),Vvo=gut(),Pvo=Osr(),Wvo=Hsr(),Ovo=Qsr(),Mvo=Ksr(),Hvo=zsr(),Yvo=$sr(),Qvo=tor(),Xvo=Vlt(),Jvo=_3e(),Uvo=Olt(),Kvo=QSe(),jvo=V3e(),zvo=tM(),qvo=ioe(),$vo=Mfe(),eBo=ior(),tBo=oor(),rBo=lor(),nBo=HSe(),iBo=soe(),sBo=e$(),oBo=Aor(),aBo=Ior(),cBo=OK(),lBo=MK(),uBo=_or(),gBo=bor(),ABo=Tor(),dBo=t$(),pBo=Nor(),fBo=put(),IBo=For(),hBo=Vor(),mBo=Oor(),CBo=Yor(),_Bo=Jor(),yBo=Kor(),bBo=zor(),EBo=tar(),SBo=nar(),vBo=oar(),BBo=car(),wBo=uar(),TBo=Aar(),XNn=dar(),RBo=far(),NBo=har(),DBo=Bar(),kBo=Tar(),xBo=Nar(),GBo=kar(),FBo=Far(),ZBo=Par(),LBo=Mar(),VBo=Yar(),PBo=Xar(),WBo=Uar(),OBo=jar(),MBo=Sk(),HBo=qar(),YBo=ecr(),QBo=U3e(),XBo=im(),JBo=ncr(),UBo=scr(),KBo=acr(),jBo=lcr(),zBo=gcr(),qBo=dcr(),$Bo=fcr(),ewo=hcr(),two=Ccr(),rwo=ycr(),nwo=Ecr(),iwo=vcr(),swo=wcr(),owo=H3e(),awo=Z3e(),cwo=MSe(),lwo=$w(),uwo=Ncr(),gwo=Q9(),Awo=$5(),dwo=kcr(),pwo=Gcr(),fwo=qy(),Iwo=Zcr();Kn.castArray=r1o.castArray;Kn.chunk=n1o.chunk;Kn.compact=i1o.compact;Kn.concat=s1o.concat;Kn.countBy=o1o.countBy;Kn.difference=a1o.difference;Kn.differenceBy=c1o.differenceBy;Kn.differenceWith=l1o.differenceWith;Kn.drop=u1o.drop;Kn.dropRight=g1o.dropRight;Kn.dropRightWhile=A1o.dropRightWhile;Kn.dropWhile=d1o.dropWhile;Kn.each=ONn.forEach;Kn.forEach=ONn.forEach;Kn.eachRight=MNn.forEachRight;Kn.forEachRight=MNn.forEachRight;Kn.every=p1o.every;Kn.fill=f1o.fill;Kn.filter=I1o.filter;Kn.find=h1o.find;Kn.findIndex=m1o.findIndex;Kn.findLast=C1o.findLast;Kn.findLastIndex=_1o.findLastIndex;Kn.first=HNn.head;Kn.head=HNn.head;Kn.flatMap=y1o.flatMap;Kn.flatMapDeep=b1o.flatMapDeep;Kn.flatMapDepth=E1o.flatMapDepth;Kn.flatten=S1o.flatten;Kn.flattenDeep=v1o.flattenDeep;Kn.flattenDepth=B1o.flattenDepth;Kn.groupBy=w1o.groupBy;Kn.includes=T1o.includes;Kn.indexOf=R1o.indexOf;Kn.initial=N1o.initial;Kn.intersection=D1o.intersection;Kn.intersectionBy=k1o.intersectionBy;Kn.intersectionWith=x1o.intersectionWith;Kn.invokeMap=G1o.invokeMap;Kn.join=F1o.join;Kn.keyBy=Z1o.keyBy;Kn.last=L1o.last;Kn.lastIndexOf=V1o.lastIndexOf;Kn.map=P1o.map;Kn.nth=W1o.nth;Kn.orderBy=O1o.orderBy;Kn.partition=M1o.partition;Kn.pull=H1o.pull;Kn.pullAll=Y1o.pullAll;Kn.pullAllBy=Q1o.pullAllBy;Kn.pullAllWith=X1o.pullAllWith;Kn.pullAt=J1o.pullAt;Kn.reduce=U1o.reduce;Kn.reduceRight=K1o.reduceRight;Kn.reject=j1o.reject;Kn.remove=z1o.remove;Kn.reverse=q1o.reverse;Kn.sample=$1o.sample;Kn.sampleSize=e2o.sampleSize;Kn.shuffle=t2o.shuffle;Kn.size=r2o.size;Kn.slice=n2o.slice;Kn.some=i2o.some;Kn.sortBy=s2o.sortBy;Kn.sortedIndex=o2o.sortedIndex;Kn.sortedIndexBy=a2o.sortedIndexBy;Kn.sortedIndexOf=c2o.sortedIndexOf;Kn.sortedLastIndex=l2o.sortedLastIndex;Kn.sortedLastIndexBy=u2o.sortedLastIndexBy;Kn.sortedLastIndexOf=g2o.sortedLastIndexOf;Kn.tail=A2o.tail;Kn.take=d2o.take;Kn.takeRight=p2o.takeRight;Kn.takeRightWhile=f2o.takeRightWhile;Kn.takeWhile=I2o.takeWhile;Kn.union=h2o.union;Kn.unionBy=m2o.unionBy;Kn.unionWith=C2o.unionWith;Kn.uniq=_2o.uniq;Kn.uniqBy=y2o.uniqBy;Kn.uniqWith=b2o.uniqWith;Kn.unzip=E2o.unzip;Kn.unzipWith=S2o.unzipWith;Kn.without=v2o.without;Kn.xor=B2o.xor;Kn.xorBy=w2o.xorBy;Kn.xorWith=T2o.xorWith;Kn.zip=R2o.zip;Kn.zipObject=N2o.zipObject;Kn.zipObjectDeep=D2o.zipObjectDeep;Kn.zipWith=k2o.zipWith;Kn.after=x2o.after;Kn.ary=G2o.ary;Kn.attempt=F2o.attempt;Kn.before=Z2o.before;Kn.bind=L2o.bind;Kn.bindKey=V2o.bindKey;Kn.curry=P2o.curry;Kn.curryRight=W2o.curryRight;Kn.debounce=O2o.debounce;Kn.defer=M2o.defer;Kn.delay=H2o.delay;Kn.flip=Y2o.flip;Kn.flow=Q2o.flow;Kn.flowRight=X2o.flowRight;Kn.memoize=J2o.memoize;Kn.negate=U2o.negate;Kn.nthArg=K2o.nthArg;Kn.once=j2o.once;Kn.overArgs=z2o.overArgs;Kn.partial=q2o.partial;Kn.partialRight=$2o.partialRight;Kn.rearg=eSo.rearg;Kn.rest=tSo.rest;Kn.spread=rSo.spread;Kn.throttle=nSo.throttle;Kn.unary=iSo.unary;Kn.wrap=sSo.wrap;Kn.add=oSo.add;Kn.ceil=aSo.ceil;Kn.clamp=cSo.clamp;Kn.divide=lSo.divide;Kn.floor=uSo.floor;Kn.inRange=gSo.inRange;Kn.max=ASo.max;Kn.maxBy=dSo.maxBy;Kn.mean=pSo.mean;Kn.meanBy=fSo.meanBy;Kn.min=ISo.min;Kn.minBy=hSo.minBy;Kn.multiply=mSo.multiply;Kn.parseInt=CSo.parseInt;Kn.random=_So.random;Kn.range=ySo.range;Kn.rangeRight=bSo.rangeRight;Kn.round=ESo.round;Kn.subtract=SSo.subtract;Kn.sum=vSo.sum;Kn.sumBy=BSo.sumBy;Kn.isEqual=wSo.isEqual;Kn.identity=TSo.identity;Kn.noop=RSo.noop;Kn.assign=NSo.assign;Kn.assignIn=YNn.assignIn;Kn.extend=YNn.assignIn;Kn.assignInWith=QNn.assignInWith;Kn.extendWith=QNn.assignInWith;Kn.assignWith=DSo.assignWith;Kn.at=kSo.at;Kn.clone=xSo.clone;Kn.cloneDeep=GSo.cloneDeep;Kn.cloneDeepWith=FSo.cloneDeepWith;Kn.cloneWith=ZSo.cloneWith;Kn.create=LSo.create;Kn.defaults=VSo.defaults;Kn.defaultsDeep=PSo.defaultsDeep;Kn.findKey=WSo.findKey;Kn.findLastKey=OSo.findLastKey;Kn.forIn=MSo.forIn;Kn.forInRight=HSo.forInRight;Kn.forOwn=YSo.forOwn;Kn.forOwnRight=QSo.forOwnRight;Kn.fromPairs=XSo.fromPairs;Kn.functions=JSo.functions;Kn.functionsIn=USo.functionsIn;Kn.get=KSo.get;Kn.has=jSo.has;Kn.hasIn=zSo.hasIn;Kn.invert=qSo.invert;Kn.invertBy=$So.invertBy;Kn.keys=evo.keys;Kn.keysIn=tvo.keysIn;Kn.mapKeys=rvo.mapKeys;Kn.mapValues=nvo.mapValues;Kn.merge=ivo.merge;Kn.mergeWith=svo.mergeWith;Kn.omit=ovo.omit;Kn.omitBy=avo.omitBy;Kn.pick=cvo.pick;Kn.pickBy=lvo.pickBy;Kn.property=uvo.property;Kn.propertyOf=gvo.propertyOf;Kn.result=Avo.result;Kn.set=dvo.set;Kn.setWith=pvo.setWith;Kn.toDefaulted=fvo.toDefaulted;Kn.toPairs=Ivo.toPairs;Kn.toPairsIn=hvo.toPairsIn;Kn.transform=mvo.transform;Kn.unset=Cvo.unset;Kn.update=_vo.update;Kn.updateWith=yvo.updateWith;Kn.values=bvo.values;Kn.valuesIn=Evo.valuesIn;Kn.isFunction=Svo.isFunction;Kn.isLength=vvo.isLength;Kn.isMatchWith=Bvo.isMatchWith;Kn.isNative=wvo.isNative;Kn.isNull=Tvo.isNull;Kn.isUndefined=Rvo.isUndefined;Kn.conforms=Nvo.conforms;Kn.conformsTo=Dvo.conformsTo;Kn.isArguments=kvo.isArguments;Kn.isArray=xvo.isArray;Kn.isArrayBuffer=Gvo.isArrayBuffer;Kn.isArrayLike=Fvo.isArrayLike;Kn.isArrayLikeObject=Zvo.isArrayLikeObject;Kn.isBoolean=Lvo.isBoolean;Kn.isBuffer=Vvo.isBuffer;Kn.isDate=Pvo.isDate;Kn.isElement=Wvo.isElement;Kn.isEmpty=Ovo.isEmpty;Kn.isEqualWith=Mvo.isEqualWith;Kn.isError=Hvo.isError;Kn.isFinite=Yvo.isFinite;Kn.isInteger=Qvo.isInteger;Kn.isMap=Xvo.isMap;Kn.isMatch=Jvo.isMatch;Kn.isNaN=Uvo.isNaN;Kn.isNil=Kvo.isNil;Kn.isNumber=jvo.isNumber;Kn.isObject=zvo.isObject;Kn.isObjectLike=qvo.isObjectLike;Kn.isPlainObject=$vo.isPlainObject;Kn.isRegExp=eBo.isRegExp;Kn.isSafeInteger=tBo.isSafeInteger;Kn.isSet=rBo.isSet;Kn.isString=nBo.isString;Kn.isSymbol=iBo.isSymbol;Kn.isTypedArray=sBo.isTypedArray;Kn.isWeakMap=oBo.isWeakMap;Kn.isWeakSet=aBo.isWeakSet;Kn.matches=cBo.matches;Kn.matchesProperty=lBo.matchesProperty;Kn.capitalize=uBo.capitalize;Kn.bindAll=gBo.bindAll;Kn.camelCase=ABo.camelCase;Kn.deburr=dBo.deburr;Kn.endsWith=pBo.endsWith;Kn.escape=fBo.escape;Kn.escapeRegExp=IBo.escapeRegExp;Kn.kebabCase=hBo.kebabCase;Kn.lowerCase=mBo.lowerCase;Kn.lowerFirst=CBo.lowerFirst;Kn.pad=_Bo.pad;Kn.padEnd=yBo.padEnd;Kn.padStart=bBo.padStart;Kn.repeat=EBo.repeat;Kn.replace=SBo.replace;Kn.snakeCase=vBo.snakeCase;Kn.split=BBo.split;Kn.startCase=wBo.startCase;Kn.startsWith=TBo.startsWith;Kn.template=XNn.template;Kn.templateSettings=XNn.templateSettings;Kn.toLower=RBo.toLower;Kn.toUpper=NBo.toUpper;Kn.trim=DBo.trim;Kn.trimEnd=kBo.trimEnd;Kn.trimStart=xBo.trimStart;Kn.truncate=GBo.truncate;Kn.unescape=FBo.unescape;Kn.upperCase=ZBo.upperCase;Kn.upperFirst=LBo.upperFirst;Kn.words=VBo.words;Kn.cond=PBo.cond;Kn.constant=WBo.constant;Kn.defaultTo=OBo.defaultTo;Kn.eq=MBo.isEqualsSameValueZero;Kn.gt=HBo.gt;Kn.gte=YBo.gte;Kn.invoke=QBo.invoke;Kn.iteratee=XBo.iteratee;Kn.lt=JBo.lt;Kn.lte=UBo.lte;Kn.method=KBo.method;Kn.methodOf=jBo.methodOf;Kn.now=zBo.now;Kn.over=qBo.over;Kn.overEvery=$Bo.overEvery;Kn.overSome=ewo.overSome;Kn.stubArray=two.stubArray;Kn.stubFalse=rwo.stubFalse;Kn.stubObject=nwo.stubObject;Kn.stubString=iwo.stubString;Kn.stubTrue=swo.stubTrue;Kn.times=owo.times;Kn.toArray=awo.toArray;Kn.toFinite=cwo.toFinite;Kn.toInteger=lwo.toInteger;Kn.toLength=uwo.toLength;Kn.toNumber=gwo.toNumber;Kn.toPath=Awo.toPath;Kn.toPlainObject=dwo.toPlainObject;Kn.toSafeInteger=pwo.toSafeInteger;Kn.toString=fwo.toString;Kn.uniqueId=Iwo.uniqueId});var UNn=H(Lcr=>{"use strict";Object.defineProperty(Lcr,Symbol.toStringTag,{value:"Module"});var hwo=JNn(),KSe=e=>e;Object.assign(KSe,hwo);KSe.partial.placeholder=KSe;KSe.partialRight.placeholder=KSe;Lcr.toolkit=KSe});var kW=H(Jn=>{"use strict";Object.defineProperties(Jn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var mwo=E7t(),Cwo=R7t(),_wo=k7t(),ywo=F7t(),bwo=pzt(),Ewo=Czt(),Swo=Blt(),vwo=wlt(),Bwo=xzt(),wwo=Zzt(),Two=Pzt(),Rwo=Mzt(),KNn=Nlt(),jNn=Xzt(),Nwo=Kzt(),Dwo=$zt(),kwo=Dlt(),xwo=rqt(),Gwo=sqt(),Fwo=aqt(),Zwo=lqt(),zNn=Aqt(),Lwo=mqt(),Vwo=yqt(),Pwo=D3e(),Wwo=Pfe(),Owo=Eqt(),Mwo=YSe(),Hwo=Bqt(),Ywo=Tqt(),Qwo=Nqt(),Xwo=xqt(),Jwo=Lqt(),Uwo=xlt(),Kwo=Glt(),jwo=Jqt(),zwo=Kqt(),qwo=qqt(),$wo=zq(),eTo=e$t(),tTo=N3e(),rTo=r$t(),nTo=Zlt(),iTo=a$t(),sTo=g$t(),oTo=d$t(),aTo=f$t(),cTo=h$t(),lTo=E$t(),uTo=Flt(),gTo=v$t(),ATo=T$t(),dTo=D$t(),pTo=x$t(),fTo=Z$t(),ITo=J$t(),hTo=$$t(),mTo=ter(),CTo=ner(),_To=ser(),yTo=aer(),bTo=Mlt(),ETo=L3e(),STo=mer(),vTo=Ylt(),BTo=Hlt(),wTo=ber(),TTo=ver(),RTo=Ter(),NTo=Der(),DTo=Ger(),kTo=Zer(),xTo=Ver(),GTo=Xlt(),FTo=Jlt(),ZTo=k3e(),LTo=Jer(),VTo=Ker(),PTo=Ult(),WTo=etr(),OTo=ntr(),MTo=str(),HTo=ltr(),YTo=gtr(),QTo=Itr(),XTo=Ctr(),JTo=Etr(),UTo=vtr(),KTo=wtr(),jTo=jlt(),zTo=zlt(),qTo=Dtr(),$To=Gtr(),eRo=Ltr(),tRo=Wtr(),rRo=Htr(),nRo=qlt(),iRo=Jtr(),sRo=Ktr(),oRo=ztr(),aRo=rrr(),cRo=srr(),lRo=crr(),uRo=F3e(),gRo=urr(),ARo=drr(),dRo=frr(),pRo=mrr(),fRo=yrr(),IRo=Err(),hRo=Brr(),mRo=Trr(),CRo=Nrr(),_Ro=krr(),yRo=Grr(),bRo=Zrr(),ERo=Prr(),SRo=Ofe(),vRo=Orr(),BRo=Hrr(),wRo=Xrr(),TRo=Urr(),RRo=zrr(),NRo=tnr(),DRo=snr(),kRo=anr(),xRo=unr(),GRo=Anr(),FRo=pnr(),ZRo=Inr(),LRo=Cnr(),VRo=bnr(),PRo=Snr(),WRo=Bnr(),ORo=nut(),MRo=rut(),HRo=xnr(),YRo=HK(),QRo=Fnr(),XRo=Onr(),qNn=Ynr(),$Nn=Xnr(),JRo=Unr(),URo=Llt(),KRo=out(),jRo=WSe(),zRo=v3e(),qRo=qnr(),$Ro=eir(),eNo=Y3e(),tNo=iir(),rNo=air(),nNo=lir(),iNo=gir(),sNo=dir(),oNo=fir(),aNo=hir(),cNo=Cir(),lNo=yir(),uNo=Eir(),gNo=eM(),ANo=B3e(),dNo=vir(),pNo=Tir(),fNo=Nir(),INo=YK(),hNo=iX(),mNo=xir(),CNo=Zir(),_No=Mir(),yNo=lut(),bNo=Qir(),ENo=Jir(),SNo=Kir(),vNo=zir(),BNo=nX(),wNo=$ir(),TNo=tsr(),RNo=P3e(),NNo=nsr(),DNo=ssr(),kNo=gsr(),xNo=dsr(),GNo=Isr(),FNo=G3e(),ZNo=msr(),LNo=XSe(),VNo=Plt(),PNo=_sr(),WNo=bsr(),ONo=Ssr(),MNo=Elt(),HNo=Bsr(),YNo=Tsr(),QNo=Nsr(),XNo=xsr(),JNo=Aut(),UNo=Vfe(),KNo=$q(),jNo=Zsr(),zNo=Sf(),qNo=b2(),$No=Vsr(),eDo=gut(),tDo=Osr(),rDo=Hsr(),nDo=Qsr(),iDo=Ksr(),sDo=zsr(),oDo=$sr(),aDo=tor(),cDo=Vlt(),lDo=_3e(),uDo=Olt(),gDo=QSe(),ADo=V3e(),dDo=tM(),pDo=ioe(),fDo=Mfe(),IDo=ior(),hDo=oor(),mDo=lor(),CDo=HSe(),_Do=soe(),yDo=e$(),bDo=Aor(),EDo=Ior(),SDo=OK(),vDo=MK(),BDo=_or(),wDo=bor(),TDo=Tor(),RDo=t$(),NDo=Nor(),DDo=put(),kDo=For(),xDo=Vor(),GDo=Oor(),FDo=Yor(),ZDo=Jor(),LDo=Kor(),VDo=zor(),PDo=tar(),WDo=nar(),ODo=oar(),MDo=car(),HDo=uar(),YDo=Aar(),eDn=dar(),QDo=far(),XDo=har(),JDo=Bar(),UDo=Tar(),KDo=Nar(),jDo=kar(),zDo=Far(),qDo=Par(),$Do=Mar(),eko=Yar(),tko=Xar(),rko=Uar(),nko=jar(),iko=Sk(),sko=qar(),oko=ecr(),ako=U3e(),cko=im(),lko=ncr(),uko=scr(),gko=acr(),Ako=lcr(),dko=gcr(),pko=dcr(),fko=fcr(),Iko=hcr(),hko=Ccr(),mko=ycr(),Cko=Ecr(),_ko=vcr(),yko=wcr(),bko=H3e(),Eko=Z3e(),Sko=MSe(),vko=$w(),Bko=Ncr(),wko=Q9(),Tko=$5(),Rko=kcr(),Nko=Gcr(),Dko=qy(),kko=Zcr(),xko=UNn();Jn.castArray=mwo.castArray;Jn.chunk=Cwo.chunk;Jn.compact=_wo.compact;Jn.concat=ywo.concat;Jn.countBy=bwo.countBy;Jn.difference=Ewo.difference;Jn.differenceBy=Swo.differenceBy;Jn.differenceWith=vwo.differenceWith;Jn.drop=Bwo.drop;Jn.dropRight=wwo.dropRight;Jn.dropRightWhile=Two.dropRightWhile;Jn.dropWhile=Rwo.dropWhile;Jn.each=KNn.forEach;Jn.forEach=KNn.forEach;Jn.eachRight=jNn.forEachRight;Jn.forEachRight=jNn.forEachRight;Jn.every=Nwo.every;Jn.fill=Dwo.fill;Jn.filter=kwo.filter;Jn.find=xwo.find;Jn.findIndex=Gwo.findIndex;Jn.findLast=Fwo.findLast;Jn.findLastIndex=Zwo.findLastIndex;Jn.first=zNn.head;Jn.head=zNn.head;Jn.flatMap=Lwo.flatMap;Jn.flatMapDeep=Vwo.flatMapDeep;Jn.flatMapDepth=Pwo.flatMapDepth;Jn.flatten=Wwo.flatten;Jn.flattenDeep=Owo.flattenDeep;Jn.flattenDepth=Mwo.flattenDepth;Jn.groupBy=Hwo.groupBy;Jn.includes=Ywo.includes;Jn.indexOf=Qwo.indexOf;Jn.initial=Xwo.initial;Jn.intersection=Jwo.intersection;Jn.intersectionBy=Uwo.intersectionBy;Jn.intersectionWith=Kwo.intersectionWith;Jn.invokeMap=jwo.invokeMap;Jn.join=zwo.join;Jn.keyBy=qwo.keyBy;Jn.last=$wo.last;Jn.lastIndexOf=eTo.lastIndexOf;Jn.map=tTo.map;Jn.nth=rTo.nth;Jn.orderBy=nTo.orderBy;Jn.partition=iTo.partition;Jn.pull=sTo.pull;Jn.pullAll=oTo.pullAll;Jn.pullAllBy=aTo.pullAllBy;Jn.pullAllWith=cTo.pullAllWith;Jn.pullAt=lTo.pullAt;Jn.reduce=uTo.reduce;Jn.reduceRight=gTo.reduceRight;Jn.reject=ATo.reject;Jn.remove=dTo.remove;Jn.reverse=pTo.reverse;Jn.sample=fTo.sample;Jn.sampleSize=ITo.sampleSize;Jn.shuffle=hTo.shuffle;Jn.size=mTo.size;Jn.slice=CTo.slice;Jn.some=_To.some;Jn.sortBy=yTo.sortBy;Jn.sortedIndex=bTo.sortedIndex;Jn.sortedIndexBy=ETo.sortedIndexBy;Jn.sortedIndexOf=STo.sortedIndexOf;Jn.sortedLastIndex=vTo.sortedLastIndex;Jn.sortedLastIndexBy=BTo.sortedLastIndexBy;Jn.sortedLastIndexOf=wTo.sortedLastIndexOf;Jn.tail=TTo.tail;Jn.take=RTo.take;Jn.takeRight=NTo.takeRight;Jn.takeRightWhile=DTo.takeRightWhile;Jn.takeWhile=kTo.takeWhile;Jn.union=xTo.union;Jn.unionBy=GTo.unionBy;Jn.unionWith=FTo.unionWith;Jn.uniq=ZTo.uniq;Jn.uniqBy=LTo.uniqBy;Jn.uniqWith=VTo.uniqWith;Jn.unzip=PTo.unzip;Jn.unzipWith=WTo.unzipWith;Jn.without=OTo.without;Jn.xor=MTo.xor;Jn.xorBy=HTo.xorBy;Jn.xorWith=YTo.xorWith;Jn.zip=QTo.zip;Jn.zipObject=XTo.zipObject;Jn.zipObjectDeep=JTo.zipObjectDeep;Jn.zipWith=UTo.zipWith;Jn.after=KTo.after;Jn.ary=jTo.ary;Jn.attempt=zTo.attempt;Jn.before=qTo.before;Jn.bind=$To.bind;Jn.bindKey=eRo.bindKey;Jn.curry=tRo.curry;Jn.curryRight=rRo.curryRight;Jn.debounce=nRo.debounce;Jn.defer=iRo.defer;Jn.delay=sRo.delay;Jn.flip=oRo.flip;Jn.flow=aRo.flow;Jn.flowRight=cRo.flowRight;Jn.memoize=lRo.memoize;Jn.negate=uRo.negate;Jn.nthArg=gRo.nthArg;Jn.once=ARo.once;Jn.overArgs=dRo.overArgs;Jn.partial=pRo.partial;Jn.partialRight=fRo.partialRight;Jn.rearg=IRo.rearg;Jn.rest=hRo.rest;Jn.spread=mRo.spread;Jn.throttle=CRo.throttle;Jn.unary=_Ro.unary;Jn.wrap=yRo.wrap;Jn.add=bRo.add;Jn.ceil=ERo.ceil;Jn.clamp=SRo.clamp;Jn.divide=vRo.divide;Jn.floor=BRo.floor;Jn.inRange=wRo.inRange;Jn.max=TRo.max;Jn.maxBy=RRo.maxBy;Jn.mean=NRo.mean;Jn.meanBy=DRo.meanBy;Jn.min=kRo.min;Jn.minBy=xRo.minBy;Jn.multiply=GRo.multiply;Jn.parseInt=FRo.parseInt;Jn.random=ZRo.random;Jn.range=LRo.range;Jn.rangeRight=VRo.rangeRight;Jn.round=PRo.round;Jn.subtract=WRo.subtract;Jn.sum=ORo.sum;Jn.sumBy=MRo.sumBy;Jn.isEqual=HRo.isEqual;Jn.identity=YRo.identity;Jn.noop=QRo.noop;Jn.assign=XRo.assign;Jn.assignIn=qNn.assignIn;Jn.extend=qNn.assignIn;Jn.assignInWith=$Nn.assignInWith;Jn.extendWith=$Nn.assignInWith;Jn.assignWith=JRo.assignWith;Jn.at=URo.at;Jn.clone=KRo.clone;Jn.cloneDeep=jRo.cloneDeep;Jn.cloneDeepWith=zRo.cloneDeepWith;Jn.cloneWith=qRo.cloneWith;Jn.create=$Ro.create;Jn.defaults=eNo.defaults;Jn.defaultsDeep=tNo.defaultsDeep;Jn.findKey=rNo.findKey;Jn.findLastKey=nNo.findLastKey;Jn.forIn=iNo.forIn;Jn.forInRight=sNo.forInRight;Jn.forOwn=oNo.forOwn;Jn.forOwnRight=aNo.forOwnRight;Jn.fromPairs=cNo.fromPairs;Jn.functions=lNo.functions;Jn.functionsIn=uNo.functionsIn;Jn.get=gNo.get;Jn.has=ANo.has;Jn.hasIn=dNo.hasIn;Jn.invert=pNo.invert;Jn.invertBy=fNo.invertBy;Jn.keys=INo.keys;Jn.keysIn=hNo.keysIn;Jn.mapKeys=mNo.mapKeys;Jn.mapValues=CNo.mapValues;Jn.merge=_No.merge;Jn.mergeWith=yNo.mergeWith;Jn.omit=bNo.omit;Jn.omitBy=ENo.omitBy;Jn.pick=SNo.pick;Jn.pickBy=vNo.pickBy;Jn.property=BNo.property;Jn.propertyOf=wNo.propertyOf;Jn.result=TNo.result;Jn.set=RNo.set;Jn.setWith=NNo.setWith;Jn.toDefaulted=DNo.toDefaulted;Jn.toPairs=kNo.toPairs;Jn.toPairsIn=xNo.toPairsIn;Jn.transform=GNo.transform;Jn.unset=FNo.unset;Jn.update=ZNo.update;Jn.updateWith=LNo.updateWith;Jn.values=VNo.values;Jn.valuesIn=PNo.valuesIn;Jn.isFunction=WNo.isFunction;Jn.isLength=ONo.isLength;Jn.isMatchWith=MNo.isMatchWith;Jn.isNative=HNo.isNative;Jn.isNull=YNo.isNull;Jn.isUndefined=QNo.isUndefined;Jn.conforms=XNo.conforms;Jn.conformsTo=JNo.conformsTo;Jn.isArguments=UNo.isArguments;Jn.isArray=KNo.isArray;Jn.isArrayBuffer=jNo.isArrayBuffer;Jn.isArrayLike=zNo.isArrayLike;Jn.isArrayLikeObject=qNo.isArrayLikeObject;Jn.isBoolean=$No.isBoolean;Jn.isBuffer=eDo.isBuffer;Jn.isDate=tDo.isDate;Jn.isElement=rDo.isElement;Jn.isEmpty=nDo.isEmpty;Jn.isEqualWith=iDo.isEqualWith;Jn.isError=sDo.isError;Jn.isFinite=oDo.isFinite;Jn.isInteger=aDo.isInteger;Jn.isMap=cDo.isMap;Jn.isMatch=lDo.isMatch;Jn.isNaN=uDo.isNaN;Jn.isNil=gDo.isNil;Jn.isNumber=ADo.isNumber;Jn.isObject=dDo.isObject;Jn.isObjectLike=pDo.isObjectLike;Jn.isPlainObject=fDo.isPlainObject;Jn.isRegExp=IDo.isRegExp;Jn.isSafeInteger=hDo.isSafeInteger;Jn.isSet=mDo.isSet;Jn.isString=CDo.isString;Jn.isSymbol=_Do.isSymbol;Jn.isTypedArray=yDo.isTypedArray;Jn.isWeakMap=bDo.isWeakMap;Jn.isWeakSet=EDo.isWeakSet;Jn.matches=SDo.matches;Jn.matchesProperty=vDo.matchesProperty;Jn.capitalize=BDo.capitalize;Jn.bindAll=wDo.bindAll;Jn.camelCase=TDo.camelCase;Jn.deburr=RDo.deburr;Jn.endsWith=NDo.endsWith;Jn.escape=DDo.escape;Jn.escapeRegExp=kDo.escapeRegExp;Jn.kebabCase=xDo.kebabCase;Jn.lowerCase=GDo.lowerCase;Jn.lowerFirst=FDo.lowerFirst;Jn.pad=ZDo.pad;Jn.padEnd=LDo.padEnd;Jn.padStart=VDo.padStart;Jn.repeat=PDo.repeat;Jn.replace=WDo.replace;Jn.snakeCase=ODo.snakeCase;Jn.split=MDo.split;Jn.startCase=HDo.startCase;Jn.startsWith=YDo.startsWith;Jn.template=eDn.template;Jn.templateSettings=eDn.templateSettings;Jn.toLower=QDo.toLower;Jn.toUpper=XDo.toUpper;Jn.trim=JDo.trim;Jn.trimEnd=UDo.trimEnd;Jn.trimStart=KDo.trimStart;Jn.truncate=jDo.truncate;Jn.unescape=zDo.unescape;Jn.upperCase=qDo.upperCase;Jn.upperFirst=$Do.upperFirst;Jn.words=eko.words;Jn.cond=tko.cond;Jn.constant=rko.constant;Jn.defaultTo=nko.defaultTo;Jn.eq=iko.isEqualsSameValueZero;Jn.gt=sko.gt;Jn.gte=oko.gte;Jn.invoke=ako.invoke;Jn.iteratee=cko.iteratee;Jn.lt=lko.lt;Jn.lte=uko.lte;Jn.method=gko.method;Jn.methodOf=Ako.methodOf;Jn.now=dko.now;Jn.over=pko.over;Jn.overEvery=fko.overEvery;Jn.overSome=Iko.overSome;Jn.stubArray=hko.stubArray;Jn.stubFalse=mko.stubFalse;Jn.stubObject=Cko.stubObject;Jn.stubString=_ko.stubString;Jn.stubTrue=yko.stubTrue;Jn.times=bko.times;Jn.toArray=Eko.toArray;Jn.toFinite=Sko.toFinite;Jn.toInteger=vko.toInteger;Jn.toLength=Bko.toLength;Jn.toNumber=wko.toNumber;Jn.toPath=Tko.toPath;Jn.toPlainObject=Rko.toPlainObject;Jn.toSafeInteger=Nko.toSafeInteger;Jn.toString=Dko.toString;Jn.uniqueId=kko.uniqueId;Jn.default=xko.toolkit});var xW=H((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.CachingStrategy=exports.DefaultStream=exports.AsyncActions=exports.BufferStream=void 0;exports.isTaggedYarnVersion=isTaggedYarnVersion;exports.plural=plural;exports.escapeRegExp=escapeRegExp;exports.overrideType=overrideType;exports.assertNever=assertNever;exports.validateEnum=validateEnum;exports.mapAndFilter=mapAndFilter;exports.mapAndFind=mapAndFind;exports.isIndexableObject=isIndexableObject;exports.allSettledSafe=allSettledSafe;exports.convertMapsToIndexableObjects=convertMapsToIndexableObjects;exports.getFactoryWithDefault=getFactoryWithDefault;exports.getArrayWithDefault=getArrayWithDefault;exports.getSetWithDefault=getSetWithDefault;exports.getMapWithDefault=getMapWithDefault;exports.releaseAfterUseAsync=releaseAfterUseAsync;exports.prettifyAsyncErrors=prettifyAsyncErrors;exports.prettifySyncErrors=prettifySyncErrors;exports.bufferStream=bufferStream;exports.makeDeferred=makeDeferred;exports.dynamicRequire=dynamicRequire;exports.sortMap=sortMap;exports.buildIgnorePattern=buildIgnorePattern;exports.replaceEnvVariables=replaceEnvVariables;exports.parseBoolean=parseBoolean;exports.parseOptionalBoolean=parseOptionalBoolean;exports.tryParseOptionalBoolean=tryParseOptionalBoolean;exports.isPathLike=isPathLike;exports.mergeIntoTarget=mergeIntoTarget;exports.toMerged=toMerged;exports.groupBy=groupBy;exports.parseInt=parseInt;exports.parseDuration=parseDuration;var tslib_1=(Pa(),vi(Va)),fslib_1=no(),clipanion_1=($c(),vi(rg)),compat_1=kW(),micromatch_1=tslib_1.__importDefault(Ek()),p_limit_1=tslib_1.__importDefault(Dfe()),semver_1=tslib_1.__importDefault(UC()),stream_1=wt("stream");function isTaggedYarnVersion(e){return!!(semver_1.default.valid(e)&&e.match(/^[^-]+(-rc\.[0-9]+)?$/))}function plural(e,{one:t,more:r,zero:n=r}){return e===0?n:e===1?t:r}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function overrideType(e){}function assertNever(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function validateEnum(e,t){let r=Object.values(e);if(!r.includes(t))throw new clipanion_1.UsageError(`Invalid value for enumeration: ${JSON.stringify(t)} (expected one of ${r.map(n=>JSON.stringify(n)).join(", ")})`);return t}function mapAndFilter(e,t){let r=[];for(let n of e){let a=t(n);a!==mapAndFilterSkip&&r.push(a)}return r}var mapAndFilterSkip=Symbol();mapAndFilter.skip=mapAndFilterSkip;function mapAndFind(e,t){for(let r of e){let n=t(r);if(n!==mapAndFindSkip)return n}}var mapAndFindSkip=Symbol();mapAndFind.skip=mapAndFindSkip;function isIndexableObject(e){return typeof e=="object"&&e!==null}async function allSettledSafe(e){let t=await Promise.allSettled(e),r=[];for(let n of t){if(n.status==="rejected")throw n.reason;r.push(n.value)}return r}function convertMapsToIndexableObjects(e){if(e instanceof Map&&(e=Object.fromEntries(e)),isIndexableObject(e))for(let t of Object.keys(e)){let r=e[t];isIndexableObject(r)&&(e[t]=convertMapsToIndexableObjects(r))}return e}function getFactoryWithDefault(e,t,r){let n=e.get(t);return typeof n>"u"&&e.set(t,n=r()),n}function getArrayWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=[]),r}function getSetWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Set),r}function getMapWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Map),r}async function releaseAfterUseAsync(e,t){if(t==null)return await e();try{return await e()}finally{await t()}}async function prettifyAsyncErrors(e,t){try{return await e()}catch(r){throw r.message=t(r.message),r}}function prettifySyncErrors(e,t){try{return e()}catch(r){throw r.message=t(r.message),r}}async function bufferStream(e){return await new Promise((t,r)=>{let n=[];e.on("error",a=>{r(a)}),e.on("data",a=>{n.push(a)}),e.on("end",()=>{t(Buffer.concat(n))})})}var BufferStream=class extends stream_1.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};exports.BufferStream=BufferStream;function makeDeferred(){let e,t;return{promise:new Promise((n,a)=>{e=n,t=a}),resolve:e,reject:t}}var AsyncActions=class{constructor(t){this.deferred=new Map,this.promises=new Map,this.limit=(0,p_limit_1.default)(t)}set(t,r){let n=this.deferred.get(t);typeof n>"u"&&this.deferred.set(t,n=makeDeferred());let a=this.limit(()=>r());return this.promises.set(t,a),a.then(()=>{this.promises.get(t)===a&&n.resolve()},o=>{this.promises.get(t)===a&&n.reject(o)}),n.promise}reduce(t,r){let n=this.promises.get(t)??Promise.resolve();this.set(t,()=>r(n))}async wait(){await Promise.all(this.promises.values())}};exports.AsyncActions=AsyncActions;var DefaultStream=class extends stream_1.Transform{constructor(t=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=t}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}};exports.DefaultStream=DefaultStream;var realRequire=eval("require");function dynamicRequireNode(e){return realRequire(fslib_1.npath.fromPortablePath(e))}function dynamicRequireNoCache(path){let physicalPath=fslib_1.npath.fromPortablePath(path),currentCacheEntry=realRequire.cache[physicalPath];delete realRequire.cache[physicalPath];let result;try{result=dynamicRequireNode(physicalPath);let freshCacheEntry=realRequire.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children?dynamicModule.children.indexOf(freshCacheEntry):-1;freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{realRequire.cache[physicalPath]=currentCacheEntry}return result}var dynamicRequireFsTimeCache=new Map;function dynamicRequireFsTime(e){let t=dynamicRequireFsTimeCache.get(e),r=fslib_1.xfs.statSync(e);if(t?.mtime===r.mtimeMs)return t.instance;let n=dynamicRequireNoCache(e);return dynamicRequireFsTimeCache.set(e,{mtime:r.mtimeMs,instance:n}),n}var CachingStrategy;(function(e){e[e.NoCache=0]="NoCache",e[e.FsTime=1]="FsTime",e[e.Node=2]="Node"})(CachingStrategy||(exports.CachingStrategy=CachingStrategy={}));function dynamicRequire(e,{cachingStrategy:t=CachingStrategy.Node}={}){switch(t){case CachingStrategy.NoCache:return dynamicRequireNoCache(e);case CachingStrategy.FsTime:return dynamicRequireFsTime(e);case CachingStrategy.Node:return dynamicRequireNode(e);default:throw new Error("Unsupported caching strategy")}}function sortMap(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function buildIgnorePattern(e){return e.length===0?null:e.map(t=>`(${micromatch_1.default.makeRe(t,{windows:!1,dot:!0}).source})`).join("|")}function replaceEnvVariables(e,{env:t}){let r="",n=0,a=0,o=e.matchAll(/\\(?[\\$}])|\$\{(?[a-zA-Z]\w*)(?:-|-|(?=\}))|(?\$\{)|\}/g),l=()=>{let A=a;for(let{0:f,index:I,groups:{variable:C}={}}of o)if(C)a++;else if(f==="}"&&--a0)throw new clipanion_1.UsageError(`Incomplete variable substitution in input: ${e}`);return r+e.slice(n)}function parseBoolean(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}function parseOptionalBoolean(e){return typeof e>"u"?e:parseBoolean(e)}function tryParseOptionalBoolean(e){try{return parseOptionalBoolean(e)}catch{return null}}function isPathLike(e){return!!(fslib_1.npath.isAbsolute(e)||e.match(/^(\.{1,2}|~)\//))}function mergeIntoTarget(e,...t){let r=l=>({value:l}),n=r(e),a=t.map(l=>r(l)),{value:o}=(0,compat_1.mergeWith)(n,...a,(l,A)=>{if(Array.isArray(l)&&Array.isArray(A)){for(let f of A)l.find(I=>(0,compat_1.isEqual)(I,f))||l.push(f);return l}});return o}function toMerged(...e){return mergeIntoTarget({},...e)}function groupBy(e,t){let r=Object.create(null);for(let n of e){let a=n[t];r[a]??=[],r[a].push(n)}return r}function parseInt(e){return typeof e=="string"?Number.parseInt(e,10):e}var DURATION_UNITS={ms:1,s:1e3,m:60*1e3,h:60*60*1e3,d:24*60*60*1e3,w:7*24*60*60*1e3},DURATION_REGEXP=new RegExp(`^(?\\d*\\.?\\d+)(?${Object.keys(DURATION_UNITS).join("|")})?$`);function parseDuration(e,t){let r=DURATION_REGEXP.exec(e)?.groups;if(!r)throw new Error(`Couldn't parse "${e}" as a duration`);if(r.unit===void 0)return parseFloat(r.num);let n=DURATION_UNITS[r.unit];if(!n)throw new Error(`Invalid duration unit "${r.unit}"`);return parseFloat(r.num)*n/DURATION_UNITS[t]}});var Qfe=H(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});loe.PackageExtensionStatus=loe.PackageExtensionType=loe.LinkType=void 0;var tDn;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(tDn||(loe.LinkType=tDn={}));var rDn;(function(e){e.Dependency="Dependency",e.PeerDependency="PeerDependency",e.PeerDependencyMeta="PeerDependencyMeta"})(rDn||(loe.PackageExtensionType=rDn={}));var nDn;(function(e){e.Inactive="inactive",e.Redundant="redundant",e.Active="active"})(nDn||(loe.PackageExtensionStatus=nDn={}))});var rM=H(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});Wu.LogLevel=Wu.supportsHyperlinks=Wu.supportsColor=Wu.Style=Wu.Type=Wu.stripAnsi=void 0;Wu.tuple=Vko;Wu.applyStyle=aDn;Wu.applyColor=eb;Wu.applyHyperlink=cDn;Wu.pretty=Xfe;Wu.prettyList=Wko;Wu.json=lDn;Wu.jsonOrPretty=Oko;Wu.mark=Mko;Wu.prettyField=Hko;Wu.prettyTruncatedLocatorList=Yko;Wu.addLogFilterSupport=Qko;var zSe=(Pa(),vi(Va)),iDn=no(),yut=zSe.__importDefault(VK()),Cut=zSe.__importDefault(Nfe()),Gko=($c(),vi(rg)),Fko=zSe.__importDefault(Ek()),oDn=zSe.__importDefault(q5());Wu.stripAnsi=oDn.default;var mut=M9(),Zko=zSe.__importStar(xW()),DE=zSe.__importStar(uG()),jSe=Qfe();Wu.Type={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"};var but;(function(e){e[e.BOLD=2]="BOLD"})(but||(Wu.Style=but={}));var Pcr=Cut.default.GITHUB_ACTIONS?{level:2}:yut.default.supportsColor?{level:yut.default.supportsColor.level}:{level:0};Wu.supportsColor=Pcr.level!==0;Wu.supportsHyperlinks=Wu.supportsColor&&!Cut.default.GITHUB_ACTIONS&&!Cut.default.CIRCLE&&!Cut.default.GITLAB;var Vcr=new yut.default.Instance(Pcr),Lko=new Map([[Wu.Type.NO_HINT,null],[Wu.Type.NULL,["#a853b5",129]],[Wu.Type.SCOPE,["#d75f00",166]],[Wu.Type.NAME,["#d7875f",173]],[Wu.Type.RANGE,["#00afaf",37]],[Wu.Type.REFERENCE,["#87afff",111]],[Wu.Type.NUMBER,["#ffd700",220]],[Wu.Type.STRING,["#b4bd68",32]],[Wu.Type.BOOLEAN,["#faa023",209]],[Wu.Type.PATH,["#d75fd7",170]],[Wu.Type.URL,["#d75fd7",170]],[Wu.Type.ADDED,["#5faf00",70]],[Wu.Type.REMOVED,["#ff3131",160]],[Wu.Type.CODE,["#87afff",111]],[Wu.Type.SIZE,["#ffd700",220]]]),lG=e=>e;function sDn(e){let t=["KiB","MiB","GiB","TiB"],r=t.length;for(;r>1&&e<1024**r;)r-=1;let n=1024**r;return`${Math.floor(e*100/n)/100} ${t[r-1]}`}function _ut(e,t){if(Array.isArray(t))return t.length===0?eb(e,"[]",Wu.Type.CODE):eb(e,"[ ",Wu.Type.CODE)+t.map(r=>_ut(e,r)).join(", ")+eb(e," ]",Wu.Type.CODE);if(typeof t=="string")return eb(e,JSON.stringify(t),Wu.Type.STRING);if(typeof t=="number")return eb(e,JSON.stringify(t),Wu.Type.NUMBER);if(typeof t=="boolean")return eb(e,JSON.stringify(t),Wu.Type.BOOLEAN);if(t===null)return eb(e,"null",Wu.Type.NULL);if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){let r=Object.entries(t);return r.length===0?eb(e,"{}",Wu.Type.CODE):eb(e,"{ ",Wu.Type.CODE)+r.map(([n,a])=>`${_ut(e,n)}: ${_ut(e,a)}`).join(", ")+eb(e," }",Wu.Type.CODE)}if(typeof t>"u")return eb(e,"undefined",Wu.Type.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}var Eut={[Wu.Type.ID]:lG({pretty:(e,t)=>typeof t=="number"?eb(e,`${t}`,Wu.Type.NUMBER):eb(e,t,Wu.Type.CODE),json:e=>e}),[Wu.Type.INSPECT]:lG({pretty:(e,t)=>_ut(e,t),json:e=>e}),[Wu.Type.NUMBER]:lG({pretty:(e,t)=>eb(e,`${t}`,Wu.Type.NUMBER),json:e=>e}),[Wu.Type.IDENT]:lG({pretty:(e,t)=>DE.prettyIdent(e,t),json:e=>DE.stringifyIdent(e)}),[Wu.Type.LOCATOR]:lG({pretty:(e,t)=>DE.prettyLocator(e,t),json:e=>DE.stringifyLocator(e)}),[Wu.Type.DESCRIPTOR]:lG({pretty:(e,t)=>DE.prettyDescriptor(e,t),json:e=>DE.stringifyDescriptor(e)}),[Wu.Type.RESOLUTION]:lG({pretty:(e,{descriptor:t,locator:r})=>DE.prettyResolution(e,t,r),json:({descriptor:e,locator:t})=>({descriptor:DE.stringifyDescriptor(e),locator:t!==null?DE.stringifyLocator(t):null})}),[Wu.Type.DEPENDENT]:lG({pretty:(e,{locator:t,descriptor:r})=>DE.prettyDependent(e,t,r),json:({locator:e,descriptor:t})=>({locator:DE.stringifyLocator(e),descriptor:DE.stringifyDescriptor(t)})}),[Wu.Type.PACKAGE_EXTENSION]:lG({pretty:(e,t)=>{switch(t.type){case jSe.PackageExtensionType.Dependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"dependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependenciesMeta",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,DE.parseIdent(t.selector))} \u27A4 ${eb(e,t.key,Wu.Type.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}},json:e=>{switch(e.type){case jSe.PackageExtensionType.Dependency:return`${DE.stringifyIdent(e.parentDescriptor)} > ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${e.selector} / ${e.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}}}),[Wu.Type.SETTING]:lG({pretty:(e,t)=>(e.get(t),cDn(e,eb(e,t,Wu.Type.CODE),`https://yarnpkg.com/configuration/yarnrc#${t}`)),json:e=>e}),[Wu.Type.DURATION]:lG({pretty:(e,t)=>{if(t>1e3*60){let r=Math.floor(t/1e3/60),n=Math.ceil((t-r*60*1e3)/1e3);return n===0?`${r}m`:`${r}m ${n}s`}else{let r=Math.floor(t/1e3),n=t-r*1e3;return n===0?`${r}s`:`${r}s ${n}ms`}},json:e=>e}),[Wu.Type.SIZE]:lG({pretty:(e,t)=>eb(e,sDn(t),Wu.Type.NUMBER),json:e=>e}),[Wu.Type.SIZE_DIFF]:lG({pretty:(e,t)=>{let r=t>=0?"+":"-",n=r==="+"?Wu.Type.REMOVED:Wu.Type.ADDED;return eb(e,`${r} ${sDn(Math.max(Math.abs(t),1))}`,n)},json:e=>e}),[Wu.Type.PATH]:lG({pretty:(e,t)=>eb(e,iDn.npath.fromPortablePath(t),Wu.Type.PATH),json:e=>iDn.npath.fromPortablePath(e)}),[Wu.Type.MARKDOWN]:lG({pretty:(e,{text:t,format:r,paragraphs:n})=>(0,Gko.formatMarkdownish)(t,{format:r,paragraphs:n}),json:({text:e})=>e}),[Wu.Type.MARKDOWN_INLINE]:lG({pretty:(e,t)=>(t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(r,n,a)=>Xfe(e,n+a+n,Wu.Type.CODE)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,n,a)=>aDn(e,a,but.BOLD)),t),json:e=>e})};function Vko(e,t){return[t,e]}function aDn(e,t,r){return e.get("enableColors")&&r&but.BOLD&&(t=yut.default.bold(t)),t}function eb(e,t,r){if(!e.get("enableColors"))return t;let n=Lko.get(r);if(n===null)return t;let a=typeof n>"u"?r:Pcr.level>=3?n[0]:n[1],o=typeof a=="number"?Vcr.ansi256(a):a.startsWith("#")?Vcr.hex(a):Vcr[a];if(typeof o!="function")throw new Error(`Invalid format type ${a}`);return o(t)}var Pko=!!process.env.KONSOLE_VERSION;function cDn(e,t,r){return e.get("enableHyperlinks")?Pko?`\x1B]8;;${r}\x1B\\${t}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${t}\x1B]8;;\x07`:t}function Xfe(e,t,r){if(t===null)return eb(e,"null",Wu.Type.NULL);if(Object.hasOwn(Eut,r))return Eut[r].pretty(e,t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return eb(e,t,r)}function Wko(e,t,r,{separator:n=", "}={}){return[...t].map(a=>Xfe(e,a,r)).join(n)}function lDn(e,t){if(e===null)return null;if(Object.hasOwn(Eut,t))return Zko.overrideType(t),Eut[t].json(e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return e}function Oko(e,t,[r,n]){return e?lDn(r,n):Xfe(t,r,n)}function Mko(e){return{Check:eb(e,"\u2713","green"),Cross:eb(e,"\u2718","red"),Question:eb(e,"?","cyan")}}function Hko(e,{label:t,value:[r,n]}){return`${Xfe(e,t,Wu.Type.CODE)}: ${Xfe(e,r,n)}`}function Yko(e,t,r){let n=[],a=[...t],o=r;for(;a.length>0;){let I=a[0],C=`${DE.prettyLocator(e,I)}, `,b=DE.prettyLocatorNoColors(I).length+2;if(n.length>0&&oI).join("").slice(0,-2);let l="X".repeat(a.length.toString().length),A=`and ${l} more.`,f=a.length;for(;n.length>1&&oI).join(""),A.replace(l,Xfe(e,f,Wu.Type.NUMBER))].join("")}var uoe;(function(e){e.Error="error",e.Warning="warning",e.Info="info",e.Discard="discard"})(uoe||(Wu.LogLevel=uoe={}));function Qko(e,{configuration:t}){let r=t.get("logFilters"),n=new Map,a=new Map,o=[];for(let b of r){let E=b.get("level");if(typeof E>"u")continue;let N=b.get("code");typeof N<"u"&&n.set(N,E);let B=b.get("text");typeof B<"u"&&a.set(B,E);let F=b.get("pattern");typeof F<"u"&&o.push([Fko.default.matcher(F,{contains:!0}),E])}o.reverse();let l=(b,E,N)=>{if(b===null||b===mut.MessageName.UNNAMED)return N;let B=a.size>0||o.length>0?(0,oDn.default)(E):E;if(a.size>0){let F=a.get(B);if(typeof F<"u")return F??N}if(o.length>0){for(let[F,Q]of o)if(F(B))return Q??N}if(n.size>0){let F=n.get((0,mut.stringifyMessageName)(b));if(typeof F<"u")return F??N}return N},A=e.reportInfo,f=e.reportWarning,I=e.reportError,C=function(b,E,N,B){switch(l(E,N,B)){case uoe.Info:A.call(b,E,N);break;case uoe.Warning:f.call(b,E??mut.MessageName.UNNAMED,N);break;case uoe.Error:I.call(b,E??mut.MessageName.UNNAMED,N);break}};e.reportInfo=function(...b){return C(this,...b,uoe.Info)},e.reportWarning=function(...b){return C(this,...b,uoe.Warning)},e.reportError=function(...b){return C(this,...b,uoe.Error)}}});var uDn=H(qSe=>{"use strict";Object.defineProperty(qSe,"__esModule",{value:!0});qSe.splitWhen=qSe.flatten=void 0;function Xko(e){return e.reduce((t,r)=>[].concat(t,r),[])}qSe.flatten=Xko;function Jko(e,t){let r=[[]],n=0;for(let a of e)t(a)?(n++,r[n]=[]):r[n].push(a);return r}qSe.splitWhen=Jko});var gDn=H(Sut=>{"use strict";Object.defineProperty(Sut,"__esModule",{value:!0});Sut.isEnoentCodeError=void 0;function Uko(e){return e.code==="ENOENT"}Sut.isEnoentCodeError=Uko});var ADn=H(vut=>{"use strict";Object.defineProperty(vut,"__esModule",{value:!0});vut.createDirentFromStats=void 0;var Wcr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Kko(e,t){return new Wcr(e,t)}vut.createDirentFromStats=Kko});var IDn=H(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.convertPosixPathToPattern=eT.convertWindowsPathToPattern=eT.convertPathToPattern=eT.escapePosixPath=eT.escapeWindowsPath=eT.escape=eT.removeLeadingDotSegment=eT.makeAbsolute=eT.unixify=void 0;var jko=wt("os"),zko=wt("path"),dDn=jko.platform()==="win32",qko=2,$ko=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,exo=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,txo=/^\\\\([.?])/,rxo=/\\(?![!()+@[\]{}])/g;function nxo(e){return e.replace(/\\/g,"/")}eT.unixify=nxo;function ixo(e,t){return zko.resolve(e,t)}eT.makeAbsolute=ixo;function sxo(e){if(e.charAt(0)==="."){let t=e.charAt(1);if(t==="/"||t==="\\")return e.slice(qko)}return e}eT.removeLeadingDotSegment=sxo;eT.escape=dDn?Ocr:Mcr;function Ocr(e){return e.replace(exo,"\\$2")}eT.escapeWindowsPath=Ocr;function Mcr(e){return e.replace($ko,"\\$2")}eT.escapePosixPath=Mcr;eT.convertPathToPattern=dDn?pDn:fDn;function pDn(e){return Ocr(e).replace(txo,"//$1").replace(rxo,"/")}eT.convertWindowsPathToPattern=pDn;function fDn(e){return Mcr(e)}eT.convertPosixPathToPattern=fDn});var mDn=H((RKl,hDn)=>{hDn.exports=function(t){if(typeof t!="string"||t==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(r[2])return!0;t=t.slice(r.index+r[0].length)}return!1}});var yDn=H((NKl,_Dn)=>{var oxo=mDn(),CDn={"{":"}","(":")","[":"]"},axo=function(e){if(e[0]==="!")return!0;for(var t=0,r=-2,n=-2,a=-2,o=-2,l=-2;tt&&(l===-1||l>n||(l=e.indexOf("\\",t),l===-1||l>n)))||a!==-1&&e[t]==="{"&&e[t+1]!=="}"&&(a=e.indexOf("}",t),a>t&&(l=e.indexOf("\\",t),l===-1||l>a))||o!==-1&&e[t]==="("&&e[t+1]==="?"&&/[:!=]/.test(e[t+2])&&e[t+3]!==")"&&(o=e.indexOf(")",t),o>t&&(l=e.indexOf("\\",t),l===-1||l>o))||r!==-1&&e[t]==="("&&e[t+1]!=="|"&&(rr&&(l=e.indexOf("\\",r),l===-1||l>o))))return!0;if(e[t]==="\\"){var A=e[t+1];t+=2;var f=CDn[A];if(f){var I=e.indexOf(f,t);I!==-1&&(t=I+1)}if(e[t]==="!")return!0}else t++}return!1},cxo=function(e){if(e[0]==="!")return!0;for(var t=0;t{"use strict";var lxo=yDn(),uxo=wt("path").posix.dirname,gxo=wt("os").platform()==="win32",Hcr="/",Axo=/\\/g,dxo=/[\{\[].*[\}\]]$/,pxo=/(^|[^\\])([\{\[]|\([^\)]+$)/,fxo=/\\([\!\*\?\|\[\]\(\)\{\}])/g;bDn.exports=function(t,r){var n=Object.assign({flipBackslashes:!0},r);n.flipBackslashes&&gxo&&t.indexOf(Hcr)<0&&(t=t.replace(Axo,Hcr)),dxo.test(t)&&(t+=Hcr),t+="a";do t=uxo(t);while(lxo(t)||pxo.test(t));return t.replace(fxo,"$1")}});var DDn=H(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});oI.removeDuplicateSlashes=oI.matchAny=oI.convertPatternsToRe=oI.makeRe=oI.getPatternParts=oI.expandBraceExpansion=oI.expandPatternsWithBraceExpansion=oI.isAffectDepthOfReadingPattern=oI.endsWithSlashGlobStar=oI.hasGlobStar=oI.getBaseDirectory=oI.isPatternRelatedToParentDirectory=oI.getPatternsOutsideCurrentDirectory=oI.getPatternsInsideCurrentDirectory=oI.getPositivePatterns=oI.getNegativePatterns=oI.isPositivePattern=oI.isNegativePattern=oI.convertToNegativePattern=oI.convertToPositivePattern=oI.isDynamicPattern=oI.isStaticPattern=void 0;var Ixo=wt("path"),hxo=EDn(),Ycr=Ek(),SDn="**",mxo="\\",Cxo=/[*?]|^!/,_xo=/\[[^[]*]/,yxo=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,bxo=/[!*+?@]\([^(]*\)/,Exo=/,|\.\./,Sxo=/(?!^)\/{2,}/g;function vDn(e,t={}){return!BDn(e,t)}oI.isStaticPattern=vDn;function BDn(e,t={}){return e===""?!1:!!(t.caseSensitiveMatch===!1||e.includes(mxo)||Cxo.test(e)||_xo.test(e)||yxo.test(e)||t.extglob!==!1&&bxo.test(e)||t.braceExpansion!==!1&&vxo(e))}oI.isDynamicPattern=BDn;function vxo(e){let t=e.indexOf("{");if(t===-1)return!1;let r=e.indexOf("}",t+1);if(r===-1)return!1;let n=e.slice(t,r);return Exo.test(n)}function Bxo(e){return But(e)?e.slice(1):e}oI.convertToPositivePattern=Bxo;function wxo(e){return"!"+e}oI.convertToNegativePattern=wxo;function But(e){return e.startsWith("!")&&e[1]!=="("}oI.isNegativePattern=But;function wDn(e){return!But(e)}oI.isPositivePattern=wDn;function Txo(e){return e.filter(But)}oI.getNegativePatterns=Txo;function Rxo(e){return e.filter(wDn)}oI.getPositivePatterns=Rxo;function Nxo(e){return e.filter(t=>!Qcr(t))}oI.getPatternsInsideCurrentDirectory=Nxo;function Dxo(e){return e.filter(Qcr)}oI.getPatternsOutsideCurrentDirectory=Dxo;function Qcr(e){return e.startsWith("..")||e.startsWith("./..")}oI.isPatternRelatedToParentDirectory=Qcr;function kxo(e){return hxo(e,{flipBackslashes:!1})}oI.getBaseDirectory=kxo;function xxo(e){return e.includes(SDn)}oI.hasGlobStar=xxo;function TDn(e){return e.endsWith("/"+SDn)}oI.endsWithSlashGlobStar=TDn;function Gxo(e){let t=Ixo.basename(e);return TDn(e)||vDn(t)}oI.isAffectDepthOfReadingPattern=Gxo;function Fxo(e){return e.reduce((t,r)=>t.concat(RDn(r)),[])}oI.expandPatternsWithBraceExpansion=Fxo;function RDn(e){let t=Ycr.braces(e,{expand:!0,nodupes:!0,keepEscaping:!0});return t.sort((r,n)=>r.length-n.length),t.filter(r=>r!=="")}oI.expandBraceExpansion=RDn;function Zxo(e,t){let{parts:r}=Ycr.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return r.length===0&&(r=[e]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}oI.getPatternParts=Zxo;function NDn(e,t){return Ycr.makeRe(e,t)}oI.makeRe=NDn;function Lxo(e,t){return e.map(r=>NDn(r,t))}oI.convertPatternsToRe=Lxo;function Vxo(e,t){return t.some(r=>r.test(e))}oI.matchAny=Vxo;function Pxo(e){return e.replace(Sxo,"/")}oI.removeDuplicateSlashes=Pxo});var Xcr=H((xKl,GDn)=>{"use strict";var Wxo=wt("stream"),kDn=Wxo.PassThrough,Oxo=Array.prototype.slice;GDn.exports=Mxo;function Mxo(){let e=[],t=Oxo.call(arguments),r=!1,n=t[t.length-1];n&&!Array.isArray(n)&&n.pipe==null?t.pop():n={};let a=n.end!==!1,o=n.pipeError===!0;n.objectMode==null&&(n.objectMode=!0),n.highWaterMark==null&&(n.highWaterMark=64*1024);let l=kDn(n);function A(){for(let C=0,b=arguments.length;C0||(r=!1,f())}function N(B){function F(){B.removeListener("merge2UnpipeEnd",F),B.removeListener("end",F),o&&B.removeListener("error",Q),E()}function Q(X){l.emit("error",X)}if(B._readableState.endEmitted)return E();B.on("merge2UnpipeEnd",F),B.on("end",F),o&&B.on("error",Q),B.pipe(l,{end:!1}),B.resume()}for(let B=0;B{"use strict";Object.defineProperty(wut,"__esModule",{value:!0});wut.merge=void 0;var Hxo=Xcr();function Yxo(e){let t=Hxo(e);return e.forEach(r=>{r.once("error",n=>t.emit("error",n))}),t.once("close",()=>FDn(e)),t.once("end",()=>FDn(e)),t}wut.merge=Yxo;function FDn(e){e.forEach(t=>t.emit("close"))}});var LDn=H($Se=>{"use strict";Object.defineProperty($Se,"__esModule",{value:!0});$Se.isEmpty=$Se.isString=void 0;function Qxo(e){return typeof e=="string"}$Se.isString=Qxo;function Xxo(e){return e===""}$Se.isEmpty=Xxo});var r$=H(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.string=gG.stream=gG.pattern=gG.path=gG.fs=gG.errno=gG.array=void 0;var Jxo=uDn();gG.array=Jxo;var Uxo=gDn();gG.errno=Uxo;var Kxo=ADn();gG.fs=Kxo;var jxo=IDn();gG.path=jxo;var zxo=DDn();gG.pattern=zxo;var qxo=ZDn();gG.stream=qxo;var $xo=LDn();gG.string=$xo});var ODn=H(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.convertPatternGroupToTask=AG.convertPatternGroupsToTasks=AG.groupPatternsByBaseDirectory=AG.getNegativePatternsAsPositive=AG.getPositivePatterns=AG.convertPatternsToTasks=AG.generate=void 0;var sX=r$();function eGo(e,t){let r=VDn(e,t),n=VDn(t.ignore,t),a=PDn(r),o=WDn(r,n),l=a.filter(C=>sX.pattern.isStaticPattern(C,t)),A=a.filter(C=>sX.pattern.isDynamicPattern(C,t)),f=Jcr(l,o,!1),I=Jcr(A,o,!0);return f.concat(I)}AG.generate=eGo;function VDn(e,t){let r=e;return t.braceExpansion&&(r=sX.pattern.expandPatternsWithBraceExpansion(r)),t.baseNameMatch&&(r=r.map(n=>n.includes("/")?n:`**/${n}`)),r.map(n=>sX.pattern.removeDuplicateSlashes(n))}function Jcr(e,t,r){let n=[],a=sX.pattern.getPatternsOutsideCurrentDirectory(e),o=sX.pattern.getPatternsInsideCurrentDirectory(e),l=Ucr(a),A=Ucr(o);return n.push(...Kcr(l,t,r)),"."in A?n.push(jcr(".",o,t,r)):n.push(...Kcr(A,t,r)),n}AG.convertPatternsToTasks=Jcr;function PDn(e){return sX.pattern.getPositivePatterns(e)}AG.getPositivePatterns=PDn;function WDn(e,t){return sX.pattern.getNegativePatterns(e).concat(t).map(sX.pattern.convertToPositivePattern)}AG.getNegativePatternsAsPositive=WDn;function Ucr(e){let t={};return e.reduce((r,n)=>{let a=sX.pattern.getBaseDirectory(n);return a in r?r[a].push(n):r[a]=[n],r},t)}AG.groupPatternsByBaseDirectory=Ucr;function Kcr(e,t,r){return Object.keys(e).map(n=>jcr(n,e[n],t,r))}AG.convertPatternGroupsToTasks=Kcr;function jcr(e,t,r,n){return{dynamic:n,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(sX.pattern.convertToNegativePattern))}}AG.convertPatternGroupToTask=jcr});var HDn=H(Tut=>{"use strict";Object.defineProperty(Tut,"__esModule",{value:!0});Tut.read=void 0;function tGo(e,t,r){t.fs.lstat(e,(n,a)=>{if(n!==null){MDn(r,n);return}if(!a.isSymbolicLink()||!t.followSymbolicLink){zcr(r,a);return}t.fs.stat(e,(o,l)=>{if(o!==null){if(t.throwErrorOnBrokenSymbolicLink){MDn(r,o);return}zcr(r,a);return}t.markSymbolicLink&&(l.isSymbolicLink=()=>!0),zcr(r,l)})})}Tut.read=tGo;function MDn(e,t){e(t)}function zcr(e,t){e(null,t)}});var YDn=H(Rut=>{"use strict";Object.defineProperty(Rut,"__esModule",{value:!0});Rut.read=void 0;function rGo(e,t){let r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{let n=t.fs.statSync(e);return t.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(n){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw n}}Rut.read=rGo});var QDn=H(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});goe.createFileSystemAdapter=goe.FILE_SYSTEM_ADAPTER=void 0;var Nut=wt("fs");goe.FILE_SYSTEM_ADAPTER={lstat:Nut.lstat,stat:Nut.stat,lstatSync:Nut.lstatSync,statSync:Nut.statSync};function nGo(e){return e===void 0?goe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},goe.FILE_SYSTEM_ADAPTER),e)}goe.createFileSystemAdapter=nGo});var XDn=H($cr=>{"use strict";Object.defineProperty($cr,"__esModule",{value:!0});var iGo=QDn(),qcr=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=iGo.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,r){return t??r}};$cr.default=qcr});var Jfe=H(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});Aoe.statSync=Aoe.stat=Aoe.Settings=void 0;var JDn=HDn(),sGo=YDn(),elr=XDn();Aoe.Settings=elr.default;function oGo(e,t,r){if(typeof t=="function"){JDn.read(e,tlr(),t);return}JDn.read(e,tlr(t),r)}Aoe.stat=oGo;function aGo(e,t){let r=tlr(t);return sGo.read(e,r)}Aoe.statSync=aGo;function tlr(e={}){return e instanceof elr.default?e:new elr.default(e)}});var jDn=H((HKl,KDn)=>{var UDn;KDn.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):e=>(UDn||(UDn=Promise.resolve())).then(e).catch(t=>setTimeout(()=>{throw t},0))});var qDn=H((YKl,zDn)=>{zDn.exports=lGo;var cGo=jDn();function lGo(e,t){let r,n,a,o=!0;Array.isArray(e)?(r=[],n=e.length):(a=Object.keys(e),r={},n=a.length);function l(f){function I(){t&&t(f,r),t=null}o?cGo(I):I()}function A(f,I,C){r[f]=C,(--n===0||I)&&l(I)}n?a?a.forEach(function(f){e[f](function(I,C){A(f,I,C)})}):e.forEach(function(f,I){f(function(C,b){A(I,C,b)})}):l(null),o=!1}});var rlr=H(kut=>{"use strict";Object.defineProperty(kut,"__esModule",{value:!0});kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Dut=process.versions.node.split(".");if(Dut[0]===void 0||Dut[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var $Dn=Number.parseInt(Dut[0],10),uGo=Number.parseInt(Dut[1],10),ekn=10,gGo=10,AGo=$Dn>ekn,dGo=$Dn===ekn&&uGo>=gGo;kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=AGo||dGo});var tkn=H(xut=>{"use strict";Object.defineProperty(xut,"__esModule",{value:!0});xut.createDirentFromStats=void 0;var nlr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function pGo(e,t){return new nlr(e,t)}xut.createDirentFromStats=pGo});var ilr=H(Gut=>{"use strict";Object.defineProperty(Gut,"__esModule",{value:!0});Gut.fs=void 0;var fGo=tkn();Gut.fs=fGo});var slr=H(Fut=>{"use strict";Object.defineProperty(Fut,"__esModule",{value:!0});Fut.joinPathSegments=void 0;function IGo(e,t,r){return e.endsWith(r)?e+t:e+r+t}Fut.joinPathSegments=IGo});var akn=H(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});doe.readdir=doe.readdirWithFileTypes=doe.read=void 0;var hGo=Jfe(),rkn=qDn(),mGo=rlr(),nkn=ilr(),ikn=slr();function CGo(e,t,r){if(!t.stats&&mGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES){skn(e,t,r);return}okn(e,t,r)}doe.read=CGo;function skn(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(A=>({dirent:A,name:A.name,path:ikn.joinPathSegments(e,A.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks){olr(r,o);return}let l=o.map(A=>_Go(A,t));rkn(l,(A,f)=>{if(A!==null){Zut(r,A);return}olr(r,f)})})}doe.readdirWithFileTypes=skn;function _Go(e,t){return r=>{if(!e.dirent.isSymbolicLink()){r(null,e);return}t.fs.stat(e.path,(n,a)=>{if(n!==null){if(t.throwErrorOnBrokenSymbolicLink){r(n);return}r(null,e);return}e.dirent=nkn.fs.createDirentFromStats(e.name,a),r(null,e)})}}function okn(e,t,r){t.fs.readdir(e,(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(l=>{let A=ikn.joinPathSegments(e,l,t.pathSegmentSeparator);return f=>{hGo.stat(A,t.fsStatSettings,(I,C)=>{if(I!==null){f(I);return}let b={name:l,path:A,dirent:nkn.fs.createDirentFromStats(l,C)};t.stats&&(b.stats=C),f(null,b)})}});rkn(o,(l,A)=>{if(l!==null){Zut(r,l);return}olr(r,A)})})}doe.readdir=okn;function Zut(e,t){e(t)}function olr(e,t){e(null,t)}});var Akn=H(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});poe.readdir=poe.readdirWithFileTypes=poe.read=void 0;var yGo=Jfe(),bGo=rlr(),ckn=ilr(),lkn=slr();function EGo(e,t){return!t.stats&&bGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES?ukn(e,t):gkn(e,t)}poe.read=EGo;function ukn(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(n=>{let a={dirent:n,name:n.name,path:lkn.joinPathSegments(e,n.name,t.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{let o=t.fs.statSync(a.path);a.dirent=ckn.fs.createDirentFromStats(a.name,o)}catch(o){if(t.throwErrorOnBrokenSymbolicLink)throw o}return a})}poe.readdirWithFileTypes=ukn;function gkn(e,t){return t.fs.readdirSync(e).map(n=>{let a=lkn.joinPathSegments(e,n,t.pathSegmentSeparator),o=yGo.statSync(a,t.fsStatSettings),l={name:n,path:a,dirent:ckn.fs.createDirentFromStats(n,o)};return t.stats&&(l.stats=o),l})}poe.readdir=gkn});var dkn=H(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});foe.createFileSystemAdapter=foe.FILE_SYSTEM_ADAPTER=void 0;var eve=wt("fs");foe.FILE_SYSTEM_ADAPTER={lstat:eve.lstat,stat:eve.stat,lstatSync:eve.lstatSync,statSync:eve.statSync,readdir:eve.readdir,readdirSync:eve.readdirSync};function SGo(e){return e===void 0?foe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},foe.FILE_SYSTEM_ADAPTER),e)}foe.createFileSystemAdapter=SGo});var pkn=H(clr=>{"use strict";Object.defineProperty(clr,"__esModule",{value:!0});var vGo=wt("path"),BGo=Jfe(),wGo=dkn(),alr=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=wGo.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,vGo.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BGo.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};clr.default=alr});var Lut=H(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});Ioe.Settings=Ioe.scandirSync=Ioe.scandir=void 0;var fkn=akn(),TGo=Akn(),llr=pkn();Ioe.Settings=llr.default;function RGo(e,t,r){if(typeof t=="function"){fkn.read(e,ulr(),t);return}fkn.read(e,ulr(t),r)}Ioe.scandir=RGo;function NGo(e,t){let r=ulr(t);return TGo.read(e,r)}Ioe.scandirSync=NGo;function ulr(e={}){return e instanceof llr.default?e:new llr.default(e)}});var hkn=H((e8l,Ikn)=>{"use strict";function DGo(e){var t=new e,r=t;function n(){var o=t;return o.next?t=o.next:(t=new e,r=t),o.next=null,o}function a(o){r.next=o,r=o}return{get:n,release:a}}Ikn.exports=DGo});var Ckn=H((t8l,glr)=>{"use strict";var kGo=hkn();function mkn(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=kGo(xGo),a=null,o=null,l=0,A=null,f={push:F,drain:nM,saturated:nM,pause:C,paused:!1,get concurrency(){return r},set concurrency(fe){if(!(fe>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=fe,!f.paused)for(;a&&l=r||f.paused?o?(o.next=de,o=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function Q(fe,ue){var de=n.get();de.context=e,de.release=X,de.value=fe,de.callback=ue||nM,de.errorHandler=A,l>=r||f.paused?a?(de.next=a,a=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function X(fe){fe&&n.release(fe);var ue=a;ue&&l<=r?f.paused?l--:(o===a&&(o=null),a=ue.next,ue.next=null,t.call(e,ue.value,ue.worked),o===null&&f.empty()):--l===0&&f.drain()}function ae(){a=null,o=null,f.drain=nM}function ne(){a=null,o=null,f.drain(),f.drain=nM}function ce(fe){A=fe}}function nM(){}function xGo(){this.value=null,this.callback=nM,this.next=null,this.release=nM,this.context=null,this.errorHandler=null;var e=this;this.worked=function(r,n){var a=e.callback,o=e.errorHandler,l=e.value;e.value=null,e.callback=nM,e.errorHandler&&o(r,l),a.call(e.context,r,n),e.release(e)}}function GGo(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(C,b){t.call(this,C).then(function(E){b(null,E)},b)}var a=mkn(e,n,r),o=a.push,l=a.unshift;return a.push=A,a.unshift=f,a.drained=I,a;function A(C){var b=new Promise(function(E,N){o(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function f(C){var b=new Promise(function(E,N){l(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function I(){if(a.idle())return new Promise(function(E){E()});var C=a.drain,b=new Promise(function(E){a.drain=function(){C(),E()}});return b}}glr.exports=mkn;glr.exports.promise=GGo});var Vut=H(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0});QK.joinPathSegments=QK.replacePathSegmentSeparator=QK.isAppliedFilter=QK.isFatalError=void 0;function FGo(e,t){return e.errorFilter===null?!0:!e.errorFilter(t)}QK.isFatalError=FGo;function ZGo(e,t){return e===null||e(t)}QK.isAppliedFilter=ZGo;function LGo(e,t){return e.split(/[/\\]/).join(t)}QK.replacePathSegmentSeparator=LGo;function VGo(e,t,r){return e===""?t:e.endsWith(r)?e+t:e+r+t}QK.joinPathSegments=VGo});var plr=H(dlr=>{"use strict";Object.defineProperty(dlr,"__esModule",{value:!0});var PGo=Vut(),Alr=class{constructor(t,r){this._root=t,this._settings=r,this._root=PGo.replacePathSegmentSeparator(t,r.pathSegmentSeparator)}};dlr.default=Alr});var hlr=H(Ilr=>{"use strict";Object.defineProperty(Ilr,"__esModule",{value:!0});var WGo=wt("events"),OGo=Lut(),MGo=Ckn(),Put=Vut(),HGo=plr(),flr=class extends HGo.default{constructor(t,r){super(t,r),this._settings=r,this._scandir=OGo.scandir,this._emitter=new WGo.EventEmitter,this._queue=MGo(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,r){let n={directory:t,base:r};this._queue.push(n,a=>{a!==null&&this._handleError(a)})}_worker(t,r){this._scandir(t.directory,this._settings.fsScandirSettings,(n,a)=>{if(n!==null){r(n,void 0);return}for(let o of a)this._handleEntry(o,t.base);r(null,void 0)})}_handleError(t){this._isDestroyed||!Put.isFatalError(this._settings,t)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,r){if(this._isDestroyed||this._isFatalError)return;let n=t.path;r!==void 0&&(t.path=Put.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Put.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&Put.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_emitEntry(t){this._emitter.emit("entry",t)}};Ilr.default=flr});var _kn=H(Clr=>{"use strict";Object.defineProperty(Clr,"__esModule",{value:!0});var YGo=hlr(),mlr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new YGo.default(this._root,this._settings),this._storage=[]}read(t){this._reader.onError(r=>{QGo(t,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{XGo(t,this._storage)}),this._reader.read()}};Clr.default=mlr;function QGo(e,t){e(t)}function XGo(e,t){e(null,t)}});var ykn=H(ylr=>{"use strict";Object.defineProperty(ylr,"__esModule",{value:!0});var JGo=wt("stream"),UGo=hlr(),_lr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new UGo.default(this._root,this._settings),this._stream=new JGo.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};ylr.default=_lr});var bkn=H(Elr=>{"use strict";Object.defineProperty(Elr,"__esModule",{value:!0});var KGo=Lut(),Wut=Vut(),jGo=plr(),blr=class extends jGo.default{constructor(){super(...arguments),this._scandir=KGo.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(t,r){this._queue.add({directory:t,base:r})}_handleQueue(){for(let t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,r){try{let n=this._scandir(t,this._settings.fsScandirSettings);for(let a of n)this._handleEntry(a,r)}catch(n){this._handleError(n)}}_handleError(t){if(Wut.isFatalError(this._settings,t))throw t}_handleEntry(t,r){let n=t.path;r!==void 0&&(t.path=Wut.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Wut.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&Wut.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_pushToStorage(t){this._storage.push(t)}};Elr.default=blr});var Ekn=H(vlr=>{"use strict";Object.defineProperty(vlr,"__esModule",{value:!0});var zGo=bkn(),Slr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new zGo.default(this._root,this._settings)}read(){return this._reader.read()}};vlr.default=Slr});var Skn=H(wlr=>{"use strict";Object.defineProperty(wlr,"__esModule",{value:!0});var qGo=wt("path"),$Go=Lut(),Blr=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,qGo.sep),this.fsScandirSettings=new $Go.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};wlr.default=Blr});var Mut=H(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0});XK.Settings=XK.walkStream=XK.walkSync=XK.walk=void 0;var vkn=_kn(),eFo=ykn(),tFo=Ekn(),Tlr=Skn();XK.Settings=Tlr.default;function rFo(e,t,r){if(typeof t=="function"){new vkn.default(e,Out()).read(t);return}new vkn.default(e,Out(t)).read(r)}XK.walk=rFo;function nFo(e,t){let r=Out(t);return new tFo.default(e,r).read()}XK.walkSync=nFo;function iFo(e,t){let r=Out(t);return new eFo.default(e,r).read()}XK.walkStream=iFo;function Out(e={}){return e instanceof Tlr.default?e:new Tlr.default(e)}});var Hut=H(Nlr=>{"use strict";Object.defineProperty(Nlr,"__esModule",{value:!0});var sFo=wt("path"),oFo=Jfe(),Bkn=r$(),Rlr=class{constructor(t){this._settings=t,this._fsStatSettings=new oFo.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return sFo.resolve(this._settings.cwd,t)}_makeEntry(t,r){let n={name:r,path:r,dirent:Bkn.fs.createDirentFromStats(r,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!Bkn.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}};Nlr.default=Rlr});var xlr=H(klr=>{"use strict";Object.defineProperty(klr,"__esModule",{value:!0});var aFo=wt("stream"),cFo=Jfe(),lFo=Mut(),uFo=Hut(),Dlr=class extends uFo.default{constructor(){super(...arguments),this._walkStream=lFo.walkStream,this._stat=cFo.stat}dynamic(t,r){return this._walkStream(t,r)}static(t,r){let n=t.map(this._getFullEntryPath,this),a=new aFo.PassThrough({objectMode:!0});a._write=(o,l,A)=>this._getEntry(n[o],t[o],r).then(f=>{f!==null&&r.entryFilter(f)&&a.push(f),o===n.length-1&&a.end(),A()}).catch(A);for(let o=0;othis._makeEntry(a,r)).catch(a=>{if(n.errorFilter(a))return null;throw a})}_getStat(t){return new Promise((r,n)=>{this._stat(t,this._fsStatSettings,(a,o)=>a===null?r(o):n(a))})}};klr.default=Dlr});var wkn=H(Flr=>{"use strict";Object.defineProperty(Flr,"__esModule",{value:!0});var gFo=Mut(),AFo=Hut(),dFo=xlr(),Glr=class extends AFo.default{constructor(){super(...arguments),this._walkAsync=gFo.walk,this._readerStream=new dFo.default(this._settings)}dynamic(t,r){return new Promise((n,a)=>{this._walkAsync(t,r,(o,l)=>{o===null?n(l):a(o)})})}async static(t,r){let n=[],a=this._readerStream.static(t,r);return new Promise((o,l)=>{a.once("error",l),a.on("data",A=>n.push(A)),a.once("end",()=>o(n))})}};Flr.default=Glr});var Tkn=H(Llr=>{"use strict";Object.defineProperty(Llr,"__esModule",{value:!0});var K3e=r$(),Zlr=class{constructor(t,r,n){this._patterns=t,this._settings=r,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){for(let t of this._patterns){let r=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(r);this._storage.push({complete:n.length<=1,pattern:t,segments:r,sections:n})}}_getPatternSegments(t){return K3e.pattern.getPatternParts(t,this._micromatchOptions).map(n=>K3e.pattern.isDynamicPattern(n,this._settings)?{dynamic:!0,pattern:n,patternRe:K3e.pattern.makeRe(n,this._micromatchOptions)}:{dynamic:!1,pattern:n})}_splitSegmentsIntoSections(t){return K3e.array.splitWhen(t,r=>r.dynamic&&K3e.pattern.hasGlobStar(r.pattern))}};Llr.default=Zlr});var Rkn=H(Plr=>{"use strict";Object.defineProperty(Plr,"__esModule",{value:!0});var pFo=Tkn(),Vlr=class extends pFo.default{match(t){let r=t.split("/"),n=r.length,a=this._storage.filter(o=>!o.complete||o.segments.length>n);for(let o of a){let l=o.sections[0];if(!o.complete&&n>l.length||r.every((f,I)=>{let C=o.segments[I];return!!(C.dynamic&&C.patternRe.test(f)||!C.dynamic&&C.pattern===f)}))return!0}return!1}};Plr.default=Vlr});var Nkn=H(Olr=>{"use strict";Object.defineProperty(Olr,"__esModule",{value:!0});var Yut=r$(),fFo=Rkn(),Wlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r}getFilter(t,r,n){let a=this._getMatcher(r),o=this._getNegativePatternsRe(n);return l=>this._filter(t,l,a,o)}_getMatcher(t){return new fFo.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){let r=t.filter(Yut.pattern.isAffectDepthOfReadingPattern);return Yut.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(t,r,n,a){if(this._isSkippedByDeep(t,r.path)||this._isSkippedSymbolicLink(r))return!1;let o=Yut.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,n)?!1:this._isSkippedByNegativePatterns(o,a)}_isSkippedByDeep(t,r){return this._settings.deep===1/0?!1:this._getEntryLevel(t,r)>=this._settings.deep}_getEntryLevel(t,r){let n=r.split("/").length;if(t==="")return n;let a=t.split("/").length;return n-a}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(t,r){return!this._settings.baseNameMatch&&!r.match(t)}_isSkippedByNegativePatterns(t,r){return!Yut.pattern.matchAny(t,r)}};Olr.default=Wlr});var Dkn=H(Hlr=>{"use strict";Object.defineProperty(Hlr,"__esModule",{value:!0});var Ufe=r$(),Mlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r,this.index=new Map}getFilter(t,r){let n=Ufe.pattern.convertPatternsToRe(t,this._micromatchOptions),a=Ufe.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return o=>this._filter(o,n,a)}_filter(t,r,n){let a=Ufe.path.removeLeadingDotSegment(t.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(t)||this._onlyDirectoryFilter(t)||this._isSkippedByAbsoluteNegativePatterns(a,n))return!1;let o=t.dirent.isDirectory(),l=this._isMatchToPatterns(a,r,o)&&!this._isMatchToPatterns(a,n,o);return this._settings.unique&&l&&this._createIndexRecord(a),l}_isDuplicateEntry(t){return this.index.has(t)}_createIndexRecord(t){this.index.set(t,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,r){if(!this._settings.absolute)return!1;let n=Ufe.path.makeAbsolute(this._settings.cwd,t);return Ufe.pattern.matchAny(n,r)}_isMatchToPatterns(t,r,n){let a=Ufe.pattern.matchAny(t,r);return!a&&n?Ufe.pattern.matchAny(t+"/",r):a}};Hlr.default=Mlr});var kkn=H(Qlr=>{"use strict";Object.defineProperty(Qlr,"__esModule",{value:!0});var IFo=r$(),Ylr=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return IFo.errno.isEnoentCodeError(t)||this._settings.suppressErrors}};Qlr.default=Ylr});var Gkn=H(Jlr=>{"use strict";Object.defineProperty(Jlr,"__esModule",{value:!0});var xkn=r$(),Xlr=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let r=t.path;return this._settings.absolute&&(r=xkn.path.makeAbsolute(this._settings.cwd,r),r=xkn.path.unixify(r)),this._settings.markDirectories&&t.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:r}):r}};Jlr.default=Xlr});var Qut=H(Klr=>{"use strict";Object.defineProperty(Klr,"__esModule",{value:!0});var hFo=wt("path"),mFo=Nkn(),CFo=Dkn(),_Fo=kkn(),yFo=Gkn(),Ulr=class{constructor(t){this._settings=t,this.errorFilter=new _Fo.default(this._settings),this.entryFilter=new CFo.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new mFo.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new yFo.default(this._settings)}_getRootDirectory(t){return hFo.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){let r=t.base==="."?"":t.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Klr.default=Ulr});var Fkn=H(zlr=>{"use strict";Object.defineProperty(zlr,"__esModule",{value:!0});var bFo=wkn(),EFo=Qut(),jlr=class extends EFo.default{constructor(){super(...arguments),this._reader=new bFo.default(this._settings)}async read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return(await this.api(r,t,n)).map(o=>n.transform(o))}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};zlr.default=jlr});var Zkn=H($lr=>{"use strict";Object.defineProperty($lr,"__esModule",{value:!0});var SFo=wt("stream"),vFo=xlr(),BFo=Qut(),qlr=class extends BFo.default{constructor(){super(...arguments),this._reader=new vFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),a=this.api(r,t,n),o=new SFo.Readable({objectMode:!0,read:()=>{}});return a.once("error",l=>o.emit("error",l)).on("data",l=>o.emit("data",n.transform(l))).once("end",()=>o.emit("end")),o.once("close",()=>a.destroy()),o}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};$lr.default=qlr});var Lkn=H(tur=>{"use strict";Object.defineProperty(tur,"__esModule",{value:!0});var wFo=Jfe(),TFo=Mut(),RFo=Hut(),eur=class extends RFo.default{constructor(){super(...arguments),this._walkSync=TFo.walkSync,this._statSync=wFo.statSync}dynamic(t,r){return this._walkSync(t,r)}static(t,r){let n=[];for(let a of t){let o=this._getFullEntryPath(a),l=this._getEntry(o,a,r);l===null||!r.entryFilter(l)||n.push(l)}return n}_getEntry(t,r,n){try{let a=this._getStat(t);return this._makeEntry(a,r)}catch(a){if(n.errorFilter(a))return null;throw a}}_getStat(t){return this._statSync(t,this._fsStatSettings)}};tur.default=eur});var Vkn=H(nur=>{"use strict";Object.defineProperty(nur,"__esModule",{value:!0});var NFo=Lkn(),DFo=Qut(),rur=class extends DFo.default{constructor(){super(...arguments),this._reader=new NFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(r,t,n).map(n.transform)}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};nur.default=rur});var Pkn=H(rve=>{"use strict";Object.defineProperty(rve,"__esModule",{value:!0});rve.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var tve=wt("fs"),kFo=wt("os"),xFo=Math.max(kFo.cpus().length,1);rve.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:tve.lstat,lstatSync:tve.lstatSync,stat:tve.stat,statSync:tve.statSync,readdir:tve.readdir,readdirSync:tve.readdirSync};var iur=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,xFo),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(t,r){return t===void 0?r:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},rve.DEFAULT_FILE_SYSTEM_ADAPTER),t)}};rve.default=iur});var nve=H((B8l,Okn)=>{"use strict";var Wkn=ODn(),GFo=Fkn(),FFo=Zkn(),ZFo=Vkn(),sur=Pkn(),iM=r$();async function our(e,t){oX(e);let r=aur(e,GFo.default,t),n=await Promise.all(r);return iM.array.flatten(n)}(function(e){e.glob=e,e.globSync=t,e.globStream=r,e.async=e;function t(I,C){oX(I);let b=aur(I,ZFo.default,C);return iM.array.flatten(b)}e.sync=t;function r(I,C){oX(I);let b=aur(I,FFo.default,C);return iM.stream.merge(b)}e.stream=r;function n(I,C){oX(I);let b=[].concat(I),E=new sur.default(C);return Wkn.generate(b,E)}e.generateTasks=n;function a(I,C){oX(I);let b=new sur.default(C);return iM.pattern.isDynamicPattern(I,b)}e.isDynamicPattern=a;function o(I){return oX(I),iM.path.escape(I)}e.escapePath=o;function l(I){return oX(I),iM.path.convertPathToPattern(I)}e.convertPathToPattern=l;let A;(function(I){function C(E){return oX(E),iM.path.escapePosixPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertPosixPathToPattern(E)}I.convertPathToPattern=b})(A=e.posix||(e.posix={}));let f;(function(I){function C(E){return oX(E),iM.path.escapeWindowsPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertWindowsPathToPattern(E)}I.convertPathToPattern=b})(f=e.win32||(e.win32={}))})(our||(our={}));function aur(e,t,r){let n=[].concat(e),a=new sur.default(r),o=Wkn.generate(n,a),l=new t(a);return o.map(l.read,l)}function oX(e){if(![].concat(e).every(n=>iM.string.isString(n)&&!iM.string.isEmpty(n)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Okn.exports=our});var moe=H(j3e=>{"use strict";Object.defineProperty(j3e,"__esModule",{value:!0});j3e.makeHash=VFo;j3e.checksumFile=PFo;j3e.checksumPattern=WFo;var LFo=(Pa(),vi(Va)),hoe=no(),cur=wt("crypto"),Mkn=LFo.__importDefault(nve());function VFo(...e){let t=(0,cur.createHash)("sha512"),r="";for(let n of e)typeof n=="string"?r+=n:n&&(r&&(t.update(r),r=""),t.update(n));return r&&t.update(r),t.digest("hex")}async function PFo(e,{baseFs:t,algorithm:r}={baseFs:hoe.xfs,algorithm:"sha512"}){let n=await t.openPromise(e,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=(0,cur.createHash)(r),A=0;for(;(A=await t.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await t.closePromise(n)}}async function WFo(e,{cwd:t}){let n=(await(0,Mkn.default)(e,{cwd:hoe.npath.fromPortablePath(t),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,Mkn.default)([e,...n],{cwd:hoe.npath.fromPortablePath(t),onlyFiles:!1});a.sort();let o=await Promise.all(a.map(async A=>{let f=[Buffer.from(A)],I=hoe.ppath.join(t,hoe.npath.toPortablePath(A)),C=await hoe.xfs.lstatPromise(I);return C.isSymbolicLink()?f.push(Buffer.from(await hoe.xfs.readlinkPromise(I))):C.isFile()&&f.push(await hoe.xfs.readFilePromise(I)),f.join("\0")})),l=(0,cur.createHash)("sha512");for(let A of o)l.update(A);return l.digest("hex")}});var uG=H(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.makeIdent=sve;Xd.makeDescriptor=ave;Xd.makeLocator=cve;Xd.convertToIdent=QFo;Xd.convertDescriptorToLocator=XFo;Xd.convertLocatorToDescriptor=JFo;Xd.convertPackageToLocator=UFo;Xd.renamePackage=Aur;Xd.copyPackage=KFo;Xd.virtualizeDescriptor=jFo;Xd.virtualizePackage=zFo;Xd.isVirtualDescriptor=Jut;Xd.isVirtualLocator=$3e;Xd.devirtualizeDescriptor=Xkn;Xd.devirtualizeLocator=qFo;Xd.ensureDevirtualizedDescriptor=$Fo;Xd.ensureDevirtualizedLocator=eZo;Xd.bindDescriptor=tZo;Xd.bindLocator=rZo;Xd.areIdentsEqual=Jkn;Xd.areDescriptorsEqual=Ukn;Xd.areLocatorsEqual=nZo;Xd.areVirtualPackagesEquivalent=iZo;Xd.parseIdent=sZo;Xd.tryParseIdent=Kkn;Xd.parseDescriptor=aZo;Xd.tryParseDescriptor=jkn;Xd.parseLocator=zkn;Xd.tryParseLocator=qkn;Xd.parseRange=e5e;Xd.tryParseRange=dZo;Xd.parseFileStyleRange=pZo;Xd.makeRange=$kn;Xd.convertToManifestRange=IZo;Xd.stringifyIdent=Kut;Xd.wrapIdentIntoScope=hZo;Xd.unwrapIdentFromScope=mZo;Xd.stringifyDescriptor=CZo;Xd.stringifyLocator=_Zo;Xd.slugifyIdent=uur;Xd.slugifyLocator=bZo;Xd.prettyIdent=jut;Xd.prettyRange=exn;Xd.prettyDescriptor=SZo;Xd.prettyReference=dur;Xd.prettyLocator=Xut;Xd.prettyLocatorNoColors=vZo;Xd.sortDescriptors=BZo;Xd.prettyWorkspace=wZo;Xd.prettyResolution=TZo;Xd.prettyDependent=RZo;Xd.getIdentVendorPath=NZo;Xd.isPackageInRange=DZo;Xd.isPackageCompatible=kZo;Xd.allPeerRequests=xZo;var ove=(Pa(),vi(Va)),q3e=ove.__importDefault(wt("querystring")),Ykn=ove.__importDefault(UC()),OFo=dBn(),vZ=ove.__importStar(rM()),gur=ove.__importStar(moe()),MFo=ove.__importStar(xW()),ive=ove.__importStar(uG()),z3e="virtual:",HFo=5,Qkn=/(os|cpu|libc)=([a-z0-9_-]+)/,YFo=(0,OFo.makeParser)(Qkn);function sve(e,t){if(e?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:gur.makeHash(e,t),scope:e,name:t}}function ave(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:gur.makeHash(e.identHash,t),range:t}}function cve(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:gur.makeHash(e.identHash,t),reference:t}}function QFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function XFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function JFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function UFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function Aur(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,conditions:e.conditions,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function KFo(e){return Aur(e,e)}function jFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return ave(e,`virtual:${t}#${e.range}`)}function zFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return Aur(e,cve(e,`virtual:${t}#${e.reference}`))}function Jut(e){return e.range.startsWith(z3e)}function $3e(e){return e.reference.startsWith(z3e)}var Uut=/^[^#]*#/;function Xkn(e){if(!Jut(e))throw new Error("Not a virtual descriptor");return ave(e,e.range.replace(Uut,""))}function qFo(e){if(!$3e(e))throw new Error("Not a virtual descriptor");return cve(e,e.reference.replace(Uut,""))}function $Fo(e){return Jut(e)?ave(e,e.range.replace(Uut,"")):e}function eZo(e){return $3e(e)?cve(e,e.reference.replace(Uut,"")):e}function tZo(e,t){return e.range.includes("::")?e:ave(e,`${e.range}::${q3e.default.stringify(t)}`)}function rZo(e,t){return e.reference.includes("::")?e:cve(e,`${e.reference}::${q3e.default.stringify(t)}`)}function Jkn(e,t){return e.identHash===t.identHash}function Ukn(e,t){return e.descriptorHash===t.descriptorHash}function nZo(e,t){return e.locatorHash===t.locatorHash}function iZo(e,t){if(!$3e(e))throw new Error("Invalid package type");if(!$3e(t))throw new Error("Invalid package type");if(!Jkn(e,t)||e.dependencies.size!==t.dependencies.size)return!1;for(let r of e.dependencies.values()){let n=t.dependencies.get(r.identHash);if(!n||!Ukn(r,n))return!1}return!0}function sZo(e){let t=Kkn(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}var oZo=/^(?:@([^/]+?)\/)?([^@/]+)$/;function Kkn(e){let t=e.match(oZo);if(!t)return null;let[,r,n]=t;return sve(typeof r<"u"?r:null,n)}function aZo(e,t=!1){let r=jkn(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}var cZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,lZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/,lur="unknown";function jkn(e,t=!1){let r=t?e.match(cZo):e.match(lZo);if(!r)return null;let[,n,a,o]=r;if(o===lur)throw new Error(`Invalid range (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:lur;return ave(sve(l,a),A)}function zkn(e,t=!1){let r=qkn(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}var uZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,gZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;function qkn(e,t=!1){let r=t?e.match(uZo):e.match(gZo);if(!r)return null;let[,n,a,o]=r;if(o==="unknown")throw new Error(`Invalid reference (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:"unknown";return cve(sve(l,a),A)}var AZo=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;function e5e(e,t){let r=e.match(AZo);if(r===null)throw new Error(`Invalid range (${e})`);let n=typeof r[1]<"u"?r[1]:null;if(typeof t?.requireProtocol=="string"&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if(t?.requireProtocol&&n===null)throw new Error(`Missing protocol (${n})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(t?.requireSource&&a===null)throw new Error(`Missing source (${e})`);let o=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),l=t?.parseSelector?q3e.default.parse(o):o,A=typeof r[4]<"u"?q3e.default.parse(r[4]):null;return{protocol:n,source:a,selector:l,params:A}}function dZo(e,t){try{return e5e(e,t)}catch{return null}}function pZo(e,{protocol:t}){let{selector:r,params:n}=e5e(e,{requireProtocol:t,requireBindings:!0});if(typeof n.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${e}`);return{parentLocator:zkn(n.locator,!0),path:r}}function Hkn(e){return e=e.replaceAll("%","%25"),e=e.replaceAll(":","%3A"),e=e.replaceAll("#","%23"),e}function fZo(e){return e===null?!1:Object.entries(e).length>0}function $kn({protocol:e,source:t,selector:r,params:n}){let a="";return e!==null&&(a+=`${e}`),t!==null&&(a+=`${Hkn(t)}#`),a+=Hkn(r),fZo(n)&&(a+=`::${q3e.default.stringify(n)}`),a}function IZo(e){let{params:t,protocol:r,source:n,selector:a}=e5e(e);for(let o in t)o.startsWith("__")&&delete t[o];return $kn({protocol:r,source:n,params:t,selector:a})}function Kut(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function hZo(e,t){return e.scope?ive.makeIdent(t,`${e.scope}__${e.name}`):ive.makeIdent(t,e.name)}function mZo(e,t){if(e.scope!==t)return e;let r=e.name.indexOf("__");if(r===-1)return sve(null,e.name);let n=e.name.slice(0,r),a=e.name.slice(r+2);return sve(n,a)}function CZo(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function _Zo(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function uur(e){return e.scope!==null?`@${e.scope}-${e.name}`:e.name}var yZo=/:$/;function bZo(e){let{protocol:t,selector:r}=e5e(e.reference),n=t!==null?t.replace(yZo,""):"exotic",a=Ykn.default.valid(r),o=a!==null?`${n}-${a}`:`${n}`,l=10;return e.scope?`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`:`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`}function jut(e,t){return t.scope?`${vZ.pretty(e,`@${t.scope}/`,vZ.Type.SCOPE)}${vZ.pretty(e,t.name,vZ.Type.NAME)}`:`${vZ.pretty(e,t.name,vZ.Type.NAME)}`}var EZo=/\?.*/;function zut(e){if(e.startsWith(z3e)){let t=zut(e.substring(e.indexOf("#")+1)),r=e.substring(z3e.length,z3e.length+HFo);return`${t} [${r}]`}else return e.replace(EZo,"?[...]")}function exn(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.RANGE)}`}function SZo(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.RANGE)}${exn(e,t.range)}`}function dur(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.REFERENCE)}`}function Xut(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.REFERENCE)}${dur(e,t.reference)}`}function vZo(e){return`${Kut(e)}@${zut(e.reference)}`}function BZo(e){return MFo.sortMap(e,[t=>Kut(t),t=>t.range])}function wZo(e,t){return jut(e,t.anchoredLocator)}function TZo(e,t,r){let n=Jut(t)?Xkn(t):t;return r===null?`${ive.prettyDescriptor(e,n)} \u2192 ${vZ.mark(e).Cross}`:n.identHash===r.identHash?`${ive.prettyDescriptor(e,n)} \u2192 ${dur(e,r.reference)}`:`${ive.prettyDescriptor(e,n)} \u2192 ${Xut(e,r)}`}function RZo(e,t,r){return r===null?`${Xut(e,t)}`:`${Xut(e,t)} (via ${ive.prettyRange(e,r.range)})`}function NZo(e){return`node_modules/${Kut(e)}`}function DZo(e,t){return t===lur||!e.version?!0:Ykn.default.satisfies(e.version??"",t)}function kZo(e,t){return e.conditions?YFo(e.conditions,r=>{let[,n,a]=r.match(Qkn),o=t[n];return o?o.includes(a):!0}):!0}function xZo(e){let t=new Set;if("children"in e)t.add(e);else for(let r of e.requests.values())t.add(r);for(let r of t)for(let n of r.children.values())t.add(n);return t}});var txn=H(qut=>{"use strict";Object.defineProperty(qut,"__esModule",{value:!0});qut.CorePlugin=void 0;var GZo=(Pa(),vi(Va)),FZo=M9(),Coe=GZo.__importStar(uG());qut.CorePlugin={hooks:{reduceDependency:(e,t,r,n,{resolver:a,resolveOptions:o})=>{for(let{pattern:l,reference:A}of t.topLevelWorkspace.manifest.resolutions){if(l.from&&(l.from.fullName!==Coe.stringifyIdent(r)||t.configuration.normalizeLocator(Coe.makeLocator(Coe.parseIdent(l.from.fullName),l.from.description??r.reference)).locatorHash!==r.locatorHash)||l.descriptor.fullName!==Coe.stringifyIdent(e)||t.configuration.normalizeDependency(Coe.makeDescriptor(Coe.parseLocator(l.descriptor.fullName),l.descriptor.description??e.range)).descriptorHash!==e.descriptorHash)continue;return a.bindDescriptor(t.configuration.normalizeDependency(Coe.makeDescriptor(e,A)),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(let r of e.workspaces){let n=Coe.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,o)=>t.reportWarning(a,`${n}: ${o}`),reportError:(a,o)=>t.reportError(a,`${n}: ${o}`)})}},validateWorkspace:async(e,t)=>{let{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let n of r.errors)t.reportWarning(FZo.MessageName.INVALID_MANIFEST,n.message)}}}});var Kfe=H(egt=>{"use strict";Object.defineProperty(egt,"__esModule",{value:!0});egt.WorkspaceResolver=void 0;var ZZo=Qfe(),$ut=class e{supportsDescriptor(t,r){return!!(t.range.startsWith(e.protocol)||r.project.tryWorkspaceByDescriptor(t)!==null)}supportsLocator(t,r){return!!t.reference.startsWith(e.protocol)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[n.project.getWorkspaceByDescriptor(t).anchoredLocator]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let n=r.project.getWorkspaceByCwd(t.reference.slice(e.protocol.length));return{...t,version:n.manifest.version||"0.0.0",languageName:"unknown",linkType:ZZo.LinkType.SOFT,conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...n.manifest.dependencies,...n.manifest.devDependencies])),peerDependencies:new Map([...n.manifest.peerDependencies]),dependenciesMeta:n.manifest.dependenciesMeta,peerDependenciesMeta:n.manifest.peerDependenciesMeta,bin:n.manifest.bin}}};egt.WorkspaceResolver=$ut;$ut.protocol="workspace:"});var n$=H(aX=>{"use strict";Object.defineProperty(aX,"__esModule",{value:!0});aX.SemVer=void 0;aX.satisfiesWithPrereleases=PZo;aX.validRange=ixn;aX.clean=OZo;aX.getComparator=sxn;aX.mergeComparators=pur;aX.stringifyComparator=oxn;aX.simplifyRanges=MZo;var LZo=(Pa(),vi(Va)),_oe=LZo.__importDefault(UC()),VZo=UC();Object.defineProperty(aX,"SemVer",{enumerable:!0,get:function(){return VZo.SemVer}});var rxn=new Map;function PZo(e,t,r=!1){if(!e)return!1;let n=`${t}${r}`,a=rxn.get(n);if(typeof a>"u")try{a=new _oe.default.Range(t,{includePrerelease:!0,loose:r})}catch{return!1}finally{rxn.set(n,a||null)}else if(a===null)return!1;let o;try{o=new _oe.default.SemVer(e,a)}catch{return!1}return a.test(o)?!0:(o.prerelease&&(o.prerelease=[]),a.set.some(l=>{for(let A of l)A.semver.prerelease&&(A.semver.prerelease=[]);return l.every(A=>A.test(o))}))}var nxn=new Map;function ixn(e){if(e.indexOf(":")!==-1)return null;let t=nxn.get(e);if(typeof t<"u")return t;try{t=new _oe.default.Range(e)}catch{t=null}return nxn.set(e,t),t}var WZo=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function OZo(e){let t=WZo.exec(e);return t?t[1]:null}function sxn(e){if(e.semver===_oe.default.Comparator.ANY)return{gt:null,lt:null};switch(e.operator){case"":return{gt:[">=",e.semver],lt:["<=",e.semver]};case">":case">=":return{gt:[e.operator,e.semver],lt:null};case"<":case"<=":return{gt:null,lt:[e.operator,e.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${e.operator})`)}}function pur(e){if(e.length===0)return null;let t=null,r=null;for(let n of e){if(n.gt){let a=t!==null?_oe.default.compare(n.gt[1],t[1]):null;(a===null||a>0||a===0&&n.gt[0]===">")&&(t=n.gt)}if(n.lt){let a=r!==null?_oe.default.compare(n.lt[1],r[1]):null;(a===null||a<0||a===0&&n.lt[0]==="<")&&(r=n.lt)}}if(t&&r){let n=_oe.default.compare(t[1],r[1]);if(n===0&&(t[0]===">"||r[0]==="<")||n>0)return null}return{gt:t,lt:r}}function oxn(e){if(e.gt&&e.lt){if(e.gt[0]===">="&&e.lt[0]==="<="&&e.gt[1].version===e.lt[1].version)return e.gt[1].version;if(e.gt[0]===">="&&e.lt[0]==="<"){if(e.lt[1].version===`${e.gt[1].major+1}.0.0-0`)return`^${e.gt[1].version}`;if(e.lt[1].version===`${e.gt[1].major}.${e.gt[1].minor+1}.0-0`)return`~${e.gt[1].version}`}}let t=[];return e.gt&&t.push(e.gt[0]+e.gt[1].version),e.lt&&t.push(e.lt[0]+e.lt[1].version),t.length?t.join(" "):"*"}function MZo(e){let t=e.map(HZo).map(n=>ixn(n).set.map(a=>a.map(o=>sxn(o)))),r=t.shift().map(n=>pur(n)).filter(n=>n!==null);for(let n of t){let a=[];for(let o of r)for(let l of n){let A=pur([o,...l]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(n=>oxn(n)).join(" || ")}function HZo(e){let t=e.split("||");if(t.length>1){let r=new Set;for(let n of t)t.some(a=>a!==n&&_oe.default.subset(n,a))||r.add(n);if(r.size{"use strict";Object.defineProperty(sgt,"__esModule",{value:!0});sgt.Manifest=void 0;var igt=(Pa(),vi(Va)),tgt=no(),axn=TW(),YZo=igt.__importDefault(UC()),QZo=Kfe(),ngt=igt.__importStar(xW()),XZo=igt.__importStar(n$()),O0=igt.__importStar(uG()),lve=class e{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.libc=null,this.type=null,this.packageManager=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.browser=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.installConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(t,{baseFs:r=new tgt.NodeFS}={}){let n=tgt.ppath.join(t,"package.json");try{return await e.fromFile(n,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(t,{baseFs:r}={}){let n=await e.tryFind(t,{baseFs:r});if(n===null)throw new Error("Manifest not found");return n}static async fromFile(t,{baseFs:r=new tgt.NodeFS}={}){let n=new e;return await n.loadFile(t,{baseFs:r}),n}static fromText(t){let r=new e;return r.loadFromText(t),r}loadFromText(t){let r;try{r=JSON.parse(lxn(t)||"{}")}catch(n){throw n.message+=` (when parsing ${t})`,n}this.load(r),this.indent=cxn(t)}async loadFile(t,{baseFs:r=new tgt.NodeFS}){let n=await r.readFilePromise(t,"utf8"),a;try{a=JSON.parse(lxn(n)||"{}")}catch(o){throw o.message+=` (when parsing ${t})`,o}this.load(a),this.indent=cxn(n)}load(t,{yamlCompatibilityMode:r=!1}={}){if(typeof t!="object"||t===null)throw new Error(`Utterly invalid manifest data (${t})`);this.raw=t;let n=[];if(this.name=null,typeof t.name=="string")try{this.name=O0.parseIdent(t.name)}catch{n.push(new Error("Parsing failed for the 'name' field"))}if(typeof t.version=="string"?this.version=t.version:this.version=null,Array.isArray(t.os)){let o=[];this.os=o;for(let l of t.os)typeof l!="string"?n.push(new Error("Parsing failed for the 'os' field")):o.push(l)}else this.os=null;if(Array.isArray(t.cpu)){let o=[];this.cpu=o;for(let l of t.cpu)typeof l!="string"?n.push(new Error("Parsing failed for the 'cpu' field")):o.push(l)}else this.cpu=null;if(Array.isArray(t.libc)){let o=[];this.libc=o;for(let l of t.libc)typeof l!="string"?n.push(new Error("Parsing failed for the 'libc' field")):o.push(l)}else this.libc=null;if(typeof t.type=="string"?this.type=t.type:this.type=null,typeof t.packageManager=="string"?this.packageManager=t.packageManager:this.packageManager=null,typeof t.private=="boolean"?this.private=t.private:this.private=!1,typeof t.license=="string"?this.license=t.license:this.license=null,typeof t.languageName=="string"?this.languageName=t.languageName:this.languageName=null,typeof t.main=="string"?this.main=BZ(t.main):this.main=null,typeof t.module=="string"?this.module=BZ(t.module):this.module=null,t.browser!=null)if(typeof t.browser=="string")this.browser=BZ(t.browser);else{this.browser=new Map;for(let[o,l]of Object.entries(t.browser))this.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}else this.browser=null;if(this.bin=new Map,typeof t.bin=="string")t.bin.trim()===""?n.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,BZ(t.bin)):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.bin=="object"&&t.bin!==null)for(let[o,l]of Object.entries(t.bin)){if(typeof l!="string"||l.trim()===""){n.push(new Error(`Invalid bin definition for '${o}'`));continue}let A=O0.parseIdent(o);this.bin.set(A.name,BZ(l))}if(this.scripts=new Map,typeof t.scripts=="object"&&t.scripts!==null)for(let[o,l]of Object.entries(t.scripts)){if(typeof l!="string"){n.push(new Error(`Invalid script definition for '${o}'`));continue}this.scripts.set(o,l)}if(this.dependencies=new Map,typeof t.dependencies=="object"&&t.dependencies!==null)for(let[o,l]of Object.entries(t.dependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f)}if(this.devDependencies=new Map,typeof t.devDependencies=="object"&&t.devDependencies!==null)for(let[o,l]of Object.entries(t.devDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.devDependencies.set(f.identHash,f)}if(this.peerDependencies=new Map,typeof t.peerDependencies=="object"&&t.peerDependencies!==null)for(let[o,l]of Object.entries(t.peerDependencies)){let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}(typeof l!="string"||!l.startsWith(QZo.WorkspaceResolver.protocol)&&!XZo.validRange(l))&&(n.push(new Error(`Invalid dependency range for '${o}'`)),l="*");let f=O0.makeDescriptor(A,l);this.peerDependencies.set(f.identHash,f)}typeof t.workspaces=="object"&&t.workspaces!==null&&t.workspaces.nohoist&&n.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(t.workspaces)?t.workspaces:typeof t.workspaces=="object"&&t.workspaces!==null&&Array.isArray(t.workspaces.packages)?t.workspaces.packages:[];this.workspaceDefinitions=[];for(let o of a){if(typeof o!="string"){n.push(new Error(`Invalid workspace definition for '${o}'`));continue}this.workspaceDefinitions.push({pattern:o})}if(this.dependenciesMeta=new Map,typeof t.dependenciesMeta=="object"&&t.dependenciesMeta!==null)for(let[o,l]of Object.entries(t.dependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}`));continue}let A=O0.parseDescriptor(o),f=this.ensureDependencyMeta(A),I=rgt(l.built,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid built meta field for '${o}'`));continue}let C=rgt(l.optional,{yamlCompatibilityMode:r});if(C===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}let b=rgt(l.unplugged,{yamlCompatibilityMode:r});if(b===null){n.push(new Error(`Invalid unplugged meta field for '${o}'`));continue}Object.assign(f,{built:I,optional:C,unplugged:b})}if(this.peerDependenciesMeta=new Map,typeof t.peerDependenciesMeta=="object"&&t.peerDependenciesMeta!==null)for(let[o,l]of Object.entries(t.peerDependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}'`));continue}let A=O0.parseDescriptor(o),f=this.ensurePeerDependencyMeta(A),I=rgt(l.optional,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}Object.assign(f,{optional:I})}if(this.resolutions=[],typeof t.resolutions=="object"&&t.resolutions!==null)for(let[o,l]of Object.entries(t.resolutions)){if(typeof l!="string"){n.push(new Error(`Invalid resolution entry for '${o}'`));continue}try{this.resolutions.push({pattern:(0,axn.parseResolution)(o),reference:l})}catch(A){n.push(A);continue}}if(Array.isArray(t.files)){this.files=new Set;for(let o of t.files){if(typeof o!="string"){n.push(new Error(`Invalid files entry for '${o}'`));continue}this.files.add(o)}}else this.files=null;if(typeof t.publishConfig=="object"&&t.publishConfig!==null){if(this.publishConfig={},typeof t.publishConfig.access=="string"&&(this.publishConfig.access=t.publishConfig.access),typeof t.publishConfig.main=="string"&&(this.publishConfig.main=BZ(t.publishConfig.main)),typeof t.publishConfig.module=="string"&&(this.publishConfig.module=BZ(t.publishConfig.module)),t.publishConfig.browser!=null)if(typeof t.publishConfig.browser=="string")this.publishConfig.browser=BZ(t.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[o,l]of Object.entries(t.publishConfig.browser))this.publishConfig.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}if(typeof t.publishConfig.registry=="string"&&(this.publishConfig.registry=t.publishConfig.registry),typeof t.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=t.publishConfig.provenance),typeof t.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,BZ(t.publishConfig.bin)]]):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.publishConfig.bin=="object"&&t.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[o,l]of Object.entries(t.publishConfig.bin)){if(typeof l!="string"){n.push(new Error(`Invalid bin definition for '${o}'`));continue}this.publishConfig.bin.set(o,BZ(l))}}if(Array.isArray(t.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let o of t.publishConfig.executableFiles){if(typeof o!="string"){n.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(BZ(o))}}}else this.publishConfig=null;if(typeof t.installConfig=="object"&&t.installConfig!==null){this.installConfig={};for(let o of Object.keys(t.installConfig))o==="hoistingLimits"?typeof t.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=t.installConfig.hoistingLimits:n.push(new Error("Invalid hoisting limits definition")):o=="selfReferences"?typeof t.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=t.installConfig.selfReferences:n.push(new Error("Invalid selfReferences definition, must be a boolean value")):n.push(new Error(`Unrecognized installConfig key: ${o}`))}else this.installConfig=null;if(typeof t.optionalDependencies=="object"&&t.optionalDependencies!==null)for(let[o,l]of Object.entries(t.optionalDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f);let I=O0.makeDescriptor(A,"unknown"),C=this.ensureDependencyMeta(I);Object.assign(C,{optional:!0})}typeof t.preferUnplugged=="boolean"?this.preferUnplugged=t.preferUnplugged:this.preferUnplugged=null,this.errors=n}getForScope(t){switch(t){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${t}")`)}}hasConsumerDependency(t){return!!(this.dependencies.has(t.identHash)||this.peerDependencies.has(t.identHash))}hasHardDependency(t){return!!(this.dependencies.has(t.identHash)||this.devDependencies.has(t.identHash))}hasSoftDependency(t){return!!this.peerDependencies.has(t.identHash)}hasDependency(t){return!!(this.hasHardDependency(t)||this.hasSoftDependency(t))}getConditions(){let t=[];return this.os&&this.os.length>0&&t.push(fur("os",this.os)),this.cpu&&this.cpu.length>0&&t.push(fur("cpu",this.cpu)),this.libc&&this.libc.length>0&&t.push(fur("libc",this.libc)),t.length>0?t.join(" & "):null}ensureDependencyMeta(t){if(t.range!=="unknown"&&!YZo.default.valid(t.range))throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=t.range!=="unknown"?t.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let o=a.get(n);return o||a.set(n,o={}),o}ensurePeerDependencyMeta(t){if(t.range!=="unknown")throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=this.peerDependenciesMeta.get(r);return n||this.peerDependenciesMeta.set(r,n={}),n}setRawField(t,r,{after:n=[]}={}){let a=new Set(n.filter(o=>Object.hasOwn(this.raw,o)));if(a.size===0||Object.hasOwn(this.raw,t))this.raw[t]=r;else{let o=this.raw,l=this.raw={},A=!1;for(let f of Object.keys(o))l[f]=o[f],A||(a.delete(f),a.size===0&&(l[t]=r,A=!0))}}exportTo(t,{compatibilityMode:r=!0}={}){if(Object.assign(t,this.raw),this.name!==null?t.name=O0.stringifyIdent(this.name):delete t.name,this.version!==null?t.version=this.version:delete t.version,this.os!==null?t.os=this.os:delete t.os,this.cpu!==null?t.cpu=this.cpu:delete t.cpu,this.type!==null?t.type=this.type:delete t.type,this.packageManager!==null?t.packageManager=this.packageManager:delete t.packageManager,this.private?t.private=!0:delete t.private,this.license!==null?t.license=this.license:delete t.license,this.languageName!==null?t.languageName=this.languageName:delete t.languageName,this.main!==null?t.main=this.main:delete t.main,this.module!==null?t.module=this.module:delete t.module,this.browser!==null){let o=this.browser;typeof o=="string"?t.browser=o:o instanceof Map&&(t.browser=Object.assign({},...Array.from(o.keys()).sort().map(l=>({[l]:o.get(l)}))))}else delete t.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?t.bin=this.bin.get(this.name.name):this.bin.size>0?t.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete t.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?t.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:t.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?t.workspaces=this.raw.workspaces:delete t.workspaces;let n=[],a=[];for(let o of this.dependencies.values()){let l=this.dependenciesMeta.get(O0.stringifyIdent(o)),A=!1;if(r&&l){let f=l.get(null);f&&f.optional&&(A=!0)}A?a.push(o):n.push(o)}n.length>0?t.dependencies=Object.assign({},...O0.sortDescriptors(n).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.dependencies,a.length>0?t.optionalDependencies=Object.assign({},...O0.sortDescriptors(a).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.optionalDependencies,this.devDependencies.size>0?t.devDependencies=Object.assign({},...O0.sortDescriptors(this.devDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.devDependencies,this.peerDependencies.size>0?t.peerDependencies=Object.assign({},...O0.sortDescriptors(this.peerDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.peerDependencies,t.dependenciesMeta={};for(let[o,l]of ngt.sortMap(this.dependenciesMeta.entries(),([A,f])=>A))for(let[A,f]of ngt.sortMap(l.entries(),([I,C])=>I!==null?`0${I}`:"1")){let I=A!==null?O0.stringifyDescriptor(O0.makeDescriptor(O0.parseIdent(o),A)):o,C={...f};r&&A===null&&delete C.optional,Object.keys(C).length!==0&&(t.dependenciesMeta[I]=C)}if(Object.keys(t.dependenciesMeta).length===0&&delete t.dependenciesMeta,this.peerDependenciesMeta.size>0?t.peerDependenciesMeta=Object.assign({},...ngt.sortMap(this.peerDependenciesMeta.entries(),([o,l])=>o).map(([o,l])=>({[o]:l}))):delete t.peerDependenciesMeta,this.resolutions.length>0?t.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:l})=>({[(0,axn.stringifyResolution)(o)]:l}))):delete t.resolutions,this.files!==null?t.files=Array.from(this.files):delete t.files,this.preferUnplugged!==null?t.preferUnplugged=this.preferUnplugged:delete t.preferUnplugged,this.scripts!==null&&this.scripts.size>0){t.scripts??={};for(let o of Object.keys(t.scripts))this.scripts.has(o)||delete t.scripts[o];for(let[o,l]of this.scripts.entries())t.scripts[o]=l}else delete t.scripts;return t}};sgt.Manifest=lve;lve.fileName="package.json";lve.allDependencies=["dependencies","devDependencies","peerDependencies"];lve.hardDependencies=["dependencies","devDependencies"];function cxn(e){let t=e.match(/^[ \t]+/m);return t?t[0]:" "}function lxn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function BZ(e){return e.replace(/\\/g,"/")}function rgt(e,{yamlCompatibilityMode:t}){return t?ngt.tryParseOptionalBoolean(e):typeof e>"u"||typeof e=="boolean"?e:null}function uxn(e,t){let r=t.search(/[^!]/);if(r===-1)return"invalid";let n=r%2===0?"":"!",a=t.slice(r);return`${n}${e}=${a}`}function fur(e,t){return t.length===1?uxn(e,t[0]):`(${t.map(r=>uxn(e,r)).join(" | ")})`}});var sM=H(jfe=>{"use strict";Object.defineProperty(jfe,"__esModule",{value:!0});jfe.Report=jfe.ReportError=void 0;jfe.isReportError=gxn;var JZo=kW(),UZo=wt("stream"),KZo=wt("string_decoder"),jZo=M9(),zZo=15,Iur=class extends Error{constructor(t,r,n){super(r),this.reportExtra=n,this.reportCode=t}};jfe.ReportError=Iur;function gxn(e){return typeof e.reportCode<"u"}var hur=class{constructor(){this.cacheHits=new Set,this.cacheMisses=new Set,this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(t){this.cacheHits.add(t.locatorHash)}reportCacheMiss(t,r){this.cacheMisses.add(t.locatorHash)}static progressViaCounter(t){let r=0,n,a=new Promise(f=>{n=f}),o=f=>{let I=n;a=new Promise(C=>{n=C}),r=f,I()},l=(f=0)=>{o(r+1)},A=async function*(){for(;r{r=l}),a=(0,JZo.throttle)(l=>{let A=r;n=new Promise(f=>{r=f}),t=l,A()},1e3/zZo),o=async function*(){for(;;)await n,yield{title:t}}();return{[Symbol.asyncIterator](){return o},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(t,r){let n=this.reportProgress(t);try{return await r(t)}finally{n.stop()}}startProgressSync(t,r){let n=this.reportProgress(t);try{return r(t)}finally{n.stop()}}reportInfoOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(t,r),n?.reportExtra?.(this))}reportWarningOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(t,r),n?.reportExtra?.(this))}reportErrorOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(t,r),n?.reportExtra?.(this))}reportExceptionOnce(t){gxn(t)?this.reportErrorOnce(t.reportCode,t.message,{key:t,reportExtra:t.reportExtra}):this.reportErrorOnce(jZo.MessageName.EXCEPTION,t.stack||t.message,{key:t})}createStreamReporter(t=null){let r=new UZo.PassThrough,n=new KZo.StringDecoder,a="";return r.on("data",o=>{let l=n.write(o),A;do if(A=l.indexOf(` +`),A!==-1){let f=a+l.substring(0,A);l=l.substring(A+1),a="",t!==null?this.reportInfo(null,`${t} ${f}`):this.reportInfo(null,f)}while(A!==-1);a+=l}),r.on("end",()=>{let o=n.end();o!==""&&(t!==null?this.reportInfo(null,`${t} ${o}`):this.reportInfo(null,o))}),r}};jfe.Report=hur});var Cur=H(ogt=>{"use strict";Object.defineProperty(ogt,"__esModule",{value:!0});ogt.MultiFetcher=void 0;var qZo=(Pa(),vi(Va)),$Zo=M9(),eLo=sM(),tLo=qZo.__importStar(uG()),mur=class{constructor(t){this.fetchers=t}supports(t,r){return!!this.tryFetcher(t,r)}getLocalPath(t,r){return this.getFetcher(t,r).getLocalPath(t,r)}async fetch(t,r){return await this.getFetcher(t,r).fetch(t,r)}tryFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));return n||null}getFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));if(!n)throw new eLo.ReportError($Zo.MessageName.FETCHER_NOT_FOUND,`${tLo.prettyLocator(r.project.configuration,t)} isn't supported by any available fetcher`);return n}};ogt.MultiFetcher=mur});var yur=H(agt=>{"use strict";Object.defineProperty(agt,"__esModule",{value:!0});agt.MultiResolver=void 0;var rLo=(Pa(),vi(Va)),Axn=rLo.__importStar(uG()),_ur=class{constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Axn.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Axn.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};agt.MultiResolver=_ur});var vur=H(cgt=>{"use strict";Object.defineProperty(cgt,"__esModule",{value:!0});cgt.VirtualFetcher=void 0;var nLo=(Pa(),vi(Va)),bur=no(),Eur=nLo.__importStar(uG()),Sur=class{supports(t){return!!t.reference.startsWith("virtual:")}getLocalPath(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a);return r.fetcher.getLocalPath(o,r)}async fetch(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a),l=await r.fetcher.fetch(o,r);return await this.ensureVirtualLink(t,l,r)}getLocatorFilename(t){return Eur.slugifyLocator(t)}async ensureVirtualLink(t,r,n){let a=r.packageFs.getRealPath(),o=n.project.configuration.get("virtualFolder"),l=this.getLocatorFilename(t),A=bur.VirtualFS.makeVirtualPath(o,l,a),f=new bur.AliasFS(A,{baseFs:r.packageFs,pathUtils:bur.ppath});return{...r,packageFs:f}}};cgt.VirtualFetcher=Sur});var dxn=H(ugt=>{"use strict";Object.defineProperty(ugt,"__esModule",{value:!0});ugt.VirtualResolver=void 0;var lgt=class e{static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};ugt.VirtualResolver=lgt;lgt.protocol="virtual:"});var wur=H(ggt=>{"use strict";Object.defineProperty(ggt,"__esModule",{value:!0});ggt.WorkspaceFetcher=void 0;var pxn=no(),fxn=Kfe(),Bur=class{supports(t){return!!t.reference.startsWith(fxn.WorkspaceResolver.protocol)}getLocalPath(t,r){return this.getWorkspace(t,r).cwd}async fetch(t,r){let n=this.getWorkspace(t,r).cwd;return{packageFs:new pxn.CwdFS(n),prefixPath:pxn.PortablePath.dot,localPath:n}}getWorkspace(t,r){return r.project.getWorkspaceByCwd(t.reference.slice(fxn.WorkspaceResolver.protocol.length))}};ggt.WorkspaceFetcher=Bur});var mxn=H(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});JK.RESOLVED_RC_FILE=void 0;JK.resolveRcFiles=aLo;JK.getValue=cLo;JK.getValueByTree=Nur;JK.getSource=lLo;var iLo=(e,t,r)=>{let n=[...e];return n.reverse(),n.findIndex(t,r)};function t5e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var oM;(function(e){e[e.Object=0]="Object",e[e.Array=1]="Array",e[e.Literal=2]="Literal",e[e.Undefined=3]="Undefined"})(oM||(oM={}));function Ixn(e){return typeof e>"u"?oM.Undefined:t5e(e)?oM.Object:Array.isArray(e)?oM.Array:oM.Literal}function Dur(e,t){return Object.hasOwn(e,t)}function sLo(e){return t5e(e)&&Dur(e,"onConflict")&&typeof e.onConflict=="string"}function oLo(e){if(typeof e>"u")return{onConflict:"default",value:e};if(!sLo(e))return{onConflict:"default",value:e};if(Dur(e,"value"))return e;let{onConflict:t,...r}=e;return{onConflict:t,value:r}}function hxn(e,t){let r=t5e(e)&&Dur(e,t)?e[t]:void 0;return oLo(r)}JK.RESOLVED_RC_FILE=Symbol();function gve(e,t){return[e,t,JK.RESOLVED_RC_FILE]}function kur(e){return Array.isArray(e)?e[2]===JK.RESOLVED_RC_FILE:!1}function Tur(e,t){if(t5e(e)){let r={};for(let n of Object.keys(e))r[n]=Tur(e[n],t);return gve(t,r)}return Array.isArray(e)?gve(t,e.map(r=>Tur(r,t))):gve(t,e)}function Rur(e,t,r,n,a){let o,l=[],A=a,f=0;for(let C=a-1;C>=n;--C){let[b,E]=e[C],{onConflict:N,value:B}=hxn(E,r),F=Ixn(B);if(F!==oM.Undefined){if(o??=F,F!==o||N==="hardReset"){f=A;break}if(F===oM.Literal)return gve(b,B);if(l.unshift([b,B]),N==="reset"){f=C;break}N==="extend"&&C===n&&(n=0),A=C}}if(typeof o>"u")return null;let I=l.map(([C])=>C).join(", ");switch(o){case oM.Array:return gve(I,new Array().concat(...l.map(([C,b])=>b.map(E=>Tur(E,C)))));case oM.Object:{let C=Object.assign({},...l.map(([,F])=>F)),b=Object.keys(C),E={},N=e.map(([F,Q])=>[F,hxn(Q,r).value]),B=iLo(N,([F,Q])=>{let X=Ixn(Q);return X!==oM.Object&&X!==oM.Undefined});if(B!==-1){let F=N.slice(B+1);for(let Q of b)E[Q]=Rur(F,t,Q,0,F.length)}else for(let F of b)E[F]=Rur(N,t,F,f,N.length);return gve(I,E)}default:throw new Error("Assertion failed: Non-extendable value type")}}function aLo(e){return Rur(e.map(([t,r])=>[t,{".":r}]),[],".",0,e.length)}function cLo(e){return kur(e)?e[1]:e}function Nur(e){let t=kur(e)?e[1]:e;if(Array.isArray(t))return t.map(r=>Nur(r));if(t5e(t)){let r={};for(let[n,a]of Object.entries(t))r[n]=Nur(a);return r}return t}function lLo(e){return kur(e)?e[0]:null}});var Agt=H(r5e=>{"use strict";Object.defineProperty(r5e,"__esModule",{value:!0});r5e.getDefaultGlobalFolder=uLo;r5e.getHomeFolder=_xn;r5e.isFolderInside=gLo;var i$=no(),Cxn=wt("os");function uLo(){if(process.platform==="win32"){let e=i$.npath.toPortablePath(process.env.LOCALAPPDATA||i$.npath.join((0,Cxn.homedir)(),"AppData","Local"));return i$.ppath.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let e=i$.npath.toPortablePath(process.env.XDG_DATA_HOME);return i$.ppath.resolve(e,"yarn/berry")}return i$.ppath.resolve(_xn(),".yarn/berry")}function _xn(){return i$.npath.toPortablePath((0,Cxn.homedir)()||"/usr/local/share")}function gLo(e,t){let r=i$.ppath.relative(t,e);return r&&!r.startsWith("..")&&!i$.ppath.isAbsolute(r)}});var Exn=H((O8l,bxn)=>{"use strict";var xur=wt("https"),Gur=wt("http"),{URL:yxn}=wt("url"),Fur=class extends Gur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200?r(null,l):(l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}},Zur=class extends xur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{if(a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200){let f=super.createConnection({...t,socket:l});r(null,f)}else l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}};bxn.exports={HttpProxyAgent:Fur,HttpsProxyAgent:Zur}});var o$=H((s$,dgt)=>{"use strict";Object.defineProperty(s$,"__esModule",{value:!0});var Sxn=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ALo(e){return Sxn.includes(e)}var dLo=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Sxn];function pLo(e){return dLo.includes(e)}var fLo=["null","undefined","string","number","bigint","boolean","symbol"];function ILo(e){return fLo.includes(e)}function Ave(e){return t=>typeof t===e}var{toString:vxn}=Object.prototype,n5e=e=>{let t=vxn.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&Xi.domElement(e))return"HTMLElement";if(pLo(t))return t},Xb=e=>t=>n5e(t)===e;function Xi(e){if(e===null)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Xi.observable(e))return"Observable";if(Xi.array(e))return"Array";if(Xi.buffer(e))return"Buffer";let t=n5e(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Xi.undefined=Ave("undefined");Xi.string=Ave("string");var hLo=Ave("number");Xi.number=e=>hLo(e)&&!Xi.nan(e);Xi.bigint=Ave("bigint");Xi.function_=Ave("function");Xi.null_=e=>e===null;Xi.class_=e=>Xi.function_(e)&&e.toString().startsWith("class ");Xi.boolean=e=>e===!0||e===!1;Xi.symbol=Ave("symbol");Xi.numericString=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e));Xi.array=(e,t)=>Array.isArray(e)?Xi.function_(t)?e.every(t):!0:!1;Xi.buffer=e=>{var t,r,n,a;return(a=(n=(r=(t=e)===null||t===void 0?void 0:t.constructor)===null||r===void 0?void 0:r.isBuffer)===null||n===void 0?void 0:n.call(r,e))!==null&&a!==void 0?a:!1};Xi.blob=e=>Xb("Blob")(e);Xi.nullOrUndefined=e=>Xi.null_(e)||Xi.undefined(e);Xi.object=e=>!Xi.null_(e)&&(typeof e=="object"||Xi.function_(e));Xi.iterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.iterator])};Xi.asyncIterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.asyncIterator])};Xi.generator=e=>{var t,r;return Xi.iterable(e)&&Xi.function_((t=e)===null||t===void 0?void 0:t.next)&&Xi.function_((r=e)===null||r===void 0?void 0:r.throw)};Xi.asyncGenerator=e=>Xi.asyncIterable(e)&&Xi.function_(e.next)&&Xi.function_(e.throw);Xi.nativePromise=e=>Xb("Promise")(e);var mLo=e=>{var t,r;return Xi.function_((t=e)===null||t===void 0?void 0:t.then)&&Xi.function_((r=e)===null||r===void 0?void 0:r.catch)};Xi.promise=e=>Xi.nativePromise(e)||mLo(e);Xi.generatorFunction=Xb("GeneratorFunction");Xi.asyncGeneratorFunction=e=>n5e(e)==="AsyncGeneratorFunction";Xi.asyncFunction=e=>n5e(e)==="AsyncFunction";Xi.boundFunction=e=>Xi.function_(e)&&!e.hasOwnProperty("prototype");Xi.regExp=Xb("RegExp");Xi.date=Xb("Date");Xi.error=Xb("Error");Xi.map=e=>Xb("Map")(e);Xi.set=e=>Xb("Set")(e);Xi.weakMap=e=>Xb("WeakMap")(e);Xi.weakSet=e=>Xb("WeakSet")(e);Xi.int8Array=Xb("Int8Array");Xi.uint8Array=Xb("Uint8Array");Xi.uint8ClampedArray=Xb("Uint8ClampedArray");Xi.int16Array=Xb("Int16Array");Xi.uint16Array=Xb("Uint16Array");Xi.int32Array=Xb("Int32Array");Xi.uint32Array=Xb("Uint32Array");Xi.float32Array=Xb("Float32Array");Xi.float64Array=Xb("Float64Array");Xi.bigInt64Array=Xb("BigInt64Array");Xi.bigUint64Array=Xb("BigUint64Array");Xi.arrayBuffer=Xb("ArrayBuffer");Xi.sharedArrayBuffer=Xb("SharedArrayBuffer");Xi.dataView=Xb("DataView");Xi.enumCase=(e,t)=>Object.values(t).includes(e);Xi.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype;Xi.urlInstance=e=>Xb("URL")(e);Xi.urlString=e=>{if(!Xi.string(e))return!1;try{return new URL(e),!0}catch{return!1}};Xi.truthy=e=>!!e;Xi.falsy=e=>!e;Xi.nan=e=>Number.isNaN(e);Xi.primitive=e=>Xi.null_(e)||ILo(typeof e);Xi.integer=e=>Number.isInteger(e);Xi.safeInteger=e=>Number.isSafeInteger(e);Xi.plainObject=e=>{if(vxn.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})};Xi.typedArray=e=>ALo(n5e(e));var CLo=e=>Xi.safeInteger(e)&&e>=0;Xi.arrayLike=e=>!Xi.nullOrUndefined(e)&&!Xi.function_(e)&&CLo(e.length);Xi.inRange=(e,t)=>{if(Xi.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(Xi.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};var _Lo=1,yLo=["innerHTML","ownerDocument","style","attributes","nodeValue"];Xi.domElement=e=>Xi.object(e)&&e.nodeType===_Lo&&Xi.string(e.nodeName)&&!Xi.plainObject(e)&&yLo.every(t=>t in e);Xi.observable=e=>{var t,r,n,a;return e?e===((r=(t=e)[Symbol.observable])===null||r===void 0?void 0:r.call(t))||e===((a=(n=e)["@@observable"])===null||a===void 0?void 0:a.call(n)):!1};Xi.nodeStream=e=>Xi.object(e)&&Xi.function_(e.pipe)&&!Xi.observable(e);Xi.infinite=e=>e===1/0||e===-1/0;var Bxn=e=>t=>Xi.integer(t)&&Math.abs(t%2)===e;Xi.evenInteger=Bxn(0);Xi.oddInteger=Bxn(1);Xi.emptyArray=e=>Xi.array(e)&&e.length===0;Xi.nonEmptyArray=e=>Xi.array(e)&&e.length>0;Xi.emptyString=e=>Xi.string(e)&&e.length===0;var bLo=e=>Xi.string(e)&&!/\S/.test(e);Xi.emptyStringOrWhitespace=e=>Xi.emptyString(e)||bLo(e);Xi.nonEmptyString=e=>Xi.string(e)&&e.length>0;Xi.nonEmptyStringAndNotWhitespace=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e);Xi.emptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length===0;Xi.nonEmptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length>0;Xi.emptySet=e=>Xi.set(e)&&e.size===0;Xi.nonEmptySet=e=>Xi.set(e)&&e.size>0;Xi.emptyMap=e=>Xi.map(e)&&e.size===0;Xi.nonEmptyMap=e=>Xi.map(e)&&e.size>0;Xi.propertyKey=e=>Xi.any([Xi.string,Xi.number,Xi.symbol],e);Xi.formData=e=>Xb("FormData")(e);Xi.urlSearchParams=e=>Xb("URLSearchParams")(e);var wxn=(e,t,r)=>{if(!Xi.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(r.length===0)throw new TypeError("Invalid number of values");return e.call(r,t)};Xi.any=(e,...t)=>(Xi.array(e)?e:[e]).some(n=>wxn(Array.prototype.some,n,t));Xi.all=(e,...t)=>wxn(Array.prototype.every,e,t);var Mu=(e,t,r,n={})=>{if(!e){let{multipleValues:a}=n,o=a?`received values of types ${[...new Set(r.map(l=>`\`${Xi(l)}\``))].join(", ")}`:`received value of type \`${Xi(r)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${o}.`)}};s$.assert={undefined:e=>Mu(Xi.undefined(e),"undefined",e),string:e=>Mu(Xi.string(e),"string",e),number:e=>Mu(Xi.number(e),"number",e),bigint:e=>Mu(Xi.bigint(e),"bigint",e),function_:e=>Mu(Xi.function_(e),"Function",e),null_:e=>Mu(Xi.null_(e),"null",e),class_:e=>Mu(Xi.class_(e),"Class",e),boolean:e=>Mu(Xi.boolean(e),"boolean",e),symbol:e=>Mu(Xi.symbol(e),"symbol",e),numericString:e=>Mu(Xi.numericString(e),"string with a number",e),array:(e,t)=>{Mu(Xi.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>Mu(Xi.buffer(e),"Buffer",e),blob:e=>Mu(Xi.blob(e),"Blob",e),nullOrUndefined:e=>Mu(Xi.nullOrUndefined(e),"null or undefined",e),object:e=>Mu(Xi.object(e),"Object",e),iterable:e=>Mu(Xi.iterable(e),"Iterable",e),asyncIterable:e=>Mu(Xi.asyncIterable(e),"AsyncIterable",e),generator:e=>Mu(Xi.generator(e),"Generator",e),asyncGenerator:e=>Mu(Xi.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>Mu(Xi.nativePromise(e),"native Promise",e),promise:e=>Mu(Xi.promise(e),"Promise",e),generatorFunction:e=>Mu(Xi.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>Mu(Xi.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>Mu(Xi.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>Mu(Xi.boundFunction(e),"Function",e),regExp:e=>Mu(Xi.regExp(e),"RegExp",e),date:e=>Mu(Xi.date(e),"Date",e),error:e=>Mu(Xi.error(e),"Error",e),map:e=>Mu(Xi.map(e),"Map",e),set:e=>Mu(Xi.set(e),"Set",e),weakMap:e=>Mu(Xi.weakMap(e),"WeakMap",e),weakSet:e=>Mu(Xi.weakSet(e),"WeakSet",e),int8Array:e=>Mu(Xi.int8Array(e),"Int8Array",e),uint8Array:e=>Mu(Xi.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>Mu(Xi.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>Mu(Xi.int16Array(e),"Int16Array",e),uint16Array:e=>Mu(Xi.uint16Array(e),"Uint16Array",e),int32Array:e=>Mu(Xi.int32Array(e),"Int32Array",e),uint32Array:e=>Mu(Xi.uint32Array(e),"Uint32Array",e),float32Array:e=>Mu(Xi.float32Array(e),"Float32Array",e),float64Array:e=>Mu(Xi.float64Array(e),"Float64Array",e),bigInt64Array:e=>Mu(Xi.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>Mu(Xi.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>Mu(Xi.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>Mu(Xi.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>Mu(Xi.dataView(e),"DataView",e),enumCase:(e,t)=>Mu(Xi.enumCase(e,t),"EnumCase",e),urlInstance:e=>Mu(Xi.urlInstance(e),"URL",e),urlString:e=>Mu(Xi.urlString(e),"string with a URL",e),truthy:e=>Mu(Xi.truthy(e),"truthy",e),falsy:e=>Mu(Xi.falsy(e),"falsy",e),nan:e=>Mu(Xi.nan(e),"NaN",e),primitive:e=>Mu(Xi.primitive(e),"primitive",e),integer:e=>Mu(Xi.integer(e),"integer",e),safeInteger:e=>Mu(Xi.safeInteger(e),"integer",e),plainObject:e=>Mu(Xi.plainObject(e),"plain object",e),typedArray:e=>Mu(Xi.typedArray(e),"TypedArray",e),arrayLike:e=>Mu(Xi.arrayLike(e),"array-like",e),domElement:e=>Mu(Xi.domElement(e),"HTMLElement",e),observable:e=>Mu(Xi.observable(e),"Observable",e),nodeStream:e=>Mu(Xi.nodeStream(e),"Node.js Stream",e),infinite:e=>Mu(Xi.infinite(e),"infinite number",e),emptyArray:e=>Mu(Xi.emptyArray(e),"empty array",e),nonEmptyArray:e=>Mu(Xi.nonEmptyArray(e),"non-empty array",e),emptyString:e=>Mu(Xi.emptyString(e),"empty string",e),emptyStringOrWhitespace:e=>Mu(Xi.emptyStringOrWhitespace(e),"empty string or whitespace",e),nonEmptyString:e=>Mu(Xi.nonEmptyString(e),"non-empty string",e),nonEmptyStringAndNotWhitespace:e=>Mu(Xi.nonEmptyStringAndNotWhitespace(e),"non-empty string and not whitespace",e),emptyObject:e=>Mu(Xi.emptyObject(e),"empty object",e),nonEmptyObject:e=>Mu(Xi.nonEmptyObject(e),"non-empty object",e),emptySet:e=>Mu(Xi.emptySet(e),"empty set",e),nonEmptySet:e=>Mu(Xi.nonEmptySet(e),"non-empty set",e),emptyMap:e=>Mu(Xi.emptyMap(e),"empty map",e),nonEmptyMap:e=>Mu(Xi.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>Mu(Xi.propertyKey(e),"PropertyKey",e),formData:e=>Mu(Xi.formData(e),"FormData",e),urlSearchParams:e=>Mu(Xi.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>Mu(Xi.evenInteger(e),"even integer",e),oddInteger:e=>Mu(Xi.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>Mu(Xi.directInstanceOf(e,t),"T",e),inRange:(e,t)=>Mu(Xi.inRange(e,t),"in range",e),any:(e,...t)=>Mu(Xi.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>Mu(Xi.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})};Object.defineProperties(Xi,{class:{value:Xi.class_},function:{value:Xi.function_},null:{value:Xi.null_}});Object.defineProperties(s$.assert,{class:{value:s$.assert.class_},function:{value:s$.assert.function_},null:{value:s$.assert.null_}});s$.default=Xi;dgt.exports=Xi;dgt.exports.default=Xi;dgt.exports.assert=s$.assert});var Txn=H((M8l,Lur)=>{"use strict";var pgt=class extends Error{constructor(t){super(t||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},fgt=class e{static fn(t){return(...r)=>new e((n,a,o)=>{r.push(o),t(...r).then(n,a)})}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,n)=>{this._reject=n;let a=A=>{(!this._isCanceled||!l.shouldReject)&&(this._isPending=!1,r(A))},o=A=>{this._isPending=!1,n(A)},l=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(l,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),t(a,o,l)})}then(t,r){return this._promise.then(t,r)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(t){if(!(!this._isPending||this._isCanceled)){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r);return}this._rejectOnCancel&&this._reject(new pgt(t))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(fgt.prototype,Promise.prototype);Lur.exports=fgt;Lur.exports.CancelError=pgt});var Rxn=H((Pur,Wur)=>{"use strict";Object.defineProperty(Pur,"__esModule",{value:!0});function ELo(e){return e.encrypted}var Vur=(e,t)=>{let r;typeof t=="function"?r={connect:t}:r=t;let n=typeof r.connect=="function",a=typeof r.secureConnect=="function",o=typeof r.close=="function",l=()=>{n&&r.connect(),ELo(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),o&&e.once("close",r.close)};e.writable&&!e.connecting?l():e.connecting?e.once("connect",l):e.destroyed&&o&&r.close(e._hadError)};Pur.default=Vur;Wur.exports=Vur;Wur.exports.default=Vur});var Nxn=H((Mur,Hur)=>{"use strict";Object.defineProperty(Mur,"__esModule",{value:!0});var SLo=Rxn(),vLo=wt("util"),BLo=Number(process.versions.node.split(".")[0]),Our=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let r=A=>{let f=A.emit.bind(A);A.emit=(I,...C)=>(I==="error"&&(t.error=Date.now(),t.phases.total=t.error-t.start,A.emit=f),f(I,...C))};r(e);let n=()=>{t.abort=Date.now(),(!t.response||BLo>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener("abort",n);let a=A=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,vLo.types.isProxy(A))return;let f=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};A.prependOnceListener("lookup",f),SLo.default(A,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(A.removeListener("lookup",f),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?a(e.socket):e.prependOnceListener("socket",a);let o=()=>{var A;t.upload=Date.now(),t.phases.request=t.upload-((A=t.secureConnect)!==null&&A!==void 0?A:t.connect)};return(typeof e.writableFinished=="boolean"?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?o():e.prependOnceListener("finish",o),e.prependOnceListener("response",A=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,A.timings=t,r(A),A.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),A.prependOnceListener("aborted",n)}),t};Mur.default=Our;Hur.exports=Our;Hur.exports.default=Our});var Lxn=H((H8l,Xur)=>{"use strict";var{V4MAPPED:wLo,ADDRCONFIG:TLo,ALL:Zxn,promises:{Resolver:Dxn},lookup:RLo}=wt("dns"),{promisify:Yur}=wt("util"),NLo=wt("os"),dve=Symbol("cacheableLookupCreateConnection"),Qur=Symbol("cacheableLookupInstance"),kxn=Symbol("expires"),DLo=typeof Zxn=="number",xxn=e=>{if(!(e&&typeof e.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},kLo=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},Gxn=()=>{let e=!1,t=!1;for(let r of Object.values(NLo.networkInterfaces()))for(let n of r)if(!n.internal&&(n.family==="IPv6"?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},xLo=e=>Symbol.iterator in e,Fxn={ttl:!0},GLo={all:!0},Igt=class{constructor({cache:t=new Map,maxTtl:r=1/0,fallbackDuration:n=3600,errorTtl:a=.15,resolver:o=new Dxn,lookup:l=RLo}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=t,this._resolver=o,this._dnsLookup=Yur(l),this._resolver instanceof Dxn?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yur(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yur(this._resolver.resolve6.bind(this._resolver))),this._iface=Gxn(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(t){this.clear(),this._resolver.setServers(t)}get servers(){return this._resolver.getServers()}lookup(t,r,n){if(typeof r=="function"?(n=r,r={}):typeof r=="number"&&(r={family:r}),!n)throw new Error("Callback must be a function.");this.lookupAsync(t,r).then(a=>{r.all?n(null,a):n(null,a.address,a.family,a.expires,a.ttl)},n)}async lookupAsync(t,r={}){typeof r=="number"&&(r={family:r});let n=await this.query(t);if(r.family===6){let a=n.filter(o=>o.family===6);r.hints&wLo&&(DLo&&r.hints&Zxn||a.length===0)?kLo(n):n=a}else r.family===4&&(n=n.filter(a=>a.family===4));if(r.hints&TLo){let{_iface:a}=this;n=n.filter(o=>o.family===6?a.has6:a.has4)}if(n.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${t}`);throw a.code="ENOTFOUND",a.hostname=t,a}return r.all?n:n[0]}async query(t){let r=await this._cache.get(t);if(!r){let n=this._pending[t];if(n)r=await n;else{let a=this.queryAndCache(t);this._pending[t]=a;try{r=await a}finally{delete this._pending[t]}}}return r=r.map(n=>({...n})),r}async _resolve(t){let r=async I=>{try{return await I}catch(C){if(C.code==="ENODATA"||C.code==="ENOTFOUND")return[];throw C}},[n,a]=await Promise.all([this._resolve4(t,Fxn),this._resolve6(t,Fxn)].map(I=>r(I))),o=0,l=0,A=0,f=Date.now();for(let I of n)I.family=4,I.expires=f+I.ttl*1e3,o=Math.max(o,I.ttl);for(let I of a)I.family=6,I.expires=f+I.ttl*1e3,l=Math.max(l,I.ttl);return n.length>0?a.length>0?A=Math.min(o,l):A=o:A=l,{entries:[...n,...a],cacheTtl:A}}async _lookup(t){try{return{entries:await this._dnsLookup(t,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(t,r,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,r[kxn]=Date.now()+n;try{await this._cache.set(t,r,n)}catch(a){this.lookupAsync=async()=>{let o=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw o.cause=a,o}}xLo(this._cache)&&this._tick(n)}}async queryAndCache(t){if(this._hostnamesToFallback.has(t))return this._dnsLookup(t,GLo);let r=await this._resolve(t);r.entries.length===0&&this._fallback&&(r=await this._lookup(t),r.entries.length!==0&&this._hostnamesToFallback.add(t));let n=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(t,r.entries,n),r.entries}_tick(t){let r=this._nextRemovalTime;(!r||t{this._nextRemovalTime=!1;let n=1/0,a=Date.now();for(let[o,l]of this._cache){let A=l[kxn];a>=A?this._cache.delete(o):A("lookup"in r||(r.lookup=this.lookup),t[dve](r,n))}uninstall(t){if(xxn(t),t[dve]){if(t[Qur]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");t.createConnection=t[dve],delete t[dve],delete t[Qur]}}updateInterfaceInfo(){let{_iface:t}=this;this._iface=Gxn(),(t.has4&&!this._iface.has4||t.has6&&!this._iface.has6)&&this._cache.clear()}clear(t){if(t){this._cache.delete(t);return}this._cache.clear()}};Xur.exports=Igt;Xur.exports.default=Igt});var Wxn=H((Y8l,Pxn)=>{"use strict";var FLo="text/plain",ZLo="us-ascii",Vxn=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),LLo=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===ZLo)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length!==0||f&&f!==FLo)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`},VLo=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return LLo(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname&&(a.pathname=a.pathname.replace(/(?0){let l=a.pathname.split("/"),A=l[l.length-1];Vxn(A,t.removeDirectoryIndex)&&(l=l.slice(0,l.length-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])Vxn(l,t.removeQueryParameters)&&a.searchParams.delete(l);t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};Pxn.exports=VLo});var Hxn=H((Q8l,Mxn)=>{Mxn.exports=Oxn;function Oxn(e,t){if(e&&t)return Oxn(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),a=0;a{var Yxn=Hxn();Jur.exports=Yxn(hgt);Jur.exports.strict=Yxn(Qxn);hgt.proto=hgt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return hgt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Qxn(this)},configurable:!0})});function hgt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function Qxn(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var Uur=H((J8l,Jxn)=>{var PLo=mgt(),WLo=function(){},OLo=function(e){return e.setHeader&&typeof e.abort=="function"},MLo=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},Xxn=function(e,t,r){if(typeof t=="function")return Xxn(e,null,t);t||(t={}),r=PLo(r||WLo);var n=e._writableState,a=e._readableState,o=t.readable||t.readable!==!1&&e.readable,l=t.writable||t.writable!==!1&&e.writable,A=!1,f=function(){e.writable||I()},I=function(){l=!1,o||r.call(e)},C=function(){o=!1,l||r.call(e)},b=function(Q){r.call(e,Q?new Error("exited with error code: "+Q):null)},E=function(Q){r.call(e,Q)},N=function(){process.nextTick(B)},B=function(){if(!A){if(o&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(l&&!(n&&n.ended&&!n.destroyed))return r.call(e,new Error("premature close"))}},F=function(){e.req.on("finish",I)};return OLo(e)?(e.on("complete",I),e.on("abort",N),e.req?F():e.on("request",F)):l&&!n&&(e.on("end",f),e.on("close",f)),MLo(e)&&e.on("exit",b),e.on("end",C),e.on("finish",I),t.error!==!1&&e.on("error",E),e.on("close",N),function(){A=!0,e.removeListener("complete",I),e.removeListener("abort",N),e.removeListener("request",F),e.req&&e.req.removeListener("finish",I),e.removeListener("end",f),e.removeListener("close",f),e.removeListener("finish",I),e.removeListener("exit",b),e.removeListener("end",C),e.removeListener("error",E),e.removeListener("close",N)}};Jxn.exports=Xxn});var jxn=H((U8l,Kxn)=>{var HLo=mgt(),YLo=Uur(),Cgt;try{Cgt=wt("fs")}catch{}var i5e=function(){},QLo=/^v?\.0/.test(process.version),_gt=function(e){return typeof e=="function"},XLo=function(e){return!QLo||!Cgt?!1:(e instanceof(Cgt.ReadStream||i5e)||e instanceof(Cgt.WriteStream||i5e))&&_gt(e.close)},JLo=function(e){return e.setHeader&&_gt(e.abort)},ULo=function(e,t,r,n){n=HLo(n);var a=!1;e.on("close",function(){a=!0}),YLo(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,XLo(e))return e.close(i5e);if(JLo(e))return e.abort();if(_gt(e.destroy))return e.destroy();n(l||new Error("stream was destroyed"))}}},Uxn=function(e){e()},KLo=function(e,t){return e.pipe(t)},jLo=function(){var e=Array.prototype.slice.call(arguments),t=_gt(e[e.length-1]||i5e)&&e.pop()||i5e;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var r,n=e.map(function(a,o){var l=o0;return ULo(a,l,A,function(f){r||(r=f),f&&n.forEach(Uxn),!l&&(n.forEach(Uxn),t(r))})});return e.reduce(KLo)};Kxn.exports=jLo});var qxn=H((K8l,zxn)=>{"use strict";var{PassThrough:zLo}=wt("stream");zxn.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",a=!1;t?a=!(r||n):r=r||"utf8",n&&(r=null);let o=new zLo({objectMode:a});r&&o.setEncoding(r);let l=0,A=[];return o.on("data",f=>{A.push(f),a?l=A.length:l+=f.length}),o.getBufferedValue=()=>t?A:n?Buffer.concat(A,l):A.join(""),o.getBufferedLength=()=>l,o}});var $xn=H((j8l,pve)=>{"use strict";var{constants:qLo}=wt("buffer"),$Lo=jxn(),e9o=qxn(),ygt=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function bgt(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n;return await new Promise((a,o)=>{let l=A=>{A&&n.getBufferedLength()<=qLo.MAX_LENGTH&&(A.bufferedData=n.getBufferedValue()),o(A)};n=$Lo(e,e9o(t),A=>{if(A){l(A);return}a()}),n.on("data",()=>{n.getBufferedLength()>r&&l(new ygt)})}),n.getBufferedValue()}pve.exports=bgt;pve.exports.default=bgt;pve.exports.buffer=(e,t)=>bgt(e,{...t,encoding:"buffer"});pve.exports.array=(e,t)=>bgt(e,{...t,array:!0});pve.exports.MaxBufferError=ygt});var jur=H((q8l,eGn)=>{"use strict";var t9o=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r9o=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),n9o=new Set([500,502,503,504]),i9o={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},s9o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function zfe(e){let t=parseInt(e,10);return isFinite(t)?t:0}function o9o(e){return e?n9o.has(e.status):!0}function Kur(e){let t={};if(!e)return t;let r=e.trim().split(/,/);for(let n of r){let[a,o]=n.split(/=/,2);t[a.trim()]=o===void 0?!0:o.trim().replace(/^"|"$/g,"")}return t}function a9o(e){let t=[];for(let r in e){let n=e[r];t.push(n===!0?r:r+"="+n)}if(t.length)return t.join(", ")}eGn.exports=class{constructor(t,r,{shared:n,cacheHeuristic:a,immutableMinTimeToLive:o,ignoreCargoCult:l,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=n!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=o!==void 0?o:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=Kur(r.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=r.headers.vary?t.headers:null,this._reqcc=Kur(t.headers["cache-control"]),l&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":a9o(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&r9o.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||t9o.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(t){if(!t||!t.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(t){this._assertRequestHasHeaders(t);let r=Kur(t.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(t.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(t,!1)}_requestMatches(t,r){return(!this._url||this._url===t.url)&&this._host===t.headers.host&&(!t.method||this._method===t.method||r&&t.method==="HEAD")&&this._varyMatches(t)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(t){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of r)if(t.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(t){let r={};for(let n in t)i9o[n]||(r[n]=t[n]);if(t.connection){let n=t.connection.trim().split(/\s*,\s*/);for(let a of n)delete r[a]}if(r.warning){let n=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));n.length?r.warning=n.join(",").trim():delete r.warning}return r}responseHeaders(){let t=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(t.warning=(t.warning?`${t.warning}, `:"")+'113 - "rfc7234 5.5.4"'),t.age=`${Math.round(r)}`,t.date=new Date(this.now()).toUTCString(),t}date(){let t=Date.parse(this._resHeaders.date);return isFinite(t)?t:this._responseTime}age(){let t=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return t+r}_ageValue(){return zfe(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return zfe(this._rescc["s-maxage"])}if(this._rescc["max-age"])return zfe(this._rescc["max-age"]);let t=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||nn)return Math.max(t,(r-n)/1e3*this._cacheHeuristic)}return t}timeToLive(){let t=this.maxAge()-this.age(),r=t+zfe(this._rescc["stale-if-error"]),n=t+zfe(this._rescc["stale-while-revalidate"]);return Math.max(0,t,r,n)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+zfe(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+zfe(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(t){return new this(void 0,void 0,{_fromObject:t})}_fromObject(t){if(this._responseTime)throw Error("Reinitialized");if(!t||t.v!==1)throw Error("Invalid serialization");this._responseTime=t.t,this._isShared=t.sh,this._cacheHeuristic=t.ch,this._immutableMinTtl=t.imm!==void 0?t.imm:24*3600*1e3,this._status=t.st,this._resHeaders=t.resh,this._rescc=t.rescc,this._method=t.m,this._url=t.u,this._host=t.h,this._noAuthorization=t.a,this._reqHeaders=t.reqh,this._reqcc=t.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(t){this._assertRequestHasHeaders(t);let r=this._copyWithoutHopByHopHeaders(t.headers);if(delete r["if-range"],!this._requestMatches(t,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(o=>!/^\s*W\//.test(o));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(t,r){if(this._assertRequestHasHeaders(t),this._useStaleIfError()&&o9o(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let n=!1;if(r.status!==void 0&&r.status!=304?n=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?n=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(n=!0),!n)return{policy:new this.constructor(t,r),modified:r.status!=304,matches:!1};let a={};for(let l in this._resHeaders)a[l]=l in r.headers&&!s9o[l]?r.headers[l]:this._resHeaders[l];let o=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(t,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Egt=H(($8l,tGn)=>{"use strict";tGn.exports=e=>{let t={};for(let[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}});var nGn=H((ejl,rGn)=>{"use strict";var c9o=wt("stream").Readable,l9o=Egt(),zur=class extends c9o{constructor(t,r,n,a){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=l9o(r),this.body=n,this.url=a}_read(){this.push(this.body),this.push(null)}};rGn.exports=zur});var sGn=H((tjl,iGn)=>{"use strict";var u9o=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];iGn.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(u9o));for(let n of r)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var aGn=H((rjl,oGn)=>{"use strict";var g9o=wt("stream").PassThrough,A9o=sGn(),d9o=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new g9o;return A9o(e,t),e.pipe(t)};oGn.exports=d9o});var cGn=H(qur=>{qur.stringify=function e(t){if(typeof t>"u")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var r="",n=Array.isArray(t);r=n?"[":"{";var a=!0;for(var o in t){var l=typeof t[o]=="function"||!n&&typeof t[o]>"u";Object.hasOwnProperty.call(t,o)&&!l&&(a||(r+=","),a=!1,n?t[o]==null?r+="null":r+=e(t[o]):t[o]!==void 0&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}",r}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t>"u"?"null":JSON.stringify(t)};qur.parse=function(e){return JSON.parse(e,function(t,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var AGn=H((ijl,gGn)=>{"use strict";var p9o=wt("events"),lGn=cGn(),f9o=e=>{let t={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(e.adapter||e.uri){let r=e.adapter||/^[^:+]*/.exec(e.uri)[0];return new(wt(t[r]))(e)}return new Map},uGn=["sqlite","postgres","mysql","mongo","redis","tiered"],$ur=class extends p9o{constructor(t,{emitErrors:r=!0,...n}={}){if(super(),this.opts={namespace:"keyv",serialize:lGn.stringify,deserialize:lGn.parse,...typeof t=="string"?{uri:t}:t,...n},!this.opts.store){let o={...this.opts};this.opts.store=f9o(o)}if(this.opts.compression){let o=this.opts.compression;this.opts.serialize=o.serialize.bind(o),this.opts.deserialize=o.deserialize.bind(o)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace;let a=o=>async function*(){for await(let[l,A]of typeof o=="function"?o(this.opts.store.namespace):o){let f=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!l.includes(this.opts.store.namespace))){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(l);continue}yield[this._getKeyUnprefix(l),f.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return uGn.includes(this.opts.store.opts.dialect)||uGn.findIndex(t=>this.opts.store.opts.url.includes(t))>=0}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}_getKeyPrefixArray(t){return t.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(t){return t.split(":").splice(1).join(":")}get(t,r){let{store:n}=this.opts,a=Array.isArray(t),o=a?this._getKeyPrefixArray(t):this._getKeyPrefix(t);if(a&&n.getMany===void 0){let l=[];for(let A of o)l.push(Promise.resolve().then(()=>n.get(A)).then(f=>typeof f=="string"?this.opts.deserialize(f):this.opts.compression?this.opts.deserialize(f):f).then(f=>{if(f!=null)return typeof f.expires=="number"&&Date.now()>f.expires?this.delete(A).then(()=>{}):r&&r.raw?f:f.value}));return Promise.allSettled(l).then(A=>{let f=[];for(let I of A)f.push(I.value);return f})}return Promise.resolve().then(()=>a?n.getMany(o):n.get(o)).then(l=>typeof l=="string"?this.opts.deserialize(l):this.opts.compression?this.opts.deserialize(l):l).then(l=>{if(l!=null)return a?l.map((A,f)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(t[f]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof l.expires=="number"&&Date.now()>l.expires?this.delete(t).then(()=>{}):r&&r.raw?l:l.value})}set(t,r,n){let a=this._getKeyPrefix(t);typeof n>"u"&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:o}=this.opts;return Promise.resolve().then(()=>{let l=typeof n=="number"?Date.now()+n:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:l},this.opts.serialize(r)}).then(l=>o.set(a,l,n)).then(()=>!0)}delete(t){let{store:r}=this.opts;if(Array.isArray(t)){let a=this._getKeyPrefixArray(t);if(r.deleteMany===void 0){let o=[];for(let l of a)o.push(r.delete(l));return Promise.allSettled(o).then(l=>l.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let n=this._getKeyPrefix(t);return Promise.resolve().then(()=>r.delete(n))}clear(){let{store:t}=this.opts;return Promise.resolve().then(()=>t.clear())}has(t){let r=this._getKeyPrefix(t),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has=="function"?n.has(r):await n.get(r)!==void 0)}disconnect(){let{store:t}=this.opts;if(typeof t.disconnect=="function")return t.disconnect()}};gGn.exports=$ur});var fGn=H((ojl,pGn)=>{"use strict";var I9o=wt("events"),Sgt=wt("url"),h9o=Wxn(),m9o=$xn(),egr=jur(),dGn=nGn(),C9o=Egt(),_9o=aGn(),y9o=AGn(),s5e=class e{constructor(t,r){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new y9o({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(r,n)=>{let a;if(typeof r=="string")a=tgr(Sgt.parse(r)),r={};else if(r instanceof Sgt.URL)a=tgr(Sgt.parse(r.toString())),r={};else{let[b,...E]=(r.path||"").split("?"),N=E.length>0?`?${E.join("?")}`:"";a=tgr({...r,pathname:b,search:N})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...b9o(a)},r.headers=C9o(r.headers);let o=new I9o,l=h9o(Sgt.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${l}`,f=!1,I=!1,C=b=>{I=!0;let E=!1,N,B=new Promise(Q=>{N=()=>{E||(E=!0,Q())}}),F=Q=>{if(f&&!b.forceRefresh){Q.status=Q.statusCode;let ae=egr.fromObject(f.cachePolicy).revalidatedPolicy(b,Q);if(!ae.modified){let ne=ae.policy.responseHeaders();Q=new dGn(f.statusCode,ne,f.body,f.url),Q.cachePolicy=ae.policy,Q.fromCache=!0}}Q.fromCache||(Q.cachePolicy=new egr(b,Q,b),Q.fromCache=!1);let X;b.cache&&Q.cachePolicy.storable()?(X=_9o(Q),(async()=>{try{let ae=m9o.buffer(Q);if(await Promise.race([B,new Promise(ue=>Q.once("end",ue))]),E)return;let ne=await ae,ce={cachePolicy:Q.cachePolicy.toObject(),url:Q.url,statusCode:Q.fromCache?f.statusCode:Q.statusCode,body:ne},fe=b.strictTtl?Q.cachePolicy.timeToLive():void 0;b.maxTtl&&(fe=fe?Math.min(fe,b.maxTtl):b.maxTtl),await this.cache.set(A,ce,fe)}catch(ae){o.emit("error",new e.CacheError(ae))}})()):b.cache&&f&&(async()=>{try{await this.cache.delete(A)}catch(ae){o.emit("error",new e.CacheError(ae))}})(),o.emit("response",X||Q),typeof n=="function"&&n(X||Q)};try{let Q=t(b,F);Q.once("error",N),Q.once("abort",N),o.emit("request",Q)}catch(Q){o.emit("error",new e.RequestError(Q))}};return(async()=>{let b=async N=>{await Promise.resolve();let B=N.cache?await this.cache.get(A):void 0;if(typeof B>"u")return C(N);let F=egr.fromObject(B.cachePolicy);if(F.satisfiesWithoutRevalidation(N)&&!N.forceRefresh){let Q=F.responseHeaders(),X=new dGn(B.statusCode,Q,B.body,B.url);X.cachePolicy=F,X.fromCache=!0,o.emit("response",X),typeof n=="function"&&n(X)}else f=B,N.headers=F.revalidationHeaders(N),C(N)},E=N=>o.emit("error",new e.CacheError(N));this.cache.once("error",E),o.on("response",()=>this.cache.removeListener("error",E));try{await b(r)}catch(N){r.automaticFailover&&!I&&C(r),o.emit("error",new e.CacheError(N))}})(),o}}};function b9o(e){let t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function tgr(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}s5e.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};s5e.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};pGn.exports=s5e});var hGn=H((ljl,IGn)=>{"use strict";var E9o=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];IGn.exports=(e,t)=>{if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(E9o)),n={};for(let a of r)a in t||(n[a]={get(){let o=e[a];return typeof o=="function"?o.bind(e):o},set(o){e[a]=o},enumerable:!0,configurable:!1});return Object.defineProperties(t,n),e.once("aborted",()=>{t.destroy(),t.emit("aborted")}),e.once("close",()=>{e.complete&&t.readable?t.once("end",()=>{t.emit("close")}):t.emit("close")}),t}});var CGn=H((ujl,mGn)=>{"use strict";var{Transform:S9o,PassThrough:v9o}=wt("stream"),rgr=wt("zlib"),B9o=hGn();mGn.exports=e=>{let t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;let r=t==="br";if(r&&typeof rgr.createBrotliDecompress!="function")return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;let n=!0,a=new S9o({transform(A,f,I){n=!1,I(null,A)},flush(A){A()}}),o=new v9o({autoDestroy:!1,destroy(A,f){e.destroy(),f(A)}}),l=r?rgr.createBrotliDecompress():rgr.createUnzip();return l.once("error",A=>{if(n&&!e.readable){o.end();return}o.destroy(A)}),B9o(e,o),e.pipe(a).pipe(l).pipe(o),o}});var igr=H((gjl,_Gn)=>{"use strict";var ngr=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){if(this.cache.set(t,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[n,a]of this.oldCache.entries())this.onEviction(n,a);this.oldCache=this.cache,this.cache=new Map}}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){let r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache)yield t;for(let t of this.oldCache){let[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}};_Gn.exports=ngr});var ogr=H((Ajl,SGn)=>{"use strict";var w9o=wt("events"),T9o=wt("tls"),R9o=wt("http2"),N9o=igr(),wZ=Symbol("currentStreamsCount"),yGn=Symbol("request"),aM=Symbol("cachedOriginSet"),fve=Symbol("gracefullyClosing"),D9o=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],k9o=(e,t,r)=>{let n=0,a=e.length;for(;n>>1;r(e[o],t)?n=o+1:a=o}return n},x9o=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,sgr=(e,t)=>{for(let r of e)r[aM].lengtht[aM].includes(n))&&r[wZ]+t[wZ]<=t.remoteSettings.maxConcurrentStreams&&EGn(r)},G9o=(e,t)=>{for(let r of e)t[aM].lengthr[aM].includes(n))&&t[wZ]+r[wZ]<=r.remoteSettings.maxConcurrentStreams&&EGn(t)},bGn=({agent:e,isFree:t})=>{let r={};for(let n in e.sessions){let o=e.sessions[n].filter(l=>{let A=l[qfe.kCurrentStreamsCount]{e[fve]=!0,e[wZ]===0&&e.close()},qfe=class e extends w9o{constructor({timeout:t=6e4,maxSessions:r=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=t,this.maxSessions=r,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new N9o({maxSize:a})}static normalizeOrigin(t,r){return typeof t=="string"&&(t=new URL(t)),r&&t.hostname!==r&&(t.hostname=r),t.origin}normalizeOptions(t){let r="";if(t)for(let n of D9o)t[n]&&(r+=`:${t[n]}`);return r}_tryToCreateNewSession(t,r){if(!(t in this.queue)||!(r in this.queue[t]))return;let n=this.queue[t][r];this._sessionsCount{Array.isArray(n)?(n=[...n],a()):n=[{resolve:a,reject:o}];let l=this.normalizeOptions(r),A=e.normalizeOrigin(t,r&&r.servername);if(A===void 0){for(let{reject:C}of n)C(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(l in this.sessions){let C=this.sessions[l],b=-1,E=-1,N;for(let B of C){let F=B.remoteSettings.maxConcurrentStreams;if(F=F||B[fve]||B.destroyed)continue;N||(b=F),Q>E&&(N=B,E=Q)}}if(N){if(n.length!==1){for(let{reject:B}of n){let F=new Error(`Expected the length of listeners to be 1, got ${n.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return}n[0].resolve(N);return}}if(l in this.queue){if(A in this.queue[l]){this.queue[l][A].listeners.push(...n),this._tryToCreateNewSession(l,A);return}}else this.queue[l]={};let f=()=>{l in this.queue&&this.queue[l][A]===I&&(delete this.queue[l][A],Object.keys(this.queue[l]).length===0&&delete this.queue[l])},I=()=>{let C=`${A}:${l}`,b=!1;try{let E=R9o.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(C),...r});E[wZ]=0,E[fve]=!1;let N=()=>E[wZ]{this.tlsSessionCache.set(C,Q)}),E.once("error",Q=>{for(let{reject:X}of n)X(Q);this.tlsSessionCache.delete(C)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(b){B&&this._freeSessionsCount--,this._sessionsCount--;let Q=this.sessions[l];Q.splice(Q.indexOf(E),1),Q.length===0&&delete this.sessions[l]}else{let Q=new Error("Session closed without receiving a SETTINGS frame");Q.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:X}of n)X(Q);f()}this._tryToCreateNewSession(l,A)});let F=()=>{if(!(!(l in this.queue)||!N())){for(let Q of E[aM])if(Q in this.queue[l]){let{listeners:X}=this.queue[l][Q];for(;X.length!==0&&N();)X.shift().resolve(E);let ae=this.queue[l];if(ae[Q].listeners.length===0&&(delete ae[Q],Object.keys(ae).length===0)){delete this.queue[l];break}if(!N())break}}};E.on("origin",()=>{E[aM]=E.originSet,N()&&(F(),sgr(this.sessions[l],E))}),E.once("remoteSettings",()=>{if(E.ref(),E.unref(),this._sessionsCount++,I.destroyed){let Q=new Error("Agent has been destroyed");for(let X of n)X.reject(Q);E.destroy();return}E[aM]=E.originSet;{let Q=this.sessions;if(l in Q){let X=Q[l];X.splice(k9o(X,E,x9o),0,E)}else Q[l]=[E]}this._freeSessionsCount+=1,b=!0,this.emit("session",E),F(),f(),E[wZ]===0&&this._freeSessionsCount>this.maxFreeSessions&&E.close(),n.length!==0&&(this.getSession(A,r,n),n.length=0),E.on("remoteSettings",()=>{F(),sgr(this.sessions[l],E)})}),E[yGn]=E.request,E.request=(Q,X)=>{if(E[fve])throw new Error("The session is gracefully closing. No new streams are allowed.");let ae=E[yGn](Q,X);return E.ref(),++E[wZ],E[wZ]===E.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,ae.once("close",()=>{if(B=N(),--E[wZ],!E.destroyed&&!E.closed&&(G9o(this.sessions[l],E),N()&&!E.closed)){B||(this._freeSessionsCount++,B=!0);let ne=E[wZ]===0;ne&&E.unref(),ne&&(this._freeSessionsCount>this.maxFreeSessions||E[fve])?E.close():(sgr(this.sessions[l],E),F())}}),ae}}catch(E){for(let N of n)N.reject(E);f()}};I.listeners=n,I.completed=!1,I.destroyed=!1,this.queue[l][A]=I,this._tryToCreateNewSession(l,A)})}request(t,r,n,a){return new Promise((o,l)=>{this.getSession(t,r,[{reject:l,resolve:A=>{try{o(A.request(n,a))}catch(f){l(f)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let n=t.port||443,a=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=a),T9o.connect(n,a,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[wZ]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let n of r)n.destroy(t);for(let r of Object.values(this.queue))for(let n of Object.values(r))n.destroyed=!0;this.queue={}}get freeSessions(){return bGn({agent:this,isFree:!0})}get busySessions(){return bGn({agent:this,isFree:!1})}};qfe.kCurrentStreamsCount=wZ;qfe.kGracefullyClosing=fve;SGn.exports={Agent:qfe,globalAgent:new qfe}});var cgr=H((djl,vGn)=>{"use strict";var{Readable:F9o}=wt("stream"),agr=class extends F9o{constructor(t,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};vGn.exports=agr});var lgr=H((pjl,BGn)=>{"use strict";BGn.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var TGn=H((fjl,wGn)=>{"use strict";wGn.exports=(e,t,r)=>{for(let n of r)e.on(n,(...a)=>t.emit(n,...a))}});var NGn=H((Ijl,RGn)=>{"use strict";RGn.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var kGn=H((mjl,DGn)=>{"use strict";var Ive=(e,t,r)=>{DGn.exports[t]=class extends e{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${t}]`,this.code=t}}};Ive(TypeError,"ERR_INVALID_ARG_TYPE",e=>{let t=e[0].includes(".")?"property":"argument",r=e[1],n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`});Ive(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`);Ive(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`);Ive(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`);Ive(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`);Ive(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)});var pgr=H((Cjl,PGn)=>{"use strict";var Z9o=wt("http2"),{Writable:L9o}=wt("stream"),{Agent:xGn,globalAgent:V9o}=ogr(),P9o=cgr(),W9o=lgr(),O9o=TGn(),M9o=NGn(),{ERR_INVALID_ARG_TYPE:ugr,ERR_INVALID_PROTOCOL:H9o,ERR_HTTP_HEADERS_SENT:GGn,ERR_INVALID_HTTP_TOKEN:Y9o,ERR_HTTP_INVALID_HEADER_VALUE:Q9o,ERR_INVALID_CHAR:X9o}=kGn(),{HTTP2_HEADER_STATUS:FGn,HTTP2_HEADER_METHOD:ZGn,HTTP2_HEADER_PATH:LGn,HTTP2_METHOD_CONNECT:J9o}=Z9o.constants,dG=Symbol("headers"),ggr=Symbol("origin"),Agr=Symbol("session"),VGn=Symbol("options"),vgt=Symbol("flushedHeaders"),o5e=Symbol("jobs"),U9o=/^[\^`\-\w!#$%&*+.|~]+$/,K9o=/[^\t\u0020-\u007E\u0080-\u00FF]/,dgr=class extends L9o{constructor(t,r,n){super({autoDestroy:!1});let a=typeof t=="string"||t instanceof URL;if(a&&(t=W9o(t instanceof URL?t:new URL(t))),typeof r=="function"||r===void 0?(n=r,r=a?t:{...t}):r={...t,...r},r.h2session)this[Agr]=r.h2session;else if(r.agent===!1)this.agent=new xGn({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new xGn({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=V9o;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ugr("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new H9o(r.protocol,"https:");let o=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,l=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[dG]=Object.create(null),this[o5e]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[f,I]of Object.entries(r.headers))this.setHeader(f,I);r.auth&&!("authorization"in this[dG])&&(this[dG].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[VGn]=r,o===443?(this[ggr]=`https://${l}`,":authority"in this[dG]||(this[dG][":authority"]=l)):(this[ggr]=`https://${l}:${o}`,":authority"in this[dG]||(this[dG][":authority"]=`${l}:${o}`)),A&&this.setTimeout(A),n&&this.once("response",n),this[vgt]=!1}get method(){return this[dG][ZGn]}set method(t){t&&(this[dG][ZGn]=t.toUpperCase())}get path(){return this[dG][LGn]}set path(t){t&&(this[dG][LGn]=t)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(t,r,n){if(this._mustNotHaveABody){n(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(t,r,n);this._request?a():this[o5e].push(a)}_final(t){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){t();return}this._request.end(t)};this._request?r():this[o5e].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(t,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(t)}async flushHeaders(){if(this[vgt]||this.destroyed)return;this[vgt]=!0;let t=this.method===J9o,r=n=>{if(this._request=n,this.destroyed){n.destroy();return}t||O9o(n,this,["timeout","continue","close","error"]);let a=l=>(...A)=>{!this.writable&&!this.destroyed?l(...A):this.once("finish",()=>{l(...A)})};n.once("response",a((l,A,f)=>{let I=new P9o(this.socket,n.readableHighWaterMark);this.res=I,I.req=this,I.statusCode=l[FGn],I.headers=l,I.rawHeaders=f,I.once("end",()=>{this.aborted?(I.aborted=!0,I.emit("aborted")):(I.complete=!0,I.socket=null,I.connection=null)}),t?(I.upgrade=!0,this.emit("connect",I,n,Buffer.alloc(0))?this.emit("close"):n.destroy()):(n.on("data",C=>{!I._dumped&&!I.push(C)&&n.pause()}),n.once("end",()=>{I.push(null)}),this.emit("response",I)||I._dump())})),n.once("headers",a(l=>this.emit("information",{statusCode:l[FGn]}))),n.once("trailers",a((l,A,f)=>{let{res:I}=this;I.trailers=l,I.rawTrailers=f}));let{socket:o}=n.session;this.socket=o,this.connection=o;for(let l of this[o5e])l();this.emit("socket",this.socket)};if(this[Agr])try{r(this[Agr].request(this[dG]))}catch(n){this.emit("error",n)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[ggr],this[VGn],this[dG]))}catch(n){this.emit("error",n)}}}getHeader(t){if(typeof t!="string")throw new ugr("name","string",t);return this[dG][t.toLowerCase()]}get headersSent(){return this[vgt]}removeHeader(t){if(typeof t!="string")throw new ugr("name","string",t);if(this.headersSent)throw new GGn("remove");delete this[dG][t.toLowerCase()]}setHeader(t,r){if(this.headersSent)throw new GGn("set");if(typeof t!="string"||!U9o.test(t)&&!M9o(t))throw new Y9o("Header name",t);if(typeof r>"u")throw new Q9o(r,t);if(K9o.test(r))throw new X9o("header content",t);this[dG][t.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(t,r){let n=()=>this._request.setTimeout(t,r);return this._request?n():this[o5e].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(t){}};PGn.exports=dgr});var OGn=H((_jl,WGn)=>{"use strict";var j9o=wt("tls");WGn.exports=(e={},t=j9o.connect)=>new Promise((r,n)=>{let a=!1,o,l=async()=>{await f,o.off("timeout",A),o.off("error",n),e.resolveSocket?(r({alpnProtocol:o.alpnProtocol,socket:o,timeout:a}),a&&(await Promise.resolve(),o.emit("timeout"))):(o.destroy(),r({alpnProtocol:o.alpnProtocol,timeout:a}))},A=async()=>{a=!0,l()},f=(async()=>{try{o=await t(e,l),o.on("error",n),o.once("timeout",A)}catch(I){n(I)}})()})});var HGn=H((yjl,MGn)=>{"use strict";var z9o=wt("net");MGn.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?t=r:t=r.slice(1,-1):t=r.split(":",1)[0]),z9o.isIP(t)?"":t}});var XGn=H((bjl,Igr)=>{"use strict";var YGn=wt("http"),fgr=wt("https"),q9o=OGn(),$9o=igr(),eVo=pgr(),tVo=HGn(),rVo=lgr(),Bgt=new $9o({maxSize:100}),a5e=new Map,QGn=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};let n=()=>{e.emit("free",t,r)};t.on("free",n);let a=()=>{e.removeSocket(t,r)};t.on("close",a);let o=()=>{e.removeSocket(t,r),t.off("close",a),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)},nVo=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!Bgt.has(t)){if(a5e.has(t))return(await a5e.get(t)).alpnProtocol;let{path:r,agent:n}=e;e.path=e.socketPath;let a=q9o(e);a5e.set(t,a);try{let{socket:o,alpnProtocol:l}=await a;if(Bgt.set(t,l),e.path=r,l==="h2")o.destroy();else{let{globalAgent:A}=fgr,f=fgr.Agent.prototype.createConnection;n?n.createConnection===f?QGn(n,o,e):o.destroy():A.createConnection===f?QGn(A,o,e):o.destroy()}return a5e.delete(t),l}catch(o){throw a5e.delete(t),o}}return Bgt.get(t)};Igr.exports=async(e,t,r)=>{if((typeof e=="string"||e instanceof URL)&&(e=rVo(new URL(e))),typeof t=="function"&&(r=t,t=void 0),t={ALPNProtocols:["h2","http/1.1"],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||"https:";let n=t.protocol==="https:";t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||tVo(t),t.port=t.port||(n?443:80),t._defaultAgent=n?fgr.globalAgent:YGn.globalAgent;let a=t.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=a[n?"https":"http"]}return n&&await nVo(t)==="h2"?(a&&(t.agent=a.http2),new eVo(t,r)):YGn.request(t,r)};Igr.exports.protocolCache=Bgt});var UGn=H((Ejl,JGn)=>{"use strict";var iVo=wt("http2"),sVo=ogr(),hgr=pgr(),oVo=cgr(),aVo=XGn(),cVo=(e,t,r)=>new hgr(e,t,r),lVo=(e,t,r)=>{let n=new hgr(e,t,r);return n.end(),n};JGn.exports={...iVo,ClientRequest:hgr,IncomingMessage:oVo,...sVo,request:cVo,get:lVo,auto:aVo}});var Cgr=H(mgr=>{"use strict";Object.defineProperty(mgr,"__esModule",{value:!0});var KGn=o$();mgr.default=e=>KGn.default.nodeStream(e)&&KGn.default.function_(e.getBoundary)});var $Gn=H(_gr=>{"use strict";Object.defineProperty(_gr,"__esModule",{value:!0});var zGn=wt("fs"),qGn=wt("util"),jGn=o$(),uVo=Cgr(),gVo=qGn.promisify(zGn.stat);_gr.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(jGn.default.string(e))return Buffer.byteLength(e);if(jGn.default.buffer(e))return e.length;if(uVo.default(e))return qGn.promisify(e.getLength.bind(e))();if(e instanceof zGn.ReadStream){let{size:r}=await gVo(e.path);return r===0?void 0:r}}});var bgr=H(ygr=>{"use strict";Object.defineProperty(ygr,"__esModule",{value:!0});function AVo(e,t,r){let n={};for(let a of r)n[a]=(...o)=>{t.emit(a,...o)},e.on(a,n[a]);return()=>{for(let a of r)e.off(a,n[a])}}ygr.default=AVo});var eFn=H(Egr=>{"use strict";Object.defineProperty(Egr,"__esModule",{value:!0});Egr.default=()=>{let e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(let t of e){let{origin:r,event:n,fn:a}=t;r.removeListener(n,a)}e.length=0}}}});var rFn=H(c5e=>{"use strict";Object.defineProperty(c5e,"__esModule",{value:!0});c5e.TimeoutError=void 0;var dVo=wt("net"),pVo=eFn(),tFn=Symbol("reentry"),fVo=()=>{},wgt=class extends Error{constructor(t,r){super(`Timeout awaiting '${r}' for ${t}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};c5e.TimeoutError=wgt;c5e.default=(e,t,r)=>{if(tFn in e)return fVo;e[tFn]=!0;let n=[],{once:a,unhandleAll:o}=pVo.default(),l=(b,E,N)=>{var B;let F=setTimeout(E,b,b,N);(B=F.unref)===null||B===void 0||B.call(F);let Q=()=>{clearTimeout(F)};return n.push(Q),Q},{host:A,hostname:f}=r,I=(b,E)=>{e.destroy(new wgt(b,E))},C=()=>{for(let b of n)b();o()};if(e.once("error",b=>{if(C(),e.listenerCount("error")===0)throw b}),e.once("close",C),a(e,"response",b=>{a(b,"end",C)}),typeof t.request<"u"&&l(t.request,I,"request"),typeof t.socket<"u"){let b=()=>{I(t.socket,"socket")};e.setTimeout(t.socket,b),n.push(()=>{e.removeListener("timeout",b)})}return a(e,"socket",b=>{var E;let{socketPath:N}=e;if(b.connecting){let B=!!(N??dVo.isIP((E=f??A)!==null&&E!==void 0?E:"")!==0);if(typeof t.lookup<"u"&&!B&&typeof b.address().address>"u"){let F=l(t.lookup,I,"lookup");a(b,"lookup",F)}if(typeof t.connect<"u"){let F=()=>l(t.connect,I,"connect");B?a(b,"connect",F()):a(b,"lookup",Q=>{Q===null&&a(b,"connect",F())})}typeof t.secureConnect<"u"&&r.protocol==="https:"&&a(b,"connect",()=>{let F=l(t.secureConnect,I,"secureConnect");a(b,"secureConnect",F)})}if(typeof t.send<"u"){let B=()=>l(t.send,I,"send");b.connecting?a(b,"connect",()=>{a(e,"upload-complete",B())}):a(e,"upload-complete",B())}}),typeof t.response<"u"&&a(e,"upload-complete",()=>{let b=l(t.response,I,"response");a(e,"response",b)}),C}});var iFn=H(Sgr=>{"use strict";Object.defineProperty(Sgr,"__esModule",{value:!0});var nFn=o$();Sgr.default=e=>{e=e;let t={protocol:e.protocol,hostname:nFn.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return nFn.default.string(e.port)&&e.port.length>0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var sFn=H(vgr=>{"use strict";Object.defineProperty(vgr,"__esModule",{value:!0});var IVo=wt("url"),hVo=["protocol","host","hostname","port","pathname","search"];vgr.default=(e,t)=>{var r,n;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${(n=(r=t.hostname)!==null&&r!==void 0?r:t.host)!==null&&n!==void 0?n:""}`}let a=new IVo.URL(e);if(t.path){let o=t.path.indexOf("?");o===-1?t.pathname=t.path:(t.pathname=t.path.slice(0,o),t.search=t.path.slice(o+1)),delete t.path}for(let o of hVo)t[o]&&(a[o]=t[o].toString());return a}});var oFn=H(wgr=>{"use strict";Object.defineProperty(wgr,"__esModule",{value:!0});var Bgr=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(t,r){typeof t=="object"?this.weakMap.set(t,r):this.map.set(t,r)}get(t){return typeof t=="object"?this.weakMap.get(t):this.map.get(t)}has(t){return typeof t=="object"?this.weakMap.has(t):this.map.has(t)}};wgr.default=Bgr});var Rgr=H(Tgr=>{"use strict";Object.defineProperty(Tgr,"__esModule",{value:!0});var mVo=async e=>{let t=[],r=0;for await(let n of e)t.push(n),r+=Buffer.byteLength(n);return Buffer.isBuffer(t[0])?Buffer.concat(t,r):Buffer.from(t.join(""))};Tgr.default=mVo});var cFn=H($fe=>{"use strict";Object.defineProperty($fe,"__esModule",{value:!0});$fe.dnsLookupIpVersionToFamily=$fe.isDnsLookupIpVersion=void 0;var aFn={auto:0,ipv4:4,ipv6:6};$fe.isDnsLookupIpVersion=e=>e in aFn;$fe.dnsLookupIpVersionToFamily=e=>{if($fe.isDnsLookupIpVersion(e))return aFn[e];throw new Error("Invalid DNS lookup IP version")}});var Ngr=H(Tgt=>{"use strict";Object.defineProperty(Tgt,"__esModule",{value:!0});Tgt.isResponseOk=void 0;Tgt.isResponseOk=e=>{let{statusCode:t}=e,r=e.request.options.followRedirect?299:399;return t>=200&&t<=r||t===304}});var uFn=H(Dgr=>{"use strict";Object.defineProperty(Dgr,"__esModule",{value:!0});var lFn=new Set;Dgr.default=e=>{lFn.has(e)||(lFn.add(e),process.emitWarning(`Got: ${e}`,{type:"DeprecationWarning"}))}});var gFn=H(kgr=>{"use strict";Object.defineProperty(kgr,"__esModule",{value:!0});var G1=o$(),CVo=(e,t)=>{if(G1.default.null_(e.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");G1.assert.any([G1.default.string,G1.default.undefined],e.encoding),G1.assert.any([G1.default.boolean,G1.default.undefined],e.resolveBodyOnly),G1.assert.any([G1.default.boolean,G1.default.undefined],e.methodRewriting),G1.assert.any([G1.default.boolean,G1.default.undefined],e.isStream),G1.assert.any([G1.default.string,G1.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType="text");let{retry:r}=e;if(t?e.retry={...t.retry}:e.retry={calculateDelay:n=>n.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},G1.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(n=>n.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):G1.default.number(r)&&(e.retry.limit=r),G1.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(G1.default.number))),G1.default.object(e.pagination)){t&&(e.pagination={...t.pagination,...e.pagination});let{pagination:n}=e;if(!G1.default.function_(n.transform))throw new Error("`options.pagination.transform` must be implemented");if(!G1.default.function_(n.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!G1.default.function_(n.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!G1.default.function_(n.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return e.responseType==="json"&&e.headers.accept===void 0&&(e.headers.accept="application/json"),e};kgr.default=CVo});var AFn=H(l5e=>{"use strict";Object.defineProperty(l5e,"__esModule",{value:!0});l5e.retryAfterStatusCodes=void 0;l5e.retryAfterStatusCodes=new Set([413,429,503]);var _Vo=({attemptCount:e,retryOptions:t,error:r,retryAfter:n})=>{if(e>t.limit)return 0;let a=t.methods.includes(r.options.method),o=t.errorCodes.includes(r.code),l=r.response&&t.statusCodes.includes(r.response.statusCode);if(!a||!o&&!l)return 0;if(r.response){if(n)return t.maxRetryAfter===void 0||n>t.maxRetryAfter?0:n;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(e-1)*1e3+A};l5e.default=_Vo});var A5e=H(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});O_.UnsupportedProtocolError=O_.ReadError=O_.TimeoutError=O_.UploadError=O_.CacheError=O_.HTTPError=O_.MaxRedirectsError=O_.RequestError=O_.setNonEnumerableProperties=O_.knownHookEvents=O_.withoutBody=O_.kIsNormalizedAlready=void 0;var dFn=wt("util"),pFn=wt("stream"),yVo=wt("fs"),yoe=wt("url"),fFn=wt("http"),xgr=wt("http"),bVo=wt("https"),EVo=Nxn(),SVo=Lxn(),IFn=fGn(),vVo=CGn(),BVo=UGn(),wVo=Egt(),va=o$(),TVo=$Gn(),hFn=Cgr(),RVo=bgr(),mFn=rFn(),NVo=iFn(),CFn=sFn(),DVo=oFn(),kVo=Rgr(),_Fn=cFn(),xVo=Ngr(),boe=uFn(),GVo=gFn(),FVo=AFn(),Ggr,vk=Symbol("request"),Dgt=Symbol("response"),hve=Symbol("responseSize"),mve=Symbol("downloadedSize"),Cve=Symbol("bodySize"),_ve=Symbol("uploadedSize"),Rgt=Symbol("serverResponsesPiped"),yFn=Symbol("unproxyEvents"),bFn=Symbol("isFromCache"),Fgr=Symbol("cancelTimeouts"),EFn=Symbol("startedReading"),yve=Symbol("stopReading"),Ngt=Symbol("triggerRead"),Eoe=Symbol("body"),u5e=Symbol("jobs"),SFn=Symbol("originalResponse"),vFn=Symbol("retryTimeout");O_.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ZVo=va.default.string(process.versions.brotli);O_.withoutBody=new Set(["GET","HEAD"]);O_.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function LVo(e){for(let t in e){let r=e[t];if(!va.default.string(r)&&!va.default.number(r)&&!va.default.boolean(r)&&!va.default.null_(r)&&!va.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function VVo(e){return va.default.object(e)&&!("statusCode"in e)}var Zgr=new DVo.default,PVo=async e=>new Promise((t,r)=>{let n=a=>{r(a)};e.pending||t(),e.once("error",n),e.once("ready",()=>{e.off("error",n),t()})}),WVo=new Set([300,301,302,303,304,307,308]),OVo=["context","body","json","form"];O_.setNonEnumerableProperties=(e,t)=>{let r={};for(let n of e)if(n)for(let a of OVo)a in n&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:n[a]});Object.defineProperties(t,r)};var jB=class extends Error{constructor(t,r,n){var a,o;if(super(t),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=(a=r.code)!==null&&a!==void 0?a:"ERR_GOT_REQUEST_ERROR",n instanceof Vgt?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[Dgt]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=(o=this.request)===null||o===void 0?void 0:o.timings,va.default.string(r.stack)&&va.default.string(this.stack)){let l=this.stack.indexOf(this.message)+this.message.length,A=this.stack.slice(l).split(` `).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` `).reverse();for(;f.length!==0&&f[0]===A[0];)A.shift();this.stack=`${this.stack.slice(0,l)}${A.reverse().join(` `)}${f.reverse().join(` @@ -202,7 +202,7 @@ Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return} `),ne.end()}),ne});break;case"<&":B(()=>wZn(Number(e[ae]),pG.Readable,r));break;case">":case">>":{let ne=qK.ppath.resolve(r.cwd,qK.npath.toPortablePath(e[ae]));F(ne==="/dev/null"?new AX.Writable({autoDestroy:!0,emitClose:!0,write(ce,fe,ue){setImmediate(ue)}}):t.baseFs.createWriteStream(ne,E===">>"?{flags:"a"}:void 0))}break;case">&":F(wZn(Number(e[ae]),pG.Writable,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${E}"`)}}if(l.length>0){let b=new AX.PassThrough;n=b;let E=N=>{if(N===l.length)b.end();else{let B=l[N]();B.pipe(b,{end:!1}),B.on("end",()=>{E(N+1)})}};E(0)}if(A.length>0){let b=new AX.PassThrough;a=b;for(let E of A)b.pipe(E)}if(f.length>0){let b=new AX.PassThrough;o=b;for(let E of f)b.pipe(E)}let C=await(0,KN.start)(b5e(e.slice(I+1),t,r),{stdin:new KN.ProtectedStream(n),stdout:new KN.ProtectedStream(a),stderr:new KN.ProtectedStream(o)}).run();return await Promise.all(A.map(b=>new Promise((E,N)=>{b.on("error",B=>{N(B)}),b.on("close",()=>{E()}),b.end()}))),await Promise.all(f.map(b=>new Promise((E,N)=>{b.on("error",B=>{N(B)}),b.on("close",()=>{E()}),b.end()}))),C}]]);async function $Wo(e,t,r){let n=[],a=new AX.PassThrough;return a.on("data",o=>n.push(o)),await pAt(e,t,dAt(r,{stdout:a})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function TZn(e,t,r){let n=e.map(async o=>{let l=await oIe(o.args,t,r);return{name:o.name,value:l.join(" ")}});return(await Promise.all(n)).reduce((o,l)=>(o[l.name]=l.value,o),{})}function AAt(e){return e.match(/[^ \r\n\t]+/g)||[]}async function kZn(e,t,r,n,a=n){switch(e.name){case"$":n(String(process.pid));break;case"#":n(String(t.args.length));break;case"@":if(e.quoted)for(let o of t.args)a(o);else for(let o of t.args){let l=AAt(o);for(let A=0;A=0&&o"u"&&(e.defaultValue?l=(await oIe(e.defaultValue,t,r)).join(" "):e.alternativeValue&&(l="")),typeof l>"u")throw A?new $K.ShellError(`Unbound argument #${o}`):new $K.ShellError(`Unbound variable "${e.name}"`);if(e.quoted)n(l);else{let f=AAt(l);for(let C=0;Ce+t,subtraction:(e,t)=>e-t,multiplication:(e,t)=>e*t,division:(e,t)=>Math.trunc(e/t)};async function y5e(e,t,r){if(e.type==="number"){if(Number.isInteger(e.value))return e.value;throw new Error(`Invalid number: "${e.value}", only integers are allowed`)}else if(e.type==="variable"){let n=[];await kZn({...e,quoted:!0},t,r,o=>n.push(o));let a=Number(n.join(" "));return Number.isNaN(a)?y5e({type:"variable",name:n.join(" ")},t,r):y5e({type:"number",value:a},t,r)}else return eOo[e.type](await y5e(e.left,t,r),await y5e(e.right,t,r))}async function oIe(e,t,r){let n=new Map,a=[],o=[],l=C=>{o.push(C)},A=()=>{o.length>0&&a.push(o.join("")),o=[]},f=C=>{l(C),A()},I=(C,b,E)=>{let N=JSON.stringify({type:C,fd:b}),B=n.get(N);typeof B>"u"&&n.set(N,B=[]),B.push(E)};for(let C of e){let b=!1;switch(C.type){case"redirection":{let E=await oIe(C.args,t,r);for(let N of E)I(C.subtype,C.fd,N)}break;case"argument":for(let E of C.segments)switch(E.type){case"text":l(E.text);break;case"glob":l(E.pattern),b=!0;break;case"shell":{let N=await $Wo(E.shell,t,r);if(E.quoted)l(N);else{let B=AAt(N);for(let F=0;F"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let N=await t.glob.match(E,{cwd:r.cwd,baseFs:t.baseFs});if(N.length===0){let B=kAr.isBraceExpansion(E)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new $K.ShellError(`No matches found: "${E}"${B}`)}for(let B of N.sort())f(B)}}if(n.size>0){let C=[];for(let[b,E]of n.entries())C.splice(C.length,0,b,String(E.length),...E);a.splice(0,0,"__ysh_set_redirects",...C,"--")}return a}function b5e(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);let n=qK.npath.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:n});let[o,...l]=e;if(o==="command")return(0,RAr.makeProcess)(l[0],l.slice(1),t,{cwd:n,env:a});let A=t.builtins.get(o);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${o}"`);return(0,RAr.makeBuiltin)(async({stdin:f,stdout:I,stderr:C})=>{let{stdin:b,stdout:E,stderr:N}=r;r.stdin=f,r.stdout=I,r.stderr=C;try{return await A(l,t,r)}finally{r.stdin=b,r.stdout=E,r.stderr=N}})}function tOo(e,t,r){return n=>{let a=new AX.PassThrough,o=pAt(e,t,dAt(r,{stdin:a}));return{stdin:a,promise:o}}}function rOo(e,t,r){return n=>{let a=new AX.PassThrough,o=pAt(e,t,r);return{stdin:a,promise:o}}}function RZn(e,t,r,n){if(t.length===0)return e;{let a;do a=String(Math.random());while(Object.hasOwn(n.procedures,a));return n.procedures={...n.procedures},n.procedures[a]=e,b5e([...t,"__ysh_run_procedure",a],r,n)}}async function NZn(e,t,r){let n=e,a=null,o=null;for(;n;){let l=n.then?{...r}:r,A;switch(n.type){case"command":{let f=await oIe(n.args,t,r),I=await TZn(n.envs,t,r);A=n.envs.length?b5e(f,t,dAt(l,{environment:I})):b5e(f,t,l)}break;case"subshell":{let f=await oIe(n.args,t,r),I=tOo(n.subshell,t,l);A=RZn(I,f,t,l)}break;case"group":{let f=await oIe(n.args,t,r),I=rOo(n.group,t,l);A=RZn(I,f,t,l)}break;case"envs":{let f=await TZn(n.envs,t,r);l.environment={...l.environment,...f},A=b5e(["true"],t,l)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)o=(0,KN.start)(A,{stdin:new KN.ProtectedStream(l.stdin),stdout:new KN.ProtectedStream(l.stdout),stderr:new KN.ProtectedStream(l.stderr)});else{if(o===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":o=o.pipeTo(A,KN.Pipe.STDOUT);break;case"|&":o=o.pipeTo(A,KN.Pipe.STDOUT|KN.Pipe.STDERR);break}}n.then?(a=n.then.type,n=n.then.chain):n=null}if(o===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function nOo(e,t,r,{background:n=!1}={}){function a(o){let l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[o%l.length];return UWo.default.hex(A)}if(n){let o=r.nextBackgroundJobIndex++,l=a(o),A=`[${o}]`,f=l(A),{stdout:I,stderr:C}=(0,RAr.createOutputStreamsWithPrefix)(r,{prefix:f});return r.backgroundJobs.push(NZn(e,t,dAt(r,{stdout:I,stderr:C})).catch(b=>C.write(`${b.message} `)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${f}, '${l((0,DZn.stringifyCommandChain)(e))}' has ended `)})),0}return await NZn(e,t,r)}async function iOo(e,t,r,{background:n=!1}={}){let a,o=A=>{a=A,r.variables["?"]=String(A)},l=async A=>{try{return await nOo(A.chain,t,r,{background:n&&typeof A.then>"u"})}catch(f){if(!(f instanceof $K.ShellError))throw f;return r.stderr.write(`${f.message} -`),1}};for(o(await l(e));e.then;){if(r.exitCode!==null)return r.exitCode;switch(e.then.type){case"&&":a===0&&o(await l(e.then.line));break;case"||":a!==0&&o(await l(e.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${e.then.type}"`)}e=e.then.line}return a}async function pAt(e,t,r){let n=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:o,type:l}of e){if(a=await iOo(o,t,r,{background:l==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=n,a}function xZn(e){switch(e.type){case"variable":return e.name==="@"||e.name==="#"||e.name==="*"||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(t=>E5e(t))||"alternativeValue"in e&&!!e.alternativeValue&&e.alternativeValue.some(t=>E5e(t));case"arithmetic":return NAr(e.arithmetic);case"shell":return xAr(e.shell);default:return!1}}function E5e(e){switch(e.type){case"redirection":return e.args.some(t=>E5e(t));case"argument":return e.segments.some(t=>xZn(t));default:throw new Error(`Assertion failed: Unsupported argument type: "${e.type}"`)}}function NAr(e){switch(e.type){case"variable":return xZn(e);case"number":return!1;default:return NAr(e.left)||NAr(e.right)}}function xAr(e){return e.some(({command:t})=>{for(;t;){let r=t.chain;for(;r;){let n;switch(r.type){case"subshell":n=xAr(r.subshell);break;case"command":n=r.envs.some(a=>a.args.some(o=>E5e(o)))||r.args.some(a=>E5e(a));break}if(n)return!0;if(!r.then)break;r=r.then.chain}if(!t.then)break;t=t.then.line}return!1})}async function sOo(e,t=[],{baseFs:r=new qK.NodeFS,builtins:n={},cwd:a=qK.npath.toPortablePath(process.cwd()),env:o=process.env,stdin:l=process.stdin,stdout:A=process.stdout,stderr:f=process.stderr,variables:I={},glob:C=kAr}={}){let b={};for(let[B,F]of Object.entries(o))typeof F<"u"&&(b[B]=F);let E=new Map(qWo);for(let[B,F]of Object.entries(n))E.set(B,F);l===null&&(l=new AX.PassThrough,l.end());let N=(0,DZn.parseShell)(e,C);if(!xAr(N)&&N.length>0&&t.length>0){let{command:B}=N[N.length-1];for(;B.then;)B=B.then.line;let F=B.chain;for(;F.then;)F=F.then.chain;F.type==="command"&&(F.args=F.args.concat(t.map(Q=>({type:"argument",segments:[{type:"text",text:Q}]}))))}return await pAt(N,{args:t,baseFs:r,builtins:E,initialStdin:l,initialStdout:A,initialStderr:f,glob:C},{cwd:a,environment:b,exitCode:null,procedures:{},stdin:l,stdout:A,stderr:f,variables:Object.assign({},I,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}});var GZn=H((l6l,fAt)=>{function oOo(){var e=0,t=1,r=2,n=3,a=4,o=5,l=6,A=7,f=8,I=9,C=10,b=11,E=12,N=13,B=14,F=15,Q=16,X=17,ae=0,ne=1,ce=2,fe=3,ue=4;function de(k,et){return 55296<=k.charCodeAt(et)&&k.charCodeAt(et)<=56319&&56320<=k.charCodeAt(et+1)&&k.charCodeAt(et+1)<=57343}function be(k,et){et===void 0&&(et=0);var ct=k.charCodeAt(et);if(55296<=ct&&ct<=56319&&et=1){var Me=k.charCodeAt(et-1),je=ct;return 55296<=Me&&Me<=56319?(Me-55296)*1024+(je-56320)+65536:je}return ct}function Se(k,et,ct){var Me=[k].concat(et).concat([ct]),je=Me[Me.length-2],St=ct,At=Me.lastIndexOf(B);if(At>1&&Me.slice(1,At).every(function(Nr){return Nr==n})&&[n,N,X].indexOf(k)==-1)return ce;var Yt=Me.lastIndexOf(a);if(Yt>0&&Me.slice(1,Yt).every(function(Nr){return Nr==a})&&[E,a].indexOf(je)==-1)return Me.filter(function(Nr){return Nr==a}).length%2==1?fe:ue;if(je==e&&St==t)return ae;if(je==r||je==e||je==t)return St==B&&et.every(function(Nr){return Nr==n})?ce:ne;if(St==r||St==e||St==t)return ne;if(je==l&&(St==l||St==A||St==I||St==C))return ae;if((je==I||je==A)&&(St==A||St==f))return ae;if((je==C||je==f)&&St==f)return ae;if(St==n||St==F)return ae;if(St==o)return ae;if(je==E)return ae;var Tr=Me.indexOf(n)!=-1?Me.lastIndexOf(n)-1:Me.length-2;return[N,X].indexOf(Me[Tr])!=-1&&Me.slice(Tr+1,-1).every(function(Nr){return Nr==n})&&St==B||je==F&&[Q,X].indexOf(St)!=-1?ae:et.indexOf(a)!=-1?ce:je==a&&St==a?ae:ne}this.nextBreak=function(k,et){if(et===void 0&&(et=0),et<0)return 0;if(et>=k.length-1)return k.length;for(var ct=De(be(k,et)),Me=[],je=et+1;je{var aOo=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,IAt;function cOo(){if(IAt)return IAt;if(typeof Intl.Segmenter<"u"){let e=new Intl.Segmenter("en",{granularity:"grapheme"});return IAt=t=>Array.from(e.segment(t),({segment:r})=>r)}else{let e=GZn(),t=new e;return IAt=r=>t.splitGraphemes(r)}}FZn.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let n=r-t,a="",o=0,l=0;for(;e.length>0;){let A=e.match(aOo)||[e,e,void 0],f=cOo()(A[1]),I=Math.min(t-o,f.length);f=f.slice(I);let C=Math.min(n-l,f.length);a+=f.slice(0,C).join(""),o+=I,l+=C,typeof A[2]<"u"&&(a+=A[2]),e=e.slice(A[0].length)}return a}});var S5e=H(hAt=>{"use strict";Object.defineProperty(hAt,"__esModule",{value:!0});hAt.YarnVersion=void 0;hAt.YarnVersion=process.env.YARN_IS_TEST_ENV?"0.0.0":"1.2.16-atls"});var v5e=H(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});dM.StreamReport=dM.SUPPORTS_GROUPS=dM.SINGLE_LINE_CHAR=void 0;dM.formatName=ZAr;dM.formatNameWithHyperlink=WZn;dM.reportOptionDeprecations=fOo;var FAr=(Pa(),vi(Va)),lOo=FAr.__importDefault(ZZn()),GAr=FAr.__importDefault(Nfe()),e8=M9(),uOo=sM(),gOo=S5e(),dX=FAr.__importStar(rM());dM.SINGLE_LINE_CHAR="\xB7";var LZn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],VZn=80,Toe=GAr.default.GITHUB_ACTIONS?{start:e=>`::group::${e} +`),1}};for(o(await l(e));e.then;){if(r.exitCode!==null)return r.exitCode;switch(e.then.type){case"&&":a===0&&o(await l(e.then.line));break;case"||":a!==0&&o(await l(e.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${e.then.type}"`)}e=e.then.line}return a}async function pAt(e,t,r){let n=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:o,type:l}of e){if(a=await iOo(o,t,r,{background:l==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=n,a}function xZn(e){switch(e.type){case"variable":return e.name==="@"||e.name==="#"||e.name==="*"||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(t=>E5e(t))||"alternativeValue"in e&&!!e.alternativeValue&&e.alternativeValue.some(t=>E5e(t));case"arithmetic":return NAr(e.arithmetic);case"shell":return xAr(e.shell);default:return!1}}function E5e(e){switch(e.type){case"redirection":return e.args.some(t=>E5e(t));case"argument":return e.segments.some(t=>xZn(t));default:throw new Error(`Assertion failed: Unsupported argument type: "${e.type}"`)}}function NAr(e){switch(e.type){case"variable":return xZn(e);case"number":return!1;default:return NAr(e.left)||NAr(e.right)}}function xAr(e){return e.some(({command:t})=>{for(;t;){let r=t.chain;for(;r;){let n;switch(r.type){case"subshell":n=xAr(r.subshell);break;case"command":n=r.envs.some(a=>a.args.some(o=>E5e(o)))||r.args.some(a=>E5e(a));break}if(n)return!0;if(!r.then)break;r=r.then.chain}if(!t.then)break;t=t.then.line}return!1})}async function sOo(e,t=[],{baseFs:r=new qK.NodeFS,builtins:n={},cwd:a=qK.npath.toPortablePath(process.cwd()),env:o=process.env,stdin:l=process.stdin,stdout:A=process.stdout,stderr:f=process.stderr,variables:I={},glob:C=kAr}={}){let b={};for(let[B,F]of Object.entries(o))typeof F<"u"&&(b[B]=F);let E=new Map(qWo);for(let[B,F]of Object.entries(n))E.set(B,F);l===null&&(l=new AX.PassThrough,l.end());let N=(0,DZn.parseShell)(e,C);if(!xAr(N)&&N.length>0&&t.length>0){let{command:B}=N[N.length-1];for(;B.then;)B=B.then.line;let F=B.chain;for(;F.then;)F=F.then.chain;F.type==="command"&&(F.args=F.args.concat(t.map(Q=>({type:"argument",segments:[{type:"text",text:Q}]}))))}return await pAt(N,{args:t,baseFs:r,builtins:E,initialStdin:l,initialStdout:A,initialStderr:f,glob:C},{cwd:a,environment:b,exitCode:null,procedures:{},stdin:l,stdout:A,stderr:f,variables:Object.assign({},I,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}});var GZn=H((u6l,fAt)=>{function oOo(){var e=0,t=1,r=2,n=3,a=4,o=5,l=6,A=7,f=8,I=9,C=10,b=11,E=12,N=13,B=14,F=15,Q=16,X=17,ae=0,ne=1,ce=2,fe=3,ue=4;function de(k,et){return 55296<=k.charCodeAt(et)&&k.charCodeAt(et)<=56319&&56320<=k.charCodeAt(et+1)&&k.charCodeAt(et+1)<=57343}function be(k,et){et===void 0&&(et=0);var ct=k.charCodeAt(et);if(55296<=ct&&ct<=56319&&et=1){var Me=k.charCodeAt(et-1),je=ct;return 55296<=Me&&Me<=56319?(Me-55296)*1024+(je-56320)+65536:je}return ct}function Se(k,et,ct){var Me=[k].concat(et).concat([ct]),je=Me[Me.length-2],St=ct,At=Me.lastIndexOf(B);if(At>1&&Me.slice(1,At).every(function(Nr){return Nr==n})&&[n,N,X].indexOf(k)==-1)return ce;var Yt=Me.lastIndexOf(a);if(Yt>0&&Me.slice(1,Yt).every(function(Nr){return Nr==a})&&[E,a].indexOf(je)==-1)return Me.filter(function(Nr){return Nr==a}).length%2==1?fe:ue;if(je==e&&St==t)return ae;if(je==r||je==e||je==t)return St==B&&et.every(function(Nr){return Nr==n})?ce:ne;if(St==r||St==e||St==t)return ne;if(je==l&&(St==l||St==A||St==I||St==C))return ae;if((je==I||je==A)&&(St==A||St==f))return ae;if((je==C||je==f)&&St==f)return ae;if(St==n||St==F)return ae;if(St==o)return ae;if(je==E)return ae;var Tr=Me.indexOf(n)!=-1?Me.lastIndexOf(n)-1:Me.length-2;return[N,X].indexOf(Me[Tr])!=-1&&Me.slice(Tr+1,-1).every(function(Nr){return Nr==n})&&St==B||je==F&&[Q,X].indexOf(St)!=-1?ae:et.indexOf(a)!=-1?ce:je==a&&St==a?ae:ne}this.nextBreak=function(k,et){if(et===void 0&&(et=0),et<0)return 0;if(et>=k.length-1)return k.length;for(var ct=De(be(k,et)),Me=[],je=et+1;je{var aOo=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,IAt;function cOo(){if(IAt)return IAt;if(typeof Intl.Segmenter<"u"){let e=new Intl.Segmenter("en",{granularity:"grapheme"});return IAt=t=>Array.from(e.segment(t),({segment:r})=>r)}else{let e=GZn(),t=new e;return IAt=r=>t.splitGraphemes(r)}}FZn.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let n=r-t,a="",o=0,l=0;for(;e.length>0;){let A=e.match(aOo)||[e,e,void 0],f=cOo()(A[1]),I=Math.min(t-o,f.length);f=f.slice(I);let C=Math.min(n-l,f.length);a+=f.slice(0,C).join(""),o+=I,l+=C,typeof A[2]<"u"&&(a+=A[2]),e=e.slice(A[0].length)}return a}});var S5e=H(hAt=>{"use strict";Object.defineProperty(hAt,"__esModule",{value:!0});hAt.YarnVersion=void 0;hAt.YarnVersion=process.env.YARN_IS_TEST_ENV?"0.0.0":"1.2.16-atls"});var v5e=H(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});dM.StreamReport=dM.SUPPORTS_GROUPS=dM.SINGLE_LINE_CHAR=void 0;dM.formatName=ZAr;dM.formatNameWithHyperlink=WZn;dM.reportOptionDeprecations=fOo;var FAr=(Pa(),vi(Va)),lOo=FAr.__importDefault(ZZn()),GAr=FAr.__importDefault(Nfe()),e8=M9(),uOo=sM(),gOo=S5e(),dX=FAr.__importStar(rM());dM.SINGLE_LINE_CHAR="\xB7";var LZn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],VZn=80,Toe=GAr.default.GITHUB_ACTIONS?{start:e=>`::group::${e} `,end:e=>`::endgroup:: `}:GAr.default.TRAVIS?{start:e=>`travis_fold:start:${e} `,end:e=>`travis_fold:end:${e} @@ -223,7 +223,7 @@ exec "${r}" ${n.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" `);let De=await FW.pipevp("yarn",[...fe,"pack","--filename",tp.npath.fromPortablePath(t)],{cwd:e,env:X,stdin:f,stdout:I,stderr:C});return De.code!==0?De.code:0}],[RZ.Yarn2,async()=>{let fe=a!==null?["workspace",a]:[];X.YARN_ENABLE_INLINE_BUILDS="1";let ue=tp.ppath.join(e,Noe.Filename.lockfile);await tp.xfs.existsPromise(ue)||await tp.xfs.writeFilePromise(ue,"");let de=await FW.pipevp("yarn",[...fe,"pack","--install-if-needed","--filename",tp.npath.fromPortablePath(t)],{cwd:e,env:X,stdin:f,stdout:I,stderr:C});return de.code!==0?de.code:0}],[RZ.Npm,async()=>{if(a!==null){let et=new Bve.PassThrough,ct=aIe.bufferStream(et);et.pipe(I,{end:!1});let Me=await FW.pipevp("npm",["--version"],{cwd:e,env:X,stdin:f,stdout:et,stderr:C,end:FW.EndStrategy.Never});if(et.end(),Me.code!==0)return I.end(),C.end(),Me.code;let je=(await ct).toString().trim();if(!mOo.satisfiesWithPrereleases(je,">=7.x")){let St=tT.makeIdent(null,"npm"),At=tT.makeDescriptor(St,je),Yt=tT.makeDescriptor(St,">=7.x");throw new Error(`Workspaces aren't supported by ${tT.prettyDescriptor(r,At)}; please upgrade to ${tT.prettyDescriptor(r,Yt)} (npm has been detected as the primary package manager for ${t8.pretty(r,e,t8.Type.PATH)})`)}}let fe=a!==null?["--workspace",a]:[];delete X.npm_config_user_agent,delete X.npm_config_production,delete X.NPM_CONFIG_PRODUCTION,delete X.NODE_ENV;let ue=await FW.pipevp("npm",["install","--legacy-peer-deps"],{cwd:e,env:X,stdin:f,stdout:I,stderr:C,end:FW.EndStrategy.ErrorCode});if(ue.code!==0)return ue.code;let de=new Bve.PassThrough,be=aIe.bufferStream(de);de.pipe(I);let Se=await FW.pipevp("npm",["pack","--silent",...fe],{cwd:e,env:X,stdin:f,stdout:de,stderr:C});if(Se.code!==0)return Se.code;let De=(await be).toString().trim().replace(/^.*\n/s,""),k=tp.ppath.resolve(e,tp.npath.toPortablePath(De));return await tp.xfs.renamePromise(k,t),0}]]).get(B);if(typeof ne>"u")throw new Error("Assertion failed: Unsupported workflow");let ce=await ne();if(!(ce===0||typeof ce>"u"))throw tp.xfs.detachTemp(l),new HZn.ReportError(VAr.MessageName.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${ce}, logs can be found here: ${t8.pretty(r,A,t8.Type.PATH)})`)})})})}async function bOo(e,t,{project:r}){let n=r.tryWorkspaceByLocator(e);if(n!==null)return WAr(n,t);let a=r.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${tT.prettyLocator(r.configuration,e)} not found in the project`);return await OZn.ZipOpenFS.openPromise(async o=>{let l=r.configuration,A=r.configuration.getLinkers(),f={project:r,report:new _At.StreamReport({stdout:new Bve.PassThrough,configuration:l})},I=A.find(N=>N.supportsPackage(a,f));if(!I)throw new Error(`The package ${tT.prettyLocator(r.configuration,a)} isn't supported by any of the available linkers`);let C=await I.findPackageLocation(a,f),b=new Noe.CwdFS(C,{baseFs:o});return(await PAr.Manifest.find(Noe.PortablePath.dot,{baseFs:b})).scripts.has(t)})}async function QZn(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A}){return await tp.xfs.mktempPromise(async f=>{let{manifest:I,env:C,cwd:b}=await XZn(e,{project:a,binFolder:f,cwd:n,lifecycleScript:t}),E=I.scripts.get(t);if(typeof E>"u")return 1;let N=async()=>await(0,MZn.execute)(E,r,{cwd:b,env:C,stdin:o,stdout:l,stderr:A});return await(await a.configuration.reduceHook(F=>F.wrapScriptExecution,N,a,e,t,{script:E,args:r,cwd:b,env:C,stdin:o,stdout:l,stderr:A}))()})}async function EOo(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A}){return await tp.xfs.mktempPromise(async f=>{let{env:I,cwd:C}=await XZn(e,{project:a,binFolder:f,cwd:n});return await(0,MZn.execute)(t,r,{cwd:C,env:I,stdin:o,stdout:l,stderr:A})})}async function SOo(e,{binFolder:t,cwd:r,lifecycleScript:n}){let a=await B5e({project:e.project,locator:e.anchoredLocator,binFolder:t,lifecycleScript:n});return await MAr(t,await KZn(e)),typeof r>"u"&&(r=tp.ppath.dirname(await tp.xfs.realpathPromise(tp.ppath.join(e.cwd,"package.json")))),{manifest:e.manifest,binFolder:t,env:a,cwd:r}}async function XZn(e,{project:t,binFolder:r,cwd:n,lifecycleScript:a}){let o=t.tryWorkspaceByLocator(e);if(o!==null)return SOo(o,{binFolder:r,cwd:n,lifecycleScript:a});let l=t.storedPackages.get(e.locatorHash);if(!l)throw new Error(`Package for ${tT.prettyLocator(t.configuration,e)} not found in the project`);return await OZn.ZipOpenFS.openPromise(async A=>{let f=t.configuration,I=t.configuration.getLinkers(),C={project:t,report:new _At.StreamReport({stdout:new Bve.PassThrough,configuration:f})},b=I.find(Q=>Q.supportsPackage(l,C));if(!b)throw new Error(`The package ${tT.prettyLocator(t.configuration,l)} isn't supported by any of the available linkers`);let E=await B5e({project:t,locator:e,binFolder:r,lifecycleScript:a});await MAr(r,await yAt(e,{project:t}));let N=await b.findPackageLocation(l,C),B=new Noe.CwdFS(N,{baseFs:A}),F=await PAr.Manifest.find(Noe.PortablePath.dot,{baseFs:B});return typeof n>"u"&&(n=N),{manifest:F,binFolder:r,env:E,cwd:n}})}async function JZn(e,t,r,{cwd:n,stdin:a,stdout:o,stderr:l}){return await QZn(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:a,stdout:o,stderr:l})}function WAr(e,t){return e.manifest.scripts.has(t)}async function UZn(e,t,{cwd:r,report:n}){let{configuration:a}=e.project,o=null;await tp.xfs.mktempPromise(async l=>{let A=tp.ppath.join(l,`${t}.log`),f=`# This file contains the result of Yarn calling the "${t}" lifecycle script inside a workspace ("${tp.npath.fromPortablePath(e.cwd)}") `,{stdout:I,stderr:C}=a.getSubprocessStreams(A,{report:n,prefix:tT.prettyLocator(a,e.anchoredLocator),header:f});n.reportInfo(VAr.MessageName.LIFECYCLE_SCRIPT,`Calling the "${t}" lifecycle script`);let b=await JZn(e,t,[],{cwd:r,stdin:o,stdout:I,stderr:C});if(I.end(),C.end(),b!==0)throw tp.xfs.detachTemp(l),new HZn.ReportError(VAr.MessageName.LIFECYCLE_SCRIPT,`${(0,IOo.capitalize)(t)} script failed (exit code ${t8.pretty(a,b,t8.Type.NUMBER)}, logs can be found here: ${t8.pretty(a,A,t8.Type.PATH)}); run ${t8.pretty(a,`yarn ${t}`,t8.Type.CODE)} to investigate`)})}async function vOo(e,t,r){WAr(e,t)&&await UZn(e,t,r)}function OAr(e){let t=tp.ppath.extname(e);if(t.match(/\.[cm]?[jt]sx?$/))return!0;if(t===".exe"||t===".bin")return!1;let r=Buffer.alloc(4),n;try{n=tp.xfs.openSync(e,"r")}catch{return!0}try{tp.xfs.readSync(n,r,0,r.length,0)}finally{tp.xfs.closeSync(n)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function yAt(e,{project:t}){let r=t.configuration,n=new Map,a=t.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${tT.prettyLocator(r,e)} not found in the project`);let o=new Bve.Writable,l=r.getLinkers(),A={project:t,report:new _At.StreamReport({configuration:r,stdout:o})},f=new Set([e.locatorHash]);for(let C of a.dependencies.values()){let b=t.storedResolutions.get(C.descriptorHash);if(!b)throw new Error(`Assertion failed: The resolution (${tT.prettyDescriptor(r,C)}) should have been registered`);f.add(b)}let I=await Promise.all(Array.from(f,async C=>{let b=t.storedPackages.get(C);if(!b)throw new Error(`Assertion failed: The package (${C}) should have been registered`);if(b.bin.size===0)return aIe.mapAndFilter.skip;let E=l.find(B=>B.supportsPackage(b,A));if(!E)return aIe.mapAndFilter.skip;let N=null;try{N=await E.findPackageLocation(b,A)}catch(B){if(B.code==="LOCATOR_NOT_INSTALLED")return aIe.mapAndFilter.skip;throw B}return{dependency:b,packageLocation:N}}));for(let C of I){if(C===aIe.mapAndFilter.skip)continue;let{dependency:b,packageLocation:E}=C;for(let[N,B]of b.bin){let F=tp.ppath.resolve(E,B);n.set(N,[b,tp.npath.fromPortablePath(F),OAr(F)])}}return n}async function KZn(e){return await yAt(e.anchoredLocator,{project:e.project})}async function MAr(e,t){await Promise.all(Array.from(t,([r,[,n,a]])=>a?Roe(e,r,process.execPath,[n]):Roe(e,r,n,[])))}async function jZn(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A,nodeArgs:f=[],packageAccessibleBinaries:I}){I??=await yAt(e,{project:a});let C=I.get(t);if(!C)throw new Error(`Binary not found (${t}) for ${tT.prettyLocator(a.configuration,e)}`);return await tp.xfs.mktempPromise(async b=>{let[,E]=C,N=await B5e({project:a,locator:e,binFolder:b});await MAr(N.BERRY_BIN_FOLDER,I);let B=OAr(tp.npath.toPortablePath(E))?FW.pipevp(process.execPath,[...f,E,...r],{cwd:n,env:N,stdin:o,stdout:l,stderr:A}):FW.pipevp(E,r,{cwd:n,env:N,stdin:o,stdout:l,stderr:A}),F;try{F=await B}finally{await tp.xfs.removePromise(N.BERRY_BIN_FOLDER)}return F.code})}async function BOo(e,t,r,{cwd:n,stdin:a,stdout:o,stderr:l,packageAccessibleBinaries:A}){return await jZn(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:a,stdout:o,stderr:l,packageAccessibleBinaries:A})}});var uLn=H(jC=>{"use strict";var yC=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),w5e=yC(e=>{"use strict";var t=e&&e.__importDefault||function(Fn){return Fn&&Fn.__esModule?Fn:{default:Fn}};Object.defineProperty(e,"__esModule",{value:!0}),e.Minipass=e.isWritable=e.isReadable=e.isStream=void 0;var r=typeof process=="object"&&process?process:{stdout:null,stderr:null},n=wt("node:events"),a=t(wt("node:stream")),o=wt("node:string_decoder"),l=Fn=>!!Fn&&typeof Fn=="object"&&(Fn instanceof jt||Fn instanceof a.default||(0,e.isReadable)(Fn)||(0,e.isWritable)(Fn));e.isStream=l;var A=Fn=>!!Fn&&typeof Fn=="object"&&Fn instanceof n.EventEmitter&&typeof Fn.pipe=="function"&&Fn.pipe!==a.default.Writable.prototype.pipe;e.isReadable=A;var f=Fn=>!!Fn&&typeof Fn=="object"&&Fn instanceof n.EventEmitter&&typeof Fn.write=="function"&&typeof Fn.end=="function";e.isWritable=f;var I=Symbol("EOF"),C=Symbol("maybeEmitEnd"),b=Symbol("emittedEnd"),E=Symbol("emittingEnd"),N=Symbol("emittedError"),B=Symbol("closed"),F=Symbol("read"),Q=Symbol("flush"),X=Symbol("flushChunk"),ae=Symbol("encoding"),ne=Symbol("decoder"),ce=Symbol("flowing"),fe=Symbol("paused"),ue=Symbol("resume"),de=Symbol("buffer"),be=Symbol("pipes"),Se=Symbol("bufferLength"),De=Symbol("bufferPush"),k=Symbol("bufferShift"),et=Symbol("objectMode"),ct=Symbol("destroyed"),Me=Symbol("error"),je=Symbol("emitData"),St=Symbol("emitEnd"),At=Symbol("emitEnd2"),Yt=Symbol("async"),Tr=Symbol("abort"),Nr=Symbol("aborted"),er=Symbol("signal"),vt=Symbol("dataListeners"),xt=Symbol("discarded"),Zr=Fn=>Promise.resolve().then(Fn),qt=Fn=>Fn(),Xt=Fn=>Fn==="end"||Fn==="finish"||Fn==="prefinish",lr=Fn=>Fn instanceof ArrayBuffer||!!Fn&&typeof Fn=="object"&&Fn.constructor&&Fn.constructor.name==="ArrayBuffer"&&Fn.byteLength>=0,cr=Fn=>!Buffer.isBuffer(Fn)&&ArrayBuffer.isView(Fn),Ar=class{src;dest;opts;ondrain;constructor(Fn,Nn,Hi){this.src=Fn,this.dest=Nn,this.opts=Hi,this.ondrain=()=>Fn[ue](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(Fn){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},qr=class extends Ar{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(Fn,Nn,Hi){super(Fn,Nn,Hi),this.proxyErrors=po=>this.dest.emit("error",po),Fn.on("error",this.proxyErrors)}},_n=Fn=>!!Fn.objectMode,ke=Fn=>!Fn.objectMode&&!!Fn.encoding&&Fn.encoding!=="buffer",jt=class extends n.EventEmitter{[ce]=!1;[fe]=!1;[be]=[];[de]=[];[et];[ae];[Yt];[ne];[I]=!1;[b]=!1;[E]=!1;[B]=!1;[N]=null;[Se]=0;[ct]=!1;[er];[Nr]=!1;[vt]=0;[xt]=!1;writable=!0;readable=!0;constructor(...Fn){let Nn=Fn[0]||{};if(super(),Nn.objectMode&&typeof Nn.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");_n(Nn)?(this[et]=!0,this[ae]=null):ke(Nn)?(this[ae]=Nn.encoding,this[et]=!1):(this[et]=!1,this[ae]=null),this[Yt]=!!Nn.async,this[ne]=this[ae]?new o.StringDecoder(this[ae]):null,Nn&&Nn.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[de]}),Nn&&Nn.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[be]});let{signal:Hi}=Nn;Hi&&(this[er]=Hi,Hi.aborted?this[Tr]():Hi.addEventListener("abort",()=>this[Tr]()))}get bufferLength(){return this[Se]}get encoding(){return this[ae]}set encoding(Fn){throw new Error("Encoding must be set at instantiation time")}setEncoding(Fn){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[et]}set objectMode(Fn){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Yt]}set async(Fn){this[Yt]=this[Yt]||!!Fn}[Tr](){this[Nr]=!0,this.emit("abort",this[er]?.reason),this.destroy(this[er]?.reason)}get aborted(){return this[Nr]}set aborted(Fn){}write(Fn,Nn,Hi){if(this[Nr])return!1;if(this[I])throw new Error("write after end");if(this[ct])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof Nn=="function"&&(Hi=Nn,Nn="utf8"),Nn||(Nn="utf8");let po=this[Yt]?Zr:qt;if(!this[et]&&!Buffer.isBuffer(Fn)){if(cr(Fn))Fn=Buffer.from(Fn.buffer,Fn.byteOffset,Fn.byteLength);else if(lr(Fn))Fn=Buffer.from(Fn);else if(typeof Fn!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[et]?(this[ce]&&this[Se]!==0&&this[Q](!0),this[ce]?this.emit("data",Fn):this[De](Fn),this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce]):Fn.length?(typeof Fn=="string"&&!(Nn===this[ae]&&!this[ne]?.lastNeed)&&(Fn=Buffer.from(Fn,Nn)),Buffer.isBuffer(Fn)&&this[ae]&&(Fn=this[ne].write(Fn)),this[ce]&&this[Se]!==0&&this[Q](!0),this[ce]?this.emit("data",Fn):this[De](Fn),this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce]):(this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce])}read(Fn){if(this[ct])return null;if(this[xt]=!1,this[Se]===0||Fn===0||Fn&&Fn>this[Se])return this[C](),null;this[et]&&(Fn=null),this[de].length>1&&!this[et]&&(this[de]=[this[ae]?this[de].join(""):Buffer.concat(this[de],this[Se])]);let Nn=this[F](Fn||null,this[de][0]);return this[C](),Nn}[F](Fn,Nn){if(this[et])this[k]();else{let Hi=Nn;Fn===Hi.length||Fn===null?this[k]():typeof Hi=="string"?(this[de][0]=Hi.slice(Fn),Nn=Hi.slice(0,Fn),this[Se]-=Fn):(this[de][0]=Hi.subarray(Fn),Nn=Hi.subarray(0,Fn),this[Se]-=Fn)}return this.emit("data",Nn),!this[de].length&&!this[I]&&this.emit("drain"),Nn}end(Fn,Nn,Hi){return typeof Fn=="function"&&(Hi=Fn,Fn=void 0),typeof Nn=="function"&&(Hi=Nn,Nn="utf8"),Fn!==void 0&&this.write(Fn,Nn),Hi&&this.once("end",Hi),this[I]=!0,this.writable=!1,(this[ce]||!this[fe])&&this[C](),this}[ue](){this[ct]||(!this[vt]&&!this[be].length&&(this[xt]=!0),this[fe]=!1,this[ce]=!0,this.emit("resume"),this[de].length?this[Q]():this[I]?this[C]():this.emit("drain"))}resume(){return this[ue]()}pause(){this[ce]=!1,this[fe]=!0,this[xt]=!1}get destroyed(){return this[ct]}get flowing(){return this[ce]}get paused(){return this[fe]}[De](Fn){this[et]?this[Se]+=1:this[Se]+=Fn.length,this[de].push(Fn)}[k](){return this[et]?this[Se]-=1:this[Se]-=this[de][0].length,this[de].shift()}[Q](Fn=!1){do;while(this[X](this[k]())&&this[de].length);!Fn&&!this[de].length&&!this[I]&&this.emit("drain")}[X](Fn){return this.emit("data",Fn),this[ce]}pipe(Fn,Nn){if(this[ct])return Fn;this[xt]=!1;let Hi=this[b];return Nn=Nn||{},Fn===r.stdout||Fn===r.stderr?Nn.end=!1:Nn.end=Nn.end!==!1,Nn.proxyErrors=!!Nn.proxyErrors,Hi?Nn.end&&Fn.end():(this[be].push(Nn.proxyErrors?new qr(this,Fn,Nn):new Ar(this,Fn,Nn)),this[Yt]?Zr(()=>this[ue]()):this[ue]()),Fn}unpipe(Fn){let Nn=this[be].find(Hi=>Hi.dest===Fn);Nn&&(this[be].length===1?(this[ce]&&this[vt]===0&&(this[ce]=!1),this[be]=[]):this[be].splice(this[be].indexOf(Nn),1),Nn.unpipe())}addListener(Fn,Nn){return this.on(Fn,Nn)}on(Fn,Nn){let Hi=super.on(Fn,Nn);if(Fn==="data")this[xt]=!1,this[vt]++,!this[be].length&&!this[ce]&&this[ue]();else if(Fn==="readable"&&this[Se]!==0)super.emit("readable");else if(Xt(Fn)&&this[b])super.emit(Fn),this.removeAllListeners(Fn);else if(Fn==="error"&&this[N]){let po=Nn;this[Yt]?Zr(()=>po.call(this,this[N])):po.call(this,this[N])}return Hi}removeListener(Fn,Nn){return this.off(Fn,Nn)}off(Fn,Nn){let Hi=super.off(Fn,Nn);return Fn==="data"&&(this[vt]=this.listeners("data").length,this[vt]===0&&!this[xt]&&!this[be].length&&(this[ce]=!1)),Hi}removeAllListeners(Fn){let Nn=super.removeAllListeners(Fn);return(Fn==="data"||Fn===void 0)&&(this[vt]=0,!this[xt]&&!this[be].length&&(this[ce]=!1)),Nn}get emittedEnd(){return this[b]}[C](){!this[E]&&!this[b]&&!this[ct]&&this[de].length===0&&this[I]&&(this[E]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[B]&&this.emit("close"),this[E]=!1)}emit(Fn,...Nn){let Hi=Nn[0];if(Fn!=="error"&&Fn!=="close"&&Fn!==ct&&this[ct])return!1;if(Fn==="data")return!this[et]&&!Hi?!1:this[Yt]?(Zr(()=>this[je](Hi)),!0):this[je](Hi);if(Fn==="end")return this[St]();if(Fn==="close"){if(this[B]=!0,!this[b]&&!this[ct])return!1;let Vr=super.emit("close");return this.removeAllListeners("close"),Vr}else if(Fn==="error"){this[N]=Hi,super.emit(Me,Hi);let Vr=!this[er]||this.listeners("error").length?super.emit("error",Hi):!1;return this[C](),Vr}else if(Fn==="resume"){let Vr=super.emit("resume");return this[C](),Vr}else if(Fn==="finish"||Fn==="prefinish"){let Vr=super.emit(Fn);return this.removeAllListeners(Fn),Vr}let po=super.emit(Fn,...Nn);return this[C](),po}[je](Fn){for(let Hi of this[be])Hi.dest.write(Fn)===!1&&this.pause();let Nn=this[xt]?!1:super.emit("data",Fn);return this[C](),Nn}[St](){return this[b]?!1:(this[b]=!0,this.readable=!1,this[Yt]?(Zr(()=>this[At]()),!0):this[At]())}[At](){if(this[ne]){let Nn=this[ne].end();if(Nn){for(let Hi of this[be])Hi.dest.write(Nn);this[xt]||super.emit("data",Nn)}}for(let Nn of this[be])Nn.end();let Fn=super.emit("end");return this.removeAllListeners("end"),Fn}async collect(){let Fn=Object.assign([],{dataLength:0});this[et]||(Fn.dataLength=0);let Nn=this.promise();return this.on("data",Hi=>{Fn.push(Hi),this[et]||(Fn.dataLength+=Hi.length)}),await Nn,Fn}async concat(){if(this[et])throw new Error("cannot concat in objectMode");let Fn=await this.collect();return this[ae]?Fn.join(""):Buffer.concat(Fn,Fn.dataLength)}async promise(){return new Promise((Fn,Nn)=>{this.on(ct,()=>Nn(new Error("stream destroyed"))),this.on("error",Hi=>Nn(Hi)),this.on("end",()=>Fn())})}[Symbol.asyncIterator](){this[xt]=!1;let Fn=!1,Nn=async()=>(this.pause(),Fn=!0,{value:void 0,done:!0});return{next:()=>{if(Fn)return Nn();let Hi=this.read();if(Hi!==null)return Promise.resolve({done:!1,value:Hi});if(this[I])return Nn();let po,Vr,xi=Gc=>{this.off("data",io),this.off("end",ga),this.off(ct,Ya),Nn(),Vr(Gc)},io=Gc=>{this.off("error",xi),this.off("end",ga),this.off(ct,Ya),this.pause(),po({value:Gc,done:!!this[I]})},ga=()=>{this.off("error",xi),this.off("data",io),this.off(ct,Ya),Nn(),po({done:!0,value:void 0})},Ya=()=>xi(new Error("stream destroyed"));return new Promise((Gc,cl)=>{Vr=cl,po=Gc,this.once(ct,Ya),this.once("error",xi),this.once("end",ga),this.once("data",io)})},throw:Nn,return:Nn,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[xt]=!1;let Fn=!1,Nn=()=>(this.pause(),this.off(Me,Nn),this.off(ct,Nn),this.off("end",Nn),Fn=!0,{done:!0,value:void 0}),Hi=()=>{if(Fn)return Nn();let po=this.read();return po===null?Nn():{done:!1,value:po}};return this.once("end",Nn),this.once(Me,Nn),this.once(ct,Nn),{next:Hi,throw:Nn,return:Nn,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(Fn){if(this[ct])return Fn?this.emit("error",Fn):this.emit(ct),this;this[ct]=!0,this[xt]=!0,this[de].length=0,this[Se]=0;let Nn=this;return typeof Nn.close=="function"&&!this[B]&&Nn.close(),Fn?this.emit("error",Fn):this.emit(ct),this}static get isStream(){return e.isStream}};e.Minipass=jt}),T5e=yC(e=>{"use strict";var t=e&&e.__importDefault||function(vt){return vt&&vt.__esModule?vt:{default:vt}};Object.defineProperty(e,"__esModule",{value:!0}),e.WriteStreamSync=e.WriteStream=e.ReadStreamSync=e.ReadStream=void 0;var r=t(wt("events")),n=t(wt("fs")),a=w5e(),o=n.default.writev,l=Symbol("_autoClose"),A=Symbol("_close"),f=Symbol("_ended"),I=Symbol("_fd"),C=Symbol("_finished"),b=Symbol("_flags"),E=Symbol("_flush"),N=Symbol("_handleChunk"),B=Symbol("_makeBuf"),F=Symbol("_mode"),Q=Symbol("_needDrain"),X=Symbol("_onerror"),ae=Symbol("_onopen"),ne=Symbol("_onread"),ce=Symbol("_onwrite"),fe=Symbol("_open"),ue=Symbol("_path"),de=Symbol("_pos"),be=Symbol("_queue"),Se=Symbol("_read"),De=Symbol("_readSize"),k=Symbol("_reading"),et=Symbol("_remain"),ct=Symbol("_size"),Me=Symbol("_write"),je=Symbol("_writing"),St=Symbol("_defaultFlag"),At=Symbol("_errored"),Yt=class extends a.Minipass{[At]=!1;[I];[ue];[De];[k]=!1;[ct];[et];[l];constructor(vt,xt){if(xt=xt||{},super(xt),this.readable=!0,this.writable=!1,typeof vt!="string")throw new TypeError("path must be a string");this[At]=!1,this[I]=typeof xt.fd=="number"?xt.fd:void 0,this[ue]=vt,this[De]=xt.readSize||16*1024*1024,this[k]=!1,this[ct]=typeof xt.size=="number"?xt.size:1/0,this[et]=this[ct],this[l]=typeof xt.autoClose=="boolean"?xt.autoClose:!0,typeof this[I]=="number"?this[Se]():this[fe]()}get fd(){return this[I]}get path(){return this[ue]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[fe](){n.default.open(this[ue],"r",(vt,xt)=>this[ae](vt,xt))}[ae](vt,xt){vt?this[X](vt):(this[I]=xt,this.emit("open",xt),this[Se]())}[B](){return Buffer.allocUnsafe(Math.min(this[De],this[et]))}[Se](){if(!this[k]){this[k]=!0;let vt=this[B]();if(vt.length===0)return process.nextTick(()=>this[ne](null,0,vt));n.default.read(this[I],vt,0,vt.length,null,(xt,Zr,qt)=>this[ne](xt,Zr,qt))}}[ne](vt,xt,Zr){this[k]=!1,vt?this[X](vt):this[N](xt,Zr)&&this[Se]()}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.close(vt,xt=>xt?this.emit("error",xt):this.emit("close"))}}[X](vt){this[k]=!0,this[A](),this.emit("error",vt)}[N](vt,xt){let Zr=!1;return this[et]-=vt,vt>0&&(Zr=super.write(vtthis[ae](vt,xt))}[ae](vt,xt){this[St]&&this[b]==="r+"&&vt&&vt.code==="ENOENT"?(this[b]="w",this[fe]()):vt?this[X](vt):(this[I]=xt,this.emit("open",xt),this[je]||this[E]())}end(vt,xt){return vt&&this.write(vt,xt),this[f]=!0,!this[je]&&!this[be].length&&typeof this[I]=="number"&&this[ce](null,0),this}write(vt,xt){return typeof vt=="string"&&(vt=Buffer.from(vt,xt)),this[f]?(this.emit("error",new Error("write() after end()")),!1):this[I]===void 0||this[je]||this[be].length?(this[be].push(vt),this[Q]=!0,!1):(this[je]=!0,this[Me](vt),!0)}[Me](vt){n.default.write(this[I],vt,0,vt.length,this[de],(xt,Zr)=>this[ce](xt,Zr))}[ce](vt,xt){vt?this[X](vt):(this[de]!==void 0&&typeof xt=="number"&&(this[de]+=xt),this[be].length?this[E]():(this[je]=!1,this[f]&&!this[C]?(this[C]=!0,this[A](),this.emit("finish")):this[Q]&&(this[Q]=!1,this.emit("drain"))))}[E](){if(this[be].length===0)this[f]&&this[ce](null,0);else if(this[be].length===1)this[Me](this[be].pop());else{let vt=this[be];this[be]=[],o(this[I],vt,this[de],(xt,Zr)=>this[ce](xt,Zr))}}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.close(vt,xt=>xt?this.emit("error",xt):this.emit("close"))}}};e.WriteStream=Nr;var er=class extends Nr{[fe](){let vt;if(this[St]&&this[b]==="r+")try{vt=n.default.openSync(this[ue],this[b],this[F])}catch(xt){if(xt?.code==="ENOENT")return this[b]="w",this[fe]();throw xt}else vt=n.default.openSync(this[ue],this[b],this[F]);this[ae](null,vt)}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.closeSync(vt),this.emit("close")}}[Me](vt){let xt=!0;try{this[ce](null,n.default.writeSync(this[I],vt,0,vt.length,this[de])),xt=!1}finally{if(xt)try{this[A]()}catch{}}}};e.WriteStreamSync=er}),YAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.dealias=e.isNoFile=e.isFile=e.isAsync=e.isSync=e.isAsyncNoFile=e.isSyncNoFile=e.isAsyncFile=e.isSyncFile=void 0;var t=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),r=E=>!!E.sync&&!!E.file;e.isSyncFile=r;var n=E=>!E.sync&&!!E.file;e.isAsyncFile=n;var a=E=>!!E.sync&&!E.file;e.isSyncNoFile=a;var o=E=>!E.sync&&!E.file;e.isAsyncNoFile=o;var l=E=>!!E.sync;e.isSync=l;var A=E=>!E.sync;e.isAsync=A;var f=E=>!!E.file;e.isFile=f;var I=E=>!E.file;e.isNoFile=I;var C=E=>t.get(E)||E,b=(E={})=>{if(!E)return{};let N={};for(let[B,F]of Object.entries(E)){let Q=C(B);N[Q]=F}return N.chmod===void 0&&N.noChmod===!1&&(N.chmod=!0),delete N.noChmod,N};e.dealias=b}),R5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.makeCommand=void 0;var t=YAr(),r=(n,a,o,l,A)=>Object.assign((f=[],I,C)=>{Array.isArray(f)&&(I=f,f={}),typeof I=="function"&&(C=I,I=void 0),I=I?Array.from(I):[];let b=(0,t.dealias)(f);if(A?.(b,I),(0,t.isSyncFile)(b)){if(typeof C=="function")throw new TypeError("callback not supported for sync tar functions");return n(b,I)}else if((0,t.isAsyncFile)(b)){let E=a(b,I);return C?E.then(()=>C(),C):E}else if((0,t.isSyncNoFile)(b)){if(typeof C=="function")throw new TypeError("callback not supported for sync tar functions");return o(b,I)}else if((0,t.isAsyncNoFile)(b)){if(typeof C=="function")throw new TypeError("callback only supported with file option");return l(b,I)}throw new Error("impossible options??")},{syncFile:n,asyncFile:a,syncNoFile:o,asyncNoFile:l,validate:A});e.makeCommand=r}),zZn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(e,"__esModule",{value:!0}),e.constants=void 0;var r=t(wt("zlib")),n=r.default.constants||{ZLIB_VERNUM:4736};e.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},n))}),qZn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(At,Yt,Tr,Nr){Nr===void 0&&(Nr=Tr);var er=Object.getOwnPropertyDescriptor(Yt,Tr);(!er||("get"in er?!Yt.__esModule:er.writable||er.configurable))&&(er={enumerable:!0,get:function(){return Yt[Tr]}}),Object.defineProperty(At,Nr,er)}:function(At,Yt,Tr,Nr){Nr===void 0&&(Nr=Tr),At[Nr]=Yt[Tr]}),r=e&&e.__setModuleDefault||(Object.create?function(At,Yt){Object.defineProperty(At,"default",{enumerable:!0,value:Yt})}:function(At,Yt){At.default=Yt}),n=e&&e.__importStar||function(){var At=function(Yt){return At=Object.getOwnPropertyNames||function(Tr){var Nr=[];for(var er in Tr)Object.prototype.hasOwnProperty.call(Tr,er)&&(Nr[Nr.length]=er);return Nr},At(Yt)};return function(Yt){if(Yt&&Yt.__esModule)return Yt;var Tr={};if(Yt!=null)for(var Nr=At(Yt),er=0;erAt,B=E?.writable===!0||E?.set!==void 0?At=>{l.Buffer.concat=At?N:b}:At=>{},F=Symbol("_superWrite"),Q=class extends Error{code;errno;constructor(At,Yt){super("zlib: "+At.message,{cause:At}),this.code=At.code,this.errno=At.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+At.message,Error.captureStackTrace(this,Yt??this.constructor)}get name(){return"ZlibError"}};e.ZlibError=Q;var X=Symbol("flushFlag"),ae=class extends A.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(At,Yt){if(!At||typeof At!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(At),this.#n=At.flush??0,this.#r=At.finishFlush??0,this.#i=At.fullFlushFlag??0,typeof f[Yt]!="function")throw new TypeError("Compression method not supported: "+Yt);try{this.#s=new f[Yt](At)}catch(Tr){throw new Q(Tr,this.constructor)}this.#o=Tr=>{this.#e||(this.#e=!0,this.close(),this.emit("error",Tr))},this.#s?.on("error",Tr=>this.#o(new Q(Tr))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,o.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(At){this.ended||(typeof At!="number"&&(At=this.#i),this.write(Object.assign(l.Buffer.alloc(0),{[X]:At})))}end(At,Yt,Tr){return typeof At=="function"&&(Tr=At,Yt=void 0,At=void 0),typeof Yt=="function"&&(Tr=Yt,Yt=void 0),At&&(Yt?this.write(At,Yt):this.write(At)),this.flush(this.#r),this.#t=!0,super.end(Tr)}get ended(){return this.#t}[F](At){return super.write(At)}write(At,Yt,Tr){if(typeof Yt=="function"&&(Tr=Yt,Yt="utf8"),typeof At=="string"&&(At=l.Buffer.from(At,Yt)),this.#e)return;(0,o.default)(this.#s,"zlib binding closed");let Nr=this.#s._handle,er=Nr.close;Nr.close=()=>{};let vt=this.#s.close;this.#s.close=()=>{},B(!0);let xt;try{let qt=typeof At[X]=="number"?At[X]:this.#n;xt=this.#s._processChunk(At,qt),B(!1)}catch(qt){B(!1),this.#o(new Q(qt,this.write))}finally{this.#s&&(this.#s._handle=Nr,Nr.close=er,this.#s.close=vt,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",qt=>this.#o(new Q(qt,this.write)));let Zr;if(xt)if(Array.isArray(xt)&&xt.length>0){let qt=xt[0];Zr=this[F](l.Buffer.from(qt));for(let Xt=1;Xt{typeof Nr=="function"&&(er=Nr,Nr=this.flushFlag),this.flush(Nr),er?.()};try{this.handle.params(At,Yt)}finally{this.handle.flush=Tr}this.handle&&(this.#e=At,this.#t=Yt)}}}};e.Zlib=ne;var ce=class extends ne{constructor(At){super(At,"Deflate")}};e.Deflate=ce;var fe=class extends ne{constructor(At){super(At,"Inflate")}};e.Inflate=fe;var ue=class extends ne{#e;constructor(At){super(At,"Gzip"),this.#e=At&&!!At.portable}[F](At){return this.#e?(this.#e=!1,At[9]=255,super[F](At)):super[F](At)}};e.Gzip=ue;var de=class extends ne{constructor(At){super(At,"Gunzip")}};e.Gunzip=de;var be=class extends ne{constructor(At){super(At,"DeflateRaw")}};e.DeflateRaw=be;var Se=class extends ne{constructor(At){super(At,"InflateRaw")}};e.InflateRaw=Se;var De=class extends ne{constructor(At){super(At,"Unzip")}};e.Unzip=De;var k=class extends ae{constructor(At,Yt){At=At||{},At.flush=At.flush||I.constants.BROTLI_OPERATION_PROCESS,At.finishFlush=At.finishFlush||I.constants.BROTLI_OPERATION_FINISH,At.fullFlushFlag=I.constants.BROTLI_OPERATION_FLUSH,super(At,Yt)}},et=class extends k{constructor(At){super(At,"BrotliCompress")}};e.BrotliCompress=et;var ct=class extends k{constructor(At){super(At,"BrotliDecompress")}};e.BrotliDecompress=ct;var Me=class extends ae{constructor(At,Yt){At=At||{},At.flush=At.flush||I.constants.ZSTD_e_continue,At.finishFlush=At.finishFlush||I.constants.ZSTD_e_end,At.fullFlushFlag=I.constants.ZSTD_e_flush,super(At,Yt)}},je=class extends Me{constructor(At){super(At,"ZstdCompress")}};e.ZstdCompress=je;var St=class extends Me{constructor(At){super(At,"ZstdDecompress")}};e.ZstdDecompress=St}),wOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parse=e.encode=void 0;var t=(I,C)=>{if(Number.isSafeInteger(I))I<0?n(I,C):r(I,C);else throw Error("cannot encode number outside of javascript safe integer range");return C};e.encode=t;var r=(I,C)=>{C[0]=128;for(var b=C.length;b>1;b--)C[b-1]=I&255,I=Math.floor(I/256)},n=(I,C)=>{C[0]=255;var b=!1;I=I*-1;for(var E=C.length;E>1;E--){var N=I&255;I=Math.floor(I/256),b?C[E-1]=A(N):N===0?C[E-1]=0:(b=!0,C[E-1]=f(N))}},a=I=>{let C=I[0],b=C===128?l(I.subarray(1,I.length)):C===255?o(I):null;if(b===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(b))throw Error("parsed number outside of javascript safe integer range");return b};e.parse=a;var o=I=>{for(var C=I.length,b=0,E=!1,N=C-1;N>-1;N--){var B=Number(I[N]),F;E?F=A(B):B===0?F=B:(E=!0,F=f(B)),F!==0&&(b-=F*Math.pow(256,C-N-1))}return b},l=I=>{for(var C=I.length,b=0,E=C-1;E>-1;E--){var N=Number(I[E]);N!==0&&(b+=N*Math.pow(256,C-E-1))}return b},A=I=>(255^I)&255,f=I=>(255^I)+1&255}),$Zn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.code=e.name=e.isName=e.isCode=void 0;var t=n=>e.name.has(n);e.isCode=t;var r=n=>e.code.has(n);e.isName=r,e.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),e.code=new Map(Array.from(e.name).map(n=>[n[1],n[0]]))}),N5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(de,be,Se,De){De===void 0&&(De=Se);var k=Object.getOwnPropertyDescriptor(be,Se);(!k||("get"in k?!be.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return be[Se]}}),Object.defineProperty(de,De,k)}:function(de,be,Se,De){De===void 0&&(De=Se),de[De]=be[Se]}),r=e&&e.__setModuleDefault||(Object.create?function(de,be){Object.defineProperty(de,"default",{enumerable:!0,value:be})}:function(de,be){de.default=be}),n=e&&e.__importStar||function(){var de=function(be){return de=Object.getOwnPropertyNames||function(Se){var De=[];for(var k in Se)Object.prototype.hasOwnProperty.call(Se,k)&&(De[De.length]=k);return De},de(be)};return function(be){if(be&&be.__esModule)return be;var Se={};if(be!=null)for(var De=de(be),k=0;k=be+512))throw new Error("need 512 bytes for header");this.path=Se?.path??I(de,be,100),this.mode=Se?.mode??De?.mode??E(de,be+100,8),this.uid=Se?.uid??De?.uid??E(de,be+108,8),this.gid=Se?.gid??De?.gid??E(de,be+116,8),this.size=Se?.size??De?.size??E(de,be+124,12),this.mtime=Se?.mtime??De?.mtime??C(de,be+136,12),this.cksum=E(de,be+148,12),De&&this.#t(De,!0),Se&&this.#t(Se);let k=I(de,be+156,1);if(l.isCode(k)&&(this.#e=k||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=I(de,be+157,100),de.subarray(be+257,be+265).toString()==="ustar\x0000")if(this.uname=Se?.uname??De?.uname??I(de,be+265,32),this.gname=Se?.gname??De?.gname??I(de,be+297,32),this.devmaj=Se?.devmaj??De?.devmaj??E(de,be+329,8)??0,this.devmin=Se?.devmin??De?.devmin??E(de,be+337,8)??0,de[be+475]!==0){let ct=I(de,be+345,155);this.path=ct+"/"+this.path}else{let ct=I(de,be+345,130);ct&&(this.path=ct+"/"+this.path),this.atime=Se?.atime??De?.atime??C(de,be+476,12),this.ctime=Se?.ctime??De?.ctime??C(de,be+488,12)}let et=256;for(let ct=be;ct!(De==null||Se==="path"&&be||Se==="linkpath"&&be||Se==="global"))))}encode(de,be=0){if(de||(de=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(de.length>=be+512))throw new Error("need 512 bytes for header");let Se=this.ctime||this.atime?130:155,De=f(this.path||"",Se),k=De[0],et=De[1];this.needPax=!!De[2],this.needPax=ue(de,be,100,k)||this.needPax,this.needPax=Q(de,be+100,8,this.mode)||this.needPax,this.needPax=Q(de,be+108,8,this.uid)||this.needPax,this.needPax=Q(de,be+116,8,this.gid)||this.needPax,this.needPax=Q(de,be+124,12,this.size)||this.needPax,this.needPax=ce(de,be+136,12,this.mtime)||this.needPax,de[be+156]=Number(this.#e.codePointAt(0)),this.needPax=ue(de,be+157,100,this.linkpath)||this.needPax,de.write("ustar\x0000",be+257,8),this.needPax=ue(de,be+265,32,this.uname)||this.needPax,this.needPax=ue(de,be+297,32,this.gname)||this.needPax,this.needPax=Q(de,be+329,8,this.devmaj)||this.needPax,this.needPax=Q(de,be+337,8,this.devmin)||this.needPax,this.needPax=ue(de,be+345,Se,et)||this.needPax,de[be+475]!==0?this.needPax=ue(de,be+345,155,et)||this.needPax:(this.needPax=ue(de,be+345,130,et)||this.needPax,this.needPax=ce(de,be+476,12,this.atime)||this.needPax,this.needPax=ce(de,be+488,12,this.ctime)||this.needPax);let ct=256;for(let Me=be;Me{let Se=de,De="",k,et=a.posix.parse(de).root||".";if(Buffer.byteLength(Se)<100)k=[Se,De,!1];else{De=a.posix.dirname(Se),Se=a.posix.basename(Se);do Buffer.byteLength(Se)<=100&&Buffer.byteLength(De)<=be?k=[Se,De,!1]:Buffer.byteLength(Se)>100&&Buffer.byteLength(De)<=be?k=[Se.slice(0,99),De,!0]:(Se=a.posix.join(a.posix.basename(De),Se),De=a.posix.dirname(De));while(De!==et&&k===void 0);k||(k=[de.slice(0,99),"",!0])}return k},I=(de,be,Se)=>de.subarray(be,be+Se).toString("utf8").replace(/\0.*/,""),C=(de,be,Se)=>b(E(de,be,Se)),b=de=>de===void 0?void 0:new Date(de*1e3),E=(de,be,Se)=>Number(de[be])&128?o.parse(de.subarray(be,be+Se)):B(de,be,Se),N=de=>isNaN(de)?void 0:de,B=(de,be,Se)=>N(parseInt(de.subarray(be,be+Se).toString("utf8").replace(/\0.*$/,"").trim(),8)),F={12:8589934591,8:2097151},Q=(de,be,Se,De)=>De===void 0?!1:De>F[Se]||De<0?(o.encode(De,de.subarray(be,be+Se)),!0):(X(de,be,Se,De),!1),X=(de,be,Se,De)=>de.write(ae(De,Se),be,Se,"ascii"),ae=(de,be)=>ne(Math.floor(de).toString(8),be),ne=(de,be)=>(de.length===be-1?de:new Array(be-de.length-1).join("0")+de+" ")+"\0",ce=(de,be,Se,De)=>De===void 0?!1:Q(de,be,Se,De.getTime()/1e3),fe=new Array(156).join("\0"),ue=(de,be,Se,De)=>De===void 0?!1:(de.write(De+fe,be,Se,"utf8"),De.length!==Buffer.byteLength(De)||De.length>Se)}),QAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Pax=void 0;var t=wt("node:path"),r=N5e(),n=class eLn{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(f,I=!1){this.atime=f.atime,this.charset=f.charset,this.comment=f.comment,this.ctime=f.ctime,this.dev=f.dev,this.gid=f.gid,this.global=I,this.gname=f.gname,this.ino=f.ino,this.linkpath=f.linkpath,this.mtime=f.mtime,this.nlink=f.nlink,this.path=f.path,this.size=f.size,this.uid=f.uid,this.uname=f.uname}encode(){let f=this.encodeBody();if(f==="")return Buffer.allocUnsafe(0);let I=Buffer.byteLength(f),C=512*Math.ceil(1+I/512),b=Buffer.allocUnsafe(C);for(let E=0;E<512;E++)b[E]=0;new r.Header({path:("PaxHeader/"+(0,t.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:I,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(b),b.write(f,512,I,"utf8");for(let E=I+512;E=Math.pow(10,N)&&(N+=1),N+E+b}static parse(f,I,C=!1){return new eLn(a(o(f),I),C)}};e.Pax=n;var a=(A,f)=>f?Object.assign({},f,A):A,o=A=>A.replace(/\n$/,"").split(` -`).reduce(l,Object.create(null)),l=(A,f)=>{let I=parseInt(f,10);if(I!==Buffer.byteLength(f)+1)return A;f=f.slice((I+" ").length);let C=f.split("="),b=C.shift();if(!b)return A;let E=b.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),N=C.join("=");return A[E]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(E)?new Date(Number(N)*1e3):/^[0-9]+$/.test(N)?+N:N,A}}),D5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeWindowsPath=void 0;var t=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;e.normalizeWindowsPath=t!=="win32"?r=>r:r=>r&&r.replaceAll(/\\/g,"/")}),XAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadEntry=void 0;var t=w5e(),r=D5e(),n=class extends t.Minipass{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(a,o,l){switch(super({}),this.pause(),this.extended=o,this.globalExtended=l,this.header=a,this.remain=a.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=a.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!a.path)throw new Error("no path provided for tar.ReadEntry");this.path=(0,r.normalizeWindowsPath)(a.path),this.mode=a.mode,this.mode&&(this.mode=this.mode&4095),this.uid=a.uid,this.gid=a.gid,this.uname=a.uname,this.gname=a.gname,this.size=this.remain,this.mtime=a.mtime,this.atime=a.atime,this.ctime=a.ctime,this.linkpath=a.linkpath?(0,r.normalizeWindowsPath)(a.linkpath):void 0,this.uname=a.uname,this.gname=a.gname,o&&this.#e(o),l&&this.#e(l,!0)}write(a){let o=a.length;if(o>this.blockRemain)throw new Error("writing more to entry than is appropriate");let l=this.remain,A=this.blockRemain;return this.remain=Math.max(0,l-o),this.blockRemain=Math.max(0,A-o),this.ignore?!0:l>=o?super.write(a):super.write(a.subarray(0,l))}#e(a,o=!1){a.path&&(a.path=(0,r.normalizeWindowsPath)(a.path)),a.linkpath&&(a.linkpath=(0,r.normalizeWindowsPath)(a.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(a).filter(([l,A])=>!(A==null||l==="path"&&o))))}};e.ReadEntry=n}),JAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.warnMethod=void 0;var t=(r,n,a,o={})=>{r.file&&(o.file=r.file),r.cwd&&(o.cwd=r.cwd),o.code=a instanceof Error&&a.code||n,o.tarCode=n,!r.strict&&o.recoverable!==!1?(a instanceof Error&&(o=Object.assign(a,o),a=a.message),r.emit("warn",n,a,o)):a instanceof Error?r.emit("error",Object.assign(a,o)):r.emit("error",Object.assign(new Error(`${n}: ${a}`),o))};e.warnMethod=t}),UAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var t=wt("events"),r=qZn(),n=N5e(),a=QAr(),o=XAr(),l=JAr(),A=1024*1024,f=Buffer.from([31,139]),I=Buffer.from([40,181,47,253]),C=Math.max(f.length,I.length),b=Symbol("state"),E=Symbol("writeEntry"),N=Symbol("readEntry"),B=Symbol("nextEntry"),F=Symbol("processEntry"),Q=Symbol("extendedHeader"),X=Symbol("globalExtendedHeader"),ae=Symbol("meta"),ne=Symbol("emitMeta"),ce=Symbol("buffer"),fe=Symbol("queue"),ue=Symbol("ended"),de=Symbol("emittedEnd"),be=Symbol("emit"),Se=Symbol("unzip"),De=Symbol("consumeChunk"),k=Symbol("consumeChunkSub"),et=Symbol("consumeBody"),ct=Symbol("consumeMeta"),Me=Symbol("consumeHeader"),je=Symbol("consuming"),St=Symbol("bufferConcat"),At=Symbol("maybeEnd"),Yt=Symbol("writing"),Tr=Symbol("aborted"),Nr=Symbol("onDone"),er=Symbol("sawValidEntry"),vt=Symbol("sawNullBlock"),xt=Symbol("sawEOF"),Zr=Symbol("closeStream"),qt=()=>!0,Xt=class extends t.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[fe]=[];[ce];[N];[E];[b]="begin";[ae]="";[Q];[X];[ue]=!1;[Se];[Tr]=!1;[er];[vt]=!1;[xt]=!1;[Yt]=!1;[je]=!1;[de]=!1;constructor(lr={}){super(),this.file=lr.file||"",this.on(Nr,()=>{(this[b]==="begin"||this[er]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),lr.ondone?this.on(Nr,lr.ondone):this.on(Nr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!lr.strict,this.maxMetaEntrySize=lr.maxMetaEntrySize||A,this.filter=typeof lr.filter=="function"?lr.filter:qt;let cr=lr.file&&(lr.file.endsWith(".tar.br")||lr.file.endsWith(".tbr"));this.brotli=!(lr.gzip||lr.zstd)&&lr.brotli!==void 0?lr.brotli:cr?void 0:!1;let Ar=lr.file&&(lr.file.endsWith(".tar.zst")||lr.file.endsWith(".tzst"));this.zstd=!(lr.gzip||lr.brotli)&&lr.zstd!==void 0?lr.zstd:Ar?!0:void 0,this.on("end",()=>this[Zr]()),typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn),typeof lr.onReadEntry=="function"&&this.on("entry",lr.onReadEntry)}warn(lr,cr,Ar={}){(0,l.warnMethod)(this,lr,cr,Ar)}[Me](lr,cr){this[er]===void 0&&(this[er]=!1);let Ar;try{Ar=new n.Header(lr,cr,this[Q],this[X])}catch(qr){return this.warn("TAR_ENTRY_INVALID",qr)}if(Ar.nullBlock)this[vt]?(this[xt]=!0,this[b]==="begin"&&(this[b]="header"),this[be]("eof")):(this[vt]=!0,this[be]("nullBlock"));else if(this[vt]=!1,!Ar.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:Ar});else if(!Ar.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:Ar});else{let qr=Ar.type;if(/^(Symbolic)?Link$/.test(qr)&&!Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:Ar});else if(!/^(Symbolic)?Link$/.test(qr)&&!/^(Global)?ExtendedHeader$/.test(qr)&&Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:Ar});else{let _n=this[E]=new o.ReadEntry(Ar,this[Q],this[X]);if(!this[er])if(_n.remain){let ke=()=>{_n.invalid||(this[er]=!0)};_n.on("end",ke)}else this[er]=!0;_n.meta?_n.size>this.maxMetaEntrySize?(_n.ignore=!0,this[be]("ignoredEntry",_n),this[b]="ignore",_n.resume()):_n.size>0&&(this[ae]="",_n.on("data",ke=>this[ae]+=ke),this[b]="meta"):(this[Q]=void 0,_n.ignore=_n.ignore||!this.filter(_n.path,_n),_n.ignore?(this[be]("ignoredEntry",_n),this[b]=_n.remain?"ignore":"header",_n.resume()):(_n.remain?this[b]="body":(this[b]="header",_n.end()),this[N]?this[fe].push(_n):(this[fe].push(_n),this[B]())))}}}[Zr](){queueMicrotask(()=>this.emit("close"))}[F](lr){let cr=!0;if(!lr)this[N]=void 0,cr=!1;else if(Array.isArray(lr)){let[Ar,...qr]=lr;this.emit(Ar,...qr)}else this[N]=lr,this.emit("entry",lr),lr.emittedEnd||(lr.on("end",()=>this[B]()),cr=!1);return cr}[B](){do;while(this[F](this[fe].shift()));if(this[fe].length===0){let lr=this[N];!lr||lr.flowing||lr.size===lr.remain?this[Yt]||this.emit("drain"):lr.once("drain",()=>this.emit("drain"))}}[et](lr,cr){let Ar=this[E];if(!Ar)throw new Error("attempt to consume body without entry??");let qr=Ar.blockRemain??0,_n=qr>=lr.length&&cr===0?lr:lr.subarray(cr,cr+qr);return Ar.write(_n),Ar.blockRemain||(this[b]="header",this[E]=void 0,Ar.end()),_n.length}[ct](lr,cr){let Ar=this[E],qr=this[et](lr,cr);return!this[E]&&Ar&&this[ne](Ar),qr}[be](lr,cr,Ar){this[fe].length===0&&!this[N]?this.emit(lr,cr,Ar):this[fe].push([lr,cr,Ar])}[ne](lr){switch(this[be]("meta",this[ae]),lr.type){case"ExtendedHeader":case"OldExtendedHeader":this[Q]=a.Pax.parse(this[ae],this[Q],!1);break;case"GlobalExtendedHeader":this[X]=a.Pax.parse(this[ae],this[X],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let cr=this[Q]??Object.create(null);this[Q]=cr,cr.path=this[ae].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let cr=this[Q]||Object.create(null);this[Q]=cr,cr.linkpath=this[ae].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+lr.type)}}abort(lr){this[Tr]=!0,this.emit("abort",lr),this.warn("TAR_ABORT",lr,{recoverable:!1})}write(lr,cr,Ar){if(typeof cr=="function"&&(Ar=cr,cr=void 0),typeof lr=="string"&&(lr=Buffer.from(lr,typeof cr=="string"?cr:"utf8")),this[Tr])return Ar?.(),!1;if((this[Se]===void 0||this.brotli===void 0&&this[Se]===!1)&&lr){if(this[ce]&&(lr=Buffer.concat([this[ce],lr]),this[ce]=void 0),lr.lengththis[De](Nn)),this[Se].on("error",Nn=>this.abort(Nn)),this[Se].on("end",()=>{this[ue]=!0,this[De]()}),this[Yt]=!0;let Fn=!!this[Se][jt?"end":"write"](lr);return this[Yt]=!1,Ar?.(),Fn}}this[Yt]=!0,this[Se]?this[Se].write(lr):this[De](lr),this[Yt]=!1;let qr=this[fe].length>0?!1:this[N]?this[N].flowing:!0;return!qr&&this[fe].length===0&&this[N]?.once("drain",()=>this.emit("drain")),Ar?.(),qr}[St](lr){lr&&!this[Tr]&&(this[ce]=this[ce]?Buffer.concat([this[ce],lr]):lr)}[At](){if(this[ue]&&!this[de]&&!this[Tr]&&!this[je]){this[de]=!0;let lr=this[E];if(lr&&lr.blockRemain){let cr=this[ce]?this[ce].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${lr.blockRemain} more bytes, only ${cr} available)`,{entry:lr}),this[ce]&&lr.write(this[ce]),lr.end()}this[be](Nr)}}[De](lr){if(this[je]&&lr)this[St](lr);else if(!lr&&!this[ce])this[At]();else if(lr){if(this[je]=!0,this[ce]){this[St](lr);let cr=this[ce];this[ce]=void 0,this[k](cr)}else this[k](lr);for(;this[ce]&&this[ce]?.length>=512&&!this[Tr]&&!this[xt];){let cr=this[ce];this[ce]=void 0,this[k](cr)}this[je]=!1}(!this[ce]||this[ue])&&this[At]()}[k](lr){let cr=0,Ar=lr.length;for(;cr+512<=Ar&&!this[Tr]&&!this[xt];)switch(this[b]){case"begin":case"header":this[Me](lr,cr),cr+=512;break;case"ignore":case"body":cr+=this[et](lr,cr);break;case"meta":cr+=this[ct](lr,cr);break;default:throw new Error("invalid state: "+this[b])}cr{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripTrailingSlashes=void 0;var t=r=>{let n=r.length-1,a=-1;for(;n>-1&&r.charAt(n)==="/";)a=n,n--;return a===-1?r:r.slice(0,a)};e.stripTrailingSlashes=t}),k5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(F,Q,X,ae){ae===void 0&&(ae=X);var ne=Object.getOwnPropertyDescriptor(Q,X);(!ne||("get"in ne?!Q.__esModule:ne.writable||ne.configurable))&&(ne={enumerable:!0,get:function(){return Q[X]}}),Object.defineProperty(F,ae,ne)}:function(F,Q,X,ae){ae===void 0&&(ae=X),F[ae]=Q[X]}),r=e&&e.__setModuleDefault||(Object.create?function(F,Q){Object.defineProperty(F,"default",{enumerable:!0,value:Q})}:function(F,Q){F.default=Q}),n=e&&e.__importStar||function(){var F=function(Q){return F=Object.getOwnPropertyNames||function(X){var ae=[];for(var ne in X)Object.prototype.hasOwnProperty.call(X,ne)&&(ae[ae.length]=ne);return ae},F(Q)};return function(Q){if(Q&&Q.__esModule)return Q;var X={};if(Q!=null)for(var ae=F(Q),ne=0;ne{let Q=F.onReadEntry;F.onReadEntry=Q?X=>{Q(X),X.resume()}:X=>X.resume()},E=(F,Q)=>{let X=new Map(Q.map(ce=>[(0,C.stripTrailingSlashes)(ce),!0])),ae=F.filter,ne=(ce,fe="")=>{let ue=fe||(0,A.parse)(ce).root||".",de;if(ce===ue)de=!1;else{let be=X.get(ce);de=be!==void 0?be:ne((0,A.dirname)(ce),ue)}return X.set(ce,de),de};F.filter=ae?(ce,fe)=>ae(ce,fe)&&ne((0,C.stripTrailingSlashes)(ce)):ce=>ne((0,C.stripTrailingSlashes)(ce))};e.filesFilter=E;var N=F=>{let Q=new I.Parser(F),X=F.file,ae;try{ae=l.default.openSync(X,"r");let ne=l.default.fstatSync(ae),ce=F.maxReadSize||16*1024*1024;if(ne.size{let X=new I.Parser(F),ae=F.maxReadSize||16*1024*1024,ne=F.file;return new Promise((ce,fe)=>{X.on("error",fe),X.on("end",ce),l.default.stat(ne,(ue,de)=>{if(ue)fe(ue);else{let be=new o.ReadStream(ne,{readSize:ae,size:de.size});be.on("error",fe),be.pipe(X)}})})};e.list=(0,f.makeCommand)(N,B,F=>new I.Parser(F),F=>new I.Parser(F),(F,Q)=>{Q?.length&&(0,e.filesFilter)(F,Q),F.noResume||b(F)})}),TOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.modeFix=void 0;var t=(r,n,a)=>(r&=4095,a&&(r=(r|384)&-19),n&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r);e.modeFix=t}),tLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripAbsolutePath=void 0;var t=wt("node:path"),{isAbsolute:r,parse:n}=t.win32,a=o=>{let l="",A=n(o);for(;r(o)||A.root;){let f=o.charAt(0)==="/"&&o.slice(0,4)!=="//?/"?"/":A.root;o=o.slice(f.length),l+=f,A=n(o)}return[l,o]};e.stripAbsolutePath=a}),rLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decode=e.encode=void 0;var t=["|","<",">","?",":"],r=t.map(A=>String.fromCodePoint(61440+Number(A.codePointAt(0)))),n=new Map(t.map((A,f)=>[A,r[f]])),a=new Map(r.map((A,f)=>[A,t[f]])),o=A=>t.reduce((f,I)=>f.split(I).join(n.get(I)),A);e.encode=o;var l=A=>r.reduce((f,I)=>f.split(I).join(a.get(I)),A);e.decode=l}),nLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(qt,Xt,lr,cr){cr===void 0&&(cr=lr);var Ar=Object.getOwnPropertyDescriptor(Xt,lr);(!Ar||("get"in Ar?!Xt.__esModule:Ar.writable||Ar.configurable))&&(Ar={enumerable:!0,get:function(){return Xt[lr]}}),Object.defineProperty(qt,cr,Ar)}:function(qt,Xt,lr,cr){cr===void 0&&(cr=lr),qt[cr]=Xt[lr]}),r=e&&e.__setModuleDefault||(Object.create?function(qt,Xt){Object.defineProperty(qt,"default",{enumerable:!0,value:Xt})}:function(qt,Xt){qt.default=Xt}),n=e&&e.__importStar||function(){var qt=function(Xt){return qt=Object.getOwnPropertyNames||function(lr){var cr=[];for(var Ar in lr)Object.prototype.hasOwnProperty.call(lr,Ar)&&(cr[cr.length]=Ar);return cr},qt(Xt)};return function(Xt){if(Xt&&Xt.__esModule)return Xt;var lr={};if(Xt!=null)for(var cr=qt(Xt),Ar=0;ArXt?(qt=(0,C.normalizeWindowsPath)(qt).replace(/^\.(\/|$)/,""),(0,B.stripTrailingSlashes)(Xt)+"/"+qt):(0,C.normalizeWindowsPath)(qt),ae=16*1024*1024,ne=Symbol("process"),ce=Symbol("file"),fe=Symbol("directory"),ue=Symbol("symlink"),de=Symbol("hardlink"),be=Symbol("header"),Se=Symbol("read"),De=Symbol("lstat"),k=Symbol("onlstat"),et=Symbol("onread"),ct=Symbol("onreadlink"),Me=Symbol("openfile"),je=Symbol("onopenfile"),St=Symbol("close"),At=Symbol("mode"),Yt=Symbol("awaitDrain"),Tr=Symbol("ondrain"),Nr=Symbol("prefix"),er=class extends l.Minipass{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.path=(0,C.normalizeWindowsPath)(qt),this.portable=!!lr.portable,this.maxReadSize=lr.maxReadSize||ae,this.linkCache=lr.linkCache||new Map,this.statCache=lr.statCache||new Map,this.preservePaths=!!lr.preservePaths,this.cwd=(0,C.normalizeWindowsPath)(lr.cwd||process.cwd()),this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.mtime=lr.mtime,this.prefix=lr.prefix?(0,C.normalizeWindowsPath)(lr.prefix):void 0,this.onWriteEntry=lr.onWriteEntry,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let cr=!1;if(!this.preservePaths){let[qr,_n]=(0,N.stripAbsolutePath)(this.path);qr&&typeof _n=="string"&&(this.path=_n,cr=qr)}this.win32=!!lr.win32||process.platform==="win32",this.win32&&(this.path=Q.decode(this.path.replaceAll(/\\/g,"/")),qt=qt.replaceAll(/\\/g,"/")),this.absolute=(0,C.normalizeWindowsPath)(lr.absolute||A.default.resolve(this.cwd,qt)),this.path===""&&(this.path="./"),cr&&this.warn("TAR_ENTRY_INFO",`stripping ${cr} from absolute path`,{entry:this,path:cr+this.path});let Ar=this.statCache.get(this.absolute);Ar?this[k](Ar):this[De]()}warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}emit(qt,...Xt){return qt==="error"&&(this.#e=!0),super.emit(qt,...Xt)}[De](){o.default.lstat(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[k](Xt)})}[k](qt){this.statCache.set(this.absolute,qt),this.stat=qt,qt.isFile()||(qt.size=0),this.type=Zr(qt),this.emit("stat",qt),this[ne]()}[ne](){switch(this.type){case"File":return this[ce]();case"Directory":return this[fe]();case"SymbolicLink":return this[ue]();default:return this.end()}}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}[Nr](qt){return X(qt,this.prefix)}[be](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this[At](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let qt=this.header?.block;if(!qt)throw new Error("failed to encode header");super.write(qt)}[fe](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[be](),this.end()}[ue](){o.default.readlink(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[ct](Xt)})}[ct](qt){this.linkpath=(0,C.normalizeWindowsPath)(qt),this[be](),this.end()}[de](qt){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=(0,C.normalizeWindowsPath)(A.default.relative(this.cwd,qt)),this.stat.size=0,this[be](),this.end()}[ce](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let qt=`${this.stat.dev}:${this.stat.ino}`,Xt=this.linkCache.get(qt);if(Xt?.indexOf(this.cwd)===0)return this[de](Xt);this.linkCache.set(qt,this.absolute)}if(this[be](),this.stat.size===0)return this.end();this[Me]()}[Me](){o.default.open(this.absolute,"r",(qt,Xt)=>{if(qt)return this.emit("error",qt);this[je](Xt)})}[je](qt){if(this.fd=qt,this.#e)return this[St]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let Xt=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(Xt),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Se]()}[Se](){let{fd:qt,buf:Xt,offset:lr,length:cr,pos:Ar}=this;if(qt===void 0||Xt===void 0)throw new Error("cannot read file without first opening");o.default.read(qt,Xt,lr,cr,Ar,(qr,_n)=>{if(qr)return this[St](()=>this.emit("error",qr));this[et](_n)})}[St](qt=()=>{}){this.fd!==void 0&&o.default.close(this.fd,qt)}[et](qt){if(qt<=0&&this.remain>0){let lr=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(qt>this.remain){let lr=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(qt===this.remain)for(let lr=qt;lrthis[Tr]())}[Yt](qt){this.once("drain",qt)}write(qt,Xt,lr){if(typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8")),this.blockRemainqt?this.emit("error",qt):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Se]()}};e.WriteEntry=er;var vt=class extends er{sync=!0;[De](){this[k](o.default.lstatSync(this.absolute))}[ue](){this[ct](o.default.readlinkSync(this.absolute))}[Me](){this[je](o.default.openSync(this.absolute,"r"))}[Se](){let qt=!0;try{let{fd:Xt,buf:lr,offset:cr,length:Ar,pos:qr}=this;if(Xt===void 0||lr===void 0)throw new Error("fd and buf must be set in READ method");let _n=o.default.readSync(Xt,lr,cr,Ar,qr);this[et](_n),qt=!1}finally{if(qt)try{this[St](()=>{})}catch{}}}[Yt](qt){qt()}[St](qt=()=>{}){this.fd!==void 0&&o.default.closeSync(this.fd),qt()}};e.WriteEntrySync=vt;var xt=class extends l.Minipass{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.preservePaths=!!lr.preservePaths,this.portable=!!lr.portable,this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.onWriteEntry=lr.onWriteEntry,this.readEntry=qt;let{type:cr}=qt;if(cr==="Unsupported")throw new Error("writing entry that should be ignored");this.type=cr,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=lr.prefix,this.path=(0,C.normalizeWindowsPath)(qt.path),this.mode=qt.mode!==void 0?this[At](qt.mode):void 0,this.uid=this.portable?void 0:qt.uid,this.gid=this.portable?void 0:qt.gid,this.uname=this.portable?void 0:qt.uname,this.gname=this.portable?void 0:qt.gname,this.size=qt.size,this.mtime=this.noMtime?void 0:lr.mtime||qt.mtime,this.atime=this.portable?void 0:qt.atime,this.ctime=this.portable?void 0:qt.ctime,this.linkpath=qt.linkpath!==void 0?(0,C.normalizeWindowsPath)(qt.linkpath):void 0,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let Ar=!1;if(!this.preservePaths){let[_n,ke]=(0,N.stripAbsolutePath)(this.path);_n&&typeof ke=="string"&&(this.path=ke,Ar=_n)}this.remain=qt.size,this.blockRemain=qt.startBlockSize,this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),Ar&&this.warn("TAR_ENTRY_INFO",`stripping ${Ar} from absolute path`,{entry:this,path:Ar+this.path}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let qr=this.header?.block;if(!qr)throw new Error("failed to encode header");super.write(qr),qt.pipe(this)}[Nr](qt){return X(qt,this.prefix)}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}write(qt,Xt,lr){typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8"));let cr=qt.length;if(cr>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=cr,super.write(qt,lr)}end(qt,Xt,lr){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof qt=="function"&&(lr=qt,Xt=void 0,qt=void 0),typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,Xt??"utf8")),lr&&this.once("finish",lr),qt?super.end(qt,lr):super.end(lr),this}};e.WriteEntryTar=xt;var Zr=qt=>qt.isFile()?"File":qt.isDirectory()?"Directory":qt.isSymbolicLink()?"SymbolicLink":"Unsupported"}),ROo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Node=e.Yallist=void 0;var t=class Tve{tail;head;length=0;static create(A=[]){return new Tve(A)}constructor(A=[]){for(let f of A)this.push(f)}*[Symbol.iterator](){for(let A=this.head;A;A=A.next)yield A.value}removeNode(A){if(A.list!==this)throw new Error("removing node which does not belong to this list");let f=A.next,I=A.prev;return f&&(f.prev=I),I&&(I.next=f),A===this.head&&(this.head=f),A===this.tail&&(this.tail=I),this.length--,A.next=void 0,A.prev=void 0,A.list=void 0,f}unshiftNode(A){if(A===this.head)return;A.list&&A.list.removeNode(A);let f=this.head;A.list=this,A.next=f,f&&(f.prev=A),this.head=A,this.tail||(this.tail=A),this.length++}pushNode(A){if(A===this.tail)return;A.list&&A.list.removeNode(A);let f=this.tail;A.list=this,A.prev=f,f&&(f.next=A),this.tail=A,this.head||(this.head=A),this.length++}push(...A){for(let f=0,I=A.length;f1)I=f;else if(this.head)C=this.head.next,I=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var b=0;C;b++)I=A(I,C.value,b),C=C.next;return I}reduceReverse(A,f){let I,C=this.tail;if(arguments.length>1)I=f;else if(this.tail)C=this.tail.prev,I=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let b=this.length-1;C;b--)I=A(I,C.value,b),C=C.prev;return I}toArray(){let A=new Array(this.length);for(let f=0,I=this.head;I;f++)A[f]=I.value,I=I.next;return A}toArrayReverse(){let A=new Array(this.length);for(let f=0,I=this.tail;I;f++)A[f]=I.value,I=I.prev;return A}slice(A=0,f=this.length){f<0&&(f+=this.length),A<0&&(A+=this.length);let I=new Tve;if(fthis.length&&(f=this.length);let C=this.head,b=0;for(b=0;C&&bthis.length&&(f=this.length);let C=this.length,b=this.tail;for(;b&&C>f;C--)b=b.prev;for(;b&&C>A;C--,b=b.prev)I.push(b.value);return I}splice(A,f=0,...I){A>this.length&&(A=this.length-1),A<0&&(A=this.length+A);let C=this.head;for(let E=0;C&&E{"use strict";var t=e&&e.__createBinding||(Object.create?function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr);var Xt=Object.getOwnPropertyDescriptor(xt,Zr);(!Xt||("get"in Xt?!xt.__esModule:Xt.writable||Xt.configurable))&&(Xt={enumerable:!0,get:function(){return xt[Zr]}}),Object.defineProperty(vt,qt,Xt)}:function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr),vt[qt]=xt[Zr]}),r=e&&e.__setModuleDefault||(Object.create?function(vt,xt){Object.defineProperty(vt,"default",{enumerable:!0,value:xt})}:function(vt,xt){vt.default=xt}),n=e&&e.__importStar||function(){var vt=function(xt){return vt=Object.getOwnPropertyNames||function(Zr){var qt=[];for(var Xt in Zr)Object.prototype.hasOwnProperty.call(Zr,Xt)&&(qt[qt.length]=Xt);return qt},vt(xt)};return function(xt){if(xt&&xt.__esModule)return xt;var Zr={};if(xt!=null)for(var qt=vt(xt),Xt=0;Xt1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(vt.gzip&&(typeof vt.gzip!="object"&&(vt.gzip={}),this.portable&&(vt.gzip.portable=!0),this.zip=new I.Gzip(vt.gzip)),vt.brotli&&(typeof vt.brotli!="object"&&(vt.brotli={}),this.zip=new I.BrotliCompress(vt.brotli)),vt.zstd&&(typeof vt.zstd!="object"&&(vt.zstd={}),this.zip=new I.ZstdCompress(vt.zstd)),!this.zip)throw new Error("impossible");let xt=this.zip;xt.on("data",Zr=>super.write(Zr)),xt.on("end",()=>super.end()),xt.on("drain",()=>this[At]()),this.on("resume",()=>xt.resume())}else this.on("drain",this[At]);this.noDirRecurse=!!vt.noDirRecurse,this.follow=!!vt.follow,this.noMtime=!!vt.noMtime,vt.mtime&&(this.mtime=vt.mtime),this.filter=typeof vt.filter=="function"?vt.filter:()=>!0,this[Q]=new C.Yallist,this[fe]=0,this.jobs=Number(vt.jobs)||4,this[ne]=!1,this[F]=!1}[St](vt){return super.write(vt)}add(vt){return this.write(vt),this}end(vt,xt,Zr){return typeof vt=="function"&&(Zr=vt,vt=void 0),typeof xt=="function"&&(Zr=xt,xt=void 0),vt&&this.add(vt),this[F]=!0,this[ae](),Zr&&Zr(),this}write(vt){if(this[F])throw new Error("write after end");return vt instanceof b.ReadEntry?this[be](vt):this[de](vt),this.flowing}[be](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt.path));if(!this.filter(vt.path,vt))vt.resume();else{let Zr=new A(vt.path,xt);Zr.entry=new l.WriteEntryTar(vt,this[Me](Zr)),Zr.entry.on("end",()=>this[ue](Zr)),this[fe]+=1,this[Q].push(Zr)}this[ae]()}[de](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt));this[Q].push(new A(vt,xt)),this[ae]()}[Se](vt){vt.pending=!0,this[fe]+=1;let xt=this.follow?"stat":"lstat";o.default[xt](vt.absolute,(Zr,qt)=>{vt.pending=!1,this[fe]-=1,Zr?this.emit("error",Zr):this[B](vt,qt)})}[B](vt,xt){this.statCache.set(vt.absolute,xt),vt.stat=xt,this.filter(vt.path,xt)?xt.isFile()&&xt.nlink>1&&vt===this[X]&&!this.linkCache.get(`${xt.dev}:${xt.ino}`)&&!this.sync&&this[ce](vt):vt.ignore=!0,this[ae]()}[De](vt){vt.pending=!0,this[fe]+=1,o.default.readdir(vt.absolute,(xt,Zr)=>{if(vt.pending=!1,this[fe]-=1,xt)return this.emit("error",xt);this[k](vt,Zr)})}[k](vt,xt){this.readdirCache.set(vt.absolute,xt),vt.readdir=xt,this[ae]()}[ae](){if(!this[ne]){this[ne]=!0;for(let vt=this[Q].head;vt&&this[fe]this.warn(xt,Zr,qt),noPax:this.noPax,cwd:this.cwd,absolute:vt.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[ct](vt){this[fe]+=1;try{return new this[je](vt.path,this[Me](vt)).on("end",()=>this[ue](vt)).on("error",xt=>this.emit("error",xt))}catch(xt){this.emit("error",xt)}}[At](){this[X]&&this[X].entry&&this[X].entry.resume()}[et](vt){vt.piped=!0,vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)});let xt=vt.entry,Zr=this.zip;if(!xt)throw new Error("cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)||xt.pause()}):xt.on("data",qt=>{super.write(qt)||xt.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(vt,xt,Zr={}){(0,E.warnMethod)(this,vt,xt,Zr)}};e.Pack=Nr;var er=class extends Nr{sync=!0;constructor(vt){super(vt),this[je]=l.WriteEntrySync}pause(){}resume(){}[Se](vt){let xt=this.follow?"statSync":"lstatSync";this[B](vt,o.default[xt](vt.absolute))}[De](vt){this[k](vt,o.default.readdirSync(vt.absolute))}[et](vt){let xt=vt.entry,Zr=this.zip;if(vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)}),!xt)throw new Error("Cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)}):xt.on("data",qt=>{super[St](qt)})}};e.PackSync=er}),iLn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(N){return N&&N.__esModule?N:{default:N}};Object.defineProperty(e,"__esModule",{value:!0}),e.create=void 0;var r=T5e(),n=t(wt("node:path")),a=k5e(),o=R5e(),l=jAr(),A=(N,B)=>{let F=new l.PackSync(N),Q=new r.WriteStreamSync(N.file,{mode:N.mode||438});F.pipe(Q),I(F,B)},f=(N,B)=>{let F=new l.Pack(N),Q=new r.WriteStream(N.file,{mode:N.mode||438});F.pipe(Q);let X=new Promise((ae,ne)=>{Q.on("error",ne),Q.on("close",ae),F.on("error",ne)});return C(F,B).catch(ae=>F.emit("error",ae)),X},I=(N,B)=>{B.forEach(F=>{F.charAt(0)==="@"?(0,a.list)({file:n.default.resolve(N.cwd,F.slice(1)),sync:!0,noResume:!0,onReadEntry:Q=>N.add(Q)}):N.add(F)}),N.end()},C=async(N,B)=>{for(let F of B)F.charAt(0)==="@"?await(0,a.list)({file:n.default.resolve(String(N.cwd),F.slice(1)),noResume:!0,onReadEntry:Q=>{N.add(Q)}}):N.add(F);N.end()},b=(N,B)=>{let F=new l.PackSync(N);return I(F,B),F},E=(N,B)=>{let F=new l.Pack(N);return C(F,B).catch(Q=>F.emit("error",Q)),F};e.create=(0,o.makeCommand)(A,f,b,E,(N,B)=>{if(!B?.length)throw new TypeError("no paths specified to add to archive")})}),NOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(e,"__esModule",{value:!0}),e.getWriteFlag=void 0;var r=t(wt("fs")),n=process.platform,a=n==="win32",{O_CREAT:o,O_NOFOLLOW:l,O_TRUNC:A,O_WRONLY:f}=r.default.constants,I=Number(process.env.__FAKE_FS_O_FILENAME__)||r.default.constants.UV_FS_O_FILEMAP||0,C=a&&!!I,b=512*1024,E=I|A|o|f,N=!a&&typeof l=="number"?l|A|o|f:null;e.getWriteFlag=N!==null?()=>N:C?B=>B"w"}),DOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(C){return C&&C.__esModule?C:{default:C}};Object.defineProperty(e,"__esModule",{value:!0}),e.chownrSync=e.chownr=void 0;var r=t(wt("node:fs")),n=t(wt("node:path")),a=(C,b,E)=>{try{return r.default.lchownSync(C,b,E)}catch(N){if(N?.code!=="ENOENT")throw N}},o=(C,b,E,N)=>{r.default.lchown(C,b,E,B=>{N(B&&B?.code!=="ENOENT"?B:null)})},l=(C,b,E,N,B)=>{if(b.isDirectory())(0,e.chownr)(n.default.resolve(C,b.name),E,N,F=>{if(F)return B(F);let Q=n.default.resolve(C,b.name);o(Q,E,N,B)});else{let F=n.default.resolve(C,b.name);o(F,E,N,B)}},A=(C,b,E,N)=>{r.default.readdir(C,{withFileTypes:!0},(B,F)=>{if(B){if(B.code==="ENOENT")return N();if(B.code!=="ENOTDIR"&&B.code!=="ENOTSUP")return N(B)}if(B||!F.length)return o(C,b,E,N);let Q=F.length,X=null,ae=ne=>{if(!X){if(ne)return N(X=ne);if(--Q===0)return o(C,b,E,N)}};for(let ne of F)l(C,ne,b,E,ae)})};e.chownr=A;var f=(C,b,E,N)=>{b.isDirectory()&&(0,e.chownrSync)(n.default.resolve(C,b.name),E,N),a(n.default.resolve(C,b.name),E,N)},I=(C,b,E)=>{let N;try{N=r.default.readdirSync(C,{withFileTypes:!0})}catch(B){let F=B;if(F?.code==="ENOENT")return;if(F?.code==="ENOTDIR"||F?.code==="ENOTSUP")return a(C,b,E);throw F}for(let B of N)f(C,B,b,E);return a(C,b,E)};e.chownrSync=I}),kOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CwdError=void 0;var t=class extends Error{path;code;syscall="chdir";constructor(r,n){super(`${n}: Cannot cd into '${r}'`),this.path=r,this.code=n}get name(){return"CwdError"}};e.CwdError=t}),sLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SymlinkError=void 0;var t=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(r,n){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=r,this.path=n}get name(){return"SymlinkError"}};e.SymlinkError=t}),xOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.mkdirSync=e.mkdir=void 0;var r=DOo(),n=t(wt("node:fs")),a=t(wt("node:fs/promises")),o=t(wt("node:path")),l=kOo(),A=D5e(),f=sLn(),I=(F,Q)=>{n.default.stat(F,(X,ae)=>{(X||!ae.isDirectory())&&(X=new l.CwdError(F,X?.code||"ENOTDIR")),Q(X)})},C=(F,Q,X)=>{F=(0,A.normalizeWindowsPath)(F);let ae=Q.umask??18,ne=Q.mode|448,ce=(ne&ae)!==0,fe=Q.uid,ue=Q.gid,de=typeof fe=="number"&&typeof ue=="number"&&(fe!==Q.processUid||ue!==Q.processGid),be=Q.preserve,Se=Q.unlink,De=(0,A.normalizeWindowsPath)(Q.cwd),k=(ct,Me)=>{ct?X(ct):Me&&de?(0,r.chownr)(Me,fe,ue,je=>k(je)):ce?n.default.chmod(F,ne,X):X()};if(F===De)return I(F,k);if(be)return a.default.mkdir(F,{mode:ne,recursive:!0}).then(ct=>k(null,ct??void 0),k);let et=(0,A.normalizeWindowsPath)(o.default.relative(De,F)).split("/");b(De,et,ne,Se,De,void 0,k)};e.mkdir=C;var b=(F,Q,X,ae,ne,ce,fe)=>{if(Q.length===0)return fe(null,ce);let ue=Q.shift(),de=(0,A.normalizeWindowsPath)(o.default.resolve(F+"/"+ue));n.default.mkdir(de,X,E(de,Q,X,ae,ne,ce,fe))},E=(F,Q,X,ae,ne,ce,fe)=>ue=>{ue?n.default.lstat(F,(de,be)=>{if(de)de.path=de.path&&(0,A.normalizeWindowsPath)(de.path),fe(de);else if(be.isDirectory())b(F,Q,X,ae,ne,ce,fe);else if(ae)n.default.unlink(F,Se=>{if(Se)return fe(Se);n.default.mkdir(F,X,E(F,Q,X,ae,ne,ce,fe))});else{if(be.isSymbolicLink())return fe(new f.SymlinkError(F,F+"/"+Q.join("/")));fe(ue)}}):(ce=ce||F,b(F,Q,X,ae,ne,ce,fe))},N=F=>{let Q=!1,X;try{Q=n.default.statSync(F).isDirectory()}catch(ae){X=ae?.code}finally{if(!Q)throw new l.CwdError(F,X??"ENOTDIR")}},B=(F,Q)=>{F=(0,A.normalizeWindowsPath)(F);let X=Q.umask??18,ae=Q.mode|448,ne=(ae&X)!==0,ce=Q.uid,fe=Q.gid,ue=typeof ce=="number"&&typeof fe=="number"&&(ce!==Q.processUid||fe!==Q.processGid),de=Q.preserve,be=Q.unlink,Se=(0,A.normalizeWindowsPath)(Q.cwd),De=ct=>{ct&&ue&&(0,r.chownrSync)(ct,ce,fe),ne&&n.default.chmodSync(F,ae)};if(F===Se)return N(Se),De();if(de)return De(n.default.mkdirSync(F,{mode:ae,recursive:!0})??void 0);let k=(0,A.normalizeWindowsPath)(o.default.relative(Se,F)).split("/"),et;for(let ct=k.shift(),Me=Se;ct&&(Me+="/"+ct);ct=k.shift()){Me=(0,A.normalizeWindowsPath)(o.default.resolve(Me));try{n.default.mkdirSync(Me,ae),et=et||Me}catch{let je=n.default.lstatSync(Me);if(je.isDirectory())continue;if(be){n.default.unlinkSync(Me),n.default.mkdirSync(Me,ae),et=et||Me;continue}else if(je.isSymbolicLink())return new f.SymlinkError(Me,Me+"/"+k.join("/"))}}return De(et)};e.mkdirSync=B}),GOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeUnicode=void 0;var t=Object.create(null),r=1e4,n=new Set,a=o=>{n.has(o)?n.delete(o):t[o]=o.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),n.add(o);let l=t[o],A=n.size-r;if(A>r/10){for(let f of n)if(n.delete(f),delete t[f],--A<=0)break}return l};e.normalizeUnicode=a}),FOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PathReservations=void 0;var t=wt("node:path"),r=GOo(),n=KAr(),a=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,o=a==="win32",l=f=>f.split("/").slice(0,-1).reduce((I,C)=>{let b=I.at(-1);return b!==void 0&&(C=(0,t.join)(b,C)),I.push(C||"/"),I},[]),A=class{#e=new Map;#t=new Map;#n=new Set;reserve(f,I){f=o?["win32 parallelization disabled"]:f.map(b=>(0,n.stripTrailingSlashes)((0,t.join)((0,r.normalizeUnicode)(b))));let C=new Set(f.map(b=>l(b)).reduce((b,E)=>b.concat(E)));this.#t.set(I,{dirs:C,paths:f});for(let b of f){let E=this.#e.get(b);E?E.push(I):this.#e.set(b,[I])}for(let b of C){let E=this.#e.get(b);if(!E)this.#e.set(b,[new Set([I])]);else{let N=E.at(-1);N instanceof Set?N.add(I):E.push(new Set([I]))}}return this.#i(I)}#r(f){let I=this.#t.get(f);if(!I)throw new Error("function does not have any path reservations");return{paths:I.paths.map(C=>this.#e.get(C)),dirs:[...I.dirs].map(C=>this.#e.get(C))}}check(f){let{paths:I,dirs:C}=this.#r(f);return I.every(b=>b&&b[0]===f)&&C.every(b=>b&&b[0]instanceof Set&&b[0].has(f))}#i(f){return this.#n.has(f)||!this.check(f)?!1:(this.#n.add(f),f(()=>this.#s(f)),!0)}#s(f){if(!this.#n.has(f))return!1;let I=this.#t.get(f);if(!I)throw new Error("invalid reservation");let{paths:C,dirs:b}=I,E=new Set;for(let N of C){let B=this.#e.get(N);if(!B||B?.[0]!==f)continue;let F=B[1];if(!F){this.#e.delete(N);continue}if(B.shift(),typeof F=="function")E.add(F);else for(let Q of F)E.add(Q)}for(let N of b){let B=this.#e.get(N),F=B?.[0];if(!(!B||!(F instanceof Set)))if(F.size===1&&B.length===1){this.#e.delete(N);continue}else if(F.size===1){B.shift();let Q=B[0];typeof Q=="function"&&E.add(Q)}else F.delete(f)}return this.#n.delete(f),E.forEach(N=>this.#i(N)),!0}};e.PathReservations=A}),ZOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.umask=void 0;var t=()=>process.umask();e.umask=t}),oLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(Vr,xi,io,ga){ga===void 0&&(ga=io);var Ya=Object.getOwnPropertyDescriptor(xi,io);(!Ya||("get"in Ya?!xi.__esModule:Ya.writable||Ya.configurable))&&(Ya={enumerable:!0,get:function(){return xi[io]}}),Object.defineProperty(Vr,ga,Ya)}:function(Vr,xi,io,ga){ga===void 0&&(ga=io),Vr[ga]=xi[io]}),r=e&&e.__setModuleDefault||(Object.create?function(Vr,xi){Object.defineProperty(Vr,"default",{enumerable:!0,value:xi})}:function(Vr,xi){Vr.default=xi}),n=e&&e.__importStar||function(){var Vr=function(xi){return Vr=Object.getOwnPropertyNames||function(io){var ga=[];for(var Ya in io)Object.prototype.hasOwnProperty.call(io,Ya)&&(ga[ga.length]=Ya);return ga},Vr(xi)};return function(xi){if(xi&&xi.__esModule)return xi;var io={};if(xi!=null)for(var ga=Vr(xi),Ya=0;Ya{if(!qr)return f.default.unlink(Vr,xi);let io=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.rename(Vr,io,ga=>{if(ga)return xi(ga);f.default.unlink(io,xi)})},jt=Vr=>{if(!qr)return f.default.unlinkSync(Vr);let xi=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.renameSync(Vr,xi),f.default.unlinkSync(xi)},Fn=(Vr,xi,io)=>Vr!==void 0&&Vr===Vr>>>0?Vr:xi!==void 0&&xi===xi>>>0?xi:io,Nn=class extends N.Parser{[vt]=!1;[cr]=!1;[Tr]=0;reservations=new Q.PathReservations;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(Vr={}){if(Vr.ondone=()=>{this[vt]=!0,this[xt]()},super(Vr),this.transform=Vr.transform,this.chmod=!!Vr.chmod,typeof Vr.uid=="number"||typeof Vr.gid=="number"){if(typeof Vr.uid!="number"||typeof Vr.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(Vr.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=Vr.uid,this.gid=Vr.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;this.preserveOwner=Vr.preserveOwner===void 0&&typeof Vr.uid!="number"?!!(process.getuid&&process.getuid()===0):!!Vr.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof Vr.maxDepth=="number"?Vr.maxDepth:_n,this.forceChown=Vr.forceChown===!0,this.win32=!!Vr.win32||qr,this.newer=!!Vr.newer,this.keep=!!Vr.keep,this.noMtime=!!Vr.noMtime,this.preservePaths=!!Vr.preservePaths,this.unlink=!!Vr.unlink,this.cwd=(0,E.normalizeWindowsPath)(I.default.resolve(Vr.cwd||process.cwd())),this.strip=Number(Vr.strip)||0,this.processUmask=this.chmod?typeof Vr.processUmask=="number"?Vr.processUmask:(0,ae.umask)():0,this.umask=typeof Vr.umask=="number"?Vr.umask:this.processUmask,this.dmode=Vr.dmode||511&~this.umask,this.fmode=Vr.fmode||438&~this.umask,this.on("entry",xi=>this[ne](xi))}warn(Vr,xi,io={}){return(Vr==="TAR_BAD_ARCHIVE"||Vr==="TAR_ABORT")&&(io.recoverable=!1),super.warn(Vr,xi,io)}[xt](){this[vt]&&this[Tr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[St](Vr,xi){let io=Vr[xi],{type:ga}=Vr;if(!io||this.preservePaths)return!0;let[Ya,Gc]=(0,B.stripAbsolutePath)(io),cl=Gc.replaceAll(/\\/g,"/").split("/");if(cl.includes("..")||qr&&/^[a-z]:\.\.$/i.test(cl[0]??"")){if(xi==="path"||ga==="Link")return this.warn("TAR_ENTRY_ERROR",`${xi} contains '..'`,{entry:Vr,[xi]:io}),!1;let Sc=I.default.posix.dirname(Vr.path),Hr=I.default.posix.normalize(I.default.posix.join(Sc,cl.join("/")));if(Hr.startsWith("../")||Hr==="..")return this.warn("TAR_ENTRY_ERROR",`${xi} escapes extraction directory`,{entry:Vr,[xi]:io}),!1}return Ya&&(Vr[xi]=String(Gc),this.warn("TAR_ENTRY_INFO",`stripping ${Ya} from absolute ${xi}`,{entry:Vr,[xi]:io})),!0}[je](Vr){let xi=(0,E.normalizeWindowsPath)(Vr.path),io=xi.split("/");if(this.strip){if(io.length=this.strip)Vr.linkpath=ga.slice(this.strip).join("/");else return!1}io.splice(0,this.strip),Vr.path=io.join("/")}if(isFinite(this.maxDepth)&&io.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:Vr,path:xi,depth:io.length,maxDepth:this.maxDepth}),!1;if(!this[St](Vr,"path")||!this[St](Vr,"linkpath"))return!1;if(Vr.absolute=I.default.isAbsolute(Vr.path)?(0,E.normalizeWindowsPath)(I.default.resolve(Vr.path)):(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,Vr.path)),!this.preservePaths&&typeof Vr.absolute=="string"&&Vr.absolute.indexOf(this.cwd+"/")!==0&&Vr.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:Vr,path:(0,E.normalizeWindowsPath)(Vr.path),resolvedPath:Vr.absolute,cwd:this.cwd}),!1;if(Vr.absolute===this.cwd&&Vr.type!=="Directory"&&Vr.type!=="GNUDumpDir")return!1;if(this.win32){let{root:ga}=I.default.win32.parse(String(Vr.absolute));Vr.absolute=ga+F.encode(String(Vr.absolute).slice(ga.length));let{root:Ya}=I.default.win32.parse(Vr.path);Vr.path=Ya+F.encode(Vr.path.slice(Ya.length))}return!0}[ne](Vr){if(!this[je](Vr))return Vr.resume();switch(l.default.equal(typeof Vr.absolute,"string"),Vr.type){case"Directory":case"GNUDumpDir":Vr.mode&&(Vr.mode=Vr.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ce](Vr);default:return this[Me](Vr)}}[Yt](Vr,xi){Vr.name==="CwdError"?this.emit("error",Vr):(this.warn("TAR_ENTRY_ERROR",Vr,{entry:xi}),this[er](),xi.resume())}[At](Vr,xi,io){(0,b.mkdir)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi},io)}[qt](Vr){return this.forceChown||this.preserveOwner&&(typeof Vr.uid=="number"&&Vr.uid!==this.processUid||typeof Vr.gid=="number"&&Vr.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Xt](Vr){return Fn(this.uid,Vr.uid,this.processUid)}[lr](Vr){return Fn(this.gid,Vr.gid,this.processGid)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=new o.WriteStream(String(Vr.absolute),{flags:(0,C.getWriteFlag)(Vr.size),mode:io,autoClose:!1});ga.on("error",Sc=>{ga.fd&&f.default.close(ga.fd,()=>{}),ga.write=()=>!0,this[Yt](Sc,Vr),xi()});let Ya=1,Gc=Sc=>{if(Sc){ga.fd&&f.default.close(ga.fd,()=>{}),this[Yt](Sc,Vr),xi();return}--Ya===0&&ga.fd!==void 0&&f.default.close(ga.fd,Hr=>{Hr?this[Yt](Hr,Vr):this[er](),xi()})};ga.on("finish",()=>{let Sc=String(Vr.absolute),Hr=ga.fd;if(typeof Hr=="number"&&Vr.mtime&&!this.noMtime){Ya++;let Wr=Vr.atime||new Date,Ft=Vr.mtime;f.default.futimes(Hr,Wr,Ft,zr=>zr?f.default.utimes(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}if(typeof Hr=="number"&&this[qt](Vr)){Ya++;let Wr=this[Xt](Vr),Ft=this[lr](Vr);typeof Wr=="number"&&typeof Ft=="number"&&f.default.fchown(Hr,Wr,Ft,zr=>zr?f.default.chown(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}Gc()});let cl=this.transform&&this.transform(Vr)||Vr;cl!==Vr&&(cl.on("error",Sc=>{this[Yt](Sc,Vr),xi()}),Vr.pipe(cl)),cl.pipe(ga)}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode;this[At](String(Vr.absolute),io,ga=>{if(ga){this[Yt](ga,Vr),xi();return}let Ya=1,Gc=()=>{--Ya===0&&(xi(),this[er](),Vr.resume())};Vr.mtime&&!this.noMtime&&(Ya++,f.default.utimes(String(Vr.absolute),Vr.atime||new Date,Vr.mtime,Gc)),this[qt](Vr)&&(Ya++,f.default.chown(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)),Gc)),Gc()})}[Me](Vr){Vr.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${Vr.type}`,{entry:Vr}),Vr.resume()}[k](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.relative(this.cwd,I.default.resolve(I.default.dirname(String(Vr.absolute)),String(Vr.linkpath)))).split("/");this[ct](Vr,this.cwd,io,()=>this[De](Vr,String(Vr.linkpath),"symlink",xi),ga=>{this[Yt](ga,Vr),xi()})}[et](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,String(Vr.linkpath))),ga=(0,E.normalizeWindowsPath)(String(Vr.linkpath)).split("/");this[ct](Vr,this.cwd,ga,()=>this[De](Vr,io,"link",xi),Ya=>{this[Yt](Ya,Vr),xi()})}[ct](Vr,xi,io,ga,Ya){let Gc=io.shift();if(this.preservePaths||Gc===void 0)return ga();let cl=I.default.resolve(xi,Gc);f.default.lstat(cl,(Sc,Hr)=>{if(Sc)return ga();if(Hr?.isSymbolicLink())return Ya(new X.SymlinkError(cl,I.default.resolve(cl,io.join("/"))));this[ct](Vr,cl,io,ga,Ya)})}[Nr](){this[Tr]++}[er](){this[Tr]--,this[xt]()}[Zr](Vr){this[er](),Vr.resume()}[ue](Vr,xi){return Vr.type==="File"&&!this.unlink&&xi.isFile()&&xi.nlink<=1&&!qr}[ce](Vr){this[Nr]();let xi=[Vr.path];Vr.linkpath&&xi.push(Vr.linkpath),this.reservations.reserve(xi,io=>this[fe](Vr,io))}[fe](Vr,xi){let io=cl=>{xi(cl)},ga=()=>{this[At](this.cwd,this.dmode,cl=>{if(cl){this[Yt](cl,Vr),io();return}this[cr]=!0,Ya()})},Ya=()=>{if(Vr.absolute!==this.cwd){let cl=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(cl!==this.cwd)return this[At](cl,this.dmode,Sc=>{if(Sc){this[Yt](Sc,Vr),io();return}Gc()})}Gc()},Gc=()=>{f.default.lstat(String(Vr.absolute),(cl,Sc)=>{if(Sc&&(this.keep||this.newer&&Sc.mtime>(Vr.mtime??Sc.mtime))){this[Zr](Vr),io();return}if(cl||this[ue](Vr,Sc))return this[de](null,Vr,io);if(Sc.isDirectory()){if(Vr.type==="Directory"){let Hr=this.chmod&&Vr.mode&&(Sc.mode&4095)!==Vr.mode,Wr=Ft=>this[de](Ft??null,Vr,io);return Hr?f.default.chmod(String(Vr.absolute),Number(Vr.mode),Wr):Wr()}if(Vr.absolute!==this.cwd)return f.default.rmdir(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))}if(Vr.absolute===this.cwd)return this[de](null,Vr,io);ke(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))})};this[cr]?Ya():ga()}[de](Vr,xi,io){if(Vr){this[Yt](Vr,xi),io();return}switch(xi.type){case"File":case"OldFile":case"ContiguousFile":return this[be](xi,io);case"Link":return this[et](xi,io);case"SymbolicLink":return this[k](xi,io);case"Directory":case"GNUDumpDir":return this[Se](xi,io)}}[De](Vr,xi,io,ga){f.default[io](xi,String(Vr.absolute),Ya=>{Ya?this[Yt](Ya,Vr):(this[er](),Vr.resume()),ga()})}};e.Unpack=Nn;var Hi=Vr=>{try{return[null,Vr()]}catch(xi){return[xi,null]}},po=class extends Nn{sync=!0;[de](Vr,xi){return super[de](Vr,xi,()=>{})}[ce](Vr){if(!this[cr]){let Ya=this[At](this.cwd,this.dmode);if(Ya)return this[Yt](Ya,Vr);this[cr]=!0}if(Vr.absolute!==this.cwd){let Ya=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(Ya!==this.cwd){let Gc=this[At](Ya,this.dmode);if(Gc)return this[Yt](Gc,Vr)}}let[xi,io]=Hi(()=>f.default.lstatSync(String(Vr.absolute)));if(io&&(this.keep||this.newer&&io.mtime>(Vr.mtime??io.mtime)))return this[Zr](Vr);if(xi||this[ue](Vr,io))return this[de](null,Vr);if(io.isDirectory()){if(Vr.type==="Directory"){let Gc=this.chmod&&Vr.mode&&(io.mode&4095)!==Vr.mode,[cl]=Gc?Hi(()=>{f.default.chmodSync(String(Vr.absolute),Number(Vr.mode))}):[];return this[de](cl,Vr)}let[Ya]=Hi(()=>f.default.rmdirSync(String(Vr.absolute)));this[de](Ya,Vr)}let[ga]=Vr.absolute===this.cwd?[]:Hi(()=>jt(String(Vr.absolute)));this[de](ga,Vr)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=cl=>{let Sc;try{f.default.closeSync(Ya)}catch(Hr){Sc=Hr}(cl||Sc)&&this[Yt](cl||Sc,Vr),xi()},Ya;try{Ya=f.default.openSync(String(Vr.absolute),(0,C.getWriteFlag)(Vr.size),io)}catch(cl){return ga(cl)}let Gc=this.transform&&this.transform(Vr)||Vr;Gc!==Vr&&(Gc.on("error",cl=>this[Yt](cl,Vr)),Vr.pipe(Gc)),Gc.on("data",cl=>{try{f.default.writeSync(Ya,cl,0,cl.length)}catch(Sc){ga(Sc)}}),Gc.on("end",()=>{let cl=null;if(Vr.mtime&&!this.noMtime){let Sc=Vr.atime||new Date,Hr=Vr.mtime;try{f.default.futimesSync(Ya,Sc,Hr)}catch(Wr){try{f.default.utimesSync(String(Vr.absolute),Sc,Hr)}catch{cl=Wr}}}if(this[qt](Vr)){let Sc=this[Xt](Vr),Hr=this[lr](Vr);try{f.default.fchownSync(Ya,Number(Sc),Number(Hr))}catch(Wr){try{f.default.chownSync(String(Vr.absolute),Number(Sc),Number(Hr))}catch{cl=cl||Wr}}}ga(cl)})}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode,ga=this[At](String(Vr.absolute),io);if(ga){this[Yt](ga,Vr),xi();return}if(Vr.mtime&&!this.noMtime)try{f.default.utimesSync(String(Vr.absolute),Vr.atime||new Date,Vr.mtime)}catch{}if(this[qt](Vr))try{f.default.chownSync(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)))}catch{}xi(),Vr.resume()}[At](Vr,xi){try{return(0,b.mkdirSync)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi})}catch(io){return io}}[ct](Vr,xi,io,ga,Ya){if(this.preservePaths||io.length===0)return ga();let Gc=xi;for(let cl of io){Gc=I.default.resolve(Gc,cl);let[Sc,Hr]=Hi(()=>f.default.lstatSync(Gc));if(Sc)return ga();if(Hr.isSymbolicLink())return Ya(new X.SymlinkError(Gc,I.default.resolve(xi,io.join("/"))))}ga()}[De](Vr,xi,io,ga){let Ya=`${io}Sync`;try{f.default[Ya](xi,String(Vr.absolute)),ga(),Vr.resume()}catch(Gc){return this[Yt](Gc,Vr)}}};e.UnpackSync=po}),aLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(E,N,B,F){F===void 0&&(F=B);var Q=Object.getOwnPropertyDescriptor(N,B);(!Q||("get"in Q?!N.__esModule:Q.writable||Q.configurable))&&(Q={enumerable:!0,get:function(){return N[B]}}),Object.defineProperty(E,F,Q)}:function(E,N,B,F){F===void 0&&(F=B),E[F]=N[B]}),r=e&&e.__setModuleDefault||(Object.create?function(E,N){Object.defineProperty(E,"default",{enumerable:!0,value:N})}:function(E,N){E.default=N}),n=e&&e.__importStar||function(){var E=function(N){return E=Object.getOwnPropertyNames||function(B){var F=[];for(var Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(F[F.length]=Q);return F},E(N)};return function(N){if(N&&N.__esModule)return N;var B={};if(N!=null)for(var F=E(N),Q=0;Q{let N=new I.UnpackSync(E),B=E.file,F=l.default.statSync(B),Q=E.maxReadSize||16*1024*1024;new o.ReadStreamSync(B,{readSize:Q,size:F.size}).pipe(N)},b=(E,N)=>{let B=new I.Unpack(E),F=E.maxReadSize||16*1024*1024,Q=E.file;return new Promise((X,ae)=>{B.on("error",ae),B.on("close",X),l.default.stat(Q,(ne,ce)=>{if(ne)ae(ne);else{let fe=new o.ReadStream(Q,{readSize:F,size:ce.size});fe.on("error",ae),fe.pipe(B)}})})};e.extract=(0,f.makeCommand)(C,b,E=>new I.UnpackSync(E),E=>new I.Unpack(E),(E,N)=>{N?.length&&(0,A.filesFilter)(E,N)})}),zAr=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.replace=void 0;var r=T5e(),n=t(wt("node:fs")),a=t(wt("node:path")),o=N5e(),l=k5e(),A=R5e(),f=YAr(),I=jAr(),C=(F,Q)=>{let X=new I.PackSync(F),ae=!0,ne,ce;try{try{ne=n.default.openSync(F.file,"r+")}catch(de){if(de?.code==="ENOENT")ne=n.default.openSync(F.file,"w+");else throw de}let fe=n.default.fstatSync(ne),ue=Buffer.alloc(512);e:for(ce=0;cefe.size)break;ce+=be,F.mtimeCache&&de.mtime&&F.mtimeCache.set(String(de.path),de.mtime)}ae=!1,b(F,X,ce,ne,Q)}finally{if(ae)try{n.default.closeSync(ne)}catch{}}},b=(F,Q,X,ae,ne)=>{let ce=new r.WriteStreamSync(F.file,{fd:ae,start:X});Q.pipe(ce),N(Q,ne)},E=(F,Q)=>{Q=Array.from(Q);let X=new I.Pack(F),ae=(ne,ce,fe)=>{let ue=(k,et)=>{k?n.default.close(ne,ct=>fe(k)):fe(null,et)},de=0;if(ce===0)return ue(null,0);let be=0,Se=Buffer.alloc(512),De=(k,et)=>{if(k||et===void 0)return ue(k);if(be+=et,be<512&&et)return n.default.read(ne,Se,be,Se.length-be,de+be,De);if(de===0&&Se[0]===31&&Se[1]===139)return ue(new Error("cannot append to compressed archives"));if(be<512)return ue(null,de);let ct=new o.Header(Se);if(!ct.cksumValid)return ue(null,de);let Me=512*Math.ceil((ct.size??0)/512);if(de+Me+512>ce||(de+=Me+512,de>=ce))return ue(null,de);F.mtimeCache&&ct.mtime&&F.mtimeCache.set(String(ct.path),ct.mtime),be=0,n.default.read(ne,Se,0,512,de,De)};n.default.read(ne,Se,0,512,de,De)};return new Promise((ne,ce)=>{X.on("error",ce);let fe="r+",ue=(de,be)=>{if(de&&de.code==="ENOENT"&&fe==="r+")return fe="w+",n.default.open(F.file,fe,ue);if(de||!be)return ce(de);n.default.fstat(be,(Se,De)=>{if(Se)return n.default.close(be,()=>ce(Se));ae(be,De.size,(k,et)=>{if(k)return ce(k);let ct=new r.WriteStream(F.file,{fd:be,start:et});X.pipe(ct),ct.on("error",ce),ct.on("close",ne),B(X,Q)})})};n.default.open(F.file,fe,ue)})},N=(F,Q)=>{Q.forEach(X=>{X.charAt(0)==="@"?(0,l.list)({file:a.default.resolve(F.cwd,X.slice(1)),sync:!0,noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X)}),F.end()},B=async(F,Q)=>{for(let X of Q)X.charAt(0)==="@"?await(0,l.list)({file:a.default.resolve(String(F.cwd),X.slice(1)),noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X);F.end()};e.replace=(0,A.makeCommand)(C,E,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(F,Q)=>{if(!(0,f.isFile)(F))throw new TypeError("file is required");if(F.gzip||F.brotli||F.zstd||F.file.endsWith(".br")||F.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!Q?.length)throw new TypeError("no paths specified to add/replace")})}),cLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.update=void 0;var t=R5e(),r=zAr();e.update=(0,t.makeCommand)(r.replace.syncFile,r.replace.asyncFile,r.replace.syncNoFile,r.replace.asyncNoFile,(a,o=[])=>{r.replace.validate?.(a,o),n(a)});var n=a=>{let o=a.filter;a.mtimeCache||(a.mtimeCache=new Map),a.filter=o?(l,A)=>o(l,A)&&!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0)):(l,A)=>!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0))}}),lLn=jC&&jC.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LOo=jC&&jC.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pM=jC&&jC.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lLn(t,e,r)},VOo=jC&&jC.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Rve,"__esModule",{value:!0});Rve.WorkerPool=Rve.AsyncPool=void 0;var YOo=(Pa(),vi(Va)),gLn=YOo.__importDefault(Dfe()),QOo=wt("worker_threads"),Doe=Symbol("kTaskInfo"),qAr=class{constructor(t,r){this.fn=t,this.limit=(0,gLn.default)(r.poolSize)}run(t){return this.limit(()=>this.fn(t))}};Rve.AsyncPool=qAr;var $Ar=class{constructor(t,r){this.source=t,this.workers=[],this.limit=(0,gLn.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let n=this.workers.pop();n?n.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let t=new QOo.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return t.on("message",r=>{if(!t[Doe])throw new Error("Assertion failed: Worker sent a result without having a task assigned");t[Doe].resolve(r),t[Doe]=null,t.unref(),this.workers.push(t)}),t.on("error",r=>{t[Doe]?.reject(r),t[Doe]=null}),t.on("exit",r=>{r!==0&&t[Doe]?.reject(new Error(`Worker exited with code ${r}`)),t[Doe]=null}),t}run(t){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((n,a)=>{r[Doe]={resolve:n,reject:a},r.postMessage(t)})})}};Rve.WorkerPool=$Ar});var pLn=H((e7l,dLn)=>{var edr;dLn.exports.getContent=()=>(typeof edr>"u"&&(edr=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),edr)});var yLn=H(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});koe.getDefaultTaskPool=mLn;koe.getTaskPoolForConfiguration=CLn;koe.convertToZipWorker=rdr;koe.makeArchiveFromDirectory=zOo;koe.convertToZip=qOo;koe.extractArchiveTo=_Ln;var fLn=(Pa(),vi(Va)),XOo=Bn(),rb=no(),bAt=zK(),JOo=wt("stream"),UOo=fLn.__importStar(uLn()),EAt=ALn(),ILn=fLn.__importStar(xW()),hLn=pLn();function KOo(e,t){switch(e){case"async":return new EAt.AsyncPool(rdr,{poolSize:t});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:t});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}}var tdr;function mLn(){return typeof tdr>"u"&&(tdr=KOo("workers",XOo.nodeUtils.availableParallelism())),tdr}var jOo=new WeakMap;function CLn(e){return typeof e>"u"?mLn():ILn.getFactoryWithDefault(jOo,e,()=>{let t=e.get("taskPoolMode"),r=e.get("taskPoolConcurrency");switch(t){case"async":return new EAt.AsyncPool(rdr,{poolSize:r});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}})}async function rdr(e){let{tmpFile:t,tgz:r,compressionLevel:n,extractBufferOpts:a}=e,o=new bAt.ZipFS(t,{create:!0,level:n,stats:rb.statUtils.makeDefaultStats()}),l=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await _Ln(l,o,a),o.saveAndClose(),t}async function zOo(e,{baseFs:t=new rb.NodeFS,prefixPath:r=rb.PortablePath.root,compressionLevel:n,inMemory:a=!1}={}){let o;if(a)o=new bAt.ZipFS(null,{level:n});else{let A=await rb.xfs.mktempPromise(),f=rb.ppath.join(A,"archive.zip");o=new bAt.ZipFS(f,{create:!0,level:n})}let l=rb.ppath.resolve(rb.PortablePath.root,r);return await o.copyPromise(l,e,{baseFs:t,stableTime:!0,stableSort:!0}),o}async function qOo(e,t={}){let r=await rb.xfs.mktempPromise(),n=rb.ppath.join(r,"archive.zip"),a=t.compressionLevel??t.configuration?.get("compressionLevel")??"mixed",o={prefixPath:t.prefixPath,stripComponents:t.stripComponents};return await(t.taskPool??CLn(t.configuration)).run({tmpFile:n,tgz:e,compressionLevel:a,extractBufferOpts:o}),new bAt.ZipFS(n,{level:t.compressionLevel})}async function*$Oo(e){let t=new UOo.Parser,r=new JOo.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});t.on("entry",n=>{r.write(n)}),t.on("error",n=>{r.destroy(n)}),t.on("close",()=>{r.destroyed||r.end()}),t.end(e);for await(let n of r){let a=n;yield a,a.resume()}}async function _Ln(e,t,{stripComponents:r=0,prefixPath:n=rb.PortablePath.dot}={}){function a(o){if(o.path[0]==="/")return!0;let l=o.path.split(/\//g);return!!(l.some(A=>A==="..")||l.length<=r)}for await(let o of $Oo(e)){if(a(o))continue;let l=rb.ppath.normalize(rb.npath.toPortablePath(o.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let A=l.slice(r).join("/"),f=rb.ppath.join(n,A),I=420;switch((o.type==="Directory"||(o.mode??0)&73)&&(I|=73),o.type){case"Directory":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.mkdirSync(f,{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"OldFile":case"File":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.writeFileSync(f,await ILn.bufferStream(o),{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"SymbolicLink":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.symlinkSync(o.linkpath,f),t.lutimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break}}return t}});var ELn=H((ndr,bLn)=>{(function(e,t){typeof ndr=="object"?bLn.exports=t():typeof define=="function"&&define.amd?define(t):e.treeify=t()})(ndr,function(){function e(a,o){var l=o?"\u2514":"\u251C";return a?l+="\u2500 ":l+="\u2500\u2500\u2510",l}function t(a,o){var l=[];for(var A in a)a.hasOwnProperty(A)&&(o&&typeof a[A]=="function"||l.push(A));return l}function r(a,o,l,A,f,I,C){var b="",E=0,N,B,F=A.slice(0);if(F.push([o,l])&&A.length>0&&(A.forEach(function(X,ae){ae>0&&(b+=(X[1]?" ":"\u2502")+" "),!B&&X[0]===o&&(B=!0)}),b+=e(a,l)+a,f&&(typeof o!="object"||o instanceof Date)&&(b+=": "+o),B&&(b+=" (circular ref.)"),C(b)),!B&&typeof o=="object"){var Q=t(o,I);Q.forEach(function(X){N=++E===Q.length,r(X,o[X],N,F,f,I,C)})}}var n={};return n.asLines=function(a,o,l,A){var f=typeof l!="function"?l:!1;r(".",a,!1,[],o,f,A||l)},n.asTree=function(a,o,l){var A="";return r(".",a,!1,[],o,l,function(f){A+=f+` +`).reduce(l,Object.create(null)),l=(A,f)=>{let I=parseInt(f,10);if(I!==Buffer.byteLength(f)+1)return A;f=f.slice((I+" ").length);let C=f.split("="),b=C.shift();if(!b)return A;let E=b.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),N=C.join("=");return A[E]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(E)?new Date(Number(N)*1e3):/^[0-9]+$/.test(N)?+N:N,A}}),D5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeWindowsPath=void 0;var t=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;e.normalizeWindowsPath=t!=="win32"?r=>r:r=>r&&r.replaceAll(/\\/g,"/")}),XAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadEntry=void 0;var t=w5e(),r=D5e(),n=class extends t.Minipass{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(a,o,l){switch(super({}),this.pause(),this.extended=o,this.globalExtended=l,this.header=a,this.remain=a.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=a.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!a.path)throw new Error("no path provided for tar.ReadEntry");this.path=(0,r.normalizeWindowsPath)(a.path),this.mode=a.mode,this.mode&&(this.mode=this.mode&4095),this.uid=a.uid,this.gid=a.gid,this.uname=a.uname,this.gname=a.gname,this.size=this.remain,this.mtime=a.mtime,this.atime=a.atime,this.ctime=a.ctime,this.linkpath=a.linkpath?(0,r.normalizeWindowsPath)(a.linkpath):void 0,this.uname=a.uname,this.gname=a.gname,o&&this.#e(o),l&&this.#e(l,!0)}write(a){let o=a.length;if(o>this.blockRemain)throw new Error("writing more to entry than is appropriate");let l=this.remain,A=this.blockRemain;return this.remain=Math.max(0,l-o),this.blockRemain=Math.max(0,A-o),this.ignore?!0:l>=o?super.write(a):super.write(a.subarray(0,l))}#e(a,o=!1){a.path&&(a.path=(0,r.normalizeWindowsPath)(a.path)),a.linkpath&&(a.linkpath=(0,r.normalizeWindowsPath)(a.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(a).filter(([l,A])=>!(A==null||l==="path"&&o))))}};e.ReadEntry=n}),JAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.warnMethod=void 0;var t=(r,n,a,o={})=>{r.file&&(o.file=r.file),r.cwd&&(o.cwd=r.cwd),o.code=a instanceof Error&&a.code||n,o.tarCode=n,!r.strict&&o.recoverable!==!1?(a instanceof Error&&(o=Object.assign(a,o),a=a.message),r.emit("warn",n,a,o)):a instanceof Error?r.emit("error",Object.assign(a,o)):r.emit("error",Object.assign(new Error(`${n}: ${a}`),o))};e.warnMethod=t}),UAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var t=wt("events"),r=qZn(),n=N5e(),a=QAr(),o=XAr(),l=JAr(),A=1024*1024,f=Buffer.from([31,139]),I=Buffer.from([40,181,47,253]),C=Math.max(f.length,I.length),b=Symbol("state"),E=Symbol("writeEntry"),N=Symbol("readEntry"),B=Symbol("nextEntry"),F=Symbol("processEntry"),Q=Symbol("extendedHeader"),X=Symbol("globalExtendedHeader"),ae=Symbol("meta"),ne=Symbol("emitMeta"),ce=Symbol("buffer"),fe=Symbol("queue"),ue=Symbol("ended"),de=Symbol("emittedEnd"),be=Symbol("emit"),Se=Symbol("unzip"),De=Symbol("consumeChunk"),k=Symbol("consumeChunkSub"),et=Symbol("consumeBody"),ct=Symbol("consumeMeta"),Me=Symbol("consumeHeader"),je=Symbol("consuming"),St=Symbol("bufferConcat"),At=Symbol("maybeEnd"),Yt=Symbol("writing"),Tr=Symbol("aborted"),Nr=Symbol("onDone"),er=Symbol("sawValidEntry"),vt=Symbol("sawNullBlock"),xt=Symbol("sawEOF"),Zr=Symbol("closeStream"),qt=()=>!0,Xt=class extends t.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[fe]=[];[ce];[N];[E];[b]="begin";[ae]="";[Q];[X];[ue]=!1;[Se];[Tr]=!1;[er];[vt]=!1;[xt]=!1;[Yt]=!1;[je]=!1;[de]=!1;constructor(lr={}){super(),this.file=lr.file||"",this.on(Nr,()=>{(this[b]==="begin"||this[er]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),lr.ondone?this.on(Nr,lr.ondone):this.on(Nr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!lr.strict,this.maxMetaEntrySize=lr.maxMetaEntrySize||A,this.filter=typeof lr.filter=="function"?lr.filter:qt;let cr=lr.file&&(lr.file.endsWith(".tar.br")||lr.file.endsWith(".tbr"));this.brotli=!(lr.gzip||lr.zstd)&&lr.brotli!==void 0?lr.brotli:cr?void 0:!1;let Ar=lr.file&&(lr.file.endsWith(".tar.zst")||lr.file.endsWith(".tzst"));this.zstd=!(lr.gzip||lr.brotli)&&lr.zstd!==void 0?lr.zstd:Ar?!0:void 0,this.on("end",()=>this[Zr]()),typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn),typeof lr.onReadEntry=="function"&&this.on("entry",lr.onReadEntry)}warn(lr,cr,Ar={}){(0,l.warnMethod)(this,lr,cr,Ar)}[Me](lr,cr){this[er]===void 0&&(this[er]=!1);let Ar;try{Ar=new n.Header(lr,cr,this[Q],this[X])}catch(qr){return this.warn("TAR_ENTRY_INVALID",qr)}if(Ar.nullBlock)this[vt]?(this[xt]=!0,this[b]==="begin"&&(this[b]="header"),this[be]("eof")):(this[vt]=!0,this[be]("nullBlock"));else if(this[vt]=!1,!Ar.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:Ar});else if(!Ar.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:Ar});else{let qr=Ar.type;if(/^(Symbolic)?Link$/.test(qr)&&!Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:Ar});else if(!/^(Symbolic)?Link$/.test(qr)&&!/^(Global)?ExtendedHeader$/.test(qr)&&Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:Ar});else{let _n=this[E]=new o.ReadEntry(Ar,this[Q],this[X]);if(!this[er])if(_n.remain){let ke=()=>{_n.invalid||(this[er]=!0)};_n.on("end",ke)}else this[er]=!0;_n.meta?_n.size>this.maxMetaEntrySize?(_n.ignore=!0,this[be]("ignoredEntry",_n),this[b]="ignore",_n.resume()):_n.size>0&&(this[ae]="",_n.on("data",ke=>this[ae]+=ke),this[b]="meta"):(this[Q]=void 0,_n.ignore=_n.ignore||!this.filter(_n.path,_n),_n.ignore?(this[be]("ignoredEntry",_n),this[b]=_n.remain?"ignore":"header",_n.resume()):(_n.remain?this[b]="body":(this[b]="header",_n.end()),this[N]?this[fe].push(_n):(this[fe].push(_n),this[B]())))}}}[Zr](){queueMicrotask(()=>this.emit("close"))}[F](lr){let cr=!0;if(!lr)this[N]=void 0,cr=!1;else if(Array.isArray(lr)){let[Ar,...qr]=lr;this.emit(Ar,...qr)}else this[N]=lr,this.emit("entry",lr),lr.emittedEnd||(lr.on("end",()=>this[B]()),cr=!1);return cr}[B](){do;while(this[F](this[fe].shift()));if(this[fe].length===0){let lr=this[N];!lr||lr.flowing||lr.size===lr.remain?this[Yt]||this.emit("drain"):lr.once("drain",()=>this.emit("drain"))}}[et](lr,cr){let Ar=this[E];if(!Ar)throw new Error("attempt to consume body without entry??");let qr=Ar.blockRemain??0,_n=qr>=lr.length&&cr===0?lr:lr.subarray(cr,cr+qr);return Ar.write(_n),Ar.blockRemain||(this[b]="header",this[E]=void 0,Ar.end()),_n.length}[ct](lr,cr){let Ar=this[E],qr=this[et](lr,cr);return!this[E]&&Ar&&this[ne](Ar),qr}[be](lr,cr,Ar){this[fe].length===0&&!this[N]?this.emit(lr,cr,Ar):this[fe].push([lr,cr,Ar])}[ne](lr){switch(this[be]("meta",this[ae]),lr.type){case"ExtendedHeader":case"OldExtendedHeader":this[Q]=a.Pax.parse(this[ae],this[Q],!1);break;case"GlobalExtendedHeader":this[X]=a.Pax.parse(this[ae],this[X],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let cr=this[Q]??Object.create(null);this[Q]=cr,cr.path=this[ae].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let cr=this[Q]||Object.create(null);this[Q]=cr,cr.linkpath=this[ae].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+lr.type)}}abort(lr){this[Tr]=!0,this.emit("abort",lr),this.warn("TAR_ABORT",lr,{recoverable:!1})}write(lr,cr,Ar){if(typeof cr=="function"&&(Ar=cr,cr=void 0),typeof lr=="string"&&(lr=Buffer.from(lr,typeof cr=="string"?cr:"utf8")),this[Tr])return Ar?.(),!1;if((this[Se]===void 0||this.brotli===void 0&&this[Se]===!1)&&lr){if(this[ce]&&(lr=Buffer.concat([this[ce],lr]),this[ce]=void 0),lr.lengththis[De](Nn)),this[Se].on("error",Nn=>this.abort(Nn)),this[Se].on("end",()=>{this[ue]=!0,this[De]()}),this[Yt]=!0;let Fn=!!this[Se][jt?"end":"write"](lr);return this[Yt]=!1,Ar?.(),Fn}}this[Yt]=!0,this[Se]?this[Se].write(lr):this[De](lr),this[Yt]=!1;let qr=this[fe].length>0?!1:this[N]?this[N].flowing:!0;return!qr&&this[fe].length===0&&this[N]?.once("drain",()=>this.emit("drain")),Ar?.(),qr}[St](lr){lr&&!this[Tr]&&(this[ce]=this[ce]?Buffer.concat([this[ce],lr]):lr)}[At](){if(this[ue]&&!this[de]&&!this[Tr]&&!this[je]){this[de]=!0;let lr=this[E];if(lr&&lr.blockRemain){let cr=this[ce]?this[ce].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${lr.blockRemain} more bytes, only ${cr} available)`,{entry:lr}),this[ce]&&lr.write(this[ce]),lr.end()}this[be](Nr)}}[De](lr){if(this[je]&&lr)this[St](lr);else if(!lr&&!this[ce])this[At]();else if(lr){if(this[je]=!0,this[ce]){this[St](lr);let cr=this[ce];this[ce]=void 0,this[k](cr)}else this[k](lr);for(;this[ce]&&this[ce]?.length>=512&&!this[Tr]&&!this[xt];){let cr=this[ce];this[ce]=void 0,this[k](cr)}this[je]=!1}(!this[ce]||this[ue])&&this[At]()}[k](lr){let cr=0,Ar=lr.length;for(;cr+512<=Ar&&!this[Tr]&&!this[xt];)switch(this[b]){case"begin":case"header":this[Me](lr,cr),cr+=512;break;case"ignore":case"body":cr+=this[et](lr,cr);break;case"meta":cr+=this[ct](lr,cr);break;default:throw new Error("invalid state: "+this[b])}cr{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripTrailingSlashes=void 0;var t=r=>{let n=r.length-1,a=-1;for(;n>-1&&r.charAt(n)==="/";)a=n,n--;return a===-1?r:r.slice(0,a)};e.stripTrailingSlashes=t}),k5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(F,Q,X,ae){ae===void 0&&(ae=X);var ne=Object.getOwnPropertyDescriptor(Q,X);(!ne||("get"in ne?!Q.__esModule:ne.writable||ne.configurable))&&(ne={enumerable:!0,get:function(){return Q[X]}}),Object.defineProperty(F,ae,ne)}:function(F,Q,X,ae){ae===void 0&&(ae=X),F[ae]=Q[X]}),r=e&&e.__setModuleDefault||(Object.create?function(F,Q){Object.defineProperty(F,"default",{enumerable:!0,value:Q})}:function(F,Q){F.default=Q}),n=e&&e.__importStar||function(){var F=function(Q){return F=Object.getOwnPropertyNames||function(X){var ae=[];for(var ne in X)Object.prototype.hasOwnProperty.call(X,ne)&&(ae[ae.length]=ne);return ae},F(Q)};return function(Q){if(Q&&Q.__esModule)return Q;var X={};if(Q!=null)for(var ae=F(Q),ne=0;ne{let Q=F.onReadEntry;F.onReadEntry=Q?X=>{Q(X),X.resume()}:X=>X.resume()},E=(F,Q)=>{let X=new Map(Q.map(ce=>[(0,C.stripTrailingSlashes)(ce),!0])),ae=F.filter,ne=(ce,fe="")=>{let ue=fe||(0,A.parse)(ce).root||".",de;if(ce===ue)de=!1;else{let be=X.get(ce);de=be!==void 0?be:ne((0,A.dirname)(ce),ue)}return X.set(ce,de),de};F.filter=ae?(ce,fe)=>ae(ce,fe)&&ne((0,C.stripTrailingSlashes)(ce)):ce=>ne((0,C.stripTrailingSlashes)(ce))};e.filesFilter=E;var N=F=>{let Q=new I.Parser(F),X=F.file,ae;try{ae=l.default.openSync(X,"r");let ne=l.default.fstatSync(ae),ce=F.maxReadSize||16*1024*1024;if(ne.size{let X=new I.Parser(F),ae=F.maxReadSize||16*1024*1024,ne=F.file;return new Promise((ce,fe)=>{X.on("error",fe),X.on("end",ce),l.default.stat(ne,(ue,de)=>{if(ue)fe(ue);else{let be=new o.ReadStream(ne,{readSize:ae,size:de.size});be.on("error",fe),be.pipe(X)}})})};e.list=(0,f.makeCommand)(N,B,F=>new I.Parser(F),F=>new I.Parser(F),(F,Q)=>{Q?.length&&(0,e.filesFilter)(F,Q),F.noResume||b(F)})}),TOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.modeFix=void 0;var t=(r,n,a)=>(r&=4095,a&&(r=(r|384)&-19),n&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r);e.modeFix=t}),tLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripAbsolutePath=void 0;var t=wt("node:path"),{isAbsolute:r,parse:n}=t.win32,a=o=>{let l="",A=n(o);for(;r(o)||A.root;){let f=o.charAt(0)==="/"&&o.slice(0,4)!=="//?/"?"/":A.root;o=o.slice(f.length),l+=f,A=n(o)}return[l,o]};e.stripAbsolutePath=a}),rLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decode=e.encode=void 0;var t=["|","<",">","?",":"],r=t.map(A=>String.fromCodePoint(61440+Number(A.codePointAt(0)))),n=new Map(t.map((A,f)=>[A,r[f]])),a=new Map(r.map((A,f)=>[A,t[f]])),o=A=>t.reduce((f,I)=>f.split(I).join(n.get(I)),A);e.encode=o;var l=A=>r.reduce((f,I)=>f.split(I).join(a.get(I)),A);e.decode=l}),nLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(qt,Xt,lr,cr){cr===void 0&&(cr=lr);var Ar=Object.getOwnPropertyDescriptor(Xt,lr);(!Ar||("get"in Ar?!Xt.__esModule:Ar.writable||Ar.configurable))&&(Ar={enumerable:!0,get:function(){return Xt[lr]}}),Object.defineProperty(qt,cr,Ar)}:function(qt,Xt,lr,cr){cr===void 0&&(cr=lr),qt[cr]=Xt[lr]}),r=e&&e.__setModuleDefault||(Object.create?function(qt,Xt){Object.defineProperty(qt,"default",{enumerable:!0,value:Xt})}:function(qt,Xt){qt.default=Xt}),n=e&&e.__importStar||function(){var qt=function(Xt){return qt=Object.getOwnPropertyNames||function(lr){var cr=[];for(var Ar in lr)Object.prototype.hasOwnProperty.call(lr,Ar)&&(cr[cr.length]=Ar);return cr},qt(Xt)};return function(Xt){if(Xt&&Xt.__esModule)return Xt;var lr={};if(Xt!=null)for(var cr=qt(Xt),Ar=0;ArXt?(qt=(0,C.normalizeWindowsPath)(qt).replace(/^\.(\/|$)/,""),(0,B.stripTrailingSlashes)(Xt)+"/"+qt):(0,C.normalizeWindowsPath)(qt),ae=16*1024*1024,ne=Symbol("process"),ce=Symbol("file"),fe=Symbol("directory"),ue=Symbol("symlink"),de=Symbol("hardlink"),be=Symbol("header"),Se=Symbol("read"),De=Symbol("lstat"),k=Symbol("onlstat"),et=Symbol("onread"),ct=Symbol("onreadlink"),Me=Symbol("openfile"),je=Symbol("onopenfile"),St=Symbol("close"),At=Symbol("mode"),Yt=Symbol("awaitDrain"),Tr=Symbol("ondrain"),Nr=Symbol("prefix"),er=class extends l.Minipass{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.path=(0,C.normalizeWindowsPath)(qt),this.portable=!!lr.portable,this.maxReadSize=lr.maxReadSize||ae,this.linkCache=lr.linkCache||new Map,this.statCache=lr.statCache||new Map,this.preservePaths=!!lr.preservePaths,this.cwd=(0,C.normalizeWindowsPath)(lr.cwd||process.cwd()),this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.mtime=lr.mtime,this.prefix=lr.prefix?(0,C.normalizeWindowsPath)(lr.prefix):void 0,this.onWriteEntry=lr.onWriteEntry,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let cr=!1;if(!this.preservePaths){let[qr,_n]=(0,N.stripAbsolutePath)(this.path);qr&&typeof _n=="string"&&(this.path=_n,cr=qr)}this.win32=!!lr.win32||process.platform==="win32",this.win32&&(this.path=Q.decode(this.path.replaceAll(/\\/g,"/")),qt=qt.replaceAll(/\\/g,"/")),this.absolute=(0,C.normalizeWindowsPath)(lr.absolute||A.default.resolve(this.cwd,qt)),this.path===""&&(this.path="./"),cr&&this.warn("TAR_ENTRY_INFO",`stripping ${cr} from absolute path`,{entry:this,path:cr+this.path});let Ar=this.statCache.get(this.absolute);Ar?this[k](Ar):this[De]()}warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}emit(qt,...Xt){return qt==="error"&&(this.#e=!0),super.emit(qt,...Xt)}[De](){o.default.lstat(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[k](Xt)})}[k](qt){this.statCache.set(this.absolute,qt),this.stat=qt,qt.isFile()||(qt.size=0),this.type=Zr(qt),this.emit("stat",qt),this[ne]()}[ne](){switch(this.type){case"File":return this[ce]();case"Directory":return this[fe]();case"SymbolicLink":return this[ue]();default:return this.end()}}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}[Nr](qt){return X(qt,this.prefix)}[be](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this[At](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let qt=this.header?.block;if(!qt)throw new Error("failed to encode header");super.write(qt)}[fe](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[be](),this.end()}[ue](){o.default.readlink(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[ct](Xt)})}[ct](qt){this.linkpath=(0,C.normalizeWindowsPath)(qt),this[be](),this.end()}[de](qt){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=(0,C.normalizeWindowsPath)(A.default.relative(this.cwd,qt)),this.stat.size=0,this[be](),this.end()}[ce](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let qt=`${this.stat.dev}:${this.stat.ino}`,Xt=this.linkCache.get(qt);if(Xt?.indexOf(this.cwd)===0)return this[de](Xt);this.linkCache.set(qt,this.absolute)}if(this[be](),this.stat.size===0)return this.end();this[Me]()}[Me](){o.default.open(this.absolute,"r",(qt,Xt)=>{if(qt)return this.emit("error",qt);this[je](Xt)})}[je](qt){if(this.fd=qt,this.#e)return this[St]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let Xt=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(Xt),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Se]()}[Se](){let{fd:qt,buf:Xt,offset:lr,length:cr,pos:Ar}=this;if(qt===void 0||Xt===void 0)throw new Error("cannot read file without first opening");o.default.read(qt,Xt,lr,cr,Ar,(qr,_n)=>{if(qr)return this[St](()=>this.emit("error",qr));this[et](_n)})}[St](qt=()=>{}){this.fd!==void 0&&o.default.close(this.fd,qt)}[et](qt){if(qt<=0&&this.remain>0){let lr=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(qt>this.remain){let lr=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(qt===this.remain)for(let lr=qt;lrthis[Tr]())}[Yt](qt){this.once("drain",qt)}write(qt,Xt,lr){if(typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8")),this.blockRemainqt?this.emit("error",qt):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Se]()}};e.WriteEntry=er;var vt=class extends er{sync=!0;[De](){this[k](o.default.lstatSync(this.absolute))}[ue](){this[ct](o.default.readlinkSync(this.absolute))}[Me](){this[je](o.default.openSync(this.absolute,"r"))}[Se](){let qt=!0;try{let{fd:Xt,buf:lr,offset:cr,length:Ar,pos:qr}=this;if(Xt===void 0||lr===void 0)throw new Error("fd and buf must be set in READ method");let _n=o.default.readSync(Xt,lr,cr,Ar,qr);this[et](_n),qt=!1}finally{if(qt)try{this[St](()=>{})}catch{}}}[Yt](qt){qt()}[St](qt=()=>{}){this.fd!==void 0&&o.default.closeSync(this.fd),qt()}};e.WriteEntrySync=vt;var xt=class extends l.Minipass{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.preservePaths=!!lr.preservePaths,this.portable=!!lr.portable,this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.onWriteEntry=lr.onWriteEntry,this.readEntry=qt;let{type:cr}=qt;if(cr==="Unsupported")throw new Error("writing entry that should be ignored");this.type=cr,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=lr.prefix,this.path=(0,C.normalizeWindowsPath)(qt.path),this.mode=qt.mode!==void 0?this[At](qt.mode):void 0,this.uid=this.portable?void 0:qt.uid,this.gid=this.portable?void 0:qt.gid,this.uname=this.portable?void 0:qt.uname,this.gname=this.portable?void 0:qt.gname,this.size=qt.size,this.mtime=this.noMtime?void 0:lr.mtime||qt.mtime,this.atime=this.portable?void 0:qt.atime,this.ctime=this.portable?void 0:qt.ctime,this.linkpath=qt.linkpath!==void 0?(0,C.normalizeWindowsPath)(qt.linkpath):void 0,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let Ar=!1;if(!this.preservePaths){let[_n,ke]=(0,N.stripAbsolutePath)(this.path);_n&&typeof ke=="string"&&(this.path=ke,Ar=_n)}this.remain=qt.size,this.blockRemain=qt.startBlockSize,this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),Ar&&this.warn("TAR_ENTRY_INFO",`stripping ${Ar} from absolute path`,{entry:this,path:Ar+this.path}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let qr=this.header?.block;if(!qr)throw new Error("failed to encode header");super.write(qr),qt.pipe(this)}[Nr](qt){return X(qt,this.prefix)}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}write(qt,Xt,lr){typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8"));let cr=qt.length;if(cr>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=cr,super.write(qt,lr)}end(qt,Xt,lr){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof qt=="function"&&(lr=qt,Xt=void 0,qt=void 0),typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,Xt??"utf8")),lr&&this.once("finish",lr),qt?super.end(qt,lr):super.end(lr),this}};e.WriteEntryTar=xt;var Zr=qt=>qt.isFile()?"File":qt.isDirectory()?"Directory":qt.isSymbolicLink()?"SymbolicLink":"Unsupported"}),ROo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Node=e.Yallist=void 0;var t=class Tve{tail;head;length=0;static create(A=[]){return new Tve(A)}constructor(A=[]){for(let f of A)this.push(f)}*[Symbol.iterator](){for(let A=this.head;A;A=A.next)yield A.value}removeNode(A){if(A.list!==this)throw new Error("removing node which does not belong to this list");let f=A.next,I=A.prev;return f&&(f.prev=I),I&&(I.next=f),A===this.head&&(this.head=f),A===this.tail&&(this.tail=I),this.length--,A.next=void 0,A.prev=void 0,A.list=void 0,f}unshiftNode(A){if(A===this.head)return;A.list&&A.list.removeNode(A);let f=this.head;A.list=this,A.next=f,f&&(f.prev=A),this.head=A,this.tail||(this.tail=A),this.length++}pushNode(A){if(A===this.tail)return;A.list&&A.list.removeNode(A);let f=this.tail;A.list=this,A.prev=f,f&&(f.next=A),this.tail=A,this.head||(this.head=A),this.length++}push(...A){for(let f=0,I=A.length;f1)I=f;else if(this.head)C=this.head.next,I=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var b=0;C;b++)I=A(I,C.value,b),C=C.next;return I}reduceReverse(A,f){let I,C=this.tail;if(arguments.length>1)I=f;else if(this.tail)C=this.tail.prev,I=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let b=this.length-1;C;b--)I=A(I,C.value,b),C=C.prev;return I}toArray(){let A=new Array(this.length);for(let f=0,I=this.head;I;f++)A[f]=I.value,I=I.next;return A}toArrayReverse(){let A=new Array(this.length);for(let f=0,I=this.tail;I;f++)A[f]=I.value,I=I.prev;return A}slice(A=0,f=this.length){f<0&&(f+=this.length),A<0&&(A+=this.length);let I=new Tve;if(fthis.length&&(f=this.length);let C=this.head,b=0;for(b=0;C&&bthis.length&&(f=this.length);let C=this.length,b=this.tail;for(;b&&C>f;C--)b=b.prev;for(;b&&C>A;C--,b=b.prev)I.push(b.value);return I}splice(A,f=0,...I){A>this.length&&(A=this.length-1),A<0&&(A=this.length+A);let C=this.head;for(let E=0;C&&E{"use strict";var t=e&&e.__createBinding||(Object.create?function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr);var Xt=Object.getOwnPropertyDescriptor(xt,Zr);(!Xt||("get"in Xt?!xt.__esModule:Xt.writable||Xt.configurable))&&(Xt={enumerable:!0,get:function(){return xt[Zr]}}),Object.defineProperty(vt,qt,Xt)}:function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr),vt[qt]=xt[Zr]}),r=e&&e.__setModuleDefault||(Object.create?function(vt,xt){Object.defineProperty(vt,"default",{enumerable:!0,value:xt})}:function(vt,xt){vt.default=xt}),n=e&&e.__importStar||function(){var vt=function(xt){return vt=Object.getOwnPropertyNames||function(Zr){var qt=[];for(var Xt in Zr)Object.prototype.hasOwnProperty.call(Zr,Xt)&&(qt[qt.length]=Xt);return qt},vt(xt)};return function(xt){if(xt&&xt.__esModule)return xt;var Zr={};if(xt!=null)for(var qt=vt(xt),Xt=0;Xt1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(vt.gzip&&(typeof vt.gzip!="object"&&(vt.gzip={}),this.portable&&(vt.gzip.portable=!0),this.zip=new I.Gzip(vt.gzip)),vt.brotli&&(typeof vt.brotli!="object"&&(vt.brotli={}),this.zip=new I.BrotliCompress(vt.brotli)),vt.zstd&&(typeof vt.zstd!="object"&&(vt.zstd={}),this.zip=new I.ZstdCompress(vt.zstd)),!this.zip)throw new Error("impossible");let xt=this.zip;xt.on("data",Zr=>super.write(Zr)),xt.on("end",()=>super.end()),xt.on("drain",()=>this[At]()),this.on("resume",()=>xt.resume())}else this.on("drain",this[At]);this.noDirRecurse=!!vt.noDirRecurse,this.follow=!!vt.follow,this.noMtime=!!vt.noMtime,vt.mtime&&(this.mtime=vt.mtime),this.filter=typeof vt.filter=="function"?vt.filter:()=>!0,this[Q]=new C.Yallist,this[fe]=0,this.jobs=Number(vt.jobs)||4,this[ne]=!1,this[F]=!1}[St](vt){return super.write(vt)}add(vt){return this.write(vt),this}end(vt,xt,Zr){return typeof vt=="function"&&(Zr=vt,vt=void 0),typeof xt=="function"&&(Zr=xt,xt=void 0),vt&&this.add(vt),this[F]=!0,this[ae](),Zr&&Zr(),this}write(vt){if(this[F])throw new Error("write after end");return vt instanceof b.ReadEntry?this[be](vt):this[de](vt),this.flowing}[be](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt.path));if(!this.filter(vt.path,vt))vt.resume();else{let Zr=new A(vt.path,xt);Zr.entry=new l.WriteEntryTar(vt,this[Me](Zr)),Zr.entry.on("end",()=>this[ue](Zr)),this[fe]+=1,this[Q].push(Zr)}this[ae]()}[de](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt));this[Q].push(new A(vt,xt)),this[ae]()}[Se](vt){vt.pending=!0,this[fe]+=1;let xt=this.follow?"stat":"lstat";o.default[xt](vt.absolute,(Zr,qt)=>{vt.pending=!1,this[fe]-=1,Zr?this.emit("error",Zr):this[B](vt,qt)})}[B](vt,xt){this.statCache.set(vt.absolute,xt),vt.stat=xt,this.filter(vt.path,xt)?xt.isFile()&&xt.nlink>1&&vt===this[X]&&!this.linkCache.get(`${xt.dev}:${xt.ino}`)&&!this.sync&&this[ce](vt):vt.ignore=!0,this[ae]()}[De](vt){vt.pending=!0,this[fe]+=1,o.default.readdir(vt.absolute,(xt,Zr)=>{if(vt.pending=!1,this[fe]-=1,xt)return this.emit("error",xt);this[k](vt,Zr)})}[k](vt,xt){this.readdirCache.set(vt.absolute,xt),vt.readdir=xt,this[ae]()}[ae](){if(!this[ne]){this[ne]=!0;for(let vt=this[Q].head;vt&&this[fe]this.warn(xt,Zr,qt),noPax:this.noPax,cwd:this.cwd,absolute:vt.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[ct](vt){this[fe]+=1;try{return new this[je](vt.path,this[Me](vt)).on("end",()=>this[ue](vt)).on("error",xt=>this.emit("error",xt))}catch(xt){this.emit("error",xt)}}[At](){this[X]&&this[X].entry&&this[X].entry.resume()}[et](vt){vt.piped=!0,vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)});let xt=vt.entry,Zr=this.zip;if(!xt)throw new Error("cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)||xt.pause()}):xt.on("data",qt=>{super.write(qt)||xt.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(vt,xt,Zr={}){(0,E.warnMethod)(this,vt,xt,Zr)}};e.Pack=Nr;var er=class extends Nr{sync=!0;constructor(vt){super(vt),this[je]=l.WriteEntrySync}pause(){}resume(){}[Se](vt){let xt=this.follow?"statSync":"lstatSync";this[B](vt,o.default[xt](vt.absolute))}[De](vt){this[k](vt,o.default.readdirSync(vt.absolute))}[et](vt){let xt=vt.entry,Zr=this.zip;if(vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)}),!xt)throw new Error("Cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)}):xt.on("data",qt=>{super[St](qt)})}};e.PackSync=er}),iLn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(N){return N&&N.__esModule?N:{default:N}};Object.defineProperty(e,"__esModule",{value:!0}),e.create=void 0;var r=T5e(),n=t(wt("node:path")),a=k5e(),o=R5e(),l=jAr(),A=(N,B)=>{let F=new l.PackSync(N),Q=new r.WriteStreamSync(N.file,{mode:N.mode||438});F.pipe(Q),I(F,B)},f=(N,B)=>{let F=new l.Pack(N),Q=new r.WriteStream(N.file,{mode:N.mode||438});F.pipe(Q);let X=new Promise((ae,ne)=>{Q.on("error",ne),Q.on("close",ae),F.on("error",ne)});return C(F,B).catch(ae=>F.emit("error",ae)),X},I=(N,B)=>{B.forEach(F=>{F.charAt(0)==="@"?(0,a.list)({file:n.default.resolve(N.cwd,F.slice(1)),sync:!0,noResume:!0,onReadEntry:Q=>N.add(Q)}):N.add(F)}),N.end()},C=async(N,B)=>{for(let F of B)F.charAt(0)==="@"?await(0,a.list)({file:n.default.resolve(String(N.cwd),F.slice(1)),noResume:!0,onReadEntry:Q=>{N.add(Q)}}):N.add(F);N.end()},b=(N,B)=>{let F=new l.PackSync(N);return I(F,B),F},E=(N,B)=>{let F=new l.Pack(N);return C(F,B).catch(Q=>F.emit("error",Q)),F};e.create=(0,o.makeCommand)(A,f,b,E,(N,B)=>{if(!B?.length)throw new TypeError("no paths specified to add to archive")})}),NOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(e,"__esModule",{value:!0}),e.getWriteFlag=void 0;var r=t(wt("fs")),n=process.platform,a=n==="win32",{O_CREAT:o,O_NOFOLLOW:l,O_TRUNC:A,O_WRONLY:f}=r.default.constants,I=Number(process.env.__FAKE_FS_O_FILENAME__)||r.default.constants.UV_FS_O_FILEMAP||0,C=a&&!!I,b=512*1024,E=I|A|o|f,N=!a&&typeof l=="number"?l|A|o|f:null;e.getWriteFlag=N!==null?()=>N:C?B=>B"w"}),DOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(C){return C&&C.__esModule?C:{default:C}};Object.defineProperty(e,"__esModule",{value:!0}),e.chownrSync=e.chownr=void 0;var r=t(wt("node:fs")),n=t(wt("node:path")),a=(C,b,E)=>{try{return r.default.lchownSync(C,b,E)}catch(N){if(N?.code!=="ENOENT")throw N}},o=(C,b,E,N)=>{r.default.lchown(C,b,E,B=>{N(B&&B?.code!=="ENOENT"?B:null)})},l=(C,b,E,N,B)=>{if(b.isDirectory())(0,e.chownr)(n.default.resolve(C,b.name),E,N,F=>{if(F)return B(F);let Q=n.default.resolve(C,b.name);o(Q,E,N,B)});else{let F=n.default.resolve(C,b.name);o(F,E,N,B)}},A=(C,b,E,N)=>{r.default.readdir(C,{withFileTypes:!0},(B,F)=>{if(B){if(B.code==="ENOENT")return N();if(B.code!=="ENOTDIR"&&B.code!=="ENOTSUP")return N(B)}if(B||!F.length)return o(C,b,E,N);let Q=F.length,X=null,ae=ne=>{if(!X){if(ne)return N(X=ne);if(--Q===0)return o(C,b,E,N)}};for(let ne of F)l(C,ne,b,E,ae)})};e.chownr=A;var f=(C,b,E,N)=>{b.isDirectory()&&(0,e.chownrSync)(n.default.resolve(C,b.name),E,N),a(n.default.resolve(C,b.name),E,N)},I=(C,b,E)=>{let N;try{N=r.default.readdirSync(C,{withFileTypes:!0})}catch(B){let F=B;if(F?.code==="ENOENT")return;if(F?.code==="ENOTDIR"||F?.code==="ENOTSUP")return a(C,b,E);throw F}for(let B of N)f(C,B,b,E);return a(C,b,E)};e.chownrSync=I}),kOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CwdError=void 0;var t=class extends Error{path;code;syscall="chdir";constructor(r,n){super(`${n}: Cannot cd into '${r}'`),this.path=r,this.code=n}get name(){return"CwdError"}};e.CwdError=t}),sLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SymlinkError=void 0;var t=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(r,n){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=r,this.path=n}get name(){return"SymlinkError"}};e.SymlinkError=t}),xOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.mkdirSync=e.mkdir=void 0;var r=DOo(),n=t(wt("node:fs")),a=t(wt("node:fs/promises")),o=t(wt("node:path")),l=kOo(),A=D5e(),f=sLn(),I=(F,Q)=>{n.default.stat(F,(X,ae)=>{(X||!ae.isDirectory())&&(X=new l.CwdError(F,X?.code||"ENOTDIR")),Q(X)})},C=(F,Q,X)=>{F=(0,A.normalizeWindowsPath)(F);let ae=Q.umask??18,ne=Q.mode|448,ce=(ne&ae)!==0,fe=Q.uid,ue=Q.gid,de=typeof fe=="number"&&typeof ue=="number"&&(fe!==Q.processUid||ue!==Q.processGid),be=Q.preserve,Se=Q.unlink,De=(0,A.normalizeWindowsPath)(Q.cwd),k=(ct,Me)=>{ct?X(ct):Me&&de?(0,r.chownr)(Me,fe,ue,je=>k(je)):ce?n.default.chmod(F,ne,X):X()};if(F===De)return I(F,k);if(be)return a.default.mkdir(F,{mode:ne,recursive:!0}).then(ct=>k(null,ct??void 0),k);let et=(0,A.normalizeWindowsPath)(o.default.relative(De,F)).split("/");b(De,et,ne,Se,De,void 0,k)};e.mkdir=C;var b=(F,Q,X,ae,ne,ce,fe)=>{if(Q.length===0)return fe(null,ce);let ue=Q.shift(),de=(0,A.normalizeWindowsPath)(o.default.resolve(F+"/"+ue));n.default.mkdir(de,X,E(de,Q,X,ae,ne,ce,fe))},E=(F,Q,X,ae,ne,ce,fe)=>ue=>{ue?n.default.lstat(F,(de,be)=>{if(de)de.path=de.path&&(0,A.normalizeWindowsPath)(de.path),fe(de);else if(be.isDirectory())b(F,Q,X,ae,ne,ce,fe);else if(ae)n.default.unlink(F,Se=>{if(Se)return fe(Se);n.default.mkdir(F,X,E(F,Q,X,ae,ne,ce,fe))});else{if(be.isSymbolicLink())return fe(new f.SymlinkError(F,F+"/"+Q.join("/")));fe(ue)}}):(ce=ce||F,b(F,Q,X,ae,ne,ce,fe))},N=F=>{let Q=!1,X;try{Q=n.default.statSync(F).isDirectory()}catch(ae){X=ae?.code}finally{if(!Q)throw new l.CwdError(F,X??"ENOTDIR")}},B=(F,Q)=>{F=(0,A.normalizeWindowsPath)(F);let X=Q.umask??18,ae=Q.mode|448,ne=(ae&X)!==0,ce=Q.uid,fe=Q.gid,ue=typeof ce=="number"&&typeof fe=="number"&&(ce!==Q.processUid||fe!==Q.processGid),de=Q.preserve,be=Q.unlink,Se=(0,A.normalizeWindowsPath)(Q.cwd),De=ct=>{ct&&ue&&(0,r.chownrSync)(ct,ce,fe),ne&&n.default.chmodSync(F,ae)};if(F===Se)return N(Se),De();if(de)return De(n.default.mkdirSync(F,{mode:ae,recursive:!0})??void 0);let k=(0,A.normalizeWindowsPath)(o.default.relative(Se,F)).split("/"),et;for(let ct=k.shift(),Me=Se;ct&&(Me+="/"+ct);ct=k.shift()){Me=(0,A.normalizeWindowsPath)(o.default.resolve(Me));try{n.default.mkdirSync(Me,ae),et=et||Me}catch{let je=n.default.lstatSync(Me);if(je.isDirectory())continue;if(be){n.default.unlinkSync(Me),n.default.mkdirSync(Me,ae),et=et||Me;continue}else if(je.isSymbolicLink())return new f.SymlinkError(Me,Me+"/"+k.join("/"))}}return De(et)};e.mkdirSync=B}),GOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeUnicode=void 0;var t=Object.create(null),r=1e4,n=new Set,a=o=>{n.has(o)?n.delete(o):t[o]=o.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),n.add(o);let l=t[o],A=n.size-r;if(A>r/10){for(let f of n)if(n.delete(f),delete t[f],--A<=0)break}return l};e.normalizeUnicode=a}),FOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PathReservations=void 0;var t=wt("node:path"),r=GOo(),n=KAr(),a=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,o=a==="win32",l=f=>f.split("/").slice(0,-1).reduce((I,C)=>{let b=I.at(-1);return b!==void 0&&(C=(0,t.join)(b,C)),I.push(C||"/"),I},[]),A=class{#e=new Map;#t=new Map;#n=new Set;reserve(f,I){f=o?["win32 parallelization disabled"]:f.map(b=>(0,n.stripTrailingSlashes)((0,t.join)((0,r.normalizeUnicode)(b))));let C=new Set(f.map(b=>l(b)).reduce((b,E)=>b.concat(E)));this.#t.set(I,{dirs:C,paths:f});for(let b of f){let E=this.#e.get(b);E?E.push(I):this.#e.set(b,[I])}for(let b of C){let E=this.#e.get(b);if(!E)this.#e.set(b,[new Set([I])]);else{let N=E.at(-1);N instanceof Set?N.add(I):E.push(new Set([I]))}}return this.#i(I)}#r(f){let I=this.#t.get(f);if(!I)throw new Error("function does not have any path reservations");return{paths:I.paths.map(C=>this.#e.get(C)),dirs:[...I.dirs].map(C=>this.#e.get(C))}}check(f){let{paths:I,dirs:C}=this.#r(f);return I.every(b=>b&&b[0]===f)&&C.every(b=>b&&b[0]instanceof Set&&b[0].has(f))}#i(f){return this.#n.has(f)||!this.check(f)?!1:(this.#n.add(f),f(()=>this.#s(f)),!0)}#s(f){if(!this.#n.has(f))return!1;let I=this.#t.get(f);if(!I)throw new Error("invalid reservation");let{paths:C,dirs:b}=I,E=new Set;for(let N of C){let B=this.#e.get(N);if(!B||B?.[0]!==f)continue;let F=B[1];if(!F){this.#e.delete(N);continue}if(B.shift(),typeof F=="function")E.add(F);else for(let Q of F)E.add(Q)}for(let N of b){let B=this.#e.get(N),F=B?.[0];if(!(!B||!(F instanceof Set)))if(F.size===1&&B.length===1){this.#e.delete(N);continue}else if(F.size===1){B.shift();let Q=B[0];typeof Q=="function"&&E.add(Q)}else F.delete(f)}return this.#n.delete(f),E.forEach(N=>this.#i(N)),!0}};e.PathReservations=A}),ZOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.umask=void 0;var t=()=>process.umask();e.umask=t}),oLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(Vr,xi,io,ga){ga===void 0&&(ga=io);var Ya=Object.getOwnPropertyDescriptor(xi,io);(!Ya||("get"in Ya?!xi.__esModule:Ya.writable||Ya.configurable))&&(Ya={enumerable:!0,get:function(){return xi[io]}}),Object.defineProperty(Vr,ga,Ya)}:function(Vr,xi,io,ga){ga===void 0&&(ga=io),Vr[ga]=xi[io]}),r=e&&e.__setModuleDefault||(Object.create?function(Vr,xi){Object.defineProperty(Vr,"default",{enumerable:!0,value:xi})}:function(Vr,xi){Vr.default=xi}),n=e&&e.__importStar||function(){var Vr=function(xi){return Vr=Object.getOwnPropertyNames||function(io){var ga=[];for(var Ya in io)Object.prototype.hasOwnProperty.call(io,Ya)&&(ga[ga.length]=Ya);return ga},Vr(xi)};return function(xi){if(xi&&xi.__esModule)return xi;var io={};if(xi!=null)for(var ga=Vr(xi),Ya=0;Ya{if(!qr)return f.default.unlink(Vr,xi);let io=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.rename(Vr,io,ga=>{if(ga)return xi(ga);f.default.unlink(io,xi)})},jt=Vr=>{if(!qr)return f.default.unlinkSync(Vr);let xi=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.renameSync(Vr,xi),f.default.unlinkSync(xi)},Fn=(Vr,xi,io)=>Vr!==void 0&&Vr===Vr>>>0?Vr:xi!==void 0&&xi===xi>>>0?xi:io,Nn=class extends N.Parser{[vt]=!1;[cr]=!1;[Tr]=0;reservations=new Q.PathReservations;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(Vr={}){if(Vr.ondone=()=>{this[vt]=!0,this[xt]()},super(Vr),this.transform=Vr.transform,this.chmod=!!Vr.chmod,typeof Vr.uid=="number"||typeof Vr.gid=="number"){if(typeof Vr.uid!="number"||typeof Vr.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(Vr.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=Vr.uid,this.gid=Vr.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;this.preserveOwner=Vr.preserveOwner===void 0&&typeof Vr.uid!="number"?!!(process.getuid&&process.getuid()===0):!!Vr.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof Vr.maxDepth=="number"?Vr.maxDepth:_n,this.forceChown=Vr.forceChown===!0,this.win32=!!Vr.win32||qr,this.newer=!!Vr.newer,this.keep=!!Vr.keep,this.noMtime=!!Vr.noMtime,this.preservePaths=!!Vr.preservePaths,this.unlink=!!Vr.unlink,this.cwd=(0,E.normalizeWindowsPath)(I.default.resolve(Vr.cwd||process.cwd())),this.strip=Number(Vr.strip)||0,this.processUmask=this.chmod?typeof Vr.processUmask=="number"?Vr.processUmask:(0,ae.umask)():0,this.umask=typeof Vr.umask=="number"?Vr.umask:this.processUmask,this.dmode=Vr.dmode||511&~this.umask,this.fmode=Vr.fmode||438&~this.umask,this.on("entry",xi=>this[ne](xi))}warn(Vr,xi,io={}){return(Vr==="TAR_BAD_ARCHIVE"||Vr==="TAR_ABORT")&&(io.recoverable=!1),super.warn(Vr,xi,io)}[xt](){this[vt]&&this[Tr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[St](Vr,xi){let io=Vr[xi],{type:ga}=Vr;if(!io||this.preservePaths)return!0;let[Ya,Gc]=(0,B.stripAbsolutePath)(io),cl=Gc.replaceAll(/\\/g,"/").split("/");if(cl.includes("..")||qr&&/^[a-z]:\.\.$/i.test(cl[0]??"")){if(xi==="path"||ga==="Link")return this.warn("TAR_ENTRY_ERROR",`${xi} contains '..'`,{entry:Vr,[xi]:io}),!1;let Sc=I.default.posix.dirname(Vr.path),Hr=I.default.posix.normalize(I.default.posix.join(Sc,cl.join("/")));if(Hr.startsWith("../")||Hr==="..")return this.warn("TAR_ENTRY_ERROR",`${xi} escapes extraction directory`,{entry:Vr,[xi]:io}),!1}return Ya&&(Vr[xi]=String(Gc),this.warn("TAR_ENTRY_INFO",`stripping ${Ya} from absolute ${xi}`,{entry:Vr,[xi]:io})),!0}[je](Vr){let xi=(0,E.normalizeWindowsPath)(Vr.path),io=xi.split("/");if(this.strip){if(io.length=this.strip)Vr.linkpath=ga.slice(this.strip).join("/");else return!1}io.splice(0,this.strip),Vr.path=io.join("/")}if(isFinite(this.maxDepth)&&io.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:Vr,path:xi,depth:io.length,maxDepth:this.maxDepth}),!1;if(!this[St](Vr,"path")||!this[St](Vr,"linkpath"))return!1;if(Vr.absolute=I.default.isAbsolute(Vr.path)?(0,E.normalizeWindowsPath)(I.default.resolve(Vr.path)):(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,Vr.path)),!this.preservePaths&&typeof Vr.absolute=="string"&&Vr.absolute.indexOf(this.cwd+"/")!==0&&Vr.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:Vr,path:(0,E.normalizeWindowsPath)(Vr.path),resolvedPath:Vr.absolute,cwd:this.cwd}),!1;if(Vr.absolute===this.cwd&&Vr.type!=="Directory"&&Vr.type!=="GNUDumpDir")return!1;if(this.win32){let{root:ga}=I.default.win32.parse(String(Vr.absolute));Vr.absolute=ga+F.encode(String(Vr.absolute).slice(ga.length));let{root:Ya}=I.default.win32.parse(Vr.path);Vr.path=Ya+F.encode(Vr.path.slice(Ya.length))}return!0}[ne](Vr){if(!this[je](Vr))return Vr.resume();switch(l.default.equal(typeof Vr.absolute,"string"),Vr.type){case"Directory":case"GNUDumpDir":Vr.mode&&(Vr.mode=Vr.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ce](Vr);default:return this[Me](Vr)}}[Yt](Vr,xi){Vr.name==="CwdError"?this.emit("error",Vr):(this.warn("TAR_ENTRY_ERROR",Vr,{entry:xi}),this[er](),xi.resume())}[At](Vr,xi,io){(0,b.mkdir)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi},io)}[qt](Vr){return this.forceChown||this.preserveOwner&&(typeof Vr.uid=="number"&&Vr.uid!==this.processUid||typeof Vr.gid=="number"&&Vr.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Xt](Vr){return Fn(this.uid,Vr.uid,this.processUid)}[lr](Vr){return Fn(this.gid,Vr.gid,this.processGid)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=new o.WriteStream(String(Vr.absolute),{flags:(0,C.getWriteFlag)(Vr.size),mode:io,autoClose:!1});ga.on("error",Sc=>{ga.fd&&f.default.close(ga.fd,()=>{}),ga.write=()=>!0,this[Yt](Sc,Vr),xi()});let Ya=1,Gc=Sc=>{if(Sc){ga.fd&&f.default.close(ga.fd,()=>{}),this[Yt](Sc,Vr),xi();return}--Ya===0&&ga.fd!==void 0&&f.default.close(ga.fd,Hr=>{Hr?this[Yt](Hr,Vr):this[er](),xi()})};ga.on("finish",()=>{let Sc=String(Vr.absolute),Hr=ga.fd;if(typeof Hr=="number"&&Vr.mtime&&!this.noMtime){Ya++;let Wr=Vr.atime||new Date,Ft=Vr.mtime;f.default.futimes(Hr,Wr,Ft,zr=>zr?f.default.utimes(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}if(typeof Hr=="number"&&this[qt](Vr)){Ya++;let Wr=this[Xt](Vr),Ft=this[lr](Vr);typeof Wr=="number"&&typeof Ft=="number"&&f.default.fchown(Hr,Wr,Ft,zr=>zr?f.default.chown(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}Gc()});let cl=this.transform&&this.transform(Vr)||Vr;cl!==Vr&&(cl.on("error",Sc=>{this[Yt](Sc,Vr),xi()}),Vr.pipe(cl)),cl.pipe(ga)}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode;this[At](String(Vr.absolute),io,ga=>{if(ga){this[Yt](ga,Vr),xi();return}let Ya=1,Gc=()=>{--Ya===0&&(xi(),this[er](),Vr.resume())};Vr.mtime&&!this.noMtime&&(Ya++,f.default.utimes(String(Vr.absolute),Vr.atime||new Date,Vr.mtime,Gc)),this[qt](Vr)&&(Ya++,f.default.chown(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)),Gc)),Gc()})}[Me](Vr){Vr.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${Vr.type}`,{entry:Vr}),Vr.resume()}[k](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.relative(this.cwd,I.default.resolve(I.default.dirname(String(Vr.absolute)),String(Vr.linkpath)))).split("/");this[ct](Vr,this.cwd,io,()=>this[De](Vr,String(Vr.linkpath),"symlink",xi),ga=>{this[Yt](ga,Vr),xi()})}[et](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,String(Vr.linkpath))),ga=(0,E.normalizeWindowsPath)(String(Vr.linkpath)).split("/");this[ct](Vr,this.cwd,ga,()=>this[De](Vr,io,"link",xi),Ya=>{this[Yt](Ya,Vr),xi()})}[ct](Vr,xi,io,ga,Ya){let Gc=io.shift();if(this.preservePaths||Gc===void 0)return ga();let cl=I.default.resolve(xi,Gc);f.default.lstat(cl,(Sc,Hr)=>{if(Sc)return ga();if(Hr?.isSymbolicLink())return Ya(new X.SymlinkError(cl,I.default.resolve(cl,io.join("/"))));this[ct](Vr,cl,io,ga,Ya)})}[Nr](){this[Tr]++}[er](){this[Tr]--,this[xt]()}[Zr](Vr){this[er](),Vr.resume()}[ue](Vr,xi){return Vr.type==="File"&&!this.unlink&&xi.isFile()&&xi.nlink<=1&&!qr}[ce](Vr){this[Nr]();let xi=[Vr.path];Vr.linkpath&&xi.push(Vr.linkpath),this.reservations.reserve(xi,io=>this[fe](Vr,io))}[fe](Vr,xi){let io=cl=>{xi(cl)},ga=()=>{this[At](this.cwd,this.dmode,cl=>{if(cl){this[Yt](cl,Vr),io();return}this[cr]=!0,Ya()})},Ya=()=>{if(Vr.absolute!==this.cwd){let cl=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(cl!==this.cwd)return this[At](cl,this.dmode,Sc=>{if(Sc){this[Yt](Sc,Vr),io();return}Gc()})}Gc()},Gc=()=>{f.default.lstat(String(Vr.absolute),(cl,Sc)=>{if(Sc&&(this.keep||this.newer&&Sc.mtime>(Vr.mtime??Sc.mtime))){this[Zr](Vr),io();return}if(cl||this[ue](Vr,Sc))return this[de](null,Vr,io);if(Sc.isDirectory()){if(Vr.type==="Directory"){let Hr=this.chmod&&Vr.mode&&(Sc.mode&4095)!==Vr.mode,Wr=Ft=>this[de](Ft??null,Vr,io);return Hr?f.default.chmod(String(Vr.absolute),Number(Vr.mode),Wr):Wr()}if(Vr.absolute!==this.cwd)return f.default.rmdir(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))}if(Vr.absolute===this.cwd)return this[de](null,Vr,io);ke(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))})};this[cr]?Ya():ga()}[de](Vr,xi,io){if(Vr){this[Yt](Vr,xi),io();return}switch(xi.type){case"File":case"OldFile":case"ContiguousFile":return this[be](xi,io);case"Link":return this[et](xi,io);case"SymbolicLink":return this[k](xi,io);case"Directory":case"GNUDumpDir":return this[Se](xi,io)}}[De](Vr,xi,io,ga){f.default[io](xi,String(Vr.absolute),Ya=>{Ya?this[Yt](Ya,Vr):(this[er](),Vr.resume()),ga()})}};e.Unpack=Nn;var Hi=Vr=>{try{return[null,Vr()]}catch(xi){return[xi,null]}},po=class extends Nn{sync=!0;[de](Vr,xi){return super[de](Vr,xi,()=>{})}[ce](Vr){if(!this[cr]){let Ya=this[At](this.cwd,this.dmode);if(Ya)return this[Yt](Ya,Vr);this[cr]=!0}if(Vr.absolute!==this.cwd){let Ya=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(Ya!==this.cwd){let Gc=this[At](Ya,this.dmode);if(Gc)return this[Yt](Gc,Vr)}}let[xi,io]=Hi(()=>f.default.lstatSync(String(Vr.absolute)));if(io&&(this.keep||this.newer&&io.mtime>(Vr.mtime??io.mtime)))return this[Zr](Vr);if(xi||this[ue](Vr,io))return this[de](null,Vr);if(io.isDirectory()){if(Vr.type==="Directory"){let Gc=this.chmod&&Vr.mode&&(io.mode&4095)!==Vr.mode,[cl]=Gc?Hi(()=>{f.default.chmodSync(String(Vr.absolute),Number(Vr.mode))}):[];return this[de](cl,Vr)}let[Ya]=Hi(()=>f.default.rmdirSync(String(Vr.absolute)));this[de](Ya,Vr)}let[ga]=Vr.absolute===this.cwd?[]:Hi(()=>jt(String(Vr.absolute)));this[de](ga,Vr)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=cl=>{let Sc;try{f.default.closeSync(Ya)}catch(Hr){Sc=Hr}(cl||Sc)&&this[Yt](cl||Sc,Vr),xi()},Ya;try{Ya=f.default.openSync(String(Vr.absolute),(0,C.getWriteFlag)(Vr.size),io)}catch(cl){return ga(cl)}let Gc=this.transform&&this.transform(Vr)||Vr;Gc!==Vr&&(Gc.on("error",cl=>this[Yt](cl,Vr)),Vr.pipe(Gc)),Gc.on("data",cl=>{try{f.default.writeSync(Ya,cl,0,cl.length)}catch(Sc){ga(Sc)}}),Gc.on("end",()=>{let cl=null;if(Vr.mtime&&!this.noMtime){let Sc=Vr.atime||new Date,Hr=Vr.mtime;try{f.default.futimesSync(Ya,Sc,Hr)}catch(Wr){try{f.default.utimesSync(String(Vr.absolute),Sc,Hr)}catch{cl=Wr}}}if(this[qt](Vr)){let Sc=this[Xt](Vr),Hr=this[lr](Vr);try{f.default.fchownSync(Ya,Number(Sc),Number(Hr))}catch(Wr){try{f.default.chownSync(String(Vr.absolute),Number(Sc),Number(Hr))}catch{cl=cl||Wr}}}ga(cl)})}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode,ga=this[At](String(Vr.absolute),io);if(ga){this[Yt](ga,Vr),xi();return}if(Vr.mtime&&!this.noMtime)try{f.default.utimesSync(String(Vr.absolute),Vr.atime||new Date,Vr.mtime)}catch{}if(this[qt](Vr))try{f.default.chownSync(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)))}catch{}xi(),Vr.resume()}[At](Vr,xi){try{return(0,b.mkdirSync)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi})}catch(io){return io}}[ct](Vr,xi,io,ga,Ya){if(this.preservePaths||io.length===0)return ga();let Gc=xi;for(let cl of io){Gc=I.default.resolve(Gc,cl);let[Sc,Hr]=Hi(()=>f.default.lstatSync(Gc));if(Sc)return ga();if(Hr.isSymbolicLink())return Ya(new X.SymlinkError(Gc,I.default.resolve(xi,io.join("/"))))}ga()}[De](Vr,xi,io,ga){let Ya=`${io}Sync`;try{f.default[Ya](xi,String(Vr.absolute)),ga(),Vr.resume()}catch(Gc){return this[Yt](Gc,Vr)}}};e.UnpackSync=po}),aLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(E,N,B,F){F===void 0&&(F=B);var Q=Object.getOwnPropertyDescriptor(N,B);(!Q||("get"in Q?!N.__esModule:Q.writable||Q.configurable))&&(Q={enumerable:!0,get:function(){return N[B]}}),Object.defineProperty(E,F,Q)}:function(E,N,B,F){F===void 0&&(F=B),E[F]=N[B]}),r=e&&e.__setModuleDefault||(Object.create?function(E,N){Object.defineProperty(E,"default",{enumerable:!0,value:N})}:function(E,N){E.default=N}),n=e&&e.__importStar||function(){var E=function(N){return E=Object.getOwnPropertyNames||function(B){var F=[];for(var Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(F[F.length]=Q);return F},E(N)};return function(N){if(N&&N.__esModule)return N;var B={};if(N!=null)for(var F=E(N),Q=0;Q{let N=new I.UnpackSync(E),B=E.file,F=l.default.statSync(B),Q=E.maxReadSize||16*1024*1024;new o.ReadStreamSync(B,{readSize:Q,size:F.size}).pipe(N)},b=(E,N)=>{let B=new I.Unpack(E),F=E.maxReadSize||16*1024*1024,Q=E.file;return new Promise((X,ae)=>{B.on("error",ae),B.on("close",X),l.default.stat(Q,(ne,ce)=>{if(ne)ae(ne);else{let fe=new o.ReadStream(Q,{readSize:F,size:ce.size});fe.on("error",ae),fe.pipe(B)}})})};e.extract=(0,f.makeCommand)(C,b,E=>new I.UnpackSync(E),E=>new I.Unpack(E),(E,N)=>{N?.length&&(0,A.filesFilter)(E,N)})}),zAr=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.replace=void 0;var r=T5e(),n=t(wt("node:fs")),a=t(wt("node:path")),o=N5e(),l=k5e(),A=R5e(),f=YAr(),I=jAr(),C=(F,Q)=>{let X=new I.PackSync(F),ae=!0,ne,ce;try{try{ne=n.default.openSync(F.file,"r+")}catch(de){if(de?.code==="ENOENT")ne=n.default.openSync(F.file,"w+");else throw de}let fe=n.default.fstatSync(ne),ue=Buffer.alloc(512);e:for(ce=0;cefe.size)break;ce+=be,F.mtimeCache&&de.mtime&&F.mtimeCache.set(String(de.path),de.mtime)}ae=!1,b(F,X,ce,ne,Q)}finally{if(ae)try{n.default.closeSync(ne)}catch{}}},b=(F,Q,X,ae,ne)=>{let ce=new r.WriteStreamSync(F.file,{fd:ae,start:X});Q.pipe(ce),N(Q,ne)},E=(F,Q)=>{Q=Array.from(Q);let X=new I.Pack(F),ae=(ne,ce,fe)=>{let ue=(k,et)=>{k?n.default.close(ne,ct=>fe(k)):fe(null,et)},de=0;if(ce===0)return ue(null,0);let be=0,Se=Buffer.alloc(512),De=(k,et)=>{if(k||et===void 0)return ue(k);if(be+=et,be<512&&et)return n.default.read(ne,Se,be,Se.length-be,de+be,De);if(de===0&&Se[0]===31&&Se[1]===139)return ue(new Error("cannot append to compressed archives"));if(be<512)return ue(null,de);let ct=new o.Header(Se);if(!ct.cksumValid)return ue(null,de);let Me=512*Math.ceil((ct.size??0)/512);if(de+Me+512>ce||(de+=Me+512,de>=ce))return ue(null,de);F.mtimeCache&&ct.mtime&&F.mtimeCache.set(String(ct.path),ct.mtime),be=0,n.default.read(ne,Se,0,512,de,De)};n.default.read(ne,Se,0,512,de,De)};return new Promise((ne,ce)=>{X.on("error",ce);let fe="r+",ue=(de,be)=>{if(de&&de.code==="ENOENT"&&fe==="r+")return fe="w+",n.default.open(F.file,fe,ue);if(de||!be)return ce(de);n.default.fstat(be,(Se,De)=>{if(Se)return n.default.close(be,()=>ce(Se));ae(be,De.size,(k,et)=>{if(k)return ce(k);let ct=new r.WriteStream(F.file,{fd:be,start:et});X.pipe(ct),ct.on("error",ce),ct.on("close",ne),B(X,Q)})})};n.default.open(F.file,fe,ue)})},N=(F,Q)=>{Q.forEach(X=>{X.charAt(0)==="@"?(0,l.list)({file:a.default.resolve(F.cwd,X.slice(1)),sync:!0,noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X)}),F.end()},B=async(F,Q)=>{for(let X of Q)X.charAt(0)==="@"?await(0,l.list)({file:a.default.resolve(String(F.cwd),X.slice(1)),noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X);F.end()};e.replace=(0,A.makeCommand)(C,E,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(F,Q)=>{if(!(0,f.isFile)(F))throw new TypeError("file is required");if(F.gzip||F.brotli||F.zstd||F.file.endsWith(".br")||F.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!Q?.length)throw new TypeError("no paths specified to add/replace")})}),cLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.update=void 0;var t=R5e(),r=zAr();e.update=(0,t.makeCommand)(r.replace.syncFile,r.replace.asyncFile,r.replace.syncNoFile,r.replace.asyncNoFile,(a,o=[])=>{r.replace.validate?.(a,o),n(a)});var n=a=>{let o=a.filter;a.mtimeCache||(a.mtimeCache=new Map),a.filter=o?(l,A)=>o(l,A)&&!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0)):(l,A)=>!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0))}}),lLn=jC&&jC.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LOo=jC&&jC.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pM=jC&&jC.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lLn(t,e,r)},VOo=jC&&jC.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Rve,"__esModule",{value:!0});Rve.WorkerPool=Rve.AsyncPool=void 0;var YOo=(Pa(),vi(Va)),gLn=YOo.__importDefault(Dfe()),QOo=wt("worker_threads"),Doe=Symbol("kTaskInfo"),qAr=class{constructor(t,r){this.fn=t,this.limit=(0,gLn.default)(r.poolSize)}run(t){return this.limit(()=>this.fn(t))}};Rve.AsyncPool=qAr;var $Ar=class{constructor(t,r){this.source=t,this.workers=[],this.limit=(0,gLn.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let n=this.workers.pop();n?n.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let t=new QOo.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return t.on("message",r=>{if(!t[Doe])throw new Error("Assertion failed: Worker sent a result without having a task assigned");t[Doe].resolve(r),t[Doe]=null,t.unref(),this.workers.push(t)}),t.on("error",r=>{t[Doe]?.reject(r),t[Doe]=null}),t.on("exit",r=>{r!==0&&t[Doe]?.reject(new Error(`Worker exited with code ${r}`)),t[Doe]=null}),t}run(t){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((n,a)=>{r[Doe]={resolve:n,reject:a},r.postMessage(t)})})}};Rve.WorkerPool=$Ar});var pLn=H((t7l,dLn)=>{var edr;dLn.exports.getContent=()=>(typeof edr>"u"&&(edr=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),edr)});var yLn=H(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});koe.getDefaultTaskPool=mLn;koe.getTaskPoolForConfiguration=CLn;koe.convertToZipWorker=rdr;koe.makeArchiveFromDirectory=zOo;koe.convertToZip=qOo;koe.extractArchiveTo=_Ln;var fLn=(Pa(),vi(Va)),XOo=Bn(),rb=no(),bAt=zK(),JOo=wt("stream"),UOo=fLn.__importStar(uLn()),EAt=ALn(),ILn=fLn.__importStar(xW()),hLn=pLn();function KOo(e,t){switch(e){case"async":return new EAt.AsyncPool(rdr,{poolSize:t});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:t});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}}var tdr;function mLn(){return typeof tdr>"u"&&(tdr=KOo("workers",XOo.nodeUtils.availableParallelism())),tdr}var jOo=new WeakMap;function CLn(e){return typeof e>"u"?mLn():ILn.getFactoryWithDefault(jOo,e,()=>{let t=e.get("taskPoolMode"),r=e.get("taskPoolConcurrency");switch(t){case"async":return new EAt.AsyncPool(rdr,{poolSize:r});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}})}async function rdr(e){let{tmpFile:t,tgz:r,compressionLevel:n,extractBufferOpts:a}=e,o=new bAt.ZipFS(t,{create:!0,level:n,stats:rb.statUtils.makeDefaultStats()}),l=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await _Ln(l,o,a),o.saveAndClose(),t}async function zOo(e,{baseFs:t=new rb.NodeFS,prefixPath:r=rb.PortablePath.root,compressionLevel:n,inMemory:a=!1}={}){let o;if(a)o=new bAt.ZipFS(null,{level:n});else{let A=await rb.xfs.mktempPromise(),f=rb.ppath.join(A,"archive.zip");o=new bAt.ZipFS(f,{create:!0,level:n})}let l=rb.ppath.resolve(rb.PortablePath.root,r);return await o.copyPromise(l,e,{baseFs:t,stableTime:!0,stableSort:!0}),o}async function qOo(e,t={}){let r=await rb.xfs.mktempPromise(),n=rb.ppath.join(r,"archive.zip"),a=t.compressionLevel??t.configuration?.get("compressionLevel")??"mixed",o={prefixPath:t.prefixPath,stripComponents:t.stripComponents};return await(t.taskPool??CLn(t.configuration)).run({tmpFile:n,tgz:e,compressionLevel:a,extractBufferOpts:o}),new bAt.ZipFS(n,{level:t.compressionLevel})}async function*$Oo(e){let t=new UOo.Parser,r=new JOo.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});t.on("entry",n=>{r.write(n)}),t.on("error",n=>{r.destroy(n)}),t.on("close",()=>{r.destroyed||r.end()}),t.end(e);for await(let n of r){let a=n;yield a,a.resume()}}async function _Ln(e,t,{stripComponents:r=0,prefixPath:n=rb.PortablePath.dot}={}){function a(o){if(o.path[0]==="/")return!0;let l=o.path.split(/\//g);return!!(l.some(A=>A==="..")||l.length<=r)}for await(let o of $Oo(e)){if(a(o))continue;let l=rb.ppath.normalize(rb.npath.toPortablePath(o.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let A=l.slice(r).join("/"),f=rb.ppath.join(n,A),I=420;switch((o.type==="Directory"||(o.mode??0)&73)&&(I|=73),o.type){case"Directory":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.mkdirSync(f,{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"OldFile":case"File":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.writeFileSync(f,await ILn.bufferStream(o),{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"SymbolicLink":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.symlinkSync(o.linkpath,f),t.lutimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break}}return t}});var ELn=H((ndr,bLn)=>{(function(e,t){typeof ndr=="object"?bLn.exports=t():typeof define=="function"&&define.amd?define(t):e.treeify=t()})(ndr,function(){function e(a,o){var l=o?"\u2514":"\u251C";return a?l+="\u2500 ":l+="\u2500\u2500\u2510",l}function t(a,o){var l=[];for(var A in a)a.hasOwnProperty(A)&&(o&&typeof a[A]=="function"||l.push(A));return l}function r(a,o,l,A,f,I,C){var b="",E=0,N,B,F=A.slice(0);if(F.push([o,l])&&A.length>0&&(A.forEach(function(X,ae){ae>0&&(b+=(X[1]?" ":"\u2502")+" "),!B&&X[0]===o&&(B=!0)}),b+=e(a,l)+a,f&&(typeof o!="object"||o instanceof Date)&&(b+=": "+o),B&&(b+=" (circular ref.)"),C(b)),!B&&typeof o=="object"){var Q=t(o,I);Q.forEach(function(X){N=++E===Q.length,r(X,o[X],N,F,f,I,C)})}}var n={};return n.asLines=function(a,o,l,A){var f=typeof l!="function"?l:!1;r(".",a,!1,[],o,f,A||l)},n.asTree=function(a,o,l){var A="";return r(".",a,!1,[],o,l,function(f){A+=f+` `}),A},n})});var wLn=H(Nve=>{"use strict";Object.defineProperty(Nve,"__esModule",{value:!0});Nve.treeNodeToTreeify=SLn;Nve.treeNodeToJson=vLn;Nve.emitList=r3o;Nve.emitTree=BLn;var e3o=(Pa(),vi(Va)),t3o=ELn(),cIe=e3o.__importStar(rM());function SLn(e,{configuration:t}){let r={},n=0,a=(o,l)=>{let A=Array.isArray(o)?o.entries():Object.entries(o);for(let[f,I]of A){if(!I)continue;let{label:C,value:b,children:E}=I,N=[];typeof C<"u"&&N.push(cIe.applyStyle(t,C,cIe.Style.BOLD)),typeof b<"u"&&N.push(cIe.pretty(t,b[0],b[1])),N.length===0&&N.push(cIe.applyStyle(t,`${f}`,cIe.Style.BOLD));let B=N.join(": ").trim(),F=`\0${n++}\0`,Q=l[`${F}${B}`]={};typeof E<"u"&&a(E,Q)}};if(typeof e.children>"u")throw new Error("The root node must only contain children");return a(e.children,r),r}function vLn(e){let t=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return cIe.json(r.value[0],r.value[1])}let n=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[o,l]of n)l&&(a[n3o(o)]=t(l));return typeof r.value>"u"?a:{value:cIe.json(r.value[0],r.value[1]),children:a}};return t(e)}function r3o(e,{configuration:t,stdout:r,json:n}){let a=e.map(o=>({value:o}));BLn({children:a},{configuration:t,stdout:r,json:n})}function BLn(e,{configuration:t,stdout:r,json:n,separators:a=0}){if(n){let l=Array.isArray(e.children)?e.children.values():Object.values(e.children??{});for(let A of l)A&&r.write(`${JSON.stringify(vLn(A))} `);return}let o=(0,t3o.asTree)(SLn(e,{configuration:t}),!1,!1);if(o=o.replace(/\0[0-9]+\0/g,""),a>=1&&(o=o.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),a>=2)for(let l=0;l<2;++l)o=o.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 @@ -255,8 +255,8 @@ ${[b,E,N].join(` `,`# Manual changes might be lost - proceed with caution! `].join("")} `+(0,B9n.stringifySyml)(r)}async persistLockfile(){let t=Xf.ppath.join(this.cwd,Xf.Filename.lockfile),r="";try{r=await Xf.xfs.readFilePromise(t,"utf8")}catch{}let n=this.generateLockfile(),a=(0,Xf.normalizeLineEndings)(r,n);a!==r&&(await Xf.xfs.writeFilePromise(t,a),this.lockFileChecksum=F9n(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let t=[];for(let l of Object.values(Hdr))t.push(...l);let r=(0,Odr.pick)(this,t),n=T9n.default.serialize(r),a=r8.makeHash(n);if(this.installStateChecksum===a)return;let o=this.configuration.get("installStatePath");await Xf.xfs.mkdirPromise(Xf.ppath.dirname(o),{recursive:!0}),await Xf.xfs.writeFilePromise(o,await O5o(n)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:t=!0,restoreResolutions:r=!0,restoreBuildState:n=!0}={}){let a=this.configuration.get("installStatePath"),o;try{let l=await M5o(await Xf.xfs.readFilePromise(a));o=T9n.default.deserialize(l),this.installStateChecksum=r8.makeHash(l)}catch{r&&await this.applyLightResolution();return}t&&typeof o.linkersCustomData<"u"&&(this.linkersCustomData=o.linkersCustomData),n&&Object.assign(this,(0,Odr.pick)(o,Hdr.restoreBuildState)),r&&(o.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Odr.pick)(o,Hdr.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new k9n.ThrowReport}),await this.persistInstallStateFile()}async persist(){let t=(0,Mdr.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>t(()=>r.persistManifest()))])}async cacheCleanup({cache:t,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let n=new Set([".gitignore"]);if(!(0,F5o.isFolderInside)(t.cwd,this.cwd)||!await Xf.xfs.existsPromise(t.cwd))return null;let a=[];for(let l of await Xf.xfs.readdirPromise(t.cwd)){if(n.has(l))continue;let A=Xf.ppath.resolve(t.cwd,l);t.markedFiles.has(A)||(t.immutable?r.reportError(Jb.MessageName.IMMUTABLE_CACHE,`${qp.pretty(this.configuration,Xf.ppath.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(Xf.xfs.lstatPromise(A).then(async f=>(await Xf.xfs.removePromise(A),f.size))))}if(a.length===0)return null;let o=await Promise.all(a);return{count:a.length,size:o.reduce((l,A)=>l+A,0)}}};fM.Project=Ydr;function H5o({project:e,allDescriptors:t,allResolutions:r,allPackages:n,accessibleLocators:a=new Set,optionalBuilds:o=new Set,peerRequirements:l=new Map,peerWarnings:A=[],peerRequirementNodes:f=new Map,volatileDescriptors:I=new Set}){let C=new Map,b=[],E=new Map,N=new Map,B=new Map,F=new Map,Q=new Map,X=new Map(e.workspaces.map(ue=>{let de=ue.anchoredLocator.locatorHash,be=n.get(de);if(typeof be>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[de,ng.copyPackage(be)]})),ae=()=>{let ue=Xf.xfs.mktempSync(),de=Xf.ppath.join(ue,"stacktrace.log"),be=String(b.length+1).length,Se=b.map((De,k)=>`${`${k+1}.`.padStart(be," ")} ${ng.stringifyLocator(De)} -`).join("");throw Xf.xfs.writeFileSync(de,Se),Xf.xfs.detachTemp(ue),new Goe.ReportError(Jb.MessageName.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${QAt.npath.fromPortablePath(de)}`)},ne=ue=>{let de=r.get(ue.descriptorHash);if(typeof de>"u")throw new Error("Assertion failed: The resolution should have been registered");let be=n.get(de);if(!be)throw new Error("Assertion failed: The package could not be found");return be},ce=(ue,de,be,{top:Se,optional:De})=>{b.length>1e3&&ae(),b.push(de);let k=fe(ue,de,be,{top:Se,optional:De});return b.pop(),k},fe=(ue,de,be,{top:Se,optional:De})=>{if(De||o.delete(de.locatorHash),a.has(de.locatorHash))return;a.add(de.locatorHash);let k=n.get(de.locatorHash);if(!k)throw new Error(`Assertion failed: The package (${ng.prettyLocator(e.configuration,de)}) should have been registered`);let et=new Set,ct=new Map,Me=[],je=[],St=[],At=[];for(let Yt of Array.from(k.dependencies.values())){if(k.peerDependencies.has(Yt.identHash)&&k.locatorHash!==Se)continue;if(ng.isVirtualDescriptor(Yt))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");I.delete(Yt.descriptorHash);let Tr=De;if(!Tr){let Xt=k.dependenciesMeta.get(ng.stringifyIdent(Yt));if(typeof Xt<"u"){let lr=Xt.get(null);typeof lr<"u"&&lr.optional&&(Tr=!0)}}let Nr=r.get(Yt.descriptorHash);if(!Nr)throw new Error(`Assertion failed: The resolution (${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);let er=X.get(Nr)||n.get(Nr);if(!er)throw new Error(`Assertion failed: The package (${Nr}, resolved from ${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);if(er.peerDependencies.size===0){ce(Yt,er,new Map,{top:Se,optional:Tr});continue}let vt,xt,Zr=new Set,qt=new Map;Me.push(()=>{vt=ng.virtualizeDescriptor(Yt,de.locatorHash),xt=ng.virtualizePackage(er,de.locatorHash),k.dependencies.set(Yt.identHash,vt),r.set(vt.descriptorHash,xt.locatorHash),t.set(vt.descriptorHash,vt),n.set(xt.locatorHash,xt),m_.getSetWithDefault(F,xt.locatorHash).add(vt.descriptorHash),et.add(xt.locatorHash)}),je.push(()=>{Q.set(xt.locatorHash,qt);for(let Xt of xt.peerDependencies.values()){let cr=m_.getFactoryWithDefault(ct,Xt.identHash,()=>{let Ar=be.get(Xt.identHash)??null,qr=k.dependencies.get(Xt.identHash);return!qr&&ng.areIdentsEqual(de,Xt)&&(ue.identHash===de.identHash?qr=ue:(qr=ng.makeDescriptor(de,ue.range),t.set(qr.descriptorHash,qr),r.set(qr.descriptorHash,de.locatorHash),I.delete(qr.descriptorHash),Ar=null)),qr||(qr=ng.makeDescriptor(Xt,"missing:")),{subject:de,ident:Xt,provided:qr,root:!Ar,requests:new Map,hash:`p${r8.makeHash(de.locatorHash,Xt.identHash).slice(0,6)}`}}).provided;if(cr.range==="missing:"&&xt.dependencies.has(Xt.identHash)){xt.peerDependencies.delete(Xt.identHash);continue}if(qt.set(Xt.identHash,{requester:xt,descriptor:Xt,meta:xt.peerDependenciesMeta.get(ng.stringifyIdent(Xt)),children:new Map}),xt.dependencies.set(Xt.identHash,cr),ng.isVirtualDescriptor(cr)){let Ar=r.get(cr.descriptorHash);m_.getSetWithDefault(B,Ar).add(xt.locatorHash)}E.set(cr.identHash,cr),cr.range==="missing:"&&Zr.add(cr.identHash)}xt.dependencies=new Map(m_.sortMap(xt.dependencies,([Xt,lr])=>ng.stringifyIdent(lr)))}),St.push(()=>{if(!n.has(xt.locatorHash))return;let Xt=C.get(er.locatorHash);typeof Xt=="number"&&Xt>=2&&ae();let lr=C.get(er.locatorHash),cr=typeof lr<"u"?lr+1:1;C.set(er.locatorHash,cr),ce(vt,xt,qt,{top:Se,optional:Tr}),C.set(er.locatorHash,cr-1)}),At.push(()=>{let Xt=r.get(vt.descriptorHash);if(typeof Xt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let lr=Q.get(Xt);if(typeof lr>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let cr of ct.values()){let Ar=lr.get(cr.ident.identHash);Ar&&(cr.requests.set(vt.descriptorHash,Ar),f.set(cr.hash,cr),cr.root||be.get(cr.ident.identHash)?.children.set(vt.descriptorHash,Ar))}if(n.has(xt.locatorHash))for(let cr of Zr)xt.dependencies.delete(cr)})}for(let Yt of[...Me,...je])Yt();for(let Yt of et){et.delete(Yt);let Tr=n.get(Yt),Nr=r8.makeHash(ng.devirtualizeLocator(Tr).locatorHash,...Array.from(Tr.dependencies.values(),Zr=>{let qt=Zr.range!=="missing:"?r.get(Zr.descriptorHash):"missing:";if(typeof qt>"u")throw new Error(`Assertion failed: Expected the resolution for ${ng.prettyDescriptor(e.configuration,Zr)} to have been registered`);return qt===Se?`${qt} (top)`:qt})),er=N.get(Nr);if(typeof er>"u"){N.set(Nr,Tr);continue}let vt=m_.getSetWithDefault(F,er.locatorHash);for(let Zr of F.get(Tr.locatorHash)??[])r.set(Zr,er.locatorHash),vt.add(Zr);n.delete(Tr.locatorHash),a.delete(Tr.locatorHash),et.delete(Tr.locatorHash);let xt=B.get(Tr.locatorHash);if(xt!==void 0){let Zr=m_.getSetWithDefault(B,er.locatorHash);for(let qt of xt)Zr.add(qt),et.add(qt)}}for(let Yt of[...St,...At])Yt()};for(let ue of e.workspaces){let de=ue.anchoredLocator;I.delete(ue.anchoredDescriptor.descriptorHash),ce(ue.anchoredDescriptor,de,new Map,{top:de.locatorHash,optional:!1})}for(let ue of f.values()){if(!ue.root)continue;let de=n.get(ue.subject.locatorHash);if(typeof de>"u")continue;for(let Se of ue.requests.values()){let De=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),Se.requester.locatorHash).slice(0,6)}`;l.set(De,{subject:ue.subject.locatorHash,requested:ue.ident,rootRequester:Se.requester.locatorHash,allRequesters:Array.from(ng.allPeerRequests(Se),k=>k.requester.locatorHash)})}let be=[...ng.allPeerRequests(ue)];if(ue.provided.range!=="missing:"){let Se=ne(ue.provided),De=Se.version??"0.0.0",k=ct=>{if(ct.startsWith(XAt.WorkspaceResolver.protocol)){if(!e.tryWorkspaceByLocator(Se))return null;ct=ct.slice(XAt.WorkspaceResolver.protocol.length),(ct==="^"||ct==="~")&&(ct="*")}return ct},et=!0;for(let ct of be){let Me=k(ct.descriptor.range);if(Me===null){et=!1;continue}if(!JAt.satisfiesWithPrereleases(De,Me)){et=!1;let je=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),ct.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotCompatible,subject:de,requested:ue.ident,requester:ct.requester,version:De,hash:je,requirementCount:be.length})}}if(!et){let ct=be.map(Me=>k(Me.descriptor.range));A.push({type:n8.NodeNotCompatible,node:ue,range:ct.includes(null)?null:JAt.simplifyRanges(ct),hash:ue.hash})}}else{let Se=!0;for(let De of be)if(!De.meta?.optional){Se=!1;let k=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),De.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotProvided,subject:de,requested:ue.ident,requester:De.requester,hash:k})}Se||A.push({type:n8.NodeNotProvided,node:ue,hash:ue.hash})}}}function*Y5o(e){let t=new Map;if("children"in e)t.set(e,e);else for(let r of e.requests.values())t.set(r,r);for(let[r,n]of t){yield{request:r,root:n};for(let a of r.children.values())t.has(a)||t.set(a,n)}}function Q5o(e,t){let r=[],n=[],a=!1;for(let o of e.peerWarnings)if(!(o.type===n8.NotCompatible||o.type===n8.NotProvided)){if(!e.tryWorkspaceByLocator(o.node.subject)){a=!0;continue}if(o.type===n8.NodeNotCompatible){let l=e.storedResolutions.get(o.node.provided.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=e.storedPackages.get(l);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let f=m_.mapAndFind(Y5o(o.node),({request:b,root:E})=>JAt.satisfiesWithPrereleases(A.version??"0.0.0",b.descriptor.range)?m_.mapAndFind.skip:b===E?ng.prettyIdent(e.configuration,b.requester):`${ng.prettyIdent(e.configuration,b.requester)} (via ${ng.prettyIdent(e.configuration,E.requester)})`),I=[...ng.allPeerRequests(o.node)].length>1?"and other dependencies request":"requests",C=o.range?ng.prettyRange(e.configuration,o.range):qp.pretty(e.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${ng.prettyIdent(e.configuration,o.node.ident)} is listed by your project with version ${ng.prettyReference(e.configuration,A.version??"0.0.0")} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), which doesn't satisfy what ${f} ${I} (${C}).`)}if(o.type===n8.NodeNotProvided){let l=o.node.requests.size>1?" and other dependencies":"";n.push(`${ng.prettyLocator(e.configuration,o.node.subject)} doesn't provide ${ng.prettyIdent(e.configuration,o.node.ident)} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), requested by ${ng.prettyIdent(e.configuration,o.node.requests.values().next().value.requester)}${l}.`)}}t.startSectionSync({reportFooter:()=>{t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by your project; run ${qp.pretty(e.configuration,"yarn explain peer-requirements ",qp.Type.CODE)} for details, where ${qp.pretty(e.configuration,"",qp.Type.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let o of m_.sortMap(r,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.INCOMPATIBLE_PEER_DEPENDENCY,o);for(let o of m_.sortMap(n,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.MISSING_PEER_DEPENDENCY,o)}),a&&t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by dependencies; run ${qp.pretty(e.configuration,"yarn explain peer-requirements",qp.Type.CODE)} for details.`)}});var O9n=H(AIe=>{"use strict";Object.defineProperty(AIe,"__esModule",{value:!0});AIe.TelemetryManager=AIe.MetricName=void 0;AIe.derive=W9n;var KAt=(Pa(),vi(Va)),i8=no(),P9n=S5e(),X5o=KAt.__importStar(moe()),J5o=KAt.__importStar(Qgt()),UAt=KAt.__importStar(xW()),U5o=KAt.__importStar(n$()),s8;(function(e){e.VERSION="version",e.COMMAND_NAME="commandName",e.PLUGIN_NAME="pluginName",e.INSTALL_COUNT="installCount",e.PROJECT_COUNT="projectCount",e.WORKSPACE_COUNT="workspaceCount",e.DEPENDENCY_COUNT="dependencyCount",e.EXTENSION="packageExtension"})(s8||(AIe.MetricName=s8={}));function W9n(e){let n=Math.floor(e.timeNow/864e5),a=e.updateInterval*864e5,o=e.state.lastUpdate??e.timeNow+a+Math.floor(a*e.randomInitialInterval),l=o+a,A=e.state.lastTips??n*864e5,f=A+864e5+8*36e5-e.timeZone,I=l<=e.timeNow,C=f<=e.timeNow,b=null;return(I||C||!e.state.lastUpdate||!e.state.lastTips)&&(b={},b.lastUpdate=I?e.timeNow:o,b.lastTips=A,b.blocks=I?{}:e.state.blocks,b.displayedTips=e.state.displayedTips),{nextState:b,triggerUpdate:I,triggerTips:C,nextTips:C?n*864e5:A}}var Qdr=class{constructor(t,r){this.values=new Map,this.hits=new Map,this.enumerators=new Map,this.nextTips=0,this.displayedTips=[],this.shouldCommitTips=!1,this.configuration=t;let n=this.getRegistryPath();this.isNew=!i8.xfs.existsSync(n),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(t){let r=new Set(this.displayedTips),n=A=>A&&P9n.YarnVersion?U5o.satisfiesWithPrereleases(P9n.YarnVersion,A):!1,a=t.map((A,f)=>f).filter(A=>t[A]&&n(t[A]?.selector));if(a.length===0)return null;let o=a.filter(A=>!r.has(A));if(o.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],o=a.filter(f=>!r.has(f))}let l=o[Math.floor(Math.random()*o.length)];return this.displayedTips.push(l),this.commitTips(),t[l]}reportVersion(t){this.reportValue(s8.VERSION,t.replace(/-git\..*/,"-git"))}reportCommandName(t){this.reportValue(s8.COMMAND_NAME,t||"")}reportPluginName(t){this.reportValue(s8.PLUGIN_NAME,t)}reportProject(t){this.reportEnumerator(s8.PROJECT_COUNT,t)}reportInstall(t){this.reportHit(s8.INSTALL_COUNT,t)}reportPackageExtension(t){this.reportValue(s8.EXTENSION,t)}reportWorkspaceCount(t){this.reportValue(s8.WORKSPACE_COUNT,String(t))}reportDependencyCount(t){this.reportValue(s8.DEPENDENCY_COUNT,String(t))}reportValue(t,r){UAt.getSetWithDefault(this.values,t).add(r)}reportEnumerator(t,r){UAt.getSetWithDefault(this.enumerators,t).add(X5o.makeHash(r))}reportHit(t,r="*"){let n=UAt.getMapWithDefault(this.hits,t),a=UAt.getFactoryWithDefault(n,r,()=>0);n.set(r,a+1)}getRegistryPath(){let t=this.configuration.get("globalFolder");return i8.ppath.join(t,"telemetry.json")}sendReport(t){let r=this.getRegistryPath(),n;try{n=i8.xfs.readJsonSync(r)}catch{n={}}let{nextState:a,triggerUpdate:o,triggerTips:l,nextTips:A}=W9n({state:n,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=n.displayedTips??[],a!==null)try{i8.xfs.mkdirSync(i8.ppath.dirname(r),{recursive:!0}),i8.xfs.writeJsonSync(r,a)}catch{return!1}if(l&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),o){let f=n.blocks??{};if(Object.keys(f).length===0){let I=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${t}?ddsource=yarn`,C=b=>J5o.post(I,b,{configuration:this.configuration}).catch(()=>{});for(let[b,E]of Object.entries(n.blocks??{})){if(Object.keys(E).length===0)continue;let N=E;N.userId=b,N.reportType="primary";for(let Q of Object.keys(N.enumerators??{}))N.enumerators[Q]=N.enumerators[Q].length;C(N);let B=new Map,F=20;for(let[Q,X]of Object.entries(N.values))X.length>0&&B.set(Q,X.slice(0,F));for(;B.size>0;){let Q={};Q.userId=b,Q.reportType="secondary",Q.metrics={};for(let[X,ae]of B)Q.metrics[X]=ae.shift(),ae.length===0&&B.delete(X);C(Q)}}}}return!0}applyChanges(){let t=this.getRegistryPath(),r;try{r=i8.xfs.readJsonSync(t)}catch{r={}}let n=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},o=a[n]=a[n]??{};for(let l of this.hits.keys()){let A=o.hits=o.hits??{},f=A[l]=A[l]??{};for(let[I,C]of this.hits.get(l))f[I]=(f[I]??0)+C}for(let l of["values","enumerators"])for(let A of this[l].keys()){let f=o[l]=o[l]??{};f[A]=[...new Set([...f[A]??[],...this[l].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),i8.xfs.mkdirSync(i8.ppath.dirname(t),{recursive:!0}),i8.xfs.writeJsonSync(t,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};AIe.TelemetryManager=Qdr});var Bn=H(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.treeUtils=Rl.tgzUtils=Rl.structUtils=Rl.semverUtils=Rl.scriptUtils=Rl.nodeUtils=Rl.miscUtils=Rl.formatUtils=Rl.folderUtils=Rl.execUtils=Rl.httpUtils=Rl.hashUtils=Rl.PackageExtensionStatus=Rl.PackageExtensionType=Rl.LinkType=Rl.YarnVersion=Rl.Workspace=Rl.WorkspaceResolver=Rl.WorkspaceFetcher=Rl.VirtualFetcher=Rl.ThrowReport=Rl.TelemetryManager=Rl.reportOptionDeprecations=Rl.StreamReport=Rl.Report=Rl.ReportError=Rl.InstallMode=Rl.Project=Rl.PeerWarningType=Rl.LOCKFILE_VERSION=Rl.MultiFetcher=Rl.stringifyMessageName=Rl.parseMessageName=Rl.MessageName=Rl.Manifest=Rl.LockfileResolver=Rl.LightReport=Rl.LegacyMigrationResolver=Rl.BuildDirectiveType=Rl.WindowsLinkType=Rl.DurationUnit=Rl.SettingsType=Rl.FormatType=Rl.Configuration=Rl.TAG_REGEXP=Rl.LEGACY_PLUGINS=Rl.DEFAULT_RC_FILENAME=Rl.Cache=Rl.CACHE_CHECKPOINT=Rl.CACHE_VERSION=void 0;var IM=(Pa(),vi(Va)),K5o=IM.__importStar(Jgt());Rl.execUtils=K5o;var j5o=IM.__importStar(Agt());Rl.folderUtils=j5o;var z5o=IM.__importStar(rM());Rl.formatUtils=z5o;var q5o=IM.__importStar(moe());Rl.hashUtils=q5o;var $5o=IM.__importStar(Qgt());Rl.httpUtils=$5o;var eMo=IM.__importStar(xW());Rl.miscUtils=eMo;var tMo=IM.__importStar(Xgt());Rl.nodeUtils=tMo;var rMo=IM.__importStar(HAr());Rl.scriptUtils=rMo;var nMo=IM.__importStar(n$());Rl.semverUtils=nMo;var iMo=IM.__importStar(uG());Rl.structUtils=iMo;var sMo=IM.__importStar(yLn());Rl.tgzUtils=sMo;var oMo=IM.__importStar(wLn());Rl.treeUtils=oMo;var Xdr=adr();Object.defineProperty(Rl,"CACHE_VERSION",{enumerable:!0,get:function(){return Xdr.CACHE_VERSION}});Object.defineProperty(Rl,"CACHE_CHECKPOINT",{enumerable:!0,get:function(){return Xdr.CACHE_CHECKPOINT}});Object.defineProperty(Rl,"Cache",{enumerable:!0,get:function(){return Xdr.Cache}});var Jdr=I5e();Object.defineProperty(Rl,"DEFAULT_RC_FILENAME",{enumerable:!0,get:function(){return Jdr.DEFAULT_RC_FILENAME}});Object.defineProperty(Rl,"LEGACY_PLUGINS",{enumerable:!0,get:function(){return Jdr.LEGACY_PLUGINS}});Object.defineProperty(Rl,"TAG_REGEXP",{enumerable:!0,get:function(){return Jdr.TAG_REGEXP}});var K5e=I5e();Object.defineProperty(Rl,"Configuration",{enumerable:!0,get:function(){return K5e.Configuration}});Object.defineProperty(Rl,"FormatType",{enumerable:!0,get:function(){return K5e.FormatType}});Object.defineProperty(Rl,"SettingsType",{enumerable:!0,get:function(){return K5e.SettingsType}});Object.defineProperty(Rl,"DurationUnit",{enumerable:!0,get:function(){return K5e.DurationUnit}});Object.defineProperty(Rl,"WindowsLinkType",{enumerable:!0,get:function(){return K5e.WindowsLinkType}});var aMo=cdr();Object.defineProperty(Rl,"BuildDirectiveType",{enumerable:!0,get:function(){return aMo.BuildDirectiveType}});var cMo=udr();Object.defineProperty(Rl,"LegacyMigrationResolver",{enumerable:!0,get:function(){return cMo.LegacyMigrationResolver}});var lMo=ZLn();Object.defineProperty(Rl,"LightReport",{enumerable:!0,get:function(){return lMo.LightReport}});var uMo=ddr();Object.defineProperty(Rl,"LockfileResolver",{enumerable:!0,get:function(){return uMo.LockfileResolver}});var gMo=uve();Object.defineProperty(Rl,"Manifest",{enumerable:!0,get:function(){return gMo.Manifest}});var Udr=M9();Object.defineProperty(Rl,"MessageName",{enumerable:!0,get:function(){return Udr.MessageName}});Object.defineProperty(Rl,"parseMessageName",{enumerable:!0,get:function(){return Udr.parseMessageName}});Object.defineProperty(Rl,"stringifyMessageName",{enumerable:!0,get:function(){return Udr.stringifyMessageName}});var AMo=Cur();Object.defineProperty(Rl,"MultiFetcher",{enumerable:!0,get:function(){return AMo.MultiFetcher}});var jAt=V9n();Object.defineProperty(Rl,"LOCKFILE_VERSION",{enumerable:!0,get:function(){return jAt.LOCKFILE_VERSION}});Object.defineProperty(Rl,"PeerWarningType",{enumerable:!0,get:function(){return jAt.PeerWarningType}});Object.defineProperty(Rl,"Project",{enumerable:!0,get:function(){return jAt.Project}});Object.defineProperty(Rl,"InstallMode",{enumerable:!0,get:function(){return jAt.InstallMode}});var M9n=sM();Object.defineProperty(Rl,"ReportError",{enumerable:!0,get:function(){return M9n.ReportError}});Object.defineProperty(Rl,"Report",{enumerable:!0,get:function(){return M9n.Report}});var H9n=v5e();Object.defineProperty(Rl,"StreamReport",{enumerable:!0,get:function(){return H9n.StreamReport}});Object.defineProperty(Rl,"reportOptionDeprecations",{enumerable:!0,get:function(){return H9n.reportOptionDeprecations}});var dMo=O9n();Object.defineProperty(Rl,"TelemetryManager",{enumerable:!0,get:function(){return dMo.TelemetryManager}});var pMo=Ldr();Object.defineProperty(Rl,"ThrowReport",{enumerable:!0,get:function(){return pMo.ThrowReport}});var fMo=vur();Object.defineProperty(Rl,"VirtualFetcher",{enumerable:!0,get:function(){return fMo.VirtualFetcher}});var IMo=wur();Object.defineProperty(Rl,"WorkspaceFetcher",{enumerable:!0,get:function(){return IMo.WorkspaceFetcher}});var hMo=Kfe();Object.defineProperty(Rl,"WorkspaceResolver",{enumerable:!0,get:function(){return hMo.WorkspaceResolver}});var mMo=Pdr();Object.defineProperty(Rl,"Workspace",{enumerable:!0,get:function(){return mMo.Workspace}});var CMo=S5e();Object.defineProperty(Rl,"YarnVersion",{enumerable:!0,get:function(){return CMo.YarnVersion}});var Kdr=Qfe();Object.defineProperty(Rl,"LinkType",{enumerable:!0,get:function(){return Kdr.LinkType}});Object.defineProperty(Rl,"PackageExtensionType",{enumerable:!0,get:function(){return Kdr.PackageExtensionType}});Object.defineProperty(Rl,"PackageExtensionStatus",{enumerable:!0,get:function(){return Kdr.PackageExtensionStatus}})});var zdr=H(zAt=>{"use strict";Object.defineProperty(zAt,"__esModule",{value:!0});zAt.WorkspaceRequiredError=void 0;var _Mo=Bn(),Y9n=no(),yMo=($c(),vi(rg)),jdr=class extends yMo.UsageError{constructor(t,r){let n=Y9n.ppath.relative(t,r),a=Y9n.ppath.join(t,_Mo.Manifest.fileName);super(`This command can only be run from within a workspace of your project (${n} isn't a workspace of ${a}).`)}};zAt.WorkspaceRequiredError=jdr});var qdr=H(qAt=>{"use strict";Object.defineProperty(qAt,"__esModule",{value:!0});qAt.getDynamicLibs=void 0;var d$=(Pa(),vi(Va)),bMo=d$.__importStar(el()),EMo=d$.__importStar(Bn()),SMo=d$.__importStar(no()),vMo=d$.__importStar(zK()),BMo=d$.__importStar(TW()),wMo=d$.__importStar(_5e()),TMo=d$.__importStar(($c(),vi(rg))),RMo=d$.__importStar(UC()),NMo=d$.__importStar((CZ(),vi(mZ))),DMo=()=>new Map([["@yarnpkg/cli",bMo],["@yarnpkg/core",EMo],["@yarnpkg/fslib",SMo],["@yarnpkg/libzip",vMo],["@yarnpkg/parsers",BMo],["@yarnpkg/shell",wMo],["clipanion",TMo],["semver",RMo],["typanion",NMo]]);qAt.getDynamicLibs=DMo});var $dr=H((Z7l,kMo)=>{kMo.exports={name:"@yarnpkg/cli",version:"4.14.1",license:"BSD-2-Clause",main:"./lib/index.js",exports:{".":"./lib/index.js","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"^4.7.0","@yarnpkg/fslib":"^3.1.5","@yarnpkg/libzip":"^3.2.2","@yarnpkg/parsers":"^3.0.3","@yarnpkg/plugin-catalog":"^1.0.2","@yarnpkg/plugin-compat":"^4.0.12","@yarnpkg/plugin-constraints":"^4.0.5","@yarnpkg/plugin-dlx":"^4.0.2","@yarnpkg/plugin-essentials":"^4.5.0","@yarnpkg/plugin-exec":"^3.1.0","@yarnpkg/plugin-file":"^3.0.2","@yarnpkg/plugin-git":"^3.2.0","@yarnpkg/plugin-github":"^3.0.2","@yarnpkg/plugin-http":"^3.0.3","@yarnpkg/plugin-init":"^4.1.2","@yarnpkg/plugin-interactive-tools":"^4.1.0","@yarnpkg/plugin-jsr":"^1.1.1","@yarnpkg/plugin-link":"^3.0.2","@yarnpkg/plugin-nm":"^4.0.8","@yarnpkg/plugin-npm":"^3.5.0","@yarnpkg/plugin-npm-cli":"^4.4.1","@yarnpkg/plugin-pack":"^4.0.4","@yarnpkg/plugin-patch":"^4.0.3","@yarnpkg/plugin-pnp":"^4.1.5","@yarnpkg/plugin-pnpm":"^2.1.2","@yarnpkg/plugin-stage":"^4.0.2","@yarnpkg/plugin-typescript":"^4.1.3","@yarnpkg/plugin-version":"^4.2.0","@yarnpkg/plugin-workspace-tools":"^4.1.7","@yarnpkg/shell":"^4.1.3","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"^4.2.3","@yarnpkg/monorepo":"^0.0.0","@yarnpkg/pnpify":"^4.1.6"},peerDependencies:{"@yarnpkg/core":"^4.7.0"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var tpr=H(epr=>{"use strict";Object.defineProperty(epr,"__esModule",{value:!0});epr.getPluginConfiguration=ZMo;var xMo=(Pa(),vi(Va)),GMo=xMo.__importDefault($dr()),FMo=qdr();function ZMo(){let e=new Set;for(let r of GMo.default["@yarnpkg/builder"].bundles.standard)e.add(r);let t=(0,FMo.getDynamicLibs)();for(let r of e)t.set(r,wt(r).default);return{plugins:e,modules:t}}});var Q9n=H(rpr=>{"use strict";Object.defineProperty(rpr,"__esModule",{value:!0});rpr.openWorkspace=PMo;var LMo=Bn(),VMo=zdr();async function PMo(e,t){let{project:r,workspace:n}=await LMo.Project.find(e,t);if(!n)throw new VMo.WorkspaceRequiredError(r.cwd,t);return n}});var npr=H($At=>{"use strict";Object.defineProperty($At,"__esModule",{value:!0});$At.pluginCommands=void 0;$At.pluginCommands=new Map([])});var K9n=H(edt=>{"use strict";Object.defineProperty(edt,"__esModule",{value:!0});edt.getCli=KMo;edt.runExit=jMo;var p$=Bn(),IX=no(),WMo=wt("child_process"),OMo=Nfe(),Lve=($c(),vi(rg)),MMo=npr(),HMo=tpr();function X9n({cwd:e,pluginConfiguration:t}){let r=new Lve.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:p$.YarnVersion??""});return Object.assign(r,{defaultContext:{...Lve.Cli.defaultContext,cwd:e,plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function YMo(e){if(p$.miscUtils.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,n=">=18.12.0";if(p$.semverUtils.satisfiesWithPrereleases(r,n))return!0;let a=new Lve.UsageError(`This tool requires a Node version compatible with ${n} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Lve.Cli.defaultContext.stdout.write(e.error(a)),!1}async function J9n({selfPath:e,pluginConfiguration:t}){return await p$.Configuration.find(IX.npath.toPortablePath(process.cwd()),t,{strict:!1,usePathCheck:e})}function QMo(e,t,{yarnPath:r}){if(!IX.xfs.existsSync(r))return e.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let n={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,WMo.execFileSync)(process.execPath,[IX.npath.fromPortablePath(r),...t],n)}catch(a){return a.status??1}return 0}function XMo(e,t){let r=null,n=t;return t.length>=2&&t[0]==="--cwd"?(r=IX.npath.toPortablePath(t[1]),n=t.slice(2)):t.length>=1&&t[0].startsWith("--cwd=")?(r=IX.npath.toPortablePath(t[0].slice(6)),n=t.slice(1)):t[0]==="add"&&t[t.length-2]==="--cwd"&&(r=IX.npath.toPortablePath(t[t.length-1]),n=t.slice(0,t.length-2)),e.defaultContext.cwd=r!==null?IX.ppath.resolve(r):IX.ppath.cwd(),n}function JMo(e,{configuration:t}){if(!t.get("enableTelemetry")||OMo.isCI||!process.stdout.isTTY)return;p$.Configuration.telemetry=new p$.TelemetryManager(t,"puba9cdc10ec5790a2cf4969dd413a47270");let n=/^@yarnpkg\/plugin-(.*)$/;for(let a of t.plugins.keys())MMo.pluginCommands.has(a.match(n)?.[1]??"")&&p$.Configuration.telemetry?.reportPluginName(a);e.binaryVersion&&p$.Configuration.telemetry.reportVersion(e.binaryVersion)}function U9n(e,{configuration:t}){for(let r of t.plugins.values())for(let n of r.commands||[])e.register(n)}async function UMo(e,t,{selfPath:r,pluginConfiguration:n}){if(!YMo(e))return 1;let a=await J9n({selfPath:r,pluginConfiguration:n}),o=a.get("yarnPath"),l=a.get("ignorePath");if(o&&!l)return QMo(e,t,{yarnPath:o});delete process.env.YARN_IGNORE_PATH;let A=XMo(e,t);JMo(e,{configuration:a}),U9n(e,{configuration:a});let f=e.process(A,e.defaultContext);return f.help||p$.Configuration.telemetry?.reportCommandName(f.path.join(" ")),await e.run(f,e.defaultContext)}async function KMo({cwd:e=IX.ppath.cwd(),pluginConfiguration:t=(0,HMo.getPluginConfiguration)()}={}){let r=X9n({cwd:e,pluginConfiguration:t}),n=await J9n({pluginConfiguration:t,selfPath:null});return U9n(r,{configuration:n}),r}async function jMo(e,{cwd:t=IX.ppath.cwd(),selfPath:r,pluginConfiguration:n}){let a=X9n({cwd:t,pluginConfiguration:n});function o(){Lve.Cli.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. -Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",o);try{process.exitCode=42,process.exitCode=await UMo(a,e,{selfPath:r,pluginConfiguration:n})}catch(l){Lve.Cli.defaultContext.stdout.write(a.error(l)),process.exitCode=1}finally{process.off("beforeExit",o),await IX.xfs.rmtempPromise()}}});var el=H(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.pluginCommands=jN.runExit=jN.getCli=jN.openWorkspace=jN.getPluginConfiguration=jN.getDynamicLibs=jN.WorkspaceRequiredError=jN.BaseCommand=void 0;var zMo=$yn();Object.defineProperty(jN,"BaseCommand",{enumerable:!0,get:function(){return zMo.BaseCommand}});var qMo=zdr();Object.defineProperty(jN,"WorkspaceRequiredError",{enumerable:!0,get:function(){return qMo.WorkspaceRequiredError}});var $Mo=qdr();Object.defineProperty(jN,"getDynamicLibs",{enumerable:!0,get:function(){return $Mo.getDynamicLibs}});var eHo=tpr();Object.defineProperty(jN,"getPluginConfiguration",{enumerable:!0,get:function(){return eHo.getPluginConfiguration}});var tHo=Q9n();Object.defineProperty(jN,"openWorkspace",{enumerable:!0,get:function(){return tHo.openWorkspace}});var j9n=K9n();Object.defineProperty(jN,"getCli",{enumerable:!0,get:function(){return j9n.getCli}});Object.defineProperty(jN,"runExit",{enumerable:!0,get:function(){return j9n.runExit}});var rHo=npr();Object.defineProperty(jN,"pluginCommands",{enumerable:!0,get:function(){return rHo.pluginCommands}})});var gVn=H((rzl,uVn)=>{"use strict";var aVn=wt("stream").PassThrough,cVn=wt("stream").Writable,lVn=wt("util");lVn.inherits(cpr,aVn);lVn.inherits(lpr,cVn);function cpr(e,t){aVn.call(this,t),this.factory=e,this.opts=t}cpr.prototype._flush=function(e){var t=this.factory();t.pipe(new lpr(this,this.opts)).on("finish",e),t.resume()};function lpr(e,t){cVn.call(this,t),this.target=e}lpr.prototype._write=function(e,t,r){this.target.push(e),r()};function apr(e,t){t=t||{};var r;return typeof e=="function"?r=e:(e.pause(),r=function(){return e}),new cpr(r,t)}apr.obj=function(e,t){return t=t||{},t.objectMode=!0,apr(e,t)};uVn.exports=apr});var pVn=bc(()=>{});function gpr(e,t){return e.map(r=>r.trim()).filter(Boolean).join(t)}function cHo(e,t){if(!e)return fVn;let r=gpr(e,"|");return t?t(r):new RegExp(`^[\\s|*]*(${r})[:\\s]+(.*)`,"i")}function lHo(e,t){if(!e)return fVn;let r=t?"g":"gi";return new RegExp(`(?:.*?)??\\s*([\\w-\\.\\/]*?)??(${gpr(e,"|")})([\\w-]*\\d+)`,r)}function uHo(e){if(!e)return/()(.+)/gi;let t=gpr(e,"|");return new RegExp(`(${t})(?:\\s+(.*?))(?=(?:${t})|$)`,"gi")}function IVn(e={}){let t=cHo(e.noteKeywords,e.notesPattern),r=lHo(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=uHo(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}var fVn,hVn=bc(()=>{fVn=/(?!.*)/});function q5e(e){let t=e.match(/[^\r\n]/);if(typeof t?.index!="number")return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` +`).join("");throw Xf.xfs.writeFileSync(de,Se),Xf.xfs.detachTemp(ue),new Goe.ReportError(Jb.MessageName.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${QAt.npath.fromPortablePath(de)}`)},ne=ue=>{let de=r.get(ue.descriptorHash);if(typeof de>"u")throw new Error("Assertion failed: The resolution should have been registered");let be=n.get(de);if(!be)throw new Error("Assertion failed: The package could not be found");return be},ce=(ue,de,be,{top:Se,optional:De})=>{b.length>1e3&&ae(),b.push(de);let k=fe(ue,de,be,{top:Se,optional:De});return b.pop(),k},fe=(ue,de,be,{top:Se,optional:De})=>{if(De||o.delete(de.locatorHash),a.has(de.locatorHash))return;a.add(de.locatorHash);let k=n.get(de.locatorHash);if(!k)throw new Error(`Assertion failed: The package (${ng.prettyLocator(e.configuration,de)}) should have been registered`);let et=new Set,ct=new Map,Me=[],je=[],St=[],At=[];for(let Yt of Array.from(k.dependencies.values())){if(k.peerDependencies.has(Yt.identHash)&&k.locatorHash!==Se)continue;if(ng.isVirtualDescriptor(Yt))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");I.delete(Yt.descriptorHash);let Tr=De;if(!Tr){let Xt=k.dependenciesMeta.get(ng.stringifyIdent(Yt));if(typeof Xt<"u"){let lr=Xt.get(null);typeof lr<"u"&&lr.optional&&(Tr=!0)}}let Nr=r.get(Yt.descriptorHash);if(!Nr)throw new Error(`Assertion failed: The resolution (${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);let er=X.get(Nr)||n.get(Nr);if(!er)throw new Error(`Assertion failed: The package (${Nr}, resolved from ${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);if(er.peerDependencies.size===0){ce(Yt,er,new Map,{top:Se,optional:Tr});continue}let vt,xt,Zr=new Set,qt=new Map;Me.push(()=>{vt=ng.virtualizeDescriptor(Yt,de.locatorHash),xt=ng.virtualizePackage(er,de.locatorHash),k.dependencies.set(Yt.identHash,vt),r.set(vt.descriptorHash,xt.locatorHash),t.set(vt.descriptorHash,vt),n.set(xt.locatorHash,xt),m_.getSetWithDefault(F,xt.locatorHash).add(vt.descriptorHash),et.add(xt.locatorHash)}),je.push(()=>{Q.set(xt.locatorHash,qt);for(let Xt of xt.peerDependencies.values()){let cr=m_.getFactoryWithDefault(ct,Xt.identHash,()=>{let Ar=be.get(Xt.identHash)??null,qr=k.dependencies.get(Xt.identHash);return!qr&&ng.areIdentsEqual(de,Xt)&&(ue.identHash===de.identHash?qr=ue:(qr=ng.makeDescriptor(de,ue.range),t.set(qr.descriptorHash,qr),r.set(qr.descriptorHash,de.locatorHash),I.delete(qr.descriptorHash),Ar=null)),qr||(qr=ng.makeDescriptor(Xt,"missing:")),{subject:de,ident:Xt,provided:qr,root:!Ar,requests:new Map,hash:`p${r8.makeHash(de.locatorHash,Xt.identHash).slice(0,6)}`}}).provided;if(cr.range==="missing:"&&xt.dependencies.has(Xt.identHash)){xt.peerDependencies.delete(Xt.identHash);continue}if(qt.set(Xt.identHash,{requester:xt,descriptor:Xt,meta:xt.peerDependenciesMeta.get(ng.stringifyIdent(Xt)),children:new Map}),xt.dependencies.set(Xt.identHash,cr),ng.isVirtualDescriptor(cr)){let Ar=r.get(cr.descriptorHash);m_.getSetWithDefault(B,Ar).add(xt.locatorHash)}E.set(cr.identHash,cr),cr.range==="missing:"&&Zr.add(cr.identHash)}xt.dependencies=new Map(m_.sortMap(xt.dependencies,([Xt,lr])=>ng.stringifyIdent(lr)))}),St.push(()=>{if(!n.has(xt.locatorHash))return;let Xt=C.get(er.locatorHash);typeof Xt=="number"&&Xt>=2&&ae();let lr=C.get(er.locatorHash),cr=typeof lr<"u"?lr+1:1;C.set(er.locatorHash,cr),ce(vt,xt,qt,{top:Se,optional:Tr}),C.set(er.locatorHash,cr-1)}),At.push(()=>{let Xt=r.get(vt.descriptorHash);if(typeof Xt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let lr=Q.get(Xt);if(typeof lr>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let cr of ct.values()){let Ar=lr.get(cr.ident.identHash);Ar&&(cr.requests.set(vt.descriptorHash,Ar),f.set(cr.hash,cr),cr.root||be.get(cr.ident.identHash)?.children.set(vt.descriptorHash,Ar))}if(n.has(xt.locatorHash))for(let cr of Zr)xt.dependencies.delete(cr)})}for(let Yt of[...Me,...je])Yt();for(let Yt of et){et.delete(Yt);let Tr=n.get(Yt),Nr=r8.makeHash(ng.devirtualizeLocator(Tr).locatorHash,...Array.from(Tr.dependencies.values(),Zr=>{let qt=Zr.range!=="missing:"?r.get(Zr.descriptorHash):"missing:";if(typeof qt>"u")throw new Error(`Assertion failed: Expected the resolution for ${ng.prettyDescriptor(e.configuration,Zr)} to have been registered`);return qt===Se?`${qt} (top)`:qt})),er=N.get(Nr);if(typeof er>"u"){N.set(Nr,Tr);continue}let vt=m_.getSetWithDefault(F,er.locatorHash);for(let Zr of F.get(Tr.locatorHash)??[])r.set(Zr,er.locatorHash),vt.add(Zr);n.delete(Tr.locatorHash),a.delete(Tr.locatorHash),et.delete(Tr.locatorHash);let xt=B.get(Tr.locatorHash);if(xt!==void 0){let Zr=m_.getSetWithDefault(B,er.locatorHash);for(let qt of xt)Zr.add(qt),et.add(qt)}}for(let Yt of[...St,...At])Yt()};for(let ue of e.workspaces){let de=ue.anchoredLocator;I.delete(ue.anchoredDescriptor.descriptorHash),ce(ue.anchoredDescriptor,de,new Map,{top:de.locatorHash,optional:!1})}for(let ue of f.values()){if(!ue.root)continue;let de=n.get(ue.subject.locatorHash);if(typeof de>"u")continue;for(let Se of ue.requests.values()){let De=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),Se.requester.locatorHash).slice(0,6)}`;l.set(De,{subject:ue.subject.locatorHash,requested:ue.ident,rootRequester:Se.requester.locatorHash,allRequesters:Array.from(ng.allPeerRequests(Se),k=>k.requester.locatorHash)})}let be=[...ng.allPeerRequests(ue)];if(ue.provided.range!=="missing:"){let Se=ne(ue.provided),De=Se.version??"0.0.0",k=ct=>{if(ct.startsWith(XAt.WorkspaceResolver.protocol)){if(!e.tryWorkspaceByLocator(Se))return null;ct=ct.slice(XAt.WorkspaceResolver.protocol.length),(ct==="^"||ct==="~")&&(ct="*")}return ct},et=!0;for(let ct of be){let Me=k(ct.descriptor.range);if(Me===null){et=!1;continue}if(!JAt.satisfiesWithPrereleases(De,Me)){et=!1;let je=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),ct.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotCompatible,subject:de,requested:ue.ident,requester:ct.requester,version:De,hash:je,requirementCount:be.length})}}if(!et){let ct=be.map(Me=>k(Me.descriptor.range));A.push({type:n8.NodeNotCompatible,node:ue,range:ct.includes(null)?null:JAt.simplifyRanges(ct),hash:ue.hash})}}else{let Se=!0;for(let De of be)if(!De.meta?.optional){Se=!1;let k=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),De.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotProvided,subject:de,requested:ue.ident,requester:De.requester,hash:k})}Se||A.push({type:n8.NodeNotProvided,node:ue,hash:ue.hash})}}}function*Y5o(e){let t=new Map;if("children"in e)t.set(e,e);else for(let r of e.requests.values())t.set(r,r);for(let[r,n]of t){yield{request:r,root:n};for(let a of r.children.values())t.has(a)||t.set(a,n)}}function Q5o(e,t){let r=[],n=[],a=!1;for(let o of e.peerWarnings)if(!(o.type===n8.NotCompatible||o.type===n8.NotProvided)){if(!e.tryWorkspaceByLocator(o.node.subject)){a=!0;continue}if(o.type===n8.NodeNotCompatible){let l=e.storedResolutions.get(o.node.provided.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=e.storedPackages.get(l);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let f=m_.mapAndFind(Y5o(o.node),({request:b,root:E})=>JAt.satisfiesWithPrereleases(A.version??"0.0.0",b.descriptor.range)?m_.mapAndFind.skip:b===E?ng.prettyIdent(e.configuration,b.requester):`${ng.prettyIdent(e.configuration,b.requester)} (via ${ng.prettyIdent(e.configuration,E.requester)})`),I=[...ng.allPeerRequests(o.node)].length>1?"and other dependencies request":"requests",C=o.range?ng.prettyRange(e.configuration,o.range):qp.pretty(e.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${ng.prettyIdent(e.configuration,o.node.ident)} is listed by your project with version ${ng.prettyReference(e.configuration,A.version??"0.0.0")} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), which doesn't satisfy what ${f} ${I} (${C}).`)}if(o.type===n8.NodeNotProvided){let l=o.node.requests.size>1?" and other dependencies":"";n.push(`${ng.prettyLocator(e.configuration,o.node.subject)} doesn't provide ${ng.prettyIdent(e.configuration,o.node.ident)} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), requested by ${ng.prettyIdent(e.configuration,o.node.requests.values().next().value.requester)}${l}.`)}}t.startSectionSync({reportFooter:()=>{t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by your project; run ${qp.pretty(e.configuration,"yarn explain peer-requirements ",qp.Type.CODE)} for details, where ${qp.pretty(e.configuration,"",qp.Type.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let o of m_.sortMap(r,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.INCOMPATIBLE_PEER_DEPENDENCY,o);for(let o of m_.sortMap(n,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.MISSING_PEER_DEPENDENCY,o)}),a&&t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by dependencies; run ${qp.pretty(e.configuration,"yarn explain peer-requirements",qp.Type.CODE)} for details.`)}});var O9n=H(AIe=>{"use strict";Object.defineProperty(AIe,"__esModule",{value:!0});AIe.TelemetryManager=AIe.MetricName=void 0;AIe.derive=W9n;var KAt=(Pa(),vi(Va)),i8=no(),P9n=S5e(),X5o=KAt.__importStar(moe()),J5o=KAt.__importStar(Qgt()),UAt=KAt.__importStar(xW()),U5o=KAt.__importStar(n$()),s8;(function(e){e.VERSION="version",e.COMMAND_NAME="commandName",e.PLUGIN_NAME="pluginName",e.INSTALL_COUNT="installCount",e.PROJECT_COUNT="projectCount",e.WORKSPACE_COUNT="workspaceCount",e.DEPENDENCY_COUNT="dependencyCount",e.EXTENSION="packageExtension"})(s8||(AIe.MetricName=s8={}));function W9n(e){let n=Math.floor(e.timeNow/864e5),a=e.updateInterval*864e5,o=e.state.lastUpdate??e.timeNow+a+Math.floor(a*e.randomInitialInterval),l=o+a,A=e.state.lastTips??n*864e5,f=A+864e5+8*36e5-e.timeZone,I=l<=e.timeNow,C=f<=e.timeNow,b=null;return(I||C||!e.state.lastUpdate||!e.state.lastTips)&&(b={},b.lastUpdate=I?e.timeNow:o,b.lastTips=A,b.blocks=I?{}:e.state.blocks,b.displayedTips=e.state.displayedTips),{nextState:b,triggerUpdate:I,triggerTips:C,nextTips:C?n*864e5:A}}var Qdr=class{constructor(t,r){this.values=new Map,this.hits=new Map,this.enumerators=new Map,this.nextTips=0,this.displayedTips=[],this.shouldCommitTips=!1,this.configuration=t;let n=this.getRegistryPath();this.isNew=!i8.xfs.existsSync(n),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(t){let r=new Set(this.displayedTips),n=A=>A&&P9n.YarnVersion?U5o.satisfiesWithPrereleases(P9n.YarnVersion,A):!1,a=t.map((A,f)=>f).filter(A=>t[A]&&n(t[A]?.selector));if(a.length===0)return null;let o=a.filter(A=>!r.has(A));if(o.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],o=a.filter(f=>!r.has(f))}let l=o[Math.floor(Math.random()*o.length)];return this.displayedTips.push(l),this.commitTips(),t[l]}reportVersion(t){this.reportValue(s8.VERSION,t.replace(/-git\..*/,"-git"))}reportCommandName(t){this.reportValue(s8.COMMAND_NAME,t||"")}reportPluginName(t){this.reportValue(s8.PLUGIN_NAME,t)}reportProject(t){this.reportEnumerator(s8.PROJECT_COUNT,t)}reportInstall(t){this.reportHit(s8.INSTALL_COUNT,t)}reportPackageExtension(t){this.reportValue(s8.EXTENSION,t)}reportWorkspaceCount(t){this.reportValue(s8.WORKSPACE_COUNT,String(t))}reportDependencyCount(t){this.reportValue(s8.DEPENDENCY_COUNT,String(t))}reportValue(t,r){UAt.getSetWithDefault(this.values,t).add(r)}reportEnumerator(t,r){UAt.getSetWithDefault(this.enumerators,t).add(X5o.makeHash(r))}reportHit(t,r="*"){let n=UAt.getMapWithDefault(this.hits,t),a=UAt.getFactoryWithDefault(n,r,()=>0);n.set(r,a+1)}getRegistryPath(){let t=this.configuration.get("globalFolder");return i8.ppath.join(t,"telemetry.json")}sendReport(t){let r=this.getRegistryPath(),n;try{n=i8.xfs.readJsonSync(r)}catch{n={}}let{nextState:a,triggerUpdate:o,triggerTips:l,nextTips:A}=W9n({state:n,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=n.displayedTips??[],a!==null)try{i8.xfs.mkdirSync(i8.ppath.dirname(r),{recursive:!0}),i8.xfs.writeJsonSync(r,a)}catch{return!1}if(l&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),o){let f=n.blocks??{};if(Object.keys(f).length===0){let I=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${t}?ddsource=yarn`,C=b=>J5o.post(I,b,{configuration:this.configuration}).catch(()=>{});for(let[b,E]of Object.entries(n.blocks??{})){if(Object.keys(E).length===0)continue;let N=E;N.userId=b,N.reportType="primary";for(let Q of Object.keys(N.enumerators??{}))N.enumerators[Q]=N.enumerators[Q].length;C(N);let B=new Map,F=20;for(let[Q,X]of Object.entries(N.values))X.length>0&&B.set(Q,X.slice(0,F));for(;B.size>0;){let Q={};Q.userId=b,Q.reportType="secondary",Q.metrics={};for(let[X,ae]of B)Q.metrics[X]=ae.shift(),ae.length===0&&B.delete(X);C(Q)}}}}return!0}applyChanges(){let t=this.getRegistryPath(),r;try{r=i8.xfs.readJsonSync(t)}catch{r={}}let n=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},o=a[n]=a[n]??{};for(let l of this.hits.keys()){let A=o.hits=o.hits??{},f=A[l]=A[l]??{};for(let[I,C]of this.hits.get(l))f[I]=(f[I]??0)+C}for(let l of["values","enumerators"])for(let A of this[l].keys()){let f=o[l]=o[l]??{};f[A]=[...new Set([...f[A]??[],...this[l].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),i8.xfs.mkdirSync(i8.ppath.dirname(t),{recursive:!0}),i8.xfs.writeJsonSync(t,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};AIe.TelemetryManager=Qdr});var Bn=H(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.treeUtils=Rl.tgzUtils=Rl.structUtils=Rl.semverUtils=Rl.scriptUtils=Rl.nodeUtils=Rl.miscUtils=Rl.formatUtils=Rl.folderUtils=Rl.execUtils=Rl.httpUtils=Rl.hashUtils=Rl.PackageExtensionStatus=Rl.PackageExtensionType=Rl.LinkType=Rl.YarnVersion=Rl.Workspace=Rl.WorkspaceResolver=Rl.WorkspaceFetcher=Rl.VirtualFetcher=Rl.ThrowReport=Rl.TelemetryManager=Rl.reportOptionDeprecations=Rl.StreamReport=Rl.Report=Rl.ReportError=Rl.InstallMode=Rl.Project=Rl.PeerWarningType=Rl.LOCKFILE_VERSION=Rl.MultiFetcher=Rl.stringifyMessageName=Rl.parseMessageName=Rl.MessageName=Rl.Manifest=Rl.LockfileResolver=Rl.LightReport=Rl.LegacyMigrationResolver=Rl.BuildDirectiveType=Rl.WindowsLinkType=Rl.DurationUnit=Rl.SettingsType=Rl.FormatType=Rl.Configuration=Rl.TAG_REGEXP=Rl.LEGACY_PLUGINS=Rl.DEFAULT_RC_FILENAME=Rl.Cache=Rl.CACHE_CHECKPOINT=Rl.CACHE_VERSION=void 0;var IM=(Pa(),vi(Va)),K5o=IM.__importStar(Jgt());Rl.execUtils=K5o;var j5o=IM.__importStar(Agt());Rl.folderUtils=j5o;var z5o=IM.__importStar(rM());Rl.formatUtils=z5o;var q5o=IM.__importStar(moe());Rl.hashUtils=q5o;var $5o=IM.__importStar(Qgt());Rl.httpUtils=$5o;var eMo=IM.__importStar(xW());Rl.miscUtils=eMo;var tMo=IM.__importStar(Xgt());Rl.nodeUtils=tMo;var rMo=IM.__importStar(HAr());Rl.scriptUtils=rMo;var nMo=IM.__importStar(n$());Rl.semverUtils=nMo;var iMo=IM.__importStar(uG());Rl.structUtils=iMo;var sMo=IM.__importStar(yLn());Rl.tgzUtils=sMo;var oMo=IM.__importStar(wLn());Rl.treeUtils=oMo;var Xdr=adr();Object.defineProperty(Rl,"CACHE_VERSION",{enumerable:!0,get:function(){return Xdr.CACHE_VERSION}});Object.defineProperty(Rl,"CACHE_CHECKPOINT",{enumerable:!0,get:function(){return Xdr.CACHE_CHECKPOINT}});Object.defineProperty(Rl,"Cache",{enumerable:!0,get:function(){return Xdr.Cache}});var Jdr=I5e();Object.defineProperty(Rl,"DEFAULT_RC_FILENAME",{enumerable:!0,get:function(){return Jdr.DEFAULT_RC_FILENAME}});Object.defineProperty(Rl,"LEGACY_PLUGINS",{enumerable:!0,get:function(){return Jdr.LEGACY_PLUGINS}});Object.defineProperty(Rl,"TAG_REGEXP",{enumerable:!0,get:function(){return Jdr.TAG_REGEXP}});var K5e=I5e();Object.defineProperty(Rl,"Configuration",{enumerable:!0,get:function(){return K5e.Configuration}});Object.defineProperty(Rl,"FormatType",{enumerable:!0,get:function(){return K5e.FormatType}});Object.defineProperty(Rl,"SettingsType",{enumerable:!0,get:function(){return K5e.SettingsType}});Object.defineProperty(Rl,"DurationUnit",{enumerable:!0,get:function(){return K5e.DurationUnit}});Object.defineProperty(Rl,"WindowsLinkType",{enumerable:!0,get:function(){return K5e.WindowsLinkType}});var aMo=cdr();Object.defineProperty(Rl,"BuildDirectiveType",{enumerable:!0,get:function(){return aMo.BuildDirectiveType}});var cMo=udr();Object.defineProperty(Rl,"LegacyMigrationResolver",{enumerable:!0,get:function(){return cMo.LegacyMigrationResolver}});var lMo=ZLn();Object.defineProperty(Rl,"LightReport",{enumerable:!0,get:function(){return lMo.LightReport}});var uMo=ddr();Object.defineProperty(Rl,"LockfileResolver",{enumerable:!0,get:function(){return uMo.LockfileResolver}});var gMo=uve();Object.defineProperty(Rl,"Manifest",{enumerable:!0,get:function(){return gMo.Manifest}});var Udr=M9();Object.defineProperty(Rl,"MessageName",{enumerable:!0,get:function(){return Udr.MessageName}});Object.defineProperty(Rl,"parseMessageName",{enumerable:!0,get:function(){return Udr.parseMessageName}});Object.defineProperty(Rl,"stringifyMessageName",{enumerable:!0,get:function(){return Udr.stringifyMessageName}});var AMo=Cur();Object.defineProperty(Rl,"MultiFetcher",{enumerable:!0,get:function(){return AMo.MultiFetcher}});var jAt=V9n();Object.defineProperty(Rl,"LOCKFILE_VERSION",{enumerable:!0,get:function(){return jAt.LOCKFILE_VERSION}});Object.defineProperty(Rl,"PeerWarningType",{enumerable:!0,get:function(){return jAt.PeerWarningType}});Object.defineProperty(Rl,"Project",{enumerable:!0,get:function(){return jAt.Project}});Object.defineProperty(Rl,"InstallMode",{enumerable:!0,get:function(){return jAt.InstallMode}});var M9n=sM();Object.defineProperty(Rl,"ReportError",{enumerable:!0,get:function(){return M9n.ReportError}});Object.defineProperty(Rl,"Report",{enumerable:!0,get:function(){return M9n.Report}});var H9n=v5e();Object.defineProperty(Rl,"StreamReport",{enumerable:!0,get:function(){return H9n.StreamReport}});Object.defineProperty(Rl,"reportOptionDeprecations",{enumerable:!0,get:function(){return H9n.reportOptionDeprecations}});var dMo=O9n();Object.defineProperty(Rl,"TelemetryManager",{enumerable:!0,get:function(){return dMo.TelemetryManager}});var pMo=Ldr();Object.defineProperty(Rl,"ThrowReport",{enumerable:!0,get:function(){return pMo.ThrowReport}});var fMo=vur();Object.defineProperty(Rl,"VirtualFetcher",{enumerable:!0,get:function(){return fMo.VirtualFetcher}});var IMo=wur();Object.defineProperty(Rl,"WorkspaceFetcher",{enumerable:!0,get:function(){return IMo.WorkspaceFetcher}});var hMo=Kfe();Object.defineProperty(Rl,"WorkspaceResolver",{enumerable:!0,get:function(){return hMo.WorkspaceResolver}});var mMo=Pdr();Object.defineProperty(Rl,"Workspace",{enumerable:!0,get:function(){return mMo.Workspace}});var CMo=S5e();Object.defineProperty(Rl,"YarnVersion",{enumerable:!0,get:function(){return CMo.YarnVersion}});var Kdr=Qfe();Object.defineProperty(Rl,"LinkType",{enumerable:!0,get:function(){return Kdr.LinkType}});Object.defineProperty(Rl,"PackageExtensionType",{enumerable:!0,get:function(){return Kdr.PackageExtensionType}});Object.defineProperty(Rl,"PackageExtensionStatus",{enumerable:!0,get:function(){return Kdr.PackageExtensionStatus}})});var zdr=H(zAt=>{"use strict";Object.defineProperty(zAt,"__esModule",{value:!0});zAt.WorkspaceRequiredError=void 0;var _Mo=Bn(),Y9n=no(),yMo=($c(),vi(rg)),jdr=class extends yMo.UsageError{constructor(t,r){let n=Y9n.ppath.relative(t,r),a=Y9n.ppath.join(t,_Mo.Manifest.fileName);super(`This command can only be run from within a workspace of your project (${n} isn't a workspace of ${a}).`)}};zAt.WorkspaceRequiredError=jdr});var qdr=H(qAt=>{"use strict";Object.defineProperty(qAt,"__esModule",{value:!0});qAt.getDynamicLibs=void 0;var d$=(Pa(),vi(Va)),bMo=d$.__importStar(el()),EMo=d$.__importStar(Bn()),SMo=d$.__importStar(no()),vMo=d$.__importStar(zK()),BMo=d$.__importStar(TW()),wMo=d$.__importStar(_5e()),TMo=d$.__importStar(($c(),vi(rg))),RMo=d$.__importStar(UC()),NMo=d$.__importStar((CZ(),vi(mZ))),DMo=()=>new Map([["@yarnpkg/cli",bMo],["@yarnpkg/core",EMo],["@yarnpkg/fslib",SMo],["@yarnpkg/libzip",vMo],["@yarnpkg/parsers",BMo],["@yarnpkg/shell",wMo],["clipanion",TMo],["semver",RMo],["typanion",NMo]]);qAt.getDynamicLibs=DMo});var $dr=H((L7l,kMo)=>{kMo.exports={name:"@yarnpkg/cli",version:"4.14.1",license:"BSD-2-Clause",main:"./lib/index.js",exports:{".":"./lib/index.js","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"^4.7.0","@yarnpkg/fslib":"^3.1.5","@yarnpkg/libzip":"^3.2.2","@yarnpkg/parsers":"^3.0.3","@yarnpkg/plugin-catalog":"^1.0.2","@yarnpkg/plugin-compat":"^4.0.12","@yarnpkg/plugin-constraints":"^4.0.5","@yarnpkg/plugin-dlx":"^4.0.2","@yarnpkg/plugin-essentials":"^4.5.0","@yarnpkg/plugin-exec":"^3.1.0","@yarnpkg/plugin-file":"^3.0.2","@yarnpkg/plugin-git":"^3.2.0","@yarnpkg/plugin-github":"^3.0.2","@yarnpkg/plugin-http":"^3.0.3","@yarnpkg/plugin-init":"^4.1.2","@yarnpkg/plugin-interactive-tools":"^4.1.0","@yarnpkg/plugin-jsr":"^1.1.1","@yarnpkg/plugin-link":"^3.0.2","@yarnpkg/plugin-nm":"^4.0.8","@yarnpkg/plugin-npm":"^3.5.0","@yarnpkg/plugin-npm-cli":"^4.4.1","@yarnpkg/plugin-pack":"^4.0.4","@yarnpkg/plugin-patch":"^4.0.3","@yarnpkg/plugin-pnp":"^4.1.5","@yarnpkg/plugin-pnpm":"^2.1.2","@yarnpkg/plugin-stage":"^4.0.2","@yarnpkg/plugin-typescript":"^4.1.3","@yarnpkg/plugin-version":"^4.2.0","@yarnpkg/plugin-workspace-tools":"^4.1.7","@yarnpkg/shell":"^4.1.3","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"^4.2.3","@yarnpkg/monorepo":"^0.0.0","@yarnpkg/pnpify":"^4.1.6"},peerDependencies:{"@yarnpkg/core":"^4.7.0"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var tpr=H(epr=>{"use strict";Object.defineProperty(epr,"__esModule",{value:!0});epr.getPluginConfiguration=ZMo;var xMo=(Pa(),vi(Va)),GMo=xMo.__importDefault($dr()),FMo=qdr();function ZMo(){let e=new Set;for(let r of GMo.default["@yarnpkg/builder"].bundles.standard)e.add(r);let t=(0,FMo.getDynamicLibs)();for(let r of e)t.set(r,wt(r).default);return{plugins:e,modules:t}}});var Q9n=H(rpr=>{"use strict";Object.defineProperty(rpr,"__esModule",{value:!0});rpr.openWorkspace=PMo;var LMo=Bn(),VMo=zdr();async function PMo(e,t){let{project:r,workspace:n}=await LMo.Project.find(e,t);if(!n)throw new VMo.WorkspaceRequiredError(r.cwd,t);return n}});var npr=H($At=>{"use strict";Object.defineProperty($At,"__esModule",{value:!0});$At.pluginCommands=void 0;$At.pluginCommands=new Map([])});var K9n=H(edt=>{"use strict";Object.defineProperty(edt,"__esModule",{value:!0});edt.getCli=KMo;edt.runExit=jMo;var p$=Bn(),IX=no(),WMo=wt("child_process"),OMo=Nfe(),Lve=($c(),vi(rg)),MMo=npr(),HMo=tpr();function X9n({cwd:e,pluginConfiguration:t}){let r=new Lve.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:p$.YarnVersion??""});return Object.assign(r,{defaultContext:{...Lve.Cli.defaultContext,cwd:e,plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function YMo(e){if(p$.miscUtils.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,n=">=18.12.0";if(p$.semverUtils.satisfiesWithPrereleases(r,n))return!0;let a=new Lve.UsageError(`This tool requires a Node version compatible with ${n} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Lve.Cli.defaultContext.stdout.write(e.error(a)),!1}async function J9n({selfPath:e,pluginConfiguration:t}){return await p$.Configuration.find(IX.npath.toPortablePath(process.cwd()),t,{strict:!1,usePathCheck:e})}function QMo(e,t,{yarnPath:r}){if(!IX.xfs.existsSync(r))return e.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let n={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,WMo.execFileSync)(process.execPath,[IX.npath.fromPortablePath(r),...t],n)}catch(a){return a.status??1}return 0}function XMo(e,t){let r=null,n=t;return t.length>=2&&t[0]==="--cwd"?(r=IX.npath.toPortablePath(t[1]),n=t.slice(2)):t.length>=1&&t[0].startsWith("--cwd=")?(r=IX.npath.toPortablePath(t[0].slice(6)),n=t.slice(1)):t[0]==="add"&&t[t.length-2]==="--cwd"&&(r=IX.npath.toPortablePath(t[t.length-1]),n=t.slice(0,t.length-2)),e.defaultContext.cwd=r!==null?IX.ppath.resolve(r):IX.ppath.cwd(),n}function JMo(e,{configuration:t}){if(!t.get("enableTelemetry")||OMo.isCI||!process.stdout.isTTY)return;p$.Configuration.telemetry=new p$.TelemetryManager(t,"puba9cdc10ec5790a2cf4969dd413a47270");let n=/^@yarnpkg\/plugin-(.*)$/;for(let a of t.plugins.keys())MMo.pluginCommands.has(a.match(n)?.[1]??"")&&p$.Configuration.telemetry?.reportPluginName(a);e.binaryVersion&&p$.Configuration.telemetry.reportVersion(e.binaryVersion)}function U9n(e,{configuration:t}){for(let r of t.plugins.values())for(let n of r.commands||[])e.register(n)}async function UMo(e,t,{selfPath:r,pluginConfiguration:n}){if(!YMo(e))return 1;let a=await J9n({selfPath:r,pluginConfiguration:n}),o=a.get("yarnPath"),l=a.get("ignorePath");if(o&&!l)return QMo(e,t,{yarnPath:o});delete process.env.YARN_IGNORE_PATH;let A=XMo(e,t);JMo(e,{configuration:a}),U9n(e,{configuration:a});let f=e.process(A,e.defaultContext);return f.help||p$.Configuration.telemetry?.reportCommandName(f.path.join(" ")),await e.run(f,e.defaultContext)}async function KMo({cwd:e=IX.ppath.cwd(),pluginConfiguration:t=(0,HMo.getPluginConfiguration)()}={}){let r=X9n({cwd:e,pluginConfiguration:t}),n=await J9n({pluginConfiguration:t,selfPath:null});return U9n(r,{configuration:n}),r}async function jMo(e,{cwd:t=IX.ppath.cwd(),selfPath:r,pluginConfiguration:n}){let a=X9n({cwd:t,pluginConfiguration:n});function o(){Lve.Cli.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",o);try{process.exitCode=42,process.exitCode=await UMo(a,e,{selfPath:r,pluginConfiguration:n})}catch(l){Lve.Cli.defaultContext.stdout.write(a.error(l)),process.exitCode=1}finally{process.off("beforeExit",o),await IX.xfs.rmtempPromise()}}});var el=H(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.pluginCommands=jN.runExit=jN.getCli=jN.openWorkspace=jN.getPluginConfiguration=jN.getDynamicLibs=jN.WorkspaceRequiredError=jN.BaseCommand=void 0;var zMo=$yn();Object.defineProperty(jN,"BaseCommand",{enumerable:!0,get:function(){return zMo.BaseCommand}});var qMo=zdr();Object.defineProperty(jN,"WorkspaceRequiredError",{enumerable:!0,get:function(){return qMo.WorkspaceRequiredError}});var $Mo=qdr();Object.defineProperty(jN,"getDynamicLibs",{enumerable:!0,get:function(){return $Mo.getDynamicLibs}});var eHo=tpr();Object.defineProperty(jN,"getPluginConfiguration",{enumerable:!0,get:function(){return eHo.getPluginConfiguration}});var tHo=Q9n();Object.defineProperty(jN,"openWorkspace",{enumerable:!0,get:function(){return tHo.openWorkspace}});var j9n=K9n();Object.defineProperty(jN,"getCli",{enumerable:!0,get:function(){return j9n.getCli}});Object.defineProperty(jN,"runExit",{enumerable:!0,get:function(){return j9n.runExit}});var rHo=npr();Object.defineProperty(jN,"pluginCommands",{enumerable:!0,get:function(){return rHo.pluginCommands}})});var gVn=H((nzl,uVn)=>{"use strict";var aVn=wt("stream").PassThrough,cVn=wt("stream").Writable,lVn=wt("util");lVn.inherits(cpr,aVn);lVn.inherits(lpr,cVn);function cpr(e,t){aVn.call(this,t),this.factory=e,this.opts=t}cpr.prototype._flush=function(e){var t=this.factory();t.pipe(new lpr(this,this.opts)).on("finish",e),t.resume()};function lpr(e,t){cVn.call(this,t),this.target=e}lpr.prototype._write=function(e,t,r){this.target.push(e),r()};function apr(e,t){t=t||{};var r;return typeof e=="function"?r=e:(e.pause(),r=function(){return e}),new cpr(r,t)}apr.obj=function(e,t){return t=t||{},t.objectMode=!0,apr(e,t)};uVn.exports=apr});var pVn=bc(()=>{});function gpr(e,t){return e.map(r=>r.trim()).filter(Boolean).join(t)}function cHo(e,t){if(!e)return fVn;let r=gpr(e,"|");return t?t(r):new RegExp(`^[\\s|*]*(${r})[:\\s]+(.*)`,"i")}function lHo(e,t){if(!e)return fVn;let r=t?"g":"gi";return new RegExp(`(?:.*?)??\\s*([\\w-\\.\\/]*?)??(${gpr(e,"|")})([\\w-]*\\d+)`,r)}function uHo(e){if(!e)return/()(.+)/gi;let t=gpr(e,"|");return new RegExp(`(${t})(?:\\s+(.*?))(?=(?:${t})|$)`,"gi")}function IVn(e={}){let t=cHo(e.noteKeywords,e.notesPattern),r=lHo(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=uHo(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}var fVn,hVn=bc(()=>{fVn=/(?!.*)/});function q5e(e){let t=e.match(/[^\r\n]/);if(typeof t?.index!="number")return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` `;)n--;return e.substring(r,n+1)}function pIe(e,t){return e?`${e} ${t||""}`:t||""}function mVn(e){return e?t=>!t.startsWith(e):()=>!0}function CVn(e){let t=e.indexOf(gHo);return t===-1?e:e.slice(0,t)}function _Vn(e){return!e.match(/^\s*gpg:/)}var gHo,yVn=bc(()=>{gHo="# ------------------------ >8 ------------------------"});var bVn,EVn=bc(()=>{bVn={noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],issuePrefixes:["#"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],fieldPattern:/^-(.*?)-$/}});function Apr(e={}){return{merge:null,revert:null,header:null,body:null,footer:null,notes:[],mentions:[],references:[],...e}}var $5e,dpr=bc(()=>{hVn();yVn();EVn();$5e=class{options;regexes;lines=[];lineIndex=0;commit=Apr();constructor(t={}){this.options={...bVn,...t},this.regexes=IVn(this.options)}currentLine(){return this.lines[this.lineIndex]}nextLine(){return this.lines[this.lineIndex++]}isLineAvailable(){return this.lineIndex{t[l]=o[A+1]||null}),!0):!1}parseHeader(t){t&&this.skipEmptyLines();let{commit:r,options:n}=this,a=n.headerCorrespondence||[],o=this.nextLine(),l=null;o&&(n.breakingHeaderPattern&&(l=o.match(n.breakingHeaderPattern)),!l&&n.headerPattern&&(l=o.match(n.headerPattern))),o&&(r.header=o),l&&a.forEach((A,f)=>{r[A]=l[f+1]||null})}parseMeta(){let{options:t,commit:r}=this;if(!t.fieldPattern||!this.isLineAvailable())return!1;let n,a=null,o=!1;for(;this.isLineAvailable();){if(n=this.currentLine().match(t.fieldPattern),n){a=n[1]||null,this.nextLine();continue}if(a)o=!0,r[a]=pIe(r[a],this.currentLine()),this.nextLine();else break}return o}parseNotes(){let{regexes:t,commit:r}=this;if(!this.isLineAvailable())return!1;let n=this.currentLine().match(t.notes),a=[];if(n){let o={title:n[1],text:n[2]};for(r.notes.push(o),r.footer=pIe(r.footer,this.currentLine()),this.nextLine();this.isLineAvailable();){if(this.parseMeta()||this.parseNotes())return!0;if(a=this.parseReferences(this.currentLine()),a.length?r.references.push(...a):o.text=pIe(o.text,this.currentLine()),r.footer=pIe(r.footer,this.currentLine()),this.nextLine(),a.length)break}return!0}return!1}parseBodyAndFooter(t){let{commit:r}=this;if(!this.isLineAvailable())return t;let n=this.parseReferences(this.currentLine()),a=!n.length&&t;return a?r.body=pIe(r.body,this.currentLine()):(r.references.push(...n),r.footer=pIe(r.footer,this.currentLine())),this.nextLine(),a}parseBreakingHeader(){let{commit:t,options:r}=this;if(!r.breakingHeaderPattern||t.notes.length||!t.header)return;let n=t.header.match(r.breakingHeaderPattern);n&&t.notes.push({title:"BREAKING CHANGE",text:n[3]})}parseMentions(t){let{commit:r,regexes:n}=this,a;for(;a=n.mentions.exec(t),!!a;)r.mentions.push(a[1])}parseRevert(t){let{commit:r,options:n}=this,a=n.revertCorrespondence||[],o=n.revertPattern?t.match(n.revertPattern):null;o&&(r.revert=a.reduce((l,A,f)=>(l[A]=o[f+1]||null,l),{}))}cleanupCommit(){let{commit:t}=this;t.body&&(t.body=q5e(t.body)),t.footer&&(t.footer=q5e(t.footer)),t.notes.forEach(r=>{r.text=q5e(r.text)})}parse(t){if(!t.trim())throw new TypeError("Expected a raw commit");let r=mVn(this.options.commentChar),n=q5e(t).split(/\r?\n/),a=CVn(n).filter(f=>r(f)&&_Vn(f)),o=Apr();this.lines=a,this.lineIndex=0,this.commit=o;let l=this.parseMerge();this.parseHeader(l),o.header&&(o.references=this.parseReferences(o.header));let A=!0;for(;this.isLineAvailable();)this.parseMeta(),this.parseNotes()&&(A=!1),this.parseBodyAndFooter(A)||(A=!1);return this.parseBreakingHeader(),this.parseMentions(t),this.parseRevert(t),this.cleanupCommit(),o}}});import{Transform as AHo}from"stream";function SVn(e={}){let t=e.warn,r=t===!0?n=>{throw n}:t?n=>t(n.toString()):()=>{};return async function*(a){let o=new $5e(e),l;for await(l of a)try{yield o.parse(l.toString())}catch(A){r(A)}}}function ppr(e={}){return AHo.from(SVn(e))}var vVn=bc(()=>{dpr()});var BVn={};sI(BVn,{CommitParser:()=>$5e,createCommitObject:()=>Apr,parseCommits:()=>SVn,parseCommitsStream:()=>ppr});var fpr=bc(()=>{pVn();dpr();vVn()});function dHo(e,t){let r,n;for(let a in t)if(r=e[a],n=t[a],typeof r=="string"&&(r=r.trim()),typeof n=="string"&&(n=n.trim()),r!==n)return!1;return!0}function wVn(e,t){if(!t.size)return null;let r=e.raw||e;for(let n of t)if(n.revert&&dHo(r,n.revert))return n;return null}var TVn=bc(()=>{});var Pve,Ipr=bc(()=>{TVn();Pve=class{hold=new Set;holdRevertsCount=0;*process(t){let{hold:r}=this,n=wVn(t,r);if(n){r.delete(n),this.holdRevertsCount--;return}if(t.revert){r.add(t),this.holdRevertsCount++;return}this.holdRevertsCount>0?r.add(t):(r.size&&(yield*r,r.clear()),yield t)}*flush(){let{hold:t}=this;t.size&&(yield*t,t.clear())}}});import{Transform as pHo}from"stream";async function*RVn(e){let t=new Pve;for await(let r of e)yield*t.process(r);yield*t.flush()}function*hpr(e){let t=new Pve;for(let r of e)yield*t.process(r);yield*t.flush()}function fHo(){return pHo.from(RVn)}var NVn=bc(()=>{Ipr()});var DVn={};sI(DVn,{RevertedCommitsFilter:()=>Pve,filterRevertedCommits:()=>RVn,filterRevertedCommitsStream:()=>fHo,filterRevertedCommitsSync:()=>hpr});var mpr=bc(()=>{Ipr();NVn()});var NZ=H(LW=>{"use strict";LW.__esModule=!0;LW.extend=PVn;LW.indexOf=vHo;LW.escapeExpression=BHo;LW.isEmpty=wHo;LW.createFrame=THo;LW.blockParams=RHo;LW.appendContextPath=NHo;var yHo={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},bHo=/[&<>"'`=]/g,EHo=/[&<>"'`=]/;function SHo(e){return yHo[e]}function PVn(e){for(var t=1;t{"use strict";sdt.__esModule=!0;var bpr=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function Epr(e,t){var r=t&&t.loc,n=void 0,a=void 0,o=void 0,l=void 0;r&&(n=r.start.line,a=r.end.line,o=r.start.column,l=r.end.column,e+=" - "+n+":"+o);for(var A=Error.prototype.constructor.call(this,e),f=0;f{"use strict";odt.__esModule=!0;var Spr=NZ();odt.default=function(e){e.registerHelper("blockHelperMissing",function(t,r){var n=r.inverse,a=r.fn;if(t===!0)return a(this);if(t===!1||t==null)return n(this);if(Spr.isArray(t))return t.length>0?(r.ids&&(r.ids=[r.name]),e.helpers.each(t,r)):n(this);if(r.data&&r.ids){var o=Spr.createFrame(r.data);o.contextPath=Spr.appendContextPath(r.data.contextPath,r.name),r={data:o}}return a(t,r)})};MVn.exports=odt.default});var QVn=H((adt,YVn)=>{"use strict";adt.__esModule=!0;function DHo(e){return e&&e.__esModule?e:{default:e}}var rMe=NZ(),kHo=hM(),xHo=DHo(kHo);adt.default=function(e){e.registerHelper("each",function(t,r){if(!r)throw new xHo.default("Must pass iterator to #each");var n=r.fn,a=r.inverse,o=0,l="",A=void 0,f=void 0;r.data&&r.ids&&(f=rMe.appendContextPath(r.data.contextPath,r.ids[0])+"."),rMe.isFunction(t)&&(t=t.call(this)),r.data&&(A=rMe.createFrame(r.data));function I(B,F,Q){A&&(A.key=B,A.index=F,A.first=F===0,A.last=!!Q,f&&(A.contextPath=f+B)),l=l+n(t[B],{data:A,blockParams:rMe.blockParams([t[B],B],[f+B,null])})}if(t&&typeof t=="object")if(rMe.isArray(t))for(var C=t.length;o{"use strict";cdt.__esModule=!0;function GHo(e){return e&&e.__esModule?e:{default:e}}var FHo=hM(),ZHo=GHo(FHo);cdt.default=function(e){e.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new ZHo.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};XVn.exports=cdt.default});var zVn=H((ldt,jVn)=>{"use strict";ldt.__esModule=!0;function LHo(e){return e&&e.__esModule?e:{default:e}}var UVn=NZ(),VHo=hM(),KVn=LHo(VHo);ldt.default=function(e){e.registerHelper("if",function(t,r){if(arguments.length!=2)throw new KVn.default("#if requires exactly one argument");return UVn.isFunction(t)&&(t=t.call(this)),!r.hash.includeZero&&!t||UVn.isEmpty(t)?r.inverse(this):r.fn(this)}),e.registerHelper("unless",function(t,r){if(arguments.length!=2)throw new KVn.default("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:r.inverse,inverse:r.fn,hash:r.hash})})};jVn.exports=ldt.default});var $Vn=H((udt,qVn)=>{"use strict";udt.__esModule=!0;udt.default=function(e){e.registerHelper("log",function(){for(var t=[void 0],r=arguments[arguments.length-1],n=0;n{"use strict";gdt.__esModule=!0;gdt.default=function(e){e.registerHelper("lookup",function(t,r,n){return t&&n.lookupProperty(t,r)})};ePn.exports=gdt.default});var nPn=H((Adt,rPn)=>{"use strict";Adt.__esModule=!0;function PHo(e){return e&&e.__esModule?e:{default:e}}var nMe=NZ(),WHo=hM(),OHo=PHo(WHo);Adt.default=function(e){e.registerHelper("with",function(t,r){if(arguments.length!=2)throw new OHo.default("#with requires exactly one argument");nMe.isFunction(t)&&(t=t.call(this));var n=r.fn;if(nMe.isEmpty(t))return r.inverse(this);var a=r.data;return r.data&&r.ids&&(a=nMe.createFrame(r.data),a.contextPath=nMe.appendContextPath(r.data.contextPath,r.ids[0])),n(t,{data:a,blockParams:nMe.blockParams([t],[a&&a.contextPath])})})};rPn.exports=Adt.default});var vpr=H(ddt=>{"use strict";ddt.__esModule=!0;ddt.registerDefaultHelpers=rYo;ddt.moveHelperToHooks=nYo;function fIe(e){return e&&e.__esModule?e:{default:e}}var MHo=HVn(),HHo=fIe(MHo),YHo=QVn(),QHo=fIe(YHo),XHo=JVn(),JHo=fIe(XHo),UHo=zVn(),KHo=fIe(UHo),jHo=$Vn(),zHo=fIe(jHo),qHo=tPn(),$Ho=fIe(qHo),eYo=nPn(),tYo=fIe(eYo);function rYo(e){HHo.default(e),QHo.default(e),JHo.default(e),KHo.default(e),zHo.default(e),$Ho.default(e),tYo.default(e)}function nYo(e,t,r){e.helpers[t]&&(e.hooks[t]=e.helpers[t],r||delete e.helpers[t])}});var sPn=H((pdt,iPn)=>{"use strict";pdt.__esModule=!0;var iYo=NZ();pdt.default=function(e){e.registerDecorator("inline",function(t,r,n,a){var o=t;return r.partials||(r.partials={},o=function(l,A){var f=n.partials;n.partials=iYo.extend({},f,r.partials);var I=t(l,A);return n.partials=f,I}),r.partials[a.args[0]]=a.fn,o})};iPn.exports=pdt.default});var oPn=H(Bpr=>{"use strict";Bpr.__esModule=!0;Bpr.registerDefaultDecorators=cYo;function sYo(e){return e&&e.__esModule?e:{default:e}}var oYo=sPn(),aYo=sYo(oYo);function cYo(e){aYo.default(e)}});var wpr=H((fdt,aPn)=>{"use strict";fdt.__esModule=!0;var lYo=NZ(),Wve={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(t){if(typeof t=="string"){var r=lYo.indexOf(Wve.methodMap,t.toLowerCase());r>=0?t=r:t=parseInt(t,10)}return t},log:function(t){if(t=Wve.lookupLevel(t),typeof console<"u"&&Wve.lookupLevel(Wve.level)<=t){var r=Wve.methodMap[t];console[r]||(r="log");for(var n=arguments.length,a=Array(n>1?n-1:0),o=1;o{"use strict";Tpr.__esModule=!0;Tpr.createNewLookupObject=gYo;var uYo=NZ();function gYo(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";iMe.__esModule=!0;iMe.createProtoAccessControl=fYo;iMe.resultIsAllowed=IYo;iMe.resetLoggedProperties=mYo;function AYo(e){return e&&e.__esModule?e:{default:e}}var lPn=cPn(),dYo=wpr(),pYo=AYo(dYo),Idt=Object.create(null);function fYo(e){var t=Object.create(null);t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1;var r=Object.create(null);return r.__proto__=!1,{properties:{whitelist:lPn.createNewLookupObject(r,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:lPn.createNewLookupObject(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}}function IYo(e,t,r){return uPn(typeof e=="function"?t.methods:t.properties,r)}function uPn(e,t){return e.whitelist[t]!==void 0?e.whitelist[t]===!0:e.defaultValue!==void 0?e.defaultValue:(hYo(t),!1)}function hYo(e){Idt[e]!==!0&&(Idt[e]=!0,pYo.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+`" because it is not an "own property" of its parent. You can add a runtime option to disable the check or this warning: @@ -280,8 +280,8 @@ Expecting `+Me.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":je="Parse erro return undefined } `.trim()},blockValue:function(t){var r=this.aliasable("container.hooks.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(t,0,n);var a=this.popStack();n.splice(1,0,a),this.push(this.source.functionCall(r,"call",n))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),r=[this.contextName(0)];this.setupHelperArgs("",0,r,!0),this.flushInline();var n=this.topStack();r.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(t,"call",r),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack(function(r){return[" != null ? ",r,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,r,n,a){var o=0;!a&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(t[o++])):this.pushContext(),this.resolvePath("context",t,o,r,n)},lookupBlockParam:function(t,r){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",r,1)},lookupData:function(t,r,n){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",r,0,!0,n)},resolvePath:function(t,r,n,a,o){var l=this;if(this.options.strict||this.options.assumeObjects){this.push(jQo(this.options.strict&&o,this,r,n,t));return}for(var A=r.length;nthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var r=0,n=t.length;r{"use strict";Vdt.__esModule=!0;function pMe(e){return e&&e.__esModule?e:{default:e}}var zQo=vPn(),qQo=pMe(zQo),$Qo=Ppr(),eXo=pMe($Qo),lfr=VPn(),ufr=MPn(),tXo=yWn(),rXo=pMe(tXo),nXo=Tdt(),iXo=pMe(nXo),sXo=Fpr(),oXo=pMe(sXo),aXo=qQo.default.create;function bWn(){var e=aXo();return e.compile=function(t,r){return ufr.compile(t,r,e)},e.precompile=function(t,r){return ufr.precompile(t,r,e)},e.AST=eXo.default,e.Compiler=ufr.Compiler,e.JavaScriptCompiler=rXo.default,e.Parser=lfr.parser,e.parse=lfr.parse,e.parseWithoutProcessing=lfr.parseWithoutProcessing,e}var Uve=bWn();Uve.create=bWn;oXo.default(Uve);Uve.Visitor=iXo.default;Uve.default=Uve;Vdt.default=Uve;EWn.exports=Vdt.default});var vWn=H(Pdt=>{"use strict";Pdt.__esModule=!0;Pdt.print=gXo;Pdt.PrintVisitor=Vv;function cXo(e){return e&&e.__esModule?e:{default:e}}var lXo=Tdt(),uXo=cXo(lXo);function gXo(e){return new Vv().accept(e)}function Vv(){this.padding=0}Vv.prototype=new uXo.default;Vv.prototype.pad=function(e){for(var t="",r=0,n=this.padding;r "+t+" }}")};Vv.prototype.PartialBlockStatement=function(e){var t="PARTIAL BLOCK:"+e.name.original;return e.params[0]&&(t+=" "+this.accept(e.params[0])),e.hash&&(t+=" "+this.accept(e.hash)),t+=" "+this.pad("PROGRAM:"),this.padding++,t+=this.accept(e.program),this.padding--,this.pad("{{> "+t+" }}")};Vv.prototype.ContentStatement=function(e){return this.pad("CONTENT[ '"+e.value+"' ]")};Vv.prototype.CommentStatement=function(e){return this.pad("{{! '"+e.value+"' }}")};Vv.prototype.SubExpression=function(e){for(var t=e.params,r=[],n=void 0,a=0,o=t.length;a{"use strict";Object.defineProperty(Mdt,"__esModule",{value:!0});Mdt.LRUCache=void 0;var jve=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,VWn=new Set,Afr=typeof process=="object"&&process?process:{},PWn=(e,t,r,n)=>{typeof Afr.emitWarning=="function"?Afr.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)},Odt=globalThis.AbortController,LWn=globalThis.AbortSignal;if(typeof Odt>"u"){LWn=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,a){this._onabort.push(a)}},Odt=class{constructor(){t()}signal=new LWn;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let a of this.signal._onabort)a(n);this.signal.onabort?.(n)}}};let e=Afr.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,PWn("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var CXo=e=>!VWn.has(e),xql=Symbol("type"),Loe=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),WWn=e=>Loe(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zve:null:null,zve=class extends Array{constructor(t){super(t),this.fill(0)}},dfr=class e{heap;length;static#e=!1;static create(t){let r=WWn(t);if(!r)return[];e.#e=!0;let n=new e(t,r);return e.#e=!1,n}constructor(t,r){if(!e.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},pfr=class e{#e;#t;#n;#r;#i;#s;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#o;#g;#l;#u;#a;#m;#f;#I;#d;#b;#h;#S;#v;#C;#E;#_;#p;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#C,sizes:t.#S,keyMap:t.#l,keyList:t.#u,valList:t.#a,next:t.#m,prev:t.#f,get head(){return t.#I},get tail(){return t.#d},free:t.#b,isBackgroundFetch:r=>t.#A(r),backgroundFetch:(r,n,a,o)=>t.#V(r,n,a,o),moveToTail:r=>t.#W(r),indexes:r=>t.#T(r),rindexes:r=>t.#R(r),isStale:r=>t.#y(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#g}get size(){return this.#o}get fetchMethod(){return this.#i}get memoMethod(){return this.#s}get dispose(){return this.#n}get disposeAfter(){return this.#r}constructor(t){let{max:r=0,ttl:n,ttlResolution:a=1,ttlAutopurge:o,updateAgeOnGet:l,updateAgeOnHas:A,allowStale:f,dispose:I,disposeAfter:C,noDisposeOnSet:b,noUpdateTTL:E,maxSize:N=0,maxEntrySize:B=0,sizeCalculation:F,fetchMethod:Q,memoMethod:X,noDeleteOnFetchRejection:ae,noDeleteOnStaleGet:ne,allowStaleOnFetchRejection:ce,allowStaleOnFetchAbort:fe,ignoreFetchAbort:ue}=t;if(r!==0&&!Loe(r))throw new TypeError("max option must be a nonnegative integer");let de=r?WWn(r):Array;if(!de)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=N,this.maxEntrySize=B||this.#t,this.sizeCalculation=F,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(X!==void 0&&typeof X!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#s=X,Q!==void 0&&typeof Q!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=Q,this.#_=!!Q,this.#l=new Map,this.#u=new Array(r).fill(void 0),this.#a=new Array(r).fill(void 0),this.#m=new de(r),this.#f=new de(r),this.#I=0,this.#d=0,this.#b=dfr.create(r),this.#o=0,this.#g=0,typeof I=="function"&&(this.#n=I),typeof C=="function"?(this.#r=C,this.#h=[]):(this.#r=void 0,this.#h=void 0),this.#E=!!this.#n,this.#p=!!this.#r,this.noDisposeOnSet=!!b,this.noUpdateTTL=!!E,this.noDeleteOnFetchRejection=!!ae,this.allowStaleOnFetchRejection=!!ce,this.allowStaleOnFetchAbort=!!fe,this.ignoreFetchAbort=!!ue,this.maxEntrySize!==0){if(this.#t!==0&&!Loe(this.#t))throw new TypeError("maxSize must be a positive integer if specified");if(!Loe(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#N()}if(this.allowStale=!!f,this.noDeleteOnStaleGet=!!ne,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!A,this.ttlResolution=Loe(a)||a===0?a:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!Loe(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#B()}if(this.#e===0&&this.ttl===0&&this.#t===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#t){let be="LRU_CACHE_UNBOUNDED";CXo(be)&&(VWn.add(be),PWn("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",be,e))}}getRemainingTTL(t){return this.#l.has(t)?1/0:0}#B(){let t=new zve(this.#e),r=new zve(this.#e);this.#C=t,this.#v=r,this.#k=(o,l,A=jve.now())=>{if(r[o]=l!==0?A:0,t[o]=l,l!==0&&this.ttlAutopurge){let f=setTimeout(()=>{this.#y(o)&&this.#D(this.#u[o],"expire")},l+1);f.unref&&f.unref()}},this.#w=o=>{r[o]=t[o]!==0?jve.now():0},this.#c=(o,l)=>{if(t[l]){let A=t[l],f=r[l];if(!A||!f)return;o.ttl=A,o.start=f,o.now=n||a();let I=o.now-f;o.remainingTTL=A-I}};let n=0,a=()=>{let o=jve.now();if(this.ttlResolution>0){n=o;let l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return o};this.getRemainingTTL=o=>{let l=this.#l.get(o);if(l===void 0)return 0;let A=t[l],f=r[l];if(!A||!f)return 1/0;let I=(n||a())-f;return A-I},this.#y=o=>{let l=r[o],A=t[o];return!!A&&!!l&&(n||a())-l>A}}#w=()=>{};#c=()=>{};#k=()=>{};#y=()=>!1;#N(){let t=new zve(this.#e);this.#g=0,this.#S=t,this.#x=r=>{this.#g-=t[r],t[r]=0},this.#F=(r,n,a,o)=>{if(this.#A(n))return 0;if(!Loe(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,r),!Loe(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a},this.#G=(r,n,a)=>{if(t[r]=n,this.#t){let o=this.#t-t[r];for(;this.#g>o;)this.#L(!0)}this.#g+=t[r],a&&(a.entrySize=n,a.totalCalculatedSize=this.#g)}}#x=t=>{};#G=(t,r,n)=>{};#F=(t,r,n,a)=>{if(n||a)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#d;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#I));)r=this.#f[r]}*#R({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#I;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#d));)r=this.#m[r]}#Z(t){return t!==void 0&&this.#l.get(this.#u[t])===t}*entries(){for(let t of this.#T())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*rentries(){for(let t of this.#R())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*keys(){for(let t of this.#T()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*rkeys(){for(let t of this.#R()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*values(){for(let t of this.#T())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}*rvalues(){for(let t of this.#R())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;if(o!==void 0&&t(o,this.#u[n],this))return this.get(this.#u[n],r)}}forEach(t,r=this){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}rforEach(t,r=this){for(let n of this.#R()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}purgeStale(){let t=!1;for(let r of this.#R({allowStale:!0}))this.#y(r)&&(this.#D(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#l.get(t);if(r===void 0)return;let n=this.#a[r],a=this.#A(n)?n.__staleWhileFetching:n;if(a===void 0)return;let o={value:a};if(this.#C&&this.#v){let l=this.#C[r],A=this.#v[r];if(l&&A){let f=l-(jve.now()-A);o.ttl=f,o.start=Date.now()}}return this.#S&&(o.size=this.#S[r]),o}dump(){let t=[];for(let r of this.#T({allowStale:!0})){let n=this.#u[r],a=this.#a[r],o=this.#A(a)?a.__staleWhileFetching:a;if(o===void 0||n===void 0)continue;let l={value:o};if(this.#C&&this.#v){l.ttl=this.#C[r];let A=jve.now()-this.#v[r];l.start=Math.floor(Date.now()-A)}this.#S&&(l.size=this.#S[r]),t.unshift([n,l])}return t}load(t){this.clear();for(let[r,n]of t){if(n.start){let a=Date.now()-n.start;n.start=jve.now()-a}this.set(r,n.value,n)}}set(t,r,n={}){if(r===void 0)return this.delete(t),this;let{ttl:a=this.ttl,start:o,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:A=this.sizeCalculation,status:f}=n,{noUpdateTTL:I=this.noUpdateTTL}=n,C=this.#F(t,r,n.size||0,A);if(this.maxEntrySize&&C>this.maxEntrySize)return f&&(f.set="miss",f.maxEntrySizeExceeded=!0),this.#D(t,"set"),this;let b=this.#o===0?void 0:this.#l.get(t);if(b===void 0)b=this.#o===0?this.#d:this.#b.length!==0?this.#b.pop():this.#o===this.#e?this.#L(!1):this.#o,this.#u[b]=t,this.#a[b]=r,this.#l.set(t,b),this.#m[this.#d]=b,this.#f[b]=this.#d,this.#d=b,this.#o++,this.#G(b,C,f),f&&(f.set="add"),I=!1;else{this.#W(b);let E=this.#a[b];if(r!==E){if(this.#_&&this.#A(E)){E.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:N}=E;N!==void 0&&!l&&(this.#E&&this.#n?.(N,t,"set"),this.#p&&this.#h?.push([N,t,"set"]))}else l||(this.#E&&this.#n?.(E,t,"set"),this.#p&&this.#h?.push([E,t,"set"]));if(this.#x(b),this.#G(b,C,f),this.#a[b]=r,f){f.set="replace";let N=E&&this.#A(E)?E.__staleWhileFetching:E;N!==void 0&&(f.oldValue=N)}}else f&&(f.set="update")}if(a!==0&&!this.#C&&this.#B(),this.#C&&(I||this.#k(b,a,o),f&&this.#c(f,b)),!l&&this.#p&&this.#h){let E=this.#h,N;for(;N=E?.shift();)this.#r?.(...N)}return this}pop(){try{for(;this.#o;){let t=this.#a[this.#I];if(this.#L(!0),this.#A(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#h){let t=this.#h,r;for(;r=t?.shift();)this.#r?.(...r)}}}#L(t){let r=this.#I,n=this.#u[r],a=this.#a[r];return this.#_&&this.#A(a)?a.__abortController.abort(new Error("evicted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(a,n,"evict"),this.#p&&this.#h?.push([a,n,"evict"])),this.#x(r),t&&(this.#u[r]=void 0,this.#a[r]=void 0,this.#b.push(r)),this.#o===1?(this.#I=this.#d=0,this.#b.length=0):this.#I=this.#m[r],this.#l.delete(n),this.#o--,r}has(t,r={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:a}=r,o=this.#l.get(t);if(o!==void 0){let l=this.#a[o];if(this.#A(l)&&l.__staleWhileFetching===void 0)return!1;if(this.#y(o))a&&(a.has="stale",this.#c(a,o));else return n&&this.#w(o),a&&(a.has="hit",this.#c(a,o)),!0}else a&&(a.has="miss");return!1}peek(t,r={}){let{allowStale:n=this.allowStale}=r,a=this.#l.get(t);if(a===void 0||!n&&this.#y(a))return;let o=this.#a[a];return this.#A(o)?o.__staleWhileFetching:o}#V(t,r,n,a){let o=r===void 0?void 0:this.#a[r];if(this.#A(o))return o;let l=new Odt,{signal:A}=n;A?.addEventListener("abort",()=>l.abort(A.reason),{signal:l.signal});let f={signal:l.signal,options:n,context:a},I=(F,Q=!1)=>{let{aborted:X}=l.signal,ae=n.ignoreFetchAbort&&F!==void 0;if(n.status&&(X&&!Q?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ae&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),X&&!ae&&!Q)return b(l.signal.reason);let ne=N;return this.#a[r]===N&&(F===void 0?ne.__staleWhileFetching?this.#a[r]=ne.__staleWhileFetching:this.#D(t,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(t,F,f.options))),F},C=F=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=F),b(F)),b=F=>{let{aborted:Q}=l.signal,X=Q&&n.allowStaleOnFetchAbort,ae=X||n.allowStaleOnFetchRejection,ne=ae||n.noDeleteOnFetchRejection,ce=N;if(this.#a[r]===N&&(!ne||ce.__staleWhileFetching===void 0?this.#D(t,"fetch"):X||(this.#a[r]=ce.__staleWhileFetching)),ae)return n.status&&ce.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),ce.__staleWhileFetching;if(ce.__returned===ce)throw F},E=(F,Q)=>{let X=this.#i?.(t,o,f);X&&X instanceof Promise&&X.then(ae=>F(ae===void 0?void 0:ae),Q),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(F(void 0),n.allowStaleOnFetchAbort&&(F=ae=>I(ae,!0)))})};n.status&&(n.status.fetchDispatched=!0);let N=new Promise(E).then(I,C),B=Object.assign(N,{__abortController:l,__staleWhileFetching:o,__returned:void 0});return r===void 0?(this.set(t,B,{...f.options,status:void 0}),r=this.#l.get(t)):this.#a[r]=B,B}#A(t){if(!this.#_)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof Odt}async fetch(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:A=this.noDisposeOnSet,size:f=0,sizeCalculation:I=this.sizeCalculation,noUpdateTTL:C=this.noUpdateTTL,noDeleteOnFetchRejection:b=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:E=this.allowStaleOnFetchRejection,ignoreFetchAbort:N=this.ignoreFetchAbort,allowStaleOnFetchAbort:B=this.allowStaleOnFetchAbort,context:F,forceRefresh:Q=!1,status:X,signal:ae}=r;if(!this.#_)return X&&(X.fetch="get"),this.get(t,{allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,status:X});let ne={allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,ttl:l,noDisposeOnSet:A,size:f,sizeCalculation:I,noUpdateTTL:C,noDeleteOnFetchRejection:b,allowStaleOnFetchRejection:E,allowStaleOnFetchAbort:B,ignoreFetchAbort:N,status:X,signal:ae},ce=this.#l.get(t);if(ce===void 0){X&&(X.fetch="miss");let fe=this.#V(t,ce,ne,F);return fe.__returned=fe}else{let fe=this.#a[ce];if(this.#A(fe)){let De=n&&fe.__staleWhileFetching!==void 0;return X&&(X.fetch="inflight",De&&(X.returnedStale=!0)),De?fe.__staleWhileFetching:fe.__returned=fe}let ue=this.#y(ce);if(!Q&&!ue)return X&&(X.fetch="hit"),this.#W(ce),a&&this.#w(ce),X&&this.#c(X,ce),fe;let de=this.#V(t,ce,ne,F),Se=de.__staleWhileFetching!==void 0&&n;return X&&(X.fetch=ue?"stale":"refresh",Se&&ue&&(X.returnedStale=!0)),Se?de.__staleWhileFetching:de.__returned=de}}async forceFetch(t,r={}){let n=await this.fetch(t,r);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(t,r={}){let n=this.#s;if(!n)throw new Error("no memoMethod provided to constructor");let{context:a,forceRefresh:o,...l}=r,A=this.get(t,l);if(!o&&A!==void 0)return A;let f=n(t,A,{options:l,context:a});return this.set(t,f,l),f}get(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:l}=r,A=this.#l.get(t);if(A!==void 0){let f=this.#a[A],I=this.#A(f);return l&&this.#c(l,A),this.#y(A)?(l&&(l.get="stale"),I?(l&&n&&f.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?f.__staleWhileFetching:void 0):(o||this.#D(t,"expire"),l&&n&&(l.returnedStale=!0),n?f:void 0)):(l&&(l.get="hit"),I?f.__staleWhileFetching:(this.#W(A),a&&this.#w(A),f))}else l&&(l.get="miss")}#P(t,r){this.#f[r]=t,this.#m[t]=r}#W(t){t!==this.#d&&(t===this.#I?this.#I=this.#m[t]:this.#P(this.#f[t],this.#m[t]),this.#P(this.#d,t),this.#d=t)}delete(t){return this.#D(t,"delete")}#D(t,r){let n=!1;if(this.#o!==0){let a=this.#l.get(t);if(a!==void 0)if(n=!0,this.#o===1)this.#O(r);else{this.#x(a);let o=this.#a[a];if(this.#A(o)?o.__abortController.abort(new Error("deleted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(o,t,r),this.#p&&this.#h?.push([o,t,r])),this.#l.delete(t),this.#u[a]=void 0,this.#a[a]=void 0,a===this.#d)this.#d=this.#f[a];else if(a===this.#I)this.#I=this.#m[a];else{let l=this.#f[a];this.#m[l]=this.#m[a];let A=this.#m[a];this.#f[A]=this.#f[a]}this.#o--,this.#b.push(a)}}if(this.#p&&this.#h?.length){let a=this.#h,o;for(;o=a?.shift();)this.#r?.(...o)}return n}clear(){return this.#O("delete")}#O(t){for(let r of this.#R({allowStale:!0})){let n=this.#a[r];if(this.#A(n))n.__abortController.abort(new Error("deleted"));else{let a=this.#u[r];this.#E&&this.#n?.(n,a,t),this.#p&&this.#h?.push([n,a,t])}}if(this.#l.clear(),this.#a.fill(void 0),this.#u.fill(void 0),this.#C&&this.#v&&(this.#C.fill(0),this.#v.fill(0)),this.#S&&this.#S.fill(0),this.#I=0,this.#d=0,this.#b.length=0,this.#g=0,this.#o=0,this.#p&&this.#h){let r=this.#h,n;for(;n=r?.shift();)this.#r?.(...n)}}};Mdt.LRUCache=pfr});var HWn=H((Fql,MWn)=>{"use strict";var M_=(...e)=>e.every(t=>t)?e.join(""):"",nT=e=>e?encodeURIComponent(e):"",OWn=e=>e.toLowerCase().replace(/^\W+|\/|\W+$/g,"").replace(/\W+/g,"-"),_Xo={sshtemplate:({domain:e,user:t,project:r,committish:n})=>`git@${e}:${t}/${r}.git${M_("#",n)}`,sshurltemplate:({domain:e,user:t,project:r,committish:n})=>`git+ssh://git@${e}/${t}/${r}.git${M_("#",n)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a,path:o})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o)}`,browsetemplate:({domain:e,user:t,project:r,committish:n,treepath:a})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n))}`,browsetreetemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,browseblobtemplate:({domain:e,user:t,project:r,committish:n,blobpath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,docstemplate:({domain:e,user:t,project:r,treepath:n,committish:a})=>`https://${e}/${t}/${r}${M_("/",n,"/",nT(a))}#readme`,httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/raw/${nT(n||"HEAD")}/${a}`,shortcuttemplate:({type:e,user:t,project:r,committish:n})=>`${e}:${t}/${r}${M_("#",n)}`,pathtemplate:({user:e,project:t,committish:r})=>`${e}/${t}${M_("#",r)}`,bugstemplate:({domain:e,user:t,project:r})=>`https://${e}/${t}/${r}/issues`,hashformat:OWn},Voe={};Voe.github={protocols:["git:","http:","git+ssh:","git+https:","ssh:","https:"],domain:"github.com",treepath:"tree",blobpath:"blob",editpath:"edit",filetemplate:({auth:e,user:t,project:r,committish:n,path:a})=>`https://${M_(e,"@")}raw.githubusercontent.com/${t}/${r}/${nT(n||"HEAD")}/${a}`,gittemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://codeload.${e}/${t}/${r}/tar.gz/${nT(n||"HEAD")}`,extract:e=>{let[,t,r,n,a]=e.pathname.split("/",5);if(!(n&&n!=="tree")&&(n||(a=e.hash.slice(1)),r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:a}}};Voe.bitbucket={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"bitbucket.org",treepath:"src",blobpath:"src",editpath:"?mode=edit",edittemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,editpath:l})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o,l)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/get/${nT(n||"HEAD")}.tar.gz`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["get"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};Voe.gitlab={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"gitlab.com",treepath:"tree",blobpath:"tree",editpath:"-/edit",httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/repository/archive.tar.gz?ref=${nT(n||"HEAD")}`,extract:e=>{let t=e.pathname.slice(1);if(t.includes("/-/")||t.includes("/archive.tar.gz"))return;let r=t.split("/"),n=r.pop();n.endsWith(".git")&&(n=n.slice(0,-4));let a=r.join("/");if(!(!a||!n))return{user:a,project:n,committish:e.hash.slice(1)}}};Voe.gist={protocols:["git:","git+ssh:","git+https:","ssh:","https:"],domain:"gist.github.com",editpath:"edit",sshtemplate:({domain:e,project:t,committish:r})=>`git@${e}:${t}.git${M_("#",r)}`,sshurltemplate:({domain:e,project:t,committish:r})=>`git+ssh://git@${e}/${t}.git${M_("#",r)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a})=>`https://${e}/${t}/${r}${M_("/",nT(n))}/${a}`,browsetemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,browsetreetemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,browseblobtemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,docstemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,httpstemplate:({domain:e,project:t,committish:r})=>`git+https://${e}/${t}.git${M_("#",r)}`,filetemplate:({user:e,project:t,committish:r,path:n})=>`https://gist.githubusercontent.com/${e}/${t}/raw${M_("/",nT(r))}/${n}`,shortcuttemplate:({type:e,project:t,committish:r})=>`${e}:${t}${M_("#",r)}`,pathtemplate:({project:e,committish:t})=>`${e}${M_("#",t)}`,bugstemplate:({domain:e,project:t})=>`https://${e}/${t}`,gittemplate:({domain:e,project:t,committish:r})=>`git://${e}/${t}.git${M_("#",r)}`,tarballtemplate:({project:e,committish:t})=>`https://codeload.github.com/gist/${e}/tar.gz/${nT(t||"HEAD")}`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(n!=="raw"){if(!r){if(!t)return;r=t,t=null}return r.endsWith(".git")&&(r=r.slice(0,-4)),{user:t,project:r,committish:e.hash.slice(1)}}},hashformat:function(e){return e&&"file-"+OWn(e)}};Voe.sourcehut={protocols:["git+ssh:","https:"],domain:"git.sr.ht",treepath:"tree",blobpath:"tree",filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/blob/${nT(n)||"HEAD"}/${a}`,httpstemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}.git${M_("#",n)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/archive/${nT(n)||"HEAD"}.tar.gz`,bugstemplate:()=>null,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["archive"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};for(let[e,t]of Object.entries(Voe))Voe[e]=Object.assign({},_Xo,t);MWn.exports=Voe});var Ifr=H((Zql,QWn)=>{var yXo=wt("url"),ffr=(e,t,r)=>{let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)},YWn=e=>{try{return new yXo.URL(e)}catch{}},bXo=(e,t)=>{let r=e.indexOf(":"),n=e.slice(0,r+1);if(Object.prototype.hasOwnProperty.call(t,n))return e;let a=e.indexOf("@");return a>-1?a>r?`git+ssh://${e}`:e:e.indexOf("//")===r+1?e:`${e.slice(0,r+1)}//${e.slice(r+1)}`},EXo=e=>{let t=ffr(e,"@","#"),r=ffr(e,":","#");return r>t&&(e=e.slice(0,r)+"/"+e.slice(r+1)),ffr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`git+ssh://${e}`),e};QWn.exports=(e,t)=>{let r=t?bXo(e,t):e;return YWn(r)||YWn(EXo(r))}});var JWn=H((Lql,XWn)=>{"use strict";var SXo=Ifr(),vXo=e=>{let t=e.indexOf("#"),r=e.indexOf("/"),n=e.indexOf("/",r+1),a=e.indexOf(":"),o=/\s/.exec(e),l=e.indexOf("@"),A=!o||t>-1&&o.index>t,f=l===-1||t>-1&&l>t,I=a===-1||t>-1&&a>t,C=n===-1||t>-1&&n>t,b=r>0,E=t>-1?e[t-1]!=="/":!e.endsWith("/"),N=!e.startsWith(".");return A&&b&&E&&N&&f&&I&&C};XWn.exports=(e,t,{gitHosts:r,protocols:n})=>{if(!e)return;let a=vXo(e)?`github:${e}`:e,o=SXo(a,n);if(!o)return;let l=r.byShortcut[o.protocol],A=r.byDomain[o.hostname.startsWith("www.")?o.hostname.slice(4):o.hostname],f=l||A;if(!f)return;let I=r[l||A],C=null;n[o.protocol]?.auth&&(o.username||o.password)&&(C=`${o.username}${o.password?":"+o.password:""}`);let b=null,E=null,N=null,B=null;try{if(l){let F=o.pathname.startsWith("/")?o.pathname.slice(1):o.pathname,Q=F.indexOf("@");Q>-1&&(F=F.slice(Q+1));let X=F.lastIndexOf("/");X>-1?(E=decodeURIComponent(F.slice(0,X)),E||(E=null),N=decodeURIComponent(F.slice(X+1))):N=decodeURIComponent(F),N.endsWith(".git")&&(N=N.slice(0,-4)),o.hash&&(b=decodeURIComponent(o.hash.slice(1))),B="shortcut"}else{if(!I.protocols.includes(o.protocol))return;let F=I.extract(o);if(!F)return;E=F.user&&decodeURIComponent(F.user),N=decodeURIComponent(F.project),b=decodeURIComponent(F.committish),B=n[o.protocol]?.name||o.protocol.slice(0,-1)}}catch(F){if(F instanceof URIError)return;throw F}return[f,E,C,N,b,B,t]}});var mfr=H((Vql,UWn)=>{"use strict";var{LRUCache:BXo}=yIe(),wXo=HWn(),TXo=JWn(),RXo=Ifr(),hfr=new BXo({max:1e3}),Hdt=class e{constructor(t,r,n,a,o,l,A={}){Object.assign(this,e.#e[t],{type:t,user:r,auth:n,project:a,committish:o,default:l,opts:A})}static#e={byShortcut:{},byDomain:{}};static#t={"git+ssh:":{name:"sshurl"},"ssh:":{name:"sshurl"},"git+https:":{name:"https",auth:!0},"git:":{auth:!0},"http:":{auth:!0},"https:":{auth:!0},"git+http:":{auth:!0}};static addHost(t,r){e.#e[t]=r,e.#e.byDomain[r.domain]=t,e.#e.byShortcut[`${t}:`]=t,e.#t[`${t}:`]={name:t}}static fromUrl(t,r){if(typeof t!="string")return;let n=t+JSON.stringify(r||{});if(!hfr.has(n)){let a=TXo(t,r,{gitHosts:e.#e,protocols:e.#t});hfr.set(n,a?new e(...a):void 0)}return hfr.get(n)}static parseUrl(t){return RXo(t)}#n(t,r){if(typeof t!="function")return null;let n={...this,...this.opts,...r};n.path||(n.path=""),n.path.startsWith("/")&&(n.path=n.path.slice(1)),n.noCommittish&&(n.committish=null);let a=t(n);return n.noGitPlus&&a.startsWith("git+")?a.slice(4):a}hash(){return this.committish?`#${this.committish}`:""}ssh(t){return this.#n(this.sshtemplate,t)}sshurl(t){return this.#n(this.sshurltemplate,t)}browse(t,...r){return typeof t!="string"?this.#n(this.browsetemplate,t):typeof r[0]!="string"?this.#n(this.browsetreetemplate,{...r[0],path:t}):this.#n(this.browsetreetemplate,{...r[1],fragment:r[0],path:t})}browseFile(t,...r){return typeof r[0]!="string"?this.#n(this.browseblobtemplate,{...r[0],path:t}):this.#n(this.browseblobtemplate,{...r[1],fragment:r[0],path:t})}docs(t){return this.#n(this.docstemplate,t)}bugs(t){return this.#n(this.bugstemplate,t)}https(t){return this.#n(this.httpstemplate,t)}git(t){return this.#n(this.gittemplate,t)}shortcut(t){return this.#n(this.shortcuttemplate,t)}path(t){return this.#n(this.pathtemplate,t)}tarball(t){return this.#n(this.tarballtemplate,{...t,noCommittish:!1})}file(t,r){return this.#n(this.filetemplate,{...r,path:t})}edit(t,r){return this.#n(this.edittemplate,{...r,path:t})}getDefaultRepresentation(){return this.default}toString(t){return this.default&&typeof this[this.default]=="function"?this[this.default](t):this.sshurl(t)}};for(let[e,t]of Object.entries(wXo))Hdt.addHost(e,t);UWn.exports=Hdt});var jWn=H((Pql,KWn)=>{"use strict";var{URL:NXo}=wt("url"),DXo=new RegExp(/^\/?:?([/\w-.]+)\/([\w-.]+)\/?$/),kXo=new RegExp(/^\/repos\/([\w-.]+)\/([\w-.]+)\/(?:tarball|zipball)(?:\/.+)?$/),xXo=new RegExp(/^\/([\w-.]+)\/([\w-.]+)\/(?:legacy\.(?:zip|tar\.gz))(?:\/.+)?$/);KWn.exports=e=>{let t=e.replace(/^git@/,"https://git@").replace(/git@([.\w]+):(?!\d)/,"git@$1/").replace(/\.git$/,""),r=new NXo(t,"https://example.com/"),n=a=>({browse:FXo(r,a),domain:r.host,project:a[2]||null,type:GXo(r),user:a[1]||null});if(r.host){if(r.host.includes("api.github.com")){let a=kXo.exec(r.pathname)||[];return n(a)}if(r.host.includes("codeload.github.com")){let a=xXo.exec(r.pathname)||[];return n(a)}}return n(DXo.exec(r.pathname)||[])};function GXo({host:e}){return typeof e!="string"?null:e.indexOf("github")!==-1?"github":e.indexOf("gitlab")!==-1?"gitlab":null}function FXo(e,t){let n=`${e.protocol==="http:"?"http:":"https:"}//${e.host}/${t[1]}/${t[2]}`;return()=>n}});var Cfr=H((Mql,LXo)=>{LXo.exports=["0BSD","3D-Slicer-1.0","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMD-newlib","AMDPLPA","AML","AML-glslang","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Display-PostScript","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Darwin","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-2-Clause-first-lines","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-acpica","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Source-beginning-file","BSD-Systemics","BSD-Systemics-W3Works","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Borceux","Brian-Gladman-2-Clause","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-AU","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CMU-Mach-nodoc","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","Caldera-no-preamble","Catharon","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CrystalStacker","Cube","D-FSL-1.0","DEC-3-Clause","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DRL-1.1","DSDP","DocBook-Schema","DocBook-XML","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFAP-no-warranty-disclaimer","FSFUL","FSFULLR","FSFULLRWD","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GCR-docs","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Giftware","Glide","Glulxe","Graphics-Gems","Gutmann","HIDAPI","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Fenneberg-Livingston","HPND-INRIA-IMAG","HPND-Intel","HPND-Kevlin-Henney","HPND-MIT-disclaimer","HPND-Markus-Kuhn","HPND-Netrek","HPND-Pbmplus","HPND-UC","HPND-UC-export-US","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-acknowledgement","HPND-export-US-modify","HPND-export2-US","HPND-merchantability-variant","HPND-sell-MIT-disclaimer-xserver","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HPND-sell-variant-MIT-disclaimer-rev","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ISC-Veillard","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPD-document","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIT","MIT-0","MIT-CMU","MIT-Festival","MIT-Khronos-old","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","Mackerras-3-Clause","Mackerras-3-Clause-acknowledgment","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCBI-PD","NCGL-UK-2.0","NCL","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTP","NTP-0","Naumen","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OAR","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","OpenSSL-standalone","OpenVision","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PPL","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Pixar","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","Ruby-pty","SAX-PD","SAX-PD-2.0","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMLNJ","SMPPL","SNIA","SPL-1.0","SSH-OpenSSH","SSH-short","SSLeay-standalone","SSPL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","Sun-PPP","Sun-PPP-2000","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TGPPL-1.0","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","UCAR","UCL-1.0","UMich-Merit","UPL-1.0","URT-RLE","Ubuntu-font-1.0","Unicode-3.0","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","X11-swapped","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","any-OSI","bcrypt-Solar-Designer","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","cve-tou","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","gnuplot","gtkbook","hdparm","iMatix","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","mailprio","metamail","mpi-permissive","mpich2","mplus","pkgconf","pnmstitch","psfrag","psutils","python-ldap","radvd","snprintf","softSurfer","ssh-keyscan","swrule","threeparttable","ulem","w3m","xinetd","xkeyboard-config-Zinoviev","xlock","xpp","xzoom","zlib-acknowledgement"]});var qWn=H((Hql,VXo)=>{VXo.exports=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.1","LGPL-3.0","Net-SNMP","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"]});var $Wn=H((Yql,PXo)=>{PXo.exports=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-1.24","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","fmt-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","Gmsh-exception","GNAT-exception","GNOME-examples-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"]});var tOn=H((Qql,eOn)=>{"use strict";var WXo=[].concat(Cfr()).concat(qWn()),OXo=$Wn();eOn.exports=function(e){var t=0;function r(){return t1&&e[t-2]===" ")throw new Error("Space before `+`");return B&&{type:"OPERATOR",string:B}}function l(){return n(/[A-Za-z0-9-.]+/)}function A(){var B=l();if(!B)throw new Error("Expected idstring at offset "+t);return B}function f(){if(n("DocumentRef-")){var B=A();return{type:"DOCUMENTREF",string:B}}}function I(){if(n("LicenseRef-")){var B=A();return{type:"LICENSEREF",string:B}}}function C(){var B=t,F=l();if(WXo.indexOf(F)!==-1)return{type:"LICENSE",string:F};if(OXo.indexOf(F)!==-1)return{type:"EXCEPTION",string:F};t=B}function b(){return o()||f()||I()||C()}for(var E=[];r()&&(a(),!!r());){var N=b();if(!N)throw new Error("Unexpected `"+e[t]+"` at offset "+t);E.push(N)}return E}});var nOn=H((Xql,rOn)=>{"use strict";rOn.exports=function(e){var t=0;function r(){return t{"use strict";var MXo=tOn(),HXo=nOn();iOn.exports=function(e){return HXo(MXo(e))}});var dOn=H((Uql,AOn)=>{var YXo=_fr(),QXo=Cfr();function Ydt(e){try{return YXo(e),!0}catch{return!1}}function gOn(e,t){var r=t[0].length-e[0].length;return r!==0?r:e[0].toUpperCase().localeCompare(t[0].toUpperCase())}var sOn=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(gOn),XXo=0,JXo=1,oOn=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],yfr=QXo.map(function(e){var t=/^(.*)-\d+\.\d+$/.exec(e);return t?[t[0],t[1]]:[e,null]}).reduce(function(e,t){var r=t[1];return e[r]=e[r]||[],e[r].push(t[0]),e},{}),UXo=Object.keys(yfr).map(function(t){return[t,yfr[t]]}).filter(function(t){return t[1].length===1&&t[0]!==null&&t[0]!=="APL"}).map(function(t){return[t[0],t[1][0]]});yfr=void 0;var aOn=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(UXo).sort(gOn),KXo=0,jXo=1,cOn=function(e){for(var t=0;t-1)return n[jXo]}return null},uOn=function(e,t){for(var r=0;r-1){var o=e.replace(a,n[JXo]),l=t(o);if(l!==null)return l}}return null};AOn.exports=function(e,t){t=t||{};var r=t.upgrade===void 0?!0:!!t.upgrade;function n(A){return r?zXo(A):A}var a=typeof e=="string"&&e.trim().length!==0;if(!a)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),Ydt(e))return n(e);var o=e.replace(/\+$/,"").trim();if(Ydt(o))return n(o);var l=cOn(e);return l!==null||(l=uOn(e,function(A){return Ydt(A)?A:cOn(A)}),l!==null)||(l=lOn(e),l!==null)||(l=uOn(e,lOn),l!==null)?n(l):null};function zXo(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}});var hOn=H((Kql,IOn)=>{var qXo=_fr(),$Xo=dOn(),pOn='license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN "',e4o=/^SEE LICEN[CS]E IN (.+)$/;function fOn(e,t){return t.slice(0,e.length)===e}function bfr(e){if(e.hasOwnProperty("license")){var t=e.license;return fOn("LicenseRef",t)||fOn("DocumentRef",t)}else return bfr(e.left)||bfr(e.right)}IOn.exports=function(e){var t;try{t=qXo(e)}catch{var r;if(e==="UNLICENSED"||e==="UNLICENCED")return{validForOldPackages:!0,validForNewPackages:!0,unlicensed:!0};if(r=e4o.exec(e))return{validForOldPackages:!0,validForNewPackages:!0,inFile:r[1]};var n={validForOldPackages:!1,validForNewPackages:!1,warnings:[pOn]};if(e.trim().length!==0){var a=$Xo(e);a&&n.warnings.push('license is similar to the valid expression "'+a+'"')}return n}return bfr(t)?{validForNewPackages:!1,validForOldPackages:!1,spdx:!0,warnings:[pOn]}:{validForNewPackages:!0,validForOldPackages:!0,spdx:!0}}});var COn=H((jql,mOn)=>{mOn.exports=t4o;function t4o(e){if(!e||e==="ERROR: No README data found!")return;e=e.trim().split(` -`);let t=0;for(;e[t]&&e[t].trim().match(/^(#|$)/);)t++;let r=e.length,n=t+1;for(;n{r4o.exports={topLevel:{dependancies:"dependencies",dependecies:"dependencies",depdenencies:"dependencies",devEependencies:"devDependencies",depends:"dependencies","dev-dependencies":"devDependencies",devDependences:"devDependencies",devDepenencies:"devDependencies",devdependencies:"devDependencies",repostitory:"repository",repo:"repository",prefereGlobal:"preferGlobal",hompage:"homepage",hampage:"homepage",autohr:"author",autor:"author",contributers:"contributors",publicationConfig:"publishConfig",script:"scripts"},bugs:{web:"url",name:"url"},script:{server:"start",tests:"test"}}});var SOn=H((qql,EOn)=>{var n4o=k6t(),i4o=x6t(),s4o=hOn(),Qdt=mfr(),o4o=wt("node:module"),a4o=["dependencies","devDependencies","optionalDependencies"],c4o=COn(),Efr=wt("url"),Poe=_On(),yOn=e=>e.includes("@")&&e.indexOf("@")"u"&&(t={});var r=t.strict;if(!e.name&&!r){e.name="";return}if(typeof e.name!="string")throw new Error("name field must be a string.");r||(e.name=e.name.trim()),g4o(e.name,r,t.allowLegacyCase),o4o.builtinModules.includes(e.name)&&this.warn("conflictingName",e.name)},fixDescriptionField:function(e){e.description&&typeof e.description!="string"&&(this.warn("nonStringDescription"),delete e.description),e.readme&&!e.description&&(e.description=c4o(e.readme)),e.description===void 0&&delete e.description,e.description||this.warn("missingDescription")},fixReadmeField:function(e){e.readme||(this.warn("missingReadme"),e.readme="ERROR: No README data found!")},fixBugsField:function(e){if(!e.bugs&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.bugs()&&(e.bugs={url:t.bugs()})}else if(e.bugs){if(typeof e.bugs=="string")yOn(e.bugs)?e.bugs={email:e.bugs}:Efr.parse(e.bugs).protocol?e.bugs={url:e.bugs}:this.warn("nonEmailUrlBugsString");else{h4o(e.bugs,this.warn);var r=e.bugs;e.bugs={},r.url&&(typeof r.url=="string"&&Efr.parse(r.url).protocol?e.bugs.url=r.url:this.warn("nonUrlBugsUrlField")),r.email&&(typeof r.email=="string"&&yOn(r.email)?e.bugs.email=r.email:this.warn("nonEmailBugsEmailField"))}!e.bugs.email&&!e.bugs.url&&(delete e.bugs,this.warn("emptyNormalizedBugs"))}},fixHomepageField:function(e){if(!e.homepage&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.docs()&&(e.homepage=t.docs())}if(e.homepage){if(typeof e.homepage!="string")return this.warn("nonUrlHomepage"),delete e.homepage;Efr.parse(e.homepage).protocol||(e.homepage="http://"+e.homepage)}},fixLicenseField:function(e){let t=e.license||e.licence;if(!t)return this.warn("missingLicense");if(typeof t!="string"||t.length<1||t.trim()==="")return this.warn("invalidLicense");if(!s4o(t).validForNewPackages)return this.warn("invalidLicense")}};function l4o(e){if(e.charAt(0)!=="@")return!1;var t=e.slice(1).split("/");return t.length!==2?!1:t[0]&&t[1]&&t[0]===encodeURIComponent(t[0])&&t[1]===encodeURIComponent(t[1])}function u4o(e){return!e.match(/[/@\s+%:]/)&&e===encodeURIComponent(e)}function g4o(e,t,r){if(e.charAt(0)==="."||!(l4o(e)||u4o(e))||t&&!r&&e!==e.toLowerCase()||e.toLowerCase()==="node_modules"||e.toLowerCase()==="favicon.ico")throw new Error("Invalid name: "+JSON.stringify(e))}function bOn(e,t){return e.author&&(e.author=t(e.author)),["maintainers","contributors"].forEach(function(r){Array.isArray(e[r])&&(e[r]=e[r].map(t))}),e}function A4o(e){if(typeof e=="string")return e;var t=e.name||"",r=e.url||e.web,n=r?" ("+r+")":"",a=e.email||e.mail,o=a?" <"+a+">":"";return t+o+n}function d4o(e){if(typeof e!="string")return e;var t=e.match(/^([^(<]+)/),r=e.match(/\(([^()]+)\)/),n=e.match(/<([^<>]+)>/),a={};return t&&t[0].trim()&&(a.name=t[0].trim()),n&&(a.email=n[1]),r&&(a.url=r[1]),a}function p4o(e){var t=e.optionalDependencies;if(t){var r=e.dependencies||{};Object.keys(t).forEach(function(n){r[n]=t[n]}),e.dependencies=r}}function f4o(e,t,r){if(!e)return{};if(typeof e=="string"&&(e=e.trim().split(/[\n\r\s\t ,]+/)),!Array.isArray(e))return e;r("deprecatedArrayDependencies",t);var n={};return e.filter(function(a){return typeof a=="string"}).forEach(function(a){a=a.trim().split(/(:?[@\s><=])/);var o=a.shift(),l=a.join("");l=l.trim(),l=l.replace(/^@/,""),n[o]=l}),n}function I4o(e,t){a4o.forEach(function(r){e[r]&&(e[r]=f4o(e[r],r,t))})}function h4o(e,t){e&&Object.keys(e).forEach(function(r){Poe.bugs[r]&&(t("typo",r,Poe.bugs[r],"bugs"),e[Poe.bugs[r]]=e[r],delete e[r])})}});var vOn=H(($ql,m4o)=>{m4o.exports={repositories:"'repositories' (plural) Not supported. Please pick one as the 'repository' field",missingRepository:"No repository field.",brokenGitUrl:"Probably broken git url: %s",nonObjectScripts:"scripts must be an object",nonStringScript:"script values must be string commands",nonArrayFiles:"Invalid 'files' member",invalidFilename:"Invalid filename in 'files' list: %s",nonArrayBundleDependencies:"Invalid 'bundleDependencies' list. Must be array of package names",nonStringBundleDependency:"Invalid bundleDependencies member: %s",nonDependencyBundleDependency:"Non-dependency in bundleDependencies: %s",nonObjectDependencies:"%s field must be an object",nonStringDependency:"Invalid dependency: %s %s",deprecatedArrayDependencies:"specifying %s as array is deprecated",deprecatedModules:"modules field is deprecated",nonArrayKeywords:"keywords should be an array of strings",nonStringKeyword:"keywords should be an array of strings",conflictingName:"%s is also the name of a node core module.",nonStringDescription:"'description' field should be a string",missingDescription:"No description",missingReadme:"No README data",missingLicense:"No license field.",nonEmailUrlBugsString:"Bug string field must be url, email, or {email,url}",nonUrlBugsUrlField:"bugs.url field must be a string url. Deleted.",nonEmailBugsEmailField:"bugs.email field must be a string email. Deleted.",emptyNormalizedBugs:"Normalized value of bugs field is an empty object. Deleted.",nonUrlHomepage:"homepage field must be a string url. Deleted.",invalidLicense:"license should be a valid SPDX license expression",typo:"%s should probably be %s."}});var TOn=H((e$l,wOn)=>{var BOn=wt("util"),Sfr=vOn();wOn.exports=function(){var e=Array.prototype.slice.call(arguments,0),t=e.shift();if(t==="typo")return C4o.apply(null,e);var r=Sfr[t]?Sfr[t]:t+": '%s'";return e.unshift(r),BOn.format.apply(null,e)};function C4o(e,t,r){return r&&(e=r+"['"+e+"']",t=r+"['"+t+"']"),BOn.format(Sfr.typo,e,t)}});var wfr=H((t$l,DOn)=>{DOn.exports=ROn;var vfr=SOn();ROn.fixer=vfr;var _4o=TOn(),y4o=["name","version","description","repository","modules","scripts","files","bin","man","bugs","keywords","readme","homepage","license"],b4o=["dependencies","people","typos"],Bfr=y4o.map(function(e){return NOn(e)+"Field"});Bfr=Bfr.concat(b4o);function ROn(e,t,r){t===!0&&(t=null,r=!0),r||(r=!1),(!t||e.private)&&(t=function(){}),e.scripts&&e.scripts.install==="node-gyp rebuild"&&!e.scripts.preinstall&&(e.gypfile=!0),vfr.warn=function(){t(_4o.apply(null,arguments))},Bfr.forEach(function(n){vfr["fix"+NOn(n)](e,r)}),e._id=e.name+"@"+e.version}function NOn(e){return e.charAt(0).toUpperCase()+e.slice(1)}});var Udt=H((s$l,Tfr)=>{var Jdt=process||{},FOn=Jdt.argv||[],Xdt=Jdt.env||{},B4o=!(Xdt.NO_COLOR||FOn.includes("--no-color"))&&(!!Xdt.FORCE_COLOR||FOn.includes("--color")||Jdt.platform==="win32"||(Jdt.stdout||{}).isTTY&&Xdt.TERM!=="dumb"||!!Xdt.CI),w4o=(e,t,r=e)=>n=>{let a=""+n,o=a.indexOf(t,e.length);return~o?e+T4o(a,t,r,o)+t:e+a+t},T4o=(e,t,r,n)=>{let a="",o=0;do a+=e.substring(o,n)+r,o=n+t.length,n=e.indexOf(t,o);while(~n);return a+e.substring(o)},ZOn=(e=B4o)=>{let t=e?w4o:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Tfr.exports=ZOn();Tfr.exports.createColors=ZOn});var Rfr=H(Kdt=>{Object.defineProperty(Kdt,"__esModule",{value:!0});Kdt.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;Kdt.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!!(e[3]||e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}});var OOn=H(fMe=>{"use strict";Object.defineProperty(fMe,"__esModule",{value:!0});fMe.isIdentifierChar=WOn;fMe.isIdentifierName=k4o;fMe.isIdentifierStart=POn;var Dfr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",LOn="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",R4o=new RegExp("["+Dfr+"]"),N4o=new RegExp("["+Dfr+LOn+"]");Dfr=LOn=null;var VOn=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],D4o=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Nfr(e,t){let r=65536;for(let n=0,a=t.length;ne)return!1;if(r+=t[n+1],r>=e)return!0}return!1}function POn(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&R4o.test(String.fromCharCode(e)):Nfr(e,VOn)}function WOn(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&N4o.test(String.fromCharCode(e)):Nfr(e,VOn)||Nfr(e,D4o)}function k4o(e){let t=!0;for(let r=0;r{"use strict";Object.defineProperty(bIe,"__esModule",{value:!0});bIe.isKeyword=L4o;bIe.isReservedWord=MOn;bIe.isStrictBindOnlyReservedWord=YOn;bIe.isStrictBindReservedWord=Z4o;bIe.isStrictReservedWord=HOn;var kfr={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},x4o=new Set(kfr.keyword),G4o=new Set(kfr.strict),F4o=new Set(kfr.strictBind);function MOn(e,t){return t&&e==="await"||e==="enum"}function HOn(e,t){return MOn(e,t)||G4o.has(e)}function YOn(e){return F4o.has(e)}function Z4o(e,t){return HOn(e,t)||YOn(e)}function L4o(e){return x4o.has(e)}});var Gfr=H(c8=>{"use strict";Object.defineProperty(c8,"__esModule",{value:!0});Object.defineProperty(c8,"isIdentifierChar",{enumerable:!0,get:function(){return xfr.isIdentifierChar}});Object.defineProperty(c8,"isIdentifierName",{enumerable:!0,get:function(){return xfr.isIdentifierName}});Object.defineProperty(c8,"isIdentifierStart",{enumerable:!0,get:function(){return xfr.isIdentifierStart}});Object.defineProperty(c8,"isKeyword",{enumerable:!0,get:function(){return IMe.isKeyword}});Object.defineProperty(c8,"isReservedWord",{enumerable:!0,get:function(){return IMe.isReservedWord}});Object.defineProperty(c8,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindOnlyReservedWord}});Object.defineProperty(c8,"isStrictBindReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindReservedWord}});Object.defineProperty(c8,"isStrictReservedWord",{enumerable:!0,get:function(){return IMe.isStrictReservedWord}});var xfr=OOn(),IMe=QOn()});var t3n=H(hMe=>{"use strict";Object.defineProperty(hMe,"__esModule",{value:!0});var Ffr=Udt(),XOn=Rfr(),JOn=Gfr();function V4o(){return typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?!1:Ffr.isColorSupported}var jdt=(e,t)=>r=>e(t(r));function jOn(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:jdt(jdt(e.white,e.bgRed),e.bold),gutter:e.gray,marker:jdt(e.red,e.bold),message:jdt(e.red,e.bold),reset:e.reset}}var P4o=jOn(Ffr.createColors(!0)),W4o=jOn(Ffr.createColors(!1));function zOn(e){return e?P4o:W4o}var O4o=new Set(["as","async","from","get","of","set"]),M4o=/\r\n|[\n\r\u2028\u2029]/,H4o=/^[()[\]{}]$/,qOn;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if(JOn.isKeyword(r.value)||JOn.isStrictReservedWord(r.value,!0)||O4o.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="t[n](o)).join(` +`,t};Vv.prototype.Program=function(e){var t="",r=e.body,n=void 0,a=void 0;if(e.blockParams){var o="BLOCK PARAMS: [";for(n=0,a=e.blockParams.length;n "+t+" }}")};Vv.prototype.PartialBlockStatement=function(e){var t="PARTIAL BLOCK:"+e.name.original;return e.params[0]&&(t+=" "+this.accept(e.params[0])),e.hash&&(t+=" "+this.accept(e.hash)),t+=" "+this.pad("PROGRAM:"),this.padding++,t+=this.accept(e.program),this.padding--,this.pad("{{> "+t+" }}")};Vv.prototype.ContentStatement=function(e){return this.pad("CONTENT[ '"+e.value+"' ]")};Vv.prototype.CommentStatement=function(e){return this.pad("{{! '"+e.value+"' }}")};Vv.prototype.SubExpression=function(e){for(var t=e.params,r=[],n=void 0,a=0,o=t.length;a{"use strict";Object.defineProperty(Mdt,"__esModule",{value:!0});Mdt.LRUCache=void 0;var jve=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,VWn=new Set,Afr=typeof process=="object"&&process?process:{},PWn=(e,t,r,n)=>{typeof Afr.emitWarning=="function"?Afr.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)},Odt=globalThis.AbortController,LWn=globalThis.AbortSignal;if(typeof Odt>"u"){LWn=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,a){this._onabort.push(a)}},Odt=class{constructor(){t()}signal=new LWn;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let a of this.signal._onabort)a(n);this.signal.onabort?.(n)}}};let e=Afr.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,PWn("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var CXo=e=>!VWn.has(e),Gql=Symbol("type"),Loe=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),WWn=e=>Loe(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zve:null:null,zve=class extends Array{constructor(t){super(t),this.fill(0)}},dfr=class e{heap;length;static#e=!1;static create(t){let r=WWn(t);if(!r)return[];e.#e=!0;let n=new e(t,r);return e.#e=!1,n}constructor(t,r){if(!e.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},pfr=class e{#e;#t;#n;#r;#i;#s;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#o;#g;#l;#u;#a;#m;#f;#I;#d;#b;#h;#S;#v;#C;#E;#_;#p;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#C,sizes:t.#S,keyMap:t.#l,keyList:t.#u,valList:t.#a,next:t.#m,prev:t.#f,get head(){return t.#I},get tail(){return t.#d},free:t.#b,isBackgroundFetch:r=>t.#A(r),backgroundFetch:(r,n,a,o)=>t.#V(r,n,a,o),moveToTail:r=>t.#W(r),indexes:r=>t.#T(r),rindexes:r=>t.#R(r),isStale:r=>t.#y(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#g}get size(){return this.#o}get fetchMethod(){return this.#i}get memoMethod(){return this.#s}get dispose(){return this.#n}get disposeAfter(){return this.#r}constructor(t){let{max:r=0,ttl:n,ttlResolution:a=1,ttlAutopurge:o,updateAgeOnGet:l,updateAgeOnHas:A,allowStale:f,dispose:I,disposeAfter:C,noDisposeOnSet:b,noUpdateTTL:E,maxSize:N=0,maxEntrySize:B=0,sizeCalculation:F,fetchMethod:Q,memoMethod:X,noDeleteOnFetchRejection:ae,noDeleteOnStaleGet:ne,allowStaleOnFetchRejection:ce,allowStaleOnFetchAbort:fe,ignoreFetchAbort:ue}=t;if(r!==0&&!Loe(r))throw new TypeError("max option must be a nonnegative integer");let de=r?WWn(r):Array;if(!de)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=N,this.maxEntrySize=B||this.#t,this.sizeCalculation=F,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(X!==void 0&&typeof X!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#s=X,Q!==void 0&&typeof Q!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=Q,this.#_=!!Q,this.#l=new Map,this.#u=new Array(r).fill(void 0),this.#a=new Array(r).fill(void 0),this.#m=new de(r),this.#f=new de(r),this.#I=0,this.#d=0,this.#b=dfr.create(r),this.#o=0,this.#g=0,typeof I=="function"&&(this.#n=I),typeof C=="function"?(this.#r=C,this.#h=[]):(this.#r=void 0,this.#h=void 0),this.#E=!!this.#n,this.#p=!!this.#r,this.noDisposeOnSet=!!b,this.noUpdateTTL=!!E,this.noDeleteOnFetchRejection=!!ae,this.allowStaleOnFetchRejection=!!ce,this.allowStaleOnFetchAbort=!!fe,this.ignoreFetchAbort=!!ue,this.maxEntrySize!==0){if(this.#t!==0&&!Loe(this.#t))throw new TypeError("maxSize must be a positive integer if specified");if(!Loe(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#N()}if(this.allowStale=!!f,this.noDeleteOnStaleGet=!!ne,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!A,this.ttlResolution=Loe(a)||a===0?a:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!Loe(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#B()}if(this.#e===0&&this.ttl===0&&this.#t===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#t){let be="LRU_CACHE_UNBOUNDED";CXo(be)&&(VWn.add(be),PWn("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",be,e))}}getRemainingTTL(t){return this.#l.has(t)?1/0:0}#B(){let t=new zve(this.#e),r=new zve(this.#e);this.#C=t,this.#v=r,this.#k=(o,l,A=jve.now())=>{if(r[o]=l!==0?A:0,t[o]=l,l!==0&&this.ttlAutopurge){let f=setTimeout(()=>{this.#y(o)&&this.#D(this.#u[o],"expire")},l+1);f.unref&&f.unref()}},this.#w=o=>{r[o]=t[o]!==0?jve.now():0},this.#c=(o,l)=>{if(t[l]){let A=t[l],f=r[l];if(!A||!f)return;o.ttl=A,o.start=f,o.now=n||a();let I=o.now-f;o.remainingTTL=A-I}};let n=0,a=()=>{let o=jve.now();if(this.ttlResolution>0){n=o;let l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return o};this.getRemainingTTL=o=>{let l=this.#l.get(o);if(l===void 0)return 0;let A=t[l],f=r[l];if(!A||!f)return 1/0;let I=(n||a())-f;return A-I},this.#y=o=>{let l=r[o],A=t[o];return!!A&&!!l&&(n||a())-l>A}}#w=()=>{};#c=()=>{};#k=()=>{};#y=()=>!1;#N(){let t=new zve(this.#e);this.#g=0,this.#S=t,this.#x=r=>{this.#g-=t[r],t[r]=0},this.#F=(r,n,a,o)=>{if(this.#A(n))return 0;if(!Loe(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,r),!Loe(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a},this.#G=(r,n,a)=>{if(t[r]=n,this.#t){let o=this.#t-t[r];for(;this.#g>o;)this.#L(!0)}this.#g+=t[r],a&&(a.entrySize=n,a.totalCalculatedSize=this.#g)}}#x=t=>{};#G=(t,r,n)=>{};#F=(t,r,n,a)=>{if(n||a)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#d;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#I));)r=this.#f[r]}*#R({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#I;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#d));)r=this.#m[r]}#Z(t){return t!==void 0&&this.#l.get(this.#u[t])===t}*entries(){for(let t of this.#T())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*rentries(){for(let t of this.#R())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*keys(){for(let t of this.#T()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*rkeys(){for(let t of this.#R()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*values(){for(let t of this.#T())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}*rvalues(){for(let t of this.#R())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;if(o!==void 0&&t(o,this.#u[n],this))return this.get(this.#u[n],r)}}forEach(t,r=this){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}rforEach(t,r=this){for(let n of this.#R()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}purgeStale(){let t=!1;for(let r of this.#R({allowStale:!0}))this.#y(r)&&(this.#D(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#l.get(t);if(r===void 0)return;let n=this.#a[r],a=this.#A(n)?n.__staleWhileFetching:n;if(a===void 0)return;let o={value:a};if(this.#C&&this.#v){let l=this.#C[r],A=this.#v[r];if(l&&A){let f=l-(jve.now()-A);o.ttl=f,o.start=Date.now()}}return this.#S&&(o.size=this.#S[r]),o}dump(){let t=[];for(let r of this.#T({allowStale:!0})){let n=this.#u[r],a=this.#a[r],o=this.#A(a)?a.__staleWhileFetching:a;if(o===void 0||n===void 0)continue;let l={value:o};if(this.#C&&this.#v){l.ttl=this.#C[r];let A=jve.now()-this.#v[r];l.start=Math.floor(Date.now()-A)}this.#S&&(l.size=this.#S[r]),t.unshift([n,l])}return t}load(t){this.clear();for(let[r,n]of t){if(n.start){let a=Date.now()-n.start;n.start=jve.now()-a}this.set(r,n.value,n)}}set(t,r,n={}){if(r===void 0)return this.delete(t),this;let{ttl:a=this.ttl,start:o,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:A=this.sizeCalculation,status:f}=n,{noUpdateTTL:I=this.noUpdateTTL}=n,C=this.#F(t,r,n.size||0,A);if(this.maxEntrySize&&C>this.maxEntrySize)return f&&(f.set="miss",f.maxEntrySizeExceeded=!0),this.#D(t,"set"),this;let b=this.#o===0?void 0:this.#l.get(t);if(b===void 0)b=this.#o===0?this.#d:this.#b.length!==0?this.#b.pop():this.#o===this.#e?this.#L(!1):this.#o,this.#u[b]=t,this.#a[b]=r,this.#l.set(t,b),this.#m[this.#d]=b,this.#f[b]=this.#d,this.#d=b,this.#o++,this.#G(b,C,f),f&&(f.set="add"),I=!1;else{this.#W(b);let E=this.#a[b];if(r!==E){if(this.#_&&this.#A(E)){E.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:N}=E;N!==void 0&&!l&&(this.#E&&this.#n?.(N,t,"set"),this.#p&&this.#h?.push([N,t,"set"]))}else l||(this.#E&&this.#n?.(E,t,"set"),this.#p&&this.#h?.push([E,t,"set"]));if(this.#x(b),this.#G(b,C,f),this.#a[b]=r,f){f.set="replace";let N=E&&this.#A(E)?E.__staleWhileFetching:E;N!==void 0&&(f.oldValue=N)}}else f&&(f.set="update")}if(a!==0&&!this.#C&&this.#B(),this.#C&&(I||this.#k(b,a,o),f&&this.#c(f,b)),!l&&this.#p&&this.#h){let E=this.#h,N;for(;N=E?.shift();)this.#r?.(...N)}return this}pop(){try{for(;this.#o;){let t=this.#a[this.#I];if(this.#L(!0),this.#A(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#h){let t=this.#h,r;for(;r=t?.shift();)this.#r?.(...r)}}}#L(t){let r=this.#I,n=this.#u[r],a=this.#a[r];return this.#_&&this.#A(a)?a.__abortController.abort(new Error("evicted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(a,n,"evict"),this.#p&&this.#h?.push([a,n,"evict"])),this.#x(r),t&&(this.#u[r]=void 0,this.#a[r]=void 0,this.#b.push(r)),this.#o===1?(this.#I=this.#d=0,this.#b.length=0):this.#I=this.#m[r],this.#l.delete(n),this.#o--,r}has(t,r={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:a}=r,o=this.#l.get(t);if(o!==void 0){let l=this.#a[o];if(this.#A(l)&&l.__staleWhileFetching===void 0)return!1;if(this.#y(o))a&&(a.has="stale",this.#c(a,o));else return n&&this.#w(o),a&&(a.has="hit",this.#c(a,o)),!0}else a&&(a.has="miss");return!1}peek(t,r={}){let{allowStale:n=this.allowStale}=r,a=this.#l.get(t);if(a===void 0||!n&&this.#y(a))return;let o=this.#a[a];return this.#A(o)?o.__staleWhileFetching:o}#V(t,r,n,a){let o=r===void 0?void 0:this.#a[r];if(this.#A(o))return o;let l=new Odt,{signal:A}=n;A?.addEventListener("abort",()=>l.abort(A.reason),{signal:l.signal});let f={signal:l.signal,options:n,context:a},I=(F,Q=!1)=>{let{aborted:X}=l.signal,ae=n.ignoreFetchAbort&&F!==void 0;if(n.status&&(X&&!Q?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ae&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),X&&!ae&&!Q)return b(l.signal.reason);let ne=N;return this.#a[r]===N&&(F===void 0?ne.__staleWhileFetching?this.#a[r]=ne.__staleWhileFetching:this.#D(t,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(t,F,f.options))),F},C=F=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=F),b(F)),b=F=>{let{aborted:Q}=l.signal,X=Q&&n.allowStaleOnFetchAbort,ae=X||n.allowStaleOnFetchRejection,ne=ae||n.noDeleteOnFetchRejection,ce=N;if(this.#a[r]===N&&(!ne||ce.__staleWhileFetching===void 0?this.#D(t,"fetch"):X||(this.#a[r]=ce.__staleWhileFetching)),ae)return n.status&&ce.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),ce.__staleWhileFetching;if(ce.__returned===ce)throw F},E=(F,Q)=>{let X=this.#i?.(t,o,f);X&&X instanceof Promise&&X.then(ae=>F(ae===void 0?void 0:ae),Q),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(F(void 0),n.allowStaleOnFetchAbort&&(F=ae=>I(ae,!0)))})};n.status&&(n.status.fetchDispatched=!0);let N=new Promise(E).then(I,C),B=Object.assign(N,{__abortController:l,__staleWhileFetching:o,__returned:void 0});return r===void 0?(this.set(t,B,{...f.options,status:void 0}),r=this.#l.get(t)):this.#a[r]=B,B}#A(t){if(!this.#_)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof Odt}async fetch(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:A=this.noDisposeOnSet,size:f=0,sizeCalculation:I=this.sizeCalculation,noUpdateTTL:C=this.noUpdateTTL,noDeleteOnFetchRejection:b=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:E=this.allowStaleOnFetchRejection,ignoreFetchAbort:N=this.ignoreFetchAbort,allowStaleOnFetchAbort:B=this.allowStaleOnFetchAbort,context:F,forceRefresh:Q=!1,status:X,signal:ae}=r;if(!this.#_)return X&&(X.fetch="get"),this.get(t,{allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,status:X});let ne={allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,ttl:l,noDisposeOnSet:A,size:f,sizeCalculation:I,noUpdateTTL:C,noDeleteOnFetchRejection:b,allowStaleOnFetchRejection:E,allowStaleOnFetchAbort:B,ignoreFetchAbort:N,status:X,signal:ae},ce=this.#l.get(t);if(ce===void 0){X&&(X.fetch="miss");let fe=this.#V(t,ce,ne,F);return fe.__returned=fe}else{let fe=this.#a[ce];if(this.#A(fe)){let De=n&&fe.__staleWhileFetching!==void 0;return X&&(X.fetch="inflight",De&&(X.returnedStale=!0)),De?fe.__staleWhileFetching:fe.__returned=fe}let ue=this.#y(ce);if(!Q&&!ue)return X&&(X.fetch="hit"),this.#W(ce),a&&this.#w(ce),X&&this.#c(X,ce),fe;let de=this.#V(t,ce,ne,F),Se=de.__staleWhileFetching!==void 0&&n;return X&&(X.fetch=ue?"stale":"refresh",Se&&ue&&(X.returnedStale=!0)),Se?de.__staleWhileFetching:de.__returned=de}}async forceFetch(t,r={}){let n=await this.fetch(t,r);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(t,r={}){let n=this.#s;if(!n)throw new Error("no memoMethod provided to constructor");let{context:a,forceRefresh:o,...l}=r,A=this.get(t,l);if(!o&&A!==void 0)return A;let f=n(t,A,{options:l,context:a});return this.set(t,f,l),f}get(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:l}=r,A=this.#l.get(t);if(A!==void 0){let f=this.#a[A],I=this.#A(f);return l&&this.#c(l,A),this.#y(A)?(l&&(l.get="stale"),I?(l&&n&&f.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?f.__staleWhileFetching:void 0):(o||this.#D(t,"expire"),l&&n&&(l.returnedStale=!0),n?f:void 0)):(l&&(l.get="hit"),I?f.__staleWhileFetching:(this.#W(A),a&&this.#w(A),f))}else l&&(l.get="miss")}#P(t,r){this.#f[r]=t,this.#m[t]=r}#W(t){t!==this.#d&&(t===this.#I?this.#I=this.#m[t]:this.#P(this.#f[t],this.#m[t]),this.#P(this.#d,t),this.#d=t)}delete(t){return this.#D(t,"delete")}#D(t,r){let n=!1;if(this.#o!==0){let a=this.#l.get(t);if(a!==void 0)if(n=!0,this.#o===1)this.#O(r);else{this.#x(a);let o=this.#a[a];if(this.#A(o)?o.__abortController.abort(new Error("deleted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(o,t,r),this.#p&&this.#h?.push([o,t,r])),this.#l.delete(t),this.#u[a]=void 0,this.#a[a]=void 0,a===this.#d)this.#d=this.#f[a];else if(a===this.#I)this.#I=this.#m[a];else{let l=this.#f[a];this.#m[l]=this.#m[a];let A=this.#m[a];this.#f[A]=this.#f[a]}this.#o--,this.#b.push(a)}}if(this.#p&&this.#h?.length){let a=this.#h,o;for(;o=a?.shift();)this.#r?.(...o)}return n}clear(){return this.#O("delete")}#O(t){for(let r of this.#R({allowStale:!0})){let n=this.#a[r];if(this.#A(n))n.__abortController.abort(new Error("deleted"));else{let a=this.#u[r];this.#E&&this.#n?.(n,a,t),this.#p&&this.#h?.push([n,a,t])}}if(this.#l.clear(),this.#a.fill(void 0),this.#u.fill(void 0),this.#C&&this.#v&&(this.#C.fill(0),this.#v.fill(0)),this.#S&&this.#S.fill(0),this.#I=0,this.#d=0,this.#b.length=0,this.#g=0,this.#o=0,this.#p&&this.#h){let r=this.#h,n;for(;n=r?.shift();)this.#r?.(...n)}}};Mdt.LRUCache=pfr});var HWn=H((Zql,MWn)=>{"use strict";var M_=(...e)=>e.every(t=>t)?e.join(""):"",nT=e=>e?encodeURIComponent(e):"",OWn=e=>e.toLowerCase().replace(/^\W+|\/|\W+$/g,"").replace(/\W+/g,"-"),_Xo={sshtemplate:({domain:e,user:t,project:r,committish:n})=>`git@${e}:${t}/${r}.git${M_("#",n)}`,sshurltemplate:({domain:e,user:t,project:r,committish:n})=>`git+ssh://git@${e}/${t}/${r}.git${M_("#",n)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a,path:o})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o)}`,browsetemplate:({domain:e,user:t,project:r,committish:n,treepath:a})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n))}`,browsetreetemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,browseblobtemplate:({domain:e,user:t,project:r,committish:n,blobpath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,docstemplate:({domain:e,user:t,project:r,treepath:n,committish:a})=>`https://${e}/${t}/${r}${M_("/",n,"/",nT(a))}#readme`,httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/raw/${nT(n||"HEAD")}/${a}`,shortcuttemplate:({type:e,user:t,project:r,committish:n})=>`${e}:${t}/${r}${M_("#",n)}`,pathtemplate:({user:e,project:t,committish:r})=>`${e}/${t}${M_("#",r)}`,bugstemplate:({domain:e,user:t,project:r})=>`https://${e}/${t}/${r}/issues`,hashformat:OWn},Voe={};Voe.github={protocols:["git:","http:","git+ssh:","git+https:","ssh:","https:"],domain:"github.com",treepath:"tree",blobpath:"blob",editpath:"edit",filetemplate:({auth:e,user:t,project:r,committish:n,path:a})=>`https://${M_(e,"@")}raw.githubusercontent.com/${t}/${r}/${nT(n||"HEAD")}/${a}`,gittemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://codeload.${e}/${t}/${r}/tar.gz/${nT(n||"HEAD")}`,extract:e=>{let[,t,r,n,a]=e.pathname.split("/",5);if(!(n&&n!=="tree")&&(n||(a=e.hash.slice(1)),r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:a}}};Voe.bitbucket={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"bitbucket.org",treepath:"src",blobpath:"src",editpath:"?mode=edit",edittemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,editpath:l})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o,l)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/get/${nT(n||"HEAD")}.tar.gz`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["get"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};Voe.gitlab={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"gitlab.com",treepath:"tree",blobpath:"tree",editpath:"-/edit",httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/repository/archive.tar.gz?ref=${nT(n||"HEAD")}`,extract:e=>{let t=e.pathname.slice(1);if(t.includes("/-/")||t.includes("/archive.tar.gz"))return;let r=t.split("/"),n=r.pop();n.endsWith(".git")&&(n=n.slice(0,-4));let a=r.join("/");if(!(!a||!n))return{user:a,project:n,committish:e.hash.slice(1)}}};Voe.gist={protocols:["git:","git+ssh:","git+https:","ssh:","https:"],domain:"gist.github.com",editpath:"edit",sshtemplate:({domain:e,project:t,committish:r})=>`git@${e}:${t}.git${M_("#",r)}`,sshurltemplate:({domain:e,project:t,committish:r})=>`git+ssh://git@${e}/${t}.git${M_("#",r)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a})=>`https://${e}/${t}/${r}${M_("/",nT(n))}/${a}`,browsetemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,browsetreetemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,browseblobtemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,docstemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,httpstemplate:({domain:e,project:t,committish:r})=>`git+https://${e}/${t}.git${M_("#",r)}`,filetemplate:({user:e,project:t,committish:r,path:n})=>`https://gist.githubusercontent.com/${e}/${t}/raw${M_("/",nT(r))}/${n}`,shortcuttemplate:({type:e,project:t,committish:r})=>`${e}:${t}${M_("#",r)}`,pathtemplate:({project:e,committish:t})=>`${e}${M_("#",t)}`,bugstemplate:({domain:e,project:t})=>`https://${e}/${t}`,gittemplate:({domain:e,project:t,committish:r})=>`git://${e}/${t}.git${M_("#",r)}`,tarballtemplate:({project:e,committish:t})=>`https://codeload.github.com/gist/${e}/tar.gz/${nT(t||"HEAD")}`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(n!=="raw"){if(!r){if(!t)return;r=t,t=null}return r.endsWith(".git")&&(r=r.slice(0,-4)),{user:t,project:r,committish:e.hash.slice(1)}}},hashformat:function(e){return e&&"file-"+OWn(e)}};Voe.sourcehut={protocols:["git+ssh:","https:"],domain:"git.sr.ht",treepath:"tree",blobpath:"tree",filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/blob/${nT(n)||"HEAD"}/${a}`,httpstemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}.git${M_("#",n)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/archive/${nT(n)||"HEAD"}.tar.gz`,bugstemplate:()=>null,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["archive"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};for(let[e,t]of Object.entries(Voe))Voe[e]=Object.assign({},_Xo,t);MWn.exports=Voe});var Ifr=H((Lql,QWn)=>{var yXo=wt("url"),ffr=(e,t,r)=>{let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)},YWn=e=>{try{return new yXo.URL(e)}catch{}},bXo=(e,t)=>{let r=e.indexOf(":"),n=e.slice(0,r+1);if(Object.prototype.hasOwnProperty.call(t,n))return e;let a=e.indexOf("@");return a>-1?a>r?`git+ssh://${e}`:e:e.indexOf("//")===r+1?e:`${e.slice(0,r+1)}//${e.slice(r+1)}`},EXo=e=>{let t=ffr(e,"@","#"),r=ffr(e,":","#");return r>t&&(e=e.slice(0,r)+"/"+e.slice(r+1)),ffr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`git+ssh://${e}`),e};QWn.exports=(e,t)=>{let r=t?bXo(e,t):e;return YWn(r)||YWn(EXo(r))}});var JWn=H((Vql,XWn)=>{"use strict";var SXo=Ifr(),vXo=e=>{let t=e.indexOf("#"),r=e.indexOf("/"),n=e.indexOf("/",r+1),a=e.indexOf(":"),o=/\s/.exec(e),l=e.indexOf("@"),A=!o||t>-1&&o.index>t,f=l===-1||t>-1&&l>t,I=a===-1||t>-1&&a>t,C=n===-1||t>-1&&n>t,b=r>0,E=t>-1?e[t-1]!=="/":!e.endsWith("/"),N=!e.startsWith(".");return A&&b&&E&&N&&f&&I&&C};XWn.exports=(e,t,{gitHosts:r,protocols:n})=>{if(!e)return;let a=vXo(e)?`github:${e}`:e,o=SXo(a,n);if(!o)return;let l=r.byShortcut[o.protocol],A=r.byDomain[o.hostname.startsWith("www.")?o.hostname.slice(4):o.hostname],f=l||A;if(!f)return;let I=r[l||A],C=null;n[o.protocol]?.auth&&(o.username||o.password)&&(C=`${o.username}${o.password?":"+o.password:""}`);let b=null,E=null,N=null,B=null;try{if(l){let F=o.pathname.startsWith("/")?o.pathname.slice(1):o.pathname,Q=F.indexOf("@");Q>-1&&(F=F.slice(Q+1));let X=F.lastIndexOf("/");X>-1?(E=decodeURIComponent(F.slice(0,X)),E||(E=null),N=decodeURIComponent(F.slice(X+1))):N=decodeURIComponent(F),N.endsWith(".git")&&(N=N.slice(0,-4)),o.hash&&(b=decodeURIComponent(o.hash.slice(1))),B="shortcut"}else{if(!I.protocols.includes(o.protocol))return;let F=I.extract(o);if(!F)return;E=F.user&&decodeURIComponent(F.user),N=decodeURIComponent(F.project),b=decodeURIComponent(F.committish),B=n[o.protocol]?.name||o.protocol.slice(0,-1)}}catch(F){if(F instanceof URIError)return;throw F}return[f,E,C,N,b,B,t]}});var mfr=H((Pql,UWn)=>{"use strict";var{LRUCache:BXo}=yIe(),wXo=HWn(),TXo=JWn(),RXo=Ifr(),hfr=new BXo({max:1e3}),Hdt=class e{constructor(t,r,n,a,o,l,A={}){Object.assign(this,e.#e[t],{type:t,user:r,auth:n,project:a,committish:o,default:l,opts:A})}static#e={byShortcut:{},byDomain:{}};static#t={"git+ssh:":{name:"sshurl"},"ssh:":{name:"sshurl"},"git+https:":{name:"https",auth:!0},"git:":{auth:!0},"http:":{auth:!0},"https:":{auth:!0},"git+http:":{auth:!0}};static addHost(t,r){e.#e[t]=r,e.#e.byDomain[r.domain]=t,e.#e.byShortcut[`${t}:`]=t,e.#t[`${t}:`]={name:t}}static fromUrl(t,r){if(typeof t!="string")return;let n=t+JSON.stringify(r||{});if(!hfr.has(n)){let a=TXo(t,r,{gitHosts:e.#e,protocols:e.#t});hfr.set(n,a?new e(...a):void 0)}return hfr.get(n)}static parseUrl(t){return RXo(t)}#n(t,r){if(typeof t!="function")return null;let n={...this,...this.opts,...r};n.path||(n.path=""),n.path.startsWith("/")&&(n.path=n.path.slice(1)),n.noCommittish&&(n.committish=null);let a=t(n);return n.noGitPlus&&a.startsWith("git+")?a.slice(4):a}hash(){return this.committish?`#${this.committish}`:""}ssh(t){return this.#n(this.sshtemplate,t)}sshurl(t){return this.#n(this.sshurltemplate,t)}browse(t,...r){return typeof t!="string"?this.#n(this.browsetemplate,t):typeof r[0]!="string"?this.#n(this.browsetreetemplate,{...r[0],path:t}):this.#n(this.browsetreetemplate,{...r[1],fragment:r[0],path:t})}browseFile(t,...r){return typeof r[0]!="string"?this.#n(this.browseblobtemplate,{...r[0],path:t}):this.#n(this.browseblobtemplate,{...r[1],fragment:r[0],path:t})}docs(t){return this.#n(this.docstemplate,t)}bugs(t){return this.#n(this.bugstemplate,t)}https(t){return this.#n(this.httpstemplate,t)}git(t){return this.#n(this.gittemplate,t)}shortcut(t){return this.#n(this.shortcuttemplate,t)}path(t){return this.#n(this.pathtemplate,t)}tarball(t){return this.#n(this.tarballtemplate,{...t,noCommittish:!1})}file(t,r){return this.#n(this.filetemplate,{...r,path:t})}edit(t,r){return this.#n(this.edittemplate,{...r,path:t})}getDefaultRepresentation(){return this.default}toString(t){return this.default&&typeof this[this.default]=="function"?this[this.default](t):this.sshurl(t)}};for(let[e,t]of Object.entries(wXo))Hdt.addHost(e,t);UWn.exports=Hdt});var jWn=H((Wql,KWn)=>{"use strict";var{URL:NXo}=wt("url"),DXo=new RegExp(/^\/?:?([/\w-.]+)\/([\w-.]+)\/?$/),kXo=new RegExp(/^\/repos\/([\w-.]+)\/([\w-.]+)\/(?:tarball|zipball)(?:\/.+)?$/),xXo=new RegExp(/^\/([\w-.]+)\/([\w-.]+)\/(?:legacy\.(?:zip|tar\.gz))(?:\/.+)?$/);KWn.exports=e=>{let t=e.replace(/^git@/,"https://git@").replace(/git@([.\w]+):(?!\d)/,"git@$1/").replace(/\.git$/,""),r=new NXo(t,"https://example.com/"),n=a=>({browse:FXo(r,a),domain:r.host,project:a[2]||null,type:GXo(r),user:a[1]||null});if(r.host){if(r.host.includes("api.github.com")){let a=kXo.exec(r.pathname)||[];return n(a)}if(r.host.includes("codeload.github.com")){let a=xXo.exec(r.pathname)||[];return n(a)}}return n(DXo.exec(r.pathname)||[])};function GXo({host:e}){return typeof e!="string"?null:e.indexOf("github")!==-1?"github":e.indexOf("gitlab")!==-1?"gitlab":null}function FXo(e,t){let n=`${e.protocol==="http:"?"http:":"https:"}//${e.host}/${t[1]}/${t[2]}`;return()=>n}});var Cfr=H((Hql,LXo)=>{LXo.exports=["0BSD","3D-Slicer-1.0","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMD-newlib","AMDPLPA","AML","AML-glslang","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Display-PostScript","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Darwin","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-2-Clause-first-lines","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-acpica","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Source-beginning-file","BSD-Systemics","BSD-Systemics-W3Works","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Borceux","Brian-Gladman-2-Clause","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-AU","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CMU-Mach-nodoc","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","Caldera-no-preamble","Catharon","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CrystalStacker","Cube","D-FSL-1.0","DEC-3-Clause","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DRL-1.1","DSDP","DocBook-Schema","DocBook-XML","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFAP-no-warranty-disclaimer","FSFUL","FSFULLR","FSFULLRWD","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GCR-docs","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Giftware","Glide","Glulxe","Graphics-Gems","Gutmann","HIDAPI","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Fenneberg-Livingston","HPND-INRIA-IMAG","HPND-Intel","HPND-Kevlin-Henney","HPND-MIT-disclaimer","HPND-Markus-Kuhn","HPND-Netrek","HPND-Pbmplus","HPND-UC","HPND-UC-export-US","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-acknowledgement","HPND-export-US-modify","HPND-export2-US","HPND-merchantability-variant","HPND-sell-MIT-disclaimer-xserver","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HPND-sell-variant-MIT-disclaimer-rev","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ISC-Veillard","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPD-document","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIT","MIT-0","MIT-CMU","MIT-Festival","MIT-Khronos-old","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","Mackerras-3-Clause","Mackerras-3-Clause-acknowledgment","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCBI-PD","NCGL-UK-2.0","NCL","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTP","NTP-0","Naumen","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OAR","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","OpenSSL-standalone","OpenVision","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PPL","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Pixar","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","Ruby-pty","SAX-PD","SAX-PD-2.0","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMLNJ","SMPPL","SNIA","SPL-1.0","SSH-OpenSSH","SSH-short","SSLeay-standalone","SSPL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","Sun-PPP","Sun-PPP-2000","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TGPPL-1.0","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","UCAR","UCL-1.0","UMich-Merit","UPL-1.0","URT-RLE","Ubuntu-font-1.0","Unicode-3.0","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","X11-swapped","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","any-OSI","bcrypt-Solar-Designer","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","cve-tou","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","gnuplot","gtkbook","hdparm","iMatix","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","mailprio","metamail","mpi-permissive","mpich2","mplus","pkgconf","pnmstitch","psfrag","psutils","python-ldap","radvd","snprintf","softSurfer","ssh-keyscan","swrule","threeparttable","ulem","w3m","xinetd","xkeyboard-config-Zinoviev","xlock","xpp","xzoom","zlib-acknowledgement"]});var qWn=H((Yql,VXo)=>{VXo.exports=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.1","LGPL-3.0","Net-SNMP","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"]});var $Wn=H((Qql,PXo)=>{PXo.exports=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-1.24","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","fmt-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","Gmsh-exception","GNAT-exception","GNOME-examples-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"]});var tOn=H((Xql,eOn)=>{"use strict";var WXo=[].concat(Cfr()).concat(qWn()),OXo=$Wn();eOn.exports=function(e){var t=0;function r(){return t1&&e[t-2]===" ")throw new Error("Space before `+`");return B&&{type:"OPERATOR",string:B}}function l(){return n(/[A-Za-z0-9-.]+/)}function A(){var B=l();if(!B)throw new Error("Expected idstring at offset "+t);return B}function f(){if(n("DocumentRef-")){var B=A();return{type:"DOCUMENTREF",string:B}}}function I(){if(n("LicenseRef-")){var B=A();return{type:"LICENSEREF",string:B}}}function C(){var B=t,F=l();if(WXo.indexOf(F)!==-1)return{type:"LICENSE",string:F};if(OXo.indexOf(F)!==-1)return{type:"EXCEPTION",string:F};t=B}function b(){return o()||f()||I()||C()}for(var E=[];r()&&(a(),!!r());){var N=b();if(!N)throw new Error("Unexpected `"+e[t]+"` at offset "+t);E.push(N)}return E}});var nOn=H((Jql,rOn)=>{"use strict";rOn.exports=function(e){var t=0;function r(){return t{"use strict";var MXo=tOn(),HXo=nOn();iOn.exports=function(e){return HXo(MXo(e))}});var dOn=H((Kql,AOn)=>{var YXo=_fr(),QXo=Cfr();function Ydt(e){try{return YXo(e),!0}catch{return!1}}function gOn(e,t){var r=t[0].length-e[0].length;return r!==0?r:e[0].toUpperCase().localeCompare(t[0].toUpperCase())}var sOn=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(gOn),XXo=0,JXo=1,oOn=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],yfr=QXo.map(function(e){var t=/^(.*)-\d+\.\d+$/.exec(e);return t?[t[0],t[1]]:[e,null]}).reduce(function(e,t){var r=t[1];return e[r]=e[r]||[],e[r].push(t[0]),e},{}),UXo=Object.keys(yfr).map(function(t){return[t,yfr[t]]}).filter(function(t){return t[1].length===1&&t[0]!==null&&t[0]!=="APL"}).map(function(t){return[t[0],t[1][0]]});yfr=void 0;var aOn=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(UXo).sort(gOn),KXo=0,jXo=1,cOn=function(e){for(var t=0;t-1)return n[jXo]}return null},uOn=function(e,t){for(var r=0;r-1){var o=e.replace(a,n[JXo]),l=t(o);if(l!==null)return l}}return null};AOn.exports=function(e,t){t=t||{};var r=t.upgrade===void 0?!0:!!t.upgrade;function n(A){return r?zXo(A):A}var a=typeof e=="string"&&e.trim().length!==0;if(!a)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),Ydt(e))return n(e);var o=e.replace(/\+$/,"").trim();if(Ydt(o))return n(o);var l=cOn(e);return l!==null||(l=uOn(e,function(A){return Ydt(A)?A:cOn(A)}),l!==null)||(l=lOn(e),l!==null)||(l=uOn(e,lOn),l!==null)?n(l):null};function zXo(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}});var hOn=H((jql,IOn)=>{var qXo=_fr(),$Xo=dOn(),pOn='license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN "',e4o=/^SEE LICEN[CS]E IN (.+)$/;function fOn(e,t){return t.slice(0,e.length)===e}function bfr(e){if(e.hasOwnProperty("license")){var t=e.license;return fOn("LicenseRef",t)||fOn("DocumentRef",t)}else return bfr(e.left)||bfr(e.right)}IOn.exports=function(e){var t;try{t=qXo(e)}catch{var r;if(e==="UNLICENSED"||e==="UNLICENCED")return{validForOldPackages:!0,validForNewPackages:!0,unlicensed:!0};if(r=e4o.exec(e))return{validForOldPackages:!0,validForNewPackages:!0,inFile:r[1]};var n={validForOldPackages:!1,validForNewPackages:!1,warnings:[pOn]};if(e.trim().length!==0){var a=$Xo(e);a&&n.warnings.push('license is similar to the valid expression "'+a+'"')}return n}return bfr(t)?{validForNewPackages:!1,validForOldPackages:!1,spdx:!0,warnings:[pOn]}:{validForNewPackages:!0,validForOldPackages:!0,spdx:!0}}});var COn=H((zql,mOn)=>{mOn.exports=t4o;function t4o(e){if(!e||e==="ERROR: No README data found!")return;e=e.trim().split(` +`);let t=0;for(;e[t]&&e[t].trim().match(/^(#|$)/);)t++;let r=e.length,n=t+1;for(;n{r4o.exports={topLevel:{dependancies:"dependencies",dependecies:"dependencies",depdenencies:"dependencies",devEependencies:"devDependencies",depends:"dependencies","dev-dependencies":"devDependencies",devDependences:"devDependencies",devDepenencies:"devDependencies",devdependencies:"devDependencies",repostitory:"repository",repo:"repository",prefereGlobal:"preferGlobal",hompage:"homepage",hampage:"homepage",autohr:"author",autor:"author",contributers:"contributors",publicationConfig:"publishConfig",script:"scripts"},bugs:{web:"url",name:"url"},script:{server:"start",tests:"test"}}});var SOn=H(($ql,EOn)=>{var n4o=k6t(),i4o=x6t(),s4o=hOn(),Qdt=mfr(),o4o=wt("node:module"),a4o=["dependencies","devDependencies","optionalDependencies"],c4o=COn(),Efr=wt("url"),Poe=_On(),yOn=e=>e.includes("@")&&e.indexOf("@")"u"&&(t={});var r=t.strict;if(!e.name&&!r){e.name="";return}if(typeof e.name!="string")throw new Error("name field must be a string.");r||(e.name=e.name.trim()),g4o(e.name,r,t.allowLegacyCase),o4o.builtinModules.includes(e.name)&&this.warn("conflictingName",e.name)},fixDescriptionField:function(e){e.description&&typeof e.description!="string"&&(this.warn("nonStringDescription"),delete e.description),e.readme&&!e.description&&(e.description=c4o(e.readme)),e.description===void 0&&delete e.description,e.description||this.warn("missingDescription")},fixReadmeField:function(e){e.readme||(this.warn("missingReadme"),e.readme="ERROR: No README data found!")},fixBugsField:function(e){if(!e.bugs&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.bugs()&&(e.bugs={url:t.bugs()})}else if(e.bugs){if(typeof e.bugs=="string")yOn(e.bugs)?e.bugs={email:e.bugs}:Efr.parse(e.bugs).protocol?e.bugs={url:e.bugs}:this.warn("nonEmailUrlBugsString");else{h4o(e.bugs,this.warn);var r=e.bugs;e.bugs={},r.url&&(typeof r.url=="string"&&Efr.parse(r.url).protocol?e.bugs.url=r.url:this.warn("nonUrlBugsUrlField")),r.email&&(typeof r.email=="string"&&yOn(r.email)?e.bugs.email=r.email:this.warn("nonEmailBugsEmailField"))}!e.bugs.email&&!e.bugs.url&&(delete e.bugs,this.warn("emptyNormalizedBugs"))}},fixHomepageField:function(e){if(!e.homepage&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.docs()&&(e.homepage=t.docs())}if(e.homepage){if(typeof e.homepage!="string")return this.warn("nonUrlHomepage"),delete e.homepage;Efr.parse(e.homepage).protocol||(e.homepage="http://"+e.homepage)}},fixLicenseField:function(e){let t=e.license||e.licence;if(!t)return this.warn("missingLicense");if(typeof t!="string"||t.length<1||t.trim()==="")return this.warn("invalidLicense");if(!s4o(t).validForNewPackages)return this.warn("invalidLicense")}};function l4o(e){if(e.charAt(0)!=="@")return!1;var t=e.slice(1).split("/");return t.length!==2?!1:t[0]&&t[1]&&t[0]===encodeURIComponent(t[0])&&t[1]===encodeURIComponent(t[1])}function u4o(e){return!e.match(/[/@\s+%:]/)&&e===encodeURIComponent(e)}function g4o(e,t,r){if(e.charAt(0)==="."||!(l4o(e)||u4o(e))||t&&!r&&e!==e.toLowerCase()||e.toLowerCase()==="node_modules"||e.toLowerCase()==="favicon.ico")throw new Error("Invalid name: "+JSON.stringify(e))}function bOn(e,t){return e.author&&(e.author=t(e.author)),["maintainers","contributors"].forEach(function(r){Array.isArray(e[r])&&(e[r]=e[r].map(t))}),e}function A4o(e){if(typeof e=="string")return e;var t=e.name||"",r=e.url||e.web,n=r?" ("+r+")":"",a=e.email||e.mail,o=a?" <"+a+">":"";return t+o+n}function d4o(e){if(typeof e!="string")return e;var t=e.match(/^([^(<]+)/),r=e.match(/\(([^()]+)\)/),n=e.match(/<([^<>]+)>/),a={};return t&&t[0].trim()&&(a.name=t[0].trim()),n&&(a.email=n[1]),r&&(a.url=r[1]),a}function p4o(e){var t=e.optionalDependencies;if(t){var r=e.dependencies||{};Object.keys(t).forEach(function(n){r[n]=t[n]}),e.dependencies=r}}function f4o(e,t,r){if(!e)return{};if(typeof e=="string"&&(e=e.trim().split(/[\n\r\s\t ,]+/)),!Array.isArray(e))return e;r("deprecatedArrayDependencies",t);var n={};return e.filter(function(a){return typeof a=="string"}).forEach(function(a){a=a.trim().split(/(:?[@\s><=])/);var o=a.shift(),l=a.join("");l=l.trim(),l=l.replace(/^@/,""),n[o]=l}),n}function I4o(e,t){a4o.forEach(function(r){e[r]&&(e[r]=f4o(e[r],r,t))})}function h4o(e,t){e&&Object.keys(e).forEach(function(r){Poe.bugs[r]&&(t("typo",r,Poe.bugs[r],"bugs"),e[Poe.bugs[r]]=e[r],delete e[r])})}});var vOn=H((e$l,m4o)=>{m4o.exports={repositories:"'repositories' (plural) Not supported. Please pick one as the 'repository' field",missingRepository:"No repository field.",brokenGitUrl:"Probably broken git url: %s",nonObjectScripts:"scripts must be an object",nonStringScript:"script values must be string commands",nonArrayFiles:"Invalid 'files' member",invalidFilename:"Invalid filename in 'files' list: %s",nonArrayBundleDependencies:"Invalid 'bundleDependencies' list. Must be array of package names",nonStringBundleDependency:"Invalid bundleDependencies member: %s",nonDependencyBundleDependency:"Non-dependency in bundleDependencies: %s",nonObjectDependencies:"%s field must be an object",nonStringDependency:"Invalid dependency: %s %s",deprecatedArrayDependencies:"specifying %s as array is deprecated",deprecatedModules:"modules field is deprecated",nonArrayKeywords:"keywords should be an array of strings",nonStringKeyword:"keywords should be an array of strings",conflictingName:"%s is also the name of a node core module.",nonStringDescription:"'description' field should be a string",missingDescription:"No description",missingReadme:"No README data",missingLicense:"No license field.",nonEmailUrlBugsString:"Bug string field must be url, email, or {email,url}",nonUrlBugsUrlField:"bugs.url field must be a string url. Deleted.",nonEmailBugsEmailField:"bugs.email field must be a string email. Deleted.",emptyNormalizedBugs:"Normalized value of bugs field is an empty object. Deleted.",nonUrlHomepage:"homepage field must be a string url. Deleted.",invalidLicense:"license should be a valid SPDX license expression",typo:"%s should probably be %s."}});var TOn=H((t$l,wOn)=>{var BOn=wt("util"),Sfr=vOn();wOn.exports=function(){var e=Array.prototype.slice.call(arguments,0),t=e.shift();if(t==="typo")return C4o.apply(null,e);var r=Sfr[t]?Sfr[t]:t+": '%s'";return e.unshift(r),BOn.format.apply(null,e)};function C4o(e,t,r){return r&&(e=r+"['"+e+"']",t=r+"['"+t+"']"),BOn.format(Sfr.typo,e,t)}});var wfr=H((r$l,DOn)=>{DOn.exports=ROn;var vfr=SOn();ROn.fixer=vfr;var _4o=TOn(),y4o=["name","version","description","repository","modules","scripts","files","bin","man","bugs","keywords","readme","homepage","license"],b4o=["dependencies","people","typos"],Bfr=y4o.map(function(e){return NOn(e)+"Field"});Bfr=Bfr.concat(b4o);function ROn(e,t,r){t===!0&&(t=null,r=!0),r||(r=!1),(!t||e.private)&&(t=function(){}),e.scripts&&e.scripts.install==="node-gyp rebuild"&&!e.scripts.preinstall&&(e.gypfile=!0),vfr.warn=function(){t(_4o.apply(null,arguments))},Bfr.forEach(function(n){vfr["fix"+NOn(n)](e,r)}),e._id=e.name+"@"+e.version}function NOn(e){return e.charAt(0).toUpperCase()+e.slice(1)}});var Udt=H((o$l,Tfr)=>{var Jdt=process||{},FOn=Jdt.argv||[],Xdt=Jdt.env||{},B4o=!(Xdt.NO_COLOR||FOn.includes("--no-color"))&&(!!Xdt.FORCE_COLOR||FOn.includes("--color")||Jdt.platform==="win32"||(Jdt.stdout||{}).isTTY&&Xdt.TERM!=="dumb"||!!Xdt.CI),w4o=(e,t,r=e)=>n=>{let a=""+n,o=a.indexOf(t,e.length);return~o?e+T4o(a,t,r,o)+t:e+a+t},T4o=(e,t,r,n)=>{let a="",o=0;do a+=e.substring(o,n)+r,o=n+t.length,n=e.indexOf(t,o);while(~n);return a+e.substring(o)},ZOn=(e=B4o)=>{let t=e?w4o:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Tfr.exports=ZOn();Tfr.exports.createColors=ZOn});var Rfr=H(Kdt=>{Object.defineProperty(Kdt,"__esModule",{value:!0});Kdt.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;Kdt.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!!(e[3]||e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}});var OOn=H(fMe=>{"use strict";Object.defineProperty(fMe,"__esModule",{value:!0});fMe.isIdentifierChar=WOn;fMe.isIdentifierName=k4o;fMe.isIdentifierStart=POn;var Dfr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",LOn="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",R4o=new RegExp("["+Dfr+"]"),N4o=new RegExp("["+Dfr+LOn+"]");Dfr=LOn=null;var VOn=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],D4o=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Nfr(e,t){let r=65536;for(let n=0,a=t.length;ne)return!1;if(r+=t[n+1],r>=e)return!0}return!1}function POn(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&R4o.test(String.fromCharCode(e)):Nfr(e,VOn)}function WOn(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&N4o.test(String.fromCharCode(e)):Nfr(e,VOn)||Nfr(e,D4o)}function k4o(e){let t=!0;for(let r=0;r{"use strict";Object.defineProperty(bIe,"__esModule",{value:!0});bIe.isKeyword=L4o;bIe.isReservedWord=MOn;bIe.isStrictBindOnlyReservedWord=YOn;bIe.isStrictBindReservedWord=Z4o;bIe.isStrictReservedWord=HOn;var kfr={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},x4o=new Set(kfr.keyword),G4o=new Set(kfr.strict),F4o=new Set(kfr.strictBind);function MOn(e,t){return t&&e==="await"||e==="enum"}function HOn(e,t){return MOn(e,t)||G4o.has(e)}function YOn(e){return F4o.has(e)}function Z4o(e,t){return HOn(e,t)||YOn(e)}function L4o(e){return x4o.has(e)}});var Gfr=H(c8=>{"use strict";Object.defineProperty(c8,"__esModule",{value:!0});Object.defineProperty(c8,"isIdentifierChar",{enumerable:!0,get:function(){return xfr.isIdentifierChar}});Object.defineProperty(c8,"isIdentifierName",{enumerable:!0,get:function(){return xfr.isIdentifierName}});Object.defineProperty(c8,"isIdentifierStart",{enumerable:!0,get:function(){return xfr.isIdentifierStart}});Object.defineProperty(c8,"isKeyword",{enumerable:!0,get:function(){return IMe.isKeyword}});Object.defineProperty(c8,"isReservedWord",{enumerable:!0,get:function(){return IMe.isReservedWord}});Object.defineProperty(c8,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindOnlyReservedWord}});Object.defineProperty(c8,"isStrictBindReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindReservedWord}});Object.defineProperty(c8,"isStrictReservedWord",{enumerable:!0,get:function(){return IMe.isStrictReservedWord}});var xfr=OOn(),IMe=QOn()});var t3n=H(hMe=>{"use strict";Object.defineProperty(hMe,"__esModule",{value:!0});var Ffr=Udt(),XOn=Rfr(),JOn=Gfr();function V4o(){return typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?!1:Ffr.isColorSupported}var jdt=(e,t)=>r=>e(t(r));function jOn(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:jdt(jdt(e.white,e.bgRed),e.bold),gutter:e.gray,marker:jdt(e.red,e.bold),message:jdt(e.red,e.bold),reset:e.reset}}var P4o=jOn(Ffr.createColors(!0)),W4o=jOn(Ffr.createColors(!1));function zOn(e){return e?P4o:W4o}var O4o=new Set(["as","async","from","get","of","set"]),M4o=/\r\n|[\n\r\u2028\u2029]/,H4o=/^[()[\]{}]$/,qOn;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if(JOn.isKeyword(r.value)||JOn.isStrictReservedWord(r.value,!0)||O4o.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="t[n](o)).join(` `):r+=a;return r}var UOn=!1,KOn=/\r\n|[\n\r\u2028\u2029]/;function Y4o(e,t,r){let n=Object.assign({column:0,line:-1},e.start),a=Object.assign({},n,e.end),{linesAbove:o=2,linesBelow:l=3}=r||{},A=n.line,f=n.column,I=a.line,C=a.column,b=Math.max(A-(o+1),0),E=Math.min(t.length,I+l);A===-1&&(b=0),I===-1&&(E=t.length);let N=I-A,B={};if(N)for(let F=0;F<=N;F++){let Q=F+A;if(!f)B[Q]=!0;else if(F===0){let X=t[Q-1].length;B[Q]=[f,X-f+1]}else if(F===N)B[Q]=[0,C];else{let X=t[Q-F].length;B[Q]=[0,X]}}else f===C?f?B[A]=[f,0]:B[A]=!0:B[A]=[f,C-f];return{start:b,end:E,markerLines:B}}function e3n(e,t,r={}){let n=r.forceColor||V4o()&&r.highlightCode,a=zOn(n),o=e.split(KOn),{start:l,end:A,markerLines:f}=Y4o(t,o,r),I=t.start&&typeof t.start.column=="number",C=String(A).length,E=(n?$On(e):e).split(KOn,A).slice(l,A).map((N,B)=>{let F=l+1+B,X=` ${` ${F}`.slice(-C)} |`,ae=f[F],ne=!f[F+1];if(ae){let ce="";if(Array.isArray(ae)){let fe=N.slice(0,Math.max(ae[0]-1,0)).replace(/[^\t]/g," "),ue=ae[1]||1;ce=[` `,a.gutter(X.replace(/\d/g," "))," ",fe,a.marker("^").repeat(ue)].join(""),ne&&r.message&&(ce+=" "+a.message(r.message))}return[a.marker(">"),a.gutter(X),N.length>0?` ${N}`:"",ce].join("")}else return` ${a.gutter(X)}${N.length>0?` ${N}`:""}`}).join(` `);return r.message&&!I&&(E=`${" ".repeat(C+1)}${r.message} @@ -290,12 +290,12 @@ ${E}`),n?a.reset(E):E}function Q4o(e,t,r,n={}){if(!UOn){UOn=!0;let o="Passing li `,o-1))a++;return{line:a,column:n}}function zdt(e,t,{oneBased:r=!1}={}){if(t<0||t>=e.length&&e.length>0)throw new RangeError("Index out of bounds");let n=X4o(e,t);return r?{line:n.line+1,column:n.column+1}:n}var r3n,n3n=bc(()=>{r3n=(e,t,r)=>r<0?-1:e.lastIndexOf(t,r)});function Lfr(e,t,r){typeof t=="string"&&(r=t,t=void 0);let n;try{return JSON.parse(e,t)}catch(l){n=l.message}let a;e?(a=U4o(e,n),n=K4o(n)):n+=" while parsing empty string";let o=new Zfr(n);throw o.fileName=r,a&&(o.codeFrame=i3n(e,a),o.rawCodeFrame=i3n(e,a,!1)),o}var s3n,J4o,Zfr,i3n,U4o,K4o,o3n=bc(()=>{s3n=Nt(t3n(),1);n3n();J4o=e=>`\\u{${e.codePointAt(0).toString(16)}}`,Zfr=class e extends Error{name="JSONError";fileName;codeFrame;rawCodeFrame;#e;constructor(t){super(),this.#e=t,Error.captureStackTrace?.(this,e)}get message(){let{fileName:t,codeFrame:r}=this;return`${this.#e}${t?` in ${t}`:""}${r?` ${r} -`:""}`}set message(t){this.#e=t}},i3n=(e,t,r=!0)=>(0,s3n.codeFrameColumns)(e,{start:t},{highlightCode:r}),U4o=(e,t)=>{let r=t.match(/in JSON at position (?\d+)(?: \(line (?\d+) column (?\d+)\))?$/);if(!r)return;let{index:n,line:a,column:o}=r.groups;if(a&&o)return{line:Number(a),column:Number(o)};if(n=Number(n),n===e.length){let{line:l,column:A}=zdt(e,e.length-1,{oneBased:!0});return{line:l,column:A+1}}return zdt(e,n,{oneBased:!0})},K4o=e=>e.replace(/(?<=^Unexpected token )(?')?(.)\k/,(t,r,n)=>`"${n}"(${J4o(n)})`)});var a3n=bc(()=>{});import{fileURLToPath as j4o}from"node:url";function mMe(e){return e instanceof URL?j4o(e):e}var Vfr=bc(()=>{a3n()});var u3n={};sI(u3n,{parsePackage:()=>eJo,readPackage:()=>Wfr,readPackageSync:()=>Ofr});import z4o from"node:fs";import q4o from"node:fs/promises";import $4o from"node:path";async function Wfr({cwd:e,normalize:t=!0}={}){let r=await q4o.readFile(l3n(e),"utf8");return Pfr(r,t)}function Ofr({cwd:e,normalize:t=!0}={}){let r=z4o.readFileSync(l3n(e),"utf8");return Pfr(r,t)}function eJo(e,{normalize:t=!0}={}){let r=e!==null&&typeof e=="object"&&!Array.isArray(e);if(!r&&!(typeof e=="string"))throw new TypeError("`packageFile` should be either an `object` or a `string`.");let a=r?structuredClone(e):e;return Pfr(a,t)}var c3n,l3n,Pfr,Mfr=bc(()=>{o3n();c3n=Nt(wfr(),1);Vfr();l3n=e=>$4o.resolve(mMe(e)??".","package.json"),Pfr=(e,t)=>{let r=typeof e=="string"?Lfr(e):e;return t&&(0,c3n.default)(r),r}});import g3n from"node:process";import tJo from"node:fs/promises";import{fileURLToPath as rJo}from"node:url";import nJo from"node:fs";import _M from"node:path";async function A3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n??o));a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=await tJo.stat(l);if(r==="file"&&A.isFile()||r==="directory"&&A.isDirectory())return l}catch{}a=_M.dirname(a)}}function d3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n)??o);a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=nJo.statSync(l,{throwIfNoEntry:!1});if(r==="file"&&A?.isFile()||r==="directory"&&A?.isDirectory())return l}catch{}a=_M.dirname(a)}}var qdt,p3n=bc(()=>{qdt=e=>e instanceof URL?rJo(e):e});var I3n={};sI(I3n,{readPackageUp:()=>iJo,readPackageUpSync:()=>sJo});import f3n from"node:path";async function iJo(e){let t=await A3n("package.json",e);if(t)return{packageJson:await Wfr({...e,cwd:f3n.dirname(t)}),path:t}}function sJo(e){let t=d3n("package.json",e);if(t)return{packageJson:Ofr({...e,cwd:f3n.dirname(t)}),path:t}}var h3n=bc(()=>{p3n();Mfr()});var w3n=H((reu,B3n)=>{"use strict";B3n.exports=function(e){return Array.isArray(e)?e:[e]}});var R3n=H((neu,T3n)=>{"use strict";T3n.exports=e=>{let t=typeof e;return e!==null&&(t==="object"||t==="function")}});var D3n=H((ieu,N3n)=>{"use strict";var EIe=R3n(),_Jo=["__proto__","prototype","constructor"],yJo=e=>!e.some(t=>_Jo.includes(t));function $dt(e){let t=e.split("."),r=[];for(let n=0;n{"use strict";var bJo=w3n(),k3n=D3n().get;function EJo(e){return function(t,r){var n=0;return bJo(e).some(function(a){var o,l;if(typeof a=="function"?(o=a(t),l=a(r)):typeof a=="string"?(o=k3n(t,a),l=k3n(r,a)):(o=t,l=r),o===l){n=0;return}return typeof o=="string"&&typeof l=="string"?(n=o.localeCompare(l),n!==0):(n=o{"use strict";var RJo=/[|\\{}()[\]^$+*?.]/g;X3n.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(RJo,"\\$&")}});var U3n=H((Geu,J3n)=>{"use strict";J3n.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var zfr=H((Feu,q3n)=>{var SIe=U3n(),z3n={};for(tpt in SIe)SIe.hasOwnProperty(tpt)&&(z3n[SIe[tpt]]=tpt);var tpt,pd=q3n.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(DZ in pd)if(pd.hasOwnProperty(DZ)){if(!("channels"in pd[DZ]))throw new Error("missing channels property: "+DZ);if(!("labels"in pd[DZ]))throw new Error("missing channel labels property: "+DZ);if(pd[DZ].labels.length!==pd[DZ].channels)throw new Error("channel and label counts mismatch: "+DZ);K3n=pd[DZ].channels,j3n=pd[DZ].labels,delete pd[DZ].channels,delete pd[DZ].labels,Object.defineProperty(pd[DZ],"channels",{value:K3n}),Object.defineProperty(pd[DZ],"labels",{value:j3n})}var K3n,j3n,DZ;pd.rgb.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f,I;return o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360),I=(a+o)/2,o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};pd.rgb.hsv=function(e){var t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?a=o=0:(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};pd.rgb.hwb=function(e){var t=e[0],r=e[1],n=e[2],a=pd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};pd.rgb.cmyk=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a,o,l,A;return A=Math.min(1-t,1-r,1-n),a=(1-t-A)/(1-A)||0,o=(1-r-A)/(1-A)||0,l=(1-n-A)/(1-A)||0,[a*100,o*100,l*100,A*100]};function NJo(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}pd.rgb.keyword=function(e){var t=z3n[e];if(t)return t;var r=1/0,n;for(var a in SIe)if(SIe.hasOwnProperty(a)){var o=SIe[a],l=NJo(e,o);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};pd.rgb.lab=function(e){var t=pd.rgb.xyz(e),r=t[0],n=t[1],a=t[2],o,l,A;return r/=95.047,n/=100,a/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=116*n-16,l=500*(r-n),A=200*(n-a),[o,l,A]};pd.hsl.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l,A,f;if(r===0)return f=n*255,[f,f,f];n<.5?o=n*(1+r):o=n+r-n*r,a=2*n-o,A=[0,0,0];for(var I=0;I<3;I++)l=t+1/3*-(I-1),l<0&&l++,l>1&&l--,6*l<1?f=a+(o-a)*6*l:2*l<1?f=o:3*l<2?f=a+(o-a)*(2/3-l)*6:f=a,A[I]=f*255;return A};pd.hsl.hsv=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01),l,A;return n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o,A=(n+r)/2,l=n===0?2*a/(o+a):2*r/(n+r),[t,l*100,A*100]};pd.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};pd.hsv.hsl=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l,A;return A=(2-r)*n,o=(2-r)*a,l=r*a,l/=o<=1?o:2-o,l=l||0,A/=2,[t,l*100,A*100]};pd.hwb.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o,l,A,f;a>1&&(r/=a,n/=a),o=Math.floor(6*t),l=1-n,A=6*t-o,o&1&&(A=1-A),f=r+A*(l-r);var I,C,b;switch(o){default:case 6:case 0:I=l,C=f,b=r;break;case 1:I=f,C=l,b=r;break;case 2:I=r,C=l,b=f;break;case 3:I=r,C=f,b=l;break;case 4:I=f,C=r,b=l;break;case 5:I=l,C=r,b=f;break}return[I*255,C*255,b*255]};pd.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o,l,A;return o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a),[o*255,l*255,A*255]};pd.xyz.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,l=l>.0031308?1.055*Math.pow(l,1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};pd.xyz.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=116*r-16,o=500*(t-r),l=200*(r-n),[a,o,l]};pd.lab.xyz=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;var A=Math.pow(o,3),f=Math.pow(a,3),I=Math.pow(l,3);return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};pd.lab.lch=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return a=Math.atan2(n,r),o=a*360/2/Math.PI,o<0&&(o+=360),l=Math.sqrt(r*r+n*n),[t,l,o]};pd.lch.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return l=n/360*2*Math.PI,a=r*Math.cos(l),o=r*Math.sin(l),[t,a,o]};pd.rgb.ansi16=function(e){var t=e[0],r=e[1],n=e[2],a=1 in arguments?arguments[1]:pd.rgb.hsv(e)[2];if(a=Math.round(a/50),a===0)return 30;var o=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return a===2&&(o+=60),o};pd.hsv.ansi16=function(e){return pd.rgb.ansi16(pd.hsv.rgb(e),e[2])};pd.rgb.ansi256=function(e){var t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var a=16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5);return a};pd.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};pd.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var r,n=Math.floor(e/36)/5*255,a=Math.floor((r=e%36)/6)/5*255,o=r%6/5*255;return[n,a,o]};pd.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};pd.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];t[0].length===3&&(r=r.split("").map(function(A){return A+A}).join(""));var n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};pd.rgb.hcg=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l+4,f/=6,f%=1,[f*360,l*100,A*100]};pd.hsl.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1,a=0;return r<.5?n=2*t*r:n=2*t*(1-r),n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};pd.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};pd.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];var a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};pd.hcg.hsv=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};pd.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100,n=r*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};pd.hcg.hwb=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};pd.hwb.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1-r,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};pd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};pd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};pd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};pd.gray.hsl=pd.gray.hsv=function(e){return[0,0,e[0]]};pd.gray.hwb=function(e){return[0,100,e[0]]};pd.gray.cmyk=function(e){return[0,0,0,e[0]]};pd.gray.lab=function(e){return[e[0],0,0]};pd.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,r=(t<<16)+(t<<8)+t,n=r.toString(16).toUpperCase();return"000000".substring(n.length)+n};pd.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var e5n=H((Zeu,$3n)=>{var rpt=zfr();function DJo(){for(var e={},t=Object.keys(rpt),r=t.length,n=0;n{var qfr=zfr(),FJo=e5n(),$ve={},ZJo=Object.keys(qfr);function LJo(e){var t=function(r){return r==null?r:(arguments.length>1&&(r=Array.prototype.slice.call(arguments)),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function VJo(e){var t=function(r){if(r==null)return r;arguments.length>1&&(r=Array.prototype.slice.call(arguments));var n=e(r);if(typeof n=="object")for(var a=n.length,o=0;o{"use strict";var eBe=r5n(),npt=(e,t)=>function(){return`\x1B[${e.apply(eBe,arguments)+t}m`},ipt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};5;${r}m`},spt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};2;${r[0]};${r[1]};${r[2]}m`};function PJo(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(let a of Object.keys(t)){let o=t[a];for(let l of Object.keys(o)){let A=o[l];t[l]={open:`\x1B[${A[0]}m`,close:`\x1B[${A[1]}m`},o[l]=t[l],e.set(A[0],A[1])}Object.defineProperty(t,a,{value:o,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}let r=a=>a,n=(a,o,l)=>[a,o,l];t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi={ansi:npt(r,0)},t.color.ansi256={ansi256:ipt(r,0)},t.color.ansi16m={rgb:spt(n,0)},t.bgColor.ansi={ansi:npt(r,10)},t.bgColor.ansi256={ansi256:ipt(r,10)},t.bgColor.ansi16m={rgb:spt(n,10)};for(let a of Object.keys(eBe)){if(typeof eBe[a]!="object")continue;let o=eBe[a];a==="ansi16"&&(a="ansi"),"ansi16"in o&&(t.color.ansi[a]=npt(o.ansi16,0),t.bgColor.ansi[a]=npt(o.ansi16,10)),"ansi256"in o&&(t.color.ansi256[a]=ipt(o.ansi256,0),t.bgColor.ansi256[a]=ipt(o.ansi256,10)),"rgb"in o&&(t.color.ansi16m[a]=spt(o.rgb,0),t.bgColor.ansi16m[a]=spt(o.rgb,10))}return t}Object.defineProperty(n5n,"exports",{enumerable:!0,get:PJo})});var o5n=H((Peu,s5n)=>{"use strict";s5n.exports=(e,t)=>{t=t||process.argv;let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1?!0:n{"use strict";var WJo=wt("os"),mX=o5n(),IG=process.env,tBe;mX("no-color")||mX("no-colors")||mX("color=false")?tBe=!1:(mX("color")||mX("colors")||mX("color=true")||mX("color=always"))&&(tBe=!0);"FORCE_COLOR"in IG&&(tBe=IG.FORCE_COLOR.length===0||parseInt(IG.FORCE_COLOR,10)!==0);function OJo(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function MJo(e){if(tBe===!1)return 0;if(mX("color=16m")||mX("color=full")||mX("color=truecolor"))return 3;if(mX("color=256"))return 2;if(e&&!e.isTTY&&tBe!==!0)return 0;let t=tBe?1:0;if(process.platform==="win32"){let r=WJo.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in IG)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(r=>r in IG)||IG.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in IG)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(IG.TEAMCITY_VERSION)?1:0;if(IG.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in IG){let r=parseInt((IG.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(IG.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(IG.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(IG.TERM)||"COLORTERM"in IG?1:(IG.TERM==="dumb",t)}function $fr(e){let t=MJo(e);return OJo(t)}a5n.exports={supportsColor:$fr,stdout:$fr(process.stdout),stderr:$fr(process.stderr)}});var d5n=H((Oeu,A5n)=>{"use strict";var HJo=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,l5n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,YJo=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,QJo=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,XJo=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function g5n(e){return e[0]==="u"&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):XJo.get(e)||e}function JJo(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n)if(!isNaN(o))r.push(Number(o));else if(a=o.match(YJo))r.push(a[2].replace(QJo,(l,A,f)=>A?g5n(A):f));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`);return r}function UJo(e){l5n.lastIndex=0;let t=[],r;for(;(r=l5n.exec(e))!==null;){let n=r[1];if(r[2]){let a=JJo(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function u5n(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let a of Object.keys(r))if(Array.isArray(r[a])){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);r[a].length>0?n=n[a].apply(n,r[a]):n=n[a]}return n}A5n.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(HJo,(o,l,A,f,I,C)=>{if(l)a.push(g5n(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:u5n(e,r)(b)),r.push({inverse:A,styles:UJo(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(u5n(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var m5n=H((Meu,yMe)=>{"use strict";var tIr=jfr(),iT=i5n(),eIr=c5n().stdout,KJo=d5n(),f5n=process.platform==="win32"&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),I5n=["ansi","ansi","ansi256","ansi16m"],h5n=new Set(["gray"]),rBe=Object.create(null);function p5n(e,t){t=t||{};let r=eIr?eIr.level:0;e.level=t.level===void 0?r:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function _Me(e){if(!this||!(this instanceof _Me)||this.template){let t={};return p5n(t,e),t.template=function(){let r=[].slice.call(arguments);return qJo.apply(null,[t.template].concat(r))},Object.setPrototypeOf(t,_Me.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=_Me,t.template}p5n(this,e)}f5n&&(iT.blue.open="\x1B[94m");for(let e of Object.keys(iT))iT[e].closeRe=new RegExp(tIr(iT[e].close),"g"),rBe[e]={get(){let t=iT[e];return opt.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};rBe.visible={get(){return opt.call(this,this._styles||[],!0,"visible")}};iT.color.closeRe=new RegExp(tIr(iT.color.close),"g");for(let e of Object.keys(iT.color.ansi))h5n.has(e)||(rBe[e]={get(){let t=this.level;return function(){let n={open:iT.color[I5n[t]][e].apply(null,arguments),close:iT.color.close,closeRe:iT.color.closeRe};return opt.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}});iT.bgColor.closeRe=new RegExp(tIr(iT.bgColor.close),"g");for(let e of Object.keys(iT.bgColor.ansi)){if(h5n.has(e))continue;let t="bg"+e[0].toUpperCase()+e.slice(1);rBe[t]={get(){let r=this.level;return function(){let a={open:iT.bgColor[I5n[r]][e].apply(null,arguments),close:iT.bgColor.close,closeRe:iT.bgColor.closeRe};return opt.call(this,this._styles?this._styles.concat(a):[a],this._empty,e)}}}}var jJo=Object.defineProperties(()=>{},rBe);function opt(e,t,r){let n=function(){return zJo.apply(n,arguments)};n._styles=e,n._empty=t;let a=this;return Object.defineProperty(n,"level",{enumerable:!0,get(){return a.level},set(o){a.level=o}}),Object.defineProperty(n,"enabled",{enumerable:!0,get(){return a.enabled},set(o){a.enabled=o}}),n.hasGrey=this.hasGrey||r==="gray"||r==="grey",n.__proto__=jJo,n}function zJo(){let e=arguments,t=e.length,r=String(arguments[0]);if(t===0)return"";if(t>1)for(let a=1;a{"use strict";Object.defineProperty(bMe,"__esModule",{value:!0});bMe.default=oUo;bMe.shouldHighlight=v5n;var C5n=Rfr(),_5n=Gfr(),nIr=$Jo(Udt(),!0);function b5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(b5n=function(n){return n?r:t})(e)}function $Jo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=b5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var E5n=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,nIr.createColors)(!1):nIr.default,y5n=(e,t)=>r=>e(t(r)),eUo=new Set(["as","async","from","get","of","set"]);function tUo(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:y5n(y5n(e.white,e.bgRed),e.bold)}}var rUo=/\r\n|[\n\r\u2028\u2029]/,nUo=/^[()[\]{}]$/,S5n;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if((0,_5n.isKeyword)(r.value)||(0,_5n.isStrictReservedWord)(r.value,!0)||eUo.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="o(l)).join(` +`:""}`}set message(t){this.#e=t}},i3n=(e,t,r=!0)=>(0,s3n.codeFrameColumns)(e,{start:t},{highlightCode:r}),U4o=(e,t)=>{let r=t.match(/in JSON at position (?\d+)(?: \(line (?\d+) column (?\d+)\))?$/);if(!r)return;let{index:n,line:a,column:o}=r.groups;if(a&&o)return{line:Number(a),column:Number(o)};if(n=Number(n),n===e.length){let{line:l,column:A}=zdt(e,e.length-1,{oneBased:!0});return{line:l,column:A+1}}return zdt(e,n,{oneBased:!0})},K4o=e=>e.replace(/(?<=^Unexpected token )(?')?(.)\k/,(t,r,n)=>`"${n}"(${J4o(n)})`)});var a3n=bc(()=>{});import{fileURLToPath as j4o}from"node:url";function mMe(e){return e instanceof URL?j4o(e):e}var Vfr=bc(()=>{a3n()});var u3n={};sI(u3n,{parsePackage:()=>eJo,readPackage:()=>Wfr,readPackageSync:()=>Ofr});import z4o from"node:fs";import q4o from"node:fs/promises";import $4o from"node:path";async function Wfr({cwd:e,normalize:t=!0}={}){let r=await q4o.readFile(l3n(e),"utf8");return Pfr(r,t)}function Ofr({cwd:e,normalize:t=!0}={}){let r=z4o.readFileSync(l3n(e),"utf8");return Pfr(r,t)}function eJo(e,{normalize:t=!0}={}){let r=e!==null&&typeof e=="object"&&!Array.isArray(e);if(!r&&!(typeof e=="string"))throw new TypeError("`packageFile` should be either an `object` or a `string`.");let a=r?structuredClone(e):e;return Pfr(a,t)}var c3n,l3n,Pfr,Mfr=bc(()=>{o3n();c3n=Nt(wfr(),1);Vfr();l3n=e=>$4o.resolve(mMe(e)??".","package.json"),Pfr=(e,t)=>{let r=typeof e=="string"?Lfr(e):e;return t&&(0,c3n.default)(r),r}});import g3n from"node:process";import tJo from"node:fs/promises";import{fileURLToPath as rJo}from"node:url";import nJo from"node:fs";import _M from"node:path";async function A3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n??o));a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=await tJo.stat(l);if(r==="file"&&A.isFile()||r==="directory"&&A.isDirectory())return l}catch{}a=_M.dirname(a)}}function d3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n)??o);a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=nJo.statSync(l,{throwIfNoEntry:!1});if(r==="file"&&A?.isFile()||r==="directory"&&A?.isDirectory())return l}catch{}a=_M.dirname(a)}}var qdt,p3n=bc(()=>{qdt=e=>e instanceof URL?rJo(e):e});var I3n={};sI(I3n,{readPackageUp:()=>iJo,readPackageUpSync:()=>sJo});import f3n from"node:path";async function iJo(e){let t=await A3n("package.json",e);if(t)return{packageJson:await Wfr({...e,cwd:f3n.dirname(t)}),path:t}}function sJo(e){let t=d3n("package.json",e);if(t)return{packageJson:Ofr({...e,cwd:f3n.dirname(t)}),path:t}}var h3n=bc(()=>{p3n();Mfr()});var w3n=H((neu,B3n)=>{"use strict";B3n.exports=function(e){return Array.isArray(e)?e:[e]}});var R3n=H((ieu,T3n)=>{"use strict";T3n.exports=e=>{let t=typeof e;return e!==null&&(t==="object"||t==="function")}});var D3n=H((seu,N3n)=>{"use strict";var EIe=R3n(),_Jo=["__proto__","prototype","constructor"],yJo=e=>!e.some(t=>_Jo.includes(t));function $dt(e){let t=e.split("."),r=[];for(let n=0;n{"use strict";var bJo=w3n(),k3n=D3n().get;function EJo(e){return function(t,r){var n=0;return bJo(e).some(function(a){var o,l;if(typeof a=="function"?(o=a(t),l=a(r)):typeof a=="string"?(o=k3n(t,a),l=k3n(r,a)):(o=t,l=r),o===l){n=0;return}return typeof o=="string"&&typeof l=="string"?(n=o.localeCompare(l),n!==0):(n=o{"use strict";var RJo=/[|\\{}()[\]^$+*?.]/g;X3n.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(RJo,"\\$&")}});var U3n=H((Feu,J3n)=>{"use strict";J3n.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var zfr=H((Zeu,q3n)=>{var SIe=U3n(),z3n={};for(tpt in SIe)SIe.hasOwnProperty(tpt)&&(z3n[SIe[tpt]]=tpt);var tpt,pd=q3n.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(DZ in pd)if(pd.hasOwnProperty(DZ)){if(!("channels"in pd[DZ]))throw new Error("missing channels property: "+DZ);if(!("labels"in pd[DZ]))throw new Error("missing channel labels property: "+DZ);if(pd[DZ].labels.length!==pd[DZ].channels)throw new Error("channel and label counts mismatch: "+DZ);K3n=pd[DZ].channels,j3n=pd[DZ].labels,delete pd[DZ].channels,delete pd[DZ].labels,Object.defineProperty(pd[DZ],"channels",{value:K3n}),Object.defineProperty(pd[DZ],"labels",{value:j3n})}var K3n,j3n,DZ;pd.rgb.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f,I;return o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360),I=(a+o)/2,o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};pd.rgb.hsv=function(e){var t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?a=o=0:(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};pd.rgb.hwb=function(e){var t=e[0],r=e[1],n=e[2],a=pd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};pd.rgb.cmyk=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a,o,l,A;return A=Math.min(1-t,1-r,1-n),a=(1-t-A)/(1-A)||0,o=(1-r-A)/(1-A)||0,l=(1-n-A)/(1-A)||0,[a*100,o*100,l*100,A*100]};function NJo(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}pd.rgb.keyword=function(e){var t=z3n[e];if(t)return t;var r=1/0,n;for(var a in SIe)if(SIe.hasOwnProperty(a)){var o=SIe[a],l=NJo(e,o);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};pd.rgb.lab=function(e){var t=pd.rgb.xyz(e),r=t[0],n=t[1],a=t[2],o,l,A;return r/=95.047,n/=100,a/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=116*n-16,l=500*(r-n),A=200*(n-a),[o,l,A]};pd.hsl.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l,A,f;if(r===0)return f=n*255,[f,f,f];n<.5?o=n*(1+r):o=n+r-n*r,a=2*n-o,A=[0,0,0];for(var I=0;I<3;I++)l=t+1/3*-(I-1),l<0&&l++,l>1&&l--,6*l<1?f=a+(o-a)*6*l:2*l<1?f=o:3*l<2?f=a+(o-a)*(2/3-l)*6:f=a,A[I]=f*255;return A};pd.hsl.hsv=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01),l,A;return n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o,A=(n+r)/2,l=n===0?2*a/(o+a):2*r/(n+r),[t,l*100,A*100]};pd.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};pd.hsv.hsl=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l,A;return A=(2-r)*n,o=(2-r)*a,l=r*a,l/=o<=1?o:2-o,l=l||0,A/=2,[t,l*100,A*100]};pd.hwb.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o,l,A,f;a>1&&(r/=a,n/=a),o=Math.floor(6*t),l=1-n,A=6*t-o,o&1&&(A=1-A),f=r+A*(l-r);var I,C,b;switch(o){default:case 6:case 0:I=l,C=f,b=r;break;case 1:I=f,C=l,b=r;break;case 2:I=r,C=l,b=f;break;case 3:I=r,C=f,b=l;break;case 4:I=f,C=r,b=l;break;case 5:I=l,C=r,b=f;break}return[I*255,C*255,b*255]};pd.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o,l,A;return o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a),[o*255,l*255,A*255]};pd.xyz.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,l=l>.0031308?1.055*Math.pow(l,1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};pd.xyz.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=116*r-16,o=500*(t-r),l=200*(r-n),[a,o,l]};pd.lab.xyz=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;var A=Math.pow(o,3),f=Math.pow(a,3),I=Math.pow(l,3);return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};pd.lab.lch=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return a=Math.atan2(n,r),o=a*360/2/Math.PI,o<0&&(o+=360),l=Math.sqrt(r*r+n*n),[t,l,o]};pd.lch.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return l=n/360*2*Math.PI,a=r*Math.cos(l),o=r*Math.sin(l),[t,a,o]};pd.rgb.ansi16=function(e){var t=e[0],r=e[1],n=e[2],a=1 in arguments?arguments[1]:pd.rgb.hsv(e)[2];if(a=Math.round(a/50),a===0)return 30;var o=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return a===2&&(o+=60),o};pd.hsv.ansi16=function(e){return pd.rgb.ansi16(pd.hsv.rgb(e),e[2])};pd.rgb.ansi256=function(e){var t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var a=16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5);return a};pd.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};pd.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var r,n=Math.floor(e/36)/5*255,a=Math.floor((r=e%36)/6)/5*255,o=r%6/5*255;return[n,a,o]};pd.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};pd.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];t[0].length===3&&(r=r.split("").map(function(A){return A+A}).join(""));var n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};pd.rgb.hcg=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l+4,f/=6,f%=1,[f*360,l*100,A*100]};pd.hsl.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1,a=0;return r<.5?n=2*t*r:n=2*t*(1-r),n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};pd.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};pd.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];var a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};pd.hcg.hsv=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};pd.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100,n=r*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};pd.hcg.hwb=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};pd.hwb.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1-r,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};pd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};pd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};pd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};pd.gray.hsl=pd.gray.hsv=function(e){return[0,0,e[0]]};pd.gray.hwb=function(e){return[0,100,e[0]]};pd.gray.cmyk=function(e){return[0,0,0,e[0]]};pd.gray.lab=function(e){return[e[0],0,0]};pd.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,r=(t<<16)+(t<<8)+t,n=r.toString(16).toUpperCase();return"000000".substring(n.length)+n};pd.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var e5n=H((Leu,$3n)=>{var rpt=zfr();function DJo(){for(var e={},t=Object.keys(rpt),r=t.length,n=0;n{var qfr=zfr(),FJo=e5n(),$ve={},ZJo=Object.keys(qfr);function LJo(e){var t=function(r){return r==null?r:(arguments.length>1&&(r=Array.prototype.slice.call(arguments)),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function VJo(e){var t=function(r){if(r==null)return r;arguments.length>1&&(r=Array.prototype.slice.call(arguments));var n=e(r);if(typeof n=="object")for(var a=n.length,o=0;o{"use strict";var eBe=r5n(),npt=(e,t)=>function(){return`\x1B[${e.apply(eBe,arguments)+t}m`},ipt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};5;${r}m`},spt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};2;${r[0]};${r[1]};${r[2]}m`};function PJo(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(let a of Object.keys(t)){let o=t[a];for(let l of Object.keys(o)){let A=o[l];t[l]={open:`\x1B[${A[0]}m`,close:`\x1B[${A[1]}m`},o[l]=t[l],e.set(A[0],A[1])}Object.defineProperty(t,a,{value:o,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}let r=a=>a,n=(a,o,l)=>[a,o,l];t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi={ansi:npt(r,0)},t.color.ansi256={ansi256:ipt(r,0)},t.color.ansi16m={rgb:spt(n,0)},t.bgColor.ansi={ansi:npt(r,10)},t.bgColor.ansi256={ansi256:ipt(r,10)},t.bgColor.ansi16m={rgb:spt(n,10)};for(let a of Object.keys(eBe)){if(typeof eBe[a]!="object")continue;let o=eBe[a];a==="ansi16"&&(a="ansi"),"ansi16"in o&&(t.color.ansi[a]=npt(o.ansi16,0),t.bgColor.ansi[a]=npt(o.ansi16,10)),"ansi256"in o&&(t.color.ansi256[a]=ipt(o.ansi256,0),t.bgColor.ansi256[a]=ipt(o.ansi256,10)),"rgb"in o&&(t.color.ansi16m[a]=spt(o.rgb,0),t.bgColor.ansi16m[a]=spt(o.rgb,10))}return t}Object.defineProperty(n5n,"exports",{enumerable:!0,get:PJo})});var o5n=H((Weu,s5n)=>{"use strict";s5n.exports=(e,t)=>{t=t||process.argv;let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1?!0:n{"use strict";var WJo=wt("os"),mX=o5n(),IG=process.env,tBe;mX("no-color")||mX("no-colors")||mX("color=false")?tBe=!1:(mX("color")||mX("colors")||mX("color=true")||mX("color=always"))&&(tBe=!0);"FORCE_COLOR"in IG&&(tBe=IG.FORCE_COLOR.length===0||parseInt(IG.FORCE_COLOR,10)!==0);function OJo(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function MJo(e){if(tBe===!1)return 0;if(mX("color=16m")||mX("color=full")||mX("color=truecolor"))return 3;if(mX("color=256"))return 2;if(e&&!e.isTTY&&tBe!==!0)return 0;let t=tBe?1:0;if(process.platform==="win32"){let r=WJo.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in IG)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(r=>r in IG)||IG.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in IG)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(IG.TEAMCITY_VERSION)?1:0;if(IG.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in IG){let r=parseInt((IG.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(IG.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(IG.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(IG.TERM)||"COLORTERM"in IG?1:(IG.TERM==="dumb",t)}function $fr(e){let t=MJo(e);return OJo(t)}a5n.exports={supportsColor:$fr,stdout:$fr(process.stdout),stderr:$fr(process.stderr)}});var d5n=H((Meu,A5n)=>{"use strict";var HJo=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,l5n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,YJo=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,QJo=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,XJo=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function g5n(e){return e[0]==="u"&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):XJo.get(e)||e}function JJo(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n)if(!isNaN(o))r.push(Number(o));else if(a=o.match(YJo))r.push(a[2].replace(QJo,(l,A,f)=>A?g5n(A):f));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`);return r}function UJo(e){l5n.lastIndex=0;let t=[],r;for(;(r=l5n.exec(e))!==null;){let n=r[1];if(r[2]){let a=JJo(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function u5n(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let a of Object.keys(r))if(Array.isArray(r[a])){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);r[a].length>0?n=n[a].apply(n,r[a]):n=n[a]}return n}A5n.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(HJo,(o,l,A,f,I,C)=>{if(l)a.push(g5n(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:u5n(e,r)(b)),r.push({inverse:A,styles:UJo(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(u5n(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var m5n=H((Heu,yMe)=>{"use strict";var tIr=jfr(),iT=i5n(),eIr=c5n().stdout,KJo=d5n(),f5n=process.platform==="win32"&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),I5n=["ansi","ansi","ansi256","ansi16m"],h5n=new Set(["gray"]),rBe=Object.create(null);function p5n(e,t){t=t||{};let r=eIr?eIr.level:0;e.level=t.level===void 0?r:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function _Me(e){if(!this||!(this instanceof _Me)||this.template){let t={};return p5n(t,e),t.template=function(){let r=[].slice.call(arguments);return qJo.apply(null,[t.template].concat(r))},Object.setPrototypeOf(t,_Me.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=_Me,t.template}p5n(this,e)}f5n&&(iT.blue.open="\x1B[94m");for(let e of Object.keys(iT))iT[e].closeRe=new RegExp(tIr(iT[e].close),"g"),rBe[e]={get(){let t=iT[e];return opt.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};rBe.visible={get(){return opt.call(this,this._styles||[],!0,"visible")}};iT.color.closeRe=new RegExp(tIr(iT.color.close),"g");for(let e of Object.keys(iT.color.ansi))h5n.has(e)||(rBe[e]={get(){let t=this.level;return function(){let n={open:iT.color[I5n[t]][e].apply(null,arguments),close:iT.color.close,closeRe:iT.color.closeRe};return opt.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}});iT.bgColor.closeRe=new RegExp(tIr(iT.bgColor.close),"g");for(let e of Object.keys(iT.bgColor.ansi)){if(h5n.has(e))continue;let t="bg"+e[0].toUpperCase()+e.slice(1);rBe[t]={get(){let r=this.level;return function(){let a={open:iT.bgColor[I5n[r]][e].apply(null,arguments),close:iT.bgColor.close,closeRe:iT.bgColor.closeRe};return opt.call(this,this._styles?this._styles.concat(a):[a],this._empty,e)}}}}var jJo=Object.defineProperties(()=>{},rBe);function opt(e,t,r){let n=function(){return zJo.apply(n,arguments)};n._styles=e,n._empty=t;let a=this;return Object.defineProperty(n,"level",{enumerable:!0,get(){return a.level},set(o){a.level=o}}),Object.defineProperty(n,"enabled",{enumerable:!0,get(){return a.enabled},set(o){a.enabled=o}}),n.hasGrey=this.hasGrey||r==="gray"||r==="grey",n.__proto__=jJo,n}function zJo(){let e=arguments,t=e.length,r=String(arguments[0]);if(t===0)return"";if(t>1)for(let a=1;a{"use strict";Object.defineProperty(bMe,"__esModule",{value:!0});bMe.default=oUo;bMe.shouldHighlight=v5n;var C5n=Rfr(),_5n=Gfr(),nIr=$Jo(Udt(),!0);function b5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(b5n=function(n){return n?r:t})(e)}function $Jo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=b5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var E5n=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,nIr.createColors)(!1):nIr.default,y5n=(e,t)=>r=>e(t(r)),eUo=new Set(["as","async","from","get","of","set"]);function tUo(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:y5n(y5n(e.white,e.bgRed),e.bold)}}var rUo=/\r\n|[\n\r\u2028\u2029]/,nUo=/^[()[\]{}]$/,S5n;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if((0,_5n.isKeyword)(r.value)||(0,_5n.isStrictReservedWord)(r.value,!0)||eUo.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="o(l)).join(` `):r+=a}return r}function v5n(e){return E5n.isColorSupported||e.forceColor}var rIr;function sUo(e){if(e){var t;return(t=rIr)!=null||(rIr=(0,nIr.createColors)(!0)),rIr}return E5n}function oUo(e,t={}){if(e!==""&&v5n(t)){let r=tUo(sUo(t.forceColor));return iUo(r,e)}else return e}{let e,t;bMe.getChalk=({forceColor:r})=>{var n;if((n=e)!=null||(e=m5n()),r){var a;return(a=t)!=null||(t=new e.constructor({enabled:!0,level:1})),t}return e}}});var oIr=H(apt=>{"use strict";Object.defineProperty(apt,"__esModule",{value:!0});apt.codeFrameColumns=k5n;apt.default=AUo;var w5n=B5n(),sIr=aUo(Udt(),!0);function D5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(D5n=function(n){return n?r:t})(e)}function aUo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=D5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var cUo=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,sIr.createColors)(!1):sIr.default,T5n=(e,t)=>r=>e(t(r)),iIr;function lUo(e){if(e){var t;return(t=iIr)!=null||(iIr=(0,sIr.createColors)(!0)),iIr}return cUo}var R5n=!1;function uUo(e){return{gutter:e.gray,marker:T5n(e.red,e.bold),message:T5n(e.red,e.bold)}}var N5n=/\r\n|[\n\r\u2028\u2029]/;function gUo(e,t,r){let n=Object.assign({column:0,line:-1},e.start),a=Object.assign({},n,e.end),{linesAbove:o=2,linesBelow:l=3}=r||{},A=n.line,f=n.column,I=a.line,C=a.column,b=Math.max(A-(o+1),0),E=Math.min(t.length,I+l);A===-1&&(b=0),I===-1&&(E=t.length);let N=I-A,B={};if(N)for(let F=0;F<=N;F++){let Q=F+A;if(!f)B[Q]=!0;else if(F===0){let X=t[Q-1].length;B[Q]=[f,X-f+1]}else if(F===N)B[Q]=[0,C];else{let X=t[Q-F].length;B[Q]=[0,X]}}else f===C?f?B[A]=[f,0]:B[A]=!0:B[A]=[f,C-f];return{start:b,end:E,markerLines:B}}function k5n(e,t,r={}){let n=(r.highlightCode||r.forceColor)&&(0,w5n.shouldHighlight)(r),a=lUo(r.forceColor),o=uUo(a),l=(F,Q)=>n?F(Q):Q,A=e.split(N5n),{start:f,end:I,markerLines:C}=gUo(t,A,r),b=t.start&&typeof t.start.column=="number",E=String(I).length,B=(n?(0,w5n.default)(e,r):e).split(N5n,I).slice(f,I).map((F,Q)=>{let X=f+1+Q,ne=` ${` ${X}`.slice(-E)} |`,ce=C[X],fe=!C[X+1];if(ce){let ue="";if(Array.isArray(ce)){let de=F.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` `,l(o.gutter,ne.replace(/\d/g," "))," ",de,l(o.marker,"^").repeat(be)].join(""),fe&&r.message&&(ue+=" "+l(o.message,r.message))}return[l(o.marker,">"),l(o.gutter,ne),F.length>0?` ${F}`:"",ue].join("")}else return` ${l(o.gutter,ne)}${F.length>0?` ${F}`:""}`}).join(` `);return r.message&&!b&&(B=`${" ".repeat(E+1)}${r.message} -${B}`),n?a.reset(B):B}function AUo(e,t,r,n={}){if(!R5n){R5n=!0;let o="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning)process.emitWarning(o,"DeprecationWarning");else{let l=new Error(o);l.name="DeprecationWarning",console.warn(new Error(o))}}return r=Math.max(r,0),k5n(e,{start:{column:r,line:t}},n)}});var Y5n=H(Lm=>{"use strict";var EMe=Symbol.for("react.element"),dUo=Symbol.for("react.portal"),pUo=Symbol.for("react.fragment"),fUo=Symbol.for("react.strict_mode"),IUo=Symbol.for("react.profiler"),hUo=Symbol.for("react.provider"),mUo=Symbol.for("react.context"),CUo=Symbol.for("react.forward_ref"),_Uo=Symbol.for("react.suspense"),yUo=Symbol.for("react.memo"),bUo=Symbol.for("react.lazy"),x5n=Symbol.iterator;function EUo(e){return e===null||typeof e!="object"?null:(e=x5n&&e[x5n]||e["@@iterator"],typeof e=="function"?e:null)}var Z5n={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L5n=Object.assign,V5n={};function nBe(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}nBe.prototype.isReactComponent={};nBe.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};nBe.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function P5n(){}P5n.prototype=nBe.prototype;function cIr(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}var lIr=cIr.prototype=new P5n;lIr.constructor=cIr;L5n(lIr,nBe.prototype);lIr.isPureReactComponent=!0;var G5n=Array.isArray,W5n=Object.prototype.hasOwnProperty,uIr={current:null},O5n={key:!0,ref:!0,__self:!0,__source:!0};function M5n(e,t,r){var n,a={},o=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(o=""+t.key),t)W5n.call(t,n)&&!O5n.hasOwnProperty(n)&&(a[n]=t[n]);var A=arguments.length-2;if(A===1)a.children=r;else if(1{"use strict";Q5n.exports=Y5n()});var AIr=H((iBe,SMe)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",o="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",A=500,f="__lodash_placeholder__",I=1,C=2,b=4,E=1,N=2,B=1,F=2,Q=4,X=8,ae=16,ne=32,ce=64,fe=128,ue=256,de=512,be=30,Se="...",De=800,k=16,et=1,ct=2,Me=3,je=1/0,St=9007199254740991,At=17976931348623157e292,Yt=NaN,Tr=4294967295,Nr=Tr-1,er=Tr>>>1,vt=[["ary",fe],["bind",B],["bindKey",F],["curry",X],["curryRight",ae],["flip",de],["partial",ne],["partialRight",ce],["rearg",ue]],xt="[object Arguments]",Zr="[object Array]",qt="[object AsyncFunction]",Xt="[object Boolean]",lr="[object Date]",cr="[object DOMException]",Ar="[object Error]",qr="[object Function]",_n="[object GeneratorFunction]",ke="[object Map]",jt="[object Number]",Fn="[object Null]",Nn="[object Object]",Hi="[object Promise]",po="[object Proxy]",Vr="[object RegExp]",xi="[object Set]",io="[object String]",ga="[object Symbol]",Ya="[object Undefined]",Gc="[object WeakMap]",cl="[object WeakSet]",Sc="[object ArrayBuffer]",Hr="[object DataView]",Wr="[object Float32Array]",Ft="[object Float64Array]",zr="[object Int8Array]",Rn="[object Int16Array]",Or="[object Int32Array]",Qi="[object Uint8Array]",ps="[object Uint8ClampedArray]",yo="[object Uint16Array]",bo="[object Uint32Array]",Qa=/\b__p \+= '';/g,gc=/\b(__p \+=) '' \+/g,Cg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Nc=/&(?:amp|lt|gt|quot|#39);/g,iA=/[&<>"']/g,ma=RegExp(Nc.source),vu=RegExp(iA.source),li=/<%-([\s\S]+?)%>/g,Ei=/<%([\s\S]+?)%>/g,Ps=/<%=([\s\S]+?)%>/g,Xa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ac=/^\w*$/,Yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wc=/[\\^$.*+?()[\]{}|]/g,Sg=RegExp(Wc.source),Ul=/^\s+/,Xu=/\s/,Da=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pu=/\{\n\/\* \[wrapped with (.+)\] \*/,_g=/,? & /,mI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qh=/[()=,{}\[\]\/\s]/,Ri=/\\(\\)?/g,Do=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Hu=/^[-+]0x[0-9a-f]+$/i,Ru=/^0b[01]+$/i,Vs=/^\[object .+?Constructor\]$/,Ju=/^0o[0-7]+$/i,Yn=/^(?:0|[1-9]\d*)$/,Ko=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Eg=/($^)/,OA=/['\n\r\u2028\u2029\\]/g,GA="\\ud800-\\udfff",$i="\\u0300-\\u036f",dl="\\ufe20-\\ufe2f",Uf="\\u20d0-\\u20ff",Kd=$i+dl+Uf,oA="\\u2700-\\u27bf",oo="a-z\\xdf-\\xf6\\xf8-\\xff",Ki="\\xac\\xb1\\xd7\\xf7",cc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xs="\\u2000-\\u206f",ws=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Gs="A-Z\\xc0-\\xd6\\xd8-\\xde",Ma="\\ufe0e\\ufe0f",Dc=Ki+cc+Xs+ws,As="['\u2019]",Tf="["+GA+"]",cm="["+Dc+"]",Fl="["+Kd+"]",rc="\\d+",sd="["+oA+"]",Om="["+oo+"]",il="[^"+GA+Dc+rc+oA+oo+Gs+"]",FA="\\ud83c[\\udffb-\\udfff]",ZA="(?:"+Fl+"|"+FA+")",El="[^"+GA+"]",yg="(?:\\ud83c[\\udde6-\\uddff]){2}",Mp="[\\ud800-\\udbff][\\udc00-\\udfff]",MA="["+Gs+"]",Er="\\u200d",Zt="(?:"+Om+"|"+il+")",yn="(?:"+MA+"|"+il+")",ls="(?:"+As+"(?:d|ll|m|re|s|t|ve))?",oa="(?:"+As+"(?:D|LL|M|RE|S|T|VE))?",Fs=ZA+"?",Wa="["+Ma+"]?",Ca="(?:"+Er+"(?:"+[El,yg,Mp].join("|")+")"+Wa+Fs+")*",ld="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Rp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",np=Wa+Fs+Ca,HA="(?:"+[sd,yg,Mp].join("|")+")"+np,df="(?:"+[El+Fl+"?",Fl,yg,Mp,Tf].join("|")+")",Zs=RegExp(As,"g"),so=RegExp(Fl,"g"),Ea=RegExp(FA+"(?="+FA+")|"+df+np,"g"),Ml=RegExp([MA+"?"+Om+"+"+ls+"(?="+[cm,MA,"$"].join("|")+")",yn+"+"+oa+"(?="+[cm,MA+Zt,"$"].join("|")+")",MA+"?"+Zt+"+"+ls,MA+"+"+oa,Rp,ld,rc,HA].join("|"),"g"),Dr=RegExp("["+Er+GA+Kd+Ma+"]"),Wn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,di=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],aa=-1,Bo={};Bo[Wr]=Bo[Ft]=Bo[zr]=Bo[Rn]=Bo[Or]=Bo[Qi]=Bo[ps]=Bo[yo]=Bo[bo]=!0,Bo[xt]=Bo[Zr]=Bo[Sc]=Bo[Xt]=Bo[Hr]=Bo[lr]=Bo[Ar]=Bo[qr]=Bo[ke]=Bo[jt]=Bo[Nn]=Bo[Vr]=Bo[xi]=Bo[io]=Bo[Gc]=!1;var us={};us[xt]=us[Zr]=us[Sc]=us[Hr]=us[Xt]=us[lr]=us[Wr]=us[Ft]=us[zr]=us[Rn]=us[Or]=us[ke]=us[jt]=us[Nn]=us[Vr]=us[xi]=us[io]=us[ga]=us[Qi]=us[ps]=us[yo]=us[bo]=!0,us[Ar]=us[qr]=us[Gc]=!1;var Ql={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},LA={"&":"&","<":"<",">":">",'"':""","'":"'"},pf={"&":"&","<":"<",">":">",""":'"',"'":"'"},ef={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ip=parseFloat,_d=parseInt,j1=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,YA=j1||pw||Function("return this")(),Ac=typeof iBe=="object"&&iBe&&!iBe.nodeType&&iBe,Nm=Ac&&typeof SMe=="object"&&SMe&&!SMe.nodeType&&SMe,HS=Nm&&Nm.exports===Ac,jd=HS&&j1.process,dh=function(){try{var cs=Nm&&Nm.require&&Nm.require("util").types;return cs||jd&&jd.binding&&jd.binding("util")}catch{}}(),Hp=dh&&dh.isArrayBuffer,uC=dh&&dh.isDate,nE=dh&&dh.isMap,J_=dh&&dh.isRegExp,q0=dh&&dh.isSet,XE=dh&&dh.isTypedArray;function TC(cs,na,ko){switch(ko.length){case 0:return cs.call(na);case 1:return cs.call(na,ko[0]);case 2:return cs.call(na,ko[0],ko[1]);case 3:return cs.call(na,ko[0],ko[1],ko[2])}return cs.apply(na,ko)}function t_(cs,na,ko,ki){for(var Kl=-1,fd=cs==null?0:cs.length;++Kl-1}function Kf(cs,na,ko){for(var ki=-1,Kl=cs==null?0:cs.length;++ki-1;);return ko}function z1(cs,na){for(var ko=cs.length;ko--&&Yr(na,cs[ko],0)>-1;);return ko}function T_(cs,na){for(var ko=cs.length,ki=0;ko--;)cs[ko]===na&&++ki;return ki}var RC=kc(Ql),Hm=kc(LA);function YS(cs){return"\\"+ef[cs]}function Fg(cs,na){return cs==null?e:cs[na]}function hb(cs){return Dr.test(cs)}function gC(cs){return Wn.test(cs)}function NC(cs){for(var na,ko=[];!(na=cs.next()).done;)ko.push(na.value);return ko}function Y2(cs){var na=-1,ko=Array(cs.size);return cs.forEach(function(ki,Kl){ko[++na]=[Kl,ki]}),ko}function U_(cs,na){return function(ko){return cs(na(ko))}}function DC(cs,na){for(var ko=-1,ki=cs.length,Kl=0,fd=[];++ko-1}function yb(ie,he){var ze=this.__data__,Ut=gB(ze,ie);return Ut<0?(++this.size,ze.push([ie,he])):ze[Ut][1]=he,this}N_.prototype.clear=e1,N_.prototype.delete=t1,N_.prototype.get=ry,N_.prototype.has=xT,N_.prototype.set=yb;function r_(ie){var he=-1,ze=ie==null?0:ie.length;for(this.clear();++he=he?ie:he)),ie}function bI(ie,he,ze,Ut,Qr,kn){var Fi,rs=he&I,qs=he&C,vc=he&b;if(ze&&(Fi=Qr?ze(ie,Ut,Qr,kn):ze(ie)),Fi!==e)return Fi;if(!WI(ie))return ie;var qa=Ed(ie);if(qa){if(Fi=IE(ie),!rs)return Cl(ie,Fi)}else{var fc=Nh(ie),vl=fc==qr||fc==_n;if(PT(ie))return cA(ie,rs);if(fc==Nn||fc==xt||vl&&!Qr){if(Fi=qs||vl?{}:zR(ie),!rs)return qs?j2(ie,b0(Fi,ie)):$f(ie,GT(Fi,ie))}else{if(!us[fc])return Qr?ie:{};Fi=e3(ie,fc,rs)}}kn||(kn=new lc);var Zu=kn.get(ie);if(Zu)return Zu;kn.set(ie,Fi),wJ(ie)?ie.forEach(function(Sd){Fi.add(bI(Sd,he,ze,Sd,ie,kn))}):Dre(ie)&&ie.forEach(function(Sd,tI){Fi.set(tI,bI(Sd,he,ze,tI,ie,kn))});var VA=vc?qs?Xr:kr:qs?Ew:S0,hf=qa?e:VA(ie);return cp(hf||ie,function(Sd,tI){hf&&(tI=Sd,Sd=ie[tI]),r1(Fi,tI,bI(Sd,he,ze,tI,ie,kn))}),Fi}function ag(ie){var he=S0(ie);return function(ze){return Eb(ze,ie,he)}}function Eb(ie,he,ze){var Ut=ze.length;if(ie==null)return!Ut;for(ie=Ld(ie);Ut--;){var Qr=ze[Ut],kn=he[Qr],Fi=ie[Qr];if(Fi===e&&!(Qr in ie)||!kn(Fi))return!1}return!0}function n1(ie,he,ze){if(typeof ie!="function")throw new Ym(a);return Dd(function(){ie.apply(e,ze)},he)}function U2(ie,he,ze,Ut){var Qr=-1,kn=lm,Fi=!0,rs=ie.length,qs=[],vc=he.length;if(!rs)return qs;ze&&(he=CI(he,lp(ze))),Ut?(kn=Kf,Fi=!1):he.length>=r&&(kn=Na,Fi=!1,he=new q_(he));e:for(;++QrQr?0:Qr+ze),Ut=Ut===e||Ut>Qr?Qr:If(Ut),Ut<0&&(Ut+=Qr),Ut=ze>Ut?0:WT(Ut);ze0&&ze(rs)?he>1?Xh(rs,he-1,ze,Ut,Qr):_I(Qr,rs):Ut||(Qr[Qr.length]=rs)}return Qr}var E0=Yu(),aA=Yu(!0);function fu(ie,he){return ie&&E0(ie,he,S0)}function Jp(ie,he){return ie&&aA(ie,he,S0)}function dC(ie,he){return pe(he,function(ze){return wx(ie[ze])})}function uE(ie,he){he=Ta(he,ie);for(var ze=0,Ut=he.length;ie!=null&&zehe}function gp(ie,he){return ie!=null&&Yp.call(ie,he)}function lF(ie,he){return ie!=null&&he in Ld(ie)}function uF(ie,he,ze){return ie>=BA(he,ze)&&ie<$I(he,ze)}function gE(ie,he,ze){for(var Ut=ze?Kf:lm,Qr=ie[0].length,kn=ie.length,Fi=kn,rs=ko(kn),qs=1/0,vc=[];Fi--;){var qa=ie[Fi];Fi&&he&&(qa=CI(qa,lp(he))),qs=BA(qa.length,qs),rs[Fi]=!ze&&(he||Qr>=120&&qa.length>=120)?new q_(Fi&&qa):e}qa=ie[0];var fc=-1,vl=rs[0];e:for(;++fc-1;)rs!==ie&&Ng.call(rs,qs,1),Ng.call(ie,qs,1);return ie}function r2(ie,he){for(var ze=ie?he.length:0,Ut=ze-1;ze--;){var Qr=he[ze];if(ze==Ut||Qr!==kn){var kn=Qr;zd(Qr)?Ng.call(ie,Qr,1):te(ie,Qr)}}return ie}function i1(ie,he){return ie+jE(zf()*(he-ie+1))}function Of(ie,he,ze,Ut){for(var Qr=-1,kn=$I(wy((he-ie)/(ze||1)),0),Fi=ko(kn);kn--;)Fi[Ut?kn:++Qr]=ie,ie+=ze;return Fi}function pE(ie,he){var ze="";if(!ie||he<1||he>St)return ze;do he%2&&(ze+=ie),he=jE(he/2),he&&(ie+=ie);while(he);return ze}function Vd(ie,he){return ji(ad(ie,he,vw),ie+"")}function j(ie){return uB(GJ(ie))}function Z(ie,he){var ze=GJ(ie);return Ap(ze,yd(he,0,ze.length))}function Id(ie,he,ze,Ut){if(!WI(ie))return ie;he=Ta(he,ie);for(var Qr=-1,kn=he.length,Fi=kn-1,rs=ie;rs!=null&&++QrQr?0:Qr+he),ze=ze>Qr?Qr:ze,ze<0&&(ze+=Qr),Qr=he>ze?0:ze-he>>>0,he>>>=0;for(var kn=ko(Qr);++Ut>>1,Fi=ie[kn];Fi!==null&&!eI(Fi)&&(ze?Fi<=he:Fi=r){var vc=he?null:Uh(ie);if(vc)return kC(vc);Fi=!1,Qr=Na,qs=new q_}else qs=he?[]:rs;e:for(;++Ut=Ut?ie:vb(ie,he,ze)}var Wg=TT||function(ie){return YA.clearTimeout(ie)};function cA(ie,he){if(he)return ie.slice();var ze=ie.length,Ut=Gn?Gn(ze):new ie.constructor(ze);return ie.copy(Ut),Ut}function th(ie){var he=new ie.constructor(ie.byteLength);return new Jr(he).set(new Jr(ie)),he}function xn(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.byteLength)}function rn(ie){var he=new ie.constructor(ie.source,Wt.exec(ie));return he.lastIndex=ie.lastIndex,he}function Ci(ie){return X2?Ld(X2.call(ie)):{}}function Po(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.length)}function ec(ie,he){if(ie!==he){var ze=ie!==e,Ut=ie===null,Qr=ie===ie,kn=eI(ie),Fi=he!==e,rs=he===null,qs=he===he,vc=eI(he);if(!rs&&!vc&&!kn&&ie>he||kn&&Fi&&qs&&!rs&&!vc||Ut&&Fi&&qs||!ze&&qs||!Qr)return 1;if(!Ut&&!kn&&!vc&&ie=rs)return qs;var vc=ze[Ut];return qs*(vc=="desc"?-1:1)}}return ie.index-he.index}function dc(ie,he,ze,Ut){for(var Qr=-1,kn=ie.length,Fi=ze.length,rs=-1,qs=he.length,vc=$I(kn-Fi,0),qa=ko(qs+vc),fc=!Ut;++rs1?ze[Qr-1]:e,Fi=Qr>2?ze[2]:e;for(kn=ie.length>3&&typeof kn=="function"?(Qr--,kn):e,Fi&&wA(ze[0],ze[1],Fi)&&(kn=Qr<3?e:kn,Qr=1),he=Ld(he);++Ut-1?Qr[kn?he[Fi]:Fi]:e}}function LT(ie){return Jt(function(he){var ze=he.length,Ut=ze,Qr=ey.prototype.thru;for(ie&&he.reverse();Ut--;){var kn=he[Ut];if(typeof kn!="function")throw new Ym(a);if(Qr&&!Fi&&Is(kn)=="wrapper")var Fi=new ey([],!0)}for(Ut=Fi?Ut:ze;++Ut1&&rI.reverse(),qa&&qsrs))return!1;var vc=kn.get(ie),qa=kn.get(he);if(vc&&qa)return vc==he&&qa==ie;var fc=-1,vl=!0,Zu=ze&N?new q_:e;for(kn.set(ie,he),kn.set(he,ie);++fc1?"& ":"")+he[Ut],he=he.join(ze>2?", ":" "),ie.replace(Da,`{ +${B}`),n?a.reset(B):B}function AUo(e,t,r,n={}){if(!R5n){R5n=!0;let o="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning)process.emitWarning(o,"DeprecationWarning");else{let l=new Error(o);l.name="DeprecationWarning",console.warn(new Error(o))}}return r=Math.max(r,0),k5n(e,{start:{column:r,line:t}},n)}});var Y5n=H(Lm=>{"use strict";var EMe=Symbol.for("react.element"),dUo=Symbol.for("react.portal"),pUo=Symbol.for("react.fragment"),fUo=Symbol.for("react.strict_mode"),IUo=Symbol.for("react.profiler"),hUo=Symbol.for("react.provider"),mUo=Symbol.for("react.context"),CUo=Symbol.for("react.forward_ref"),_Uo=Symbol.for("react.suspense"),yUo=Symbol.for("react.memo"),bUo=Symbol.for("react.lazy"),x5n=Symbol.iterator;function EUo(e){return e===null||typeof e!="object"?null:(e=x5n&&e[x5n]||e["@@iterator"],typeof e=="function"?e:null)}var Z5n={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L5n=Object.assign,V5n={};function nBe(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}nBe.prototype.isReactComponent={};nBe.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};nBe.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function P5n(){}P5n.prototype=nBe.prototype;function cIr(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}var lIr=cIr.prototype=new P5n;lIr.constructor=cIr;L5n(lIr,nBe.prototype);lIr.isPureReactComponent=!0;var G5n=Array.isArray,W5n=Object.prototype.hasOwnProperty,uIr={current:null},O5n={key:!0,ref:!0,__self:!0,__source:!0};function M5n(e,t,r){var n,a={},o=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(o=""+t.key),t)W5n.call(t,n)&&!O5n.hasOwnProperty(n)&&(a[n]=t[n]);var A=arguments.length-2;if(A===1)a.children=r;else if(1{"use strict";Q5n.exports=Y5n()});var AIr=H((iBe,SMe)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",o="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",A=500,f="__lodash_placeholder__",I=1,C=2,b=4,E=1,N=2,B=1,F=2,Q=4,X=8,ae=16,ne=32,ce=64,fe=128,ue=256,de=512,be=30,Se="...",De=800,k=16,et=1,ct=2,Me=3,je=1/0,St=9007199254740991,At=17976931348623157e292,Yt=NaN,Tr=4294967295,Nr=Tr-1,er=Tr>>>1,vt=[["ary",fe],["bind",B],["bindKey",F],["curry",X],["curryRight",ae],["flip",de],["partial",ne],["partialRight",ce],["rearg",ue]],xt="[object Arguments]",Zr="[object Array]",qt="[object AsyncFunction]",Xt="[object Boolean]",lr="[object Date]",cr="[object DOMException]",Ar="[object Error]",qr="[object Function]",_n="[object GeneratorFunction]",ke="[object Map]",jt="[object Number]",Fn="[object Null]",Nn="[object Object]",Hi="[object Promise]",po="[object Proxy]",Vr="[object RegExp]",xi="[object Set]",io="[object String]",ga="[object Symbol]",Ya="[object Undefined]",Gc="[object WeakMap]",cl="[object WeakSet]",Sc="[object ArrayBuffer]",Hr="[object DataView]",Wr="[object Float32Array]",Ft="[object Float64Array]",zr="[object Int8Array]",Rn="[object Int16Array]",Or="[object Int32Array]",Qi="[object Uint8Array]",ps="[object Uint8ClampedArray]",yo="[object Uint16Array]",bo="[object Uint32Array]",Qa=/\b__p \+= '';/g,gc=/\b(__p \+=) '' \+/g,Cg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Nc=/&(?:amp|lt|gt|quot|#39);/g,iA=/[&<>"']/g,ma=RegExp(Nc.source),vu=RegExp(iA.source),li=/<%-([\s\S]+?)%>/g,Ei=/<%([\s\S]+?)%>/g,Ps=/<%=([\s\S]+?)%>/g,Xa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ac=/^\w*$/,Yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wc=/[\\^$.*+?()[\]{}|]/g,Sg=RegExp(Wc.source),Ul=/^\s+/,Xu=/\s/,Da=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pu=/\{\n\/\* \[wrapped with (.+)\] \*/,_g=/,? & /,mI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qh=/[()=,{}\[\]\/\s]/,Ri=/\\(\\)?/g,Do=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Hu=/^[-+]0x[0-9a-f]+$/i,Ru=/^0b[01]+$/i,Vs=/^\[object .+?Constructor\]$/,Ju=/^0o[0-7]+$/i,Yn=/^(?:0|[1-9]\d*)$/,Ko=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Eg=/($^)/,OA=/['\n\r\u2028\u2029\\]/g,GA="\\ud800-\\udfff",$i="\\u0300-\\u036f",dl="\\ufe20-\\ufe2f",Uf="\\u20d0-\\u20ff",Kd=$i+dl+Uf,oA="\\u2700-\\u27bf",oo="a-z\\xdf-\\xf6\\xf8-\\xff",Ki="\\xac\\xb1\\xd7\\xf7",cc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xs="\\u2000-\\u206f",ws=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Gs="A-Z\\xc0-\\xd6\\xd8-\\xde",Ma="\\ufe0e\\ufe0f",Dc=Ki+cc+Xs+ws,As="['\u2019]",Tf="["+GA+"]",cm="["+Dc+"]",Fl="["+Kd+"]",rc="\\d+",sd="["+oA+"]",Om="["+oo+"]",il="[^"+GA+Dc+rc+oA+oo+Gs+"]",FA="\\ud83c[\\udffb-\\udfff]",ZA="(?:"+Fl+"|"+FA+")",El="[^"+GA+"]",yg="(?:\\ud83c[\\udde6-\\uddff]){2}",Mp="[\\ud800-\\udbff][\\udc00-\\udfff]",MA="["+Gs+"]",Er="\\u200d",Zt="(?:"+Om+"|"+il+")",yn="(?:"+MA+"|"+il+")",ls="(?:"+As+"(?:d|ll|m|re|s|t|ve))?",oa="(?:"+As+"(?:D|LL|M|RE|S|T|VE))?",Fs=ZA+"?",Wa="["+Ma+"]?",Ca="(?:"+Er+"(?:"+[El,yg,Mp].join("|")+")"+Wa+Fs+")*",ld="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Rp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",np=Wa+Fs+Ca,HA="(?:"+[sd,yg,Mp].join("|")+")"+np,df="(?:"+[El+Fl+"?",Fl,yg,Mp,Tf].join("|")+")",Zs=RegExp(As,"g"),so=RegExp(Fl,"g"),Ea=RegExp(FA+"(?="+FA+")|"+df+np,"g"),Ml=RegExp([MA+"?"+Om+"+"+ls+"(?="+[cm,MA,"$"].join("|")+")",yn+"+"+oa+"(?="+[cm,MA+Zt,"$"].join("|")+")",MA+"?"+Zt+"+"+ls,MA+"+"+oa,Rp,ld,rc,HA].join("|"),"g"),Dr=RegExp("["+Er+GA+Kd+Ma+"]"),Wn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,di=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],aa=-1,Bo={};Bo[Wr]=Bo[Ft]=Bo[zr]=Bo[Rn]=Bo[Or]=Bo[Qi]=Bo[ps]=Bo[yo]=Bo[bo]=!0,Bo[xt]=Bo[Zr]=Bo[Sc]=Bo[Xt]=Bo[Hr]=Bo[lr]=Bo[Ar]=Bo[qr]=Bo[ke]=Bo[jt]=Bo[Nn]=Bo[Vr]=Bo[xi]=Bo[io]=Bo[Gc]=!1;var us={};us[xt]=us[Zr]=us[Sc]=us[Hr]=us[Xt]=us[lr]=us[Wr]=us[Ft]=us[zr]=us[Rn]=us[Or]=us[ke]=us[jt]=us[Nn]=us[Vr]=us[xi]=us[io]=us[ga]=us[Qi]=us[ps]=us[yo]=us[bo]=!0,us[Ar]=us[qr]=us[Gc]=!1;var Ql={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},LA={"&":"&","<":"<",">":">",'"':""","'":"'"},pf={"&":"&","<":"<",">":">",""":'"',"'":"'"},ef={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ip=parseFloat,_d=parseInt,j1=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,YA=j1||pw||Function("return this")(),Ac=typeof iBe=="object"&&iBe&&!iBe.nodeType&&iBe,Nm=Ac&&typeof SMe=="object"&&SMe&&!SMe.nodeType&&SMe,HS=Nm&&Nm.exports===Ac,jd=HS&&j1.process,dh=function(){try{var cs=Nm&&Nm.require&&Nm.require("util").types;return cs||jd&&jd.binding&&jd.binding("util")}catch{}}(),Hp=dh&&dh.isArrayBuffer,uC=dh&&dh.isDate,nE=dh&&dh.isMap,J_=dh&&dh.isRegExp,q0=dh&&dh.isSet,XE=dh&&dh.isTypedArray;function TC(cs,na,ko){switch(ko.length){case 0:return cs.call(na);case 1:return cs.call(na,ko[0]);case 2:return cs.call(na,ko[0],ko[1]);case 3:return cs.call(na,ko[0],ko[1],ko[2])}return cs.apply(na,ko)}function t_(cs,na,ko,ki){for(var Kl=-1,fd=cs==null?0:cs.length;++Kl-1}function Kf(cs,na,ko){for(var ki=-1,Kl=cs==null?0:cs.length;++ki-1;);return ko}function z1(cs,na){for(var ko=cs.length;ko--&&Yr(na,cs[ko],0)>-1;);return ko}function T_(cs,na){for(var ko=cs.length,ki=0;ko--;)cs[ko]===na&&++ki;return ki}var RC=kc(Ql),Hm=kc(LA);function YS(cs){return"\\"+ef[cs]}function Fg(cs,na){return cs==null?e:cs[na]}function hb(cs){return Dr.test(cs)}function gC(cs){return Wn.test(cs)}function NC(cs){for(var na,ko=[];!(na=cs.next()).done;)ko.push(na.value);return ko}function Y2(cs){var na=-1,ko=Array(cs.size);return cs.forEach(function(ki,Kl){ko[++na]=[Kl,ki]}),ko}function U_(cs,na){return function(ko){return cs(na(ko))}}function DC(cs,na){for(var ko=-1,ki=cs.length,Kl=0,fd=[];++ko-1}function yb(ie,he){var ze=this.__data__,Ut=gB(ze,ie);return Ut<0?(++this.size,ze.push([ie,he])):ze[Ut][1]=he,this}N_.prototype.clear=e1,N_.prototype.delete=t1,N_.prototype.get=ry,N_.prototype.has=xT,N_.prototype.set=yb;function r_(ie){var he=-1,ze=ie==null?0:ie.length;for(this.clear();++he=he?ie:he)),ie}function bI(ie,he,ze,Ut,Qr,kn){var Fi,rs=he&I,qs=he&C,vc=he&b;if(ze&&(Fi=Qr?ze(ie,Ut,Qr,kn):ze(ie)),Fi!==e)return Fi;if(!WI(ie))return ie;var qa=Ed(ie);if(qa){if(Fi=IE(ie),!rs)return Cl(ie,Fi)}else{var fc=Nh(ie),vl=fc==qr||fc==_n;if(PT(ie))return cA(ie,rs);if(fc==Nn||fc==xt||vl&&!Qr){if(Fi=qs||vl?{}:zR(ie),!rs)return qs?j2(ie,b0(Fi,ie)):$f(ie,GT(Fi,ie))}else{if(!us[fc])return Qr?ie:{};Fi=e3(ie,fc,rs)}}kn||(kn=new lc);var Zu=kn.get(ie);if(Zu)return Zu;kn.set(ie,Fi),wJ(ie)?ie.forEach(function(Sd){Fi.add(bI(Sd,he,ze,Sd,ie,kn))}):Dre(ie)&&ie.forEach(function(Sd,tI){Fi.set(tI,bI(Sd,he,ze,tI,ie,kn))});var VA=vc?qs?Xr:kr:qs?Ew:S0,hf=qa?e:VA(ie);return cp(hf||ie,function(Sd,tI){hf&&(tI=Sd,Sd=ie[tI]),r1(Fi,tI,bI(Sd,he,ze,tI,ie,kn))}),Fi}function ag(ie){var he=S0(ie);return function(ze){return Eb(ze,ie,he)}}function Eb(ie,he,ze){var Ut=ze.length;if(ie==null)return!Ut;for(ie=Ld(ie);Ut--;){var Qr=ze[Ut],kn=he[Qr],Fi=ie[Qr];if(Fi===e&&!(Qr in ie)||!kn(Fi))return!1}return!0}function n1(ie,he,ze){if(typeof ie!="function")throw new Ym(a);return Dd(function(){ie.apply(e,ze)},he)}function U2(ie,he,ze,Ut){var Qr=-1,kn=lm,Fi=!0,rs=ie.length,qs=[],vc=he.length;if(!rs)return qs;ze&&(he=CI(he,lp(ze))),Ut?(kn=Kf,Fi=!1):he.length>=r&&(kn=Na,Fi=!1,he=new q_(he));e:for(;++QrQr?0:Qr+ze),Ut=Ut===e||Ut>Qr?Qr:If(Ut),Ut<0&&(Ut+=Qr),Ut=ze>Ut?0:WT(Ut);ze0&&ze(rs)?he>1?Xh(rs,he-1,ze,Ut,Qr):_I(Qr,rs):Ut||(Qr[Qr.length]=rs)}return Qr}var E0=Yu(),aA=Yu(!0);function fu(ie,he){return ie&&E0(ie,he,S0)}function Jp(ie,he){return ie&&aA(ie,he,S0)}function dC(ie,he){return pe(he,function(ze){return wx(ie[ze])})}function uE(ie,he){he=Ta(he,ie);for(var ze=0,Ut=he.length;ie!=null&&zehe}function gp(ie,he){return ie!=null&&Yp.call(ie,he)}function lF(ie,he){return ie!=null&&he in Ld(ie)}function uF(ie,he,ze){return ie>=BA(he,ze)&&ie<$I(he,ze)}function gE(ie,he,ze){for(var Ut=ze?Kf:lm,Qr=ie[0].length,kn=ie.length,Fi=kn,rs=ko(kn),qs=1/0,vc=[];Fi--;){var qa=ie[Fi];Fi&&he&&(qa=CI(qa,lp(he))),qs=BA(qa.length,qs),rs[Fi]=!ze&&(he||Qr>=120&&qa.length>=120)?new q_(Fi&&qa):e}qa=ie[0];var fc=-1,vl=rs[0];e:for(;++fc-1;)rs!==ie&&Ng.call(rs,qs,1),Ng.call(ie,qs,1);return ie}function r2(ie,he){for(var ze=ie?he.length:0,Ut=ze-1;ze--;){var Qr=he[ze];if(ze==Ut||Qr!==kn){var kn=Qr;zd(Qr)?Ng.call(ie,Qr,1):te(ie,Qr)}}return ie}function i1(ie,he){return ie+jE(zf()*(he-ie+1))}function Of(ie,he,ze,Ut){for(var Qr=-1,kn=$I(wy((he-ie)/(ze||1)),0),Fi=ko(kn);kn--;)Fi[Ut?kn:++Qr]=ie,ie+=ze;return Fi}function pE(ie,he){var ze="";if(!ie||he<1||he>St)return ze;do he%2&&(ze+=ie),he=jE(he/2),he&&(ie+=ie);while(he);return ze}function Vd(ie,he){return ji(ad(ie,he,vw),ie+"")}function j(ie){return uB(GJ(ie))}function Z(ie,he){var ze=GJ(ie);return Ap(ze,yd(he,0,ze.length))}function Id(ie,he,ze,Ut){if(!WI(ie))return ie;he=Ta(he,ie);for(var Qr=-1,kn=he.length,Fi=kn-1,rs=ie;rs!=null&&++QrQr?0:Qr+he),ze=ze>Qr?Qr:ze,ze<0&&(ze+=Qr),Qr=he>ze?0:ze-he>>>0,he>>>=0;for(var kn=ko(Qr);++Ut>>1,Fi=ie[kn];Fi!==null&&!eI(Fi)&&(ze?Fi<=he:Fi=r){var vc=he?null:Uh(ie);if(vc)return kC(vc);Fi=!1,Qr=Na,qs=new q_}else qs=he?[]:rs;e:for(;++Ut=Ut?ie:vb(ie,he,ze)}var Wg=TT||function(ie){return YA.clearTimeout(ie)};function cA(ie,he){if(he)return ie.slice();var ze=ie.length,Ut=Gn?Gn(ze):new ie.constructor(ze);return ie.copy(Ut),Ut}function th(ie){var he=new ie.constructor(ie.byteLength);return new Jr(he).set(new Jr(ie)),he}function xn(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.byteLength)}function rn(ie){var he=new ie.constructor(ie.source,Wt.exec(ie));return he.lastIndex=ie.lastIndex,he}function Ci(ie){return X2?Ld(X2.call(ie)):{}}function Po(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.length)}function ec(ie,he){if(ie!==he){var ze=ie!==e,Ut=ie===null,Qr=ie===ie,kn=eI(ie),Fi=he!==e,rs=he===null,qs=he===he,vc=eI(he);if(!rs&&!vc&&!kn&&ie>he||kn&&Fi&&qs&&!rs&&!vc||Ut&&Fi&&qs||!ze&&qs||!Qr)return 1;if(!Ut&&!kn&&!vc&&ie=rs)return qs;var vc=ze[Ut];return qs*(vc=="desc"?-1:1)}}return ie.index-he.index}function dc(ie,he,ze,Ut){for(var Qr=-1,kn=ie.length,Fi=ze.length,rs=-1,qs=he.length,vc=$I(kn-Fi,0),qa=ko(qs+vc),fc=!Ut;++rs1?ze[Qr-1]:e,Fi=Qr>2?ze[2]:e;for(kn=ie.length>3&&typeof kn=="function"?(Qr--,kn):e,Fi&&wA(ze[0],ze[1],Fi)&&(kn=Qr<3?e:kn,Qr=1),he=Ld(he);++Ut-1?Qr[kn?he[Fi]:Fi]:e}}function LT(ie){return Jt(function(he){var ze=he.length,Ut=ze,Qr=ey.prototype.thru;for(ie&&he.reverse();Ut--;){var kn=he[Ut];if(typeof kn!="function")throw new Ym(a);if(Qr&&!Fi&&Is(kn)=="wrapper")var Fi=new ey([],!0)}for(Ut=Fi?Ut:ze;++Ut1&&rI.reverse(),qa&&qsrs))return!1;var vc=kn.get(ie),qa=kn.get(he);if(vc&&qa)return vc==he&&qa==ie;var fc=-1,vl=!0,Zu=ze&N?new q_:e;for(kn.set(ie,he),kn.set(he,ie);++fc1?"& ":"")+he[Ut],he=he.join(ze>2?", ":" "),ie.replace(Da,`{ /* [wrapped with `+he+`] */ `)}function EI(ie){return Ed(ie)||_Y(ie)||!!(Rf&&ie&&ie[Rf])}function zd(ie,he){var ze=typeof ie;return he=he??St,!!he&&(ze=="number"||ze!="symbol"&&Yn.test(ie))&&ie>-1&&ie%1==0&&ie0){if(++he>=De)return arguments[0]}else he=0;return ie.apply(e,arguments)}}function Ap(ie,he){var ze=-1,Ut=ie.length,Qr=Ut-1;for(he=he===e?Ut:he;++ze1?ie[he-1]:e;return ze=typeof ze=="function"?(ie.pop(),ze):e,i3(ie,ze)});function q6(ie){var he=pn(ie);return he.__chain__=!0,he}function BL(ie,he){return he(ie),ie}function tN(ie,he){return he(ie)}var pY=Jt(function(ie){var he=ie.length,ze=he?ie[0]:0,Ut=this.__wrapped__,Qr=function(kn){return e2(kn,ie)};return he>1||this.__actions__.length||!(Ut instanceof up)||!zd(ze)?this.thru(Qr):(Ut=Ut.slice(ze,+ze+(he?1:0)),Ut.__actions__.push({func:tN,args:[Qr],thisArg:e}),new ey(Ut,this.__chain__).thru(function(kn){return he&&!kn.length&&kn.push(e),kn}))});function wL(){return q6(this)}function bre(){return new ey(this.value(),this.__chain__)}function LD(){this.__values__===e&&(this.__values__=bB(this.value()));var ie=this.__index__>=this.__values__.length,he=ie?e:this.__values__[this.__index__++];return{done:ie,value:he}}function ige(){return this}function $6(ie){for(var he,ze=this;ze instanceof J2;){var Ut=J6(ze);Ut.__index__=0,Ut.__values__=e,he?Qr.__wrapped__=Ut:he=Ut;var Qr=Ut;ze=ze.__wrapped__}return Qr.__wrapped__=ie,he}function eS(){var ie=this.__wrapped__;if(ie instanceof up){var he=ie;return this.__actions__.length&&(he=new up(this)),he=he.reverse(),he.__actions__.push({func:tN,args:[oP],thisArg:e}),new ey(he,this.__chain__)}return this.thru(oP)}function rN(){return ft(this.__wrapped__,this.__actions__)}var mJ=_x(function(ie,he,ze){Yp.call(ie,ze)?++ie[ze]:ia(ie,ze,1)});function nN(ie,he,ze){var Ut=Ed(ie)?fb:Xp;return ze&&wA(ie,he,ze)&&(he=e),Ut(ie,Rs(he,3))}function sge(ie,he){var ze=Ed(ie)?pe:Ip;return ze(ie,Rs(he,3))}var Ere=iY(uJ),e7=iY(lY);function kp(ie,he){return Xh(fC(ie,he),1)}function TL(ie,he){return Xh(fC(ie,he),je)}function fY(ie,he,ze){return ze=ze===e?1:If(ze),Xh(fC(ie,he),ze)}function pC(ie,he){var ze=Ed(ie)?cp:e0;return ze(ie,Rs(he,3))}function cP(ie,he){var ze=Ed(ie)?Mm:n_;return ze(ie,Rs(he,3))}var VD=_x(function(ie,he,ze){Yp.call(ie,ze)?ie[ze].push(he):ia(ie,ze,[he])});function IY(ie,he,ze,Ut){ie=sN(ie)?ie:GJ(ie),ze=ze&&!Ut?If(ze):0;var Qr=ie.length;return ze<0&&(ze=$I(Qr+ze,0)),TJ(ie)?ze<=Qr&&ie.indexOf(he,ze)>-1:!!Qr&&Yr(ie,he,ze)>-1}var Sre=Vd(function(ie,he,ze){var Ut=-1,Qr=typeof he=="function",kn=sN(ie)?ko(ie.length):[];return e0(ie,function(Fi){kn[++Ut]=Qr?TC(he,Fi,ze):Np(Fi,he,ze)}),kn}),Ig=_x(function(ie,he,ze){ia(ie,ze,he)});function fC(ie,he){var ze=Ed(ie)?CI:K2;return ze(ie,Rs(he,3))}function VI(ie,he,ze,Ut){return ie==null?[]:(Ed(he)||(he=he==null?[]:[he]),ze=Ut?e:ze,Ed(ze)||(ze=ze==null?[]:[ze]),qf(ie,he,ze))}var RL=_x(function(ie,he,ze){ie[ze?0:1].push(he)},function(){return[[],[]]});function bu(ie,he,ze){var Ut=Ed(ie)?H2:Nl,Qr=arguments.length<3;return Ut(ie,Rs(he,4),ze,Qr,e0)}function s3(ie,he,ze){var Ut=Ed(ie)?iE:Nl,Qr=arguments.length<3;return Ut(ie,Rs(he,4),ze,Qr,n_)}function kd(ie,he){var ze=Ed(ie)?pe:Ip;return ze(ie,uP(Rs(he,3)))}function hY(ie){var he=Ed(ie)?uB:j;return he(ie)}function nye(ie,he,ze){(ze?wA(ie,he,ze):he===e)?he=1:he=If(he);var Ut=Ed(ie)?Ih:Z;return Ut(ie,he)}function lP(ie){var he=Ed(ie)?xC:Ny;return he(ie)}function CJ(ie){if(ie==null)return 0;if(sN(ie))return TJ(ie)?Td(ie):ie.length;var he=Nh(ie);return he==ke||he==xi?ie.size:ny(ie).length}function PI(ie,he,ze){var Ut=Ed(ie)?se:xD;return ze&&wA(ie,he,ze)&&(he=e),Ut(ie,Rs(he,3))}var xa=Vd(function(ie,he){if(ie==null)return[];var ze=he.length;return ze>1&&wA(ie,he[0],he[1])?he=[]:ze>2&&wA(he[0],he[1],he[2])&&(he=[he[0]]),qf(ie,Xh(he,1),[])}),yB=sB||function(){return YA.Date.now()};function t0(ie,he){if(typeof he!="function")throw new Ym(a);return ie=If(ie),function(){if(--ie<1)return he.apply(this,arguments)}}function vre(ie,he,ze){return he=ze?e:he,he=ie&&he==null?ie.length:he,Uu(ie,fe,e,e,e,e,he)}function NL(ie,he){var ze;if(typeof he!="function")throw new Ym(a);return ie=If(ie),function(){return--ie>0&&(ze=he.apply(this,arguments)),ie<=1&&(he=e),ze}}var dp=Vd(function(ie,he,ze){var Ut=B;if(ze.length){var Qr=DC(ze,Hs(dp));Ut|=ne}return Uu(ie,Ut,he,ze,Qr)}),Bx=Vd(function(ie,he,ze){var Ut=B|F;if(ze.length){var Qr=DC(ze,Hs(Bx));Ut|=ne}return Uu(he,Ut,ie,ze,Qr)});function mY(ie,he,ze){he=ze?e:he;var Ut=Uu(ie,X,e,e,e,e,e,he);return Ut.placeholder=mY.placeholder,Ut}function yw(ie,he,ze){he=ze?e:he;var Ut=Uu(ie,ae,e,e,e,e,e,he);return Ut.placeholder=yw.placeholder,Ut}function uc(ie,he,ze){var Ut,Qr,kn,Fi,rs,qs,vc=0,qa=!1,fc=!1,vl=!0;if(typeof ie!="function")throw new Ym(a);he=l1(he)||0,WI(ze)&&(qa=!!ze.leading,fc="maxWait"in ze,kn=fc?$I(l1(ze.maxWait)||0,he):kn,vl="trailing"in ze?!!ze.trailing:vl);function Zu(Up){var uv=Ut,ky=Qr;return Ut=Qr=e,vc=Up,Fi=ie.apply(ky,uv),Fi}function VA(Up){return vc=Up,rs=Dd(tI,he),qa?Zu(Up):Fi}function hf(Up){var uv=Up-qs,ky=Up-vc,nS=he-uv;return fc?BA(nS,kn-ky):nS}function Sd(Up){var uv=Up-qs,ky=Up-vc;return qs===e||uv>=he||uv<0||fc&&ky>=kn}function tI(){var Up=yB();if(Sd(Up))return rI(Up);rs=Dd(tI,hf(Up))}function rI(Up){return rs=e,vl&&Ut?Zu(Up):(Ut=Qr=e,Fi)}function OT(){rs!==e&&Wg(rs),vc=0,Ut=qs=Qr=rs=e}function rS(){return rs===e?Fi:rI(yB())}function Dy(){var Up=yB(),uv=Sd(Up);if(Ut=arguments,Qr=this,qs=Up,uv){if(rs===e)return VA(qs);if(fc)return Wg(rs),rs=Dd(tI,he),Zu(qs)}return rs===e&&(rs=Dd(tI,he)),Fi}return Dy.cancel=OT,Dy.flush=rS,Dy}var oge=Vd(function(ie,he){return n1(ie,1,he)}),Nu=Vd(function(ie,he,ze){return n1(ie,l1(he)||0,ze)});function CY(ie){return Uu(ie,de)}function o3(ie,he){if(typeof ie!="function"||he!=null&&typeof he!="function")throw new Ym(a);var ze=function(){var Ut=arguments,Qr=he?he.apply(this,Ut):Ut[0],kn=ze.cache;if(kn.has(Qr))return kn.get(Qr);var Fi=ie.apply(this,Ut);return ze.cache=kn.set(Qr,Fi)||kn,Fi};return ze.cache=new(o3.Cache||r_),ze}o3.Cache=r_;function uP(ie){if(typeof ie!="function")throw new Ym(a);return function(){var he=arguments;switch(he.length){case 0:return!ie.call(this);case 1:return!ie.call(this,he[0]);case 2:return!ie.call(this,he[0],he[1]);case 3:return!ie.call(this,he[0],he[1],he[2])}return!ie.apply(this,he)}}function _J(ie){return NL(2,ie)}var yJ=Sl(function(ie,he){he=he.length==1&&Ed(he[0])?CI(he[0],lp(Rs())):CI(Xh(he,1),lp(Rs()));var ze=he.length;return Vd(function(Ut){for(var Qr=-1,kn=BA(Ut.length,ze);++Qr=he}),_Y=Dm(function(){return arguments}())?Dm:function(ie){return CE(ie)&&Yp.call(ie,"callee")&&!vg.call(ie,"callee")},Ed=ko.isArray,VT=Hp?lp(Hp):Dp;function sN(ie){return ie!=null&&mE(ie.length)&&!wx(ie)}function Db(ie){return CE(ie)&&sN(ie)}function t7(ie){return ie===!0||ie===!1||CE(ie)&&Wf(ie)==Xt}var PT=NT||PJ,DL=uC?lp(uC):t2;function r7(ie){return CE(ie)&&ie.nodeType===1&&!yY(ie)}function n7(ie){if(ie==null)return!0;if(sN(ie)&&(Ed(ie)||typeof ie=="string"||typeof ie.splice=="function"||PT(ie)||c3(ie)||_Y(ie)))return!ie.length;var he=Nh(ie);if(he==ke||he==xi)return!ie.size;if(ye(ie))return!ny(ie).length;for(var ze in ie)if(Yp.call(ie,ze))return!1;return!0}function hE(ie,he){return Ro(ie,he)}function cge(ie,he,ze){ze=typeof ze=="function"?ze:e;var Ut=ze?ze(ie,he):e;return Ut===e?Ro(ie,he,e,ze):!!Ut}function Nre(ie){if(!CE(ie))return!1;var he=Wf(ie);return he==Ar||he==cr||typeof ie.message=="string"&&typeof ie.name=="string"&&!yY(ie)}function oye(ie){return typeof ie=="number"&&tf(ie)}function wx(ie){if(!WI(ie))return!1;var he=Wf(ie);return he==qr||he==_n||he==qt||he==po}function a3(ie){return typeof ie=="number"&&ie==If(ie)}function mE(ie){return typeof ie=="number"&&ie>-1&&ie%1==0&&ie<=St}function WI(ie){var he=typeof ie;return ie!=null&&(he=="object"||he=="function")}function CE(ie){return ie!=null&&typeof ie=="object"}var Dre=nE?lp(nE):AB;function lge(ie,he){return ie===he||Xc(ie,he,ho(he))}function jh(ie,he,ze){return ze=typeof ze=="function"?ze:e,Xc(ie,he,ho(he),ze)}function uge(ie){return kre(ie)&&ie!=+ie}function vJ(ie){if(z(ie))throw new Kl(n);return iu(ie)}function Lc(ie){return ie===null}function gge(ie){return ie==null}function kre(ie){return typeof ie=="number"||CE(ie)&&Wf(ie)==jt}function yY(ie){if(!CE(ie)||Wf(ie)!=Nn)return!1;var he=Ts(ie);if(he===null)return!0;var ze=Yp.call(he,"constructor")&&he.constructor;return typeof ze=="function"&&ze instanceof ze&&KE.call(ze)==fw}var kL=J_?lp(J_):dE;function BJ(ie){return a3(ie)&&ie>=-St&&ie<=St}var wJ=q0?lp(q0):yL;function TJ(ie){return typeof ie=="string"||!Ed(ie)&&CE(ie)&&Wf(ie)==io}function eI(ie){return typeof ie=="symbol"||CE(ie)&&Wf(ie)==ga}var c3=XE?lp(XE):KR;function RJ(ie){return ie===e}function l3(ie){return CE(ie)&&Nh(ie)==Gc}function i7(ie){return CE(ie)&&Wf(ie)==cl}var u3=mB(Am),cv=mB(function(ie,he){return ie<=he});function bB(ie){if(!ie)return[];if(sN(ie))return TJ(ie)?Mc(ie):Cl(ie);if(uI&&ie[uI])return NC(ie[uI]());var he=Nh(ie),ze=he==ke?Y2:he==xi?kC:GJ;return ze(ie)}function Xm(ie){if(!ie)return ie===0?ie:0;if(ie=l1(ie),ie===je||ie===-je){var he=ie<0?-1:1;return he*At}return ie===ie?ie:0}function If(ie){var he=Xm(ie),ze=he%1;return he===he?ze?he-ze:he:0}function WT(ie){return ie?yd(If(ie),0,Tr):0}function l1(ie){if(typeof ie=="number")return ie;if(eI(ie))return Yt;if(WI(ie)){var he=typeof ie.valueOf=="function"?ie.valueOf():ie;ie=WI(he)?he+"":he}if(typeof ie!="string")return ie===0?ie:+ie;ie=lI(ie);var ze=Ru.test(ie);return ze||Ju.test(ie)?_d(ie.slice(2),ze?2:8):Hu.test(ie)?Yt:+ie}function bY(ie){return wl(ie,Ew(ie))}function s7(ie){return ie?yd(If(ie),-St,St):ie===0?ie:0}function IC(ie){return ie==null?"":x(ie)}var xre=z2(function(ie,he){if(ye(he)||sN(he)){wl(he,S0(he),ie);return}for(var ze in he)Yp.call(he,ze)&&r1(ie,ze,he[ze])}),mA=z2(function(ie,he){wl(he,Ew(he),ie)}),Tx=z2(function(ie,he,ze,Ut){wl(he,Ew(he),ie,Ut)}),Gre=z2(function(ie,he,ze,Ut){wl(he,S0(he),ie,Ut)}),EB=Jt(e2);function aye(ie,he){var ze=q1(ie);return he==null?ze:GT(ze,he)}var Fre=Vd(function(ie,he){ie=Ld(ie);var ze=-1,Ut=he.length,Qr=Ut>2?he[2]:e;for(Qr&&wA(he[0],he[1],Qr)&&(Ut=1);++ze1),kn}),wl(ie,Xr(ie),ze),Ut&&(ze=bI(ze,I|C|b,oY));for(var Qr=he.length;Qr--;)te(ze,he[Qr]);return ze});function Vre(ie,he){return xL(ie,uP(Rs(he)))}var Ige=Jt(function(ie,he){return ie==null?{}:Jh(ie,he)});function xL(ie,he){if(ie==null)return{};var ze=CI(Xr(ie),function(Ut){return[Ut]});return he=Rs(he),$S(ie,ze,function(Ut,Qr){return he(Ut,Qr[0])})}function c7(ie,he,ze){he=Ta(he,ie);var Ut=-1,Qr=he.length;for(Qr||(Qr=1,ie=e);++Uthe){var Ut=ie;ie=he,he=Ut}if(ze||ie%1||he%1){var Qr=zf();return BA(ie+Qr*(he-ie+ip("1e-"+((Qr+"").length-1))),he)}return i1(ie,he)}var OD=mw(function(ie,he,ze){return he=he.toLowerCase(),ie+(ze?Cge(he):he)});function Cge(ie){return xp(IC(ie).toLowerCase())}function vY(ie){return ie=IC(ie),ie&&ie.replace(Ko,RC).replace(so,"")}function u7(ie,he,ze){ie=IC(ie),he=x(he);var Ut=ie.length;ze=ze===e?Ut:yd(If(ze),0,Ut);var Qr=ze;return ze-=he.length,ze>=0&&ie.slice(ze,Qr)==he}function sf(ie){return ie=IC(ie),ie&&vu.test(ie)?ie.replace(iA,Hm):ie}function u1(ie){return ie=IC(ie),ie&&Sg.test(ie)?ie.replace(Wc,"\\$&"):ie}var _ge=mw(function(ie,he,ze){return ie+(ze?"-":"")+he.toLowerCase()}),BY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toLowerCase()}),lye=hB("toLowerCase");function uye(ie,he,ze){ie=IC(ie),he=If(he);var Ut=he?Td(ie):0;if(!he||Ut>=he)return ie;var Qr=(he-Ut)/2;return FD(jE(Qr),ze)+ie+FD(wy(Qr),ze)}function gye(ie,he,ze){ie=IC(ie),he=If(he);var Ut=he?Td(ie):0;return he&&Ut>>0,ze?(ie=IC(ie),ie&&(typeof he=="string"||he!=null&&!kL(he))&&(he=x(he),!he&&hb(ie))?Ho(Mc(ie),0,ze):ie.split(he,ze)):[]}var bge=mw(function(ie,he,ze){return ie+(ze?" ":"")+xp(he)});function MD(ie,he,ze){return ie=IC(ie),ze=ze==null?0:yd(If(ze),0,ie.length),he=x(he),ie.slice(ze,ze+he.length)==he}function Mre(ie,he,ze){var Ut=pn.templateSettings;ze&&wA(ie,he,ze)&&(he=e),ie=IC(ie),he=Tx({},he,Ut,iy);var Qr=Tx({},he.imports,Ut.imports,iy),kn=S0(Qr),Fi=Ib(Qr,kn),rs,qs,vc=0,qa=he.interpolate||Eg,fc="__p += '",vl=AC((he.escape||Eg).source+"|"+qa.source+"|"+(qa===Ps?Do:Eg).source+"|"+(he.evaluate||Eg).source+"|$","g"),Zu="//# sourceURL="+(Yp.call(he,"sourceURL")?(he.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++aa+"]")+` `;ie.replace(vl,function(Sd,tI,rI,OT,rS,Dy){return rI||(rI=OT),fc+=ie.slice(vc,Dy).replace(OA,YS),tI&&(rs=!0,fc+=`' + @@ -314,9 +314,9 @@ __p += '`),rI&&(fc+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+fc+`return __p -}`;var hf=fP(function(){return fd(kn,Zu+"return "+fc).apply(e,Fi)});if(hf.source=fc,Nre(hf))throw hf;return hf}function Ege(ie){return IC(ie).toLowerCase()}function mF(ie){return IC(ie).toUpperCase()}function zFe(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return lI(ie);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=Mc(he),kn=wd(Ut,Qr),Fi=z1(Ut,Qr)+1;return Ho(Ut,kn,Fi).join("")}function wY(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.slice(0,Pf(ie)+1);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=z1(Ut,Mc(he))+1;return Ho(Ut,0,Qr).join("")}function HD(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.replace(Ul,"");if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=wd(Ut,Mc(he));return Ho(Ut,Qr).join("")}function CF(ie,he){var ze=be,Ut=Se;if(WI(he)){var Qr="separator"in he?he.separator:Qr;ze="length"in he?If(he.length):ze,Ut="omission"in he?x(he.omission):Ut}ie=IC(ie);var kn=ie.length;if(hb(ie)){var Fi=Mc(ie);kn=Fi.length}if(ze>=kn)return ie;var rs=ze-Td(Ut);if(rs<1)return Ut;var qs=Fi?Ho(Fi,0,rs).join(""):ie.slice(0,rs);if(Qr===e)return qs+Ut;if(Fi&&(rs+=qs.length-rs),kL(Qr)){if(ie.slice(rs).search(Qr)){var vc,qa=qs;for(Qr.global||(Qr=AC(Qr.source,IC(Wt.exec(Qr))+"g")),Qr.lastIndex=0;vc=Qr.exec(qa);)var fc=vc.index;qs=qs.slice(0,fc===e?rs:fc)}}else if(ie.indexOf(x(Qr),rs)!=rs){var vl=qs.lastIndexOf(Qr);vl>-1&&(qs=qs.slice(0,vl))}return qs+Ut}function lv(ie){return ie=IC(ie),ie&&ma.test(ie)?ie.replace(Nc,sE):ie}var TY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toUpperCase()}),xp=hB("toUpperCase");function Aye(ie,he,ze){return ie=IC(ie),he=ze?e:he,he===e?gC(ie)?XS(ie):we(ie):ie.match(he)||[]}var fP=Vd(function(ie,he){try{return TC(ie,e,he)}catch(ze){return Nre(ze)?ze:new Kl(ze)}}),tA=Jt(function(ie,he){return cp(he,function(ze){ze=Vo(ze),ia(ie,ze,dp(ie[ze],ie))}),ie});function g1(ie){var he=ie==null?0:ie.length,ze=Rs();return ie=he?CI(ie,function(Ut){if(typeof Ut[1]!="function")throw new Ym(a);return[ze(Ut[0]),Ut[1]]}):[],Vd(function(Ut){for(var Qr=-1;++QrSt)return[];var ze=Tr,Ut=BA(ie,Tr);he=Rs(he),ie-=Tr;for(var Qr=$g(Ut,he);++ze0||he<0)?new up(ze):(ie<0?ze=ze.takeRight(-ie):ie&&(ze=ze.drop(ie)),he!==e&&(he=If(he),ze=he<0?ze.dropRight(-he):ze.take(he-ie)),ze)},up.prototype.takeRightWhile=function(ie){return this.reverse().takeWhile(ie).reverse()},up.prototype.toArray=function(){return this.take(Tr)},fu(up.prototype,function(ie,he){var ze=/^(?:filter|find|map|reject)|While$/.test(he),Ut=/^(?:head|last)$/.test(he),Qr=pn[Ut?"take"+(he=="last"?"Right":""):he],kn=Ut||/^find/.test(he);Qr&&(pn.prototype[he]=function(){var Fi=this.__wrapped__,rs=Ut?[1]:arguments,qs=Fi instanceof up,vc=rs[0],qa=qs||Ed(Fi),fc=function(tI){var rI=Qr.apply(pn,_I([tI],rs));return Ut&&vl?rI[0]:rI};qa&&ze&&typeof vc=="function"&&vc.length!=1&&(qs=qa=!1);var vl=this.__chain__,Zu=!!this.__actions__.length,VA=kn&&!vl,hf=qs&&!Zu;if(!kn&&qa){Fi=hf?Fi:new up(this);var Sd=ie.apply(Fi,rs);return Sd.__actions__.push({func:tN,args:[fc],thisArg:e}),new ey(Sd,vl)}return VA&&hf?ie.apply(this,rs):(Sd=this.thru(fc),VA?Ut?Sd.value()[0]:Sd.value():Sd)})}),cp(["pop","push","shift","sort","splice","unshift"],function(ie){var he=vy[ie],ze=/^(?:push|sort|unshift)$/.test(ie)?"tap":"thru",Ut=/^(?:pop|shift)$/.test(ie);pn.prototype[ie]=function(){var Qr=arguments;if(Ut&&!this.__chain__){var kn=this.value();return he.apply(Ed(kn)?kn:[],Qr)}return this[ze](function(Fi){return he.apply(Ed(Fi)?Fi:[],Qr)})}}),fu(up.prototype,function(ie,he){var ze=pn[he];if(ze){var Ut=ze.name+"";Yp.call(oB,Ut)||(oB[Ut]=[]),oB[Ut].push({name:he,func:ze})}}),oB[GD(e,F).name]=[{name:"wrapper",func:e}],up.prototype.clone=Iw,up.prototype.reverse=cB,up.prototype.value=RD,pn.prototype.at=pY,pn.prototype.chain=wL,pn.prototype.commit=bre,pn.prototype.next=LD,pn.prototype.plant=$6,pn.prototype.reverse=eS,pn.prototype.toJSON=pn.prototype.valueOf=pn.prototype.value=rN,pn.prototype.first=pn.prototype.head,uI&&(pn.prototype[uI]=ige),pn},gm=um();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(YA._=gm,define(function(){return gm})):Nm?((Nm.exports=gm)._=gm,Ac._=gm):YA._=gm}).call(iBe)});var BMe=H((Jeu,dIr)=>{"use strict";var bC=dIr.exports;dIr.exports.default=bC;var my="\x1B[",vMe="\x1B]",sBe="\x07",gpt=";",X5n=process.env.TERM_PROGRAM==="Apple_Terminal";bC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?my+(e+1)+"G":my+(t+1)+";"+(e+1)+"H"};bC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=my+-e+"D":e>0&&(r+=my+e+"C"),t<0?r+=my+-t+"A":t>0&&(r+=my+t+"B"),r};bC.cursorUp=(e=1)=>my+e+"A";bC.cursorDown=(e=1)=>my+e+"B";bC.cursorForward=(e=1)=>my+e+"C";bC.cursorBackward=(e=1)=>my+e+"D";bC.cursorLeft=my+"G";bC.cursorSavePosition=X5n?"\x1B7":my+"s";bC.cursorRestorePosition=X5n?"\x1B8":my+"u";bC.cursorGetPosition=my+"6n";bC.cursorNextLine=my+"E";bC.cursorPrevLine=my+"F";bC.cursorHide=my+"?25l";bC.cursorShow=my+"?25h";bC.eraseLines=e=>{let t="";for(let r=0;r[vMe,"8",gpt,gpt,t,sBe,e,vMe,"8",gpt,gpt,sBe].join("");bC.image=(e,t={})=>{let r=`${vMe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+sBe};bC.iTerm={setCwd:(e=process.cwd())=>`${vMe}50;CurrentDir=${e}${sBe}`,annotation:(e,t={})=>{let r=`${vMe}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+sBe}}});var U5n=H((Ueu,pIr)=>{"use strict";var J5n=(e,t)=>{for(let r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};pIr.exports=J5n;pIr.exports.default=J5n});var j5n=H((Keu,dpt)=>{"use strict";var TUo=U5n(),Apt=new WeakMap,K5n=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(Apt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return TUo(o,e),Apt.set(o,n),o};dpt.exports=K5n;dpt.exports.default=K5n;dpt.exports.callCount=e=>{if(!Apt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Apt.get(e)}});var z5n=H((jeu,ppt)=>{ppt.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&ppt.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&ppt.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var mpt=H((zeu,cBe)=>{var S2=global.process,vIe=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};vIe(S2)?(q5n=wt("assert"),oBe=z5n(),$5n=/^win/i.test(S2.platform),wMe=wt("events"),typeof wMe!="function"&&(wMe=wMe.EventEmitter),S2.__signal_exit_emitter__?zN=S2.__signal_exit_emitter__:(zN=S2.__signal_exit_emitter__=new wMe,zN.count=0,zN.emitted={}),zN.infinite||(zN.setMaxListeners(1/0),zN.infinite=!0),cBe.exports=function(e,t){if(!vIe(global.process))return function(){};q5n.equal(typeof e,"function","a callback must be provided for exit handler"),aBe===!1&&fIr();var r="exit";t&&t.alwaysLast&&(r="afterexit");var n=function(){zN.removeListener(r,e),zN.listeners("exit").length===0&&zN.listeners("afterexit").length===0&&fpt()};return zN.on(r,e),n},fpt=function(){!aBe||!vIe(global.process)||(aBe=!1,oBe.forEach(function(t){try{S2.removeListener(t,Ipt[t])}catch{}}),S2.emit=hpt,S2.reallyExit=IIr,zN.count-=1)},cBe.exports.unload=fpt,BIe=function(t,r,n){zN.emitted[t]||(zN.emitted[t]=!0,zN.emit(t,r,n))},Ipt={},oBe.forEach(function(e){Ipt[e]=function(){if(vIe(global.process)){var r=S2.listeners(e);r.length===zN.count&&(fpt(),BIe("exit",null,e),BIe("afterexit",null,e),$5n&&e==="SIGHUP"&&(e="SIGINT"),S2.kill(S2.pid,e))}}}),cBe.exports.signals=function(){return oBe},aBe=!1,fIr=function(){aBe||!vIe(global.process)||(aBe=!0,zN.count+=1,oBe=oBe.filter(function(t){try{return S2.on(t,Ipt[t]),!0}catch{return!1}}),S2.emit=tMn,S2.reallyExit=eMn)},cBe.exports.load=fIr,IIr=S2.reallyExit,eMn=function(t){vIe(global.process)&&(S2.exitCode=t||0,BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),IIr.call(S2,S2.exitCode))},hpt=S2.emit,tMn=function(t,r){if(t==="exit"&&vIe(global.process)){r!==void 0&&(S2.exitCode=r);var n=hpt.apply(this,arguments);return BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),n}else return hpt.apply(this,arguments)}):cBe.exports=function(){return function(){}};var q5n,oBe,$5n,wMe,zN,fpt,BIe,Ipt,aBe,fIr,IIr,eMn,hpt,tMn});var nMn=H((qeu,rMn)=>{"use strict";var RUo=j5n(),NUo=mpt();rMn.exports=RUo(()=>{NUo(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var uBe=H(lBe=>{"use strict";var DUo=nMn(),Cpt=!1;lBe.show=(e=process.stderr)=>{e.isTTY&&(Cpt=!1,e.write("\x1B[?25h"))};lBe.hide=(e=process.stderr)=>{e.isTTY&&(DUo(),Cpt=!0,e.write("\x1B[?25l"))};lBe.toggle=(e,t)=>{e!==void 0&&(Cpt=e),Cpt?lBe.show(t):lBe.hide(t)}});var aMn=H(TMe=>{"use strict";var oMn=TMe&&TMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TMe,"__esModule",{value:!0});var iMn=oMn(BMe()),sMn=oMn(uBe()),kUo=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(sMn.default.hide(),a=!0);let A=l+` +}`;var hf=fP(function(){return fd(kn,Zu+"return "+fc).apply(e,Fi)});if(hf.source=fc,Nre(hf))throw hf;return hf}function Ege(ie){return IC(ie).toLowerCase()}function mF(ie){return IC(ie).toUpperCase()}function zFe(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return lI(ie);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=Mc(he),kn=wd(Ut,Qr),Fi=z1(Ut,Qr)+1;return Ho(Ut,kn,Fi).join("")}function wY(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.slice(0,Pf(ie)+1);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=z1(Ut,Mc(he))+1;return Ho(Ut,0,Qr).join("")}function HD(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.replace(Ul,"");if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=wd(Ut,Mc(he));return Ho(Ut,Qr).join("")}function CF(ie,he){var ze=be,Ut=Se;if(WI(he)){var Qr="separator"in he?he.separator:Qr;ze="length"in he?If(he.length):ze,Ut="omission"in he?x(he.omission):Ut}ie=IC(ie);var kn=ie.length;if(hb(ie)){var Fi=Mc(ie);kn=Fi.length}if(ze>=kn)return ie;var rs=ze-Td(Ut);if(rs<1)return Ut;var qs=Fi?Ho(Fi,0,rs).join(""):ie.slice(0,rs);if(Qr===e)return qs+Ut;if(Fi&&(rs+=qs.length-rs),kL(Qr)){if(ie.slice(rs).search(Qr)){var vc,qa=qs;for(Qr.global||(Qr=AC(Qr.source,IC(Wt.exec(Qr))+"g")),Qr.lastIndex=0;vc=Qr.exec(qa);)var fc=vc.index;qs=qs.slice(0,fc===e?rs:fc)}}else if(ie.indexOf(x(Qr),rs)!=rs){var vl=qs.lastIndexOf(Qr);vl>-1&&(qs=qs.slice(0,vl))}return qs+Ut}function lv(ie){return ie=IC(ie),ie&&ma.test(ie)?ie.replace(Nc,sE):ie}var TY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toUpperCase()}),xp=hB("toUpperCase");function Aye(ie,he,ze){return ie=IC(ie),he=ze?e:he,he===e?gC(ie)?XS(ie):we(ie):ie.match(he)||[]}var fP=Vd(function(ie,he){try{return TC(ie,e,he)}catch(ze){return Nre(ze)?ze:new Kl(ze)}}),tA=Jt(function(ie,he){return cp(he,function(ze){ze=Vo(ze),ia(ie,ze,dp(ie[ze],ie))}),ie});function g1(ie){var he=ie==null?0:ie.length,ze=Rs();return ie=he?CI(ie,function(Ut){if(typeof Ut[1]!="function")throw new Ym(a);return[ze(Ut[0]),Ut[1]]}):[],Vd(function(Ut){for(var Qr=-1;++QrSt)return[];var ze=Tr,Ut=BA(ie,Tr);he=Rs(he),ie-=Tr;for(var Qr=$g(Ut,he);++ze0||he<0)?new up(ze):(ie<0?ze=ze.takeRight(-ie):ie&&(ze=ze.drop(ie)),he!==e&&(he=If(he),ze=he<0?ze.dropRight(-he):ze.take(he-ie)),ze)},up.prototype.takeRightWhile=function(ie){return this.reverse().takeWhile(ie).reverse()},up.prototype.toArray=function(){return this.take(Tr)},fu(up.prototype,function(ie,he){var ze=/^(?:filter|find|map|reject)|While$/.test(he),Ut=/^(?:head|last)$/.test(he),Qr=pn[Ut?"take"+(he=="last"?"Right":""):he],kn=Ut||/^find/.test(he);Qr&&(pn.prototype[he]=function(){var Fi=this.__wrapped__,rs=Ut?[1]:arguments,qs=Fi instanceof up,vc=rs[0],qa=qs||Ed(Fi),fc=function(tI){var rI=Qr.apply(pn,_I([tI],rs));return Ut&&vl?rI[0]:rI};qa&&ze&&typeof vc=="function"&&vc.length!=1&&(qs=qa=!1);var vl=this.__chain__,Zu=!!this.__actions__.length,VA=kn&&!vl,hf=qs&&!Zu;if(!kn&&qa){Fi=hf?Fi:new up(this);var Sd=ie.apply(Fi,rs);return Sd.__actions__.push({func:tN,args:[fc],thisArg:e}),new ey(Sd,vl)}return VA&&hf?ie.apply(this,rs):(Sd=this.thru(fc),VA?Ut?Sd.value()[0]:Sd.value():Sd)})}),cp(["pop","push","shift","sort","splice","unshift"],function(ie){var he=vy[ie],ze=/^(?:push|sort|unshift)$/.test(ie)?"tap":"thru",Ut=/^(?:pop|shift)$/.test(ie);pn.prototype[ie]=function(){var Qr=arguments;if(Ut&&!this.__chain__){var kn=this.value();return he.apply(Ed(kn)?kn:[],Qr)}return this[ze](function(Fi){return he.apply(Ed(Fi)?Fi:[],Qr)})}}),fu(up.prototype,function(ie,he){var ze=pn[he];if(ze){var Ut=ze.name+"";Yp.call(oB,Ut)||(oB[Ut]=[]),oB[Ut].push({name:he,func:ze})}}),oB[GD(e,F).name]=[{name:"wrapper",func:e}],up.prototype.clone=Iw,up.prototype.reverse=cB,up.prototype.value=RD,pn.prototype.at=pY,pn.prototype.chain=wL,pn.prototype.commit=bre,pn.prototype.next=LD,pn.prototype.plant=$6,pn.prototype.reverse=eS,pn.prototype.toJSON=pn.prototype.valueOf=pn.prototype.value=rN,pn.prototype.first=pn.prototype.head,uI&&(pn.prototype[uI]=ige),pn},gm=um();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(YA._=gm,define(function(){return gm})):Nm?((Nm.exports=gm)._=gm,Ac._=gm):YA._=gm}).call(iBe)});var BMe=H((Ueu,dIr)=>{"use strict";var bC=dIr.exports;dIr.exports.default=bC;var my="\x1B[",vMe="\x1B]",sBe="\x07",gpt=";",X5n=process.env.TERM_PROGRAM==="Apple_Terminal";bC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?my+(e+1)+"G":my+(t+1)+";"+(e+1)+"H"};bC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=my+-e+"D":e>0&&(r+=my+e+"C"),t<0?r+=my+-t+"A":t>0&&(r+=my+t+"B"),r};bC.cursorUp=(e=1)=>my+e+"A";bC.cursorDown=(e=1)=>my+e+"B";bC.cursorForward=(e=1)=>my+e+"C";bC.cursorBackward=(e=1)=>my+e+"D";bC.cursorLeft=my+"G";bC.cursorSavePosition=X5n?"\x1B7":my+"s";bC.cursorRestorePosition=X5n?"\x1B8":my+"u";bC.cursorGetPosition=my+"6n";bC.cursorNextLine=my+"E";bC.cursorPrevLine=my+"F";bC.cursorHide=my+"?25l";bC.cursorShow=my+"?25h";bC.eraseLines=e=>{let t="";for(let r=0;r[vMe,"8",gpt,gpt,t,sBe,e,vMe,"8",gpt,gpt,sBe].join("");bC.image=(e,t={})=>{let r=`${vMe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+sBe};bC.iTerm={setCwd:(e=process.cwd())=>`${vMe}50;CurrentDir=${e}${sBe}`,annotation:(e,t={})=>{let r=`${vMe}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+sBe}}});var U5n=H((Keu,pIr)=>{"use strict";var J5n=(e,t)=>{for(let r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};pIr.exports=J5n;pIr.exports.default=J5n});var j5n=H((jeu,dpt)=>{"use strict";var TUo=U5n(),Apt=new WeakMap,K5n=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(Apt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return TUo(o,e),Apt.set(o,n),o};dpt.exports=K5n;dpt.exports.default=K5n;dpt.exports.callCount=e=>{if(!Apt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Apt.get(e)}});var z5n=H((zeu,ppt)=>{ppt.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&ppt.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&ppt.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var mpt=H((qeu,cBe)=>{var S2=global.process,vIe=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};vIe(S2)?(q5n=wt("assert"),oBe=z5n(),$5n=/^win/i.test(S2.platform),wMe=wt("events"),typeof wMe!="function"&&(wMe=wMe.EventEmitter),S2.__signal_exit_emitter__?zN=S2.__signal_exit_emitter__:(zN=S2.__signal_exit_emitter__=new wMe,zN.count=0,zN.emitted={}),zN.infinite||(zN.setMaxListeners(1/0),zN.infinite=!0),cBe.exports=function(e,t){if(!vIe(global.process))return function(){};q5n.equal(typeof e,"function","a callback must be provided for exit handler"),aBe===!1&&fIr();var r="exit";t&&t.alwaysLast&&(r="afterexit");var n=function(){zN.removeListener(r,e),zN.listeners("exit").length===0&&zN.listeners("afterexit").length===0&&fpt()};return zN.on(r,e),n},fpt=function(){!aBe||!vIe(global.process)||(aBe=!1,oBe.forEach(function(t){try{S2.removeListener(t,Ipt[t])}catch{}}),S2.emit=hpt,S2.reallyExit=IIr,zN.count-=1)},cBe.exports.unload=fpt,BIe=function(t,r,n){zN.emitted[t]||(zN.emitted[t]=!0,zN.emit(t,r,n))},Ipt={},oBe.forEach(function(e){Ipt[e]=function(){if(vIe(global.process)){var r=S2.listeners(e);r.length===zN.count&&(fpt(),BIe("exit",null,e),BIe("afterexit",null,e),$5n&&e==="SIGHUP"&&(e="SIGINT"),S2.kill(S2.pid,e))}}}),cBe.exports.signals=function(){return oBe},aBe=!1,fIr=function(){aBe||!vIe(global.process)||(aBe=!0,zN.count+=1,oBe=oBe.filter(function(t){try{return S2.on(t,Ipt[t]),!0}catch{return!1}}),S2.emit=tMn,S2.reallyExit=eMn)},cBe.exports.load=fIr,IIr=S2.reallyExit,eMn=function(t){vIe(global.process)&&(S2.exitCode=t||0,BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),IIr.call(S2,S2.exitCode))},hpt=S2.emit,tMn=function(t,r){if(t==="exit"&&vIe(global.process)){r!==void 0&&(S2.exitCode=r);var n=hpt.apply(this,arguments);return BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),n}else return hpt.apply(this,arguments)}):cBe.exports=function(){return function(){}};var q5n,oBe,$5n,wMe,zN,fpt,BIe,Ipt,aBe,fIr,IIr,eMn,hpt,tMn});var nMn=H(($eu,rMn)=>{"use strict";var RUo=j5n(),NUo=mpt();rMn.exports=RUo(()=>{NUo(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var uBe=H(lBe=>{"use strict";var DUo=nMn(),Cpt=!1;lBe.show=(e=process.stderr)=>{e.isTTY&&(Cpt=!1,e.write("\x1B[?25h"))};lBe.hide=(e=process.stderr)=>{e.isTTY&&(DUo(),Cpt=!0,e.write("\x1B[?25l"))};lBe.toggle=(e,t)=>{e!==void 0&&(Cpt=e),Cpt?lBe.show(t):lBe.hide(t)}});var aMn=H(TMe=>{"use strict";var oMn=TMe&&TMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TMe,"__esModule",{value:!0});var iMn=oMn(BMe()),sMn=oMn(uBe()),kUo=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(sMn.default.hide(),a=!0);let A=l+` `;A!==n&&(n=A,e.write(iMn.default.eraseLines(r)+A),r=A.split(` -`).length)};return o.clear=()=>{e.write(iMn.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(sMn.default.show(),a=!1)},o};TMe.default={create:kUo}});var cMn=H((ttu,xUo)=>{xUo.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var gMn=H(PW=>{"use strict";var uMn=cMn(),l8=process.env;Object.defineProperty(PW,"_vendors",{value:uMn.map(function(e){return e.constant})});PW.name=null;PW.isPR=null;uMn.forEach(function(e){var t=Array.isArray(e.env)?e.env:[e.env],r=t.every(function(n){return lMn(n)});if(PW[e.constant]=r,r)switch(PW.name=e.name,typeof e.pr){case"string":PW.isPR=!!l8[e.pr];break;case"object":"env"in e.pr?PW.isPR=e.pr.env in l8&&l8[e.pr.env]!==e.pr.ne:"any"in e.pr?PW.isPR=e.pr.any.some(function(n){return!!l8[n]}):PW.isPR=lMn(e.pr);break;default:PW.isPR=null}});PW.isCI=!!(l8.CI||l8.CONTINUOUS_INTEGRATION||l8.BUILD_NUMBER||l8.RUN_ID||PW.name);function lMn(e){return typeof e=="string"?!!l8[e]:Object.keys(e).every(function(t){return l8[t]===e[t]})}});var hIr=H((ntu,AMn)=>{"use strict";AMn.exports=gMn().isCI});var mIr=H((itu,dMn)=>{"use strict";var GUo=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};dMn.exports=(e,{include:t,exclude:r}={})=>{let n=a=>{let o=l=>typeof l=="string"?a===l:l.test(a);return t?t.some(o):r?!r.some(o):!0};for(let[a,o]of GUo(e.constructor.prototype)){if(o==="constructor"||!n(o))continue;let l=Reflect.getOwnPropertyDescriptor(a,o);l&&typeof l.value=="function"&&(e[o]=e[o].bind(e))}return e}});var CMn=H(M0=>{"use strict";var ABe,DMe,Ept,vIr;typeof performance=="object"&&typeof performance.now=="function"?(pMn=performance,M0.unstable_now=function(){return pMn.now()}):(CIr=Date,fMn=CIr.now(),M0.unstable_now=function(){return CIr.now()-fMn});var pMn,CIr,fMn;typeof window>"u"||typeof MessageChannel!="function"?(gBe=null,_Ir=null,yIr=function(){if(gBe!==null)try{var e=M0.unstable_now();gBe(!0,e),gBe=null}catch(t){throw setTimeout(yIr,0),t}},ABe=function(e){gBe!==null?setTimeout(ABe,0,e):(gBe=e,setTimeout(yIr,0))},DMe=function(e,t){_Ir=setTimeout(e,t)},Ept=function(){clearTimeout(_Ir)},M0.unstable_shouldYield=function(){return!1},vIr=M0.unstable_forceFrameRate=function(){}):(IMn=window.setTimeout,hMn=window.clearTimeout,typeof console<"u"&&(mMn=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof mMn!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),RMe=!1,NMe=null,_pt=-1,bIr=5,EIr=0,M0.unstable_shouldYield=function(){return M0.unstable_now()>=EIr},vIr=function(){},M0.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[n];if(a!==void 0&&0bpt(l,r))f!==void 0&&0>bpt(f,l)?(e[n]=f,e[A]=r,n=A):(e[n]=l,e[o]=r,n=o);else if(f!==void 0&&0>bpt(f,r))e[n]=f,e[A]=r,n=A;else break e}}return t}return null}function bpt(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}var u8=[],Woe=[],FUo=1,yM=null,hG=3,vpt=!1,wIe=!1,kMe=!1;function wIr(e){for(var t=CX(Woe);t!==null;){if(t.callback===null)Spt(Woe);else if(t.startTime<=e)Spt(Woe),t.sortIndex=t.expirationTime,BIr(u8,t);else break;t=CX(Woe)}}function TIr(e){if(kMe=!1,wIr(e),!wIe)if(CX(u8)!==null)wIe=!0,ABe(RIr);else{var t=CX(Woe);t!==null&&DMe(TIr,t.startTime-e)}}function RIr(e,t){wIe=!1,kMe&&(kMe=!1,Ept()),vpt=!0;var r=hG;try{for(wIr(t),yM=CX(u8);yM!==null&&(!(yM.expirationTime>t)||e&&!M0.unstable_shouldYield());){var n=yM.callback;if(typeof n=="function"){yM.callback=null,hG=yM.priorityLevel;var a=n(yM.expirationTime<=t);t=M0.unstable_now(),typeof a=="function"?yM.callback=a:yM===CX(u8)&&Spt(u8),wIr(t)}else Spt(u8);yM=CX(u8)}if(yM!==null)var o=!0;else{var l=CX(Woe);l!==null&&DMe(TIr,l.startTime-t),o=!1}return o}finally{yM=null,hG=r,vpt=!1}}var ZUo=vIr;M0.unstable_IdlePriority=5;M0.unstable_ImmediatePriority=1;M0.unstable_LowPriority=4;M0.unstable_NormalPriority=3;M0.unstable_Profiling=null;M0.unstable_UserBlockingPriority=2;M0.unstable_cancelCallback=function(e){e.callback=null};M0.unstable_continueExecution=function(){wIe||vpt||(wIe=!0,ABe(RIr))};M0.unstable_getCurrentPriorityLevel=function(){return hG};M0.unstable_getFirstCallbackNode=function(){return CX(u8)};M0.unstable_next=function(e){switch(hG){case 1:case 2:case 3:var t=3;break;default:t=hG}var r=hG;hG=t;try{return e()}finally{hG=r}};M0.unstable_pauseExecution=function(){};M0.unstable_requestPaint=ZUo;M0.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=hG;hG=e;try{return t()}finally{hG=r}};M0.unstable_scheduleCallback=function(e,t,r){var n=M0.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0n?(e.sortIndex=r,BIr(Woe,e),CX(u8)===null&&e===CX(Woe)&&(kMe?Ept():kMe=!0,DMe(TIr,r-n))):(e.sortIndex=a,BIr(u8,e),wIe||vpt||(wIe=!0,ABe(RIr))),e};M0.unstable_wrapCallback=function(e){var t=hG;return function(){var r=hG;hG=t;try{return e.apply(this,arguments)}finally{hG=r}}}});var xMe=H((otu,_Mn)=>{"use strict";_Mn.exports=CMn()});var Bpt=H((atu,bMn)=>{"use strict";var yMn=Object.getOwnPropertySymbols,LUo=Object.prototype.hasOwnProperty,VUo=Object.prototype.propertyIsEnumerable;function PUo(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function WUo(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(n.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(o){a[o]=o}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}bMn.exports=WUo()?Object.assign:function(e,t){for(var r,n=PUo(e),a,o=1;o{GMe.exports=function(t){var r={},n=Bpt(),a=Ec(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;te{e.write(iMn.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(sMn.default.show(),a=!1)},o};TMe.default={create:kUo}});var cMn=H((rtu,xUo)=>{xUo.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var gMn=H(PW=>{"use strict";var uMn=cMn(),l8=process.env;Object.defineProperty(PW,"_vendors",{value:uMn.map(function(e){return e.constant})});PW.name=null;PW.isPR=null;uMn.forEach(function(e){var t=Array.isArray(e.env)?e.env:[e.env],r=t.every(function(n){return lMn(n)});if(PW[e.constant]=r,r)switch(PW.name=e.name,typeof e.pr){case"string":PW.isPR=!!l8[e.pr];break;case"object":"env"in e.pr?PW.isPR=e.pr.env in l8&&l8[e.pr.env]!==e.pr.ne:"any"in e.pr?PW.isPR=e.pr.any.some(function(n){return!!l8[n]}):PW.isPR=lMn(e.pr);break;default:PW.isPR=null}});PW.isCI=!!(l8.CI||l8.CONTINUOUS_INTEGRATION||l8.BUILD_NUMBER||l8.RUN_ID||PW.name);function lMn(e){return typeof e=="string"?!!l8[e]:Object.keys(e).every(function(t){return l8[t]===e[t]})}});var hIr=H((itu,AMn)=>{"use strict";AMn.exports=gMn().isCI});var mIr=H((stu,dMn)=>{"use strict";var GUo=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};dMn.exports=(e,{include:t,exclude:r}={})=>{let n=a=>{let o=l=>typeof l=="string"?a===l:l.test(a);return t?t.some(o):r?!r.some(o):!0};for(let[a,o]of GUo(e.constructor.prototype)){if(o==="constructor"||!n(o))continue;let l=Reflect.getOwnPropertyDescriptor(a,o);l&&typeof l.value=="function"&&(e[o]=e[o].bind(e))}return e}});var CMn=H(M0=>{"use strict";var ABe,DMe,Ept,vIr;typeof performance=="object"&&typeof performance.now=="function"?(pMn=performance,M0.unstable_now=function(){return pMn.now()}):(CIr=Date,fMn=CIr.now(),M0.unstable_now=function(){return CIr.now()-fMn});var pMn,CIr,fMn;typeof window>"u"||typeof MessageChannel!="function"?(gBe=null,_Ir=null,yIr=function(){if(gBe!==null)try{var e=M0.unstable_now();gBe(!0,e),gBe=null}catch(t){throw setTimeout(yIr,0),t}},ABe=function(e){gBe!==null?setTimeout(ABe,0,e):(gBe=e,setTimeout(yIr,0))},DMe=function(e,t){_Ir=setTimeout(e,t)},Ept=function(){clearTimeout(_Ir)},M0.unstable_shouldYield=function(){return!1},vIr=M0.unstable_forceFrameRate=function(){}):(IMn=window.setTimeout,hMn=window.clearTimeout,typeof console<"u"&&(mMn=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof mMn!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),RMe=!1,NMe=null,_pt=-1,bIr=5,EIr=0,M0.unstable_shouldYield=function(){return M0.unstable_now()>=EIr},vIr=function(){},M0.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[n];if(a!==void 0&&0bpt(l,r))f!==void 0&&0>bpt(f,l)?(e[n]=f,e[A]=r,n=A):(e[n]=l,e[o]=r,n=o);else if(f!==void 0&&0>bpt(f,r))e[n]=f,e[A]=r,n=A;else break e}}return t}return null}function bpt(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}var u8=[],Woe=[],FUo=1,yM=null,hG=3,vpt=!1,wIe=!1,kMe=!1;function wIr(e){for(var t=CX(Woe);t!==null;){if(t.callback===null)Spt(Woe);else if(t.startTime<=e)Spt(Woe),t.sortIndex=t.expirationTime,BIr(u8,t);else break;t=CX(Woe)}}function TIr(e){if(kMe=!1,wIr(e),!wIe)if(CX(u8)!==null)wIe=!0,ABe(RIr);else{var t=CX(Woe);t!==null&&DMe(TIr,t.startTime-e)}}function RIr(e,t){wIe=!1,kMe&&(kMe=!1,Ept()),vpt=!0;var r=hG;try{for(wIr(t),yM=CX(u8);yM!==null&&(!(yM.expirationTime>t)||e&&!M0.unstable_shouldYield());){var n=yM.callback;if(typeof n=="function"){yM.callback=null,hG=yM.priorityLevel;var a=n(yM.expirationTime<=t);t=M0.unstable_now(),typeof a=="function"?yM.callback=a:yM===CX(u8)&&Spt(u8),wIr(t)}else Spt(u8);yM=CX(u8)}if(yM!==null)var o=!0;else{var l=CX(Woe);l!==null&&DMe(TIr,l.startTime-t),o=!1}return o}finally{yM=null,hG=r,vpt=!1}}var ZUo=vIr;M0.unstable_IdlePriority=5;M0.unstable_ImmediatePriority=1;M0.unstable_LowPriority=4;M0.unstable_NormalPriority=3;M0.unstable_Profiling=null;M0.unstable_UserBlockingPriority=2;M0.unstable_cancelCallback=function(e){e.callback=null};M0.unstable_continueExecution=function(){wIe||vpt||(wIe=!0,ABe(RIr))};M0.unstable_getCurrentPriorityLevel=function(){return hG};M0.unstable_getFirstCallbackNode=function(){return CX(u8)};M0.unstable_next=function(e){switch(hG){case 1:case 2:case 3:var t=3;break;default:t=hG}var r=hG;hG=t;try{return e()}finally{hG=r}};M0.unstable_pauseExecution=function(){};M0.unstable_requestPaint=ZUo;M0.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=hG;hG=e;try{return t()}finally{hG=r}};M0.unstable_scheduleCallback=function(e,t,r){var n=M0.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0n?(e.sortIndex=r,BIr(Woe,e),CX(u8)===null&&e===CX(Woe)&&(kMe?Ept():kMe=!0,DMe(TIr,r-n))):(e.sortIndex=a,BIr(u8,e),wIe||vpt||(wIe=!0,ABe(RIr))),e};M0.unstable_wrapCallback=function(e){var t=hG;return function(){var r=hG;hG=t;try{return e.apply(this,arguments)}finally{hG=r}}}});var xMe=H((atu,_Mn)=>{"use strict";_Mn.exports=CMn()});var Bpt=H((ctu,bMn)=>{"use strict";var yMn=Object.getOwnPropertySymbols,LUo=Object.prototype.hasOwnProperty,VUo=Object.prototype.propertyIsEnumerable;function PUo(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function WUo(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(n.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(o){a[o]=o}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}bMn.exports=WUo()?Object.assign:function(e,t){for(var r,n=PUo(e),a,o=1;o{GMe.exports=function(t){var r={},n=Bpt(),a=Ec(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;teUr||Le[dr]!==ft[Ur])return` @@ -328,43 +328,43 @@ Add a component higher in the tree to provide a loading `+(Re.join(" > ")+` No matching component was found for: - `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var vMn=H((ltu,SMn)=>{"use strict";SMn.exports=EMn()});var wMn=H((utu,BMn)=>{"use strict";var OUo={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};BMn.exports=OUo});var DMn=H((gtu,NMn)=>{"use strict";var MUo=Object.assign||function(e){for(var t=1;t"}}]),e}(),TMn=function(){wpt(e,null,[{key:"fromJS",value:function(r){var n=r.width,a=r.height;return new e(n,a)}}]);function e(t,r){DIr(this,e),this.width=t,this.height=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),e}(),RMn=function(){function e(t,r){DIr(this,e),this.unit=t,this.value=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case _X.UNIT_POINT:return String(this.value);case _X.UNIT_PERCENT:return this.value+"%";case _X.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();NMn.exports=function(e,t){function r(l,A,f){var I=l[A];l[A]=function(){for(var C=arguments.length,b=Array(C),E=0;E1?b-1:0),N=1;N1&&arguments[1]!==void 0?arguments[1]:NaN,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:_X.DIRECTION_LTR;return l.call(this,A,f,I)}),MUo({Config:t.Config,Node:t.Node,Layout:e("Layout",HUo),Size:e("Size",TMn),Value:e("Value",RMn),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},_X)}});var kMn=H((exports,module)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t}):typeof module=="object"&&module.exports?module.exports=t:(e.nbind=e.nbind||{}).init=t})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){t(r);return}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof wt=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(t,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var n=nodeFS.readFileSync(t);return r?n:n.toString()},Module.readBinary=function(t){var r=Module.read(t,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(t));var r=read(t,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(e,t){quit(e)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(t,r,n){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):n()},a.onerror=n,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(t){console.log(t)}),Module.printErr||(Module.printErr=function(t){console.warn(t)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(e){document.title=e})}else throw"Unknown runtime environment. Where are we?";function globalEval(e){eval.call(null,e)}!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(e[e.length-1]==="*")return Runtime.QUANTUM_SIZE;if(e[0]==="i"){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}else return 0}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return t==="double"||t==="i64"?e&7&&(assert((e&7)===4),e+=4):assert((e&3)===0),e},getAlignSize:function(e,t,r){return!r&&(e=="i64"||e=="double")?8:e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8)},dynCall:function(e,t,r){return r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t>2],r=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var n=enlargeMemory();if(!n)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var r=e=Math.ceil(e/(t||16))*(t||16);return r},makeBigInt:function(e,t,r){var n=r?+(e>>>0)+ +(t>>>0)*4294967296:+(e>>>0)+ +(t|0)*4294967296;return n},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(e!=null&&e!==0){var r=(e.length<<2)+1;t=Runtime.stackAlloc(r),stringToUTF8(e,t,r)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,r,n,a,o){var l=getCFunc(t),A=[],f=0;if(a)for(var I=0;I>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(e,t,r){switch(t=t||"i8",t.charAt(t.length-1)==="*"&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(e,t,r,n){var a,o;typeof e=="number"?(a=!0,o=e):(a=!1,o=e.length);var l=typeof t=="string"?t:null,A;if(r==ALLOC_NONE?A=n:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(o,l?1:t.length)),a){var n=A,f;for(assert((A&3)==0),f=A+(o&-4);n>2]=0;for(f=A+o;n>0]=0;return A}if(l==="i8")return e.subarray||e.slice?HEAPU8.set(e,A):HEAPU8.set(new Uint8Array(e),A),A;for(var I=0,C,b,E;I>0],r|=n,!(n==0&&!t||(a++,t&&a==t)););t||(t=a);var o="";if(r<128){for(var l=1024,A;t>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,l))),o=o?o+A:A,e+=l,t-=l;return o}return Module.UTF8ToString(e)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(e){for(var t="";;){var r=HEAP8[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var r=t;e[r];)++r;if(r-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var n,a,o,l,A,f,I="";;){if(n=e[t++],!n)return I;if(!(n&128)){I+=String.fromCharCode(n);continue}if(a=e[t++]&63,(n&224)==192){I+=String.fromCharCode((n&31)<<6|a);continue}if(o=e[t++]&63,(n&240)==224?n=(n&15)<<12|a<<6|o:(l=e[t++]&63,(n&248)==240?n=(n&7)<<18|a<<12|o<<6|l:(A=e[t++]&63,(n&252)==248?n=(n&3)<<24|a<<18|o<<12|l<<6|A:(f=e[t++]&63,n=(n&1)<<30|a<<24|o<<18|l<<12|A<<6|f))),n<65536)I+=String.fromCharCode(n);else{var C=n-65536;I+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(e,t,r,n){if(!(n>0))return 0;for(var a=r,o=r+n-1,l=0;l=55296&&A<=57343&&(A=65536+((A&1023)<<10)|e.charCodeAt(++l)&1023),A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|A&63}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=2097151){if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=67108863){if(r+4>=o)break;t[r++]=248|A>>24,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else{if(r+5>=o)break;t[r++]=252|A>>30,t[r++]=128|A>>24&63,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}}return t[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(e,t,r){return stringToUTF8Array(e,HEAPU8,t,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++r)&1023),n<=127?++t:n<=2047?t+=2:n<=65535?t+=3:n<=2097151?t+=4:n<=67108863?t+=5:t+=6}return t}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var r=e.substr(1),n=lengthBytesUTF8(r)+1,a=_malloc(n);stringToUTF8(r,a,n);var o=_malloc(4),l=t(a,0,0,o);if(getValue(o,"i32")===0&&l)return Pointer_stringify(l)}catch{}finally{a&&_free(a),o&&_free(o),l&&_free(l)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(r){var n=demangle(r);return r===n?r:r+" ["+n+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=` + `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var vMn=H((utu,SMn)=>{"use strict";SMn.exports=EMn()});var wMn=H((gtu,BMn)=>{"use strict";var OUo={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};BMn.exports=OUo});var DMn=H((Atu,NMn)=>{"use strict";var MUo=Object.assign||function(e){for(var t=1;t"}}]),e}(),TMn=function(){wpt(e,null,[{key:"fromJS",value:function(r){var n=r.width,a=r.height;return new e(n,a)}}]);function e(t,r){DIr(this,e),this.width=t,this.height=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),e}(),RMn=function(){function e(t,r){DIr(this,e),this.unit=t,this.value=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case _X.UNIT_POINT:return String(this.value);case _X.UNIT_PERCENT:return this.value+"%";case _X.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();NMn.exports=function(e,t){function r(l,A,f){var I=l[A];l[A]=function(){for(var C=arguments.length,b=Array(C),E=0;E1?b-1:0),N=1;N1&&arguments[1]!==void 0?arguments[1]:NaN,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:_X.DIRECTION_LTR;return l.call(this,A,f,I)}),MUo({Config:t.Config,Node:t.Node,Layout:e("Layout",HUo),Size:e("Size",TMn),Value:e("Value",RMn),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},_X)}});var kMn=H((exports,module)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t}):typeof module=="object"&&module.exports?module.exports=t:(e.nbind=e.nbind||{}).init=t})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){t(r);return}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof wt=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(t,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var n=nodeFS.readFileSync(t);return r?n:n.toString()},Module.readBinary=function(t){var r=Module.read(t,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(t));var r=read(t,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(e,t){quit(e)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(t,r,n){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):n()},a.onerror=n,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(t){console.log(t)}),Module.printErr||(Module.printErr=function(t){console.warn(t)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(e){document.title=e})}else throw"Unknown runtime environment. Where are we?";function globalEval(e){eval.call(null,e)}!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(e[e.length-1]==="*")return Runtime.QUANTUM_SIZE;if(e[0]==="i"){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}else return 0}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return t==="double"||t==="i64"?e&7&&(assert((e&7)===4),e+=4):assert((e&3)===0),e},getAlignSize:function(e,t,r){return!r&&(e=="i64"||e=="double")?8:e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8)},dynCall:function(e,t,r){return r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t>2],r=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var n=enlargeMemory();if(!n)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var r=e=Math.ceil(e/(t||16))*(t||16);return r},makeBigInt:function(e,t,r){var n=r?+(e>>>0)+ +(t>>>0)*4294967296:+(e>>>0)+ +(t|0)*4294967296;return n},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(e!=null&&e!==0){var r=(e.length<<2)+1;t=Runtime.stackAlloc(r),stringToUTF8(e,t,r)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,r,n,a,o){var l=getCFunc(t),A=[],f=0;if(a)for(var I=0;I>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(e,t,r){switch(t=t||"i8",t.charAt(t.length-1)==="*"&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(e,t,r,n){var a,o;typeof e=="number"?(a=!0,o=e):(a=!1,o=e.length);var l=typeof t=="string"?t:null,A;if(r==ALLOC_NONE?A=n:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(o,l?1:t.length)),a){var n=A,f;for(assert((A&3)==0),f=A+(o&-4);n>2]=0;for(f=A+o;n>0]=0;return A}if(l==="i8")return e.subarray||e.slice?HEAPU8.set(e,A):HEAPU8.set(new Uint8Array(e),A),A;for(var I=0,C,b,E;I>0],r|=n,!(n==0&&!t||(a++,t&&a==t)););t||(t=a);var o="";if(r<128){for(var l=1024,A;t>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,l))),o=o?o+A:A,e+=l,t-=l;return o}return Module.UTF8ToString(e)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(e){for(var t="";;){var r=HEAP8[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var r=t;e[r];)++r;if(r-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var n,a,o,l,A,f,I="";;){if(n=e[t++],!n)return I;if(!(n&128)){I+=String.fromCharCode(n);continue}if(a=e[t++]&63,(n&224)==192){I+=String.fromCharCode((n&31)<<6|a);continue}if(o=e[t++]&63,(n&240)==224?n=(n&15)<<12|a<<6|o:(l=e[t++]&63,(n&248)==240?n=(n&7)<<18|a<<12|o<<6|l:(A=e[t++]&63,(n&252)==248?n=(n&3)<<24|a<<18|o<<12|l<<6|A:(f=e[t++]&63,n=(n&1)<<30|a<<24|o<<18|l<<12|A<<6|f))),n<65536)I+=String.fromCharCode(n);else{var C=n-65536;I+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(e,t,r,n){if(!(n>0))return 0;for(var a=r,o=r+n-1,l=0;l=55296&&A<=57343&&(A=65536+((A&1023)<<10)|e.charCodeAt(++l)&1023),A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|A&63}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=2097151){if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=67108863){if(r+4>=o)break;t[r++]=248|A>>24,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else{if(r+5>=o)break;t[r++]=252|A>>30,t[r++]=128|A>>24&63,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}}return t[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(e,t,r){return stringToUTF8Array(e,HEAPU8,t,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++r)&1023),n<=127?++t:n<=2047?t+=2:n<=65535?t+=3:n<=2097151?t+=4:n<=67108863?t+=5:t+=6}return t}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var r=e.substr(1),n=lengthBytesUTF8(r)+1,a=_malloc(n);stringToUTF8(r,a,n);var o=_malloc(4),l=t(a,0,0,o);if(getValue(o,"i32")===0&&l)return Pointer_stringify(l)}catch{}finally{a&&_free(a),o&&_free(o),l&&_free(l)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(r){var n=demangle(r);return r===n?r:r+" ["+n+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=` `+Module.extraStackTrace()),demangleAll(e)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var t=e.shift();if(typeof t=="function"){t();continue}var r=t.func;typeof r=="number"?t.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,t.arg):r(t.arg===void 0?null:t.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}Module.addOnPreRun=addOnPreRun;function addOnInit(e){__ATINIT__.unshift(e)}Module.addOnInit=addOnInit;function addOnPreMain(e){__ATMAIN__.unshift(e)}Module.addOnPreMain=addOnPreMain;function addOnExit(e){__ATEXIT__.unshift(e)}Module.addOnExit=addOnExit;function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(e,t,r){var n=r>0?r:lengthBytesUTF8(e)+1,a=new Array(n),o=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=o),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(e){for(var t=[],r=0;r255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(e,t,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var n,a;r&&(a=t+lengthBytesUTF8(e),n=HEAP8[a]),stringToUTF8(e,t,1/0),r&&(HEAP8[a]=n)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(e,t){HEAP8.set(e,t)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(e,t,r){for(var n=0;n>0]=e.charCodeAt(n);r||(HEAP8[t>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function e(t,r){var n=t>>>16,a=t&65535,o=r>>>16,l=r&65535;return a*l+(n*l+a*o<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e=e>>>0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(e,t,r,n,a,o,l,A){return _nbind.callbackSignatureList[e].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(e,t,r,n,a,o,l,A){return ASM_CONSTS[e](t,r,n,a,o,l,A)}function _emscripten_asm_const_iiiii(e,t,r,n,a){return ASM_CONSTS[e](t,r,n,a)}function _emscripten_asm_const_iiidddddd(e,t,r,n,a,o,l,A,f){return ASM_CONSTS[e](t,r,n,a,o,l,A,f)}function _emscripten_asm_const_iiididi(e,t,r,n,a,o,l){return ASM_CONSTS[e](t,r,n,a,o,l)}function _emscripten_asm_const_iiii(e,t,r,n){return ASM_CONSTS[e](t,r,n)}function _emscripten_asm_const_iiiid(e,t,r,n,a){return ASM_CONSTS[e](t,r,n,a)}function _emscripten_asm_const_iiiiii(e,t,r,n,a,o){return ASM_CONSTS[e](t,r,n,a,o)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(e,t,r,n){var a=arguments.length,o=a<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(l=e[A])&&(o=(a<3?l(o):a>3?l(t,r,o):l(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o}function _defineHidden(e){return function(t,r){Object.defineProperty(t,r,{configurable:!1,enumerable:!1,value:e,writable:!0})}}var _nbind={};function __nbind_free_external(e){_nbind.externalList[e].dereference(e)}function __nbind_reference_external(e){_nbind.externalList[e].reference()}function _llvm_stackrestore(e){var t=_llvm_stacksave,r=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(r)}function __nbind_register_pool(e,t,r,n){_nbind.Pool.pageSize=e,_nbind.Pool.usedPtr=t/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=n/4,HEAP32[t/4]=16909060,HEAP8[t]==1&&(_nbind.bigEndian=!0),HEAP32[t/4]=0,_nbind.makeTypeKindTbl=(o={},o[1024]=_nbind.PrimitiveType,o[64]=_nbind.Int64Type,o[2048]=_nbind.BindClass,o[3072]=_nbind.BindClassPtr,o[4096]=_nbind.SharedClassPtr,o[5120]=_nbind.ArrayType,o[6144]=_nbind.ArrayType,o[7168]=_nbind.CStringType,o[9216]=_nbind.CallbackType,o[10240]=_nbind.BindType,o),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var o}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(e==0)Browser.mainLoop.scheduler=function(){var l=Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,l)},Browser.mainLoop.method="timeout";else if(e==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(e==2){if(!window.setImmediate){let o=function(l){l.source===window&&l.data===n&&(l.stopPropagation(),r.shift()())};var a=o,r=[],n="setimmediate";window.addEventListener("message",o,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:n})):window.postMessage(n,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(e,t,r,n,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=n;var o;typeof n<"u"?o=function(){Module.dynCall_vi(e,n)}:o=function(){Module.dynCall_v(e)};var l=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var f=Date.now(),I=Browser.mainLoop.queue.shift();if(I.func(I.arg),Browser.mainLoop.remainingBlockers){var C=Browser.mainLoop.remainingBlockers,b=C%1==0?C-1:Math.floor(C);I.counted?Browser.mainLoop.remainingBlockers=b:(b=b+.5,Browser.mainLoop.remainingBlockers=(8*C+b)/9)}if(console.log('main loop blocker "'+I.name+'" took '+(Date.now()-f)+" ms"),Browser.mainLoop.updateStatus(),l1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(o),!(l0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;t?t"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={};e.canHandle=function(o){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},e.handle=function(o,l,A,f){var I=null;if(Browser.hasBlobConstructor)try{I=new Blob([o],{type:Browser.getMimetype(l)}),I.size!==o.length&&(I=new Blob([new Uint8Array(o).buffer],{type:Browser.getMimetype(l)}))}catch(N){Runtime.warnOnce("Blob constructor present but fails: "+N+"; falling back to blob builder")}if(!I){var C=new Browser.BlobBuilder;C.append(new Uint8Array(o).buffer),I=C.getBlob()}var b=Browser.URLObject.createObjectURL(I),E=new Image;E.onload=function(){assert(E.complete,"Image "+l+" could not be decoded");var B=document.createElement("canvas");B.width=E.width,B.height=E.height;var F=B.getContext("2d");F.drawImage(E,0,0),Module.preloadedImages[l]=B,Browser.URLObject.revokeObjectURL(b),A&&A(o)},E.onerror=function(B){console.log("Image "+b+" could not be decoded"),f&&f()},E.src=b},Module.preloadPlugins.push(e);var t={};t.canHandle=function(o){return!Module.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(o,l,A,f){var I=!1;function C(F){I||(I=!0,Module.preloadedAudios[l]=F,A&&A(o))}function b(){I||(I=!0,Module.preloadedAudios[l]=new Audio,f&&f())}if(Browser.hasBlobConstructor){try{var E=new Blob([o],{type:Browser.getMimetype(l)})}catch{return b()}var N=Browser.URLObject.createObjectURL(E),B=new Audio;B.addEventListener("canplaythrough",function(){C(B)},!1),B.onerror=function(Q){if(I)return;console.log("warning: browser could not fully decode audio "+l+", trying slower base64 approach");function X(ae){for(var ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ce="=",fe="",ue=0,de=0,be=0;be=6;){var Se=ue>>de-6&63;de-=6,fe+=ne[Se]}return de==2?(fe+=ne[(ue&3)<<4],fe+=ce+ce):de==4&&(fe+=ne[(ue&15)<<2],fe+=ce),fe}B.src="data:audio/x-"+l.substr(-3)+";base64,"+X(o),C(B)},B.src=N,Browser.safeSetTimeout(function(){C(B)},1e4)}else return b()},Module.preloadPlugins.push(t);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var n=Module.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&n.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(e,t,r,n){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var a,o;if(t){var l={antialias:!1,alpha:!1};if(n)for(var A in n)l[A]=n[A];o=GL.createContext(e,l),o&&(a=GL.getContext(o).GLctx)}else a=e.getContext("2d");return a?(r&&(t||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach(function(f){f()}),Browser.init()),a):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t,r){Browser.lockPointer=e,Browser.resizeCanvas=t,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var n=Module.canvas;function a(){Browser.isFullscreen=!1;var l=n.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===l?(n.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},n.exitFullscreen=n.exitFullscreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(l.parentNode.insertBefore(n,l),l.parentNode.removeChild(l),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(n)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var o=document.createElement("div");n.parentNode.insertBefore(o,n),o.appendChild(n),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?o.requestFullscreen({vrDisplay:r}):o.requestFullscreen()},requestFullScreen:function(e,t,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(n,a,o){return Browser.requestFullscreen(n,a,o)},Browser.requestFullscreen(e,t,r)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function e(t){typeof window>"u"?Browser.fakeRequestAnimationFrame(t):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(t))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(t){t()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))})},safeSetTimeout:function(e,t){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))},t)},safeSetInterval:function(e,t){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&e()},t)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail;break;case"mousewheel":t=e.wheelDelta;break;case"wheel":t=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,n=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,o=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){var l=e.touch;if(l===void 0)return;var A=l.pageX-(a+t.left),f=l.pageY-(o+t.top);A=A*(r/t.width),f=f*(n/t.height);var I={x:A,y:f};if(e.type==="touchstart")Browser.lastTouches[l.identifier]=I,Browser.touches[l.identifier]=I;else if(e.type==="touchend"||e.type==="touchmove"){var C=Browser.touches[l.identifier];C||(C=I),Browser.lastTouches[l.identifier]=C,Browser.touches[l.identifier]=I}return}var b=e.pageX-(a+t.left),E=e.pageY-(o+t.top);b=b*(r/t.width),E=E*(n/t.height),Browser.mouseMovementX=b-Browser.mouseX,Browser.mouseMovementY=E-Browser.mouseY,Browser.mouseX=b,Browser.mouseY=E}},asyncLoad:function(e,t,r,n){var a=n?"":"al "+e;Module.readAsync(e,function(o){assert(o,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(o)),a&&removeRunDependency(a)},function(o){if(r)r();else throw'Loading data file "'+e+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach(function(t){t(e.width,e.height)})},setCanvasSize:function(e,t,r){var n=Module.canvas;Browser.updateCanvasDimensions(n,e,t),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(n/a>2];return t},getStr:function(){var e=Pointer_stringify(SYSCALLS.get());return e},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return e>=0?assert(t===0):assert(t===-1),e},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(n){return(typeof FS>"u"||!(n instanceof FS.ErrnoError))&&abort(n),-n.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(e){var t=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(f,I,C,b,E,N){if(I==1){var B=b&896;(B==128||B==256||B==384)&&(f="X const")}var F;return N?F=C.replace("X",f).replace("Y",E):F=f.replace("X",C).replace("Y",E),F.replace(/([*&]) (?=[*&])/g,"$1")}function n(f,I,C,b,E){throw new Error(f+" type "+C.replace("X",I+"?")+(b?" with flag "+b:"")+" in "+E)}function a(f,I,C,b,E,N,B,F){N===void 0&&(N="X"),F===void 0&&(F=1);var Q=C(f);if(Q)return Q;var X=b(f),ae=X.placeholderFlag,ne=t[ae];B&&ne&&(N=r(B[2],B[0],N,ne[0],"?",!0));var ce;ae==0&&(ce="Unbound"),ae>=10&&(ce="Corrupt"),F>20&&(ce="Deeply nested"),ce&&n(ce,f,N,ae,E||"?");var fe=X.paramList[0],ue=a(fe,I,C,b,E,N,ne,F+1),de,be={flags:ne[0],id:f,name:"",paramList:[ue]},Se=[],De="?";switch(X.placeholderFlag){case 1:de=ue.spec;break;case 2:if((ue.flags&15360)==1024&&ue.spec.ptrSize==1){be.flags=7168;break}case 3:case 6:case 5:de=ue.spec,ue.flags&15360;break;case 8:De=""+X.paramList[1],be.paramList.push(X.paramList[1]);break;case 9:for(var k=0,et=X.paramList[1];k>2]=e),e}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.getStreamFromFD(),n=SYSCALLS.get(),a=SYSCALLS.get(),o=SYSCALLS.get(),l=SYSCALLS.get(),A=a;return FS.llseek(r,A,l),HEAP32[o>>2]=r.position,r.getdents&&A===0&&l===0&&(r.getdents=null),0}catch(f){return(typeof FS>"u"||!(f instanceof FS.ErrnoError))&&abort(f),-f.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.get(),n=SYSCALLS.get(),a=SYSCALLS.get(),o=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(C,b){var E=___syscall146.buffers[C];assert(E),b===0||b===10?((C===1?Module.print:Module.printErr)(UTF8ArrayToString(E,0)),E.length=0):E.push(b)});for(var l=0;l>2],f=HEAP32[n+(l*8+4)>>2],I=0;I"u"||!(C instanceof FS.ErrnoError))&&abort(C),-C.errno}}function __nbind_finish(){for(var e=0,t=_nbind.BindClass.list;ee.pageSize/2||t>e.pageSize-r){var n=_nbind.typeNameTbl.NBind.proto;return n.lalloc(t)}else return HEAPU32[e.usedPtr]=r+t,e.rootPtr+r},e.lreset=function(t,r){var n=HEAPU32[e.pagePtr];if(n){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(t,r)}else HEAPU32[e.usedPtr]=t},e}();_nbind.Pool=Pool;function constructType(e,t){var r=e==10240?_nbind.makeTypeNameTbl[t.name]||_nbind.BindType:_nbind.makeTypeKindTbl[e],n=new r(t);return typeIdTbl[t.id]=n,_nbind.typeNameTbl[t.name]=n,n}_nbind.constructType=constructType;function getType(e){return typeIdTbl[e]}_nbind.getType=getType;function queryType(e){var t=HEAPU8[e],r=_nbind.structureList[t][1];e/=4,r<0&&(++e,r=HEAPU32[e]+1);var n=Array.prototype.slice.call(HEAPU32.subarray(e+1,e+1+r));return t==9&&(n=[n[0],n.slice(1)]),{paramList:n,placeholderFlag:t}}_nbind.queryType=queryType;function getTypes(e,t){return e.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,t):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(e,t){return Array.prototype.slice.call(HEAPU32,e/4,e/4+t)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(e){for(var t=e;HEAPU8[t++];);return String.fromCharCode.apply("",HEAPU8.subarray(e,t-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(e){var t={};if(e)for(;;){var r=HEAPU32[e/4];if(!r)break;t[readAsciiString(r)]=!0,e+=4}return t}_nbind.readPolicyList=readPolicyList;function getDynCall(e,t){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},n=e.map(function(o){return r[o.name]||"i"}).join(""),a=Module["dynCall_"+n];if(!a)throw new Error("dynCall_"+n+" not found for "+t+"("+e.map(function(o){return o.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(e,t,r,n){var a=e[t];e.hasOwnProperty(t)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),e[t]=a),a.addMethod(r,n)):(r.arity=n,e[t]=r)}_nbind.addMethod=addMethod;function throwError(e){throw new Error(e)}_nbind.throwError=throwError,_nbind.bigEndian=!1;var _a=_typeModule(_typeModule);_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return t.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},t.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},t}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(e){__extends(t,e);function t(r){var n=e.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return n.heap=a[r.ptrSize*8],n.ptrSize=r.ptrSize,n}return t.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},t.prototype.makeWireWrite=function(r,n){return n&&n.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},t}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(e,t){if(e==null){if(t&&t.Nullable)return 0;throw new Error("Type mismatch")}if(t&&t.Strict){if(typeof e!="string")throw new Error("Type mismatch")}else e=e.toString();var r=Module.lengthBytesUTF8(e)+1,n=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(e,HEAPU8,n,r),n}_nbind.pushCString=pushCString;function popCString(e){return e===0?null:Module.Pointer_stringify(e)}_nbind.popCString=popCString;var CStringType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return t.prototype.makeWireWrite=function(r,n){return function(a){return pushCString(a,n)}},t}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.wireRead=function(n){return!!n},r}return t.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},t.prototype.makeWireRead=function(r){return"!!("+r+")"},t.prototype.makeWireWrite=function(r,n){return n&&n.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},t}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function e(){}return e.prototype.persist=function(){this.__nbindState|=1},e}();_nbind.Wrapper=Wrapper;function makeBound(e,t){var r=function(n){__extends(a,n);function a(o,l,A,f){var I=n.call(this)||this;if(!(I instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var C=l,b=A,E=f;if(o!==_nbind.ptrMarker){var N=I.__nbindConstructor.apply(I,arguments);C=4608,E=HEAPU32[N/4],b=HEAPU32[N/4+1]}var B={configurable:!0,enumerable:!1,value:null,writable:!1},F={__nbindFlags:C,__nbindPtr:b};E&&(F.__nbindShared=E,_nbind.mark(I));for(var Q=0,X=Object.keys(F);Q>=1;var r=_nbind.valueList[e];return _nbind.valueList[e]=firstFreeValue,firstFreeValue=e,r}else{if(t)return _nbind.popShared(e,t);throw new Error("Invalid value slot "+e)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(e){return typeof e=="number"?e:pushValue(e)*4096+valueBase}function pop64(e){return e=3?l=Buffer.from(o):l=new Buffer(o),l.copy(n)}else getBuffer(n).set(o)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var e=0,t=dirtyList;e>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(e,t,r,n,a,o){try{Module.dynCall_viiiii(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_vif(e,t,r){try{Module.dynCall_vif(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vid(e,t,r){try{Module.dynCall_vid(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_fiff(e,t,r,n){try{return Module.dynCall_fiff(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(e,t,r){try{Module.dynCall_vii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(e,t,r,n,a){try{Module.dynCall_viddi(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vidd(e,t,r,n){try{Module.dynCall_vidd(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(e,t,r,n){try{return Module.dynCall_iiii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(e,t,r,n){try{return Module.dynCall_diii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(e,t){try{return Module.dynCall_di(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(e,t,r){try{return Module.dynCall_iid(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_iii(e,t,r){try{return Module.dynCall_iii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viiddi(e,t,r,n,a,o){try{Module.dynCall_viiddi(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_viiiiii(e,t,r,n,a,o,l){try{Module.dynCall_viiiiii(e,t,r,n,a,o,l)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(e,t,r){try{return Module.dynCall_dii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_i(e){try{return Module.dynCall_i(e)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,r,n,a,o){try{return Module.dynCall_iiiiii(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_viiid(e,t,r,n,a){try{Module.dynCall_viiid(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viififi(e,t,r,n,a,o,l){try{Module.dynCall_viififi(e,t,r,n,a,o,l)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(e,t,r,n){try{Module.dynCall_viii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viid(e,t,r,n){try{Module.dynCall_viid(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(e,t,r){try{return Module.dynCall_idd(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viiii(e,t,r,n,a){try{Module.dynCall_viiii(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(e,t,r){var n=new e.Int8Array(r),a=new e.Int16Array(r),o=new e.Int32Array(r),l=new e.Uint8Array(r),A=new e.Uint16Array(r),f=new e.Uint32Array(r),I=new e.Float32Array(r),C=new e.Float64Array(r),b=t.DYNAMICTOP_PTR|0,E=t.tempDoublePtr|0,N=t.ABORT|0,B=t.STACKTOP|0,F=t.STACK_MAX|0,Q=t.cttz_i8|0,X=t.___dso_handle|0,ae=0,ne=0,ce=0,fe=0,ue=e.NaN,de=e.Infinity,be=0,Se=0,De=0,k=0,et=0,ct=0,Me=e.Math.floor,je=e.Math.abs,St=e.Math.sqrt,At=e.Math.pow,Yt=e.Math.cos,Tr=e.Math.sin,Nr=e.Math.tan,er=e.Math.acos,vt=e.Math.asin,xt=e.Math.atan,Zr=e.Math.atan2,qt=e.Math.exp,Xt=e.Math.log,lr=e.Math.ceil,cr=e.Math.imul,Ar=e.Math.min,qr=e.Math.max,_n=e.Math.clz32,ke=e.Math.fround,jt=t.abort,Fn=t.assert,Nn=t.enlargeMemory,Hi=t.getTotalMemory,po=t.abortOnCannotGrowMemory,Vr=t.invoke_viiiii,xi=t.invoke_vif,io=t.invoke_vid,ga=t.invoke_fiff,Ya=t.invoke_vi,Gc=t.invoke_vii,cl=t.invoke_ii,Sc=t.invoke_viddi,Hr=t.invoke_vidd,Wr=t.invoke_iiii,Ft=t.invoke_diii,zr=t.invoke_di,Rn=t.invoke_iid,Or=t.invoke_iii,Qi=t.invoke_viiddi,ps=t.invoke_viiiiii,yo=t.invoke_dii,bo=t.invoke_i,Qa=t.invoke_iiiiii,gc=t.invoke_viiid,Cg=t.invoke_viififi,Nc=t.invoke_viii,iA=t.invoke_v,ma=t.invoke_viid,vu=t.invoke_idd,li=t.invoke_viiii,Ei=t._emscripten_asm_const_iiiii,Ps=t._emscripten_asm_const_iiidddddd,Xa=t._emscripten_asm_const_iiiid,ac=t.__nbind_reference_external,Yl=t._emscripten_asm_const_iiiiiiii,Wc=t._removeAccessorPrefix,Sg=t._typeModule,Ul=t.__nbind_register_pool,Xu=t.__decorate,Da=t._llvm_stackrestore,pu=t.___cxa_atexit,_g=t.__extends,mI=t.__nbind_get_value_object,Qh=t.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Ri=t._emscripten_set_main_loop_timing,Do=t.__nbind_register_primitive,Wt=t.__nbind_register_type,Hu=t._emscripten_memcpy_big,Ru=t.__nbind_register_function,Vs=t.___setErrNo,Ju=t.__nbind_register_class,Yn=t.__nbind_finish,Ko=t._abort,Eg=t._nbind_value,OA=t._llvm_stacksave,GA=t.___syscall54,$i=t._defineHidden,dl=t._emscripten_set_main_loop,Uf=t._emscripten_get_now,Kd=t.__nbind_register_callback_signature,oA=t._emscripten_asm_const_iiiiii,oo=t.__nbind_free_external,Ki=t._emscripten_asm_const_iiii,cc=t._emscripten_asm_const_iiididi,Xs=t.___syscall6,ws=t._atexit,Gs=t.___syscall140,Ma=t.___syscall146,Dc=ke(0);let As=ke(0);function Tf(p){p=p|0;var y=0;return y=B,B=B+p|0,B=B+15&-16,y|0}function cm(){return B|0}function Fl(p){p=p|0,B=p}function rc(p,y){p=p|0,y=y|0,B=p,F=y}function sd(p,y){p=p|0,y=y|0,ae||(ae=p,ne=y)}function Om(p){p=p|0,ct=p}function il(){return ct|0}function FA(){var p=0,y=0;Md(8104,8,400)|0,Md(8504,408,540)|0,p=9044,y=p+44|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));n[9088]=0,n[9089]=1,o[2273]=0,o[2274]=948,o[2275]=948,pu(17,8104,X|0)|0}function ZA(p){p=p|0,aa(p+948|0)}function El(p){return p=ke(p),((kT(p)|0)&2147483647)>>>0>2139095040|0}function yg(p,y,w){p=p|0,y=y|0,w=w|0;e:do if(o[p+(y<<3)+4>>2]|0)p=p+(y<<3)|0;else{if((y|2|0)==3&&o[p+60>>2]|0){p=p+56|0;break}switch(y|0){case 0:case 2:case 4:case 5:{if(o[p+52>>2]|0){p=p+48|0;break e}break}default:}if(o[p+68>>2]|0){p=p+64|0;break}else{p=(y|1|0)==5?948:w;break}}while(!1);return p|0}function Mp(p){p=p|0;var y=0;return y=zne(1e3)|0,MA(p,(y|0)!=0,2456),o[2276]=(o[2276]|0)+1,Md(y|0,8104,1e3)|0,n[p+2>>0]|0&&(o[y+4>>2]=2,o[y+12>>2]=4),o[y+976>>2]=p,y|0}function MA(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;J=B,B=B+16|0,G=J,y||(o[G>>2]=w,JS(p,5,3197,G)),B=J}function Er(){return Mp(956)|0}function Zt(p){p=p|0;var y=0;return y=Ku(1e3)|0,yn(y,p),MA(o[p+976>>2]|0,1,2456),o[2276]=(o[2276]|0)+1,o[y+944>>2]=0,y|0}function yn(p,y){p=p|0,y=y|0;var w=0;Md(p|0,y|0,948)|0,fw(p+948|0,y+948|0),w=p+960|0,p=y+960|0,y=w+40|0;do o[w>>2]=o[p>>2],w=w+4|0,p=p+4|0;while((w|0)<(y|0))}function ls(p){p=p|0;var y=0,w=0,G=0,J=0;if(y=p+944|0,w=o[y>>2]|0,w|0&&(oa(w+948|0,p)|0,o[y>>2]=0),w=Fs(p)|0,w|0){y=0;do o[(Wa(p,y)|0)+944>>2]=0,y=y+1|0;while((y|0)!=(w|0))}w=p+948|0,G=o[w>>2]|0,J=p+952|0,y=o[J>>2]|0,(y|0)!=(G|0)&&(o[J>>2]=y+(~((y+-4-G|0)>>>2)<<2)),Ca(w),qne(p),o[2276]=(o[2276]|0)+-1}function oa(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0;G=o[p>>2]|0,Ge=p+4|0,w=o[Ge>>2]|0,U=w;e:do if((G|0)==(w|0))J=G,le=4;else for(p=G;;){if((o[p>>2]|0)==(y|0)){J=p,le=4;break e}if(p=p+4|0,(p|0)==(w|0)){p=0;break}}while(!1);return(le|0)==4&&((J|0)!=(w|0)?(G=J+4|0,p=U-G|0,y=p>>2,y&&(JT(J|0,G|0,p|0)|0,w=o[Ge>>2]|0),p=J+(y<<2)|0,(w|0)==(p|0)||(o[Ge>>2]=w+(~((w+-4-p|0)>>>2)<<2)),p=1):p=0),p|0}function Fs(p){return p=p|0,(o[p+952>>2]|0)-(o[p+948>>2]|0)>>2|0}function Wa(p,y){p=p|0,y=y|0;var w=0;return w=o[p+948>>2]|0,(o[p+952>>2]|0)-w>>2>>>0>y>>>0?p=o[w+(y<<2)>>2]|0:p=0,p|0}function Ca(p){p=p|0;var y=0,w=0,G=0,J=0;G=B,B=B+32|0,y=G,J=o[p>>2]|0,w=(o[p+4>>2]|0)-J|0,((o[p+8>>2]|0)-J|0)>>>0>w>>>0&&(J=w>>2,pn(y,J,J,p+8|0),q1(p,y),J2(y)),B=G}function ld(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;bt=Fs(p)|0;do if(bt|0){if((o[(Wa(p,0)|0)+944>>2]|0)==(p|0)){if(!(oa(p+948|0,y)|0))break;Md(y+400|0,8504,540)|0,o[y+944>>2]=0,di(p);break}le=o[(o[p+976>>2]|0)+12>>2]|0,Ge=p+948|0,Xe=(le|0)==0,w=0,U=0;do G=o[(o[Ge>>2]|0)+(U<<2)>>2]|0,(G|0)==(y|0)?di(p):(J=Zt(G)|0,o[(o[Ge>>2]|0)+(w<<2)>>2]=J,o[J+944>>2]=p,Xe||Ir[le&15](G,J,p,w),w=w+1|0),U=U+1|0;while((U|0)!=(bt|0));if(w>>>0>>0){Xe=p+948|0,Ge=p+952|0,le=w,w=o[Ge>>2]|0;do U=(o[Xe>>2]|0)+(le<<2)|0,G=U+4|0,J=w-G|0,y=J>>2,y&&(JT(U|0,G|0,J|0)|0,w=o[Ge>>2]|0),J=w,G=U+(y<<2)|0,(J|0)!=(G|0)&&(w=J+(~((J+-4-G|0)>>>2)<<2)|0,o[Ge>>2]=w),le=le+1|0;while((le|0)!=(bt|0))}}while(!1)}function Rp(p){p=p|0;var y=0,w=0,G=0,J=0;np(p,(Fs(p)|0)==0,2491),np(p,(o[p+944>>2]|0)==0,2545),y=p+948|0,w=o[y>>2]|0,G=p+952|0,J=o[G>>2]|0,(J|0)!=(w|0)&&(o[G>>2]=J+(~((J+-4-w|0)>>>2)<<2)),Ca(y),y=p+976|0,w=o[y>>2]|0,Md(p|0,8104,1e3)|0,n[w+2>>0]|0&&(o[p+4>>2]=2,o[p+12>>2]=4),o[y>>2]=w}function np(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;J=B,B=B+16|0,G=J,y||(o[G>>2]=w,fd(p,5,3197,G)),B=J}function HA(){return o[2276]|0}function df(){var p=0;return p=zne(20)|0,Zs((p|0)!=0,2592),o[2277]=(o[2277]|0)+1,o[p>>2]=o[239],o[p+4>>2]=o[240],o[p+8>>2]=o[241],o[p+12>>2]=o[242],o[p+16>>2]=o[243],p|0}function Zs(p,y){p=p|0,y=y|0;var w=0,G=0;G=B,B=B+16|0,w=G,p||(o[w>>2]=y,fd(0,5,3197,w)),B=G}function so(p){p=p|0,qne(p),o[2277]=(o[2277]|0)+-1}function Ea(p,y){p=p|0,y=y|0;var w=0;y?(np(p,(Fs(p)|0)==0,2629),w=1):(w=0,y=0),o[p+964>>2]=y,o[p+988>>2]=w}function Ml(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,U=G+8|0,J=G+4|0,le=G,o[J>>2]=y,np(p,(o[y+944>>2]|0)==0,2709),np(p,(o[p+964>>2]|0)==0,2763),Dr(p),y=p+948|0,o[le>>2]=(o[y>>2]|0)+(w<<2),o[U>>2]=o[le>>2],Wn(y,U,J)|0,o[(o[J>>2]|0)+944>>2]=p,di(p),B=G}function Dr(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;if(w=Fs(p)|0,w|0&&(o[(Wa(p,0)|0)+944>>2]|0)!=(p|0)){G=o[(o[p+976>>2]|0)+12>>2]|0,J=p+948|0,U=(G|0)==0,y=0;do le=o[(o[J>>2]|0)+(y<<2)>>2]|0,Ge=Zt(le)|0,o[(o[J>>2]|0)+(y<<2)>>2]=Ge,o[Ge+944>>2]=p,U||Ir[G&15](le,Ge,p,y),y=y+1|0;while((y|0)!=(w|0))}}function Wn(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0;Ds=B,B=B+64|0,rr=Ds+52|0,Ge=Ds+48|0,an=Ds+28|0,Ks=Ds+24|0,zi=Ds+20|0,Un=Ds,G=o[p>>2]|0,U=G,y=G+((o[y>>2]|0)-U>>2<<2)|0,G=p+4|0,J=o[G>>2]|0,le=p+8|0;do if(J>>>0<(o[le>>2]|0)>>>0){if((y|0)==(J|0)){o[y>>2]=o[w>>2],o[G>>2]=(o[G>>2]|0)+4;break}ey(p,y,J,y+4|0),y>>>0<=w>>>0&&(w=(o[G>>2]|0)>>>0>w>>>0?w+4|0:w),o[y>>2]=o[w>>2]}else{G=(J-U>>2)+1|0,J=ut(p)|0,J>>>0>>0&&me(p),It=o[p>>2]|0,bt=(o[le>>2]|0)-It|0,U=bt>>1,pn(Un,bt>>2>>>0>>1>>>0?U>>>0>>0?G:U:J,y-It>>2,p+8|0),It=Un+8|0,G=o[It>>2]|0,U=Un+12|0,bt=o[U>>2]|0,le=bt,Xe=G;do if((G|0)==(bt|0)){if(bt=Un+4|0,G=o[bt>>2]|0,Si=o[Un>>2]|0,J=Si,G>>>0<=Si>>>0){G=le-J>>1,G=G|0?G:1,pn(an,G,G>>>2,o[Un+16>>2]|0),o[Ks>>2]=o[bt>>2],o[zi>>2]=o[It>>2],o[Ge>>2]=o[Ks>>2],o[rr>>2]=o[zi>>2],Iw(an,Ge,rr),G=o[Un>>2]|0,o[Un>>2]=o[an>>2],o[an>>2]=G,G=an+4|0,Si=o[bt>>2]|0,o[bt>>2]=o[G>>2],o[G>>2]=Si,G=an+8|0,Si=o[It>>2]|0,o[It>>2]=o[G>>2],o[G>>2]=Si,G=an+12|0,Si=o[U>>2]|0,o[U>>2]=o[G>>2],o[G>>2]=Si,J2(an),G=o[It>>2]|0;break}U=G,le=((U-J>>2)+1|0)/-2|0,Ge=G+(le<<2)|0,J=Xe-U|0,U=J>>2,U&&(JT(Ge|0,G|0,J|0)|0,G=o[bt>>2]|0),Si=Ge+(U<<2)|0,o[It>>2]=Si,o[bt>>2]=G+(le<<2),G=Si}while(!1);o[G>>2]=o[w>>2],o[It>>2]=(o[It>>2]|0)+4,y=up(p,Un,y)|0,J2(Un)}while(!1);return B=Ds,y|0}function di(p){p=p|0;var y=0;do{if(y=p+984|0,n[y>>0]|0)break;n[y>>0]=1,I[p+504>>2]=ke(ue),p=o[p+944>>2]|0}while(p|0)}function aa(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function Bo(p){return p=p|0,o[p+944>>2]|0}function us(p){p=p|0,np(p,(o[p+964>>2]|0)!=0,2832),di(p)}function Ql(p){return p=p|0,(n[p+984>>0]|0)!=0|0}function LA(p,y){p=p|0,y=y|0,kLe(p,y,400)|0&&(Md(p|0,y|0,400)|0,di(p))}function pf(p){p=p|0;var y=As;return y=ke(I[p+44>>2]),p=El(y)|0,ke(p?ke(0):y)}function ef(p){p=p|0;var y=As;return y=ke(I[p+48>>2]),El(y)|0&&(y=n[(o[p+976>>2]|0)+2>>0]|0?ke(1):ke(0)),ke(y)}function ip(p,y){p=p|0,y=y|0,o[p+980>>2]=y}function _d(p){return p=p|0,o[p+980>>2]|0}function j1(p,y){p=p|0,y=y|0;var w=0;w=p+4|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function pw(p){return p=p|0,o[p+4>>2]|0}function YA(p,y){p=p|0,y=y|0;var w=0;w=p+8|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function Ac(p){return p=p|0,o[p+8>>2]|0}function Nm(p,y){p=p|0,y=y|0;var w=0;w=p+12|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function HS(p){return p=p|0,o[p+12>>2]|0}function jd(p,y){p=p|0,y=y|0;var w=0;w=p+16|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function dh(p){return p=p|0,o[p+16>>2]|0}function Hp(p,y){p=p|0,y=y|0;var w=0;w=p+20|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function uC(p){return p=p|0,o[p+20>>2]|0}function nE(p,y){p=p|0,y=y|0;var w=0;w=p+24|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function J_(p){return p=p|0,o[p+24>>2]|0}function q0(p,y){p=p|0,y=y|0;var w=0;w=p+28|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function XE(p){return p=p|0,o[p+28>>2]|0}function TC(p,y){p=p|0,y=y|0;var w=0;w=p+32|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function t_(p){return p=p|0,o[p+32>>2]|0}function cp(p,y){p=p|0,y=y|0;var w=0;w=p+36|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function Mm(p){return p=p|0,o[p+36>>2]|0}function fb(p,y){p=p|0,y=ke(y);var w=0;w=p+40|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function pe(p,y){p=p|0,y=ke(y);var w=0;w=p+44|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function lm(p,y){p=p|0,y=ke(y);var w=0;w=p+48|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function Kf(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+52|0,J=p+56|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function CI(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+52|0,w=p+56|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function _I(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+52|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function H2(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+132+(y<<3)|0,y=p+132+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function iE(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+132+(y<<3)|0,y=p+132+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function se(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+132+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function O(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+60+(y<<3)|0,y=p+60+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function K(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+60+(y<<3)|0,y=p+60+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function we(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+60+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function gt(p,y){p=p|0,y=y|0;var w=0;w=p+60+(y<<3)+4|0,(o[w>>2]|0)!=3&&(I[p+60+(y<<3)>>2]=ke(ue),o[w>>2]=3,di(p))}function sr(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+204+(y<<3)|0,y=p+204+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function Yr(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+204+(y<<3)|0,y=p+204+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function Lr(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+204+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function fi(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+276+(y<<3)|0,y=p+276+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function $n(p,y){return p=p|0,y=y|0,ke(I[p+276+(y<<3)>>2])}function ra(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+348|0,J=p+352|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function kc(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+348|0,w=p+352|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function Nl(p){p=p|0;var y=0;y=p+352|0,(o[y>>2]|0)!=3&&(I[p+348>>2]=ke(ue),o[y>>2]=3,di(p))}function ca(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+348|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function Bl(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+356|0,J=p+360|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function $g(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+356|0,w=p+360|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function SA(p){p=p|0;var y=0;y=p+360|0,(o[y>>2]|0)!=3&&(I[p+356>>2]=ke(ue),o[y>>2]=3,di(p))}function lI(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+356|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function lp(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+364|0,J=p+368|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Ib(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+364|0,J=p+368|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Na(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+364|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function wd(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+372|0,J=p+376|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function z1(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+372|0,J=p+376|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function T_(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+372|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function RC(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+380|0,J=p+384|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Hm(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+380|0,J=p+384|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function YS(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+380|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function Fg(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+388|0,J=p+392|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function hb(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+388|0,J=p+392|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function gC(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+388|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function NC(p,y){p=p|0,y=ke(y);var w=0;w=p+396|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function Y2(p){return p=p|0,ke(I[p+396>>2])}function U_(p){return p=p|0,ke(I[p+400>>2])}function DC(p){return p=p|0,ke(I[p+404>>2])}function kC(p){return p=p|0,ke(I[p+408>>2])}function qI(p){return p=p|0,ke(I[p+412>>2])}function ph(p){return p=p|0,ke(I[p+416>>2])}function vA(p){return p=p|0,ke(I[p+420>>2])}function Td(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+424+(y<<2)>>2])}function Mc(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+448+(y<<2)>>2])}function Pf(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+472+(y<<2)>>2])}function sE(p,y){p=p|0,y=y|0;var w=0,G=As;return w=o[p+4>>2]|0,(w|0)==(o[y+4>>2]|0)?w?(G=ke(I[p>>2]),p=ke(je(ke(G-ke(I[y>>2]))))>2]=0,o[G+4>>2]=0,o[G+8>>2]=0,Qh(G|0,p|0,y|0,0),fd(p,3,(n[G+11>>0]|0)<0?o[G>>2]|0:G,w),Gw(G),B=w}function um(p,y,w,G){p=ke(p),y=ke(y),w=w|0,G=G|0;var J=As;p=ke(p*y),J=ke(Az(p,ke(1)));do if(eA(J,ke(0))|0)p=ke(p-J);else{if(p=ke(p-J),eA(J,ke(1))|0){p=ke(p+ke(1));break}if(w){p=ke(p+ke(1));break}G||(J>ke(.5)?J=ke(1):(G=eA(J,ke(.5))|0,J=ke(G?1:0)),p=ke(p+J))}while(!1);return ke(p/y)}function gm(p,y,w,G,J,U,le,Ge,Xe,bt,It,rr,an){p=p|0,y=ke(y),w=w|0,G=ke(G),J=J|0,U=ke(U),le=le|0,Ge=ke(Ge),Xe=ke(Xe),bt=ke(bt),It=ke(It),rr=ke(rr),an=an|0;var Ks=0,zi=As,Un=As,Ds=As,Si=As,So=As,ss=As;return Xe>2]),zi!=ke(0))?(Ds=ke(um(y,zi,0,0)),Si=ke(um(G,zi,0,0)),Un=ke(um(U,zi,0,0)),zi=ke(um(Ge,zi,0,0))):(Un=U,Ds=y,zi=Ge,Si=G),(J|0)==(p|0)?Ks=eA(Un,Ds)|0:Ks=0,(le|0)==(w|0)?an=eA(zi,Si)|0:an=0,!Ks&&(So=ke(y-It),!(cs(p,So,Xe)|0))&&!(na(p,So,J,Xe)|0)?Ks=ko(p,So,J,U,Xe)|0:Ks=1,!an&&(ss=ke(G-rr),!(cs(w,ss,bt)|0))&&!(na(w,ss,le,bt)|0)?an=ko(w,ss,le,Ge,bt)|0:an=1,an=Ks&an),an|0}function cs(p,y,w){return p=p|0,y=ke(y),w=ke(w),(p|0)==1?p=eA(y,w)|0:p=0,p|0}function na(p,y,w,G){return p=p|0,y=ke(y),w=w|0,G=ke(G),(p|0)==2&(w|0)==0?y>=G?p=1:p=eA(y,G)|0:p=0,p|0}function ko(p,y,w,G,J){return p=p|0,y=ke(y),w=w|0,G=ke(G),J=ke(J),(p|0)==2&(w|0)==2&G>y?J<=y?p=1:p=eA(y,J)|0:p=0,p|0}function ki(p,y,w,G,J,U,le,Ge,Xe,bt,It){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=U|0,le=ke(le),Ge=ke(Ge),Xe=Xe|0,bt=bt|0,It=It|0;var rr=0,an=0,Ks=0,zi=0,Un=As,Ds=As,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=As,w0=As,bE=As,nh=0,x_=0;wg=B,B=B+160|0,Tc=wg+152|0,fl=wg+120|0,uu=wg+104|0,ss=wg+72|0,zi=wg+56|0,hl=wg+8|0,So=wg,pi=(o[2279]|0)+1|0,o[2279]=pi,Bg=p+984|0,n[Bg>>0]|0&&(o[p+512>>2]|0)!=(o[2278]|0)?Si=4:(o[p+516>>2]|0)==(G|0)?Dg=0:Si=4,(Si|0)==4&&(o[p+520>>2]=0,o[p+924>>2]=-1,o[p+928>>2]=-1,I[p+932>>2]=ke(-1),I[p+936>>2]=ke(-1),Dg=1);e:do if(o[p+964>>2]|0)if(Un=ke(Kl(p,2,le)),Ds=ke(Kl(p,0,le)),rr=p+916|0,bE=ke(I[rr>>2]),w0=ke(I[p+920>>2]),em=ke(I[p+932>>2]),gm(J,y,U,w,o[p+924>>2]|0,bE,o[p+928>>2]|0,w0,em,ke(I[p+936>>2]),Un,Ds,It)|0)Si=22;else if(Ks=o[p+520>>2]|0,!Ks)Si=21;else for(an=0;;){if(rr=p+524+(an*24|0)|0,em=ke(I[rr>>2]),w0=ke(I[p+524+(an*24|0)+4>>2]),bE=ke(I[p+524+(an*24|0)+16>>2]),gm(J,y,U,w,o[p+524+(an*24|0)+8>>2]|0,em,o[p+524+(an*24|0)+12>>2]|0,w0,bE,ke(I[p+524+(an*24|0)+20>>2]),Un,Ds,It)|0){Si=22;break e}if(an=an+1|0,an>>>0>=Ks>>>0){Si=21;break}}else{if(Xe){if(rr=p+916|0,!(eA(ke(I[rr>>2]),y)|0)){Si=21;break}if(!(eA(ke(I[p+920>>2]),w)|0)){Si=21;break}if((o[p+924>>2]|0)!=(J|0)){Si=21;break}rr=(o[p+928>>2]|0)==(U|0)?rr:0,Si=22;break}if(Ks=o[p+520>>2]|0,!Ks)Si=21;else for(an=0;;){if(rr=p+524+(an*24|0)|0,eA(ke(I[rr>>2]),y)|0&&eA(ke(I[p+524+(an*24|0)+4>>2]),w)|0&&(o[p+524+(an*24|0)+8>>2]|0)==(J|0)&&(o[p+524+(an*24|0)+12>>2]|0)==(U|0)){Si=22;break e}if(an=an+1|0,an>>>0>=Ks>>>0){Si=21;break}}}while(!1);do if((Si|0)==21)n[11697]|0?(rr=0,Si=28):(rr=0,Si=31);else if((Si|0)==22){if(an=(n[11697]|0)!=0,!((rr|0)!=0&(Dg^1)))if(an){Si=28;break}else{Si=31;break}zi=rr+16|0,o[p+908>>2]=o[zi>>2],Ks=rr+20|0,o[p+912>>2]=o[Ks>>2],(n[11698]|0)==0|an^1||(o[So>>2]=jf(pi)|0,o[So+4>>2]=pi,fd(p,4,2972,So),an=o[p+972>>2]|0,an|0&&DF[an&127](p),J=Ld(J,Xe)|0,U=Ld(U,Xe)|0,x_=+ke(I[zi>>2]),nh=+ke(I[Ks>>2]),o[hl>>2]=J,o[hl+4>>2]=U,C[hl+8>>3]=+y,C[hl+16>>3]=+w,C[hl+24>>3]=x_,C[hl+32>>3]=nh,o[hl+40>>2]=bt,fd(p,4,2989,hl))}while(!1);return(Si|0)==28&&(an=jf(pi)|0,o[zi>>2]=an,o[zi+4>>2]=pi,o[zi+8>>2]=Dg?3047:11699,fd(p,4,3038,zi),an=o[p+972>>2]|0,an|0&&DF[an&127](p),hl=Ld(J,Xe)|0,Si=Ld(U,Xe)|0,o[ss>>2]=hl,o[ss+4>>2]=Si,C[ss+8>>3]=+y,C[ss+16>>3]=+w,o[ss+24>>2]=bt,fd(p,4,3049,ss),Si=31),(Si|0)==31&&(AC(p,y,w,G,J,U,le,Ge,Xe,It),n[11697]|0&&(an=o[2279]|0,hl=jf(an)|0,o[uu>>2]=hl,o[uu+4>>2]=an,o[uu+8>>2]=Dg?3047:11699,fd(p,4,3083,uu),an=o[p+972>>2]|0,an|0&&DF[an&127](p),hl=Ld(J,Xe)|0,uu=Ld(U,Xe)|0,nh=+ke(I[p+908>>2]),x_=+ke(I[p+912>>2]),o[fl>>2]=hl,o[fl+4>>2]=uu,C[fl+8>>3]=nh,C[fl+16>>3]=x_,o[fl+24>>2]=bt,fd(p,4,3092,fl)),o[p+516>>2]=G,rr||(an=p+520|0,rr=o[an>>2]|0,(rr|0)==16&&(n[11697]|0&&fd(p,4,3124,Tc),o[an>>2]=0,rr=0),Xe?rr=p+916|0:(o[an>>2]=rr+1,rr=p+524+(rr*24|0)|0),I[rr>>2]=y,I[rr+4>>2]=w,o[rr+8>>2]=J,o[rr+12>>2]=U,o[rr+16>>2]=o[p+908>>2],o[rr+20>>2]=o[p+912>>2],rr=0)),Xe&&(o[p+416>>2]=o[p+908>>2],o[p+420>>2]=o[p+912>>2],n[p+985>>0]=1,n[Bg>>0]=0),o[2279]=(o[2279]|0)+-1,o[p+512>>2]=o[2278],B=wg,Dg|(rr|0)==0|0}function Kl(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(ar(p,y,w)),ke(G+ke(Jr(p,y,w)))}function fd(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=B,B=B+16|0,J=U,o[J>>2]=G,p?G=o[p+976>>2]|0:G=0,By(G,p,y,w,J),B=U}function jf(p){return p=p|0,(p>>>0>60?3201:3201+(60-p)|0)|0}function Ld(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+32|0,w=J+12|0,G=J,o[w>>2]=o[254],o[w+4>>2]=o[255],o[w+8>>2]=o[256],o[G>>2]=o[257],o[G+4>>2]=o[258],o[G+8>>2]=o[259],(p|0)>2?p=11699:p=o[(y?G:w)+(p<<2)>>2]|0,B=J,p|0}function AC(p,y,w,G,J,U,le,Ge,Xe,bt){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=U|0,le=ke(le),Ge=ke(Ge),Xe=Xe|0,bt=bt|0;var It=0,rr=0,an=0,Ks=0,zi=As,Un=As,Ds=As,Si=As,So=As,ss=As,pi=As,hl=0,uu=0,fl=0,Tc=As,Bg=As,Dg=0,wg=As,em=0,w0=0,bE=0,nh=0,x_=0,$D=0,Fw=0,mh=0,kF=0,Zw=0,KT=0,jL=0,zL=0,aS=0,mf=0,d2=0,jT=0,fv=0,Fx=As,xB=As,Iv=As,GB=As,EE=As,Um=0,mN=0,zT=0,Km=0,p2=0,hg=As,OI=As,og=As,jo=As,Yg=As,Zl=As,f2=0,MI=As,xF=As,gI=As,UA=As,lA=As,GF=As,CN=0,qT=0,I1=As,T0=As,ek=0,fo=0,Lw=0,FF=0,Hd=As,of=0,vd=0,yp=0,l_=0,Yd=0,Qg=0,hv=0,Du=As,F3=0,ly=0;hv=B,B=B+16|0,Um=hv+12|0,mN=hv+8|0,zT=hv+4|0,Km=hv,np(p,(J|0)==0|(El(y)|0)^1,3326),np(p,(U|0)==0|(El(w)|0)^1,3406),vd=Qo(p,G)|0,o[p+496>>2]=vd,Yd=vg(2,vd)|0,Qg=vg(0,vd)|0,I[p+440>>2]=ke(ar(p,Yd,le)),I[p+444>>2]=ke(Jr(p,Yd,le)),I[p+428>>2]=ke(ar(p,Qg,le)),I[p+436>>2]=ke(Jr(p,Qg,le)),I[p+464>>2]=ke(Ng(p,Yd)),I[p+468>>2]=ke(Rf(p,Yd)),I[p+452>>2]=ke(Ng(p,Qg)),I[p+460>>2]=ke(Rf(p,Qg)),I[p+488>>2]=ke(uI(p,Yd,le)),I[p+492>>2]=ke(Th(p,Yd,le)),I[p+476>>2]=ke(uI(p,Qg,le)),I[p+484>>2]=ke(Th(p,Qg,le));do if(o[p+964>>2]|0)oE(p,y,w,J,U,le,Ge);else{if(yp=p+948|0,l_=(o[p+952>>2]|0)-(o[yp>>2]|0)>>2,!l_){TT(p,y,w,J,U,le,Ge);break}if(!Xe&&sB(p,y,w,J,U,le,Ge)|0)break;Dr(p),d2=p+508|0,n[d2>>0]=0,Yd=vg(o[p+4>>2]|0,vd)|0,Qg=RT(Yd,vd)|0,of=Gn(Yd)|0,jT=o[p+8>>2]|0,fo=p+28|0,fv=(o[fo>>2]|0)!=0,lA=of?le:Ge,I1=of?Ge:le,Fx=ke(wy(p,Yd,le)),xB=ke(jE(p,Yd,le)),zi=ke(wy(p,Qg,le)),GF=ke(j_(p,Yd,le)),T0=ke(j_(p,Qg,le)),fl=of?J:U,ek=of?U:J,Hd=of?GF:T0,So=of?T0:GF,UA=ke(Kl(p,2,le)),Si=ke(Kl(p,0,le)),Un=ke(ke(od(p+364|0,le))-Hd),Ds=ke(ke(od(p+380|0,le))-Hd),ss=ke(ke(od(p+372|0,Ge))-So),pi=ke(ke(od(p+388|0,Ge))-So),Iv=of?Un:ss,GB=of?Ds:pi,UA=ke(y-UA),y=ke(UA-Hd),El(y)|0?Hd=y:Hd=ke(zs(ke(fU(y,Ds)),Un)),xF=ke(w-Si),y=ke(xF-So),El(y)|0?gI=y:gI=ke(zs(ke(fU(y,pi)),ss)),Un=of?Hd:gI,MI=of?gI:Hd;e:do if((fl|0)==1)for(G=0,rr=0;;){if(It=Wa(p,rr)|0,!G)ke(tf(It))>ke(0)&&ke(Ty(It))>ke(0)?G=It:G=0;else if(NT(It)|0){Ks=0;break e}if(rr=rr+1|0,rr>>>0>=l_>>>0){Ks=G;break}}else Ks=0;while(!1);hl=Ks+500|0,uu=Ks+504|0,G=0,It=0,y=ke(0),an=0;do{if(rr=o[(o[yp>>2]|0)+(an<<2)>>2]|0,(o[rr+36>>2]|0)==1)US(rr),n[rr+985>>0]=1,n[rr+984>>0]=0;else{vy(rr),Xe&&UE(rr,Qo(rr,vd)|0,Un,MI,Hd);do if((o[rr+24>>2]|0)!=1)if((rr|0)==(Ks|0)){o[hl>>2]=o[2278],I[uu>>2]=ke(0);break}else{$I(p,rr,Hd,J,gI,Hd,gI,U,vd,bt);break}else It|0&&(o[It+960>>2]=rr),o[rr+960>>2]=0,It=rr,G=G|0?G:rr;while(!1);Zl=ke(I[rr+504>>2]),y=ke(y+ke(Zl+ke(Kl(rr,Yd,Hd))))}an=an+1|0}while((an|0)!=(l_|0));for(bE=y>Un,f2=fv&((fl|0)==2&bE)?1:fl,em=(ek|0)==1,x_=em&(Xe^1),$D=(f2|0)==1,Fw=(f2|0)==2,mh=976+(Yd<<2)|0,kF=(ek|2|0)==2,aS=em&(fv^1),Zw=1040+(Qg<<2)|0,KT=1040+(Yd<<2)|0,jL=976+(Qg<<2)|0,zL=(ek|0)!=1,bE=fv&((fl|0)!=0&bE),w0=p+976|0,em=em^1,y=Un,Dg=0,nh=0,Zl=ke(0),EE=ke(0);;){e:do if(Dg>>>0>>0)for(uu=o[yp>>2]|0,an=0,pi=ke(0),ss=ke(0),Ds=ke(0),Un=ke(0),rr=0,It=0,Ks=Dg;;){if(hl=o[uu+(Ks<<2)>>2]|0,(o[hl+36>>2]|0)!=1&&(o[hl+940>>2]=nh,(o[hl+24>>2]|0)!=1)){if(Si=ke(Kl(hl,Yd,Hd)),mf=o[mh>>2]|0,w=ke(od(hl+380+(mf<<3)|0,lA)),So=ke(I[hl+504>>2]),w=ke(fU(w,So)),w=ke(zs(ke(od(hl+364+(mf<<3)|0,lA)),w)),fv&(an|0)!=0&ke(Si+ke(ss+w))>y){U=an,Si=pi,fl=Ks;break e}Si=ke(Si+w),w=ke(ss+Si),Si=ke(pi+Si),NT(hl)|0&&(Ds=ke(Ds+ke(tf(hl))),Un=ke(Un-ke(So*ke(Ty(hl))))),It|0&&(o[It+960>>2]=hl),o[hl+960>>2]=0,an=an+1|0,It=hl,rr=rr|0?rr:hl}else Si=pi,w=ss;if(Ks=Ks+1|0,Ks>>>0>>0)pi=Si,ss=w;else{U=an,fl=Ks;break}}else U=0,Si=ke(0),Ds=ke(0),Un=ke(0),rr=0,fl=Dg;while(!1);mf=Ds>ke(0)&Dske(0)&UnGB&((El(GB)|0)^1))y=GB,mf=51;else if(n[(o[w0>>2]|0)+3>>0]|0)mf=51;else{if(Tc!=ke(0)&&ke(tf(p))!=ke(0)){mf=53;break}y=Si,mf=53}while(!1);if((mf|0)==51&&(mf=0,El(y)|0?mf=53:(Bg=ke(y-Si),wg=y)),(mf|0)==53&&(mf=0,Si>2]|0,Ks=Bgke(0),ss=ke(Bg/Tc),Ds=ke(0),Si=ke(0),y=ke(0),It=rr;do w=ke(od(It+380+(an<<3)|0,lA)),Un=ke(od(It+364+(an<<3)|0,lA)),Un=ke(fU(w,ke(zs(Un,ke(I[It+504>>2]))))),Ks?(w=ke(Un*ke(Ty(It))),w!=ke(-0)&&(Du=ke(Un-ke(So*w)),hg=ke(BA(It,Yd,Du,wg,Hd)),Du!=hg)&&(Ds=ke(Ds-ke(hg-Un)),y=ke(y+w))):hl&&(OI=ke(tf(It)),OI!=ke(0))&&(Du=ke(Un+ke(ss*OI)),og=ke(BA(It,Yd,Du,wg,Hd)),Du!=og)&&(Ds=ke(Ds-ke(og-Un)),Si=ke(Si-OI)),It=o[It+960>>2]|0;while(It|0);if(y=ke(pi+y),Un=ke(Bg+Ds),p2)y=ke(0);else{So=ke(Tc+Si),Ks=o[mh>>2]|0,hl=Unke(0),So=ke(Un/So),y=ke(0);do{Du=ke(od(rr+380+(Ks<<3)|0,lA)),Ds=ke(od(rr+364+(Ks<<3)|0,lA)),Ds=ke(fU(Du,ke(zs(Ds,ke(I[rr+504>>2]))))),hl?(Du=ke(Ds*ke(Ty(rr))),Un=ke(-Du),Du!=ke(-0)?(Du=ke(ss*Un),Un=ke(BA(rr,Yd,ke(Ds+(uu?Un:Du)),wg,Hd))):Un=Ds):an&&(jo=ke(tf(rr)),jo!=ke(0))?Un=ke(BA(rr,Yd,ke(Ds+ke(So*jo)),wg,Hd)):Un=Ds,y=ke(y-ke(Un-Ds)),Si=ke(Kl(rr,Yd,Hd)),w=ke(Kl(rr,Qg,Hd)),Un=ke(Un+Si),I[mN>>2]=Un,o[Km>>2]=1,Ds=ke(I[rr+396>>2]);e:do if(El(Ds)|0){It=El(MI)|0;do if(!It){if(bE|(K_(rr,Qg,MI)|0|em)||($A(p,rr)|0)!=4||(o[(Qm(rr,Qg)|0)+4>>2]|0)==3||(o[(zf(rr,Qg)|0)+4>>2]|0)==3)break;I[Um>>2]=MI,o[zT>>2]=1;break e}while(!1);if(K_(rr,Qg,MI)|0){It=o[rr+992+(o[jL>>2]<<2)>>2]|0,Du=ke(w+ke(od(It,MI))),I[Um>>2]=Du,It=zL&(o[It+4>>2]|0)==2,o[zT>>2]=((El(Du)|0|It)^1)&1;break}else{I[Um>>2]=MI,o[zT>>2]=It?0:2;break}}else Du=ke(Un-Si),Tc=ke(Du/Ds),Du=ke(Ds*Du),o[zT>>2]=1,I[Um>>2]=ke(w+(of?Tc:Du));while(!1);mb(rr,Yd,wg,Hd,Km,mN),mb(rr,Qg,MI,Hd,zT,Um);do if(!(K_(rr,Qg,MI)|0)&&($A(p,rr)|0)==4){if((o[(Qm(rr,Qg)|0)+4>>2]|0)==3){It=0;break}It=(o[(zf(rr,Qg)|0)+4>>2]|0)!=3}else It=0;while(!1);Du=ke(I[mN>>2]),Tc=ke(I[Um>>2]),F3=o[Km>>2]|0,ly=o[zT>>2]|0,ki(rr,of?Du:Tc,of?Tc:Du,vd,of?F3:ly,of?ly:F3,Hd,gI,Xe&(It^1),3488,bt)|0,n[d2>>0]=n[d2>>0]|n[rr+508>>0],rr=o[rr+960>>2]|0}while(rr|0)}}else y=ke(0);if(y=ke(Bg+y),ly=y>0]=ly|l[d2>>0],Fw&y>ke(0)?(It=o[mh>>2]|0,o[p+364+(It<<3)+4>>2]|0&&(Yg=ke(od(p+364+(It<<3)|0,lA)),Yg>=ke(0))?Un=ke(zs(ke(0),ke(Yg-ke(wg-y)))):Un=ke(0)):Un=y,hl=Dg>>>0>>0,hl){Ks=o[yp>>2]|0,an=Dg,It=0;do rr=o[Ks+(an<<2)>>2]|0,o[rr+24>>2]|0||(It=((o[(Qm(rr,Yd)|0)+4>>2]|0)==3&1)+It|0,It=It+((o[(zf(rr,Yd)|0)+4>>2]|0)==3&1)|0),an=an+1|0;while((an|0)!=(fl|0));It?(Si=ke(0),w=ke(0)):mf=101}else mf=101;e:do if((mf|0)==101)switch(mf=0,jT|0){case 1:{It=0,Si=ke(Un*ke(.5)),w=ke(0);break e}case 2:{It=0,Si=Un,w=ke(0);break e}case 3:{if(U>>>0<=1){It=0,Si=ke(0),w=ke(0);break e}w=ke((U+-1|0)>>>0),It=0,Si=ke(0),w=ke(ke(zs(Un,ke(0)))/w);break e}case 5:{w=ke(Un/ke((U+1|0)>>>0)),It=0,Si=w;break e}case 4:{w=ke(Un/ke(U>>>0)),It=0,Si=ke(w*ke(.5));break e}default:{It=0,Si=ke(0),w=ke(0);break e}}while(!1);if(y=ke(Fx+Si),hl){Ds=ke(Un/ke(It|0)),an=o[yp>>2]|0,rr=Dg,Un=ke(0);do{It=o[an+(rr<<2)>>2]|0;e:do if((o[It+36>>2]|0)!=1){switch(o[It+24>>2]|0){case 1:{if(R_(It,Yd)|0){if(!Xe)break e;Du=ke(Cb(It,Yd,wg)),Du=ke(Du+ke(Ng(p,Yd))),Du=ke(Du+ke(ar(It,Yd,Hd))),I[It+400+(o[KT>>2]<<2)>>2]=Du;break e}break}case 0:if(ly=(o[(Qm(It,Yd)|0)+4>>2]|0)==3,Du=ke(Ds+y),y=ly?Du:y,Xe&&(ly=It+400+(o[KT>>2]<<2)|0,I[ly>>2]=ke(y+ke(I[ly>>2]))),ly=(o[(zf(It,Yd)|0)+4>>2]|0)==3,Du=ke(Ds+y),y=ly?Du:y,x_){Du=ke(w+ke(Kl(It,Yd,Hd))),Un=MI,y=ke(y+ke(Du+ke(I[It+504>>2])));break e}else{y=ke(y+ke(w+ke(Ry(It,Yd,Hd)))),Un=ke(zs(Un,ke(Ry(It,Qg,Hd))));break e}default:}Xe&&(Du=ke(Si+ke(Ng(p,Yd))),ly=It+400+(o[KT>>2]<<2)|0,I[ly>>2]=ke(Du+ke(I[ly>>2])))}while(!1);rr=rr+1|0}while((rr|0)!=(fl|0))}else Un=ke(0);if(w=ke(xB+y),kF?Si=ke(ke(BA(p,Qg,ke(T0+Un),I1,le))-T0):Si=MI,Ds=ke(ke(BA(p,Qg,ke(T0+(aS?MI:Un)),I1,le))-T0),hl&Xe){rr=Dg;do{an=o[(o[yp>>2]|0)+(rr<<2)>>2]|0;do if((o[an+36>>2]|0)!=1){if((o[an+24>>2]|0)==1){if(R_(an,Qg)|0){if(Du=ke(Cb(an,Qg,MI)),Du=ke(Du+ke(Ng(p,Qg))),Du=ke(Du+ke(ar(an,Qg,Hd))),It=o[Zw>>2]|0,I[an+400+(It<<2)>>2]=Du,!(El(Du)|0))break}else It=o[Zw>>2]|0;Du=ke(Ng(p,Qg)),I[an+400+(It<<2)>>2]=ke(Du+ke(ar(an,Qg,Hd)));break}It=$A(p,an)|0;do if((It|0)==4){if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){mf=139;break}if((o[(zf(an,Qg)|0)+4>>2]|0)==3){mf=139;break}if(K_(an,Qg,MI)|0){y=zi;break}F3=o[an+908+(o[mh>>2]<<2)>>2]|0,o[Um>>2]=F3,y=ke(I[an+396>>2]),ly=El(y)|0,Un=(o[E>>2]=F3,ke(I[E>>2])),ly?y=Ds:(Bg=ke(Kl(an,Qg,Hd)),Du=ke(Un/y),y=ke(y*Un),y=ke(Bg+(of?Du:y))),I[mN>>2]=y,I[Um>>2]=ke(ke(Kl(an,Yd,Hd))+Un),o[zT>>2]=1,o[Km>>2]=1,mb(an,Yd,wg,Hd,zT,Um),mb(an,Qg,MI,Hd,Km,mN),y=ke(I[Um>>2]),Bg=ke(I[mN>>2]),Du=of?y:Bg,y=of?Bg:y,ly=((El(Du)|0)^1)&1,ki(an,Du,y,vd,ly,((El(y)|0)^1)&1,Hd,gI,1,3493,bt)|0,y=zi}else mf=139;while(!1);e:do if((mf|0)==139){mf=0,y=ke(Si-ke(Ry(an,Qg,Hd)));do if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){if((o[(zf(an,Qg)|0)+4>>2]|0)!=3)break;y=ke(zi+ke(zs(ke(0),ke(y*ke(.5)))));break e}while(!1);if((o[(zf(an,Qg)|0)+4>>2]|0)==3){y=zi;break}if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){y=ke(zi+ke(zs(ke(0),y)));break}switch(It|0){case 1:{y=zi;break e}case 2:{y=ke(zi+ke(y*ke(.5)));break e}default:{y=ke(zi+y);break e}}}while(!1);Du=ke(Zl+y),ly=an+400+(o[Zw>>2]<<2)|0,I[ly>>2]=ke(Du+ke(I[ly>>2]))}while(!1);rr=rr+1|0}while((rr|0)!=(fl|0))}if(Zl=ke(Zl+Ds),EE=ke(zs(EE,w)),U=nh+1|0,fl>>>0>=l_>>>0)break;y=wg,Dg=fl,nh=U}do if(Xe){if(It=U>>>0>1,!It&&!(KS(p)|0))break;if(!(El(MI)|0)){y=ke(MI-Zl);e:do switch(o[p+12>>2]|0){case 3:{zi=ke(zi+y),ss=ke(0);break}case 2:{zi=ke(zi+ke(y*ke(.5))),ss=ke(0);break}case 4:{MI>Zl?ss=ke(y/ke(U>>>0)):ss=ke(0);break}case 7:if(MI>Zl){zi=ke(zi+ke(y/ke(U<<1>>>0))),ss=ke(y/ke(U>>>0)),ss=It?ss:ke(0);break e}else{zi=ke(zi+ke(y*ke(.5))),ss=ke(0);break e}case 6:{ss=ke(y/ke(nh>>>0)),ss=MI>Zl&It?ss:ke(0);break}default:ss=ke(0)}while(!1);if(U|0)for(hl=1040+(Qg<<2)|0,uu=976+(Qg<<2)|0,Ks=0,rr=0;;){e:do if(rr>>>0>>0)for(Un=ke(0),Ds=ke(0),y=ke(0),an=rr;;){It=o[(o[yp>>2]|0)+(an<<2)>>2]|0;do if((o[It+36>>2]|0)!=1&&!(o[It+24>>2]|0)){if((o[It+940>>2]|0)!=(Ks|0))break e;if(_b(It,Qg)|0&&(Du=ke(I[It+908+(o[uu>>2]<<2)>>2]),y=ke(zs(y,ke(Du+ke(Kl(It,Qg,Hd)))))),($A(p,It)|0)!=5)break;Yg=ke(z_(It)),Yg=ke(Yg+ke(ar(It,0,Hd))),Du=ke(I[It+912>>2]),Du=ke(ke(Du+ke(Kl(It,0,Hd)))-Yg),Yg=ke(zs(Ds,Yg)),Du=ke(zs(Un,Du)),Un=Du,Ds=Yg,y=ke(zs(y,ke(Yg+Du)))}while(!1);if(It=an+1|0,It>>>0>>0)an=It;else{an=It;break}}else Ds=ke(0),y=ke(0),an=rr;while(!1);if(So=ke(ss+y),w=zi,zi=ke(zi+So),rr>>>0>>0){Si=ke(w+Ds),It=rr;do{rr=o[(o[yp>>2]|0)+(It<<2)>>2]|0;e:do if((o[rr+36>>2]|0)!=1&&!(o[rr+24>>2]|0))switch($A(p,rr)|0){case 1:{Du=ke(w+ke(ar(rr,Qg,Hd))),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 3:{Du=ke(ke(zi-ke(Jr(rr,Qg,Hd)))-ke(I[rr+908+(o[uu>>2]<<2)>>2])),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 2:{Du=ke(w+ke(ke(So-ke(I[rr+908+(o[uu>>2]<<2)>>2]))*ke(.5))),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 4:{if(Du=ke(w+ke(ar(rr,Qg,Hd))),I[rr+400+(o[hl>>2]<<2)>>2]=Du,K_(rr,Qg,MI)|0||(of?(Un=ke(I[rr+908>>2]),y=ke(Un+ke(Kl(rr,Yd,Hd))),Ds=So):(Ds=ke(I[rr+912>>2]),Ds=ke(Ds+ke(Kl(rr,Qg,Hd))),y=So,Un=ke(I[rr+908>>2])),eA(y,Un)|0&&eA(Ds,ke(I[rr+912>>2]))|0))break e;ki(rr,y,Ds,vd,1,1,Hd,gI,1,3501,bt)|0;break e}case 5:{I[rr+404>>2]=ke(ke(Si-ke(z_(rr)))+ke(Cb(rr,0,MI)));break e}default:break e}while(!1);It=It+1|0}while((It|0)!=(an|0))}if(Ks=Ks+1|0,(Ks|0)==(U|0))break;rr=an}}}while(!1);if(I[p+908>>2]=ke(BA(p,2,UA,le,le)),I[p+912>>2]=ke(BA(p,0,xF,Ge,le)),f2|0&&(CN=o[p+32>>2]|0,qT=(f2|0)==2,!(qT&(CN|0)!=2))?qT&(CN|0)==2&&(y=ke(GF+wg),y=ke(zs(ke(fU(y,ke(zE(p,Yd,EE,lA)))),GF)),mf=198):(y=ke(BA(p,Yd,EE,lA,le)),mf=198),(mf|0)==198&&(I[p+908+(o[976+(Yd<<2)>>2]<<2)>>2]=y),ek|0&&(Lw=o[p+32>>2]|0,FF=(ek|0)==2,!(FF&(Lw|0)!=2))?FF&(Lw|0)==2&&(y=ke(T0+MI),y=ke(zs(ke(fU(y,ke(zE(p,Qg,ke(T0+Zl),I1)))),T0)),mf=204):(y=ke(BA(p,Qg,ke(T0+Zl),I1,le)),mf=204),(mf|0)==204&&(I[p+908+(o[976+(Qg<<2)>>2]<<2)>>2]=y),Xe){if((o[fo>>2]|0)==2){rr=976+(Qg<<2)|0,an=1040+(Qg<<2)|0,It=0;do Ks=Wa(p,It)|0,o[Ks+24>>2]|0||(F3=o[rr>>2]|0,Du=ke(I[p+908+(F3<<2)>>2]),ly=Ks+400+(o[an>>2]<<2)|0,Du=ke(Du-ke(I[ly>>2])),I[ly>>2]=ke(Du-ke(I[Ks+908+(F3<<2)>>2]))),It=It+1|0;while((It|0)!=(l_|0))}if(G|0){It=of?f2:J;do oB(p,G,Hd,It,gI,vd,bt),G=o[G+960>>2]|0;while(G|0)}if(It=(Yd|2|0)==3,rr=(Qg|2|0)==3,It|rr){G=0;do an=o[(o[yp>>2]|0)+(G<<2)>>2]|0,(o[an+36>>2]|0)!=1&&(It&&DT(p,an,Yd),rr&&DT(p,an,Qg)),G=G+1|0;while((G|0)!=(l_|0))}}}while(!1);B=hv}function JE(p,y){p=p|0,y=ke(y);var w=0;MA(p,y>=ke(0),3147),w=y==ke(0),I[p+4>>2]=w?ke(0):y}function Ym(p,y,w,G){p=p|0,y=ke(y),w=ke(w),G=G|0;var J=As,U=As,le=0,Ge=0,Xe=0;o[2278]=(o[2278]|0)+1,vy(p),K_(p,2,y)|0?(J=ke(od(o[p+992>>2]|0,y)),Xe=1,J=ke(J+ke(Kl(p,2,y)))):(J=ke(od(p+380|0,y)),J>=ke(0)?Xe=2:(Xe=((El(y)|0)^1)&1,J=y)),K_(p,0,w)|0?(U=ke(od(o[p+996>>2]|0,w)),Ge=1,U=ke(U+ke(Kl(p,0,y)))):(U=ke(od(p+388|0,w)),U>=ke(0)?Ge=2:(Ge=((El(w)|0)^1)&1,U=w)),le=p+976|0,ki(p,J,U,G,Xe,Ge,y,w,1,3189,o[le>>2]|0)|0&&(UE(p,o[p+496>>2]|0,y,w,y),KE(p,ke(I[(o[le>>2]|0)+4>>2]),ke(0),ke(0)),n[11696]|0)&&QS(p,7)}function vy(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;Ge=B,B=B+32|0,le=Ge+24|0,U=Ge+16|0,G=Ge+8|0,J=Ge,w=0;do y=p+380+(w<<3)|0,o[p+380+(w<<3)+4>>2]|0&&(Xe=y,bt=o[Xe+4>>2]|0,It=G,o[It>>2]=o[Xe>>2],o[It+4>>2]=bt,It=p+364+(w<<3)|0,bt=o[It+4>>2]|0,Xe=J,o[Xe>>2]=o[It>>2],o[Xe+4>>2]=bt,o[U>>2]=o[G>>2],o[U+4>>2]=o[G+4>>2],o[le>>2]=o[J>>2],o[le+4>>2]=o[J+4>>2],sE(U,le)|0)||(y=p+348+(w<<3)|0),o[p+992+(w<<2)>>2]=y,w=w+1|0;while((w|0)!=2);B=Ge}function K_(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0;switch(p=o[p+992+(o[976+(y<<2)>>2]<<2)>>2]|0,o[p+4>>2]|0){case 0:case 3:{p=0;break}case 1:{ke(I[p>>2])>2])>2]|0){case 2:{y=ke(ke(ke(I[p>>2])*y)/ke(100));break}case 1:{y=ke(I[p>>2]);break}default:y=ke(ue)}return ke(y)}function UE(p,y,w,G,J){p=p|0,y=y|0,w=ke(w),G=ke(G),J=ke(J);var U=0,le=As;y=o[p+944>>2]|0?y:1,U=vg(o[p+4>>2]|0,y)|0,y=RT(U,y)|0,w=ke(X2(p,U,w)),G=ke(X2(p,y,G)),le=ke(w+ke(ar(p,U,J))),I[p+400+(o[1040+(U<<2)>>2]<<2)>>2]=le,w=ke(w+ke(Jr(p,U,J))),I[p+400+(o[1e3+(U<<2)>>2]<<2)>>2]=w,w=ke(G+ke(ar(p,y,J))),I[p+400+(o[1040+(y<<2)>>2]<<2)>>2]=w,J=ke(G+ke(Jr(p,y,J))),I[p+400+(o[1e3+(y<<2)>>2]<<2)>>2]=J}function KE(p,y,w,G){p=p|0,y=ke(y),w=ke(w),G=ke(G);var J=0,U=0,le=As,Ge=As,Xe=0,bt=0,It=As,rr=0,an=As,Ks=As,zi=As,Un=As;if(y!=ke(0)&&(J=p+400|0,Un=ke(I[J>>2]),U=p+404|0,zi=ke(I[U>>2]),rr=p+416|0,Ks=ke(I[rr>>2]),bt=p+420|0,le=ke(I[bt>>2]),an=ke(Un+w),It=ke(zi+G),G=ke(an+Ks),Ge=ke(It+le),Xe=(o[p+988>>2]|0)==1,I[J>>2]=ke(um(Un,y,0,Xe)),I[U>>2]=ke(um(zi,y,0,Xe)),w=ke(Az(ke(Ks*y),ke(1))),eA(w,ke(0))|0?U=0:U=(eA(w,ke(1))|0)^1,w=ke(Az(ke(le*y),ke(1))),eA(w,ke(0))|0?J=0:J=(eA(w,ke(1))|0)^1,Un=ke(um(G,y,Xe&U,Xe&(U^1))),I[rr>>2]=ke(Un-ke(um(an,y,0,Xe))),Un=ke(um(Ge,y,Xe&J,Xe&(J^1))),I[bt>>2]=ke(Un-ke(um(It,y,0,Xe))),U=(o[p+952>>2]|0)-(o[p+948>>2]|0)>>2,U|0)){J=0;do KE(Wa(p,J)|0,y,an,It),J=J+1|0;while((J|0)!=(U|0))}}function Yp(p,y,w,G,J){switch(p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,w|0){case 5:case 0:{p=zAe(o[489]|0,G,J)|0;break}default:p=pPt(G,J)|0}return p|0}function JS(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;J=B,B=B+16|0,U=J,o[U>>2]=G,By(p,0,y,w,U),B=J}function By(p,y,w,G,J){if(p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,p=p|0?p:956,ide[o[p+8>>2]&1](p,y,w,G,J)|0,(w|0)==5)Ko();else return}function $0(p,y,w){p=p|0,y=y|0,w=w|0,n[p+y>>0]=w&1}function fw(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(Q2(p,G),xc(p,o[y>>2]|0,o[w>>2]|0,G))}function Q2(p,y){p=p|0,y=y|0;var w=0;if((ut(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function xc(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function ut(p){return p=p|0,1073741823}function ar(p,y,w){return p=p|0,y=y|0,w=ke(w),Gn(y)|0&&o[p+96>>2]|0?p=p+92|0:p=yg(p+60|0,o[1040+(y<<2)>>2]|0,992)|0,ke(Ts(p,w))}function Jr(p,y,w){return p=p|0,y=y|0,w=ke(w),Gn(y)|0&&o[p+104>>2]|0?p=p+100|0:p=yg(p+60|0,o[1e3+(y<<2)>>2]|0,992)|0,ke(Ts(p,w))}function Gn(p){return p=p|0,(p|1|0)==3|0}function Ts(p,y){return p=p|0,y=ke(y),(o[p+4>>2]|0)==3?y=ke(0):y=ke(od(p,y)),ke(y)}function Qo(p,y){return p=p|0,y=y|0,p=o[p>>2]|0,(p|0?p:(y|0)>1?y:1)|0}function vg(p,y){p=p|0,y=y|0;var w=0;e:do if((y|0)==2){switch(p|0){case 2:{p=3;break e}case 3:break;default:{w=4;break e}}p=2}else w=4;while(!1);return p|0}function Ng(p,y){p=p|0,y=y|0;var w=As;return Gn(y)|0&&o[p+312>>2]|0&&(w=ke(I[p+308>>2]),w>=ke(0))||(w=ke(zs(ke(I[(yg(p+276|0,o[1040+(y<<2)>>2]|0,992)|0)>>2]),ke(0)))),ke(w)}function Rf(p,y){p=p|0,y=y|0;var w=As;return Gn(y)|0&&o[p+320>>2]|0&&(w=ke(I[p+316>>2]),w>=ke(0))||(w=ke(zs(ke(I[(yg(p+276|0,o[1e3+(y<<2)>>2]|0,992)|0)>>2]),ke(0)))),ke(w)}function uI(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return Gn(y)|0&&o[p+240>>2]|0&&(G=ke(od(p+236|0,w)),G>=ke(0))||(G=ke(zs(ke(od(yg(p+204|0,o[1040+(y<<2)>>2]|0,992)|0,w)),ke(0)))),ke(G)}function Th(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return Gn(y)|0&&o[p+248>>2]|0&&(G=ke(od(p+244|0,w)),G>=ke(0))||(G=ke(zs(ke(od(yg(p+204|0,o[1e3+(y<<2)>>2]|0,992)|0,w)),ke(0)))),ke(G)}function oE(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=As,Xe=As,bt=As,It=As,rr=As,an=As,Ks=0,zi=0,Un=0;Un=B,B=B+16|0,Ks=Un,zi=p+964|0,np(p,(o[zi>>2]|0)!=0,3519),Ge=ke(j_(p,2,y)),Xe=ke(j_(p,0,y)),bt=ke(Kl(p,2,y)),It=ke(Kl(p,0,y)),El(y)|0?rr=y:rr=ke(zs(ke(0),ke(ke(y-bt)-Ge))),El(w)|0?an=w:an=ke(zs(ke(0),ke(ke(w-It)-Xe))),(G|0)==1&(J|0)==1?(I[p+908>>2]=ke(BA(p,2,ke(y-bt),U,U)),y=ke(BA(p,0,ke(w-It),le,U))):(Cz[o[zi>>2]&1](Ks,p,rr,G,an,J),rr=ke(Ge+ke(I[Ks>>2])),an=ke(y-bt),I[p+908>>2]=ke(BA(p,2,(G|2|0)==2?rr:an,U,U)),an=ke(Xe+ke(I[Ks+4>>2])),y=ke(w-It),y=ke(BA(p,0,(J|2|0)==2?an:y,le,U))),I[p+912>>2]=y,B=Un}function TT(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=As,Xe=As,bt=As,It=As;bt=ke(j_(p,2,U)),Ge=ke(j_(p,0,U)),It=ke(Kl(p,2,U)),Xe=ke(Kl(p,0,U)),y=ke(y-It),I[p+908>>2]=ke(BA(p,2,(G|2|0)==2?bt:y,U,U)),w=ke(w-Xe),I[p+912>>2]=ke(BA(p,0,(J|2|0)==2?Ge:w,le,U))}function sB(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=0,Xe=As,bt=As;return Ge=(G|0)==2,!(y<=ke(0)&Ge)&&!(w<=ke(0)&(J|0)==2)&&!((G|0)==1&(J|0)==1)?p=0:(Xe=ke(Kl(p,0,U)),bt=ke(Kl(p,2,U)),Ge=y>2]=ke(BA(p,2,Ge?ke(0):y,U,U)),y=ke(w-Xe),Ge=w>2]=ke(BA(p,0,Ge?ke(0):y,le,U)),p=1),p|0}function RT(p,y){return p=p|0,y=y|0,aB(p)|0?p=vg(2,y)|0:p=0,p|0}function wy(p,y,w){return p=p|0,y=y|0,w=ke(w),w=ke(uI(p,y,w)),ke(w+ke(Ng(p,y)))}function jE(p,y,w){return p=p|0,y=y|0,w=ke(w),w=ke(Th(p,y,w)),ke(w+ke(Rf(p,y)))}function j_(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(wy(p,y,w)),ke(G+ke(jE(p,y,w)))}function NT(p){return p=p|0,o[p+24>>2]|0?p=0:ke(tf(p))!=ke(0)?p=1:p=ke(Ty(p))!=ke(0),p|0}function tf(p){p=p|0;var y=As;if(o[p+944>>2]|0){if(y=ke(I[p+44>>2]),El(y)|0)return y=ke(I[p+40>>2]),p=y>ke(0)&((El(y)|0)^1),ke(p?y:ke(0))}else y=ke(0);return ke(y)}function Ty(p){p=p|0;var y=As,w=0,G=As;do if(o[p+944>>2]|0){if(y=ke(I[p+48>>2]),El(y)|0){if(w=n[(o[p+976>>2]|0)+2>>0]|0,!(w<<24>>24)&&(G=ke(I[p+40>>2]),G>24?ke(1):ke(0)}}else y=ke(0);while(!1);return ke(y)}function US(p){p=p|0;var y=0,w=0;if(fz(p+400|0,0,540)|0,n[p+985>>0]=1,Dr(p),w=Fs(p)|0,w|0){y=p+948|0,p=0;do US(o[(o[y>>2]|0)+(p<<2)>>2]|0),p=p+1|0;while((p|0)!=(w|0))}}function $I(p,y,w,G,J,U,le,Ge,Xe,bt){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=ke(U),le=ke(le),Ge=Ge|0,Xe=Xe|0,bt=bt|0;var It=0,rr=As,an=0,Ks=0,zi=As,Un=As,Ds=0,Si=As,So=0,ss=As,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0,w0=0;em=B,B=B+16|0,uu=em+12|0,fl=em+8|0,Tc=em+4|0,Bg=em,wg=vg(o[p+4>>2]|0,Xe)|0,pi=Gn(wg)|0,rr=ke(od(jS(y)|0,pi?U:le)),hl=K_(y,2,U)|0,Dg=K_(y,0,le)|0;do if(!(El(rr)|0)&&!(El(pi?w:J)|0)){if(It=y+504|0,!(El(ke(I[It>>2]))|0)&&(!(XR(o[y+976>>2]|0,0)|0)||(o[y+500>>2]|0)==(o[2278]|0)))break;I[It>>2]=ke(zs(rr,ke(j_(y,wg,U))))}else an=7;while(!1);do if((an|0)==7){if(So=pi^1,!(So|hl^1)){le=ke(od(o[y+992>>2]|0,U)),I[y+504>>2]=ke(zs(le,ke(j_(y,2,U))));break}if(!(pi|Dg^1)){le=ke(od(o[y+996>>2]|0,le)),I[y+504>>2]=ke(zs(le,ke(j_(y,0,U))));break}I[uu>>2]=ke(ue),I[fl>>2]=ke(ue),o[Tc>>2]=0,o[Bg>>2]=0,Si=ke(Kl(y,2,U)),ss=ke(Kl(y,0,U)),hl?(zi=ke(Si+ke(od(o[y+992>>2]|0,U))),I[uu>>2]=zi,o[Tc>>2]=1,Ks=1):(Ks=0,zi=ke(ue)),Dg?(rr=ke(ss+ke(od(o[y+996>>2]|0,le))),I[fl>>2]=rr,o[Bg>>2]=1,It=1):(It=0,rr=ke(ue)),an=o[p+32>>2]|0,pi&(an|0)==2?an=2:El(zi)|0&&!(El(w)|0)&&(I[uu>>2]=w,o[Tc>>2]=2,Ks=2,zi=w),!((an|0)==2&So)&&El(rr)|0&&!(El(J)|0)&&(I[fl>>2]=J,o[Bg>>2]=2,It=2,rr=J),Un=ke(I[y+396>>2]),Ds=El(Un)|0;do if(Ds)an=Ks;else{if((Ks|0)==1&So){I[fl>>2]=ke(ke(zi-Si)/Un),o[Bg>>2]=1,It=1,an=1;break}pi&(It|0)==1?(I[uu>>2]=ke(Un*ke(rr-ss)),o[Tc>>2]=1,It=1,an=1):an=Ks}while(!1);w0=El(w)|0,Ks=($A(p,y)|0)!=4,!(pi|hl|((G|0)!=1|w0)|(Ks|(an|0)==1))&&(I[uu>>2]=w,o[Tc>>2]=1,!Ds)&&(I[fl>>2]=ke(ke(w-Si)/Un),o[Bg>>2]=1,It=1),!(Dg|So|((Ge|0)!=1|(El(J)|0))|(Ks|(It|0)==1))&&(I[fl>>2]=J,o[Bg>>2]=1,!Ds)&&(I[uu>>2]=ke(Un*ke(J-ss)),o[Tc>>2]=1),mb(y,2,U,U,Tc,uu),mb(y,0,le,U,Bg,fl),w=ke(I[uu>>2]),J=ke(I[fl>>2]),ki(y,w,J,Xe,o[Tc>>2]|0,o[Bg>>2]|0,U,le,0,3565,bt)|0,le=ke(I[y+908+(o[976+(wg<<2)>>2]<<2)>>2]),I[y+504>>2]=ke(zs(le,ke(j_(y,wg,U))))}while(!1);o[y+500>>2]=o[2278],B=em}function BA(p,y,w,G,J){return p=p|0,y=y|0,w=ke(w),G=ke(G),J=ke(J),G=ke(zE(p,y,w,G)),ke(zs(G,ke(j_(p,y,J))))}function $A(p,y){return p=p|0,y=y|0,y=y+20|0,y=o[(o[y>>2]|0?y:p+16|0)>>2]|0,(y|0)==5&&aB(o[p+4>>2]|0)|0&&(y=1),y|0}function Qm(p,y){return p=p|0,y=y|0,Gn(y)|0&&o[p+96>>2]|0?y=4:y=o[1040+(y<<2)>>2]|0,p+60+(y<<3)|0}function zf(p,y){return p=p|0,y=y|0,Gn(y)|0&&o[p+104>>2]|0?y=5:y=o[1e3+(y<<2)>>2]|0,p+60+(y<<3)|0}function mb(p,y,w,G,J,U){switch(p=p|0,y=y|0,w=ke(w),G=ke(G),J=J|0,U=U|0,w=ke(od(p+380+(o[976+(y<<2)>>2]<<3)|0,w)),w=ke(w+ke(Kl(p,y,G))),o[J>>2]|0){case 2:case 1:{J=El(w)|0,G=ke(I[U>>2]),I[U>>2]=J|G>2]=2,I[U>>2]=w);break}default:}}function R_(p,y){return p=p|0,y=y|0,p=p+132|0,Gn(y)|0&&o[(yg(p,4,948)|0)+4>>2]|0?p=1:p=(o[(yg(p,o[1040+(y<<2)>>2]|0,948)|0)+4>>2]|0)!=0,p|0}function Cb(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0;return p=p+132|0,Gn(y)|0&&(G=yg(p,4,948)|0,(o[G+4>>2]|0)!=0)?J=4:(G=yg(p,o[1040+(y<<2)>>2]|0,948)|0,o[G+4>>2]|0?J=4:w=ke(0)),(J|0)==4&&(w=ke(od(G,w))),ke(w)}function Ry(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(I[p+908+(o[976+(y<<2)>>2]<<2)>>2]),G=ke(G+ke(ar(p,y,w))),ke(G+ke(Jr(p,y,w)))}function KS(p){p=p|0;var y=0,w=0,G=0;e:do if(aB(o[p+4>>2]|0)|0)y=0;else if((o[p+16>>2]|0)!=5)if(w=Fs(p)|0,!w)y=0;else for(y=0;;){if(G=Wa(p,y)|0,!(o[G+24>>2]|0)&&(o[G+20>>2]|0)==5){y=1;break e}if(y=y+1|0,y>>>0>=w>>>0){y=0;break}}else y=1;while(!1);return y|0}function _b(p,y){p=p|0,y=y|0;var w=As;return w=ke(I[p+908+(o[976+(y<<2)>>2]<<2)>>2]),w>=ke(0)&((El(w)|0)^1)|0}function z_(p){p=p|0;var y=As,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=As;if(w=o[p+968>>2]|0,w)Xe=ke(I[p+908>>2]),y=ke(I[p+912>>2]),y=ke(lie[w&0](p,Xe,y)),np(p,(El(y)|0)^1,3573);else{U=Fs(p)|0;do if(U|0){for(w=0,J=0;;){if(G=Wa(p,J)|0,o[G+940>>2]|0){le=8;break}if((o[G+24>>2]|0)!=1)if(Ge=($A(p,G)|0)==5,Ge){w=G;break}else w=w|0?w:G;if(J=J+1|0,J>>>0>=U>>>0){le=8;break}}if((le|0)==8&&!w)break;return y=ke(z_(w)),ke(y+ke(I[w+404>>2]))}while(!1);y=ke(I[p+912>>2])}return ke(y)}function zE(p,y,w,G){p=p|0,y=y|0,w=ke(w),G=ke(G);var J=As,U=0;return aB(y)|0?(y=1,U=3):Gn(y)|0?(y=0,U=3):(G=ke(ue),J=ke(ue)),(U|0)==3&&(J=ke(od(p+364+(y<<3)|0,G)),G=ke(od(p+380+(y<<3)|0,G))),U=G=ke(0)&((El(G)|0)^1)),w=U?G:w,U=J>=ke(0)&((El(J)|0)^1)&w>2]|0,U)|0,zi=RT(Ds,U)|0,Un=Gn(Ds)|0,rr=ke(Kl(y,2,w)),an=ke(Kl(y,0,w)),K_(y,2,w)|0?Ge=ke(rr+ke(od(o[y+992>>2]|0,w))):R_(y,2)|0&&zS(y,2)|0?(Ge=ke(I[p+908>>2]),Xe=ke(Ng(p,2)),Xe=ke(Ge-ke(Xe+ke(Rf(p,2)))),Ge=ke(Cb(y,2,w)),Ge=ke(BA(y,2,ke(Xe-ke(Ge+ke(qE(y,2,w)))),w,w))):Ge=ke(ue),K_(y,0,J)|0?Xe=ke(an+ke(od(o[y+996>>2]|0,J))):R_(y,0)|0&&zS(y,0)|0?(Xe=ke(I[p+912>>2]),So=ke(Ng(p,0)),So=ke(Xe-ke(So+ke(Rf(p,0)))),Xe=ke(Cb(y,0,J)),Xe=ke(BA(y,0,ke(So-ke(Xe+ke(qE(y,0,J)))),J,w))):Xe=ke(ue),bt=El(Ge)|0,It=El(Xe)|0;do if(bt^It&&(Ks=ke(I[y+396>>2]),!(El(Ks)|0)))if(bt){Ge=ke(rr+ke(ke(Xe-an)*Ks));break}else{So=ke(an+ke(ke(Ge-rr)/Ks)),Xe=It?So:Xe;break}while(!1);It=El(Ge)|0,bt=El(Xe)|0,It|bt&&(ss=(It^1)&1,G=w>ke(0)&((G|0)!=0&It),Ge=Un?Ge:G?w:Ge,ki(y,Ge,Xe,U,Un?ss:G?2:ss,It&(bt^1)&1,Ge,Xe,0,3623,le)|0,Ge=ke(I[y+908>>2]),Ge=ke(Ge+ke(Kl(y,2,w))),Xe=ke(I[y+912>>2]),Xe=ke(Xe+ke(Kl(y,0,w)))),ki(y,Ge,Xe,U,1,1,Ge,Xe,1,3635,le)|0,zS(y,Ds)|0&&!(R_(y,Ds)|0)?(ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),So=ke(So-ke(Rf(p,Ds))),So=ke(So-ke(Jr(y,Ds,w))),So=ke(So-ke(qE(y,Ds,Un?w:J))),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So):Si=21;do if((Si|0)==21){if(!(R_(y,Ds)|0)&&(o[p+8>>2]|0)==1){ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(ke(So-ke(I[y+908+(ss<<2)>>2]))*ke(.5)),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So;break}!(R_(y,Ds)|0)&&(o[p+8>>2]|0)==2&&(ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So)}while(!1);zS(y,zi)|0&&!(R_(y,zi)|0)?(ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),So=ke(So-ke(Rf(p,zi))),So=ke(So-ke(Jr(y,zi,w))),So=ke(So-ke(qE(y,zi,Un?J:w))),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So):Si=30;do if((Si|0)==30&&!(R_(y,zi)|0)){if(($A(p,y)|0)==2){ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(ke(So-ke(I[y+908+(ss<<2)>>2]))*ke(.5)),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So;break}ss=($A(p,y)|0)==3,ss^(o[p+28>>2]|0)==2&&(ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So)}while(!1)}function DT(p,y,w){p=p|0,y=y|0,w=w|0;var G=As,J=0;J=o[976+(w<<2)>>2]|0,G=ke(I[y+908+(J<<2)>>2]),G=ke(ke(I[p+908+(J<<2)>>2])-G),G=ke(G-ke(I[y+400+(o[1040+(w<<2)>>2]<<2)>>2])),I[y+400+(o[1e3+(w<<2)>>2]<<2)>>2]=G}function aB(p){return p=p|0,(p|1|0)==1|0}function jS(p){p=p|0;var y=As;switch(o[p+56>>2]|0){case 0:case 3:{y=ke(I[p+40>>2]),y>ke(0)&((El(y)|0)^1)?p=n[(o[p+976>>2]|0)+2>>0]|0?1056:992:p=1056;break}default:p=p+52|0}return p|0}function XR(p,y){return p=p|0,y=y|0,(n[p+y>>0]|0)!=0|0}function zS(p,y){return p=p|0,y=y|0,p=p+132|0,Gn(y)|0&&o[(yg(p,5,948)|0)+4>>2]|0?p=1:p=(o[(yg(p,o[1e3+(y<<2)>>2]|0,948)|0)+4>>2]|0)!=0,p|0}function qE(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0;return p=p+132|0,Gn(y)|0&&(G=yg(p,5,948)|0,(o[G+4>>2]|0)!=0)?J=4:(G=yg(p,o[1e3+(y<<2)>>2]|0,948)|0,o[G+4>>2]|0?J=4:w=ke(0)),(J|0)==4&&(w=ke(od(G,w))),ke(w)}function X2(p,y,w){return p=p|0,y=y|0,w=ke(w),R_(p,y)|0?w=ke(Cb(p,y,w)):w=ke(-ke(qE(p,y,w))),ke(w)}function kT(p){return p=ke(p),I[E>>2]=p,o[E>>2]|0|0}function pn(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function q1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function J2(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function ey(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;if(le=p+4|0,Ge=o[le>>2]|0,J=Ge-G|0,U=J>>2,p=y+(U<<2)|0,p>>>0>>0){G=Ge;do o[G>>2]=o[p>>2],p=p+4|0,G=(o[le>>2]|0)+4|0,o[le>>2]=G;while(p>>>0>>0)}U|0&&JT(Ge+(0-U<<2)|0,y|0,J|0)|0}function up(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=y+4|0,Xe=o[Ge>>2]|0,J=o[p>>2]|0,le=w,U=le-J|0,G=Xe+(0-(U>>2)<<2)|0,o[Ge>>2]=G,(U|0)>0&&Md(G|0,J|0,U|0)|0,J=p+4|0,U=y+8|0,G=(o[J>>2]|0)-le|0,(G|0)>0&&(Md(o[U>>2]|0,w|0,G|0)|0,o[U>>2]=(o[U>>2]|0)+(G>>>2<<2)),le=o[p>>2]|0,o[p>>2]=o[Ge>>2],o[Ge>>2]=le,le=o[J>>2]|0,o[J>>2]=o[U>>2],o[U>>2]=le,le=p+8|0,w=y+12|0,p=o[le>>2]|0,o[le>>2]=o[w>>2],o[w>>2]=p,o[y>>2]=o[Ge>>2],Xe|0}function Iw(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;if(le=o[y>>2]|0,U=o[w>>2]|0,(le|0)!=(U|0)){J=p+8|0,w=((U+-4-le|0)>>>2)+1|0,p=le,G=o[J>>2]|0;do o[G>>2]=o[p>>2],G=(o[J>>2]|0)+4|0,o[J>>2]=G,p=p+4|0;while((p|0)!=(U|0));o[y>>2]=le+(w<<2)}}function cB(){FA()}function RD(){var p=0;return p=Ku(4)|0,Rd(p),p|0}function Rd(p){p=p|0,o[p>>2]=df()|0}function JR(p){p=p|0,p|0&&(ty(p),ti(p))}function ty(p){p=p|0,so(o[p>>2]|0)}function cF(p,y,w){p=p|0,y=y|0,w=w|0,$0(o[p>>2]|0,y,w)}function $1(p,y){p=p|0,y=ke(y),JE(o[p>>2]|0,y)}function $E(p,y){return p=p|0,y=y|0,XR(o[p>>2]|0,y)|0}function N_(){var p=0;return p=Ku(8)|0,e1(p,0),p|0}function e1(p,y){p=p|0,y=y|0,y?y=Mp(o[y>>2]|0)|0:y=Er()|0,o[p>>2]=y,o[p+4>>2]=0,ip(y,p)}function t1(p){p=p|0;var y=0;return y=Ku(8)|0,e1(y,p),y|0}function ry(p){p=p|0,p|0&&(xT(p),ti(p))}function xT(p){p=p|0;var y=0;ls(o[p>>2]|0),y=p+4|0,p=o[y>>2]|0,o[y>>2]=0,p|0&&(yb(p),ti(p))}function yb(p){p=p|0,r_(p)}function r_(p){p=p|0,p=o[p>>2]|0,p|0&&oo(p|0)}function Rh(p){return p=p|0,_d(p)|0}function bb(p){p=p|0;var y=0,w=0;w=p+4|0,y=o[w>>2]|0,o[w>>2]=0,y|0&&(yb(y),ti(y)),Rp(o[p>>2]|0)}function lB(p,y){p=p|0,y=y|0,LA(o[p>>2]|0,o[y>>2]|0)}function ND(p,y){p=p|0,y=y|0,nE(o[p>>2]|0,y)}function DD(p,y,w){p=p|0,y=y|0,w=+w,H2(o[p>>2]|0,y,ke(w))}function q_(p,y,w){p=p|0,y=y|0,w=+w,iE(o[p>>2]|0,y,ke(w))}function kD(p,y){p=p|0,y=y|0,Nm(o[p>>2]|0,y)}function UR(p,y){p=p|0,y=y|0,jd(o[p>>2]|0,y)}function lc(p,y){p=p|0,y=y|0,Hp(o[p>>2]|0,y)}function fh(p,y){p=p|0,y=y|0,j1(o[p>>2]|0,y)}function rf(p,y){p=p|0,y=y|0,q0(o[p>>2]|0,y)}function yI(p,y){p=p|0,y=y|0,YA(o[p>>2]|0,y)}function aE(p,y,w){p=p|0,y=y|0,w=+w,O(o[p>>2]|0,y,ke(w))}function qS(p,y,w){p=p|0,y=y|0,w=+w,K(o[p>>2]|0,y,ke(w))}function Qp(p,y){p=p|0,y=y|0,gt(o[p>>2]|0,y)}function uB(p,y){p=p|0,y=y|0,TC(o[p>>2]|0,y)}function Ih(p,y){p=p|0,y=y|0,cp(o[p>>2]|0,y)}function xC(p,y){p=p|0,y=+y,fb(o[p>>2]|0,ke(y))}function $_(p,y){p=p|0,y=+y,Kf(o[p>>2]|0,ke(y))}function r1(p,y){p=p|0,y=+y,CI(o[p>>2]|0,ke(y))}function gB(p,y){p=p|0,y=+y,pe(o[p>>2]|0,ke(y))}function hw(p,y){p=p|0,y=+y,lm(o[p>>2]|0,ke(y))}function GT(p,y){p=p|0,y=+y,ra(o[p>>2]|0,ke(y))}function b0(p,y){p=p|0,y=+y,kc(o[p>>2]|0,ke(y))}function ia(p){p=p|0,Nl(o[p>>2]|0)}function e2(p,y){p=p|0,y=+y,Bl(o[p>>2]|0,ke(y))}function yd(p,y){p=p|0,y=+y,$g(o[p>>2]|0,ke(y))}function bI(p){p=p|0,SA(o[p>>2]|0)}function ag(p,y){p=p|0,y=+y,lp(o[p>>2]|0,ke(y))}function Eb(p,y){p=p|0,y=+y,Ib(o[p>>2]|0,ke(y))}function n1(p,y){p=p|0,y=+y,wd(o[p>>2]|0,ke(y))}function U2(p,y){p=p|0,y=+y,z1(o[p>>2]|0,ke(y))}function e0(p,y){p=p|0,y=+y,RC(o[p>>2]|0,ke(y))}function n_(p,y){p=p|0,y=+y,Hm(o[p>>2]|0,ke(y))}function Xp(p,y){p=p|0,y=+y,Fg(o[p>>2]|0,ke(y))}function cE(p,y){p=p|0,y=+y,hb(o[p>>2]|0,ke(y))}function lE(p,y){p=p|0,y=+y,NC(o[p>>2]|0,ke(y))}function Ip(p,y,w){p=p|0,y=y|0,w=+w,fi(o[p>>2]|0,y,ke(w))}function Xh(p,y,w){p=p|0,y=y|0,w=+w,sr(o[p>>2]|0,y,ke(w))}function E0(p,y,w){p=p|0,y=y|0,w=+w,Yr(o[p>>2]|0,y,ke(w))}function aA(p){return p=p|0,J_(o[p>>2]|0)|0}function fu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,se(J,o[y>>2]|0,w),Jp(p,J),B=G}function Jp(p,y){p=p|0,y=y|0,dC(p,o[y+4>>2]|0,+ke(I[y>>2]))}function dC(p,y,w){p=p|0,y=y|0,w=+w,o[p>>2]=y,C[p+8>>3]=w}function uE(p){return p=p|0,HS(o[p>>2]|0)|0}function eh(p){return p=p|0,dh(o[p>>2]|0)|0}function Wf(p){return p=p|0,uC(o[p>>2]|0)|0}function Mo(p){return p=p|0,pw(o[p>>2]|0)|0}function gp(p){return p=p|0,XE(o[p>>2]|0)|0}function lF(p){return p=p|0,Ac(o[p>>2]|0)|0}function uF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,we(J,o[y>>2]|0,w),Jp(p,J),B=G}function gE(p){return p=p|0,t_(o[p>>2]|0)|0}function FT(p){return p=p|0,Mm(o[p>>2]|0)|0}function Np(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,_I(G,o[y>>2]|0),Jp(p,G),B=w}function Dm(p){return p=p|0,+ +ke(pf(o[p>>2]|0))}function Dp(p){return p=p|0,+ +ke(ef(o[p>>2]|0))}function t2(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,ca(G,o[y>>2]|0),Jp(p,G),B=w}function Ro(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,lI(G,o[y>>2]|0),Jp(p,G),B=w}function AE(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,Na(G,o[y>>2]|0),Jp(p,G),B=w}function AB(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,T_(G,o[y>>2]|0),Jp(p,G),B=w}function Xc(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,YS(G,o[y>>2]|0),Jp(p,G),B=w}function iu(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,gC(G,o[y>>2]|0),Jp(p,G),B=w}function dE(p){return p=p|0,+ +ke(Y2(o[p>>2]|0))}function yL(p,y){return p=p|0,y=y|0,+ +ke($n(o[p>>2]|0,y))}function KR(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,Lr(J,o[y>>2]|0,w),Jp(p,J),B=G}function Ou(p,y,w){p=p|0,y=y|0,w=w|0,Ml(o[p>>2]|0,o[y>>2]|0,w)}function ny(p,y){p=p|0,y=y|0,ld(o[p>>2]|0,o[y>>2]|0)}function hp(p){return p=p|0,Fs(o[p>>2]|0)|0}function Am(p){return p=p|0,p=Bo(o[p>>2]|0)|0,p?p=Rh(p)|0:p=0,p|0}function K2(p,y){return p=p|0,y=y|0,p=Wa(o[p>>2]|0,y)|0,p?p=Rh(p)|0:p=0,p|0}function i_(p,y){p=p|0,y=y|0;var w=0,G=0;G=Ku(4)|0,dB(G,y),w=p+4|0,y=o[w>>2]|0,o[w>>2]=G,y|0&&(yb(y),ti(y)),Ea(o[p>>2]|0,1)}function dB(p,y){p=p|0,y=y|0,vb(p,y)}function ZT(p,y,w,G,J,U){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=U|0;var le=0,Ge=0;le=B,B=B+16|0,Ge=le,Cx(Ge,_d(y)|0,+w,G,+J,U),I[p>>2]=ke(+C[Ge>>3]),I[p+4>>2]=ke(+C[Ge+8>>3]),B=le}function Cx(p,y,w,G,J,U){p=p|0,y=y|0,w=+w,G=G|0,J=+J,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0;le=B,B=B+32|0,It=le+8|0,bt=le+20|0,Xe=le,Ge=le+16|0,C[It>>3]=w,o[bt>>2]=G,C[Xe>>3]=J,o[Ge>>2]=U,pB(p,o[y+4>>2]|0,It,bt,Xe,Ge),B=le}function pB(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0;le=B,B=B+16|0,Ge=le,xw(Ge),y=qf(y)|0,Jh(p,y,+C[w>>3],o[G>>2]|0,+C[J>>3],o[U>>2]|0),oS(Ge),B=le}function qf(p){return p=p|0,o[p>>2]|0}function Jh(p,y,w,G,J,U){p=p|0,y=y|0,w=+w,G=G|0,J=+J,U=U|0;var le=0;le=Sb($S()|0)|0,w=+mp(w),G=r2(G)|0,J=+mp(J),i1(p,cc(0,le|0,y|0,+w,G|0,+J,r2(U)|0)|0)}function $S(){var p=0;return n[7608]|0||(fB(9120),p=7608,o[p>>2]=1,o[p+4>>2]=0),9120}function Sb(p){return p=p|0,o[p+8>>2]|0}function mp(p){return p=+p,+ +Id(p)}function r2(p){return p=p|0,Z(p)|0}function i1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+32|0,w=J,G=y,G&1?(Of(w,0),mI(G|0,w|0)|0,pE(p,w),Vd(w)):(o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2]),B=J}function Of(p,y){p=p|0,y=y|0,j(p,y),o[p+8>>2]=0,n[p+24>>0]=0}function pE(p,y){p=p|0,y=y|0,y=y+8|0,o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2]}function Vd(p){p=p|0,n[p+24>>0]=0}function j(p,y){p=p|0,y=y|0,o[p>>2]=y}function Z(p){return p=p|0,p|0}function Id(p){return p=+p,+p}function fB(p){p=p|0,Ny(p,ev()|0,4)}function ev(){return 1064}function Ny(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=Kd(y|0,w+1|0)|0}function vb(p,y){p=p|0,y=y|0,y=o[y>>2]|0,o[p>>2]=y,ac(y|0)}function xD(p){p=p|0;var y=0,w=0;w=p+4|0,y=o[w>>2]|0,o[w>>2]=0,y|0&&(yb(y),ti(y)),Ea(o[p>>2]|0,0)}function IB(p){p=p|0,us(o[p>>2]|0)}function Bb(p){return p=p|0,Ql(o[p>>2]|0)|0}function bL(p,y,w,G){p=p|0,y=+y,w=+w,G=G|0,Ym(o[p>>2]|0,ke(y),ke(w),G)}function gF(p){return p=p|0,+ +ke(U_(o[p>>2]|0))}function x(p){return p=p|0,+ +ke(kC(o[p>>2]|0))}function L(p){return p=p|0,+ +ke(DC(o[p>>2]|0))}function te(p){return p=p|0,+ +ke(qI(o[p>>2]|0))}function Re(p){return p=p|0,+ +ke(ph(o[p>>2]|0))}function Le(p){return p=p|0,+ +ke(vA(o[p>>2]|0))}function ft(p,y){p=p|0,y=y|0,C[p>>3]=+ke(U_(o[y>>2]|0)),C[p+8>>3]=+ke(kC(o[y>>2]|0)),C[p+16>>3]=+ke(DC(o[y>>2]|0)),C[p+24>>3]=+ke(qI(o[y>>2]|0)),C[p+32>>3]=+ke(ph(o[y>>2]|0)),C[p+40>>3]=+ke(vA(o[y>>2]|0))}function dr(p,y){return p=p|0,y=y|0,+ +ke(Td(o[p>>2]|0,y))}function Ur(p,y){return p=p|0,y=y|0,+ +ke(Mc(o[p>>2]|0,y))}function mi(p,y){return p=p|0,y=y|0,+ +ke(Pf(o[p>>2]|0,y))}function Vi(){return HA()|0}function Ta(){Sl(),Ho(),Wg(),cA(),th(),xn()}function Sl(){kqe(11713,4938,1)}function Ho(){kZe(10448)}function Wg(){TZe(10408)}function cA(){vqe(10324)}function th(){yye(10096)}function xn(){rn(9132)}function rn(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0,w0=0,bE=0,nh=0,x_=0,$D=0,Fw=0,mh=0,kF=0,Zw=0,KT=0,jL=0,zL=0,aS=0,mf=0,d2=0,jT=0,fv=0,Fx=0,xB=0,Iv=0,GB=0,EE=0,Um=0,mN=0,zT=0,Km=0,p2=0,hg=0,OI=0,og=0,jo=0,Yg=0,Zl=0,f2=0,MI=0,xF=0,gI=0,UA=0,lA=0,GF=0,CN=0,qT=0,I1=0,T0=0,ek=0,fo=0,Lw=0,FF=0,Hd=0,of=0,vd=0,yp=0,l_=0,Yd=0,Qg=0,hv=0;y=B,B=B+672|0,w=y+656|0,hv=y+648|0,Qg=y+640|0,Yd=y+632|0,l_=y+624|0,yp=y+616|0,vd=y+608|0,of=y+600|0,Hd=y+592|0,FF=y+584|0,Lw=y+576|0,fo=y+568|0,ek=y+560|0,T0=y+552|0,I1=y+544|0,qT=y+536|0,CN=y+528|0,GF=y+520|0,lA=y+512|0,UA=y+504|0,gI=y+496|0,xF=y+488|0,MI=y+480|0,f2=y+472|0,Zl=y+464|0,Yg=y+456|0,jo=y+448|0,og=y+440|0,OI=y+432|0,hg=y+424|0,p2=y+416|0,Km=y+408|0,zT=y+400|0,mN=y+392|0,Um=y+384|0,EE=y+376|0,GB=y+368|0,Iv=y+360|0,xB=y+352|0,Fx=y+344|0,fv=y+336|0,jT=y+328|0,d2=y+320|0,mf=y+312|0,aS=y+304|0,zL=y+296|0,jL=y+288|0,KT=y+280|0,Zw=y+272|0,kF=y+264|0,mh=y+256|0,Fw=y+248|0,$D=y+240|0,x_=y+232|0,nh=y+224|0,bE=y+216|0,w0=y+208|0,em=y+200|0,wg=y+192|0,Dg=y+184|0,Bg=y+176|0,Tc=y+168|0,fl=y+160|0,uu=y+152|0,hl=y+144|0,pi=y+136|0,ss=y+128|0,So=y+120|0,Si=y+112|0,Ds=y+104|0,Un=y+96|0,zi=y+88|0,Ks=y+80|0,an=y+72|0,rr=y+64|0,It=y+56|0,bt=y+48|0,Xe=y+40|0,Ge=y+32|0,le=y+24|0,U=y+16|0,J=y+8|0,G=y,Ci(p,3646),Po(p,3651,2)|0,ec(p,3665,2)|0,Ra(p,3682,18)|0,o[hv>>2]=19,o[hv+4>>2]=0,o[w>>2]=o[hv>>2],o[w+4>>2]=o[hv+4>>2],dc(p,3690,w)|0,o[Qg>>2]=1,o[Qg+4>>2]=0,o[w>>2]=o[Qg>>2],o[w+4>>2]=o[Qg+4>>2],Iu(p,3696,w)|0,o[Yd>>2]=2,o[Yd+4>>2]=0,o[w>>2]=o[Yd>>2],o[w+4>>2]=o[Yd+4>>2],Cl(p,3706,w)|0,o[l_>>2]=1,o[l_+4>>2]=0,o[w>>2]=o[l_>>2],o[w+4>>2]=o[l_+4>>2],wl(p,3722,w)|0,o[yp>>2]=2,o[yp+4>>2]=0,o[w>>2]=o[yp>>2],o[w+4>>2]=o[yp+4>>2],wl(p,3734,w)|0,o[vd>>2]=3,o[vd+4>>2]=0,o[w>>2]=o[vd>>2],o[w+4>>2]=o[vd+4>>2],Cl(p,3753,w)|0,o[of>>2]=4,o[of+4>>2]=0,o[w>>2]=o[of>>2],o[w+4>>2]=o[of+4>>2],Cl(p,3769,w)|0,o[Hd>>2]=5,o[Hd+4>>2]=0,o[w>>2]=o[Hd>>2],o[w+4>>2]=o[Hd+4>>2],Cl(p,3783,w)|0,o[FF>>2]=6,o[FF+4>>2]=0,o[w>>2]=o[FF>>2],o[w+4>>2]=o[FF+4>>2],Cl(p,3796,w)|0,o[Lw>>2]=7,o[Lw+4>>2]=0,o[w>>2]=o[Lw>>2],o[w+4>>2]=o[Lw+4>>2],Cl(p,3813,w)|0,o[fo>>2]=8,o[fo+4>>2]=0,o[w>>2]=o[fo>>2],o[w+4>>2]=o[fo+4>>2],Cl(p,3825,w)|0,o[ek>>2]=3,o[ek+4>>2]=0,o[w>>2]=o[ek>>2],o[w+4>>2]=o[ek+4>>2],wl(p,3843,w)|0,o[T0>>2]=4,o[T0+4>>2]=0,o[w>>2]=o[T0>>2],o[w+4>>2]=o[T0+4>>2],wl(p,3853,w)|0,o[I1>>2]=9,o[I1+4>>2]=0,o[w>>2]=o[I1>>2],o[w+4>>2]=o[I1+4>>2],Cl(p,3870,w)|0,o[qT>>2]=10,o[qT+4>>2]=0,o[w>>2]=o[qT>>2],o[w+4>>2]=o[qT+4>>2],Cl(p,3884,w)|0,o[CN>>2]=11,o[CN+4>>2]=0,o[w>>2]=o[CN>>2],o[w+4>>2]=o[CN+4>>2],Cl(p,3896,w)|0,o[GF>>2]=1,o[GF+4>>2]=0,o[w>>2]=o[GF>>2],o[w+4>>2]=o[GF+4>>2],$f(p,3907,w)|0,o[lA>>2]=2,o[lA+4>>2]=0,o[w>>2]=o[lA>>2],o[w+4>>2]=o[lA+4>>2],$f(p,3915,w)|0,o[UA>>2]=3,o[UA+4>>2]=0,o[w>>2]=o[UA>>2],o[w+4>>2]=o[UA+4>>2],$f(p,3928,w)|0,o[gI>>2]=4,o[gI+4>>2]=0,o[w>>2]=o[gI>>2],o[w+4>>2]=o[gI+4>>2],$f(p,3948,w)|0,o[xF>>2]=5,o[xF+4>>2]=0,o[w>>2]=o[xF>>2],o[w+4>>2]=o[xF+4>>2],$f(p,3960,w)|0,o[MI>>2]=6,o[MI+4>>2]=0,o[w>>2]=o[MI>>2],o[w+4>>2]=o[MI+4>>2],$f(p,3974,w)|0,o[f2>>2]=7,o[f2+4>>2]=0,o[w>>2]=o[f2>>2],o[w+4>>2]=o[f2+4>>2],$f(p,3983,w)|0,o[Zl>>2]=20,o[Zl+4>>2]=0,o[w>>2]=o[Zl>>2],o[w+4>>2]=o[Zl+4>>2],dc(p,3999,w)|0,o[Yg>>2]=8,o[Yg+4>>2]=0,o[w>>2]=o[Yg>>2],o[w+4>>2]=o[Yg+4>>2],$f(p,4012,w)|0,o[jo>>2]=9,o[jo+4>>2]=0,o[w>>2]=o[jo>>2],o[w+4>>2]=o[jo+4>>2],$f(p,4022,w)|0,o[og>>2]=21,o[og+4>>2]=0,o[w>>2]=o[og>>2],o[w+4>>2]=o[og+4>>2],dc(p,4039,w)|0,o[OI>>2]=10,o[OI+4>>2]=0,o[w>>2]=o[OI>>2],o[w+4>>2]=o[OI+4>>2],$f(p,4053,w)|0,o[hg>>2]=11,o[hg+4>>2]=0,o[w>>2]=o[hg>>2],o[w+4>>2]=o[hg+4>>2],$f(p,4065,w)|0,o[p2>>2]=12,o[p2+4>>2]=0,o[w>>2]=o[p2>>2],o[w+4>>2]=o[p2+4>>2],$f(p,4084,w)|0,o[Km>>2]=13,o[Km+4>>2]=0,o[w>>2]=o[Km>>2],o[w+4>>2]=o[Km+4>>2],$f(p,4097,w)|0,o[zT>>2]=14,o[zT+4>>2]=0,o[w>>2]=o[zT>>2],o[w+4>>2]=o[zT+4>>2],$f(p,4117,w)|0,o[mN>>2]=15,o[mN+4>>2]=0,o[w>>2]=o[mN>>2],o[w+4>>2]=o[mN+4>>2],$f(p,4129,w)|0,o[Um>>2]=16,o[Um+4>>2]=0,o[w>>2]=o[Um>>2],o[w+4>>2]=o[Um+4>>2],$f(p,4148,w)|0,o[EE>>2]=17,o[EE+4>>2]=0,o[w>>2]=o[EE>>2],o[w+4>>2]=o[EE+4>>2],$f(p,4161,w)|0,o[GB>>2]=18,o[GB+4>>2]=0,o[w>>2]=o[GB>>2],o[w+4>>2]=o[GB+4>>2],$f(p,4181,w)|0,o[Iv>>2]=5,o[Iv+4>>2]=0,o[w>>2]=o[Iv>>2],o[w+4>>2]=o[Iv+4>>2],wl(p,4196,w)|0,o[xB>>2]=6,o[xB+4>>2]=0,o[w>>2]=o[xB>>2],o[w+4>>2]=o[xB+4>>2],wl(p,4206,w)|0,o[Fx>>2]=7,o[Fx+4>>2]=0,o[w>>2]=o[Fx>>2],o[w+4>>2]=o[Fx+4>>2],wl(p,4217,w)|0,o[fv>>2]=3,o[fv+4>>2]=0,o[w>>2]=o[fv>>2],o[w+4>>2]=o[fv+4>>2],j2(p,4235,w)|0,o[jT>>2]=1,o[jT+4>>2]=0,o[w>>2]=o[jT>>2],o[w+4>>2]=o[jT+4>>2],_x(p,4251,w)|0,o[d2>>2]=4,o[d2+4>>2]=0,o[w>>2]=o[d2>>2],o[w+4>>2]=o[d2+4>>2],j2(p,4263,w)|0,o[mf>>2]=5,o[mf+4>>2]=0,o[w>>2]=o[mf>>2],o[w+4>>2]=o[mf+4>>2],j2(p,4279,w)|0,o[aS>>2]=6,o[aS+4>>2]=0,o[w>>2]=o[aS>>2],o[w+4>>2]=o[aS+4>>2],j2(p,4293,w)|0,o[zL>>2]=7,o[zL+4>>2]=0,o[w>>2]=o[zL>>2],o[w+4>>2]=o[zL+4>>2],j2(p,4306,w)|0,o[jL>>2]=8,o[jL+4>>2]=0,o[w>>2]=o[jL>>2],o[w+4>>2]=o[jL+4>>2],j2(p,4323,w)|0,o[KT>>2]=9,o[KT+4>>2]=0,o[w>>2]=o[KT>>2],o[w+4>>2]=o[KT+4>>2],j2(p,4335,w)|0,o[Zw>>2]=2,o[Zw+4>>2]=0,o[w>>2]=o[Zw>>2],o[w+4>>2]=o[Zw+4>>2],_x(p,4353,w)|0,o[kF>>2]=12,o[kF+4>>2]=0,o[w>>2]=o[kF>>2],o[w+4>>2]=o[kF+4>>2],z2(p,4363,w)|0,o[mh>>2]=1,o[mh+4>>2]=0,o[w>>2]=o[mh>>2],o[w+4>>2]=o[mh+4>>2],tv(p,4376,w)|0,o[Fw>>2]=2,o[Fw+4>>2]=0,o[w>>2]=o[Fw>>2],o[w+4>>2]=o[Fw+4>>2],tv(p,4388,w)|0,o[$D>>2]=13,o[$D+4>>2]=0,o[w>>2]=o[$D>>2],o[w+4>>2]=o[$D+4>>2],z2(p,4402,w)|0,o[x_>>2]=14,o[x_+4>>2]=0,o[w>>2]=o[x_>>2],o[w+4>>2]=o[x_+4>>2],z2(p,4411,w)|0,o[nh>>2]=15,o[nh+4>>2]=0,o[w>>2]=o[nh>>2],o[w+4>>2]=o[nh+4>>2],z2(p,4421,w)|0,o[bE>>2]=16,o[bE+4>>2]=0,o[w>>2]=o[bE>>2],o[w+4>>2]=o[bE+4>>2],z2(p,4433,w)|0,o[w0>>2]=17,o[w0+4>>2]=0,o[w>>2]=o[w0>>2],o[w+4>>2]=o[w0+4>>2],z2(p,4446,w)|0,o[em>>2]=18,o[em+4>>2]=0,o[w>>2]=o[em>>2],o[w+4>>2]=o[em+4>>2],z2(p,4458,w)|0,o[wg>>2]=3,o[wg+4>>2]=0,o[w>>2]=o[wg>>2],o[w+4>>2]=o[wg+4>>2],tv(p,4471,w)|0,o[Dg>>2]=1,o[Dg+4>>2]=0,o[w>>2]=o[Dg>>2],o[w+4>>2]=o[Dg+4>>2],Yu(p,4486,w)|0,o[Bg>>2]=10,o[Bg+4>>2]=0,o[w>>2]=o[Bg>>2],o[w+4>>2]=o[Bg+4>>2],j2(p,4496,w)|0,o[Tc>>2]=11,o[Tc+4>>2]=0,o[w>>2]=o[Tc>>2],o[w+4>>2]=o[Tc+4>>2],j2(p,4508,w)|0,o[fl>>2]=3,o[fl+4>>2]=0,o[w>>2]=o[fl>>2],o[w+4>>2]=o[fl+4>>2],_x(p,4519,w)|0,o[uu>>2]=4,o[uu+4>>2]=0,o[w>>2]=o[uu>>2],o[w+4>>2]=o[uu+4>>2],qO(p,4530,w)|0,o[hl>>2]=19,o[hl+4>>2]=0,o[w>>2]=o[hl>>2],o[w+4>>2]=o[hl+4>>2],hB(p,4542,w)|0,o[pi>>2]=12,o[pi+4>>2]=0,o[w>>2]=o[pi>>2],o[w+4>>2]=o[pi+4>>2],mw(p,4554,w)|0,o[ss>>2]=13,o[ss+4>>2]=0,o[w>>2]=o[ss>>2],o[w+4>>2]=o[ss+4>>2],AF(p,4568,w)|0,o[So>>2]=2,o[So+4>>2]=0,o[w>>2]=o[So>>2],o[w+4>>2]=o[So+4>>2],$O(p,4578,w)|0,o[Si>>2]=20,o[Si+4>>2]=0,o[w>>2]=o[Si>>2],o[w+4>>2]=o[Si+4>>2],iY(p,4587,w)|0,o[Ds>>2]=22,o[Ds+4>>2]=0,o[w>>2]=o[Ds>>2],o[w+4>>2]=o[Ds+4>>2],dc(p,4602,w)|0,o[Un>>2]=23,o[Un+4>>2]=0,o[w>>2]=o[Un>>2],o[w+4>>2]=o[Un+4>>2],dc(p,4619,w)|0,o[zi>>2]=14,o[zi+4>>2]=0,o[w>>2]=o[zi>>2],o[w+4>>2]=o[zi+4>>2],LT(p,4629,w)|0,o[Ks>>2]=1,o[Ks+4>>2]=0,o[w>>2]=o[Ks>>2],o[w+4>>2]=o[Ks+4>>2],GD(p,4637,w)|0,o[an>>2]=4,o[an+4>>2]=0,o[w>>2]=o[an>>2],o[w+4>>2]=o[an+4>>2],tv(p,4653,w)|0,o[rr>>2]=5,o[rr+4>>2]=0,o[w>>2]=o[rr>>2],o[w+4>>2]=o[rr+4>>2],tv(p,4669,w)|0,o[It>>2]=6,o[It+4>>2]=0,o[w>>2]=o[It>>2],o[w+4>>2]=o[It+4>>2],tv(p,4686,w)|0,o[bt>>2]=7,o[bt+4>>2]=0,o[w>>2]=o[bt>>2],o[w+4>>2]=o[bt+4>>2],tv(p,4701,w)|0,o[Xe>>2]=8,o[Xe+4>>2]=0,o[w>>2]=o[Xe>>2],o[w+4>>2]=o[Xe+4>>2],tv(p,4719,w)|0,o[Ge>>2]=9,o[Ge+4>>2]=0,o[w>>2]=o[Ge>>2],o[w+4>>2]=o[Ge+4>>2],tv(p,4736,w)|0,o[le>>2]=21,o[le+4>>2]=0,o[w>>2]=o[le>>2],o[w+4>>2]=o[le+4>>2],dF(p,4754,w)|0,o[U>>2]=2,o[U+4>>2]=0,o[w>>2]=o[U>>2],o[w+4>>2]=o[U+4>>2],Yu(p,4772,w)|0,o[J>>2]=3,o[J+4>>2]=0,o[w>>2]=o[J>>2],o[w+4>>2]=o[J+4>>2],Yu(p,4790,w)|0,o[G>>2]=4,o[G+4>>2]=0,o[w>>2]=o[G>>2],o[w+4>>2]=o[G+4>>2],Yu(p,4808,w)|0,B=y}function Ci(p,y){p=p|0,y=y|0;var w=0;w=lVt()|0,o[p>>2]=w,gZe(w,y),BF(o[p>>2]|0)}function Po(p,y,w){return p=p|0,y=y|0,w=w|0,Jge(p,ff(y)|0,w,0),p|0}function ec(p,y,w){return p=p|0,y=y|0,w=w|0,Yge(p,ff(y)|0,w,0),p|0}function Ra(p,y,w){return p=p|0,y=y|0,w=w|0,A1(p,ff(y)|0,w,0),p|0}function dc(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],eZe(p,y,J),B=G,p|0}function Iu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],OT(p,y,J),B=G,p|0}function Cl(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],ie(p,y,J),B=G,p|0}function wl(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],IP(p,y,J),B=G,p|0}function $f(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Yre(p,y,J),B=G,p|0}function j2(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],mF(p,y,J),B=G,p|0}function _x(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vY(p,y,J),B=G,p|0}function z2(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],qu(p,y,J),B=G,p|0}function tv(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],WT(p,y,J),B=G,p|0}function Yu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vJ(p,y,J),B=G,p|0}function qO(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Db(p,y,J),B=G,p|0}function hB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],yJ(p,y,J),B=G,p|0}function mw(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],nye(p,y,J),B=G,p|0}function AF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],sge(p,y,J),B=G,p|0}function $O(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],gY(p,y,J),B=G,p|0}function iY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],a1(p,y,J),B=G,p|0}function LT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vL(p,y,J),B=G,p|0}function GD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],ad(p,y,J),B=G,p|0}function dF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],EL(p,y,J),B=G,p|0}function EL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],FD(p,w,J,1),B=G}function ff(p){return p=p|0,p|0}function FD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=fE()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=n2(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,mB(U,G)|0,G),B=J}function fE(){var p=0,y=0;if(n[7616]|0||(Jt(9136),pu(24,9136,X|0)|0,y=7616,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9136)|0)){p=9136,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Jt(9136)}return 9136}function n2(p){return p=p|0,0}function mB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=fE()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],iy(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(sY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function bd(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0;le=B,B=B+32|0,an=le+24|0,rr=le+20|0,Xe=le+16|0,It=le+12|0,bt=le+8|0,Ge=le+4|0,Ks=le,o[rr>>2]=y,o[Xe>>2]=w,o[It>>2]=G,o[bt>>2]=J,o[Ge>>2]=U,U=p+28|0,o[Ks>>2]=o[U>>2],o[an>>2]=o[Ks>>2],s1(p+24|0,an,rr,It,bt,Xe,Ge)|0,o[U>>2]=o[o[U>>2]>>2],B=le}function s1(p,y,w,G,J,U,le){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,p=Uh(y)|0,y=Ku(24)|0,wb(y+4|0,o[w>>2]|0,o[G>>2]|0,o[J>>2]|0,o[U>>2]|0,o[le>>2]|0),o[y>>2]=o[p>>2],o[p>>2]=y,y|0}function Uh(p){return p=p|0,o[p>>2]|0}function wb(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=G,o[p+12>>2]=J,o[p+16>>2]=U}function Uu(p,y){return p=p|0,y=y|0,y|p|0}function iy(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function sY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=oY(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,jR(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],iy(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,aY(p,Ge),tt(Ge),B=bt;return}}function oY(p){return p=p|0,357913941}function jR(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function aY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function tt(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Jt(p){p=p|0,Is(p)}function kr(p){p=p|0,ui(p+24|0)}function Xr(p){return p=p|0,o[p>>2]|0}function ui(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Is(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,3,y,Rs()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Hs(){return 9228}function Rs(){return 1140}function ja(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=sl(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=Nd(y,G)|0,B=w,y|0}function ho(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=G,o[p+12>>2]=J,o[p+16>>2]=U}function sl(p){return p=p|0,(o[(fE()|0)+24>>2]|0)+(p*12|0)|0}function Nd(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+48|0,G=J,w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),qD[w&31](G,p),G=ed(G)|0,B=J,G|0}function ed(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(Og()|0)|0,G?(o1(y,G),Tb(w,y),q2(p,w),p=IE(y)|0):p=zR(p)|0,B=J,p|0}function Og(){var p=0;return n[7632]|0||(ye(9184),pu(25,9184,X|0)|0,p=7632,o[p>>2]=1,o[p+4>>2]=0),9184}function Nh(p){return p=p|0,o[p+36>>2]|0}function o1(p,y){p=p|0,y=y|0,o[p>>2]=y,o[p+4>>2]=p,o[p+8>>2]=0}function Tb(p,y){p=p|0,y=y|0,o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=0}function q2(p,y){p=p|0,y=y|0,wA(y,p,p+8|0,p+16|0,p+24|0,p+32|0,p+40|0)|0}function IE(p){return p=p|0,o[(o[p+4>>2]|0)+8>>2]|0}function zR(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;Xe=B,B=B+16|0,w=Xe+4|0,G=Xe,J=Fb(8)|0,U=J,le=Ku(48)|0,Ge=le,y=Ge+48|0;do o[Ge>>2]=o[p>>2],Ge=Ge+4|0,p=p+4|0;while((Ge|0)<(y|0));return y=U+4|0,o[y>>2]=le,Ge=Ku(8)|0,le=o[y>>2]|0,o[G>>2]=0,o[w>>2]=o[G>>2],e3(Ge,le,w),o[J>>2]=Ge,B=Xe,U|0}function e3(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1092,o[w+12>>2]=y,o[p+4>>2]=w}function IA(p){p=p|0,dz(p),ti(p)}function EI(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function zd(p){p=p|0,ti(p)}function wA(p,y,w,G,J,U,le){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,U=qR(o[p>>2]|0,y,w,G,J,U,le)|0,le=p+4|0,o[(o[le>>2]|0)+8>>2]=U,o[(o[le>>2]|0)+8>>2]|0}function qR(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0;var Ge=0,Xe=0;return Ge=B,B=B+16|0,Xe=Ge,xw(Xe),p=qf(p)|0,le=sy(p,+C[y>>3],+C[w>>3],+C[G>>3],+C[J>>3],+C[U>>3],+C[le>>3])|0,oS(Xe),B=Ge,le|0}function sy(p,y,w,G,J,U,le){p=p|0,y=+y,w=+w,G=+G,J=+J,U=+U,le=+le;var Ge=0;return Ge=Sb($2()|0)|0,y=+mp(y),w=+mp(w),G=+mp(G),J=+mp(J),U=+mp(U),Ps(0,Ge|0,p|0,+y,+w,+G,+J,+U,+ +mp(le))|0}function $2(){var p=0;return n[7624]|0||(Eo(9172),p=7624,o[p>>2]=1,o[p+4>>2]=0),9172}function Eo(p){p=p|0,Ny(p,z()|0,6)}function z(){return 1112}function ye(p){p=p|0,Hc(p)}function Ve(p){p=p|0,Ct(p+24|0),wr(p+16|0)}function Ct(p){p=p|0,Lo(p)}function wr(p){p=p|0,ai(p)}function ai(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function Lo(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function Hc(p){p=p|0;var y=0;o[p+16>>2]=0,o[p+20>>2]=0,y=p+24|0,o[y>>2]=0,o[p+28>>2]=y,o[p+36>>2]=0,n[p+40>>0]=0,n[p+41>>0]=0}function ad(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],dm(p,w,J,0),B=G}function dm(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=rv()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=nv(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,yx(U,G)|0,G),B=J}function rv(){var p=0,y=0;if(n[7640]|0||(Vo(9232),pu(26,9232,X|0)|0,y=7640,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9232)|0)){p=9232,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Vo(9232)}return 9232}function nv(p){return p=p|0,0}function yx(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=rv()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],Dd(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(ji(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function Dd(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function ji(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=SL(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,$l(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],Dd(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Ap(p,Ge),Bc(Ge),B=bt;return}}function SL(p){return p=p|0,357913941}function $l(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Ap(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Bc(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Vo(p){p=p|0,J6(p)}function iv(p){p=p|0,nf(p+24|0)}function nf(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function J6(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,cY()|0,3),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cY(){return 1144}function t3(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+16|0,le=U+8|0,Ge=U,Xe=pF(p)|0,p=o[Xe+4>>2]|0,o[Ge>>2]=o[Xe>>2],o[Ge+4>>2]=p,o[le>>2]=o[Ge>>2],o[le+4>>2]=o[Ge+4>>2],rh(y,le,w,G,J),B=U}function pF(p){return p=p|0,(o[(rv()|0)+24>>2]|0)+(p*12|0)|0}function rh(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;bt=B,B=B+16|0,le=bt+2|0,Ge=bt+1|0,Xe=bt,U=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(U=o[(o[p>>2]|0)+U>>2]|0),Cw(le,w),w=+Il(le,w),Cw(Ge,G),G=+Il(Ge,G),CB(Xe,J),Xe=Rb(Xe,J)|0,eQ[U&1](p,w,G,Xe),B=bt}function Cw(p,y){p=p|0,y=+y}function Il(p,y){return p=p|0,y=+y,+ +Cre(y)}function CB(p,y){p=p|0,y=y|0}function Rb(p,y){return p=p|0,y=y|0,$R(y)|0}function $R(p){return p=p|0,p|0}function Cre(p){return p=+p,+p}function vL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],uJ(p,w,J,1),B=G}function uJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=lY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=r3(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,U6(U,G)|0,G),B=J}function lY(){var p=0,y=0;if(n[7648]|0||(Es(9268),pu(27,9268,X|0)|0,y=7648,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9268)|0)){p=9268,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Es(9268)}return 9268}function r3(p){return p=p|0,0}function U6(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=lY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],gJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(K6(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function gJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function K6(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=uY(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,bx(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],gJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,_re(p,Ge),Ex(Ge),B=bt;return}}function uY(p){return p=p|0,357913941}function bx(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function _re(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Ex(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Es(p){p=p|0,Ua(p)}function Aa(p){p=p|0,ha(p+24|0)}function ha(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Ua(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,4,y,wc()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function wc(){return 1160}function hA(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=Pd(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=Kh(y,G)|0,B=w,y|0}function Pd(p){return p=p|0,(o[(lY()|0)+24>>2]|0)+(p*12|0)|0}function Kh(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),i2(mC[w&31](p)|0)|0}function i2(p){return p=p|0,p&1|0}function a1(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Nb(p,w,J,0),B=G}function Nb(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=sv()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=oP(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,fF(U,G)|0,G),B=J}function sv(){var p=0,y=0;if(n[7656]|0||(dJ(9304),pu(28,9304,X|0)|0,y=7656,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9304)|0)){p=9304,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));dJ(9304)}return 9304}function oP(p){return p=p|0,0}function fF(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=sv()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],ov(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(eN(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function ov(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function eN(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=AJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,j6(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],ov(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sx(p,Ge),c1(Ge),B=bt;return}}function AJ(p){return p=p|0,357913941}function j6(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sx(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c1(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function dJ(p){p=p|0,KFe(p)}function rye(p){p=p|0,pJ(p+24|0)}function pJ(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function KFe(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,ZD()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function ZD(){return 1164}function n3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=_w(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],fJ(y,J,w),B=G}function _w(p){return p=p|0,(o[(sv()|0)+24>>2]|0)+(p*12|0)|0}function fJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),vx(J,w),w=IF(J,w)|0,qD[G&31](p,w),_B(J),B=U}function vx(p,y){p=p|0,y=y|0,GC(p,y)}function IF(p,y){return p=p|0,y=y|0,p|0}function _B(p){p=p|0,yb(p)}function GC(p,y){p=p|0,y=y|0,aP(p,y)}function aP(p,y){p=p|0,y=y|0,o[p>>2]=y}function gY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],i3(p,w,J,0),B=G}function i3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=IJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=s2(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,o2(U,G)|0,G),B=J}function IJ(){var p=0,y=0;if(n[7664]|0||(BL(9340),pu(29,9340,X|0)|0,y=7664,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9340)|0)){p=9340,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));BL(9340)}return 9340}function s2(p){return p=p|0,0}function o2(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=IJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],hJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(AY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function hJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function AY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=yre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,dY(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],hJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,z6(p,Ge),q6(Ge),B=bt;return}}function yre(p){return p=p|0,357913941}function dY(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function z6(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function q6(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function BL(p){p=p|0,wL(p)}function tN(p){p=p|0,pY(p+24|0)}function pY(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function wL(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,4,y,bre()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bre(){return 1180}function LD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=ige(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=$6(y,J,w)|0,B=G,w|0}function ige(p){return p=p|0,(o[(IJ()|0)+24>>2]|0)+(p*12|0)|0}function $6(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),eS(J,w),J=rN(J,w)|0,J=mJ(uie[G&15](p,J)|0)|0,B=U,J|0}function eS(p,y){p=p|0,y=y|0}function rN(p,y){return p=p|0,y=y|0,nN(y)|0}function mJ(p){return p=p|0,p|0}function nN(p){return p=p|0,p|0}function sge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Ere(p,w,J,0),B=G}function Ere(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=e7()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=kp(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,TL(U,G)|0,G),B=J}function e7(){var p=0,y=0;if(n[7672]|0||(Ig(9376),pu(30,9376,X|0)|0,y=7672,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9376)|0)){p=9376,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Ig(9376)}return 9376}function kp(p){return p=p|0,0}function TL(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=e7()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],fY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(pC(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function fY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function pC(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=cP(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,VD(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],fY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,IY(p,Ge),Sre(Ge),B=bt;return}}function cP(p){return p=p|0,357913941}function VD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function IY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Sre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Ig(p){p=p|0,RL(p)}function fC(p){p=p|0,VI(p+24|0)}function VI(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function RL(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,bu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bu(){return 1196}function s3(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=kd(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=hY(y,G)|0,B=w,y|0}function kd(p){return p=p|0,(o[(e7()|0)+24>>2]|0)+(p*12|0)|0}function hY(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),mJ(mC[w&31](p)|0)|0}function nye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],lP(p,w,J,1),B=G}function lP(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=CJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=PI(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,xa(U,G)|0,G),B=J}function CJ(){var p=0,y=0;if(n[7680]|0||(mY(9412),pu(31,9412,X|0)|0,y=7680,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9412)|0)){p=9412,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));mY(9412)}return 9412}function PI(p){return p=p|0,0}function xa(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=CJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],yB(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(t0(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function yB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function t0(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=vre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,NL(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],yB(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,dp(p,Ge),Bx(Ge),B=bt;return}}function vre(p){return p=p|0,357913941}function NL(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function dp(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Bx(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function mY(p){p=p|0,oge(p)}function yw(p){p=p|0,uc(p+24|0)}function uc(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function oge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,Nu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Nu(){return 1200}function CY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=o3(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=uP(y,G)|0,B=w,y|0}function o3(p){return p=p|0,(o[(CJ()|0)+24>>2]|0)+(p*12|0)|0}function uP(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),_J(mC[w&31](p)|0)|0}function _J(p){return p=p|0,p|0}function yJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bJ(p,w,J,0),B=G}function bJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=gP()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Bre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,EJ(U,G)|0,G),B=J}function gP(){var p=0,y=0;if(n[7688]|0||(D_(9448),pu(32,9448,X|0)|0,y=7688,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9448)|0)){p=9448,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));D_(9448)}return 9448}function Bre(p){return p=p|0,0}function EJ(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=gP()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],wre(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(SJ(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function wre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function SJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,hF(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],wre(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,av(p,Ge),AP(Ge),B=bt;return}}function Tre(p){return p=p|0,357913941}function hF(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function av(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function AP(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function D_(p){p=p|0,sye(p)}function iye(p){p=p|0,Rre(p+24|0)}function Rre(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function sye(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,iN()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function iN(){return 1204}function age(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=un(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],_Y(y,J,w),B=G}function un(p){return p=p|0,(o[(gP()|0)+24>>2]|0)+(p*12|0)|0}function _Y(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),Ed(J,w),J=VT(J,w)|0,qD[G&31](p,J),B=U}function Ed(p,y){p=p|0,y=y|0}function VT(p,y){return p=p|0,y=y|0,sN(y)|0}function sN(p){return p=p|0,p|0}function Db(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],t7(p,w,J,0),B=G}function t7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=PT()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=DL(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,r7(U,G)|0,G),B=J}function PT(){var p=0,y=0;if(n[7696]|0||(a3(9484),pu(33,9484,X|0)|0,y=7696,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9484)|0)){p=9484,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));a3(9484)}return 9484}function DL(p){return p=p|0,0}function r7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=PT()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],n7(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(hE(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function n7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function hE(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=cge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Nre(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],n7(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,oye(p,Ge),wx(Ge),B=bt;return}}function cge(p){return p=p|0,357913941}function Nre(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function oye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function wx(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function a3(p){p=p|0,CE(p)}function mE(p){p=p|0,WI(p+24|0)}function WI(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function CE(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,Dre()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Dre(){return 1212}function lge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=jh(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],uge(y,U,w,G),B=J}function jh(p){return p=p|0,(o[(PT()|0)+24>>2]|0)+(p*12|0)|0}function uge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),Ed(U,w),U=VT(U,w)|0,eS(le,G),le=rN(le,G)|0,UT[J&15](p,U,le),B=Ge}function vJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Lc(p,w,J,1),B=G}function Lc(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=gge()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=kre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,yY(U,G)|0,G),B=J}function gge(){var p=0,y=0;if(n[7704]|0||(RJ(9520),pu(34,9520,X|0)|0,y=7704,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9520)|0)){p=9520,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));RJ(9520)}return 9520}function kre(p){return p=p|0,0}function yY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=gge()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],kL(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(BJ(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function kL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function BJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=wJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,TJ(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],kL(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,eI(p,Ge),c3(Ge),B=bt;return}}function wJ(p){return p=p|0,357913941}function TJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function eI(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c3(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function RJ(p){p=p|0,u3(p)}function l3(p){p=p|0,i7(p+24|0)}function i7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function u3(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,cv()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cv(){return 1224}function bB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;return J=B,B=B+16|0,U=J+8|0,le=J,Ge=Xm(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],G=+If(y,U,w),B=J,+G}function Xm(p){return p=p|0,(o[(gge()|0)+24>>2]|0)+(p*12|0)|0}function If(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,le=+Id(+rEe[G&7](p,J)),B=U,+le}function WT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],l1(p,w,J,1),B=G}function l1(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=bY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=s7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,IC(U,G)|0,G),B=J}function bY(){var p=0,y=0;if(n[7712]|0||(Fre(9556),pu(35,9556,X|0)|0,y=7712,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9556)|0)){p=9556,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Fre(9556)}return 9556}function s7(p){return p=p|0,0}function IC(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=bY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],xre(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(mA(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function xre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function mA(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tx(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Gre(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],xre(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,EB(p,Ge),aye(Ge),B=bt;return}}function Tx(p){return p=p|0,357913941}function Gre(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function EB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function aye(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Fre(p){p=p|0,EY(p)}function Zre(p){p=p|0,PD(p+24|0)}function PD(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function EY(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,Lre()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Lre(){return 1232}function Age(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=Cp(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=+dge(y,J),B=G,+w}function Cp(p){return p=p|0,(o[(bY()|0)+24>>2]|0)+(p*12|0)|0}function dge(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),+ +Id(+GP[w&15](p))}function qu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bw(p,w,J,1),B=G}function bw(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=WD()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=o7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,pge(U,G)|0,G),B=J}function WD(){var p=0,y=0;if(n[7720]|0||(SB(9592),pu(36,9592,X|0)|0,y=7720,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9592)|0)){p=9592,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));SB(9592)}return 9592}function o7(p){return p=p|0,0}function pge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=WD()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],NJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(jFe(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function NJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function jFe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=fge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,S0(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],NJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Ew(p,Ge),Dh(Ge),B=bt;return}}function fge(p){return p=p|0,357913941}function S0(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Ew(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Dh(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function SB(p){p=p|0,DJ(p)}function a7(p){p=p|0,dP(p+24|0)}function dP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function DJ(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,7,y,Vre()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Vre(){return 1276}function Ige(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=xL(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=c7(y,G)|0,B=w,y|0}function xL(p){return p=p|0,(o[(WD()|0)+24>>2]|0)+(p*12|0)|0}function c7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+16|0,G=J,w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),qD[w&31](G,p),G=kJ(G)|0,B=J,G|0}function kJ(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(l7()|0)|0,G?(o1(y,G),Tb(w,y),cye(p,w),p=IE(y)|0):p=xJ(p)|0,B=J,p|0}function l7(){var p=0;return n[7736]|0||(Cge(9640),pu(25,9640,X|0)|0,p=7736,o[p>>2]=1,o[p+4>>2]=0),9640}function cye(p,y){p=p|0,y=y|0,GJ(y,p,p+8|0)|0}function xJ(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(16)|0,o[Ge>>2]=o[p>>2],o[Ge+4>>2]=o[p+4>>2],o[Ge+8>>2]=o[p+8>>2],o[Ge+12>>2]=o[p+12>>2],U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],oN(p,U,J),o[G>>2]=p,B=w,y|0}function oN(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1244,o[w+12>>2]=y,o[p+4>>2]=w}function hge(p){p=p|0,dz(p),ti(p)}function Pre(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function pP(p){p=p|0,ti(p)}function GJ(p,y,w){return p=p|0,y=y|0,w=w|0,y=ms(o[p>>2]|0,y,w)|0,w=p+4|0,o[(o[w>>2]|0)+8>>2]=y,o[(o[w>>2]|0)+8>>2]|0}function ms(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;return G=B,B=B+16|0,J=G,xw(J),p=qf(p)|0,w=FJ(p,o[y>>2]|0,+C[w>>3])|0,oS(J),B=G,w|0}function FJ(p,y,w){p=p|0,y=y|0,w=+w;var G=0;return G=Sb(SY()|0)|0,y=r2(y)|0,Xa(0,G|0,p|0,y|0,+ +mp(w))|0}function SY(){var p=0;return n[7728]|0||(mge(9628),p=7728,o[p>>2]=1,o[p+4>>2]=0),9628}function mge(p){p=p|0,Ny(p,OD()|0,2)}function OD(){return 1264}function Cge(p){p=p|0,Hc(p)}function vY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],u7(p,w,J,1),B=G}function u7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=sf()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=u1(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,_ge(U,G)|0,G),B=J}function sf(){var p=0,y=0;if(n[7744]|0||(yge(9684),pu(37,9684,X|0)|0,y=7744,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9684)|0)){p=9684,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));yge(9684)}return 9684}function u1(p){return p=p|0,0}function _ge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=sf()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],BY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(lye(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function BY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function lye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=uye(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,gye(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],BY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sw(p,Ge),Wre(Ge),B=bt;return}}function uye(p){return p=p|0,357913941}function gye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Wre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function yge(p){p=p|0,g7(p)}function FL(p){p=p|0,Ore(p+24|0)}function Ore(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function g7(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,bge()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bge(){return 1280}function MD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=Mre(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=Ege(y,J,w)|0,B=G,w|0}function Mre(p){return p=p|0,(o[(sf()|0)+24>>2]|0)+(p*12|0)|0}function Ege(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return le=B,B=B+32|0,J=le,U=le+16|0,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(U,w),U=Rb(U,w)|0,UT[G&15](J,p,U),U=kJ(J)|0,B=le,U|0}function mF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],zFe(p,w,J,1),B=G}function zFe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=wY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=HD(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,CF(U,G)|0,G),B=J}function wY(){var p=0,y=0;if(n[7752]|0||(g1(9720),pu(38,9720,X|0)|0,y=7752,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9720)|0)){p=9720,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));g1(9720)}return 9720}function HD(p){return p=p|0,0}function CF(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=wY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],lv(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(TY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function lv(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function TY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=xp(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Aye(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],lv(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,fP(p,Ge),tA(Ge),B=bt;return}}function xp(p){return p=p|0,357913941}function Aye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function fP(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function tA(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function g1(p){p=p|0,Sge(p)}function Hre(p){p=p|0,A7(p+24|0)}function A7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Sge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,qFe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function qFe(){return 1288}function vge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=vw(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=ZJ(y,G)|0,B=w,y|0}function vw(p){return p=p|0,(o[(wY()|0)+24>>2]|0)+(p*12|0)|0}function ZJ(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),Z(mC[w&31](p)|0)|0}function Yre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],s_(p,w,J,0),B=G}function s_(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=RY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Qre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Bge(U,G)|0,G),B=J}function RY(){var p=0,y=0;if(n[7760]|0||(LJ(9756),pu(39,9756,X|0)|0,y=7760,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9756)|0)){p=9756,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));LJ(9756)}return 9756}function Qre(p){return p=p|0,0}function Bge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=RY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],NY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(wge(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function NY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function wge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,vB(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],NY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,_F(p,Ge),Xre(Ge),B=bt;return}}function Tge(p){return p=p|0,357913941}function vB(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function _F(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Xre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function LJ(p){p=p|0,Jre(p)}function $Fe(p){p=p|0,g3(p+24|0)}function g3(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Jre(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,VJ()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function VJ(){return 1292}function PJ(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=Ure(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Kre(y,J,w),B=G}function Ure(p){return p=p|0,(o[(RY()|0)+24>>2]|0)+(p*12|0)|0}function Kre(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),Cw(J,w),w=+Il(J,w),u$e[G&31](p,w),B=U}function IP(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Rge(p,w,J,0),B=G}function Rge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=d7()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=p7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Nge(U,G)|0,G),B=J}function d7(){var p=0,y=0;if(n[7768]|0||(kY(9792),pu(40,9792,X|0)|0,y=7768,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9792)|0)){p=9792,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));kY(9792)}return 9792}function p7(p){return p=p|0,0}function Nge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=d7()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],DY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(f7(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function DY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function f7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=tS(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Dge(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],DY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Wd(p,Ge),kge(Ge),B=bt;return}}function tS(p){return p=p|0,357913941}function Dge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Wd(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kge(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function kY(p){p=p|0,oy(p)}function xY(p){p=p|0,hP(p+24|0)}function hP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function oy(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,mo()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function mo(){return 1300}function A3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=_E(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],Bw(y,U,w,G),B=J}function _E(p){return p=p|0,(o[(d7()|0)+24>>2]|0)+(p*12|0)|0}function Bw(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),CB(U,w),U=Rb(U,w)|0,Cw(le,G),G=+Il(le,G),Aie[J&15](p,U,G),B=Ge}function ie(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],he(p,w,J,0),B=G}function he(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=ze()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Ut(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Qr(U,G)|0,G),B=J}function ze(){var p=0,y=0;if(n[7776]|0||(fc(9828),pu(41,9828,X|0)|0,y=7776,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9828)|0)){p=9828,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));fc(9828)}return 9828}function Ut(p){return p=p|0,0}function Qr(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=ze()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],kn(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(Fi(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function kn(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function Fi(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=rs(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,qs(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],kn(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,vc(p,Ge),qa(Ge),B=bt;return}}function rs(p){return p=p|0,357913941}function qs(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function vc(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function qa(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function fc(p){p=p|0,VA(p)}function vl(p){p=p|0,Zu(p+24|0)}function Zu(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function VA(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,7,y,hf()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function hf(){return 1312}function Sd(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=tI(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],rI(y,J,w),B=G}function tI(p){return p=p|0,(o[(ze()|0)+24>>2]|0)+(p*12|0)|0}function rI(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,qD[G&31](p,J),B=U}function OT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],rS(p,w,J,0),B=G}function rS(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=Dy()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Up(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,uv(U,G)|0,G),B=J}function Dy(){var p=0,y=0;if(n[7784]|0||(Fge(9864),pu(42,9864,X|0)|0,y=7784,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9864)|0)){p=9864,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Fge(9864)}return 9864}function Up(p){return p=p|0,0}function uv(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=Dy()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],ky(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(nS(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function ky(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function nS(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=jre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,xge(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],ky(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,tVt(p,Ge),Gge(Ge),B=bt;return}}function jre(p){return p=p|0,357913941}function xge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function tVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Gge(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Fge(p){p=p|0,nVt(p)}function dye(p){p=p|0,rVt(p+24|0)}function rVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function nVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,iVt()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function iVt(){return 1320}function sVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=oVt(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],aVt(y,J,w),B=G}function oVt(p){return p=p|0,(o[(Dy()|0)+24>>2]|0)+(p*12|0)|0}function aVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),ww(J,w),J=Iqe(J,w)|0,qD[G&31](p,J),B=U}function ww(p,y){p=p|0,y=y|0}function Iqe(p,y){return p=p|0,y=y|0,yF(y)|0}function yF(p){return p=p|0,p|0}function eZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],pye(p,w,J,0),B=G}function pye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=Zge()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=I7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,h7(U,G)|0,G),B=J}function Zge(){var p=0,y=0;if(n[7792]|0||(a2(9900),pu(43,9900,X|0)|0,y=7792,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9900)|0)){p=9900,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));a2(9900)}return 9900}function I7(p){return p=p|0,0}function h7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=Zge()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],fye(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(Lge(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function fye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function Lge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=tZe(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,rZe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],fye(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Iye(p,Ge),mP(Ge),B=bt;return}}function tZe(p){return p=p|0,357913941}function rZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Iye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function mP(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function a2(p){p=p|0,iZe(p)}function Vge(p){p=p|0,nZe(p+24|0)}function nZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function iZe(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,22,y,WJ()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function WJ(){return 1344}function m7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;w=B,B=B+16|0,G=w+8|0,J=w,U=Pge(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],zre(y,G),B=w}function Pge(p){return p=p|0,(o[(Zge()|0)+24>>2]|0)+(p*12|0)|0}function zre(p,y){p=p|0,y=y|0;var w=0;w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),DF[w&127](p)}function A1(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=Wge()|0,p=hC(w)|0,bd(U,y,J,p,sZe(w,G)|0,G)}function Wge(){var p=0,y=0;if(n[7800]|0||(C7(9936),pu(44,9936,X|0)|0,y=7800,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9936)|0)){p=9936,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));C7(9936)}return 9936}function hC(p){return p=p|0,p|0}function sZe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=Wge()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(qre(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Oge(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function qre(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Oge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=r0(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,oZe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,qre(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Mge(p,J),aZe(J),B=Ge;return}}function r0(p){return p=p|0,536870911}function oZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Mge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function aZe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function C7(p){p=p|0,$re(p)}function ZL(p){p=p|0,xy(p+24|0)}function xy(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function $re(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,23,y,iN()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Hge(p,y){p=p|0,y=y|0,ene(o[(cZe(p)|0)>>2]|0,y)}function cZe(p){return p=p|0,(o[(Wge()|0)+24>>2]|0)+(p<<3)|0}function ene(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,Ed(G,y),y=VT(G,y)|0,DF[p&127](y),B=w}function Yge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=OJ()|0,p=MJ(w)|0,bd(U,y,J,p,tne(w,G)|0,G)}function OJ(){var p=0,y=0;if(n[7808]|0||(rne(9972),pu(45,9972,X|0)|0,y=7808,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9972)|0)){p=9972,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));rne(9972)}return 9972}function MJ(p){return p=p|0,p|0}function tne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=OJ()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(HJ(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Rx(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function HJ(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Rx(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=hye(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,mye(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,HJ(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,YJ(p,J),MT(J),B=Ge;return}}function hye(p){return p=p|0,536870911}function mye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function YJ(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function MT(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function rne(p){p=p|0,LL(p)}function Qge(p){p=p|0,lZe(p+24|0)}function lZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function LL(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,9,y,_7()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function _7(){return 1348}function Cye(p,y){return p=p|0,y=y|0,aN(o[(d3(p)|0)>>2]|0,y)|0}function d3(p){return p=p|0,(o[(OJ()|0)+24>>2]|0)+(p<<3)|0}function aN(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,n0(G,y),y=wo(G,y)|0,y=mJ(mC[p&31](y)|0)|0,B=w,y|0}function n0(p,y){p=p|0,y=y|0}function wo(p,y){return p=p|0,y=y|0,Xge(y)|0}function Xge(p){return p=p|0,p|0}function Jge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=GY()|0,p=Uge(w)|0,bd(U,y,J,p,ay(w,G)|0,G)}function GY(){var p=0,y=0;if(n[7816]|0||(sne(10008),pu(46,10008,X|0)|0,y=7816,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10008)|0)){p=10008,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));sne(10008)}return 10008}function Uge(p){return p=p|0,p|0}function ay(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=GY()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(y7(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(CP(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function y7(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function CP(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=uZe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,hqe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,y7(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,nne(p,J),ine(J),B=Ge;return}}function uZe(p){return p=p|0,536870911}function hqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function nne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ine(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function sne(p){p=p|0,E7(p)}function b7(p){p=p|0,one(p+24|0)}function one(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function E7(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,15,y,bu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cVt(p){return p=p|0,VL(o[(FY(p)|0)>>2]|0)|0}function FY(p){return p=p|0,(o[(GY()|0)+24>>2]|0)+(p<<3)|0}function VL(p){return p=p|0,mJ(mz[p&7]()|0)|0}function lVt(){var p=0;return n[7832]|0||(AZe(10052),pu(25,10052,X|0)|0,p=7832,o[p>>2]=1,o[p+4>>2]=0),10052}function gZe(p,y){p=p|0,y=y|0,o[p>>2]=_ye()|0,o[p+4>>2]=QJ()|0,o[p+12>>2]=y,o[p+8>>2]=ane()|0,o[p+32>>2]=2}function _ye(){return 11709}function QJ(){return 1188}function ane(){return nI()|0}function p3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(cN(w),ti(w)):y|0&&(xT(y),ti(y))}function _P(p,y){return p=p|0,y=y|0,y&p|0}function cN(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function nI(){var p=0;return n[7824]|0||(o[2511]=f3()|0,o[2512]=0,p=7824,o[p>>2]=1,o[p+4>>2]=0),10044}function f3(){return 0}function AZe(p){p=p|0,Hc(p)}function yye(p){p=p|0;var y=0,w=0,G=0,J=0,U=0;y=B,B=B+32|0,w=y+24|0,U=y+16|0,J=y+8|0,G=y,yP(p,4827),Kge(p,4834,3)|0,I3(p,3682,47)|0,o[U>>2]=9,o[U+4>>2]=0,o[w>>2]=o[U>>2],o[w+4>>2]=o[U+4>>2],cne(p,4841,w)|0,o[J>>2]=1,o[J+4>>2]=0,o[w>>2]=o[J>>2],o[w+4>>2]=o[J+4>>2],uVt(p,4871,w)|0,o[G>>2]=10,o[G+4>>2]=0,o[w>>2]=o[G>>2],o[w+4>>2]=o[G+4>>2],gVt(p,4891,w)|0,B=y}function yP(p,y){p=p|0,y=y|0;var w=0;w=HL()|0,o[p>>2]=w,Rw(w,y),BF(o[p>>2]|0)}function Kge(p,y,w){return p=p|0,y=y|0,w=w|0,EZe(p,ff(y)|0,w,0),p|0}function I3(p,y,w){return p=p|0,y=y|0,w=w|0,Ine(p,ff(y)|0,w,0),p|0}function cne(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],mZe(p,y,J),B=G,p|0}function uVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],iS(p,y,J),B=G,p|0}function gVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],jge(p,y,J),B=G,p|0}function jge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],YD(p,w,J,1),B=G}function YD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=XJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=bye(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,lne(U,G)|0,G),B=J}function XJ(){var p=0,y=0;if(n[7840]|0||(B7(10100),pu(48,10100,X|0)|0,y=7840,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10100)|0)){p=10100,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));B7(10100)}return 10100}function bye(p){return p=p|0,0}function lne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=XJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],Eye(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(S7(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function Eye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function S7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=dZe(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,pZe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],Eye(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,ZY(p,Ge),v7(Ge),B=bt;return}}function dZe(p){return p=p|0,357913941}function pZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function ZY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function v7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function B7(p){p=p|0,JJ(p)}function une(p){p=p|0,LY(p+24|0)}function LY(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function JJ(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,h3()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function h3(){return 1364}function fZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=VY(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=PY(y,J,w)|0,B=G,w|0}function VY(p){return p=p|0,(o[(XJ()|0)+24>>2]|0)+(p*12|0)|0}function PY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,J=i2(uie[G&15](p,J)|0)|0,B=U,J|0}function iS(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],gne(p,w,J,0),B=G}function gne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=IZe()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=mqe(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Cqe(U,G)|0,G),B=J}function IZe(){var p=0,y=0;if(n[7848]|0||(bqe(10136),pu(49,10136,X|0)|0,y=7848,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10136)|0)){p=10136,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));bqe(10136)}return 10136}function mqe(p){return p=p|0,0}function Cqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=IZe()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],m3(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(_qe(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function m3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function _qe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=UJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Ane(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],m3(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sye(p,Ge),yqe(Ge),B=bt;return}}function UJ(p){return p=p|0,357913941}function Ane(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function yqe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function bqe(p){p=p|0,zge(p)}function vye(p){p=p|0,dne(p+24|0)}function dne(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function zge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,9,y,Bye()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Bye(){return 1372}function PL(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=WL(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bP(y,J,w),B=G}function WL(p){return p=p|0,(o[(IZe()|0)+24>>2]|0)+(p*12|0)|0}function bP(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=As;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),KJ(J,w),le=ke(hZe(J,w)),l$e[G&1](p,le),B=U}function KJ(p,y){p=p|0,y=+y}function hZe(p,y){return p=p|0,y=+y,ke(Eqe(y))}function Eqe(p){return p=+p,ke(p)}function mZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],CZe(p,w,J,0),B=G}function CZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=QD()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=bF(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,AVt(U,G)|0,G),B=J}function QD(){var p=0,y=0;if(n[7856]|0||(wye(10172),pu(50,10172,X|0)|0,y=7856,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10172)|0)){p=10172,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));wye(10172)}return 10172}function bF(p){return p=p|0,0}function AVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=QD()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],qge(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(_Ze(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function qge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function _Ze(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=C3(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Sqe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],qge(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,pne(p,Ge),gv(Ge),B=bt;return}}function C3(p){return p=p|0,357913941}function Sqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function pne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function gv(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function wye(p){p=p|0,Tye(p)}function w7(p){p=p|0,QA(p+24|0)}function QA(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Tye(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,3,y,EP()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function EP(){return 1380}function HT(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=T7(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],fne(y,U,w,G),B=J}function T7(p){return p=p|0,(o[(QD()|0)+24>>2]|0)+(p*12|0)|0}function fne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),CB(U,w),U=Rb(U,w)|0,yZe(le,G),le=Rye(le,G)|0,UT[J&15](p,U,le),B=Ge}function yZe(p,y){p=p|0,y=y|0}function Rye(p,y){return p=p|0,y=y|0,$ge(y)|0}function $ge(p){return p=p|0,(p|0)!=0|0}function Ine(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=hne()|0,p=bZe(w)|0,bd(U,y,J,p,BB(w,G)|0,G)}function hne(){var p=0,y=0;if(n[7864]|0||(v0(10208),pu(51,10208,X|0)|0,y=7864,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10208)|0)){p=10208,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));v0(10208)}return 10208}function bZe(p){return p=p|0,p|0}function BB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=hne()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(OL(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(jJ(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function OL(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function jJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=R7(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,N7(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,OL(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,mne(p,J),ML(J),B=Ge;return}}function R7(p){return p=p|0,536870911}function N7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function mne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ML(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function v0(p){p=p|0,tAe(p)}function Nye(p){p=p|0,eAe(p+24|0)}function eAe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function tAe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,24,y,Dye()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Dye(){return 1392}function WY(p,y){p=p|0,y=y|0,zJ(o[(kye(p)|0)>>2]|0,y)}function kye(p){return p=p|0,(o[(hne()|0)+24>>2]|0)+(p<<3)|0}function zJ(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,n0(G,y),y=wo(G,y)|0,DF[p&127](y),B=w}function EZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=SI()|0,p=D7(w)|0,bd(U,y,J,p,d1(w,G)|0,G)}function SI(){var p=0,y=0;if(n[7872]|0||(qJ(10244),pu(52,10244,X|0)|0,y=7872,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10244)|0)){p=10244,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));qJ(10244)}return 10244}function D7(p){return p=p|0,p|0}function d1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=SI()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Cne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(XD(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Cne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function XD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=rAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,_3(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Cne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Tw(p,J),c2(J),B=Ge;return}}function rAe(p){return p=p|0,536870911}function _3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Tw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c2(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function qJ(p){p=p|0,SZe(p)}function _ne(p){p=p|0,k7(p+24|0)}function k7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function SZe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,16,y,dVt()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function dVt(){return 1400}function nAe(p){return p=p|0,kb(o[(xye(p)|0)>>2]|0)|0}function xye(p){return p=p|0,(o[(SI()|0)+24>>2]|0)+(p<<3)|0}function kb(p){return p=p|0,Gye(mz[p&7]()|0)|0}function Gye(p){return p=p|0,p|0}function HL(){var p=0;return n[7880]|0||(x7(10280),pu(25,10280,X|0)|0,p=7880,o[p>>2]=1,o[p+4>>2]=0),10280}function Rw(p,y){p=p|0,y=y|0,o[p>>2]=Fye()|0,o[p+4>>2]=sp()|0,o[p+12>>2]=y,o[p+8>>2]=vZe()|0,o[p+32>>2]=4}function Fye(){return 11711}function sp(){return 1356}function vZe(){return nI()|0}function Zye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(Lye(w),ti(w)):y|0&&(ty(y),ti(y))}function Lye(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function x7(p){p=p|0,Hc(p)}function vqe(p){p=p|0,BZe(p,4920),yne(p)|0,bne(p)|0}function BZe(p,y){p=p|0,y=y|0;var w=0;w=l7()|0,o[p>>2]=w,iAe(w,y),BF(o[p>>2]|0)}function yne(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,Tqe()|0),p|0}function bne(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,$J()|0),p|0}function $J(){var p=0;return n[7888]|0||(Bqe(10328),pu(53,10328,X|0)|0,p=7888,o[p>>2]=1,o[p+4>>2]=0),Xr(10328)|0||Bqe(10328),10328}function EF(p,y){p=p|0,y=y|0,bd(p,0,y,0,0,0)}function Bqe(p){p=p|0,Pye(p),G7(p,10)}function Vye(p){p=p|0,wZe(p+24|0)}function wZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Pye(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,1,y,wqe()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function pVt(p,y,w){p=p|0,y=y|0,w=+w,fVt(p,y,w)}function G7(p,y){p=p|0,y=y|0,o[p+20>>2]=y}function fVt(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,U=G+8|0,Ge=G+13|0,J=G,le=G+12|0,CB(Ge,y),o[U>>2]=Rb(Ge,y)|0,Cw(le,w),C[J>>3]=+Il(le,w),IVt(p,U,J),B=G}function IVt(p,y,w){p=p|0,y=y|0,w=w|0,dC(p+8|0,o[y>>2]|0,+C[w>>3]),n[p+24>>0]=1}function wqe(){return 1404}function hVt(p,y){return p=p|0,y=+y,YT(p,y)|0}function YT(p,y){p=p|0,y=+y;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+16|0,U=G+4|0,le=G+8|0,Ge=G,J=Fb(8)|0,w=J,Xe=Ku(16)|0,CB(U,p),p=Rb(U,p)|0,Cw(le,y),dC(Xe,p,+Il(le,y)),le=w+4|0,o[le>>2]=Xe,p=Ku(8)|0,le=o[le>>2]|0,o[Ge>>2]=0,o[U>>2]=o[Ge>>2],oN(p,le,U),o[J>>2]=p,B=G,w|0}function Tqe(){var p=0;return n[7896]|0||(Ene(10364),pu(54,10364,X|0)|0,p=7896,o[p>>2]=1,o[p+4>>2]=0),Xr(10364)|0||Ene(10364),10364}function Ene(p){p=p|0,_Vt(p),G7(p,55)}function mVt(p){p=p|0,CVt(p+24|0)}function CVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function _Vt(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,4,y,EVt()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function yVt(p){p=p|0,bVt(p)}function bVt(p){p=p|0,Wye(p)}function Wye(p){p=p|0,l2(p+8|0),n[p+24>>0]=1}function l2(p){p=p|0,o[p>>2]=0,C[p+8>>3]=0}function EVt(){return 1424}function eU(){return Sne()|0}function Sne(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,G=Ku(16)|0,l2(G),U=p+4|0,o[U>>2]=G,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],oN(G,U,J),o[w>>2]=G,B=y,p|0}function iAe(p,y){p=p|0,y=y|0,o[p>>2]=vne()|0,o[p+4>>2]=Bne()|0,o[p+12>>2]=y,o[p+8>>2]=Oye()|0,o[p+32>>2]=5}function vne(){return 11710}function Bne(){return 1416}function Oye(){return F7()|0}function y3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(JD(w),ti(w)):y|0&&ti(y)}function JD(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function F7(){var p=0;return n[7904]|0||(o[2600]=Rqe()|0,o[2601]=0,p=7904,o[p>>2]=1,o[p+4>>2]=0),10400}function Rqe(){return o[357]|0}function TZe(p){p=p|0,Mye(p,4926),RZe(p)|0}function Mye(p,y){p=p|0,y=y|0;var w=0;w=Og()|0,o[p>>2]=w,Nqe(w,y),BF(o[p>>2]|0)}function RZe(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,NZe()|0),p|0}function NZe(){var p=0;return n[7912]|0||(wne(10412),pu(56,10412,X|0)|0,p=7912,o[p>>2]=1,o[p+4>>2]=0),Xr(10412)|0||wne(10412),10412}function wne(p){p=p|0,Yye(p),G7(p,57)}function sAe(p){p=p|0,Hye(p+24|0)}function Hye(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Yye(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,5,y,cAe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function oAe(p){p=p|0,aAe(p)}function aAe(p){p=p|0,SP(p)}function SP(p){p=p|0;var y=0,w=0;y=p+8|0,w=y+48|0;do o[y>>2]=0,y=y+4|0;while((y|0)<(w|0));n[p+56>>0]=1}function cAe(){return 1432}function DZe(){return lAe()|0}function lAe(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;le=B,B=B+16|0,p=le+4|0,y=le,w=Fb(8)|0,G=w,J=Ku(48)|0,U=J,Ge=U+48|0;do o[U>>2]=0,U=U+4|0;while((U|0)<(Ge|0));return U=G+4|0,o[U>>2]=J,Ge=Ku(8)|0,U=o[U>>2]|0,o[y>>2]=0,o[p>>2]=o[y>>2],e3(Ge,U,p),o[w>>2]=Ge,B=le,G|0}function Nqe(p,y){p=p|0,y=y|0,o[p>>2]=Qye()|0,o[p+4>>2]=Z7()|0,o[p+12>>2]=y,o[p+8>>2]=tU()|0,o[p+32>>2]=6}function Qye(){return 11704}function Z7(){return 1436}function tU(){return F7()|0}function lN(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(L7(w),ti(w)):y|0&&ti(y)}function L7(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function kZe(p){p=p|0,vP(p,4933),SF(p)|0,vF(p)|0}function vP(p,y){p=p|0,y=y|0;var w=0;w=b3()|0,o[p>>2]=w,p1(w,y),BF(o[p>>2]|0)}function SF(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,wVt()|0),p|0}function vF(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,OY()|0),p|0}function OY(){var p=0;return n[7920]|0||(YL(10452),pu(58,10452,X|0)|0,p=7920,o[p>>2]=1,o[p+4>>2]=0),Xr(10452)|0||YL(10452),10452}function YL(p){p=p|0,kh(p),G7(p,1)}function Xye(p){p=p|0,BP(p+24|0)}function BP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function kh(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,1,y,Jye()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function xZe(p,y,w){p=p|0,y=+y,w=+w,xb(p,y,w)}function xb(p,y,w){p=p|0,y=+y,w=+w;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,U=G+8|0,Ge=G+17|0,J=G,le=G+16|0,Cw(Ge,y),C[U>>3]=+Il(Ge,y),Cw(le,w),C[J>>3]=+Il(le,w),uAe(p,U,J),B=G}function uAe(p,y,w){p=p|0,y=y|0,w=w|0,Dqe(p+8|0,+C[y>>3],+C[w>>3]),n[p+24>>0]=1}function Dqe(p,y,w){p=p|0,y=+y,w=+w,C[p>>3]=y,C[p+8>>3]=w}function Jye(){return 1472}function SVt(p,y){return p=+p,y=+y,vVt(p,y)|0}function vVt(p,y){p=+p,y=+y;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+16|0,le=G+4|0,Ge=G+8|0,Xe=G,J=Fb(8)|0,w=J,U=Ku(16)|0,Cw(le,p),p=+Il(le,p),Cw(Ge,y),Dqe(U,p,+Il(Ge,y)),Ge=w+4|0,o[Ge>>2]=U,U=Ku(8)|0,Ge=o[Ge>>2]|0,o[Xe>>2]=0,o[le>>2]=o[Xe>>2],Uye(U,Ge,le),o[J>>2]=U,B=G,w|0}function Uye(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1452,o[w+12>>2]=y,o[p+4>>2]=w}function BVt(p){p=p|0,dz(p),ti(p)}function GZe(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function rU(p){p=p|0,ti(p)}function wVt(){var p=0;return n[7928]|0||(FZe(10488),pu(59,10488,X|0)|0,p=7928,o[p>>2]=1,o[p+4>>2]=0),Xr(10488)|0||FZe(10488),10488}function FZe(p){p=p|0,Gb(p),G7(p,60)}function Kye(p){p=p|0,ZZe(p+24|0)}function ZZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Gb(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,6,y,wP()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Ga(p){p=p|0,cg(p)}function cg(p){p=p|0,zh(p)}function zh(p){p=p|0,Tne(p+8|0),n[p+24>>0]=1}function Tne(p){p=p|0,o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,o[p+12>>2]=0}function wP(){return 1492}function jye(){return Nw()|0}function Nw(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,G=Ku(16)|0,Tne(G),U=p+4|0,o[U>>2]=G,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],Uye(G,U,J),o[w>>2]=G,B=y,p|0}function b3(){var p=0;return n[7936]|0||(Nx(10524),pu(25,10524,X|0)|0,p=7936,o[p>>2]=1,o[p+4>>2]=0),10524}function p1(p,y){p=p|0,y=y|0,o[p>>2]=MY()|0,o[p+4>>2]=LZe()|0,o[p+12>>2]=y,o[p+8>>2]=VZe()|0,o[p+32>>2]=7}function MY(){return 11700}function LZe(){return 1484}function VZe(){return F7()|0}function o_(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(PZe(w),ti(w)):y|0&&ti(y)}function PZe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function Nx(p){p=p|0,Hc(p)}function kqe(p,y,w){p=p|0,y=y|0,w=w|0,p=ff(y)|0,y=TVt(w)|0,w=xqe(w,0)|0,QZe(p,y,w,WZe()|0,0)}function TVt(p){return p=p|0,p|0}function xqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=WZe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(gAe(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(AAe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function WZe(){var p=0,y=0;if(n[7944]|0||(zye(10568),pu(61,10568,X|0)|0,y=7944,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10568)|0)){p=10568,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));zye(10568)}return 10568}function zye(p){p=p|0,HY(p)}function qye(p){p=p|0,Dw(p+24|0)}function Dw(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function HY(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,17,y,Nu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Rne(p){return p=p|0,V7(o[(OZe(p)|0)>>2]|0)|0}function OZe(p){return p=p|0,(o[(WZe()|0)+24>>2]|0)+(p<<3)|0}function V7(p){return p=p|0,_J(mz[p&7]()|0)|0}function gAe(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function AAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=Nne(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,UD(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,gAe(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,$ye(p,J),ebe(J),B=Ge;return}}function Nne(p){return p=p|0,536870911}function UD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function $ye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ebe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function Jm(){Dx()}function Dx(){dAe(10604)}function dAe(p){p=p|0,Od(p,4955)}function Od(p,y){p=p|0,y=y|0;var w=0;w=B0()|0,o[p>>2]=w,Dne(w,y),BF(o[p>>2]|0)}function B0(){var p=0;return n[7952]|0||(W7(10612),pu(25,10612,X|0)|0,p=7952,o[p>>2]=1,o[p+4>>2]=0),10612}function Dne(p,y){p=p|0,y=y|0,o[p>>2]=MZe()|0,o[p+4>>2]=pAe()|0,o[p+12>>2]=y,o[p+8>>2]=HZe()|0,o[p+32>>2]=8}function BF(p){p=p|0;var y=0,w=0;y=B,B=B+16|0,w=y,TP()|0,o[w>>2]=p,wF(10608,w),B=y}function TP(){return n[11714]|0||(o[2652]=0,pu(62,10608,X|0)|0,n[11714]=1),10608}function wF(p,y){p=p|0,y=y|0;var w=0;w=Ku(8)|0,o[w+4>>2]=o[y>>2],o[w>>2]=o[p>>2],o[p>>2]=w}function P7(p){p=p|0,tbe(p)}function tbe(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function MZe(){return 11715}function pAe(){return 1496}function HZe(){return nI()|0}function rbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(YZe(w),ti(w)):y|0&&ti(y)}function YZe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function W7(p){p=p|0,Hc(p)}function RVt(p,y){p=p|0,y=y|0;var w=0,G=0;TP()|0,w=o[2652]|0;e:do if(w|0){for(;G=o[w+4>>2]|0,!(G|0&&!(jqe(O7(G)|0,p)|0));)if(w=o[w>>2]|0,!w)break e;NVt(G,y)}while(!1)}function O7(p){return p=p|0,o[p+12>>2]|0}function NVt(p,y){p=p|0,y=y|0;var w=0;p=p+36|0,w=o[p>>2]|0,w|0&&(yb(w),ti(w)),w=Ku(4)|0,dB(w,y),o[p>>2]=w}function RP(){return n[11716]|0||(o[2664]=0,pu(63,10656,X|0)|0,n[11716]=1),10656}function nbe(){var p=0;return n[11717]|0?p=o[2665]|0:(DVt(),o[2665]=1504,n[11717]=1,p=1504),p|0}function DVt(){n[11740]|0||(n[11718]=Uu(Uu(8,0)|0,0)|0,n[11719]=Uu(Uu(0,0)|0,0)|0,n[11720]=Uu(Uu(0,16)|0,0)|0,n[11721]=Uu(Uu(8,0)|0,0)|0,n[11722]=Uu(Uu(0,0)|0,0)|0,n[11723]=Uu(Uu(8,0)|0,0)|0,n[11724]=Uu(Uu(0,0)|0,0)|0,n[11725]=Uu(Uu(8,0)|0,0)|0,n[11726]=Uu(Uu(0,0)|0,0)|0,n[11727]=Uu(Uu(8,0)|0,0)|0,n[11728]=Uu(Uu(0,0)|0,0)|0,n[11729]=Uu(Uu(0,0)|0,32)|0,n[11730]=Uu(Uu(0,0)|0,32)|0,n[11740]=1)}function ibe(){return 1572}function QZe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0;U=B,B=B+32|0,It=U+16|0,bt=U+12|0,Xe=U+8|0,Ge=U+4|0,le=U,o[It>>2]=p,o[bt>>2]=y,o[Xe>>2]=w,o[Ge>>2]=G,o[le>>2]=J,RP()|0,sbe(10656,It,bt,Xe,Ge,le),B=U}function sbe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0;le=Ku(24)|0,wb(le+4|0,o[y>>2]|0,o[w>>2]|0,o[G>>2]|0,o[J>>2]|0,o[U>>2]|0),o[le>>2]=o[p>>2],o[p>>2]=le}function E3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0;if(So=B,B=B+32|0,zi=So+20|0,Un=So+8|0,Ds=So+4|0,Si=So,y=o[y>>2]|0,y|0){Ks=zi+4|0,Xe=zi+8|0,bt=Un+4|0,It=Un+8|0,rr=Un+8|0,an=zi+8|0;do{if(le=y+4|0,Ge=nU(le)|0,Ge|0){if(J=f1(Ge)|0,o[zi>>2]=0,o[Ks>>2]=0,o[Xe>>2]=0,G=(fAe(Ge)|0)+1|0,kVt(zi,G),G|0)for(;G=G+-1|0,RB(Un,o[J>>2]|0),U=o[Ks>>2]|0,U>>>0<(o[an>>2]|0)>>>0?(o[U>>2]=o[Un>>2],o[Ks>>2]=(o[Ks>>2]|0)+4):uN(zi,Un),G;)J=J+4|0;G=Gy(Ge)|0,o[Un>>2]=0,o[bt>>2]=0,o[It>>2]=0;e:do if(o[G>>2]|0)for(J=0,U=0;;){if((J|0)==(U|0)?IAe(Un,G):(o[J>>2]=o[G>>2],o[bt>>2]=(o[bt>>2]|0)+4),G=G+4|0,!(o[G>>2]|0))break e;J=o[bt>>2]|0,U=o[rr>>2]|0}while(!1);o[Ds>>2]=KD(le)|0,o[Si>>2]=Xr(Ge)|0,jD(w,p,Ds,Si,zi,Un),Av(Un),QL(zi)}y=o[y>>2]|0}while(y|0)}B=So}function nU(p){return p=p|0,o[p+12>>2]|0}function f1(p){return p=p|0,o[p+12>>2]|0}function fAe(p){return p=p|0,o[p+16>>2]|0}function kVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+32|0,w=J,G=o[p>>2]|0,(o[p+8>>2]|0)-G>>2>>>0>>0&&(lbe(w,y,(o[p+4>>2]|0)-G>>2,p+8|0),AN(p,w),la(w)),B=J}function uN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;if(le=B,B=B+32|0,w=le,G=p+4|0,J=((o[G>>2]|0)-(o[p>>2]|0)>>2)+1|0,U=_Ae(p)|0,U>>>0>>0)me(p);else{Ge=o[p>>2]|0,bt=(o[p+8>>2]|0)-Ge|0,Xe=bt>>1,lbe(w,bt>>2>>>0>>1>>>0?Xe>>>0>>0?J:Xe:U,(o[G>>2]|0)-Ge>>2,p+8|0),U=w+8|0,o[o[U>>2]>>2]=o[y>>2],o[U>>2]=(o[U>>2]|0)+4,AN(p,w),la(w),B=le;return}}function Gy(p){return p=p|0,o[p+8>>2]|0}function IAe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;if(le=B,B=B+32|0,w=le,G=p+4|0,J=((o[G>>2]|0)-(o[p>>2]|0)>>2)+1|0,U=B3(p)|0,U>>>0>>0)me(p);else{Ge=o[p>>2]|0,bt=(o[p+8>>2]|0)-Ge|0,Xe=bt>>1,Fy(w,bt>>2>>>0>>1>>>0?Xe>>>0>>0?J:Xe:U,(o[G>>2]|0)-Ge>>2,p+8|0),U=w+8|0,o[o[U>>2]>>2]=o[y>>2],o[U>>2]=(o[U>>2]|0)+4,gN(p,w),Q7(w),B=le;return}}function KD(p){return p=p|0,o[p>>2]|0}function jD(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,S3(p,y,w,G,J,U)}function Av(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function QL(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function S3(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+48|0,It=le+40|0,Ge=le+32|0,rr=le+24|0,Xe=le+12|0,bt=le,xw(Ge),p=qf(p)|0,o[rr>>2]=o[y>>2],w=o[w>>2]|0,G=o[G>>2]|0,M7(Xe,J),XZe(bt,U),o[It>>2]=o[rr>>2],JZe(p,It,w,G,Xe,bt),Av(bt),QL(Xe),oS(Ge),B=le}function M7(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(Y7(p,G),xVt(p,o[y>>2]|0,o[w>>2]|0,G))}function XZe(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(sU(p,G),CAe(p,o[y>>2]|0,o[w>>2]|0,G))}function JZe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+32|0,It=le+28|0,rr=le+24|0,Ge=le+12|0,Xe=le,bt=Sb(kne()|0)|0,o[rr>>2]=o[y>>2],o[It>>2]=o[rr>>2],y=v3(It)|0,w=UZe(w)|0,G=hAe(G)|0,o[Ge>>2]=o[J>>2],It=J+4|0,o[Ge+4>>2]=o[It>>2],rr=J+8|0,o[Ge+8>>2]=o[rr>>2],o[rr>>2]=0,o[It>>2]=0,o[J>>2]=0,J=yE(Ge)|0,o[Xe>>2]=o[U>>2],It=U+4|0,o[Xe+4>>2]=o[It>>2],rr=U+8|0,o[Xe+8>>2]=o[rr>>2],o[rr>>2]=0,o[It>>2]=0,o[U>>2]=0,Yl(0,bt|0,p|0,y|0,w|0,G|0,J|0,H7(Xe)|0)|0,Av(Xe),QL(Ge),B=le}function kne(){var p=0;return n[7968]|0||(u2(10708),p=7968,o[p>>2]=1,o[p+4>>2]=0),10708}function v3(p){return p=p|0,mAe(p)|0}function UZe(p){return p=p|0,obe(p)|0}function hAe(p){return p=p|0,_J(p)|0}function yE(p){return p=p|0,cy(p)|0}function H7(p){return p=p|0,KZe(p)|0}function KZe(p){p=p|0;var y=0,w=0,G=0;if(G=(o[p+4>>2]|0)-(o[p>>2]|0)|0,w=G>>2,G=Fb(G+4|0)|0,o[G>>2]=w,w|0){y=0;do o[G+4+(y<<2)>>2]=obe(o[(o[p>>2]|0)+(y<<2)>>2]|0)|0,y=y+1|0;while((y|0)!=(w|0))}return G|0}function obe(p){return p=p|0,p|0}function cy(p){p=p|0;var y=0,w=0,G=0;if(G=(o[p+4>>2]|0)-(o[p>>2]|0)|0,w=G>>2,G=Fb(G+4|0)|0,o[G>>2]=w,w|0){y=0;do o[G+4+(y<<2)>>2]=mAe((o[p>>2]|0)+(y<<2)|0)|0,y=y+1|0;while((y|0)!=(w|0))}return G|0}function mAe(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(Gqe()|0)|0,G?(o1(y,G),Tb(w,y),Lbe(p,w),p=IE(y)|0):p=abe(p)|0,B=J,p|0}function Gqe(){var p=0;return n[7960]|0||(iI(10664),pu(25,10664,X|0)|0,p=7960,o[p>>2]=1,o[p+4>>2]=0),10664}function abe(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(4)|0,o[Ge>>2]=o[p>>2],U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],iU(p,U,J),o[G>>2]=p,B=w,y|0}function iU(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1656,o[w+12>>2]=y,o[p+4>>2]=w}function xne(p){p=p|0,dz(p),ti(p)}function cbe(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function dv(p){p=p|0,ti(p)}function iI(p){p=p|0,Hc(p)}function u2(p){p=p|0,Ny(p,FC()|0,5)}function FC(){return 1676}function sU(p,y){p=p|0,y=y|0;var w=0;if((B3(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function CAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function B3(p){return p=p|0,1073741823}function Y7(p,y){p=p|0,y=y|0;var w=0;if((_Ae(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function xVt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function _Ae(p){return p=p|0,1073741823}function Fy(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function gN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Q7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function lbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function AN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function la(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function yAe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;if(Un=B,B=B+32|0,It=Un+20|0,rr=Un+12|0,bt=Un+16|0,an=Un+4|0,Ks=Un,zi=Un+8|0,Ge=nbe()|0,U=o[Ge>>2]|0,le=o[U>>2]|0,le|0)for(Xe=o[Ge+8>>2]|0,Ge=o[Ge+4>>2]|0;RB(It,le),jZe(p,It,Ge,Xe),U=U+4|0,le=o[U>>2]|0,le;)Xe=Xe+1|0,Ge=Ge+1|0;if(U=ibe()|0,le=o[U>>2]|0,le|0)do RB(It,le),o[rr>>2]=o[U+4>>2],ube(y,It,rr),U=U+8|0,le=o[U>>2]|0;while(le|0);if(U=o[(TP()|0)>>2]|0,U|0)do y=o[U+4>>2]|0,RB(It,o[(Zy(y)|0)>>2]|0),o[rr>>2]=O7(y)|0,YY(w,It,rr),U=o[U>>2]|0;while(U|0);if(RB(bt,0),U=RP()|0,o[It>>2]=o[bt>>2],E3(It,U,J),U=o[(TP()|0)>>2]|0,U|0){p=It+4|0,y=It+8|0,w=It+8|0;do{if(Xe=o[U+4>>2]|0,RB(rr,o[(Zy(Xe)|0)>>2]|0),_p(an,bAe(Xe)|0),le=o[an>>2]|0,le|0){o[It>>2]=0,o[p>>2]=0,o[y>>2]=0;do RB(Ks,o[(Zy(o[le+4>>2]|0)|0)>>2]|0),Ge=o[p>>2]|0,Ge>>>0<(o[w>>2]|0)>>>0?(o[Ge>>2]=o[Ks>>2],o[p>>2]=(o[p>>2]|0)+4):uN(It,Ks),le=o[le>>2]|0;while(le|0);gbe(G,rr,It),QL(It)}o[zi>>2]=o[rr>>2],bt=Gne(Xe)|0,o[It>>2]=o[zi>>2],E3(It,bt,J),wr(an),U=o[U>>2]|0}while(U|0)}B=Un}function jZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,qZe(p,y,w,G)}function ube(p,y,w){p=p|0,y=y|0,w=w|0,Lqe(p,y,w)}function Zy(p){return p=p|0,p|0}function YY(p,y,w){p=p|0,y=y|0,w=w|0,LVt(p,y,w)}function bAe(p){return p=p|0,p+16|0}function _p(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;if(U=B,B=B+16|0,J=U+8|0,w=U,o[p>>2]=0,G=o[y>>2]|0,o[J>>2]=G,o[w>>2]=p,w=ZVt(w)|0,G|0){if(G=Ku(12)|0,le=(Abe(J)|0)+4|0,p=o[le+4>>2]|0,y=G+4|0,o[y>>2]=o[le>>2],o[y+4>>2]=p,y=o[o[J>>2]>>2]|0,o[J>>2]=y,!y)p=G;else for(y=G;p=Ku(12)|0,Xe=(Abe(J)|0)+4|0,Ge=o[Xe+4>>2]|0,le=p+4|0,o[le>>2]=o[Xe>>2],o[le+4>>2]=Ge,o[y>>2]=p,le=o[o[J>>2]>>2]|0,o[J>>2]=le,le;)y=p;o[p>>2]=o[w>>2],o[w>>2]=G}B=U}function gbe(p,y,w){p=p|0,y=y|0,w=w|0,oU(p,y,w)}function Gne(p){return p=p|0,p+24|0}function oU(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,le=G+24|0,J=G+16|0,Ge=G+12|0,U=G,xw(J),p=qf(p)|0,o[Ge>>2]=o[y>>2],M7(U,w),o[le>>2]=o[Ge>>2],zZe(p,le,U),QL(U),oS(J),B=G}function zZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,le=G+16|0,Ge=G+12|0,J=G,U=Sb(aU()|0)|0,o[Ge>>2]=o[y>>2],o[le>>2]=o[Ge>>2],y=v3(le)|0,o[J>>2]=o[w>>2],le=w+4|0,o[J+4>>2]=o[le>>2],Ge=w+8|0,o[J+8>>2]=o[Ge>>2],o[Ge>>2]=0,o[le>>2]=0,o[w>>2]=0,Ei(0,U|0,p|0,y|0,yE(J)|0)|0,QL(J),B=G}function aU(){var p=0;return n[7976]|0||(GVt(10720),p=7976,o[p>>2]=1,o[p+4>>2]=0),10720}function GVt(p){p=p|0,Ny(p,FVt()|0,2)}function FVt(){return 1732}function ZVt(p){return p=p|0,o[p>>2]|0}function Abe(p){return p=p|0,o[p>>2]|0}function LVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+32|0,U=G+16|0,J=G+8|0,le=G,xw(J),p=qf(p)|0,o[le>>2]=o[y>>2],w=o[w>>2]|0,o[U>>2]=o[le>>2],Fqe(p,U,w),oS(J),B=G}function Fqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,U=G+4|0,le=G,J=Sb(VVt()|0)|0,o[le>>2]=o[y>>2],o[U>>2]=o[le>>2],y=v3(U)|0,Ei(0,J|0,p|0,y|0,UZe(w)|0)|0,B=G}function VVt(){var p=0;return n[7984]|0||(ZC(10732),p=7984,o[p>>2]=1,o[p+4>>2]=0),10732}function ZC(p){p=p|0,Ny(p,Zqe()|0,2)}function Zqe(){return 1744}function Lqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+32|0,U=G+16|0,J=G+8|0,le=G,xw(J),p=qf(p)|0,o[le>>2]=o[y>>2],w=o[w>>2]|0,o[U>>2]=o[le>>2],Fqe(p,U,w),oS(J),B=G}function qZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+32|0,le=J+16|0,U=J+8|0,Ge=J,xw(U),p=qf(p)|0,o[Ge>>2]=o[y>>2],w=n[w>>0]|0,G=n[G>>0]|0,o[le>>2]=o[Ge>>2],dN(p,le,w,G),oS(U),B=J}function dN(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,le=J+4|0,Ge=J,U=Sb(EAe()|0)|0,o[Ge>>2]=o[y>>2],o[le>>2]=o[Ge>>2],y=v3(le)|0,w=cU(w)|0,oA(0,U|0,p|0,y|0,w|0,cU(G)|0)|0,B=J}function EAe(){var p=0;return n[7992]|0||(Bu(10744),p=7992,o[p>>2]=1,o[p+4>>2]=0),10744}function cU(p){return p=p|0,$Ze(p)|0}function $Ze(p){return p=p|0,p&255|0}function Bu(p){p=p|0,Ny(p,QY()|0,3)}function QY(){return 1756}function PVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;switch(an=B,B=B+32|0,Ge=an+8|0,Xe=an+4|0,bt=an+20|0,It=an,aP(p,0),G=Zbe(y)|0,o[Ge>>2]=0,rr=Ge+4|0,o[rr>>2]=0,o[Ge+8>>2]=0,G<<24>>24){case 0:{n[bt>>0]=0,Vqe(Xe,w,bt),XL(p,Xe)|0,r_(Xe);break}case 8:{rr=YAe(y)|0,n[bt>>0]=8,RB(It,o[rr+4>>2]|0),qh(Xe,w,bt,It,rr+8|0),XL(p,Xe)|0,r_(Xe);break}case 9:{if(U=YAe(y)|0,y=o[U+4>>2]|0,y|0)for(le=Ge+8|0,J=U+12|0;y=y+-1|0,RB(Xe,o[J>>2]|0),G=o[rr>>2]|0,G>>>0<(o[le>>2]|0)>>>0?(o[G>>2]=o[Xe>>2],o[rr>>2]=(o[rr>>2]|0)+4):uN(Ge,Xe),y;)J=J+4|0;n[bt>>0]=9,RB(It,o[U+8>>2]|0),XY(Xe,w,bt,It,Ge),XL(p,Xe)|0,r_(Xe);break}default:rr=YAe(y)|0,n[bt>>0]=G,RB(It,o[rr+4>>2]|0),Nf(Xe,w,bt,It),XL(p,Xe)|0,r_(Xe)}QL(Ge),B=an}function Vqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,xw(J),y=qf(y)|0,fbe(p,y,n[w>>0]|0),oS(J),B=G}function XL(p,y){p=p|0,y=y|0;var w=0;return w=o[p>>2]|0,w|0&&oo(w|0),o[p>>2]=o[y>>2],o[y>>2]=0,p|0}function qh(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+32|0,Ge=U+16|0,le=U+8|0,Xe=U,xw(le),y=qf(y)|0,w=n[w>>0]|0,o[Xe>>2]=o[G>>2],J=o[J>>2]|0,o[Ge>>2]=o[Xe>>2],Pqe(p,y,w,Ge,J),oS(le),B=U}function XY(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;U=B,B=B+32|0,Xe=U+24|0,le=U+16|0,bt=U+12|0,Ge=U,xw(le),y=qf(y)|0,w=n[w>>0]|0,o[bt>>2]=o[G>>2],M7(Ge,J),o[Xe>>2]=o[bt>>2],eLe(p,y,w,Xe,Ge),QL(Ge),oS(le),B=U}function Nf(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+32|0,le=J+16|0,U=J+8|0,Ge=J,xw(U),y=qf(y)|0,w=n[w>>0]|0,o[Ge>>2]=o[G>>2],o[le>>2]=o[Ge>>2],SAe(p,y,w,le),oS(U),B=J}function SAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+4|0,Ge=J,le=Sb(wu()|0)|0,w=cU(w)|0,o[Ge>>2]=o[G>>2],o[U>>2]=o[Ge>>2],Fne(p,Ei(0,le|0,y|0,w|0,v3(U)|0)|0),B=J}function wu(){var p=0;return n[8e3]|0||(dbe(10756),p=8e3,o[p>>2]=1,o[p+4>>2]=0),10756}function Fne(p,y){p=p|0,y=y|0,aP(p,y)}function dbe(p){p=p|0,Ny(p,X7()|0,2)}function X7(){return 1772}function eLe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;U=B,B=B+32|0,Xe=U+16|0,bt=U+12|0,le=U,Ge=Sb(WVt()|0)|0,w=cU(w)|0,o[bt>>2]=o[G>>2],o[Xe>>2]=o[bt>>2],G=v3(Xe)|0,o[le>>2]=o[J>>2],Xe=J+4|0,o[le+4>>2]=o[Xe>>2],bt=J+8|0,o[le+8>>2]=o[bt>>2],o[bt>>2]=0,o[Xe>>2]=0,o[J>>2]=0,Fne(p,oA(0,Ge|0,y|0,w|0,G|0,yE(le)|0)|0),QL(le),B=U}function WVt(){var p=0;return n[8008]|0||(OVt(10768),p=8008,o[p>>2]=1,o[p+4>>2]=0),10768}function OVt(p){p=p|0,Ny(p,MVt()|0,3)}function MVt(){return 1784}function Pqe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+16|0,Ge=U+4|0,Xe=U,le=Sb(Wqe()|0)|0,w=cU(w)|0,o[Xe>>2]=o[G>>2],o[Ge>>2]=o[Xe>>2],G=v3(Ge)|0,Fne(p,oA(0,le|0,y|0,w|0,G|0,hAe(J)|0)|0),B=U}function Wqe(){var p=0;return n[8016]|0||(vAe(10780),p=8016,o[p>>2]=1,o[p+4>>2]=0),10780}function vAe(p){p=p|0,Ny(p,pbe()|0,3)}function pbe(){return 1800}function fbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=Sb(HVt()|0)|0,Fne(p,Ki(0,G|0,y|0,cU(w)|0)|0)}function HVt(){var p=0;return n[8024]|0||(Zne(10792),p=8024,o[p>>2]=1,o[p+4>>2]=0),10792}function Zne(p){p=p|0,Ny(p,Oqe()|0,1)}function Oqe(){return 1816}function YVt(){QVt(),Lne(),Ibe()}function QVt(){o[2702]=pz(65536)|0}function Lne(){nLe(10856)}function Ibe(){Xqr(10816)}function Xqr(p){p=p|0,LC(p,5044),J7(p)|0}function LC(p,y){p=p|0,y=y|0;var w=0;w=Gqe()|0,o[p>>2]=w,DP(w,y),BF(o[p>>2]|0)}function J7(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,tLe()|0),p|0}function tLe(){var p=0;return n[8032]|0||(Mg(10820),pu(64,10820,X|0)|0,p=8032,o[p>>2]=1,o[p+4>>2]=0),Xr(10820)|0||Mg(10820),10820}function Mg(p){p=p|0,rLe(p),G7(p,25)}function i0(p){p=p|0,k_(p+24|0)}function k_(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function rLe(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,18,y,Vne()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function sS(p,y){p=p|0,y=y|0,kw(p,y)}function kw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;w=B,B=B+16|0,G=w,J=w+4|0,eS(J,y),o[G>>2]=rN(J,y)|0,JY(p,G),B=w}function JY(p,y){p=p|0,y=y|0,U7(p+4|0,o[y>>2]|0),n[p+8>>0]=1}function U7(p,y){p=p|0,y=y|0,o[p>>2]=y}function Vne(){return 1824}function NP(p){return p=p|0,Ly(p)|0}function Ly(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(4)|0,eS(J,p),U7(Ge,rN(J,p)|0),U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],iU(p,U,J),o[G>>2]=p,B=w,y|0}function Fb(p){p=p|0;var y=0,w=0;return p=p+7&-8,p>>>0<=32768&&(y=o[2701]|0,p>>>0<=(65536-y|0)>>>0)?(w=(o[2702]|0)+y|0,o[2701]=y+p,p=w):(p=pz(p+8|0)|0,o[p>>2]=o[2703],o[2703]=p,p=p+8|0),p|0}function DP(p,y){p=p|0,y=y|0,o[p>>2]=BAe()|0,o[p+4>>2]=TF()|0,o[p+12>>2]=y,o[p+8>>2]=Pne()|0,o[p+32>>2]=9}function BAe(){return 11744}function TF(){return 1832}function Pne(){return F7()|0}function Wne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(wAe(w),ti(w)):y|0&&ti(y)}function wAe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function nLe(p){p=p|0,iLe(p,5052),lU(p)|0,sLe(p,5058,26)|0,a_(p,5069,1)|0,TAe(p,5077,10)|0,hbe(p,5087,19)|0,oLe(p,5094,27)|0}function iLe(p,y){p=p|0,y=y|0;var w=0;w=az()|0,o[p>>2]=w,MAe(w,y),BF(o[p>>2]|0)}function lU(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,ELe()|0),p|0}function sLe(p,y,w){return p=p|0,y=y|0,w=w|0,Dbe(p,ff(y)|0,w,0),p|0}function a_(p,y,w){return p=p|0,y=y|0,w=w|0,Xne(p,ff(y)|0,w,0),p|0}function TAe(p,y,w){return p=p|0,y=y|0,w=w|0,$Vt(p,ff(y)|0,w,0),p|0}function hbe(p,y,w){return p=p|0,y=y|0,w=w|0,Qqe(p,ff(y)|0,w,0),p|0}function mbe(p,y){p=p|0,y=y|0;var w=0,G=0;e:for(;;){for(w=o[2703]|0;;){if((w|0)==(y|0))break e;if(G=o[w>>2]|0,o[2703]=G,!w)w=G;else break}ti(w)}o[2701]=p}function oLe(p,y,w){return p=p|0,y=y|0,w=w|0,aLe(p,ff(y)|0,w,0),p|0}function aLe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=K7()|0,p=RAe(w)|0,bd(U,y,J,p,One(w,G)|0,G)}function K7(){var p=0,y=0;if(n[8040]|0||(NAe(10860),pu(65,10860,X|0)|0,y=8040,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10860)|0)){p=10860,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));NAe(10860)}return 10860}function RAe(p){return p=p|0,p|0}function One(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=K7()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Mne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Cbe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Mne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Cbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=_be(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,XVt(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Mne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Mqe(p,J),JVt(J),B=Ge;return}}function _be(p){return p=p|0,536870911}function XVt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Mqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function JVt(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function NAe(p){p=p|0,UVt(p)}function cLe(p){p=p|0,Hqe(p+24|0)}function Hqe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function UVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,11,y,KVt()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function KVt(){return 1840}function jVt(p,y,w){p=p|0,y=y|0,w=w|0,Yqe(o[(lLe(p)|0)>>2]|0,y,w)}function lLe(p){return p=p|0,(o[(K7()|0)+24>>2]|0)+(p<<3)|0}function Yqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;G=B,B=B+16|0,U=G+1|0,J=G,eS(U,y),y=rN(U,y)|0,eS(J,w),w=rN(J,w)|0,qD[p&31](y,w),B=G}function Qqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=ybe()|0,p=uLe(w)|0,bd(U,y,J,p,j7(w,G)|0,G)}function ybe(){var p=0,y=0;if(n[8048]|0||(zD(10896),pu(66,10896,X|0)|0,y=8048,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10896)|0)){p=10896,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));zD(10896)}return 10896}function uLe(p){return p=p|0,p|0}function j7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=ybe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Hne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(bbe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Hne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function bbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=Ebe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,DAe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Hne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,gLe(p,J),kAe(J),B=Ge;return}}function Ebe(p){return p=p|0,536870911}function DAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function gLe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kAe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function zD(p){p=p|0,qVt(p)}function Sbe(p){p=p|0,zVt(p+24|0)}function zVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function qVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,11,y,xAe()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function xAe(){return 1852}function GAe(p,y){return p=p|0,y=y|0,vbe(o[(FAe(p)|0)>>2]|0,y)|0}function FAe(p){return p=p|0,(o[(ybe()|0)+24>>2]|0)+(p<<3)|0}function vbe(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,eS(G,y),y=rN(G,y)|0,y=_J(mC[p&31](y)|0)|0,B=w,y|0}function $Vt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=ALe()|0,p=ePt(w)|0,bd(U,y,J,p,uU(w,G)|0,G)}function ALe(){var p=0,y=0;if(n[8056]|0||(q7(10932),pu(67,10932,X|0)|0,y=8056,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10932)|0)){p=10932,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));q7(10932)}return 10932}function ePt(p){return p=p|0,p|0}function uU(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=ALe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(ZAe(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(tPt(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function ZAe(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function tPt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=LAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,Yne(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,ZAe(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,VAe(p,J),z7(J),B=Ge;return}}function LAe(p){return p=p|0,536870911}function Yne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function VAe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function z7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function q7(p){p=p|0,w3(p)}function rPt(p){p=p|0,pN(p+24|0)}function pN(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function w3(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,7,y,dLe()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function dLe(){return 1860}function pLe(p,y,w){return p=p|0,y=y|0,w=w|0,fLe(o[(nPt(p)|0)>>2]|0,y,w)|0}function nPt(p){return p=p|0,(o[(ALe()|0)+24>>2]|0)+(p<<3)|0}function fLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+32|0,le=G+12|0,U=G+8|0,Ge=G,Xe=G+16|0,J=G+4|0,iPt(Xe,y),Bbe(Ge,Xe,y),vx(J,w),w=IF(J,w)|0,o[le>>2]=o[Ge>>2],UT[p&15](U,le,w),w=Xqe(U)|0,r_(U),_B(J),B=G,w|0}function iPt(p,y){p=p|0,y=y|0}function Bbe(p,y,w){p=p|0,y=y|0,w=w|0,Qne(p,w)}function Xqe(p){return p=p|0,qf(p)|0}function Qne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+16|0,w=J,G=y,G&1?(ILe(w,0),mI(G|0,w|0)|0,s0(p,w),hLe(w)):o[p>>2]=o[y>>2],B=J}function ILe(p,y){p=p|0,y=y|0,j(p,y),o[p+4>>2]=0,n[p+8>>0]=0}function s0(p,y){p=p|0,y=y|0,o[p>>2]=o[y+4>>2]}function hLe(p){p=p|0,n[p+8>>0]=0}function Xne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=fN()|0,p=UY(w)|0,bd(U,y,J,p,Jqe(w,G)|0,G)}function fN(){var p=0,y=0;if(n[8064]|0||(QT(10968),pu(68,10968,X|0)|0,y=8064,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10968)|0)){p=10968,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));QT(10968)}return 10968}function UY(p){return p=p|0,p|0}function Jqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=fN()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?($7(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(wB(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function $7(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function wB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=PAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,ez(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,$7(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,tz(p,J),Uqe(J),B=Ge;return}}function PAe(p){return p=p|0,536870911}function ez(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function tz(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Uqe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function QT(p){p=p|0,Tbe(p)}function rz(p){p=p|0,wbe(p+24|0)}function wbe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Tbe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,1,y,Rbe()|0,5),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Rbe(){return 1872}function lg(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,Nbe(o[(mLe(p)|0)>>2]|0,y,w,G,J,U)}function mLe(p){return p=p|0,(o[(fN()|0)+24>>2]|0)+(p<<3)|0}function Nbe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+32|0,Ge=le+16|0,Xe=le+12|0,bt=le+8|0,It=le+4|0,rr=le,vx(Ge,y),y=IF(Ge,y)|0,vx(Xe,w),w=IF(Xe,w)|0,vx(bt,G),G=IF(bt,G)|0,vx(It,J),J=IF(It,J)|0,vx(rr,U),U=IF(rr,U)|0,c$e[p&1](y,w,G,J,U),_B(rr),_B(It),_B(bt),_B(Xe),_B(Ge),B=le}function Dbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=T3()|0,p=CLe(w)|0,bd(U,y,J,p,Kqe(w,G)|0,G)}function T3(){var p=0,y=0;if(n[8072]|0||(Jne(11004),pu(69,11004,X|0)|0,y=8072,o[y>>2]=1,o[y+4>>2]=0),!(Xr(11004)|0)){p=11004,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Jne(11004)}return 11004}function CLe(p){return p=p|0,p|0}function Kqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=T3()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(gU(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(WAe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function gU(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function WAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=nz(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,kP(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,gU(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,_Le(p,J),kbe(J),B=Ge;return}}function nz(p){return p=p|0,536870911}function kP(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function _Le(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kbe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function Jne(p){p=p|0,oPt(p)}function JL(p){p=p|0,sPt(p+24|0)}function sPt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function oPt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,12,y,aPt()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function aPt(){return 1896}function yLe(p,y,w){p=p|0,y=y|0,w=w|0,iz(o[(bLe(p)|0)>>2]|0,y,w)}function bLe(p){return p=p|0,(o[(T3()|0)+24>>2]|0)+(p<<3)|0}function iz(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;G=B,B=B+16|0,U=G+4|0,J=G,AU(U,y),y=TB(U,y)|0,vx(J,w),w=IF(J,w)|0,qD[p&31](y,w),_B(J),B=G}function AU(p,y){p=p|0,y=y|0}function TB(p,y){return p=p|0,y=y|0,xbe(y)|0}function xbe(p){return p=p|0,p|0}function ELe(){var p=0;return n[8080]|0||(XA(11040),pu(70,11040,X|0)|0,p=8080,o[p>>2]=1,o[p+4>>2]=0),Xr(11040)|0||XA(11040),11040}function XA(p){p=p|0,Gbe(p),G7(p,71)}function UL(p){p=p|0,cPt(p+24|0)}function cPt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Gbe(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,7,y,OAe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function SLe(p){p=p|0,sz(p)}function sz(p){p=p|0,vLe(p)}function vLe(p){p=p|0,n[p+8>>0]=1}function OAe(){return 1936}function oz(){return BLe()|0}function BLe(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,U=p+4|0,o[U>>2]=Ku(1)|0,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],RF(G,U,J),o[w>>2]=G,B=y,p|0}function RF(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1916,o[w+12>>2]=y,o[p+4>>2]=w}function xP(p){p=p|0,dz(p),ti(p)}function IN(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function Une(p){p=p|0,ti(p)}function az(){var p=0;return n[8088]|0||(HAe(11076),pu(25,11076,X|0)|0,p=8088,o[p>>2]=1,o[p+4>>2]=0),11076}function MAe(p,y){p=p|0,y=y|0,o[p>>2]=KY()|0,o[p+4>>2]=Kne()|0,o[p+12>>2]=y,o[p+8>>2]=jne()|0,o[p+32>>2]=10}function KY(){return 11745}function Kne(){return 1940}function jne(){return nI()|0}function Fbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(wLe(w),ti(w)):y|0&&ti(y)}function wLe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function HAe(p){p=p|0,Hc(p)}function RB(p,y){p=p|0,y=y|0,o[p>>2]=y}function YAe(p){return p=p|0,o[p>>2]|0}function Zbe(p){return p=p|0,n[o[p>>2]>>0]|0}function Lbe(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,o[G>>2]=o[p>>2],QAe(y,G)|0,B=w}function QAe(p,y){p=p|0,y=y|0;var w=0;return w=cz(o[p>>2]|0,y)|0,y=p+4|0,o[(o[y>>2]|0)+8>>2]=w,o[(o[y>>2]|0)+8>>2]|0}function cz(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,xw(G),p=qf(p)|0,y=TLe(p,o[y>>2]|0)|0,oS(G),B=w,y|0}function xw(p){p=p|0,o[p>>2]=o[2701],o[p+4>>2]=o[2703]}function TLe(p,y){p=p|0,y=y|0;var w=0;return w=Sb(lz()|0)|0,Ki(0,w|0,p|0,hAe(y)|0)|0}function oS(p){p=p|0,mbe(o[p>>2]|0,o[p+4>>2]|0)}function lz(){var p=0;return n[8096]|0||(Vbe(11120),p=8096,o[p>>2]=1,o[p+4>>2]=0),11120}function Vbe(p){p=p|0,Ny(p,g2()|0,1)}function g2(){return 1948}function A2(){jY()}function jY(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;if(zi=B,B=B+16|0,It=zi+4|0,rr=zi,Ul(65536,10804,o[2702]|0,10812),w=nbe()|0,y=o[w>>2]|0,p=o[y>>2]|0,p|0)for(G=o[w+8>>2]|0,w=o[w+4>>2]|0;Do(p|0,l[w>>0]|0|0,n[G>>0]|0),y=y+4|0,p=o[y>>2]|0,p;)G=G+1|0,w=w+1|0;if(p=ibe()|0,y=o[p>>2]|0,y|0)do Wt(y|0,o[p+4>>2]|0),p=p+8|0,y=o[p>>2]|0;while(y|0);Wt(RLe()|0,5167),bt=TP()|0,p=o[bt>>2]|0;e:do if(p|0){do lPt(o[p+4>>2]|0),p=o[p>>2]|0;while(p|0);if(p=o[bt>>2]|0,p|0){Xe=bt;do{for(;J=p,p=o[p>>2]|0,J=o[J+4>>2]|0,!!(R3(J)|0);)if(o[rr>>2]=Xe,o[It>>2]=o[rr>>2],XAe(bt,It)|0,!p)break e;if(NLe(J),Xe=o[Xe>>2]|0,y=$h(J)|0,U=OA()|0,le=B,B=B+((1*(y<<2)|0)+15&-16)|0,Ge=B,B=B+((1*(y<<2)|0)+15&-16)|0,y=o[(bAe(J)|0)>>2]|0,y|0)for(w=le,G=Ge;o[w>>2]=o[(Zy(o[y+4>>2]|0)|0)>>2],o[G>>2]=o[y+8>>2],y=o[y>>2]|0,y;)w=w+4|0,G=G+4|0;Un=Zy(J)|0,y=DLe(J)|0,w=$h(J)|0,G=Pbe(J)|0,Ju(Un|0,y|0,le|0,Ge|0,w|0,G|0,O7(J)|0),Da(U|0)}while(p|0)}}while(!1);if(p=o[(RP()|0)>>2]|0,p|0)do Un=p+4|0,bt=nU(Un)|0,J=Gy(bt)|0,U=f1(bt)|0,le=(fAe(bt)|0)+1|0,Ge=zY(bt)|0,Xe=JAe(Un)|0,bt=Xr(bt)|0,It=KD(Un)|0,rr=uz(Un)|0,Ru(0,J|0,U|0,le|0,Ge|0,Xe|0,bt|0,It|0,rr|0,UAe(Un)|0),p=o[p>>2]|0;while(p|0);p=o[(TP()|0)>>2]|0;e:do if(p|0){t:for(;;){if(y=o[p+4>>2]|0,y|0&&(an=o[(Zy(y)|0)>>2]|0,Ks=o[(Gne(y)|0)>>2]|0,Ks|0)){w=Ks;do{y=w+4|0,G=nU(y)|0;r:do if(G|0)switch(Xr(G)|0){case 0:break t;case 4:case 3:case 2:{Ge=Gy(G)|0,Xe=f1(G)|0,bt=(fAe(G)|0)+1|0,It=zY(G)|0,rr=Xr(G)|0,Un=KD(y)|0,Ru(an|0,Ge|0,Xe|0,bt|0,It|0,0,rr|0,Un|0,uz(y)|0,UAe(y)|0);break r}case 1:{le=Gy(G)|0,Ge=f1(G)|0,Xe=(fAe(G)|0)+1|0,bt=zY(G)|0,It=JAe(y)|0,rr=Xr(G)|0,Un=KD(y)|0,Ru(an|0,le|0,Ge|0,Xe|0,bt|0,It|0,rr|0,Un|0,uz(y)|0,UAe(y)|0);break r}case 5:{bt=Gy(G)|0,It=f1(G)|0,rr=(fAe(G)|0)+1|0,Un=zY(G)|0,Ru(an|0,bt|0,It|0,rr|0,Un|0,KAe(G)|0,Xr(G)|0,0,0,0);break r}default:break r}while(!1);w=o[w>>2]|0}while(w|0)}if(p=o[p>>2]|0,!p)break e}Ko()}while(!1);Yn(),B=zi}function RLe(){return 11703}function lPt(p){p=p|0,n[p+40>>0]=0}function R3(p){return p=p|0,(n[p+40>>0]|0)!=0|0}function XAe(p,y){return p=p|0,y=y|0,y=Wbe(y)|0,p=o[y>>2]|0,o[y>>2]=o[p>>2],ti(p),o[y>>2]|0}function NLe(p){p=p|0,n[p+40>>0]=1}function $h(p){return p=p|0,o[p+20>>2]|0}function DLe(p){return p=p|0,o[p+8>>2]|0}function Pbe(p){return p=p|0,o[p+32>>2]|0}function zY(p){return p=p|0,o[p+4>>2]|0}function JAe(p){return p=p|0,o[p+4>>2]|0}function uz(p){return p=p|0,o[p+8>>2]|0}function UAe(p){return p=p|0,o[p+16>>2]|0}function KAe(p){return p=p|0,o[p+20>>2]|0}function Wbe(p){return p=p|0,o[p>>2]|0}function zne(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0;hl=B,B=B+16|0,an=hl;do if(p>>>0<245){if(bt=p>>>0<11?16:p+11&-8,p=bt>>>3,rr=o[2783]|0,w=rr>>>p,w&3|0)return y=(w&1^1)+p|0,p=11172+(y<<1<<2)|0,w=p+8|0,G=o[w>>2]|0,J=G+8|0,U=o[J>>2]|0,(p|0)==(U|0)?o[2783]=rr&~(1<>2]=p,o[w>>2]=U),pi=y<<3,o[G+4>>2]=pi|3,pi=G+pi+4|0,o[pi>>2]=o[pi>>2]|1,pi=J,B=hl,pi|0;if(It=o[2785]|0,bt>>>0>It>>>0){if(w|0)return y=2<>>12&16,y=y>>>le,w=y>>>5&8,y=y>>>w,J=y>>>2&4,y=y>>>J,p=y>>>1&2,y=y>>>p,G=y>>>1&1,G=(w|le|J|p|G)+(y>>>G)|0,y=11172+(G<<1<<2)|0,p=y+8|0,J=o[p>>2]|0,le=J+8|0,w=o[le>>2]|0,(y|0)==(w|0)?(p=rr&~(1<>2]=y,o[p>>2]=w,p=rr),U=(G<<3)-bt|0,o[J+4>>2]=bt|3,G=J+bt|0,o[G+4>>2]=U|1,o[G+U>>2]=U,It|0&&(J=o[2788]|0,y=It>>>3,w=11172+(y<<1<<2)|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=J,o[y+12>>2]=J,o[J+8>>2]=y,o[J+12>>2]=w),o[2785]=U,o[2788]=G,pi=le,B=hl,pi|0;if(Ge=o[2784]|0,Ge){if(w=(Ge&0-Ge)+-1|0,le=w>>>12&16,w=w>>>le,U=w>>>5&8,w=w>>>U,Xe=w>>>2&4,w=w>>>Xe,G=w>>>1&2,w=w>>>G,p=w>>>1&1,p=o[11436+((U|le|Xe|G|p)+(w>>>p)<<2)>>2]|0,w=(o[p+4>>2]&-8)-bt|0,G=o[p+16+(((o[p+16>>2]|0)==0&1)<<2)>>2]|0,!G)Xe=p,U=w;else{do le=(o[G+4>>2]&-8)-bt|0,Xe=le>>>0>>0,w=Xe?le:w,p=Xe?G:p,G=o[G+16+(((o[G+16>>2]|0)==0&1)<<2)>>2]|0;while(G|0);Xe=p,U=w}if(le=Xe+bt|0,Xe>>>0>>0){J=o[Xe+24>>2]|0,y=o[Xe+12>>2]|0;do if((y|0)==(Xe|0)){if(p=Xe+20|0,y=o[p>>2]|0,!y&&(p=Xe+16|0,y=o[p>>2]|0,!y)){w=0;break}for(;;){if(w=y+20|0,G=o[w>>2]|0,G|0){y=G,p=w;continue}if(w=y+16|0,G=o[w>>2]|0,G)y=G,p=w;else break}o[p>>2]=0,w=y}else w=o[Xe+8>>2]|0,o[w+12>>2]=y,o[y+8>>2]=w,w=y;while(!1);do if(J|0){if(y=o[Xe+28>>2]|0,p=11436+(y<<2)|0,(Xe|0)==(o[p>>2]|0)){if(o[p>>2]=w,!w){o[2784]=Ge&~(1<>2]|0)!=(Xe|0)&1)<<2)>>2]=w,!w)break;o[w+24>>2]=J,y=o[Xe+16>>2]|0,y|0&&(o[w+16>>2]=y,o[y+24>>2]=w),y=o[Xe+20>>2]|0,y|0&&(o[w+20>>2]=y,o[y+24>>2]=w)}while(!1);return U>>>0<16?(pi=U+bt|0,o[Xe+4>>2]=pi|3,pi=Xe+pi+4|0,o[pi>>2]=o[pi>>2]|1):(o[Xe+4>>2]=bt|3,o[le+4>>2]=U|1,o[le+U>>2]=U,It|0&&(G=o[2788]|0,y=It>>>3,w=11172+(y<<1<<2)|0,y=1<>2]|0):(o[2783]=rr|y,y=w,p=w+8|0),o[p>>2]=G,o[y+12>>2]=G,o[G+8>>2]=y,o[G+12>>2]=w),o[2785]=U,o[2788]=le),pi=Xe+8|0,B=hl,pi|0}else rr=bt}else rr=bt}else rr=bt}else if(p>>>0<=4294967231)if(p=p+11|0,bt=p&-8,Xe=o[2784]|0,Xe){G=0-bt|0,p=p>>>8,p?bt>>>0>16777215?Ge=31:(rr=(p+1048320|0)>>>16&8,ss=p<>>16&4,ss=ss<>>16&2,Ge=14-(It|rr|Ge)+(ss<>>15)|0,Ge=bt>>>(Ge+7|0)&1|Ge<<1):Ge=0,w=o[11436+(Ge<<2)>>2]|0;e:do if(!w)w=0,p=0,ss=57;else for(p=0,le=bt<<((Ge|0)==31?0:25-(Ge>>>1)|0),U=0;;){if(J=(o[w+4>>2]&-8)-bt|0,J>>>0>>0)if(J)p=w,G=J;else{p=w,G=0,J=w,ss=61;break e}if(J=o[w+20>>2]|0,w=o[w+16+(le>>>31<<2)>>2]|0,U=(J|0)==0|(J|0)==(w|0)?U:J,J=(w|0)==0,J){w=U,ss=57;break}else le=le<<((J^1)&1)}while(!1);if((ss|0)==57){if((w|0)==0&(p|0)==0){if(p=2<>>12&16,rr=rr>>>le,U=rr>>>5&8,rr=rr>>>U,Ge=rr>>>2&4,rr=rr>>>Ge,It=rr>>>1&2,rr=rr>>>It,w=rr>>>1&1,p=0,w=o[11436+((U|le|Ge|It|w)+(rr>>>w)<<2)>>2]|0}w?(J=w,ss=61):(Ge=p,le=G)}if((ss|0)==61)for(;;)if(ss=0,w=(o[J+4>>2]&-8)-bt|0,rr=w>>>0>>0,w=rr?w:G,p=rr?J:p,J=o[J+16+(((o[J+16>>2]|0)==0&1)<<2)>>2]|0,J)G=w,ss=61;else{Ge=p,le=w;break}if(Ge|0&&le>>>0<((o[2785]|0)-bt|0)>>>0){if(U=Ge+bt|0,Ge>>>0>=U>>>0)return pi=0,B=hl,pi|0;J=o[Ge+24>>2]|0,y=o[Ge+12>>2]|0;do if((y|0)==(Ge|0)){if(p=Ge+20|0,y=o[p>>2]|0,!y&&(p=Ge+16|0,y=o[p>>2]|0,!y)){y=0;break}for(;;){if(w=y+20|0,G=o[w>>2]|0,G|0){y=G,p=w;continue}if(w=y+16|0,G=o[w>>2]|0,G)y=G,p=w;else break}o[p>>2]=0}else pi=o[Ge+8>>2]|0,o[pi+12>>2]=y,o[y+8>>2]=pi;while(!1);do if(J){if(p=o[Ge+28>>2]|0,w=11436+(p<<2)|0,(Ge|0)==(o[w>>2]|0)){if(o[w>>2]=y,!y){G=Xe&~(1<>2]|0)!=(Ge|0)&1)<<2)>>2]=y,!y){G=Xe;break}o[y+24>>2]=J,p=o[Ge+16>>2]|0,p|0&&(o[y+16>>2]=p,o[p+24>>2]=y),p=o[Ge+20>>2]|0,p&&(o[y+20>>2]=p,o[p+24>>2]=y),G=Xe}else G=Xe;while(!1);do if(le>>>0>=16){if(o[Ge+4>>2]=bt|3,o[U+4>>2]=le|1,o[U+le>>2]=le,y=le>>>3,le>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=U,o[y+12>>2]=U,o[U+8>>2]=y,o[U+12>>2]=w;break}if(y=le>>>8,y?le>>>0>16777215?y=31:(ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,y=14-(So|ss|y)+(pi<>>15)|0,y=le>>>(y+7|0)&1|y<<1):y=0,w=11436+(y<<2)|0,o[U+28>>2]=y,p=U+16|0,o[p+4>>2]=0,o[p>>2]=0,p=1<>2]=U,o[U+24>>2]=w,o[U+12>>2]=U,o[U+8>>2]=U;break}for(p=le<<((y|0)==31?0:25-(y>>>1)|0),w=o[w>>2]|0;;){if((o[w+4>>2]&-8|0)==(le|0)){ss=97;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=96;break}}if((ss|0)==96){o[G>>2]=U,o[U+24>>2]=w,o[U+12>>2]=U,o[U+8>>2]=U;break}else if((ss|0)==97){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=U,o[ss>>2]=U,o[U+8>>2]=pi,o[U+12>>2]=w,o[U+24>>2]=0;break}}else pi=le+bt|0,o[Ge+4>>2]=pi|3,pi=Ge+pi+4|0,o[pi>>2]=o[pi>>2]|1;while(!1);return pi=Ge+8|0,B=hl,pi|0}else rr=bt}else rr=bt;else rr=-1;while(!1);if(w=o[2785]|0,w>>>0>=rr>>>0)return y=w-rr|0,p=o[2788]|0,y>>>0>15?(pi=p+rr|0,o[2788]=pi,o[2785]=y,o[pi+4>>2]=y|1,o[pi+y>>2]=y,o[p+4>>2]=rr|3):(o[2785]=0,o[2788]=0,o[p+4>>2]=w|3,pi=p+w+4|0,o[pi>>2]=o[pi>>2]|1),pi=p+8|0,B=hl,pi|0;if(le=o[2786]|0,le>>>0>rr>>>0)return So=le-rr|0,o[2786]=So,pi=o[2789]|0,ss=pi+rr|0,o[2789]=ss,o[ss+4>>2]=So|1,o[pi+4>>2]=rr|3,pi=pi+8|0,B=hl,pi|0;if(o[2901]|0?p=o[2903]|0:(o[2903]=4096,o[2902]=4096,o[2904]=-1,o[2905]=-1,o[2906]=0,o[2894]=0,p=an&-16^1431655768,o[an>>2]=p,o[2901]=p,p=4096),Ge=rr+48|0,Xe=rr+47|0,U=p+Xe|0,J=0-p|0,bt=U&J,bt>>>0<=rr>>>0||(p=o[2893]|0,p|0&&(It=o[2891]|0,an=It+bt|0,an>>>0<=It>>>0|an>>>0>p>>>0)))return pi=0,B=hl,pi|0;e:do if(o[2894]&4)y=0,ss=133;else{w=o[2789]|0;t:do if(w){for(G=11580;p=o[G>>2]|0,!(p>>>0<=w>>>0&&(Un=G+4|0,(p+(o[Un>>2]|0)|0)>>>0>w>>>0));)if(p=o[G+8>>2]|0,p)G=p;else{ss=118;break t}if(y=U-le&J,y>>>0<2147483647)if(p=kB(y|0)|0,(p|0)==((o[G>>2]|0)+(o[Un>>2]|0)|0)){if((p|0)!=-1){le=y,U=p,ss=135;break e}}else G=p,ss=126;else y=0}else ss=118;while(!1);do if((ss|0)==118)if(w=kB(0)|0,(w|0)!=-1&&(y=w,Ks=o[2902]|0,zi=Ks+-1|0,y=(zi&y|0?(zi+y&0-Ks)-y|0:0)+bt|0,Ks=o[2891]|0,zi=y+Ks|0,y>>>0>rr>>>0&y>>>0<2147483647)){if(Un=o[2893]|0,Un|0&&zi>>>0<=Ks>>>0|zi>>>0>Un>>>0){y=0;break}if(p=kB(y|0)|0,(p|0)==(w|0)){le=y,U=w,ss=135;break e}else G=p,ss=126}else y=0;while(!1);do if((ss|0)==126){if(w=0-y|0,!(Ge>>>0>y>>>0&(y>>>0<2147483647&(G|0)!=-1)))if((G|0)==-1){y=0;break}else{le=y,U=G,ss=135;break e}if(p=o[2903]|0,p=Xe-y+p&0-p,p>>>0>=2147483647){le=y,U=G,ss=135;break e}if((kB(p|0)|0)==-1){kB(w|0)|0,y=0;break}else{le=p+y|0,U=G,ss=135;break e}}while(!1);o[2894]=o[2894]|4,ss=133}while(!1);if((ss|0)==133&&bt>>>0<2147483647&&(So=kB(bt|0)|0,Un=kB(0)|0,Ds=Un-So|0,Si=Ds>>>0>(rr+40|0)>>>0,!((So|0)==-1|Si^1|So>>>0>>0&((So|0)!=-1&(Un|0)!=-1)^1))&&(le=Si?Ds:y,U=So,ss=135),(ss|0)==135){y=(o[2891]|0)+le|0,o[2891]=y,y>>>0>(o[2892]|0)>>>0&&(o[2892]=y),Xe=o[2789]|0;do if(Xe){for(y=11580;;){if(p=o[y>>2]|0,w=y+4|0,G=o[w>>2]|0,(U|0)==(p+G|0)){ss=145;break}if(J=o[y+8>>2]|0,J)y=J;else break}if((ss|0)==145&&!(o[y+12>>2]&8|0)&&Xe>>>0>>0&Xe>>>0>=p>>>0){o[w>>2]=G+le,pi=Xe+8|0,pi=pi&7|0?0-pi&7:0,ss=Xe+pi|0,pi=(o[2786]|0)+(le-pi)|0,o[2789]=ss,o[2786]=pi,o[ss+4>>2]=pi|1,o[ss+pi+4>>2]=40,o[2790]=o[2905];break}for(U>>>0<(o[2787]|0)>>>0&&(o[2787]=U),w=U+le|0,y=11580;;){if((o[y>>2]|0)==(w|0)){ss=153;break}if(p=o[y+8>>2]|0,p)y=p;else break}if((ss|0)==153&&!(o[y+12>>2]&8|0)){o[y>>2]=U,It=y+4|0,o[It>>2]=(o[It>>2]|0)+le,It=U+8|0,It=U+(It&7|0?0-It&7:0)|0,y=w+8|0,y=w+(y&7|0?0-y&7:0)|0,bt=It+rr|0,Ge=y-It-rr|0,o[It+4>>2]=rr|3;do if((y|0)!=(Xe|0)){if((y|0)==(o[2788]|0)){pi=(o[2785]|0)+Ge|0,o[2785]=pi,o[2788]=bt,o[bt+4>>2]=pi|1,o[bt+pi>>2]=pi;break}if(p=o[y+4>>2]|0,(p&3|0)==1){le=p&-8,G=p>>>3;e:do if(p>>>0<256)if(p=o[y+8>>2]|0,w=o[y+12>>2]|0,(w|0)==(p|0)){o[2783]=o[2783]&~(1<>2]=w,o[w+8>>2]=p;break}else{U=o[y+24>>2]|0,p=o[y+12>>2]|0;do if((p|0)==(y|0)){if(G=y+16|0,w=G+4|0,p=o[w>>2]|0,!p)if(p=o[G>>2]|0,p)w=G;else{p=0;break}for(;;){if(G=p+20|0,J=o[G>>2]|0,J|0){p=J,w=G;continue}if(G=p+16|0,J=o[G>>2]|0,J)p=J,w=G;else break}o[w>>2]=0}else pi=o[y+8>>2]|0,o[pi+12>>2]=p,o[p+8>>2]=pi;while(!1);if(!U)break;w=o[y+28>>2]|0,G=11436+(w<<2)|0;do if((y|0)!=(o[G>>2]|0)){if(o[U+16+(((o[U+16>>2]|0)!=(y|0)&1)<<2)>>2]=p,!p)break e}else{if(o[G>>2]=p,p|0)break;o[2784]=o[2784]&~(1<>2]=U,w=y+16|0,G=o[w>>2]|0,G|0&&(o[p+16>>2]=G,o[G+24>>2]=p),w=o[w+4>>2]|0,!w)break;o[p+20>>2]=w,o[w+24>>2]=p}while(!1);y=y+le|0,J=le+Ge|0}else J=Ge;if(y=y+4|0,o[y>>2]=o[y>>2]&-2,o[bt+4>>2]=J|1,o[bt+J>>2]=J,y=J>>>3,J>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=bt,o[y+12>>2]=bt,o[bt+8>>2]=y,o[bt+12>>2]=w;break}y=J>>>8;do if(!y)y=0;else{if(J>>>0>16777215){y=31;break}ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,y=14-(So|ss|y)+(pi<>>15)|0,y=J>>>(y+7|0)&1|y<<1}while(!1);if(G=11436+(y<<2)|0,o[bt+28>>2]=y,p=bt+16|0,o[p+4>>2]=0,o[p>>2]=0,p=o[2784]|0,w=1<>2]=bt,o[bt+24>>2]=G,o[bt+12>>2]=bt,o[bt+8>>2]=bt;break}for(p=J<<((y|0)==31?0:25-(y>>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(J|0)){ss=194;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=193;break}}if((ss|0)==193){o[G>>2]=bt,o[bt+24>>2]=w,o[bt+12>>2]=bt,o[bt+8>>2]=bt;break}else if((ss|0)==194){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=bt,o[ss>>2]=bt,o[bt+8>>2]=pi,o[bt+12>>2]=w,o[bt+24>>2]=0;break}}else pi=(o[2786]|0)+Ge|0,o[2786]=pi,o[2789]=bt,o[bt+4>>2]=pi|1;while(!1);return pi=It+8|0,B=hl,pi|0}for(y=11580;p=o[y>>2]|0,!(p>>>0<=Xe>>>0&&(pi=p+(o[y+4>>2]|0)|0,pi>>>0>Xe>>>0));)y=o[y+8>>2]|0;J=pi+-47|0,p=J+8|0,p=J+(p&7|0?0-p&7:0)|0,J=Xe+16|0,p=p>>>0>>0?Xe:p,y=p+8|0,w=U+8|0,w=w&7|0?0-w&7:0,ss=U+w|0,w=le+-40-w|0,o[2789]=ss,o[2786]=w,o[ss+4>>2]=w|1,o[ss+w+4>>2]=40,o[2790]=o[2905],w=p+4|0,o[w>>2]=27,o[y>>2]=o[2895],o[y+4>>2]=o[2896],o[y+8>>2]=o[2897],o[y+12>>2]=o[2898],o[2895]=U,o[2896]=le,o[2898]=0,o[2897]=y,y=p+24|0;do ss=y,y=y+4|0,o[y>>2]=7;while((ss+8|0)>>>0>>0);if((p|0)!=(Xe|0)){if(U=p-Xe|0,o[w>>2]=o[w>>2]&-2,o[Xe+4>>2]=U|1,o[p>>2]=U,y=U>>>3,U>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=Xe,o[y+12>>2]=Xe,o[Xe+8>>2]=y,o[Xe+12>>2]=w;break}if(y=U>>>8,y?U>>>0>16777215?w=31:(ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,w=14-(So|ss|w)+(pi<>>15)|0,w=U>>>(w+7|0)&1|w<<1):w=0,G=11436+(w<<2)|0,o[Xe+28>>2]=w,o[Xe+20>>2]=0,o[J>>2]=0,y=o[2784]|0,p=1<>2]=Xe,o[Xe+24>>2]=G,o[Xe+12>>2]=Xe,o[Xe+8>>2]=Xe;break}for(p=U<<((w|0)==31?0:25-(w>>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(U|0)){ss=216;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=215;break}}if((ss|0)==215){o[G>>2]=Xe,o[Xe+24>>2]=w,o[Xe+12>>2]=Xe,o[Xe+8>>2]=Xe;break}else if((ss|0)==216){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=Xe,o[ss>>2]=Xe,o[Xe+8>>2]=pi,o[Xe+12>>2]=w,o[Xe+24>>2]=0;break}}}else{pi=o[2787]|0,(pi|0)==0|U>>>0>>0&&(o[2787]=U),o[2895]=U,o[2896]=le,o[2898]=0,o[2792]=o[2901],o[2791]=-1,y=0;do pi=11172+(y<<1<<2)|0,o[pi+12>>2]=pi,o[pi+8>>2]=pi,y=y+1|0;while((y|0)!=32);pi=U+8|0,pi=pi&7|0?0-pi&7:0,ss=U+pi|0,pi=le+-40-pi|0,o[2789]=ss,o[2786]=pi,o[ss+4>>2]=pi|1,o[ss+pi+4>>2]=40,o[2790]=o[2905]}while(!1);if(y=o[2786]|0,y>>>0>rr>>>0)return So=y-rr|0,o[2786]=So,pi=o[2789]|0,ss=pi+rr|0,o[2789]=ss,o[ss+4>>2]=So|1,o[pi+4>>2]=rr|3,pi=pi+8|0,B=hl,pi|0}return o[(qY()|0)>>2]=12,pi=0,B=hl,pi|0}function qne(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;if(p){w=p+-8|0,J=o[2787]|0,p=o[p+-4>>2]|0,y=p&-8,Xe=w+y|0;do if(p&1)Ge=w,le=w;else{if(G=o[w>>2]|0,!(p&3)||(le=w+(0-G)|0,U=G+y|0,le>>>0>>0))return;if((le|0)==(o[2788]|0)){if(p=Xe+4|0,y=o[p>>2]|0,(y&3|0)!=3){Ge=le,y=U;break}o[2785]=U,o[p>>2]=y&-2,o[le+4>>2]=U|1,o[le+U>>2]=U;return}if(w=G>>>3,G>>>0<256)if(p=o[le+8>>2]|0,y=o[le+12>>2]|0,(y|0)==(p|0)){o[2783]=o[2783]&~(1<>2]=y,o[y+8>>2]=p,Ge=le,y=U;break}J=o[le+24>>2]|0,p=o[le+12>>2]|0;do if((p|0)==(le|0)){if(w=le+16|0,y=w+4|0,p=o[y>>2]|0,!p)if(p=o[w>>2]|0,p)y=w;else{p=0;break}for(;;){if(w=p+20|0,G=o[w>>2]|0,G|0){p=G,y=w;continue}if(w=p+16|0,G=o[w>>2]|0,G)p=G,y=w;else break}o[y>>2]=0}else Ge=o[le+8>>2]|0,o[Ge+12>>2]=p,o[p+8>>2]=Ge;while(!1);if(J){if(y=o[le+28>>2]|0,w=11436+(y<<2)|0,(le|0)==(o[w>>2]|0)){if(o[w>>2]=p,!p){o[2784]=o[2784]&~(1<>2]|0)!=(le|0)&1)<<2)>>2]=p,!p){Ge=le,y=U;break}o[p+24>>2]=J,y=le+16|0,w=o[y>>2]|0,w|0&&(o[p+16>>2]=w,o[w+24>>2]=p),y=o[y+4>>2]|0,y?(o[p+20>>2]=y,o[y+24>>2]=p,Ge=le,y=U):(Ge=le,y=U)}else Ge=le,y=U}while(!1);if(!(le>>>0>=Xe>>>0)&&(p=Xe+4|0,G=o[p>>2]|0,!!(G&1))){if(G&2)o[p>>2]=G&-2,o[Ge+4>>2]=y|1,o[le+y>>2]=y,J=y;else{if(p=o[2788]|0,(Xe|0)==(o[2789]|0)){if(Xe=(o[2786]|0)+y|0,o[2786]=Xe,o[2789]=Ge,o[Ge+4>>2]=Xe|1,(Ge|0)!=(p|0))return;o[2788]=0,o[2785]=0;return}if((Xe|0)==(p|0)){Xe=(o[2785]|0)+y|0,o[2785]=Xe,o[2788]=le,o[Ge+4>>2]=Xe|1,o[le+Xe>>2]=Xe;return}J=(G&-8)+y|0,w=G>>>3;do if(G>>>0<256)if(y=o[Xe+8>>2]|0,p=o[Xe+12>>2]|0,(p|0)==(y|0)){o[2783]=o[2783]&~(1<>2]=p,o[p+8>>2]=y;break}else{U=o[Xe+24>>2]|0,p=o[Xe+12>>2]|0;do if((p|0)==(Xe|0)){if(w=Xe+16|0,y=w+4|0,p=o[y>>2]|0,!p)if(p=o[w>>2]|0,p)y=w;else{w=0;break}for(;;){if(w=p+20|0,G=o[w>>2]|0,G|0){p=G,y=w;continue}if(w=p+16|0,G=o[w>>2]|0,G)p=G,y=w;else break}o[y>>2]=0,w=p}else w=o[Xe+8>>2]|0,o[w+12>>2]=p,o[p+8>>2]=w,w=p;while(!1);if(U|0){if(p=o[Xe+28>>2]|0,y=11436+(p<<2)|0,(Xe|0)==(o[y>>2]|0)){if(o[y>>2]=w,!w){o[2784]=o[2784]&~(1<>2]|0)!=(Xe|0)&1)<<2)>>2]=w,!w)break;o[w+24>>2]=U,p=Xe+16|0,y=o[p>>2]|0,y|0&&(o[w+16>>2]=y,o[y+24>>2]=w),p=o[p+4>>2]|0,p|0&&(o[w+20>>2]=p,o[p+24>>2]=w)}}while(!1);if(o[Ge+4>>2]=J|1,o[le+J>>2]=J,(Ge|0)==(o[2788]|0)){o[2785]=J;return}}if(p=J>>>3,J>>>0<256){w=11172+(p<<1<<2)|0,y=o[2783]|0,p=1<>2]|0):(o[2783]=y|p,p=w,y=w+8|0),o[y>>2]=Ge,o[p+12>>2]=Ge,o[Ge+8>>2]=p,o[Ge+12>>2]=w;return}p=J>>>8,p?J>>>0>16777215?p=31:(le=(p+1048320|0)>>>16&8,Xe=p<>>16&4,Xe=Xe<>>16&2,p=14-(U|le|p)+(Xe<

>>15)|0,p=J>>>(p+7|0)&1|p<<1):p=0,G=11436+(p<<2)|0,o[Ge+28>>2]=p,o[Ge+20>>2]=0,o[Ge+16>>2]=0,y=o[2784]|0,w=1<>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(J|0)){p=73;break}if(G=w+16+(y>>>31<<2)|0,p=o[G>>2]|0,p)y=y<<1,w=p;else{p=72;break}}if((p|0)==72){o[G>>2]=Ge,o[Ge+24>>2]=w,o[Ge+12>>2]=Ge,o[Ge+8>>2]=Ge;break}else if((p|0)==73){le=w+8|0,Xe=o[le>>2]|0,o[Xe+12>>2]=Ge,o[le>>2]=Ge,o[Ge+8>>2]=Xe,o[Ge+12>>2]=w,o[Ge+24>>2]=0;break}}else o[2784]=y|w,o[G>>2]=Ge,o[Ge+24>>2]=G,o[Ge+12>>2]=Ge,o[Ge+8>>2]=Ge;while(!1);if(Xe=(o[2791]|0)+-1|0,o[2791]=Xe,!Xe)p=11588;else return;for(;p=o[p>>2]|0,p;)p=p+8|0;o[2791]=-1}}}function jAe(){return 11628}function dU(p){p=p|0;var y=0,w=0;return y=B,B=B+16|0,w=y,o[w>>2]=gz(o[p+60>>2]|0)|0,p=eie(Xs(6,w|0)|0)|0,B=y,p|0}function $ne(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0;rr=B,B=B+48|0,bt=rr+16|0,U=rr,J=rr+32|0,Ge=p+28|0,G=o[Ge>>2]|0,o[J>>2]=G,Xe=p+20|0,G=(o[Xe>>2]|0)-G|0,o[J+4>>2]=G,o[J+8>>2]=y,o[J+12>>2]=w,G=G+w|0,le=p+60|0,o[U>>2]=o[le>>2],o[U+4>>2]=J,o[U+8>>2]=2,U=eie(Ma(146,U|0)|0)|0;e:do if((G|0)!=(U|0)){for(y=2;!((U|0)<0);)if(G=G-U|0,Ks=o[J+4>>2]|0,an=U>>>0>Ks>>>0,J=an?J+8|0:J,y=(an<<31>>31)+y|0,Ks=U-(an?Ks:0)|0,o[J>>2]=(o[J>>2]|0)+Ks,an=J+4|0,o[an>>2]=(o[an>>2]|0)-Ks,o[bt>>2]=o[le>>2],o[bt+4>>2]=J,o[bt+8>>2]=y,U=eie(Ma(146,bt|0)|0)|0,(G|0)==(U|0)){It=3;break e}o[p+16>>2]=0,o[Ge>>2]=0,o[Xe>>2]=0,o[p>>2]=o[p>>2]|32,(y|0)==2?w=0:w=w-(o[J+4>>2]|0)|0}else It=3;while(!1);return(It|0)==3&&(Ks=o[p+44>>2]|0,o[p+16>>2]=Ks+(o[p+48>>2]|0),o[Ge>>2]=Ks,o[Xe>>2]=Ks),B=rr,w|0}function uPt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return J=B,B=B+32|0,U=J,G=J+20|0,o[U>>2]=o[p+60>>2],o[U+4>>2]=0,o[U+8>>2]=y,o[U+12>>2]=G,o[U+16>>2]=w,(eie(Gs(140,U|0)|0)|0)<0?(o[G>>2]=-1,p=-1):p=o[G>>2]|0,B=J,p|0}function eie(p){return p=p|0,p>>>0>4294963200&&(o[(qY()|0)>>2]=0-p,p=-1),p|0}function qY(){return(Obe()|0)+64|0}function Obe(){return tie()|0}function tie(){return 2084}function gz(p){return p=p|0,p|0}function Mbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;return J=B,B=B+32|0,G=J,o[p+36>>2]=1,!(o[p>>2]&64|0)&&(o[G>>2]=o[p+60>>2],o[G+4>>2]=21523,o[G+8>>2]=J+16,GA(54,G|0)|0)&&(n[p+75>>0]=-1),G=$ne(p,y,w)|0,B=J,G|0}function jqe(p,y){p=p|0,y=y|0;var w=0,G=0;if(w=n[p>>0]|0,G=n[y>>0]|0,!(w<<24>>24)||w<<24>>24!=G<<24>>24)p=G;else{do p=p+1|0,y=y+1|0,w=n[p>>0]|0,G=n[y>>0]|0;while(!(!(w<<24>>24)||w<<24>>24!=G<<24>>24));p=G}return(w&255)-(p&255)|0}function kLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;e:do if(!w)p=0;else{for(;G=n[p>>0]|0,J=n[y>>0]|0,G<<24>>24==J<<24>>24;)if(w=w+-1|0,w)p=p+1|0,y=y+1|0;else{p=0;break e}p=(G&255)-(J&255)|0}while(!1);return p|0}function zAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;Un=B,B=B+224|0,It=Un+120|0,rr=Un+80|0,Ks=Un,zi=Un+136|0,G=rr,J=G+40|0;do o[G>>2]=0,G=G+4|0;while((G|0)<(J|0));return o[It>>2]=o[w>>2],(JA(0,y,It,Ks,rr)|0)<0?w=-1:((o[p+76>>2]|0)>-1?an=rie(p)|0:an=0,w=o[p>>2]|0,bt=w&32,(n[p+74>>0]|0)<1&&(o[p>>2]=w&-33),G=p+48|0,o[G>>2]|0?w=JA(p,y,It,Ks,rr)|0:(J=p+44|0,U=o[J>>2]|0,o[J>>2]=zi,le=p+28|0,o[le>>2]=zi,Ge=p+20|0,o[Ge>>2]=zi,o[G>>2]=80,Xe=p+16|0,o[Xe>>2]=zi+80,w=JA(p,y,It,Ks,rr)|0,U&&(KL[o[p+36>>2]&7](p,0,0)|0,w=o[Ge>>2]|0?w:-1,o[J>>2]=U,o[G>>2]=0,o[Xe>>2]=0,o[le>>2]=0,o[Ge>>2]=0)),G=o[p>>2]|0,o[p>>2]=G|bt,an|0&&zqe(p),w=G&32|0?-1:w),B=Un,w|0}function JA(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0;wg=B,B=B+64|0,fl=wg+16|0,Tc=wg,hl=wg+24|0,Bg=wg+8|0,Dg=wg+20|0,o[fl>>2]=y,So=(p|0)!=0,ss=hl+40|0,pi=ss,hl=hl+39|0,uu=Bg+4|0,le=0,U=0,It=0;e:for(;;){do if((U|0)>-1)if((le|0)>(2147483647-U|0)){o[(qY()|0)>>2]=75,U=-1;break}else{U=le+U|0;break}while(!1);if(le=n[y>>0]|0,le<<24>>24)Ge=y;else{Si=87;break}t:for(;;){switch(le<<24>>24){case 37:{le=Ge,Si=9;break t}case 0:{le=Ge;break t}default:}Ds=Ge+1|0,o[fl>>2]=Ds,le=n[Ds>>0]|0,Ge=Ds}t:do if((Si|0)==9)for(;;){if(Si=0,(n[Ge+1>>0]|0)!=37)break t;if(le=le+1|0,Ge=Ge+2|0,o[fl>>2]=Ge,(n[Ge>>0]|0)==37)Si=9;else break}while(!1);if(le=le-y|0,So&&o0(p,y,le),le|0){y=Ge;continue}Xe=Ge+1|0,le=(n[Xe>>0]|0)+-48|0,le>>>0<10?(Ds=(n[Ge+2>>0]|0)==36,Un=Ds?le:-1,It=Ds?1:It,Xe=Ds?Ge+3|0:Xe):Un=-1,o[fl>>2]=Xe,le=n[Xe>>0]|0,Ge=(le<<24>>24)+-32|0;t:do if(Ge>>>0<32)for(bt=0,rr=le;;){if(le=1<>2]=Xe,le=n[Xe>>0]|0,Ge=(le<<24>>24)+-32|0,Ge>>>0>=32)break;rr=le}else bt=0;while(!1);if(le<<24>>24==42){if(Ge=Xe+1|0,le=(n[Ge>>0]|0)+-48|0,le>>>0<10&&(n[Xe+2>>0]|0)==36)o[J+(le<<2)>>2]=10,le=o[G+((n[Ge>>0]|0)+-48<<3)>>2]|0,It=1,Xe=Xe+3|0;else{if(It|0){U=-1;break}So?(It=(o[w>>2]|0)+3&-4,le=o[It>>2]|0,o[w>>2]=It+4,It=0,Xe=Ge):(le=0,It=0,Xe=Ge)}o[fl>>2]=Xe,Ds=(le|0)<0,le=Ds?0-le|0:le,bt=Ds?bt|8192:bt}else{if(le=qAe(fl)|0,(le|0)<0){U=-1;break}Xe=o[fl>>2]|0}do if((n[Xe>>0]|0)==46){if((n[Xe+1>>0]|0)!=42){o[fl>>2]=Xe+1,Ge=qAe(fl)|0,Xe=o[fl>>2]|0;break}if(rr=Xe+2|0,Ge=(n[rr>>0]|0)+-48|0,Ge>>>0<10&&(n[Xe+3>>0]|0)==36){o[J+(Ge<<2)>>2]=10,Ge=o[G+((n[rr>>0]|0)+-48<<3)>>2]|0,Xe=Xe+4|0,o[fl>>2]=Xe;break}if(It|0){U=-1;break e}So?(Ds=(o[w>>2]|0)+3&-4,Ge=o[Ds>>2]|0,o[w>>2]=Ds+4):Ge=0,o[fl>>2]=rr,Xe=rr}else Ge=-1;while(!1);for(zi=0;;){if(((n[Xe>>0]|0)+-65|0)>>>0>57){U=-1;break e}if(Ds=Xe+1|0,o[fl>>2]=Ds,rr=n[(n[Xe>>0]|0)+-65+(5178+(zi*58|0))>>0]|0,an=rr&255,(an+-1|0)>>>0<8)zi=an,Xe=Ds;else break}if(!(rr<<24>>24)){U=-1;break}Ks=(Un|0)>-1;do if(rr<<24>>24==19)if(Ks){U=-1;break e}else Si=49;else{if(Ks){o[J+(Un<<2)>>2]=an,Ks=G+(Un<<3)|0,Un=o[Ks+4>>2]|0,Si=Tc,o[Si>>2]=o[Ks>>2],o[Si+4>>2]=Un,Si=49;break}if(!So){U=0;break e}Vy(Tc,an,w)}while(!1);if((Si|0)==49&&(Si=0,!So)){le=0,y=Ds;continue}Xe=n[Xe>>0]|0,Xe=(zi|0)!=0&(Xe&15|0)==3?Xe&-33:Xe,Ks=bt&-65537,Un=bt&8192|0?Ks:bt;t:do switch(Xe|0){case 110:switch((zi&255)<<24>>24){case 0:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 1:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 2:{le=o[Tc>>2]|0,o[le>>2]=U,o[le+4>>2]=((U|0)<0)<<31>>31,le=0,y=Ds;continue e}case 3:{a[o[Tc>>2]>>1]=U,le=0,y=Ds;continue e}case 4:{n[o[Tc>>2]>>0]=U,le=0,y=Ds;continue e}case 6:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 7:{le=o[Tc>>2]|0,o[le>>2]=U,o[le+4>>2]=((U|0)<0)<<31>>31,le=0,y=Ds;continue e}default:{le=0,y=Ds;continue e}}case 112:{Xe=120,Ge=Ge>>>0>8?Ge:8,y=Un|8,Si=61;break}case 88:case 120:{y=Un,Si=61;break}case 111:{Xe=Tc,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,an=xLe(y,Xe,ss)|0,Ks=pi-an|0,bt=0,rr=5642,Ge=(Un&8|0)==0|(Ge|0)>(Ks|0)?Ge:Ks+1|0,Ks=Un,Si=67;break}case 105:case 100:if(Xe=Tc,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,(Xe|0)<0){y=XT(0,0,y|0,Xe|0)|0,Xe=ct,bt=Tc,o[bt>>2]=y,o[bt+4>>2]=Xe,bt=1,rr=5642,Si=66;break t}else{bt=(Un&2049|0)!=0&1,rr=Un&2048|0?5643:Un&1|0?5644:5642,Si=66;break t}case 117:{Xe=Tc,bt=0,rr=5642,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,Si=66;break}case 99:{n[hl>>0]=o[Tc>>2],y=hl,bt=0,rr=5642,an=ss,Xe=1,Ge=Ks;break}case 109:{Xe=gPt(o[(qY()|0)>>2]|0)|0,Si=71;break}case 115:{Xe=o[Tc>>2]|0,Xe=Xe|0?Xe:5652,Si=71;break}case 67:{o[Bg>>2]=o[Tc>>2],o[uu>>2]=0,o[Tc>>2]=Bg,an=-1,Xe=Bg,Si=75;break}case 83:{y=o[Tc>>2]|0,Ge?(an=Ge,Xe=y,Si=75):(pv(p,32,le,0,Un),y=0,Si=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{le=FLe(p,+C[Tc>>3],le,Ge,Un,Xe)|0,y=Ds;continue e}default:bt=0,rr=5642,an=ss,Xe=Ge,Ge=Un}while(!1);t:do if((Si|0)==61)Un=Tc,zi=o[Un>>2]|0,Un=o[Un+4>>2]|0,an=Hbe(zi,Un,ss,Xe&32)|0,rr=(y&8|0)==0|(zi|0)==0&(Un|0)==0,bt=rr?0:2,rr=rr?5642:5642+(Xe>>4)|0,Ks=y,y=zi,Xe=Un,Si=67;else if((Si|0)==66)an=pU(y,Xe,ss)|0,Ks=Un,Si=67;else if((Si|0)==71)Si=0,Un=GLe(Xe,0,Ge)|0,zi=(Un|0)==0,y=Xe,bt=0,rr=5642,an=zi?Xe+Ge|0:Un,Xe=zi?Ge:Un-Xe|0,Ge=Ks;else if((Si|0)==75){for(Si=0,rr=Xe,y=0,Ge=0;bt=o[rr>>2]|0,!(!bt||(Ge=Ybe(Dg,bt)|0,(Ge|0)<0|Ge>>>0>(an-y|0)>>>0));)if(y=Ge+y|0,an>>>0>y>>>0)rr=rr+4|0;else break;if((Ge|0)<0){U=-1;break e}if(pv(p,32,le,y,Un),!y)y=0,Si=84;else for(bt=0;;){if(Ge=o[Xe>>2]|0,!Ge){Si=84;break t}if(Ge=Ybe(Dg,Ge)|0,bt=Ge+bt|0,(bt|0)>(y|0)){Si=84;break t}if(o0(p,Dg,Ge),bt>>>0>=y>>>0){Si=84;break}else Xe=Xe+4|0}}while(!1);if((Si|0)==67)Si=0,Xe=(y|0)!=0|(Xe|0)!=0,Un=(Ge|0)!=0|Xe,Xe=((Xe^1)&1)+(pi-an)|0,y=Un?an:ss,an=ss,Xe=Un?(Ge|0)>(Xe|0)?Ge:Xe:Ge,Ge=(Ge|0)>-1?Ks&-65537:Ks;else if((Si|0)==84){Si=0,pv(p,32,le,y,Un^8192),le=(le|0)>(y|0)?le:y,y=Ds;continue}zi=an-y|0,Ks=(Xe|0)<(zi|0)?zi:Xe,Un=Ks+bt|0,le=(le|0)<(Un|0)?Un:le,pv(p,32,le,Un,Ge),o0(p,rr,bt),pv(p,48,le,Un,Ge^65536),pv(p,48,Ks,zi,0),o0(p,y,zi),pv(p,32,le,Un,Ge^8192),y=Ds}e:do if((Si|0)==87&&!p)if(!It)U=0;else{for(U=1;y=o[J+(U<<2)>>2]|0,!!y;)if(Vy(G+(U<<3)|0,y,w),U=U+1|0,(U|0)>=10){U=1;break e}for(;;){if(o[J+(U<<2)>>2]|0){U=-1;break e}if(U=U+1|0,(U|0)>=10){U=1;break}}}while(!1);return B=wg,U|0}function rie(p){return p=p|0,0}function zqe(p){p=p|0}function o0(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]&32||iie(y,w,p)|0}function qAe(p){p=p|0;var y=0,w=0,G=0;if(w=o[p>>2]|0,G=(n[w>>0]|0)+-48|0,G>>>0<10){y=0;do y=G+(y*10|0)|0,w=w+1|0,o[p>>2]=w,G=(n[w>>0]|0)+-48|0;while(G>>>0<10)}else y=0;return y|0}function Vy(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;e:do if(y>>>0<=20)do switch(y|0){case 9:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,o[p>>2]=y;break e}case 10:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,G=p,o[G>>2]=y,o[G+4>>2]=((y|0)<0)<<31>>31;break e}case 11:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,G=p,o[G>>2]=y,o[G+4>>2]=0;break e}case 12:{G=(o[w>>2]|0)+7&-8,y=G,J=o[y>>2]|0,y=o[y+4>>2]|0,o[w>>2]=G+8,G=p,o[G>>2]=J,o[G+4>>2]=y;break e}case 13:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,G=(G&65535)<<16>>16,J=p,o[J>>2]=G,o[J+4>>2]=((G|0)<0)<<31>>31;break e}case 14:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,J=p,o[J>>2]=G&65535,o[J+4>>2]=0;break e}case 15:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,G=(G&255)<<24>>24,J=p,o[J>>2]=G,o[J+4>>2]=((G|0)<0)<<31>>31;break e}case 16:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,J=p,o[J>>2]=G&255,o[J+4>>2]=0;break e}case 17:{J=(o[w>>2]|0)+7&-8,U=+C[J>>3],o[w>>2]=J+8,C[p>>3]=U;break e}case 18:{J=(o[w>>2]|0)+7&-8,U=+C[J>>3],o[w>>2]=J+8,C[p>>3]=U;break e}default:break e}while(!1);while(!1)}function Hbe(p,y,w,G){if(p=p|0,y=y|0,w=w|0,G=G|0,!((p|0)==0&(y|0)==0))do w=w+-1|0,n[w>>0]=l[5694+(p&15)>>0]|0|G,p=D3(p|0,y|0,4)|0,y=ct;while(!((p|0)==0&(y|0)==0));return w|0}function xLe(p,y,w){if(p=p|0,y=y|0,w=w|0,!((p|0)==0&(y|0)==0))do w=w+-1|0,n[w>>0]=p&7|48,p=D3(p|0,y|0,3)|0,y=ct;while(!((p|0)==0&(y|0)==0));return w|0}function pU(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;if(y>>>0>0|(y|0)==0&p>>>0>4294967295){for(;G=hU(p|0,y|0,10,0)|0,w=w+-1|0,n[w>>0]=G&255|48,G=p,p=k3(p|0,y|0,10,0)|0,y>>>0>9|(y|0)==9&G>>>0>4294967295;)y=ct;y=p}else y=p;if(y)for(;w=w+-1|0,n[w>>0]=(y>>>0)%10|0|48,!(y>>>0<10);)y=(y>>>0)/10|0;return w|0}function gPt(p){return p=p|0,Ube(p,o[(nie()|0)+188>>2]|0)|0}function GLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;U=y&255,G=(w|0)!=0;e:do if(G&(p&3|0)!=0)for(J=y&255;;){if((n[p>>0]|0)==J<<24>>24){le=6;break e}if(p=p+1|0,w=w+-1|0,G=(w|0)!=0,!(G&(p&3|0)!=0)){le=5;break}}else le=5;while(!1);(le|0)==5&&(G?le=6:w=0);e:do if((le|0)==6&&(J=y&255,(n[p>>0]|0)!=J<<24>>24)){G=cr(U,16843009)|0;t:do if(w>>>0>3){for(;U=o[p>>2]^G,!((U&-2139062144^-2139062144)&U+-16843009|0);)if(p=p+4|0,w=w+-4|0,w>>>0<=3){le=11;break t}}else le=11;while(!1);if((le|0)==11&&!w){w=0;break}for(;;){if((n[p>>0]|0)==J<<24>>24)break e;if(p=p+1|0,w=w+-1|0,!w){w=0;break}}}while(!1);return(w|0?p:0)|0}function pv(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0;if(le=B,B=B+256|0,U=le,(w|0)>(G|0)&(J&73728|0)==0){if(J=w-G|0,fz(U|0,y|0,(J>>>0<256?J:256)|0)|0,J>>>0>255){y=w-G|0;do o0(p,U,256),J=J+-256|0;while(J>>>0>255);J=y&255}o0(p,U,J)}B=le}function Ybe(p,y){return p=p|0,y=y|0,p?p=qqe(p,y,0)|0:p=0,p|0}function FLe(p,y,w,G,J,U){p=p|0,y=+y,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0;em=B,B=B+560|0,Xe=em+8|0,Ds=em,wg=em+524|0,Dg=wg,bt=em+512|0,o[Ds>>2]=0,Bg=bt+12|0,Qbe(y)|0,(ct|0)<0?(y=-y,fl=1,uu=5659):(fl=(J&2049|0)!=0&1,uu=J&2048|0?5662:J&1|0?5665:5660),Qbe(y)|0,Tc=ct&2146435072;do if(Tc>>>0<2146435072|(Tc|0)==2146435072&!1){if(Ks=+Xbe(y,Ds)*2,le=Ks!=0,le&&(o[Ds>>2]=(o[Ds>>2]|0)+-1),So=U|32,(So|0)==97){zi=U&32,an=zi|0?uu+9|0:uu,rr=fl|2,le=12-G|0;do if(G>>>0>11|(le|0)==0)y=Ks;else{y=8;do le=le+-1|0,y=y*16;while(le|0);if((n[an>>0]|0)==45){y=-(y+(-Ks-y));break}else{y=Ks+y-y;break}}while(!1);Ge=o[Ds>>2]|0,le=(Ge|0)<0?0-Ge|0:Ge,le=pU(le,((le|0)<0)<<31>>31,Bg)|0,(le|0)==(Bg|0)&&(le=bt+11|0,n[le>>0]=48),n[le+-1>>0]=(Ge>>31&2)+43,It=le+-2|0,n[It>>0]=U+15,bt=(G|0)<1,Xe=(J&8|0)==0,le=wg;do Tc=~~y,Ge=le+1|0,n[le>>0]=l[5694+Tc>>0]|zi,y=(y-+(Tc|0))*16,(Ge-Dg|0)==1&&!(Xe&(bt&y==0))?(n[Ge>>0]=46,le=le+2|0):le=Ge;while(y!=0);Tc=le-Dg|0,Dg=Bg-It|0,Bg=(G|0)!=0&(Tc+-2|0)<(G|0)?G+2|0:Tc,le=Dg+rr+Bg|0,pv(p,32,w,le,J),o0(p,an,rr),pv(p,48,w,le,J^65536),o0(p,wg,Tc),pv(p,48,Bg-Tc|0,0,0),o0(p,It,Dg),pv(p,32,w,le,J^8192);break}Ge=(G|0)<0?6:G,le?(le=(o[Ds>>2]|0)+-28|0,o[Ds>>2]=le,y=Ks*268435456):(y=Ks,le=o[Ds>>2]|0),Tc=(le|0)<0?Xe:Xe+288|0,Xe=Tc;do pi=~~y>>>0,o[Xe>>2]=pi,Xe=Xe+4|0,y=(y-+(pi>>>0))*1e9;while(y!=0);if((le|0)>0)for(bt=Tc,rr=Xe;;){if(It=(le|0)<29?le:29,le=rr+-4|0,le>>>0>=bt>>>0){Xe=0;do ss=Kbe(o[le>>2]|0,0,It|0)|0,ss=Hg(ss|0,ct|0,Xe|0,0)|0,pi=ct,Si=hU(ss|0,pi|0,1e9,0)|0,o[le>>2]=Si,Xe=k3(ss|0,pi|0,1e9,0)|0,le=le+-4|0;while(le>>>0>=bt>>>0);Xe&&(bt=bt+-4|0,o[bt>>2]=Xe)}for(Xe=rr;!(Xe>>>0<=bt>>>0);)if(le=Xe+-4|0,!(o[le>>2]|0))Xe=le;else break;if(le=(o[Ds>>2]|0)-It|0,o[Ds>>2]=le,(le|0)>0)rr=Xe;else break}else bt=Tc;if((le|0)<0){G=((Ge+25|0)/9|0)+1|0,Un=(So|0)==102;do{if(zi=0-le|0,zi=(zi|0)<9?zi:9,bt>>>0>>0){It=(1<>>zi,an=0,le=bt;do pi=o[le>>2]|0,o[le>>2]=(pi>>>zi)+an,an=cr(pi&It,rr)|0,le=le+4|0;while(le>>>0>>0);le=o[bt>>2]|0?bt:bt+4|0,an?(o[Xe>>2]=an,bt=le,le=Xe+4|0):(bt=le,le=Xe)}else bt=o[bt>>2]|0?bt:bt+4|0,le=Xe;Xe=Un?Tc:bt,Xe=(le-Xe>>2|0)>(G|0)?Xe+(G<<2)|0:le,le=(o[Ds>>2]|0)+zi|0,o[Ds>>2]=le}while((le|0)<0);le=bt,G=Xe}else le=bt,G=Xe;if(pi=Tc,le>>>0>>0){if(Xe=(pi-le>>2)*9|0,It=o[le>>2]|0,It>>>0>=10){bt=10;do bt=bt*10|0,Xe=Xe+1|0;while(It>>>0>=bt>>>0)}}else Xe=0;if(Un=(So|0)==103,Si=(Ge|0)!=0,bt=Ge-((So|0)!=102?Xe:0)+((Si&Un)<<31>>31)|0,(bt|0)<(((G-pi>>2)*9|0)+-9|0)){if(bt=bt+9216|0,zi=Tc+4+(((bt|0)/9|0)+-1024<<2)|0,bt=((bt|0)%9|0)+1|0,(bt|0)<9){It=10;do It=It*10|0,bt=bt+1|0;while((bt|0)!=9)}else It=10;if(rr=o[zi>>2]|0,an=(rr>>>0)%(It>>>0)|0,bt=(zi+4|0)==(G|0),bt&(an|0)==0)bt=zi;else if(Ks=((rr>>>0)/(It>>>0)|0)&1|0?9007199254740994:9007199254740992,ss=(It|0)/2|0,y=an>>>0>>0?.5:bt&(an|0)==(ss|0)?1:1.5,fl&&(ss=(n[uu>>0]|0)==45,y=ss?-y:y,Ks=ss?-Ks:Ks),bt=rr-an|0,o[zi>>2]=bt,Ks+y!=Ks){if(ss=bt+It|0,o[zi>>2]=ss,ss>>>0>999999999)for(Xe=zi;bt=Xe+-4|0,o[Xe>>2]=0,bt>>>0>>0&&(le=le+-4|0,o[le>>2]=0),ss=(o[bt>>2]|0)+1|0,o[bt>>2]=ss,ss>>>0>999999999;)Xe=bt;else bt=zi;if(Xe=(pi-le>>2)*9|0,rr=o[le>>2]|0,rr>>>0>=10){It=10;do It=It*10|0,Xe=Xe+1|0;while(rr>>>0>=It>>>0)}}else bt=zi;bt=bt+4|0,bt=G>>>0>bt>>>0?bt:G,ss=le}else bt=G,ss=le;for(So=bt;;){if(So>>>0<=ss>>>0){Ds=0;break}if(le=So+-4|0,!(o[le>>2]|0))So=le;else{Ds=1;break}}G=0-Xe|0;do if(Un)if(le=((Si^1)&1)+Ge|0,(le|0)>(Xe|0)&(Xe|0)>-5?(It=U+-1|0,Ge=le+-1-Xe|0):(It=U+-2|0,Ge=le+-1|0),le=J&8,le)zi=le;else{if(Ds&&(hl=o[So+-4>>2]|0,(hl|0)!=0))if((hl>>>0)%10|0)bt=0;else{bt=0,le=10;do le=le*10|0,bt=bt+1|0;while(!((hl>>>0)%(le>>>0)|0|0))}else bt=9;if(le=((So-pi>>2)*9|0)+-9|0,(It|32|0)==102){zi=le-bt|0,zi=(zi|0)>0?zi:0,Ge=(Ge|0)<(zi|0)?Ge:zi,zi=0;break}else{zi=le+Xe-bt|0,zi=(zi|0)>0?zi:0,Ge=(Ge|0)<(zi|0)?Ge:zi,zi=0;break}}else It=U,zi=J&8;while(!1);if(Un=Ge|zi,rr=(Un|0)!=0&1,an=(It|32|0)==102,an)Si=0,le=(Xe|0)>0?Xe:0;else{if(le=(Xe|0)<0?G:Xe,le=pU(le,((le|0)<0)<<31>>31,Bg)|0,bt=Bg,(bt-le|0)<2)do le=le+-1|0,n[le>>0]=48;while((bt-le|0)<2);n[le+-1>>0]=(Xe>>31&2)+43,le=le+-2|0,n[le>>0]=It,Si=le,le=bt-le|0}if(le=fl+1+Ge+rr+le|0,pv(p,32,w,le,J),o0(p,uu,fl),pv(p,48,w,le,J^65536),an){It=ss>>>0>Tc>>>0?Tc:ss,zi=wg+9|0,rr=zi,an=wg+8|0,bt=It;do{if(Xe=pU(o[bt>>2]|0,0,zi)|0,(bt|0)==(It|0))(Xe|0)==(zi|0)&&(n[an>>0]=48,Xe=an);else if(Xe>>>0>wg>>>0){fz(wg|0,48,Xe-Dg|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}o0(p,Xe,rr-Xe|0),bt=bt+4|0}while(bt>>>0<=Tc>>>0);if(Un|0&&o0(p,5710,1),bt>>>0>>0&(Ge|0)>0)for(;;){if(Xe=pU(o[bt>>2]|0,0,zi)|0,Xe>>>0>wg>>>0){fz(wg|0,48,Xe-Dg|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}if(o0(p,Xe,(Ge|0)<9?Ge:9),bt=bt+4|0,Xe=Ge+-9|0,bt>>>0>>0&(Ge|0)>9)Ge=Xe;else{Ge=Xe;break}}pv(p,48,Ge+9|0,9,0)}else{if(Un=Ds?So:ss+4|0,(Ge|0)>-1){Ds=wg+9|0,zi=(zi|0)==0,G=Ds,rr=0-Dg|0,an=wg+8|0,It=ss;do{Xe=pU(o[It>>2]|0,0,Ds)|0,(Xe|0)==(Ds|0)&&(n[an>>0]=48,Xe=an);do if((It|0)==(ss|0)){if(bt=Xe+1|0,o0(p,Xe,1),zi&(Ge|0)<1){Xe=bt;break}o0(p,5710,1),Xe=bt}else{if(Xe>>>0<=wg>>>0)break;fz(wg|0,48,Xe+rr|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}while(!1);Dg=G-Xe|0,o0(p,Xe,(Ge|0)>(Dg|0)?Dg:Ge),Ge=Ge-Dg|0,It=It+4|0}while(It>>>0>>0&(Ge|0)>-1)}pv(p,48,Ge+18|0,18,0),o0(p,Si,Bg-Si|0)}pv(p,32,w,le,J^8192)}else wg=(U&32|0)!=0,le=fl+3|0,pv(p,32,w,le,J&-65537),o0(p,uu,fl),o0(p,y!=y|!1?wg?5686:5690:wg?5678:5682,3),pv(p,32,w,le,J^8192);while(!1);return B=em,((le|0)<(w|0)?w:le)|0}function Qbe(p){p=+p;var y=0;return C[E>>3]=p,y=o[E>>2]|0,ct=o[E+4>>2]|0,y|0}function Xbe(p,y){return p=+p,y=y|0,+ +Jbe(p,y)}function Jbe(p,y){p=+p,y=y|0;var w=0,G=0,J=0;switch(C[E>>3]=p,w=o[E>>2]|0,G=o[E+4>>2]|0,J=D3(w|0,G|0,52)|0,J&2047){case 0:{p!=0?(p=+Jbe(p*18446744073709552e3,y),w=(o[y>>2]|0)+-64|0):w=0,o[y>>2]=w;break}case 2047:break;default:o[y>>2]=(J&2047)+-1022,o[E>>2]=w,o[E+4>>2]=G&-2146435073|1071644672,p=+C[E>>3]}return+p}function qqe(p,y,w){p=p|0,y=y|0,w=w|0;do if(p){if(y>>>0<128){n[p>>0]=y,p=1;break}if(!(o[o[($qe()|0)+188>>2]>>2]|0))if((y&-128|0)==57216){n[p>>0]=y,p=1;break}else{o[(qY()|0)>>2]=84,p=-1;break}if(y>>>0<2048){n[p>>0]=y>>>6|192,n[p+1>>0]=y&63|128,p=2;break}if(y>>>0<55296|(y&-8192|0)==57344){n[p>>0]=y>>>12|224,n[p+1>>0]=y>>>6&63|128,n[p+2>>0]=y&63|128,p=3;break}if((y+-65536|0)>>>0<1048576){n[p>>0]=y>>>18|240,n[p+1>>0]=y>>>12&63|128,n[p+2>>0]=y>>>6&63|128,n[p+3>>0]=y&63|128,p=4;break}else{o[(qY()|0)>>2]=84,p=-1;break}}else p=1;while(!1);return p|0}function $qe(){return tie()|0}function nie(){return tie()|0}function Ube(p,y){p=p|0,y=y|0;var w=0,G=0;for(G=0;;){if((l[5712+G>>0]|0)==(p|0)){p=2;break}if(w=G+1|0,(w|0)==87){w=5800,G=87,p=5;break}else G=w}if((p|0)==2&&(G?(w=5800,p=5):w=5800),(p|0)==5)for(;;){do p=w,w=w+1|0;while(n[p>>0]|0);if(G=G+-1|0,G)p=5;else break}return kx(w,o[y+20>>2]|0)|0}function kx(p,y){return p=p|0,y=y|0,e$e(p,y)|0}function e$e(p,y){return p=p|0,y=y|0,y?y=APt(o[y>>2]|0,o[y+4>>2]|0,p)|0:y=0,(y|0?y:p)|0}function APt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;an=(o[p>>2]|0)+1794895138|0,U=NB(o[p+8>>2]|0,an)|0,G=NB(o[p+12>>2]|0,an)|0,J=NB(o[p+16>>2]|0,an)|0;e:do if(U>>>0>>2>>>0&&(rr=y-(U<<2)|0,G>>>0>>0&J>>>0>>0)&&!((J|G)&3|0)){for(rr=G>>>2,It=J>>>2,bt=0;;){if(Ge=U>>>1,Xe=bt+Ge|0,le=Xe<<1,J=le+rr|0,G=NB(o[p+(J<<2)>>2]|0,an)|0,J=NB(o[p+(J+1<<2)>>2]|0,an)|0,!(J>>>0>>0&G>>>0<(y-J|0)>>>0)){G=0;break e}if(n[p+(J+G)>>0]|0){G=0;break e}if(G=jqe(w,p+J|0)|0,!G)break;if(G=(G|0)<0,(U|0)==1){G=0;break e}else bt=G?bt:Xe,U=G?Ge:U-Ge|0}G=le+It|0,J=NB(o[p+(G<<2)>>2]|0,an)|0,G=NB(o[p+(G+1<<2)>>2]|0,an)|0,G>>>0>>0&J>>>0<(y-G|0)>>>0?G=n[p+(G+J)>>0]|0?0:p+G|0:G=0}else G=0;while(!1);return G|0}function NB(p,y){p=p|0,y=y|0;var w=0;return w=x3(p|0)|0,(y|0?w:p)|0}function iie(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=w+16|0,J=o[G>>2]|0,J?U=5:dPt(w)|0?G=0:(J=o[G>>2]|0,U=5);e:do if((U|0)==5){if(Ge=w+20|0,le=o[Ge>>2]|0,G=le,(J-le|0)>>>0>>0){G=KL[o[w+36>>2]&7](w,p,y)|0;break}t:do if((n[w+75>>0]|0)>-1){for(le=y;;){if(!le){U=0,J=p;break t}if(J=le+-1|0,(n[p+J>>0]|0)==10)break;le=J}if(G=KL[o[w+36>>2]&7](w,p,le)|0,G>>>0>>0)break e;U=le,J=p+le|0,y=y-le|0,G=o[Ge>>2]|0}else U=0,J=p;while(!1);Md(G|0,J|0,y|0)|0,o[Ge>>2]=(o[Ge>>2]|0)+y,G=U+y|0}while(!1);return G|0}function dPt(p){p=p|0;var y=0,w=0;return y=p+74|0,w=n[y>>0]|0,n[y>>0]=w+255|w,y=o[p>>2]|0,y&8?(o[p>>2]=y|32,p=-1):(o[p+8>>2]=0,o[p+4>>2]=0,w=o[p+44>>2]|0,o[p+28>>2]=w,o[p+20>>2]=w,o[p+16>>2]=w+(o[p+48>>2]|0),p=0),p|0}function zs(p,y){p=ke(p),y=ke(y);var w=0,G=0;w=CA(p)|0;do if((w&2147483647)>>>0<=2139095040){if(G=CA(y)|0,(G&2147483647)>>>0<=2139095040)if((G^w|0)<0){p=(w|0)<0?y:p;break}else{p=p>2]=p,o[E>>2]|0|0}function fU(p,y){p=ke(p),y=ke(y);var w=0,G=0;w=t$e(p)|0;do if((w&2147483647)>>>0<=2139095040){if(G=t$e(y)|0,(G&2147483647)>>>0<=2139095040)if((G^w|0)<0){p=(w|0)<0?p:y;break}else{p=p>2]=p,o[E>>2]|0|0}function Az(p,y){p=ke(p),y=ke(y);var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;U=(I[E>>2]=p,o[E>>2]|0),Ge=(I[E>>2]=y,o[E>>2]|0),w=U>>>23&255,le=Ge>>>23&255,Xe=U&-2147483648,J=Ge<<1;e:do if(J|0&&!((w|0)==255|(($Ae(y)|0)&2147483647)>>>0>2139095040)){if(G=U<<1,G>>>0<=J>>>0)return y=ke(p*ke(0)),ke((G|0)==(J|0)?y:p);if(w)G=U&8388607|8388608;else{if(w=U<<9,(w|0)>-1){G=w,w=0;do w=w+-1|0,G=G<<1;while((G|0)>-1)}else w=0;G=U<<1-w}if(le)Ge=Ge&8388607|8388608;else{if(U=Ge<<9,(U|0)>-1){J=0;do J=J+-1|0,U=U<<1;while((U|0)>-1)}else J=0;le=J,Ge=Ge<<1-J}J=G-Ge|0,U=(J|0)>-1;t:do if((w|0)>(le|0)){for(;;){if(U)if(J)G=J;else break;if(G=G<<1,w=w+-1|0,J=G-Ge|0,U=(J|0)>-1,(w|0)<=(le|0))break t}y=ke(p*ke(0));break e}while(!1);if(U)if(J)G=J;else{y=ke(p*ke(0));break}if(G>>>0<8388608)do G=G<<1,w=w+-1|0;while(G>>>0<8388608);(w|0)>0?w=G+-8388608|w<<23:w=G>>>(1-w|0),y=(o[E>>2]=w|Xe,ke(I[E>>2]))}else bt=3;while(!1);return(bt|0)==3&&(y=ke(p*y),y=ke(y/y)),ke(y)}function $Ae(p){return p=ke(p),I[E>>2]=p,o[E>>2]|0|0}function pPt(p,y){return p=p|0,y=y|0,zAe(o[582]|0,p,y)|0}function me(p){p=p|0,Ko()}function dz(p){p=p|0}function r$e(p,y){return p=p|0,y=y|0,0}function ua(p){return p=p|0,(n$e(p+4|0)|0)==-1?(DF[o[(o[p>>2]|0)+8>>2]&127](p),p=1):p=0,p|0}function n$e(p){p=p|0;var y=0;return y=o[p>>2]|0,o[p>>2]=y+-1,y+-1|0}function IU(p){p=p|0,ua(p)|0&&c_(p)}function c_(p){p=p|0;var y=0;y=p+8|0,o[y>>2]|0&&(n$e(y)|0)!=-1||DF[o[(o[p>>2]|0)+16>>2]&127](p)}function Ku(p){p=p|0;var y=0;for(y=p|0?p:1;p=zne(y)|0,!(p|0);){if(p=sie()|0,!p){p=0;break}nEe[p&0]()}return p|0}function pz(p){return p=p|0,Ku(p)|0}function ti(p){p=p|0,qne(p)}function Gw(p){p=p|0,(n[p+11>>0]|0)<0&&ti(o[p>>2]|0)}function sie(){var p=0;return p=o[2923]|0,o[2923]=p+0,p|0}function N3(){}function XT(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,G=y-G-(w>>>0>p>>>0|0)>>>0,ct=G,p-w>>>0|0|0}function Hg(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,w=p+w>>>0,ct=y+G+(w>>>0

>>0|0)>>>0,w|0|0}function fz(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;if(U=p+w|0,y=y&255,(w|0)>=67){for(;p&3;)n[p>>0]=y,p=p+1|0;for(G=U&-4|0,J=G-64|0,le=y|y<<8|y<<16|y<<24;(p|0)<=(J|0);)o[p>>2]=le,o[p+4>>2]=le,o[p+8>>2]=le,o[p+12>>2]=le,o[p+16>>2]=le,o[p+20>>2]=le,o[p+24>>2]=le,o[p+28>>2]=le,o[p+32>>2]=le,o[p+36>>2]=le,o[p+40>>2]=le,o[p+44>>2]=le,o[p+48>>2]=le,o[p+52>>2]=le,o[p+56>>2]=le,o[p+60>>2]=le,p=p+64|0;for(;(p|0)<(G|0);)o[p>>2]=le,p=p+4|0}for(;(p|0)<(U|0);)n[p>>0]=y,p=p+1|0;return U-w|0}function Kbe(p,y,w){return p=p|0,y=y|0,w=w|0,(w|0)<32?(ct=y<>>32-w,p<>>w,p>>>w|(y&(1<>>w-32|0)}function Md(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;if((w|0)>=8192)return Hu(p|0,y|0,w|0)|0;if(U=p|0,J=p+w|0,(p&3)==(y&3)){for(;p&3;){if(!w)return U|0;n[p>>0]=n[y>>0]|0,p=p+1|0,y=y+1|0,w=w-1|0}for(w=J&-4|0,G=w-64|0;(p|0)<=(G|0);)o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2],o[p+16>>2]=o[y+16>>2],o[p+20>>2]=o[y+20>>2],o[p+24>>2]=o[y+24>>2],o[p+28>>2]=o[y+28>>2],o[p+32>>2]=o[y+32>>2],o[p+36>>2]=o[y+36>>2],o[p+40>>2]=o[y+40>>2],o[p+44>>2]=o[y+44>>2],o[p+48>>2]=o[y+48>>2],o[p+52>>2]=o[y+52>>2],o[p+56>>2]=o[y+56>>2],o[p+60>>2]=o[y+60>>2],p=p+64|0,y=y+64|0;for(;(p|0)<(w|0);)o[p>>2]=o[y>>2],p=p+4|0,y=y+4|0}else for(w=J-4|0;(p|0)<(w|0);)n[p>>0]=n[y>>0]|0,n[p+1>>0]=n[y+1>>0]|0,n[p+2>>0]=n[y+2>>0]|0,n[p+3>>0]=n[y+3>>0]|0,p=p+4|0,y=y+4|0;for(;(p|0)<(J|0);)n[p>>0]=n[y>>0]|0,p=p+1|0,y=y+1|0;return U|0}function DB(p){p=p|0;var y=0;return y=n[Q+(p&255)>>0]|0,(y|0)<8?y|0:(y=n[Q+(p>>8&255)>>0]|0,(y|0)<8?y+8|0:(y=n[Q+(p>>16&255)>>0]|0,(y|0)<8?y+16|0:(n[Q+(p>>>24)>>0]|0)+24|0))}function hh(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0;if(It=p,Xe=y,bt=Xe,le=w,an=G,Ge=an,!bt)return U=(J|0)!=0,Ge?U?(o[J>>2]=p|0,o[J+4>>2]=y&0,an=0,J=0,ct=an,J|0):(an=0,J=0,ct=an,J|0):(U&&(o[J>>2]=(It>>>0)%(le>>>0),o[J+4>>2]=0),an=0,J=(It>>>0)/(le>>>0)>>>0,ct=an,J|0);U=(Ge|0)==0;do if(le){if(!U){if(U=(_n(Ge|0)|0)-(_n(bt|0)|0)|0,U>>>0<=31){rr=U+1|0,Ge=31-U|0,y=U-31>>31,le=rr,p=It>>>(rr>>>0)&y|bt<>>(rr>>>0)&y,U=0,Ge=It<>2]=p|0,o[J+4>>2]=Xe|y&0,an=0,J=0,ct=an,J|0):(an=0,J=0,ct=an,J|0)}if(U=le-1|0,U&le|0){Ge=(_n(le|0)|0)+33-(_n(bt|0)|0)|0,zi=64-Ge|0,rr=32-Ge|0,Xe=rr>>31,Ks=Ge-32|0,y=Ks>>31,le=Ge,p=rr-1>>31&bt>>>(Ks>>>0)|(bt<>>(Ge>>>0))&y,y=y&bt>>>(Ge>>>0),U=It<>>(Ks>>>0))&Xe|It<>31;break}return J|0&&(o[J>>2]=U&It,o[J+4>>2]=0),(le|0)==1?(Ks=Xe|y&0,zi=p|0|0,ct=Ks,zi|0):(zi=DB(le|0)|0,Ks=bt>>>(zi>>>0)|0,zi=bt<<32-zi|It>>>(zi>>>0)|0,ct=Ks,zi|0)}else{if(U)return J|0&&(o[J>>2]=(bt>>>0)%(le>>>0),o[J+4>>2]=0),Ks=0,zi=(bt>>>0)/(le>>>0)>>>0,ct=Ks,zi|0;if(!It)return J|0&&(o[J>>2]=0,o[J+4>>2]=(bt>>>0)%(Ge>>>0)),Ks=0,zi=(bt>>>0)/(Ge>>>0)>>>0,ct=Ks,zi|0;if(U=Ge-1|0,!(U&Ge))return J|0&&(o[J>>2]=p|0,o[J+4>>2]=U&bt|y&0),Ks=0,zi=bt>>>((DB(Ge|0)|0)>>>0),ct=Ks,zi|0;if(U=(_n(Ge|0)|0)-(_n(bt|0)|0)|0,U>>>0<=30){y=U+1|0,Ge=31-U|0,le=y,p=bt<>>(y>>>0),y=bt>>>(y>>>0),U=0,Ge=It<>2]=p|0,o[J+4>>2]=Xe|y&0,Ks=0,zi=0,ct=Ks,zi|0):(Ks=0,zi=0,ct=Ks,zi|0)}while(!1);if(!le)bt=Ge,Xe=0,Ge=0;else{rr=w|0|0,It=an|G&0,bt=Hg(rr|0,It|0,-1,-1)|0,w=ct,Xe=Ge,Ge=0;do G=Xe,Xe=U>>>31|Xe<<1,U=Ge|U<<1,G=p<<1|G>>>31|0,an=p>>>31|y<<1|0,XT(bt|0,w|0,G|0,an|0)|0,zi=ct,Ks=zi>>31|((zi|0)<0?-1:0)<<1,Ge=Ks&1,p=XT(G|0,an|0,Ks&rr|0,(((zi|0)<0?-1:0)>>31|((zi|0)<0?-1:0)<<1)&It|0)|0,y=ct,le=le-1|0;while(le|0);bt=Xe,Xe=0}return le=0,J|0&&(o[J>>2]=p,o[J+4>>2]=y),Ks=(U|0)>>>31|(bt|le)<<1|(le<<1|U>>>31)&0|Xe,zi=(U<<1|0)&-2|Ge,ct=Ks,zi|0}function k3(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,hh(p,y,w,G,0)|0}function kB(p){p=p|0;var y=0,w=0;return w=p+15&-16|0,y=o[b>>2]|0,p=y+w|0,(w|0)>0&(p|0)<(y|0)|(p|0)<0?(po()|0,Vs(12),-1):(o[b>>2]=p,(p|0)>(Hi()|0)&&!(Nn()|0)?(o[b>>2]=y,Vs(12),-1):y|0)}function JT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;if((y|0)<(p|0)&(p|0)<(y+w|0)){for(G=p,y=y+w|0,p=p+w|0;(w|0)>0;)p=p-1|0,y=y-1|0,w=w-1|0,n[p>>0]=n[y>>0]|0;p=G}else Md(p,y,w)|0;return p|0}function hU(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;return U=B,B=B+16|0,J=U|0,hh(p,y,w,G,J)|0,B=U,ct=o[J+4>>2]|0,o[J>>2]|0|0}function x3(p){return p=p|0,(p&255)<<24|(p>>8&255)<<16|(p>>16&255)<<8|p>>>24|0}function Iz(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,c$e[p&1](y|0,w|0,G|0,J|0,U|0)}function ZLe(p,y,w){p=p|0,y=y|0,w=ke(w),l$e[p&1](y|0,ke(w))}function LLe(p,y,w){p=p|0,y=y|0,w=+w,u$e[p&31](y|0,+w)}function VLe(p,y,w,G){return p=p|0,y=y|0,w=ke(w),G=ke(G),ke(lie[p&0](y|0,ke(w),ke(G)))}function $Y(p,y){p=p|0,y=y|0,DF[p&127](y|0)}function hN(p,y,w){p=p|0,y=y|0,w=w|0,qD[p&31](y|0,w|0)}function i$e(p,y){return p=p|0,y=y|0,mC[p&31](y|0)|0}function jbe(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0,eQ[p&1](y|0,+w,+G,J|0)}function PLe(p,y,w,G){p=p|0,y=y|0,w=+w,G=+G,Zg[p&1](y|0,+w,+G)}function zbe(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,KL[p&7](y|0,w|0,G|0)|0}function qbe(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,+tEe[p&1](y|0,w|0,G|0)}function $be(p,y){return p=p|0,y=y|0,+GP[p&15](y|0)}function WLe(p,y,w){return p=p|0,y=y|0,w=+w,tQ[p&1](y|0,+w)|0}function OLe(p,y,w){return p=p|0,y=y|0,w=w|0,uie[p&15](y|0,w|0)|0}function xx(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=+G,J=+J,U=U|0,rde[p&1](y|0,w|0,+G,+J,U|0)}function G3(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,nde[p&1](y|0,w|0,G|0,J|0,U|0,le|0)}function oie(p,y,w){return p=p|0,y=y|0,w=w|0,+rEe[p&7](y|0,w|0)}function s$e(p){return p=p|0,mz[p&7]()|0}function MLe(p,y,w,G,J,U){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,ide[p&1](y|0,w|0,G|0,J|0,U|0)|0}function HLe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=+J,gie[p&1](y|0,w|0,G|0,+J)}function YLe(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=ke(G),J=J|0,U=ke(U),le=le|0,Cz[p&1](y|0,w|0,ke(G),J|0,ke(U),le|0)}function QLe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,UT[p&15](y|0,w|0,G|0)}function XLe(p){p=p|0,nEe[p&0]()}function o$e(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G,Aie[p&15](y|0,w|0,+G)}function fPt(p,y,w){return p=p|0,y=+y,w=+w,KLe[p&1](+y,+w)|0}function IPt(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,Ir[p&15](y|0,w|0,G|0,J|0)}function hPt(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,jt(0)}function mPt(p,y){p=p|0,y=ke(y),jt(1)}function Gx(p,y){p=p|0,y=+y,jt(2)}function CPt(p,y,w){return p=p|0,y=ke(y),w=ke(w),jt(3),As}function td(p){p=p|0,jt(4)}function ede(p,y){p=p|0,y=y|0,jt(5)}function NF(p){return p=p|0,jt(6),0}function _Pt(p,y,w,G){p=p|0,y=+y,w=+w,G=G|0,jt(7)}function yPt(p,y,w){p=p|0,y=+y,w=+w,jt(8)}function bPt(p,y,w){return p=p|0,y=y|0,w=w|0,jt(9),0}function EPt(p,y,w){return p=p|0,y=y|0,w=w|0,jt(10),0}function hz(p){return p=p|0,jt(11),0}function SPt(p,y){return p=p|0,y=+y,jt(12),0}function tde(p,y){return p=p|0,y=y|0,jt(13),0}function vPt(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0,jt(14)}function BPt(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,jt(15)}function JLe(p,y){return p=p|0,y=y|0,jt(16),0}function wPt(){return jt(17),0}function ULe(p,y,w,G,J){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,jt(18),0}function TPt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G,jt(19)}function a$e(p,y,w,G,J,U){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=U|0,jt(20)}function eEe(p,y,w){p=p|0,y=y|0,w=w|0,jt(21)}function RPt(){jt(22)}function aie(p,y,w){p=p|0,y=y|0,w=+w,jt(23)}function NPt(p,y){return p=+p,y=+y,jt(24),0}function cie(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,jt(25)}var c$e=[hPt,yAe],l$e=[mPt,$1],u$e=[Gx,xC,$_,r1,gB,hw,GT,b0,e2,yd,ag,Eb,n1,U2,e0,n_,Xp,cE,lE,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx],lie=[CPt],DF=[td,dz,IA,EI,zd,hge,Pre,pP,BVt,GZe,rU,xne,cbe,dv,xP,IN,Une,ZA,ry,bb,ia,bI,xD,IB,kr,Ve,iv,Aa,rye,tN,fC,yw,iye,mE,l3,Zre,a7,FL,Hre,$Fe,xY,vl,dye,Vge,ZL,Qge,b7,JR,une,vye,w7,Nye,_ne,Vye,mVt,yVt,sAe,oAe,Xye,Kye,Ga,qye,P7,Ct,i0,cLe,Sbe,rPt,rz,JL,UL,SLe,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td],qD=[ede,lB,ND,kD,UR,lc,fh,rf,yI,Qp,uB,Ih,Np,t2,Ro,AE,AB,Xc,iu,ny,i_,ft,m7,Hge,WY,sS,RVt,mbe,ede,ede,ede,ede],mC=[NF,dU,t1,aA,uE,eh,Wf,Mo,gp,lF,gE,FT,hp,Am,Bb,cVt,nAe,Rne,NP,Fb,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF],eQ=[_Pt,bL],Zg=[yPt,xZe],KL=[bPt,$ne,uPt,Mbe,LD,MD,fZe,pLe],tEe=[EPt,bB],GP=[hz,Dm,Dp,dE,gF,x,L,te,Re,Le,hz,hz,hz,hz,hz,hz],tQ=[SPt,hVt],uie=[tde,r$e,K2,ja,hA,s3,CY,Ige,vge,Cye,$E,GAe,tde,tde,tde,tde],rde=[vPt,t3],nde=[BPt,lg],rEe=[JLe,yL,dr,Ur,mi,Age,JLe,JLe],mz=[wPt,Vi,N_,RD,eU,DZe,jye,oz],ide=[ULe,Yp],gie=[TPt,A3],Cz=[a$e,ZT],UT=[eEe,fu,uF,KR,Ou,n3,age,Sd,sVt,cF,PVt,jVt,yLe,eEe,eEe,eEe],nEe=[RPt],Aie=[aie,DD,q_,aE,qS,Ip,Xh,E0,PJ,PL,pVt,aie,aie,aie,aie,aie],KLe=[NPt,SVt],Ir=[cie,lge,p3,HT,Zye,y3,lN,o_,rbe,Wne,Fbe,cie,cie,cie,cie,cie];return{_llvm_bswap_i32:x3,dynCall_idd:fPt,dynCall_i:s$e,_i64Subtract:XT,___udivdi3:k3,dynCall_vif:ZLe,setThrew:sd,dynCall_viii:QLe,_bitshift64Lshr:D3,_bitshift64Shl:Kbe,dynCall_vi:$Y,dynCall_viiddi:xx,dynCall_diii:qbe,dynCall_iii:OLe,_memset:fz,_sbrk:kB,_memcpy:Md,__GLOBAL__sub_I_Yoga_cpp:cB,dynCall_vii:hN,___uremdi3:hU,dynCall_vid:LLe,stackAlloc:Tf,_nbind_init:A2,getTempRet0:il,dynCall_di:$be,dynCall_iid:WLe,setTempRet0:Om,_i64Add:Hg,dynCall_fiff:VLe,dynCall_iiii:zbe,_emscripten_get_global_libc:jAe,dynCall_viid:o$e,dynCall_viiid:HLe,dynCall_viififi:YLe,dynCall_ii:i$e,__GLOBAL__sub_I_Binding_cc:YVt,dynCall_viiii:IPt,dynCall_iiiiii:MLe,stackSave:cm,dynCall_viiiii:Iz,__GLOBAL__sub_I_nbind_cc:Ta,dynCall_vidd:PLe,_free:qne,runPostSets:N3,dynCall_viiiiii:G3,establishStackSpace:rc,_memmove:JT,stackRestore:Fl,_malloc:zne,__GLOBAL__sub_I_common_cc:Jm,dynCall_viddi:jbe,dynCall_dii:oie,dynCall_v:XLe}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function e(t){t=t||[],ensureInitRuntime();var r=t.length+1;function n(){for(var f=0;f<3;f++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];n();for(var o=0;o0||(preRun(),runDependencies>0)||Module.calledRun)return;function t(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()}Module.run=Module.run=run;function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(e){Module.onAbort&&Module.onAbort(e),e!==void 0?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t=` -If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(n){r=n(r,e)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var WW=H((dtu,xMn)=>{"use strict";var YUo=DMn(),QUo=kMn(),kIr=!1,xIr=null;QUo({},function(e,t){if(!kIr){if(kIr=!0,e)throw e;xIr=t}});if(!kIr)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");xMn.exports=YUo(xIr.bind,xIr.lib)});var FIr=H((ptu,GIr)=>{"use strict";var GMn=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);GIr.exports=GMn;GIr.exports.default=GMn});var ZMn=H((ftu,FMn)=>{"use strict";FMn.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var dBe=H((Itu,ZIr)=>{"use strict";var XUo=q5(),JUo=FIr(),UUo=ZMn(),LMn=e=>{if(typeof e!="string"||e.length===0||(e=XUo(e),e.length===0))return 0;e=e.replace(UUo()," ");let t=0;for(let r=0;r=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=JUo(n)?2:1)}return t};ZIr.exports=LMn;ZIr.exports.default=LMn});var FMe=H((htu,LIr)=>{"use strict";var KUo=dBe(),VMn=e=>{let t=0;for(let r of e.split(` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(n){r=n(r,e)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var WW=H((ptu,xMn)=>{"use strict";var YUo=DMn(),QUo=kMn(),kIr=!1,xIr=null;QUo({},function(e,t){if(!kIr){if(kIr=!0,e)throw e;xIr=t}});if(!kIr)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");xMn.exports=YUo(xIr.bind,xIr.lib)});var FIr=H((ftu,GIr)=>{"use strict";var GMn=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);GIr.exports=GMn;GIr.exports.default=GMn});var ZMn=H((Itu,FMn)=>{"use strict";FMn.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var dBe=H((htu,ZIr)=>{"use strict";var XUo=q5(),JUo=FIr(),UUo=ZMn(),LMn=e=>{if(typeof e!="string"||e.length===0||(e=XUo(e),e.length===0))return 0;e=e.replace(UUo()," ");let t=0;for(let r=0;r=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=JUo(n)?2:1)}return t};ZIr.exports=LMn;ZIr.exports.default=LMn});var FMe=H((mtu,LIr)=>{"use strict";var KUo=dBe(),VMn=e=>{let t=0;for(let r of e.split(` `))t=Math.max(t,KUo(r));return t};LIr.exports=VMn;LIr.exports.default=VMn});var PMn=H(ZMe=>{"use strict";var jUo=ZMe&&ZMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZMe,"__esModule",{value:!0});var zUo=jUo(FMe()),VIr={};ZMe.default=e=>{if(e.length===0)return{width:0,height:0};if(VIr[e])return VIr[e];let t=zUo.default(e),r=e.split(` -`).length;return VIr[e]={width:t,height:r},{width:t,height:r}}});var WMn=H(LMe=>{"use strict";var qUo=LMe&&LMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LMe,"__esModule",{value:!0});var C_=qUo(WW()),$Uo=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?C_.default.POSITION_TYPE_ABSOLUTE:C_.default.POSITION_TYPE_RELATIVE)},eKo=(e,t)=>{"marginLeft"in t&&e.setMargin(C_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(C_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(C_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(C_.default.EDGE_BOTTOM,t.marginBottom||0)},tKo=(e,t)=>{"paddingLeft"in t&&e.setPadding(C_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(C_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(C_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(C_.default.EDGE_BOTTOM,t.paddingBottom||0)},rKo=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(C_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(C_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(C_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(C_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(C_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(C_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(C_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(C_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(C_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_AROUND))},nKo=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},iKo=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?C_.default.DISPLAY_FLEX:C_.default.DISPLAY_NONE)},sKo=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(C_.default.EDGE_TOP,r),e.setBorder(C_.default.EDGE_BOTTOM,r),e.setBorder(C_.default.EDGE_LEFT,r),e.setBorder(C_.default.EDGE_RIGHT,r)}};LMe.default=(e,t={})=>{$Uo(e,t),eKo(e,t),tKo(e,t),rKo(e,t),nKo(e,t),iKo(e,t),sKo(e,t)}});var OIr=H((_tu,MMn)=>{"use strict";var VMe=dBe(),oKo=q5(),aKo=ult(),WIr=new Set(["\x1B","\x9B"]),cKo=39,OMn=e=>`${WIr.values().next().value}[${e}m`,lKo=e=>e.split(" ").map(t=>VMe(t)),PIr=(e,t,r)=>{let n=[...t],a=!1,o=VMe(oKo(e[e.length-1]));for(let[l,A]of n.entries()){let f=VMe(A);if(o+f<=r?e[e.length-1]+=A:(e.push(A),o=0),WIr.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(o+=f,o===r&&l0&&e.length>1&&(e[e.length-2]+=e.pop())},uKo=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(VMe(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},gKo=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",a="",o,l=lKo(e),A=[""];for(let[f,I]of e.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let C=VMe(A[A.length-1]);if(f!==0&&(C>=t&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),C=0),(C>0||r.trim===!1)&&(A[A.length-1]+=" ",C++)),r.hard&&l[f]>t){let b=t-C,E=1+Math.floor((l[f]-b-1)/t);Math.floor((l[f]-1)/t)t&&C>0&&l[f]>0){if(r.wordWrap===!1&&Ct&&r.wordWrap===!1){PIr(A,I,t);continue}A[A.length-1]+=I}r.trim!==!1&&(A=A.map(uKo)),n=A.join(` +`).length;return VIr[e]={width:t,height:r},{width:t,height:r}}});var WMn=H(LMe=>{"use strict";var qUo=LMe&&LMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LMe,"__esModule",{value:!0});var C_=qUo(WW()),$Uo=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?C_.default.POSITION_TYPE_ABSOLUTE:C_.default.POSITION_TYPE_RELATIVE)},eKo=(e,t)=>{"marginLeft"in t&&e.setMargin(C_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(C_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(C_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(C_.default.EDGE_BOTTOM,t.marginBottom||0)},tKo=(e,t)=>{"paddingLeft"in t&&e.setPadding(C_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(C_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(C_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(C_.default.EDGE_BOTTOM,t.paddingBottom||0)},rKo=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(C_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(C_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(C_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(C_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(C_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(C_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(C_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(C_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(C_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_AROUND))},nKo=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},iKo=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?C_.default.DISPLAY_FLEX:C_.default.DISPLAY_NONE)},sKo=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(C_.default.EDGE_TOP,r),e.setBorder(C_.default.EDGE_BOTTOM,r),e.setBorder(C_.default.EDGE_LEFT,r),e.setBorder(C_.default.EDGE_RIGHT,r)}};LMe.default=(e,t={})=>{$Uo(e,t),eKo(e,t),tKo(e,t),rKo(e,t),nKo(e,t),iKo(e,t),sKo(e,t)}});var OIr=H((ytu,MMn)=>{"use strict";var VMe=dBe(),oKo=q5(),aKo=ult(),WIr=new Set(["\x1B","\x9B"]),cKo=39,OMn=e=>`${WIr.values().next().value}[${e}m`,lKo=e=>e.split(" ").map(t=>VMe(t)),PIr=(e,t,r)=>{let n=[...t],a=!1,o=VMe(oKo(e[e.length-1]));for(let[l,A]of n.entries()){let f=VMe(A);if(o+f<=r?e[e.length-1]+=A:(e.push(A),o=0),WIr.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(o+=f,o===r&&l0&&e.length>1&&(e[e.length-2]+=e.pop())},uKo=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(VMe(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},gKo=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",a="",o,l=lKo(e),A=[""];for(let[f,I]of e.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let C=VMe(A[A.length-1]);if(f!==0&&(C>=t&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),C=0),(C>0||r.trim===!1)&&(A[A.length-1]+=" ",C++)),r.hard&&l[f]>t){let b=t-C,E=1+Math.floor((l[f]-b-1)/t);Math.floor((l[f]-1)/t)t&&C>0&&l[f]>0){if(r.wordWrap===!1&&Ct&&r.wordWrap===!1){PIr(A,I,t);continue}A[A.length-1]+=I}r.trim!==!1&&(A=A.map(uKo)),n=A.join(` `);for(let[f,I]of[...n].entries()){if(a+=I,WIr.has(I)){let b=parseFloat(/\d[^m]*/.exec(n.slice(f,f+4)));o=b===cKo?null:b}let C=aKo.codes.get(Number(o));o&&C&&(n[f+1]===` `?a+=OMn(C):I===` `&&(a+=OMn(o)))}return a};MMn.exports=(e,t,r)=>String(e).normalize().replace(/\r\n/g,` `).split(` `).map(n=>gKo(n,t,r)).join(` -`)});var QMn=H((ytu,YMn)=>{"use strict";var HMn="[\uD800-\uDBFF][\uDC00-\uDFFF]",AKo=e=>e&&e.exact?new RegExp(`^${HMn}$`):new RegExp(HMn,"g");YMn.exports=AKo});var Rpt=H((btu,KMn)=>{"use strict";var dKo=FIr(),pKo=QMn(),XMn=ult(),UMn=["\x1B","\x9B"],Tpt=e=>`${UMn[0]}[${e}m`,JMn=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let l=XMn.codes.get(parseInt(a,10));if(l){let A=e.indexOf(l.toString());A>=0?e.splice(A,1):n.push(Tpt(t?l:o))}else if(t){n.push(Tpt(0));break}else n.push(Tpt(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=Tpt(XMn.codes.get(parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")};KMn.exports=(e,t,r)=>{let n=[...e.normalize()],a=[];r=typeof r=="number"?r:n.length;let o=!1,l,A=0,f="";for(let[I,C]of n.entries()){let b=!1;if(UMn.includes(C)){let E=/\d[^m]*/.exec(e.slice(I,I+18));l=E&&E.length>0?E[0]:void 0,At&&A<=r)f+=C;else if(A===t&&!o&&l!==void 0)f=JMn(a);else if(A>=r){f+=JMn(a,!0,l);break}}return f}});var MIr=H((Etu,jMn)=>{"use strict";var Ooe=Rpt(),fKo=dBe();function Npt(e,t,r){if(e.charAt(t)===" ")return t;for(let n=1;n<=3;n++)if(r){if(e.charAt(t+n)===" ")return t+n}else if(e.charAt(t-n)===" ")return t-n;return t}jMn.exports=(e,t,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:n,space:a,preferTruncationOnSpace:o}=r,l="\u2026",A=1;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let f=fKo(e);if(f<=t)return e;if(n==="start"){if(o){let I=Npt(e,f-t+1,!0);return l+Ooe(e,I,f).trim()}return a===!0&&(l+=" ",A=2),l+Ooe(e,f-t+A,f)}if(n==="middle"){a===!0&&(l=" "+l+" ",A=3);let I=Math.floor(t/2);if(o){let C=Npt(e,I),b=Npt(e,f-(t-I)+1,!0);return Ooe(e,0,C)+l+Ooe(e,b,f).trim()}return Ooe(e,0,I)+l+Ooe(e,f-(t-I)+A,f)}if(n==="end"){if(o){let I=Npt(e,t-1);return Ooe(e,0,I)+l}return a===!0&&(l=" "+l,A=2),Ooe(e,0,t-A)+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}});var YIr=H(PMe=>{"use strict";var zMn=PMe&&PMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PMe,"__esModule",{value:!0});var IKo=zMn(OIr()),hKo=zMn(MIr()),HIr={};PMe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(HIr[n])return HIr[n];let a=e;if(r==="wrap"&&(a=IKo.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=hKo.default(e,t,{position:o})}return HIr[n]=a,a}});var XIr=H(QIr=>{"use strict";Object.defineProperty(QIr,"__esModule",{value:!0});var qMn=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=qMn(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};QIr.default=qMn});var JIr=H(Z1=>{"use strict";var WMe=Z1&&Z1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Z1,"__esModule",{value:!0});Z1.setTextNodeValue=Z1.createTextNode=Z1.setStyle=Z1.setAttribute=Z1.removeChildNode=Z1.insertBeforeNode=Z1.appendChildNode=Z1.createNode=Z1.TEXT_NAME=void 0;var mKo=WMe(WW()),$Mn=WMe(PMn()),CKo=WMe(WMn()),_Ko=WMe(YIr()),yKo=WMe(XIr());Z1.TEXT_NAME="#text";Z1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:mKo.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(bKo.bind(null,r))),r};Z1.appendChildNode=(e,t)=>{var r;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Z1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&CKo.default(e.yogaNode,t)};Z1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Z1.setTextNodeValue(t,e),t};var bKo=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:yKo.default(e),o=$Mn.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=_Ko.default(a,t,l);return $Mn.default(A)},eHn=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:eHn(e.parentNode)},Dpt=e=>{let t=eHn(e);t?.markDirty()};Z1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Dpt(e)}});var sHn=H(OMe=>{"use strict";var iHn=OMe&&OMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OMe,"__esModule",{value:!0});var tHn=xMe(),EKo=iHn(vMn()),rHn=iHn(WW()),mG=JIr(),nHn=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};OMe.default=EKo.default({schedulePassiveEffects:tHn.unstable_scheduleCallback,cancelPassiveEffects:tHn.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=mG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?mG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:mG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return mG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{mG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{mG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_FLEX)},appendInitialChild:mG.appendChildNode,appendChild:mG.appendChildNode,insertBefore:mG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:mG.appendChildNode,insertInContainerBefore:mG.insertBeforeNode,removeChildFromContainer:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?mG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:mG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{mG.setTextNodeValue(e,r)},removeChild:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)}})});var UIr=H((Ttu,oHn)=>{"use strict";oHn.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var aHn=H(MMe=>{"use strict";var SKo=MMe&&MMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MMe,"__esModule",{value:!0});var kpt=SKo(WW());MMe.default=e=>e.getComputedWidth()-e.getComputedPadding(kpt.default.EDGE_LEFT)-e.getComputedPadding(kpt.default.EDGE_RIGHT)-e.getComputedBorder(kpt.default.EDGE_LEFT)-e.getComputedBorder(kpt.default.EDGE_RIGHT)});var cHn=H((Ntu,vKo)=>{vKo.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var jIr=H((Dtu,KIr)=>{"use strict";var lHn=cHn();KIr.exports=lHn;KIr.exports.default=lHn});var zIr=H(YMe=>{"use strict";var BKo=YMe&&YMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YMe,"__esModule",{value:!0});var HMe=BKo(VK()),wKo=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,TKo=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,xpt=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);YMe.default=(e,t,r)=>{if(!t)return e;if(t in HMe.default){let a=xpt(t,r);return HMe.default[a](e)}if(t.startsWith("#")){let a=xpt("hex",r);return HMe.default[a](t)(e)}if(t.startsWith("ansi")){let a=TKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]);return HMe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=wKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return HMe.default[o](l,A,f)(e)}return e}});var gHn=H(QMe=>{"use strict";var uHn=QMe&&QMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QMe,"__esModule",{value:!0});var RKo=uHn(jIr()),qIr=uHn(zIr());QMe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=RKo.default[r.style.borderStyle],f=qIr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qIr.default(A.vertical,l,"foreground")+` +`)});var QMn=H((btu,YMn)=>{"use strict";var HMn="[\uD800-\uDBFF][\uDC00-\uDFFF]",AKo=e=>e&&e.exact?new RegExp(`^${HMn}$`):new RegExp(HMn,"g");YMn.exports=AKo});var Rpt=H((Etu,KMn)=>{"use strict";var dKo=FIr(),pKo=QMn(),XMn=ult(),UMn=["\x1B","\x9B"],Tpt=e=>`${UMn[0]}[${e}m`,JMn=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let l=XMn.codes.get(parseInt(a,10));if(l){let A=e.indexOf(l.toString());A>=0?e.splice(A,1):n.push(Tpt(t?l:o))}else if(t){n.push(Tpt(0));break}else n.push(Tpt(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=Tpt(XMn.codes.get(parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")};KMn.exports=(e,t,r)=>{let n=[...e.normalize()],a=[];r=typeof r=="number"?r:n.length;let o=!1,l,A=0,f="";for(let[I,C]of n.entries()){let b=!1;if(UMn.includes(C)){let E=/\d[^m]*/.exec(e.slice(I,I+18));l=E&&E.length>0?E[0]:void 0,At&&A<=r)f+=C;else if(A===t&&!o&&l!==void 0)f=JMn(a);else if(A>=r){f+=JMn(a,!0,l);break}}return f}});var MIr=H((Stu,jMn)=>{"use strict";var Ooe=Rpt(),fKo=dBe();function Npt(e,t,r){if(e.charAt(t)===" ")return t;for(let n=1;n<=3;n++)if(r){if(e.charAt(t+n)===" ")return t+n}else if(e.charAt(t-n)===" ")return t-n;return t}jMn.exports=(e,t,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:n,space:a,preferTruncationOnSpace:o}=r,l="\u2026",A=1;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let f=fKo(e);if(f<=t)return e;if(n==="start"){if(o){let I=Npt(e,f-t+1,!0);return l+Ooe(e,I,f).trim()}return a===!0&&(l+=" ",A=2),l+Ooe(e,f-t+A,f)}if(n==="middle"){a===!0&&(l=" "+l+" ",A=3);let I=Math.floor(t/2);if(o){let C=Npt(e,I),b=Npt(e,f-(t-I)+1,!0);return Ooe(e,0,C)+l+Ooe(e,b,f).trim()}return Ooe(e,0,I)+l+Ooe(e,f-(t-I)+A,f)}if(n==="end"){if(o){let I=Npt(e,t-1);return Ooe(e,0,I)+l}return a===!0&&(l=" "+l,A=2),Ooe(e,0,t-A)+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}});var YIr=H(PMe=>{"use strict";var zMn=PMe&&PMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PMe,"__esModule",{value:!0});var IKo=zMn(OIr()),hKo=zMn(MIr()),HIr={};PMe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(HIr[n])return HIr[n];let a=e;if(r==="wrap"&&(a=IKo.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=hKo.default(e,t,{position:o})}return HIr[n]=a,a}});var XIr=H(QIr=>{"use strict";Object.defineProperty(QIr,"__esModule",{value:!0});var qMn=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=qMn(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};QIr.default=qMn});var JIr=H(Z1=>{"use strict";var WMe=Z1&&Z1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Z1,"__esModule",{value:!0});Z1.setTextNodeValue=Z1.createTextNode=Z1.setStyle=Z1.setAttribute=Z1.removeChildNode=Z1.insertBeforeNode=Z1.appendChildNode=Z1.createNode=Z1.TEXT_NAME=void 0;var mKo=WMe(WW()),$Mn=WMe(PMn()),CKo=WMe(WMn()),_Ko=WMe(YIr()),yKo=WMe(XIr());Z1.TEXT_NAME="#text";Z1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:mKo.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(bKo.bind(null,r))),r};Z1.appendChildNode=(e,t)=>{var r;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Z1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&CKo.default(e.yogaNode,t)};Z1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Z1.setTextNodeValue(t,e),t};var bKo=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:yKo.default(e),o=$Mn.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=_Ko.default(a,t,l);return $Mn.default(A)},eHn=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:eHn(e.parentNode)},Dpt=e=>{let t=eHn(e);t?.markDirty()};Z1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Dpt(e)}});var sHn=H(OMe=>{"use strict";var iHn=OMe&&OMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OMe,"__esModule",{value:!0});var tHn=xMe(),EKo=iHn(vMn()),rHn=iHn(WW()),mG=JIr(),nHn=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};OMe.default=EKo.default({schedulePassiveEffects:tHn.unstable_scheduleCallback,cancelPassiveEffects:tHn.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=mG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?mG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:mG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return mG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{mG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{mG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_FLEX)},appendInitialChild:mG.appendChildNode,appendChild:mG.appendChildNode,insertBefore:mG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:mG.appendChildNode,insertInContainerBefore:mG.insertBeforeNode,removeChildFromContainer:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?mG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:mG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{mG.setTextNodeValue(e,r)},removeChild:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)}})});var UIr=H((Rtu,oHn)=>{"use strict";oHn.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var aHn=H(MMe=>{"use strict";var SKo=MMe&&MMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MMe,"__esModule",{value:!0});var kpt=SKo(WW());MMe.default=e=>e.getComputedWidth()-e.getComputedPadding(kpt.default.EDGE_LEFT)-e.getComputedPadding(kpt.default.EDGE_RIGHT)-e.getComputedBorder(kpt.default.EDGE_LEFT)-e.getComputedBorder(kpt.default.EDGE_RIGHT)});var cHn=H((Dtu,vKo)=>{vKo.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var jIr=H((ktu,KIr)=>{"use strict";var lHn=cHn();KIr.exports=lHn;KIr.exports.default=lHn});var zIr=H(YMe=>{"use strict";var BKo=YMe&&YMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YMe,"__esModule",{value:!0});var HMe=BKo(VK()),wKo=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,TKo=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,xpt=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);YMe.default=(e,t,r)=>{if(!t)return e;if(t in HMe.default){let a=xpt(t,r);return HMe.default[a](e)}if(t.startsWith("#")){let a=xpt("hex",r);return HMe.default[a](t)(e)}if(t.startsWith("ansi")){let a=TKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]);return HMe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=wKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return HMe.default[o](l,A,f)(e)}return e}});var gHn=H(QMe=>{"use strict";var uHn=QMe&&QMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QMe,"__esModule",{value:!0});var RKo=uHn(jIr()),qIr=uHn(zIr());QMe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=RKo.default[r.style.borderStyle],f=qIr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qIr.default(A.vertical,l,"foreground")+` `).repeat(o-2),C=qIr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var dHn=H(XMe=>{"use strict";var TIe=XMe&&XMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XMe,"__esModule",{value:!0});var NKo=TIe(WW()),DKo=TIe(FMe()),kKo=TIe(UIr()),xKo=TIe(YIr()),GKo=TIe(aHn()),FKo=TIe(XIr()),ZKo=TIe(gHn()),LKo=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` `.repeat(o)+kKo.default(t,a)}return t},AHn=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===NKo.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=FKo.default(e);if(E.length>0){let N=DKo.default(E),B=GKo.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=xKo.default(E,B,F)}E=LKo(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&ZKo.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)AHn(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};XMe.default=AHn});var IHn=H(JMe=>{"use strict";var fHn=JMe&&JMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JMe,"__esModule",{value:!0});var pHn=fHn(Rpt()),VKo=fHn(dBe()),$Ir=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` `),height:t.length}}};JMe.default=$Ir});var CHn=H(UMe=>{"use strict";var ehr=UMe&&UMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UMe,"__esModule",{value:!0});var PKo=ehr(WW()),hHn=ehr(dHn()),mHn=ehr(IHn());UMe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,PKo.default.DIRECTION_LTR);let n=new mHn.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});hHn.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new mHn.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),hHn.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rhr=H((Ltu,bHn)=>{"use strict";var _Hn=wt("stream"),yHn=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],thr={},WKo=e=>{let t=new _Hn.PassThrough,r=new _Hn.PassThrough;t.write=a=>e("stdout",a),r.write=a=>e("stderr",a);let n=new console.Console(t,r);for(let a of yHn)thr[a]=console[a],console[a]=n[a];return()=>{for(let a of yHn)console[a]=thr[a];thr={}}};bHn.exports=WKo});var ihr=H(nhr=>{"use strict";Object.defineProperty(nhr,"__esModule",{value:!0});nhr.default=new WeakMap});var ohr=H(shr=>{"use strict";Object.defineProperty(shr,"__esModule",{value:!0});var OKo=Ec(),EHn=OKo.createContext({exit:()=>{}});EHn.displayName="InternalAppContext";shr.default=EHn});var chr=H(ahr=>{"use strict";Object.defineProperty(ahr,"__esModule",{value:!0});var MKo=Ec(),SHn=MKo.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});SHn.displayName="InternalStdinContext";ahr.default=SHn});var uhr=H(lhr=>{"use strict";Object.defineProperty(lhr,"__esModule",{value:!0});var HKo=Ec(),vHn=HKo.createContext({stdout:void 0,write:()=>{}});vHn.displayName="InternalStdoutContext";lhr.default=vHn});var Ahr=H(ghr=>{"use strict";Object.defineProperty(ghr,"__esModule",{value:!0});var YKo=Ec(),BHn=YKo.createContext({stderr:void 0,write:()=>{}});BHn.displayName="InternalStderrContext";ghr.default=BHn});var Gpt=H(dhr=>{"use strict";Object.defineProperty(dhr,"__esModule",{value:!0});var QKo=Ec(),wHn=QKo.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});wHn.displayName="InternalFocusContext";dhr.default=wHn});var RHn=H((Ytu,THn)=>{"use strict";var XKo=/[|\\{}()[\]^$+*?.-]/g;THn.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(XKo,"\\$&")}});var Fpt=H((Qtu,kHn)=>{"use strict";var JKo=RHn(),UKo=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",DHn=[].concat(wt("module").builtinModules,"bootstrap_node","node").map(e=>new RegExp(`(?:\\((?:node:)?${e}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${e}(?:\\.js)?:\\d+:\\d+$)`));DHn.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var phr=class e{constructor(t){t={ignoredPackages:[],...t},"internals"in t||(t.internals=e.nodeInternals()),"cwd"in t||(t.cwd=UKo),this._cwd=t.cwd.replace(/\\/g,"/"),this._internals=[].concat(t.internals,KKo(t.ignoredPackages)),this._wrapCallSite=t.wrapCallSite||!1}static nodeInternals(){return[...DHn]}clean(t,r=0){r=" ".repeat(r),Array.isArray(t)||(t=t.split(` +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rhr=H((Vtu,bHn)=>{"use strict";var _Hn=wt("stream"),yHn=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],thr={},WKo=e=>{let t=new _Hn.PassThrough,r=new _Hn.PassThrough;t.write=a=>e("stdout",a),r.write=a=>e("stderr",a);let n=new console.Console(t,r);for(let a of yHn)thr[a]=console[a],console[a]=n[a];return()=>{for(let a of yHn)console[a]=thr[a];thr={}}};bHn.exports=WKo});var ihr=H(nhr=>{"use strict";Object.defineProperty(nhr,"__esModule",{value:!0});nhr.default=new WeakMap});var ohr=H(shr=>{"use strict";Object.defineProperty(shr,"__esModule",{value:!0});var OKo=Ec(),EHn=OKo.createContext({exit:()=>{}});EHn.displayName="InternalAppContext";shr.default=EHn});var chr=H(ahr=>{"use strict";Object.defineProperty(ahr,"__esModule",{value:!0});var MKo=Ec(),SHn=MKo.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});SHn.displayName="InternalStdinContext";ahr.default=SHn});var uhr=H(lhr=>{"use strict";Object.defineProperty(lhr,"__esModule",{value:!0});var HKo=Ec(),vHn=HKo.createContext({stdout:void 0,write:()=>{}});vHn.displayName="InternalStdoutContext";lhr.default=vHn});var Ahr=H(ghr=>{"use strict";Object.defineProperty(ghr,"__esModule",{value:!0});var YKo=Ec(),BHn=YKo.createContext({stderr:void 0,write:()=>{}});BHn.displayName="InternalStderrContext";ghr.default=BHn});var Gpt=H(dhr=>{"use strict";Object.defineProperty(dhr,"__esModule",{value:!0});var QKo=Ec(),wHn=QKo.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});wHn.displayName="InternalFocusContext";dhr.default=wHn});var RHn=H((Qtu,THn)=>{"use strict";var XKo=/[|\\{}()[\]^$+*?.-]/g;THn.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(XKo,"\\$&")}});var Fpt=H((Xtu,kHn)=>{"use strict";var JKo=RHn(),UKo=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",DHn=[].concat(wt("module").builtinModules,"bootstrap_node","node").map(e=>new RegExp(`(?:\\((?:node:)?${e}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${e}(?:\\.js)?:\\d+:\\d+$)`));DHn.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var phr=class e{constructor(t){t={ignoredPackages:[],...t},"internals"in t||(t.internals=e.nodeInternals()),"cwd"in t||(t.cwd=UKo),this._cwd=t.cwd.replace(/\\/g,"/"),this._internals=[].concat(t.internals,KKo(t.ignoredPackages)),this._wrapCallSite=t.wrapCallSite||!1}static nodeInternals(){return[...DHn]}clean(t,r=0){r=" ".repeat(r),Array.isArray(t)||(t=t.split(` `)),!/^\s*at /.test(t[0])&&/^\s*at /.test(t[1])&&(t=t.slice(1));let n=!1,a=null,o=[];return t.forEach(l=>{if(l=l.replace(/\\/g,"/"),this._internals.some(f=>f.test(l)))return;let A=/^\s*at /.test(l);n?l=l.trimEnd().replace(/^(\s+)at /,"$1"):(l=l.trim(),A&&(l=l.slice(3))),l=l.replace(`${this._cwd}/`,""),l&&(A?(a&&(o.push(a),a=null),o.push(l)):(n=!0,a=l))}),o.map(l=>`${r}${l} -`).join("")}captureString(t,r=this.captureString){typeof t=="function"&&(r=t,t=1/0);let{stackTraceLimit:n}=Error;t&&(Error.stackTraceLimit=t);let a={};Error.captureStackTrace(a,r);let{stack:o}=a;return Error.stackTraceLimit=n,this.clean(o)}capture(t,r=this.capture){typeof t=="function"&&(r=t,t=1/0);let{prepareStackTrace:n,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,f)=>this._wrapCallSite?f.map(this._wrapCallSite):f,t&&(Error.stackTraceLimit=t);let o={};Error.captureStackTrace(o,r);let{stack:l}=o;return Object.assign(Error,{prepareStackTrace:n,stackTraceLimit:a}),l}at(t=this.at){let[r]=this.capture(1,t);if(!r)return{};let n={line:r.getLineNumber(),column:r.getColumnNumber()};NHn(n,r.getFileName(),this._cwd),r.isConstructor()&&Object.defineProperty(n,"constructor",{value:!0,configurable:!0}),r.isEval()&&(n.evalOrigin=r.getEvalOrigin()),r.isNative()&&(n.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(n.type=a);let o=r.getFunctionName();o&&(n.function=o);let l=r.getMethodName();return l&&o!==l&&(n.method=l),n}parseLine(t){let r=t&&t.match(jKo);if(!r)return null;let n=r[1]==="new",a=r[2],o=r[3],l=r[4],A=Number(r[5]),f=Number(r[6]),I=r[7],C=r[8],b=r[9],E=r[10]==="native",N=r[11]===")",B,F={};if(C&&(F.line=Number(C)),b&&(F.column=Number(b)),N&&I){let Q=0;for(let X=I.length-1;X>0;X--)if(I.charAt(X)===")")Q++;else if(I.charAt(X)==="("&&I.charAt(X-1)===" "&&(Q--,Q===-1&&I.charAt(X-1)===" ")){let ae=I.slice(0,X-1);I=I.slice(X+1),a+=` (${ae}`;break}}if(a){let Q=a.match(zKo);Q&&(a=Q[1],B=Q[2])}return NHn(F,I,this._cwd),n&&Object.defineProperty(F,"constructor",{value:!0,configurable:!0}),o&&(F.evalOrigin=o,F.evalLine=A,F.evalColumn=f,F.evalFile=l&&l.replace(/\\/g,"/")),E&&(F.native=!0),a&&(F.function=a),B&&a!==B&&(F.method=B),F}};function NHn(e,t,r){t&&(t=t.replace(/\\/g,"/"),t.startsWith(`${r}/`)&&(t=t.slice(r.length+1)),e.file=t)}function KKo(e){if(e.length===0)return[];let t=e.map(r=>JKo(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${t.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var jKo=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),zKo=/^(.*?) \[as (.*?)\]$/;kHn.exports=phr});var GHn=H((Xtu,xHn)=>{"use strict";xHn.exports=(e,t)=>e.replace(/^\t+/gm,r=>" ".repeat(r.length*(t||2)))});var fhr=H((Jtu,FHn)=>{"use strict";var qKo=GHn(),$Ko=(e,t)=>{let r=[],n=e-t,a=e+t;for(let o=n;o<=a;o++)r.push(o);return r};FHn.exports=(e,t,r)=>{if(typeof e!="string")throw new TypeError("Source code is missing.");if(!t||t<1)throw new TypeError("Line number must start from `1`.");if(e=qKo(e).split(/\r?\n/),!(t>e.length))return r={around:3,...r},$Ko(t,r.around).filter(n=>e[n-1]!==void 0).map(n=>({line:n,value:e[n-1]}))}});var Zpt=H(yX=>{"use strict";var e8o=yX&&yX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),t8o=yX&&yX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r8o=yX&&yX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&e8o(t,e,r);return t8o(t,e),t},n8o=yX&&yX.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=n8o(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return ZHn.default.createElement("ink-box",{ref:t,style:a},r)});Ihr.displayName="Box";Ihr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};yX.default=Ihr});var Chr=H(KMe=>{"use strict";var hhr=KMe&&KMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(KMe,"__esModule",{value:!0});var i8o=hhr(Ec()),pBe=hhr(VK()),LHn=hhr(zIr()),mhr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=pBe.default.dim(b)),e&&(b=LHn.default(b,e,"foreground")),t&&(b=LHn.default(b,t,"background")),n&&(b=pBe.default.bold(b)),a&&(b=pBe.default.italic(b)),o&&(b=pBe.default.underline(b)),l&&(b=pBe.default.strikethrough(b)),A&&(b=pBe.default.inverse(b)),b);return i8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};mhr.displayName="Text";mhr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};KMe.default=mhr});var OHn=H(bX=>{"use strict";var s8o=bX&&bX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o8o=bX&&bX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a8o=bX&&bX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&s8o(t,e,r);return o8o(t,e),t},jMe=bX&&bX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bX,"__esModule",{value:!0});var VHn=a8o(wt("fs")),wR=jMe(Ec()),PHn=jMe(Fpt()),c8o=jMe(fhr()),C$=jMe(Zpt()),g8=jMe(Chr()),WHn=new PHn.default({cwd:process.cwd(),internals:PHn.default.nodeInternals()}),l8o=({error:e})=>{let t=e.stack?e.stack.split(` +`).join("")}captureString(t,r=this.captureString){typeof t=="function"&&(r=t,t=1/0);let{stackTraceLimit:n}=Error;t&&(Error.stackTraceLimit=t);let a={};Error.captureStackTrace(a,r);let{stack:o}=a;return Error.stackTraceLimit=n,this.clean(o)}capture(t,r=this.capture){typeof t=="function"&&(r=t,t=1/0);let{prepareStackTrace:n,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,f)=>this._wrapCallSite?f.map(this._wrapCallSite):f,t&&(Error.stackTraceLimit=t);let o={};Error.captureStackTrace(o,r);let{stack:l}=o;return Object.assign(Error,{prepareStackTrace:n,stackTraceLimit:a}),l}at(t=this.at){let[r]=this.capture(1,t);if(!r)return{};let n={line:r.getLineNumber(),column:r.getColumnNumber()};NHn(n,r.getFileName(),this._cwd),r.isConstructor()&&Object.defineProperty(n,"constructor",{value:!0,configurable:!0}),r.isEval()&&(n.evalOrigin=r.getEvalOrigin()),r.isNative()&&(n.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(n.type=a);let o=r.getFunctionName();o&&(n.function=o);let l=r.getMethodName();return l&&o!==l&&(n.method=l),n}parseLine(t){let r=t&&t.match(jKo);if(!r)return null;let n=r[1]==="new",a=r[2],o=r[3],l=r[4],A=Number(r[5]),f=Number(r[6]),I=r[7],C=r[8],b=r[9],E=r[10]==="native",N=r[11]===")",B,F={};if(C&&(F.line=Number(C)),b&&(F.column=Number(b)),N&&I){let Q=0;for(let X=I.length-1;X>0;X--)if(I.charAt(X)===")")Q++;else if(I.charAt(X)==="("&&I.charAt(X-1)===" "&&(Q--,Q===-1&&I.charAt(X-1)===" ")){let ae=I.slice(0,X-1);I=I.slice(X+1),a+=` (${ae}`;break}}if(a){let Q=a.match(zKo);Q&&(a=Q[1],B=Q[2])}return NHn(F,I,this._cwd),n&&Object.defineProperty(F,"constructor",{value:!0,configurable:!0}),o&&(F.evalOrigin=o,F.evalLine=A,F.evalColumn=f,F.evalFile=l&&l.replace(/\\/g,"/")),E&&(F.native=!0),a&&(F.function=a),B&&a!==B&&(F.method=B),F}};function NHn(e,t,r){t&&(t=t.replace(/\\/g,"/"),t.startsWith(`${r}/`)&&(t=t.slice(r.length+1)),e.file=t)}function KKo(e){if(e.length===0)return[];let t=e.map(r=>JKo(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${t.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var jKo=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),zKo=/^(.*?) \[as (.*?)\]$/;kHn.exports=phr});var GHn=H((Jtu,xHn)=>{"use strict";xHn.exports=(e,t)=>e.replace(/^\t+/gm,r=>" ".repeat(r.length*(t||2)))});var fhr=H((Utu,FHn)=>{"use strict";var qKo=GHn(),$Ko=(e,t)=>{let r=[],n=e-t,a=e+t;for(let o=n;o<=a;o++)r.push(o);return r};FHn.exports=(e,t,r)=>{if(typeof e!="string")throw new TypeError("Source code is missing.");if(!t||t<1)throw new TypeError("Line number must start from `1`.");if(e=qKo(e).split(/\r?\n/),!(t>e.length))return r={around:3,...r},$Ko(t,r.around).filter(n=>e[n-1]!==void 0).map(n=>({line:n,value:e[n-1]}))}});var Zpt=H(yX=>{"use strict";var e8o=yX&&yX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),t8o=yX&&yX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r8o=yX&&yX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&e8o(t,e,r);return t8o(t,e),t},n8o=yX&&yX.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=n8o(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return ZHn.default.createElement("ink-box",{ref:t,style:a},r)});Ihr.displayName="Box";Ihr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};yX.default=Ihr});var Chr=H(KMe=>{"use strict";var hhr=KMe&&KMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(KMe,"__esModule",{value:!0});var i8o=hhr(Ec()),pBe=hhr(VK()),LHn=hhr(zIr()),mhr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=pBe.default.dim(b)),e&&(b=LHn.default(b,e,"foreground")),t&&(b=LHn.default(b,t,"background")),n&&(b=pBe.default.bold(b)),a&&(b=pBe.default.italic(b)),o&&(b=pBe.default.underline(b)),l&&(b=pBe.default.strikethrough(b)),A&&(b=pBe.default.inverse(b)),b);return i8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};mhr.displayName="Text";mhr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};KMe.default=mhr});var OHn=H(bX=>{"use strict";var s8o=bX&&bX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o8o=bX&&bX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a8o=bX&&bX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&s8o(t,e,r);return o8o(t,e),t},jMe=bX&&bX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bX,"__esModule",{value:!0});var VHn=a8o(wt("fs")),wR=jMe(Ec()),PHn=jMe(Fpt()),c8o=jMe(fhr()),C$=jMe(Zpt()),g8=jMe(Chr()),WHn=new PHn.default({cwd:process.cwd(),internals:PHn.default.nodeInternals()}),l8o=({error:e})=>{let t=e.stack?e.stack.split(` `).slice(1):void 0,r=t?WHn.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&VHn.existsSync(r.file)){let o=VHn.readFileSync(r.file,"utf8");if(n=c8o.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return wR.default.createElement(C$.default,{flexDirection:"column",padding:1},wR.default.createElement(C$.default,null,wR.default.createElement(g8.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),wR.default.createElement(g8.default,null," ",e.message)),r&&wR.default.createElement(C$.default,{marginTop:1},wR.default.createElement(g8.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&wR.default.createElement(C$.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>wR.default.createElement(C$.default,{key:o},wR.default.createElement(C$.default,{width:a+1},wR.default.createElement(g8.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),wR.default.createElement(g8.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&wR.default.createElement(C$.default,{marginTop:1,flexDirection:"column"},e.stack.split(` `).slice(1).map(o=>{let l=WHn.parseLine(o);return l?wR.default.createElement(C$.default,{key:o},wR.default.createElement(g8.default,{dimColor:!0},"- "),wR.default.createElement(g8.default,{dimColor:!0,bold:!0},l.function),wR.default.createElement(g8.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):wR.default.createElement(C$.default,{key:o},wR.default.createElement(g8.default,{dimColor:!0},"- "),wR.default.createElement(g8.default,{dimColor:!0,bold:!0},o))})))};bX.default=l8o});var HHn=H(EX=>{"use strict";var u8o=EX&&EX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),g8o=EX&&EX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),A8o=EX&&EX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&u8o(t,e,r);return g8o(t,e),t},NIe=EX&&EX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EX,"__esModule",{value:!0});var RIe=A8o(Ec()),MHn=NIe(uBe()),d8o=NIe(ohr()),p8o=NIe(chr()),f8o=NIe(uhr()),I8o=NIe(Ahr()),h8o=NIe(Gpt()),m8o=NIe(OHn()),C8o=" ",_8o="\x1B[Z",y8o="\x1B",Lpt=class extends RIe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===y8o&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===C8o&&this.focusNext(),t===_8o&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return RIe.default.createElement(d8o.default.Provider,{value:{exit:this.handleExit}},RIe.default.createElement(p8o.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},RIe.default.createElement(f8o.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},RIe.default.createElement(I8o.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},RIe.default.createElement(h8o.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?RIe.default.createElement(m8o.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){MHn.default.hide(this.props.stdout)}componentWillUnmount(){MHn.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};EX.default=Lpt;Lpt.displayName="InternalApp"});var XHn=H(SX=>{"use strict";var b8o=SX&&SX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),E8o=SX&&SX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S8o=SX&&SX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&b8o(t,e,r);return E8o(t,e),t},vX=SX&&SX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SX,"__esModule",{value:!0});var v8o=vX(Ec()),YHn=AIr(),B8o=vX(aMn()),w8o=vX(BMe()),T8o=vX(hIr()),R8o=vX(mIr()),_hr=vX(sHn()),N8o=vX(CHn()),D8o=vX(mpt()),k8o=vX(rhr()),x8o=S8o(JIr()),G8o=vX(ihr()),F8o=vX(HHn()),fBe=process.env.CI==="false"?!1:T8o.default,QHn=()=>{},yhr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=N8o.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` `;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(fBe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(w8o.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},R8o.default(this),this.options=t,this.rootNode=x8o.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:YHn.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=B8o.default.create(t.stdout),this.throttledLog=t.debug?this.log:YHn.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=_hr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=D8o.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),fBe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=v8o.default.createElement(F8o.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);_hr.default.updateContainer(r,this.container,null,QHn)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(fBe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(fBe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),fBe?this.options.stdout.write(this.lastOutput+` `):this.options.debug||this.log.done(),this.isUnmounted=!0,_hr.default.updateContainer(null,this.container,null,QHn),G8o.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!fBe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=k8o.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};SX.default=yhr});var UHn=H(zMe=>{"use strict";var JHn=zMe&&zMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zMe,"__esModule",{value:!0});var Z8o=JHn(XHn()),Vpt=JHn(ihr()),L8o=wt("stream"),V8o=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},P8o(t)),n=W8o(r.stdout,()=>new Z8o.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>Vpt.default.delete(r.stdout),clear:n.clear}};zMe.default=V8o;var P8o=(e={})=>e instanceof L8o.Stream?{stdout:e,stdin:process.stdin}:e,W8o=(e,t)=>{let r;return Vpt.default.has(e)?r=Vpt.default.get(e):(r=t(),Vpt.default.set(e,r)),r}});var jHn=H(_$=>{"use strict";var O8o=_$&&_$.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),M8o=_$&&_$.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),H8o=_$&&_$.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&O8o(t,e,r);return M8o(t,e),t};Object.defineProperty(_$,"__esModule",{value:!0});var qMe=H8o(Ec()),KHn=e=>{let{items:t,children:r,style:n}=e,[a,o]=qMe.useState(0),l=qMe.useMemo(()=>t.slice(a),[t,a]);qMe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=qMe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return qMe.default.createElement("ink-box",{internal_static:!0,style:f},A)};KHn.displayName="Static";_$.default=KHn});var qHn=H($Me=>{"use strict";var Y8o=$Me&&$Me.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($Me,"__esModule",{value:!0});var Q8o=Y8o(Ec()),zHn=({children:e,transform:t})=>e==null?null:Q8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);zHn.displayName="Transform";$Me.default=zHn});var eYn=H(eHe=>{"use strict";var X8o=eHe&&eHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(eHe,"__esModule",{value:!0});var J8o=X8o(Ec()),$Hn=({count:e=1})=>J8o.default.createElement("ink-text",null,` -`.repeat(e));$Hn.displayName="Newline";eHe.default=$Hn});var nYn=H(tHe=>{"use strict";var tYn=tHe&&tHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tHe,"__esModule",{value:!0});var U8o=tYn(Ec()),K8o=tYn(Zpt()),rYn=()=>U8o.default.createElement(K8o.default,{flexGrow:1});rYn.displayName="Spacer";tHe.default=rYn});var Ppt=H(rHe=>{"use strict";var j8o=rHe&&rHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(rHe,"__esModule",{value:!0});var z8o=Ec(),q8o=j8o(chr()),$8o=()=>z8o.useContext(q8o.default);rHe.default=$8o});var sYn=H(nHe=>{"use strict";var ejo=nHe&&nHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(nHe,"__esModule",{value:!0});var iYn=Ec(),tjo=ejo(Ppt()),rjo=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=tjo.default();iYn.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),iYn.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};nHe.default=rjo});var oYn=H(iHe=>{"use strict";var njo=iHe&&iHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(iHe,"__esModule",{value:!0});var ijo=Ec(),sjo=njo(ohr()),ojo=()=>ijo.useContext(sjo.default);iHe.default=ojo});var aYn=H(sHe=>{"use strict";var ajo=sHe&&sHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sHe,"__esModule",{value:!0});var cjo=Ec(),ljo=ajo(uhr()),ujo=()=>cjo.useContext(ljo.default);sHe.default=ujo});var cYn=H(oHe=>{"use strict";var gjo=oHe&&oHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oHe,"__esModule",{value:!0});var Ajo=Ec(),djo=gjo(Ahr()),pjo=()=>Ajo.useContext(djo.default);oHe.default=pjo});var uYn=H(cHe=>{"use strict";var lYn=cHe&&cHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cHe,"__esModule",{value:!0});var aHe=Ec(),fjo=lYn(Gpt()),Ijo=lYn(Ppt()),hjo=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=Ijo.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=aHe.useContext(fjo.default),b=aHe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return aHe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),aHe.useEffect(()=>{e?f(b):I(b)},[e,b]),aHe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};cHe.default=hjo});var gYn=H(lHe=>{"use strict";var mjo=lHe&&lHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lHe,"__esModule",{value:!0});var Cjo=Ec(),_jo=mjo(Gpt()),yjo=()=>{let e=Cjo.useContext(_jo.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};lHe.default=yjo});var AYn=H(bhr=>{"use strict";Object.defineProperty(bhr,"__esModule",{value:!0});bhr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var Al=H(wk=>{"use strict";Object.defineProperty(wk,"__esModule",{value:!0});var bjo=UHn();Object.defineProperty(wk,"render",{enumerable:!0,get:function(){return bjo.default}});var Ejo=Zpt();Object.defineProperty(wk,"Box",{enumerable:!0,get:function(){return Ejo.default}});var Sjo=Chr();Object.defineProperty(wk,"Text",{enumerable:!0,get:function(){return Sjo.default}});var vjo=jHn();Object.defineProperty(wk,"Static",{enumerable:!0,get:function(){return vjo.default}});var Bjo=qHn();Object.defineProperty(wk,"Transform",{enumerable:!0,get:function(){return Bjo.default}});var wjo=eYn();Object.defineProperty(wk,"Newline",{enumerable:!0,get:function(){return wjo.default}});var Tjo=nYn();Object.defineProperty(wk,"Spacer",{enumerable:!0,get:function(){return Tjo.default}});var Rjo=sYn();Object.defineProperty(wk,"useInput",{enumerable:!0,get:function(){return Rjo.default}});var Njo=oYn();Object.defineProperty(wk,"useApp",{enumerable:!0,get:function(){return Njo.default}});var Djo=Ppt();Object.defineProperty(wk,"useStdin",{enumerable:!0,get:function(){return Djo.default}});var kjo=aYn();Object.defineProperty(wk,"useStdout",{enumerable:!0,get:function(){return kjo.default}});var xjo=cYn();Object.defineProperty(wk,"useStderr",{enumerable:!0,get:function(){return xjo.default}});var Gjo=uYn();Object.defineProperty(wk,"useFocus",{enumerable:!0,get:function(){return Gjo.default}});var Fjo=gYn();Object.defineProperty(wk,"useFocusManager",{enumerable:!0,get:function(){return Fjo.default}});var Zjo=AYn();Object.defineProperty(wk,"measureElement",{enumerable:!0,get:function(){return Zjo.default}})});var pYn=H(Wpt=>{"use strict";var Ljo=Ec(),Vjo=Symbol.for("react.element"),Pjo=Symbol.for("react.fragment"),Wjo=Object.prototype.hasOwnProperty,Ojo=Ljo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Mjo={key:!0,ref:!0,__self:!0,__source:!0};function dYn(e,t,r){var n,a={},o=null,l=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(n in t)Wjo.call(t,n)&&!Mjo.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Vjo,type:e,key:o,ref:l,props:a,_owner:Ojo.current}}Wpt.Fragment=Pjo;Wpt.jsx=dYn;Wpt.jsxs=dYn});var Pc=H((pru,fYn)=>{"use strict";fYn.exports=pYn()});var NYn=H(kIe=>{"use strict";var{promisify:$jo}=wt("util"),RYn=wt("fs");async function Thr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await $jo(RYn[e])(r))[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}function Rhr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return RYn[e](r)[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}kIe.isFile=Thr.bind(null,"stat","isFile");kIe.isDirectory=Thr.bind(null,"stat","isDirectory");kIe.isSymlink=Thr.bind(null,"lstat","isSymbolicLink");kIe.isFileSync=Rhr.bind(null,"statSync","isFile");kIe.isDirectorySync=Rhr.bind(null,"statSync","isDirectory");kIe.isSymlinkSync=Rhr.bind(null,"lstatSync","isSymbolicLink")});var FYn=H((Jru,Nhr)=>{"use strict";var xIe=wt("path"),DYn=NYn(),kYn=e=>e.length>1?`{${e.join(",")}}`:e[0],xYn=(e,t)=>{let r=e[0]==="!"?e.slice(1):e;return xIe.isAbsolute(r)?r:xIe.join(t,r)},e6o=(e,t)=>xIe.extname(e)?`**/${e}`:`**/${e}.${kYn(t)}`,GYn=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>xIe.posix.join(e,e6o(r,t.extensions))):t.files?t.files.map(r=>xIe.posix.join(e,`**/${r}`)):t.extensions?[xIe.posix.join(e,`**/*.${kYn(t.extensions)}`)]:[xIe.posix.join(e,"**")]};Nhr.exports=async(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=await Promise.all([].concat(e).map(async n=>await DYn.isDirectory(xYn(n,t.cwd))?GYn(n,t):n));return[].concat.apply([],r)};Nhr.exports.sync=(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=[].concat(e).map(n=>DYn.isDirectorySync(xYn(n,t.cwd))?GYn(n,t):n);return[].concat.apply([],r)}});var uHe=H((Uru,HYn)=>{function ZYn(e){return Array.isArray(e)?e:[e]}var xhr="",LYn=" ",Dhr="\\",t6o=/^\s+$/,r6o=/(?:[^\\]|^)\\$/,n6o=/^\\!/,i6o=/^\\#/,s6o=/\r?\n/g,o6o=/^\.*\/|^\.+$/,khr="/",WYn="node-ignore";typeof Symbol<"u"&&(WYn=Symbol.for("node-ignore"));var VYn=WYn,a6o=(e,t,r)=>Object.defineProperty(e,t,{value:r}),c6o=/([0-z])-([0-z])/g,OYn=()=>!1,l6o=e=>e.replace(c6o,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:xhr),u6o=e=>{let{length:t}=e;return e.slice(0,t-t%2)},g6o=[[/^\uFEFF/,()=>xhr],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?LYn:xhr)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+LYn}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Dhr],[/\\\\/g,()=>Dhr],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,a)=>t===Dhr?`\\[${r}${u6o(n)}${a}`:a==="]"&&n.length%2===0?`[${l6o(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],PYn=Object.create(null),A6o=(e,t)=>{let r=PYn[e];return r||(r=g6o.reduce((n,[a,o])=>n.replace(a,o.bind(e)),e),PYn[e]=r),t?new RegExp(r,"i"):new RegExp(r)},Zhr=e=>typeof e=="string",d6o=e=>e&&Zhr(e)&&!t6o.test(e)&&!r6o.test(e)&&e.indexOf("#")!==0,p6o=e=>e.split(s6o),Ghr=class{constructor(t,r,n,a){this.origin=t,this.pattern=r,this.negative=n,this.regex=a}},f6o=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(n6o,"!").replace(i6o,"#");let a=A6o(e,t);return new Ghr(r,e,n,a)},I6o=(e,t)=>{throw new t(e)},y$=(e,t,r)=>Zhr(e)?e?y$.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),MYn=e=>o6o.test(e);y$.isNotRelative=MYn;y$.convert=e=>e;var Fhr=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){a6o(this,VYn,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[VYn]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(d6o(t)){let r=f6o(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,ZYn(Zhr(t)?p6o(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,a=!1;return this._rules.forEach(o=>{let{negative:l}=o;if(a===l&&n!==a||l&&!n&&!a&&!r)return;o.regex.test(t)&&(n=!l,a=l)}),{ignored:n,unignored:a}}_test(t,r,n,a){let o=t&&y$.convert(t);return y$(o,t,this._allowRelativePaths?OYn:I6o),this._t(o,r,n,a)}_t(t,r,n,a){if(t in r)return r[t];if(a||(a=t.split(khr)),a.pop(),!a.length)return r[t]=this._testOne(t,n);let o=this._t(a.join(khr)+khr,r,n,a);return r[t]=o.ignored?o:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return ZYn(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Hpt=e=>new Fhr(e),h6o=e=>y$(e&&y$.convert(e),e,OYn);Hpt.isPathValid=h6o;Hpt.default=Hpt;HYn.exports=Hpt;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");y$.convert=e;let t=/^[a-z]:\//i;y$.isNotRelative=r=>t.test(r)||MYn(r)}});var Mhr=H(Upt=>{"use strict";Object.defineProperty(Upt,"__esModule",{value:!0});Upt.Context=void 0;var pQn=wt("fs"),P6o=wt("os"),Ohr=class{constructor(){var t,r,n;if(this.payload={},process.env.GITHUB_EVENT_PATH)if((0,pQn.existsSync)(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse((0,pQn.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let a=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${a} does not exist${P6o.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10),this.apiUrl=(t=process.env.GITHUB_API_URL)!==null&&t!==void 0?t:"https://api.github.com",this.serverUrl=(r=process.env.GITHUB_SERVER_URL)!==null&&r!==void 0?r:"https://github.com",this.graphqlUrl=(n=process.env.GITHUB_GRAPHQL_URL)!==null&&n!==void 0?n:"https://api.github.com/graphql"}get issue(){let t=this.payload;return Object.assign(Object.assign({},this.repo),{number:(t.issue||t.pull_request||t).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[t,r]=process.env.GITHUB_REPOSITORY.split("/");return{owner:t,repo:r}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};Upt.Context=Ohr});var IQn=H(_Be=>{"use strict";Object.defineProperty(_Be,"__esModule",{value:!0});_Be.checkBypass=_Be.getProxyUrl=void 0;function W6o(e){let t=e.protocol==="https:";if(fQn(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new Kpt(r)}catch{if(!r.startsWith("http://")&&!r.startsWith("https://"))return new Kpt(`http://${r}`)}else return}_Be.getProxyUrl=W6o;function fQn(e){if(!e.hostname)return!1;let t=e.hostname;if(O6o(t))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let n;e.port?n=Number(e.port):e.protocol==="http:"?n=80:e.protocol==="https:"&&(n=443);let a=[e.hostname.toUpperCase()];typeof n=="number"&&a.push(`${a[0]}:${n}`);for(let o of r.split(",").map(l=>l.trim().toUpperCase()).filter(l=>l))if(o==="*"||a.some(l=>l===o||l.endsWith(`.${o}`)||o.startsWith(".")&&l.endsWith(`${o}`)))return!0;return!1}_Be.checkBypass=fQn;function O6o(e){let t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}var Kpt=class extends URL{constructor(t,r){super(t,r),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}});var _Qn=H(yBe=>{"use strict";var Pnu=wt("net"),M6o=wt("tls"),Hhr=wt("http"),hQn=wt("https"),H6o=wt("events"),Wnu=wt("assert"),Y6o=wt("util");yBe.httpOverHttp=Q6o;yBe.httpsOverHttp=X6o;yBe.httpOverHttps=J6o;yBe.httpsOverHttps=U6o;function Q6o(e){var t=new E$(e);return t.request=Hhr.request,t}function X6o(e){var t=new E$(e);return t.request=Hhr.request,t.createSocket=mQn,t.defaultPort=443,t}function J6o(e){var t=new E$(e);return t.request=hQn.request,t}function U6o(e){var t=new E$(e);return t.request=hQn.request,t.createSocket=mQn,t.defaultPort=443,t}function E$(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Hhr.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,a,o,l){for(var A=CQn(a,o,l),f=0,I=t.requests.length;f=this.maxSockets){o.requests.push(l);return}o.createSocket(l,function(A){A.on("free",f),A.on("close",I),A.on("agentRemove",I),t.onSocket(A);function f(){o.emit("free",A,l)}function I(C){o.removeSocket(A),A.removeListener("free",f),A.removeListener("close",I),A.removeListener("agentRemove",I)}})};E$.prototype.createSocket=function(t,r){var n=this,a={};n.sockets.push(a);var o=Yhr({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1,headers:{host:t.host+":"+t.port}});t.localAddress&&(o.localAddress=t.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),Hoe("making CONNECT request");var l=n.request(o);l.useChunkedEncodingByDefault=!1,l.once("response",A),l.once("upgrade",f),l.once("connect",I),l.once("error",C),l.end();function A(b){b.upgrade=!0}function f(b,E,N){process.nextTick(function(){I(b,E,N)})}function I(b,E,N){if(l.removeAllListeners(),E.removeAllListeners(),b.statusCode!==200){Hoe("tunneling socket could not be established, statusCode=%d",b.statusCode),E.destroy();var B=new Error("tunneling socket could not be established, statusCode="+b.statusCode);B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}if(N.length>0){Hoe("got illegal response body from proxy"),E.destroy();var B=new Error("got illegal response body from proxy");B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}return Hoe("tunneling connection has established"),n.sockets[n.sockets.indexOf(a)]=E,r(E)}function C(b){l.removeAllListeners(),Hoe(`tunneling socket could not be established, cause=%s -`,b.message,b.stack);var E=new Error("tunneling socket could not be established, cause="+b.message);E.code="ECONNRESET",t.request.emit("error",E),n.removeSocket(a)}};E$.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(a){n.request.onSocket(a)})}};function mQn(e,t){var r=this;E$.prototype.createSocket.call(r,e,function(n){var a=e.request.getHeader("host"),o=Yhr({},r.options,{socket:n,servername:a?a.replace(/:.*$/,""):e.host}),l=M6o.connect(0,o);r.sockets[r.sockets.indexOf(n)]=l,t(l)})}function CQn(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Yhr(e){for(var t=1,r=arguments.length;t{yQn.exports=_Qn()});var GE=H((Hnu,EQn)=>{EQn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}});var Ub=H((Ynu,SQn)=>{"use strict";var qB=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Xhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Uhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},Khr=class e extends qB{constructor(t,r,n,a){super(t),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},zhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$hr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},emr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},tmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},rmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},nmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},imr=class e extends qB{constructor(t,r){super(t),Error.captureStackTrace(this,e),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},jpt=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},smr=class extends qB{constructor(t){super(t),Error.captureStackTrace(this,jpt),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},omr=class e extends Error{constructor(t,r,n){super(t),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},amr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},cmr=class e extends qB{constructor(t,r,{headers:n,data:a}){super(t),Error.captureStackTrace(this,e),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}};SQn.exports={HTTPParserError:omr,UndiciError:qB,HeadersTimeoutError:Xhr,HeadersOverflowError:Jhr,BodyTimeoutError:Uhr,RequestContentLengthMismatchError:emr,ConnectTimeoutError:Qhr,ResponseStatusCodeError:Khr,InvalidArgumentError:jhr,InvalidReturnValueError:zhr,RequestAbortedError:qhr,ClientDestroyedError:rmr,ClientClosedError:nmr,InformationalError:$hr,SocketError:imr,NotSupportedError:jpt,ResponseContentLengthMismatchError:tmr,BalancedPoolMissingUpstreamError:smr,ResponseExceededMaxSizeError:amr,RequestRetryError:cmr}});var BQn=H((Qnu,vQn)=>{"use strict";var zpt={},lmr=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var NQn=wt("assert"),{kDestroyed:DQn,kBodyUsed:wQn}=GE(),{IncomingMessage:K6o}=wt("http"),bBe=wt("stream"),j6o=wt("net"),{InvalidArgumentError:Tk}=Ub(),{Blob:TQn}=wt("buffer"),qpt=wt("util"),{stringify:z6o}=wt("querystring"),{headerNameLowerCasedRecord:q6o}=BQn(),[umr,RQn]=process.versions.node.split(".").map(e=>Number(e));function $6o(){}function gmr(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function kQn(e){return TQn&&e instanceof TQn||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function e7o(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=z6o(t);return r&&(e+="?"+r),e}function xQn(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Tk("Invalid URL: The URL argument must be a non-null object.");if(!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Tk("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Tk("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Tk("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Tk("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Tk("Invalid URL origin: the origin must be a string or null/undefined.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;r.endsWith("/")&&(r=r.substring(0,r.length-1)),n&&!n.startsWith("/")&&(n=`/${n}`),e=new URL(r+n)}return e}function t7o(e){if(e=xQn(e),e.pathname!=="/"||e.search||e.hash)throw new Tk("invalid url");return e}function r7o(e){if(e[0]==="["){let r=e.indexOf("]");return NQn(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function n7o(e){if(!e)return null;NQn.strictEqual(typeof e,"string");let t=r7o(e);return j6o.isIP(t)?"":t}function i7o(e){return JSON.parse(JSON.stringify(e))}function s7o(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function o7o(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function a7o(e){if(e==null)return 0;if(gmr(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(kQn(e))return e.size!=null?e.size:null;if(FQn(e))return e.byteLength}return null}function Amr(e){return!e||!!(e.destroyed||e[DQn])}function GQn(e){let t=e&&e._readableState;return Amr(e)&&t&&!t.endEmitted}function c7o(e,t){e==null||!gmr(e)||Amr(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===K6o&&(e.socket=null),e.destroy(t)):t&&process.nextTick((r,n)=>{r.emit("error",n)},e,t),e.destroyed!==!0&&(e[DQn]=!0))}var l7o=/timeout=(\d+)/;function u7o(e){let t=e.toString().match(l7o);return t?parseInt(t[1],10)*1e3:null}function g7o(e){return q6o[e]||e.toLowerCase()}function A7o(e,t={}){if(!Array.isArray(e))return e;for(let r=0;ro.toString("utf8")):t[n]=e[r+1].toString("utf8")}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function d7o(e){let t=[],r=!1,n=-1;for(let a=0;a{r.close()});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()}},0)}function y7o(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function b7o(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let t=new Error("The operation was aborted");throw t.name="AbortError",t}}}function E7o(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var S7o=!!String.prototype.toWellFormed;function v7o(e){return S7o?`${e}`.toWellFormed():qpt.toUSVString?qpt.toUSVString(e):`${e}`}function B7o(e){if(e==null||e==="")return{start:0,end:null,size:null};let t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}var ZQn=Object.create(null);ZQn.enumerable=!0;LQn.exports={kEnumerableProperty:ZQn,nop:$6o,isDisturbed:f7o,isErrored:I7o,isReadable:h7o,toUSVString:v7o,isReadableAborted:GQn,isBlobLike:kQn,parseOrigin:t7o,parseURL:xQn,getServerName:n7o,isStream:gmr,isIterable:o7o,isAsyncIterable:s7o,isDestroyed:Amr,headerNameToString:g7o,parseRawHeaders:d7o,parseHeaders:A7o,parseKeepAliveTimeout:u7o,destroy:c7o,bodyLength:a7o,deepClone:i7o,ReadableStreamFrom:_7o,isBuffer:FQn,validateHandler:p7o,getSocketInfo:m7o,isFormDataLike:y7o,buildURL:e7o,throwIfAborted:b7o,addAbortListener:E7o,parseRangeHeader:B7o,nodeMajor:umr,nodeMinor:RQn,nodeHasAutoSelectFamily:umr>18||umr===18&&RQn>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}});var WQn=H((Jnu,PQn)=>{"use strict";var dmr=Date.now(),Yoe,Qoe=[];function w7o(){dmr=Date.now();let e=Qoe.length,t=0;for(;t0&&dmr>=r.state&&(r.state=-1,r.callback(r.opaque)),r.state===-1?(r.state=-2,t!==e-1?Qoe[t]=Qoe.pop():Qoe.pop(),e-=1):t+=1}Qoe.length>0&&VQn()}function VQn(){Yoe&&Yoe.refresh?Yoe.refresh():(clearTimeout(Yoe),Yoe=setTimeout(w7o,1e3),Yoe.unref&&Yoe.unref())}var $pt=class{constructor(t,r,n){this.callback=t,this.delay=r,this.opaque=n,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Qoe.push(this),(!Yoe||Qoe.length===1)&&VQn()),this.state=0}clear(){this.state=-1}};PQn.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new $pt(e,t,r)},clearTimeout(e){e instanceof $pt?e.clear():clearTimeout(e)}}});var pmr=H((Unu,OQn)=>{"use strict";var T7o=wt("node:events").EventEmitter,R7o=wt("node:util").inherits;function GIe(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(t);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let A=this._lookbehind_size+o;return A>0&&this.emit("info",!1,this._lookbehind,0,A),this._lookbehind.copy(this._lookbehind,0,A,this._lookbehind_size-A),this._lookbehind_size-=A,e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o+=(o>=0)*this._bufpos,e.indexOf(r,o)!==-1)return o=e.indexOf(r,o),++this.matches,o>0?this.emit("info",!0,e,this._bufpos,o):this.emit("info",!0),this._bufpos=o+n;for(o=t-n;o0&&this.emit("info",!1,e,this._bufpos,o{"use strict";var N7o=wt("node:util").inherits,MQn=wt("node:stream").Readable;function fmr(e){MQn.call(this,e)}N7o(fmr,MQn);fmr.prototype._read=function(e){};HQn.exports=fmr});var eft=H((jnu,QQn)=>{"use strict";QQn.exports=function(t,r,n){if(!t||t[r]===void 0||t[r]===null)return n;if(typeof t[r]!="number"||isNaN(t[r]))throw new TypeError("Limit "+r+" is not a valid number");return t[r]}});var KQn=H((znu,UQn)=>{"use strict";var JQn=wt("node:events").EventEmitter,D7o=wt("node:util").inherits,XQn=eft(),k7o=pmr(),x7o=Buffer.from(`\r +`.repeat(e));$Hn.displayName="Newline";eHe.default=$Hn});var nYn=H(tHe=>{"use strict";var tYn=tHe&&tHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tHe,"__esModule",{value:!0});var U8o=tYn(Ec()),K8o=tYn(Zpt()),rYn=()=>U8o.default.createElement(K8o.default,{flexGrow:1});rYn.displayName="Spacer";tHe.default=rYn});var Ppt=H(rHe=>{"use strict";var j8o=rHe&&rHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(rHe,"__esModule",{value:!0});var z8o=Ec(),q8o=j8o(chr()),$8o=()=>z8o.useContext(q8o.default);rHe.default=$8o});var sYn=H(nHe=>{"use strict";var ejo=nHe&&nHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(nHe,"__esModule",{value:!0});var iYn=Ec(),tjo=ejo(Ppt()),rjo=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=tjo.default();iYn.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),iYn.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};nHe.default=rjo});var oYn=H(iHe=>{"use strict";var njo=iHe&&iHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(iHe,"__esModule",{value:!0});var ijo=Ec(),sjo=njo(ohr()),ojo=()=>ijo.useContext(sjo.default);iHe.default=ojo});var aYn=H(sHe=>{"use strict";var ajo=sHe&&sHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sHe,"__esModule",{value:!0});var cjo=Ec(),ljo=ajo(uhr()),ujo=()=>cjo.useContext(ljo.default);sHe.default=ujo});var cYn=H(oHe=>{"use strict";var gjo=oHe&&oHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oHe,"__esModule",{value:!0});var Ajo=Ec(),djo=gjo(Ahr()),pjo=()=>Ajo.useContext(djo.default);oHe.default=pjo});var uYn=H(cHe=>{"use strict";var lYn=cHe&&cHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cHe,"__esModule",{value:!0});var aHe=Ec(),fjo=lYn(Gpt()),Ijo=lYn(Ppt()),hjo=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=Ijo.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=aHe.useContext(fjo.default),b=aHe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return aHe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),aHe.useEffect(()=>{e?f(b):I(b)},[e,b]),aHe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};cHe.default=hjo});var gYn=H(lHe=>{"use strict";var mjo=lHe&&lHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lHe,"__esModule",{value:!0});var Cjo=Ec(),_jo=mjo(Gpt()),yjo=()=>{let e=Cjo.useContext(_jo.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};lHe.default=yjo});var AYn=H(bhr=>{"use strict";Object.defineProperty(bhr,"__esModule",{value:!0});bhr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var Al=H(wk=>{"use strict";Object.defineProperty(wk,"__esModule",{value:!0});var bjo=UHn();Object.defineProperty(wk,"render",{enumerable:!0,get:function(){return bjo.default}});var Ejo=Zpt();Object.defineProperty(wk,"Box",{enumerable:!0,get:function(){return Ejo.default}});var Sjo=Chr();Object.defineProperty(wk,"Text",{enumerable:!0,get:function(){return Sjo.default}});var vjo=jHn();Object.defineProperty(wk,"Static",{enumerable:!0,get:function(){return vjo.default}});var Bjo=qHn();Object.defineProperty(wk,"Transform",{enumerable:!0,get:function(){return Bjo.default}});var wjo=eYn();Object.defineProperty(wk,"Newline",{enumerable:!0,get:function(){return wjo.default}});var Tjo=nYn();Object.defineProperty(wk,"Spacer",{enumerable:!0,get:function(){return Tjo.default}});var Rjo=sYn();Object.defineProperty(wk,"useInput",{enumerable:!0,get:function(){return Rjo.default}});var Njo=oYn();Object.defineProperty(wk,"useApp",{enumerable:!0,get:function(){return Njo.default}});var Djo=Ppt();Object.defineProperty(wk,"useStdin",{enumerable:!0,get:function(){return Djo.default}});var kjo=aYn();Object.defineProperty(wk,"useStdout",{enumerable:!0,get:function(){return kjo.default}});var xjo=cYn();Object.defineProperty(wk,"useStderr",{enumerable:!0,get:function(){return xjo.default}});var Gjo=uYn();Object.defineProperty(wk,"useFocus",{enumerable:!0,get:function(){return Gjo.default}});var Fjo=gYn();Object.defineProperty(wk,"useFocusManager",{enumerable:!0,get:function(){return Fjo.default}});var Zjo=AYn();Object.defineProperty(wk,"measureElement",{enumerable:!0,get:function(){return Zjo.default}})});var pYn=H(Wpt=>{"use strict";var Ljo=Ec(),Vjo=Symbol.for("react.element"),Pjo=Symbol.for("react.fragment"),Wjo=Object.prototype.hasOwnProperty,Ojo=Ljo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Mjo={key:!0,ref:!0,__self:!0,__source:!0};function dYn(e,t,r){var n,a={},o=null,l=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(n in t)Wjo.call(t,n)&&!Mjo.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Vjo,type:e,key:o,ref:l,props:a,_owner:Ojo.current}}Wpt.Fragment=Pjo;Wpt.jsx=dYn;Wpt.jsxs=dYn});var Pc=H((fru,fYn)=>{"use strict";fYn.exports=pYn()});var NYn=H(kIe=>{"use strict";var{promisify:$jo}=wt("util"),RYn=wt("fs");async function Thr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await $jo(RYn[e])(r))[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}function Rhr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return RYn[e](r)[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}kIe.isFile=Thr.bind(null,"stat","isFile");kIe.isDirectory=Thr.bind(null,"stat","isDirectory");kIe.isSymlink=Thr.bind(null,"lstat","isSymbolicLink");kIe.isFileSync=Rhr.bind(null,"statSync","isFile");kIe.isDirectorySync=Rhr.bind(null,"statSync","isDirectory");kIe.isSymlinkSync=Rhr.bind(null,"lstatSync","isSymbolicLink")});var FYn=H((Uru,Nhr)=>{"use strict";var xIe=wt("path"),DYn=NYn(),kYn=e=>e.length>1?`{${e.join(",")}}`:e[0],xYn=(e,t)=>{let r=e[0]==="!"?e.slice(1):e;return xIe.isAbsolute(r)?r:xIe.join(t,r)},e6o=(e,t)=>xIe.extname(e)?`**/${e}`:`**/${e}.${kYn(t)}`,GYn=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>xIe.posix.join(e,e6o(r,t.extensions))):t.files?t.files.map(r=>xIe.posix.join(e,`**/${r}`)):t.extensions?[xIe.posix.join(e,`**/*.${kYn(t.extensions)}`)]:[xIe.posix.join(e,"**")]};Nhr.exports=async(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=await Promise.all([].concat(e).map(async n=>await DYn.isDirectory(xYn(n,t.cwd))?GYn(n,t):n));return[].concat.apply([],r)};Nhr.exports.sync=(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=[].concat(e).map(n=>DYn.isDirectorySync(xYn(n,t.cwd))?GYn(n,t):n);return[].concat.apply([],r)}});var uHe=H((Kru,HYn)=>{function ZYn(e){return Array.isArray(e)?e:[e]}var xhr="",LYn=" ",Dhr="\\",t6o=/^\s+$/,r6o=/(?:[^\\]|^)\\$/,n6o=/^\\!/,i6o=/^\\#/,s6o=/\r?\n/g,o6o=/^\.*\/|^\.+$/,khr="/",WYn="node-ignore";typeof Symbol<"u"&&(WYn=Symbol.for("node-ignore"));var VYn=WYn,a6o=(e,t,r)=>Object.defineProperty(e,t,{value:r}),c6o=/([0-z])-([0-z])/g,OYn=()=>!1,l6o=e=>e.replace(c6o,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:xhr),u6o=e=>{let{length:t}=e;return e.slice(0,t-t%2)},g6o=[[/^\uFEFF/,()=>xhr],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?LYn:xhr)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+LYn}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Dhr],[/\\\\/g,()=>Dhr],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,a)=>t===Dhr?`\\[${r}${u6o(n)}${a}`:a==="]"&&n.length%2===0?`[${l6o(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],PYn=Object.create(null),A6o=(e,t)=>{let r=PYn[e];return r||(r=g6o.reduce((n,[a,o])=>n.replace(a,o.bind(e)),e),PYn[e]=r),t?new RegExp(r,"i"):new RegExp(r)},Zhr=e=>typeof e=="string",d6o=e=>e&&Zhr(e)&&!t6o.test(e)&&!r6o.test(e)&&e.indexOf("#")!==0,p6o=e=>e.split(s6o),Ghr=class{constructor(t,r,n,a){this.origin=t,this.pattern=r,this.negative=n,this.regex=a}},f6o=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(n6o,"!").replace(i6o,"#");let a=A6o(e,t);return new Ghr(r,e,n,a)},I6o=(e,t)=>{throw new t(e)},y$=(e,t,r)=>Zhr(e)?e?y$.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),MYn=e=>o6o.test(e);y$.isNotRelative=MYn;y$.convert=e=>e;var Fhr=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){a6o(this,VYn,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[VYn]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(d6o(t)){let r=f6o(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,ZYn(Zhr(t)?p6o(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,a=!1;return this._rules.forEach(o=>{let{negative:l}=o;if(a===l&&n!==a||l&&!n&&!a&&!r)return;o.regex.test(t)&&(n=!l,a=l)}),{ignored:n,unignored:a}}_test(t,r,n,a){let o=t&&y$.convert(t);return y$(o,t,this._allowRelativePaths?OYn:I6o),this._t(o,r,n,a)}_t(t,r,n,a){if(t in r)return r[t];if(a||(a=t.split(khr)),a.pop(),!a.length)return r[t]=this._testOne(t,n);let o=this._t(a.join(khr)+khr,r,n,a);return r[t]=o.ignored?o:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return ZYn(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Hpt=e=>new Fhr(e),h6o=e=>y$(e&&y$.convert(e),e,OYn);Hpt.isPathValid=h6o;Hpt.default=Hpt;HYn.exports=Hpt;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");y$.convert=e;let t=/^[a-z]:\//i;y$.isNotRelative=r=>t.test(r)||MYn(r)}});var Mhr=H(Upt=>{"use strict";Object.defineProperty(Upt,"__esModule",{value:!0});Upt.Context=void 0;var pQn=wt("fs"),P6o=wt("os"),Ohr=class{constructor(){var t,r,n;if(this.payload={},process.env.GITHUB_EVENT_PATH)if((0,pQn.existsSync)(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse((0,pQn.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let a=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${a} does not exist${P6o.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10),this.apiUrl=(t=process.env.GITHUB_API_URL)!==null&&t!==void 0?t:"https://api.github.com",this.serverUrl=(r=process.env.GITHUB_SERVER_URL)!==null&&r!==void 0?r:"https://github.com",this.graphqlUrl=(n=process.env.GITHUB_GRAPHQL_URL)!==null&&n!==void 0?n:"https://api.github.com/graphql"}get issue(){let t=this.payload;return Object.assign(Object.assign({},this.repo),{number:(t.issue||t.pull_request||t).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[t,r]=process.env.GITHUB_REPOSITORY.split("/");return{owner:t,repo:r}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};Upt.Context=Ohr});var IQn=H(_Be=>{"use strict";Object.defineProperty(_Be,"__esModule",{value:!0});_Be.checkBypass=_Be.getProxyUrl=void 0;function W6o(e){let t=e.protocol==="https:";if(fQn(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new Kpt(r)}catch{if(!r.startsWith("http://")&&!r.startsWith("https://"))return new Kpt(`http://${r}`)}else return}_Be.getProxyUrl=W6o;function fQn(e){if(!e.hostname)return!1;let t=e.hostname;if(O6o(t))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let n;e.port?n=Number(e.port):e.protocol==="http:"?n=80:e.protocol==="https:"&&(n=443);let a=[e.hostname.toUpperCase()];typeof n=="number"&&a.push(`${a[0]}:${n}`);for(let o of r.split(",").map(l=>l.trim().toUpperCase()).filter(l=>l))if(o==="*"||a.some(l=>l===o||l.endsWith(`.${o}`)||o.startsWith(".")&&l.endsWith(`${o}`)))return!0;return!1}_Be.checkBypass=fQn;function O6o(e){let t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}var Kpt=class extends URL{constructor(t,r){super(t,r),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}});var _Qn=H(yBe=>{"use strict";var Wnu=wt("net"),M6o=wt("tls"),Hhr=wt("http"),hQn=wt("https"),H6o=wt("events"),Onu=wt("assert"),Y6o=wt("util");yBe.httpOverHttp=Q6o;yBe.httpsOverHttp=X6o;yBe.httpOverHttps=J6o;yBe.httpsOverHttps=U6o;function Q6o(e){var t=new E$(e);return t.request=Hhr.request,t}function X6o(e){var t=new E$(e);return t.request=Hhr.request,t.createSocket=mQn,t.defaultPort=443,t}function J6o(e){var t=new E$(e);return t.request=hQn.request,t}function U6o(e){var t=new E$(e);return t.request=hQn.request,t.createSocket=mQn,t.defaultPort=443,t}function E$(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Hhr.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,a,o,l){for(var A=CQn(a,o,l),f=0,I=t.requests.length;f=this.maxSockets){o.requests.push(l);return}o.createSocket(l,function(A){A.on("free",f),A.on("close",I),A.on("agentRemove",I),t.onSocket(A);function f(){o.emit("free",A,l)}function I(C){o.removeSocket(A),A.removeListener("free",f),A.removeListener("close",I),A.removeListener("agentRemove",I)}})};E$.prototype.createSocket=function(t,r){var n=this,a={};n.sockets.push(a);var o=Yhr({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1,headers:{host:t.host+":"+t.port}});t.localAddress&&(o.localAddress=t.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),Hoe("making CONNECT request");var l=n.request(o);l.useChunkedEncodingByDefault=!1,l.once("response",A),l.once("upgrade",f),l.once("connect",I),l.once("error",C),l.end();function A(b){b.upgrade=!0}function f(b,E,N){process.nextTick(function(){I(b,E,N)})}function I(b,E,N){if(l.removeAllListeners(),E.removeAllListeners(),b.statusCode!==200){Hoe("tunneling socket could not be established, statusCode=%d",b.statusCode),E.destroy();var B=new Error("tunneling socket could not be established, statusCode="+b.statusCode);B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}if(N.length>0){Hoe("got illegal response body from proxy"),E.destroy();var B=new Error("got illegal response body from proxy");B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}return Hoe("tunneling connection has established"),n.sockets[n.sockets.indexOf(a)]=E,r(E)}function C(b){l.removeAllListeners(),Hoe(`tunneling socket could not be established, cause=%s +`,b.message,b.stack);var E=new Error("tunneling socket could not be established, cause="+b.message);E.code="ECONNRESET",t.request.emit("error",E),n.removeSocket(a)}};E$.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(a){n.request.onSocket(a)})}};function mQn(e,t){var r=this;E$.prototype.createSocket.call(r,e,function(n){var a=e.request.getHeader("host"),o=Yhr({},r.options,{socket:n,servername:a?a.replace(/:.*$/,""):e.host}),l=M6o.connect(0,o);r.sockets[r.sockets.indexOf(n)]=l,t(l)})}function CQn(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Yhr(e){for(var t=1,r=arguments.length;t{yQn.exports=_Qn()});var GE=H((Ynu,EQn)=>{EQn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}});var Ub=H((Qnu,SQn)=>{"use strict";var qB=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Xhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Uhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},Khr=class e extends qB{constructor(t,r,n,a){super(t),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},zhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$hr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},emr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},tmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},rmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},nmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},imr=class e extends qB{constructor(t,r){super(t),Error.captureStackTrace(this,e),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},jpt=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},smr=class extends qB{constructor(t){super(t),Error.captureStackTrace(this,jpt),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},omr=class e extends Error{constructor(t,r,n){super(t),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},amr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},cmr=class e extends qB{constructor(t,r,{headers:n,data:a}){super(t),Error.captureStackTrace(this,e),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}};SQn.exports={HTTPParserError:omr,UndiciError:qB,HeadersTimeoutError:Xhr,HeadersOverflowError:Jhr,BodyTimeoutError:Uhr,RequestContentLengthMismatchError:emr,ConnectTimeoutError:Qhr,ResponseStatusCodeError:Khr,InvalidArgumentError:jhr,InvalidReturnValueError:zhr,RequestAbortedError:qhr,ClientDestroyedError:rmr,ClientClosedError:nmr,InformationalError:$hr,SocketError:imr,NotSupportedError:jpt,ResponseContentLengthMismatchError:tmr,BalancedPoolMissingUpstreamError:smr,ResponseExceededMaxSizeError:amr,RequestRetryError:cmr}});var BQn=H((Xnu,vQn)=>{"use strict";var zpt={},lmr=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var NQn=wt("assert"),{kDestroyed:DQn,kBodyUsed:wQn}=GE(),{IncomingMessage:K6o}=wt("http"),bBe=wt("stream"),j6o=wt("net"),{InvalidArgumentError:Tk}=Ub(),{Blob:TQn}=wt("buffer"),qpt=wt("util"),{stringify:z6o}=wt("querystring"),{headerNameLowerCasedRecord:q6o}=BQn(),[umr,RQn]=process.versions.node.split(".").map(e=>Number(e));function $6o(){}function gmr(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function kQn(e){return TQn&&e instanceof TQn||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function e7o(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=z6o(t);return r&&(e+="?"+r),e}function xQn(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Tk("Invalid URL: The URL argument must be a non-null object.");if(!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Tk("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Tk("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Tk("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Tk("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Tk("Invalid URL origin: the origin must be a string or null/undefined.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;r.endsWith("/")&&(r=r.substring(0,r.length-1)),n&&!n.startsWith("/")&&(n=`/${n}`),e=new URL(r+n)}return e}function t7o(e){if(e=xQn(e),e.pathname!=="/"||e.search||e.hash)throw new Tk("invalid url");return e}function r7o(e){if(e[0]==="["){let r=e.indexOf("]");return NQn(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function n7o(e){if(!e)return null;NQn.strictEqual(typeof e,"string");let t=r7o(e);return j6o.isIP(t)?"":t}function i7o(e){return JSON.parse(JSON.stringify(e))}function s7o(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function o7o(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function a7o(e){if(e==null)return 0;if(gmr(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(kQn(e))return e.size!=null?e.size:null;if(FQn(e))return e.byteLength}return null}function Amr(e){return!e||!!(e.destroyed||e[DQn])}function GQn(e){let t=e&&e._readableState;return Amr(e)&&t&&!t.endEmitted}function c7o(e,t){e==null||!gmr(e)||Amr(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===K6o&&(e.socket=null),e.destroy(t)):t&&process.nextTick((r,n)=>{r.emit("error",n)},e,t),e.destroyed!==!0&&(e[DQn]=!0))}var l7o=/timeout=(\d+)/;function u7o(e){let t=e.toString().match(l7o);return t?parseInt(t[1],10)*1e3:null}function g7o(e){return q6o[e]||e.toLowerCase()}function A7o(e,t={}){if(!Array.isArray(e))return e;for(let r=0;ro.toString("utf8")):t[n]=e[r+1].toString("utf8")}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function d7o(e){let t=[],r=!1,n=-1;for(let a=0;a{r.close()});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()}},0)}function y7o(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function b7o(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let t=new Error("The operation was aborted");throw t.name="AbortError",t}}}function E7o(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var S7o=!!String.prototype.toWellFormed;function v7o(e){return S7o?`${e}`.toWellFormed():qpt.toUSVString?qpt.toUSVString(e):`${e}`}function B7o(e){if(e==null||e==="")return{start:0,end:null,size:null};let t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}var ZQn=Object.create(null);ZQn.enumerable=!0;LQn.exports={kEnumerableProperty:ZQn,nop:$6o,isDisturbed:f7o,isErrored:I7o,isReadable:h7o,toUSVString:v7o,isReadableAborted:GQn,isBlobLike:kQn,parseOrigin:t7o,parseURL:xQn,getServerName:n7o,isStream:gmr,isIterable:o7o,isAsyncIterable:s7o,isDestroyed:Amr,headerNameToString:g7o,parseRawHeaders:d7o,parseHeaders:A7o,parseKeepAliveTimeout:u7o,destroy:c7o,bodyLength:a7o,deepClone:i7o,ReadableStreamFrom:_7o,isBuffer:FQn,validateHandler:p7o,getSocketInfo:m7o,isFormDataLike:y7o,buildURL:e7o,throwIfAborted:b7o,addAbortListener:E7o,parseRangeHeader:B7o,nodeMajor:umr,nodeMinor:RQn,nodeHasAutoSelectFamily:umr>18||umr===18&&RQn>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}});var WQn=H((Unu,PQn)=>{"use strict";var dmr=Date.now(),Yoe,Qoe=[];function w7o(){dmr=Date.now();let e=Qoe.length,t=0;for(;t0&&dmr>=r.state&&(r.state=-1,r.callback(r.opaque)),r.state===-1?(r.state=-2,t!==e-1?Qoe[t]=Qoe.pop():Qoe.pop(),e-=1):t+=1}Qoe.length>0&&VQn()}function VQn(){Yoe&&Yoe.refresh?Yoe.refresh():(clearTimeout(Yoe),Yoe=setTimeout(w7o,1e3),Yoe.unref&&Yoe.unref())}var $pt=class{constructor(t,r,n){this.callback=t,this.delay=r,this.opaque=n,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Qoe.push(this),(!Yoe||Qoe.length===1)&&VQn()),this.state=0}clear(){this.state=-1}};PQn.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new $pt(e,t,r)},clearTimeout(e){e instanceof $pt?e.clear():clearTimeout(e)}}});var pmr=H((Knu,OQn)=>{"use strict";var T7o=wt("node:events").EventEmitter,R7o=wt("node:util").inherits;function GIe(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(t);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let A=this._lookbehind_size+o;return A>0&&this.emit("info",!1,this._lookbehind,0,A),this._lookbehind.copy(this._lookbehind,0,A,this._lookbehind_size-A),this._lookbehind_size-=A,e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o+=(o>=0)*this._bufpos,e.indexOf(r,o)!==-1)return o=e.indexOf(r,o),++this.matches,o>0?this.emit("info",!0,e,this._bufpos,o):this.emit("info",!0),this._bufpos=o+n;for(o=t-n;o0&&this.emit("info",!1,e,this._bufpos,o{"use strict";var N7o=wt("node:util").inherits,MQn=wt("node:stream").Readable;function fmr(e){MQn.call(this,e)}N7o(fmr,MQn);fmr.prototype._read=function(e){};HQn.exports=fmr});var eft=H((znu,QQn)=>{"use strict";QQn.exports=function(t,r,n){if(!t||t[r]===void 0||t[r]===null)return n;if(typeof t[r]!="number"||isNaN(t[r]))throw new TypeError("Limit "+r+" is not a valid number");return t[r]}});var KQn=H((qnu,UQn)=>{"use strict";var JQn=wt("node:events").EventEmitter,D7o=wt("node:util").inherits,XQn=eft(),k7o=pmr(),x7o=Buffer.from(`\r \r -`),G7o=/\r\n/g,F7o=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function EBe(e){JQn.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=XQn(e,"maxHeaderPairs",2e3),this.maxHeaderSize=XQn(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k7o(x7o),this.ss.on("info",function(r,n,a,o){n&&!t.maxed&&(t.nread+o-a>=t.maxHeaderSize?(o=t.maxHeaderSize-t.nread+a,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=o-a,t.buffer+=n.toString("binary",a,o)),r&&t._finish()})}D7o(EBe,JQn);EBe.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};EBe.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};EBe.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};EBe.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(G7o),t=e.length,r,n;for(var a=0;a{"use strict";var Imr=wt("node:stream").Writable,Z7o=wt("node:util").inherits,L7o=pmr(),jQn=YQn(),V7o=KQn(),P7o=45,W7o=Buffer.from("-"),O7o=Buffer.from(`\r +`),G7o=/\r\n/g,F7o=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function EBe(e){JQn.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=XQn(e,"maxHeaderPairs",2e3),this.maxHeaderSize=XQn(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k7o(x7o),this.ss.on("info",function(r,n,a,o){n&&!t.maxed&&(t.nread+o-a>=t.maxHeaderSize?(o=t.maxHeaderSize-t.nread+a,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=o-a,t.buffer+=n.toString("binary",a,o)),r&&t._finish()})}D7o(EBe,JQn);EBe.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};EBe.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};EBe.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};EBe.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(G7o),t=e.length,r,n;for(var a=0;a{"use strict";var Imr=wt("node:stream").Writable,Z7o=wt("node:util").inherits,L7o=pmr(),jQn=YQn(),V7o=KQn(),P7o=45,W7o=Buffer.from("-"),O7o=Buffer.from(`\r `),M7o=function(){};function BX(e){if(!(this instanceof BX))return new BX(e);if(Imr.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new V7o(e),this._hparser.on("header",function(r){t._inHeader=!1,t._part.emit("header",r)})}Z7o(BX,Imr);BX.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let r=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(r+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else Imr.prototype.emit.apply(this,arguments)};BX.prototype._write=function(e,t,r){if(!this._hparser&&!this._bparser)return r();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new jQn(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let n=this._hparser.push(e);if(!this._inHeader&&n!==void 0&&n{"use strict";var qQn=new TextDecoder("utf-8"),$Qn=new Map([["utf-8",qQn],["utf8",qQn]]);function H7o(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return fHe.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return fHe.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return fHe.utf16le;case"base64":return fHe.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return fHe.other.bind(e)}}var fHe={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),$Qn.has(mmr.toString()))try{return $Qn.get(mmr).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y7o(e,t,r){return e&&H7o(r)(e,t)}eXn.exports=Y7o});var _mr=H(($nu,sXn)=>{"use strict";var rft=tft(),tXn=/%[a-fA-F0-9][a-fA-F0-9]/g,Q7o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +--`+e),this._bparser.on("info",function(r,n,a,o){t._oninfo(r,n,a,o)})};BX.prototype._ignore=function(){this._part&&!this._ignoreData&&(this._ignoreData=!0,this._part.on("error",M7o),this._part.resume())};BX.prototype._oninfo=function(e,t,r,n){let a,o=this,l=0,A,f=!0;if(!this._part&&this._justMatched&&t){for(;this._dashes<2&&r+l{"use strict";var qQn=new TextDecoder("utf-8"),$Qn=new Map([["utf-8",qQn],["utf8",qQn]]);function H7o(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return fHe.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return fHe.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return fHe.utf16le;case"base64":return fHe.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return fHe.other.bind(e)}}var fHe={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),$Qn.has(mmr.toString()))try{return $Qn.get(mmr).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y7o(e,t,r){return e&&H7o(r)(e,t)}eXn.exports=Y7o});var _mr=H((eiu,sXn)=>{"use strict";var rft=tft(),tXn=/%[a-fA-F0-9][a-fA-F0-9]/g,Q7o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` `,"%0A":` -`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function rXn(e){return Q7o[e]}var nft=0,nXn=1,Cmr=2,iXn=3;function X7o(e){let t=[],r=nft,n="",a=!1,o=!1,l=0,A="",f=e.length;for(var I=0;I{"use strict";oXn.exports=function(t){if(typeof t!="string")return"";for(var r=t.length-1;r>=0;--r)switch(t.charCodeAt(r)){case 47:case 92:return t=t.slice(r+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var gXn=H((tiu,uXn)=>{"use strict";var{Readable:lXn}=wt("node:stream"),{inherits:J7o}=wt("node:util"),U7o=hmr(),cXn=_mr(),K7o=tft(),j7o=aXn(),FIe=eft(),z7o=/^boundary$/i,q7o=/^form-data$/i,$7o=/^charset$/i,ezo=/^filename$/i,tzo=/^name$/i;ift.detect=/^multipart\/form-data/i;function ift(e,t){let r,n,a=this,o,l=t.limits,A=t.isPartAFile||((k,et,ct)=>et==="application/octet-stream"||ct!==void 0),f=t.parsedConType||[],I=t.defCharset||"utf8",C=t.preservePath,b={highWaterMark:t.fileHwm};for(r=0,n=f.length;rX)return a.parser.removeListener("part",k),a.parser.on("part",SBe),e.hitPartsLimit=!0,e.emit("partsLimit"),SBe(et);if(be){let ct=be;ct.emit("end"),ct.removeAllListeners("end")}et.on("header",function(ct){let Me,je,St,At,Yt,Tr,Nr=0;if(ct["content-type"]&&(St=cXn(ct["content-type"][0]),St[0])){for(Me=St[0].toLowerCase(),r=0,n=St.length;rB){let qt=B-Nr+Zr.length;qt>0&&xt.push(Zr.slice(0,qt)),xt.truncated=!0,xt.bytesRead=B,et.removeAllListeners("data"),xt.emit("limit");return}else xt.push(Zr)||(a._pause=!0);xt.bytesRead=Nr},vt=function(){de=void 0,xt.push(null)}}else{if(fe===Q)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),SBe(et);++fe,++ue;let xt="",Zr=!1;be=et,er=function(qt){if((Nr+=qt.length)>N){let Xt=N-(Nr-qt.length);xt+=qt.toString("binary",0,Xt),Zr=!0,et.removeAllListeners("data")}else xt+=qt.toString("binary")},vt=function(){be=void 0,xt.length&&(xt=K7o(xt,"binary",At)),e.emit("field",je,xt,!1,Zr,Yt,Me),--ue,E()}}et._readableState.sync=!1,et.on("data",er),et.on("end",vt)}).on("error",function(ct){de&&de.emit("error",ct)})}).on("error",function(k){e.emit("error",k)}).on("finish",function(){Se=!0,E()})}ift.prototype.write=function(e,t){let r=this.parser.write(e);r&&!this._pause?t():(this._needDrain=!r,this._cb=t)};ift.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function SBe(e){e.resume()}function ymr(e){lXn.call(this,e),this.bytesRead=0,this.truncated=!1}J7o(ymr,lXn);ymr.prototype._read=function(e){};uXn.exports=ift});var dXn=H((riu,AXn)=>{"use strict";var rzo=/\+/g,nzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function bmr(){this.buffer=void 0}bmr.prototype.write=function(e){e=e.replace(rzo," ");let t="",r=0,n=0,a=e.length;for(;rn&&(t+=e.substring(n,r),n=r),this.buffer="",++n);return n{"use strict";var izo=dXn(),vBe=tft(),Emr=eft(),szo=/^charset$/i;sft.detect=/^application\/x-www-form-urlencoded/i;function sft(e,t){let r=t.limits,n=t.parsedConType;this.boy=e,this.fieldSizeLimit=Emr(r,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=Emr(r,"fieldNameSize",100),this.fieldsLimit=Emr(r,"fields",1/0);let a;for(var o=0,l=n.length;oo&&(this._key+=this.decoder.write(e.toString("binary",o,r))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),o=r+1;else if(n!==void 0){++this._fields;let A,f=this._keyTrunc;if(n>o?A=this._key+=this.decoder.write(e.toString("binary",o,n)):A=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),A.length&&this.boy.emit("field",vBe(A,"binary",this.charset),"",f,!1),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._key+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(oo&&(this._val+=this.decoder.write(e.toString("binary",o,n))),this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._val+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(o0?this.boy.emit("field",vBe(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};pXn.exports=sft});var mXn=H((iiu,IHe)=>{"use strict";var Smr=wt("node:stream").Writable,{inherits:ozo}=wt("node:util"),azo=hmr(),IXn=gXn(),hXn=fXn(),czo=_mr();function S$(e){if(!(this instanceof S$))return new S$(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...r}=e;this.opts={autoDestroy:!1,...r},Smr.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}ozo(S$,Smr);S$.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}Smr.prototype.emit.apply(this,arguments)};S$.prototype.getParserByHeaders=function(e){let t=czo(e["content-type"]),r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(IXn.detect.test(t[0]))return new IXn(this,r);if(hXn.detect.test(t[0]))return new hXn(this,r);throw new Error("Unsupported Content-Type.")};S$.prototype._write=function(e,t,r){this._parser.write(e,r)};IHe.exports=S$;IHe.exports.default=S$;IHe.exports.Busboy=S$;IHe.exports.Dicer=azo});var Xoe=H((siu,BXn)=>{"use strict";var{MessageChannel:lzo,receiveMessageOnPort:uzo}=wt("worker_threads"),CXn=["GET","HEAD","POST"],gzo=new Set(CXn),Azo=[101,204,205,304],_Xn=[301,302,303,307,308],dzo=new Set(_Xn),yXn=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],pzo=new Set(yXn),bXn=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],fzo=new Set(bXn),Izo=["follow","manual","error"],EXn=["GET","HEAD","OPTIONS","TRACE"],hzo=new Set(EXn),mzo=["navigate","same-origin","no-cors","cors"],Czo=["omit","same-origin","include"],_zo=["default","no-store","reload","no-cache","force-cache","only-if-cached"],yzo=["content-encoding","content-language","content-location","content-type","content-length"],bzo=["half"],SXn=["CONNECT","TRACE","TRACK"],Ezo=new Set(SXn),vXn=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Szo=new Set(vXn),vzo=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),BBe,Bzo=globalThis.structuredClone??function(t,r=void 0){if(arguments.length===0)throw new TypeError("missing argument");return BBe||(BBe=new lzo),BBe.port1.unref(),BBe.port2.unref(),BBe.port1.postMessage(t,r?.transfer),uzo(BBe.port2).message};BXn.exports={DOMException:vzo,structuredClone:Bzo,subresource:vXn,forbiddenMethods:SXn,requestBodyHeader:yzo,referrerPolicy:bXn,requestRedirect:Izo,requestMode:mzo,requestCredentials:Czo,requestCache:_zo,redirectStatus:_Xn,corsSafeListedMethods:CXn,nullBodyStatus:Azo,safeMethods:EXn,badPorts:yXn,requestDuplex:bzo,subresourceSet:Szo,badPortsSet:pzo,redirectStatusSet:dzo,corsSafeListedMethodsSet:gzo,safeMethodsSet:hzo,forbiddenMethodsSet:Ezo,referrerPolicySet:fzo}});var wBe=H((oiu,wXn)=>{"use strict";var vmr=Symbol.for("undici.globalOrigin.1");function wzo(){return globalThis[vmr]}function Tzo(e){if(e===void 0){Object.defineProperty(globalThis,vmr,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,vmr,{value:t,writable:!0,enumerable:!1,configurable:!1})}wXn.exports={getGlobalOrigin:wzo,setGlobalOrigin:Tzo}});var EM=H((aiu,FXn)=>{"use strict";var{redirectStatusSet:Rzo,referrerPolicySet:Nzo,badPortsSet:Dzo}=Xoe(),{getGlobalOrigin:kzo}=wBe(),{performance:xzo}=wt("perf_hooks"),{isBlobLike:Gzo,toUSVString:Fzo,ReadableStreamFrom:Zzo}=zC(),TBe=wt("assert"),{isUint8Array:Lzo}=wt("util/types"),TXn=[],oft;try{oft=wt("crypto");let e=["sha256","sha384","sha512"];TXn=oft.getHashes().filter(t=>e.includes(t))}catch{}function RXn(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function Vzo(e,t){if(!Rzo.has(e.status))return null;let r=e.headersList.get("location");return r!==null&&DXn(r)&&(r=new URL(r,RXn(e))),r&&!r.hash&&(r.hash=t),r}function mHe(e){return e.urlList[e.urlList.length-1]}function Pzo(e){let t=mHe(e);return GXn(t)&&Dzo.has(t.port)?"blocked":"allowed"}function Wzo(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Ozo(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}function Mzo(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function NXn(e){if(e.length===0)return!1;for(let t=0;t0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(Nzo.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function Qzo(){return"allowed"}function Xzo(){return"success"}function Jzo(){return"success"}function Uzo(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t)}function Kzo(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")t&&e.headersList.append("origin",t);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Tmr(e.origin)&&!Tmr(mHe(e))&&(t=null);break;case"same-origin":aft(e,mHe(e))||(t=null);break;default:}t&&e.headersList.append("origin",t)}}function jzo(e){return xzo.now()}function zzo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function qzo(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function $zo(e){return{referrerPolicy:e.referrerPolicy}}function eqo(e){let t=e.referrerPolicy;TBe(t);let r=null;if(e.referrer==="client"){let A=kzo();if(!A||A.origin==="null")return"no-referrer";r=new URL(A)}else e.referrer instanceof URL&&(r=e.referrer);let n=Bmr(r),a=Bmr(r,!0);n.toString().length>4096&&(n=a);let o=aft(e,n),l=hHe(n)&&!hHe(e.url);switch(t){case"origin":return a??Bmr(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=mHe(e);return aft(n,A)?n:hHe(n)&&!hHe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function Bmr(e,t){return TBe(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function hHe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function tqo(e,t){if(oft===void 0)return!0;let r=kXn(t);if(r==="no metadata"||r.length===0)return!0;let n=nqo(r),a=iqo(r,n);for(let o of a){let l=o.algo,A=o.hash,f=oft.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),sqo(f,A))return!0}return!1}var rqo=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function kXn(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=rqo.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();TXn.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function nqo(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function cqo(e){return e.controller.state==="aborted"}function lqo(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}var Rmr={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(Rmr,null);function uqo(e){return Rmr[e.toLowerCase()]??e}function gqo(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return TBe(typeof t=="string"),t}var Aqo=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function dqo(e,t,r){let n={index:0,kind:r,target:e},a={next(){if(Object.getPrototypeOf(this)!==a)throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let{index:o,kind:l,target:A}=n,f=A(),I=f.length;if(o>=I)return{value:void 0,done:!0};let C=f[o];return n.index=o+1,pqo(C,l)},[Symbol.toStringTag]:`${t} Iterator`};return Object.setPrototypeOf(a,Aqo),Object.setPrototypeOf({},a)}function pqo(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:!1}}async function fqo(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{let l=await xXn(o);n(l)}catch(l){a(l)}}var wmr=globalThis.ReadableStream;function Iqo(e){return wmr||(wmr=wt("stream/web").ReadableStream),e instanceof wmr||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var hqo=65535;function mqo(e){return e.lengtht+String.fromCharCode(r),"")}function Cqo(e){try{e.close()}catch(t){if(!t.message.includes("Controller is already closed"))throw t}}function _qo(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));FXn.exports={isAborted:cqo,isCancelled:lqo,createDeferredPromise:aqo,ReadableStreamFrom:Zzo,toUSVString:Fzo,tryUpgradeRequestToAPotentiallyTrustworthyURL:oqo,coarsenedSharedCurrentTime:jzo,determineRequestsReferrer:eqo,makePolicyContainer:qzo,clonePolicyContainer:$zo,appendFetchMetadata:Uzo,appendRequestOriginHeader:Kzo,TAOCheck:Jzo,corsCheck:Xzo,crossOriginResourcePolicyCheck:Qzo,createOpaqueTimingInfo:zzo,setRequestReferrerPolicyOnRedirect:Yzo,isValidHTTPToken:NXn,requestBadPort:Pzo,requestCurrentURL:mHe,responseURL:RXn,responseLocationURL:Vzo,isBlobLike:Gzo,isURLPotentiallyTrustworthy:hHe,isValidReasonPhrase:Ozo,sameOrigin:aft,normalizeMethod:uqo,serializeJavascriptValueToJSONString:gqo,makeIterator:dqo,isValidHeaderName:Hzo,isValidHeaderValue:DXn,hasOwn:bqo,isErrorLike:Wzo,fullyReadBody:fqo,bytesMatch:tqo,isReadableStreamLike:Iqo,readableStreamClose:Cqo,isomorphicEncode:_qo,isomorphicDecode:mqo,urlIsLocal:yqo,urlHasHttpsScheme:Tmr,urlIsHttpHttpsScheme:GXn,readAllBytes:xXn,normalizeMethodRecord:Rmr,parseMetadata:kXn}});var v$=H((ciu,ZXn)=>{"use strict";ZXn.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var xZ=H((liu,VXn)=>{"use strict";var{types:p8}=wt("util"),{hasOwn:LXn,toUSVString:Eqo}=EM(),pg={};pg.converters={};pg.util={};pg.errors={};pg.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};pg.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return pg.errors.exception({header:e.prefix,message:r})};pg.errors.invalidArgument=function(e){return pg.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};pg.brandCheck=function(e,t,r=void 0){if(r?.strict!==!1&&!(e instanceof t))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]};pg.argumentLengthCheck=function({length:e},t,r){if(ea)throw pg.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=pg.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};pg.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};pg.sequenceConverter=function(e){return t=>{if(pg.util.Type(t)!=="Object")throw pg.errors.exception({header:"Sequence",message:`Value of type ${pg.util.Type(t)} is not an Object.`});let r=t?.[Symbol.iterator]?.(),n=[];if(r===void 0||typeof r.next!="function")throw pg.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:a,value:o}=r.next();if(a)break;n.push(e(o))}return n}};pg.recordConverter=function(e,t){return r=>{if(pg.util.Type(r)!=="Object")throw pg.errors.exception({header:"Record",message:`Value of type ${pg.util.Type(r)} is not an Object.`});let n={};if(!p8.isProxy(r)){let o=Object.keys(r);for(let l of o){let A=e(l),f=t(r[l]);n[A]=f}return n}let a=Reflect.ownKeys(r);for(let o of a)if(Reflect.getOwnPropertyDescriptor(r,o)?.enumerable){let A=e(o),f=t(r[o]);n[A]=f}return n}};pg.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==!1&&!(t instanceof e))throw pg.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`});return t}};pg.dictionaryConverter=function(e){return t=>{let r=pg.util.Type(t),n={};if(r==="Null"||r==="Undefined")return n;if(r!=="Object")throw pg.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:o,defaultValue:l,required:A,converter:f}=a;if(A===!0&&!LXn(t,o))throw pg.errors.exception({header:"Dictionary",message:`Missing required key "${o}".`});let I=t[o],C=LXn(a,"defaultValue");if(C&&I!==null&&(I=I??l),A||C||I!==void 0){if(I=f(I),a.allowedValues&&!a.allowedValues.includes(I))throw pg.errors.exception({header:"Dictionary",message:`${I} is not an accepted type. Expected one of ${a.allowedValues.join(", ")}.`});n[o]=I}}return n}};pg.nullableConverter=function(e){return t=>t===null?t:e(t)};pg.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};pg.converters.ByteString=function(e){let t=pg.converters.DOMString(e);for(let r=0;r255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${r} has a value of ${t.charCodeAt(r)} which is greater than 255.`);return t};pg.converters.USVString=Eqo;pg.converters.boolean=function(e){return!!e};pg.converters.any=function(e){return e};pg.converters["long long"]=function(e){return pg.util.ConvertToInt(e,64,"signed")};pg.converters["unsigned long long"]=function(e){return pg.util.ConvertToInt(e,64,"unsigned")};pg.converters["unsigned long"]=function(e){return pg.util.ConvertToInt(e,32,"unsigned")};pg.converters["unsigned short"]=function(e,t){return pg.util.ConvertToInt(e,16,"unsigned",t)};pg.converters.ArrayBuffer=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isAnyArrayBuffer(e))throw pg.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.TypedArray=function(e,t,r={}){if(pg.util.Type(e)!=="Object"||!p8.isTypedArray(e)||e.constructor.name!==t.name)throw pg.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]});if(r.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.DataView=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isDataView(e))throw pg.errors.exception({header:"DataView",message:"Object is not a DataView."});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.BufferSource=function(e,t={}){if(p8.isAnyArrayBuffer(e))return pg.converters.ArrayBuffer(e,t);if(p8.isTypedArray(e))return pg.converters.TypedArray(e,e.constructor);if(p8.isDataView(e))return pg.converters.DataView(e,t);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};pg.converters["sequence"]=pg.sequenceConverter(pg.converters.ByteString);pg.converters["sequence>"]=pg.sequenceConverter(pg.converters["sequence"]);pg.converters["record"]=pg.recordConverter(pg.converters.ByteString,pg.converters.ByteString);VXn.exports={webidl:pg}});var wX=H((uiu,YXn)=>{var lft=wt("assert"),{atob:Sqo}=wt("buffer"),{isomorphicDecode:vqo}=EM(),Bqo=new TextEncoder,cft=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,wqo=/(\u000A|\u000D|\u0009|\u0020)/,Tqo=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Rqo(e){lft(e.protocol==="data:");let t=OXn(e,!0);t=t.slice(5);let r={position:0},n=RBe(",",t,r),a=n.length;if(n=xqo(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=MXn(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=vqo(l);if(l=Dqo(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=Dmr(n);return A==="failure"&&(A=Dmr("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function OXn(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function uft(e,t,r){let n="";for(;r.positione.length)return"failure";t.position++;let n=RBe(";",e,t);if(n=Nmr(n,!1,!0),n.length===0||!cft.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionwqo.test(I),e,t);let A=uft(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=HXn(e,t,!0),RBe(";",e,t);else if(f=RBe(";",e,t),f=Nmr(f,!1,!0),f.length===0)continue;A.length!==0&&cft.test(A)&&(f.length===0||Tqo.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Dqo(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let t=Sqo(e),r=new Uint8Array(t.length);for(let n=0;nl!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{lft(o==='"');break}}return r?a:e.slice(n,t.position)}function kqo(e){lft(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",cft.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function PXn(e){return e==="\r"||e===` +`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function rXn(e){return Q7o[e]}var nft=0,nXn=1,Cmr=2,iXn=3;function X7o(e){let t=[],r=nft,n="",a=!1,o=!1,l=0,A="",f=e.length;for(var I=0;I{"use strict";oXn.exports=function(t){if(typeof t!="string")return"";for(var r=t.length-1;r>=0;--r)switch(t.charCodeAt(r)){case 47:case 92:return t=t.slice(r+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var gXn=H((riu,uXn)=>{"use strict";var{Readable:lXn}=wt("node:stream"),{inherits:J7o}=wt("node:util"),U7o=hmr(),cXn=_mr(),K7o=tft(),j7o=aXn(),FIe=eft(),z7o=/^boundary$/i,q7o=/^form-data$/i,$7o=/^charset$/i,ezo=/^filename$/i,tzo=/^name$/i;ift.detect=/^multipart\/form-data/i;function ift(e,t){let r,n,a=this,o,l=t.limits,A=t.isPartAFile||((k,et,ct)=>et==="application/octet-stream"||ct!==void 0),f=t.parsedConType||[],I=t.defCharset||"utf8",C=t.preservePath,b={highWaterMark:t.fileHwm};for(r=0,n=f.length;rX)return a.parser.removeListener("part",k),a.parser.on("part",SBe),e.hitPartsLimit=!0,e.emit("partsLimit"),SBe(et);if(be){let ct=be;ct.emit("end"),ct.removeAllListeners("end")}et.on("header",function(ct){let Me,je,St,At,Yt,Tr,Nr=0;if(ct["content-type"]&&(St=cXn(ct["content-type"][0]),St[0])){for(Me=St[0].toLowerCase(),r=0,n=St.length;rB){let qt=B-Nr+Zr.length;qt>0&&xt.push(Zr.slice(0,qt)),xt.truncated=!0,xt.bytesRead=B,et.removeAllListeners("data"),xt.emit("limit");return}else xt.push(Zr)||(a._pause=!0);xt.bytesRead=Nr},vt=function(){de=void 0,xt.push(null)}}else{if(fe===Q)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),SBe(et);++fe,++ue;let xt="",Zr=!1;be=et,er=function(qt){if((Nr+=qt.length)>N){let Xt=N-(Nr-qt.length);xt+=qt.toString("binary",0,Xt),Zr=!0,et.removeAllListeners("data")}else xt+=qt.toString("binary")},vt=function(){be=void 0,xt.length&&(xt=K7o(xt,"binary",At)),e.emit("field",je,xt,!1,Zr,Yt,Me),--ue,E()}}et._readableState.sync=!1,et.on("data",er),et.on("end",vt)}).on("error",function(ct){de&&de.emit("error",ct)})}).on("error",function(k){e.emit("error",k)}).on("finish",function(){Se=!0,E()})}ift.prototype.write=function(e,t){let r=this.parser.write(e);r&&!this._pause?t():(this._needDrain=!r,this._cb=t)};ift.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function SBe(e){e.resume()}function ymr(e){lXn.call(this,e),this.bytesRead=0,this.truncated=!1}J7o(ymr,lXn);ymr.prototype._read=function(e){};uXn.exports=ift});var dXn=H((niu,AXn)=>{"use strict";var rzo=/\+/g,nzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function bmr(){this.buffer=void 0}bmr.prototype.write=function(e){e=e.replace(rzo," ");let t="",r=0,n=0,a=e.length;for(;rn&&(t+=e.substring(n,r),n=r),this.buffer="",++n);return n{"use strict";var izo=dXn(),vBe=tft(),Emr=eft(),szo=/^charset$/i;sft.detect=/^application\/x-www-form-urlencoded/i;function sft(e,t){let r=t.limits,n=t.parsedConType;this.boy=e,this.fieldSizeLimit=Emr(r,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=Emr(r,"fieldNameSize",100),this.fieldsLimit=Emr(r,"fields",1/0);let a;for(var o=0,l=n.length;oo&&(this._key+=this.decoder.write(e.toString("binary",o,r))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),o=r+1;else if(n!==void 0){++this._fields;let A,f=this._keyTrunc;if(n>o?A=this._key+=this.decoder.write(e.toString("binary",o,n)):A=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),A.length&&this.boy.emit("field",vBe(A,"binary",this.charset),"",f,!1),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._key+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(oo&&(this._val+=this.decoder.write(e.toString("binary",o,n))),this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._val+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(o0?this.boy.emit("field",vBe(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};pXn.exports=sft});var mXn=H((siu,IHe)=>{"use strict";var Smr=wt("node:stream").Writable,{inherits:ozo}=wt("node:util"),azo=hmr(),IXn=gXn(),hXn=fXn(),czo=_mr();function S$(e){if(!(this instanceof S$))return new S$(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...r}=e;this.opts={autoDestroy:!1,...r},Smr.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}ozo(S$,Smr);S$.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}Smr.prototype.emit.apply(this,arguments)};S$.prototype.getParserByHeaders=function(e){let t=czo(e["content-type"]),r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(IXn.detect.test(t[0]))return new IXn(this,r);if(hXn.detect.test(t[0]))return new hXn(this,r);throw new Error("Unsupported Content-Type.")};S$.prototype._write=function(e,t,r){this._parser.write(e,r)};IHe.exports=S$;IHe.exports.default=S$;IHe.exports.Busboy=S$;IHe.exports.Dicer=azo});var Xoe=H((oiu,BXn)=>{"use strict";var{MessageChannel:lzo,receiveMessageOnPort:uzo}=wt("worker_threads"),CXn=["GET","HEAD","POST"],gzo=new Set(CXn),Azo=[101,204,205,304],_Xn=[301,302,303,307,308],dzo=new Set(_Xn),yXn=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],pzo=new Set(yXn),bXn=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],fzo=new Set(bXn),Izo=["follow","manual","error"],EXn=["GET","HEAD","OPTIONS","TRACE"],hzo=new Set(EXn),mzo=["navigate","same-origin","no-cors","cors"],Czo=["omit","same-origin","include"],_zo=["default","no-store","reload","no-cache","force-cache","only-if-cached"],yzo=["content-encoding","content-language","content-location","content-type","content-length"],bzo=["half"],SXn=["CONNECT","TRACE","TRACK"],Ezo=new Set(SXn),vXn=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Szo=new Set(vXn),vzo=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),BBe,Bzo=globalThis.structuredClone??function(t,r=void 0){if(arguments.length===0)throw new TypeError("missing argument");return BBe||(BBe=new lzo),BBe.port1.unref(),BBe.port2.unref(),BBe.port1.postMessage(t,r?.transfer),uzo(BBe.port2).message};BXn.exports={DOMException:vzo,structuredClone:Bzo,subresource:vXn,forbiddenMethods:SXn,requestBodyHeader:yzo,referrerPolicy:bXn,requestRedirect:Izo,requestMode:mzo,requestCredentials:Czo,requestCache:_zo,redirectStatus:_Xn,corsSafeListedMethods:CXn,nullBodyStatus:Azo,safeMethods:EXn,badPorts:yXn,requestDuplex:bzo,subresourceSet:Szo,badPortsSet:pzo,redirectStatusSet:dzo,corsSafeListedMethodsSet:gzo,safeMethodsSet:hzo,forbiddenMethodsSet:Ezo,referrerPolicySet:fzo}});var wBe=H((aiu,wXn)=>{"use strict";var vmr=Symbol.for("undici.globalOrigin.1");function wzo(){return globalThis[vmr]}function Tzo(e){if(e===void 0){Object.defineProperty(globalThis,vmr,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,vmr,{value:t,writable:!0,enumerable:!1,configurable:!1})}wXn.exports={getGlobalOrigin:wzo,setGlobalOrigin:Tzo}});var EM=H((ciu,FXn)=>{"use strict";var{redirectStatusSet:Rzo,referrerPolicySet:Nzo,badPortsSet:Dzo}=Xoe(),{getGlobalOrigin:kzo}=wBe(),{performance:xzo}=wt("perf_hooks"),{isBlobLike:Gzo,toUSVString:Fzo,ReadableStreamFrom:Zzo}=zC(),TBe=wt("assert"),{isUint8Array:Lzo}=wt("util/types"),TXn=[],oft;try{oft=wt("crypto");let e=["sha256","sha384","sha512"];TXn=oft.getHashes().filter(t=>e.includes(t))}catch{}function RXn(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function Vzo(e,t){if(!Rzo.has(e.status))return null;let r=e.headersList.get("location");return r!==null&&DXn(r)&&(r=new URL(r,RXn(e))),r&&!r.hash&&(r.hash=t),r}function mHe(e){return e.urlList[e.urlList.length-1]}function Pzo(e){let t=mHe(e);return GXn(t)&&Dzo.has(t.port)?"blocked":"allowed"}function Wzo(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Ozo(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}function Mzo(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function NXn(e){if(e.length===0)return!1;for(let t=0;t0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(Nzo.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function Qzo(){return"allowed"}function Xzo(){return"success"}function Jzo(){return"success"}function Uzo(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t)}function Kzo(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")t&&e.headersList.append("origin",t);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Tmr(e.origin)&&!Tmr(mHe(e))&&(t=null);break;case"same-origin":aft(e,mHe(e))||(t=null);break;default:}t&&e.headersList.append("origin",t)}}function jzo(e){return xzo.now()}function zzo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function qzo(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function $zo(e){return{referrerPolicy:e.referrerPolicy}}function eqo(e){let t=e.referrerPolicy;TBe(t);let r=null;if(e.referrer==="client"){let A=kzo();if(!A||A.origin==="null")return"no-referrer";r=new URL(A)}else e.referrer instanceof URL&&(r=e.referrer);let n=Bmr(r),a=Bmr(r,!0);n.toString().length>4096&&(n=a);let o=aft(e,n),l=hHe(n)&&!hHe(e.url);switch(t){case"origin":return a??Bmr(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=mHe(e);return aft(n,A)?n:hHe(n)&&!hHe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function Bmr(e,t){return TBe(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function hHe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function tqo(e,t){if(oft===void 0)return!0;let r=kXn(t);if(r==="no metadata"||r.length===0)return!0;let n=nqo(r),a=iqo(r,n);for(let o of a){let l=o.algo,A=o.hash,f=oft.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),sqo(f,A))return!0}return!1}var rqo=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function kXn(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=rqo.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();TXn.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function nqo(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function cqo(e){return e.controller.state==="aborted"}function lqo(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}var Rmr={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(Rmr,null);function uqo(e){return Rmr[e.toLowerCase()]??e}function gqo(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return TBe(typeof t=="string"),t}var Aqo=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function dqo(e,t,r){let n={index:0,kind:r,target:e},a={next(){if(Object.getPrototypeOf(this)!==a)throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let{index:o,kind:l,target:A}=n,f=A(),I=f.length;if(o>=I)return{value:void 0,done:!0};let C=f[o];return n.index=o+1,pqo(C,l)},[Symbol.toStringTag]:`${t} Iterator`};return Object.setPrototypeOf(a,Aqo),Object.setPrototypeOf({},a)}function pqo(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:!1}}async function fqo(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{let l=await xXn(o);n(l)}catch(l){a(l)}}var wmr=globalThis.ReadableStream;function Iqo(e){return wmr||(wmr=wt("stream/web").ReadableStream),e instanceof wmr||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var hqo=65535;function mqo(e){return e.lengtht+String.fromCharCode(r),"")}function Cqo(e){try{e.close()}catch(t){if(!t.message.includes("Controller is already closed"))throw t}}function _qo(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));FXn.exports={isAborted:cqo,isCancelled:lqo,createDeferredPromise:aqo,ReadableStreamFrom:Zzo,toUSVString:Fzo,tryUpgradeRequestToAPotentiallyTrustworthyURL:oqo,coarsenedSharedCurrentTime:jzo,determineRequestsReferrer:eqo,makePolicyContainer:qzo,clonePolicyContainer:$zo,appendFetchMetadata:Uzo,appendRequestOriginHeader:Kzo,TAOCheck:Jzo,corsCheck:Xzo,crossOriginResourcePolicyCheck:Qzo,createOpaqueTimingInfo:zzo,setRequestReferrerPolicyOnRedirect:Yzo,isValidHTTPToken:NXn,requestBadPort:Pzo,requestCurrentURL:mHe,responseURL:RXn,responseLocationURL:Vzo,isBlobLike:Gzo,isURLPotentiallyTrustworthy:hHe,isValidReasonPhrase:Ozo,sameOrigin:aft,normalizeMethod:uqo,serializeJavascriptValueToJSONString:gqo,makeIterator:dqo,isValidHeaderName:Hzo,isValidHeaderValue:DXn,hasOwn:bqo,isErrorLike:Wzo,fullyReadBody:fqo,bytesMatch:tqo,isReadableStreamLike:Iqo,readableStreamClose:Cqo,isomorphicEncode:_qo,isomorphicDecode:mqo,urlIsLocal:yqo,urlHasHttpsScheme:Tmr,urlIsHttpHttpsScheme:GXn,readAllBytes:xXn,normalizeMethodRecord:Rmr,parseMetadata:kXn}});var v$=H((liu,ZXn)=>{"use strict";ZXn.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var xZ=H((uiu,VXn)=>{"use strict";var{types:p8}=wt("util"),{hasOwn:LXn,toUSVString:Eqo}=EM(),pg={};pg.converters={};pg.util={};pg.errors={};pg.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};pg.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return pg.errors.exception({header:e.prefix,message:r})};pg.errors.invalidArgument=function(e){return pg.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};pg.brandCheck=function(e,t,r=void 0){if(r?.strict!==!1&&!(e instanceof t))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]};pg.argumentLengthCheck=function({length:e},t,r){if(ea)throw pg.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=pg.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};pg.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};pg.sequenceConverter=function(e){return t=>{if(pg.util.Type(t)!=="Object")throw pg.errors.exception({header:"Sequence",message:`Value of type ${pg.util.Type(t)} is not an Object.`});let r=t?.[Symbol.iterator]?.(),n=[];if(r===void 0||typeof r.next!="function")throw pg.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:a,value:o}=r.next();if(a)break;n.push(e(o))}return n}};pg.recordConverter=function(e,t){return r=>{if(pg.util.Type(r)!=="Object")throw pg.errors.exception({header:"Record",message:`Value of type ${pg.util.Type(r)} is not an Object.`});let n={};if(!p8.isProxy(r)){let o=Object.keys(r);for(let l of o){let A=e(l),f=t(r[l]);n[A]=f}return n}let a=Reflect.ownKeys(r);for(let o of a)if(Reflect.getOwnPropertyDescriptor(r,o)?.enumerable){let A=e(o),f=t(r[o]);n[A]=f}return n}};pg.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==!1&&!(t instanceof e))throw pg.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`});return t}};pg.dictionaryConverter=function(e){return t=>{let r=pg.util.Type(t),n={};if(r==="Null"||r==="Undefined")return n;if(r!=="Object")throw pg.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:o,defaultValue:l,required:A,converter:f}=a;if(A===!0&&!LXn(t,o))throw pg.errors.exception({header:"Dictionary",message:`Missing required key "${o}".`});let I=t[o],C=LXn(a,"defaultValue");if(C&&I!==null&&(I=I??l),A||C||I!==void 0){if(I=f(I),a.allowedValues&&!a.allowedValues.includes(I))throw pg.errors.exception({header:"Dictionary",message:`${I} is not an accepted type. Expected one of ${a.allowedValues.join(", ")}.`});n[o]=I}}return n}};pg.nullableConverter=function(e){return t=>t===null?t:e(t)};pg.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};pg.converters.ByteString=function(e){let t=pg.converters.DOMString(e);for(let r=0;r255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${r} has a value of ${t.charCodeAt(r)} which is greater than 255.`);return t};pg.converters.USVString=Eqo;pg.converters.boolean=function(e){return!!e};pg.converters.any=function(e){return e};pg.converters["long long"]=function(e){return pg.util.ConvertToInt(e,64,"signed")};pg.converters["unsigned long long"]=function(e){return pg.util.ConvertToInt(e,64,"unsigned")};pg.converters["unsigned long"]=function(e){return pg.util.ConvertToInt(e,32,"unsigned")};pg.converters["unsigned short"]=function(e,t){return pg.util.ConvertToInt(e,16,"unsigned",t)};pg.converters.ArrayBuffer=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isAnyArrayBuffer(e))throw pg.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.TypedArray=function(e,t,r={}){if(pg.util.Type(e)!=="Object"||!p8.isTypedArray(e)||e.constructor.name!==t.name)throw pg.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]});if(r.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.DataView=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isDataView(e))throw pg.errors.exception({header:"DataView",message:"Object is not a DataView."});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.BufferSource=function(e,t={}){if(p8.isAnyArrayBuffer(e))return pg.converters.ArrayBuffer(e,t);if(p8.isTypedArray(e))return pg.converters.TypedArray(e,e.constructor);if(p8.isDataView(e))return pg.converters.DataView(e,t);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};pg.converters["sequence"]=pg.sequenceConverter(pg.converters.ByteString);pg.converters["sequence>"]=pg.sequenceConverter(pg.converters["sequence"]);pg.converters["record"]=pg.recordConverter(pg.converters.ByteString,pg.converters.ByteString);VXn.exports={webidl:pg}});var wX=H((giu,YXn)=>{var lft=wt("assert"),{atob:Sqo}=wt("buffer"),{isomorphicDecode:vqo}=EM(),Bqo=new TextEncoder,cft=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,wqo=/(\u000A|\u000D|\u0009|\u0020)/,Tqo=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Rqo(e){lft(e.protocol==="data:");let t=OXn(e,!0);t=t.slice(5);let r={position:0},n=RBe(",",t,r),a=n.length;if(n=xqo(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=MXn(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=vqo(l);if(l=Dqo(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=Dmr(n);return A==="failure"&&(A=Dmr("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function OXn(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function uft(e,t,r){let n="";for(;r.positione.length)return"failure";t.position++;let n=RBe(";",e,t);if(n=Nmr(n,!1,!0),n.length===0||!cft.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionwqo.test(I),e,t);let A=uft(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=HXn(e,t,!0),RBe(";",e,t);else if(f=RBe(";",e,t),f=Nmr(f,!1,!0),f.length===0)continue;A.length!==0&&cft.test(A)&&(f.length===0||Tqo.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Dqo(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let t=Sqo(e),r=new Uint8Array(t.length);for(let n=0;nl!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{lft(o==='"');break}}return r?a:e.slice(n,t.position)}function kqo(e){lft(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",cft.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function PXn(e){return e==="\r"||e===` `||e===" "||e===" "}function Nmr(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&PXn(e[a]);a--);return e.slice(n,a+1)}function WXn(e){return e==="\r"||e===` -`||e===" "||e==="\f"||e===" "}function xqo(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&WXn(e[a]);a--);return e.slice(n,a+1)}YXn.exports={dataURLProcessor:Rqo,URLSerializer:OXn,collectASequenceOfCodePoints:uft,collectASequenceOfCodePointsFast:RBe,stringPercentDecode:MXn,parseMIMEType:Dmr,collectAnHTTPQuotedString:HXn,serializeAMimeType:kqo}});var gft=H((giu,KXn)=>{"use strict";var{Blob:JXn,File:QXn}=wt("buffer"),{types:kmr}=wt("util"),{kState:MW}=v$(),{isBlobLike:UXn}=EM(),{webidl:H0}=xZ(),{parseMIMEType:Gqo,serializeAMimeType:Fqo}=wX(),{kEnumerableProperty:XXn}=zC(),Zqo=new TextEncoder,CHe=class e extends JXn{constructor(t,r,n={}){H0.argumentLengthCheck(arguments,2,{header:"File constructor"}),t=H0.converters["sequence"](t),r=H0.converters.USVString(r),n=H0.converters.FilePropertyBag(n);let a=r,o=n.type,l;e:{if(o){if(o=Gqo(o),o==="failure"){o="";break e}o=Fqo(o).toLowerCase()}l=n.lastModified}super(Lqo(t,n),{type:o}),this[MW]={name:a,lastModified:l,type:o}}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get type(){return H0.brandCheck(this,e),this[MW].type}},xmr=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[MW]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return H0.brandCheck(this,e),this[MW].blobLike.stream(...t)}arrayBuffer(...t){return H0.brandCheck(this,e),this[MW].blobLike.arrayBuffer(...t)}slice(...t){return H0.brandCheck(this,e),this[MW].blobLike.slice(...t)}text(...t){return H0.brandCheck(this,e),this[MW].blobLike.text(...t)}get size(){return H0.brandCheck(this,e),this[MW].blobLike.size}get type(){return H0.brandCheck(this,e),this[MW].blobLike.type}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(CHe.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:XXn,lastModified:XXn});H0.converters.Blob=H0.interfaceConverter(JXn);H0.converters.BlobPart=function(e,t){if(H0.util.Type(e)==="Object"){if(UXn(e))return H0.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||kmr.isAnyArrayBuffer(e))return H0.converters.BufferSource(e,t)}return H0.converters.USVString(e,t)};H0.converters["sequence"]=H0.sequenceConverter(H0.converters.BlobPart);H0.converters.FilePropertyBag=H0.dictionaryConverter([{key:"lastModified",converter:H0.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H0.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H0.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function Lqo(e,t){let r=[];for(let n of e)if(typeof n=="string"){let a=n;t.endings==="native"&&(a=Vqo(a)),r.push(Zqo.encode(a))}else kmr.isAnyArrayBuffer(n)||kmr.isTypedArray(n)?n.buffer?r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)):r.push(new Uint8Array(n)):UXn(n)&&r.push(n);return r}function Vqo(e){let t=` +`||e===" "||e==="\f"||e===" "}function xqo(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&WXn(e[a]);a--);return e.slice(n,a+1)}YXn.exports={dataURLProcessor:Rqo,URLSerializer:OXn,collectASequenceOfCodePoints:uft,collectASequenceOfCodePointsFast:RBe,stringPercentDecode:MXn,parseMIMEType:Dmr,collectAnHTTPQuotedString:HXn,serializeAMimeType:kqo}});var gft=H((Aiu,KXn)=>{"use strict";var{Blob:JXn,File:QXn}=wt("buffer"),{types:kmr}=wt("util"),{kState:MW}=v$(),{isBlobLike:UXn}=EM(),{webidl:H0}=xZ(),{parseMIMEType:Gqo,serializeAMimeType:Fqo}=wX(),{kEnumerableProperty:XXn}=zC(),Zqo=new TextEncoder,CHe=class e extends JXn{constructor(t,r,n={}){H0.argumentLengthCheck(arguments,2,{header:"File constructor"}),t=H0.converters["sequence"](t),r=H0.converters.USVString(r),n=H0.converters.FilePropertyBag(n);let a=r,o=n.type,l;e:{if(o){if(o=Gqo(o),o==="failure"){o="";break e}o=Fqo(o).toLowerCase()}l=n.lastModified}super(Lqo(t,n),{type:o}),this[MW]={name:a,lastModified:l,type:o}}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get type(){return H0.brandCheck(this,e),this[MW].type}},xmr=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[MW]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return H0.brandCheck(this,e),this[MW].blobLike.stream(...t)}arrayBuffer(...t){return H0.brandCheck(this,e),this[MW].blobLike.arrayBuffer(...t)}slice(...t){return H0.brandCheck(this,e),this[MW].blobLike.slice(...t)}text(...t){return H0.brandCheck(this,e),this[MW].blobLike.text(...t)}get size(){return H0.brandCheck(this,e),this[MW].blobLike.size}get type(){return H0.brandCheck(this,e),this[MW].blobLike.type}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(CHe.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:XXn,lastModified:XXn});H0.converters.Blob=H0.interfaceConverter(JXn);H0.converters.BlobPart=function(e,t){if(H0.util.Type(e)==="Object"){if(UXn(e))return H0.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||kmr.isAnyArrayBuffer(e))return H0.converters.BufferSource(e,t)}return H0.converters.USVString(e,t)};H0.converters["sequence"]=H0.sequenceConverter(H0.converters.BlobPart);H0.converters.FilePropertyBag=H0.dictionaryConverter([{key:"lastModified",converter:H0.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H0.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H0.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function Lqo(e,t){let r=[];for(let n of e)if(typeof n=="string"){let a=n;t.endings==="native"&&(a=Vqo(a)),r.push(Zqo.encode(a))}else kmr.isAnyArrayBuffer(n)||kmr.isTypedArray(n)?n.buffer?r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)):r.push(new Uint8Array(n)):UXn(n)&&r.push(n);return r}function Vqo(e){let t=` `;return process.platform==="win32"&&(t=`\r -`),e.replace(/\r?\n/g,t)}function Pqo(e){return QXn&&e instanceof QXn||e instanceof CHe||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}KXn.exports={File:CHe,FileLike:xmr,isFileLike:Pqo}});var dft=H((Aiu,e4n)=>{"use strict";var{isBlobLike:Aft,toUSVString:Wqo,makeIterator:Gmr}=EM(),{kState:CG}=v$(),{File:$Xn,FileLike:jXn,isFileLike:Oqo}=gft(),{webidl:Cy}=xZ(),{Blob:Mqo,File:Fmr}=wt("buffer"),zXn=Fmr??$Xn,NBe=class e{constructor(t){if(t!==void 0)throw Cy.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[CG]=[]}append(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Cy.converters.USVString(n):void 0;let a=qXn(t,r,n);this[CG].push(a)}delete(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),t=Cy.converters.USVString(t),this[CG]=this[CG].filter(r=>r.name!==t)}get(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.get"}),t=Cy.converters.USVString(t);let r=this[CG].findIndex(n=>n.name===t);return r===-1?null:this[CG][r].value}getAll(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),t=Cy.converters.USVString(t),this[CG].filter(r=>r.name===t).map(r=>r.value)}has(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.has"}),t=Cy.converters.USVString(t),this[CG].findIndex(r=>r.name===t)!==-1}set(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Wqo(n):void 0;let a=qXn(t,r,n),o=this[CG].findIndex(l=>l.name===t);o!==-1?this[CG]=[...this[CG].slice(0,o),a,...this[CG].slice(o+1).filter(l=>l.name!==t)]:this[CG].push(a)}entries(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key+value")}keys(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key")}values(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","value")}forEach(t,r=globalThis){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}};NBe.prototype[Symbol.iterator]=NBe.prototype.entries;Object.defineProperties(NBe.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function qXn(e,t,r){if(e=Buffer.from(e).toString("utf8"),typeof t=="string")t=Buffer.from(t).toString("utf8");else if(Oqo(t)||(t=t instanceof Mqo?new zXn([t],"blob",{type:t.type}):new jXn(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=Fmr&&t instanceof Fmr||t instanceof $Xn?new zXn([t],r,n):new jXn(t,r,n)}return{name:e,value:t}}e4n.exports={FormData:NBe}});var _He=H((diu,l4n)=>{"use strict";var Hqo=mXn(),DBe=zC(),{ReadableStreamFrom:Yqo,isBlobLike:t4n,isReadableStreamLike:Qqo,readableStreamClose:Xqo,createDeferredPromise:Jqo,fullyReadBody:Uqo}=EM(),{FormData:r4n}=dft(),{kState:w$}=v$(),{webidl:Zmr}=xZ(),{DOMException:s4n,structuredClone:Kqo}=Xoe(),{Blob:jqo,File:zqo}=wt("buffer"),{kBodyUsed:qqo}=GE(),Lmr=wt("assert"),{isErrored:$qo}=zC(),{isUint8Array:o4n,isArrayBuffer:e$o}=wt("util/types"),{File:t$o}=gft(),{parseMIMEType:r$o,serializeAMimeType:n$o}=wX(),B$=globalThis.ReadableStream,n4n=zqo??t$o,pft=new TextEncoder,i$o=new TextDecoder;function a4n(e,t=!1){B$||(B$=wt("stream/web").ReadableStream);let r=null;e instanceof B$?r=e:t4n(e)?r=e.stream():r=new B$({async pull(f){f.enqueue(typeof a=="string"?pft.encode(a):a),queueMicrotask(()=>Xqo(f))},start(){},type:void 0}),Lmr(Qqo(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(e$o(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(DBe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r +`),e.replace(/\r?\n/g,t)}function Pqo(e){return QXn&&e instanceof QXn||e instanceof CHe||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}KXn.exports={File:CHe,FileLike:xmr,isFileLike:Pqo}});var dft=H((diu,e4n)=>{"use strict";var{isBlobLike:Aft,toUSVString:Wqo,makeIterator:Gmr}=EM(),{kState:CG}=v$(),{File:$Xn,FileLike:jXn,isFileLike:Oqo}=gft(),{webidl:Cy}=xZ(),{Blob:Mqo,File:Fmr}=wt("buffer"),zXn=Fmr??$Xn,NBe=class e{constructor(t){if(t!==void 0)throw Cy.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[CG]=[]}append(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Cy.converters.USVString(n):void 0;let a=qXn(t,r,n);this[CG].push(a)}delete(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),t=Cy.converters.USVString(t),this[CG]=this[CG].filter(r=>r.name!==t)}get(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.get"}),t=Cy.converters.USVString(t);let r=this[CG].findIndex(n=>n.name===t);return r===-1?null:this[CG][r].value}getAll(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),t=Cy.converters.USVString(t),this[CG].filter(r=>r.name===t).map(r=>r.value)}has(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.has"}),t=Cy.converters.USVString(t),this[CG].findIndex(r=>r.name===t)!==-1}set(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Wqo(n):void 0;let a=qXn(t,r,n),o=this[CG].findIndex(l=>l.name===t);o!==-1?this[CG]=[...this[CG].slice(0,o),a,...this[CG].slice(o+1).filter(l=>l.name!==t)]:this[CG].push(a)}entries(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key+value")}keys(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key")}values(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","value")}forEach(t,r=globalThis){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}};NBe.prototype[Symbol.iterator]=NBe.prototype.entries;Object.defineProperties(NBe.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function qXn(e,t,r){if(e=Buffer.from(e).toString("utf8"),typeof t=="string")t=Buffer.from(t).toString("utf8");else if(Oqo(t)||(t=t instanceof Mqo?new zXn([t],"blob",{type:t.type}):new jXn(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=Fmr&&t instanceof Fmr||t instanceof $Xn?new zXn([t],r,n):new jXn(t,r,n)}return{name:e,value:t}}e4n.exports={FormData:NBe}});var _He=H((piu,l4n)=>{"use strict";var Hqo=mXn(),DBe=zC(),{ReadableStreamFrom:Yqo,isBlobLike:t4n,isReadableStreamLike:Qqo,readableStreamClose:Xqo,createDeferredPromise:Jqo,fullyReadBody:Uqo}=EM(),{FormData:r4n}=dft(),{kState:w$}=v$(),{webidl:Zmr}=xZ(),{DOMException:s4n,structuredClone:Kqo}=Xoe(),{Blob:jqo,File:zqo}=wt("buffer"),{kBodyUsed:qqo}=GE(),Lmr=wt("assert"),{isErrored:$qo}=zC(),{isUint8Array:o4n,isArrayBuffer:e$o}=wt("util/types"),{File:t$o}=gft(),{parseMIMEType:r$o,serializeAMimeType:n$o}=wX(),B$=globalThis.ReadableStream,n4n=zqo??t$o,pft=new TextEncoder,i$o=new TextDecoder;function a4n(e,t=!1){B$||(B$=wt("stream/web").ReadableStream);let r=null;e instanceof B$?r=e:t4n(e)?r=e.stream():r=new B$({async pull(f){f.enqueue(typeof a=="string"?pft.encode(a):a),queueMicrotask(()=>Xqo(f))},start(){},type:void 0}),Lmr(Qqo(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(e$o(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(DBe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r Content-Disposition: form-data`;let C=Q=>Q.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),b=Q=>Q.replace(/\r?\n|\r/g,`\r `),E=[],N=new Uint8Array([13,10]);o=0;let B=!1;for(let[Q,X]of e)if(typeof X=="string"){let ae=pft.encode(I+`; name="${C(b(Q))}"\r \r @@ -372,11 +372,11 @@ ${b(X)}\r `);E.push(ae),o+=ae.byteLength}else{let ae=pft.encode(`${I}; name="${C(b(Q))}"`+(X.name?`; filename="${C(X.name)}"`:"")+`\r Content-Type: ${X.type||"application/octet-stream"}\r \r -`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=pft.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l="multipart/form-data; boundary="+f}else if(t4n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(DBe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof B$?e:Yqo(e)}if((typeof a=="string"||DBe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new B$({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();return b?queueMicrotask(()=>{I.close()}):$qo(r)||I.enqueue(new Uint8Array(C)),I.desiredSize>0},async cancel(I){await f.return()},type:void 0})}return[{stream:r,source:a,length:o},l]}function s$o(e,t=!1){return B$||(B$=wt("stream/web").ReadableStream),e instanceof B$&&(Lmr(!DBe.isDisturbed(e),"The body has already been consumed."),Lmr(!e.locked,"The stream is locked.")),a4n(e,t)}function o$o(e){let[t,r]=e.stream.tee(),n=Kqo(r,{transfer:[r]}),[,a]=n.tee();return e.stream=t,{stream:a,length:e.length,source:e.source}}async function*i4n(e){if(e)if(o4n(e))yield e;else{let t=e.stream;if(DBe.isDisturbed(t))throw new TypeError("The body has already been consumed.");if(t.locked)throw new TypeError("The stream is locked.");t[qqo]=!0,yield*t}}function Vmr(e){if(e.aborted)throw new s4n("The operation was aborted.","AbortError")}function a$o(e){return{blob(){return fft(this,r=>{let n=g$o(this);return n==="failure"?n="":n&&(n=n$o(n)),new jqo([r],{type:n})},e)},arrayBuffer(){return fft(this,r=>new Uint8Array(r).buffer,e)},text(){return fft(this,c4n,e)},json(){return fft(this,u$o,e)},async formData(){Zmr.brandCheck(this,e),Vmr(this[w$]);let r=this.headers.get("Content-Type");if(/multipart\/form-data/.test(r)){let n={};for(let[A,f]of this.headers)n[A.toLowerCase()]=f;let a=new r4n,o;try{o=new Hqo({headers:n,preservePath:!0})}catch(A){throw new s4n(`${A}`,"AbortError")}o.on("field",(A,f)=>{a.append(A,f)}),o.on("file",(A,f,I,C,b)=>{let E=[];if(C==="base64"||C.toLowerCase()==="base64"){let N="";f.on("data",B=>{N+=B.toString().replace(/[\r\n]/gm,"");let F=N.length-N.length%4;E.push(Buffer.from(N.slice(0,F),"base64")),N=N.slice(F)}),f.on("end",()=>{E.push(Buffer.from(N,"base64")),a.append(A,new n4n(E,I,{type:b}))})}else f.on("data",N=>{E.push(N)}),f.on("end",()=>{a.append(A,new n4n(E,I,{type:b}))})});let l=new Promise((A,f)=>{o.on("finish",A),o.on("error",I=>f(new TypeError(I)))});if(this.body!==null)for await(let A of i4n(this[w$].body))o.write(A);return o.end(),await l,a}else if(/application\/x-www-form-urlencoded/.test(r)){let n;try{let o="",l=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let A of i4n(this[w$].body)){if(!o4n(A))throw new TypeError("Expected Uint8Array chunk");o+=l.decode(A,{stream:!0})}o+=l.decode(),n=new URLSearchParams(o)}catch(o){throw Object.assign(new TypeError,{cause:o})}let a=new r4n;for(let[o,l]of n)a.append(o,l);return a}else throw await Promise.resolve(),Vmr(this[w$]),Zmr.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function c$o(e){Object.assign(e.prototype,a$o(e))}async function fft(e,t,r){if(Zmr.brandCheck(e,r),Vmr(e[w$]),l$o(e[w$].body))throw new TypeError("Body is unusable");let n=Jqo(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[w$].body==null?(o(new Uint8Array),n.promise):(await Uqo(e[w$].body,o,a),n.promise)}function l$o(e){return e!=null&&(e.stream.locked||DBe.isDisturbed(e.stream))}function c4n(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),i$o.decode(e))}function u$o(e){return JSON.parse(c4n(e))}function g$o(e){let{headersList:t}=e[w$],r=t.get("content-type");return r===null?"failure":r$o(r)}l4n.exports={extractBody:a4n,safelyExtractBody:s$o,cloneBody:o$o,mixinBody:c$o}});var d4n=H((piu,A4n)=>{"use strict";var{InvalidArgumentError:FE,NotSupportedError:A$o}=Ub(),T$=wt("assert"),{kHTTP2BuildRequest:d$o,kHTTP2CopyHeaders:p$o,kHTTP1BuildRequest:f$o}=GE(),U9=zC(),u4n=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,g4n=/[^\t\x20-\x7e\x80-\xff]/,I$o=/[^\u0021-\u00ff]/,TX=Symbol("handler"),sT={},Pmr;try{let e=wt("diagnostics_channel");sT.create=e.channel("undici:request:create"),sT.bodySent=e.channel("undici:request:bodySent"),sT.headers=e.channel("undici:request:headers"),sT.trailers=e.channel("undici:request:trailers"),sT.error=e.channel("undici:request:error")}catch{sT.create={hasSubscribers:!1},sT.bodySent={hasSubscribers:!1},sT.headers={hasSubscribers:!1},sT.trailers={hasSubscribers:!1},sT.error={hasSubscribers:!1}}var Wmr=class e{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B},F){if(typeof r!="string")throw new FE("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new FE("path must be an absolute URL or start with a slash");if(I$o.exec(r)!==null)throw new FE("invalid request path");if(typeof n!="string")throw new FE("method must be a string");if(u4n.exec(n)===null)throw new FE("invalid request method");if(I&&typeof I!="string")throw new FE("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new FE("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new FE("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new FE("invalid reset");if(B!=null&&typeof B!="boolean")throw new FE("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(U9.isStream(a)){this.body=a;let Q=this.body._readableState;(!Q||!Q.autoDestroy)&&(this.endHandler=function(){U9.destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=X=>{this.abort?this.abort(X):this.error=X},this.body.on("error",this.errorHandler)}else if(U9.isBuffer(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(U9.isFormDataLike(a)||U9.isIterable(a)||U9.isBlobLike(a))this.body=a;else throw new FE("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?U9.buildURL(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new FE("headers array must be even");for(let Q=0;Q{I.close()}):$qo(r)||I.enqueue(new Uint8Array(C)),I.desiredSize>0},async cancel(I){await f.return()},type:void 0})}return[{stream:r,source:a,length:o},l]}function s$o(e,t=!1){return B$||(B$=wt("stream/web").ReadableStream),e instanceof B$&&(Lmr(!DBe.isDisturbed(e),"The body has already been consumed."),Lmr(!e.locked,"The stream is locked.")),a4n(e,t)}function o$o(e){let[t,r]=e.stream.tee(),n=Kqo(r,{transfer:[r]}),[,a]=n.tee();return e.stream=t,{stream:a,length:e.length,source:e.source}}async function*i4n(e){if(e)if(o4n(e))yield e;else{let t=e.stream;if(DBe.isDisturbed(t))throw new TypeError("The body has already been consumed.");if(t.locked)throw new TypeError("The stream is locked.");t[qqo]=!0,yield*t}}function Vmr(e){if(e.aborted)throw new s4n("The operation was aborted.","AbortError")}function a$o(e){return{blob(){return fft(this,r=>{let n=g$o(this);return n==="failure"?n="":n&&(n=n$o(n)),new jqo([r],{type:n})},e)},arrayBuffer(){return fft(this,r=>new Uint8Array(r).buffer,e)},text(){return fft(this,c4n,e)},json(){return fft(this,u$o,e)},async formData(){Zmr.brandCheck(this,e),Vmr(this[w$]);let r=this.headers.get("Content-Type");if(/multipart\/form-data/.test(r)){let n={};for(let[A,f]of this.headers)n[A.toLowerCase()]=f;let a=new r4n,o;try{o=new Hqo({headers:n,preservePath:!0})}catch(A){throw new s4n(`${A}`,"AbortError")}o.on("field",(A,f)=>{a.append(A,f)}),o.on("file",(A,f,I,C,b)=>{let E=[];if(C==="base64"||C.toLowerCase()==="base64"){let N="";f.on("data",B=>{N+=B.toString().replace(/[\r\n]/gm,"");let F=N.length-N.length%4;E.push(Buffer.from(N.slice(0,F),"base64")),N=N.slice(F)}),f.on("end",()=>{E.push(Buffer.from(N,"base64")),a.append(A,new n4n(E,I,{type:b}))})}else f.on("data",N=>{E.push(N)}),f.on("end",()=>{a.append(A,new n4n(E,I,{type:b}))})});let l=new Promise((A,f)=>{o.on("finish",A),o.on("error",I=>f(new TypeError(I)))});if(this.body!==null)for await(let A of i4n(this[w$].body))o.write(A);return o.end(),await l,a}else if(/application\/x-www-form-urlencoded/.test(r)){let n;try{let o="",l=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let A of i4n(this[w$].body)){if(!o4n(A))throw new TypeError("Expected Uint8Array chunk");o+=l.decode(A,{stream:!0})}o+=l.decode(),n=new URLSearchParams(o)}catch(o){throw Object.assign(new TypeError,{cause:o})}let a=new r4n;for(let[o,l]of n)a.append(o,l);return a}else throw await Promise.resolve(),Vmr(this[w$]),Zmr.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function c$o(e){Object.assign(e.prototype,a$o(e))}async function fft(e,t,r){if(Zmr.brandCheck(e,r),Vmr(e[w$]),l$o(e[w$].body))throw new TypeError("Body is unusable");let n=Jqo(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[w$].body==null?(o(new Uint8Array),n.promise):(await Uqo(e[w$].body,o,a),n.promise)}function l$o(e){return e!=null&&(e.stream.locked||DBe.isDisturbed(e.stream))}function c4n(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),i$o.decode(e))}function u$o(e){return JSON.parse(c4n(e))}function g$o(e){let{headersList:t}=e[w$],r=t.get("content-type");return r===null?"failure":r$o(r)}l4n.exports={extractBody:a4n,safelyExtractBody:s$o,cloneBody:o$o,mixinBody:c$o}});var d4n=H((fiu,A4n)=>{"use strict";var{InvalidArgumentError:FE,NotSupportedError:A$o}=Ub(),T$=wt("assert"),{kHTTP2BuildRequest:d$o,kHTTP2CopyHeaders:p$o,kHTTP1BuildRequest:f$o}=GE(),U9=zC(),u4n=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,g4n=/[^\t\x20-\x7e\x80-\xff]/,I$o=/[^\u0021-\u00ff]/,TX=Symbol("handler"),sT={},Pmr;try{let e=wt("diagnostics_channel");sT.create=e.channel("undici:request:create"),sT.bodySent=e.channel("undici:request:bodySent"),sT.headers=e.channel("undici:request:headers"),sT.trailers=e.channel("undici:request:trailers"),sT.error=e.channel("undici:request:error")}catch{sT.create={hasSubscribers:!1},sT.bodySent={hasSubscribers:!1},sT.headers={hasSubscribers:!1},sT.trailers={hasSubscribers:!1},sT.error={hasSubscribers:!1}}var Wmr=class e{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B},F){if(typeof r!="string")throw new FE("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new FE("path must be an absolute URL or start with a slash");if(I$o.exec(r)!==null)throw new FE("invalid request path");if(typeof n!="string")throw new FE("method must be a string");if(u4n.exec(n)===null)throw new FE("invalid request method");if(I&&typeof I!="string")throw new FE("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new FE("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new FE("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new FE("invalid reset");if(B!=null&&typeof B!="boolean")throw new FE("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(U9.isStream(a)){this.body=a;let Q=this.body._readableState;(!Q||!Q.autoDestroy)&&(this.endHandler=function(){U9.destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=X=>{this.abort?this.abort(X):this.error=X},this.body.on("error",this.errorHandler)}else if(U9.isBuffer(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(U9.isFormDataLike(a)||U9.isIterable(a)||U9.isBlobLike(a))this.body=a;else throw new FE("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?U9.buildURL(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new FE("headers array must be even");for(let Q=0;Q{"use strict";var h$o=wt("events"),Omr=class extends h$o{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};p4n.exports=Omr});var EHe=H((Iiu,f4n)=>{"use strict";var m$o=Ift(),{ClientDestroyedError:Mmr,ClientClosedError:C$o,InvalidArgumentError:kBe}=Ub(),{kDestroy:_$o,kClose:y$o,kDispatch:Hmr,kInterceptors:LIe}=GE(),xBe=Symbol("destroyed"),bHe=Symbol("closed"),R$=Symbol("onDestroyed"),GBe=Symbol("onClosed"),hft=Symbol("Intercepted Dispatch"),Ymr=class extends m$o{constructor(){super(),this[xBe]=!1,this[R$]=null,this[bHe]=!1,this[GBe]=[]}get destroyed(){return this[xBe]}get closed(){return this[bHe]}get interceptors(){return this[LIe]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[LIe][r]!="function")throw new kBe("interceptor must be an function")}this[LIe]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new kBe("invalid callback");if(this[xBe]){queueMicrotask(()=>t(new Mmr,null));return}if(this[bHe]){this[GBe]?this[GBe].push(t):queueMicrotask(()=>t(null,null));return}this[bHe]=!0,this[GBe].push(t);let r=()=>{let n=this[GBe];this[GBe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new kBe("invalid callback");if(this[xBe]){this[R$]?this[R$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new Mmr),this[xBe]=!0,this[R$]=this[R$]||[],this[R$].push(r);let n=()=>{let a=this[R$];this[R$]=null;for(let o=0;o{queueMicrotask(n)})}[hft](t,r){if(!this[LIe]||this[LIe].length===0)return this[hft]=this[Hmr],this[Hmr](t,r);let n=this[Hmr].bind(this);for(let a=this[LIe].length-1;a>=0;a--)n=this[LIe][a](n);return this[hft]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new kBe("handler must be an object");try{if(!t||typeof t!="object")throw new kBe("opts must be an object.");if(this[xBe]||this[R$])throw new Mmr;if(this[bHe])throw new C$o;return this[hft](t,r)}catch(n){if(typeof r.onError!="function")throw new kBe("invalid onError method");return r.onError(n),!1}}};f4n.exports=Ymr});var SHe=H((Ciu,m4n)=>{"use strict";var b$o=wt("net"),I4n=wt("assert"),h4n=zC(),{InvalidArgumentError:E$o,ConnectTimeoutError:S$o}=Ub(),Qmr,Xmr;global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE?Xmr=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function v$o({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,...a}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new E$o("maxCachedSessions must be a positive integer or zero");let o={path:r,...a},l=new Xmr(t??100);return n=n??1e4,e=e??!1,function({hostname:f,host:I,protocol:C,port:b,servername:E,localAddress:N,httpSocket:B},F){let Q;if(C==="https:"){Qmr||(Qmr=wt("tls")),E=E||o.servername||h4n.getServerName(I)||null;let ae=E||f,ne=l.get(ae)||null;I4n(ae),Q=Qmr.connect({highWaterMark:16384,...o,servername:E,session:ne,localAddress:N,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:B,port:b||443,host:f}),Q.on("session",function(ce){l.set(ae,ce)})}else I4n(!B,"httpSocket can only be sent on TLS update"),Q=b$o.connect({highWaterMark:64*1024,...o,localAddress:N,port:b||80,host:f});if(o.keepAlive==null||o.keepAlive){let ae=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;Q.setKeepAlive(!0,ae)}let X=B$o(()=>w$o(Q),n);return Q.setNoDelay(!0).once(C==="https:"?"secureConnect":"connect",function(){if(X(),F){let ae=F;F=null,ae(null,this)}}).on("error",function(ae){if(X(),F){let ne=F;F=null,ne(ae)}}),Q}}function B$o(e,t){if(!t)return()=>{};let r=null,n=null,a=setTimeout(()=>{r=setImmediate(()=>{process.platform==="win32"?n=setImmediate(()=>e()):e()})},t);return()=>{clearTimeout(a),clearImmediate(r),clearImmediate(n)}}function w$o(e){h4n.destroy(e,new S$o)}m4n.exports=v$o});var C4n=H(mft=>{"use strict";Object.defineProperty(mft,"__esModule",{value:!0});mft.enumToMap=void 0;function T$o(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}mft.enumToMap=T$o});var _4n=H(xu=>{"use strict";Object.defineProperty(xu,"__esModule",{value:!0});xu.SPECIAL_HEADERS=xu.HEADER_STATE=xu.MINOR=xu.MAJOR=xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS=xu.TOKEN=xu.STRICT_TOKEN=xu.HEX=xu.URL_CHAR=xu.STRICT_URL_CHAR=xu.USERINFO_CHARS=xu.MARK=xu.ALPHANUM=xu.NUM=xu.HEX_MAP=xu.NUM_MAP=xu.ALPHA=xu.FINISH=xu.H_METHOD_MAP=xu.METHOD_MAP=xu.METHODS_RTSP=xu.METHODS_ICE=xu.METHODS_HTTP=xu.METHODS=xu.LENIENT_FLAGS=xu.FLAGS=xu.TYPE=xu.ERROR=void 0;var R$o=C4n(),N$o;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(N$o=xu.ERROR||(xu.ERROR={}));var D$o;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(D$o=xu.TYPE||(xu.TYPE={}));var k$o;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(k$o=xu.FLAGS||(xu.FLAGS={}));var x$o;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(x$o=xu.LENIENT_FLAGS||(xu.LENIENT_FLAGS={}));var Zp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Zp=xu.METHODS||(xu.METHODS={}));xu.METHODS_HTTP=[Zp.DELETE,Zp.GET,Zp.HEAD,Zp.POST,Zp.PUT,Zp.CONNECT,Zp.OPTIONS,Zp.TRACE,Zp.COPY,Zp.LOCK,Zp.MKCOL,Zp.MOVE,Zp.PROPFIND,Zp.PROPPATCH,Zp.SEARCH,Zp.UNLOCK,Zp.BIND,Zp.REBIND,Zp.UNBIND,Zp.ACL,Zp.REPORT,Zp.MKACTIVITY,Zp.CHECKOUT,Zp.MERGE,Zp["M-SEARCH"],Zp.NOTIFY,Zp.SUBSCRIBE,Zp.UNSUBSCRIBE,Zp.PATCH,Zp.PURGE,Zp.MKCALENDAR,Zp.LINK,Zp.UNLINK,Zp.PRI,Zp.SOURCE];xu.METHODS_ICE=[Zp.SOURCE];xu.METHODS_RTSP=[Zp.OPTIONS,Zp.DESCRIBE,Zp.ANNOUNCE,Zp.SETUP,Zp.PLAY,Zp.PAUSE,Zp.TEARDOWN,Zp.GET_PARAMETER,Zp.SET_PARAMETER,Zp.REDIRECT,Zp.RECORD,Zp.FLUSH,Zp.GET,Zp.POST];xu.METHOD_MAP=R$o.enumToMap(Zp);xu.H_METHOD_MAP={};Object.keys(xu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(xu.H_METHOD_MAP[e]=xu.METHOD_MAP[e])});var G$o;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(G$o=xu.FINISH||(xu.FINISH={}));xu.ALPHA=[];for(let e=65;e<=90;e++)xu.ALPHA.push(String.fromCharCode(e)),xu.ALPHA.push(String.fromCharCode(e+32));xu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};xu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};xu.NUM=["0","1","2","3","4","5","6","7","8","9"];xu.ALPHANUM=xu.ALPHA.concat(xu.NUM);xu.MARK=["-","_",".","!","~","*","'","(",")"];xu.USERINFO_CHARS=xu.ALPHANUM.concat(xu.MARK).concat(["%",";",":","&","=","+","$",","]);xu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(xu.ALPHANUM);xu.URL_CHAR=xu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)xu.URL_CHAR.push(e);xu.HEX=xu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);xu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(xu.ALPHANUM);xu.TOKEN=xu.STRICT_TOKEN.concat([" "]);xu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&xu.HEADER_CHARS.push(e);xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS.filter(e=>e!==44);xu.MAJOR=xu.NUM_MAP;xu.MINOR=xu.MAJOR;var FBe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(FBe=xu.HEADER_STATE||(xu.HEADER_STATE={}));xu.SPECIAL_HEADERS={connection:FBe.CONNECTION,"content-length":FBe.CONTENT_LENGTH,"proxy-connection":FBe.CONNECTION,"transfer-encoding":FBe.TRANSFER_ENCODING,upgrade:FBe.UPGRADE}});var Kmr=H((biu,E4n)=>{"use strict";var N$=zC(),{kBodyUsed:vHe}=GE(),Umr=wt("assert"),{InvalidArgumentError:F$o}=Ub(),Z$o=wt("events"),L$o=[300,301,302,303,307,308],y4n=Symbol("body"),Cft=class{constructor(t){this[y4n]=t,this[vHe]=!1}async*[Symbol.asyncIterator](){Umr(!this[vHe],"disturbed"),this[vHe]=!0,yield*this[y4n]}},Jmr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new F$o("maxRedirections must be a positive number");N$.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],N$.isStream(this.opts.body)?(N$.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Umr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[vHe]=!1,Z$o.prototype.on.call(this.opts.body,"data",function(){this[vHe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Cft(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&N$.isIterable(this.opts.body)&&(this.opts.body=new Cft(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||N$.isDisturbed(this.opts.body)?null:V$o(t,r),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=N$.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=P$o(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function V$o(e,t){if(L$o.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var W$o=Kmr();function O$o({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new W$o(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}S4n.exports=O$o});var jmr=H((Siu,v4n)=>{v4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var w4n=H((viu,B4n)=>{B4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var kHe=H((Biu,X4n)=>{"use strict";var kA=wt("assert"),N4n=wt("net"),M$o=wt("http"),{pipeline:H$o}=wt("stream"),vp=zC(),zmr=WQn(),$mr=d4n(),Y$o=EHe(),{RequestContentLengthMismatchError:D$,ResponseContentLengthMismatchError:Q$o,InvalidArgumentError:$B,RequestAbortedError:aCr,HeadersTimeoutError:X$o,HeadersOverflowError:J$o,SocketError:LBe,InformationalError:m8,BodyTimeoutError:U$o,HTTPParserError:K$o,ResponseExceededMaxSizeError:j$o,ClientDestroyedError:z$o}=Ub(),q$o=SHe(),{kUrl:Rk,kReset:GZ,kServerName:Joe,kClient:C8,kBusy:eCr,kParser:Pv,kConnect:$$o,kBlocking:VBe,kResuming:VIe,kRunning:TS,kPending:WIe,kSize:PIe,kWriting:k$,kQueue:L1,kConnected:eea,kConnecting:ZBe,kNeedDrain:Koe,kNoRef:BHe,kKeepAliveDefaultTimeout:tCr,kHostHeader:D4n,kPendingIdx:HW,kRunningIdx:V1,kError:Nk,kPipelining:joe,kSocket:Wv,kKeepAliveTimeoutValue:RHe,kMaxHeadersSize:Eft,kKeepAliveMaxTimeout:k4n,kKeepAliveTimeoutThreshold:x4n,kHeadersTimeout:G4n,kBodyTimeout:F4n,kStrictContentLength:NHe,kConnector:wHe,kMaxRedirections:tea,kMaxRequests:DHe,kCounter:Z4n,kClose:rea,kDestroy:nea,kDispatch:iea,kInterceptors:sea,kLocalAddress:THe,kMaxResponseSize:L4n,kHTTPConnVersion:_8,kHost:V4n,kHTTP2Session:YW,kHTTP2SessionState:vft,kHTTP2BuildRequest:oea,kHTTP2CopyHeaders:aea,kHTTP1BuildRequest:cea}=GE(),Bft;try{Bft=wt("http2")}catch{Bft={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:lea,HTTP2_HEADER_METHOD:uea,HTTP2_HEADER_PATH:gea,HTTP2_HEADER_SCHEME:Aea,HTTP2_HEADER_CONTENT_LENGTH:dea,HTTP2_HEADER_EXPECT:pea,HTTP2_HEADER_STATUS:fea}}=Bft,T4n=!1,yft=Buffer[Symbol.species],Uoe=Symbol("kClosedResolve"),_G={};try{let e=wt("diagnostics_channel");_G.sendHeaders=e.channel("undici:client:sendHeaders"),_G.beforeConnect=e.channel("undici:client:beforeConnect"),_G.connectError=e.channel("undici:client:connectError"),_G.connected=e.channel("undici:client:connected")}catch{_G.sendHeaders={hasSubscribers:!1},_G.beforeConnect={hasSubscribers:!1},_G.connectError={hasSubscribers:!1},_G.connected={hasSubscribers:!1}}var rCr=class extends Y$o{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,allowH2:k,maxConcurrentStreams:et}={}){if(super(),C!==void 0)throw new $B("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new $B("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new $B("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new $B("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new $B("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new $B("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new $B("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new $B("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new $B("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new $B("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new $B("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new $B("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new $B("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new $B("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new $B("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new $B("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||N4n.isIP(de)===0))throw new $B("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new $B("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new $B("autoSelectFamilyAttemptTimeout must be a positive number");if(k!=null&&typeof k!="boolean")throw new $B("allowH2 must be a valid boolean value");if(et!=null&&(typeof et!="number"||et<1))throw new $B("maxConcurrentStreams must be a possitive integer, greater than 0");typeof fe!="function"&&(fe=q$o({...X,maxCachedSessions:ne,allowH2:k,socketPath:F,timeout:A,...vp.nodeHasAutoSelectFamily&&Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),this[sea]=r&&r.Client&&Array.isArray(r.Client)?r.Client:[_ea({maxRedirections:ce})],this[Rk]=vp.parseOrigin(t),this[wHe]=fe,this[Wv]=null,this[joe]=Q??1,this[Eft]=n||M$o.maxHeaderSize,this[tCr]=b??4e3,this[k4n]=N??6e5,this[x4n]=B??1e3,this[RHe]=this[tCr],this[Joe]=null,this[THe]=de??null,this[VIe]=0,this[Koe]=0,this[D4n]=`host: ${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}\r +`}function yHe(e,t,r,n=!1){if(r&&typeof r=="object"&&!Array.isArray(r))throw new FE(`invalid ${t} header`);if(r===void 0)return;if(e.host===null&&t.length===4&&t.toLowerCase()==="host"){if(g4n.exec(r)!==null)throw new FE(`invalid ${t} header`);e.host=r}else if(e.contentLength===null&&t.length===14&&t.toLowerCase()==="content-length"){if(e.contentLength=parseInt(r,10),!Number.isFinite(e.contentLength))throw new FE("invalid content-length header")}else if(e.contentType===null&&t.length===12&&t.toLowerCase()==="content-type")e.contentType=r,n?e.headers[t]=ZIe(t,r,n):e.headers+=ZIe(t,r);else{if(t.length===17&&t.toLowerCase()==="transfer-encoding")throw new FE("invalid transfer-encoding header");if(t.length===10&&t.toLowerCase()==="connection"){let a=typeof r=="string"?r.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new FE("invalid connection header");a==="close"&&(e.reset=!0)}else{if(t.length===10&&t.toLowerCase()==="keep-alive")throw new FE("invalid keep-alive header");if(t.length===7&&t.toLowerCase()==="upgrade")throw new FE("invalid upgrade header");if(t.length===6&&t.toLowerCase()==="expect")throw new A$o("expect header not supported");if(u4n.exec(t)===null)throw new FE("invalid header key");if(Array.isArray(r))for(let a=0;a{"use strict";var h$o=wt("events"),Omr=class extends h$o{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};p4n.exports=Omr});var EHe=H((hiu,f4n)=>{"use strict";var m$o=Ift(),{ClientDestroyedError:Mmr,ClientClosedError:C$o,InvalidArgumentError:kBe}=Ub(),{kDestroy:_$o,kClose:y$o,kDispatch:Hmr,kInterceptors:LIe}=GE(),xBe=Symbol("destroyed"),bHe=Symbol("closed"),R$=Symbol("onDestroyed"),GBe=Symbol("onClosed"),hft=Symbol("Intercepted Dispatch"),Ymr=class extends m$o{constructor(){super(),this[xBe]=!1,this[R$]=null,this[bHe]=!1,this[GBe]=[]}get destroyed(){return this[xBe]}get closed(){return this[bHe]}get interceptors(){return this[LIe]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[LIe][r]!="function")throw new kBe("interceptor must be an function")}this[LIe]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new kBe("invalid callback");if(this[xBe]){queueMicrotask(()=>t(new Mmr,null));return}if(this[bHe]){this[GBe]?this[GBe].push(t):queueMicrotask(()=>t(null,null));return}this[bHe]=!0,this[GBe].push(t);let r=()=>{let n=this[GBe];this[GBe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new kBe("invalid callback");if(this[xBe]){this[R$]?this[R$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new Mmr),this[xBe]=!0,this[R$]=this[R$]||[],this[R$].push(r);let n=()=>{let a=this[R$];this[R$]=null;for(let o=0;o{queueMicrotask(n)})}[hft](t,r){if(!this[LIe]||this[LIe].length===0)return this[hft]=this[Hmr],this[Hmr](t,r);let n=this[Hmr].bind(this);for(let a=this[LIe].length-1;a>=0;a--)n=this[LIe][a](n);return this[hft]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new kBe("handler must be an object");try{if(!t||typeof t!="object")throw new kBe("opts must be an object.");if(this[xBe]||this[R$])throw new Mmr;if(this[bHe])throw new C$o;return this[hft](t,r)}catch(n){if(typeof r.onError!="function")throw new kBe("invalid onError method");return r.onError(n),!1}}};f4n.exports=Ymr});var SHe=H((_iu,m4n)=>{"use strict";var b$o=wt("net"),I4n=wt("assert"),h4n=zC(),{InvalidArgumentError:E$o,ConnectTimeoutError:S$o}=Ub(),Qmr,Xmr;global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE?Xmr=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function v$o({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,...a}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new E$o("maxCachedSessions must be a positive integer or zero");let o={path:r,...a},l=new Xmr(t??100);return n=n??1e4,e=e??!1,function({hostname:f,host:I,protocol:C,port:b,servername:E,localAddress:N,httpSocket:B},F){let Q;if(C==="https:"){Qmr||(Qmr=wt("tls")),E=E||o.servername||h4n.getServerName(I)||null;let ae=E||f,ne=l.get(ae)||null;I4n(ae),Q=Qmr.connect({highWaterMark:16384,...o,servername:E,session:ne,localAddress:N,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:B,port:b||443,host:f}),Q.on("session",function(ce){l.set(ae,ce)})}else I4n(!B,"httpSocket can only be sent on TLS update"),Q=b$o.connect({highWaterMark:64*1024,...o,localAddress:N,port:b||80,host:f});if(o.keepAlive==null||o.keepAlive){let ae=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;Q.setKeepAlive(!0,ae)}let X=B$o(()=>w$o(Q),n);return Q.setNoDelay(!0).once(C==="https:"?"secureConnect":"connect",function(){if(X(),F){let ae=F;F=null,ae(null,this)}}).on("error",function(ae){if(X(),F){let ne=F;F=null,ne(ae)}}),Q}}function B$o(e,t){if(!t)return()=>{};let r=null,n=null,a=setTimeout(()=>{r=setImmediate(()=>{process.platform==="win32"?n=setImmediate(()=>e()):e()})},t);return()=>{clearTimeout(a),clearImmediate(r),clearImmediate(n)}}function w$o(e){h4n.destroy(e,new S$o)}m4n.exports=v$o});var C4n=H(mft=>{"use strict";Object.defineProperty(mft,"__esModule",{value:!0});mft.enumToMap=void 0;function T$o(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}mft.enumToMap=T$o});var _4n=H(xu=>{"use strict";Object.defineProperty(xu,"__esModule",{value:!0});xu.SPECIAL_HEADERS=xu.HEADER_STATE=xu.MINOR=xu.MAJOR=xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS=xu.TOKEN=xu.STRICT_TOKEN=xu.HEX=xu.URL_CHAR=xu.STRICT_URL_CHAR=xu.USERINFO_CHARS=xu.MARK=xu.ALPHANUM=xu.NUM=xu.HEX_MAP=xu.NUM_MAP=xu.ALPHA=xu.FINISH=xu.H_METHOD_MAP=xu.METHOD_MAP=xu.METHODS_RTSP=xu.METHODS_ICE=xu.METHODS_HTTP=xu.METHODS=xu.LENIENT_FLAGS=xu.FLAGS=xu.TYPE=xu.ERROR=void 0;var R$o=C4n(),N$o;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(N$o=xu.ERROR||(xu.ERROR={}));var D$o;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(D$o=xu.TYPE||(xu.TYPE={}));var k$o;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(k$o=xu.FLAGS||(xu.FLAGS={}));var x$o;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(x$o=xu.LENIENT_FLAGS||(xu.LENIENT_FLAGS={}));var Zp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Zp=xu.METHODS||(xu.METHODS={}));xu.METHODS_HTTP=[Zp.DELETE,Zp.GET,Zp.HEAD,Zp.POST,Zp.PUT,Zp.CONNECT,Zp.OPTIONS,Zp.TRACE,Zp.COPY,Zp.LOCK,Zp.MKCOL,Zp.MOVE,Zp.PROPFIND,Zp.PROPPATCH,Zp.SEARCH,Zp.UNLOCK,Zp.BIND,Zp.REBIND,Zp.UNBIND,Zp.ACL,Zp.REPORT,Zp.MKACTIVITY,Zp.CHECKOUT,Zp.MERGE,Zp["M-SEARCH"],Zp.NOTIFY,Zp.SUBSCRIBE,Zp.UNSUBSCRIBE,Zp.PATCH,Zp.PURGE,Zp.MKCALENDAR,Zp.LINK,Zp.UNLINK,Zp.PRI,Zp.SOURCE];xu.METHODS_ICE=[Zp.SOURCE];xu.METHODS_RTSP=[Zp.OPTIONS,Zp.DESCRIBE,Zp.ANNOUNCE,Zp.SETUP,Zp.PLAY,Zp.PAUSE,Zp.TEARDOWN,Zp.GET_PARAMETER,Zp.SET_PARAMETER,Zp.REDIRECT,Zp.RECORD,Zp.FLUSH,Zp.GET,Zp.POST];xu.METHOD_MAP=R$o.enumToMap(Zp);xu.H_METHOD_MAP={};Object.keys(xu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(xu.H_METHOD_MAP[e]=xu.METHOD_MAP[e])});var G$o;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(G$o=xu.FINISH||(xu.FINISH={}));xu.ALPHA=[];for(let e=65;e<=90;e++)xu.ALPHA.push(String.fromCharCode(e)),xu.ALPHA.push(String.fromCharCode(e+32));xu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};xu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};xu.NUM=["0","1","2","3","4","5","6","7","8","9"];xu.ALPHANUM=xu.ALPHA.concat(xu.NUM);xu.MARK=["-","_",".","!","~","*","'","(",")"];xu.USERINFO_CHARS=xu.ALPHANUM.concat(xu.MARK).concat(["%",";",":","&","=","+","$",","]);xu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(xu.ALPHANUM);xu.URL_CHAR=xu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)xu.URL_CHAR.push(e);xu.HEX=xu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);xu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(xu.ALPHANUM);xu.TOKEN=xu.STRICT_TOKEN.concat([" "]);xu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&xu.HEADER_CHARS.push(e);xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS.filter(e=>e!==44);xu.MAJOR=xu.NUM_MAP;xu.MINOR=xu.MAJOR;var FBe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(FBe=xu.HEADER_STATE||(xu.HEADER_STATE={}));xu.SPECIAL_HEADERS={connection:FBe.CONNECTION,"content-length":FBe.CONTENT_LENGTH,"proxy-connection":FBe.CONNECTION,"transfer-encoding":FBe.TRANSFER_ENCODING,upgrade:FBe.UPGRADE}});var Kmr=H((Eiu,E4n)=>{"use strict";var N$=zC(),{kBodyUsed:vHe}=GE(),Umr=wt("assert"),{InvalidArgumentError:F$o}=Ub(),Z$o=wt("events"),L$o=[300,301,302,303,307,308],y4n=Symbol("body"),Cft=class{constructor(t){this[y4n]=t,this[vHe]=!1}async*[Symbol.asyncIterator](){Umr(!this[vHe],"disturbed"),this[vHe]=!0,yield*this[y4n]}},Jmr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new F$o("maxRedirections must be a positive number");N$.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],N$.isStream(this.opts.body)?(N$.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Umr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[vHe]=!1,Z$o.prototype.on.call(this.opts.body,"data",function(){this[vHe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Cft(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&N$.isIterable(this.opts.body)&&(this.opts.body=new Cft(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||N$.isDisturbed(this.opts.body)?null:V$o(t,r),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=N$.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=P$o(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function V$o(e,t){if(L$o.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var W$o=Kmr();function O$o({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new W$o(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}S4n.exports=O$o});var jmr=H((viu,v4n)=>{v4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var w4n=H((Biu,B4n)=>{B4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var kHe=H((wiu,X4n)=>{"use strict";var kA=wt("assert"),N4n=wt("net"),M$o=wt("http"),{pipeline:H$o}=wt("stream"),vp=zC(),zmr=WQn(),$mr=d4n(),Y$o=EHe(),{RequestContentLengthMismatchError:D$,ResponseContentLengthMismatchError:Q$o,InvalidArgumentError:$B,RequestAbortedError:aCr,HeadersTimeoutError:X$o,HeadersOverflowError:J$o,SocketError:LBe,InformationalError:m8,BodyTimeoutError:U$o,HTTPParserError:K$o,ResponseExceededMaxSizeError:j$o,ClientDestroyedError:z$o}=Ub(),q$o=SHe(),{kUrl:Rk,kReset:GZ,kServerName:Joe,kClient:C8,kBusy:eCr,kParser:Pv,kConnect:$$o,kBlocking:VBe,kResuming:VIe,kRunning:TS,kPending:WIe,kSize:PIe,kWriting:k$,kQueue:L1,kConnected:eea,kConnecting:ZBe,kNeedDrain:Koe,kNoRef:BHe,kKeepAliveDefaultTimeout:tCr,kHostHeader:D4n,kPendingIdx:HW,kRunningIdx:V1,kError:Nk,kPipelining:joe,kSocket:Wv,kKeepAliveTimeoutValue:RHe,kMaxHeadersSize:Eft,kKeepAliveMaxTimeout:k4n,kKeepAliveTimeoutThreshold:x4n,kHeadersTimeout:G4n,kBodyTimeout:F4n,kStrictContentLength:NHe,kConnector:wHe,kMaxRedirections:tea,kMaxRequests:DHe,kCounter:Z4n,kClose:rea,kDestroy:nea,kDispatch:iea,kInterceptors:sea,kLocalAddress:THe,kMaxResponseSize:L4n,kHTTPConnVersion:_8,kHost:V4n,kHTTP2Session:YW,kHTTP2SessionState:vft,kHTTP2BuildRequest:oea,kHTTP2CopyHeaders:aea,kHTTP1BuildRequest:cea}=GE(),Bft;try{Bft=wt("http2")}catch{Bft={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:lea,HTTP2_HEADER_METHOD:uea,HTTP2_HEADER_PATH:gea,HTTP2_HEADER_SCHEME:Aea,HTTP2_HEADER_CONTENT_LENGTH:dea,HTTP2_HEADER_EXPECT:pea,HTTP2_HEADER_STATUS:fea}}=Bft,T4n=!1,yft=Buffer[Symbol.species],Uoe=Symbol("kClosedResolve"),_G={};try{let e=wt("diagnostics_channel");_G.sendHeaders=e.channel("undici:client:sendHeaders"),_G.beforeConnect=e.channel("undici:client:beforeConnect"),_G.connectError=e.channel("undici:client:connectError"),_G.connected=e.channel("undici:client:connected")}catch{_G.sendHeaders={hasSubscribers:!1},_G.beforeConnect={hasSubscribers:!1},_G.connectError={hasSubscribers:!1},_G.connected={hasSubscribers:!1}}var rCr=class extends Y$o{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,allowH2:k,maxConcurrentStreams:et}={}){if(super(),C!==void 0)throw new $B("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new $B("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new $B("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new $B("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new $B("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new $B("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new $B("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new $B("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new $B("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new $B("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new $B("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new $B("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new $B("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new $B("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new $B("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new $B("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||N4n.isIP(de)===0))throw new $B("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new $B("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new $B("autoSelectFamilyAttemptTimeout must be a positive number");if(k!=null&&typeof k!="boolean")throw new $B("allowH2 must be a valid boolean value");if(et!=null&&(typeof et!="number"||et<1))throw new $B("maxConcurrentStreams must be a possitive integer, greater than 0");typeof fe!="function"&&(fe=q$o({...X,maxCachedSessions:ne,allowH2:k,socketPath:F,timeout:A,...vp.nodeHasAutoSelectFamily&&Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),this[sea]=r&&r.Client&&Array.isArray(r.Client)?r.Client:[_ea({maxRedirections:ce})],this[Rk]=vp.parseOrigin(t),this[wHe]=fe,this[Wv]=null,this[joe]=Q??1,this[Eft]=n||M$o.maxHeaderSize,this[tCr]=b??4e3,this[k4n]=N??6e5,this[x4n]=B??1e3,this[RHe]=this[tCr],this[Joe]=null,this[THe]=de??null,this[VIe]=0,this[Koe]=0,this[D4n]=`host: ${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}\r `,this[F4n]=f??3e5,this[G4n]=a??3e5,this[NHe]=ae??!0,this[tea]=ce,this[DHe]=ue,this[Uoe]=null,this[L4n]=be>-1?be:-1,this[_8]="h1",this[YW]=null,this[vft]=k?{openStreams:0,maxConcurrentStreams:et??100}:null,this[V4n]=`${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}`,this[L1]=[],this[V1]=0,this[HW]=0}get pipelining(){return this[joe]}set pipelining(t){this[joe]=t,QW(this,!0)}get[WIe](){return this[L1].length-this[HW]}get[TS](){return this[HW]-this[V1]}get[PIe](){return this[L1].length-this[V1]}get[eea](){return!!this[Wv]&&!this[ZBe]&&!this[Wv].destroyed}get[eCr](){let t=this[Wv];return t&&(t[GZ]||t[k$]||t[VBe])||this[PIe]>=(this[joe]||1)||this[WIe]>0}[$$o](t){M4n(this),this.once("connect",t)}[iea](t,r){let n=t.origin||this[Rk].origin,a=this[_8]==="h2"?$mr[oea](n,t,r):$mr[cea](n,t,r);return this[L1].push(a),this[VIe]||(vp.bodyLength(a.body)==null&&vp.isIterable(a.body)?(this[VIe]=1,process.nextTick(QW,this)):QW(this,!0)),this[VIe]&&this[Koe]!==2&&this[eCr]&&(this[Koe]=2),this[Koe]<2}async[rea](){return new Promise(t=>{this[PIe]?this[Uoe]=t:t(null)})}async[nea](t){return new Promise(r=>{let n=this[L1].splice(this[HW]);for(let o=0;o{this[Uoe]&&(this[Uoe](),this[Uoe]=null),r()};this[YW]!=null&&(vp.destroy(this[YW],t),this[YW]=null,this[vft]=null),this[Wv]?vp.destroy(this[Wv].on("close",a),t):queueMicrotask(a),QW(this)})}};function Iea(e){kA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[Wv][Nk]=e,Rft(this[C8],e)}function hea(e,t,r){let n=new m8(`HTTP/2: "frameError" received - type ${e}, code ${t}`);r===0&&(this[Wv][Nk]=n,Rft(this[C8],n))}function mea(){vp.destroy(this,new LBe("other side closed")),vp.destroy(this[Wv],new LBe("other side closed"))}function Cea(e){let t=this[C8],r=new m8(`HTTP/2: "GOAWAY" frame received with code ${e}`);if(t[Wv]=null,t[YW]=null,t.destroyed){kA(this[WIe]===0);let n=t[L1].splice(t[V1]);for(let a=0;a0){let n=t[L1][t[V1]];t[L1][t[V1]++]=null,FZ(t,n,r)}t[HW]=t[V1],kA(t[TS]===0),t.emit("disconnect",t[Rk],[t],r),QW(t)}var f8=_4n(),_ea=_ft(),yea=Buffer.alloc(0);async function bea(){let e=process.env.JEST_WORKER_ID?jmr():void 0,t;try{t=await WebAssembly.compile(Buffer.from(w4n(),"base64"))}catch{t=await WebAssembly.compile(Buffer.from(e||jmr(),"base64"))}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onStatus(new yft(I8.buffer,o,a))||0},wasm_on_message_begin:r=>(kA.strictEqual(TR.ptr,r),TR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onHeaderField(new yft(I8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onHeaderValue(new yft(I8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(kA.strictEqual(TR.ptr,r),TR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onBody(new yft(I8.buffer,o,a))||0},wasm_on_message_complete:r=>(kA.strictEqual(TR.ptr,r),TR.onMessageComplete()||0)}})}var qmr=null,nCr=bea();nCr.catch();var TR=null,I8=null,bft=0,h8=null,PBe=1,Sft=2,iCr=3,sCr=class{constructor(t,r,{exports:n}){kA(Number.isFinite(t[Eft])&&t[Eft]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(f8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[Eft],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[L4n]}setTimeout(t,r){this.timeoutType=r,t!==this.timeoutValue?(zmr.clearTimeout(this.timeout),t?(this.timeout=zmr.setTimeout(Eea,t,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(kA(this.ptr!=null),kA(TR==null),this.llhttp.llhttp_resume(this.ptr),kA(this.timeoutType===Sft),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||yea),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){kA(this.ptr!=null),kA(TR==null),kA(!this.paused);let{socket:r,llhttp:n}=this;t.length>bft&&(h8&&n.free(h8),bft=Math.ceil(t.length/4096)*4096,h8=n.malloc(bft)),new Uint8Array(n.memory.buffer,h8,bft).set(t);try{let a;try{I8=t,TR=this,a=n.llhttp_execute(this.ptr,h8,t.length)}catch(l){throw l}finally{TR=null,I8=null}let o=n.llhttp_get_error_pos(this.ptr)-h8;if(a===f8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===f8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==f8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new K$o(A,f8.ERROR[a],t.slice(o))}}catch(a){vp.destroy(r,a)}}destroy(){kA(this.ptr!=null),kA(TR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,zmr.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed||!r[L1][r[V1]])return-1}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];n.length===10&&n.toString().toLowerCase()==="keep-alive"?this.keepAlive+=t.toString():n.length===10&&n.toString().toLowerCase()==="connection"?this.connection+=t.toString():n.length===14&&n.toString().toLowerCase()==="content-length"&&(this.contentLength+=t.toString()),this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&vp.destroy(this.socket,new J$o)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;kA(r);let A=n[L1][n[V1]];kA(A),kA(!a.destroyed),kA(a===n[Wv]),kA(!this.paused),kA(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,a.unshift(t),a[Pv].destroy(),a[Pv]=null,a[C8]=null,a[Nk]=null,a.removeListener("error",W4n).removeListener("readable",P4n).removeListener("end",O4n).removeListener("close",oCr),n[Wv]=null,n[L1][n[V1]++]=null,n.emit("disconnect",n[Rk],[n],new m8("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){vp.destroy(a,f)}QW(n)}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[L1][a[V1]];if(!f)return-1;if(kA(!this.upgrade),kA(this.statusCode<200),t===100)return vp.destroy(o,new LBe("bad response",vp.getSocketInfo(o))),-1;if(r&&!f.upgrade)return vp.destroy(o,new LBe("bad upgrade",vp.getSocketInfo(o))),-1;if(kA.strictEqual(this.timeoutType,PBe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[GZ]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[F4n];this.setTimeout(C,Sft)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return kA(a[TS]===1),this.upgrade=!0,2;if(r)return kA(a[TS]===1),this.upgrade=!0,2;if(kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[joe]){let C=this.keepAlive?vp.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[x4n],a[k4n]);b<=0?o[GZ]=!0:a[RHe]=b}else a[RHe]=a[tCr]}else o[GZ]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[VBe]&&(o[VBe]=!1,QW(a)),I?f8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[L1][r[V1]];if(kA(l),kA.strictEqual(this.timeoutType,Sft),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),kA(a>=200),o>-1&&this.bytesRead+t.length>o)return vp.destroy(n,new j$o),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return f8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;let I=t[L1][t[V1]];if(kA(I),kA(n>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return vp.destroy(r,new Q$o),-1;if(I.onComplete(o),t[L1][t[V1]++]=null,r[k$])return kA.strictEqual(t[TS],0),vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED;if(f){if(r[GZ]&&t[TS]===0)return vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED;t[joe]===1?setImmediate(QW,t):QW(t)}else return vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED}}};function Eea(e){let{socket:t,timeoutType:r,client:n}=e;r===PBe?(!t[k$]||t.writableNeedDrain||n[TS]>1)&&(kA(!e.paused,"cannot be paused while waiting for headers"),vp.destroy(t,new X$o)):r===Sft?e.paused||vp.destroy(t,new U$o):r===iCr&&(kA(n[TS]===0&&n[RHe]),vp.destroy(t,new m8("socket idle timeout")))}function P4n(){let{[Pv]:e}=this;e&&e.readMore()}function W4n(e){let{[C8]:t,[Pv]:r}=this;if(kA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),t[_8]!=="h2"&&e.code==="ECONNRESET"&&r.statusCode&&!r.shouldKeepAlive){r.onMessageComplete();return}this[Nk]=e,Rft(this[C8],e)}function Rft(e,t){if(e[TS]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){kA(e[HW]===e[V1]);let r=e[L1].splice(e[V1]);for(let n=0;n0&&r.code!=="UND_ERR_INFO"){let n=e[L1][e[V1]];e[L1][e[V1]++]=null,FZ(e,n,r)}e[HW]=e[V1],kA(e[TS]===0),e.emit("disconnect",e[Rk],[e],r),QW(e)}async function M4n(e){kA(!e[ZBe]),kA(!e[Wv]);let{host:t,hostname:r,protocol:n,port:a}=e[Rk];if(r[0]==="["){let o=r.indexOf("]");kA(o!==-1);let l=r.substring(1,o);kA(N4n.isIP(l)),r=l}e[ZBe]=!0,_G.beforeConnect.hasSubscribers&&_G.beforeConnect.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe]});try{let o=await new Promise((A,f)=>{e[wHe]({host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},(I,C)=>{I?f(I):A(C)})});if(e.destroyed){vp.destroy(o.on("error",()=>{}),new z$o);return}if(e[ZBe]=!1,kA(o),o.alpnProtocol==="h2"){T4n||(T4n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let A=Bft.connect(e[Rk],{createConnection:()=>o,peerMaxConcurrentStreams:e[vft].maxConcurrentStreams});e[_8]="h2",A[C8]=e,A[Wv]=o,A.on("error",Iea),A.on("frameError",hea),A.on("end",mea),A.on("goaway",Cea),A.on("close",oCr),A.unref(),e[YW]=A,o[YW]=A}else qmr||(qmr=await nCr,nCr=null),o[BHe]=!1,o[k$]=!1,o[GZ]=!1,o[VBe]=!1,o[Pv]=new sCr(e,o,qmr);o[Z4n]=0,o[DHe]=e[DHe],o[C8]=e,o[Nk]=null,o.on("error",W4n).on("readable",P4n).on("end",O4n).on("close",oCr),e[Wv]=o,_G.connected.hasSubscribers&&_G.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe],socket:o}),e.emit("connect",e[Rk],[e])}catch(o){if(e.destroyed)return;if(e[ZBe]=!1,_G.connectError.hasSubscribers&&_G.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(kA(e[TS]===0);e[WIe]>0&&e[L1][e[HW]].servername===e[Joe];){let l=e[L1][e[HW]++];FZ(e,l,o)}else Rft(e,o);e.emit("connectionError",e[Rk],[e],o)}QW(e)}function R4n(e){e[Koe]=0,e.emit("drain",e[Rk],[e])}function QW(e,t){e[VIe]!==2&&(e[VIe]=2,Sea(e,t),e[VIe]=0,e[V1]>256&&(e[L1].splice(0,e[V1]),e[HW]-=e[V1],e[V1]=0))}function Sea(e,t){for(;;){if(e.destroyed){kA(e[WIe]===0);return}if(e[Uoe]&&!e[PIe]){e[Uoe](),e[Uoe]=null;return}let r=e[Wv];if(r&&!r.destroyed&&r.alpnProtocol!=="h2"){if(e[PIe]===0?!r[BHe]&&r.unref&&(r.unref(),r[BHe]=!0):r[BHe]&&r.ref&&(r.ref(),r[BHe]=!1),e[PIe]===0)r[Pv].timeoutType!==iCr&&r[Pv].setTimeout(e[RHe],iCr);else if(e[TS]>0&&r[Pv].statusCode<200&&r[Pv].timeoutType!==PBe){let a=e[L1][e[V1]],o=a.headersTimeout!=null?a.headersTimeout:e[G4n];r[Pv].setTimeout(o,PBe)}}if(e[eCr])e[Koe]=2;else if(e[Koe]===2){t?(e[Koe]=1,process.nextTick(R4n,e)):R4n(e);continue}if(e[WIe]===0||e[TS]>=(e[joe]||1))return;let n=e[L1][e[HW]];if(e[Rk].protocol==="https:"&&e[Joe]!==n.servername){if(e[TS]>0)return;if(e[Joe]=n.servername,r&&r.servername!==n.servername){vp.destroy(r,new m8("servername changed"));return}}if(e[ZBe])return;if(!r&&!e[YW]){M4n(e);return}if(r.destroyed||r[k$]||r[GZ]||r[VBe]||e[TS]>0&&!n.idempotent||e[TS]>0&&(n.upgrade||n.method==="CONNECT")||e[TS]>0&&vp.bodyLength(n.body)!==0&&(vp.isStream(n.body)||vp.isAsyncIterable(n.body)))return;!n.aborted&&vea(e,n)?e[HW]++:e[L1].splice(e[HW],1)}}function H4n(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function vea(e,t){if(e[_8]==="h2"){Bea(e,e[YW],t);return}let{body:r,method:n,path:a,host:o,upgrade:l,headers:A,blocking:f,reset:I}=t,C=n==="PUT"||n==="POST"||n==="PATCH";r&&typeof r.read=="function"&&r.read(0);let b=vp.bodyLength(r),E=b;if(E===null&&(E=t.contentLength),E===0&&!C&&(E=null),H4n(n)&&E>0&&t.contentLength!==null&&t.contentLength!==E){if(e[NHe])return FZ(e,t,new D$),!1;process.emitWarning(new D$)}let N=e[Wv];try{t.onConnect(F=>{t.aborted||t.completed||(FZ(e,t,F||new aCr),vp.destroy(N,new m8("aborted")))})}catch(F){FZ(e,t,F)}if(t.aborted)return!1;n==="HEAD"&&(N[GZ]=!0),(l||n==="CONNECT")&&(N[GZ]=!0),I!=null&&(N[GZ]=I),e[DHe]&&N[Z4n]++>=e[DHe]&&(N[GZ]=!0),f&&(N[VBe]=!0);let B=`${n} ${a} HTTP/1.1\r `;return typeof o=="string"?B+=`host: ${o}\r `:B+=e[D4n],l?B+=`connection: upgrade\r @@ -401,14 +401,14 @@ ${I.toString(16)}\r `,"latin1"):r===null&&t.write(`\r 0\r \r -`,"latin1"),r!==null&&a!==r){if(n[NHe])throw new D$;process.emitWarning(new D$)}t[Pv].timeout&&t[Pv].timeoutType===PBe&&t[Pv].timeout.refresh&&t[Pv].timeout.refresh(),QW(n)}}destroy(t){let{socket:r,client:n}=this;r[k$]=!1,t&&(kA(n[TS]<=1,"pipeline should only contain this request"),vp.destroy(r,t))}};function FZ(e,t,r){try{t.onError(r),kA(t.aborted)}catch(n){e.emit("error",n)}}X4n.exports=rCr});var U4n=H((Tiu,J4n)=>{"use strict";var Nft=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};J4n.exports=class{constructor(){this.head=this.tail=new Nft}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Nft),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var j4n=H((Riu,K4n)=>{var{kFree:wea,kConnected:Tea,kPending:Rea,kQueued:Nea,kRunning:Dea,kSize:kea}=GE(),OIe=Symbol("pool"),cCr=class{constructor(t){this[OIe]=t}get connected(){return this[OIe][Tea]}get free(){return this[OIe][wea]}get pending(){return this[OIe][Rea]}get queued(){return this[OIe][Nea]}get running(){return this[OIe][Dea]}get size(){return this[OIe][kea]}};K4n.exports=cCr});var pCr=H((Niu,oJn)=>{"use strict";var xea=EHe(),Gea=U4n(),{kConnected:lCr,kSize:z4n,kRunning:q4n,kPending:$4n,kQueued:xHe,kBusy:Fea,kFree:Zea,kUrl:Lea,kClose:Vea,kDestroy:Pea,kDispatch:Wea}=GE(),Oea=j4n(),K9=Symbol("clients"),ZZ=Symbol("needDrain"),GHe=Symbol("queue"),uCr=Symbol("closed resolve"),gCr=Symbol("onDrain"),eJn=Symbol("onConnect"),tJn=Symbol("onDisconnect"),rJn=Symbol("onConnectionError"),ACr=Symbol("get dispatcher"),iJn=Symbol("add client"),sJn=Symbol("remove client"),nJn=Symbol("stats"),dCr=class extends xea{constructor(){super(),this[GHe]=new Gea,this[K9]=[],this[xHe]=0;let t=this;this[gCr]=function(n,a){let o=t[GHe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[xHe]--,l=!this.dispatch(A.opts,A.handler)}this[ZZ]=l,!this[ZZ]&&t[ZZ]&&(t[ZZ]=!1,t.emit("drain",n,[t,...a])),t[uCr]&&o.isEmpty()&&Promise.all(t[K9].map(A=>A.close())).then(t[uCr])},this[eJn]=(r,n)=>{t.emit("connect",r,[t,...n])},this[tJn]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[rJn]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[nJn]=new Oea(this)}get[Fea](){return this[ZZ]}get[lCr](){return this[K9].filter(t=>t[lCr]).length}get[Zea](){return this[K9].filter(t=>t[lCr]&&!t[ZZ]).length}get[$4n](){let t=this[xHe];for(let{[$4n]:r}of this[K9])t+=r;return t}get[q4n](){let t=0;for(let{[q4n]:r}of this[K9])t+=r;return t}get[z4n](){let t=this[xHe];for(let{[z4n]:r}of this[K9])t+=r;return t}get stats(){return this[nJn]}async[Vea](){return this[GHe].isEmpty()?Promise.all(this[K9].map(t=>t.close())):new Promise(t=>{this[uCr]=t})}async[Pea](t){for(;;){let r=this[GHe].shift();if(!r)break;r.handler.onError(t)}return Promise.all(this[K9].map(r=>r.destroy(t)))}[Wea](t,r){let n=this[ACr]();return n?n.dispatch(t,r)||(n[ZZ]=!0,this[ZZ]=!this[ACr]()):(this[ZZ]=!0,this[GHe].push({opts:t,handler:r}),this[xHe]++),!this[ZZ]}[iJn](t){return t.on("drain",this[gCr]).on("connect",this[eJn]).on("disconnect",this[tJn]).on("connectionError",this[rJn]),this[K9].push(t),this[ZZ]&&process.nextTick(()=>{this[ZZ]&&this[gCr](t[Lea],[this,t])}),this}[sJn](t){t.close(()=>{let r=this[K9].indexOf(t);r!==-1&&this[K9].splice(r,1)}),this[ZZ]=this[K9].some(r=>!r[ZZ]&&r.closed!==!0&&r.destroyed!==!0)}};oJn.exports={PoolBase:dCr,kClients:K9,kNeedDrain:ZZ,kAddClient:iJn,kRemoveClient:sJn,kGetDispatcher:ACr}});var WBe=H((Diu,uJn)=>{"use strict";var{PoolBase:Mea,kClients:aJn,kNeedDrain:Hea,kAddClient:Yea,kGetDispatcher:Qea}=pCr(),Xea=kHe(),{InvalidArgumentError:fCr}=Ub(),ICr=zC(),{kUrl:cJn,kInterceptors:Jea}=GE(),Uea=SHe(),hCr=Symbol("options"),mCr=Symbol("connections"),lJn=Symbol("factory");function Kea(e,t){return new Xea(e,t)}var CCr=class extends Mea{constructor(t,{connections:r,factory:n=Kea,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new fCr("invalid connections");if(typeof n!="function")throw new fCr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new fCr("connect must be a function or an object");typeof a!="function"&&(a=Uea({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...ICr.nodeHasAutoSelectFamily&&I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[Jea]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[mCr]=r||null,this[cJn]=ICr.parseOrigin(t),this[hCr]={...ICr.deepClone(E),connect:a,allowH2:b},this[hCr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[lJn]=n}[Qea](){let t=this[aJn].find(r=>!r[Hea]);return t||((!this[mCr]||this[aJn].length{"use strict";var{BalancedPoolMissingUpstreamError:jea,InvalidArgumentError:zea}=Ub(),{PoolBase:qea,kClients:LZ,kNeedDrain:FHe,kAddClient:$ea,kRemoveClient:eta,kGetDispatcher:tta}=pCr(),rta=WBe(),{kUrl:_Cr,kInterceptors:nta}=GE(),{parseOrigin:gJn}=zC(),AJn=Symbol("factory"),Dft=Symbol("options"),dJn=Symbol("kGreatestCommonDivisor"),MIe=Symbol("kCurrentWeight"),HIe=Symbol("kIndex"),SM=Symbol("kWeight"),kft=Symbol("kMaxWeightPerServer"),xft=Symbol("kErrorPenalty");function pJn(e,t){return t===0?e:pJn(t,e%t)}function ita(e,t){return new rta(e,t)}var yCr=class extends qea{constructor(t=[],{factory:r=ita,...n}={}){if(super(),this[Dft]=n,this[HIe]=-1,this[MIe]=0,this[kft]=this[Dft].maxWeightPerServer||100,this[xft]=this[Dft].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new zea("factory must be a function.");this[nta]=n.interceptors&&n.interceptors.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[AJn]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=gJn(t).origin;if(this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[AJn](r,Object.assign({},this[Dft]));this[$ea](n),n.on("connect",()=>{n[SM]=Math.min(this[kft],n[SM]+this[xft])}),n.on("connectionError",()=>{n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats())});for(let a of this[LZ])a[SM]=this[kft];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[dJn]=this[LZ].map(t=>t[SM]).reduce(pJn,0)}removeUpstream(t){let r=gJn(t).origin,n=this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[eta](n),this}get upstreams(){return this[LZ].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[_Cr].origin)}[tta](){if(this[LZ].length===0)throw new jea;if(!this[LZ].find(o=>!o[FHe]&&o.closed!==!0&&o.destroyed!==!0)||this[LZ].map(o=>o[FHe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[LZ].findIndex(o=>!o[FHe]);for(;n++this[LZ][a][SM]&&!o[FHe]&&(a=this[HIe]),this[HIe]===0&&(this[MIe]=this[MIe]-this[dJn],this[MIe]<=0&&(this[MIe]=this[kft])),o[SM]>=this[MIe]&&!o[FHe])return o}return this[MIe]=this[LZ][a][SM],this[HIe]=a,this[LZ][a]}};fJn.exports=yCr});var bCr=H((xiu,CJn)=>{"use strict";var{kConnected:hJn,kSize:mJn}=GE(),Gft=class{constructor(t){this.value=t}deref(){return this.value[hJn]===0&&this.value[mJn]===0?void 0:this.value}},Fft=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[hJn]===0&&t[mJn]===0&&this.finalizer(r)})}};CJn.exports=function(){return process.env.NODE_V8_COVERAGE?{WeakRef:Gft,FinalizationRegistry:Fft}:{WeakRef:global.WeakRef||Gft,FinalizationRegistry:global.FinalizationRegistry||Fft}}});var ZHe=H((Giu,wJn)=>{"use strict";var{InvalidArgumentError:Zft}=Ub(),{kClients:zoe,kRunning:_Jn,kClose:sta,kDestroy:ota,kDispatch:ata,kInterceptors:cta}=GE(),lta=EHe(),uta=WBe(),gta=kHe(),Ata=zC(),dta=_ft(),{WeakRef:pta,FinalizationRegistry:fta}=bCr()(),yJn=Symbol("onConnect"),bJn=Symbol("onDisconnect"),EJn=Symbol("onConnectionError"),Ita=Symbol("maxRedirections"),SJn=Symbol("onDrain"),vJn=Symbol("factory"),BJn=Symbol("finalizer"),ECr=Symbol("options");function hta(e,t){return t&&t.connections===1?new gta(e,t):new uta(e,t)}var SCr=class extends lta{constructor({factory:t=hta,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new Zft("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new Zft("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new Zft("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[cta]=a.interceptors&&a.interceptors.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[dta({maxRedirections:r})],this[ECr]={...Ata.deepClone(a),connect:n},this[ECr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[Ita]=r,this[vJn]=t,this[zoe]=new Map,this[BJn]=new fta(l=>{let A=this[zoe].get(l);A!==void 0&&A.deref()===void 0&&this[zoe].delete(l)});let o=this;this[SJn]=(l,A)=>{o.emit("drain",l,[o,...A])},this[yJn]=(l,A)=>{o.emit("connect",l,[o,...A])},this[bJn]=(l,A,f)=>{o.emit("disconnect",l,[o,...A],f)},this[EJn]=(l,A,f)=>{o.emit("connectionError",l,[o,...A],f)}}get[_Jn](){let t=0;for(let r of this[zoe].values()){let n=r.deref();n&&(t+=n[_Jn])}return t}[ata](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new Zft("opts.origin must be a non-empty string or URL.");let a=this[zoe].get(n),o=a?a.deref():null;return o||(o=this[vJn](t.origin,this[ECr]).on("drain",this[SJn]).on("connect",this[yJn]).on("disconnect",this[bJn]).on("connectionError",this[EJn]),this[zoe].set(n,new pta(o)),this[BJn].register(o,n)),o.dispatch(t,r)}async[sta](){let t=[];for(let r of this[zoe].values()){let n=r.deref();n&&t.push(n.close())}await Promise.all(t)}async[ota](t){let r=[];for(let n of this[zoe].values()){let a=n.deref();a&&r.push(a.destroy(t))}await Promise.all(r)}};wJn.exports=SCr});var ZJn=H((Ziu,FJn)=>{"use strict";var DJn=wt("assert"),{Readable:mta}=wt("stream"),{RequestAbortedError:kJn,NotSupportedError:Cta,InvalidArgumentError:_ta}=Ub(),Pft=zC(),{ReadableStreamFrom:yta,toUSVString:bta}=zC(),vCr,XW=Symbol("kConsume"),Lft=Symbol("kReading"),qoe=Symbol("kBody"),TJn=Symbol("abort"),xJn=Symbol("kContentType"),RJn=()=>{};FJn.exports=class extends mta{constructor({resume:t,abort:r,contentType:n="",highWaterMark:a=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:a}),this._readableState.dataEmitted=!1,this[TJn]=r,this[XW]=null,this[qoe]=null,this[xJn]=n,this[Lft]=!1}destroy(t){return this.destroyed?this:(!t&&!this._readableState.endEmitted&&(t=new kJn),t&&this[TJn](),super.destroy(t))}emit(t,...r){return t==="data"?this._readableState.dataEmitted=!0:t==="error"&&(this._readableState.errorEmitted=!0),super.emit(t,...r)}on(t,...r){return(t==="data"||t==="readable")&&(this[Lft]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[Lft]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[XW]&&t!==null&&this.readableLength===0?(GJn(this[XW],t),this[Lft]?super.push(t):!0):super.push(t)}async text(){return Vft(this,"text")}async json(){return Vft(this,"json")}async blob(){return Vft(this,"blob")}async arrayBuffer(){return Vft(this,"arrayBuffer")}async formData(){throw new Cta}get bodyUsed(){return Pft.isDisturbed(this)}get body(){return this[qoe]||(this[qoe]=yta(this),this[XW]&&(this[qoe].getReader(),DJn(this[qoe].locked))),this[qoe]}dump(t){let r=t&&Number.isFinite(t.limit)?t.limit:262144,n=t&&t.signal;if(n)try{if(typeof n!="object"||!("aborted"in n))throw new _ta("signal must be an AbortSignal");Pft.throwIfAborted(n)}catch(a){return Promise.reject(a)}return this.closed?Promise.resolve(null):new Promise((a,o)=>{let l=n?Pft.addAbortListener(n,()=>{this.destroy()}):RJn;this.on("close",function(){l(),n&&n.aborted?o(n.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"})):a(null)}).on("error",RJn).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Eta(e){return e[qoe]&&e[qoe].locked===!0||e[XW]}function Sta(e){return Pft.isDisturbed(e)||Eta(e)}async function Vft(e,t){if(Sta(e))throw new TypeError("unusable");return DJn(!e[XW]),new Promise((r,n)=>{e[XW]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){BCr(this[XW],a)}).on("close",function(){this[XW].body!==null&&BCr(this[XW],new kJn)}),process.nextTick(vta,e[XW])})}function vta(e){if(e.body===null)return;let{_readableState:t}=e.stream;for(let r of t.buffer)GJn(e,r);for(t.endEmitted?NJn(this[XW]):e.stream.on("end",function(){NJn(this[XW])}),e.stream.resume();e.stream.read()!=null;);}function NJn(e){let{type:t,body:r,resolve:n,stream:a,length:o}=e;try{if(t==="text")n(bta(Buffer.concat(r)));else if(t==="json")n(JSON.parse(Buffer.concat(r)));else if(t==="arrayBuffer"){let l=new Uint8Array(o),A=0;for(let f of r)l.set(f,A),A+=f.byteLength;n(l.buffer)}else t==="blob"&&(vCr||(vCr=wt("buffer").Blob),n(new vCr(r,{type:a[xJn]})));BCr(e)}catch(l){a.destroy(l)}}function GJn(e,t){e.length+=t.length,e.body.push(t)}function BCr(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var wCr=H((Liu,VJn)=>{var Bta=wt("assert"),{ResponseStatusCodeError:Wft}=Ub(),{toUSVString:LJn}=zC();async function wta({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Bta(t);let l=[],A=0;for await(let f of t)if(l.push(f),A+=f.length,A>128*1024){l=null;break}if(n===204||!r||!l){process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o));return}try{if(r.startsWith("application/json")){let f=JSON.parse(LJn(Buffer.concat(l)));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}if(r.startsWith("text/")){let f=LJn(Buffer.concat(l));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}}catch{}process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o))}VJn.exports={getResolveErrorBodyCallback:wta}});var MBe=H((Viu,WJn)=>{var{addAbortListener:Tta}=zC(),{RequestAbortedError:Rta}=Ub(),OBe=Symbol("kListener"),$oe=Symbol("kSignal");function PJn(e){e.abort?e.abort():e.onError(new Rta)}function Nta(e,t){if(e[$oe]=null,e[OBe]=null,!!t){if(t.aborted){PJn(e);return}e[$oe]=t,e[OBe]=()=>{PJn(e)},Tta(e[$oe],e[OBe])}}function Dta(e){e[$oe]&&("removeEventListener"in e[$oe]?e[$oe].removeEventListener("abort",e[OBe]):e[$oe].removeListener("abort",e[OBe]),e[$oe]=null,e[OBe]=null)}WJn.exports={addSignal:Nta,removeSignal:Dta}});var HJn=H((Piu,TCr)=>{"use strict";var kta=ZJn(),{InvalidArgumentError:HBe,RequestAbortedError:xta}=Ub(),y8=zC(),{getResolveErrorBodyCallback:Gta}=wCr(),{AsyncResource:Fta}=wt("async_hooks"),{addSignal:Zta,removeSignal:OJn}=MBe(),Oft=class extends Fta{constructor(t,r){if(!t||typeof t!="object")throw new HBe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new HBe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new HBe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new HBe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new HBe("invalid method");if(A&&typeof A!="function")throw new HBe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw y8.isStream(l)&&y8.destroy(l.on("error",y8.nop),b),b}this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,y8.isStream(l)&&l.on("error",b=>{this.onError(b)}),Zta(this,n)}onConnect(t,r){if(!this.callback)throw new xta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?y8.parseRawHeaders(r):y8.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let N=(I==="raw"?y8.parseHeaders(r):b)["content-type"],B=new kta({resume:n,abort:A,contentType:N,highWaterMark:C});this.callback=null,this.res=B,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Gta,null,{callback:o,body:B,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:B,context:f}))}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;OJn(this),y8.parseHeaders(t,this.trailers),r.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;OJn(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{y8.destroy(r,t)})),a&&(this.body=null,y8.destroy(a,t))}};function MJn(e,t){if(t===void 0)return new Promise((r,n)=>{MJn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Oft(e,t))}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}TCr.exports=MJn;TCr.exports.RequestHandler=Oft});var JJn=H((Wiu,XJn)=>{"use strict";var{finished:Lta,PassThrough:Vta}=wt("stream"),{InvalidArgumentError:YBe,InvalidReturnValueError:Pta,RequestAbortedError:Wta}=Ub(),RX=zC(),{getResolveErrorBodyCallback:Ota}=wCr(),{AsyncResource:Mta}=wt("async_hooks"),{addSignal:Hta,removeSignal:YJn}=MBe(),RCr=class extends Mta{constructor(t,r,n){if(!t||typeof t!="object")throw new YBe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new YBe("invalid callback");if(typeof r!="function")throw new YBe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new YBe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new YBe("invalid method");if(f&&typeof f!="function")throw new YBe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw RX.isStream(A)&&RX.destroy(A.on("error",RX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,RX.isStream(A)&&A.on("error",b=>{this.onError(b)}),Hta(this,a)}onConnect(t,r){if(!this.callback)throw new Wta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?RX.parseRawHeaders(r):RX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?RX.parseHeaders(r):C)["content-type"];b=new Vta,this.callback=null,this.runInAsyncScope(Ota,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new Pta("expected Writable");Lta(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&RX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState&&b._writableState.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;YJn(this),r&&(this.trailers=RX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;YJn(this),this.factory=null,r?(this.res=null,RX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,RX.destroy(o,t))}};function QJn(e,t,r){if(r===void 0)return new Promise((n,a)=>{QJn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new RCr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e&&e.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}XJn.exports=QJn});var jJn=H((Oiu,KJn)=>{"use strict";var{Readable:UJn,Duplex:Yta,PassThrough:Qta}=wt("stream"),{InvalidArgumentError:LHe,InvalidReturnValueError:Xta,RequestAbortedError:Mft}=Ub(),vM=zC(),{AsyncResource:Jta}=wt("async_hooks"),{addSignal:Uta,removeSignal:Kta}=MBe(),jta=wt("assert"),QBe=Symbol("resume"),NCr=class extends UJn{constructor(){super({autoDestroy:!0}),this[QBe]=null}_read(){let{[QBe]:t}=this;t&&(this[QBe]=null,t())}_destroy(t,r){this._read(),r(t)}},DCr=class extends UJn{constructor(t){super({autoDestroy:!0}),this[QBe]=t}_read(){this[QBe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Mft),r(t)}},kCr=class extends Jta{constructor(t,r){if(!t||typeof t!="object")throw new LHe("invalid opts");if(typeof r!="function")throw new LHe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new LHe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new LHe("invalid method");if(l&&typeof l!="function")throw new LHe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new NCr().on("error",vM.nop),this.ret=new Yta({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f&&f.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[QBe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Mft),B&&f&&B(),vM.destroy(C,f),vM.destroy(b,f),vM.destroy(E,f),Kta(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,Uta(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(jta(!a,"pipeline cannot be retried"),n.destroyed)throw new Mft;this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new DCr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",vM.nop),f}if(!A||typeof A.on!="function")throw new Xta("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;vM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||vM.destroy(f,new Mft)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,vM.destroy(r,t)}};function zta(e,t){try{let r=new kCr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new Qta().destroy(r)}}KJn.exports=zta});var tUn=H((Miu,eUn)=>{"use strict";var{InvalidArgumentError:xCr,RequestAbortedError:qta,SocketError:$ta}=Ub(),{AsyncResource:era}=wt("async_hooks"),zJn=zC(),{addSignal:tra,removeSignal:qJn}=MBe(),rra=wt("assert"),GCr=class extends era{constructor(t,r){if(!t||typeof t!="object")throw new xCr("invalid opts");if(typeof r!="function")throw new xCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new xCr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,tra(this,n)}onConnect(t,r){if(!this.callback)throw new qta;this.abort=t,this.context=null}onHeaders(){throw new $ta("bad upgrade",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;rra.strictEqual(t,101),qJn(this),this.callback=null;let A=this.responseHeaders==="raw"?zJn.parseRawHeaders(r):zJn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;qJn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $Jn(e,t){if(t===void 0)return new Promise((r,n)=>{$Jn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new GCr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eUn.exports=$Jn});var oUn=H((Hiu,sUn)=>{"use strict";var{AsyncResource:nra}=wt("async_hooks"),{InvalidArgumentError:FCr,RequestAbortedError:ira,SocketError:sra}=Ub(),rUn=zC(),{addSignal:ora,removeSignal:nUn}=MBe(),ZCr=class extends nra{constructor(t,r){if(!t||typeof t!="object")throw new FCr("invalid opts");if(typeof r!="function")throw new FCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new FCr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,ora(this,n)}onConnect(t,r){if(!this.callback)throw new ira;this.abort=t,this.context=r}onHeaders(){throw new sra("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nUn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rUn.parseRawHeaders(r):rUn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nUn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iUn(e,t){if(t===void 0)return new Promise((r,n)=>{iUn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new ZCr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sUn.exports=iUn});var aUn=H((Yiu,XBe)=>{"use strict";XBe.exports.request=HJn();XBe.exports.stream=JJn();XBe.exports.pipeline=jJn();XBe.exports.upgrade=tUn();XBe.exports.connect=oUn()});var VCr=H((Qiu,cUn)=>{"use strict";var{UndiciError:ara}=Ub(),LCr=class e extends ara{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cUn.exports={MockNotMatchedError:LCr}});var JBe=H((Xiu,lUn)=>{"use strict";lUn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var VHe=H((Jiu,yUn)=>{"use strict";var{MockNotMatchedError:YIe}=VCr(),{kDispatches:Hft,kMockAgent:cra,kOriginalDispatch:lra,kOrigin:ura,kGetNetConnect:gra}=JBe(),{buildURL:Ara,nop:dra}=zC(),{STATUS_CODES:pra}=wt("http"),{types:{isPromise:fra}}=wt("util");function x$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gUn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function AUn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=AUn(t,r);if(!x$(n,a))return!1}return!0}function uUn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function Ira(e,{path:t,method:r,body:n,headers:a}){let o=x$(e.path,t),l=x$(e.method,r),A=typeof e.body<"u"?x$(e.body,n):!0,f=pUn(e,a);return o&&l&&A&&f}function fUn(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function IUn(e,t){let r=t.query?Ara(t.path,t.query):t.path,n=typeof r=="string"?uUn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>x$(uUn(o),n));if(a.length===0)throw new YIe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>x$(o,t.method)),a.length===0)throw new YIe(`Mock dispatch not matched for method '${t.method}'`);if(a=a.filter(({body:o})=>typeof o<"u"?x$(o,t.body):!0),a.length===0)throw new YIe(`Mock dispatch not matched for body '${t.body}'`);if(a=a.filter(o=>pUn(o,t.headers)),a.length===0)throw new YIe(`Mock dispatch not matched for headers '${typeof t.headers=="object"?JSON.stringify(t.headers):t.headers}'`);return a[0]}function hra(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function PCr(e,t){let r=e.findIndex(n=>n.consumed?Ira(n,t):!1);r!==-1&&e.splice(r,1)}function hUn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function WCr(e){return Object.entries(e).reduce((t,[r,n])=>[...t,Buffer.from(`${r}`),Array.isArray(n)?n.map(a=>Buffer.from(`${a}`)):Buffer.from(`${n}`)],[])}function mUn(e){return pra[e]||"unknown"}async function mra(e){let t=[];for await(let r of e)t.push(r);return Buffer.concat(t).toString("utf8")}function CUn(e,t){let r=hUn(e),n=IUn(this[Hft],r);n.timesInvoked++,n.data.callback&&(n.data={...n.data,...n.data.callback(e)});let{data:{statusCode:a,data:o,headers:l,trailers:A,error:f},delay:I,persist:C}=n,{timesInvoked:b,times:E}=n;if(n.consumed=!C&&b>=E,n.pending=b0?setTimeout(()=>{N(this[Hft])},I):N(this[Hft]);function N(F,Q=o){let X=Array.isArray(e.headers)?dUn(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(fra(ae)){ae.then(ue=>N(F,ue));return}let ne=fUn(ae),ce=WCr(l),fe=WCr(A);t.abort=dra,t.onHeaders(a,ce,B,mUn(a)),t.onData(Buffer.from(ne)),t.onComplete(fe),PCr(F,r)}function B(){}return!0}function Cra(){let e=this[cra],t=this[ura],r=this[lra];return function(a,o){if(e.isMockActive)try{CUn.call(this,a,o)}catch(l){if(l instanceof YIe){let A=e[gra]();if(A===!1)throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(_Un(A,t))r.call(this,a,o);else throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function _Un(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>x$(n,r.host)))}function _ra(e){if(e){let{agent:t,...r}=e;return r}}yUn.exports={getResponseData:fUn,getMockDispatch:IUn,addMockDispatch:hra,deleteMockDispatch:PCr,buildKey:hUn,generateKeyValues:WCr,matchValue:x$,getResponse:mra,getStatusText:mUn,mockDispatch:CUn,buildMockDispatch:Cra,checkNetConnect:_Un,buildMockOptions:_ra,getHeaderByName:AUn}});var JCr=H((Uiu,XCr)=>{"use strict";var{getResponseData:yra,buildKey:bra,addMockDispatch:OCr}=VHe(),{kDispatches:Yft,kDispatchKey:Qft,kDefaultHeaders:MCr,kDefaultTrailers:HCr,kContentLength:YCr,kMockDispatch:Xft}=JBe(),{InvalidArgumentError:NX}=Ub(),{buildURL:Era}=zC(),UBe=class{constructor(t){this[Xft]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("waitInMs must be a valid integer > 0");return this[Xft].delay=t,this}persist(){return this[Xft].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("repeatTimes must be a valid integer > 0");return this[Xft].times=t,this}},QCr=class{constructor(t,r){if(typeof t!="object")throw new NX("opts must be an object");if(typeof t.path>"u")throw new NX("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=Era(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Qft]=bra(t),this[Yft]=r,this[MCr]={},this[HCr]={},this[YCr]=!1}createMockScopeDispatchData(t,r,n={}){let a=yra(r),o=this[YCr]?{"content-length":a.length}:{},l={...this[MCr],...o,...n.headers},A={...this[HCr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t,r,n){if(typeof t>"u")throw new NX("statusCode must be defined");if(typeof r>"u")throw new NX("data must be defined");if(typeof n!="object")throw new NX("responseOptions must be an object")}reply(t){if(typeof t=="function"){let A=I=>{let C=t(I);if(typeof C!="object")throw new NX("reply options callback must return an object");let{statusCode:b,data:E="",responseOptions:N={}}=C;return this.validateReplyParameters(b,E,N),{...this.createMockScopeDispatchData(b,E,N)}},f=OCr(this[Yft],this[Qft],A);return new UBe(f)}let[r,n="",a={}]=[...arguments];this.validateReplyParameters(r,n,a);let o=this.createMockScopeDispatchData(r,n,a),l=OCr(this[Yft],this[Qft],o);return new UBe(l)}replyWithError(t){if(typeof t>"u")throw new NX("error must be defined");let r=OCr(this[Yft],this[Qft],{error:t});return new UBe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new NX("headers must be defined");return this[MCr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new NX("trailers must be defined");return this[HCr]=t,this}replyContentLength(){return this[YCr]=!0,this}};XCr.exports.MockInterceptor=QCr;XCr.exports.MockScope=UBe});var jCr=H((Kiu,TUn)=>{"use strict";var{promisify:Sra}=wt("util"),vra=kHe(),{buildMockDispatch:Bra}=VHe(),{kDispatches:bUn,kMockAgent:EUn,kClose:SUn,kOriginalClose:vUn,kOrigin:BUn,kOriginalDispatch:wra,kConnected:UCr}=JBe(),{MockInterceptor:Tra}=JCr(),wUn=GE(),{InvalidArgumentError:Rra}=Ub(),KCr=class extends vra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Rra("Argument opts.agent must implement Agent");this[EUn]=r.agent,this[BUn]=t,this[bUn]=[],this[UCr]=1,this[wra]=this.dispatch,this[vUn]=this.close.bind(this),this.dispatch=Bra.call(this),this.close=this[SUn]}get[wUn.kConnected](){return this[UCr]}intercept(t){return new Tra(t,this[bUn])}async[SUn](){await Sra(this[vUn])(),this[UCr]=0,this[EUn][wUn.kClients].delete(this[BUn])}};TUn.exports=KCr});var $Cr=H((jiu,FUn)=>{"use strict";var{promisify:Nra}=wt("util"),Dra=WBe(),{buildMockDispatch:kra}=VHe(),{kDispatches:RUn,kMockAgent:NUn,kClose:DUn,kOriginalClose:kUn,kOrigin:xUn,kOriginalDispatch:xra,kConnected:zCr}=JBe(),{MockInterceptor:Gra}=JCr(),GUn=GE(),{InvalidArgumentError:Fra}=Ub(),qCr=class extends Dra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Fra("Argument opts.agent must implement Agent");this[NUn]=r.agent,this[xUn]=t,this[RUn]=[],this[zCr]=1,this[xra]=this.dispatch,this[kUn]=this.close.bind(this),this.dispatch=kra.call(this),this.close=this[DUn]}get[GUn.kConnected](){return this[zCr]}intercept(t){return new Gra(t,this[RUn])}async[DUn](){await Nra(this[kUn])(),this[zCr]=0,this[NUn][GUn.kClients].delete(this[xUn])}};FUn.exports=qCr});var LUn=H((qiu,ZUn)=>{"use strict";var Zra={pronoun:"it",is:"is",was:"was",this:"this"},Lra={pronoun:"they",is:"are",was:"were",this:"these"};ZUn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Zra:Lra,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var PUn=H((esu,VUn)=>{"use strict";var{Transform:Vra}=wt("stream"),{Console:Pra}=wt("console");VUn.exports=class{constructor({disableColors:t}={}){this.transform=new Vra({transform(r,n,a){a(null,r)}}),this.logger=new Pra({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?"\u2705":"\u274C",Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var HUn=H((tsu,MUn)=>{"use strict";var{kClients:QIe}=GE(),Wra=ZHe(),{kAgent:e_r,kMockAgentSet:Jft,kMockAgentGet:WUn,kDispatches:t_r,kIsMockActive:Uft,kNetConnect:XIe,kGetNetConnect:Ora,kOptions:Kft,kFactory:jft}=JBe(),Mra=jCr(),Hra=$Cr(),{matchValue:Yra,buildMockOptions:Qra}=VHe(),{InvalidArgumentError:OUn,UndiciError:Xra}=Ub(),Jra=Ift(),Ura=LUn(),Kra=PUn(),r_r=class{constructor(t){this.value=t}deref(){return this.value}},n_r=class extends Jra{constructor(t){if(super(t),this[XIe]=!0,this[Uft]=!0,t&&t.agent&&typeof t.agent.dispatch!="function")throw new OUn("Argument opts.agent must implement Agent");let r=t&&t.agent?t.agent:new Wra(t);this[e_r]=r,this[QIe]=r[QIe],this[Kft]=Qra(t)}get(t){let r=this[WUn](t);return r||(r=this[jft](t),this[Jft](t,r)),r}dispatch(t,r){return this.get(t.origin),this[e_r].dispatch(t,r)}async close(){await this[e_r].close(),this[QIe].clear()}deactivate(){this[Uft]=!1}activate(){this[Uft]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[XIe])?this[XIe].push(t):this[XIe]=[t];else if(typeof t>"u")this[XIe]=!0;else throw new OUn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[XIe]=!1}get isMockActive(){return this[Uft]}[Jft](t,r){this[QIe].set(t,new r_r(r))}[jft](t){let r=Object.assign({agent:this},this[Kft]);return this[Kft]&&this[Kft].connections===1?new Mra(t,r):new Hra(t,r)}[WUn](t){let r=this[QIe].get(t);if(r)return r.deref();if(typeof t!="string"){let n=this[jft]("http://localhost:9999");return this[Jft](t,n),n}for(let[n,a]of Array.from(this[QIe])){let o=a.deref();if(o&&typeof n!="string"&&Yra(n,t)){let l=this[jft](t);return this[Jft](t,l),l[t_r]=o[t_r],l}}}[Ora](){return this[XIe]}pendingInterceptors(){let t=this[QIe];return Array.from(t.entries()).flatMap(([r,n])=>n.deref()[t_r].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new Kra}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new Ura("interceptor","interceptors").pluralize(r.length);throw new Xra(` +`,"latin1"),r!==null&&a!==r){if(n[NHe])throw new D$;process.emitWarning(new D$)}t[Pv].timeout&&t[Pv].timeoutType===PBe&&t[Pv].timeout.refresh&&t[Pv].timeout.refresh(),QW(n)}}destroy(t){let{socket:r,client:n}=this;r[k$]=!1,t&&(kA(n[TS]<=1,"pipeline should only contain this request"),vp.destroy(r,t))}};function FZ(e,t,r){try{t.onError(r),kA(t.aborted)}catch(n){e.emit("error",n)}}X4n.exports=rCr});var U4n=H((Riu,J4n)=>{"use strict";var Nft=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};J4n.exports=class{constructor(){this.head=this.tail=new Nft}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Nft),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var j4n=H((Niu,K4n)=>{var{kFree:wea,kConnected:Tea,kPending:Rea,kQueued:Nea,kRunning:Dea,kSize:kea}=GE(),OIe=Symbol("pool"),cCr=class{constructor(t){this[OIe]=t}get connected(){return this[OIe][Tea]}get free(){return this[OIe][wea]}get pending(){return this[OIe][Rea]}get queued(){return this[OIe][Nea]}get running(){return this[OIe][Dea]}get size(){return this[OIe][kea]}};K4n.exports=cCr});var pCr=H((Diu,oJn)=>{"use strict";var xea=EHe(),Gea=U4n(),{kConnected:lCr,kSize:z4n,kRunning:q4n,kPending:$4n,kQueued:xHe,kBusy:Fea,kFree:Zea,kUrl:Lea,kClose:Vea,kDestroy:Pea,kDispatch:Wea}=GE(),Oea=j4n(),K9=Symbol("clients"),ZZ=Symbol("needDrain"),GHe=Symbol("queue"),uCr=Symbol("closed resolve"),gCr=Symbol("onDrain"),eJn=Symbol("onConnect"),tJn=Symbol("onDisconnect"),rJn=Symbol("onConnectionError"),ACr=Symbol("get dispatcher"),iJn=Symbol("add client"),sJn=Symbol("remove client"),nJn=Symbol("stats"),dCr=class extends xea{constructor(){super(),this[GHe]=new Gea,this[K9]=[],this[xHe]=0;let t=this;this[gCr]=function(n,a){let o=t[GHe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[xHe]--,l=!this.dispatch(A.opts,A.handler)}this[ZZ]=l,!this[ZZ]&&t[ZZ]&&(t[ZZ]=!1,t.emit("drain",n,[t,...a])),t[uCr]&&o.isEmpty()&&Promise.all(t[K9].map(A=>A.close())).then(t[uCr])},this[eJn]=(r,n)=>{t.emit("connect",r,[t,...n])},this[tJn]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[rJn]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[nJn]=new Oea(this)}get[Fea](){return this[ZZ]}get[lCr](){return this[K9].filter(t=>t[lCr]).length}get[Zea](){return this[K9].filter(t=>t[lCr]&&!t[ZZ]).length}get[$4n](){let t=this[xHe];for(let{[$4n]:r}of this[K9])t+=r;return t}get[q4n](){let t=0;for(let{[q4n]:r}of this[K9])t+=r;return t}get[z4n](){let t=this[xHe];for(let{[z4n]:r}of this[K9])t+=r;return t}get stats(){return this[nJn]}async[Vea](){return this[GHe].isEmpty()?Promise.all(this[K9].map(t=>t.close())):new Promise(t=>{this[uCr]=t})}async[Pea](t){for(;;){let r=this[GHe].shift();if(!r)break;r.handler.onError(t)}return Promise.all(this[K9].map(r=>r.destroy(t)))}[Wea](t,r){let n=this[ACr]();return n?n.dispatch(t,r)||(n[ZZ]=!0,this[ZZ]=!this[ACr]()):(this[ZZ]=!0,this[GHe].push({opts:t,handler:r}),this[xHe]++),!this[ZZ]}[iJn](t){return t.on("drain",this[gCr]).on("connect",this[eJn]).on("disconnect",this[tJn]).on("connectionError",this[rJn]),this[K9].push(t),this[ZZ]&&process.nextTick(()=>{this[ZZ]&&this[gCr](t[Lea],[this,t])}),this}[sJn](t){t.close(()=>{let r=this[K9].indexOf(t);r!==-1&&this[K9].splice(r,1)}),this[ZZ]=this[K9].some(r=>!r[ZZ]&&r.closed!==!0&&r.destroyed!==!0)}};oJn.exports={PoolBase:dCr,kClients:K9,kNeedDrain:ZZ,kAddClient:iJn,kRemoveClient:sJn,kGetDispatcher:ACr}});var WBe=H((kiu,uJn)=>{"use strict";var{PoolBase:Mea,kClients:aJn,kNeedDrain:Hea,kAddClient:Yea,kGetDispatcher:Qea}=pCr(),Xea=kHe(),{InvalidArgumentError:fCr}=Ub(),ICr=zC(),{kUrl:cJn,kInterceptors:Jea}=GE(),Uea=SHe(),hCr=Symbol("options"),mCr=Symbol("connections"),lJn=Symbol("factory");function Kea(e,t){return new Xea(e,t)}var CCr=class extends Mea{constructor(t,{connections:r,factory:n=Kea,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new fCr("invalid connections");if(typeof n!="function")throw new fCr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new fCr("connect must be a function or an object");typeof a!="function"&&(a=Uea({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...ICr.nodeHasAutoSelectFamily&&I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[Jea]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[mCr]=r||null,this[cJn]=ICr.parseOrigin(t),this[hCr]={...ICr.deepClone(E),connect:a,allowH2:b},this[hCr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[lJn]=n}[Qea](){let t=this[aJn].find(r=>!r[Hea]);return t||((!this[mCr]||this[aJn].length{"use strict";var{BalancedPoolMissingUpstreamError:jea,InvalidArgumentError:zea}=Ub(),{PoolBase:qea,kClients:LZ,kNeedDrain:FHe,kAddClient:$ea,kRemoveClient:eta,kGetDispatcher:tta}=pCr(),rta=WBe(),{kUrl:_Cr,kInterceptors:nta}=GE(),{parseOrigin:gJn}=zC(),AJn=Symbol("factory"),Dft=Symbol("options"),dJn=Symbol("kGreatestCommonDivisor"),MIe=Symbol("kCurrentWeight"),HIe=Symbol("kIndex"),SM=Symbol("kWeight"),kft=Symbol("kMaxWeightPerServer"),xft=Symbol("kErrorPenalty");function pJn(e,t){return t===0?e:pJn(t,e%t)}function ita(e,t){return new rta(e,t)}var yCr=class extends qea{constructor(t=[],{factory:r=ita,...n}={}){if(super(),this[Dft]=n,this[HIe]=-1,this[MIe]=0,this[kft]=this[Dft].maxWeightPerServer||100,this[xft]=this[Dft].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new zea("factory must be a function.");this[nta]=n.interceptors&&n.interceptors.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[AJn]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=gJn(t).origin;if(this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[AJn](r,Object.assign({},this[Dft]));this[$ea](n),n.on("connect",()=>{n[SM]=Math.min(this[kft],n[SM]+this[xft])}),n.on("connectionError",()=>{n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats())});for(let a of this[LZ])a[SM]=this[kft];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[dJn]=this[LZ].map(t=>t[SM]).reduce(pJn,0)}removeUpstream(t){let r=gJn(t).origin,n=this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[eta](n),this}get upstreams(){return this[LZ].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[_Cr].origin)}[tta](){if(this[LZ].length===0)throw new jea;if(!this[LZ].find(o=>!o[FHe]&&o.closed!==!0&&o.destroyed!==!0)||this[LZ].map(o=>o[FHe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[LZ].findIndex(o=>!o[FHe]);for(;n++this[LZ][a][SM]&&!o[FHe]&&(a=this[HIe]),this[HIe]===0&&(this[MIe]=this[MIe]-this[dJn],this[MIe]<=0&&(this[MIe]=this[kft])),o[SM]>=this[MIe]&&!o[FHe])return o}return this[MIe]=this[LZ][a][SM],this[HIe]=a,this[LZ][a]}};fJn.exports=yCr});var bCr=H((Giu,CJn)=>{"use strict";var{kConnected:hJn,kSize:mJn}=GE(),Gft=class{constructor(t){this.value=t}deref(){return this.value[hJn]===0&&this.value[mJn]===0?void 0:this.value}},Fft=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[hJn]===0&&t[mJn]===0&&this.finalizer(r)})}};CJn.exports=function(){return process.env.NODE_V8_COVERAGE?{WeakRef:Gft,FinalizationRegistry:Fft}:{WeakRef:global.WeakRef||Gft,FinalizationRegistry:global.FinalizationRegistry||Fft}}});var ZHe=H((Fiu,wJn)=>{"use strict";var{InvalidArgumentError:Zft}=Ub(),{kClients:zoe,kRunning:_Jn,kClose:sta,kDestroy:ota,kDispatch:ata,kInterceptors:cta}=GE(),lta=EHe(),uta=WBe(),gta=kHe(),Ata=zC(),dta=_ft(),{WeakRef:pta,FinalizationRegistry:fta}=bCr()(),yJn=Symbol("onConnect"),bJn=Symbol("onDisconnect"),EJn=Symbol("onConnectionError"),Ita=Symbol("maxRedirections"),SJn=Symbol("onDrain"),vJn=Symbol("factory"),BJn=Symbol("finalizer"),ECr=Symbol("options");function hta(e,t){return t&&t.connections===1?new gta(e,t):new uta(e,t)}var SCr=class extends lta{constructor({factory:t=hta,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new Zft("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new Zft("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new Zft("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[cta]=a.interceptors&&a.interceptors.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[dta({maxRedirections:r})],this[ECr]={...Ata.deepClone(a),connect:n},this[ECr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[Ita]=r,this[vJn]=t,this[zoe]=new Map,this[BJn]=new fta(l=>{let A=this[zoe].get(l);A!==void 0&&A.deref()===void 0&&this[zoe].delete(l)});let o=this;this[SJn]=(l,A)=>{o.emit("drain",l,[o,...A])},this[yJn]=(l,A)=>{o.emit("connect",l,[o,...A])},this[bJn]=(l,A,f)=>{o.emit("disconnect",l,[o,...A],f)},this[EJn]=(l,A,f)=>{o.emit("connectionError",l,[o,...A],f)}}get[_Jn](){let t=0;for(let r of this[zoe].values()){let n=r.deref();n&&(t+=n[_Jn])}return t}[ata](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new Zft("opts.origin must be a non-empty string or URL.");let a=this[zoe].get(n),o=a?a.deref():null;return o||(o=this[vJn](t.origin,this[ECr]).on("drain",this[SJn]).on("connect",this[yJn]).on("disconnect",this[bJn]).on("connectionError",this[EJn]),this[zoe].set(n,new pta(o)),this[BJn].register(o,n)),o.dispatch(t,r)}async[sta](){let t=[];for(let r of this[zoe].values()){let n=r.deref();n&&t.push(n.close())}await Promise.all(t)}async[ota](t){let r=[];for(let n of this[zoe].values()){let a=n.deref();a&&r.push(a.destroy(t))}await Promise.all(r)}};wJn.exports=SCr});var ZJn=H((Liu,FJn)=>{"use strict";var DJn=wt("assert"),{Readable:mta}=wt("stream"),{RequestAbortedError:kJn,NotSupportedError:Cta,InvalidArgumentError:_ta}=Ub(),Pft=zC(),{ReadableStreamFrom:yta,toUSVString:bta}=zC(),vCr,XW=Symbol("kConsume"),Lft=Symbol("kReading"),qoe=Symbol("kBody"),TJn=Symbol("abort"),xJn=Symbol("kContentType"),RJn=()=>{};FJn.exports=class extends mta{constructor({resume:t,abort:r,contentType:n="",highWaterMark:a=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:a}),this._readableState.dataEmitted=!1,this[TJn]=r,this[XW]=null,this[qoe]=null,this[xJn]=n,this[Lft]=!1}destroy(t){return this.destroyed?this:(!t&&!this._readableState.endEmitted&&(t=new kJn),t&&this[TJn](),super.destroy(t))}emit(t,...r){return t==="data"?this._readableState.dataEmitted=!0:t==="error"&&(this._readableState.errorEmitted=!0),super.emit(t,...r)}on(t,...r){return(t==="data"||t==="readable")&&(this[Lft]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[Lft]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[XW]&&t!==null&&this.readableLength===0?(GJn(this[XW],t),this[Lft]?super.push(t):!0):super.push(t)}async text(){return Vft(this,"text")}async json(){return Vft(this,"json")}async blob(){return Vft(this,"blob")}async arrayBuffer(){return Vft(this,"arrayBuffer")}async formData(){throw new Cta}get bodyUsed(){return Pft.isDisturbed(this)}get body(){return this[qoe]||(this[qoe]=yta(this),this[XW]&&(this[qoe].getReader(),DJn(this[qoe].locked))),this[qoe]}dump(t){let r=t&&Number.isFinite(t.limit)?t.limit:262144,n=t&&t.signal;if(n)try{if(typeof n!="object"||!("aborted"in n))throw new _ta("signal must be an AbortSignal");Pft.throwIfAborted(n)}catch(a){return Promise.reject(a)}return this.closed?Promise.resolve(null):new Promise((a,o)=>{let l=n?Pft.addAbortListener(n,()=>{this.destroy()}):RJn;this.on("close",function(){l(),n&&n.aborted?o(n.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"})):a(null)}).on("error",RJn).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Eta(e){return e[qoe]&&e[qoe].locked===!0||e[XW]}function Sta(e){return Pft.isDisturbed(e)||Eta(e)}async function Vft(e,t){if(Sta(e))throw new TypeError("unusable");return DJn(!e[XW]),new Promise((r,n)=>{e[XW]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){BCr(this[XW],a)}).on("close",function(){this[XW].body!==null&&BCr(this[XW],new kJn)}),process.nextTick(vta,e[XW])})}function vta(e){if(e.body===null)return;let{_readableState:t}=e.stream;for(let r of t.buffer)GJn(e,r);for(t.endEmitted?NJn(this[XW]):e.stream.on("end",function(){NJn(this[XW])}),e.stream.resume();e.stream.read()!=null;);}function NJn(e){let{type:t,body:r,resolve:n,stream:a,length:o}=e;try{if(t==="text")n(bta(Buffer.concat(r)));else if(t==="json")n(JSON.parse(Buffer.concat(r)));else if(t==="arrayBuffer"){let l=new Uint8Array(o),A=0;for(let f of r)l.set(f,A),A+=f.byteLength;n(l.buffer)}else t==="blob"&&(vCr||(vCr=wt("buffer").Blob),n(new vCr(r,{type:a[xJn]})));BCr(e)}catch(l){a.destroy(l)}}function GJn(e,t){e.length+=t.length,e.body.push(t)}function BCr(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var wCr=H((Viu,VJn)=>{var Bta=wt("assert"),{ResponseStatusCodeError:Wft}=Ub(),{toUSVString:LJn}=zC();async function wta({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Bta(t);let l=[],A=0;for await(let f of t)if(l.push(f),A+=f.length,A>128*1024){l=null;break}if(n===204||!r||!l){process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o));return}try{if(r.startsWith("application/json")){let f=JSON.parse(LJn(Buffer.concat(l)));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}if(r.startsWith("text/")){let f=LJn(Buffer.concat(l));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}}catch{}process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o))}VJn.exports={getResolveErrorBodyCallback:wta}});var MBe=H((Piu,WJn)=>{var{addAbortListener:Tta}=zC(),{RequestAbortedError:Rta}=Ub(),OBe=Symbol("kListener"),$oe=Symbol("kSignal");function PJn(e){e.abort?e.abort():e.onError(new Rta)}function Nta(e,t){if(e[$oe]=null,e[OBe]=null,!!t){if(t.aborted){PJn(e);return}e[$oe]=t,e[OBe]=()=>{PJn(e)},Tta(e[$oe],e[OBe])}}function Dta(e){e[$oe]&&("removeEventListener"in e[$oe]?e[$oe].removeEventListener("abort",e[OBe]):e[$oe].removeListener("abort",e[OBe]),e[$oe]=null,e[OBe]=null)}WJn.exports={addSignal:Nta,removeSignal:Dta}});var HJn=H((Wiu,TCr)=>{"use strict";var kta=ZJn(),{InvalidArgumentError:HBe,RequestAbortedError:xta}=Ub(),y8=zC(),{getResolveErrorBodyCallback:Gta}=wCr(),{AsyncResource:Fta}=wt("async_hooks"),{addSignal:Zta,removeSignal:OJn}=MBe(),Oft=class extends Fta{constructor(t,r){if(!t||typeof t!="object")throw new HBe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new HBe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new HBe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new HBe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new HBe("invalid method");if(A&&typeof A!="function")throw new HBe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw y8.isStream(l)&&y8.destroy(l.on("error",y8.nop),b),b}this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,y8.isStream(l)&&l.on("error",b=>{this.onError(b)}),Zta(this,n)}onConnect(t,r){if(!this.callback)throw new xta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?y8.parseRawHeaders(r):y8.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let N=(I==="raw"?y8.parseHeaders(r):b)["content-type"],B=new kta({resume:n,abort:A,contentType:N,highWaterMark:C});this.callback=null,this.res=B,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Gta,null,{callback:o,body:B,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:B,context:f}))}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;OJn(this),y8.parseHeaders(t,this.trailers),r.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;OJn(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{y8.destroy(r,t)})),a&&(this.body=null,y8.destroy(a,t))}};function MJn(e,t){if(t===void 0)return new Promise((r,n)=>{MJn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Oft(e,t))}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}TCr.exports=MJn;TCr.exports.RequestHandler=Oft});var JJn=H((Oiu,XJn)=>{"use strict";var{finished:Lta,PassThrough:Vta}=wt("stream"),{InvalidArgumentError:YBe,InvalidReturnValueError:Pta,RequestAbortedError:Wta}=Ub(),RX=zC(),{getResolveErrorBodyCallback:Ota}=wCr(),{AsyncResource:Mta}=wt("async_hooks"),{addSignal:Hta,removeSignal:YJn}=MBe(),RCr=class extends Mta{constructor(t,r,n){if(!t||typeof t!="object")throw new YBe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new YBe("invalid callback");if(typeof r!="function")throw new YBe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new YBe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new YBe("invalid method");if(f&&typeof f!="function")throw new YBe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw RX.isStream(A)&&RX.destroy(A.on("error",RX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,RX.isStream(A)&&A.on("error",b=>{this.onError(b)}),Hta(this,a)}onConnect(t,r){if(!this.callback)throw new Wta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?RX.parseRawHeaders(r):RX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?RX.parseHeaders(r):C)["content-type"];b=new Vta,this.callback=null,this.runInAsyncScope(Ota,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new Pta("expected Writable");Lta(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&RX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState&&b._writableState.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;YJn(this),r&&(this.trailers=RX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;YJn(this),this.factory=null,r?(this.res=null,RX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,RX.destroy(o,t))}};function QJn(e,t,r){if(r===void 0)return new Promise((n,a)=>{QJn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new RCr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e&&e.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}XJn.exports=QJn});var jJn=H((Miu,KJn)=>{"use strict";var{Readable:UJn,Duplex:Yta,PassThrough:Qta}=wt("stream"),{InvalidArgumentError:LHe,InvalidReturnValueError:Xta,RequestAbortedError:Mft}=Ub(),vM=zC(),{AsyncResource:Jta}=wt("async_hooks"),{addSignal:Uta,removeSignal:Kta}=MBe(),jta=wt("assert"),QBe=Symbol("resume"),NCr=class extends UJn{constructor(){super({autoDestroy:!0}),this[QBe]=null}_read(){let{[QBe]:t}=this;t&&(this[QBe]=null,t())}_destroy(t,r){this._read(),r(t)}},DCr=class extends UJn{constructor(t){super({autoDestroy:!0}),this[QBe]=t}_read(){this[QBe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Mft),r(t)}},kCr=class extends Jta{constructor(t,r){if(!t||typeof t!="object")throw new LHe("invalid opts");if(typeof r!="function")throw new LHe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new LHe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new LHe("invalid method");if(l&&typeof l!="function")throw new LHe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new NCr().on("error",vM.nop),this.ret=new Yta({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f&&f.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[QBe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Mft),B&&f&&B(),vM.destroy(C,f),vM.destroy(b,f),vM.destroy(E,f),Kta(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,Uta(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(jta(!a,"pipeline cannot be retried"),n.destroyed)throw new Mft;this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new DCr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",vM.nop),f}if(!A||typeof A.on!="function")throw new Xta("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;vM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||vM.destroy(f,new Mft)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,vM.destroy(r,t)}};function zta(e,t){try{let r=new kCr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new Qta().destroy(r)}}KJn.exports=zta});var tUn=H((Hiu,eUn)=>{"use strict";var{InvalidArgumentError:xCr,RequestAbortedError:qta,SocketError:$ta}=Ub(),{AsyncResource:era}=wt("async_hooks"),zJn=zC(),{addSignal:tra,removeSignal:qJn}=MBe(),rra=wt("assert"),GCr=class extends era{constructor(t,r){if(!t||typeof t!="object")throw new xCr("invalid opts");if(typeof r!="function")throw new xCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new xCr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,tra(this,n)}onConnect(t,r){if(!this.callback)throw new qta;this.abort=t,this.context=null}onHeaders(){throw new $ta("bad upgrade",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;rra.strictEqual(t,101),qJn(this),this.callback=null;let A=this.responseHeaders==="raw"?zJn.parseRawHeaders(r):zJn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;qJn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $Jn(e,t){if(t===void 0)return new Promise((r,n)=>{$Jn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new GCr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eUn.exports=$Jn});var oUn=H((Yiu,sUn)=>{"use strict";var{AsyncResource:nra}=wt("async_hooks"),{InvalidArgumentError:FCr,RequestAbortedError:ira,SocketError:sra}=Ub(),rUn=zC(),{addSignal:ora,removeSignal:nUn}=MBe(),ZCr=class extends nra{constructor(t,r){if(!t||typeof t!="object")throw new FCr("invalid opts");if(typeof r!="function")throw new FCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new FCr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,ora(this,n)}onConnect(t,r){if(!this.callback)throw new ira;this.abort=t,this.context=r}onHeaders(){throw new sra("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nUn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rUn.parseRawHeaders(r):rUn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nUn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iUn(e,t){if(t===void 0)return new Promise((r,n)=>{iUn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new ZCr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sUn.exports=iUn});var aUn=H((Qiu,XBe)=>{"use strict";XBe.exports.request=HJn();XBe.exports.stream=JJn();XBe.exports.pipeline=jJn();XBe.exports.upgrade=tUn();XBe.exports.connect=oUn()});var VCr=H((Xiu,cUn)=>{"use strict";var{UndiciError:ara}=Ub(),LCr=class e extends ara{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cUn.exports={MockNotMatchedError:LCr}});var JBe=H((Jiu,lUn)=>{"use strict";lUn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var VHe=H((Uiu,yUn)=>{"use strict";var{MockNotMatchedError:YIe}=VCr(),{kDispatches:Hft,kMockAgent:cra,kOriginalDispatch:lra,kOrigin:ura,kGetNetConnect:gra}=JBe(),{buildURL:Ara,nop:dra}=zC(),{STATUS_CODES:pra}=wt("http"),{types:{isPromise:fra}}=wt("util");function x$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gUn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function AUn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=AUn(t,r);if(!x$(n,a))return!1}return!0}function uUn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function Ira(e,{path:t,method:r,body:n,headers:a}){let o=x$(e.path,t),l=x$(e.method,r),A=typeof e.body<"u"?x$(e.body,n):!0,f=pUn(e,a);return o&&l&&A&&f}function fUn(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function IUn(e,t){let r=t.query?Ara(t.path,t.query):t.path,n=typeof r=="string"?uUn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>x$(uUn(o),n));if(a.length===0)throw new YIe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>x$(o,t.method)),a.length===0)throw new YIe(`Mock dispatch not matched for method '${t.method}'`);if(a=a.filter(({body:o})=>typeof o<"u"?x$(o,t.body):!0),a.length===0)throw new YIe(`Mock dispatch not matched for body '${t.body}'`);if(a=a.filter(o=>pUn(o,t.headers)),a.length===0)throw new YIe(`Mock dispatch not matched for headers '${typeof t.headers=="object"?JSON.stringify(t.headers):t.headers}'`);return a[0]}function hra(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function PCr(e,t){let r=e.findIndex(n=>n.consumed?Ira(n,t):!1);r!==-1&&e.splice(r,1)}function hUn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function WCr(e){return Object.entries(e).reduce((t,[r,n])=>[...t,Buffer.from(`${r}`),Array.isArray(n)?n.map(a=>Buffer.from(`${a}`)):Buffer.from(`${n}`)],[])}function mUn(e){return pra[e]||"unknown"}async function mra(e){let t=[];for await(let r of e)t.push(r);return Buffer.concat(t).toString("utf8")}function CUn(e,t){let r=hUn(e),n=IUn(this[Hft],r);n.timesInvoked++,n.data.callback&&(n.data={...n.data,...n.data.callback(e)});let{data:{statusCode:a,data:o,headers:l,trailers:A,error:f},delay:I,persist:C}=n,{timesInvoked:b,times:E}=n;if(n.consumed=!C&&b>=E,n.pending=b0?setTimeout(()=>{N(this[Hft])},I):N(this[Hft]);function N(F,Q=o){let X=Array.isArray(e.headers)?dUn(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(fra(ae)){ae.then(ue=>N(F,ue));return}let ne=fUn(ae),ce=WCr(l),fe=WCr(A);t.abort=dra,t.onHeaders(a,ce,B,mUn(a)),t.onData(Buffer.from(ne)),t.onComplete(fe),PCr(F,r)}function B(){}return!0}function Cra(){let e=this[cra],t=this[ura],r=this[lra];return function(a,o){if(e.isMockActive)try{CUn.call(this,a,o)}catch(l){if(l instanceof YIe){let A=e[gra]();if(A===!1)throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(_Un(A,t))r.call(this,a,o);else throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function _Un(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>x$(n,r.host)))}function _ra(e){if(e){let{agent:t,...r}=e;return r}}yUn.exports={getResponseData:fUn,getMockDispatch:IUn,addMockDispatch:hra,deleteMockDispatch:PCr,buildKey:hUn,generateKeyValues:WCr,matchValue:x$,getResponse:mra,getStatusText:mUn,mockDispatch:CUn,buildMockDispatch:Cra,checkNetConnect:_Un,buildMockOptions:_ra,getHeaderByName:AUn}});var JCr=H((Kiu,XCr)=>{"use strict";var{getResponseData:yra,buildKey:bra,addMockDispatch:OCr}=VHe(),{kDispatches:Yft,kDispatchKey:Qft,kDefaultHeaders:MCr,kDefaultTrailers:HCr,kContentLength:YCr,kMockDispatch:Xft}=JBe(),{InvalidArgumentError:NX}=Ub(),{buildURL:Era}=zC(),UBe=class{constructor(t){this[Xft]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("waitInMs must be a valid integer > 0");return this[Xft].delay=t,this}persist(){return this[Xft].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("repeatTimes must be a valid integer > 0");return this[Xft].times=t,this}},QCr=class{constructor(t,r){if(typeof t!="object")throw new NX("opts must be an object");if(typeof t.path>"u")throw new NX("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=Era(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Qft]=bra(t),this[Yft]=r,this[MCr]={},this[HCr]={},this[YCr]=!1}createMockScopeDispatchData(t,r,n={}){let a=yra(r),o=this[YCr]?{"content-length":a.length}:{},l={...this[MCr],...o,...n.headers},A={...this[HCr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t,r,n){if(typeof t>"u")throw new NX("statusCode must be defined");if(typeof r>"u")throw new NX("data must be defined");if(typeof n!="object")throw new NX("responseOptions must be an object")}reply(t){if(typeof t=="function"){let A=I=>{let C=t(I);if(typeof C!="object")throw new NX("reply options callback must return an object");let{statusCode:b,data:E="",responseOptions:N={}}=C;return this.validateReplyParameters(b,E,N),{...this.createMockScopeDispatchData(b,E,N)}},f=OCr(this[Yft],this[Qft],A);return new UBe(f)}let[r,n="",a={}]=[...arguments];this.validateReplyParameters(r,n,a);let o=this.createMockScopeDispatchData(r,n,a),l=OCr(this[Yft],this[Qft],o);return new UBe(l)}replyWithError(t){if(typeof t>"u")throw new NX("error must be defined");let r=OCr(this[Yft],this[Qft],{error:t});return new UBe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new NX("headers must be defined");return this[MCr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new NX("trailers must be defined");return this[HCr]=t,this}replyContentLength(){return this[YCr]=!0,this}};XCr.exports.MockInterceptor=QCr;XCr.exports.MockScope=UBe});var jCr=H((jiu,TUn)=>{"use strict";var{promisify:Sra}=wt("util"),vra=kHe(),{buildMockDispatch:Bra}=VHe(),{kDispatches:bUn,kMockAgent:EUn,kClose:SUn,kOriginalClose:vUn,kOrigin:BUn,kOriginalDispatch:wra,kConnected:UCr}=JBe(),{MockInterceptor:Tra}=JCr(),wUn=GE(),{InvalidArgumentError:Rra}=Ub(),KCr=class extends vra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Rra("Argument opts.agent must implement Agent");this[EUn]=r.agent,this[BUn]=t,this[bUn]=[],this[UCr]=1,this[wra]=this.dispatch,this[vUn]=this.close.bind(this),this.dispatch=Bra.call(this),this.close=this[SUn]}get[wUn.kConnected](){return this[UCr]}intercept(t){return new Tra(t,this[bUn])}async[SUn](){await Sra(this[vUn])(),this[UCr]=0,this[EUn][wUn.kClients].delete(this[BUn])}};TUn.exports=KCr});var $Cr=H((ziu,FUn)=>{"use strict";var{promisify:Nra}=wt("util"),Dra=WBe(),{buildMockDispatch:kra}=VHe(),{kDispatches:RUn,kMockAgent:NUn,kClose:DUn,kOriginalClose:kUn,kOrigin:xUn,kOriginalDispatch:xra,kConnected:zCr}=JBe(),{MockInterceptor:Gra}=JCr(),GUn=GE(),{InvalidArgumentError:Fra}=Ub(),qCr=class extends Dra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Fra("Argument opts.agent must implement Agent");this[NUn]=r.agent,this[xUn]=t,this[RUn]=[],this[zCr]=1,this[xra]=this.dispatch,this[kUn]=this.close.bind(this),this.dispatch=kra.call(this),this.close=this[DUn]}get[GUn.kConnected](){return this[zCr]}intercept(t){return new Gra(t,this[RUn])}async[DUn](){await Nra(this[kUn])(),this[zCr]=0,this[NUn][GUn.kClients].delete(this[xUn])}};FUn.exports=qCr});var LUn=H(($iu,ZUn)=>{"use strict";var Zra={pronoun:"it",is:"is",was:"was",this:"this"},Lra={pronoun:"they",is:"are",was:"were",this:"these"};ZUn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Zra:Lra,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var PUn=H((tsu,VUn)=>{"use strict";var{Transform:Vra}=wt("stream"),{Console:Pra}=wt("console");VUn.exports=class{constructor({disableColors:t}={}){this.transform=new Vra({transform(r,n,a){a(null,r)}}),this.logger=new Pra({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?"\u2705":"\u274C",Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var HUn=H((rsu,MUn)=>{"use strict";var{kClients:QIe}=GE(),Wra=ZHe(),{kAgent:e_r,kMockAgentSet:Jft,kMockAgentGet:WUn,kDispatches:t_r,kIsMockActive:Uft,kNetConnect:XIe,kGetNetConnect:Ora,kOptions:Kft,kFactory:jft}=JBe(),Mra=jCr(),Hra=$Cr(),{matchValue:Yra,buildMockOptions:Qra}=VHe(),{InvalidArgumentError:OUn,UndiciError:Xra}=Ub(),Jra=Ift(),Ura=LUn(),Kra=PUn(),r_r=class{constructor(t){this.value=t}deref(){return this.value}},n_r=class extends Jra{constructor(t){if(super(t),this[XIe]=!0,this[Uft]=!0,t&&t.agent&&typeof t.agent.dispatch!="function")throw new OUn("Argument opts.agent must implement Agent");let r=t&&t.agent?t.agent:new Wra(t);this[e_r]=r,this[QIe]=r[QIe],this[Kft]=Qra(t)}get(t){let r=this[WUn](t);return r||(r=this[jft](t),this[Jft](t,r)),r}dispatch(t,r){return this.get(t.origin),this[e_r].dispatch(t,r)}async close(){await this[e_r].close(),this[QIe].clear()}deactivate(){this[Uft]=!1}activate(){this[Uft]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[XIe])?this[XIe].push(t):this[XIe]=[t];else if(typeof t>"u")this[XIe]=!0;else throw new OUn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[XIe]=!1}get isMockActive(){return this[Uft]}[Jft](t,r){this[QIe].set(t,new r_r(r))}[jft](t){let r=Object.assign({agent:this},this[Kft]);return this[Kft]&&this[Kft].connections===1?new Mra(t,r):new Hra(t,r)}[WUn](t){let r=this[QIe].get(t);if(r)return r.deref();if(typeof t!="string"){let n=this[jft]("http://localhost:9999");return this[Jft](t,n),n}for(let[n,a]of Array.from(this[QIe])){let o=a.deref();if(o&&typeof n!="string"&&Yra(n,t)){let l=this[jft](t);return this[Jft](t,l),l[t_r]=o[t_r],l}}}[Ora](){return this[XIe]}pendingInterceptors(){let t=this[QIe];return Array.from(t.entries()).flatMap(([r,n])=>n.deref()[t_r].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new Kra}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new Ura("interceptor","interceptors").pluralize(r.length);throw new Xra(` ${n.count} ${n.noun} ${n.is} pending: ${t.format(r)} -`.trim())}};MUn.exports=n_r});var KUn=H((rsu,UUn)=>{"use strict";var{kProxy:jra,kClose:zra,kDestroy:qra,kInterceptors:$ra}=GE(),{URL:YUn}=wt("url"),QUn=ZHe(),ena=WBe(),tna=EHe(),{InvalidArgumentError:OHe,RequestAbortedError:rna}=Ub(),XUn=SHe(),PHe=Symbol("proxy agent"),zft=Symbol("proxy client"),WHe=Symbol("proxy headers"),i_r=Symbol("request tls settings"),nna=Symbol("proxy tls settings"),JUn=Symbol("connect endpoint function");function ina(e){return e==="https:"?443:80}function sna(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new OHe("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function ona(e,t){return new ena(e,t)}var s_r=class extends tna{constructor(t){if(super(t),this[jra]=sna(t),this[PHe]=new QUn(t),this[$ra]=t.interceptors&&t.interceptors.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],typeof t=="string"&&(t={uri:t}),!t||!t.uri)throw new OHe("Proxy opts.uri is mandatory");let{clientFactory:r=ona}=t;if(typeof r!="function")throw new OHe("Proxy opts.clientFactory must be a function.");this[i_r]=t.requestTls,this[nna]=t.proxyTls,this[WHe]=t.headers||{};let n=new YUn(t.uri),{origin:a,port:o,host:l,username:A,password:f}=n;if(t.auth&&t.token)throw new OHe("opts.auth cannot be used in combination with opts.token");t.auth?this[WHe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[WHe]["proxy-authorization"]=t.token:A&&f&&(this[WHe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(A)}:${decodeURIComponent(f)}`).toString("base64")}`);let I=XUn({...t.proxyTls});this[JUn]=XUn({...t.requestTls}),this[zft]=r(n,{connect:I}),this[PHe]=new QUn({...t,connect:async(C,b)=>{let E=C.host;C.port||(E+=`:${ina(C.protocol)}`);try{let{socket:N,statusCode:B}=await this[zft].connect({origin:a,port:o,path:E,signal:C.signal,headers:{...this[WHe],host:l}});if(B!==200&&(N.on("error",()=>{}).destroy(),b(new rna(`Proxy response (${B}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){b(null,N);return}let F;this[i_r]?F=this[i_r].servername:F=C.servername,this[JUn]({...C,servername:F,httpSocket:N},b)}catch(N){b(N)}}})}dispatch(t,r){let{host:n}=new YUn(t.origin),a=ana(t.headers);return cna(a),this[PHe].dispatch({...t,headers:{...a,host:n}},r)}async[zra](){await this[PHe].close(),await this[zft].close()}async[qra](){await this[PHe].destroy(),await this[zft].destroy()}};function ana(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new OHe("Proxy-Authorization should be sent in ProxyAgent constructor")}UUn.exports=s_r});var eKn=H((nsu,$Un)=>{var JIe=wt("assert"),{kRetryHandlerDefaultRetry:jUn}=GE(),{RequestRetryError:qft}=Ub(),{isDisturbed:zUn,parseHeaders:lna,parseRangeHeader:qUn}=zC();function una(e){let t=Date.now();return new Date(e).getTime()-t}var o_r=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts=a,this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[jUn],retryAfter:E??!0,maxTimeout:A??30*1e3,timeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]},this.retryCount=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[jUn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,timeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X,currentTimeout:ae}=r;if(ae=ae!=null&&ae>0?ae:b,l&&l!=="UND_ERR_REQ_RETRY"&&l!=="UND_ERR_SOCKET"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ne=A!=null&&A["retry-after"];ne&&(ne=Number(ne),ne=isNaN(ne)?una(ne):ne*1e3);let ce=ne>0?Math.min(ne,E):Math.min(ae*N**X,E);r.currentTimeout=ce,setTimeout(()=>a(null),ce)}onHeaders(t,r,n,a){let o=lna(r);if(this.retryCount+=1,t>=300)return this.abort(new qft("Request failed",t,{headers:o,count:this.retryCount})),!1;if(this.resume!=null){if(this.resume=null,t!==206)return!0;let A=qUn(o["content-range"]);if(!A)return this.abort(new qft("Content-Range mismatch",t,{headers:o,count:this.retryCount})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new qft("ETag mismatch",t,{headers:o,count:this.retryCount})),!1;let{start:f,size:I,end:C=I}=A;return JIe(this.start===f,"content-range mismatch"),JIe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=qUn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;JIe(f!=null&&Number.isFinite(f)&&this.start!==f,"content-range mismatch"),JIe(Number.isFinite(f)),JIe(C!=null&&Number.isFinite(C)&&this.end!==C,"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return JIe(Number.isFinite(this.start)),JIe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.handler.onHeaders(t,r,n,a)}let l=new qft("Request failed",t,{headers:o,count:this.retryCount});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||zUn(this.opts.body))return this.handler.onError(t);this.retryOpts.retry(t,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||zUn(this.opts.body))return this.handler.onError(n);this.start!==0&&(this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}});try{this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};$Un.exports=o_r});var KBe=H((isu,iKn)=>{"use strict";var tKn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:gna}=Ub(),Ana=ZHe();nKn()===void 0&&rKn(new Ana);function rKn(e){if(!e||typeof e.dispatch!="function")throw new gna("Argument agent must implement Agent");Object.defineProperty(globalThis,tKn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function nKn(){return globalThis[tKn]}iKn.exports={setGlobalDispatcher:rKn,getGlobalDispatcher:nKn}});var oKn=H((osu,sKn)=>{"use strict";sKn.exports=class{constructor(t){this.handler=t}onConnect(...t){return this.handler.onConnect(...t)}onError(...t){return this.handler.onError(...t)}onUpgrade(...t){return this.handler.onUpgrade(...t)}onHeaders(...t){return this.handler.onHeaders(...t)}onData(...t){return this.handler.onData(...t)}onComplete(...t){return this.handler.onComplete(...t)}onBodySent(...t){return this.handler.onBodySent(...t)}}});var UIe=H((asu,gKn)=>{"use strict";var{kHeadersList:z9,kConstruct:dna}=GE(),{kGuard:E8}=v$(),{kEnumerableProperty:b8}=zC(),{makeIterator:jBe,isValidHeaderName:MHe,isValidHeaderValue:cKn}=EM(),{webidl:sm}=xZ(),pna=wt("assert"),j9=Symbol("headers map"),Dk=Symbol("headers map sorted");function aKn(e){return e===10||e===13||e===9||e===32}function lKn(e){let t=0,r=e.length;for(;r>t&&aKn(e.charCodeAt(r-1));)--r;for(;r>t&&aKn(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function uKn(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function a_r(e,t,r){if(r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(e[E8]==="immutable")throw new TypeError("immutable");return e[E8],e[z9].append(t,r)}var $ft=class e{cookies=null;constructor(t){t instanceof e?(this[j9]=new Map(t[j9]),this[Dk]=t[Dk],this.cookies=t.cookies===null?null:[...t.cookies]):(this[j9]=new Map(t),this[Dk]=null)}contains(t){return t=t.toLowerCase(),this[j9].has(t)}clear(){this[j9].clear(),this[Dk]=null,this.cookies=null}append(t,r){this[Dk]=null;let n=t.toLowerCase(),a=this[j9].get(n);if(a){let o=n==="cookie"?"; ":", ";this[j9].set(n,{name:a.name,value:`${a.value}${o}${r}`})}else this[j9].set(n,{name:t,value:r});n==="set-cookie"&&(this.cookies??=[],this.cookies.push(r))}set(t,r){this[Dk]=null;let n=t.toLowerCase();n==="set-cookie"&&(this.cookies=[r]),this[j9].set(n,{name:t,value:r})}delete(t){this[Dk]=null,t=t.toLowerCase(),t==="set-cookie"&&(this.cookies=null),this[j9].delete(t)}get(t){let r=this[j9].get(t.toLowerCase());return r===void 0?null:r.value}*[Symbol.iterator](){for(let[t,{value:r}]of this[j9])yield[t,r]}get entries(){let t={};if(this[j9].size)for(let{name:r,value:n}of this[j9].values())t[r]=n;return t}},zBe=class e{constructor(t=void 0){t!==dna&&(this[z9]=new $ft,this[E8]="none",t!==void 0&&(t=sm.converters.HeadersInit(t),uKn(this,t)))}append(t,r){return sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.append"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),a_r(this,t,r)}delete(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].contains(t)&&this[z9].delete(t)}get(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.get"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.get",value:t,type:"header name"});return this[z9].get(t)}has(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.has"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.has",value:t,type:"header name"});return this[z9].contains(t)}set(t,r){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.set"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.set",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].set(t,r)}getSetCookie(){sm.brandCheck(this,e);let t=this[z9].cookies;return t?[...t]:[]}get[Dk](){if(this[z9][Dk])return this[z9][Dk];let t=[],r=[...this[z9]].sort((a,o)=>a[0]t,"Headers","key")}return jBe(()=>[...this[Dk].values()],"Headers","key")}values(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","value")}return jBe(()=>[...this[Dk].values()],"Headers","value")}entries(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","key+value")}return jBe(()=>[...this[Dk].values()],"Headers","key+value")}forEach(t,r=globalThis){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}[Symbol.for("nodejs.util.inspect.custom")](){return sm.brandCheck(this,e),this[z9]}};zBe.prototype[Symbol.iterator]=zBe.prototype.entries;Object.defineProperties(zBe.prototype,{append:b8,delete:b8,get:b8,has:b8,set:b8,getSetCookie:b8,keys:b8,values:b8,entries:b8,forEach:b8,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});sm.converters.HeadersInit=function(e){if(sm.util.Type(e)==="Object")return e[Symbol.iterator]?sm.converters["sequence>"](e):sm.converters["record"](e);throw sm.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};gKn.exports={fill:uKn,Headers:zBe,HeadersList:$ft}});var nIt=H((csu,CKn)=>{"use strict";var{Headers:fna,HeadersList:AKn,fill:Ina}=UIe(),{extractBody:dKn,cloneBody:hna,mixinBody:mna}=_He(),u_r=zC(),{kEnumerableProperty:UW}=u_r,{isValidReasonPhrase:Cna,isCancelled:_na,isAborted:yna,isBlobLike:bna,serializeJavascriptValueToJSONString:Ena,isErrorLike:Sna,isomorphicEncode:vna}=EM(),{redirectStatusSet:Bna,nullBodyStatus:wna,DOMException:pKn}=Xoe(),{kState:v2,kHeaders:$N,kGuard:qBe,kRealm:JW}=v$(),{webidl:Wh}=xZ(),{FormData:Tna}=dft(),{getGlobalOrigin:Rna}=wBe(),{URLSerializer:fKn}=wX(),{kHeadersList:c_r,kConstruct:Nna}=GE(),g_r=wt("assert"),{types:l_r}=wt("util"),hKn=globalThis.ReadableStream||wt("stream/web").ReadableStream,Dna=new TextEncoder("utf-8"),$Be=class e{static error(){let t={settingsObject:{}},r=new e;return r[v2]=tIt(),r[JW]=t,r[$N][c_r]=r[v2].headersList,r[$N][qBe]="immutable",r[$N][JW]=t,r}static json(t,r={}){Wh.argumentLengthCheck(arguments,1,{header:"Response.json"}),r!==null&&(r=Wh.converters.ResponseInit(r));let n=Dna.encode(Ena(t)),a=dKn(n),o={settingsObject:{}},l=new e;return l[JW]=o,l[$N][qBe]="response",l[$N][JW]=o,IKn(l,r,{body:a[0],type:"application/json"}),l}static redirect(t,r=302){let n={settingsObject:{}};Wh.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),t=Wh.converters.USVString(t),r=Wh.converters["unsigned short"](r);let a;try{a=new URL(t,Rna())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+t),{cause:A})}if(!Bna.has(r))throw new RangeError("Invalid status code "+r);let o=new e;o[JW]=n,o[$N][qBe]="immutable",o[$N][JW]=n,o[v2].status=r;let l=vna(fKn(a));return o[v2].headersList.append("location",l),o}constructor(t=null,r={}){t!==null&&(t=Wh.converters.BodyInit(t)),r=Wh.converters.ResponseInit(r),this[JW]={settingsObject:{}},this[v2]=rIt({}),this[$N]=new fna(Nna),this[$N][qBe]="response",this[$N][c_r]=this[v2].headersList,this[$N][JW]=this[JW];let n=null;if(t!=null){let[a,o]=dKn(t);n={body:a,type:o}}IKn(this,r,n)}get type(){return Wh.brandCheck(this,e),this[v2].type}get url(){Wh.brandCheck(this,e);let t=this[v2].urlList,r=t[t.length-1]??null;return r===null?"":fKn(r,!0)}get redirected(){return Wh.brandCheck(this,e),this[v2].urlList.length>1}get status(){return Wh.brandCheck(this,e),this[v2].status}get ok(){return Wh.brandCheck(this,e),this[v2].status>=200&&this[v2].status<=299}get statusText(){return Wh.brandCheck(this,e),this[v2].statusText}get headers(){return Wh.brandCheck(this,e),this[$N]}get body(){return Wh.brandCheck(this,e),this[v2].body?this[v2].body.stream:null}get bodyUsed(){return Wh.brandCheck(this,e),!!this[v2].body&&u_r.isDisturbed(this[v2].body.stream)}clone(){if(Wh.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw Wh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=A_r(this[v2]),r=new e;return r[v2]=t,r[JW]=this[JW],r[$N][c_r]=t.headersList,r[$N][qBe]=this[$N][qBe],r[$N][JW]=this[$N][JW],r}};mna($Be);Object.defineProperties($Be.prototype,{type:UW,url:UW,status:UW,ok:UW,redirected:UW,statusText:UW,headers:UW,clone:UW,body:UW,bodyUsed:UW,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties($Be,{json:UW,redirect:UW,error:UW});function A_r(e){if(e.internalResponse)return mKn(A_r(e.internalResponse),e.type);let t=rIt({...e,body:null});return e.body!=null&&(t.body=hna(e.body)),t}function rIt(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new AKn(e.headersList):new AKn,urlList:e.urlList?[...e.urlList]:[]}}function tIt(e){let t=Sna(e);return rIt({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function eIt(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return g_r(!(n in t)),r[n]=a,!0}})}function mKn(e,t){if(t==="basic")return eIt(e,{type:"basic",headersList:e.headersList});if(t==="cors")return eIt(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return eIt(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return eIt(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});g_r(!1)}function kna(e,t=null){return g_r(_na(e)),yna(e)?tIt(Object.assign(new pKn("The operation was aborted.","AbortError"),{cause:t})):tIt(Object.assign(new pKn("Request was cancelled."),{cause:t}))}function IKn(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!Cna(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[v2].status=t.status),"statusText"in t&&t.statusText!=null&&(e[v2].statusText=t.statusText),"headers"in t&&t.headers!=null&&Ina(e[$N],t.headers),r){if(wna.includes(e.status))throw Wh.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[v2].body=r.body,r.type!=null&&!e[v2].headersList.contains("Content-Type")&&e[v2].headersList.append("content-type",r.type)}}Wh.converters.ReadableStream=Wh.interfaceConverter(hKn);Wh.converters.FormData=Wh.interfaceConverter(Tna);Wh.converters.URLSearchParams=Wh.interfaceConverter(URLSearchParams);Wh.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?Wh.converters.USVString(e):bna(e)?Wh.converters.Blob(e,{strict:!1}):l_r.isArrayBuffer(e)||l_r.isTypedArray(e)||l_r.isDataView(e)?Wh.converters.BufferSource(e):u_r.isFormDataLike(e)?Wh.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?Wh.converters.URLSearchParams(e):Wh.converters.DOMString(e)};Wh.converters.BodyInit=function(e){return e instanceof hKn?Wh.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:Wh.converters.XMLHttpRequestBodyInit(e)};Wh.converters.ResponseInit=Wh.dictionaryConverter([{key:"status",converter:Wh.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:Wh.converters.ByteString,defaultValue:""},{key:"headers",converter:Wh.converters.HeadersInit}]);CKn.exports={makeNetworkError:tIt,makeResponse:rIt,makeAppropriateNetworkError:kna,filterResponse:mKn,Response:$Be,cloneResponse:A_r}});var QHe=H((lsu,vKn)=>{"use strict";var{extractBody:xna,mixinBody:Gna,cloneBody:Fna}=_He(),{Headers:_Kn,fill:Zna,HeadersList:aIt}=UIe(),{FinalizationRegistry:Lna}=bCr()(),YHe=zC(),{isValidHTTPToken:Vna,sameOrigin:yKn,normalizeMethod:Pna,makePolicyContainer:Wna,normalizeMethodRecord:Ona}=EM(),{forbiddenMethodsSet:Mna,corsSafeListedMethodsSet:Hna,referrerPolicy:Yna,requestRedirect:Qna,requestMode:Xna,requestCredentials:Jna,requestCache:Una,requestDuplex:Kna}=Xoe(),{kEnumerableProperty:oT}=YHe,{kHeaders:yG,kSignal:HHe,kState:P1,kGuard:iIt,kRealm:KW}=v$(),{webidl:Ff}=xZ(),{getGlobalOrigin:jna}=wBe(),{URLSerializer:zna}=wX(),{kHeadersList:sIt,kConstruct:oIt}=GE(),qna=wt("assert"),{getMaxListeners:bKn,setMaxListeners:EKn,getEventListeners:$na,defaultMaxListeners:SKn}=wt("events"),d_r=globalThis.TransformStream,eia=Symbol("abortController"),tia=new Lna(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),KIe=class e{constructor(t,r={}){if(t===oIt)return;Ff.argumentLengthCheck(arguments,1,{header:"Request constructor"}),t=Ff.converters.RequestInfo(t),r=Ff.converters.RequestInit(r),this[KW]={settingsObject:{baseUrl:jna(),get origin(){return this.baseUrl?.origin},policyContainer:Wna()}};let n=null,a=null,o=this[KW].settingsObject.baseUrl,l=null;if(typeof t=="string"){let Q;try{Q=new URL(t,o)}catch(X){throw new TypeError("Failed to parse URL from "+t,{cause:X})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);n=cIt({urlList:[Q]}),a="cors"}else qna(t instanceof e),n=t[P1],l=t[HHe];let A=this[KW].settingsObject.origin,f="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&yKn(n.window,A)&&(f=n.window),r.window!=null)throw new TypeError(`'window' option '${f}' must be null`);"window"in r&&(f="no-window"),n=cIt({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[KW].settingsObject,window:f,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let I=Object.keys(r).length!==0;if(I&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),r.referrer!==void 0){let Q=r.referrer;if(Q==="")n.referrer="no-referrer";else{let X;try{X=new URL(Q,o)}catch(ae){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:ae})}X.protocol==="about:"&&X.hostname==="client"||A&&!yKn(X,this[KW].settingsObject.baseUrl)?n.referrer="client":n.referrer=X}}r.referrerPolicy!==void 0&&(n.referrerPolicy=r.referrerPolicy);let C;if(r.mode!==void 0?C=r.mode:C=a,C==="navigate")throw Ff.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(C!=null&&(n.mode=C),r.credentials!==void 0&&(n.credentials=r.credentials),r.cache!==void 0&&(n.cache=r.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(n.redirect=r.redirect),r.integrity!=null&&(n.integrity=String(r.integrity)),r.keepalive!==void 0&&(n.keepalive=!!r.keepalive),r.method!==void 0){let Q=r.method;if(!Vna(Q))throw new TypeError(`'${Q}' is not a valid HTTP method.`);if(Mna.has(Q.toUpperCase()))throw new TypeError(`'${Q}' HTTP method is unsupported.`);Q=Ona[Q]??Pna(Q),n.method=Q}r.signal!==void 0&&(l=r.signal),this[P1]=n;let b=new AbortController;if(this[HHe]=b.signal,this[HHe][KW]=this[KW],l!=null){if(!l||typeof l.aborted!="boolean"||typeof l.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(l.aborted)b.abort(l.reason);else{this[eia]=b;let Q=new WeakRef(b),X=function(){let ae=Q.deref();ae!==void 0&&ae.abort(this.reason)};try{(typeof bKn=="function"&&bKn(l)===SKn||$na(l,"abort").length>=SKn)&&EKn(100,l)}catch{}YHe.addAbortListener(l,X),tia.register(b,{signal:l,abort:X})}}if(this[yG]=new _Kn(oIt),this[yG][sIt]=n.headersList,this[yG][iIt]="request",this[yG][KW]=this[KW],C==="no-cors"){if(!Hna.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);this[yG][iIt]="request-no-cors"}if(I){let Q=this[yG][sIt],X=r.headers!==void 0?r.headers:new aIt(Q);if(Q.clear(),X instanceof aIt){for(let[ae,ne]of X)Q.append(ae,ne);Q.cookies=X.cookies}else Zna(this[yG],X)}let E=t instanceof e?t[P1].body:null;if((r.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let N=null;if(r.body!=null){let[Q,X]=xna(r.body,n.keepalive);N=Q,X&&!this[yG][sIt].contains("content-type")&&this[yG].append("content-type",X)}let B=N??E;if(B!=null&&B.source==null){if(N!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let F=B;if(N==null&&E!=null){if(YHe.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");d_r||(d_r=wt("stream/web").TransformStream);let Q=new d_r;E.stream.pipeThrough(Q),F={source:E.source,length:E.length,stream:Q.readable}}this[P1].body=F}get method(){return Ff.brandCheck(this,e),this[P1].method}get url(){return Ff.brandCheck(this,e),zna(this[P1].url)}get headers(){return Ff.brandCheck(this,e),this[yG]}get destination(){return Ff.brandCheck(this,e),this[P1].destination}get referrer(){return Ff.brandCheck(this,e),this[P1].referrer==="no-referrer"?"":this[P1].referrer==="client"?"about:client":this[P1].referrer.toString()}get referrerPolicy(){return Ff.brandCheck(this,e),this[P1].referrerPolicy}get mode(){return Ff.brandCheck(this,e),this[P1].mode}get credentials(){return this[P1].credentials}get cache(){return Ff.brandCheck(this,e),this[P1].cache}get redirect(){return Ff.brandCheck(this,e),this[P1].redirect}get integrity(){return Ff.brandCheck(this,e),this[P1].integrity}get keepalive(){return Ff.brandCheck(this,e),this[P1].keepalive}get isReloadNavigation(){return Ff.brandCheck(this,e),this[P1].reloadNavigation}get isHistoryNavigation(){return Ff.brandCheck(this,e),this[P1].historyNavigation}get signal(){return Ff.brandCheck(this,e),this[HHe]}get body(){return Ff.brandCheck(this,e),this[P1].body?this[P1].body.stream:null}get bodyUsed(){return Ff.brandCheck(this,e),!!this[P1].body&&YHe.isDisturbed(this[P1].body.stream)}get duplex(){return Ff.brandCheck(this,e),"half"}clone(){if(Ff.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let t=ria(this[P1]),r=new e(oIt);r[P1]=t,r[KW]=this[KW],r[yG]=new _Kn(oIt),r[yG][sIt]=t.headersList,r[yG][iIt]=this[yG][iIt],r[yG][KW]=this[yG][KW];let n=new AbortController;return this.signal.aborted?n.abort(this.signal.reason):YHe.addAbortListener(this.signal,()=>{n.abort(this.signal.reason)}),r[HHe]=n.signal,r}};Gna(KIe);function cIt(e){let t={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new aIt(e.headersList):new aIt};return t.url=t.urlList[0],t}function ria(e){let t=cIt({...e,body:null});return e.body!=null&&(t.body=Fna(e.body)),t}Object.defineProperties(KIe.prototype,{method:oT,url:oT,headers:oT,redirect:oT,clone:oT,signal:oT,duplex:oT,destination:oT,body:oT,bodyUsed:oT,isHistoryNavigation:oT,isReloadNavigation:oT,keepalive:oT,integrity:oT,cache:oT,credentials:oT,attribute:oT,referrerPolicy:oT,referrer:oT,mode:oT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});Ff.converters.Request=Ff.interfaceConverter(KIe);Ff.converters.RequestInfo=function(e){return typeof e=="string"?Ff.converters.USVString(e):e instanceof KIe?Ff.converters.Request(e):Ff.converters.USVString(e)};Ff.converters.AbortSignal=Ff.interfaceConverter(AbortSignal);Ff.converters.RequestInit=Ff.dictionaryConverter([{key:"method",converter:Ff.converters.ByteString},{key:"headers",converter:Ff.converters.HeadersInit},{key:"body",converter:Ff.nullableConverter(Ff.converters.BodyInit)},{key:"referrer",converter:Ff.converters.USVString},{key:"referrerPolicy",converter:Ff.converters.DOMString,allowedValues:Yna},{key:"mode",converter:Ff.converters.DOMString,allowedValues:Xna},{key:"credentials",converter:Ff.converters.DOMString,allowedValues:Jna},{key:"cache",converter:Ff.converters.DOMString,allowedValues:Una},{key:"redirect",converter:Ff.converters.DOMString,allowedValues:Qna},{key:"integrity",converter:Ff.converters.DOMString},{key:"keepalive",converter:Ff.converters.boolean},{key:"signal",converter:Ff.nullableConverter(e=>Ff.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:Ff.converters.any},{key:"duplex",converter:Ff.converters.DOMString,allowedValues:Kna}]);vKn.exports={Request:KIe,makeRequest:cIt}});var fIt=H((usu,PKn)=>{"use strict";var{Response:nia,makeNetworkError:Kb,makeAppropriateNetworkError:lIt,filterResponse:p_r,makeResponse:uIt}=nIt(),{Headers:BKn}=UIe(),{Request:iia,makeRequest:sia}=QHe(),XHe=wt("zlib"),{bytesMatch:oia,makePolicyContainer:aia,clonePolicyContainer:cia,requestBadPort:lia,TAOCheck:uia,appendRequestOriginHeader:gia,responseLocationURL:Aia,requestCurrentURL:S8,setRequestReferrerPolicyOnRedirect:dia,tryUpgradeRequestToAPotentiallyTrustworthyURL:pia,createOpaqueTimingInfo:E_r,appendFetchMetadata:fia,corsCheck:Iia,crossOriginResourcePolicyCheck:hia,determineRequestsReferrer:mia,coarsenedSharedCurrentTime:S_r,createDeferredPromise:Cia,isBlobLike:_ia,sameOrigin:__r,isCancelled:twe,isAborted:wKn,isErrorLike:yia,fullyReadBody:DKn,readableStreamClose:bia,isomorphicEncode:y_r,urlIsLocal:Eia,urlIsHttpHttpsScheme:v_r,urlHasHttpsScheme:Sia}=EM(),{kState:b_r,kHeaders:f_r,kGuard:via,kRealm:TKn}=v$(),rwe=wt("assert"),{safelyExtractBody:gIt}=_He(),{redirectStatusSet:kKn,nullBodyStatus:xKn,safeMethodsSet:Bia,requestBodyHeader:wia,subresourceSet:Tia,DOMException:AIt}=Xoe(),{kHeadersList:ewe}=GE(),Ria=wt("events"),{Readable:Nia,pipeline:Dia}=wt("stream"),{addAbortListener:kia,isErrored:xia,isReadable:dIt,nodeMajor:RKn,nodeMinor:Gia}=zC(),{dataURLProcessor:Fia,serializeAMimeType:Zia}=wX(),{TransformStream:Lia}=wt("stream/web"),{getGlobalDispatcher:Via}=KBe(),{webidl:Pia}=xZ(),{STATUS_CODES:Wia}=wt("http"),Oia=["GET","HEAD"],I_r,h_r=globalThis.ReadableStream,pIt=class extends Ria{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new AIt("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function Mia(e,t={}){Pia.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let r=Cia(),n;try{n=new iia(e,t)}catch(E){return r.reject(E),r.promise}let a=n[b_r];if(n.signal.aborted)return m_r(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=null,f=!1,I=null;return kia(n.signal,()=>{f=!0,rwe(I!=null),I.abort(n.signal.reason),m_r(r,a,l,n.signal.reason)}),I=FKn({request:a,processResponseEndOfBody:E=>GKn(E,"fetch"),processResponse:E=>{if(f)return Promise.resolve();if(E.aborted)return m_r(r,a,l,I.serializedAbortReason),Promise.resolve();if(E.type==="error")return r.reject(Object.assign(new TypeError("fetch failed"),{cause:E.error})),Promise.resolve();l=new nia,l[b_r]=E,l[TKn]=A,l[f_r][ewe]=E.headersList,l[f_r][via]="immutable",l[f_r][TKn]=A,r.resolve(l)},dispatcher:t.dispatcher??Via()}),r.promise}function GKn(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;v_r(r)&&n!==null&&(e.timingAllowPassed||(n=E_r({startTime:n.startTime}),a=""),n.endTime=S_r(),e.timingInfo=n,Hia(n,r,t,globalThis,a))}function Hia(e,t,r,n,a){(RKn>18||RKn===18&&Gia>=2)&&performance.markResourceTiming(e,t.href,r,n,a)}function m_r(e,t,r,n){if(n||(n=new AIt("The operation was aborted.","AbortError")),e.reject(n),t.body!=null&&dIt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[b_r];a.body!=null&&dIt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function FKn({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A}){let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=S_r(I),b=E_r({startTime:C}),E={controller:new pIt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return rwe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=cia(e.client.policyContainer):e.policyContainer=aia()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,Tia.has(e.destination),ZKn(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function ZKn(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!Eia(S8(r))&&(n=Kb("local URLs only")),pia(r),lia(r)==="blocked"&&(n=Kb("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=mia(r)),n===null&&(n=await(async()=>{let o=S8(r);return __r(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await NKn(e)):r.mode==="same-origin"?Kb('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?Kb('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await NKn(e)):v_r(S8(r))?(r.responseTainting="cors",await LKn(e)):Kb("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=p_r(n,"basic"):r.responseTainting==="cors"?n=p_r(n,"cors"):r.responseTainting==="opaque"?n=p_r(n,"opaque"):rwe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range")&&(n=a=Kb()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||xKn.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>C_r(e,Kb(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!oia(A,r.integrity)){o("integrity mismatch");return}n.body=gIt(A)[0],C_r(e,n)};await DKn(n.body,l,o)}else C_r(e,n)}function NKn(e){if(twe(e)&&e.request.redirectCount===0)return Promise.resolve(lIt(e));let{request:t}=e,{protocol:r}=S8(t);switch(r){case"about:":return Promise.resolve(Kb("about scheme is not supported"));case"blob:":{I_r||(I_r=wt("buffer").resolveObjectURL);let n=S8(t);if(n.search.length!==0)return Promise.resolve(Kb("NetworkError when attempting to fetch resource."));let a=I_r(n.toString());if(t.method!=="GET"||!_ia(a))return Promise.resolve(Kb("invalid method"));let o=gIt(a),l=o[0],A=y_r(`${l.length}`),f=o[1]??"",I=uIt({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:A}],["content-type",{name:"Content-Type",value:f}]]});return I.body=l,Promise.resolve(I)}case"data:":{let n=S8(t),a=Fia(n);if(a==="failure")return Promise.resolve(Kb("failed to fetch the data URL"));let o=Zia(a.mimeType);return Promise.resolve(uIt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:gIt(a.body)[0]}))}case"file:":return Promise.resolve(Kb("not implemented... yet..."));case"http:":case"https:":return LKn(e).catch(n=>Kb(n));default:return Promise.resolve(Kb("unknown scheme"))}}function Yia(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function C_r(e,t){t.type==="error"&&(t.urlList=[e.request.urlList[0]],t.timingInfo=E_r({startTime:e.timingInfo.startTime}));let r=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(t)),t.body==null)r();else{let n=(o,l)=>{l.enqueue(o)},a=new Lia({start(){},transform:n,flush:r},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(a)}}if(e.processResponseConsumeBody!=null){let n=o=>e.processResponseConsumeBody(t,o),a=o=>e.processResponseConsumeBody(t,o);if(t.body==null)queueMicrotask(()=>n(null));else return DKn(t.body,n,a);return Promise.resolve()}}async function LKn(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await VKn(e),t.responseTainting==="cors"&&Iia(t,r)==="failure")return Kb("cors failure");uia(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&hia(t.origin,t.client,t.destination,n)==="blocked"?Kb("blocked"):(kKn.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(),t.redirect==="error"?r=Kb("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await Qia(e,r):rwe(!1)),r.timingInfo=a,r)}function Qia(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=Aia(n,S8(r).hash),a==null)return t}catch(l){return Promise.resolve(Kb(l))}if(!v_r(a))return Promise.resolve(Kb("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(Kb("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!__r(r,a))return Promise.resolve(Kb('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(Kb('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(Kb());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!Oia.includes(r.method)){r.method="GET",r.body=null;for(let l of wia)r.headersList.delete(l)}__r(S8(r),a)||(r.headersList.delete("authorization"),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie"),r.headersList.delete("host")),r.body!=null&&(rwe(r.body.source!=null),r.body=gIt(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=S_r(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),dia(r,n),ZKn(e,!0)}async function VKn(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=sia(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=y_r(`${C}`)),b!=null&&o.headersList.append("content-length",b),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",y_r(o.referrer.href)),gia(o),fia(o),o.headersList.contains("user-agent")||o.headersList.append("user-agent",typeof esbuildDetection>"u"?"undici":"node"),o.cache==="default"&&(o.headersList.contains("if-modified-since")||o.headersList.contains("if-none-match")||o.headersList.contains("if-unmodified-since")||o.headersList.contains("if-match")||o.headersList.contains("if-range"))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control")&&o.headersList.append("cache-control","max-age=0"),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma")||o.headersList.append("pragma","no-cache"),o.headersList.contains("cache-control")||o.headersList.append("cache-control","no-cache")),o.headersList.contains("range")&&o.headersList.append("accept-encoding","identity"),o.headersList.contains("accept-encoding")||(Sia(S8(o))?o.headersList.append("accept-encoding","br, gzip, deflate"):o.headersList.append("accept-encoding","gzip, deflate")),o.headersList.delete("host"),A==null&&(o.cache="no-store"),o.mode!=="no-store"&&o.mode,l==null){if(o.mode==="only-if-cached")return Kb("only if cached");let E=await Xia(a,I,r);!Bia.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range")&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?Kb():twe(e)?lIt(e):Kb("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(twe(e))return lIt(e);e.controller.connection.destroy(),l=await VKn(e,t,!0)}return l}async function Xia(e,t=!1,r=!1){rwe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B){this.destroyed||(this.destroyed=!0,this.abort?.(B??new AIt("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){twe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{twe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{twe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=uIt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=uIt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),lIt(e,B)):Kb(B)}let I=()=>{e.controller.resume()},C=B=>{e.controller.abort(B)};h_r||(h_r=wt("stream/web").ReadableStream);let b=new h_r({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)}},{highWaterMark:0,size(){return 1}});a.body={stream:b},e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:Q,value:X}=await e.controller.next();if(wKn(e))break;B=Q?void 0:X}catch(Q){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=Q,F=!0)}if(B===void 0){bia(e.controller.controller),Yia(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}if(e.controller.controller.enqueue(new Uint8Array(B)),xia(b)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function E(B){wKn(e)?(a.aborted=!0,dIt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):dIt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:yia(B)?B:void 0})),e.controller.connection.destroy()}return a;async function N({body:B}){let F=S8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;ce.destroyed?ne(new AIt("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new BKn;if(Array.isArray(ce))for(let et=0;etje.trim()):ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}else{let et=Object.keys(ce);for(let ct of et){let Me=ce[ct];ct.toLowerCase()==="content-encoding"?de=Me.toLowerCase().split(",").map(je=>je.trim()).reverse():ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}}this.body=new Nia({read:fe});let De=[],k=n.redirect==="follow"&&be&&kKn.has(ne);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!xKn.includes(ne)&&!k)for(let et of de)if(et==="x-gzip"||et==="gzip")De.push(XHe.createGunzip({flush:XHe.constants.Z_SYNC_FLUSH,finishFlush:XHe.constants.Z_SYNC_FLUSH}));else if(et==="deflate")De.push(XHe.createInflate());else if(et==="br")De.push(XHe.createBrotliDecompress());else{De.length=0;break}return X({status:ne,statusText:ue,headersList:Se[ewe],body:De.length?Dia(this.body,...De,()=>{}):this.body.on("error",()=>{})}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new BKn;for(let de=0;de{"use strict";WKn.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var MKn=H((Asu,OKn)=>{"use strict";var{webidl:jW}=xZ(),IIt=Symbol("ProgressEvent state"),w_r=class e extends Event{constructor(t,r={}){t=jW.converters.DOMString(t),r=jW.converters.ProgressEventInit(r??{}),super(t,r),this[IIt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return jW.brandCheck(this,e),this[IIt].lengthComputable}get loaded(){return jW.brandCheck(this,e),this[IIt].loaded}get total(){return jW.brandCheck(this,e),this[IIt].total}};jW.converters.ProgressEventInit=jW.dictionaryConverter([{key:"lengthComputable",converter:jW.converters.boolean,defaultValue:!1},{key:"loaded",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"total",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:jW.converters.boolean,defaultValue:!1},{key:"cancelable",converter:jW.converters.boolean,defaultValue:!1},{key:"composed",converter:jW.converters.boolean,defaultValue:!1}]);OKn.exports={ProgressEvent:w_r}});var YKn=H((dsu,HKn)=>{"use strict";function Jia(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}HKn.exports={getEncoding:Jia}});var qKn=H((psu,zKn)=>{"use strict";var{kState:nwe,kError:T_r,kResult:QKn,kAborted:JHe,kLastProgressEventFired:R_r}=B_r(),{ProgressEvent:Uia}=MKn(),{getEncoding:XKn}=YKn(),{DOMException:Kia}=Xoe(),{serializeAMimeType:jia,parseMIMEType:JKn}=wX(),{types:zia}=wt("util"),{StringDecoder:UKn}=wt("string_decoder"),{btoa:KKn}=wt("buffer"),qia={enumerable:!0,writable:!1,configurable:!1};function $ia(e,t,r,n){if(e[nwe]==="loading")throw new Kia("Invalid state","InvalidStateError");e[nwe]="loading",e[QKn]=null,e[T_r]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[JHe];)try{let{done:I,value:C}=await A;if(f&&!e[JHe]&&queueMicrotask(()=>{eae("loadstart",e)}),f=!1,!I&&zia.isUint8Array(C))l.push(C),(e[R_r]===void 0||Date.now()-e[R_r]>=50)&&!e[JHe]&&(e[R_r]=Date.now(),queueMicrotask(()=>{eae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[nwe]="done";try{let b=esa(l,r,t.type,n);if(e[JHe])return;e[QKn]=b,eae("load",e)}catch(b){e[T_r]=b,eae("error",e)}e[nwe]!=="loading"&&eae("loadend",e)});break}}catch(I){if(e[JHe])return;queueMicrotask(()=>{e[nwe]="done",e[T_r]=I,eae("error",e),e[nwe]!=="loading"&&eae("loadend",e)});break}})()}function eae(e,t){let r=new Uia(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function esa(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=JKn(r||"application/octet-stream");o!=="failure"&&(a+=jia(o)),a+=";base64,";let l=new UKn("latin1");for(let A of e)a+=KKn(l.write(A));return a+=KKn(l.end()),a}case"Text":{let a="failure";if(n&&(a=XKn(n)),a==="failure"&&r){let o=JKn(r);o!=="failure"&&(a=XKn(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),tsa(e,a)}case"ArrayBuffer":return jKn(e).buffer;case"BinaryString":{let a="",o=new UKn("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function tsa(e,t){let r=jKn(e),n=rsa(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function rsa(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function jKn(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}zKn.exports={staticPropertyDescriptors:qia,readOperation:$ia,fireAProgressEvent:eae}});var r8n=H((fsu,t8n)=>{"use strict";var{staticPropertyDescriptors:iwe,readOperation:hIt,fireAProgressEvent:$Kn}=qKn(),{kState:jIe,kError:e8n,kResult:mIt,kEvents:I0,kAborted:nsa}=B_r(),{webidl:nb}=xZ(),{kEnumerableProperty:q9}=zC(),DX=class e extends EventTarget{constructor(){super(),this[jIe]="empty",this[mIt]=null,this[e8n]=null,this[I0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"ArrayBuffer")}readAsBinaryString(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"BinaryString")}readAsText(t,r=void 0){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),t=nb.converters.Blob(t,{strict:!1}),r!==void 0&&(r=nb.converters.DOMString(r)),hIt(this,t,"Text",r)}readAsDataURL(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"DataURL")}abort(){if(this[jIe]==="empty"||this[jIe]==="done"){this[mIt]=null;return}this[jIe]==="loading"&&(this[jIe]="done",this[mIt]=null),this[nsa]=!0,$Kn("abort",this),this[jIe]!=="loading"&&$Kn("loadend",this)}get readyState(){switch(nb.brandCheck(this,e),this[jIe]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return nb.brandCheck(this,e),this[mIt]}get error(){return nb.brandCheck(this,e),this[e8n]}get onloadend(){return nb.brandCheck(this,e),this[I0].loadend}set onloadend(t){nb.brandCheck(this,e),this[I0].loadend&&this.removeEventListener("loadend",this[I0].loadend),typeof t=="function"?(this[I0].loadend=t,this.addEventListener("loadend",t)):this[I0].loadend=null}get onerror(){return nb.brandCheck(this,e),this[I0].error}set onerror(t){nb.brandCheck(this,e),this[I0].error&&this.removeEventListener("error",this[I0].error),typeof t=="function"?(this[I0].error=t,this.addEventListener("error",t)):this[I0].error=null}get onloadstart(){return nb.brandCheck(this,e),this[I0].loadstart}set onloadstart(t){nb.brandCheck(this,e),this[I0].loadstart&&this.removeEventListener("loadstart",this[I0].loadstart),typeof t=="function"?(this[I0].loadstart=t,this.addEventListener("loadstart",t)):this[I0].loadstart=null}get onprogress(){return nb.brandCheck(this,e),this[I0].progress}set onprogress(t){nb.brandCheck(this,e),this[I0].progress&&this.removeEventListener("progress",this[I0].progress),typeof t=="function"?(this[I0].progress=t,this.addEventListener("progress",t)):this[I0].progress=null}get onload(){return nb.brandCheck(this,e),this[I0].load}set onload(t){nb.brandCheck(this,e),this[I0].load&&this.removeEventListener("load",this[I0].load),typeof t=="function"?(this[I0].load=t,this.addEventListener("load",t)):this[I0].load=null}get onabort(){return nb.brandCheck(this,e),this[I0].abort}set onabort(t){nb.brandCheck(this,e),this[I0].abort&&this.removeEventListener("abort",this[I0].abort),typeof t=="function"?(this[I0].abort=t,this.addEventListener("abort",t)):this[I0].abort=null}};DX.EMPTY=DX.prototype.EMPTY=0;DX.LOADING=DX.prototype.LOADING=1;DX.DONE=DX.prototype.DONE=2;Object.defineProperties(DX.prototype,{EMPTY:iwe,LOADING:iwe,DONE:iwe,readAsArrayBuffer:q9,readAsBinaryString:q9,readAsText:q9,readAsDataURL:q9,abort:q9,readyState:q9,result:q9,error:q9,onloadstart:q9,onprogress:q9,onload:q9,onabort:q9,onerror:q9,onloadend:q9,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(DX,{EMPTY:iwe,LOADING:iwe,DONE:iwe});t8n.exports={FileReader:DX}});var CIt=H((Isu,n8n)=>{"use strict";n8n.exports={kConstruct:GE().kConstruct}});var o8n=H((hsu,s8n)=>{"use strict";var isa=wt("assert"),{URLSerializer:i8n}=wX(),{isValidHeaderName:ssa}=EM();function osa(e,t,r=!1){let n=i8n(e,r),a=i8n(t,r);return n===a}function asa(e){isa(e!==null);let t=[];for(let r of e.split(",")){if(r=r.trim(),r.length){if(!ssa(r))continue}else continue;t.push(r)}return t}s8n.exports={urlEquals:osa,fieldValues:asa}});var A8n=H((msu,g8n)=>{"use strict";var{kConstruct:csa}=CIt(),{urlEquals:lsa,fieldValues:N_r}=o8n(),{kEnumerableProperty:zIe,isDisturbed:usa}=zC(),{kHeadersList:a8n}=GE(),{webidl:Lp}=xZ(),{Response:l8n,cloneResponse:gsa}=nIt(),{Request:v8}=QHe(),{kState:VZ,kHeaders:_It,kGuard:c8n,kRealm:Asa}=v$(),{fetching:dsa}=fIt(),{urlIsHttpHttpsScheme:yIt,createDeferredPromise:swe,readAllBytes:psa}=EM(),D_r=wt("assert"),{getGlobalDispatcher:fsa}=KBe(),bIt=class e{#e;constructor(){arguments[0]!==csa&&Lp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.match"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=await this.matchAll(t,r);if(n.length!==0)return n[0]}async matchAll(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=[];if(t===void 0)for(let l of this.#e)a.push(l[1]);else{let l=this.#n(n,r);for(let A of l)a.push(A[1])}let o=[];for(let l of a){let A=new l8n(l.body?.source??null),f=A[VZ].body;A[VZ]=l,A[VZ].body=f,A[_It][a8n]=l.headersList,A[_It][c8n]="immutable",o.push(A)}return Object.freeze(o)}async add(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.add"}),t=Lp.converters.RequestInfo(t);let r=[t];return await this.addAll(r)}async addAll(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),t=Lp.converters["sequence"](t);let r=[],n=[];for(let b of t){if(typeof b=="string")continue;let E=b[VZ];if(!yIt(E.url)||E.method!=="GET")throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let a=[];for(let b of t){let E=new v8(b)[VZ];if(!yIt(E.url))throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let N=swe();a.push(dsa({request:E,dispatcher:fsa(),processResponse(B){if(B.type==="error"||B.status===206||B.status<200||B.status>299)N.reject(Lp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(B.headersList.contains("vary")){let F=N_r(B.headersList.get("vary"));for(let Q of F)if(Q==="*"){N.reject(Lp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let X of a)X.abort();return}}},processResponseEndOfBody(B){if(B.aborted){N.reject(new DOMException("aborted","AbortError"));return}N.resolve(B)}})),r.push(N.promise)}let l=await Promise.all(r),A=[],f=0;for(let b of l){let E={type:"put",request:n[f],response:b};A.push(E),f++}let I=swe(),C=null;try{this.#t(A)}catch(b){C=b}return queueMicrotask(()=>{C===null?I.resolve(void 0):I.reject(C)}),I.promise}async put(t,r){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,2,{header:"Cache.put"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.Response(r);let n=null;if(t instanceof v8?n=t[VZ]:n=new v8(t)[VZ],!yIt(n.url)||n.method!=="GET")throw Lp.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let a=r[VZ];if(a.status===206)throw Lp.errors.exception({header:"Cache.put",message:"Got 206 status"});if(a.headersList.contains("vary")){let E=N_r(a.headersList.get("vary"));for(let N of E)if(N==="*")throw Lp.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(a.body&&(usa(a.body.stream)||a.body.stream.locked))throw Lp.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let o=gsa(a),l=swe();if(a.body!=null){let N=a.body.stream.getReader();psa(N).then(l.resolve,l.reject)}else l.resolve(void 0);let A=[],f={type:"put",request:n,response:o};A.push(f);let I=await l.promise;o.body!=null&&(o.body.source=I);let C=swe(),b=null;try{this.#t(A)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve():C.reject(b)}),C.promise}async delete(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return!1}else D_r(typeof t=="string"),n=new v8(t)[VZ];let a=[],o={type:"delete",request:n,options:r};a.push(o);let l=swe(),A=null,f;try{f=this.#t(a)}catch(I){A=I}return queueMicrotask(()=>{A===null?l.resolve(!!f?.length):l.reject(A)}),l.promise}async keys(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=swe(),o=[];if(t===void 0)for(let l of this.#e)o.push(l[0]);else{let l=this.#n(n,r);for(let A of l)o.push(A[0])}return queueMicrotask(()=>{let l=[];for(let A of o){let f=new v8("https://a");f[VZ]=A,f[_It][a8n]=A.headersList,f[_It][c8n]="immutable",f[Asa]=A.client,l.push(f)}a.resolve(Object.freeze(l))}),a.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);D_r(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!yIt(f.url))throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);D_r(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!lsa(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=N_r(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}};Object.defineProperties(bIt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:zIe,matchAll:zIe,add:zIe,addAll:zIe,put:zIe,delete:zIe,keys:zIe});var u8n=[{key:"ignoreSearch",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:Lp.converters.boolean,defaultValue:!1}];Lp.converters.CacheQueryOptions=Lp.dictionaryConverter(u8n);Lp.converters.MultiCacheQueryOptions=Lp.dictionaryConverter([...u8n,{key:"cacheName",converter:Lp.converters.DOMString}]);Lp.converters.Response=Lp.interfaceConverter(l8n);Lp.converters["sequence"]=Lp.sequenceConverter(Lp.converters.RequestInfo);g8n.exports={Cache:bIt}});var p8n=H((Csu,d8n)=>{"use strict";var{kConstruct:UHe}=CIt(),{Cache:EIt}=A8n(),{webidl:PZ}=xZ(),{kEnumerableProperty:KHe}=zC(),SIt=class e{#e=new Map;constructor(){arguments[0]!==UHe&&PZ.illegalConstructor()}async match(t,r={}){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),t=PZ.converters.RequestInfo(t),r=PZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new EIt(UHe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new EIt(UHe,n).match(t,r);if(o!==void 0)return o}}async has(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),t=PZ.converters.DOMString(t),this.#e.has(t)}async open(t){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),t=PZ.converters.DOMString(t),this.#e.has(t)){let n=this.#e.get(t);return new EIt(UHe,n)}let r=[];return this.#e.set(t,r),new EIt(UHe,r)}async delete(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),t=PZ.converters.DOMString(t),this.#e.delete(t)}async keys(){return PZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(SIt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:KHe,has:KHe,open:KHe,delete:KHe,keys:KHe});d8n.exports={CacheStorage:SIt}});var I8n=H((_su,f8n)=>{"use strict";f8n.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var k_r=H((ysu,C8n)=>{"use strict";var h8n=wt("assert"),{kHeadersList:m8n}=GE();function Isa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r>=0||r<=8||r>=10||r<=31||r===127)return!1}}function hsa(e){for(let t of e){let r=t.charCodeAt(0);if(r<=32||r>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}")throw new Error("Invalid cookie name")}}function msa(e){for(let t of e){let r=t.charCodeAt(0);if(r<33||r===34||r===44||r===59||r===92||r>126)throw new Error("Invalid header value")}}function Csa(e){for(let t of e)if(t.charCodeAt(0)<33||t===";")throw new Error("Invalid cookie path")}function _sa(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function ysa(e){typeof e=="number"&&(e=new Date(e));let t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=t[e.getUTCDay()],a=e.getUTCDate().toString().padStart(2,"0"),o=r[e.getUTCMonth()],l=e.getUTCFullYear(),A=e.getUTCHours().toString().padStart(2,"0"),f=e.getUTCMinutes().toString().padStart(2,"0"),I=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${a} ${o} ${l} ${A}:${f}:${I} GMT`}function bsa(e){if(e<0)throw new Error("Invalid cookie max-age")}function Esa(e){if(e.name.length===0)return null;hsa(e.name),msa(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(bsa(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(_sa(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(Csa(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${ysa(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}var vIt;function Ssa(e){if(e[m8n])return e[m8n];vIt||(vIt=Object.getOwnPropertySymbols(e).find(r=>r.description==="headers list"),h8n(vIt,"Headers cannot be parsed"));let t=e[vIt];return h8n(t),t}C8n.exports={isCTLExcludingHtab:Isa,stringify:Esa,getHeadersList:Ssa}});var y8n=H((bsu,_8n)=>{"use strict";var{maxNameValuePairSize:vsa,maxAttributeValueSize:Bsa}=I8n(),{isCTLExcludingHtab:wsa}=k_r(),{collectASequenceOfCodePointsFast:BIt}=wX(),Tsa=wt("assert");function Rsa(e){if(wsa(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=BIt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=BIt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>vsa?null:{name:n,value:a,...owe(r)}}function owe(e,t={}){if(e.length===0)return t;Tsa(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=BIt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=BIt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Bsa)return owe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return owe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return owe(e,t)}_8n.exports={parseSetCookie:Rsa,parseUnparsedAttributes:owe}});var v8n=H((Esu,S8n)=>{"use strict";var{parseSetCookie:Nsa}=y8n(),{stringify:b8n,getHeadersList:Dsa}=k_r(),{webidl:rC}=xZ(),{Headers:wIt}=UIe();function ksa(e){rC.argumentLengthCheck(arguments,1,{header:"getCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function xsa(e,t,r){rC.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.DOMString(t),r=rC.converters.DeleteCookieAttributes(r),E8n(e,{name:t,value:"",expires:new Date(0),...r})}function Gsa(e){rC.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=Dsa(e).cookies;return t?t.map(r=>Nsa(Array.isArray(r)?r[1]:r)):[]}function E8n(e,t){rC.argumentLengthCheck(arguments,2,{header:"setCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.Cookie(t),b8n(t)&&e.append("Set-Cookie",b8n(t))}rC.converters.DeleteCookieAttributes=rC.dictionaryConverter([{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null}]);rC.converters.Cookie=rC.dictionaryConverter([{converter:rC.converters.DOMString,key:"name"},{converter:rC.converters.DOMString,key:"value"},{converter:rC.nullableConverter(e=>typeof e=="number"?rC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:rC.nullableConverter(rC.converters["long long"]),key:"maxAge",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"secure",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"httpOnly",defaultValue:null},{converter:rC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:rC.sequenceConverter(rC.converters.DOMString),key:"unparsed",defaultValue:[]}]);S8n.exports={getCookies:ksa,deleteCookie:xsa,getSetCookies:Gsa,setCookie:E8n}});var awe=H((Ssu,B8n)=>{"use strict";var Fsa="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Zsa={enumerable:!0,writable:!1,configurable:!1},Lsa={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Vsa={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Psa=2**16-1,Wsa={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Osa=Buffer.allocUnsafe(0);B8n.exports={uid:Fsa,staticPropertyDescriptors:Zsa,states:Lsa,opcodes:Vsa,maxUnsigned16Bit:Psa,parserStates:Wsa,emptyBuffer:Osa}});var jHe=H((vsu,w8n)=>{"use strict";w8n.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var G_r=H((Bsu,T8n)=>{"use strict";var{webidl:Vp}=xZ(),{kEnumerableProperty:$9}=zC(),{MessagePort:Msa}=wt("worker_threads"),TIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.MessageEventInit(r),super(t,r),this.#e=r}get data(){return Vp.brandCheck(this,e),this.#e.data}get origin(){return Vp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Vp.brandCheck(this,e),this.#e.lastEventId}get source(){return Vp.brandCheck(this,e),this.#e.source}get ports(){return Vp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Vp.brandCheck(this,e),Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}},RIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Vp.brandCheck(this,e),this.#e.wasClean}get code(){return Vp.brandCheck(this,e),this.#e.code}get reason(){return Vp.brandCheck(this,e),this.#e.reason}},NIt=class e extends Event{#e;constructor(t,r){Vp.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(t,r),t=Vp.converters.DOMString(t),r=Vp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Vp.brandCheck(this,e),this.#e.message}get filename(){return Vp.brandCheck(this,e),this.#e.filename}get lineno(){return Vp.brandCheck(this,e),this.#e.lineno}get colno(){return Vp.brandCheck(this,e),this.#e.colno}get error(){return Vp.brandCheck(this,e),this.#e.error}};Object.defineProperties(TIt.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:$9,origin:$9,lastEventId:$9,source:$9,ports:$9,initMessageEvent:$9});Object.defineProperties(RIt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:$9,code:$9,wasClean:$9});Object.defineProperties(NIt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:$9,filename:$9,lineno:$9,colno:$9,error:$9});Vp.converters.MessagePort=Vp.interfaceConverter(Msa);Vp.converters["sequence"]=Vp.sequenceConverter(Vp.converters.MessagePort);var x_r=[{key:"bubbles",converter:Vp.converters.boolean,defaultValue:!1},{key:"cancelable",converter:Vp.converters.boolean,defaultValue:!1},{key:"composed",converter:Vp.converters.boolean,defaultValue:!1}];Vp.converters.MessageEventInit=Vp.dictionaryConverter([...x_r,{key:"data",converter:Vp.converters.any,defaultValue:null},{key:"origin",converter:Vp.converters.USVString,defaultValue:""},{key:"lastEventId",converter:Vp.converters.DOMString,defaultValue:""},{key:"source",converter:Vp.nullableConverter(Vp.converters.MessagePort),defaultValue:null},{key:"ports",converter:Vp.converters["sequence"],get defaultValue(){return[]}}]);Vp.converters.CloseEventInit=Vp.dictionaryConverter([...x_r,{key:"wasClean",converter:Vp.converters.boolean,defaultValue:!1},{key:"code",converter:Vp.converters["unsigned short"],defaultValue:0},{key:"reason",converter:Vp.converters.USVString,defaultValue:""}]);Vp.converters.ErrorEventInit=Vp.dictionaryConverter([...x_r,{key:"message",converter:Vp.converters.DOMString,defaultValue:""},{key:"filename",converter:Vp.converters.USVString,defaultValue:""},{key:"lineno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"colno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"error",converter:Vp.converters.any}]);T8n.exports={MessageEvent:TIt,CloseEvent:RIt,ErrorEvent:NIt}});var xIt=H((wsu,D8n)=>{"use strict";var{kReadyState:DIt,kController:Hsa,kResponse:Ysa,kBinaryType:Qsa,kWebSocketURL:Xsa}=jHe(),{states:kIt,opcodes:R8n}=awe(),{MessageEvent:Jsa,ErrorEvent:Usa}=G_r();function Ksa(e){return e[DIt]===kIt.OPEN}function jsa(e){return e[DIt]===kIt.CLOSING}function zsa(e){return e[DIt]===kIt.CLOSED}function F_r(e,t,r=Event,n){let a=new r(e,n);t.dispatchEvent(a)}function qsa(e,t,r){if(e[DIt]!==kIt.OPEN)return;let n;if(t===R8n.TEXT)try{n=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{N8n(e,"Received invalid UTF-8 in text frame.");return}else t===R8n.BINARY&&(e[Qsa]==="blob"?n=new Blob([r]):n=new Uint8Array(r).buffer);F_r("message",e,Jsa,{origin:e[Xsa].origin,data:n})}function $sa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r<33||r>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||r===32||r===9)return!1}return!0}function eoa(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function N8n(e,t){let{[Hsa]:r,[Ysa]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&F_r("error",e,Usa,{error:new Error(t)})}D8n.exports={isEstablished:Ksa,isClosing:jsa,isClosed:zsa,fireEvent:F_r,isValidSubprotocol:$sa,isValidStatusCode:eoa,failWebsocketConnection:N8n,websocketMessageReceived:qsa}});var L8n=H((Tsu,Z8n)=>{"use strict";var L_r=wt("diagnostics_channel"),{uid:toa,states:x8n}=awe(),{kReadyState:G8n,kSentClose:k8n,kByteParser:F8n,kReceivedClose:roa}=jHe(),{fireEvent:noa,failWebsocketConnection:qIe}=xIt(),{CloseEvent:ioa}=G_r(),{makeRequest:soa}=QHe(),{fetching:ooa}=fIt(),{Headers:aoa}=UIe(),{getGlobalDispatcher:coa}=KBe(),{kHeadersList:loa}=GE(),G$={};G$.open=L_r.channel("undici:websocket:open");G$.close=L_r.channel("undici:websocket:close");G$.socketError=L_r.channel("undici:websocket:socket_error");var Z_r;try{Z_r=wt("crypto")}catch{}function uoa(e,t,r,n,a){let o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";let l=soa({urlList:[o],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(a.headers){let C=new aoa(a.headers)[loa];l.headersList=C}let A=Z_r.randomBytes(16).toString("base64");l.headersList.append("sec-websocket-key",A),l.headersList.append("sec-websocket-version","13");for(let C of t)l.headersList.append("sec-websocket-protocol",C);let f="";return ooa({request:l,useParallelQueue:!0,dispatcher:a.dispatcher??coa(),processResponse(C){if(C.type==="error"||C.status!==101){qIe(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!C.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Server did not respond with sent protocols.");return}if(C.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){qIe(r,'Server did not set Upgrade header to "websocket".');return}if(C.headersList.get("Connection")?.toLowerCase()!=="upgrade"){qIe(r,'Server did not set Connection header to "upgrade".');return}let b=C.headersList.get("Sec-WebSocket-Accept"),E=Z_r.createHash("sha1").update(A+toa).digest("base64");if(b!==E){qIe(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let N=C.headersList.get("Sec-WebSocket-Extensions");if(N!==null&&N!==f){qIe(r,"Received different permessage-deflate than the one set.");return}let B=C.headersList.get("Sec-WebSocket-Protocol");if(B!==null&&B!==l.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Protocol was not set in the opening handshake.");return}C.socket.on("data",goa),C.socket.on("close",Aoa),C.socket.on("error",doa),G$.open.hasSubscribers&&G$.open.publish({address:C.socket.address(),protocol:B,extensions:N}),n(C)}})}function goa(e){this.ws[F8n].write(e)||this.pause()}function Aoa(){let{ws:e}=this,t=e[k8n]&&e[roa],r=1005,n="",a=e[F8n].closingInfo;a?(r=a.code??1005,n=a.reason):e[k8n]||(r=1006),e[G8n]=x8n.CLOSED,noa("close",e,ioa,{wasClean:t,code:r,reason:n}),G$.close.hasSubscribers&&G$.close.publish({websocket:e,code:r,reason:n})}function doa(e){let{ws:t}=this;t[G8n]=x8n.CLOSING,G$.socketError.hasSubscribers&&G$.socketError.publish(e),this.destroy()}Z8n.exports={establishWebSocketConnection:uoa}});var P_r=H((Rsu,P8n)=>{"use strict";var{maxUnsigned16Bit:poa}=awe(),V8n;try{V8n=wt("crypto")}catch{}var V_r=class{constructor(t){this.frameData=t,this.maskKey=V8n.randomBytes(4)}createFrame(t){let r=this.frameData?.byteLength??0,n=r,a=6;r>poa?(a+=8,n=127):r>125&&(a+=2,n=126);let o=Buffer.allocUnsafe(r+a);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+t;o[a-4]=this.maskKey[0],o[a-3]=this.maskKey[1],o[a-2]=this.maskKey[2],o[a-1]=this.maskKey[3],o[1]=n,n===126?o.writeUInt16BE(r,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(r,4,6)),o[1]|=128;for(let l=0;l{"use strict";var{Writable:foa}=wt("stream"),Q8n=wt("diagnostics_channel"),{parserStates:BM,opcodes:wM,states:Ioa,emptyBuffer:hoa}=awe(),{kReadyState:moa,kSentClose:W8n,kResponse:O8n,kReceivedClose:M8n}=jHe(),{isValidStatusCode:H8n,failWebsocketConnection:zHe,websocketMessageReceived:Coa}=xIt(),{WebsocketFrameSend:Y8n}=P_r(),cwe={};cwe.ping=Q8n.channel("undici:websocket:ping");cwe.pong=Q8n.channel("undici:websocket:pong");var W_r=class extends foa{#e=[];#t=0;#n=BM.INFO;#r={};#i=[];constructor(t){super(),this.ws=t}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.run(n)}run(t){for(;;){if(this.#n===BM.INFO){if(this.#t<2)return t();let r=this.consume(2);if(this.#r.fin=(r[0]&128)!==0,this.#r.opcode=r[0]&15,this.#r.originalOpcode??=this.#r.opcode,this.#r.fragmented=!this.#r.fin&&this.#r.opcode!==wM.CONTINUATION,this.#r.fragmented&&this.#r.opcode!==wM.BINARY&&this.#r.opcode!==wM.TEXT){zHe(this.ws,"Invalid frame type was fragmented.");return}let n=r[1]&127;if(n<=125?(this.#r.payloadLength=n,this.#n=BM.READ_DATA):n===126?this.#n=BM.PAYLOADLENGTH_16:n===127&&(this.#n=BM.PAYLOADLENGTH_64),this.#r.fragmented&&n>125){zHe(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#r.opcode===wM.PING||this.#r.opcode===wM.PONG||this.#r.opcode===wM.CLOSE)&&n>125){zHe(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#r.opcode===wM.CLOSE){if(n===1){zHe(this.ws,"Received close frame with a 1-byte body.");return}let a=this.consume(n);if(this.#r.closeInfo=this.parseCloseBody(!1,a),!this.ws[W8n]){let o=Buffer.allocUnsafe(2);o.writeUInt16BE(this.#r.closeInfo.code,0);let l=new Y8n(o);this.ws[O8n].socket.write(l.createFrame(wM.CLOSE),A=>{A||(this.ws[W8n]=!0)})}this.ws[moa]=Ioa.CLOSING,this.ws[M8n]=!0,this.end();return}else if(this.#r.opcode===wM.PING){let a=this.consume(n);if(!this.ws[M8n]){let o=new Y8n(a);this.ws[O8n].socket.write(o.createFrame(wM.PONG)),cwe.ping.hasSubscribers&&cwe.ping.publish({payload:a})}if(this.#n=BM.INFO,this.#t>0)continue;t();return}else if(this.#r.opcode===wM.PONG){let a=this.consume(n);if(cwe.pong.hasSubscribers&&cwe.pong.publish({payload:a}),this.#t>0)continue;t();return}}else if(this.#n===BM.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#r.payloadLength=r.readUInt16BE(0),this.#n=BM.READ_DATA}else if(this.#n===BM.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){zHe(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#r.payloadLength=(n<<8)+a,this.#n=BM.READ_DATA}else if(this.#n===BM.READ_DATA){if(this.#t=this.#r.payloadLength){let r=this.consume(this.#r.payloadLength);if(this.#i.push(r),!this.#r.fragmented||this.#r.fin&&this.#r.opcode===wM.CONTINUATION){let n=Buffer.concat(this.#i);Coa(this.ws,this.#r.originalOpcode,n),this.#r={},this.#i.length=0}this.#n=BM.INFO}}if(!(this.#t>0)){t();break}}}consume(t){if(t>this.#t)return null;if(t===0)return hoa;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t,r){let n;if(r.length>=2&&(n=r.readUInt16BE(0)),t)return H8n(n)?{code:n}:null;let a=r.subarray(2);if(a[0]===239&&a[1]===187&&a[2]===191&&(a=a.subarray(3)),n!==void 0&&!H8n(n))return null;try{a=new TextDecoder("utf-8",{fatal:!0}).decode(a)}catch{return null}return{code:n,reason:a}}get closingInfo(){return this.#r.closeInfo}};X8n.exports={ByteParser:W_r}});var tjn=H((Dsu,ejn)=>{"use strict";var{webidl:fI}=xZ(),{DOMException:tae}=Xoe(),{URLSerializer:_oa}=wX(),{getGlobalOrigin:yoa}=wBe(),{staticPropertyDescriptors:rae,states:lwe,opcodes:qHe,emptyBuffer:boa}=awe(),{kWebSocketURL:U8n,kReadyState:F$,kController:Eoa,kBinaryType:GIt,kResponse:FIt,kSentClose:Soa,kByteParser:voa}=jHe(),{isEstablished:K8n,isClosing:j8n,isValidSubprotocol:Boa,failWebsocketConnection:woa,fireEvent:Toa}=xIt(),{establishWebSocketConnection:Roa}=L8n(),{WebsocketFrameSend:$He}=P_r(),{ByteParser:Noa}=J8n(),{kEnumerableProperty:TM,isBlobLike:q8n}=zC(),{getGlobalDispatcher:Doa}=KBe(),{types:$8n}=wt("util"),z8n=!1,zW=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";constructor(t,r=[]){super(),fI.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),z8n||(z8n=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let n=fI.converters["DOMString or sequence or WebSocketInit"](r);t=fI.converters.USVString(t),r=n.protocols;let a=yoa(),o;try{o=new URL(t,a)}catch(l){throw new tae(l,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new tae(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new tae("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(l=>l.toLowerCase())).size)throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(l=>Boa(l)))throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[U8n]=new URL(o.href),this[Eoa]=Roa(o,r,this,l=>this.#i(l),n),this[F$]=e.CONNECTING,this[GIt]="blob"}close(t=void 0,r=void 0){if(fI.brandCheck(this,e),t!==void 0&&(t=fI.converters["unsigned short"](t,{clamp:!0})),r!==void 0&&(r=fI.converters.USVString(r)),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new tae("invalid code","InvalidAccessError");let n=0;if(r!==void 0&&(n=Buffer.byteLength(r),n>123))throw new tae(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");if(!(this[F$]===e.CLOSING||this[F$]===e.CLOSED))if(!K8n(this))woa(this,"Connection was closed before it was established."),this[F$]=e.CLOSING;else if(j8n(this))this[F$]=e.CLOSING;else{let a=new $He;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=boa,this[FIt].socket.write(a.createFrame(qHe.CLOSE),l=>{l||(this[Soa]=!0)}),this[F$]=lwe.CLOSING}}send(t){if(fI.brandCheck(this,e),fI.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),t=fI.converters.WebSocketSendData(t),this[F$]===e.CONNECTING)throw new tae("Sent before connected.","InvalidStateError");if(!K8n(this)||j8n(this))return;let r=this[FIt].socket;if(typeof t=="string"){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.TEXT);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if($8n.isArrayBuffer(t)){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(ArrayBuffer.isView(t)){let n=Buffer.from(t,t.byteOffset,t.byteLength),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(q8n(t)){let n=new $He;t.arrayBuffer().then(a=>{let o=Buffer.from(a);n.frameData=o;let l=n.createFrame(qHe.BINARY);this.#t+=o.byteLength,r.write(l,()=>{this.#t-=o.byteLength})})}}get readyState(){return fI.brandCheck(this,e),this[F$]}get bufferedAmount(){return fI.brandCheck(this,e),this.#t}get url(){return fI.brandCheck(this,e),_oa(this[U8n])}get extensions(){return fI.brandCheck(this,e),this.#r}get protocol(){return fI.brandCheck(this,e),this.#n}get onopen(){return fI.brandCheck(this,e),this.#e.open}set onopen(t){fI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return fI.brandCheck(this,e),this.#e.error}set onerror(t){fI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return fI.brandCheck(this,e),this.#e.close}set onclose(t){fI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return fI.brandCheck(this,e),this.#e.message}set onmessage(t){fI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return fI.brandCheck(this,e),this[GIt]}set binaryType(t){fI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[GIt]="blob":this[GIt]=t}#i(t){this[FIt]=t;let r=new Noa(this);r.on("drain",function(){this.ws[FIt].socket.resume()}),t.socket.ws=this,this[voa]=r,this[F$]=lwe.OPEN;let n=t.headersList.get("sec-websocket-extensions");n!==null&&(this.#r=n);let a=t.headersList.get("sec-websocket-protocol");a!==null&&(this.#n=a),Toa("open",this)}};zW.CONNECTING=zW.prototype.CONNECTING=lwe.CONNECTING;zW.OPEN=zW.prototype.OPEN=lwe.OPEN;zW.CLOSING=zW.prototype.CLOSING=lwe.CLOSING;zW.CLOSED=zW.prototype.CLOSED=lwe.CLOSED;Object.defineProperties(zW.prototype,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae,url:TM,readyState:TM,bufferedAmount:TM,onopen:TM,onerror:TM,onclose:TM,close:TM,onmessage:TM,binaryType:TM,send:TM,extensions:TM,protocol:TM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(zW,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae});fI.converters["sequence"]=fI.sequenceConverter(fI.converters.DOMString);fI.converters["DOMString or sequence"]=function(e){return fI.util.Type(e)==="Object"&&Symbol.iterator in e?fI.converters["sequence"](e):fI.converters.DOMString(e)};fI.converters.WebSocketInit=fI.dictionaryConverter([{key:"protocols",converter:fI.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return Doa()}},{key:"headers",converter:fI.nullableConverter(fI.converters.HeadersInit)}]);fI.converters["DOMString or sequence or WebSocketInit"]=function(e){return fI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?fI.converters.WebSocketInit(e):{protocols:fI.converters["DOMString or sequence"](e)}};fI.converters.WebSocketSendData=function(e){if(fI.util.Type(e)==="Object"){if(q8n(e))return fI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||$8n.isAnyArrayBuffer(e))return fI.converters.BufferSource(e)}return fI.converters.USVString(e)};ejn.exports={WebSocket:zW}});var sjn=H((ksu,Eh)=>{"use strict";var koa=kHe(),rjn=Ift(),njn=Ub(),xoa=WBe(),Goa=IJn(),Foa=ZHe(),$Ie=zC(),{InvalidArgumentError:ZIt}=njn,uwe=aUn(),Zoa=SHe(),Loa=jCr(),Voa=HUn(),Poa=$Cr(),Woa=VCr(),Ooa=KUn(),Moa=eKn(),{getGlobalDispatcher:ijn,setGlobalDispatcher:Hoa}=KBe(),Yoa=oKn(),Qoa=Kmr(),Xoa=_ft(),O_r;try{wt("crypto"),O_r=!0}catch{O_r=!1}Object.assign(rjn.prototype,uwe);Eh.exports.Dispatcher=rjn;Eh.exports.Client=koa;Eh.exports.Pool=xoa;Eh.exports.BalancedPool=Goa;Eh.exports.Agent=Foa;Eh.exports.ProxyAgent=Ooa;Eh.exports.RetryHandler=Moa;Eh.exports.DecoratorHandler=Yoa;Eh.exports.RedirectHandler=Qoa;Eh.exports.createRedirectInterceptor=Xoa;Eh.exports.buildConnector=Zoa;Eh.exports.errors=njn;function eYe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new ZIt("invalid url");if(r!=null&&typeof r!="object")throw new ZIt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new ZIt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL($Ie.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=$Ie.parseURL(t);let{agent:a,dispatcher:o=ijn()}=r;if(a)throw new ZIt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Eh.exports.setGlobalDispatcher=Hoa;Eh.exports.getGlobalDispatcher=ijn;if($Ie.nodeMajor>16||$Ie.nodeMajor===16&&$Ie.nodeMinor>=8){let e=null;Eh.exports.fetch=async function(l){e||(e=fIt().fetch);try{return await e(...arguments)}catch(A){throw typeof A=="object"&&Error.captureStackTrace(A,this),A}},Eh.exports.Headers=UIe().Headers,Eh.exports.Response=nIt().Response,Eh.exports.Request=QHe().Request,Eh.exports.FormData=dft().FormData,Eh.exports.File=gft().File,Eh.exports.FileReader=r8n().FileReader;let{setGlobalOrigin:t,getGlobalOrigin:r}=wBe();Eh.exports.setGlobalOrigin=t,Eh.exports.getGlobalOrigin=r;let{CacheStorage:n}=p8n(),{kConstruct:a}=CIt();Eh.exports.caches=new n(a)}if($Ie.nodeMajor>=16){let{deleteCookie:e,getCookies:t,getSetCookies:r,setCookie:n}=v8n();Eh.exports.deleteCookie=e,Eh.exports.getCookies=t,Eh.exports.getSetCookies=r,Eh.exports.setCookie=n;let{parseMIMEType:a,serializeAMimeType:o}=wX();Eh.exports.parseMIMEType=a,Eh.exports.serializeAMimeType=o}if($Ie.nodeMajor>=18&&O_r){let{WebSocket:e}=tjn();Eh.exports.WebSocket=e}Eh.exports.request=eYe(uwe.request);Eh.exports.stream=eYe(uwe.stream);Eh.exports.pipeline=eYe(uwe.pipeline);Eh.exports.connect=eYe(uwe.connect);Eh.exports.upgrade=eYe(uwe.upgrade);Eh.exports.MockClient=Loa;Eh.exports.MockPool=Poa;Eh.exports.MockAgent=Voa;Eh.exports.mockErrors=Woa});var ajn=H(ZE=>{"use strict";var Joa=ZE&&ZE.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uoa=ZE&&ZE.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIt=ZE&&ZE.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Joa(t,e,r);return Uoa(t,e),t},ew=ZE&&ZE.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(ZE,"__esModule",{value:!0});ZE.HttpClient=ZE.isHttps=ZE.HttpClientResponse=ZE.HttpClientError=ZE.getProxyUrl=ZE.MediaTypes=ZE.Headers=ZE.HttpCodes=void 0;var M_r=OIt(wt("http")),ojn=OIt(wt("https")),H_r=OIt(IQn()),LIt=OIt(bQn()),Koa=sjn(),RM;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(RM||(ZE.HttpCodes=RM={}));var bG;(function(e){e.Accept="accept",e.ContentType="content-type"})(bG||(ZE.Headers=bG={}));var Z$;(function(e){e.ApplicationJson="application/json"})(Z$||(ZE.MediaTypes=Z$={}));function joa(e){let t=H_r.getProxyUrl(new URL(e));return t?t.href:""}ZE.getProxyUrl=joa;var zoa=[RM.MovedPermanently,RM.ResourceMoved,RM.SeeOther,RM.TemporaryRedirect,RM.PermanentRedirect],qoa=[RM.BadGateway,RM.ServiceUnavailable,RM.GatewayTimeout],$oa=["OPTIONS","GET","DELETE","HEAD"],eaa=10,taa=5,PIt=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}};ZE.HttpClientError=PIt;var WIt=class{constructor(t){this.message=t}readBody(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=Buffer.alloc(0);this.message.on("data",n=>{r=Buffer.concat([r,n])}),this.message.on("end",()=>{t(r.toString())})}))})}readBodyBuffer(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=[];this.message.on("data",n=>{r.push(n)}),this.message.on("end",()=>{t(Buffer.concat(r))})}))})}};ZE.HttpClientResponse=WIt;function raa(e){return new URL(e).protocol==="https:"}ZE.isHttps=raa;var Y_r=class{constructor(t,r,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=t,this.handlers=r||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(t,r){return ew(this,void 0,void 0,function*(){return this.request("OPTIONS",t,null,r||{})})}get(t,r){return ew(this,void 0,void 0,function*(){return this.request("GET",t,null,r||{})})}del(t,r){return ew(this,void 0,void 0,function*(){return this.request("DELETE",t,null,r||{})})}post(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("POST",t,r,n||{})})}patch(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PATCH",t,r,n||{})})}put(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PUT",t,r,n||{})})}head(t,r){return ew(this,void 0,void 0,function*(){return this.request("HEAD",t,null,r||{})})}sendStream(t,r,n,a){return ew(this,void 0,void 0,function*(){return this.request(t,r,n,a)})}getJson(t,r={}){return ew(this,void 0,void 0,function*(){r[bG.Accept]=this._getExistingOrDefaultHeader(r,bG.Accept,Z$.ApplicationJson);let n=yield this.get(t,r);return this._processResponse(n,this.requestOptions)})}postJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.post(t,a,n);return this._processResponse(o,this.requestOptions)})}putJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.put(t,a,n);return this._processResponse(o,this.requestOptions)})}patchJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.patch(t,a,n);return this._processResponse(o,this.requestOptions)})}request(t,r,n,a){return ew(this,void 0,void 0,function*(){if(this._disposed)throw new Error("Client has already been disposed.");let o=new URL(r),l=this._prepareRequest(t,o,a),A=this._allowRetries&&$oa.includes(t)?this._maxRetries+1:1,f=0,I;do{if(I=yield this.requestRaw(l,n),I&&I.message&&I.message.statusCode===RM.Unauthorized){let b;for(let E of this.handlers)if(E.canHandleAuthentication(I)){b=E;break}return b?b.handleAuthentication(this,l,n):I}let C=this._maxRedirects;for(;I.message.statusCode&&zoa.includes(I.message.statusCode)&&this._allowRedirects&&C>0;){let b=I.message.headers.location;if(!b)break;let E=new URL(b);if(o.protocol==="https:"&&o.protocol!==E.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield I.readBody(),E.hostname!==o.hostname)for(let N in a)N.toLowerCase()==="authorization"&&delete a[N];l=this._prepareRequest(t,E,a),I=yield this.requestRaw(l,n),C--}if(!I.message.statusCode||!qoa.includes(I.message.statusCode))return I;f+=1,f{function o(l,A){l?a(l):A?n(A):a(new Error("Unknown error"))}this.requestRawWithCallback(t,r,o)})})}requestRawWithCallback(t,r,n){typeof r=="string"&&(t.options.headers||(t.options.headers={}),t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let a=!1;function o(f,I){a||(a=!0,n(f,I))}let l=t.httpModule.request(t.options,f=>{let I=new WIt(f);o(void 0,I)}),A;l.on("socket",f=>{A=f}),l.setTimeout(this._socketTimeout||3*6e4,()=>{A&&A.end(),o(new Error(`Request timeout: ${t.options.path}`))}),l.on("error",function(f){o(f)}),r&&typeof r=="string"&&l.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){l.end()}),r.pipe(l)):l.end()}getAgent(t){let r=new URL(t);return this._getAgent(r)}getAgentDispatcher(t){let r=new URL(t),n=H_r.getProxyUrl(r);if(n&&n.hostname)return this._getProxyAgentDispatcher(r,n)}_prepareRequest(t,r,n){let a={};a.parsedUrl=r;let o=a.parsedUrl.protocol==="https:";a.httpModule=o?ojn:M_r;let l=o?443:80;if(a.options={},a.options.host=a.parsedUrl.hostname,a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):l,a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||""),a.options.method=t,a.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(a.options.headers["user-agent"]=this.userAgent),a.options.agent=this._getAgent(a.parsedUrl),this.handlers)for(let A of this.handlers)A.prepareRequest(a.options);return a}_mergeHeaders(t){return this.requestOptions&&this.requestOptions.headers?Object.assign({},VIt(this.requestOptions.headers),VIt(t||{})):VIt(t||{})}_getExistingOrDefaultHeader(t,r,n){let a;return this.requestOptions&&this.requestOptions.headers&&(a=VIt(this.requestOptions.headers)[r]),t[r]||a||n}_getAgent(t){let r,n=H_r.getProxyUrl(t),a=n&&n.hostname;if(this._keepAlive&&a&&(r=this._proxyAgent),a||(r=this._agent),r)return r;let o=t.protocol==="https:",l=100;if(this.requestOptions&&(l=this.requestOptions.maxSockets||M_r.globalAgent.maxSockets),n&&n.hostname){let A={maxSockets:l,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},f,I=n.protocol==="https:";o?f=I?LIt.httpsOverHttps:LIt.httpsOverHttp:f=I?LIt.httpOverHttps:LIt.httpOverHttp,r=f(A),this._proxyAgent=r}if(!r){let A={keepAlive:this._keepAlive,maxSockets:l};r=o?new ojn.Agent(A):new M_r.Agent(A),this._agent=r}return o&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_getProxyAgentDispatcher(t,r){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let a=t.protocol==="https:";return n=new Koa.ProxyAgent(Object.assign({uri:r.href,pipelining:this._keepAlive?1:0},(r.username||r.password)&&{token:`Basic ${Buffer.from(`${r.username}:${r.password}`).toString("base64")}`})),this._proxyAgentDispatcher=n,a&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_performExponentialBackoff(t){return ew(this,void 0,void 0,function*(){t=Math.min(eaa,t);let r=taa*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))})}_processResponse(t,r){return ew(this,void 0,void 0,function*(){return new Promise((n,a)=>ew(this,void 0,void 0,function*(){let o=t.message.statusCode||0,l={statusCode:o,result:null,headers:{}};o===RM.NotFound&&n(l);function A(C,b){if(typeof b=="string"){let E=new Date(b);if(!isNaN(E.valueOf()))return E}return b}let f,I;try{I=yield t.readBody(),I&&I.length>0&&(r&&r.deserializeDates?f=JSON.parse(I,A):f=JSON.parse(I),l.result=f),l.headers=t.message.headers}catch{}if(o>299){let C;f&&f.message?C=f.message:I&&I.length>0?C=I:C=`Failed request: (${o})`;let b=new PIt(C,o);b.result=l.result,a(b)}else n(l)}))})}};ZE.HttpClient=Y_r;var VIt=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{})});var B2=H((Gsu,cjn)=>{cjn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Y0=H((Fsu,ljn)=>{"use strict";var RS=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Q_r=class extends RS{constructor(t){super(t),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},X_r=class extends RS{constructor(t){super(t),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},J_r=class extends RS{constructor(t){super(t),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},U_r=class extends RS{constructor(t){super(t),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},K_r=class extends RS{constructor(t,r,n,a){super(t),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},j_r=class extends RS{constructor(t){super(t),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},z_r=class extends RS{constructor(t){super(t),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},MIt=class extends RS{constructor(t){super(t),this.name="AbortError",this.message=t||"The operation was aborted"}},q_r=class extends MIt{constructor(t){super(t),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$_r=class extends RS{constructor(t){super(t),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},e0r=class extends RS{constructor(t){super(t),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},t0r=class extends RS{constructor(t){super(t),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},r0r=class extends RS{constructor(t){super(t),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},n0r=class extends RS{constructor(t){super(t),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},i0r=class extends RS{constructor(t,r){super(t),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},s0r=class extends RS{constructor(t){super(t),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},o0r=class extends RS{constructor(t){super(t),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},a0r=class extends Error{constructor(t,r,n){super(t),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},c0r=class extends RS{constructor(t){super(t),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},l0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}},u0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="ResponseError",this.message=t||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=r,this.data=a,this.headers=n}},g0r=class extends RS{constructor(t,r,n){super(r,{cause:t,...n??{}}),this.name="SecureProxyConnectionError",this.message=r||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=t}};ljn.exports={AbortError:MIt,HTTPParserError:a0r,UndiciError:RS,HeadersTimeoutError:X_r,HeadersOverflowError:J_r,BodyTimeoutError:U_r,RequestContentLengthMismatchError:e0r,ConnectTimeoutError:Q_r,ResponseStatusCodeError:K_r,InvalidArgumentError:j_r,InvalidReturnValueError:z_r,RequestAbortedError:q_r,ClientDestroyedError:r0r,ClientClosedError:n0r,InformationalError:$_r,SocketError:i0r,NotSupportedError:s0r,ResponseContentLengthMismatchError:t0r,BalancedPoolMissingUpstreamError:o0r,ResponseExceededMaxSizeError:c0r,RequestRetryError:l0r,ResponseError:u0r,SecureProxyConnectionError:g0r}});var YIt=H((Zsu,ujn)=>{"use strict";var HIt={},A0r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var{wellknownHeaderNames:gjn,headerNameLowerCasedRecord:naa}=YIt(),d0r=class e{value=null;left=null;middle=null;right=null;code;constructor(t,r,n){if(n===void 0||n>=t.length)throw new TypeError("Unreachable");if((this.code=t.charCodeAt(n))>127)throw new TypeError("key must be ascii string");t.length!==++n?this.middle=new e(t,r,n):this.value=r}add(t,r){let n=t.length;if(n===0)throw new TypeError("Unreachable");let a=0,o=this;for(;;){let l=t.charCodeAt(a);if(l>127)throw new TypeError("key must be ascii string");if(o.code===l)if(n===++a){o.value=r;break}else if(o.middle!==null)o=o.middle;else{o.middle=new e(t,r,a);break}else if(o.code=65&&(o|=32);a!==null;){if(o===a.code){if(r===++n)return a;a=a.middle;break}a=a.code{"use strict";var tYe=wt("node:assert"),{kDestroyed:Ijn,kBodyUsed:gwe,kListeners:p0r,kBody:fjn}=B2(),{IncomingMessage:iaa}=wt("node:http"),UIt=wt("node:stream"),saa=wt("node:net"),{Blob:oaa}=wt("node:buffer"),aaa=wt("node:util"),{stringify:caa}=wt("node:querystring"),{EventEmitter:laa}=wt("node:events"),{InvalidArgumentError:eD}=Y0(),{headerNameLowerCasedRecord:uaa}=YIt(),{tree:hjn}=pjn(),[gaa,Aaa]=process.versions.node.split(".").map(e=>Number(e)),JIt=class{constructor(t){this[fjn]=t,this[gwe]=!1}async*[Symbol.asyncIterator](){tYe(!this[gwe],"disturbed"),this[gwe]=!0,yield*this[fjn]}};function daa(e){return KIt(e)?(bjn(e)===0&&e.on("data",function(){tYe(!1)}),typeof e.readableDidRead!="boolean"&&(e[gwe]=!1,laa.prototype.on.call(e,"data",function(){this[gwe]=!0})),e):e&&typeof e.pipeTo=="function"?new JIt(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&yjn(e)?new JIt(e):e}function paa(){}function KIt(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function mjn(e){if(e===null)return!1;if(e instanceof oaa)return!0;if(typeof e!="object")return!1;{let t=e[Symbol.toStringTag];return(t==="Blob"||t==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function faa(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=caa(t);return r&&(e+="?"+r),e}function Cjn(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function XIt(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function _jn(e){if(typeof e=="string"){if(e=new URL(e),!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new eD("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Cjn(e.port)===!1)throw new eD("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new eD("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new eD("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new eD("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new eD("Invalid URL origin: the origin must be a string or null/undefined.");if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return r[r.length-1]==="/"&&(r=r.slice(0,r.length-1)),n&&n[0]!=="/"&&(n=`/${n}`),new URL(`${r}${n}`)}if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Iaa(e){if(e=_jn(e),e.pathname!=="/"||e.search||e.hash)throw new eD("invalid url");return e}function haa(e){if(e[0]==="["){let r=e.indexOf("]");return tYe(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function maa(e){if(!e)return null;tYe(typeof e=="string");let t=haa(e);return saa.isIP(t)?"":t}function Caa(e){return JSON.parse(JSON.stringify(e))}function _aa(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function yjn(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function bjn(e){if(e==null)return 0;if(KIt(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(mjn(e))return e.size!=null?e.size:null;if(vjn(e))return e.byteLength}return null}function Ejn(e){return e&&!!(e.destroyed||e[Ijn]||UIt.isDestroyed?.(e))}function yaa(e,t){e==null||!KIt(e)||Ejn(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===iaa&&(e.socket=null),e.destroy(t)):t&&queueMicrotask(()=>{e.emit("error",t)}),e.destroyed!==!0&&(e[Ijn]=!0))}var baa=/timeout=(\d+)/;function Eaa(e){let t=e.toString().match(baa);return t?parseInt(t[1],10)*1e3:null}function Sjn(e){return typeof e=="string"?uaa[e]??e.toLowerCase():hjn.lookup(e)??e.toString("latin1").toLowerCase()}function Saa(e){return hjn.lookup(e)??e.toString("latin1").toLowerCase()}function vaa(e,t){t===void 0&&(t={});for(let r=0;rl.toString("utf8")):o.toString("utf8")}}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function Baa(e){let t=e.length,r=new Array(t),n=!1,a=-1,o,l,A=0;for(let f=0;f{r.close(),r.byobRequest?.respond(0)});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);o.byteLength&&r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()},type:"bytes"})}function xaa(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Gaa(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var Faa=typeof String.prototype.toWellFormed=="function",Zaa=typeof String.prototype.isWellFormed=="function";function Bjn(e){return Faa?`${e}`.toWellFormed():aaa.toUSVString(e)}function Laa(e){return Zaa?`${e}`.isWellFormed():Bjn(e)===`${e}`}function wjn(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Vaa(e){if(e.length===0)return!1;for(let t=0;t{"use strict";var Q0=wt("node:diagnostics_channel"),h0r=wt("node:util"),jIt=h0r.debuglog("undici"),I0r=h0r.debuglog("fetch"),ehe=h0r.debuglog("websocket"),Djn=!1,Qaa={beforeConnect:Q0.channel("undici:client:beforeConnect"),connected:Q0.channel("undici:client:connected"),connectError:Q0.channel("undici:client:connectError"),sendHeaders:Q0.channel("undici:client:sendHeaders"),create:Q0.channel("undici:request:create"),bodySent:Q0.channel("undici:request:bodySent"),headers:Q0.channel("undici:request:headers"),trailers:Q0.channel("undici:request:trailers"),error:Q0.channel("undici:request:error"),open:Q0.channel("undici:websocket:open"),close:Q0.channel("undici:websocket:close"),socketError:Q0.channel("undici:websocket:socket_error"),ping:Q0.channel("undici:websocket:ping"),pong:Q0.channel("undici:websocket:pong")};if(jIt.enabled||I0r.enabled){let e=I0r.enabled?I0r:jIt;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s using %s%s errored - %s",`${o}${a?`:${a}`:""}`,n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)}),Q0.channel("undici:request:headers").subscribe(t=>{let{request:{method:r,path:n,origin:a},response:{statusCode:o}}=t;e("received response to %s %s/%s - HTTP %d",r,a,n,o)}),Q0.channel("undici:request:trailers").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("trailers received from %s %s/%s",r,a,n)}),Q0.channel("undici:request:error").subscribe(t=>{let{request:{method:r,path:n,origin:a},error:o}=t;e("request to %s %s/%s errored - %s",r,a,n,o.message)}),Djn=!0}if(ehe.enabled){if(!Djn){let e=jIt.enabled?jIt:ehe;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s%s using %s%s errored - %s",o,a?`:${a}`:"",n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)})}Q0.channel("undici:websocket:open").subscribe(e=>{let{address:{address:t,port:r}}=e;ehe("connection opened %s%s",t,r?`:${r}`:"")}),Q0.channel("undici:websocket:close").subscribe(e=>{let{websocket:t,code:r,reason:n}=e;ehe("closed connection to %s - %s %s",t.url,r,n)}),Q0.channel("undici:websocket:socket_error").subscribe(e=>{ehe("connection errored - %s",e.message)}),Q0.channel("undici:websocket:ping").subscribe(e=>{ehe("ping received")}),Q0.channel("undici:websocket:pong").subscribe(e=>{ehe("pong received")})}kjn.exports={channels:Qaa}});var Ljn=H((Wsu,Zjn)=>{"use strict";var{InvalidArgumentError:NS,NotSupportedError:Xaa}=Y0(),L$=wt("node:assert"),{isValidHTTPToken:Fjn,isValidHeaderValue:xjn,isStream:Jaa,destroy:Uaa,isBuffer:Kaa,isFormDataLike:jaa,isIterable:zaa,isBlobLike:qaa,buildURL:$aa,validateHandler:eca,getServerName:tca,normalizedMethodRecords:rca}=Em(),{channels:B8}=Awe(),{headerNameLowerCasedRecord:Gjn}=YIt(),nca=/[^\u0021-\u00ff]/,NM=Symbol("handler"),m0r=class{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B,servername:F},Q){if(typeof r!="string")throw new NS("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new NS("path must be an absolute URL or start with a slash");if(nca.test(r))throw new NS("invalid request path");if(typeof n!="string")throw new NS("method must be a string");if(rca[n]===void 0&&!Fjn(n))throw new NS("invalid request method");if(I&&typeof I!="string")throw new NS("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new NS("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new NS("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new NS("invalid reset");if(B!=null&&typeof B!="boolean")throw new NS("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(Jaa(a)){this.body=a;let X=this.body._readableState;(!X||!X.autoDestroy)&&(this.endHandler=function(){Uaa(this)},this.body.on("end",this.endHandler)),this.errorHandler=ae=>{this.abort?this.abort(ae):this.error=ae},this.body.on("error",this.errorHandler)}else if(Kaa(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(jaa(a)||zaa(a)||qaa(a))this.body=a;else throw new NS("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?$aa(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new NS("headers array must be even");for(let X=0;X{"use strict";var ica=wt("node:events"),qIt=class extends ica{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...t){let r=Array.isArray(t[0])?t[0]:t,n=this.dispatch.bind(this);for(let a of r)if(a!=null){if(typeof a!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof a}`);if(n=a(n),n==null||typeof n!="function"||n.length!==2)throw new TypeError("invalid interceptor")}return new C0r(this,n)}},C0r=class extends qIt{#e=null;#t=null;constructor(t,r){super(),this.#e=t,this.#t=r}dispatch(...t){this.#t(...t)}close(...t){return this.#e.close(...t)}destroy(...t){return this.#e.destroy(...t)}};Vjn.exports=qIt});var Iwe=H((Msu,Pjn)=>{"use strict";var sca=rYe(),{ClientDestroyedError:_0r,ClientClosedError:oca,InvalidArgumentError:dwe}=Y0(),{kDestroy:aca,kClose:cca,kClosed:nYe,kDestroyed:pwe,kDispatch:y0r,kInterceptors:the}=B2(),V$=Symbol("onDestroyed"),fwe=Symbol("onClosed"),$It=Symbol("Intercepted Dispatch"),b0r=class extends sca{constructor(){super(),this[pwe]=!1,this[V$]=null,this[nYe]=!1,this[fwe]=[]}get destroyed(){return this[pwe]}get closed(){return this[nYe]}get interceptors(){return this[the]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[the][r]!="function")throw new dwe("interceptor must be an function")}this[the]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new dwe("invalid callback");if(this[pwe]){queueMicrotask(()=>t(new _0r,null));return}if(this[nYe]){this[fwe]?this[fwe].push(t):queueMicrotask(()=>t(null,null));return}this[nYe]=!0,this[fwe].push(t);let r=()=>{let n=this[fwe];this[fwe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new dwe("invalid callback");if(this[pwe]){this[V$]?this[V$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new _0r),this[pwe]=!0,this[V$]=this[V$]||[],this[V$].push(r);let n=()=>{let a=this[V$];this[V$]=null;for(let o=0;o{queueMicrotask(n)})}[$It](t,r){if(!this[the]||this[the].length===0)return this[$It]=this[y0r],this[y0r](t,r);let n=this[y0r].bind(this);for(let a=this[the].length-1;a>=0;a--)n=this[the][a](n);return this[$It]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new dwe("handler must be an object");try{if(!t||typeof t!="object")throw new dwe("opts must be an object.");if(this[pwe]||this[V$])throw new _0r;if(this[nYe])throw new oca;return this[$It](t,r)}catch(n){if(typeof r.onError!="function")throw new dwe("invalid onError method");return r.onError(n),!1}}};Pjn.exports=b0r});var R0r=H((Hsu,Hjn)=>{"use strict";var hwe=0,E0r=1e3,S0r=(E0r>>1)-1,P$,v0r=Symbol("kFastTimer"),W$=[],B0r=-2,w0r=-1,Ojn=0,Wjn=1;function T0r(){hwe+=S0r;let e=0,t=W$.length;for(;e=r._idleStart+r._idleTimeout&&(r._state=w0r,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===w0r?(r._state=B0r,--t!==0&&(W$[e]=W$[t])):++e}W$.length=t,W$.length!==0&&Mjn()}function Mjn(){P$?P$.refresh():(clearTimeout(P$),P$=setTimeout(T0r,S0r),P$.unref&&P$.unref())}var eht=class{[v0r]=!0;_state=B0r;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(t,r,n){this._onTimeout=t,this._idleTimeout=r,this._timerArg=n,this.refresh()}refresh(){this._state===B0r&&W$.push(this),(!P$||W$.length===1)&&Mjn(),this._state=Ojn}clear(){this._state=w0r,this._idleStart=-1}};Hjn.exports={setTimeout(e,t,r){return t<=E0r?setTimeout(e,t,r):new eht(e,t,r)},clearTimeout(e){e[v0r]?e.clear():clearTimeout(e)},setFastTimeout(e,t,r){return new eht(e,t,r)},clearFastTimeout(e){e.clear()},now(){return hwe},tick(e=0){hwe+=e-E0r+1,T0r(),T0r()},reset(){hwe=0,W$.length=0,clearTimeout(P$),P$=null},kFastTimer:v0r}});var iYe=H((Xsu,Ujn)=>{"use strict";var lca=wt("node:net"),Yjn=wt("node:assert"),Jjn=Em(),{InvalidArgumentError:uca,ConnectTimeoutError:gca}=Y0(),tht=R0r();function Qjn(){}var N0r,D0r;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?D0r=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function Aca({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,session:a,...o}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new uca("maxCachedSessions must be a positive integer or zero");let l={path:r,...o},A=new D0r(t??100);return n=n??1e4,e=e??!1,function({hostname:I,host:C,protocol:b,port:E,servername:N,localAddress:B,httpSocket:F},Q){let X;if(b==="https:"){N0r||(N0r=wt("node:tls")),N=N||l.servername||Jjn.getServerName(C)||null;let ne=N||I;Yjn(ne);let ce=a||A.get(ne)||null;E=E||443,X=N0r.connect({highWaterMark:16384,...l,servername:N,session:ce,localAddress:B,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:F,port:E,host:I}),X.on("session",function(fe){A.set(ne,fe)})}else Yjn(!F,"httpSocket can only be sent on TLS update"),E=E||80,X=lca.connect({highWaterMark:64*1024,...l,localAddress:B,port:E,host:I});if(l.keepAlive==null||l.keepAlive){let ne=l.keepAliveInitialDelay===void 0?6e4:l.keepAliveInitialDelay;X.setKeepAlive(!0,ne)}let ae=dca(new WeakRef(X),{timeout:n,hostname:I,port:E});return X.setNoDelay(!0).once(b==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(ae),Q){let ne=Q;Q=null,ne(null,this)}}).on("error",function(ne){if(queueMicrotask(ae),Q){let ce=Q;Q=null,ce(ne)}}),X}}var dca=process.platform==="win32"?(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=null,a=tht.setFastTimeout(()=>{r=setImmediate(()=>{n=setImmediate(()=>Xjn(e.deref(),t))})},t.timeout);return()=>{tht.clearFastTimeout(a),clearImmediate(r),clearImmediate(n)}}:(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=tht.setFastTimeout(()=>{r=setImmediate(()=>{Xjn(e.deref(),t)})},t.timeout);return()=>{tht.clearFastTimeout(n),clearImmediate(r)}};function Xjn(e,t){let r="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:r+=` (attempted address: ${t.hostname}:${t.port},`,r+=` timeout: ${t.timeout}ms)`,Jjn.destroy(e,new gca(r))}Ujn.exports=Aca});var Kjn=H(rht=>{"use strict";Object.defineProperty(rht,"__esModule",{value:!0});rht.enumToMap=void 0;function pca(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}rht.enumToMap=pca});var jjn=H(Gu=>{"use strict";Object.defineProperty(Gu,"__esModule",{value:!0});Gu.SPECIAL_HEADERS=Gu.HEADER_STATE=Gu.MINOR=Gu.MAJOR=Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS=Gu.TOKEN=Gu.STRICT_TOKEN=Gu.HEX=Gu.URL_CHAR=Gu.STRICT_URL_CHAR=Gu.USERINFO_CHARS=Gu.MARK=Gu.ALPHANUM=Gu.NUM=Gu.HEX_MAP=Gu.NUM_MAP=Gu.ALPHA=Gu.FINISH=Gu.H_METHOD_MAP=Gu.METHOD_MAP=Gu.METHODS_RTSP=Gu.METHODS_ICE=Gu.METHODS_HTTP=Gu.METHODS=Gu.LENIENT_FLAGS=Gu.FLAGS=Gu.TYPE=Gu.ERROR=void 0;var fca=Kjn(),Ica;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Ica=Gu.ERROR||(Gu.ERROR={}));var hca;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(hca=Gu.TYPE||(Gu.TYPE={}));var mca;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(mca=Gu.FLAGS||(Gu.FLAGS={}));var Cca;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Cca=Gu.LENIENT_FLAGS||(Gu.LENIENT_FLAGS={}));var Pp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Pp=Gu.METHODS||(Gu.METHODS={}));Gu.METHODS_HTTP=[Pp.DELETE,Pp.GET,Pp.HEAD,Pp.POST,Pp.PUT,Pp.CONNECT,Pp.OPTIONS,Pp.TRACE,Pp.COPY,Pp.LOCK,Pp.MKCOL,Pp.MOVE,Pp.PROPFIND,Pp.PROPPATCH,Pp.SEARCH,Pp.UNLOCK,Pp.BIND,Pp.REBIND,Pp.UNBIND,Pp.ACL,Pp.REPORT,Pp.MKACTIVITY,Pp.CHECKOUT,Pp.MERGE,Pp["M-SEARCH"],Pp.NOTIFY,Pp.SUBSCRIBE,Pp.UNSUBSCRIBE,Pp.PATCH,Pp.PURGE,Pp.MKCALENDAR,Pp.LINK,Pp.UNLINK,Pp.PRI,Pp.SOURCE];Gu.METHODS_ICE=[Pp.SOURCE];Gu.METHODS_RTSP=[Pp.OPTIONS,Pp.DESCRIBE,Pp.ANNOUNCE,Pp.SETUP,Pp.PLAY,Pp.PAUSE,Pp.TEARDOWN,Pp.GET_PARAMETER,Pp.SET_PARAMETER,Pp.REDIRECT,Pp.RECORD,Pp.FLUSH,Pp.GET,Pp.POST];Gu.METHOD_MAP=fca.enumToMap(Pp);Gu.H_METHOD_MAP={};Object.keys(Gu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(Gu.H_METHOD_MAP[e]=Gu.METHOD_MAP[e])});var _ca;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_ca=Gu.FINISH||(Gu.FINISH={}));Gu.ALPHA=[];for(let e=65;e<=90;e++)Gu.ALPHA.push(String.fromCharCode(e)),Gu.ALPHA.push(String.fromCharCode(e+32));Gu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};Gu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};Gu.NUM=["0","1","2","3","4","5","6","7","8","9"];Gu.ALPHANUM=Gu.ALPHA.concat(Gu.NUM);Gu.MARK=["-","_",".","!","~","*","'","(",")"];Gu.USERINFO_CHARS=Gu.ALPHANUM.concat(Gu.MARK).concat(["%",";",":","&","=","+","$",","]);Gu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(Gu.ALPHANUM);Gu.URL_CHAR=Gu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)Gu.URL_CHAR.push(e);Gu.HEX=Gu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);Gu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(Gu.ALPHANUM);Gu.TOKEN=Gu.STRICT_TOKEN.concat([" "]);Gu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&Gu.HEADER_CHARS.push(e);Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS.filter(e=>e!==44);Gu.MAJOR=Gu.NUM_MAP;Gu.MINOR=Gu.MAJOR;var mwe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(mwe=Gu.HEADER_STATE||(Gu.HEADER_STATE={}));Gu.SPECIAL_HEADERS={connection:mwe.CONNECTION,"content-length":mwe.CONTENT_LENGTH,"proxy-connection":mwe.CONNECTION,"transfer-encoding":mwe.TRANSFER_ENCODING,upgrade:mwe.UPGRADE}});var k0r=H((Ksu,zjn)=>{"use strict";var{Buffer:yca}=wt("node:buffer");zjn.exports=yca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var $jn=H((jsu,qjn)=>{"use strict";var{Buffer:bca}=wt("node:buffer");qjn.exports=bca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDsYBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHyAhIyUmKCorLC8wMTIzNDU2Nzk6Ozw9lANAQkRFRklLTk9QUVJTVFVWWFpbXF1eX2BhYmNkZWZnaGpsb3Bxc3V2eHl6e3x/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcsBzAHNAc4BzwGKA4kDiAOHA4QDgwOAA/sC+gL5AvgC9wL0AvMC8gLLAsECsALZAQsgASAERw3wAkHdASEDDLMDCyABIARHDcgBQcMBIQMMsgMLIAEgBEcNe0H3ACEDDLEDCyABIARHDXBB7wAhAwywAwsgASAERw1pQeoAIQMMrwMLIAEgBEcNZUHoACEDDK4DCyABIARHDWJB5gAhAwytAwsgASAERw0aQRghAwysAwsgASAERw0VQRIhAwyrAwsgASAERw1CQcUAIQMMqgMLIAEgBEcNNEE/IQMMqQMLIAEgBEcNMkE8IQMMqAMLIAEgBEcNK0ExIQMMpwMLIAItAC5BAUYNnwMMwQILQQAhAAJAAkACQCACLQAqRQ0AIAItACtFDQAgAi8BMCIDQQJxRQ0BDAILIAIvATAiA0EBcUUNAQtBASEAIAItAChBAUYNACACLwEyIgVB5ABrQeQASQ0AIAVBzAFGDQAgBUGwAkYNACADQcAAcQ0AQQAhACADQYgEcUGABEYNACADQShxQQBHIQALIAJBADsBMCACQQA6AC8gAEUN3wIgAkIANwMgDOACC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAARQ3MASAAQRVHDd0CIAJBBDYCHCACIAE2AhQgAkGwGDYCECACQRU2AgxBACEDDKQDCyABIARGBEBBBiEDDKQDCyABQQFqIQFBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAA3ZAgwcCyACQgA3AyBBEiEDDIkDCyABIARHDRZBHSEDDKEDCyABIARHBEAgAUEBaiEBQRAhAwyIAwtBByEDDKADCyACIAIpAyAiCiAEIAFrrSILfSIMQgAgCiAMWhs3AyAgCiALWA3UAkEIIQMMnwMLIAEgBEcEQCACQQk2AgggAiABNgIEQRQhAwyGAwtBCSEDDJ4DCyACKQMgQgBSDccBIAIgAi8BMEGAAXI7ATAMQgsgASAERw0/QdAAIQMMnAMLIAEgBEYEQEELIQMMnAMLIAFBAWohAUEAIQACQCACKAI4IgNFDQAgAygCUCIDRQ0AIAIgAxEAACEACyAADc8CDMYBC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ3GASAAQRVHDc0CIAJBCzYCHCACIAE2AhQgAkGCGTYCECACQRU2AgxBACEDDJoDC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ0MIABBFUcNygIgAkEaNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMmQMLQQAhAAJAIAIoAjgiA0UNACADKAJMIgNFDQAgAiADEQAAIQALIABFDcQBIABBFUcNxwIgAkELNgIcIAIgATYCFCACQZEXNgIQIAJBFTYCDEEAIQMMmAMLIAEgBEYEQEEPIQMMmAMLIAEtAAAiAEE7Rg0HIABBDUcNxAIgAUEBaiEBDMMBC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3DASAAQRVHDcICIAJBDzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJYDCwNAIAEtAABB8DVqLQAAIgBBAUcEQCAAQQJHDcECIAIoAgQhAEEAIQMgAkEANgIEIAIgACABQQFqIgEQLSIADcICDMUBCyAEIAFBAWoiAUcNAAtBEiEDDJUDC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3FASAAQRVHDb0CIAJBGzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJQDCyABIARGBEBBFiEDDJQDCyACQQo2AgggAiABNgIEQQAhAAJAIAIoAjgiA0UNACADKAJIIgNFDQAgAiADEQAAIQALIABFDcIBIABBFUcNuQIgAkEVNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMkwMLIAEgBEcEQANAIAEtAABB8DdqLQAAIgBBAkcEQAJAIABBAWsOBMQCvQIAvgK9AgsgAUEBaiEBQQghAwz8AgsgBCABQQFqIgFHDQALQRUhAwyTAwtBFSEDDJIDCwNAIAEtAABB8DlqLQAAIgBBAkcEQCAAQQFrDgTFArcCwwK4ArcCCyAEIAFBAWoiAUcNAAtBGCEDDJEDCyABIARHBEAgAkELNgIIIAIgATYCBEEHIQMM+AILQRkhAwyQAwsgAUEBaiEBDAILIAEgBEYEQEEaIQMMjwMLAkAgAS0AAEENaw4UtQG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwEAvwELQQAhAyACQQA2AhwgAkGvCzYCECACQQI2AgwgAiABQQFqNgIUDI4DCyABIARGBEBBGyEDDI4DCyABLQAAIgBBO0cEQCAAQQ1HDbECIAFBAWohAQy6AQsgAUEBaiEBC0EiIQMM8wILIAEgBEYEQEEcIQMMjAMLQgAhCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43wQLAAgABAgMEBQYH0AHQAdAB0AHQAdAB0AEICQoLDA3QAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdABDg8QERIT0AELQgIhCgzAAgtCAyEKDL8CC0IEIQoMvgILQgUhCgy9AgtCBiEKDLwCC0IHIQoMuwILQgghCgy6AgtCCSEKDLkCC0IKIQoMuAILQgshCgy3AgtCDCEKDLYCC0INIQoMtQILQg4hCgy0AgtCDyEKDLMCC0IKIQoMsgILQgshCgyxAgtCDCEKDLACC0INIQoMrwILQg4hCgyuAgtCDyEKDK0CC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsON8ACvwIAAQIDBAUGB74CvgK+Ar4CvgK+Ar4CCAkKCwwNvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ag4PEBESE74CC0ICIQoMvwILQgMhCgy+AgtCBCEKDL0CC0IFIQoMvAILQgYhCgy7AgtCByEKDLoCC0IIIQoMuQILQgkhCgy4AgtCCiEKDLcCC0ILIQoMtgILQgwhCgy1AgtCDSEKDLQCC0IOIQoMswILQg8hCgyyAgtCCiEKDLECC0ILIQoMsAILQgwhCgyvAgtCDSEKDK4CC0IOIQoMrQILQg8hCgysAgsgAiACKQMgIgogBCABa60iC30iDEIAIAogDFobNwMgIAogC1gNpwJBHyEDDIkDCyABIARHBEAgAkEJNgIIIAIgATYCBEElIQMM8AILQSAhAwyIAwtBASEFIAIvATAiA0EIcUUEQCACKQMgQgBSIQULAkAgAi0ALgRAQQEhACACLQApQQVGDQEgA0HAAHFFIAVxRQ0BC0EAIQAgA0HAAHENAEECIQAgA0EIcQ0AIANBgARxBEACQCACLQAoQQFHDQAgAi0ALUEKcQ0AQQUhAAwCC0EEIQAMAQsgA0EgcUUEQAJAIAItAChBAUYNACACLwEyIgBB5ABrQeQASQ0AIABBzAFGDQAgAEGwAkYNAEEEIQAgA0EocUUNAiADQYgEcUGABEYNAgtBACEADAELQQBBAyACKQMgUBshAAsgAEEBaw4FvgIAsAEBpAKhAgtBESEDDO0CCyACQQE6AC8MhAMLIAEgBEcNnQJBJCEDDIQDCyABIARHDRxBxgAhAwyDAwtBACEAAkAgAigCOCIDRQ0AIAMoAkQiA0UNACACIAMRAAAhAAsgAEUNJyAAQRVHDZgCIAJB0AA2AhwgAiABNgIUIAJBkRg2AhAgAkEVNgIMQQAhAwyCAwsgASAERgRAQSghAwyCAwtBACEDIAJBADYCBCACQQw2AgggAiABIAEQKiIARQ2UAiACQSc2AhwgAiABNgIUIAIgADYCDAyBAwsgASAERgRAQSkhAwyBAwsgAS0AACIAQSBGDRMgAEEJRw2VAiABQQFqIQEMFAsgASAERwRAIAFBAWohAQwWC0EqIQMM/wILIAEgBEYEQEErIQMM/wILIAEtAAAiAEEJRyAAQSBHcQ2QAiACLQAsQQhHDd0CIAJBADoALAzdAgsgASAERgRAQSwhAwz+AgsgAS0AAEEKRw2OAiABQQFqIQEMsAELIAEgBEcNigJBLyEDDPwCCwNAIAEtAAAiAEEgRwRAIABBCmsOBIQCiAKIAoQChgILIAQgAUEBaiIBRw0AC0ExIQMM+wILQTIhAyABIARGDfoCIAIoAgAiACAEIAFraiEHIAEgAGtBA2ohBgJAA0AgAEHwO2otAAAgAS0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQEgAEEDRgRAQQYhAQziAgsgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAc2AgAM+wILIAJBADYCAAyGAgtBMyEDIAQgASIARg35AiAEIAFrIAIoAgAiAWohByAAIAFrQQhqIQYCQANAIAFB9DtqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBCEYEQEEFIQEM4QILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPoCCyACQQA2AgAgACEBDIUCC0E0IQMgBCABIgBGDfgCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgJAA0AgAUHQwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBBUYEQEEHIQEM4AILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPkCCyACQQA2AgAgACEBDIQCCyABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRg0JDIECCyAEIAFBAWoiAUcNAAtBMCEDDPgCC0EwIQMM9wILIAEgBEcEQANAIAEtAAAiAEEgRwRAIABBCmsOBP8B/gH+Af8B/gELIAQgAUEBaiIBRw0AC0E4IQMM9wILQTghAwz2AgsDQCABLQAAIgBBIEcgAEEJR3EN9gEgBCABQQFqIgFHDQALQTwhAwz1AgsDQCABLQAAIgBBIEcEQAJAIABBCmsOBPkBBAT5AQALIABBLEYN9QEMAwsgBCABQQFqIgFHDQALQT8hAwz0AgtBwAAhAyABIARGDfMCIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAEGAQGstAAAgAS0AAEEgckcNASAAQQZGDdsCIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPQCCyACQQA2AgALQTYhAwzZAgsgASAERgRAQcEAIQMM8gILIAJBDDYCCCACIAE2AgQgAi0ALEEBaw4E+wHuAewB6wHUAgsgAUEBaiEBDPoBCyABIARHBEADQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxIgBBCUYNACAAQSBGDQACQAJAAkACQCAAQeMAaw4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIQMM3AILIAFBAWohAUEyIQMM2wILIAFBAWohAUEzIQMM2gILDP4BCyAEIAFBAWoiAUcNAAtBNSEDDPACC0E1IQMM7wILIAEgBEcEQANAIAEtAABBgDxqLQAAQQFHDfcBIAQgAUEBaiIBRw0AC0E9IQMM7wILQT0hAwzuAgtBACEAAkAgAigCOCIDRQ0AIAMoAkAiA0UNACACIAMRAAAhAAsgAEUNASAAQRVHDeYBIAJBwgA2AhwgAiABNgIUIAJB4xg2AhAgAkEVNgIMQQAhAwztAgsgAUEBaiEBC0E8IQMM0gILIAEgBEYEQEHCACEDDOsCCwJAA0ACQCABLQAAQQlrDhgAAswCzALRAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAgDMAgsgBCABQQFqIgFHDQALQcIAIQMM6wILIAFBAWohASACLQAtQQFxRQ3+AQtBLCEDDNACCyABIARHDd4BQcQAIQMM6AILA0AgAS0AAEGQwABqLQAAQQFHDZwBIAQgAUEBaiIBRw0AC0HFACEDDOcCCyABLQAAIgBBIEYN/gEgAEE6Rw3AAiACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgAN3gEM3QELQccAIQMgBCABIgBGDeUCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFBkMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvwIgAUEFRg3CAiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzlAgtByAAhAyAEIAEiAEYN5AIgBCABayACKAIAIgFqIQcgACABa0EJaiEGA0AgAUGWwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw2+AkECIAFBCUYNwgIaIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOQCCyABIARGBEBByQAhAwzkAgsCQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxQe4Aaw4HAL8CvwK/Ar8CvwIBvwILIAFBAWohAUE+IQMMywILIAFBAWohAUE/IQMMygILQcoAIQMgBCABIgBGDeICIAQgAWsgAigCACIBaiEGIAAgAWtBAWohBwNAIAFBoMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvAIgAUEBRg2+AiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBjYCAAziAgtBywAhAyAEIAEiAEYN4QIgBCABayACKAIAIgFqIQcgACABa0EOaiEGA0AgAUGiwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw27AiABQQ5GDb4CIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOECC0HMACEDIAQgASIARg3gAiAEIAFrIAIoAgAiAWohByAAIAFrQQ9qIQYDQCABQcDCAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDboCQQMgAUEPRg2+AhogAUEBaiEBIAQgAEEBaiIARw0ACyACIAc2AgAM4AILQc0AIQMgBCABIgBGDd8CIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFB0MIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNuQJBBCABQQVGDb0CGiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzfAgsgASAERgRAQc4AIQMM3wILAkACQAJAAkAgAS0AACIAQSByIAAgAEHBAGtB/wFxQRpJG0H/AXFB4wBrDhMAvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCAbwCvAK8AgIDvAILIAFBAWohAUHBACEDDMgCCyABQQFqIQFBwgAhAwzHAgsgAUEBaiEBQcMAIQMMxgILIAFBAWohAUHEACEDDMUCCyABIARHBEAgAkENNgIIIAIgATYCBEHFACEDDMUCC0HPACEDDN0CCwJAAkAgAS0AAEEKaw4EAZABkAEAkAELIAFBAWohAQtBKCEDDMMCCyABIARGBEBB0QAhAwzcAgsgAS0AAEEgRw0AIAFBAWohASACLQAtQQFxRQ3QAQtBFyEDDMECCyABIARHDcsBQdIAIQMM2QILQdMAIQMgASAERg3YAiACKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABB1sIAai0AAEcNxwEgAEEBRg3KASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBjYCAAzYAgsgASAERgRAQdUAIQMM2AILIAEtAABBCkcNwgEgAUEBaiEBDMoBCyABIARGBEBB1gAhAwzXAgsCQAJAIAEtAABBCmsOBADDAcMBAcMBCyABQQFqIQEMygELIAFBAWohAUHKACEDDL0CC0EAIQACQCACKAI4IgNFDQAgAygCPCIDRQ0AIAIgAxEAACEACyAADb8BQc0AIQMMvAILIAItAClBIkYNzwIMiQELIAQgASIFRgRAQdsAIQMM1AILQQAhAEEBIQFBASEGQQAhAwJAAn8CQAJAAkACQAJAAkACQCAFLQAAQTBrDgrFAcQBAAECAwQFBgjDAQtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshA0EAIQFBACEGDL0BC0EJIQNBASEAQQAhAUEAIQYMvAELIAEgBEYEQEHdACEDDNMCCyABLQAAQS5HDbgBIAFBAWohAQyIAQsgASAERw22AUHfACEDDNECCyABIARHBEAgAkEONgIIIAIgATYCBEHQACEDDLgCC0HgACEDDNACC0HhACEDIAEgBEYNzwIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGA0AgAS0AACAAQeLCAGotAABHDbEBIABBA0YNswEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMzwILQeIAIQMgASAERg3OAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYDQCABLQAAIABB5sIAai0AAEcNsAEgAEECRg2vASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAzOAgtB4wAhAyABIARGDc0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgNAIAEtAAAgAEHpwgBqLQAARw2vASAAQQNGDa0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADM0CCyABIARGBEBB5QAhAwzNAgsgAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANqgFB1gAhAwyzAgsgASAERwRAA0AgAS0AACIAQSBHBEACQAJAAkAgAEHIAGsOCwABswGzAbMBswGzAbMBswGzAQKzAQsgAUEBaiEBQdIAIQMMtwILIAFBAWohAUHTACEDDLYCCyABQQFqIQFB1AAhAwy1AgsgBCABQQFqIgFHDQALQeQAIQMMzAILQeQAIQMMywILA0AgAS0AAEHwwgBqLQAAIgBBAUcEQCAAQQJrDgOnAaYBpQGkAQsgBCABQQFqIgFHDQALQeYAIQMMygILIAFBAWogASAERw0CGkHnACEDDMkCCwNAIAEtAABB8MQAai0AACIAQQFHBEACQCAAQQJrDgSiAaEBoAEAnwELQdcAIQMMsQILIAQgAUEBaiIBRw0AC0HoACEDDMgCCyABIARGBEBB6QAhAwzIAgsCQCABLQAAIgBBCmsOGrcBmwGbAbQBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBpAGbAZsBAJkBCyABQQFqCyEBQQYhAwytAgsDQCABLQAAQfDGAGotAABBAUcNfSAEIAFBAWoiAUcNAAtB6gAhAwzFAgsgAUEBaiABIARHDQIaQesAIQMMxAILIAEgBEYEQEHsACEDDMQCCyABQQFqDAELIAEgBEYEQEHtACEDDMMCCyABQQFqCyEBQQQhAwyoAgsgASAERgRAQe4AIQMMwQILAkACQAJAIAEtAABB8MgAai0AAEEBaw4HkAGPAY4BAHwBAo0BCyABQQFqIQEMCwsgAUEBagyTAQtBACEDIAJBADYCHCACQZsSNgIQIAJBBzYCDCACIAFBAWo2AhQMwAILAkADQCABLQAAQfDIAGotAAAiAEEERwRAAkACQCAAQQFrDgeUAZMBkgGNAQAEAY0BC0HaACEDDKoCCyABQQFqIQFB3AAhAwypAgsgBCABQQFqIgFHDQALQe8AIQMMwAILIAFBAWoMkQELIAQgASIARgRAQfAAIQMMvwILIAAtAABBL0cNASAAQQFqIQEMBwsgBCABIgBGBEBB8QAhAwy+AgsgAC0AACIBQS9GBEAgAEEBaiEBQd0AIQMMpQILIAFBCmsiA0EWSw0AIAAhAUEBIAN0QYmAgAJxDfkBC0EAIQMgAkEANgIcIAIgADYCFCACQYwcNgIQIAJBBzYCDAy8AgsgASAERwRAIAFBAWohAUHeACEDDKMCC0HyACEDDLsCCyABIARGBEBB9AAhAwy7AgsCQCABLQAAQfDMAGotAABBAWsOA/cBcwCCAQtB4QAhAwyhAgsgASAERwRAA0AgAS0AAEHwygBqLQAAIgBBA0cEQAJAIABBAWsOAvkBAIUBC0HfACEDDKMCCyAEIAFBAWoiAUcNAAtB8wAhAwy6AgtB8wAhAwy5AgsgASAERwRAIAJBDzYCCCACIAE2AgRB4AAhAwygAgtB9QAhAwy4AgsgASAERgRAQfYAIQMMuAILIAJBDzYCCCACIAE2AgQLQQMhAwydAgsDQCABLQAAQSBHDY4CIAQgAUEBaiIBRw0AC0H3ACEDDLUCCyABIARGBEBB+AAhAwy1AgsgAS0AAEEgRw16IAFBAWohAQxbC0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAADXgMgAILIAEgBEYEQEH6ACEDDLMCCyABLQAAQcwARw10IAFBAWohAUETDHYLQfsAIQMgASAERg2xAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYDQCABLQAAIABB8M4Aai0AAEcNcyAAQQVGDXUgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMsQILIAEgBEYEQEH8ACEDDLECCwJAAkAgAS0AAEHDAGsODAB0dHR0dHR0dHR0AXQLIAFBAWohAUHmACEDDJgCCyABQQFqIQFB5wAhAwyXAgtB/QAhAyABIARGDa8CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDXIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADLACCyACQQA2AgAgBkEBaiEBQRAMcwtB/gAhAyABIARGDa4CIAIoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQfbOAGotAABHDXEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK8CCyACQQA2AgAgBkEBaiEBQRYMcgtB/wAhAyABIARGDa0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQfzOAGotAABHDXAgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK4CCyACQQA2AgAgBkEBaiEBQQUMcQsgASAERgRAQYABIQMMrQILIAEtAABB2QBHDW4gAUEBaiEBQQgMcAsgASAERgRAQYEBIQMMrAILAkACQCABLQAAQc4Aaw4DAG8BbwsgAUEBaiEBQesAIQMMkwILIAFBAWohAUHsACEDDJICCyABIARGBEBBggEhAwyrAgsCQAJAIAEtAABByABrDggAbm5ubm5uAW4LIAFBAWohAUHqACEDDJICCyABQQFqIQFB7QAhAwyRAgtBgwEhAyABIARGDakCIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQYDPAGotAABHDWwgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKoCCyACQQA2AgAgBkEBaiEBQQAMbQtBhAEhAyABIARGDagCIAIoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQYPPAGotAABHDWsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKkCCyACQQA2AgAgBkEBaiEBQSMMbAsgASAERgRAQYUBIQMMqAILAkACQCABLQAAQcwAaw4IAGtra2trawFrCyABQQFqIQFB7wAhAwyPAgsgAUEBaiEBQfAAIQMMjgILIAEgBEYEQEGGASEDDKcCCyABLQAAQcUARw1oIAFBAWohAQxgC0GHASEDIAEgBEYNpQIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBiM8Aai0AAEcNaCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpgILIAJBADYCACAGQQFqIQFBLQxpC0GIASEDIAEgBEYNpAIgAigCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABB0M8Aai0AAEcNZyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpQILIAJBADYCACAGQQFqIQFBKQxoCyABIARGBEBBiQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxBACEDDKIBCyACQeQANgIcIAIgATYCFCACQeMXNgIQIAJBFTYCDEEAIQMMoQELIAJBADYCACAGQQFqIQEgAi0AKSIAQSNrQQtJDQQCQCAAQQZLDQBBASAAdEHKAHFFDQAMBQtBACEDIAJBADYCHCACIAE2AhQgAkH3CTYCECACQQg2AgwMoAELIAJBADYCACAGQQFqIQEgAi0AKUEhRg0DIAJBADYCHCACIAE2AhQgAkGbCjYCECACQQg2AgxBACEDDJ8BCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJBkDM2AhAgAkEINgIMDJ0BCyACQQA2AgAgBkEBaiEBIAItAClBI0kNACACQQA2AhwgAiABNgIUIAJB0wk2AhAgAkEINgIMQQAhAwycAQtB0QAhAwyCAQsgAS0AAEEwayIAQf8BcUEKSQRAIAIgADoAKiABQQFqIQFBzwAhAwyCAQsgAigCBCEAIAJBADYCBCACIAAgARAoIgBFDYYBIAJB3gA2AhwgAiABNgIUIAIgADYCDEEAIQMMmgELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ2GASACQdwANgIcIAIgATYCFCACIAA2AgxBACEDDJkBCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMhwELIAJB2gA2AhwgAiAFNgIUIAIgADYCDAyYAQtBACEBQQEhAwsgAiADOgArIAVBAWohAwJAAkACQCACLQAtQRBxDQACQAJAAkAgAi0AKg4DAQACBAsgBkUNAwwCCyAADQEMAgsgAUUNAQsgAigCBCEAIAJBADYCBCACIAAgAxAoIgBFBEAgAyEBDAILIAJB2AA2AhwgAiADNgIUIAIgADYCDEEAIQMMmAELIAIoAgQhACACQQA2AgQgAiAAIAMQKCIARQRAIAMhAQyHAQsgAkHZADYCHCACIAM2AhQgAiAANgIMQQAhAwyXAQtBzAAhAwx9CyAAQRVHBEAgAkEANgIcIAIgATYCFCACQZQNNgIQIAJBITYCDEEAIQMMlgELIAJB1wA2AhwgAiABNgIUIAJByRc2AhAgAkEVNgIMQQAhAwyVAQtBACEDIAJBADYCHCACIAE2AhQgAkGAETYCECACQQk2AgwMlAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0AIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMkwELQckAIQMMeQsgAkEANgIcIAIgATYCFCACQcEoNgIQIAJBBzYCDCACQQA2AgBBACEDDJEBCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAlIgBFDQAgAkHSADYCHCACIAE2AhQgAiAANgIMDJABC0HIACEDDHYLIAJBADYCACAFIQELIAJBgBI7ASogAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANAQtBxwAhAwxzCyAAQRVGBEAgAkHRADYCHCACIAE2AhQgAkHjFzYCECACQRU2AgxBACEDDIwBC0EAIQMgAkEANgIcIAIgATYCFCACQbkNNgIQIAJBGjYCDAyLAQtBACEDIAJBADYCHCACIAE2AhQgAkGgGTYCECACQR42AgwMigELIAEtAABBOkYEQCACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgBFDQEgAkHDADYCHCACIAA2AgwgAiABQQFqNgIUDIoBC0EAIQMgAkEANgIcIAIgATYCFCACQbERNgIQIAJBCjYCDAyJAQsgAUEBaiEBQTshAwxvCyACQcMANgIcIAIgADYCDCACIAFBAWo2AhQMhwELQQAhAyACQQA2AhwgAiABNgIUIAJB8A42AhAgAkEcNgIMDIYBCyACIAIvATBBEHI7ATAMZgsCQCACLwEwIgBBCHFFDQAgAi0AKEEBRw0AIAItAC1BCHFFDQMLIAIgAEH3+wNxQYAEcjsBMAwECyABIARHBEACQANAIAEtAABBMGsiAEH/AXFBCk8EQEE1IQMMbgsgAikDICIKQpmz5syZs+bMGVYNASACIApCCn4iCjcDICAKIACtQv8BgyILQn+FVg0BIAIgCiALfDcDICAEIAFBAWoiAUcNAAtBOSEDDIUBCyACKAIEIQBBACEDIAJBADYCBCACIAAgAUEBaiIBECoiAA0MDHcLQTkhAwyDAQsgAi0AMEEgcQ0GQcUBIQMMaQtBACEDIAJBADYCBCACIAEgARAqIgBFDQQgAkE6NgIcIAIgADYCDCACIAFBAWo2AhQMgQELIAItAChBAUcNACACLQAtQQhxRQ0BC0E3IQMMZgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIABEAgAkE7NgIcIAIgADYCDCACIAFBAWo2AhQMfwsgAUEBaiEBDG4LIAJBCDoALAwECyABQQFqIQEMbQtBACEDIAJBADYCHCACIAE2AhQgAkHkEjYCECACQQQ2AgwMewsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ1sIAJBNzYCHCACIAE2AhQgAiAANgIMDHoLIAIgAi8BMEEgcjsBMAtBMCEDDF8LIAJBNjYCHCACIAE2AhQgAiAANgIMDHcLIABBLEcNASABQQFqIQBBASEBAkACQAJAAkACQCACLQAsQQVrDgQDAQIEAAsgACEBDAQLQQIhAQwBC0EEIQELIAJBAToALCACIAIvATAgAXI7ATAgACEBDAELIAIgAi8BMEEIcjsBMCAAIQELQTkhAwxcCyACQQA6ACwLQTQhAwxaCyABIARGBEBBLSEDDHMLAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0EtIQMMdAsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIARQ0CIAJBLDYCHCACIAE2AhQgAiAANgIMDHMLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAS0AAEENRgRAIAIoAgQhAEEAIQMgAkEANgIEIAIgACABECoiAEUEQCABQQFqIQEMAgsgAkEsNgIcIAIgADYCDCACIAFBAWo2AhQMcgsgAi0ALUEBcQRAQcQBIQMMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKiIADQEMZQtBLyEDDFcLIAJBLjYCHCACIAE2AhQgAiAANgIMDG8LQQAhAyACQQA2AhwgAiABNgIUIAJB8BQ2AhAgAkEDNgIMDG4LQQEhAwJAAkACQAJAIAItACxBBWsOBAMBAgAECyACIAIvATBBCHI7ATAMAwtBAiEDDAELQQQhAwsgAkEBOgAsIAIgAi8BMCADcjsBMAtBKiEDDFMLQQAhAyACQQA2AhwgAiABNgIUIAJB4Q82AhAgAkEKNgIMDGsLQQEhAwJAAkACQAJAAkACQCACLQAsQQJrDgcFBAQDAQIABAsgAiACLwEwQQhyOwEwDAMLQQIhAwwBC0EEIQMLIAJBAToALCACIAIvATAgA3I7ATALQSshAwxSC0EAIQMgAkEANgIcIAIgATYCFCACQasSNgIQIAJBCzYCDAxqC0EAIQMgAkEANgIcIAIgATYCFCACQf0NNgIQIAJBHTYCDAxpCyABIARHBEADQCABLQAAQSBHDUggBCABQQFqIgFHDQALQSUhAwxpC0ElIQMMaAsgAi0ALUEBcQRAQcMBIQMMTwsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQKSIABEAgAkEmNgIcIAIgADYCDCACIAFBAWo2AhQMaAsgAUEBaiEBDFwLIAFBAWohASACLwEwIgBBgAFxBEBBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAEUNBiAAQRVHDR8gAkEFNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMZwsCQCAAQaAEcUGgBEcNACACLQAtQQJxDQBBACEDIAJBADYCHCACIAE2AhQgAkGWEzYCECACQQQ2AgwMZwsgAgJ/IAIvATBBFHFBFEYEQEEBIAItAChBAUYNARogAi8BMkHlAEYMAQsgAi0AKUEFRgs6AC5BACEAAkAgAigCOCIDRQ0AIAMoAiQiA0UNACACIAMRAAAhAAsCQAJAAkACQAJAIAAOFgIBAAQEBAQEBAQEBAQEBAQEBAQEBAMECyACQQE6AC4LIAIgAi8BMEHAAHI7ATALQSchAwxPCyACQSM2AhwgAiABNgIUIAJBpRY2AhAgAkEVNgIMQQAhAwxnC0EAIQMgAkEANgIcIAIgATYCFCACQdULNgIQIAJBETYCDAxmC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAADQELQQ4hAwxLCyAAQRVGBEAgAkECNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMZAtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMYwtBACEDIAJBADYCHCACIAE2AhQgAkGqHDYCECACQQ82AgwMYgsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEgCqdqIgEQKyIARQ0AIAJBBTYCHCACIAE2AhQgAiAANgIMDGELQQ8hAwxHC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxfC0IBIQoLIAFBAWohAQJAIAIpAyAiC0L//////////w9YBEAgAiALQgSGIAqENwMgDAELQQAhAyACQQA2AhwgAiABNgIUIAJBrQk2AhAgAkEMNgIMDF4LQSQhAwxEC0EAIQMgAkEANgIcIAIgATYCFCACQc0TNgIQIAJBDDYCDAxcCyACKAIEIQBBACEDIAJBADYCBCACIAAgARAsIgBFBEAgAUEBaiEBDFILIAJBFzYCHCACIAA2AgwgAiABQQFqNgIUDFsLIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQRY2AhwgAiAANgIMIAIgAUEBajYCFAxbC0EfIQMMQQtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMWQsgAigCBCEAQQAhAyACQQA2AgQgAiAAIAEQLSIARQRAIAFBAWohAQxQCyACQRQ2AhwgAiAANgIMIAIgAUEBajYCFAxYCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABEC0iAEUEQCABQQFqIQEMAQsgAkETNgIcIAIgADYCDCACIAFBAWo2AhQMWAtBHiEDDD4LQQAhAyACQQA2AhwgAiABNgIUIAJBxgw2AhAgAkEjNgIMDFYLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABEC0iAEUEQCABQQFqIQEMTgsgAkERNgIcIAIgADYCDCACIAFBAWo2AhQMVQsgAkEQNgIcIAIgATYCFCACIAA2AgwMVAtBACEDIAJBADYCHCACIAE2AhQgAkHGDDYCECACQSM2AgwMUwtBACEDIAJBADYCHCACIAE2AhQgAkHAFTYCECACQQI2AgwMUgsgAigCBCEAQQAhAyACQQA2AgQCQCACIAAgARAtIgBFBEAgAUEBaiEBDAELIAJBDjYCHCACIAA2AgwgAiABQQFqNgIUDFILQRshAww4C0EAIQMgAkEANgIcIAIgATYCFCACQcYMNgIQIAJBIzYCDAxQCyACKAIEIQBBACEDIAJBADYCBAJAIAIgACABECwiAEUEQCABQQFqIQEMAQsgAkENNgIcIAIgADYCDCACIAFBAWo2AhQMUAtBGiEDDDYLQQAhAyACQQA2AhwgAiABNgIUIAJBmg82AhAgAkEiNgIMDE4LIAIoAgQhAEEAIQMgAkEANgIEAkAgAiAAIAEQLCIARQRAIAFBAWohAQwBCyACQQw2AhwgAiAANgIMIAIgAUEBajYCFAxOC0EZIQMMNAtBACEDIAJBADYCHCACIAE2AhQgAkGaDzYCECACQSI2AgwMTAsgAEEVRwRAQQAhAyACQQA2AhwgAiABNgIUIAJBgww2AhAgAkETNgIMDEwLIAJBCjYCHCACIAE2AhQgAkHkFjYCECACQRU2AgxBACEDDEsLIAIoAgQhAEEAIQMgAkEANgIEIAIgACABIAqnaiIBECsiAARAIAJBBzYCHCACIAE2AhQgAiAANgIMDEsLQRMhAwwxCyAAQRVHBEBBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMSgsgAkEeNgIcIAIgATYCFCACQfkXNgIQIAJBFTYCDEEAIQMMSQtBACEAAkAgAigCOCIDRQ0AIAMoAiwiA0UNACACIAMRAAAhAAsgAEUNQSAAQRVGBEAgAkEDNgIcIAIgATYCFCACQbAYNgIQIAJBFTYCDEEAIQMMSQtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMSAtBACEDIAJBADYCHCACIAE2AhQgAkHaDTYCECACQRQ2AgwMRwtBACEDIAJBADYCHCACIAE2AhQgAkGnDjYCECACQRI2AgwMRgsgAkEAOgAvIAItAC1BBHFFDT8LIAJBADoALyACQQE6ADRBACEDDCsLQQAhAyACQQA2AhwgAkHkETYCECACQQc2AgwgAiABQQFqNgIUDEMLAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB3QEhAwxDCwJAAkAgAi0ANEEBRw0AQQAhAAJAIAIoAjgiA0UNACADKAJYIgNFDQAgAiADEQAAIQALIABFDQAgAEEVRw0BIAJB3AE2AhwgAiABNgIUIAJB1RY2AhAgAkEVNgIMQQAhAwxEC0HBASEDDCoLIAJBADYCHCACIAE2AhQgAkHpCzYCECACQR82AgxBACEDDEILAkACQCACLQAoQQFrDgIEAQALQcABIQMMKQtBuQEhAwwoCyACQQI6AC9BACEAAkAgAigCOCIDRQ0AIAMoAgAiA0UNACACIAMRAAAhAAsgAEUEQEHCASEDDCgLIABBFUcEQCACQQA2AhwgAiABNgIUIAJBpAw2AhAgAkEQNgIMQQAhAwxBCyACQdsBNgIcIAIgATYCFCACQfoWNgIQIAJBFTYCDEEAIQMMQAsgASAERgRAQdoBIQMMQAsgAS0AAEHIAEYNASACQQE6ACgLQawBIQMMJQtBvwEhAwwkCyABIARHBEAgAkEQNgIIIAIgATYCBEG+ASEDDCQLQdkBIQMMPAsgASAERgRAQdgBIQMMPAsgAS0AAEHIAEcNBCABQQFqIQFBvQEhAwwiCyABIARGBEBB1wEhAww7CwJAAkAgAS0AAEHFAGsOEAAFBQUFBQUFBQUFBQUFBQEFCyABQQFqIQFBuwEhAwwiCyABQQFqIQFBvAEhAwwhC0HWASEDIAEgBEYNOSACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGD0ABqLQAARw0DIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw6CyACKAIEIQAgAkIANwMAIAIgACAGQQFqIgEQJyIARQRAQcYBIQMMIQsgAkHVATYCHCACIAE2AhQgAiAANgIMQQAhAww5C0HUASEDIAEgBEYNOCACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGB0ABqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAw5CyACQYEEOwEoIAIoAgQhACACQgA3AwAgAiAAIAZBAWoiARAnIgANAwwCCyACQQA2AgALQQAhAyACQQA2AhwgAiABNgIUIAJB2Bs2AhAgAkEINgIMDDYLQboBIQMMHAsgAkHTATYCHCACIAE2AhQgAiAANgIMQQAhAww0C0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAARQ0AIABBFUYNASACQQA2AhwgAiABNgIUIAJBzA42AhAgAkEgNgIMQQAhAwwzC0HkACEDDBkLIAJB+AA2AhwgAiABNgIUIAJByhg2AhAgAkEVNgIMQQAhAwwxC0HSASEDIAQgASIARg0wIAQgAWsgAigCACIBaiEFIAAgAWtBBGohBgJAA0AgAC0AACABQfzPAGotAABHDQEgAUEERg0DIAFBAWohASAEIABBAWoiAEcNAAsgAiAFNgIADDELIAJBADYCHCACIAA2AhQgAkGQMzYCECACQQg2AgwgAkEANgIAQQAhAwwwCyABIARHBEAgAkEONgIIIAIgATYCBEG3ASEDDBcLQdEBIQMMLwsgAkEANgIAIAZBAWohAQtBuAEhAwwUCyABIARGBEBB0AEhAwwtCyABLQAAQTBrIgBB/wFxQQpJBEAgAiAAOgAqIAFBAWohAUG2ASEDDBQLIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0UIAJBzwE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAsgASAERgRAQc4BIQMMLAsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAIoAgQhACACQQA2AgQgAiAAIAEQKCIARQ0VIAJBzQE2AhwgAiABNgIUIAIgADYCDEEAIQMMLAtBtQEhAwwSCyAEIAEiBUYEQEHMASEDDCsLQQAhAEEBIQFBASEGQQAhAwJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAUtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyEDQQAhAUEAIQYMAgtBCSEDQQEhAEEAIQFBACEGDAELQQAhAUEBIQMLIAIgAzoAKyAFQQFqIQMCQAJAIAItAC1BEHENAAJAAkACQCACLQAqDgMBAAIECyAGRQ0DDAILIAANAQwCCyABRQ0BCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMAwsgAkHJATYCHCACIAM2AhQgAiAANgIMQQAhAwwtCyACKAIEIQAgAkEANgIEIAIgACADECgiAEUEQCADIQEMGAsgAkHKATYCHCACIAM2AhQgAiAANgIMQQAhAwwsCyACKAIEIQAgAkEANgIEIAIgACAFECgiAEUEQCAFIQEMFgsgAkHLATYCHCACIAU2AhQgAiAANgIMDCsLQbQBIQMMEQtBACEAAkAgAigCOCIDRQ0AIAMoAjwiA0UNACACIAMRAAAhAAsCQCAABEAgAEEVRg0BIAJBADYCHCACIAE2AhQgAkGUDTYCECACQSE2AgxBACEDDCsLQbIBIQMMEQsgAkHIATYCHCACIAE2AhQgAkHJFzYCECACQRU2AgxBACEDDCkLIAJBADYCACAGQQFqIQFB9QAhAwwPCyACLQApQQVGBEBB4wAhAwwPC0HiACEDDA4LIAAhASACQQA2AgALIAJBADoALEEJIQMMDAsgAkEANgIAIAdBAWohAUHAACEDDAsLQQELOgAsIAJBADYCACAGQQFqIQELQSkhAwwIC0E4IQMMBwsCQCABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRw0DIAFBAWohAQwFCyAEIAFBAWoiAUcNAAtBPiEDDCELQT4hAwwgCwsgAkEAOgAsDAELQQshAwwEC0E6IQMMAwsgAUEBaiEBQS0hAwwCCyACIAE6ACwgAkEANgIAIAZBAWohAUEMIQMMAQsgAkEANgIAIAZBAWohAUEKIQMMAAsAC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwXC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwWC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwVC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwUC0EAIQMgAkEANgIcIAIgATYCFCACQc0QNgIQIAJBCTYCDAwTC0EAIQMgAkEANgIcIAIgATYCFCACQekKNgIQIAJBCTYCDAwSC0EAIQMgAkEANgIcIAIgATYCFCACQbcQNgIQIAJBCTYCDAwRC0EAIQMgAkEANgIcIAIgATYCFCACQZwRNgIQIAJBCTYCDAwQC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwPC0EAIQMgAkEANgIcIAIgATYCFCACQZcVNgIQIAJBDzYCDAwOC0EAIQMgAkEANgIcIAIgATYCFCACQcASNgIQIAJBCzYCDAwNC0EAIQMgAkEANgIcIAIgATYCFCACQZUJNgIQIAJBCzYCDAwMC0EAIQMgAkEANgIcIAIgATYCFCACQeEPNgIQIAJBCjYCDAwLC0EAIQMgAkEANgIcIAIgATYCFCACQfsPNgIQIAJBCjYCDAwKC0EAIQMgAkEANgIcIAIgATYCFCACQfEZNgIQIAJBAjYCDAwJC0EAIQMgAkEANgIcIAIgATYCFCACQcQUNgIQIAJBAjYCDAwIC0EAIQMgAkEANgIcIAIgATYCFCACQfIVNgIQIAJBAjYCDAwHCyACQQI2AhwgAiABNgIUIAJBnBo2AhAgAkEWNgIMQQAhAwwGC0EBIQMMBQtB1AAhAyABIARGDQQgCEEIaiEJIAIoAgAhBQJAAkAgASAERwRAIAVB2MIAaiEHIAQgBWogAWshACAFQX9zQQpqIgUgAWohBgNAIAEtAAAgBy0AAEcEQEECIQcMAwsgBUUEQEEAIQcgBiEBDAMLIAVBAWshBSAHQQFqIQcgBCABQQFqIgFHDQALIAAhBSAEIQELIAlBATYCACACIAU2AgAMAQsgAkEANgIAIAkgBzYCAAsgCSABNgIEIAgoAgwhACAIKAIIDgMBBAIACwALIAJBADYCHCACQbUaNgIQIAJBFzYCDCACIABBAWo2AhRBACEDDAILIAJBADYCHCACIAA2AhQgAkHKGjYCECACQQk2AgxBACEDDAELIAEgBEYEQEEiIQMMAQsgAkEJNgIIIAIgATYCBEEhIQMLIAhBEGokACADRQRAIAIoAgwhAAwBCyACIAM2AhxBACEAIAIoAgQiAUUNACACIAEgBCACKAIIEQEAIgFFDQAgAiAENgIUIAIgATYCDCABIQALIAALvgIBAn8gAEEAOgAAIABB3ABqIgFBAWtBADoAACAAQQA6AAIgAEEAOgABIAFBA2tBADoAACABQQJrQQA6AAAgAEEAOgADIAFBBGtBADoAAEEAIABrQQNxIgEgAGoiAEEANgIAQdwAIAFrQXxxIgIgAGoiAUEEa0EANgIAAkAgAkEJSQ0AIABBADYCCCAAQQA2AgQgAUEIa0EANgIAIAFBDGtBADYCACACQRlJDQAgAEEANgIYIABBADYCFCAAQQA2AhAgAEEANgIMIAFBEGtBADYCACABQRRrQQA2AgAgAUEYa0EANgIAIAFBHGtBADYCACACIABBBHFBGHIiAmsiAUEgSQ0AIAAgAmohAANAIABCADcDGCAAQgA3AxAgAEIANwMIIABCADcDACAAQSBqIQAgAUEgayIBQR9LDQALCwtWAQF/AkAgACgCDA0AAkACQAJAAkAgAC0ALw4DAQADAgsgACgCOCIBRQ0AIAEoAiwiAUUNACAAIAERAAAiAQ0DC0EADwsACyAAQcMWNgIQQQ4hAQsgAQsaACAAKAIMRQRAIABB0Rs2AhAgAEEVNgIMCwsUACAAKAIMQRVGBEAgAEEANgIMCwsUACAAKAIMQRZGBEAgAEEANgIMCwsHACAAKAIMCwcAIAAoAhALCQAgACABNgIQCwcAIAAoAhQLFwAgAEEkTwRAAAsgAEECdEGgM2ooAgALFwAgAEEuTwRAAAsgAEECdEGwNGooAgALvwkBAX9B6yghAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtzACAAQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQTBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQSBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQd0BNgIcCwYAIAAQMguaLQELfyMAQRBrIgokAEGk0AAoAgAiCUUEQEHk0wAoAgAiBUUEQEHw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBCGpBcHFB2KrVqgVzIgU2AgBB+NMAQQA2AgBByNMAQQA2AgALQczTAEGA1AQ2AgBBnNAAQYDUBDYCAEGw0AAgBTYCAEGs0ABBfzYCAEHQ0wBBgKwDNgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBjNQEQcGrAzYCAEGo0ABB9NMAKAIANgIAQZjQAEHAqwM2AgBBpNAAQYjUBDYCAEHM/wdBODYCAEGI1AQhCQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQewBTQRAQYzQACgCACIGQRAgAEETakFwcSAAQQtJGyIEQQN2IgB2IgFBA3EEQAJAIAFBAXEgAHJBAXMiAkEDdCIAQbTQAGoiASAAQbzQAGooAgAiACgCCCIDRgRAQYzQACAGQX4gAndxNgIADAELIAEgAzYCCCADIAE2AgwLIABBCGohASAAIAJBA3QiAkEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwRC0GU0AAoAgAiCCAETw0BIAEEQAJAQQIgAHQiAkEAIAJrciABIAB0cWgiAEEDdCICQbTQAGoiASACQbzQAGooAgAiAigCCCIDRgRAQYzQACAGQX4gAHdxIgY2AgAMAQsgASADNgIIIAMgATYCDAsgAiAEQQNyNgIEIABBA3QiACAEayEFIAAgAmogBTYCACACIARqIgQgBUEBcjYCBCAIBEAgCEF4cUG00ABqIQBBoNAAKAIAIQMCf0EBIAhBA3Z0IgEgBnFFBEBBjNAAIAEgBnI2AgAgAAwBCyAAKAIICyIBIAM2AgwgACADNgIIIAMgADYCDCADIAE2AggLIAJBCGohAUGg0AAgBDYCAEGU0AAgBTYCAAwRC0GQ0AAoAgAiC0UNASALaEECdEG80gBqKAIAIgAoAgRBeHEgBGshBSAAIQIDQAJAIAIoAhAiAUUEQCACQRRqKAIAIgFFDQELIAEoAgRBeHEgBGsiAyAFSSECIAMgBSACGyEFIAEgACACGyEAIAEhAgwBCwsgACgCGCEJIAAoAgwiAyAARwRAQZzQACgCABogAyAAKAIIIgE2AgggASADNgIMDBALIABBFGoiAigCACIBRQRAIAAoAhAiAUUNAyAAQRBqIQILA0AgAiEHIAEiA0EUaiICKAIAIgENACADQRBqIQIgAygCECIBDQALIAdBADYCAAwPC0F/IQQgAEG/f0sNACAAQRNqIgFBcHEhBEGQ0AAoAgAiCEUNAEEAIARrIQUCQAJAAkACf0EAIARBgAJJDQAaQR8gBEH///8HSw0AGiAEQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qCyIGQQJ0QbzSAGooAgAiAkUEQEEAIQFBACEDDAELQQAhASAEQRkgBkEBdmtBACAGQR9HG3QhAEEAIQMDQAJAIAIoAgRBeHEgBGsiByAFTw0AIAIhAyAHIgUNAEEAIQUgAiEBDAMLIAEgAkEUaigCACIHIAcgAiAAQR12QQRxakEQaigCACICRhsgASAHGyEBIABBAXQhACACDQALCyABIANyRQRAQQAhA0ECIAZ0IgBBACAAa3IgCHEiAEUNAyAAaEECdEG80gBqKAIAIQELIAFFDQELA0AgASgCBEF4cSAEayICIAVJIQAgAiAFIAAbIQUgASADIAAbIQMgASgCECIABH8gAAUgAUEUaigCAAsiAQ0ACwsgA0UNACAFQZTQACgCACAEa08NACADKAIYIQcgAyADKAIMIgBHBEBBnNAAKAIAGiAAIAMoAggiATYCCCABIAA2AgwMDgsgA0EUaiICKAIAIgFFBEAgAygCECIBRQ0DIANBEGohAgsDQCACIQYgASIAQRRqIgIoAgAiAQ0AIABBEGohAiAAKAIQIgENAAsgBkEANgIADA0LQZTQACgCACIDIARPBEBBoNAAKAIAIQECQCADIARrIgJBEE8EQCABIARqIgAgAkEBcjYCBCABIANqIAI2AgAgASAEQQNyNgIEDAELIAEgA0EDcjYCBCABIANqIgAgACgCBEEBcjYCBEEAIQBBACECC0GU0AAgAjYCAEGg0AAgADYCACABQQhqIQEMDwtBmNAAKAIAIgMgBEsEQCAEIAlqIgAgAyAEayIBQQFyNgIEQaTQACAANgIAQZjQACABNgIAIAkgBEEDcjYCBCAJQQhqIQEMDwtBACEBIAQCf0Hk0wAoAgAEQEHs0wAoAgAMAQtB8NMAQn83AgBB6NMAQoCAhICAgMAANwIAQeTTACAKQQxqQXBxQdiq1aoFczYCAEH40wBBADYCAEHI0wBBADYCAEGAgAQLIgAgBEHHAGoiBWoiBkEAIABrIgdxIgJPBEBB/NMAQTA2AgAMDwsCQEHE0wAoAgAiAUUNAEG80wAoAgAiCCACaiEAIAAgAU0gACAIS3ENAEEAIQFB/NMAQTA2AgAMDwtByNMALQAAQQRxDQQCQAJAIAkEQEHM0wAhAQNAIAEoAgAiACAJTQRAIAAgASgCBGogCUsNAwsgASgCCCIBDQALC0EAEDMiAEF/Rg0FIAIhBkHo0wAoAgAiAUEBayIDIABxBEAgAiAAayAAIANqQQAgAWtxaiEGCyAEIAZPDQUgBkH+////B0sNBUHE0wAoAgAiAwRAQbzTACgCACIHIAZqIQEgASAHTQ0GIAEgA0sNBgsgBhAzIgEgAEcNAQwHCyAGIANrIAdxIgZB/v///wdLDQQgBhAzIQAgACABKAIAIAEoAgRqRg0DIAAhAQsCQCAGIARByABqTw0AIAFBf0YNAEHs0wAoAgAiACAFIAZrakEAIABrcSIAQf7///8HSwRAIAEhAAwHCyAAEDNBf0cEQCAAIAZqIQYgASEADAcLQQAgBmsQMxoMBAsgASIAQX9HDQUMAwtBACEDDAwLQQAhAAwKCyAAQX9HDQILQcjTAEHI0wAoAgBBBHI2AgALIAJB/v///wdLDQEgAhAzIQBBABAzIQEgAEF/Rg0BIAFBf0YNASAAIAFPDQEgASAAayIGIARBOGpNDQELQbzTAEG80wAoAgAgBmoiATYCAEHA0wAoAgAgAUkEQEHA0wAgATYCAAsCQAJAAkBBpNAAKAIAIgIEQEHM0wAhAQNAIAAgASgCACIDIAEoAgQiBWpGDQIgASgCCCIBDQALDAILQZzQACgCACIBQQBHIAAgAU9xRQRAQZzQACAANgIAC0EAIQFB0NMAIAY2AgBBzNMAIAA2AgBBrNAAQX82AgBBsNAAQeTTACgCADYCAEHY0wBBADYCAANAIAFByNAAaiABQbzQAGoiAjYCACACIAFBtNAAaiIDNgIAIAFBwNAAaiADNgIAIAFB0NAAaiABQcTQAGoiAzYCACADIAI2AgAgAUHY0ABqIAFBzNAAaiICNgIAIAIgAzYCACABQdTQAGogAjYCACABQSBqIgFBgAJHDQALQXggAGtBD3EiASAAaiICIAZBOGsiAyABayIBQQFyNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAI2AgAgACADakE4NgIEDAILIAAgAk0NACACIANJDQAgASgCDEEIcQ0AQXggAmtBD3EiACACaiIDQZjQACgCACAGaiIHIABrIgBBAXI2AgQgASAFIAZqNgIEQajQAEH00wAoAgA2AgBBmNAAIAA2AgBBpNAAIAM2AgAgAiAHakE4NgIEDAELIABBnNAAKAIASQRAQZzQACAANgIACyAAIAZqIQNBzNMAIQECQAJAAkADQCADIAEoAgBHBEAgASgCCCIBDQEMAgsLIAEtAAxBCHFFDQELQczTACEBA0AgASgCACIDIAJNBEAgAyABKAIEaiIFIAJLDQMLIAEoAgghAQwACwALIAEgADYCACABIAEoAgQgBmo2AgQgAEF4IABrQQ9xaiIJIARBA3I2AgQgA0F4IANrQQ9xaiIGIAQgCWoiBGshASACIAZGBEBBpNAAIAQ2AgBBmNAAQZjQACgCACABaiIANgIAIAQgAEEBcjYCBAwIC0Gg0AAoAgAgBkYEQEGg0AAgBDYCAEGU0ABBlNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEIAAgBGogADYCAAwICyAGKAIEIgVBA3FBAUcNBiAFQXhxIQggBUH/AU0EQCAFQQN2IQMgBigCCCIAIAYoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAcLIAIgADYCCCAAIAI2AgwMBgsgBigCGCEHIAYgBigCDCIARwRAIAAgBigCCCICNgIIIAIgADYCDAwFCyAGQRRqIgIoAgAiBUUEQCAGKAIQIgVFDQQgBkEQaiECCwNAIAIhAyAFIgBBFGoiAigCACIFDQAgAEEQaiECIAAoAhAiBQ0ACyADQQA2AgAMBAtBeCAAa0EPcSIBIABqIgcgBkE4ayIDIAFrIgFBAXI2AgQgACADakE4NgIEIAIgBUE3IAVrQQ9xakE/ayIDIAMgAkEQakkbIgNBIzYCBEGo0ABB9NMAKAIANgIAQZjQACABNgIAQaTQACAHNgIAIANBEGpB1NMAKQIANwIAIANBzNMAKQIANwIIQdTTACADQQhqNgIAQdDTACAGNgIAQczTACAANgIAQdjTAEEANgIAIANBJGohAQNAIAFBBzYCACAFIAFBBGoiAUsNAAsgAiADRg0AIAMgAygCBEF+cTYCBCADIAMgAmsiBTYCACACIAVBAXI2AgQgBUH/AU0EQCAFQXhxQbTQAGohAAJ/QYzQACgCACIBQQEgBUEDdnQiA3FFBEBBjNAAIAEgA3I2AgAgAAwBCyAAKAIICyIBIAI2AgwgACACNgIIIAIgADYCDCACIAE2AggMAQtBHyEBIAVB////B00EQCAFQSYgBUEIdmciAGt2QQFxIABBAXRrQT5qIQELIAIgATYCHCACQgA3AhAgAUECdEG80gBqIQBBkNAAKAIAIgNBASABdCIGcUUEQCAAIAI2AgBBkNAAIAMgBnI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEDAkADQCADIgAoAgRBeHEgBUYNASABQR12IQMgAUEBdCEBIAAgA0EEcWpBEGoiBigCACIDDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLQZjQACgCACIBIARNDQBBpNAAKAIAIgAgBGoiAiABIARrIgFBAXI2AgRBmNAAIAE2AgBBpNAAIAI2AgAgACAEQQNyNgIEIABBCGohAQwIC0EAIQFB/NMAQTA2AgAMBwtBACEACyAHRQ0AAkAgBigCHCICQQJ0QbzSAGoiAygCACAGRgRAIAMgADYCACAADQFBkNAAQZDQACgCAEF+IAJ3cTYCAAwCCyAHQRBBFCAHKAIQIAZGG2ogADYCACAARQ0BCyAAIAc2AhggBigCECICBEAgACACNgIQIAIgADYCGAsgBkEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgCGohASAGIAhqIgYoAgQhBQsgBiAFQX5xNgIEIAEgBGogATYCACAEIAFBAXI2AgQgAUH/AU0EQCABQXhxQbTQAGohAAJ/QYzQACgCACICQQEgAUEDdnQiAXFFBEBBjNAAIAEgAnI2AgAgAAwBCyAAKAIICyIBIAQ2AgwgACAENgIIIAQgADYCDCAEIAE2AggMAQtBHyEFIAFB////B00EQCABQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQULIAQgBTYCHCAEQgA3AhAgBUECdEG80gBqIQBBkNAAKAIAIgJBASAFdCIDcUUEQCAAIAQ2AgBBkNAAIAIgA3I2AgAgBCAANgIYIAQgBDYCCCAEIAQ2AgwMAQsgAUEZIAVBAXZrQQAgBUEfRxt0IQUgACgCACEAAkADQCAAIgIoAgRBeHEgAUYNASAFQR12IQAgBUEBdCEFIAIgAEEEcWpBEGoiAygCACIADQALIAMgBDYCACAEIAI2AhggBCAENgIMIAQgBDYCCAwBCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAlBCGohAQwCCwJAIAdFDQACQCADKAIcIgFBAnRBvNIAaiICKAIAIANGBEAgAiAANgIAIAANAUGQ0AAgCEF+IAF3cSIINgIADAILIAdBEEEUIAcoAhAgA0YbaiAANgIAIABFDQELIAAgBzYCGCADKAIQIgEEQCAAIAE2AhAgASAANgIYCyADQRRqKAIAIgFFDQAgAEEUaiABNgIAIAEgADYCGAsCQCAFQQ9NBEAgAyAEIAVqIgBBA3I2AgQgACADaiIAIAAoAgRBAXI2AgQMAQsgAyAEaiICIAVBAXI2AgQgAyAEQQNyNgIEIAIgBWogBTYCACAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIFcUUEQEGM0AAgASAFcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEEBIAF0IgQgCHFFBEAgACACNgIAQZDQACAEIAhyNgIAIAIgADYCGCACIAI2AgggAiACNgIMDAELIAVBGSABQQF2a0EAIAFBH0cbdCEBIAAoAgAhBAJAA0AgBCIAKAIEQXhxIAVGDQEgAUEddiEEIAFBAXQhASAAIARBBHFqQRBqIgYoAgAiBA0ACyAGIAI2AgAgAiAANgIYIAIgAjYCDCACIAI2AggMAQsgACgCCCIBIAI2AgwgACACNgIIIAJBADYCGCACIAA2AgwgAiABNgIICyADQQhqIQEMAQsCQCAJRQ0AAkAgACgCHCIBQQJ0QbzSAGoiAigCACAARgRAIAIgAzYCACADDQFBkNAAIAtBfiABd3E2AgAMAgsgCUEQQRQgCSgCECAARhtqIAM2AgAgA0UNAQsgAyAJNgIYIAAoAhAiAQRAIAMgATYCECABIAM2AhgLIABBFGooAgAiAUUNACADQRRqIAE2AgAgASADNgIYCwJAIAVBD00EQCAAIAQgBWoiAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBCyAAIARqIgcgBUEBcjYCBCAAIARBA3I2AgQgBSAHaiAFNgIAIAgEQCAIQXhxQbTQAGohAUGg0AAoAgAhAwJ/QQEgCEEDdnQiAiAGcUUEQEGM0AAgAiAGcjYCACABDAELIAEoAggLIgIgAzYCDCABIAM2AgggAyABNgIMIAMgAjYCCAtBoNAAIAc2AgBBlNAAIAU2AgALIABBCGohAQsgCkEQaiQAIAELQwAgAEUEQD8AQRB0DwsCQCAAQf//A3ENACAAQQBIDQAgAEEQdkAAIgBBf0YEQEH80wBBMDYCAEF/DwsgAEEQdA8LAAsL3D8iAEGACAsJAQAAAAIAAAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var sYe=H((zsu,a6n)=>{"use strict";var e6n=["GET","HEAD","POST"],Eca=new Set(e6n),Sca=[101,204,205,304],t6n=[301,302,303,307,308],vca=new Set(t6n),r6n=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Bca=new Set(r6n),n6n=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],wca=new Set(n6n),Tca=["follow","manual","error"],i6n=["GET","HEAD","OPTIONS","TRACE"],Rca=new Set(i6n),Nca=["navigate","same-origin","no-cors","cors"],Dca=["omit","same-origin","include"],kca=["default","no-store","reload","no-cache","force-cache","only-if-cached"],xca=["content-encoding","content-language","content-location","content-type","content-length"],Gca=["half"],s6n=["CONNECT","TRACE","TRACK"],Fca=new Set(s6n),o6n=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Zca=new Set(o6n);a6n.exports={subresource:o6n,forbiddenMethods:s6n,requestBodyHeader:xca,referrerPolicy:n6n,requestRedirect:Tca,requestMode:Nca,requestCredentials:Dca,requestCache:kca,redirectStatus:t6n,corsSafeListedMethods:e6n,nullBodyStatus:Sca,safeMethods:i6n,badPorts:r6n,requestDuplex:Gca,subresourceSet:Zca,badPortsSet:Bca,redirectStatusSet:vca,corsSafeListedMethodsSet:Eca,safeMethodsSet:Rca,forbiddenMethodsSet:Fca,referrerPolicySet:wca}});var G0r=H((qsu,c6n)=>{"use strict";var x0r=Symbol.for("undici.globalOrigin.1");function Lca(){return globalThis[x0r]}function Vca(e){if(e===void 0){Object.defineProperty(globalThis,x0r,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,x0r,{value:t,writable:!0,enumerable:!1,configurable:!1})}c6n.exports={getGlobalOrigin:Lca,setGlobalOrigin:Vca}});var eV=H(($su,f6n)=>{"use strict";var iht=wt("node:assert"),Pca=new TextEncoder,oYe=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Wca=/[\u000A\u000D\u0009\u0020]/,Oca=/[\u0009\u000A\u000C\u000D\u0020]/g,Mca=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Hca(e){iht(e.protocol==="data:");let t=g6n(e,!0);t=t.slice(5);let r={position:0},n=Cwe(",",t,r),a=n.length;if(n=Kca(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=A6n(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=p6n(l);if(l=Qca(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=F0r(n);return A==="failure"&&(A=F0r("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function g6n(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length,a=n===0?r:r.substring(0,r.length-n);return!n&&r.endsWith("#")?a.slice(0,-1):a}function sht(e,t,r){let n="";for(;r.position=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function u6n(e){return e>=48&&e<=57?e-48:(e&223)-55}function Yca(e){let t=e.length,r=new Uint8Array(t),n=0;for(let a=0;ae.length)return"failure";t.position++;let n=Cwe(";",e,t);if(n=nht(n,!1,!0),n.length===0||!oYe.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionWca.test(I),e,t);let A=sht(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=d6n(e,t,!0),Cwe(";",e,t);else if(f=Cwe(";",e,t),f=nht(f,!1,!0),f.length===0)continue;A.length!==0&&oYe.test(A)&&(f.length===0||Mca.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Qca(e){e=e.replace(Oca,"");let t=e.length;if(t%4===0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4===1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return"failure";let r=Buffer.from(e,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function d6n(e,t,r){let n=t.position,a="";for(iht(e[t.position]==='"'),t.position++;a+=sht(l=>l!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{iht(o==='"');break}}return r?a:e.slice(n,t.position)}function Xca(e){iht(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",oYe.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function Jca(e){return e===13||e===10||e===9||e===32}function nht(e,t=!0,r=!0){return Z0r(e,t,r,Jca)}function Uca(e){return e===13||e===10||e===9||e===12||e===32}function Kca(e,t=!0,r=!0){return Z0r(e,t,r,Uca)}function Z0r(e,t,r,n){let a=0,o=e.length-1;if(t)for(;a0&&n(e.charCodeAt(o));)o--;return a===0&&o===e.length-1?e:e.slice(a,o+1)}function p6n(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let r="",n=0,a=65535;for(;nt&&(a=t-n),r+=String.fromCharCode.apply(null,e.subarray(n,n+=a));return r}function jca(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}f6n.exports={dataURLProcessor:Hca,URLSerializer:g6n,collectASequenceOfCodePoints:sht,collectASequenceOfCodePointsFast:Cwe,stringPercentDecode:A6n,parseMIMEType:F0r,collectAnHTTPQuotedString:d6n,serializeAMimeType:Xca,removeChars:Z0r,removeHTTPWhitespace:nht,minimizeSupportedMimeType:jca,HTTP_TOKEN_CODEPOINTS:oYe,isomorphicDecode:p6n}});var kk=H((eou,I6n)=>{"use strict";var{types:w8,inspect:zca}=wt("node:util"),{toUSVString:qca}=Em(),Cu={};Cu.converters={};Cu.util={};Cu.errors={};Cu.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};Cu.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return Cu.errors.exception({header:e.prefix,message:r})};Cu.errors.invalidArgument=function(e){return Cu.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};Cu.brandCheck=function(e,t,r){if(r?.strict!==!1){if(!(e instanceof t)){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}}else if(e?.[Symbol.toStringTag]!==t.prototype[Symbol.toStringTag]){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}};Cu.argumentLengthCheck=function({length:e},t,r){if(ea)throw Cu.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n?.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=Cu.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};Cu.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};Cu.util.Stringify=function(e){switch(Cu.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return zca(e);case"String":return`"${e}"`;default:return`${e}`}};Cu.sequenceConverter=function(e){return(t,r,n,a)=>{if(Cu.util.Type(t)!=="Object")throw Cu.errors.exception({header:r,message:`${n} (${Cu.util.Stringify(t)}) is not iterable.`});let o=typeof a=="function"?a():t?.[Symbol.iterator]?.(),l=[],A=0;if(o===void 0||typeof o.next!="function")throw Cu.errors.exception({header:r,message:`${n} is not iterable.`});for(;;){let{done:f,value:I}=o.next();if(f)break;l.push(e(I,r,`${n}[${A++}]`))}return l}};Cu.recordConverter=function(e,t){return(r,n,a)=>{if(Cu.util.Type(r)!=="Object")throw Cu.errors.exception({header:n,message:`${a} ("${Cu.util.Type(r)}") is not an Object.`});let o={};if(!w8.isProxy(r)){let A=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let f of A){let I=e(f,n,a),C=t(r[f],n,a);o[I]=C}return o}let l=Reflect.ownKeys(r);for(let A of l)if(Reflect.getOwnPropertyDescriptor(r,A)?.enumerable){let I=e(A,n,a),C=t(r[A],n,a);o[I]=C}return o}};Cu.interfaceConverter=function(e){return(t,r,n,a)=>{if(a?.strict!==!1&&!(t instanceof e))throw Cu.errors.exception({header:r,message:`Expected ${n} ("${Cu.util.Stringify(t)}") to be an instance of ${e.name}.`});return t}};Cu.dictionaryConverter=function(e){return(t,r,n)=>{let a=Cu.util.Type(t),o={};if(a==="Null"||a==="Undefined")return o;if(a!=="Object")throw Cu.errors.exception({header:r,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let l of e){let{key:A,defaultValue:f,required:I,converter:C}=l;if(I===!0&&!Object.hasOwn(t,A))throw Cu.errors.exception({header:r,message:`Missing required key "${A}".`});let b=t[A],E=Object.hasOwn(l,"defaultValue");if(E&&b!==null&&(b??=f()),I||E||b!==void 0){if(b=C(b,r,`${n}.${A}`),l.allowedValues&&!l.allowedValues.includes(b))throw Cu.errors.exception({header:r,message:`${b} is not an accepted type. Expected one of ${l.allowedValues.join(", ")}.`});o[A]=b}}return o}};Cu.nullableConverter=function(e){return(t,r,n)=>t===null?t:e(t,r,n)};Cu.converters.DOMString=function(e,t,r,n){if(e===null&&n?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw Cu.errors.exception({header:t,message:`${r} is a symbol, which cannot be converted to a DOMString.`});return String(e)};Cu.converters.ByteString=function(e,t,r){let n=Cu.converters.DOMString(e,t,r);for(let a=0;a255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${a} has a value of ${n.charCodeAt(a)} which is greater than 255.`);return n};Cu.converters.USVString=qca;Cu.converters.boolean=function(e){return!!e};Cu.converters.any=function(e){return e};Cu.converters["long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"signed",void 0,t,r)};Cu.converters["unsigned long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"unsigned",void 0,t,r)};Cu.converters["unsigned long"]=function(e,t,r){return Cu.util.ConvertToInt(e,32,"unsigned",void 0,t,r)};Cu.converters["unsigned short"]=function(e,t,r,n){return Cu.util.ConvertToInt(e,16,"unsigned",n,t,r)};Cu.converters.ArrayBuffer=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isAnyArrayBuffer(e))throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.TypedArray=function(e,t,r,n,a){if(Cu.util.Type(e)!=="Object"||!w8.isTypedArray(e)||e.constructor.name!==t.name)throw Cu.errors.conversionFailed({prefix:r,argument:`${n} ("${Cu.util.Stringify(e)}")`,types:[t.name]});if(a?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.DataView=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isDataView(e))throw Cu.errors.exception({header:t,message:`${r} is not a DataView.`});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.BufferSource=function(e,t,r,n){if(w8.isAnyArrayBuffer(e))return Cu.converters.ArrayBuffer(e,t,r,{...n,allowShared:!1});if(w8.isTypedArray(e))return Cu.converters.TypedArray(e,e.constructor,t,r,{...n,allowShared:!1});if(w8.isDataView(e))return Cu.converters.DataView(e,t,r,{...n,allowShared:!1});throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["BufferSource"]})};Cu.converters["sequence"]=Cu.sequenceConverter(Cu.converters.ByteString);Cu.converters["sequence>"]=Cu.sequenceConverter(Cu.converters["sequence"]);Cu.converters["record"]=Cu.recordConverter(Cu.converters.ByteString,Cu.converters.ByteString);I6n.exports={webidl:Cu}});var qW=H((tou,N6n)=>{"use strict";var{Transform:$ca}=wt("node:stream"),h6n=wt("node:zlib"),{redirectStatusSet:ela,referrerPolicySet:tla,badPortsSet:rla}=sYe(),{getGlobalOrigin:m6n}=G0r(),{collectASequenceOfCodePoints:rhe,collectAnHTTPQuotedString:nla,removeChars:ila,parseMIMEType:sla}=eV(),{performance:ola}=wt("node:perf_hooks"),{isBlobLike:ala,ReadableStreamFrom:cla,isValidHTTPToken:C6n,normalizedMethodRecordsBase:lla}=Em(),nhe=wt("node:assert"),{isUint8Array:ula}=wt("node:util/types"),{webidl:aYe}=kk(),_6n=[],aht;try{aht=wt("node:crypto");let e=["sha256","sha384","sha512"];_6n=aht.getHashes().filter(t=>e.includes(t))}catch{}function y6n(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function gla(e,t){if(!ela.has(e.status))return null;let r=e.headersList.get("location",!0);return r!==null&&E6n(r)&&(b6n(r)||(r=Ala(r)),r=new URL(r,y6n(e))),r&&!r.hash&&(r.hash=t),r}function b6n(e){for(let t=0;t126||r<32)return!1}return!0}function Ala(e){return Buffer.from(e,"binary").toString("utf8")}function lYe(e){return e.urlList[e.urlList.length-1]}function dla(e){let t=lYe(e);return T6n(t)&&rla.has(t.port)?"blocked":"allowed"}function pla(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function fla(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}var Ila=C6n;function E6n(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(` -`)||e.includes("\r")||e.includes("\0"))===!1}function hla(e,t){let{headersList:r}=t,n=(r.get("referrer-policy",!0)??"").split(","),a="";if(n.length>0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(tla.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function mla(){return"allowed"}function Cla(){return"success"}function _la(){return"success"}function yla(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t,!0)}function bla(e){let t=e.origin;if(!(t==="client"||t===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",t,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&V0r(e.origin)&&!V0r(lYe(e))&&(t=null);break;case"same-origin":cht(e,lYe(e))||(t=null);break;default:}e.headersList.append("origin",t,!0)}}}function _we(e,t){return e}function Ela(e,t,r){return!e?.startTime||e.startTime4096&&(n=a);let o=cht(e,n),l=cYe(n)&&!cYe(e.url);switch(t){case"origin":return a??L0r(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=lYe(e);return cht(n,A)?n:cYe(n)&&!cYe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function L0r(e,t){return nhe(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function cYe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function Tla(e,t){if(aht===void 0)return!0;let r=v6n(t);if(r==="no metadata"||r.length===0)return!0;let n=Nla(r),a=Dla(r,n);for(let o of a){let l=o.algo,A=o.hash,f=aht.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),kla(f,A))return!0}return!1}var Rla=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function v6n(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=Rla.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();_6n.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function Nla(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function Fla(e){return e.controller.state==="aborted"}function Zla(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Lla(e){return lla[e.toLowerCase()]??e}function Vla(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return nhe(typeof t=="string"),t}var Pla=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function B6n(e,t,r=0,n=1){class a{#e;#t;#n;constructor(l,A){this.#e=l,this.#t=A,this.#n=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let l=this.#n,A=this.#e[t],f=A.length;if(l>=f)return{value:void 0,done:!0};let{[r]:I,[n]:C}=A[l];this.#n=l+1;let b;switch(this.#t){case"key":b=I;break;case"value":b=C;break;case"key+value":b=[I,C];break}return{value:b,done:!1}}}return delete a.prototype.constructor,Object.setPrototypeOf(a.prototype,Pla),Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(o,l){return new a(o,l)}}function Wla(e,t,r,n=0,a=1){let o=B6n(e,r,n,a),l={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(f,I=globalThis){if(aYe.brandCheck(this,t),aYe.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof f!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:C,1:b}of o(this,"key+value"))f.call(I,b,C,this)}}};return Object.defineProperties(t.prototype,{...l,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:l.entries.value}})}async function Ola(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{n(await w6n(o))}catch(l){a(l)}}function Mla(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Hla(e){try{e.close(),e.byobRequest?.respond(0)}catch(t){if(!t.message.includes("Controller is already closed")&&!t.message.includes("ReadableStream is already closed"))throw t}}var Yla=/[^\x00-\xFF]/;function oht(e){return nhe(!Yla.test(e)),e}async function w6n(e){let t=[],r=0;for(;;){let{done:n,value:a}=await e.read();if(n)return Buffer.concat(t,r);if(!ula(a))throw new TypeError("Received non-Uint8Array chunk");t.push(a),r+=a.length}}function Qla(e){nhe("protocol"in e);let t=e.protocol;return t==="about:"||t==="blob:"||t==="data:"}function V0r(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function T6n(e){nhe("protocol"in e);let t=e.protocol;return t==="http:"||t==="https:"}function Xla(e,t){let r=e;if(!r.startsWith("bytes"))return"failure";let n={position:5};if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==61)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let a=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),o=a.length?Number(a):null;if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==45)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let l=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),A=l.length?Number(l):null;return n.positionA?"failure":{rangeStartValue:o,rangeEndValue:A}}function Jla(e,t,r){let n="bytes ";return n+=oht(`${e}`),n+="-",n+=oht(`${t}`),n+="/",n+=oht(`${r}`),n}var P0r=class extends $ca{#e;constructor(t){super(),this.#e=t}_transform(t,r,n){if(!this._inflateStream){if(t.length===0){n();return}this._inflateStream=(t[0]&15)===8?h6n.createInflate(this.#e):h6n.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",a=>this.destroy(a))}this._inflateStream.write(t,r,n)}_final(t){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),t()}};function Ula(e){return new P0r(e)}function Kla(e){let t=null,r=null,n=null,a=R6n("content-type",e);if(a===null)return"failure";for(let o of a){let l=sla(o);l==="failure"||l.essence==="*/*"||(n=l,n.essence!==r?(t=null,n.parameters.has("charset")&&(t=n.parameters.get("charset")),r=n.essence):!n.parameters.has("charset")&&t!==null&&n.parameters.set("charset",t))}return n??"failure"}function jla(e){let t=e,r={position:0},n=[],a="";for(;r.positiono!=='"'&&o!==",",t,r),r.positiono===9||o===32),n.push(a),a=""}return n}function R6n(e,t){let r=t.get(e,!0);return r===null?null:jla(r)}var zla=new TextDecoder;function qla(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),zla.decode(e))}var W0r=class{get baseUrl(){return m6n()}get origin(){return this.baseUrl?.origin}policyContainer=S6n()},O0r=class{settingsObject=new W0r},$la=new O0r;N6n.exports={isAborted:Fla,isCancelled:Zla,isValidEncodedURL:b6n,createDeferredPromise:Gla,ReadableStreamFrom:cla,tryUpgradeRequestToAPotentiallyTrustworthyURL:xla,clampAndCoarsenConnectionTimingInfo:Ela,coarsenedSharedCurrentTime:Sla,determineRequestsReferrer:wla,makePolicyContainer:S6n,clonePolicyContainer:Bla,appendFetchMetadata:yla,appendRequestOriginHeader:bla,TAOCheck:_la,corsCheck:Cla,crossOriginResourcePolicyCheck:mla,createOpaqueTimingInfo:vla,setRequestReferrerPolicyOnRedirect:hla,isValidHTTPToken:C6n,requestBadPort:dla,requestCurrentURL:lYe,responseURL:y6n,responseLocationURL:gla,isBlobLike:ala,isURLPotentiallyTrustworthy:cYe,isValidReasonPhrase:fla,sameOrigin:cht,normalizeMethod:Lla,serializeJavascriptValueToJSONString:Vla,iteratorMixin:Wla,createIterator:B6n,isValidHeaderName:Ila,isValidHeaderValue:E6n,isErrorLike:pla,fullyReadBody:Ola,bytesMatch:Tla,isReadableStreamLike:Mla,readableStreamClose:Hla,isomorphicEncode:oht,urlIsLocal:Qla,urlHasHttpsScheme:V0r,urlIsHttpHttpsScheme:T6n,readAllBytes:w6n,simpleRangeHeaderValue:Xla,buildContentRange:Jla,parseMetadata:v6n,createInflate:Ula,extractMimeType:Kla,getDecodeSplit:R6n,utf8DecodeBytes:qla,environmentSettingsObject:$la}});var nae=H((rou,D6n)=>{"use strict";D6n.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var H0r=H((nou,k6n)=>{"use strict";var{Blob:eua,File:tua}=wt("node:buffer"),{kState:O$}=nae(),{webidl:T8}=kk(),M0r=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[O$]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return T8.brandCheck(this,e),this[O$].blobLike.stream(...t)}arrayBuffer(...t){return T8.brandCheck(this,e),this[O$].blobLike.arrayBuffer(...t)}slice(...t){return T8.brandCheck(this,e),this[O$].blobLike.slice(...t)}text(...t){return T8.brandCheck(this,e),this[O$].blobLike.text(...t)}get size(){return T8.brandCheck(this,e),this[O$].blobLike.size}get type(){return T8.brandCheck(this,e),this[O$].blobLike.type}get name(){return T8.brandCheck(this,e),this[O$].name}get lastModified(){return T8.brandCheck(this,e),this[O$].lastModified}get[Symbol.toStringTag](){return"File"}};T8.converters.Blob=T8.interfaceConverter(eua);function rua(e){return e instanceof tua||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}k6n.exports={FileLike:M0r,isFileLike:rua}});var gYe=H((iou,L6n)=>{"use strict";var{isBlobLike:lht,iteratorMixin:nua}=qW(),{kState:WZ}=nae(),{kEnumerableProperty:ywe}=Em(),{FileLike:x6n,isFileLike:iua}=H0r(),{webidl:W1}=kk(),{File:Z6n}=wt("node:buffer"),G6n=wt("node:util"),F6n=globalThis.File??Z6n,uYe=class e{constructor(t){if(t!==void 0)throw W1.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[WZ]=[]}append(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.append";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"value",{strict:!1}):W1.converters.USVString(r,a,"value"),n=arguments.length===3?W1.converters.USVString(n,a,"filename"):void 0;let o=Y0r(t,r,n);this[WZ].push(o)}delete(t){W1.brandCheck(this,e);let r="FormData.delete";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ]=this[WZ].filter(n=>n.name!==t)}get(t){W1.brandCheck(this,e);let r="FormData.get";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name");let n=this[WZ].findIndex(a=>a.name===t);return n===-1?null:this[WZ][n].value}getAll(t){W1.brandCheck(this,e);let r="FormData.getAll";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].filter(n=>n.name===t).map(n=>n.value)}has(t){W1.brandCheck(this,e);let r="FormData.has";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].findIndex(n=>n.name===t)!==-1}set(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.set";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"name",{strict:!1}):W1.converters.USVString(r,a,"name"),n=arguments.length===3?W1.converters.USVString(n,a,"name"):void 0;let o=Y0r(t,r,n),l=this[WZ].findIndex(A=>A.name===t);l!==-1?this[WZ]=[...this[WZ].slice(0,l),o,...this[WZ].slice(l+1).filter(A=>A.name!==t)]:this[WZ].push(o)}[G6n.inspect.custom](t,r){let n=this[WZ].reduce((o,l)=>(o[l.name]?Array.isArray(o[l.name])?o[l.name].push(l.value):o[l.name]=[o[l.name],l.value]:o[l.name]=l.value,o),{__proto__:null});r.depth??=t,r.colors??=!0;let a=G6n.formatWithOptions(r,n);return`FormData ${a.slice(a.indexOf("]")+2)}`}};nua("FormData",uYe,WZ,"name","value");Object.defineProperties(uYe.prototype,{append:ywe,delete:ywe,get:ywe,getAll:ywe,has:ywe,set:ywe,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Y0r(e,t,r){if(typeof t!="string"){if(iua(t)||(t=t instanceof Blob?new F6n([t],"blob",{type:t.type}):new x6n(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=t instanceof Z6n?new F6n([t],r,n):new x6n(t,r,n)}}return{name:e,value:t}}L6n.exports={FormData:uYe,makeEntry:Y0r}});var H6n=H((sou,M6n)=>{"use strict";var{isUSVString:V6n,bufferToLowerCasedHeaderName:sua}=Em(),{utf8DecodeBytes:oua}=qW(),{HTTP_TOKEN_CODEPOINTS:aua,isomorphicDecode:P6n}=eV(),{isFileLike:cua}=H0r(),{makeEntry:lua}=gYe(),uht=wt("node:assert"),{File:uua}=wt("node:buffer"),gua=globalThis.File??uua,Aua=Buffer.from('form-data; name="'),W6n=Buffer.from("; filename"),dua=Buffer.from("--"),pua=Buffer.from(`--\r +`.trim())}};MUn.exports=n_r});var KUn=H((nsu,UUn)=>{"use strict";var{kProxy:jra,kClose:zra,kDestroy:qra,kInterceptors:$ra}=GE(),{URL:YUn}=wt("url"),QUn=ZHe(),ena=WBe(),tna=EHe(),{InvalidArgumentError:OHe,RequestAbortedError:rna}=Ub(),XUn=SHe(),PHe=Symbol("proxy agent"),zft=Symbol("proxy client"),WHe=Symbol("proxy headers"),i_r=Symbol("request tls settings"),nna=Symbol("proxy tls settings"),JUn=Symbol("connect endpoint function");function ina(e){return e==="https:"?443:80}function sna(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new OHe("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function ona(e,t){return new ena(e,t)}var s_r=class extends tna{constructor(t){if(super(t),this[jra]=sna(t),this[PHe]=new QUn(t),this[$ra]=t.interceptors&&t.interceptors.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],typeof t=="string"&&(t={uri:t}),!t||!t.uri)throw new OHe("Proxy opts.uri is mandatory");let{clientFactory:r=ona}=t;if(typeof r!="function")throw new OHe("Proxy opts.clientFactory must be a function.");this[i_r]=t.requestTls,this[nna]=t.proxyTls,this[WHe]=t.headers||{};let n=new YUn(t.uri),{origin:a,port:o,host:l,username:A,password:f}=n;if(t.auth&&t.token)throw new OHe("opts.auth cannot be used in combination with opts.token");t.auth?this[WHe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[WHe]["proxy-authorization"]=t.token:A&&f&&(this[WHe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(A)}:${decodeURIComponent(f)}`).toString("base64")}`);let I=XUn({...t.proxyTls});this[JUn]=XUn({...t.requestTls}),this[zft]=r(n,{connect:I}),this[PHe]=new QUn({...t,connect:async(C,b)=>{let E=C.host;C.port||(E+=`:${ina(C.protocol)}`);try{let{socket:N,statusCode:B}=await this[zft].connect({origin:a,port:o,path:E,signal:C.signal,headers:{...this[WHe],host:l}});if(B!==200&&(N.on("error",()=>{}).destroy(),b(new rna(`Proxy response (${B}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){b(null,N);return}let F;this[i_r]?F=this[i_r].servername:F=C.servername,this[JUn]({...C,servername:F,httpSocket:N},b)}catch(N){b(N)}}})}dispatch(t,r){let{host:n}=new YUn(t.origin),a=ana(t.headers);return cna(a),this[PHe].dispatch({...t,headers:{...a,host:n}},r)}async[zra](){await this[PHe].close(),await this[zft].close()}async[qra](){await this[PHe].destroy(),await this[zft].destroy()}};function ana(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new OHe("Proxy-Authorization should be sent in ProxyAgent constructor")}UUn.exports=s_r});var eKn=H((isu,$Un)=>{var JIe=wt("assert"),{kRetryHandlerDefaultRetry:jUn}=GE(),{RequestRetryError:qft}=Ub(),{isDisturbed:zUn,parseHeaders:lna,parseRangeHeader:qUn}=zC();function una(e){let t=Date.now();return new Date(e).getTime()-t}var o_r=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts=a,this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[jUn],retryAfter:E??!0,maxTimeout:A??30*1e3,timeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]},this.retryCount=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[jUn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,timeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X,currentTimeout:ae}=r;if(ae=ae!=null&&ae>0?ae:b,l&&l!=="UND_ERR_REQ_RETRY"&&l!=="UND_ERR_SOCKET"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ne=A!=null&&A["retry-after"];ne&&(ne=Number(ne),ne=isNaN(ne)?una(ne):ne*1e3);let ce=ne>0?Math.min(ne,E):Math.min(ae*N**X,E);r.currentTimeout=ce,setTimeout(()=>a(null),ce)}onHeaders(t,r,n,a){let o=lna(r);if(this.retryCount+=1,t>=300)return this.abort(new qft("Request failed",t,{headers:o,count:this.retryCount})),!1;if(this.resume!=null){if(this.resume=null,t!==206)return!0;let A=qUn(o["content-range"]);if(!A)return this.abort(new qft("Content-Range mismatch",t,{headers:o,count:this.retryCount})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new qft("ETag mismatch",t,{headers:o,count:this.retryCount})),!1;let{start:f,size:I,end:C=I}=A;return JIe(this.start===f,"content-range mismatch"),JIe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=qUn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;JIe(f!=null&&Number.isFinite(f)&&this.start!==f,"content-range mismatch"),JIe(Number.isFinite(f)),JIe(C!=null&&Number.isFinite(C)&&this.end!==C,"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return JIe(Number.isFinite(this.start)),JIe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.handler.onHeaders(t,r,n,a)}let l=new qft("Request failed",t,{headers:o,count:this.retryCount});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||zUn(this.opts.body))return this.handler.onError(t);this.retryOpts.retry(t,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||zUn(this.opts.body))return this.handler.onError(n);this.start!==0&&(this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}});try{this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};$Un.exports=o_r});var KBe=H((ssu,iKn)=>{"use strict";var tKn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:gna}=Ub(),Ana=ZHe();nKn()===void 0&&rKn(new Ana);function rKn(e){if(!e||typeof e.dispatch!="function")throw new gna("Argument agent must implement Agent");Object.defineProperty(globalThis,tKn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function nKn(){return globalThis[tKn]}iKn.exports={setGlobalDispatcher:rKn,getGlobalDispatcher:nKn}});var oKn=H((asu,sKn)=>{"use strict";sKn.exports=class{constructor(t){this.handler=t}onConnect(...t){return this.handler.onConnect(...t)}onError(...t){return this.handler.onError(...t)}onUpgrade(...t){return this.handler.onUpgrade(...t)}onHeaders(...t){return this.handler.onHeaders(...t)}onData(...t){return this.handler.onData(...t)}onComplete(...t){return this.handler.onComplete(...t)}onBodySent(...t){return this.handler.onBodySent(...t)}}});var UIe=H((csu,gKn)=>{"use strict";var{kHeadersList:z9,kConstruct:dna}=GE(),{kGuard:E8}=v$(),{kEnumerableProperty:b8}=zC(),{makeIterator:jBe,isValidHeaderName:MHe,isValidHeaderValue:cKn}=EM(),{webidl:sm}=xZ(),pna=wt("assert"),j9=Symbol("headers map"),Dk=Symbol("headers map sorted");function aKn(e){return e===10||e===13||e===9||e===32}function lKn(e){let t=0,r=e.length;for(;r>t&&aKn(e.charCodeAt(r-1));)--r;for(;r>t&&aKn(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function uKn(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function a_r(e,t,r){if(r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(e[E8]==="immutable")throw new TypeError("immutable");return e[E8],e[z9].append(t,r)}var $ft=class e{cookies=null;constructor(t){t instanceof e?(this[j9]=new Map(t[j9]),this[Dk]=t[Dk],this.cookies=t.cookies===null?null:[...t.cookies]):(this[j9]=new Map(t),this[Dk]=null)}contains(t){return t=t.toLowerCase(),this[j9].has(t)}clear(){this[j9].clear(),this[Dk]=null,this.cookies=null}append(t,r){this[Dk]=null;let n=t.toLowerCase(),a=this[j9].get(n);if(a){let o=n==="cookie"?"; ":", ";this[j9].set(n,{name:a.name,value:`${a.value}${o}${r}`})}else this[j9].set(n,{name:t,value:r});n==="set-cookie"&&(this.cookies??=[],this.cookies.push(r))}set(t,r){this[Dk]=null;let n=t.toLowerCase();n==="set-cookie"&&(this.cookies=[r]),this[j9].set(n,{name:t,value:r})}delete(t){this[Dk]=null,t=t.toLowerCase(),t==="set-cookie"&&(this.cookies=null),this[j9].delete(t)}get(t){let r=this[j9].get(t.toLowerCase());return r===void 0?null:r.value}*[Symbol.iterator](){for(let[t,{value:r}]of this[j9])yield[t,r]}get entries(){let t={};if(this[j9].size)for(let{name:r,value:n}of this[j9].values())t[r]=n;return t}},zBe=class e{constructor(t=void 0){t!==dna&&(this[z9]=new $ft,this[E8]="none",t!==void 0&&(t=sm.converters.HeadersInit(t),uKn(this,t)))}append(t,r){return sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.append"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),a_r(this,t,r)}delete(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].contains(t)&&this[z9].delete(t)}get(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.get"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.get",value:t,type:"header name"});return this[z9].get(t)}has(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.has"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.has",value:t,type:"header name"});return this[z9].contains(t)}set(t,r){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.set"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.set",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].set(t,r)}getSetCookie(){sm.brandCheck(this,e);let t=this[z9].cookies;return t?[...t]:[]}get[Dk](){if(this[z9][Dk])return this[z9][Dk];let t=[],r=[...this[z9]].sort((a,o)=>a[0]t,"Headers","key")}return jBe(()=>[...this[Dk].values()],"Headers","key")}values(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","value")}return jBe(()=>[...this[Dk].values()],"Headers","value")}entries(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","key+value")}return jBe(()=>[...this[Dk].values()],"Headers","key+value")}forEach(t,r=globalThis){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}[Symbol.for("nodejs.util.inspect.custom")](){return sm.brandCheck(this,e),this[z9]}};zBe.prototype[Symbol.iterator]=zBe.prototype.entries;Object.defineProperties(zBe.prototype,{append:b8,delete:b8,get:b8,has:b8,set:b8,getSetCookie:b8,keys:b8,values:b8,entries:b8,forEach:b8,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});sm.converters.HeadersInit=function(e){if(sm.util.Type(e)==="Object")return e[Symbol.iterator]?sm.converters["sequence>"](e):sm.converters["record"](e);throw sm.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};gKn.exports={fill:uKn,Headers:zBe,HeadersList:$ft}});var nIt=H((lsu,CKn)=>{"use strict";var{Headers:fna,HeadersList:AKn,fill:Ina}=UIe(),{extractBody:dKn,cloneBody:hna,mixinBody:mna}=_He(),u_r=zC(),{kEnumerableProperty:UW}=u_r,{isValidReasonPhrase:Cna,isCancelled:_na,isAborted:yna,isBlobLike:bna,serializeJavascriptValueToJSONString:Ena,isErrorLike:Sna,isomorphicEncode:vna}=EM(),{redirectStatusSet:Bna,nullBodyStatus:wna,DOMException:pKn}=Xoe(),{kState:v2,kHeaders:$N,kGuard:qBe,kRealm:JW}=v$(),{webidl:Wh}=xZ(),{FormData:Tna}=dft(),{getGlobalOrigin:Rna}=wBe(),{URLSerializer:fKn}=wX(),{kHeadersList:c_r,kConstruct:Nna}=GE(),g_r=wt("assert"),{types:l_r}=wt("util"),hKn=globalThis.ReadableStream||wt("stream/web").ReadableStream,Dna=new TextEncoder("utf-8"),$Be=class e{static error(){let t={settingsObject:{}},r=new e;return r[v2]=tIt(),r[JW]=t,r[$N][c_r]=r[v2].headersList,r[$N][qBe]="immutable",r[$N][JW]=t,r}static json(t,r={}){Wh.argumentLengthCheck(arguments,1,{header:"Response.json"}),r!==null&&(r=Wh.converters.ResponseInit(r));let n=Dna.encode(Ena(t)),a=dKn(n),o={settingsObject:{}},l=new e;return l[JW]=o,l[$N][qBe]="response",l[$N][JW]=o,IKn(l,r,{body:a[0],type:"application/json"}),l}static redirect(t,r=302){let n={settingsObject:{}};Wh.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),t=Wh.converters.USVString(t),r=Wh.converters["unsigned short"](r);let a;try{a=new URL(t,Rna())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+t),{cause:A})}if(!Bna.has(r))throw new RangeError("Invalid status code "+r);let o=new e;o[JW]=n,o[$N][qBe]="immutable",o[$N][JW]=n,o[v2].status=r;let l=vna(fKn(a));return o[v2].headersList.append("location",l),o}constructor(t=null,r={}){t!==null&&(t=Wh.converters.BodyInit(t)),r=Wh.converters.ResponseInit(r),this[JW]={settingsObject:{}},this[v2]=rIt({}),this[$N]=new fna(Nna),this[$N][qBe]="response",this[$N][c_r]=this[v2].headersList,this[$N][JW]=this[JW];let n=null;if(t!=null){let[a,o]=dKn(t);n={body:a,type:o}}IKn(this,r,n)}get type(){return Wh.brandCheck(this,e),this[v2].type}get url(){Wh.brandCheck(this,e);let t=this[v2].urlList,r=t[t.length-1]??null;return r===null?"":fKn(r,!0)}get redirected(){return Wh.brandCheck(this,e),this[v2].urlList.length>1}get status(){return Wh.brandCheck(this,e),this[v2].status}get ok(){return Wh.brandCheck(this,e),this[v2].status>=200&&this[v2].status<=299}get statusText(){return Wh.brandCheck(this,e),this[v2].statusText}get headers(){return Wh.brandCheck(this,e),this[$N]}get body(){return Wh.brandCheck(this,e),this[v2].body?this[v2].body.stream:null}get bodyUsed(){return Wh.brandCheck(this,e),!!this[v2].body&&u_r.isDisturbed(this[v2].body.stream)}clone(){if(Wh.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw Wh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=A_r(this[v2]),r=new e;return r[v2]=t,r[JW]=this[JW],r[$N][c_r]=t.headersList,r[$N][qBe]=this[$N][qBe],r[$N][JW]=this[$N][JW],r}};mna($Be);Object.defineProperties($Be.prototype,{type:UW,url:UW,status:UW,ok:UW,redirected:UW,statusText:UW,headers:UW,clone:UW,body:UW,bodyUsed:UW,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties($Be,{json:UW,redirect:UW,error:UW});function A_r(e){if(e.internalResponse)return mKn(A_r(e.internalResponse),e.type);let t=rIt({...e,body:null});return e.body!=null&&(t.body=hna(e.body)),t}function rIt(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new AKn(e.headersList):new AKn,urlList:e.urlList?[...e.urlList]:[]}}function tIt(e){let t=Sna(e);return rIt({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function eIt(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return g_r(!(n in t)),r[n]=a,!0}})}function mKn(e,t){if(t==="basic")return eIt(e,{type:"basic",headersList:e.headersList});if(t==="cors")return eIt(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return eIt(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return eIt(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});g_r(!1)}function kna(e,t=null){return g_r(_na(e)),yna(e)?tIt(Object.assign(new pKn("The operation was aborted.","AbortError"),{cause:t})):tIt(Object.assign(new pKn("Request was cancelled."),{cause:t}))}function IKn(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!Cna(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[v2].status=t.status),"statusText"in t&&t.statusText!=null&&(e[v2].statusText=t.statusText),"headers"in t&&t.headers!=null&&Ina(e[$N],t.headers),r){if(wna.includes(e.status))throw Wh.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[v2].body=r.body,r.type!=null&&!e[v2].headersList.contains("Content-Type")&&e[v2].headersList.append("content-type",r.type)}}Wh.converters.ReadableStream=Wh.interfaceConverter(hKn);Wh.converters.FormData=Wh.interfaceConverter(Tna);Wh.converters.URLSearchParams=Wh.interfaceConverter(URLSearchParams);Wh.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?Wh.converters.USVString(e):bna(e)?Wh.converters.Blob(e,{strict:!1}):l_r.isArrayBuffer(e)||l_r.isTypedArray(e)||l_r.isDataView(e)?Wh.converters.BufferSource(e):u_r.isFormDataLike(e)?Wh.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?Wh.converters.URLSearchParams(e):Wh.converters.DOMString(e)};Wh.converters.BodyInit=function(e){return e instanceof hKn?Wh.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:Wh.converters.XMLHttpRequestBodyInit(e)};Wh.converters.ResponseInit=Wh.dictionaryConverter([{key:"status",converter:Wh.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:Wh.converters.ByteString,defaultValue:""},{key:"headers",converter:Wh.converters.HeadersInit}]);CKn.exports={makeNetworkError:tIt,makeResponse:rIt,makeAppropriateNetworkError:kna,filterResponse:mKn,Response:$Be,cloneResponse:A_r}});var QHe=H((usu,vKn)=>{"use strict";var{extractBody:xna,mixinBody:Gna,cloneBody:Fna}=_He(),{Headers:_Kn,fill:Zna,HeadersList:aIt}=UIe(),{FinalizationRegistry:Lna}=bCr()(),YHe=zC(),{isValidHTTPToken:Vna,sameOrigin:yKn,normalizeMethod:Pna,makePolicyContainer:Wna,normalizeMethodRecord:Ona}=EM(),{forbiddenMethodsSet:Mna,corsSafeListedMethodsSet:Hna,referrerPolicy:Yna,requestRedirect:Qna,requestMode:Xna,requestCredentials:Jna,requestCache:Una,requestDuplex:Kna}=Xoe(),{kEnumerableProperty:oT}=YHe,{kHeaders:yG,kSignal:HHe,kState:P1,kGuard:iIt,kRealm:KW}=v$(),{webidl:Ff}=xZ(),{getGlobalOrigin:jna}=wBe(),{URLSerializer:zna}=wX(),{kHeadersList:sIt,kConstruct:oIt}=GE(),qna=wt("assert"),{getMaxListeners:bKn,setMaxListeners:EKn,getEventListeners:$na,defaultMaxListeners:SKn}=wt("events"),d_r=globalThis.TransformStream,eia=Symbol("abortController"),tia=new Lna(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),KIe=class e{constructor(t,r={}){if(t===oIt)return;Ff.argumentLengthCheck(arguments,1,{header:"Request constructor"}),t=Ff.converters.RequestInfo(t),r=Ff.converters.RequestInit(r),this[KW]={settingsObject:{baseUrl:jna(),get origin(){return this.baseUrl?.origin},policyContainer:Wna()}};let n=null,a=null,o=this[KW].settingsObject.baseUrl,l=null;if(typeof t=="string"){let Q;try{Q=new URL(t,o)}catch(X){throw new TypeError("Failed to parse URL from "+t,{cause:X})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);n=cIt({urlList:[Q]}),a="cors"}else qna(t instanceof e),n=t[P1],l=t[HHe];let A=this[KW].settingsObject.origin,f="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&yKn(n.window,A)&&(f=n.window),r.window!=null)throw new TypeError(`'window' option '${f}' must be null`);"window"in r&&(f="no-window"),n=cIt({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[KW].settingsObject,window:f,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let I=Object.keys(r).length!==0;if(I&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),r.referrer!==void 0){let Q=r.referrer;if(Q==="")n.referrer="no-referrer";else{let X;try{X=new URL(Q,o)}catch(ae){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:ae})}X.protocol==="about:"&&X.hostname==="client"||A&&!yKn(X,this[KW].settingsObject.baseUrl)?n.referrer="client":n.referrer=X}}r.referrerPolicy!==void 0&&(n.referrerPolicy=r.referrerPolicy);let C;if(r.mode!==void 0?C=r.mode:C=a,C==="navigate")throw Ff.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(C!=null&&(n.mode=C),r.credentials!==void 0&&(n.credentials=r.credentials),r.cache!==void 0&&(n.cache=r.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(n.redirect=r.redirect),r.integrity!=null&&(n.integrity=String(r.integrity)),r.keepalive!==void 0&&(n.keepalive=!!r.keepalive),r.method!==void 0){let Q=r.method;if(!Vna(Q))throw new TypeError(`'${Q}' is not a valid HTTP method.`);if(Mna.has(Q.toUpperCase()))throw new TypeError(`'${Q}' HTTP method is unsupported.`);Q=Ona[Q]??Pna(Q),n.method=Q}r.signal!==void 0&&(l=r.signal),this[P1]=n;let b=new AbortController;if(this[HHe]=b.signal,this[HHe][KW]=this[KW],l!=null){if(!l||typeof l.aborted!="boolean"||typeof l.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(l.aborted)b.abort(l.reason);else{this[eia]=b;let Q=new WeakRef(b),X=function(){let ae=Q.deref();ae!==void 0&&ae.abort(this.reason)};try{(typeof bKn=="function"&&bKn(l)===SKn||$na(l,"abort").length>=SKn)&&EKn(100,l)}catch{}YHe.addAbortListener(l,X),tia.register(b,{signal:l,abort:X})}}if(this[yG]=new _Kn(oIt),this[yG][sIt]=n.headersList,this[yG][iIt]="request",this[yG][KW]=this[KW],C==="no-cors"){if(!Hna.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);this[yG][iIt]="request-no-cors"}if(I){let Q=this[yG][sIt],X=r.headers!==void 0?r.headers:new aIt(Q);if(Q.clear(),X instanceof aIt){for(let[ae,ne]of X)Q.append(ae,ne);Q.cookies=X.cookies}else Zna(this[yG],X)}let E=t instanceof e?t[P1].body:null;if((r.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let N=null;if(r.body!=null){let[Q,X]=xna(r.body,n.keepalive);N=Q,X&&!this[yG][sIt].contains("content-type")&&this[yG].append("content-type",X)}let B=N??E;if(B!=null&&B.source==null){if(N!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let F=B;if(N==null&&E!=null){if(YHe.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");d_r||(d_r=wt("stream/web").TransformStream);let Q=new d_r;E.stream.pipeThrough(Q),F={source:E.source,length:E.length,stream:Q.readable}}this[P1].body=F}get method(){return Ff.brandCheck(this,e),this[P1].method}get url(){return Ff.brandCheck(this,e),zna(this[P1].url)}get headers(){return Ff.brandCheck(this,e),this[yG]}get destination(){return Ff.brandCheck(this,e),this[P1].destination}get referrer(){return Ff.brandCheck(this,e),this[P1].referrer==="no-referrer"?"":this[P1].referrer==="client"?"about:client":this[P1].referrer.toString()}get referrerPolicy(){return Ff.brandCheck(this,e),this[P1].referrerPolicy}get mode(){return Ff.brandCheck(this,e),this[P1].mode}get credentials(){return this[P1].credentials}get cache(){return Ff.brandCheck(this,e),this[P1].cache}get redirect(){return Ff.brandCheck(this,e),this[P1].redirect}get integrity(){return Ff.brandCheck(this,e),this[P1].integrity}get keepalive(){return Ff.brandCheck(this,e),this[P1].keepalive}get isReloadNavigation(){return Ff.brandCheck(this,e),this[P1].reloadNavigation}get isHistoryNavigation(){return Ff.brandCheck(this,e),this[P1].historyNavigation}get signal(){return Ff.brandCheck(this,e),this[HHe]}get body(){return Ff.brandCheck(this,e),this[P1].body?this[P1].body.stream:null}get bodyUsed(){return Ff.brandCheck(this,e),!!this[P1].body&&YHe.isDisturbed(this[P1].body.stream)}get duplex(){return Ff.brandCheck(this,e),"half"}clone(){if(Ff.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let t=ria(this[P1]),r=new e(oIt);r[P1]=t,r[KW]=this[KW],r[yG]=new _Kn(oIt),r[yG][sIt]=t.headersList,r[yG][iIt]=this[yG][iIt],r[yG][KW]=this[yG][KW];let n=new AbortController;return this.signal.aborted?n.abort(this.signal.reason):YHe.addAbortListener(this.signal,()=>{n.abort(this.signal.reason)}),r[HHe]=n.signal,r}};Gna(KIe);function cIt(e){let t={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new aIt(e.headersList):new aIt};return t.url=t.urlList[0],t}function ria(e){let t=cIt({...e,body:null});return e.body!=null&&(t.body=Fna(e.body)),t}Object.defineProperties(KIe.prototype,{method:oT,url:oT,headers:oT,redirect:oT,clone:oT,signal:oT,duplex:oT,destination:oT,body:oT,bodyUsed:oT,isHistoryNavigation:oT,isReloadNavigation:oT,keepalive:oT,integrity:oT,cache:oT,credentials:oT,attribute:oT,referrerPolicy:oT,referrer:oT,mode:oT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});Ff.converters.Request=Ff.interfaceConverter(KIe);Ff.converters.RequestInfo=function(e){return typeof e=="string"?Ff.converters.USVString(e):e instanceof KIe?Ff.converters.Request(e):Ff.converters.USVString(e)};Ff.converters.AbortSignal=Ff.interfaceConverter(AbortSignal);Ff.converters.RequestInit=Ff.dictionaryConverter([{key:"method",converter:Ff.converters.ByteString},{key:"headers",converter:Ff.converters.HeadersInit},{key:"body",converter:Ff.nullableConverter(Ff.converters.BodyInit)},{key:"referrer",converter:Ff.converters.USVString},{key:"referrerPolicy",converter:Ff.converters.DOMString,allowedValues:Yna},{key:"mode",converter:Ff.converters.DOMString,allowedValues:Xna},{key:"credentials",converter:Ff.converters.DOMString,allowedValues:Jna},{key:"cache",converter:Ff.converters.DOMString,allowedValues:Una},{key:"redirect",converter:Ff.converters.DOMString,allowedValues:Qna},{key:"integrity",converter:Ff.converters.DOMString},{key:"keepalive",converter:Ff.converters.boolean},{key:"signal",converter:Ff.nullableConverter(e=>Ff.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:Ff.converters.any},{key:"duplex",converter:Ff.converters.DOMString,allowedValues:Kna}]);vKn.exports={Request:KIe,makeRequest:cIt}});var fIt=H((gsu,PKn)=>{"use strict";var{Response:nia,makeNetworkError:Kb,makeAppropriateNetworkError:lIt,filterResponse:p_r,makeResponse:uIt}=nIt(),{Headers:BKn}=UIe(),{Request:iia,makeRequest:sia}=QHe(),XHe=wt("zlib"),{bytesMatch:oia,makePolicyContainer:aia,clonePolicyContainer:cia,requestBadPort:lia,TAOCheck:uia,appendRequestOriginHeader:gia,responseLocationURL:Aia,requestCurrentURL:S8,setRequestReferrerPolicyOnRedirect:dia,tryUpgradeRequestToAPotentiallyTrustworthyURL:pia,createOpaqueTimingInfo:E_r,appendFetchMetadata:fia,corsCheck:Iia,crossOriginResourcePolicyCheck:hia,determineRequestsReferrer:mia,coarsenedSharedCurrentTime:S_r,createDeferredPromise:Cia,isBlobLike:_ia,sameOrigin:__r,isCancelled:twe,isAborted:wKn,isErrorLike:yia,fullyReadBody:DKn,readableStreamClose:bia,isomorphicEncode:y_r,urlIsLocal:Eia,urlIsHttpHttpsScheme:v_r,urlHasHttpsScheme:Sia}=EM(),{kState:b_r,kHeaders:f_r,kGuard:via,kRealm:TKn}=v$(),rwe=wt("assert"),{safelyExtractBody:gIt}=_He(),{redirectStatusSet:kKn,nullBodyStatus:xKn,safeMethodsSet:Bia,requestBodyHeader:wia,subresourceSet:Tia,DOMException:AIt}=Xoe(),{kHeadersList:ewe}=GE(),Ria=wt("events"),{Readable:Nia,pipeline:Dia}=wt("stream"),{addAbortListener:kia,isErrored:xia,isReadable:dIt,nodeMajor:RKn,nodeMinor:Gia}=zC(),{dataURLProcessor:Fia,serializeAMimeType:Zia}=wX(),{TransformStream:Lia}=wt("stream/web"),{getGlobalDispatcher:Via}=KBe(),{webidl:Pia}=xZ(),{STATUS_CODES:Wia}=wt("http"),Oia=["GET","HEAD"],I_r,h_r=globalThis.ReadableStream,pIt=class extends Ria{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new AIt("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function Mia(e,t={}){Pia.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let r=Cia(),n;try{n=new iia(e,t)}catch(E){return r.reject(E),r.promise}let a=n[b_r];if(n.signal.aborted)return m_r(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=null,f=!1,I=null;return kia(n.signal,()=>{f=!0,rwe(I!=null),I.abort(n.signal.reason),m_r(r,a,l,n.signal.reason)}),I=FKn({request:a,processResponseEndOfBody:E=>GKn(E,"fetch"),processResponse:E=>{if(f)return Promise.resolve();if(E.aborted)return m_r(r,a,l,I.serializedAbortReason),Promise.resolve();if(E.type==="error")return r.reject(Object.assign(new TypeError("fetch failed"),{cause:E.error})),Promise.resolve();l=new nia,l[b_r]=E,l[TKn]=A,l[f_r][ewe]=E.headersList,l[f_r][via]="immutable",l[f_r][TKn]=A,r.resolve(l)},dispatcher:t.dispatcher??Via()}),r.promise}function GKn(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;v_r(r)&&n!==null&&(e.timingAllowPassed||(n=E_r({startTime:n.startTime}),a=""),n.endTime=S_r(),e.timingInfo=n,Hia(n,r,t,globalThis,a))}function Hia(e,t,r,n,a){(RKn>18||RKn===18&&Gia>=2)&&performance.markResourceTiming(e,t.href,r,n,a)}function m_r(e,t,r,n){if(n||(n=new AIt("The operation was aborted.","AbortError")),e.reject(n),t.body!=null&&dIt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[b_r];a.body!=null&&dIt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function FKn({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A}){let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=S_r(I),b=E_r({startTime:C}),E={controller:new pIt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return rwe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=cia(e.client.policyContainer):e.policyContainer=aia()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,Tia.has(e.destination),ZKn(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function ZKn(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!Eia(S8(r))&&(n=Kb("local URLs only")),pia(r),lia(r)==="blocked"&&(n=Kb("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=mia(r)),n===null&&(n=await(async()=>{let o=S8(r);return __r(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await NKn(e)):r.mode==="same-origin"?Kb('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?Kb('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await NKn(e)):v_r(S8(r))?(r.responseTainting="cors",await LKn(e)):Kb("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=p_r(n,"basic"):r.responseTainting==="cors"?n=p_r(n,"cors"):r.responseTainting==="opaque"?n=p_r(n,"opaque"):rwe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range")&&(n=a=Kb()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||xKn.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>C_r(e,Kb(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!oia(A,r.integrity)){o("integrity mismatch");return}n.body=gIt(A)[0],C_r(e,n)};await DKn(n.body,l,o)}else C_r(e,n)}function NKn(e){if(twe(e)&&e.request.redirectCount===0)return Promise.resolve(lIt(e));let{request:t}=e,{protocol:r}=S8(t);switch(r){case"about:":return Promise.resolve(Kb("about scheme is not supported"));case"blob:":{I_r||(I_r=wt("buffer").resolveObjectURL);let n=S8(t);if(n.search.length!==0)return Promise.resolve(Kb("NetworkError when attempting to fetch resource."));let a=I_r(n.toString());if(t.method!=="GET"||!_ia(a))return Promise.resolve(Kb("invalid method"));let o=gIt(a),l=o[0],A=y_r(`${l.length}`),f=o[1]??"",I=uIt({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:A}],["content-type",{name:"Content-Type",value:f}]]});return I.body=l,Promise.resolve(I)}case"data:":{let n=S8(t),a=Fia(n);if(a==="failure")return Promise.resolve(Kb("failed to fetch the data URL"));let o=Zia(a.mimeType);return Promise.resolve(uIt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:gIt(a.body)[0]}))}case"file:":return Promise.resolve(Kb("not implemented... yet..."));case"http:":case"https:":return LKn(e).catch(n=>Kb(n));default:return Promise.resolve(Kb("unknown scheme"))}}function Yia(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function C_r(e,t){t.type==="error"&&(t.urlList=[e.request.urlList[0]],t.timingInfo=E_r({startTime:e.timingInfo.startTime}));let r=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(t)),t.body==null)r();else{let n=(o,l)=>{l.enqueue(o)},a=new Lia({start(){},transform:n,flush:r},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(a)}}if(e.processResponseConsumeBody!=null){let n=o=>e.processResponseConsumeBody(t,o),a=o=>e.processResponseConsumeBody(t,o);if(t.body==null)queueMicrotask(()=>n(null));else return DKn(t.body,n,a);return Promise.resolve()}}async function LKn(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await VKn(e),t.responseTainting==="cors"&&Iia(t,r)==="failure")return Kb("cors failure");uia(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&hia(t.origin,t.client,t.destination,n)==="blocked"?Kb("blocked"):(kKn.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(),t.redirect==="error"?r=Kb("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await Qia(e,r):rwe(!1)),r.timingInfo=a,r)}function Qia(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=Aia(n,S8(r).hash),a==null)return t}catch(l){return Promise.resolve(Kb(l))}if(!v_r(a))return Promise.resolve(Kb("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(Kb("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!__r(r,a))return Promise.resolve(Kb('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(Kb('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(Kb());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!Oia.includes(r.method)){r.method="GET",r.body=null;for(let l of wia)r.headersList.delete(l)}__r(S8(r),a)||(r.headersList.delete("authorization"),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie"),r.headersList.delete("host")),r.body!=null&&(rwe(r.body.source!=null),r.body=gIt(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=S_r(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),dia(r,n),ZKn(e,!0)}async function VKn(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=sia(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=y_r(`${C}`)),b!=null&&o.headersList.append("content-length",b),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",y_r(o.referrer.href)),gia(o),fia(o),o.headersList.contains("user-agent")||o.headersList.append("user-agent",typeof esbuildDetection>"u"?"undici":"node"),o.cache==="default"&&(o.headersList.contains("if-modified-since")||o.headersList.contains("if-none-match")||o.headersList.contains("if-unmodified-since")||o.headersList.contains("if-match")||o.headersList.contains("if-range"))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control")&&o.headersList.append("cache-control","max-age=0"),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma")||o.headersList.append("pragma","no-cache"),o.headersList.contains("cache-control")||o.headersList.append("cache-control","no-cache")),o.headersList.contains("range")&&o.headersList.append("accept-encoding","identity"),o.headersList.contains("accept-encoding")||(Sia(S8(o))?o.headersList.append("accept-encoding","br, gzip, deflate"):o.headersList.append("accept-encoding","gzip, deflate")),o.headersList.delete("host"),A==null&&(o.cache="no-store"),o.mode!=="no-store"&&o.mode,l==null){if(o.mode==="only-if-cached")return Kb("only if cached");let E=await Xia(a,I,r);!Bia.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range")&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?Kb():twe(e)?lIt(e):Kb("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(twe(e))return lIt(e);e.controller.connection.destroy(),l=await VKn(e,t,!0)}return l}async function Xia(e,t=!1,r=!1){rwe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B){this.destroyed||(this.destroyed=!0,this.abort?.(B??new AIt("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){twe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{twe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{twe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=uIt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=uIt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),lIt(e,B)):Kb(B)}let I=()=>{e.controller.resume()},C=B=>{e.controller.abort(B)};h_r||(h_r=wt("stream/web").ReadableStream);let b=new h_r({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)}},{highWaterMark:0,size(){return 1}});a.body={stream:b},e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:Q,value:X}=await e.controller.next();if(wKn(e))break;B=Q?void 0:X}catch(Q){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=Q,F=!0)}if(B===void 0){bia(e.controller.controller),Yia(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}if(e.controller.controller.enqueue(new Uint8Array(B)),xia(b)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function E(B){wKn(e)?(a.aborted=!0,dIt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):dIt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:yia(B)?B:void 0})),e.controller.connection.destroy()}return a;async function N({body:B}){let F=S8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;ce.destroyed?ne(new AIt("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new BKn;if(Array.isArray(ce))for(let et=0;etje.trim()):ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}else{let et=Object.keys(ce);for(let ct of et){let Me=ce[ct];ct.toLowerCase()==="content-encoding"?de=Me.toLowerCase().split(",").map(je=>je.trim()).reverse():ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}}this.body=new Nia({read:fe});let De=[],k=n.redirect==="follow"&&be&&kKn.has(ne);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!xKn.includes(ne)&&!k)for(let et of de)if(et==="x-gzip"||et==="gzip")De.push(XHe.createGunzip({flush:XHe.constants.Z_SYNC_FLUSH,finishFlush:XHe.constants.Z_SYNC_FLUSH}));else if(et==="deflate")De.push(XHe.createInflate());else if(et==="br")De.push(XHe.createBrotliDecompress());else{De.length=0;break}return X({status:ne,statusText:ue,headersList:Se[ewe],body:De.length?Dia(this.body,...De,()=>{}):this.body.on("error",()=>{})}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new BKn;for(let de=0;de{"use strict";WKn.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var MKn=H((dsu,OKn)=>{"use strict";var{webidl:jW}=xZ(),IIt=Symbol("ProgressEvent state"),w_r=class e extends Event{constructor(t,r={}){t=jW.converters.DOMString(t),r=jW.converters.ProgressEventInit(r??{}),super(t,r),this[IIt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return jW.brandCheck(this,e),this[IIt].lengthComputable}get loaded(){return jW.brandCheck(this,e),this[IIt].loaded}get total(){return jW.brandCheck(this,e),this[IIt].total}};jW.converters.ProgressEventInit=jW.dictionaryConverter([{key:"lengthComputable",converter:jW.converters.boolean,defaultValue:!1},{key:"loaded",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"total",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:jW.converters.boolean,defaultValue:!1},{key:"cancelable",converter:jW.converters.boolean,defaultValue:!1},{key:"composed",converter:jW.converters.boolean,defaultValue:!1}]);OKn.exports={ProgressEvent:w_r}});var YKn=H((psu,HKn)=>{"use strict";function Jia(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}HKn.exports={getEncoding:Jia}});var qKn=H((fsu,zKn)=>{"use strict";var{kState:nwe,kError:T_r,kResult:QKn,kAborted:JHe,kLastProgressEventFired:R_r}=B_r(),{ProgressEvent:Uia}=MKn(),{getEncoding:XKn}=YKn(),{DOMException:Kia}=Xoe(),{serializeAMimeType:jia,parseMIMEType:JKn}=wX(),{types:zia}=wt("util"),{StringDecoder:UKn}=wt("string_decoder"),{btoa:KKn}=wt("buffer"),qia={enumerable:!0,writable:!1,configurable:!1};function $ia(e,t,r,n){if(e[nwe]==="loading")throw new Kia("Invalid state","InvalidStateError");e[nwe]="loading",e[QKn]=null,e[T_r]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[JHe];)try{let{done:I,value:C}=await A;if(f&&!e[JHe]&&queueMicrotask(()=>{eae("loadstart",e)}),f=!1,!I&&zia.isUint8Array(C))l.push(C),(e[R_r]===void 0||Date.now()-e[R_r]>=50)&&!e[JHe]&&(e[R_r]=Date.now(),queueMicrotask(()=>{eae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[nwe]="done";try{let b=esa(l,r,t.type,n);if(e[JHe])return;e[QKn]=b,eae("load",e)}catch(b){e[T_r]=b,eae("error",e)}e[nwe]!=="loading"&&eae("loadend",e)});break}}catch(I){if(e[JHe])return;queueMicrotask(()=>{e[nwe]="done",e[T_r]=I,eae("error",e),e[nwe]!=="loading"&&eae("loadend",e)});break}})()}function eae(e,t){let r=new Uia(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function esa(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=JKn(r||"application/octet-stream");o!=="failure"&&(a+=jia(o)),a+=";base64,";let l=new UKn("latin1");for(let A of e)a+=KKn(l.write(A));return a+=KKn(l.end()),a}case"Text":{let a="failure";if(n&&(a=XKn(n)),a==="failure"&&r){let o=JKn(r);o!=="failure"&&(a=XKn(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),tsa(e,a)}case"ArrayBuffer":return jKn(e).buffer;case"BinaryString":{let a="",o=new UKn("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function tsa(e,t){let r=jKn(e),n=rsa(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function rsa(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function jKn(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}zKn.exports={staticPropertyDescriptors:qia,readOperation:$ia,fireAProgressEvent:eae}});var r8n=H((Isu,t8n)=>{"use strict";var{staticPropertyDescriptors:iwe,readOperation:hIt,fireAProgressEvent:$Kn}=qKn(),{kState:jIe,kError:e8n,kResult:mIt,kEvents:I0,kAborted:nsa}=B_r(),{webidl:nb}=xZ(),{kEnumerableProperty:q9}=zC(),DX=class e extends EventTarget{constructor(){super(),this[jIe]="empty",this[mIt]=null,this[e8n]=null,this[I0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"ArrayBuffer")}readAsBinaryString(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"BinaryString")}readAsText(t,r=void 0){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),t=nb.converters.Blob(t,{strict:!1}),r!==void 0&&(r=nb.converters.DOMString(r)),hIt(this,t,"Text",r)}readAsDataURL(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"DataURL")}abort(){if(this[jIe]==="empty"||this[jIe]==="done"){this[mIt]=null;return}this[jIe]==="loading"&&(this[jIe]="done",this[mIt]=null),this[nsa]=!0,$Kn("abort",this),this[jIe]!=="loading"&&$Kn("loadend",this)}get readyState(){switch(nb.brandCheck(this,e),this[jIe]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return nb.brandCheck(this,e),this[mIt]}get error(){return nb.brandCheck(this,e),this[e8n]}get onloadend(){return nb.brandCheck(this,e),this[I0].loadend}set onloadend(t){nb.brandCheck(this,e),this[I0].loadend&&this.removeEventListener("loadend",this[I0].loadend),typeof t=="function"?(this[I0].loadend=t,this.addEventListener("loadend",t)):this[I0].loadend=null}get onerror(){return nb.brandCheck(this,e),this[I0].error}set onerror(t){nb.brandCheck(this,e),this[I0].error&&this.removeEventListener("error",this[I0].error),typeof t=="function"?(this[I0].error=t,this.addEventListener("error",t)):this[I0].error=null}get onloadstart(){return nb.brandCheck(this,e),this[I0].loadstart}set onloadstart(t){nb.brandCheck(this,e),this[I0].loadstart&&this.removeEventListener("loadstart",this[I0].loadstart),typeof t=="function"?(this[I0].loadstart=t,this.addEventListener("loadstart",t)):this[I0].loadstart=null}get onprogress(){return nb.brandCheck(this,e),this[I0].progress}set onprogress(t){nb.brandCheck(this,e),this[I0].progress&&this.removeEventListener("progress",this[I0].progress),typeof t=="function"?(this[I0].progress=t,this.addEventListener("progress",t)):this[I0].progress=null}get onload(){return nb.brandCheck(this,e),this[I0].load}set onload(t){nb.brandCheck(this,e),this[I0].load&&this.removeEventListener("load",this[I0].load),typeof t=="function"?(this[I0].load=t,this.addEventListener("load",t)):this[I0].load=null}get onabort(){return nb.brandCheck(this,e),this[I0].abort}set onabort(t){nb.brandCheck(this,e),this[I0].abort&&this.removeEventListener("abort",this[I0].abort),typeof t=="function"?(this[I0].abort=t,this.addEventListener("abort",t)):this[I0].abort=null}};DX.EMPTY=DX.prototype.EMPTY=0;DX.LOADING=DX.prototype.LOADING=1;DX.DONE=DX.prototype.DONE=2;Object.defineProperties(DX.prototype,{EMPTY:iwe,LOADING:iwe,DONE:iwe,readAsArrayBuffer:q9,readAsBinaryString:q9,readAsText:q9,readAsDataURL:q9,abort:q9,readyState:q9,result:q9,error:q9,onloadstart:q9,onprogress:q9,onload:q9,onabort:q9,onerror:q9,onloadend:q9,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(DX,{EMPTY:iwe,LOADING:iwe,DONE:iwe});t8n.exports={FileReader:DX}});var CIt=H((hsu,n8n)=>{"use strict";n8n.exports={kConstruct:GE().kConstruct}});var o8n=H((msu,s8n)=>{"use strict";var isa=wt("assert"),{URLSerializer:i8n}=wX(),{isValidHeaderName:ssa}=EM();function osa(e,t,r=!1){let n=i8n(e,r),a=i8n(t,r);return n===a}function asa(e){isa(e!==null);let t=[];for(let r of e.split(",")){if(r=r.trim(),r.length){if(!ssa(r))continue}else continue;t.push(r)}return t}s8n.exports={urlEquals:osa,fieldValues:asa}});var A8n=H((Csu,g8n)=>{"use strict";var{kConstruct:csa}=CIt(),{urlEquals:lsa,fieldValues:N_r}=o8n(),{kEnumerableProperty:zIe,isDisturbed:usa}=zC(),{kHeadersList:a8n}=GE(),{webidl:Lp}=xZ(),{Response:l8n,cloneResponse:gsa}=nIt(),{Request:v8}=QHe(),{kState:VZ,kHeaders:_It,kGuard:c8n,kRealm:Asa}=v$(),{fetching:dsa}=fIt(),{urlIsHttpHttpsScheme:yIt,createDeferredPromise:swe,readAllBytes:psa}=EM(),D_r=wt("assert"),{getGlobalDispatcher:fsa}=KBe(),bIt=class e{#e;constructor(){arguments[0]!==csa&&Lp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.match"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=await this.matchAll(t,r);if(n.length!==0)return n[0]}async matchAll(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=[];if(t===void 0)for(let l of this.#e)a.push(l[1]);else{let l=this.#n(n,r);for(let A of l)a.push(A[1])}let o=[];for(let l of a){let A=new l8n(l.body?.source??null),f=A[VZ].body;A[VZ]=l,A[VZ].body=f,A[_It][a8n]=l.headersList,A[_It][c8n]="immutable",o.push(A)}return Object.freeze(o)}async add(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.add"}),t=Lp.converters.RequestInfo(t);let r=[t];return await this.addAll(r)}async addAll(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),t=Lp.converters["sequence"](t);let r=[],n=[];for(let b of t){if(typeof b=="string")continue;let E=b[VZ];if(!yIt(E.url)||E.method!=="GET")throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let a=[];for(let b of t){let E=new v8(b)[VZ];if(!yIt(E.url))throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let N=swe();a.push(dsa({request:E,dispatcher:fsa(),processResponse(B){if(B.type==="error"||B.status===206||B.status<200||B.status>299)N.reject(Lp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(B.headersList.contains("vary")){let F=N_r(B.headersList.get("vary"));for(let Q of F)if(Q==="*"){N.reject(Lp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let X of a)X.abort();return}}},processResponseEndOfBody(B){if(B.aborted){N.reject(new DOMException("aborted","AbortError"));return}N.resolve(B)}})),r.push(N.promise)}let l=await Promise.all(r),A=[],f=0;for(let b of l){let E={type:"put",request:n[f],response:b};A.push(E),f++}let I=swe(),C=null;try{this.#t(A)}catch(b){C=b}return queueMicrotask(()=>{C===null?I.resolve(void 0):I.reject(C)}),I.promise}async put(t,r){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,2,{header:"Cache.put"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.Response(r);let n=null;if(t instanceof v8?n=t[VZ]:n=new v8(t)[VZ],!yIt(n.url)||n.method!=="GET")throw Lp.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let a=r[VZ];if(a.status===206)throw Lp.errors.exception({header:"Cache.put",message:"Got 206 status"});if(a.headersList.contains("vary")){let E=N_r(a.headersList.get("vary"));for(let N of E)if(N==="*")throw Lp.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(a.body&&(usa(a.body.stream)||a.body.stream.locked))throw Lp.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let o=gsa(a),l=swe();if(a.body!=null){let N=a.body.stream.getReader();psa(N).then(l.resolve,l.reject)}else l.resolve(void 0);let A=[],f={type:"put",request:n,response:o};A.push(f);let I=await l.promise;o.body!=null&&(o.body.source=I);let C=swe(),b=null;try{this.#t(A)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve():C.reject(b)}),C.promise}async delete(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return!1}else D_r(typeof t=="string"),n=new v8(t)[VZ];let a=[],o={type:"delete",request:n,options:r};a.push(o);let l=swe(),A=null,f;try{f=this.#t(a)}catch(I){A=I}return queueMicrotask(()=>{A===null?l.resolve(!!f?.length):l.reject(A)}),l.promise}async keys(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=swe(),o=[];if(t===void 0)for(let l of this.#e)o.push(l[0]);else{let l=this.#n(n,r);for(let A of l)o.push(A[0])}return queueMicrotask(()=>{let l=[];for(let A of o){let f=new v8("https://a");f[VZ]=A,f[_It][a8n]=A.headersList,f[_It][c8n]="immutable",f[Asa]=A.client,l.push(f)}a.resolve(Object.freeze(l))}),a.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);D_r(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!yIt(f.url))throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);D_r(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!lsa(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=N_r(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}};Object.defineProperties(bIt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:zIe,matchAll:zIe,add:zIe,addAll:zIe,put:zIe,delete:zIe,keys:zIe});var u8n=[{key:"ignoreSearch",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:Lp.converters.boolean,defaultValue:!1}];Lp.converters.CacheQueryOptions=Lp.dictionaryConverter(u8n);Lp.converters.MultiCacheQueryOptions=Lp.dictionaryConverter([...u8n,{key:"cacheName",converter:Lp.converters.DOMString}]);Lp.converters.Response=Lp.interfaceConverter(l8n);Lp.converters["sequence"]=Lp.sequenceConverter(Lp.converters.RequestInfo);g8n.exports={Cache:bIt}});var p8n=H((_su,d8n)=>{"use strict";var{kConstruct:UHe}=CIt(),{Cache:EIt}=A8n(),{webidl:PZ}=xZ(),{kEnumerableProperty:KHe}=zC(),SIt=class e{#e=new Map;constructor(){arguments[0]!==UHe&&PZ.illegalConstructor()}async match(t,r={}){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),t=PZ.converters.RequestInfo(t),r=PZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new EIt(UHe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new EIt(UHe,n).match(t,r);if(o!==void 0)return o}}async has(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),t=PZ.converters.DOMString(t),this.#e.has(t)}async open(t){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),t=PZ.converters.DOMString(t),this.#e.has(t)){let n=this.#e.get(t);return new EIt(UHe,n)}let r=[];return this.#e.set(t,r),new EIt(UHe,r)}async delete(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),t=PZ.converters.DOMString(t),this.#e.delete(t)}async keys(){return PZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(SIt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:KHe,has:KHe,open:KHe,delete:KHe,keys:KHe});d8n.exports={CacheStorage:SIt}});var I8n=H((ysu,f8n)=>{"use strict";f8n.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var k_r=H((bsu,C8n)=>{"use strict";var h8n=wt("assert"),{kHeadersList:m8n}=GE();function Isa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r>=0||r<=8||r>=10||r<=31||r===127)return!1}}function hsa(e){for(let t of e){let r=t.charCodeAt(0);if(r<=32||r>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}")throw new Error("Invalid cookie name")}}function msa(e){for(let t of e){let r=t.charCodeAt(0);if(r<33||r===34||r===44||r===59||r===92||r>126)throw new Error("Invalid header value")}}function Csa(e){for(let t of e)if(t.charCodeAt(0)<33||t===";")throw new Error("Invalid cookie path")}function _sa(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function ysa(e){typeof e=="number"&&(e=new Date(e));let t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=t[e.getUTCDay()],a=e.getUTCDate().toString().padStart(2,"0"),o=r[e.getUTCMonth()],l=e.getUTCFullYear(),A=e.getUTCHours().toString().padStart(2,"0"),f=e.getUTCMinutes().toString().padStart(2,"0"),I=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${a} ${o} ${l} ${A}:${f}:${I} GMT`}function bsa(e){if(e<0)throw new Error("Invalid cookie max-age")}function Esa(e){if(e.name.length===0)return null;hsa(e.name),msa(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(bsa(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(_sa(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(Csa(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${ysa(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}var vIt;function Ssa(e){if(e[m8n])return e[m8n];vIt||(vIt=Object.getOwnPropertySymbols(e).find(r=>r.description==="headers list"),h8n(vIt,"Headers cannot be parsed"));let t=e[vIt];return h8n(t),t}C8n.exports={isCTLExcludingHtab:Isa,stringify:Esa,getHeadersList:Ssa}});var y8n=H((Esu,_8n)=>{"use strict";var{maxNameValuePairSize:vsa,maxAttributeValueSize:Bsa}=I8n(),{isCTLExcludingHtab:wsa}=k_r(),{collectASequenceOfCodePointsFast:BIt}=wX(),Tsa=wt("assert");function Rsa(e){if(wsa(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=BIt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=BIt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>vsa?null:{name:n,value:a,...owe(r)}}function owe(e,t={}){if(e.length===0)return t;Tsa(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=BIt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=BIt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Bsa)return owe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return owe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return owe(e,t)}_8n.exports={parseSetCookie:Rsa,parseUnparsedAttributes:owe}});var v8n=H((Ssu,S8n)=>{"use strict";var{parseSetCookie:Nsa}=y8n(),{stringify:b8n,getHeadersList:Dsa}=k_r(),{webidl:rC}=xZ(),{Headers:wIt}=UIe();function ksa(e){rC.argumentLengthCheck(arguments,1,{header:"getCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function xsa(e,t,r){rC.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.DOMString(t),r=rC.converters.DeleteCookieAttributes(r),E8n(e,{name:t,value:"",expires:new Date(0),...r})}function Gsa(e){rC.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=Dsa(e).cookies;return t?t.map(r=>Nsa(Array.isArray(r)?r[1]:r)):[]}function E8n(e,t){rC.argumentLengthCheck(arguments,2,{header:"setCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.Cookie(t),b8n(t)&&e.append("Set-Cookie",b8n(t))}rC.converters.DeleteCookieAttributes=rC.dictionaryConverter([{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null}]);rC.converters.Cookie=rC.dictionaryConverter([{converter:rC.converters.DOMString,key:"name"},{converter:rC.converters.DOMString,key:"value"},{converter:rC.nullableConverter(e=>typeof e=="number"?rC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:rC.nullableConverter(rC.converters["long long"]),key:"maxAge",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"secure",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"httpOnly",defaultValue:null},{converter:rC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:rC.sequenceConverter(rC.converters.DOMString),key:"unparsed",defaultValue:[]}]);S8n.exports={getCookies:ksa,deleteCookie:xsa,getSetCookies:Gsa,setCookie:E8n}});var awe=H((vsu,B8n)=>{"use strict";var Fsa="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Zsa={enumerable:!0,writable:!1,configurable:!1},Lsa={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Vsa={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Psa=2**16-1,Wsa={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Osa=Buffer.allocUnsafe(0);B8n.exports={uid:Fsa,staticPropertyDescriptors:Zsa,states:Lsa,opcodes:Vsa,maxUnsigned16Bit:Psa,parserStates:Wsa,emptyBuffer:Osa}});var jHe=H((Bsu,w8n)=>{"use strict";w8n.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var G_r=H((wsu,T8n)=>{"use strict";var{webidl:Vp}=xZ(),{kEnumerableProperty:$9}=zC(),{MessagePort:Msa}=wt("worker_threads"),TIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.MessageEventInit(r),super(t,r),this.#e=r}get data(){return Vp.brandCheck(this,e),this.#e.data}get origin(){return Vp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Vp.brandCheck(this,e),this.#e.lastEventId}get source(){return Vp.brandCheck(this,e),this.#e.source}get ports(){return Vp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Vp.brandCheck(this,e),Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}},RIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Vp.brandCheck(this,e),this.#e.wasClean}get code(){return Vp.brandCheck(this,e),this.#e.code}get reason(){return Vp.brandCheck(this,e),this.#e.reason}},NIt=class e extends Event{#e;constructor(t,r){Vp.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(t,r),t=Vp.converters.DOMString(t),r=Vp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Vp.brandCheck(this,e),this.#e.message}get filename(){return Vp.brandCheck(this,e),this.#e.filename}get lineno(){return Vp.brandCheck(this,e),this.#e.lineno}get colno(){return Vp.brandCheck(this,e),this.#e.colno}get error(){return Vp.brandCheck(this,e),this.#e.error}};Object.defineProperties(TIt.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:$9,origin:$9,lastEventId:$9,source:$9,ports:$9,initMessageEvent:$9});Object.defineProperties(RIt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:$9,code:$9,wasClean:$9});Object.defineProperties(NIt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:$9,filename:$9,lineno:$9,colno:$9,error:$9});Vp.converters.MessagePort=Vp.interfaceConverter(Msa);Vp.converters["sequence"]=Vp.sequenceConverter(Vp.converters.MessagePort);var x_r=[{key:"bubbles",converter:Vp.converters.boolean,defaultValue:!1},{key:"cancelable",converter:Vp.converters.boolean,defaultValue:!1},{key:"composed",converter:Vp.converters.boolean,defaultValue:!1}];Vp.converters.MessageEventInit=Vp.dictionaryConverter([...x_r,{key:"data",converter:Vp.converters.any,defaultValue:null},{key:"origin",converter:Vp.converters.USVString,defaultValue:""},{key:"lastEventId",converter:Vp.converters.DOMString,defaultValue:""},{key:"source",converter:Vp.nullableConverter(Vp.converters.MessagePort),defaultValue:null},{key:"ports",converter:Vp.converters["sequence"],get defaultValue(){return[]}}]);Vp.converters.CloseEventInit=Vp.dictionaryConverter([...x_r,{key:"wasClean",converter:Vp.converters.boolean,defaultValue:!1},{key:"code",converter:Vp.converters["unsigned short"],defaultValue:0},{key:"reason",converter:Vp.converters.USVString,defaultValue:""}]);Vp.converters.ErrorEventInit=Vp.dictionaryConverter([...x_r,{key:"message",converter:Vp.converters.DOMString,defaultValue:""},{key:"filename",converter:Vp.converters.USVString,defaultValue:""},{key:"lineno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"colno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"error",converter:Vp.converters.any}]);T8n.exports={MessageEvent:TIt,CloseEvent:RIt,ErrorEvent:NIt}});var xIt=H((Tsu,D8n)=>{"use strict";var{kReadyState:DIt,kController:Hsa,kResponse:Ysa,kBinaryType:Qsa,kWebSocketURL:Xsa}=jHe(),{states:kIt,opcodes:R8n}=awe(),{MessageEvent:Jsa,ErrorEvent:Usa}=G_r();function Ksa(e){return e[DIt]===kIt.OPEN}function jsa(e){return e[DIt]===kIt.CLOSING}function zsa(e){return e[DIt]===kIt.CLOSED}function F_r(e,t,r=Event,n){let a=new r(e,n);t.dispatchEvent(a)}function qsa(e,t,r){if(e[DIt]!==kIt.OPEN)return;let n;if(t===R8n.TEXT)try{n=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{N8n(e,"Received invalid UTF-8 in text frame.");return}else t===R8n.BINARY&&(e[Qsa]==="blob"?n=new Blob([r]):n=new Uint8Array(r).buffer);F_r("message",e,Jsa,{origin:e[Xsa].origin,data:n})}function $sa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r<33||r>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||r===32||r===9)return!1}return!0}function eoa(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function N8n(e,t){let{[Hsa]:r,[Ysa]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&F_r("error",e,Usa,{error:new Error(t)})}D8n.exports={isEstablished:Ksa,isClosing:jsa,isClosed:zsa,fireEvent:F_r,isValidSubprotocol:$sa,isValidStatusCode:eoa,failWebsocketConnection:N8n,websocketMessageReceived:qsa}});var L8n=H((Rsu,Z8n)=>{"use strict";var L_r=wt("diagnostics_channel"),{uid:toa,states:x8n}=awe(),{kReadyState:G8n,kSentClose:k8n,kByteParser:F8n,kReceivedClose:roa}=jHe(),{fireEvent:noa,failWebsocketConnection:qIe}=xIt(),{CloseEvent:ioa}=G_r(),{makeRequest:soa}=QHe(),{fetching:ooa}=fIt(),{Headers:aoa}=UIe(),{getGlobalDispatcher:coa}=KBe(),{kHeadersList:loa}=GE(),G$={};G$.open=L_r.channel("undici:websocket:open");G$.close=L_r.channel("undici:websocket:close");G$.socketError=L_r.channel("undici:websocket:socket_error");var Z_r;try{Z_r=wt("crypto")}catch{}function uoa(e,t,r,n,a){let o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";let l=soa({urlList:[o],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(a.headers){let C=new aoa(a.headers)[loa];l.headersList=C}let A=Z_r.randomBytes(16).toString("base64");l.headersList.append("sec-websocket-key",A),l.headersList.append("sec-websocket-version","13");for(let C of t)l.headersList.append("sec-websocket-protocol",C);let f="";return ooa({request:l,useParallelQueue:!0,dispatcher:a.dispatcher??coa(),processResponse(C){if(C.type==="error"||C.status!==101){qIe(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!C.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Server did not respond with sent protocols.");return}if(C.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){qIe(r,'Server did not set Upgrade header to "websocket".');return}if(C.headersList.get("Connection")?.toLowerCase()!=="upgrade"){qIe(r,'Server did not set Connection header to "upgrade".');return}let b=C.headersList.get("Sec-WebSocket-Accept"),E=Z_r.createHash("sha1").update(A+toa).digest("base64");if(b!==E){qIe(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let N=C.headersList.get("Sec-WebSocket-Extensions");if(N!==null&&N!==f){qIe(r,"Received different permessage-deflate than the one set.");return}let B=C.headersList.get("Sec-WebSocket-Protocol");if(B!==null&&B!==l.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Protocol was not set in the opening handshake.");return}C.socket.on("data",goa),C.socket.on("close",Aoa),C.socket.on("error",doa),G$.open.hasSubscribers&&G$.open.publish({address:C.socket.address(),protocol:B,extensions:N}),n(C)}})}function goa(e){this.ws[F8n].write(e)||this.pause()}function Aoa(){let{ws:e}=this,t=e[k8n]&&e[roa],r=1005,n="",a=e[F8n].closingInfo;a?(r=a.code??1005,n=a.reason):e[k8n]||(r=1006),e[G8n]=x8n.CLOSED,noa("close",e,ioa,{wasClean:t,code:r,reason:n}),G$.close.hasSubscribers&&G$.close.publish({websocket:e,code:r,reason:n})}function doa(e){let{ws:t}=this;t[G8n]=x8n.CLOSING,G$.socketError.hasSubscribers&&G$.socketError.publish(e),this.destroy()}Z8n.exports={establishWebSocketConnection:uoa}});var P_r=H((Nsu,P8n)=>{"use strict";var{maxUnsigned16Bit:poa}=awe(),V8n;try{V8n=wt("crypto")}catch{}var V_r=class{constructor(t){this.frameData=t,this.maskKey=V8n.randomBytes(4)}createFrame(t){let r=this.frameData?.byteLength??0,n=r,a=6;r>poa?(a+=8,n=127):r>125&&(a+=2,n=126);let o=Buffer.allocUnsafe(r+a);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+t;o[a-4]=this.maskKey[0],o[a-3]=this.maskKey[1],o[a-2]=this.maskKey[2],o[a-1]=this.maskKey[3],o[1]=n,n===126?o.writeUInt16BE(r,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(r,4,6)),o[1]|=128;for(let l=0;l{"use strict";var{Writable:foa}=wt("stream"),Q8n=wt("diagnostics_channel"),{parserStates:BM,opcodes:wM,states:Ioa,emptyBuffer:hoa}=awe(),{kReadyState:moa,kSentClose:W8n,kResponse:O8n,kReceivedClose:M8n}=jHe(),{isValidStatusCode:H8n,failWebsocketConnection:zHe,websocketMessageReceived:Coa}=xIt(),{WebsocketFrameSend:Y8n}=P_r(),cwe={};cwe.ping=Q8n.channel("undici:websocket:ping");cwe.pong=Q8n.channel("undici:websocket:pong");var W_r=class extends foa{#e=[];#t=0;#n=BM.INFO;#r={};#i=[];constructor(t){super(),this.ws=t}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.run(n)}run(t){for(;;){if(this.#n===BM.INFO){if(this.#t<2)return t();let r=this.consume(2);if(this.#r.fin=(r[0]&128)!==0,this.#r.opcode=r[0]&15,this.#r.originalOpcode??=this.#r.opcode,this.#r.fragmented=!this.#r.fin&&this.#r.opcode!==wM.CONTINUATION,this.#r.fragmented&&this.#r.opcode!==wM.BINARY&&this.#r.opcode!==wM.TEXT){zHe(this.ws,"Invalid frame type was fragmented.");return}let n=r[1]&127;if(n<=125?(this.#r.payloadLength=n,this.#n=BM.READ_DATA):n===126?this.#n=BM.PAYLOADLENGTH_16:n===127&&(this.#n=BM.PAYLOADLENGTH_64),this.#r.fragmented&&n>125){zHe(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#r.opcode===wM.PING||this.#r.opcode===wM.PONG||this.#r.opcode===wM.CLOSE)&&n>125){zHe(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#r.opcode===wM.CLOSE){if(n===1){zHe(this.ws,"Received close frame with a 1-byte body.");return}let a=this.consume(n);if(this.#r.closeInfo=this.parseCloseBody(!1,a),!this.ws[W8n]){let o=Buffer.allocUnsafe(2);o.writeUInt16BE(this.#r.closeInfo.code,0);let l=new Y8n(o);this.ws[O8n].socket.write(l.createFrame(wM.CLOSE),A=>{A||(this.ws[W8n]=!0)})}this.ws[moa]=Ioa.CLOSING,this.ws[M8n]=!0,this.end();return}else if(this.#r.opcode===wM.PING){let a=this.consume(n);if(!this.ws[M8n]){let o=new Y8n(a);this.ws[O8n].socket.write(o.createFrame(wM.PONG)),cwe.ping.hasSubscribers&&cwe.ping.publish({payload:a})}if(this.#n=BM.INFO,this.#t>0)continue;t();return}else if(this.#r.opcode===wM.PONG){let a=this.consume(n);if(cwe.pong.hasSubscribers&&cwe.pong.publish({payload:a}),this.#t>0)continue;t();return}}else if(this.#n===BM.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#r.payloadLength=r.readUInt16BE(0),this.#n=BM.READ_DATA}else if(this.#n===BM.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){zHe(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#r.payloadLength=(n<<8)+a,this.#n=BM.READ_DATA}else if(this.#n===BM.READ_DATA){if(this.#t=this.#r.payloadLength){let r=this.consume(this.#r.payloadLength);if(this.#i.push(r),!this.#r.fragmented||this.#r.fin&&this.#r.opcode===wM.CONTINUATION){let n=Buffer.concat(this.#i);Coa(this.ws,this.#r.originalOpcode,n),this.#r={},this.#i.length=0}this.#n=BM.INFO}}if(!(this.#t>0)){t();break}}}consume(t){if(t>this.#t)return null;if(t===0)return hoa;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t,r){let n;if(r.length>=2&&(n=r.readUInt16BE(0)),t)return H8n(n)?{code:n}:null;let a=r.subarray(2);if(a[0]===239&&a[1]===187&&a[2]===191&&(a=a.subarray(3)),n!==void 0&&!H8n(n))return null;try{a=new TextDecoder("utf-8",{fatal:!0}).decode(a)}catch{return null}return{code:n,reason:a}}get closingInfo(){return this.#r.closeInfo}};X8n.exports={ByteParser:W_r}});var tjn=H((ksu,ejn)=>{"use strict";var{webidl:fI}=xZ(),{DOMException:tae}=Xoe(),{URLSerializer:_oa}=wX(),{getGlobalOrigin:yoa}=wBe(),{staticPropertyDescriptors:rae,states:lwe,opcodes:qHe,emptyBuffer:boa}=awe(),{kWebSocketURL:U8n,kReadyState:F$,kController:Eoa,kBinaryType:GIt,kResponse:FIt,kSentClose:Soa,kByteParser:voa}=jHe(),{isEstablished:K8n,isClosing:j8n,isValidSubprotocol:Boa,failWebsocketConnection:woa,fireEvent:Toa}=xIt(),{establishWebSocketConnection:Roa}=L8n(),{WebsocketFrameSend:$He}=P_r(),{ByteParser:Noa}=J8n(),{kEnumerableProperty:TM,isBlobLike:q8n}=zC(),{getGlobalDispatcher:Doa}=KBe(),{types:$8n}=wt("util"),z8n=!1,zW=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";constructor(t,r=[]){super(),fI.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),z8n||(z8n=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let n=fI.converters["DOMString or sequence or WebSocketInit"](r);t=fI.converters.USVString(t),r=n.protocols;let a=yoa(),o;try{o=new URL(t,a)}catch(l){throw new tae(l,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new tae(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new tae("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(l=>l.toLowerCase())).size)throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(l=>Boa(l)))throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[U8n]=new URL(o.href),this[Eoa]=Roa(o,r,this,l=>this.#i(l),n),this[F$]=e.CONNECTING,this[GIt]="blob"}close(t=void 0,r=void 0){if(fI.brandCheck(this,e),t!==void 0&&(t=fI.converters["unsigned short"](t,{clamp:!0})),r!==void 0&&(r=fI.converters.USVString(r)),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new tae("invalid code","InvalidAccessError");let n=0;if(r!==void 0&&(n=Buffer.byteLength(r),n>123))throw new tae(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");if(!(this[F$]===e.CLOSING||this[F$]===e.CLOSED))if(!K8n(this))woa(this,"Connection was closed before it was established."),this[F$]=e.CLOSING;else if(j8n(this))this[F$]=e.CLOSING;else{let a=new $He;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=boa,this[FIt].socket.write(a.createFrame(qHe.CLOSE),l=>{l||(this[Soa]=!0)}),this[F$]=lwe.CLOSING}}send(t){if(fI.brandCheck(this,e),fI.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),t=fI.converters.WebSocketSendData(t),this[F$]===e.CONNECTING)throw new tae("Sent before connected.","InvalidStateError");if(!K8n(this)||j8n(this))return;let r=this[FIt].socket;if(typeof t=="string"){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.TEXT);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if($8n.isArrayBuffer(t)){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(ArrayBuffer.isView(t)){let n=Buffer.from(t,t.byteOffset,t.byteLength),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(q8n(t)){let n=new $He;t.arrayBuffer().then(a=>{let o=Buffer.from(a);n.frameData=o;let l=n.createFrame(qHe.BINARY);this.#t+=o.byteLength,r.write(l,()=>{this.#t-=o.byteLength})})}}get readyState(){return fI.brandCheck(this,e),this[F$]}get bufferedAmount(){return fI.brandCheck(this,e),this.#t}get url(){return fI.brandCheck(this,e),_oa(this[U8n])}get extensions(){return fI.brandCheck(this,e),this.#r}get protocol(){return fI.brandCheck(this,e),this.#n}get onopen(){return fI.brandCheck(this,e),this.#e.open}set onopen(t){fI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return fI.brandCheck(this,e),this.#e.error}set onerror(t){fI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return fI.brandCheck(this,e),this.#e.close}set onclose(t){fI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return fI.brandCheck(this,e),this.#e.message}set onmessage(t){fI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return fI.brandCheck(this,e),this[GIt]}set binaryType(t){fI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[GIt]="blob":this[GIt]=t}#i(t){this[FIt]=t;let r=new Noa(this);r.on("drain",function(){this.ws[FIt].socket.resume()}),t.socket.ws=this,this[voa]=r,this[F$]=lwe.OPEN;let n=t.headersList.get("sec-websocket-extensions");n!==null&&(this.#r=n);let a=t.headersList.get("sec-websocket-protocol");a!==null&&(this.#n=a),Toa("open",this)}};zW.CONNECTING=zW.prototype.CONNECTING=lwe.CONNECTING;zW.OPEN=zW.prototype.OPEN=lwe.OPEN;zW.CLOSING=zW.prototype.CLOSING=lwe.CLOSING;zW.CLOSED=zW.prototype.CLOSED=lwe.CLOSED;Object.defineProperties(zW.prototype,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae,url:TM,readyState:TM,bufferedAmount:TM,onopen:TM,onerror:TM,onclose:TM,close:TM,onmessage:TM,binaryType:TM,send:TM,extensions:TM,protocol:TM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(zW,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae});fI.converters["sequence"]=fI.sequenceConverter(fI.converters.DOMString);fI.converters["DOMString or sequence"]=function(e){return fI.util.Type(e)==="Object"&&Symbol.iterator in e?fI.converters["sequence"](e):fI.converters.DOMString(e)};fI.converters.WebSocketInit=fI.dictionaryConverter([{key:"protocols",converter:fI.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return Doa()}},{key:"headers",converter:fI.nullableConverter(fI.converters.HeadersInit)}]);fI.converters["DOMString or sequence or WebSocketInit"]=function(e){return fI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?fI.converters.WebSocketInit(e):{protocols:fI.converters["DOMString or sequence"](e)}};fI.converters.WebSocketSendData=function(e){if(fI.util.Type(e)==="Object"){if(q8n(e))return fI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||$8n.isAnyArrayBuffer(e))return fI.converters.BufferSource(e)}return fI.converters.USVString(e)};ejn.exports={WebSocket:zW}});var sjn=H((xsu,Eh)=>{"use strict";var koa=kHe(),rjn=Ift(),njn=Ub(),xoa=WBe(),Goa=IJn(),Foa=ZHe(),$Ie=zC(),{InvalidArgumentError:ZIt}=njn,uwe=aUn(),Zoa=SHe(),Loa=jCr(),Voa=HUn(),Poa=$Cr(),Woa=VCr(),Ooa=KUn(),Moa=eKn(),{getGlobalDispatcher:ijn,setGlobalDispatcher:Hoa}=KBe(),Yoa=oKn(),Qoa=Kmr(),Xoa=_ft(),O_r;try{wt("crypto"),O_r=!0}catch{O_r=!1}Object.assign(rjn.prototype,uwe);Eh.exports.Dispatcher=rjn;Eh.exports.Client=koa;Eh.exports.Pool=xoa;Eh.exports.BalancedPool=Goa;Eh.exports.Agent=Foa;Eh.exports.ProxyAgent=Ooa;Eh.exports.RetryHandler=Moa;Eh.exports.DecoratorHandler=Yoa;Eh.exports.RedirectHandler=Qoa;Eh.exports.createRedirectInterceptor=Xoa;Eh.exports.buildConnector=Zoa;Eh.exports.errors=njn;function eYe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new ZIt("invalid url");if(r!=null&&typeof r!="object")throw new ZIt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new ZIt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL($Ie.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=$Ie.parseURL(t);let{agent:a,dispatcher:o=ijn()}=r;if(a)throw new ZIt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Eh.exports.setGlobalDispatcher=Hoa;Eh.exports.getGlobalDispatcher=ijn;if($Ie.nodeMajor>16||$Ie.nodeMajor===16&&$Ie.nodeMinor>=8){let e=null;Eh.exports.fetch=async function(l){e||(e=fIt().fetch);try{return await e(...arguments)}catch(A){throw typeof A=="object"&&Error.captureStackTrace(A,this),A}},Eh.exports.Headers=UIe().Headers,Eh.exports.Response=nIt().Response,Eh.exports.Request=QHe().Request,Eh.exports.FormData=dft().FormData,Eh.exports.File=gft().File,Eh.exports.FileReader=r8n().FileReader;let{setGlobalOrigin:t,getGlobalOrigin:r}=wBe();Eh.exports.setGlobalOrigin=t,Eh.exports.getGlobalOrigin=r;let{CacheStorage:n}=p8n(),{kConstruct:a}=CIt();Eh.exports.caches=new n(a)}if($Ie.nodeMajor>=16){let{deleteCookie:e,getCookies:t,getSetCookies:r,setCookie:n}=v8n();Eh.exports.deleteCookie=e,Eh.exports.getCookies=t,Eh.exports.getSetCookies=r,Eh.exports.setCookie=n;let{parseMIMEType:a,serializeAMimeType:o}=wX();Eh.exports.parseMIMEType=a,Eh.exports.serializeAMimeType=o}if($Ie.nodeMajor>=18&&O_r){let{WebSocket:e}=tjn();Eh.exports.WebSocket=e}Eh.exports.request=eYe(uwe.request);Eh.exports.stream=eYe(uwe.stream);Eh.exports.pipeline=eYe(uwe.pipeline);Eh.exports.connect=eYe(uwe.connect);Eh.exports.upgrade=eYe(uwe.upgrade);Eh.exports.MockClient=Loa;Eh.exports.MockPool=Poa;Eh.exports.MockAgent=Voa;Eh.exports.mockErrors=Woa});var ajn=H(ZE=>{"use strict";var Joa=ZE&&ZE.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uoa=ZE&&ZE.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIt=ZE&&ZE.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Joa(t,e,r);return Uoa(t,e),t},ew=ZE&&ZE.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(ZE,"__esModule",{value:!0});ZE.HttpClient=ZE.isHttps=ZE.HttpClientResponse=ZE.HttpClientError=ZE.getProxyUrl=ZE.MediaTypes=ZE.Headers=ZE.HttpCodes=void 0;var M_r=OIt(wt("http")),ojn=OIt(wt("https")),H_r=OIt(IQn()),LIt=OIt(bQn()),Koa=sjn(),RM;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(RM||(ZE.HttpCodes=RM={}));var bG;(function(e){e.Accept="accept",e.ContentType="content-type"})(bG||(ZE.Headers=bG={}));var Z$;(function(e){e.ApplicationJson="application/json"})(Z$||(ZE.MediaTypes=Z$={}));function joa(e){let t=H_r.getProxyUrl(new URL(e));return t?t.href:""}ZE.getProxyUrl=joa;var zoa=[RM.MovedPermanently,RM.ResourceMoved,RM.SeeOther,RM.TemporaryRedirect,RM.PermanentRedirect],qoa=[RM.BadGateway,RM.ServiceUnavailable,RM.GatewayTimeout],$oa=["OPTIONS","GET","DELETE","HEAD"],eaa=10,taa=5,PIt=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}};ZE.HttpClientError=PIt;var WIt=class{constructor(t){this.message=t}readBody(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=Buffer.alloc(0);this.message.on("data",n=>{r=Buffer.concat([r,n])}),this.message.on("end",()=>{t(r.toString())})}))})}readBodyBuffer(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=[];this.message.on("data",n=>{r.push(n)}),this.message.on("end",()=>{t(Buffer.concat(r))})}))})}};ZE.HttpClientResponse=WIt;function raa(e){return new URL(e).protocol==="https:"}ZE.isHttps=raa;var Y_r=class{constructor(t,r,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=t,this.handlers=r||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(t,r){return ew(this,void 0,void 0,function*(){return this.request("OPTIONS",t,null,r||{})})}get(t,r){return ew(this,void 0,void 0,function*(){return this.request("GET",t,null,r||{})})}del(t,r){return ew(this,void 0,void 0,function*(){return this.request("DELETE",t,null,r||{})})}post(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("POST",t,r,n||{})})}patch(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PATCH",t,r,n||{})})}put(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PUT",t,r,n||{})})}head(t,r){return ew(this,void 0,void 0,function*(){return this.request("HEAD",t,null,r||{})})}sendStream(t,r,n,a){return ew(this,void 0,void 0,function*(){return this.request(t,r,n,a)})}getJson(t,r={}){return ew(this,void 0,void 0,function*(){r[bG.Accept]=this._getExistingOrDefaultHeader(r,bG.Accept,Z$.ApplicationJson);let n=yield this.get(t,r);return this._processResponse(n,this.requestOptions)})}postJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.post(t,a,n);return this._processResponse(o,this.requestOptions)})}putJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.put(t,a,n);return this._processResponse(o,this.requestOptions)})}patchJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.patch(t,a,n);return this._processResponse(o,this.requestOptions)})}request(t,r,n,a){return ew(this,void 0,void 0,function*(){if(this._disposed)throw new Error("Client has already been disposed.");let o=new URL(r),l=this._prepareRequest(t,o,a),A=this._allowRetries&&$oa.includes(t)?this._maxRetries+1:1,f=0,I;do{if(I=yield this.requestRaw(l,n),I&&I.message&&I.message.statusCode===RM.Unauthorized){let b;for(let E of this.handlers)if(E.canHandleAuthentication(I)){b=E;break}return b?b.handleAuthentication(this,l,n):I}let C=this._maxRedirects;for(;I.message.statusCode&&zoa.includes(I.message.statusCode)&&this._allowRedirects&&C>0;){let b=I.message.headers.location;if(!b)break;let E=new URL(b);if(o.protocol==="https:"&&o.protocol!==E.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield I.readBody(),E.hostname!==o.hostname)for(let N in a)N.toLowerCase()==="authorization"&&delete a[N];l=this._prepareRequest(t,E,a),I=yield this.requestRaw(l,n),C--}if(!I.message.statusCode||!qoa.includes(I.message.statusCode))return I;f+=1,f{function o(l,A){l?a(l):A?n(A):a(new Error("Unknown error"))}this.requestRawWithCallback(t,r,o)})})}requestRawWithCallback(t,r,n){typeof r=="string"&&(t.options.headers||(t.options.headers={}),t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let a=!1;function o(f,I){a||(a=!0,n(f,I))}let l=t.httpModule.request(t.options,f=>{let I=new WIt(f);o(void 0,I)}),A;l.on("socket",f=>{A=f}),l.setTimeout(this._socketTimeout||3*6e4,()=>{A&&A.end(),o(new Error(`Request timeout: ${t.options.path}`))}),l.on("error",function(f){o(f)}),r&&typeof r=="string"&&l.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){l.end()}),r.pipe(l)):l.end()}getAgent(t){let r=new URL(t);return this._getAgent(r)}getAgentDispatcher(t){let r=new URL(t),n=H_r.getProxyUrl(r);if(n&&n.hostname)return this._getProxyAgentDispatcher(r,n)}_prepareRequest(t,r,n){let a={};a.parsedUrl=r;let o=a.parsedUrl.protocol==="https:";a.httpModule=o?ojn:M_r;let l=o?443:80;if(a.options={},a.options.host=a.parsedUrl.hostname,a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):l,a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||""),a.options.method=t,a.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(a.options.headers["user-agent"]=this.userAgent),a.options.agent=this._getAgent(a.parsedUrl),this.handlers)for(let A of this.handlers)A.prepareRequest(a.options);return a}_mergeHeaders(t){return this.requestOptions&&this.requestOptions.headers?Object.assign({},VIt(this.requestOptions.headers),VIt(t||{})):VIt(t||{})}_getExistingOrDefaultHeader(t,r,n){let a;return this.requestOptions&&this.requestOptions.headers&&(a=VIt(this.requestOptions.headers)[r]),t[r]||a||n}_getAgent(t){let r,n=H_r.getProxyUrl(t),a=n&&n.hostname;if(this._keepAlive&&a&&(r=this._proxyAgent),a||(r=this._agent),r)return r;let o=t.protocol==="https:",l=100;if(this.requestOptions&&(l=this.requestOptions.maxSockets||M_r.globalAgent.maxSockets),n&&n.hostname){let A={maxSockets:l,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},f,I=n.protocol==="https:";o?f=I?LIt.httpsOverHttps:LIt.httpsOverHttp:f=I?LIt.httpOverHttps:LIt.httpOverHttp,r=f(A),this._proxyAgent=r}if(!r){let A={keepAlive:this._keepAlive,maxSockets:l};r=o?new ojn.Agent(A):new M_r.Agent(A),this._agent=r}return o&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_getProxyAgentDispatcher(t,r){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let a=t.protocol==="https:";return n=new Koa.ProxyAgent(Object.assign({uri:r.href,pipelining:this._keepAlive?1:0},(r.username||r.password)&&{token:`Basic ${Buffer.from(`${r.username}:${r.password}`).toString("base64")}`})),this._proxyAgentDispatcher=n,a&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_performExponentialBackoff(t){return ew(this,void 0,void 0,function*(){t=Math.min(eaa,t);let r=taa*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))})}_processResponse(t,r){return ew(this,void 0,void 0,function*(){return new Promise((n,a)=>ew(this,void 0,void 0,function*(){let o=t.message.statusCode||0,l={statusCode:o,result:null,headers:{}};o===RM.NotFound&&n(l);function A(C,b){if(typeof b=="string"){let E=new Date(b);if(!isNaN(E.valueOf()))return E}return b}let f,I;try{I=yield t.readBody(),I&&I.length>0&&(r&&r.deserializeDates?f=JSON.parse(I,A):f=JSON.parse(I),l.result=f),l.headers=t.message.headers}catch{}if(o>299){let C;f&&f.message?C=f.message:I&&I.length>0?C=I:C=`Failed request: (${o})`;let b=new PIt(C,o);b.result=l.result,a(b)}else n(l)}))})}};ZE.HttpClient=Y_r;var VIt=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{})});var B2=H((Fsu,cjn)=>{cjn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Y0=H((Zsu,ljn)=>{"use strict";var RS=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Q_r=class extends RS{constructor(t){super(t),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},X_r=class extends RS{constructor(t){super(t),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},J_r=class extends RS{constructor(t){super(t),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},U_r=class extends RS{constructor(t){super(t),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},K_r=class extends RS{constructor(t,r,n,a){super(t),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},j_r=class extends RS{constructor(t){super(t),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},z_r=class extends RS{constructor(t){super(t),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},MIt=class extends RS{constructor(t){super(t),this.name="AbortError",this.message=t||"The operation was aborted"}},q_r=class extends MIt{constructor(t){super(t),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$_r=class extends RS{constructor(t){super(t),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},e0r=class extends RS{constructor(t){super(t),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},t0r=class extends RS{constructor(t){super(t),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},r0r=class extends RS{constructor(t){super(t),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},n0r=class extends RS{constructor(t){super(t),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},i0r=class extends RS{constructor(t,r){super(t),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},s0r=class extends RS{constructor(t){super(t),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},o0r=class extends RS{constructor(t){super(t),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},a0r=class extends Error{constructor(t,r,n){super(t),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},c0r=class extends RS{constructor(t){super(t),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},l0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}},u0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="ResponseError",this.message=t||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=r,this.data=a,this.headers=n}},g0r=class extends RS{constructor(t,r,n){super(r,{cause:t,...n??{}}),this.name="SecureProxyConnectionError",this.message=r||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=t}};ljn.exports={AbortError:MIt,HTTPParserError:a0r,UndiciError:RS,HeadersTimeoutError:X_r,HeadersOverflowError:J_r,BodyTimeoutError:U_r,RequestContentLengthMismatchError:e0r,ConnectTimeoutError:Q_r,ResponseStatusCodeError:K_r,InvalidArgumentError:j_r,InvalidReturnValueError:z_r,RequestAbortedError:q_r,ClientDestroyedError:r0r,ClientClosedError:n0r,InformationalError:$_r,SocketError:i0r,NotSupportedError:s0r,ResponseContentLengthMismatchError:t0r,BalancedPoolMissingUpstreamError:o0r,ResponseExceededMaxSizeError:c0r,RequestRetryError:l0r,ResponseError:u0r,SecureProxyConnectionError:g0r}});var YIt=H((Lsu,ujn)=>{"use strict";var HIt={},A0r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var{wellknownHeaderNames:gjn,headerNameLowerCasedRecord:naa}=YIt(),d0r=class e{value=null;left=null;middle=null;right=null;code;constructor(t,r,n){if(n===void 0||n>=t.length)throw new TypeError("Unreachable");if((this.code=t.charCodeAt(n))>127)throw new TypeError("key must be ascii string");t.length!==++n?this.middle=new e(t,r,n):this.value=r}add(t,r){let n=t.length;if(n===0)throw new TypeError("Unreachable");let a=0,o=this;for(;;){let l=t.charCodeAt(a);if(l>127)throw new TypeError("key must be ascii string");if(o.code===l)if(n===++a){o.value=r;break}else if(o.middle!==null)o=o.middle;else{o.middle=new e(t,r,a);break}else if(o.code=65&&(o|=32);a!==null;){if(o===a.code){if(r===++n)return a;a=a.middle;break}a=a.code{"use strict";var tYe=wt("node:assert"),{kDestroyed:Ijn,kBodyUsed:gwe,kListeners:p0r,kBody:fjn}=B2(),{IncomingMessage:iaa}=wt("node:http"),UIt=wt("node:stream"),saa=wt("node:net"),{Blob:oaa}=wt("node:buffer"),aaa=wt("node:util"),{stringify:caa}=wt("node:querystring"),{EventEmitter:laa}=wt("node:events"),{InvalidArgumentError:eD}=Y0(),{headerNameLowerCasedRecord:uaa}=YIt(),{tree:hjn}=pjn(),[gaa,Aaa]=process.versions.node.split(".").map(e=>Number(e)),JIt=class{constructor(t){this[fjn]=t,this[gwe]=!1}async*[Symbol.asyncIterator](){tYe(!this[gwe],"disturbed"),this[gwe]=!0,yield*this[fjn]}};function daa(e){return KIt(e)?(bjn(e)===0&&e.on("data",function(){tYe(!1)}),typeof e.readableDidRead!="boolean"&&(e[gwe]=!1,laa.prototype.on.call(e,"data",function(){this[gwe]=!0})),e):e&&typeof e.pipeTo=="function"?new JIt(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&yjn(e)?new JIt(e):e}function paa(){}function KIt(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function mjn(e){if(e===null)return!1;if(e instanceof oaa)return!0;if(typeof e!="object")return!1;{let t=e[Symbol.toStringTag];return(t==="Blob"||t==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function faa(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=caa(t);return r&&(e+="?"+r),e}function Cjn(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function XIt(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function _jn(e){if(typeof e=="string"){if(e=new URL(e),!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new eD("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Cjn(e.port)===!1)throw new eD("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new eD("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new eD("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new eD("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new eD("Invalid URL origin: the origin must be a string or null/undefined.");if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return r[r.length-1]==="/"&&(r=r.slice(0,r.length-1)),n&&n[0]!=="/"&&(n=`/${n}`),new URL(`${r}${n}`)}if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Iaa(e){if(e=_jn(e),e.pathname!=="/"||e.search||e.hash)throw new eD("invalid url");return e}function haa(e){if(e[0]==="["){let r=e.indexOf("]");return tYe(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function maa(e){if(!e)return null;tYe(typeof e=="string");let t=haa(e);return saa.isIP(t)?"":t}function Caa(e){return JSON.parse(JSON.stringify(e))}function _aa(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function yjn(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function bjn(e){if(e==null)return 0;if(KIt(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(mjn(e))return e.size!=null?e.size:null;if(vjn(e))return e.byteLength}return null}function Ejn(e){return e&&!!(e.destroyed||e[Ijn]||UIt.isDestroyed?.(e))}function yaa(e,t){e==null||!KIt(e)||Ejn(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===iaa&&(e.socket=null),e.destroy(t)):t&&queueMicrotask(()=>{e.emit("error",t)}),e.destroyed!==!0&&(e[Ijn]=!0))}var baa=/timeout=(\d+)/;function Eaa(e){let t=e.toString().match(baa);return t?parseInt(t[1],10)*1e3:null}function Sjn(e){return typeof e=="string"?uaa[e]??e.toLowerCase():hjn.lookup(e)??e.toString("latin1").toLowerCase()}function Saa(e){return hjn.lookup(e)??e.toString("latin1").toLowerCase()}function vaa(e,t){t===void 0&&(t={});for(let r=0;rl.toString("utf8")):o.toString("utf8")}}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function Baa(e){let t=e.length,r=new Array(t),n=!1,a=-1,o,l,A=0;for(let f=0;f{r.close(),r.byobRequest?.respond(0)});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);o.byteLength&&r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()},type:"bytes"})}function xaa(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Gaa(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var Faa=typeof String.prototype.toWellFormed=="function",Zaa=typeof String.prototype.isWellFormed=="function";function Bjn(e){return Faa?`${e}`.toWellFormed():aaa.toUSVString(e)}function Laa(e){return Zaa?`${e}`.isWellFormed():Bjn(e)===`${e}`}function wjn(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Vaa(e){if(e.length===0)return!1;for(let t=0;t{"use strict";var Q0=wt("node:diagnostics_channel"),h0r=wt("node:util"),jIt=h0r.debuglog("undici"),I0r=h0r.debuglog("fetch"),ehe=h0r.debuglog("websocket"),Djn=!1,Qaa={beforeConnect:Q0.channel("undici:client:beforeConnect"),connected:Q0.channel("undici:client:connected"),connectError:Q0.channel("undici:client:connectError"),sendHeaders:Q0.channel("undici:client:sendHeaders"),create:Q0.channel("undici:request:create"),bodySent:Q0.channel("undici:request:bodySent"),headers:Q0.channel("undici:request:headers"),trailers:Q0.channel("undici:request:trailers"),error:Q0.channel("undici:request:error"),open:Q0.channel("undici:websocket:open"),close:Q0.channel("undici:websocket:close"),socketError:Q0.channel("undici:websocket:socket_error"),ping:Q0.channel("undici:websocket:ping"),pong:Q0.channel("undici:websocket:pong")};if(jIt.enabled||I0r.enabled){let e=I0r.enabled?I0r:jIt;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s using %s%s errored - %s",`${o}${a?`:${a}`:""}`,n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)}),Q0.channel("undici:request:headers").subscribe(t=>{let{request:{method:r,path:n,origin:a},response:{statusCode:o}}=t;e("received response to %s %s/%s - HTTP %d",r,a,n,o)}),Q0.channel("undici:request:trailers").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("trailers received from %s %s/%s",r,a,n)}),Q0.channel("undici:request:error").subscribe(t=>{let{request:{method:r,path:n,origin:a},error:o}=t;e("request to %s %s/%s errored - %s",r,a,n,o.message)}),Djn=!0}if(ehe.enabled){if(!Djn){let e=jIt.enabled?jIt:ehe;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s%s using %s%s errored - %s",o,a?`:${a}`:"",n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)})}Q0.channel("undici:websocket:open").subscribe(e=>{let{address:{address:t,port:r}}=e;ehe("connection opened %s%s",t,r?`:${r}`:"")}),Q0.channel("undici:websocket:close").subscribe(e=>{let{websocket:t,code:r,reason:n}=e;ehe("closed connection to %s - %s %s",t.url,r,n)}),Q0.channel("undici:websocket:socket_error").subscribe(e=>{ehe("connection errored - %s",e.message)}),Q0.channel("undici:websocket:ping").subscribe(e=>{ehe("ping received")}),Q0.channel("undici:websocket:pong").subscribe(e=>{ehe("pong received")})}kjn.exports={channels:Qaa}});var Ljn=H((Osu,Zjn)=>{"use strict";var{InvalidArgumentError:NS,NotSupportedError:Xaa}=Y0(),L$=wt("node:assert"),{isValidHTTPToken:Fjn,isValidHeaderValue:xjn,isStream:Jaa,destroy:Uaa,isBuffer:Kaa,isFormDataLike:jaa,isIterable:zaa,isBlobLike:qaa,buildURL:$aa,validateHandler:eca,getServerName:tca,normalizedMethodRecords:rca}=Em(),{channels:B8}=Awe(),{headerNameLowerCasedRecord:Gjn}=YIt(),nca=/[^\u0021-\u00ff]/,NM=Symbol("handler"),m0r=class{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B,servername:F},Q){if(typeof r!="string")throw new NS("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new NS("path must be an absolute URL or start with a slash");if(nca.test(r))throw new NS("invalid request path");if(typeof n!="string")throw new NS("method must be a string");if(rca[n]===void 0&&!Fjn(n))throw new NS("invalid request method");if(I&&typeof I!="string")throw new NS("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new NS("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new NS("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new NS("invalid reset");if(B!=null&&typeof B!="boolean")throw new NS("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(Jaa(a)){this.body=a;let X=this.body._readableState;(!X||!X.autoDestroy)&&(this.endHandler=function(){Uaa(this)},this.body.on("end",this.endHandler)),this.errorHandler=ae=>{this.abort?this.abort(ae):this.error=ae},this.body.on("error",this.errorHandler)}else if(Kaa(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(jaa(a)||zaa(a)||qaa(a))this.body=a;else throw new NS("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?$aa(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new NS("headers array must be even");for(let X=0;X{"use strict";var ica=wt("node:events"),qIt=class extends ica{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...t){let r=Array.isArray(t[0])?t[0]:t,n=this.dispatch.bind(this);for(let a of r)if(a!=null){if(typeof a!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof a}`);if(n=a(n),n==null||typeof n!="function"||n.length!==2)throw new TypeError("invalid interceptor")}return new C0r(this,n)}},C0r=class extends qIt{#e=null;#t=null;constructor(t,r){super(),this.#e=t,this.#t=r}dispatch(...t){this.#t(...t)}close(...t){return this.#e.close(...t)}destroy(...t){return this.#e.destroy(...t)}};Vjn.exports=qIt});var Iwe=H((Hsu,Pjn)=>{"use strict";var sca=rYe(),{ClientDestroyedError:_0r,ClientClosedError:oca,InvalidArgumentError:dwe}=Y0(),{kDestroy:aca,kClose:cca,kClosed:nYe,kDestroyed:pwe,kDispatch:y0r,kInterceptors:the}=B2(),V$=Symbol("onDestroyed"),fwe=Symbol("onClosed"),$It=Symbol("Intercepted Dispatch"),b0r=class extends sca{constructor(){super(),this[pwe]=!1,this[V$]=null,this[nYe]=!1,this[fwe]=[]}get destroyed(){return this[pwe]}get closed(){return this[nYe]}get interceptors(){return this[the]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[the][r]!="function")throw new dwe("interceptor must be an function")}this[the]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new dwe("invalid callback");if(this[pwe]){queueMicrotask(()=>t(new _0r,null));return}if(this[nYe]){this[fwe]?this[fwe].push(t):queueMicrotask(()=>t(null,null));return}this[nYe]=!0,this[fwe].push(t);let r=()=>{let n=this[fwe];this[fwe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new dwe("invalid callback");if(this[pwe]){this[V$]?this[V$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new _0r),this[pwe]=!0,this[V$]=this[V$]||[],this[V$].push(r);let n=()=>{let a=this[V$];this[V$]=null;for(let o=0;o{queueMicrotask(n)})}[$It](t,r){if(!this[the]||this[the].length===0)return this[$It]=this[y0r],this[y0r](t,r);let n=this[y0r].bind(this);for(let a=this[the].length-1;a>=0;a--)n=this[the][a](n);return this[$It]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new dwe("handler must be an object");try{if(!t||typeof t!="object")throw new dwe("opts must be an object.");if(this[pwe]||this[V$])throw new _0r;if(this[nYe])throw new oca;return this[$It](t,r)}catch(n){if(typeof r.onError!="function")throw new dwe("invalid onError method");return r.onError(n),!1}}};Pjn.exports=b0r});var R0r=H((Ysu,Hjn)=>{"use strict";var hwe=0,E0r=1e3,S0r=(E0r>>1)-1,P$,v0r=Symbol("kFastTimer"),W$=[],B0r=-2,w0r=-1,Ojn=0,Wjn=1;function T0r(){hwe+=S0r;let e=0,t=W$.length;for(;e=r._idleStart+r._idleTimeout&&(r._state=w0r,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===w0r?(r._state=B0r,--t!==0&&(W$[e]=W$[t])):++e}W$.length=t,W$.length!==0&&Mjn()}function Mjn(){P$?P$.refresh():(clearTimeout(P$),P$=setTimeout(T0r,S0r),P$.unref&&P$.unref())}var eht=class{[v0r]=!0;_state=B0r;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(t,r,n){this._onTimeout=t,this._idleTimeout=r,this._timerArg=n,this.refresh()}refresh(){this._state===B0r&&W$.push(this),(!P$||W$.length===1)&&Mjn(),this._state=Ojn}clear(){this._state=w0r,this._idleStart=-1}};Hjn.exports={setTimeout(e,t,r){return t<=E0r?setTimeout(e,t,r):new eht(e,t,r)},clearTimeout(e){e[v0r]?e.clear():clearTimeout(e)},setFastTimeout(e,t,r){return new eht(e,t,r)},clearFastTimeout(e){e.clear()},now(){return hwe},tick(e=0){hwe+=e-E0r+1,T0r(),T0r()},reset(){hwe=0,W$.length=0,clearTimeout(P$),P$=null},kFastTimer:v0r}});var iYe=H((Jsu,Ujn)=>{"use strict";var lca=wt("node:net"),Yjn=wt("node:assert"),Jjn=Em(),{InvalidArgumentError:uca,ConnectTimeoutError:gca}=Y0(),tht=R0r();function Qjn(){}var N0r,D0r;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?D0r=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function Aca({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,session:a,...o}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new uca("maxCachedSessions must be a positive integer or zero");let l={path:r,...o},A=new D0r(t??100);return n=n??1e4,e=e??!1,function({hostname:I,host:C,protocol:b,port:E,servername:N,localAddress:B,httpSocket:F},Q){let X;if(b==="https:"){N0r||(N0r=wt("node:tls")),N=N||l.servername||Jjn.getServerName(C)||null;let ne=N||I;Yjn(ne);let ce=a||A.get(ne)||null;E=E||443,X=N0r.connect({highWaterMark:16384,...l,servername:N,session:ce,localAddress:B,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:F,port:E,host:I}),X.on("session",function(fe){A.set(ne,fe)})}else Yjn(!F,"httpSocket can only be sent on TLS update"),E=E||80,X=lca.connect({highWaterMark:64*1024,...l,localAddress:B,port:E,host:I});if(l.keepAlive==null||l.keepAlive){let ne=l.keepAliveInitialDelay===void 0?6e4:l.keepAliveInitialDelay;X.setKeepAlive(!0,ne)}let ae=dca(new WeakRef(X),{timeout:n,hostname:I,port:E});return X.setNoDelay(!0).once(b==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(ae),Q){let ne=Q;Q=null,ne(null,this)}}).on("error",function(ne){if(queueMicrotask(ae),Q){let ce=Q;Q=null,ce(ne)}}),X}}var dca=process.platform==="win32"?(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=null,a=tht.setFastTimeout(()=>{r=setImmediate(()=>{n=setImmediate(()=>Xjn(e.deref(),t))})},t.timeout);return()=>{tht.clearFastTimeout(a),clearImmediate(r),clearImmediate(n)}}:(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=tht.setFastTimeout(()=>{r=setImmediate(()=>{Xjn(e.deref(),t)})},t.timeout);return()=>{tht.clearFastTimeout(n),clearImmediate(r)}};function Xjn(e,t){let r="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:r+=` (attempted address: ${t.hostname}:${t.port},`,r+=` timeout: ${t.timeout}ms)`,Jjn.destroy(e,new gca(r))}Ujn.exports=Aca});var Kjn=H(rht=>{"use strict";Object.defineProperty(rht,"__esModule",{value:!0});rht.enumToMap=void 0;function pca(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}rht.enumToMap=pca});var jjn=H(Gu=>{"use strict";Object.defineProperty(Gu,"__esModule",{value:!0});Gu.SPECIAL_HEADERS=Gu.HEADER_STATE=Gu.MINOR=Gu.MAJOR=Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS=Gu.TOKEN=Gu.STRICT_TOKEN=Gu.HEX=Gu.URL_CHAR=Gu.STRICT_URL_CHAR=Gu.USERINFO_CHARS=Gu.MARK=Gu.ALPHANUM=Gu.NUM=Gu.HEX_MAP=Gu.NUM_MAP=Gu.ALPHA=Gu.FINISH=Gu.H_METHOD_MAP=Gu.METHOD_MAP=Gu.METHODS_RTSP=Gu.METHODS_ICE=Gu.METHODS_HTTP=Gu.METHODS=Gu.LENIENT_FLAGS=Gu.FLAGS=Gu.TYPE=Gu.ERROR=void 0;var fca=Kjn(),Ica;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Ica=Gu.ERROR||(Gu.ERROR={}));var hca;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(hca=Gu.TYPE||(Gu.TYPE={}));var mca;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(mca=Gu.FLAGS||(Gu.FLAGS={}));var Cca;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Cca=Gu.LENIENT_FLAGS||(Gu.LENIENT_FLAGS={}));var Pp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Pp=Gu.METHODS||(Gu.METHODS={}));Gu.METHODS_HTTP=[Pp.DELETE,Pp.GET,Pp.HEAD,Pp.POST,Pp.PUT,Pp.CONNECT,Pp.OPTIONS,Pp.TRACE,Pp.COPY,Pp.LOCK,Pp.MKCOL,Pp.MOVE,Pp.PROPFIND,Pp.PROPPATCH,Pp.SEARCH,Pp.UNLOCK,Pp.BIND,Pp.REBIND,Pp.UNBIND,Pp.ACL,Pp.REPORT,Pp.MKACTIVITY,Pp.CHECKOUT,Pp.MERGE,Pp["M-SEARCH"],Pp.NOTIFY,Pp.SUBSCRIBE,Pp.UNSUBSCRIBE,Pp.PATCH,Pp.PURGE,Pp.MKCALENDAR,Pp.LINK,Pp.UNLINK,Pp.PRI,Pp.SOURCE];Gu.METHODS_ICE=[Pp.SOURCE];Gu.METHODS_RTSP=[Pp.OPTIONS,Pp.DESCRIBE,Pp.ANNOUNCE,Pp.SETUP,Pp.PLAY,Pp.PAUSE,Pp.TEARDOWN,Pp.GET_PARAMETER,Pp.SET_PARAMETER,Pp.REDIRECT,Pp.RECORD,Pp.FLUSH,Pp.GET,Pp.POST];Gu.METHOD_MAP=fca.enumToMap(Pp);Gu.H_METHOD_MAP={};Object.keys(Gu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(Gu.H_METHOD_MAP[e]=Gu.METHOD_MAP[e])});var _ca;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_ca=Gu.FINISH||(Gu.FINISH={}));Gu.ALPHA=[];for(let e=65;e<=90;e++)Gu.ALPHA.push(String.fromCharCode(e)),Gu.ALPHA.push(String.fromCharCode(e+32));Gu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};Gu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};Gu.NUM=["0","1","2","3","4","5","6","7","8","9"];Gu.ALPHANUM=Gu.ALPHA.concat(Gu.NUM);Gu.MARK=["-","_",".","!","~","*","'","(",")"];Gu.USERINFO_CHARS=Gu.ALPHANUM.concat(Gu.MARK).concat(["%",";",":","&","=","+","$",","]);Gu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(Gu.ALPHANUM);Gu.URL_CHAR=Gu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)Gu.URL_CHAR.push(e);Gu.HEX=Gu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);Gu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(Gu.ALPHANUM);Gu.TOKEN=Gu.STRICT_TOKEN.concat([" "]);Gu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&Gu.HEADER_CHARS.push(e);Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS.filter(e=>e!==44);Gu.MAJOR=Gu.NUM_MAP;Gu.MINOR=Gu.MAJOR;var mwe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(mwe=Gu.HEADER_STATE||(Gu.HEADER_STATE={}));Gu.SPECIAL_HEADERS={connection:mwe.CONNECTION,"content-length":mwe.CONTENT_LENGTH,"proxy-connection":mwe.CONNECTION,"transfer-encoding":mwe.TRANSFER_ENCODING,upgrade:mwe.UPGRADE}});var k0r=H((jsu,zjn)=>{"use strict";var{Buffer:yca}=wt("node:buffer");zjn.exports=yca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVuaWVudF9oZWFkZXJzACEhbGxodHRwX3NldF9sZW5pZW50X2NodW5rZWRfbGVuZ3RoACIdbGxodHRwX3NldF9sZW5pZW50X2tlZXBfYWxpdmUAIyRsbGh0dHBfc2V0X2xlbmllbnRfdHJhbnNmZXJfZW5jb2RpbmcAJBhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YALgkXAQBBAQsRAQIDBAUKBgcrLSwqKSglJyYK07MCLBYAQYjQACgCAARAAAtBiNAAQQE2AgALFAAgABAwIAAgAjYCOCAAIAE6ACgLFAAgACAALwEyIAAtAC4gABAvEAALHgEBf0HAABAyIgEQMCABQYAINgI4IAEgADoAKCABC48MAQd/AkAgAEUNACAAQQhrIgEgAEEEaygCACIAQXhxIgRqIQUCQCAAQQFxDQAgAEEDcUUNASABIAEoAgAiAGsiAUGc0AAoAgBJDQEgACAEaiEEAkACQEGg0AAoAgAgAUcEQCAAQf8BTQRAIABBA3YhAyABKAIIIgAgASgCDCICRgRAQYzQAEGM0AAoAgBBfiADd3E2AgAMBQsgAiAANgIIIAAgAjYCDAwECyABKAIYIQYgASABKAIMIgBHBEAgACABKAIIIgI2AgggAiAANgIMDAMLIAFBFGoiAygCACICRQRAIAEoAhAiAkUNAiABQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFKAIEIgBBA3FBA0cNAiAFIABBfnE2AgRBlNAAIAQ2AgAgBSAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCABKAIcIgJBAnRBvNIAaiIDKAIAIAFGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgAUYbaiAANgIAIABFDQELIAAgBjYCGCABKAIQIgIEQCAAIAI2AhAgAiAANgIYCyABQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAFTw0AIAUoAgQiAEEBcUUNAAJAAkACQAJAIABBAnFFBEBBpNAAKAIAIAVGBEBBpNAAIAE2AgBBmNAAQZjQACgCACAEaiIANgIAIAEgAEEBcjYCBCABQaDQACgCAEcNBkGU0ABBADYCAEGg0ABBADYCAAwGC0Gg0AAoAgAgBUYEQEGg0AAgATYCAEGU0ABBlNAAKAIAIARqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAwGCyAAQXhxIARqIQQgAEH/AU0EQCAAQQN2IQMgBSgCCCIAIAUoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgBSgCGCEGIAUgBSgCDCIARwRAQZzQACgCABogACAFKAIIIgI2AgggAiAANgIMDAMLIAVBFGoiAygCACICRQRAIAUoAhAiAkUNAiAFQRBqIQMLA0AgAyEHIAIiAEEUaiIDKAIAIgINACAAQRBqIQMgACgCECICDQALIAdBADYCAAwCCyAFIABBfnE2AgQgASAEaiAENgIAIAEgBEEBcjYCBAwDC0EAIQALIAZFDQACQCAFKAIcIgJBAnRBvNIAaiIDKAIAIAVGBEAgAyAANgIAIAANAUGQ0ABBkNAAKAIAQX4gAndxNgIADAILIAZBEEEUIAYoAhAgBUYbaiAANgIAIABFDQELIAAgBjYCGCAFKAIQIgIEQCAAIAI2AhAgAiAANgIYCyAFQRRqKAIAIgJFDQAgAEEUaiACNgIAIAIgADYCGAsgASAEaiAENgIAIAEgBEEBcjYCBCABQaDQACgCAEcNAEGU0AAgBDYCAAwBCyAEQf8BTQRAIARBeHFBtNAAaiEAAn9BjNAAKAIAIgJBASAEQQN2dCIDcUUEQEGM0AAgAiADcjYCACAADAELIAAoAggLIgIgATYCDCAAIAE2AgggASAANgIMIAEgAjYCCAwBC0EfIQIgBEH///8HTQRAIARBJiAEQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAgsgASACNgIcIAFCADcCECACQQJ0QbzSAGohAAJAQZDQACgCACIDQQEgAnQiB3FFBEAgACABNgIAQZDQACADIAdyNgIAIAEgADYCGCABIAE2AgggASABNgIMDAELIARBGSACQQF2a0EAIAJBH0cbdCECIAAoAgAhAAJAA0AgACIDKAIEQXhxIARGDQEgAkEddiEAIAJBAXQhAiADIABBBHFqQRBqIgcoAgAiAA0ACyAHIAE2AgAgASADNgIYIAEgATYCDCABIAE2AggMAQsgAygCCCIAIAE2AgwgAyABNgIIIAFBADYCGCABIAM2AgwgASAANgIIC0Gs0ABBrNAAKAIAQQFrIgBBfyAAGzYCAAsLBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LQAEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABAwIAAgBDYCOCAAIAM6ACggACACOgAtIAAgATYCGAu74gECB38DfiABIAJqIQQCQCAAIgIoAgwiAA0AIAIoAgQEQCACIAE2AgQLIwBBEGsiCCQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAhwiA0EBaw7dAdoBAdkBAgMEBQYHCAkKCwwNDtgBDxDXARES1gETFBUWFxgZGhvgAd8BHB0e1QEfICEiIyQl1AEmJygpKiss0wHSAS0u0QHQAS8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRtsBR0hJSs8BzgFLzQFMzAFNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBywHKAbgByQG5AcgBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgEA3AELQQAMxgELQQ4MxQELQQ0MxAELQQ8MwwELQRAMwgELQRMMwQELQRQMwAELQRUMvwELQRYMvgELQRgMvQELQRkMvAELQRoMuwELQRsMugELQRwMuQELQR0MuAELQQgMtwELQR4MtgELQSAMtQELQR8MtAELQQcMswELQSEMsgELQSIMsQELQSMMsAELQSQMrwELQRIMrgELQREMrQELQSUMrAELQSYMqwELQScMqgELQSgMqQELQcMBDKgBC0EqDKcBC0ErDKYBC0EsDKUBC0EtDKQBC0EuDKMBC0EvDKIBC0HEAQyhAQtBMAygAQtBNAyfAQtBDAyeAQtBMQydAQtBMgycAQtBMwybAQtBOQyaAQtBNQyZAQtBxQEMmAELQQsMlwELQToMlgELQTYMlQELQQoMlAELQTcMkwELQTgMkgELQTwMkQELQTsMkAELQT0MjwELQQkMjgELQSkMjQELQT4MjAELQT8MiwELQcAADIoBC0HBAAyJAQtBwgAMiAELQcMADIcBC0HEAAyGAQtBxQAMhQELQcYADIQBC0EXDIMBC0HHAAyCAQtByAAMgQELQckADIABC0HKAAx/C0HLAAx+C0HNAAx9C0HMAAx8C0HOAAx7C0HPAAx6C0HQAAx5C0HRAAx4C0HSAAx3C0HTAAx2C0HUAAx1C0HWAAx0C0HVAAxzC0EGDHILQdcADHELQQUMcAtB2AAMbwtBBAxuC0HZAAxtC0HaAAxsC0HbAAxrC0HcAAxqC0EDDGkLQd0ADGgLQd4ADGcLQd8ADGYLQeEADGULQeAADGQLQeIADGMLQeMADGILQQIMYQtB5AAMYAtB5QAMXwtB5gAMXgtB5wAMXQtB6AAMXAtB6QAMWwtB6gAMWgtB6wAMWQtB7AAMWAtB7QAMVwtB7gAMVgtB7wAMVQtB8AAMVAtB8QAMUwtB8gAMUgtB8wAMUQtB9AAMUAtB9QAMTwtB9gAMTgtB9wAMTQtB+AAMTAtB+QAMSwtB+gAMSgtB+wAMSQtB/AAMSAtB/QAMRwtB/gAMRgtB/wAMRQtBgAEMRAtBgQEMQwtBggEMQgtBgwEMQQtBhAEMQAtBhQEMPwtBhgEMPgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var $jn=H((zsu,qjn)=>{"use strict";var{Buffer:bca}=wt("node:buffer");qjn.exports=bca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var sYe=H((qsu,a6n)=>{"use strict";var e6n=["GET","HEAD","POST"],Eca=new Set(e6n),Sca=[101,204,205,304],t6n=[301,302,303,307,308],vca=new Set(t6n),r6n=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Bca=new Set(r6n),n6n=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],wca=new Set(n6n),Tca=["follow","manual","error"],i6n=["GET","HEAD","OPTIONS","TRACE"],Rca=new Set(i6n),Nca=["navigate","same-origin","no-cors","cors"],Dca=["omit","same-origin","include"],kca=["default","no-store","reload","no-cache","force-cache","only-if-cached"],xca=["content-encoding","content-language","content-location","content-type","content-length"],Gca=["half"],s6n=["CONNECT","TRACE","TRACK"],Fca=new Set(s6n),o6n=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Zca=new Set(o6n);a6n.exports={subresource:o6n,forbiddenMethods:s6n,requestBodyHeader:xca,referrerPolicy:n6n,requestRedirect:Tca,requestMode:Nca,requestCredentials:Dca,requestCache:kca,redirectStatus:t6n,corsSafeListedMethods:e6n,nullBodyStatus:Sca,safeMethods:i6n,badPorts:r6n,requestDuplex:Gca,subresourceSet:Zca,badPortsSet:Bca,redirectStatusSet:vca,corsSafeListedMethodsSet:Eca,safeMethodsSet:Rca,forbiddenMethodsSet:Fca,referrerPolicySet:wca}});var G0r=H(($su,c6n)=>{"use strict";var x0r=Symbol.for("undici.globalOrigin.1");function Lca(){return globalThis[x0r]}function Vca(e){if(e===void 0){Object.defineProperty(globalThis,x0r,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,x0r,{value:t,writable:!0,enumerable:!1,configurable:!1})}c6n.exports={getGlobalOrigin:Lca,setGlobalOrigin:Vca}});var eV=H((eou,f6n)=>{"use strict";var iht=wt("node:assert"),Pca=new TextEncoder,oYe=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Wca=/[\u000A\u000D\u0009\u0020]/,Oca=/[\u0009\u000A\u000C\u000D\u0020]/g,Mca=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Hca(e){iht(e.protocol==="data:");let t=g6n(e,!0);t=t.slice(5);let r={position:0},n=Cwe(",",t,r),a=n.length;if(n=Kca(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=A6n(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=p6n(l);if(l=Qca(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=F0r(n);return A==="failure"&&(A=F0r("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function g6n(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length,a=n===0?r:r.substring(0,r.length-n);return!n&&r.endsWith("#")?a.slice(0,-1):a}function sht(e,t,r){let n="";for(;r.position=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function u6n(e){return e>=48&&e<=57?e-48:(e&223)-55}function Yca(e){let t=e.length,r=new Uint8Array(t),n=0;for(let a=0;ae.length)return"failure";t.position++;let n=Cwe(";",e,t);if(n=nht(n,!1,!0),n.length===0||!oYe.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionWca.test(I),e,t);let A=sht(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=d6n(e,t,!0),Cwe(";",e,t);else if(f=Cwe(";",e,t),f=nht(f,!1,!0),f.length===0)continue;A.length!==0&&oYe.test(A)&&(f.length===0||Mca.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Qca(e){e=e.replace(Oca,"");let t=e.length;if(t%4===0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4===1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return"failure";let r=Buffer.from(e,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function d6n(e,t,r){let n=t.position,a="";for(iht(e[t.position]==='"'),t.position++;a+=sht(l=>l!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{iht(o==='"');break}}return r?a:e.slice(n,t.position)}function Xca(e){iht(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",oYe.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function Jca(e){return e===13||e===10||e===9||e===32}function nht(e,t=!0,r=!0){return Z0r(e,t,r,Jca)}function Uca(e){return e===13||e===10||e===9||e===12||e===32}function Kca(e,t=!0,r=!0){return Z0r(e,t,r,Uca)}function Z0r(e,t,r,n){let a=0,o=e.length-1;if(t)for(;a0&&n(e.charCodeAt(o));)o--;return a===0&&o===e.length-1?e:e.slice(a,o+1)}function p6n(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let r="",n=0,a=65535;for(;nt&&(a=t-n),r+=String.fromCharCode.apply(null,e.subarray(n,n+=a));return r}function jca(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}f6n.exports={dataURLProcessor:Hca,URLSerializer:g6n,collectASequenceOfCodePoints:sht,collectASequenceOfCodePointsFast:Cwe,stringPercentDecode:A6n,parseMIMEType:F0r,collectAnHTTPQuotedString:d6n,serializeAMimeType:Xca,removeChars:Z0r,removeHTTPWhitespace:nht,minimizeSupportedMimeType:jca,HTTP_TOKEN_CODEPOINTS:oYe,isomorphicDecode:p6n}});var kk=H((tou,I6n)=>{"use strict";var{types:w8,inspect:zca}=wt("node:util"),{toUSVString:qca}=Em(),Cu={};Cu.converters={};Cu.util={};Cu.errors={};Cu.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};Cu.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return Cu.errors.exception({header:e.prefix,message:r})};Cu.errors.invalidArgument=function(e){return Cu.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};Cu.brandCheck=function(e,t,r){if(r?.strict!==!1){if(!(e instanceof t)){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}}else if(e?.[Symbol.toStringTag]!==t.prototype[Symbol.toStringTag]){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}};Cu.argumentLengthCheck=function({length:e},t,r){if(ea)throw Cu.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n?.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=Cu.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};Cu.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};Cu.util.Stringify=function(e){switch(Cu.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return zca(e);case"String":return`"${e}"`;default:return`${e}`}};Cu.sequenceConverter=function(e){return(t,r,n,a)=>{if(Cu.util.Type(t)!=="Object")throw Cu.errors.exception({header:r,message:`${n} (${Cu.util.Stringify(t)}) is not iterable.`});let o=typeof a=="function"?a():t?.[Symbol.iterator]?.(),l=[],A=0;if(o===void 0||typeof o.next!="function")throw Cu.errors.exception({header:r,message:`${n} is not iterable.`});for(;;){let{done:f,value:I}=o.next();if(f)break;l.push(e(I,r,`${n}[${A++}]`))}return l}};Cu.recordConverter=function(e,t){return(r,n,a)=>{if(Cu.util.Type(r)!=="Object")throw Cu.errors.exception({header:n,message:`${a} ("${Cu.util.Type(r)}") is not an Object.`});let o={};if(!w8.isProxy(r)){let A=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let f of A){let I=e(f,n,a),C=t(r[f],n,a);o[I]=C}return o}let l=Reflect.ownKeys(r);for(let A of l)if(Reflect.getOwnPropertyDescriptor(r,A)?.enumerable){let I=e(A,n,a),C=t(r[A],n,a);o[I]=C}return o}};Cu.interfaceConverter=function(e){return(t,r,n,a)=>{if(a?.strict!==!1&&!(t instanceof e))throw Cu.errors.exception({header:r,message:`Expected ${n} ("${Cu.util.Stringify(t)}") to be an instance of ${e.name}.`});return t}};Cu.dictionaryConverter=function(e){return(t,r,n)=>{let a=Cu.util.Type(t),o={};if(a==="Null"||a==="Undefined")return o;if(a!=="Object")throw Cu.errors.exception({header:r,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let l of e){let{key:A,defaultValue:f,required:I,converter:C}=l;if(I===!0&&!Object.hasOwn(t,A))throw Cu.errors.exception({header:r,message:`Missing required key "${A}".`});let b=t[A],E=Object.hasOwn(l,"defaultValue");if(E&&b!==null&&(b??=f()),I||E||b!==void 0){if(b=C(b,r,`${n}.${A}`),l.allowedValues&&!l.allowedValues.includes(b))throw Cu.errors.exception({header:r,message:`${b} is not an accepted type. Expected one of ${l.allowedValues.join(", ")}.`});o[A]=b}}return o}};Cu.nullableConverter=function(e){return(t,r,n)=>t===null?t:e(t,r,n)};Cu.converters.DOMString=function(e,t,r,n){if(e===null&&n?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw Cu.errors.exception({header:t,message:`${r} is a symbol, which cannot be converted to a DOMString.`});return String(e)};Cu.converters.ByteString=function(e,t,r){let n=Cu.converters.DOMString(e,t,r);for(let a=0;a255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${a} has a value of ${n.charCodeAt(a)} which is greater than 255.`);return n};Cu.converters.USVString=qca;Cu.converters.boolean=function(e){return!!e};Cu.converters.any=function(e){return e};Cu.converters["long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"signed",void 0,t,r)};Cu.converters["unsigned long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"unsigned",void 0,t,r)};Cu.converters["unsigned long"]=function(e,t,r){return Cu.util.ConvertToInt(e,32,"unsigned",void 0,t,r)};Cu.converters["unsigned short"]=function(e,t,r,n){return Cu.util.ConvertToInt(e,16,"unsigned",n,t,r)};Cu.converters.ArrayBuffer=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isAnyArrayBuffer(e))throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.TypedArray=function(e,t,r,n,a){if(Cu.util.Type(e)!=="Object"||!w8.isTypedArray(e)||e.constructor.name!==t.name)throw Cu.errors.conversionFailed({prefix:r,argument:`${n} ("${Cu.util.Stringify(e)}")`,types:[t.name]});if(a?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.DataView=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isDataView(e))throw Cu.errors.exception({header:t,message:`${r} is not a DataView.`});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.BufferSource=function(e,t,r,n){if(w8.isAnyArrayBuffer(e))return Cu.converters.ArrayBuffer(e,t,r,{...n,allowShared:!1});if(w8.isTypedArray(e))return Cu.converters.TypedArray(e,e.constructor,t,r,{...n,allowShared:!1});if(w8.isDataView(e))return Cu.converters.DataView(e,t,r,{...n,allowShared:!1});throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["BufferSource"]})};Cu.converters["sequence"]=Cu.sequenceConverter(Cu.converters.ByteString);Cu.converters["sequence>"]=Cu.sequenceConverter(Cu.converters["sequence"]);Cu.converters["record"]=Cu.recordConverter(Cu.converters.ByteString,Cu.converters.ByteString);I6n.exports={webidl:Cu}});var qW=H((rou,N6n)=>{"use strict";var{Transform:$ca}=wt("node:stream"),h6n=wt("node:zlib"),{redirectStatusSet:ela,referrerPolicySet:tla,badPortsSet:rla}=sYe(),{getGlobalOrigin:m6n}=G0r(),{collectASequenceOfCodePoints:rhe,collectAnHTTPQuotedString:nla,removeChars:ila,parseMIMEType:sla}=eV(),{performance:ola}=wt("node:perf_hooks"),{isBlobLike:ala,ReadableStreamFrom:cla,isValidHTTPToken:C6n,normalizedMethodRecordsBase:lla}=Em(),nhe=wt("node:assert"),{isUint8Array:ula}=wt("node:util/types"),{webidl:aYe}=kk(),_6n=[],aht;try{aht=wt("node:crypto");let e=["sha256","sha384","sha512"];_6n=aht.getHashes().filter(t=>e.includes(t))}catch{}function y6n(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function gla(e,t){if(!ela.has(e.status))return null;let r=e.headersList.get("location",!0);return r!==null&&E6n(r)&&(b6n(r)||(r=Ala(r)),r=new URL(r,y6n(e))),r&&!r.hash&&(r.hash=t),r}function b6n(e){for(let t=0;t126||r<32)return!1}return!0}function Ala(e){return Buffer.from(e,"binary").toString("utf8")}function lYe(e){return e.urlList[e.urlList.length-1]}function dla(e){let t=lYe(e);return T6n(t)&&rla.has(t.port)?"blocked":"allowed"}function pla(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function fla(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}var Ila=C6n;function E6n(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(` +`)||e.includes("\r")||e.includes("\0"))===!1}function hla(e,t){let{headersList:r}=t,n=(r.get("referrer-policy",!0)??"").split(","),a="";if(n.length>0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(tla.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function mla(){return"allowed"}function Cla(){return"success"}function _la(){return"success"}function yla(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t,!0)}function bla(e){let t=e.origin;if(!(t==="client"||t===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",t,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&V0r(e.origin)&&!V0r(lYe(e))&&(t=null);break;case"same-origin":cht(e,lYe(e))||(t=null);break;default:}e.headersList.append("origin",t,!0)}}}function _we(e,t){return e}function Ela(e,t,r){return!e?.startTime||e.startTime4096&&(n=a);let o=cht(e,n),l=cYe(n)&&!cYe(e.url);switch(t){case"origin":return a??L0r(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=lYe(e);return cht(n,A)?n:cYe(n)&&!cYe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function L0r(e,t){return nhe(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function cYe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function Tla(e,t){if(aht===void 0)return!0;let r=v6n(t);if(r==="no metadata"||r.length===0)return!0;let n=Nla(r),a=Dla(r,n);for(let o of a){let l=o.algo,A=o.hash,f=aht.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),kla(f,A))return!0}return!1}var Rla=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function v6n(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=Rla.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();_6n.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function Nla(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function Fla(e){return e.controller.state==="aborted"}function Zla(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Lla(e){return lla[e.toLowerCase()]??e}function Vla(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return nhe(typeof t=="string"),t}var Pla=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function B6n(e,t,r=0,n=1){class a{#e;#t;#n;constructor(l,A){this.#e=l,this.#t=A,this.#n=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let l=this.#n,A=this.#e[t],f=A.length;if(l>=f)return{value:void 0,done:!0};let{[r]:I,[n]:C}=A[l];this.#n=l+1;let b;switch(this.#t){case"key":b=I;break;case"value":b=C;break;case"key+value":b=[I,C];break}return{value:b,done:!1}}}return delete a.prototype.constructor,Object.setPrototypeOf(a.prototype,Pla),Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(o,l){return new a(o,l)}}function Wla(e,t,r,n=0,a=1){let o=B6n(e,r,n,a),l={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(f,I=globalThis){if(aYe.brandCheck(this,t),aYe.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof f!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:C,1:b}of o(this,"key+value"))f.call(I,b,C,this)}}};return Object.defineProperties(t.prototype,{...l,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:l.entries.value}})}async function Ola(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{n(await w6n(o))}catch(l){a(l)}}function Mla(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Hla(e){try{e.close(),e.byobRequest?.respond(0)}catch(t){if(!t.message.includes("Controller is already closed")&&!t.message.includes("ReadableStream is already closed"))throw t}}var Yla=/[^\x00-\xFF]/;function oht(e){return nhe(!Yla.test(e)),e}async function w6n(e){let t=[],r=0;for(;;){let{done:n,value:a}=await e.read();if(n)return Buffer.concat(t,r);if(!ula(a))throw new TypeError("Received non-Uint8Array chunk");t.push(a),r+=a.length}}function Qla(e){nhe("protocol"in e);let t=e.protocol;return t==="about:"||t==="blob:"||t==="data:"}function V0r(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function T6n(e){nhe("protocol"in e);let t=e.protocol;return t==="http:"||t==="https:"}function Xla(e,t){let r=e;if(!r.startsWith("bytes"))return"failure";let n={position:5};if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==61)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let a=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),o=a.length?Number(a):null;if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==45)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let l=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),A=l.length?Number(l):null;return n.positionA?"failure":{rangeStartValue:o,rangeEndValue:A}}function Jla(e,t,r){let n="bytes ";return n+=oht(`${e}`),n+="-",n+=oht(`${t}`),n+="/",n+=oht(`${r}`),n}var P0r=class extends $ca{#e;constructor(t){super(),this.#e=t}_transform(t,r,n){if(!this._inflateStream){if(t.length===0){n();return}this._inflateStream=(t[0]&15)===8?h6n.createInflate(this.#e):h6n.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",a=>this.destroy(a))}this._inflateStream.write(t,r,n)}_final(t){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),t()}};function Ula(e){return new P0r(e)}function Kla(e){let t=null,r=null,n=null,a=R6n("content-type",e);if(a===null)return"failure";for(let o of a){let l=sla(o);l==="failure"||l.essence==="*/*"||(n=l,n.essence!==r?(t=null,n.parameters.has("charset")&&(t=n.parameters.get("charset")),r=n.essence):!n.parameters.has("charset")&&t!==null&&n.parameters.set("charset",t))}return n??"failure"}function jla(e){let t=e,r={position:0},n=[],a="";for(;r.positiono!=='"'&&o!==",",t,r),r.positiono===9||o===32),n.push(a),a=""}return n}function R6n(e,t){let r=t.get(e,!0);return r===null?null:jla(r)}var zla=new TextDecoder;function qla(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),zla.decode(e))}var W0r=class{get baseUrl(){return m6n()}get origin(){return this.baseUrl?.origin}policyContainer=S6n()},O0r=class{settingsObject=new W0r},$la=new O0r;N6n.exports={isAborted:Fla,isCancelled:Zla,isValidEncodedURL:b6n,createDeferredPromise:Gla,ReadableStreamFrom:cla,tryUpgradeRequestToAPotentiallyTrustworthyURL:xla,clampAndCoarsenConnectionTimingInfo:Ela,coarsenedSharedCurrentTime:Sla,determineRequestsReferrer:wla,makePolicyContainer:S6n,clonePolicyContainer:Bla,appendFetchMetadata:yla,appendRequestOriginHeader:bla,TAOCheck:_la,corsCheck:Cla,crossOriginResourcePolicyCheck:mla,createOpaqueTimingInfo:vla,setRequestReferrerPolicyOnRedirect:hla,isValidHTTPToken:C6n,requestBadPort:dla,requestCurrentURL:lYe,responseURL:y6n,responseLocationURL:gla,isBlobLike:ala,isURLPotentiallyTrustworthy:cYe,isValidReasonPhrase:fla,sameOrigin:cht,normalizeMethod:Lla,serializeJavascriptValueToJSONString:Vla,iteratorMixin:Wla,createIterator:B6n,isValidHeaderName:Ila,isValidHeaderValue:E6n,isErrorLike:pla,fullyReadBody:Ola,bytesMatch:Tla,isReadableStreamLike:Mla,readableStreamClose:Hla,isomorphicEncode:oht,urlIsLocal:Qla,urlHasHttpsScheme:V0r,urlIsHttpHttpsScheme:T6n,readAllBytes:w6n,simpleRangeHeaderValue:Xla,buildContentRange:Jla,parseMetadata:v6n,createInflate:Ula,extractMimeType:Kla,getDecodeSplit:R6n,utf8DecodeBytes:qla,environmentSettingsObject:$la}});var nae=H((nou,D6n)=>{"use strict";D6n.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var H0r=H((iou,k6n)=>{"use strict";var{Blob:eua,File:tua}=wt("node:buffer"),{kState:O$}=nae(),{webidl:T8}=kk(),M0r=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[O$]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return T8.brandCheck(this,e),this[O$].blobLike.stream(...t)}arrayBuffer(...t){return T8.brandCheck(this,e),this[O$].blobLike.arrayBuffer(...t)}slice(...t){return T8.brandCheck(this,e),this[O$].blobLike.slice(...t)}text(...t){return T8.brandCheck(this,e),this[O$].blobLike.text(...t)}get size(){return T8.brandCheck(this,e),this[O$].blobLike.size}get type(){return T8.brandCheck(this,e),this[O$].blobLike.type}get name(){return T8.brandCheck(this,e),this[O$].name}get lastModified(){return T8.brandCheck(this,e),this[O$].lastModified}get[Symbol.toStringTag](){return"File"}};T8.converters.Blob=T8.interfaceConverter(eua);function rua(e){return e instanceof tua||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}k6n.exports={FileLike:M0r,isFileLike:rua}});var gYe=H((sou,L6n)=>{"use strict";var{isBlobLike:lht,iteratorMixin:nua}=qW(),{kState:WZ}=nae(),{kEnumerableProperty:ywe}=Em(),{FileLike:x6n,isFileLike:iua}=H0r(),{webidl:W1}=kk(),{File:Z6n}=wt("node:buffer"),G6n=wt("node:util"),F6n=globalThis.File??Z6n,uYe=class e{constructor(t){if(t!==void 0)throw W1.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[WZ]=[]}append(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.append";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"value",{strict:!1}):W1.converters.USVString(r,a,"value"),n=arguments.length===3?W1.converters.USVString(n,a,"filename"):void 0;let o=Y0r(t,r,n);this[WZ].push(o)}delete(t){W1.brandCheck(this,e);let r="FormData.delete";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ]=this[WZ].filter(n=>n.name!==t)}get(t){W1.brandCheck(this,e);let r="FormData.get";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name");let n=this[WZ].findIndex(a=>a.name===t);return n===-1?null:this[WZ][n].value}getAll(t){W1.brandCheck(this,e);let r="FormData.getAll";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].filter(n=>n.name===t).map(n=>n.value)}has(t){W1.brandCheck(this,e);let r="FormData.has";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].findIndex(n=>n.name===t)!==-1}set(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.set";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"name",{strict:!1}):W1.converters.USVString(r,a,"name"),n=arguments.length===3?W1.converters.USVString(n,a,"name"):void 0;let o=Y0r(t,r,n),l=this[WZ].findIndex(A=>A.name===t);l!==-1?this[WZ]=[...this[WZ].slice(0,l),o,...this[WZ].slice(l+1).filter(A=>A.name!==t)]:this[WZ].push(o)}[G6n.inspect.custom](t,r){let n=this[WZ].reduce((o,l)=>(o[l.name]?Array.isArray(o[l.name])?o[l.name].push(l.value):o[l.name]=[o[l.name],l.value]:o[l.name]=l.value,o),{__proto__:null});r.depth??=t,r.colors??=!0;let a=G6n.formatWithOptions(r,n);return`FormData ${a.slice(a.indexOf("]")+2)}`}};nua("FormData",uYe,WZ,"name","value");Object.defineProperties(uYe.prototype,{append:ywe,delete:ywe,get:ywe,getAll:ywe,has:ywe,set:ywe,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Y0r(e,t,r){if(typeof t!="string"){if(iua(t)||(t=t instanceof Blob?new F6n([t],"blob",{type:t.type}):new x6n(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=t instanceof Z6n?new F6n([t],r,n):new x6n(t,r,n)}}return{name:e,value:t}}L6n.exports={FormData:uYe,makeEntry:Y0r}});var H6n=H((oou,M6n)=>{"use strict";var{isUSVString:V6n,bufferToLowerCasedHeaderName:sua}=Em(),{utf8DecodeBytes:oua}=qW(),{HTTP_TOKEN_CODEPOINTS:aua,isomorphicDecode:P6n}=eV(),{isFileLike:cua}=H0r(),{makeEntry:lua}=gYe(),uht=wt("node:assert"),{File:uua}=wt("node:buffer"),gua=globalThis.File??uua,Aua=Buffer.from('form-data; name="'),W6n=Buffer.from("; filename"),dua=Buffer.from("--"),pua=Buffer.from(`--\r `);function fua(e){for(let t=0;t70)return!1;for(let r=0;r=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===39||n===45||n===95))return!1}return!0}function hua(e,t){uht(t!=="failure"&&t.essence==="multipart/form-data");let r=t.parameters.get("boundary");if(r===void 0)return"failure";let n=Buffer.from(`--${r}`,"utf8"),a=[],o={position:0};for(;e[o.position]===13&&e[o.position+1]===10;)o.position+=2;let l=e.length;for(;e[l-1]===10&&e[l-2]===13;)l-=2;for(l!==e.length&&(e=e.subarray(0,l));;){if(e.subarray(o.position,o.position+n.length).equals(n))o.position+=n.length;else return"failure";if(o.position===e.length-2&&ght(e,dua,o)||o.position===e.length-4&&ght(e,pua,o))return a;if(e[o.position]!==13||e[o.position+1]!==10)return"failure";o.position+=2;let A=mua(e,o);if(A==="failure")return"failure";let{name:f,filename:I,contentType:C,encoding:b}=A;o.position+=2;let E;{let B=e.indexOf(n.subarray(2),o.position);if(B===-1)return"failure";E=e.subarray(o.position,B-4),o.position+=E.length,b==="base64"&&(E=Buffer.from(E.toString(),"base64"))}if(e[o.position]!==13||e[o.position+1]!==10)return"failure";o.position+=2;let N;I!==null?(C??="text/plain",fua(C)||(C=""),N=new gua([E],I,{type:C})):N=oua(Buffer.from(E)),uht(V6n(f)),uht(typeof N=="string"&&V6n(N)||cua(N)),a.push(lua(f,N,I))}}function mua(e,t){let r=null,n=null,a=null,o=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10)return r===null?"failure":{name:r,filename:n,contentType:a,encoding:o};let l=bwe(A=>A!==10&&A!==13&&A!==58,e,t);if(l=Q0r(l,!0,!0,A=>A===9||A===32),!aua.test(l.toString())||e[t.position]!==58)return"failure";switch(t.position++,bwe(A=>A===32||A===9,e,t),sua(l)){case"content-disposition":{if(r=n=null,!ght(e,Aua,t)||(t.position+=17,r=O6n(e,t),r===null))return"failure";if(ght(e,W6n,t)){let A=t.position+W6n.length;if(e[A]===42&&(t.position+=1,A+=1),e[A]!==61||e[A+1]!==34||(t.position+=12,n=O6n(e,t),n===null))return"failure"}break}case"content-type":{let A=bwe(f=>f!==10&&f!==13,e,t);A=Q0r(A,!1,!0,f=>f===9||f===32),a=P6n(A);break}case"content-transfer-encoding":{let A=bwe(f=>f!==10&&f!==13,e,t);A=Q0r(A,!1,!0,f=>f===9||f===32),o=P6n(A);break}default:bwe(A=>A!==10&&A!==13,e,t)}if(e[t.position]!==13&&e[t.position+1]!==10)return"failure";t.position+=2}}function O6n(e,t){uht(e[t.position-1]===34);let r=bwe(n=>n!==10&&n!==13&&n!==34,e,t);return e[t.position]!==34?null:(t.position++,r=new TextDecoder().decode(r).replace(/%0A/ig,` -`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),r)}function bwe(e,t,r){let n=r.position;for(;n0&&n(e[o]);)o--;return a===0&&o===e.length-1?e:e.subarray(a,o+1)}function ght(e,t,r){if(e.length{"use strict";var AYe=Em(),{ReadableStreamFrom:Cua,isBlobLike:Y6n,isReadableStreamLike:_ua,readableStreamClose:yua,createDeferredPromise:bua,fullyReadBody:Eua,extractMimeType:Sua,utf8DecodeBytes:J6n}=qW(),{FormData:Q6n}=gYe(),{kState:Swe}=nae(),{webidl:vua}=kk(),{Blob:Bua}=wt("node:buffer"),X0r=wt("node:assert"),{isErrored:U6n,isDisturbed:wua}=wt("node:stream"),{isArrayBuffer:Tua}=wt("node:util/types"),{serializeAMimeType:Rua}=eV(),{multipartFormDataParser:Nua}=H6n(),Aht=new TextEncoder;function Dua(){}var J0r=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,U0r;J0r&&(U0r=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!wua(t)&&!U6n(t)&&t.cancel("Response object has been garbage collected").catch(Dua)}));function K6n(e,t=!1){let r=null;e instanceof ReadableStream?r=e:Y6n(e)?r=e.stream():r=new ReadableStream({async pull(f){let I=typeof a=="string"?Aht.encode(a):a;I.byteLength&&f.enqueue(I),queueMicrotask(()=>yua(f))},start(){},type:"bytes"}),X0r(_ua(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(Tua(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(AYe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r +`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),r)}function bwe(e,t,r){let n=r.position;for(;n0&&n(e[o]);)o--;return a===0&&o===e.length-1?e:e.subarray(a,o+1)}function ght(e,t,r){if(e.length{"use strict";var AYe=Em(),{ReadableStreamFrom:Cua,isBlobLike:Y6n,isReadableStreamLike:_ua,readableStreamClose:yua,createDeferredPromise:bua,fullyReadBody:Eua,extractMimeType:Sua,utf8DecodeBytes:J6n}=qW(),{FormData:Q6n}=gYe(),{kState:Swe}=nae(),{webidl:vua}=kk(),{Blob:Bua}=wt("node:buffer"),X0r=wt("node:assert"),{isErrored:U6n,isDisturbed:wua}=wt("node:stream"),{isArrayBuffer:Tua}=wt("node:util/types"),{serializeAMimeType:Rua}=eV(),{multipartFormDataParser:Nua}=H6n(),Aht=new TextEncoder;function Dua(){}var J0r=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,U0r;J0r&&(U0r=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!wua(t)&&!U6n(t)&&t.cancel("Response object has been garbage collected").catch(Dua)}));function K6n(e,t=!1){let r=null;e instanceof ReadableStream?r=e:Y6n(e)?r=e.stream():r=new ReadableStream({async pull(f){let I=typeof a=="string"?Aht.encode(a):a;I.byteLength&&f.enqueue(I),queueMicrotask(()=>yua(f))},start(){},type:"bytes"}),X0r(_ua(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(Tua(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(AYe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r Content-Disposition: form-data`;let C=Q=>Q.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),b=Q=>Q.replace(/\r?\n|\r/g,`\r `),E=[],N=new Uint8Array([13,10]);o=0;let B=!1;for(let[Q,X]of e)if(typeof X=="string"){let ae=Aht.encode(I+`; name="${C(b(Q))}"\r \r @@ -416,7 +416,7 @@ ${b(X)}\r `);E.push(ae),o+=ae.byteLength}else{let ae=Aht.encode(`${I}; name="${C(b(Q))}"`+(X.name?`; filename="${C(X.name)}"`:"")+`\r Content-Type: ${X.type||"application/octet-stream"}\r \r -`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=Aht.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l=`multipart/form-data; boundary=${f}`}else if(Y6n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(AYe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof ReadableStream?e:Cua(e)}if((typeof a=="string"||AYe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new ReadableStream({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();if(b)queueMicrotask(()=>{I.close(),I.byobRequest?.respond(0)});else if(!U6n(r)){let E=new Uint8Array(C);E.byteLength&&I.enqueue(E)}return I.desiredSize>0},async cancel(I){await f.return()},type:"bytes"})}return[{stream:r,source:a,length:o},l]}function kua(e,t=!1){return e instanceof ReadableStream&&(X0r(!AYe.isDisturbed(e),"The body has already been consumed."),X0r(!e.locked,"The stream is locked.")),K6n(e,t)}function xua(e,t){let[r,n]=t.stream.tee();return J0r&&U0r.register(e,new WeakRef(r)),t.stream=r,{stream:n,length:t.length,source:t.source}}function Gua(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Fua(e){return{blob(){return Ewe(this,r=>{let n=X6n(this);return n===null?n="":n&&(n=Rua(n)),new Bua([r],{type:n})},e)},arrayBuffer(){return Ewe(this,r=>new Uint8Array(r).buffer,e)},text(){return Ewe(this,J6n,e)},json(){return Ewe(this,Lua,e)},formData(){return Ewe(this,r=>{let n=X6n(this);if(n!==null)switch(n.essence){case"multipart/form-data":{let a=Nua(r,n);if(a==="failure")throw new TypeError("Failed to parse body as FormData.");let o=new Q6n;return o[Swe]=a,o}case"application/x-www-form-urlencoded":{let a=new URLSearchParams(r.toString()),o=new Q6n;for(let[l,A]of a)o.append(l,A);return o}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return Ewe(this,r=>new Uint8Array(r),e)}}}function Zua(e){Object.assign(e.prototype,Fua(e))}async function Ewe(e,t,r){if(vua.brandCheck(e,r),j6n(e))throw new TypeError("Body is unusable: Body has already been read");Gua(e[Swe]);let n=bua(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[Swe].body==null?(o(Buffer.allocUnsafe(0)),n.promise):(await Eua(e[Swe].body,o,a),n.promise)}function j6n(e){let t=e[Swe].body;return t!=null&&(t.stream.locked||AYe.isDisturbed(t.stream))}function Lua(e){return JSON.parse(J6n(e))}function X6n(e){let t=e[Swe].headersList,r=Sua(t);return r==="failure"?null:r}z6n.exports={extractBody:K6n,safelyExtractBody:kua,cloneBody:xua,mixinBody:Zua,streamRegistry:U0r,hasFinalizationRegistry:J0r,bodyUnusable:j6n}});var c7n=H((aou,a7n)=>{"use strict";var Af=wt("node:assert"),II=Em(),{channels:q6n}=Awe(),K0r=R0r(),{RequestContentLengthMismatchError:ihe,ResponseContentLengthMismatchError:Vua,RequestAbortedError:i7n,HeadersTimeoutError:Pua,HeadersOverflowError:Wua,SocketError:mht,InformationalError:vwe,BodyTimeoutError:Oua,HTTPParserError:Mua,ResponseExceededMaxSizeError:Hua}=Y0(),{kUrl:s7n,kReset:tV,kClient:$0r,kParser:Ov,kBlocking:IYe,kRunning:EG,kPending:Yua,kSize:$6n,kWriting:sae,kQueue:kX,kNoRef:pYe,kKeepAliveDefaultTimeout:Qua,kHostHeader:Xua,kPendingIdx:Jua,kRunningIdx:DM,kError:kM,kPipelining:Iht,kSocket:Bwe,kKeepAliveTimeoutValue:Cht,kMaxHeadersSize:j0r,kKeepAliveMaxTimeout:Uua,kKeepAliveTimeoutThreshold:Kua,kHeadersTimeout:jua,kBodyTimeout:zua,kStrictContentLength:eyr,kMaxRequests:e7n,kCounter:qua,kMaxResponseSize:$ua,kOnError:ega,kResume:iae,kHTTPContext:o7n}=B2(),R8=jjn(),tga=Buffer.alloc(0),dht=Buffer[Symbol.species],pht=II.addListener,rga=II.removeAllListeners,z0r;async function nga(){let e=process.env.JEST_WORKER_ID?k0r():void 0,t;try{t=await WebAssembly.compile($jn())}catch{t=await WebAssembly.compile(e||k0r())}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onStatus(new dht(N8.buffer,o,a))||0},wasm_on_message_begin:r=>(Af(RR.ptr===r),RR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderField(new dht(N8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderValue(new dht(N8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(Af(RR.ptr===r),RR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onBody(new dht(N8.buffer,o,a))||0},wasm_on_message_complete:r=>(Af(RR.ptr===r),RR.onMessageComplete()||0)}})}var q0r=null,tyr=nga();tyr.catch();var RR=null,N8=null,fht=0,D8=null,iga=0,fYe=1,wwe=2|fYe,hht=4|fYe,ryr=8|iga,nyr=class{constructor(t,r,{exports:n}){Af(Number.isFinite(t[j0r])&&t[j0r]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(R8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[j0r],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[$ua]}setTimeout(t,r){t!==this.timeoutValue||r&fYe^this.timeoutType&fYe?(this.timeout&&(K0r.clearTimeout(this.timeout),this.timeout=null),t&&(r&fYe?this.timeout=K0r.setFastTimeout(t7n,t,new WeakRef(this)):(this.timeout=setTimeout(t7n,t,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=r}resume(){this.socket.destroyed||!this.paused||(Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_resume(this.ptr),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||tga),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){Af(this.ptr!=null),Af(RR==null),Af(!this.paused);let{socket:r,llhttp:n}=this;t.length>fht&&(D8&&n.free(D8),fht=Math.ceil(t.length/4096)*4096,D8=n.malloc(fht)),new Uint8Array(n.memory.buffer,D8,fht).set(t);try{let a;try{N8=t,RR=this,a=n.llhttp_execute(this.ptr,D8,t.length)}catch(l){throw l}finally{RR=null,N8=null}let o=n.llhttp_get_error_pos(this.ptr)-D8;if(a===R8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===R8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==R8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new Mua(A,R8.ERROR[a],t.slice(o))}}catch(a){II.destroy(r,a)}}destroy(){Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&K0r.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed)return-1;let n=r[kX][r[DM]];if(!n)return-1;n.onResponseStarted()}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];if(n.length===10){let a=II.bufferToLowerCasedHeaderName(n);a==="keep-alive"?this.keepAlive+=t.toString():a==="connection"&&(this.connection+=t.toString())}else n.length===14&&II.bufferToLowerCasedHeaderName(n)==="content-length"&&(this.contentLength+=t.toString());this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&II.destroy(this.socket,new Wua)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;Af(r),Af(n[Bwe]===a),Af(!a.destroyed),Af(!this.paused),Af((o.length&1)===0);let A=n[kX][n[DM]];Af(A),Af(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,a.unshift(t),a[Ov].destroy(),a[Ov]=null,a[$0r]=null,a[kM]=null,rga(a),n[Bwe]=null,n[o7n]=null,n[kX][n[DM]++]=null,n.emit("disconnect",n[s7n],[n],new vwe("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){II.destroy(a,f)}n[iae]()}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[kX][a[DM]];if(!f)return-1;if(Af(!this.upgrade),Af(this.statusCode<200),t===100)return II.destroy(o,new mht("bad response",II.getSocketInfo(o))),-1;if(r&&!f.upgrade)return II.destroy(o,new mht("bad upgrade",II.getSocketInfo(o))),-1;if(Af(this.timeoutType===wwe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[tV]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[zua];this.setTimeout(C,hht)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return Af(a[EG]===1),this.upgrade=!0,2;if(r)return Af(a[EG]===1),this.upgrade=!0,2;if(Af((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[Iht]){let C=this.keepAlive?II.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[Kua],a[Uua]);b<=0?o[tV]=!0:a[Cht]=b}else a[Cht]=a[Qua]}else o[tV]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[IYe]&&(o[IYe]=!1,a[iae]()),I?R8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[kX][r[DM]];if(Af(l),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),Af(a>=200),o>-1&&this.bytesRead+t.length>o)return II.destroy(n,new Hua),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return R8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;Af(n>=100),Af((this.headers.length&1)===0);let I=t[kX][t[DM]];if(Af(I),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return II.destroy(r,new Vua),-1;if(I.onComplete(o),t[kX][t[DM]++]=null,r[sae])return Af(t[EG]===0),II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;if(f){if(r[tV]&&t[EG]===0)return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;t[Iht]==null||t[Iht]===1?setImmediate(()=>t[iae]()):t[iae]()}else return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED}}};function t7n(e){let{socket:t,timeoutType:r,client:n,paused:a}=e.deref();r===wwe?(!t[sae]||t.writableNeedDrain||n[EG]>1)&&(Af(!a,"cannot be paused while waiting for headers"),II.destroy(t,new Pua)):r===hht?a||II.destroy(t,new Oua):r===ryr&&(Af(n[EG]===0&&n[Cht]),II.destroy(t,new vwe("socket idle timeout")))}async function sga(e,t){e[Bwe]=t,q0r||(q0r=await tyr,tyr=null),t[pYe]=!1,t[sae]=!1,t[tV]=!1,t[IYe]=!1,t[Ov]=new nyr(e,t,q0r),pht(t,"error",function(n){Af(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let a=this[Ov];if(n.code==="ECONNRESET"&&a.statusCode&&!a.shouldKeepAlive){a.onMessageComplete();return}this[kM]=n,this[$0r][ega](n)}),pht(t,"readable",function(){let n=this[Ov];n&&n.readMore()}),pht(t,"end",function(){let n=this[Ov];if(n.statusCode&&!n.shouldKeepAlive){n.onMessageComplete();return}II.destroy(this,new mht("other side closed",II.getSocketInfo(this)))}),pht(t,"close",function(){let n=this[$0r],a=this[Ov];a&&(!this[kM]&&a.statusCode&&!a.shouldKeepAlive&&a.onMessageComplete(),this[Ov].destroy(),this[Ov]=null);let o=this[kM]||new mht("closed",II.getSocketInfo(this));if(n[Bwe]=null,n[o7n]=null,n.destroyed){Af(n[Yua]===0);let l=n[kX].splice(n[DM]);for(let A=0;A0&&o.code!=="UND_ERR_INFO"){let l=n[kX][n[DM]];n[kX][n[DM]++]=null,II.errorRequest(n,l,o)}n[Jua]=n[DM],Af(n[EG]===0),n.emit("disconnect",n[s7n],[n],o),n[iae]()});let r=!1;return t.on("close",()=>{r=!0}),{version:"h1",defaultPipelining:1,write(...n){return cga(e,...n)},resume(){oga(e)},destroy(n,a){r?queueMicrotask(a):t.destroy(n).on("close",a)},get destroyed(){return t.destroyed},busy(n){return!!(t[sae]||t[tV]||t[IYe]||n&&(e[EG]>0&&!n.idempotent||e[EG]>0&&(n.upgrade||n.method==="CONNECT")||e[EG]>0&&II.bodyLength(n.body)!==0&&(II.isStream(n.body)||II.isAsyncIterable(n.body)||II.isFormDataLike(n.body))))}}}function oga(e){let t=e[Bwe];if(t&&!t.destroyed){if(e[$6n]===0?!t[pYe]&&t.unref&&(t.unref(),t[pYe]=!0):t[pYe]&&t.ref&&(t.ref(),t[pYe]=!1),e[$6n]===0)t[Ov].timeoutType!==ryr&&t[Ov].setTimeout(e[Cht],ryr);else if(e[EG]>0&&t[Ov].statusCode<200&&t[Ov].timeoutType!==wwe){let r=e[kX][e[DM]],n=r.headersTimeout!=null?r.headersTimeout:e[jua];t[Ov].setTimeout(n,wwe)}}}function aga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function cga(e,t){let{method:r,path:n,host:a,upgrade:o,blocking:l,reset:A}=t,{body:f,headers:I,contentLength:C}=t,b=r==="PUT"||r==="POST"||r==="PATCH"||r==="QUERY"||r==="PROPFIND"||r==="PROPPATCH";if(II.isFormDataLike(f)){z0r||(z0r=dYe().extractBody);let[Q,X]=z0r(f);t.contentType==null&&I.push("content-type",X),f=Q.stream,C=Q.length}else II.isBlobLike(f)&&t.contentType==null&&f.type&&I.push("content-type",f.type);f&&typeof f.read=="function"&&f.read(0);let E=II.bodyLength(f);if(C=E??C,C===null&&(C=t.contentLength),C===0&&!b&&(C=null),aga(r)&&C>0&&t.contentLength!==null&&t.contentLength!==C){if(e[eyr])return II.errorRequest(e,t,new ihe),!1;process.emitWarning(new ihe)}let N=e[Bwe],B=Q=>{t.aborted||t.completed||(II.errorRequest(e,t,Q||new i7n),II.destroy(f),II.destroy(N,new vwe("aborted")))};try{t.onConnect(B)}catch(Q){II.errorRequest(e,t,Q)}if(t.aborted)return!1;r==="HEAD"&&(N[tV]=!0),(o||r==="CONNECT")&&(N[tV]=!0),A!=null&&(N[tV]=A),e[e7n]&&N[qua]++>=e[e7n]&&(N[tV]=!0),l&&(N[IYe]=!0);let F=`${r} ${n} HTTP/1.1\r +`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=Aht.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l=`multipart/form-data; boundary=${f}`}else if(Y6n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(AYe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof ReadableStream?e:Cua(e)}if((typeof a=="string"||AYe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new ReadableStream({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();if(b)queueMicrotask(()=>{I.close(),I.byobRequest?.respond(0)});else if(!U6n(r)){let E=new Uint8Array(C);E.byteLength&&I.enqueue(E)}return I.desiredSize>0},async cancel(I){await f.return()},type:"bytes"})}return[{stream:r,source:a,length:o},l]}function kua(e,t=!1){return e instanceof ReadableStream&&(X0r(!AYe.isDisturbed(e),"The body has already been consumed."),X0r(!e.locked,"The stream is locked.")),K6n(e,t)}function xua(e,t){let[r,n]=t.stream.tee();return J0r&&U0r.register(e,new WeakRef(r)),t.stream=r,{stream:n,length:t.length,source:t.source}}function Gua(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Fua(e){return{blob(){return Ewe(this,r=>{let n=X6n(this);return n===null?n="":n&&(n=Rua(n)),new Bua([r],{type:n})},e)},arrayBuffer(){return Ewe(this,r=>new Uint8Array(r).buffer,e)},text(){return Ewe(this,J6n,e)},json(){return Ewe(this,Lua,e)},formData(){return Ewe(this,r=>{let n=X6n(this);if(n!==null)switch(n.essence){case"multipart/form-data":{let a=Nua(r,n);if(a==="failure")throw new TypeError("Failed to parse body as FormData.");let o=new Q6n;return o[Swe]=a,o}case"application/x-www-form-urlencoded":{let a=new URLSearchParams(r.toString()),o=new Q6n;for(let[l,A]of a)o.append(l,A);return o}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return Ewe(this,r=>new Uint8Array(r),e)}}}function Zua(e){Object.assign(e.prototype,Fua(e))}async function Ewe(e,t,r){if(vua.brandCheck(e,r),j6n(e))throw new TypeError("Body is unusable: Body has already been read");Gua(e[Swe]);let n=bua(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[Swe].body==null?(o(Buffer.allocUnsafe(0)),n.promise):(await Eua(e[Swe].body,o,a),n.promise)}function j6n(e){let t=e[Swe].body;return t!=null&&(t.stream.locked||AYe.isDisturbed(t.stream))}function Lua(e){return JSON.parse(J6n(e))}function X6n(e){let t=e[Swe].headersList,r=Sua(t);return r==="failure"?null:r}z6n.exports={extractBody:K6n,safelyExtractBody:kua,cloneBody:xua,mixinBody:Zua,streamRegistry:U0r,hasFinalizationRegistry:J0r,bodyUnusable:j6n}});var c7n=H((cou,a7n)=>{"use strict";var Af=wt("node:assert"),II=Em(),{channels:q6n}=Awe(),K0r=R0r(),{RequestContentLengthMismatchError:ihe,ResponseContentLengthMismatchError:Vua,RequestAbortedError:i7n,HeadersTimeoutError:Pua,HeadersOverflowError:Wua,SocketError:mht,InformationalError:vwe,BodyTimeoutError:Oua,HTTPParserError:Mua,ResponseExceededMaxSizeError:Hua}=Y0(),{kUrl:s7n,kReset:tV,kClient:$0r,kParser:Ov,kBlocking:IYe,kRunning:EG,kPending:Yua,kSize:$6n,kWriting:sae,kQueue:kX,kNoRef:pYe,kKeepAliveDefaultTimeout:Qua,kHostHeader:Xua,kPendingIdx:Jua,kRunningIdx:DM,kError:kM,kPipelining:Iht,kSocket:Bwe,kKeepAliveTimeoutValue:Cht,kMaxHeadersSize:j0r,kKeepAliveMaxTimeout:Uua,kKeepAliveTimeoutThreshold:Kua,kHeadersTimeout:jua,kBodyTimeout:zua,kStrictContentLength:eyr,kMaxRequests:e7n,kCounter:qua,kMaxResponseSize:$ua,kOnError:ega,kResume:iae,kHTTPContext:o7n}=B2(),R8=jjn(),tga=Buffer.alloc(0),dht=Buffer[Symbol.species],pht=II.addListener,rga=II.removeAllListeners,z0r;async function nga(){let e=process.env.JEST_WORKER_ID?k0r():void 0,t;try{t=await WebAssembly.compile($jn())}catch{t=await WebAssembly.compile(e||k0r())}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onStatus(new dht(N8.buffer,o,a))||0},wasm_on_message_begin:r=>(Af(RR.ptr===r),RR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderField(new dht(N8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderValue(new dht(N8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(Af(RR.ptr===r),RR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onBody(new dht(N8.buffer,o,a))||0},wasm_on_message_complete:r=>(Af(RR.ptr===r),RR.onMessageComplete()||0)}})}var q0r=null,tyr=nga();tyr.catch();var RR=null,N8=null,fht=0,D8=null,iga=0,fYe=1,wwe=2|fYe,hht=4|fYe,ryr=8|iga,nyr=class{constructor(t,r,{exports:n}){Af(Number.isFinite(t[j0r])&&t[j0r]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(R8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[j0r],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[$ua]}setTimeout(t,r){t!==this.timeoutValue||r&fYe^this.timeoutType&fYe?(this.timeout&&(K0r.clearTimeout(this.timeout),this.timeout=null),t&&(r&fYe?this.timeout=K0r.setFastTimeout(t7n,t,new WeakRef(this)):(this.timeout=setTimeout(t7n,t,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=r}resume(){this.socket.destroyed||!this.paused||(Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_resume(this.ptr),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||tga),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){Af(this.ptr!=null),Af(RR==null),Af(!this.paused);let{socket:r,llhttp:n}=this;t.length>fht&&(D8&&n.free(D8),fht=Math.ceil(t.length/4096)*4096,D8=n.malloc(fht)),new Uint8Array(n.memory.buffer,D8,fht).set(t);try{let a;try{N8=t,RR=this,a=n.llhttp_execute(this.ptr,D8,t.length)}catch(l){throw l}finally{RR=null,N8=null}let o=n.llhttp_get_error_pos(this.ptr)-D8;if(a===R8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===R8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==R8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new Mua(A,R8.ERROR[a],t.slice(o))}}catch(a){II.destroy(r,a)}}destroy(){Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&K0r.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed)return-1;let n=r[kX][r[DM]];if(!n)return-1;n.onResponseStarted()}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];if(n.length===10){let a=II.bufferToLowerCasedHeaderName(n);a==="keep-alive"?this.keepAlive+=t.toString():a==="connection"&&(this.connection+=t.toString())}else n.length===14&&II.bufferToLowerCasedHeaderName(n)==="content-length"&&(this.contentLength+=t.toString());this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&II.destroy(this.socket,new Wua)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;Af(r),Af(n[Bwe]===a),Af(!a.destroyed),Af(!this.paused),Af((o.length&1)===0);let A=n[kX][n[DM]];Af(A),Af(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,a.unshift(t),a[Ov].destroy(),a[Ov]=null,a[$0r]=null,a[kM]=null,rga(a),n[Bwe]=null,n[o7n]=null,n[kX][n[DM]++]=null,n.emit("disconnect",n[s7n],[n],new vwe("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){II.destroy(a,f)}n[iae]()}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[kX][a[DM]];if(!f)return-1;if(Af(!this.upgrade),Af(this.statusCode<200),t===100)return II.destroy(o,new mht("bad response",II.getSocketInfo(o))),-1;if(r&&!f.upgrade)return II.destroy(o,new mht("bad upgrade",II.getSocketInfo(o))),-1;if(Af(this.timeoutType===wwe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[tV]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[zua];this.setTimeout(C,hht)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return Af(a[EG]===1),this.upgrade=!0,2;if(r)return Af(a[EG]===1),this.upgrade=!0,2;if(Af((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[Iht]){let C=this.keepAlive?II.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[Kua],a[Uua]);b<=0?o[tV]=!0:a[Cht]=b}else a[Cht]=a[Qua]}else o[tV]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[IYe]&&(o[IYe]=!1,a[iae]()),I?R8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[kX][r[DM]];if(Af(l),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),Af(a>=200),o>-1&&this.bytesRead+t.length>o)return II.destroy(n,new Hua),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return R8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;Af(n>=100),Af((this.headers.length&1)===0);let I=t[kX][t[DM]];if(Af(I),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return II.destroy(r,new Vua),-1;if(I.onComplete(o),t[kX][t[DM]++]=null,r[sae])return Af(t[EG]===0),II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;if(f){if(r[tV]&&t[EG]===0)return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;t[Iht]==null||t[Iht]===1?setImmediate(()=>t[iae]()):t[iae]()}else return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED}}};function t7n(e){let{socket:t,timeoutType:r,client:n,paused:a}=e.deref();r===wwe?(!t[sae]||t.writableNeedDrain||n[EG]>1)&&(Af(!a,"cannot be paused while waiting for headers"),II.destroy(t,new Pua)):r===hht?a||II.destroy(t,new Oua):r===ryr&&(Af(n[EG]===0&&n[Cht]),II.destroy(t,new vwe("socket idle timeout")))}async function sga(e,t){e[Bwe]=t,q0r||(q0r=await tyr,tyr=null),t[pYe]=!1,t[sae]=!1,t[tV]=!1,t[IYe]=!1,t[Ov]=new nyr(e,t,q0r),pht(t,"error",function(n){Af(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let a=this[Ov];if(n.code==="ECONNRESET"&&a.statusCode&&!a.shouldKeepAlive){a.onMessageComplete();return}this[kM]=n,this[$0r][ega](n)}),pht(t,"readable",function(){let n=this[Ov];n&&n.readMore()}),pht(t,"end",function(){let n=this[Ov];if(n.statusCode&&!n.shouldKeepAlive){n.onMessageComplete();return}II.destroy(this,new mht("other side closed",II.getSocketInfo(this)))}),pht(t,"close",function(){let n=this[$0r],a=this[Ov];a&&(!this[kM]&&a.statusCode&&!a.shouldKeepAlive&&a.onMessageComplete(),this[Ov].destroy(),this[Ov]=null);let o=this[kM]||new mht("closed",II.getSocketInfo(this));if(n[Bwe]=null,n[o7n]=null,n.destroyed){Af(n[Yua]===0);let l=n[kX].splice(n[DM]);for(let A=0;A0&&o.code!=="UND_ERR_INFO"){let l=n[kX][n[DM]];n[kX][n[DM]++]=null,II.errorRequest(n,l,o)}n[Jua]=n[DM],Af(n[EG]===0),n.emit("disconnect",n[s7n],[n],o),n[iae]()});let r=!1;return t.on("close",()=>{r=!0}),{version:"h1",defaultPipelining:1,write(...n){return cga(e,...n)},resume(){oga(e)},destroy(n,a){r?queueMicrotask(a):t.destroy(n).on("close",a)},get destroyed(){return t.destroyed},busy(n){return!!(t[sae]||t[tV]||t[IYe]||n&&(e[EG]>0&&!n.idempotent||e[EG]>0&&(n.upgrade||n.method==="CONNECT")||e[EG]>0&&II.bodyLength(n.body)!==0&&(II.isStream(n.body)||II.isAsyncIterable(n.body)||II.isFormDataLike(n.body))))}}}function oga(e){let t=e[Bwe];if(t&&!t.destroyed){if(e[$6n]===0?!t[pYe]&&t.unref&&(t.unref(),t[pYe]=!0):t[pYe]&&t.ref&&(t.ref(),t[pYe]=!1),e[$6n]===0)t[Ov].timeoutType!==ryr&&t[Ov].setTimeout(e[Cht],ryr);else if(e[EG]>0&&t[Ov].statusCode<200&&t[Ov].timeoutType!==wwe){let r=e[kX][e[DM]],n=r.headersTimeout!=null?r.headersTimeout:e[jua];t[Ov].setTimeout(n,wwe)}}}function aga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function cga(e,t){let{method:r,path:n,host:a,upgrade:o,blocking:l,reset:A}=t,{body:f,headers:I,contentLength:C}=t,b=r==="PUT"||r==="POST"||r==="PATCH"||r==="QUERY"||r==="PROPFIND"||r==="PROPPATCH";if(II.isFormDataLike(f)){z0r||(z0r=dYe().extractBody);let[Q,X]=z0r(f);t.contentType==null&&I.push("content-type",X),f=Q.stream,C=Q.length}else II.isBlobLike(f)&&t.contentType==null&&f.type&&I.push("content-type",f.type);f&&typeof f.read=="function"&&f.read(0);let E=II.bodyLength(f);if(C=E??C,C===null&&(C=t.contentLength),C===0&&!b&&(C=null),aga(r)&&C>0&&t.contentLength!==null&&t.contentLength!==C){if(e[eyr])return II.errorRequest(e,t,new ihe),!1;process.emitWarning(new ihe)}let N=e[Bwe],B=Q=>{t.aborted||t.completed||(II.errorRequest(e,t,Q||new i7n),II.destroy(f),II.destroy(N,new vwe("aborted")))};try{t.onConnect(B)}catch(Q){II.errorRequest(e,t,Q)}if(t.aborted)return!1;r==="HEAD"&&(N[tV]=!0),(o||r==="CONNECT")&&(N[tV]=!0),A!=null&&(N[tV]=A),e[e7n]&&N[qua]++>=e[e7n]&&(N[tV]=!0),l&&(N[IYe]=!0);let F=`${r} ${n} HTTP/1.1\r `;if(typeof a=="string"?F+=`host: ${a}\r `:F+=e[Xua],o?F+=`connection: upgrade\r upgrade: ${o}\r @@ -442,28 +442,28 @@ ${I.toString(16)}\r `,"latin1"):r===null&&t.write(`\r 0\r \r -`,"latin1"),r!==null&&a!==r){if(n[eyr])throw new ihe;process.emitWarning(new ihe)}t[Ov].timeout&&t[Ov].timeoutType===wwe&&t[Ov].timeout.refresh&&t[Ov].timeout.refresh(),n[iae]()}}destroy(t){let{socket:r,client:n,abort:a}=this;r[sae]=!1,t&&(Af(n[EG]<=1,"pipeline should only contain this request"),a(t))}};a7n.exports=sga});var f7n=H((cou,p7n)=>{"use strict";var xM=wt("node:assert"),{pipeline:gga}=wt("node:stream"),EC=Em(),{RequestContentLengthMismatchError:iyr,RequestAbortedError:l7n,SocketError:hYe,InformationalError:syr}=Y0(),{kUrl:yht,kReset:Eht,kClient:Twe,kRunning:Sht,kPending:Aga,kQueue:she,kPendingIdx:oyr,kRunningIdx:k8,kError:GX,kSocket:tD,kStrictContentLength:dga,kOnError:ayr,kMaxConcurrentStreams:d7n,kHTTP2Session:xX,kResume:oae,kSize:pga,kHTTPContext:fga}=B2(),M$=Symbol("open streams"),u7n=!1,bht;try{bht=wt("node:http2")}catch{bht={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:Iga,HTTP2_HEADER_METHOD:hga,HTTP2_HEADER_PATH:mga,HTTP2_HEADER_SCHEME:Cga,HTTP2_HEADER_CONTENT_LENGTH:_ga,HTTP2_HEADER_EXPECT:yga,HTTP2_HEADER_STATUS:bga}}=bht;function Ega(e){let t=[];for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let a of n)t.push(Buffer.from(r),Buffer.from(a));else t.push(Buffer.from(r),Buffer.from(n));return t}async function Sga(e,t){e[tD]=t,u7n||(u7n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let r=bht.connect(e[yht],{createConnection:()=>t,peerMaxConcurrentStreams:e[d7n]});r[M$]=0,r[Twe]=e,r[tD]=t,EC.addListener(r,"error",Bga),EC.addListener(r,"frameError",wga),EC.addListener(r,"end",Tga),EC.addListener(r,"goaway",Rga),EC.addListener(r,"close",function(){let{[Twe]:a}=this,{[tD]:o}=a,l=this[tD][GX]||this[GX]||new hYe("closed",EC.getSocketInfo(o));if(a[xX]=null,a.destroyed){xM(a[Aga]===0);let A=a[she].splice(a[k8]);for(let f=0;f{n=!0}),{version:"h2",defaultPipelining:1/0,write(...a){return Dga(e,...a)},resume(){vga(e)},destroy(a,o){n?queueMicrotask(o):t.destroy(a).on("close",o)},get destroyed(){return t.destroyed},busy(){return!1}}}function vga(e){let t=e[tD];t?.destroyed===!1&&(e[pga]===0&&e[d7n]===0?(t.unref(),e[xX].unref()):(t.ref(),e[xX].ref()))}function Bga(e){xM(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[tD][GX]=e,this[Twe][ayr](e)}function wga(e,t,r){if(r===0){let n=new syr(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[tD][GX]=n,this[Twe][ayr](n)}}function Tga(){let e=new hYe("other side closed",EC.getSocketInfo(this[tD]));this.destroy(e),EC.destroy(this[tD],e)}function Rga(e){let t=this[GX]||new hYe(`HTTP/2: "GOAWAY" frame received with code ${e}`,EC.getSocketInfo(this)),r=this[Twe];r[tD]=null,r[fga]=null,this[xX]!=null&&(this[xX].destroy(t),this[xX]=null),EC.destroy(this[tD],t);let n=r[she][r[k8]];r[she][r[k8]++]=null,EC.errorRequest(r,n,t),r[oyr]=r[k8],xM(r[Sht]===0),r.emit("disconnect",r[yht],[r],t),r[oae]()}function Nga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function Dga(e,t){let r=e[xX],{body:n,method:a,path:o,host:l,upgrade:A,expectContinue:f,signal:I,headers:C}=t;if(A)return EC.errorRequest(e,t,new Error("Upgrade not supported for H2")),!1;let b={};for(let ce=0;ce{t.aborted||t.completed||(ce=ce||new l7n,EC.errorRequest(e,t,ce),E!=null&&EC.destroy(E,ce),EC.destroy(n,ce),e[she][e[k8]++]=null,e[oae]())};try{t.onConnect(F)}catch(ce){EC.errorRequest(e,t,ce)}if(t.aborted)return!1;if(a==="CONNECT")return r.ref(),E=r.request(b,{endStream:!1,signal:I}),E.id&&!E.pending?(t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null):E.once("ready",()=>{t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),!0;b[mga]=o,b[Cga]="https";let Q=a==="PUT"||a==="POST"||a==="PATCH";n&&typeof n.read=="function"&&n.read(0);let X=EC.bodyLength(n);if(X==null&&(X=t.contentLength),(X===0||!Q)&&(X=null),Nga(a)&&X>0&&t.contentLength!=null&&t.contentLength!==X){if(e[dga])return EC.errorRequest(e,t,new iyr),!1;process.emitWarning(new iyr)}X!=null&&(xM(n,"no body must not have content length"),b[_ga]=`${X}`),r.ref();let ae=a==="GET"||a==="HEAD"||n===null;return f?(b[yga]="100-continue",E=r.request(b,{endStream:ae,signal:I}),E.once("continue",ne)):(E=r.request(b,{endStream:ae,signal:I}),ne()),++r[M$],E.once("response",ce=>{let{[bga]:fe,...ue}=ce;if(t.onResponseStarted(),t.aborted){let de=new l7n;EC.errorRequest(e,t,de),EC.destroy(E,de);return}t.onHeaders(Number(fe),Ega(ue),E.resume.bind(E),"")===!1&&E.pause(),E.on("data",de=>{t.onData(de)===!1&&E.pause()})}),E.once("end",()=>{(E.state?.state==null||E.state.state<6)&&t.onComplete([]),r[M$]===0&&r.unref(),F(new syr("HTTP/2: stream half-closed (remote)")),e[she][e[k8]++]=null,e[oyr]=e[k8],e[oae]()}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),E.once("error",function(ce){F(ce)}),E.once("frameError",(ce,fe)=>{F(new syr(`HTTP/2: "frameError" received - type ${ce}, code ${fe}`))}),!0;function ne(){!n||X===0?g7n(F,E,null,e,t,e[tD],X,Q):EC.isBuffer(n)?g7n(F,E,n,e,t,e[tD],X,Q):EC.isBlobLike(n)?typeof n.stream=="function"?A7n(F,E,n.stream(),e,t,e[tD],X,Q):xga(F,E,n,e,t,e[tD],X,Q):EC.isStream(n)?kga(F,e[tD],Q,E,n,e,t,X):EC.isIterable(n)?A7n(F,E,n,e,t,e[tD],X,Q):xM(!1)}}function g7n(e,t,r,n,a,o,l,A){try{r!=null&&EC.isBuffer(r)&&(xM(l===r.byteLength,"buffer body must have content length"),t.cork(),t.write(r),t.uncork(),t.end(),a.onBodySent(r)),A||(o[Eht]=!0),a.onRequestSent(),n[oae]()}catch(f){e(f)}}function kga(e,t,r,n,a,o,l,A){xM(A!==0||o[Sht]===0,"stream body cannot be pipelined");let f=gga(a,n,C=>{C?(EC.destroy(f,C),e(C)):(EC.removeAllListeners(f),l.onRequestSent(),r||(t[Eht]=!0),o[oae]())});EC.addListener(f,"data",I);function I(C){l.onBodySent(C)}}async function xga(e,t,r,n,a,o,l,A){xM(l===r.size,"blob body must have content length");try{if(l!=null&&l!==r.size)throw new iyr;let f=Buffer.from(await r.arrayBuffer());t.cork(),t.write(f),t.uncork(),t.end(),a.onBodySent(f),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(f){e(f)}}async function A7n(e,t,r,n,a,o,l,A){xM(l!==0||n[Sht]===0,"iterator body cannot be pipelined");let f=null;function I(){if(f){let b=f;f=null,b()}}let C=()=>new Promise((b,E)=>{xM(f===null),o[GX]?E(o[GX]):f=b});t.on("close",I).on("drain",I);try{for await(let b of r){if(o[GX])throw o[GX];let E=t.write(b);a.onBodySent(b),E||await C()}t.end(),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(b){e(b)}finally{t.off("close",I).off("drain",I)}}p7n.exports=Sga});var Bht=H((lou,m7n)=>{"use strict";var x8=Em(),{kBodyUsed:mYe}=B2(),lyr=wt("node:assert"),{InvalidArgumentError:Gga}=Y0(),Fga=wt("node:events"),Zga=[300,301,302,303,307,308],I7n=Symbol("body"),vht=class{constructor(t){this[I7n]=t,this[mYe]=!1}async*[Symbol.asyncIterator](){lyr(!this[mYe],"disturbed"),this[mYe]=!0,yield*this[I7n]}},cyr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new Gga("maxRedirections must be a positive number");x8.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],this.redirectionLimitReached=!1,x8.isStream(this.opts.body)?(x8.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){lyr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[mYe]=!1,Fga.prototype.on.call(this.opts.body,"data",function(){this[mYe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new vht(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&x8.isIterable(this.opts.body)&&(this.opts.body=new vht(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||x8.isDisturbed(this.opts.body)?null:Lga(t,r),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=x8.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=Vga(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function Lga(e,t){if(Zga.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var Pga=Bht();function Wga({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new Pga(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}C7n.exports=Wga});var vYe=H((gou,R7n)=>{"use strict";var H$=wt("node:assert"),v7n=wt("node:net"),Oga=wt("node:http"),ohe=Em(),{channels:Rwe}=Awe(),Mga=Ljn(),Hga=Iwe(),{InvalidArgumentError:tw,InformationalError:Yga,ClientDestroyedError:Qga}=Y0(),Xga=iYe(),{kUrl:G8,kServerName:aae,kClient:Jga,kBusy:uyr,kConnect:Uga,kResuming:ahe,kRunning:EYe,kPending:SYe,kSize:bYe,kQueue:FX,kConnected:Kga,kConnecting:Nwe,kNeedDrain:lae,kKeepAliveDefaultTimeout:_7n,kHostHeader:jga,kPendingIdx:ZX,kRunningIdx:Y$,kError:zga,kPipelining:Tht,kKeepAliveTimeoutValue:qga,kMaxHeadersSize:$ga,kKeepAliveMaxTimeout:eAa,kKeepAliveTimeoutThreshold:tAa,kHeadersTimeout:rAa,kBodyTimeout:nAa,kStrictContentLength:iAa,kConnector:CYe,kMaxRedirections:sAa,kMaxRequests:gyr,kCounter:oAa,kClose:aAa,kDestroy:cAa,kDispatch:lAa,kInterceptors:y7n,kLocalAddress:_Ye,kMaxResponseSize:uAa,kOnError:gAa,kHTTPContext:rw,kMaxConcurrentStreams:AAa,kResume:yYe}=B2(),dAa=c7n(),pAa=f7n(),b7n=!1,cae=Symbol("kClosedResolve"),E7n=()=>{};function B7n(e){return e[Tht]??e[rw]?.defaultPipelining??1}var Ayr=class extends Hga{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,maxConcurrentStreams:k,allowH2:et}={}){if(super(),C!==void 0)throw new tw("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new tw("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new tw("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new tw("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new tw("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new tw("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new tw("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new tw("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new tw("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new tw("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new tw("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new tw("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new tw("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new tw("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new tw("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new tw("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||v7n.isIP(de)===0))throw new tw("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new tw("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new tw("autoSelectFamilyAttemptTimeout must be a positive number");if(et!=null&&typeof et!="boolean")throw new tw("allowH2 must be a valid boolean value");if(k!=null&&(typeof k!="number"||k<1))throw new tw("maxConcurrentStreams must be a positive integer, greater than 0");typeof fe!="function"&&(fe=Xga({...X,maxCachedSessions:ne,allowH2:et,socketPath:F,timeout:A,...Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),r?.Client&&Array.isArray(r.Client)?(this[y7n]=r.Client,b7n||(b7n=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[y7n]=[fAa({maxRedirections:ce})],this[G8]=ohe.parseOrigin(t),this[CYe]=fe,this[Tht]=Q??1,this[$ga]=n||Oga.maxHeaderSize,this[_7n]=b??4e3,this[eAa]=N??6e5,this[tAa]=B??2e3,this[qga]=this[_7n],this[aae]=null,this[_Ye]=de??null,this[ahe]=0,this[lae]=0,this[jga]=`host: ${this[G8].hostname}${this[G8].port?`:${this[G8].port}`:""}\r -`,this[nAa]=f??3e5,this[rAa]=a??3e5,this[iAa]=ae??!0,this[sAa]=ce,this[gyr]=ue,this[cae]=null,this[uAa]=be>-1?be:-1,this[AAa]=k??100,this[rw]=null,this[FX]=[],this[Y$]=0,this[ZX]=0,this[yYe]=ct=>dyr(this,ct),this[gAa]=ct=>w7n(this,ct)}get pipelining(){return this[Tht]}set pipelining(t){this[Tht]=t,this[yYe](!0)}get[SYe](){return this[FX].length-this[ZX]}get[EYe](){return this[ZX]-this[Y$]}get[bYe](){return this[FX].length-this[Y$]}get[Kga](){return!!this[rw]&&!this[Nwe]&&!this[rw].destroyed}get[uyr](){return!!(this[rw]?.busy(null)||this[bYe]>=(B7n(this)||1)||this[SYe]>0)}[Uga](t){T7n(this),this.once("connect",t)}[lAa](t,r){let n=t.origin||this[G8].origin,a=new Mga(n,t,r);return this[FX].push(a),this[ahe]||(ohe.bodyLength(a.body)==null&&ohe.isIterable(a.body)?(this[ahe]=1,queueMicrotask(()=>dyr(this))):this[yYe](!0)),this[ahe]&&this[lae]!==2&&this[uyr]&&(this[lae]=2),this[lae]<2}async[aAa](){return new Promise(t=>{this[bYe]?this[cae]=t:t(null)})}async[cAa](t){return new Promise(r=>{let n=this[FX].splice(this[ZX]);for(let o=0;o{this[cae]&&(this[cae](),this[cae]=null),r(null)};this[rw]?(this[rw].destroy(t,a),this[rw]=null):queueMicrotask(a),this[yYe]()})}},fAa=wht();function w7n(e,t){if(e[EYe]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){H$(e[ZX]===e[Y$]);let r=e[FX].splice(e[Y$]);for(let n=0;n{e[CYe]({host:t,hostname:r,protocol:n,port:a,servername:e[aae],localAddress:e[_Ye]},(f,I)=>{f?A(f):l(I)})});if(e.destroyed){ohe.destroy(o.on("error",E7n),new Qga);return}H$(o);try{e[rw]=o.alpnProtocol==="h2"?await pAa(e,o):await dAa(e,o)}catch(l){throw o.destroy().on("error",E7n),l}e[Nwe]=!1,o[oAa]=0,o[gyr]=e[gyr],o[Jga]=e,o[zga]=null,Rwe.connected.hasSubscribers&&Rwe.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],socket:o}),e.emit("connect",e[G8],[e])}catch(o){if(e.destroyed)return;if(e[Nwe]=!1,Rwe.connectError.hasSubscribers&&Rwe.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(H$(e[EYe]===0);e[SYe]>0&&e[FX][e[ZX]].servername===e[aae];){let l=e[FX][e[ZX]++];ohe.errorRequest(e,l,o)}else w7n(e,o);e.emit("connectionError",e[G8],[e],o)}e[yYe]()}function S7n(e){e[lae]=0,e.emit("drain",e[G8],[e])}function dyr(e,t){e[ahe]!==2&&(e[ahe]=2,IAa(e,t),e[ahe]=0,e[Y$]>256&&(e[FX].splice(0,e[Y$]),e[ZX]-=e[Y$],e[Y$]=0))}function IAa(e,t){for(;;){if(e.destroyed){H$(e[SYe]===0);return}if(e[cae]&&!e[bYe]){e[cae](),e[cae]=null;return}if(e[rw]&&e[rw].resume(),e[uyr])e[lae]=2;else if(e[lae]===2){t?(e[lae]=1,queueMicrotask(()=>S7n(e))):S7n(e);continue}if(e[SYe]===0||e[EYe]>=(B7n(e)||1))return;let r=e[FX][e[ZX]];if(e[G8].protocol==="https:"&&e[aae]!==r.servername){if(e[EYe]>0)return;e[aae]=r.servername,e[rw]?.destroy(new Yga("servername changed"),()=>{e[rw]=null,dyr(e)})}if(e[Nwe])return;if(!e[rw]){T7n(e);return}if(e[rw].destroyed||e[rw].busy(r))return;!r.aborted&&e[rw].write(r)?e[ZX]++:e[FX].splice(e[ZX],1)}}R7n.exports=Ayr});var pyr=H((dou,N7n)=>{"use strict";var Rht=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};N7n.exports=class{constructor(){this.head=this.tail=new Rht}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Rht),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var k7n=H((pou,D7n)=>{var{kFree:hAa,kConnected:mAa,kPending:CAa,kQueued:_Aa,kRunning:yAa,kSize:bAa}=B2(),che=Symbol("pool"),fyr=class{constructor(t){this[che]=t}get connected(){return this[che][mAa]}get free(){return this[che][hAa]}get pending(){return this[che][CAa]}get queued(){return this[che][_Aa]}get running(){return this[che][yAa]}get size(){return this[che][bAa]}};D7n.exports=fyr});var yyr=H((fou,M7n)=>{"use strict";var EAa=Iwe(),SAa=pyr(),{kConnected:Iyr,kSize:x7n,kRunning:G7n,kPending:F7n,kQueued:BYe,kBusy:vAa,kFree:BAa,kUrl:wAa,kClose:TAa,kDestroy:RAa,kDispatch:NAa}=B2(),DAa=k7n(),rV=Symbol("clients"),OZ=Symbol("needDrain"),wYe=Symbol("queue"),hyr=Symbol("closed resolve"),myr=Symbol("onDrain"),Z7n=Symbol("onConnect"),L7n=Symbol("onDisconnect"),V7n=Symbol("onConnectionError"),Cyr=Symbol("get dispatcher"),W7n=Symbol("add client"),O7n=Symbol("remove client"),P7n=Symbol("stats"),_yr=class extends EAa{constructor(){super(),this[wYe]=new SAa,this[rV]=[],this[BYe]=0;let t=this;this[myr]=function(n,a){let o=t[wYe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[BYe]--,l=!this.dispatch(A.opts,A.handler)}this[OZ]=l,!this[OZ]&&t[OZ]&&(t[OZ]=!1,t.emit("drain",n,[t,...a])),t[hyr]&&o.isEmpty()&&Promise.all(t[rV].map(A=>A.close())).then(t[hyr])},this[Z7n]=(r,n)=>{t.emit("connect",r,[t,...n])},this[L7n]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[V7n]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[P7n]=new DAa(this)}get[vAa](){return this[OZ]}get[Iyr](){return this[rV].filter(t=>t[Iyr]).length}get[BAa](){return this[rV].filter(t=>t[Iyr]&&!t[OZ]).length}get[F7n](){let t=this[BYe];for(let{[F7n]:r}of this[rV])t+=r;return t}get[G7n](){let t=0;for(let{[G7n]:r}of this[rV])t+=r;return t}get[x7n](){let t=this[BYe];for(let{[x7n]:r}of this[rV])t+=r;return t}get stats(){return this[P7n]}async[TAa](){this[wYe].isEmpty()?await Promise.all(this[rV].map(t=>t.close())):await new Promise(t=>{this[hyr]=t})}async[RAa](t){for(;;){let r=this[wYe].shift();if(!r)break;r.handler.onError(t)}await Promise.all(this[rV].map(r=>r.destroy(t)))}[NAa](t,r){let n=this[Cyr]();return n?n.dispatch(t,r)||(n[OZ]=!0,this[OZ]=!this[Cyr]()):(this[OZ]=!0,this[wYe].push({opts:t,handler:r}),this[BYe]++),!this[OZ]}[W7n](t){return t.on("drain",this[myr]).on("connect",this[Z7n]).on("disconnect",this[L7n]).on("connectionError",this[V7n]),this[rV].push(t),this[OZ]&&queueMicrotask(()=>{this[OZ]&&this[myr](t[wAa],[this,t])}),this}[O7n](t){t.close(()=>{let r=this[rV].indexOf(t);r!==-1&&this[rV].splice(r,1)}),this[OZ]=this[rV].some(r=>!r[OZ]&&r.closed!==!0&&r.destroyed!==!0)}};M7n.exports={PoolBase:_yr,kClients:rV,kNeedDrain:OZ,kAddClient:W7n,kRemoveClient:O7n,kGetDispatcher:Cyr}});var Dwe=H((Iou,J7n)=>{"use strict";var{PoolBase:kAa,kClients:H7n,kNeedDrain:xAa,kAddClient:GAa,kGetDispatcher:FAa}=yyr(),ZAa=vYe(),{InvalidArgumentError:byr}=Y0(),Y7n=Em(),{kUrl:Q7n,kInterceptors:LAa}=B2(),VAa=iYe(),Eyr=Symbol("options"),Syr=Symbol("connections"),X7n=Symbol("factory");function PAa(e,t){return new ZAa(e,t)}var vyr=class extends kAa{constructor(t,{connections:r,factory:n=PAa,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new byr("invalid connections");if(typeof n!="function")throw new byr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new byr("connect must be a function or an object");typeof a!="function"&&(a=VAa({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[LAa]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Syr]=r||null,this[Q7n]=Y7n.parseOrigin(t),this[Eyr]={...Y7n.deepClone(E),connect:a,allowH2:b},this[Eyr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[X7n]=n}[FAa](){for(let t of this[H7n])if(!t[xAa])return t;if(!this[Syr]||this[H7n].length{"use strict";var{BalancedPoolMissingUpstreamError:WAa,InvalidArgumentError:OAa}=Y0(),{PoolBase:MAa,kClients:SG,kNeedDrain:TYe,kAddClient:HAa,kRemoveClient:YAa,kGetDispatcher:QAa}=yyr(),XAa=Dwe(),{kUrl:Byr,kInterceptors:JAa}=B2(),{parseOrigin:U7n}=Em(),K7n=Symbol("factory"),Nht=Symbol("options"),j7n=Symbol("kGreatestCommonDivisor"),lhe=Symbol("kCurrentWeight"),uhe=Symbol("kIndex"),GM=Symbol("kWeight"),Dht=Symbol("kMaxWeightPerServer"),kht=Symbol("kErrorPenalty");function UAa(e,t){if(e===0)return t;for(;t!==0;){let r=t;t=e%t,e=r}return e}function KAa(e,t){return new XAa(e,t)}var wyr=class extends MAa{constructor(t=[],{factory:r=KAa,...n}={}){if(super(),this[Nht]=n,this[uhe]=-1,this[lhe]=0,this[Dht]=this[Nht].maxWeightPerServer||100,this[kht]=this[Nht].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new OAa("factory must be a function.");this[JAa]=n.interceptors?.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[K7n]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=U7n(t).origin;if(this[SG].find(a=>a[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[K7n](r,Object.assign({},this[Nht]));this[HAa](n),n.on("connect",()=>{n[GM]=Math.min(this[Dht],n[GM]+this[kht])}),n.on("connectionError",()=>{n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats())});for(let a of this[SG])a[GM]=this[Dht];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let t=0;for(let r=0;ra[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[YAa](n),this}get upstreams(){return this[SG].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[Byr].origin)}[QAa](){if(this[SG].length===0)throw new WAa;if(!this[SG].find(o=>!o[TYe]&&o.closed!==!0&&o.destroyed!==!0)||this[SG].map(o=>o[TYe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[SG].findIndex(o=>!o[TYe]);for(;n++this[SG][a][GM]&&!o[TYe]&&(a=this[uhe]),this[uhe]===0&&(this[lhe]=this[lhe]-this[j7n],this[lhe]<=0&&(this[lhe]=this[Dht])),o[GM]>=this[lhe]&&!o[TYe])return o}return this[lhe]=this[SG][a][GM],this[uhe]=a,this[SG][a]}};z7n.exports=wyr});var kwe=H((mou,szn)=>{"use strict";var{InvalidArgumentError:xht}=Y0(),{kClients:uae,kRunning:$7n,kClose:jAa,kDestroy:zAa,kDispatch:qAa,kInterceptors:$Aa}=B2(),eda=Iwe(),tda=Dwe(),rda=vYe(),nda=Em(),ida=wht(),ezn=Symbol("onConnect"),tzn=Symbol("onDisconnect"),rzn=Symbol("onConnectionError"),sda=Symbol("maxRedirections"),nzn=Symbol("onDrain"),izn=Symbol("factory"),Tyr=Symbol("options");function oda(e,t){return t&&t.connections===1?new rda(e,t):new tda(e,t)}var Ryr=class extends eda{constructor({factory:t=oda,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new xht("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new xht("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new xht("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[$Aa]=a.interceptors?.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[ida({maxRedirections:r})],this[Tyr]={...nda.deepClone(a),connect:n},this[Tyr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[sda]=r,this[izn]=t,this[uae]=new Map,this[nzn]=(o,l)=>{this.emit("drain",o,[this,...l])},this[ezn]=(o,l)=>{this.emit("connect",o,[this,...l])},this[tzn]=(o,l,A)=>{this.emit("disconnect",o,[this,...l],A)},this[rzn]=(o,l,A)=>{this.emit("connectionError",o,[this,...l],A)}}get[$7n](){let t=0;for(let r of this[uae].values())t+=r[$7n];return t}[qAa](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new xht("opts.origin must be a non-empty string or URL.");let a=this[uae].get(n);return a||(a=this[izn](t.origin,this[Tyr]).on("drain",this[nzn]).on("connect",this[ezn]).on("disconnect",this[tzn]).on("connectionError",this[rzn]),this[uae].set(n,a)),a.dispatch(t,r)}async[jAa](){let t=[];for(let r of this[uae].values())t.push(r.close());this[uae].clear(),await Promise.all(t)}async[zAa](t){let r=[];for(let n of this[uae].values())r.push(n.destroy(t));this[uae].clear(),await Promise.all(r)}};szn.exports=Ryr});var kyr=H((Cou,lzn)=>{"use strict";var{kProxy:ada,kClose:cda,kDestroy:lda,kInterceptors:uda}=B2(),{URL:RYe}=wt("node:url"),gda=kwe(),Ada=Dwe(),dda=Iwe(),{InvalidArgumentError:Zht,RequestAbortedError:pda,SecureProxyConnectionError:fda}=Y0(),ozn=iYe(),Ght=Symbol("proxy agent"),Fht=Symbol("proxy client"),NYe=Symbol("proxy headers"),Nyr=Symbol("request tls settings"),azn=Symbol("proxy tls settings"),czn=Symbol("connect endpoint function");function Ida(e){return e==="https:"?443:80}function hda(e,t){return new Ada(e,t)}var mda=()=>{},Dyr=class extends dda{constructor(t){if(super(),!t||typeof t=="object"&&!(t instanceof RYe)&&!t.uri)throw new Zht("Proxy uri is mandatory");let{clientFactory:r=hda}=t;if(typeof r!="function")throw new Zht("Proxy opts.clientFactory must be a function.");let n=this.#e(t),{href:a,origin:o,port:l,protocol:A,username:f,password:I,hostname:C}=n;if(this[ada]={uri:a,protocol:A},this[uda]=t.interceptors?.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],this[Nyr]=t.requestTls,this[azn]=t.proxyTls,this[NYe]=t.headers||{},t.auth&&t.token)throw new Zht("opts.auth cannot be used in combination with opts.token");t.auth?this[NYe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[NYe]["proxy-authorization"]=t.token:f&&I&&(this[NYe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(f)}:${decodeURIComponent(I)}`).toString("base64")}`);let b=ozn({...t.proxyTls});this[czn]=ozn({...t.requestTls}),this[Fht]=r(n,{connect:b}),this[Ght]=new gda({...t,connect:async(E,N)=>{let B=E.host;E.port||(B+=`:${Ida(E.protocol)}`);try{let{socket:F,statusCode:Q}=await this[Fht].connect({origin:o,port:l,path:B,signal:E.signal,headers:{...this[NYe],host:E.host},servername:this[azn]?.servername||C});if(Q!==200&&(F.on("error",mda).destroy(),N(new pda(`Proxy response (${Q}) !== 200 when HTTP Tunneling`))),E.protocol!=="https:"){N(null,F);return}let X;this[Nyr]?X=this[Nyr].servername:X=E.servername,this[czn]({...E,servername:X,httpSocket:F},N)}catch(F){F.code==="ERR_TLS_CERT_ALTNAME_INVALID"?N(new fda(F)):N(F)}}})}dispatch(t,r){let n=Cda(t.headers);if(_da(n),n&&!("host"in n)&&!("Host"in n)){let{host:a}=new RYe(t.origin);n.host=a}return this[Ght].dispatch({...t,headers:n},r)}#e(t){return typeof t=="string"?new RYe(t):t instanceof RYe?t:new RYe(t.uri)}async[cda](){await this[Ght].close(),await this[Fht].close()}async[lda](){await this[Ght].destroy(),await this[Fht].destroy()}};function Cda(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new Zht("Proxy-Authorization should be sent in ProxyAgent constructor")}lzn.exports=Dyr});var fzn=H((_ou,pzn)=>{"use strict";var yda=Iwe(),{kClose:bda,kDestroy:Eda,kClosed:uzn,kDestroyed:gzn,kDispatch:Sda,kNoProxyAgent:DYe,kHttpProxyAgent:gae,kHttpsProxyAgent:ghe}=B2(),Azn=kyr(),vda=kwe(),Bda={"http:":80,"https:":443},dzn=!1,xyr=class extends yda{#e=null;#t=null;#n=null;constructor(t={}){super(),this.#n=t,dzn||(dzn=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:r,httpsProxy:n,noProxy:a,...o}=t;this[DYe]=new vda(o);let l=r??process.env.http_proxy??process.env.HTTP_PROXY;l?this[gae]=new Azn({...o,uri:l}):this[gae]=this[DYe];let A=n??process.env.https_proxy??process.env.HTTPS_PROXY;A?this[ghe]=new Azn({...o,uri:A}):this[ghe]=this[gae],this.#s()}[Sda](t,r){let n=new URL(t.origin);return this.#r(n).dispatch(t,r)}async[bda](){await this[DYe].close(),this[gae][uzn]||await this[gae].close(),this[ghe][uzn]||await this[ghe].close()}async[Eda](t){await this[DYe].destroy(t),this[gae][gzn]||await this[gae].destroy(t),this[ghe][gzn]||await this[ghe].destroy(t)}#r(t){let{protocol:r,host:n,port:a}=t;return n=n.replace(/:\d*$/,"").toLowerCase(),a=Number.parseInt(a,10)||Bda[r]||0,this.#i(n,a)?r==="https:"?this[ghe]:this[gae]:this[DYe]}#i(t,r){if(this.#o&&this.#s(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let n=0;n{"use strict";var xwe=wt("node:assert"),{kRetryHandlerDefaultRetry:Izn}=B2(),{RequestRetryError:kYe}=Y0(),{isDisturbed:hzn,parseHeaders:wda,parseRangeHeader:mzn,wrapRequestBody:Tda}=Em();function Rda(e){let t=Date.now();return new Date(e).getTime()-t}var Gyr=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts={...a,body:Tda(t.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[Izn],retryAfter:E??!0,maxTimeout:A??30*1e3,minTimeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[Izn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,minTimeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X}=r;if(l&&l!=="UND_ERR_REQ_RETRY"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ae=A?.["retry-after"];ae&&(ae=Number(ae),ae=Number.isNaN(ae)?Rda(ae):ae*1e3);let ne=ae>0?Math.min(ae,E):Math.min(b*N**(X-1),E);setTimeout(()=>a(null),ne)}onHeaders(t,r,n,a){let o=wda(r);if(this.retryCount+=1,t>=300)return this.retryOpts.statusCodes.includes(t)===!1?this.handler.onHeaders(t,r,n,a):(this.abort(new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,t!==206&&(this.start>0||t!==200))return this.abort(new kYe("server does not support the range header and the payload was partially consumed",t,{headers:o,data:{count:this.retryCount}})),!1;let A=mzn(o["content-range"]);if(!A)return this.abort(new kYe("Content-Range mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new kYe("ETag mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;let{start:f,size:I,end:C=I}=A;return xwe(this.start===f,"content-range mismatch"),xwe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=mzn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;xwe(f!=null&&Number.isFinite(f),"content-range mismatch"),xwe(C!=null&&Number.isFinite(C),"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return xwe(Number.isFinite(this.start)),xwe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(t,r,n,a)}let l=new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||hzn(this.opts.body))return this.handler.onError(t);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||hzn(this.opts.body))return this.handler.onError(n);if(this.start!==0){let a={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(a["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...a}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};Czn.exports=Gyr});var yzn=H((bou,_zn)=>{"use strict";var Nda=rYe(),Dda=Lht(),Fyr=class extends Nda{#e=null;#t=null;constructor(t,r={}){super(r),this.#e=t,this.#t=r}dispatch(t,r){let n=new Dda({...t,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:r});return this.#e.dispatch(t,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};_zn.exports=Fyr});var Oyr=H((Eou,Nzn)=>{"use strict";var Bzn=wt("node:assert"),{Readable:kda}=wt("node:stream"),{RequestAbortedError:wzn,NotSupportedError:xda,InvalidArgumentError:Gda,AbortError:Zyr}=Y0(),Tzn=Em(),{ReadableStreamFrom:Fda}=Em(),$W=Symbol("kConsume"),xYe=Symbol("kReading"),Aae=Symbol("kBody"),bzn=Symbol("kAbort"),Rzn=Symbol("kContentType"),Ezn=Symbol("kContentLength"),Zda=()=>{},Lyr=class extends kda{constructor({resume:t,abort:r,contentType:n="",contentLength:a,highWaterMark:o=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:o}),this._readableState.dataEmitted=!1,this[bzn]=r,this[$W]=null,this[Aae]=null,this[Rzn]=n,this[Ezn]=a,this[xYe]=!1}destroy(t){return!t&&!this._readableState.endEmitted&&(t=new wzn),t&&this[bzn](),super.destroy(t)}_destroy(t,r){this[xYe]?r(t):setImmediate(()=>{r(t)})}on(t,...r){return(t==="data"||t==="readable")&&(this[xYe]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[xYe]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[$W]&&t!==null?(Pyr(this[$W],t),this[xYe]?super.push(t):!0):super.push(t)}async text(){return GYe(this,"text")}async json(){return GYe(this,"json")}async blob(){return GYe(this,"blob")}async bytes(){return GYe(this,"bytes")}async arrayBuffer(){return GYe(this,"arrayBuffer")}async formData(){throw new xda}get bodyUsed(){return Tzn.isDisturbed(this)}get body(){return this[Aae]||(this[Aae]=Fda(this),this[$W]&&(this[Aae].getReader(),Bzn(this[Aae].locked))),this[Aae]}async dump(t){let r=Number.isFinite(t?.limit)?t.limit:131072,n=t?.signal;if(n!=null&&(typeof n!="object"||!("aborted"in n)))throw new Gda("signal must be an AbortSignal");return n?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((a,o)=>{this[Ezn]>r&&this.destroy(new Zyr);let l=()=>{this.destroy(n.reason??new Zyr)};n?.addEventListener("abort",l),this.on("close",function(){n?.removeEventListener("abort",l),n?.aborted?o(n.reason??new Zyr):a(null)}).on("error",Zda).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Lda(e){return e[Aae]&&e[Aae].locked===!0||e[$W]}function Vda(e){return Tzn.isDisturbed(e)||Lda(e)}async function GYe(e,t){return Bzn(!e[$W]),new Promise((r,n)=>{if(Vda(e)){let a=e._readableState;a.destroyed&&a.closeEmitted===!1?e.on("error",o=>{n(o)}).on("close",()=>{n(new TypeError("unusable"))}):n(a.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[$W]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){Wyr(this[$W],a)}).on("close",function(){this[$W].body!==null&&Wyr(this[$W],new wzn)}),Pda(e[$W])})})}function Pda(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let r=t.bufferIndex,n=t.buffer.length;for(let a=r;a2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return r.utf8Slice(a,n)}function Szn(e,t){if(e.length===0||t===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let r=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),n=0;for(let a=0;a{var Wda=wt("node:assert"),{ResponseStatusCodeError:Dzn}=Y0(),{chunksDecode:kzn}=Oyr(),Oda=128*1024;async function Mda({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Wda(t);let l=[],A=0;try{for await(let b of t)if(l.push(b),A+=b.length,A>Oda){l=[],A=0;break}}catch{l=[],A=0}let f=`Response status code ${n}${a?`: ${a}`:""}`;if(n===204||!r||!A){queueMicrotask(()=>e(new Dzn(f,n,o)));return}let I=Error.stackTraceLimit;Error.stackTraceLimit=0;let C;try{xzn(r)?C=JSON.parse(kzn(l,A)):Gzn(r)&&(C=kzn(l,A))}catch{}finally{Error.stackTraceLimit=I}queueMicrotask(()=>e(new Dzn(f,n,o,C)))}var xzn=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",Gzn=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";Fzn.exports={getResolveErrorBodyCallback:Mda,isContentTypeApplicationJson:xzn,isContentTypeText:Gzn}});var Vzn=H((vou,Hyr)=>{"use strict";var Hda=wt("node:assert"),{Readable:Yda}=Oyr(),{InvalidArgumentError:Gwe,RequestAbortedError:Zzn}=Y0(),FM=Em(),{getResolveErrorBodyCallback:Qda}=Myr(),{AsyncResource:Xda}=wt("node:async_hooks"),Vht=class extends Xda{constructor(t,r){if(!t||typeof t!="object")throw new Gwe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new Gwe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new Gwe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Gwe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new Gwe("invalid method");if(A&&typeof A!="function")throw new Gwe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw FM.isStream(l)&&FM.destroy(l.on("error",FM.nop),b),b}this.method=a,this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,this.signal=n,this.reason=null,this.removeAbortListener=null,FM.isStream(l)&&l.on("error",b=>{this.onError(b)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new Zzn:this.removeAbortListener=FM.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new Zzn,this.res?FM.destroy(this.res,this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(t,r){if(this.reason){t(this.reason);return}Hda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?FM.parseRawHeaders(r):FM.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let E=I==="raw"?FM.parseHeaders(r):b,N=E["content-type"],B=E["content-length"],F=new Yda({resume:n,abort:A,contentType:N,contentLength:this.method!=="HEAD"&&B?Number(B):null,highWaterMark:C});this.removeAbortListener&&F.on("close",this.removeAbortListener),this.callback=null,this.res=F,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Qda,null,{callback:o,body:F,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:F,context:f}))}onData(t){return this.res.push(t)}onComplete(t){FM.parseHeaders(t,this.trailers),this.res.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{FM.destroy(r,t)})),a&&(this.body=null,FM.destroy(a,t)),this.removeAbortListener&&(r?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function Lzn(e,t){if(t===void 0)return new Promise((r,n)=>{Lzn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Vht(e,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}Hyr.exports=Lzn;Hyr.exports.RequestHandler=Vht});var FYe=H((Bou,Ozn)=>{var{addAbortListener:Jda}=Em(),{RequestAbortedError:Uda}=Y0(),Fwe=Symbol("kListener"),F8=Symbol("kSignal");function Pzn(e){e.abort?e.abort(e[F8]?.reason):e.reason=e[F8]?.reason??new Uda,Wzn(e)}function Kda(e,t){if(e.reason=null,e[F8]=null,e[Fwe]=null,!!t){if(t.aborted){Pzn(e);return}e[F8]=t,e[Fwe]=()=>{Pzn(e)},Jda(e[F8],e[Fwe])}}function Wzn(e){e[F8]&&("removeEventListener"in e[F8]?e[F8].removeEventListener("abort",e[Fwe]):e[F8].removeListener("abort",e[Fwe]),e[F8]=null,e[Fwe]=null)}Ozn.exports={addSignal:Kda,removeSignal:Wzn}});var Qzn=H((wou,Yzn)=>{"use strict";var jda=wt("node:assert"),{finished:zda,PassThrough:qda}=wt("node:stream"),{InvalidArgumentError:Zwe,InvalidReturnValueError:$da}=Y0(),LX=Em(),{getResolveErrorBodyCallback:epa}=Myr(),{AsyncResource:tpa}=wt("node:async_hooks"),{addSignal:rpa,removeSignal:Mzn}=FYe(),Yyr=class extends tpa{constructor(t,r,n){if(!t||typeof t!="object")throw new Zwe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new Zwe("invalid callback");if(typeof r!="function")throw new Zwe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Zwe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new Zwe("invalid method");if(f&&typeof f!="function")throw new Zwe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw LX.isStream(A)&&LX.destroy(A.on("error",LX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,LX.isStream(A)&&A.on("error",b=>{this.onError(b)}),rpa(this,a)}onConnect(t,r){if(this.reason){t(this.reason);return}jda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?LX.parseRawHeaders(r):LX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?LX.parseHeaders(r):C)["content-type"];b=new qda,this.callback=null,this.runInAsyncScope(epa,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new $da("expected Writable");zda(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&LX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState?.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;Mzn(this),r&&(this.trailers=LX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;Mzn(this),this.factory=null,r?(this.res=null,LX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,LX.destroy(o,t))}};function Hzn(e,t,r){if(r===void 0)return new Promise((n,a)=>{Hzn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new Yyr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e?.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}Yzn.exports=Hzn});var Kzn=H((Tou,Uzn)=>{"use strict";var{Readable:Jzn,Duplex:npa,PassThrough:ipa}=wt("node:stream"),{InvalidArgumentError:ZYe,InvalidReturnValueError:spa,RequestAbortedError:Qyr}=Y0(),ZM=Em(),{AsyncResource:opa}=wt("node:async_hooks"),{addSignal:apa,removeSignal:cpa}=FYe(),Xzn=wt("node:assert"),Lwe=Symbol("resume"),Xyr=class extends Jzn{constructor(){super({autoDestroy:!0}),this[Lwe]=null}_read(){let{[Lwe]:t}=this;t&&(this[Lwe]=null,t())}_destroy(t,r){this._read(),r(t)}},Jyr=class extends Jzn{constructor(t){super({autoDestroy:!0}),this[Lwe]=t}_read(){this[Lwe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Qyr),r(t)}},Uyr=class extends opa{constructor(t,r){if(!t||typeof t!="object")throw new ZYe("invalid opts");if(typeof r!="function")throw new ZYe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new ZYe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new ZYe("invalid method");if(l&&typeof l!="function")throw new ZYe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new Xyr().on("error",ZM.nop),this.ret=new npa({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f?.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[Lwe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Qyr),B&&f&&B(),ZM.destroy(C,f),ZM.destroy(b,f),ZM.destroy(E,f),cpa(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,apa(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(this.reason){t(this.reason);return}Xzn(!a,"pipeline cannot be retried"),Xzn(!n.destroyed),this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new Jyr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",ZM.nop),f}if(!A||typeof A.on!="function")throw new spa("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;ZM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||ZM.destroy(f,new Qyr)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,ZM.destroy(r,t)}};function lpa(e,t){try{let r=new Uyr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new ipa().destroy(r)}}Uzn.exports=lpa});var tqn=H((Rou,eqn)=>{"use strict";var{InvalidArgumentError:Kyr,SocketError:upa}=Y0(),{AsyncResource:gpa}=wt("node:async_hooks"),jzn=Em(),{addSignal:Apa,removeSignal:zzn}=FYe(),qzn=wt("node:assert"),jyr=class extends gpa{constructor(t,r){if(!t||typeof t!="object")throw new Kyr("invalid opts");if(typeof r!="function")throw new Kyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Kyr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,Apa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}qzn(this.callback),this.abort=t,this.context=null}onHeaders(){throw new upa("bad upgrade",null)}onUpgrade(t,r,n){qzn(t===101);let{callback:a,opaque:o,context:l}=this;zzn(this),this.callback=null;let A=this.responseHeaders==="raw"?jzn.parseRawHeaders(r):jzn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;zzn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $zn(e,t){if(t===void 0)return new Promise((r,n)=>{$zn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new jyr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eqn.exports=$zn});var oqn=H((Nou,sqn)=>{"use strict";var dpa=wt("node:assert"),{AsyncResource:ppa}=wt("node:async_hooks"),{InvalidArgumentError:zyr,SocketError:fpa}=Y0(),rqn=Em(),{addSignal:Ipa,removeSignal:nqn}=FYe(),qyr=class extends ppa{constructor(t,r){if(!t||typeof t!="object")throw new zyr("invalid opts");if(typeof r!="function")throw new zyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new zyr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,Ipa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}dpa(this.callback),this.abort=t,this.context=r}onHeaders(){throw new fpa("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nqn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rqn.parseRawHeaders(r):rqn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nqn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iqn(e,t){if(t===void 0)return new Promise((r,n)=>{iqn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new qyr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sqn.exports=iqn});var aqn=H((Dou,Vwe)=>{"use strict";Vwe.exports.request=Vzn();Vwe.exports.stream=Qzn();Vwe.exports.pipeline=Kzn();Vwe.exports.upgrade=tqn();Vwe.exports.connect=oqn()});var ebr=H((kou,cqn)=>{"use strict";var{UndiciError:hpa}=Y0(),$yr=class e extends hpa{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cqn.exports={MockNotMatchedError:$yr}});var Pwe=H((xou,lqn)=>{"use strict";lqn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var LYe=H((Gou,_qn)=>{"use strict";var{MockNotMatchedError:Ahe}=ebr(),{kDispatches:Pht,kMockAgent:mpa,kOriginalDispatch:Cpa,kOrigin:_pa,kGetNetConnect:ypa}=Pwe(),{buildURL:bpa}=Em(),{STATUS_CODES:Epa}=wt("node:http"),{types:{isPromise:Spa}}=wt("node:util");function Q$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gqn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function Aqn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=Aqn(t,r);if(!Q$(n,a))return!1}return!0}function uqn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function vpa(e,{path:t,method:r,body:n,headers:a}){let o=Q$(e.path,t),l=Q$(e.method,r),A=typeof e.body<"u"?Q$(e.body,n):!0,f=dqn(e,a);return o&&l&&A&&f}function pqn(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function fqn(e,t){let r=t.query?bpa(t.path,t.query):t.path,n=typeof r=="string"?uqn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>Q$(uqn(o),n));if(a.length===0)throw new Ahe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>Q$(o,t.method)),a.length===0)throw new Ahe(`Mock dispatch not matched for method '${t.method}' on path '${n}'`);if(a=a.filter(({body:o})=>typeof o<"u"?Q$(o,t.body):!0),a.length===0)throw new Ahe(`Mock dispatch not matched for body '${t.body}' on path '${n}'`);if(a=a.filter(o=>dqn(o,t.headers)),a.length===0){let o=typeof t.headers=="object"?JSON.stringify(t.headers):t.headers;throw new Ahe(`Mock dispatch not matched for headers '${o}' on path '${n}'`)}return a[0]}function Bpa(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function tbr(e,t){let r=e.findIndex(n=>n.consumed?vpa(n,t):!1);r!==-1&&e.splice(r,1)}function Iqn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function rbr(e){let t=Object.keys(e),r=[];for(let n=0;n=E,n.pending=b0?setTimeout(()=>{N(this[Pht])},I):N(this[Pht]);function N(F,Q=o){let X=Array.isArray(e.headers)?nbr(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(Spa(ae)){ae.then(ue=>N(F,ue));return}let ne=pqn(ae),ce=rbr(l),fe=rbr(A);t.onConnect?.(ue=>t.onError(ue),null),t.onHeaders?.(a,ce,B,hqn(a)),t.onData?.(Buffer.from(ne)),t.onComplete?.(fe),tbr(F,r)}function B(){}return!0}function Tpa(){let e=this[mpa],t=this[_pa],r=this[Cpa];return function(a,o){if(e.isMockActive)try{mqn.call(this,a,o)}catch(l){if(l instanceof Ahe){let A=e[ypa]();if(A===!1)throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(Cqn(A,t))r.call(this,a,o);else throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function Cqn(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>Q$(n,r.host)))}function Rpa(e){if(e){let{agent:t,...r}=e;return r}}_qn.exports={getResponseData:pqn,getMockDispatch:fqn,addMockDispatch:Bpa,deleteMockDispatch:tbr,buildKey:Iqn,generateKeyValues:rbr,matchValue:Q$,getResponse:wpa,getStatusText:hqn,mockDispatch:mqn,buildMockDispatch:Tpa,checkNetConnect:Cqn,buildMockOptions:Rpa,getHeaderByName:Aqn,buildHeadersFromArray:nbr}});var ubr=H((Fou,lbr)=>{"use strict";var{getResponseData:Npa,buildKey:Dpa,addMockDispatch:ibr}=LYe(),{kDispatches:Wht,kDispatchKey:Oht,kDefaultHeaders:sbr,kDefaultTrailers:obr,kContentLength:abr,kMockDispatch:Mht}=Pwe(),{InvalidArgumentError:Z8}=Y0(),{buildURL:kpa}=Em(),Wwe=class{constructor(t){this[Mht]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("waitInMs must be a valid integer > 0");return this[Mht].delay=t,this}persist(){return this[Mht].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("repeatTimes must be a valid integer > 0");return this[Mht].times=t,this}},cbr=class{constructor(t,r){if(typeof t!="object")throw new Z8("opts must be an object");if(typeof t.path>"u")throw new Z8("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=kpa(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Oht]=Dpa(t),this[Wht]=r,this[sbr]={},this[obr]={},this[abr]=!1}createMockScopeDispatchData({statusCode:t,data:r,responseOptions:n}){let a=Npa(r),o=this[abr]?{"content-length":a.length}:{},l={...this[sbr],...o,...n.headers},A={...this[obr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t){if(typeof t.statusCode>"u")throw new Z8("statusCode must be defined");if(typeof t.responseOptions!="object"||t.responseOptions===null)throw new Z8("responseOptions must be an object")}reply(t){if(typeof t=="function"){let o=A=>{let f=t(A);if(typeof f!="object"||f===null)throw new Z8("reply options callback must return an object");let I={data:"",responseOptions:{},...f};return this.validateReplyParameters(I),{...this.createMockScopeDispatchData(I)}},l=ibr(this[Wht],this[Oht],o);return new Wwe(l)}let r={statusCode:t,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(r);let n=this.createMockScopeDispatchData(r),a=ibr(this[Wht],this[Oht],n);return new Wwe(a)}replyWithError(t){if(typeof t>"u")throw new Z8("error must be defined");let r=ibr(this[Wht],this[Oht],{error:t});return new Wwe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new Z8("headers must be defined");return this[sbr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new Z8("trailers must be defined");return this[obr]=t,this}replyContentLength(){return this[abr]=!0,this}};lbr.exports.MockInterceptor=cbr;lbr.exports.MockScope=Wwe});var dbr=H((Zou,wqn)=>{"use strict";var{promisify:xpa}=wt("node:util"),Gpa=vYe(),{buildMockDispatch:Fpa}=LYe(),{kDispatches:yqn,kMockAgent:bqn,kClose:Eqn,kOriginalClose:Sqn,kOrigin:vqn,kOriginalDispatch:Zpa,kConnected:gbr}=Pwe(),{MockInterceptor:Lpa}=ubr(),Bqn=B2(),{InvalidArgumentError:Vpa}=Y0(),Abr=class extends Gpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Vpa("Argument opts.agent must implement Agent");this[bqn]=r.agent,this[vqn]=t,this[yqn]=[],this[gbr]=1,this[Zpa]=this.dispatch,this[Sqn]=this.close.bind(this),this.dispatch=Fpa.call(this),this.close=this[Eqn]}get[Bqn.kConnected](){return this[gbr]}intercept(t){return new Lpa(t,this[yqn])}async[Eqn](){await xpa(this[Sqn])(),this[gbr]=0,this[bqn][Bqn.kClients].delete(this[vqn])}};wqn.exports=Abr});var Ibr=H((Lou,Gqn)=>{"use strict";var{promisify:Ppa}=wt("node:util"),Wpa=Dwe(),{buildMockDispatch:Opa}=LYe(),{kDispatches:Tqn,kMockAgent:Rqn,kClose:Nqn,kOriginalClose:Dqn,kOrigin:kqn,kOriginalDispatch:Mpa,kConnected:pbr}=Pwe(),{MockInterceptor:Hpa}=ubr(),xqn=B2(),{InvalidArgumentError:Ypa}=Y0(),fbr=class extends Wpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Ypa("Argument opts.agent must implement Agent");this[Rqn]=r.agent,this[kqn]=t,this[Tqn]=[],this[pbr]=1,this[Mpa]=this.dispatch,this[Dqn]=this.close.bind(this),this.dispatch=Opa.call(this),this.close=this[Nqn]}get[xqn.kConnected](){return this[pbr]}intercept(t){return new Hpa(t,this[Tqn])}async[Nqn](){await Ppa(this[Dqn])(),this[pbr]=0,this[Rqn][xqn.kClients].delete(this[kqn])}};Gqn.exports=fbr});var Zqn=H((Pou,Fqn)=>{"use strict";var Qpa={pronoun:"it",is:"is",was:"was",this:"this"},Xpa={pronoun:"they",is:"are",was:"were",this:"these"};Fqn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Qpa:Xpa,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var Vqn=H((Oou,Lqn)=>{"use strict";var{Transform:Jpa}=wt("node:stream"),{Console:Upa}=wt("node:console"),Kpa=process.versions.icu?"\u2705":"Y ",jpa=process.versions.icu?"\u274C":"N ";Lqn.exports=class{constructor({disableColors:t}={}){this.transform=new Jpa({transform(r,n,a){a(null,r)}}),this.logger=new Upa({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?Kpa:jpa,Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var Mqn=H((Mou,Oqn)=>{"use strict";var{kClients:dhe}=B2(),zpa=kwe(),{kAgent:hbr,kMockAgentSet:Hht,kMockAgentGet:Pqn,kDispatches:mbr,kIsMockActive:Yht,kNetConnect:phe,kGetNetConnect:qpa,kOptions:Qht,kFactory:Xht}=Pwe(),$pa=dbr(),efa=Ibr(),{matchValue:tfa,buildMockOptions:rfa}=LYe(),{InvalidArgumentError:Wqn,UndiciError:nfa}=Y0(),ifa=rYe(),sfa=Zqn(),ofa=Vqn(),Cbr=class extends ifa{constructor(t){if(super(t),this[phe]=!0,this[Yht]=!0,t?.agent&&typeof t.agent.dispatch!="function")throw new Wqn("Argument opts.agent must implement Agent");let r=t?.agent?t.agent:new zpa(t);this[hbr]=r,this[dhe]=r[dhe],this[Qht]=rfa(t)}get(t){let r=this[Pqn](t);return r||(r=this[Xht](t),this[Hht](t,r)),r}dispatch(t,r){return this.get(t.origin),this[hbr].dispatch(t,r)}async close(){await this[hbr].close(),this[dhe].clear()}deactivate(){this[Yht]=!1}activate(){this[Yht]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[phe])?this[phe].push(t):this[phe]=[t];else if(typeof t>"u")this[phe]=!0;else throw new Wqn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[phe]=!1}get isMockActive(){return this[Yht]}[Hht](t,r){this[dhe].set(t,r)}[Xht](t){let r=Object.assign({agent:this},this[Qht]);return this[Qht]&&this[Qht].connections===1?new $pa(t,r):new efa(t,r)}[Pqn](t){let r=this[dhe].get(t);if(r)return r;if(typeof t!="string"){let n=this[Xht]("http://localhost:9999");return this[Hht](t,n),n}for(let[n,a]of Array.from(this[dhe]))if(a&&typeof n!="string"&&tfa(n,t)){let o=this[Xht](t);return this[Hht](t,o),o[mbr]=a[mbr],o}}[qpa](){return this[phe]}pendingInterceptors(){let t=this[dhe];return Array.from(t.entries()).flatMap(([r,n])=>n[mbr].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new ofa}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new sfa("interceptor","interceptors").pluralize(r.length);throw new nfa(` +`,"latin1"),r!==null&&a!==r){if(n[eyr])throw new ihe;process.emitWarning(new ihe)}t[Ov].timeout&&t[Ov].timeoutType===wwe&&t[Ov].timeout.refresh&&t[Ov].timeout.refresh(),n[iae]()}}destroy(t){let{socket:r,client:n,abort:a}=this;r[sae]=!1,t&&(Af(n[EG]<=1,"pipeline should only contain this request"),a(t))}};a7n.exports=sga});var f7n=H((lou,p7n)=>{"use strict";var xM=wt("node:assert"),{pipeline:gga}=wt("node:stream"),EC=Em(),{RequestContentLengthMismatchError:iyr,RequestAbortedError:l7n,SocketError:hYe,InformationalError:syr}=Y0(),{kUrl:yht,kReset:Eht,kClient:Twe,kRunning:Sht,kPending:Aga,kQueue:she,kPendingIdx:oyr,kRunningIdx:k8,kError:GX,kSocket:tD,kStrictContentLength:dga,kOnError:ayr,kMaxConcurrentStreams:d7n,kHTTP2Session:xX,kResume:oae,kSize:pga,kHTTPContext:fga}=B2(),M$=Symbol("open streams"),u7n=!1,bht;try{bht=wt("node:http2")}catch{bht={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:Iga,HTTP2_HEADER_METHOD:hga,HTTP2_HEADER_PATH:mga,HTTP2_HEADER_SCHEME:Cga,HTTP2_HEADER_CONTENT_LENGTH:_ga,HTTP2_HEADER_EXPECT:yga,HTTP2_HEADER_STATUS:bga}}=bht;function Ega(e){let t=[];for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let a of n)t.push(Buffer.from(r),Buffer.from(a));else t.push(Buffer.from(r),Buffer.from(n));return t}async function Sga(e,t){e[tD]=t,u7n||(u7n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let r=bht.connect(e[yht],{createConnection:()=>t,peerMaxConcurrentStreams:e[d7n]});r[M$]=0,r[Twe]=e,r[tD]=t,EC.addListener(r,"error",Bga),EC.addListener(r,"frameError",wga),EC.addListener(r,"end",Tga),EC.addListener(r,"goaway",Rga),EC.addListener(r,"close",function(){let{[Twe]:a}=this,{[tD]:o}=a,l=this[tD][GX]||this[GX]||new hYe("closed",EC.getSocketInfo(o));if(a[xX]=null,a.destroyed){xM(a[Aga]===0);let A=a[she].splice(a[k8]);for(let f=0;f{n=!0}),{version:"h2",defaultPipelining:1/0,write(...a){return Dga(e,...a)},resume(){vga(e)},destroy(a,o){n?queueMicrotask(o):t.destroy(a).on("close",o)},get destroyed(){return t.destroyed},busy(){return!1}}}function vga(e){let t=e[tD];t?.destroyed===!1&&(e[pga]===0&&e[d7n]===0?(t.unref(),e[xX].unref()):(t.ref(),e[xX].ref()))}function Bga(e){xM(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[tD][GX]=e,this[Twe][ayr](e)}function wga(e,t,r){if(r===0){let n=new syr(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[tD][GX]=n,this[Twe][ayr](n)}}function Tga(){let e=new hYe("other side closed",EC.getSocketInfo(this[tD]));this.destroy(e),EC.destroy(this[tD],e)}function Rga(e){let t=this[GX]||new hYe(`HTTP/2: "GOAWAY" frame received with code ${e}`,EC.getSocketInfo(this)),r=this[Twe];r[tD]=null,r[fga]=null,this[xX]!=null&&(this[xX].destroy(t),this[xX]=null),EC.destroy(this[tD],t);let n=r[she][r[k8]];r[she][r[k8]++]=null,EC.errorRequest(r,n,t),r[oyr]=r[k8],xM(r[Sht]===0),r.emit("disconnect",r[yht],[r],t),r[oae]()}function Nga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function Dga(e,t){let r=e[xX],{body:n,method:a,path:o,host:l,upgrade:A,expectContinue:f,signal:I,headers:C}=t;if(A)return EC.errorRequest(e,t,new Error("Upgrade not supported for H2")),!1;let b={};for(let ce=0;ce{t.aborted||t.completed||(ce=ce||new l7n,EC.errorRequest(e,t,ce),E!=null&&EC.destroy(E,ce),EC.destroy(n,ce),e[she][e[k8]++]=null,e[oae]())};try{t.onConnect(F)}catch(ce){EC.errorRequest(e,t,ce)}if(t.aborted)return!1;if(a==="CONNECT")return r.ref(),E=r.request(b,{endStream:!1,signal:I}),E.id&&!E.pending?(t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null):E.once("ready",()=>{t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),!0;b[mga]=o,b[Cga]="https";let Q=a==="PUT"||a==="POST"||a==="PATCH";n&&typeof n.read=="function"&&n.read(0);let X=EC.bodyLength(n);if(X==null&&(X=t.contentLength),(X===0||!Q)&&(X=null),Nga(a)&&X>0&&t.contentLength!=null&&t.contentLength!==X){if(e[dga])return EC.errorRequest(e,t,new iyr),!1;process.emitWarning(new iyr)}X!=null&&(xM(n,"no body must not have content length"),b[_ga]=`${X}`),r.ref();let ae=a==="GET"||a==="HEAD"||n===null;return f?(b[yga]="100-continue",E=r.request(b,{endStream:ae,signal:I}),E.once("continue",ne)):(E=r.request(b,{endStream:ae,signal:I}),ne()),++r[M$],E.once("response",ce=>{let{[bga]:fe,...ue}=ce;if(t.onResponseStarted(),t.aborted){let de=new l7n;EC.errorRequest(e,t,de),EC.destroy(E,de);return}t.onHeaders(Number(fe),Ega(ue),E.resume.bind(E),"")===!1&&E.pause(),E.on("data",de=>{t.onData(de)===!1&&E.pause()})}),E.once("end",()=>{(E.state?.state==null||E.state.state<6)&&t.onComplete([]),r[M$]===0&&r.unref(),F(new syr("HTTP/2: stream half-closed (remote)")),e[she][e[k8]++]=null,e[oyr]=e[k8],e[oae]()}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),E.once("error",function(ce){F(ce)}),E.once("frameError",(ce,fe)=>{F(new syr(`HTTP/2: "frameError" received - type ${ce}, code ${fe}`))}),!0;function ne(){!n||X===0?g7n(F,E,null,e,t,e[tD],X,Q):EC.isBuffer(n)?g7n(F,E,n,e,t,e[tD],X,Q):EC.isBlobLike(n)?typeof n.stream=="function"?A7n(F,E,n.stream(),e,t,e[tD],X,Q):xga(F,E,n,e,t,e[tD],X,Q):EC.isStream(n)?kga(F,e[tD],Q,E,n,e,t,X):EC.isIterable(n)?A7n(F,E,n,e,t,e[tD],X,Q):xM(!1)}}function g7n(e,t,r,n,a,o,l,A){try{r!=null&&EC.isBuffer(r)&&(xM(l===r.byteLength,"buffer body must have content length"),t.cork(),t.write(r),t.uncork(),t.end(),a.onBodySent(r)),A||(o[Eht]=!0),a.onRequestSent(),n[oae]()}catch(f){e(f)}}function kga(e,t,r,n,a,o,l,A){xM(A!==0||o[Sht]===0,"stream body cannot be pipelined");let f=gga(a,n,C=>{C?(EC.destroy(f,C),e(C)):(EC.removeAllListeners(f),l.onRequestSent(),r||(t[Eht]=!0),o[oae]())});EC.addListener(f,"data",I);function I(C){l.onBodySent(C)}}async function xga(e,t,r,n,a,o,l,A){xM(l===r.size,"blob body must have content length");try{if(l!=null&&l!==r.size)throw new iyr;let f=Buffer.from(await r.arrayBuffer());t.cork(),t.write(f),t.uncork(),t.end(),a.onBodySent(f),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(f){e(f)}}async function A7n(e,t,r,n,a,o,l,A){xM(l!==0||n[Sht]===0,"iterator body cannot be pipelined");let f=null;function I(){if(f){let b=f;f=null,b()}}let C=()=>new Promise((b,E)=>{xM(f===null),o[GX]?E(o[GX]):f=b});t.on("close",I).on("drain",I);try{for await(let b of r){if(o[GX])throw o[GX];let E=t.write(b);a.onBodySent(b),E||await C()}t.end(),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(b){e(b)}finally{t.off("close",I).off("drain",I)}}p7n.exports=Sga});var Bht=H((uou,m7n)=>{"use strict";var x8=Em(),{kBodyUsed:mYe}=B2(),lyr=wt("node:assert"),{InvalidArgumentError:Gga}=Y0(),Fga=wt("node:events"),Zga=[300,301,302,303,307,308],I7n=Symbol("body"),vht=class{constructor(t){this[I7n]=t,this[mYe]=!1}async*[Symbol.asyncIterator](){lyr(!this[mYe],"disturbed"),this[mYe]=!0,yield*this[I7n]}},cyr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new Gga("maxRedirections must be a positive number");x8.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],this.redirectionLimitReached=!1,x8.isStream(this.opts.body)?(x8.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){lyr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[mYe]=!1,Fga.prototype.on.call(this.opts.body,"data",function(){this[mYe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new vht(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&x8.isIterable(this.opts.body)&&(this.opts.body=new vht(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||x8.isDisturbed(this.opts.body)?null:Lga(t,r),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=x8.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=Vga(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function Lga(e,t){if(Zga.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var Pga=Bht();function Wga({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new Pga(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}C7n.exports=Wga});var vYe=H((Aou,R7n)=>{"use strict";var H$=wt("node:assert"),v7n=wt("node:net"),Oga=wt("node:http"),ohe=Em(),{channels:Rwe}=Awe(),Mga=Ljn(),Hga=Iwe(),{InvalidArgumentError:tw,InformationalError:Yga,ClientDestroyedError:Qga}=Y0(),Xga=iYe(),{kUrl:G8,kServerName:aae,kClient:Jga,kBusy:uyr,kConnect:Uga,kResuming:ahe,kRunning:EYe,kPending:SYe,kSize:bYe,kQueue:FX,kConnected:Kga,kConnecting:Nwe,kNeedDrain:lae,kKeepAliveDefaultTimeout:_7n,kHostHeader:jga,kPendingIdx:ZX,kRunningIdx:Y$,kError:zga,kPipelining:Tht,kKeepAliveTimeoutValue:qga,kMaxHeadersSize:$ga,kKeepAliveMaxTimeout:eAa,kKeepAliveTimeoutThreshold:tAa,kHeadersTimeout:rAa,kBodyTimeout:nAa,kStrictContentLength:iAa,kConnector:CYe,kMaxRedirections:sAa,kMaxRequests:gyr,kCounter:oAa,kClose:aAa,kDestroy:cAa,kDispatch:lAa,kInterceptors:y7n,kLocalAddress:_Ye,kMaxResponseSize:uAa,kOnError:gAa,kHTTPContext:rw,kMaxConcurrentStreams:AAa,kResume:yYe}=B2(),dAa=c7n(),pAa=f7n(),b7n=!1,cae=Symbol("kClosedResolve"),E7n=()=>{};function B7n(e){return e[Tht]??e[rw]?.defaultPipelining??1}var Ayr=class extends Hga{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,maxConcurrentStreams:k,allowH2:et}={}){if(super(),C!==void 0)throw new tw("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new tw("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new tw("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new tw("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new tw("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new tw("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new tw("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new tw("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new tw("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new tw("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new tw("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new tw("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new tw("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new tw("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new tw("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new tw("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||v7n.isIP(de)===0))throw new tw("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new tw("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new tw("autoSelectFamilyAttemptTimeout must be a positive number");if(et!=null&&typeof et!="boolean")throw new tw("allowH2 must be a valid boolean value");if(k!=null&&(typeof k!="number"||k<1))throw new tw("maxConcurrentStreams must be a positive integer, greater than 0");typeof fe!="function"&&(fe=Xga({...X,maxCachedSessions:ne,allowH2:et,socketPath:F,timeout:A,...Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),r?.Client&&Array.isArray(r.Client)?(this[y7n]=r.Client,b7n||(b7n=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[y7n]=[fAa({maxRedirections:ce})],this[G8]=ohe.parseOrigin(t),this[CYe]=fe,this[Tht]=Q??1,this[$ga]=n||Oga.maxHeaderSize,this[_7n]=b??4e3,this[eAa]=N??6e5,this[tAa]=B??2e3,this[qga]=this[_7n],this[aae]=null,this[_Ye]=de??null,this[ahe]=0,this[lae]=0,this[jga]=`host: ${this[G8].hostname}${this[G8].port?`:${this[G8].port}`:""}\r +`,this[nAa]=f??3e5,this[rAa]=a??3e5,this[iAa]=ae??!0,this[sAa]=ce,this[gyr]=ue,this[cae]=null,this[uAa]=be>-1?be:-1,this[AAa]=k??100,this[rw]=null,this[FX]=[],this[Y$]=0,this[ZX]=0,this[yYe]=ct=>dyr(this,ct),this[gAa]=ct=>w7n(this,ct)}get pipelining(){return this[Tht]}set pipelining(t){this[Tht]=t,this[yYe](!0)}get[SYe](){return this[FX].length-this[ZX]}get[EYe](){return this[ZX]-this[Y$]}get[bYe](){return this[FX].length-this[Y$]}get[Kga](){return!!this[rw]&&!this[Nwe]&&!this[rw].destroyed}get[uyr](){return!!(this[rw]?.busy(null)||this[bYe]>=(B7n(this)||1)||this[SYe]>0)}[Uga](t){T7n(this),this.once("connect",t)}[lAa](t,r){let n=t.origin||this[G8].origin,a=new Mga(n,t,r);return this[FX].push(a),this[ahe]||(ohe.bodyLength(a.body)==null&&ohe.isIterable(a.body)?(this[ahe]=1,queueMicrotask(()=>dyr(this))):this[yYe](!0)),this[ahe]&&this[lae]!==2&&this[uyr]&&(this[lae]=2),this[lae]<2}async[aAa](){return new Promise(t=>{this[bYe]?this[cae]=t:t(null)})}async[cAa](t){return new Promise(r=>{let n=this[FX].splice(this[ZX]);for(let o=0;o{this[cae]&&(this[cae](),this[cae]=null),r(null)};this[rw]?(this[rw].destroy(t,a),this[rw]=null):queueMicrotask(a),this[yYe]()})}},fAa=wht();function w7n(e,t){if(e[EYe]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){H$(e[ZX]===e[Y$]);let r=e[FX].splice(e[Y$]);for(let n=0;n{e[CYe]({host:t,hostname:r,protocol:n,port:a,servername:e[aae],localAddress:e[_Ye]},(f,I)=>{f?A(f):l(I)})});if(e.destroyed){ohe.destroy(o.on("error",E7n),new Qga);return}H$(o);try{e[rw]=o.alpnProtocol==="h2"?await pAa(e,o):await dAa(e,o)}catch(l){throw o.destroy().on("error",E7n),l}e[Nwe]=!1,o[oAa]=0,o[gyr]=e[gyr],o[Jga]=e,o[zga]=null,Rwe.connected.hasSubscribers&&Rwe.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],socket:o}),e.emit("connect",e[G8],[e])}catch(o){if(e.destroyed)return;if(e[Nwe]=!1,Rwe.connectError.hasSubscribers&&Rwe.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(H$(e[EYe]===0);e[SYe]>0&&e[FX][e[ZX]].servername===e[aae];){let l=e[FX][e[ZX]++];ohe.errorRequest(e,l,o)}else w7n(e,o);e.emit("connectionError",e[G8],[e],o)}e[yYe]()}function S7n(e){e[lae]=0,e.emit("drain",e[G8],[e])}function dyr(e,t){e[ahe]!==2&&(e[ahe]=2,IAa(e,t),e[ahe]=0,e[Y$]>256&&(e[FX].splice(0,e[Y$]),e[ZX]-=e[Y$],e[Y$]=0))}function IAa(e,t){for(;;){if(e.destroyed){H$(e[SYe]===0);return}if(e[cae]&&!e[bYe]){e[cae](),e[cae]=null;return}if(e[rw]&&e[rw].resume(),e[uyr])e[lae]=2;else if(e[lae]===2){t?(e[lae]=1,queueMicrotask(()=>S7n(e))):S7n(e);continue}if(e[SYe]===0||e[EYe]>=(B7n(e)||1))return;let r=e[FX][e[ZX]];if(e[G8].protocol==="https:"&&e[aae]!==r.servername){if(e[EYe]>0)return;e[aae]=r.servername,e[rw]?.destroy(new Yga("servername changed"),()=>{e[rw]=null,dyr(e)})}if(e[Nwe])return;if(!e[rw]){T7n(e);return}if(e[rw].destroyed||e[rw].busy(r))return;!r.aborted&&e[rw].write(r)?e[ZX]++:e[FX].splice(e[ZX],1)}}R7n.exports=Ayr});var pyr=H((pou,N7n)=>{"use strict";var Rht=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};N7n.exports=class{constructor(){this.head=this.tail=new Rht}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Rht),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var k7n=H((fou,D7n)=>{var{kFree:hAa,kConnected:mAa,kPending:CAa,kQueued:_Aa,kRunning:yAa,kSize:bAa}=B2(),che=Symbol("pool"),fyr=class{constructor(t){this[che]=t}get connected(){return this[che][mAa]}get free(){return this[che][hAa]}get pending(){return this[che][CAa]}get queued(){return this[che][_Aa]}get running(){return this[che][yAa]}get size(){return this[che][bAa]}};D7n.exports=fyr});var yyr=H((Iou,M7n)=>{"use strict";var EAa=Iwe(),SAa=pyr(),{kConnected:Iyr,kSize:x7n,kRunning:G7n,kPending:F7n,kQueued:BYe,kBusy:vAa,kFree:BAa,kUrl:wAa,kClose:TAa,kDestroy:RAa,kDispatch:NAa}=B2(),DAa=k7n(),rV=Symbol("clients"),OZ=Symbol("needDrain"),wYe=Symbol("queue"),hyr=Symbol("closed resolve"),myr=Symbol("onDrain"),Z7n=Symbol("onConnect"),L7n=Symbol("onDisconnect"),V7n=Symbol("onConnectionError"),Cyr=Symbol("get dispatcher"),W7n=Symbol("add client"),O7n=Symbol("remove client"),P7n=Symbol("stats"),_yr=class extends EAa{constructor(){super(),this[wYe]=new SAa,this[rV]=[],this[BYe]=0;let t=this;this[myr]=function(n,a){let o=t[wYe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[BYe]--,l=!this.dispatch(A.opts,A.handler)}this[OZ]=l,!this[OZ]&&t[OZ]&&(t[OZ]=!1,t.emit("drain",n,[t,...a])),t[hyr]&&o.isEmpty()&&Promise.all(t[rV].map(A=>A.close())).then(t[hyr])},this[Z7n]=(r,n)=>{t.emit("connect",r,[t,...n])},this[L7n]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[V7n]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[P7n]=new DAa(this)}get[vAa](){return this[OZ]}get[Iyr](){return this[rV].filter(t=>t[Iyr]).length}get[BAa](){return this[rV].filter(t=>t[Iyr]&&!t[OZ]).length}get[F7n](){let t=this[BYe];for(let{[F7n]:r}of this[rV])t+=r;return t}get[G7n](){let t=0;for(let{[G7n]:r}of this[rV])t+=r;return t}get[x7n](){let t=this[BYe];for(let{[x7n]:r}of this[rV])t+=r;return t}get stats(){return this[P7n]}async[TAa](){this[wYe].isEmpty()?await Promise.all(this[rV].map(t=>t.close())):await new Promise(t=>{this[hyr]=t})}async[RAa](t){for(;;){let r=this[wYe].shift();if(!r)break;r.handler.onError(t)}await Promise.all(this[rV].map(r=>r.destroy(t)))}[NAa](t,r){let n=this[Cyr]();return n?n.dispatch(t,r)||(n[OZ]=!0,this[OZ]=!this[Cyr]()):(this[OZ]=!0,this[wYe].push({opts:t,handler:r}),this[BYe]++),!this[OZ]}[W7n](t){return t.on("drain",this[myr]).on("connect",this[Z7n]).on("disconnect",this[L7n]).on("connectionError",this[V7n]),this[rV].push(t),this[OZ]&&queueMicrotask(()=>{this[OZ]&&this[myr](t[wAa],[this,t])}),this}[O7n](t){t.close(()=>{let r=this[rV].indexOf(t);r!==-1&&this[rV].splice(r,1)}),this[OZ]=this[rV].some(r=>!r[OZ]&&r.closed!==!0&&r.destroyed!==!0)}};M7n.exports={PoolBase:_yr,kClients:rV,kNeedDrain:OZ,kAddClient:W7n,kRemoveClient:O7n,kGetDispatcher:Cyr}});var Dwe=H((hou,J7n)=>{"use strict";var{PoolBase:kAa,kClients:H7n,kNeedDrain:xAa,kAddClient:GAa,kGetDispatcher:FAa}=yyr(),ZAa=vYe(),{InvalidArgumentError:byr}=Y0(),Y7n=Em(),{kUrl:Q7n,kInterceptors:LAa}=B2(),VAa=iYe(),Eyr=Symbol("options"),Syr=Symbol("connections"),X7n=Symbol("factory");function PAa(e,t){return new ZAa(e,t)}var vyr=class extends kAa{constructor(t,{connections:r,factory:n=PAa,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new byr("invalid connections");if(typeof n!="function")throw new byr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new byr("connect must be a function or an object");typeof a!="function"&&(a=VAa({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[LAa]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Syr]=r||null,this[Q7n]=Y7n.parseOrigin(t),this[Eyr]={...Y7n.deepClone(E),connect:a,allowH2:b},this[Eyr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[X7n]=n}[FAa](){for(let t of this[H7n])if(!t[xAa])return t;if(!this[Syr]||this[H7n].length{"use strict";var{BalancedPoolMissingUpstreamError:WAa,InvalidArgumentError:OAa}=Y0(),{PoolBase:MAa,kClients:SG,kNeedDrain:TYe,kAddClient:HAa,kRemoveClient:YAa,kGetDispatcher:QAa}=yyr(),XAa=Dwe(),{kUrl:Byr,kInterceptors:JAa}=B2(),{parseOrigin:U7n}=Em(),K7n=Symbol("factory"),Nht=Symbol("options"),j7n=Symbol("kGreatestCommonDivisor"),lhe=Symbol("kCurrentWeight"),uhe=Symbol("kIndex"),GM=Symbol("kWeight"),Dht=Symbol("kMaxWeightPerServer"),kht=Symbol("kErrorPenalty");function UAa(e,t){if(e===0)return t;for(;t!==0;){let r=t;t=e%t,e=r}return e}function KAa(e,t){return new XAa(e,t)}var wyr=class extends MAa{constructor(t=[],{factory:r=KAa,...n}={}){if(super(),this[Nht]=n,this[uhe]=-1,this[lhe]=0,this[Dht]=this[Nht].maxWeightPerServer||100,this[kht]=this[Nht].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new OAa("factory must be a function.");this[JAa]=n.interceptors?.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[K7n]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=U7n(t).origin;if(this[SG].find(a=>a[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[K7n](r,Object.assign({},this[Nht]));this[HAa](n),n.on("connect",()=>{n[GM]=Math.min(this[Dht],n[GM]+this[kht])}),n.on("connectionError",()=>{n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats())});for(let a of this[SG])a[GM]=this[Dht];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let t=0;for(let r=0;ra[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[YAa](n),this}get upstreams(){return this[SG].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[Byr].origin)}[QAa](){if(this[SG].length===0)throw new WAa;if(!this[SG].find(o=>!o[TYe]&&o.closed!==!0&&o.destroyed!==!0)||this[SG].map(o=>o[TYe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[SG].findIndex(o=>!o[TYe]);for(;n++this[SG][a][GM]&&!o[TYe]&&(a=this[uhe]),this[uhe]===0&&(this[lhe]=this[lhe]-this[j7n],this[lhe]<=0&&(this[lhe]=this[Dht])),o[GM]>=this[lhe]&&!o[TYe])return o}return this[lhe]=this[SG][a][GM],this[uhe]=a,this[SG][a]}};z7n.exports=wyr});var kwe=H((Cou,szn)=>{"use strict";var{InvalidArgumentError:xht}=Y0(),{kClients:uae,kRunning:$7n,kClose:jAa,kDestroy:zAa,kDispatch:qAa,kInterceptors:$Aa}=B2(),eda=Iwe(),tda=Dwe(),rda=vYe(),nda=Em(),ida=wht(),ezn=Symbol("onConnect"),tzn=Symbol("onDisconnect"),rzn=Symbol("onConnectionError"),sda=Symbol("maxRedirections"),nzn=Symbol("onDrain"),izn=Symbol("factory"),Tyr=Symbol("options");function oda(e,t){return t&&t.connections===1?new rda(e,t):new tda(e,t)}var Ryr=class extends eda{constructor({factory:t=oda,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new xht("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new xht("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new xht("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[$Aa]=a.interceptors?.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[ida({maxRedirections:r})],this[Tyr]={...nda.deepClone(a),connect:n},this[Tyr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[sda]=r,this[izn]=t,this[uae]=new Map,this[nzn]=(o,l)=>{this.emit("drain",o,[this,...l])},this[ezn]=(o,l)=>{this.emit("connect",o,[this,...l])},this[tzn]=(o,l,A)=>{this.emit("disconnect",o,[this,...l],A)},this[rzn]=(o,l,A)=>{this.emit("connectionError",o,[this,...l],A)}}get[$7n](){let t=0;for(let r of this[uae].values())t+=r[$7n];return t}[qAa](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new xht("opts.origin must be a non-empty string or URL.");let a=this[uae].get(n);return a||(a=this[izn](t.origin,this[Tyr]).on("drain",this[nzn]).on("connect",this[ezn]).on("disconnect",this[tzn]).on("connectionError",this[rzn]),this[uae].set(n,a)),a.dispatch(t,r)}async[jAa](){let t=[];for(let r of this[uae].values())t.push(r.close());this[uae].clear(),await Promise.all(t)}async[zAa](t){let r=[];for(let n of this[uae].values())r.push(n.destroy(t));this[uae].clear(),await Promise.all(r)}};szn.exports=Ryr});var kyr=H((_ou,lzn)=>{"use strict";var{kProxy:ada,kClose:cda,kDestroy:lda,kInterceptors:uda}=B2(),{URL:RYe}=wt("node:url"),gda=kwe(),Ada=Dwe(),dda=Iwe(),{InvalidArgumentError:Zht,RequestAbortedError:pda,SecureProxyConnectionError:fda}=Y0(),ozn=iYe(),Ght=Symbol("proxy agent"),Fht=Symbol("proxy client"),NYe=Symbol("proxy headers"),Nyr=Symbol("request tls settings"),azn=Symbol("proxy tls settings"),czn=Symbol("connect endpoint function");function Ida(e){return e==="https:"?443:80}function hda(e,t){return new Ada(e,t)}var mda=()=>{},Dyr=class extends dda{constructor(t){if(super(),!t||typeof t=="object"&&!(t instanceof RYe)&&!t.uri)throw new Zht("Proxy uri is mandatory");let{clientFactory:r=hda}=t;if(typeof r!="function")throw new Zht("Proxy opts.clientFactory must be a function.");let n=this.#e(t),{href:a,origin:o,port:l,protocol:A,username:f,password:I,hostname:C}=n;if(this[ada]={uri:a,protocol:A},this[uda]=t.interceptors?.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],this[Nyr]=t.requestTls,this[azn]=t.proxyTls,this[NYe]=t.headers||{},t.auth&&t.token)throw new Zht("opts.auth cannot be used in combination with opts.token");t.auth?this[NYe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[NYe]["proxy-authorization"]=t.token:f&&I&&(this[NYe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(f)}:${decodeURIComponent(I)}`).toString("base64")}`);let b=ozn({...t.proxyTls});this[czn]=ozn({...t.requestTls}),this[Fht]=r(n,{connect:b}),this[Ght]=new gda({...t,connect:async(E,N)=>{let B=E.host;E.port||(B+=`:${Ida(E.protocol)}`);try{let{socket:F,statusCode:Q}=await this[Fht].connect({origin:o,port:l,path:B,signal:E.signal,headers:{...this[NYe],host:E.host},servername:this[azn]?.servername||C});if(Q!==200&&(F.on("error",mda).destroy(),N(new pda(`Proxy response (${Q}) !== 200 when HTTP Tunneling`))),E.protocol!=="https:"){N(null,F);return}let X;this[Nyr]?X=this[Nyr].servername:X=E.servername,this[czn]({...E,servername:X,httpSocket:F},N)}catch(F){F.code==="ERR_TLS_CERT_ALTNAME_INVALID"?N(new fda(F)):N(F)}}})}dispatch(t,r){let n=Cda(t.headers);if(_da(n),n&&!("host"in n)&&!("Host"in n)){let{host:a}=new RYe(t.origin);n.host=a}return this[Ght].dispatch({...t,headers:n},r)}#e(t){return typeof t=="string"?new RYe(t):t instanceof RYe?t:new RYe(t.uri)}async[cda](){await this[Ght].close(),await this[Fht].close()}async[lda](){await this[Ght].destroy(),await this[Fht].destroy()}};function Cda(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new Zht("Proxy-Authorization should be sent in ProxyAgent constructor")}lzn.exports=Dyr});var fzn=H((you,pzn)=>{"use strict";var yda=Iwe(),{kClose:bda,kDestroy:Eda,kClosed:uzn,kDestroyed:gzn,kDispatch:Sda,kNoProxyAgent:DYe,kHttpProxyAgent:gae,kHttpsProxyAgent:ghe}=B2(),Azn=kyr(),vda=kwe(),Bda={"http:":80,"https:":443},dzn=!1,xyr=class extends yda{#e=null;#t=null;#n=null;constructor(t={}){super(),this.#n=t,dzn||(dzn=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:r,httpsProxy:n,noProxy:a,...o}=t;this[DYe]=new vda(o);let l=r??process.env.http_proxy??process.env.HTTP_PROXY;l?this[gae]=new Azn({...o,uri:l}):this[gae]=this[DYe];let A=n??process.env.https_proxy??process.env.HTTPS_PROXY;A?this[ghe]=new Azn({...o,uri:A}):this[ghe]=this[gae],this.#s()}[Sda](t,r){let n=new URL(t.origin);return this.#r(n).dispatch(t,r)}async[bda](){await this[DYe].close(),this[gae][uzn]||await this[gae].close(),this[ghe][uzn]||await this[ghe].close()}async[Eda](t){await this[DYe].destroy(t),this[gae][gzn]||await this[gae].destroy(t),this[ghe][gzn]||await this[ghe].destroy(t)}#r(t){let{protocol:r,host:n,port:a}=t;return n=n.replace(/:\d*$/,"").toLowerCase(),a=Number.parseInt(a,10)||Bda[r]||0,this.#i(n,a)?r==="https:"?this[ghe]:this[gae]:this[DYe]}#i(t,r){if(this.#o&&this.#s(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let n=0;n{"use strict";var xwe=wt("node:assert"),{kRetryHandlerDefaultRetry:Izn}=B2(),{RequestRetryError:kYe}=Y0(),{isDisturbed:hzn,parseHeaders:wda,parseRangeHeader:mzn,wrapRequestBody:Tda}=Em();function Rda(e){let t=Date.now();return new Date(e).getTime()-t}var Gyr=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts={...a,body:Tda(t.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[Izn],retryAfter:E??!0,maxTimeout:A??30*1e3,minTimeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[Izn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,minTimeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X}=r;if(l&&l!=="UND_ERR_REQ_RETRY"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ae=A?.["retry-after"];ae&&(ae=Number(ae),ae=Number.isNaN(ae)?Rda(ae):ae*1e3);let ne=ae>0?Math.min(ae,E):Math.min(b*N**(X-1),E);setTimeout(()=>a(null),ne)}onHeaders(t,r,n,a){let o=wda(r);if(this.retryCount+=1,t>=300)return this.retryOpts.statusCodes.includes(t)===!1?this.handler.onHeaders(t,r,n,a):(this.abort(new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,t!==206&&(this.start>0||t!==200))return this.abort(new kYe("server does not support the range header and the payload was partially consumed",t,{headers:o,data:{count:this.retryCount}})),!1;let A=mzn(o["content-range"]);if(!A)return this.abort(new kYe("Content-Range mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new kYe("ETag mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;let{start:f,size:I,end:C=I}=A;return xwe(this.start===f,"content-range mismatch"),xwe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=mzn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;xwe(f!=null&&Number.isFinite(f),"content-range mismatch"),xwe(C!=null&&Number.isFinite(C),"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return xwe(Number.isFinite(this.start)),xwe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(t,r,n,a)}let l=new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||hzn(this.opts.body))return this.handler.onError(t);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||hzn(this.opts.body))return this.handler.onError(n);if(this.start!==0){let a={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(a["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...a}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};Czn.exports=Gyr});var yzn=H((Eou,_zn)=>{"use strict";var Nda=rYe(),Dda=Lht(),Fyr=class extends Nda{#e=null;#t=null;constructor(t,r={}){super(r),this.#e=t,this.#t=r}dispatch(t,r){let n=new Dda({...t,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:r});return this.#e.dispatch(t,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};_zn.exports=Fyr});var Oyr=H((Sou,Nzn)=>{"use strict";var Bzn=wt("node:assert"),{Readable:kda}=wt("node:stream"),{RequestAbortedError:wzn,NotSupportedError:xda,InvalidArgumentError:Gda,AbortError:Zyr}=Y0(),Tzn=Em(),{ReadableStreamFrom:Fda}=Em(),$W=Symbol("kConsume"),xYe=Symbol("kReading"),Aae=Symbol("kBody"),bzn=Symbol("kAbort"),Rzn=Symbol("kContentType"),Ezn=Symbol("kContentLength"),Zda=()=>{},Lyr=class extends kda{constructor({resume:t,abort:r,contentType:n="",contentLength:a,highWaterMark:o=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:o}),this._readableState.dataEmitted=!1,this[bzn]=r,this[$W]=null,this[Aae]=null,this[Rzn]=n,this[Ezn]=a,this[xYe]=!1}destroy(t){return!t&&!this._readableState.endEmitted&&(t=new wzn),t&&this[bzn](),super.destroy(t)}_destroy(t,r){this[xYe]?r(t):setImmediate(()=>{r(t)})}on(t,...r){return(t==="data"||t==="readable")&&(this[xYe]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[xYe]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[$W]&&t!==null?(Pyr(this[$W],t),this[xYe]?super.push(t):!0):super.push(t)}async text(){return GYe(this,"text")}async json(){return GYe(this,"json")}async blob(){return GYe(this,"blob")}async bytes(){return GYe(this,"bytes")}async arrayBuffer(){return GYe(this,"arrayBuffer")}async formData(){throw new xda}get bodyUsed(){return Tzn.isDisturbed(this)}get body(){return this[Aae]||(this[Aae]=Fda(this),this[$W]&&(this[Aae].getReader(),Bzn(this[Aae].locked))),this[Aae]}async dump(t){let r=Number.isFinite(t?.limit)?t.limit:131072,n=t?.signal;if(n!=null&&(typeof n!="object"||!("aborted"in n)))throw new Gda("signal must be an AbortSignal");return n?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((a,o)=>{this[Ezn]>r&&this.destroy(new Zyr);let l=()=>{this.destroy(n.reason??new Zyr)};n?.addEventListener("abort",l),this.on("close",function(){n?.removeEventListener("abort",l),n?.aborted?o(n.reason??new Zyr):a(null)}).on("error",Zda).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Lda(e){return e[Aae]&&e[Aae].locked===!0||e[$W]}function Vda(e){return Tzn.isDisturbed(e)||Lda(e)}async function GYe(e,t){return Bzn(!e[$W]),new Promise((r,n)=>{if(Vda(e)){let a=e._readableState;a.destroyed&&a.closeEmitted===!1?e.on("error",o=>{n(o)}).on("close",()=>{n(new TypeError("unusable"))}):n(a.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[$W]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){Wyr(this[$W],a)}).on("close",function(){this[$W].body!==null&&Wyr(this[$W],new wzn)}),Pda(e[$W])})})}function Pda(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let r=t.bufferIndex,n=t.buffer.length;for(let a=r;a2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return r.utf8Slice(a,n)}function Szn(e,t){if(e.length===0||t===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let r=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),n=0;for(let a=0;a{var Wda=wt("node:assert"),{ResponseStatusCodeError:Dzn}=Y0(),{chunksDecode:kzn}=Oyr(),Oda=128*1024;async function Mda({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Wda(t);let l=[],A=0;try{for await(let b of t)if(l.push(b),A+=b.length,A>Oda){l=[],A=0;break}}catch{l=[],A=0}let f=`Response status code ${n}${a?`: ${a}`:""}`;if(n===204||!r||!A){queueMicrotask(()=>e(new Dzn(f,n,o)));return}let I=Error.stackTraceLimit;Error.stackTraceLimit=0;let C;try{xzn(r)?C=JSON.parse(kzn(l,A)):Gzn(r)&&(C=kzn(l,A))}catch{}finally{Error.stackTraceLimit=I}queueMicrotask(()=>e(new Dzn(f,n,o,C)))}var xzn=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",Gzn=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";Fzn.exports={getResolveErrorBodyCallback:Mda,isContentTypeApplicationJson:xzn,isContentTypeText:Gzn}});var Vzn=H((Bou,Hyr)=>{"use strict";var Hda=wt("node:assert"),{Readable:Yda}=Oyr(),{InvalidArgumentError:Gwe,RequestAbortedError:Zzn}=Y0(),FM=Em(),{getResolveErrorBodyCallback:Qda}=Myr(),{AsyncResource:Xda}=wt("node:async_hooks"),Vht=class extends Xda{constructor(t,r){if(!t||typeof t!="object")throw new Gwe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new Gwe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new Gwe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Gwe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new Gwe("invalid method");if(A&&typeof A!="function")throw new Gwe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw FM.isStream(l)&&FM.destroy(l.on("error",FM.nop),b),b}this.method=a,this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,this.signal=n,this.reason=null,this.removeAbortListener=null,FM.isStream(l)&&l.on("error",b=>{this.onError(b)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new Zzn:this.removeAbortListener=FM.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new Zzn,this.res?FM.destroy(this.res,this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(t,r){if(this.reason){t(this.reason);return}Hda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?FM.parseRawHeaders(r):FM.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let E=I==="raw"?FM.parseHeaders(r):b,N=E["content-type"],B=E["content-length"],F=new Yda({resume:n,abort:A,contentType:N,contentLength:this.method!=="HEAD"&&B?Number(B):null,highWaterMark:C});this.removeAbortListener&&F.on("close",this.removeAbortListener),this.callback=null,this.res=F,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Qda,null,{callback:o,body:F,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:F,context:f}))}onData(t){return this.res.push(t)}onComplete(t){FM.parseHeaders(t,this.trailers),this.res.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{FM.destroy(r,t)})),a&&(this.body=null,FM.destroy(a,t)),this.removeAbortListener&&(r?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function Lzn(e,t){if(t===void 0)return new Promise((r,n)=>{Lzn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Vht(e,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}Hyr.exports=Lzn;Hyr.exports.RequestHandler=Vht});var FYe=H((wou,Ozn)=>{var{addAbortListener:Jda}=Em(),{RequestAbortedError:Uda}=Y0(),Fwe=Symbol("kListener"),F8=Symbol("kSignal");function Pzn(e){e.abort?e.abort(e[F8]?.reason):e.reason=e[F8]?.reason??new Uda,Wzn(e)}function Kda(e,t){if(e.reason=null,e[F8]=null,e[Fwe]=null,!!t){if(t.aborted){Pzn(e);return}e[F8]=t,e[Fwe]=()=>{Pzn(e)},Jda(e[F8],e[Fwe])}}function Wzn(e){e[F8]&&("removeEventListener"in e[F8]?e[F8].removeEventListener("abort",e[Fwe]):e[F8].removeListener("abort",e[Fwe]),e[F8]=null,e[Fwe]=null)}Ozn.exports={addSignal:Kda,removeSignal:Wzn}});var Qzn=H((Tou,Yzn)=>{"use strict";var jda=wt("node:assert"),{finished:zda,PassThrough:qda}=wt("node:stream"),{InvalidArgumentError:Zwe,InvalidReturnValueError:$da}=Y0(),LX=Em(),{getResolveErrorBodyCallback:epa}=Myr(),{AsyncResource:tpa}=wt("node:async_hooks"),{addSignal:rpa,removeSignal:Mzn}=FYe(),Yyr=class extends tpa{constructor(t,r,n){if(!t||typeof t!="object")throw new Zwe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new Zwe("invalid callback");if(typeof r!="function")throw new Zwe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Zwe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new Zwe("invalid method");if(f&&typeof f!="function")throw new Zwe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw LX.isStream(A)&&LX.destroy(A.on("error",LX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,LX.isStream(A)&&A.on("error",b=>{this.onError(b)}),rpa(this,a)}onConnect(t,r){if(this.reason){t(this.reason);return}jda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?LX.parseRawHeaders(r):LX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?LX.parseHeaders(r):C)["content-type"];b=new qda,this.callback=null,this.runInAsyncScope(epa,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new $da("expected Writable");zda(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&LX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState?.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;Mzn(this),r&&(this.trailers=LX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;Mzn(this),this.factory=null,r?(this.res=null,LX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,LX.destroy(o,t))}};function Hzn(e,t,r){if(r===void 0)return new Promise((n,a)=>{Hzn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new Yyr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e?.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}Yzn.exports=Hzn});var Kzn=H((Rou,Uzn)=>{"use strict";var{Readable:Jzn,Duplex:npa,PassThrough:ipa}=wt("node:stream"),{InvalidArgumentError:ZYe,InvalidReturnValueError:spa,RequestAbortedError:Qyr}=Y0(),ZM=Em(),{AsyncResource:opa}=wt("node:async_hooks"),{addSignal:apa,removeSignal:cpa}=FYe(),Xzn=wt("node:assert"),Lwe=Symbol("resume"),Xyr=class extends Jzn{constructor(){super({autoDestroy:!0}),this[Lwe]=null}_read(){let{[Lwe]:t}=this;t&&(this[Lwe]=null,t())}_destroy(t,r){this._read(),r(t)}},Jyr=class extends Jzn{constructor(t){super({autoDestroy:!0}),this[Lwe]=t}_read(){this[Lwe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Qyr),r(t)}},Uyr=class extends opa{constructor(t,r){if(!t||typeof t!="object")throw new ZYe("invalid opts");if(typeof r!="function")throw new ZYe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new ZYe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new ZYe("invalid method");if(l&&typeof l!="function")throw new ZYe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new Xyr().on("error",ZM.nop),this.ret=new npa({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f?.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[Lwe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Qyr),B&&f&&B(),ZM.destroy(C,f),ZM.destroy(b,f),ZM.destroy(E,f),cpa(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,apa(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(this.reason){t(this.reason);return}Xzn(!a,"pipeline cannot be retried"),Xzn(!n.destroyed),this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new Jyr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",ZM.nop),f}if(!A||typeof A.on!="function")throw new spa("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;ZM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||ZM.destroy(f,new Qyr)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,ZM.destroy(r,t)}};function lpa(e,t){try{let r=new Uyr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new ipa().destroy(r)}}Uzn.exports=lpa});var tqn=H((Nou,eqn)=>{"use strict";var{InvalidArgumentError:Kyr,SocketError:upa}=Y0(),{AsyncResource:gpa}=wt("node:async_hooks"),jzn=Em(),{addSignal:Apa,removeSignal:zzn}=FYe(),qzn=wt("node:assert"),jyr=class extends gpa{constructor(t,r){if(!t||typeof t!="object")throw new Kyr("invalid opts");if(typeof r!="function")throw new Kyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Kyr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,Apa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}qzn(this.callback),this.abort=t,this.context=null}onHeaders(){throw new upa("bad upgrade",null)}onUpgrade(t,r,n){qzn(t===101);let{callback:a,opaque:o,context:l}=this;zzn(this),this.callback=null;let A=this.responseHeaders==="raw"?jzn.parseRawHeaders(r):jzn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;zzn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $zn(e,t){if(t===void 0)return new Promise((r,n)=>{$zn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new jyr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eqn.exports=$zn});var oqn=H((Dou,sqn)=>{"use strict";var dpa=wt("node:assert"),{AsyncResource:ppa}=wt("node:async_hooks"),{InvalidArgumentError:zyr,SocketError:fpa}=Y0(),rqn=Em(),{addSignal:Ipa,removeSignal:nqn}=FYe(),qyr=class extends ppa{constructor(t,r){if(!t||typeof t!="object")throw new zyr("invalid opts");if(typeof r!="function")throw new zyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new zyr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,Ipa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}dpa(this.callback),this.abort=t,this.context=r}onHeaders(){throw new fpa("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nqn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rqn.parseRawHeaders(r):rqn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nqn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iqn(e,t){if(t===void 0)return new Promise((r,n)=>{iqn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new qyr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sqn.exports=iqn});var aqn=H((kou,Vwe)=>{"use strict";Vwe.exports.request=Vzn();Vwe.exports.stream=Qzn();Vwe.exports.pipeline=Kzn();Vwe.exports.upgrade=tqn();Vwe.exports.connect=oqn()});var ebr=H((xou,cqn)=>{"use strict";var{UndiciError:hpa}=Y0(),$yr=class e extends hpa{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cqn.exports={MockNotMatchedError:$yr}});var Pwe=H((Gou,lqn)=>{"use strict";lqn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var LYe=H((Fou,_qn)=>{"use strict";var{MockNotMatchedError:Ahe}=ebr(),{kDispatches:Pht,kMockAgent:mpa,kOriginalDispatch:Cpa,kOrigin:_pa,kGetNetConnect:ypa}=Pwe(),{buildURL:bpa}=Em(),{STATUS_CODES:Epa}=wt("node:http"),{types:{isPromise:Spa}}=wt("node:util");function Q$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gqn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function Aqn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=Aqn(t,r);if(!Q$(n,a))return!1}return!0}function uqn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function vpa(e,{path:t,method:r,body:n,headers:a}){let o=Q$(e.path,t),l=Q$(e.method,r),A=typeof e.body<"u"?Q$(e.body,n):!0,f=dqn(e,a);return o&&l&&A&&f}function pqn(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function fqn(e,t){let r=t.query?bpa(t.path,t.query):t.path,n=typeof r=="string"?uqn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>Q$(uqn(o),n));if(a.length===0)throw new Ahe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>Q$(o,t.method)),a.length===0)throw new Ahe(`Mock dispatch not matched for method '${t.method}' on path '${n}'`);if(a=a.filter(({body:o})=>typeof o<"u"?Q$(o,t.body):!0),a.length===0)throw new Ahe(`Mock dispatch not matched for body '${t.body}' on path '${n}'`);if(a=a.filter(o=>dqn(o,t.headers)),a.length===0){let o=typeof t.headers=="object"?JSON.stringify(t.headers):t.headers;throw new Ahe(`Mock dispatch not matched for headers '${o}' on path '${n}'`)}return a[0]}function Bpa(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function tbr(e,t){let r=e.findIndex(n=>n.consumed?vpa(n,t):!1);r!==-1&&e.splice(r,1)}function Iqn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function rbr(e){let t=Object.keys(e),r=[];for(let n=0;n=E,n.pending=b0?setTimeout(()=>{N(this[Pht])},I):N(this[Pht]);function N(F,Q=o){let X=Array.isArray(e.headers)?nbr(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(Spa(ae)){ae.then(ue=>N(F,ue));return}let ne=pqn(ae),ce=rbr(l),fe=rbr(A);t.onConnect?.(ue=>t.onError(ue),null),t.onHeaders?.(a,ce,B,hqn(a)),t.onData?.(Buffer.from(ne)),t.onComplete?.(fe),tbr(F,r)}function B(){}return!0}function Tpa(){let e=this[mpa],t=this[_pa],r=this[Cpa];return function(a,o){if(e.isMockActive)try{mqn.call(this,a,o)}catch(l){if(l instanceof Ahe){let A=e[ypa]();if(A===!1)throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(Cqn(A,t))r.call(this,a,o);else throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function Cqn(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>Q$(n,r.host)))}function Rpa(e){if(e){let{agent:t,...r}=e;return r}}_qn.exports={getResponseData:pqn,getMockDispatch:fqn,addMockDispatch:Bpa,deleteMockDispatch:tbr,buildKey:Iqn,generateKeyValues:rbr,matchValue:Q$,getResponse:wpa,getStatusText:hqn,mockDispatch:mqn,buildMockDispatch:Tpa,checkNetConnect:Cqn,buildMockOptions:Rpa,getHeaderByName:Aqn,buildHeadersFromArray:nbr}});var ubr=H((Zou,lbr)=>{"use strict";var{getResponseData:Npa,buildKey:Dpa,addMockDispatch:ibr}=LYe(),{kDispatches:Wht,kDispatchKey:Oht,kDefaultHeaders:sbr,kDefaultTrailers:obr,kContentLength:abr,kMockDispatch:Mht}=Pwe(),{InvalidArgumentError:Z8}=Y0(),{buildURL:kpa}=Em(),Wwe=class{constructor(t){this[Mht]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("waitInMs must be a valid integer > 0");return this[Mht].delay=t,this}persist(){return this[Mht].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("repeatTimes must be a valid integer > 0");return this[Mht].times=t,this}},cbr=class{constructor(t,r){if(typeof t!="object")throw new Z8("opts must be an object");if(typeof t.path>"u")throw new Z8("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=kpa(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Oht]=Dpa(t),this[Wht]=r,this[sbr]={},this[obr]={},this[abr]=!1}createMockScopeDispatchData({statusCode:t,data:r,responseOptions:n}){let a=Npa(r),o=this[abr]?{"content-length":a.length}:{},l={...this[sbr],...o,...n.headers},A={...this[obr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t){if(typeof t.statusCode>"u")throw new Z8("statusCode must be defined");if(typeof t.responseOptions!="object"||t.responseOptions===null)throw new Z8("responseOptions must be an object")}reply(t){if(typeof t=="function"){let o=A=>{let f=t(A);if(typeof f!="object"||f===null)throw new Z8("reply options callback must return an object");let I={data:"",responseOptions:{},...f};return this.validateReplyParameters(I),{...this.createMockScopeDispatchData(I)}},l=ibr(this[Wht],this[Oht],o);return new Wwe(l)}let r={statusCode:t,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(r);let n=this.createMockScopeDispatchData(r),a=ibr(this[Wht],this[Oht],n);return new Wwe(a)}replyWithError(t){if(typeof t>"u")throw new Z8("error must be defined");let r=ibr(this[Wht],this[Oht],{error:t});return new Wwe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new Z8("headers must be defined");return this[sbr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new Z8("trailers must be defined");return this[obr]=t,this}replyContentLength(){return this[abr]=!0,this}};lbr.exports.MockInterceptor=cbr;lbr.exports.MockScope=Wwe});var dbr=H((Lou,wqn)=>{"use strict";var{promisify:xpa}=wt("node:util"),Gpa=vYe(),{buildMockDispatch:Fpa}=LYe(),{kDispatches:yqn,kMockAgent:bqn,kClose:Eqn,kOriginalClose:Sqn,kOrigin:vqn,kOriginalDispatch:Zpa,kConnected:gbr}=Pwe(),{MockInterceptor:Lpa}=ubr(),Bqn=B2(),{InvalidArgumentError:Vpa}=Y0(),Abr=class extends Gpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Vpa("Argument opts.agent must implement Agent");this[bqn]=r.agent,this[vqn]=t,this[yqn]=[],this[gbr]=1,this[Zpa]=this.dispatch,this[Sqn]=this.close.bind(this),this.dispatch=Fpa.call(this),this.close=this[Eqn]}get[Bqn.kConnected](){return this[gbr]}intercept(t){return new Lpa(t,this[yqn])}async[Eqn](){await xpa(this[Sqn])(),this[gbr]=0,this[bqn][Bqn.kClients].delete(this[vqn])}};wqn.exports=Abr});var Ibr=H((Vou,Gqn)=>{"use strict";var{promisify:Ppa}=wt("node:util"),Wpa=Dwe(),{buildMockDispatch:Opa}=LYe(),{kDispatches:Tqn,kMockAgent:Rqn,kClose:Nqn,kOriginalClose:Dqn,kOrigin:kqn,kOriginalDispatch:Mpa,kConnected:pbr}=Pwe(),{MockInterceptor:Hpa}=ubr(),xqn=B2(),{InvalidArgumentError:Ypa}=Y0(),fbr=class extends Wpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Ypa("Argument opts.agent must implement Agent");this[Rqn]=r.agent,this[kqn]=t,this[Tqn]=[],this[pbr]=1,this[Mpa]=this.dispatch,this[Dqn]=this.close.bind(this),this.dispatch=Opa.call(this),this.close=this[Nqn]}get[xqn.kConnected](){return this[pbr]}intercept(t){return new Hpa(t,this[Tqn])}async[Nqn](){await Ppa(this[Dqn])(),this[pbr]=0,this[Rqn][xqn.kClients].delete(this[kqn])}};Gqn.exports=fbr});var Zqn=H((Wou,Fqn)=>{"use strict";var Qpa={pronoun:"it",is:"is",was:"was",this:"this"},Xpa={pronoun:"they",is:"are",was:"were",this:"these"};Fqn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Qpa:Xpa,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var Vqn=H((Mou,Lqn)=>{"use strict";var{Transform:Jpa}=wt("node:stream"),{Console:Upa}=wt("node:console"),Kpa=process.versions.icu?"\u2705":"Y ",jpa=process.versions.icu?"\u274C":"N ";Lqn.exports=class{constructor({disableColors:t}={}){this.transform=new Jpa({transform(r,n,a){a(null,r)}}),this.logger=new Upa({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?Kpa:jpa,Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var Mqn=H((Hou,Oqn)=>{"use strict";var{kClients:dhe}=B2(),zpa=kwe(),{kAgent:hbr,kMockAgentSet:Hht,kMockAgentGet:Pqn,kDispatches:mbr,kIsMockActive:Yht,kNetConnect:phe,kGetNetConnect:qpa,kOptions:Qht,kFactory:Xht}=Pwe(),$pa=dbr(),efa=Ibr(),{matchValue:tfa,buildMockOptions:rfa}=LYe(),{InvalidArgumentError:Wqn,UndiciError:nfa}=Y0(),ifa=rYe(),sfa=Zqn(),ofa=Vqn(),Cbr=class extends ifa{constructor(t){if(super(t),this[phe]=!0,this[Yht]=!0,t?.agent&&typeof t.agent.dispatch!="function")throw new Wqn("Argument opts.agent must implement Agent");let r=t?.agent?t.agent:new zpa(t);this[hbr]=r,this[dhe]=r[dhe],this[Qht]=rfa(t)}get(t){let r=this[Pqn](t);return r||(r=this[Xht](t),this[Hht](t,r)),r}dispatch(t,r){return this.get(t.origin),this[hbr].dispatch(t,r)}async close(){await this[hbr].close(),this[dhe].clear()}deactivate(){this[Yht]=!1}activate(){this[Yht]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[phe])?this[phe].push(t):this[phe]=[t];else if(typeof t>"u")this[phe]=!0;else throw new Wqn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[phe]=!1}get isMockActive(){return this[Yht]}[Hht](t,r){this[dhe].set(t,r)}[Xht](t){let r=Object.assign({agent:this},this[Qht]);return this[Qht]&&this[Qht].connections===1?new $pa(t,r):new efa(t,r)}[Pqn](t){let r=this[dhe].get(t);if(r)return r;if(typeof t!="string"){let n=this[Xht]("http://localhost:9999");return this[Hht](t,n),n}for(let[n,a]of Array.from(this[dhe]))if(a&&typeof n!="string"&&tfa(n,t)){let o=this[Xht](t);return this[Hht](t,o),o[mbr]=a[mbr],o}}[qpa](){return this[phe]}pendingInterceptors(){let t=this[dhe];return Array.from(t.entries()).flatMap(([r,n])=>n[mbr].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new ofa}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new sfa("interceptor","interceptors").pluralize(r.length);throw new nfa(` ${n.count} ${n.noun} ${n.is} pending: ${t.format(r)} -`.trim())}};Oqn.exports=Cbr});var Jht=H((Hou,Xqn)=>{"use strict";var Hqn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:afa}=Y0(),cfa=kwe();Qqn()===void 0&&Yqn(new cfa);function Yqn(e){if(!e||typeof e.dispatch!="function")throw new afa("Argument agent must implement Agent");Object.defineProperty(globalThis,Hqn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function Qqn(){return globalThis[Hqn]}Xqn.exports={setGlobalDispatcher:Yqn,getGlobalDispatcher:Qqn}});var _br=H((Qou,Jqn)=>{"use strict";Jqn.exports=class{#e;constructor(t){if(typeof t!="object"||t===null)throw new TypeError("handler must be an object");this.#e=t}onConnect(...t){return this.#e.onConnect?.(...t)}onError(...t){return this.#e.onError?.(...t)}onUpgrade(...t){return this.#e.onUpgrade?.(...t)}onResponseStarted(...t){return this.#e.onResponseStarted?.(...t)}onHeaders(...t){return this.#e.onHeaders?.(...t)}onData(...t){return this.#e.onData?.(...t)}onComplete(...t){return this.#e.onComplete?.(...t)}onBodySent(...t){return this.#e.onBodySent?.(...t)}}});var Kqn=H((Xou,Uqn)=>{"use strict";var lfa=Bht();Uqn.exports=e=>{let t=e?.maxRedirections;return r=>function(a,o){let{maxRedirections:l=t,...A}=a;if(!l)return r(a,o);let f=new lfa(r,l,a,o);return r(A,f)}}});var zqn=H((Jou,jqn)=>{"use strict";var ufa=Lht();jqn.exports=e=>t=>function(n,a){return t(n,new ufa({...n,retryOptions:{...e,...n.retryOptions}},{handler:a,dispatch:t}))}});var $qn=H((Uou,qqn)=>{"use strict";var gfa=Em(),{InvalidArgumentError:Afa,RequestAbortedError:dfa}=Y0(),pfa=_br(),ybr=class extends pfa{#e=1024*1024;#t=null;#n=!1;#r=!1;#i=0;#s=null;#o=null;constructor({maxSize:t},r){if(super(r),t!=null&&(!Number.isFinite(t)||t<1))throw new Afa("maxSize must be a number greater than 0");this.#e=t??this.#e,this.#o=r}onConnect(t){this.#t=t,this.#o.onConnect(this.#g.bind(this))}#g(t){this.#r=!0,this.#s=t}onHeaders(t,r,n,a){let l=gfa.parseHeaders(r)["content-length"];if(l!=null&&l>this.#e)throw new dfa(`Response size (${l}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#o.onHeaders(t,r,n,a)}onError(t){this.#n||(t=this.#s??t,this.#o.onError(t))}onData(t){return this.#i=this.#i+t.length,this.#i>=this.#e&&(this.#n=!0,this.#r?this.#o.onError(this.#s):this.#o.onComplete([])),!0}onComplete(t){if(!this.#n){if(this.#r){this.#o.onError(this.reason);return}this.#o.onComplete(t)}}};function ffa({maxSize:e}={maxSize:1024*1024}){return t=>function(n,a){let{dumpMaxSize:o=e}=n,l=new ybr({maxSize:o},a);return t(n,l)}}qqn.exports=ffa});var fhe=H((Kou,o$n)=>{"use strict";var{kConstruct:Ifa}=B2(),{kEnumerableProperty:Owe}=Em(),{iteratorMixin:hfa,isValidHeaderName:VYe,isValidHeaderValue:t$n}=qW(),{webidl:__}=kk(),bbr=wt("node:assert"),Uht=wt("node:util"),aT=Symbol("headers map"),eO=Symbol("headers map sorted");function e$n(e){return e===10||e===13||e===9||e===32}function r$n(e){let t=0,r=e.length;for(;r>t&&e$n(e.charCodeAt(r-1));)--r;for(;r>t&&e$n(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function n$n(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function Ebr(e,t,r){if(r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(s$n(e)==="immutable")throw new TypeError("immutable");return Sbr(e).append(t,r,!1)}function i$n(e,t){return e[0]>1),r[I][0]<=C[0]?f=I+1:A=I;if(o!==I){for(l=o;l>f;)r[l]=r[--l];r[f]=C}}if(!n.next().done)throw new TypeError("Unreachable");return r}else{let n=0;for(let{0:a,1:{value:o}}of this[aT])r[n++]=[a,o],bbr(o!==null);return r.sort(i$n)}}},VX=class e{#e;#t;constructor(t=void 0){t!==Ifa&&(this.#t=new Kht,this.#e="none",t!==void 0&&(t=__.converters.HeadersInit(t,"Headers contructor","init"),n$n(this,t)))}append(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.append");let n="Headers.append";return t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),Ebr(this,t,r)}delete(t){if(__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.delete"),t=__.converters.ByteString(t,"Headers.delete","name"),!VYe(t))throw __.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.get");let r="Headers.get";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.get(t,!1)}has(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.has");let r="Headers.has";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.contains(t,!1)}set(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.set");let n="Headers.set";if(t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:n,value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:n,value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(t,r,!1)}getSetCookie(){__.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}get[eO](){if(this.#t[eO])return this.#t[eO];let t=[],r=this.#t.toSortedArray(),n=this.#t.cookies;if(n===null||n.length===1)return this.#t[eO]=r;for(let a=0;a>"](e,t,r,n.bind(e)):__.converters["record"](e,t,r)}throw __.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};o$n.exports={fill:n$n,compareHeaderName:i$n,Headers:VX,HeadersList:Kht,getHeadersGuard:s$n,setHeadersGuard:mfa,setHeadersList:Cfa,getHeadersList:Sbr}});var WYe=H((jou,I$n)=>{"use strict";var{Headers:A$n,HeadersList:a$n,fill:_fa,getHeadersGuard:yfa,setHeadersGuard:d$n,setHeadersList:p$n}=fhe(),{extractBody:c$n,cloneBody:bfa,mixinBody:Efa,hasFinalizationRegistry:Sfa,streamRegistry:vfa,bodyUnusable:Bfa}=dYe(),vbr=Em(),l$n=wt("node:util"),{kEnumerableProperty:tO}=vbr,{isValidReasonPhrase:wfa,isCancelled:Tfa,isAborted:Rfa,isBlobLike:Nfa,serializeJavascriptValueToJSONString:Dfa,isErrorLike:kfa,isomorphicEncode:xfa,environmentSettingsObject:Gfa}=qW(),{redirectStatusSet:Ffa,nullBodyStatus:Zfa}=sYe(),{kState:Mv,kHeaders:X$}=nae(),{webidl:Oh}=kk(),{FormData:Lfa}=gYe(),{URLSerializer:u$n}=eV(),{kConstruct:zht}=B2(),Bbr=wt("node:assert"),{types:Vfa}=wt("node:util"),Pfa=new TextEncoder("utf-8"),Ihe=class e{static error(){return PYe(qht(),"immutable")}static json(t,r={}){Oh.argumentLengthCheck(arguments,1,"Response.json"),r!==null&&(r=Oh.converters.ResponseInit(r));let n=Pfa.encode(Dfa(t)),a=c$n(n),o=PYe(Mwe({}),"response");return g$n(o,r,{body:a[0],type:"application/json"}),o}static redirect(t,r=302){Oh.argumentLengthCheck(arguments,1,"Response.redirect"),t=Oh.converters.USVString(t),r=Oh.converters["unsigned short"](r);let n;try{n=new URL(t,Gfa.settingsObject.baseUrl)}catch(l){throw new TypeError(`Failed to parse URL from ${t}`,{cause:l})}if(!Ffa.has(r))throw new RangeError(`Invalid status code ${r}`);let a=PYe(Mwe({}),"immutable");a[Mv].status=r;let o=xfa(u$n(n));return a[Mv].headersList.append("location",o,!0),a}constructor(t=null,r={}){if(t===zht)return;t!==null&&(t=Oh.converters.BodyInit(t)),r=Oh.converters.ResponseInit(r),this[Mv]=Mwe({}),this[X$]=new A$n(zht),d$n(this[X$],"response"),p$n(this[X$],this[Mv].headersList);let n=null;if(t!=null){let[a,o]=c$n(t);n={body:a,type:o}}g$n(this,r,n)}get type(){return Oh.brandCheck(this,e),this[Mv].type}get url(){Oh.brandCheck(this,e);let t=this[Mv].urlList,r=t[t.length-1]??null;return r===null?"":u$n(r,!0)}get redirected(){return Oh.brandCheck(this,e),this[Mv].urlList.length>1}get status(){return Oh.brandCheck(this,e),this[Mv].status}get ok(){return Oh.brandCheck(this,e),this[Mv].status>=200&&this[Mv].status<=299}get statusText(){return Oh.brandCheck(this,e),this[Mv].statusText}get headers(){return Oh.brandCheck(this,e),this[X$]}get body(){return Oh.brandCheck(this,e),this[Mv].body?this[Mv].body.stream:null}get bodyUsed(){return Oh.brandCheck(this,e),!!this[Mv].body&&vbr.isDisturbed(this[Mv].body.stream)}clone(){if(Oh.brandCheck(this,e),Bfa(this))throw Oh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=wbr(this[Mv]);return PYe(t,yfa(this[X$]))}[l$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${l$n.formatWithOptions(r,n)}`}};Efa(Ihe);Object.defineProperties(Ihe.prototype,{type:tO,url:tO,status:tO,ok:tO,redirected:tO,statusText:tO,headers:tO,clone:tO,body:tO,bodyUsed:tO,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ihe,{json:tO,redirect:tO,error:tO});function wbr(e){if(e.internalResponse)return f$n(wbr(e.internalResponse),e.type);let t=Mwe({...e,body:null});return e.body!=null&&(t.body=bfa(t,e.body)),t}function Mwe(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new a$n(e?.headersList):new a$n,urlList:e?.urlList?[...e.urlList]:[]}}function qht(e){let t=kfa(e);return Mwe({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Wfa(e){return e.type==="error"&&e.status===0}function jht(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return Bbr(!(n in t)),r[n]=a,!0}})}function f$n(e,t){if(t==="basic")return jht(e,{type:"basic",headersList:e.headersList});if(t==="cors")return jht(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return jht(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return jht(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Bbr(!1)}function Ofa(e,t=null){return Bbr(Tfa(e)),Rfa(e)?qht(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:t})):qht(Object.assign(new DOMException("Request was cancelled."),{cause:t}))}function g$n(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!wfa(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[Mv].status=t.status),"statusText"in t&&t.statusText!=null&&(e[Mv].statusText=t.statusText),"headers"in t&&t.headers!=null&&_fa(e[X$],t.headers),r){if(Zfa.includes(e.status))throw Oh.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[Mv].body=r.body,r.type!=null&&!e[Mv].headersList.contains("content-type",!0)&&e[Mv].headersList.append("content-type",r.type,!0)}}function PYe(e,t){let r=new Ihe(zht);return r[Mv]=e,r[X$]=new A$n(zht),p$n(r[X$],e.headersList),d$n(r[X$],t),Sfa&&e.body?.stream&&vfa.register(r,new WeakRef(e.body.stream)),r}Oh.converters.ReadableStream=Oh.interfaceConverter(ReadableStream);Oh.converters.FormData=Oh.interfaceConverter(Lfa);Oh.converters.URLSearchParams=Oh.interfaceConverter(URLSearchParams);Oh.converters.XMLHttpRequestBodyInit=function(e,t,r){return typeof e=="string"?Oh.converters.USVString(e,t,r):Nfa(e)?Oh.converters.Blob(e,t,r,{strict:!1}):ArrayBuffer.isView(e)||Vfa.isArrayBuffer(e)?Oh.converters.BufferSource(e,t,r):vbr.isFormDataLike(e)?Oh.converters.FormData(e,t,r,{strict:!1}):e instanceof URLSearchParams?Oh.converters.URLSearchParams(e,t,r):Oh.converters.DOMString(e,t,r)};Oh.converters.BodyInit=function(e,t,r){return e instanceof ReadableStream?Oh.converters.ReadableStream(e,t,r):e?.[Symbol.asyncIterator]?e:Oh.converters.XMLHttpRequestBodyInit(e,t,r)};Oh.converters.ResponseInit=Oh.dictionaryConverter([{key:"status",converter:Oh.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:Oh.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:Oh.converters.HeadersInit}]);I$n.exports={isNetworkError:Wfa,makeNetworkError:qht,makeResponse:Mwe,makeAppropriateNetworkError:Ofa,filterResponse:f$n,Response:Ihe,cloneResponse:wbr,fromInnerResponse:PYe}});var _$n=H((zou,C$n)=>{"use strict";var{kConnected:h$n,kSize:m$n}=B2(),Tbr=class{constructor(t){this.value=t}deref(){return this.value[h$n]===0&&this.value[m$n]===0?void 0:this.value}},Rbr=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[h$n]===0&&t[m$n]===0&&this.finalizer(r)})}unregister(t){}};C$n.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Tbr,FinalizationRegistry:Rbr}):{WeakRef,FinalizationRegistry}}});var Hwe=H((qou,F$n)=>{"use strict";var{extractBody:Mfa,mixinBody:Hfa,cloneBody:Yfa,bodyUnusable:y$n}=dYe(),{Headers:N$n,fill:Qfa,HeadersList:rmt,setHeadersGuard:Dbr,getHeadersGuard:Xfa,setHeadersList:D$n,getHeadersList:b$n}=fhe(),{FinalizationRegistry:Jfa}=_$n()(),emt=Em(),E$n=wt("node:util"),{isValidHTTPToken:Ufa,sameOrigin:S$n,environmentSettingsObject:$ht}=qW(),{forbiddenMethodsSet:Kfa,corsSafeListedMethodsSet:jfa,referrerPolicy:zfa,requestRedirect:qfa,requestMode:$fa,requestCredentials:eIa,requestCache:tIa,requestDuplex:rIa}=sYe(),{kEnumerableProperty:cT,normalizedMethodRecordsBase:nIa,normalizedMethodRecords:iIa}=emt,{kHeaders:rO,kSignal:tmt,kState:O1,kDispatcher:Nbr}=nae(),{webidl:vf}=kk(),{URLSerializer:sIa}=eV(),{kConstruct:nmt}=B2(),oIa=wt("node:assert"),{getMaxListeners:v$n,setMaxListeners:B$n,getEventListeners:aIa,defaultMaxListeners:w$n}=wt("node:events"),cIa=Symbol("abortController"),k$n=new Jfa(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),imt=new WeakMap;function T$n(e){return t;function t(){let r=e.deref();if(r!==void 0){k$n.unregister(t),this.removeEventListener("abort",t),r.abort(this.reason);let n=imt.get(r.signal);if(n!==void 0){if(n.size!==0){for(let a of n){let o=a.deref();o!==void 0&&o.abort(this.reason)}n.clear()}imt.delete(r.signal)}}}}var R$n=!1,dae=class e{constructor(t,r={}){if(t===nmt)return;let n="Request constructor";vf.argumentLengthCheck(arguments,1,n),t=vf.converters.RequestInfo(t,n,"input"),r=vf.converters.RequestInit(r,n,"init");let a=null,o=null,l=$ht.settingsObject.baseUrl,A=null;if(typeof t=="string"){this[Nbr]=r.dispatcher;let X;try{X=new URL(t,l)}catch(ae){throw new TypeError("Failed to parse URL from "+t,{cause:ae})}if(X.username||X.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);a=smt({urlList:[X]}),o="cors"}else this[Nbr]=r.dispatcher||t[Nbr],oIa(t instanceof e),a=t[O1],A=t[tmt];let f=$ht.settingsObject.origin,I="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&S$n(a.window,f)&&(I=a.window),r.window!=null)throw new TypeError(`'window' option '${I}' must be null`);"window"in r&&(I="no-window"),a=smt({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:$ht.settingsObject,window:I,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]});let C=Object.keys(r).length!==0;if(C&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),r.referrer!==void 0){let X=r.referrer;if(X==="")a.referrer="no-referrer";else{let ae;try{ae=new URL(X,l)}catch(ne){throw new TypeError(`Referrer "${X}" is not a valid URL.`,{cause:ne})}ae.protocol==="about:"&&ae.hostname==="client"||f&&!S$n(ae,$ht.settingsObject.baseUrl)?a.referrer="client":a.referrer=ae}}r.referrerPolicy!==void 0&&(a.referrerPolicy=r.referrerPolicy);let b;if(r.mode!==void 0?b=r.mode:b=o,b==="navigate")throw vf.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(b!=null&&(a.mode=b),r.credentials!==void 0&&(a.credentials=r.credentials),r.cache!==void 0&&(a.cache=r.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(a.redirect=r.redirect),r.integrity!=null&&(a.integrity=String(r.integrity)),r.keepalive!==void 0&&(a.keepalive=!!r.keepalive),r.method!==void 0){let X=r.method,ae=iIa[X];if(ae!==void 0)a.method=ae;else{if(!Ufa(X))throw new TypeError(`'${X}' is not a valid HTTP method.`);let ne=X.toUpperCase();if(Kfa.has(ne))throw new TypeError(`'${X}' HTTP method is unsupported.`);X=nIa[ne]??X,a.method=X}!R$n&&a.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),R$n=!0)}r.signal!==void 0&&(A=r.signal),this[O1]=a;let E=new AbortController;if(this[tmt]=E.signal,A!=null){if(!A||typeof A.aborted!="boolean"||typeof A.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(A.aborted)E.abort(A.reason);else{this[cIa]=E;let X=new WeakRef(E),ae=T$n(X);try{(typeof v$n=="function"&&v$n(A)===w$n||aIa(A,"abort").length>=w$n)&&B$n(1500,A)}catch{}emt.addAbortListener(A,ae),k$n.register(E,{signal:A,abort:ae},ae)}}if(this[rO]=new N$n(nmt),D$n(this[rO],a.headersList),Dbr(this[rO],"request"),b==="no-cors"){if(!jfa.has(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);Dbr(this[rO],"request-no-cors")}if(C){let X=b$n(this[rO]),ae=r.headers!==void 0?r.headers:new rmt(X);if(X.clear(),ae instanceof rmt){for(let{name:ne,value:ce}of ae.rawValues())X.append(ne,ce,!1);X.cookies=ae.cookies}else Qfa(this[rO],ae)}let N=t instanceof e?t[O1].body:null;if((r.body!=null||N!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(r.body!=null){let[X,ae]=Mfa(r.body,a.keepalive);B=X,ae&&!b$n(this[rO]).contains("content-type",!0)&&this[rO].append("content-type",ae)}let F=B??N;if(F!=null&&F.source==null){if(B!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let Q=F;if(B==null&&N!=null){if(y$n(t))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let X=new TransformStream;N.stream.pipeThrough(X),Q={source:N.source,length:N.length,stream:X.readable}}this[O1].body=Q}get method(){return vf.brandCheck(this,e),this[O1].method}get url(){return vf.brandCheck(this,e),sIa(this[O1].url)}get headers(){return vf.brandCheck(this,e),this[rO]}get destination(){return vf.brandCheck(this,e),this[O1].destination}get referrer(){return vf.brandCheck(this,e),this[O1].referrer==="no-referrer"?"":this[O1].referrer==="client"?"about:client":this[O1].referrer.toString()}get referrerPolicy(){return vf.brandCheck(this,e),this[O1].referrerPolicy}get mode(){return vf.brandCheck(this,e),this[O1].mode}get credentials(){return this[O1].credentials}get cache(){return vf.brandCheck(this,e),this[O1].cache}get redirect(){return vf.brandCheck(this,e),this[O1].redirect}get integrity(){return vf.brandCheck(this,e),this[O1].integrity}get keepalive(){return vf.brandCheck(this,e),this[O1].keepalive}get isReloadNavigation(){return vf.brandCheck(this,e),this[O1].reloadNavigation}get isHistoryNavigation(){return vf.brandCheck(this,e),this[O1].historyNavigation}get signal(){return vf.brandCheck(this,e),this[tmt]}get body(){return vf.brandCheck(this,e),this[O1].body?this[O1].body.stream:null}get bodyUsed(){return vf.brandCheck(this,e),!!this[O1].body&&emt.isDisturbed(this[O1].body.stream)}get duplex(){return vf.brandCheck(this,e),"half"}clone(){if(vf.brandCheck(this,e),y$n(this))throw new TypeError("unusable");let t=x$n(this[O1]),r=new AbortController;if(this.signal.aborted)r.abort(this.signal.reason);else{let n=imt.get(this.signal);n===void 0&&(n=new Set,imt.set(this.signal,n));let a=new WeakRef(r);n.add(a),emt.addAbortListener(r.signal,T$n(a))}return G$n(t,r.signal,Xfa(this[rO]))}[E$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${E$n.formatWithOptions(r,n)}`}};Hfa(dae);function smt(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new rmt(e.headersList):new rmt}}function x$n(e){let t=smt({...e,body:null});return e.body!=null&&(t.body=Yfa(t,e.body)),t}function G$n(e,t,r){let n=new dae(nmt);return n[O1]=e,n[tmt]=t,n[rO]=new N$n(nmt),D$n(n[rO],e.headersList),Dbr(n[rO],r),n}Object.defineProperties(dae.prototype,{method:cT,url:cT,headers:cT,redirect:cT,clone:cT,signal:cT,duplex:cT,destination:cT,body:cT,bodyUsed:cT,isHistoryNavigation:cT,isReloadNavigation:cT,keepalive:cT,integrity:cT,cache:cT,credentials:cT,attribute:cT,referrerPolicy:cT,referrer:cT,mode:cT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});vf.converters.Request=vf.interfaceConverter(dae);vf.converters.RequestInfo=function(e,t,r){return typeof e=="string"?vf.converters.USVString(e,t,r):e instanceof dae?vf.converters.Request(e,t,r):vf.converters.USVString(e,t,r)};vf.converters.AbortSignal=vf.interfaceConverter(AbortSignal);vf.converters.RequestInit=vf.dictionaryConverter([{key:"method",converter:vf.converters.ByteString},{key:"headers",converter:vf.converters.HeadersInit},{key:"body",converter:vf.nullableConverter(vf.converters.BodyInit)},{key:"referrer",converter:vf.converters.USVString},{key:"referrerPolicy",converter:vf.converters.DOMString,allowedValues:zfa},{key:"mode",converter:vf.converters.DOMString,allowedValues:$fa},{key:"credentials",converter:vf.converters.DOMString,allowedValues:eIa},{key:"cache",converter:vf.converters.DOMString,allowedValues:tIa},{key:"redirect",converter:vf.converters.DOMString,allowedValues:qfa},{key:"integrity",converter:vf.converters.DOMString},{key:"keepalive",converter:vf.converters.boolean},{key:"signal",converter:vf.nullableConverter(e=>vf.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:vf.converters.any},{key:"duplex",converter:vf.converters.DOMString,allowedValues:rIa},{key:"dispatcher",converter:vf.converters.any}]);F$n.exports={Request:dae,makeRequest:smt,fromInnerRequest:G$n,cloneRequest:x$n}});var MYe=H(($ou,j$n)=>{"use strict";var{makeNetworkError:_y,makeAppropriateNetworkError:omt,filterResponse:kbr,makeResponse:amt,fromInnerResponse:lIa}=WYe(),{HeadersList:Z$n}=fhe(),{Request:uIa,cloneRequest:gIa}=Hwe(),pae=wt("node:zlib"),{bytesMatch:AIa,makePolicyContainer:dIa,clonePolicyContainer:pIa,requestBadPort:fIa,TAOCheck:IIa,appendRequestOriginHeader:hIa,responseLocationURL:mIa,requestCurrentURL:L8,setRequestReferrerPolicyOnRedirect:CIa,tryUpgradeRequestToAPotentiallyTrustworthyURL:_Ia,createOpaqueTimingInfo:Lbr,appendFetchMetadata:yIa,corsCheck:bIa,crossOriginResourcePolicyCheck:EIa,determineRequestsReferrer:SIa,coarsenedSharedCurrentTime:OYe,createDeferredPromise:vIa,isBlobLike:BIa,sameOrigin:Zbr,isCancelled:hhe,isAborted:L$n,isErrorLike:wIa,fullyReadBody:TIa,readableStreamClose:RIa,isomorphicEncode:cmt,urlIsLocal:NIa,urlIsHttpHttpsScheme:Vbr,urlHasHttpsScheme:DIa,clampAndCoarsenConnectionTimingInfo:kIa,simpleRangeHeaderValue:xIa,buildContentRange:GIa,createInflate:FIa,extractMimeType:ZIa}=qW(),{kState:O$n,kDispatcher:LIa}=nae(),mhe=wt("node:assert"),{safelyExtractBody:Pbr,extractBody:V$n}=dYe(),{redirectStatusSet:M$n,nullBodyStatus:H$n,safeMethodsSet:VIa,requestBodyHeader:PIa,subresourceSet:WIa}=sYe(),OIa=wt("node:events"),{Readable:MIa,pipeline:HIa,finished:YIa}=wt("node:stream"),{addAbortListener:QIa,isErrored:XIa,isReadable:lmt,bufferToLowerCasedHeaderName:P$n}=Em(),{dataURLProcessor:JIa,serializeAMimeType:UIa,minimizeSupportedMimeType:KIa}=eV(),{getGlobalDispatcher:jIa}=Jht(),{webidl:zIa}=kk(),{STATUS_CODES:qIa}=wt("node:http"),$Ia=["GET","HEAD"],eha=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",xbr,umt=class extends OIa{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function tha(e){Y$n(e,"fetch")}function rha(e,t=void 0){zIa.argumentLengthCheck(arguments,1,"globalThis.fetch");let r=vIa(),n;try{n=new uIa(e,t)}catch(C){return r.reject(C),r.promise}let a=n[O$n];if(n.signal.aborted)return Gbr(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=!1,f=null;return QIa(n.signal,()=>{A=!0,mhe(f!=null),f.abort(n.signal.reason);let C=l?.deref();Gbr(r,a,C,n.signal.reason)}),f=X$n({request:a,processResponseEndOfBody:tha,processResponse:C=>{if(!A){if(C.aborted){Gbr(r,a,l,f.serializedAbortReason);return}if(C.type==="error"){r.reject(new TypeError("fetch failed",{cause:C.error}));return}l=new WeakRef(lIa(C,"immutable")),r.resolve(l.deref()),r=null}},dispatcher:n[LIa]}),r.promise}function Y$n(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;Vbr(r)&&n!==null&&(e.timingAllowPassed||(n=Lbr({startTime:n.startTime}),a=""),n.endTime=OYe(),e.timingInfo=n,Q$n(n,r.href,t,globalThis,a))}var Q$n=performance.markResourceTiming;function Gbr(e,t,r,n){if(e&&e.reject(n),t.body!=null&&lmt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[O$n];a.body!=null&&lmt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function X$n({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A=jIa()}){mhe(A);let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=OYe(I),b=Lbr({startTime:C}),E={controller:new umt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return mhe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=pIa(e.client.policyContainer):e.policyContainer=dIa()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,WIa.has(e.destination),J$n(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function J$n(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!NIa(L8(r))&&(n=_y("local URLs only")),_Ia(r),fIa(r)==="blocked"&&(n=_y("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=SIa(r)),n===null&&(n=await(async()=>{let o=L8(r);return Zbr(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await W$n(e)):r.mode==="same-origin"?_y('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?_y('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await W$n(e)):Vbr(L8(r))?(r.responseTainting="cors",await U$n(e)):_y("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=kbr(n,"basic"):r.responseTainting==="cors"?n=kbr(n,"cors"):r.responseTainting==="opaque"?n=kbr(n,"opaque"):mhe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range",!0)&&(n=a=_y()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||H$n.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>Fbr(e,_y(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!AIa(A,r.integrity)){o("integrity mismatch");return}n.body=Pbr(A)[0],Fbr(e,n)};await TIa(n.body,l,o)}else Fbr(e,n)}function W$n(e){if(hhe(e)&&e.request.redirectCount===0)return Promise.resolve(omt(e));let{request:t}=e,{protocol:r}=L8(t);switch(r){case"about:":return Promise.resolve(_y("about scheme is not supported"));case"blob:":{xbr||(xbr=wt("node:buffer").resolveObjectURL);let n=L8(t);if(n.search.length!==0)return Promise.resolve(_y("NetworkError when attempting to fetch resource."));let a=xbr(n.toString());if(t.method!=="GET"||!BIa(a))return Promise.resolve(_y("invalid method"));let o=amt(),l=a.size,A=cmt(`${l}`),f=a.type;if(t.headersList.contains("range",!0)){o.rangeRequested=!0;let I=t.headersList.get("range",!0),C=xIa(I,!0);if(C==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let{rangeStartValue:b,rangeEndValue:E}=C;if(b===null)b=l-E,E=b+E-1;else{if(b>=l)return Promise.resolve(_y("Range start is greater than the blob's size."));(E===null||E>=l)&&(E=l-1)}let N=a.slice(b,E,f),B=V$n(N);o.body=B[0];let F=cmt(`${N.size}`),Q=GIa(b,E,l);o.status=206,o.statusText="Partial Content",o.headersList.set("content-length",F,!0),o.headersList.set("content-type",f,!0),o.headersList.set("content-range",Q,!0)}else{let I=V$n(a);o.statusText="OK",o.body=I[0],o.headersList.set("content-length",A,!0),o.headersList.set("content-type",f,!0)}return Promise.resolve(o)}case"data:":{let n=L8(t),a=JIa(n);if(a==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let o=UIa(a.mimeType);return Promise.resolve(amt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:Pbr(a.body)[0]}))}case"file:":return Promise.resolve(_y("not implemented... yet..."));case"http:":case"https:":return U$n(e).catch(n=>_y(n));default:return Promise.resolve(_y("unknown scheme"))}}function nha(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Fbr(e,t){let r=e.timingInfo,n=()=>{let o=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=r),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;r.endTime=o;let A=t.cacheState,f=t.bodyInfo;t.timingAllowPassed||(r=Lbr(r),A="");let I=0;if(e.request.mode!=="navigator"||!t.hasCrossOriginRedirects){I=t.status;let C=ZIa(t.headersList);C!=="failure"&&(f.contentType=KIa(C))}e.request.initiatorType!=null&&Q$n(r,e.request.url.href,e.request.initiatorType,globalThis,A,f,I)};let l=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>l())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let a=t.type==="error"?t:t.internalResponse??t;a.body==null?n():YIa(a.body.stream,()=>{n()})}async function U$n(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await K$n(e),t.responseTainting==="cors"&&bIa(t,r)==="failure")return _y("cors failure");IIa(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&EIa(t.origin,t.client,t.destination,n)==="blocked"?_y("blocked"):(M$n.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),t.redirect==="error"?r=_y("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await iha(e,r):mhe(!1)),r.timingInfo=a,r)}function iha(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=mIa(n,L8(r).hash),a==null)return t}catch(l){return Promise.resolve(_y(l))}if(!Vbr(a))return Promise.resolve(_y("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(_y("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!Zbr(r,a))return Promise.resolve(_y('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(_y('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(_y());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!$Ia.includes(r.method)){r.method="GET",r.body=null;for(let l of PIa)r.headersList.delete(l)}Zbr(L8(r),a)||(r.headersList.delete("authorization",!0),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie",!0),r.headersList.delete("host",!0)),r.body!=null&&(mhe(r.body.source!=null),r.body=Pbr(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=OYe(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),CIa(r,n),J$n(e,!0)}async function K$n(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=gIa(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=cmt(`${C}`)),b!=null&&o.headersList.append("content-length",b,!0),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",cmt(o.referrer.href),!0),hIa(o),yIa(o),o.headersList.contains("user-agent",!0)||o.headersList.append("user-agent",eha),o.cache==="default"&&(o.headersList.contains("if-modified-since",!0)||o.headersList.contains("if-none-match",!0)||o.headersList.contains("if-unmodified-since",!0)||o.headersList.contains("if-match",!0)||o.headersList.contains("if-range",!0))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control",!0)&&o.headersList.append("cache-control","max-age=0",!0),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma",!0)||o.headersList.append("pragma","no-cache",!0),o.headersList.contains("cache-control",!0)||o.headersList.append("cache-control","no-cache",!0)),o.headersList.contains("range",!0)&&o.headersList.append("accept-encoding","identity",!0),o.headersList.contains("accept-encoding",!0)||(DIa(L8(o))?o.headersList.append("accept-encoding","br, gzip, deflate",!0):o.headersList.append("accept-encoding","gzip, deflate",!0)),o.headersList.delete("host",!0),A==null&&(o.cache="no-store"),o.cache!=="no-store"&&o.cache,l==null){if(o.cache==="only-if-cached")return _y("only if cached");let E=await sha(a,I,r);!VIa.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range",!0)&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?_y():hhe(e)?omt(e):_y("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(hhe(e))return omt(e);e.controller.connection.destroy(),l=await K$n(e,t,!0)}return l}async function sha(e,t=!1,r=!1){mhe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B,F=!0){this.destroyed||(this.destroyed=!0,F&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){hhe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{hhe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{hhe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=amt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=amt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),omt(e,B)):_y(B)}let I=async()=>{await e.controller.resume()},C=B=>{hhe(e)||e.controller.abort(B)},b=new ReadableStream({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)},type:"bytes"});a.body={stream:b,source:null,length:null},e.controller.onAborted=E,e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:X,value:ae}=await e.controller.next();if(L$n(e))break;B=X?void 0:ae}catch(X){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=X,F=!0)}if(B===void 0){RIa(e.controller.controller),nha(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}let Q=new Uint8Array(B);if(Q.byteLength&&e.controller.controller.enqueue(Q),XIa(b)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(B){L$n(e)?(a.aborted=!0,lmt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):lmt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:wIa(B)?B:void 0})),e.controller.connection.destroy()}return a;function N({body:B}){let F=L8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:Q.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;o.finalConnectionTimingInfo=kIa(void 0,o.postRedirectStartTime,e.crossOriginIsolatedCapability),ce.destroyed?ne(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne),o.finalNetworkRequestStartTime=OYe(e.crossOriginIsolatedCapability)},onResponseStarted(){o.finalNetworkResponseStartTime=OYe(e.crossOriginIsolatedCapability)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new Z$n;for(let Me=0;MeMe.trim())),be=Se.get("location",!0),this.body=new MIa({read:fe});let k=[],et=be&&n.redirect==="follow"&&M$n.has(ne);if(de.length!==0&&n.method!=="HEAD"&&n.method!=="CONNECT"&&!H$n.includes(ne)&&!et)for(let Me=0;Me{Me&&this.onError(Me)}).on("error",ct):this.body.on("error",ct)}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new Z$n;for(let de=0;de{"use strict";z$n.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var $$n=H((tau,q$n)=>{"use strict";var{webidl:nO}=kk(),gmt=Symbol("ProgressEvent state"),Obr=class e extends Event{constructor(t,r={}){t=nO.converters.DOMString(t,"ProgressEvent constructor","type"),r=nO.converters.ProgressEventInit(r??{}),super(t,r),this[gmt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return nO.brandCheck(this,e),this[gmt].lengthComputable}get loaded(){return nO.brandCheck(this,e),this[gmt].loaded}get total(){return nO.brandCheck(this,e),this[gmt].total}};nO.converters.ProgressEventInit=nO.dictionaryConverter([{key:"lengthComputable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:nO.converters.boolean,defaultValue:()=>!1}]);q$n.exports={ProgressEvent:Obr}});var tei=H((rau,eei)=>{"use strict";function oha(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}eei.exports={getEncoding:oha}});var lei=H((nau,cei)=>{"use strict";var{kState:Ywe,kError:Mbr,kResult:rei,kAborted:HYe,kLastProgressEventFired:Hbr}=Wbr(),{ProgressEvent:aha}=$$n(),{getEncoding:nei}=tei(),{serializeAMimeType:cha,parseMIMEType:iei}=eV(),{types:lha}=wt("node:util"),{StringDecoder:sei}=wt("string_decoder"),{btoa:oei}=wt("node:buffer"),uha={enumerable:!0,writable:!1,configurable:!1};function gha(e,t,r,n){if(e[Ywe]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Ywe]="loading",e[rei]=null,e[Mbr]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[HYe];)try{let{done:I,value:C}=await A;if(f&&!e[HYe]&&queueMicrotask(()=>{fae("loadstart",e)}),f=!1,!I&&lha.isUint8Array(C))l.push(C),(e[Hbr]===void 0||Date.now()-e[Hbr]>=50)&&!e[HYe]&&(e[Hbr]=Date.now(),queueMicrotask(()=>{fae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[Ywe]="done";try{let b=Aha(l,r,t.type,n);if(e[HYe])return;e[rei]=b,fae("load",e)}catch(b){e[Mbr]=b,fae("error",e)}e[Ywe]!=="loading"&&fae("loadend",e)});break}}catch(I){if(e[HYe])return;queueMicrotask(()=>{e[Ywe]="done",e[Mbr]=I,fae("error",e),e[Ywe]!=="loading"&&fae("loadend",e)});break}})()}function fae(e,t){let r=new aha(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function Aha(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=iei(r||"application/octet-stream");o!=="failure"&&(a+=cha(o)),a+=";base64,";let l=new sei("latin1");for(let A of e)a+=oei(l.write(A));return a+=oei(l.end()),a}case"Text":{let a="failure";if(n&&(a=nei(n)),a==="failure"&&r){let o=iei(r);o!=="failure"&&(a=nei(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),dha(e,a)}case"ArrayBuffer":return aei(e).buffer;case"BinaryString":{let a="",o=new sei("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function dha(e,t){let r=aei(e),n=pha(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function pha(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function aei(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}cei.exports={staticPropertyDescriptors:uha,readOperation:gha,fireAProgressEvent:fae}});var dei=H((iau,Aei)=>{"use strict";var{staticPropertyDescriptors:Qwe,readOperation:Amt,fireAProgressEvent:uei}=lei(),{kState:Che,kError:gei,kResult:dmt,kEvents:h0,kAborted:fha}=Wbr(),{webidl:ib}=kk(),{kEnumerableProperty:nV}=Em(),PX=class e extends EventTarget{constructor(){super(),this[Che]="empty",this[dmt]=null,this[gei]=null,this[h0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"ArrayBuffer")}readAsBinaryString(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"BinaryString")}readAsText(t,r=void 0){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsText"),t=ib.converters.Blob(t,{strict:!1}),r!==void 0&&(r=ib.converters.DOMString(r,"FileReader.readAsText","encoding")),Amt(this,t,"Text",r)}readAsDataURL(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"DataURL")}abort(){if(this[Che]==="empty"||this[Che]==="done"){this[dmt]=null;return}this[Che]==="loading"&&(this[Che]="done",this[dmt]=null),this[fha]=!0,uei("abort",this),this[Che]!=="loading"&&uei("loadend",this)}get readyState(){switch(ib.brandCheck(this,e),this[Che]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return ib.brandCheck(this,e),this[dmt]}get error(){return ib.brandCheck(this,e),this[gei]}get onloadend(){return ib.brandCheck(this,e),this[h0].loadend}set onloadend(t){ib.brandCheck(this,e),this[h0].loadend&&this.removeEventListener("loadend",this[h0].loadend),typeof t=="function"?(this[h0].loadend=t,this.addEventListener("loadend",t)):this[h0].loadend=null}get onerror(){return ib.brandCheck(this,e),this[h0].error}set onerror(t){ib.brandCheck(this,e),this[h0].error&&this.removeEventListener("error",this[h0].error),typeof t=="function"?(this[h0].error=t,this.addEventListener("error",t)):this[h0].error=null}get onloadstart(){return ib.brandCheck(this,e),this[h0].loadstart}set onloadstart(t){ib.brandCheck(this,e),this[h0].loadstart&&this.removeEventListener("loadstart",this[h0].loadstart),typeof t=="function"?(this[h0].loadstart=t,this.addEventListener("loadstart",t)):this[h0].loadstart=null}get onprogress(){return ib.brandCheck(this,e),this[h0].progress}set onprogress(t){ib.brandCheck(this,e),this[h0].progress&&this.removeEventListener("progress",this[h0].progress),typeof t=="function"?(this[h0].progress=t,this.addEventListener("progress",t)):this[h0].progress=null}get onload(){return ib.brandCheck(this,e),this[h0].load}set onload(t){ib.brandCheck(this,e),this[h0].load&&this.removeEventListener("load",this[h0].load),typeof t=="function"?(this[h0].load=t,this.addEventListener("load",t)):this[h0].load=null}get onabort(){return ib.brandCheck(this,e),this[h0].abort}set onabort(t){ib.brandCheck(this,e),this[h0].abort&&this.removeEventListener("abort",this[h0].abort),typeof t=="function"?(this[h0].abort=t,this.addEventListener("abort",t)):this[h0].abort=null}};PX.EMPTY=PX.prototype.EMPTY=0;PX.LOADING=PX.prototype.LOADING=1;PX.DONE=PX.prototype.DONE=2;Object.defineProperties(PX.prototype,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe,readAsArrayBuffer:nV,readAsBinaryString:nV,readAsText:nV,readAsDataURL:nV,abort:nV,readyState:nV,result:nV,error:nV,onloadstart:nV,onprogress:nV,onload:nV,onabort:nV,onerror:nV,onloadend:nV,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(PX,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe});Aei.exports={FileReader:PX}});var pmt=H((sau,pei)=>{"use strict";pei.exports={kConstruct:B2().kConstruct}});var hei=H((oau,Iei)=>{"use strict";var Iha=wt("node:assert"),{URLSerializer:fei}=eV(),{isValidHeaderName:hha}=qW();function mha(e,t,r=!1){let n=fei(e,r),a=fei(t,r);return n===a}function Cha(e){Iha(e!==null);let t=[];for(let r of e.split(","))r=r.trim(),hha(r)&&t.push(r);return t}Iei.exports={urlEquals:mha,getFieldValues:Cha}});var _ei=H((aau,Cei)=>{"use strict";var{kConstruct:_ha}=pmt(),{urlEquals:yha,getFieldValues:Ybr}=hei(),{kEnumerableProperty:_he,isDisturbed:bha}=Em(),{webidl:Bp}=kk(),{Response:Eha,cloneResponse:Sha,fromInnerResponse:vha}=WYe(),{Request:J$,fromInnerRequest:Bha}=Hwe(),{kState:WX}=nae(),{fetching:wha}=MYe(),{urlIsHttpHttpsScheme:fmt,createDeferredPromise:Xwe,readAllBytes:Tha}=qW(),Qbr=wt("node:assert"),Imt=class e{#e;constructor(){arguments[0]!==_ha&&Bp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Bp.brandCheck(this,e);let n="Cache.match";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=this.#i(t,r,1);if(a.length!==0)return a[0]}async matchAll(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.matchAll";return t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options"),this.#i(t,r)}async add(t){Bp.brandCheck(this,e);let r="Cache.add";Bp.argumentLengthCheck(arguments,1,r),t=Bp.converters.RequestInfo(t,r,"request");let n=[t];return await this.addAll(n)}async addAll(t){Bp.brandCheck(this,e);let r="Cache.addAll";Bp.argumentLengthCheck(arguments,1,r);let n=[],a=[];for(let E of t){if(E===void 0)throw Bp.errors.conversionFailed({prefix:r,argument:"Argument 1",types:["undefined is not allowed"]});if(E=Bp.converters.RequestInfo(E),typeof E=="string")continue;let N=E[WX];if(!fmt(N.url)||N.method!=="GET")throw Bp.errors.exception({header:r,message:"Expected http/s scheme when method is not GET."})}let o=[];for(let E of t){let N=new J$(E)[WX];if(!fmt(N.url))throw Bp.errors.exception({header:r,message:"Expected http/s scheme."});N.initiator="fetch",N.destination="subresource",a.push(N);let B=Xwe();o.push(wha({request:N,processResponse(F){if(F.type==="error"||F.status===206||F.status<200||F.status>299)B.reject(Bp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(F.headersList.contains("vary")){let Q=Ybr(F.headersList.get("vary"));for(let X of Q)if(X==="*"){B.reject(Bp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let ae of o)ae.abort();return}}},processResponseEndOfBody(F){if(F.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(F)}})),n.push(B.promise)}let A=await Promise.all(n),f=[],I=0;for(let E of A){let N={type:"put",request:a[I],response:E};f.push(N),I++}let C=Xwe(),b=null;try{this.#t(f)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve(void 0):C.reject(b)}),C.promise}async put(t,r){Bp.brandCheck(this,e);let n="Cache.put";Bp.argumentLengthCheck(arguments,2,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.Response(r,n,"response");let a=null;if(t instanceof J$?a=t[WX]:a=new J$(t)[WX],!fmt(a.url)||a.method!=="GET")throw Bp.errors.exception({header:n,message:"Expected an http/s scheme when method is not GET"});let o=r[WX];if(o.status===206)throw Bp.errors.exception({header:n,message:"Got 206 status"});if(o.headersList.contains("vary")){let N=Ybr(o.headersList.get("vary"));for(let B of N)if(B==="*")throw Bp.errors.exception({header:n,message:"Got * vary field value"})}if(o.body&&(bha(o.body.stream)||o.body.stream.locked))throw Bp.errors.exception({header:n,message:"Response body is locked or disturbed"});let l=Sha(o),A=Xwe();if(o.body!=null){let B=o.body.stream.getReader();Tha(B).then(A.resolve,A.reject)}else A.resolve(void 0);let f=[],I={type:"put",request:a,response:l};f.push(I);let C=await A.promise;l.body!=null&&(l.body.source=C);let b=Xwe(),E=null;try{this.#t(f)}catch(N){E=N}return queueMicrotask(()=>{E===null?b.resolve():b.reject(E)}),b.promise}async delete(t,r={}){Bp.brandCheck(this,e);let n="Cache.delete";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return!1}else Qbr(typeof t=="string"),a=new J$(t)[WX];let o=[],l={type:"delete",request:a,options:r};o.push(l);let A=Xwe(),f=null,I;try{I=this.#t(o)}catch(C){f=C}return queueMicrotask(()=>{f===null?A.resolve(!!I?.length):A.reject(f)}),A.promise}async keys(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.keys";t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=Xwe(),l=[];if(t===void 0)for(let A of this.#e)l.push(A[0]);else{let A=this.#n(a,r);for(let f of A)l.push(f[0])}return queueMicrotask(()=>{let A=[];for(let f of l){let I=Bha(f,new AbortController().signal,"immutable");A.push(I)}o.resolve(Object.freeze(A))}),o.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);Qbr(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!fmt(f.url))throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);Qbr(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!yha(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=Ybr(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}#i(t,r,n=1/0){let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=[];if(t===void 0)for(let A of this.#e)o.push(A[1]);else{let A=this.#n(a,r);for(let f of A)o.push(f[1])}let l=[];for(let A of o){let f=vha(A,"immutable");if(l.push(f.clone()),l.length>=n)break}return Object.freeze(l)}};Object.defineProperties(Imt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:_he,matchAll:_he,add:_he,addAll:_he,put:_he,delete:_he,keys:_he});var mei=[{key:"ignoreSearch",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:Bp.converters.boolean,defaultValue:()=>!1}];Bp.converters.CacheQueryOptions=Bp.dictionaryConverter(mei);Bp.converters.MultiCacheQueryOptions=Bp.dictionaryConverter([...mei,{key:"cacheName",converter:Bp.converters.DOMString}]);Bp.converters.Response=Bp.interfaceConverter(Eha);Bp.converters["sequence"]=Bp.sequenceConverter(Bp.converters.RequestInfo);Cei.exports={Cache:Imt}});var bei=H((cau,yei)=>{"use strict";var{kConstruct:YYe}=pmt(),{Cache:hmt}=_ei(),{webidl:MZ}=kk(),{kEnumerableProperty:QYe}=Em(),mmt=class e{#e=new Map;constructor(){arguments[0]!==YYe&&MZ.illegalConstructor()}async match(t,r={}){if(MZ.brandCheck(this,e),MZ.argumentLengthCheck(arguments,1,"CacheStorage.match"),t=MZ.converters.RequestInfo(t),r=MZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new hmt(YYe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new hmt(YYe,n).match(t,r);if(o!==void 0)return o}}async has(t){MZ.brandCheck(this,e);let r="CacheStorage.has";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)}async open(t){MZ.brandCheck(this,e);let r="CacheStorage.open";if(MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)){let a=this.#e.get(t);return new hmt(YYe,a)}let n=[];return this.#e.set(t,n),new hmt(YYe,n)}async delete(t){MZ.brandCheck(this,e);let r="CacheStorage.delete";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.delete(t)}async keys(){return MZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(mmt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:QYe,has:QYe,open:QYe,delete:QYe,keys:QYe});yei.exports={CacheStorage:mmt}});var Sei=H((lau,Eei)=>{"use strict";Eei.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Xbr=H((uau,Rei)=>{"use strict";function Rha(e){for(let t=0;t=0&&r<=8||r>=10&&r<=31||r===127)return!0}return!1}function vei(e){for(let t=0;t126||r===34||r===40||r===41||r===60||r===62||r===64||r===44||r===59||r===58||r===92||r===47||r===91||r===93||r===63||r===61||r===123||r===125)throw new Error("Invalid cookie name")}}function Bei(e){let t=e.length,r=0;if(e[0]==='"'){if(t===1||e[t-1]!=='"')throw new Error("Invalid cookie value");--t,++r}for(;r126||n===34||n===44||n===59||n===92)throw new Error("Invalid cookie value")}}function wei(e){for(let t=0;tt.toString().padStart(2,"0"));function Tei(e){return typeof e=="number"&&(e=new Date(e)),`${Dha[e.getUTCDay()]}, ${Cmt[e.getUTCDate()]} ${kha[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Cmt[e.getUTCHours()]}:${Cmt[e.getUTCMinutes()]}:${Cmt[e.getUTCSeconds()]} GMT`}function xha(e){if(e<0)throw new Error("Invalid cookie max-age")}function Gha(e){if(e.name.length===0)return null;vei(e.name),Bei(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(xha(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(Nha(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(wei(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${Tei(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}Rei.exports={isCTLExcludingHtab:Rha,validateCookieName:vei,validateCookiePath:wei,validateCookieValue:Bei,toIMFDate:Tei,stringify:Gha}});var Dei=H((gau,Nei)=>{"use strict";var{maxNameValuePairSize:Fha,maxAttributeValueSize:Zha}=Sei(),{isCTLExcludingHtab:Lha}=Xbr(),{collectASequenceOfCodePointsFast:_mt}=eV(),Vha=wt("node:assert");function Pha(e){if(Lha(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=_mt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=_mt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>Fha?null:{name:n,value:a,...Jwe(r)}}function Jwe(e,t={}){if(e.length===0)return t;Vha(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=_mt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=_mt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Zha)return Jwe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return Jwe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return Jwe(e,t)}Nei.exports={parseSetCookie:Pha,parseUnparsedAttributes:Jwe}});var Gei=H((Aau,xei)=>{"use strict";var{parseSetCookie:Wha}=Dei(),{stringify:Oha}=Xbr(),{webidl:nC}=kk(),{Headers:ymt}=fhe();function Mha(e){nC.argumentLengthCheck(arguments,1,"getCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function Hha(e,t,r){nC.brandCheck(e,ymt,{strict:!1});let n="deleteCookie";nC.argumentLengthCheck(arguments,2,n),t=nC.converters.DOMString(t,n,"name"),r=nC.converters.DeleteCookieAttributes(r),kei(e,{name:t,value:"",expires:new Date(0),...r})}function Yha(e){nC.argumentLengthCheck(arguments,1,"getSetCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.getSetCookie();return t?t.map(r=>Wha(r)):[]}function kei(e,t){nC.argumentLengthCheck(arguments,2,"setCookie"),nC.brandCheck(e,ymt,{strict:!1}),t=nC.converters.Cookie(t);let r=Oha(t);r&&e.append("Set-Cookie",r)}nC.converters.DeleteCookieAttributes=nC.dictionaryConverter([{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null}]);nC.converters.Cookie=nC.dictionaryConverter([{converter:nC.converters.DOMString,key:"name"},{converter:nC.converters.DOMString,key:"value"},{converter:nC.nullableConverter(e=>typeof e=="number"?nC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"secure",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:nC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:nC.sequenceConverter(nC.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);xei.exports={getCookies:Mha,deleteCookie:Hha,getSetCookies:Yha,setCookie:kei}});var Kwe=H((dau,Zei)=>{"use strict";var{webidl:Wp}=kk(),{kEnumerableProperty:iV}=Em(),{kConstruct:Fei}=B2(),{MessagePort:Qha}=wt("node:worker_threads"),Uwe=class e extends Event{#e;constructor(t,r={}){if(t===Fei){super(arguments[1],arguments[2]);return}let n="MessageEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.MessageEventInit(r,n,"eventInitDict"),super(t,r),this.#e=r}get data(){return Wp.brandCheck(this,e),this.#e.data}get origin(){return Wp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Wp.brandCheck(this,e),this.#e.lastEventId}get source(){return Wp.brandCheck(this,e),this.#e.source}get ports(){return Wp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Wp.brandCheck(this,e),Wp.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}static createFastMessageEvent(t,r){let n=new e(Fei,t,r);return n.#e=r,n.#e.data??=null,n.#e.origin??="",n.#e.lastEventId??="",n.#e.source??=null,n.#e.ports??=[],n}},{createFastMessageEvent:Xha}=Uwe;delete Uwe.createFastMessageEvent;var bmt=class e extends Event{#e;constructor(t,r={}){let n="CloseEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Wp.brandCheck(this,e),this.#e.wasClean}get code(){return Wp.brandCheck(this,e),this.#e.code}get reason(){return Wp.brandCheck(this,e),this.#e.reason}},Emt=class e extends Event{#e;constructor(t,r){let n="ErrorEvent constructor";Wp.argumentLengthCheck(arguments,1,n),super(t,r),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Wp.brandCheck(this,e),this.#e.message}get filename(){return Wp.brandCheck(this,e),this.#e.filename}get lineno(){return Wp.brandCheck(this,e),this.#e.lineno}get colno(){return Wp.brandCheck(this,e),this.#e.colno}get error(){return Wp.brandCheck(this,e),this.#e.error}};Object.defineProperties(Uwe.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:iV,origin:iV,lastEventId:iV,source:iV,ports:iV,initMessageEvent:iV});Object.defineProperties(bmt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:iV,code:iV,wasClean:iV});Object.defineProperties(Emt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:iV,filename:iV,lineno:iV,colno:iV,error:iV});Wp.converters.MessagePort=Wp.interfaceConverter(Qha);Wp.converters["sequence"]=Wp.sequenceConverter(Wp.converters.MessagePort);var Jbr=[{key:"bubbles",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Wp.converters.boolean,defaultValue:()=>!1}];Wp.converters.MessageEventInit=Wp.dictionaryConverter([...Jbr,{key:"data",converter:Wp.converters.any,defaultValue:()=>null},{key:"origin",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"source",converter:Wp.nullableConverter(Wp.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:Wp.converters["sequence"],defaultValue:()=>new Array(0)}]);Wp.converters.CloseEventInit=Wp.dictionaryConverter([...Jbr,{key:"wasClean",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"code",converter:Wp.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:Wp.converters.USVString,defaultValue:()=>""}]);Wp.converters.ErrorEventInit=Wp.dictionaryConverter([...Jbr,{key:"message",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:Wp.converters.any}]);Zei.exports={MessageEvent:Uwe,CloseEvent:bmt,ErrorEvent:Emt,createFastMessageEvent:Xha}});var yhe=H((pau,Lei)=>{"use strict";var Jha="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Uha={enumerable:!0,writable:!1,configurable:!1},Kha={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},jha={NOT_SENT:0,PROCESSING:1,SENT:2},zha={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},qha=2**16-1,$ha={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ema=Buffer.allocUnsafe(0),tma={string:1,typedArray:2,arrayBuffer:3,blob:4};Lei.exports={uid:Jha,sentCloseFrameState:jha,staticPropertyDescriptors:Uha,states:Kha,opcodes:zha,maxUnsigned16Bit:qha,parserStates:$ha,emptyBuffer:ema,sendHints:tma}});var XYe=H((fau,Vei)=>{"use strict";Vei.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var KYe=H((Iau,Jei)=>{"use strict";var{kReadyState:JYe,kController:rma,kResponse:nma,kBinaryType:ima,kWebSocketURL:sma}=XYe(),{states:UYe,opcodes:Iae}=yhe(),{ErrorEvent:oma,createFastMessageEvent:ama}=Kwe(),{isUtf8:cma}=wt("node:buffer"),{collectASequenceOfCodePointsFast:lma,removeHTTPWhitespace:Pei}=eV();function uma(e){return e[JYe]===UYe.CONNECTING}function gma(e){return e[JYe]===UYe.OPEN}function Ama(e){return e[JYe]===UYe.CLOSING}function dma(e){return e[JYe]===UYe.CLOSED}function Ubr(e,t,r=(a,o)=>new Event(a,o),n={}){let a=r(e,n);t.dispatchEvent(a)}function pma(e,t,r){if(e[JYe]!==UYe.OPEN)return;let n;if(t===Iae.TEXT)try{n=Xei(r)}catch{Oei(e,"Received invalid UTF-8 in text frame.");return}else t===Iae.BINARY&&(e[ima]==="blob"?n=new Blob([r]):n=fma(r));Ubr("message",e,ama,{origin:e[sma].origin,data:n})}function fma(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function Ima(e){if(e.length===0)return!1;for(let t=0;t126||r===34||r===40||r===41||r===44||r===47||r===58||r===59||r===60||r===61||r===62||r===63||r===64||r===91||r===92||r===93||r===123||r===125)return!1}return!0}function hma(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function Oei(e,t){let{[rma]:r,[nma]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&Ubr("error",e,(a,o)=>new oma(a,o),{error:new Error(t),message:t})}function Mei(e){return e===Iae.CLOSE||e===Iae.PING||e===Iae.PONG}function Hei(e){return e===Iae.CONTINUATION}function Yei(e){return e===Iae.TEXT||e===Iae.BINARY}function mma(e){return Yei(e)||Hei(e)||Mei(e)}function Cma(e){let t={position:0},r=new Map;for(;t.position57)return!1}return!0}var Qei=typeof process.versions.icu=="string",Wei=Qei?new TextDecoder("utf-8",{fatal:!0}):void 0,Xei=Qei?Wei.decode.bind(Wei):function(e){if(cma(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Jei.exports={isConnecting:uma,isEstablished:gma,isClosing:Ama,isClosed:dma,fireEvent:Ubr,isValidSubprotocol:Ima,isValidStatusCode:hma,failWebsocketConnection:Oei,websocketMessageReceived:pma,utf8Decode:Xei,isControlFrame:Mei,isContinuationFrame:Hei,isTextBinaryFrame:Yei,isValidOpcode:mma,parseExtensions:Cma,isValidClientWindowBits:_ma}});var vmt=H((hau,Uei)=>{"use strict";var{maxUnsigned16Bit:yma}=yhe(),Smt=16386,Kbr,jYe=null,jwe=Smt;try{Kbr=wt("node:crypto")}catch{Kbr={randomFillSync:function(t,r,n){for(let a=0;ayma?(l+=8,o=127):a>125&&(l+=2,o=126);let A=Buffer.allocUnsafe(a+l);A[0]=A[1]=0,A[0]|=128,A[0]=(A[0]&240)+t;A[l-4]=n[0],A[l-3]=n[1],A[l-2]=n[2],A[l-1]=n[3],A[1]=o,o===126?A.writeUInt16BE(a,2):o===127&&(A[2]=A[3]=0,A.writeUIntBE(a,4,6)),A[1]|=128;for(let f=0;f{"use strict";var{uid:Ema,states:zYe,sentCloseFrameState:Bmt,emptyBuffer:Sma,opcodes:vma}=yhe(),{kReadyState:qYe,kSentClose:wmt,kByteParser:jei,kReceivedClose:Kei,kResponse:zei}=XYe(),{fireEvent:Bma,failWebsocketConnection:hae,isClosing:wma,isClosed:Tma,isEstablished:Rma,parseExtensions:Nma}=KYe(),{channels:zwe}=Awe(),{CloseEvent:Dma}=Kwe(),{makeRequest:kma}=Hwe(),{fetching:xma}=MYe(),{Headers:Gma,getHeadersList:Fma}=fhe(),{getDecodeSplit:Zma}=qW(),{WebsocketFrameSend:Lma}=vmt(),zbr;try{zbr=wt("node:crypto")}catch{}function Vma(e,t,r,n,a,o){let l=e;l.protocol=e.protocol==="ws:"?"http:":"https:";let A=kma({urlList:[l],client:r,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){let b=Fma(new Gma(o.headers));A.headersList=b}let f=zbr.randomBytes(16).toString("base64");A.headersList.append("sec-websocket-key",f),A.headersList.append("sec-websocket-version","13");for(let b of t)A.headersList.append("sec-websocket-protocol",b);return A.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),xma({request:A,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(b){if(b.type==="error"||b.status!==101){hae(n,"Received network error or non-101 status code.");return}if(t.length!==0&&!b.headersList.get("Sec-WebSocket-Protocol")){hae(n,"Server did not respond with sent protocols.");return}if(b.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){hae(n,'Server did not set Upgrade header to "websocket".');return}if(b.headersList.get("Connection")?.toLowerCase()!=="upgrade"){hae(n,'Server did not set Connection header to "upgrade".');return}let E=b.headersList.get("Sec-WebSocket-Accept"),N=zbr.createHash("sha1").update(f+Ema).digest("base64");if(E!==N){hae(n,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=b.headersList.get("Sec-WebSocket-Extensions"),F;if(B!==null&&(F=Nma(B),!F.has("permessage-deflate"))){hae(n,"Sec-WebSocket-Extensions header does not match.");return}let Q=b.headersList.get("Sec-WebSocket-Protocol");if(Q!==null&&!Zma("sec-websocket-protocol",A.headersList).includes(Q)){hae(n,"Protocol was not set in the opening handshake.");return}b.socket.on("data",qei),b.socket.on("close",$ei),b.socket.on("error",eti),zwe.open.hasSubscribers&&zwe.open.publish({address:b.socket.address(),protocol:Q,extensions:B}),a(b,F)}})}function Pma(e,t,r,n){if(!(wma(e)||Tma(e)))if(!Rma(e))hae(e,"Connection was closed before it was established."),e[qYe]=zYe.CLOSING;else if(e[wmt]===Bmt.NOT_SENT){e[wmt]=Bmt.PROCESSING;let a=new Lma;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=Sma,e[zei].socket.write(a.createFrame(vma.CLOSE)),e[wmt]=Bmt.SENT,e[qYe]=zYe.CLOSING}else e[qYe]=zYe.CLOSING}function qei(e){this.ws[jei].write(e)||this.pause()}function $ei(){let{ws:e}=this,{[zei]:t}=e;t.socket.off("data",qei),t.socket.off("close",$ei),t.socket.off("error",eti);let r=e[wmt]===Bmt.SENT&&e[Kei],n=1005,a="",o=e[jei].closingInfo;o&&!o.error?(n=o.code??1005,a=o.reason):e[Kei]||(n=1006),e[qYe]=zYe.CLOSED,Bma("close",e,(l,A)=>new Dma(l,A),{wasClean:r,code:n,reason:a}),zwe.close.hasSubscribers&&zwe.close.publish({websocket:e,code:n,reason:a})}function eti(e){let{ws:t}=this;t[qYe]=zYe.CLOSING,zwe.socketError.hasSubscribers&&zwe.socketError.publish(e),this.destroy()}tti.exports={establishWebSocketConnection:Vma,closeWebSocketConnection:Pma}});var nti=H((Cau,rti)=>{"use strict";var{createInflateRaw:Wma,Z_DEFAULT_WINDOWBITS:Oma}=wt("node:zlib"),{isValidClientWindowBits:Mma}=KYe(),Hma=Buffer.from([0,0,255,255]),Tmt=Symbol("kBuffer"),Rmt=Symbol("kLength"),$br=class{#e;#t={};constructor(t){this.#t.serverNoContextTakeover=t.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=t.get("server_max_window_bits")}decompress(t,r,n){if(!this.#e){let a=Oma;if(this.#t.serverMaxWindowBits){if(!Mma(this.#t.serverMaxWindowBits)){n(new Error("Invalid server_max_window_bits"));return}a=Number.parseInt(this.#t.serverMaxWindowBits)}this.#e=Wma({windowBits:a}),this.#e[Tmt]=[],this.#e[Rmt]=0,this.#e.on("data",o=>{this.#e[Tmt].push(o),this.#e[Rmt]+=o.length}),this.#e.on("error",o=>{this.#e=null,n(o)})}this.#e.write(t),r&&this.#e.write(Hma),this.#e.flush(()=>{let a=Buffer.concat(this.#e[Tmt],this.#e[Rmt]);this.#e[Tmt].length=0,this.#e[Rmt]=0,n(null,a)})}};rti.exports={PerMessageDeflate:$br}});var pti=H((_au,dti)=>{"use strict";var{Writable:Yma}=wt("node:stream"),Qma=wt("node:assert"),{parserStates:sV,opcodes:qwe,states:Xma,emptyBuffer:iti,sentCloseFrameState:sti}=yhe(),{kReadyState:Jma,kSentClose:oti,kResponse:ati,kReceivedClose:cti}=XYe(),{channels:Nmt}=Awe(),{isValidStatusCode:Uma,isValidOpcode:Kma,failWebsocketConnection:LM,websocketMessageReceived:lti,utf8Decode:jma,isControlFrame:uti,isTextBinaryFrame:eEr,isContinuationFrame:zma}=KYe(),{WebsocketFrameSend:gti}=vmt(),{closeWebSocketConnection:Ati}=qbr(),{PerMessageDeflate:qma}=nti(),tEr=class extends Yma{#e=[];#t=0;#n=!1;#r=sV.INFO;#i={};#s=[];#o;constructor(t,r){super(),this.ws=t,this.#o=r??new Map,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new qma(r))}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.#n=!0,this.run(n)}run(t){for(;this.#n;)if(this.#r===sV.INFO){if(this.#t<2)return t();let r=this.consume(2),n=(r[0]&128)!==0,a=r[0]&15,o=(r[1]&128)===128,l=!n&&a!==qwe.CONTINUATION,A=r[1]&127,f=r[0]&64,I=r[0]&32,C=r[0]&16;if(!Kma(a))return LM(this.ws,"Invalid opcode received"),t();if(o)return LM(this.ws,"Frame cannot be masked"),t();if(f!==0&&!this.#o.has("permessage-deflate")){LM(this.ws,"Expected RSV1 to be clear.");return}if(I!==0||C!==0){LM(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(l&&!eEr(a)){LM(this.ws,"Invalid frame type was fragmented.");return}if(eEr(a)&&this.#s.length>0){LM(this.ws,"Expected continuation frame");return}if(this.#i.fragmented&&l){LM(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((A>125||l)&&uti(a)){LM(this.ws,"Control frame either too large or fragmented");return}if(zma(a)&&this.#s.length===0&&!this.#i.compressed){LM(this.ws,"Unexpected continuation frame");return}A<=125?(this.#i.payloadLength=A,this.#r=sV.READ_DATA):A===126?this.#r=sV.PAYLOADLENGTH_16:A===127&&(this.#r=sV.PAYLOADLENGTH_64),eEr(a)&&(this.#i.binaryType=a,this.#i.compressed=f!==0),this.#i.opcode=a,this.#i.masked=o,this.#i.fin=n,this.#i.fragmented=l}else if(this.#r===sV.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#i.payloadLength=r.readUInt16BE(0),this.#r=sV.READ_DATA}else if(this.#r===sV.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){LM(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#i.payloadLength=(n<<8)+a,this.#r=sV.READ_DATA}else if(this.#r===sV.READ_DATA){if(this.#t{if(n){Ati(this.ws,1007,n.message,n.message.length);return}if(this.#s.push(a),!this.#i.fin){this.#r=sV.INFO,this.#n=!0,this.run(t);return}lti(this.ws,this.#i.binaryType,Buffer.concat(this.#s)),this.#n=!0,this.#r=sV.INFO,this.#s.length=0,this.run(t)}),this.#n=!1;break}else{if(this.#s.push(r),!this.#i.fragmented&&this.#i.fin){let n=Buffer.concat(this.#s);lti(this.ws,this.#i.binaryType,n),this.#s.length=0}this.#r=sV.INFO}}}consume(t){if(t>this.#t)throw new Error("Called consume() before buffers satiated.");if(t===0)return iti;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t){Qma(t.length!==1);let r;if(t.length>=2&&(r=t.readUInt16BE(0)),r!==void 0&&!Uma(r))return{code:1002,reason:"Invalid status code",error:!0};let n=t.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=jma(n)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:r,reason:n,error:!1}}parseControlFrame(t){let{opcode:r,payloadLength:n}=this.#i;if(r===qwe.CLOSE){if(n===1)return LM(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#i.closeInfo=this.parseCloseBody(t),this.#i.closeInfo.error){let{code:a,reason:o}=this.#i.closeInfo;return Ati(this.ws,a,o,o.length),LM(this.ws,o),!1}if(this.ws[oti]!==sti.SENT){let a=iti;this.#i.closeInfo.code&&(a=Buffer.allocUnsafe(2),a.writeUInt16BE(this.#i.closeInfo.code,0));let o=new gti(a);this.ws[ati].socket.write(o.createFrame(qwe.CLOSE),l=>{l||(this.ws[oti]=sti.SENT)})}return this.ws[Jma]=Xma.CLOSING,this.ws[cti]=!0,!1}else if(r===qwe.PING){if(!this.ws[cti]){let a=new gti(t);this.ws[ati].socket.write(a.createFrame(qwe.PONG)),Nmt.ping.hasSubscribers&&Nmt.ping.publish({payload:t})}}else r===qwe.PONG&&Nmt.pong.hasSubscribers&&Nmt.pong.publish({payload:t});return!0}get closingInfo(){return this.#i.closeInfo}};dti.exports={ByteParser:tEr}});var Cti=H((yau,mti)=>{"use strict";var{WebsocketFrameSend:$ma}=vmt(),{opcodes:fti,sendHints:$we}=yhe(),eCa=pyr(),Iti=Buffer[Symbol.species],rEr=class{#e=new eCa;#t=!1;#n;constructor(t){this.#n=t}add(t,r,n){if(n!==$we.blob){let o=hti(t,n);if(!this.#t)this.#n.write(o,r);else{let l={promise:null,callback:r,frame:o};this.#e.push(l)}return}let a={promise:t.arrayBuffer().then(o=>{a.promise=null,a.frame=hti(o,n)}),callback:r,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let t=this.#e;for(;!t.isEmpty();){let r=t.shift();r.promise!==null&&await r.promise,this.#n.write(r.frame,r.callback),r.callback=r.frame=null}this.#t=!1}};function hti(e,t){return new $ma(tCa(e,t)).createFrame(t===$we.string?fti.TEXT:fti.BINARY)}function tCa(e,t){switch(t){case $we.string:return Buffer.from(e);case $we.arrayBuffer:case $we.blob:return new Iti(e);case $we.typedArray:return new Iti(e.buffer,e.byteOffset,e.byteLength)}}mti.exports={SendQueue:rEr}});var Tti=H((bau,wti)=>{"use strict";var{webidl:aI}=kk(),{URLSerializer:rCa}=eV(),{environmentSettingsObject:_ti}=qW(),{staticPropertyDescriptors:mae,states:$Ye,sentCloseFrameState:nCa,sendHints:Dmt}=yhe(),{kWebSocketURL:yti,kReadyState:nEr,kController:iCa,kBinaryType:kmt,kResponse:bti,kSentClose:sCa,kByteParser:oCa}=XYe(),{isConnecting:aCa,isEstablished:cCa,isClosing:lCa,isValidSubprotocol:uCa,fireEvent:Eti}=KYe(),{establishWebSocketConnection:gCa,closeWebSocketConnection:Sti}=qbr(),{ByteParser:ACa}=pti(),{kEnumerableProperty:VM,isBlobLike:vti}=Em(),{getGlobalDispatcher:dCa}=Jht(),{types:Bti}=wt("node:util"),{ErrorEvent:pCa,CloseEvent:fCa}=Kwe(),{SendQueue:ICa}=Cti(),iO=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";#i;constructor(t,r=[]){super();let n="WebSocket constructor";aI.argumentLengthCheck(arguments,1,n);let a=aI.converters["DOMString or sequence or WebSocketInit"](r,n,"options");t=aI.converters.USVString(t,n,"url"),r=a.protocols;let o=_ti.settingsObject.baseUrl,l;try{l=new URL(t,o)}catch(f){throw new DOMException(f,"SyntaxError")}if(l.protocol==="http:"?l.protocol="ws:":l.protocol==="https:"&&(l.protocol="wss:"),l.protocol!=="ws:"&&l.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${l.protocol}`,"SyntaxError");if(l.hash||l.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(f=>f.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(f=>uCa(f)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[yti]=new URL(l.href);let A=_ti.settingsObject;this[iCa]=gCa(l,r,A,this,(f,I)=>this.#s(f,I),a),this[nEr]=e.CONNECTING,this[sCa]=nCa.NOT_SENT,this[kmt]="blob"}close(t=void 0,r=void 0){aI.brandCheck(this,e);let n="WebSocket.close";if(t!==void 0&&(t=aI.converters["unsigned short"](t,n,"code",{clamp:!0})),r!==void 0&&(r=aI.converters.USVString(r,n,"reason")),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");let a=0;if(r!==void 0&&(a=Buffer.byteLength(r),a>123))throw new DOMException(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");Sti(this,t,r,a)}send(t){aI.brandCheck(this,e);let r="WebSocket.send";if(aI.argumentLengthCheck(arguments,1,r),t=aI.converters.WebSocketSendData(t,r,"data"),aCa(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!cCa(this)||lCa(this)))if(typeof t=="string"){let n=Buffer.byteLength(t);this.#t+=n,this.#i.add(t,()=>{this.#t-=n},Dmt.string)}else Bti.isArrayBuffer(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.typedArray)):vti(t)&&(this.#t+=t.size,this.#i.add(t,()=>{this.#t-=t.size},Dmt.blob))}get readyState(){return aI.brandCheck(this,e),this[nEr]}get bufferedAmount(){return aI.brandCheck(this,e),this.#t}get url(){return aI.brandCheck(this,e),rCa(this[yti])}get extensions(){return aI.brandCheck(this,e),this.#r}get protocol(){return aI.brandCheck(this,e),this.#n}get onopen(){return aI.brandCheck(this,e),this.#e.open}set onopen(t){aI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return aI.brandCheck(this,e),this.#e.error}set onerror(t){aI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return aI.brandCheck(this,e),this.#e.close}set onclose(t){aI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return aI.brandCheck(this,e),this.#e.message}set onmessage(t){aI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return aI.brandCheck(this,e),this[kmt]}set binaryType(t){aI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[kmt]="blob":this[kmt]=t}#s(t,r){this[bti]=t;let n=new ACa(this,r);n.on("drain",hCa),n.on("error",mCa.bind(this)),t.socket.ws=this,this[oCa]=n,this.#i=new ICa(t.socket),this[nEr]=$Ye.OPEN;let a=t.headersList.get("sec-websocket-extensions");a!==null&&(this.#r=a);let o=t.headersList.get("sec-websocket-protocol");o!==null&&(this.#n=o),Eti("open",this)}};iO.CONNECTING=iO.prototype.CONNECTING=$Ye.CONNECTING;iO.OPEN=iO.prototype.OPEN=$Ye.OPEN;iO.CLOSING=iO.prototype.CLOSING=$Ye.CLOSING;iO.CLOSED=iO.prototype.CLOSED=$Ye.CLOSED;Object.defineProperties(iO.prototype,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae,url:VM,readyState:VM,bufferedAmount:VM,onopen:VM,onerror:VM,onclose:VM,close:VM,onmessage:VM,binaryType:VM,send:VM,extensions:VM,protocol:VM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(iO,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae});aI.converters["sequence"]=aI.sequenceConverter(aI.converters.DOMString);aI.converters["DOMString or sequence"]=function(e,t,r){return aI.util.Type(e)==="Object"&&Symbol.iterator in e?aI.converters["sequence"](e):aI.converters.DOMString(e,t,r)};aI.converters.WebSocketInit=aI.dictionaryConverter([{key:"protocols",converter:aI.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:aI.converters.any,defaultValue:()=>dCa()},{key:"headers",converter:aI.nullableConverter(aI.converters.HeadersInit)}]);aI.converters["DOMString or sequence or WebSocketInit"]=function(e){return aI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?aI.converters.WebSocketInit(e):{protocols:aI.converters["DOMString or sequence"](e)}};aI.converters.WebSocketSendData=function(e){if(aI.util.Type(e)==="Object"){if(vti(e))return aI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Bti.isArrayBuffer(e))return aI.converters.BufferSource(e)}return aI.converters.USVString(e)};function hCa(){this.ws[bti].socket.resume()}function mCa(e){let t,r;e instanceof fCa?(t=e.reason,r=e.code):t=e.message,Eti("error",this,()=>new pCa("error",{error:e,message:t})),Sti(this,r)}wti.exports={WebSocket:iO}});var iEr=H((Eau,Rti)=>{"use strict";function CCa(e){return e.indexOf("\0")===-1}function _Ca(e){if(e.length===0)return!1;for(let t=0;t57)return!1;return!0}function yCa(e){return new Promise(t=>{setTimeout(t,e).unref()})}Rti.exports={isValidLastEventId:CCa,isASCIINumber:_Ca,delay:yCa}});var xti=H((Sau,kti)=>{"use strict";var{Transform:bCa}=wt("node:stream"),{isASCIINumber:Nti,isValidLastEventId:Dti}=iEr(),U$=[239,187,191],sEr=10,xmt=13,ECa=58,SCa=32,oEr=class extends bCa{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(t={}){t.readableObjectMode=!0,super(t),this.state=t.eventSourceSettings||{},t.push&&(this.push=t.push)}_transform(t,r,n){if(t.length===0){n();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===U$[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos0&&(r[a]=o);break}}processEvent(t){t.retry&&Nti(t.retry)&&(this.state.reconnectionTime=parseInt(t.retry,10)),t.id&&Dti(t.id)&&(this.state.lastEventId=t.id),t.data!==void 0&&this.push({type:t.event||"message",options:{data:t.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};kti.exports={EventSourceStream:oEr}});var Oti=H((vau,Wti)=>{"use strict";var{pipeline:vCa}=wt("node:stream"),{fetching:BCa}=MYe(),{makeRequest:wCa}=Hwe(),{webidl:Cae}=kk(),{EventSourceStream:TCa}=xti(),{parseMIMEType:RCa}=eV(),{createFastMessageEvent:NCa}=Kwe(),{isNetworkError:Gti}=WYe(),{delay:DCa}=iEr(),{kEnumerableProperty:bhe}=Em(),{environmentSettingsObject:Fti}=qW(),Zti=!1,Lti=3e3,eQe=0,Vti=1,tQe=2,kCa="anonymous",xCa="use-credentials",eTe=class e extends EventTarget{#e={open:null,error:null,message:null};#t=null;#n=!1;#r=eQe;#i=null;#s=null;#o;#g;constructor(t,r={}){super();let n="EventSource constructor";Cae.argumentLengthCheck(arguments,1,n),Zti||(Zti=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),t=Cae.converters.USVString(t,n,"url"),r=Cae.converters.EventSourceInitDict(r,n,"eventSourceInitDict"),this.#o=r.dispatcher,this.#g={lastEventId:"",reconnectionTime:Lti};let a=Fti,o;try{o=new URL(t,a.settingsObject.baseUrl),this.#g.origin=o.origin}catch(f){throw new DOMException(f,"SyntaxError")}this.#t=o.href;let l=kCa;r.withCredentials&&(l=xCa,this.#n=!0);let A={redirect:"follow",keepalive:!0,mode:"cors",credentials:l==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};A.client=Fti.settingsObject,A.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],A.cache="no-store",A.initiator="other",A.urlList=[new URL(this.#t)],this.#i=wCa(A),this.#l()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#l(){if(this.#r===tQe)return;this.#r=eQe;let t={request:this.#i,dispatcher:this.#o},r=n=>{Gti(n)&&(this.dispatchEvent(new Event("error")),this.close()),this.#u()};t.processResponseEndOfBody=r,t.processResponse=n=>{if(Gti(n))if(n.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#u();return}let a=n.headersList.get("content-type",!0),o=a!==null?RCa(a):"failure",l=o!=="failure"&&o.essence==="text/event-stream";if(n.status!==200||l===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=Vti,this.dispatchEvent(new Event("open")),this.#g.origin=n.urlList[n.urlList.length-1].origin;let A=new TCa({eventSourceSettings:this.#g,push:f=>{this.dispatchEvent(NCa(f.type,f.options))}});vCa(n.body.stream,A,f=>{f?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#s=BCa(t)}async#u(){this.#r!==tQe&&(this.#r=eQe,this.dispatchEvent(new Event("error")),await DCa(this.#g.reconnectionTime),this.#r===eQe&&(this.#g.lastEventId.length&&this.#i.headersList.set("last-event-id",this.#g.lastEventId,!0),this.#l()))}close(){Cae.brandCheck(this,e),this.#r!==tQe&&(this.#r=tQe,this.#s.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(t){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(t){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(t){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}},Pti={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:eQe,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Vti,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:tQe,writable:!1}};Object.defineProperties(eTe,Pti);Object.defineProperties(eTe.prototype,Pti);Object.defineProperties(eTe.prototype,{close:bhe,onerror:bhe,onmessage:bhe,onopen:bhe,readyState:bhe,url:bhe,withCredentials:bhe});Cae.converters.EventSourceInitDict=Cae.dictionaryConverter([{key:"withCredentials",converter:Cae.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Cae.converters.any}]);Wti.exports={EventSource:eTe,defaultReconnectionTime:Lti}});var Qti=H((Bau,Bf)=>{"use strict";var GCa=vYe(),Mti=rYe(),FCa=Dwe(),ZCa=q7n(),LCa=kwe(),VCa=kyr(),PCa=fzn(),WCa=yzn(),Hti=Y0(),Fmt=Em(),{InvalidArgumentError:Gmt}=Hti,tTe=aqn(),OCa=iYe(),MCa=dbr(),HCa=Mqn(),YCa=Ibr(),QCa=ebr(),XCa=Lht(),{getGlobalDispatcher:Yti,setGlobalDispatcher:JCa}=Jht(),UCa=_br(),KCa=Bht(),jCa=wht();Object.assign(Mti.prototype,tTe);Bf.exports.Dispatcher=Mti;Bf.exports.Client=GCa;Bf.exports.Pool=FCa;Bf.exports.BalancedPool=ZCa;Bf.exports.Agent=LCa;Bf.exports.ProxyAgent=VCa;Bf.exports.EnvHttpProxyAgent=PCa;Bf.exports.RetryAgent=WCa;Bf.exports.RetryHandler=XCa;Bf.exports.DecoratorHandler=UCa;Bf.exports.RedirectHandler=KCa;Bf.exports.createRedirectInterceptor=jCa;Bf.exports.interceptors={redirect:Kqn(),retry:zqn(),dump:$qn()};Bf.exports.buildConnector=OCa;Bf.exports.errors=Hti;Bf.exports.util={parseHeaders:Fmt.parseHeaders,headerNameToString:Fmt.headerNameToString};function rQe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new Gmt("invalid url");if(r!=null&&typeof r!="object")throw new Gmt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new Gmt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL(Fmt.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=Fmt.parseURL(t);let{agent:a,dispatcher:o=Yti()}=r;if(a)throw new Gmt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Bf.exports.setGlobalDispatcher=JCa;Bf.exports.getGlobalDispatcher=Yti;var zCa=MYe().fetch;Bf.exports.fetch=async function(t,r=void 0){try{return await zCa(t,r)}catch(n){throw n&&typeof n=="object"&&Error.captureStackTrace(n),n}};Bf.exports.Headers=fhe().Headers;Bf.exports.Response=WYe().Response;Bf.exports.Request=Hwe().Request;Bf.exports.FormData=gYe().FormData;Bf.exports.File=globalThis.File??wt("node:buffer").File;Bf.exports.FileReader=dei().FileReader;var{setGlobalOrigin:qCa,getGlobalOrigin:$Ca}=G0r();Bf.exports.setGlobalOrigin=qCa;Bf.exports.getGlobalOrigin=$Ca;var{CacheStorage:e_a}=bei(),{kConstruct:t_a}=pmt();Bf.exports.caches=new e_a(t_a);var{deleteCookie:r_a,getCookies:n_a,getSetCookies:i_a,setCookie:s_a}=Gei();Bf.exports.deleteCookie=r_a;Bf.exports.getCookies=n_a;Bf.exports.getSetCookies=i_a;Bf.exports.setCookie=s_a;var{parseMIMEType:o_a,serializeAMimeType:a_a}=eV();Bf.exports.parseMIMEType=o_a;Bf.exports.serializeAMimeType=a_a;var{CloseEvent:c_a,ErrorEvent:l_a,MessageEvent:u_a}=Kwe();Bf.exports.WebSocket=Tti().WebSocket;Bf.exports.CloseEvent=c_a;Bf.exports.ErrorEvent=l_a;Bf.exports.MessageEvent=u_a;Bf.exports.request=rQe(tTe.request);Bf.exports.stream=rQe(tTe.stream);Bf.exports.pipeline=rQe(tTe.pipeline);Bf.exports.connect=rQe(tTe.connect);Bf.exports.upgrade=rQe(tTe.upgrade);Bf.exports.MockClient=MCa;Bf.exports.MockPool=YCa;Bf.exports.MockAgent=HCa;Bf.exports.mockErrors=QCa;var{EventSource:g_a}=Oti();Bf.exports.EventSource=g_a});var Uti=H(lT=>{"use strict";var A_a=lT&&lT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),d_a=lT&&lT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p_a=lT&&lT.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&A_a(t,e,r);return d_a(t,e),t},f_a=lT&&lT.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(lT,"__esModule",{value:!0});lT.getApiBaseUrl=lT.getProxyFetch=lT.getProxyAgentDispatcher=lT.getProxyAgent=lT.getAuthString=void 0;var Xti=p_a(ajn()),I_a=Qti();function h_a(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof t.auth=="string"?t.auth:`token ${e}`}lT.getAuthString=h_a;function m_a(e){return new Xti.HttpClient().getAgent(e)}lT.getProxyAgent=m_a;function Jti(e){return new Xti.HttpClient().getAgentDispatcher(e)}lT.getProxyAgentDispatcher=Jti;function C_a(e){let t=Jti(e);return(n,a)=>f_a(this,void 0,void 0,function*(){return(0,I_a.fetch)(n,Object.assign(Object.assign({},a),{dispatcher:t}))})}lT.getProxyFetch=C_a;function __a(){return process.env.GITHUB_API_URL||"https://api.github.com"}lT.getApiBaseUrl=__a});var nQe=H(aEr=>{"use strict";Object.defineProperty(aEr,"__esModule",{value:!0});function y_a(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}aEr.getUserAgent=y_a});var zti=H((Rau,jti)=>{jti.exports=Kti;function Kti(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(a,o){return Kti.bind(null,e,o,a,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(a,o){return o.hook.bind(null,a,n)},r)():r(n)})}});var $ti=H((Nau,qti)=>{qti.exports=b_a;function b_a(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(o,l){return Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))}),t==="after"&&(n=function(o,l){var A;return Promise.resolve().then(o.bind(null,l)).then(function(f){return A=f,a(A,l)}).then(function(){return A})}),t==="error"&&(n=function(o,l){return Promise.resolve().then(o.bind(null,l)).catch(function(A){return a(A,l)})}),e.registry[r].push({hook:n,orig:a})}});var tri=H((Dau,eri)=>{eri.exports=E_a;function E_a(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(a){return a.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var cri=H((kau,iQe)=>{var sri=zti(),S_a=$ti(),v_a=tri(),rri=Function.bind,nri=rri.bind(rri);function ori(e,t,r){var n=nri(v_a,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(a){var o=r?[t,a,r]:[t,a];e[a]=e.api[a]=nri(S_a,null).apply(null,o)})}function B_a(){var e="h",t={registry:{}},r=sri.bind(null,t,e);return ori(r,t,e),r}function ari(){var e={registry:{}},t=sri.bind(null,e);return ori(t,e),t}var iri=!1;function rTe(){return iri||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),iri=!0),ari()}rTe.Singular=B_a.bind();rTe.Collection=ari.bind();iQe.exports=rTe;iQe.exports.Hook=rTe;iQe.exports.Singular=rTe.Singular;iQe.exports.Collection=rTe.Collection});var hri=H((xau,Iri)=>{"use strict";var uEr=Object.defineProperty,w_a=Object.getOwnPropertyDescriptor,T_a=Object.getOwnPropertyNames,R_a=Object.prototype.hasOwnProperty,N_a=(e,t)=>{for(var r in t)uEr(e,r,{get:t[r],enumerable:!0})},D_a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of T_a(t))!R_a.call(e,a)&&a!==r&&uEr(e,a,{get:()=>t[a],enumerable:!(n=w_a(t,a))||n.enumerable});return e},k_a=e=>D_a(uEr({},"__esModule",{value:!0}),e),gri={};N_a(gri,{endpoint:()=>J_a});Iri.exports=k_a(gri);var x_a=nQe(),G_a="9.0.5",F_a=`octokit-endpoint.js/${G_a} ${(0,x_a.getUserAgent)()}`,Z_a={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":F_a},mediaType:{format:""}};function L_a(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function V_a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ari(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{V_a(t[n])?n in e?r[n]=Ari(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function lri(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function lEr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=L_a(r.headers),lri(r),lri(r.headers);let n=Ari(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function P_a(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var W_a=/\{[^}]+\}/g;function O_a(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function M_a(e){let t=e.match(W_a);return t?t.map(O_a).reduce((r,n)=>r.concat(n),[]):[]}function uri(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function dri(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function iTe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function sQe(e,t,r){return t=e==="+"||e==="#"?dri(t):iTe(t),r?iTe(r)+"="+t:t}function nTe(e){return e!=null}function cEr(e){return e===";"||e==="&"||e==="?"}function H_a(e,t,r,n){var a=e[r],o=[];if(nTe(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(sQe(t,a,cEr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter(nTe).forEach(function(l){o.push(sQe(t,l,cEr(t)?r:""))}):Object.keys(a).forEach(function(l){nTe(a[l])&&o.push(sQe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter(nTe).forEach(function(A){l.push(sQe(t,A))}):Object.keys(a).forEach(function(A){nTe(a[A])&&(l.push(iTe(A)),l.push(sQe(t,a[A].toString())))}),cEr(t)?o.push(iTe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?nTe(a)&&o.push(iTe(r)):a===""&&(t==="&"||t==="?")?o.push(iTe(r)+"="):a===""&&o.push("");return o}function Y_a(e){return{expand:Q_a.bind(null,e)}}function Q_a(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(H_a(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return dri(o)}),e==="/"?e:e.replace(/\/$/,"")}function pri(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=uri(e,["method","baseUrl","url","headers","request","mediaType"]),l=M_a(r);r=Y_a(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=uri(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=P_a(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function X_a(e,t,r){return pri(lEr(e,t,r))}function fri(e,t){let r=lEr(e,t),n=X_a.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:fri.bind(null,r),merge:lEr.bind(null,r),parse:pri})}var J_a=fri(null,Z_a)});var mri=H(AEr=>{"use strict";Object.defineProperty(AEr,"__esModule",{value:!0});var gEr=class extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};AEr.Deprecation=gEr});var Sri=H((Fau,Eri)=>{"use strict";var U_a=Object.create,Zmt=Object.defineProperty,K_a=Object.getOwnPropertyDescriptor,j_a=Object.getOwnPropertyNames,z_a=Object.getPrototypeOf,q_a=Object.prototype.hasOwnProperty,$_a=(e,t)=>{for(var r in t)Zmt(e,r,{get:t[r],enumerable:!0})},_ri=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of j_a(t))!q_a.call(e,a)&&a!==r&&Zmt(e,a,{get:()=>t[a],enumerable:!(n=K_a(t,a))||n.enumerable});return e},e0a=(e,t,r)=>(r=e!=null?U_a(z_a(e)):{},_ri(t||!e||!e.__esModule?Zmt(r,"default",{value:e,enumerable:!0}):r,e)),t0a=e=>_ri(Zmt({},"__esModule",{value:!0}),e),yri={};$_a(yri,{RequestError:()=>i0a});Eri.exports=t0a(yri);var Cri=mri(),bri=e0a(mgt()),r0a=(0,bri.default)(e=>console.warn(e)),n0a=(0,bri.default)(e=>console.warn(e)),i0a=class extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t;let n;"headers"in r&&typeof r.headers<"u"&&(n=r.headers),"response"in r&&(this.response=r.response,n=r.response.headers);let a=Object.assign({},r.request);r.request.headers.authorization&&(a.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a,Object.defineProperty(this,"code",{get(){return r0a(new Cri.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),Object.defineProperty(this,"headers",{get(){return n0a(new Cri.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),n||{}}})}}});var aQe=H((Lau,wri)=>{"use strict";var fEr=Object.defineProperty,s0a=Object.getOwnPropertyDescriptor,o0a=Object.getOwnPropertyNames,a0a=Object.prototype.hasOwnProperty,c0a=(e,t)=>{for(var r in t)fEr(e,r,{get:t[r],enumerable:!0})},l0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of o0a(t))!a0a.call(e,a)&&a!==r&&fEr(e,a,{get:()=>t[a],enumerable:!(n=s0a(t,a))||n.enumerable});return e},u0a=e=>l0a(fEr({},"__esModule",{value:!0}),e),Bri={};c0a(Bri,{request:()=>h0a});wri.exports=u0a(Bri);var g0a=hri(),A0a=nQe(),d0a="8.4.0";function p0a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var oQe=Sri();function f0a(e){return e.arrayBuffer()}function vri(e){var t,r,n,a;let o=e.request&&e.request.log?e.request.log:console,l=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==!1;(p0a(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let A={},f,I,{fetch:C}=globalThis;if((r=e.request)!=null&&r.fetch&&(C=e.request.fetch),!C)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");return C(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(a=e.request)==null?void 0:a.signal,...e.body&&{duplex:"half"}}).then(async b=>{I=b.url,f=b.status;for(let E of b.headers)A[E[0]]=E[1];if("deprecation"in A){let E=A.link&&A.link.match(/<([^>]+)>; rel="deprecation"/),N=E&&E.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${A.sunset}${N?`. See ${N}`:""}`)}if(!(f===204||f===205)){if(e.method==="HEAD"){if(f<400)return;throw new oQe.RequestError(b.statusText,f,{response:{url:I,status:f,headers:A,data:void 0},request:e})}if(f===304)throw new oQe.RequestError("Not modified",f,{response:{url:I,status:f,headers:A,data:await dEr(b)},request:e});if(f>=400){let E=await dEr(b);throw new oQe.RequestError(I0a(E),f,{response:{url:I,status:f,headers:A,data:E},request:e})}return l?await dEr(b):b.body}}).then(b=>({status:f,url:I,headers:A,data:b})).catch(b=>{if(b instanceof oQe.RequestError)throw b;if(b.name==="AbortError")throw b;let E=b.message;throw b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause)),new oQe.RequestError(E,500,{request:e})})}async function dEr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():f0a(e)}function I0a(e){if(typeof e=="string")return e;let t;return"documentation_url"in e?t=` - ${e.documentation_url}`:t="","message"in e?Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`:`${e.message}${t}`:`Unknown error: ${JSON.stringify(e)}`}function pEr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return vri(r.parse(l));let A=(f,I)=>vri(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:pEr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:pEr.bind(null,r)})}var h0a=pEr(g0a.endpoint,{headers:{"user-agent":`octokit-request.js/${d0a} ${(0,A0a.getUserAgent)()}`}})});var kri=H((Wau,Dri)=>{"use strict";var IEr=Object.defineProperty,m0a=Object.getOwnPropertyDescriptor,C0a=Object.getOwnPropertyNames,_0a=Object.prototype.hasOwnProperty,y0a=(e,t)=>{for(var r in t)IEr(e,r,{get:t[r],enumerable:!0})},b0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of C0a(t))!_0a.call(e,a)&&a!==r&&IEr(e,a,{get:()=>t[a],enumerable:!(n=m0a(t,a))||n.enumerable});return e},E0a=e=>b0a(IEr({},"__esModule",{value:!0}),e),Rri={};y0a(Rri,{GraphqlResponseError:()=>Nri,graphql:()=>D0a,withCustomRequest:()=>k0a});Dri.exports=E0a(Rri);var S0a=aQe(),v0a=nQe(),B0a="7.1.0",Vau=aQe(),Pau=aQe();function w0a(e){return`Request failed due to following response errors: +`.trim())}};Oqn.exports=Cbr});var Jht=H((You,Xqn)=>{"use strict";var Hqn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:afa}=Y0(),cfa=kwe();Qqn()===void 0&&Yqn(new cfa);function Yqn(e){if(!e||typeof e.dispatch!="function")throw new afa("Argument agent must implement Agent");Object.defineProperty(globalThis,Hqn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function Qqn(){return globalThis[Hqn]}Xqn.exports={setGlobalDispatcher:Yqn,getGlobalDispatcher:Qqn}});var _br=H((Xou,Jqn)=>{"use strict";Jqn.exports=class{#e;constructor(t){if(typeof t!="object"||t===null)throw new TypeError("handler must be an object");this.#e=t}onConnect(...t){return this.#e.onConnect?.(...t)}onError(...t){return this.#e.onError?.(...t)}onUpgrade(...t){return this.#e.onUpgrade?.(...t)}onResponseStarted(...t){return this.#e.onResponseStarted?.(...t)}onHeaders(...t){return this.#e.onHeaders?.(...t)}onData(...t){return this.#e.onData?.(...t)}onComplete(...t){return this.#e.onComplete?.(...t)}onBodySent(...t){return this.#e.onBodySent?.(...t)}}});var Kqn=H((Jou,Uqn)=>{"use strict";var lfa=Bht();Uqn.exports=e=>{let t=e?.maxRedirections;return r=>function(a,o){let{maxRedirections:l=t,...A}=a;if(!l)return r(a,o);let f=new lfa(r,l,a,o);return r(A,f)}}});var zqn=H((Uou,jqn)=>{"use strict";var ufa=Lht();jqn.exports=e=>t=>function(n,a){return t(n,new ufa({...n,retryOptions:{...e,...n.retryOptions}},{handler:a,dispatch:t}))}});var $qn=H((Kou,qqn)=>{"use strict";var gfa=Em(),{InvalidArgumentError:Afa,RequestAbortedError:dfa}=Y0(),pfa=_br(),ybr=class extends pfa{#e=1024*1024;#t=null;#n=!1;#r=!1;#i=0;#s=null;#o=null;constructor({maxSize:t},r){if(super(r),t!=null&&(!Number.isFinite(t)||t<1))throw new Afa("maxSize must be a number greater than 0");this.#e=t??this.#e,this.#o=r}onConnect(t){this.#t=t,this.#o.onConnect(this.#g.bind(this))}#g(t){this.#r=!0,this.#s=t}onHeaders(t,r,n,a){let l=gfa.parseHeaders(r)["content-length"];if(l!=null&&l>this.#e)throw new dfa(`Response size (${l}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#o.onHeaders(t,r,n,a)}onError(t){this.#n||(t=this.#s??t,this.#o.onError(t))}onData(t){return this.#i=this.#i+t.length,this.#i>=this.#e&&(this.#n=!0,this.#r?this.#o.onError(this.#s):this.#o.onComplete([])),!0}onComplete(t){if(!this.#n){if(this.#r){this.#o.onError(this.reason);return}this.#o.onComplete(t)}}};function ffa({maxSize:e}={maxSize:1024*1024}){return t=>function(n,a){let{dumpMaxSize:o=e}=n,l=new ybr({maxSize:o},a);return t(n,l)}}qqn.exports=ffa});var fhe=H((jou,o$n)=>{"use strict";var{kConstruct:Ifa}=B2(),{kEnumerableProperty:Owe}=Em(),{iteratorMixin:hfa,isValidHeaderName:VYe,isValidHeaderValue:t$n}=qW(),{webidl:__}=kk(),bbr=wt("node:assert"),Uht=wt("node:util"),aT=Symbol("headers map"),eO=Symbol("headers map sorted");function e$n(e){return e===10||e===13||e===9||e===32}function r$n(e){let t=0,r=e.length;for(;r>t&&e$n(e.charCodeAt(r-1));)--r;for(;r>t&&e$n(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function n$n(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function Ebr(e,t,r){if(r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(s$n(e)==="immutable")throw new TypeError("immutable");return Sbr(e).append(t,r,!1)}function i$n(e,t){return e[0]>1),r[I][0]<=C[0]?f=I+1:A=I;if(o!==I){for(l=o;l>f;)r[l]=r[--l];r[f]=C}}if(!n.next().done)throw new TypeError("Unreachable");return r}else{let n=0;for(let{0:a,1:{value:o}}of this[aT])r[n++]=[a,o],bbr(o!==null);return r.sort(i$n)}}},VX=class e{#e;#t;constructor(t=void 0){t!==Ifa&&(this.#t=new Kht,this.#e="none",t!==void 0&&(t=__.converters.HeadersInit(t,"Headers contructor","init"),n$n(this,t)))}append(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.append");let n="Headers.append";return t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),Ebr(this,t,r)}delete(t){if(__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.delete"),t=__.converters.ByteString(t,"Headers.delete","name"),!VYe(t))throw __.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.get");let r="Headers.get";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.get(t,!1)}has(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.has");let r="Headers.has";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.contains(t,!1)}set(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.set");let n="Headers.set";if(t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:n,value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:n,value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(t,r,!1)}getSetCookie(){__.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}get[eO](){if(this.#t[eO])return this.#t[eO];let t=[],r=this.#t.toSortedArray(),n=this.#t.cookies;if(n===null||n.length===1)return this.#t[eO]=r;for(let a=0;a>"](e,t,r,n.bind(e)):__.converters["record"](e,t,r)}throw __.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};o$n.exports={fill:n$n,compareHeaderName:i$n,Headers:VX,HeadersList:Kht,getHeadersGuard:s$n,setHeadersGuard:mfa,setHeadersList:Cfa,getHeadersList:Sbr}});var WYe=H((zou,I$n)=>{"use strict";var{Headers:A$n,HeadersList:a$n,fill:_fa,getHeadersGuard:yfa,setHeadersGuard:d$n,setHeadersList:p$n}=fhe(),{extractBody:c$n,cloneBody:bfa,mixinBody:Efa,hasFinalizationRegistry:Sfa,streamRegistry:vfa,bodyUnusable:Bfa}=dYe(),vbr=Em(),l$n=wt("node:util"),{kEnumerableProperty:tO}=vbr,{isValidReasonPhrase:wfa,isCancelled:Tfa,isAborted:Rfa,isBlobLike:Nfa,serializeJavascriptValueToJSONString:Dfa,isErrorLike:kfa,isomorphicEncode:xfa,environmentSettingsObject:Gfa}=qW(),{redirectStatusSet:Ffa,nullBodyStatus:Zfa}=sYe(),{kState:Mv,kHeaders:X$}=nae(),{webidl:Oh}=kk(),{FormData:Lfa}=gYe(),{URLSerializer:u$n}=eV(),{kConstruct:zht}=B2(),Bbr=wt("node:assert"),{types:Vfa}=wt("node:util"),Pfa=new TextEncoder("utf-8"),Ihe=class e{static error(){return PYe(qht(),"immutable")}static json(t,r={}){Oh.argumentLengthCheck(arguments,1,"Response.json"),r!==null&&(r=Oh.converters.ResponseInit(r));let n=Pfa.encode(Dfa(t)),a=c$n(n),o=PYe(Mwe({}),"response");return g$n(o,r,{body:a[0],type:"application/json"}),o}static redirect(t,r=302){Oh.argumentLengthCheck(arguments,1,"Response.redirect"),t=Oh.converters.USVString(t),r=Oh.converters["unsigned short"](r);let n;try{n=new URL(t,Gfa.settingsObject.baseUrl)}catch(l){throw new TypeError(`Failed to parse URL from ${t}`,{cause:l})}if(!Ffa.has(r))throw new RangeError(`Invalid status code ${r}`);let a=PYe(Mwe({}),"immutable");a[Mv].status=r;let o=xfa(u$n(n));return a[Mv].headersList.append("location",o,!0),a}constructor(t=null,r={}){if(t===zht)return;t!==null&&(t=Oh.converters.BodyInit(t)),r=Oh.converters.ResponseInit(r),this[Mv]=Mwe({}),this[X$]=new A$n(zht),d$n(this[X$],"response"),p$n(this[X$],this[Mv].headersList);let n=null;if(t!=null){let[a,o]=c$n(t);n={body:a,type:o}}g$n(this,r,n)}get type(){return Oh.brandCheck(this,e),this[Mv].type}get url(){Oh.brandCheck(this,e);let t=this[Mv].urlList,r=t[t.length-1]??null;return r===null?"":u$n(r,!0)}get redirected(){return Oh.brandCheck(this,e),this[Mv].urlList.length>1}get status(){return Oh.brandCheck(this,e),this[Mv].status}get ok(){return Oh.brandCheck(this,e),this[Mv].status>=200&&this[Mv].status<=299}get statusText(){return Oh.brandCheck(this,e),this[Mv].statusText}get headers(){return Oh.brandCheck(this,e),this[X$]}get body(){return Oh.brandCheck(this,e),this[Mv].body?this[Mv].body.stream:null}get bodyUsed(){return Oh.brandCheck(this,e),!!this[Mv].body&&vbr.isDisturbed(this[Mv].body.stream)}clone(){if(Oh.brandCheck(this,e),Bfa(this))throw Oh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=wbr(this[Mv]);return PYe(t,yfa(this[X$]))}[l$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${l$n.formatWithOptions(r,n)}`}};Efa(Ihe);Object.defineProperties(Ihe.prototype,{type:tO,url:tO,status:tO,ok:tO,redirected:tO,statusText:tO,headers:tO,clone:tO,body:tO,bodyUsed:tO,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ihe,{json:tO,redirect:tO,error:tO});function wbr(e){if(e.internalResponse)return f$n(wbr(e.internalResponse),e.type);let t=Mwe({...e,body:null});return e.body!=null&&(t.body=bfa(t,e.body)),t}function Mwe(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new a$n(e?.headersList):new a$n,urlList:e?.urlList?[...e.urlList]:[]}}function qht(e){let t=kfa(e);return Mwe({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Wfa(e){return e.type==="error"&&e.status===0}function jht(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return Bbr(!(n in t)),r[n]=a,!0}})}function f$n(e,t){if(t==="basic")return jht(e,{type:"basic",headersList:e.headersList});if(t==="cors")return jht(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return jht(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return jht(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Bbr(!1)}function Ofa(e,t=null){return Bbr(Tfa(e)),Rfa(e)?qht(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:t})):qht(Object.assign(new DOMException("Request was cancelled."),{cause:t}))}function g$n(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!wfa(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[Mv].status=t.status),"statusText"in t&&t.statusText!=null&&(e[Mv].statusText=t.statusText),"headers"in t&&t.headers!=null&&_fa(e[X$],t.headers),r){if(Zfa.includes(e.status))throw Oh.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[Mv].body=r.body,r.type!=null&&!e[Mv].headersList.contains("content-type",!0)&&e[Mv].headersList.append("content-type",r.type,!0)}}function PYe(e,t){let r=new Ihe(zht);return r[Mv]=e,r[X$]=new A$n(zht),p$n(r[X$],e.headersList),d$n(r[X$],t),Sfa&&e.body?.stream&&vfa.register(r,new WeakRef(e.body.stream)),r}Oh.converters.ReadableStream=Oh.interfaceConverter(ReadableStream);Oh.converters.FormData=Oh.interfaceConverter(Lfa);Oh.converters.URLSearchParams=Oh.interfaceConverter(URLSearchParams);Oh.converters.XMLHttpRequestBodyInit=function(e,t,r){return typeof e=="string"?Oh.converters.USVString(e,t,r):Nfa(e)?Oh.converters.Blob(e,t,r,{strict:!1}):ArrayBuffer.isView(e)||Vfa.isArrayBuffer(e)?Oh.converters.BufferSource(e,t,r):vbr.isFormDataLike(e)?Oh.converters.FormData(e,t,r,{strict:!1}):e instanceof URLSearchParams?Oh.converters.URLSearchParams(e,t,r):Oh.converters.DOMString(e,t,r)};Oh.converters.BodyInit=function(e,t,r){return e instanceof ReadableStream?Oh.converters.ReadableStream(e,t,r):e?.[Symbol.asyncIterator]?e:Oh.converters.XMLHttpRequestBodyInit(e,t,r)};Oh.converters.ResponseInit=Oh.dictionaryConverter([{key:"status",converter:Oh.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:Oh.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:Oh.converters.HeadersInit}]);I$n.exports={isNetworkError:Wfa,makeNetworkError:qht,makeResponse:Mwe,makeAppropriateNetworkError:Ofa,filterResponse:f$n,Response:Ihe,cloneResponse:wbr,fromInnerResponse:PYe}});var _$n=H((qou,C$n)=>{"use strict";var{kConnected:h$n,kSize:m$n}=B2(),Tbr=class{constructor(t){this.value=t}deref(){return this.value[h$n]===0&&this.value[m$n]===0?void 0:this.value}},Rbr=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[h$n]===0&&t[m$n]===0&&this.finalizer(r)})}unregister(t){}};C$n.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Tbr,FinalizationRegistry:Rbr}):{WeakRef,FinalizationRegistry}}});var Hwe=H(($ou,F$n)=>{"use strict";var{extractBody:Mfa,mixinBody:Hfa,cloneBody:Yfa,bodyUnusable:y$n}=dYe(),{Headers:N$n,fill:Qfa,HeadersList:rmt,setHeadersGuard:Dbr,getHeadersGuard:Xfa,setHeadersList:D$n,getHeadersList:b$n}=fhe(),{FinalizationRegistry:Jfa}=_$n()(),emt=Em(),E$n=wt("node:util"),{isValidHTTPToken:Ufa,sameOrigin:S$n,environmentSettingsObject:$ht}=qW(),{forbiddenMethodsSet:Kfa,corsSafeListedMethodsSet:jfa,referrerPolicy:zfa,requestRedirect:qfa,requestMode:$fa,requestCredentials:eIa,requestCache:tIa,requestDuplex:rIa}=sYe(),{kEnumerableProperty:cT,normalizedMethodRecordsBase:nIa,normalizedMethodRecords:iIa}=emt,{kHeaders:rO,kSignal:tmt,kState:O1,kDispatcher:Nbr}=nae(),{webidl:vf}=kk(),{URLSerializer:sIa}=eV(),{kConstruct:nmt}=B2(),oIa=wt("node:assert"),{getMaxListeners:v$n,setMaxListeners:B$n,getEventListeners:aIa,defaultMaxListeners:w$n}=wt("node:events"),cIa=Symbol("abortController"),k$n=new Jfa(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),imt=new WeakMap;function T$n(e){return t;function t(){let r=e.deref();if(r!==void 0){k$n.unregister(t),this.removeEventListener("abort",t),r.abort(this.reason);let n=imt.get(r.signal);if(n!==void 0){if(n.size!==0){for(let a of n){let o=a.deref();o!==void 0&&o.abort(this.reason)}n.clear()}imt.delete(r.signal)}}}}var R$n=!1,dae=class e{constructor(t,r={}){if(t===nmt)return;let n="Request constructor";vf.argumentLengthCheck(arguments,1,n),t=vf.converters.RequestInfo(t,n,"input"),r=vf.converters.RequestInit(r,n,"init");let a=null,o=null,l=$ht.settingsObject.baseUrl,A=null;if(typeof t=="string"){this[Nbr]=r.dispatcher;let X;try{X=new URL(t,l)}catch(ae){throw new TypeError("Failed to parse URL from "+t,{cause:ae})}if(X.username||X.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);a=smt({urlList:[X]}),o="cors"}else this[Nbr]=r.dispatcher||t[Nbr],oIa(t instanceof e),a=t[O1],A=t[tmt];let f=$ht.settingsObject.origin,I="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&S$n(a.window,f)&&(I=a.window),r.window!=null)throw new TypeError(`'window' option '${I}' must be null`);"window"in r&&(I="no-window"),a=smt({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:$ht.settingsObject,window:I,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]});let C=Object.keys(r).length!==0;if(C&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),r.referrer!==void 0){let X=r.referrer;if(X==="")a.referrer="no-referrer";else{let ae;try{ae=new URL(X,l)}catch(ne){throw new TypeError(`Referrer "${X}" is not a valid URL.`,{cause:ne})}ae.protocol==="about:"&&ae.hostname==="client"||f&&!S$n(ae,$ht.settingsObject.baseUrl)?a.referrer="client":a.referrer=ae}}r.referrerPolicy!==void 0&&(a.referrerPolicy=r.referrerPolicy);let b;if(r.mode!==void 0?b=r.mode:b=o,b==="navigate")throw vf.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(b!=null&&(a.mode=b),r.credentials!==void 0&&(a.credentials=r.credentials),r.cache!==void 0&&(a.cache=r.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(a.redirect=r.redirect),r.integrity!=null&&(a.integrity=String(r.integrity)),r.keepalive!==void 0&&(a.keepalive=!!r.keepalive),r.method!==void 0){let X=r.method,ae=iIa[X];if(ae!==void 0)a.method=ae;else{if(!Ufa(X))throw new TypeError(`'${X}' is not a valid HTTP method.`);let ne=X.toUpperCase();if(Kfa.has(ne))throw new TypeError(`'${X}' HTTP method is unsupported.`);X=nIa[ne]??X,a.method=X}!R$n&&a.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),R$n=!0)}r.signal!==void 0&&(A=r.signal),this[O1]=a;let E=new AbortController;if(this[tmt]=E.signal,A!=null){if(!A||typeof A.aborted!="boolean"||typeof A.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(A.aborted)E.abort(A.reason);else{this[cIa]=E;let X=new WeakRef(E),ae=T$n(X);try{(typeof v$n=="function"&&v$n(A)===w$n||aIa(A,"abort").length>=w$n)&&B$n(1500,A)}catch{}emt.addAbortListener(A,ae),k$n.register(E,{signal:A,abort:ae},ae)}}if(this[rO]=new N$n(nmt),D$n(this[rO],a.headersList),Dbr(this[rO],"request"),b==="no-cors"){if(!jfa.has(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);Dbr(this[rO],"request-no-cors")}if(C){let X=b$n(this[rO]),ae=r.headers!==void 0?r.headers:new rmt(X);if(X.clear(),ae instanceof rmt){for(let{name:ne,value:ce}of ae.rawValues())X.append(ne,ce,!1);X.cookies=ae.cookies}else Qfa(this[rO],ae)}let N=t instanceof e?t[O1].body:null;if((r.body!=null||N!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(r.body!=null){let[X,ae]=Mfa(r.body,a.keepalive);B=X,ae&&!b$n(this[rO]).contains("content-type",!0)&&this[rO].append("content-type",ae)}let F=B??N;if(F!=null&&F.source==null){if(B!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let Q=F;if(B==null&&N!=null){if(y$n(t))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let X=new TransformStream;N.stream.pipeThrough(X),Q={source:N.source,length:N.length,stream:X.readable}}this[O1].body=Q}get method(){return vf.brandCheck(this,e),this[O1].method}get url(){return vf.brandCheck(this,e),sIa(this[O1].url)}get headers(){return vf.brandCheck(this,e),this[rO]}get destination(){return vf.brandCheck(this,e),this[O1].destination}get referrer(){return vf.brandCheck(this,e),this[O1].referrer==="no-referrer"?"":this[O1].referrer==="client"?"about:client":this[O1].referrer.toString()}get referrerPolicy(){return vf.brandCheck(this,e),this[O1].referrerPolicy}get mode(){return vf.brandCheck(this,e),this[O1].mode}get credentials(){return this[O1].credentials}get cache(){return vf.brandCheck(this,e),this[O1].cache}get redirect(){return vf.brandCheck(this,e),this[O1].redirect}get integrity(){return vf.brandCheck(this,e),this[O1].integrity}get keepalive(){return vf.brandCheck(this,e),this[O1].keepalive}get isReloadNavigation(){return vf.brandCheck(this,e),this[O1].reloadNavigation}get isHistoryNavigation(){return vf.brandCheck(this,e),this[O1].historyNavigation}get signal(){return vf.brandCheck(this,e),this[tmt]}get body(){return vf.brandCheck(this,e),this[O1].body?this[O1].body.stream:null}get bodyUsed(){return vf.brandCheck(this,e),!!this[O1].body&&emt.isDisturbed(this[O1].body.stream)}get duplex(){return vf.brandCheck(this,e),"half"}clone(){if(vf.brandCheck(this,e),y$n(this))throw new TypeError("unusable");let t=x$n(this[O1]),r=new AbortController;if(this.signal.aborted)r.abort(this.signal.reason);else{let n=imt.get(this.signal);n===void 0&&(n=new Set,imt.set(this.signal,n));let a=new WeakRef(r);n.add(a),emt.addAbortListener(r.signal,T$n(a))}return G$n(t,r.signal,Xfa(this[rO]))}[E$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${E$n.formatWithOptions(r,n)}`}};Hfa(dae);function smt(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new rmt(e.headersList):new rmt}}function x$n(e){let t=smt({...e,body:null});return e.body!=null&&(t.body=Yfa(t,e.body)),t}function G$n(e,t,r){let n=new dae(nmt);return n[O1]=e,n[tmt]=t,n[rO]=new N$n(nmt),D$n(n[rO],e.headersList),Dbr(n[rO],r),n}Object.defineProperties(dae.prototype,{method:cT,url:cT,headers:cT,redirect:cT,clone:cT,signal:cT,duplex:cT,destination:cT,body:cT,bodyUsed:cT,isHistoryNavigation:cT,isReloadNavigation:cT,keepalive:cT,integrity:cT,cache:cT,credentials:cT,attribute:cT,referrerPolicy:cT,referrer:cT,mode:cT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});vf.converters.Request=vf.interfaceConverter(dae);vf.converters.RequestInfo=function(e,t,r){return typeof e=="string"?vf.converters.USVString(e,t,r):e instanceof dae?vf.converters.Request(e,t,r):vf.converters.USVString(e,t,r)};vf.converters.AbortSignal=vf.interfaceConverter(AbortSignal);vf.converters.RequestInit=vf.dictionaryConverter([{key:"method",converter:vf.converters.ByteString},{key:"headers",converter:vf.converters.HeadersInit},{key:"body",converter:vf.nullableConverter(vf.converters.BodyInit)},{key:"referrer",converter:vf.converters.USVString},{key:"referrerPolicy",converter:vf.converters.DOMString,allowedValues:zfa},{key:"mode",converter:vf.converters.DOMString,allowedValues:$fa},{key:"credentials",converter:vf.converters.DOMString,allowedValues:eIa},{key:"cache",converter:vf.converters.DOMString,allowedValues:tIa},{key:"redirect",converter:vf.converters.DOMString,allowedValues:qfa},{key:"integrity",converter:vf.converters.DOMString},{key:"keepalive",converter:vf.converters.boolean},{key:"signal",converter:vf.nullableConverter(e=>vf.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:vf.converters.any},{key:"duplex",converter:vf.converters.DOMString,allowedValues:rIa},{key:"dispatcher",converter:vf.converters.any}]);F$n.exports={Request:dae,makeRequest:smt,fromInnerRequest:G$n,cloneRequest:x$n}});var MYe=H((eau,j$n)=>{"use strict";var{makeNetworkError:_y,makeAppropriateNetworkError:omt,filterResponse:kbr,makeResponse:amt,fromInnerResponse:lIa}=WYe(),{HeadersList:Z$n}=fhe(),{Request:uIa,cloneRequest:gIa}=Hwe(),pae=wt("node:zlib"),{bytesMatch:AIa,makePolicyContainer:dIa,clonePolicyContainer:pIa,requestBadPort:fIa,TAOCheck:IIa,appendRequestOriginHeader:hIa,responseLocationURL:mIa,requestCurrentURL:L8,setRequestReferrerPolicyOnRedirect:CIa,tryUpgradeRequestToAPotentiallyTrustworthyURL:_Ia,createOpaqueTimingInfo:Lbr,appendFetchMetadata:yIa,corsCheck:bIa,crossOriginResourcePolicyCheck:EIa,determineRequestsReferrer:SIa,coarsenedSharedCurrentTime:OYe,createDeferredPromise:vIa,isBlobLike:BIa,sameOrigin:Zbr,isCancelled:hhe,isAborted:L$n,isErrorLike:wIa,fullyReadBody:TIa,readableStreamClose:RIa,isomorphicEncode:cmt,urlIsLocal:NIa,urlIsHttpHttpsScheme:Vbr,urlHasHttpsScheme:DIa,clampAndCoarsenConnectionTimingInfo:kIa,simpleRangeHeaderValue:xIa,buildContentRange:GIa,createInflate:FIa,extractMimeType:ZIa}=qW(),{kState:O$n,kDispatcher:LIa}=nae(),mhe=wt("node:assert"),{safelyExtractBody:Pbr,extractBody:V$n}=dYe(),{redirectStatusSet:M$n,nullBodyStatus:H$n,safeMethodsSet:VIa,requestBodyHeader:PIa,subresourceSet:WIa}=sYe(),OIa=wt("node:events"),{Readable:MIa,pipeline:HIa,finished:YIa}=wt("node:stream"),{addAbortListener:QIa,isErrored:XIa,isReadable:lmt,bufferToLowerCasedHeaderName:P$n}=Em(),{dataURLProcessor:JIa,serializeAMimeType:UIa,minimizeSupportedMimeType:KIa}=eV(),{getGlobalDispatcher:jIa}=Jht(),{webidl:zIa}=kk(),{STATUS_CODES:qIa}=wt("node:http"),$Ia=["GET","HEAD"],eha=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",xbr,umt=class extends OIa{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function tha(e){Y$n(e,"fetch")}function rha(e,t=void 0){zIa.argumentLengthCheck(arguments,1,"globalThis.fetch");let r=vIa(),n;try{n=new uIa(e,t)}catch(C){return r.reject(C),r.promise}let a=n[O$n];if(n.signal.aborted)return Gbr(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=!1,f=null;return QIa(n.signal,()=>{A=!0,mhe(f!=null),f.abort(n.signal.reason);let C=l?.deref();Gbr(r,a,C,n.signal.reason)}),f=X$n({request:a,processResponseEndOfBody:tha,processResponse:C=>{if(!A){if(C.aborted){Gbr(r,a,l,f.serializedAbortReason);return}if(C.type==="error"){r.reject(new TypeError("fetch failed",{cause:C.error}));return}l=new WeakRef(lIa(C,"immutable")),r.resolve(l.deref()),r=null}},dispatcher:n[LIa]}),r.promise}function Y$n(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;Vbr(r)&&n!==null&&(e.timingAllowPassed||(n=Lbr({startTime:n.startTime}),a=""),n.endTime=OYe(),e.timingInfo=n,Q$n(n,r.href,t,globalThis,a))}var Q$n=performance.markResourceTiming;function Gbr(e,t,r,n){if(e&&e.reject(n),t.body!=null&&lmt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[O$n];a.body!=null&&lmt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function X$n({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A=jIa()}){mhe(A);let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=OYe(I),b=Lbr({startTime:C}),E={controller:new umt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return mhe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=pIa(e.client.policyContainer):e.policyContainer=dIa()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,WIa.has(e.destination),J$n(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function J$n(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!NIa(L8(r))&&(n=_y("local URLs only")),_Ia(r),fIa(r)==="blocked"&&(n=_y("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=SIa(r)),n===null&&(n=await(async()=>{let o=L8(r);return Zbr(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await W$n(e)):r.mode==="same-origin"?_y('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?_y('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await W$n(e)):Vbr(L8(r))?(r.responseTainting="cors",await U$n(e)):_y("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=kbr(n,"basic"):r.responseTainting==="cors"?n=kbr(n,"cors"):r.responseTainting==="opaque"?n=kbr(n,"opaque"):mhe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range",!0)&&(n=a=_y()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||H$n.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>Fbr(e,_y(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!AIa(A,r.integrity)){o("integrity mismatch");return}n.body=Pbr(A)[0],Fbr(e,n)};await TIa(n.body,l,o)}else Fbr(e,n)}function W$n(e){if(hhe(e)&&e.request.redirectCount===0)return Promise.resolve(omt(e));let{request:t}=e,{protocol:r}=L8(t);switch(r){case"about:":return Promise.resolve(_y("about scheme is not supported"));case"blob:":{xbr||(xbr=wt("node:buffer").resolveObjectURL);let n=L8(t);if(n.search.length!==0)return Promise.resolve(_y("NetworkError when attempting to fetch resource."));let a=xbr(n.toString());if(t.method!=="GET"||!BIa(a))return Promise.resolve(_y("invalid method"));let o=amt(),l=a.size,A=cmt(`${l}`),f=a.type;if(t.headersList.contains("range",!0)){o.rangeRequested=!0;let I=t.headersList.get("range",!0),C=xIa(I,!0);if(C==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let{rangeStartValue:b,rangeEndValue:E}=C;if(b===null)b=l-E,E=b+E-1;else{if(b>=l)return Promise.resolve(_y("Range start is greater than the blob's size."));(E===null||E>=l)&&(E=l-1)}let N=a.slice(b,E,f),B=V$n(N);o.body=B[0];let F=cmt(`${N.size}`),Q=GIa(b,E,l);o.status=206,o.statusText="Partial Content",o.headersList.set("content-length",F,!0),o.headersList.set("content-type",f,!0),o.headersList.set("content-range",Q,!0)}else{let I=V$n(a);o.statusText="OK",o.body=I[0],o.headersList.set("content-length",A,!0),o.headersList.set("content-type",f,!0)}return Promise.resolve(o)}case"data:":{let n=L8(t),a=JIa(n);if(a==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let o=UIa(a.mimeType);return Promise.resolve(amt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:Pbr(a.body)[0]}))}case"file:":return Promise.resolve(_y("not implemented... yet..."));case"http:":case"https:":return U$n(e).catch(n=>_y(n));default:return Promise.resolve(_y("unknown scheme"))}}function nha(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Fbr(e,t){let r=e.timingInfo,n=()=>{let o=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=r),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;r.endTime=o;let A=t.cacheState,f=t.bodyInfo;t.timingAllowPassed||(r=Lbr(r),A="");let I=0;if(e.request.mode!=="navigator"||!t.hasCrossOriginRedirects){I=t.status;let C=ZIa(t.headersList);C!=="failure"&&(f.contentType=KIa(C))}e.request.initiatorType!=null&&Q$n(r,e.request.url.href,e.request.initiatorType,globalThis,A,f,I)};let l=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>l())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let a=t.type==="error"?t:t.internalResponse??t;a.body==null?n():YIa(a.body.stream,()=>{n()})}async function U$n(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await K$n(e),t.responseTainting==="cors"&&bIa(t,r)==="failure")return _y("cors failure");IIa(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&EIa(t.origin,t.client,t.destination,n)==="blocked"?_y("blocked"):(M$n.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),t.redirect==="error"?r=_y("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await iha(e,r):mhe(!1)),r.timingInfo=a,r)}function iha(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=mIa(n,L8(r).hash),a==null)return t}catch(l){return Promise.resolve(_y(l))}if(!Vbr(a))return Promise.resolve(_y("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(_y("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!Zbr(r,a))return Promise.resolve(_y('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(_y('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(_y());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!$Ia.includes(r.method)){r.method="GET",r.body=null;for(let l of PIa)r.headersList.delete(l)}Zbr(L8(r),a)||(r.headersList.delete("authorization",!0),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie",!0),r.headersList.delete("host",!0)),r.body!=null&&(mhe(r.body.source!=null),r.body=Pbr(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=OYe(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),CIa(r,n),J$n(e,!0)}async function K$n(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=gIa(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=cmt(`${C}`)),b!=null&&o.headersList.append("content-length",b,!0),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",cmt(o.referrer.href),!0),hIa(o),yIa(o),o.headersList.contains("user-agent",!0)||o.headersList.append("user-agent",eha),o.cache==="default"&&(o.headersList.contains("if-modified-since",!0)||o.headersList.contains("if-none-match",!0)||o.headersList.contains("if-unmodified-since",!0)||o.headersList.contains("if-match",!0)||o.headersList.contains("if-range",!0))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control",!0)&&o.headersList.append("cache-control","max-age=0",!0),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma",!0)||o.headersList.append("pragma","no-cache",!0),o.headersList.contains("cache-control",!0)||o.headersList.append("cache-control","no-cache",!0)),o.headersList.contains("range",!0)&&o.headersList.append("accept-encoding","identity",!0),o.headersList.contains("accept-encoding",!0)||(DIa(L8(o))?o.headersList.append("accept-encoding","br, gzip, deflate",!0):o.headersList.append("accept-encoding","gzip, deflate",!0)),o.headersList.delete("host",!0),A==null&&(o.cache="no-store"),o.cache!=="no-store"&&o.cache,l==null){if(o.cache==="only-if-cached")return _y("only if cached");let E=await sha(a,I,r);!VIa.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range",!0)&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?_y():hhe(e)?omt(e):_y("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(hhe(e))return omt(e);e.controller.connection.destroy(),l=await K$n(e,t,!0)}return l}async function sha(e,t=!1,r=!1){mhe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B,F=!0){this.destroyed||(this.destroyed=!0,F&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){hhe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{hhe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{hhe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=amt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=amt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),omt(e,B)):_y(B)}let I=async()=>{await e.controller.resume()},C=B=>{hhe(e)||e.controller.abort(B)},b=new ReadableStream({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)},type:"bytes"});a.body={stream:b,source:null,length:null},e.controller.onAborted=E,e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:X,value:ae}=await e.controller.next();if(L$n(e))break;B=X?void 0:ae}catch(X){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=X,F=!0)}if(B===void 0){RIa(e.controller.controller),nha(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}let Q=new Uint8Array(B);if(Q.byteLength&&e.controller.controller.enqueue(Q),XIa(b)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(B){L$n(e)?(a.aborted=!0,lmt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):lmt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:wIa(B)?B:void 0})),e.controller.connection.destroy()}return a;function N({body:B}){let F=L8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:Q.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;o.finalConnectionTimingInfo=kIa(void 0,o.postRedirectStartTime,e.crossOriginIsolatedCapability),ce.destroyed?ne(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne),o.finalNetworkRequestStartTime=OYe(e.crossOriginIsolatedCapability)},onResponseStarted(){o.finalNetworkResponseStartTime=OYe(e.crossOriginIsolatedCapability)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new Z$n;for(let Me=0;MeMe.trim())),be=Se.get("location",!0),this.body=new MIa({read:fe});let k=[],et=be&&n.redirect==="follow"&&M$n.has(ne);if(de.length!==0&&n.method!=="HEAD"&&n.method!=="CONNECT"&&!H$n.includes(ne)&&!et)for(let Me=0;Me{Me&&this.onError(Me)}).on("error",ct):this.body.on("error",ct)}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new Z$n;for(let de=0;de{"use strict";z$n.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var $$n=H((rau,q$n)=>{"use strict";var{webidl:nO}=kk(),gmt=Symbol("ProgressEvent state"),Obr=class e extends Event{constructor(t,r={}){t=nO.converters.DOMString(t,"ProgressEvent constructor","type"),r=nO.converters.ProgressEventInit(r??{}),super(t,r),this[gmt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return nO.brandCheck(this,e),this[gmt].lengthComputable}get loaded(){return nO.brandCheck(this,e),this[gmt].loaded}get total(){return nO.brandCheck(this,e),this[gmt].total}};nO.converters.ProgressEventInit=nO.dictionaryConverter([{key:"lengthComputable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:nO.converters.boolean,defaultValue:()=>!1}]);q$n.exports={ProgressEvent:Obr}});var tei=H((nau,eei)=>{"use strict";function oha(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}eei.exports={getEncoding:oha}});var lei=H((iau,cei)=>{"use strict";var{kState:Ywe,kError:Mbr,kResult:rei,kAborted:HYe,kLastProgressEventFired:Hbr}=Wbr(),{ProgressEvent:aha}=$$n(),{getEncoding:nei}=tei(),{serializeAMimeType:cha,parseMIMEType:iei}=eV(),{types:lha}=wt("node:util"),{StringDecoder:sei}=wt("string_decoder"),{btoa:oei}=wt("node:buffer"),uha={enumerable:!0,writable:!1,configurable:!1};function gha(e,t,r,n){if(e[Ywe]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Ywe]="loading",e[rei]=null,e[Mbr]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[HYe];)try{let{done:I,value:C}=await A;if(f&&!e[HYe]&&queueMicrotask(()=>{fae("loadstart",e)}),f=!1,!I&&lha.isUint8Array(C))l.push(C),(e[Hbr]===void 0||Date.now()-e[Hbr]>=50)&&!e[HYe]&&(e[Hbr]=Date.now(),queueMicrotask(()=>{fae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[Ywe]="done";try{let b=Aha(l,r,t.type,n);if(e[HYe])return;e[rei]=b,fae("load",e)}catch(b){e[Mbr]=b,fae("error",e)}e[Ywe]!=="loading"&&fae("loadend",e)});break}}catch(I){if(e[HYe])return;queueMicrotask(()=>{e[Ywe]="done",e[Mbr]=I,fae("error",e),e[Ywe]!=="loading"&&fae("loadend",e)});break}})()}function fae(e,t){let r=new aha(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function Aha(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=iei(r||"application/octet-stream");o!=="failure"&&(a+=cha(o)),a+=";base64,";let l=new sei("latin1");for(let A of e)a+=oei(l.write(A));return a+=oei(l.end()),a}case"Text":{let a="failure";if(n&&(a=nei(n)),a==="failure"&&r){let o=iei(r);o!=="failure"&&(a=nei(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),dha(e,a)}case"ArrayBuffer":return aei(e).buffer;case"BinaryString":{let a="",o=new sei("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function dha(e,t){let r=aei(e),n=pha(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function pha(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function aei(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}cei.exports={staticPropertyDescriptors:uha,readOperation:gha,fireAProgressEvent:fae}});var dei=H((sau,Aei)=>{"use strict";var{staticPropertyDescriptors:Qwe,readOperation:Amt,fireAProgressEvent:uei}=lei(),{kState:Che,kError:gei,kResult:dmt,kEvents:h0,kAborted:fha}=Wbr(),{webidl:ib}=kk(),{kEnumerableProperty:nV}=Em(),PX=class e extends EventTarget{constructor(){super(),this[Che]="empty",this[dmt]=null,this[gei]=null,this[h0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"ArrayBuffer")}readAsBinaryString(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"BinaryString")}readAsText(t,r=void 0){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsText"),t=ib.converters.Blob(t,{strict:!1}),r!==void 0&&(r=ib.converters.DOMString(r,"FileReader.readAsText","encoding")),Amt(this,t,"Text",r)}readAsDataURL(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"DataURL")}abort(){if(this[Che]==="empty"||this[Che]==="done"){this[dmt]=null;return}this[Che]==="loading"&&(this[Che]="done",this[dmt]=null),this[fha]=!0,uei("abort",this),this[Che]!=="loading"&&uei("loadend",this)}get readyState(){switch(ib.brandCheck(this,e),this[Che]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return ib.brandCheck(this,e),this[dmt]}get error(){return ib.brandCheck(this,e),this[gei]}get onloadend(){return ib.brandCheck(this,e),this[h0].loadend}set onloadend(t){ib.brandCheck(this,e),this[h0].loadend&&this.removeEventListener("loadend",this[h0].loadend),typeof t=="function"?(this[h0].loadend=t,this.addEventListener("loadend",t)):this[h0].loadend=null}get onerror(){return ib.brandCheck(this,e),this[h0].error}set onerror(t){ib.brandCheck(this,e),this[h0].error&&this.removeEventListener("error",this[h0].error),typeof t=="function"?(this[h0].error=t,this.addEventListener("error",t)):this[h0].error=null}get onloadstart(){return ib.brandCheck(this,e),this[h0].loadstart}set onloadstart(t){ib.brandCheck(this,e),this[h0].loadstart&&this.removeEventListener("loadstart",this[h0].loadstart),typeof t=="function"?(this[h0].loadstart=t,this.addEventListener("loadstart",t)):this[h0].loadstart=null}get onprogress(){return ib.brandCheck(this,e),this[h0].progress}set onprogress(t){ib.brandCheck(this,e),this[h0].progress&&this.removeEventListener("progress",this[h0].progress),typeof t=="function"?(this[h0].progress=t,this.addEventListener("progress",t)):this[h0].progress=null}get onload(){return ib.brandCheck(this,e),this[h0].load}set onload(t){ib.brandCheck(this,e),this[h0].load&&this.removeEventListener("load",this[h0].load),typeof t=="function"?(this[h0].load=t,this.addEventListener("load",t)):this[h0].load=null}get onabort(){return ib.brandCheck(this,e),this[h0].abort}set onabort(t){ib.brandCheck(this,e),this[h0].abort&&this.removeEventListener("abort",this[h0].abort),typeof t=="function"?(this[h0].abort=t,this.addEventListener("abort",t)):this[h0].abort=null}};PX.EMPTY=PX.prototype.EMPTY=0;PX.LOADING=PX.prototype.LOADING=1;PX.DONE=PX.prototype.DONE=2;Object.defineProperties(PX.prototype,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe,readAsArrayBuffer:nV,readAsBinaryString:nV,readAsText:nV,readAsDataURL:nV,abort:nV,readyState:nV,result:nV,error:nV,onloadstart:nV,onprogress:nV,onload:nV,onabort:nV,onerror:nV,onloadend:nV,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(PX,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe});Aei.exports={FileReader:PX}});var pmt=H((oau,pei)=>{"use strict";pei.exports={kConstruct:B2().kConstruct}});var hei=H((aau,Iei)=>{"use strict";var Iha=wt("node:assert"),{URLSerializer:fei}=eV(),{isValidHeaderName:hha}=qW();function mha(e,t,r=!1){let n=fei(e,r),a=fei(t,r);return n===a}function Cha(e){Iha(e!==null);let t=[];for(let r of e.split(","))r=r.trim(),hha(r)&&t.push(r);return t}Iei.exports={urlEquals:mha,getFieldValues:Cha}});var _ei=H((cau,Cei)=>{"use strict";var{kConstruct:_ha}=pmt(),{urlEquals:yha,getFieldValues:Ybr}=hei(),{kEnumerableProperty:_he,isDisturbed:bha}=Em(),{webidl:Bp}=kk(),{Response:Eha,cloneResponse:Sha,fromInnerResponse:vha}=WYe(),{Request:J$,fromInnerRequest:Bha}=Hwe(),{kState:WX}=nae(),{fetching:wha}=MYe(),{urlIsHttpHttpsScheme:fmt,createDeferredPromise:Xwe,readAllBytes:Tha}=qW(),Qbr=wt("node:assert"),Imt=class e{#e;constructor(){arguments[0]!==_ha&&Bp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Bp.brandCheck(this,e);let n="Cache.match";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=this.#i(t,r,1);if(a.length!==0)return a[0]}async matchAll(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.matchAll";return t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options"),this.#i(t,r)}async add(t){Bp.brandCheck(this,e);let r="Cache.add";Bp.argumentLengthCheck(arguments,1,r),t=Bp.converters.RequestInfo(t,r,"request");let n=[t];return await this.addAll(n)}async addAll(t){Bp.brandCheck(this,e);let r="Cache.addAll";Bp.argumentLengthCheck(arguments,1,r);let n=[],a=[];for(let E of t){if(E===void 0)throw Bp.errors.conversionFailed({prefix:r,argument:"Argument 1",types:["undefined is not allowed"]});if(E=Bp.converters.RequestInfo(E),typeof E=="string")continue;let N=E[WX];if(!fmt(N.url)||N.method!=="GET")throw Bp.errors.exception({header:r,message:"Expected http/s scheme when method is not GET."})}let o=[];for(let E of t){let N=new J$(E)[WX];if(!fmt(N.url))throw Bp.errors.exception({header:r,message:"Expected http/s scheme."});N.initiator="fetch",N.destination="subresource",a.push(N);let B=Xwe();o.push(wha({request:N,processResponse(F){if(F.type==="error"||F.status===206||F.status<200||F.status>299)B.reject(Bp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(F.headersList.contains("vary")){let Q=Ybr(F.headersList.get("vary"));for(let X of Q)if(X==="*"){B.reject(Bp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let ae of o)ae.abort();return}}},processResponseEndOfBody(F){if(F.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(F)}})),n.push(B.promise)}let A=await Promise.all(n),f=[],I=0;for(let E of A){let N={type:"put",request:a[I],response:E};f.push(N),I++}let C=Xwe(),b=null;try{this.#t(f)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve(void 0):C.reject(b)}),C.promise}async put(t,r){Bp.brandCheck(this,e);let n="Cache.put";Bp.argumentLengthCheck(arguments,2,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.Response(r,n,"response");let a=null;if(t instanceof J$?a=t[WX]:a=new J$(t)[WX],!fmt(a.url)||a.method!=="GET")throw Bp.errors.exception({header:n,message:"Expected an http/s scheme when method is not GET"});let o=r[WX];if(o.status===206)throw Bp.errors.exception({header:n,message:"Got 206 status"});if(o.headersList.contains("vary")){let N=Ybr(o.headersList.get("vary"));for(let B of N)if(B==="*")throw Bp.errors.exception({header:n,message:"Got * vary field value"})}if(o.body&&(bha(o.body.stream)||o.body.stream.locked))throw Bp.errors.exception({header:n,message:"Response body is locked or disturbed"});let l=Sha(o),A=Xwe();if(o.body!=null){let B=o.body.stream.getReader();Tha(B).then(A.resolve,A.reject)}else A.resolve(void 0);let f=[],I={type:"put",request:a,response:l};f.push(I);let C=await A.promise;l.body!=null&&(l.body.source=C);let b=Xwe(),E=null;try{this.#t(f)}catch(N){E=N}return queueMicrotask(()=>{E===null?b.resolve():b.reject(E)}),b.promise}async delete(t,r={}){Bp.brandCheck(this,e);let n="Cache.delete";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return!1}else Qbr(typeof t=="string"),a=new J$(t)[WX];let o=[],l={type:"delete",request:a,options:r};o.push(l);let A=Xwe(),f=null,I;try{I=this.#t(o)}catch(C){f=C}return queueMicrotask(()=>{f===null?A.resolve(!!I?.length):A.reject(f)}),A.promise}async keys(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.keys";t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=Xwe(),l=[];if(t===void 0)for(let A of this.#e)l.push(A[0]);else{let A=this.#n(a,r);for(let f of A)l.push(f[0])}return queueMicrotask(()=>{let A=[];for(let f of l){let I=Bha(f,new AbortController().signal,"immutable");A.push(I)}o.resolve(Object.freeze(A))}),o.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);Qbr(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!fmt(f.url))throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);Qbr(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!yha(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=Ybr(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}#i(t,r,n=1/0){let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=[];if(t===void 0)for(let A of this.#e)o.push(A[1]);else{let A=this.#n(a,r);for(let f of A)o.push(f[1])}let l=[];for(let A of o){let f=vha(A,"immutable");if(l.push(f.clone()),l.length>=n)break}return Object.freeze(l)}};Object.defineProperties(Imt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:_he,matchAll:_he,add:_he,addAll:_he,put:_he,delete:_he,keys:_he});var mei=[{key:"ignoreSearch",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:Bp.converters.boolean,defaultValue:()=>!1}];Bp.converters.CacheQueryOptions=Bp.dictionaryConverter(mei);Bp.converters.MultiCacheQueryOptions=Bp.dictionaryConverter([...mei,{key:"cacheName",converter:Bp.converters.DOMString}]);Bp.converters.Response=Bp.interfaceConverter(Eha);Bp.converters["sequence"]=Bp.sequenceConverter(Bp.converters.RequestInfo);Cei.exports={Cache:Imt}});var bei=H((lau,yei)=>{"use strict";var{kConstruct:YYe}=pmt(),{Cache:hmt}=_ei(),{webidl:MZ}=kk(),{kEnumerableProperty:QYe}=Em(),mmt=class e{#e=new Map;constructor(){arguments[0]!==YYe&&MZ.illegalConstructor()}async match(t,r={}){if(MZ.brandCheck(this,e),MZ.argumentLengthCheck(arguments,1,"CacheStorage.match"),t=MZ.converters.RequestInfo(t),r=MZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new hmt(YYe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new hmt(YYe,n).match(t,r);if(o!==void 0)return o}}async has(t){MZ.brandCheck(this,e);let r="CacheStorage.has";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)}async open(t){MZ.brandCheck(this,e);let r="CacheStorage.open";if(MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)){let a=this.#e.get(t);return new hmt(YYe,a)}let n=[];return this.#e.set(t,n),new hmt(YYe,n)}async delete(t){MZ.brandCheck(this,e);let r="CacheStorage.delete";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.delete(t)}async keys(){return MZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(mmt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:QYe,has:QYe,open:QYe,delete:QYe,keys:QYe});yei.exports={CacheStorage:mmt}});var Sei=H((uau,Eei)=>{"use strict";Eei.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Xbr=H((gau,Rei)=>{"use strict";function Rha(e){for(let t=0;t=0&&r<=8||r>=10&&r<=31||r===127)return!0}return!1}function vei(e){for(let t=0;t126||r===34||r===40||r===41||r===60||r===62||r===64||r===44||r===59||r===58||r===92||r===47||r===91||r===93||r===63||r===61||r===123||r===125)throw new Error("Invalid cookie name")}}function Bei(e){let t=e.length,r=0;if(e[0]==='"'){if(t===1||e[t-1]!=='"')throw new Error("Invalid cookie value");--t,++r}for(;r126||n===34||n===44||n===59||n===92)throw new Error("Invalid cookie value")}}function wei(e){for(let t=0;tt.toString().padStart(2,"0"));function Tei(e){return typeof e=="number"&&(e=new Date(e)),`${Dha[e.getUTCDay()]}, ${Cmt[e.getUTCDate()]} ${kha[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Cmt[e.getUTCHours()]}:${Cmt[e.getUTCMinutes()]}:${Cmt[e.getUTCSeconds()]} GMT`}function xha(e){if(e<0)throw new Error("Invalid cookie max-age")}function Gha(e){if(e.name.length===0)return null;vei(e.name),Bei(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(xha(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(Nha(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(wei(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${Tei(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}Rei.exports={isCTLExcludingHtab:Rha,validateCookieName:vei,validateCookiePath:wei,validateCookieValue:Bei,toIMFDate:Tei,stringify:Gha}});var Dei=H((Aau,Nei)=>{"use strict";var{maxNameValuePairSize:Fha,maxAttributeValueSize:Zha}=Sei(),{isCTLExcludingHtab:Lha}=Xbr(),{collectASequenceOfCodePointsFast:_mt}=eV(),Vha=wt("node:assert");function Pha(e){if(Lha(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=_mt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=_mt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>Fha?null:{name:n,value:a,...Jwe(r)}}function Jwe(e,t={}){if(e.length===0)return t;Vha(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=_mt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=_mt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Zha)return Jwe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return Jwe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return Jwe(e,t)}Nei.exports={parseSetCookie:Pha,parseUnparsedAttributes:Jwe}});var Gei=H((dau,xei)=>{"use strict";var{parseSetCookie:Wha}=Dei(),{stringify:Oha}=Xbr(),{webidl:nC}=kk(),{Headers:ymt}=fhe();function Mha(e){nC.argumentLengthCheck(arguments,1,"getCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function Hha(e,t,r){nC.brandCheck(e,ymt,{strict:!1});let n="deleteCookie";nC.argumentLengthCheck(arguments,2,n),t=nC.converters.DOMString(t,n,"name"),r=nC.converters.DeleteCookieAttributes(r),kei(e,{name:t,value:"",expires:new Date(0),...r})}function Yha(e){nC.argumentLengthCheck(arguments,1,"getSetCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.getSetCookie();return t?t.map(r=>Wha(r)):[]}function kei(e,t){nC.argumentLengthCheck(arguments,2,"setCookie"),nC.brandCheck(e,ymt,{strict:!1}),t=nC.converters.Cookie(t);let r=Oha(t);r&&e.append("Set-Cookie",r)}nC.converters.DeleteCookieAttributes=nC.dictionaryConverter([{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null}]);nC.converters.Cookie=nC.dictionaryConverter([{converter:nC.converters.DOMString,key:"name"},{converter:nC.converters.DOMString,key:"value"},{converter:nC.nullableConverter(e=>typeof e=="number"?nC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"secure",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:nC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:nC.sequenceConverter(nC.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);xei.exports={getCookies:Mha,deleteCookie:Hha,getSetCookies:Yha,setCookie:kei}});var Kwe=H((pau,Zei)=>{"use strict";var{webidl:Wp}=kk(),{kEnumerableProperty:iV}=Em(),{kConstruct:Fei}=B2(),{MessagePort:Qha}=wt("node:worker_threads"),Uwe=class e extends Event{#e;constructor(t,r={}){if(t===Fei){super(arguments[1],arguments[2]);return}let n="MessageEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.MessageEventInit(r,n,"eventInitDict"),super(t,r),this.#e=r}get data(){return Wp.brandCheck(this,e),this.#e.data}get origin(){return Wp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Wp.brandCheck(this,e),this.#e.lastEventId}get source(){return Wp.brandCheck(this,e),this.#e.source}get ports(){return Wp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Wp.brandCheck(this,e),Wp.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}static createFastMessageEvent(t,r){let n=new e(Fei,t,r);return n.#e=r,n.#e.data??=null,n.#e.origin??="",n.#e.lastEventId??="",n.#e.source??=null,n.#e.ports??=[],n}},{createFastMessageEvent:Xha}=Uwe;delete Uwe.createFastMessageEvent;var bmt=class e extends Event{#e;constructor(t,r={}){let n="CloseEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Wp.brandCheck(this,e),this.#e.wasClean}get code(){return Wp.brandCheck(this,e),this.#e.code}get reason(){return Wp.brandCheck(this,e),this.#e.reason}},Emt=class e extends Event{#e;constructor(t,r){let n="ErrorEvent constructor";Wp.argumentLengthCheck(arguments,1,n),super(t,r),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Wp.brandCheck(this,e),this.#e.message}get filename(){return Wp.brandCheck(this,e),this.#e.filename}get lineno(){return Wp.brandCheck(this,e),this.#e.lineno}get colno(){return Wp.brandCheck(this,e),this.#e.colno}get error(){return Wp.brandCheck(this,e),this.#e.error}};Object.defineProperties(Uwe.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:iV,origin:iV,lastEventId:iV,source:iV,ports:iV,initMessageEvent:iV});Object.defineProperties(bmt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:iV,code:iV,wasClean:iV});Object.defineProperties(Emt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:iV,filename:iV,lineno:iV,colno:iV,error:iV});Wp.converters.MessagePort=Wp.interfaceConverter(Qha);Wp.converters["sequence"]=Wp.sequenceConverter(Wp.converters.MessagePort);var Jbr=[{key:"bubbles",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Wp.converters.boolean,defaultValue:()=>!1}];Wp.converters.MessageEventInit=Wp.dictionaryConverter([...Jbr,{key:"data",converter:Wp.converters.any,defaultValue:()=>null},{key:"origin",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"source",converter:Wp.nullableConverter(Wp.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:Wp.converters["sequence"],defaultValue:()=>new Array(0)}]);Wp.converters.CloseEventInit=Wp.dictionaryConverter([...Jbr,{key:"wasClean",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"code",converter:Wp.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:Wp.converters.USVString,defaultValue:()=>""}]);Wp.converters.ErrorEventInit=Wp.dictionaryConverter([...Jbr,{key:"message",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:Wp.converters.any}]);Zei.exports={MessageEvent:Uwe,CloseEvent:bmt,ErrorEvent:Emt,createFastMessageEvent:Xha}});var yhe=H((fau,Lei)=>{"use strict";var Jha="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Uha={enumerable:!0,writable:!1,configurable:!1},Kha={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},jha={NOT_SENT:0,PROCESSING:1,SENT:2},zha={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},qha=2**16-1,$ha={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ema=Buffer.allocUnsafe(0),tma={string:1,typedArray:2,arrayBuffer:3,blob:4};Lei.exports={uid:Jha,sentCloseFrameState:jha,staticPropertyDescriptors:Uha,states:Kha,opcodes:zha,maxUnsigned16Bit:qha,parserStates:$ha,emptyBuffer:ema,sendHints:tma}});var XYe=H((Iau,Vei)=>{"use strict";Vei.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var KYe=H((hau,Jei)=>{"use strict";var{kReadyState:JYe,kController:rma,kResponse:nma,kBinaryType:ima,kWebSocketURL:sma}=XYe(),{states:UYe,opcodes:Iae}=yhe(),{ErrorEvent:oma,createFastMessageEvent:ama}=Kwe(),{isUtf8:cma}=wt("node:buffer"),{collectASequenceOfCodePointsFast:lma,removeHTTPWhitespace:Pei}=eV();function uma(e){return e[JYe]===UYe.CONNECTING}function gma(e){return e[JYe]===UYe.OPEN}function Ama(e){return e[JYe]===UYe.CLOSING}function dma(e){return e[JYe]===UYe.CLOSED}function Ubr(e,t,r=(a,o)=>new Event(a,o),n={}){let a=r(e,n);t.dispatchEvent(a)}function pma(e,t,r){if(e[JYe]!==UYe.OPEN)return;let n;if(t===Iae.TEXT)try{n=Xei(r)}catch{Oei(e,"Received invalid UTF-8 in text frame.");return}else t===Iae.BINARY&&(e[ima]==="blob"?n=new Blob([r]):n=fma(r));Ubr("message",e,ama,{origin:e[sma].origin,data:n})}function fma(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function Ima(e){if(e.length===0)return!1;for(let t=0;t126||r===34||r===40||r===41||r===44||r===47||r===58||r===59||r===60||r===61||r===62||r===63||r===64||r===91||r===92||r===93||r===123||r===125)return!1}return!0}function hma(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function Oei(e,t){let{[rma]:r,[nma]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&Ubr("error",e,(a,o)=>new oma(a,o),{error:new Error(t),message:t})}function Mei(e){return e===Iae.CLOSE||e===Iae.PING||e===Iae.PONG}function Hei(e){return e===Iae.CONTINUATION}function Yei(e){return e===Iae.TEXT||e===Iae.BINARY}function mma(e){return Yei(e)||Hei(e)||Mei(e)}function Cma(e){let t={position:0},r=new Map;for(;t.position57)return!1}return!0}var Qei=typeof process.versions.icu=="string",Wei=Qei?new TextDecoder("utf-8",{fatal:!0}):void 0,Xei=Qei?Wei.decode.bind(Wei):function(e){if(cma(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Jei.exports={isConnecting:uma,isEstablished:gma,isClosing:Ama,isClosed:dma,fireEvent:Ubr,isValidSubprotocol:Ima,isValidStatusCode:hma,failWebsocketConnection:Oei,websocketMessageReceived:pma,utf8Decode:Xei,isControlFrame:Mei,isContinuationFrame:Hei,isTextBinaryFrame:Yei,isValidOpcode:mma,parseExtensions:Cma,isValidClientWindowBits:_ma}});var vmt=H((mau,Uei)=>{"use strict";var{maxUnsigned16Bit:yma}=yhe(),Smt=16386,Kbr,jYe=null,jwe=Smt;try{Kbr=wt("node:crypto")}catch{Kbr={randomFillSync:function(t,r,n){for(let a=0;ayma?(l+=8,o=127):a>125&&(l+=2,o=126);let A=Buffer.allocUnsafe(a+l);A[0]=A[1]=0,A[0]|=128,A[0]=(A[0]&240)+t;A[l-4]=n[0],A[l-3]=n[1],A[l-2]=n[2],A[l-1]=n[3],A[1]=o,o===126?A.writeUInt16BE(a,2):o===127&&(A[2]=A[3]=0,A.writeUIntBE(a,4,6)),A[1]|=128;for(let f=0;f{"use strict";var{uid:Ema,states:zYe,sentCloseFrameState:Bmt,emptyBuffer:Sma,opcodes:vma}=yhe(),{kReadyState:qYe,kSentClose:wmt,kByteParser:jei,kReceivedClose:Kei,kResponse:zei}=XYe(),{fireEvent:Bma,failWebsocketConnection:hae,isClosing:wma,isClosed:Tma,isEstablished:Rma,parseExtensions:Nma}=KYe(),{channels:zwe}=Awe(),{CloseEvent:Dma}=Kwe(),{makeRequest:kma}=Hwe(),{fetching:xma}=MYe(),{Headers:Gma,getHeadersList:Fma}=fhe(),{getDecodeSplit:Zma}=qW(),{WebsocketFrameSend:Lma}=vmt(),zbr;try{zbr=wt("node:crypto")}catch{}function Vma(e,t,r,n,a,o){let l=e;l.protocol=e.protocol==="ws:"?"http:":"https:";let A=kma({urlList:[l],client:r,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){let b=Fma(new Gma(o.headers));A.headersList=b}let f=zbr.randomBytes(16).toString("base64");A.headersList.append("sec-websocket-key",f),A.headersList.append("sec-websocket-version","13");for(let b of t)A.headersList.append("sec-websocket-protocol",b);return A.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),xma({request:A,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(b){if(b.type==="error"||b.status!==101){hae(n,"Received network error or non-101 status code.");return}if(t.length!==0&&!b.headersList.get("Sec-WebSocket-Protocol")){hae(n,"Server did not respond with sent protocols.");return}if(b.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){hae(n,'Server did not set Upgrade header to "websocket".');return}if(b.headersList.get("Connection")?.toLowerCase()!=="upgrade"){hae(n,'Server did not set Connection header to "upgrade".');return}let E=b.headersList.get("Sec-WebSocket-Accept"),N=zbr.createHash("sha1").update(f+Ema).digest("base64");if(E!==N){hae(n,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=b.headersList.get("Sec-WebSocket-Extensions"),F;if(B!==null&&(F=Nma(B),!F.has("permessage-deflate"))){hae(n,"Sec-WebSocket-Extensions header does not match.");return}let Q=b.headersList.get("Sec-WebSocket-Protocol");if(Q!==null&&!Zma("sec-websocket-protocol",A.headersList).includes(Q)){hae(n,"Protocol was not set in the opening handshake.");return}b.socket.on("data",qei),b.socket.on("close",$ei),b.socket.on("error",eti),zwe.open.hasSubscribers&&zwe.open.publish({address:b.socket.address(),protocol:Q,extensions:B}),a(b,F)}})}function Pma(e,t,r,n){if(!(wma(e)||Tma(e)))if(!Rma(e))hae(e,"Connection was closed before it was established."),e[qYe]=zYe.CLOSING;else if(e[wmt]===Bmt.NOT_SENT){e[wmt]=Bmt.PROCESSING;let a=new Lma;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=Sma,e[zei].socket.write(a.createFrame(vma.CLOSE)),e[wmt]=Bmt.SENT,e[qYe]=zYe.CLOSING}else e[qYe]=zYe.CLOSING}function qei(e){this.ws[jei].write(e)||this.pause()}function $ei(){let{ws:e}=this,{[zei]:t}=e;t.socket.off("data",qei),t.socket.off("close",$ei),t.socket.off("error",eti);let r=e[wmt]===Bmt.SENT&&e[Kei],n=1005,a="",o=e[jei].closingInfo;o&&!o.error?(n=o.code??1005,a=o.reason):e[Kei]||(n=1006),e[qYe]=zYe.CLOSED,Bma("close",e,(l,A)=>new Dma(l,A),{wasClean:r,code:n,reason:a}),zwe.close.hasSubscribers&&zwe.close.publish({websocket:e,code:n,reason:a})}function eti(e){let{ws:t}=this;t[qYe]=zYe.CLOSING,zwe.socketError.hasSubscribers&&zwe.socketError.publish(e),this.destroy()}tti.exports={establishWebSocketConnection:Vma,closeWebSocketConnection:Pma}});var nti=H((_au,rti)=>{"use strict";var{createInflateRaw:Wma,Z_DEFAULT_WINDOWBITS:Oma}=wt("node:zlib"),{isValidClientWindowBits:Mma}=KYe(),Hma=Buffer.from([0,0,255,255]),Tmt=Symbol("kBuffer"),Rmt=Symbol("kLength"),$br=class{#e;#t={};constructor(t){this.#t.serverNoContextTakeover=t.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=t.get("server_max_window_bits")}decompress(t,r,n){if(!this.#e){let a=Oma;if(this.#t.serverMaxWindowBits){if(!Mma(this.#t.serverMaxWindowBits)){n(new Error("Invalid server_max_window_bits"));return}a=Number.parseInt(this.#t.serverMaxWindowBits)}this.#e=Wma({windowBits:a}),this.#e[Tmt]=[],this.#e[Rmt]=0,this.#e.on("data",o=>{this.#e[Tmt].push(o),this.#e[Rmt]+=o.length}),this.#e.on("error",o=>{this.#e=null,n(o)})}this.#e.write(t),r&&this.#e.write(Hma),this.#e.flush(()=>{let a=Buffer.concat(this.#e[Tmt],this.#e[Rmt]);this.#e[Tmt].length=0,this.#e[Rmt]=0,n(null,a)})}};rti.exports={PerMessageDeflate:$br}});var pti=H((yau,dti)=>{"use strict";var{Writable:Yma}=wt("node:stream"),Qma=wt("node:assert"),{parserStates:sV,opcodes:qwe,states:Xma,emptyBuffer:iti,sentCloseFrameState:sti}=yhe(),{kReadyState:Jma,kSentClose:oti,kResponse:ati,kReceivedClose:cti}=XYe(),{channels:Nmt}=Awe(),{isValidStatusCode:Uma,isValidOpcode:Kma,failWebsocketConnection:LM,websocketMessageReceived:lti,utf8Decode:jma,isControlFrame:uti,isTextBinaryFrame:eEr,isContinuationFrame:zma}=KYe(),{WebsocketFrameSend:gti}=vmt(),{closeWebSocketConnection:Ati}=qbr(),{PerMessageDeflate:qma}=nti(),tEr=class extends Yma{#e=[];#t=0;#n=!1;#r=sV.INFO;#i={};#s=[];#o;constructor(t,r){super(),this.ws=t,this.#o=r??new Map,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new qma(r))}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.#n=!0,this.run(n)}run(t){for(;this.#n;)if(this.#r===sV.INFO){if(this.#t<2)return t();let r=this.consume(2),n=(r[0]&128)!==0,a=r[0]&15,o=(r[1]&128)===128,l=!n&&a!==qwe.CONTINUATION,A=r[1]&127,f=r[0]&64,I=r[0]&32,C=r[0]&16;if(!Kma(a))return LM(this.ws,"Invalid opcode received"),t();if(o)return LM(this.ws,"Frame cannot be masked"),t();if(f!==0&&!this.#o.has("permessage-deflate")){LM(this.ws,"Expected RSV1 to be clear.");return}if(I!==0||C!==0){LM(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(l&&!eEr(a)){LM(this.ws,"Invalid frame type was fragmented.");return}if(eEr(a)&&this.#s.length>0){LM(this.ws,"Expected continuation frame");return}if(this.#i.fragmented&&l){LM(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((A>125||l)&&uti(a)){LM(this.ws,"Control frame either too large or fragmented");return}if(zma(a)&&this.#s.length===0&&!this.#i.compressed){LM(this.ws,"Unexpected continuation frame");return}A<=125?(this.#i.payloadLength=A,this.#r=sV.READ_DATA):A===126?this.#r=sV.PAYLOADLENGTH_16:A===127&&(this.#r=sV.PAYLOADLENGTH_64),eEr(a)&&(this.#i.binaryType=a,this.#i.compressed=f!==0),this.#i.opcode=a,this.#i.masked=o,this.#i.fin=n,this.#i.fragmented=l}else if(this.#r===sV.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#i.payloadLength=r.readUInt16BE(0),this.#r=sV.READ_DATA}else if(this.#r===sV.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){LM(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#i.payloadLength=(n<<8)+a,this.#r=sV.READ_DATA}else if(this.#r===sV.READ_DATA){if(this.#t{if(n){Ati(this.ws,1007,n.message,n.message.length);return}if(this.#s.push(a),!this.#i.fin){this.#r=sV.INFO,this.#n=!0,this.run(t);return}lti(this.ws,this.#i.binaryType,Buffer.concat(this.#s)),this.#n=!0,this.#r=sV.INFO,this.#s.length=0,this.run(t)}),this.#n=!1;break}else{if(this.#s.push(r),!this.#i.fragmented&&this.#i.fin){let n=Buffer.concat(this.#s);lti(this.ws,this.#i.binaryType,n),this.#s.length=0}this.#r=sV.INFO}}}consume(t){if(t>this.#t)throw new Error("Called consume() before buffers satiated.");if(t===0)return iti;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t){Qma(t.length!==1);let r;if(t.length>=2&&(r=t.readUInt16BE(0)),r!==void 0&&!Uma(r))return{code:1002,reason:"Invalid status code",error:!0};let n=t.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=jma(n)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:r,reason:n,error:!1}}parseControlFrame(t){let{opcode:r,payloadLength:n}=this.#i;if(r===qwe.CLOSE){if(n===1)return LM(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#i.closeInfo=this.parseCloseBody(t),this.#i.closeInfo.error){let{code:a,reason:o}=this.#i.closeInfo;return Ati(this.ws,a,o,o.length),LM(this.ws,o),!1}if(this.ws[oti]!==sti.SENT){let a=iti;this.#i.closeInfo.code&&(a=Buffer.allocUnsafe(2),a.writeUInt16BE(this.#i.closeInfo.code,0));let o=new gti(a);this.ws[ati].socket.write(o.createFrame(qwe.CLOSE),l=>{l||(this.ws[oti]=sti.SENT)})}return this.ws[Jma]=Xma.CLOSING,this.ws[cti]=!0,!1}else if(r===qwe.PING){if(!this.ws[cti]){let a=new gti(t);this.ws[ati].socket.write(a.createFrame(qwe.PONG)),Nmt.ping.hasSubscribers&&Nmt.ping.publish({payload:t})}}else r===qwe.PONG&&Nmt.pong.hasSubscribers&&Nmt.pong.publish({payload:t});return!0}get closingInfo(){return this.#i.closeInfo}};dti.exports={ByteParser:tEr}});var Cti=H((bau,mti)=>{"use strict";var{WebsocketFrameSend:$ma}=vmt(),{opcodes:fti,sendHints:$we}=yhe(),eCa=pyr(),Iti=Buffer[Symbol.species],rEr=class{#e=new eCa;#t=!1;#n;constructor(t){this.#n=t}add(t,r,n){if(n!==$we.blob){let o=hti(t,n);if(!this.#t)this.#n.write(o,r);else{let l={promise:null,callback:r,frame:o};this.#e.push(l)}return}let a={promise:t.arrayBuffer().then(o=>{a.promise=null,a.frame=hti(o,n)}),callback:r,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let t=this.#e;for(;!t.isEmpty();){let r=t.shift();r.promise!==null&&await r.promise,this.#n.write(r.frame,r.callback),r.callback=r.frame=null}this.#t=!1}};function hti(e,t){return new $ma(tCa(e,t)).createFrame(t===$we.string?fti.TEXT:fti.BINARY)}function tCa(e,t){switch(t){case $we.string:return Buffer.from(e);case $we.arrayBuffer:case $we.blob:return new Iti(e);case $we.typedArray:return new Iti(e.buffer,e.byteOffset,e.byteLength)}}mti.exports={SendQueue:rEr}});var Tti=H((Eau,wti)=>{"use strict";var{webidl:aI}=kk(),{URLSerializer:rCa}=eV(),{environmentSettingsObject:_ti}=qW(),{staticPropertyDescriptors:mae,states:$Ye,sentCloseFrameState:nCa,sendHints:Dmt}=yhe(),{kWebSocketURL:yti,kReadyState:nEr,kController:iCa,kBinaryType:kmt,kResponse:bti,kSentClose:sCa,kByteParser:oCa}=XYe(),{isConnecting:aCa,isEstablished:cCa,isClosing:lCa,isValidSubprotocol:uCa,fireEvent:Eti}=KYe(),{establishWebSocketConnection:gCa,closeWebSocketConnection:Sti}=qbr(),{ByteParser:ACa}=pti(),{kEnumerableProperty:VM,isBlobLike:vti}=Em(),{getGlobalDispatcher:dCa}=Jht(),{types:Bti}=wt("node:util"),{ErrorEvent:pCa,CloseEvent:fCa}=Kwe(),{SendQueue:ICa}=Cti(),iO=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";#i;constructor(t,r=[]){super();let n="WebSocket constructor";aI.argumentLengthCheck(arguments,1,n);let a=aI.converters["DOMString or sequence or WebSocketInit"](r,n,"options");t=aI.converters.USVString(t,n,"url"),r=a.protocols;let o=_ti.settingsObject.baseUrl,l;try{l=new URL(t,o)}catch(f){throw new DOMException(f,"SyntaxError")}if(l.protocol==="http:"?l.protocol="ws:":l.protocol==="https:"&&(l.protocol="wss:"),l.protocol!=="ws:"&&l.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${l.protocol}`,"SyntaxError");if(l.hash||l.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(f=>f.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(f=>uCa(f)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[yti]=new URL(l.href);let A=_ti.settingsObject;this[iCa]=gCa(l,r,A,this,(f,I)=>this.#s(f,I),a),this[nEr]=e.CONNECTING,this[sCa]=nCa.NOT_SENT,this[kmt]="blob"}close(t=void 0,r=void 0){aI.brandCheck(this,e);let n="WebSocket.close";if(t!==void 0&&(t=aI.converters["unsigned short"](t,n,"code",{clamp:!0})),r!==void 0&&(r=aI.converters.USVString(r,n,"reason")),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");let a=0;if(r!==void 0&&(a=Buffer.byteLength(r),a>123))throw new DOMException(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");Sti(this,t,r,a)}send(t){aI.brandCheck(this,e);let r="WebSocket.send";if(aI.argumentLengthCheck(arguments,1,r),t=aI.converters.WebSocketSendData(t,r,"data"),aCa(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!cCa(this)||lCa(this)))if(typeof t=="string"){let n=Buffer.byteLength(t);this.#t+=n,this.#i.add(t,()=>{this.#t-=n},Dmt.string)}else Bti.isArrayBuffer(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.typedArray)):vti(t)&&(this.#t+=t.size,this.#i.add(t,()=>{this.#t-=t.size},Dmt.blob))}get readyState(){return aI.brandCheck(this,e),this[nEr]}get bufferedAmount(){return aI.brandCheck(this,e),this.#t}get url(){return aI.brandCheck(this,e),rCa(this[yti])}get extensions(){return aI.brandCheck(this,e),this.#r}get protocol(){return aI.brandCheck(this,e),this.#n}get onopen(){return aI.brandCheck(this,e),this.#e.open}set onopen(t){aI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return aI.brandCheck(this,e),this.#e.error}set onerror(t){aI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return aI.brandCheck(this,e),this.#e.close}set onclose(t){aI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return aI.brandCheck(this,e),this.#e.message}set onmessage(t){aI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return aI.brandCheck(this,e),this[kmt]}set binaryType(t){aI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[kmt]="blob":this[kmt]=t}#s(t,r){this[bti]=t;let n=new ACa(this,r);n.on("drain",hCa),n.on("error",mCa.bind(this)),t.socket.ws=this,this[oCa]=n,this.#i=new ICa(t.socket),this[nEr]=$Ye.OPEN;let a=t.headersList.get("sec-websocket-extensions");a!==null&&(this.#r=a);let o=t.headersList.get("sec-websocket-protocol");o!==null&&(this.#n=o),Eti("open",this)}};iO.CONNECTING=iO.prototype.CONNECTING=$Ye.CONNECTING;iO.OPEN=iO.prototype.OPEN=$Ye.OPEN;iO.CLOSING=iO.prototype.CLOSING=$Ye.CLOSING;iO.CLOSED=iO.prototype.CLOSED=$Ye.CLOSED;Object.defineProperties(iO.prototype,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae,url:VM,readyState:VM,bufferedAmount:VM,onopen:VM,onerror:VM,onclose:VM,close:VM,onmessage:VM,binaryType:VM,send:VM,extensions:VM,protocol:VM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(iO,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae});aI.converters["sequence"]=aI.sequenceConverter(aI.converters.DOMString);aI.converters["DOMString or sequence"]=function(e,t,r){return aI.util.Type(e)==="Object"&&Symbol.iterator in e?aI.converters["sequence"](e):aI.converters.DOMString(e,t,r)};aI.converters.WebSocketInit=aI.dictionaryConverter([{key:"protocols",converter:aI.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:aI.converters.any,defaultValue:()=>dCa()},{key:"headers",converter:aI.nullableConverter(aI.converters.HeadersInit)}]);aI.converters["DOMString or sequence or WebSocketInit"]=function(e){return aI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?aI.converters.WebSocketInit(e):{protocols:aI.converters["DOMString or sequence"](e)}};aI.converters.WebSocketSendData=function(e){if(aI.util.Type(e)==="Object"){if(vti(e))return aI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Bti.isArrayBuffer(e))return aI.converters.BufferSource(e)}return aI.converters.USVString(e)};function hCa(){this.ws[bti].socket.resume()}function mCa(e){let t,r;e instanceof fCa?(t=e.reason,r=e.code):t=e.message,Eti("error",this,()=>new pCa("error",{error:e,message:t})),Sti(this,r)}wti.exports={WebSocket:iO}});var iEr=H((Sau,Rti)=>{"use strict";function CCa(e){return e.indexOf("\0")===-1}function _Ca(e){if(e.length===0)return!1;for(let t=0;t57)return!1;return!0}function yCa(e){return new Promise(t=>{setTimeout(t,e).unref()})}Rti.exports={isValidLastEventId:CCa,isASCIINumber:_Ca,delay:yCa}});var xti=H((vau,kti)=>{"use strict";var{Transform:bCa}=wt("node:stream"),{isASCIINumber:Nti,isValidLastEventId:Dti}=iEr(),U$=[239,187,191],sEr=10,xmt=13,ECa=58,SCa=32,oEr=class extends bCa{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(t={}){t.readableObjectMode=!0,super(t),this.state=t.eventSourceSettings||{},t.push&&(this.push=t.push)}_transform(t,r,n){if(t.length===0){n();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===U$[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos0&&(r[a]=o);break}}processEvent(t){t.retry&&Nti(t.retry)&&(this.state.reconnectionTime=parseInt(t.retry,10)),t.id&&Dti(t.id)&&(this.state.lastEventId=t.id),t.data!==void 0&&this.push({type:t.event||"message",options:{data:t.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};kti.exports={EventSourceStream:oEr}});var Oti=H((Bau,Wti)=>{"use strict";var{pipeline:vCa}=wt("node:stream"),{fetching:BCa}=MYe(),{makeRequest:wCa}=Hwe(),{webidl:Cae}=kk(),{EventSourceStream:TCa}=xti(),{parseMIMEType:RCa}=eV(),{createFastMessageEvent:NCa}=Kwe(),{isNetworkError:Gti}=WYe(),{delay:DCa}=iEr(),{kEnumerableProperty:bhe}=Em(),{environmentSettingsObject:Fti}=qW(),Zti=!1,Lti=3e3,eQe=0,Vti=1,tQe=2,kCa="anonymous",xCa="use-credentials",eTe=class e extends EventTarget{#e={open:null,error:null,message:null};#t=null;#n=!1;#r=eQe;#i=null;#s=null;#o;#g;constructor(t,r={}){super();let n="EventSource constructor";Cae.argumentLengthCheck(arguments,1,n),Zti||(Zti=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),t=Cae.converters.USVString(t,n,"url"),r=Cae.converters.EventSourceInitDict(r,n,"eventSourceInitDict"),this.#o=r.dispatcher,this.#g={lastEventId:"",reconnectionTime:Lti};let a=Fti,o;try{o=new URL(t,a.settingsObject.baseUrl),this.#g.origin=o.origin}catch(f){throw new DOMException(f,"SyntaxError")}this.#t=o.href;let l=kCa;r.withCredentials&&(l=xCa,this.#n=!0);let A={redirect:"follow",keepalive:!0,mode:"cors",credentials:l==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};A.client=Fti.settingsObject,A.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],A.cache="no-store",A.initiator="other",A.urlList=[new URL(this.#t)],this.#i=wCa(A),this.#l()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#l(){if(this.#r===tQe)return;this.#r=eQe;let t={request:this.#i,dispatcher:this.#o},r=n=>{Gti(n)&&(this.dispatchEvent(new Event("error")),this.close()),this.#u()};t.processResponseEndOfBody=r,t.processResponse=n=>{if(Gti(n))if(n.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#u();return}let a=n.headersList.get("content-type",!0),o=a!==null?RCa(a):"failure",l=o!=="failure"&&o.essence==="text/event-stream";if(n.status!==200||l===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=Vti,this.dispatchEvent(new Event("open")),this.#g.origin=n.urlList[n.urlList.length-1].origin;let A=new TCa({eventSourceSettings:this.#g,push:f=>{this.dispatchEvent(NCa(f.type,f.options))}});vCa(n.body.stream,A,f=>{f?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#s=BCa(t)}async#u(){this.#r!==tQe&&(this.#r=eQe,this.dispatchEvent(new Event("error")),await DCa(this.#g.reconnectionTime),this.#r===eQe&&(this.#g.lastEventId.length&&this.#i.headersList.set("last-event-id",this.#g.lastEventId,!0),this.#l()))}close(){Cae.brandCheck(this,e),this.#r!==tQe&&(this.#r=tQe,this.#s.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(t){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(t){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(t){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}},Pti={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:eQe,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Vti,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:tQe,writable:!1}};Object.defineProperties(eTe,Pti);Object.defineProperties(eTe.prototype,Pti);Object.defineProperties(eTe.prototype,{close:bhe,onerror:bhe,onmessage:bhe,onopen:bhe,readyState:bhe,url:bhe,withCredentials:bhe});Cae.converters.EventSourceInitDict=Cae.dictionaryConverter([{key:"withCredentials",converter:Cae.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Cae.converters.any}]);Wti.exports={EventSource:eTe,defaultReconnectionTime:Lti}});var Qti=H((wau,Bf)=>{"use strict";var GCa=vYe(),Mti=rYe(),FCa=Dwe(),ZCa=q7n(),LCa=kwe(),VCa=kyr(),PCa=fzn(),WCa=yzn(),Hti=Y0(),Fmt=Em(),{InvalidArgumentError:Gmt}=Hti,tTe=aqn(),OCa=iYe(),MCa=dbr(),HCa=Mqn(),YCa=Ibr(),QCa=ebr(),XCa=Lht(),{getGlobalDispatcher:Yti,setGlobalDispatcher:JCa}=Jht(),UCa=_br(),KCa=Bht(),jCa=wht();Object.assign(Mti.prototype,tTe);Bf.exports.Dispatcher=Mti;Bf.exports.Client=GCa;Bf.exports.Pool=FCa;Bf.exports.BalancedPool=ZCa;Bf.exports.Agent=LCa;Bf.exports.ProxyAgent=VCa;Bf.exports.EnvHttpProxyAgent=PCa;Bf.exports.RetryAgent=WCa;Bf.exports.RetryHandler=XCa;Bf.exports.DecoratorHandler=UCa;Bf.exports.RedirectHandler=KCa;Bf.exports.createRedirectInterceptor=jCa;Bf.exports.interceptors={redirect:Kqn(),retry:zqn(),dump:$qn()};Bf.exports.buildConnector=OCa;Bf.exports.errors=Hti;Bf.exports.util={parseHeaders:Fmt.parseHeaders,headerNameToString:Fmt.headerNameToString};function rQe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new Gmt("invalid url");if(r!=null&&typeof r!="object")throw new Gmt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new Gmt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL(Fmt.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=Fmt.parseURL(t);let{agent:a,dispatcher:o=Yti()}=r;if(a)throw new Gmt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Bf.exports.setGlobalDispatcher=JCa;Bf.exports.getGlobalDispatcher=Yti;var zCa=MYe().fetch;Bf.exports.fetch=async function(t,r=void 0){try{return await zCa(t,r)}catch(n){throw n&&typeof n=="object"&&Error.captureStackTrace(n),n}};Bf.exports.Headers=fhe().Headers;Bf.exports.Response=WYe().Response;Bf.exports.Request=Hwe().Request;Bf.exports.FormData=gYe().FormData;Bf.exports.File=globalThis.File??wt("node:buffer").File;Bf.exports.FileReader=dei().FileReader;var{setGlobalOrigin:qCa,getGlobalOrigin:$Ca}=G0r();Bf.exports.setGlobalOrigin=qCa;Bf.exports.getGlobalOrigin=$Ca;var{CacheStorage:e_a}=bei(),{kConstruct:t_a}=pmt();Bf.exports.caches=new e_a(t_a);var{deleteCookie:r_a,getCookies:n_a,getSetCookies:i_a,setCookie:s_a}=Gei();Bf.exports.deleteCookie=r_a;Bf.exports.getCookies=n_a;Bf.exports.getSetCookies=i_a;Bf.exports.setCookie=s_a;var{parseMIMEType:o_a,serializeAMimeType:a_a}=eV();Bf.exports.parseMIMEType=o_a;Bf.exports.serializeAMimeType=a_a;var{CloseEvent:c_a,ErrorEvent:l_a,MessageEvent:u_a}=Kwe();Bf.exports.WebSocket=Tti().WebSocket;Bf.exports.CloseEvent=c_a;Bf.exports.ErrorEvent=l_a;Bf.exports.MessageEvent=u_a;Bf.exports.request=rQe(tTe.request);Bf.exports.stream=rQe(tTe.stream);Bf.exports.pipeline=rQe(tTe.pipeline);Bf.exports.connect=rQe(tTe.connect);Bf.exports.upgrade=rQe(tTe.upgrade);Bf.exports.MockClient=MCa;Bf.exports.MockPool=YCa;Bf.exports.MockAgent=HCa;Bf.exports.mockErrors=QCa;var{EventSource:g_a}=Oti();Bf.exports.EventSource=g_a});var Uti=H(lT=>{"use strict";var A_a=lT&&lT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),d_a=lT&&lT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p_a=lT&&lT.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&A_a(t,e,r);return d_a(t,e),t},f_a=lT&&lT.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(lT,"__esModule",{value:!0});lT.getApiBaseUrl=lT.getProxyFetch=lT.getProxyAgentDispatcher=lT.getProxyAgent=lT.getAuthString=void 0;var Xti=p_a(ajn()),I_a=Qti();function h_a(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof t.auth=="string"?t.auth:`token ${e}`}lT.getAuthString=h_a;function m_a(e){return new Xti.HttpClient().getAgent(e)}lT.getProxyAgent=m_a;function Jti(e){return new Xti.HttpClient().getAgentDispatcher(e)}lT.getProxyAgentDispatcher=Jti;function C_a(e){let t=Jti(e);return(n,a)=>f_a(this,void 0,void 0,function*(){return(0,I_a.fetch)(n,Object.assign(Object.assign({},a),{dispatcher:t}))})}lT.getProxyFetch=C_a;function __a(){return process.env.GITHUB_API_URL||"https://api.github.com"}lT.getApiBaseUrl=__a});var nQe=H(aEr=>{"use strict";Object.defineProperty(aEr,"__esModule",{value:!0});function y_a(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}aEr.getUserAgent=y_a});var zti=H((Nau,jti)=>{jti.exports=Kti;function Kti(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(a,o){return Kti.bind(null,e,o,a,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(a,o){return o.hook.bind(null,a,n)},r)():r(n)})}});var $ti=H((Dau,qti)=>{qti.exports=b_a;function b_a(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(o,l){return Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))}),t==="after"&&(n=function(o,l){var A;return Promise.resolve().then(o.bind(null,l)).then(function(f){return A=f,a(A,l)}).then(function(){return A})}),t==="error"&&(n=function(o,l){return Promise.resolve().then(o.bind(null,l)).catch(function(A){return a(A,l)})}),e.registry[r].push({hook:n,orig:a})}});var tri=H((kau,eri)=>{eri.exports=E_a;function E_a(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(a){return a.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var cri=H((xau,iQe)=>{var sri=zti(),S_a=$ti(),v_a=tri(),rri=Function.bind,nri=rri.bind(rri);function ori(e,t,r){var n=nri(v_a,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(a){var o=r?[t,a,r]:[t,a];e[a]=e.api[a]=nri(S_a,null).apply(null,o)})}function B_a(){var e="h",t={registry:{}},r=sri.bind(null,t,e);return ori(r,t,e),r}function ari(){var e={registry:{}},t=sri.bind(null,e);return ori(t,e),t}var iri=!1;function rTe(){return iri||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),iri=!0),ari()}rTe.Singular=B_a.bind();rTe.Collection=ari.bind();iQe.exports=rTe;iQe.exports.Hook=rTe;iQe.exports.Singular=rTe.Singular;iQe.exports.Collection=rTe.Collection});var hri=H((Gau,Iri)=>{"use strict";var uEr=Object.defineProperty,w_a=Object.getOwnPropertyDescriptor,T_a=Object.getOwnPropertyNames,R_a=Object.prototype.hasOwnProperty,N_a=(e,t)=>{for(var r in t)uEr(e,r,{get:t[r],enumerable:!0})},D_a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of T_a(t))!R_a.call(e,a)&&a!==r&&uEr(e,a,{get:()=>t[a],enumerable:!(n=w_a(t,a))||n.enumerable});return e},k_a=e=>D_a(uEr({},"__esModule",{value:!0}),e),gri={};N_a(gri,{endpoint:()=>J_a});Iri.exports=k_a(gri);var x_a=nQe(),G_a="9.0.5",F_a=`octokit-endpoint.js/${G_a} ${(0,x_a.getUserAgent)()}`,Z_a={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":F_a},mediaType:{format:""}};function L_a(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function V_a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ari(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{V_a(t[n])?n in e?r[n]=Ari(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function lri(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function lEr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=L_a(r.headers),lri(r),lri(r.headers);let n=Ari(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function P_a(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var W_a=/\{[^}]+\}/g;function O_a(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function M_a(e){let t=e.match(W_a);return t?t.map(O_a).reduce((r,n)=>r.concat(n),[]):[]}function uri(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function dri(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function iTe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function sQe(e,t,r){return t=e==="+"||e==="#"?dri(t):iTe(t),r?iTe(r)+"="+t:t}function nTe(e){return e!=null}function cEr(e){return e===";"||e==="&"||e==="?"}function H_a(e,t,r,n){var a=e[r],o=[];if(nTe(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(sQe(t,a,cEr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter(nTe).forEach(function(l){o.push(sQe(t,l,cEr(t)?r:""))}):Object.keys(a).forEach(function(l){nTe(a[l])&&o.push(sQe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter(nTe).forEach(function(A){l.push(sQe(t,A))}):Object.keys(a).forEach(function(A){nTe(a[A])&&(l.push(iTe(A)),l.push(sQe(t,a[A].toString())))}),cEr(t)?o.push(iTe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?nTe(a)&&o.push(iTe(r)):a===""&&(t==="&"||t==="?")?o.push(iTe(r)+"="):a===""&&o.push("");return o}function Y_a(e){return{expand:Q_a.bind(null,e)}}function Q_a(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(H_a(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return dri(o)}),e==="/"?e:e.replace(/\/$/,"")}function pri(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=uri(e,["method","baseUrl","url","headers","request","mediaType"]),l=M_a(r);r=Y_a(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=uri(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=P_a(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function X_a(e,t,r){return pri(lEr(e,t,r))}function fri(e,t){let r=lEr(e,t),n=X_a.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:fri.bind(null,r),merge:lEr.bind(null,r),parse:pri})}var J_a=fri(null,Z_a)});var mri=H(AEr=>{"use strict";Object.defineProperty(AEr,"__esModule",{value:!0});var gEr=class extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};AEr.Deprecation=gEr});var Sri=H((Zau,Eri)=>{"use strict";var U_a=Object.create,Zmt=Object.defineProperty,K_a=Object.getOwnPropertyDescriptor,j_a=Object.getOwnPropertyNames,z_a=Object.getPrototypeOf,q_a=Object.prototype.hasOwnProperty,$_a=(e,t)=>{for(var r in t)Zmt(e,r,{get:t[r],enumerable:!0})},_ri=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of j_a(t))!q_a.call(e,a)&&a!==r&&Zmt(e,a,{get:()=>t[a],enumerable:!(n=K_a(t,a))||n.enumerable});return e},e0a=(e,t,r)=>(r=e!=null?U_a(z_a(e)):{},_ri(t||!e||!e.__esModule?Zmt(r,"default",{value:e,enumerable:!0}):r,e)),t0a=e=>_ri(Zmt({},"__esModule",{value:!0}),e),yri={};$_a(yri,{RequestError:()=>i0a});Eri.exports=t0a(yri);var Cri=mri(),bri=e0a(mgt()),r0a=(0,bri.default)(e=>console.warn(e)),n0a=(0,bri.default)(e=>console.warn(e)),i0a=class extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t;let n;"headers"in r&&typeof r.headers<"u"&&(n=r.headers),"response"in r&&(this.response=r.response,n=r.response.headers);let a=Object.assign({},r.request);r.request.headers.authorization&&(a.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a,Object.defineProperty(this,"code",{get(){return r0a(new Cri.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),Object.defineProperty(this,"headers",{get(){return n0a(new Cri.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),n||{}}})}}});var aQe=H((Vau,wri)=>{"use strict";var fEr=Object.defineProperty,s0a=Object.getOwnPropertyDescriptor,o0a=Object.getOwnPropertyNames,a0a=Object.prototype.hasOwnProperty,c0a=(e,t)=>{for(var r in t)fEr(e,r,{get:t[r],enumerable:!0})},l0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of o0a(t))!a0a.call(e,a)&&a!==r&&fEr(e,a,{get:()=>t[a],enumerable:!(n=s0a(t,a))||n.enumerable});return e},u0a=e=>l0a(fEr({},"__esModule",{value:!0}),e),Bri={};c0a(Bri,{request:()=>h0a});wri.exports=u0a(Bri);var g0a=hri(),A0a=nQe(),d0a="8.4.0";function p0a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var oQe=Sri();function f0a(e){return e.arrayBuffer()}function vri(e){var t,r,n,a;let o=e.request&&e.request.log?e.request.log:console,l=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==!1;(p0a(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let A={},f,I,{fetch:C}=globalThis;if((r=e.request)!=null&&r.fetch&&(C=e.request.fetch),!C)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");return C(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(a=e.request)==null?void 0:a.signal,...e.body&&{duplex:"half"}}).then(async b=>{I=b.url,f=b.status;for(let E of b.headers)A[E[0]]=E[1];if("deprecation"in A){let E=A.link&&A.link.match(/<([^>]+)>; rel="deprecation"/),N=E&&E.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${A.sunset}${N?`. See ${N}`:""}`)}if(!(f===204||f===205)){if(e.method==="HEAD"){if(f<400)return;throw new oQe.RequestError(b.statusText,f,{response:{url:I,status:f,headers:A,data:void 0},request:e})}if(f===304)throw new oQe.RequestError("Not modified",f,{response:{url:I,status:f,headers:A,data:await dEr(b)},request:e});if(f>=400){let E=await dEr(b);throw new oQe.RequestError(I0a(E),f,{response:{url:I,status:f,headers:A,data:E},request:e})}return l?await dEr(b):b.body}}).then(b=>({status:f,url:I,headers:A,data:b})).catch(b=>{if(b instanceof oQe.RequestError)throw b;if(b.name==="AbortError")throw b;let E=b.message;throw b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause)),new oQe.RequestError(E,500,{request:e})})}async function dEr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():f0a(e)}function I0a(e){if(typeof e=="string")return e;let t;return"documentation_url"in e?t=` - ${e.documentation_url}`:t="","message"in e?Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`:`${e.message}${t}`:`Unknown error: ${JSON.stringify(e)}`}function pEr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return vri(r.parse(l));let A=(f,I)=>vri(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:pEr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:pEr.bind(null,r)})}var h0a=pEr(g0a.endpoint,{headers:{"user-agent":`octokit-request.js/${d0a} ${(0,A0a.getUserAgent)()}`}})});var kri=H((Oau,Dri)=>{"use strict";var IEr=Object.defineProperty,m0a=Object.getOwnPropertyDescriptor,C0a=Object.getOwnPropertyNames,_0a=Object.prototype.hasOwnProperty,y0a=(e,t)=>{for(var r in t)IEr(e,r,{get:t[r],enumerable:!0})},b0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of C0a(t))!_0a.call(e,a)&&a!==r&&IEr(e,a,{get:()=>t[a],enumerable:!(n=m0a(t,a))||n.enumerable});return e},E0a=e=>b0a(IEr({},"__esModule",{value:!0}),e),Rri={};y0a(Rri,{GraphqlResponseError:()=>Nri,graphql:()=>D0a,withCustomRequest:()=>k0a});Dri.exports=E0a(Rri);var S0a=aQe(),v0a=nQe(),B0a="7.1.0",Pau=aQe(),Wau=aQe();function w0a(e){return`Request failed due to following response errors: `+e.errors.map(t=>` - ${t.message}`).join(` -`)}var Nri=class extends Error{constructor(e,t,r){super(w0a(r)),this.request=e,this.headers=t,this.response=r,this.name="GraphqlResponseError",this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},T0a=["method","baseUrl","url","headers","request","query","mediaType"],R0a=["query","method","url"],Tri=/\/api\/v3\/?$/;function N0a(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(R0a.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>T0a.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Tri.test(o)&&(a.url=o.replace(Tri,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Nri(a,A,l.data)}return l.data.data})}function hEr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>N0a(r,a,o),{defaults:hEr.bind(null,r),endpoint:r.endpoint})}var D0a=hEr(S0a.request,{headers:{"user-agent":`octokit-graphql.js/${B0a} ${(0,v0a.getUserAgent)()}`},method:"POST",url:"/graphql"});function k0a(e){return hEr(e,{method:"POST",url:"/graphql"})}});var Fri=H((Mau,Gri)=>{"use strict";var mEr=Object.defineProperty,x0a=Object.getOwnPropertyDescriptor,G0a=Object.getOwnPropertyNames,F0a=Object.prototype.hasOwnProperty,Z0a=(e,t)=>{for(var r in t)mEr(e,r,{get:t[r],enumerable:!0})},L0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of G0a(t))!F0a.call(e,a)&&a!==r&&mEr(e,a,{get:()=>t[a],enumerable:!(n=x0a(t,a))||n.enumerable});return e},V0a=e=>L0a(mEr({},"__esModule",{value:!0}),e),xri={};Z0a(xri,{createTokenAuth:()=>Q0a});Gri.exports=V0a(xri);var P0a=/^v1\./,W0a=/^ghs_/,O0a=/^ghu_/;async function M0a(e){let t=e.split(/\./).length===3,r=P0a.test(e)||W0a.test(e),n=O0a.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function H0a(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Y0a(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=H0a(e),t(a)}var Q0a=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(M0a.bind(null,t),{hook:Y0a.bind(null,t)})}});var Mri=H((Hau,Ori)=>{"use strict";var CEr=Object.defineProperty,X0a=Object.getOwnPropertyDescriptor,J0a=Object.getOwnPropertyNames,U0a=Object.prototype.hasOwnProperty,K0a=(e,t)=>{for(var r in t)CEr(e,r,{get:t[r],enumerable:!0})},j0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of J0a(t))!U0a.call(e,a)&&a!==r&&CEr(e,a,{get:()=>t[a],enumerable:!(n=X0a(t,a))||n.enumerable});return e},z0a=e=>j0a(CEr({},"__esModule",{value:!0}),e),Pri={};K0a(Pri,{Octokit:()=>iya});Ori.exports=z0a(Pri);var q0a=nQe(),$0a=cri(),Zri=aQe(),eya=kri(),tya=Fri(),Wri="5.2.0",Lri=()=>{},rya=console.warn.bind(console),nya=console.error.bind(console),Vri=`octokit-core.js/${Wri} ${(0,q0a.getUserAgent)()}`,iya=class{static{this.VERSION=Wri}static defaults(e){return class extends this{constructor(...r){let n=r[0]||{};if(typeof e=="function"){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static{this.plugins=[]}static plugin(...e){let t=this.plugins;return class extends this{static{this.plugins=t.concat(e.filter(n=>!t.includes(n)))}}}constructor(e={}){let t=new $0a.Collection,r={baseUrl:Zri.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${Vri}`:Vri,e.baseUrl&&(r.baseUrl=e.baseUrl),e.previews&&(r.mediaType.previews=e.previews),e.timeZone&&(r.headers["time-zone"]=e.timeZone),this.request=Zri.request.defaults(r),this.graphql=(0,eya.withCustomRequest)(this.request).defaults(r),this.log=Object.assign({debug:Lri,info:Lri,warn:rya,error:nya},e.log),this.hook=t,e.authStrategy){let{authStrategy:a,...o}=e,l=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},e.auth));t.wrap("request",l.hook),this.auth=l}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{let a=(0,tya.createTokenAuth)(e.auth);t.wrap("request",a.hook),this.auth=a}let n=this.constructor;for(let a=0;a{"use strict";var _Er=Object.defineProperty,sya=Object.getOwnPropertyDescriptor,oya=Object.getOwnPropertyNames,aya=Object.prototype.hasOwnProperty,cya=(e,t)=>{for(var r in t)_Er(e,r,{get:t[r],enumerable:!0})},lya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oya(t))!aya.call(e,a)&&a!==r&&_Er(e,a,{get:()=>t[a],enumerable:!(n=sya(t,a))||n.enumerable});return e},uya=e=>lya(_Er({},"__esModule",{value:!0}),e),Hri={};cya(Hri,{legacyRestEndpointMethods:()=>Jri,restEndpointMethods:()=>Xri});Uri.exports=uya(Hri);var Yri="10.4.1",gya={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Aya=gya,Ehe=new Map;for(let[e,t]of Object.entries(Aya))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);Ehe.has(e)||Ehe.set(e,new Map),Ehe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var dya={has({scope:e},t){return Ehe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Ehe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=Ehe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=pya(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function Qri(e){let t={};for(let r of Ehe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},dya);return t}function pya(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function Xri(e){return{rest:Qri(e)}}Xri.VERSION=Yri;function Jri(e){let t=Qri(e);return{...t,rest:t}}Jri.VERSION=Yri});var rni=H((Uau,tni)=>{"use strict";var yEr=Object.defineProperty,fya=Object.getOwnPropertyDescriptor,Iya=Object.getOwnPropertyNames,hya=Object.prototype.hasOwnProperty,mya=(e,t)=>{for(var r in t)yEr(e,r,{get:t[r],enumerable:!0})},Cya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Iya(t))!hya.call(e,a)&&a!==r&&yEr(e,a,{get:()=>t[a],enumerable:!(n=fya(t,a))||n.enumerable});return e},_ya=e=>Cya(yEr({},"__esModule",{value:!0}),e),jri={};mya(jri,{composePaginateRest:()=>Eya,isPaginatingEndpoint:()=>Sya,paginateRest:()=>eni,paginatingEndpoints:()=>$ri});tni.exports=_ya(jri);var yya="9.2.1";function bya(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function bEr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=bya(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function zri(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),qri(e,[],bEr(e,t,r)[Symbol.asyncIterator](),n)}function qri(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:qri(e,t,r,n)})}var Eya=Object.assign(zri,{iterator:bEr}),$ri=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Sya(e){return typeof e=="string"?$ri.includes(e):!1}function eni(e){return{paginate:Object.assign(zri.bind(null,e),{iterator:bEr.bind(null,e)})}}eni.VERSION=yya});var ini=H(xk=>{"use strict";var vya=xk&&xk.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bya=xk&&xk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nni=xk&&xk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&vya(t,e,r);return Bya(t,e),t};Object.defineProperty(xk,"__esModule",{value:!0});xk.getOctokitOptions=xk.GitHub=xk.defaults=xk.context=void 0;var wya=nni(Mhr()),Lmt=nni(Uti()),Tya=Mri(),Rya=Kri(),Nya=rni();xk.context=new wya.Context;var EEr=Lmt.getApiBaseUrl();xk.defaults={baseUrl:EEr,request:{agent:Lmt.getProxyAgent(EEr),fetch:Lmt.getProxyFetch(EEr)}};xk.GitHub=Tya.Octokit.plugin(Rya.restEndpointMethods,Nya.paginateRest).defaults(xk.defaults);function Dya(e,t){let r=Object.assign({},t||{}),n=Lmt.getAuthString(e,r);return n&&(r.auth=n),r}xk.getOctokitOptions=Dya});var sTe=H(PM=>{"use strict";var kya=PM&&PM.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xya=PM&&PM.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Gya=PM&&PM.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&kya(t,e,r);return xya(t,e),t};Object.defineProperty(PM,"__esModule",{value:!0});PM.getOctokit=PM.context=void 0;var Fya=Gya(Mhr()),sni=ini();PM.context=new Fya.Context;function Zya(e,t,...r){let n=sni.GitHub.plugin(...r);return new n((0,sni.getOctokitOptions)(e,t))}PM.getOctokit=Zya});function kEr({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var Tni=bc(()=>{});function K$(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace($ya,"")}var $ya,AQe=bc(()=>{Tni();$ya=kEr()});var wii=H((yuu,Bii)=>{"use strict";function Eba(e,t){var r=e;t.slice(0,-1).forEach(function(a){r=r[a]||{}});var n=t[t.length-1];return n in r}function Sii(e){return typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function vii(e,t){return t==="constructor"&&typeof e[t]=="function"||t==="__proto__"}Bii.exports=function(e,t){t||(t={});var r={bools:{},strings:{},unknownFn:null};typeof t.unknown=="function"&&(r.unknownFn=t.unknown),typeof t.boolean=="boolean"&&t.boolean?r.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach(function(ce){r.bools[ce]=!0});var n={};function a(ce){return n[ce].some(function(fe){return r.bools[fe]})}Object.keys(t.alias||{}).forEach(function(ce){n[ce]=[].concat(t.alias[ce]),n[ce].forEach(function(fe){n[fe]=[ce].concat(n[ce].filter(function(ue){return fe!==ue}))})}),[].concat(t.string).filter(Boolean).forEach(function(ce){r.strings[ce]=!0,n[ce]&&[].concat(n[ce]).forEach(function(fe){r.strings[fe]=!0})});var o=t.default||{},l={_:[]};function A(ce,fe){return r.allBools&&/^--[^=]+$/.test(fe)||r.strings[ce]||r.bools[ce]||n[ce]}function f(ce,fe,ue){for(var de=ce,be=0;be{"use strict";var{Transform:Sba}=wt("stream"),{StringDecoder:vba}=wt("string_decoder"),_ae=Symbol("last"),Umt=Symbol("decoder");function Bba(e,t,r){let n;if(this.overflow){if(n=this[Umt].write(e).split(this.matcher),n.length===1)return r();n.shift(),this.overflow=!1}else this[_ae]+=this[Umt].write(e),n=this[_ae].split(this.matcher);this[_ae]=n.pop();for(let a=0;athis.maxLength,this.overflow&&!this.skipOverflow){r(new Error("maximum buffer reached"));return}r()}function wba(e){if(this[_ae]+=this[Umt].end(),this[_ae])try{Rii(this,this.mapper(this[_ae]))}catch(t){return e(t)}e()}function Rii(e,t){t!==void 0&&e.push(t)}function Tii(e){return e}function Tba(e,t,r){switch(e=e||/\r?\n/,t=t||Tii,r=r||{},arguments.length){case 1:typeof e=="function"?(t=e,e=/\r?\n/):typeof e=="object"&&!(e instanceof RegExp)&&!e[Symbol.split]&&(r=e,e=/\r?\n/);break;case 2:typeof e=="function"?(r=t,t=e,e=/\r?\n/):typeof t=="object"&&(r=t,t=Tii)}r=Object.assign({},r),r.autoDestroy=!0,r.transform=Bba,r.flush=wba,r.readableObjectMode=!0;let n=new Sba(r);return n[_ae]="",n[Umt]=new vba("utf8"),n.matcher=e,n.mapper=t,n.maxLength=r.maxLength,n.skipOverflow=r.skipOverflow||!1,n.overflow=!1,n._destroy=function(a,o){this._writableState.errorEmitted=!1,o(a)},n}Nii.exports=Tba});var Gii={};sI(Gii,{default:()=>xii});function xii(e,t){let r=[],n=[],a=[];t={useEquals:!0,shortFlag:!0,...t};let o=(A,f)=>{let I=t.shortFlag&&A.length===1?"-":"--",C=t.allowCamelCase?A:A.replace(/[A-Z]/g,"-$&").toLowerCase();A=I+C,t.useEquals?r.push(A+(f?`=${f}`:"")):(r.push(A),f&&r.push(f))},l=(A,f)=>{r.push(`-${A}`),f&&r.push(f)};for(let[A,f]of Object.entries(e)){let I=o;if(!(Array.isArray(t.excludes)&&kii(t.excludes,A))&&!(Array.isArray(t.includes)&&!kii(t.includes,A))){if(typeof t.aliases=="object"&&t.aliases[A]&&(A=t.aliases[A],I=l),A==="--"){if(!Array.isArray(f))throw new TypeError(`Expected key \`--\` to be Array, got ${typeof f}`);a=f;continue}if(A==="_"){if(!Array.isArray(f))throw new TypeError(`Expected key \`_\` to be Array, got ${typeof f}`);n=f;continue}if(f===!0&&!t.ignoreTrue&&I(A,""),f===!1&&!t.ignoreFalse&&I(`no-${A}`),typeof f=="string"&&I(A,f),typeof f=="number"&&!Number.isNaN(f)&&I(A,String(f)),Array.isArray(f))for(let C of f)I(A,C)}}for(let A of n)r.push(String(A));a.length>0&&r.push("--");for(let A of a)r.push(String(A));return r}var kii,Fii=bc(()=>{kii=(e,t)=>e.some(r=>r instanceof RegExp?r.test(t):r===t)});var Pii=H((Euu,Vii)=>{var{Readable:Rba,Transform:Zii}=wt("stream"),{execFile:Nba}=wt("child_process"),Dba=Dii(),Lii="------------------------ >8 ------------------------";function kba(e){return e=e||{},e.cwd=e.cwd||process.cwd(),e}function xba(e){return e=e||{},e.format=e.format||"%B",e.from=e.from||"",e.to=e.to||"HEAD",e}async function Gba(e){let{default:t}=await Promise.resolve().then(()=>(Fii(),Gii)),r=`--format=${e.format||""}%n${Lii}`,n=[e.from,e.to].filter(Boolean).join(".."),a=["log",r,n].concat(t(e,{excludes:["debug","from","to","format","path","ignore"]}));return e.path&&a.push("--",...Array.isArray(e.path)?e.path:[e.path]),a}function Fba(e,t){let r=new Rba;r._read=()=>{};let n=xba(e),a=kba(t),o=!1;return Gba(n).then(l=>{n.debug&&n.debug(`Your git-log command is: +`)}var Nri=class extends Error{constructor(e,t,r){super(w0a(r)),this.request=e,this.headers=t,this.response=r,this.name="GraphqlResponseError",this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},T0a=["method","baseUrl","url","headers","request","query","mediaType"],R0a=["query","method","url"],Tri=/\/api\/v3\/?$/;function N0a(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(R0a.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>T0a.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Tri.test(o)&&(a.url=o.replace(Tri,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Nri(a,A,l.data)}return l.data.data})}function hEr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>N0a(r,a,o),{defaults:hEr.bind(null,r),endpoint:r.endpoint})}var D0a=hEr(S0a.request,{headers:{"user-agent":`octokit-graphql.js/${B0a} ${(0,v0a.getUserAgent)()}`},method:"POST",url:"/graphql"});function k0a(e){return hEr(e,{method:"POST",url:"/graphql"})}});var Fri=H((Hau,Gri)=>{"use strict";var mEr=Object.defineProperty,x0a=Object.getOwnPropertyDescriptor,G0a=Object.getOwnPropertyNames,F0a=Object.prototype.hasOwnProperty,Z0a=(e,t)=>{for(var r in t)mEr(e,r,{get:t[r],enumerable:!0})},L0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of G0a(t))!F0a.call(e,a)&&a!==r&&mEr(e,a,{get:()=>t[a],enumerable:!(n=x0a(t,a))||n.enumerable});return e},V0a=e=>L0a(mEr({},"__esModule",{value:!0}),e),xri={};Z0a(xri,{createTokenAuth:()=>Q0a});Gri.exports=V0a(xri);var P0a=/^v1\./,W0a=/^ghs_/,O0a=/^ghu_/;async function M0a(e){let t=e.split(/\./).length===3,r=P0a.test(e)||W0a.test(e),n=O0a.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function H0a(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Y0a(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=H0a(e),t(a)}var Q0a=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(M0a.bind(null,t),{hook:Y0a.bind(null,t)})}});var Mri=H((Yau,Ori)=>{"use strict";var CEr=Object.defineProperty,X0a=Object.getOwnPropertyDescriptor,J0a=Object.getOwnPropertyNames,U0a=Object.prototype.hasOwnProperty,K0a=(e,t)=>{for(var r in t)CEr(e,r,{get:t[r],enumerable:!0})},j0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of J0a(t))!U0a.call(e,a)&&a!==r&&CEr(e,a,{get:()=>t[a],enumerable:!(n=X0a(t,a))||n.enumerable});return e},z0a=e=>j0a(CEr({},"__esModule",{value:!0}),e),Pri={};K0a(Pri,{Octokit:()=>iya});Ori.exports=z0a(Pri);var q0a=nQe(),$0a=cri(),Zri=aQe(),eya=kri(),tya=Fri(),Wri="5.2.0",Lri=()=>{},rya=console.warn.bind(console),nya=console.error.bind(console),Vri=`octokit-core.js/${Wri} ${(0,q0a.getUserAgent)()}`,iya=class{static{this.VERSION=Wri}static defaults(e){return class extends this{constructor(...r){let n=r[0]||{};if(typeof e=="function"){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static{this.plugins=[]}static plugin(...e){let t=this.plugins;return class extends this{static{this.plugins=t.concat(e.filter(n=>!t.includes(n)))}}}constructor(e={}){let t=new $0a.Collection,r={baseUrl:Zri.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${Vri}`:Vri,e.baseUrl&&(r.baseUrl=e.baseUrl),e.previews&&(r.mediaType.previews=e.previews),e.timeZone&&(r.headers["time-zone"]=e.timeZone),this.request=Zri.request.defaults(r),this.graphql=(0,eya.withCustomRequest)(this.request).defaults(r),this.log=Object.assign({debug:Lri,info:Lri,warn:rya,error:nya},e.log),this.hook=t,e.authStrategy){let{authStrategy:a,...o}=e,l=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},e.auth));t.wrap("request",l.hook),this.auth=l}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{let a=(0,tya.createTokenAuth)(e.auth);t.wrap("request",a.hook),this.auth=a}let n=this.constructor;for(let a=0;a{"use strict";var _Er=Object.defineProperty,sya=Object.getOwnPropertyDescriptor,oya=Object.getOwnPropertyNames,aya=Object.prototype.hasOwnProperty,cya=(e,t)=>{for(var r in t)_Er(e,r,{get:t[r],enumerable:!0})},lya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oya(t))!aya.call(e,a)&&a!==r&&_Er(e,a,{get:()=>t[a],enumerable:!(n=sya(t,a))||n.enumerable});return e},uya=e=>lya(_Er({},"__esModule",{value:!0}),e),Hri={};cya(Hri,{legacyRestEndpointMethods:()=>Jri,restEndpointMethods:()=>Xri});Uri.exports=uya(Hri);var Yri="10.4.1",gya={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Aya=gya,Ehe=new Map;for(let[e,t]of Object.entries(Aya))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);Ehe.has(e)||Ehe.set(e,new Map),Ehe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var dya={has({scope:e},t){return Ehe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Ehe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=Ehe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=pya(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function Qri(e){let t={};for(let r of Ehe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},dya);return t}function pya(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function Xri(e){return{rest:Qri(e)}}Xri.VERSION=Yri;function Jri(e){let t=Qri(e);return{...t,rest:t}}Jri.VERSION=Yri});var rni=H((Kau,tni)=>{"use strict";var yEr=Object.defineProperty,fya=Object.getOwnPropertyDescriptor,Iya=Object.getOwnPropertyNames,hya=Object.prototype.hasOwnProperty,mya=(e,t)=>{for(var r in t)yEr(e,r,{get:t[r],enumerable:!0})},Cya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Iya(t))!hya.call(e,a)&&a!==r&&yEr(e,a,{get:()=>t[a],enumerable:!(n=fya(t,a))||n.enumerable});return e},_ya=e=>Cya(yEr({},"__esModule",{value:!0}),e),jri={};mya(jri,{composePaginateRest:()=>Eya,isPaginatingEndpoint:()=>Sya,paginateRest:()=>eni,paginatingEndpoints:()=>$ri});tni.exports=_ya(jri);var yya="9.2.1";function bya(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function bEr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=bya(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function zri(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),qri(e,[],bEr(e,t,r)[Symbol.asyncIterator](),n)}function qri(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:qri(e,t,r,n)})}var Eya=Object.assign(zri,{iterator:bEr}),$ri=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Sya(e){return typeof e=="string"?$ri.includes(e):!1}function eni(e){return{paginate:Object.assign(zri.bind(null,e),{iterator:bEr.bind(null,e)})}}eni.VERSION=yya});var ini=H(xk=>{"use strict";var vya=xk&&xk.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bya=xk&&xk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nni=xk&&xk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&vya(t,e,r);return Bya(t,e),t};Object.defineProperty(xk,"__esModule",{value:!0});xk.getOctokitOptions=xk.GitHub=xk.defaults=xk.context=void 0;var wya=nni(Mhr()),Lmt=nni(Uti()),Tya=Mri(),Rya=Kri(),Nya=rni();xk.context=new wya.Context;var EEr=Lmt.getApiBaseUrl();xk.defaults={baseUrl:EEr,request:{agent:Lmt.getProxyAgent(EEr),fetch:Lmt.getProxyFetch(EEr)}};xk.GitHub=Tya.Octokit.plugin(Rya.restEndpointMethods,Nya.paginateRest).defaults(xk.defaults);function Dya(e,t){let r=Object.assign({},t||{}),n=Lmt.getAuthString(e,r);return n&&(r.auth=n),r}xk.getOctokitOptions=Dya});var sTe=H(PM=>{"use strict";var kya=PM&&PM.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xya=PM&&PM.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Gya=PM&&PM.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&kya(t,e,r);return xya(t,e),t};Object.defineProperty(PM,"__esModule",{value:!0});PM.getOctokit=PM.context=void 0;var Fya=Gya(Mhr()),sni=ini();PM.context=new Fya.Context;function Zya(e,t,...r){let n=sni.GitHub.plugin(...r);return new n((0,sni.getOctokitOptions)(e,t))}PM.getOctokit=Zya});function kEr({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var Tni=bc(()=>{});function K$(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace($ya,"")}var $ya,AQe=bc(()=>{Tni();$ya=kEr()});var wii=H((buu,Bii)=>{"use strict";function Eba(e,t){var r=e;t.slice(0,-1).forEach(function(a){r=r[a]||{}});var n=t[t.length-1];return n in r}function Sii(e){return typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function vii(e,t){return t==="constructor"&&typeof e[t]=="function"||t==="__proto__"}Bii.exports=function(e,t){t||(t={});var r={bools:{},strings:{},unknownFn:null};typeof t.unknown=="function"&&(r.unknownFn=t.unknown),typeof t.boolean=="boolean"&&t.boolean?r.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach(function(ce){r.bools[ce]=!0});var n={};function a(ce){return n[ce].some(function(fe){return r.bools[fe]})}Object.keys(t.alias||{}).forEach(function(ce){n[ce]=[].concat(t.alias[ce]),n[ce].forEach(function(fe){n[fe]=[ce].concat(n[ce].filter(function(ue){return fe!==ue}))})}),[].concat(t.string).filter(Boolean).forEach(function(ce){r.strings[ce]=!0,n[ce]&&[].concat(n[ce]).forEach(function(fe){r.strings[fe]=!0})});var o=t.default||{},l={_:[]};function A(ce,fe){return r.allBools&&/^--[^=]+$/.test(fe)||r.strings[ce]||r.bools[ce]||n[ce]}function f(ce,fe,ue){for(var de=ce,be=0;be{"use strict";var{Transform:Sba}=wt("stream"),{StringDecoder:vba}=wt("string_decoder"),_ae=Symbol("last"),Umt=Symbol("decoder");function Bba(e,t,r){let n;if(this.overflow){if(n=this[Umt].write(e).split(this.matcher),n.length===1)return r();n.shift(),this.overflow=!1}else this[_ae]+=this[Umt].write(e),n=this[_ae].split(this.matcher);this[_ae]=n.pop();for(let a=0;athis.maxLength,this.overflow&&!this.skipOverflow){r(new Error("maximum buffer reached"));return}r()}function wba(e){if(this[_ae]+=this[Umt].end(),this[_ae])try{Rii(this,this.mapper(this[_ae]))}catch(t){return e(t)}e()}function Rii(e,t){t!==void 0&&e.push(t)}function Tii(e){return e}function Tba(e,t,r){switch(e=e||/\r?\n/,t=t||Tii,r=r||{},arguments.length){case 1:typeof e=="function"?(t=e,e=/\r?\n/):typeof e=="object"&&!(e instanceof RegExp)&&!e[Symbol.split]&&(r=e,e=/\r?\n/);break;case 2:typeof e=="function"?(r=t,t=e,e=/\r?\n/):typeof t=="object"&&(r=t,t=Tii)}r=Object.assign({},r),r.autoDestroy=!0,r.transform=Bba,r.flush=wba,r.readableObjectMode=!0;let n=new Sba(r);return n[_ae]="",n[Umt]=new vba("utf8"),n.matcher=e,n.mapper=t,n.maxLength=r.maxLength,n.skipOverflow=r.skipOverflow||!1,n.overflow=!1,n._destroy=function(a,o){this._writableState.errorEmitted=!1,o(a)},n}Nii.exports=Tba});var Gii={};sI(Gii,{default:()=>xii});function xii(e,t){let r=[],n=[],a=[];t={useEquals:!0,shortFlag:!0,...t};let o=(A,f)=>{let I=t.shortFlag&&A.length===1?"-":"--",C=t.allowCamelCase?A:A.replace(/[A-Z]/g,"-$&").toLowerCase();A=I+C,t.useEquals?r.push(A+(f?`=${f}`:"")):(r.push(A),f&&r.push(f))},l=(A,f)=>{r.push(`-${A}`),f&&r.push(f)};for(let[A,f]of Object.entries(e)){let I=o;if(!(Array.isArray(t.excludes)&&kii(t.excludes,A))&&!(Array.isArray(t.includes)&&!kii(t.includes,A))){if(typeof t.aliases=="object"&&t.aliases[A]&&(A=t.aliases[A],I=l),A==="--"){if(!Array.isArray(f))throw new TypeError(`Expected key \`--\` to be Array, got ${typeof f}`);a=f;continue}if(A==="_"){if(!Array.isArray(f))throw new TypeError(`Expected key \`_\` to be Array, got ${typeof f}`);n=f;continue}if(f===!0&&!t.ignoreTrue&&I(A,""),f===!1&&!t.ignoreFalse&&I(`no-${A}`),typeof f=="string"&&I(A,f),typeof f=="number"&&!Number.isNaN(f)&&I(A,String(f)),Array.isArray(f))for(let C of f)I(A,C)}}for(let A of n)r.push(String(A));a.length>0&&r.push("--");for(let A of a)r.push(String(A));return r}var kii,Fii=bc(()=>{kii=(e,t)=>e.some(r=>r instanceof RegExp?r.test(t):r===t)});var Pii=H((Suu,Vii)=>{var{Readable:Rba,Transform:Zii}=wt("stream"),{execFile:Nba}=wt("child_process"),Dba=Dii(),Lii="------------------------ >8 ------------------------";function kba(e){return e=e||{},e.cwd=e.cwd||process.cwd(),e}function xba(e){return e=e||{},e.format=e.format||"%B",e.from=e.from||"",e.to=e.to||"HEAD",e}async function Gba(e){let{default:t}=await Promise.resolve().then(()=>(Fii(),Gii)),r=`--format=${e.format||""}%n${Lii}`,n=[e.from,e.to].filter(Boolean).join(".."),a=["log",r,n].concat(t(e,{excludes:["debug","from","to","format","path","ignore"]}));return e.path&&a.push("--",...Array.isArray(e.path)?e.path:[e.path]),a}function Fba(e,t){let r=new Rba;r._read=()=>{};let n=xba(e),a=kba(t),o=!1;return Gba(n).then(l=>{n.debug&&n.debug(`Your git-log command is: git `+l.join(" "));let A=typeof n.ignore=="string"?new RegExp(n.ignore):n.ignore,f=A?C=>!A.test(C.toString()):()=>!0,I=Nba("git",l,{cwd:a.cwd,maxBuffer:1/0});I.stdout.pipe(Dba(Lii+` -`)).pipe(new Zii({transform(C,b,E){o=!1,setImmediate(()=>{f(C)&&r.push(C),E()})},flush(C){setImmediate(()=>{o||(r.push(null),r.emit("close")),C()})}})),I.stderr.pipe(new Zii({objectMode:!0,highWaterMark:16,transform(C){o=!0,r.emit("error",new Error(C)),r.emit("close")}}))}),r}Vii.exports=Fba});var Bhe,ssi=bc(()=>{Bhe=[];Bhe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bhe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bhe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var rCt,A1r,d1r,mEa,p1r,nCt,CEa,f1r,I1r,h1r,iCt,Ngu,Dgu,m1r=bc(()=>{ssi();rCt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",A1r=Symbol.for("signal-exit emitter"),d1r=globalThis,mEa=Object.defineProperty.bind(Object),p1r=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(d1r[A1r])return d1r[A1r];mEa(d1r,A1r,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],a=n.indexOf(r);a!==-1&&(a===0&&n.length===1?n.length=0:n.splice(a,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let a=!1;for(let o of this.listeners[t])a=o(r,n)===!0||a;return t==="exit"&&(a=this.emit("afterExit",r,n)||a),a}},nCt=class{},CEa=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),f1r=class extends nCt{onExit(){return()=>{}}load(){}unload(){}},I1r=class extends nCt{#e=h1r.platform==="win32"?"SIGINT":"SIGHUP";#t=new p1r;#n;#r;#i;#s={};#o=!1;constructor(t){super(),this.#n=t,this.#s={};for(let r of Bhe)this.#s[r]=()=>{let n=this.#n.listeners(r),{count:a}=this.#t,o=t;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(a+=o.__signal_exit_emitter__.count),n.length===a){this.unload();let l=this.#t.emit("exit",null,r),A=r==="SIGHUP"?this.#e:r;l||t.kill(t.pid,A)}};this.#i=t.reallyExit,this.#r=t.emit}onExit(t,r){if(!rCt(this.#n))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Bhe)try{let r=this.#s[t];r&&this.#n.on(t,r)}catch{}this.#n.emit=(t,...r)=>this.#l(t,...r),this.#n.reallyExit=t=>this.#g(t)}}unload(){this.#o&&(this.#o=!1,Bhe.forEach(t=>{let r=this.#s[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#n.removeListener(t,r)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,this.#t.count-=1)}#g(t){return rCt(this.#n)?(this.#n.exitCode=t||0,this.#t.emit("exit",this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#l(t,...r){let n=this.#r;if(t==="exit"&&rCt(this.#n)){typeof r[0]=="number"&&(this.#n.exitCode=r[0]);let a=n.call(this.#n,t,...r);return this.#t.emit("exit",this.#n.exitCode,null),a}else return n.call(this.#n,t,...r)}},h1r=globalThis.process,{onExit:iCt,load:Ngu,unload:Dgu}=CEa(rCt(h1r)?new I1r(h1r):new f1r)});var bsi=H((aAu,ysi)=>{"use strict";var{PassThrough:JEa}=wt("stream");ysi.exports=function(){var e=[],t=new JEa({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(r),t;function r(o){return Array.isArray(o)?(o.forEach(r),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function n(){return e.length==0}function a(o){e=e.filter(function(l){return l!==o}),!e.length&&t.readable&&t.end()}}});var soi=H((Cdu,ioi)=>{"use strict";var V1a=/()(.+)/gi,P1a="# ------------------------ >8 ------------------------";function mCt(e){let t=e.match(/[^\r\n]/);if(!t)return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` +`)).pipe(new Zii({transform(C,b,E){o=!1,setImmediate(()=>{f(C)&&r.push(C),E()})},flush(C){setImmediate(()=>{o||(r.push(null),r.emit("close")),C()})}})),I.stderr.pipe(new Zii({objectMode:!0,highWaterMark:16,transform(C){o=!0,r.emit("error",new Error(C)),r.emit("close")}}))}),r}Vii.exports=Fba});var Bhe,ssi=bc(()=>{Bhe=[];Bhe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bhe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bhe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var rCt,A1r,d1r,mEa,p1r,nCt,CEa,f1r,I1r,h1r,iCt,Dgu,kgu,m1r=bc(()=>{ssi();rCt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",A1r=Symbol.for("signal-exit emitter"),d1r=globalThis,mEa=Object.defineProperty.bind(Object),p1r=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(d1r[A1r])return d1r[A1r];mEa(d1r,A1r,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],a=n.indexOf(r);a!==-1&&(a===0&&n.length===1?n.length=0:n.splice(a,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let a=!1;for(let o of this.listeners[t])a=o(r,n)===!0||a;return t==="exit"&&(a=this.emit("afterExit",r,n)||a),a}},nCt=class{},CEa=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),f1r=class extends nCt{onExit(){return()=>{}}load(){}unload(){}},I1r=class extends nCt{#e=h1r.platform==="win32"?"SIGINT":"SIGHUP";#t=new p1r;#n;#r;#i;#s={};#o=!1;constructor(t){super(),this.#n=t,this.#s={};for(let r of Bhe)this.#s[r]=()=>{let n=this.#n.listeners(r),{count:a}=this.#t,o=t;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(a+=o.__signal_exit_emitter__.count),n.length===a){this.unload();let l=this.#t.emit("exit",null,r),A=r==="SIGHUP"?this.#e:r;l||t.kill(t.pid,A)}};this.#i=t.reallyExit,this.#r=t.emit}onExit(t,r){if(!rCt(this.#n))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Bhe)try{let r=this.#s[t];r&&this.#n.on(t,r)}catch{}this.#n.emit=(t,...r)=>this.#l(t,...r),this.#n.reallyExit=t=>this.#g(t)}}unload(){this.#o&&(this.#o=!1,Bhe.forEach(t=>{let r=this.#s[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#n.removeListener(t,r)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,this.#t.count-=1)}#g(t){return rCt(this.#n)?(this.#n.exitCode=t||0,this.#t.emit("exit",this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#l(t,...r){let n=this.#r;if(t==="exit"&&rCt(this.#n)){typeof r[0]=="number"&&(this.#n.exitCode=r[0]);let a=n.call(this.#n,t,...r);return this.#t.emit("exit",this.#n.exitCode,null),a}else return n.call(this.#n,t,...r)}},h1r=globalThis.process,{onExit:iCt,load:Dgu,unload:kgu}=CEa(rCt(h1r)?new I1r(h1r):new f1r)});var bsi=H((cAu,ysi)=>{"use strict";var{PassThrough:JEa}=wt("stream");ysi.exports=function(){var e=[],t=new JEa({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(r),t;function r(o){return Array.isArray(o)?(o.forEach(r),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function n(){return e.length==0}function a(o){e=e.filter(function(l){return l!==o}),!e.length&&t.readable&&t.end()}}});var soi=H((_du,ioi)=>{"use strict";var V1a=/()(.+)/gi,P1a="# ------------------------ >8 ------------------------";function mCt(e){let t=e.match(/[^\r\n]/);if(!t)return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` `;)n--;return e.substring(r,n+1)}function whe(e,t){return e?e+=` -`+t:e=t,e}function W1a(e){return function(t){return t.charAt(0)!==e}}function O1a(e){let t=e.indexOf(P1a);return t===-1?e:e.slice(0,t)}function noi(e,t){let r=[],n,a,o=e.match(t.references)!==null?t.references:V1a;for(;n=o.exec(e);){let l=n[1]||null,A=n[2];for(;a=t.referenceParts.exec(A);){let f=null,I=a[1]||"",C=I.split("/");C.length>1&&(f=C.shift(),I=C.join("/"));let b={action:l,owner:f,repository:I||null,issue:a[3],raw:a[0],prefix:a[2]};r.push(b)}}return r}function M1a(){return!0}function H1a(e,t,r){if(!e||!e.trim())throw new TypeError("Expected a raw commit");if(!t||typeof t=="object"&&!Object.keys(t).length)throw new TypeError("Expected options");if(!r)throw new TypeError("Expected regex");let n,a,o={},l=typeof t.commentChar=="string"?W1a(t.commentChar):M1a,A=ct=>!ct.match(/^\s*gpg:/),f=mCt(e).split(/\r?\n/),I=O1a(f).filter(l).filter(A),C=!1,b=!0,E=t.headerCorrespondence?.map(function(ct){return ct.trim()})||[],N=t.revertCorrespondence?.map(function(ct){return ct.trim()})||[],B=t.mergeCorrespondence?.map(function(ct){return ct.trim()})||[],F=null,Q=null,X=null,ae=[],ne=null,ce=[],fe=[],ue=null;if(I.length===0)return{body:F,footer:Q,header:X,mentions:ae,merge:ne,notes:ce,references:fe,revert:ue,scope:null,subject:null,type:null};ne=I.shift();let de={},be={};F="",Q="";let Se=ne.match(t.mergePattern);if(Se&&t.mergePattern){for(ne=Se[0],X=I.shift();X!==void 0&&!X.trim();)X=I.shift();X||(X=""),B.forEach(function(ct,Me){let je=Se[Me+1]||null;de[ct]=je})}else X=ne,ne=null,B.forEach(function(ct){de[ct]=null});let De=X.match(t.headerPattern);if(De?E.forEach(function(ct,Me){let je=De[Me+1]||null;be[ct]=je}):E.forEach(function(ct){be[ct]=null}),fe.push(...noi(X,{references:r.references,referenceParts:r.referenceParts})),I.forEach(function(ct){if(t.fieldPattern){let At=t.fieldPattern.exec(ct);if(At){n=At[1];return}if(n){o[n]=whe(o[n],ct);return}}let Me,je=ct.match(r.notes);if(je){C=!0,b=!1,Q=whe(Q,ct);let At={title:je[1],text:je[2]};ce.push(At);return}let St=noi(ct,{references:r.references,referenceParts:r.referenceParts});if(St.length>0&&(b=!1,Me=!0,C=!1),Array.prototype.push.apply(fe,St),Me){Q=whe(Q,ct);return}if(C){ce[ce.length-1].text=whe(ce[ce.length-1].text,ct),Q=whe(Q,ct);return}b?F=whe(F,ct):Q=whe(Q,ct)}),t.breakingHeaderPattern&&ce.length===0){let ct=X.match(t.breakingHeaderPattern);if(ct){let Me=ct[3];ce.push({title:"BREAKING CHANGE",text:Me})}}for(;a=r.mentions.exec(e);)ae.push(a[1]);let k=e.match(t.revertPattern);return k?(ue={},N.forEach(function(ct,Me){let je=k[Me+1]||null;ue[ct]=je})):ue=null,ce.forEach(function(ct){ct.text=mCt(ct.text)}),{...be,...de,merge:ne,header:X,body:F?mCt(F):null,footer:Q?mCt(Q):null,notes:ce,references:fe,mentions:ae,revert:ue,...o}}ioi.exports=H1a});var coi=H((_du,aoi)=>{"use strict";var ooi=/(?!.*)/;function V1r(e,t){return e.map(function(r){return r.trim()}).filter(function(r){return r.length}).join(t)}function Y1a(e,t){if(!e)return ooi;let r=V1r(e,"|");return t?t(r):new RegExp("^[\\s|*]*("+r+")[:\\s]+(.*)","i")}function Q1a(e,t){if(!e)return ooi;let r=t?"g":"gi";return new RegExp("(?:.*?)??\\s*([\\w-\\.\\/]*?)??("+V1r(e,"|")+")([\\w-]*\\d+)",r)}function X1a(e){if(!e)return/()(.+)/gi;let t=V1r(e,"|");return new RegExp("("+t+")(?:\\s+(.*?))(?=(?:"+t+")|$)","gi")}aoi.exports=function(e){e=e||{};let t=Y1a(e.noteKeywords,e.notesPattern),r=Q1a(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=X1a(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}});var Aoi=H((ydu,P1r)=>{"use strict";var{Transform:J1a}=wt("stream"),loi=soi(),uoi=coi();function goi(e){return e={headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],issuePrefixes:["#"],noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],fieldPattern:/^-(.*?)-$/,revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],warn:function(){},mergePattern:null,mergeCorrespondence:null,...e},typeof e.headerPattern=="string"&&(e.headerPattern=new RegExp(e.headerPattern)),typeof e.headerCorrespondence=="string"&&(e.headerCorrespondence=e.headerCorrespondence.split(",")),typeof e.referenceActions=="string"&&(e.referenceActions=e.referenceActions.split(",")),typeof e.issuePrefixes=="string"&&(e.issuePrefixes=e.issuePrefixes.split(",")),typeof e.noteKeywords=="string"&&(e.noteKeywords=e.noteKeywords.split(",")),typeof e.fieldPattern=="string"&&(e.fieldPattern=new RegExp(e.fieldPattern)),typeof e.revertPattern=="string"&&(e.revertPattern=new RegExp(e.revertPattern)),typeof e.revertCorrespondence=="string"&&(e.revertCorrespondence=e.revertCorrespondence.split(",")),typeof e.mergePattern=="string"&&(e.mergePattern=new RegExp(e.mergePattern)),e}function U1a(e){e=goi(e);let t=uoi(e);return new J1a({objectMode:!0,highWaterMark:16,transform(r,n,a){let o;try{o=loi(r.toString(),e,t),a(null,o)}catch(l){e.warn===!0?a(l):(e.warn(l.toString()),a(null,""))}}})}function K1a(e,t){t=goi(t);let r=uoi(t);return loi(e,t,r)}P1r.exports=U1a;P1r.exports.sync=K1a});var poi=H((bdu,doi)=>{"use strict";function j1a(){return{headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i,revertCorrespondence:["header","hash"]}}doi.exports.createParserOpts=j1a});var Ioi=H((Edu,foi)=>{"use strict";var z1a=Xfr();async function q1a(){let e=$1a();return e.mainTemplate="",e.headerPartial="",e.commitPartial="",e.footerPartial="",e}foi.exports.createWriterOpts=q1a;function $1a(){return{transform:(e,t)=>{let r=!0,n=[];if(e.notes.forEach(a=>{a.title="BREAKING CHANGES",r=!1}),e.type==="feat")e.type="Features";else if(e.type==="fix")e.type="Bug Fixes";else if(e.type==="perf")e.type="Performance Improvements";else if(e.type==="revert"||e.revert)e.type="Reverts";else{if(r)return;e.type==="docs"?e.type="Documentation":e.type==="style"?e.type="Styles":e.type==="refactor"?e.type="Code Refactoring":e.type==="test"?e.type="Tests":e.type==="build"?e.type="Build System":e.type==="ci"&&(e.type="Continuous Integration")}if(e.scope==="*"&&(e.scope=""),typeof e.hash=="string"&&(e.shortHash=e.hash.substring(0,7)),typeof e.subject=="string"){let a=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;a&&(a=`${a}/issues/`,e.subject=e.subject.replace(/#([0-9]+)/g,(o,l)=>(n.push(l),`[#${l}](${a}${l})`))),t.host&&(e.subject=e.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(o,l)=>l.includes("/")?`@${l}`:`[@${l}](${t.host}/${l})`))}return e.references=e.references.filter(a=>n.indexOf(a.issue)===-1),e},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:z1a}}});var moi=H((Sdu,hoi)=>{"use strict";function e2a(e,t){return{parserOpts:e,writerOpts:t}}hoi.exports.createConventionalChangelogOpts=e2a});var _oi=H((vdu,Coi)=>{"use strict";function t2a(e){return{parserOpts:e,whatBump(t){let r=2,n=0,a=0;return t.forEach(o=>{o.notes.length>0?(n+=o.notes.length,r=0):o.type==="feat"&&(a+=1,r===2&&(r=1))}),{level:r,reason:n===1?`There is ${n} BREAKING CHANGE and ${a} features`:`There are ${n} BREAKING CHANGES and ${a} features`}}}}Coi.exports.createConventionalRecommendedBumpOpts=t2a});var boi=H((Bdu,yoi)=>{"use strict";var{createParserOpts:r2a}=poi(),{createWriterOpts:n2a}=Ioi(),{createConventionalChangelogOpts:i2a}=moi(),{createConventionalRecommendedBumpOpts:s2a}=_oi();async function o2a(){let e=r2a(),t=await n2a(),r=s2a(e),n=i2a(e,t);return{parserOpts:e,writerOpts:t,recommendedBumpOpts:r,conventionalChangelog:n}}yoi.exports=o2a});var joi=H((Tdu,Koi)=>{var c2a=1/0,l2a="[object Symbol]",u2a=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,g2a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_Ct="\\ud800-\\udfff",xoi="\\u0300-\\u036f\\ufe20-\\ufe23",Goi="\\u20d0-\\u20f0",Foi="\\u2700-\\u27bf",Zoi="a-z\\xdf-\\xf6\\xf8-\\xff",A2a="\\xac\\xb1\\xd7\\xf7",d2a="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",p2a="\\u2000-\\u206f",f2a=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Loi="A-Z\\xc0-\\xd6\\xd8-\\xde",Voi="\\ufe0e\\ufe0f",Poi=A2a+d2a+p2a+f2a,O1r="['\u2019]",I2a="["+_Ct+"]",Boi="["+Poi+"]",CCt="["+xoi+Goi+"]",Woi="\\d+",h2a="["+Foi+"]",Ooi="["+Zoi+"]",Moi="[^"+_Ct+Poi+Woi+Foi+Zoi+Loi+"]",W1r="\\ud83c[\\udffb-\\udfff]",m2a="(?:"+CCt+"|"+W1r+")",Hoi="[^"+_Ct+"]",M1r="(?:\\ud83c[\\udde6-\\uddff]){2}",H1r="[\\ud800-\\udbff][\\udc00-\\udfff]",ATe="["+Loi+"]",Yoi="\\u200d",woi="(?:"+Ooi+"|"+Moi+")",C2a="(?:"+ATe+"|"+Moi+")",Toi="(?:"+O1r+"(?:d|ll|m|re|s|t|ve))?",Roi="(?:"+O1r+"(?:D|LL|M|RE|S|T|VE))?",Qoi=m2a+"?",Xoi="["+Voi+"]?",_2a="(?:"+Yoi+"(?:"+[Hoi,M1r,H1r].join("|")+")"+Xoi+Qoi+")*",Joi=Xoi+Qoi+_2a,y2a="(?:"+[h2a,M1r,H1r].join("|")+")"+Joi,b2a="(?:"+[Hoi+CCt+"?",CCt,M1r,H1r,I2a].join("|")+")",E2a=RegExp(O1r,"g"),S2a=RegExp(CCt,"g"),v2a=RegExp(W1r+"(?="+W1r+")|"+b2a+Joi,"g"),B2a=RegExp([ATe+"?"+Ooi+"+"+Toi+"(?="+[Boi,ATe,"$"].join("|")+")",C2a+"+"+Roi+"(?="+[Boi,ATe+woi,"$"].join("|")+")",ATe+"?"+woi+"+"+Toi,ATe+"+"+Roi,Woi,y2a].join("|"),"g"),w2a=RegExp("["+Yoi+_Ct+xoi+Goi+Voi+"]"),T2a=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,R2a={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},N2a=typeof global=="object"&&global&&global.Object===Object&&global,D2a=typeof self=="object"&&self&&self.Object===Object&&self,k2a=N2a||D2a||Function("return this")();function x2a(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:Y2a(e,t,r)}function J2a(e){return function(t){t=yCt(t);var r=Uoi(t)?P2a(t):void 0,n=r?r[0]:t.charAt(0),a=r?X2a(r,1).join(""):t.slice(1);return n[e]()+a}}function U2a(e){return function(t){return x2a(tSa($2a(t).replace(E2a,"")),e,"")}}function K2a(e){return!!e&&typeof e=="object"}function j2a(e){return typeof e=="symbol"||K2a(e)&&H2a.call(e)==l2a}function yCt(e){return e==null?"":Q2a(e)}var z2a=U2a(function(e,t,r){return t=t.toLowerCase(),e+(r?q2a(t):t)});function q2a(e){return eSa(yCt(e).toLowerCase())}function $2a(e){return e=yCt(e),e&&e.replace(g2a,L2a).replace(S2a,"")}var eSa=J2a("toUpperCase");function tSa(e,t,r){return e=yCt(e),t=r?void 0:t,t===void 0?V2a(e)?O2a(e):F2a(e):e.match(t)||[]}Koi.exports=z2a});var Cai=H((Rdu,mai)=>{var rSa=1/0,nSa="[object Symbol]",iSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,sSa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iai="\\ud800-\\udfff",oSa="\\u0300-\\u036f\\ufe20-\\ufe23",aSa="\\u20d0-\\u20f0",sai="\\u2700-\\u27bf",oai="a-z\\xdf-\\xf6\\xf8-\\xff",cSa="\\xac\\xb1\\xd7\\xf7",lSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",uSa="\\u2000-\\u206f",gSa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aai="A-Z\\xc0-\\xd6\\xd8-\\xde",ASa="\\ufe0e\\ufe0f",cai=cSa+lSa+uSa+gSa,Y1r="['\u2019]",zoi="["+cai+"]",lai="["+oSa+aSa+"]",uai="\\d+",dSa="["+sai+"]",gai="["+oai+"]",Aai="[^"+iai+cai+uai+sai+oai+aai+"]",pSa="\\ud83c[\\udffb-\\udfff]",fSa="(?:"+lai+"|"+pSa+")",ISa="[^"+iai+"]",dai="(?:\\ud83c[\\udde6-\\uddff]){2}",pai="[\\ud800-\\udbff][\\udc00-\\udfff]",dTe="["+aai+"]",hSa="\\u200d",qoi="(?:"+gai+"|"+Aai+")",mSa="(?:"+dTe+"|"+Aai+")",$oi="(?:"+Y1r+"(?:d|ll|m|re|s|t|ve))?",eai="(?:"+Y1r+"(?:D|LL|M|RE|S|T|VE))?",fai=fSa+"?",Iai="["+ASa+"]?",CSa="(?:"+hSa+"(?:"+[ISa,dai,pai].join("|")+")"+Iai+fai+")*",_Sa=Iai+fai+CSa,ySa="(?:"+[dSa,dai,pai].join("|")+")"+_Sa,bSa=RegExp(Y1r,"g"),ESa=RegExp(lai,"g"),SSa=RegExp([dTe+"?"+gai+"+"+$oi+"(?="+[zoi,dTe,"$"].join("|")+")",mSa+"+"+eai+"(?="+[zoi,dTe+qoi,"$"].join("|")+")",dTe+"?"+qoi+"+"+$oi,dTe+"+"+eai,uai,ySa].join("|"),"g"),vSa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BSa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wSa=typeof global=="object"&&global&&global.Object===Object&&global,TSa=typeof self=="object"&&self&&self.Object===Object&&self,RSa=wSa||TSa||Function("return this")();function NSa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var QSa=1/0,XSa="[object Symbol]",JSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,USa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wai="\\ud800-\\udfff",KSa="\\u0300-\\u036f\\ufe20-\\ufe23",jSa="\\u20d0-\\u20f0",Tai="\\u2700-\\u27bf",Rai="a-z\\xdf-\\xf6\\xf8-\\xff",zSa="\\xac\\xb1\\xd7\\xf7",qSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",$Sa="\\u2000-\\u206f",eva=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Nai="A-Z\\xc0-\\xd6\\xd8-\\xde",tva="\\ufe0e\\ufe0f",Dai=zSa+qSa+$Sa+eva,Q1r="['\u2019]",_ai="["+Dai+"]",kai="["+KSa+jSa+"]",xai="\\d+",rva="["+Tai+"]",Gai="["+Rai+"]",Fai="[^"+wai+Dai+xai+Tai+Rai+Nai+"]",nva="\\ud83c[\\udffb-\\udfff]",iva="(?:"+kai+"|"+nva+")",sva="[^"+wai+"]",Zai="(?:\\ud83c[\\udde6-\\uddff]){2}",Lai="[\\ud800-\\udbff][\\udc00-\\udfff]",pTe="["+Nai+"]",ova="\\u200d",yai="(?:"+Gai+"|"+Fai+")",ava="(?:"+pTe+"|"+Fai+")",bai="(?:"+Q1r+"(?:d|ll|m|re|s|t|ve))?",Eai="(?:"+Q1r+"(?:D|LL|M|RE|S|T|VE))?",Vai=iva+"?",Pai="["+tva+"]?",cva="(?:"+ova+"(?:"+[sva,Zai,Lai].join("|")+")"+Pai+Vai+")*",lva=Pai+Vai+cva,uva="(?:"+[rva,Zai,Lai].join("|")+")"+lva,gva=RegExp(Q1r,"g"),Ava=RegExp(kai,"g"),dva=RegExp([pTe+"?"+Gai+"+"+bai+"(?="+[_ai,pTe,"$"].join("|")+")",ava+"+"+Eai+"(?="+[_ai,pTe+yai,"$"].join("|")+")",pTe+"?"+yai+"+"+bai,pTe+"+"+Eai,xai,uva].join("|"),"g"),pva=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fva={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},Iva=typeof global=="object"&&global&&global.Object===Object&&global,hva=typeof self=="object"&&self&&self.Object===Object&&self,mva=Iva||hva||Function("return this")();function Cva(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var Gva=1/0,Fva="[object Symbol]",U1r="\\ud800-\\udfff",Xai="\\u0300-\\u036f\\ufe20-\\ufe23",Jai="\\u20d0-\\u20f0",Uai="\\ufe0e\\ufe0f",Zva="["+U1r+"]",X1r="["+Xai+Jai+"]",J1r="\\ud83c[\\udffb-\\udfff]",Lva="(?:"+X1r+"|"+J1r+")",Kai="[^"+U1r+"]",jai="(?:\\ud83c[\\udde6-\\uddff]){2}",zai="[\\ud800-\\udbff][\\udc00-\\udfff]",qai="\\u200d",$ai=Lva+"?",eci="["+Uai+"]?",Vva="(?:"+qai+"(?:"+[Kai,jai,zai].join("|")+")"+eci+$ai+")*",Pva=eci+$ai+Vva,Wva="(?:"+[Kai+X1r+"?",X1r,jai,zai,Zva].join("|")+")",Ova=RegExp(J1r+"(?="+J1r+")|"+Wva+Pva,"g"),Mva=RegExp("["+qai+U1r+Xai+Jai+Uai+"]"),Hva=typeof global=="object"&&global&&global.Object===Object&&global,Yva=typeof self=="object"&&self&&self.Object===Object&&self,Qva=Hva||Yva||Function("return this")();function Xva(e){return e.split("")}function tci(e){return Mva.test(e)}function Jva(e){return tci(e)?Uva(e):Xva(e)}function Uva(e){return e.match(Ova)||[]}var Kva=Object.prototype,jva=Kva.toString,Hai=Qva.Symbol,Yai=Hai?Hai.prototype:void 0,Qai=Yai?Yai.toString:void 0;function zva(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:zva(e,t,r)}function eBa(e){return function(t){t=nBa(t);var r=tci(t)?Jva(t):void 0,n=r?r[0]:t.charAt(0),a=r?$va(r,1).join(""):t.slice(1);return n[e]()+a}}function tBa(e){return!!e&&typeof e=="object"}function rBa(e){return typeof e=="symbol"||tBa(e)&&jva.call(e)==Fva}function nBa(e){return e==null?"":qva(e)}var iBa=eBa("toUpperCase");rci.exports=iBa});var Tci=H((kdu,wci)=>{var sBa=1/0,oBa="[object Symbol]",aBa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,cBa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ECt="\\ud800-\\udfff",gci="\\u0300-\\u036f\\ufe20-\\ufe23",Aci="\\u20d0-\\u20f0",dci="\\u2700-\\u27bf",pci="a-z\\xdf-\\xf6\\xf8-\\xff",lBa="\\xac\\xb1\\xd7\\xf7",uBa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",gBa="\\u2000-\\u206f",ABa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",fci="A-Z\\xc0-\\xd6\\xd8-\\xde",Ici="\\ufe0e\\ufe0f",hci=lBa+uBa+gBa+ABa,j1r="['\u2019]",dBa="["+ECt+"]",ici="["+hci+"]",bCt="["+gci+Aci+"]",mci="\\d+",pBa="["+dci+"]",Cci="["+pci+"]",_ci="[^"+ECt+hci+mci+dci+pci+fci+"]",K1r="\\ud83c[\\udffb-\\udfff]",fBa="(?:"+bCt+"|"+K1r+")",yci="[^"+ECt+"]",z1r="(?:\\ud83c[\\udde6-\\uddff]){2}",q1r="[\\ud800-\\udbff][\\udc00-\\udfff]",fTe="["+fci+"]",bci="\\u200d",sci="(?:"+Cci+"|"+_ci+")",IBa="(?:"+fTe+"|"+_ci+")",oci="(?:"+j1r+"(?:d|ll|m|re|s|t|ve))?",aci="(?:"+j1r+"(?:D|LL|M|RE|S|T|VE))?",Eci=fBa+"?",Sci="["+Ici+"]?",hBa="(?:"+bci+"(?:"+[yci,z1r,q1r].join("|")+")"+Sci+Eci+")*",vci=Sci+Eci+hBa,mBa="(?:"+[pBa,z1r,q1r].join("|")+")"+vci,CBa="(?:"+[yci+bCt+"?",bCt,z1r,q1r,dBa].join("|")+")",_Ba=RegExp(j1r,"g"),yBa=RegExp(bCt,"g"),bBa=RegExp(K1r+"(?="+K1r+")|"+CBa+vci,"g"),EBa=RegExp([fTe+"?"+Cci+"+"+oci+"(?="+[ici,fTe,"$"].join("|")+")",IBa+"+"+aci+"(?="+[ici,fTe+sci,"$"].join("|")+")",fTe+"?"+sci+"+"+oci,fTe+"+"+aci,mci,mBa].join("|"),"g"),SBa=RegExp("["+bci+ECt+gci+Aci+Ici+"]"),vBa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BBa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wBa=typeof global=="object"&&global&&global.Object===Object&&global,TBa=typeof self=="object"&&self&&self.Object===Object&&self,RBa=wBa||TBa||Function("return this")();function NBa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:OBa(e,t,r)}function YBa(e){return function(t){t=$1r(t);var r=Bci(t)?ZBa(t):void 0,n=r?r[0]:t.charAt(0),a=r?HBa(r,1).join(""):t.slice(1);return n[e]()+a}}function QBa(e){return function(t){return NBa(zBa(UBa(t).replace(_Ba,"")),e,"")}}function XBa(e){return!!e&&typeof e=="object"}function JBa(e){return typeof e=="symbol"||XBa(e)&&WBa.call(e)==oBa}function $1r(e){return e==null?"":MBa(e)}function UBa(e){return e=$1r(e),e&&e.replace(cBa,GBa).replace(yBa,"")}var KBa=QBa(function(e,t,r){return e+(r?" ":"")+jBa(t)}),jBa=YBa("toUpperCase");function zBa(e,t,r){return e=$1r(e),t=r?void 0:t,t===void 0?FBa(e)?VBa(e):kBa(e):e.match(t)||[]}wci.exports=KBa});var yli=H(Rhe=>{"use strict";Object.defineProperty(Rhe,"__esModule",{value:!0});Rhe.Application=Rhe.MinistoreContext=void 0;var nwa=(Pa(),vi(Va)),iwa=Al(),DQe=nwa.__importStar(Ec()),swa=wt("readline");Rhe.MinistoreContext=DQe.default.createContext(null);var owa=({children:e})=>{let{stdin:t,setRawMode:r}=(0,iwa.useStdin)();(0,DQe.useEffect)(()=>{r&&r(!0),t&&(0,swa.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,DQe.useState)(new Map),o=(0,DQe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(new Map([...n,[l,A]]))}),[n,a]);return DQe.default.createElement(Rhe.MinistoreContext.Provider,{value:o,children:e})};Rhe.Application=owa});var Eli=H(l2r=>{"use strict";Object.defineProperty(l2r,"__esModule",{value:!0});l2r.useKeypress=cwa;var awa=Al(),bli=Ec();function cwa({active:e},t,r){let{stdin:n}=(0,awa.useStdin)(),a=(0,bli.useCallback)((o,l)=>t(o,l),r);(0,bli.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var Bli=H(u2r=>{"use strict";Object.defineProperty(u2r,"__esModule",{value:!0});u2r.renderForm=Awa;var lwa=(Pa(),vi(Va)),Sli=Al(),vli=lwa.__importDefault(Ec()),uwa=yli(),gwa=Eli();async function Awa(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,Sli.useApp)();(0,gwa.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,Sli.render)(vli.default.createElement(uwa.Application,null,vli.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var Rli=H(wCt=>{"use strict";Object.defineProperty(wCt,"__esModule",{value:!0});wCt.forceStdinTty=void 0;var wli=Tli(wt("fs")),dwa=Tli(wt("tty"));function Tli(e){return e&&e.__esModule?e:{default:e}}var pwa=function(){if(process.stdin.isTTY)return!1;var t=wli.default.constants,r=t.O_RDONLY,n=t.O_NOCTTY,a=wli.default.openSync("/dev/tty",r+n),o=new dwa.default.ReadStream(a);return Object.defineProperty(process,"stdin",{configurable:!0,enumerable:!0,get:function(){return o}}),!0};wCt.forceStdinTty=pwa});var Dli=H((JIu,Nli)=>{function fwa(e){let t=e.length-1,r=e[t];for(;r===" "||r===" ";)r=e[--t];return e.substring(0,t+1)}function Iwa(e){return e.split(` +`+t:e=t,e}function W1a(e){return function(t){return t.charAt(0)!==e}}function O1a(e){let t=e.indexOf(P1a);return t===-1?e:e.slice(0,t)}function noi(e,t){let r=[],n,a,o=e.match(t.references)!==null?t.references:V1a;for(;n=o.exec(e);){let l=n[1]||null,A=n[2];for(;a=t.referenceParts.exec(A);){let f=null,I=a[1]||"",C=I.split("/");C.length>1&&(f=C.shift(),I=C.join("/"));let b={action:l,owner:f,repository:I||null,issue:a[3],raw:a[0],prefix:a[2]};r.push(b)}}return r}function M1a(){return!0}function H1a(e,t,r){if(!e||!e.trim())throw new TypeError("Expected a raw commit");if(!t||typeof t=="object"&&!Object.keys(t).length)throw new TypeError("Expected options");if(!r)throw new TypeError("Expected regex");let n,a,o={},l=typeof t.commentChar=="string"?W1a(t.commentChar):M1a,A=ct=>!ct.match(/^\s*gpg:/),f=mCt(e).split(/\r?\n/),I=O1a(f).filter(l).filter(A),C=!1,b=!0,E=t.headerCorrespondence?.map(function(ct){return ct.trim()})||[],N=t.revertCorrespondence?.map(function(ct){return ct.trim()})||[],B=t.mergeCorrespondence?.map(function(ct){return ct.trim()})||[],F=null,Q=null,X=null,ae=[],ne=null,ce=[],fe=[],ue=null;if(I.length===0)return{body:F,footer:Q,header:X,mentions:ae,merge:ne,notes:ce,references:fe,revert:ue,scope:null,subject:null,type:null};ne=I.shift();let de={},be={};F="",Q="";let Se=ne.match(t.mergePattern);if(Se&&t.mergePattern){for(ne=Se[0],X=I.shift();X!==void 0&&!X.trim();)X=I.shift();X||(X=""),B.forEach(function(ct,Me){let je=Se[Me+1]||null;de[ct]=je})}else X=ne,ne=null,B.forEach(function(ct){de[ct]=null});let De=X.match(t.headerPattern);if(De?E.forEach(function(ct,Me){let je=De[Me+1]||null;be[ct]=je}):E.forEach(function(ct){be[ct]=null}),fe.push(...noi(X,{references:r.references,referenceParts:r.referenceParts})),I.forEach(function(ct){if(t.fieldPattern){let At=t.fieldPattern.exec(ct);if(At){n=At[1];return}if(n){o[n]=whe(o[n],ct);return}}let Me,je=ct.match(r.notes);if(je){C=!0,b=!1,Q=whe(Q,ct);let At={title:je[1],text:je[2]};ce.push(At);return}let St=noi(ct,{references:r.references,referenceParts:r.referenceParts});if(St.length>0&&(b=!1,Me=!0,C=!1),Array.prototype.push.apply(fe,St),Me){Q=whe(Q,ct);return}if(C){ce[ce.length-1].text=whe(ce[ce.length-1].text,ct),Q=whe(Q,ct);return}b?F=whe(F,ct):Q=whe(Q,ct)}),t.breakingHeaderPattern&&ce.length===0){let ct=X.match(t.breakingHeaderPattern);if(ct){let Me=ct[3];ce.push({title:"BREAKING CHANGE",text:Me})}}for(;a=r.mentions.exec(e);)ae.push(a[1]);let k=e.match(t.revertPattern);return k?(ue={},N.forEach(function(ct,Me){let je=k[Me+1]||null;ue[ct]=je})):ue=null,ce.forEach(function(ct){ct.text=mCt(ct.text)}),{...be,...de,merge:ne,header:X,body:F?mCt(F):null,footer:Q?mCt(Q):null,notes:ce,references:fe,mentions:ae,revert:ue,...o}}ioi.exports=H1a});var coi=H((ydu,aoi)=>{"use strict";var ooi=/(?!.*)/;function V1r(e,t){return e.map(function(r){return r.trim()}).filter(function(r){return r.length}).join(t)}function Y1a(e,t){if(!e)return ooi;let r=V1r(e,"|");return t?t(r):new RegExp("^[\\s|*]*("+r+")[:\\s]+(.*)","i")}function Q1a(e,t){if(!e)return ooi;let r=t?"g":"gi";return new RegExp("(?:.*?)??\\s*([\\w-\\.\\/]*?)??("+V1r(e,"|")+")([\\w-]*\\d+)",r)}function X1a(e){if(!e)return/()(.+)/gi;let t=V1r(e,"|");return new RegExp("("+t+")(?:\\s+(.*?))(?=(?:"+t+")|$)","gi")}aoi.exports=function(e){e=e||{};let t=Y1a(e.noteKeywords,e.notesPattern),r=Q1a(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=X1a(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}});var Aoi=H((bdu,P1r)=>{"use strict";var{Transform:J1a}=wt("stream"),loi=soi(),uoi=coi();function goi(e){return e={headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],issuePrefixes:["#"],noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],fieldPattern:/^-(.*?)-$/,revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],warn:function(){},mergePattern:null,mergeCorrespondence:null,...e},typeof e.headerPattern=="string"&&(e.headerPattern=new RegExp(e.headerPattern)),typeof e.headerCorrespondence=="string"&&(e.headerCorrespondence=e.headerCorrespondence.split(",")),typeof e.referenceActions=="string"&&(e.referenceActions=e.referenceActions.split(",")),typeof e.issuePrefixes=="string"&&(e.issuePrefixes=e.issuePrefixes.split(",")),typeof e.noteKeywords=="string"&&(e.noteKeywords=e.noteKeywords.split(",")),typeof e.fieldPattern=="string"&&(e.fieldPattern=new RegExp(e.fieldPattern)),typeof e.revertPattern=="string"&&(e.revertPattern=new RegExp(e.revertPattern)),typeof e.revertCorrespondence=="string"&&(e.revertCorrespondence=e.revertCorrespondence.split(",")),typeof e.mergePattern=="string"&&(e.mergePattern=new RegExp(e.mergePattern)),e}function U1a(e){e=goi(e);let t=uoi(e);return new J1a({objectMode:!0,highWaterMark:16,transform(r,n,a){let o;try{o=loi(r.toString(),e,t),a(null,o)}catch(l){e.warn===!0?a(l):(e.warn(l.toString()),a(null,""))}}})}function K1a(e,t){t=goi(t);let r=uoi(t);return loi(e,t,r)}P1r.exports=U1a;P1r.exports.sync=K1a});var poi=H((Edu,doi)=>{"use strict";function j1a(){return{headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i,revertCorrespondence:["header","hash"]}}doi.exports.createParserOpts=j1a});var Ioi=H((Sdu,foi)=>{"use strict";var z1a=Xfr();async function q1a(){let e=$1a();return e.mainTemplate="",e.headerPartial="",e.commitPartial="",e.footerPartial="",e}foi.exports.createWriterOpts=q1a;function $1a(){return{transform:(e,t)=>{let r=!0,n=[];if(e.notes.forEach(a=>{a.title="BREAKING CHANGES",r=!1}),e.type==="feat")e.type="Features";else if(e.type==="fix")e.type="Bug Fixes";else if(e.type==="perf")e.type="Performance Improvements";else if(e.type==="revert"||e.revert)e.type="Reverts";else{if(r)return;e.type==="docs"?e.type="Documentation":e.type==="style"?e.type="Styles":e.type==="refactor"?e.type="Code Refactoring":e.type==="test"?e.type="Tests":e.type==="build"?e.type="Build System":e.type==="ci"&&(e.type="Continuous Integration")}if(e.scope==="*"&&(e.scope=""),typeof e.hash=="string"&&(e.shortHash=e.hash.substring(0,7)),typeof e.subject=="string"){let a=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;a&&(a=`${a}/issues/`,e.subject=e.subject.replace(/#([0-9]+)/g,(o,l)=>(n.push(l),`[#${l}](${a}${l})`))),t.host&&(e.subject=e.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(o,l)=>l.includes("/")?`@${l}`:`[@${l}](${t.host}/${l})`))}return e.references=e.references.filter(a=>n.indexOf(a.issue)===-1),e},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:z1a}}});var moi=H((vdu,hoi)=>{"use strict";function e2a(e,t){return{parserOpts:e,writerOpts:t}}hoi.exports.createConventionalChangelogOpts=e2a});var _oi=H((Bdu,Coi)=>{"use strict";function t2a(e){return{parserOpts:e,whatBump(t){let r=2,n=0,a=0;return t.forEach(o=>{o.notes.length>0?(n+=o.notes.length,r=0):o.type==="feat"&&(a+=1,r===2&&(r=1))}),{level:r,reason:n===1?`There is ${n} BREAKING CHANGE and ${a} features`:`There are ${n} BREAKING CHANGES and ${a} features`}}}}Coi.exports.createConventionalRecommendedBumpOpts=t2a});var boi=H((wdu,yoi)=>{"use strict";var{createParserOpts:r2a}=poi(),{createWriterOpts:n2a}=Ioi(),{createConventionalChangelogOpts:i2a}=moi(),{createConventionalRecommendedBumpOpts:s2a}=_oi();async function o2a(){let e=r2a(),t=await n2a(),r=s2a(e),n=i2a(e,t);return{parserOpts:e,writerOpts:t,recommendedBumpOpts:r,conventionalChangelog:n}}yoi.exports=o2a});var joi=H((Rdu,Koi)=>{var c2a=1/0,l2a="[object Symbol]",u2a=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,g2a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_Ct="\\ud800-\\udfff",xoi="\\u0300-\\u036f\\ufe20-\\ufe23",Goi="\\u20d0-\\u20f0",Foi="\\u2700-\\u27bf",Zoi="a-z\\xdf-\\xf6\\xf8-\\xff",A2a="\\xac\\xb1\\xd7\\xf7",d2a="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",p2a="\\u2000-\\u206f",f2a=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Loi="A-Z\\xc0-\\xd6\\xd8-\\xde",Voi="\\ufe0e\\ufe0f",Poi=A2a+d2a+p2a+f2a,O1r="['\u2019]",I2a="["+_Ct+"]",Boi="["+Poi+"]",CCt="["+xoi+Goi+"]",Woi="\\d+",h2a="["+Foi+"]",Ooi="["+Zoi+"]",Moi="[^"+_Ct+Poi+Woi+Foi+Zoi+Loi+"]",W1r="\\ud83c[\\udffb-\\udfff]",m2a="(?:"+CCt+"|"+W1r+")",Hoi="[^"+_Ct+"]",M1r="(?:\\ud83c[\\udde6-\\uddff]){2}",H1r="[\\ud800-\\udbff][\\udc00-\\udfff]",ATe="["+Loi+"]",Yoi="\\u200d",woi="(?:"+Ooi+"|"+Moi+")",C2a="(?:"+ATe+"|"+Moi+")",Toi="(?:"+O1r+"(?:d|ll|m|re|s|t|ve))?",Roi="(?:"+O1r+"(?:D|LL|M|RE|S|T|VE))?",Qoi=m2a+"?",Xoi="["+Voi+"]?",_2a="(?:"+Yoi+"(?:"+[Hoi,M1r,H1r].join("|")+")"+Xoi+Qoi+")*",Joi=Xoi+Qoi+_2a,y2a="(?:"+[h2a,M1r,H1r].join("|")+")"+Joi,b2a="(?:"+[Hoi+CCt+"?",CCt,M1r,H1r,I2a].join("|")+")",E2a=RegExp(O1r,"g"),S2a=RegExp(CCt,"g"),v2a=RegExp(W1r+"(?="+W1r+")|"+b2a+Joi,"g"),B2a=RegExp([ATe+"?"+Ooi+"+"+Toi+"(?="+[Boi,ATe,"$"].join("|")+")",C2a+"+"+Roi+"(?="+[Boi,ATe+woi,"$"].join("|")+")",ATe+"?"+woi+"+"+Toi,ATe+"+"+Roi,Woi,y2a].join("|"),"g"),w2a=RegExp("["+Yoi+_Ct+xoi+Goi+Voi+"]"),T2a=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,R2a={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},N2a=typeof global=="object"&&global&&global.Object===Object&&global,D2a=typeof self=="object"&&self&&self.Object===Object&&self,k2a=N2a||D2a||Function("return this")();function x2a(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:Y2a(e,t,r)}function J2a(e){return function(t){t=yCt(t);var r=Uoi(t)?P2a(t):void 0,n=r?r[0]:t.charAt(0),a=r?X2a(r,1).join(""):t.slice(1);return n[e]()+a}}function U2a(e){return function(t){return x2a(tSa($2a(t).replace(E2a,"")),e,"")}}function K2a(e){return!!e&&typeof e=="object"}function j2a(e){return typeof e=="symbol"||K2a(e)&&H2a.call(e)==l2a}function yCt(e){return e==null?"":Q2a(e)}var z2a=U2a(function(e,t,r){return t=t.toLowerCase(),e+(r?q2a(t):t)});function q2a(e){return eSa(yCt(e).toLowerCase())}function $2a(e){return e=yCt(e),e&&e.replace(g2a,L2a).replace(S2a,"")}var eSa=J2a("toUpperCase");function tSa(e,t,r){return e=yCt(e),t=r?void 0:t,t===void 0?V2a(e)?O2a(e):F2a(e):e.match(t)||[]}Koi.exports=z2a});var Cai=H((Ndu,mai)=>{var rSa=1/0,nSa="[object Symbol]",iSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,sSa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iai="\\ud800-\\udfff",oSa="\\u0300-\\u036f\\ufe20-\\ufe23",aSa="\\u20d0-\\u20f0",sai="\\u2700-\\u27bf",oai="a-z\\xdf-\\xf6\\xf8-\\xff",cSa="\\xac\\xb1\\xd7\\xf7",lSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",uSa="\\u2000-\\u206f",gSa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aai="A-Z\\xc0-\\xd6\\xd8-\\xde",ASa="\\ufe0e\\ufe0f",cai=cSa+lSa+uSa+gSa,Y1r="['\u2019]",zoi="["+cai+"]",lai="["+oSa+aSa+"]",uai="\\d+",dSa="["+sai+"]",gai="["+oai+"]",Aai="[^"+iai+cai+uai+sai+oai+aai+"]",pSa="\\ud83c[\\udffb-\\udfff]",fSa="(?:"+lai+"|"+pSa+")",ISa="[^"+iai+"]",dai="(?:\\ud83c[\\udde6-\\uddff]){2}",pai="[\\ud800-\\udbff][\\udc00-\\udfff]",dTe="["+aai+"]",hSa="\\u200d",qoi="(?:"+gai+"|"+Aai+")",mSa="(?:"+dTe+"|"+Aai+")",$oi="(?:"+Y1r+"(?:d|ll|m|re|s|t|ve))?",eai="(?:"+Y1r+"(?:D|LL|M|RE|S|T|VE))?",fai=fSa+"?",Iai="["+ASa+"]?",CSa="(?:"+hSa+"(?:"+[ISa,dai,pai].join("|")+")"+Iai+fai+")*",_Sa=Iai+fai+CSa,ySa="(?:"+[dSa,dai,pai].join("|")+")"+_Sa,bSa=RegExp(Y1r,"g"),ESa=RegExp(lai,"g"),SSa=RegExp([dTe+"?"+gai+"+"+$oi+"(?="+[zoi,dTe,"$"].join("|")+")",mSa+"+"+eai+"(?="+[zoi,dTe+qoi,"$"].join("|")+")",dTe+"?"+qoi+"+"+$oi,dTe+"+"+eai,uai,ySa].join("|"),"g"),vSa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BSa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wSa=typeof global=="object"&&global&&global.Object===Object&&global,TSa=typeof self=="object"&&self&&self.Object===Object&&self,RSa=wSa||TSa||Function("return this")();function NSa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var QSa=1/0,XSa="[object Symbol]",JSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,USa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wai="\\ud800-\\udfff",KSa="\\u0300-\\u036f\\ufe20-\\ufe23",jSa="\\u20d0-\\u20f0",Tai="\\u2700-\\u27bf",Rai="a-z\\xdf-\\xf6\\xf8-\\xff",zSa="\\xac\\xb1\\xd7\\xf7",qSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",$Sa="\\u2000-\\u206f",eva=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Nai="A-Z\\xc0-\\xd6\\xd8-\\xde",tva="\\ufe0e\\ufe0f",Dai=zSa+qSa+$Sa+eva,Q1r="['\u2019]",_ai="["+Dai+"]",kai="["+KSa+jSa+"]",xai="\\d+",rva="["+Tai+"]",Gai="["+Rai+"]",Fai="[^"+wai+Dai+xai+Tai+Rai+Nai+"]",nva="\\ud83c[\\udffb-\\udfff]",iva="(?:"+kai+"|"+nva+")",sva="[^"+wai+"]",Zai="(?:\\ud83c[\\udde6-\\uddff]){2}",Lai="[\\ud800-\\udbff][\\udc00-\\udfff]",pTe="["+Nai+"]",ova="\\u200d",yai="(?:"+Gai+"|"+Fai+")",ava="(?:"+pTe+"|"+Fai+")",bai="(?:"+Q1r+"(?:d|ll|m|re|s|t|ve))?",Eai="(?:"+Q1r+"(?:D|LL|M|RE|S|T|VE))?",Vai=iva+"?",Pai="["+tva+"]?",cva="(?:"+ova+"(?:"+[sva,Zai,Lai].join("|")+")"+Pai+Vai+")*",lva=Pai+Vai+cva,uva="(?:"+[rva,Zai,Lai].join("|")+")"+lva,gva=RegExp(Q1r,"g"),Ava=RegExp(kai,"g"),dva=RegExp([pTe+"?"+Gai+"+"+bai+"(?="+[_ai,pTe,"$"].join("|")+")",ava+"+"+Eai+"(?="+[_ai,pTe+yai,"$"].join("|")+")",pTe+"?"+yai+"+"+bai,pTe+"+"+Eai,xai,uva].join("|"),"g"),pva=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fva={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},Iva=typeof global=="object"&&global&&global.Object===Object&&global,hva=typeof self=="object"&&self&&self.Object===Object&&self,mva=Iva||hva||Function("return this")();function Cva(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var Gva=1/0,Fva="[object Symbol]",U1r="\\ud800-\\udfff",Xai="\\u0300-\\u036f\\ufe20-\\ufe23",Jai="\\u20d0-\\u20f0",Uai="\\ufe0e\\ufe0f",Zva="["+U1r+"]",X1r="["+Xai+Jai+"]",J1r="\\ud83c[\\udffb-\\udfff]",Lva="(?:"+X1r+"|"+J1r+")",Kai="[^"+U1r+"]",jai="(?:\\ud83c[\\udde6-\\uddff]){2}",zai="[\\ud800-\\udbff][\\udc00-\\udfff]",qai="\\u200d",$ai=Lva+"?",eci="["+Uai+"]?",Vva="(?:"+qai+"(?:"+[Kai,jai,zai].join("|")+")"+eci+$ai+")*",Pva=eci+$ai+Vva,Wva="(?:"+[Kai+X1r+"?",X1r,jai,zai,Zva].join("|")+")",Ova=RegExp(J1r+"(?="+J1r+")|"+Wva+Pva,"g"),Mva=RegExp("["+qai+U1r+Xai+Jai+Uai+"]"),Hva=typeof global=="object"&&global&&global.Object===Object&&global,Yva=typeof self=="object"&&self&&self.Object===Object&&self,Qva=Hva||Yva||Function("return this")();function Xva(e){return e.split("")}function tci(e){return Mva.test(e)}function Jva(e){return tci(e)?Uva(e):Xva(e)}function Uva(e){return e.match(Ova)||[]}var Kva=Object.prototype,jva=Kva.toString,Hai=Qva.Symbol,Yai=Hai?Hai.prototype:void 0,Qai=Yai?Yai.toString:void 0;function zva(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:zva(e,t,r)}function eBa(e){return function(t){t=nBa(t);var r=tci(t)?Jva(t):void 0,n=r?r[0]:t.charAt(0),a=r?$va(r,1).join(""):t.slice(1);return n[e]()+a}}function tBa(e){return!!e&&typeof e=="object"}function rBa(e){return typeof e=="symbol"||tBa(e)&&jva.call(e)==Fva}function nBa(e){return e==null?"":qva(e)}var iBa=eBa("toUpperCase");rci.exports=iBa});var Tci=H((xdu,wci)=>{var sBa=1/0,oBa="[object Symbol]",aBa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,cBa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ECt="\\ud800-\\udfff",gci="\\u0300-\\u036f\\ufe20-\\ufe23",Aci="\\u20d0-\\u20f0",dci="\\u2700-\\u27bf",pci="a-z\\xdf-\\xf6\\xf8-\\xff",lBa="\\xac\\xb1\\xd7\\xf7",uBa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",gBa="\\u2000-\\u206f",ABa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",fci="A-Z\\xc0-\\xd6\\xd8-\\xde",Ici="\\ufe0e\\ufe0f",hci=lBa+uBa+gBa+ABa,j1r="['\u2019]",dBa="["+ECt+"]",ici="["+hci+"]",bCt="["+gci+Aci+"]",mci="\\d+",pBa="["+dci+"]",Cci="["+pci+"]",_ci="[^"+ECt+hci+mci+dci+pci+fci+"]",K1r="\\ud83c[\\udffb-\\udfff]",fBa="(?:"+bCt+"|"+K1r+")",yci="[^"+ECt+"]",z1r="(?:\\ud83c[\\udde6-\\uddff]){2}",q1r="[\\ud800-\\udbff][\\udc00-\\udfff]",fTe="["+fci+"]",bci="\\u200d",sci="(?:"+Cci+"|"+_ci+")",IBa="(?:"+fTe+"|"+_ci+")",oci="(?:"+j1r+"(?:d|ll|m|re|s|t|ve))?",aci="(?:"+j1r+"(?:D|LL|M|RE|S|T|VE))?",Eci=fBa+"?",Sci="["+Ici+"]?",hBa="(?:"+bci+"(?:"+[yci,z1r,q1r].join("|")+")"+Sci+Eci+")*",vci=Sci+Eci+hBa,mBa="(?:"+[pBa,z1r,q1r].join("|")+")"+vci,CBa="(?:"+[yci+bCt+"?",bCt,z1r,q1r,dBa].join("|")+")",_Ba=RegExp(j1r,"g"),yBa=RegExp(bCt,"g"),bBa=RegExp(K1r+"(?="+K1r+")|"+CBa+vci,"g"),EBa=RegExp([fTe+"?"+Cci+"+"+oci+"(?="+[ici,fTe,"$"].join("|")+")",IBa+"+"+aci+"(?="+[ici,fTe+sci,"$"].join("|")+")",fTe+"?"+sci+"+"+oci,fTe+"+"+aci,mci,mBa].join("|"),"g"),SBa=RegExp("["+bci+ECt+gci+Aci+Ici+"]"),vBa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BBa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wBa=typeof global=="object"&&global&&global.Object===Object&&global,TBa=typeof self=="object"&&self&&self.Object===Object&&self,RBa=wBa||TBa||Function("return this")();function NBa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:OBa(e,t,r)}function YBa(e){return function(t){t=$1r(t);var r=Bci(t)?ZBa(t):void 0,n=r?r[0]:t.charAt(0),a=r?HBa(r,1).join(""):t.slice(1);return n[e]()+a}}function QBa(e){return function(t){return NBa(zBa(UBa(t).replace(_Ba,"")),e,"")}}function XBa(e){return!!e&&typeof e=="object"}function JBa(e){return typeof e=="symbol"||XBa(e)&&WBa.call(e)==oBa}function $1r(e){return e==null?"":MBa(e)}function UBa(e){return e=$1r(e),e&&e.replace(cBa,GBa).replace(yBa,"")}var KBa=QBa(function(e,t,r){return e+(r?" ":"")+jBa(t)}),jBa=YBa("toUpperCase");function zBa(e,t,r){return e=$1r(e),t=r?void 0:t,t===void 0?FBa(e)?VBa(e):kBa(e):e.match(t)||[]}wci.exports=KBa});var yli=H(Rhe=>{"use strict";Object.defineProperty(Rhe,"__esModule",{value:!0});Rhe.Application=Rhe.MinistoreContext=void 0;var nwa=(Pa(),vi(Va)),iwa=Al(),DQe=nwa.__importStar(Ec()),swa=wt("readline");Rhe.MinistoreContext=DQe.default.createContext(null);var owa=({children:e})=>{let{stdin:t,setRawMode:r}=(0,iwa.useStdin)();(0,DQe.useEffect)(()=>{r&&r(!0),t&&(0,swa.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,DQe.useState)(new Map),o=(0,DQe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(new Map([...n,[l,A]]))}),[n,a]);return DQe.default.createElement(Rhe.MinistoreContext.Provider,{value:o,children:e})};Rhe.Application=owa});var Eli=H(l2r=>{"use strict";Object.defineProperty(l2r,"__esModule",{value:!0});l2r.useKeypress=cwa;var awa=Al(),bli=Ec();function cwa({active:e},t,r){let{stdin:n}=(0,awa.useStdin)(),a=(0,bli.useCallback)((o,l)=>t(o,l),r);(0,bli.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var Bli=H(u2r=>{"use strict";Object.defineProperty(u2r,"__esModule",{value:!0});u2r.renderForm=Awa;var lwa=(Pa(),vi(Va)),Sli=Al(),vli=lwa.__importDefault(Ec()),uwa=yli(),gwa=Eli();async function Awa(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,Sli.useApp)();(0,gwa.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,Sli.render)(vli.default.createElement(uwa.Application,null,vli.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var Rli=H(wCt=>{"use strict";Object.defineProperty(wCt,"__esModule",{value:!0});wCt.forceStdinTty=void 0;var wli=Tli(wt("fs")),dwa=Tli(wt("tty"));function Tli(e){return e&&e.__esModule?e:{default:e}}var pwa=function(){if(process.stdin.isTTY)return!1;var t=wli.default.constants,r=t.O_RDONLY,n=t.O_NOCTTY,a=wli.default.openSync("/dev/tty",r+n),o=new dwa.default.ReadStream(a);return Object.defineProperty(process,"stdin",{configurable:!0,enumerable:!0,get:function(){return o}}),!0};wCt.forceStdinTty=pwa});var Dli=H((UIu,Nli)=>{function fwa(e){let t=e.length-1,r=e[t];for(;r===" "||r===" ";)r=e[--t];return e.substring(0,t+1)}function Iwa(e){return e.split(` `).map(n=>fwa(n)).join(` `)}Nli.exports=function(e,t){if(t=t||{},e==null)return e;var r=t.width||50,n=typeof t.indent=="string"?t.indent:" ",a=t.newline||` `+n,o=typeof t.escape=="function"?t.escape:hwa,l=".{1,"+r+"}";t.cut!==!0&&(l+="([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)");var A=new RegExp(l,"g"),f=e.match(A)||[],I=n+f.map(function(C){return C.slice(-1)===` -`&&(C=C.slice(0,C.length-1)),o(C)}).join(a);return t.trim===!0&&(I=Iwa(I)),I};function hwa(e){return e}});var xli=H((UIu,kli)=>{"use strict";var mwa="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";kli.exports=mwa});var Lli=H((KIu,Zli)=>{"use strict";var Cwa=xli();function Gli(){}function Fli(){}Fli.resetWarningCache=Gli;Zli.exports=function(){function e(n,a,o,l,A,f){if(f!==Cwa){var I=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw I.name="Invariant Violation",I}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Fli,resetWarningCache:Gli};return r.PropTypes=r,r}});var mTe=H((qIu,Vli)=>{Vli.exports=Lli()();var jIu,zIu});var b2r=H((kQe,_Te)=>{var _wa=200,y2r="__lodash_hash_undefined__",FCt=1,jli=2,zli=9007199254740991,TCt="[object Arguments]",p2r="[object Array]",ywa="[object AsyncFunction]",qli="[object Boolean]",$li="[object Date]",eui="[object Error]",tui="[object Function]",bwa="[object GeneratorFunction]",RCt="[object Map]",rui="[object Number]",Ewa="[object Null]",CTe="[object Object]",Pli="[object Promise]",Swa="[object Proxy]",nui="[object RegExp]",NCt="[object Set]",iui="[object String]",vwa="[object Symbol]",Bwa="[object Undefined]",f2r="[object WeakMap]",sui="[object ArrayBuffer]",DCt="[object DataView]",wwa="[object Float32Array]",Twa="[object Float64Array]",Rwa="[object Int8Array]",Nwa="[object Int16Array]",Dwa="[object Int32Array]",kwa="[object Uint8Array]",xwa="[object Uint8ClampedArray]",Gwa="[object Uint16Array]",Fwa="[object Uint32Array]",Zwa=/[\\^$.*+?()[\]{}|]/g,Lwa=/^\[object .+?Constructor\]$/,Vwa=/^(?:0|[1-9]\d*)$/,M1={};M1[wwa]=M1[Twa]=M1[Rwa]=M1[Nwa]=M1[Dwa]=M1[kwa]=M1[xwa]=M1[Gwa]=M1[Fwa]=!0;M1[TCt]=M1[p2r]=M1[sui]=M1[qli]=M1[DCt]=M1[$li]=M1[eui]=M1[tui]=M1[RCt]=M1[rui]=M1[CTe]=M1[nui]=M1[NCt]=M1[iui]=M1[f2r]=!1;var oui=typeof global=="object"&&global&&global.Object===Object&&global,Pwa=typeof self=="object"&&self&&self.Object===Object&&self,z$=oui||Pwa||Function("return this")(),aui=typeof kQe=="object"&&kQe&&!kQe.nodeType&&kQe,Wli=aui&&typeof _Te=="object"&&_Te&&!_Te.nodeType&&_Te,cui=Wli&&Wli.exports===aui,g2r=cui&&oui.process,Oli=function(){try{return g2r&&g2r.binding&&g2r.binding("util")}catch{}}(),Mli=Oli&&Oli.isTypedArray;function Wwa(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r-1}function ITa(e,t){var r=this.__data__,n=LCt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}q$.prototype.clear=ATa;q$.prototype.delete=dTa;q$.prototype.get=pTa;q$.prototype.has=fTa;q$.prototype.set=ITa;function khe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tA))return!1;var I=o.get(e);if(I&&o.get(t))return I==t;var C=-1,b=!0,E=r&jli?new xCt:void 0;for(o.set(e,t),o.set(t,e);++C-1&&e%1==0&&e-1&&e%1==0&&e<=zli}function hui(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function FQe(e){return e!=null&&typeof e=="object"}var mui=Mli?Ywa(Mli):xTa;function JTa(e){return QTa(e)?RTa(e):GTa(e)}function UTa(){return[]}function KTa(){return!1}_Te.exports=XTa});var _ui=H(($Iu,Cui)=>{"use strict";Cui.exports=(e,t)=>{if(!Array.isArray(e))throw new TypeError(`Expected an array, got ${typeof e}`);let r=e.slice(),n=typeof t=="number"?t:0;return r.splice(-n%r.length).concat(r)}});var E2r=H((ehu,bui)=>{"use strict";var jTa=jfr(),yui=process.platform,YX={tick:"\u2714",cross:"\u2716",star:"\u2605",square:"\u2587",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",play:"\u25B6",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",circleQuestionMark:"?\u20DD",bullet:"\u25CF",dot:"\u2024",line:"\u2500",ellipsis:"\u2026",pointer:"\u276F",pointerSmall:"\u203A",info:"\u2139",warning:"\u26A0",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",heart:"\u2665",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",questionMarkPrefix:"?\u20DD",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneSeventh:"\u2150",oneEighth:"\u215B",oneNinth:"\u2151",oneTenth:"\u2152",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E"},zTa={tick:"\u221A",cross:"\xD7",star:"*",square:"\u2588",squareSmall:"[ ]",squareSmallFilled:"[\u2588]",play:"\u25BA",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"\u2500",ellipsis:"...",pointer:">",pointerSmall:"\xBB",info:"i",warning:"\u203C",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",heart:YX.heart,arrowUp:YX.arrowUp,arrowDown:YX.arrowDown,arrowLeft:YX.arrowLeft,arrowRight:YX.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",questionMarkPrefix:"\uFF1F",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};yui==="linux"&&(YX.questionMarkPrefix="?");var PCt=yui==="win32"?zTa:YX,qTa=e=>(PCt===YX||Object.keys(YX).forEach(t=>{YX[t]!==PCt[t]&&(e=e.replace(new RegExp(jTa(YX[t]),"g"),PCt[t]))}),e);bui.exports=Object.assign(qTa,PCt)});var vui=H(WCt=>{"use strict";Object.defineProperty(WCt,"__esModule",{value:!0});WCt.default=void 0;var Eui=S2r(Ec()),$Ta=S2r(mTe()),Sui=Al(),eRa=S2r(E2r());function S2r(e){return e&&e.__esModule?e:{default:e}}var v2r=({isHighlighted:e})=>Eui.default.createElement(Sui.Box,{marginRight:1},Eui.default.createElement(Sui.Text,{color:e?"blue":void 0},e?eRa.default.pointer:" "));v2r.propTypes={isHighlighted:$Ta.default.bool};v2r.defaultProps={isHighlighted:!1};var tRa=v2r;WCt.default=tRa});var Tui=H(OCt=>{"use strict";Object.defineProperty(OCt,"__esModule",{value:!0});OCt.default=void 0;var rRa=wui(Ec()),Bui=wui(mTe()),nRa=Al();function wui(e){return e&&e.__esModule?e:{default:e}}var B2r=({isHighlighted:e,label:t})=>rRa.default.createElement(nRa.Text,{color:e?"blue":void 0},t);B2r.propTypes={isHighlighted:Bui.default.bool,label:Bui.default.string.isRequired};B2r.defaultProps={isHighlighted:!1};var iRa=B2r;OCt.default=iRa});var kui=H(MCt=>{"use strict";Object.defineProperty(MCt,"__esModule",{value:!0});MCt.default=void 0;var Rui=w2r(Ec()),sRa=w2r(mTe()),Nui=Al(),Dui=w2r(E2r());function w2r(e){return e&&e.__esModule?e:{default:e}}var T2r=({isSelected:e})=>Rui.default.createElement(Nui.Box,{marginRight:1},Rui.default.createElement(Nui.Text,{color:"green"},e?Dui.default.circleFilled:Dui.default.circle));T2r.propTypes={isSelected:sRa.default.bool};T2r.defaultProps={isSelected:!1};var oRa=T2r;MCt.default=oRa});var Lui=H(Fhe=>{"use strict";Object.defineProperty(Fhe,"__esModule",{value:!0});Object.defineProperty(Fhe,"Indicator",{enumerable:!0,get:function(){return xui.default}});Object.defineProperty(Fhe,"Item",{enumerable:!0,get:function(){return Gui.default}});Object.defineProperty(Fhe,"CheckBox",{enumerable:!0,get:function(){return Fui.default}});Fhe.default=void 0;var Ghe=cRa(Ec()),YZ=bTe(mTe()),aRa=bTe(b2r()),HCt=bTe(_ui()),R2r=Al(),xui=bTe(vui()),Gui=bTe(Tui()),Fui=bTe(kui());function bTe(e){return e&&e.__esModule?e:{default:e}}function Zui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Zui=function(){return e},e}function cRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Zui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}function N2r(){return N2r=Object.assign||function(e){for(var t=1;t{let{items:n,focus:a,onHighlight:o,onSubmit:l}=this.props,{rotateIndex:A,highlightedIndex:f}=this.state,I=this.props.selected||this.state.selected,{limit:C,hasLimit:b}=this;if(a===!1)return;let E=String(r);if(E===lRa||E==="k"){let N=(b?C:n.length)-1,B=f===0,F=b?f:N,Q=B?A+1:A,X=B?F:f-1;this.setState({rotateIndex:Q,highlightedIndex:X});let ae=b?(0,HCt.default)(n,Q).slice(0,C):n;o(ae[X])}if(E===uRa||E==="j"){let N=f===(b?C:n.length)-1,B=b?f:0,F=N?A-1:A,Q=N?B:f+1;this.setState({rotateIndex:F,highlightedIndex:Q});let X=b?(0,HCt.default)(n,F).slice(0,C):n;o(X[Q])}if(E===ARa){let B=(b?(0,HCt.default)(n,A).slice(0,C):n)[f];this.setSelectedState(this.selectItem(B))}E===gRa&&l(I)})}render(){let{items:t,indicatorComponent:r,itemComponent:n,checkboxComponent:a}=this.props,{rotateIndex:o,highlightedIndex:l}=this.state,{limit:A,hasLimit:f}=this,I=f?(0,HCt.default)(t,o).slice(0,A):t;return Ghe.default.createElement(R2r.Box,{flexDirection:"column"},I.map((C,b)=>{let E=C.key||C.value,N=b===l,B=this.isSelected(C.value);return Ghe.default.createElement(R2r.Box,{key:E},Ghe.default.createElement(r,{isHighlighted:N}),Ghe.default.createElement(a,{isSelected:B}),Ghe.default.createElement(n,{...C,isHighlighted:N}))}))}componentDidMount(){let{stdin:t,setRawMode:r}=this.props;r(!0),t.on("data",this.handleInput)}componentWillUnmount(){let{stdin:t,setRawMode:r}=this.props;t.removeListener("data",this.handleInput),r(!1)}componentDidUpdate(t){(0,aRa.default)(t.items,this.props.items)||this.setState({rotateIndex:0,highlightedIndex:0})}isSelected(t){return(this.props.selected||this.state.selected).map(({value:n})=>n).includes(t)}selectItem(t){let{onSelect:r,onUnselect:n}=this.props,a=this.props.selected||this.state.selected;return this.isSelected(t.value)?(n(t),a.filter(({value:o})=>o!==t.value)):(r(t),[...a,t])}setSelectedState(t){this.setState({selected:t})}get hasLimit(){let{limit:t,items:r}=this.props;return typeof t=="number"&&r.length>t}get limit(){let{limit:t,items:r}=this.props;return this.hasLimit?Math.min(t,r.length):r.length}};YCt(LQe,"propTypes",{items:YZ.default.array,selected:YZ.default.array,defaultSelected:YZ.default.array,focus:YZ.default.bool,initialIndex:YZ.default.number,indicatorComponent:YZ.default.func,checkboxComponent:YZ.default.func,itemComponent:YZ.default.func,limit:YZ.default.number,onSelect:YZ.default.func,onUnselect:YZ.default.func,onSubmit:YZ.default.func,onHighlight:YZ.default.func,stdin:YZ.default.any.isRequired,setRawMode:YZ.default.func.isRequired});YCt(LQe,"defaultProps",{items:[],selected:void 0,defaultSelected:[],focus:!0,initialIndex:0,indicatorComponent:xui.default,checkboxComponent:Fui.default,itemComponent:Gui.default,limit:null,onSelect(){},onUnselect(){},onSubmit(){},onHighlight(){}});var dRa=e=>{let{stdin:t,setRawMode:r}=(0,R2r.useStdin)();return Ghe.default.createElement(LQe,N2r({},e,{stdin:t,setRawMode:r}))};Fhe.default=dRa});var Pui=H(ETe=>{"use strict";Object.defineProperty(ETe,"__esModule",{value:!0});Object.defineProperty(ETe,"default",{enumerable:!0,get:function(){return QCt.default}});Object.defineProperty(ETe,"Item",{enumerable:!0,get:function(){return QCt.Item}});Object.defineProperty(ETe,"Indicator",{enumerable:!0,get:function(){return QCt.Indicator}});Object.defineProperty(ETe,"CheckBox",{enumerable:!0,get:function(){return QCt.CheckBox}});var QCt=pRa(Lui());function Vui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Vui=function(){return e},e}function pRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Vui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}});var X2r=H((pmu,Igi)=>{var xTe=1e3,GTe=xTe*60,FTe=GTe*60,Zhe=FTe*24,NRa=Zhe*7,DRa=Zhe*365.25;Igi.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return kRa(e);if(r==="number"&&isFinite(e))return t.long?GRa(e):xRa(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function kRa(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*DRa;case"weeks":case"week":case"w":return r*NRa;case"days":case"day":case"d":return r*Zhe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*FTe;case"minutes":case"minute":case"mins":case"min":case"m":return r*GTe;case"seconds":case"second":case"secs":case"sec":case"s":return r*xTe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function xRa(e){var t=Math.abs(e);return t>=Zhe?Math.round(e/Zhe)+"d":t>=FTe?Math.round(e/FTe)+"h":t>=GTe?Math.round(e/GTe)+"m":t>=xTe?Math.round(e/xTe)+"s":e+"ms"}function GRa(e){var t=Math.abs(e);return t>=Zhe?t_t(e,t,Zhe,"day"):t>=FTe?t_t(e,t,FTe,"hour"):t>=GTe?t_t(e,t,GTe,"minute"):t>=xTe?t_t(e,t,xTe,"second"):e+" ms"}function t_t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var J2r=H((fmu,hgi)=>{function FRa(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{lO.formatArgs=LRa;lO.save=VRa;lO.load=PRa;lO.useColors=ZRa;lO.storage=WRa();lO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();lO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ZRa(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function LRa(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+r_t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}lO.log=console.debug||console.log||(()=>{});function VRa(e){try{e?lO.storage.setItem("debug",e):lO.storage.removeItem("debug")}catch{}}function PRa(){let e;try{e=lO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function WRa(){try{return localStorage}catch{}}r_t.exports=J2r()(lO);var{formatters:ORa}=r_t.exports;ORa.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _gi=H((rD,i_t)=>{var MRa=wt("tty"),n_t=wt("util");rD.init=KRa;rD.log=XRa;rD.formatArgs=YRa;rD.save=JRa;rD.load=URa;rD.useColors=HRa;rD.destroy=n_t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");rD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(rD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}rD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function HRa(){return"colors"in rD.inspectOpts?!!rD.inspectOpts.colors:MRa.isatty(process.stderr.fd)}function YRa(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +`&&(C=C.slice(0,C.length-1)),o(C)}).join(a);return t.trim===!0&&(I=Iwa(I)),I};function hwa(e){return e}});var xli=H((KIu,kli)=>{"use strict";var mwa="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";kli.exports=mwa});var Lli=H((jIu,Zli)=>{"use strict";var Cwa=xli();function Gli(){}function Fli(){}Fli.resetWarningCache=Gli;Zli.exports=function(){function e(n,a,o,l,A,f){if(f!==Cwa){var I=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw I.name="Invariant Violation",I}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Fli,resetWarningCache:Gli};return r.PropTypes=r,r}});var mTe=H(($Iu,Vli)=>{Vli.exports=Lli()();var zIu,qIu});var b2r=H((kQe,_Te)=>{var _wa=200,y2r="__lodash_hash_undefined__",FCt=1,jli=2,zli=9007199254740991,TCt="[object Arguments]",p2r="[object Array]",ywa="[object AsyncFunction]",qli="[object Boolean]",$li="[object Date]",eui="[object Error]",tui="[object Function]",bwa="[object GeneratorFunction]",RCt="[object Map]",rui="[object Number]",Ewa="[object Null]",CTe="[object Object]",Pli="[object Promise]",Swa="[object Proxy]",nui="[object RegExp]",NCt="[object Set]",iui="[object String]",vwa="[object Symbol]",Bwa="[object Undefined]",f2r="[object WeakMap]",sui="[object ArrayBuffer]",DCt="[object DataView]",wwa="[object Float32Array]",Twa="[object Float64Array]",Rwa="[object Int8Array]",Nwa="[object Int16Array]",Dwa="[object Int32Array]",kwa="[object Uint8Array]",xwa="[object Uint8ClampedArray]",Gwa="[object Uint16Array]",Fwa="[object Uint32Array]",Zwa=/[\\^$.*+?()[\]{}|]/g,Lwa=/^\[object .+?Constructor\]$/,Vwa=/^(?:0|[1-9]\d*)$/,M1={};M1[wwa]=M1[Twa]=M1[Rwa]=M1[Nwa]=M1[Dwa]=M1[kwa]=M1[xwa]=M1[Gwa]=M1[Fwa]=!0;M1[TCt]=M1[p2r]=M1[sui]=M1[qli]=M1[DCt]=M1[$li]=M1[eui]=M1[tui]=M1[RCt]=M1[rui]=M1[CTe]=M1[nui]=M1[NCt]=M1[iui]=M1[f2r]=!1;var oui=typeof global=="object"&&global&&global.Object===Object&&global,Pwa=typeof self=="object"&&self&&self.Object===Object&&self,z$=oui||Pwa||Function("return this")(),aui=typeof kQe=="object"&&kQe&&!kQe.nodeType&&kQe,Wli=aui&&typeof _Te=="object"&&_Te&&!_Te.nodeType&&_Te,cui=Wli&&Wli.exports===aui,g2r=cui&&oui.process,Oli=function(){try{return g2r&&g2r.binding&&g2r.binding("util")}catch{}}(),Mli=Oli&&Oli.isTypedArray;function Wwa(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r-1}function ITa(e,t){var r=this.__data__,n=LCt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}q$.prototype.clear=ATa;q$.prototype.delete=dTa;q$.prototype.get=pTa;q$.prototype.has=fTa;q$.prototype.set=ITa;function khe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tA))return!1;var I=o.get(e);if(I&&o.get(t))return I==t;var C=-1,b=!0,E=r&jli?new xCt:void 0;for(o.set(e,t),o.set(t,e);++C-1&&e%1==0&&e-1&&e%1==0&&e<=zli}function hui(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function FQe(e){return e!=null&&typeof e=="object"}var mui=Mli?Ywa(Mli):xTa;function JTa(e){return QTa(e)?RTa(e):GTa(e)}function UTa(){return[]}function KTa(){return!1}_Te.exports=XTa});var _ui=H((ehu,Cui)=>{"use strict";Cui.exports=(e,t)=>{if(!Array.isArray(e))throw new TypeError(`Expected an array, got ${typeof e}`);let r=e.slice(),n=typeof t=="number"?t:0;return r.splice(-n%r.length).concat(r)}});var E2r=H((thu,bui)=>{"use strict";var jTa=jfr(),yui=process.platform,YX={tick:"\u2714",cross:"\u2716",star:"\u2605",square:"\u2587",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",play:"\u25B6",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",circleQuestionMark:"?\u20DD",bullet:"\u25CF",dot:"\u2024",line:"\u2500",ellipsis:"\u2026",pointer:"\u276F",pointerSmall:"\u203A",info:"\u2139",warning:"\u26A0",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",heart:"\u2665",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",questionMarkPrefix:"?\u20DD",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneSeventh:"\u2150",oneEighth:"\u215B",oneNinth:"\u2151",oneTenth:"\u2152",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E"},zTa={tick:"\u221A",cross:"\xD7",star:"*",square:"\u2588",squareSmall:"[ ]",squareSmallFilled:"[\u2588]",play:"\u25BA",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"\u2500",ellipsis:"...",pointer:">",pointerSmall:"\xBB",info:"i",warning:"\u203C",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",heart:YX.heart,arrowUp:YX.arrowUp,arrowDown:YX.arrowDown,arrowLeft:YX.arrowLeft,arrowRight:YX.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",questionMarkPrefix:"\uFF1F",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};yui==="linux"&&(YX.questionMarkPrefix="?");var PCt=yui==="win32"?zTa:YX,qTa=e=>(PCt===YX||Object.keys(YX).forEach(t=>{YX[t]!==PCt[t]&&(e=e.replace(new RegExp(jTa(YX[t]),"g"),PCt[t]))}),e);bui.exports=Object.assign(qTa,PCt)});var vui=H(WCt=>{"use strict";Object.defineProperty(WCt,"__esModule",{value:!0});WCt.default=void 0;var Eui=S2r(Ec()),$Ta=S2r(mTe()),Sui=Al(),eRa=S2r(E2r());function S2r(e){return e&&e.__esModule?e:{default:e}}var v2r=({isHighlighted:e})=>Eui.default.createElement(Sui.Box,{marginRight:1},Eui.default.createElement(Sui.Text,{color:e?"blue":void 0},e?eRa.default.pointer:" "));v2r.propTypes={isHighlighted:$Ta.default.bool};v2r.defaultProps={isHighlighted:!1};var tRa=v2r;WCt.default=tRa});var Tui=H(OCt=>{"use strict";Object.defineProperty(OCt,"__esModule",{value:!0});OCt.default=void 0;var rRa=wui(Ec()),Bui=wui(mTe()),nRa=Al();function wui(e){return e&&e.__esModule?e:{default:e}}var B2r=({isHighlighted:e,label:t})=>rRa.default.createElement(nRa.Text,{color:e?"blue":void 0},t);B2r.propTypes={isHighlighted:Bui.default.bool,label:Bui.default.string.isRequired};B2r.defaultProps={isHighlighted:!1};var iRa=B2r;OCt.default=iRa});var kui=H(MCt=>{"use strict";Object.defineProperty(MCt,"__esModule",{value:!0});MCt.default=void 0;var Rui=w2r(Ec()),sRa=w2r(mTe()),Nui=Al(),Dui=w2r(E2r());function w2r(e){return e&&e.__esModule?e:{default:e}}var T2r=({isSelected:e})=>Rui.default.createElement(Nui.Box,{marginRight:1},Rui.default.createElement(Nui.Text,{color:"green"},e?Dui.default.circleFilled:Dui.default.circle));T2r.propTypes={isSelected:sRa.default.bool};T2r.defaultProps={isSelected:!1};var oRa=T2r;MCt.default=oRa});var Lui=H(Fhe=>{"use strict";Object.defineProperty(Fhe,"__esModule",{value:!0});Object.defineProperty(Fhe,"Indicator",{enumerable:!0,get:function(){return xui.default}});Object.defineProperty(Fhe,"Item",{enumerable:!0,get:function(){return Gui.default}});Object.defineProperty(Fhe,"CheckBox",{enumerable:!0,get:function(){return Fui.default}});Fhe.default=void 0;var Ghe=cRa(Ec()),YZ=bTe(mTe()),aRa=bTe(b2r()),HCt=bTe(_ui()),R2r=Al(),xui=bTe(vui()),Gui=bTe(Tui()),Fui=bTe(kui());function bTe(e){return e&&e.__esModule?e:{default:e}}function Zui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Zui=function(){return e},e}function cRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Zui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}function N2r(){return N2r=Object.assign||function(e){for(var t=1;t{let{items:n,focus:a,onHighlight:o,onSubmit:l}=this.props,{rotateIndex:A,highlightedIndex:f}=this.state,I=this.props.selected||this.state.selected,{limit:C,hasLimit:b}=this;if(a===!1)return;let E=String(r);if(E===lRa||E==="k"){let N=(b?C:n.length)-1,B=f===0,F=b?f:N,Q=B?A+1:A,X=B?F:f-1;this.setState({rotateIndex:Q,highlightedIndex:X});let ae=b?(0,HCt.default)(n,Q).slice(0,C):n;o(ae[X])}if(E===uRa||E==="j"){let N=f===(b?C:n.length)-1,B=b?f:0,F=N?A-1:A,Q=N?B:f+1;this.setState({rotateIndex:F,highlightedIndex:Q});let X=b?(0,HCt.default)(n,F).slice(0,C):n;o(X[Q])}if(E===ARa){let B=(b?(0,HCt.default)(n,A).slice(0,C):n)[f];this.setSelectedState(this.selectItem(B))}E===gRa&&l(I)})}render(){let{items:t,indicatorComponent:r,itemComponent:n,checkboxComponent:a}=this.props,{rotateIndex:o,highlightedIndex:l}=this.state,{limit:A,hasLimit:f}=this,I=f?(0,HCt.default)(t,o).slice(0,A):t;return Ghe.default.createElement(R2r.Box,{flexDirection:"column"},I.map((C,b)=>{let E=C.key||C.value,N=b===l,B=this.isSelected(C.value);return Ghe.default.createElement(R2r.Box,{key:E},Ghe.default.createElement(r,{isHighlighted:N}),Ghe.default.createElement(a,{isSelected:B}),Ghe.default.createElement(n,{...C,isHighlighted:N}))}))}componentDidMount(){let{stdin:t,setRawMode:r}=this.props;r(!0),t.on("data",this.handleInput)}componentWillUnmount(){let{stdin:t,setRawMode:r}=this.props;t.removeListener("data",this.handleInput),r(!1)}componentDidUpdate(t){(0,aRa.default)(t.items,this.props.items)||this.setState({rotateIndex:0,highlightedIndex:0})}isSelected(t){return(this.props.selected||this.state.selected).map(({value:n})=>n).includes(t)}selectItem(t){let{onSelect:r,onUnselect:n}=this.props,a=this.props.selected||this.state.selected;return this.isSelected(t.value)?(n(t),a.filter(({value:o})=>o!==t.value)):(r(t),[...a,t])}setSelectedState(t){this.setState({selected:t})}get hasLimit(){let{limit:t,items:r}=this.props;return typeof t=="number"&&r.length>t}get limit(){let{limit:t,items:r}=this.props;return this.hasLimit?Math.min(t,r.length):r.length}};YCt(LQe,"propTypes",{items:YZ.default.array,selected:YZ.default.array,defaultSelected:YZ.default.array,focus:YZ.default.bool,initialIndex:YZ.default.number,indicatorComponent:YZ.default.func,checkboxComponent:YZ.default.func,itemComponent:YZ.default.func,limit:YZ.default.number,onSelect:YZ.default.func,onUnselect:YZ.default.func,onSubmit:YZ.default.func,onHighlight:YZ.default.func,stdin:YZ.default.any.isRequired,setRawMode:YZ.default.func.isRequired});YCt(LQe,"defaultProps",{items:[],selected:void 0,defaultSelected:[],focus:!0,initialIndex:0,indicatorComponent:xui.default,checkboxComponent:Fui.default,itemComponent:Gui.default,limit:null,onSelect(){},onUnselect(){},onSubmit(){},onHighlight(){}});var dRa=e=>{let{stdin:t,setRawMode:r}=(0,R2r.useStdin)();return Ghe.default.createElement(LQe,N2r({},e,{stdin:t,setRawMode:r}))};Fhe.default=dRa});var Pui=H(ETe=>{"use strict";Object.defineProperty(ETe,"__esModule",{value:!0});Object.defineProperty(ETe,"default",{enumerable:!0,get:function(){return QCt.default}});Object.defineProperty(ETe,"Item",{enumerable:!0,get:function(){return QCt.Item}});Object.defineProperty(ETe,"Indicator",{enumerable:!0,get:function(){return QCt.Indicator}});Object.defineProperty(ETe,"CheckBox",{enumerable:!0,get:function(){return QCt.CheckBox}});var QCt=pRa(Lui());function Vui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Vui=function(){return e},e}function pRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Vui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}});var X2r=H((fmu,Igi)=>{var xTe=1e3,GTe=xTe*60,FTe=GTe*60,Zhe=FTe*24,NRa=Zhe*7,DRa=Zhe*365.25;Igi.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return kRa(e);if(r==="number"&&isFinite(e))return t.long?GRa(e):xRa(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function kRa(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*DRa;case"weeks":case"week":case"w":return r*NRa;case"days":case"day":case"d":return r*Zhe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*FTe;case"minutes":case"minute":case"mins":case"min":case"m":return r*GTe;case"seconds":case"second":case"secs":case"sec":case"s":return r*xTe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function xRa(e){var t=Math.abs(e);return t>=Zhe?Math.round(e/Zhe)+"d":t>=FTe?Math.round(e/FTe)+"h":t>=GTe?Math.round(e/GTe)+"m":t>=xTe?Math.round(e/xTe)+"s":e+"ms"}function GRa(e){var t=Math.abs(e);return t>=Zhe?t_t(e,t,Zhe,"day"):t>=FTe?t_t(e,t,FTe,"hour"):t>=GTe?t_t(e,t,GTe,"minute"):t>=xTe?t_t(e,t,xTe,"second"):e+" ms"}function t_t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var J2r=H((Imu,hgi)=>{function FRa(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{lO.formatArgs=LRa;lO.save=VRa;lO.load=PRa;lO.useColors=ZRa;lO.storage=WRa();lO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();lO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ZRa(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function LRa(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+r_t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}lO.log=console.debug||console.log||(()=>{});function VRa(e){try{e?lO.storage.setItem("debug",e):lO.storage.removeItem("debug")}catch{}}function PRa(){let e;try{e=lO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function WRa(){try{return localStorage}catch{}}r_t.exports=J2r()(lO);var{formatters:ORa}=r_t.exports;ORa.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _gi=H((rD,i_t)=>{var MRa=wt("tty"),n_t=wt("util");rD.init=KRa;rD.log=XRa;rD.formatArgs=YRa;rD.save=JRa;rD.load=URa;rD.useColors=HRa;rD.destroy=n_t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");rD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(rD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}rD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function HRa(){return"colors"in rD.inspectOpts?!!rD.inspectOpts.colors:MRa.isatty(process.stderr.fd)}function YRa(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` `+o),e.push(a+"m+"+i_t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=QRa()+t+" "+e[0]}function QRa(){return rD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function XRa(...e){return process.stderr.write(n_t.formatWithOptions(rD.inspectOpts,...e)+` `)}function JRa(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function URa(){return process.env.DEBUG}function KRa(e){e.inspectOpts={};let t=Object.keys(rD.inspectOpts);for(let r=0;rt.trim()).join(" ")};Cgi.O=function(e){return this.inspectOpts.colors=this.useColors,n_t.inspect(e,this.inspectOpts)}});var uT=H((Imu,U2r)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?U2r.exports=mgi():U2r.exports=_gi()});var Egi=H((Cmu,K2r)=>{"use strict";var $Ra=Object.prototype.hasOwnProperty,XZ="~";function OQe(){}Object.create&&(OQe.prototype=Object.create(null),new OQe().__proto__||(XZ=!1));function eNa(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function bgi(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new eNa(r,n||e,a),l=XZ?XZ+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s_t(e,t){--e._eventsCount===0?e._events=new OQe:delete e._events[t]}function BG(){this._events=new OQe,this._eventsCount=0}BG.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$Ra.call(r,n)&&t.push(XZ?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};BG.prototype.listeners=function(t){var r=XZ?XZ+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,l=new Array(o);a{"use strict";Ngi.exports=uNa;function ZTe(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function uNa(e){if(e=e||{},e.circles)return gNa(e);let t=new Map;if(t.set(Date,l=>new Date(l)),t.set(Map,(l,A)=>new Map(n(Array.from(l),A))),t.set(Set,(l,A)=>new Set(n(Array.from(l),A))),e.constructorHandlers)for(let l of e.constructorHandlers)t.set(l[0],l[1]);let r=null;return e.proto?o:a;function n(l,A){let f=Object.keys(l),I=new Array(f.length);for(let C=0;Cnew Date(f)),n.set(Map,(f,I)=>new Map(o(Array.from(f),I))),n.set(Set,(f,I)=>new Set(o(Array.from(f),I))),e.constructorHandlers)for(let f of e.constructorHandlers)n.set(f[0],f[1]);let a=null;return e.proto?A:l;function o(f,I){let C=Object.keys(f),b=new Array(C.length);for(let E=0;E{a_t=globalThis.window?.document!==void 0,uCu=globalThis.process?.versions?.node!==void 0,gCu=globalThis.process?.versions?.bun!==void 0,ACu=globalThis.Deno?.version?.deno!==void 0,dCu=globalThis.process?.versions?.electron!==void 0,pCu=globalThis.navigator?.userAgent?.includes("jsdom")===!0,fCu=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,ICu=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,hCu=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,mCu=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,MQe=globalThis.navigator?.userAgentData?.platform,CCu=MQe==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",_Cu=MQe==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",yCu=MQe==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",bCu=MQe==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),ECu=MQe==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var QQe={};sI(QQe,{beep:()=>LNa,clearScreen:()=>xNa,clearTerminal:()=>GNa,cursorBackward:()=>mNa,cursorDown:()=>INa,cursorForward:()=>hNa,cursorGetPosition:()=>yNa,cursorHide:()=>SNa,cursorLeft:()=>Fgi,cursorMove:()=>fNa,cursorNextLine:()=>bNa,cursorPrevLine:()=>ENa,cursorRestorePosition:()=>_Na,cursorSavePosition:()=>CNa,cursorShow:()=>vNa,cursorTo:()=>pNa,cursorUp:()=>Ggi,enterAlternativeScreen:()=>FNa,eraseDown:()=>RNa,eraseEndLine:()=>wNa,eraseLine:()=>Zgi,eraseLines:()=>BNa,eraseScreen:()=>z2r,eraseStartLine:()=>TNa,eraseUp:()=>NNa,exitAlternativeScreen:()=>ZNa,iTerm:()=>WNa,image:()=>PNa,link:()=>VNa,scrollDown:()=>kNa,scrollUp:()=>DNa});import q2r from"node:process";var m0,YQe,LTe,HQe,xgi,ANa,dNa,pNa,fNa,Ggi,INa,hNa,mNa,Fgi,CNa,_Na,yNa,bNa,ENa,SNa,vNa,BNa,wNa,TNa,Zgi,RNa,NNa,z2r,DNa,kNa,xNa,GNa,FNa,ZNa,LNa,VNa,PNa,WNa,$2r=bc(()=>{kgi();m0="\x1B[",YQe="\x1B]",LTe="\x07",HQe=";",xgi=!a_t&&q2r.env.TERM_PROGRAM==="Apple_Terminal",ANa=!a_t&&q2r.platform==="win32",dNa=a_t?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:q2r.cwd,pNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?m0+(e+1)+"G":m0+(t+1)+HQe+(e+1)+"H"},fNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=m0+-e+"D":e>0&&(r+=m0+e+"C"),t<0?r+=m0+-t+"A":t>0&&(r+=m0+t+"B"),r},Ggi=(e=1)=>m0+e+"A",INa=(e=1)=>m0+e+"B",hNa=(e=1)=>m0+e+"C",mNa=(e=1)=>m0+e+"D",Fgi=m0+"G",CNa=xgi?"\x1B7":m0+"s",_Na=xgi?"\x1B8":m0+"u",yNa=m0+"6n",bNa=m0+"E",ENa=m0+"F",SNa=m0+"?25l",vNa=m0+"?25h",BNa=e=>{let t="";for(let r=0;r[YQe,"8",HQe,HQe,t,LTe,e,YQe,"8",HQe,HQe,LTe].join(""),PNa=(e,t={})=>{let r=`${YQe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+Buffer.from(e).toString("base64")+LTe},WNa={setCwd:(e=dNa())=>`${YQe}50;CurrentDir=${e}${LTe}`,annotation(e,t={}){let r=`${YQe}1337;`,n=t.x!==void 0,a=t.y!==void 0;if((n||a)&&!(n&&a&&t.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+LTe}}});var Lgi=bc(()=>{$2r();$2r()});function eSr(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))ONa(e,t,a,r);return HNa(e,t),JNa(e,t,n),e}var ONa,MNa,HNa,YNa,QNa,XNa,JNa,Vgi=bc(()=>{ONa=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!MNa(a,o)&&n||Object.defineProperty(e,r,o)},MNa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},HNa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},YNa=(e,t)=>`/* Wrapped ${e}*/ -${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),JNa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=YNa.bind(null,n,t.toString());Object.defineProperty(a,"name",XNa);let{writable:o,enumerable:l,configurable:A}=QNa;Object.defineProperty(e,"toString",{value:a,writable:o,enumerable:l,configurable:A})}});var c_t,Pgi,Wgi,Ogi=bc(()=>{Vgi();c_t=new WeakMap,Pgi=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(c_t.set(o,++n),n===1)r=e.apply(this,l),e=void 0;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return eSr(o,e),c_t.set(o,n),o};Pgi.callCount=e=>{if(!c_t.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return c_t.get(e)};Wgi=Pgi});import l_t from"node:process";var Mgi,UNa,Hgi,Ygi=bc(()=>{Ogi();m1r();Mgi=l_t.stderr.isTTY?l_t.stderr:l_t.stdout.isTTY?l_t.stdout:void 0,UNa=Mgi?Wgi(()=>{iCt(()=>{Mgi.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},Hgi=UNa});import Qgi from"node:process";var u_t,VTe,tSr,Xgi=bc(()=>{Ygi();u_t=!1,VTe={};VTe.show=(e=Qgi.stderr)=>{e.isTTY&&(u_t=!1,e.write("\x1B[?25h"))};VTe.hide=(e=Qgi.stderr)=>{e.isTTY&&(Hgi(),u_t=!0,e.write("\x1B[?25l"))};VTe.toggle=(e,t)=>{e!==void 0&&(u_t=e),u_t?VTe.show(t):VTe.hide(t)};tSr=VTe});function Jgi(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function Ugi(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Kgi(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var jgi=bc(()=>{});function KNa(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function g_t(e,{ambiguousAsWide:t=!1}={}){return KNa(e),Ugi(e)||Kgi(e)||t&&Jgi(e)?2:1}var rSr=bc(()=>{jgi()});var qgi=H((HCu,zgi)=>{zgi.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function MM(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=t;if(n||(e=K$(e)),e.length===0)return 0;let a=0,o={ambiguousAsWide:!r};for(let{segment:l}of jNa.segment(e)){let A=l.codePointAt(0);if(!(A<=31||A>=127&&A<=159)&&!(A>=8203&&A<=8207||A===65279)&&!(A>=768&&A<=879||A>=6832&&A<=6911||A>=7616&&A<=7679||A>=8400&&A<=8447||A>=65056&&A<=65071)&&!(A>=55296&&A<=57343)&&!(A>=65024&&A<=65039)&&!zNa.test(l)){if((0,$gi.default)().test(l)){a+=2;continue}a+=g_t(A,o)}}return a}var $gi,jNa,zNa,nSr=bc(()=>{AQe();rSr();$gi=Nt(qgi(),1),jNa=new Intl.Segmenter,zNa=/^\p{Default_Ignorable_Code_Point}$/u});function eDa(){let e=new Map;for(let[t,r]of Object.entries(T2)){for(let[n,a]of Object.entries(r))T2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=T2[n],e.set(a[0],a[1]);Object.defineProperty(T2,t,{value:r,enumerable:!1})}return Object.defineProperty(T2,"codes",{value:e,enumerable:!1}),T2.color.close="\x1B[39m",T2.bgColor.close="\x1B[49m",T2.color.ansi=eAi(),T2.color.ansi256=tAi(),T2.color.ansi16m=rAi(),T2.bgColor.ansi=eAi(10),T2.bgColor.ansi256=tAi(10),T2.bgColor.ansi16m=rAi(10),Object.defineProperties(T2,{rgbToAnsi256:{value:(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>T2.rgbToAnsi256(...T2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>T2.ansi256ToAnsi(T2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>T2.ansi256ToAnsi(T2.hexToAnsi256(t)),enumerable:!1}}),T2}var eAi,tAi,rAi,T2,JCu,qNa,$Na,UCu,tDa,aV,A_t=bc(()=>{eAi=(e=0)=>t=>`\x1B[${t+e}m`,tAi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,rAi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,T2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},JCu=Object.keys(T2.modifier),qNa=Object.keys(T2.color),$Na=Object.keys(T2.bgColor),UCu=[...qNa,...$Na];tDa=eDa(),aV=tDa});var aAi={};sI(aAi,{default:()=>f_t});function f_t(e,t,r){return String(e).normalize().replaceAll(`\r +`).map(t=>t.trim()).join(" ")};Cgi.O=function(e){return this.inspectOpts.colors=this.useColors,n_t.inspect(e,this.inspectOpts)}});var uT=H((hmu,U2r)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?U2r.exports=mgi():U2r.exports=_gi()});var Egi=H((_mu,K2r)=>{"use strict";var $Ra=Object.prototype.hasOwnProperty,XZ="~";function OQe(){}Object.create&&(OQe.prototype=Object.create(null),new OQe().__proto__||(XZ=!1));function eNa(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function bgi(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new eNa(r,n||e,a),l=XZ?XZ+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s_t(e,t){--e._eventsCount===0?e._events=new OQe:delete e._events[t]}function BG(){this._events=new OQe,this._eventsCount=0}BG.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$Ra.call(r,n)&&t.push(XZ?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};BG.prototype.listeners=function(t){var r=XZ?XZ+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,l=new Array(o);a{"use strict";Ngi.exports=uNa;function ZTe(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function uNa(e){if(e=e||{},e.circles)return gNa(e);let t=new Map;if(t.set(Date,l=>new Date(l)),t.set(Map,(l,A)=>new Map(n(Array.from(l),A))),t.set(Set,(l,A)=>new Set(n(Array.from(l),A))),e.constructorHandlers)for(let l of e.constructorHandlers)t.set(l[0],l[1]);let r=null;return e.proto?o:a;function n(l,A){let f=Object.keys(l),I=new Array(f.length);for(let C=0;Cnew Date(f)),n.set(Map,(f,I)=>new Map(o(Array.from(f),I))),n.set(Set,(f,I)=>new Set(o(Array.from(f),I))),e.constructorHandlers)for(let f of e.constructorHandlers)n.set(f[0],f[1]);let a=null;return e.proto?A:l;function o(f,I){let C=Object.keys(f),b=new Array(C.length);for(let E=0;E{a_t=globalThis.window?.document!==void 0,gCu=globalThis.process?.versions?.node!==void 0,ACu=globalThis.process?.versions?.bun!==void 0,dCu=globalThis.Deno?.version?.deno!==void 0,pCu=globalThis.process?.versions?.electron!==void 0,fCu=globalThis.navigator?.userAgent?.includes("jsdom")===!0,ICu=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,hCu=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,mCu=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,CCu=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,MQe=globalThis.navigator?.userAgentData?.platform,_Cu=MQe==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",yCu=MQe==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",bCu=MQe==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",ECu=MQe==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),SCu=MQe==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var QQe={};sI(QQe,{beep:()=>LNa,clearScreen:()=>xNa,clearTerminal:()=>GNa,cursorBackward:()=>mNa,cursorDown:()=>INa,cursorForward:()=>hNa,cursorGetPosition:()=>yNa,cursorHide:()=>SNa,cursorLeft:()=>Fgi,cursorMove:()=>fNa,cursorNextLine:()=>bNa,cursorPrevLine:()=>ENa,cursorRestorePosition:()=>_Na,cursorSavePosition:()=>CNa,cursorShow:()=>vNa,cursorTo:()=>pNa,cursorUp:()=>Ggi,enterAlternativeScreen:()=>FNa,eraseDown:()=>RNa,eraseEndLine:()=>wNa,eraseLine:()=>Zgi,eraseLines:()=>BNa,eraseScreen:()=>z2r,eraseStartLine:()=>TNa,eraseUp:()=>NNa,exitAlternativeScreen:()=>ZNa,iTerm:()=>WNa,image:()=>PNa,link:()=>VNa,scrollDown:()=>kNa,scrollUp:()=>DNa});import q2r from"node:process";var m0,YQe,LTe,HQe,xgi,ANa,dNa,pNa,fNa,Ggi,INa,hNa,mNa,Fgi,CNa,_Na,yNa,bNa,ENa,SNa,vNa,BNa,wNa,TNa,Zgi,RNa,NNa,z2r,DNa,kNa,xNa,GNa,FNa,ZNa,LNa,VNa,PNa,WNa,$2r=bc(()=>{kgi();m0="\x1B[",YQe="\x1B]",LTe="\x07",HQe=";",xgi=!a_t&&q2r.env.TERM_PROGRAM==="Apple_Terminal",ANa=!a_t&&q2r.platform==="win32",dNa=a_t?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:q2r.cwd,pNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?m0+(e+1)+"G":m0+(t+1)+HQe+(e+1)+"H"},fNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=m0+-e+"D":e>0&&(r+=m0+e+"C"),t<0?r+=m0+-t+"A":t>0&&(r+=m0+t+"B"),r},Ggi=(e=1)=>m0+e+"A",INa=(e=1)=>m0+e+"B",hNa=(e=1)=>m0+e+"C",mNa=(e=1)=>m0+e+"D",Fgi=m0+"G",CNa=xgi?"\x1B7":m0+"s",_Na=xgi?"\x1B8":m0+"u",yNa=m0+"6n",bNa=m0+"E",ENa=m0+"F",SNa=m0+"?25l",vNa=m0+"?25h",BNa=e=>{let t="";for(let r=0;r[YQe,"8",HQe,HQe,t,LTe,e,YQe,"8",HQe,HQe,LTe].join(""),PNa=(e,t={})=>{let r=`${YQe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+Buffer.from(e).toString("base64")+LTe},WNa={setCwd:(e=dNa())=>`${YQe}50;CurrentDir=${e}${LTe}`,annotation(e,t={}){let r=`${YQe}1337;`,n=t.x!==void 0,a=t.y!==void 0;if((n||a)&&!(n&&a&&t.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+LTe}}});var Lgi=bc(()=>{$2r();$2r()});function eSr(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))ONa(e,t,a,r);return HNa(e,t),JNa(e,t,n),e}var ONa,MNa,HNa,YNa,QNa,XNa,JNa,Vgi=bc(()=>{ONa=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!MNa(a,o)&&n||Object.defineProperty(e,r,o)},MNa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},HNa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},YNa=(e,t)=>`/* Wrapped ${e}*/ +${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),JNa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=YNa.bind(null,n,t.toString());Object.defineProperty(a,"name",XNa);let{writable:o,enumerable:l,configurable:A}=QNa;Object.defineProperty(e,"toString",{value:a,writable:o,enumerable:l,configurable:A})}});var c_t,Pgi,Wgi,Ogi=bc(()=>{Vgi();c_t=new WeakMap,Pgi=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(c_t.set(o,++n),n===1)r=e.apply(this,l),e=void 0;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return eSr(o,e),c_t.set(o,n),o};Pgi.callCount=e=>{if(!c_t.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return c_t.get(e)};Wgi=Pgi});import l_t from"node:process";var Mgi,UNa,Hgi,Ygi=bc(()=>{Ogi();m1r();Mgi=l_t.stderr.isTTY?l_t.stderr:l_t.stdout.isTTY?l_t.stdout:void 0,UNa=Mgi?Wgi(()=>{iCt(()=>{Mgi.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},Hgi=UNa});import Qgi from"node:process";var u_t,VTe,tSr,Xgi=bc(()=>{Ygi();u_t=!1,VTe={};VTe.show=(e=Qgi.stderr)=>{e.isTTY&&(u_t=!1,e.write("\x1B[?25h"))};VTe.hide=(e=Qgi.stderr)=>{e.isTTY&&(Hgi(),u_t=!0,e.write("\x1B[?25l"))};VTe.toggle=(e,t)=>{e!==void 0&&(u_t=e),u_t?VTe.show(t):VTe.hide(t)};tSr=VTe});function Jgi(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function Ugi(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Kgi(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var jgi=bc(()=>{});function KNa(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function g_t(e,{ambiguousAsWide:t=!1}={}){return KNa(e),Ugi(e)||Kgi(e)||t&&Jgi(e)?2:1}var rSr=bc(()=>{jgi()});var qgi=H((YCu,zgi)=>{zgi.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function MM(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=t;if(n||(e=K$(e)),e.length===0)return 0;let a=0,o={ambiguousAsWide:!r};for(let{segment:l}of jNa.segment(e)){let A=l.codePointAt(0);if(!(A<=31||A>=127&&A<=159)&&!(A>=8203&&A<=8207||A===65279)&&!(A>=768&&A<=879||A>=6832&&A<=6911||A>=7616&&A<=7679||A>=8400&&A<=8447||A>=65056&&A<=65071)&&!(A>=55296&&A<=57343)&&!(A>=65024&&A<=65039)&&!zNa.test(l)){if((0,$gi.default)().test(l)){a+=2;continue}a+=g_t(A,o)}}return a}var $gi,jNa,zNa,nSr=bc(()=>{AQe();rSr();$gi=Nt(qgi(),1),jNa=new Intl.Segmenter,zNa=/^\p{Default_Ignorable_Code_Point}$/u});function eDa(){let e=new Map;for(let[t,r]of Object.entries(T2)){for(let[n,a]of Object.entries(r))T2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=T2[n],e.set(a[0],a[1]);Object.defineProperty(T2,t,{value:r,enumerable:!1})}return Object.defineProperty(T2,"codes",{value:e,enumerable:!1}),T2.color.close="\x1B[39m",T2.bgColor.close="\x1B[49m",T2.color.ansi=eAi(),T2.color.ansi256=tAi(),T2.color.ansi16m=rAi(),T2.bgColor.ansi=eAi(10),T2.bgColor.ansi256=tAi(10),T2.bgColor.ansi16m=rAi(10),Object.defineProperties(T2,{rgbToAnsi256:{value:(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>T2.rgbToAnsi256(...T2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>T2.ansi256ToAnsi(T2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>T2.ansi256ToAnsi(T2.hexToAnsi256(t)),enumerable:!1}}),T2}var eAi,tAi,rAi,T2,UCu,qNa,$Na,KCu,tDa,aV,A_t=bc(()=>{eAi=(e=0)=>t=>`\x1B[${t+e}m`,tAi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,rAi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,T2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},UCu=Object.keys(T2.modifier),qNa=Object.keys(T2.color),$Na=Object.keys(T2.bgColor),KCu=[...qNa,...$Na];tDa=eDa(),aV=tDa});var aAi={};sI(aAi,{default:()=>f_t});function f_t(e,t,r){return String(e).normalize().replaceAll(`\r `,` `).split(` `).map(n=>oDa(n,t,r)).join(` @@ -474,7 +474,7 @@ ${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Obj `),I=gSr(e);f===a&&n===I||(a=f,n=I,f=f_t(f,I,{trim:!1,hard:!0,wordWrap:!1}),e.write(QQe.eraseLines(r)+f),r=f.split(` `).length)};return l.clear=()=>{e.write(QQe.eraseLines(r)),o()},l.done=()=>{o(),t||tSr.show()},l}var fDa,gSr,IDa,hDa,mDa,CDa,dAi=bc(()=>{Lgi();Xgi();oSr();uAi();AQe();fDa=24,gSr=({columns:e=80})=>e,IDa=(e,t)=>{let r=e.rows??fDa,n=t.split(` `),a=Math.max(0,n.length-r);return a?uSr(t,K$(n.slice(0,a).join(` -`)).length+1):t};hDa=ASr(gAi.stdout),mDa=hDa,CDa=ASr(gAi.stderr)});function dSr(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var pAi=bc(()=>{});function X8(e,t,r){let n=[...e],a=[],o=typeof r=="number"?r:n.length,l=!1,A,f=0,I="";for(let[C,b]of n.entries()){let E=!1;if(IAi.includes(b)){let N=/\d[^m]*/.exec(e.slice(C,C+18));A=N&&N.length>0?N[0]:void 0,ft&&f<=o)I+=b;else if(f===t&&!l&&A!==void 0)I=fAi(a);else if(f>=o){I+=fAi(a,!0,A);break}}return I}var _Da,IAi,I_t,fAi,hAi=bc(()=>{pAi();A_t();_Da=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,IAi=["\x1B","\x9B"],I_t=e=>`${IAi[0]}[${e}m`,fAi=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.includes(";")&&(a=a.split(";")[0][0]+"0");let l=aV.codes.get(Number.parseInt(a,10));if(l){let A=e.indexOf(l.toString());A===-1?n.push(I_t(t?l:o)):e.splice(A,1)}else if(t){n.push(I_t(0));break}else n.push(I_t(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=I_t(aV.codes.get(Number.parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")}});var CAi={};sI(CAi,{default:()=>mAi});function h_t(e,t,r){if(e.charAt(t)===" ")return t;let n=r?1:-1;for(let a=0;a<=3;a++){let o=t+a*n;if(e.charAt(o)===" ")return o}return t}function mAi(e,t,r={}){let{position:n="end",space:a=!1,preferTruncationOnSpace:o=!1}=r,{truncationCharacter:l="\u2026"}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let A=MM(e);if(A<=t)return e;if(n==="start"){if(o){let f=h_t(e,A-t+1,!0);return l+X8(e,f,A).trim()}return a===!0&&(l+=" "),l+X8(e,A-t+MM(l),A)}if(n==="middle"){a===!0&&(l=` ${l} `);let f=Math.floor(t/2);if(o){let I=h_t(e,f),C=h_t(e,A-(t-f)+1,!0);return X8(e,0,I)+l+X8(e,C,A).trim()}return X8(e,0,f)+l+X8(e,A-(t-f)+MM(l),A)}if(n==="end"){if(o){let f=h_t(e,t-1);return X8(e,0,f)+l}return a===!0&&(l=` ${l}`),X8(e,0,t-MM(l))+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}var _Ai=bc(()=>{hAi();nSr()});var LSr=H((G0u,bdi)=>{"use strict";var oka=wt("child_process").spawn;function aka(e){if(e){e=e.trim();var t=/your \d+x\d+ screen size is bogus\. expect trouble/gi;return e=e.replace(t,""),e.trim()}}function cka(e,t,r,n){typeof r=="function"&&(n=r,r=void 0);var a=!1,o=oka(e,t,r),l="",A="";o.stdout.on("data",function(f){l+=f.toString()}),o.stderr.on("data",function(f){A+=f.toString()}),o.on("error",function(f){a||(a=!0,n(new Error(f)))}),o.on("close",function(f){if(!a){if(a=!0,A=aka(A),A)return n(new Error(A));n(null,l,f)}})}bdi.exports=cka});var Sdi=H((F0u,Edi)=>{"use strict";var lka=wt("os"),uka=LSr();function gka(e){var t=["-A","-o","ppid,pid"];uka("ps",t,function(r,n,a){if(r)return e(r);if(a!==0)return e(new Error("pidtree ps command exited with code "+a));try{n=n.split(lka.EOL);for(var o=[],l=1;l{"use strict";var Aka=wt("os"),dka=LSr();function pka(e){var t=["PROCESS","get","ParentProcessId,ProcessId"],r={windowsHide:!0,windowsVerbatimArguments:!0};dka("wmic",t,r,function(n,a,o){if(n){e(n);return}if(o!==0){e(new Error("pidtree wmic command exited with code "+o));return}try{a=a.split(Aka.EOL);for(var l=[],A=1;A{"use strict";var Tdi=wt("os"),fka={darwin:"ps",sunos:"ps",freebsd:"ps",netbsd:"ps",win:"wmic",linux:"ps",aix:"ps"},Ika={ps:()=>Sdi(),wmic:()=>Bdi()},VSr=Tdi.platform();VSr.startsWith("win")&&(VSr="win");var wdi=fka[VSr];function hka(e){wdi===void 0&&e(new Error(Tdi.platform()+" is not supported yet, please open an issue (https://github.com/simonepri/pidtree)"));var t=Ika[wdi]();t(e)}Rdi.exports=hka});var kdi=H((V0u,Ddi)=>{"use strict";var mka=Ndi();function Cka(e,t,r){if(typeof t=="function"&&(r=t,t={}),typeof t!="object"&&(t={}),e=parseInt(e,10),isNaN(e)||e<-1){r(new TypeError("The pid provided is invalid"));return}mka(function(n,a){if(n){r(n);return}if(e===-1){for(var o=0;o0;){var I=a.pop();f[I[0]]?f[I[0]].push(I[1]):f[I[0]]=[I[1]]}for(var C=0,b=[l];C{"use strict";function _ka(e,t,r){return new Promise(function(n,a){e(t,r,function(o,l){if(o)return a(o);n(l)})})}String.prototype.startsWith||(String.prototype.startsWith=function(e){return this.substring(0,e.length)===e});var xdi=kdi();function yka(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof r=="function"){xdi(e,t,r);return}return _ka(xdi,e,t)}Gdi.exports=yka});var C0=H(Gk=>{"use strict";var MSr=Symbol.for("yaml.alias"),zdi=Symbol.for("yaml.document"),N_t=Symbol.for("yaml.map"),qdi=Symbol.for("yaml.pair"),HSr=Symbol.for("yaml.scalar"),D_t=Symbol.for("yaml.seq"),tee=Symbol.for("yaml.node.type"),Tka=e=>!!e&&typeof e=="object"&&e[tee]===MSr,Rka=e=>!!e&&typeof e=="object"&&e[tee]===zdi,Nka=e=>!!e&&typeof e=="object"&&e[tee]===N_t,Dka=e=>!!e&&typeof e=="object"&&e[tee]===qdi,$di=e=>!!e&&typeof e=="object"&&e[tee]===HSr,kka=e=>!!e&&typeof e=="object"&&e[tee]===D_t;function epi(e){if(e&&typeof e=="object")switch(e[tee]){case N_t:case D_t:return!0}return!1}function xka(e){if(e&&typeof e=="object")switch(e[tee]){case MSr:case N_t:case HSr:case D_t:return!0}return!1}var Gka=e=>($di(e)||epi(e))&&!!e.anchor;Gk.ALIAS=MSr;Gk.DOC=zdi;Gk.MAP=N_t;Gk.NODE_TYPE=tee;Gk.PAIR=qdi;Gk.SCALAR=HSr;Gk.SEQ=D_t;Gk.hasAnchor=Gka;Gk.isAlias=Tka;Gk.isCollection=epi;Gk.isDocument=Rka;Gk.isMap=Nka;Gk.isNode=xka;Gk.isPair=Dka;Gk.isScalar=$di;Gk.isSeq=kka});var tXe=H(YSr=>{"use strict";var NR=C0(),cV=Symbol("break visit"),tpi=Symbol("skip children"),J8=Symbol("remove node");function k_t(e,t){let r=rpi(t);NR.isDocument(e)?QTe(null,e.contents,r,Object.freeze([e]))===J8&&(e.contents=null):QTe(null,e,r,Object.freeze([]))}k_t.BREAK=cV;k_t.SKIP=tpi;k_t.REMOVE=J8;function QTe(e,t,r,n){let a=npi(e,t,r,n);if(NR.isNode(a)||NR.isPair(a))return ipi(e,n,a),QTe(e,a,r,n);if(typeof a!="symbol"){if(NR.isCollection(t)){n=Object.freeze(n.concat(t));for(let o=0;o{"use strict";var spi=C0(),Fka=tXe(),Zka={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Lka=e=>e.replace(/[!,[\]{}]/g,t=>Zka[t]),rXe=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let n=t.trim().split(/[ \t]+/),a=n.shift();switch(a){case"%TAG":{if(n.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[o,l]=n;return this.tags[o]=l,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[o]=n;if(o==="1.1"||o==="1.2")return this.yaml.version=o,!0;{let l=/^\d+\.\d+$/.test(o);return r(6,`Unsupported YAML version ${o}`,l),!1}}default:return r(0,`Unknown directive ${a}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let l=t.slice(2,-1);return l==="!"||l==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),l)}let[,n,a]=t.match(/^(.*!)([^!]*)$/s);a||r(`The ${t} tag has no suffix`);let o=this.tags[n];if(o)try{return o+decodeURIComponent(a)}catch(l){return r(String(l)),null}return n==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,n]of Object.entries(this.tags))if(t.startsWith(n))return r+Lka(t.substring(n.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),a;if(t&&n.length>0&&spi.isNode(t.contents)){let o={};Fka.visit(t.contents,(l,A)=>{spi.isNode(A)&&A.tag&&(o[A.tag]=!0)}),a=Object.keys(o)}else a=[];for(let[o,l]of n)o==="!!"&&l==="tag:yaml.org,2002:"||(!t||a.some(A=>A.startsWith(l)))&&r.push(`%TAG ${o} ${l}`);return r.join(` +`)).length+1):t};hDa=ASr(gAi.stdout),mDa=hDa,CDa=ASr(gAi.stderr)});function dSr(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var pAi=bc(()=>{});function X8(e,t,r){let n=[...e],a=[],o=typeof r=="number"?r:n.length,l=!1,A,f=0,I="";for(let[C,b]of n.entries()){let E=!1;if(IAi.includes(b)){let N=/\d[^m]*/.exec(e.slice(C,C+18));A=N&&N.length>0?N[0]:void 0,ft&&f<=o)I+=b;else if(f===t&&!l&&A!==void 0)I=fAi(a);else if(f>=o){I+=fAi(a,!0,A);break}}return I}var _Da,IAi,I_t,fAi,hAi=bc(()=>{pAi();A_t();_Da=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,IAi=["\x1B","\x9B"],I_t=e=>`${IAi[0]}[${e}m`,fAi=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.includes(";")&&(a=a.split(";")[0][0]+"0");let l=aV.codes.get(Number.parseInt(a,10));if(l){let A=e.indexOf(l.toString());A===-1?n.push(I_t(t?l:o)):e.splice(A,1)}else if(t){n.push(I_t(0));break}else n.push(I_t(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=I_t(aV.codes.get(Number.parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")}});var CAi={};sI(CAi,{default:()=>mAi});function h_t(e,t,r){if(e.charAt(t)===" ")return t;let n=r?1:-1;for(let a=0;a<=3;a++){let o=t+a*n;if(e.charAt(o)===" ")return o}return t}function mAi(e,t,r={}){let{position:n="end",space:a=!1,preferTruncationOnSpace:o=!1}=r,{truncationCharacter:l="\u2026"}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let A=MM(e);if(A<=t)return e;if(n==="start"){if(o){let f=h_t(e,A-t+1,!0);return l+X8(e,f,A).trim()}return a===!0&&(l+=" "),l+X8(e,A-t+MM(l),A)}if(n==="middle"){a===!0&&(l=` ${l} `);let f=Math.floor(t/2);if(o){let I=h_t(e,f),C=h_t(e,A-(t-f)+1,!0);return X8(e,0,I)+l+X8(e,C,A).trim()}return X8(e,0,f)+l+X8(e,A-(t-f)+MM(l),A)}if(n==="end"){if(o){let f=h_t(e,t-1);return X8(e,0,f)+l}return a===!0&&(l=` ${l}`),X8(e,0,t-MM(l))+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}var _Ai=bc(()=>{hAi();nSr()});var LSr=H((F0u,bdi)=>{"use strict";var oka=wt("child_process").spawn;function aka(e){if(e){e=e.trim();var t=/your \d+x\d+ screen size is bogus\. expect trouble/gi;return e=e.replace(t,""),e.trim()}}function cka(e,t,r,n){typeof r=="function"&&(n=r,r=void 0);var a=!1,o=oka(e,t,r),l="",A="";o.stdout.on("data",function(f){l+=f.toString()}),o.stderr.on("data",function(f){A+=f.toString()}),o.on("error",function(f){a||(a=!0,n(new Error(f)))}),o.on("close",function(f){if(!a){if(a=!0,A=aka(A),A)return n(new Error(A));n(null,l,f)}})}bdi.exports=cka});var Sdi=H((Z0u,Edi)=>{"use strict";var lka=wt("os"),uka=LSr();function gka(e){var t=["-A","-o","ppid,pid"];uka("ps",t,function(r,n,a){if(r)return e(r);if(a!==0)return e(new Error("pidtree ps command exited with code "+a));try{n=n.split(lka.EOL);for(var o=[],l=1;l{"use strict";var Aka=wt("os"),dka=LSr();function pka(e){var t=["PROCESS","get","ParentProcessId,ProcessId"],r={windowsHide:!0,windowsVerbatimArguments:!0};dka("wmic",t,r,function(n,a,o){if(n){e(n);return}if(o!==0){e(new Error("pidtree wmic command exited with code "+o));return}try{a=a.split(Aka.EOL);for(var l=[],A=1;A{"use strict";var Tdi=wt("os"),fka={darwin:"ps",sunos:"ps",freebsd:"ps",netbsd:"ps",win:"wmic",linux:"ps",aix:"ps"},Ika={ps:()=>Sdi(),wmic:()=>Bdi()},VSr=Tdi.platform();VSr.startsWith("win")&&(VSr="win");var wdi=fka[VSr];function hka(e){wdi===void 0&&e(new Error(Tdi.platform()+" is not supported yet, please open an issue (https://github.com/simonepri/pidtree)"));var t=Ika[wdi]();t(e)}Rdi.exports=hka});var kdi=H((P0u,Ddi)=>{"use strict";var mka=Ndi();function Cka(e,t,r){if(typeof t=="function"&&(r=t,t={}),typeof t!="object"&&(t={}),e=parseInt(e,10),isNaN(e)||e<-1){r(new TypeError("The pid provided is invalid"));return}mka(function(n,a){if(n){r(n);return}if(e===-1){for(var o=0;o0;){var I=a.pop();f[I[0]]?f[I[0]].push(I[1]):f[I[0]]=[I[1]]}for(var C=0,b=[l];C{"use strict";function _ka(e,t,r){return new Promise(function(n,a){e(t,r,function(o,l){if(o)return a(o);n(l)})})}String.prototype.startsWith||(String.prototype.startsWith=function(e){return this.substring(0,e.length)===e});var xdi=kdi();function yka(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof r=="function"){xdi(e,t,r);return}return _ka(xdi,e,t)}Gdi.exports=yka});var C0=H(Gk=>{"use strict";var MSr=Symbol.for("yaml.alias"),zdi=Symbol.for("yaml.document"),N_t=Symbol.for("yaml.map"),qdi=Symbol.for("yaml.pair"),HSr=Symbol.for("yaml.scalar"),D_t=Symbol.for("yaml.seq"),tee=Symbol.for("yaml.node.type"),Tka=e=>!!e&&typeof e=="object"&&e[tee]===MSr,Rka=e=>!!e&&typeof e=="object"&&e[tee]===zdi,Nka=e=>!!e&&typeof e=="object"&&e[tee]===N_t,Dka=e=>!!e&&typeof e=="object"&&e[tee]===qdi,$di=e=>!!e&&typeof e=="object"&&e[tee]===HSr,kka=e=>!!e&&typeof e=="object"&&e[tee]===D_t;function epi(e){if(e&&typeof e=="object")switch(e[tee]){case N_t:case D_t:return!0}return!1}function xka(e){if(e&&typeof e=="object")switch(e[tee]){case MSr:case N_t:case HSr:case D_t:return!0}return!1}var Gka=e=>($di(e)||epi(e))&&!!e.anchor;Gk.ALIAS=MSr;Gk.DOC=zdi;Gk.MAP=N_t;Gk.NODE_TYPE=tee;Gk.PAIR=qdi;Gk.SCALAR=HSr;Gk.SEQ=D_t;Gk.hasAnchor=Gka;Gk.isAlias=Tka;Gk.isCollection=epi;Gk.isDocument=Rka;Gk.isMap=Nka;Gk.isNode=xka;Gk.isPair=Dka;Gk.isScalar=$di;Gk.isSeq=kka});var tXe=H(YSr=>{"use strict";var NR=C0(),cV=Symbol("break visit"),tpi=Symbol("skip children"),J8=Symbol("remove node");function k_t(e,t){let r=rpi(t);NR.isDocument(e)?QTe(null,e.contents,r,Object.freeze([e]))===J8&&(e.contents=null):QTe(null,e,r,Object.freeze([]))}k_t.BREAK=cV;k_t.SKIP=tpi;k_t.REMOVE=J8;function QTe(e,t,r,n){let a=npi(e,t,r,n);if(NR.isNode(a)||NR.isPair(a))return ipi(e,n,a),QTe(e,a,r,n);if(typeof a!="symbol"){if(NR.isCollection(t)){n=Object.freeze(n.concat(t));for(let o=0;o{"use strict";var spi=C0(),Fka=tXe(),Zka={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Lka=e=>e.replace(/[!,[\]{}]/g,t=>Zka[t]),rXe=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let n=t.trim().split(/[ \t]+/),a=n.shift();switch(a){case"%TAG":{if(n.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[o,l]=n;return this.tags[o]=l,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[o]=n;if(o==="1.1"||o==="1.2")return this.yaml.version=o,!0;{let l=/^\d+\.\d+$/.test(o);return r(6,`Unsupported YAML version ${o}`,l),!1}}default:return r(0,`Unknown directive ${a}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let l=t.slice(2,-1);return l==="!"||l==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),l)}let[,n,a]=t.match(/^(.*!)([^!]*)$/s);a||r(`The ${t} tag has no suffix`);let o=this.tags[n];if(o)try{return o+decodeURIComponent(a)}catch(l){return r(String(l)),null}return n==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,n]of Object.entries(this.tags))if(t.startsWith(n))return r+Lka(t.substring(n.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),a;if(t&&n.length>0&&spi.isNode(t.contents)){let o={};Fka.visit(t.contents,(l,A)=>{spi.isNode(A)&&A.tag&&(o[A.tag]=!0)}),a=Object.keys(o)}else a=[];for(let[o,l]of n)o==="!!"&&l==="tag:yaml.org,2002:"||(!t||a.some(A=>A.startsWith(l)))&&r.push(`%TAG ${o} ${l}`);return r.join(` `)}};rXe.defaultYaml={explicit:!1,version:"1.2"};rXe.defaultTags={"!!":"tag:yaml.org,2002:"};opi.Directives=rXe});var G_t=H(nXe=>{"use strict";var api=C0(),Vka=tXe();function Pka(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let r=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(r)}return!0}function cpi(e){let t=new Set;return Vka.visit(e,{Value(r,n){n.anchor&&t.add(n.anchor)}}),t}function lpi(e,t){for(let r=1;;++r){let n=`${e}${r}`;if(!t.has(n))return n}}function Wka(e,t){let r=[],n=new Map,a=null;return{onAnchor:o=>{r.push(o),a||(a=cpi(e));let l=lpi(t,a);return a.add(l),l},setAnchors:()=>{for(let o of r){let l=n.get(o);if(typeof l=="object"&&l.anchor&&(api.isScalar(l.node)||api.isCollection(l.node)))l.node.anchor=l.anchor;else{let A=new Error("Failed to resolve repeated object (this should not happen)");throw A.source=o,A}}},sourceObjects:n}}nXe.anchorIsValid=Pka;nXe.anchorNames=cpi;nXe.createNodeAnchors=Wka;nXe.findNewAnchor=lpi});var XSr=H(upi=>{"use strict";function iXe(e,t,r,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let a=0,o=n.length;a{"use strict";var Oka=C0();function gpi(e,t,r){if(Array.isArray(e))return e.map((n,a)=>gpi(n,String(a),r));if(e&&typeof e.toJSON=="function"){if(!r||!Oka.hasAnchor(e))return e.toJSON(t,r);let n={aliasCount:0,count:1,res:void 0};r.anchors.set(e,n),r.onCreate=o=>{n.res=o,delete r.onCreate};let a=e.toJSON(t,r);return r.onCreate&&r.onCreate(a),a}return typeof e=="bigint"&&!r?.keep?Number(e):e}Api.toJS=gpi});var F_t=H(ppi=>{"use strict";var Mka=XSr(),dpi=C0(),Hka=Nae(),JSr=class{constructor(t){Object.defineProperty(this,dpi.NODE_TYPE,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:r,maxAliasCount:n,onAnchor:a,reviver:o}={}){if(!dpi.isDocument(t))throw new TypeError("A document argument is required");let l={anchors:new Map,doc:t,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},A=Hka.toJS(this,"",l);if(typeof a=="function")for(let{count:f,res:I}of l.anchors.values())a(I,f);return typeof o=="function"?Mka.applyReviver(o,{"":A},"",A):A}};ppi.NodeBase=JSr});var sXe=H(Ipi=>{"use strict";var Yka=G_t(),fpi=tXe(),Z_t=C0(),Qka=F_t(),Xka=Nae(),USr=class extends Qka.NodeBase{constructor(t){super(Z_t.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t){let r;return fpi.visit(t,{Node:(n,a)=>{if(a===this)return fpi.visit.BREAK;a.anchor===this.source&&(r=a)}}),r}toJSON(t,r){if(!r)return{source:this.source};let{anchors:n,doc:a,maxAliasCount:o}=r,l=this.resolve(a);if(!l){let f=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(f)}let A=n.get(l);if(A||(Xka.toJS(l,null,r),A=n.get(l)),!A||A.res===void 0){let f="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(f)}if(o>=0&&(A.count+=1,A.aliasCount===0&&(A.aliasCount=L_t(a,l,n)),A.count*A.aliasCount>o)){let f="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(f)}return A.res}toString(t,r,n){let a=`*${this.source}`;if(t){if(Yka.anchorIsValid(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let o=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(o)}if(t.implicitKey)return`${a} `}return a}};function L_t(e,t,r){if(Z_t.isAlias(t)){let n=t.resolve(e),a=r&&n&&r.get(n);return a?a.count*a.aliasCount:0}else if(Z_t.isCollection(t)){let n=0;for(let a of t.items){let o=L_t(e,a,r);o>n&&(n=o)}return n}else if(Z_t.isPair(t)){let n=L_t(e,t.key,r),a=L_t(e,t.value,r);return Math.max(n,a)}return 1}Ipi.Alias=USr});var gT=H(KSr=>{"use strict";var Jka=C0(),Uka=F_t(),Kka=Nae(),jka=e=>!e||typeof e!="function"&&typeof e!="object",Dae=class extends Uka.NodeBase{constructor(t){super(Jka.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:Kka.toJS(this.value,t,r)}toString(){return String(this.value)}};Dae.BLOCK_FOLDED="BLOCK_FOLDED";Dae.BLOCK_LITERAL="BLOCK_LITERAL";Dae.PLAIN="PLAIN";Dae.QUOTE_DOUBLE="QUOTE_DOUBLE";Dae.QUOTE_SINGLE="QUOTE_SINGLE";KSr.Scalar=Dae;KSr.isScalarValue=jka});var oXe=H(mpi=>{"use strict";var zka=sXe(),Whe=C0(),hpi=gT(),qka="tag:yaml.org,2002:";function $ka(e,t,r){if(t){let n=r.filter(o=>o.tag===t),a=n.find(o=>!o.format)??n[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find(n=>n.identify?.(e)&&!n.format)}function exa(e,t,r){if(Whe.isDocument(e)&&(e=e.contents),Whe.isNode(e))return e;if(Whe.isPair(e)){let b=r.schema[Whe.MAP].createNode?.(r.schema,null,r);return b.items.push(e),b}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:n,onAnchor:a,onTagObj:o,schema:l,sourceObjects:A}=r,f;if(n&&e&&typeof e=="object"){if(f=A.get(e),f)return f.anchor||(f.anchor=a(e)),new zka.Alias(f.anchor);f={anchor:null,node:null},A.set(e,f)}t?.startsWith("!!")&&(t=qka+t.slice(2));let I=$ka(e,t,l.tags);if(!I){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let b=new hpi.Scalar(e);return f&&(f.node=b),b}I=e instanceof Map?l[Whe.MAP]:Symbol.iterator in Object(e)?l[Whe.SEQ]:l[Whe.MAP]}o&&(o(I),delete r.onTagObj);let C=I?.createNode?I.createNode(r.schema,e,r):typeof I?.nodeClass?.from=="function"?I.nodeClass.from(r.schema,e,r):new hpi.Scalar(e);return t?C.tag=t:I.default||(C.tag=I.tag),f&&(f.node=C),C}mpi.createNode=exa});var P_t=H(V_t=>{"use strict";var txa=oXe(),U8=C0(),rxa=F_t();function jSr(e,t,r){let n=r;for(let a=t.length-1;a>=0;--a){let o=t[a];if(typeof o=="number"&&Number.isInteger(o)&&o>=0){let l=[];l[o]=n,n=l}else n=new Map([[o,n]])}return txa.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var Cpi=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,zSr=class extends rxa.NodeBase{constructor(t,r){super(t),Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone(t){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(r.schema=t),r.items=r.items.map(n=>U8.isNode(n)||U8.isPair(n)?n.clone(t):n),this.range&&(r.range=this.range.slice()),r}addIn(t,r){if(Cpi(t))this.add(r);else{let[n,...a]=t,o=this.get(n,!0);if(U8.isCollection(o))o.addIn(a,r);else if(o===void 0&&this.schema)this.set(n,jSr(this.schema,a,r));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}deleteIn(t){let[r,...n]=t;if(n.length===0)return this.delete(r);let a=this.get(r,!0);if(U8.isCollection(a))return a.deleteIn(n);throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}getIn(t,r){let[n,...a]=t,o=this.get(n,!0);return a.length===0?!r&&U8.isScalar(o)?o.value:o:U8.isCollection(o)?o.getIn(a,r):void 0}hasAllNullValues(t){return this.items.every(r=>{if(!U8.isPair(r))return!1;let n=r.value;return n==null||t&&U8.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(t){let[r,...n]=t;if(n.length===0)return this.has(r);let a=this.get(r,!0);return U8.isCollection(a)?a.hasIn(n):!1}setIn(t,r){let[n,...a]=t;if(a.length===0)this.set(n,r);else{let o=this.get(n,!0);if(U8.isCollection(o))o.setIn(a,r);else if(o===void 0&&this.schema)this.set(n,jSr(this.schema,a,r));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}};V_t.Collection=zSr;V_t.collectionFromPath=jSr;V_t.isEmptyPath=Cpi});var aXe=H(W_t=>{"use strict";var nxa=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function qSr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var ixa=(e,t,r)=>e.endsWith(` `)?qSr(r,t):r.includes(` `)?` @@ -612,23 +612,23 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(` `,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let a=t.items[t.items.length-2]?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,r.start),a.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let n=!this.onKeyLine&&this.indent===t.indent,a=n&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",o=[];if(a&&r.sep&&!r.value){let l=[];for(let A=0;At.indent&&(l.length=0);break;default:l.length=0}}l.length>=2&&(o=r.sep.splice(l[1]))}switch(this.type){case"anchor":case"tag":a||r.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):a||r.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Qhe(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(wIi(r.key)&&!Qhe(r.sep,"newline")){let l=rRe(r.start),A=r.key,f=r.sep;f.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:l,key:A,sep:f}]})}else o.length>0?r.sep=r.sep.concat(o,this.sourceToken):r.sep.push(this.sourceToken);else if(Qhe(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let l=rRe(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:l,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||a?t.items.push({start:o,key:null,sep:[this.sourceToken]}):Qhe(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let l=this.flowScalar(this.type);a||r.value?(t.items.push({start:o,key:l,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(l):(Object.assign(r,{key:l,sep:[]}),this.onKeyLine=!0);return}default:{let l=this.startBlockValue(t);if(l){n&&l.type!=="block-seq"&&t.items.push({start:o}),this.stack.push(l);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let a=t.items[t.items.length-2]?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,r.start),a.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||Qhe(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let n=this.startBlockValue(t);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n&&n.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let a=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:a,sep:[]}):r.sep?this.stack.push(a):Object.assign(r,{key:a,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let n=this.startBlockValue(t);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===t.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let a=y0t(n),o=rRe(a);BIi(t);let l=t.end.splice(1,t.end.length);l.push(this.sourceToken);let A={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:o,key:t,sep:l}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=A}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(` `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(` -`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};TIi.Parser=CBr});var xIi=H(TXe=>{"use strict";var RIi=oBr(),kZa=CXe(),wXe=bXe(),xZa=ivr(),GZa=mBr(),NIi=_Br();function DIi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new GZa.LineCounter||null,prettyErrors:t}}function FZa(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=Array.from(o.compose(a.parse(e)));if(n&&r)for(let A of l)A.errors.forEach(wXe.prettifyError(e,r)),A.warnings.forEach(wXe.prettifyError(e,r));return l.length>0?l:Object.assign([],{empty:!0},o.streamInfo())}function kIi(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=null;for(let A of o.compose(a.parse(e),!0,e.length))if(!l)l=A;else if(l.options.logLevel!=="silent"){l.errors.push(new wXe.YAMLParseError(A.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(l.errors.forEach(wXe.prettifyError(e,r)),l.warnings.forEach(wXe.prettifyError(e,r))),l}function ZZa(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let a=kIi(e,r);if(!a)return null;if(a.warnings.forEach(o=>xZa.warn(a.options.logLevel,o)),a.errors.length>0){if(a.options.logLevel!=="silent")throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:n},r))}function LZa(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let a=Math.round(r);r=a<1?void 0:a>8?{indent:8}:{indent:a}}if(e===void 0){let{keepUndefined:a}=r??t??{};if(!a)return}return new kZa.Document(e,n,r).toString(r)}TXe.parse=ZZa;TXe.parseAllDocuments=FZa;TXe.parseDocument=kIi;TXe.stringify=LZa});var FIi=H(J0=>{"use strict";var VZa=oBr(),PZa=CXe(),WZa=Wvr(),yBr=bXe(),OZa=sXe(),Vae=C0(),MZa=Gae(),HZa=gT(),YZa=Zae(),QZa=Lae(),XZa=C0t(),JZa=IBr(),UZa=mBr(),KZa=_Br(),b0t=xIi(),GIi=tXe();J0.Composer=VZa.Composer;J0.Document=PZa.Document;J0.Schema=WZa.Schema;J0.YAMLError=yBr.YAMLError;J0.YAMLParseError=yBr.YAMLParseError;J0.YAMLWarning=yBr.YAMLWarning;J0.Alias=OZa.Alias;J0.isAlias=Vae.isAlias;J0.isCollection=Vae.isCollection;J0.isDocument=Vae.isDocument;J0.isMap=Vae.isMap;J0.isNode=Vae.isNode;J0.isPair=Vae.isPair;J0.isScalar=Vae.isScalar;J0.isSeq=Vae.isSeq;J0.Pair=MZa.Pair;J0.Scalar=HZa.Scalar;J0.YAMLMap=YZa.YAMLMap;J0.YAMLSeq=QZa.YAMLSeq;J0.CST=XZa;J0.Lexer=JZa.Lexer;J0.LineCounter=UZa.LineCounter;J0.Parser=KZa.Parser;J0.parse=b0t.parse;J0.parseAllDocuments=b0t.parseAllDocuments;J0.parseDocument=b0t.parseDocument;J0.stringify=b0t.stringify;J0.visit=GIi.visit;J0.visitAsync=GIi.visitAsync});var HIi=H((Bbu,NXe)=>{var JX=wt("path"),RXe=wt("fs"),qZa=wt("os"),LIi=RXe.promises.readFile;function $Za(e,t){return["package.json",`.${e}rc.json`,`.${e}rc.js`,`.${e}rc.cjs`,...t?[]:[`.${e}rc.mjs`],`.config/${e}rc`,`.config/${e}rc.json`,`.config/${e}rc.js`,`.config/${e}rc.cjs`,...t?[]:[`.config/${e}rc.mjs`],`${e}.config.js`,`${e}.config.cjs`,...t?[]:[`${e}.config.mjs`]]}function T0t(e){return JX.dirname(e)||JX.sep}var SBr=(e,t)=>JSON.parse(t),w0t=typeof __webpack_require__=="function"?__non_webpack_require__:wt,VIi=Object.freeze({".js":w0t,".json":w0t,".cjs":w0t,noExt:SBr});NXe.exports.defaultLoadersSync=VIi;var EBr=async e=>{try{return(await import(e)).default}catch(t){try{return w0t(e)}catch(r){throw r.code==="ERR_REQUIRE_ESM"||r instanceof SyntaxError&&r.toString().includes("Cannot use import statement outside a module")?t:r}}},PIi=Object.freeze({".js":EBr,".mjs":EBr,".cjs":EBr,".json":SBr,noExt:SBr});NXe.exports.defaultLoaders=PIi;function WIi(e,t,r){let n={stopDir:qZa.homedir(),searchPlaces:$Za(e,r),ignoreEmptySearchPlaces:!0,cache:!0,transform:a=>a,packageProp:[e],...t,loaders:{...r?VIi:PIi,...t.loaders}};return n.searchPlaces.forEach(a=>{let o=JX.extname(a)||"noExt",l=n.loaders[o];if(!l)throw new Error(`Missing loader for extension "${a}"`);if(typeof l!="function")throw new Error(`Loader for extension "${a}" is not a function: Received ${typeof l}.`)}),n}function R0t(e,t){return typeof e=="string"&&e in t?t[e]:(Array.isArray(e)?e:e.split(".")).reduce((r,n)=>r===void 0?r:r[n],t)||null}function OIi(e){if(!e)throw new Error("load must pass a non-empty string")}function N0t(e,t){if(!e)throw new Error(`No loader specified for extension "${t}"`);if(typeof e!="function")throw new Error("loader is not a function")}var MIi=e=>(t,r,n)=>(e&&t.set(r,n),n);NXe.exports.lilconfig=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!1),C=new Map,b=new Map,E=MIi(I);return{async search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{await RXe.promises.access(ne)}catch{continue}let ce=String(await LIi(ne)),fe=JX.extname(ae)||"noExt",ue=a[fe];if(ae==="package.json"){let be=await ue(ne,ce),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ce.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(ue,fe),B.config=await ue(ne,ce)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},async load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(await LIi(B));if(F==="package.json"){let ue=await ae(B,ne);return E(b,B,f({config:R0t(o,ue),filepath:B}))}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({config:void 0,filepath:B,isEmpty:!0})):(ce.config=fe?void 0:await ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}};NXe.exports.lilconfigSync=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!0),C=new Map,b=new Map,E=MIi(I);return{search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{RXe.accessSync(ne)}catch{continue}let ce=JX.extname(ae)||"noExt",fe=a[ce],ue=String(RXe.readFileSync(ne));if(ae==="package.json"){let be=fe(ne,ue),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ue.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(fe,ce),B.config=fe(ne,ue)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(RXe.readFileSync(B));if(F==="package.json"){let ue=ae(B,ne);return f({config:R0t(o,ue),filepath:B})}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({filepath:B,config:void 0,isEmpty:!0})):(ce.config=fe?void 0:ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}}});var DBr=H((qEu,Ehi)=>{Ehi.exports=wt("stream")});var Rhi=H(($Eu,Thi)=>{"use strict";function Shi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vhi(e){for(var t=1;t0?this.tail.next=n:this.head=n,this.tail=n,++this.length}},{key:"unshift",value:function(r){var n={data:r,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var n=this.head,a=""+n.data;n=n.next;)a+=r+n.data;return a}},{key:"concat",value:function(r){if(this.length===0)return L0t.alloc(0);for(var n=L0t.allocUnsafe(r>>>0),a=this.head,o=0;a;)PLa(a.data,n,o),o+=a.data.length,a=a.next;return n}},{key:"consume",value:function(r,n){var a;return rl.length?l.length:r;if(A===l.length?o+=l:o+=l.slice(0,r),r-=A,r===0){A===l.length?(++a,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=l.slice(A));break}++a}return this.length-=a,o}},{key:"_getBuffer",value:function(r){var n=L0t.allocUnsafe(r),a=this.head,o=1;for(a.data.copy(n),r-=a.data.length;a=a.next;){var l=a.data,A=r>l.length?l.length:r;if(l.copy(n,n.length-r,0,A),r-=A,r===0){A===l.length?(++o,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=l.slice(A));break}++o}return this.length-=o,n}},{key:VLa,value:function(r,n){return kBr(this,vhi(vhi({},n),{},{depth:0,customInspect:!1}))}}]),e}()});var GBr=H((e1u,Dhi)=>{"use strict";function WLa(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return n||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(xBr,this,e)):process.nextTick(xBr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(o){!t&&o?r._writableState?r._writableState.errorEmitted?process.nextTick(V0t,r):(r._writableState.errorEmitted=!0,process.nextTick(Nhi,r,o)):process.nextTick(Nhi,r,o):t?(process.nextTick(V0t,r),t(o)):process.nextTick(V0t,r)}),this)}function Nhi(e,t){xBr(e,t),V0t(e)}function V0t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function OLa(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function xBr(e,t){e.emit("error",t)}function MLa(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}Dhi.exports={destroy:WLa,undestroy:OLa,errorOrDestroy:MLa}});var Pae=H((t1u,Ghi)=>{"use strict";var xhi={};function QM(e,t,r){r||(r=Error);function n(o,l,A){return typeof t=="string"?t:t(o,l,A)}class a extends r{constructor(l,A,f){super(n(l,A,f))}}a.prototype.name=r.name,a.prototype.code=e,xhi[e]=a}function khi(e,t){if(Array.isArray(e)){let r=e.length;return e=e.map(n=>String(n)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:r===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function HLa(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function YLa(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function QLa(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}QM("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);QM("ERR_INVALID_ARG_TYPE",function(e,t,r){let n;typeof t=="string"&&HLa(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";let a;if(YLa(e," argument"))a=`The ${e} ${n} ${khi(t,"type")}`;else{let o=QLa(e,".")?"property":"argument";a=`The "${e}" ${o} ${n} ${khi(t,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);QM("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");QM("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});QM("ERR_STREAM_PREMATURE_CLOSE","Premature close");QM("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});QM("ERR_MULTIPLE_CALLBACK","Callback called multiple times");QM("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");QM("ERR_STREAM_WRITE_AFTER_END","write after end");QM("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);QM("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);QM("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ghi.exports.codes=xhi});var FBr=H((r1u,Fhi)=>{"use strict";var XLa=Pae().codes.ERR_INVALID_OPT_VALUE;function JLa(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function ULa(e,t,r,n){var a=JLa(t,n,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=n?r:"highWaterMark";throw new XLa(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}Fhi.exports={getHighWaterMark:ULa}});var Zhi=H((n1u,ZBr)=>{typeof Object.create=="function"?ZBr.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ZBr.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var Wae=H((i1u,VBr)=>{try{if(LBr=wt("util"),typeof LBr.inherits!="function")throw"";VBr.exports=LBr.inherits}catch{VBr.exports=Zhi()}var LBr});var Vhi=H((s1u,Lhi)=>{Lhi.exports=wt("util").deprecate});var OBr=H((o1u,Yhi)=>{"use strict";Yhi.exports=Hv;function Whi(e){var t=this;this.next=null,this.entry=null,this.finish=function(){y9a(t,e)}}var sRe;Hv.WritableState=LXe;var KLa={deprecate:Vhi()},Ohi=DBr(),W0t=wt("buffer").Buffer,jLa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function zLa(e){return W0t.from(e)}function qLa(e){return W0t.isBuffer(e)||e instanceof jLa}var WBr=GBr(),$La=FBr(),e9a=$La.getHighWaterMark,Oae=Pae().codes,t9a=Oae.ERR_INVALID_ARG_TYPE,r9a=Oae.ERR_METHOD_NOT_IMPLEMENTED,n9a=Oae.ERR_MULTIPLE_CALLBACK,i9a=Oae.ERR_STREAM_CANNOT_PIPE,s9a=Oae.ERR_STREAM_DESTROYED,o9a=Oae.ERR_STREAM_NULL_VALUES,a9a=Oae.ERR_STREAM_WRITE_AFTER_END,c9a=Oae.ERR_UNKNOWN_ENCODING,oRe=WBr.errorOrDestroy;Wae()(Hv,Ohi);function l9a(){}function LXe(e,t,r){sRe=sRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof sRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=e9a(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){I9a(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Whi(this)}LXe.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(LXe.prototype,"buffer",{get:KLa.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var P0t;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(P0t=Function.prototype[Symbol.hasInstance],Object.defineProperty(Hv,Symbol.hasInstance,{value:function(t){return P0t.call(this,t)?!0:this!==Hv?!1:t&&t._writableState instanceof LXe}})):P0t=function(t){return t instanceof this};function Hv(e){sRe=sRe||Xhe();var t=this instanceof sRe;if(!t&&!P0t.call(Hv,this))return new Hv(e);this._writableState=new LXe(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Ohi.call(this)}Hv.prototype.pipe=function(){oRe(this,new i9a)};function u9a(e,t){var r=new a9a;oRe(e,r),process.nextTick(t,r)}function g9a(e,t,r,n){var a;return r===null?a=new o9a:typeof r!="string"&&!t.objectMode&&(a=new t9a("chunk",["string","Buffer"],r)),a?(oRe(e,a),process.nextTick(n,a),!1):!0}Hv.prototype.write=function(e,t,r){var n=this._writableState,a=!1,o=!n.objectMode&&qLa(e);return o&&!W0t.isBuffer(e)&&(e=zLa(e)),typeof t=="function"&&(r=t,t=null),o?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=l9a),n.ending?u9a(this,r):(o||g9a(this,n,e,r))&&(n.pendingcb++,a=d9a(this,n,o,e,t,r)),a};Hv.prototype.cork=function(){this._writableState.corked++};Hv.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Mhi(this,e))};Hv.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 c9a(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(Hv.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function A9a(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=W0t.from(t,r)),t}Object.defineProperty(Hv.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function d9a(e,t,r,n,a,o){if(!r){var l=A9a(t,n,a);n!==l&&(r=!0,a="buffer",n=l)}var A=t.objectMode?1:n.length;t.length+=A;var f=t.length{"use strict";var b9a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};Xhi.exports=j8;var Qhi=YBr(),HBr=OBr();Wae()(j8,Qhi);for(MBr=b9a(HBr.prototype),O0t=0;O0t{var H0t=wt("buffer"),z8=H0t.Buffer;function Jhi(e,t){for(var r in e)t[r]=e[r]}z8.from&&z8.alloc&&z8.allocUnsafe&&z8.allocUnsafeSlow?Uhi.exports=H0t:(Jhi(H0t,QBr),QBr.Buffer=Jhe);function Jhe(e,t,r){return z8(e,t,r)}Jhe.prototype=Object.create(z8.prototype);Jhi(z8,Jhe);Jhe.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return z8(e,t,r)};Jhe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=z8(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Jhe.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return z8(e)};Jhe.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return H0t.SlowBuffer(e)}});var UBr=H(zhi=>{"use strict";var JBr=Khi().Buffer,jhi=JBr.isEncoding||function(e){switch(e=""+e,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 v9a(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function B9a(e){var t=v9a(e);if(typeof t!="string"&&(JBr.isEncoding===jhi||!jhi(e)))throw new Error("Unknown encoding: "+e);return t||e}zhi.StringDecoder=VXe;function VXe(e){this.encoding=B9a(e);var t;switch(this.encoding){case"utf16le":this.text=k9a,this.end=x9a,t=4;break;case"utf8":this.fillLast=R9a,t=4;break;case"base64":this.text=G9a,this.end=F9a,t=3;break;default:this.write=Z9a,this.end=L9a;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=JBr.allocUnsafe(t)}VXe.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function w9a(e,t,r){var n=t.length-1;if(n=0?(a>0&&(e.lastNeed=a-1),a):--n=0?(a>0&&(e.lastNeed=a-2),a):--n=0?(a>0&&(a===2?a=0:e.lastNeed=a-3),a):0))}function T9a(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function R9a(e){var t=this.lastTotal-this.lastNeed,r=T9a(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function N9a(e,t){var r=w9a(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function D9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function k9a(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function x9a(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function G9a(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function F9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Z9a(e){return e.toString(this.encoding)}function L9a(e){return e&&e.length?this.write(e):""}});var Y0t=H((l1u,emi)=>{"use strict";var qhi=Pae().codes.ERR_STREAM_PREMATURE_CLOSE;function V9a(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a{"use strict";var Q0t;function Mae(e,t,r){return t=O9a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O9a(e){var t=M9a(e,"string");return typeof t=="symbol"?t:String(t)}function M9a(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var H9a=Y0t(),Hae=Symbol("lastResolve"),Uhe=Symbol("lastReject"),PXe=Symbol("error"),X0t=Symbol("ended"),Khe=Symbol("lastPromise"),KBr=Symbol("handlePromise"),jhe=Symbol("stream");function Yae(e,t){return{value:e,done:t}}function Y9a(e){var t=e[Hae];if(t!==null){var r=e[jhe].read();r!==null&&(e[Khe]=null,e[Hae]=null,e[Uhe]=null,t(Yae(r,!1)))}}function Q9a(e){process.nextTick(Y9a,e)}function X9a(e,t){return function(r,n){e.then(function(){if(t[X0t]){r(Yae(void 0,!0));return}t[KBr](r,n)},n)}}var J9a=Object.getPrototypeOf(function(){}),U9a=Object.setPrototypeOf((Q0t={get stream(){return this[jhe]},next:function(){var t=this,r=this[PXe];if(r!==null)return Promise.reject(r);if(this[X0t])return Promise.resolve(Yae(void 0,!0));if(this[jhe].destroyed)return new Promise(function(l,A){process.nextTick(function(){t[PXe]?A(t[PXe]):l(Yae(void 0,!0))})});var n=this[Khe],a;if(n)a=new Promise(X9a(n,this));else{var o=this[jhe].read();if(o!==null)return Promise.resolve(Yae(o,!1));a=new Promise(this[KBr])}return this[Khe]=a,a}},Mae(Q0t,Symbol.asyncIterator,function(){return this}),Mae(Q0t,"return",function(){var t=this;return new Promise(function(r,n){t[jhe].destroy(null,function(a){if(a){n(a);return}r(Yae(void 0,!0))})})}),Q0t),J9a),K9a=function(t){var r,n=Object.create(U9a,(r={},Mae(r,jhe,{value:t,writable:!0}),Mae(r,Hae,{value:null,writable:!0}),Mae(r,Uhe,{value:null,writable:!0}),Mae(r,PXe,{value:null,writable:!0}),Mae(r,X0t,{value:t._readableState.endEmitted,writable:!0}),Mae(r,KBr,{value:function(o,l){var A=n[jhe].read();A?(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(Yae(A,!1))):(n[Hae]=o,n[Uhe]=l)},writable:!0}),r));return n[Khe]=null,H9a(t,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var o=n[Uhe];o!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(a)),n[PXe]=a;return}var l=n[Hae];l!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,l(Yae(void 0,!0))),n[X0t]=!0}),t.on("readable",Q9a.bind(null,n)),n};tmi.exports=K9a});var omi=H((g1u,smi)=>{"use strict";function nmi(e,t,r,n,a,o,l){try{var A=e[o](l),f=A.value}catch(I){r(I);return}A.done?t(f):Promise.resolve(f).then(n,a)}function j9a(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(f){nmi(o,n,a,l,A,"next",f)}function A(f){nmi(o,n,a,l,A,"throw",f)}l(void 0)})}}function imi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function z9a(e){for(var t=1;t{"use strict";Imi.exports=y_;var aRe;y_.ReadableState=umi;var A1u=wt("events").EventEmitter,lmi=function(t,r){return t.listeners(r).length},OXe=DBr(),J0t=wt("buffer").Buffer,nVa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iVa(e){return J0t.from(e)}function sVa(e){return J0t.isBuffer(e)||e instanceof nVa}var jBr=wt("util"),Sm;jBr&&jBr.debuglog?Sm=jBr.debuglog("stream"):Sm=function(){};var oVa=Rhi(),nwr=GBr(),aVa=FBr(),cVa=aVa.getHighWaterMark,U0t=Pae().codes,lVa=U0t.ERR_INVALID_ARG_TYPE,uVa=U0t.ERR_STREAM_PUSH_AFTER_EOF,gVa=U0t.ERR_METHOD_NOT_IMPLEMENTED,AVa=U0t.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,cRe,zBr,qBr;Wae()(y_,OXe);var WXe=nwr.errorOrDestroy,$Br=["error","close","destroy","pause","resume"];function dVa(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 umi(e,t,r){aRe=aRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof aRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cVa(this,e,"readableHighWaterMark",r),this.buffer=new oVa,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.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(cRe||(cRe=UBr().StringDecoder),this.decoder=new cRe(e.encoding),this.encoding=e.encoding)}function y_(e){if(aRe=aRe||Xhe(),!(this instanceof y_))return new y_(e);var t=this instanceof aRe;this._readableState=new umi(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),OXe.call(this)}Object.defineProperty(y_.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});y_.prototype.destroy=nwr.destroy;y_.prototype._undestroy=nwr.undestroy;y_.prototype._destroy=function(e,t){t(e)};y_.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=J0t.from(e,t),t=""),n=!0),gmi(this,e,t,!1,n)};y_.prototype.unshift=function(e){return gmi(this,e,null,!0,!1)};function gmi(e,t,r,n,a){Sm("readableAddChunk",t);var o=e._readableState;if(t===null)o.reading=!1,IVa(e,o);else{var l;if(a||(l=pVa(o,t)),l)WXe(e,l);else if(o.objectMode||t&&t.length>0)if(typeof t!="string"&&!o.objectMode&&Object.getPrototypeOf(t)!==J0t.prototype&&(t=iVa(t)),n)o.endEmitted?WXe(e,new AVa):ewr(e,o,t,!0);else if(o.ended)WXe(e,new uVa);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||t.length!==0?ewr(e,o,t,!1):rwr(e,o)):ewr(e,o,t,!1)}else n||(o.reading=!1,rwr(e,o))}return!o.ended&&(o.length=ami?e=ami:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function cmi(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=fVa(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}y_.prototype.read=function(e){Sm("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Sm("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?twr(this):K0t(this),null;if(e=cmi(e,t),e===0&&t.ended)return t.length===0&&twr(this),null;var n=t.needReadable;Sm("need readable",n),(t.length===0||t.length-e0?a=pmi(e,t):a=null,a===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&twr(this)),a!==null&&this.emit("data",a),a};function IVa(e,t){if(Sm("onEofChunk"),!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,t.sync?K0t(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Ami(e)))}}function K0t(e){var t=e._readableState;Sm("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Sm("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Ami,e))}function Ami(e){var t=e._readableState;Sm("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,iwr(e)}function rwr(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(hVa,e,t))}function hVa(e,t){for(;!t.reading&&!t.ended&&(t.length1&&fmi(n.pipes,e)!==-1)&&!I&&(Sm("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function E(Q){Sm("onerror",Q),F(),e.removeListener("error",E),lmi(e,"error")===0&&WXe(e,Q)}dVa(e,"error",E);function N(){e.removeListener("finish",B),F()}e.once("close",N);function B(){Sm("onfinish"),e.removeListener("close",N),F()}e.once("finish",B);function F(){Sm("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Sm("pipe resume"),r.resume()),e};function mVa(e){return function(){var r=e._readableState;Sm("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&lmi(e,"data")&&(r.flowing=!0,iwr(e))}}y_.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};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,r),this);if(!e){var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Sm("on readable",n.length,n.reading),n.length?K0t(this):n.reading||process.nextTick(CVa,this)),r};y_.prototype.addListener=y_.prototype.on;y_.prototype.removeListener=function(e,t){var r=OXe.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(dmi,this),r};y_.prototype.removeAllListeners=function(e){var t=OXe.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(dmi,this),t};function dmi(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function CVa(e){Sm("readable nexttick read 0"),e.read(0)}y_.prototype.resume=function(){var e=this._readableState;return e.flowing||(Sm("resume"),e.flowing=!e.readableListening,_Va(this,e)),e.paused=!1,this};function _Va(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(yVa,e,t))}function yVa(e,t){Sm("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),iwr(e),t.flowing&&!t.reading&&e.read(0)}y_.prototype.pause=function(){return Sm("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Sm("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iwr(e){var t=e._readableState;for(Sm("flow",t.flowing);t.flowing&&e.read()!==null;);}y_.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;e.on("end",function(){if(Sm("wrapped end"),r.decoder&&!r.ended){var l=r.decoder.end();l&&l.length&&t.push(l)}t.push(null)}),e.on("data",function(l){if(Sm("wrapped data"),r.decoder&&(l=r.decoder.write(l)),!(r.objectMode&&l==null)&&!(!r.objectMode&&(!l||!l.length))){var A=t.push(l);A||(n=!0,e.pause())}});for(var a in e)this[a]===void 0&&typeof e[a]=="function"&&(this[a]=function(A){return function(){return e[A].apply(e,arguments)}}(a));for(var o=0;o<$Br.length;o++)e.on($Br[o],this.emit.bind(this,$Br[o]));return this._read=function(l){Sm("wrapped _read",l),n&&(n=!1,e.resume())},this};typeof Symbol=="function"&&(y_.prototype[Symbol.asyncIterator]=function(){return zBr===void 0&&(zBr=rmi()),zBr(this)});Object.defineProperty(y_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(y_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(y_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}});y_._fromList=pmi;Object.defineProperty(y_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function pmi(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.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function twr(e){var t=e._readableState;Sm("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(bVa,t,e))}function bVa(e,t){if(Sm("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(y_.from=function(e,t){return qBr===void 0&&(qBr=omi()),qBr(y_,e,t)});function fmi(e,t){for(var r=0,n=e.length;r{"use strict";mmi.exports=iee;var j0t=Pae().codes,EVa=j0t.ERR_METHOD_NOT_IMPLEMENTED,SVa=j0t.ERR_MULTIPLE_CALLBACK,vVa=j0t.ERR_TRANSFORM_ALREADY_TRANSFORMING,BVa=j0t.ERR_TRANSFORM_WITH_LENGTH_0,z0t=Xhe();Wae()(iee,z0t);function wVa(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new SVa);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";_mi.exports=MXe;var Cmi=swr();Wae()(MXe,Cmi);function MXe(e){if(!(this instanceof MXe))return new MXe(e);Cmi.call(this,e)}MXe.prototype._transform=function(e,t,r){r(null,e)}});var Bmi=H((I1u,vmi)=>{"use strict";var owr;function RVa(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Smi=Pae().codes,NVa=Smi.ERR_MISSING_ARGS,DVa=Smi.ERR_STREAM_DESTROYED;function bmi(e){if(e)throw e}function kVa(e){return e.setHeader&&typeof e.abort=="function"}function xVa(e,t,r,n){n=RVa(n);var a=!1;e.on("close",function(){a=!0}),owr===void 0&&(owr=Y0t()),owr(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,kVa(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(l||new DVa("pipe"))}}}function Emi(e){e()}function GVa(e,t){return e.pipe(t)}function FVa(e){return!e.length||typeof e[e.length-1]!="function"?bmi:e.pop()}function ZVa(){for(var e=arguments.length,t=new Array(e),r=0;r0;return xVa(l,f,I,function(C){a||(a=C),C&&o.forEach(Emi),!f&&(o.forEach(Emi),n(a))})});return t.reduce(GVa)}vmi.exports=ZVa});var lRe=H((XM,YXe)=>{var HXe=wt("stream");process.env.READABLE_STREAM==="disable"&&HXe?(YXe.exports=HXe.Readable,Object.assign(YXe.exports,HXe),YXe.exports.Stream=HXe):(XM=YXe.exports=YBr(),XM.Stream=HXe||XM,XM.Readable=XM,XM.Writable=OBr(),XM.Duplex=Xhe(),XM.Transform=swr(),XM.PassThrough=ymi(),XM.finished=Y0t(),XM.pipeline=Bmi())});var Rmi=H((h1u,Tmi)=>{"use strict";var{Buffer:UX}=wt("buffer"),wmi=Symbol.for("BufferList");function LE(e){if(!(this instanceof LE))return new LE(e);LE._init.call(this,e)}LE._init=function(t){Object.defineProperty(this,wmi,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};LE.prototype._new=function(t){return new LE(t)};LE.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let n=0;nthis.length||t<0)return;let r=this._offset(t);return this._bufs[r[0]][r[1]]};LE.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};LE.prototype.copy=function(t,r,n,a){if((typeof n!="number"||n<0)&&(n=0),(typeof a!="number"||a>this.length)&&(a=this.length),n>=this.length||a<=0)return t||UX.alloc(0);let o=!!t,l=this._offset(n),A=a-n,f=A,I=o&&r||0,C=l[1];if(n===0&&a===this.length){if(!o)return this._bufs.length===1?this._bufs[0]:UX.concat(this._bufs,this.length);for(let b=0;bE)this._bufs[b].copy(t,I,C),I+=E;else{this._bufs[b].copy(t,I,C,C+f),I+=E;break}f-=E,C&&(C=0)}return t.length>I?t.slice(0,I):t};LE.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();let n=this._offset(t),a=this._offset(r),o=this._bufs.slice(n[0],a[0]+1);return a[1]===0?o.pop():o[o.length-1]=o[o.length-1].slice(0,a[1]),n[1]!==0&&(o[0]=o[0].slice(n[1])),this._new(o)};LE.prototype.toString=function(t,r,n){return this.slice(r,n).toString(t)};LE.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};LE.prototype.duplicate=function(){let t=this._new();for(let r=0;rthis.length?this.length:t;let n=this._offset(t),a=n[0],o=n[1];for(;a=e.length){let f=l.indexOf(e,o);if(f!==-1)return this._reverseOffset([a,f]);o=l.length-e.length+1}else{let f=this._reverseOffset([a,o]);if(this._match(f,e))return f;o++}o=0}return-1};LE.prototype._match=function(e,t){if(this.length-e{"use strict";var awr=lRe().Duplex,LVa=Wae(),QXe=Rmi();function TG(e){if(!(this instanceof TG))return new TG(e);if(typeof e=="function"){this._callback=e;let t=function(n){this._callback&&(this._callback(n),this._callback=null)}.bind(this);this.on("pipe",function(n){n.on("error",t)}),this.on("unpipe",function(n){n.removeListener("error",t)}),e=null}QXe._init.call(this,e),awr.call(this)}LVa(TG,awr);Object.assign(TG.prototype,QXe.prototype);TG.prototype._new=function(t){return new TG(t)};TG.prototype._write=function(t,r,n){this._appendBuffer(t),typeof n=="function"&&n()};TG.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};TG.prototype.end=function(t){awr.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};TG.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};TG.prototype._isBufferList=function(t){return t instanceof TG||t instanceof QXe||TG.isBufferList(t)};TG.isBufferList=QXe.isBufferList;q0t.exports=TG;q0t.exports.BufferListStream=TG;q0t.exports.BufferList=QXe});var gwr=H(gRe=>{var VVa=Buffer.alloc,PVa="0000000000000000000",WVa="7777777777777777777",Nmi=48,Dmi=Buffer.from("ustar\0","binary"),OVa=Buffer.from("00","binary"),MVa=Buffer.from("ustar ","binary"),HVa=Buffer.from(" \0","binary"),YVa=parseInt("7777",8),XXe=257,uwr=263,QVa=function(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)},XVa=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},JVa=function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},kmi=function(e,t,r,n){for(;rt?WVa.slice(0,t)+" ":PVa.slice(0,t-e.length)+e+" "};function UVa(e){var t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;for(var r=[],n=e.length-1;n>0;n--){var a=e[n];t?r.push(a):r.push(255-a)}var o=0,l=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e};gRe.decodeLongPath=function(e,t){return uRe(e,0,e.length,t)};gRe.encodePax=function(e){var t="";e.name&&(t+=lwr(" path="+e.name+` +`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};TIi.Parser=CBr});var xIi=H(TXe=>{"use strict";var RIi=oBr(),kZa=CXe(),wXe=bXe(),xZa=ivr(),GZa=mBr(),NIi=_Br();function DIi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new GZa.LineCounter||null,prettyErrors:t}}function FZa(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=Array.from(o.compose(a.parse(e)));if(n&&r)for(let A of l)A.errors.forEach(wXe.prettifyError(e,r)),A.warnings.forEach(wXe.prettifyError(e,r));return l.length>0?l:Object.assign([],{empty:!0},o.streamInfo())}function kIi(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=null;for(let A of o.compose(a.parse(e),!0,e.length))if(!l)l=A;else if(l.options.logLevel!=="silent"){l.errors.push(new wXe.YAMLParseError(A.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(l.errors.forEach(wXe.prettifyError(e,r)),l.warnings.forEach(wXe.prettifyError(e,r))),l}function ZZa(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let a=kIi(e,r);if(!a)return null;if(a.warnings.forEach(o=>xZa.warn(a.options.logLevel,o)),a.errors.length>0){if(a.options.logLevel!=="silent")throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:n},r))}function LZa(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let a=Math.round(r);r=a<1?void 0:a>8?{indent:8}:{indent:a}}if(e===void 0){let{keepUndefined:a}=r??t??{};if(!a)return}return new kZa.Document(e,n,r).toString(r)}TXe.parse=ZZa;TXe.parseAllDocuments=FZa;TXe.parseDocument=kIi;TXe.stringify=LZa});var FIi=H(J0=>{"use strict";var VZa=oBr(),PZa=CXe(),WZa=Wvr(),yBr=bXe(),OZa=sXe(),Vae=C0(),MZa=Gae(),HZa=gT(),YZa=Zae(),QZa=Lae(),XZa=C0t(),JZa=IBr(),UZa=mBr(),KZa=_Br(),b0t=xIi(),GIi=tXe();J0.Composer=VZa.Composer;J0.Document=PZa.Document;J0.Schema=WZa.Schema;J0.YAMLError=yBr.YAMLError;J0.YAMLParseError=yBr.YAMLParseError;J0.YAMLWarning=yBr.YAMLWarning;J0.Alias=OZa.Alias;J0.isAlias=Vae.isAlias;J0.isCollection=Vae.isCollection;J0.isDocument=Vae.isDocument;J0.isMap=Vae.isMap;J0.isNode=Vae.isNode;J0.isPair=Vae.isPair;J0.isScalar=Vae.isScalar;J0.isSeq=Vae.isSeq;J0.Pair=MZa.Pair;J0.Scalar=HZa.Scalar;J0.YAMLMap=YZa.YAMLMap;J0.YAMLSeq=QZa.YAMLSeq;J0.CST=XZa;J0.Lexer=JZa.Lexer;J0.LineCounter=UZa.LineCounter;J0.Parser=KZa.Parser;J0.parse=b0t.parse;J0.parseAllDocuments=b0t.parseAllDocuments;J0.parseDocument=b0t.parseDocument;J0.stringify=b0t.stringify;J0.visit=GIi.visit;J0.visitAsync=GIi.visitAsync});var HIi=H((wbu,NXe)=>{var JX=wt("path"),RXe=wt("fs"),qZa=wt("os"),LIi=RXe.promises.readFile;function $Za(e,t){return["package.json",`.${e}rc.json`,`.${e}rc.js`,`.${e}rc.cjs`,...t?[]:[`.${e}rc.mjs`],`.config/${e}rc`,`.config/${e}rc.json`,`.config/${e}rc.js`,`.config/${e}rc.cjs`,...t?[]:[`.config/${e}rc.mjs`],`${e}.config.js`,`${e}.config.cjs`,...t?[]:[`${e}.config.mjs`]]}function T0t(e){return JX.dirname(e)||JX.sep}var SBr=(e,t)=>JSON.parse(t),w0t=typeof __webpack_require__=="function"?__non_webpack_require__:wt,VIi=Object.freeze({".js":w0t,".json":w0t,".cjs":w0t,noExt:SBr});NXe.exports.defaultLoadersSync=VIi;var EBr=async e=>{try{return(await import(e)).default}catch(t){try{return w0t(e)}catch(r){throw r.code==="ERR_REQUIRE_ESM"||r instanceof SyntaxError&&r.toString().includes("Cannot use import statement outside a module")?t:r}}},PIi=Object.freeze({".js":EBr,".mjs":EBr,".cjs":EBr,".json":SBr,noExt:SBr});NXe.exports.defaultLoaders=PIi;function WIi(e,t,r){let n={stopDir:qZa.homedir(),searchPlaces:$Za(e,r),ignoreEmptySearchPlaces:!0,cache:!0,transform:a=>a,packageProp:[e],...t,loaders:{...r?VIi:PIi,...t.loaders}};return n.searchPlaces.forEach(a=>{let o=JX.extname(a)||"noExt",l=n.loaders[o];if(!l)throw new Error(`Missing loader for extension "${a}"`);if(typeof l!="function")throw new Error(`Loader for extension "${a}" is not a function: Received ${typeof l}.`)}),n}function R0t(e,t){return typeof e=="string"&&e in t?t[e]:(Array.isArray(e)?e:e.split(".")).reduce((r,n)=>r===void 0?r:r[n],t)||null}function OIi(e){if(!e)throw new Error("load must pass a non-empty string")}function N0t(e,t){if(!e)throw new Error(`No loader specified for extension "${t}"`);if(typeof e!="function")throw new Error("loader is not a function")}var MIi=e=>(t,r,n)=>(e&&t.set(r,n),n);NXe.exports.lilconfig=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!1),C=new Map,b=new Map,E=MIi(I);return{async search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{await RXe.promises.access(ne)}catch{continue}let ce=String(await LIi(ne)),fe=JX.extname(ae)||"noExt",ue=a[fe];if(ae==="package.json"){let be=await ue(ne,ce),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ce.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(ue,fe),B.config=await ue(ne,ce)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},async load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(await LIi(B));if(F==="package.json"){let ue=await ae(B,ne);return E(b,B,f({config:R0t(o,ue),filepath:B}))}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({config:void 0,filepath:B,isEmpty:!0})):(ce.config=fe?void 0:await ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}};NXe.exports.lilconfigSync=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!0),C=new Map,b=new Map,E=MIi(I);return{search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{RXe.accessSync(ne)}catch{continue}let ce=JX.extname(ae)||"noExt",fe=a[ce],ue=String(RXe.readFileSync(ne));if(ae==="package.json"){let be=fe(ne,ue),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ue.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(fe,ce),B.config=fe(ne,ue)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(RXe.readFileSync(B));if(F==="package.json"){let ue=ae(B,ne);return f({config:R0t(o,ue),filepath:B})}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({filepath:B,config:void 0,isEmpty:!0})):(ce.config=fe?void 0:ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}}});var DBr=H(($Eu,Ehi)=>{Ehi.exports=wt("stream")});var Rhi=H((e1u,Thi)=>{"use strict";function Shi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vhi(e){for(var t=1;t0?this.tail.next=n:this.head=n,this.tail=n,++this.length}},{key:"unshift",value:function(r){var n={data:r,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var n=this.head,a=""+n.data;n=n.next;)a+=r+n.data;return a}},{key:"concat",value:function(r){if(this.length===0)return L0t.alloc(0);for(var n=L0t.allocUnsafe(r>>>0),a=this.head,o=0;a;)PLa(a.data,n,o),o+=a.data.length,a=a.next;return n}},{key:"consume",value:function(r,n){var a;return rl.length?l.length:r;if(A===l.length?o+=l:o+=l.slice(0,r),r-=A,r===0){A===l.length?(++a,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=l.slice(A));break}++a}return this.length-=a,o}},{key:"_getBuffer",value:function(r){var n=L0t.allocUnsafe(r),a=this.head,o=1;for(a.data.copy(n),r-=a.data.length;a=a.next;){var l=a.data,A=r>l.length?l.length:r;if(l.copy(n,n.length-r,0,A),r-=A,r===0){A===l.length?(++o,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=l.slice(A));break}++o}return this.length-=o,n}},{key:VLa,value:function(r,n){return kBr(this,vhi(vhi({},n),{},{depth:0,customInspect:!1}))}}]),e}()});var GBr=H((t1u,Dhi)=>{"use strict";function WLa(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return n||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(xBr,this,e)):process.nextTick(xBr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(o){!t&&o?r._writableState?r._writableState.errorEmitted?process.nextTick(V0t,r):(r._writableState.errorEmitted=!0,process.nextTick(Nhi,r,o)):process.nextTick(Nhi,r,o):t?(process.nextTick(V0t,r),t(o)):process.nextTick(V0t,r)}),this)}function Nhi(e,t){xBr(e,t),V0t(e)}function V0t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function OLa(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function xBr(e,t){e.emit("error",t)}function MLa(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}Dhi.exports={destroy:WLa,undestroy:OLa,errorOrDestroy:MLa}});var Pae=H((r1u,Ghi)=>{"use strict";var xhi={};function QM(e,t,r){r||(r=Error);function n(o,l,A){return typeof t=="string"?t:t(o,l,A)}class a extends r{constructor(l,A,f){super(n(l,A,f))}}a.prototype.name=r.name,a.prototype.code=e,xhi[e]=a}function khi(e,t){if(Array.isArray(e)){let r=e.length;return e=e.map(n=>String(n)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:r===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function HLa(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function YLa(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function QLa(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}QM("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);QM("ERR_INVALID_ARG_TYPE",function(e,t,r){let n;typeof t=="string"&&HLa(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";let a;if(YLa(e," argument"))a=`The ${e} ${n} ${khi(t,"type")}`;else{let o=QLa(e,".")?"property":"argument";a=`The "${e}" ${o} ${n} ${khi(t,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);QM("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");QM("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});QM("ERR_STREAM_PREMATURE_CLOSE","Premature close");QM("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});QM("ERR_MULTIPLE_CALLBACK","Callback called multiple times");QM("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");QM("ERR_STREAM_WRITE_AFTER_END","write after end");QM("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);QM("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);QM("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ghi.exports.codes=xhi});var FBr=H((n1u,Fhi)=>{"use strict";var XLa=Pae().codes.ERR_INVALID_OPT_VALUE;function JLa(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function ULa(e,t,r,n){var a=JLa(t,n,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=n?r:"highWaterMark";throw new XLa(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}Fhi.exports={getHighWaterMark:ULa}});var Zhi=H((i1u,ZBr)=>{typeof Object.create=="function"?ZBr.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ZBr.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var Wae=H((s1u,VBr)=>{try{if(LBr=wt("util"),typeof LBr.inherits!="function")throw"";VBr.exports=LBr.inherits}catch{VBr.exports=Zhi()}var LBr});var Vhi=H((o1u,Lhi)=>{Lhi.exports=wt("util").deprecate});var OBr=H((a1u,Yhi)=>{"use strict";Yhi.exports=Hv;function Whi(e){var t=this;this.next=null,this.entry=null,this.finish=function(){y9a(t,e)}}var sRe;Hv.WritableState=LXe;var KLa={deprecate:Vhi()},Ohi=DBr(),W0t=wt("buffer").Buffer,jLa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function zLa(e){return W0t.from(e)}function qLa(e){return W0t.isBuffer(e)||e instanceof jLa}var WBr=GBr(),$La=FBr(),e9a=$La.getHighWaterMark,Oae=Pae().codes,t9a=Oae.ERR_INVALID_ARG_TYPE,r9a=Oae.ERR_METHOD_NOT_IMPLEMENTED,n9a=Oae.ERR_MULTIPLE_CALLBACK,i9a=Oae.ERR_STREAM_CANNOT_PIPE,s9a=Oae.ERR_STREAM_DESTROYED,o9a=Oae.ERR_STREAM_NULL_VALUES,a9a=Oae.ERR_STREAM_WRITE_AFTER_END,c9a=Oae.ERR_UNKNOWN_ENCODING,oRe=WBr.errorOrDestroy;Wae()(Hv,Ohi);function l9a(){}function LXe(e,t,r){sRe=sRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof sRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=e9a(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){I9a(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Whi(this)}LXe.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(LXe.prototype,"buffer",{get:KLa.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var P0t;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(P0t=Function.prototype[Symbol.hasInstance],Object.defineProperty(Hv,Symbol.hasInstance,{value:function(t){return P0t.call(this,t)?!0:this!==Hv?!1:t&&t._writableState instanceof LXe}})):P0t=function(t){return t instanceof this};function Hv(e){sRe=sRe||Xhe();var t=this instanceof sRe;if(!t&&!P0t.call(Hv,this))return new Hv(e);this._writableState=new LXe(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Ohi.call(this)}Hv.prototype.pipe=function(){oRe(this,new i9a)};function u9a(e,t){var r=new a9a;oRe(e,r),process.nextTick(t,r)}function g9a(e,t,r,n){var a;return r===null?a=new o9a:typeof r!="string"&&!t.objectMode&&(a=new t9a("chunk",["string","Buffer"],r)),a?(oRe(e,a),process.nextTick(n,a),!1):!0}Hv.prototype.write=function(e,t,r){var n=this._writableState,a=!1,o=!n.objectMode&&qLa(e);return o&&!W0t.isBuffer(e)&&(e=zLa(e)),typeof t=="function"&&(r=t,t=null),o?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=l9a),n.ending?u9a(this,r):(o||g9a(this,n,e,r))&&(n.pendingcb++,a=d9a(this,n,o,e,t,r)),a};Hv.prototype.cork=function(){this._writableState.corked++};Hv.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Mhi(this,e))};Hv.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 c9a(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(Hv.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function A9a(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=W0t.from(t,r)),t}Object.defineProperty(Hv.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function d9a(e,t,r,n,a,o){if(!r){var l=A9a(t,n,a);n!==l&&(r=!0,a="buffer",n=l)}var A=t.objectMode?1:n.length;t.length+=A;var f=t.length{"use strict";var b9a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};Xhi.exports=j8;var Qhi=YBr(),HBr=OBr();Wae()(j8,Qhi);for(MBr=b9a(HBr.prototype),O0t=0;O0t{var H0t=wt("buffer"),z8=H0t.Buffer;function Jhi(e,t){for(var r in e)t[r]=e[r]}z8.from&&z8.alloc&&z8.allocUnsafe&&z8.allocUnsafeSlow?Uhi.exports=H0t:(Jhi(H0t,QBr),QBr.Buffer=Jhe);function Jhe(e,t,r){return z8(e,t,r)}Jhe.prototype=Object.create(z8.prototype);Jhi(z8,Jhe);Jhe.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return z8(e,t,r)};Jhe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=z8(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Jhe.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return z8(e)};Jhe.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return H0t.SlowBuffer(e)}});var UBr=H(zhi=>{"use strict";var JBr=Khi().Buffer,jhi=JBr.isEncoding||function(e){switch(e=""+e,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 v9a(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function B9a(e){var t=v9a(e);if(typeof t!="string"&&(JBr.isEncoding===jhi||!jhi(e)))throw new Error("Unknown encoding: "+e);return t||e}zhi.StringDecoder=VXe;function VXe(e){this.encoding=B9a(e);var t;switch(this.encoding){case"utf16le":this.text=k9a,this.end=x9a,t=4;break;case"utf8":this.fillLast=R9a,t=4;break;case"base64":this.text=G9a,this.end=F9a,t=3;break;default:this.write=Z9a,this.end=L9a;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=JBr.allocUnsafe(t)}VXe.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function w9a(e,t,r){var n=t.length-1;if(n=0?(a>0&&(e.lastNeed=a-1),a):--n=0?(a>0&&(e.lastNeed=a-2),a):--n=0?(a>0&&(a===2?a=0:e.lastNeed=a-3),a):0))}function T9a(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function R9a(e){var t=this.lastTotal-this.lastNeed,r=T9a(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function N9a(e,t){var r=w9a(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function D9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function k9a(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function x9a(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function G9a(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function F9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Z9a(e){return e.toString(this.encoding)}function L9a(e){return e&&e.length?this.write(e):""}});var Y0t=H((u1u,emi)=>{"use strict";var qhi=Pae().codes.ERR_STREAM_PREMATURE_CLOSE;function V9a(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a{"use strict";var Q0t;function Mae(e,t,r){return t=O9a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O9a(e){var t=M9a(e,"string");return typeof t=="symbol"?t:String(t)}function M9a(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var H9a=Y0t(),Hae=Symbol("lastResolve"),Uhe=Symbol("lastReject"),PXe=Symbol("error"),X0t=Symbol("ended"),Khe=Symbol("lastPromise"),KBr=Symbol("handlePromise"),jhe=Symbol("stream");function Yae(e,t){return{value:e,done:t}}function Y9a(e){var t=e[Hae];if(t!==null){var r=e[jhe].read();r!==null&&(e[Khe]=null,e[Hae]=null,e[Uhe]=null,t(Yae(r,!1)))}}function Q9a(e){process.nextTick(Y9a,e)}function X9a(e,t){return function(r,n){e.then(function(){if(t[X0t]){r(Yae(void 0,!0));return}t[KBr](r,n)},n)}}var J9a=Object.getPrototypeOf(function(){}),U9a=Object.setPrototypeOf((Q0t={get stream(){return this[jhe]},next:function(){var t=this,r=this[PXe];if(r!==null)return Promise.reject(r);if(this[X0t])return Promise.resolve(Yae(void 0,!0));if(this[jhe].destroyed)return new Promise(function(l,A){process.nextTick(function(){t[PXe]?A(t[PXe]):l(Yae(void 0,!0))})});var n=this[Khe],a;if(n)a=new Promise(X9a(n,this));else{var o=this[jhe].read();if(o!==null)return Promise.resolve(Yae(o,!1));a=new Promise(this[KBr])}return this[Khe]=a,a}},Mae(Q0t,Symbol.asyncIterator,function(){return this}),Mae(Q0t,"return",function(){var t=this;return new Promise(function(r,n){t[jhe].destroy(null,function(a){if(a){n(a);return}r(Yae(void 0,!0))})})}),Q0t),J9a),K9a=function(t){var r,n=Object.create(U9a,(r={},Mae(r,jhe,{value:t,writable:!0}),Mae(r,Hae,{value:null,writable:!0}),Mae(r,Uhe,{value:null,writable:!0}),Mae(r,PXe,{value:null,writable:!0}),Mae(r,X0t,{value:t._readableState.endEmitted,writable:!0}),Mae(r,KBr,{value:function(o,l){var A=n[jhe].read();A?(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(Yae(A,!1))):(n[Hae]=o,n[Uhe]=l)},writable:!0}),r));return n[Khe]=null,H9a(t,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var o=n[Uhe];o!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(a)),n[PXe]=a;return}var l=n[Hae];l!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,l(Yae(void 0,!0))),n[X0t]=!0}),t.on("readable",Q9a.bind(null,n)),n};tmi.exports=K9a});var omi=H((A1u,smi)=>{"use strict";function nmi(e,t,r,n,a,o,l){try{var A=e[o](l),f=A.value}catch(I){r(I);return}A.done?t(f):Promise.resolve(f).then(n,a)}function j9a(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(f){nmi(o,n,a,l,A,"next",f)}function A(f){nmi(o,n,a,l,A,"throw",f)}l(void 0)})}}function imi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function z9a(e){for(var t=1;t{"use strict";Imi.exports=y_;var aRe;y_.ReadableState=umi;var d1u=wt("events").EventEmitter,lmi=function(t,r){return t.listeners(r).length},OXe=DBr(),J0t=wt("buffer").Buffer,nVa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iVa(e){return J0t.from(e)}function sVa(e){return J0t.isBuffer(e)||e instanceof nVa}var jBr=wt("util"),Sm;jBr&&jBr.debuglog?Sm=jBr.debuglog("stream"):Sm=function(){};var oVa=Rhi(),nwr=GBr(),aVa=FBr(),cVa=aVa.getHighWaterMark,U0t=Pae().codes,lVa=U0t.ERR_INVALID_ARG_TYPE,uVa=U0t.ERR_STREAM_PUSH_AFTER_EOF,gVa=U0t.ERR_METHOD_NOT_IMPLEMENTED,AVa=U0t.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,cRe,zBr,qBr;Wae()(y_,OXe);var WXe=nwr.errorOrDestroy,$Br=["error","close","destroy","pause","resume"];function dVa(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 umi(e,t,r){aRe=aRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof aRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cVa(this,e,"readableHighWaterMark",r),this.buffer=new oVa,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.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(cRe||(cRe=UBr().StringDecoder),this.decoder=new cRe(e.encoding),this.encoding=e.encoding)}function y_(e){if(aRe=aRe||Xhe(),!(this instanceof y_))return new y_(e);var t=this instanceof aRe;this._readableState=new umi(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),OXe.call(this)}Object.defineProperty(y_.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});y_.prototype.destroy=nwr.destroy;y_.prototype._undestroy=nwr.undestroy;y_.prototype._destroy=function(e,t){t(e)};y_.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=J0t.from(e,t),t=""),n=!0),gmi(this,e,t,!1,n)};y_.prototype.unshift=function(e){return gmi(this,e,null,!0,!1)};function gmi(e,t,r,n,a){Sm("readableAddChunk",t);var o=e._readableState;if(t===null)o.reading=!1,IVa(e,o);else{var l;if(a||(l=pVa(o,t)),l)WXe(e,l);else if(o.objectMode||t&&t.length>0)if(typeof t!="string"&&!o.objectMode&&Object.getPrototypeOf(t)!==J0t.prototype&&(t=iVa(t)),n)o.endEmitted?WXe(e,new AVa):ewr(e,o,t,!0);else if(o.ended)WXe(e,new uVa);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||t.length!==0?ewr(e,o,t,!1):rwr(e,o)):ewr(e,o,t,!1)}else n||(o.reading=!1,rwr(e,o))}return!o.ended&&(o.length=ami?e=ami:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function cmi(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=fVa(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}y_.prototype.read=function(e){Sm("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Sm("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?twr(this):K0t(this),null;if(e=cmi(e,t),e===0&&t.ended)return t.length===0&&twr(this),null;var n=t.needReadable;Sm("need readable",n),(t.length===0||t.length-e0?a=pmi(e,t):a=null,a===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&twr(this)),a!==null&&this.emit("data",a),a};function IVa(e,t){if(Sm("onEofChunk"),!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,t.sync?K0t(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Ami(e)))}}function K0t(e){var t=e._readableState;Sm("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Sm("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Ami,e))}function Ami(e){var t=e._readableState;Sm("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,iwr(e)}function rwr(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(hVa,e,t))}function hVa(e,t){for(;!t.reading&&!t.ended&&(t.length1&&fmi(n.pipes,e)!==-1)&&!I&&(Sm("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function E(Q){Sm("onerror",Q),F(),e.removeListener("error",E),lmi(e,"error")===0&&WXe(e,Q)}dVa(e,"error",E);function N(){e.removeListener("finish",B),F()}e.once("close",N);function B(){Sm("onfinish"),e.removeListener("close",N),F()}e.once("finish",B);function F(){Sm("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Sm("pipe resume"),r.resume()),e};function mVa(e){return function(){var r=e._readableState;Sm("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&lmi(e,"data")&&(r.flowing=!0,iwr(e))}}y_.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};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,r),this);if(!e){var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Sm("on readable",n.length,n.reading),n.length?K0t(this):n.reading||process.nextTick(CVa,this)),r};y_.prototype.addListener=y_.prototype.on;y_.prototype.removeListener=function(e,t){var r=OXe.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(dmi,this),r};y_.prototype.removeAllListeners=function(e){var t=OXe.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(dmi,this),t};function dmi(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function CVa(e){Sm("readable nexttick read 0"),e.read(0)}y_.prototype.resume=function(){var e=this._readableState;return e.flowing||(Sm("resume"),e.flowing=!e.readableListening,_Va(this,e)),e.paused=!1,this};function _Va(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(yVa,e,t))}function yVa(e,t){Sm("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),iwr(e),t.flowing&&!t.reading&&e.read(0)}y_.prototype.pause=function(){return Sm("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Sm("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iwr(e){var t=e._readableState;for(Sm("flow",t.flowing);t.flowing&&e.read()!==null;);}y_.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;e.on("end",function(){if(Sm("wrapped end"),r.decoder&&!r.ended){var l=r.decoder.end();l&&l.length&&t.push(l)}t.push(null)}),e.on("data",function(l){if(Sm("wrapped data"),r.decoder&&(l=r.decoder.write(l)),!(r.objectMode&&l==null)&&!(!r.objectMode&&(!l||!l.length))){var A=t.push(l);A||(n=!0,e.pause())}});for(var a in e)this[a]===void 0&&typeof e[a]=="function"&&(this[a]=function(A){return function(){return e[A].apply(e,arguments)}}(a));for(var o=0;o<$Br.length;o++)e.on($Br[o],this.emit.bind(this,$Br[o]));return this._read=function(l){Sm("wrapped _read",l),n&&(n=!1,e.resume())},this};typeof Symbol=="function"&&(y_.prototype[Symbol.asyncIterator]=function(){return zBr===void 0&&(zBr=rmi()),zBr(this)});Object.defineProperty(y_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(y_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(y_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}});y_._fromList=pmi;Object.defineProperty(y_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function pmi(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.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function twr(e){var t=e._readableState;Sm("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(bVa,t,e))}function bVa(e,t){if(Sm("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(y_.from=function(e,t){return qBr===void 0&&(qBr=omi()),qBr(y_,e,t)});function fmi(e,t){for(var r=0,n=e.length;r{"use strict";mmi.exports=iee;var j0t=Pae().codes,EVa=j0t.ERR_METHOD_NOT_IMPLEMENTED,SVa=j0t.ERR_MULTIPLE_CALLBACK,vVa=j0t.ERR_TRANSFORM_ALREADY_TRANSFORMING,BVa=j0t.ERR_TRANSFORM_WITH_LENGTH_0,z0t=Xhe();Wae()(iee,z0t);function wVa(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new SVa);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";_mi.exports=MXe;var Cmi=swr();Wae()(MXe,Cmi);function MXe(e){if(!(this instanceof MXe))return new MXe(e);Cmi.call(this,e)}MXe.prototype._transform=function(e,t,r){r(null,e)}});var Bmi=H((h1u,vmi)=>{"use strict";var owr;function RVa(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Smi=Pae().codes,NVa=Smi.ERR_MISSING_ARGS,DVa=Smi.ERR_STREAM_DESTROYED;function bmi(e){if(e)throw e}function kVa(e){return e.setHeader&&typeof e.abort=="function"}function xVa(e,t,r,n){n=RVa(n);var a=!1;e.on("close",function(){a=!0}),owr===void 0&&(owr=Y0t()),owr(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,kVa(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(l||new DVa("pipe"))}}}function Emi(e){e()}function GVa(e,t){return e.pipe(t)}function FVa(e){return!e.length||typeof e[e.length-1]!="function"?bmi:e.pop()}function ZVa(){for(var e=arguments.length,t=new Array(e),r=0;r0;return xVa(l,f,I,function(C){a||(a=C),C&&o.forEach(Emi),!f&&(o.forEach(Emi),n(a))})});return t.reduce(GVa)}vmi.exports=ZVa});var lRe=H((XM,YXe)=>{var HXe=wt("stream");process.env.READABLE_STREAM==="disable"&&HXe?(YXe.exports=HXe.Readable,Object.assign(YXe.exports,HXe),YXe.exports.Stream=HXe):(XM=YXe.exports=YBr(),XM.Stream=HXe||XM,XM.Readable=XM,XM.Writable=OBr(),XM.Duplex=Xhe(),XM.Transform=swr(),XM.PassThrough=ymi(),XM.finished=Y0t(),XM.pipeline=Bmi())});var Rmi=H((m1u,Tmi)=>{"use strict";var{Buffer:UX}=wt("buffer"),wmi=Symbol.for("BufferList");function LE(e){if(!(this instanceof LE))return new LE(e);LE._init.call(this,e)}LE._init=function(t){Object.defineProperty(this,wmi,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};LE.prototype._new=function(t){return new LE(t)};LE.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let n=0;nthis.length||t<0)return;let r=this._offset(t);return this._bufs[r[0]][r[1]]};LE.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};LE.prototype.copy=function(t,r,n,a){if((typeof n!="number"||n<0)&&(n=0),(typeof a!="number"||a>this.length)&&(a=this.length),n>=this.length||a<=0)return t||UX.alloc(0);let o=!!t,l=this._offset(n),A=a-n,f=A,I=o&&r||0,C=l[1];if(n===0&&a===this.length){if(!o)return this._bufs.length===1?this._bufs[0]:UX.concat(this._bufs,this.length);for(let b=0;bE)this._bufs[b].copy(t,I,C),I+=E;else{this._bufs[b].copy(t,I,C,C+f),I+=E;break}f-=E,C&&(C=0)}return t.length>I?t.slice(0,I):t};LE.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();let n=this._offset(t),a=this._offset(r),o=this._bufs.slice(n[0],a[0]+1);return a[1]===0?o.pop():o[o.length-1]=o[o.length-1].slice(0,a[1]),n[1]!==0&&(o[0]=o[0].slice(n[1])),this._new(o)};LE.prototype.toString=function(t,r,n){return this.slice(r,n).toString(t)};LE.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};LE.prototype.duplicate=function(){let t=this._new();for(let r=0;rthis.length?this.length:t;let n=this._offset(t),a=n[0],o=n[1];for(;a=e.length){let f=l.indexOf(e,o);if(f!==-1)return this._reverseOffset([a,f]);o=l.length-e.length+1}else{let f=this._reverseOffset([a,o]);if(this._match(f,e))return f;o++}o=0}return-1};LE.prototype._match=function(e,t){if(this.length-e{"use strict";var awr=lRe().Duplex,LVa=Wae(),QXe=Rmi();function TG(e){if(!(this instanceof TG))return new TG(e);if(typeof e=="function"){this._callback=e;let t=function(n){this._callback&&(this._callback(n),this._callback=null)}.bind(this);this.on("pipe",function(n){n.on("error",t)}),this.on("unpipe",function(n){n.removeListener("error",t)}),e=null}QXe._init.call(this,e),awr.call(this)}LVa(TG,awr);Object.assign(TG.prototype,QXe.prototype);TG.prototype._new=function(t){return new TG(t)};TG.prototype._write=function(t,r,n){this._appendBuffer(t),typeof n=="function"&&n()};TG.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};TG.prototype.end=function(t){awr.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};TG.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};TG.prototype._isBufferList=function(t){return t instanceof TG||t instanceof QXe||TG.isBufferList(t)};TG.isBufferList=QXe.isBufferList;q0t.exports=TG;q0t.exports.BufferListStream=TG;q0t.exports.BufferList=QXe});var gwr=H(gRe=>{var VVa=Buffer.alloc,PVa="0000000000000000000",WVa="7777777777777777777",Nmi=48,Dmi=Buffer.from("ustar\0","binary"),OVa=Buffer.from("00","binary"),MVa=Buffer.from("ustar ","binary"),HVa=Buffer.from(" \0","binary"),YVa=parseInt("7777",8),XXe=257,uwr=263,QVa=function(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)},XVa=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},JVa=function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},kmi=function(e,t,r,n){for(;rt?WVa.slice(0,t)+" ":PVa.slice(0,t-e.length)+e+" "};function UVa(e){var t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;for(var r=[],n=e.length-1;n>0;n--){var a=e[n];t?r.push(a):r.push(255-a)}var o=0,l=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e};gRe.decodeLongPath=function(e,t){return uRe(e,0,e.length,t)};gRe.encodePax=function(e){var t="";e.name&&(t+=lwr(" path="+e.name+` `)),e.linkname&&(t+=lwr(" linkpath="+e.linkname+` `));var r=e.pax;if(r)for(var n in r)t+=lwr(" "+n+"="+r[n]+` -`);return Buffer.from(t)};gRe.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;n+=n?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(n)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(r),t.write(Qae(e.mode&YVa,6),100),t.write(Qae(e.uid,6),108),t.write(Qae(e.gid,6),116),t.write(Qae(e.size,11),124),t.write(Qae(e.mtime.getTime()/1e3|0,11),136),t[156]=Nmi+JVa(e.type),e.linkname&&t.write(e.linkname,157),Dmi.copy(t,XXe),OVa.copy(t,uwr),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(Qae(e.devmajor||0,6),329),t.write(Qae(e.devminor||0,6),337),n&&t.write(n,345),t.write(Qae(xmi(t),6),148),t)};gRe.decode=function(e,t,r){var n=e[156]===0?0:e[156]-Nmi,a=uRe(e,0,100,t),o=Xae(e,100,8),l=Xae(e,108,8),A=Xae(e,116,8),f=Xae(e,124,12),I=Xae(e,136,12),C=XVa(n),b=e[157]===0?null:uRe(e,157,100,t),E=uRe(e,265,32),N=uRe(e,297,32),B=Xae(e,329,8),F=Xae(e,337,8),Q=xmi(e);if(Q===8*32)return null;if(Q!==Xae(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Dmi.compare(e,XXe,XXe+6)===0)e[345]&&(a=uRe(e,345,155,t)+"/"+a);else if(!(MVa.compare(e,XXe,XXe+6)===0&&HVa.compare(e,uwr,uwr+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return n===0&&a&&a[a.length-1]==="/"&&(n=5),{name:a,mode:o,uid:l,gid:A,size:f,mtime:new Date(1e3*I),type:C,linkname:b,uname:E,gname:N,devmajor:B,devminor:F}}});var Wmi=H((_1u,Pmi)=>{var Fmi=wt("util"),KVa=cwr(),JXe=gwr(),Zmi=lRe().Writable,Lmi=lRe().PassThrough,Vmi=function(){},Gmi=function(e){return e&=511,e&&512-e},jVa=function(e,t){var r=new $0t(e,t);return r.end(),r},zVa=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},$0t=function(e,t){this._parent=e,this.offset=t,Lmi.call(this,{autoDestroy:!1})};Fmi.inherits($0t,Lmi);$0t.prototype.destroy=function(e){this._parent.destroy(e)};var see=function(e){if(!(this instanceof see))return new see(e);Zmi.call(this,e),e=e||{},this._offset=0,this._buffer=KVa(),this._missing=0,this._partial=!1,this._onparse=Vmi,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},a=function(E){if(t._locked=!1,E)return t.destroy(E);t._stream||n()},o=function(){t._stream=null;var E=Gmi(t._header.size);E?t._parse(E,l):t._parse(512,b),t._locked||n()},l=function(){t._buffer.consume(Gmi(t._header.size)),t._parse(512,b),n()},A=function(){var E=t._header.size;t._paxGlobal=JXe.decodePax(r.slice(0,E)),r.consume(E),o()},f=function(){var E=t._header.size;t._pax=JXe.decodePax(r.slice(0,E)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(E),o()},I=function(){var E=t._header.size;this._gnuLongPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},C=function(){var E=t._header.size;this._gnuLongLinkPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},b=function(){var E=t._offset,N;try{N=t._header=JXe.decode(r.slice(0,512),e.filenameEncoding,e.allowUnknownFormat)}catch(B){t.emit("error",B)}if(r.consume(512),!N){t._parse(512,b),n();return}if(N.type==="gnu-long-path"){t._parse(N.size,I),n();return}if(N.type==="gnu-long-link-path"){t._parse(N.size,C),n();return}if(N.type==="pax-global-header"){t._parse(N.size,A),n();return}if(N.type==="pax-header"){t._parse(N.size,f),n();return}if(t._gnuLongPath&&(N.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(N.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=N=zVa(N,t._pax),t._pax=null),t._locked=!0,!N.size||N.type==="directory"){t._parse(512,b),t.emit("entry",N,jVa(t,E),a);return}t._stream=new $0t(t,E),t.emit("entry",N,t._stream,a),t._parse(N.size,o),n()};this._onheader=b,this._parse(512,b)};Fmi.inherits(see,Zmi);see.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};see.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};see.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=Vmi,this._overflow?this._write(this._overflow,void 0,e):e()}};see.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(l=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=l,this._onparse()}};see.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()};Pmi.exports=see});var Mmi=H((y1u,Omi)=>{Omi.exports=wt("fs").constants||wt("constants")});var Jmi=H((b1u,Xmi)=>{var ARe=Mmi(),Hmi=Uur(),tyt=Wae(),qVa=Buffer.alloc,Ymi=lRe().Readable,dRe=lRe().Writable,$Va=wt("string_decoder").StringDecoder,eyt=gwr(),ePa=parseInt("755",8),tPa=parseInt("644",8),Qmi=qVa(1024),dwr=function(){},Awr=function(e,t){t&=511,t&&e.push(Qmi.slice(0,512-t))};function rPa(e){switch(e&ARe.S_IFMT){case ARe.S_IFBLK:return"block-device";case ARe.S_IFCHR:return"character-device";case ARe.S_IFDIR:return"directory";case ARe.S_IFIFO:return"fifo";case ARe.S_IFLNK:return"symlink"}return"file"}var ryt=function(e){dRe.call(this),this.written=0,this._to=e,this._destroyed=!1};tyt(ryt,dRe);ryt.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r};ryt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var nyt=function(){dRe.call(this),this.linkname="",this._decoder=new $Va("utf-8"),this._destroyed=!1};tyt(nyt,dRe);nyt.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()};nyt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var UXe=function(){dRe.call(this),this._destroyed=!1};tyt(UXe,dRe);UXe.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))};UXe.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var q8=function(e){if(!(this instanceof q8))return new q8(e);Ymi.call(this,e),this._drain=dwr,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};tyt(q8,Ymi);q8.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof t=="function"&&(r=t,t=null),r||(r=dwr);var n=this;if((!e.size||e.type==="symlink")&&(e.size=0),e.type||(e.type=rPa(e.mode)),e.mode||(e.mode=e.type==="directory"?ePa:tPa),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),typeof t=="string"&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var a=this.push(t);return Awr(n,e.size),a?process.nextTick(r):this._drain=r,new UXe}if(e.type==="symlink"&&!e.linkname){var o=new nyt;return Hmi(o,function(A){if(A)return n.destroy(),r(A);e.linkname=o.linkname,n._encode(e),r()}),o}if(this._encode(e),e.type!=="file"&&e.type!=="contiguous-file")return process.nextTick(r),new UXe;var l=new ryt(this);return this._stream=l,Hmi(l,function(A){if(n._stream=null,A)return n.destroy(),r(A);if(l.written!==e.size)return n.destroy(),r(new Error("size mismatch"));Awr(n,e.size),n._finalizing&&n.finalize(),r()}),l}};q8.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Qmi),this.push(null))};q8.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};q8.prototype._encode=function(e){if(!e.pax){var t=eyt.encode(e);if(t){this.push(t);return}}this._encodePax(e)};q8.prototype._encodePax=function(e){var t=eyt.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(eyt.encode(r)),this.push(t),Awr(this,t.length),r.size=e.size,r.type=e.type,this.push(eyt.encode(r))};q8.prototype._read=function(e){var t=this._drain;this._drain=dwr,t()};Xmi.exports=q8});var Umi=H(pwr=>{pwr.extract=Wmi();pwr.pack=Jmi()});var fwr=H(zhe=>{"use strict";Object.defineProperty(zhe,"__esModule",{value:!0});zhe.hasPackScripts=aPa;zhe.prepareForPack=cPa;zhe.genPackStream=lPa;zhe.genPackageManifest=eCi;zhe.genPackList=tCi;var $mi=(Pa(),vi(Va)),KXe=Bn(),Mh=no(),Kmi=$mi.__importDefault(Ek()),nPa=$mi.__importDefault(Umi()),iPa=wt("zlib"),sPa=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],oPa=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function aPa(e){return!!(KXe.scriptUtils.hasWorkspaceScript(e,"prepack")||KXe.scriptUtils.hasWorkspaceScript(e,"postpack"))}async function cPa(e,{report:t},r){await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"prepack",{report:t});try{let n=Mh.ppath.join(e.cwd,KXe.Manifest.fileName);await Mh.xfs.existsPromise(n)&&await e.manifest.loadFile(n,{baseFs:Mh.xfs}),await r()}finally{await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"postpack",{report:t})}}async function lPa(e,t){typeof t>"u"&&(t=await tCi(e));let r=new Set;for(let o of e.manifest.publishConfig?.executableFiles??new Set)r.add(Mh.ppath.normalize(o));for(let o of e.manifest.bin.values())r.add(Mh.ppath.normalize(o));let n=nPa.default.pack();process.nextTick(async()=>{for(let o of t){let l=Mh.ppath.normalize(o),A=Mh.ppath.resolve(e.cwd,l),f=Mh.ppath.join("package",l),I=await Mh.xfs.lstatPromise(A),C={name:f,mtime:new Date(Mh.constants.SAFE_TIME*1e3)},b=r.has(l)?493:420,E,N,B=new Promise((Q,X)=>{E=Q,N=X}),F=Q=>{Q?N(Q):E()};if(I.isFile()){let Q;l==="package.json"?Q=Buffer.from(JSON.stringify(await eCi(e),null,2)):Q=await Mh.xfs.readFilePromise(A),n.entry({...C,mode:b,type:"file"},Q,F)}else I.isSymbolicLink()?n.entry({...C,mode:b,type:"symlink",linkname:await Mh.xfs.readlinkPromise(A)},F):F(new Error(`Unsupported file type ${I.mode} for ${Mh.npath.fromPortablePath(l)}`));await B}n.finalize()});let a=(0,iPa.createGzip)();return n.pipe(a),a}async function eCi(e){let t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,e,t),t}async function tCi(e){let t=e.project,r=t.configuration,n={accept:[],reject:[]};for(let b of oPa)n.reject.push(b);for(let b of sPa)n.accept.push(b);n.reject.push(r.get("rcFilename"));let a=b=>{if(b===null||!b.startsWith(`${e.cwd}/`))return;let E=Mh.ppath.relative(e.cwd,b),N=Mh.ppath.resolve(Mh.PortablePath.root,E);n.reject.push(N)};a(Mh.ppath.resolve(t.cwd,Mh.Filename.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,t,b=>{a(b)});for(let b of t.workspaces){let E=Mh.ppath.relative(e.cwd,b.cwd);E!==""&&!E.match(/^(\.\.)?\//)&&n.reject.push(`/${E}`)}let o={accept:[],reject:[]},l=e.manifest.publishConfig?.main??e.manifest.main,A=e.manifest.publishConfig?.module??e.manifest.module,f=e.manifest.publishConfig?.browser??e.manifest.browser,I=e.manifest.publishConfig?.bin??e.manifest.bin;l!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,l)),A!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,A)),typeof f=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,f));for(let b of I.values())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b));if(f instanceof Map)for(let[b,E]of f.entries())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b)),typeof E=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,E));let C=e.manifest.files!==null;if(C){o.reject.push("/*");for(let b of e.manifest.files)rCi(o.accept,b,{cwd:Mh.PortablePath.root})}return await uPa(e.cwd,{hasExplicitFileList:C,globalList:n,ignoreList:o})}async function uPa(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){let a=[],o=new Mh.JailFS(e),l=[[Mh.PortablePath.root,[n]]];for(;l.length>0;){let[A,f]=l.pop(),I=await o.lstatPromise(A);if(!zmi(A,{globalList:r,ignoreLists:I.isDirectory()?null:f}))if(I.isDirectory()){let C=await o.readdirPromise(A),b=!1,E=!1;if(!t||A!==Mh.PortablePath.root)for(let F of C)b=b||F===".gitignore",E=E||F===".npmignore";let N=E?await jmi(o,A,".npmignore"):b?await jmi(o,A,".gitignore"):null,B=N!==null?[N].concat(f):f;zmi(A,{globalList:r,ignoreLists:f})&&(B=[...f,{accept:[],reject:["**/*"]}]);for(let F of C)l.push([Mh.ppath.resolve(A,F),B])}else(I.isFile()||I.isSymbolicLink())&&a.push(Mh.ppath.relative(Mh.PortablePath.root,A))}return a.sort()}async function jmi(e,t,r){let n={accept:[],reject:[]},a=await e.readFilePromise(Mh.ppath.join(t,r),"utf8");for(let o of a.split(/\n/g))rCi(n.reject,o,{cwd:t});return n}function gPa(e,{cwd:t}){let r=e[0]==="!";return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=Mh.ppath.resolve(t,e)),r&&(e=`!${e}`),e}function rCi(e,t,{cwd:r}){let n=t.trim();n===""||n[0]==="#"||e.push(gPa(n,{cwd:r}))}var uO;(function(e){e[e.None=0]="None",e[e.Match=1]="Match",e[e.NegatedMatch=2]="NegatedMatch"})(uO||(uO={}));function zmi(e,{globalList:t,ignoreLists:r}){let n=iyt(e,t.accept);if(n!==uO.None)return n===uO.NegatedMatch;let a=iyt(e,t.reject);if(a!==uO.None)return a===uO.Match;if(r!==null)for(let o of r){let l=iyt(e,o.accept);if(l!==uO.None)return l===uO.NegatedMatch;let A=iyt(e,o.reject);if(A!==uO.None)return A===uO.Match}return!1}function iyt(e,t){let r=t,n=[];for(let a=0;a{"use strict";Object.defineProperty(Iwr,"__esModule",{value:!0});var APa=(Pa(),vi(Va)),nCi=el(),oee=Bn(),$8=no(),pRe=($c(),vi(rg)),syt=APa.__importStar(fwr()),jXe=class extends nCi.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=pRe.Option.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"}),this.dryRun=pRe.Option.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"}),this.json=pRe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.out=pRe.Option.String("-o,--out",{description:"Create the archive at the specified path"}),this.filename=pRe.Option.String("--filename",{hidden:!0})}async execute(){let t=await oee.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oee.Project.find(t,this.context.cwd);if(!n)throw new nCi.WorkspaceRequiredError(r.cwd,this.context.cwd);await syt.hasPackScripts(n)&&(this.installIfNeeded?await r.install({cache:await oee.Cache.find(t),report:new oee.ThrowReport}):await r.restoreInstallState());let a=this.out??this.filename,o=typeof a<"u"?$8.ppath.resolve(this.context.cwd,dPa(a,{workspace:n})):$8.ppath.resolve(n.cwd,"package.tgz");return(await oee.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async A=>{await syt.prepareForPack(n,{report:A},async()=>{A.reportJson({base:$8.npath.fromPortablePath(n.cwd)});let f=await syt.genPackList(n);for(let I of f)A.reportInfo(null,$8.npath.fromPortablePath(I)),A.reportJson({location:$8.npath.fromPortablePath(I)});if(!this.dryRun){let I=await syt.genPackStream(n,f);await $8.xfs.mkdirPromise($8.ppath.dirname(o),{recursive:!0});let C=$8.xfs.createWriteStream(o);I.pipe(C),await new Promise(b=>{C.on("finish",b)})}}),this.dryRun||(A.reportInfo(oee.MessageName.UNNAMED,`Package archive generated in ${oee.formatUtils.pretty(t,o,oee.formatUtils.Type.PATH)}`),A.reportJson({output:$8.npath.fromPortablePath(o)}))})).exitCode()}};jXe.paths=[["pack"]];jXe.usage=pRe.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});Iwr.default=jXe;function dPa(e,{workspace:t}){let r=e.replace("%s",pPa(t)).replace("%v",fPa(t));return $8.npath.toPortablePath(r)}function pPa(e){return e.manifest.name!==null?oee.structUtils.slugifyIdent(e.manifest.name):"package"}function fPa(e){return e.manifest.version!==null?e.manifest.version:"unknown"}});var $he=H(qhe=>{"use strict";Object.defineProperty(qhe,"__esModule",{value:!0});qhe.packUtils=qhe.PackCommand=void 0;var oCi=(Pa(),vi(Va)),zXe=Bn(),sCi=Bn(),aCi=oCi.__importDefault(iCi());qhe.PackCommand=aCi.default;var IPa=oCi.__importStar(fwr());qhe.packUtils=IPa;var hPa=["dependencies","devDependencies","peerDependencies"],mPa="workspace:",CPa=(e,t)=>{t.publishConfig&&(t.publishConfig.type&&(t.type=t.publishConfig.type),t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.exports&&(t.exports=t.publishConfig.exports),t.publishConfig.imports&&(t.imports=t.publishConfig.imports),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));let r=e.project;for(let n of hPa)for(let a of e.manifest.getForScope(n).values()){let o=r.tryWorkspaceByDescriptor(a),l=zXe.structUtils.parseRange(a.range);if(l.protocol===mPa)if(o===null){if(r.tryWorkspaceByIdent(a)===null)throw new sCi.ReportError(sCi.MessageName.WORKSPACE_NOT_FOUND,`${zXe.structUtils.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;zXe.structUtils.areDescriptorsEqual(a,o.anchoredDescriptor)||l.selector==="*"?A=o.manifest.version??"0.0.0":l.selector==="~"||l.selector==="^"?A=`${l.selector}${o.manifest.version??"0.0.0"}`:A=l.selector;let f=n==="dependencies"?zXe.structUtils.makeDescriptor(a,"unknown"):null,I=f!==null&&e.manifest.ensureDependencyMeta(f).optional?"optionalDependencies":n;t[I][zXe.structUtils.stringifyIdent(a)]=A}}},_Pa={hooks:{beforeWorkspacePacking:CPa},commands:[aCi.default]};qhe.default=_Pa});var fCi=H((T1u,pCi)=>{pCi.exports=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e)});var hCi=H((R1u,ICi)=>{ICi.exports=typeof process<"u"&&typeof process.nextTick=="function"?process.nextTick.bind(process):fCi()});var CCi=H((D1u,mCi)=>{mCi.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Cwr=H((x1u,yCi)=>{var _Ci=CCi();yCi.exports=class{constructor(t){this.hwm=t||16,this.head=new _Ci(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(t){if(this.length++,!this.head.push(t)){let r=this.head;this.head=r.next=new _Ci(2*this.head.buffer.length),this.head.push(t)}}shift(){this.length!==0&&this.length--;let t=this.tail.shift();if(t===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return t}peek(){let t=this.tail.peek();return t===void 0&&this.tail.next?this.tail.next.peek():t}isEmpty(){return this.length===0}}});var ECi=H((F1u,bCi)=>{bCi.exports=class{constructor(t){this.encoding=t}get remaining(){return 0}decode(t){return t.toString(this.encoding)}flush(){return""}}});var vCi=H((L1u,SCi)=>{SCi.exports=class{constructor(){this.codePoint=0,this.bytesSeen=0,this.bytesNeeded=0,this.lowerBoundary=128,this.upperBoundary=191}get remaining(){return this.bytesSeen}decode(t){if(this.bytesNeeded===0){let n=!0;for(let a=Math.max(0,t.byteLength-4),o=t.byteLength;a=194&&o<=223?(this.bytesNeeded=2,this.codePoint=o&31):o>=224&&o<=239?(o===224?this.lowerBoundary=160:o===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.codePoint=o&15):o>=240&&o<=244?(o===240&&(this.lowerBoundary=144),o===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.codePoint=o&7):r+="\uFFFD");continue}if(othis.upperBoundary){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,r+="\uFFFD";continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|o&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(r+=String.fromCodePoint(this.codePoint),this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0)}return r}flush(){let t=this.bytesNeeded>0?"\uFFFD":"";return this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,t}}});var wCi=H((P1u,BCi)=>{var yPa=ECi(),bPa=vCi();BCi.exports=class{constructor(t="utf8"){switch(this.encoding=EPa(t),this.encoding){case"utf8":this.decoder=new bPa;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new yPa(this.encoding)}}get remaining(){return this.decoder.remaining}push(t){return typeof t=="string"?t:this.decoder.decode(t)}write(t){return this.push(t)}end(t){let r="";return t&&(r=this.push(t)),r+=this.decoder.flush(),r}};function EPa(e){switch(e=e.toLowerCase(),e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:throw new Error("Unknown encoding: "+e)}}});var Fwr=H((W1u,qCi)=>{var{EventEmitter:SPa}=wt("events"),Ayt=new Error("Stream was destroyed"),_wr=new Error("Premature close"),xCi=hCi(),GCi=Cwr(),vPa=wCi(),kS=(1<<29)-1,ime=1,wwr=2,eme=4,qXe=8,FCi=kS^ime,BPa=kS^wwr,i4e=16,$Xe=32,CRe=64,Jae=128,s4e=256,Twr=512,tme=1024,ywr=2048,Rwr=4096,Nwr=8192,KX=16384,fRe=32768,dyt=65536,rme=131072,ZCi=s4e|Twr,wPa=i4e|dyt,TPa=CRe|i4e,RPa=Rwr|Jae,Dwr=s4e|rme,NPa=kS^i4e,DPa=kS^CRe,kPa=kS^(CRe|dyt),TCi=kS^dyt,xPa=kS^s4e,GPa=kS^(Jae|Nwr),FPa=kS^tme,RCi=kS^ZCi,LCi=kS^fRe,ZPa=kS^$Xe,VCi=kS^rme,LPa=kS^Dwr,Uae=1<<18,hRe=2<<18,o4e=4<<18,nme=8<<18,a4e=16<<18,sme=32<<18,bwr=64<<18,IRe=128<<18,kwr=256<<18,mRe=512<<18,pyt=1024<<18,PCi=kS^(Uae|kwr),WCi=kS^o4e,VPa=kS^mRe,PPa=kS^a4e,WPa=kS^nme,OCi=kS^IRe,OPa=kS^hRe,MCi=kS^pyt,e4e=i4e|Uae,HCi=kS^e4e,xwr=KX|sme,aee=eme|qXe|wwr,gO=aee|ime,YCi=aee|xwr,MPa=WCi&DPa,Gwr=IRe|fRe,HPa=Gwr&HCi,QCi=gO|HPa,YPa=gO|tme|KX,NCi=gO|KX|Jae,QPa=gO|tme|Jae,XPa=gO|Rwr|Jae|Nwr,JPa=gO|i4e|tme|KX|dyt|rme,UPa=aee|tme|KX,KPa=$Xe|gO|fRe|CRe,jPa=gO|mRe|sme,zPa=nme|a4e,XCi=nme|Uae,qPa=nme|a4e|gO|Uae,DCi=gO|Uae|nme|pyt,$Pa=o4e|Uae,eWa=Uae|kwr,tWa=gO|mRe|XCi|sme,rWa=a4e|aee|mRe|sme,nWa=hRe|gO|IRe|o4e,ayt=Symbol.asyncIterator||Symbol("asyncIterator"),cyt=class{constructor(t,{highWaterMark:r=16384,map:n=null,mapWritable:a,byteLength:o,byteLengthWritable:l}={}){this.stream=t,this.queue=new GCi,this.highWaterMark=r,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=l||o||zCi,this.map=a||n,this.afterWrite=oWa.bind(this),this.afterUpdateNextTick=lWa.bind(this)}get ended(){return(this.stream._duplexState&sme)!==0}push(t){return this.map!==null&&(t=this.map(t)),this.buffered+=this.byteLength(t),this.queue.push(t),this.buffered0,this.error=null,this.pipeline=null,this.byteLength=l||o||zCi,this.map=a||n,this.pipeTo=null,this.afterRead=aWa.bind(this),this.afterUpdateNextTick=cWa.bind(this)}get ended(){return(this.stream._duplexState&KX)!==0}pipe(t,r){if(this.pipeTo!==null)throw new Error("Can only pipe to one destination");if(typeof r!="function"&&(r=null),this.stream._duplexState|=Twr,this.pipeTo=t,this.pipeline=new vwr(this.stream,t,r),r&&this.stream.on("error",kCi),n4e(t))t._writableState.pipeline=this.pipeline,r&&t.on("error",kCi),t.on("finish",this.pipeline.finished.bind(this.pipeline));else{let n=this.pipeline.done.bind(this.pipeline,t),a=this.pipeline.done.bind(this.pipeline,t,null);t.on("error",n),t.on("close",a),t.on("finish",this.pipeline.finished.bind(this.pipeline))}t.on("drain",iWa.bind(this)),this.stream.emit("piping",t),t.emit("pipe",this.stream)}push(t){let r=this.stream;return t===null?(this.highWaterMark=0,r._duplexState=(r._duplexState|tme)&kPa,!1):this.map!==null&&(t=this.map(t),t===null)?(r._duplexState&=TCi,this.buffered0;)r.push(this.shift());for(let n=0;n0;)n.drains.shift().resolve(!1);n.pipeline!==null&&n.pipeline.done(t,e)}}function oWa(e){let t=this.stream;e&&t.destroy(e),t._duplexState&=PCi,this.drains!==null&&uWa(this.drains),(t._duplexState&qPa)===a4e&&(t._duplexState&=PPa,(t._duplexState&bwr)===bwr&&t.emit("drain")),this.updateCallback()}function aWa(e){e&&this.stream.destroy(e),this.stream._duplexState&=NPa,this.readAhead===!1&&!(this.stream._duplexState&s4e)&&(this.stream._duplexState&=VCi),this.updateCallback()}function cWa(){this.stream._duplexState&$Xe||(this.stream._duplexState&=LCi,this.update())}function lWa(){this.stream._duplexState&hRe||(this.stream._duplexState&=OCi,this.update())}function uWa(e){for(let t=0;t0)?null:n(l)}}_read(t){t(null)}pipe(t,r){return this._readableState.updateNextTick(),this._readableState.pipe(t,r),t}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(t){return this._readableState.updateNextTick(),this._readableState.push(t)}unshift(t){return this._readableState.updateNextTick(),this._readableState.unshift(t)}resume(){return this._duplexState|=Dwr,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?LPa:xPa,this}static _fromAsyncIterator(t,r){let n,a=new e({...r,read(l){t.next().then(o).then(l.bind(null,null)).catch(l)},predestroy(){n=t.return()},destroy(l){if(!n)return l(null);n.then(l.bind(null,null)).catch(l)}});return a;function o(l){l.done?a.push(null):a.push(l.value)}}static from(t,r){if(CWa(t))return t;if(t[ayt])return this._fromAsyncIterator(t[ayt](),r);Array.isArray(t)||(t=t===void 0?[]:[t]);let n=0;return new e({...r,read(a){this.push(n===t.length?null:t[n++]),a(null)}})}static isBackpressured(t){return(t._duplexState&UPa)!==0||t._readableState.buffered>=t._readableState.highWaterMark}static isPaused(t){return(t._duplexState&s4e)===0}[ayt](){let t=this,r=null,n=null,a=null;return this.on("error",I=>{r=I}),this.on("readable",o),this.on("close",l),{[ayt](){return this},next(){return new Promise(function(I,C){n=I,a=C;let b=t.read();b!==null?A(b):t._duplexState&qXe&&A(null)})},return(){return f(null)},throw(I){return f(I)}};function o(){n!==null&&A(t.read())}function l(){n!==null&&A(null)}function A(I){a!==null&&(r?a(r):I===null&&!(t._duplexState&KX)?a(Ayt):n({value:I,done:I===null}),a=n=null)}function f(I){return t.destroy(I),new Promise((C,b)=>{if(t._duplexState&qXe)return C({value:void 0,done:!0});t.once("close",function(){I?b(I):C({value:void 0,done:!0})})})}}},uyt=class extends t4e{constructor(t){super(t),this._duplexState|=ime|KX,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final),t.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}static isBackpressured(t){return(t._duplexState&rWa)!==0}static drained(t){if(t.destroyed)return Promise.resolve(!1);let r=t._writableState,a=(bWa(t)?Math.min(1,r.queue.length):r.queue.length)+(t._duplexState&kwr?1:0);return a===0?Promise.resolve(!0):(r.drains===null&&(r.drains=[]),new Promise(o=>{r.drains.push({writes:a,resolve:o})}))}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},r4e=class extends lyt{constructor(t){super(t),this._duplexState=ime|this._duplexState&rme,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final))}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},gyt=class extends r4e{constructor(t){super(t),this._transformState=new Swr(this),t&&(t.transform&&(this._transform=t.transform),t.flush&&(this._flush=t.flush))}_write(t,r){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=t:this._transform(t,this._transformState.afterTransform)}_read(t){if(this._transformState.data!==null){let r=this._transformState.data;this._transformState.data=null,t(null),this._transform(r,this._transformState.afterTransform)}else t(null)}destroy(t){super.destroy(t),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(t,r){r(null,t)}_flush(t){t(null)}_final(t){this._transformState.afterFinal=t,this._flush(dWa.bind(this))}},Bwr=class extends gyt{};function dWa(e,t){let r=this._transformState.afterFinal;if(e)return r(e);t!=null&&this.push(t),this.push(null),r(null)}function pWa(...e){return new Promise((t,r)=>KCi(...e,n=>{if(n)return r(n);t()}))}function KCi(e,...t){let r=Array.isArray(e)?[...e,...t]:[e,...t],n=r.length&&typeof r[r.length-1]=="function"?r.pop():null;if(r.length<2)throw new Error("Pipeline requires at least 2 streams");let a=r[0],o=null,l=null;for(let I=1;I1,f),a.pipe(o)),a=o;if(n){let I=!1,C=n4e(o)||!!(o._writableState&&o._writableState.autoDestroy);o.on("error",b=>{l===null&&(l=b)}),o.on("finish",()=>{I=!0,C||n(l)}),C&&o.on("close",()=>n(l||(I?null:_wr)))}return o;function A(I,C,b,E){I.on("error",E),I.on("close",N);function N(){if(C&&I._readableState&&!I._readableState.ended||b&&I._writableState&&!I._writableState.ended)return E(_wr)}}function f(I){if(!(!I||l)){l=I;for(let C of r)C.destroy(I)}}}function fWa(e){return e}function jCi(e){return!!e._readableState||!!e._writableState}function n4e(e){return typeof e._duplexState=="number"&&jCi(e)}function IWa(e){return!!e._readableState&&e._readableState.ended}function hWa(e){return!!e._writableState&&e._writableState.ended}function mWa(e,t={}){let r=e._readableState&&e._readableState.error||e._writableState&&e._writableState.error;return!t.all&&r===Ayt?null:r}function CWa(e){return n4e(e)&&e.readable}function _Wa(e){return typeof e=="object"&&e!==null&&typeof e.byteLength=="number"}function zCi(e){return _Wa(e)?e.byteLength:1024}function kCi(){}function yWa(){this.destroy(new Error("Stream aborted."))}function bWa(e){return e._writev!==uyt.prototype._writev&&e._writev!==r4e.prototype._writev}qCi.exports={pipeline:KCi,pipelinePromise:pWa,isStream:jCi,isStreamx:n4e,isEnded:IWa,isFinished:hWa,getStreamError:mWa,Stream:t4e,Writable:uyt,Readable:lyt,Duplex:r4e,Transform:gyt,PassThrough:Bwr}});var fyt=H((O1u,$Ci)=>{function EWa(e){return Buffer.isBuffer(e)||e instanceof Uint8Array}function SWa(e){return Buffer.isEncoding(e)}function vWa(e,t,r){return Buffer.alloc(e,t,r)}function BWa(e){return Buffer.allocUnsafe(e)}function wWa(e){return Buffer.allocUnsafeSlow(e)}function TWa(e,t){return Buffer.byteLength(e,t)}function RWa(e,t){return Buffer.compare(e,t)}function NWa(e,t){return Buffer.concat(e,t)}function DWa(e,t,r,n,a){return ob(e).copy(t,r,n,a)}function kWa(e,t){return ob(e).equals(t)}function xWa(e,t,r,n,a){return ob(e).fill(t,r,n,a)}function GWa(e,t,r){return Buffer.from(e,t,r)}function FWa(e,t,r,n){return ob(e).includes(t,r,n)}function ZWa(e,t,r,n){return ob(e).indexOf(t,r,n)}function LWa(e,t,r,n){return ob(e).lastIndexOf(t,r,n)}function VWa(e){return ob(e).swap16()}function PWa(e){return ob(e).swap32()}function WWa(e){return ob(e).swap64()}function ob(e){return Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function OWa(e,t,r,n){return ob(e).toString(t,r,n)}function MWa(e,t,r,n,a){return ob(e).write(t,r,n,a)}function HWa(e,t,r){return ob(e).writeDoubleLE(t,r)}function YWa(e,t,r){return ob(e).writeFloatLE(t,r)}function QWa(e,t,r){return ob(e).writeUInt32LE(t,r)}function XWa(e,t,r){return ob(e).writeInt32LE(t,r)}function JWa(e,t){return ob(e).readDoubleLE(t)}function UWa(e,t){return ob(e).readFloatLE(t)}function KWa(e,t){return ob(e).readUInt32LE(t)}function jWa(e,t){return ob(e).readInt32LE(t)}function zWa(e,t,r){return ob(e).writeDoubleBE(t,r)}function qWa(e,t,r){return ob(e).writeFloatBE(t,r)}function $Wa(e,t,r){return ob(e).writeUInt32BE(t,r)}function eOa(e,t,r){return ob(e).writeInt32BE(t,r)}function tOa(e,t){return ob(e).readDoubleBE(t)}function rOa(e,t){return ob(e).readFloatBE(t)}function nOa(e,t){return ob(e).readUInt32BE(t)}function iOa(e,t){return ob(e).readInt32BE(t)}$Ci.exports={isBuffer:EWa,isEncoding:SWa,alloc:vWa,allocUnsafe:BWa,allocUnsafeSlow:wWa,byteLength:TWa,compare:RWa,concat:NWa,copy:DWa,equals:kWa,fill:xWa,from:GWa,includes:FWa,indexOf:ZWa,lastIndexOf:LWa,swap16:VWa,swap32:PWa,swap64:WWa,toBuffer:ob,toString:OWa,write:MWa,writeDoubleLE:HWa,writeFloatLE:YWa,writeUInt32LE:QWa,writeInt32LE:XWa,readDoubleLE:JWa,readFloatLE:UWa,readUInt32LE:KWa,readInt32LE:jWa,writeDoubleBE:zWa,writeFloatBE:qWa,writeUInt32BE:$Wa,writeInt32BE:eOa,readDoubleBE:tOa,readFloatBE:rOa,readUInt32BE:nOa,readInt32BE:iOa}});var Vwr=H(yRe=>{var qC=fyt(),sOa="0000000000000000000",oOa="7777777777777777777",Iyt=48,e_i=qC.from([117,115,116,97,114,0]),aOa=qC.from([Iyt,Iyt]),cOa=qC.from([117,115,116,97,114,32]),lOa=qC.from([32,0]),uOa=4095,c4e=257,Lwr=263;yRe.decodeLongPath=function(t,r){return _Re(t,0,t.length,r)};yRe.encodePax=function(t){let r="";t.name&&(r+=Zwr(" path="+t.name+` +`);return Buffer.from(t)};gRe.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;n+=n?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(n)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(r),t.write(Qae(e.mode&YVa,6),100),t.write(Qae(e.uid,6),108),t.write(Qae(e.gid,6),116),t.write(Qae(e.size,11),124),t.write(Qae(e.mtime.getTime()/1e3|0,11),136),t[156]=Nmi+JVa(e.type),e.linkname&&t.write(e.linkname,157),Dmi.copy(t,XXe),OVa.copy(t,uwr),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(Qae(e.devmajor||0,6),329),t.write(Qae(e.devminor||0,6),337),n&&t.write(n,345),t.write(Qae(xmi(t),6),148),t)};gRe.decode=function(e,t,r){var n=e[156]===0?0:e[156]-Nmi,a=uRe(e,0,100,t),o=Xae(e,100,8),l=Xae(e,108,8),A=Xae(e,116,8),f=Xae(e,124,12),I=Xae(e,136,12),C=XVa(n),b=e[157]===0?null:uRe(e,157,100,t),E=uRe(e,265,32),N=uRe(e,297,32),B=Xae(e,329,8),F=Xae(e,337,8),Q=xmi(e);if(Q===8*32)return null;if(Q!==Xae(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Dmi.compare(e,XXe,XXe+6)===0)e[345]&&(a=uRe(e,345,155,t)+"/"+a);else if(!(MVa.compare(e,XXe,XXe+6)===0&&HVa.compare(e,uwr,uwr+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return n===0&&a&&a[a.length-1]==="/"&&(n=5),{name:a,mode:o,uid:l,gid:A,size:f,mtime:new Date(1e3*I),type:C,linkname:b,uname:E,gname:N,devmajor:B,devminor:F}}});var Wmi=H((y1u,Pmi)=>{var Fmi=wt("util"),KVa=cwr(),JXe=gwr(),Zmi=lRe().Writable,Lmi=lRe().PassThrough,Vmi=function(){},Gmi=function(e){return e&=511,e&&512-e},jVa=function(e,t){var r=new $0t(e,t);return r.end(),r},zVa=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},$0t=function(e,t){this._parent=e,this.offset=t,Lmi.call(this,{autoDestroy:!1})};Fmi.inherits($0t,Lmi);$0t.prototype.destroy=function(e){this._parent.destroy(e)};var see=function(e){if(!(this instanceof see))return new see(e);Zmi.call(this,e),e=e||{},this._offset=0,this._buffer=KVa(),this._missing=0,this._partial=!1,this._onparse=Vmi,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},a=function(E){if(t._locked=!1,E)return t.destroy(E);t._stream||n()},o=function(){t._stream=null;var E=Gmi(t._header.size);E?t._parse(E,l):t._parse(512,b),t._locked||n()},l=function(){t._buffer.consume(Gmi(t._header.size)),t._parse(512,b),n()},A=function(){var E=t._header.size;t._paxGlobal=JXe.decodePax(r.slice(0,E)),r.consume(E),o()},f=function(){var E=t._header.size;t._pax=JXe.decodePax(r.slice(0,E)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(E),o()},I=function(){var E=t._header.size;this._gnuLongPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},C=function(){var E=t._header.size;this._gnuLongLinkPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},b=function(){var E=t._offset,N;try{N=t._header=JXe.decode(r.slice(0,512),e.filenameEncoding,e.allowUnknownFormat)}catch(B){t.emit("error",B)}if(r.consume(512),!N){t._parse(512,b),n();return}if(N.type==="gnu-long-path"){t._parse(N.size,I),n();return}if(N.type==="gnu-long-link-path"){t._parse(N.size,C),n();return}if(N.type==="pax-global-header"){t._parse(N.size,A),n();return}if(N.type==="pax-header"){t._parse(N.size,f),n();return}if(t._gnuLongPath&&(N.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(N.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=N=zVa(N,t._pax),t._pax=null),t._locked=!0,!N.size||N.type==="directory"){t._parse(512,b),t.emit("entry",N,jVa(t,E),a);return}t._stream=new $0t(t,E),t.emit("entry",N,t._stream,a),t._parse(N.size,o),n()};this._onheader=b,this._parse(512,b)};Fmi.inherits(see,Zmi);see.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};see.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};see.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=Vmi,this._overflow?this._write(this._overflow,void 0,e):e()}};see.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(l=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=l,this._onparse()}};see.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()};Pmi.exports=see});var Mmi=H((b1u,Omi)=>{Omi.exports=wt("fs").constants||wt("constants")});var Jmi=H((E1u,Xmi)=>{var ARe=Mmi(),Hmi=Uur(),tyt=Wae(),qVa=Buffer.alloc,Ymi=lRe().Readable,dRe=lRe().Writable,$Va=wt("string_decoder").StringDecoder,eyt=gwr(),ePa=parseInt("755",8),tPa=parseInt("644",8),Qmi=qVa(1024),dwr=function(){},Awr=function(e,t){t&=511,t&&e.push(Qmi.slice(0,512-t))};function rPa(e){switch(e&ARe.S_IFMT){case ARe.S_IFBLK:return"block-device";case ARe.S_IFCHR:return"character-device";case ARe.S_IFDIR:return"directory";case ARe.S_IFIFO:return"fifo";case ARe.S_IFLNK:return"symlink"}return"file"}var ryt=function(e){dRe.call(this),this.written=0,this._to=e,this._destroyed=!1};tyt(ryt,dRe);ryt.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r};ryt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var nyt=function(){dRe.call(this),this.linkname="",this._decoder=new $Va("utf-8"),this._destroyed=!1};tyt(nyt,dRe);nyt.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()};nyt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var UXe=function(){dRe.call(this),this._destroyed=!1};tyt(UXe,dRe);UXe.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))};UXe.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var q8=function(e){if(!(this instanceof q8))return new q8(e);Ymi.call(this,e),this._drain=dwr,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};tyt(q8,Ymi);q8.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof t=="function"&&(r=t,t=null),r||(r=dwr);var n=this;if((!e.size||e.type==="symlink")&&(e.size=0),e.type||(e.type=rPa(e.mode)),e.mode||(e.mode=e.type==="directory"?ePa:tPa),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),typeof t=="string"&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var a=this.push(t);return Awr(n,e.size),a?process.nextTick(r):this._drain=r,new UXe}if(e.type==="symlink"&&!e.linkname){var o=new nyt;return Hmi(o,function(A){if(A)return n.destroy(),r(A);e.linkname=o.linkname,n._encode(e),r()}),o}if(this._encode(e),e.type!=="file"&&e.type!=="contiguous-file")return process.nextTick(r),new UXe;var l=new ryt(this);return this._stream=l,Hmi(l,function(A){if(n._stream=null,A)return n.destroy(),r(A);if(l.written!==e.size)return n.destroy(),r(new Error("size mismatch"));Awr(n,e.size),n._finalizing&&n.finalize(),r()}),l}};q8.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Qmi),this.push(null))};q8.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};q8.prototype._encode=function(e){if(!e.pax){var t=eyt.encode(e);if(t){this.push(t);return}}this._encodePax(e)};q8.prototype._encodePax=function(e){var t=eyt.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(eyt.encode(r)),this.push(t),Awr(this,t.length),r.size=e.size,r.type=e.type,this.push(eyt.encode(r))};q8.prototype._read=function(e){var t=this._drain;this._drain=dwr,t()};Xmi.exports=q8});var Umi=H(pwr=>{pwr.extract=Wmi();pwr.pack=Jmi()});var fwr=H(zhe=>{"use strict";Object.defineProperty(zhe,"__esModule",{value:!0});zhe.hasPackScripts=aPa;zhe.prepareForPack=cPa;zhe.genPackStream=lPa;zhe.genPackageManifest=eCi;zhe.genPackList=tCi;var $mi=(Pa(),vi(Va)),KXe=Bn(),Mh=no(),Kmi=$mi.__importDefault(Ek()),nPa=$mi.__importDefault(Umi()),iPa=wt("zlib"),sPa=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],oPa=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function aPa(e){return!!(KXe.scriptUtils.hasWorkspaceScript(e,"prepack")||KXe.scriptUtils.hasWorkspaceScript(e,"postpack"))}async function cPa(e,{report:t},r){await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"prepack",{report:t});try{let n=Mh.ppath.join(e.cwd,KXe.Manifest.fileName);await Mh.xfs.existsPromise(n)&&await e.manifest.loadFile(n,{baseFs:Mh.xfs}),await r()}finally{await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"postpack",{report:t})}}async function lPa(e,t){typeof t>"u"&&(t=await tCi(e));let r=new Set;for(let o of e.manifest.publishConfig?.executableFiles??new Set)r.add(Mh.ppath.normalize(o));for(let o of e.manifest.bin.values())r.add(Mh.ppath.normalize(o));let n=nPa.default.pack();process.nextTick(async()=>{for(let o of t){let l=Mh.ppath.normalize(o),A=Mh.ppath.resolve(e.cwd,l),f=Mh.ppath.join("package",l),I=await Mh.xfs.lstatPromise(A),C={name:f,mtime:new Date(Mh.constants.SAFE_TIME*1e3)},b=r.has(l)?493:420,E,N,B=new Promise((Q,X)=>{E=Q,N=X}),F=Q=>{Q?N(Q):E()};if(I.isFile()){let Q;l==="package.json"?Q=Buffer.from(JSON.stringify(await eCi(e),null,2)):Q=await Mh.xfs.readFilePromise(A),n.entry({...C,mode:b,type:"file"},Q,F)}else I.isSymbolicLink()?n.entry({...C,mode:b,type:"symlink",linkname:await Mh.xfs.readlinkPromise(A)},F):F(new Error(`Unsupported file type ${I.mode} for ${Mh.npath.fromPortablePath(l)}`));await B}n.finalize()});let a=(0,iPa.createGzip)();return n.pipe(a),a}async function eCi(e){let t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,e,t),t}async function tCi(e){let t=e.project,r=t.configuration,n={accept:[],reject:[]};for(let b of oPa)n.reject.push(b);for(let b of sPa)n.accept.push(b);n.reject.push(r.get("rcFilename"));let a=b=>{if(b===null||!b.startsWith(`${e.cwd}/`))return;let E=Mh.ppath.relative(e.cwd,b),N=Mh.ppath.resolve(Mh.PortablePath.root,E);n.reject.push(N)};a(Mh.ppath.resolve(t.cwd,Mh.Filename.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,t,b=>{a(b)});for(let b of t.workspaces){let E=Mh.ppath.relative(e.cwd,b.cwd);E!==""&&!E.match(/^(\.\.)?\//)&&n.reject.push(`/${E}`)}let o={accept:[],reject:[]},l=e.manifest.publishConfig?.main??e.manifest.main,A=e.manifest.publishConfig?.module??e.manifest.module,f=e.manifest.publishConfig?.browser??e.manifest.browser,I=e.manifest.publishConfig?.bin??e.manifest.bin;l!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,l)),A!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,A)),typeof f=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,f));for(let b of I.values())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b));if(f instanceof Map)for(let[b,E]of f.entries())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b)),typeof E=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,E));let C=e.manifest.files!==null;if(C){o.reject.push("/*");for(let b of e.manifest.files)rCi(o.accept,b,{cwd:Mh.PortablePath.root})}return await uPa(e.cwd,{hasExplicitFileList:C,globalList:n,ignoreList:o})}async function uPa(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){let a=[],o=new Mh.JailFS(e),l=[[Mh.PortablePath.root,[n]]];for(;l.length>0;){let[A,f]=l.pop(),I=await o.lstatPromise(A);if(!zmi(A,{globalList:r,ignoreLists:I.isDirectory()?null:f}))if(I.isDirectory()){let C=await o.readdirPromise(A),b=!1,E=!1;if(!t||A!==Mh.PortablePath.root)for(let F of C)b=b||F===".gitignore",E=E||F===".npmignore";let N=E?await jmi(o,A,".npmignore"):b?await jmi(o,A,".gitignore"):null,B=N!==null?[N].concat(f):f;zmi(A,{globalList:r,ignoreLists:f})&&(B=[...f,{accept:[],reject:["**/*"]}]);for(let F of C)l.push([Mh.ppath.resolve(A,F),B])}else(I.isFile()||I.isSymbolicLink())&&a.push(Mh.ppath.relative(Mh.PortablePath.root,A))}return a.sort()}async function jmi(e,t,r){let n={accept:[],reject:[]},a=await e.readFilePromise(Mh.ppath.join(t,r),"utf8");for(let o of a.split(/\n/g))rCi(n.reject,o,{cwd:t});return n}function gPa(e,{cwd:t}){let r=e[0]==="!";return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=Mh.ppath.resolve(t,e)),r&&(e=`!${e}`),e}function rCi(e,t,{cwd:r}){let n=t.trim();n===""||n[0]==="#"||e.push(gPa(n,{cwd:r}))}var uO;(function(e){e[e.None=0]="None",e[e.Match=1]="Match",e[e.NegatedMatch=2]="NegatedMatch"})(uO||(uO={}));function zmi(e,{globalList:t,ignoreLists:r}){let n=iyt(e,t.accept);if(n!==uO.None)return n===uO.NegatedMatch;let a=iyt(e,t.reject);if(a!==uO.None)return a===uO.Match;if(r!==null)for(let o of r){let l=iyt(e,o.accept);if(l!==uO.None)return l===uO.NegatedMatch;let A=iyt(e,o.reject);if(A!==uO.None)return A===uO.Match}return!1}function iyt(e,t){let r=t,n=[];for(let a=0;a{"use strict";Object.defineProperty(Iwr,"__esModule",{value:!0});var APa=(Pa(),vi(Va)),nCi=el(),oee=Bn(),$8=no(),pRe=($c(),vi(rg)),syt=APa.__importStar(fwr()),jXe=class extends nCi.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=pRe.Option.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"}),this.dryRun=pRe.Option.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"}),this.json=pRe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.out=pRe.Option.String("-o,--out",{description:"Create the archive at the specified path"}),this.filename=pRe.Option.String("--filename",{hidden:!0})}async execute(){let t=await oee.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oee.Project.find(t,this.context.cwd);if(!n)throw new nCi.WorkspaceRequiredError(r.cwd,this.context.cwd);await syt.hasPackScripts(n)&&(this.installIfNeeded?await r.install({cache:await oee.Cache.find(t),report:new oee.ThrowReport}):await r.restoreInstallState());let a=this.out??this.filename,o=typeof a<"u"?$8.ppath.resolve(this.context.cwd,dPa(a,{workspace:n})):$8.ppath.resolve(n.cwd,"package.tgz");return(await oee.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async A=>{await syt.prepareForPack(n,{report:A},async()=>{A.reportJson({base:$8.npath.fromPortablePath(n.cwd)});let f=await syt.genPackList(n);for(let I of f)A.reportInfo(null,$8.npath.fromPortablePath(I)),A.reportJson({location:$8.npath.fromPortablePath(I)});if(!this.dryRun){let I=await syt.genPackStream(n,f);await $8.xfs.mkdirPromise($8.ppath.dirname(o),{recursive:!0});let C=$8.xfs.createWriteStream(o);I.pipe(C),await new Promise(b=>{C.on("finish",b)})}}),this.dryRun||(A.reportInfo(oee.MessageName.UNNAMED,`Package archive generated in ${oee.formatUtils.pretty(t,o,oee.formatUtils.Type.PATH)}`),A.reportJson({output:$8.npath.fromPortablePath(o)}))})).exitCode()}};jXe.paths=[["pack"]];jXe.usage=pRe.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});Iwr.default=jXe;function dPa(e,{workspace:t}){let r=e.replace("%s",pPa(t)).replace("%v",fPa(t));return $8.npath.toPortablePath(r)}function pPa(e){return e.manifest.name!==null?oee.structUtils.slugifyIdent(e.manifest.name):"package"}function fPa(e){return e.manifest.version!==null?e.manifest.version:"unknown"}});var $he=H(qhe=>{"use strict";Object.defineProperty(qhe,"__esModule",{value:!0});qhe.packUtils=qhe.PackCommand=void 0;var oCi=(Pa(),vi(Va)),zXe=Bn(),sCi=Bn(),aCi=oCi.__importDefault(iCi());qhe.PackCommand=aCi.default;var IPa=oCi.__importStar(fwr());qhe.packUtils=IPa;var hPa=["dependencies","devDependencies","peerDependencies"],mPa="workspace:",CPa=(e,t)=>{t.publishConfig&&(t.publishConfig.type&&(t.type=t.publishConfig.type),t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.exports&&(t.exports=t.publishConfig.exports),t.publishConfig.imports&&(t.imports=t.publishConfig.imports),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));let r=e.project;for(let n of hPa)for(let a of e.manifest.getForScope(n).values()){let o=r.tryWorkspaceByDescriptor(a),l=zXe.structUtils.parseRange(a.range);if(l.protocol===mPa)if(o===null){if(r.tryWorkspaceByIdent(a)===null)throw new sCi.ReportError(sCi.MessageName.WORKSPACE_NOT_FOUND,`${zXe.structUtils.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;zXe.structUtils.areDescriptorsEqual(a,o.anchoredDescriptor)||l.selector==="*"?A=o.manifest.version??"0.0.0":l.selector==="~"||l.selector==="^"?A=`${l.selector}${o.manifest.version??"0.0.0"}`:A=l.selector;let f=n==="dependencies"?zXe.structUtils.makeDescriptor(a,"unknown"):null,I=f!==null&&e.manifest.ensureDependencyMeta(f).optional?"optionalDependencies":n;t[I][zXe.structUtils.stringifyIdent(a)]=A}}},_Pa={hooks:{beforeWorkspacePacking:CPa},commands:[aCi.default]};qhe.default=_Pa});var fCi=H((R1u,pCi)=>{pCi.exports=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e)});var hCi=H((N1u,ICi)=>{ICi.exports=typeof process<"u"&&typeof process.nextTick=="function"?process.nextTick.bind(process):fCi()});var CCi=H((k1u,mCi)=>{mCi.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Cwr=H((G1u,yCi)=>{var _Ci=CCi();yCi.exports=class{constructor(t){this.hwm=t||16,this.head=new _Ci(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(t){if(this.length++,!this.head.push(t)){let r=this.head;this.head=r.next=new _Ci(2*this.head.buffer.length),this.head.push(t)}}shift(){this.length!==0&&this.length--;let t=this.tail.shift();if(t===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return t}peek(){let t=this.tail.peek();return t===void 0&&this.tail.next?this.tail.next.peek():t}isEmpty(){return this.length===0}}});var ECi=H((Z1u,bCi)=>{bCi.exports=class{constructor(t){this.encoding=t}get remaining(){return 0}decode(t){return t.toString(this.encoding)}flush(){return""}}});var vCi=H((V1u,SCi)=>{SCi.exports=class{constructor(){this.codePoint=0,this.bytesSeen=0,this.bytesNeeded=0,this.lowerBoundary=128,this.upperBoundary=191}get remaining(){return this.bytesSeen}decode(t){if(this.bytesNeeded===0){let n=!0;for(let a=Math.max(0,t.byteLength-4),o=t.byteLength;a=194&&o<=223?(this.bytesNeeded=2,this.codePoint=o&31):o>=224&&o<=239?(o===224?this.lowerBoundary=160:o===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.codePoint=o&15):o>=240&&o<=244?(o===240&&(this.lowerBoundary=144),o===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.codePoint=o&7):r+="\uFFFD");continue}if(othis.upperBoundary){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,r+="\uFFFD";continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|o&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(r+=String.fromCodePoint(this.codePoint),this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0)}return r}flush(){let t=this.bytesNeeded>0?"\uFFFD":"";return this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,t}}});var wCi=H((W1u,BCi)=>{var yPa=ECi(),bPa=vCi();BCi.exports=class{constructor(t="utf8"){switch(this.encoding=EPa(t),this.encoding){case"utf8":this.decoder=new bPa;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new yPa(this.encoding)}}get remaining(){return this.decoder.remaining}push(t){return typeof t=="string"?t:this.decoder.decode(t)}write(t){return this.push(t)}end(t){let r="";return t&&(r=this.push(t)),r+=this.decoder.flush(),r}};function EPa(e){switch(e=e.toLowerCase(),e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:throw new Error("Unknown encoding: "+e)}}});var Fwr=H((O1u,qCi)=>{var{EventEmitter:SPa}=wt("events"),Ayt=new Error("Stream was destroyed"),_wr=new Error("Premature close"),xCi=hCi(),GCi=Cwr(),vPa=wCi(),kS=(1<<29)-1,ime=1,wwr=2,eme=4,qXe=8,FCi=kS^ime,BPa=kS^wwr,i4e=16,$Xe=32,CRe=64,Jae=128,s4e=256,Twr=512,tme=1024,ywr=2048,Rwr=4096,Nwr=8192,KX=16384,fRe=32768,dyt=65536,rme=131072,ZCi=s4e|Twr,wPa=i4e|dyt,TPa=CRe|i4e,RPa=Rwr|Jae,Dwr=s4e|rme,NPa=kS^i4e,DPa=kS^CRe,kPa=kS^(CRe|dyt),TCi=kS^dyt,xPa=kS^s4e,GPa=kS^(Jae|Nwr),FPa=kS^tme,RCi=kS^ZCi,LCi=kS^fRe,ZPa=kS^$Xe,VCi=kS^rme,LPa=kS^Dwr,Uae=1<<18,hRe=2<<18,o4e=4<<18,nme=8<<18,a4e=16<<18,sme=32<<18,bwr=64<<18,IRe=128<<18,kwr=256<<18,mRe=512<<18,pyt=1024<<18,PCi=kS^(Uae|kwr),WCi=kS^o4e,VPa=kS^mRe,PPa=kS^a4e,WPa=kS^nme,OCi=kS^IRe,OPa=kS^hRe,MCi=kS^pyt,e4e=i4e|Uae,HCi=kS^e4e,xwr=KX|sme,aee=eme|qXe|wwr,gO=aee|ime,YCi=aee|xwr,MPa=WCi&DPa,Gwr=IRe|fRe,HPa=Gwr&HCi,QCi=gO|HPa,YPa=gO|tme|KX,NCi=gO|KX|Jae,QPa=gO|tme|Jae,XPa=gO|Rwr|Jae|Nwr,JPa=gO|i4e|tme|KX|dyt|rme,UPa=aee|tme|KX,KPa=$Xe|gO|fRe|CRe,jPa=gO|mRe|sme,zPa=nme|a4e,XCi=nme|Uae,qPa=nme|a4e|gO|Uae,DCi=gO|Uae|nme|pyt,$Pa=o4e|Uae,eWa=Uae|kwr,tWa=gO|mRe|XCi|sme,rWa=a4e|aee|mRe|sme,nWa=hRe|gO|IRe|o4e,ayt=Symbol.asyncIterator||Symbol("asyncIterator"),cyt=class{constructor(t,{highWaterMark:r=16384,map:n=null,mapWritable:a,byteLength:o,byteLengthWritable:l}={}){this.stream=t,this.queue=new GCi,this.highWaterMark=r,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=l||o||zCi,this.map=a||n,this.afterWrite=oWa.bind(this),this.afterUpdateNextTick=lWa.bind(this)}get ended(){return(this.stream._duplexState&sme)!==0}push(t){return this.map!==null&&(t=this.map(t)),this.buffered+=this.byteLength(t),this.queue.push(t),this.buffered0,this.error=null,this.pipeline=null,this.byteLength=l||o||zCi,this.map=a||n,this.pipeTo=null,this.afterRead=aWa.bind(this),this.afterUpdateNextTick=cWa.bind(this)}get ended(){return(this.stream._duplexState&KX)!==0}pipe(t,r){if(this.pipeTo!==null)throw new Error("Can only pipe to one destination");if(typeof r!="function"&&(r=null),this.stream._duplexState|=Twr,this.pipeTo=t,this.pipeline=new vwr(this.stream,t,r),r&&this.stream.on("error",kCi),n4e(t))t._writableState.pipeline=this.pipeline,r&&t.on("error",kCi),t.on("finish",this.pipeline.finished.bind(this.pipeline));else{let n=this.pipeline.done.bind(this.pipeline,t),a=this.pipeline.done.bind(this.pipeline,t,null);t.on("error",n),t.on("close",a),t.on("finish",this.pipeline.finished.bind(this.pipeline))}t.on("drain",iWa.bind(this)),this.stream.emit("piping",t),t.emit("pipe",this.stream)}push(t){let r=this.stream;return t===null?(this.highWaterMark=0,r._duplexState=(r._duplexState|tme)&kPa,!1):this.map!==null&&(t=this.map(t),t===null)?(r._duplexState&=TCi,this.buffered0;)r.push(this.shift());for(let n=0;n0;)n.drains.shift().resolve(!1);n.pipeline!==null&&n.pipeline.done(t,e)}}function oWa(e){let t=this.stream;e&&t.destroy(e),t._duplexState&=PCi,this.drains!==null&&uWa(this.drains),(t._duplexState&qPa)===a4e&&(t._duplexState&=PPa,(t._duplexState&bwr)===bwr&&t.emit("drain")),this.updateCallback()}function aWa(e){e&&this.stream.destroy(e),this.stream._duplexState&=NPa,this.readAhead===!1&&!(this.stream._duplexState&s4e)&&(this.stream._duplexState&=VCi),this.updateCallback()}function cWa(){this.stream._duplexState&$Xe||(this.stream._duplexState&=LCi,this.update())}function lWa(){this.stream._duplexState&hRe||(this.stream._duplexState&=OCi,this.update())}function uWa(e){for(let t=0;t0)?null:n(l)}}_read(t){t(null)}pipe(t,r){return this._readableState.updateNextTick(),this._readableState.pipe(t,r),t}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(t){return this._readableState.updateNextTick(),this._readableState.push(t)}unshift(t){return this._readableState.updateNextTick(),this._readableState.unshift(t)}resume(){return this._duplexState|=Dwr,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?LPa:xPa,this}static _fromAsyncIterator(t,r){let n,a=new e({...r,read(l){t.next().then(o).then(l.bind(null,null)).catch(l)},predestroy(){n=t.return()},destroy(l){if(!n)return l(null);n.then(l.bind(null,null)).catch(l)}});return a;function o(l){l.done?a.push(null):a.push(l.value)}}static from(t,r){if(CWa(t))return t;if(t[ayt])return this._fromAsyncIterator(t[ayt](),r);Array.isArray(t)||(t=t===void 0?[]:[t]);let n=0;return new e({...r,read(a){this.push(n===t.length?null:t[n++]),a(null)}})}static isBackpressured(t){return(t._duplexState&UPa)!==0||t._readableState.buffered>=t._readableState.highWaterMark}static isPaused(t){return(t._duplexState&s4e)===0}[ayt](){let t=this,r=null,n=null,a=null;return this.on("error",I=>{r=I}),this.on("readable",o),this.on("close",l),{[ayt](){return this},next(){return new Promise(function(I,C){n=I,a=C;let b=t.read();b!==null?A(b):t._duplexState&qXe&&A(null)})},return(){return f(null)},throw(I){return f(I)}};function o(){n!==null&&A(t.read())}function l(){n!==null&&A(null)}function A(I){a!==null&&(r?a(r):I===null&&!(t._duplexState&KX)?a(Ayt):n({value:I,done:I===null}),a=n=null)}function f(I){return t.destroy(I),new Promise((C,b)=>{if(t._duplexState&qXe)return C({value:void 0,done:!0});t.once("close",function(){I?b(I):C({value:void 0,done:!0})})})}}},uyt=class extends t4e{constructor(t){super(t),this._duplexState|=ime|KX,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final),t.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}static isBackpressured(t){return(t._duplexState&rWa)!==0}static drained(t){if(t.destroyed)return Promise.resolve(!1);let r=t._writableState,a=(bWa(t)?Math.min(1,r.queue.length):r.queue.length)+(t._duplexState&kwr?1:0);return a===0?Promise.resolve(!0):(r.drains===null&&(r.drains=[]),new Promise(o=>{r.drains.push({writes:a,resolve:o})}))}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},r4e=class extends lyt{constructor(t){super(t),this._duplexState=ime|this._duplexState&rme,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final))}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},gyt=class extends r4e{constructor(t){super(t),this._transformState=new Swr(this),t&&(t.transform&&(this._transform=t.transform),t.flush&&(this._flush=t.flush))}_write(t,r){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=t:this._transform(t,this._transformState.afterTransform)}_read(t){if(this._transformState.data!==null){let r=this._transformState.data;this._transformState.data=null,t(null),this._transform(r,this._transformState.afterTransform)}else t(null)}destroy(t){super.destroy(t),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(t,r){r(null,t)}_flush(t){t(null)}_final(t){this._transformState.afterFinal=t,this._flush(dWa.bind(this))}},Bwr=class extends gyt{};function dWa(e,t){let r=this._transformState.afterFinal;if(e)return r(e);t!=null&&this.push(t),this.push(null),r(null)}function pWa(...e){return new Promise((t,r)=>KCi(...e,n=>{if(n)return r(n);t()}))}function KCi(e,...t){let r=Array.isArray(e)?[...e,...t]:[e,...t],n=r.length&&typeof r[r.length-1]=="function"?r.pop():null;if(r.length<2)throw new Error("Pipeline requires at least 2 streams");let a=r[0],o=null,l=null;for(let I=1;I1,f),a.pipe(o)),a=o;if(n){let I=!1,C=n4e(o)||!!(o._writableState&&o._writableState.autoDestroy);o.on("error",b=>{l===null&&(l=b)}),o.on("finish",()=>{I=!0,C||n(l)}),C&&o.on("close",()=>n(l||(I?null:_wr)))}return o;function A(I,C,b,E){I.on("error",E),I.on("close",N);function N(){if(C&&I._readableState&&!I._readableState.ended||b&&I._writableState&&!I._writableState.ended)return E(_wr)}}function f(I){if(!(!I||l)){l=I;for(let C of r)C.destroy(I)}}}function fWa(e){return e}function jCi(e){return!!e._readableState||!!e._writableState}function n4e(e){return typeof e._duplexState=="number"&&jCi(e)}function IWa(e){return!!e._readableState&&e._readableState.ended}function hWa(e){return!!e._writableState&&e._writableState.ended}function mWa(e,t={}){let r=e._readableState&&e._readableState.error||e._writableState&&e._writableState.error;return!t.all&&r===Ayt?null:r}function CWa(e){return n4e(e)&&e.readable}function _Wa(e){return typeof e=="object"&&e!==null&&typeof e.byteLength=="number"}function zCi(e){return _Wa(e)?e.byteLength:1024}function kCi(){}function yWa(){this.destroy(new Error("Stream aborted."))}function bWa(e){return e._writev!==uyt.prototype._writev&&e._writev!==r4e.prototype._writev}qCi.exports={pipeline:KCi,pipelinePromise:pWa,isStream:jCi,isStreamx:n4e,isEnded:IWa,isFinished:hWa,getStreamError:mWa,Stream:t4e,Writable:uyt,Readable:lyt,Duplex:r4e,Transform:gyt,PassThrough:Bwr}});var fyt=H((M1u,$Ci)=>{function EWa(e){return Buffer.isBuffer(e)||e instanceof Uint8Array}function SWa(e){return Buffer.isEncoding(e)}function vWa(e,t,r){return Buffer.alloc(e,t,r)}function BWa(e){return Buffer.allocUnsafe(e)}function wWa(e){return Buffer.allocUnsafeSlow(e)}function TWa(e,t){return Buffer.byteLength(e,t)}function RWa(e,t){return Buffer.compare(e,t)}function NWa(e,t){return Buffer.concat(e,t)}function DWa(e,t,r,n,a){return ob(e).copy(t,r,n,a)}function kWa(e,t){return ob(e).equals(t)}function xWa(e,t,r,n,a){return ob(e).fill(t,r,n,a)}function GWa(e,t,r){return Buffer.from(e,t,r)}function FWa(e,t,r,n){return ob(e).includes(t,r,n)}function ZWa(e,t,r,n){return ob(e).indexOf(t,r,n)}function LWa(e,t,r,n){return ob(e).lastIndexOf(t,r,n)}function VWa(e){return ob(e).swap16()}function PWa(e){return ob(e).swap32()}function WWa(e){return ob(e).swap64()}function ob(e){return Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function OWa(e,t,r,n){return ob(e).toString(t,r,n)}function MWa(e,t,r,n,a){return ob(e).write(t,r,n,a)}function HWa(e,t,r){return ob(e).writeDoubleLE(t,r)}function YWa(e,t,r){return ob(e).writeFloatLE(t,r)}function QWa(e,t,r){return ob(e).writeUInt32LE(t,r)}function XWa(e,t,r){return ob(e).writeInt32LE(t,r)}function JWa(e,t){return ob(e).readDoubleLE(t)}function UWa(e,t){return ob(e).readFloatLE(t)}function KWa(e,t){return ob(e).readUInt32LE(t)}function jWa(e,t){return ob(e).readInt32LE(t)}function zWa(e,t,r){return ob(e).writeDoubleBE(t,r)}function qWa(e,t,r){return ob(e).writeFloatBE(t,r)}function $Wa(e,t,r){return ob(e).writeUInt32BE(t,r)}function eOa(e,t,r){return ob(e).writeInt32BE(t,r)}function tOa(e,t){return ob(e).readDoubleBE(t)}function rOa(e,t){return ob(e).readFloatBE(t)}function nOa(e,t){return ob(e).readUInt32BE(t)}function iOa(e,t){return ob(e).readInt32BE(t)}$Ci.exports={isBuffer:EWa,isEncoding:SWa,alloc:vWa,allocUnsafe:BWa,allocUnsafeSlow:wWa,byteLength:TWa,compare:RWa,concat:NWa,copy:DWa,equals:kWa,fill:xWa,from:GWa,includes:FWa,indexOf:ZWa,lastIndexOf:LWa,swap16:VWa,swap32:PWa,swap64:WWa,toBuffer:ob,toString:OWa,write:MWa,writeDoubleLE:HWa,writeFloatLE:YWa,writeUInt32LE:QWa,writeInt32LE:XWa,readDoubleLE:JWa,readFloatLE:UWa,readUInt32LE:KWa,readInt32LE:jWa,writeDoubleBE:zWa,writeFloatBE:qWa,writeUInt32BE:$Wa,writeInt32BE:eOa,readDoubleBE:tOa,readFloatBE:rOa,readUInt32BE:nOa,readInt32BE:iOa}});var Vwr=H(yRe=>{var qC=fyt(),sOa="0000000000000000000",oOa="7777777777777777777",Iyt=48,e_i=qC.from([117,115,116,97,114,0]),aOa=qC.from([Iyt,Iyt]),cOa=qC.from([117,115,116,97,114,32]),lOa=qC.from([32,0]),uOa=4095,c4e=257,Lwr=263;yRe.decodeLongPath=function(t,r){return _Re(t,0,t.length,r)};yRe.encodePax=function(t){let r="";t.name&&(r+=Zwr(" path="+t.name+` `)),t.linkname&&(r+=Zwr(" linkpath="+t.linkname+` `));let n=t.pax;if(n)for(let a in n)r+=Zwr(" "+a+"="+n[a]+` -`);return qC.from(r)};yRe.decodePax=function(t){let r={};for(;t.length;){let n=0;for(;n100;){let o=n.indexOf("/");if(o===-1)return null;a+=a?"/"+n.slice(0,o):n.slice(0,o),n=n.slice(o+1)}return qC.byteLength(n)>100||qC.byteLength(a)>155||t.linkname&&qC.byteLength(t.linkname)>100?null:(qC.write(r,n),qC.write(r,jae(t.mode&uOa,6),100),qC.write(r,jae(t.uid,6),108),qC.write(r,jae(t.gid,6),116),hOa(t.size,r,124),qC.write(r,jae(t.mtime.getTime()/1e3|0,11),136),r[156]=Iyt+fOa(t.type),t.linkname&&qC.write(r,t.linkname,157),qC.copy(e_i,r,c4e),qC.copy(aOa,r,Lwr),t.uname&&qC.write(r,t.uname,265),t.gname&&qC.write(r,t.gname,297),qC.write(r,jae(t.devmajor||0,6),329),qC.write(r,jae(t.devminor||0,6),337),a&&qC.write(r,a,345),qC.write(r,jae(r_i(r),6),148),r)};yRe.decode=function(t,r,n){let a=t[156]===0?0:t[156]-Iyt,o=_Re(t,0,100,r),l=Kae(t,100,8),A=Kae(t,108,8),f=Kae(t,116,8),I=Kae(t,124,12),C=Kae(t,136,12),b=pOa(a),E=t[157]===0?null:_Re(t,157,100,r),N=_Re(t,265,32),B=_Re(t,297,32),F=Kae(t,329,8),Q=Kae(t,337,8),X=r_i(t);if(X===8*32)return null;if(X!==Kae(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(gOa(t))t[345]&&(o=_Re(t,345,155,r)+"/"+o);else if(!AOa(t)){if(!n)throw new Error("Invalid tar header: unknown format.")}return a===0&&o&&o[o.length-1]==="/"&&(a=5),{name:o,mode:l,uid:A,gid:f,size:I,mtime:new Date(1e3*C),type:b,linkname:E,uname:N,gname:B,devmajor:F,devminor:Q,pax:null}};function gOa(e){return qC.equals(e_i,e.subarray(c4e,c4e+6))}function AOa(e){return qC.equals(cOa,e.subarray(c4e,c4e+6))&&qC.equals(lOa,e.subarray(Lwr,Lwr+2))}function dOa(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)}function pOa(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function fOa(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function t_i(e,t,r,n){for(;rt?oOa.slice(0,t)+" ":sOa.slice(0,t-e.length)+e+" "}function IOa(e,t,r){t[r]=128;for(let n=11;n>0;n--)t[r+n]=e&255,e=Math.floor(e/256)}function hOa(e,t,r){e.toString(8).length>11?IOa(e,t,r):qC.write(t,jae(e,11),r)}function mOa(e){let t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;let r=[],n;for(n=e.length-1;n>0;n--){let l=e[n];t?r.push(l):r.push(255-l)}let a=0,o=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e}});var a_i=H((H1u,o_i)=>{var{Writable:COa,Readable:_Oa,getStreamError:n_i}=Fwr(),yOa=Cwr(),i_i=fyt(),bRe=Vwr(),bOa=i_i.alloc(0),Wwr=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new yOa,this._offset=0}push(t){this.buffered+=t.byteLength,this.queue.push(t)}shiftFirst(t){return this._buffered===0?null:this._next(t)}shift(t){if(t>this.buffered)return null;if(t===0)return bOa;let r=this._next(t);if(t===r.byteLength)return r;let n=[r];for(;(t-=r.byteLength)>0;)r=this._next(t),n.push(r);return i_i.concat(n)}_next(t){let r=this.queue.peek(),n=r.byteLength-this._offset;if(t>=n){let a=this._offset?r.subarray(this._offset,r.byteLength):r;return this.queue.shift(),this._offset=0,this.buffered-=n,this.shifted+=n,a}return this.buffered-=t,this.shifted+=t,r.subarray(this._offset,this._offset+=t)}},Owr=class extends _Oa{constructor(t,r,n){super(),this.header=r,this.offset=n,this._parent=t}_read(t){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),t(null)}_predestroy(){this._parent.destroy(n_i(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=s_i(this.header.size),this._parent._update())}_destroy(t){this._detach(),t(null)}},Mwr=class extends COa{constructor(t){super(t),t||(t={}),this._buffer=new Wwr,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=Pwr,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=t.filenameEncoding||"utf-8",this._allowUnknownFormat=!!t.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(t){if(this._locked=!1,t){this.destroy(t),this._continueWrite(t);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=bRe.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(t){return this._continueWrite(t),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}return this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(t){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=bRe.decodePax(t);break;case"pax-header":this._pax=this._paxGlobal===null?bRe.decodePax(t):Object.assign({},this._paxGlobal,bRe.decodePax(t));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=s_i(this._header.size);let t=this._buffer.shift(this._header.size);try{this._decodeLongHeader(t)}catch(r){return this._continueWrite(r),!1}return!0}_consumeStream(){let t=this._buffer.shiftFirst(this._missing);if(t===null)return!1;this._missing-=t.byteLength;let r=this._stream.push(t);return this._missing===0?(this._stream.push(null),r&&this._stream._detach(),r&&this._locked===!1):r}_createStream(){return new Owr(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let t=this._buffer.shiftFirst(this._missing);t!==null&&(this._missing-=t.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(t){let r=this._callback;this._callback=Pwr,r(t)}_write(t,r){this._callback=r,this._buffer.push(t),this._update()}_final(t){this._finished=this._missing===0&&this._buffer.buffered===0,t(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(t){this._stream&&this._stream.destroy(n_i(this)),t(null)}[Symbol.asyncIterator](){let t=null,r=null,n=null,a=null,o=null,l=this;return this.on("entry",I),this.on("error",E=>{t=E}),this.on("close",C),{[Symbol.asyncIterator](){return this},next(){return new Promise(f)},return(){return b(null)},throw(E){return b(E)}};function A(E){if(!o)return;let N=o;o=null,N(E)}function f(E,N){if(t)return N(t);if(a){E({value:a,done:!1}),a=null;return}r=E,n=N,A(null),l._finished&&r&&(r({value:void 0,done:!0}),r=n=null)}function I(E,N,B){o=B,N.on("error",Pwr),r?(r({value:N,done:!1}),r=n=null):a=N}function C(){A(t),r&&(t?n(t):r({value:void 0,done:!0}),r=n=null)}function b(E){return l.destroy(E),A(E),new Promise((N,B)=>{if(l.destroyed)return N({value:void 0,done:!0});l.once("close",function(){E?B(E):N({value:void 0,done:!0})})})}}};o_i.exports=function(t){return new Mwr(t)};function Pwr(){}function s_i(e){return e&=511,e&&512-e}});var l_i=H((Y1u,Hwr)=>{var c_i={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{Hwr.exports=wt("fs").constants||c_i}catch{Hwr.exports=c_i}});var p_i=H((Q1u,d_i)=>{var{Readable:EOa,Writable:SOa,getStreamError:u_i}=Fwr(),ome=fyt(),ERe=l_i(),hyt=Vwr(),vOa=493,BOa=420,g_i=ome.alloc(1024),Qwr=class extends SOa{constructor(t,r,n){super({mapWritable:TOa,eagerOpen:!0}),this.written=0,this.header=r,this._callback=n,this._linkname=null,this._isLinkname=r.type==="symlink"&&!r.linkname,this._isVoid=r.type!=="file"&&r.type!=="contiguous-file",this._finished=!1,this._pack=t,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(t){this._openCallback=t,this._pack._stream===this&&this._continueOpen()}_continuePack(t){if(this._callback===null)return;let r=this._callback;this._callback=null,r(t)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let t=this._openCallback;if(this._openCallback=null,t!==null){if(this._pack.destroying)return t(new Error("pack stream destroyed"));if(this._pack._finalized)return t(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),t(null)}}_write(t,r){if(this._isLinkname)return this._linkname=this._linkname?ome.concat([this._linkname,t]):t,r(null);if(this._isVoid)return t.byteLength>0?r(new Error("No body allowed for this entry")):r();if(this.written+=t.byteLength,this._pack.push(t))return r();this._pack._drain=r}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?ome.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),A_i(this._pack,this.header.size),this._pack._done(this))}_final(t){if(this.written!==this.header.size)return t(new Error("Size mismatch"));this._finish(),t(null)}_getError(){return u_i(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(t){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),t()}},Xwr=class extends EOa{constructor(t){super(t),this._drain=Ywr,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(t,r,n){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof r=="function"&&(n=r,r=null),n||(n=Ywr),(!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=wOa(t.mode)),t.mode||(t.mode=t.type==="directory"?vOa:BOa),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof r=="string"&&(r=ome.from(r));let a=new Qwr(this,t,n);return ome.isBuffer(r)?(t.size=r.byteLength,a.write(r),a.end(),a):(a._isVoid,a)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(g_i),this.push(null))}_done(t){t===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(t){if(!t.pax){let r=hyt.encode(t);if(r){this.push(r);return}}this._encodePax(t)}_encodePax(t){let r=hyt.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),n={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:r.byteLength,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(hyt.encode(n)),this.push(r),A_i(this,r.byteLength),n.size=t.size,n.type=t.type,this.push(hyt.encode(n))}_doDrain(){let t=this._drain;this._drain=Ywr,t()}_predestroy(){let t=u_i(this);for(this._stream&&this._stream.destroy(t);this._pending.length;){let r=this._pending.shift();r.destroy(t),r._continueOpen()}this._doDrain()}_read(t){this._doDrain(),t()}};d_i.exports=function(t){return new Xwr(t)};function wOa(e){switch(e&ERe.S_IFMT){case ERe.S_IFBLK:return"block-device";case ERe.S_IFCHR:return"character-device";case ERe.S_IFDIR:return"directory";case ERe.S_IFIFO:return"fifo";case ERe.S_IFLNK:return"symlink"}return"file"}function Ywr(){}function A_i(e,t){t&=511,t&&e.push(g_i.subarray(0,512-t))}function TOa(e){return ome.isBuffer(e)?e:ome.from(e)}});var f_i=H(Jwr=>{Jwr.extract=a_i();Jwr.pack=p_i()});var z_i=H((D2u,j_i)=>{"use strict";var VOa=e7t(),BRe=z6t();function K_i(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function iTr(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(BRe("no-hyperlink")||BRe("no-hyperlinks")||BRe("hyperlink=false")||BRe("hyperlink=never"))return!1;if(BRe("hyperlink=true")||BRe("hyperlink=always")||"NETLIFY"in t)return!0;if(!VOa.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=K_i(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=K_i(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}j_i.exports={supportsHyperlink:iTr,stdout:iTr(process.stdout),stderr:iTr(process.stderr)}});var oTr=H((iSu,a0i)=>{"use strict";var QOa=function(t){return XOa(t)&&!JOa(t)};function XOa(e){return!!e&&typeof e=="object"}function JOa(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||jOa(e)}var UOa=typeof Symbol=="function"&&Symbol.for,KOa=UOa?Symbol.for("react.element"):60103;function jOa(e){return e.$$typeof===KOa}function zOa(e){return Array.isArray(e)?[]:{}}function g4e(e,t){return t.clone!==!1&&t.isMergeableObject(e)?TRe(zOa(e),e,t):e}function qOa(e,t,r){return e.concat(t).map(function(n){return g4e(n,r)})}function $Oa(e,t){if(!t.customMerge)return TRe;var r=t.customMerge(e);return typeof r=="function"?r:TRe}function e3a(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function s0i(e){return Object.keys(e).concat(e3a(e))}function o0i(e,t){try{return t in e}catch{return!1}}function t3a(e,t){return o0i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function r3a(e,t,r){var n={};return r.isMergeableObject(e)&&s0i(e).forEach(function(a){n[a]=g4e(e[a],r)}),s0i(t).forEach(function(a){t3a(e,a)||(o0i(e,a)&&r.isMergeableObject(t[a])?n[a]=$Oa(a,r)(e[a],t[a],r):n[a]=g4e(t[a],r))}),n}function TRe(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qOa,r.isMergeableObject=r.isMergeableObject||QOa,r.cloneUnlessOtherwiseSpecified=g4e;var n=Array.isArray(t),a=Array.isArray(e),o=n===a;return o?n?r.arrayMerge(e,t,r):r3a(e,t,r):g4e(t,r)}TRe.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,a){return TRe(n,a,r)},{})};var n3a=TRe;a0i.exports=n3a});var mRi=H((pNu,hRi)=>{hRi.exports=function(t,r){var n,a;typeof r=="function"?a=r:n=r;var o=Object.keys(t);return(n||[]).concat(o.sort(a)).reduce(function(l,A){return o.indexOf(A)!==-1&&(l[A]=t[A]),l},Object.create(null))}});var TRi=H((ENu,FEt)=>{"use strict";FEt.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");var t=e.match(/(?:\r?\n)/g)||[];if(t.length===0)return null;var r=t.filter(function(a){return a===`\r +`);return qC.from(r)};yRe.decodePax=function(t){let r={};for(;t.length;){let n=0;for(;n100;){let o=n.indexOf("/");if(o===-1)return null;a+=a?"/"+n.slice(0,o):n.slice(0,o),n=n.slice(o+1)}return qC.byteLength(n)>100||qC.byteLength(a)>155||t.linkname&&qC.byteLength(t.linkname)>100?null:(qC.write(r,n),qC.write(r,jae(t.mode&uOa,6),100),qC.write(r,jae(t.uid,6),108),qC.write(r,jae(t.gid,6),116),hOa(t.size,r,124),qC.write(r,jae(t.mtime.getTime()/1e3|0,11),136),r[156]=Iyt+fOa(t.type),t.linkname&&qC.write(r,t.linkname,157),qC.copy(e_i,r,c4e),qC.copy(aOa,r,Lwr),t.uname&&qC.write(r,t.uname,265),t.gname&&qC.write(r,t.gname,297),qC.write(r,jae(t.devmajor||0,6),329),qC.write(r,jae(t.devminor||0,6),337),a&&qC.write(r,a,345),qC.write(r,jae(r_i(r),6),148),r)};yRe.decode=function(t,r,n){let a=t[156]===0?0:t[156]-Iyt,o=_Re(t,0,100,r),l=Kae(t,100,8),A=Kae(t,108,8),f=Kae(t,116,8),I=Kae(t,124,12),C=Kae(t,136,12),b=pOa(a),E=t[157]===0?null:_Re(t,157,100,r),N=_Re(t,265,32),B=_Re(t,297,32),F=Kae(t,329,8),Q=Kae(t,337,8),X=r_i(t);if(X===8*32)return null;if(X!==Kae(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(gOa(t))t[345]&&(o=_Re(t,345,155,r)+"/"+o);else if(!AOa(t)){if(!n)throw new Error("Invalid tar header: unknown format.")}return a===0&&o&&o[o.length-1]==="/"&&(a=5),{name:o,mode:l,uid:A,gid:f,size:I,mtime:new Date(1e3*C),type:b,linkname:E,uname:N,gname:B,devmajor:F,devminor:Q,pax:null}};function gOa(e){return qC.equals(e_i,e.subarray(c4e,c4e+6))}function AOa(e){return qC.equals(cOa,e.subarray(c4e,c4e+6))&&qC.equals(lOa,e.subarray(Lwr,Lwr+2))}function dOa(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)}function pOa(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function fOa(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function t_i(e,t,r,n){for(;rt?oOa.slice(0,t)+" ":sOa.slice(0,t-e.length)+e+" "}function IOa(e,t,r){t[r]=128;for(let n=11;n>0;n--)t[r+n]=e&255,e=Math.floor(e/256)}function hOa(e,t,r){e.toString(8).length>11?IOa(e,t,r):qC.write(t,jae(e,11),r)}function mOa(e){let t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;let r=[],n;for(n=e.length-1;n>0;n--){let l=e[n];t?r.push(l):r.push(255-l)}let a=0,o=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e}});var a_i=H((Y1u,o_i)=>{var{Writable:COa,Readable:_Oa,getStreamError:n_i}=Fwr(),yOa=Cwr(),i_i=fyt(),bRe=Vwr(),bOa=i_i.alloc(0),Wwr=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new yOa,this._offset=0}push(t){this.buffered+=t.byteLength,this.queue.push(t)}shiftFirst(t){return this._buffered===0?null:this._next(t)}shift(t){if(t>this.buffered)return null;if(t===0)return bOa;let r=this._next(t);if(t===r.byteLength)return r;let n=[r];for(;(t-=r.byteLength)>0;)r=this._next(t),n.push(r);return i_i.concat(n)}_next(t){let r=this.queue.peek(),n=r.byteLength-this._offset;if(t>=n){let a=this._offset?r.subarray(this._offset,r.byteLength):r;return this.queue.shift(),this._offset=0,this.buffered-=n,this.shifted+=n,a}return this.buffered-=t,this.shifted+=t,r.subarray(this._offset,this._offset+=t)}},Owr=class extends _Oa{constructor(t,r,n){super(),this.header=r,this.offset=n,this._parent=t}_read(t){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),t(null)}_predestroy(){this._parent.destroy(n_i(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=s_i(this.header.size),this._parent._update())}_destroy(t){this._detach(),t(null)}},Mwr=class extends COa{constructor(t){super(t),t||(t={}),this._buffer=new Wwr,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=Pwr,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=t.filenameEncoding||"utf-8",this._allowUnknownFormat=!!t.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(t){if(this._locked=!1,t){this.destroy(t),this._continueWrite(t);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=bRe.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(t){return this._continueWrite(t),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}return this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(t){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=bRe.decodePax(t);break;case"pax-header":this._pax=this._paxGlobal===null?bRe.decodePax(t):Object.assign({},this._paxGlobal,bRe.decodePax(t));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=s_i(this._header.size);let t=this._buffer.shift(this._header.size);try{this._decodeLongHeader(t)}catch(r){return this._continueWrite(r),!1}return!0}_consumeStream(){let t=this._buffer.shiftFirst(this._missing);if(t===null)return!1;this._missing-=t.byteLength;let r=this._stream.push(t);return this._missing===0?(this._stream.push(null),r&&this._stream._detach(),r&&this._locked===!1):r}_createStream(){return new Owr(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let t=this._buffer.shiftFirst(this._missing);t!==null&&(this._missing-=t.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(t){let r=this._callback;this._callback=Pwr,r(t)}_write(t,r){this._callback=r,this._buffer.push(t),this._update()}_final(t){this._finished=this._missing===0&&this._buffer.buffered===0,t(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(t){this._stream&&this._stream.destroy(n_i(this)),t(null)}[Symbol.asyncIterator](){let t=null,r=null,n=null,a=null,o=null,l=this;return this.on("entry",I),this.on("error",E=>{t=E}),this.on("close",C),{[Symbol.asyncIterator](){return this},next(){return new Promise(f)},return(){return b(null)},throw(E){return b(E)}};function A(E){if(!o)return;let N=o;o=null,N(E)}function f(E,N){if(t)return N(t);if(a){E({value:a,done:!1}),a=null;return}r=E,n=N,A(null),l._finished&&r&&(r({value:void 0,done:!0}),r=n=null)}function I(E,N,B){o=B,N.on("error",Pwr),r?(r({value:N,done:!1}),r=n=null):a=N}function C(){A(t),r&&(t?n(t):r({value:void 0,done:!0}),r=n=null)}function b(E){return l.destroy(E),A(E),new Promise((N,B)=>{if(l.destroyed)return N({value:void 0,done:!0});l.once("close",function(){E?B(E):N({value:void 0,done:!0})})})}}};o_i.exports=function(t){return new Mwr(t)};function Pwr(){}function s_i(e){return e&=511,e&&512-e}});var l_i=H((Q1u,Hwr)=>{var c_i={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{Hwr.exports=wt("fs").constants||c_i}catch{Hwr.exports=c_i}});var p_i=H((X1u,d_i)=>{var{Readable:EOa,Writable:SOa,getStreamError:u_i}=Fwr(),ome=fyt(),ERe=l_i(),hyt=Vwr(),vOa=493,BOa=420,g_i=ome.alloc(1024),Qwr=class extends SOa{constructor(t,r,n){super({mapWritable:TOa,eagerOpen:!0}),this.written=0,this.header=r,this._callback=n,this._linkname=null,this._isLinkname=r.type==="symlink"&&!r.linkname,this._isVoid=r.type!=="file"&&r.type!=="contiguous-file",this._finished=!1,this._pack=t,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(t){this._openCallback=t,this._pack._stream===this&&this._continueOpen()}_continuePack(t){if(this._callback===null)return;let r=this._callback;this._callback=null,r(t)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let t=this._openCallback;if(this._openCallback=null,t!==null){if(this._pack.destroying)return t(new Error("pack stream destroyed"));if(this._pack._finalized)return t(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),t(null)}}_write(t,r){if(this._isLinkname)return this._linkname=this._linkname?ome.concat([this._linkname,t]):t,r(null);if(this._isVoid)return t.byteLength>0?r(new Error("No body allowed for this entry")):r();if(this.written+=t.byteLength,this._pack.push(t))return r();this._pack._drain=r}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?ome.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),A_i(this._pack,this.header.size),this._pack._done(this))}_final(t){if(this.written!==this.header.size)return t(new Error("Size mismatch"));this._finish(),t(null)}_getError(){return u_i(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(t){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),t()}},Xwr=class extends EOa{constructor(t){super(t),this._drain=Ywr,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(t,r,n){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof r=="function"&&(n=r,r=null),n||(n=Ywr),(!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=wOa(t.mode)),t.mode||(t.mode=t.type==="directory"?vOa:BOa),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof r=="string"&&(r=ome.from(r));let a=new Qwr(this,t,n);return ome.isBuffer(r)?(t.size=r.byteLength,a.write(r),a.end(),a):(a._isVoid,a)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(g_i),this.push(null))}_done(t){t===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(t){if(!t.pax){let r=hyt.encode(t);if(r){this.push(r);return}}this._encodePax(t)}_encodePax(t){let r=hyt.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),n={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:r.byteLength,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(hyt.encode(n)),this.push(r),A_i(this,r.byteLength),n.size=t.size,n.type=t.type,this.push(hyt.encode(n))}_doDrain(){let t=this._drain;this._drain=Ywr,t()}_predestroy(){let t=u_i(this);for(this._stream&&this._stream.destroy(t);this._pending.length;){let r=this._pending.shift();r.destroy(t),r._continueOpen()}this._doDrain()}_read(t){this._doDrain(),t()}};d_i.exports=function(t){return new Xwr(t)};function wOa(e){switch(e&ERe.S_IFMT){case ERe.S_IFBLK:return"block-device";case ERe.S_IFCHR:return"character-device";case ERe.S_IFDIR:return"directory";case ERe.S_IFIFO:return"fifo";case ERe.S_IFLNK:return"symlink"}return"file"}function Ywr(){}function A_i(e,t){t&=511,t&&e.push(g_i.subarray(0,512-t))}function TOa(e){return ome.isBuffer(e)?e:ome.from(e)}});var f_i=H(Jwr=>{Jwr.extract=a_i();Jwr.pack=p_i()});var z_i=H((k2u,j_i)=>{"use strict";var VOa=e7t(),BRe=z6t();function K_i(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function iTr(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(BRe("no-hyperlink")||BRe("no-hyperlinks")||BRe("hyperlink=false")||BRe("hyperlink=never"))return!1;if(BRe("hyperlink=true")||BRe("hyperlink=always")||"NETLIFY"in t)return!0;if(!VOa.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=K_i(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=K_i(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}j_i.exports={supportsHyperlink:iTr,stdout:iTr(process.stdout),stderr:iTr(process.stderr)}});var oTr=H((sSu,a0i)=>{"use strict";var QOa=function(t){return XOa(t)&&!JOa(t)};function XOa(e){return!!e&&typeof e=="object"}function JOa(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||jOa(e)}var UOa=typeof Symbol=="function"&&Symbol.for,KOa=UOa?Symbol.for("react.element"):60103;function jOa(e){return e.$$typeof===KOa}function zOa(e){return Array.isArray(e)?[]:{}}function g4e(e,t){return t.clone!==!1&&t.isMergeableObject(e)?TRe(zOa(e),e,t):e}function qOa(e,t,r){return e.concat(t).map(function(n){return g4e(n,r)})}function $Oa(e,t){if(!t.customMerge)return TRe;var r=t.customMerge(e);return typeof r=="function"?r:TRe}function e3a(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function s0i(e){return Object.keys(e).concat(e3a(e))}function o0i(e,t){try{return t in e}catch{return!1}}function t3a(e,t){return o0i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function r3a(e,t,r){var n={};return r.isMergeableObject(e)&&s0i(e).forEach(function(a){n[a]=g4e(e[a],r)}),s0i(t).forEach(function(a){t3a(e,a)||(o0i(e,a)&&r.isMergeableObject(t[a])?n[a]=$Oa(a,r)(e[a],t[a],r):n[a]=g4e(t[a],r))}),n}function TRe(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qOa,r.isMergeableObject=r.isMergeableObject||QOa,r.cloneUnlessOtherwiseSpecified=g4e;var n=Array.isArray(t),a=Array.isArray(e),o=n===a;return o?n?r.arrayMerge(e,t,r):r3a(e,t,r):g4e(t,r)}TRe.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,a){return TRe(n,a,r)},{})};var n3a=TRe;a0i.exports=n3a});var mRi=H((fNu,hRi)=>{hRi.exports=function(t,r){var n,a;typeof r=="function"?a=r:n=r;var o=Object.keys(t);return(n||[]).concat(o.sort(a)).reduce(function(l,A){return o.indexOf(A)!==-1&&(l[A]=t[A]),l},Object.create(null))}});var TRi=H((SNu,FEt)=>{"use strict";FEt.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");var t=e.match(/(?:\r?\n)/g)||[];if(t.length===0)return null;var r=t.filter(function(a){return a===`\r `}).length,n=t.length-r;return r>n?`\r `:` `};FEt.exports.graceful=function(e){return FEt.exports(e)||` -`}});var Skr=H((SNu,RRi)=>{"use strict";var Xlc=wt("os");RRi.exports=Xlc.homedir||function(){var t=process.env.HOME,r=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return process.platform==="win32"?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||t||null:process.platform==="darwin"?t||(r?"/Users/"+r:null):process.platform==="linux"?t||(process.getuid()===0?"/root":r?"/home/"+r:null):t||null}});var vkr=H((vNu,NRi)=>{NRi.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(r,n){return n};var t=new Error().stack;return Error.prepareStackTrace=e,t[2].getFileName()}});var DRi=H((BNu,JJe)=>{"use strict";var Jlc=process.platform==="win32",Ulc=/^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/,Bkr={};function Klc(e){return Ulc.exec(e).slice(1)}Bkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=Klc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0]===t[1]?t[0]:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};var jlc=/^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/,wkr={};function zlc(e){return jlc.exec(e).slice(1)}wkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=zlc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};Jlc?JJe.exports=Bkr.parse:JJe.exports=wkr.parse;JJe.exports.posix=wkr.parse;JJe.exports.win32=Bkr.parse});var Tkr=H((wNu,FRi)=>{var GRi=wt("path"),kRi=GRi.parse||DRi(),xRi=function(t,r){var n="/";/^([A-Za-z]:)/.test(t)?n="":/^\\\\/.test(t)&&(n="\\\\");for(var a=[t],o=kRi(t);o.dir!==a[a.length-1];)a.push(o.dir),o=kRi(o.dir);return a.reduce(function(l,A){return l.concat(r.map(function(f){return GRi.resolve(n,A,f)}))},[])};FRi.exports=function(t,r,n){var a=r&&r.moduleDirectory?[].concat(r.moduleDirectory):["node_modules"];if(r&&typeof r.paths=="function")return r.paths(n,t,function(){return xRi(t,a)},r);var o=xRi(t,a);return r&&r.paths?o.concat(r.paths):o}});var Rkr=H((TNu,ZRi)=>{var UJe=wt("path");ZRi.exports=function(e,t){if(t=t||{},t.forceNodeResolution||!process.versions.pnp)return t;let{findPnpApi:r}=wt("module"),n=(I,C)=>{let b=I.match(/^((?:@[^/]+\/)?[^/]+)(\/.*)?/);if(!b)throw new Error(`Assertion failed: Expected the "resolve" package to call the "paths" callback with package names only (got "${I}")`);C.charAt(C.length-1)!=="/"&&(C=UJe.join(C,"/"));let E=r(C);if(E===null)return;let N;try{N=E.resolveToUnqualified(`${b[1]}/package.json`,C,{considerBuiltins:!1})}catch{return null}if(N===null)throw new Error(`Assertion failed: The resolution thinks that "${b[1]}" is a Node builtin`);let B=UJe.dirname(N),F=typeof b[2]<"u"?UJe.join(B,b[2]):B;return{packagePath:B,unqualifiedPath:F}},a=(I,C)=>{for(let b=0;b{let N=[C].concat(o),B=a(I,N);return B==null?b():[B.unqualifiedPath]},A=(I,C,b,E)=>{let N=[C].concat(o),B=a(I,N);if(B==null)return b().concat(o);let F=UJe.dirname(B.packagePath);return I.match(/^@[^/]+\//)&&(F=UJe.dirname(F)),[F]},f=!1;return t.__skipPackageIterator||(t.packageIterator=function(I,C,b,E){f=!0;try{return l(I,C,b,E)}finally{f=!1}}),t.paths=function(I,C,b,E){return f?b().concat(o):A(I,C,b,E)},t}});var PRi=H((RNu,VRi)=>{"use strict";var qlc="Function.prototype.bind called on incompatible ",$lc=Object.prototype.toString,euc=Math.max,tuc="[object Function]",LRi=function(t,r){for(var n=[],a=0;a{"use strict";var iuc=PRi();WRi.exports=Function.prototype.bind||iuc});var HRi=H((DNu,MRi)=>{"use strict";var suc=Function.prototype.call,ouc=Object.prototype.hasOwnProperty,auc=ORi();MRi.exports=auc.call(suc,ouc)});var YRi=H((kNu,cuc)=>{cuc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],"node:sea":[">= 20.12 && < 21",">= 21.7"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"test/mock_loader":">= 22.3 && < 22.7","node:test/mock_loader":">= 22.3 && < 22.7","node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var KJe=H((xNu,JRi)=>{"use strict";var luc=HRi();function uuc(e,t){for(var r=e.split("."),n=t.split(" "),a=n.length>1?n[0]:"=",o=(n.length>1?n[1]:n[0]).split("."),l=0;l<3;++l){var A=parseInt(r[l]||0,10),f=parseInt(o[l]||0,10);if(A!==f)return a==="<"?A="?A>=f:!1}return a===">="}function QRi(e,t){var r=t.split(/ ?&& ?/);if(r.length===0)return!1;for(var n=0;n"u"?process.versions&&process.versions.node:e;if(typeof r!="string")throw new TypeError(typeof e>"u"?"Unable to determine current node version":"If provided, a valid node version is required");if(t&&typeof t=="object"){for(var n=0;n{var aCe=wt("fs"),Auc=Skr(),pT=wt("path"),duc=vkr(),puc=Tkr(),fuc=Rkr(),Iuc=KJe(),huc=process.platform!=="win32"&&aCe.realpath&&typeof aCe.realpath.native=="function"?aCe.realpath.native:aCe.realpath,URi=Auc(),muc=function(){return[pT.join(URi,".node_modules"),pT.join(URi,".node_libraries")]},Cuc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isFile()||a.isFIFO())})},_uc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isDirectory())})},yuc=function(t,r){huc(t,function(n,a){n&&n.code!=="ENOENT"?r(n):r(null,n?t:a)})},jJe=function(t,r,n,a){n&&n.preserveSymlinks===!1?t(r,a):a(null,r)},buc=function(t,r,n){t(r,function(a,o){if(a)n(a);else try{var l=JSON.parse(o);n(null,l)}catch{n(null)}})},Euc=function(t,r,n){for(var a=puc(r,n,t),o=0;o{Suc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var tNi=H((ZNu,eNi)=>{"use strict";var vuc=KJe(),qRi=zRi(),$Ri={};for(ZEt in qRi)Object.prototype.hasOwnProperty.call(qRi,ZEt)&&($Ri[ZEt]=vuc(ZEt));var ZEt;eNi.exports=$Ri});var nNi=H((LNu,rNi)=>{var Buc=KJe();rNi.exports=function(t){return Buc(t)}});var oNi=H((VNu,sNi)=>{var wuc=KJe(),cCe=wt("fs"),xG=wt("path"),Tuc=Skr(),Ruc=vkr(),Nuc=Tkr(),Duc=Rkr(),kuc=process.platform!=="win32"&&cCe.realpathSync&&typeof cCe.realpathSync.native=="function"?cCe.realpathSync.native:cCe.realpathSync,iNi=Tuc(),xuc=function(){return[xG.join(iNi,".node_modules"),xG.join(iNi,".node_libraries")]},Guc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&(r.isFile()||r.isFIFO())},Fuc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&r.isDirectory()},Zuc=function(t){try{return kuc(t)}catch(r){if(r.code!=="ENOENT")throw r}return t},zJe=function(t,r,n){return n&&n.preserveSymlinks===!1?t(r):r},Luc=function(t,r){var n=t(r);try{var a=JSON.parse(n);return a}catch{}},Vuc=function(t,r,n){for(var a=Nuc(r,n,t),o=0;o{var LEt=jRi();LEt.core=tNi();LEt.isCore=nNi();LEt.sync=oNi();aNi.exports=LEt});var uNi=H((WNu,lNi)=>{"use strict";var{builtinModules:Puc}=wt("module"),Wuc=["sys"];lNi.exports=(Puc||(process.binding?Object.keys(process.binding("natives")):[])||[]).filter(e=>!/^_|^(internal|v8|node-inspect)\/|\//.test(e)&&!Wuc.includes(e)).sort()});var dNi=H((ONu,ANi)=>{"use strict";var Ouc=uNi(),Muc=new Set(Ouc),gNi="node:";ANi.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");e.startsWith(gNi)&&(e=e.slice(gNi.length));let t=e.indexOf("/");return t!==-1&&t!==e.length-1&&(e=e.slice(0,t)),Muc.has(e)}});var INi=H(Nkr=>{"use strict";Object.defineProperty(Nkr,"__esModule",{value:!0});var Huc=wt("path"),Yuc=cNi(),Quc=dNi();function Xuc(e){if(e.length===1){let r=e;return n=>{let a=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return r(a)}}let t=e;return(r,n)=>{let a=r.defaultMember||r.namespaceMember||r.namedMembers[0].alias,o=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return t(a,o)}}function Juc(e){if(e.length===1){let r=e;return n=>{let a=n.moduleName;return r(a)}}let t=e;return(r,n)=>{let a=r.moduleName,o=n.moduleName;return t(a,o)}}function Uuc(e){return(t,r)=>e(t.name,r.name)}function Kuc(e){return(t,r)=>e(t.alias,r.alias)}function juc(){return!0}function zuc(e){return t=>!e(t)}function quc(...e){return t=>e.every(r=>r(t))}function $uc(...e){return t=>e.some(r=>r(t))}function qJe(e){return!!e.defaultMember}function XNe(e){return!!e.namespaceMember}function $Je(e){return e.namedMembers.length>0}function pNi(e){return qJe(e)||XNe(e)||$Je(e)}function egc(e){return!pNi(e)}function tgc(e){return qJe(e)&&!XNe(e)&&!$Je(e)}function rgc(e){return!qJe(e)&&XNe(e)&&!$Je(e)}function ngc(e){return!qJe(e)&&!XNe(e)&&$Je(e)}function igc(e){return e.namedMembers.length+(e.defaultMember?1:0)+(e.namespaceMember?1:0)>1}function sgc(e){return e.namedMembers.length+(e.defaultMember?1:0)===1&&!XNe(e)}function ogc(e){return Quc(e.moduleName)}function fNi(e){return e.moduleName.indexOf(".")===0}function agc(e){return!fNi(e)}function cgc(e){return t=>{try{return Yuc.sync(t.moduleName,{basedir:Huc.dirname(e)}).includes("node_modules")}catch{return!1}}}function lgc(e){return e.moduleName.startsWith("@")}function ugc(e){let t=e.charAt(0);return e.charAt(0)===t.toUpperCase()}function ggc(e){let t=e.charAt(0);return e.charAt(0)===t.toLowerCase()}function Agc(e){return!!e.match(/^[A-Za-z0-9]/)}function dgc(...e){return t=>e.some(r=>t.startsWith(r))}function pgc(e,t){return e.localeCompare(t,"en")}function fgc(e,t){return et?1:0}function Igc(e,t){let r=/\.+(?=\/)/g,n=(e.moduleName.match(r)||[]).join("").length,a=(t.moduleName.match(r)||[]).join("").length;return n>a?-1:n{"use strict";Object.defineProperty(eUe,"__esModule",{value:!0});var mgc=TRi(),Cgc=INi();function _gc(e,t,r,n,a){let o,l=typeof t=="string"?wt(t):t;return typeof r=="string"?(o=wt(r),o.default&&(o=o.default)):o=r,hNi(e,l,o,n,a)}eUe.default=_gc;function hNi(e,t,r,n,a){let o=Egc(r,n,a||{})(Cgc.default),l=o.map(()=>[]),A=t.parseImports(e,{file:n});if(A.length===0)return{code:e,changes:[]};let f=mgc.graceful(e),I=[];for(let fe of A){let ue=fe,de=o.findIndex(be=>(ue=ygc(fe,be.sortNamedMembers),!!be.match&&be.match(ue)));de!==-1&&l[de].push(ue)}l.forEach((fe,ue)=>{let{sort:de}=o[ue];if(!de)return;if(!Array.isArray(de)){fe.sort(de);return}let be=de;if(be.length===0)return;let Se=(De,k)=>{let et=0,ct=0;for(;ct===0&&be[et];)ct=be[et](De,k),et+=1;return ct};fe.sort(Se)});let C="",b=!1;l.forEach((fe,ue)=>{fe.length>0&&b&&(C+=f,b=!1),fe.forEach(de=>{let be=t.formatImport(e,de,f);C+=be+f}),o[ue].separator&&C!==""&&(b=!0)});let E=e;A.slice().reverse().forEach(fe=>{let ue=fe.end;E.charAt(fe.end).match(/\s/)&&(ue+=1),I.push({start:fe.start,end:ue,code:"",note:"import-remove"}),E=E.slice(0,fe.start)+E.slice(ue,e.length)});let{start:N}=A[0],B=e.substring(0,N),F=E.substring(N,E.length),Q=B.length,X=F.length,ae,ne;B=B.replace(/\s+$/,fe=>(ae={start:N-fe.length,end:N,code:f+f,note:"before-collapse"},f+f)),F=F.replace(/^\s+/,fe=>(ne={start:N,end:N+fe.length,code:f,note:"after-collapse"},f)),B.match(/^\s+$/)&&(ae={start:N-Q,end:N,code:"",note:"before-trim"},B=""),F.match(/^\s+$/)&&(ne={start:N,end:N+X,code:"",note:"after-trim"},F=""),ne&&I.push(ne),ae&&I.push(ae);let ce={start:B.length,end:B.length,code:C,note:"imports"};return I.push(ce),e===B+C+F?{code:e,changes:[]}:{code:B+C+F,changes:I}}eUe.sortImports=hNi;function ygc(e,t){let r=t;if(!r)return e;if(!Array.isArray(r)){let l=Object.assign({},e);return l.namedMembers=[...e.namedMembers].sort(r),l}let n=r;if(n.length===0)return e;let a=(l,A)=>{let f=0,I=0;for(;I===0&&n[f];)I=n[f](l,A),f+=1;return I},o=Object.assign({},e);return o.namedMembers=[...e.namedMembers].sort(a),o}function bgc(e,t){let r=e;for(let n of t)r=r.slice(0,n.start)+n.code+r.slice(n.end,r.length);return r}eUe.applyChanges=bgc;function Egc(e,t,r){return n=>{let a=[{separator:!0},{match:n.always}];return e(n,t,r).concat(a)}}});var XNi=H((jDu,QNi)=>{"use strict";var lCe=class e extends Error{constructor(t,r,n){super("[ParserError] "+t,r,n),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}},WEt=class{constructor(t){this.parser=t,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null}},rUe=class{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new WEt(this.parseStart)}parse(t){if(t.length===0||t.length==null)return;this._buf=String(t),this.ii=-1,this.char=-1;let r;for(;r===!1||this.nextChar();)r=this.runOne();this._buf=null}nextChar(){return this.char===10&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer()}haveBuffer(){return this.ii{"use strict";JNi.exports=e=>{let t=new Date(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var OEt=H((qDu,KNi)=>{"use strict";KNi.exports=(e,t)=>{for(t=String(t);t.length{"use strict";var JNe=OEt(),Gkr=class extends Date{constructor(t){super(t+"Z"),this.isFloating=!0}toISOString(){let t=`${this.getUTCFullYear()}-${JNe(2,this.getUTCMonth()+1)}-${JNe(2,this.getUTCDate())}`,r=`${JNe(2,this.getUTCHours())}:${JNe(2,this.getUTCMinutes())}:${JNe(2,this.getUTCSeconds())}.${JNe(3,this.getUTCMilliseconds())}`;return`${t}T${r}`}};jNi.exports=e=>{let t=new Gkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var eDi=H((eku,$Ni)=>{"use strict";var qNi=OEt(),Xgc=global.Date,Fkr=class extends Xgc{constructor(t){super(t),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${qNi(2,this.getUTCMonth()+1)}-${qNi(2,this.getUTCDate())}`}};$Ni.exports=e=>{let t=new Fkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var rDi=H((tku,tDi)=>{"use strict";var MEt=OEt(),Zkr=class extends Date{constructor(t){super(`0000-01-01T${t}Z`),this.isTime=!0}toISOString(){return`${MEt(2,this.getUTCHours())}:${MEt(2,this.getUTCMinutes())}:${MEt(2,this.getUTCSeconds())}.${MEt(3,this.getUTCMilliseconds())}`}};tDi.exports=e=>{let t=new Zkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var HEt=H((exports,module)=>{"use strict";module.exports=makeParserClass(XNi());module.exports.makeParserClass=makeParserClass;var TomlError=class e extends Error{constructor(t){super(t),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,e),this.fromTOML=!0,this.wrapped=null}};TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t};module.exports.TomlError=TomlError;var createDateTime=UNi(),createDateTimeFloat=zNi(),createDate=eDi(),createTime=rDi(),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:` -`,[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}var _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return hasOwnProperty.call(e,t)?!0:(t==="__proto__"&&defineProperty(e,"__proto__",descriptor),!1)}var INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_TABLE}var TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return e===null||typeof e!="object"?!1:e[_type]===TABLE}var _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_LIST}var LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return e===null||typeof e!="object"?!1:e[_type]===LIST}var _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(e){}var _inspect=_custom||"inspect",BoxedBigInt=class{constructor(t){try{this.value=global.BigInt.asIntN(64,t)}catch{this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return this.value===null}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}},INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return Object.is(t,-0)&&(t=0),global.BigInt&&!Number.isSafeInteger(t)?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return e===null||typeof e!="object"?!1:e[_type]===INTEGER}var FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return e===null||typeof e!="object"?!1:e[_type]===FLOAT}function tomlType(e){let t=typeof e;if(t==="object"){if(e===null)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(n){let a=this.ctx,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(n){return this.state.resultTable?this.state.resultTable.push(n):this.state.resultTable=[n],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){if(this.char===CHAR_PERIOD)return this.next(this.parseAssignKeywordPostDot);if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.goto(this.parseAssignEqual)}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(n){return this.returnNow({key:this.state.resultTable,value:n})}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar())}parseTableOrList(){if(this.char===CHAR_LSQB)this.next(this.parseList);else return this.goto(this.parseTable)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)&&(!isTable(this.ctx[n])||this.ctx[n][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[n]=this.ctx[n]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else throw this.error(new TomlError("Can't redefine existing key"));return this.next(this.parseTableNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)||(this.ctx[n]=List()),isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[n])){let a=Table();this.ctx[n].push(a),this.ctx=a}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else{if(isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline table"));if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else throw this.error(new TomlError("Can't redefine an existing key"))}return this.next(this.parseListNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(n){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(n){return this.returnNow(n)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return this.state.buf==="-"?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else{if(this.state.buf.length===0)throw this.error(new TomlError("Empty bare keys are not allowed"));return this.returnNow()}}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}recordEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}errorControlCharInString(){let n="\\u00";return this.char<16&&(n+="0"),n+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${n} instead`))}recordMultiEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(n){try{let a=parseInt(n,16);if(a>=SURROGATE_FIRST&&a<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(a))}catch(a){throw this.error(TomlError.wrap(a))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder):this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_HYPHEN?this.goto(this.parseDateTime):this.char===CHAR_COLON?this.goto(this.parseOnlyTimeHour):this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}else{if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}}parseNumberBaseOrDateTime(){return this.char===CHAR_b?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin)):this.char===CHAR_o?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct)):this.char===CHAR_x?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex)):this.char===CHAR_PERIOD?this.goto(this.parseNumberInteger):isDigit(this.char)?this.goto(this.parseDateTimeOnly):this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}else{if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);throw this.error(new TomlError("Incomplete datetime"))}}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);throw this.error(new TomlError("Incomplete time"))}}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char===CHAR_PERIOD)this.state.buf="",this.next(this.parseOnlyTimeFraction);else return this.return(createTime(this.state.result))}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(this.state.buf.length===0)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else{if(this.state.buf.length===1)throw this.error(new TomlError("Expected digit in milliseconds"));if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){if(this.char===CHAR_t)return this.consume(),this.next(this.parseTrue_r);if(this.char===CHAR_f)return this.consume(),this.next(this.parseFalse_a)}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(n){if(this.state.resultArr){let a=this.state.resultArr[_contentType],o=tomlType(n);if(a!==o)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${a} and ${o}`))}else this.state.resultArr=InlineList(tomlType(n));return isFloat(n)||isInteger(n)?this.state.resultArr.push(n.valueOf()):this.state.resultArr.push(n),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(n){let a=this.state.resultTable,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}}return t}});var YEt=H((rku,nDi)=>{"use strict";nDi.exports=Jgc;function Jgc(e,t){if(e.pos==null||e.line==null)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: +`}});var Skr=H((vNu,RRi)=>{"use strict";var Xlc=wt("os");RRi.exports=Xlc.homedir||function(){var t=process.env.HOME,r=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return process.platform==="win32"?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||t||null:process.platform==="darwin"?t||(r?"/Users/"+r:null):process.platform==="linux"?t||(process.getuid()===0?"/root":r?"/home/"+r:null):t||null}});var vkr=H((BNu,NRi)=>{NRi.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(r,n){return n};var t=new Error().stack;return Error.prepareStackTrace=e,t[2].getFileName()}});var DRi=H((wNu,JJe)=>{"use strict";var Jlc=process.platform==="win32",Ulc=/^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/,Bkr={};function Klc(e){return Ulc.exec(e).slice(1)}Bkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=Klc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0]===t[1]?t[0]:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};var jlc=/^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/,wkr={};function zlc(e){return jlc.exec(e).slice(1)}wkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=zlc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};Jlc?JJe.exports=Bkr.parse:JJe.exports=wkr.parse;JJe.exports.posix=wkr.parse;JJe.exports.win32=Bkr.parse});var Tkr=H((TNu,FRi)=>{var GRi=wt("path"),kRi=GRi.parse||DRi(),xRi=function(t,r){var n="/";/^([A-Za-z]:)/.test(t)?n="":/^\\\\/.test(t)&&(n="\\\\");for(var a=[t],o=kRi(t);o.dir!==a[a.length-1];)a.push(o.dir),o=kRi(o.dir);return a.reduce(function(l,A){return l.concat(r.map(function(f){return GRi.resolve(n,A,f)}))},[])};FRi.exports=function(t,r,n){var a=r&&r.moduleDirectory?[].concat(r.moduleDirectory):["node_modules"];if(r&&typeof r.paths=="function")return r.paths(n,t,function(){return xRi(t,a)},r);var o=xRi(t,a);return r&&r.paths?o.concat(r.paths):o}});var Rkr=H((RNu,ZRi)=>{var UJe=wt("path");ZRi.exports=function(e,t){if(t=t||{},t.forceNodeResolution||!process.versions.pnp)return t;let{findPnpApi:r}=wt("module"),n=(I,C)=>{let b=I.match(/^((?:@[^/]+\/)?[^/]+)(\/.*)?/);if(!b)throw new Error(`Assertion failed: Expected the "resolve" package to call the "paths" callback with package names only (got "${I}")`);C.charAt(C.length-1)!=="/"&&(C=UJe.join(C,"/"));let E=r(C);if(E===null)return;let N;try{N=E.resolveToUnqualified(`${b[1]}/package.json`,C,{considerBuiltins:!1})}catch{return null}if(N===null)throw new Error(`Assertion failed: The resolution thinks that "${b[1]}" is a Node builtin`);let B=UJe.dirname(N),F=typeof b[2]<"u"?UJe.join(B,b[2]):B;return{packagePath:B,unqualifiedPath:F}},a=(I,C)=>{for(let b=0;b{let N=[C].concat(o),B=a(I,N);return B==null?b():[B.unqualifiedPath]},A=(I,C,b,E)=>{let N=[C].concat(o),B=a(I,N);if(B==null)return b().concat(o);let F=UJe.dirname(B.packagePath);return I.match(/^@[^/]+\//)&&(F=UJe.dirname(F)),[F]},f=!1;return t.__skipPackageIterator||(t.packageIterator=function(I,C,b,E){f=!0;try{return l(I,C,b,E)}finally{f=!1}}),t.paths=function(I,C,b,E){return f?b().concat(o):A(I,C,b,E)},t}});var PRi=H((NNu,VRi)=>{"use strict";var qlc="Function.prototype.bind called on incompatible ",$lc=Object.prototype.toString,euc=Math.max,tuc="[object Function]",LRi=function(t,r){for(var n=[],a=0;a{"use strict";var iuc=PRi();WRi.exports=Function.prototype.bind||iuc});var HRi=H((kNu,MRi)=>{"use strict";var suc=Function.prototype.call,ouc=Object.prototype.hasOwnProperty,auc=ORi();MRi.exports=auc.call(suc,ouc)});var YRi=H((xNu,cuc)=>{cuc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],"node:sea":[">= 20.12 && < 21",">= 21.7"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"test/mock_loader":">= 22.3 && < 22.7","node:test/mock_loader":">= 22.3 && < 22.7","node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var KJe=H((GNu,JRi)=>{"use strict";var luc=HRi();function uuc(e,t){for(var r=e.split("."),n=t.split(" "),a=n.length>1?n[0]:"=",o=(n.length>1?n[1]:n[0]).split("."),l=0;l<3;++l){var A=parseInt(r[l]||0,10),f=parseInt(o[l]||0,10);if(A!==f)return a==="<"?A="?A>=f:!1}return a===">="}function QRi(e,t){var r=t.split(/ ?&& ?/);if(r.length===0)return!1;for(var n=0;n"u"?process.versions&&process.versions.node:e;if(typeof r!="string")throw new TypeError(typeof e>"u"?"Unable to determine current node version":"If provided, a valid node version is required");if(t&&typeof t=="object"){for(var n=0;n{var aCe=wt("fs"),Auc=Skr(),pT=wt("path"),duc=vkr(),puc=Tkr(),fuc=Rkr(),Iuc=KJe(),huc=process.platform!=="win32"&&aCe.realpath&&typeof aCe.realpath.native=="function"?aCe.realpath.native:aCe.realpath,URi=Auc(),muc=function(){return[pT.join(URi,".node_modules"),pT.join(URi,".node_libraries")]},Cuc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isFile()||a.isFIFO())})},_uc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isDirectory())})},yuc=function(t,r){huc(t,function(n,a){n&&n.code!=="ENOENT"?r(n):r(null,n?t:a)})},jJe=function(t,r,n,a){n&&n.preserveSymlinks===!1?t(r,a):a(null,r)},buc=function(t,r,n){t(r,function(a,o){if(a)n(a);else try{var l=JSON.parse(o);n(null,l)}catch{n(null)}})},Euc=function(t,r,n){for(var a=puc(r,n,t),o=0;o{Suc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var tNi=H((LNu,eNi)=>{"use strict";var vuc=KJe(),qRi=zRi(),$Ri={};for(ZEt in qRi)Object.prototype.hasOwnProperty.call(qRi,ZEt)&&($Ri[ZEt]=vuc(ZEt));var ZEt;eNi.exports=$Ri});var nNi=H((VNu,rNi)=>{var Buc=KJe();rNi.exports=function(t){return Buc(t)}});var oNi=H((PNu,sNi)=>{var wuc=KJe(),cCe=wt("fs"),xG=wt("path"),Tuc=Skr(),Ruc=vkr(),Nuc=Tkr(),Duc=Rkr(),kuc=process.platform!=="win32"&&cCe.realpathSync&&typeof cCe.realpathSync.native=="function"?cCe.realpathSync.native:cCe.realpathSync,iNi=Tuc(),xuc=function(){return[xG.join(iNi,".node_modules"),xG.join(iNi,".node_libraries")]},Guc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&(r.isFile()||r.isFIFO())},Fuc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&r.isDirectory()},Zuc=function(t){try{return kuc(t)}catch(r){if(r.code!=="ENOENT")throw r}return t},zJe=function(t,r,n){return n&&n.preserveSymlinks===!1?t(r):r},Luc=function(t,r){var n=t(r);try{var a=JSON.parse(n);return a}catch{}},Vuc=function(t,r,n){for(var a=Nuc(r,n,t),o=0;o{var LEt=jRi();LEt.core=tNi();LEt.isCore=nNi();LEt.sync=oNi();aNi.exports=LEt});var uNi=H((ONu,lNi)=>{"use strict";var{builtinModules:Puc}=wt("module"),Wuc=["sys"];lNi.exports=(Puc||(process.binding?Object.keys(process.binding("natives")):[])||[]).filter(e=>!/^_|^(internal|v8|node-inspect)\/|\//.test(e)&&!Wuc.includes(e)).sort()});var dNi=H((MNu,ANi)=>{"use strict";var Ouc=uNi(),Muc=new Set(Ouc),gNi="node:";ANi.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");e.startsWith(gNi)&&(e=e.slice(gNi.length));let t=e.indexOf("/");return t!==-1&&t!==e.length-1&&(e=e.slice(0,t)),Muc.has(e)}});var INi=H(Nkr=>{"use strict";Object.defineProperty(Nkr,"__esModule",{value:!0});var Huc=wt("path"),Yuc=cNi(),Quc=dNi();function Xuc(e){if(e.length===1){let r=e;return n=>{let a=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return r(a)}}let t=e;return(r,n)=>{let a=r.defaultMember||r.namespaceMember||r.namedMembers[0].alias,o=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return t(a,o)}}function Juc(e){if(e.length===1){let r=e;return n=>{let a=n.moduleName;return r(a)}}let t=e;return(r,n)=>{let a=r.moduleName,o=n.moduleName;return t(a,o)}}function Uuc(e){return(t,r)=>e(t.name,r.name)}function Kuc(e){return(t,r)=>e(t.alias,r.alias)}function juc(){return!0}function zuc(e){return t=>!e(t)}function quc(...e){return t=>e.every(r=>r(t))}function $uc(...e){return t=>e.some(r=>r(t))}function qJe(e){return!!e.defaultMember}function XNe(e){return!!e.namespaceMember}function $Je(e){return e.namedMembers.length>0}function pNi(e){return qJe(e)||XNe(e)||$Je(e)}function egc(e){return!pNi(e)}function tgc(e){return qJe(e)&&!XNe(e)&&!$Je(e)}function rgc(e){return!qJe(e)&&XNe(e)&&!$Je(e)}function ngc(e){return!qJe(e)&&!XNe(e)&&$Je(e)}function igc(e){return e.namedMembers.length+(e.defaultMember?1:0)+(e.namespaceMember?1:0)>1}function sgc(e){return e.namedMembers.length+(e.defaultMember?1:0)===1&&!XNe(e)}function ogc(e){return Quc(e.moduleName)}function fNi(e){return e.moduleName.indexOf(".")===0}function agc(e){return!fNi(e)}function cgc(e){return t=>{try{return Yuc.sync(t.moduleName,{basedir:Huc.dirname(e)}).includes("node_modules")}catch{return!1}}}function lgc(e){return e.moduleName.startsWith("@")}function ugc(e){let t=e.charAt(0);return e.charAt(0)===t.toUpperCase()}function ggc(e){let t=e.charAt(0);return e.charAt(0)===t.toLowerCase()}function Agc(e){return!!e.match(/^[A-Za-z0-9]/)}function dgc(...e){return t=>e.some(r=>t.startsWith(r))}function pgc(e,t){return e.localeCompare(t,"en")}function fgc(e,t){return et?1:0}function Igc(e,t){let r=/\.+(?=\/)/g,n=(e.moduleName.match(r)||[]).join("").length,a=(t.moduleName.match(r)||[]).join("").length;return n>a?-1:n{"use strict";Object.defineProperty(eUe,"__esModule",{value:!0});var mgc=TRi(),Cgc=INi();function _gc(e,t,r,n,a){let o,l=typeof t=="string"?wt(t):t;return typeof r=="string"?(o=wt(r),o.default&&(o=o.default)):o=r,hNi(e,l,o,n,a)}eUe.default=_gc;function hNi(e,t,r,n,a){let o=Egc(r,n,a||{})(Cgc.default),l=o.map(()=>[]),A=t.parseImports(e,{file:n});if(A.length===0)return{code:e,changes:[]};let f=mgc.graceful(e),I=[];for(let fe of A){let ue=fe,de=o.findIndex(be=>(ue=ygc(fe,be.sortNamedMembers),!!be.match&&be.match(ue)));de!==-1&&l[de].push(ue)}l.forEach((fe,ue)=>{let{sort:de}=o[ue];if(!de)return;if(!Array.isArray(de)){fe.sort(de);return}let be=de;if(be.length===0)return;let Se=(De,k)=>{let et=0,ct=0;for(;ct===0&&be[et];)ct=be[et](De,k),et+=1;return ct};fe.sort(Se)});let C="",b=!1;l.forEach((fe,ue)=>{fe.length>0&&b&&(C+=f,b=!1),fe.forEach(de=>{let be=t.formatImport(e,de,f);C+=be+f}),o[ue].separator&&C!==""&&(b=!0)});let E=e;A.slice().reverse().forEach(fe=>{let ue=fe.end;E.charAt(fe.end).match(/\s/)&&(ue+=1),I.push({start:fe.start,end:ue,code:"",note:"import-remove"}),E=E.slice(0,fe.start)+E.slice(ue,e.length)});let{start:N}=A[0],B=e.substring(0,N),F=E.substring(N,E.length),Q=B.length,X=F.length,ae,ne;B=B.replace(/\s+$/,fe=>(ae={start:N-fe.length,end:N,code:f+f,note:"before-collapse"},f+f)),F=F.replace(/^\s+/,fe=>(ne={start:N,end:N+fe.length,code:f,note:"after-collapse"},f)),B.match(/^\s+$/)&&(ae={start:N-Q,end:N,code:"",note:"before-trim"},B=""),F.match(/^\s+$/)&&(ne={start:N,end:N+X,code:"",note:"after-trim"},F=""),ne&&I.push(ne),ae&&I.push(ae);let ce={start:B.length,end:B.length,code:C,note:"imports"};return I.push(ce),e===B+C+F?{code:e,changes:[]}:{code:B+C+F,changes:I}}eUe.sortImports=hNi;function ygc(e,t){let r=t;if(!r)return e;if(!Array.isArray(r)){let l=Object.assign({},e);return l.namedMembers=[...e.namedMembers].sort(r),l}let n=r;if(n.length===0)return e;let a=(l,A)=>{let f=0,I=0;for(;I===0&&n[f];)I=n[f](l,A),f+=1;return I},o=Object.assign({},e);return o.namedMembers=[...e.namedMembers].sort(a),o}function bgc(e,t){let r=e;for(let n of t)r=r.slice(0,n.start)+n.code+r.slice(n.end,r.length);return r}eUe.applyChanges=bgc;function Egc(e,t,r){return n=>{let a=[{separator:!0},{match:n.always}];return e(n,t,r).concat(a)}}});var XNi=H((zDu,QNi)=>{"use strict";var lCe=class e extends Error{constructor(t,r,n){super("[ParserError] "+t,r,n),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}},WEt=class{constructor(t){this.parser=t,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null}},rUe=class{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new WEt(this.parseStart)}parse(t){if(t.length===0||t.length==null)return;this._buf=String(t),this.ii=-1,this.char=-1;let r;for(;r===!1||this.nextChar();)r=this.runOne();this._buf=null}nextChar(){return this.char===10&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer()}haveBuffer(){return this.ii{"use strict";JNi.exports=e=>{let t=new Date(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var OEt=H(($Du,KNi)=>{"use strict";KNi.exports=(e,t)=>{for(t=String(t);t.length{"use strict";var JNe=OEt(),Gkr=class extends Date{constructor(t){super(t+"Z"),this.isFloating=!0}toISOString(){let t=`${this.getUTCFullYear()}-${JNe(2,this.getUTCMonth()+1)}-${JNe(2,this.getUTCDate())}`,r=`${JNe(2,this.getUTCHours())}:${JNe(2,this.getUTCMinutes())}:${JNe(2,this.getUTCSeconds())}.${JNe(3,this.getUTCMilliseconds())}`;return`${t}T${r}`}};jNi.exports=e=>{let t=new Gkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var eDi=H((tku,$Ni)=>{"use strict";var qNi=OEt(),Xgc=global.Date,Fkr=class extends Xgc{constructor(t){super(t),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${qNi(2,this.getUTCMonth()+1)}-${qNi(2,this.getUTCDate())}`}};$Ni.exports=e=>{let t=new Fkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var rDi=H((rku,tDi)=>{"use strict";var MEt=OEt(),Zkr=class extends Date{constructor(t){super(`0000-01-01T${t}Z`),this.isTime=!0}toISOString(){return`${MEt(2,this.getUTCHours())}:${MEt(2,this.getUTCMinutes())}:${MEt(2,this.getUTCSeconds())}.${MEt(3,this.getUTCMilliseconds())}`}};tDi.exports=e=>{let t=new Zkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var HEt=H((exports,module)=>{"use strict";module.exports=makeParserClass(XNi());module.exports.makeParserClass=makeParserClass;var TomlError=class e extends Error{constructor(t){super(t),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,e),this.fromTOML=!0,this.wrapped=null}};TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t};module.exports.TomlError=TomlError;var createDateTime=UNi(),createDateTimeFloat=zNi(),createDate=eDi(),createTime=rDi(),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:` +`,[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}var _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return hasOwnProperty.call(e,t)?!0:(t==="__proto__"&&defineProperty(e,"__proto__",descriptor),!1)}var INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_TABLE}var TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return e===null||typeof e!="object"?!1:e[_type]===TABLE}var _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_LIST}var LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return e===null||typeof e!="object"?!1:e[_type]===LIST}var _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(e){}var _inspect=_custom||"inspect",BoxedBigInt=class{constructor(t){try{this.value=global.BigInt.asIntN(64,t)}catch{this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return this.value===null}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}},INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return Object.is(t,-0)&&(t=0),global.BigInt&&!Number.isSafeInteger(t)?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return e===null||typeof e!="object"?!1:e[_type]===INTEGER}var FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return e===null||typeof e!="object"?!1:e[_type]===FLOAT}function tomlType(e){let t=typeof e;if(t==="object"){if(e===null)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(n){let a=this.ctx,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(n){return this.state.resultTable?this.state.resultTable.push(n):this.state.resultTable=[n],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){if(this.char===CHAR_PERIOD)return this.next(this.parseAssignKeywordPostDot);if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.goto(this.parseAssignEqual)}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(n){return this.returnNow({key:this.state.resultTable,value:n})}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar())}parseTableOrList(){if(this.char===CHAR_LSQB)this.next(this.parseList);else return this.goto(this.parseTable)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)&&(!isTable(this.ctx[n])||this.ctx[n][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[n]=this.ctx[n]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else throw this.error(new TomlError("Can't redefine existing key"));return this.next(this.parseTableNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)||(this.ctx[n]=List()),isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[n])){let a=Table();this.ctx[n].push(a),this.ctx=a}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else{if(isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline table"));if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else throw this.error(new TomlError("Can't redefine an existing key"))}return this.next(this.parseListNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(n){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(n){return this.returnNow(n)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return this.state.buf==="-"?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else{if(this.state.buf.length===0)throw this.error(new TomlError("Empty bare keys are not allowed"));return this.returnNow()}}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}recordEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}errorControlCharInString(){let n="\\u00";return this.char<16&&(n+="0"),n+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${n} instead`))}recordMultiEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(n){try{let a=parseInt(n,16);if(a>=SURROGATE_FIRST&&a<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(a))}catch(a){throw this.error(TomlError.wrap(a))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder):this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_HYPHEN?this.goto(this.parseDateTime):this.char===CHAR_COLON?this.goto(this.parseOnlyTimeHour):this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}else{if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}}parseNumberBaseOrDateTime(){return this.char===CHAR_b?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin)):this.char===CHAR_o?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct)):this.char===CHAR_x?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex)):this.char===CHAR_PERIOD?this.goto(this.parseNumberInteger):isDigit(this.char)?this.goto(this.parseDateTimeOnly):this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}else{if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);throw this.error(new TomlError("Incomplete datetime"))}}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);throw this.error(new TomlError("Incomplete time"))}}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char===CHAR_PERIOD)this.state.buf="",this.next(this.parseOnlyTimeFraction);else return this.return(createTime(this.state.result))}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(this.state.buf.length===0)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else{if(this.state.buf.length===1)throw this.error(new TomlError("Expected digit in milliseconds"));if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){if(this.char===CHAR_t)return this.consume(),this.next(this.parseTrue_r);if(this.char===CHAR_f)return this.consume(),this.next(this.parseFalse_a)}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(n){if(this.state.resultArr){let a=this.state.resultArr[_contentType],o=tomlType(n);if(a!==o)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${a} and ${o}`))}else this.state.resultArr=InlineList(tomlType(n));return isFloat(n)||isInteger(n)?this.state.resultArr.push(n.valueOf()):this.state.resultArr.push(n),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(n){let a=this.state.resultTable,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}}return t}});var YEt=H((nku,nDi)=>{"use strict";nDi.exports=Jgc;function Jgc(e,t){if(e.pos==null||e.line==null)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: `,t&&t.split){let n=t.split(/\n/),a=String(Math.min(n.length,e.line+3)).length,o=" ";for(;o.length "+n[l]+` `,r+=o+" ";for(let f=0;f{"use strict";iDi.exports=jgc;var Ugc=HEt(),Kgc=YEt();function jgc(e){global.Buffer&&global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new Ugc;try{return t.parse(e),t.finish()}catch(r){throw Kgc(r,e)}}});var cDi=H((iku,aDi)=>{"use strict";aDi.exports=qgc;var zgc=HEt(),oDi=YEt();function qgc(e,t){t||(t={});let r=0,n=t.blocksize||40960,a=new zgc;return new Promise((l,A)=>{setImmediate(o,r,n,l,A)});function o(l,A,f,I){if(l>=e.length)try{return f(a.finish())}catch(C){return I(oDi(C,e))}try{a.parse(e.slice(l,l+A)),setImmediate(o,l+A,A,f,I)}catch(C){I(oDi(C,e))}}}});var gDi=H((sku,uDi)=>{"use strict";uDi.exports=eAc;var $gc=wt("stream"),lDi=HEt();function eAc(e){return e?tAc(e):rAc(e)}function tAc(e){let t=new lDi;return e.setEncoding("utf8"),new Promise((r,n)=>{let a,o=!1,l=!1;function A(){if(o=!0,!a)try{r(t.finish())}catch(C){n(C)}}function f(C){l=!0,n(C)}e.once("end",A),e.once("error",f),I();function I(){a=!0;let C;for(;(C=e.read())!==null;)try{t.parse(C)}catch(b){return f(b)}if(a=!1,o)return A();l||e.once("readable",I)}})}function rAc(){let e=new lDi;return new $gc.Transform({objectMode:!0,transform(t,r,n){try{e.parse(t.toString(r))}catch(a){this.emit("error",a)}n()},flush(t){try{this.push(e.finish())}catch(r){this.emit("error",r)}t()}})}});var ADi=H((oku,nUe)=>{"use strict";nUe.exports=sDi();nUe.exports.async=cDi();nUe.exports.stream=gDi();nUe.exports.prettyError=YEt()});var _Di=H((aku,Pkr)=>{"use strict";Pkr.exports=nAc;Pkr.exports.value=Vkr;function nAc(e){if(e===null)throw uCe("null");if(e===void 0)throw uCe("undefined");if(typeof e!="object")throw uCe(typeof e);if(typeof e.toJSON=="function"&&(e=e.toJSON()),e==null)return null;let t=vV(e);if(t!=="table")throw uCe(t);return Lkr("","",e)}function uCe(e){return new Error("Can only stringify objects, not "+e)}function iAc(){return new Error("Array values can't have mixed types")}function dDi(e){return Object.keys(e).filter(t=>pDi(e[t]))}function sAc(e){return Object.keys(e).filter(t=>!pDi(e[t]))}function QEt(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))e[r]&&typeof e[r].toJSON=="function"&&!("toISOString"in e[r])?t[r]=e[r].toJSON():t[r]=e[r];return t}function Lkr(e,t,r){r=QEt(r);var n,a;n=dDi(r),a=sAc(r);var o=[],l=t||"";n.forEach(f=>{var I=vV(r[f]);I!=="undefined"&&I!=="null"&&o.push(l+XEt(f)+" = "+hDi(r[f],!0))}),o.length>0&&o.push("");var A=e&&n.length>0?t+" ":"";return a.forEach(f=>{o.push(IAc(e,A,f,r[f]))}),o.join(` +`,e}});var sDi=H((iku,iDi)=>{"use strict";iDi.exports=jgc;var Ugc=HEt(),Kgc=YEt();function jgc(e){global.Buffer&&global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new Ugc;try{return t.parse(e),t.finish()}catch(r){throw Kgc(r,e)}}});var cDi=H((sku,aDi)=>{"use strict";aDi.exports=qgc;var zgc=HEt(),oDi=YEt();function qgc(e,t){t||(t={});let r=0,n=t.blocksize||40960,a=new zgc;return new Promise((l,A)=>{setImmediate(o,r,n,l,A)});function o(l,A,f,I){if(l>=e.length)try{return f(a.finish())}catch(C){return I(oDi(C,e))}try{a.parse(e.slice(l,l+A)),setImmediate(o,l+A,A,f,I)}catch(C){I(oDi(C,e))}}}});var gDi=H((oku,uDi)=>{"use strict";uDi.exports=eAc;var $gc=wt("stream"),lDi=HEt();function eAc(e){return e?tAc(e):rAc(e)}function tAc(e){let t=new lDi;return e.setEncoding("utf8"),new Promise((r,n)=>{let a,o=!1,l=!1;function A(){if(o=!0,!a)try{r(t.finish())}catch(C){n(C)}}function f(C){l=!0,n(C)}e.once("end",A),e.once("error",f),I();function I(){a=!0;let C;for(;(C=e.read())!==null;)try{t.parse(C)}catch(b){return f(b)}if(a=!1,o)return A();l||e.once("readable",I)}})}function rAc(){let e=new lDi;return new $gc.Transform({objectMode:!0,transform(t,r,n){try{e.parse(t.toString(r))}catch(a){this.emit("error",a)}n()},flush(t){try{this.push(e.finish())}catch(r){this.emit("error",r)}t()}})}});var ADi=H((aku,nUe)=>{"use strict";nUe.exports=sDi();nUe.exports.async=cDi();nUe.exports.stream=gDi();nUe.exports.prettyError=YEt()});var _Di=H((cku,Pkr)=>{"use strict";Pkr.exports=nAc;Pkr.exports.value=Vkr;function nAc(e){if(e===null)throw uCe("null");if(e===void 0)throw uCe("undefined");if(typeof e!="object")throw uCe(typeof e);if(typeof e.toJSON=="function"&&(e=e.toJSON()),e==null)return null;let t=vV(e);if(t!=="table")throw uCe(t);return Lkr("","",e)}function uCe(e){return new Error("Can only stringify objects, not "+e)}function iAc(){return new Error("Array values can't have mixed types")}function dDi(e){return Object.keys(e).filter(t=>pDi(e[t]))}function sAc(e){return Object.keys(e).filter(t=>!pDi(e[t]))}function QEt(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))e[r]&&typeof e[r].toJSON=="function"&&!("toISOString"in e[r])?t[r]=e[r].toJSON():t[r]=e[r];return t}function Lkr(e,t,r){r=QEt(r);var n,a;n=dDi(r),a=sAc(r);var o=[],l=t||"";n.forEach(f=>{var I=vV(r[f]);I!=="undefined"&&I!=="null"&&o.push(l+XEt(f)+" = "+hDi(r[f],!0))}),o.length>0&&o.push("");var A=e&&n.length>0?t+" ":"";return a.forEach(f=>{o.push(IAc(e,A,f,r[f]))}),o.join(` `)}function pDi(e){switch(vV(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return e.length===0||vV(e[0])!=="table";case"table":return Object.keys(e).length===0;default:return!1}}function vV(e){return e===void 0?"undefined":e===null?"null":typeof e=="bigint"||Number.isInteger(e)&&!Object.is(e,-0)?"integer":typeof e=="number"?"float":typeof e=="boolean"?"boolean":typeof e=="string"?"string":"toISOString"in e?isNaN(e)?"undefined":"datetime":Array.isArray(e)?"array":"table"}function XEt(e){var t=String(e);return/^[-A-Za-z0-9_]+$/.test(t)?t:fDi(t)}function fDi(e){return'"'+IDi(e).replace(/"/g,'\\"')+'"'}function oAc(e){return"'"+e+"'"}function aAc(e,t){for(;t.length"\\u"+aAc(4,t.codePointAt(0).toString(16)))}function cAc(e){let t=e.split(/\n/).map(r=>IDi(r).replace(/"(?="")/g,'\\"')).join(` `);return t.slice(-1)==='"'&&(t+=`\\ `),`""" @@ -638,7 +638,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus `:r+=" "+n.join(", ")+(n.length>0?" ":""),r+"]"}function fAc(e){e=QEt(e);var t=[];return Object.keys(e).forEach(r=>{t.push(XEt(r)+" = "+hDi(e[r],!1))}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}"}function IAc(e,t,r,n){var a=vV(n);if(a==="array")return hAc(e,t,r,n);if(a==="table")return mAc(e,t,r,n);throw uCe(a)}function hAc(e,t,r,n){n=QEt(n),CDi(n);var a=vV(n[0]);if(a!=="table")throw uCe(a);var o=e+XEt(r),l="";return n.forEach(A=>{l.length>0&&(l+=` `),l+=t+"[["+o+`]] `,l+=Lkr(o+".",t,A)}),l}function mAc(e,t,r,n){var a=e+XEt(r),o="";return dDi(n).length>0&&(o+=t+"["+a+`] -`),o+Lkr(a+".",t,n)}});var yDi=H(Wkr=>{"use strict";Wkr.parse=ADi();Wkr.stringify=_Di()});var KDi=H((Vku,UEt)=>{var ODi={};(e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(s,c)=>{for(var g in c)t(s,g,{get:c[g],enumerable:!0})},l=(s,c,g,d)=>{if(c&&typeof c=="object"||typeof c=="function")for(let h of n(c))!a.call(s,h)&&h!==g&&t(s,h,{get:()=>c[h],enumerable:!(d=r(c,h))||d.enumerable});return s},A=s=>s,f={};o(f,{ANONYMOUS:()=>rnt,AccessFlags:()=>Ty,AssertionLevel:()=>El,AssignmentDeclarationKind:()=>Ry,AssignmentKind:()=>mZe,Associativity:()=>vZe,BreakpointResolver:()=>eit,BuilderFileEmit:()=>N3t,BuilderProgramKind:()=>V3t,BuilderState:()=>nR,CallHierarchy:()=>Mz,CharacterCodes:()=>J2,CheckFlags:()=>sB,CheckMode:()=>vet,ClassificationType:()=>drt,ClassificationTypeNames:()=>W5t,CommentDirectiveType:()=>JS,Comparison:()=>b,CompletionInfoFlags:()=>x5t,CompletionTriggerKind:()=>grt,Completions:()=>Jz,ContainerFlags:()=>uOt,ContextFlags:()=>Ts,Debug:()=>pe,DiagnosticCategory:()=>KS,Diagnostics:()=>Z,DocumentHighlights:()=>hPe,ElementFlags:()=>tf,EmitFlags:()=>cB,EmitHint:()=>ty,EmitOnly:()=>Q2,EndOfLineState:()=>Z5t,ExitStatus:()=>ut,ExportKind:()=>NMt,Extension:()=>ey,ExternalEmitHelpers:()=>JR,FileIncludeKind:()=>$0,FilePreprocessingDiagnosticsKind:()=>fw,FileSystemEntryKind:()=>r1,FileWatcherEventKind:()=>yb,FindAllReferences:()=>Kp,FlattenLevel:()=>kOt,FlowFlags:()=>Yp,ForegroundColorEscapeSequences:()=>_3t,FunctionFlags:()=>EZe,GeneratedIdentifierFlags:()=>od,GetLiteralTextFlags:()=>A7,GoToDefinition:()=>nse,HighlightSpanKind:()=>D5t,IdentifierNameMap:()=>kie,ImportKind:()=>RMt,ImportsNotUsedAsValues:()=>zS,IndentStyle:()=>k5t,IndexFlags:()=>US,IndexKind:()=>Qm,InferenceFlags:()=>R_,InferencePriority:()=>mb,InlayHintKind:()=>N5t,InlayHints:()=>Qit,InternalEmitFlags:()=>RD,InternalNodeBuilderFlags:()=>vg,InternalSymbolName:()=>RT,IntersectionFlags:()=>Gn,InvalidatedProjectKind:()=>a5t,JSDocParsingMode:()=>t1,JsDoc:()=>n5,JsTyping:()=>YP,JsxEmit:()=>XR,JsxFlags:()=>Ym,JsxReferenceKind:()=>$I,LanguageFeatureMinimumTarget:()=>Rd,LanguageServiceMode:()=>T5t,LanguageVariant:()=>pn,LexicalEnvironmentFlags:()=>$1,ListFormat:()=>$E,LogLevel:()=>fb,MapCode:()=>Xit,MemberOverrideStatus:()=>ar,ModifierFlags:()=>JE,ModuleDetectionKind:()=>zE,ModuleInstanceState:()=>cOt,ModuleKind:()=>jS,ModuleResolutionKind:()=>z_,ModuleSpecifierEnding:()=>pLe,NavigateTo:()=>eHt,NavigationBar:()=>rHt,NewLineKind:()=>qE,NodeBuilderFlags:()=>Qo,NodeCheckFlags:()=>wy,NodeFactoryFlags:()=>Jbe,NodeFlags:()=>AC,NodeResolutionFeatures:()=>jWt,ObjectFlags:()=>j_,OperationCanceledException:()=>By,OperatorPrecedence:()=>BZe,OrganizeImports:()=>i5,OrganizeImportsMode:()=>urt,OuterExpressionKinds:()=>cF,OutliningElementsCollector:()=>Uit,OutliningSpanKind:()=>G5t,OutputFileType:()=>F5t,PackageJsonAutoImportPreference:()=>w5t,PackageJsonDependencyGroup:()=>B5t,PatternMatchKind:()=>ynt,PollingInterval:()=>r_,PollingWatchKind:()=>aB,PragmaKindFlags:()=>N_,PredicateSemantics:()=>K_,PreparePasteEdits:()=>lst,PrivateIdentifierKind:()=>YLe,ProcessLevel:()=>ZOt,ProgramUpdateLevel:()=>f3t,QuotePreference:()=>cMt,RegularExpressionFlags:()=>UE,RelationComparisonResult:()=>vy,Rename:()=>eWe,ScriptElementKind:()=>V5t,ScriptElementKindModifier:()=>P5t,ScriptKind:()=>X2,ScriptSnapshot:()=>RVe,ScriptTarget:()=>kT,SemanticClassificationFormat:()=>R5t,SemanticMeaning:()=>O5t,SemicolonPreference:()=>Art,SignatureCheckMode:()=>Bet,SignatureFlags:()=>$A,SignatureHelp:()=>X1e,SignatureInfo:()=>R3t,SignatureKind:()=>BA,SmartSelectionRange:()=>zit,SnippetKind:()=>Iw,StatisticType:()=>I5t,StructureIsReused:()=>xc,SymbolAccessibility:()=>uI,SymbolDisplay:()=>i9,SymbolDisplayPartKind:()=>DVe,SymbolFlags:()=>TT,SymbolFormatFlags:()=>Rf,SyntaxKind:()=>Ld,Ternary:()=>Cb,ThrottledCancellationToken:()=>uYt,TokenClass:()=>L5t,TokenFlags:()=>KE,TransformFlags:()=>up,TypeFacts:()=>Eet,TypeFlags:()=>jE,TypeFormatFlags:()=>Ng,TypeMapKind:()=>zf,TypePredicateKind:()=>Th,TypeReferenceSerializationKind:()=>oE,UnionReduction:()=>Jr,UpToDateStatusType:()=>e5t,VarianceFlags:()=>NT,Version:()=>O,VersionRange:()=>gt,WatchDirectoryFlags:()=>q1,WatchDirectoryKind:()=>DT,WatchFileKind:()=>oB,WatchLogLevel:()=>h3t,WatchType:()=>jm,accessPrivateIdentifier:()=>DOt,addEmitFlags:()=>Gw,addEmitHelper:()=>$Y,addEmitHelpers:()=>hN,addInternalEmitFlags:()=>N3,addNodeFactoryPatcher:()=>$qe,addObjectAllocatorPatcher:()=>Lqe,addRange:()=>Or,addRelatedInfo:()=>lg,addSyntheticLeadingComment:()=>JT,addSyntheticTrailingComment:()=>Iz,addToSeen:()=>Zy,advancedAsyncSuperHelper:()=>DF,affectsDeclarationPathOptionDeclarations:()=>yWt,affectsEmitOptionDeclarations:()=>_Wt,allKeysStartWithDot:()=>G9e,altDirectorySeparator:()=>Eb,and:()=>dh,append:()=>Ft,appendIfUnique:()=>ps,arrayFrom:()=>Do,arrayIsEqualTo:()=>Sc,arrayIsHomogeneous:()=>bLe,arrayOf:()=>Ri,arrayReverseIterator:()=>Qa,arrayToMap:()=>Ru,arrayToMultiMap:()=>Ju,arrayToNumericMap:()=>Vs,assertType:()=>nE,assign:()=>Wt,asyncSuperHelper:()=>lie,attachFileToDiagnostics:()=>XL,base64decode:()=>QZe,base64encode:()=>ibe,binarySearch:()=>Wc,binarySearchKey:()=>Sg,bindSourceFile:()=>gOt,breakIntoCharacterSpans:()=>XMt,breakIntoWordSpans:()=>JMt,buildLinkParts:()=>IMt,buildOpts:()=>CEe,buildOverload:()=>vpn,bundlerModuleNameResolver:()=>zWt,canBeConvertedToAsync:()=>wnt,canHaveDecorators:()=>oQ,canHaveExportModifier:()=>Kne,canHaveFlowNode:()=>UJ,canHaveIllegalDecorators:()=>k$e,canHaveIllegalModifiers:()=>tWt,canHaveIllegalType:()=>c$r,canHaveIllegalTypeParameters:()=>eWt,canHaveJSDoc:()=>Ane,canHaveLocals:()=>WI,canHaveModifiers:()=>LB,canHaveModuleSpecifier:()=>pZe,canHaveSymbol:()=>mE,canIncludeBindAndCheckDiagnostics:()=>gU,canJsonReportNoInputFiles:()=>vEe,canProduceDiagnostics:()=>ZEe,canUsePropertyAccess:()=>Fbe,canWatchAffectingLocation:()=>X3t,canWatchAtTypes:()=>Q3t,canWatchDirectoryOrFile:()=>wtt,canWatchDirectoryOrFilePath:()=>zEe,cartesianProduct:()=>XE,cast:()=>Ma,chainBundle:()=>rR,chainDiagnosticMessages:()=>wu,changeAnyExtension:()=>K2,changeCompilerHostLikeToUseCache:()=>Gde,changeExtension:()=>fN,changeFullExtension:()=>i_,changesAffectModuleResolution:()=>NJ,changesAffectingProgramStructure:()=>fge,characterCodeToRegularExpressionFlag:()=>Wg,childIsDecorated:()=>HJ,classElementOrClassElementParameterIsDecorated:()=>hye,classHasClassThisAssignment:()=>Oet,classHasDeclaredOrExplicitlyAssignedName:()=>Met,classHasExplicitlyAssignedName:()=>J9e,classOrConstructorParameterIsDecorated:()=>Rx,classicNameResolver:()=>oOt,classifier:()=>pYt,cleanExtendedConfigCache:()=>$9e,clear:()=>St,clearMap:()=>Fy,clearSharedExtendedConfigFileWatcher:()=>rtt,climbPastPropertyAccess:()=>GVe,clone:()=>Eg,cloneCompilerOptions:()=>krt,closeFileWatcher:()=>dv,closeFileWatcherOf:()=>Cv,codefix:()=>x0,collapseTextChangeRangesAcrossMultipleVersions:()=>z,collectExternalModuleInfo:()=>Let,combine:()=>zr,combinePaths:()=>Ro,commandLineOptionOfCustomType:()=>SWt,commentPragmas:()=>e1,commonOptionsWithBuild:()=>p9e,compact:()=>Hr,compareBooleans:()=>Ml,compareDataObjects:()=>_Ae,compareDiagnostics:()=>X7,compareEmitHelpers:()=>XLe,compareNumberOfDirectorySeparators:()=>Qne,comparePaths:()=>qf,comparePathsCaseInsensitive:()=>pB,comparePathsCaseSensitive:()=>Cx,comparePatternKeys:()=>Iet,compareProperties:()=>Ea,compareStringsCaseInsensitive:()=>Fs,compareStringsCaseInsensitiveEslintCompatible:()=>Wa,compareStringsCaseSensitive:()=>Ca,compareStringsCaseSensitiveUI:()=>so,compareTextSpans:()=>yn,compareValues:()=>Zt,compilerOptionsAffectDeclarationPath:()=>aLe,compilerOptionsAffectEmit:()=>oLe,compilerOptionsAffectSemanticDiagnostics:()=>mbe,compilerOptionsDidYouMeanDiagnostics:()=>m9e,compilerOptionsIndicateEsModules:()=>Vrt,computeCommonSourceDirectoryOfFilenames:()=>m3t,computeLineAndCharacterOfPosition:()=>Ci,computeLineOfPosition:()=>Po,computeLineStarts:()=>cA,computePositionOfLineAndCharacter:()=>xn,computeSignatureWithDiagnostics:()=>ytt,computeSuggestionDiagnostics:()=>Snt,computedOptions:()=>J7,concatenate:()=>Nn,concatenateDiagnosticMessageChains:()=>Fne,consumesNodeCoreModules:()=>cPe,contains:()=>k,containsIgnoredPath:()=>sz,containsObjectRestOrSpread:()=>fEe,containsParseError:()=>pP,containsPath:()=>Jh,convertCompilerOptionsForTelemetry:()=>PWt,convertCompilerOptionsFromJson:()=>hen,convertJsonOption:()=>vU,convertToBase64:()=>nbe,convertToJson:()=>bEe,convertToObject:()=>xWt,convertToOptionsWithAbsolutePaths:()=>b9e,convertToRelativePath:()=>r2,convertToTSConfig:()=>q$e,convertTypeAcquisitionFromJson:()=>men,copyComments:()=>xU,copyEntries:()=>a7,copyLeadingComments:()=>Uie,copyProperties:()=>GA,copyTrailingAsLeadingComments:()=>m1e,copyTrailingComments:()=>jde,couldStartTrivia:()=>tv,countWhere:()=>ct,createAbstractBuilder:()=>Brn,createAccessorPropertyBackingField:()=>F$e,createAccessorPropertyGetRedirector:()=>lWt,createAccessorPropertySetRedirector:()=>uWt,createBaseNodeFactory:()=>GLe,createBinaryExpressionTrampoline:()=>l9e,createBuilderProgram:()=>btt,createBuilderProgramUsingIncrementalBuildInfo:()=>M3t,createBuilderStatusReporter:()=>yVe,createCacheableExportInfoMap:()=>dnt,createCachedDirectoryStructureHost:()=>z9e,createClassifier:()=>rin,createCommentDirectivesMap:()=>bge,createCompilerDiagnostic:()=>Nf,createCompilerDiagnosticForInvalidCustomType:()=>vWt,createCompilerDiagnosticFromMessageChain:()=>SAe,createCompilerHost:()=>C3t,createCompilerHostFromProgramHost:()=>Mtt,createCompilerHostWorker:()=>eVe,createDetachedDiagnostic:()=>QY,createDiagnosticCollection:()=>EF,createDiagnosticForFileFromMessageChain:()=>Ut,createDiagnosticForNode:()=>mo,createDiagnosticForNodeArray:()=>A3,createDiagnosticForNodeArrayFromMessageChain:()=>ie,createDiagnosticForNodeFromMessageChain:()=>Bw,createDiagnosticForNodeInSourceFile:()=>_E,createDiagnosticForRange:()=>kn,createDiagnosticMessageChainFromDiagnostic:()=>Qr,createDiagnosticReporter:()=>Gz,createDocumentPositionMapper:()=>BOt,createDocumentRegistry:()=>FMt,createDocumentRegistryInternal:()=>mnt,createEmitAndSemanticDiagnosticsBuilderProgram:()=>Btt,createEmitHelperFactory:()=>QLe,createEmptyExports:()=>aEe,createEvaluator:()=>DLe,createExpressionForJsxElement:()=>UPt,createExpressionForJsxFragment:()=>KPt,createExpressionForObjectLiteralElementLike:()=>jPt,createExpressionForPropertyName:()=>B$e,createExpressionFromEntityName:()=>cEe,createExternalHelpersImportDeclarationIfNeeded:()=>R$e,createFileDiagnostic:()=>qh,createFileDiagnosticFromMessageChain:()=>ze,createFlowNode:()=>rk,createForOfBindingStatement:()=>v$e,createFutureSourceFile:()=>pPe,createGetCanonicalFileName:()=>_d,createGetIsolatedDeclarationErrors:()=>s3t,createGetSourceFile:()=>att,createGetSymbolAccessibilityDiagnosticForNode:()=>J3,createGetSymbolAccessibilityDiagnosticForNodeName:()=>i3t,createGetSymbolWalker:()=>AOt,createIncrementalCompilerHost:()=>_Ve,createIncrementalProgram:()=>$3t,createJsxFactoryExpression:()=>S$e,createLanguageService:()=>gYt,createLanguageServiceSourceFile:()=>xPe,createMemberAccessForPropertyName:()=>EU,createModeAwareCache:()=>wie,createModeAwareCacheKey:()=>Cde,createModeMismatchDetails:()=>l7,createModuleNotFoundChain:()=>kJ,createModuleResolutionCache:()=>Tie,createModuleResolutionLoader:()=>dtt,createModuleResolutionLoaderUsingGlobalCache:()=>j3t,createModuleSpecifierResolutionHost:()=>z3,createMultiMap:()=>dl,createNameResolver:()=>JAe,createNodeConverters:()=>FLe,createNodeFactory:()=>nie,createOptionNameMap:()=>I9e,createOverload:()=>gst,createPackageJsonImportFilter:()=>jie,createPackageJsonInfo:()=>snt,createParenthesizerRules:()=>pv,createPatternMatcher:()=>WMt,createPrinter:()=>MP,createPrinterWithDefaults:()=>d3t,createPrinterWithRemoveComments:()=>gQ,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>p3t,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>ttt,createProgram:()=>UEe,createProgramDiagnostics:()=>w3t,createProgramHost:()=>Htt,createPropertyNameNodeForIdentifierOrLiteral:()=>Une,createQueue:()=>oA,createRange:()=>Gy,createRedirectedBuilderProgram:()=>vtt,createResolutionCache:()=>Rtt,createRuntimeTypeSerializer:()=>OOt,createScanner:()=>wb,createSemanticDiagnosticsBuilderProgram:()=>vrn,createSet:()=>oo,createSolutionBuilder:()=>i5t,createSolutionBuilderHost:()=>r5t,createSolutionBuilderWithWatch:()=>s5t,createSolutionBuilderWithWatchHost:()=>n5t,createSortedArray:()=>Ya,createSourceFile:()=>vz,createSourceMapGenerator:()=>yOt,createSourceMapSource:()=>r$e,createSuperAccessVariableStatement:()=>K9e,createSymbolTable:()=>qu,createSymlinkCache:()=>_be,createSyntacticTypeNodeBuilder:()=>E5t,createSystemWatchFunctions:()=>ia,createTextChange:()=>g1e,createTextChangeFromStartLength:()=>JVe,createTextChangeRange:()=>$2,createTextRangeFromNode:()=>Frt,createTextRangeFromSpan:()=>XVe,createTextSpan:()=>zd,createTextSpanFromBounds:()=>wA,createTextSpanFromNode:()=>Oy,createTextSpanFromRange:()=>t9,createTextSpanFromStringLiteralLikeContent:()=>Grt,createTextWriter:()=>Bne,createTokenRange:()=>QL,createTypeChecker:()=>COt,createTypeReferenceDirectiveResolutionCache:()=>k9e,createTypeReferenceResolutionLoader:()=>nVe,createWatchCompilerHost:()=>Zrn,createWatchCompilerHostOfConfigFile:()=>Ytt,createWatchCompilerHostOfFilesAndCompilerOptions:()=>Qtt,createWatchFactory:()=>Ott,createWatchHost:()=>Wtt,createWatchProgram:()=>Xtt,createWatchStatusReporter:()=>Ntt,createWriteFileMeasuringIO:()=>ctt,declarationNameToString:()=>Wd,decodeMappings:()=>Get,decodedTextSpanIntersectsWith:()=>IE,deduplicate:()=>io,defaultHoverMaximumTruncationLength:()=>Age,defaultInitCompilerOptions:()=>L$r,defaultMaximumTruncationLength:()=>EY,diagnosticCategoryName:()=>_b,diagnosticToString:()=>IQ,diagnosticsEqualityComparer:()=>vAe,directoryProbablyExists:()=>f1,directorySeparator:()=>ag,displayPart:()=>SE,displayPartsToString:()=>D1e,disposeEmitNodes:()=>Ku,documentSpansEqual:()=>Qrt,dumpTracingLegend:()=>jf,elementAt:()=>Cg,elideNodes:()=>cWt,emitDetachedComments:()=>GZe,emitFiles:()=>$et,emitFilesAndReportErrors:()=>IVe,emitFilesAndReportErrorsAndGetExitStatus:()=>Ptt,emitModuleKindIsNonNodeESM:()=>Wne,emitNewLineBeforeLeadingCommentOfPosition:()=>Uye,emitResolverSkipsTypeChecking:()=>qet,emitSkippedWithNoDiagnostics:()=>Itt,emptyArray:()=>E,emptyFileSystemEntries:()=>wbe,emptyMap:()=>N,emptyOptions:()=>VB,endsWith:()=>di,ensurePathIsNonModuleName:()=>Am,ensureScriptKind:()=>xAe,ensureTrailingDirectorySeparator:()=>hp,entityNameToString:()=>oy,enumerateInsertsAndDeletes:()=>q0,equalOwnProperties:()=>Hu,equateStringsCaseInsensitive:()=>Mp,equateStringsCaseSensitive:()=>MA,equateValues:()=>yg,escapeJsxAttributeString:()=>Wye,escapeLeadingUnderscores:()=>Ap,escapeNonAsciiString:()=>Ene,escapeSnippetText:()=>xP,escapeString:()=>YT,escapeTemplateSubstitution:()=>Vye,evaluatorResult:()=>$h,every:()=>ue,exclusivelyPrefixedNodeCoreModules:()=>jAe,executeCommandLine:()=>fnn,expandPreOrPostfixIncrementOrDecrementExpression:()=>i9e,explainFiles:()=>Gtt,explainIfFileIsRedirectAndImpliedFormat:()=>Ftt,exportAssignmentIsAlias:()=>Ine,expressionResultIsUnused:()=>SLe,extend:()=>OA,extensionFromPath:()=>tz,extensionIsTS:()=>PAe,extensionsNotSupportingExtensionlessResolution:()=>VAe,externalHelpersModuleNameText:()=>PD,factory:()=>me,fileExtensionIs:()=>aA,fileExtensionIsOneOf:()=>fu,fileIncludeReasonToDiagnostics:()=>Vtt,fileShouldUseJavaScriptRequire:()=>Ant,filter:()=>Me,filterMutate:()=>je,filterSemanticDiagnostics:()=>aVe,find:()=>de,findAncestor:()=>ji,findBestPatternMatch:()=>YA,findChildOfKind:()=>qd,findComputedPropertyNameCacheAssignment:()=>u9e,findConfigFile:()=>stt,findConstructorDeclaration:()=>zY,findContainingList:()=>PVe,findDiagnosticForNode:()=>BMt,findFirstNonJsxWhitespaceToken:()=>K5t,findIndex:()=>Se,findLast:()=>be,findLastIndex:()=>De,findListItemInfo:()=>U5t,findModifier:()=>Qie,findNextToken:()=>fQ,findPackageJson:()=>vMt,findPackageJsons:()=>int,findPrecedingMatchingToken:()=>YVe,findPrecedingToken:()=>Gm,findSuperStatementIndexPath:()=>H9e,findTokenOnLeftOfPosition:()=>Hde,findUseStrictPrologue:()=>T$e,first:()=>ma,firstDefined:()=>X,firstDefinedIterator:()=>ae,firstIterator:()=>vu,firstOrOnly:()=>cnt,firstOrUndefined:()=>Nc,firstOrUndefinedIterator:()=>iA,fixupCompilerOptions:()=>Tnt,flatMap:()=>er,flatMapIterator:()=>xt,flatMapToMutable:()=>vt,flatten:()=>Nr,flattenCommaList:()=>gWt,flattenDestructuringAssignment:()=>TU,flattenDestructuringBinding:()=>uQ,flattenDiagnosticMessageText:()=>wN,forEach:()=>F,forEachAncestor:()=>Ew,forEachAncestorDirectory:()=>pE,forEachAncestorDirectoryStoppingAtGlobalCache:()=>vN,forEachChild:()=>Lu,forEachChildRecursively:()=>Sz,forEachDynamicImportOrRequireCall:()=>$ne,forEachEmittedFile:()=>Uet,forEachEnclosingBlockScopeContainer:()=>Dge,forEachEntry:()=>Dh,forEachExternalModuleToImportFrom:()=>fnt,forEachImportClauseDeclaration:()=>fZe,forEachKey:()=>SB,forEachLeadingCommentRange:()=>GD,forEachNameInAccessChainWalkingLeft:()=>zZe,forEachNameOfDefaultExport:()=>IPe,forEachOptionsSyntaxByName:()=>zAe,forEachProjectReference:()=>gz,forEachPropertyAssignment:()=>WJ,forEachResolvedProjectReference:()=>tie,forEachReturnStatement:()=>yF,forEachRight:()=>Q,forEachTrailingCommentRange:()=>dF,forEachTsConfigPropArray:()=>zre,forEachUnique:()=>Jrt,forEachYieldExpression:()=>eZe,formatColorAndReset:()=>AQ,formatDiagnostic:()=>ltt,formatDiagnostics:()=>$tn,formatDiagnosticsWithColorAndContext:()=>E3t,formatGeneratedName:()=>M3,formatGeneratedNamePart:()=>Eie,formatLocation:()=>utt,formatMessage:()=>XY,formatStringFromArgs:()=>dN,formatting:()=>Im,generateDjb2Hash:()=>ry,generateTSConfig:()=>GWt,getAdjustedReferenceLocation:()=>Brt,getAdjustedRenameLocation:()=>OVe,getAliasDeclarationFromName:()=>Rye,getAllAccessorDeclarations:()=>BP,getAllDecoratorsOfClass:()=>Pet,getAllDecoratorsOfClassElement:()=>Q9e,getAllJSDocTags:()=>dJ,getAllJSDocTagsOfKind:()=>rye,getAllKeys:()=>mI,getAllProjectOutputs:()=>j9e,getAllSuperTypeNodes:()=>R7,getAllowImportingTsExtensions:()=>tLe,getAllowJSCompilerOption:()=>TF,getAllowSyntheticDefaultImports:()=>JY,getAncestor:()=>ML,getAnyExtensionFromPath:()=>gE,getAreDeclarationMapsEnabled:()=>BAe,getAssignedExpandoInitializer:()=>FY,getAssignedName:()=>CB,getAssignmentDeclarationKind:()=>nI,getAssignmentDeclarationPropertyAccessKind:()=>XJ,getAssignmentTargetKind:()=>QD,getAutomaticTypeDirectiveNames:()=>N9e,getBaseFileName:()=>gp,getBinaryOperatorPrecedence:()=>bne,getBuildInfo:()=>ett,getBuildInfoFileVersionMap:()=>Stt,getBuildInfoText:()=>g3t,getBuildOrderFromAnyBuildOrder:()=>$Ee,getBuilderCreationParameters:()=>gVe,getBuilderFileEmit:()=>HP,getCanonicalDiagnostic:()=>Fi,getCheckFlags:()=>iI,getClassExtendsHeritageElement:()=>OL,getClassLikeDeclarationOfSymbol:()=>AN,getCombinedLocalAndExportSymbolFlags:()=>sU,getCombinedModifierFlags:()=>Hc,getCombinedNodeFlags:()=>dm,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>ad,getCommentRange:()=>DB,getCommonSourceDirectory:()=>xde,getCommonSourceDirectoryOfConfig:()=>RU,getCompilerOptionValue:()=>K7,getConditions:()=>PP,getConfigFileParsingDiagnostics:()=>dQ,getConstantValue:()=>LLe,getContainerFlags:()=>met,getContainerNode:()=>kU,getContainingClass:()=>hC,getContainingClassExcludingClassDecorators:()=>Oge,getContainingClassStaticBlock:()=>sZe,getContainingFunction:()=>A1,getContainingFunctionDeclaration:()=>Wge,getContainingFunctionOrClassStaticBlock:()=>qre,getContainingNodeArray:()=>vLe,getContainingObjectLiteralElement:()=>k1e,getContextualTypeFromParent:()=>rPe,getContextualTypeFromParentOrAncestorTypeNode:()=>WVe,getDeclarationDiagnostics:()=>o3t,getDeclarationEmitExtensionForPath:()=>sAe,getDeclarationEmitOutputFilePath:()=>NZe,getDeclarationEmitOutputFilePathWorker:()=>wne,getDeclarationFileExtension:()=>A9e,getDeclarationFromName:()=>T7,getDeclarationModifierFlagsFromSymbol:()=>u2,getDeclarationOfKind:()=>Cp,getDeclarationsOfKind:()=>dge,getDeclaredExpandoInitializer:()=>E7,getDecorators:()=>Rb,getDefaultCompilerOptions:()=>kPe,getDefaultFormatCodeSettings:()=>NVe,getDefaultLibFileName:()=>Hs,getDefaultLibFilePath:()=>AYt,getDefaultLikeExportInfo:()=>fPe,getDefaultLikeExportNameFromDeclaration:()=>lnt,getDefaultResolutionModeForFileWorker:()=>oVe,getDiagnosticText:()=>Zb,getDiagnosticsWithinSpan:()=>wMt,getDirectoryPath:()=>Mo,getDirectoryToWatchFailedLookupLocation:()=>Ttt,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>U3t,getDocumentPositionMapper:()=>Ent,getDocumentSpansEqualityComparer:()=>Xrt,getESModuleInterop:()=>kw,getEditsForFileRename:()=>LMt,getEffectiveBaseTypeNode:()=>BB,getEffectiveConstraintOfTypeParameter:()=>n3,getEffectiveContainerForJSDocTemplateTag:()=>zge,getEffectiveImplementsTypeNodes:()=>jJ,getEffectiveInitializer:()=>one,getEffectiveJSDocHost:()=>WL,getEffectiveModifierFlags:()=>o_,getEffectiveModifierFlagsAlwaysIncludeJSDoc:()=>PZe,getEffectiveModifierFlagsNoCache:()=>zye,getEffectiveReturnTypeNode:()=>xb,getEffectiveSetAccessorTypeAnnotationNode:()=>Jye,getEffectiveTypeAnnotationNode:()=>kh,getEffectiveTypeParameterDeclarations:()=>ZD,getEffectiveTypeRoots:()=>mde,getElementOrPropertyAccessArgumentExpressionOrName:()=>jge,getElementOrPropertyAccessName:()=>YD,getElementsOfBindingOrAssignmentPattern:()=>bie,getEmitDeclarations:()=>Ly,getEmitFlags:()=>tA,getEmitHelpers:()=>jbe,getEmitModuleDetectionKind:()=>rLe,getEmitModuleFormatOfFileWorker:()=>Lde,getEmitModuleKind:()=>i0,getEmitModuleResolutionKind:()=>k_,getEmitScriptTarget:()=>Mg,getEmitStandardClassFields:()=>hbe,getEnclosingBlockScopeContainer:()=>tS,getEnclosingContainer:()=>f7,getEncodedSemanticClassifications:()=>Int,getEncodedSyntacticClassifications:()=>hnt,getEndLinePosition:()=>vY,getEntityNameFromTypeNode:()=>ene,getEntrypointsFromPackageJsonInfo:()=>det,getErrorCountForSummary:()=>pVe,getErrorSpanForNode:()=>qa,getErrorSummaryText:()=>ktt,getEscapedTextOfIdentifierOrLiteral:()=>qJ,getEscapedTextOfJsxAttributeName:()=>cz,getEscapedTextOfJsxNamespacedName:()=>oS,getExpandoInitializer:()=>VL,getExportAssignmentExpression:()=>hne,getExportInfoMap:()=>S1e,getExportNeedsImportStarHelper:()=>wOt,getExpressionAssociativity:()=>Zye,getExpressionPrecedence:()=>x7,getExternalHelpersModuleName:()=>uEe,getExternalModuleImportEqualsDeclarationExpression:()=>_7,getExternalModuleName:()=>LY,getExternalModuleNameFromDeclaration:()=>TZe,getExternalModuleNameFromPath:()=>Mye,getExternalModuleNameLiteral:()=>Ez,getExternalModuleRequireArgument:()=>Cye,getFallbackOptions:()=>QEe,getFileEmitOutput:()=>T3t,getFileMatcherPatterns:()=>kAe,getFileNamesFromConfigSpecs:()=>Ide,getFileWatcherEventKind:()=>qS,getFilesInErrorForSummary:()=>fVe,getFirstConstructorWithBody:()=>lN,getFirstIdentifier:()=>B0,getFirstNonSpaceCharacterPosition:()=>CMt,getFirstProjectOutput:()=>zet,getFixableErrorSpanExpression:()=>ont,getFormatCodeSettingsForWriting:()=>APe,getFullWidth:()=>DJ,getFunctionFlags:()=>SI,getHeritageClause:()=>mne,getHostSignatureFromJSDoc:()=>PL,getIdentifierAutoGenerate:()=>s$e,getIdentifierGeneratedImportReference:()=>HLe,getIdentifierTypeArguments:()=>G3,getImmediatelyInvokedFunctionExpression:()=>ZL,getImpliedNodeFormatForEmitWorker:()=>NU,getImpliedNodeFormatForFile:()=>JEe,getImpliedNodeFormatForFileWorker:()=>sVe,getImportNeedsImportDefaultHelper:()=>Zet,getImportNeedsImportStarHelper:()=>O9e,getIndentString:()=>iAe,getInferredLibraryNameResolveFrom:()=>iVe,getInitializedVariables:()=>iU,getInitializerOfBinaryExpression:()=>bye,getInitializerOfBindingOrAssignmentElement:()=>AEe,getInterfaceBaseTypeNodes:()=>N7,getInternalEmitFlags:()=>g1,getInvokedExpression:()=>Yge,getIsFileExcluded:()=>kMt,getIsolatedModules:()=>sS,getJSDocAugmentsTag:()=>K6,getJSDocClassTag:()=>bx,getJSDocCommentRanges:()=>dye,getJSDocCommentsAndTags:()=>Sye,getJSDocDeprecatedTag:()=>Kh,getJSDocDeprecatedTagNoCache:()=>i2,getJSDocEnumTag:()=>a1,getJSDocHost:()=>bP,getJSDocImplementsTags:()=>uY,getJSDocOverloadTags:()=>Bye,getJSDocOverrideTagNoCache:()=>Pd,getJSDocParameterTags:()=>vL,getJSDocParameterTagsNoCache:()=>uJ,getJSDocPrivateTag:()=>Es,getJSDocPrivateTagNoCache:()=>Aa,getJSDocProtectedTag:()=>ha,getJSDocProtectedTagNoCache:()=>Ua,getJSDocPublicTag:()=>_re,getJSDocPublicTagNoCache:()=>Ex,getJSDocReadonlyTag:()=>wc,getJSDocReadonlyTagNoCache:()=>hA,getJSDocReturnTag:()=>sv,getJSDocReturnType:()=>AJ,getJSDocRoot:()=>KJ,getJSDocSatisfiesExpressionType:()=>Lbe,getJSDocSatisfiesTag:()=>fF,getJSDocTags:()=>Sx,getJSDocTemplateTag:()=>oP,getJSDocThisTag:()=>Nb,getJSDocType:()=>eN,getJSDocTypeAliasName:()=>D$e,getJSDocTypeAssertionType:()=>_ie,getJSDocTypeParameterDeclarations:()=>uAe,getJSDocTypeParameterTags:()=>r3,getJSDocTypeParameterTagsNoCache:()=>U6,getJSDocTypeTag:()=>ov,getJSXImplicitImportBase:()=>One,getJSXRuntimeImport:()=>Mne,getJSXTransformEnabled:()=>RAe,getKeyForCompilerOptions:()=>aet,getLanguageVariant:()=>Zne,getLastChild:()=>ube,getLeadingCommentRanges:()=>fE,getLeadingCommentRangesOfNode:()=>Fge,getLeftmostAccessExpression:()=>oU,getLeftmostExpression:()=>aU,getLibFileNameFromLibReference:()=>Obe,getLibNameFromLibReference:()=>qY,getLibraryNameFromLibFileName:()=>ptt,getLineAndCharacterOfPosition:()=>Ra,getLineInfo:()=>xet,getLineOfLocalPosition:()=>Z7,getLineStartPositionForPosition:()=>PB,getLineStarts:()=>rn,getLinesBetweenPositionAndNextNonWhitespaceCharacter:()=>obe,getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter:()=>KZe,getLinesBetweenPositions:()=>ec,getLinesBetweenRangeEndAndRangeStart:()=>v3,getLinesBetweenRangeEndPositions:()=>UZe,getLiteralText:()=>Sge,getLocalNameForExternalImport:()=>yie,getLocalSymbolForExportDefault:()=>W7,getLocaleSpecificMessage:()=>Bu,getLocaleTimeString:()=>qEe,getMappedContextSpan:()=>Urt,getMappedDocumentSpan:()=>$Ve,getMappedLocation:()=>Jde,getMatchedFileSpec:()=>Ztt,getMatchedIncludeSpec:()=>Ltt,getMeaningFromDeclaration:()=>kVe,getMeaningFromLocation:()=>DU,getMembersOfDeclaration:()=>Zge,getModeForFileReference:()=>S3t,getModeForResolutionAtIndex:()=>srn,getModeForUsageLocation:()=>Att,getModifiedTime:()=>bb,getModifiers:()=>$R,getModuleInstanceState:()=>PF,getModuleNameStringLiteralAt:()=>KEe,getModuleSpecifierEndingPreference:()=>fLe,getModuleSpecifierResolverHost:()=>Prt,getNameForExportedSymbol:()=>lPe,getNameFromImportAttribute:()=>XAe,getNameFromIndexInfo:()=>kge,getNameFromPropertyName:()=>d1e,getNameOfAccessExpression:()=>gbe,getNameOfCompilerOptionValue:()=>y9e,getNameOfDeclaration:()=>Il,getNameOfExpando:()=>_ye,getNameOfJSDocTypedef:()=>pF,getNameOfScriptTarget:()=>TAe,getNameOrArgument:()=>cne,getNameTable:()=>$nt,getNamespaceDeclarationNode:()=>JJ,getNewLineCharacter:()=>uN,getNewLineKind:()=>E1e,getNewLineOrDefaultFromHost:()=>OF,getNewTargetContainer:()=>aZe,getNextJSDocCommentLocation:()=>vye,getNodeChildren:()=>b$e,getNodeForGeneratedName:()=>pEe,getNodeId:()=>rd,getNodeKind:()=>pQ,getNodeModifiers:()=>Yde,getNodeModulePathParts:()=>MAe,getNonAssignedNameOfDeclaration:()=>Cw,getNonAssignmentOperatorForCompoundAssignment:()=>Bde,getNonAugmentationDeclaration:()=>LJ,getNonDecoratorTokenPosOfNode:()=>Mre,getNonIncrementalBuildInfoRoots:()=>H3t,getNonModifierTokenPosOfNode:()=>Ege,getNormalizedAbsolutePath:()=>Xc,getNormalizedAbsolutePathWithoutRoot:()=>KR,getNormalizedPathComponents:()=>AB,getObjectFlags:()=>la,getOperatorAssociativity:()=>Lye,getOperatorPrecedence:()=>yne,getOptionFromName:()=>J$e,getOptionsForLibraryResolution:()=>cet,getOptionsNameMap:()=>vie,getOptionsSyntaxByArrayElementValue:()=>Mbe,getOptionsSyntaxByValue:()=>kLe,getOrCreateEmitNode:()=>c_,getOrUpdate:()=>cr,getOriginalNode:()=>Dd,getOriginalNodeId:()=>Wy,getOutputDeclarationFileName:()=>kde,getOutputDeclarationFileNameWorker:()=>Ket,getOutputExtension:()=>MEe,getOutputFileNames:()=>ztn,getOutputJSFileNameWorker:()=>jet,getOutputPathsFor:()=>Dde,getOwnEmitOutputFilePath:()=>RZe,getOwnKeys:()=>_g,getOwnValues:()=>Qh,getPackageJsonTypesVersionsPaths:()=>R9e,getPackageNameFromTypesPackageName:()=>bde,getPackageScopeForPath:()=>yde,getParameterSymbolFromJSDoc:()=>dne,getParentNodeInSpan:()=>f1e,getParseTreeNode:()=>$l,getParsedCommandLineOfConfigFile:()=>_Ee,getPathComponents:()=>Np,getPathFromPathComponents:()=>Dm,getPathUpdater:()=>_nt,getPathsBasePath:()=>oAe,getPatternFromSpec:()=>Ebe,getPendingEmitKindWithSeen:()=>uVe,getPositionOfLineAndCharacter:()=>th,getPossibleGenericSignatures:()=>Trt,getPossibleOriginalInputExtensionForExtension:()=>Hye,getPossibleOriginalInputPathWithoutChangingExt:()=>Yye,getPossibleTypeArgumentsInfo:()=>Rrt,getPreEmitDiagnostics:()=>qtn,getPrecedingNonSpaceCharacterPosition:()=>ePe,getPrivateIdentifier:()=>Wet,getProperties:()=>Vet,getProperty:()=>pu,getPropertyAssignmentAliasLikeExpression:()=>bZe,getPropertyNameForPropertyNameNode:()=>_3,getPropertyNameFromType:()=>A2,getPropertyNameOfBindingOrAssignmentElement:()=>N$e,getPropertySymbolFromBindingElement:()=>qVe,getPropertySymbolsFromContextualType:()=>GPe,getQuoteFromPreference:()=>Ort,getQuotePreference:()=>_1,getRangesWhere:()=>Fn,getRefactorContextSpan:()=>Vz,getReferencedFileLocation:()=>Zde,getRegexFromPattern:()=>zD,getRegularExpressionForWildcard:()=>j7,getRegularExpressionsForWildcards:()=>Hne,getRelativePathFromDirectory:()=>mp,getRelativePathFromFile:()=>i1,getRelativePathToDirectoryOrUrl:()=>Of,getRenameLocation:()=>h1e,getReplacementSpanForContextToken:()=>xrt,getResolutionDiagnostic:()=>mtt,getResolutionModeOverride:()=>Gie,getResolveJsonModule:()=>NP,getResolvePackageJsonExports:()=>U7,getResolvePackageJsonImports:()=>Vne,getResolvedExternalModuleName:()=>F7,getResolvedModuleFromResolution:()=>xL,getResolvedTypeReferenceDirectiveFromResolution:()=>c7,getRestIndicatorOfBindingOrAssignmentElement:()=>a9e,getRestParameterElementType:()=>pye,getRightMostAssignedExpression:()=>ane,getRootDeclaration:()=>Rw,getRootDirectoryOfResolutionCache:()=>K3t,getRootLength:()=>Wf,getScriptKind:()=>qrt,getScriptKindFromFileName:()=>GAe,getScriptTargetFeatures:()=>Hre,getSelectedEffectiveModifierFlags:()=>MY,getSelectedSyntacticModifierFlags:()=>LZe,getSemanticClassifications:()=>xMt,getSemanticJsxChildren:()=>$J,getSetAccessorTypeAnnotationNode:()=>kZe,getSetAccessorValueParameter:()=>L7,getSetExternalModuleIndicator:()=>Lne,getShebang:()=>mB,getSingleVariableOfVariableStatement:()=>m3,getSnapshotText:()=>Lz,getSnippetElement:()=>zbe,getSourceFileOfModule:()=>FJ,getSourceFileOfNode:()=>ms,getSourceFilePathInNewDir:()=>cAe,getSourceFileVersionAsHashFromText:()=>hVe,getSourceFilesToEmit:()=>aAe,getSourceMapRange:()=>XT,getSourceMapper:()=>KMt,getSourceTextOfNodeFromSourceFile:()=>mF,getSpanOfTokenAtPosition:()=>rs,getSpellingSuggestion:()=>Dr,getStartPositionOfLine:()=>OD,getStartPositionOfRange:()=>H7,getStartsOnNewLine:()=>D3,getStaticPropertiesAndClassStaticBlock:()=>Y9e,getStrictOptionValue:()=>a_,getStringComparer:()=>ld,getSubPatternFromSpec:()=>DAe,getSuperCallFromStatement:()=>M9e,getSuperContainer:()=>C7,getSupportedCodeFixes:()=>znt,getSupportedExtensions:()=>z7,getSupportedExtensionsWithJsonIfResolveJsonModule:()=>q7,getSwitchedType:()=>tnt,getSymbolId:()=>kg,getSymbolNameForPrivateIdentifier:()=>_ne,getSymbolTarget:()=>$rt,getSyntacticClassifications:()=>GMt,getSyntacticModifierFlags:()=>Nx,getSyntacticModifierFlagsNoCache:()=>qye,getSynthesizedDeepClone:()=>JA,getSynthesizedDeepCloneWithReplacements:()=>rie,getSynthesizedDeepClones:()=>o0,getSynthesizedDeepClonesWithReplacements:()=>qAe,getSyntheticLeadingComments:()=>k3,getSyntheticTrailingComments:()=>hU,getTargetLabel:()=>FVe,getTargetOfBindingOrAssignmentElement:()=>ZP,getTemporaryModuleResolutionState:()=>_de,getTextOfConstantValue:()=>vge,getTextOfIdentifierOrLiteral:()=>c2,getTextOfJSDocComment:()=>pJ,getTextOfJsxAttributeName:()=>xw,getTextOfJsxNamespacedName:()=>lz,getTextOfNode:()=>xp,getTextOfNodeFromSourceText:()=>TY,getTextOfPropertyName:()=>hP,getThisContainer:()=>r0,getThisParameter:()=>vP,getTokenAtPosition:()=>Jc,getTokenPosOfNode:()=>MD,getTokenSourceMapRange:()=>fz,getTouchingPropertyName:()=>Lb,getTouchingToken:()=>Hie,getTrailingCommentRanges:()=>n2,getTrailingSemicolonDeferringWriter:()=>Oye,getTransformers:()=>c3t,getTsBuildInfoEmitOutputFilePath:()=>U3,getTsConfigObjectLiteralExpression:()=>m7,getTsConfigPropArrayElementValue:()=>Pge,getTypeAnnotationNode:()=>xZe,getTypeArgumentOrTypeParameterList:()=>rMt,getTypeKeywordOfTypeOnlyImport:()=>Yrt,getTypeNode:()=>OLe,getTypeNodeIfAccessible:()=>qde,getTypeParameterFromJsDoc:()=>hZe,getTypeParameterOwner:()=>ye,getTypesPackageName:()=>F9e,getUILocale:()=>df,getUniqueName:()=>GU,getUniqueSymbolId:()=>mMt,getUseDefineForClassFields:()=>Pne,getWatchErrorSummaryDiagnosticMessage:()=>Dtt,getWatchFactory:()=>itt,group:()=>Yn,groupBy:()=>Ko,guessIndentation:()=>xre,handleNoEmitOptions:()=>htt,handleWatchOptionsConfigDirTemplateSubstitution:()=>E9e,hasAbstractModifier:()=>wP,hasAccessorModifier:()=>Nw,hasAmbientModifier:()=>jye,hasChangesInResolutions:()=>Pre,hasContextSensitiveParameters:()=>OAe,hasDecorators:()=>p1,hasDocComment:()=>eMt,hasDynamicName:()=>XD,hasEffectiveModifier:()=>Gb,hasEffectiveModifiers:()=>Kye,hasEffectiveReadonlyModifier:()=>b3,hasExtension:()=>E0,hasImplementationTSFileExtension:()=>dLe,hasIndexSignature:()=>ent,hasInferredType:()=>KAe,hasInitializer:()=>WT,hasInvalidEscape:()=>Pye,hasJSDocNodes:()=>Xm,hasJSDocParameterTags:()=>gJ,hasJSFileExtension:()=>pN,hasJsonModuleEmitEnabled:()=>wAe,hasOnlyExpressionInitializer:()=>l1,hasOverrideModifier:()=>Tne,hasPossibleExternalModuleReference:()=>Nge,hasProperty:()=>Da,hasPropertyAccessExpressionWithName:()=>s1e,hasQuestionToken:()=>VY,hasRecordedExternalHelpers:()=>$Pt,hasResolutionModeOverride:()=>RLe,hasRestParameter:()=>Gre,hasScopeMarker:()=>Db,hasStaticModifier:()=>zh,hasSyntacticModifier:()=>Ga,hasSyntacticModifiers:()=>ZZe,hasTSFileExtension:()=>w3,hasTabstop:()=>wLe,hasTrailingDirectorySeparator:()=>Jp,hasType:()=>If,hasTypeArguments:()=>Eqe,hasZeroOrOneAsteriskCharacter:()=>Cbe,hostGetCanonicalFileName:()=>JD,hostUsesCaseSensitiveFileNames:()=>y3,idText:()=>Vo,identifierIsThisKeyword:()=>Xye,identifierToKeywordKind:()=>iv,identity:()=>Fl,identitySourceMapConsumer:()=>Fet,ignoreSourceNewlines:()=>$be,ignoredPaths:()=>Qp,importFromModuleSpecifier:()=>v7,importSyntaxAffectsModuleResolution:()=>Ibe,indexOfAnyCharCode:()=>et,indexOfNode:()=>fP,indicesOf:()=>po,inferredTypesContainingFile:()=>Fde,injectClassNamedEvaluationHelperBlockIfMissing:()=>U9e,injectClassThisAssignmentIfMissing:()=>FOt,insertImports:()=>Hrt,insertSorted:()=>Gc,insertStatementAfterCustomPrologue:()=>FL,insertStatementAfterStandardPrologue:()=>yge,insertStatementsAfterCustomPrologue:()=>Wre,insertStatementsAfterStandardPrologue:()=>Sw,intersperse:()=>fe,intrinsicTagNameToString:()=>Vbe,introducesArgumentsExoticObject:()=>rZe,inverseJsxOptionMap:()=>mEe,isAbstractConstructorSymbol:()=>lbe,isAbstractModifier:()=>Xe,isAccessExpression:()=>_p,isAccessibilityModifier:()=>Drt,isAccessor:()=>yB,isAccessorModifier:()=>It,isAliasableExpression:()=>$ge,isAmbientModule:()=>s_,isAmbientPropertyDeclaration:()=>VJ,isAnyDirectorySeparator:()=>e0,isAnyImportOrBareOrAccessedRequire:()=>Rge,isAnyImportOrReExport:()=>DY,isAnyImportOrRequireStatement:()=>d7,isAnyImportSyntax:()=>IP,isAnySupportedFileExtension:()=>Uqe,isApplicableVersionedTypesKey:()=>REe,isArgumentExpressionOfElementAccess:()=>_rt,isArray:()=>Ki,isArrayBindingElement:()=>o3,isArrayBindingOrAssignmentElement:()=>EJ,isArrayBindingOrAssignmentPattern:()=>Bre,isArrayBindingPattern:()=>p2,isArrayLiteralExpression:()=>OI,isArrayLiteralOrObjectLiteralDestructuringPattern:()=>e9,isArrayTypeNode:()=>kF,isArrowFunction:()=>lA,isAsExpression:()=>Yd,isAssertClause:()=>xPt,isAssertEntry:()=>qqr,isAssertionExpression:()=>Ed,isAssertsKeyword:()=>J,isAssignmentDeclaration:()=>b7,isAssignmentExpression:()=>Jm,isAssignmentOperator:()=>UD,isAssignmentPattern:()=>CY,isAssignmentTarget:()=>bF,isAsteriskToken:()=>gie,isAsyncFunction:()=>D7,isAsyncModifier:()=>G,isAutoAccessorPropertyDeclaration:()=>t0,isAwaitExpression:()=>I1,isAwaitKeyword:()=>U,isBigIntLiteral:()=>eQ,isBinaryExpression:()=>fo,isBinaryLogicalOperator:()=>Rne,isBinaryOperatorToken:()=>aWt,isBindableObjectDefinePropertyCall:()=>f3,isBindableStaticAccessExpression:()=>yP,isBindableStaticElementAccessExpression:()=>Kge,isBindableStaticNameExpression:()=>I3,isBindingElement:()=>hg,isBindingElementOfBareOrAccessedRequire:()=>uZe,isBindingName:()=>RL,isBindingOrAssignmentElement:()=>_J,isBindingOrAssignmentPattern:()=>yJ,isBindingPattern:()=>Nu,isBlock:()=>$u,isBlockLike:()=>Pz,isBlockOrCatchScoped:()=>ZJ,isBlockScope:()=>PJ,isBlockScopedContainerTopLevel:()=>Tge,isBooleanLiteral:()=>hY,isBreakOrContinueStatement:()=>AY,isBreakStatement:()=>Kqr,isBuildCommand:()=>h5t,isBuildInfoFile:()=>l3t,isBuilderProgram:()=>xtt,isBundle:()=>LPt,isCallChain:()=>_B,isCallExpression:()=>Zl,isCallExpressionTarget:()=>prt,isCallLikeExpression:()=>hF,isCallLikeOrFunctionLikeExpression:()=>Tre,isCallOrNewExpression:()=>av,isCallOrNewExpressionTarget:()=>frt,isCallSignatureDeclaration:()=>wg,isCallToHelper:()=>qD,isCaseBlock:()=>ade,isCaseClause:()=>fie,isCaseKeyword:()=>Ks,isCaseOrDefaultClause:()=>RJ,isCatchClause:()=>iQ,isCatchClauseVariableDeclaration:()=>BLe,isCatchClauseVariableDeclarationOrBindingElement:()=>Yre,isCheckJsEnabledForFile:()=>rz,isCircularBuildOrder:()=>Fz,isClassDeclaration:()=>pm,isClassElement:()=>PI,isClassExpression:()=>vd,isClassInstanceProperty:()=>vre,isClassLike:()=>xa,isClassMemberModifier:()=>Sre,isClassNamedEvaluationHelperBlock:()=>kz,isClassOrTypeElement:()=>mY,isClassStaticBlockDeclaration:()=>fl,isClassThisAssignmentBlock:()=>Tde,isColonToken:()=>nEe,isCommaExpression:()=>lEe,isCommaListExpression:()=>sde,isCommaSequence:()=>Ade,isCommaToken:()=>rEe,isComment:()=>QVe,isCommonJsExportPropertyAssignment:()=>Lge,isCommonJsExportedExpression:()=>fye,isCompoundAssignment:()=>vde,isComputedNonLiteralName:()=>kY,isComputedPropertyName:()=>Un,isConciseBody:()=>r7,isConditionalExpression:()=>Lw,isConditionalTypeNode:()=>d2,isConstAssertion:()=>Pbe,isConstTypeReference:()=>s2,isConstructSignatureDeclaration:()=>em,isConstructorDeclaration:()=>Tc,isConstructorTypeNode:()=>$D,isContextualKeyword:()=>tAe,isContinueStatement:()=>Uqr,isCustomPrologue:()=>jre,isDebuggerStatement:()=>jqr,isDeclaration:()=>jh,isDeclarationBindingElement:()=>uP,isDeclarationFileName:()=>PC,isDeclarationName:()=>HT,isDeclarationNameOfEnumOrNamespace:()=>abe,isDeclarationReadonly:()=>hf,isDeclarationStatement:()=>uge,isDeclarationWithTypeParameterChildren:()=>Kre,isDeclarationWithTypeParameters:()=>Ure,isDecorator:()=>So,isDecoratorTarget:()=>H5t,isDefaultClause:()=>cde,isDefaultImport:()=>h3,isDefaultModifier:()=>w,isDefaultedExpandoInitializer:()=>gZe,isDeleteExpression:()=>GF,isDeleteTarget:()=>Tye,isDeprecatedDeclaration:()=>uPe,isDestructuringAssignment:()=>Dx,isDiskPathRoot:()=>cE,isDoStatement:()=>Jqr,isDocumentRegistryEntry:()=>v1e,isDotDotDotToken:()=>nde,isDottedName:()=>Dne,isDynamicName:()=>rAe,isEffectiveExternalModule:()=>g3,isEffectiveStrictModeSourceFile:()=>Jre,isElementAccessChain:()=>IF,isElementAccessExpression:()=>Yg,isEmittedFileOfProgram:()=>I3t,isEmptyArrayLiteral:()=>YZe,isEmptyBindingElement:()=>wr,isEmptyBindingPattern:()=>Ct,isEmptyObjectLiteral:()=>rbe,isEmptyStatement:()=>g$e,isEmptyStringLiteral:()=>mye,isEntityName:()=>fC,isEntityNameExpression:()=>Od,isEnumConst:()=>VA,isEnumDeclaration:()=>V3,isEnumMember:()=>LF,isEqualityOperatorKind:()=>nPe,isEqualsGreaterThanToken:()=>KLe,isExclamationToken:()=>Cz,isExcludedFile:()=>ZWt,isExclusivelyTypeOnlyImportOrExport:()=>gtt,isExpandoPropertyDeclaration:()=>jY,isExportAssignment:()=>Cf,isExportDeclaration:()=>Gh,isExportModifier:()=>y,isExportName:()=>s9e,isExportNamespaceAsDefaultDeclaration:()=>wY,isExportOrDefaultModifier:()=>dEe,isExportSpecifier:()=>R0,isExportsIdentifier:()=>p3,isExportsOrModuleExportsOrAlias:()=>cQ,isExpression:()=>un,isExpressionNode:()=>MT,isExpressionOfExternalModuleImportEqualsDeclaration:()=>X5t,isExpressionOfOptionalChainRoot:()=>gY,isExpressionStatement:()=>VC,isExpressionWithTypeArguments:()=>l_,isExpressionWithTypeArgumentsInClassExtendsClause:()=>dAe,isExternalModule:()=>xm,isExternalModuleAugmentation:()=>_F,isExternalModuleImportEqualsDeclaration:()=>LL,isExternalModuleIndicator:()=>PT,isExternalModuleNameRelative:()=>Xr,isExternalModuleReference:()=>ZF,isExternalModuleSymbol:()=>WD,isExternalOrCommonJsModule:()=>vl,isFileLevelReservedGeneratedIdentifier:()=>fY,isFileLevelUniqueName:()=>u7,isFileProbablyExternalModule:()=>IEe,isFirstDeclarationOfSymbolParameter:()=>Krt,isFixablePromiseHandler:()=>Bnt,isForInOrOfStatement:()=>DL,isForInStatement:()=>jLe,isForInitializer:()=>hE,isForOfStatement:()=>iEe,isForStatement:()=>L3,isFullSourceFile:()=>aN,isFunctionBlock:()=>mP,isFunctionBody:()=>n7,isFunctionDeclaration:()=>ih,isFunctionExpression:()=>UA,isFunctionExpressionOrArrowFunction:()=>RF,isFunctionLike:()=>bu,isFunctionLikeDeclaration:()=>kd,isFunctionLikeKind:()=>lP,isFunctionLikeOrClassStaticBlockDeclaration:()=>s3,isFunctionOrConstructorTypeNode:()=>oge,isFunctionOrModuleBlock:()=>CJ,isFunctionSymbol:()=>dZe,isFunctionTypeNode:()=>x_,isGeneratedIdentifier:()=>kp,isGeneratedPrivateIdentifier:()=>TL,isGetAccessor:()=>bB,isGetAccessorDeclaration:()=>Bg,isGetOrSetAccessorDeclaration:()=>fJ,isGlobalScopeAugmentation:()=>vB,isGlobalSourceFile:()=>fc,isGrammarError:()=>_ge,isHeritageClause:()=>h1,isHoistedFunction:()=>xge,isHoistedVariableStatement:()=>Gge,isIdentifier:()=>Ir,isIdentifierANonContextualKeyword:()=>kye,isIdentifierName:()=>yZe,isIdentifierOrThisTypeNode:()=>nWt,isIdentifierPart:()=>s1,isIdentifierStart:()=>bd,isIdentifierText:()=>Uh,isIdentifierTypePredicate:()=>nZe,isIdentifierTypeReference:()=>yLe,isIfStatement:()=>Z3,isIgnoredFileFromWildCardWatching:()=>YEe,isImplicitGlob:()=>bbe,isImportAttribute:()=>GPt,isImportAttributeName:()=>e7,isImportAttributes:()=>CU,isImportCall:()=>Up,isImportClause:()=>Vw,isImportDeclaration:()=>Mf,isImportEqualsDeclaration:()=>km,isImportKeyword:()=>an,isImportMeta:()=>uv,isImportOrExportSpecifier:()=>eS,isImportOrExportSpecifierName:()=>hMt,isImportSpecifier:()=>uy,isImportTypeAssertionContainer:()=>zqr,isImportTypeNode:()=>Um,isImportable:()=>pnt,isInComment:()=>$L,isInCompoundLikeAssignment:()=>qge,isInExpressionContext:()=>rne,isInJSDoc:()=>GY,isInJSFile:()=>wo,isInJSXText:()=>$5t,isInJsonFile:()=>Xge,isInNonReferenceComment:()=>sMt,isInReferenceComment:()=>iMt,isInRightSideOfInternalImportEqualsDeclaration:()=>xVe,isInString:()=>Zz,isInTemplateString:()=>wrt,isInTopLevelContext:()=>Mge,isInTypeQuery:()=>OY,isIncrementalBuildInfo:()=>jEe,isIncrementalBundleEmitBuildInfo:()=>L3t,isIncrementalCompilation:()=>DP,isIndexSignatureDeclaration:()=>w0,isIndexedAccessTypeNode:()=>Iv,isInferTypeNode:()=>jT,isInfinityOrNaNString:()=>oz,isInitializedProperty:()=>GEe,isInitializedVariable:()=>xne,isInsideJsxElement:()=>HVe,isInsideJsxElementOrAttribute:()=>q5t,isInsideNodeModules:()=>_1e,isInsideTemplateLiteral:()=>u1e,isInstanceOfExpression:()=>pAe,isInstantiatedModule:()=>Tet,isInterfaceDeclaration:()=>g_,isInternalDeclaration:()=>Fre,isInternalModuleImportEqualsDeclaration:()=>d3,isInternalName:()=>w$e,isIntersectionTypeNode:()=>mf,isIntrinsicJsxName:()=>eU,isIterationStatement:()=>VT,isJSDoc:()=>tR,isJSDocAllType:()=>WPt,isJSDocAugmentsTag:()=>bz,isJSDocAuthorTag:()=>r$r,isJSDocCallbackTag:()=>f$e,isJSDocClassTag:()=>MPt,isJSDocCommentContainingNode:()=>i7,isJSDocConstructSignature:()=>PY,isJSDocDeprecatedTag:()=>_$e,isJSDocEnumTag:()=>oEe,isJSDocFunctionType:()=>hie,isJSDocImplementsTag:()=>r9e,isJSDocImportTag:()=>SN,isJSDocIndexSignature:()=>Uge,isJSDocLikeText:()=>Z$e,isJSDocLink:()=>VPt,isJSDocLinkCode:()=>PPt,isJSDocLinkLike:()=>Tx,isJSDocLinkPlain:()=>e$r,isJSDocMemberName:()=>O3,isJSDocNameReference:()=>lde,isJSDocNamepathType:()=>t$r,isJSDocNamespaceBody:()=>oye,isJSDocNode:()=>l3,isJSDocNonNullableType:()=>qLe,isJSDocNullableType:()=>Iie,isJSDocOptionalParameter:()=>HAe,isJSDocOptionalType:()=>p$e,isJSDocOverloadTag:()=>mie,isJSDocOverrideTag:()=>e9e,isJSDocParameterTag:()=>cS,isJSDocPrivateTag:()=>h$e,isJSDocPropertyLikeTag:()=>dY,isJSDocPropertyTag:()=>HPt,isJSDocProtectedTag:()=>m$e,isJSDocPublicTag:()=>I$e,isJSDocReadonlyTag:()=>C$e,isJSDocReturnTag:()=>t9e,isJSDocSatisfiesExpression:()=>Zbe,isJSDocSatisfiesTag:()=>n9e,isJSDocSeeTag:()=>n$r,isJSDocSignature:()=>qL,isJSDocTag:()=>u3,isJSDocTemplateTag:()=>ZB,isJSDocThisTag:()=>y$e,isJSDocThrowsTag:()=>s$r,isJSDocTypeAlias:()=>iS,isJSDocTypeAssertion:()=>sQ,isJSDocTypeExpression:()=>W3,isJSDocTypeLiteral:()=>yU,isJSDocTypeTag:()=>ude,isJSDocTypedefTag:()=>bU,isJSDocUnknownTag:()=>i$r,isJSDocUnknownType:()=>OPt,isJSDocVariadicType:()=>$Le,isJSXTagName:()=>YJ,isJsonEqual:()=>WAe,isJsonSourceFile:()=>Zu,isJsxAttribute:()=>EN,isJsxAttributeLike:()=>wJ,isJsxAttributeName:()=>TLe,isJsxAttributes:()=>nQ,isJsxCallLike:()=>c3,isJsxChild:()=>BJ,isJsxClosingElement:()=>rQ,isJsxClosingFragment:()=>ZPt,isJsxElement:()=>bN,isJsxExpression:()=>pie,isJsxFragment:()=>P3,isJsxNamespacedName:()=>eR,isJsxOpeningElement:()=>$T,isJsxOpeningFragment:()=>Pw,isJsxOpeningLikeElement:()=>eI,isJsxOpeningLikeElementTagName:()=>Y5t,isJsxSelfClosingElement:()=>_U,isJsxSpreadAttribute:()=>yz,isJsxTagNameExpression:()=>kL,isJsxText:()=>KL,isJumpStatementTarget:()=>o1e,isKeyword:()=>v0,isKeywordOrPunctuation:()=>eAe,isKnownSymbol:()=>k7,isLabelName:()=>mrt,isLabelOfLabeledStatement:()=>hrt,isLabeledStatement:()=>FP,isLateVisibilityPaintedStatement:()=>p7,isLeftHandSideExpression:()=>D_,isLet:()=>rS,isLineBreak:()=>Cl,isLiteralComputedPropertyDeclarationName:()=>fne,isLiteralExpression:()=>wL,isLiteralExpressionOfObject:()=>bre,isLiteralImportTypeNode:()=>ky,isLiteralKind:()=>pY,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>ZVe,isLiteralTypeLiteral:()=>age,isLiteralTypeNode:()=>EE,isLocalName:()=>VF,isLogicalOperator:()=>OZe,isLogicalOrCoalescingAssignmentExpression:()=>gAe,isLogicalOrCoalescingAssignmentOperator:()=>V7,isLogicalOrCoalescingBinaryExpression:()=>Nne,isLogicalOrCoalescingBinaryOperator:()=>AAe,isMappedTypeNode:()=>GB,isMemberName:()=>_w,isMetaProperty:()=>Du,isMethodDeclaration:()=>uu,isMethodOrAccessor:()=>NL,isMethodSignature:()=>hl,isMinusToken:()=>ide,isMissingDeclaration:()=>$qr,isMissingPackageJsonInfo:()=>JWt,isModifier:()=>Ig,isModifierKind:()=>VD,isModifierLike:()=>dp,isModuleAugmentationExternal:()=>Xre,isModuleBlock:()=>_N,isModuleBody:()=>cge,isModuleDeclaration:()=>xh,isModuleExportName:()=>zLe,isModuleExportsAccessExpression:()=>cN,isModuleIdentifier:()=>_P,isModuleName:()=>oWt,isModuleOrEnumDeclaration:()=>a3,isModuleReference:()=>yY,isModuleSpecifierLike:()=>zVe,isModuleWithStringLiteralName:()=>RY,isNameOfFunctionDeclaration:()=>brt,isNameOfModuleDeclaration:()=>yrt,isNamedDeclaration:()=>rh,isNamedEvaluation:()=>kb,isNamedEvaluationSource:()=>xye,isNamedExportBindings:()=>yre,isNamedExports:()=>mv,isNamedImportBindings:()=>wx,isNamedImports:()=>yN,isNamedImportsOrExports:()=>Gne,isNamedTupleMember:()=>KT,isNamespaceBody:()=>Nre,isNamespaceExport:()=>tk,isNamespaceExportDeclaration:()=>sEe,isNamespaceImport:()=>Zx,isNamespaceReexportDeclaration:()=>lZe,isNewExpression:()=>f2,isNewExpressionTarget:()=>Ode,isNewScopeNode:()=>eie,isNoSubstitutionTemplateLiteral:()=>GP,isNodeArray:()=>tN,isNodeArrayMultiLine:()=>hAe,isNodeDescendantOf:()=>EP,isNodeKind:()=>z6,isNodeLikeSystem:()=>Mm,isNodeModulesDirectory:()=>Vd,isNodeWithPossibleHoistedDeclaration:()=>_Ze,isNonContextualKeyword:()=>Dye,isNonGlobalAmbientModule:()=>Qre,isNonNullAccess:()=>YAe,isNonNullChain:()=>hJ,isNonNullExpression:()=>hv,isNonStaticMethodOrAccessorWithPrivateName:()=>TOt,isNotEmittedStatement:()=>FPt,isNullishCoalesce:()=>IJ,isNumber:()=>ws,isNumericLiteral:()=>mC,isNumericLiteralName:()=>IN,isObjectBindingElementWithoutPropertyName:()=>p1e,isObjectBindingOrAssignmentElement:()=>gP,isObjectBindingOrAssignmentPattern:()=>bJ,isObjectBindingPattern:()=>Km,isObjectLiteralElement:()=>bY,isObjectLiteralElementLike:()=>yw,isObjectLiteralExpression:()=>og,isObjectLiteralMethod:()=>a2,isObjectLiteralOrClassExpressionMethodOrAccessor:()=>Vge,isObjectTypeDeclaration:()=>YY,isOmittedExpression:()=>yp,isOptionalChain:()=>GC,isOptionalChainRoot:()=>aP,isOptionalDeclaration:()=>RB,isOptionalJSDocPropertyLikeTag:()=>jne,isOptionalTypeNode:()=>jL,isOuterExpression:()=>o9e,isOutermostOptionalChain:()=>i3,isOverrideModifier:()=>bt,isPackageJsonInfo:()=>D9e,isPackedArrayLiteral:()=>Gbe,isParameter:()=>Si,isParameterPropertyDeclaration:()=>Ve,isParameterPropertyModifier:()=>IY,isParenthesizedExpression:()=>gI,isParenthesizedTypeNode:()=>fv,isParseTreeNode:()=>SL,isPartOfParameterDeclaration:()=>HL,isPartOfTypeNode:()=>ww,isPartOfTypeOnlyImportOrExportDeclaration:()=>sge,isPartOfTypeQuery:()=>Qge,isPartiallyEmittedExpression:()=>ly,isPatternMatch:()=>jd,isPinnedComment:()=>g7,isPlainJsFile:()=>SY,isPlusToken:()=>mz,isPossiblyTypeArgumentPosition:()=>l1e,isPostfixUnaryExpression:()=>ek,isPrefixUnaryExpression:()=>T0,isPrimitiveLiteralValue:()=>uz,isPrivateIdentifier:()=>p,isPrivateIdentifierClassElementDeclaration:()=>pC,isPrivateIdentifierPropertyAccessExpression:()=>cP,isPrivateIdentifierSymbol:()=>SZe,isProgramUptoDate:()=>ftt,isPrologueDirective:()=>nS,isPropertyAccessChain:()=>vx,isPropertyAccessEntityNameExpression:()=>BF,isPropertyAccessExpression:()=>jo,isPropertyAccessOrQualifiedName:()=>SJ,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>wre,isPropertyAssignment:()=>fm,isPropertyDeclaration:()=>pi,isPropertyName:()=>VI,isPropertyNameLiteral:()=>Tw,isPropertySignature:()=>ss,isPrototypeAccess:()=>wF,isPrototypePropertyAssignment:()=>lne,isPunctuation:()=>Nye,isPushOrUnshiftIdentifier:()=>Gye,isQualifiedName:()=>zi,isQuestionDotToken:()=>Aie,isQuestionOrExclamationToken:()=>rWt,isQuestionOrPlusOrMinusToken:()=>sWt,isQuestionToken:()=>UT,isReadonlyKeyword:()=>le,isReadonlyKeywordOrPlusOrMinusToken:()=>iWt,isRecognizedTripleSlashComment:()=>Ore,isReferenceFileLocation:()=>Fie,isReferencedFile:()=>K3,isRegularExpressionLiteral:()=>tEe,isRequireCall:()=>ay,isRequireVariableStatement:()=>nne,isRestParameter:()=>EB,isRestTypeNode:()=>zL,isReturnStatement:()=>I2,isReturnStatementWithFixablePromiseHandler:()=>mPe,isRightSideOfAccessExpression:()=>tbe,isRightSideOfInstanceofExpression:()=>HZe,isRightSideOfPropertyAccess:()=>Wie,isRightSideOfQualifiedName:()=>Q5t,isRightSideOfQualifiedNameOrPropertyAccess:()=>P7,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>MZe,isRootedDiskPath:()=>Xp,isSameEntityName:()=>QJ,isSatisfiesExpression:()=>Qg,isSemicolonClassElement:()=>DPt,isSetAccessor:()=>cv,isSetAccessorDeclaration:()=>Dg,isShiftOperatorOrHigher:()=>x$e,isShorthandAmbientModuleSymbol:()=>NY,isShorthandPropertyAssignment:()=>a0,isSideEffectImport:()=>Wbe,isSignedNumericLiteral:()=>Cne,isSimpleCopiableExpression:()=>lQ,isSimpleInlineableExpression:()=>BN,isSimpleParameterList:()=>FEe,isSingleOrDoubleQuote:()=>ine,isSolutionConfig:()=>ret,isSourceElement:()=>NLe,isSourceFile:()=>ll,isSourceFileFromLibrary:()=>zie,isSourceFileJS:()=>n0,isSourceFileNotJson:()=>Jge,isSourceMapping:()=>vOt,isSpecialPropertyDeclaration:()=>Eye,isSpreadAssignment:()=>Lx,isSpreadElement:()=>of,isStatement:()=>Lc,isStatementButNotDeclaration:()=>vJ,isStatementOrBlock:()=>kre,isStatementWithLocals:()=>mge,isStatic:()=>cg,isStaticModifier:()=>Ge,isString:()=>Xs,isStringANonContextualKeyword:()=>WY,isStringAndEmptyAnonymousObjectIntersection:()=>nMt,isStringDoubleQuoted:()=>sne,isStringLiteral:()=>Zg,isStringLiteralLike:()=>mA,isStringLiteralOrJsxExpression:()=>TJ,isStringLiteralOrTemplate:()=>yMt,isStringOrNumericLiteralLike:()=>d1,isStringOrRegularExpressionOrTemplateLiteral:()=>Nrt,isStringTextContainingNode:()=>Ere,isSuperCall:()=>Dy,isSuperKeyword:()=>rr,isSuperProperty:()=>xy,isSupportedSourceFileName:()=>Bbe,isSwitchStatement:()=>ode,isSyntaxList:()=>Cie,isSyntheticExpression:()=>F3,isSyntheticReference:()=>_z,isTagName:()=>Crt,isTaggedTemplateExpression:()=>MI,isTaggedTemplateTag:()=>M5t,isTemplateExpression:()=>FF,isTemplateHead:()=>tQ,isTemplateLiteral:()=>AP,isTemplateLiteralKind:()=>LD,isTemplateLiteralToken:()=>ige,isTemplateLiteralTypeNode:()=>zT,isTemplateLiteralTypeSpan:()=>mN,isTemplateMiddle:()=>uie,isTemplateMiddleOrTemplateTail:()=>$6,isTemplateSpan:()=>die,isTemplateTail:()=>rde,isTextWhiteSpaceLike:()=>lMt,isThis:()=>Oie,isThisContainerOrFunctionBlock:()=>oZe,isThisIdentifier:()=>vF,isThisInTypeQuery:()=>YL,isThisInitializedDeclaration:()=>Hge,isThisInitializedObjectBindingExpression:()=>cZe,isThisProperty:()=>$re,isThisTypeNode:()=>Fx,isThisTypeParameter:()=>az,isThisTypePredicate:()=>iZe,isThrowStatement:()=>d$e,isToken:()=>BL,isTokenKind:()=>q6,isTraceEnabled:()=>VP,isTransientSymbol:()=>bw,isTrivia:()=>zJ,isTryStatement:()=>mU,isTupleTypeNode:()=>Zw,isTypeAlias:()=>gne,isTypeAliasDeclaration:()=>FB,isTypeAssertionExpression:()=>xF,isTypeDeclaration:()=>KY,isTypeElement:()=>Bx,isTypeKeyword:()=>Qde,isTypeKeywordTokenOrIdentifier:()=>UVe,isTypeLiteralNode:()=>mh,isTypeNode:()=>uc,isTypeNodeKind:()=>bAe,isTypeOfExpression:()=>CN,isTypeOnlyExportDeclaration:()=>mJ,isTypeOnlyImportDeclaration:()=>rN,isTypeOnlyImportOrExportDeclaration:()=>nN,isTypeOperatorNode:()=>xB,isTypeParameterDeclaration:()=>Ds,isTypePredicateNode:()=>bE,isTypeQueryNode:()=>Fw,isTypeReferenceNode:()=>nh,isTypeReferenceType:()=>s7,isTypeUsableAsPropertyName:()=>g2,isUMDExportSymbol:()=>yAe,isUnaryExpression:()=>Rre,isUnaryExpressionWithWrite:()=>iN,isUnicodeIdentifierStart:()=>ft,isUnionTypeNode:()=>aS,isUrl:()=>n_,isValidBigIntString:()=>Jne,isValidESSymbolDeclaration:()=>tZe,isValidTypeOnlyAliasUseSite:()=>JL,isValueSignatureDeclaration:()=>C3,isVarAwaitUsing:()=>Sd,isVarConst:()=>rI,isVarConstLike:()=>OT,isVarUsing:()=>tI,isVariableDeclaration:()=>nc,isVariableDeclarationInVariableStatement:()=>h7,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>CP,isVariableDeclarationInitializedToRequire:()=>y7,isVariableDeclarationList:()=>u_,isVariableLike:()=>I7,isVariableStatement:()=>Ch,isVoidExpression:()=>qT,isWatchSet:()=>cbe,isWhileStatement:()=>A$e,isWhiteSpaceLike:()=>dc,isWhiteSpaceSingleLine:()=>Iu,isWithStatement:()=>kPt,isWriteAccess:()=>B3,isWriteOnlyAccess:()=>CAe,isYieldExpression:()=>Hd,jsxModeNeedsExplicitImport:()=>gnt,keywordPart:()=>y1,last:()=>Ei,lastOrUndefined:()=>li,length:()=>B,libMap:()=>O$e,libs:()=>d9e,lineBreakPart:()=>Jie,loadModuleFromGlobalCache:()=>aOt,loadWithModeAwareCache:()=>XEe,makeIdentifierFromModuleName:()=>vw,makeImport:()=>QP,makeStringLiteral:()=>Xde,mangleScopedPackageName:()=>Nie,map:()=>At,mapAllOrFail:()=>qt,mapDefined:()=>Xt,mapDefinedIterator:()=>lr,mapEntries:()=>ke,mapIterator:()=>Yt,mapOneOrMany:()=>ant,mapToDisplayParts:()=>XP,matchFiles:()=>Sbe,matchPatternOrExact:()=>Tbe,matchedText:()=>pw,matchesExclude:()=>B9e,matchesExcludeWorker:()=>w9e,maxBy:()=>ls,maybeBind:()=>$i,maybeSetLocalizedDiagnosticMessages:()=>$Ze,memoize:()=>FA,memoizeOne:()=>ZA,min:()=>oa,minAndMax:()=>mLe,missingFileModifiedTime:()=>Rh,modifierToFlag:()=>HY,modifiersToFlags:()=>Dw,moduleExportNameIsDefault:()=>lv,moduleExportNameTextEscaped:()=>CF,moduleExportNameTextUnescaped:()=>HD,moduleOptionDeclaration:()=>mWt,moduleResolutionIsEqualTo:()=>Ige,moduleResolutionNameAndModeGetter:()=>rVe,moduleResolutionOptionDeclarations:()=>H$e,moduleResolutionSupportsPackageJsonExportsAndImports:()=>lU,moduleResolutionUsesNodeModules:()=>KVe,moduleSpecifierToValidIdentifier:()=>b1e,moduleSpecifiers:()=>WF,moduleSupportsImportAttributes:()=>sLe,moduleSymbolToValidIdentifier:()=>y1e,moveEmitHelpers:()=>PLe,moveRangeEnd:()=>IAe,moveRangePastDecorators:()=>jD,moveRangePastModifiers:()=>Av,moveRangePos:()=>KD,moveSyntheticComments:()=>ZLe,mutateMap:()=>Q7,mutateMapSkippingNewValues:()=>gN,needsParentheses:()=>tPe,needsScopeMarker:()=>t7,newCaseClauseTracker:()=>dPe,newPrivateEnvironment:()=>NOt,noEmitNotification:()=>PEe,noEmitSubstitution:()=>Nde,noTransformers:()=>a3t,noTruncationMaximumTruncationLength:()=>Lre,nodeCanBeDecorated:()=>OJ,nodeCoreModules:()=>dU,nodeHasName:()=>t3,nodeIsDecorated:()=>MJ,nodeIsMissing:()=>sf,nodeIsPresent:()=>u1,nodeIsSynthesized:()=>sp,nodeModuleNameResolver:()=>qWt,nodeModulesPathPart:()=>Vx,nodeNextJsonConfigResolver:()=>$Wt,nodeOrChildIsDecorated:()=>tne,nodeOverlapsWithStartEnd:()=>LVe,nodePosToString:()=>Cge,nodeSeenTracker:()=>Yie,nodeStartsNewLexicalEnvironment:()=>Fye,noop:()=>Dc,noopFileWatcher:()=>Vie,normalizePath:()=>iu,normalizeSlashes:()=>Dp,normalizeSpans:()=>EI,not:()=>uC,notImplemented:()=>il,notImplementedResolver:()=>A3t,nullNodeConverters:()=>Qbe,nullParenthesizerRules:()=>Ybe,nullTransformationContext:()=>OEe,objectAllocator:()=>ZC,operatorPart:()=>Ude,optionDeclarations:()=>Ww,optionMapToObject:()=>_9e,optionsAffectingProgramStructure:()=>bWt,optionsForBuild:()=>Q$e,optionsForWatch:()=>wz,optionsHaveChanges:()=>S0,or:()=>Hp,orderedRemoveItem:()=>Ql,orderedRemoveItemAt:()=>LA,packageIdToPackageName:()=>xJ,packageIdToString:()=>oN,parameterIsThisKeyword:()=>SF,parameterNamePart:()=>gMt,parseBaseNodeFactory:()=>AWt,parseBigInt:()=>_Le,parseBuildCommand:()=>NWt,parseCommandLine:()=>TWt,parseCommandLineWorker:()=>X$e,parseConfigFileTextToJson:()=>U$e,parseConfigFileWithSystem:()=>z3t,parseConfigHostFromCompilerHostLike:()=>cVe,parseCustomTypeOption:()=>h9e,parseIsolatedEntityName:()=>Bz,parseIsolatedJSDocComment:()=>pWt,parseJSDocTypeExpressionForTests:()=>R$r,parseJsonConfigFileContent:()=>sen,parseJsonSourceFileConfigFileContent:()=>EEe,parseJsonText:()=>hEe,parseListTypeOption:()=>BWt,parseNodeFactory:()=>H3,parseNodeModuleFromPath:()=>wEe,parsePackageName:()=>TEe,parsePseudoBigInt:()=>nz,parseValidBigInt:()=>kbe,pasteEdits:()=>ust,patchWriteFileEnsuringDirectory:()=>e2,pathContainsNodeModules:()=>WP,pathIsAbsolute:()=>lE,pathIsBareSpecifier:()=>Xh,pathIsRelative:()=>Ip,patternText:()=>j1,performIncrementalCompilation:()=>q3t,performance:()=>hb,positionBelongsToNode:()=>Ert,positionIsASICandidate:()=>iPe,positionIsSynthesized:()=>wB,positionsAreOnSameLine:()=>yE,preProcessFile:()=>Iin,probablyUsesSemicolons:()=>C1e,processCommentPragmas:()=>P$e,processPragmasIntoFields:()=>W$e,processTaggedTemplateExpression:()=>Het,programContainsEsModules:()=>aMt,programContainsModules:()=>oMt,projectReferenceIsEqualTo:()=>Vre,propertyNamePart:()=>AMt,pseudoBigIntToString:()=>kP,punctuationPart:()=>k0,pushIfUnique:()=>Qi,quote:()=>zde,quotePreferenceFromString:()=>Wrt,rangeContainsPosition:()=>Mie,rangeContainsPositionExclusive:()=>a1e,rangeContainsRange:()=>cy,rangeContainsRangeExclusive:()=>J5t,rangeContainsStartEnd:()=>c1e,rangeEndIsOnSameLineAsRangeStart:()=>kne,rangeEndPositionsAreOnSameLine:()=>XZe,rangeEquals:()=>gc,rangeIsOnSingleLine:()=>S3,rangeOfNode:()=>Nbe,rangeOfTypeParameters:()=>Dbe,rangeOverlapsWithStartEnd:()=>Mde,rangeStartIsOnSameLineAsRangeEnd:()=>JZe,rangeStartPositionsAreOnSameLine:()=>M7,readBuilderProgram:()=>CVe,readConfigFile:()=>yEe,readJson:()=>E3,readJsonConfigFile:()=>DWt,readJsonOrUndefined:()=>sbe,reduceEachLeadingCommentRange:()=>EL,reduceEachTrailingCommentRange:()=>ff,reduceLeft:()=>Ul,reduceLeftIterator:()=>ne,reducePathComponents:()=>t2,refactor:()=>Oz,regExpEscape:()=>Hqe,regularExpressionFlagToCharacterCode:()=>Ho,relativeComplement:()=>Wr,removeAllComments:()=>pz,removeEmitHelper:()=>i$e,removeExtension:()=>Xne,removeFileExtension:()=>s0,removeIgnoredPath:()=>AVe,removeMinAndVersionNumbers:()=>us,removePrefix:()=>Nm,removeSuffix:()=>aa,removeTrailingDirectorySeparator:()=>ny,repeatString:()=>A1e,replaceElement:()=>Yl,replaceFirstStar:()=>R3,resolutionExtensionIsTSOrJson:()=>ez,resolveConfigFileProjectName:()=>Jtt,resolveJSModule:()=>KWt,resolveLibrary:()=>x9e,resolveModuleName:()=>BU,resolveModuleNameFromCache:()=>Len,resolvePackageNameToPackageJson:()=>oet,resolvePath:()=>AE,resolveProjectReferencePath:()=>xz,resolveTripleslashReference:()=>ott,resolveTypeReferenceDirective:()=>QWt,resolvingEmptyArray:()=>Zre,returnFalse:()=>As,returnNoopFileWatcher:()=>Vde,returnTrue:()=>Tf,returnUndefined:()=>cm,returnsPromise:()=>vnt,rewriteModuleSpecifier:()=>Nz,sameFlatMap:()=>Zr,sameMap:()=>Tr,sameMapping:()=>wtn,scanTokenAtPosition:()=>qs,scanner:()=>A_,semanticDiagnosticsOptionDeclarations:()=>CWt,serializeCompilerOptions:()=>$$e,server:()=>Cfn,servicesVersion:()=>son,setCommentRange:()=>hh,setConfigFileInOptions:()=>eet,setConstantValue:()=>VLe,setEmitFlags:()=>ti,setGetSourceFileAsHashVersioned:()=>mVe,setIdentifierAutoGenerate:()=>oie,setIdentifierGeneratedImportReference:()=>MLe,setIdentifierTypeArguments:()=>xx,setInternalEmitFlags:()=>sie,setLocalizedDiagnosticMessages:()=>cU,setNodeChildren:()=>YPt,setNodeFlags:()=>ELe,setObjectAllocator:()=>qZe,setOriginalNode:()=>ua,setParent:()=>XA,setParentRecursive:()=>UL,setPrivateIdentifier:()=>wU,setSnippetElement:()=>qbe,setSourceMapRange:()=>Hg,setStackTraceLimit:()=>xT,setStartsOnNewLine:()=>Md,setSyntheticLeadingComments:()=>kB,setSyntheticTrailingComments:()=>x3,setSys:()=>bI,setSysLog:()=>xC,setTextRange:()=>gn,setTextRangeEnd:()=>AU,setTextRangePos:()=>iz,setTextRangePosEnd:()=>TB,setTextRangePosWidth:()=>xbe,setTokenSourceMapRange:()=>Kbe,setTypeNode:()=>WLe,setUILocale:()=>Zs,setValueDeclaration:()=>S7,shouldAllowImportingTsExtension:()=>Die,shouldPreserveConstEnums:()=>Fb,shouldRewriteModuleSpecifier:()=>une,shouldUseUriStyleNodeCoreModules:()=>gPe,showModuleSpecifier:()=>jZe,signatureHasRestParameter:()=>D0,signatureToDisplayParts:()=>zrt,single:()=>Xa,singleElementArray:()=>J_,singleIterator:()=>qr,singleOrMany:()=>ac,singleOrUndefined:()=>Ps,skipAlias:()=>FC,skipConstraint:()=>Lrt,skipOuterExpressions:()=>HI,skipParentheses:()=>QA,skipPartiallyEmittedExpressions:()=>o2,skipTrivia:()=>Yu,skipTypeChecking:()=>T3,skipTypeCheckingIgnoringNoCheck:()=>CLe,skipTypeParentheses:()=>w7,skipWhile:()=>cp,sliceAfter:()=>Rbe,some:()=>jt,sortAndDeduplicate:()=>cl,sortAndDeduplicateDiagnostics:()=>ui,sourceFileAffectingCompilerOptions:()=>Y$e,sourceFileMayBeEmitted:()=>SP,sourceMapCommentRegExp:()=>Det,sourceMapCommentRegExpDontCareLineStart:()=>bOt,spacePart:()=>BI,spanMap:()=>_n,startEndContainsRange:()=>mAe,startEndOverlapsWithStartEnd:()=>VVe,startOnNewLine:()=>N0,startTracing:()=>fd,startsWith:()=>Ac,startsWithDirectory:()=>$S,startsWithUnderscore:()=>unt,startsWithUseStrict:()=>zPt,stringContainsAt:()=>TMt,stringToToken:()=>Ta,stripQuotes:()=>l2,supportedDeclarationExtensions:()=>LAe,supportedJSExtensionsFlat:()=>uU,supportedLocaleDirectories:()=>nv,supportedTSExtensionsFlat:()=>vbe,supportedTSImplementationExtensions:()=>Yne,suppressLeadingAndTrailingTrivia:()=>Vy,suppressLeadingTrivia:()=>Hbe,suppressTrailingTrivia:()=>xLe,symbolEscapedNameNoDefault:()=>jVe,symbolName:()=>nf,symbolNameNoDefault:()=>Mrt,symbolToDisplayParts:()=>Kde,sys:()=>yd,sysLog:()=>Ih,tagNamesAreEquivalent:()=>Q3,takeWhile:()=>t_,targetOptionDeclaration:()=>M$e,targetToLibMap:()=>Is,testFormatSettings:()=>Vnn,textChangeRangeIsUnchanged:()=>sy,textChangeRangeNewSpan:()=>qR,textChanges:()=>xo,textOrKeywordPart:()=>jrt,textPart:()=>gS,textRangeContainsPositionInclusive:()=>sl,textRangeContainsTextSpan:()=>Og,textRangeIntersectsWithTextSpan:()=>e3,textSpanContainsPosition:()=>ho,textSpanContainsTextRange:()=>ed,textSpanContainsTextSpan:()=>Nd,textSpanEnd:()=>Rs,textSpanIntersection:()=>IA,textSpanIntersectsWith:()=>q2,textSpanIntersectsWithPosition:()=>zR,textSpanIntersectsWithTextSpan:()=>Tb,textSpanIsEmpty:()=>ja,textSpanOverlap:()=>o1,textSpanOverlapsWith:()=>Nh,textSpansEqual:()=>Xie,textToKeywordObj:()=>ev,timestamp:()=>Fg,toArray:()=>cc,toBuilderFileEmit:()=>W3t,toBuilderStateFileInfoForMultiEmit:()=>P3t,toEditorSettings:()=>N1e,toFileNameLowerCase:()=>Om,toPath:()=>Ou,toProgramEmitPending:()=>O3t,toSorted:()=>bo,tokenIsIdentifierOrKeyword:()=>Id,tokenIsIdentifierOrKeywordOrGreaterThan:()=>fB,tokenToString:()=>Vi,trace:()=>eu,tracing:()=>ki,tracingEnabled:()=>Kl,transferSourceFileChildren:()=>QPt,transform:()=>fon,transformClassFields:()=>WOt,transformDeclarations:()=>Jet,transformECMAScriptModule:()=>Xet,transformES2015:()=>e3t,transformES2016:()=>$Ot,transformES2017:()=>YOt,transformES2018:()=>QOt,transformES2019:()=>XOt,transformES2020:()=>JOt,transformES2021:()=>UOt,transformESDecorators:()=>HOt,transformESNext:()=>KOt,transformGenerators:()=>t3t,transformImpliedNodeFormatDependentModule:()=>n3t,transformJsx:()=>qOt,transformLegacyDecorators:()=>MOt,transformModule:()=>Qet,transformNamedEvaluation:()=>m1,transformNodes:()=>WEe,transformSystemModule:()=>r3t,transformTypeScript:()=>POt,transpile:()=>vin,transpileDeclaration:()=>Ein,transpileModule:()=>zMt,transpileOptionValueCompilerOptions:()=>EWt,tryAddToSet:()=>Ar,tryAndIgnoreErrors:()=>aPe,tryCast:()=>Gs,tryDirectoryExists:()=>oPe,tryExtractTSExtension:()=>O7,tryFileExists:()=>Kie,tryGetClassExtendingExpressionWithTypeArguments:()=>$ye,tryGetClassImplementingOrExtendingExpressionWithTypeArguments:()=>ebe,tryGetDirectories:()=>sPe,tryGetExtensionFromPath:()=>QT,tryGetImportFromModuleSpecifier:()=>B7,tryGetJSDocSatisfiesTypeNode:()=>QAe,tryGetModuleNameFromFile:()=>gEe,tryGetModuleSpecifierFromDeclaration:()=>ZY,tryGetNativePerformanceHooks:()=>YS,tryGetPropertyAccessOrIdentifierToString:()=>TP,tryGetPropertyNameOfBindingOrAssignmentElement:()=>c9e,tryGetSourceMappingURL:()=>EOt,tryGetTextOfPropertyName:()=>xY,tryParseJson:()=>nU,tryParsePattern:()=>UY,tryParsePatterns:()=>$7,tryParseRawSourceMap:()=>SOt,tryReadDirectory:()=>nnt,tryReadFile:()=>fde,tryRemoveDirectoryPrefix:()=>NAe,tryRemoveExtension:()=>hLe,tryRemovePrefix:()=>HS,tryRemoveSuffix:()=>Bo,tscBuildOption:()=>SU,typeAcquisitionDeclarations:()=>f9e,typeAliasNamePart:()=>dMt,typeDirectiveIsEqualTo:()=>hge,typeKeywords:()=>Zrt,typeParameterNamePart:()=>pMt,typeToDisplayParts:()=>I1e,unchangedPollThresholds:()=>q_,unchangedTextChangeRange:()=>Eo,unescapeLeadingUnderscores:()=>Bc,unmangleScopedPackageName:()=>NEe,unorderedRemoveItem:()=>ef,unprefixedNodeCoreModules:()=>qne,unreachableCodeIsError:()=>nLe,unsetNodeChildren:()=>E$e,unusedLabelIsError:()=>iLe,unwrapInnermostStatementOfLabel:()=>Iye,unwrapParenthesizedExpression:()=>UAe,updateErrorForNoInputFiles:()=>v9e,updateLanguageServiceSourceFile:()=>qnt,updateMissingFilePathsWatch:()=>ntt,updateResolutionField:()=>Bie,updateSharedExtendedConfigFileWatcher:()=>q9e,updateSourceFile:()=>L$e,updateWatchingWildcardDirectories:()=>HEe,usingSingleLineStringWriter:()=>dP,utf16EncodeAsString:()=>jR,validateLocaleAndSetLanguage:()=>yx,version:()=>C,versionMajorMinor:()=>I,visitArray:()=>Ede,visitCommaListElements:()=>xEe,visitEachChild:()=>_s,visitFunctionBody:()=>uS,visitIterationBody:()=>Py,visitLexicalEnvironment:()=>Net,visitNode:()=>Mr,visitNodes:()=>Ws,visitParameterList:()=>vI,walkUpBindingElementsAndPatterns:()=>ai,walkUpOuterExpressions:()=>qPt,walkUpParenthesizedExpressions:()=>gv,walkUpParenthesizedTypes:()=>pne,walkUpParenthesizedTypesAndGetParentAndChild:()=>wye,whitespaceOrMapCommentRegExp:()=>ket,writeCommentRange:()=>rU,writeFile:()=>lAe,writeFileEnsuringDirectories:()=>Qye,zipWith:()=>ce}),e.exports=A(f);var I="5.9",C="5.9.3",b=(s=>(s[s.LessThan=-1]="LessThan",s[s.EqualTo=0]="EqualTo",s[s.GreaterThan=1]="GreaterThan",s))(b||{}),E=[],N=new Map;function B(s){return s!==void 0?s.length:0}function F(s,c){if(s!==void 0)for(let g=0;g=0;g--){let d=c(s[g],g);if(d)return d}}function X(s,c){if(s!==void 0)for(let g=0;g=0;d--){let h=s[d];if(c(h,d))return h}}function Se(s,c,g){if(s===void 0)return-1;for(let d=g??0;d=0;d--)if(c(s[d],d))return d;return-1}function k(s,c,g=yg){if(s!==void 0){for(let d=0;d{let[_,S]=c(h,d);g.set(_,S)}),g}function jt(s,c){if(s!==void 0)if(c!==void 0){for(let g=0;g0;return!1}function Fn(s,c,g){let d;for(let h=0;hs[S])}function xi(s,c){let g=[];for(let d=0;d0&&d(c,s[S-1]))return!1;if(S0&&pe.assertGreaterThanOrEqual(g(c[_],c[_-1]),0);t:for(let S=h;hS&&pe.assertGreaterThanOrEqual(g(s[h],s[h-1]),0),g(c[_],s[h])){case-1:d.push(c[_]);continue e;case 0:continue e;case 1:continue t}}return d}function Ft(s,c){return c===void 0?s:s===void 0?[c]:(s.push(c),s)}function zr(s,c){return s===void 0?c:c===void 0?s:Ki(s)?Ki(c)?Nn(s,c):Ft(s,c):Ki(c)?Ft(c,s):[s,c]}function Rn(s,c){return c<0?s.length+c:c}function Or(s,c,g,d){if(c===void 0||c.length===0)return s;if(s===void 0)return c.slice(g,d);g=g===void 0?0:Rn(c,g),d=d===void 0?c.length:Rn(c,d);for(let h=g;hg(s[d],s[h])||Zt(d,h))}function bo(s,c){return s.length===0?E:s.slice().sort(c)}function*Qa(s){for(let c=s.length-1;c>=0;c--)yield s[c]}function gc(s,c,g,d){for(;gs?.at(c):(s,c)=>{if(s!==void 0&&(c=Rn(s,c),c>1),T=g(s[R],R);switch(d(T,c)){case-1:_=R+1;break;case 0:return R;case 1:S=R-1;break}}return~_}function Ul(s,c,g,d,h){if(s&&s.length>0){let _=s.length;if(_>0){let S=d===void 0||d<0?0:d,R=h===void 0||S+h>_-1?_-1:S+h,T;for(arguments.length<=2?(T=s[S],S++):T=g;S<=R;)T=c(T,s[S],S),S++;return T}}return g}var Xu=Object.prototype.hasOwnProperty;function Da(s,c){return Xu.call(s,c)}function pu(s,c){return Xu.call(s,c)?s[c]:void 0}function _g(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(g);return c}function mI(s){let c=[];do{let g=Object.getOwnPropertyNames(s);for(let d of g)Qi(c,d)}while(s=Object.getPrototypeOf(s));return c}function Qh(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(s[g]);return c}function Ri(s,c){let g=new Array(s);for(let d=0;d100&&g>c.length>>1){let R=c.length-g;c.copyWithin(0,g),c.length=R,g=0}return S}return{enqueue:h,dequeue:_,isEmpty:d}}function oo(s,c){let g=new Map,d=0;function*h(){for(let S of g.values())Ki(S)?yield*S:yield S}let _={has(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);return Ki(T)?k(T,S,c):c(T,S)},add(S){let R=s(S);if(g.has(R)){let T=g.get(R);if(Ki(T))k(T,S,c)||(T.push(S),d++);else{let W=T;c(W,S)||(g.set(R,[W,S]),d++)}}else g.set(R,S),d++;return this},delete(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);if(Ki(T)){for(let W=0;Wh(),[Symbol.toStringTag]:g[Symbol.toStringTag]};return _}function Ki(s){return Array.isArray(s)}function cc(s){return Ki(s)?s:[s]}function Xs(s){return typeof s=="string"}function ws(s){return typeof s=="number"}function Gs(s,c){return s!==void 0&&c(s)?s:void 0}function Ma(s,c){return s!==void 0&&c(s)?s:pe.fail(`Invalid cast. The supplied value ${s} did not pass the test '${pe.getFunctionName(c)}'.`)}function Dc(s){}function As(){return!1}function Tf(){return!0}function cm(){}function Fl(s){return s}function rc(s){return s.toLowerCase()}var sd=/[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g;function Om(s){return sd.test(s)?s.replace(sd,rc):s}function il(){throw new Error("Not implemented")}function FA(s){let c;return()=>(s&&(c=s(),s=void 0),c)}function ZA(s){let c=new Map;return g=>{let d=`${typeof g}:${g}`,h=c.get(d);return h===void 0&&!c.has(d)&&(h=s(g),c.set(d,h)),h}}var El=(s=>(s[s.None=0]="None",s[s.Normal=1]="Normal",s[s.Aggressive=2]="Aggressive",s[s.VeryAggressive=3]="VeryAggressive",s))(El||{});function yg(s,c){return s===c}function Mp(s,c){return s===c||s!==void 0&&c!==void 0&&s.toUpperCase()===c.toUpperCase()}function MA(s,c){return yg(s,c)}function Er(s,c){return s===c?0:s===void 0?-1:c===void 0?1:sc(g,d)===-1?g:d)}function Fs(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toUpperCase(),c=c.toUpperCase(),sc?1:0)}function Wa(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toLowerCase(),c=c.toLowerCase(),sc?1:0)}function Ca(s,c){return Er(s,c)}function ld(s){return s?Fs:Ca}var Rp=(()=>{return c;function s(g,d,h){if(g===d)return 0;if(g===void 0)return-1;if(d===void 0)return 1;let _=h(g,d);return _<0?-1:_>0?1:0}function c(g){let d=new Intl.Collator(g,{usage:"sort",sensitivity:"variant",numeric:!0}).compare;return(h,_)=>s(h,_,d)}})(),np,HA;function df(){return HA}function Zs(s){HA!==s&&(HA=s,np=void 0)}function so(s,c){return np??(np=Rp(HA)),np(s,c)}function Ea(s,c,g,d){return s===c?0:s===void 0?-1:c===void 0?1:d(s[g],c[g])}function Ml(s,c){return Zt(s?1:0,c?1:0)}function Dr(s,c,g){let d=Math.max(2,Math.floor(s.length*.34)),h=Math.floor(s.length*.4)+1,_;for(let S of c){let R=g(S);if(R!==void 0&&Math.abs(R.length-s.length)<=d){if(R===s||R.length<3&&R.toLowerCase()!==s.toLowerCase())continue;let T=Wn(s,R,h-.1);if(T===void 0)continue;pe.assert(Tg?R-g:1),V=Math.floor(c.length>g+R?g+R:c.length);h[0]=R;let M=R;for(let re=1;reg)return;let ee=d;d=h,h=ee}let S=d[c.length];return S>g?void 0:S}function di(s,c,g){let d=s.length-c.length;return d>=0&&(g?Mp(s.slice(d),c):s.indexOf(c,d)===d)}function aa(s,c){return di(s,c)?s.slice(0,s.length-c.length):s}function Bo(s,c){return di(s,c)?s.slice(0,s.length-c.length):void 0}function us(s){let c=s.length;for(let g=c-1;g>0;g--){let d=s.charCodeAt(g);if(d>=48&&d<=57)do--g,d=s.charCodeAt(g);while(g>0&&d>=48&&d<=57);else if(g>4&&(d===110||d===78)){if(--g,d=s.charCodeAt(g),d!==105&&d!==73||(--g,d=s.charCodeAt(g),d!==109&&d!==77))break;--g,d=s.charCodeAt(g)}else break;if(d!==45&&d!==46)break;c=g}return c===s.length?s:s.slice(0,c)}function Ql(s,c){for(let g=0;gg===c)}function ip(s,c){for(let g=0;gh&&jd(R,g)&&(h=R.prefix.length,d=S)}return d}function Ac(s,c,g){return g?Mp(s.slice(0,c.length),c):s.lastIndexOf(c,0)===0}function Nm(s,c){return Ac(s,c)?s.substr(c.length):s}function HS(s,c,g=Fl){return Ac(g(s),g(c))?s.substring(c.length):void 0}function jd({prefix:s,suffix:c},g){return g.length>=s.length+c.length&&Ac(g,s)&&di(g,c)}function dh(s,c){return g=>s(g)&&c(g)}function Hp(...s){return(...c)=>{let g;for(let d of s)if(g=d(...c),g)return g;return g}}function uC(s){return(...c)=>!s(...c)}function nE(s){}function J_(s){return s===void 0?void 0:[s]}function q0(s,c,g,d,h,_){_??(_=Dc);let S=0,R=0,T=s.length,W=c.length,V=!1;for(;S(s[s.Off=0]="Off",s[s.Error=1]="Error",s[s.Warning=2]="Warning",s[s.Info=3]="Info",s[s.Verbose=4]="Verbose",s))(fb||{}),pe;(s=>{let c=0;s.currentLogLevel=2,s.isDebugging=!1;function g(yr){return s.currentLogLevel<=yr}s.shouldLog=g;function d(yr,hn){s.loggingHost&&g(yr)&&s.loggingHost.log(yr,hn)}function h(yr){d(3,yr)}s.log=h,(yr=>{function hn(Oa){d(1,Oa)}yr.error=hn;function Oi(Oa){d(2,Oa)}yr.warn=Oi;function lo(Oa){d(3,Oa)}yr.log=lo;function pa(Oa){d(4,Oa)}yr.trace=pa})(h=s.log||(s.log={}));let _={};function S(){return c}s.getAssertionLevel=S;function R(yr){let hn=c;if(c=yr,yr>hn)for(let Oi of _g(_)){let lo=_[Oi];lo!==void 0&&s[Oi]!==lo.assertion&&yr>=lo.level&&(s[Oi]=lo,_[Oi]=void 0)}}s.setAssertionLevel=R;function T(yr){return c>=yr}s.shouldAssert=T;function W(yr,hn){return T(yr)?!0:(_[hn]={level:yr,assertion:s[hn]},s[hn]=Dc,!1)}function V(yr,hn){debugger;let Oi=new Error(yr?`Debug Failure. ${yr}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Oi,hn||V),Oi}s.fail=V;function M(yr,hn,Oi){return V(`${hn||"Unexpected node."}\r +`),o+Lkr(a+".",t,n)}});var yDi=H(Wkr=>{"use strict";Wkr.parse=ADi();Wkr.stringify=_Di()});var KDi=H((Pku,UEt)=>{var ODi={};(e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(s,c)=>{for(var g in c)t(s,g,{get:c[g],enumerable:!0})},l=(s,c,g,d)=>{if(c&&typeof c=="object"||typeof c=="function")for(let h of n(c))!a.call(s,h)&&h!==g&&t(s,h,{get:()=>c[h],enumerable:!(d=r(c,h))||d.enumerable});return s},A=s=>s,f={};o(f,{ANONYMOUS:()=>rnt,AccessFlags:()=>Ty,AssertionLevel:()=>El,AssignmentDeclarationKind:()=>Ry,AssignmentKind:()=>mZe,Associativity:()=>vZe,BreakpointResolver:()=>eit,BuilderFileEmit:()=>N3t,BuilderProgramKind:()=>V3t,BuilderState:()=>nR,CallHierarchy:()=>Mz,CharacterCodes:()=>J2,CheckFlags:()=>sB,CheckMode:()=>vet,ClassificationType:()=>drt,ClassificationTypeNames:()=>W5t,CommentDirectiveType:()=>JS,Comparison:()=>b,CompletionInfoFlags:()=>x5t,CompletionTriggerKind:()=>grt,Completions:()=>Jz,ContainerFlags:()=>uOt,ContextFlags:()=>Ts,Debug:()=>pe,DiagnosticCategory:()=>KS,Diagnostics:()=>Z,DocumentHighlights:()=>hPe,ElementFlags:()=>tf,EmitFlags:()=>cB,EmitHint:()=>ty,EmitOnly:()=>Q2,EndOfLineState:()=>Z5t,ExitStatus:()=>ut,ExportKind:()=>NMt,Extension:()=>ey,ExternalEmitHelpers:()=>JR,FileIncludeKind:()=>$0,FilePreprocessingDiagnosticsKind:()=>fw,FileSystemEntryKind:()=>r1,FileWatcherEventKind:()=>yb,FindAllReferences:()=>Kp,FlattenLevel:()=>kOt,FlowFlags:()=>Yp,ForegroundColorEscapeSequences:()=>_3t,FunctionFlags:()=>EZe,GeneratedIdentifierFlags:()=>od,GetLiteralTextFlags:()=>A7,GoToDefinition:()=>nse,HighlightSpanKind:()=>D5t,IdentifierNameMap:()=>kie,ImportKind:()=>RMt,ImportsNotUsedAsValues:()=>zS,IndentStyle:()=>k5t,IndexFlags:()=>US,IndexKind:()=>Qm,InferenceFlags:()=>R_,InferencePriority:()=>mb,InlayHintKind:()=>N5t,InlayHints:()=>Qit,InternalEmitFlags:()=>RD,InternalNodeBuilderFlags:()=>vg,InternalSymbolName:()=>RT,IntersectionFlags:()=>Gn,InvalidatedProjectKind:()=>a5t,JSDocParsingMode:()=>t1,JsDoc:()=>n5,JsTyping:()=>YP,JsxEmit:()=>XR,JsxFlags:()=>Ym,JsxReferenceKind:()=>$I,LanguageFeatureMinimumTarget:()=>Rd,LanguageServiceMode:()=>T5t,LanguageVariant:()=>pn,LexicalEnvironmentFlags:()=>$1,ListFormat:()=>$E,LogLevel:()=>fb,MapCode:()=>Xit,MemberOverrideStatus:()=>ar,ModifierFlags:()=>JE,ModuleDetectionKind:()=>zE,ModuleInstanceState:()=>cOt,ModuleKind:()=>jS,ModuleResolutionKind:()=>z_,ModuleSpecifierEnding:()=>pLe,NavigateTo:()=>eHt,NavigationBar:()=>rHt,NewLineKind:()=>qE,NodeBuilderFlags:()=>Qo,NodeCheckFlags:()=>wy,NodeFactoryFlags:()=>Jbe,NodeFlags:()=>AC,NodeResolutionFeatures:()=>jWt,ObjectFlags:()=>j_,OperationCanceledException:()=>By,OperatorPrecedence:()=>BZe,OrganizeImports:()=>i5,OrganizeImportsMode:()=>urt,OuterExpressionKinds:()=>cF,OutliningElementsCollector:()=>Uit,OutliningSpanKind:()=>G5t,OutputFileType:()=>F5t,PackageJsonAutoImportPreference:()=>w5t,PackageJsonDependencyGroup:()=>B5t,PatternMatchKind:()=>ynt,PollingInterval:()=>r_,PollingWatchKind:()=>aB,PragmaKindFlags:()=>N_,PredicateSemantics:()=>K_,PreparePasteEdits:()=>lst,PrivateIdentifierKind:()=>YLe,ProcessLevel:()=>ZOt,ProgramUpdateLevel:()=>f3t,QuotePreference:()=>cMt,RegularExpressionFlags:()=>UE,RelationComparisonResult:()=>vy,Rename:()=>eWe,ScriptElementKind:()=>V5t,ScriptElementKindModifier:()=>P5t,ScriptKind:()=>X2,ScriptSnapshot:()=>RVe,ScriptTarget:()=>kT,SemanticClassificationFormat:()=>R5t,SemanticMeaning:()=>O5t,SemicolonPreference:()=>Art,SignatureCheckMode:()=>Bet,SignatureFlags:()=>$A,SignatureHelp:()=>X1e,SignatureInfo:()=>R3t,SignatureKind:()=>BA,SmartSelectionRange:()=>zit,SnippetKind:()=>Iw,StatisticType:()=>I5t,StructureIsReused:()=>xc,SymbolAccessibility:()=>uI,SymbolDisplay:()=>i9,SymbolDisplayPartKind:()=>DVe,SymbolFlags:()=>TT,SymbolFormatFlags:()=>Rf,SyntaxKind:()=>Ld,Ternary:()=>Cb,ThrottledCancellationToken:()=>uYt,TokenClass:()=>L5t,TokenFlags:()=>KE,TransformFlags:()=>up,TypeFacts:()=>Eet,TypeFlags:()=>jE,TypeFormatFlags:()=>Ng,TypeMapKind:()=>zf,TypePredicateKind:()=>Th,TypeReferenceSerializationKind:()=>oE,UnionReduction:()=>Jr,UpToDateStatusType:()=>e5t,VarianceFlags:()=>NT,Version:()=>O,VersionRange:()=>gt,WatchDirectoryFlags:()=>q1,WatchDirectoryKind:()=>DT,WatchFileKind:()=>oB,WatchLogLevel:()=>h3t,WatchType:()=>jm,accessPrivateIdentifier:()=>DOt,addEmitFlags:()=>Gw,addEmitHelper:()=>$Y,addEmitHelpers:()=>hN,addInternalEmitFlags:()=>N3,addNodeFactoryPatcher:()=>$qe,addObjectAllocatorPatcher:()=>Lqe,addRange:()=>Or,addRelatedInfo:()=>lg,addSyntheticLeadingComment:()=>JT,addSyntheticTrailingComment:()=>Iz,addToSeen:()=>Zy,advancedAsyncSuperHelper:()=>DF,affectsDeclarationPathOptionDeclarations:()=>yWt,affectsEmitOptionDeclarations:()=>_Wt,allKeysStartWithDot:()=>G9e,altDirectorySeparator:()=>Eb,and:()=>dh,append:()=>Ft,appendIfUnique:()=>ps,arrayFrom:()=>Do,arrayIsEqualTo:()=>Sc,arrayIsHomogeneous:()=>bLe,arrayOf:()=>Ri,arrayReverseIterator:()=>Qa,arrayToMap:()=>Ru,arrayToMultiMap:()=>Ju,arrayToNumericMap:()=>Vs,assertType:()=>nE,assign:()=>Wt,asyncSuperHelper:()=>lie,attachFileToDiagnostics:()=>XL,base64decode:()=>QZe,base64encode:()=>ibe,binarySearch:()=>Wc,binarySearchKey:()=>Sg,bindSourceFile:()=>gOt,breakIntoCharacterSpans:()=>XMt,breakIntoWordSpans:()=>JMt,buildLinkParts:()=>IMt,buildOpts:()=>CEe,buildOverload:()=>vpn,bundlerModuleNameResolver:()=>zWt,canBeConvertedToAsync:()=>wnt,canHaveDecorators:()=>oQ,canHaveExportModifier:()=>Kne,canHaveFlowNode:()=>UJ,canHaveIllegalDecorators:()=>k$e,canHaveIllegalModifiers:()=>tWt,canHaveIllegalType:()=>c$r,canHaveIllegalTypeParameters:()=>eWt,canHaveJSDoc:()=>Ane,canHaveLocals:()=>WI,canHaveModifiers:()=>LB,canHaveModuleSpecifier:()=>pZe,canHaveSymbol:()=>mE,canIncludeBindAndCheckDiagnostics:()=>gU,canJsonReportNoInputFiles:()=>vEe,canProduceDiagnostics:()=>ZEe,canUsePropertyAccess:()=>Fbe,canWatchAffectingLocation:()=>X3t,canWatchAtTypes:()=>Q3t,canWatchDirectoryOrFile:()=>wtt,canWatchDirectoryOrFilePath:()=>zEe,cartesianProduct:()=>XE,cast:()=>Ma,chainBundle:()=>rR,chainDiagnosticMessages:()=>wu,changeAnyExtension:()=>K2,changeCompilerHostLikeToUseCache:()=>Gde,changeExtension:()=>fN,changeFullExtension:()=>i_,changesAffectModuleResolution:()=>NJ,changesAffectingProgramStructure:()=>fge,characterCodeToRegularExpressionFlag:()=>Wg,childIsDecorated:()=>HJ,classElementOrClassElementParameterIsDecorated:()=>hye,classHasClassThisAssignment:()=>Oet,classHasDeclaredOrExplicitlyAssignedName:()=>Met,classHasExplicitlyAssignedName:()=>J9e,classOrConstructorParameterIsDecorated:()=>Rx,classicNameResolver:()=>oOt,classifier:()=>pYt,cleanExtendedConfigCache:()=>$9e,clear:()=>St,clearMap:()=>Fy,clearSharedExtendedConfigFileWatcher:()=>rtt,climbPastPropertyAccess:()=>GVe,clone:()=>Eg,cloneCompilerOptions:()=>krt,closeFileWatcher:()=>dv,closeFileWatcherOf:()=>Cv,codefix:()=>x0,collapseTextChangeRangesAcrossMultipleVersions:()=>z,collectExternalModuleInfo:()=>Let,combine:()=>zr,combinePaths:()=>Ro,commandLineOptionOfCustomType:()=>SWt,commentPragmas:()=>e1,commonOptionsWithBuild:()=>p9e,compact:()=>Hr,compareBooleans:()=>Ml,compareDataObjects:()=>_Ae,compareDiagnostics:()=>X7,compareEmitHelpers:()=>XLe,compareNumberOfDirectorySeparators:()=>Qne,comparePaths:()=>qf,comparePathsCaseInsensitive:()=>pB,comparePathsCaseSensitive:()=>Cx,comparePatternKeys:()=>Iet,compareProperties:()=>Ea,compareStringsCaseInsensitive:()=>Fs,compareStringsCaseInsensitiveEslintCompatible:()=>Wa,compareStringsCaseSensitive:()=>Ca,compareStringsCaseSensitiveUI:()=>so,compareTextSpans:()=>yn,compareValues:()=>Zt,compilerOptionsAffectDeclarationPath:()=>aLe,compilerOptionsAffectEmit:()=>oLe,compilerOptionsAffectSemanticDiagnostics:()=>mbe,compilerOptionsDidYouMeanDiagnostics:()=>m9e,compilerOptionsIndicateEsModules:()=>Vrt,computeCommonSourceDirectoryOfFilenames:()=>m3t,computeLineAndCharacterOfPosition:()=>Ci,computeLineOfPosition:()=>Po,computeLineStarts:()=>cA,computePositionOfLineAndCharacter:()=>xn,computeSignatureWithDiagnostics:()=>ytt,computeSuggestionDiagnostics:()=>Snt,computedOptions:()=>J7,concatenate:()=>Nn,concatenateDiagnosticMessageChains:()=>Fne,consumesNodeCoreModules:()=>cPe,contains:()=>k,containsIgnoredPath:()=>sz,containsObjectRestOrSpread:()=>fEe,containsParseError:()=>pP,containsPath:()=>Jh,convertCompilerOptionsForTelemetry:()=>PWt,convertCompilerOptionsFromJson:()=>hen,convertJsonOption:()=>vU,convertToBase64:()=>nbe,convertToJson:()=>bEe,convertToObject:()=>xWt,convertToOptionsWithAbsolutePaths:()=>b9e,convertToRelativePath:()=>r2,convertToTSConfig:()=>q$e,convertTypeAcquisitionFromJson:()=>men,copyComments:()=>xU,copyEntries:()=>a7,copyLeadingComments:()=>Uie,copyProperties:()=>GA,copyTrailingAsLeadingComments:()=>m1e,copyTrailingComments:()=>jde,couldStartTrivia:()=>tv,countWhere:()=>ct,createAbstractBuilder:()=>Brn,createAccessorPropertyBackingField:()=>F$e,createAccessorPropertyGetRedirector:()=>lWt,createAccessorPropertySetRedirector:()=>uWt,createBaseNodeFactory:()=>GLe,createBinaryExpressionTrampoline:()=>l9e,createBuilderProgram:()=>btt,createBuilderProgramUsingIncrementalBuildInfo:()=>M3t,createBuilderStatusReporter:()=>yVe,createCacheableExportInfoMap:()=>dnt,createCachedDirectoryStructureHost:()=>z9e,createClassifier:()=>rin,createCommentDirectivesMap:()=>bge,createCompilerDiagnostic:()=>Nf,createCompilerDiagnosticForInvalidCustomType:()=>vWt,createCompilerDiagnosticFromMessageChain:()=>SAe,createCompilerHost:()=>C3t,createCompilerHostFromProgramHost:()=>Mtt,createCompilerHostWorker:()=>eVe,createDetachedDiagnostic:()=>QY,createDiagnosticCollection:()=>EF,createDiagnosticForFileFromMessageChain:()=>Ut,createDiagnosticForNode:()=>mo,createDiagnosticForNodeArray:()=>A3,createDiagnosticForNodeArrayFromMessageChain:()=>ie,createDiagnosticForNodeFromMessageChain:()=>Bw,createDiagnosticForNodeInSourceFile:()=>_E,createDiagnosticForRange:()=>kn,createDiagnosticMessageChainFromDiagnostic:()=>Qr,createDiagnosticReporter:()=>Gz,createDocumentPositionMapper:()=>BOt,createDocumentRegistry:()=>FMt,createDocumentRegistryInternal:()=>mnt,createEmitAndSemanticDiagnosticsBuilderProgram:()=>Btt,createEmitHelperFactory:()=>QLe,createEmptyExports:()=>aEe,createEvaluator:()=>DLe,createExpressionForJsxElement:()=>UPt,createExpressionForJsxFragment:()=>KPt,createExpressionForObjectLiteralElementLike:()=>jPt,createExpressionForPropertyName:()=>B$e,createExpressionFromEntityName:()=>cEe,createExternalHelpersImportDeclarationIfNeeded:()=>R$e,createFileDiagnostic:()=>qh,createFileDiagnosticFromMessageChain:()=>ze,createFlowNode:()=>rk,createForOfBindingStatement:()=>v$e,createFutureSourceFile:()=>pPe,createGetCanonicalFileName:()=>_d,createGetIsolatedDeclarationErrors:()=>s3t,createGetSourceFile:()=>att,createGetSymbolAccessibilityDiagnosticForNode:()=>J3,createGetSymbolAccessibilityDiagnosticForNodeName:()=>i3t,createGetSymbolWalker:()=>AOt,createIncrementalCompilerHost:()=>_Ve,createIncrementalProgram:()=>$3t,createJsxFactoryExpression:()=>S$e,createLanguageService:()=>gYt,createLanguageServiceSourceFile:()=>xPe,createMemberAccessForPropertyName:()=>EU,createModeAwareCache:()=>wie,createModeAwareCacheKey:()=>Cde,createModeMismatchDetails:()=>l7,createModuleNotFoundChain:()=>kJ,createModuleResolutionCache:()=>Tie,createModuleResolutionLoader:()=>dtt,createModuleResolutionLoaderUsingGlobalCache:()=>j3t,createModuleSpecifierResolutionHost:()=>z3,createMultiMap:()=>dl,createNameResolver:()=>JAe,createNodeConverters:()=>FLe,createNodeFactory:()=>nie,createOptionNameMap:()=>I9e,createOverload:()=>gst,createPackageJsonImportFilter:()=>jie,createPackageJsonInfo:()=>snt,createParenthesizerRules:()=>pv,createPatternMatcher:()=>WMt,createPrinter:()=>MP,createPrinterWithDefaults:()=>d3t,createPrinterWithRemoveComments:()=>gQ,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>p3t,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>ttt,createProgram:()=>UEe,createProgramDiagnostics:()=>w3t,createProgramHost:()=>Htt,createPropertyNameNodeForIdentifierOrLiteral:()=>Une,createQueue:()=>oA,createRange:()=>Gy,createRedirectedBuilderProgram:()=>vtt,createResolutionCache:()=>Rtt,createRuntimeTypeSerializer:()=>OOt,createScanner:()=>wb,createSemanticDiagnosticsBuilderProgram:()=>vrn,createSet:()=>oo,createSolutionBuilder:()=>i5t,createSolutionBuilderHost:()=>r5t,createSolutionBuilderWithWatch:()=>s5t,createSolutionBuilderWithWatchHost:()=>n5t,createSortedArray:()=>Ya,createSourceFile:()=>vz,createSourceMapGenerator:()=>yOt,createSourceMapSource:()=>r$e,createSuperAccessVariableStatement:()=>K9e,createSymbolTable:()=>qu,createSymlinkCache:()=>_be,createSyntacticTypeNodeBuilder:()=>E5t,createSystemWatchFunctions:()=>ia,createTextChange:()=>g1e,createTextChangeFromStartLength:()=>JVe,createTextChangeRange:()=>$2,createTextRangeFromNode:()=>Frt,createTextRangeFromSpan:()=>XVe,createTextSpan:()=>zd,createTextSpanFromBounds:()=>wA,createTextSpanFromNode:()=>Oy,createTextSpanFromRange:()=>t9,createTextSpanFromStringLiteralLikeContent:()=>Grt,createTextWriter:()=>Bne,createTokenRange:()=>QL,createTypeChecker:()=>COt,createTypeReferenceDirectiveResolutionCache:()=>k9e,createTypeReferenceResolutionLoader:()=>nVe,createWatchCompilerHost:()=>Zrn,createWatchCompilerHostOfConfigFile:()=>Ytt,createWatchCompilerHostOfFilesAndCompilerOptions:()=>Qtt,createWatchFactory:()=>Ott,createWatchHost:()=>Wtt,createWatchProgram:()=>Xtt,createWatchStatusReporter:()=>Ntt,createWriteFileMeasuringIO:()=>ctt,declarationNameToString:()=>Wd,decodeMappings:()=>Get,decodedTextSpanIntersectsWith:()=>IE,deduplicate:()=>io,defaultHoverMaximumTruncationLength:()=>Age,defaultInitCompilerOptions:()=>L$r,defaultMaximumTruncationLength:()=>EY,diagnosticCategoryName:()=>_b,diagnosticToString:()=>IQ,diagnosticsEqualityComparer:()=>vAe,directoryProbablyExists:()=>f1,directorySeparator:()=>ag,displayPart:()=>SE,displayPartsToString:()=>D1e,disposeEmitNodes:()=>Ku,documentSpansEqual:()=>Qrt,dumpTracingLegend:()=>jf,elementAt:()=>Cg,elideNodes:()=>cWt,emitDetachedComments:()=>GZe,emitFiles:()=>$et,emitFilesAndReportErrors:()=>IVe,emitFilesAndReportErrorsAndGetExitStatus:()=>Ptt,emitModuleKindIsNonNodeESM:()=>Wne,emitNewLineBeforeLeadingCommentOfPosition:()=>Uye,emitResolverSkipsTypeChecking:()=>qet,emitSkippedWithNoDiagnostics:()=>Itt,emptyArray:()=>E,emptyFileSystemEntries:()=>wbe,emptyMap:()=>N,emptyOptions:()=>VB,endsWith:()=>di,ensurePathIsNonModuleName:()=>Am,ensureScriptKind:()=>xAe,ensureTrailingDirectorySeparator:()=>hp,entityNameToString:()=>oy,enumerateInsertsAndDeletes:()=>q0,equalOwnProperties:()=>Hu,equateStringsCaseInsensitive:()=>Mp,equateStringsCaseSensitive:()=>MA,equateValues:()=>yg,escapeJsxAttributeString:()=>Wye,escapeLeadingUnderscores:()=>Ap,escapeNonAsciiString:()=>Ene,escapeSnippetText:()=>xP,escapeString:()=>YT,escapeTemplateSubstitution:()=>Vye,evaluatorResult:()=>$h,every:()=>ue,exclusivelyPrefixedNodeCoreModules:()=>jAe,executeCommandLine:()=>fnn,expandPreOrPostfixIncrementOrDecrementExpression:()=>i9e,explainFiles:()=>Gtt,explainIfFileIsRedirectAndImpliedFormat:()=>Ftt,exportAssignmentIsAlias:()=>Ine,expressionResultIsUnused:()=>SLe,extend:()=>OA,extensionFromPath:()=>tz,extensionIsTS:()=>PAe,extensionsNotSupportingExtensionlessResolution:()=>VAe,externalHelpersModuleNameText:()=>PD,factory:()=>me,fileExtensionIs:()=>aA,fileExtensionIsOneOf:()=>fu,fileIncludeReasonToDiagnostics:()=>Vtt,fileShouldUseJavaScriptRequire:()=>Ant,filter:()=>Me,filterMutate:()=>je,filterSemanticDiagnostics:()=>aVe,find:()=>de,findAncestor:()=>ji,findBestPatternMatch:()=>YA,findChildOfKind:()=>qd,findComputedPropertyNameCacheAssignment:()=>u9e,findConfigFile:()=>stt,findConstructorDeclaration:()=>zY,findContainingList:()=>PVe,findDiagnosticForNode:()=>BMt,findFirstNonJsxWhitespaceToken:()=>K5t,findIndex:()=>Se,findLast:()=>be,findLastIndex:()=>De,findListItemInfo:()=>U5t,findModifier:()=>Qie,findNextToken:()=>fQ,findPackageJson:()=>vMt,findPackageJsons:()=>int,findPrecedingMatchingToken:()=>YVe,findPrecedingToken:()=>Gm,findSuperStatementIndexPath:()=>H9e,findTokenOnLeftOfPosition:()=>Hde,findUseStrictPrologue:()=>T$e,first:()=>ma,firstDefined:()=>X,firstDefinedIterator:()=>ae,firstIterator:()=>vu,firstOrOnly:()=>cnt,firstOrUndefined:()=>Nc,firstOrUndefinedIterator:()=>iA,fixupCompilerOptions:()=>Tnt,flatMap:()=>er,flatMapIterator:()=>xt,flatMapToMutable:()=>vt,flatten:()=>Nr,flattenCommaList:()=>gWt,flattenDestructuringAssignment:()=>TU,flattenDestructuringBinding:()=>uQ,flattenDiagnosticMessageText:()=>wN,forEach:()=>F,forEachAncestor:()=>Ew,forEachAncestorDirectory:()=>pE,forEachAncestorDirectoryStoppingAtGlobalCache:()=>vN,forEachChild:()=>Lu,forEachChildRecursively:()=>Sz,forEachDynamicImportOrRequireCall:()=>$ne,forEachEmittedFile:()=>Uet,forEachEnclosingBlockScopeContainer:()=>Dge,forEachEntry:()=>Dh,forEachExternalModuleToImportFrom:()=>fnt,forEachImportClauseDeclaration:()=>fZe,forEachKey:()=>SB,forEachLeadingCommentRange:()=>GD,forEachNameInAccessChainWalkingLeft:()=>zZe,forEachNameOfDefaultExport:()=>IPe,forEachOptionsSyntaxByName:()=>zAe,forEachProjectReference:()=>gz,forEachPropertyAssignment:()=>WJ,forEachResolvedProjectReference:()=>tie,forEachReturnStatement:()=>yF,forEachRight:()=>Q,forEachTrailingCommentRange:()=>dF,forEachTsConfigPropArray:()=>zre,forEachUnique:()=>Jrt,forEachYieldExpression:()=>eZe,formatColorAndReset:()=>AQ,formatDiagnostic:()=>ltt,formatDiagnostics:()=>$tn,formatDiagnosticsWithColorAndContext:()=>E3t,formatGeneratedName:()=>M3,formatGeneratedNamePart:()=>Eie,formatLocation:()=>utt,formatMessage:()=>XY,formatStringFromArgs:()=>dN,formatting:()=>Im,generateDjb2Hash:()=>ry,generateTSConfig:()=>GWt,getAdjustedReferenceLocation:()=>Brt,getAdjustedRenameLocation:()=>OVe,getAliasDeclarationFromName:()=>Rye,getAllAccessorDeclarations:()=>BP,getAllDecoratorsOfClass:()=>Pet,getAllDecoratorsOfClassElement:()=>Q9e,getAllJSDocTags:()=>dJ,getAllJSDocTagsOfKind:()=>rye,getAllKeys:()=>mI,getAllProjectOutputs:()=>j9e,getAllSuperTypeNodes:()=>R7,getAllowImportingTsExtensions:()=>tLe,getAllowJSCompilerOption:()=>TF,getAllowSyntheticDefaultImports:()=>JY,getAncestor:()=>ML,getAnyExtensionFromPath:()=>gE,getAreDeclarationMapsEnabled:()=>BAe,getAssignedExpandoInitializer:()=>FY,getAssignedName:()=>CB,getAssignmentDeclarationKind:()=>nI,getAssignmentDeclarationPropertyAccessKind:()=>XJ,getAssignmentTargetKind:()=>QD,getAutomaticTypeDirectiveNames:()=>N9e,getBaseFileName:()=>gp,getBinaryOperatorPrecedence:()=>bne,getBuildInfo:()=>ett,getBuildInfoFileVersionMap:()=>Stt,getBuildInfoText:()=>g3t,getBuildOrderFromAnyBuildOrder:()=>$Ee,getBuilderCreationParameters:()=>gVe,getBuilderFileEmit:()=>HP,getCanonicalDiagnostic:()=>Fi,getCheckFlags:()=>iI,getClassExtendsHeritageElement:()=>OL,getClassLikeDeclarationOfSymbol:()=>AN,getCombinedLocalAndExportSymbolFlags:()=>sU,getCombinedModifierFlags:()=>Hc,getCombinedNodeFlags:()=>dm,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>ad,getCommentRange:()=>DB,getCommonSourceDirectory:()=>xde,getCommonSourceDirectoryOfConfig:()=>RU,getCompilerOptionValue:()=>K7,getConditions:()=>PP,getConfigFileParsingDiagnostics:()=>dQ,getConstantValue:()=>LLe,getContainerFlags:()=>met,getContainerNode:()=>kU,getContainingClass:()=>hC,getContainingClassExcludingClassDecorators:()=>Oge,getContainingClassStaticBlock:()=>sZe,getContainingFunction:()=>A1,getContainingFunctionDeclaration:()=>Wge,getContainingFunctionOrClassStaticBlock:()=>qre,getContainingNodeArray:()=>vLe,getContainingObjectLiteralElement:()=>k1e,getContextualTypeFromParent:()=>rPe,getContextualTypeFromParentOrAncestorTypeNode:()=>WVe,getDeclarationDiagnostics:()=>o3t,getDeclarationEmitExtensionForPath:()=>sAe,getDeclarationEmitOutputFilePath:()=>NZe,getDeclarationEmitOutputFilePathWorker:()=>wne,getDeclarationFileExtension:()=>A9e,getDeclarationFromName:()=>T7,getDeclarationModifierFlagsFromSymbol:()=>u2,getDeclarationOfKind:()=>Cp,getDeclarationsOfKind:()=>dge,getDeclaredExpandoInitializer:()=>E7,getDecorators:()=>Rb,getDefaultCompilerOptions:()=>kPe,getDefaultFormatCodeSettings:()=>NVe,getDefaultLibFileName:()=>Hs,getDefaultLibFilePath:()=>AYt,getDefaultLikeExportInfo:()=>fPe,getDefaultLikeExportNameFromDeclaration:()=>lnt,getDefaultResolutionModeForFileWorker:()=>oVe,getDiagnosticText:()=>Zb,getDiagnosticsWithinSpan:()=>wMt,getDirectoryPath:()=>Mo,getDirectoryToWatchFailedLookupLocation:()=>Ttt,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>U3t,getDocumentPositionMapper:()=>Ent,getDocumentSpansEqualityComparer:()=>Xrt,getESModuleInterop:()=>kw,getEditsForFileRename:()=>LMt,getEffectiveBaseTypeNode:()=>BB,getEffectiveConstraintOfTypeParameter:()=>n3,getEffectiveContainerForJSDocTemplateTag:()=>zge,getEffectiveImplementsTypeNodes:()=>jJ,getEffectiveInitializer:()=>one,getEffectiveJSDocHost:()=>WL,getEffectiveModifierFlags:()=>o_,getEffectiveModifierFlagsAlwaysIncludeJSDoc:()=>PZe,getEffectiveModifierFlagsNoCache:()=>zye,getEffectiveReturnTypeNode:()=>xb,getEffectiveSetAccessorTypeAnnotationNode:()=>Jye,getEffectiveTypeAnnotationNode:()=>kh,getEffectiveTypeParameterDeclarations:()=>ZD,getEffectiveTypeRoots:()=>mde,getElementOrPropertyAccessArgumentExpressionOrName:()=>jge,getElementOrPropertyAccessName:()=>YD,getElementsOfBindingOrAssignmentPattern:()=>bie,getEmitDeclarations:()=>Ly,getEmitFlags:()=>tA,getEmitHelpers:()=>jbe,getEmitModuleDetectionKind:()=>rLe,getEmitModuleFormatOfFileWorker:()=>Lde,getEmitModuleKind:()=>i0,getEmitModuleResolutionKind:()=>k_,getEmitScriptTarget:()=>Mg,getEmitStandardClassFields:()=>hbe,getEnclosingBlockScopeContainer:()=>tS,getEnclosingContainer:()=>f7,getEncodedSemanticClassifications:()=>Int,getEncodedSyntacticClassifications:()=>hnt,getEndLinePosition:()=>vY,getEntityNameFromTypeNode:()=>ene,getEntrypointsFromPackageJsonInfo:()=>det,getErrorCountForSummary:()=>pVe,getErrorSpanForNode:()=>qa,getErrorSummaryText:()=>ktt,getEscapedTextOfIdentifierOrLiteral:()=>qJ,getEscapedTextOfJsxAttributeName:()=>cz,getEscapedTextOfJsxNamespacedName:()=>oS,getExpandoInitializer:()=>VL,getExportAssignmentExpression:()=>hne,getExportInfoMap:()=>S1e,getExportNeedsImportStarHelper:()=>wOt,getExpressionAssociativity:()=>Zye,getExpressionPrecedence:()=>x7,getExternalHelpersModuleName:()=>uEe,getExternalModuleImportEqualsDeclarationExpression:()=>_7,getExternalModuleName:()=>LY,getExternalModuleNameFromDeclaration:()=>TZe,getExternalModuleNameFromPath:()=>Mye,getExternalModuleNameLiteral:()=>Ez,getExternalModuleRequireArgument:()=>Cye,getFallbackOptions:()=>QEe,getFileEmitOutput:()=>T3t,getFileMatcherPatterns:()=>kAe,getFileNamesFromConfigSpecs:()=>Ide,getFileWatcherEventKind:()=>qS,getFilesInErrorForSummary:()=>fVe,getFirstConstructorWithBody:()=>lN,getFirstIdentifier:()=>B0,getFirstNonSpaceCharacterPosition:()=>CMt,getFirstProjectOutput:()=>zet,getFixableErrorSpanExpression:()=>ont,getFormatCodeSettingsForWriting:()=>APe,getFullWidth:()=>DJ,getFunctionFlags:()=>SI,getHeritageClause:()=>mne,getHostSignatureFromJSDoc:()=>PL,getIdentifierAutoGenerate:()=>s$e,getIdentifierGeneratedImportReference:()=>HLe,getIdentifierTypeArguments:()=>G3,getImmediatelyInvokedFunctionExpression:()=>ZL,getImpliedNodeFormatForEmitWorker:()=>NU,getImpliedNodeFormatForFile:()=>JEe,getImpliedNodeFormatForFileWorker:()=>sVe,getImportNeedsImportDefaultHelper:()=>Zet,getImportNeedsImportStarHelper:()=>O9e,getIndentString:()=>iAe,getInferredLibraryNameResolveFrom:()=>iVe,getInitializedVariables:()=>iU,getInitializerOfBinaryExpression:()=>bye,getInitializerOfBindingOrAssignmentElement:()=>AEe,getInterfaceBaseTypeNodes:()=>N7,getInternalEmitFlags:()=>g1,getInvokedExpression:()=>Yge,getIsFileExcluded:()=>kMt,getIsolatedModules:()=>sS,getJSDocAugmentsTag:()=>K6,getJSDocClassTag:()=>bx,getJSDocCommentRanges:()=>dye,getJSDocCommentsAndTags:()=>Sye,getJSDocDeprecatedTag:()=>Kh,getJSDocDeprecatedTagNoCache:()=>i2,getJSDocEnumTag:()=>a1,getJSDocHost:()=>bP,getJSDocImplementsTags:()=>uY,getJSDocOverloadTags:()=>Bye,getJSDocOverrideTagNoCache:()=>Pd,getJSDocParameterTags:()=>vL,getJSDocParameterTagsNoCache:()=>uJ,getJSDocPrivateTag:()=>Es,getJSDocPrivateTagNoCache:()=>Aa,getJSDocProtectedTag:()=>ha,getJSDocProtectedTagNoCache:()=>Ua,getJSDocPublicTag:()=>_re,getJSDocPublicTagNoCache:()=>Ex,getJSDocReadonlyTag:()=>wc,getJSDocReadonlyTagNoCache:()=>hA,getJSDocReturnTag:()=>sv,getJSDocReturnType:()=>AJ,getJSDocRoot:()=>KJ,getJSDocSatisfiesExpressionType:()=>Lbe,getJSDocSatisfiesTag:()=>fF,getJSDocTags:()=>Sx,getJSDocTemplateTag:()=>oP,getJSDocThisTag:()=>Nb,getJSDocType:()=>eN,getJSDocTypeAliasName:()=>D$e,getJSDocTypeAssertionType:()=>_ie,getJSDocTypeParameterDeclarations:()=>uAe,getJSDocTypeParameterTags:()=>r3,getJSDocTypeParameterTagsNoCache:()=>U6,getJSDocTypeTag:()=>ov,getJSXImplicitImportBase:()=>One,getJSXRuntimeImport:()=>Mne,getJSXTransformEnabled:()=>RAe,getKeyForCompilerOptions:()=>aet,getLanguageVariant:()=>Zne,getLastChild:()=>ube,getLeadingCommentRanges:()=>fE,getLeadingCommentRangesOfNode:()=>Fge,getLeftmostAccessExpression:()=>oU,getLeftmostExpression:()=>aU,getLibFileNameFromLibReference:()=>Obe,getLibNameFromLibReference:()=>qY,getLibraryNameFromLibFileName:()=>ptt,getLineAndCharacterOfPosition:()=>Ra,getLineInfo:()=>xet,getLineOfLocalPosition:()=>Z7,getLineStartPositionForPosition:()=>PB,getLineStarts:()=>rn,getLinesBetweenPositionAndNextNonWhitespaceCharacter:()=>obe,getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter:()=>KZe,getLinesBetweenPositions:()=>ec,getLinesBetweenRangeEndAndRangeStart:()=>v3,getLinesBetweenRangeEndPositions:()=>UZe,getLiteralText:()=>Sge,getLocalNameForExternalImport:()=>yie,getLocalSymbolForExportDefault:()=>W7,getLocaleSpecificMessage:()=>Bu,getLocaleTimeString:()=>qEe,getMappedContextSpan:()=>Urt,getMappedDocumentSpan:()=>$Ve,getMappedLocation:()=>Jde,getMatchedFileSpec:()=>Ztt,getMatchedIncludeSpec:()=>Ltt,getMeaningFromDeclaration:()=>kVe,getMeaningFromLocation:()=>DU,getMembersOfDeclaration:()=>Zge,getModeForFileReference:()=>S3t,getModeForResolutionAtIndex:()=>srn,getModeForUsageLocation:()=>Att,getModifiedTime:()=>bb,getModifiers:()=>$R,getModuleInstanceState:()=>PF,getModuleNameStringLiteralAt:()=>KEe,getModuleSpecifierEndingPreference:()=>fLe,getModuleSpecifierResolverHost:()=>Prt,getNameForExportedSymbol:()=>lPe,getNameFromImportAttribute:()=>XAe,getNameFromIndexInfo:()=>kge,getNameFromPropertyName:()=>d1e,getNameOfAccessExpression:()=>gbe,getNameOfCompilerOptionValue:()=>y9e,getNameOfDeclaration:()=>Il,getNameOfExpando:()=>_ye,getNameOfJSDocTypedef:()=>pF,getNameOfScriptTarget:()=>TAe,getNameOrArgument:()=>cne,getNameTable:()=>$nt,getNamespaceDeclarationNode:()=>JJ,getNewLineCharacter:()=>uN,getNewLineKind:()=>E1e,getNewLineOrDefaultFromHost:()=>OF,getNewTargetContainer:()=>aZe,getNextJSDocCommentLocation:()=>vye,getNodeChildren:()=>b$e,getNodeForGeneratedName:()=>pEe,getNodeId:()=>rd,getNodeKind:()=>pQ,getNodeModifiers:()=>Yde,getNodeModulePathParts:()=>MAe,getNonAssignedNameOfDeclaration:()=>Cw,getNonAssignmentOperatorForCompoundAssignment:()=>Bde,getNonAugmentationDeclaration:()=>LJ,getNonDecoratorTokenPosOfNode:()=>Mre,getNonIncrementalBuildInfoRoots:()=>H3t,getNonModifierTokenPosOfNode:()=>Ege,getNormalizedAbsolutePath:()=>Xc,getNormalizedAbsolutePathWithoutRoot:()=>KR,getNormalizedPathComponents:()=>AB,getObjectFlags:()=>la,getOperatorAssociativity:()=>Lye,getOperatorPrecedence:()=>yne,getOptionFromName:()=>J$e,getOptionsForLibraryResolution:()=>cet,getOptionsNameMap:()=>vie,getOptionsSyntaxByArrayElementValue:()=>Mbe,getOptionsSyntaxByValue:()=>kLe,getOrCreateEmitNode:()=>c_,getOrUpdate:()=>cr,getOriginalNode:()=>Dd,getOriginalNodeId:()=>Wy,getOutputDeclarationFileName:()=>kde,getOutputDeclarationFileNameWorker:()=>Ket,getOutputExtension:()=>MEe,getOutputFileNames:()=>ztn,getOutputJSFileNameWorker:()=>jet,getOutputPathsFor:()=>Dde,getOwnEmitOutputFilePath:()=>RZe,getOwnKeys:()=>_g,getOwnValues:()=>Qh,getPackageJsonTypesVersionsPaths:()=>R9e,getPackageNameFromTypesPackageName:()=>bde,getPackageScopeForPath:()=>yde,getParameterSymbolFromJSDoc:()=>dne,getParentNodeInSpan:()=>f1e,getParseTreeNode:()=>$l,getParsedCommandLineOfConfigFile:()=>_Ee,getPathComponents:()=>Np,getPathFromPathComponents:()=>Dm,getPathUpdater:()=>_nt,getPathsBasePath:()=>oAe,getPatternFromSpec:()=>Ebe,getPendingEmitKindWithSeen:()=>uVe,getPositionOfLineAndCharacter:()=>th,getPossibleGenericSignatures:()=>Trt,getPossibleOriginalInputExtensionForExtension:()=>Hye,getPossibleOriginalInputPathWithoutChangingExt:()=>Yye,getPossibleTypeArgumentsInfo:()=>Rrt,getPreEmitDiagnostics:()=>qtn,getPrecedingNonSpaceCharacterPosition:()=>ePe,getPrivateIdentifier:()=>Wet,getProperties:()=>Vet,getProperty:()=>pu,getPropertyAssignmentAliasLikeExpression:()=>bZe,getPropertyNameForPropertyNameNode:()=>_3,getPropertyNameFromType:()=>A2,getPropertyNameOfBindingOrAssignmentElement:()=>N$e,getPropertySymbolFromBindingElement:()=>qVe,getPropertySymbolsFromContextualType:()=>GPe,getQuoteFromPreference:()=>Ort,getQuotePreference:()=>_1,getRangesWhere:()=>Fn,getRefactorContextSpan:()=>Vz,getReferencedFileLocation:()=>Zde,getRegexFromPattern:()=>zD,getRegularExpressionForWildcard:()=>j7,getRegularExpressionsForWildcards:()=>Hne,getRelativePathFromDirectory:()=>mp,getRelativePathFromFile:()=>i1,getRelativePathToDirectoryOrUrl:()=>Of,getRenameLocation:()=>h1e,getReplacementSpanForContextToken:()=>xrt,getResolutionDiagnostic:()=>mtt,getResolutionModeOverride:()=>Gie,getResolveJsonModule:()=>NP,getResolvePackageJsonExports:()=>U7,getResolvePackageJsonImports:()=>Vne,getResolvedExternalModuleName:()=>F7,getResolvedModuleFromResolution:()=>xL,getResolvedTypeReferenceDirectiveFromResolution:()=>c7,getRestIndicatorOfBindingOrAssignmentElement:()=>a9e,getRestParameterElementType:()=>pye,getRightMostAssignedExpression:()=>ane,getRootDeclaration:()=>Rw,getRootDirectoryOfResolutionCache:()=>K3t,getRootLength:()=>Wf,getScriptKind:()=>qrt,getScriptKindFromFileName:()=>GAe,getScriptTargetFeatures:()=>Hre,getSelectedEffectiveModifierFlags:()=>MY,getSelectedSyntacticModifierFlags:()=>LZe,getSemanticClassifications:()=>xMt,getSemanticJsxChildren:()=>$J,getSetAccessorTypeAnnotationNode:()=>kZe,getSetAccessorValueParameter:()=>L7,getSetExternalModuleIndicator:()=>Lne,getShebang:()=>mB,getSingleVariableOfVariableStatement:()=>m3,getSnapshotText:()=>Lz,getSnippetElement:()=>zbe,getSourceFileOfModule:()=>FJ,getSourceFileOfNode:()=>ms,getSourceFilePathInNewDir:()=>cAe,getSourceFileVersionAsHashFromText:()=>hVe,getSourceFilesToEmit:()=>aAe,getSourceMapRange:()=>XT,getSourceMapper:()=>KMt,getSourceTextOfNodeFromSourceFile:()=>mF,getSpanOfTokenAtPosition:()=>rs,getSpellingSuggestion:()=>Dr,getStartPositionOfLine:()=>OD,getStartPositionOfRange:()=>H7,getStartsOnNewLine:()=>D3,getStaticPropertiesAndClassStaticBlock:()=>Y9e,getStrictOptionValue:()=>a_,getStringComparer:()=>ld,getSubPatternFromSpec:()=>DAe,getSuperCallFromStatement:()=>M9e,getSuperContainer:()=>C7,getSupportedCodeFixes:()=>znt,getSupportedExtensions:()=>z7,getSupportedExtensionsWithJsonIfResolveJsonModule:()=>q7,getSwitchedType:()=>tnt,getSymbolId:()=>kg,getSymbolNameForPrivateIdentifier:()=>_ne,getSymbolTarget:()=>$rt,getSyntacticClassifications:()=>GMt,getSyntacticModifierFlags:()=>Nx,getSyntacticModifierFlagsNoCache:()=>qye,getSynthesizedDeepClone:()=>JA,getSynthesizedDeepCloneWithReplacements:()=>rie,getSynthesizedDeepClones:()=>o0,getSynthesizedDeepClonesWithReplacements:()=>qAe,getSyntheticLeadingComments:()=>k3,getSyntheticTrailingComments:()=>hU,getTargetLabel:()=>FVe,getTargetOfBindingOrAssignmentElement:()=>ZP,getTemporaryModuleResolutionState:()=>_de,getTextOfConstantValue:()=>vge,getTextOfIdentifierOrLiteral:()=>c2,getTextOfJSDocComment:()=>pJ,getTextOfJsxAttributeName:()=>xw,getTextOfJsxNamespacedName:()=>lz,getTextOfNode:()=>xp,getTextOfNodeFromSourceText:()=>TY,getTextOfPropertyName:()=>hP,getThisContainer:()=>r0,getThisParameter:()=>vP,getTokenAtPosition:()=>Jc,getTokenPosOfNode:()=>MD,getTokenSourceMapRange:()=>fz,getTouchingPropertyName:()=>Lb,getTouchingToken:()=>Hie,getTrailingCommentRanges:()=>n2,getTrailingSemicolonDeferringWriter:()=>Oye,getTransformers:()=>c3t,getTsBuildInfoEmitOutputFilePath:()=>U3,getTsConfigObjectLiteralExpression:()=>m7,getTsConfigPropArrayElementValue:()=>Pge,getTypeAnnotationNode:()=>xZe,getTypeArgumentOrTypeParameterList:()=>rMt,getTypeKeywordOfTypeOnlyImport:()=>Yrt,getTypeNode:()=>OLe,getTypeNodeIfAccessible:()=>qde,getTypeParameterFromJsDoc:()=>hZe,getTypeParameterOwner:()=>ye,getTypesPackageName:()=>F9e,getUILocale:()=>df,getUniqueName:()=>GU,getUniqueSymbolId:()=>mMt,getUseDefineForClassFields:()=>Pne,getWatchErrorSummaryDiagnosticMessage:()=>Dtt,getWatchFactory:()=>itt,group:()=>Yn,groupBy:()=>Ko,guessIndentation:()=>xre,handleNoEmitOptions:()=>htt,handleWatchOptionsConfigDirTemplateSubstitution:()=>E9e,hasAbstractModifier:()=>wP,hasAccessorModifier:()=>Nw,hasAmbientModifier:()=>jye,hasChangesInResolutions:()=>Pre,hasContextSensitiveParameters:()=>OAe,hasDecorators:()=>p1,hasDocComment:()=>eMt,hasDynamicName:()=>XD,hasEffectiveModifier:()=>Gb,hasEffectiveModifiers:()=>Kye,hasEffectiveReadonlyModifier:()=>b3,hasExtension:()=>E0,hasImplementationTSFileExtension:()=>dLe,hasIndexSignature:()=>ent,hasInferredType:()=>KAe,hasInitializer:()=>WT,hasInvalidEscape:()=>Pye,hasJSDocNodes:()=>Xm,hasJSDocParameterTags:()=>gJ,hasJSFileExtension:()=>pN,hasJsonModuleEmitEnabled:()=>wAe,hasOnlyExpressionInitializer:()=>l1,hasOverrideModifier:()=>Tne,hasPossibleExternalModuleReference:()=>Nge,hasProperty:()=>Da,hasPropertyAccessExpressionWithName:()=>s1e,hasQuestionToken:()=>VY,hasRecordedExternalHelpers:()=>$Pt,hasResolutionModeOverride:()=>RLe,hasRestParameter:()=>Gre,hasScopeMarker:()=>Db,hasStaticModifier:()=>zh,hasSyntacticModifier:()=>Ga,hasSyntacticModifiers:()=>ZZe,hasTSFileExtension:()=>w3,hasTabstop:()=>wLe,hasTrailingDirectorySeparator:()=>Jp,hasType:()=>If,hasTypeArguments:()=>Eqe,hasZeroOrOneAsteriskCharacter:()=>Cbe,hostGetCanonicalFileName:()=>JD,hostUsesCaseSensitiveFileNames:()=>y3,idText:()=>Vo,identifierIsThisKeyword:()=>Xye,identifierToKeywordKind:()=>iv,identity:()=>Fl,identitySourceMapConsumer:()=>Fet,ignoreSourceNewlines:()=>$be,ignoredPaths:()=>Qp,importFromModuleSpecifier:()=>v7,importSyntaxAffectsModuleResolution:()=>Ibe,indexOfAnyCharCode:()=>et,indexOfNode:()=>fP,indicesOf:()=>po,inferredTypesContainingFile:()=>Fde,injectClassNamedEvaluationHelperBlockIfMissing:()=>U9e,injectClassThisAssignmentIfMissing:()=>FOt,insertImports:()=>Hrt,insertSorted:()=>Gc,insertStatementAfterCustomPrologue:()=>FL,insertStatementAfterStandardPrologue:()=>yge,insertStatementsAfterCustomPrologue:()=>Wre,insertStatementsAfterStandardPrologue:()=>Sw,intersperse:()=>fe,intrinsicTagNameToString:()=>Vbe,introducesArgumentsExoticObject:()=>rZe,inverseJsxOptionMap:()=>mEe,isAbstractConstructorSymbol:()=>lbe,isAbstractModifier:()=>Xe,isAccessExpression:()=>_p,isAccessibilityModifier:()=>Drt,isAccessor:()=>yB,isAccessorModifier:()=>It,isAliasableExpression:()=>$ge,isAmbientModule:()=>s_,isAmbientPropertyDeclaration:()=>VJ,isAnyDirectorySeparator:()=>e0,isAnyImportOrBareOrAccessedRequire:()=>Rge,isAnyImportOrReExport:()=>DY,isAnyImportOrRequireStatement:()=>d7,isAnyImportSyntax:()=>IP,isAnySupportedFileExtension:()=>Uqe,isApplicableVersionedTypesKey:()=>REe,isArgumentExpressionOfElementAccess:()=>_rt,isArray:()=>Ki,isArrayBindingElement:()=>o3,isArrayBindingOrAssignmentElement:()=>EJ,isArrayBindingOrAssignmentPattern:()=>Bre,isArrayBindingPattern:()=>p2,isArrayLiteralExpression:()=>OI,isArrayLiteralOrObjectLiteralDestructuringPattern:()=>e9,isArrayTypeNode:()=>kF,isArrowFunction:()=>lA,isAsExpression:()=>Yd,isAssertClause:()=>xPt,isAssertEntry:()=>qqr,isAssertionExpression:()=>Ed,isAssertsKeyword:()=>J,isAssignmentDeclaration:()=>b7,isAssignmentExpression:()=>Jm,isAssignmentOperator:()=>UD,isAssignmentPattern:()=>CY,isAssignmentTarget:()=>bF,isAsteriskToken:()=>gie,isAsyncFunction:()=>D7,isAsyncModifier:()=>G,isAutoAccessorPropertyDeclaration:()=>t0,isAwaitExpression:()=>I1,isAwaitKeyword:()=>U,isBigIntLiteral:()=>eQ,isBinaryExpression:()=>fo,isBinaryLogicalOperator:()=>Rne,isBinaryOperatorToken:()=>aWt,isBindableObjectDefinePropertyCall:()=>f3,isBindableStaticAccessExpression:()=>yP,isBindableStaticElementAccessExpression:()=>Kge,isBindableStaticNameExpression:()=>I3,isBindingElement:()=>hg,isBindingElementOfBareOrAccessedRequire:()=>uZe,isBindingName:()=>RL,isBindingOrAssignmentElement:()=>_J,isBindingOrAssignmentPattern:()=>yJ,isBindingPattern:()=>Nu,isBlock:()=>$u,isBlockLike:()=>Pz,isBlockOrCatchScoped:()=>ZJ,isBlockScope:()=>PJ,isBlockScopedContainerTopLevel:()=>Tge,isBooleanLiteral:()=>hY,isBreakOrContinueStatement:()=>AY,isBreakStatement:()=>Kqr,isBuildCommand:()=>h5t,isBuildInfoFile:()=>l3t,isBuilderProgram:()=>xtt,isBundle:()=>LPt,isCallChain:()=>_B,isCallExpression:()=>Zl,isCallExpressionTarget:()=>prt,isCallLikeExpression:()=>hF,isCallLikeOrFunctionLikeExpression:()=>Tre,isCallOrNewExpression:()=>av,isCallOrNewExpressionTarget:()=>frt,isCallSignatureDeclaration:()=>wg,isCallToHelper:()=>qD,isCaseBlock:()=>ade,isCaseClause:()=>fie,isCaseKeyword:()=>Ks,isCaseOrDefaultClause:()=>RJ,isCatchClause:()=>iQ,isCatchClauseVariableDeclaration:()=>BLe,isCatchClauseVariableDeclarationOrBindingElement:()=>Yre,isCheckJsEnabledForFile:()=>rz,isCircularBuildOrder:()=>Fz,isClassDeclaration:()=>pm,isClassElement:()=>PI,isClassExpression:()=>vd,isClassInstanceProperty:()=>vre,isClassLike:()=>xa,isClassMemberModifier:()=>Sre,isClassNamedEvaluationHelperBlock:()=>kz,isClassOrTypeElement:()=>mY,isClassStaticBlockDeclaration:()=>fl,isClassThisAssignmentBlock:()=>Tde,isColonToken:()=>nEe,isCommaExpression:()=>lEe,isCommaListExpression:()=>sde,isCommaSequence:()=>Ade,isCommaToken:()=>rEe,isComment:()=>QVe,isCommonJsExportPropertyAssignment:()=>Lge,isCommonJsExportedExpression:()=>fye,isCompoundAssignment:()=>vde,isComputedNonLiteralName:()=>kY,isComputedPropertyName:()=>Un,isConciseBody:()=>r7,isConditionalExpression:()=>Lw,isConditionalTypeNode:()=>d2,isConstAssertion:()=>Pbe,isConstTypeReference:()=>s2,isConstructSignatureDeclaration:()=>em,isConstructorDeclaration:()=>Tc,isConstructorTypeNode:()=>$D,isContextualKeyword:()=>tAe,isContinueStatement:()=>Uqr,isCustomPrologue:()=>jre,isDebuggerStatement:()=>jqr,isDeclaration:()=>jh,isDeclarationBindingElement:()=>uP,isDeclarationFileName:()=>PC,isDeclarationName:()=>HT,isDeclarationNameOfEnumOrNamespace:()=>abe,isDeclarationReadonly:()=>hf,isDeclarationStatement:()=>uge,isDeclarationWithTypeParameterChildren:()=>Kre,isDeclarationWithTypeParameters:()=>Ure,isDecorator:()=>So,isDecoratorTarget:()=>H5t,isDefaultClause:()=>cde,isDefaultImport:()=>h3,isDefaultModifier:()=>w,isDefaultedExpandoInitializer:()=>gZe,isDeleteExpression:()=>GF,isDeleteTarget:()=>Tye,isDeprecatedDeclaration:()=>uPe,isDestructuringAssignment:()=>Dx,isDiskPathRoot:()=>cE,isDoStatement:()=>Jqr,isDocumentRegistryEntry:()=>v1e,isDotDotDotToken:()=>nde,isDottedName:()=>Dne,isDynamicName:()=>rAe,isEffectiveExternalModule:()=>g3,isEffectiveStrictModeSourceFile:()=>Jre,isElementAccessChain:()=>IF,isElementAccessExpression:()=>Yg,isEmittedFileOfProgram:()=>I3t,isEmptyArrayLiteral:()=>YZe,isEmptyBindingElement:()=>wr,isEmptyBindingPattern:()=>Ct,isEmptyObjectLiteral:()=>rbe,isEmptyStatement:()=>g$e,isEmptyStringLiteral:()=>mye,isEntityName:()=>fC,isEntityNameExpression:()=>Od,isEnumConst:()=>VA,isEnumDeclaration:()=>V3,isEnumMember:()=>LF,isEqualityOperatorKind:()=>nPe,isEqualsGreaterThanToken:()=>KLe,isExclamationToken:()=>Cz,isExcludedFile:()=>ZWt,isExclusivelyTypeOnlyImportOrExport:()=>gtt,isExpandoPropertyDeclaration:()=>jY,isExportAssignment:()=>Cf,isExportDeclaration:()=>Gh,isExportModifier:()=>y,isExportName:()=>s9e,isExportNamespaceAsDefaultDeclaration:()=>wY,isExportOrDefaultModifier:()=>dEe,isExportSpecifier:()=>R0,isExportsIdentifier:()=>p3,isExportsOrModuleExportsOrAlias:()=>cQ,isExpression:()=>un,isExpressionNode:()=>MT,isExpressionOfExternalModuleImportEqualsDeclaration:()=>X5t,isExpressionOfOptionalChainRoot:()=>gY,isExpressionStatement:()=>VC,isExpressionWithTypeArguments:()=>l_,isExpressionWithTypeArgumentsInClassExtendsClause:()=>dAe,isExternalModule:()=>xm,isExternalModuleAugmentation:()=>_F,isExternalModuleImportEqualsDeclaration:()=>LL,isExternalModuleIndicator:()=>PT,isExternalModuleNameRelative:()=>Xr,isExternalModuleReference:()=>ZF,isExternalModuleSymbol:()=>WD,isExternalOrCommonJsModule:()=>vl,isFileLevelReservedGeneratedIdentifier:()=>fY,isFileLevelUniqueName:()=>u7,isFileProbablyExternalModule:()=>IEe,isFirstDeclarationOfSymbolParameter:()=>Krt,isFixablePromiseHandler:()=>Bnt,isForInOrOfStatement:()=>DL,isForInStatement:()=>jLe,isForInitializer:()=>hE,isForOfStatement:()=>iEe,isForStatement:()=>L3,isFullSourceFile:()=>aN,isFunctionBlock:()=>mP,isFunctionBody:()=>n7,isFunctionDeclaration:()=>ih,isFunctionExpression:()=>UA,isFunctionExpressionOrArrowFunction:()=>RF,isFunctionLike:()=>bu,isFunctionLikeDeclaration:()=>kd,isFunctionLikeKind:()=>lP,isFunctionLikeOrClassStaticBlockDeclaration:()=>s3,isFunctionOrConstructorTypeNode:()=>oge,isFunctionOrModuleBlock:()=>CJ,isFunctionSymbol:()=>dZe,isFunctionTypeNode:()=>x_,isGeneratedIdentifier:()=>kp,isGeneratedPrivateIdentifier:()=>TL,isGetAccessor:()=>bB,isGetAccessorDeclaration:()=>Bg,isGetOrSetAccessorDeclaration:()=>fJ,isGlobalScopeAugmentation:()=>vB,isGlobalSourceFile:()=>fc,isGrammarError:()=>_ge,isHeritageClause:()=>h1,isHoistedFunction:()=>xge,isHoistedVariableStatement:()=>Gge,isIdentifier:()=>Ir,isIdentifierANonContextualKeyword:()=>kye,isIdentifierName:()=>yZe,isIdentifierOrThisTypeNode:()=>nWt,isIdentifierPart:()=>s1,isIdentifierStart:()=>bd,isIdentifierText:()=>Uh,isIdentifierTypePredicate:()=>nZe,isIdentifierTypeReference:()=>yLe,isIfStatement:()=>Z3,isIgnoredFileFromWildCardWatching:()=>YEe,isImplicitGlob:()=>bbe,isImportAttribute:()=>GPt,isImportAttributeName:()=>e7,isImportAttributes:()=>CU,isImportCall:()=>Up,isImportClause:()=>Vw,isImportDeclaration:()=>Mf,isImportEqualsDeclaration:()=>km,isImportKeyword:()=>an,isImportMeta:()=>uv,isImportOrExportSpecifier:()=>eS,isImportOrExportSpecifierName:()=>hMt,isImportSpecifier:()=>uy,isImportTypeAssertionContainer:()=>zqr,isImportTypeNode:()=>Um,isImportable:()=>pnt,isInComment:()=>$L,isInCompoundLikeAssignment:()=>qge,isInExpressionContext:()=>rne,isInJSDoc:()=>GY,isInJSFile:()=>wo,isInJSXText:()=>$5t,isInJsonFile:()=>Xge,isInNonReferenceComment:()=>sMt,isInReferenceComment:()=>iMt,isInRightSideOfInternalImportEqualsDeclaration:()=>xVe,isInString:()=>Zz,isInTemplateString:()=>wrt,isInTopLevelContext:()=>Mge,isInTypeQuery:()=>OY,isIncrementalBuildInfo:()=>jEe,isIncrementalBundleEmitBuildInfo:()=>L3t,isIncrementalCompilation:()=>DP,isIndexSignatureDeclaration:()=>w0,isIndexedAccessTypeNode:()=>Iv,isInferTypeNode:()=>jT,isInfinityOrNaNString:()=>oz,isInitializedProperty:()=>GEe,isInitializedVariable:()=>xne,isInsideJsxElement:()=>HVe,isInsideJsxElementOrAttribute:()=>q5t,isInsideNodeModules:()=>_1e,isInsideTemplateLiteral:()=>u1e,isInstanceOfExpression:()=>pAe,isInstantiatedModule:()=>Tet,isInterfaceDeclaration:()=>g_,isInternalDeclaration:()=>Fre,isInternalModuleImportEqualsDeclaration:()=>d3,isInternalName:()=>w$e,isIntersectionTypeNode:()=>mf,isIntrinsicJsxName:()=>eU,isIterationStatement:()=>VT,isJSDoc:()=>tR,isJSDocAllType:()=>WPt,isJSDocAugmentsTag:()=>bz,isJSDocAuthorTag:()=>r$r,isJSDocCallbackTag:()=>f$e,isJSDocClassTag:()=>MPt,isJSDocCommentContainingNode:()=>i7,isJSDocConstructSignature:()=>PY,isJSDocDeprecatedTag:()=>_$e,isJSDocEnumTag:()=>oEe,isJSDocFunctionType:()=>hie,isJSDocImplementsTag:()=>r9e,isJSDocImportTag:()=>SN,isJSDocIndexSignature:()=>Uge,isJSDocLikeText:()=>Z$e,isJSDocLink:()=>VPt,isJSDocLinkCode:()=>PPt,isJSDocLinkLike:()=>Tx,isJSDocLinkPlain:()=>e$r,isJSDocMemberName:()=>O3,isJSDocNameReference:()=>lde,isJSDocNamepathType:()=>t$r,isJSDocNamespaceBody:()=>oye,isJSDocNode:()=>l3,isJSDocNonNullableType:()=>qLe,isJSDocNullableType:()=>Iie,isJSDocOptionalParameter:()=>HAe,isJSDocOptionalType:()=>p$e,isJSDocOverloadTag:()=>mie,isJSDocOverrideTag:()=>e9e,isJSDocParameterTag:()=>cS,isJSDocPrivateTag:()=>h$e,isJSDocPropertyLikeTag:()=>dY,isJSDocPropertyTag:()=>HPt,isJSDocProtectedTag:()=>m$e,isJSDocPublicTag:()=>I$e,isJSDocReadonlyTag:()=>C$e,isJSDocReturnTag:()=>t9e,isJSDocSatisfiesExpression:()=>Zbe,isJSDocSatisfiesTag:()=>n9e,isJSDocSeeTag:()=>n$r,isJSDocSignature:()=>qL,isJSDocTag:()=>u3,isJSDocTemplateTag:()=>ZB,isJSDocThisTag:()=>y$e,isJSDocThrowsTag:()=>s$r,isJSDocTypeAlias:()=>iS,isJSDocTypeAssertion:()=>sQ,isJSDocTypeExpression:()=>W3,isJSDocTypeLiteral:()=>yU,isJSDocTypeTag:()=>ude,isJSDocTypedefTag:()=>bU,isJSDocUnknownTag:()=>i$r,isJSDocUnknownType:()=>OPt,isJSDocVariadicType:()=>$Le,isJSXTagName:()=>YJ,isJsonEqual:()=>WAe,isJsonSourceFile:()=>Zu,isJsxAttribute:()=>EN,isJsxAttributeLike:()=>wJ,isJsxAttributeName:()=>TLe,isJsxAttributes:()=>nQ,isJsxCallLike:()=>c3,isJsxChild:()=>BJ,isJsxClosingElement:()=>rQ,isJsxClosingFragment:()=>ZPt,isJsxElement:()=>bN,isJsxExpression:()=>pie,isJsxFragment:()=>P3,isJsxNamespacedName:()=>eR,isJsxOpeningElement:()=>$T,isJsxOpeningFragment:()=>Pw,isJsxOpeningLikeElement:()=>eI,isJsxOpeningLikeElementTagName:()=>Y5t,isJsxSelfClosingElement:()=>_U,isJsxSpreadAttribute:()=>yz,isJsxTagNameExpression:()=>kL,isJsxText:()=>KL,isJumpStatementTarget:()=>o1e,isKeyword:()=>v0,isKeywordOrPunctuation:()=>eAe,isKnownSymbol:()=>k7,isLabelName:()=>mrt,isLabelOfLabeledStatement:()=>hrt,isLabeledStatement:()=>FP,isLateVisibilityPaintedStatement:()=>p7,isLeftHandSideExpression:()=>D_,isLet:()=>rS,isLineBreak:()=>Cl,isLiteralComputedPropertyDeclarationName:()=>fne,isLiteralExpression:()=>wL,isLiteralExpressionOfObject:()=>bre,isLiteralImportTypeNode:()=>ky,isLiteralKind:()=>pY,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>ZVe,isLiteralTypeLiteral:()=>age,isLiteralTypeNode:()=>EE,isLocalName:()=>VF,isLogicalOperator:()=>OZe,isLogicalOrCoalescingAssignmentExpression:()=>gAe,isLogicalOrCoalescingAssignmentOperator:()=>V7,isLogicalOrCoalescingBinaryExpression:()=>Nne,isLogicalOrCoalescingBinaryOperator:()=>AAe,isMappedTypeNode:()=>GB,isMemberName:()=>_w,isMetaProperty:()=>Du,isMethodDeclaration:()=>uu,isMethodOrAccessor:()=>NL,isMethodSignature:()=>hl,isMinusToken:()=>ide,isMissingDeclaration:()=>$qr,isMissingPackageJsonInfo:()=>JWt,isModifier:()=>Ig,isModifierKind:()=>VD,isModifierLike:()=>dp,isModuleAugmentationExternal:()=>Xre,isModuleBlock:()=>_N,isModuleBody:()=>cge,isModuleDeclaration:()=>xh,isModuleExportName:()=>zLe,isModuleExportsAccessExpression:()=>cN,isModuleIdentifier:()=>_P,isModuleName:()=>oWt,isModuleOrEnumDeclaration:()=>a3,isModuleReference:()=>yY,isModuleSpecifierLike:()=>zVe,isModuleWithStringLiteralName:()=>RY,isNameOfFunctionDeclaration:()=>brt,isNameOfModuleDeclaration:()=>yrt,isNamedDeclaration:()=>rh,isNamedEvaluation:()=>kb,isNamedEvaluationSource:()=>xye,isNamedExportBindings:()=>yre,isNamedExports:()=>mv,isNamedImportBindings:()=>wx,isNamedImports:()=>yN,isNamedImportsOrExports:()=>Gne,isNamedTupleMember:()=>KT,isNamespaceBody:()=>Nre,isNamespaceExport:()=>tk,isNamespaceExportDeclaration:()=>sEe,isNamespaceImport:()=>Zx,isNamespaceReexportDeclaration:()=>lZe,isNewExpression:()=>f2,isNewExpressionTarget:()=>Ode,isNewScopeNode:()=>eie,isNoSubstitutionTemplateLiteral:()=>GP,isNodeArray:()=>tN,isNodeArrayMultiLine:()=>hAe,isNodeDescendantOf:()=>EP,isNodeKind:()=>z6,isNodeLikeSystem:()=>Mm,isNodeModulesDirectory:()=>Vd,isNodeWithPossibleHoistedDeclaration:()=>_Ze,isNonContextualKeyword:()=>Dye,isNonGlobalAmbientModule:()=>Qre,isNonNullAccess:()=>YAe,isNonNullChain:()=>hJ,isNonNullExpression:()=>hv,isNonStaticMethodOrAccessorWithPrivateName:()=>TOt,isNotEmittedStatement:()=>FPt,isNullishCoalesce:()=>IJ,isNumber:()=>ws,isNumericLiteral:()=>mC,isNumericLiteralName:()=>IN,isObjectBindingElementWithoutPropertyName:()=>p1e,isObjectBindingOrAssignmentElement:()=>gP,isObjectBindingOrAssignmentPattern:()=>bJ,isObjectBindingPattern:()=>Km,isObjectLiteralElement:()=>bY,isObjectLiteralElementLike:()=>yw,isObjectLiteralExpression:()=>og,isObjectLiteralMethod:()=>a2,isObjectLiteralOrClassExpressionMethodOrAccessor:()=>Vge,isObjectTypeDeclaration:()=>YY,isOmittedExpression:()=>yp,isOptionalChain:()=>GC,isOptionalChainRoot:()=>aP,isOptionalDeclaration:()=>RB,isOptionalJSDocPropertyLikeTag:()=>jne,isOptionalTypeNode:()=>jL,isOuterExpression:()=>o9e,isOutermostOptionalChain:()=>i3,isOverrideModifier:()=>bt,isPackageJsonInfo:()=>D9e,isPackedArrayLiteral:()=>Gbe,isParameter:()=>Si,isParameterPropertyDeclaration:()=>Ve,isParameterPropertyModifier:()=>IY,isParenthesizedExpression:()=>gI,isParenthesizedTypeNode:()=>fv,isParseTreeNode:()=>SL,isPartOfParameterDeclaration:()=>HL,isPartOfTypeNode:()=>ww,isPartOfTypeOnlyImportOrExportDeclaration:()=>sge,isPartOfTypeQuery:()=>Qge,isPartiallyEmittedExpression:()=>ly,isPatternMatch:()=>jd,isPinnedComment:()=>g7,isPlainJsFile:()=>SY,isPlusToken:()=>mz,isPossiblyTypeArgumentPosition:()=>l1e,isPostfixUnaryExpression:()=>ek,isPrefixUnaryExpression:()=>T0,isPrimitiveLiteralValue:()=>uz,isPrivateIdentifier:()=>p,isPrivateIdentifierClassElementDeclaration:()=>pC,isPrivateIdentifierPropertyAccessExpression:()=>cP,isPrivateIdentifierSymbol:()=>SZe,isProgramUptoDate:()=>ftt,isPrologueDirective:()=>nS,isPropertyAccessChain:()=>vx,isPropertyAccessEntityNameExpression:()=>BF,isPropertyAccessExpression:()=>jo,isPropertyAccessOrQualifiedName:()=>SJ,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>wre,isPropertyAssignment:()=>fm,isPropertyDeclaration:()=>pi,isPropertyName:()=>VI,isPropertyNameLiteral:()=>Tw,isPropertySignature:()=>ss,isPrototypeAccess:()=>wF,isPrototypePropertyAssignment:()=>lne,isPunctuation:()=>Nye,isPushOrUnshiftIdentifier:()=>Gye,isQualifiedName:()=>zi,isQuestionDotToken:()=>Aie,isQuestionOrExclamationToken:()=>rWt,isQuestionOrPlusOrMinusToken:()=>sWt,isQuestionToken:()=>UT,isReadonlyKeyword:()=>le,isReadonlyKeywordOrPlusOrMinusToken:()=>iWt,isRecognizedTripleSlashComment:()=>Ore,isReferenceFileLocation:()=>Fie,isReferencedFile:()=>K3,isRegularExpressionLiteral:()=>tEe,isRequireCall:()=>ay,isRequireVariableStatement:()=>nne,isRestParameter:()=>EB,isRestTypeNode:()=>zL,isReturnStatement:()=>I2,isReturnStatementWithFixablePromiseHandler:()=>mPe,isRightSideOfAccessExpression:()=>tbe,isRightSideOfInstanceofExpression:()=>HZe,isRightSideOfPropertyAccess:()=>Wie,isRightSideOfQualifiedName:()=>Q5t,isRightSideOfQualifiedNameOrPropertyAccess:()=>P7,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>MZe,isRootedDiskPath:()=>Xp,isSameEntityName:()=>QJ,isSatisfiesExpression:()=>Qg,isSemicolonClassElement:()=>DPt,isSetAccessor:()=>cv,isSetAccessorDeclaration:()=>Dg,isShiftOperatorOrHigher:()=>x$e,isShorthandAmbientModuleSymbol:()=>NY,isShorthandPropertyAssignment:()=>a0,isSideEffectImport:()=>Wbe,isSignedNumericLiteral:()=>Cne,isSimpleCopiableExpression:()=>lQ,isSimpleInlineableExpression:()=>BN,isSimpleParameterList:()=>FEe,isSingleOrDoubleQuote:()=>ine,isSolutionConfig:()=>ret,isSourceElement:()=>NLe,isSourceFile:()=>ll,isSourceFileFromLibrary:()=>zie,isSourceFileJS:()=>n0,isSourceFileNotJson:()=>Jge,isSourceMapping:()=>vOt,isSpecialPropertyDeclaration:()=>Eye,isSpreadAssignment:()=>Lx,isSpreadElement:()=>of,isStatement:()=>Lc,isStatementButNotDeclaration:()=>vJ,isStatementOrBlock:()=>kre,isStatementWithLocals:()=>mge,isStatic:()=>cg,isStaticModifier:()=>Ge,isString:()=>Xs,isStringANonContextualKeyword:()=>WY,isStringAndEmptyAnonymousObjectIntersection:()=>nMt,isStringDoubleQuoted:()=>sne,isStringLiteral:()=>Zg,isStringLiteralLike:()=>mA,isStringLiteralOrJsxExpression:()=>TJ,isStringLiteralOrTemplate:()=>yMt,isStringOrNumericLiteralLike:()=>d1,isStringOrRegularExpressionOrTemplateLiteral:()=>Nrt,isStringTextContainingNode:()=>Ere,isSuperCall:()=>Dy,isSuperKeyword:()=>rr,isSuperProperty:()=>xy,isSupportedSourceFileName:()=>Bbe,isSwitchStatement:()=>ode,isSyntaxList:()=>Cie,isSyntheticExpression:()=>F3,isSyntheticReference:()=>_z,isTagName:()=>Crt,isTaggedTemplateExpression:()=>MI,isTaggedTemplateTag:()=>M5t,isTemplateExpression:()=>FF,isTemplateHead:()=>tQ,isTemplateLiteral:()=>AP,isTemplateLiteralKind:()=>LD,isTemplateLiteralToken:()=>ige,isTemplateLiteralTypeNode:()=>zT,isTemplateLiteralTypeSpan:()=>mN,isTemplateMiddle:()=>uie,isTemplateMiddleOrTemplateTail:()=>$6,isTemplateSpan:()=>die,isTemplateTail:()=>rde,isTextWhiteSpaceLike:()=>lMt,isThis:()=>Oie,isThisContainerOrFunctionBlock:()=>oZe,isThisIdentifier:()=>vF,isThisInTypeQuery:()=>YL,isThisInitializedDeclaration:()=>Hge,isThisInitializedObjectBindingExpression:()=>cZe,isThisProperty:()=>$re,isThisTypeNode:()=>Fx,isThisTypeParameter:()=>az,isThisTypePredicate:()=>iZe,isThrowStatement:()=>d$e,isToken:()=>BL,isTokenKind:()=>q6,isTraceEnabled:()=>VP,isTransientSymbol:()=>bw,isTrivia:()=>zJ,isTryStatement:()=>mU,isTupleTypeNode:()=>Zw,isTypeAlias:()=>gne,isTypeAliasDeclaration:()=>FB,isTypeAssertionExpression:()=>xF,isTypeDeclaration:()=>KY,isTypeElement:()=>Bx,isTypeKeyword:()=>Qde,isTypeKeywordTokenOrIdentifier:()=>UVe,isTypeLiteralNode:()=>mh,isTypeNode:()=>uc,isTypeNodeKind:()=>bAe,isTypeOfExpression:()=>CN,isTypeOnlyExportDeclaration:()=>mJ,isTypeOnlyImportDeclaration:()=>rN,isTypeOnlyImportOrExportDeclaration:()=>nN,isTypeOperatorNode:()=>xB,isTypeParameterDeclaration:()=>Ds,isTypePredicateNode:()=>bE,isTypeQueryNode:()=>Fw,isTypeReferenceNode:()=>nh,isTypeReferenceType:()=>s7,isTypeUsableAsPropertyName:()=>g2,isUMDExportSymbol:()=>yAe,isUnaryExpression:()=>Rre,isUnaryExpressionWithWrite:()=>iN,isUnicodeIdentifierStart:()=>ft,isUnionTypeNode:()=>aS,isUrl:()=>n_,isValidBigIntString:()=>Jne,isValidESSymbolDeclaration:()=>tZe,isValidTypeOnlyAliasUseSite:()=>JL,isValueSignatureDeclaration:()=>C3,isVarAwaitUsing:()=>Sd,isVarConst:()=>rI,isVarConstLike:()=>OT,isVarUsing:()=>tI,isVariableDeclaration:()=>nc,isVariableDeclarationInVariableStatement:()=>h7,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>CP,isVariableDeclarationInitializedToRequire:()=>y7,isVariableDeclarationList:()=>u_,isVariableLike:()=>I7,isVariableStatement:()=>Ch,isVoidExpression:()=>qT,isWatchSet:()=>cbe,isWhileStatement:()=>A$e,isWhiteSpaceLike:()=>dc,isWhiteSpaceSingleLine:()=>Iu,isWithStatement:()=>kPt,isWriteAccess:()=>B3,isWriteOnlyAccess:()=>CAe,isYieldExpression:()=>Hd,jsxModeNeedsExplicitImport:()=>gnt,keywordPart:()=>y1,last:()=>Ei,lastOrUndefined:()=>li,length:()=>B,libMap:()=>O$e,libs:()=>d9e,lineBreakPart:()=>Jie,loadModuleFromGlobalCache:()=>aOt,loadWithModeAwareCache:()=>XEe,makeIdentifierFromModuleName:()=>vw,makeImport:()=>QP,makeStringLiteral:()=>Xde,mangleScopedPackageName:()=>Nie,map:()=>At,mapAllOrFail:()=>qt,mapDefined:()=>Xt,mapDefinedIterator:()=>lr,mapEntries:()=>ke,mapIterator:()=>Yt,mapOneOrMany:()=>ant,mapToDisplayParts:()=>XP,matchFiles:()=>Sbe,matchPatternOrExact:()=>Tbe,matchedText:()=>pw,matchesExclude:()=>B9e,matchesExcludeWorker:()=>w9e,maxBy:()=>ls,maybeBind:()=>$i,maybeSetLocalizedDiagnosticMessages:()=>$Ze,memoize:()=>FA,memoizeOne:()=>ZA,min:()=>oa,minAndMax:()=>mLe,missingFileModifiedTime:()=>Rh,modifierToFlag:()=>HY,modifiersToFlags:()=>Dw,moduleExportNameIsDefault:()=>lv,moduleExportNameTextEscaped:()=>CF,moduleExportNameTextUnescaped:()=>HD,moduleOptionDeclaration:()=>mWt,moduleResolutionIsEqualTo:()=>Ige,moduleResolutionNameAndModeGetter:()=>rVe,moduleResolutionOptionDeclarations:()=>H$e,moduleResolutionSupportsPackageJsonExportsAndImports:()=>lU,moduleResolutionUsesNodeModules:()=>KVe,moduleSpecifierToValidIdentifier:()=>b1e,moduleSpecifiers:()=>WF,moduleSupportsImportAttributes:()=>sLe,moduleSymbolToValidIdentifier:()=>y1e,moveEmitHelpers:()=>PLe,moveRangeEnd:()=>IAe,moveRangePastDecorators:()=>jD,moveRangePastModifiers:()=>Av,moveRangePos:()=>KD,moveSyntheticComments:()=>ZLe,mutateMap:()=>Q7,mutateMapSkippingNewValues:()=>gN,needsParentheses:()=>tPe,needsScopeMarker:()=>t7,newCaseClauseTracker:()=>dPe,newPrivateEnvironment:()=>NOt,noEmitNotification:()=>PEe,noEmitSubstitution:()=>Nde,noTransformers:()=>a3t,noTruncationMaximumTruncationLength:()=>Lre,nodeCanBeDecorated:()=>OJ,nodeCoreModules:()=>dU,nodeHasName:()=>t3,nodeIsDecorated:()=>MJ,nodeIsMissing:()=>sf,nodeIsPresent:()=>u1,nodeIsSynthesized:()=>sp,nodeModuleNameResolver:()=>qWt,nodeModulesPathPart:()=>Vx,nodeNextJsonConfigResolver:()=>$Wt,nodeOrChildIsDecorated:()=>tne,nodeOverlapsWithStartEnd:()=>LVe,nodePosToString:()=>Cge,nodeSeenTracker:()=>Yie,nodeStartsNewLexicalEnvironment:()=>Fye,noop:()=>Dc,noopFileWatcher:()=>Vie,normalizePath:()=>iu,normalizeSlashes:()=>Dp,normalizeSpans:()=>EI,not:()=>uC,notImplemented:()=>il,notImplementedResolver:()=>A3t,nullNodeConverters:()=>Qbe,nullParenthesizerRules:()=>Ybe,nullTransformationContext:()=>OEe,objectAllocator:()=>ZC,operatorPart:()=>Ude,optionDeclarations:()=>Ww,optionMapToObject:()=>_9e,optionsAffectingProgramStructure:()=>bWt,optionsForBuild:()=>Q$e,optionsForWatch:()=>wz,optionsHaveChanges:()=>S0,or:()=>Hp,orderedRemoveItem:()=>Ql,orderedRemoveItemAt:()=>LA,packageIdToPackageName:()=>xJ,packageIdToString:()=>oN,parameterIsThisKeyword:()=>SF,parameterNamePart:()=>gMt,parseBaseNodeFactory:()=>AWt,parseBigInt:()=>_Le,parseBuildCommand:()=>NWt,parseCommandLine:()=>TWt,parseCommandLineWorker:()=>X$e,parseConfigFileTextToJson:()=>U$e,parseConfigFileWithSystem:()=>z3t,parseConfigHostFromCompilerHostLike:()=>cVe,parseCustomTypeOption:()=>h9e,parseIsolatedEntityName:()=>Bz,parseIsolatedJSDocComment:()=>pWt,parseJSDocTypeExpressionForTests:()=>R$r,parseJsonConfigFileContent:()=>sen,parseJsonSourceFileConfigFileContent:()=>EEe,parseJsonText:()=>hEe,parseListTypeOption:()=>BWt,parseNodeFactory:()=>H3,parseNodeModuleFromPath:()=>wEe,parsePackageName:()=>TEe,parsePseudoBigInt:()=>nz,parseValidBigInt:()=>kbe,pasteEdits:()=>ust,patchWriteFileEnsuringDirectory:()=>e2,pathContainsNodeModules:()=>WP,pathIsAbsolute:()=>lE,pathIsBareSpecifier:()=>Xh,pathIsRelative:()=>Ip,patternText:()=>j1,performIncrementalCompilation:()=>q3t,performance:()=>hb,positionBelongsToNode:()=>Ert,positionIsASICandidate:()=>iPe,positionIsSynthesized:()=>wB,positionsAreOnSameLine:()=>yE,preProcessFile:()=>Iin,probablyUsesSemicolons:()=>C1e,processCommentPragmas:()=>P$e,processPragmasIntoFields:()=>W$e,processTaggedTemplateExpression:()=>Het,programContainsEsModules:()=>aMt,programContainsModules:()=>oMt,projectReferenceIsEqualTo:()=>Vre,propertyNamePart:()=>AMt,pseudoBigIntToString:()=>kP,punctuationPart:()=>k0,pushIfUnique:()=>Qi,quote:()=>zde,quotePreferenceFromString:()=>Wrt,rangeContainsPosition:()=>Mie,rangeContainsPositionExclusive:()=>a1e,rangeContainsRange:()=>cy,rangeContainsRangeExclusive:()=>J5t,rangeContainsStartEnd:()=>c1e,rangeEndIsOnSameLineAsRangeStart:()=>kne,rangeEndPositionsAreOnSameLine:()=>XZe,rangeEquals:()=>gc,rangeIsOnSingleLine:()=>S3,rangeOfNode:()=>Nbe,rangeOfTypeParameters:()=>Dbe,rangeOverlapsWithStartEnd:()=>Mde,rangeStartIsOnSameLineAsRangeEnd:()=>JZe,rangeStartPositionsAreOnSameLine:()=>M7,readBuilderProgram:()=>CVe,readConfigFile:()=>yEe,readJson:()=>E3,readJsonConfigFile:()=>DWt,readJsonOrUndefined:()=>sbe,reduceEachLeadingCommentRange:()=>EL,reduceEachTrailingCommentRange:()=>ff,reduceLeft:()=>Ul,reduceLeftIterator:()=>ne,reducePathComponents:()=>t2,refactor:()=>Oz,regExpEscape:()=>Hqe,regularExpressionFlagToCharacterCode:()=>Ho,relativeComplement:()=>Wr,removeAllComments:()=>pz,removeEmitHelper:()=>i$e,removeExtension:()=>Xne,removeFileExtension:()=>s0,removeIgnoredPath:()=>AVe,removeMinAndVersionNumbers:()=>us,removePrefix:()=>Nm,removeSuffix:()=>aa,removeTrailingDirectorySeparator:()=>ny,repeatString:()=>A1e,replaceElement:()=>Yl,replaceFirstStar:()=>R3,resolutionExtensionIsTSOrJson:()=>ez,resolveConfigFileProjectName:()=>Jtt,resolveJSModule:()=>KWt,resolveLibrary:()=>x9e,resolveModuleName:()=>BU,resolveModuleNameFromCache:()=>Len,resolvePackageNameToPackageJson:()=>oet,resolvePath:()=>AE,resolveProjectReferencePath:()=>xz,resolveTripleslashReference:()=>ott,resolveTypeReferenceDirective:()=>QWt,resolvingEmptyArray:()=>Zre,returnFalse:()=>As,returnNoopFileWatcher:()=>Vde,returnTrue:()=>Tf,returnUndefined:()=>cm,returnsPromise:()=>vnt,rewriteModuleSpecifier:()=>Nz,sameFlatMap:()=>Zr,sameMap:()=>Tr,sameMapping:()=>wtn,scanTokenAtPosition:()=>qs,scanner:()=>A_,semanticDiagnosticsOptionDeclarations:()=>CWt,serializeCompilerOptions:()=>$$e,server:()=>Cfn,servicesVersion:()=>son,setCommentRange:()=>hh,setConfigFileInOptions:()=>eet,setConstantValue:()=>VLe,setEmitFlags:()=>ti,setGetSourceFileAsHashVersioned:()=>mVe,setIdentifierAutoGenerate:()=>oie,setIdentifierGeneratedImportReference:()=>MLe,setIdentifierTypeArguments:()=>xx,setInternalEmitFlags:()=>sie,setLocalizedDiagnosticMessages:()=>cU,setNodeChildren:()=>YPt,setNodeFlags:()=>ELe,setObjectAllocator:()=>qZe,setOriginalNode:()=>ua,setParent:()=>XA,setParentRecursive:()=>UL,setPrivateIdentifier:()=>wU,setSnippetElement:()=>qbe,setSourceMapRange:()=>Hg,setStackTraceLimit:()=>xT,setStartsOnNewLine:()=>Md,setSyntheticLeadingComments:()=>kB,setSyntheticTrailingComments:()=>x3,setSys:()=>bI,setSysLog:()=>xC,setTextRange:()=>gn,setTextRangeEnd:()=>AU,setTextRangePos:()=>iz,setTextRangePosEnd:()=>TB,setTextRangePosWidth:()=>xbe,setTokenSourceMapRange:()=>Kbe,setTypeNode:()=>WLe,setUILocale:()=>Zs,setValueDeclaration:()=>S7,shouldAllowImportingTsExtension:()=>Die,shouldPreserveConstEnums:()=>Fb,shouldRewriteModuleSpecifier:()=>une,shouldUseUriStyleNodeCoreModules:()=>gPe,showModuleSpecifier:()=>jZe,signatureHasRestParameter:()=>D0,signatureToDisplayParts:()=>zrt,single:()=>Xa,singleElementArray:()=>J_,singleIterator:()=>qr,singleOrMany:()=>ac,singleOrUndefined:()=>Ps,skipAlias:()=>FC,skipConstraint:()=>Lrt,skipOuterExpressions:()=>HI,skipParentheses:()=>QA,skipPartiallyEmittedExpressions:()=>o2,skipTrivia:()=>Yu,skipTypeChecking:()=>T3,skipTypeCheckingIgnoringNoCheck:()=>CLe,skipTypeParentheses:()=>w7,skipWhile:()=>cp,sliceAfter:()=>Rbe,some:()=>jt,sortAndDeduplicate:()=>cl,sortAndDeduplicateDiagnostics:()=>ui,sourceFileAffectingCompilerOptions:()=>Y$e,sourceFileMayBeEmitted:()=>SP,sourceMapCommentRegExp:()=>Det,sourceMapCommentRegExpDontCareLineStart:()=>bOt,spacePart:()=>BI,spanMap:()=>_n,startEndContainsRange:()=>mAe,startEndOverlapsWithStartEnd:()=>VVe,startOnNewLine:()=>N0,startTracing:()=>fd,startsWith:()=>Ac,startsWithDirectory:()=>$S,startsWithUnderscore:()=>unt,startsWithUseStrict:()=>zPt,stringContainsAt:()=>TMt,stringToToken:()=>Ta,stripQuotes:()=>l2,supportedDeclarationExtensions:()=>LAe,supportedJSExtensionsFlat:()=>uU,supportedLocaleDirectories:()=>nv,supportedTSExtensionsFlat:()=>vbe,supportedTSImplementationExtensions:()=>Yne,suppressLeadingAndTrailingTrivia:()=>Vy,suppressLeadingTrivia:()=>Hbe,suppressTrailingTrivia:()=>xLe,symbolEscapedNameNoDefault:()=>jVe,symbolName:()=>nf,symbolNameNoDefault:()=>Mrt,symbolToDisplayParts:()=>Kde,sys:()=>yd,sysLog:()=>Ih,tagNamesAreEquivalent:()=>Q3,takeWhile:()=>t_,targetOptionDeclaration:()=>M$e,targetToLibMap:()=>Is,testFormatSettings:()=>Vnn,textChangeRangeIsUnchanged:()=>sy,textChangeRangeNewSpan:()=>qR,textChanges:()=>xo,textOrKeywordPart:()=>jrt,textPart:()=>gS,textRangeContainsPositionInclusive:()=>sl,textRangeContainsTextSpan:()=>Og,textRangeIntersectsWithTextSpan:()=>e3,textSpanContainsPosition:()=>ho,textSpanContainsTextRange:()=>ed,textSpanContainsTextSpan:()=>Nd,textSpanEnd:()=>Rs,textSpanIntersection:()=>IA,textSpanIntersectsWith:()=>q2,textSpanIntersectsWithPosition:()=>zR,textSpanIntersectsWithTextSpan:()=>Tb,textSpanIsEmpty:()=>ja,textSpanOverlap:()=>o1,textSpanOverlapsWith:()=>Nh,textSpansEqual:()=>Xie,textToKeywordObj:()=>ev,timestamp:()=>Fg,toArray:()=>cc,toBuilderFileEmit:()=>W3t,toBuilderStateFileInfoForMultiEmit:()=>P3t,toEditorSettings:()=>N1e,toFileNameLowerCase:()=>Om,toPath:()=>Ou,toProgramEmitPending:()=>O3t,toSorted:()=>bo,tokenIsIdentifierOrKeyword:()=>Id,tokenIsIdentifierOrKeywordOrGreaterThan:()=>fB,tokenToString:()=>Vi,trace:()=>eu,tracing:()=>ki,tracingEnabled:()=>Kl,transferSourceFileChildren:()=>QPt,transform:()=>fon,transformClassFields:()=>WOt,transformDeclarations:()=>Jet,transformECMAScriptModule:()=>Xet,transformES2015:()=>e3t,transformES2016:()=>$Ot,transformES2017:()=>YOt,transformES2018:()=>QOt,transformES2019:()=>XOt,transformES2020:()=>JOt,transformES2021:()=>UOt,transformESDecorators:()=>HOt,transformESNext:()=>KOt,transformGenerators:()=>t3t,transformImpliedNodeFormatDependentModule:()=>n3t,transformJsx:()=>qOt,transformLegacyDecorators:()=>MOt,transformModule:()=>Qet,transformNamedEvaluation:()=>m1,transformNodes:()=>WEe,transformSystemModule:()=>r3t,transformTypeScript:()=>POt,transpile:()=>vin,transpileDeclaration:()=>Ein,transpileModule:()=>zMt,transpileOptionValueCompilerOptions:()=>EWt,tryAddToSet:()=>Ar,tryAndIgnoreErrors:()=>aPe,tryCast:()=>Gs,tryDirectoryExists:()=>oPe,tryExtractTSExtension:()=>O7,tryFileExists:()=>Kie,tryGetClassExtendingExpressionWithTypeArguments:()=>$ye,tryGetClassImplementingOrExtendingExpressionWithTypeArguments:()=>ebe,tryGetDirectories:()=>sPe,tryGetExtensionFromPath:()=>QT,tryGetImportFromModuleSpecifier:()=>B7,tryGetJSDocSatisfiesTypeNode:()=>QAe,tryGetModuleNameFromFile:()=>gEe,tryGetModuleSpecifierFromDeclaration:()=>ZY,tryGetNativePerformanceHooks:()=>YS,tryGetPropertyAccessOrIdentifierToString:()=>TP,tryGetPropertyNameOfBindingOrAssignmentElement:()=>c9e,tryGetSourceMappingURL:()=>EOt,tryGetTextOfPropertyName:()=>xY,tryParseJson:()=>nU,tryParsePattern:()=>UY,tryParsePatterns:()=>$7,tryParseRawSourceMap:()=>SOt,tryReadDirectory:()=>nnt,tryReadFile:()=>fde,tryRemoveDirectoryPrefix:()=>NAe,tryRemoveExtension:()=>hLe,tryRemovePrefix:()=>HS,tryRemoveSuffix:()=>Bo,tscBuildOption:()=>SU,typeAcquisitionDeclarations:()=>f9e,typeAliasNamePart:()=>dMt,typeDirectiveIsEqualTo:()=>hge,typeKeywords:()=>Zrt,typeParameterNamePart:()=>pMt,typeToDisplayParts:()=>I1e,unchangedPollThresholds:()=>q_,unchangedTextChangeRange:()=>Eo,unescapeLeadingUnderscores:()=>Bc,unmangleScopedPackageName:()=>NEe,unorderedRemoveItem:()=>ef,unprefixedNodeCoreModules:()=>qne,unreachableCodeIsError:()=>nLe,unsetNodeChildren:()=>E$e,unusedLabelIsError:()=>iLe,unwrapInnermostStatementOfLabel:()=>Iye,unwrapParenthesizedExpression:()=>UAe,updateErrorForNoInputFiles:()=>v9e,updateLanguageServiceSourceFile:()=>qnt,updateMissingFilePathsWatch:()=>ntt,updateResolutionField:()=>Bie,updateSharedExtendedConfigFileWatcher:()=>q9e,updateSourceFile:()=>L$e,updateWatchingWildcardDirectories:()=>HEe,usingSingleLineStringWriter:()=>dP,utf16EncodeAsString:()=>jR,validateLocaleAndSetLanguage:()=>yx,version:()=>C,versionMajorMinor:()=>I,visitArray:()=>Ede,visitCommaListElements:()=>xEe,visitEachChild:()=>_s,visitFunctionBody:()=>uS,visitIterationBody:()=>Py,visitLexicalEnvironment:()=>Net,visitNode:()=>Mr,visitNodes:()=>Ws,visitParameterList:()=>vI,walkUpBindingElementsAndPatterns:()=>ai,walkUpOuterExpressions:()=>qPt,walkUpParenthesizedExpressions:()=>gv,walkUpParenthesizedTypes:()=>pne,walkUpParenthesizedTypesAndGetParentAndChild:()=>wye,whitespaceOrMapCommentRegExp:()=>ket,writeCommentRange:()=>rU,writeFile:()=>lAe,writeFileEnsuringDirectories:()=>Qye,zipWith:()=>ce}),e.exports=A(f);var I="5.9",C="5.9.3",b=(s=>(s[s.LessThan=-1]="LessThan",s[s.EqualTo=0]="EqualTo",s[s.GreaterThan=1]="GreaterThan",s))(b||{}),E=[],N=new Map;function B(s){return s!==void 0?s.length:0}function F(s,c){if(s!==void 0)for(let g=0;g=0;g--){let d=c(s[g],g);if(d)return d}}function X(s,c){if(s!==void 0)for(let g=0;g=0;d--){let h=s[d];if(c(h,d))return h}}function Se(s,c,g){if(s===void 0)return-1;for(let d=g??0;d=0;d--)if(c(s[d],d))return d;return-1}function k(s,c,g=yg){if(s!==void 0){for(let d=0;d{let[_,S]=c(h,d);g.set(_,S)}),g}function jt(s,c){if(s!==void 0)if(c!==void 0){for(let g=0;g0;return!1}function Fn(s,c,g){let d;for(let h=0;hs[S])}function xi(s,c){let g=[];for(let d=0;d0&&d(c,s[S-1]))return!1;if(S0&&pe.assertGreaterThanOrEqual(g(c[_],c[_-1]),0);t:for(let S=h;hS&&pe.assertGreaterThanOrEqual(g(s[h],s[h-1]),0),g(c[_],s[h])){case-1:d.push(c[_]);continue e;case 0:continue e;case 1:continue t}}return d}function Ft(s,c){return c===void 0?s:s===void 0?[c]:(s.push(c),s)}function zr(s,c){return s===void 0?c:c===void 0?s:Ki(s)?Ki(c)?Nn(s,c):Ft(s,c):Ki(c)?Ft(c,s):[s,c]}function Rn(s,c){return c<0?s.length+c:c}function Or(s,c,g,d){if(c===void 0||c.length===0)return s;if(s===void 0)return c.slice(g,d);g=g===void 0?0:Rn(c,g),d=d===void 0?c.length:Rn(c,d);for(let h=g;hg(s[d],s[h])||Zt(d,h))}function bo(s,c){return s.length===0?E:s.slice().sort(c)}function*Qa(s){for(let c=s.length-1;c>=0;c--)yield s[c]}function gc(s,c,g,d){for(;gs?.at(c):(s,c)=>{if(s!==void 0&&(c=Rn(s,c),c>1),T=g(s[R],R);switch(d(T,c)){case-1:_=R+1;break;case 0:return R;case 1:S=R-1;break}}return~_}function Ul(s,c,g,d,h){if(s&&s.length>0){let _=s.length;if(_>0){let S=d===void 0||d<0?0:d,R=h===void 0||S+h>_-1?_-1:S+h,T;for(arguments.length<=2?(T=s[S],S++):T=g;S<=R;)T=c(T,s[S],S),S++;return T}}return g}var Xu=Object.prototype.hasOwnProperty;function Da(s,c){return Xu.call(s,c)}function pu(s,c){return Xu.call(s,c)?s[c]:void 0}function _g(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(g);return c}function mI(s){let c=[];do{let g=Object.getOwnPropertyNames(s);for(let d of g)Qi(c,d)}while(s=Object.getPrototypeOf(s));return c}function Qh(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(s[g]);return c}function Ri(s,c){let g=new Array(s);for(let d=0;d100&&g>c.length>>1){let R=c.length-g;c.copyWithin(0,g),c.length=R,g=0}return S}return{enqueue:h,dequeue:_,isEmpty:d}}function oo(s,c){let g=new Map,d=0;function*h(){for(let S of g.values())Ki(S)?yield*S:yield S}let _={has(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);return Ki(T)?k(T,S,c):c(T,S)},add(S){let R=s(S);if(g.has(R)){let T=g.get(R);if(Ki(T))k(T,S,c)||(T.push(S),d++);else{let W=T;c(W,S)||(g.set(R,[W,S]),d++)}}else g.set(R,S),d++;return this},delete(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);if(Ki(T)){for(let W=0;Wh(),[Symbol.toStringTag]:g[Symbol.toStringTag]};return _}function Ki(s){return Array.isArray(s)}function cc(s){return Ki(s)?s:[s]}function Xs(s){return typeof s=="string"}function ws(s){return typeof s=="number"}function Gs(s,c){return s!==void 0&&c(s)?s:void 0}function Ma(s,c){return s!==void 0&&c(s)?s:pe.fail(`Invalid cast. The supplied value ${s} did not pass the test '${pe.getFunctionName(c)}'.`)}function Dc(s){}function As(){return!1}function Tf(){return!0}function cm(){}function Fl(s){return s}function rc(s){return s.toLowerCase()}var sd=/[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g;function Om(s){return sd.test(s)?s.replace(sd,rc):s}function il(){throw new Error("Not implemented")}function FA(s){let c;return()=>(s&&(c=s(),s=void 0),c)}function ZA(s){let c=new Map;return g=>{let d=`${typeof g}:${g}`,h=c.get(d);return h===void 0&&!c.has(d)&&(h=s(g),c.set(d,h)),h}}var El=(s=>(s[s.None=0]="None",s[s.Normal=1]="Normal",s[s.Aggressive=2]="Aggressive",s[s.VeryAggressive=3]="VeryAggressive",s))(El||{});function yg(s,c){return s===c}function Mp(s,c){return s===c||s!==void 0&&c!==void 0&&s.toUpperCase()===c.toUpperCase()}function MA(s,c){return yg(s,c)}function Er(s,c){return s===c?0:s===void 0?-1:c===void 0?1:sc(g,d)===-1?g:d)}function Fs(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toUpperCase(),c=c.toUpperCase(),sc?1:0)}function Wa(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toLowerCase(),c=c.toLowerCase(),sc?1:0)}function Ca(s,c){return Er(s,c)}function ld(s){return s?Fs:Ca}var Rp=(()=>{return c;function s(g,d,h){if(g===d)return 0;if(g===void 0)return-1;if(d===void 0)return 1;let _=h(g,d);return _<0?-1:_>0?1:0}function c(g){let d=new Intl.Collator(g,{usage:"sort",sensitivity:"variant",numeric:!0}).compare;return(h,_)=>s(h,_,d)}})(),np,HA;function df(){return HA}function Zs(s){HA!==s&&(HA=s,np=void 0)}function so(s,c){return np??(np=Rp(HA)),np(s,c)}function Ea(s,c,g,d){return s===c?0:s===void 0?-1:c===void 0?1:d(s[g],c[g])}function Ml(s,c){return Zt(s?1:0,c?1:0)}function Dr(s,c,g){let d=Math.max(2,Math.floor(s.length*.34)),h=Math.floor(s.length*.4)+1,_;for(let S of c){let R=g(S);if(R!==void 0&&Math.abs(R.length-s.length)<=d){if(R===s||R.length<3&&R.toLowerCase()!==s.toLowerCase())continue;let T=Wn(s,R,h-.1);if(T===void 0)continue;pe.assert(Tg?R-g:1),V=Math.floor(c.length>g+R?g+R:c.length);h[0]=R;let M=R;for(let re=1;reg)return;let ee=d;d=h,h=ee}let S=d[c.length];return S>g?void 0:S}function di(s,c,g){let d=s.length-c.length;return d>=0&&(g?Mp(s.slice(d),c):s.indexOf(c,d)===d)}function aa(s,c){return di(s,c)?s.slice(0,s.length-c.length):s}function Bo(s,c){return di(s,c)?s.slice(0,s.length-c.length):void 0}function us(s){let c=s.length;for(let g=c-1;g>0;g--){let d=s.charCodeAt(g);if(d>=48&&d<=57)do--g,d=s.charCodeAt(g);while(g>0&&d>=48&&d<=57);else if(g>4&&(d===110||d===78)){if(--g,d=s.charCodeAt(g),d!==105&&d!==73||(--g,d=s.charCodeAt(g),d!==109&&d!==77))break;--g,d=s.charCodeAt(g)}else break;if(d!==45&&d!==46)break;c=g}return c===s.length?s:s.slice(0,c)}function Ql(s,c){for(let g=0;gg===c)}function ip(s,c){for(let g=0;gh&&jd(R,g)&&(h=R.prefix.length,d=S)}return d}function Ac(s,c,g){return g?Mp(s.slice(0,c.length),c):s.lastIndexOf(c,0)===0}function Nm(s,c){return Ac(s,c)?s.substr(c.length):s}function HS(s,c,g=Fl){return Ac(g(s),g(c))?s.substring(c.length):void 0}function jd({prefix:s,suffix:c},g){return g.length>=s.length+c.length&&Ac(g,s)&&di(g,c)}function dh(s,c){return g=>s(g)&&c(g)}function Hp(...s){return(...c)=>{let g;for(let d of s)if(g=d(...c),g)return g;return g}}function uC(s){return(...c)=>!s(...c)}function nE(s){}function J_(s){return s===void 0?void 0:[s]}function q0(s,c,g,d,h,_){_??(_=Dc);let S=0,R=0,T=s.length,W=c.length,V=!1;for(;S(s[s.Off=0]="Off",s[s.Error=1]="Error",s[s.Warning=2]="Warning",s[s.Info=3]="Info",s[s.Verbose=4]="Verbose",s))(fb||{}),pe;(s=>{let c=0;s.currentLogLevel=2,s.isDebugging=!1;function g(yr){return s.currentLogLevel<=yr}s.shouldLog=g;function d(yr,hn){s.loggingHost&&g(yr)&&s.loggingHost.log(yr,hn)}function h(yr){d(3,yr)}s.log=h,(yr=>{function hn(Oa){d(1,Oa)}yr.error=hn;function Oi(Oa){d(2,Oa)}yr.warn=Oi;function lo(Oa){d(3,Oa)}yr.log=lo;function pa(Oa){d(4,Oa)}yr.trace=pa})(h=s.log||(s.log={}));let _={};function S(){return c}s.getAssertionLevel=S;function R(yr){let hn=c;if(c=yr,yr>hn)for(let Oi of _g(_)){let lo=_[Oi];lo!==void 0&&s[Oi]!==lo.assertion&&yr>=lo.level&&(s[Oi]=lo,_[Oi]=void 0)}}s.setAssertionLevel=R;function T(yr){return c>=yr}s.shouldAssert=T;function W(yr,hn){return T(yr)?!0:(_[hn]={level:yr,assertion:s[hn]},s[hn]=Dc,!1)}function V(yr,hn){debugger;let Oi=new Error(yr?`Debug Failure. ${yr}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Oi,hn||V),Oi}s.fail=V;function M(yr,hn,Oi){return V(`${hn||"Unexpected node."}\r Node ${Pt(yr.kind)} was unexpected.`,Oi||M)}s.failBadSyntaxKind=M;function ee(yr,hn,Oi,lo){yr||(hn=hn?`False expression: ${hn}`:"False expression.",Oi&&(hn+=`\r Verbose Debug Information: `+(typeof Oi=="string"?Oi:Oi())),V(hn,lo||ee))}s.assert=ee;function re(yr,hn,Oi,lo,pa){if(yr!==hn){let Oa=Oi?lo?`${Oi} ${lo}`:Oi:"";V(`Expected ${yr} === ${hn}. ${Oa}`,pa||re)}}s.assertEqual=re;function ge(yr,hn,Oi,lo){yr>=hn&&V(`Expected ${yr} < ${hn}. ${Oi||""}`,lo||ge)}s.assertLessThan=ge;function Ie(yr,hn,Oi){yr>hn&&V(`Expected ${yr} <= ${hn}`,Oi||Ie)}s.assertLessThanOrEqual=Ie;function _e(yr,hn,Oi){yr= ${hn}`,Oi||_e)}s.assertGreaterThanOrEqual=_e;function Ee(yr,hn,Oi){yr==null&&V(hn,Oi||Ee)}s.assertIsDefined=Ee;function Ne(yr,hn,Oi){return Ee(yr,hn,Oi||Ne),yr}s.checkDefined=Ne;function Te(yr,hn,Oi){for(let lo of yr)Ee(lo,hn,Oi||Te)}s.assertEachIsDefined=Te;function Ze(yr,hn,Oi){return Te(yr,hn,Oi||Ze),yr}s.checkEachDefined=Ze;function We(yr,hn="Illegal value:",Oi){let lo=typeof yr=="object"&&Da(yr,"kind")&&Da(yr,"pos")?"SyntaxKind: "+Pt(yr.kind):JSON.stringify(yr);return V(`${hn} ${lo}`,Oi||We)}s.assertNever=We;function Ue(yr,hn,Oi,lo){W(1,"assertEachNode")&&ee(hn===void 0||ue(yr,hn),Oi||"Unexpected node.",()=>`Node array did not pass test '${ht(hn)}'.`,lo||Ue)}s.assertEachNode=Ue;function $e(yr,hn,Oi,lo){W(1,"assertNode")&&ee(yr!==void 0&&(hn===void 0||hn(yr)),Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} did not pass test '${ht(hn)}'.`,lo||$e)}s.assertNode=$e;function Ye(yr,hn,Oi,lo){W(1,"assertNotNode")&&ee(yr===void 0||hn===void 0||!hn(yr),Oi||"Unexpected node.",()=>`Node ${Pt(yr.kind)} should not have passed test '${ht(hn)}'.`,lo||Ye)}s.assertNotNode=Ye;function Tt(yr,hn,Oi,lo){W(1,"assertOptionalNode")&&ee(hn===void 0||yr===void 0||hn(yr),Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} did not pass test '${ht(hn)}'.`,lo||Tt)}s.assertOptionalNode=Tt;function ot(yr,hn,Oi,lo){W(1,"assertOptionalToken")&&ee(hn===void 0||yr===void 0||yr.kind===hn,Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} was not a '${Pt(hn)}' token.`,lo||ot)}s.assertOptionalToken=ot;function Qe(yr,hn,Oi){W(1,"assertMissingNode")&&ee(yr===void 0,hn||"Unexpected node.",()=>`Node ${Pt(yr.kind)} was unexpected'.`,Oi||Qe)}s.assertMissingNode=Qe;function mt(yr){}s.type=mt;function ht(yr){if(typeof yr!="function")return"";if(Da(yr,"name"))return yr.name;{let hn=Function.prototype.toString.call(yr),Oi=/^function\s+([\w$]+)\s*\(/.exec(hn);return Oi?Oi[1]:""}}s.getFunctionName=ht;function _t(yr){return`{ name: ${Bc(yr.escapedName)}; flags: ${dt(yr.flags)}; declarations: ${At(yr.declarations,hn=>Pt(hn.kind))} }`}s.formatSymbol=_t;function Rt(yr=0,hn,Oi){let lo=Ke(hn);if(yr===0)return lo.length>0&&lo[0][0]===0?lo[0][1]:"0";if(Oi){let pa=[],Oa=yr;for(let[tl,Qu]of lo){if(tl>yr)break;tl!==0&&tl&yr&&(pa.push(Qu),Oa&=~tl)}if(Oa===0)return pa.join("|")}else for(let[pa,Oa]of lo)if(pa===yr)return Oa;return yr.toString()}s.formatEnum=Rt;let Lt=new Map;function Ke(yr){let hn=Lt.get(yr);if(hn)return hn;let Oi=[];for(let pa in yr){let Oa=yr[pa];typeof Oa=="number"&&Oi.push([Oa,pa])}let lo=bo(Oi,(pa,Oa)=>Zt(pa[0],Oa[0]));return Lt.set(yr,lo),lo}function Pt(yr){return Rt(yr,Ld,!1)}s.formatSyntaxKind=Pt;function _r(yr){return Rt(yr,Iw,!1)}s.formatSnippetKind=_r;function Gt(yr){return Rt(yr,X2,!1)}s.formatScriptKind=Gt;function nt(yr){return Rt(yr,AC,!0)}s.formatNodeFlags=nt;function Dt(yr){return Rt(yr,wy,!0)}s.formatNodeCheckFlags=Dt;function tr(yr){return Rt(yr,JE,!0)}s.formatModifierFlags=tr;function ur(yr){return Rt(yr,up,!0)}s.formatTransformFlags=ur;function Gr(yr){return Rt(yr,cB,!0)}s.formatEmitFlags=Gr;function dt(yr){return Rt(yr,TT,!0)}s.formatSymbolFlags=dt;function pr(yr){return Rt(yr,jE,!0)}s.formatTypeFlags=pr;function st(yr){return Rt(yr,$A,!0)}s.formatSignatureFlags=st;function ir(yr){return Rt(yr,j_,!0)}s.formatObjectFlags=ir;function zt(yr){return Rt(yr,Yp,!0)}s.formatFlowFlags=zt;function Ht(yr){return Rt(yr,vy,!0)}s.formatRelationComparisonResult=Ht;function Br(yr){return Rt(yr,vet,!0)}s.formatCheckMode=Br;function mn(yr){return Rt(yr,Bet,!0)}s.formatSignatureCheckMode=mn;function jn(yr){return Rt(yr,Eet,!0)}s.formatTypeFacts=jn;let Zi=!1,Ns;function An(yr){"__debugFlowFlags"in yr||Object.defineProperties(yr,{__tsDebuggerDisplay:{value(){let hn=this.flags&2?"FlowStart":this.flags&4?"FlowBranchLabel":this.flags&8?"FlowLoopLabel":this.flags&16?"FlowAssignment":this.flags&32?"FlowTrueCondition":this.flags&64?"FlowFalseCondition":this.flags&128?"FlowSwitchClause":this.flags&256?"FlowArrayMutation":this.flags&512?"FlowCall":this.flags&1024?"FlowReduceLabel":this.flags&1?"FlowUnreachable":"UnknownFlow",Oi=this.flags&-2048;return`${hn}${Oi?` (${zt(Oi)})`:""}`}},__debugFlowFlags:{get(){return Rt(this.flags,Yp,!0)}},__debugToString:{value(){return hc(this)}}})}function si(yr){return Zi&&(typeof Object.setPrototypeOf=="function"?(Ns||(Ns=Object.create(Object.prototype),An(Ns)),Object.setPrototypeOf(yr,Ns)):An(yr)),yr}s.attachFlowNodeDebugInfo=si;let ks;function Ic(yr){"__tsDebuggerDisplay"in yr||Object.defineProperties(yr,{__tsDebuggerDisplay:{value(hn){return hn=String(hn).replace(/(?:,[\s\w]+:[^,]+)+\]$/,"]"),`NodeArray ${hn}`}}})}function su(yr){Zi&&(typeof Object.setPrototypeOf=="function"?(ks||(ks=Object.create(Array.prototype),Ic(ks)),Object.setPrototypeOf(yr,ks)):Ic(yr))}s.attachNodeArrayDebugInfo=su;function Zn(){if(Zi)return;let yr=new WeakMap,hn=new WeakMap;Object.defineProperties(ZC.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){let lo=this.flags&33554432?"TransientSymbol":"Symbol",pa=this.flags&-33554433;return`${lo} '${nf(this)}'${pa?` (${dt(pa)})`:""}`}},__debugFlags:{get(){return dt(this.flags)}}}),Object.defineProperties(ZC.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){let lo=this.flags&67359327?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:""}`:this.flags&98304?"NullableType":this.flags&384?`LiteralType ${JSON.stringify(this.value)}`:this.flags&2048?`LiteralType ${this.value.negative?"-":""}${this.value.base10Value}n`:this.flags&8192?"UniqueESSymbolType":this.flags&32?"EnumType":this.flags&1048576?"UnionType":this.flags&2097152?"IntersectionType":this.flags&4194304?"IndexType":this.flags&8388608?"IndexedAccessType":this.flags&16777216?"ConditionalType":this.flags&33554432?"SubstitutionType":this.flags&262144?"TypeParameter":this.flags&524288?this.objectFlags&3?"InterfaceType":this.objectFlags&4?"TypeReference":this.objectFlags&8?"TupleType":this.objectFlags&16?"AnonymousType":this.objectFlags&32?"MappedType":this.objectFlags&1024?"ReverseMappedType":this.objectFlags&256?"EvolvingArrayType":"ObjectType":"Type",pa=this.flags&524288?this.objectFlags&-1344:0;return`${lo}${this.symbol?` '${nf(this.symbol)}'`:""}${pa?` (${ir(pa)})`:""}`}},__debugFlags:{get(){return pr(this.flags)}},__debugObjectFlags:{get(){return this.flags&524288?ir(this.objectFlags):""}},__debugTypeToString:{value(){let lo=yr.get(this);return lo===void 0&&(lo=this.checker.typeToString(this),yr.set(this,lo)),lo}}}),Object.defineProperties(ZC.getSignatureConstructor().prototype,{__debugFlags:{get(){return st(this.flags)}},__debugSignatureToString:{value(){var lo;return(lo=this.checker)==null?void 0:lo.signatureToString(this)}}});let Oi=[ZC.getNodeConstructor(),ZC.getIdentifierConstructor(),ZC.getTokenConstructor(),ZC.getSourceFileConstructor()];for(let lo of Oi)Da(lo.prototype,"__debugKind")||Object.defineProperties(lo.prototype,{__tsDebuggerDisplay:{value(){return`${kp(this)?"GeneratedIdentifier":Ir(this)?`Identifier '${Vo(this)}'`:p(this)?`PrivateIdentifier '${Vo(this)}'`:Zg(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+"...")}`:mC(this)?`NumericLiteral ${this.text}`:eQ(this)?`BigIntLiteral ${this.text}n`:Ds(this)?"TypeParameterDeclaration":Si(this)?"ParameterDeclaration":Tc(this)?"ConstructorDeclaration":Bg(this)?"GetAccessorDeclaration":Dg(this)?"SetAccessorDeclaration":wg(this)?"CallSignatureDeclaration":em(this)?"ConstructSignatureDeclaration":w0(this)?"IndexSignatureDeclaration":bE(this)?"TypePredicateNode":nh(this)?"TypeReferenceNode":x_(this)?"FunctionTypeNode":$D(this)?"ConstructorTypeNode":Fw(this)?"TypeQueryNode":mh(this)?"TypeLiteralNode":kF(this)?"ArrayTypeNode":Zw(this)?"TupleTypeNode":jL(this)?"OptionalTypeNode":zL(this)?"RestTypeNode":aS(this)?"UnionTypeNode":mf(this)?"IntersectionTypeNode":d2(this)?"ConditionalTypeNode":jT(this)?"InferTypeNode":fv(this)?"ParenthesizedTypeNode":Fx(this)?"ThisTypeNode":xB(this)?"TypeOperatorNode":Iv(this)?"IndexedAccessTypeNode":GB(this)?"MappedTypeNode":EE(this)?"LiteralTypeNode":KT(this)?"NamedTupleMember":Um(this)?"ImportTypeNode":Pt(this.kind)}${this.flags?` (${nt(this.flags)})`:""}`}},__debugKind:{get(){return Pt(this.kind)}},__debugNodeFlags:{get(){return nt(this.flags)}},__debugModifierFlags:{get(){return tr(zye(this))}},__debugTransformFlags:{get(){return ur(this.transformFlags)}},__debugIsParseTreeNode:{get(){return SL(this)}},__debugEmitFlags:{get(){return Gr(tA(this))}},__debugGetText:{value(pa){if(sp(this))return"";let Oa=hn.get(this);if(Oa===void 0){let tl=$l(this),Qu=tl&&ms(tl);Oa=Qu?mF(Qu,tl,pa):"",hn.set(this,Oa)}return Oa}}});Zi=!0}s.enableDebugInfo=Zn;function ya(yr){let hn=yr&7,Oi=hn===0?"in out":hn===3?"[bivariant]":hn===2?"in":hn===1?"out":hn===4?"[independent]":"";return yr&8?Oi+=" (unmeasurable)":yr&16&&(Oi+=" (unreliable)"),Oi}s.formatVariance=ya;class Gl{__debugToString(){var hn;switch(this.kind){case 3:return((hn=this.debugInfo)==null?void 0:hn.call(this))||"(function mapper)";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return ce(this.sources,this.targets||At(this.sources,()=>"any"),(Oi,lo)=>`${Oi.__debugTypeToString()} -> ${typeof lo=="string"?lo:lo.__debugTypeToString()}`).join(", ");case 2:return ce(this.sources,this.targets,(Oi,lo)=>`${Oi.__debugTypeToString()} -> ${lo().__debugTypeToString()}`).join(", ");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split(` `).join(` @@ -1070,9 +1070,9 @@ Project '${R.projectName}' (${fpe[R.projectKind]}) ${_} `,_++};this.projectService.externalProjects.forEach(S),this.projectService.configuredProjects.forEach(S),this.projectService.inferredProjects.forEach(S)}}this.logger.msg(h,"Err")}send(c){if(c.type==="event"&&!this.canUseEvents){this.logger.hasLevel(3)&&this.logger.info(`Session does not support events: ignored event: ${j3(c)}`);return}this.writeMessage(c)}writeMessage(c){let g=oJt(c,this.logger,this.byteLength,this.host.newLine);this.host.write(g)}event(c,g){this.send(aJt(g,c))}doOutput(c,g,d,h,_,S){let R={seq:0,type:"response",command:g,request_seq:d,success:h,performanceData:_&&dfn(_)};if(h){let T;if(Ki(c))R.body=c,T=c.metadata,delete c.metadata;else if(typeof c=="object")if(c.metadata){let{metadata:W,...V}=c;R.body=V,T=W}else R.body=c;else R.body=c;T&&(R.metadata=T)}else pe.assert(c===void 0);S&&(R.message=S),this.send(R)}semanticCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"semanticCheck",{file:c,configFilePath:g.canonicalConfigFilePath});let S=rfn(g,c)?zm:g.getLanguageService().getSemanticDiagnostics(c).filter(R=>!!R.file);this.sendDiagnosticsEvent(c,g,S,"semanticDiag",_),(h=ki)==null||h.pop()}syntacticCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"syntacticCheck",{file:c,configFilePath:g.canonicalConfigFilePath}),this.sendDiagnosticsEvent(c,g,g.getLanguageService().getSyntacticDiagnostics(c),"syntaxDiag",_),(h=ki)==null||h.pop()}suggestionCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"suggestionCheck",{file:c,configFilePath:g.canonicalConfigFilePath}),this.sendDiagnosticsEvent(c,g,g.getLanguageService().getSuggestionDiagnostics(c),"suggestionDiag",_),(h=ki)==null||h.pop()}regionSemanticCheck(c,g,d){var h,_,S;let R=Fg();(h=ki)==null||h.push(ki.Phase.Session,"regionSemanticCheck",{file:c,configFilePath:g.canonicalConfigFilePath});let T;if(!this.shouldDoRegionCheck(c)||!(T=g.getLanguageService().getRegionSemanticDiagnostics(c,d))){(_=ki)==null||_.pop();return}this.sendDiagnosticsEvent(c,g,T.diagnostics,"regionSemanticDiag",R,T.spans),(S=ki)==null||S.pop()}shouldDoRegionCheck(c){var g;let d=(g=this.projectService.getScriptInfoForNormalizedPath(c))==null?void 0:g.textStorage.getLineInfo().getLineCount();return!!(d&&d>=this.regionDiagLineCountThreshold)}sendDiagnosticsEvent(c,g,d,h,_,S){try{let R=pe.checkDefined(g.getScriptInfo(c)),T=Fg()-_,W={file:c,diagnostics:d.map(V=>nfn(c,g,V)),spans:S?.map(V=>kN(V,R))};this.event(W,h),this.addDiagnosticsPerformanceData(c,h,T)}catch(R){this.logError(R,h)}}updateErrorCheck(c,g,d,h=!0){if(g.length===0)return;pe.assert(!this.suppressDiagnosticEvents);let _=this.changeSeq,S=Math.min(d,200),R=0,T=()=>{if(R++,g.length>R)return c.delay("checkOne",S,V)},W=(M,ee)=>{if(this.semanticCheck(M,ee),this.changeSeq===_){if(this.getPreferences(M).disableSuggestions)return T();c.immediate("suggestionCheck",()=>{this.suggestionCheck(M,ee),T()})}},V=()=>{if(this.changeSeq!==_)return;let M,ee=g[R];if(Xs(ee)?ee=this.toPendingErrorCheck(ee):"ranges"in ee&&(M=ee.ranges,ee=this.toPendingErrorCheck(ee.file)),!ee)return T();let{fileName:re,project:ge}=ee;if(_v(ge),!!ge.containsFile(re,h)&&(this.syntacticCheck(re,ge),this.changeSeq===_)){if(ge.projectService.serverMode!==0)return T();if(M)return c.immediate("regionSemanticCheck",()=>{let Ie=this.projectService.getScriptInfoForNormalizedPath(re);Ie&&this.regionSemanticCheck(re,ge,M.map(_e=>this.getRange({file:re,..._e},Ie))),this.changeSeq===_&&c.immediate("semanticCheck",()=>W(re,ge))});c.immediate("semanticCheck",()=>W(re,ge))}};g.length>R&&this.changeSeq===_&&c.delay("checkOne",d,V)}cleanProjects(c,g){if(g){this.logger.info(`cleaning ${c}`);for(let d of g)d.getLanguageService(!1).cleanupSemanticCache(),d.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects),this.cleanProjects("configured projects",Do(this.projectService.configuredProjects.values())),this.cleanProjects("external projects",this.projectService.externalProjects),this.host.gc&&(this.logger.info("host.gc()"),this.host.gc())}getEncodedSyntacticClassifications(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c);return d.getEncodedSyntacticClassifications(g,c)}getEncodedSemanticClassifications(c){let{file:g,project:d}=this.getFileAndProject(c),h=c.format==="2020"?"2020":"original";return d.getLanguageService().getEncodedSemanticClassifications(g,c,h)}getProject(c){return c===void 0?void 0:this.projectService.findProject(c)}getConfigFileAndProject(c){let g=this.getProject(c.projectFileName),d=op(c.file);return{configFile:g&&g.hasConfigFile(d)?d:void 0,project:g}}getConfigFileDiagnostics(c,g,d){let h=g.getAllProjectErrors(),_=g.getLanguageService().getCompilerOptionsDiagnostics(),S=Me(Nn(h,_),R=>!!R.file&&R.file.fileName===c);return d?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(S):At(S,R=>o2e(R,!1))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(c){return c.map(g=>({message:wN(g.messageText,this.host.newLine),start:g.start,length:g.length,category:_b(g),code:g.code,source:g.source,startLocation:g.file&&cse(Ra(g.file,g.start)),endLocation:g.file&&cse(Ra(g.file,g.start+g.length)),reportsUnnecessary:g.reportsUnnecessary,reportsDeprecated:g.reportsDeprecated,relatedInformation:At(g.relatedInformation,kst)}))}getCompilerOptionsDiagnostics(c){let g=this.getProject(c.projectFileName);return this.convertToDiagnosticsWithLinePosition(Me(g.getLanguageService().getCompilerOptionsDiagnostics(),d=>!d.file),void 0)}convertToDiagnosticsWithLinePosition(c,g){return c.map(d=>({message:wN(d.messageText,this.host.newLine),start:d.start,length:d.length,category:_b(d),code:d.code,source:d.source,startLocation:g&&g.positionToLineOffset(d.start),endLocation:g&&g.positionToLineOffset(d.start+d.length),reportsUnnecessary:d.reportsUnnecessary,reportsDeprecated:d.reportsDeprecated,relatedInformation:At(d.relatedInformation,kst)}))}getDiagnosticsWorker(c,g,d,h){let{project:_,file:S}=this.getFileAndProject(c);if(g&&rfn(_,S))return zm;let R=_.getScriptInfoForNormalizedPath(S),T=d(_,S);return h?this.convertToDiagnosticsWithLinePosition(T,R):T.map(W=>nfn(S,_,W))}getDefinition(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=this.mapDefinitionInfoLocations(h.getLanguageService().getDefinitionAtPosition(d,_)||zm,h);return g?this.mapDefinitionInfo(S,h):S.map(JEt.mapToOriginalLocation)}mapDefinitionInfoLocations(c,g){return c.map(d=>{let h=ufn(d,g);return h?{...h,containerKind:d.containerKind,containerName:d.containerName,kind:d.kind,name:d.name,failedAliasResolution:d.failedAliasResolution,...d.unverified&&{unverified:d.unverified}}:d})}getDefinitionAndBoundSpan(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=pe.checkDefined(h.getScriptInfo(d)),R=h.getLanguageService().getDefinitionAndBoundSpan(d,_);if(!R||!R.definitions)return{definitions:zm,textSpan:void 0};let T=this.mapDefinitionInfoLocations(R.definitions,h),{textSpan:W}=R;return g?{definitions:this.mapDefinitionInfo(T,h),textSpan:kN(W,S)}:{definitions:T.map(JEt.mapToOriginalLocation),textSpan:W}}findSourceDefinition(c){var g;let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=h.getLanguageService().getDefinitionAtPosition(d,_),R=this.mapDefinitionInfoLocations(S||zm,h).slice();if(this.projectService.serverMode===0&&(!jt(R,re=>op(re.fileName)!==d&&!re.isAmbient)||jt(R,re=>!!re.failedAliasResolution))){let re=oo(Ee=>Ee.textSpan.start,Xrt(this.host.useCaseSensitiveFileNames));R?.forEach(Ee=>re.add(Ee));let ge=h.getNoDtsResolutionProject(d),Ie=ge.getLanguageService(),_e=(g=Ie.getDefinitionAtPosition(d,_,!0,!1))==null?void 0:g.filter(Ee=>op(Ee.fileName)!==d);if(jt(_e))for(let Ee of _e){if(Ee.unverified){let Ne=M(Ee,h.getLanguageService().getProgram(),Ie.getProgram());if(jt(Ne)){for(let Te of Ne)re.add(Te);continue}}re.add(Ee)}else{let Ee=R.filter(Ne=>op(Ne.fileName)!==d&&Ne.isAmbient);for(let Ne of jt(Ee)?Ee:V()){let Te=W(Ne.fileName,d,ge);if(!Te)continue;let Ze=this.projectService.getOrCreateScriptInfoNotOpenedByClient(Te,ge.currentDirectory,ge.directoryStructureHost,!1);if(!Ze)continue;ge.containsScriptInfo(Ze)||(ge.addRoot(Ze),ge.updateGraph());let We=Ie.getProgram(),Ue=pe.checkDefined(We.getSourceFile(Te));for(let $e of ee(Ne.name,Ue,We))re.add($e)}}R=Do(re.values())}return R=R.filter(re=>!re.isAmbient&&!re.failedAliasResolution),this.mapDefinitionInfo(R,h);function W(re,ge,Ie){var _e,Ee,Ne;let Te=MAe(re);if(Te&&re.lastIndexOf(Vx)===Te.topLevelNodeModulesIndex){let Ze=re.substring(0,Te.packageRootIndex),We=(_e=h.getModuleResolutionCache())==null?void 0:_e.getPackageJsonInfoCache(),Ue=h.getCompilationSettings(),$e=yde(Xc(Ze,h.getCurrentDirectory()),_de(We,h,Ue));if(!$e)return;let Ye=det($e,{moduleResolution:2},h,h.getModuleResolutionCache()),Tt=re.substring(Te.topLevelPackageNameIndex+1,Te.packageRootIndex),ot=bde(NEe(Tt)),Qe=h.toPath(re);if(Ye&&jt(Ye,mt=>h.toPath(mt)===Qe))return(Ee=Ie.resolutionCache.resolveSingleModuleNameWithoutWatching(ot,ge).resolvedModule)==null?void 0:Ee.resolvedFileName;{let mt=re.substring(Te.packageRootIndex+1),ht=`${ot}/${s0(mt)}`;return(Ne=Ie.resolutionCache.resolveSingleModuleNameWithoutWatching(ht,ge).resolvedModule)==null?void 0:Ne.resolvedFileName}}}function V(){let re=h.getLanguageService(),ge=re.getProgram(),Ie=Lb(ge.getSourceFile(d),_);return(mA(Ie)||Ir(Ie))&&_p(Ie.parent)&&zZe(Ie,_e=>{var Ee;if(_e===Ie)return;let Ne=(Ee=re.getDefinitionAtPosition(d,_e.getStart(),!0,!1))==null?void 0:Ee.filter(Te=>op(Te.fileName)!==d&&Te.isAmbient).map(Te=>({fileName:Te.fileName,name:c2(Ie)}));if(jt(Ne))return Ne})||zm}function M(re,ge,Ie){var _e;let Ee=Ie.getSourceFile(re.fileName);if(!Ee)return;let Ne=Lb(ge.getSourceFile(d),_),Te=ge.getTypeChecker().getSymbolAtLocation(Ne),Ze=Te&&Cp(Te,277);if(!Ze)return;let We=((_e=Ze.propertyName)==null?void 0:_e.text)||Ze.name.text;return ee(We,Ee,Ie)}function ee(re,ge,Ie){let _e=Kp.Core.getTopMostDeclarationNamesInFile(re,ge);return Xt(_e,Ee=>{let Ne=Ie.getTypeChecker().getSymbolAtLocation(Ee),Te=T7(Ee);if(Ne&&Te)return nse.createDefinitionInfo(Te,Ie.getTypeChecker(),Ne,Te,!0)})}}getEmitOutput(c){let{file:g,project:d}=this.getFileAndProject(c);if(!d.shouldEmitFile(d.getScriptInfo(g)))return{emitSkipped:!0,outputFiles:[],diagnostics:[]};let h=d.getLanguageService().getEmitOutput(g);return c.richResponse?{...h,diagnostics:c.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(h.diagnostics):h.diagnostics.map(_=>o2e(_,!0))}:h}mapJSDocTagInfo(c,g,d){return c?c.map(h=>{var _;return{...h,text:d?this.mapDisplayParts(h.text,g):(_=h.text)==null?void 0:_.map(S=>S.text).join("")}}):[]}mapDisplayParts(c,g){return c?c.map(d=>d.kind!=="linkName"?d:{...d,target:this.toFileSpan(d.target.fileName,d.target.textSpan,g)}):[]}mapSignatureHelpItems(c,g,d){return c.map(h=>({...h,documentation:this.mapDisplayParts(h.documentation,g),parameters:h.parameters.map(_=>({..._,documentation:this.mapDisplayParts(_.documentation,g)})),tags:this.mapJSDocTagInfo(h.tags,g,d)}))}mapDefinitionInfo(c,g){return c.map(d=>({...this.toFileSpanWithContext(d.fileName,d.textSpan,d.contextSpan,g),...d.unverified&&{unverified:d.unverified}}))}static mapToOriginalLocation(c){return c.originalFileName?(pe.assert(c.originalTextSpan!==void 0,"originalTextSpan should be present if originalFileName is"),{...c,fileName:c.originalFileName,textSpan:c.originalTextSpan,targetFileName:c.fileName,targetTextSpan:c.textSpan,contextSpan:c.originalContextSpan,targetContextSpan:c.contextSpan}):c}toFileSpan(c,g,d){let h=d.getLanguageService(),_=h.toLineColumnOffset(c,g.start),S=h.toLineColumnOffset(c,Rs(g));return{file:c,start:{line:_.line+1,offset:_.character+1},end:{line:S.line+1,offset:S.character+1}}}toFileSpanWithContext(c,g,d,h){let _=this.toFileSpan(c,g,h),S=d&&this.toFileSpan(c,d,h);return S?{..._,contextStart:S.start,contextEnd:S.end}:_}getTypeDefinition(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getPositionInFile(c,g),_=this.mapDefinitionInfoLocations(d.getLanguageService().getTypeDefinitionAtPosition(g,h)||zm,d);return this.mapDefinitionInfo(_,d)}mapImplementationLocations(c,g){return c.map(d=>{let h=ufn(d,g);return h?{...h,kind:d.kind,displayParts:d.displayParts}:d})}getImplementation(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=this.mapImplementationLocations(h.getLanguageService().getImplementationAtPosition(d,_)||zm,h);return g?S.map(({fileName:R,textSpan:T,contextSpan:W})=>this.toFileSpanWithContext(R,T,W,h)):S.map(JEt.mapToOriginalLocation)}getSyntacticDiagnosticsSync(c){let{configFile:g}=this.getConfigFileAndProject(c);return g?zm:this.getDiagnosticsWorker(c,!1,(d,h)=>d.getLanguageService().getSyntacticDiagnostics(h),!!c.includeLinePosition)}getSemanticDiagnosticsSync(c){let{configFile:g,project:d}=this.getConfigFileAndProject(c);return g?this.getConfigFileDiagnostics(g,d,!!c.includeLinePosition):this.getDiagnosticsWorker(c,!0,(h,_)=>h.getLanguageService().getSemanticDiagnostics(_).filter(S=>!!S.file),!!c.includeLinePosition)}getSuggestionDiagnosticsSync(c){let{configFile:g}=this.getConfigFileAndProject(c);return g?zm:this.getDiagnosticsWorker(c,!0,(d,h)=>d.getLanguageService().getSuggestionDiagnostics(h),!!c.includeLinePosition)}getJsxClosingTag(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=d.getJsxClosingTagAtPosition(g,h);return _===void 0?void 0:{newText:_.newText,caretOffset:0}}getLinkedEditingRange(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=d.getLinkedEditingRangeAtPosition(g,h),S=this.projectService.getScriptInfoForNormalizedPath(g);if(!(S===void 0||_===void 0))return rOs(_,S)}getDocumentHighlights(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=h.getLanguageService().getDocumentHighlights(d,_,c.filesToSearch);return S?g?S.map(({fileName:R,highlightSpans:T})=>{let W=h.getScriptInfo(R);return{file:R,highlightSpans:T.map(({textSpan:V,kind:M,contextSpan:ee})=>({...lJt(V,ee,W),kind:M}))}}):S:zm}provideInlayHints(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.projectService.getScriptInfoForNormalizedPath(g);return d.getLanguageService().provideInlayHints(g,c,this.getPreferences(g)).map(S=>{let{position:R,displayParts:T}=S;return{...S,position:h.positionToLineOffset(R),displayParts:T?.map(({text:W,span:V,file:M})=>{if(V){pe.assertIsDefined(M,"Target file should be defined together with its span.");let ee=this.projectService.getScriptInfo(M);return{text:W,span:{start:ee.positionToLineOffset(V.start),end:ee.positionToLineOffset(V.start+V.length),file:M}}}else return{text:W}})}})}mapCode(c){var g;let d=this.getHostFormatOptions(),h=this.getHostPreferences(),{file:_,languageService:S}=this.getFileAndLanguageServiceForSyntacticOperation(c),R=this.projectService.getScriptInfoForNormalizedPath(_),T=(g=c.mapping.focusLocations)==null?void 0:g.map(V=>V.map(M=>{let ee=R.lineOffsetToPosition(M.start.line,M.start.offset),re=R.lineOffsetToPosition(M.end.line,M.end.offset);return{start:ee,length:re-ee}})),W=S.mapCode(_,c.mapping.contents,T,d,h);return this.mapTextChangesToCodeEdits(W)}getCopilotRelatedInfo(){return{relatedFiles:[]}}setCompilerOptionsForInferredProjects(c){this.projectService.setCompilerOptionsForInferredProjects(c.options,c.projectRootPath)}getProjectInfo(c){return this.getProjectInfoWorker(c.file,c.projectFileName,c.needFileNameList,c.needDefaultConfiguredProjectInfo,!1)}getProjectInfoWorker(c,g,d,h,_){let{project:S}=this.getFileAndProjectWorker(c,g);return _v(S),{configFileName:S.getProjectName(),languageServiceDisabled:!S.languageServiceEnabled,fileNames:d?S.getFileNames(!1,_):void 0,configuredProjectInfo:h?this.getDefaultConfiguredProjectInfo(c):void 0}}getDefaultConfiguredProjectInfo(c){var g;let d=this.projectService.getScriptInfo(c);if(!d)return;let h=this.projectService.findDefaultConfiguredProjectWorker(d,3);if(!h)return;let _,S;return h.seenProjects.forEach((R,T)=>{T!==h.defaultProject&&(R!==3?(_??(_=[])).push(op(T.getConfigFilePath())):(S??(S=[])).push(op(T.getConfigFilePath())))}),(g=h.seenConfigs)==null||g.forEach(R=>(_??(_=[])).push(R)),{notMatchedByConfig:_,notInProject:S,defaultProject:h.defaultProject&&op(h.defaultProject.getConfigFilePath())}}getRenameInfo(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getPositionInFile(c,g),_=this.getPreferences(g);return d.getLanguageService().getRenameInfo(g,h,_)}getProjects(c,g,d){let h,_;if(c.projectFileName){let S=this.getProject(c.projectFileName);S&&(h=[S])}else{let S=g?this.projectService.getScriptInfoEnsuringProjectsUptoDate(c.file):this.projectService.getScriptInfo(c.file);if(S)g||this.projectService.ensureDefaultProjectForFile(S);else return d?zm:(this.projectService.logErrorForScriptInfoNotFound(c.file),QF.ThrowNoProject());h=S.containingProjects,_=this.projectService.getSymlinkedProjects(S)}return h=Me(h,S=>S.languageServiceEnabled&&!S.isOrphan()),!d&&(!h||!h.length)&&!_?(this.projectService.logErrorForScriptInfoNotFound(c.file??c.projectFileName),QF.ThrowNoProject()):_?{projects:h,symLinkedProjects:_}:h}getDefaultProject(c){if(c.projectFileName){let d=this.getProject(c.projectFileName);if(d)return d;if(!c.file)return QF.ThrowNoProject()}return this.projectService.getScriptInfo(c.file).getDefaultProject()}getRenameLocations(c,g){let d=op(c.file),h=this.getPositionInFile(c,d),_=this.getProjects(c),S=this.getDefaultProject(c),R=this.getPreferences(d),T=this.mapRenameInfo(S.getLanguageService().getRenameInfo(d,h,R),pe.checkDefined(this.projectService.getScriptInfo(d)));if(!T.canRename)return g?{info:T,locs:[]}:[];let W=jWs(_,S,{fileName:c.file,pos:h},!!c.findInStrings,!!c.findInComments,R,this.host.useCaseSensitiveFileNames);return g?{info:T,locs:this.toSpanGroups(W)}:W}mapRenameInfo(c,g){if(c.canRename){let{canRename:d,fileToRename:h,displayName:_,fullDisplayName:S,kind:R,kindModifiers:T,triggerSpan:W}=c;return{canRename:d,fileToRename:h,displayName:_,fullDisplayName:S,kind:R,kindModifiers:T,triggerSpan:kN(W,g)}}else return c}toSpanGroups(c){let g=new Map;for(let{fileName:d,textSpan:h,contextSpan:_,originalContextSpan:S,originalTextSpan:R,originalFileName:T,...W}of c){let V=g.get(d);V||g.set(d,V={file:d,locs:[]});let M=pe.checkDefined(this.projectService.getScriptInfo(d));V.locs.push({...lJt(h,_,M),...W})}return Do(g.values())}getReferences(c,g){let d=op(c.file),h=this.getProjects(c),_=this.getPositionInFile(c,d),S=zWs(h,this.getDefaultProject(c),{fileName:c.file,pos:_},this.host.useCaseSensitiveFileNames,this.logger);if(!g)return S;let R=this.getPreferences(d),T=this.getDefaultProject(c),W=T.getScriptInfoForNormalizedPath(d),V=T.getLanguageService().getQuickInfoAtPosition(d,_),M=V?D1e(V.displayParts):"",ee=V&&V.textSpan,re=ee?W.positionToLineOffset(ee.start).offset:0,ge=ee?W.getSnapshot().getText(ee.start,Rs(ee)):"";return{refs:er(S,_e=>_e.references.map(Ee=>ffn(this.projectService,Ee,R))),symbolName:ge,symbolStartOffset:re,symbolDisplayString:M}}getFileReferences(c,g){let d=this.getProjects(c),h=op(c.file),_=this.getPreferences(h),S={fileName:h,pos:0},R=cJt(d,this.getDefaultProject(c),S,S,afn,V=>(this.logger.info(`Finding references to file ${h} in project ${V.getProjectName()}`),V.getLanguageService().getFileReferences(h))),T;if(Ki(R))T=R;else{T=[];let V=xst(this.host.useCaseSensitiveFileNames);R.forEach(M=>{for(let ee of M)V.has(ee)||(T.push(ee),V.add(ee))})}return g?{refs:T.map(V=>ffn(this.projectService,V,_)),symbolName:`"${c.file}"`}:T}openClientFile(c,g,d,h){this.projectService.openClientFileWithNormalizedPath(c,g,d,!1,h)}getPosition(c,g){return c.position!==void 0?c.position:g.lineOffsetToPosition(c.line,c.offset)}getPositionInFile(c,g){let d=this.projectService.getScriptInfoForNormalizedPath(g);return this.getPosition(c,d)}getFileAndProject(c){return this.getFileAndProjectWorker(c.file,c.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(c){let{file:g,project:d}=this.getFileAndProject(c);return{file:g,languageService:d.getLanguageService(!1)}}getFileAndProjectWorker(c,g){let d=op(c),h=this.getProject(g)||this.projectService.ensureDefaultProjectForFile(d);return{file:d,project:h}}getOutliningSpans(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getOutliningSpans(d);if(g){let S=this.projectService.getScriptInfoForNormalizedPath(d);return _.map(R=>({textSpan:kN(R.textSpan,S),hintSpan:kN(R.hintSpan,S),bannerText:R.bannerText,autoCollapse:R.autoCollapse,kind:R.kind}))}else return _}getTodoComments(c){let{file:g,project:d}=this.getFileAndProject(c);return d.getLanguageService().getTodoComments(g,c.descriptors)}getDocCommentTemplate(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getDocCommentTemplateAtPosition(g,h,this.getPreferences(g),this.getFormatOptions(g))}getSpanOfEnclosingComment(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.onlyMultiLine,_=this.getPositionInFile(c,g);return d.getSpanOfEnclosingComment(g,_,h)}getIndentation(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=c.options?ase(c.options):this.getFormatOptions(g),S=d.getIndentationAtPosition(g,h,_);return{position:h,indentation:S}}getBreakpointStatement(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getBreakpointStatementAtPosition(g,h)}getNameOrDottedNameSpan(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getNameOrDottedNameSpan(g,h,h)}isValidBraceCompletion(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.isValidBraceCompletionAtPosition(g,h,c.openingBrace.charCodeAt(0))}getQuickInfoWorker(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPreferences(d),R=h.getLanguageService().getQuickInfoAtPosition(d,this.getPosition(c,_),S.maximumHoverLength,c.verbosityLevel);if(!R)return;let T=!!S.displayPartsForJSDoc;if(g){let W=D1e(R.displayParts);return{kind:R.kind,kindModifiers:R.kindModifiers,start:_.positionToLineOffset(R.textSpan.start),end:_.positionToLineOffset(Rs(R.textSpan)),displayString:W,documentation:T?this.mapDisplayParts(R.documentation,h):D1e(R.documentation),tags:this.mapJSDocTagInfo(R.tags,h,T),canIncreaseVerbosityLevel:R.canIncreaseVerbosityLevel}}else return T?R:{...R,tags:this.mapJSDocTagInfo(R.tags,h,!1)}}getFormattingEditsForRange(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.projectService.getScriptInfoForNormalizedPath(g),_=h.lineOffsetToPosition(c.line,c.offset),S=h.lineOffsetToPosition(c.endLine,c.endOffset),R=d.getFormattingEditsForRange(g,_,S,this.getFormatOptions(g));if(R)return R.map(T=>this.convertTextChangeToCodeEdit(T,h))}getFormattingEditsForRangeFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsForRange(g,c.position,c.endPosition,h)}getFormattingEditsForDocumentFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsForDocument(g,h)}getFormattingEditsAfterKeystrokeFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsAfterKeystroke(g,c.position,c.key,h)}getFormattingEditsAfterKeystroke(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.projectService.getScriptInfoForNormalizedPath(g),_=h.lineOffsetToPosition(c.line,c.offset),S=this.getFormatOptions(g),R=d.getFormattingEditsAfterKeystroke(g,_,c.key,S);if(c.key===` `&&(!R||R.length===0||JWs(R,_))){let{lineText:T,absolutePosition:W}=h.textStorage.getAbsolutePositionAndLineText(c.line);if(T&&T.search("\\S")<0){let V=d.getIndentationAtPosition(g,_,S),M=0,ee,re;for(ee=0,re=T.length;ee({start:h.positionToLineOffset(T.span.start),end:h.positionToLineOffset(Rs(T.span)),newText:T.newText?T.newText:""}))}getCompletions(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getLanguageService().getCompletionsAtPosition(d,S,{...Y4t(this.getPreferences(d)),triggerCharacter:c.triggerCharacter,triggerKind:c.triggerKind,includeExternalModuleExports:c.includeExternalModuleExports,includeInsertTextCompletions:c.includeInsertTextCompletions},h.projectService.getFormatCodeOptions(d));if(R===void 0)return;if(g==="completions-full")return R;let T=c.prefix||"",W=Xt(R.entries,M=>{if(R.isMemberCompletion||Ac(M.name.toLowerCase(),T.toLowerCase())){let ee=M.replacementSpan?kN(M.replacementSpan,_):void 0;return{...M,replacementSpan:ee,hasAction:M.hasAction||void 0,symbol:void 0}}});return g==="completions"?(R.metadata&&(W.metadata=R.metadata),W):{...R,optionalReplacementSpan:R.optionalReplacementSpan&&kN(R.optionalReplacementSpan,_),entries:W}}getCompletionEntryDetails(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.projectService.getFormatCodeOptions(d),T=!!this.getPreferences(d).displayPartsForJSDoc,W=Xt(c.entryNames,V=>{let{name:M,source:ee,data:re}=typeof V=="string"?{name:V,source:void 0,data:void 0}:V;return h.getLanguageService().getCompletionEntryDetails(d,S,M,R,ee,this.getPreferences(d),re?Ma(re,aOs):void 0)});return g?T?W:W.map(V=>({...V,tags:this.mapJSDocTagInfo(V.tags,h,!1)})):W.map(V=>({...V,codeActions:At(V.codeActions,M=>this.mapCodeAction(M)),documentation:this.mapDisplayParts(V.documentation,h),tags:this.mapJSDocTagInfo(V.tags,h,T)}))}getCompileOnSaveAffectedFileList(c){let g=this.getProjects(c,!0,!0),d=this.projectService.getScriptInfo(c.file);return d?KWs(d,h=>this.projectService.getScriptInfoForPath(h),g,(h,_)=>{if(!h.compileOnSaveEnabled||!h.languageServiceEnabled||h.isOrphan())return;let S=h.getCompilationSettings();if(!(S.noEmit||PC(_.fileName)&&!XWs(S)))return{projectFileName:h.getProjectName(),fileNames:h.getCompileOnSaveAffectedFileList(_),projectUsesOutFile:!!S.outFile}}):zm}emitFile(c){let{file:g,project:d}=this.getFileAndProject(c);if(d||QF.ThrowNoProject(),!d.languageServiceEnabled)return c.richResponse?{emitSkipped:!0,diagnostics:[]}:!1;let h=d.getScriptInfo(g),{emitSkipped:_,diagnostics:S}=d.emitFile(h,(R,T,W)=>this.host.writeFile(R,T,W));return c.richResponse?{emitSkipped:_,diagnostics:c.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(S):S.map(R=>o2e(R,!0))}:!_}getSignatureHelpItems(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getLanguageService().getSignatureHelpItems(d,S,c),T=!!this.getPreferences(d).displayPartsForJSDoc;if(R&&g){let W=R.applicableSpan;return{...R,applicableSpan:{start:_.positionToLineOffset(W.start),end:_.positionToLineOffset(W.start+W.length)},items:this.mapSignatureHelpItems(R.items,h,T)}}else return T||!R?R:{...R,items:R.items.map(W=>({...W,tags:this.mapJSDocTagInfo(W.tags,h,!1)}))}}toPendingErrorCheck(c){let g=op(c),d=this.projectService.tryGetDefaultProjectForFile(g);return d&&{fileName:g,project:d}}getDiagnostics(c,g,d){this.suppressDiagnosticEvents||d.length>0&&this.updateErrorCheck(c,d,g)}change(c){let g=this.projectService.getScriptInfo(c.file);pe.assert(!!g),g.textStorage.switchToScriptVersionCache();let d=g.lineOffsetToPosition(c.line,c.offset),h=g.lineOffsetToPosition(c.endLine,c.endOffset);d>=0&&(this.changeSeq++,this.projectService.applyChangesToFile(g,qr({span:{start:d,length:h-d},newText:c.insertString})))}reload(c){let g=op(c.file),d=c.tmpfile===void 0?void 0:op(c.tmpfile),h=this.projectService.getScriptInfoForNormalizedPath(g);h&&(this.changeSeq++,h.reloadFromFile(d))}saveToTmp(c,g){let d=this.projectService.getScriptInfo(c);d&&d.saveTo(g)}closeClientFile(c){if(!c)return;let g=iu(c);this.projectService.closeClientFile(g)}mapLocationNavigationBarItems(c,g){return At(c,d=>({text:d.text,kind:d.kind,kindModifiers:d.kindModifiers,spans:d.spans.map(h=>kN(h,g)),childItems:this.mapLocationNavigationBarItems(d.childItems,g),indent:d.indent}))}getNavigationBarItems(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getNavigationBarItems(d);return _?g?this.mapLocationNavigationBarItems(_,this.projectService.getScriptInfoForNormalizedPath(d)):_:void 0}toLocationNavigationTree(c,g){return{text:c.text,kind:c.kind,kindModifiers:c.kindModifiers,spans:c.spans.map(d=>kN(d,g)),nameSpan:c.nameSpan&&kN(c.nameSpan,g),childItems:At(c.childItems,d=>this.toLocationNavigationTree(d,g))}}getNavigationTree(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getNavigationTree(d);return _?g?this.toLocationNavigationTree(_,this.projectService.getScriptInfoForNormalizedPath(d)):_:void 0}getNavigateToItems(c,g){let d=this.getFullNavigateToItems(c);return g?er(d,({project:h,navigateToItems:_})=>_.map(S=>{let R=h.getScriptInfo(S.fileName),T={name:S.name,kind:S.kind,kindModifiers:S.kindModifiers,isCaseSensitive:S.isCaseSensitive,matchKind:S.matchKind,file:S.fileName,start:R.positionToLineOffset(S.textSpan.start),end:R.positionToLineOffset(Rs(S.textSpan))};return S.kindModifiers&&S.kindModifiers!==""&&(T.kindModifiers=S.kindModifiers),S.containerName&&S.containerName.length>0&&(T.containerName=S.containerName),S.containerKind&&S.containerKind.length>0&&(T.containerKind=S.containerKind),T})):er(d,({navigateToItems:h})=>h)}getFullNavigateToItems(c){let{currentFileOnly:g,searchValue:d,maxResultCount:h,projectFileName:_}=c;if(g){pe.assertIsDefined(c.file);let{file:ee,project:re}=this.getFileAndProject(c);return[{project:re,navigateToItems:re.getLanguageService().getNavigateToItems(d,h,ee)}]}let S=this.getHostPreferences(),R=[],T=new Map;if(!c.file&&!_)this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(ee=>W(ee));else{let ee=this.getProjects(c);ofn(ee,void 0,re=>W(re))}return R;function W(ee){let re=ee.getLanguageService().getNavigateToItems(d,h,void 0,ee.isNonTsProject(),S.excludeLibrarySymbolsInNavTo),ge=Me(re,Ie=>V(Ie)&&!Gst(Ipe(Ie),ee));ge.length&&R.push({project:ee,navigateToItems:ge})}function V(ee){let re=ee.name;if(!T.has(re))return T.set(re,[ee]),!0;let ge=T.get(re);for(let Ie of ge)if(M(Ie,ee))return!1;return ge.push(ee),!0}function M(ee,re){return ee===re?!0:!ee||!re?!1:ee.containerKind===re.containerKind&&ee.containerName===re.containerName&&ee.fileName===re.fileName&&ee.isCaseSensitive===re.isCaseSensitive&&ee.kind===re.kind&&ee.kindModifiers===re.kindModifiers&&ee.matchKind===re.matchKind&&ee.name===re.name&&ee.textSpan.start===re.textSpan.start&&ee.textSpan.length===re.textSpan.length}}getSupportedCodeFixes(c){if(!c)return znt();if(c.file){let{file:d,project:h}=this.getFileAndProject(c);return h.getLanguageService().getSupportedCodeFixes(d)}let g=this.getProject(c.projectFileName);return g||QF.ThrowNoProject(),g.getLanguageService().getSupportedCodeFixes()}isLocation(c){return c.line!==void 0}extractPositionOrRange(c,g){let d,h;return this.isLocation(c)?d=_(c):h=this.getRange(c,g),pe.checkDefined(d===void 0?h:d);function _(S){return S.position!==void 0?S.position:g.lineOffsetToPosition(S.line,S.offset)}}getRange(c,g){let{startPosition:d,endPosition:h}=this.getStartAndEndPosition(c,g);return{pos:d,end:h}}getApplicableRefactors(c){let{file:g,project:d}=this.getFileAndProject(c),h=d.getScriptInfoForNormalizedPath(g);return d.getLanguageService().getApplicableRefactors(g,this.extractPositionOrRange(c,h),this.getPreferences(g),c.triggerReason,c.kind,c.includeInteractiveActions).map(S=>({...S,actions:S.actions.map(R=>({...R,range:R.range?{start:cse({line:R.range.start.line,character:R.range.start.offset}),end:cse({line:R.range.end.line,character:R.range.end.offset})}:void 0}))}))}getEditsForRefactor(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=h.getScriptInfoForNormalizedPath(d),S=h.getLanguageService().getEditsForRefactor(d,this.getFormatOptions(d),this.extractPositionOrRange(c,_),c.refactor,c.action,this.getPreferences(d),c.interactiveRefactorArguments);if(S===void 0)return{edits:[]};if(g){let{renameFilename:R,renameLocation:T,edits:W}=S,V;if(R!==void 0&&T!==void 0){let M=h.getScriptInfoForNormalizedPath(op(R));V=uJt(Lz(M.getSnapshot()),R,T,W)}return{renameLocation:V,renameFilename:R,edits:this.mapTextChangesToCodeEdits(W),notApplicableReason:S.notApplicableReason}}return S}getMoveToRefactoringFileSuggestions(c){let{file:g,project:d}=this.getFileAndProject(c),h=d.getScriptInfoForNormalizedPath(g);return d.getLanguageService().getMoveToRefactoringFileSuggestions(g,this.extractPositionOrRange(c,h),this.getPreferences(g))}preparePasteEdits(c){let{file:g,project:d}=this.getFileAndProject(c);return d.getLanguageService().preparePasteEditsForFile(g,c.copiedTextSpan.map(h=>this.getRange({file:g,startLine:h.start.line,startOffset:h.start.offset,endLine:h.end.line,endOffset:h.end.offset},this.projectService.getScriptInfoForNormalizedPath(g))))}getPasteEdits(c){let{file:g,project:d}=this.getFileAndProject(c);if(ppe(g))return;let h=c.copiedFrom?{file:c.copiedFrom.file,range:c.copiedFrom.spans.map(S=>this.getRange({file:c.copiedFrom.file,startLine:S.start.line,startOffset:S.start.offset,endLine:S.end.line,endOffset:S.end.offset},d.getScriptInfoForNormalizedPath(op(c.copiedFrom.file))))}:void 0,_=d.getLanguageService().getPasteEdits({targetFile:g,pastedText:c.pastedText,pasteLocations:c.pasteLocations.map(S=>this.getRange({file:g,startLine:S.start.line,startOffset:S.start.offset,endLine:S.end.line,endOffset:S.end.offset},d.getScriptInfoForNormalizedPath(g))),copiedFrom:h,preferences:this.getPreferences(g)},this.getFormatOptions(g));return _&&this.mapPasteEditsAction(_)}organizeImports(c,g){pe.assert(c.scope.type==="file");let{file:d,project:h}=this.getFileAndProject(c.scope.args),_=h.getLanguageService().organizeImports({fileName:d,mode:c.mode??(c.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(d),this.getPreferences(d));return g?this.mapTextChangesToCodeEdits(_):_}getEditsForFileRename(c,g){let d=op(c.oldFilePath),h=op(c.newFilePath),_=this.getHostFormatOptions(),S=this.getHostPreferences(),R=new Set,T=[];return this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(W=>{let V=W.getLanguageService().getEditsForFileRename(d,h,_,S),M=[];for(let ee of V)R.has(ee.fileName)||(T.push(ee),M.push(ee.fileName));for(let ee of M)R.add(ee)}),g?T.map(W=>this.mapTextChangeToCodeEdit(W)):T}getCodeFixes(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=h.getScriptInfoForNormalizedPath(d),{startPosition:S,endPosition:R}=this.getStartAndEndPosition(c,_),T;try{T=h.getLanguageService().getCodeFixesAtPosition(d,S,R,c.errorCodes,this.getFormatOptions(d),this.getPreferences(d))}catch(W){let V=W instanceof Error?W:new Error(W),M=h.getLanguageService(),ee=[...M.getSyntacticDiagnostics(d),...M.getSemanticDiagnostics(d),...M.getSuggestionDiagnostics(d)].filter(ge=>IE(S,R-S,ge.start,ge.length)).map(ge=>ge.code),re=c.errorCodes.find(ge=>!ee.includes(ge));throw re!==void 0&&(V.message+=` Additional information: BADCLIENT: Bad error code, ${re} not found in range ${S}..${R} (found: ${ee.join(", ")})`),V}return g?T.map(W=>this.mapCodeFixAction(W)):T}getCombinedCodeFix({scope:c,fixId:g},d){pe.assert(c.type==="file");let{file:h,project:_}=this.getFileAndProject(c.args),S=_.getLanguageService().getCombinedCodeFix({type:"file",fileName:h},g,this.getFormatOptions(h),this.getPreferences(h));return d?{changes:this.mapTextChangesToCodeEdits(S.changes),commands:S.commands}:S}applyCodeActionCommand(c){let g=c.command;for(let d of cc(g)){let{file:h,project:_}=this.getFileAndProject(d);_.getLanguageService().applyCodeActionCommand(d,this.getFormatOptions(h)).then(S=>{},S=>{})}return{}}getStartAndEndPosition(c,g){let d,h;return c.startPosition!==void 0?d=c.startPosition:(d=g.lineOffsetToPosition(c.startLine,c.startOffset),c.startPosition=d),c.endPosition!==void 0?h=c.endPosition:(h=g.lineOffsetToPosition(c.endLine,c.endOffset),c.endPosition=h),{startPosition:d,endPosition:h}}mapCodeAction({description:c,changes:g,commands:d}){return{description:c,changes:this.mapTextChangesToCodeEdits(g),commands:d}}mapCodeFixAction({fixName:c,description:g,changes:d,commands:h,fixId:_,fixAllDescription:S}){return{fixName:c,description:g,changes:this.mapTextChangesToCodeEdits(d),commands:h,fixId:_,fixAllDescription:S}}mapPasteEditsAction({edits:c,fixId:g}){return{edits:this.mapTextChangesToCodeEdits(c),fixId:g}}mapTextChangesToCodeEdits(c){return c.map(g=>this.mapTextChangeToCodeEdit(g))}mapTextChangeToCodeEdit(c){let g=this.projectService.getScriptInfoOrConfig(c.fileName);return!!c.isNewFile==!!g&&(g||this.projectService.logErrorForScriptInfoNotFound(c.fileName),pe.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!c.isNewFile,hasScriptInfo:!!g}))),g?{fileName:c.fileName,textChanges:c.textChanges.map(d=>tOs(d,g))}:iOs(c)}convertTextChangeToCodeEdit(c,g){return{start:g.positionToLineOffset(c.span.start),end:g.positionToLineOffset(c.span.start+c.span.length),newText:c.newText?c.newText:""}}getBraceMatching(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getBraceMatchingAtPosition(d,S);return R?g?R.map(T=>kN(T,_)):R:void 0}getDiagnosticsForProject(c,g,d){if(this.suppressDiagnosticEvents)return;let{fileNames:h,languageServiceDisabled:_}=this.getProjectInfoWorker(d,void 0,!0,void 0,!0);if(_)return;let S=h.filter(Ie=>!Ie.includes("lib.d.ts"));if(S.length===0)return;let R=[],T=[],W=[],V=[],M=op(d),ee=this.projectService.ensureDefaultProjectForFile(M);for(let Ie of S)this.getCanonicalFileName(Ie)===this.getCanonicalFileName(d)?R.push(Ie):this.projectService.getScriptInfo(Ie).isScriptOpen()?T.push(Ie):PC(Ie)?V.push(Ie):W.push(Ie);let ge=[...R,...T,...W,...V].map(Ie=>({fileName:Ie,project:ee}));this.updateErrorCheck(c,ge,g,!1)}configurePlugin(c){this.projectService.configurePlugin(c)}getSmartSelectionRange(c,g){let{locations:d}=c,{file:h,languageService:_}=this.getFileAndLanguageServiceForSyntacticOperation(c),S=pe.checkDefined(this.projectService.getScriptInfo(h));return At(d,R=>{let T=this.getPosition(R,S),W=_.getSmartSelectionRange(h,T);return g?this.mapSelectionRange(W,S):W})}toggleLineComment(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfo(d),S=this.getRange(c,_),R=h.toggleLineComment(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}toggleMultilineComment(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.toggleMultilineComment(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}commentSelection(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.commentSelection(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}uncommentSelection(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.uncommentSelection(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}mapSelectionRange(c,g){let d={textSpan:kN(c.textSpan,g)};return c.parent&&(d.parent=this.mapSelectionRange(c.parent,g)),d}getScriptInfoFromProjectService(c){let g=op(c),d=this.projectService.getScriptInfoForNormalizedPath(g);return d||(this.projectService.logErrorForScriptInfoNotFound(g),QF.ThrowNoProject())}toProtocolCallHierarchyItem(c){let g=this.getScriptInfoFromProjectService(c.file);return{name:c.name,kind:c.kind,kindModifiers:c.kindModifiers,file:c.file,containerName:c.containerName,span:kN(c.span,g),selectionSpan:kN(c.selectionSpan,g)}}toProtocolCallHierarchyIncomingCall(c){let g=this.getScriptInfoFromProjectService(c.from.file);return{from:this.toProtocolCallHierarchyItem(c.from),fromSpans:c.fromSpans.map(d=>kN(d,g))}}toProtocolCallHierarchyOutgoingCall(c,g){return{to:this.toProtocolCallHierarchyItem(c.to),fromSpans:c.fromSpans.map(d=>kN(d,g))}}prepareCallHierarchy(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.projectService.getScriptInfoForNormalizedPath(g);if(h){let _=this.getPosition(c,h),S=d.getLanguageService().prepareCallHierarchy(g,_);return S&&ant(S,R=>this.toProtocolCallHierarchyItem(R))}}provideCallHierarchyIncomingCalls(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getScriptInfoFromProjectService(g);return d.getLanguageService().provideCallHierarchyIncomingCalls(g,this.getPosition(c,h)).map(S=>this.toProtocolCallHierarchyIncomingCall(S))}provideCallHierarchyOutgoingCalls(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getScriptInfoFromProjectService(g);return d.getLanguageService().provideCallHierarchyOutgoingCalls(g,this.getPosition(c,h)).map(S=>this.toProtocolCallHierarchyOutgoingCall(S,h))}getCanonicalFileName(c){let g=this.host.useCaseSensitiveFileNames?c:Om(c);return iu(g)}exit(){}notRequired(c){return c&&this.doOutput(void 0,c.command,c.seq,!0,this.performanceData),{responseRequired:!1,performanceData:this.performanceData}}requiredResponse(c){return{response:c,responseRequired:!0,performanceData:this.performanceData}}addProtocolHandler(c,g){if(this.handlers.has(c))throw new Error(`Protocol handler already exists for command "${c}"`);this.handlers.set(c,g)}setCurrentRequest(c){pe.assert(this.currentRequestId===void 0),this.currentRequestId=c,this.cancellationToken.setRequest(c)}resetCurrentRequest(c){pe.assert(this.currentRequestId===c),this.currentRequestId=void 0,this.cancellationToken.resetRequest(c)}executeWithRequestId(c,g,d){let h=this.performanceData;try{return this.performanceData=d,this.setCurrentRequest(c),g()}finally{this.resetCurrentRequest(c),this.performanceData=h}}executeCommand(c){let g=this.handlers.get(c.command);if(g){let d=this.executeWithRequestId(c.seq,()=>g(c),void 0);return this.projectService.enableRequestedPlugins(),d}else return this.logger.msg(`Unrecognized JSON command:${j3(c)}`,"Err"),this.doOutput(void 0,"unknown",c.seq,!1,void 0,`Unrecognized JSON command: ${c.command}`),{responseRequired:!1}}onMessage(c){var g,d,h,_,S,R,T;this.gcTimer.scheduleCollect();let W,V=this.performanceData;this.logger.hasLevel(2)&&(W=this.hrtime(),this.logger.hasLevel(3)&&this.logger.info(`request:${Wde(this.toStringMessage(c))}`));let M,ee;try{M=this.parseMessage(c),ee=M.arguments&&M.arguments.file?M.arguments:void 0,(g=ki)==null||g.instant(ki.Phase.Session,"request",{seq:M.seq,command:M.command}),(d=ki)==null||d.push(ki.Phase.Session,"executeCommand",{seq:M.seq,command:M.command},!0);let{response:re,responseRequired:ge,performanceData:Ie}=this.executeCommand(M);if((h=ki)==null||h.pop(),this.logger.hasLevel(2)){let _e=QWs(this.hrtime(W)).toFixed(4);ge?this.logger.perftrc(`${M.seq}::${M.command}: elapsed time (in milliseconds) ${_e}`):this.logger.perftrc(`${M.seq}::${M.command}: async elapsed time (in milliseconds) ${_e}`)}(_=ki)==null||_.instant(ki.Phase.Session,"response",{seq:M.seq,command:M.command,success:!!re}),re?this.doOutput(re,M.command,M.seq,!0,Ie):ge&&this.doOutput(void 0,M.command,M.seq,!1,Ie,"No content available.")}catch(re){if((S=ki)==null||S.popAll(),re instanceof By){(R=ki)==null||R.instant(ki.Phase.Session,"commandCanceled",{seq:M?.seq,command:M?.command}),this.doOutput({canceled:!0},M.command,M.seq,!0,this.performanceData);return}this.logErrorWorker(re,this.toStringMessage(c),ee),(T=ki)==null||T.instant(ki.Phase.Session,"commandError",{seq:M?.seq,command:M?.command,message:re.message}),this.doOutput(void 0,M?M.command:"unknown",M?M.seq:0,!1,this.performanceData,"Error processing request. "+re.message+` -`+re.stack)}finally{this.performanceData=V}}parseMessage(c){return JSON.parse(c)}toStringMessage(c){return c}getFormatOptions(c){return this.projectService.getFormatCodeOptions(c)}getPreferences(c){return this.projectService.getPreferences(c)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function dfn(s){let c=s.diagnosticsDuration&&Do(s.diagnosticsDuration,([g,d])=>({...d,file:g}));return{...s,diagnosticsDuration:c}}function kN(s,c){return{start:c.positionToLineOffset(s.start),end:c.positionToLineOffset(Rs(s))}}function lJt(s,c,g){let d=kN(s,g),h=c&&kN(c,g);return h?{...d,contextStart:h.start,contextEnd:h.end}:d}function tOs(s,c){return{start:pfn(c,s.span.start),end:pfn(c,Rs(s.span)),newText:s.newText}}function pfn(s,c){return rJt(s)?nOs(s.getLineAndCharacterOfPosition(c)):s.positionToLineOffset(c)}function rOs(s,c){let g=s.ranges.map(d=>({start:c.positionToLineOffset(d.start),end:c.positionToLineOffset(d.start+d.length)}));return s.wordPattern?{ranges:g,wordPattern:s.wordPattern}:{ranges:g}}function nOs(s){return{line:s.line+1,offset:s.character+1}}function iOs(s){pe.assert(s.textChanges.length===1);let c=ma(s.textChanges);return pe.assert(c.span.start===0&&c.span.length===0),{fileName:s.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:c.newText}]}}function uJt(s,c,g,d){let h=sOs(s,c,d),{line:_,character:S}=Ci(cA(h),g);return{line:_+1,offset:S+1}}function sOs(s,c,g){for(let{fileName:d,textChanges:h}of g)if(d===c)for(let _=h.length-1;_>=0;_--){let{newText:S,span:{start:R,length:T}}=h[_];s=s.slice(0,R)+S+s.slice(R+T)}return s}function ffn(s,{fileName:c,textSpan:g,contextSpan:d,isWriteAccess:h,isDefinition:_},{disableLineTextInReferences:S}){let R=pe.checkDefined(s.getScriptInfo(c)),T=lJt(g,d,R),W=S?void 0:oOs(R,T);return{file:c,...T,lineText:W,isWriteAccess:h,isDefinition:_}}function oOs(s,c){let g=s.lineToTextSpan(c.start.line-1);return s.getSnapshot().getText(g.start,Rs(g)).replace(/\r|\n/g,"")}function aOs(s){return s===void 0||s&&typeof s=="object"&&typeof s.exportName=="string"&&(s.fileName===void 0||typeof s.fileName=="string")&&(s.ambientModuleName===void 0||typeof s.ambientModuleName=="string"&&(s.isPackageJsonImport===void 0||typeof s.isPackageJsonImport=="boolean"))}var lse=4,gJt=(s=>(s[s.PreStart=0]="PreStart",s[s.Start=1]="Start",s[s.Entire=2]="Entire",s[s.Mid=3]="Mid",s[s.End=4]="End",s[s.PostEnd=5]="PostEnd",s))(gJt||{}),cOs=class{constructor(){this.goSubtree=!0,this.lineIndex=new a2e,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new use,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(s,c){c&&(this.trailingText=""),s?s=this.initialText+s+this.trailingText:s=this.initialText+this.trailingText;let d=a2e.linesFromText(s).lines;d.length>1&&d[d.length-1]===""&&d.pop();let h,_;for(let R=this.endBranch.length-1;R>=0;R--)this.endBranch[R].updateCounts(),this.endBranch[R].charCount()===0&&(_=this.endBranch[R],R>0?h=this.endBranch[R-1]:h=this.branchNode);_&&h.remove(_);let S=this.startPath[this.startPath.length-1];if(d.length>0)if(S.text=d[0],d.length>1){let R=new Array(d.length-1),T=S;for(let M=1;M=0;){let M=this.startPath[W];R=M.insertAt(T,R),W--,T=M}let V=R.length;for(;V>0;){let M=new use;M.add(this.lineIndex.root),R=M.insertAt(this.lineIndex.root,R),V=R.length,this.lineIndex.root=M}this.lineIndex.root.updateCounts()}else for(let R=this.startPath.length-2;R>=0;R--)this.startPath[R].updateCounts();else{this.startPath[this.startPath.length-2].remove(S);for(let T=this.startPath.length-2;T>=0;T--)this.startPath[T].updateCounts()}return this.lineIndex}post(s,c,g){g===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(s,c,g,d,h){let _=this.stack[this.stack.length-1];this.state===2&&h===1&&(this.state=1,this.branchNode=_,this.lineCollectionAtBranch=g);let S;function R(T){return T.isLeaf()?new lWe(""):new use}switch(h){case 0:this.goSubtree=!1,this.state!==4&&_.add(g);break;case 1:this.state===4?this.goSubtree=!1:(S=R(g),_.add(S),this.startPath.push(S));break;case 2:this.state!==4?(S=R(g),_.add(S),this.startPath.push(S)):g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 5:this.goSubtree=!1,this.state!==1&&_.add(g);break}this.goSubtree&&this.stack.push(S)}leaf(s,c,g){this.state===1?this.initialText=g.text.substring(0,s):this.state===2?(this.initialText=g.text.substring(0,s),this.trailingText=g.text.substring(s+c)):this.trailingText=g.text.substring(s+c)}},lOs=class{constructor(s,c,g){this.pos=s,this.deleteLen=c,this.insertedText=g}getTextChangeRange(){return $2(zd(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},Fst=class yj{constructor(){this.changes=[],this.versions=new Array(yj.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(c){if(!(cthis.currentVersion))return c%yj.maxVersions}currentVersionToIndex(){return this.currentVersion%yj.maxVersions}edit(c,g,d){this.changes.push(new lOs(c,g,d)),(this.changes.length>yj.changeNumberThreshold||g>yj.changeLengthThreshold||d&&d.length>yj.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let c=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let g=c.index;for(let d of this.changes)g=g.edit(d.pos,d.deleteLen,d.insertedText);c=new Ifn(this.currentVersion+1,this,g,this.changes),this.currentVersion=c.version,this.versions[this.currentVersionToIndex()]=c,this.changes=[],this.currentVersion-this.minVersion>=yj.maxVersions&&(this.minVersion=this.currentVersion-yj.maxVersions+1)}return c}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(c){return this._getSnapshot().index.lineNumberToInfo(c)}lineOffsetToPosition(c,g){return this._getSnapshot().index.absolutePositionOfStartOfLine(c)+(g-1)}positionToLineOffset(c){return this._getSnapshot().index.positionToLineOffset(c)}lineToTextSpan(c){let g=this._getSnapshot().index,{lineText:d,absolutePosition:h}=g.lineNumberToInfo(c+1),_=d!==void 0?d.length:g.absolutePositionOfStartOfLine(c+2)-h;return zd(h,_)}getTextChangesBetweenVersions(c,g){if(c=this.minVersion){let d=[];for(let h=c+1;h<=g;h++){let _=this.versions[this.versionToIndex(h)];for(let S of _.changesSincePreviousVersion)d.push(S.getTextChangeRange())}return z(d)}else return;else return Eo}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(c){let g=new yj,d=new Ifn(0,g,new a2e);g.versions[g.currentVersion]=d;let h=a2e.linesFromText(c);return d.index.load(h.lines),g}};Fst.changeNumberThreshold=8,Fst.changeLengthThreshold=256,Fst.maxVersions=8;var Zst=Fst,Ifn=class JDi{constructor(c,g,d,h=zm){this.version=c,this.cache=g,this.index=d,this.changesSincePreviousVersion=h}getText(c,g){return this.index.getText(c,g-c)}getLength(){return this.index.getLength()}getChangeRange(c){if(c instanceof JDi&&this.cache===c.cache)return this.version<=c.version?Eo:this.cache.getTextChangesBetweenVersions(c.version,this.version)}},a2e=class zkr{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(c){return this.lineNumberToInfo(c).absolutePosition}positionToLineOffset(c){let{oneBasedLine:g,zeroBasedColumn:d}=this.root.charOffsetToLineInfo(1,c);return{line:g,offset:d+1}}positionToColumnAndLineText(c){return this.root.charOffsetToLineInfo(1,c)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(c){let g=this.getLineCount();if(c<=g){let{position:d,leaf:h}=this.root.lineNumberToInfo(c,0);return{absolutePosition:d,lineText:h&&h.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(c){if(c.length>0){let g=[];for(let d=0;d0&&c{d=d.concat(S.text.substring(h,h+_))}}),d}getLength(){return this.root.charCount()}every(c,g,d){d||(d=this.root.charCount());let h={goSubtree:!0,done:!1,leaf(_,S,R){c(R,_,S)||(this.done=!0)}};return this.walk(g,d-g,h),!h.done}edit(c,g,d){if(this.root.charCount()===0)return pe.assert(g===0),d!==void 0?(this.load(zkr.linesFromText(d).lines),this):void 0;{let h;if(this.checkEdits){let R=this.getText(0,this.root.charCount());h=R.slice(0,c)+d+R.slice(c+g)}let _=new cOs,S=!1;if(c>=this.root.charCount()){c=this.root.charCount()-1;let R=this.getText(c,1);d?d=R+d:d=R,g=0,S=!0}else if(g>0){let R=c+g,{zeroBasedColumn:T,lineText:W}=this.positionToColumnAndLineText(R);T===0&&(g+=W.length,d=d?d+W:W)}if(this.root.walk(c,g,_),_.insertLines(d,S),this.checkEdits){let R=_.lineIndex.getText(0,_.lineIndex.getLength());pe.assert(h===R,"buffer edit mismatch")}return _.lineIndex}}static buildTreeFromBottom(c){if(c.length0?d[h]=_:d.pop(),{lines:d,lineMap:g}}},use=class qkr{constructor(c=[]){this.children=c,this.totalChars=0,this.totalLines=0,c.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let c of this.children)this.totalChars+=c.charCount(),this.totalLines+=c.lineCount()}execWalk(c,g,d,h,_){return d.pre&&d.pre(c,g,this.children[h],this,_),d.goSubtree?(this.children[h].walk(c,g,d),d.post&&d.post(c,g,this.children[h],this,_)):d.goSubtree=!0,d.done}skipChild(c,g,d,h,_){h.pre&&!h.done&&(h.pre(c,g,this.children[d],this,_),h.goSubtree=!0)}walk(c,g,d){if(this.children.length===0)return;let h=0,_=this.children[h].charCount(),S=c;for(;S>=_;)this.skipChild(S,g,h,d,0),S-=_,h++,_=this.children[h].charCount();if(S+g<=_){if(this.execWalk(S,g,d,h,2))return}else{if(this.execWalk(S,_-S,d,h,1))return;let R=g-(_-S);for(h++,_=this.children[h].charCount();R>_;){if(this.execWalk(0,_,d,h,3))return;R-=_,h++,_=this.children[h].charCount()}if(R>0&&this.execWalk(0,R,d,h,4))return}if(d.pre){let R=this.children.length;if(hg)return _.isLeaf()?{oneBasedLine:c,zeroBasedColumn:g,lineText:_.text}:_.charOffsetToLineInfo(c,g);g-=_.charCount(),c+=_.lineCount()}let d=this.lineCount();if(d===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let h=pe.checkDefined(this.lineNumberToInfo(d,0).leaf);return{oneBasedLine:d,zeroBasedColumn:h.charCount(),lineText:void 0}}lineNumberToInfo(c,g){for(let d of this.children){let h=d.lineCount();if(h>=c)return d.isLeaf()?{position:g,leaf:d}:d.lineNumberToInfo(c,g);c-=h,g+=d.charCount()}return{position:g,leaf:void 0}}splitAfter(c){let g,d=this.children.length;c++;let h=c;if(c=0;ee--)T[ee].children.length===0&&T.pop()}S&&T.push(S),this.updateCounts();for(let V=0;V{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:h,reject:_})});return this.installer.send(g),d}attach(c){this.projectService=c,this.installer=this.createInstallerProcess()}onProjectClosed(c){this.installer.send({projectName:c.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(c,g,d){let h=m4t(c,g,d);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${j3(h)}`),this.activeRequestCount0?this.activeRequestCount--:pe.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let h=this.requestQueue.dequeue();if(this.requestMap.get(h.projectName)===h){this.requestMap.delete(h.projectName),this.scheduleRequest(h);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${h.projectName}`)}this.projectService.updateTypingsForProject(c),this.event(c,"setTypings");break}case n1e:this.projectService.watchTypingLocations(c);break;default:}}scheduleRequest(c){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${c.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${j3(c)}`),this.installer.send(c)},UDi.requestDelayMillis,`${c.projectName}::${c.kind}`)}};hfn.requestDelayMillis=100;var mfn=hfn,Cfn={};o(Cfn,{ActionInvalidate:()=>wVe,ActionPackageInstalled:()=>TVe,ActionSet:()=>BVe,ActionWatchTypingLocations:()=>n1e,Arguments:()=>lrt,AutoImportProviderProject:()=>P4t,AuxiliaryProject:()=>L4t,CharRangeSection:()=>gJt,CloseFileWatcherEvent:()=>Sst,CommandNames:()=>ifn,ConfigFileDiagEvent:()=>Cst,ConfiguredProject:()=>W4t,ConfiguredProjectLoadKind:()=>X4t,CreateDirectoryWatcherEvent:()=>Est,CreateFileWatcherEvent:()=>bst,Errors:()=>QF,EventBeginInstallTypes:()=>art,EventEndInstallTypes:()=>crt,EventInitializationFailed:()=>S5t,EventTypesRegistry:()=>ort,ExternalProject:()=>dst,GcTimer:()=>v4t,InferredProject:()=>Z4t,LargeFileReferencedEvent:()=>mst,LineIndex:()=>a2e,LineLeaf:()=>lWe,LineNode:()=>use,LogLevel:()=>I4t,Msg:()=>h4t,OpenFileInfoTelemetryEvent:()=>O4t,Project:()=>zz,ProjectInfoTelemetryEvent:()=>yst,ProjectKind:()=>fpe,ProjectLanguageServiceStateEvent:()=>_st,ProjectLoadingFinishEvent:()=>hst,ProjectLoadingStartEvent:()=>Ist,ProjectService:()=>tJt,ProjectsUpdatedInBackgroundEvent:()=>oWe,ScriptInfo:()=>R4t,ScriptVersionCache:()=>Zst,Session:()=>Afn,TextStorage:()=>T4t,ThrottledOperations:()=>S4t,TypingsInstallerAdapter:()=>mfn,allFilesAreJsOrDts:()=>x4t,allRootFilesAreJsOrDts:()=>k4t,asNormalizedPath:()=>Npn,convertCompilerOptions:()=>aWe,convertFormatOptions:()=>ase,convertScriptKindName:()=>Bst,convertTypeAcquisition:()=>H4t,convertUserPreferences:()=>Y4t,convertWatchOptions:()=>s2e,countEachFileTypes:()=>t2e,createInstallTypingsRequest:()=>m4t,createModuleSpecifierCache:()=>iJt,createNormalizedPathMap:()=>Dpn,createPackageJsonCache:()=>sJt,createSortedArray:()=>E4t,emptyArray:()=>zm,findArgument:()=>Nnn,formatDiagnosticToProtocol:()=>o2e,formatMessage:()=>oJt,getBaseConfigFileName:()=>Ast,getDetailWatchInfo:()=>Nst,getLocationInNewDocument:()=>uJt,hasArgument:()=>Rnn,hasNoTypeScriptSource:()=>G4t,indent:()=>Wde,isBackgroundProject:()=>n2e,isConfigFile:()=>rJt,isConfiguredProject:()=>s9,isDynamicFileName:()=>ppe,isExternalProject:()=>r2e,isInferredProject:()=>ose,isInferredProjectName:()=>C4t,isProjectDeferredClose:()=>i2e,makeAutoImportProviderProjectName:()=>y4t,makeAuxiliaryProjectName:()=>b4t,makeInferredProjectName:()=>_4t,maxFileSize:()=>fst,maxProgramSizeForNonTsFiles:()=>pst,normalizedPathToPath:()=>sse,nowString:()=>Dnn,nullCancellationToken:()=>tfn,nullTypingsInstaller:()=>cWe,protocol:()=>B4t,scriptInfoIsContainedByBackgroundProject:()=>N4t,scriptInfoIsContainedByDeferredClosedProject:()=>D4t,stringifyIndented:()=>j3,toEvent:()=>aJt,toNormalizedPath:()=>op,tryConvertScriptKindName:()=>vst,typingsInstaller:()=>f4t,updateProjectIfDirty:()=>_v}),typeof console<"u"&&(pe.loggingHost={log(s,c){switch(s){case 1:return console.error(c);case 2:return console.warn(c);case 3:return console.log(c);case 4:return console.log(c)}}})})({get exports(){return ODi},set exports(e){ODi=e,typeof UEt<"u"&&UEt.exports&&(UEt.exports=e)}})});var bxr=H((rZu,fxi)=>{"use strict";fxi.exports=function(t,r){r===!0&&(r=0);var n="";if(typeof t=="string")try{n=new URL(t).protocol}catch{}else t&&t.constructor===URL&&(n=t.protocol);var a=n.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hxi=H((nZu,Ixi)=>{"use strict";var Apc=bxr();function dpc(e){var t={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:e,query:{},parse_failed:!1};try{var r=new URL(e);t.protocols=Apc(r),t.protocol=t.protocols[0],t.port=r.port,t.resource=r.hostname,t.host=r.host,t.user=r.username||"",t.password=r.password||"",t.pathname=r.pathname,t.hash=r.hash.slice(1),t.search=r.search.slice(1),t.href=r.href,t.query=Object.fromEntries(r.searchParams)}catch{t.protocols=["file"],t.protocol=t.protocols[0],t.port="",t.resource="",t.user="",t.pathname="",t.hash="",t.search="",t.href=e,t.query={},t.parse_failed=!0}return t}Ixi.exports=dpc});var _xi=H((iZu,Cxi)=>{"use strict";var ppc=hxi();function fpc(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Ipc=fpc(ppc),hpc="text/plain",mpc="us-ascii",mxi=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),Cpc=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===mpc)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length>0||f&&f!==hpc)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`};function _pc(e,t){if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return Cpc(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let l=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,f="";for(;;){let C=l.exec(a.pathname);if(!C)break;let b=C[0],E=C.index,N=a.pathname.slice(A,E);f+=N.replace(/\/{2,}/g,"/"),f+=b,A=E+b.length}let I=a.pathname.slice(A,a.pathname.length);f+=I.replace(/\/{2,}/g,"/"),a.pathname=f}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let l=a.pathname.split("/"),A=l[l.length-1];mxi(A,t.removeDirectoryIndex)&&(l=l.slice(0,-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])mxi(l,t.removeQueryParameters)&&a.searchParams.delete(l);if(t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e}var Exr=(e,t=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,n=o=>{let l=new Error(o);throw l.subject_url=e,l};(typeof e!="string"||!e.trim())&&n("Invalid url."),e.length>Exr.MAX_INPUT_LENGTH&&n("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),t&&(typeof t!="object"&&(t={stripHash:!1}),e=_pc(e,t));let a=Ipc.default(e);if(a.parse_failed){let o=a.href.match(r);o?(a.protocols=["ssh"],a.protocol="ssh",a.resource=o[2],a.host=o[2],a.user=o[1],a.pathname=`/${o[3]}`,a.parse_failed=!1):n("URL parsing failed.")}return a};Exr.MAX_INPUT_LENGTH=2048;Cxi.exports=Exr});var Exi=H((sZu,bxi)=>{"use strict";var ypc=bxr();function yxi(e){if(Array.isArray(e))return e.indexOf("ssh")!==-1||e.indexOf("rsync")!==-1;if(typeof e!="string")return!1;var t=ypc(e);if(e=e.substring(e.indexOf("://")+3),yxi(t))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!e.match(r)&&e.indexOf("@"){"use strict";var bpc=_xi(),Sxi=Exi();function Epc(e){var t=bpc(e);return t.token="",t.password==="x-oauth-basic"?t.token=t.user:t.user==="x-token-auth"&&(t.token=t.password),Sxi(t.protocols)||t.protocols.length===0&&Sxi(e)?t.protocol="ssh":t.protocols.length?t.protocol=t.protocols[0]:(t.protocol="file",t.protocols=["file"]),t.href=t.href.replace(/\/$/,""),t}vxi.exports=Epc});var Txi=H((aZu,wxi)=>{"use strict";var Spc=Bxi();function Sxr(e){if(typeof e!="string")throw new Error("The url must be a string.");var t=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;t.test(e)&&(e="https://github.com/"+e);var r=Spc(e),n=r.resource.split("."),a=null;switch(r.toString=function(Q){return Sxr.stringify(this,Q)},r.source=n.length>2?n.slice(1-n.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=n[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var o=a.length-1;if(a.length>=2){var l=a.indexOf("-",2),A=a.indexOf("blob",2),f=a.indexOf("tree",2),I=a.indexOf("commit",2),C=a.indexOf("src",2),b=a.indexOf("raw",2),E=a.indexOf("edit",2);o=l>0?l-1:A>0?A-1:f>0?f-1:I>0?I-1:C>0?C-1:b>0?b-1:E>0?E-1:o,r.owner=a.slice(0,o).join("/"),r.name=a[o],I&&(r.commit=a[o+2])}r.ref="",r.filepathtype="",r.filepath="";var N=a.length>o&&a[o+1]==="-"?o+1:o;a.length>N+2&&["raw","src","blob","tree","edit"].indexOf(a[N+1])>=0&&(r.filepathtype=a[N+1],r.ref=a[N+2],a.length>N+3&&(r.filepath=a.slice(N+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var B=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,F=B.exec(r.pathname);return F!=null&&(r.source="bitbucket-server",F[1]==="users"?r.owner="~"+F[2]:r.owner=F[2],r.organization=r.owner,r.name=F[3],a=F[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Sxr.stringify=function(e,t){t=t||(e.protocols&&e.protocols.length?e.protocols.join("+"):e.protocol);var r=e.port?":"+e.port:"",n=e.user||"git",a=e.git_suffix?".git":"";switch(t){case"ssh":return r?"ssh://"+n+"@"+e.resource+r+"/"+e.full_name+a:n+"@"+e.resource+":"+e.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return t+"://"+n+"@"+e.resource+r+"/"+e.full_name+a;case"http":case"https":var o=e.token?vpc(e):e.user&&(e.protocols.includes("http")||e.protocols.includes("https"))?e.user+"@":"";return t+"://"+o+e.resource+r+"/"+Bpc(e)+a;default:return e.href}};function vpc(e){switch(e.source){case"bitbucket.org":return"x-token-auth:"+e.token+"@";default:return e.token+"@"}}function Bpc(e){switch(e.source){case"bitbucket-server":return"scm/"+e.full_name;default:return""+e.full_name}}wxi.exports=Sxr});var Nxi=H(Bxr=>{"use strict";Object.defineProperty(Bxr,"__esModule",{value:!0});Bxr.tryParseGitURL=Tpc;function vxr(e,t,r){let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)}function Rxi(e){try{return new URL(e)}catch{return}}function wpc(e){let t=vxr(e,"@","#"),r=vxr(e,":","#");return r>t&&(e=`${e.slice(0,r)}/${e.slice(r+1)}`),vxr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`ssh://${e}`),e}function Tpc(e){return Rxi(e)||Rxi(wpc(e))}});var Dxi=H(wxr=>{"use strict";Object.defineProperty(wxr,"__esModule",{value:!0});wxr.normalizeRepoUrl=Npc;var Rpc=Nxi();function Npc(e,{git:t=!1}={}){if(e=e.replace(/^git\+https:/,"https:"),e=e.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),e=e.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let r=(0,Rpc.tryParseGitURL)(e);r&&(e=r.href),e=e.replace(/^git\+([^:]+):/,"$1:")}return e}});var o1t=H(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.TreeishProtocols=Xk.normalizeRepoUrl=void 0;Xk.isGitUrl=Gpc;Xk.splitRepoUrl=s1t;Xk.normalizeLocator=Fpc;Xk.validateRepoUrl=Nxr;Xk.lsRemote=Gxi;Xk.resolveUrl=Zpc;Xk.clone=Lpc;Xk.fetchRoot=Fxi;Xk.fetchBase=Zxi;Xk.fetchChangedFiles=Lxi;Xk.fetchChangedWorkspaces=Vpc;var Rxr=(Pa(),vi(Va)),Ey=Bn(),qZ=no(),i1t=($c(),vi(rg)),Dpc=kW(),kpc=Rxr.__importDefault(Txi()),dUe=Rxr.__importDefault(wt("querystring")),kxi=Rxr.__importDefault(UC()),pUe=Dxi();Object.defineProperty(Xk,"normalizeRepoUrl",{enumerable:!0,get:function(){return pUe.normalizeRepoUrl}});function xxi(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var xpc=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],_O;(function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"})(_O||(Xk.TreeishProtocols=_O={}));function Gpc(e){return e?xpc.some(t=>!!e.match(t)):!1}function s1t(e){e=(0,pUe.normalizeRepoUrl)(e);let t=e.indexOf("#");if(t===-1)return{repo:e,treeish:{protocol:_O.Head,request:"HEAD"},extra:{}};let r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){let a=dUe.default.parse(n);for(let[f,I]of Object.entries(a))if(typeof I!="string")throw new Error(`Assertion failed: The ${f} parameter must be a literal string`);let o=Object.values(_O).find(f=>Object.hasOwn(a,f)),[l,A]=typeof o<"u"?[o,a[o]]:[_O.Head,"HEAD"];for(let f of Object.values(_O))delete a[f];return{repo:r,treeish:{protocol:l,request:A},extra:a}}else{let a=n.indexOf(":"),[o,l]=a===-1?[null,n]:[n.slice(0,a),n.slice(a+1)];return{repo:r,treeish:{protocol:o,request:l},extra:{}}}}function Fpc(e){return Ey.structUtils.makeLocator(e,(0,pUe.normalizeRepoUrl)(e.reference))}function Nxr(e,{configuration:t}){let{repo:r}=s1t(e),n=(0,pUe.normalizeRepoUrl)(r,{git:!0});if(!Ey.httpUtils.getNetworkSettings(`https://${(0,kpc.default)(n).resource}`,{configuration:t}).enableNetwork)throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because of your configuration settings`);let o=Ey.miscUtils.buildIgnorePattern(t.get("approvedGitRepositories"));if(o===null||!n.match(o))throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because it doesn't match any of the patterns in 'approvedGitRepositories'`);return n}async function Gxi(e,t){let r=Nxr(e,{configuration:t}),n=await Txr("listing refs",["ls-remote",r],{cwd:t.startingCwd,env:xxi()},{configuration:t,normalizedRepoUrl:r}),a=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,l;for(;(l=o.exec(n.stdout))!==null;)a.set(l[2],l[1]);return a}async function Zpc(e,t){let{repo:r,treeish:{protocol:n,request:a},extra:o}=s1t(e),l=await Gxi(r,t),A=(I,C)=>{switch(I){case _O.Commit:{if(!C.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return dUe.default.stringify({...o,commit:C})}case _O.Head:{let b=l.get(C==="HEAD"?C:`refs/heads/${C}`);if(typeof b>"u")throw new Error(`Unknown head ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Tag:{let b=l.get(`refs/tags/${C}`);if(typeof b>"u")throw new Error(`Unknown tag ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Semver:{let b=Ey.semverUtils.validRange(C);if(!b)throw new Error(`Invalid range ("${C}")`);let E=new Map([...l.entries()].filter(([B])=>B.startsWith("refs/tags/")).map(([B,F])=>[kxi.default.parse(B.slice(10)),F]).filter(B=>B[0]!==null)),N=kxi.default.maxSatisfying([...E.keys()],b);if(N===null)throw new Error(`No matching range ("${C}")`);return dUe.default.stringify({...o,commit:E.get(N)})}case null:{let b;if((b=f(_O.Commit,C))!==null||(b=f(_O.Tag,C))!==null||(b=f(_O.Head,C))!==null)return b;throw C.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${I}")`)}},f=(I,C)=>{try{return A(I,C)}catch{return null}};return(0,pUe.normalizeRepoUrl)(`${r}#${A(n,a)}`)}async function Lpc(e,t){return await t.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:n,request:a}}=s1t(e);if(n!=="commit")throw new Error("Invalid treeish protocol when cloning");let o=Nxr(r,{configuration:t}),l=await qZ.xfs.mktempPromise(),A={cwd:l,env:xxi()};return await Txr("cloning the repository",["clone","-c","core.autocrlf=false",o,qZ.npath.fromPortablePath(l)],A,{configuration:t,normalizedRepoUrl:o}),await Txr("switching branch",["checkout",`${a}`],A,{configuration:t,normalizedRepoUrl:o}),l})}async function Fxi(e){let t,r=e;do{if(t=r,await qZ.xfs.existsPromise(qZ.ppath.join(t,".git")))return t;r=qZ.ppath.dirname(t)}while(r!==t);return null}async function Zxi(e,{baseRefs:t}){if(t.length===0)throw new i1t.UsageError("Can't run this command with zero base refs specified.");let r=[];for(let A of t){let{code:f}=await Ey.execUtils.execvp("git",["merge-base",A,"HEAD"],{cwd:e});f===0&&r.push(A)}if(r.length===0)throw new i1t.UsageError(`No ancestor could be found between any of HEAD and ${t.join(", ")}`);let{stdout:n}=await Ey.execUtils.execvp("git",["merge-base","HEAD",...r],{cwd:e,strict:!0}),a=n.trim(),{stdout:o}=await Ey.execUtils.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:e,strict:!0}),l=o.trim();return{hash:a,title:l}}async function Lxi(e,{base:t,project:r}){let n=Ey.miscUtils.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ey.execUtils.execvp("git",["diff","--name-only",`${t}`],{cwd:e,strict:!0}),o=a.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),{stdout:l}=await Ey.execUtils.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:e,strict:!0}),A=l.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),f=[...new Set([...o,...A].sort())];return n?f.filter(I=>!qZ.ppath.relative(r.cwd,I).match(n)):f}async function Vpc({ref:e,project:t}){if(t.configuration.projectCwd===null)throw new i1t.UsageError("This command can only be run from within a Yarn project");let r=[qZ.ppath.resolve(t.cwd,qZ.Filename.lockfile),qZ.ppath.resolve(t.cwd,t.configuration.get("cacheFolder")),qZ.ppath.resolve(t.cwd,t.configuration.get("installStatePath")),qZ.ppath.resolve(t.cwd,t.configuration.get("virtualFolder"))];await t.configuration.triggerHook(l=>l.populateYarnPaths,t,l=>{l!=null&&r.push(l)});let n=await Fxi(t.configuration.projectCwd);if(n==null)throw new i1t.UsageError("This command can only be run on Git repositories");let a=await Zxi(n,{baseRefs:typeof e=="string"?[e]:t.configuration.get("changesetBaseRefs")}),o=await Lxi(n,{base:a.hash,project:t});return new Set(Ey.miscUtils.mapAndFilter(o,l=>{let A=t.tryWorkspaceByFilePath(l);return A===null||r.some(f=>l.startsWith(f))?Ey.miscUtils.mapAndFilter.skip:A}))}async function Txr(e,t,r,{configuration:n,normalizedRepoUrl:a}){try{return await Ey.execUtils.execvp("git",t,{...r,strict:!0})}catch(o){if(!(o instanceof Ey.execUtils.ExecError))throw o;let l=o.reportExtra,A=o.stderr.toString();throw new Ey.ReportError(Ey.MessageName.EXCEPTION,`Failed ${e}`,f=>{f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:"Repository URL",value:Ey.formatUtils.tuple(Ey.formatUtils.Type.URL,a)})}`);for(let I of A.matchAll(/^(.+?): (.*)$/gm)){let[,C,b]=I;C=C.toLowerCase();let E=C==="error"?"Error":`${(0,Dpc.capitalize)(C)} Error`;f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:E,value:Ey.formatUtils.tuple(Ey.formatUtils.Type.NO_HINT,b)})}`)}l?.(f)})}}});var Vxi=H(c1t=>{"use strict";Object.defineProperty(c1t,"__esModule",{value:!0});c1t.GitFetcher=void 0;var Ppc=(Pa(),vi(Va)),tDe=Bn(),a1t=no(),Dxr=Ppc.__importStar(o1t()),kxr=class{supports(t,r){return Dxr.isGitUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,a=new Map(r.checksums);a.set(t.locatorHash,n);let o={...r,checksums:a},l=await this.downloadHosted(t,o);if(l!==null)return l;let[A,f,I]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${tDe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(t,o),...r.cacheOptions});return{packageFs:A,releaseFs:f,prefixPath:tDe.structUtils.getIdentVendorPath(t),checksum:I}}async downloadHosted(t,r){return r.project.configuration.reduceHook(n=>n.fetchHostedRepository,null,t,r)}async cloneFromRemote(t,r){let n=Dxr.splitRepoUrl(t.reference),a=await Dxr.clone(t.reference,r.project.configuration),o=a1t.ppath.resolve(a,n.extra.cwd??a1t.PortablePath.dot),l=a1t.ppath.join(o,"package.tgz");await tDe.scriptUtils.prepareExternalProject(o,l,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:t});let A=await a1t.xfs.readFilePromise(l);return await tDe.miscUtils.releaseAfterUseAsync(async()=>await tDe.tgzUtils.convertToZip(A,{configuration:r.project.configuration,prefixPath:tDe.structUtils.getIdentVendorPath(t),stripComponents:1}))}};c1t.GitFetcher=kxr});var Wxi=H(l1t=>{"use strict";Object.defineProperty(l1t,"__esModule",{value:!0});l1t.GitResolver=void 0;var Wpc=(Pa(),vi(Va)),Pxi=Bn(),Opc=Bn(),Mpc=Bn(),rDe=Wpc.__importStar(o1t()),xxr=class{supportsDescriptor(t,r){return rDe.isGitUrl(t.range)}supportsLocator(t,r){return rDe.isGitUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=await rDe.resolveUrl(t.range,n.project.configuration);return[Pxi.structUtils.makeLocator(t,a)]}async getSatisfying(t,r,n,a){let o=rDe.splitRepoUrl(t.range);return{locators:n.filter(A=>{if(A.identHash!==t.identHash)return!1;let f=rDe.splitRepoUrl(A.reference);return!(o.repo!==f.repo||o.treeish.protocol===rDe.TreeishProtocols.Commit&&o.treeish.request!==f.treeish.request)}),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Pxi.miscUtils.releaseAfterUseAsync(async()=>await Mpc.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Opc.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};l1t.GitResolver=xxr});var nDe=H(Mee=>{"use strict";Object.defineProperty(Mee,"__esModule",{value:!0});Mee.GitResolver=Mee.GitFetcher=Mee.gitUtils=void 0;var Hpc=(Pa(),vi(Va)),u1t=Bn(),Oxi=Vxi();Object.defineProperty(Mee,"GitFetcher",{enumerable:!0,get:function(){return Oxi.GitFetcher}});var Mxi=Wxi();Object.defineProperty(Mee,"GitResolver",{enumerable:!0,get:function(){return Mxi.GitResolver}});var Ypc=Hpc.__importStar(o1t());Mee.gitUtils=Ypc;var Qpc={configuration:{approvedGitRepositories:{description:"Array of git repository URL glob patterns that are allowed to be fetched",type:u1t.SettingsType.STRING,default:[],isArray:!0},changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:u1t.SettingsType.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:u1t.SettingsType.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:u1t.SettingsType.NUMBER,default:2}},fetchers:[Oxi.GitFetcher],resolvers:[Mxi.GitResolver]};Mee.default=Qpc});var hUe=H(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.Decision=void 0;GG.validateReleaseDecision=IUe;GG.resolveVersionFiles=Kpc;GG.clearVersionFiles=jpc;GG.updateVersionFiles=zpc;GG.openVersionFile=qpc;GG.requireMoreDecisions=$pc;GG.getUndecidedWorkspaces=Hxi;GG.getUndecidedDependentWorkspaces=Yxi;GG.suggestStrategy=efc;GG.applyStrategy=Fxr;GG.applyReleases=tfc;GG.applyPrerelease=Qxi;var Xpc=(Pa(),vi(Va)),PE=Bn(),Xv=no(),pCe=TW(),Gxr=nDe(),fUe=($c(),vi(rg)),Jpc=kW(),Hee=Xpc.__importDefault(UC()),Upc=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,aH;(function(e){e.UNDECIDED="undecided",e.DECLINE="decline",e.MAJOR="major",e.MINOR="minor",e.PATCH="patch",e.PREMAJOR="premajor",e.PREMINOR="preminor",e.PREPATCH="prepatch",e.PRERELEASE="prerelease"})(aH||(GG.Decision=aH={}));function IUe(e){let t=Hee.default.valid(e);return t||PE.miscUtils.validateEnum((0,Jpc.omit)(aH,"UNDECIDED"),e)}async function Kpc(e,{prerelease:t=null}={}){let r=new Map,n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return r;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A);for(let[I,C]of Object.entries(f.releases||{})){if(C===aH.DECLINE)continue;let b=PE.structUtils.parseIdent(I),E=e.tryWorkspaceByIdent(b);if(E===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${Xv.ppath.basename(l)} references ${I})`);if(E.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${PE.structUtils.prettyLocator(e.configuration,E.anchoredLocator)})`);let N=E.manifest.raw.stableVersion??E.manifest.version,B=r.get(E),F=aH.PRERELEASE===C?Fxr(E.manifest.version,IUe(C)):Fxr(N,IUe(C));if(F===null)throw new Error(`Assertion failed: Expected ${N} to support being bumped via strategy ${C}`);let Q=typeof B<"u"?Hee.default.gt(F,B)?F:B:F;r.set(E,Q)}}return t&&(r=new Map([...r].map(([o,l])=>[o,Qxi(l,{current:o.manifest.version,prerelease:t})]))),r}async function jpc(e){let t=e.configuration.get("deferredVersionFolder");Xv.xfs.existsSync(t)&&await Xv.xfs.removePromise(t)}async function zpc(e,t){let r=new Set(t),n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A),I=f?.releases;if(I){for(let C of Object.keys(I)){let b=PE.structUtils.parseIdent(C),E=e.tryWorkspaceByIdent(b);(E===null||r.has(E))&&delete f.releases[C]}Object.keys(f.releases).length>0?await Xv.xfs.changeFilePromise(l,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering(f))):await Xv.xfs.unlinkPromise(l)}}}async function qpc(e,{allowEmpty:t=!1}={}){let r=e.configuration;if(r.projectCwd===null)throw new fUe.UsageError("This command can only be run from within a Yarn project");let n=await Gxr.gitUtils.fetchRoot(r.projectCwd),a=n!==null?await Gxr.gitUtils.fetchBase(n,{baseRefs:r.get("changesetBaseRefs")}):null,o=n!==null?await Gxr.gitUtils.fetchChangedFiles(n,{base:a.hash,project:e}):[],l=r.get("deferredVersionFolder"),A=o.filter(N=>Xv.ppath.contains(l,N)!==null);if(A.length>1)throw new fUe.UsageError(`Your current branch contains multiple versioning files; this isn't supported: +`+re.stack)}finally{this.performanceData=V}}parseMessage(c){return JSON.parse(c)}toStringMessage(c){return c}getFormatOptions(c){return this.projectService.getFormatCodeOptions(c)}getPreferences(c){return this.projectService.getPreferences(c)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function dfn(s){let c=s.diagnosticsDuration&&Do(s.diagnosticsDuration,([g,d])=>({...d,file:g}));return{...s,diagnosticsDuration:c}}function kN(s,c){return{start:c.positionToLineOffset(s.start),end:c.positionToLineOffset(Rs(s))}}function lJt(s,c,g){let d=kN(s,g),h=c&&kN(c,g);return h?{...d,contextStart:h.start,contextEnd:h.end}:d}function tOs(s,c){return{start:pfn(c,s.span.start),end:pfn(c,Rs(s.span)),newText:s.newText}}function pfn(s,c){return rJt(s)?nOs(s.getLineAndCharacterOfPosition(c)):s.positionToLineOffset(c)}function rOs(s,c){let g=s.ranges.map(d=>({start:c.positionToLineOffset(d.start),end:c.positionToLineOffset(d.start+d.length)}));return s.wordPattern?{ranges:g,wordPattern:s.wordPattern}:{ranges:g}}function nOs(s){return{line:s.line+1,offset:s.character+1}}function iOs(s){pe.assert(s.textChanges.length===1);let c=ma(s.textChanges);return pe.assert(c.span.start===0&&c.span.length===0),{fileName:s.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:c.newText}]}}function uJt(s,c,g,d){let h=sOs(s,c,d),{line:_,character:S}=Ci(cA(h),g);return{line:_+1,offset:S+1}}function sOs(s,c,g){for(let{fileName:d,textChanges:h}of g)if(d===c)for(let _=h.length-1;_>=0;_--){let{newText:S,span:{start:R,length:T}}=h[_];s=s.slice(0,R)+S+s.slice(R+T)}return s}function ffn(s,{fileName:c,textSpan:g,contextSpan:d,isWriteAccess:h,isDefinition:_},{disableLineTextInReferences:S}){let R=pe.checkDefined(s.getScriptInfo(c)),T=lJt(g,d,R),W=S?void 0:oOs(R,T);return{file:c,...T,lineText:W,isWriteAccess:h,isDefinition:_}}function oOs(s,c){let g=s.lineToTextSpan(c.start.line-1);return s.getSnapshot().getText(g.start,Rs(g)).replace(/\r|\n/g,"")}function aOs(s){return s===void 0||s&&typeof s=="object"&&typeof s.exportName=="string"&&(s.fileName===void 0||typeof s.fileName=="string")&&(s.ambientModuleName===void 0||typeof s.ambientModuleName=="string"&&(s.isPackageJsonImport===void 0||typeof s.isPackageJsonImport=="boolean"))}var lse=4,gJt=(s=>(s[s.PreStart=0]="PreStart",s[s.Start=1]="Start",s[s.Entire=2]="Entire",s[s.Mid=3]="Mid",s[s.End=4]="End",s[s.PostEnd=5]="PostEnd",s))(gJt||{}),cOs=class{constructor(){this.goSubtree=!0,this.lineIndex=new a2e,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new use,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(s,c){c&&(this.trailingText=""),s?s=this.initialText+s+this.trailingText:s=this.initialText+this.trailingText;let d=a2e.linesFromText(s).lines;d.length>1&&d[d.length-1]===""&&d.pop();let h,_;for(let R=this.endBranch.length-1;R>=0;R--)this.endBranch[R].updateCounts(),this.endBranch[R].charCount()===0&&(_=this.endBranch[R],R>0?h=this.endBranch[R-1]:h=this.branchNode);_&&h.remove(_);let S=this.startPath[this.startPath.length-1];if(d.length>0)if(S.text=d[0],d.length>1){let R=new Array(d.length-1),T=S;for(let M=1;M=0;){let M=this.startPath[W];R=M.insertAt(T,R),W--,T=M}let V=R.length;for(;V>0;){let M=new use;M.add(this.lineIndex.root),R=M.insertAt(this.lineIndex.root,R),V=R.length,this.lineIndex.root=M}this.lineIndex.root.updateCounts()}else for(let R=this.startPath.length-2;R>=0;R--)this.startPath[R].updateCounts();else{this.startPath[this.startPath.length-2].remove(S);for(let T=this.startPath.length-2;T>=0;T--)this.startPath[T].updateCounts()}return this.lineIndex}post(s,c,g){g===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(s,c,g,d,h){let _=this.stack[this.stack.length-1];this.state===2&&h===1&&(this.state=1,this.branchNode=_,this.lineCollectionAtBranch=g);let S;function R(T){return T.isLeaf()?new lWe(""):new use}switch(h){case 0:this.goSubtree=!1,this.state!==4&&_.add(g);break;case 1:this.state===4?this.goSubtree=!1:(S=R(g),_.add(S),this.startPath.push(S));break;case 2:this.state!==4?(S=R(g),_.add(S),this.startPath.push(S)):g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 5:this.goSubtree=!1,this.state!==1&&_.add(g);break}this.goSubtree&&this.stack.push(S)}leaf(s,c,g){this.state===1?this.initialText=g.text.substring(0,s):this.state===2?(this.initialText=g.text.substring(0,s),this.trailingText=g.text.substring(s+c)):this.trailingText=g.text.substring(s+c)}},lOs=class{constructor(s,c,g){this.pos=s,this.deleteLen=c,this.insertedText=g}getTextChangeRange(){return $2(zd(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},Fst=class yj{constructor(){this.changes=[],this.versions=new Array(yj.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(c){if(!(cthis.currentVersion))return c%yj.maxVersions}currentVersionToIndex(){return this.currentVersion%yj.maxVersions}edit(c,g,d){this.changes.push(new lOs(c,g,d)),(this.changes.length>yj.changeNumberThreshold||g>yj.changeLengthThreshold||d&&d.length>yj.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let c=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let g=c.index;for(let d of this.changes)g=g.edit(d.pos,d.deleteLen,d.insertedText);c=new Ifn(this.currentVersion+1,this,g,this.changes),this.currentVersion=c.version,this.versions[this.currentVersionToIndex()]=c,this.changes=[],this.currentVersion-this.minVersion>=yj.maxVersions&&(this.minVersion=this.currentVersion-yj.maxVersions+1)}return c}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(c){return this._getSnapshot().index.lineNumberToInfo(c)}lineOffsetToPosition(c,g){return this._getSnapshot().index.absolutePositionOfStartOfLine(c)+(g-1)}positionToLineOffset(c){return this._getSnapshot().index.positionToLineOffset(c)}lineToTextSpan(c){let g=this._getSnapshot().index,{lineText:d,absolutePosition:h}=g.lineNumberToInfo(c+1),_=d!==void 0?d.length:g.absolutePositionOfStartOfLine(c+2)-h;return zd(h,_)}getTextChangesBetweenVersions(c,g){if(c=this.minVersion){let d=[];for(let h=c+1;h<=g;h++){let _=this.versions[this.versionToIndex(h)];for(let S of _.changesSincePreviousVersion)d.push(S.getTextChangeRange())}return z(d)}else return;else return Eo}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(c){let g=new yj,d=new Ifn(0,g,new a2e);g.versions[g.currentVersion]=d;let h=a2e.linesFromText(c);return d.index.load(h.lines),g}};Fst.changeNumberThreshold=8,Fst.changeLengthThreshold=256,Fst.maxVersions=8;var Zst=Fst,Ifn=class JDi{constructor(c,g,d,h=zm){this.version=c,this.cache=g,this.index=d,this.changesSincePreviousVersion=h}getText(c,g){return this.index.getText(c,g-c)}getLength(){return this.index.getLength()}getChangeRange(c){if(c instanceof JDi&&this.cache===c.cache)return this.version<=c.version?Eo:this.cache.getTextChangesBetweenVersions(c.version,this.version)}},a2e=class zkr{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(c){return this.lineNumberToInfo(c).absolutePosition}positionToLineOffset(c){let{oneBasedLine:g,zeroBasedColumn:d}=this.root.charOffsetToLineInfo(1,c);return{line:g,offset:d+1}}positionToColumnAndLineText(c){return this.root.charOffsetToLineInfo(1,c)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(c){let g=this.getLineCount();if(c<=g){let{position:d,leaf:h}=this.root.lineNumberToInfo(c,0);return{absolutePosition:d,lineText:h&&h.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(c){if(c.length>0){let g=[];for(let d=0;d0&&c{d=d.concat(S.text.substring(h,h+_))}}),d}getLength(){return this.root.charCount()}every(c,g,d){d||(d=this.root.charCount());let h={goSubtree:!0,done:!1,leaf(_,S,R){c(R,_,S)||(this.done=!0)}};return this.walk(g,d-g,h),!h.done}edit(c,g,d){if(this.root.charCount()===0)return pe.assert(g===0),d!==void 0?(this.load(zkr.linesFromText(d).lines),this):void 0;{let h;if(this.checkEdits){let R=this.getText(0,this.root.charCount());h=R.slice(0,c)+d+R.slice(c+g)}let _=new cOs,S=!1;if(c>=this.root.charCount()){c=this.root.charCount()-1;let R=this.getText(c,1);d?d=R+d:d=R,g=0,S=!0}else if(g>0){let R=c+g,{zeroBasedColumn:T,lineText:W}=this.positionToColumnAndLineText(R);T===0&&(g+=W.length,d=d?d+W:W)}if(this.root.walk(c,g,_),_.insertLines(d,S),this.checkEdits){let R=_.lineIndex.getText(0,_.lineIndex.getLength());pe.assert(h===R,"buffer edit mismatch")}return _.lineIndex}}static buildTreeFromBottom(c){if(c.length0?d[h]=_:d.pop(),{lines:d,lineMap:g}}},use=class qkr{constructor(c=[]){this.children=c,this.totalChars=0,this.totalLines=0,c.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let c of this.children)this.totalChars+=c.charCount(),this.totalLines+=c.lineCount()}execWalk(c,g,d,h,_){return d.pre&&d.pre(c,g,this.children[h],this,_),d.goSubtree?(this.children[h].walk(c,g,d),d.post&&d.post(c,g,this.children[h],this,_)):d.goSubtree=!0,d.done}skipChild(c,g,d,h,_){h.pre&&!h.done&&(h.pre(c,g,this.children[d],this,_),h.goSubtree=!0)}walk(c,g,d){if(this.children.length===0)return;let h=0,_=this.children[h].charCount(),S=c;for(;S>=_;)this.skipChild(S,g,h,d,0),S-=_,h++,_=this.children[h].charCount();if(S+g<=_){if(this.execWalk(S,g,d,h,2))return}else{if(this.execWalk(S,_-S,d,h,1))return;let R=g-(_-S);for(h++,_=this.children[h].charCount();R>_;){if(this.execWalk(0,_,d,h,3))return;R-=_,h++,_=this.children[h].charCount()}if(R>0&&this.execWalk(0,R,d,h,4))return}if(d.pre){let R=this.children.length;if(hg)return _.isLeaf()?{oneBasedLine:c,zeroBasedColumn:g,lineText:_.text}:_.charOffsetToLineInfo(c,g);g-=_.charCount(),c+=_.lineCount()}let d=this.lineCount();if(d===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let h=pe.checkDefined(this.lineNumberToInfo(d,0).leaf);return{oneBasedLine:d,zeroBasedColumn:h.charCount(),lineText:void 0}}lineNumberToInfo(c,g){for(let d of this.children){let h=d.lineCount();if(h>=c)return d.isLeaf()?{position:g,leaf:d}:d.lineNumberToInfo(c,g);c-=h,g+=d.charCount()}return{position:g,leaf:void 0}}splitAfter(c){let g,d=this.children.length;c++;let h=c;if(c=0;ee--)T[ee].children.length===0&&T.pop()}S&&T.push(S),this.updateCounts();for(let V=0;V{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:h,reject:_})});return this.installer.send(g),d}attach(c){this.projectService=c,this.installer=this.createInstallerProcess()}onProjectClosed(c){this.installer.send({projectName:c.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(c,g,d){let h=m4t(c,g,d);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${j3(h)}`),this.activeRequestCount0?this.activeRequestCount--:pe.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let h=this.requestQueue.dequeue();if(this.requestMap.get(h.projectName)===h){this.requestMap.delete(h.projectName),this.scheduleRequest(h);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${h.projectName}`)}this.projectService.updateTypingsForProject(c),this.event(c,"setTypings");break}case n1e:this.projectService.watchTypingLocations(c);break;default:}}scheduleRequest(c){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${c.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${j3(c)}`),this.installer.send(c)},UDi.requestDelayMillis,`${c.projectName}::${c.kind}`)}};hfn.requestDelayMillis=100;var mfn=hfn,Cfn={};o(Cfn,{ActionInvalidate:()=>wVe,ActionPackageInstalled:()=>TVe,ActionSet:()=>BVe,ActionWatchTypingLocations:()=>n1e,Arguments:()=>lrt,AutoImportProviderProject:()=>P4t,AuxiliaryProject:()=>L4t,CharRangeSection:()=>gJt,CloseFileWatcherEvent:()=>Sst,CommandNames:()=>ifn,ConfigFileDiagEvent:()=>Cst,ConfiguredProject:()=>W4t,ConfiguredProjectLoadKind:()=>X4t,CreateDirectoryWatcherEvent:()=>Est,CreateFileWatcherEvent:()=>bst,Errors:()=>QF,EventBeginInstallTypes:()=>art,EventEndInstallTypes:()=>crt,EventInitializationFailed:()=>S5t,EventTypesRegistry:()=>ort,ExternalProject:()=>dst,GcTimer:()=>v4t,InferredProject:()=>Z4t,LargeFileReferencedEvent:()=>mst,LineIndex:()=>a2e,LineLeaf:()=>lWe,LineNode:()=>use,LogLevel:()=>I4t,Msg:()=>h4t,OpenFileInfoTelemetryEvent:()=>O4t,Project:()=>zz,ProjectInfoTelemetryEvent:()=>yst,ProjectKind:()=>fpe,ProjectLanguageServiceStateEvent:()=>_st,ProjectLoadingFinishEvent:()=>hst,ProjectLoadingStartEvent:()=>Ist,ProjectService:()=>tJt,ProjectsUpdatedInBackgroundEvent:()=>oWe,ScriptInfo:()=>R4t,ScriptVersionCache:()=>Zst,Session:()=>Afn,TextStorage:()=>T4t,ThrottledOperations:()=>S4t,TypingsInstallerAdapter:()=>mfn,allFilesAreJsOrDts:()=>x4t,allRootFilesAreJsOrDts:()=>k4t,asNormalizedPath:()=>Npn,convertCompilerOptions:()=>aWe,convertFormatOptions:()=>ase,convertScriptKindName:()=>Bst,convertTypeAcquisition:()=>H4t,convertUserPreferences:()=>Y4t,convertWatchOptions:()=>s2e,countEachFileTypes:()=>t2e,createInstallTypingsRequest:()=>m4t,createModuleSpecifierCache:()=>iJt,createNormalizedPathMap:()=>Dpn,createPackageJsonCache:()=>sJt,createSortedArray:()=>E4t,emptyArray:()=>zm,findArgument:()=>Nnn,formatDiagnosticToProtocol:()=>o2e,formatMessage:()=>oJt,getBaseConfigFileName:()=>Ast,getDetailWatchInfo:()=>Nst,getLocationInNewDocument:()=>uJt,hasArgument:()=>Rnn,hasNoTypeScriptSource:()=>G4t,indent:()=>Wde,isBackgroundProject:()=>n2e,isConfigFile:()=>rJt,isConfiguredProject:()=>s9,isDynamicFileName:()=>ppe,isExternalProject:()=>r2e,isInferredProject:()=>ose,isInferredProjectName:()=>C4t,isProjectDeferredClose:()=>i2e,makeAutoImportProviderProjectName:()=>y4t,makeAuxiliaryProjectName:()=>b4t,makeInferredProjectName:()=>_4t,maxFileSize:()=>fst,maxProgramSizeForNonTsFiles:()=>pst,normalizedPathToPath:()=>sse,nowString:()=>Dnn,nullCancellationToken:()=>tfn,nullTypingsInstaller:()=>cWe,protocol:()=>B4t,scriptInfoIsContainedByBackgroundProject:()=>N4t,scriptInfoIsContainedByDeferredClosedProject:()=>D4t,stringifyIndented:()=>j3,toEvent:()=>aJt,toNormalizedPath:()=>op,tryConvertScriptKindName:()=>vst,typingsInstaller:()=>f4t,updateProjectIfDirty:()=>_v}),typeof console<"u"&&(pe.loggingHost={log(s,c){switch(s){case 1:return console.error(c);case 2:return console.warn(c);case 3:return console.log(c);case 4:return console.log(c)}}})})({get exports(){return ODi},set exports(e){ODi=e,typeof UEt<"u"&&UEt.exports&&(UEt.exports=e)}})});var bxr=H((nZu,fxi)=>{"use strict";fxi.exports=function(t,r){r===!0&&(r=0);var n="";if(typeof t=="string")try{n=new URL(t).protocol}catch{}else t&&t.constructor===URL&&(n=t.protocol);var a=n.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hxi=H((iZu,Ixi)=>{"use strict";var dpc=bxr();function ppc(e){var t={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:e,query:{},parse_failed:!1};try{var r=new URL(e);t.protocols=dpc(r),t.protocol=t.protocols[0],t.port=r.port,t.resource=r.hostname,t.host=r.host,t.user=r.username||"",t.password=r.password||"",t.pathname=r.pathname,t.hash=r.hash.slice(1),t.search=r.search.slice(1),t.href=r.href,t.query=Object.fromEntries(r.searchParams)}catch{t.protocols=["file"],t.protocol=t.protocols[0],t.port="",t.resource="",t.user="",t.pathname="",t.hash="",t.search="",t.href=e,t.query={},t.parse_failed=!0}return t}Ixi.exports=ppc});var _xi=H((sZu,Cxi)=>{"use strict";var fpc=hxi();function Ipc(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var hpc=Ipc(fpc),mpc="text/plain",Cpc="us-ascii",mxi=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),_pc=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===Cpc)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length>0||f&&f!==mpc)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`};function ypc(e,t){if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return _pc(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let l=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,f="";for(;;){let C=l.exec(a.pathname);if(!C)break;let b=C[0],E=C.index,N=a.pathname.slice(A,E);f+=N.replace(/\/{2,}/g,"/"),f+=b,A=E+b.length}let I=a.pathname.slice(A,a.pathname.length);f+=I.replace(/\/{2,}/g,"/"),a.pathname=f}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let l=a.pathname.split("/"),A=l[l.length-1];mxi(A,t.removeDirectoryIndex)&&(l=l.slice(0,-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])mxi(l,t.removeQueryParameters)&&a.searchParams.delete(l);if(t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e}var Exr=(e,t=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,n=o=>{let l=new Error(o);throw l.subject_url=e,l};(typeof e!="string"||!e.trim())&&n("Invalid url."),e.length>Exr.MAX_INPUT_LENGTH&&n("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),t&&(typeof t!="object"&&(t={stripHash:!1}),e=ypc(e,t));let a=hpc.default(e);if(a.parse_failed){let o=a.href.match(r);o?(a.protocols=["ssh"],a.protocol="ssh",a.resource=o[2],a.host=o[2],a.user=o[1],a.pathname=`/${o[3]}`,a.parse_failed=!1):n("URL parsing failed.")}return a};Exr.MAX_INPUT_LENGTH=2048;Cxi.exports=Exr});var Exi=H((oZu,bxi)=>{"use strict";var bpc=bxr();function yxi(e){if(Array.isArray(e))return e.indexOf("ssh")!==-1||e.indexOf("rsync")!==-1;if(typeof e!="string")return!1;var t=bpc(e);if(e=e.substring(e.indexOf("://")+3),yxi(t))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!e.match(r)&&e.indexOf("@"){"use strict";var Epc=_xi(),Sxi=Exi();function Spc(e){var t=Epc(e);return t.token="",t.password==="x-oauth-basic"?t.token=t.user:t.user==="x-token-auth"&&(t.token=t.password),Sxi(t.protocols)||t.protocols.length===0&&Sxi(e)?t.protocol="ssh":t.protocols.length?t.protocol=t.protocols[0]:(t.protocol="file",t.protocols=["file"]),t.href=t.href.replace(/\/$/,""),t}vxi.exports=Spc});var Txi=H((cZu,wxi)=>{"use strict";var vpc=Bxi();function Sxr(e){if(typeof e!="string")throw new Error("The url must be a string.");var t=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;t.test(e)&&(e="https://github.com/"+e);var r=vpc(e),n=r.resource.split("."),a=null;switch(r.toString=function(Q){return Sxr.stringify(this,Q)},r.source=n.length>2?n.slice(1-n.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=n[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var o=a.length-1;if(a.length>=2){var l=a.indexOf("-",2),A=a.indexOf("blob",2),f=a.indexOf("tree",2),I=a.indexOf("commit",2),C=a.indexOf("src",2),b=a.indexOf("raw",2),E=a.indexOf("edit",2);o=l>0?l-1:A>0?A-1:f>0?f-1:I>0?I-1:C>0?C-1:b>0?b-1:E>0?E-1:o,r.owner=a.slice(0,o).join("/"),r.name=a[o],I&&(r.commit=a[o+2])}r.ref="",r.filepathtype="",r.filepath="";var N=a.length>o&&a[o+1]==="-"?o+1:o;a.length>N+2&&["raw","src","blob","tree","edit"].indexOf(a[N+1])>=0&&(r.filepathtype=a[N+1],r.ref=a[N+2],a.length>N+3&&(r.filepath=a.slice(N+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var B=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,F=B.exec(r.pathname);return F!=null&&(r.source="bitbucket-server",F[1]==="users"?r.owner="~"+F[2]:r.owner=F[2],r.organization=r.owner,r.name=F[3],a=F[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Sxr.stringify=function(e,t){t=t||(e.protocols&&e.protocols.length?e.protocols.join("+"):e.protocol);var r=e.port?":"+e.port:"",n=e.user||"git",a=e.git_suffix?".git":"";switch(t){case"ssh":return r?"ssh://"+n+"@"+e.resource+r+"/"+e.full_name+a:n+"@"+e.resource+":"+e.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return t+"://"+n+"@"+e.resource+r+"/"+e.full_name+a;case"http":case"https":var o=e.token?Bpc(e):e.user&&(e.protocols.includes("http")||e.protocols.includes("https"))?e.user+"@":"";return t+"://"+o+e.resource+r+"/"+wpc(e)+a;default:return e.href}};function Bpc(e){switch(e.source){case"bitbucket.org":return"x-token-auth:"+e.token+"@";default:return e.token+"@"}}function wpc(e){switch(e.source){case"bitbucket-server":return"scm/"+e.full_name;default:return""+e.full_name}}wxi.exports=Sxr});var Nxi=H(Bxr=>{"use strict";Object.defineProperty(Bxr,"__esModule",{value:!0});Bxr.tryParseGitURL=Rpc;function vxr(e,t,r){let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)}function Rxi(e){try{return new URL(e)}catch{return}}function Tpc(e){let t=vxr(e,"@","#"),r=vxr(e,":","#");return r>t&&(e=`${e.slice(0,r)}/${e.slice(r+1)}`),vxr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`ssh://${e}`),e}function Rpc(e){return Rxi(e)||Rxi(Tpc(e))}});var Dxi=H(wxr=>{"use strict";Object.defineProperty(wxr,"__esModule",{value:!0});wxr.normalizeRepoUrl=Dpc;var Npc=Nxi();function Dpc(e,{git:t=!1}={}){if(e=e.replace(/^git\+https:/,"https:"),e=e.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),e=e.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let r=(0,Npc.tryParseGitURL)(e);r&&(e=r.href),e=e.replace(/^git\+([^:]+):/,"$1:")}return e}});var o1t=H(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.TreeishProtocols=Xk.normalizeRepoUrl=void 0;Xk.isGitUrl=Fpc;Xk.splitRepoUrl=s1t;Xk.normalizeLocator=Zpc;Xk.validateRepoUrl=Nxr;Xk.lsRemote=Gxi;Xk.resolveUrl=Lpc;Xk.clone=Vpc;Xk.fetchRoot=Fxi;Xk.fetchBase=Zxi;Xk.fetchChangedFiles=Lxi;Xk.fetchChangedWorkspaces=Ppc;var Rxr=(Pa(),vi(Va)),Ey=Bn(),qZ=no(),i1t=($c(),vi(rg)),kpc=kW(),xpc=Rxr.__importDefault(Txi()),dUe=Rxr.__importDefault(wt("querystring")),kxi=Rxr.__importDefault(UC()),pUe=Dxi();Object.defineProperty(Xk,"normalizeRepoUrl",{enumerable:!0,get:function(){return pUe.normalizeRepoUrl}});function xxi(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Gpc=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],_O;(function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"})(_O||(Xk.TreeishProtocols=_O={}));function Fpc(e){return e?Gpc.some(t=>!!e.match(t)):!1}function s1t(e){e=(0,pUe.normalizeRepoUrl)(e);let t=e.indexOf("#");if(t===-1)return{repo:e,treeish:{protocol:_O.Head,request:"HEAD"},extra:{}};let r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){let a=dUe.default.parse(n);for(let[f,I]of Object.entries(a))if(typeof I!="string")throw new Error(`Assertion failed: The ${f} parameter must be a literal string`);let o=Object.values(_O).find(f=>Object.hasOwn(a,f)),[l,A]=typeof o<"u"?[o,a[o]]:[_O.Head,"HEAD"];for(let f of Object.values(_O))delete a[f];return{repo:r,treeish:{protocol:l,request:A},extra:a}}else{let a=n.indexOf(":"),[o,l]=a===-1?[null,n]:[n.slice(0,a),n.slice(a+1)];return{repo:r,treeish:{protocol:o,request:l},extra:{}}}}function Zpc(e){return Ey.structUtils.makeLocator(e,(0,pUe.normalizeRepoUrl)(e.reference))}function Nxr(e,{configuration:t}){let{repo:r}=s1t(e),n=(0,pUe.normalizeRepoUrl)(r,{git:!0});if(!Ey.httpUtils.getNetworkSettings(`https://${(0,xpc.default)(n).resource}`,{configuration:t}).enableNetwork)throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because of your configuration settings`);let o=Ey.miscUtils.buildIgnorePattern(t.get("approvedGitRepositories"));if(o===null||!n.match(o))throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because it doesn't match any of the patterns in 'approvedGitRepositories'`);return n}async function Gxi(e,t){let r=Nxr(e,{configuration:t}),n=await Txr("listing refs",["ls-remote",r],{cwd:t.startingCwd,env:xxi()},{configuration:t,normalizedRepoUrl:r}),a=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,l;for(;(l=o.exec(n.stdout))!==null;)a.set(l[2],l[1]);return a}async function Lpc(e,t){let{repo:r,treeish:{protocol:n,request:a},extra:o}=s1t(e),l=await Gxi(r,t),A=(I,C)=>{switch(I){case _O.Commit:{if(!C.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return dUe.default.stringify({...o,commit:C})}case _O.Head:{let b=l.get(C==="HEAD"?C:`refs/heads/${C}`);if(typeof b>"u")throw new Error(`Unknown head ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Tag:{let b=l.get(`refs/tags/${C}`);if(typeof b>"u")throw new Error(`Unknown tag ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Semver:{let b=Ey.semverUtils.validRange(C);if(!b)throw new Error(`Invalid range ("${C}")`);let E=new Map([...l.entries()].filter(([B])=>B.startsWith("refs/tags/")).map(([B,F])=>[kxi.default.parse(B.slice(10)),F]).filter(B=>B[0]!==null)),N=kxi.default.maxSatisfying([...E.keys()],b);if(N===null)throw new Error(`No matching range ("${C}")`);return dUe.default.stringify({...o,commit:E.get(N)})}case null:{let b;if((b=f(_O.Commit,C))!==null||(b=f(_O.Tag,C))!==null||(b=f(_O.Head,C))!==null)return b;throw C.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${I}")`)}},f=(I,C)=>{try{return A(I,C)}catch{return null}};return(0,pUe.normalizeRepoUrl)(`${r}#${A(n,a)}`)}async function Vpc(e,t){return await t.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:n,request:a}}=s1t(e);if(n!=="commit")throw new Error("Invalid treeish protocol when cloning");let o=Nxr(r,{configuration:t}),l=await qZ.xfs.mktempPromise(),A={cwd:l,env:xxi()};return await Txr("cloning the repository",["clone","-c","core.autocrlf=false",o,qZ.npath.fromPortablePath(l)],A,{configuration:t,normalizedRepoUrl:o}),await Txr("switching branch",["checkout",`${a}`],A,{configuration:t,normalizedRepoUrl:o}),l})}async function Fxi(e){let t,r=e;do{if(t=r,await qZ.xfs.existsPromise(qZ.ppath.join(t,".git")))return t;r=qZ.ppath.dirname(t)}while(r!==t);return null}async function Zxi(e,{baseRefs:t}){if(t.length===0)throw new i1t.UsageError("Can't run this command with zero base refs specified.");let r=[];for(let A of t){let{code:f}=await Ey.execUtils.execvp("git",["merge-base",A,"HEAD"],{cwd:e});f===0&&r.push(A)}if(r.length===0)throw new i1t.UsageError(`No ancestor could be found between any of HEAD and ${t.join(", ")}`);let{stdout:n}=await Ey.execUtils.execvp("git",["merge-base","HEAD",...r],{cwd:e,strict:!0}),a=n.trim(),{stdout:o}=await Ey.execUtils.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:e,strict:!0}),l=o.trim();return{hash:a,title:l}}async function Lxi(e,{base:t,project:r}){let n=Ey.miscUtils.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ey.execUtils.execvp("git",["diff","--name-only",`${t}`],{cwd:e,strict:!0}),o=a.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),{stdout:l}=await Ey.execUtils.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:e,strict:!0}),A=l.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),f=[...new Set([...o,...A].sort())];return n?f.filter(I=>!qZ.ppath.relative(r.cwd,I).match(n)):f}async function Ppc({ref:e,project:t}){if(t.configuration.projectCwd===null)throw new i1t.UsageError("This command can only be run from within a Yarn project");let r=[qZ.ppath.resolve(t.cwd,qZ.Filename.lockfile),qZ.ppath.resolve(t.cwd,t.configuration.get("cacheFolder")),qZ.ppath.resolve(t.cwd,t.configuration.get("installStatePath")),qZ.ppath.resolve(t.cwd,t.configuration.get("virtualFolder"))];await t.configuration.triggerHook(l=>l.populateYarnPaths,t,l=>{l!=null&&r.push(l)});let n=await Fxi(t.configuration.projectCwd);if(n==null)throw new i1t.UsageError("This command can only be run on Git repositories");let a=await Zxi(n,{baseRefs:typeof e=="string"?[e]:t.configuration.get("changesetBaseRefs")}),o=await Lxi(n,{base:a.hash,project:t});return new Set(Ey.miscUtils.mapAndFilter(o,l=>{let A=t.tryWorkspaceByFilePath(l);return A===null||r.some(f=>l.startsWith(f))?Ey.miscUtils.mapAndFilter.skip:A}))}async function Txr(e,t,r,{configuration:n,normalizedRepoUrl:a}){try{return await Ey.execUtils.execvp("git",t,{...r,strict:!0})}catch(o){if(!(o instanceof Ey.execUtils.ExecError))throw o;let l=o.reportExtra,A=o.stderr.toString();throw new Ey.ReportError(Ey.MessageName.EXCEPTION,`Failed ${e}`,f=>{f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:"Repository URL",value:Ey.formatUtils.tuple(Ey.formatUtils.Type.URL,a)})}`);for(let I of A.matchAll(/^(.+?): (.*)$/gm)){let[,C,b]=I;C=C.toLowerCase();let E=C==="error"?"Error":`${(0,kpc.capitalize)(C)} Error`;f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:E,value:Ey.formatUtils.tuple(Ey.formatUtils.Type.NO_HINT,b)})}`)}l?.(f)})}}});var Vxi=H(c1t=>{"use strict";Object.defineProperty(c1t,"__esModule",{value:!0});c1t.GitFetcher=void 0;var Wpc=(Pa(),vi(Va)),tDe=Bn(),a1t=no(),Dxr=Wpc.__importStar(o1t()),kxr=class{supports(t,r){return Dxr.isGitUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,a=new Map(r.checksums);a.set(t.locatorHash,n);let o={...r,checksums:a},l=await this.downloadHosted(t,o);if(l!==null)return l;let[A,f,I]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${tDe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(t,o),...r.cacheOptions});return{packageFs:A,releaseFs:f,prefixPath:tDe.structUtils.getIdentVendorPath(t),checksum:I}}async downloadHosted(t,r){return r.project.configuration.reduceHook(n=>n.fetchHostedRepository,null,t,r)}async cloneFromRemote(t,r){let n=Dxr.splitRepoUrl(t.reference),a=await Dxr.clone(t.reference,r.project.configuration),o=a1t.ppath.resolve(a,n.extra.cwd??a1t.PortablePath.dot),l=a1t.ppath.join(o,"package.tgz");await tDe.scriptUtils.prepareExternalProject(o,l,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:t});let A=await a1t.xfs.readFilePromise(l);return await tDe.miscUtils.releaseAfterUseAsync(async()=>await tDe.tgzUtils.convertToZip(A,{configuration:r.project.configuration,prefixPath:tDe.structUtils.getIdentVendorPath(t),stripComponents:1}))}};c1t.GitFetcher=kxr});var Wxi=H(l1t=>{"use strict";Object.defineProperty(l1t,"__esModule",{value:!0});l1t.GitResolver=void 0;var Opc=(Pa(),vi(Va)),Pxi=Bn(),Mpc=Bn(),Hpc=Bn(),rDe=Opc.__importStar(o1t()),xxr=class{supportsDescriptor(t,r){return rDe.isGitUrl(t.range)}supportsLocator(t,r){return rDe.isGitUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=await rDe.resolveUrl(t.range,n.project.configuration);return[Pxi.structUtils.makeLocator(t,a)]}async getSatisfying(t,r,n,a){let o=rDe.splitRepoUrl(t.range);return{locators:n.filter(A=>{if(A.identHash!==t.identHash)return!1;let f=rDe.splitRepoUrl(A.reference);return!(o.repo!==f.repo||o.treeish.protocol===rDe.TreeishProtocols.Commit&&o.treeish.request!==f.treeish.request)}),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Pxi.miscUtils.releaseAfterUseAsync(async()=>await Hpc.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Mpc.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};l1t.GitResolver=xxr});var nDe=H(Mee=>{"use strict";Object.defineProperty(Mee,"__esModule",{value:!0});Mee.GitResolver=Mee.GitFetcher=Mee.gitUtils=void 0;var Ypc=(Pa(),vi(Va)),u1t=Bn(),Oxi=Vxi();Object.defineProperty(Mee,"GitFetcher",{enumerable:!0,get:function(){return Oxi.GitFetcher}});var Mxi=Wxi();Object.defineProperty(Mee,"GitResolver",{enumerable:!0,get:function(){return Mxi.GitResolver}});var Qpc=Ypc.__importStar(o1t());Mee.gitUtils=Qpc;var Xpc={configuration:{approvedGitRepositories:{description:"Array of git repository URL glob patterns that are allowed to be fetched",type:u1t.SettingsType.STRING,default:[],isArray:!0},changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:u1t.SettingsType.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:u1t.SettingsType.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:u1t.SettingsType.NUMBER,default:2}},fetchers:[Oxi.GitFetcher],resolvers:[Mxi.GitResolver]};Mee.default=Xpc});var hUe=H(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.Decision=void 0;GG.validateReleaseDecision=IUe;GG.resolveVersionFiles=jpc;GG.clearVersionFiles=zpc;GG.updateVersionFiles=qpc;GG.openVersionFile=$pc;GG.requireMoreDecisions=efc;GG.getUndecidedWorkspaces=Hxi;GG.getUndecidedDependentWorkspaces=Yxi;GG.suggestStrategy=tfc;GG.applyStrategy=Fxr;GG.applyReleases=rfc;GG.applyPrerelease=Qxi;var Jpc=(Pa(),vi(Va)),PE=Bn(),Xv=no(),pCe=TW(),Gxr=nDe(),fUe=($c(),vi(rg)),Upc=kW(),Hee=Jpc.__importDefault(UC()),Kpc=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,aH;(function(e){e.UNDECIDED="undecided",e.DECLINE="decline",e.MAJOR="major",e.MINOR="minor",e.PATCH="patch",e.PREMAJOR="premajor",e.PREMINOR="preminor",e.PREPATCH="prepatch",e.PRERELEASE="prerelease"})(aH||(GG.Decision=aH={}));function IUe(e){let t=Hee.default.valid(e);return t||PE.miscUtils.validateEnum((0,Upc.omit)(aH,"UNDECIDED"),e)}async function jpc(e,{prerelease:t=null}={}){let r=new Map,n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return r;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A);for(let[I,C]of Object.entries(f.releases||{})){if(C===aH.DECLINE)continue;let b=PE.structUtils.parseIdent(I),E=e.tryWorkspaceByIdent(b);if(E===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${Xv.ppath.basename(l)} references ${I})`);if(E.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${PE.structUtils.prettyLocator(e.configuration,E.anchoredLocator)})`);let N=E.manifest.raw.stableVersion??E.manifest.version,B=r.get(E),F=aH.PRERELEASE===C?Fxr(E.manifest.version,IUe(C)):Fxr(N,IUe(C));if(F===null)throw new Error(`Assertion failed: Expected ${N} to support being bumped via strategy ${C}`);let Q=typeof B<"u"?Hee.default.gt(F,B)?F:B:F;r.set(E,Q)}}return t&&(r=new Map([...r].map(([o,l])=>[o,Qxi(l,{current:o.manifest.version,prerelease:t})]))),r}async function zpc(e){let t=e.configuration.get("deferredVersionFolder");Xv.xfs.existsSync(t)&&await Xv.xfs.removePromise(t)}async function qpc(e,t){let r=new Set(t),n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A),I=f?.releases;if(I){for(let C of Object.keys(I)){let b=PE.structUtils.parseIdent(C),E=e.tryWorkspaceByIdent(b);(E===null||r.has(E))&&delete f.releases[C]}Object.keys(f.releases).length>0?await Xv.xfs.changeFilePromise(l,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering(f))):await Xv.xfs.unlinkPromise(l)}}}async function $pc(e,{allowEmpty:t=!1}={}){let r=e.configuration;if(r.projectCwd===null)throw new fUe.UsageError("This command can only be run from within a Yarn project");let n=await Gxr.gitUtils.fetchRoot(r.projectCwd),a=n!==null?await Gxr.gitUtils.fetchBase(n,{baseRefs:r.get("changesetBaseRefs")}):null,o=n!==null?await Gxr.gitUtils.fetchChangedFiles(n,{base:a.hash,project:e}):[],l=r.get("deferredVersionFolder"),A=o.filter(N=>Xv.ppath.contains(l,N)!==null);if(A.length>1)throw new fUe.UsageError(`Your current branch contains multiple versioning files; this isn't supported: - ${A.map(N=>Xv.npath.fromPortablePath(N)).join(` -- `)}`);let f=new Set(PE.miscUtils.mapAndFilter(o,N=>{let B=e.tryWorkspaceByFilePath(N);return B===null?PE.miscUtils.mapAndFilter.skip:B}));if(A.length===0&&f.size===0&&!t)return null;let I=A.length===1?A[0]:Xv.ppath.join(l,`${PE.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),C=Xv.xfs.existsSync(I)?await Xv.xfs.readFilePromise(I,"utf8"):"{}",b=(0,pCe.parseSyml)(C),E=new Map;for(let N of b.declined||[]){let B=PE.structUtils.parseIdent(N),F=e.getWorkspaceByIdent(B);E.set(F,aH.DECLINE)}for(let[N,B]of Object.entries(b.releases||{})){let F=PE.structUtils.parseIdent(N),Q=e.getWorkspaceByIdent(F);E.set(Q,IUe(B))}return{project:e,root:n,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(o),changedWorkspaces:f,releaseRoots:new Set([...f].filter(N=>N.manifest.version!==null)),releases:E,async saveAll(){let N={},B=[],F=[];for(let Q of e.workspaces){if(Q.manifest.version===null)continue;let X=PE.structUtils.stringifyIdent(Q.anchoredLocator),ae=E.get(Q);ae===aH.DECLINE?B.push(X):typeof ae<"u"?N[X]=IUe(ae):f.has(Q)&&F.push(X)}await Xv.xfs.mkdirPromise(Xv.ppath.dirname(I),{recursive:!0}),await Xv.xfs.changeFilePromise(I,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering({releases:Object.keys(N).length>0?N:void 0,declined:B.length>0?B:void 0,undecided:F.length>0?F:void 0})))}}}function $pc(e){return Hxi(e).size>0||Yxi(e).length>0}function Hxi(e){let t=new Set;for(let r of e.changedWorkspaces)r.manifest.version!==null&&(e.releases.has(r)||t.add(r));return t}function Yxi(e,{include:t=new Set}={}){let r=[],n=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l===aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o])),a=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l!==aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o]));for(let o of e.project.workspaces)if(!(!t.has(o)&&(a.has(o.anchoredLocator.locatorHash)||n.has(o.anchoredLocator.locatorHash)))&&o.manifest.version!==null)for(let l of PE.Manifest.hardDependencies)for(let A of o.manifest.getForScope(l).values()){let f=e.project.tryWorkspaceByDescriptor(A);f!==null&&n.has(f.anchoredLocator.locatorHash)&&r.push([o,f])}return r}function efc(e,t){let r=Hee.default.clean(t);for(let n of Object.values(aH))if(n!==aH.UNDECIDED&&n!==aH.DECLINE&&Hee.default.inc(e,n)===r)return n;return null}function Fxr(e,t){if(Hee.default.valid(t))return t;if(e===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" unless the workspace already has a valid version`);if(!Hee.default.valid(e))throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on a non-semver version (${e})`);let r=Hee.default.inc(e,t);if(r===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on the specified version (${e})`);return r}function tfc(e,t,{report:r,exact:n}){let a=new Map;for(let o of e.workspaces)for(let l of PE.Manifest.allDependencies)for(let A of o.manifest[l].values()){let f=e.tryWorkspaceByDescriptor(A);if(f===null||!t.has(f))continue;PE.miscUtils.getArrayWithDefault(a,f).push([o,l,A.identHash])}for(let[o,l]of t){let A=o.manifest.version;o.manifest.version=l,Hee.default.prerelease(l)===null?delete o.manifest.raw.stableVersion:o.manifest.raw.stableVersion||(o.manifest.raw.stableVersion=A);let f=o.manifest.name!==null?PE.structUtils.stringifyIdent(o.manifest.name):null;r.reportInfo(PE.MessageName.UNNAMED,`${PE.structUtils.prettyLocator(e.configuration,o.anchoredLocator)}: Bumped to ${l}`),r.reportJson({cwd:Xv.npath.fromPortablePath(o.cwd),ident:f,oldVersion:A,newVersion:l});let I=a.get(o);if(!(typeof I>"u"))for(let[C,b,E]of I){let N=C.manifest[b].get(E);if(typeof N>"u")throw new Error("Assertion failed: The dependency should have existed");let B=N.range,F=!1;if(B.startsWith(PE.WorkspaceResolver.protocol)&&(B=B.slice(PE.WorkspaceResolver.protocol.length),F=!0,B===o.relativeCwd))continue;let Q=B.match(Upc);if(!Q){r.reportWarning(PE.MessageName.UNNAMED,`Couldn't auto-upgrade range ${B} (in ${PE.structUtils.prettyLocator(e.configuration,C.anchoredLocator)})`);continue}let X=n?`${l}`:`${Q[1]}${l}`;F&&(X=`${PE.WorkspaceResolver.protocol}${X}`);let ae=PE.structUtils.makeDescriptor(N,X);C.manifest[b].set(E,ae)}}}var rfc=new Map([["%n",{extract:e=>e.length>=1?[e[0],e.slice(1)]:null,generate:(e=0)=>`${e+1}`}]]);function Qxi(e,{current:t,prerelease:r}){let n=new Hee.default.SemVer(t),a=n.prerelease.slice(),o=[];n.prerelease=[],n.format()!==e&&(a.length=0);let l=!0,A=r.split(/\./g);for(let f of A){let I=rfc.get(f);if(typeof I>"u")o.push(f),a[0]===f?a.shift():l=!1;else{let C=l?I.extract(a):null;C!==null&&typeof C[0]=="number"?(o.push(I.generate(C[0])),a=C[1]):(o.push(I.generate()),l=!1)}}return n.prerelease&&(n.prerelease=[]),`${e}-${o.join(".")}`}});var Uxi=H(Lxr=>{"use strict";Object.defineProperty(Lxr,"__esModule",{value:!0});var nfc=(Pa(),vi(Va)),Xxi=el(),Zxr=Bn(),Jxi=Bn(),fCe=($c(),vi(rg)),g1t=nfc.__importStar(hUe()),mUe=class extends Xxi.BaseCommand{constructor(){super(...arguments),this.all=fCe.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"}),this.dryRun=fCe.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"}),this.prerelease=fCe.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0}),this.exact=fCe.Option.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."}),this.recursive=fCe.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"}),this.json=fCe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Zxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Jxi.Project.find(t,this.context.cwd),a=await Zxr.Cache.find(t);if(!n)throw new Xxi.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=await Jxi.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,f=await g1t.resolveVersionFiles(r,{prerelease:A}),I=new Map;if(this.all)I=f;else{let C=this.recursive?n.getRecursiveWorkspaceDependencies():[n];for(let b of C){let E=f.get(b);typeof E<"u"&&I.set(b,E)}}if(I.size===0){let C=f.size>0?" Did you want to add --all?":"";l.reportWarning(Zxr.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${C}`);return}g1t.applyReleases(r,I,{report:l,exact:this.exact}),this.dryRun||(A||(this.all?await g1t.clearVersionFiles(r):await g1t.updateVersionFiles(r,[...I.keys()])),l.reportSeparator())});return this.dryRun||o.hasErrors()?o.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};mUe.paths=[["version","apply"]];mUe.usage=fCe.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` +- `)}`);let f=new Set(PE.miscUtils.mapAndFilter(o,N=>{let B=e.tryWorkspaceByFilePath(N);return B===null?PE.miscUtils.mapAndFilter.skip:B}));if(A.length===0&&f.size===0&&!t)return null;let I=A.length===1?A[0]:Xv.ppath.join(l,`${PE.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),C=Xv.xfs.existsSync(I)?await Xv.xfs.readFilePromise(I,"utf8"):"{}",b=(0,pCe.parseSyml)(C),E=new Map;for(let N of b.declined||[]){let B=PE.structUtils.parseIdent(N),F=e.getWorkspaceByIdent(B);E.set(F,aH.DECLINE)}for(let[N,B]of Object.entries(b.releases||{})){let F=PE.structUtils.parseIdent(N),Q=e.getWorkspaceByIdent(F);E.set(Q,IUe(B))}return{project:e,root:n,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(o),changedWorkspaces:f,releaseRoots:new Set([...f].filter(N=>N.manifest.version!==null)),releases:E,async saveAll(){let N={},B=[],F=[];for(let Q of e.workspaces){if(Q.manifest.version===null)continue;let X=PE.structUtils.stringifyIdent(Q.anchoredLocator),ae=E.get(Q);ae===aH.DECLINE?B.push(X):typeof ae<"u"?N[X]=IUe(ae):f.has(Q)&&F.push(X)}await Xv.xfs.mkdirPromise(Xv.ppath.dirname(I),{recursive:!0}),await Xv.xfs.changeFilePromise(I,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering({releases:Object.keys(N).length>0?N:void 0,declined:B.length>0?B:void 0,undecided:F.length>0?F:void 0})))}}}function efc(e){return Hxi(e).size>0||Yxi(e).length>0}function Hxi(e){let t=new Set;for(let r of e.changedWorkspaces)r.manifest.version!==null&&(e.releases.has(r)||t.add(r));return t}function Yxi(e,{include:t=new Set}={}){let r=[],n=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l===aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o])),a=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l!==aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o]));for(let o of e.project.workspaces)if(!(!t.has(o)&&(a.has(o.anchoredLocator.locatorHash)||n.has(o.anchoredLocator.locatorHash)))&&o.manifest.version!==null)for(let l of PE.Manifest.hardDependencies)for(let A of o.manifest.getForScope(l).values()){let f=e.project.tryWorkspaceByDescriptor(A);f!==null&&n.has(f.anchoredLocator.locatorHash)&&r.push([o,f])}return r}function tfc(e,t){let r=Hee.default.clean(t);for(let n of Object.values(aH))if(n!==aH.UNDECIDED&&n!==aH.DECLINE&&Hee.default.inc(e,n)===r)return n;return null}function Fxr(e,t){if(Hee.default.valid(t))return t;if(e===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" unless the workspace already has a valid version`);if(!Hee.default.valid(e))throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on a non-semver version (${e})`);let r=Hee.default.inc(e,t);if(r===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on the specified version (${e})`);return r}function rfc(e,t,{report:r,exact:n}){let a=new Map;for(let o of e.workspaces)for(let l of PE.Manifest.allDependencies)for(let A of o.manifest[l].values()){let f=e.tryWorkspaceByDescriptor(A);if(f===null||!t.has(f))continue;PE.miscUtils.getArrayWithDefault(a,f).push([o,l,A.identHash])}for(let[o,l]of t){let A=o.manifest.version;o.manifest.version=l,Hee.default.prerelease(l)===null?delete o.manifest.raw.stableVersion:o.manifest.raw.stableVersion||(o.manifest.raw.stableVersion=A);let f=o.manifest.name!==null?PE.structUtils.stringifyIdent(o.manifest.name):null;r.reportInfo(PE.MessageName.UNNAMED,`${PE.structUtils.prettyLocator(e.configuration,o.anchoredLocator)}: Bumped to ${l}`),r.reportJson({cwd:Xv.npath.fromPortablePath(o.cwd),ident:f,oldVersion:A,newVersion:l});let I=a.get(o);if(!(typeof I>"u"))for(let[C,b,E]of I){let N=C.manifest[b].get(E);if(typeof N>"u")throw new Error("Assertion failed: The dependency should have existed");let B=N.range,F=!1;if(B.startsWith(PE.WorkspaceResolver.protocol)&&(B=B.slice(PE.WorkspaceResolver.protocol.length),F=!0,B===o.relativeCwd))continue;let Q=B.match(Kpc);if(!Q){r.reportWarning(PE.MessageName.UNNAMED,`Couldn't auto-upgrade range ${B} (in ${PE.structUtils.prettyLocator(e.configuration,C.anchoredLocator)})`);continue}let X=n?`${l}`:`${Q[1]}${l}`;F&&(X=`${PE.WorkspaceResolver.protocol}${X}`);let ae=PE.structUtils.makeDescriptor(N,X);C.manifest[b].set(E,ae)}}}var nfc=new Map([["%n",{extract:e=>e.length>=1?[e[0],e.slice(1)]:null,generate:(e=0)=>`${e+1}`}]]);function Qxi(e,{current:t,prerelease:r}){let n=new Hee.default.SemVer(t),a=n.prerelease.slice(),o=[];n.prerelease=[],n.format()!==e&&(a.length=0);let l=!0,A=r.split(/\./g);for(let f of A){let I=nfc.get(f);if(typeof I>"u")o.push(f),a[0]===f?a.shift():l=!1;else{let C=l?I.extract(a):null;C!==null&&typeof C[0]=="number"?(o.push(I.generate(C[0])),a=C[1]):(o.push(I.generate()),l=!1)}}return n.prerelease&&(n.prerelease=[]),`${e}-${o.join(".")}`}});var Uxi=H(Lxr=>{"use strict";Object.defineProperty(Lxr,"__esModule",{value:!0});var ifc=(Pa(),vi(Va)),Xxi=el(),Zxr=Bn(),Jxi=Bn(),fCe=($c(),vi(rg)),g1t=ifc.__importStar(hUe()),mUe=class extends Xxi.BaseCommand{constructor(){super(...arguments),this.all=fCe.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"}),this.dryRun=fCe.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"}),this.prerelease=fCe.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0}),this.exact=fCe.Option.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."}),this.recursive=fCe.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"}),this.json=fCe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Zxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Jxi.Project.find(t,this.context.cwd),a=await Zxr.Cache.find(t);if(!n)throw new Xxi.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=await Jxi.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,f=await g1t.resolveVersionFiles(r,{prerelease:A}),I=new Map;if(this.all)I=f;else{let C=this.recursive?n.getRecursiveWorkspaceDependencies():[n];for(let b of C){let E=f.get(b);typeof E<"u"&&I.set(b,E)}}if(I.size===0){let C=f.size>0?" Did you want to add --all?":"";l.reportWarning(Zxr.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${C}`);return}g1t.applyReleases(r,I,{report:l,exact:this.exact}),this.dryRun||(A||(this.all?await g1t.clearVersionFiles(r):await g1t.updateVersionFiles(r,[...I.keys()])),l.reportSeparator())});return this.dryRun||o.hasErrors()?o.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};mUe.paths=[["version","apply"]];mUe.usage=fCe.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` This command will apply the deferred version changes and remove their definitions from the repository. Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. @@ -1083,9 +1083,9 @@ Additional information: BADCLIENT: Bad error code, ${re} not found in range ${S} - \`--all\` to apply the version bump on all packages in the repository Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. - `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Lxr.default=mUe});var A1t=H(Vxr=>{"use strict";Object.defineProperty(Vxr,"__esModule",{value:!0});Vxr.checkRequirements=ofc;var ifc=(Pa(),vi(Va)),sfc=ifc.__importDefault(wt("os"));function ofc({stdout:e}){if(sfc.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!e.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}});var uGi=H(E_=>{"use strict";var Wxr=Bpt(),iDe=60103,zxi=60106;E_.Fragment=60107;E_.StrictMode=60108;E_.Profiler=60114;var qxi=60109,$xi=60110,eGi=60112;E_.Suspense=60113;var tGi=60115,rGi=60116;typeof Symbol=="function"&&Symbol.for&&(cH=Symbol.for,iDe=cH("react.element"),zxi=cH("react.portal"),E_.Fragment=cH("react.fragment"),E_.StrictMode=cH("react.strict_mode"),E_.Profiler=cH("react.profiler"),qxi=cH("react.provider"),$xi=cH("react.context"),eGi=cH("react.forward_ref"),E_.Suspense=cH("react.suspense"),tGi=cH("react.memo"),rGi=cH("react.lazy"));var cH,Kxi=typeof Symbol=="function"&&Symbol.iterator;function afc(e){return e===null||typeof e!="object"?null:(e=Kxi&&e[Kxi]||e["@@iterator"],typeof e=="function"?e:null)}function CUe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r{"use strict";gGi.exports=uGi()});var fGi=H(_Ue=>{"use strict";var pGi=_Ue&&_Ue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Ue,"__esModule",{value:!0});var AGi=pGi(BMe()),dGi=pGi(uBe()),Afc=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(dGi.default.hide(),a=!0);let A=l+` + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Lxr.default=mUe});var A1t=H(Vxr=>{"use strict";Object.defineProperty(Vxr,"__esModule",{value:!0});Vxr.checkRequirements=afc;var sfc=(Pa(),vi(Va)),ofc=sfc.__importDefault(wt("os"));function afc({stdout:e}){if(ofc.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!e.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}});var uGi=H(E_=>{"use strict";var Wxr=Bpt(),iDe=60103,zxi=60106;E_.Fragment=60107;E_.StrictMode=60108;E_.Profiler=60114;var qxi=60109,$xi=60110,eGi=60112;E_.Suspense=60113;var tGi=60115,rGi=60116;typeof Symbol=="function"&&Symbol.for&&(cH=Symbol.for,iDe=cH("react.element"),zxi=cH("react.portal"),E_.Fragment=cH("react.fragment"),E_.StrictMode=cH("react.strict_mode"),E_.Profiler=cH("react.profiler"),qxi=cH("react.provider"),$xi=cH("react.context"),eGi=cH("react.forward_ref"),E_.Suspense=cH("react.suspense"),tGi=cH("react.memo"),rGi=cH("react.lazy"));var cH,Kxi=typeof Symbol=="function"&&Symbol.iterator;function cfc(e){return e===null||typeof e!="object"?null:(e=Kxi&&e[Kxi]||e["@@iterator"],typeof e=="function"?e:null)}function CUe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r{"use strict";gGi.exports=uGi()});var fGi=H(_Ue=>{"use strict";var pGi=_Ue&&_Ue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Ue,"__esModule",{value:!0});var AGi=pGi(BMe()),dGi=pGi(uBe()),dfc=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(dGi.default.hide(),a=!0);let A=l+` `;A!==n&&(n=A,e.write(AGi.default.eraseLines(r)+A),r=A.split(` -`).length)};return o.clear=()=>{e.write(AGi.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(dGi.default.show(),a=!1)},o};_Ue.default={create:Afc}});var IGi=H((_Zu,yUe)=>{yUe.exports=function(t){var r={},n=Bpt(),a=sC(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;te{e.write(AGi.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(dGi.default.show(),a=!1)},o};_Ue.default={create:dfc}});var IGi=H((yZu,yUe)=>{yUe.exports=function(t){var r={},n=Bpt(),a=sC(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;teUr||Le[dr]!==ft[Ur])return` @@ -1097,30 +1097,30 @@ Add a component higher in the tree to provide a loading `+(Re.join(" > ")+` No matching component was found for: - `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var mGi=H((yZu,hGi)=>{"use strict";hGi.exports=IGi()});var CGi=H(bUe=>{"use strict";var dfc=bUe&&bUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bUe,"__esModule",{value:!0});var pfc=dfc(FMe()),Qxr={};bUe.default=e=>{if(e.length===0)return{width:0,height:0};if(Qxr[e])return Qxr[e];let t=pfc.default(e),r=e.split(` -`).length;return Qxr[e]={width:t,height:r},{width:t,height:r}}});var _Gi=H(EUe=>{"use strict";var ffc=EUe&&EUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EUe,"__esModule",{value:!0});var S_=ffc(WW()),Ifc=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?S_.default.POSITION_TYPE_ABSOLUTE:S_.default.POSITION_TYPE_RELATIVE)},hfc=(e,t)=>{"marginLeft"in t&&e.setMargin(S_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(S_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(S_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(S_.default.EDGE_BOTTOM,t.marginBottom||0)},mfc=(e,t)=>{"paddingLeft"in t&&e.setPadding(S_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(S_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(S_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(S_.default.EDGE_BOTTOM,t.paddingBottom||0)},Cfc=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(S_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(S_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(S_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(S_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(S_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(S_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(S_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(S_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(S_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_AROUND))},_fc=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},yfc=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?S_.default.DISPLAY_FLEX:S_.default.DISPLAY_NONE)},bfc=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(S_.default.EDGE_TOP,r),e.setBorder(S_.default.EDGE_BOTTOM,r),e.setBorder(S_.default.EDGE_LEFT,r),e.setBorder(S_.default.EDGE_RIGHT,r)}};EUe.default=(e,t={})=>{Ifc(e,t),hfc(e,t),mfc(e,t),Cfc(e,t),_fc(e,t),yfc(e,t),bfc(e,t)}});var Jxr=H(SUe=>{"use strict";var yGi=SUe&&SUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SUe,"__esModule",{value:!0});var Efc=yGi(OIr()),Sfc=yGi(MIr()),Xxr={};SUe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(Xxr[n])return Xxr[n];let a=e;if(r==="wrap"&&(a=Efc.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=Sfc.default(e,t,{position:o})}return Xxr[n]=a,a}});var Kxr=H(Uxr=>{"use strict";Object.defineProperty(Uxr,"__esModule",{value:!0});var bGi=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=bGi(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};Uxr.default=bGi});var jxr=H(Y1=>{"use strict";var vUe=Y1&&Y1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y1,"__esModule",{value:!0});Y1.setTextNodeValue=Y1.createTextNode=Y1.setStyle=Y1.setAttribute=Y1.removeChildNode=Y1.insertBeforeNode=Y1.appendChildNode=Y1.createNode=Y1.TEXT_NAME=void 0;var vfc=vUe(WW()),EGi=vUe(CGi()),Bfc=vUe(_Gi()),wfc=vUe(Jxr()),Tfc=vUe(Kxr());Y1.TEXT_NAME="#text";Y1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:vfc.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(Rfc.bind(null,r))),r};Y1.appendChildNode=(e,t)=>{var r;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Y1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&Bfc.default(e.yogaNode,t)};Y1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Y1.setTextNodeValue(t,e),t};var Rfc=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:Tfc.default(e),o=EGi.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=wfc.default(a,t,l);return EGi.default(A)},SGi=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:SGi(e.parentNode)},f1t=e=>{let t=SGi(e);t?.markDirty()};Y1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,f1t(e)}});var RGi=H(BUe=>{"use strict";var TGi=BUe&&BUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BUe,"__esModule",{value:!0});var vGi=xMe(),Nfc=TGi(mGi()),BGi=TGi(WW()),FG=jxr(),wGi=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};BUe.default=Nfc.default({schedulePassiveEffects:vGi.unstable_scheduleCallback,cancelPassiveEffects:vGi.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=FG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?FG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:FG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return FG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{FG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{FG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_FLEX)},appendInitialChild:FG.appendChildNode,appendChild:FG.appendChildNode,insertBefore:FG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:FG.appendChildNode,insertInContainerBefore:FG.insertBeforeNode,removeChildFromContainer:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?FG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:FG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{FG.setTextNodeValue(e,r)},removeChild:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)}})});var NGi=H(wUe=>{"use strict";var Dfc=wUe&&wUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wUe,"__esModule",{value:!0});var I1t=Dfc(WW());wUe.default=e=>e.getComputedWidth()-e.getComputedPadding(I1t.default.EDGE_LEFT)-e.getComputedPadding(I1t.default.EDGE_RIGHT)-e.getComputedBorder(I1t.default.EDGE_LEFT)-e.getComputedBorder(I1t.default.EDGE_RIGHT)});var zxr=H(RUe=>{"use strict";var kfc=RUe&&RUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RUe,"__esModule",{value:!0});var TUe=kfc(VK()),xfc=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Gfc=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,h1t=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);RUe.default=(e,t,r)=>{if(!t)return e;if(t in TUe.default){let a=h1t(t,r);return TUe.default[a](e)}if(t.startsWith("#")){let a=h1t("hex",r);return TUe.default[a](t)(e)}if(t.startsWith("ansi")){let a=Gfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]);return TUe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=xfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return TUe.default[o](l,A,f)(e)}return e}});var kGi=H(NUe=>{"use strict";var DGi=NUe&&NUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(NUe,"__esModule",{value:!0});var Ffc=DGi(jIr()),qxr=DGi(zxr());NUe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=Ffc.default[r.style.borderStyle],f=qxr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qxr.default(A.vertical,l,"foreground")+` -`).repeat(o-2),C=qxr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var GGi=H(DUe=>{"use strict";var ICe=DUe&&DUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DUe,"__esModule",{value:!0});var Zfc=ICe(WW()),Lfc=ICe(FMe()),Vfc=ICe(UIr()),Pfc=ICe(Jxr()),Wfc=ICe(NGi()),Ofc=ICe(Kxr()),Mfc=ICe(kGi()),Hfc=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` -`.repeat(o)+Vfc.default(t,a)}return t},xGi=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===Zfc.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=Ofc.default(e);if(E.length>0){let N=Lfc.default(E),B=Wfc.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=Pfc.default(E,B,F)}E=Hfc(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&Mfc.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)xGi(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};DUe.default=xGi});var LGi=H(kUe=>{"use strict";var ZGi=kUe&&kUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kUe,"__esModule",{value:!0});var FGi=ZGi(Rpt()),Yfc=ZGi(dBe()),$xr=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` -`),height:t.length}}};kUe.default=$xr});var WGi=H(xUe=>{"use strict";var eGr=xUe&&xUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xUe,"__esModule",{value:!0});var Qfc=eGr(WW()),VGi=eGr(GGi()),PGi=eGr(LGi());xUe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,Qfc.default.DIRECTION_LTR);let n=new PGi.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});VGi.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new PGi.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),VGi.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rGr=H(tGr=>{"use strict";Object.defineProperty(tGr,"__esModule",{value:!0});tGr.default=new WeakMap});var iGr=H(nGr=>{"use strict";Object.defineProperty(nGr,"__esModule",{value:!0});var Xfc=sC(),OGi=Xfc.createContext({exit:()=>{}});OGi.displayName="InternalAppContext";nGr.default=OGi});var oGr=H(sGr=>{"use strict";Object.defineProperty(sGr,"__esModule",{value:!0});var Jfc=sC(),MGi=Jfc.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});MGi.displayName="InternalStdinContext";sGr.default=MGi});var cGr=H(aGr=>{"use strict";Object.defineProperty(aGr,"__esModule",{value:!0});var Ufc=sC(),HGi=Ufc.createContext({stdout:void 0,write:()=>{}});HGi.displayName="InternalStdoutContext";aGr.default=HGi});var uGr=H(lGr=>{"use strict";Object.defineProperty(lGr,"__esModule",{value:!0});var Kfc=sC(),YGi=Kfc.createContext({stderr:void 0,write:()=>{}});YGi.displayName="InternalStderrContext";lGr.default=YGi});var m1t=H(gGr=>{"use strict";Object.defineProperty(gGr,"__esModule",{value:!0});var jfc=sC(),QGi=jfc.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});QGi.displayName="InternalFocusContext";gGr.default=QGi});var C1t=H(l4=>{"use strict";var zfc=l4&&l4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qfc=l4&&l4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),$fc=l4&&l4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&zfc(t,e,r);return qfc(t,e),t},eIc=l4&&l4.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=eIc(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return XGi.default.createElement("ink-box",{ref:t,style:a},r)});AGr.displayName="Box";AGr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};l4.default=AGr});var fGr=H(GUe=>{"use strict";var dGr=GUe&&GUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GUe,"__esModule",{value:!0});var tIc=dGr(sC()),oDe=dGr(VK()),JGi=dGr(zxr()),pGr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=oDe.default.dim(b)),e&&(b=JGi.default(b,e,"foreground")),t&&(b=JGi.default(b,t,"background")),n&&(b=oDe.default.bold(b)),a&&(b=oDe.default.italic(b)),o&&(b=oDe.default.underline(b)),l&&(b=oDe.default.strikethrough(b)),A&&(b=oDe.default.inverse(b)),b);return tIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};pGr.displayName="Text";pGr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};GUe.default=pGr});var zGi=H(u4=>{"use strict";var rIc=u4&&u4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),nIc=u4&&u4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),iIc=u4&&u4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&rIc(t,e,r);return nIc(t,e),t},FUe=u4&&u4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u4,"__esModule",{value:!0});var UGi=iIc(wt("fs")),GR=FUe(sC()),KGi=FUe(Fpt()),sIc=FUe(fhr()),Qee=FUe(C1t()),Ej=FUe(fGr()),jGi=new KGi.default({cwd:process.cwd(),internals:KGi.default.nodeInternals()}),oIc=({error:e})=>{let t=e.stack?e.stack.split(` -`).slice(1):void 0,r=t?jGi.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&UGi.existsSync(r.file)){let o=UGi.readFileSync(r.file,"utf8");if(n=sIc.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return GR.default.createElement(Qee.default,{flexDirection:"column",padding:1},GR.default.createElement(Qee.default,null,GR.default.createElement(Ej.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),GR.default.createElement(Ej.default,null," ",e.message)),r&&GR.default.createElement(Qee.default,{marginTop:1},GR.default.createElement(Ej.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Qee.default,{width:a+1},GR.default.createElement(Ej.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),GR.default.createElement(Ej.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},e.stack.split(` -`).slice(1).map(o=>{let l=jGi.parseLine(o);return l?GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},l.function),GR.default.createElement(Ej.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},o))})))};u4.default=oIc});var $Gi=H(g4=>{"use strict";var aIc=g4&&g4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cIc=g4&&g4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lIc=g4&&g4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&aIc(t,e,r);return cIc(t,e),t},mCe=g4&&g4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(g4,"__esModule",{value:!0});var hCe=lIc(sC()),qGi=mCe(uBe()),uIc=mCe(iGr()),gIc=mCe(oGr()),AIc=mCe(cGr()),dIc=mCe(uGr()),pIc=mCe(m1t()),fIc=mCe(zGi()),IIc=" ",hIc="\x1B[Z",mIc="\x1B",_1t=class extends hCe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. + `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var mGi=H((bZu,hGi)=>{"use strict";hGi.exports=IGi()});var CGi=H(bUe=>{"use strict";var pfc=bUe&&bUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bUe,"__esModule",{value:!0});var ffc=pfc(FMe()),Qxr={};bUe.default=e=>{if(e.length===0)return{width:0,height:0};if(Qxr[e])return Qxr[e];let t=ffc.default(e),r=e.split(` +`).length;return Qxr[e]={width:t,height:r},{width:t,height:r}}});var _Gi=H(EUe=>{"use strict";var Ifc=EUe&&EUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EUe,"__esModule",{value:!0});var S_=Ifc(WW()),hfc=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?S_.default.POSITION_TYPE_ABSOLUTE:S_.default.POSITION_TYPE_RELATIVE)},mfc=(e,t)=>{"marginLeft"in t&&e.setMargin(S_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(S_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(S_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(S_.default.EDGE_BOTTOM,t.marginBottom||0)},Cfc=(e,t)=>{"paddingLeft"in t&&e.setPadding(S_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(S_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(S_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(S_.default.EDGE_BOTTOM,t.paddingBottom||0)},_fc=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(S_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(S_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(S_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(S_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(S_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(S_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(S_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(S_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(S_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_AROUND))},yfc=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},bfc=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?S_.default.DISPLAY_FLEX:S_.default.DISPLAY_NONE)},Efc=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(S_.default.EDGE_TOP,r),e.setBorder(S_.default.EDGE_BOTTOM,r),e.setBorder(S_.default.EDGE_LEFT,r),e.setBorder(S_.default.EDGE_RIGHT,r)}};EUe.default=(e,t={})=>{hfc(e,t),mfc(e,t),Cfc(e,t),_fc(e,t),yfc(e,t),bfc(e,t),Efc(e,t)}});var Jxr=H(SUe=>{"use strict";var yGi=SUe&&SUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SUe,"__esModule",{value:!0});var Sfc=yGi(OIr()),vfc=yGi(MIr()),Xxr={};SUe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(Xxr[n])return Xxr[n];let a=e;if(r==="wrap"&&(a=Sfc.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=vfc.default(e,t,{position:o})}return Xxr[n]=a,a}});var Kxr=H(Uxr=>{"use strict";Object.defineProperty(Uxr,"__esModule",{value:!0});var bGi=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=bGi(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};Uxr.default=bGi});var jxr=H(Y1=>{"use strict";var vUe=Y1&&Y1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y1,"__esModule",{value:!0});Y1.setTextNodeValue=Y1.createTextNode=Y1.setStyle=Y1.setAttribute=Y1.removeChildNode=Y1.insertBeforeNode=Y1.appendChildNode=Y1.createNode=Y1.TEXT_NAME=void 0;var Bfc=vUe(WW()),EGi=vUe(CGi()),wfc=vUe(_Gi()),Tfc=vUe(Jxr()),Rfc=vUe(Kxr());Y1.TEXT_NAME="#text";Y1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:Bfc.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(Nfc.bind(null,r))),r};Y1.appendChildNode=(e,t)=>{var r;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Y1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&wfc.default(e.yogaNode,t)};Y1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Y1.setTextNodeValue(t,e),t};var Nfc=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:Rfc.default(e),o=EGi.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=Tfc.default(a,t,l);return EGi.default(A)},SGi=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:SGi(e.parentNode)},f1t=e=>{let t=SGi(e);t?.markDirty()};Y1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,f1t(e)}});var RGi=H(BUe=>{"use strict";var TGi=BUe&&BUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BUe,"__esModule",{value:!0});var vGi=xMe(),Dfc=TGi(mGi()),BGi=TGi(WW()),FG=jxr(),wGi=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};BUe.default=Dfc.default({schedulePassiveEffects:vGi.unstable_scheduleCallback,cancelPassiveEffects:vGi.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=FG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?FG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:FG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return FG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{FG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{FG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_FLEX)},appendInitialChild:FG.appendChildNode,appendChild:FG.appendChildNode,insertBefore:FG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:FG.appendChildNode,insertInContainerBefore:FG.insertBeforeNode,removeChildFromContainer:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?FG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:FG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{FG.setTextNodeValue(e,r)},removeChild:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)}})});var NGi=H(wUe=>{"use strict";var kfc=wUe&&wUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wUe,"__esModule",{value:!0});var I1t=kfc(WW());wUe.default=e=>e.getComputedWidth()-e.getComputedPadding(I1t.default.EDGE_LEFT)-e.getComputedPadding(I1t.default.EDGE_RIGHT)-e.getComputedBorder(I1t.default.EDGE_LEFT)-e.getComputedBorder(I1t.default.EDGE_RIGHT)});var zxr=H(RUe=>{"use strict";var xfc=RUe&&RUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RUe,"__esModule",{value:!0});var TUe=xfc(VK()),Gfc=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Ffc=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,h1t=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);RUe.default=(e,t,r)=>{if(!t)return e;if(t in TUe.default){let a=h1t(t,r);return TUe.default[a](e)}if(t.startsWith("#")){let a=h1t("hex",r);return TUe.default[a](t)(e)}if(t.startsWith("ansi")){let a=Ffc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]);return TUe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=Gfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return TUe.default[o](l,A,f)(e)}return e}});var kGi=H(NUe=>{"use strict";var DGi=NUe&&NUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(NUe,"__esModule",{value:!0});var Zfc=DGi(jIr()),qxr=DGi(zxr());NUe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=Zfc.default[r.style.borderStyle],f=qxr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qxr.default(A.vertical,l,"foreground")+` +`).repeat(o-2),C=qxr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var GGi=H(DUe=>{"use strict";var ICe=DUe&&DUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DUe,"__esModule",{value:!0});var Lfc=ICe(WW()),Vfc=ICe(FMe()),Pfc=ICe(UIr()),Wfc=ICe(Jxr()),Ofc=ICe(NGi()),Mfc=ICe(Kxr()),Hfc=ICe(kGi()),Yfc=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` +`.repeat(o)+Pfc.default(t,a)}return t},xGi=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===Lfc.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=Mfc.default(e);if(E.length>0){let N=Vfc.default(E),B=Ofc.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=Wfc.default(E,B,F)}E=Yfc(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&Hfc.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)xGi(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};DUe.default=xGi});var LGi=H(kUe=>{"use strict";var ZGi=kUe&&kUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kUe,"__esModule",{value:!0});var FGi=ZGi(Rpt()),Qfc=ZGi(dBe()),$xr=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` +`),height:t.length}}};kUe.default=$xr});var WGi=H(xUe=>{"use strict";var eGr=xUe&&xUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xUe,"__esModule",{value:!0});var Xfc=eGr(WW()),VGi=eGr(GGi()),PGi=eGr(LGi());xUe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,Xfc.default.DIRECTION_LTR);let n=new PGi.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});VGi.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new PGi.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),VGi.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rGr=H(tGr=>{"use strict";Object.defineProperty(tGr,"__esModule",{value:!0});tGr.default=new WeakMap});var iGr=H(nGr=>{"use strict";Object.defineProperty(nGr,"__esModule",{value:!0});var Jfc=sC(),OGi=Jfc.createContext({exit:()=>{}});OGi.displayName="InternalAppContext";nGr.default=OGi});var oGr=H(sGr=>{"use strict";Object.defineProperty(sGr,"__esModule",{value:!0});var Ufc=sC(),MGi=Ufc.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});MGi.displayName="InternalStdinContext";sGr.default=MGi});var cGr=H(aGr=>{"use strict";Object.defineProperty(aGr,"__esModule",{value:!0});var Kfc=sC(),HGi=Kfc.createContext({stdout:void 0,write:()=>{}});HGi.displayName="InternalStdoutContext";aGr.default=HGi});var uGr=H(lGr=>{"use strict";Object.defineProperty(lGr,"__esModule",{value:!0});var jfc=sC(),YGi=jfc.createContext({stderr:void 0,write:()=>{}});YGi.displayName="InternalStderrContext";lGr.default=YGi});var m1t=H(gGr=>{"use strict";Object.defineProperty(gGr,"__esModule",{value:!0});var zfc=sC(),QGi=zfc.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});QGi.displayName="InternalFocusContext";gGr.default=QGi});var C1t=H(l4=>{"use strict";var qfc=l4&&l4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$fc=l4&&l4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),eIc=l4&&l4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&qfc(t,e,r);return $fc(t,e),t},tIc=l4&&l4.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=tIc(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return XGi.default.createElement("ink-box",{ref:t,style:a},r)});AGr.displayName="Box";AGr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};l4.default=AGr});var fGr=H(GUe=>{"use strict";var dGr=GUe&&GUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GUe,"__esModule",{value:!0});var rIc=dGr(sC()),oDe=dGr(VK()),JGi=dGr(zxr()),pGr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=oDe.default.dim(b)),e&&(b=JGi.default(b,e,"foreground")),t&&(b=JGi.default(b,t,"background")),n&&(b=oDe.default.bold(b)),a&&(b=oDe.default.italic(b)),o&&(b=oDe.default.underline(b)),l&&(b=oDe.default.strikethrough(b)),A&&(b=oDe.default.inverse(b)),b);return rIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};pGr.displayName="Text";pGr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};GUe.default=pGr});var zGi=H(u4=>{"use strict";var nIc=u4&&u4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iIc=u4&&u4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),sIc=u4&&u4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&nIc(t,e,r);return iIc(t,e),t},FUe=u4&&u4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u4,"__esModule",{value:!0});var UGi=sIc(wt("fs")),GR=FUe(sC()),KGi=FUe(Fpt()),oIc=FUe(fhr()),Qee=FUe(C1t()),Ej=FUe(fGr()),jGi=new KGi.default({cwd:process.cwd(),internals:KGi.default.nodeInternals()}),aIc=({error:e})=>{let t=e.stack?e.stack.split(` +`).slice(1):void 0,r=t?jGi.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&UGi.existsSync(r.file)){let o=UGi.readFileSync(r.file,"utf8");if(n=oIc.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return GR.default.createElement(Qee.default,{flexDirection:"column",padding:1},GR.default.createElement(Qee.default,null,GR.default.createElement(Ej.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),GR.default.createElement(Ej.default,null," ",e.message)),r&&GR.default.createElement(Qee.default,{marginTop:1},GR.default.createElement(Ej.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Qee.default,{width:a+1},GR.default.createElement(Ej.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),GR.default.createElement(Ej.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},e.stack.split(` +`).slice(1).map(o=>{let l=jGi.parseLine(o);return l?GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},l.function),GR.default.createElement(Ej.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},o))})))};u4.default=aIc});var $Gi=H(g4=>{"use strict";var cIc=g4&&g4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lIc=g4&&g4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uIc=g4&&g4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&cIc(t,e,r);return lIc(t,e),t},mCe=g4&&g4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(g4,"__esModule",{value:!0});var hCe=uIc(sC()),qGi=mCe(uBe()),gIc=mCe(iGr()),AIc=mCe(oGr()),dIc=mCe(cGr()),pIc=mCe(uGr()),fIc=mCe(m1t()),IIc=mCe(zGi()),hIc=" ",mIc="\x1B[Z",CIc="\x1B",_1t=class extends hCe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===mIc&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===IIc&&this.focusNext(),t===hIc&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return hCe.default.createElement(uIc.default.Provider,{value:{exit:this.handleExit}},hCe.default.createElement(gIc.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},hCe.default.createElement(AIc.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},hCe.default.createElement(dIc.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},hCe.default.createElement(pIc.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?hCe.default.createElement(fIc.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){qGi.default.hide(this.props.stdout)}componentWillUnmount(){qGi.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};g4.default=_1t;_1t.displayName="InternalApp"});var rFi=H(A4=>{"use strict";var CIc=A4&&A4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_Ic=A4&&A4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),yIc=A4&&A4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&CIc(t,e,r);return _Ic(t,e),t},d4=A4&&A4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A4,"__esModule",{value:!0});var bIc=d4(sC()),eFi=AIr(),EIc=d4(fGi()),SIc=d4(BMe()),vIc=d4(hIr()),BIc=d4(mIr()),IGr=d4(RGi()),wIc=d4(WGi()),TIc=d4(mpt()),RIc=d4(rhr()),NIc=yIc(jxr()),DIc=d4(rGr()),kIc=d4($Gi()),aDe=process.env.CI==="false"?!1:vIc.default,tFi=()=>{},hGr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=wIc.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` -`;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(aDe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(SIc.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},BIc.default(this),this.options=t,this.rootNode=NIc.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:eFi.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=EIc.default.create(t.stdout),this.throttledLog=t.debug?this.log:eFi.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=IGr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=TIc.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),aDe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=bIc.default.createElement(kIc.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);IGr.default.updateContainer(r,this.container,null,tFi)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),aDe?this.options.stdout.write(this.lastOutput+` -`):this.options.debug||this.log.done(),this.isUnmounted=!0,IGr.default.updateContainer(null,this.container,null,tFi),DIc.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!aDe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=RIc.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};A4.default=hGr});var iFi=H(ZUe=>{"use strict";var nFi=ZUe&&ZUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZUe,"__esModule",{value:!0});var xIc=nFi(rFi()),y1t=nFi(rGr()),GIc=wt("stream"),FIc=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},ZIc(t)),n=LIc(r.stdout,()=>new xIc.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>y1t.default.delete(r.stdout),clear:n.clear}};ZUe.default=FIc;var ZIc=(e={})=>e instanceof GIc.Stream?{stdout:e,stdin:process.stdin}:e,LIc=(e,t)=>{let r;return y1t.default.has(e)?r=y1t.default.get(e):(r=t(),y1t.default.set(e,r)),r}});var oFi=H(Xee=>{"use strict";var VIc=Xee&&Xee.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),PIc=Xee&&Xee.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),WIc=Xee&&Xee.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&VIc(t,e,r);return PIc(t,e),t};Object.defineProperty(Xee,"__esModule",{value:!0});var LUe=WIc(sC()),sFi=e=>{let{items:t,children:r,style:n}=e,[a,o]=LUe.useState(0),l=LUe.useMemo(()=>t.slice(a),[t,a]);LUe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=LUe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return LUe.default.createElement("ink-box",{internal_static:!0,style:f},A)};sFi.displayName="Static";Xee.default=sFi});var cFi=H(VUe=>{"use strict";var OIc=VUe&&VUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(VUe,"__esModule",{value:!0});var MIc=OIc(sC()),aFi=({children:e,transform:t})=>e==null?null:MIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);aFi.displayName="Transform";VUe.default=aFi});var uFi=H(PUe=>{"use strict";var HIc=PUe&&PUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PUe,"__esModule",{value:!0});var YIc=HIc(sC()),lFi=({count:e=1})=>YIc.default.createElement("ink-text",null,` -`.repeat(e));lFi.displayName="Newline";PUe.default=lFi});var dFi=H(WUe=>{"use strict";var gFi=WUe&&WUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WUe,"__esModule",{value:!0});var QIc=gFi(sC()),XIc=gFi(C1t()),AFi=()=>QIc.default.createElement(XIc.default,{flexGrow:1});AFi.displayName="Spacer";WUe.default=AFi});var b1t=H(OUe=>{"use strict";var JIc=OUe&&OUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OUe,"__esModule",{value:!0});var UIc=sC(),KIc=JIc(oGr()),jIc=()=>UIc.useContext(KIc.default);OUe.default=jIc});var fFi=H(MUe=>{"use strict";var zIc=MUe&&MUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MUe,"__esModule",{value:!0});var pFi=sC(),qIc=zIc(b1t()),$Ic=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=qIc.default();pFi.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),pFi.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};MUe.default=$Ic});var IFi=H(HUe=>{"use strict";var ehc=HUe&&HUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HUe,"__esModule",{value:!0});var thc=sC(),rhc=ehc(iGr()),nhc=()=>thc.useContext(rhc.default);HUe.default=nhc});var hFi=H(YUe=>{"use strict";var ihc=YUe&&YUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YUe,"__esModule",{value:!0});var shc=sC(),ohc=ihc(cGr()),ahc=()=>shc.useContext(ohc.default);YUe.default=ahc});var mFi=H(QUe=>{"use strict";var chc=QUe&&QUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QUe,"__esModule",{value:!0});var lhc=sC(),uhc=chc(uGr()),ghc=()=>lhc.useContext(uhc.default);QUe.default=ghc});var _Fi=H(JUe=>{"use strict";var CFi=JUe&&JUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JUe,"__esModule",{value:!0});var XUe=sC(),Ahc=CFi(m1t()),dhc=CFi(b1t()),phc=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=dhc.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=XUe.useContext(Ahc.default),b=XUe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return XUe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),XUe.useEffect(()=>{e?f(b):I(b)},[e,b]),XUe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};JUe.default=phc});var yFi=H(UUe=>{"use strict";var fhc=UUe&&UUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UUe,"__esModule",{value:!0});var Ihc=sC(),hhc=fhc(m1t()),mhc=()=>{let e=Ihc.useContext(hhc.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};UUe.default=mhc});var bFi=H(mGr=>{"use strict";Object.defineProperty(mGr,"__esModule",{value:!0});mGr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var lH=H(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});var Chc=iFi();Object.defineProperty(Jk,"render",{enumerable:!0,get:function(){return Chc.default}});var _hc=C1t();Object.defineProperty(Jk,"Box",{enumerable:!0,get:function(){return _hc.default}});var yhc=fGr();Object.defineProperty(Jk,"Text",{enumerable:!0,get:function(){return yhc.default}});var bhc=oFi();Object.defineProperty(Jk,"Static",{enumerable:!0,get:function(){return bhc.default}});var Ehc=cFi();Object.defineProperty(Jk,"Transform",{enumerable:!0,get:function(){return Ehc.default}});var Shc=uFi();Object.defineProperty(Jk,"Newline",{enumerable:!0,get:function(){return Shc.default}});var vhc=dFi();Object.defineProperty(Jk,"Spacer",{enumerable:!0,get:function(){return vhc.default}});var Bhc=fFi();Object.defineProperty(Jk,"useInput",{enumerable:!0,get:function(){return Bhc.default}});var whc=IFi();Object.defineProperty(Jk,"useApp",{enumerable:!0,get:function(){return whc.default}});var Thc=b1t();Object.defineProperty(Jk,"useStdin",{enumerable:!0,get:function(){return Thc.default}});var Rhc=hFi();Object.defineProperty(Jk,"useStdout",{enumerable:!0,get:function(){return Rhc.default}});var Nhc=mFi();Object.defineProperty(Jk,"useStderr",{enumerable:!0,get:function(){return Nhc.default}});var Dhc=_Fi();Object.defineProperty(Jk,"useFocus",{enumerable:!0,get:function(){return Dhc.default}});var khc=yFi();Object.defineProperty(Jk,"useFocusManager",{enumerable:!0,get:function(){return khc.default}});var xhc=bFi();Object.defineProperty(Jk,"measureElement",{enumerable:!0,get:function(){return xhc.default}})});var v1t=H(S1t=>{"use strict";Object.defineProperty(S1t,"__esModule",{value:!0});S1t.Gem=void 0;var Ghc=(Pa(),vi(Va)),Fhc=lH(),E1t=Ghc.__importStar(sC());S1t.Gem=(0,E1t.memo)(({active:e})=>{let t=(0,E1t.useMemo)(()=>e?"\u25C9":"\u25EF",[e]),r=(0,E1t.useMemo)(()=>e?"green":"yellow",[e]);return E1t.default.createElement(Fhc.Text,{color:r},t)})});var cDe=H(CGr=>{"use strict";Object.defineProperty(CGr,"__esModule",{value:!0});CGr.useKeypress=Lhc;var Zhc=lH(),EFi=sC();function Lhc({active:e},t,r){let{stdin:n}=(0,Zhc.useStdin)(),a=(0,EFi.useCallback)((o,l)=>t(o,l),r);(0,EFi.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var _Gr=H(lDe=>{"use strict";Object.defineProperty(lDe,"__esModule",{value:!0});lDe.useFocusRequest=lDe.FocusRequest=void 0;var Vhc=cDe(),B1t;(function(e){e.BEFORE="before",e.AFTER="after"})(B1t||(lDe.FocusRequest=B1t={}));var Phc=function({active:e},t,r){(0,Vhc.useKeypress)({active:e},(n,a)=>{a.name==="tab"&&(a.shift?t(B1t.BEFORE):t(B1t.AFTER))},r)};lDe.useFocusRequest=Phc});var T1t=H(w1t=>{"use strict";Object.defineProperty(w1t,"__esModule",{value:!0});w1t.useListInput=void 0;var Whc=cDe(),Ohc=function(e,t,{active:r,minus:n,plus:a,set:o,loop:l=!0}){(0,Whc.useKeypress)({active:r},(A,f)=>{let I=t.indexOf(e);switch(f.name){case n:{let C=I-1;if(l){o(t[(t.length+C)%t.length]);return}if(C<0)return;o(t[C])}break;case a:{let C=I+1;if(l){o(t[C%t.length]);return}if(C>=t.length)return;o(t[C])}break}},[t,e,a,o,l])};w1t.useListInput=Ohc});var N1t=H(R1t=>{"use strict";Object.defineProperty(R1t,"__esModule",{value:!0});R1t.ScrollableItems=void 0;var Mhc=(Pa(),vi(Va)),uDe=lH(),p4=Mhc.__importStar(sC()),Hhc=_Gr(),Yhc=T1t(),Qhc=({active:e=!0,children:t=[],radius:r=10,size:n=1,loop:a=!0,onFocusRequest:o,willReachEnd:l})=>{let A=Q=>{if(Q.key===null)throw new Error("Expected all children to have a key");return Q.key},f=p4.default.Children.map(t,Q=>A(Q)),I=f[0],[C,b]=(0,p4.useState)(I),E=f.indexOf(C);(0,p4.useEffect)(()=>{f.includes(C)||b(I)},[t]),(0,p4.useEffect)(()=>{l&&E>=f.length-2&&l()},[E]),(0,Hhc.useFocusRequest)({active:e&&!!o},Q=>{o?.(Q)},[o]),(0,Yhc.useListInput)(C,f,{active:e,minus:"up",plus:"down",set:b,loop:a});let N=E-r,B=E+r;B>f.length&&(N-=B-f.length,B=f.length),N<0&&(B+=-N,N=0),B>=f.length&&(B=f.length-1);let F=[];for(let Q=N;Q<=B;++Q){let X=f[Q],ae=e&&X===C;F.push(p4.default.createElement(uDe.Box,{key:X,height:n},p4.default.createElement(uDe.Box,{marginLeft:1,marginRight:1},p4.default.createElement(uDe.Text,null,ae?p4.default.createElement(uDe.Text,{color:"cyan",bold:!0},">"):" ")),p4.default.createElement(uDe.Box,null,p4.default.cloneElement(t[Q],{active:ae}))))}return p4.default.createElement(uDe.Box,{flexDirection:"column",width:"100%"},F)};R1t.ScrollableItems=Qhc});var yGr=H(CCe=>{"use strict";Object.defineProperty(CCe,"__esModule",{value:!0});CCe.Application=CCe.MinistoreContext=void 0;var Xhc=(Pa(),vi(Va)),Jhc=lH(),KUe=Xhc.__importStar(sC()),Uhc=wt("readline");CCe.MinistoreContext=KUe.default.createContext(null);var Khc=({children:e})=>{let{stdin:t,setRawMode:r}=(0,Jhc.useStdin)();(0,KUe.useEffect)(()=>{r&&r(!0),t&&(0,Uhc.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,KUe.useState)(new Map),o=(0,KUe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(f=>new Map([...f,[l,A]])),setAll:l=>a(A=>new Map([...A,...l]))}),[n,a]);return KUe.default.createElement(CCe.MinistoreContext.Provider,{value:o,children:e})};CCe.Application=Khc});var D1t=H(bGr=>{"use strict";Object.defineProperty(bGr,"__esModule",{value:!0});bGr.renderForm=$hc;var jhc=(Pa(),vi(Va)),SFi=lH(),vFi=jhc.__importDefault(sC()),zhc=yGr(),qhc=cDe();async function $hc(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,SFi.useApp)();(0,qhc.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,SFi.render)(vFi.default.createElement(zhc.Application,null,vFi.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var BFi=H(vGr=>{"use strict";Object.defineProperty(vGr,"__esModule",{value:!0});var vj=(Pa(),vi(Va)),EGr=el(),FR=Bn(),Sj=no(),emc=vj.__importStar(A1t()),k1t=($c(),vi(rg)),SGr=vj.__importDefault(UC()),ZG=vj.__importStar(hUe()),jUe=class extends EGr.BaseCommand{constructor(){super(...arguments),this.interactive=k1t.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){emc.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vj.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vj.__importStar(N1t())),{FocusRequest:n}=await Promise.resolve().then(()=>vj.__importStar(_Gr())),{useListInput:a}=await Promise.resolve().then(()=>vj.__importStar(T1t())),{renderForm:o}=await Promise.resolve().then(()=>vj.__importStar(D1t())),{Box:l,Text:A}=await Promise.resolve().then(()=>vj.__importStar(lH())),{default:f,useCallback:I,useState:C}=await Promise.resolve().then(()=>vj.__importStar(sC())),b=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:E,workspace:N}=await FR.Project.find(b,this.context.cwd);if(!N)throw new EGr.WorkspaceRequiredError(E.cwd,this.context.cwd);await E.restoreInstallState();let B=await ZG.openVersionFile(E);if(B===null||B.releaseRoots.size===0)return 0;if(B.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");let F=()=>f.createElement(l,{flexDirection:"row",paddingBottom:1},f.createElement(l,{flexDirection:"column",width:60},f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),f.createElement(l,{flexDirection:"column"},f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to save.")),f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),Q=({workspace:ue,active:de,decision:be,setDecision:Se})=>{let De=ue.manifest.raw.stableVersion??ue.manifest.version;if(De===null)throw new Error(`Assertion failed: The version should have been set (${FR.structUtils.prettyLocator(b,ue.anchoredLocator)})`);if(SGr.default.prerelease(De)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${De})`);let k=[ZG.Decision.UNDECIDED,ZG.Decision.DECLINE,ZG.Decision.PATCH,ZG.Decision.MINOR,ZG.Decision.MAJOR];a(be,k,{active:de,minus:"left",plus:"right",set:Se});let et=be===ZG.Decision.UNDECIDED?f.createElement(A,{color:"yellow"},De):be===ZG.Decision.DECLINE?f.createElement(A,{color:"green"},De):f.createElement(A,null,f.createElement(A,{color:"magenta"},De)," \u2192 ",f.createElement(A,{color:"green"},SGr.default.valid(be)?be:SGr.default.inc(De,be)));return f.createElement(l,{flexDirection:"column"},f.createElement(l,null,f.createElement(A,null,FR.structUtils.prettyLocator(b,ue.anchoredLocator)," - ",et)),f.createElement(l,null,k.map(ct=>{let Me=ct===be;return f.createElement(l,{key:ct,paddingLeft:2},f.createElement(A,null,f.createElement(t,{active:Me})," ",ct))})))},X=ue=>{let de=new Set(B.releaseRoots),be=new Map([...ue].filter(([Se])=>de.has(Se)));for(;;){let Se=ZG.getUndecidedDependentWorkspaces({project:B.project,releases:be}),De=!1;if(Se.length>0){for(let[k]of Se)if(!de.has(k)){de.add(k),De=!0;let et=ue.get(k);typeof et<"u"&&be.set(k,et)}}if(!De)break}return{relevantWorkspaces:de,relevantReleases:be}},ae=()=>{let[ue,de]=C(()=>new Map(B.releases)),be=I((Se,De)=>{let k=new Map(ue);De!==ZG.Decision.UNDECIDED?k.set(Se,De):k.delete(Se);let{relevantReleases:et}=X(k);de(et)},[ue,de]);return[ue,be]},ne=({workspaces:ue,releases:de})=>{let be=[];be.push(`${ue.size} total`);let Se=0,De=0;for(let k of ue){let et=de.get(k);typeof et>"u"?De+=1:et!==ZG.Decision.DECLINE&&(Se+=1)}return be.push(`${Se} release${Se===1?"":"s"}`),be.push(`${De} remaining`),f.createElement(A,{color:"yellow"},be.join(", "))},fe=await o(({useSubmit:ue})=>{let[de,be]=ae();ue(de);let{relevantWorkspaces:Se}=X(de),De=new Set([...Se].filter(Me=>!B.releaseRoots.has(Me))),[k,et]=C(0),ct=I(Me=>{switch(Me){case n.BEFORE:et(k-1);break;case n.AFTER:et(k+1);break}},[k,et]);return f.createElement(l,{flexDirection:"column"},f.createElement(F,null),f.createElement(l,null,f.createElement(A,{wrap:"wrap"},"The following files have been modified in your local checkout.")),f.createElement(l,{flexDirection:"column",marginTop:1,paddingLeft:2},[...B.changedFiles].map(Me=>f.createElement(l,{key:Me},f.createElement(A,null,f.createElement(A,{color:"grey"},Sj.npath.fromPortablePath(B.root)),Sj.npath.sep,Sj.npath.relative(Sj.npath.fromPortablePath(B.root),Sj.npath.fromPortablePath(Me)))))),B.releaseRoots.size>0&&f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),De.size>3?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:B.releaseRoots,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===0,radius:1,size:2,onFocusRequest:ct},[...B.releaseRoots].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))),De.size>0?f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),f.createElement(l,null,f.createElement(A,null,"(Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),De.size>5?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:De,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===1,radius:2,size:2,onFocusRequest:ct},[...De].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))):null)},{versionFile:B},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof fe>"u")return 1;B.releases.clear();for(let[ue,de]of fe)B.releases.set(ue,de);await B.saveAll()}async executeStandard(){let t=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await FR.Project.find(t,this.context.cwd);if(!n)throw new EGr.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await FR.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{let l=await ZG.openVersionFile(r);if(l===null||l.releaseRoots.size===0)return;if(l.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");if(o.reportInfo(FR.MessageName.UNNAMED,`Your PR was started right after ${FR.formatUtils.pretty(t,l.baseHash.slice(0,7),"yellow")} ${FR.formatUtils.pretty(t,l.baseTitle,"magenta")}`),l.changedFiles.size>0){o.reportInfo(FR.MessageName.UNNAMED,"You have changed the following files since then:"),o.reportSeparator();for(let b of l.changedFiles)o.reportInfo(null,`${FR.formatUtils.pretty(t,Sj.npath.fromPortablePath(l.root),"gray")}${Sj.npath.sep}${Sj.npath.relative(Sj.npath.fromPortablePath(l.root),Sj.npath.fromPortablePath(b))}`)}let A=!1,f=!1,I=ZG.getUndecidedWorkspaces(l);if(I.size>0){A||o.reportSeparator();for(let b of I)o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} has been modified but doesn't have a release strategy attached`);A=!0}let C=ZG.getUndecidedDependentWorkspaces(l);for(let[b,E]of C)f||o.reportSeparator(),o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} doesn't have a release strategy attached, but depends on ${FR.structUtils.prettyWorkspace(t,E)} which is planned for release.`),f=!0;(A||f)&&(o.reportSeparator(),o.reportInfo(FR.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),o.reportInfo(FR.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};jUe.paths=[["version","check"]];jUe.usage=k1t.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});vGr.default=jUe});var NFi=H(wGr=>{"use strict";Object.defineProperty(wGr,"__esModule",{value:!0});var RFi=(Pa(),vi(Va)),wFi=el(),TFi=Bn(),yCe=($c(),vi(rg)),BGr=RFi.__importDefault(UC()),_Ce=RFi.__importStar(hUe()),zUe=class extends wFi.BaseCommand{constructor(){super(...arguments),this.deferred=yCe.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"}),this.immediate=yCe.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"}),this.strategy=yCe.Option.String()}async execute(){let t=await TFi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TFi.Project.find(t,this.context.cwd);if(!n)throw new wFi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=t.get("preferDeferredVersions");this.deferred&&(a=!0),this.immediate&&(a=!1);let o=BGr.default.valid(this.strategy),l=this.strategy===_Ce.Decision.DECLINE,A;if(o)if(n.manifest.version!==null){let I=_Ce.suggestStrategy(n.manifest.version,this.strategy);I!==null?A=I:A=this.strategy}else A=this.strategy;else{let I=n.manifest.version;if(!l){if(I===null)throw new yCe.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof I!="string"||!BGr.default.valid(I))throw new yCe.UsageError(`Can't bump the version (${I}) if it's not valid semver`)}A=_Ce.validateReleaseDecision(this.strategy)}if(!a){let C=(await _Ce.resolveVersionFiles(r)).get(n);if(typeof C<"u"&&A!==_Ce.Decision.DECLINE){let b=_Ce.applyStrategy(n.manifest.version,A);if(BGr.default.lt(b,C))throw new yCe.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let f=await _Ce.openVersionFile(r,{allowEmpty:!0});return f.releases.set(n,A),await f.saveAll(),a?0:await this.cli.run(["version","apply"])}};zUe.paths=[["version"]];zUe.usage=yCe.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});wGr.default=zUe});var TGr=H(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.versionUtils=f4.VersionCommand=f4.VersionCheckCommand=f4.VersionApplyCommand=void 0;var x1t=(Pa(),vi(Va)),DFi=Bn(),kFi=x1t.__importDefault(Uxi());f4.VersionApplyCommand=kFi.default;var xFi=x1t.__importDefault(BFi());f4.VersionCheckCommand=xFi.default;var GFi=x1t.__importDefault(NFi());f4.VersionCommand=GFi.default;var tmc=x1t.__importStar(hUe());f4.versionUtils=tmc;var rmc={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:DFi.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:DFi.SettingsType.BOOLEAN,default:!1}},commands:[kFi.default,xFi.default,GFi.default]};f4.default=rmc});var XZi=H((d9u,QZi)=>{"use strict";var HZi=wt("path"),nCc=Jjt(),iCc=Kjt();function YZi(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=nCc.sync(e.command,{path:r[iCc({env:r})],pathExt:t?HZi.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=HZi.resolve(a?e.options.cwd:"",l)),l}function sCc(e){return YZi(e)||YZi(e,!0)}QZi.exports=sCc});var JZi=H((p9u,$Gr)=>{"use strict";var qGr=/([()\][%!^"`<>&|;, *?])/g;function oCc(e){return e=e.replace(qGr,"^$1"),e}function aCc(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(qGr,"^$1"),t&&(e=e.replace(qGr,"^$1")),e}$Gr.exports.command=oCc;$Gr.exports.argument=aCc});var KZi=H((f9u,UZi)=>{"use strict";var eFr=wt("fs"),cCc=qjt();function lCc(e){let r=Buffer.alloc(150),n;try{n=eFr.openSync(e,"r"),eFr.readSync(n,r,0,150,0),eFr.closeSync(n)}catch{}return cCc(r.toString())}UZi.exports=lCc});var $Zi=H((I9u,qZi)=>{"use strict";var uCc=wt("path"),jZi=XZi(),zZi=JZi(),gCc=KZi(),ACc=process.platform==="win32",dCc=/\.(?:com|exe)$/i,pCc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function fCc(e){e.file=jZi(e);let t=e.file&&gCc(e.file);return t?(e.args.unshift(e.file),e.command=t,jZi(e)):e.file}function ICc(e){if(!ACc)return e;let t=fCc(e),r=!dCc.test(t);if(e.options.forceShell||r){let n=pCc.test(t);e.command=uCc.normalize(e.command),e.command=zZi.command(e.command),e.args=e.args.map(o=>zZi.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function hCc(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:ICc(n)}qZi.exports=hCc});var rLi=H((h9u,tLi)=>{"use strict";var tFr=process.platform==="win32";function rFr(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function mCc(e,t){if(!tFr)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=eLi(a,t,"spawn");if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function eLi(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawn"):null}function CCc(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawnSync"):null}tLi.exports={hookChildProcess:mCc,verifyENOENT:eLi,verifyENOENTSync:CCc,notFoundError:rFr}});var sLi=H((m9u,dDe)=>{"use strict";var nLi=wt("child_process"),nFr=$Zi(),iFr=rLi();function iLi(e,t,r){let n=nFr(e,t,r),a=nLi.spawn(n.command,n.args,n.options);return iFr.hookChildProcess(a,n),a}function _Cc(e,t,r){let n=nFr(e,t,r),a=nLi.spawnSync(n.command,n.args,n.options);return a.error=a.error||iFr.verifyENOENTSync(a.status,n),a}dDe.exports=iLi;dDe.exports.spawn=iLi;dDe.exports.sync=_Cc;dDe.exports._parse=nFr;dDe.exports._enoent=iFr});var sFr=H((C9u,oLi)=>{"use strict";oLi.exports=function(t,r){return function(){for(var a=new Array(arguments.length),o=0;o{"use strict";var yCc=sFr(),ECe=Object.prototype.toString;function cFr(e){return ECe.call(e)==="[object Array]"}function oFr(e){return typeof e>"u"}function bCc(e){return e!==null&&!oFr(e)&&e.constructor!==null&&!oFr(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function ECc(e){return ECe.call(e)==="[object ArrayBuffer]"}function SCc(e){return typeof FormData<"u"&&e instanceof FormData}function vCc(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function BCc(e){return typeof e=="string"}function wCc(e){return typeof e=="number"}function aLi(e){return e!==null&&typeof e=="object"}function V1t(e){if(ECe.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function TCc(e){return ECe.call(e)==="[object Date]"}function RCc(e){return ECe.call(e)==="[object File]"}function NCc(e){return ECe.call(e)==="[object Blob]"}function cLi(e){return ECe.call(e)==="[object Function]"}function DCc(e){return aLi(e)&&cLi(e.pipe)}function kCc(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function xCc(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function GCc(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function lFr(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),cFr(e))for(var r=0,n=e.length;r{"use strict";var pDe=$Z();function uLi(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}gLi.exports=function(t,r,n){if(!r)return t;var a;if(n)a=n(r);else if(pDe.isURLSearchParams(r))a=r.toString();else{var o=[];pDe.forEach(r,function(f,I){f===null||typeof f>"u"||(pDe.isArray(f)?I=I+"[]":f=[f],pDe.forEach(f,function(b){pDe.isDate(b)?b=b.toISOString():pDe.isObject(b)&&(b=JSON.stringify(b)),o.push(uLi(I)+"="+uLi(b))}))}),a=o.join("&")}if(a){var l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+a}return t}});var dLi=H((b9u,ALi)=>{"use strict";var LCc=$Z();function W1t(){this.handlers=[]}W1t.prototype.use=function(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};W1t.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};W1t.prototype.forEach=function(t){LCc.forEach(this.handlers,function(n){n!==null&&t(n)})};ALi.exports=W1t});var fLi=H((E9u,pLi)=>{"use strict";var VCc=$Z();pLi.exports=function(t,r){VCc.forEach(t,function(a,o){o!==r&&o.toUpperCase()===r.toUpperCase()&&(t[r]=a,delete t[o])})}});var O1t=H((S9u,ILi)=>{"use strict";ILi.exports=function(t,r,n,a,o){return t.config=r,n&&(t.code=n),t.request=a,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var M1t=H((v9u,hLi)=>{"use strict";var PCc=O1t();hLi.exports=function(t,r,n,a,o){var l=new Error(t);return PCc(l,r,n,a,o)}});var uFr=H((B9u,mLi)=>{"use strict";var WCc=M1t();mLi.exports=function(t,r,n){var a=n.config.validateStatus;!n.status||!a||a(n.status)?t(n):r(WCc("Request failed with status code "+n.status,n.config,null,n.request,n))}});var _Li=H((w9u,CLi)=>{"use strict";var H1t=$Z();CLi.exports=H1t.isStandardBrowserEnv()?function(){return{write:function(r,n,a,o,l,A){var f=[];f.push(r+"="+encodeURIComponent(n)),H1t.isNumber(a)&&f.push("expires="+new Date(a).toGMTString()),H1t.isString(o)&&f.push("path="+o),H1t.isString(l)&&f.push("domain="+l),A===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var bLi=H((T9u,yLi)=>{"use strict";yLi.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var SLi=H((R9u,ELi)=>{"use strict";ELi.exports=function(t,r){return r?t.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):t}});var gFr=H((N9u,vLi)=>{"use strict";var OCc=bLi(),MCc=SLi();vLi.exports=function(t,r){return t&&!OCc(r)?MCc(t,r):r}});var wLi=H((D9u,BLi)=>{"use strict";var AFr=$Z(),HCc=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];BLi.exports=function(t){var r={},n,a,o;return t&&AFr.forEach(t.split(` -`),function(A){if(o=A.indexOf(":"),n=AFr.trim(A.substr(0,o)).toLowerCase(),a=AFr.trim(A.substr(o+1)),n){if(r[n]&&HCc.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([a]):r[n]=r[n]?r[n]+", "+a:a}}),r}});var NLi=H((k9u,RLi)=>{"use strict";var TLi=$Z();RLi.exports=TLi.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function a(o){var l=o;return t&&(r.setAttribute("href",l),l=r.href),r.setAttribute("href",l),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=a(window.location.href),function(l){var A=TLi.isString(l)?a(l):l;return A.protocol===n.protocol&&A.host===n.host}}():function(){return function(){return!0}}()});var kLi=H((x9u,DLi)=>{"use strict";var Y1t=$Z(),YCc=uFr(),QCc=_Li(),XCc=P1t(),JCc=gFr(),UCc=wLi(),KCc=NLi(),dFr=M1t();DLi.exports=function(t){return new Promise(function(n,a){var o=t.data,l=t.headers,A=t.responseType;Y1t.isFormData(o)&&delete l["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var I=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";l.Authorization="Basic "+btoa(I+":"+C)}var b=JCc(t.baseURL,t.url);f.open(t.method.toUpperCase(),XCc(b,t.params,t.paramsSerializer),!0),f.timeout=t.timeout;function E(){if(f){var B="getAllResponseHeaders"in f?UCc(f.getAllResponseHeaders()):null,F=!A||A==="text"||A==="json"?f.responseText:f.response,Q={data:F,status:f.status,statusText:f.statusText,headers:B,config:t,request:f};YCc(n,a,Q),f=null}}if("onloadend"in f?f.onloadend=E:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(E)},f.onabort=function(){f&&(a(dFr("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){a(dFr("Network Error",t,null,f)),f=null},f.ontimeout=function(){var F="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(F=t.timeoutErrorMessage),a(dFr(F,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},Y1t.isStandardBrowserEnv()){var N=(t.withCredentials||KCc(b))&&t.xsrfCookieName?QCc.read(t.xsrfCookieName):void 0;N&&(l[t.xsrfHeaderName]=N)}"setRequestHeader"in f&&Y1t.forEach(l,function(F,Q){typeof o>"u"&&Q.toLowerCase()==="content-type"?delete l[Q]:f.setRequestHeader(Q,F)}),Y1t.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),A&&A!=="json"&&(f.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&f.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(F){f&&(f.abort(),a(F),f=null)}),o||(o=null),f.send(o)})}});var GLi=H((G9u,xLi)=>{var eKe;xLi.exports=function(){if(!eKe){try{eKe=wt("debug")("follow-redirects")}catch{}typeof eKe!="function"&&(eKe=function(){})}eKe.apply(null,arguments)}});var BFr=H((F9u,vFr)=>{var rKe=wt("url"),tKe=rKe.URL,jCc=wt("http"),zCc=wt("https"),mFr=wt("stream").Writable,CFr=wt("assert"),FLi=GLi();(function(){var t=typeof process<"u",r=typeof window<"u"&&typeof document<"u",n=vCe(Error.captureStackTrace);!t&&(r||!n)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var _Fr=!1;try{CFr(new tKe(""))}catch(e){_Fr=e.code==="ERR_INVALID_URL"}var qCc=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],yFr=["abort","aborted","connect","error","socket","timeout"],bFr=Object.create(null);yFr.forEach(function(e){bFr[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var fFr=nKe("ERR_INVALID_URL","Invalid URL",TypeError),IFr=nKe("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),$Cc=nKe("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",IFr),e_c=nKe("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),t_c=nKe("ERR_STREAM_WRITE_AFTER_END","write after end"),r_c=mFr.prototype.destroy||LLi;function BV(e,t){mFr.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(n){try{r._processResponse(n)}catch(a){r.emit("error",a instanceof IFr?a:new IFr({cause:a}))}},this._performRequest()}BV.prototype=Object.create(mFr.prototype);BV.prototype.abort=function(){SFr(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};BV.prototype.destroy=function(e){return SFr(this._currentRequest,e),r_c.call(this,e),this};BV.prototype.write=function(e,t,r){if(this._ending)throw new t_c;if(!SCe(e)&&!s_c(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(vCe(t)&&(r=t,t=null),e.length===0){r&&r();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new e_c),this.abort())};BV.prototype.end=function(e,t,r){if(vCe(e)?(r=e,e=t=null):vCe(t)&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}};BV.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};BV.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};BV.prototype.setTimeout=function(e,t){var r=this;function n(l){l.setTimeout(e),l.removeListener("timeout",l.destroy),l.addListener("timeout",l.destroy)}function a(l){r._timeout&&clearTimeout(r._timeout),r._timeout=setTimeout(function(){r.emit("timeout"),o()},e),n(l)}function o(){r._timeout&&(clearTimeout(r._timeout),r._timeout=null),r.removeListener("abort",o),r.removeListener("error",o),r.removeListener("response",o),r.removeListener("close",o),t&&r.removeListener("timeout",t),r.socket||r._currentRequest.removeListener("socket",a)}return t&&this.on("timeout",t),this.socket?a(this.socket):this._currentRequest.once("socket",a),this.on("socket",n),this.on("abort",o),this.on("error",o),this.on("response",o),this.on("close",o),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){BV.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(BV.prototype,e,{get:function(){return this._currentRequest[e]}})});BV.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};BV.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);n._redirectable=this;for(var a of yFr)n.on(a,bFr[a]);if(this._currentUrl=/^\//.test(this._options.path)?rKe.format(this._options):this._options.path,this._isRedirect){var o=0,l=this,A=this._requestBodyBuffers;(function f(I){if(n===l._currentRequest)if(I)l.emit("error",I);else if(o=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(SFr(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new $Cc;var n,a=this._options.beforeRedirect;a&&(n=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var o=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],pFr(/^content-/i,this._options.headers));var l=pFr(/^host$/i,this._options.headers),A=EFr(this._currentUrl),f=l||A.host,I=/^\w+:/.test(r)?this._currentUrl:rKe.format(Object.assign(A,{host:f})),C=n_c(r,I);if(FLi("redirecting to",C.href),this._isRedirect=!0,hFr(C,this._options),(C.protocol!==A.protocol&&C.protocol!=="https:"||C.host!==f&&!i_c(C.host,f))&&pFr(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),vCe(a)){var b={headers:e.headers,statusCode:t},E={url:I,method:o,headers:n};a(this._options,b,E),this._sanitizeOptions(this._options)}this._performRequest()};function ZLi(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(n){var a=n+":",o=r[a]=e[n],l=t[n]=Object.create(o);function A(I,C,b){return o_c(I)?I=hFr(I):SCe(I)?I=hFr(EFr(I)):(b=C,C=VLi(I),I={protocol:a}),vCe(C)&&(b=C,C=null),C=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},I,C),C.nativeProtocols=r,!SCe(C.host)&&!SCe(C.hostname)&&(C.hostname="::1"),CFr.equal(C.protocol,a,"protocol mismatch"),FLi("options",C),new BV(C,b)}function f(I,C,b){var E=l.request(I,C,b);return E.end(),E}Object.defineProperties(l,{request:{value:A,configurable:!0,enumerable:!0,writable:!0},get:{value:f,configurable:!0,enumerable:!0,writable:!0}})}),t}function LLi(){}function EFr(e){var t;if(_Fr)t=new tKe(e);else if(t=VLi(rKe.parse(e)),!SCe(t.protocol))throw new fFr({input:e});return t}function n_c(e,t){return _Fr?new tKe(e,t):EFr(rKe.resolve(t,e))}function VLi(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new fFr({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new fFr({input:e.href||e});return e}function hFr(e,t){var r=t||{};for(var n of qCc)r[n]=e[n];return r.hostname.startsWith("[")&&(r.hostname=r.hostname.slice(1,-1)),r.port!==""&&(r.port=Number(r.port)),r.path=r.search?r.pathname+r.search:r.pathname,r}function pFr(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r===null||typeof r>"u"?void 0:String(r).trim()}function nKe(e,t,r){function n(a){vCe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,a||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return n.prototype=new(r||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function SFr(e,t){for(var r of yFr)e.removeListener(r,bFr[r]);e.on("error",LLi),e.destroy(t)}function i_c(e,t){CFr(SCe(e)&&SCe(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function SCe(e){return typeof e=="string"||e instanceof String}function vCe(e){return typeof e=="function"}function s_c(e){return typeof e=="object"&&"length"in e}function o_c(e){return tKe&&e instanceof tKe}vFr.exports=ZLi({http:jCc,https:zCc});vFr.exports.wrap=ZLi});var wFr=H((Z9u,a_c)=>{a_c.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var YLi=H((L9u,HLi)=>{"use strict";var iKe=$Z(),PLi=uFr(),c_c=gFr(),l_c=P1t(),u_c=wt("http"),g_c=wt("https"),A_c=BFr().http,d_c=BFr().https,WLi=wt("url"),p_c=wt("zlib"),f_c=wFr(),Q1t=M1t(),TFr=O1t(),OLi=/https:?/;function MLi(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var n=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+n}e.beforeRedirect=function(o){o.headers.host=o.host,MLi(o,t,o.href)}}HLi.exports=function(t){return new Promise(function(n,a){var o=function(Yt){n(Yt)},l=function(Yt){a(Yt)},A=t.data,f=t.headers;if("User-Agent"in f||"user-agent"in f?!f["User-Agent"]&&!f["user-agent"]&&(delete f["User-Agent"],delete f["user-agent"]):f["User-Agent"]="axios/"+f_c.version,A&&!iKe.isStream(A)){if(!Buffer.isBuffer(A))if(iKe.isArrayBuffer(A))A=Buffer.from(new Uint8Array(A));else if(iKe.isString(A))A=Buffer.from(A,"utf-8");else return l(Q1t("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));f["Content-Length"]=A.length}var I=void 0;if(t.auth){var C=t.auth.username||"",b=t.auth.password||"";I=C+":"+b}var E=c_c(t.baseURL,t.url),N=WLi.parse(E),B=N.protocol||"http:";if(!I&&N.auth){var F=N.auth.split(":"),Q=F[0]||"",X=F[1]||"";I=Q+":"+X}I&&delete f.Authorization;var ae=OLi.test(B),ne=ae?t.httpsAgent:t.httpAgent,ce={path:l_c(N.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:f,agent:ne,agents:{http:t.httpAgent,https:t.httpsAgent},auth:I};t.socketPath?ce.socketPath=t.socketPath:(ce.hostname=N.hostname,ce.port=N.port);var fe=t.proxy;if(!fe&&fe!==!1){var ue=B.slice(0,-1)+"_proxy",de=process.env[ue]||process.env[ue.toUpperCase()];if(de){var be=WLi.parse(de),Se=process.env.no_proxy||process.env.NO_PROXY,De=!0;if(Se){var k=Se.split(",").map(function(Yt){return Yt.trim()});De=!k.some(function(Yt){return Yt?Yt==="*"||Yt[0]==="."&&N.hostname.substr(N.hostname.length-Yt.length)===Yt?!0:N.hostname===Yt:!1})}if(De&&(fe={host:be.hostname,port:be.port,protocol:be.protocol},be.auth)){var et=be.auth.split(":");fe.auth={username:et[0],password:et[1]}}}}fe&&(ce.headers.host=N.hostname+(N.port?":"+N.port:""),MLi(ce,fe,B+"//"+N.hostname+(N.port?":"+N.port:"")+ce.path));var ct,Me=ae&&(fe?OLi.test(fe.protocol):!0);t.transport?ct=t.transport:t.maxRedirects===0?ct=Me?g_c:u_c:(t.maxRedirects&&(ce.maxRedirects=t.maxRedirects),ct=Me?d_c:A_c),t.maxBodyLength>-1&&(ce.maxBodyLength=t.maxBodyLength);var je=ct.request(ce,function(Yt){if(!je.aborted){var Tr=Yt,Nr=Yt.req||je;if(Yt.statusCode!==204&&Nr.method!=="HEAD"&&t.decompress!==!1)switch(Yt.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Tr=Tr.pipe(p_c.createUnzip()),delete Yt.headers["content-encoding"];break}var er={status:Yt.statusCode,statusText:Yt.statusMessage,headers:Yt.headers,config:t,request:Nr};if(t.responseType==="stream")er.data=Tr,PLi(o,l,er);else{var vt=[],xt=0;Tr.on("data",function(qt){vt.push(qt),xt+=qt.length,t.maxContentLength>-1&&xt>t.maxContentLength&&(Tr.destroy(),l(Q1t("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,Nr)))}),Tr.on("error",function(qt){je.aborted||l(TFr(qt,t,null,Nr))}),Tr.on("end",function(){var qt=Buffer.concat(vt);t.responseType!=="arraybuffer"&&(qt=qt.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(qt=iKe.stripBOM(qt))),er.data=qt,PLi(o,l,er)})}}});if(je.on("error",function(Yt){je.aborted&&Yt.code!=="ERR_FR_TOO_MANY_REDIRECTS"||l(TFr(Yt,t,null,je))}),t.timeout){var St=parseInt(t.timeout,10);if(isNaN(St)){l(Q1t("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",je));return}je.setTimeout(St,function(){je.abort(),l(Q1t("timeout of "+St+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",je))})}t.cancelToken&&t.cancelToken.promise.then(function(Yt){je.aborted||(je.abort(),l(Yt))}),iKe.isStream(A)?A.on("error",function(Yt){l(TFr(Yt,t,null,je))}).pipe(je):je.end(A)})}});var J1t=H((V9u,JLi)=>{"use strict";var Uk=$Z(),QLi=fLi(),I_c=O1t(),h_c={"Content-Type":"application/x-www-form-urlencoded"};function XLi(e,t){!Uk.isUndefined(e)&&Uk.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function m_c(){var e;return typeof XMLHttpRequest<"u"?e=kLi():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=YLi()),e}function C_c(e,t,r){if(Uk.isString(e))try{return(t||JSON.parse)(e),Uk.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var X1t={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:m_c(),transformRequest:[function(t,r){return QLi(r,"Accept"),QLi(r,"Content-Type"),Uk.isFormData(t)||Uk.isArrayBuffer(t)||Uk.isBuffer(t)||Uk.isStream(t)||Uk.isFile(t)||Uk.isBlob(t)?t:Uk.isArrayBufferView(t)?t.buffer:Uk.isURLSearchParams(t)?(XLi(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Uk.isObject(t)||r&&r["Content-Type"]==="application/json"?(XLi(r,"application/json"),C_c(t)):t}],transformResponse:[function(t){var r=this.transitional,n=r&&r.silentJSONParsing,a=r&&r.forcedJSONParsing,o=!n&&this.responseType==="json";if(o||a&&Uk.isString(t)&&t.length)try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?I_c(l,this,"E_JSON_PARSE"):l}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};X1t.headers={common:{Accept:"application/json, text/plain, */*"}};Uk.forEach(["delete","get","head"],function(t){X1t.headers[t]={}});Uk.forEach(["post","put","patch"],function(t){X1t.headers[t]=Uk.merge(h_c)});JLi.exports=X1t});var KLi=H((P9u,ULi)=>{"use strict";var __c=$Z(),y_c=J1t();ULi.exports=function(t,r,n){var a=this||y_c;return __c.forEach(n,function(l){t=l.call(a,t,r)}),t}});var RFr=H((W9u,jLi)=>{"use strict";jLi.exports=function(t){return!!(t&&t.__CANCEL__)}});var $Li=H((O9u,qLi)=>{"use strict";var zLi=$Z(),NFr=KLi(),b_c=RFr(),E_c=J1t();function DFr(e){e.cancelToken&&e.cancelToken.throwIfRequested()}qLi.exports=function(t){DFr(t),t.headers=t.headers||{},t.data=NFr.call(t,t.data,t.headers,t.transformRequest),t.headers=zLi.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),zLi.forEach(["delete","get","head","post","put","patch","common"],function(a){delete t.headers[a]});var r=t.adapter||E_c.adapter;return r(t).then(function(a){return DFr(t),a.data=NFr.call(t,a.data,a.headers,t.transformResponse),a},function(a){return b_c(a)||(DFr(t),a&&a.response&&(a.response.data=NFr.call(t,a.response.data,a.response.headers,t.transformResponse))),Promise.reject(a)})}});var kFr=H((M9u,e9i)=>{"use strict";var LG=$Z();e9i.exports=function(t,r){r=r||{};var n={},a=["url","method","data"],o=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],A=["validateStatus"];function f(E,N){return LG.isPlainObject(E)&&LG.isPlainObject(N)?LG.merge(E,N):LG.isPlainObject(N)?LG.merge({},N):LG.isArray(N)?N.slice():N}function I(E){LG.isUndefined(r[E])?LG.isUndefined(t[E])||(n[E]=f(void 0,t[E])):n[E]=f(t[E],r[E])}LG.forEach(a,function(N){LG.isUndefined(r[N])||(n[N]=f(void 0,r[N]))}),LG.forEach(o,I),LG.forEach(l,function(N){LG.isUndefined(r[N])?LG.isUndefined(t[N])||(n[N]=f(void 0,t[N])):n[N]=f(void 0,r[N])}),LG.forEach(A,function(N){N in r?n[N]=f(t[N],r[N]):N in t&&(n[N]=f(void 0,t[N]))});var C=a.concat(o).concat(l).concat(A),b=Object.keys(t).concat(Object.keys(r)).filter(function(N){return C.indexOf(N)===-1});return LG.forEach(b,I),n}});var s9i=H((H9u,i9i)=>{"use strict";var r9i=wFr(),xFr={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){xFr[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var t9i={},S_c=r9i.version.split(".");function n9i(e,t){for(var r=t?t.split("."):S_c,n=e.split("."),a=0;a<3;a++){if(r[a]>n[a])return!0;if(r[a]0;){var o=n[a],l=t[o];if(l){var A=e[o],f=A===void 0||l(A,o,e);if(f!==!0)throw new TypeError("option "+o+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+o)}}i9i.exports={isOlderVersion:n9i,assertOptions:v_c,validators:xFr}});var g9i=H((Y9u,u9i)=>{"use strict";var c9i=$Z(),B_c=P1t(),o9i=dLi(),a9i=$Li(),U1t=kFr(),l9i=s9i(),fDe=l9i.validators;function sKe(e){this.defaults=e,this.interceptors={request:new o9i,response:new o9i}}sKe.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=U1t(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;r!==void 0&&l9i.assertOptions(r,{silentJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),forcedJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),clarifyTimeoutError:fDe.transitional(fDe.boolean,"1.0.0")},!1);var n=[],a=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(t)===!1||(a=a&&E.synchronous,n.unshift(E.fulfilled,E.rejected))});var o=[];this.interceptors.response.forEach(function(E){o.push(E.fulfilled,E.rejected)});var l;if(!a){var A=[a9i,void 0];for(Array.prototype.unshift.apply(A,n),A=A.concat(o),l=Promise.resolve(t);A.length;)l=l.then(A.shift(),A.shift());return l}for(var f=t;n.length;){var I=n.shift(),C=n.shift();try{f=I(f)}catch(b){C(b);break}}try{l=a9i(f)}catch(b){return Promise.reject(b)}for(;o.length;)l=l.then(o.shift(),o.shift());return l};sKe.prototype.getUri=function(t){return t=U1t(this.defaults,t),B_c(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};c9i.forEach(["delete","get","head","options"],function(t){sKe.prototype[t]=function(r,n){return this.request(U1t(n||{},{method:t,url:r,data:(n||{}).data}))}});c9i.forEach(["post","put","patch"],function(t){sKe.prototype[t]=function(r,n,a){return this.request(U1t(a||{},{method:t,url:r,data:n}))}});u9i.exports=sKe});var FFr=H((Q9u,A9i)=>{"use strict";function GFr(e){this.message=e}GFr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};GFr.prototype.__CANCEL__=!0;A9i.exports=GFr});var p9i=H((X9u,d9i)=>{"use strict";var w_c=FFr();function K1t(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(a){t=a});var r=this;e(function(a){r.reason||(r.reason=new w_c(a),t(r.reason))})}K1t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};K1t.source=function(){var t,r=new K1t(function(a){t=a});return{token:r,cancel:t}};d9i.exports=K1t});var I9i=H((J9u,f9i)=>{"use strict";f9i.exports=function(t){return function(n){return t.apply(null,n)}}});var m9i=H((U9u,h9i)=>{"use strict";h9i.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var y9i=H((K9u,ZFr)=>{"use strict";var C9i=$Z(),T_c=sFr(),j1t=g9i(),R_c=kFr(),N_c=J1t();function _9i(e){var t=new j1t(e),r=T_c(j1t.prototype.request,t);return C9i.extend(r,j1t.prototype,t),C9i.extend(r,t),r}var I4=_9i(N_c);I4.Axios=j1t;I4.create=function(t){return _9i(R_c(I4.defaults,t))};I4.Cancel=FFr();I4.CancelToken=p9i();I4.isCancel=RFr();I4.all=function(t){return Promise.all(t)};I4.spread=I9i();I4.isAxiosError=m9i();ZFr.exports=I4;ZFr.exports.default=I4});var E9i=H((j9u,b9i)=>{b9i.exports=y9i()});var v9i=H((z9u,S9i)=>{var IDe=1e3,hDe=IDe*60,mDe=hDe*60,BCe=mDe*24,D_c=BCe*7,k_c=BCe*365.25;S9i.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return x_c(e);if(r==="number"&&isFinite(e))return t.long?F_c(e):G_c(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function x_c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*k_c;case"weeks":case"week":case"w":return r*D_c;case"days":case"day":case"d":return r*BCe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mDe;case"minutes":case"minute":case"mins":case"min":case"m":return r*hDe;case"seconds":case"second":case"secs":case"sec":case"s":return r*IDe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function G_c(e){var t=Math.abs(e);return t>=BCe?Math.round(e/BCe)+"d":t>=mDe?Math.round(e/mDe)+"h":t>=hDe?Math.round(e/hDe)+"m":t>=IDe?Math.round(e/IDe)+"s":e+"ms"}function F_c(e){var t=Math.abs(e);return t>=BCe?z1t(e,t,BCe,"day"):t>=mDe?z1t(e,t,mDe,"hour"):t>=hDe?z1t(e,t,hDe,"minute"):t>=IDe?z1t(e,t,IDe,"second"):e+" ms"}function z1t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var LFr=H((q9u,B9i)=>{function Z_c(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=v9i(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{yO.formatArgs=V_c;yO.save=P_c;yO.load=W_c;yO.useColors=L_c;yO.storage=O_c();yO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function L_c(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function V_c(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+q1t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}yO.log=console.debug||console.log||(()=>{});function P_c(e){try{e?yO.storage.setItem("debug",e):yO.storage.removeItem("debug")}catch{}}function W_c(){let e;try{e=yO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function O_c(){try{return localStorage}catch{}}q1t.exports=LFr()(yO);var{formatters:M_c}=q1t.exports;M_c.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var R9i=H((Kk,e2t)=>{var H_c=wt("tty"),$1t=wt("util");Kk.init=j_c;Kk.log=J_c;Kk.formatArgs=Q_c;Kk.save=U_c;Kk.load=K_c;Kk.useColors=Y_c;Kk.destroy=$1t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Kk.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(Kk.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Kk.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function Y_c(){return"colors"in Kk.inspectOpts?!!Kk.inspectOpts.colors:H_c.isatty(process.stderr.fd)}function Q_c(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===CIc&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===hIc&&this.focusNext(),t===mIc&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return hCe.default.createElement(gIc.default.Provider,{value:{exit:this.handleExit}},hCe.default.createElement(AIc.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},hCe.default.createElement(dIc.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},hCe.default.createElement(pIc.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},hCe.default.createElement(fIc.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?hCe.default.createElement(IIc.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){qGi.default.hide(this.props.stdout)}componentWillUnmount(){qGi.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};g4.default=_1t;_1t.displayName="InternalApp"});var rFi=H(A4=>{"use strict";var _Ic=A4&&A4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yIc=A4&&A4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),bIc=A4&&A4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&_Ic(t,e,r);return yIc(t,e),t},d4=A4&&A4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A4,"__esModule",{value:!0});var EIc=d4(sC()),eFi=AIr(),SIc=d4(fGi()),vIc=d4(BMe()),BIc=d4(hIr()),wIc=d4(mIr()),IGr=d4(RGi()),TIc=d4(WGi()),RIc=d4(mpt()),NIc=d4(rhr()),DIc=bIc(jxr()),kIc=d4(rGr()),xIc=d4($Gi()),aDe=process.env.CI==="false"?!1:BIc.default,tFi=()=>{},hGr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=TIc.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` +`;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(aDe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(vIc.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},wIc.default(this),this.options=t,this.rootNode=DIc.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:eFi.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=SIc.default.create(t.stdout),this.throttledLog=t.debug?this.log:eFi.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=IGr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=RIc.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),aDe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=EIc.default.createElement(xIc.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);IGr.default.updateContainer(r,this.container,null,tFi)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),aDe?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,IGr.default.updateContainer(null,this.container,null,tFi),kIc.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!aDe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=NIc.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};A4.default=hGr});var iFi=H(ZUe=>{"use strict";var nFi=ZUe&&ZUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZUe,"__esModule",{value:!0});var GIc=nFi(rFi()),y1t=nFi(rGr()),FIc=wt("stream"),ZIc=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},LIc(t)),n=VIc(r.stdout,()=>new GIc.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>y1t.default.delete(r.stdout),clear:n.clear}};ZUe.default=ZIc;var LIc=(e={})=>e instanceof FIc.Stream?{stdout:e,stdin:process.stdin}:e,VIc=(e,t)=>{let r;return y1t.default.has(e)?r=y1t.default.get(e):(r=t(),y1t.default.set(e,r)),r}});var oFi=H(Xee=>{"use strict";var PIc=Xee&&Xee.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WIc=Xee&&Xee.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIc=Xee&&Xee.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&PIc(t,e,r);return WIc(t,e),t};Object.defineProperty(Xee,"__esModule",{value:!0});var LUe=OIc(sC()),sFi=e=>{let{items:t,children:r,style:n}=e,[a,o]=LUe.useState(0),l=LUe.useMemo(()=>t.slice(a),[t,a]);LUe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=LUe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return LUe.default.createElement("ink-box",{internal_static:!0,style:f},A)};sFi.displayName="Static";Xee.default=sFi});var cFi=H(VUe=>{"use strict";var MIc=VUe&&VUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(VUe,"__esModule",{value:!0});var HIc=MIc(sC()),aFi=({children:e,transform:t})=>e==null?null:HIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);aFi.displayName="Transform";VUe.default=aFi});var uFi=H(PUe=>{"use strict";var YIc=PUe&&PUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PUe,"__esModule",{value:!0});var QIc=YIc(sC()),lFi=({count:e=1})=>QIc.default.createElement("ink-text",null,` +`.repeat(e));lFi.displayName="Newline";PUe.default=lFi});var dFi=H(WUe=>{"use strict";var gFi=WUe&&WUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WUe,"__esModule",{value:!0});var XIc=gFi(sC()),JIc=gFi(C1t()),AFi=()=>XIc.default.createElement(JIc.default,{flexGrow:1});AFi.displayName="Spacer";WUe.default=AFi});var b1t=H(OUe=>{"use strict";var UIc=OUe&&OUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OUe,"__esModule",{value:!0});var KIc=sC(),jIc=UIc(oGr()),zIc=()=>KIc.useContext(jIc.default);OUe.default=zIc});var fFi=H(MUe=>{"use strict";var qIc=MUe&&MUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MUe,"__esModule",{value:!0});var pFi=sC(),$Ic=qIc(b1t()),ehc=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=$Ic.default();pFi.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),pFi.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};MUe.default=ehc});var IFi=H(HUe=>{"use strict";var thc=HUe&&HUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HUe,"__esModule",{value:!0});var rhc=sC(),nhc=thc(iGr()),ihc=()=>rhc.useContext(nhc.default);HUe.default=ihc});var hFi=H(YUe=>{"use strict";var shc=YUe&&YUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YUe,"__esModule",{value:!0});var ohc=sC(),ahc=shc(cGr()),chc=()=>ohc.useContext(ahc.default);YUe.default=chc});var mFi=H(QUe=>{"use strict";var lhc=QUe&&QUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QUe,"__esModule",{value:!0});var uhc=sC(),ghc=lhc(uGr()),Ahc=()=>uhc.useContext(ghc.default);QUe.default=Ahc});var _Fi=H(JUe=>{"use strict";var CFi=JUe&&JUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JUe,"__esModule",{value:!0});var XUe=sC(),dhc=CFi(m1t()),phc=CFi(b1t()),fhc=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=phc.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=XUe.useContext(dhc.default),b=XUe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return XUe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),XUe.useEffect(()=>{e?f(b):I(b)},[e,b]),XUe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};JUe.default=fhc});var yFi=H(UUe=>{"use strict";var Ihc=UUe&&UUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UUe,"__esModule",{value:!0});var hhc=sC(),mhc=Ihc(m1t()),Chc=()=>{let e=hhc.useContext(mhc.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};UUe.default=Chc});var bFi=H(mGr=>{"use strict";Object.defineProperty(mGr,"__esModule",{value:!0});mGr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var lH=H(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});var _hc=iFi();Object.defineProperty(Jk,"render",{enumerable:!0,get:function(){return _hc.default}});var yhc=C1t();Object.defineProperty(Jk,"Box",{enumerable:!0,get:function(){return yhc.default}});var bhc=fGr();Object.defineProperty(Jk,"Text",{enumerable:!0,get:function(){return bhc.default}});var Ehc=oFi();Object.defineProperty(Jk,"Static",{enumerable:!0,get:function(){return Ehc.default}});var Shc=cFi();Object.defineProperty(Jk,"Transform",{enumerable:!0,get:function(){return Shc.default}});var vhc=uFi();Object.defineProperty(Jk,"Newline",{enumerable:!0,get:function(){return vhc.default}});var Bhc=dFi();Object.defineProperty(Jk,"Spacer",{enumerable:!0,get:function(){return Bhc.default}});var whc=fFi();Object.defineProperty(Jk,"useInput",{enumerable:!0,get:function(){return whc.default}});var Thc=IFi();Object.defineProperty(Jk,"useApp",{enumerable:!0,get:function(){return Thc.default}});var Rhc=b1t();Object.defineProperty(Jk,"useStdin",{enumerable:!0,get:function(){return Rhc.default}});var Nhc=hFi();Object.defineProperty(Jk,"useStdout",{enumerable:!0,get:function(){return Nhc.default}});var Dhc=mFi();Object.defineProperty(Jk,"useStderr",{enumerable:!0,get:function(){return Dhc.default}});var khc=_Fi();Object.defineProperty(Jk,"useFocus",{enumerable:!0,get:function(){return khc.default}});var xhc=yFi();Object.defineProperty(Jk,"useFocusManager",{enumerable:!0,get:function(){return xhc.default}});var Ghc=bFi();Object.defineProperty(Jk,"measureElement",{enumerable:!0,get:function(){return Ghc.default}})});var v1t=H(S1t=>{"use strict";Object.defineProperty(S1t,"__esModule",{value:!0});S1t.Gem=void 0;var Fhc=(Pa(),vi(Va)),Zhc=lH(),E1t=Fhc.__importStar(sC());S1t.Gem=(0,E1t.memo)(({active:e})=>{let t=(0,E1t.useMemo)(()=>e?"\u25C9":"\u25EF",[e]),r=(0,E1t.useMemo)(()=>e?"green":"yellow",[e]);return E1t.default.createElement(Zhc.Text,{color:r},t)})});var cDe=H(CGr=>{"use strict";Object.defineProperty(CGr,"__esModule",{value:!0});CGr.useKeypress=Vhc;var Lhc=lH(),EFi=sC();function Vhc({active:e},t,r){let{stdin:n}=(0,Lhc.useStdin)(),a=(0,EFi.useCallback)((o,l)=>t(o,l),r);(0,EFi.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var _Gr=H(lDe=>{"use strict";Object.defineProperty(lDe,"__esModule",{value:!0});lDe.useFocusRequest=lDe.FocusRequest=void 0;var Phc=cDe(),B1t;(function(e){e.BEFORE="before",e.AFTER="after"})(B1t||(lDe.FocusRequest=B1t={}));var Whc=function({active:e},t,r){(0,Phc.useKeypress)({active:e},(n,a)=>{a.name==="tab"&&(a.shift?t(B1t.BEFORE):t(B1t.AFTER))},r)};lDe.useFocusRequest=Whc});var T1t=H(w1t=>{"use strict";Object.defineProperty(w1t,"__esModule",{value:!0});w1t.useListInput=void 0;var Ohc=cDe(),Mhc=function(e,t,{active:r,minus:n,plus:a,set:o,loop:l=!0}){(0,Ohc.useKeypress)({active:r},(A,f)=>{let I=t.indexOf(e);switch(f.name){case n:{let C=I-1;if(l){o(t[(t.length+C)%t.length]);return}if(C<0)return;o(t[C])}break;case a:{let C=I+1;if(l){o(t[C%t.length]);return}if(C>=t.length)return;o(t[C])}break}},[t,e,a,o,l])};w1t.useListInput=Mhc});var N1t=H(R1t=>{"use strict";Object.defineProperty(R1t,"__esModule",{value:!0});R1t.ScrollableItems=void 0;var Hhc=(Pa(),vi(Va)),uDe=lH(),p4=Hhc.__importStar(sC()),Yhc=_Gr(),Qhc=T1t(),Xhc=({active:e=!0,children:t=[],radius:r=10,size:n=1,loop:a=!0,onFocusRequest:o,willReachEnd:l})=>{let A=Q=>{if(Q.key===null)throw new Error("Expected all children to have a key");return Q.key},f=p4.default.Children.map(t,Q=>A(Q)),I=f[0],[C,b]=(0,p4.useState)(I),E=f.indexOf(C);(0,p4.useEffect)(()=>{f.includes(C)||b(I)},[t]),(0,p4.useEffect)(()=>{l&&E>=f.length-2&&l()},[E]),(0,Yhc.useFocusRequest)({active:e&&!!o},Q=>{o?.(Q)},[o]),(0,Qhc.useListInput)(C,f,{active:e,minus:"up",plus:"down",set:b,loop:a});let N=E-r,B=E+r;B>f.length&&(N-=B-f.length,B=f.length),N<0&&(B+=-N,N=0),B>=f.length&&(B=f.length-1);let F=[];for(let Q=N;Q<=B;++Q){let X=f[Q],ae=e&&X===C;F.push(p4.default.createElement(uDe.Box,{key:X,height:n},p4.default.createElement(uDe.Box,{marginLeft:1,marginRight:1},p4.default.createElement(uDe.Text,null,ae?p4.default.createElement(uDe.Text,{color:"cyan",bold:!0},">"):" ")),p4.default.createElement(uDe.Box,null,p4.default.cloneElement(t[Q],{active:ae}))))}return p4.default.createElement(uDe.Box,{flexDirection:"column",width:"100%"},F)};R1t.ScrollableItems=Xhc});var yGr=H(CCe=>{"use strict";Object.defineProperty(CCe,"__esModule",{value:!0});CCe.Application=CCe.MinistoreContext=void 0;var Jhc=(Pa(),vi(Va)),Uhc=lH(),KUe=Jhc.__importStar(sC()),Khc=wt("readline");CCe.MinistoreContext=KUe.default.createContext(null);var jhc=({children:e})=>{let{stdin:t,setRawMode:r}=(0,Uhc.useStdin)();(0,KUe.useEffect)(()=>{r&&r(!0),t&&(0,Khc.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,KUe.useState)(new Map),o=(0,KUe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(f=>new Map([...f,[l,A]])),setAll:l=>a(A=>new Map([...A,...l]))}),[n,a]);return KUe.default.createElement(CCe.MinistoreContext.Provider,{value:o,children:e})};CCe.Application=jhc});var D1t=H(bGr=>{"use strict";Object.defineProperty(bGr,"__esModule",{value:!0});bGr.renderForm=emc;var zhc=(Pa(),vi(Va)),SFi=lH(),vFi=zhc.__importDefault(sC()),qhc=yGr(),$hc=cDe();async function emc(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,SFi.useApp)();(0,$hc.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,SFi.render)(vFi.default.createElement(qhc.Application,null,vFi.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var BFi=H(vGr=>{"use strict";Object.defineProperty(vGr,"__esModule",{value:!0});var vj=(Pa(),vi(Va)),EGr=el(),FR=Bn(),Sj=no(),tmc=vj.__importStar(A1t()),k1t=($c(),vi(rg)),SGr=vj.__importDefault(UC()),ZG=vj.__importStar(hUe()),jUe=class extends EGr.BaseCommand{constructor(){super(...arguments),this.interactive=k1t.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){tmc.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vj.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vj.__importStar(N1t())),{FocusRequest:n}=await Promise.resolve().then(()=>vj.__importStar(_Gr())),{useListInput:a}=await Promise.resolve().then(()=>vj.__importStar(T1t())),{renderForm:o}=await Promise.resolve().then(()=>vj.__importStar(D1t())),{Box:l,Text:A}=await Promise.resolve().then(()=>vj.__importStar(lH())),{default:f,useCallback:I,useState:C}=await Promise.resolve().then(()=>vj.__importStar(sC())),b=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:E,workspace:N}=await FR.Project.find(b,this.context.cwd);if(!N)throw new EGr.WorkspaceRequiredError(E.cwd,this.context.cwd);await E.restoreInstallState();let B=await ZG.openVersionFile(E);if(B===null||B.releaseRoots.size===0)return 0;if(B.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");let F=()=>f.createElement(l,{flexDirection:"row",paddingBottom:1},f.createElement(l,{flexDirection:"column",width:60},f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),f.createElement(l,{flexDirection:"column"},f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to save.")),f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),Q=({workspace:ue,active:de,decision:be,setDecision:Se})=>{let De=ue.manifest.raw.stableVersion??ue.manifest.version;if(De===null)throw new Error(`Assertion failed: The version should have been set (${FR.structUtils.prettyLocator(b,ue.anchoredLocator)})`);if(SGr.default.prerelease(De)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${De})`);let k=[ZG.Decision.UNDECIDED,ZG.Decision.DECLINE,ZG.Decision.PATCH,ZG.Decision.MINOR,ZG.Decision.MAJOR];a(be,k,{active:de,minus:"left",plus:"right",set:Se});let et=be===ZG.Decision.UNDECIDED?f.createElement(A,{color:"yellow"},De):be===ZG.Decision.DECLINE?f.createElement(A,{color:"green"},De):f.createElement(A,null,f.createElement(A,{color:"magenta"},De)," \u2192 ",f.createElement(A,{color:"green"},SGr.default.valid(be)?be:SGr.default.inc(De,be)));return f.createElement(l,{flexDirection:"column"},f.createElement(l,null,f.createElement(A,null,FR.structUtils.prettyLocator(b,ue.anchoredLocator)," - ",et)),f.createElement(l,null,k.map(ct=>{let Me=ct===be;return f.createElement(l,{key:ct,paddingLeft:2},f.createElement(A,null,f.createElement(t,{active:Me})," ",ct))})))},X=ue=>{let de=new Set(B.releaseRoots),be=new Map([...ue].filter(([Se])=>de.has(Se)));for(;;){let Se=ZG.getUndecidedDependentWorkspaces({project:B.project,releases:be}),De=!1;if(Se.length>0){for(let[k]of Se)if(!de.has(k)){de.add(k),De=!0;let et=ue.get(k);typeof et<"u"&&be.set(k,et)}}if(!De)break}return{relevantWorkspaces:de,relevantReleases:be}},ae=()=>{let[ue,de]=C(()=>new Map(B.releases)),be=I((Se,De)=>{let k=new Map(ue);De!==ZG.Decision.UNDECIDED?k.set(Se,De):k.delete(Se);let{relevantReleases:et}=X(k);de(et)},[ue,de]);return[ue,be]},ne=({workspaces:ue,releases:de})=>{let be=[];be.push(`${ue.size} total`);let Se=0,De=0;for(let k of ue){let et=de.get(k);typeof et>"u"?De+=1:et!==ZG.Decision.DECLINE&&(Se+=1)}return be.push(`${Se} release${Se===1?"":"s"}`),be.push(`${De} remaining`),f.createElement(A,{color:"yellow"},be.join(", "))},fe=await o(({useSubmit:ue})=>{let[de,be]=ae();ue(de);let{relevantWorkspaces:Se}=X(de),De=new Set([...Se].filter(Me=>!B.releaseRoots.has(Me))),[k,et]=C(0),ct=I(Me=>{switch(Me){case n.BEFORE:et(k-1);break;case n.AFTER:et(k+1);break}},[k,et]);return f.createElement(l,{flexDirection:"column"},f.createElement(F,null),f.createElement(l,null,f.createElement(A,{wrap:"wrap"},"The following files have been modified in your local checkout.")),f.createElement(l,{flexDirection:"column",marginTop:1,paddingLeft:2},[...B.changedFiles].map(Me=>f.createElement(l,{key:Me},f.createElement(A,null,f.createElement(A,{color:"grey"},Sj.npath.fromPortablePath(B.root)),Sj.npath.sep,Sj.npath.relative(Sj.npath.fromPortablePath(B.root),Sj.npath.fromPortablePath(Me)))))),B.releaseRoots.size>0&&f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),De.size>3?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:B.releaseRoots,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===0,radius:1,size:2,onFocusRequest:ct},[...B.releaseRoots].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))),De.size>0?f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),f.createElement(l,null,f.createElement(A,null,"(Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),De.size>5?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:De,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===1,radius:2,size:2,onFocusRequest:ct},[...De].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))):null)},{versionFile:B},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof fe>"u")return 1;B.releases.clear();for(let[ue,de]of fe)B.releases.set(ue,de);await B.saveAll()}async executeStandard(){let t=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await FR.Project.find(t,this.context.cwd);if(!n)throw new EGr.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await FR.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{let l=await ZG.openVersionFile(r);if(l===null||l.releaseRoots.size===0)return;if(l.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");if(o.reportInfo(FR.MessageName.UNNAMED,`Your PR was started right after ${FR.formatUtils.pretty(t,l.baseHash.slice(0,7),"yellow")} ${FR.formatUtils.pretty(t,l.baseTitle,"magenta")}`),l.changedFiles.size>0){o.reportInfo(FR.MessageName.UNNAMED,"You have changed the following files since then:"),o.reportSeparator();for(let b of l.changedFiles)o.reportInfo(null,`${FR.formatUtils.pretty(t,Sj.npath.fromPortablePath(l.root),"gray")}${Sj.npath.sep}${Sj.npath.relative(Sj.npath.fromPortablePath(l.root),Sj.npath.fromPortablePath(b))}`)}let A=!1,f=!1,I=ZG.getUndecidedWorkspaces(l);if(I.size>0){A||o.reportSeparator();for(let b of I)o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} has been modified but doesn't have a release strategy attached`);A=!0}let C=ZG.getUndecidedDependentWorkspaces(l);for(let[b,E]of C)f||o.reportSeparator(),o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} doesn't have a release strategy attached, but depends on ${FR.structUtils.prettyWorkspace(t,E)} which is planned for release.`),f=!0;(A||f)&&(o.reportSeparator(),o.reportInfo(FR.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),o.reportInfo(FR.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};jUe.paths=[["version","check"]];jUe.usage=k1t.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});vGr.default=jUe});var NFi=H(wGr=>{"use strict";Object.defineProperty(wGr,"__esModule",{value:!0});var RFi=(Pa(),vi(Va)),wFi=el(),TFi=Bn(),yCe=($c(),vi(rg)),BGr=RFi.__importDefault(UC()),_Ce=RFi.__importStar(hUe()),zUe=class extends wFi.BaseCommand{constructor(){super(...arguments),this.deferred=yCe.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"}),this.immediate=yCe.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"}),this.strategy=yCe.Option.String()}async execute(){let t=await TFi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TFi.Project.find(t,this.context.cwd);if(!n)throw new wFi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=t.get("preferDeferredVersions");this.deferred&&(a=!0),this.immediate&&(a=!1);let o=BGr.default.valid(this.strategy),l=this.strategy===_Ce.Decision.DECLINE,A;if(o)if(n.manifest.version!==null){let I=_Ce.suggestStrategy(n.manifest.version,this.strategy);I!==null?A=I:A=this.strategy}else A=this.strategy;else{let I=n.manifest.version;if(!l){if(I===null)throw new yCe.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof I!="string"||!BGr.default.valid(I))throw new yCe.UsageError(`Can't bump the version (${I}) if it's not valid semver`)}A=_Ce.validateReleaseDecision(this.strategy)}if(!a){let C=(await _Ce.resolveVersionFiles(r)).get(n);if(typeof C<"u"&&A!==_Ce.Decision.DECLINE){let b=_Ce.applyStrategy(n.manifest.version,A);if(BGr.default.lt(b,C))throw new yCe.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let f=await _Ce.openVersionFile(r,{allowEmpty:!0});return f.releases.set(n,A),await f.saveAll(),a?0:await this.cli.run(["version","apply"])}};zUe.paths=[["version"]];zUe.usage=yCe.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});wGr.default=zUe});var TGr=H(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.versionUtils=f4.VersionCommand=f4.VersionCheckCommand=f4.VersionApplyCommand=void 0;var x1t=(Pa(),vi(Va)),DFi=Bn(),kFi=x1t.__importDefault(Uxi());f4.VersionApplyCommand=kFi.default;var xFi=x1t.__importDefault(BFi());f4.VersionCheckCommand=xFi.default;var GFi=x1t.__importDefault(NFi());f4.VersionCommand=GFi.default;var rmc=x1t.__importStar(hUe());f4.versionUtils=rmc;var nmc={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:DFi.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:DFi.SettingsType.BOOLEAN,default:!1}},commands:[kFi.default,xFi.default,GFi.default]};f4.default=nmc});var XZi=H((p9u,QZi)=>{"use strict";var HZi=wt("path"),iCc=Jjt(),sCc=Kjt();function YZi(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=iCc.sync(e.command,{path:r[sCc({env:r})],pathExt:t?HZi.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=HZi.resolve(a?e.options.cwd:"",l)),l}function oCc(e){return YZi(e)||YZi(e,!0)}QZi.exports=oCc});var JZi=H((f9u,$Gr)=>{"use strict";var qGr=/([()\][%!^"`<>&|;, *?])/g;function aCc(e){return e=e.replace(qGr,"^$1"),e}function cCc(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(qGr,"^$1"),t&&(e=e.replace(qGr,"^$1")),e}$Gr.exports.command=aCc;$Gr.exports.argument=cCc});var KZi=H((I9u,UZi)=>{"use strict";var eFr=wt("fs"),lCc=qjt();function uCc(e){let r=Buffer.alloc(150),n;try{n=eFr.openSync(e,"r"),eFr.readSync(n,r,0,150,0),eFr.closeSync(n)}catch{}return lCc(r.toString())}UZi.exports=uCc});var $Zi=H((h9u,qZi)=>{"use strict";var gCc=wt("path"),jZi=XZi(),zZi=JZi(),ACc=KZi(),dCc=process.platform==="win32",pCc=/\.(?:com|exe)$/i,fCc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ICc(e){e.file=jZi(e);let t=e.file&&ACc(e.file);return t?(e.args.unshift(e.file),e.command=t,jZi(e)):e.file}function hCc(e){if(!dCc)return e;let t=ICc(e),r=!pCc.test(t);if(e.options.forceShell||r){let n=fCc.test(t);e.command=gCc.normalize(e.command),e.command=zZi.command(e.command),e.args=e.args.map(o=>zZi.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function mCc(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:hCc(n)}qZi.exports=mCc});var rLi=H((m9u,tLi)=>{"use strict";var tFr=process.platform==="win32";function rFr(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function CCc(e,t){if(!tFr)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=eLi(a,t,"spawn");if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function eLi(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawn"):null}function _Cc(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawnSync"):null}tLi.exports={hookChildProcess:CCc,verifyENOENT:eLi,verifyENOENTSync:_Cc,notFoundError:rFr}});var sLi=H((C9u,dDe)=>{"use strict";var nLi=wt("child_process"),nFr=$Zi(),iFr=rLi();function iLi(e,t,r){let n=nFr(e,t,r),a=nLi.spawn(n.command,n.args,n.options);return iFr.hookChildProcess(a,n),a}function yCc(e,t,r){let n=nFr(e,t,r),a=nLi.spawnSync(n.command,n.args,n.options);return a.error=a.error||iFr.verifyENOENTSync(a.status,n),a}dDe.exports=iLi;dDe.exports.spawn=iLi;dDe.exports.sync=yCc;dDe.exports._parse=nFr;dDe.exports._enoent=iFr});var sFr=H((_9u,oLi)=>{"use strict";oLi.exports=function(t,r){return function(){for(var a=new Array(arguments.length),o=0;o{"use strict";var bCc=sFr(),ECe=Object.prototype.toString;function cFr(e){return ECe.call(e)==="[object Array]"}function oFr(e){return typeof e>"u"}function ECc(e){return e!==null&&!oFr(e)&&e.constructor!==null&&!oFr(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function SCc(e){return ECe.call(e)==="[object ArrayBuffer]"}function vCc(e){return typeof FormData<"u"&&e instanceof FormData}function BCc(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function wCc(e){return typeof e=="string"}function TCc(e){return typeof e=="number"}function aLi(e){return e!==null&&typeof e=="object"}function V1t(e){if(ECe.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function RCc(e){return ECe.call(e)==="[object Date]"}function NCc(e){return ECe.call(e)==="[object File]"}function DCc(e){return ECe.call(e)==="[object Blob]"}function cLi(e){return ECe.call(e)==="[object Function]"}function kCc(e){return aLi(e)&&cLi(e.pipe)}function xCc(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function GCc(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function FCc(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function lFr(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),cFr(e))for(var r=0,n=e.length;r{"use strict";var pDe=$Z();function uLi(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}gLi.exports=function(t,r,n){if(!r)return t;var a;if(n)a=n(r);else if(pDe.isURLSearchParams(r))a=r.toString();else{var o=[];pDe.forEach(r,function(f,I){f===null||typeof f>"u"||(pDe.isArray(f)?I=I+"[]":f=[f],pDe.forEach(f,function(b){pDe.isDate(b)?b=b.toISOString():pDe.isObject(b)&&(b=JSON.stringify(b)),o.push(uLi(I)+"="+uLi(b))}))}),a=o.join("&")}if(a){var l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+a}return t}});var dLi=H((E9u,ALi)=>{"use strict";var VCc=$Z();function W1t(){this.handlers=[]}W1t.prototype.use=function(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};W1t.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};W1t.prototype.forEach=function(t){VCc.forEach(this.handlers,function(n){n!==null&&t(n)})};ALi.exports=W1t});var fLi=H((S9u,pLi)=>{"use strict";var PCc=$Z();pLi.exports=function(t,r){PCc.forEach(t,function(a,o){o!==r&&o.toUpperCase()===r.toUpperCase()&&(t[r]=a,delete t[o])})}});var O1t=H((v9u,ILi)=>{"use strict";ILi.exports=function(t,r,n,a,o){return t.config=r,n&&(t.code=n),t.request=a,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var M1t=H((B9u,hLi)=>{"use strict";var WCc=O1t();hLi.exports=function(t,r,n,a,o){var l=new Error(t);return WCc(l,r,n,a,o)}});var uFr=H((w9u,mLi)=>{"use strict";var OCc=M1t();mLi.exports=function(t,r,n){var a=n.config.validateStatus;!n.status||!a||a(n.status)?t(n):r(OCc("Request failed with status code "+n.status,n.config,null,n.request,n))}});var _Li=H((T9u,CLi)=>{"use strict";var H1t=$Z();CLi.exports=H1t.isStandardBrowserEnv()?function(){return{write:function(r,n,a,o,l,A){var f=[];f.push(r+"="+encodeURIComponent(n)),H1t.isNumber(a)&&f.push("expires="+new Date(a).toGMTString()),H1t.isString(o)&&f.push("path="+o),H1t.isString(l)&&f.push("domain="+l),A===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var bLi=H((R9u,yLi)=>{"use strict";yLi.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var SLi=H((N9u,ELi)=>{"use strict";ELi.exports=function(t,r){return r?t.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):t}});var gFr=H((D9u,vLi)=>{"use strict";var MCc=bLi(),HCc=SLi();vLi.exports=function(t,r){return t&&!MCc(r)?HCc(t,r):r}});var wLi=H((k9u,BLi)=>{"use strict";var AFr=$Z(),YCc=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];BLi.exports=function(t){var r={},n,a,o;return t&&AFr.forEach(t.split(` +`),function(A){if(o=A.indexOf(":"),n=AFr.trim(A.substr(0,o)).toLowerCase(),a=AFr.trim(A.substr(o+1)),n){if(r[n]&&YCc.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([a]):r[n]=r[n]?r[n]+", "+a:a}}),r}});var NLi=H((x9u,RLi)=>{"use strict";var TLi=$Z();RLi.exports=TLi.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function a(o){var l=o;return t&&(r.setAttribute("href",l),l=r.href),r.setAttribute("href",l),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=a(window.location.href),function(l){var A=TLi.isString(l)?a(l):l;return A.protocol===n.protocol&&A.host===n.host}}():function(){return function(){return!0}}()});var kLi=H((G9u,DLi)=>{"use strict";var Y1t=$Z(),QCc=uFr(),XCc=_Li(),JCc=P1t(),UCc=gFr(),KCc=wLi(),jCc=NLi(),dFr=M1t();DLi.exports=function(t){return new Promise(function(n,a){var o=t.data,l=t.headers,A=t.responseType;Y1t.isFormData(o)&&delete l["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var I=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";l.Authorization="Basic "+btoa(I+":"+C)}var b=UCc(t.baseURL,t.url);f.open(t.method.toUpperCase(),JCc(b,t.params,t.paramsSerializer),!0),f.timeout=t.timeout;function E(){if(f){var B="getAllResponseHeaders"in f?KCc(f.getAllResponseHeaders()):null,F=!A||A==="text"||A==="json"?f.responseText:f.response,Q={data:F,status:f.status,statusText:f.statusText,headers:B,config:t,request:f};QCc(n,a,Q),f=null}}if("onloadend"in f?f.onloadend=E:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(E)},f.onabort=function(){f&&(a(dFr("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){a(dFr("Network Error",t,null,f)),f=null},f.ontimeout=function(){var F="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(F=t.timeoutErrorMessage),a(dFr(F,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},Y1t.isStandardBrowserEnv()){var N=(t.withCredentials||jCc(b))&&t.xsrfCookieName?XCc.read(t.xsrfCookieName):void 0;N&&(l[t.xsrfHeaderName]=N)}"setRequestHeader"in f&&Y1t.forEach(l,function(F,Q){typeof o>"u"&&Q.toLowerCase()==="content-type"?delete l[Q]:f.setRequestHeader(Q,F)}),Y1t.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),A&&A!=="json"&&(f.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&f.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(F){f&&(f.abort(),a(F),f=null)}),o||(o=null),f.send(o)})}});var GLi=H((F9u,xLi)=>{var eKe;xLi.exports=function(){if(!eKe){try{eKe=wt("debug")("follow-redirects")}catch{}typeof eKe!="function"&&(eKe=function(){})}eKe.apply(null,arguments)}});var BFr=H((Z9u,vFr)=>{var rKe=wt("url"),tKe=rKe.URL,zCc=wt("http"),qCc=wt("https"),mFr=wt("stream").Writable,CFr=wt("assert"),FLi=GLi();(function(){var t=typeof process<"u",r=typeof window<"u"&&typeof document<"u",n=vCe(Error.captureStackTrace);!t&&(r||!n)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var _Fr=!1;try{CFr(new tKe(""))}catch(e){_Fr=e.code==="ERR_INVALID_URL"}var $Cc=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],yFr=["abort","aborted","connect","error","socket","timeout"],bFr=Object.create(null);yFr.forEach(function(e){bFr[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var fFr=nKe("ERR_INVALID_URL","Invalid URL",TypeError),IFr=nKe("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),e_c=nKe("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",IFr),t_c=nKe("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),r_c=nKe("ERR_STREAM_WRITE_AFTER_END","write after end"),n_c=mFr.prototype.destroy||LLi;function BV(e,t){mFr.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(n){try{r._processResponse(n)}catch(a){r.emit("error",a instanceof IFr?a:new IFr({cause:a}))}},this._performRequest()}BV.prototype=Object.create(mFr.prototype);BV.prototype.abort=function(){SFr(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};BV.prototype.destroy=function(e){return SFr(this._currentRequest,e),n_c.call(this,e),this};BV.prototype.write=function(e,t,r){if(this._ending)throw new r_c;if(!SCe(e)&&!o_c(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(vCe(t)&&(r=t,t=null),e.length===0){r&&r();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new t_c),this.abort())};BV.prototype.end=function(e,t,r){if(vCe(e)?(r=e,e=t=null):vCe(t)&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}};BV.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};BV.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};BV.prototype.setTimeout=function(e,t){var r=this;function n(l){l.setTimeout(e),l.removeListener("timeout",l.destroy),l.addListener("timeout",l.destroy)}function a(l){r._timeout&&clearTimeout(r._timeout),r._timeout=setTimeout(function(){r.emit("timeout"),o()},e),n(l)}function o(){r._timeout&&(clearTimeout(r._timeout),r._timeout=null),r.removeListener("abort",o),r.removeListener("error",o),r.removeListener("response",o),r.removeListener("close",o),t&&r.removeListener("timeout",t),r.socket||r._currentRequest.removeListener("socket",a)}return t&&this.on("timeout",t),this.socket?a(this.socket):this._currentRequest.once("socket",a),this.on("socket",n),this.on("abort",o),this.on("error",o),this.on("response",o),this.on("close",o),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){BV.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(BV.prototype,e,{get:function(){return this._currentRequest[e]}})});BV.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};BV.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);n._redirectable=this;for(var a of yFr)n.on(a,bFr[a]);if(this._currentUrl=/^\//.test(this._options.path)?rKe.format(this._options):this._options.path,this._isRedirect){var o=0,l=this,A=this._requestBodyBuffers;(function f(I){if(n===l._currentRequest)if(I)l.emit("error",I);else if(o=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(SFr(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new e_c;var n,a=this._options.beforeRedirect;a&&(n=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var o=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],pFr(/^content-/i,this._options.headers));var l=pFr(/^host$/i,this._options.headers),A=EFr(this._currentUrl),f=l||A.host,I=/^\w+:/.test(r)?this._currentUrl:rKe.format(Object.assign(A,{host:f})),C=i_c(r,I);if(FLi("redirecting to",C.href),this._isRedirect=!0,hFr(C,this._options),(C.protocol!==A.protocol&&C.protocol!=="https:"||C.host!==f&&!s_c(C.host,f))&&pFr(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),vCe(a)){var b={headers:e.headers,statusCode:t},E={url:I,method:o,headers:n};a(this._options,b,E),this._sanitizeOptions(this._options)}this._performRequest()};function ZLi(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(n){var a=n+":",o=r[a]=e[n],l=t[n]=Object.create(o);function A(I,C,b){return a_c(I)?I=hFr(I):SCe(I)?I=hFr(EFr(I)):(b=C,C=VLi(I),I={protocol:a}),vCe(C)&&(b=C,C=null),C=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},I,C),C.nativeProtocols=r,!SCe(C.host)&&!SCe(C.hostname)&&(C.hostname="::1"),CFr.equal(C.protocol,a,"protocol mismatch"),FLi("options",C),new BV(C,b)}function f(I,C,b){var E=l.request(I,C,b);return E.end(),E}Object.defineProperties(l,{request:{value:A,configurable:!0,enumerable:!0,writable:!0},get:{value:f,configurable:!0,enumerable:!0,writable:!0}})}),t}function LLi(){}function EFr(e){var t;if(_Fr)t=new tKe(e);else if(t=VLi(rKe.parse(e)),!SCe(t.protocol))throw new fFr({input:e});return t}function i_c(e,t){return _Fr?new tKe(e,t):EFr(rKe.resolve(t,e))}function VLi(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new fFr({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new fFr({input:e.href||e});return e}function hFr(e,t){var r=t||{};for(var n of $Cc)r[n]=e[n];return r.hostname.startsWith("[")&&(r.hostname=r.hostname.slice(1,-1)),r.port!==""&&(r.port=Number(r.port)),r.path=r.search?r.pathname+r.search:r.pathname,r}function pFr(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r===null||typeof r>"u"?void 0:String(r).trim()}function nKe(e,t,r){function n(a){vCe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,a||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return n.prototype=new(r||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function SFr(e,t){for(var r of yFr)e.removeListener(r,bFr[r]);e.on("error",LLi),e.destroy(t)}function s_c(e,t){CFr(SCe(e)&&SCe(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function SCe(e){return typeof e=="string"||e instanceof String}function vCe(e){return typeof e=="function"}function o_c(e){return typeof e=="object"&&"length"in e}function a_c(e){return tKe&&e instanceof tKe}vFr.exports=ZLi({http:zCc,https:qCc});vFr.exports.wrap=ZLi});var wFr=H((L9u,c_c)=>{c_c.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var YLi=H((V9u,HLi)=>{"use strict";var iKe=$Z(),PLi=uFr(),l_c=gFr(),u_c=P1t(),g_c=wt("http"),A_c=wt("https"),d_c=BFr().http,p_c=BFr().https,WLi=wt("url"),f_c=wt("zlib"),I_c=wFr(),Q1t=M1t(),TFr=O1t(),OLi=/https:?/;function MLi(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var n=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+n}e.beforeRedirect=function(o){o.headers.host=o.host,MLi(o,t,o.href)}}HLi.exports=function(t){return new Promise(function(n,a){var o=function(Yt){n(Yt)},l=function(Yt){a(Yt)},A=t.data,f=t.headers;if("User-Agent"in f||"user-agent"in f?!f["User-Agent"]&&!f["user-agent"]&&(delete f["User-Agent"],delete f["user-agent"]):f["User-Agent"]="axios/"+I_c.version,A&&!iKe.isStream(A)){if(!Buffer.isBuffer(A))if(iKe.isArrayBuffer(A))A=Buffer.from(new Uint8Array(A));else if(iKe.isString(A))A=Buffer.from(A,"utf-8");else return l(Q1t("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));f["Content-Length"]=A.length}var I=void 0;if(t.auth){var C=t.auth.username||"",b=t.auth.password||"";I=C+":"+b}var E=l_c(t.baseURL,t.url),N=WLi.parse(E),B=N.protocol||"http:";if(!I&&N.auth){var F=N.auth.split(":"),Q=F[0]||"",X=F[1]||"";I=Q+":"+X}I&&delete f.Authorization;var ae=OLi.test(B),ne=ae?t.httpsAgent:t.httpAgent,ce={path:u_c(N.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:f,agent:ne,agents:{http:t.httpAgent,https:t.httpsAgent},auth:I};t.socketPath?ce.socketPath=t.socketPath:(ce.hostname=N.hostname,ce.port=N.port);var fe=t.proxy;if(!fe&&fe!==!1){var ue=B.slice(0,-1)+"_proxy",de=process.env[ue]||process.env[ue.toUpperCase()];if(de){var be=WLi.parse(de),Se=process.env.no_proxy||process.env.NO_PROXY,De=!0;if(Se){var k=Se.split(",").map(function(Yt){return Yt.trim()});De=!k.some(function(Yt){return Yt?Yt==="*"||Yt[0]==="."&&N.hostname.substr(N.hostname.length-Yt.length)===Yt?!0:N.hostname===Yt:!1})}if(De&&(fe={host:be.hostname,port:be.port,protocol:be.protocol},be.auth)){var et=be.auth.split(":");fe.auth={username:et[0],password:et[1]}}}}fe&&(ce.headers.host=N.hostname+(N.port?":"+N.port:""),MLi(ce,fe,B+"//"+N.hostname+(N.port?":"+N.port:"")+ce.path));var ct,Me=ae&&(fe?OLi.test(fe.protocol):!0);t.transport?ct=t.transport:t.maxRedirects===0?ct=Me?A_c:g_c:(t.maxRedirects&&(ce.maxRedirects=t.maxRedirects),ct=Me?p_c:d_c),t.maxBodyLength>-1&&(ce.maxBodyLength=t.maxBodyLength);var je=ct.request(ce,function(Yt){if(!je.aborted){var Tr=Yt,Nr=Yt.req||je;if(Yt.statusCode!==204&&Nr.method!=="HEAD"&&t.decompress!==!1)switch(Yt.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Tr=Tr.pipe(f_c.createUnzip()),delete Yt.headers["content-encoding"];break}var er={status:Yt.statusCode,statusText:Yt.statusMessage,headers:Yt.headers,config:t,request:Nr};if(t.responseType==="stream")er.data=Tr,PLi(o,l,er);else{var vt=[],xt=0;Tr.on("data",function(qt){vt.push(qt),xt+=qt.length,t.maxContentLength>-1&&xt>t.maxContentLength&&(Tr.destroy(),l(Q1t("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,Nr)))}),Tr.on("error",function(qt){je.aborted||l(TFr(qt,t,null,Nr))}),Tr.on("end",function(){var qt=Buffer.concat(vt);t.responseType!=="arraybuffer"&&(qt=qt.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(qt=iKe.stripBOM(qt))),er.data=qt,PLi(o,l,er)})}}});if(je.on("error",function(Yt){je.aborted&&Yt.code!=="ERR_FR_TOO_MANY_REDIRECTS"||l(TFr(Yt,t,null,je))}),t.timeout){var St=parseInt(t.timeout,10);if(isNaN(St)){l(Q1t("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",je));return}je.setTimeout(St,function(){je.abort(),l(Q1t("timeout of "+St+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",je))})}t.cancelToken&&t.cancelToken.promise.then(function(Yt){je.aborted||(je.abort(),l(Yt))}),iKe.isStream(A)?A.on("error",function(Yt){l(TFr(Yt,t,null,je))}).pipe(je):je.end(A)})}});var J1t=H((P9u,JLi)=>{"use strict";var Uk=$Z(),QLi=fLi(),h_c=O1t(),m_c={"Content-Type":"application/x-www-form-urlencoded"};function XLi(e,t){!Uk.isUndefined(e)&&Uk.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function C_c(){var e;return typeof XMLHttpRequest<"u"?e=kLi():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=YLi()),e}function __c(e,t,r){if(Uk.isString(e))try{return(t||JSON.parse)(e),Uk.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var X1t={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:C_c(),transformRequest:[function(t,r){return QLi(r,"Accept"),QLi(r,"Content-Type"),Uk.isFormData(t)||Uk.isArrayBuffer(t)||Uk.isBuffer(t)||Uk.isStream(t)||Uk.isFile(t)||Uk.isBlob(t)?t:Uk.isArrayBufferView(t)?t.buffer:Uk.isURLSearchParams(t)?(XLi(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Uk.isObject(t)||r&&r["Content-Type"]==="application/json"?(XLi(r,"application/json"),__c(t)):t}],transformResponse:[function(t){var r=this.transitional,n=r&&r.silentJSONParsing,a=r&&r.forcedJSONParsing,o=!n&&this.responseType==="json";if(o||a&&Uk.isString(t)&&t.length)try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?h_c(l,this,"E_JSON_PARSE"):l}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};X1t.headers={common:{Accept:"application/json, text/plain, */*"}};Uk.forEach(["delete","get","head"],function(t){X1t.headers[t]={}});Uk.forEach(["post","put","patch"],function(t){X1t.headers[t]=Uk.merge(m_c)});JLi.exports=X1t});var KLi=H((W9u,ULi)=>{"use strict";var y_c=$Z(),b_c=J1t();ULi.exports=function(t,r,n){var a=this||b_c;return y_c.forEach(n,function(l){t=l.call(a,t,r)}),t}});var RFr=H((O9u,jLi)=>{"use strict";jLi.exports=function(t){return!!(t&&t.__CANCEL__)}});var $Li=H((M9u,qLi)=>{"use strict";var zLi=$Z(),NFr=KLi(),E_c=RFr(),S_c=J1t();function DFr(e){e.cancelToken&&e.cancelToken.throwIfRequested()}qLi.exports=function(t){DFr(t),t.headers=t.headers||{},t.data=NFr.call(t,t.data,t.headers,t.transformRequest),t.headers=zLi.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),zLi.forEach(["delete","get","head","post","put","patch","common"],function(a){delete t.headers[a]});var r=t.adapter||S_c.adapter;return r(t).then(function(a){return DFr(t),a.data=NFr.call(t,a.data,a.headers,t.transformResponse),a},function(a){return E_c(a)||(DFr(t),a&&a.response&&(a.response.data=NFr.call(t,a.response.data,a.response.headers,t.transformResponse))),Promise.reject(a)})}});var kFr=H((H9u,e9i)=>{"use strict";var LG=$Z();e9i.exports=function(t,r){r=r||{};var n={},a=["url","method","data"],o=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],A=["validateStatus"];function f(E,N){return LG.isPlainObject(E)&&LG.isPlainObject(N)?LG.merge(E,N):LG.isPlainObject(N)?LG.merge({},N):LG.isArray(N)?N.slice():N}function I(E){LG.isUndefined(r[E])?LG.isUndefined(t[E])||(n[E]=f(void 0,t[E])):n[E]=f(t[E],r[E])}LG.forEach(a,function(N){LG.isUndefined(r[N])||(n[N]=f(void 0,r[N]))}),LG.forEach(o,I),LG.forEach(l,function(N){LG.isUndefined(r[N])?LG.isUndefined(t[N])||(n[N]=f(void 0,t[N])):n[N]=f(void 0,r[N])}),LG.forEach(A,function(N){N in r?n[N]=f(t[N],r[N]):N in t&&(n[N]=f(void 0,t[N]))});var C=a.concat(o).concat(l).concat(A),b=Object.keys(t).concat(Object.keys(r)).filter(function(N){return C.indexOf(N)===-1});return LG.forEach(b,I),n}});var s9i=H((Y9u,i9i)=>{"use strict";var r9i=wFr(),xFr={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){xFr[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var t9i={},v_c=r9i.version.split(".");function n9i(e,t){for(var r=t?t.split("."):v_c,n=e.split("."),a=0;a<3;a++){if(r[a]>n[a])return!0;if(r[a]0;){var o=n[a],l=t[o];if(l){var A=e[o],f=A===void 0||l(A,o,e);if(f!==!0)throw new TypeError("option "+o+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+o)}}i9i.exports={isOlderVersion:n9i,assertOptions:B_c,validators:xFr}});var g9i=H((Q9u,u9i)=>{"use strict";var c9i=$Z(),w_c=P1t(),o9i=dLi(),a9i=$Li(),U1t=kFr(),l9i=s9i(),fDe=l9i.validators;function sKe(e){this.defaults=e,this.interceptors={request:new o9i,response:new o9i}}sKe.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=U1t(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;r!==void 0&&l9i.assertOptions(r,{silentJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),forcedJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),clarifyTimeoutError:fDe.transitional(fDe.boolean,"1.0.0")},!1);var n=[],a=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(t)===!1||(a=a&&E.synchronous,n.unshift(E.fulfilled,E.rejected))});var o=[];this.interceptors.response.forEach(function(E){o.push(E.fulfilled,E.rejected)});var l;if(!a){var A=[a9i,void 0];for(Array.prototype.unshift.apply(A,n),A=A.concat(o),l=Promise.resolve(t);A.length;)l=l.then(A.shift(),A.shift());return l}for(var f=t;n.length;){var I=n.shift(),C=n.shift();try{f=I(f)}catch(b){C(b);break}}try{l=a9i(f)}catch(b){return Promise.reject(b)}for(;o.length;)l=l.then(o.shift(),o.shift());return l};sKe.prototype.getUri=function(t){return t=U1t(this.defaults,t),w_c(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};c9i.forEach(["delete","get","head","options"],function(t){sKe.prototype[t]=function(r,n){return this.request(U1t(n||{},{method:t,url:r,data:(n||{}).data}))}});c9i.forEach(["post","put","patch"],function(t){sKe.prototype[t]=function(r,n,a){return this.request(U1t(a||{},{method:t,url:r,data:n}))}});u9i.exports=sKe});var FFr=H((X9u,A9i)=>{"use strict";function GFr(e){this.message=e}GFr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};GFr.prototype.__CANCEL__=!0;A9i.exports=GFr});var p9i=H((J9u,d9i)=>{"use strict";var T_c=FFr();function K1t(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(a){t=a});var r=this;e(function(a){r.reason||(r.reason=new T_c(a),t(r.reason))})}K1t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};K1t.source=function(){var t,r=new K1t(function(a){t=a});return{token:r,cancel:t}};d9i.exports=K1t});var I9i=H((U9u,f9i)=>{"use strict";f9i.exports=function(t){return function(n){return t.apply(null,n)}}});var m9i=H((K9u,h9i)=>{"use strict";h9i.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var y9i=H((j9u,ZFr)=>{"use strict";var C9i=$Z(),R_c=sFr(),j1t=g9i(),N_c=kFr(),D_c=J1t();function _9i(e){var t=new j1t(e),r=R_c(j1t.prototype.request,t);return C9i.extend(r,j1t.prototype,t),C9i.extend(r,t),r}var I4=_9i(D_c);I4.Axios=j1t;I4.create=function(t){return _9i(N_c(I4.defaults,t))};I4.Cancel=FFr();I4.CancelToken=p9i();I4.isCancel=RFr();I4.all=function(t){return Promise.all(t)};I4.spread=I9i();I4.isAxiosError=m9i();ZFr.exports=I4;ZFr.exports.default=I4});var E9i=H((z9u,b9i)=>{b9i.exports=y9i()});var v9i=H((q9u,S9i)=>{var IDe=1e3,hDe=IDe*60,mDe=hDe*60,BCe=mDe*24,k_c=BCe*7,x_c=BCe*365.25;S9i.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return G_c(e);if(r==="number"&&isFinite(e))return t.long?Z_c(e):F_c(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function G_c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*x_c;case"weeks":case"week":case"w":return r*k_c;case"days":case"day":case"d":return r*BCe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mDe;case"minutes":case"minute":case"mins":case"min":case"m":return r*hDe;case"seconds":case"second":case"secs":case"sec":case"s":return r*IDe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function F_c(e){var t=Math.abs(e);return t>=BCe?Math.round(e/BCe)+"d":t>=mDe?Math.round(e/mDe)+"h":t>=hDe?Math.round(e/hDe)+"m":t>=IDe?Math.round(e/IDe)+"s":e+"ms"}function Z_c(e){var t=Math.abs(e);return t>=BCe?z1t(e,t,BCe,"day"):t>=mDe?z1t(e,t,mDe,"hour"):t>=hDe?z1t(e,t,hDe,"minute"):t>=IDe?z1t(e,t,IDe,"second"):e+" ms"}function z1t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var LFr=H(($9u,B9i)=>{function L_c(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=v9i(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{yO.formatArgs=P_c;yO.save=W_c;yO.load=O_c;yO.useColors=V_c;yO.storage=M_c();yO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function V_c(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function P_c(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+q1t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}yO.log=console.debug||console.log||(()=>{});function W_c(e){try{e?yO.storage.setItem("debug",e):yO.storage.removeItem("debug")}catch{}}function O_c(){let e;try{e=yO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function M_c(){try{return localStorage}catch{}}q1t.exports=LFr()(yO);var{formatters:H_c}=q1t.exports;H_c.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var R9i=H((Kk,e2t)=>{var Y_c=wt("tty"),$1t=wt("util");Kk.init=z_c;Kk.log=U_c;Kk.formatArgs=X_c;Kk.save=K_c;Kk.load=j_c;Kk.useColors=Q_c;Kk.destroy=$1t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Kk.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(Kk.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Kk.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function Q_c(){return"colors"in Kk.inspectOpts?!!Kk.inspectOpts.colors:Y_c.isatty(process.stderr.fd)}function X_c(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` -`+o),e.push(a+"m+"+e2t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=X_c()+t+" "+e[0]}function X_c(){return Kk.inspectOpts.hideDate?"":new Date().toISOString()+" "}function J_c(...e){return process.stderr.write($1t.format(...e)+` -`)}function U_c(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function K_c(){return process.env.DEBUG}function j_c(e){e.inspectOpts={};let t=Object.keys(Kk.inspectOpts);for(let r=0;rt.trim()).join(" ")};T9i.O=function(e){return this.inspectOpts.colors=this.useColors,$1t.inspect(e,this.inspectOpts)}});var PFr=H(($9u,VFr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?VFr.exports=w9i():VFr.exports=R9i()});var D9i=H((eVu,N9i)=>{var{Transform:z_c}=wt("stream"),WFr=class extends z_c{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,r,n){n(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(a,o)=>(this.replaced=!0,o+this.host)))}};N9i.exports=WFr});var G9i=H((rVu,x9i)=>{var{EventEmitter:q_c}=wt("events"),Bj=PFr()("localtunnel:client"),OFr=wt("fs"),k9i=wt("net"),$_c=wt("tls"),e0c=D9i();x9i.exports=class extends q_c{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,r=t.remote_ip||t.remote_host,n=t.remote_port,a=t.local_host||"localhost",o=t.local_port,l=t.local_https?"https":"http",A=t.allow_invalid_cert;Bj("establishing tunnel %s://%s:%s <> %s:%s",l,a,o,r,n);let f=k9i.connect({host:r,port:n});f.setKeepAlive(!0),f.on("error",C=>{Bj("got remote connection error",C.message),C.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${r}:${n} (check your firewall settings)`)),f.end()});let I=()=>{if(f.destroyed){Bj("remote destroyed"),this.emit("dead");return}Bj("connecting locally to %s://%s:%d",l,a,o),f.pause(),A&&Bj("allowing invalid certificates");let C=()=>A?{rejectUnauthorized:!1}:{cert:OFr.readFileSync(t.local_cert),key:OFr.readFileSync(t.local_key),ca:t.local_ca?[OFr.readFileSync(t.local_ca)]:void 0},b=t.local_https?$_c.connect({host:a,port:o,...C()}):k9i.connect({host:a,port:o}),E=()=>{Bj("remote close"),this.emit("dead"),b.end()};f.once("close",E),b.once("error",N=>{if(Bj("local error %s",N.message),b.end(),f.removeListener("close",E),N.code!=="ECONNREFUSED")return f.end();setTimeout(I,1e3)}),b.once("connect",()=>{Bj("connected locally"),f.resume();let N=f;t.local_host&&(Bj("transform Host header to %s",t.local_host),N=f.pipe(new e0c({host:t.local_host}))),N.pipe(b).pipe(f),b.once("close",B=>{Bj("local connection closed [%s]",B)})})};f.on("data",C=>{let b=C.toString().match(/^(\w+) (\S+)/);b&&this.emit("request",{method:b[1],path:b[2]})}),f.once("connect",()=>{this.emit("open",f),I()})}}});var L9i=H((iVu,Z9i)=>{var{parse:t0c}=wt("url"),{EventEmitter:F9i}=wt("events"),r0c=E9i(),oKe=PFr()("localtunnel:client"),n0c=G9i();Z9i.exports=class extends F9i{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:r,ip:n,port:a,url:o,cached_url:l,max_conn_count:A}=t,{host:f,port:I,local_host:C}=this.opts,{local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}=this.opts;return{name:r,url:o,cached_url:l,max_conn:A||1,remote_host:t0c(f).hostname,remote_ip:n,remote_port:a,local_port:I,local_host:C,local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}}_init(t){let r=this.opts,n=this._getInfo.bind(this),a={responseType:"json"},o=`${r.host}/`,l=r.subdomain,A=o+(l||"?new");(function f(){r0c.get(A,a).then(I=>{let C=I.data;if(oKe("got tunnel information",I.data),I.status!==200){let b=new Error(C&&C.message||"localtunnel server returned an error, please try again");return t(b)}t(null,n(C))}).catch(I=>(oKe(`tunnel server offline: ${I.message}, retry 1s`),setTimeout(f,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(F9i.defaultMaxListeners||10)),this.tunnelCluster=new n0c(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",n=>{oKe("got socket error",n.message),this.emit("error",n)});let r=0;this.tunnelCluster.on("open",n=>{r++,oKe("tunnel open [total: %d]",r);let a=()=>{n.destroy()};if(this.closed)return a();this.once("close",a),n.once("close",()=>{this.removeListener("close",a)})}),this.tunnelCluster.on("dead",()=>{r--,oKe("tunnel dead [total: %d]",r),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",n=>{this.emit("request",n)});for(let n=0;n{if(r)return t(r);this.clientId=n.name,this.url=n.url,n.cached_url&&(this.cachedUrl=n.cached_url),this._establish(n),t()})}close(){this.closed=!0,this.emit("close")}}});var P9i=H((sVu,V9i)=>{var i0c=L9i();V9i.exports=function(t,r,n){let a=typeof t=="object"?t:{...r,port:t},o=typeof t=="object"?r:n,l=new i0c(a);return o?(l.open(A=>A?o(A):o(null,l)),l):new Promise((A,f)=>l.open(I=>I?f(I):A(l)))}});var lVi=H(cVi=>{"use strict";Object.defineProperty(cVi,"__esModule",{value:!0})});var gVi=H(uVi=>{"use strict";Object.defineProperty(uVi,"__esModule",{value:!0})});var AVi=H(AKe=>{"use strict";Object.defineProperty(AKe,"__esModule",{value:!0});AKe.SeverityNumber=void 0;var B0c;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(B0c=AKe.SeverityNumber||(AKe.SeverityNumber={}))});var pVi=H(dVi=>{"use strict";Object.defineProperty(dVi,"__esModule",{value:!0})});var QFr=H(CDe=>{"use strict";Object.defineProperty(CDe,"__esModule",{value:!0});CDe.NOOP_LOGGER=CDe.NoopLogger=void 0;var a2t=class{emit(t){}};CDe.NoopLogger=a2t;CDe.NOOP_LOGGER=new a2t});var XFr=H(_De=>{"use strict";Object.defineProperty(_De,"__esModule",{value:!0});_De.NOOP_LOGGER_PROVIDER=_De.NoopLoggerProvider=void 0;var w0c=QFr(),c2t=class{getLogger(t,r,n){return new w0c.NoopLogger}};_De.NoopLoggerProvider=c2t;_De.NOOP_LOGGER_PROVIDER=new c2t});var fVi=H(l2t=>{"use strict";Object.defineProperty(l2t,"__esModule",{value:!0});l2t._globalThis=void 0;l2t._globalThis=typeof globalThis=="object"?globalThis:global});var IVi=H(TCe=>{"use strict";var T0c=TCe&&TCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),R0c=TCe&&TCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T0c(t,e,r)};Object.defineProperty(TCe,"__esModule",{value:!0});R0c(fVi(),TCe)});var hVi=H(RCe=>{"use strict";var N0c=RCe&&RCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),D0c=RCe&&RCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&N0c(t,e,r)};Object.defineProperty(RCe,"__esModule",{value:!0});D0c(IVi(),RCe)});var mVi=H(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj.API_BACKWARDS_COMPATIBILITY_VERSION=wj.makeGetter=wj._global=wj.GLOBAL_LOGS_API_KEY=void 0;var k0c=hVi();wj.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");wj._global=k0c._globalThis;function x0c(e,t,r){return n=>n===e?t:r}wj.makeGetter=x0c;wj.API_BACKWARDS_COMPATIBILITY_VERSION=1});var _Vi=H(u2t=>{"use strict";Object.defineProperty(u2t,"__esModule",{value:!0});u2t.LogsAPI=void 0;var gH=mVi(),CVi=XFr(),JFr=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return gH._global[gH.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(gH._global[gH.GLOBAL_LOGS_API_KEY]=(0,gH.makeGetter)(gH.API_BACKWARDS_COMPATIBILITY_VERSION,t,CVi.NOOP_LOGGER_PROVIDER),t)}getLoggerProvider(){var t,r;return(r=(t=gH._global[gH.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(gH._global,gH.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&r!==void 0?r:CVi.NOOP_LOGGER_PROVIDER}getLogger(t,r,n){return this.getLoggerProvider().getLogger(t,r,n)}disable(){delete gH._global[gH.GLOBAL_LOGS_API_KEY]}};u2t.LogsAPI=JFr});var bDe=H(wV=>{"use strict";var G0c=wV&&wV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yDe=wV&&wV.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&G0c(t,e,r)};Object.defineProperty(wV,"__esModule",{value:!0});wV.logs=void 0;yDe(lVi(),wV);yDe(gVi(),wV);yDe(AVi(),wV);yDe(pVi(),wV);yDe(QFr(),wV);yDe(XFr(),wV);var F0c=_Vi();wV.logs=F0c.LogsAPI.getInstance()});var yVi,bVi=bc(()=>{yVi=typeof globalThis=="object"?globalThis:global});var EVi=bc(()=>{bVi()});var SVi=bc(()=>{EVi()});var Uee,UFr=bc(()=>{Uee="1.9.0"});function Z0c(e){var t=new Set([e]),r=new Set,n=e.match(vVi);if(!n)return function(){return!1};var a={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(a.prerelease!=null)return function(f){return f===e};function o(A){return r.add(A),!1}function l(A){return t.add(A),!0}return function(f){if(t.has(f))return!0;if(r.has(f))return!1;var I=f.match(vVi);if(!I)return o(f);var C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};return C.prerelease!=null||a.major!==C.major?o(f):a.major===0?a.minor===C.minor&&a.patch<=C.patch?l(f):o(f):a.minor<=C.minor?l(f):o(f)}}var vVi,BVi,wVi=bc(()=>{UFr();vVi=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;BVi=Z0c(Uee)});function Tj(e,t,r,n){var a;n===void 0&&(n=!1);var o=pKe[dKe]=(a=pKe[dKe])!==null&&a!==void 0?a:{version:Uee};if(!n&&o[e]){var l=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(l.stack||l.message),!1}if(o.version!==Uee){var l=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+Uee);return r.error(l.stack||l.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+Uee+"."),!0}function bO(e){var t,r,n=(t=pKe[dKe])===null||t===void 0?void 0:t.version;if(!(!n||!BVi(n)))return(r=pKe[dKe])===null||r===void 0?void 0:r[e]}function Rj(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+Uee+".");var r=pKe[dKe];r&&delete r[e]}var L0c,dKe,pKe,NCe=bc(()=>{SVi();UFr();wVi();L0c=Uee.split(".")[0],dKe=Symbol.for("opentelemetry.js.api."+L0c),pKe=yVi});function fKe(e,t,r){var n=bO("diag");if(n)return r.unshift(t),n[e].apply(n,P0c([],V0c(r),!1))}var V0c,P0c,TVi,RVi=bc(()=>{NCe();V0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},P0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(jk||(jk={}))});function NVi(e,t){ejk.ALL&&(e=jk.ALL),t=t||{};function r(n,a){var o=t[n];return typeof o=="function"&&e>=a?o.bind(t):function(){}}return{error:r("error",jk.ERROR),warn:r("warn",jk.WARN),info:r("info",jk.INFO),debug:r("debug",jk.DEBUG),verbose:r("verbose",jk.VERBOSE)}}var DVi=bc(()=>{g2t()});var W0c,O0c,M0c,VG,DCe=bc(()=>{RVi();DVi();g2t();NCe();W0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},O0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n";C.warn("Current logger will be overwritten from "+E),b.warn("Current logger will overwrite one already registered from "+E)}return Tj("diag",b,r,!0)};r.setLogger=n,r.disable=function(){Rj(M0c,r)},r.createComponentLogger=function(a){return new TVi(a)},r.verbose=t("verbose"),r.debug=t("debug"),r.info=t("info"),r.warn=t("warn"),r.error=t("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}()});var H0c,Y0c,kVi,xVi=bc(()=>{H0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Y0c=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},kVi=function(){function e(t){this._entries=t?new Map(t):new Map}return e.prototype.getEntry=function(t){var r=this._entries.get(t);if(r)return Object.assign({},r)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(t){var r=H0c(t,2),n=r[0],a=r[1];return[n,a]})},e.prototype.setEntry=function(t,r){var n=new e(this._entries);return n._entries.set(t,r),n},e.prototype.removeEntry=function(t){var r=new e(this._entries);return r._entries.delete(t),r},e.prototype.removeEntries=function(){for(var t,r,n=[],a=0;a{GVi=Symbol("BaggageEntryMetadata")});function ZVi(e){return e===void 0&&(e={}),new kVi(new Map(Object.entries(e)))}function LVi(e){return typeof e!="string"&&(Q0c.error("Cannot create baggage metadata from unknown type: "+typeof e),e=""),{__TYPE__:GVi,toString:function(){return e}}}var Q0c,KFr=bc(()=>{DCe();xVi();FVi();Q0c=VG.instance()});function EDe(e){return Symbol.for(e)}var X0c,A2t,IKe=bc(()=>{X0c=function(){function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,a){var o=new e(r._currentContext);return o._currentContext.set(n,a),o},r.deleteValue=function(n){var a=new e(r._currentContext);return a._currentContext.delete(n),a}}return e}(),A2t=new X0c});var jFr,VVi,PVi=bc(()=>{jFr=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],VVi=function(){function e(){function t(n){return function(){for(var a=[],o=0;o{kCe=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),J0c=function(){function e(){}return e.prototype.createGauge=function(t,r){return ryc},e.prototype.createHistogram=function(t,r){return nyc},e.prototype.createCounter=function(t,r){return tyc},e.prototype.createUpDownCounter=function(t,r){return iyc},e.prototype.createObservableGauge=function(t,r){return oyc},e.prototype.createObservableCounter=function(t,r){return syc},e.prototype.createObservableUpDownCounter=function(t,r){return ayc},e.prototype.addBatchObservableCallback=function(t,r){},e.prototype.removeBatchObservableCallback=function(t){},e}(),d2t=function(){function e(){}return e}(),U0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),K0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),j0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),z0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),zFr=function(){function e(){}return e.prototype.addCallback=function(t){},e.prototype.removeCallback=function(t){},e}(),q0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),$0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),eyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),qFr=new J0c,tyc=new U0c,ryc=new j0c,nyc=new z0c,iyc=new K0c,syc=new q0c,oyc=new $0c,ayc=new eyc});var p2t,OVi=bc(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(p2t||(p2t={}))});var f2t,I2t,eZr=bc(()=>{f2t={get:function(e,t){if(e!=null)return e[t]},keys:function(e){return e==null?[]:Object.keys(e)}},I2t={set:function(e,t,r){e!=null&&(e[t]=r)}}});var cyc,lyc,MVi,HVi=bc(()=>{IKe();cyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},lyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{HVi();NCe();DCe();uyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},gyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(SDe||(SDe={}))});var mKe,CKe,h2t,m2t=bc(()=>{rZr();mKe="0000000000000000",CKe="00000000000000000000000000000000",h2t={traceId:CKe,spanId:mKe,traceFlags:SDe.NONE}});var Oce,C2t=bc(()=>{m2t();Oce=function(){function e(t){t===void 0&&(t=h2t),this._spanContext=t}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(t,r){return this},e.prototype.setAttributes=function(t){return this},e.prototype.addEvent=function(t,r){return this},e.prototype.addLink=function(t){return this},e.prototype.addLinks=function(t){return this},e.prototype.setStatus=function(t){return this},e.prototype.updateName=function(t){return this},e.prototype.end=function(t){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(t,r){},e}()});function _2t(e){return e.getValue(nZr)||void 0}function YVi(){return _2t(Wce.getInstance().active())}function _Ke(e,t){return e.setValue(nZr,t)}function QVi(e){return e.deleteValue(nZr)}function XVi(e,t){return _Ke(e,new Oce(t))}function y2t(e){var t;return(t=_2t(e))===null||t===void 0?void 0:t.spanContext()}var nZr,iZr=bc(()=>{IKe();C2t();hKe();nZr=EDe("OpenTelemetry Context Key SPAN")});function sZr(e){return dyc.test(e)&&e!==CKe}function oZr(e){return pyc.test(e)&&e!==mKe}function vDe(e){return sZr(e.traceId)&&oZr(e.spanId)}function JVi(e){return new Oce(e)}var dyc,pyc,b2t=bc(()=>{m2t();C2t();dyc=/^([0-9a-f]{32})$/i,pyc=/^[0-9a-f]{16}$/i});function fyc(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var aZr,E2t,cZr=bc(()=>{hKe();iZr();C2t();b2t();aZr=Wce.getInstance(),E2t=function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=aZr.active());var a=!!r?.root;if(a)return new Oce;var o=n&&y2t(n);return fyc(o)&&vDe(o)?new Oce(o):new Oce},e.prototype.startActiveSpan=function(t,r,n,a){var o,l,A;if(!(arguments.length<2)){arguments.length===2?A=r:arguments.length===3?(o=r,A=n):(o=r,l=n,A=a);var f=l??aZr.active(),I=this.startSpan(t,o,f),C=_Ke(f,I);return aZr.with(C,A,void 0,I)}},e}()});var Iyc,S2t,lZr=bc(()=>{cZr();Iyc=new E2t,S2t=function(){function e(t,r,n,a){this._provider=t,this.name=r,this.version=n,this.options=a}return e.prototype.startSpan=function(t,r,n){return this._getTracer().startSpan(t,r,n)},e.prototype.startActiveSpan=function(t,r,n,a){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):Iyc},e}()});var UVi,KVi=bc(()=>{cZr();UVi=function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new E2t},e}()});var hyc,yKe,uZr=bc(()=>{lZr();KVi();hyc=new UVi,yKe=function(){function e(){}return e.prototype.getTracer=function(t,r,n){var a;return(a=this.getDelegateTracer(t,r,n))!==null&&a!==void 0?a:new S2t(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:hyc},e.prototype.setDelegate=function(t){this._delegate=t},e.prototype.getDelegateTracer=function(t,r,n){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(t,r,n)},e}()});var v2t,jVi=bc(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v2t||(v2t={}))});var B2t,zVi=bc(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})(B2t||(B2t={}))});var w2t,qVi=bc(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(w2t||(w2t={}))});function $Vi(e){return _yc.test(e)}function ePi(e){return yyc.test(e)&&!byc.test(e)}var gZr,myc,Cyc,_yc,yyc,byc,tPi=bc(()=>{gZr="[_0-9a-z-*/]",myc="[a-z]"+gZr+"{0,255}",Cyc="[a-z0-9]"+gZr+"{0,240}@[a-z]"+gZr+"{0,13}",_yc=new RegExp("^(?:"+myc+"|"+Cyc+")$"),yyc=/^[ -~]{0,255}[!-~]$/,byc=/,|=/});var rPi,Eyc,nPi,iPi,sPi,oPi=bc(()=>{tPi();rPi=32,Eyc=512,nPi=",",iPi="=",sPi=function(){function e(t){this._internalState=new Map,t&&this._parse(t)}return e.prototype.set=function(t,r){var n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n},e.prototype.unset=function(t){var r=this._clone();return r._internalState.delete(t),r},e.prototype.get=function(t){return this._internalState.get(t)},e.prototype.serialize=function(){var t=this;return this._keys().reduce(function(r,n){return r.push(n+iPi+t.get(n)),r},[]).join(nPi)},e.prototype._parse=function(t){t.length>Eyc||(this._internalState=t.split(nPi).reverse().reduce(function(r,n){var a=n.trim(),o=a.indexOf(iPi);if(o!==-1){var l=a.slice(0,o),A=a.slice(o+1,n.length);$Vi(l)&&ePi(A)&&r.set(l,A)}return r},new Map),this._internalState.size>rPi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,rPi))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}()});function aPi(e){return new sPi(e)}var cPi=bc(()=>{oPi()});var AZr,lPi=bc(()=>{hKe();AZr=Wce.getInstance()});var dZr,uPi=bc(()=>{DCe();dZr=VG.instance()});var Syc,gPi,APi=bc(()=>{$Fr();Syc=function(){function e(){}return e.prototype.getMeter=function(t,r,n){return qFr},e}(),gPi=new Syc});var pZr,dPi,pPi=bc(()=>{APi();NCe();DCe();pZr="metrics",dPi=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalMeterProvider=function(t){return Tj(pZr,t,VG.instance())},e.prototype.getMeterProvider=function(){return bO(pZr)||gPi},e.prototype.getMeter=function(t,r,n){return this.getMeterProvider().getMeter(t,r,n)},e.prototype.disable=function(){Rj(pZr,VG.instance())},e}()});var fZr,fPi=bc(()=>{pPi();fZr=dPi.getInstance()});var IPi,hPi=bc(()=>{IPi=function(){function e(){}return e.prototype.inject=function(t,r){},e.prototype.extract=function(t,r){return t},e.prototype.fields=function(){return[]},e}()});function hZr(e){return e.getValue(IZr)||void 0}function mPi(){return hZr(Wce.getInstance().active())}function CPi(e,t){return e.setValue(IZr,t)}function _Pi(e){return e.deleteValue(IZr)}var IZr,yPi=bc(()=>{hKe();IKe();IZr=EDe("OpenTelemetry Baggage Key")});var mZr,vyc,bPi,EPi=bc(()=>{NCe();hPi();eZr();yPi();KFr();DCe();mZr="propagation",vyc=new IPi,bPi=function(){function e(){this.createBaggage=ZVi,this.getBaggage=hZr,this.getActiveBaggage=mPi,this.setBaggage=CPi,this.deleteBaggage=_Pi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalPropagator=function(t){return Tj(mZr,t,VG.instance())},e.prototype.inject=function(t,r,n){return n===void 0&&(n=I2t),this._getGlobalPropagator().inject(t,r,n)},e.prototype.extract=function(t,r,n){return n===void 0&&(n=f2t),this._getGlobalPropagator().extract(t,r,n)},e.prototype.fields=function(){return this._getGlobalPropagator().fields()},e.prototype.disable=function(){Rj(mZr,VG.instance())},e.prototype._getGlobalPropagator=function(){return bO(mZr)||vyc},e}()});var CZr,SPi=bc(()=>{EPi();CZr=bPi.getInstance()});var _Zr,vPi,BPi=bc(()=>{NCe();uZr();b2t();iZr();DCe();_Zr="trace",vPi=function(){function e(){this._proxyTracerProvider=new yKe,this.wrapSpanContext=JVi,this.isSpanContextValid=vDe,this.deleteSpan=QVi,this.getSpan=_2t,this.getActiveSpan=YVi,this.getSpanContext=y2t,this.setSpan=_Ke,this.setSpanContext=XVi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(t){var r=Tj(_Zr,this._proxyTracerProvider,VG.instance());return r&&this._proxyTracerProvider.setDelegate(t),r},e.prototype.getTracerProvider=function(){return bO(_Zr)||this._proxyTracerProvider},e.prototype.getTracer=function(t,r){return this.getTracerProvider().getTracer(t,r)},e.prototype.disable=function(){Rj(_Zr,VG.instance()),this._proxyTracerProvider=new yKe},e}()});var yZr,wPi=bc(()=>{BPi();yZr=vPi.getInstance()});var xI={};sI(xI,{DiagConsoleLogger:()=>VVi,DiagLogLevel:()=>jk,INVALID_SPANID:()=>mKe,INVALID_SPAN_CONTEXT:()=>h2t,INVALID_TRACEID:()=>CKe,ProxyTracer:()=>S2t,ProxyTracerProvider:()=>yKe,ROOT_CONTEXT:()=>A2t,SamplingDecision:()=>v2t,SpanKind:()=>B2t,SpanStatusCode:()=>w2t,TraceFlags:()=>SDe,ValueType:()=>p2t,baggageEntryMetadataFromString:()=>LVi,context:()=>AZr,createContextKey:()=>EDe,createNoopMeter:()=>WVi,createTraceState:()=>aPi,default:()=>Byc,defaultTextMapGetter:()=>f2t,defaultTextMapSetter:()=>I2t,diag:()=>dZr,isSpanContextValid:()=>vDe,isValidSpanId:()=>oZr,isValidTraceId:()=>sZr,metrics:()=>fZr,propagation:()=>CZr,trace:()=>yZr});var Byc,GI=bc(()=>{KFr();IKe();PVi();g2t();$Fr();OVi();eZr();lZr();uZr();jVi();zVi();qVi();rZr();cPi();b2t();m2t();lPi();uPi();fPi();SPi();wPi();Byc={context:AZr,diag:dZr,metrics:fZr,propagation:CZr,trace:yZr}});var TPi=H(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});K0.MessageTypeValues=K0.RpcGrpcStatusCodeValues=K0.MessagingOperationValues=K0.MessagingDestinationKindValues=K0.HttpFlavorValues=K0.NetHostConnectionSubtypeValues=K0.NetHostConnectionTypeValues=K0.NetTransportValues=K0.FaasInvokedProviderValues=K0.FaasDocumentOperationValues=K0.FaasTriggerValues=K0.DbCassandraConsistencyLevelValues=K0.DbSystemValues=K0.SemanticAttributes=void 0;K0.SemanticAttributes={AWS_LAMBDA_INVOKED_ARN:"aws.lambda.invoked_arn",DB_SYSTEM:"db.system",DB_CONNECTION_STRING:"db.connection_string",DB_USER:"db.user",DB_JDBC_DRIVER_CLASSNAME:"db.jdbc.driver_classname",DB_NAME:"db.name",DB_STATEMENT:"db.statement",DB_OPERATION:"db.operation",DB_MSSQL_INSTANCE_NAME:"db.mssql.instance_name",DB_CASSANDRA_KEYSPACE:"db.cassandra.keyspace",DB_CASSANDRA_PAGE_SIZE:"db.cassandra.page_size",DB_CASSANDRA_CONSISTENCY_LEVEL:"db.cassandra.consistency_level",DB_CASSANDRA_TABLE:"db.cassandra.table",DB_CASSANDRA_IDEMPOTENCE:"db.cassandra.idempotence",DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:"db.cassandra.speculative_execution_count",DB_CASSANDRA_COORDINATOR_ID:"db.cassandra.coordinator.id",DB_CASSANDRA_COORDINATOR_DC:"db.cassandra.coordinator.dc",DB_HBASE_NAMESPACE:"db.hbase.namespace",DB_REDIS_DATABASE_INDEX:"db.redis.database_index",DB_MONGODB_COLLECTION:"db.mongodb.collection",DB_SQL_TABLE:"db.sql.table",EXCEPTION_TYPE:"exception.type",EXCEPTION_MESSAGE:"exception.message",EXCEPTION_STACKTRACE:"exception.stacktrace",EXCEPTION_ESCAPED:"exception.escaped",FAAS_TRIGGER:"faas.trigger",FAAS_EXECUTION:"faas.execution",FAAS_DOCUMENT_COLLECTION:"faas.document.collection",FAAS_DOCUMENT_OPERATION:"faas.document.operation",FAAS_DOCUMENT_TIME:"faas.document.time",FAAS_DOCUMENT_NAME:"faas.document.name",FAAS_TIME:"faas.time",FAAS_CRON:"faas.cron",FAAS_COLDSTART:"faas.coldstart",FAAS_INVOKED_NAME:"faas.invoked_name",FAAS_INVOKED_PROVIDER:"faas.invoked_provider",FAAS_INVOKED_REGION:"faas.invoked_region",NET_TRANSPORT:"net.transport",NET_PEER_IP:"net.peer.ip",NET_PEER_PORT:"net.peer.port",NET_PEER_NAME:"net.peer.name",NET_HOST_IP:"net.host.ip",NET_HOST_PORT:"net.host.port",NET_HOST_NAME:"net.host.name",NET_HOST_CONNECTION_TYPE:"net.host.connection.type",NET_HOST_CONNECTION_SUBTYPE:"net.host.connection.subtype",NET_HOST_CARRIER_NAME:"net.host.carrier.name",NET_HOST_CARRIER_MCC:"net.host.carrier.mcc",NET_HOST_CARRIER_MNC:"net.host.carrier.mnc",NET_HOST_CARRIER_ICC:"net.host.carrier.icc",PEER_SERVICE:"peer.service",ENDUSER_ID:"enduser.id",ENDUSER_ROLE:"enduser.role",ENDUSER_SCOPE:"enduser.scope",THREAD_ID:"thread.id",THREAD_NAME:"thread.name",CODE_FUNCTION:"code.function",CODE_NAMESPACE:"code.namespace",CODE_FILEPATH:"code.filepath",CODE_LINENO:"code.lineno",HTTP_METHOD:"http.method",HTTP_URL:"http.url",HTTP_TARGET:"http.target",HTTP_HOST:"http.host",HTTP_SCHEME:"http.scheme",HTTP_STATUS_CODE:"http.status_code",HTTP_FLAVOR:"http.flavor",HTTP_USER_AGENT:"http.user_agent",HTTP_REQUEST_CONTENT_LENGTH:"http.request_content_length",HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:"http.request_content_length_uncompressed",HTTP_RESPONSE_CONTENT_LENGTH:"http.response_content_length",HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:"http.response_content_length_uncompressed",HTTP_SERVER_NAME:"http.server_name",HTTP_ROUTE:"http.route",HTTP_CLIENT_IP:"http.client_ip",AWS_DYNAMODB_TABLE_NAMES:"aws.dynamodb.table_names",AWS_DYNAMODB_CONSUMED_CAPACITY:"aws.dynamodb.consumed_capacity",AWS_DYNAMODB_ITEM_COLLECTION_METRICS:"aws.dynamodb.item_collection_metrics",AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:"aws.dynamodb.provisioned_read_capacity",AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:"aws.dynamodb.provisioned_write_capacity",AWS_DYNAMODB_CONSISTENT_READ:"aws.dynamodb.consistent_read",AWS_DYNAMODB_PROJECTION:"aws.dynamodb.projection",AWS_DYNAMODB_LIMIT:"aws.dynamodb.limit",AWS_DYNAMODB_ATTRIBUTES_TO_GET:"aws.dynamodb.attributes_to_get",AWS_DYNAMODB_INDEX_NAME:"aws.dynamodb.index_name",AWS_DYNAMODB_SELECT:"aws.dynamodb.select",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:"aws.dynamodb.global_secondary_indexes",AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:"aws.dynamodb.local_secondary_indexes",AWS_DYNAMODB_EXCLUSIVE_START_TABLE:"aws.dynamodb.exclusive_start_table",AWS_DYNAMODB_TABLE_COUNT:"aws.dynamodb.table_count",AWS_DYNAMODB_SCAN_FORWARD:"aws.dynamodb.scan_forward",AWS_DYNAMODB_SEGMENT:"aws.dynamodb.segment",AWS_DYNAMODB_TOTAL_SEGMENTS:"aws.dynamodb.total_segments",AWS_DYNAMODB_COUNT:"aws.dynamodb.count",AWS_DYNAMODB_SCANNED_COUNT:"aws.dynamodb.scanned_count",AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:"aws.dynamodb.attribute_definitions",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:"aws.dynamodb.global_secondary_index_updates",MESSAGING_SYSTEM:"messaging.system",MESSAGING_DESTINATION:"messaging.destination",MESSAGING_DESTINATION_KIND:"messaging.destination_kind",MESSAGING_TEMP_DESTINATION:"messaging.temp_destination",MESSAGING_PROTOCOL:"messaging.protocol",MESSAGING_PROTOCOL_VERSION:"messaging.protocol_version",MESSAGING_URL:"messaging.url",MESSAGING_MESSAGE_ID:"messaging.message_id",MESSAGING_CONVERSATION_ID:"messaging.conversation_id",MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:"messaging.message_payload_size_bytes",MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:"messaging.message_payload_compressed_size_bytes",MESSAGING_OPERATION:"messaging.operation",MESSAGING_CONSUMER_ID:"messaging.consumer_id",MESSAGING_RABBITMQ_ROUTING_KEY:"messaging.rabbitmq.routing_key",MESSAGING_KAFKA_MESSAGE_KEY:"messaging.kafka.message_key",MESSAGING_KAFKA_CONSUMER_GROUP:"messaging.kafka.consumer_group",MESSAGING_KAFKA_CLIENT_ID:"messaging.kafka.client_id",MESSAGING_KAFKA_PARTITION:"messaging.kafka.partition",MESSAGING_KAFKA_TOMBSTONE:"messaging.kafka.tombstone",RPC_SYSTEM:"rpc.system",RPC_SERVICE:"rpc.service",RPC_METHOD:"rpc.method",RPC_GRPC_STATUS_CODE:"rpc.grpc.status_code",RPC_JSONRPC_VERSION:"rpc.jsonrpc.version",RPC_JSONRPC_REQUEST_ID:"rpc.jsonrpc.request_id",RPC_JSONRPC_ERROR_CODE:"rpc.jsonrpc.error_code",RPC_JSONRPC_ERROR_MESSAGE:"rpc.jsonrpc.error_message",MESSAGE_TYPE:"message.type",MESSAGE_ID:"message.id",MESSAGE_COMPRESSED_SIZE:"message.compressed_size",MESSAGE_UNCOMPRESSED_SIZE:"message.uncompressed_size"};K0.DbSystemValues={OTHER_SQL:"other_sql",MSSQL:"mssql",MYSQL:"mysql",ORACLE:"oracle",DB2:"db2",POSTGRESQL:"postgresql",REDSHIFT:"redshift",HIVE:"hive",CLOUDSCAPE:"cloudscape",HSQLDB:"hsqldb",PROGRESS:"progress",MAXDB:"maxdb",HANADB:"hanadb",INGRES:"ingres",FIRSTSQL:"firstsql",EDB:"edb",CACHE:"cache",ADABAS:"adabas",FIREBIRD:"firebird",DERBY:"derby",FILEMAKER:"filemaker",INFORMIX:"informix",INSTANTDB:"instantdb",INTERBASE:"interbase",MARIADB:"mariadb",NETEZZA:"netezza",PERVASIVE:"pervasive",POINTBASE:"pointbase",SQLITE:"sqlite",SYBASE:"sybase",TERADATA:"teradata",VERTICA:"vertica",H2:"h2",COLDFUSION:"coldfusion",CASSANDRA:"cassandra",HBASE:"hbase",MONGODB:"mongodb",REDIS:"redis",COUCHBASE:"couchbase",COUCHDB:"couchdb",COSMOSDB:"cosmosdb",DYNAMODB:"dynamodb",NEO4J:"neo4j",GEODE:"geode",ELASTICSEARCH:"elasticsearch",MEMCACHED:"memcached",COCKROACHDB:"cockroachdb"};K0.DbCassandraConsistencyLevelValues={ALL:"all",EACH_QUORUM:"each_quorum",QUORUM:"quorum",LOCAL_QUORUM:"local_quorum",ONE:"one",TWO:"two",THREE:"three",LOCAL_ONE:"local_one",ANY:"any",SERIAL:"serial",LOCAL_SERIAL:"local_serial"};K0.FaasTriggerValues={DATASOURCE:"datasource",HTTP:"http",PUBSUB:"pubsub",TIMER:"timer",OTHER:"other"};K0.FaasDocumentOperationValues={INSERT:"insert",EDIT:"edit",DELETE:"delete"};K0.FaasInvokedProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};K0.NetTransportValues={IP_TCP:"ip_tcp",IP_UDP:"ip_udp",IP:"ip",UNIX:"unix",PIPE:"pipe",INPROC:"inproc",OTHER:"other"};K0.NetHostConnectionTypeValues={WIFI:"wifi",WIRED:"wired",CELL:"cell",UNAVAILABLE:"unavailable",UNKNOWN:"unknown"};K0.NetHostConnectionSubtypeValues={GPRS:"gprs",EDGE:"edge",UMTS:"umts",CDMA:"cdma",EVDO_0:"evdo_0",EVDO_A:"evdo_a",CDMA2000_1XRTT:"cdma2000_1xrtt",HSDPA:"hsdpa",HSUPA:"hsupa",HSPA:"hspa",IDEN:"iden",EVDO_B:"evdo_b",LTE:"lte",EHRPD:"ehrpd",HSPAP:"hspap",GSM:"gsm",TD_SCDMA:"td_scdma",IWLAN:"iwlan",NR:"nr",NRNSA:"nrnsa",LTE_CA:"lte_ca"};K0.HttpFlavorValues={HTTP_1_0:"1.0",HTTP_1_1:"1.1",HTTP_2_0:"2.0",SPDY:"SPDY",QUIC:"QUIC"};K0.MessagingDestinationKindValues={QUEUE:"queue",TOPIC:"topic"};K0.MessagingOperationValues={RECEIVE:"receive",PROCESS:"process"};K0.RpcGrpcStatusCodeValues={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15,UNAUTHENTICATED:16};K0.MessageTypeValues={SENT:"SENT",RECEIVED:"RECEIVED"}});var RPi=H(xCe=>{"use strict";var wyc=xCe&&xCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Tyc=xCe&&xCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&wyc(t,e,r)};Object.defineProperty(xCe,"__esModule",{value:!0});Tyc(TPi(),xCe)});var NPi=H(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.TelemetrySdkLanguageValues=PG.OsTypeValues=PG.HostArchValues=PG.AwsEcsLaunchtypeValues=PG.CloudPlatformValues=PG.CloudProviderValues=PG.SemanticResourceAttributes=void 0;PG.SemanticResourceAttributes={CLOUD_PROVIDER:"cloud.provider",CLOUD_ACCOUNT_ID:"cloud.account.id",CLOUD_REGION:"cloud.region",CLOUD_AVAILABILITY_ZONE:"cloud.availability_zone",CLOUD_PLATFORM:"cloud.platform",AWS_ECS_CONTAINER_ARN:"aws.ecs.container.arn",AWS_ECS_CLUSTER_ARN:"aws.ecs.cluster.arn",AWS_ECS_LAUNCHTYPE:"aws.ecs.launchtype",AWS_ECS_TASK_ARN:"aws.ecs.task.arn",AWS_ECS_TASK_FAMILY:"aws.ecs.task.family",AWS_ECS_TASK_REVISION:"aws.ecs.task.revision",AWS_EKS_CLUSTER_ARN:"aws.eks.cluster.arn",AWS_LOG_GROUP_NAMES:"aws.log.group.names",AWS_LOG_GROUP_ARNS:"aws.log.group.arns",AWS_LOG_STREAM_NAMES:"aws.log.stream.names",AWS_LOG_STREAM_ARNS:"aws.log.stream.arns",CONTAINER_NAME:"container.name",CONTAINER_ID:"container.id",CONTAINER_RUNTIME:"container.runtime",CONTAINER_IMAGE_NAME:"container.image.name",CONTAINER_IMAGE_TAG:"container.image.tag",DEPLOYMENT_ENVIRONMENT:"deployment.environment",DEVICE_ID:"device.id",DEVICE_MODEL_IDENTIFIER:"device.model.identifier",DEVICE_MODEL_NAME:"device.model.name",FAAS_NAME:"faas.name",FAAS_ID:"faas.id",FAAS_VERSION:"faas.version",FAAS_INSTANCE:"faas.instance",FAAS_MAX_MEMORY:"faas.max_memory",HOST_ID:"host.id",HOST_NAME:"host.name",HOST_TYPE:"host.type",HOST_ARCH:"host.arch",HOST_IMAGE_NAME:"host.image.name",HOST_IMAGE_ID:"host.image.id",HOST_IMAGE_VERSION:"host.image.version",K8S_CLUSTER_NAME:"k8s.cluster.name",K8S_NODE_NAME:"k8s.node.name",K8S_NODE_UID:"k8s.node.uid",K8S_NAMESPACE_NAME:"k8s.namespace.name",K8S_POD_UID:"k8s.pod.uid",K8S_POD_NAME:"k8s.pod.name",K8S_CONTAINER_NAME:"k8s.container.name",K8S_REPLICASET_UID:"k8s.replicaset.uid",K8S_REPLICASET_NAME:"k8s.replicaset.name",K8S_DEPLOYMENT_UID:"k8s.deployment.uid",K8S_DEPLOYMENT_NAME:"k8s.deployment.name",K8S_STATEFULSET_UID:"k8s.statefulset.uid",K8S_STATEFULSET_NAME:"k8s.statefulset.name",K8S_DAEMONSET_UID:"k8s.daemonset.uid",K8S_DAEMONSET_NAME:"k8s.daemonset.name",K8S_JOB_UID:"k8s.job.uid",K8S_JOB_NAME:"k8s.job.name",K8S_CRONJOB_UID:"k8s.cronjob.uid",K8S_CRONJOB_NAME:"k8s.cronjob.name",OS_TYPE:"os.type",OS_DESCRIPTION:"os.description",OS_NAME:"os.name",OS_VERSION:"os.version",PROCESS_PID:"process.pid",PROCESS_EXECUTABLE_NAME:"process.executable.name",PROCESS_EXECUTABLE_PATH:"process.executable.path",PROCESS_COMMAND:"process.command",PROCESS_COMMAND_LINE:"process.command_line",PROCESS_COMMAND_ARGS:"process.command_args",PROCESS_OWNER:"process.owner",PROCESS_RUNTIME_NAME:"process.runtime.name",PROCESS_RUNTIME_VERSION:"process.runtime.version",PROCESS_RUNTIME_DESCRIPTION:"process.runtime.description",SERVICE_NAME:"service.name",SERVICE_NAMESPACE:"service.namespace",SERVICE_INSTANCE_ID:"service.instance.id",SERVICE_VERSION:"service.version",TELEMETRY_SDK_NAME:"telemetry.sdk.name",TELEMETRY_SDK_LANGUAGE:"telemetry.sdk.language",TELEMETRY_SDK_VERSION:"telemetry.sdk.version",TELEMETRY_AUTO_VERSION:"telemetry.auto.version",WEBENGINE_NAME:"webengine.name",WEBENGINE_VERSION:"webengine.version",WEBENGINE_DESCRIPTION:"webengine.description"};PG.CloudProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};PG.CloudPlatformValues={ALIBABA_CLOUD_ECS:"alibaba_cloud_ecs",ALIBABA_CLOUD_FC:"alibaba_cloud_fc",AWS_EC2:"aws_ec2",AWS_ECS:"aws_ecs",AWS_EKS:"aws_eks",AWS_LAMBDA:"aws_lambda",AWS_ELASTIC_BEANSTALK:"aws_elastic_beanstalk",AZURE_VM:"azure_vm",AZURE_CONTAINER_INSTANCES:"azure_container_instances",AZURE_AKS:"azure_aks",AZURE_FUNCTIONS:"azure_functions",AZURE_APP_SERVICE:"azure_app_service",GCP_COMPUTE_ENGINE:"gcp_compute_engine",GCP_CLOUD_RUN:"gcp_cloud_run",GCP_KUBERNETES_ENGINE:"gcp_kubernetes_engine",GCP_CLOUD_FUNCTIONS:"gcp_cloud_functions",GCP_APP_ENGINE:"gcp_app_engine"};PG.AwsEcsLaunchtypeValues={EC2:"ec2",FARGATE:"fargate"};PG.HostArchValues={AMD64:"amd64",ARM32:"arm32",ARM64:"arm64",IA64:"ia64",PPC32:"ppc32",PPC64:"ppc64",X86:"x86"};PG.OsTypeValues={WINDOWS:"windows",LINUX:"linux",DARWIN:"darwin",FREEBSD:"freebsd",NETBSD:"netbsd",OPENBSD:"openbsd",DRAGONFLYBSD:"dragonflybsd",HPUX:"hpux",AIX:"aix",SOLARIS:"solaris",Z_OS:"z_os"};PG.TelemetrySdkLanguageValues={CPP:"cpp",DOTNET:"dotnet",ERLANG:"erlang",GO:"go",JAVA:"java",NODEJS:"nodejs",PHP:"php",PYTHON:"python",RUBY:"ruby",WEBJS:"webjs"}});var DPi=H(GCe=>{"use strict";var Ryc=GCe&&GCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Nyc=GCe&&GCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Ryc(t,e,r)};Object.defineProperty(GCe,"__esModule",{value:!0});Nyc(NPi(),GCe)});var Hce=H(Mce=>{"use strict";var Dyc=Mce&&Mce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kPi=Mce&&Mce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Dyc(t,e,r)};Object.defineProperty(Mce,"__esModule",{value:!0});kPi(RPi(),Mce);kPi(DPi(),Mce)});var bKe=H(Yce=>{"use strict";Object.defineProperty(Yce,"__esModule",{value:!0});Yce.isTracingSuppressed=Yce.unsuppressTracing=Yce.suppressTracing=void 0;var kyc=(GI(),vi(xI)),bZr=(0,kyc.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function xyc(e){return e.setValue(bZr,!0)}Yce.suppressTracing=xyc;function Gyc(e){return e.deleteValue(bZr)}Yce.unsuppressTracing=Gyc;function Fyc(e){return e.getValue(bZr)===!0}Yce.isTracingSuppressed=Fyc});var EZr=H(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.BAGGAGE_MAX_TOTAL_LENGTH=WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=WG.BAGGAGE_HEADER=WG.BAGGAGE_ITEMS_SEPARATOR=WG.BAGGAGE_PROPERTIES_SEPARATOR=WG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;WG.BAGGAGE_KEY_PAIR_SEPARATOR="=";WG.BAGGAGE_PROPERTIES_SEPARATOR=";";WG.BAGGAGE_ITEMS_SEPARATOR=",";WG.BAGGAGE_HEADER="baggage";WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;WG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var SZr=H(Nj=>{"use strict";Object.defineProperty(Nj,"__esModule",{value:!0});Nj.parseKeyPairsIntoRecord=Nj.parsePairKeyValue=Nj.getKeyPairs=Nj.serializeKeyPairs=void 0;var Zyc=(GI(),vi(xI)),FCe=EZr();function Lyc(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?FCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>FCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}Nj.serializeKeyPairs=Lyc;function Vyc(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=FCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}Nj.getKeyPairs=Vyc;function xPi(e){let t=e.split(FCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(FCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,Zyc.baggageEntryMetadataFromString)(t.join(FCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}Nj.parsePairKeyValue=xPi;function Pyc(e){return typeof e!="string"||e.length===0?{}:e.split(FCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>xPi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}Nj.parseKeyPairsIntoRecord=Pyc});var GPi=H(T2t=>{"use strict";Object.defineProperty(T2t,"__esModule",{value:!0});T2t.W3CBaggagePropagator=void 0;var vZr=(GI(),vi(xI)),Wyc=bKe(),ZCe=EZr(),BZr=SZr(),wZr=class{inject(t,r,n){let a=vZr.propagation.getBaggage(t);if(!a||(0,Wyc.isTracingSuppressed)(t))return;let o=(0,BZr.getKeyPairs)(a).filter(A=>A.length<=ZCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,ZCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,BZr.serializeKeyPairs)(o);l.length>0&&n.set(r,ZCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,ZCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(ZCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(ZCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,BZr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:vZr.propagation.setBaggage(t,vZr.propagation.createBaggage(l))}fields(){return[ZCe.BAGGAGE_HEADER]}};T2t.W3CBaggagePropagator=wZr});var FPi=H(R2t=>{"use strict";Object.defineProperty(R2t,"__esModule",{value:!0});R2t.AnchoredClock=void 0;var TZr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};R2t.AnchoredClock=TZr});var WPi=H(Qce=>{"use strict";Object.defineProperty(Qce,"__esModule",{value:!0});Qce.isAttributeValue=Qce.isAttributeKey=Qce.sanitizeAttributes=void 0;var ZPi=(GI(),vi(xI));function Oyc(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!LPi(r)){ZPi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!VPi(n)){ZPi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Qce.sanitizeAttributes=Oyc;function LPi(e){return typeof e=="string"&&e.length>0}Qce.isAttributeKey=LPi;function VPi(e){return e==null?!0:Array.isArray(e)?Myc(e):PPi(e)}Qce.isAttributeValue=VPi;function Myc(e){let t;for(let r of e)if(r!=null){if(!t){if(PPi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function PPi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var RZr=H(N2t=>{"use strict";Object.defineProperty(N2t,"__esModule",{value:!0});N2t.loggingErrorHandler=void 0;var Hyc=(GI(),vi(xI));function Yyc(){return e=>{Hyc.diag.error(Qyc(e))}}N2t.loggingErrorHandler=Yyc;function Qyc(e){return typeof e=="string"?e:JSON.stringify(Xyc(e))}function Xyc(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var NZr=H(BDe=>{"use strict";Object.defineProperty(BDe,"__esModule",{value:!0});BDe.globalErrorHandler=BDe.setGlobalErrorHandler=void 0;var Jyc=RZr(),OPi=(0,Jyc.loggingErrorHandler)();function Uyc(e){OPi=e}BDe.setGlobalErrorHandler=Uyc;function Kyc(e){try{OPi(e)}catch{}}BDe.globalErrorHandler=Kyc});var DZr=H(EKe=>{"use strict";Object.defineProperty(EKe,"__esModule",{value:!0});EKe.TracesSamplerValues=void 0;var jyc;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(jyc=EKe.TracesSamplerValues||(EKe.TracesSamplerValues={}))});var MPi=H(D2t=>{"use strict";Object.defineProperty(D2t,"__esModule",{value:!0});D2t._globalThis=void 0;D2t._globalThis=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});var xZr=H(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.getEnvWithoutDefaults=Q1.parseEnvironment=Q1.DEFAULT_ENVIRONMENT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Xce=(GI(),vi(xI)),zyc=DZr(),qyc=MPi(),$yc=",",ebc=["OTEL_SDK_DISABLED"];function tbc(e){return ebc.indexOf(e)>-1}var rbc=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function nbc(e){return rbc.indexOf(e)>-1}var ibc=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function sbc(e){return ibc.indexOf(e)>-1}Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;Q1.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Xce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:zyc.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function obc(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function abc(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function cbc(e,t,r,n=$yc){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var lbc={ALL:Xce.DiagLogLevel.ALL,VERBOSE:Xce.DiagLogLevel.VERBOSE,DEBUG:Xce.DiagLogLevel.DEBUG,INFO:Xce.DiagLogLevel.INFO,WARN:Xce.DiagLogLevel.WARN,ERROR:Xce.DiagLogLevel.ERROR,NONE:Xce.DiagLogLevel.NONE};function ubc(e,t,r){let n=r[e];if(typeof n=="string"){let a=lbc[n.toUpperCase()];a!=null&&(t[e]=a)}}function kZr(e){let t={};for(let r in Q1.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":ubc(n,t,e);break;default:if(tbc(n))obc(n,t,e);else if(nbc(n))abc(n,t,e);else if(sbc(n))cbc(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}Q1.parseEnvironment=kZr;function gbc(){return typeof process<"u"&&process&&process.env?kZr(process.env):kZr(qyc._globalThis)}Q1.getEnvWithoutDefaults=gbc});var YPi=H(k2t=>{"use strict";Object.defineProperty(k2t,"__esModule",{value:!0});k2t.getEnv=void 0;var Abc=wt("os"),HPi=xZr();function dbc(){let e=(0,HPi.parseEnvironment)(process.env);return Object.assign({HOSTNAME:Abc.hostname()},HPi.DEFAULT_ENVIRONMENT,e)}k2t.getEnv=dbc});var QPi=H(x2t=>{"use strict";Object.defineProperty(x2t,"__esModule",{value:!0});x2t._globalThis=void 0;x2t._globalThis=typeof globalThis=="object"?globalThis:global});var JPi=H(G2t=>{"use strict";Object.defineProperty(G2t,"__esModule",{value:!0});G2t.hexToBase64=void 0;function XPi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}var pbc=Buffer.alloc(8),fbc=Buffer.alloc(16);function Ibc(e){let t;e.length===16?t=pbc:e.length===32?t=fbc:t=Buffer.alloc(e.length/2);let r=0;for(let n=0;n{"use strict";Object.defineProperty(Z2t,"__esModule",{value:!0});Z2t.RandomIdGenerator=void 0;var hbc=8,KPi=16,GZr=class{constructor(){this.generateTraceId=UPi(KPi),this.generateSpanId=UPi(hbc)}};Z2t.RandomIdGenerator=GZr;var F2t=Buffer.allocUnsafe(KPi);function UPi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(F2t[e-1]=1);return F2t.toString("hex",0,e)}}});var zPi=H(L2t=>{"use strict";Object.defineProperty(L2t,"__esModule",{value:!0});L2t.otperformance=void 0;var mbc=wt("perf_hooks");L2t.otperformance=mbc.performance});var P2t=H(V2t=>{"use strict";Object.defineProperty(V2t,"__esModule",{value:!0});V2t.VERSION=void 0;V2t.VERSION="1.16.0"});var qPi=H(W2t=>{"use strict";Object.defineProperty(W2t,"__esModule",{value:!0});W2t.SDK_INFO=void 0;var Cbc=P2t(),SKe=Hce();W2t.SDK_INFO={[SKe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:"opentelemetry",[SKe.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"node",[SKe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:SKe.TelemetrySdkLanguageValues.NODEJS,[SKe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:Cbc.VERSION}});var $Pi=H(O2t=>{"use strict";Object.defineProperty(O2t,"__esModule",{value:!0});O2t.unrefTimer=void 0;function _bc(e){e.unref()}O2t.unrefTimer=_bc});var eWi=H(EO=>{"use strict";var ybc=EO&&EO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LCe=EO&&EO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&ybc(t,e,r)};Object.defineProperty(EO,"__esModule",{value:!0});LCe(YPi(),EO);LCe(QPi(),EO);LCe(JPi(),EO);LCe(jPi(),EO);LCe(zPi(),EO);LCe(qPi(),EO);LCe($Pi(),EO)});var FZr=H(VCe=>{"use strict";var bbc=VCe&&VCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ebc=VCe&&VCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bbc(t,e,r)};Object.defineProperty(VCe,"__esModule",{value:!0});Ebc(eWi(),VCe)});var iWi=H(WE=>{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.addHrTimes=WE.isTimeInput=WE.isTimeInputHrTime=WE.hrTimeToMicroseconds=WE.hrTimeToMilliseconds=WE.hrTimeToNanoseconds=WE.hrTimeToTimeStamp=WE.hrTimeDuration=WE.timeInputToHrTime=WE.hrTime=WE.getTimeOrigin=WE.millisToHrTime=void 0;var ZZr=FZr(),tWi=9,Sbc=6,vbc=Math.pow(10,Sbc),M2t=Math.pow(10,tWi);function vKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*vbc);return[r,n]}WE.millisToHrTime=vKe;function LZr(){let e=ZZr.otperformance.timeOrigin;if(typeof e!="number"){let t=ZZr.otperformance;e=t.timing&&t.timing.fetchStart}return e}WE.getTimeOrigin=LZr;function rWi(e){let t=vKe(LZr()),r=vKe(typeof e=="number"?e:ZZr.otperformance.now());return nWi(t,r)}WE.hrTime=rWi;function Bbc(e){if(VZr(e))return e;if(typeof e=="number")return e=M2t&&(r[1]-=M2t,r[0]+=1),r}WE.addHrTimes=nWi});var oWi=H(sWi=>{"use strict";Object.defineProperty(sWi,"__esModule",{value:!0})});var aWi=H(BKe=>{"use strict";Object.defineProperty(BKe,"__esModule",{value:!0});BKe.ExportResultCode=void 0;var xbc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(xbc=BKe.ExportResultCode||(BKe.ExportResultCode={}))});var lWi=H(H2t=>{"use strict";Object.defineProperty(H2t,"__esModule",{value:!0});H2t.CompositePropagator=void 0;var cWi=(GI(),vi(xI)),PZr=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){cWi.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){cWi.diag.warn(`Failed to inject with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};H2t.CompositePropagator=PZr});var uWi=H(wDe=>{"use strict";Object.defineProperty(wDe,"__esModule",{value:!0});wDe.validateValue=wDe.validateKey=void 0;var WZr="[_0-9a-z-*/]",Gbc=`[a-z]${WZr}{0,255}`,Fbc=`[a-z0-9]${WZr}{0,240}@[a-z]${WZr}{0,13}`,Zbc=new RegExp(`^(?:${Gbc}|${Fbc})$`),Lbc=/^[ -~]{0,255}[!-~]$/,Vbc=/,|=/;function Pbc(e){return Zbc.test(e)}wDe.validateKey=Pbc;function Wbc(e){return Lbc.test(e)&&!Vbc.test(e)}wDe.validateValue=Wbc});var MZr=H(Y2t=>{"use strict";Object.defineProperty(Y2t,"__esModule",{value:!0});Y2t.TraceState=void 0;var gWi=uWi(),AWi=32,Obc=512,dWi=",",pWi="=",OZr=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+pWi+this.get(r)),t),[]).join(dWi)}_parse(t){t.length>Obc||(this._internalState=t.split(dWi).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(pWi);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,gWi.validateKey)(l)&&(0,gWi.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>AWi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,AWi))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};Y2t.TraceState=OZr});var IWi=H(OG=>{"use strict";Object.defineProperty(OG,"__esModule",{value:!0});OG.W3CTraceContextPropagator=OG.parseTraceParent=OG.TRACE_STATE_HEADER=OG.TRACE_PARENT_HEADER=void 0;var Q2t=(GI(),vi(xI)),Mbc=bKe(),Hbc=MZr();OG.TRACE_PARENT_HEADER="traceparent";OG.TRACE_STATE_HEADER="tracestate";var Ybc="00",Qbc="(?!ff)[\\da-f]{2}",Xbc="(?![0]{32})[\\da-f]{32}",Jbc="(?![0]{16})[\\da-f]{16}",Ubc="[\\da-f]{2}",Kbc=new RegExp(`^\\s?(${Qbc})-(${Xbc})-(${Jbc})-(${Ubc})(-.*)?\\s?$`);function fWi(e){let t=Kbc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}OG.parseTraceParent=fWi;var HZr=class{inject(t,r,n){let a=Q2t.trace.getSpanContext(t);if(!a||(0,Mbc.isTracingSuppressed)(t)||!(0,Q2t.isSpanContextValid)(a))return;let o=`${Ybc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||Q2t.TraceFlags.NONE).toString(16)}`;n.set(r,OG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,OG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,OG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=fWi(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,OG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new Hbc.TraceState(typeof f=="string"?f:void 0)}return Q2t.trace.setSpanContext(t,l)}fields(){return[OG.TRACE_PARENT_HEADER,OG.TRACE_STATE_HEADER]}};OG.W3CTraceContextPropagator=HZr});var mWi=H(hWi=>{"use strict";Object.defineProperty(hWi,"__esModule",{value:!0})});var CWi=H(h4=>{"use strict";Object.defineProperty(h4,"__esModule",{value:!0});h4.getRPCMetadata=h4.deleteRPCMetadata=h4.setRPCMetadata=h4.RPCType=void 0;var jbc=(GI(),vi(xI)),YZr=(0,jbc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),zbc;(function(e){e.HTTP="http"})(zbc=h4.RPCType||(h4.RPCType={}));function qbc(e,t){return e.setValue(YZr,t)}h4.setRPCMetadata=qbc;function $bc(e){return e.deleteValue(YZr)}h4.deleteRPCMetadata=$bc;function eEc(e){return e.getValue(YZr)}h4.getRPCMetadata=eEc});var XZr=H(X2t=>{"use strict";Object.defineProperty(X2t,"__esModule",{value:!0});X2t.AlwaysOffSampler=void 0;var tEc=(GI(),vi(xI)),QZr=class{shouldSample(){return{decision:tEc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};X2t.AlwaysOffSampler=QZr});var UZr=H(J2t=>{"use strict";Object.defineProperty(J2t,"__esModule",{value:!0});J2t.AlwaysOnSampler=void 0;var rEc=(GI(),vi(xI)),JZr=class{shouldSample(){return{decision:rEc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};J2t.AlwaysOnSampler=JZr});var yWi=H(K2t=>{"use strict";Object.defineProperty(K2t,"__esModule",{value:!0});K2t.ParentBasedSampler=void 0;var U2t=(GI(),vi(xI)),nEc=NZr(),_Wi=XZr(),KZr=UZr(),jZr=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,nEc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new KZr.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new KZr.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new _Wi.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new KZr.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new _Wi.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=U2t.trace.getSpanContext(t);return!A||!(0,U2t.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&U2t.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&U2t.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};K2t.ParentBasedSampler=jZr});var bWi=H(j2t=>{"use strict";Object.defineProperty(j2t,"__esModule",{value:!0});j2t.TraceIdRatioBasedSampler=void 0;var zZr=(GI(),vi(xI)),qZr=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,zZr.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};j2t.TraceIdRatioBasedSampler=qZr});var wWi=H(z2t=>{"use strict";Object.defineProperty(z2t,"__esModule",{value:!0});z2t.isPlainObject=void 0;var iEc="[object Object]",sEc="[object Null]",oEc="[object Undefined]",aEc=Function.prototype,EWi=aEc.toString,cEc=EWi.call(Object),lEc=uEc(Object.getPrototypeOf,Object),SWi=Object.prototype,vWi=SWi.hasOwnProperty,PCe=Symbol?Symbol.toStringTag:void 0,BWi=SWi.toString;function uEc(e,t){return function(r){return e(t(r))}}function gEc(e){if(!AEc(e)||dEc(e)!==iEc)return!1;let t=lEc(e);if(t===null)return!0;let r=vWi.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&EWi.call(r)===cEc}z2t.isPlainObject=gEc;function AEc(e){return e!=null&&typeof e=="object"}function dEc(e){return e==null?e===void 0?oEc:sEc:PCe&&PCe in Object(e)?pEc(e):fEc(e)}function pEc(e){let t=vWi.call(e,PCe),r=e[PCe],n=!1;try{e[PCe]=void 0,n=!0}catch{}let a=BWi.call(e);return n&&(t?e[PCe]=r:delete e[PCe]),a}function fEc(e){return BWi.call(e)}});var kWi=H(eSt=>{"use strict";Object.defineProperty(eSt,"__esModule",{value:!0});eSt.merge=void 0;var TWi=wWi(),IEc=20;function hEc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=NWi(t,e.shift(),0,r);return t}eSt.merge=hEc;function $Zr(e){return $2t(e)?e.slice():e}function NWi(e,t,r=0,n){let a;if(!(r>IEc)){if(r++,q2t(e)||q2t(t)||DWi(t))a=$Zr(t);else if($2t(e)){if(a=e.slice(),$2t(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(RWi(e,f,n)||RWi(t,f,n))delete a[f];else{if(wKe(C)&&wKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=NWi(a[f],I,r,n)}}}}else a=t;return a}}function RWi(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function mEc(e,t){return!(!(0,TWi.isPlainObject)(e)||!(0,TWi.isPlainObject)(t))}});var xWi=H(TDe=>{"use strict";Object.defineProperty(TDe,"__esModule",{value:!0});TDe.callWithTimeout=TDe.TimeoutError=void 0;var tSt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};TDe.TimeoutError=tSt;function CEc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new tSt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}TDe.callWithTimeout=CEc});var FWi=H(RDe=>{"use strict";Object.defineProperty(RDe,"__esModule",{value:!0});RDe.isUrlIgnored=RDe.urlMatches=void 0;function GWi(e,t){return typeof t=="string"?e===t:!!e.match(t)}RDe.urlMatches=GWi;function _Ec(e,t){if(!t)return!1;for(let r of t)if(GWi(e,r))return!0;return!1}RDe.isUrlIgnored=_Ec});var ZWi=H(rSt=>{"use strict";Object.defineProperty(rSt,"__esModule",{value:!0});rSt.isWrapped=void 0;function yEc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}rSt.isWrapped=yEc});var LWi=H(nSt=>{"use strict";Object.defineProperty(nSt,"__esModule",{value:!0});nSt.Deferred=void 0;var eLr=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};nSt.Deferred=eLr});var VWi=H(iSt=>{"use strict";Object.defineProperty(iSt,"__esModule",{value:!0});iSt.BindOnceFuture=void 0;var bEc=LWi(),tLr=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new bEc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};iSt.BindOnceFuture=tLr});var WWi=H(sSt=>{"use strict";Object.defineProperty(sSt,"__esModule",{value:!0});sSt._export=void 0;var PWi=(GI(),vi(xI)),EEc=bKe();function SEc(e,t){return new Promise(r=>{PWi.context.with((0,EEc.suppressTracing)(PWi.context.active()),()=>{e.export(t,n=>{r(n)})})})}sSt._export=SEc});var AH=H(vm=>{"use strict";var vEc=vm&&vm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ab=vm&&vm.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&vEc(t,e,r)};Object.defineProperty(vm,"__esModule",{value:!0});vm.internal=vm.baggageUtils=void 0;ab(GPi(),vm);ab(FPi(),vm);ab(WPi(),vm);ab(NZr(),vm);ab(RZr(),vm);ab(iWi(),vm);ab(oWi(),vm);ab(aWi(),vm);ab(P2t(),vm);vm.baggageUtils=SZr();ab(FZr(),vm);ab(lWi(),vm);ab(IWi(),vm);ab(mWi(),vm);ab(CWi(),vm);ab(XZr(),vm);ab(UZr(),vm);ab(yWi(),vm);ab(bWi(),vm);ab(bKe(),vm);ab(MZr(),vm);ab(xZr(),vm);ab(kWi(),vm);ab(DZr(),vm);ab(xWi(),vm);ab(FWi(),vm);ab(ZWi(),vm);ab(VWi(),vm);ab(P2t(),vm);var BEc=WWi();vm.internal={_export:BEc._export}});var OWi=H(oSt=>{"use strict";Object.defineProperty(oSt,"__esModule",{value:!0});oSt.defaultServiceName=void 0;function wEc(){return`unknown_service:${process.argv0}`}oSt.defaultServiceName=wEc});var rLr=H(NDe=>{"use strict";Object.defineProperty(NDe,"__esModule",{value:!0});NDe.normalizeType=NDe.normalizeArch=void 0;var TEc=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};NDe.normalizeArch=TEc;var REc=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};NDe.normalizeType=REc});var cSt=H(aSt=>{"use strict";Object.defineProperty(aSt,"__esModule",{value:!0});aSt.execAsync=void 0;var NEc=wt("child_process"),DEc=wt("util");aSt.execAsync=DEc.promisify(NEc.exec)});var MWi=H(lSt=>{"use strict";Object.defineProperty(lSt,"__esModule",{value:!0});lSt.getMachineId=void 0;var kEc=cSt(),xEc=(GI(),vi(xI));async function GEc(){try{let t=(await(0,kEc.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find(n=>n.includes("IOPlatformUUID"));if(!t)return"";let r=t.split('" = "');if(r.length===2)return r[1].slice(0,-1)}catch(e){xEc.diag.debug(`error reading machine id: ${e}`)}return""}lSt.getMachineId=GEc});var HWi=H(uSt=>{"use strict";Object.defineProperty(uSt,"__esModule",{value:!0});uSt.getMachineId=void 0;var FEc=wt("fs"),ZEc=(GI(),vi(xI));async function LEc(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await FEc.promises.readFile(t,{encoding:"utf8"})).trim()}catch(r){ZEc.diag.debug(`error reading machine id: ${r}`)}return""}uSt.getMachineId=LEc});var QWi=H(gSt=>{"use strict";Object.defineProperty(gSt,"__esModule",{value:!0});gSt.getMachineId=void 0;var VEc=wt("fs"),PEc=cSt(),YWi=(GI(),vi(xI));async function WEc(){try{return(await VEc.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,PEc.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}return""}gSt.getMachineId=WEc});var JWi=H(ASt=>{"use strict";Object.defineProperty(ASt,"__esModule",{value:!0});ASt.getMachineId=void 0;var XWi=wt("process"),OEc=cSt(),MEc=(GI(),vi(xI));async function HEc(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";XWi.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in XWi.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let n=(await(0,OEc.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(n.length===2)return n[1].trim()}catch(r){MEc.diag.debug(`error reading machine id: ${r}`)}return""}ASt.getMachineId=HEc});var UWi=H(dSt=>{"use strict";Object.defineProperty(dSt,"__esModule",{value:!0});dSt.getMachineId=void 0;var YEc=(GI(),vi(xI));async function QEc(){return YEc.diag.debug("could not read machine-id: unsupported platform"),""}dSt.getMachineId=QEc});var KWi=H(Kee=>{"use strict";Object.defineProperty(Kee,"__esModule",{value:!0});Kee.getMachineId=void 0;var XEc=wt("process"),DDe;Kee.getMachineId=DDe;switch(XEc.platform){case"darwin":Kee.getMachineId=DDe=MWi().getMachineId;break;case"linux":Kee.getMachineId=DDe=HWi().getMachineId;break;case"freebsd":Kee.getMachineId=DDe=QWi().getMachineId;break;case"win32":Kee.getMachineId=DDe=JWi().getMachineId;break;default:Kee.getMachineId=DDe=UWi().getMachineId}});var sLr=H(pSt=>{"use strict";Object.defineProperty(pSt,"__esModule",{value:!0});pSt.hostDetectorSync=void 0;var nLr=Hce(),JEc=WCe(),jWi=wt("os"),UEc=rLr(),KEc=KWi(),iLr=class{detect(t){let r={[nLr.SemanticResourceAttributes.HOST_NAME]:(0,jWi.hostname)(),[nLr.SemanticResourceAttributes.HOST_ARCH]:(0,UEc.normalizeArch)((0,jWi.arch)())};return new JEc.Resource(r,this._getAsyncAttributes())}_getAsyncAttributes(){return(0,KEc.getMachineId)().then(t=>{let r={};return t&&(r[nLr.SemanticResourceAttributes.HOST_ID]=t),r})}};pSt.hostDetectorSync=new iLr});var zWi=H(fSt=>{"use strict";Object.defineProperty(fSt,"__esModule",{value:!0});fSt.hostDetector=void 0;var jEc=sLr(),oLr=class{detect(t){return Promise.resolve(jEc.hostDetectorSync.detect(t))}};fSt.hostDetector=new oLr});var cLr=H(ISt=>{"use strict";Object.defineProperty(ISt,"__esModule",{value:!0});ISt.osDetectorSync=void 0;var qWi=Hce(),zEc=WCe(),$Wi=wt("os"),qEc=rLr(),aLr=class{detect(t){let r={[qWi.SemanticResourceAttributes.OS_TYPE]:(0,qEc.normalizeType)((0,$Wi.platform)()),[qWi.SemanticResourceAttributes.OS_VERSION]:(0,$Wi.release)()};return new zEc.Resource(r)}};ISt.osDetectorSync=new aLr});var eOi=H(hSt=>{"use strict";Object.defineProperty(hSt,"__esModule",{value:!0});hSt.osDetector=void 0;var $Ec=cLr(),lLr=class{detect(t){return Promise.resolve($Ec.osDetectorSync.detect(t))}};hSt.osDetector=new lLr});var gLr=H(mSt=>{"use strict";Object.defineProperty(mSt,"__esModule",{value:!0});mSt.processDetectorSync=void 0;var e1c=(GI(),vi(xI)),jee=Hce(),t1c=WCe(),r1c=wt("os"),uLr=class{detect(t){let r={[jee.SemanticResourceAttributes.PROCESS_PID]:process.pid,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_NAME]:process.title,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_PATH]:process.execPath,[jee.SemanticResourceAttributes.PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[jee.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:process.versions.node,[jee.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"nodejs",[jee.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(r[jee.SemanticResourceAttributes.PROCESS_COMMAND]=process.argv[1]);try{let n=r1c.userInfo();r[jee.SemanticResourceAttributes.PROCESS_OWNER]=n.username}catch(n){e1c.diag.debug(`error obtaining process owner: ${n}`)}return new t1c.Resource(r)}};mSt.processDetectorSync=new uLr});var tOi=H(CSt=>{"use strict";Object.defineProperty(CSt,"__esModule",{value:!0});CSt.processDetector=void 0;var n1c=gLr(),ALr=class{detect(t){return Promise.resolve(n1c.processDetectorSync.detect(t))}};CSt.processDetector=new ALr});var rOi=H(SO=>{"use strict";var i1c=SO&&SO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OCe=SO&&SO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&i1c(t,e,r)};Object.defineProperty(SO,"__esModule",{value:!0});OCe(OWi(),SO);OCe(zWi(),SO);OCe(eOi(),SO);OCe(sLr(),SO);OCe(cLr(),SO);OCe(tOi(),SO);OCe(gLr(),SO)});var dLr=H(MCe=>{"use strict";var s1c=MCe&&MCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o1c=MCe&&MCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&s1c(t,e,r)};Object.defineProperty(MCe,"__esModule",{value:!0});o1c(rOi(),MCe)});var WCe=H(_St=>{"use strict";Object.defineProperty(_St,"__esModule",{value:!0});_St.Resource=void 0;var nOi=(GI(),vi(xI)),HCe=Hce(),pLr=AH(),a1c=dLr(),TKe=class e{constructor(t,r){var n;this._attributes=t,this.asyncAttributesPending=r!=null,this._syncAttributes=(n=this._attributes)!==null&&n!==void 0?n:{},this._asyncAttributesPromise=r?.then(a=>(this._attributes=Object.assign({},this._attributes,a),this.asyncAttributesPending=!1,a),a=>(nOi.diag.debug("a resource's async attributes promise rejected: %s",a),this.asyncAttributesPending=!1,{}))}static empty(){return e.EMPTY}static default(){return new e({[HCe.SemanticResourceAttributes.SERVICE_NAME]:(0,a1c.defaultServiceName)(),[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]})}get attributes(){var t;return this.asyncAttributesPending&&nOi.diag.error("Accessing resource attributes before async attributes settled"),(t=this._attributes)!==null&&t!==void 0?t:{}}async waitForAsyncAttributes(){this.asyncAttributesPending&&await this._asyncAttributesPromise}merge(t){var r;if(!t)return this;let n=Object.assign(Object.assign({},this._syncAttributes),(r=t._syncAttributes)!==null&&r!==void 0?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(n);let a=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then(([o,l])=>{var A;return Object.assign(Object.assign(Object.assign(Object.assign({},this._syncAttributes),o),(A=t._syncAttributes)!==null&&A!==void 0?A:t.attributes),l)});return new e(n,a)}};_St.Resource=TKe;TKe.EMPTY=new TKe({})});var sOi=H(iOi=>{"use strict";Object.defineProperty(iOi,"__esModule",{value:!0})});var aOi=H(oOi=>{"use strict";Object.defineProperty(oOi,"__esModule",{value:!0})});var lOi=H(cOi=>{"use strict";Object.defineProperty(cOi,"__esModule",{value:!0})});var uOi=H(ySt=>{"use strict";Object.defineProperty(ySt,"__esModule",{value:!0});ySt.browserDetector=void 0;var c1c=bSt(),fLr=class{detect(t){return Promise.resolve(c1c.browserDetectorSync.detect(t))}};ySt.browserDetector=new fLr});var hLr=H(ESt=>{"use strict";Object.defineProperty(ESt,"__esModule",{value:!0});ESt.envDetectorSync=void 0;var l1c=(GI(),vi(xI)),u1c=AH(),g1c=Hce(),A1c=WCe(),ILr=class{constructor(){this._MAX_LENGTH=255,this._COMMA_SEPARATOR=",",this._LABEL_KEY_VALUE_SPLITTER="=",this._ERROR_MESSAGE_INVALID_CHARS="should be a ASCII string with a length greater than 0 and not exceed "+this._MAX_LENGTH+" characters.",this._ERROR_MESSAGE_INVALID_VALUE="should be a ASCII string with a length not exceed "+this._MAX_LENGTH+" characters."}detect(t){let r={},n=(0,u1c.getEnv)(),a=n.OTEL_RESOURCE_ATTRIBUTES,o=n.OTEL_SERVICE_NAME;if(a)try{let l=this._parseResourceAttributes(a);Object.assign(r,l)}catch(l){l1c.diag.debug(`EnvDetector failed: ${l.message}`)}return o&&(r[g1c.SemanticResourceAttributes.SERVICE_NAME]=o),new A1c.Resource(r)}_parseResourceAttributes(t){if(!t)return{};let r={},n=t.split(this._COMMA_SEPARATOR,-1);for(let a of n){let o=a.split(this._LABEL_KEY_VALUE_SPLITTER,-1);if(o.length!==2)continue;let[l,A]=o;if(l=l.trim(),A=A.trim().split(/^"|"$/).join(""),!this._isValidAndNotEmpty(l))throw new Error(`Attribute key ${this._ERROR_MESSAGE_INVALID_CHARS}`);if(!this._isValid(A))throw new Error(`Attribute value ${this._ERROR_MESSAGE_INVALID_VALUE}`);r[l]=decodeURIComponent(A)}return r}_isValid(t){return t.length<=this._MAX_LENGTH&&this._isBaggageOctetString(t)}_isBaggageOctetString(t){for(let r=0;r126)return!1}return!0}_isValidAndNotEmpty(t){return t.length>0&&this._isValid(t)}};ESt.envDetectorSync=new ILr});var gOi=H(SSt=>{"use strict";Object.defineProperty(SSt,"__esModule",{value:!0});SSt.envDetector=void 0;var d1c=hLr(),mLr=class{detect(t){return Promise.resolve(d1c.envDetectorSync.detect(t))}};SSt.envDetector=new mLr});var AOi=H(BSt=>{"use strict";Object.defineProperty(BSt,"__esModule",{value:!0});BSt.browserDetectorSync=void 0;var vSt=Hce(),CLr=bSt(),p1c=(GI(),vi(xI)),_Lr=class{detect(t){if(!(typeof navigator<"u"))return CLr.Resource.empty();let n={[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Web Browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:navigator.userAgent};return this._getResourceAttributes(n,t)}_getResourceAttributes(t,r){return t[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]===""?(p1c.diag.debug("BrowserDetector failed: Unable to find required browser resources. "),CLr.Resource.empty()):new CLr.Resource(Object.assign({},t))}};BSt.browserDetectorSync=new _Lr});var dOi=H(Dj=>{"use strict";var f1c=Dj&&Dj.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),wSt=Dj&&Dj.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&f1c(t,e,r)};Object.defineProperty(Dj,"__esModule",{value:!0});wSt(uOi(),Dj);wSt(gOi(),Dj);wSt(AOi(),Dj);wSt(hLr(),Dj)});var pOi=H(TSt=>{"use strict";Object.defineProperty(TSt,"__esModule",{value:!0});TSt.isPromiseLike=void 0;var I1c=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";TSt.isPromiseLike=I1c});var IOi=H(xDe=>{"use strict";Object.defineProperty(xDe,"__esModule",{value:!0});xDe.detectResourcesSync=xDe.detectResources=void 0;var RKe=WCe(),kDe=(GI(),vi(xI)),h1c=pOi(),m1c=async(e={})=>{let t=await Promise.all((e.detectors||[]).map(async r=>{try{let n=await r.detect(e);return kDe.diag.debug(`${r.constructor.name} found resource.`,n),n}catch(n){return kDe.diag.debug(`${r.constructor.name} failed: ${n.message}`),RKe.Resource.empty()}}));return fOi(t),t.reduce((r,n)=>r.merge(n),RKe.Resource.empty())};xDe.detectResources=m1c;var C1c=(e={})=>{var t;let r=((t=e.detectors)!==null&&t!==void 0?t:[]).map(a=>{try{let o=a.detect(e),l;if((0,h1c.isPromiseLike)(o)){let A=async()=>(await o).attributes;l=new RKe.Resource({},A())}else l=o;return l.waitForAsyncAttributes?l.waitForAsyncAttributes().then(()=>kDe.diag.debug(`${a.constructor.name} found resource.`,l)):kDe.diag.debug(`${a.constructor.name} found resource.`,l),l}catch(o){return kDe.diag.error(`${a.constructor.name} failed: ${o.message}`),RKe.Resource.empty()}}),n=r.reduce((a,o)=>a.merge(o),RKe.Resource.empty());return n.waitForAsyncAttributes&&n.waitForAsyncAttributes().then(()=>{fOi(r)}),n};xDe.detectResourcesSync=C1c;var fOi=e=>{e.forEach(t=>{if(Object.keys(t.attributes).length>0){let r=JSON.stringify(t.attributes,null,4);kDe.diag.verbose(r)}})}});var bSt=H(vO=>{"use strict";var _1c=vO&&vO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),YCe=vO&&vO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&_1c(t,e,r)};Object.defineProperty(vO,"__esModule",{value:!0});YCe(WCe(),vO);YCe(sOi(),vO);YCe(dLr(),vO);YCe(aOi(),vO);YCe(lOi(),vO);YCe(dOi(),vO);YCe(IOi(),vO)});var ELr=H(RSt=>{"use strict";Object.defineProperty(RSt,"__esModule",{value:!0});RSt.LogRecord=void 0;var y1c=(GI(),vi(xI)),NKe=(GI(),vi(xI)),yLr=AH(),bLr=class{constructor(t,r){this.attributes={},this._isReadonly=!1;let{timestamp:n,observedTimestamp:a,severityNumber:o,severityText:l,body:A,attributes:f={},context:I}=r,C=Date.now();if(this.hrTime=(0,yLr.timeInputToHrTime)(n??C),this.hrTimeObserved=(0,yLr.timeInputToHrTime)(a??C),I){let b=NKe.trace.getSpanContext(I);b&&NKe.isSpanContextValid(b)&&(this.spanContext=b)}this.severityNumber=o,this.severityText=l,this.body=A,this.resource=t.resource,this.instrumentationScope=t.instrumentationScope,this._logRecordLimits=t.getLogRecordLimits(),this.setAttributes(f)}set severityText(t){this._isLogRecordReadonly()||(this._severityText=t)}get severityText(){return this._severityText}set severityNumber(t){this._isLogRecordReadonly()||(this._severityNumber=t)}get severityNumber(){return this._severityNumber}set body(t){this._isLogRecordReadonly()||(this._body=t)}get body(){return this._body}setAttribute(t,r){return this._isLogRecordReadonly()?this:r===null?this:(typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).length>0&&(this.attributes[t]=r),t.length===0?(NKe.diag.warn(`Invalid attribute key: ${t}`),this):(0,yLr.isAttributeValue)(r)?Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,t)?this:(this.attributes[t]=this._truncateToSize(r),this):(NKe.diag.warn(`Invalid attribute value set for key: ${t}`),this))}setAttributes(t){for(let[r,n]of Object.entries(t))this.setAttribute(r,n);return this}setBody(t){return this.body=t,this}setSeverityNumber(t){return this.severityNumber=t,this}setSeverityText(t){return this.severityText=t,this}makeReadonly(){this._isReadonly=!0}_truncateToSize(t){let r=this._logRecordLimits.attributeValueLengthLimit||0;return r<=0?(NKe.diag.warn(`Attribute value limit must be positive, got ${r}`),t):typeof t=="string"?this._truncateToLimitUtil(t,r):Array.isArray(t)?t.map(n=>typeof n=="string"?this._truncateToLimitUtil(n,r):n):t}_truncateToLimitUtil(t,r){return t.length<=r?t:t.substring(0,r)}_isLogRecordReadonly(){return this._isReadonly&&y1c.diag.warn("Can not execute the operation on emitted log record"),this._isReadonly}};RSt.LogRecord=bLr});var SLr=H(kj=>{"use strict";Object.defineProperty(kj,"__esModule",{value:!0});kj.DEFAULT_EVENT_DOMAIN=kj.mergeConfig=kj.reconfigureLimits=kj.loadDefaultConfig=void 0;var DKe=AH();function hOi(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT},includeTraceContext:!0}}kj.loadDefaultConfig=hOi;function b1c(e){var t,r,n,a,o,l,A,f;let I=Object.assign({},e.logRecordLimits),C=(0,DKe.getEnvWithoutDefaults)();return I.attributeCountLimit=(a=(n=(r=(t=e.logRecordLimits)===null||t===void 0?void 0:t.attributeCountLimit)!==null&&r!==void 0?r:C.OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT)!==null&&n!==void 0?n:C.OTEL_ATTRIBUTE_COUNT_LIMIT)!==null&&a!==void 0?a:DKe.DEFAULT_ATTRIBUTE_COUNT_LIMIT,I.attributeValueLengthLimit=(f=(A=(l=(o=e.logRecordLimits)===null||o===void 0?void 0:o.attributeValueLengthLimit)!==null&&l!==void 0?l:C.OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&A!==void 0?A:C.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&f!==void 0?f:DKe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{logRecordLimits:I})}kj.reconfigureLimits=b1c;function E1c(e){let t=hOi(),r=Object.assign({},t,e);return r.logRecordLimits=Object.assign({},t.logRecordLimits,e.logRecordLimits||{}),r}kj.mergeConfig=E1c;kj.DEFAULT_EVENT_DOMAIN="default"});var BLr=H(NSt=>{"use strict";Object.defineProperty(NSt,"__esModule",{value:!0});NSt.Logger=void 0;var S1c=(GI(),vi(xI)),v1c=ELr(),B1c=SLr(),vLr=class{constructor(t,r,n){this.instrumentationScope=t,this._loggerProvider=n,this._loggerConfig=(0,B1c.mergeConfig)(r),this.resource=n.resource}emit(t){let r=t.context||S1c.context.active(),n=new v1c.LogRecord(this,Object.assign({context:r},t));this.getActiveLogRecordProcessor().onEmit(n,r),n.makeReadonly()}getLogRecordLimits(){return this._loggerConfig.logRecordLimits}getActiveLogRecordProcessor(){return this._loggerProvider.getActiveLogRecordProcessor()}};NSt.Logger=vLr});var mOi=H(DSt=>{"use strict";Object.defineProperty(DSt,"__esModule",{value:!0});DSt.MultiLogRecordProcessor=void 0;var w1c=AH(),wLr=class{constructor(t,r){this.processors=t,this.forceFlushTimeoutMillis=r}async forceFlush(){let t=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(r=>(0,w1c.callWithTimeout)(r.forceFlush(),t)))}onEmit(t){this.processors.forEach(r=>r.onEmit(t))}async shutdown(){await Promise.all(this.processors.map(t=>t.shutdown()))}};DSt.MultiLogRecordProcessor=wLr});var RLr=H(kSt=>{"use strict";Object.defineProperty(kSt,"__esModule",{value:!0});kSt.NoopLogRecordProcessor=void 0;var TLr=class{forceFlush(){return Promise.resolve()}onEmit(t){}shutdown(){return Promise.resolve()}};kSt.NoopLogRecordProcessor=TLr});var EOi=H(QCe=>{"use strict";Object.defineProperty(QCe,"__esModule",{value:!0});QCe.LoggerProvider=QCe.DEFAULT_LOGGER_NAME=void 0;var kKe=(GI(),vi(xI)),T1c=bDe(),COi=bSt(),_Oi=AH(),R1c=BLr(),yOi=SLr(),bOi=mOi(),N1c=RLr();QCe.DEFAULT_LOGGER_NAME="unknown";var NLr=class{constructor(t={}){this._loggers=new Map,this._registeredLogRecordProcessors=[];let{resource:r=COi.Resource.empty(),logRecordLimits:n,forceFlushTimeoutMillis:a}=(0,_Oi.merge)({},(0,yOi.loadDefaultConfig)(),(0,yOi.reconfigureLimits)(t));this.resource=COi.Resource.default().merge(r),this._config={logRecordLimits:n,resource:this.resource,forceFlushTimeoutMillis:a},this._shutdownOnce=new _Oi.BindOnceFuture(this._shutdown,this),this._activeProcessor=new bOi.MultiLogRecordProcessor([new N1c.NoopLogRecordProcessor],a)}getLogger(t,r,n){if(this._shutdownOnce.isCalled)return kKe.diag.warn("A shutdown LoggerProvider cannot provide a Logger"),T1c.NOOP_LOGGER;t||kKe.diag.warn("Logger requested without instrumentation scope name.");let a=t||QCe.DEFAULT_LOGGER_NAME,o=`${a}@${r||""}:${n?.schemaUrl||""}`;return this._loggers.has(o)||this._loggers.set(o,new R1c.Logger({name:a,version:r,schemaUrl:n?.schemaUrl},{logRecordLimits:this._config.logRecordLimits},this)),this._loggers.get(o)}addLogRecordProcessor(t){this._registeredLogRecordProcessors.length===0&&this._activeProcessor.shutdown().catch(r=>kKe.diag.error("Error while trying to shutdown current log record processor",r)),this._registeredLogRecordProcessors.push(t),this._activeProcessor=new bOi.MultiLogRecordProcessor(this._registeredLogRecordProcessors,this._config.forceFlushTimeoutMillis)}forceFlush(){return this._shutdownOnce.isCalled?(kKe.diag.warn("invalid attempt to force flush after LoggerProvider shutdown"),this._shutdownOnce.promise):this._activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(kKe.diag.warn("shutdown may only be called once per LoggerProvider"),this._shutdownOnce.promise):this._shutdownOnce.call()}getActiveLogRecordProcessor(){return this._activeProcessor}getActiveLoggers(){return this._loggers}_shutdown(){return this._activeProcessor.shutdown()}};QCe.LoggerProvider=NLr});var SOi=H(xSt=>{"use strict";Object.defineProperty(xSt,"__esModule",{value:!0});xSt.ConsoleLogRecordExporter=void 0;var D1c=AH(),k1c=AH(),DLr=class{export(t,r){this._sendLogRecords(t,r)}shutdown(){return Promise.resolve()}_exportInfo(t){var r,n,a;return{timestamp:(0,D1c.hrTimeToMicroseconds)(t.hrTime),traceId:(r=t.spanContext)===null||r===void 0?void 0:r.traceId,spanId:(n=t.spanContext)===null||n===void 0?void 0:n.spanId,traceFlags:(a=t.spanContext)===null||a===void 0?void 0:a.traceFlags,severityText:t.severityText,severityNumber:t.severityNumber,body:t.body,attributes:t.attributes}}_sendLogRecords(t,r){for(let n of t)console.dir(this._exportInfo(n),{depth:3});r?.({code:k1c.ExportResultCode.SUCCESS})}};xSt.ConsoleLogRecordExporter=DLr});var vOi=H(GSt=>{"use strict";Object.defineProperty(GSt,"__esModule",{value:!0});GSt.SimpleLogRecordProcessor=void 0;var kLr=AH(),xLr=class{constructor(t){this._exporter=t,this._shutdownOnce=new kLr.BindOnceFuture(this._shutdown,this)}onEmit(t){this._shutdownOnce.isCalled||this._exporter.export([t],r=>{var n;if(r.code!==kLr.ExportResultCode.SUCCESS){(0,kLr.globalErrorHandler)((n=r.error)!==null&&n!==void 0?n:new Error(`SimpleLogRecordProcessor: log record export failed (status ${r})`));return}})}forceFlush(){return Promise.resolve()}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};GSt.SimpleLogRecordProcessor=xLr});var wOi=H(FSt=>{"use strict";Object.defineProperty(FSt,"__esModule",{value:!0});FSt.InMemoryLogRecordExporter=void 0;var BOi=AH(),GLr=class{constructor(){this._finishedLogRecords=[],this._stopped=!1}export(t,r){if(this._stopped)return r({code:BOi.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedLogRecords.push(...t),r({code:BOi.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}};FSt.InMemoryLogRecordExporter=GLr});var TOi=H(ZSt=>{"use strict";Object.defineProperty(ZSt,"__esModule",{value:!0});ZSt.BatchLogRecordProcessorBase=void 0;var x1c=(GI(),vi(xI)),GDe=AH(),FLr=class{constructor(t,r){var n,a,o,l;this._exporter=t,this._finishedLogRecords=[];let A=(0,GDe.getEnv)();this._maxExportBatchSize=(n=r?.maxExportBatchSize)!==null&&n!==void 0?n:A.OTEL_BLRP_MAX_EXPORT_BATCH_SIZE,this._maxQueueSize=(a=r?.maxQueueSize)!==null&&a!==void 0?a:A.OTEL_BLRP_MAX_QUEUE_SIZE,this._scheduledDelayMillis=(o=r?.scheduledDelayMillis)!==null&&o!==void 0?o:A.OTEL_BLRP_SCHEDULE_DELAY,this._exportTimeoutMillis=(l=r?.exportTimeoutMillis)!==null&&l!==void 0?l:A.OTEL_BLRP_EXPORT_TIMEOUT,this._shutdownOnce=new GDe.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(x1c.diag.warn("BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}onEmit(t){this._shutdownOnce.isCalled||this._addToBuffer(t)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(t){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(t),this._maybeStartTimer())}_flushAll(){return new Promise((t,r)=>{let n=[],a=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let o=0;o{t()}).catch(r)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((t,r)=>{(0,GDe.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>t()).catch(r)})}_maybeStartTimer(){this._timer===void 0&&(this._timer=setTimeout(()=>{this._flushOneBatch().then(()=>{this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(t=>{(0,GDe.globalErrorHandler)(t)})},this._scheduledDelayMillis),(0,GDe.unrefTimer)(this._timer))}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(t){return new Promise((r,n)=>{this._exporter.export(t,a=>{var o;if(a.code!==GDe.ExportResultCode.SUCCESS){n((o=a.error)!==null&&o!==void 0?o:new Error(`BatchLogRecordProcessorBase: log record export failed (status ${a})`));return}r(a)})})}};ZSt.BatchLogRecordProcessorBase=FLr});var ROi=H(LSt=>{"use strict";Object.defineProperty(LSt,"__esModule",{value:!0});LSt.BatchLogRecordProcessor=void 0;var G1c=TOi(),ZLr=class extends G1c.BatchLogRecordProcessorBase{onShutdown(){}};LSt.BatchLogRecordProcessor=ZLr});var NOi=H(VSt=>{"use strict";Object.defineProperty(VSt,"__esModule",{value:!0});VSt.BatchLogRecordProcessor=void 0;var F1c=ROi();Object.defineProperty(VSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return F1c.BatchLogRecordProcessor}})});var DOi=H(PSt=>{"use strict";Object.defineProperty(PSt,"__esModule",{value:!0});PSt.BatchLogRecordProcessor=void 0;var Z1c=NOi();Object.defineProperty(PSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Z1c.BatchLogRecordProcessor}})});var xKe=H(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.BatchLogRecordProcessor=uD.InMemoryLogRecordExporter=uD.SimpleLogRecordProcessor=uD.ConsoleLogRecordExporter=uD.NoopLogRecordProcessor=uD.LogRecord=uD.Logger=uD.LoggerProvider=void 0;var L1c=EOi();Object.defineProperty(uD,"LoggerProvider",{enumerable:!0,get:function(){return L1c.LoggerProvider}});var V1c=BLr();Object.defineProperty(uD,"Logger",{enumerable:!0,get:function(){return V1c.Logger}});var P1c=ELr();Object.defineProperty(uD,"LogRecord",{enumerable:!0,get:function(){return P1c.LogRecord}});var W1c=RLr();Object.defineProperty(uD,"NoopLogRecordProcessor",{enumerable:!0,get:function(){return W1c.NoopLogRecordProcessor}});var O1c=SOi();Object.defineProperty(uD,"ConsoleLogRecordExporter",{enumerable:!0,get:function(){return O1c.ConsoleLogRecordExporter}});var M1c=vOi();Object.defineProperty(uD,"SimpleLogRecordProcessor",{enumerable:!0,get:function(){return M1c.SimpleLogRecordProcessor}});var H1c=wOi();Object.defineProperty(uD,"InMemoryLogRecordExporter",{enumerable:!0,get:function(){return H1c.InMemoryLogRecordExporter}});var Y1c=DOi();Object.defineProperty(uD,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Y1c.BatchLogRecordProcessor}})});var GKe=H(Jce=>{"use strict";Object.defineProperty(Jce,"__esModule",{value:!0});Jce.isTracingSuppressed=Jce.unsuppressTracing=Jce.suppressTracing=void 0;var Q1c=(GI(),vi(xI)),VLr=(0,Q1c.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function X1c(e){return e.setValue(VLr,!0)}Jce.suppressTracing=X1c;function J1c(e){return e.deleteValue(VLr)}Jce.unsuppressTracing=J1c;function U1c(e){return e.getValue(VLr)===!0}Jce.isTracingSuppressed=U1c});var PLr=H(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.BAGGAGE_MAX_TOTAL_LENGTH=MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=MG.BAGGAGE_HEADER=MG.BAGGAGE_ITEMS_SEPARATOR=MG.BAGGAGE_PROPERTIES_SEPARATOR=MG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;MG.BAGGAGE_KEY_PAIR_SEPARATOR="=";MG.BAGGAGE_PROPERTIES_SEPARATOR=";";MG.BAGGAGE_ITEMS_SEPARATOR=",";MG.BAGGAGE_HEADER="baggage";MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;MG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var WLr=H(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.parseKeyPairsIntoRecord=xj.parsePairKeyValue=xj.getKeyPairs=xj.serializeKeyPairs=void 0;var K1c=(GI(),vi(xI)),XCe=PLr();function j1c(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?XCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>XCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}xj.serializeKeyPairs=j1c;function z1c(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=XCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}xj.getKeyPairs=z1c;function kOi(e){let t=e.split(XCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(XCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,K1c.baggageEntryMetadataFromString)(t.join(XCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}xj.parsePairKeyValue=kOi;function q1c(e){return typeof e!="string"||e.length===0?{}:e.split(XCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>kOi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}xj.parseKeyPairsIntoRecord=q1c});var xOi=H(WSt=>{"use strict";Object.defineProperty(WSt,"__esModule",{value:!0});WSt.W3CBaggagePropagator=void 0;var OLr=(GI(),vi(xI)),$1c=GKe(),JCe=PLr(),MLr=WLr(),HLr=class{inject(t,r,n){let a=OLr.propagation.getBaggage(t);if(!a||(0,$1c.isTracingSuppressed)(t))return;let o=(0,MLr.getKeyPairs)(a).filter(A=>A.length<=JCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,JCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,MLr.serializeKeyPairs)(o);l.length>0&&n.set(r,JCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,JCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(JCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(JCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,MLr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:OLr.propagation.setBaggage(t,OLr.propagation.createBaggage(l))}fields(){return[JCe.BAGGAGE_HEADER]}};WSt.W3CBaggagePropagator=HLr});var GOi=H(OSt=>{"use strict";Object.defineProperty(OSt,"__esModule",{value:!0});OSt.AnchoredClock=void 0;var YLr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};OSt.AnchoredClock=YLr});var POi=H(Uce=>{"use strict";Object.defineProperty(Uce,"__esModule",{value:!0});Uce.isAttributeValue=Uce.isAttributeKey=Uce.sanitizeAttributes=void 0;var FOi=(GI(),vi(xI));function e2c(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!ZOi(r)){FOi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!LOi(n)){FOi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Uce.sanitizeAttributes=e2c;function ZOi(e){return typeof e=="string"&&e.length>0}Uce.isAttributeKey=ZOi;function LOi(e){return e==null?!0:Array.isArray(e)?t2c(e):VOi(e)}Uce.isAttributeValue=LOi;function t2c(e){let t;for(let r of e)if(r!=null){if(!t){if(VOi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function VOi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var QLr=H(MSt=>{"use strict";Object.defineProperty(MSt,"__esModule",{value:!0});MSt.loggingErrorHandler=void 0;var r2c=(GI(),vi(xI));function n2c(){return e=>{r2c.diag.error(i2c(e))}}MSt.loggingErrorHandler=n2c;function i2c(e){return typeof e=="string"?e:JSON.stringify(s2c(e))}function s2c(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var XLr=H(FDe=>{"use strict";Object.defineProperty(FDe,"__esModule",{value:!0});FDe.globalErrorHandler=FDe.setGlobalErrorHandler=void 0;var o2c=QLr(),WOi=(0,o2c.loggingErrorHandler)();function a2c(e){WOi=e}FDe.setGlobalErrorHandler=a2c;function c2c(e){try{WOi(e)}catch{}}FDe.globalErrorHandler=c2c});var JLr=H(FKe=>{"use strict";Object.defineProperty(FKe,"__esModule",{value:!0});FKe.TracesSamplerValues=void 0;var l2c;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(l2c=FKe.TracesSamplerValues||(FKe.TracesSamplerValues={}))});var ULr=H(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.parseEnvironment=LS.DEFAULT_ENVIRONMENT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Kce=(GI(),vi(xI)),u2c=JLr(),g2c=",",A2c=["OTEL_SDK_DISABLED"];function d2c(e){return A2c.indexOf(e)>-1}var p2c=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function f2c(e){return p2c.indexOf(e)>-1}var I2c=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS","OTEL_SEMCONV_STABILITY_OPT_IN"];function h2c(e){return I2c.indexOf(e)>-1}LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;LS.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Kce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:u2c.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative",OTEL_SEMCONV_STABILITY_OPT_IN:[]};function m2c(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function C2c(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function _2c(e,t,r,n=g2c){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var y2c={ALL:Kce.DiagLogLevel.ALL,VERBOSE:Kce.DiagLogLevel.VERBOSE,DEBUG:Kce.DiagLogLevel.DEBUG,INFO:Kce.DiagLogLevel.INFO,WARN:Kce.DiagLogLevel.WARN,ERROR:Kce.DiagLogLevel.ERROR,NONE:Kce.DiagLogLevel.NONE};function b2c(e,t,r){let n=r[e];if(typeof n=="string"){let a=y2c[n.toUpperCase()];a!=null&&(t[e]=a)}}function E2c(e){let t={};for(let r in LS.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":b2c(n,t,e);break;default:if(d2c(n))m2c(n,t,e);else if(f2c(n))C2c(n,t,e);else if(h2c(n))_2c(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}LS.parseEnvironment=E2c});var OOi=H(ZDe=>{"use strict";Object.defineProperty(ZDe,"__esModule",{value:!0});ZDe.getEnvWithoutDefaults=ZDe.getEnv=void 0;var KLr=ULr();function S2c(){let e=(0,KLr.parseEnvironment)(process.env);return Object.assign({},KLr.DEFAULT_ENVIRONMENT,e)}ZDe.getEnv=S2c;function v2c(){return(0,KLr.parseEnvironment)(process.env)}ZDe.getEnvWithoutDefaults=v2c});var MOi=H(HSt=>{"use strict";Object.defineProperty(HSt,"__esModule",{value:!0});HSt._globalThis=void 0;HSt._globalThis=typeof globalThis=="object"?globalThis:global});var jLr=H(YSt=>{"use strict";Object.defineProperty(YSt,"__esModule",{value:!0});YSt.hexToBinary=void 0;function HOi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function B2c(e){let t=new Uint8Array(e.length/2),r=0;for(let n=0;n{"use strict";Object.defineProperty(QSt,"__esModule",{value:!0});QSt.hexToBase64=void 0;var w2c=jLr();function T2c(e){return Buffer.from((0,w2c.hexToBinary)(e)).toString("base64")}QSt.hexToBase64=T2c});var JOi=H(JSt=>{"use strict";Object.defineProperty(JSt,"__esModule",{value:!0});JSt.RandomIdGenerator=void 0;var R2c=8,XOi=16,zLr=class{constructor(){this.generateTraceId=QOi(XOi),this.generateSpanId=QOi(R2c)}};JSt.RandomIdGenerator=zLr;var XSt=Buffer.allocUnsafe(XOi);function QOi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(XSt[e-1]=1);return XSt.toString("hex",0,e)}}});var UOi=H(USt=>{"use strict";Object.defineProperty(USt,"__esModule",{value:!0});USt.otperformance=void 0;var N2c=wt("perf_hooks");USt.otperformance=N2c.performance});var qLr=H(KSt=>{"use strict";Object.defineProperty(KSt,"__esModule",{value:!0});KSt.VERSION=void 0;KSt.VERSION="1.27.0"});function iw(e){for(var t={},r=e.length,n=0;n{});var KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi,D2c,k2c,x2c,G2c,F2c,Z2c,L2c,V2c,P2c,W2c,O2c,M2c,H2c,Y2c,Q2c,X2c,J2c,U2c,K2c,j2c,z2c,q2c,$2c,eSc,tSc,rSc,nSc,iSc,sSc,oSc,aSc,cSc,lSc,uSc,gSc,ASc,dSc,pSc,fSc,ISc,hSc,mSc,CSc,_Sc,ySc,bSc,ESc,SSc,vSc,BSc,wSc,TSc,RSc,NSc,DSc,kSc,xSc,GSc,FSc,ZSc,LSc,VSc,PSc,WSc,OSc,MSc,HSc,YSc,QSc,XSc,JSc,USc,KSc,jSc,zSc,qSc,$Sc,evc,tvc,rvc,nvc,ivc,svc,ovc,avc,cvc,lvc,uvc,gvc,Avc,dvc,pvc,fvc,Ivc,hvc,mvc,Cvc,_vc,yvc,bvc,Evc,Svc,vvc,Bvc,wvc,Tvc,Rvc,Nvc,Dvc,kvc,xvc,Gvc,Fvc,Zvc,Lvc,Vvc,Pvc,Wvc,Ovc,Mvc,Hvc,Yvc,Qvc,Xvc,Jvc,Uvc,Kvc,jvc,zvc,fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi,qvc,$vc,eBc,tBc,rBc,nBc,iBc,sBc,oBc,aBc,cBc,lBc,uBc,gBc,ABc,dBc,pBc,fBc,IBc,hBc,mBc,CBc,_Bc,yBc,bBc,EBc,SBc,vBc,BBc,wBc,TBc,RBc,NBc,DBc,kBc,xBc,GBc,FBc,ZBc,LBc,VBc,PBc,WBc,OBc,MBc,HBc,YBc,QBc,cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi,XBc,JBc,UBc,KBc,jBc,zBc,qBc,$Bc,ewc,twc,rwc,nwc,CHi,_Hi,yHi,bHi,EHi,iwc,swc,owc,awc,cwc,lwc,SHi,vHi,BHi,uwc,gwc,Awc,dwc,wHi,THi,RHi,NHi,pwc,fwc,Iwc,hwc,mwc,DHi,kHi,xHi,GHi,FHi,ZHi,LHi,Cwc,_wc,ywc,bwc,Ewc,Swc,vwc,Bwc,VHi,PHi,WHi,OHi,MHi,wwc,Twc,Rwc,Nwc,Dwc,kwc,HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi,xwc,Gwc,Fwc,Zwc,Lwc,Vwc,Pwc,Wwc,Owc,Mwc,Hwc,Ywc,Qwc,Xwc,Jwc,Uwc,Kwc,jwc,zwc,qwc,$wc,eTc,uYi,gYi,AYi,dYi,pYi,tTc,rTc,nTc,iTc,sTc,oTc,fYi,IYi,aTc,cTc,lTc,hYi,mYi,uTc,gTc,ATc,CYi,_Yi,yYi,bYi,EYi,SYi,vYi,BYi,wYi,TYi,RYi,NYi,DYi,kYi,xYi,GYi,FYi,dTc,pTc,fTc,ITc,hTc,mTc,CTc,_Tc,yTc,bTc,ETc,STc,vTc,BTc,wTc,TTc,RTc,NTc,ZYi,LYi,DTc,kTc,xTc,VYi=bc(()=>{$Lr();KOi="aws.lambda.invoked_arn",jOi="db.system",zOi="db.connection_string",qOi="db.user",$Oi="db.jdbc.driver_classname",e3i="db.name",t3i="db.statement",r3i="db.operation",n3i="db.mssql.instance_name",i3i="db.cassandra.keyspace",s3i="db.cassandra.page_size",o3i="db.cassandra.consistency_level",a3i="db.cassandra.table",c3i="db.cassandra.idempotence",l3i="db.cassandra.speculative_execution_count",u3i="db.cassandra.coordinator.id",g3i="db.cassandra.coordinator.dc",A3i="db.hbase.namespace",d3i="db.redis.database_index",p3i="db.mongodb.collection",f3i="db.sql.table",I3i="exception.type",h3i="exception.message",m3i="exception.stacktrace",C3i="exception.escaped",_3i="faas.trigger",y3i="faas.execution",b3i="faas.document.collection",E3i="faas.document.operation",S3i="faas.document.time",v3i="faas.document.name",B3i="faas.time",w3i="faas.cron",T3i="faas.coldstart",R3i="faas.invoked_name",N3i="faas.invoked_provider",D3i="faas.invoked_region",k3i="net.transport",x3i="net.peer.ip",G3i="net.peer.port",F3i="net.peer.name",Z3i="net.host.ip",L3i="net.host.port",V3i="net.host.name",P3i="net.host.connection.type",W3i="net.host.connection.subtype",O3i="net.host.carrier.name",M3i="net.host.carrier.mcc",H3i="net.host.carrier.mnc",Y3i="net.host.carrier.icc",Q3i="peer.service",X3i="enduser.id",J3i="enduser.role",U3i="enduser.scope",K3i="thread.id",j3i="thread.name",z3i="code.function",q3i="code.namespace",$3i="code.filepath",e5i="code.lineno",t5i="http.method",r5i="http.url",n5i="http.target",i5i="http.host",s5i="http.scheme",o5i="http.status_code",a5i="http.flavor",c5i="http.user_agent",l5i="http.request_content_length",u5i="http.request_content_length_uncompressed",g5i="http.response_content_length",A5i="http.response_content_length_uncompressed",d5i="http.server_name",p5i="http.route",f5i="http.client_ip",I5i="aws.dynamodb.table_names",h5i="aws.dynamodb.consumed_capacity",m5i="aws.dynamodb.item_collection_metrics",C5i="aws.dynamodb.provisioned_read_capacity",_5i="aws.dynamodb.provisioned_write_capacity",y5i="aws.dynamodb.consistent_read",b5i="aws.dynamodb.projection",E5i="aws.dynamodb.limit",S5i="aws.dynamodb.attributes_to_get",v5i="aws.dynamodb.index_name",B5i="aws.dynamodb.select",w5i="aws.dynamodb.global_secondary_indexes",T5i="aws.dynamodb.local_secondary_indexes",R5i="aws.dynamodb.exclusive_start_table",N5i="aws.dynamodb.table_count",D5i="aws.dynamodb.scan_forward",k5i="aws.dynamodb.segment",x5i="aws.dynamodb.total_segments",G5i="aws.dynamodb.count",F5i="aws.dynamodb.scanned_count",Z5i="aws.dynamodb.attribute_definitions",L5i="aws.dynamodb.global_secondary_index_updates",V5i="messaging.system",P5i="messaging.destination",W5i="messaging.destination_kind",O5i="messaging.temp_destination",M5i="messaging.protocol",H5i="messaging.protocol_version",Y5i="messaging.url",Q5i="messaging.message_id",X5i="messaging.conversation_id",J5i="messaging.message_payload_size_bytes",U5i="messaging.message_payload_compressed_size_bytes",K5i="messaging.operation",j5i="messaging.consumer_id",z5i="messaging.rabbitmq.routing_key",q5i="messaging.kafka.message_key",$5i="messaging.kafka.consumer_group",eMi="messaging.kafka.client_id",tMi="messaging.kafka.partition",rMi="messaging.kafka.tombstone",nMi="rpc.system",iMi="rpc.service",sMi="rpc.method",oMi="rpc.grpc.status_code",aMi="rpc.jsonrpc.version",cMi="rpc.jsonrpc.request_id",lMi="rpc.jsonrpc.error_code",uMi="rpc.jsonrpc.error_message",gMi="message.type",AMi="message.id",dMi="message.compressed_size",pMi="message.uncompressed_size",D2c=KOi,k2c=jOi,x2c=zOi,G2c=qOi,F2c=$Oi,Z2c=e3i,L2c=t3i,V2c=r3i,P2c=n3i,W2c=i3i,O2c=s3i,M2c=o3i,H2c=a3i,Y2c=c3i,Q2c=l3i,X2c=u3i,J2c=g3i,U2c=A3i,K2c=d3i,j2c=p3i,z2c=f3i,q2c=I3i,$2c=h3i,eSc=m3i,tSc=C3i,rSc=_3i,nSc=y3i,iSc=b3i,sSc=E3i,oSc=S3i,aSc=v3i,cSc=B3i,lSc=w3i,uSc=T3i,gSc=R3i,ASc=N3i,dSc=D3i,pSc=k3i,fSc=x3i,ISc=G3i,hSc=F3i,mSc=Z3i,CSc=L3i,_Sc=V3i,ySc=P3i,bSc=W3i,ESc=O3i,SSc=M3i,vSc=H3i,BSc=Y3i,wSc=Q3i,TSc=X3i,RSc=J3i,NSc=U3i,DSc=K3i,kSc=j3i,xSc=z3i,GSc=q3i,FSc=$3i,ZSc=e5i,LSc=t5i,VSc=r5i,PSc=n5i,WSc=i5i,OSc=s5i,MSc=o5i,HSc=a5i,YSc=c5i,QSc=l5i,XSc=u5i,JSc=g5i,USc=A5i,KSc=d5i,jSc=p5i,zSc=f5i,qSc=I5i,$Sc=h5i,evc=m5i,tvc=C5i,rvc=_5i,nvc=y5i,ivc=b5i,svc=E5i,ovc=S5i,avc=v5i,cvc=B5i,lvc=w5i,uvc=T5i,gvc=R5i,Avc=N5i,dvc=D5i,pvc=k5i,fvc=x5i,Ivc=G5i,hvc=F5i,mvc=Z5i,Cvc=L5i,_vc=V5i,yvc=P5i,bvc=W5i,Evc=O5i,Svc=M5i,vvc=H5i,Bvc=Y5i,wvc=Q5i,Tvc=X5i,Rvc=J5i,Nvc=U5i,Dvc=K5i,kvc=j5i,xvc=z5i,Gvc=q5i,Fvc=$5i,Zvc=eMi,Lvc=tMi,Vvc=rMi,Pvc=nMi,Wvc=iMi,Ovc=sMi,Mvc=oMi,Hvc=aMi,Yvc=cMi,Qvc=lMi,Xvc=uMi,Jvc=gMi,Uvc=AMi,Kvc=dMi,jvc=pMi,zvc=iw([KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi]),fMi="other_sql",IMi="mssql",hMi="mysql",mMi="oracle",CMi="db2",_Mi="postgresql",yMi="redshift",bMi="hive",EMi="cloudscape",SMi="hsqldb",vMi="progress",BMi="maxdb",wMi="hanadb",TMi="ingres",RMi="firstsql",NMi="edb",DMi="cache",kMi="adabas",xMi="firebird",GMi="derby",FMi="filemaker",ZMi="informix",LMi="instantdb",VMi="interbase",PMi="mariadb",WMi="netezza",OMi="pervasive",MMi="pointbase",HMi="sqlite",YMi="sybase",QMi="teradata",XMi="vertica",JMi="h2",UMi="coldfusion",KMi="cassandra",jMi="hbase",zMi="mongodb",qMi="redis",$Mi="couchbase",eHi="couchdb",tHi="cosmosdb",rHi="dynamodb",nHi="neo4j",iHi="geode",sHi="elasticsearch",oHi="memcached",aHi="cockroachdb",qvc=fMi,$vc=IMi,eBc=hMi,tBc=mMi,rBc=CMi,nBc=_Mi,iBc=yMi,sBc=bMi,oBc=EMi,aBc=SMi,cBc=vMi,lBc=BMi,uBc=wMi,gBc=TMi,ABc=RMi,dBc=NMi,pBc=DMi,fBc=kMi,IBc=xMi,hBc=GMi,mBc=FMi,CBc=ZMi,_Bc=LMi,yBc=VMi,bBc=PMi,EBc=WMi,SBc=OMi,vBc=MMi,BBc=HMi,wBc=YMi,TBc=QMi,RBc=XMi,NBc=JMi,DBc=UMi,kBc=KMi,xBc=jMi,GBc=zMi,FBc=qMi,ZBc=$Mi,LBc=eHi,VBc=tHi,PBc=rHi,WBc=nHi,OBc=iHi,MBc=sHi,HBc=oHi,YBc=aHi,QBc=iw([fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi]),cHi="all",lHi="each_quorum",uHi="quorum",gHi="local_quorum",AHi="one",dHi="two",pHi="three",fHi="local_one",IHi="any",hHi="serial",mHi="local_serial",XBc=cHi,JBc=lHi,UBc=uHi,KBc=gHi,jBc=AHi,zBc=dHi,qBc=pHi,$Bc=fHi,ewc=IHi,twc=hHi,rwc=mHi,nwc=iw([cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi]),CHi="datasource",_Hi="http",yHi="pubsub",bHi="timer",EHi="other",iwc=CHi,swc=_Hi,owc=yHi,awc=bHi,cwc=EHi,lwc=iw([CHi,_Hi,yHi,bHi,EHi]),SHi="insert",vHi="edit",BHi="delete",uwc=SHi,gwc=vHi,Awc=BHi,dwc=iw([SHi,vHi,BHi]),wHi="alibaba_cloud",THi="aws",RHi="azure",NHi="gcp",pwc=wHi,fwc=THi,Iwc=RHi,hwc=NHi,mwc=iw([wHi,THi,RHi,NHi]),DHi="ip_tcp",kHi="ip_udp",xHi="ip",GHi="unix",FHi="pipe",ZHi="inproc",LHi="other",Cwc=DHi,_wc=kHi,ywc=xHi,bwc=GHi,Ewc=FHi,Swc=ZHi,vwc=LHi,Bwc=iw([DHi,kHi,xHi,GHi,FHi,ZHi,LHi]),VHi="wifi",PHi="wired",WHi="cell",OHi="unavailable",MHi="unknown",wwc=VHi,Twc=PHi,Rwc=WHi,Nwc=OHi,Dwc=MHi,kwc=iw([VHi,PHi,WHi,OHi,MHi]),HHi="gprs",YHi="edge",QHi="umts",XHi="cdma",JHi="evdo_0",UHi="evdo_a",KHi="cdma2000_1xrtt",jHi="hsdpa",zHi="hsupa",qHi="hspa",$Hi="iden",eYi="evdo_b",tYi="lte",rYi="ehrpd",nYi="hspap",iYi="gsm",sYi="td_scdma",oYi="iwlan",aYi="nr",cYi="nrnsa",lYi="lte_ca",xwc=HHi,Gwc=YHi,Fwc=QHi,Zwc=XHi,Lwc=JHi,Vwc=UHi,Pwc=KHi,Wwc=jHi,Owc=zHi,Mwc=qHi,Hwc=$Hi,Ywc=eYi,Qwc=tYi,Xwc=rYi,Jwc=nYi,Uwc=iYi,Kwc=sYi,jwc=oYi,zwc=aYi,qwc=cYi,$wc=lYi,eTc=iw([HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi]),uYi="1.0",gYi="1.1",AYi="2.0",dYi="SPDY",pYi="QUIC",tTc=uYi,rTc=gYi,nTc=AYi,iTc=dYi,sTc=pYi,oTc={HTTP_1_0:uYi,HTTP_1_1:gYi,HTTP_2_0:AYi,SPDY:dYi,QUIC:pYi},fYi="queue",IYi="topic",aTc=fYi,cTc=IYi,lTc=iw([fYi,IYi]),hYi="receive",mYi="process",uTc=hYi,gTc=mYi,ATc=iw([hYi,mYi]),CYi=0,_Yi=1,yYi=2,bYi=3,EYi=4,SYi=5,vYi=6,BYi=7,wYi=8,TYi=9,RYi=10,NYi=11,DYi=12,kYi=13,xYi=14,GYi=15,FYi=16,dTc=CYi,pTc=_Yi,fTc=yYi,ITc=bYi,hTc=EYi,mTc=SYi,CTc=vYi,_Tc=BYi,yTc=wYi,bTc=TYi,ETc=RYi,STc=NYi,vTc=DYi,BTc=kYi,wTc=xYi,TTc=GYi,RTc=FYi,NTc={OK:CYi,CANCELLED:_Yi,UNKNOWN:yYi,INVALID_ARGUMENT:bYi,DEADLINE_EXCEEDED:EYi,NOT_FOUND:SYi,ALREADY_EXISTS:vYi,PERMISSION_DENIED:BYi,RESOURCE_EXHAUSTED:wYi,FAILED_PRECONDITION:TYi,ABORTED:RYi,OUT_OF_RANGE:NYi,UNIMPLEMENTED:DYi,INTERNAL:kYi,UNAVAILABLE:xYi,DATA_LOSS:GYi,UNAUTHENTICATED:FYi},ZYi="SENT",LYi="RECEIVED",DTc=ZYi,kTc=LYi,xTc=iw([ZYi,LYi])});var PYi=bc(()=>{VYi()});var WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi,GTc,FTc,ZTc,LTc,VTc,PTc,WTc,OTc,MTc,HTc,YTc,QTc,XTc,JTc,UTc,KTc,jTc,zTc,qTc,$Tc,eRc,tRc,rRc,nRc,iRc,sRc,oRc,aRc,cRc,lRc,uRc,gRc,ARc,dRc,pRc,fRc,IRc,hRc,mRc,CRc,_Rc,yRc,bRc,ERc,SRc,vRc,BRc,wRc,TRc,RRc,NRc,DRc,kRc,xRc,GRc,FRc,ZRc,LRc,VRc,PRc,WRc,ORc,MRc,HRc,YRc,QRc,XRc,JRc,URc,KRc,jRc,zRc,qRc,$Rc,eNc,tNc,rNc,nNc,iNc,sNc,oNc,aNc,dXi,pXi,fXi,IXi,cNc,lNc,uNc,gNc,ANc,hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi,dNc,pNc,fNc,INc,hNc,mNc,CNc,_Nc,yNc,bNc,ENc,SNc,vNc,BNc,wNc,TNc,RNc,NNc,GXi,FXi,DNc,kNc,xNc,ZXi,LXi,VXi,PXi,WXi,OXi,MXi,GNc,FNc,ZNc,LNc,VNc,PNc,WNc,ONc,HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi,MNc,HNc,YNc,QNc,XNc,JNc,UNc,KNc,jNc,zNc,qNc,$Nc,e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i,eDc,tDc,rDc,nDc,iDc,sDc,oDc,aDc,cDc,lDc,uDc,u4i=bc(()=>{$Lr();WYi="cloud.provider",OYi="cloud.account.id",MYi="cloud.region",HYi="cloud.availability_zone",YYi="cloud.platform",QYi="aws.ecs.container.arn",XYi="aws.ecs.cluster.arn",JYi="aws.ecs.launchtype",UYi="aws.ecs.task.arn",KYi="aws.ecs.task.family",jYi="aws.ecs.task.revision",zYi="aws.eks.cluster.arn",qYi="aws.log.group.names",$Yi="aws.log.group.arns",eQi="aws.log.stream.names",tQi="aws.log.stream.arns",rQi="container.name",nQi="container.id",iQi="container.runtime",sQi="container.image.name",oQi="container.image.tag",aQi="deployment.environment",cQi="device.id",lQi="device.model.identifier",uQi="device.model.name",gQi="faas.name",AQi="faas.id",dQi="faas.version",pQi="faas.instance",fQi="faas.max_memory",IQi="host.id",hQi="host.name",mQi="host.type",CQi="host.arch",_Qi="host.image.name",yQi="host.image.id",bQi="host.image.version",EQi="k8s.cluster.name",SQi="k8s.node.name",vQi="k8s.node.uid",BQi="k8s.namespace.name",wQi="k8s.pod.uid",TQi="k8s.pod.name",RQi="k8s.container.name",NQi="k8s.replicaset.uid",DQi="k8s.replicaset.name",kQi="k8s.deployment.uid",xQi="k8s.deployment.name",GQi="k8s.statefulset.uid",FQi="k8s.statefulset.name",ZQi="k8s.daemonset.uid",LQi="k8s.daemonset.name",VQi="k8s.job.uid",PQi="k8s.job.name",WQi="k8s.cronjob.uid",OQi="k8s.cronjob.name",MQi="os.type",HQi="os.description",YQi="os.name",QQi="os.version",XQi="process.pid",JQi="process.executable.name",UQi="process.executable.path",KQi="process.command",jQi="process.command_line",zQi="process.command_args",qQi="process.owner",$Qi="process.runtime.name",eXi="process.runtime.version",tXi="process.runtime.description",rXi="service.name",nXi="service.namespace",iXi="service.instance.id",sXi="service.version",oXi="telemetry.sdk.name",aXi="telemetry.sdk.language",cXi="telemetry.sdk.version",lXi="telemetry.auto.version",uXi="webengine.name",gXi="webengine.version",AXi="webengine.description",GTc=WYi,FTc=OYi,ZTc=MYi,LTc=HYi,VTc=YYi,PTc=QYi,WTc=XYi,OTc=JYi,MTc=UYi,HTc=KYi,YTc=jYi,QTc=zYi,XTc=qYi,JTc=$Yi,UTc=eQi,KTc=tQi,jTc=rQi,zTc=nQi,qTc=iQi,$Tc=sQi,eRc=oQi,tRc=aQi,rRc=cQi,nRc=lQi,iRc=uQi,sRc=gQi,oRc=AQi,aRc=dQi,cRc=pQi,lRc=fQi,uRc=IQi,gRc=hQi,ARc=mQi,dRc=CQi,pRc=_Qi,fRc=yQi,IRc=bQi,hRc=EQi,mRc=SQi,CRc=vQi,_Rc=BQi,yRc=wQi,bRc=TQi,ERc=RQi,SRc=NQi,vRc=DQi,BRc=kQi,wRc=xQi,TRc=GQi,RRc=FQi,NRc=ZQi,DRc=LQi,kRc=VQi,xRc=PQi,GRc=WQi,FRc=OQi,ZRc=MQi,LRc=HQi,VRc=YQi,PRc=QQi,WRc=XQi,ORc=JQi,MRc=UQi,HRc=KQi,YRc=jQi,QRc=zQi,XRc=qQi,JRc=$Qi,URc=eXi,KRc=tXi,jRc=rXi,zRc=nXi,qRc=iXi,$Rc=sXi,eNc=oXi,tNc=aXi,rNc=cXi,nNc=lXi,iNc=uXi,sNc=gXi,oNc=AXi,aNc=iw([WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi]),dXi="alibaba_cloud",pXi="aws",fXi="azure",IXi="gcp",cNc=dXi,lNc=pXi,uNc=fXi,gNc=IXi,ANc=iw([dXi,pXi,fXi,IXi]),hXi="alibaba_cloud_ecs",mXi="alibaba_cloud_fc",CXi="aws_ec2",_Xi="aws_ecs",yXi="aws_eks",bXi="aws_lambda",EXi="aws_elastic_beanstalk",SXi="azure_vm",vXi="azure_container_instances",BXi="azure_aks",wXi="azure_functions",TXi="azure_app_service",RXi="gcp_compute_engine",NXi="gcp_cloud_run",DXi="gcp_kubernetes_engine",kXi="gcp_cloud_functions",xXi="gcp_app_engine",dNc=hXi,pNc=mXi,fNc=CXi,INc=_Xi,hNc=yXi,mNc=bXi,CNc=EXi,_Nc=SXi,yNc=vXi,bNc=BXi,ENc=wXi,SNc=TXi,vNc=RXi,BNc=NXi,wNc=DXi,TNc=kXi,RNc=xXi,NNc=iw([hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi]),GXi="ec2",FXi="fargate",DNc=GXi,kNc=FXi,xNc=iw([GXi,FXi]),ZXi="amd64",LXi="arm32",VXi="arm64",PXi="ia64",WXi="ppc32",OXi="ppc64",MXi="x86",GNc=ZXi,FNc=LXi,ZNc=VXi,LNc=PXi,VNc=WXi,PNc=OXi,WNc=MXi,ONc=iw([ZXi,LXi,VXi,PXi,WXi,OXi,MXi]),HXi="windows",YXi="linux",QXi="darwin",XXi="freebsd",JXi="netbsd",UXi="openbsd",KXi="dragonflybsd",jXi="hpux",zXi="aix",qXi="solaris",$Xi="z_os",MNc=HXi,HNc=YXi,YNc=QXi,QNc=XXi,XNc=JXi,JNc=UXi,UNc=KXi,KNc=jXi,jNc=zXi,zNc=qXi,qNc=$Xi,$Nc=iw([HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi]),e4i="cpp",t4i="dotnet",r4i="erlang",n4i="go",i4i="java",s4i="nodejs",o4i="php",a4i="python",c4i="ruby",l4i="webjs",eDc=e4i,tDc=t4i,rDc=r4i,nDc=n4i,iDc=i4i,sDc=s4i,oDc=o4i,aDc=a4i,cDc=c4i,lDc=l4i,uDc=iw([e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i])});var g4i=bc(()=>{u4i()});var gDc,ADc,dDc,pDc,fDc,IDc,hDc,mDc,CDc,_Dc,yDc,bDc,EDc,SDc,vDc,BDc,wDc,TDc,RDc,NDc,DDc,kDc,xDc,GDc,FDc,ZDc,LDc,VDc,PDc,WDc,ODc,MDc,HDc,YDc,QDc,XDc,JDc,UDc,KDc,jDc,zDc,qDc,$Dc,ekc,tkc,rkc,nkc,ikc,skc,okc,akc,ckc,lkc,ukc,gkc,Akc,dkc,pkc,fkc,Ikc,hkc,mkc,Ckc,_kc,ykc,bkc,Ekc,Skc,vkc,Bkc,wkc,Tkc,Rkc,Nkc,Dkc,kkc,xkc,Gkc,Fkc,Zkc,Lkc,Vkc,Pkc,Wkc,Okc,Mkc,Hkc,Ykc,Qkc,Xkc,Jkc,Ukc,Kkc,jkc,zkc,qkc,$kc,exc,txc,rxc,nxc,ixc,sxc,oxc,axc,cxc,lxc,uxc,gxc,Axc,A4i=bc(()=>{gDc="aspnetcore.rate_limiting.result",ADc="acquired",dDc="endpoint_limiter",pDc="global_limiter",fDc="request_canceled",IDc="telemetry.sdk.language",hDc="cpp",mDc="dotnet",CDc="erlang",_Dc="go",yDc="java",bDc="nodejs",EDc="php",SDc="python",vDc="ruby",BDc="rust",wDc="swift",TDc="webjs",RDc="telemetry.sdk.name",NDc="telemetry.sdk.version",DDc="aspnetcore.diagnostics.handler.type",kDc="aspnetcore.diagnostics.exception.result",xDc="aborted",GDc="handled",FDc="skipped",ZDc="unhandled",LDc="aspnetcore.rate_limiting.policy",VDc="aspnetcore.request.is_unhandled",PDc="aspnetcore.routing.is_fallback",WDc="aspnetcore.routing.match_status",ODc="failure",MDc="success",HDc="client.address",YDc="client.port",QDc="error.type",XDc="_OTHER",JDc="exception.escaped",UDc="exception.message",KDc="exception.stacktrace",jDc="exception.type",zDc=function(e){return"http.request.header."+e},qDc="http.request.method",$Dc="_OTHER",ekc="CONNECT",tkc="DELETE",rkc="GET",nkc="HEAD",ikc="OPTIONS",skc="PATCH",okc="POST",akc="PUT",ckc="TRACE",lkc="http.request.method_original",ukc="http.request.resend_count",gkc=function(e){return"http.response.header."+e},Akc="http.response.status_code",dkc="http.route",pkc="jvm.gc.action",fkc="jvm.gc.name",Ikc="jvm.memory.pool.name",hkc="jvm.memory.type",mkc="heap",Ckc="non_heap",_kc="jvm.thread.daemon",ykc="jvm.thread.state",bkc="blocked",Ekc="new",Skc="runnable",vkc="terminated",Bkc="timed_waiting",wkc="waiting",Tkc="network.local.address",Rkc="network.local.port",Nkc="network.peer.address",Dkc="network.peer.port",kkc="network.protocol.name",xkc="network.protocol.version",Gkc="network.transport",Fkc="pipe",Zkc="quic",Lkc="tcp",Vkc="udp",Pkc="unix",Wkc="network.type",Okc="ipv4",Mkc="ipv6",Hkc="otel.scope.name",Ykc="otel.scope.version",Qkc="otel.status_code",Xkc="ERROR",Jkc="OK",Ukc="otel.status_description",Kkc="server.address",jkc="server.port",zkc="service.name",qkc="service.version",$kc="signalr.connection.status",exc="app_shutdown",txc="normal_closure",rxc="timeout",nxc="signalr.transport",ixc="long_polling",sxc="server_sent_events",oxc="web_sockets",axc="url.fragment",cxc="url.full",lxc="url.path",uxc="url.query",gxc="url.scheme",Axc="user_agent.original"});var dxc,pxc,fxc,Ixc,hxc,mxc,Cxc,_xc,yxc,bxc,Exc,Sxc,vxc,Bxc,wxc,Txc,Rxc,Nxc,Dxc,kxc,xxc,Gxc,Fxc,Zxc,Lxc,Vxc,Pxc,Wxc,Oxc,Mxc,Hxc,d4i=bc(()=>{dxc="aspnetcore.diagnostics.exceptions",pxc="aspnetcore.rate_limiting.active_request_leases",fxc="aspnetcore.rate_limiting.queued_requests",Ixc="aspnetcore.rate_limiting.request.time_in_queue",hxc="aspnetcore.rate_limiting.request_lease.duration",mxc="aspnetcore.rate_limiting.requests",Cxc="aspnetcore.routing.match_attempts",_xc="http.client.request.duration",yxc="http.server.request.duration",bxc="jvm.class.count",Exc="jvm.class.loaded",Sxc="jvm.class.unloaded",vxc="jvm.cpu.count",Bxc="jvm.cpu.recent_utilization",wxc="jvm.cpu.time",Txc="jvm.gc.duration",Rxc="jvm.memory.committed",Nxc="jvm.memory.limit",Dxc="jvm.memory.used",kxc="jvm.memory.used_after_last_gc",xxc="jvm.thread.count",Gxc="kestrel.active_connections",Fxc="kestrel.active_tls_handshakes",Zxc="kestrel.connection.duration",Lxc="kestrel.queued_connections",Vxc="kestrel.queued_requests",Pxc="kestrel.rejected_connections",Wxc="kestrel.tls_handshake.duration",Oxc="kestrel.upgraded_connections",Mxc="signalr.server.active_connections",Hxc="signalr.server.connection.duration"});var p4i={};sI(p4i,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>xDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>GDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>FDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>ZDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>ADc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>dDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>pDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>fDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>ODc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>MDc,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>kDc,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>DDc,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>LDc,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>gDc,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>VDc,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>PDc,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>WDc,ATTR_CLIENT_ADDRESS:()=>HDc,ATTR_CLIENT_PORT:()=>YDc,ATTR_ERROR_TYPE:()=>QDc,ATTR_EXCEPTION_ESCAPED:()=>JDc,ATTR_EXCEPTION_MESSAGE:()=>UDc,ATTR_EXCEPTION_STACKTRACE:()=>KDc,ATTR_EXCEPTION_TYPE:()=>jDc,ATTR_HTTP_REQUEST_HEADER:()=>zDc,ATTR_HTTP_REQUEST_METHOD:()=>qDc,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>lkc,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>ukc,ATTR_HTTP_RESPONSE_HEADER:()=>gkc,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>Akc,ATTR_HTTP_ROUTE:()=>dkc,ATTR_JVM_GC_ACTION:()=>pkc,ATTR_JVM_GC_NAME:()=>fkc,ATTR_JVM_MEMORY_POOL_NAME:()=>Ikc,ATTR_JVM_MEMORY_TYPE:()=>hkc,ATTR_JVM_THREAD_DAEMON:()=>_kc,ATTR_JVM_THREAD_STATE:()=>ykc,ATTR_NETWORK_LOCAL_ADDRESS:()=>Tkc,ATTR_NETWORK_LOCAL_PORT:()=>Rkc,ATTR_NETWORK_PEER_ADDRESS:()=>Nkc,ATTR_NETWORK_PEER_PORT:()=>Dkc,ATTR_NETWORK_PROTOCOL_NAME:()=>kkc,ATTR_NETWORK_PROTOCOL_VERSION:()=>xkc,ATTR_NETWORK_TRANSPORT:()=>Gkc,ATTR_NETWORK_TYPE:()=>Wkc,ATTR_OTEL_SCOPE_NAME:()=>Hkc,ATTR_OTEL_SCOPE_VERSION:()=>Ykc,ATTR_OTEL_STATUS_CODE:()=>Qkc,ATTR_OTEL_STATUS_DESCRIPTION:()=>Ukc,ATTR_SERVER_ADDRESS:()=>Kkc,ATTR_SERVER_PORT:()=>jkc,ATTR_SERVICE_NAME:()=>zkc,ATTR_SERVICE_VERSION:()=>qkc,ATTR_SIGNALR_CONNECTION_STATUS:()=>$kc,ATTR_SIGNALR_TRANSPORT:()=>nxc,ATTR_TELEMETRY_SDK_LANGUAGE:()=>IDc,ATTR_TELEMETRY_SDK_NAME:()=>RDc,ATTR_TELEMETRY_SDK_VERSION:()=>NDc,ATTR_URL_FRAGMENT:()=>axc,ATTR_URL_FULL:()=>cxc,ATTR_URL_PATH:()=>lxc,ATTR_URL_QUERY:()=>uxc,ATTR_URL_SCHEME:()=>gxc,ATTR_USER_AGENT_ORIGINAL:()=>Axc,AWSECSLAUNCHTYPEVALUES_EC2:()=>DNc,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>kNc,AwsEcsLaunchtypeValues:()=>xNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>dNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>pNc,CLOUDPLATFORMVALUES_AWS_EC2:()=>fNc,CLOUDPLATFORMVALUES_AWS_ECS:()=>INc,CLOUDPLATFORMVALUES_AWS_EKS:()=>hNc,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>CNc,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>mNc,CLOUDPLATFORMVALUES_AZURE_AKS:()=>bNc,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>SNc,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>yNc,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>ENc,CLOUDPLATFORMVALUES_AZURE_VM:()=>_Nc,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>RNc,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>TNc,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>BNc,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>vNc,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>wNc,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>cNc,CLOUDPROVIDERVALUES_AWS:()=>lNc,CLOUDPROVIDERVALUES_AZURE:()=>uNc,CLOUDPROVIDERVALUES_GCP:()=>gNc,CloudPlatformValues:()=>NNc,CloudProviderValues:()=>ANc,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>XBc,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>ewc,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>JBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>$Bc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>KBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>rwc,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>jBc,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>UBc,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>twc,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>qBc,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>zBc,DBSYSTEMVALUES_ADABAS:()=>fBc,DBSYSTEMVALUES_CACHE:()=>pBc,DBSYSTEMVALUES_CASSANDRA:()=>kBc,DBSYSTEMVALUES_CLOUDSCAPE:()=>oBc,DBSYSTEMVALUES_COCKROACHDB:()=>YBc,DBSYSTEMVALUES_COLDFUSION:()=>DBc,DBSYSTEMVALUES_COSMOSDB:()=>VBc,DBSYSTEMVALUES_COUCHBASE:()=>ZBc,DBSYSTEMVALUES_COUCHDB:()=>LBc,DBSYSTEMVALUES_DB2:()=>rBc,DBSYSTEMVALUES_DERBY:()=>hBc,DBSYSTEMVALUES_DYNAMODB:()=>PBc,DBSYSTEMVALUES_EDB:()=>dBc,DBSYSTEMVALUES_ELASTICSEARCH:()=>MBc,DBSYSTEMVALUES_FILEMAKER:()=>mBc,DBSYSTEMVALUES_FIREBIRD:()=>IBc,DBSYSTEMVALUES_FIRSTSQL:()=>ABc,DBSYSTEMVALUES_GEODE:()=>OBc,DBSYSTEMVALUES_H2:()=>NBc,DBSYSTEMVALUES_HANADB:()=>uBc,DBSYSTEMVALUES_HBASE:()=>xBc,DBSYSTEMVALUES_HIVE:()=>sBc,DBSYSTEMVALUES_HSQLDB:()=>aBc,DBSYSTEMVALUES_INFORMIX:()=>CBc,DBSYSTEMVALUES_INGRES:()=>gBc,DBSYSTEMVALUES_INSTANTDB:()=>_Bc,DBSYSTEMVALUES_INTERBASE:()=>yBc,DBSYSTEMVALUES_MARIADB:()=>bBc,DBSYSTEMVALUES_MAXDB:()=>lBc,DBSYSTEMVALUES_MEMCACHED:()=>HBc,DBSYSTEMVALUES_MONGODB:()=>GBc,DBSYSTEMVALUES_MSSQL:()=>$vc,DBSYSTEMVALUES_MYSQL:()=>eBc,DBSYSTEMVALUES_NEO4J:()=>WBc,DBSYSTEMVALUES_NETEZZA:()=>EBc,DBSYSTEMVALUES_ORACLE:()=>tBc,DBSYSTEMVALUES_OTHER_SQL:()=>qvc,DBSYSTEMVALUES_PERVASIVE:()=>SBc,DBSYSTEMVALUES_POINTBASE:()=>vBc,DBSYSTEMVALUES_POSTGRESQL:()=>nBc,DBSYSTEMVALUES_PROGRESS:()=>cBc,DBSYSTEMVALUES_REDIS:()=>FBc,DBSYSTEMVALUES_REDSHIFT:()=>iBc,DBSYSTEMVALUES_SQLITE:()=>BBc,DBSYSTEMVALUES_SYBASE:()=>wBc,DBSYSTEMVALUES_TERADATA:()=>TBc,DBSYSTEMVALUES_VERTICA:()=>RBc,DbCassandraConsistencyLevelValues:()=>nwc,DbSystemValues:()=>QBc,ERROR_TYPE_VALUE_OTHER:()=>XDc,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>Awc,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>gwc,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>uwc,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>pwc,FAASINVOKEDPROVIDERVALUES_AWS:()=>fwc,FAASINVOKEDPROVIDERVALUES_AZURE:()=>Iwc,FAASINVOKEDPROVIDERVALUES_GCP:()=>hwc,FAASTRIGGERVALUES_DATASOURCE:()=>iwc,FAASTRIGGERVALUES_HTTP:()=>swc,FAASTRIGGERVALUES_OTHER:()=>cwc,FAASTRIGGERVALUES_PUBSUB:()=>owc,FAASTRIGGERVALUES_TIMER:()=>awc,FaasDocumentOperationValues:()=>dwc,FaasInvokedProviderValues:()=>mwc,FaasTriggerValues:()=>lwc,HOSTARCHVALUES_AMD64:()=>GNc,HOSTARCHVALUES_ARM32:()=>FNc,HOSTARCHVALUES_ARM64:()=>ZNc,HOSTARCHVALUES_IA64:()=>LNc,HOSTARCHVALUES_PPC32:()=>VNc,HOSTARCHVALUES_PPC64:()=>PNc,HOSTARCHVALUES_X86:()=>WNc,HTTPFLAVORVALUES_HTTP_1_0:()=>tTc,HTTPFLAVORVALUES_HTTP_1_1:()=>rTc,HTTPFLAVORVALUES_HTTP_2_0:()=>nTc,HTTPFLAVORVALUES_QUIC:()=>sTc,HTTPFLAVORVALUES_SPDY:()=>iTc,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>ekc,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>tkc,HTTP_REQUEST_METHOD_VALUE_GET:()=>rkc,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>nkc,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>ikc,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>$Dc,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>skc,HTTP_REQUEST_METHOD_VALUE_POST:()=>okc,HTTP_REQUEST_METHOD_VALUE_PUT:()=>akc,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>ckc,HostArchValues:()=>ONc,HttpFlavorValues:()=>oTc,JVM_MEMORY_TYPE_VALUE_HEAP:()=>mkc,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>Ckc,JVM_THREAD_STATE_VALUE_BLOCKED:()=>bkc,JVM_THREAD_STATE_VALUE_NEW:()=>Ekc,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>Skc,JVM_THREAD_STATE_VALUE_TERMINATED:()=>vkc,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>Bkc,JVM_THREAD_STATE_VALUE_WAITING:()=>wkc,MESSAGETYPEVALUES_RECEIVED:()=>kTc,MESSAGETYPEVALUES_SENT:()=>DTc,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>aTc,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>cTc,MESSAGINGOPERATIONVALUES_PROCESS:()=>gTc,MESSAGINGOPERATIONVALUES_RECEIVE:()=>uTc,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>dxc,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>pxc,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>fxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>mxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>hxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>Ixc,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>Cxc,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>_xc,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>yxc,METRIC_JVM_CLASS_COUNT:()=>bxc,METRIC_JVM_CLASS_LOADED:()=>Exc,METRIC_JVM_CLASS_UNLOADED:()=>Sxc,METRIC_JVM_CPU_COUNT:()=>vxc,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Bxc,METRIC_JVM_CPU_TIME:()=>wxc,METRIC_JVM_GC_DURATION:()=>Txc,METRIC_JVM_MEMORY_COMMITTED:()=>Rxc,METRIC_JVM_MEMORY_LIMIT:()=>Nxc,METRIC_JVM_MEMORY_USED:()=>Dxc,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>kxc,METRIC_JVM_THREAD_COUNT:()=>xxc,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Gxc,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Fxc,METRIC_KESTREL_CONNECTION_DURATION:()=>Zxc,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>Lxc,METRIC_KESTREL_QUEUED_REQUESTS:()=>Vxc,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>Pxc,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>Wxc,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>Oxc,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>Mxc,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>Hxc,MessageTypeValues:()=>xTc,MessagingDestinationKindValues:()=>lTc,MessagingOperationValues:()=>ATc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>Zwc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>Pwc,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>Gwc,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>Xwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>Lwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>Vwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>Ywc,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>xwc,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>Uwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>Wwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>Mwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>Jwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>Owc,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>Hwc,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>jwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>Qwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>$wc,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>zwc,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>qwc,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>Kwc,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>Fwc,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>Rwc,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>Nwc,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>Dwc,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>wwc,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>Twc,NETTRANSPORTVALUES_INPROC:()=>Swc,NETTRANSPORTVALUES_IP:()=>ywc,NETTRANSPORTVALUES_IP_TCP:()=>Cwc,NETTRANSPORTVALUES_IP_UDP:()=>_wc,NETTRANSPORTVALUES_OTHER:()=>vwc,NETTRANSPORTVALUES_PIPE:()=>Ewc,NETTRANSPORTVALUES_UNIX:()=>bwc,NETWORK_TRANSPORT_VALUE_PIPE:()=>Fkc,NETWORK_TRANSPORT_VALUE_QUIC:()=>Zkc,NETWORK_TRANSPORT_VALUE_TCP:()=>Lkc,NETWORK_TRANSPORT_VALUE_UDP:()=>Vkc,NETWORK_TRANSPORT_VALUE_UNIX:()=>Pkc,NETWORK_TYPE_VALUE_IPV4:()=>Okc,NETWORK_TYPE_VALUE_IPV6:()=>Mkc,NetHostConnectionSubtypeValues:()=>eTc,NetHostConnectionTypeValues:()=>kwc,NetTransportValues:()=>Bwc,OSTYPEVALUES_AIX:()=>jNc,OSTYPEVALUES_DARWIN:()=>YNc,OSTYPEVALUES_DRAGONFLYBSD:()=>UNc,OSTYPEVALUES_FREEBSD:()=>QNc,OSTYPEVALUES_HPUX:()=>KNc,OSTYPEVALUES_LINUX:()=>HNc,OSTYPEVALUES_NETBSD:()=>XNc,OSTYPEVALUES_OPENBSD:()=>JNc,OSTYPEVALUES_SOLARIS:()=>zNc,OSTYPEVALUES_WINDOWS:()=>MNc,OSTYPEVALUES_Z_OS:()=>qNc,OTEL_STATUS_CODE_VALUE_ERROR:()=>Xkc,OTEL_STATUS_CODE_VALUE_OK:()=>Jkc,OsTypeValues:()=>$Nc,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>ETc,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>CTc,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>pTc,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>TTc,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>hTc,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>bTc,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>BTc,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>ITc,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>mTc,RPCGRPCSTATUSCODEVALUES_OK:()=>dTc,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>STc,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>_Tc,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>yTc,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>RTc,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>wTc,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>vTc,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>fTc,RpcGrpcStatusCodeValues:()=>NTc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>ovc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>mvc,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>nvc,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>$Sc,SEMATTRS_AWS_DYNAMODB_COUNT:()=>Ivc,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>gvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>lvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>Cvc,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>avc,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>evc,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>svc,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>uvc,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>ivc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>tvc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>rvc,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>hvc,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>dvc,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>pvc,SEMATTRS_AWS_DYNAMODB_SELECT:()=>cvc,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>Avc,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>qSc,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>fvc,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>D2c,SEMATTRS_CODE_FILEPATH:()=>FSc,SEMATTRS_CODE_FUNCTION:()=>xSc,SEMATTRS_CODE_LINENO:()=>ZSc,SEMATTRS_CODE_NAMESPACE:()=>GSc,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>M2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>J2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>X2c,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>Y2c,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>W2c,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>O2c,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>Q2c,SEMATTRS_DB_CASSANDRA_TABLE:()=>H2c,SEMATTRS_DB_CONNECTION_STRING:()=>x2c,SEMATTRS_DB_HBASE_NAMESPACE:()=>U2c,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>F2c,SEMATTRS_DB_MONGODB_COLLECTION:()=>j2c,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>P2c,SEMATTRS_DB_NAME:()=>Z2c,SEMATTRS_DB_OPERATION:()=>V2c,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>K2c,SEMATTRS_DB_SQL_TABLE:()=>z2c,SEMATTRS_DB_STATEMENT:()=>L2c,SEMATTRS_DB_SYSTEM:()=>k2c,SEMATTRS_DB_USER:()=>G2c,SEMATTRS_ENDUSER_ID:()=>TSc,SEMATTRS_ENDUSER_ROLE:()=>RSc,SEMATTRS_ENDUSER_SCOPE:()=>NSc,SEMATTRS_EXCEPTION_ESCAPED:()=>tSc,SEMATTRS_EXCEPTION_MESSAGE:()=>$2c,SEMATTRS_EXCEPTION_STACKTRACE:()=>eSc,SEMATTRS_EXCEPTION_TYPE:()=>q2c,SEMATTRS_FAAS_COLDSTART:()=>uSc,SEMATTRS_FAAS_CRON:()=>lSc,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>iSc,SEMATTRS_FAAS_DOCUMENT_NAME:()=>aSc,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>sSc,SEMATTRS_FAAS_DOCUMENT_TIME:()=>oSc,SEMATTRS_FAAS_EXECUTION:()=>nSc,SEMATTRS_FAAS_INVOKED_NAME:()=>gSc,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>ASc,SEMATTRS_FAAS_INVOKED_REGION:()=>dSc,SEMATTRS_FAAS_TIME:()=>cSc,SEMATTRS_FAAS_TRIGGER:()=>rSc,SEMATTRS_HTTP_CLIENT_IP:()=>zSc,SEMATTRS_HTTP_FLAVOR:()=>HSc,SEMATTRS_HTTP_HOST:()=>WSc,SEMATTRS_HTTP_METHOD:()=>LSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>QSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>XSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>JSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>USc,SEMATTRS_HTTP_ROUTE:()=>jSc,SEMATTRS_HTTP_SCHEME:()=>OSc,SEMATTRS_HTTP_SERVER_NAME:()=>KSc,SEMATTRS_HTTP_STATUS_CODE:()=>MSc,SEMATTRS_HTTP_TARGET:()=>PSc,SEMATTRS_HTTP_URL:()=>VSc,SEMATTRS_HTTP_USER_AGENT:()=>YSc,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>Kvc,SEMATTRS_MESSAGE_ID:()=>Uvc,SEMATTRS_MESSAGE_TYPE:()=>Jvc,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>jvc,SEMATTRS_MESSAGING_CONSUMER_ID:()=>kvc,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>Tvc,SEMATTRS_MESSAGING_DESTINATION:()=>yvc,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>bvc,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>Zvc,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>Fvc,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>Gvc,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>Lvc,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>Vvc,SEMATTRS_MESSAGING_MESSAGE_ID:()=>wvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>Nvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>Rvc,SEMATTRS_MESSAGING_OPERATION:()=>Dvc,SEMATTRS_MESSAGING_PROTOCOL:()=>Svc,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>vvc,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>xvc,SEMATTRS_MESSAGING_SYSTEM:()=>_vc,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>Evc,SEMATTRS_MESSAGING_URL:()=>Bvc,SEMATTRS_NET_HOST_CARRIER_ICC:()=>BSc,SEMATTRS_NET_HOST_CARRIER_MCC:()=>SSc,SEMATTRS_NET_HOST_CARRIER_MNC:()=>vSc,SEMATTRS_NET_HOST_CARRIER_NAME:()=>ESc,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>bSc,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>ySc,SEMATTRS_NET_HOST_IP:()=>mSc,SEMATTRS_NET_HOST_NAME:()=>_Sc,SEMATTRS_NET_HOST_PORT:()=>CSc,SEMATTRS_NET_PEER_IP:()=>fSc,SEMATTRS_NET_PEER_NAME:()=>hSc,SEMATTRS_NET_PEER_PORT:()=>ISc,SEMATTRS_NET_TRANSPORT:()=>pSc,SEMATTRS_PEER_SERVICE:()=>wSc,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>Mvc,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>Qvc,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>Xvc,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>Yvc,SEMATTRS_RPC_JSONRPC_VERSION:()=>Hvc,SEMATTRS_RPC_METHOD:()=>Ovc,SEMATTRS_RPC_SERVICE:()=>Wvc,SEMATTRS_RPC_SYSTEM:()=>Pvc,SEMATTRS_THREAD_ID:()=>DSc,SEMATTRS_THREAD_NAME:()=>kSc,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>WTc,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>PTc,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>OTc,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>MTc,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>HTc,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>YTc,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>QTc,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>JTc,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>XTc,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>KTc,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>UTc,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>FTc,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>LTc,SEMRESATTRS_CLOUD_PLATFORM:()=>VTc,SEMRESATTRS_CLOUD_PROVIDER:()=>GTc,SEMRESATTRS_CLOUD_REGION:()=>ZTc,SEMRESATTRS_CONTAINER_ID:()=>zTc,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>$Tc,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>eRc,SEMRESATTRS_CONTAINER_NAME:()=>jTc,SEMRESATTRS_CONTAINER_RUNTIME:()=>qTc,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>tRc,SEMRESATTRS_DEVICE_ID:()=>rRc,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>nRc,SEMRESATTRS_DEVICE_MODEL_NAME:()=>iRc,SEMRESATTRS_FAAS_ID:()=>oRc,SEMRESATTRS_FAAS_INSTANCE:()=>cRc,SEMRESATTRS_FAAS_MAX_MEMORY:()=>lRc,SEMRESATTRS_FAAS_NAME:()=>sRc,SEMRESATTRS_FAAS_VERSION:()=>aRc,SEMRESATTRS_HOST_ARCH:()=>dRc,SEMRESATTRS_HOST_ID:()=>uRc,SEMRESATTRS_HOST_IMAGE_ID:()=>fRc,SEMRESATTRS_HOST_IMAGE_NAME:()=>pRc,SEMRESATTRS_HOST_IMAGE_VERSION:()=>IRc,SEMRESATTRS_HOST_NAME:()=>gRc,SEMRESATTRS_HOST_TYPE:()=>ARc,SEMRESATTRS_K8S_CLUSTER_NAME:()=>hRc,SEMRESATTRS_K8S_CONTAINER_NAME:()=>ERc,SEMRESATTRS_K8S_CRONJOB_NAME:()=>FRc,SEMRESATTRS_K8S_CRONJOB_UID:()=>GRc,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>DRc,SEMRESATTRS_K8S_DAEMONSET_UID:()=>NRc,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>wRc,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>BRc,SEMRESATTRS_K8S_JOB_NAME:()=>xRc,SEMRESATTRS_K8S_JOB_UID:()=>kRc,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>_Rc,SEMRESATTRS_K8S_NODE_NAME:()=>mRc,SEMRESATTRS_K8S_NODE_UID:()=>CRc,SEMRESATTRS_K8S_POD_NAME:()=>bRc,SEMRESATTRS_K8S_POD_UID:()=>yRc,SEMRESATTRS_K8S_REPLICASET_NAME:()=>vRc,SEMRESATTRS_K8S_REPLICASET_UID:()=>SRc,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>RRc,SEMRESATTRS_K8S_STATEFULSET_UID:()=>TRc,SEMRESATTRS_OS_DESCRIPTION:()=>LRc,SEMRESATTRS_OS_NAME:()=>VRc,SEMRESATTRS_OS_TYPE:()=>ZRc,SEMRESATTRS_OS_VERSION:()=>PRc,SEMRESATTRS_PROCESS_COMMAND:()=>HRc,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>QRc,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>YRc,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>ORc,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>MRc,SEMRESATTRS_PROCESS_OWNER:()=>XRc,SEMRESATTRS_PROCESS_PID:()=>WRc,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>KRc,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>JRc,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>URc,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>qRc,SEMRESATTRS_SERVICE_NAME:()=>jRc,SEMRESATTRS_SERVICE_NAMESPACE:()=>zRc,SEMRESATTRS_SERVICE_VERSION:()=>$Rc,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>nNc,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>tNc,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>eNc,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>rNc,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>oNc,SEMRESATTRS_WEBENGINE_NAME:()=>iNc,SEMRESATTRS_WEBENGINE_VERSION:()=>sNc,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>exc,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>txc,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>rxc,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>ixc,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>sxc,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>oxc,SemanticAttributes:()=>zvc,SemanticResourceAttributes:()=>aNc,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>eDc,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>tDc,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>rDc,TELEMETRYSDKLANGUAGEVALUES_GO:()=>nDc,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>iDc,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>sDc,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>oDc,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>aDc,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>cDc,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>lDc,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>hDc,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>mDc,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>CDc,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>_Dc,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>yDc,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>bDc,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>EDc,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>SDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>vDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>BDc,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>wDc,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>TDc,TelemetrySdkLanguageValues:()=>uDc});var f4i=bc(()=>{PYi();g4i();A4i();d4i()});var I4i=H(jSt=>{"use strict";Object.defineProperty(jSt,"__esModule",{value:!0});jSt.SDK_INFO=void 0;var Yxc=qLr(),ZKe=(f4i(),vi(p4i));jSt.SDK_INFO={[ZKe.SEMRESATTRS_TELEMETRY_SDK_NAME]:"opentelemetry",[ZKe.SEMRESATTRS_PROCESS_RUNTIME_NAME]:"node",[ZKe.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]:ZKe.TELEMETRYSDKLANGUAGEVALUES_NODEJS,[ZKe.SEMRESATTRS_TELEMETRY_SDK_VERSION]:Yxc.VERSION}});var h4i=H(zSt=>{"use strict";Object.defineProperty(zSt,"__esModule",{value:!0});zSt.unrefTimer=void 0;function Qxc(e){e.unref()}zSt.unrefTimer=Qxc});var C4i=H(gD=>{"use strict";Object.defineProperty(gD,"__esModule",{value:!0});gD.unrefTimer=gD.SDK_INFO=gD.otperformance=gD.RandomIdGenerator=gD.hexToBase64=gD._globalThis=gD.getEnv=gD.getEnvWithoutDefaults=void 0;var m4i=OOi();Object.defineProperty(gD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return m4i.getEnvWithoutDefaults}});Object.defineProperty(gD,"getEnv",{enumerable:!0,get:function(){return m4i.getEnv}});var Xxc=MOi();Object.defineProperty(gD,"_globalThis",{enumerable:!0,get:function(){return Xxc._globalThis}});var Jxc=YOi();Object.defineProperty(gD,"hexToBase64",{enumerable:!0,get:function(){return Jxc.hexToBase64}});var Uxc=JOi();Object.defineProperty(gD,"RandomIdGenerator",{enumerable:!0,get:function(){return Uxc.RandomIdGenerator}});var Kxc=UOi();Object.defineProperty(gD,"otperformance",{enumerable:!0,get:function(){return Kxc.otperformance}});var jxc=I4i();Object.defineProperty(gD,"SDK_INFO",{enumerable:!0,get:function(){return jxc.SDK_INFO}});var zxc=h4i();Object.defineProperty(gD,"unrefTimer",{enumerable:!0,get:function(){return zxc.unrefTimer}})});var e9r=H(AD=>{"use strict";Object.defineProperty(AD,"__esModule",{value:!0});AD.unrefTimer=AD.otperformance=AD.hexToBase64=AD.getEnvWithoutDefaults=AD.getEnv=AD._globalThis=AD.SDK_INFO=AD.RandomIdGenerator=void 0;var jce=C4i();Object.defineProperty(AD,"RandomIdGenerator",{enumerable:!0,get:function(){return jce.RandomIdGenerator}});Object.defineProperty(AD,"SDK_INFO",{enumerable:!0,get:function(){return jce.SDK_INFO}});Object.defineProperty(AD,"_globalThis",{enumerable:!0,get:function(){return jce._globalThis}});Object.defineProperty(AD,"getEnv",{enumerable:!0,get:function(){return jce.getEnv}});Object.defineProperty(AD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return jce.getEnvWithoutDefaults}});Object.defineProperty(AD,"hexToBase64",{enumerable:!0,get:function(){return jce.hexToBase64}});Object.defineProperty(AD,"otperformance",{enumerable:!0,get:function(){return jce.otperformance}});Object.defineProperty(AD,"unrefTimer",{enumerable:!0,get:function(){return jce.unrefTimer}})});var E4i=H(OE=>{"use strict";Object.defineProperty(OE,"__esModule",{value:!0});OE.addHrTimes=OE.isTimeInput=OE.isTimeInputHrTime=OE.hrTimeToMicroseconds=OE.hrTimeToMilliseconds=OE.hrTimeToNanoseconds=OE.hrTimeToTimeStamp=OE.hrTimeDuration=OE.timeInputToHrTime=OE.hrTime=OE.getTimeOrigin=OE.millisToHrTime=void 0;var t9r=e9r(),_4i=9,qxc=6,$xc=Math.pow(10,qxc),qSt=Math.pow(10,_4i);function LKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*$xc);return[r,n]}OE.millisToHrTime=LKe;function r9r(){let e=t9r.otperformance.timeOrigin;if(typeof e!="number"){let t=t9r.otperformance;e=t.timing&&t.timing.fetchStart}return e}OE.getTimeOrigin=r9r;function y4i(e){let t=LKe(r9r()),r=LKe(typeof e=="number"?e:t9r.otperformance.now());return b4i(t,r)}OE.hrTime=y4i;function eGc(e){if(n9r(e))return e;if(typeof e=="number")return e=qSt&&(r[1]-=qSt,r[0]+=1),r}OE.addHrTimes=b4i});var S4i=H(VKe=>{"use strict";Object.defineProperty(VKe,"__esModule",{value:!0});VKe.ExportResultCode=void 0;var aGc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(aGc=VKe.ExportResultCode||(VKe.ExportResultCode={}))});var B4i=H($St=>{"use strict";Object.defineProperty($St,"__esModule",{value:!0});$St.CompositePropagator=void 0;var v4i=(GI(),vi(xI)),i9r=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){v4i.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){v4i.diag.warn(`Failed to extract with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};$St.CompositePropagator=i9r});var w4i=H(LDe=>{"use strict";Object.defineProperty(LDe,"__esModule",{value:!0});LDe.validateValue=LDe.validateKey=void 0;var s9r="[_0-9a-z-*/]",cGc=`[a-z]${s9r}{0,255}`,lGc=`[a-z0-9]${s9r}{0,240}@[a-z]${s9r}{0,13}`,uGc=new RegExp(`^(?:${cGc}|${lGc})$`),gGc=/^[ -~]{0,255}[!-~]$/,AGc=/,|=/;function dGc(e){return uGc.test(e)}LDe.validateKey=dGc;function pGc(e){return gGc.test(e)&&!AGc.test(e)}LDe.validateValue=pGc});var a9r=H(evt=>{"use strict";Object.defineProperty(evt,"__esModule",{value:!0});evt.TraceState=void 0;var T4i=w4i(),R4i=32,fGc=512,N4i=",",D4i="=",o9r=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+D4i+this.get(r)),t),[]).join(N4i)}_parse(t){t.length>fGc||(this._internalState=t.split(N4i).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(D4i);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,T4i.validateKey)(l)&&(0,T4i.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>R4i&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,R4i))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};evt.TraceState=o9r});var x4i=H(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.W3CTraceContextPropagator=HG.parseTraceParent=HG.TRACE_STATE_HEADER=HG.TRACE_PARENT_HEADER=void 0;var tvt=(GI(),vi(xI)),IGc=GKe(),hGc=a9r();HG.TRACE_PARENT_HEADER="traceparent";HG.TRACE_STATE_HEADER="tracestate";var mGc="00",CGc="(?!ff)[\\da-f]{2}",_Gc="(?![0]{32})[\\da-f]{32}",yGc="(?![0]{16})[\\da-f]{16}",bGc="[\\da-f]{2}",EGc=new RegExp(`^\\s?(${CGc})-(${_Gc})-(${yGc})-(${bGc})(-.*)?\\s?$`);function k4i(e){let t=EGc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}HG.parseTraceParent=k4i;var c9r=class{inject(t,r,n){let a=tvt.trace.getSpanContext(t);if(!a||(0,IGc.isTracingSuppressed)(t)||!(0,tvt.isSpanContextValid)(a))return;let o=`${mGc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||tvt.TraceFlags.NONE).toString(16)}`;n.set(r,HG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,HG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,HG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=k4i(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,HG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new hGc.TraceState(typeof f=="string"?f:void 0)}return tvt.trace.setSpanContext(t,l)}fields(){return[HG.TRACE_PARENT_HEADER,HG.TRACE_STATE_HEADER]}};HG.W3CTraceContextPropagator=c9r});var G4i=H(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.getRPCMetadata=m4.deleteRPCMetadata=m4.setRPCMetadata=m4.RPCType=void 0;var SGc=(GI(),vi(xI)),l9r=(0,SGc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),vGc;(function(e){e.HTTP="http"})(vGc=m4.RPCType||(m4.RPCType={}));function BGc(e,t){return e.setValue(l9r,t)}m4.setRPCMetadata=BGc;function wGc(e){return e.deleteValue(l9r)}m4.deleteRPCMetadata=wGc;function TGc(e){return e.getValue(l9r)}m4.getRPCMetadata=TGc});var g9r=H(rvt=>{"use strict";Object.defineProperty(rvt,"__esModule",{value:!0});rvt.AlwaysOffSampler=void 0;var RGc=(GI(),vi(xI)),u9r=class{shouldSample(){return{decision:RGc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};rvt.AlwaysOffSampler=u9r});var d9r=H(nvt=>{"use strict";Object.defineProperty(nvt,"__esModule",{value:!0});nvt.AlwaysOnSampler=void 0;var NGc=(GI(),vi(xI)),A9r=class{shouldSample(){return{decision:NGc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};nvt.AlwaysOnSampler=A9r});var Z4i=H(svt=>{"use strict";Object.defineProperty(svt,"__esModule",{value:!0});svt.ParentBasedSampler=void 0;var ivt=(GI(),vi(xI)),DGc=XLr(),F4i=g9r(),p9r=d9r(),f9r=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,DGc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new p9r.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new p9r.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new F4i.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new p9r.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new F4i.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=ivt.trace.getSpanContext(t);return!A||!(0,ivt.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&ivt.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&ivt.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};svt.ParentBasedSampler=f9r});var L4i=H(ovt=>{"use strict";Object.defineProperty(ovt,"__esModule",{value:!0});ovt.TraceIdRatioBasedSampler=void 0;var I9r=(GI(),vi(xI)),h9r=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,I9r.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};ovt.TraceIdRatioBasedSampler=h9r});var M4i=H(avt=>{"use strict";Object.defineProperty(avt,"__esModule",{value:!0});avt.isPlainObject=void 0;var kGc="[object Object]",xGc="[object Null]",GGc="[object Undefined]",FGc=Function.prototype,V4i=FGc.toString,ZGc=V4i.call(Object),LGc=VGc(Object.getPrototypeOf,Object),P4i=Object.prototype,W4i=P4i.hasOwnProperty,UCe=Symbol?Symbol.toStringTag:void 0,O4i=P4i.toString;function VGc(e,t){return function(r){return e(t(r))}}function PGc(e){if(!WGc(e)||OGc(e)!==kGc)return!1;let t=LGc(e);if(t===null)return!0;let r=W4i.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&V4i.call(r)===ZGc}avt.isPlainObject=PGc;function WGc(e){return e!=null&&typeof e=="object"}function OGc(e){return e==null?e===void 0?GGc:xGc:UCe&&UCe in Object(e)?MGc(e):HGc(e)}function MGc(e){let t=W4i.call(e,UCe),r=e[UCe],n=!1;try{e[UCe]=void 0,n=!0}catch{}let a=O4i.call(e);return n&&(t?e[UCe]=r:delete e[UCe]),a}function HGc(e){return O4i.call(e)}});var J4i=H(uvt=>{"use strict";Object.defineProperty(uvt,"__esModule",{value:!0});uvt.merge=void 0;var H4i=M4i(),YGc=20;function QGc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=Q4i(t,e.shift(),0,r);return t}uvt.merge=QGc;function m9r(e){return lvt(e)?e.slice():e}function Q4i(e,t,r=0,n){let a;if(!(r>YGc)){if(r++,cvt(e)||cvt(t)||X4i(t))a=m9r(t);else if(lvt(e)){if(a=e.slice(),lvt(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(Y4i(e,f,n)||Y4i(t,f,n))delete a[f];else{if(PKe(C)&&PKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=Q4i(a[f],I,r,n)}}}}else a=t;return a}}function Y4i(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function XGc(e,t){return!(!(0,H4i.isPlainObject)(e)||!(0,H4i.isPlainObject)(t))}});var U4i=H(VDe=>{"use strict";Object.defineProperty(VDe,"__esModule",{value:!0});VDe.callWithTimeout=VDe.TimeoutError=void 0;var gvt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};VDe.TimeoutError=gvt;function JGc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new gvt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}VDe.callWithTimeout=JGc});var j4i=H(PDe=>{"use strict";Object.defineProperty(PDe,"__esModule",{value:!0});PDe.isUrlIgnored=PDe.urlMatches=void 0;function K4i(e,t){return typeof t=="string"?e===t:!!e.match(t)}PDe.urlMatches=K4i;function UGc(e,t){if(!t)return!1;for(let r of t)if(K4i(e,r))return!0;return!1}PDe.isUrlIgnored=UGc});var z4i=H(Avt=>{"use strict";Object.defineProperty(Avt,"__esModule",{value:!0});Avt.isWrapped=void 0;function KGc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Avt.isWrapped=KGc});var q4i=H(dvt=>{"use strict";Object.defineProperty(dvt,"__esModule",{value:!0});dvt.Deferred=void 0;var C9r=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};dvt.Deferred=C9r});var $4i=H(pvt=>{"use strict";Object.defineProperty(pvt,"__esModule",{value:!0});pvt.BindOnceFuture=void 0;var jGc=q4i(),_9r=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new jGc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};pvt.BindOnceFuture=_9r});var tJi=H(fvt=>{"use strict";Object.defineProperty(fvt,"__esModule",{value:!0});fvt._export=void 0;var eJi=(GI(),vi(xI)),zGc=GKe();function qGc(e,t){return new Promise(r=>{eJi.context.with((0,zGc.suppressTracing)(eJi.context.active()),()=>{e.export(t,n=>{r(n)})})})}fvt._export=qGc});var E9r=H(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ja.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Ja.TraceState=Ja.unsuppressTracing=Ja.suppressTracing=Ja.isTracingSuppressed=Ja.TraceIdRatioBasedSampler=Ja.ParentBasedSampler=Ja.AlwaysOnSampler=Ja.AlwaysOffSampler=Ja.setRPCMetadata=Ja.getRPCMetadata=Ja.deleteRPCMetadata=Ja.RPCType=Ja.parseTraceParent=Ja.W3CTraceContextPropagator=Ja.TRACE_STATE_HEADER=Ja.TRACE_PARENT_HEADER=Ja.CompositePropagator=Ja.unrefTimer=Ja.otperformance=Ja.hexToBase64=Ja.getEnvWithoutDefaults=Ja.getEnv=Ja._globalThis=Ja.SDK_INFO=Ja.RandomIdGenerator=Ja.baggageUtils=Ja.ExportResultCode=Ja.hexToBinary=Ja.timeInputToHrTime=Ja.millisToHrTime=Ja.isTimeInputHrTime=Ja.isTimeInput=Ja.hrTimeToTimeStamp=Ja.hrTimeToNanoseconds=Ja.hrTimeToMilliseconds=Ja.hrTimeToMicroseconds=Ja.hrTimeDuration=Ja.hrTime=Ja.getTimeOrigin=Ja.addHrTimes=Ja.loggingErrorHandler=Ja.setGlobalErrorHandler=Ja.globalErrorHandler=Ja.sanitizeAttributes=Ja.isAttributeValue=Ja.isAttributeKey=Ja.AnchoredClock=Ja.W3CBaggagePropagator=void 0;Ja.internal=Ja.VERSION=Ja.BindOnceFuture=Ja.isWrapped=Ja.urlMatches=Ja.isUrlIgnored=Ja.callWithTimeout=Ja.TimeoutError=Ja.TracesSamplerValues=Ja.merge=Ja.parseEnvironment=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Ja.DEFAULT_ENVIRONMENT=void 0;var $Gc=xOi();Object.defineProperty(Ja,"W3CBaggagePropagator",{enumerable:!0,get:function(){return $Gc.W3CBaggagePropagator}});var eFc=GOi();Object.defineProperty(Ja,"AnchoredClock",{enumerable:!0,get:function(){return eFc.AnchoredClock}});var y9r=POi();Object.defineProperty(Ja,"isAttributeKey",{enumerable:!0,get:function(){return y9r.isAttributeKey}});Object.defineProperty(Ja,"isAttributeValue",{enumerable:!0,get:function(){return y9r.isAttributeValue}});Object.defineProperty(Ja,"sanitizeAttributes",{enumerable:!0,get:function(){return y9r.sanitizeAttributes}});var rJi=XLr();Object.defineProperty(Ja,"globalErrorHandler",{enumerable:!0,get:function(){return rJi.globalErrorHandler}});Object.defineProperty(Ja,"setGlobalErrorHandler",{enumerable:!0,get:function(){return rJi.setGlobalErrorHandler}});var tFc=QLr();Object.defineProperty(Ja,"loggingErrorHandler",{enumerable:!0,get:function(){return tFc.loggingErrorHandler}});var dH=E4i();Object.defineProperty(Ja,"addHrTimes",{enumerable:!0,get:function(){return dH.addHrTimes}});Object.defineProperty(Ja,"getTimeOrigin",{enumerable:!0,get:function(){return dH.getTimeOrigin}});Object.defineProperty(Ja,"hrTime",{enumerable:!0,get:function(){return dH.hrTime}});Object.defineProperty(Ja,"hrTimeDuration",{enumerable:!0,get:function(){return dH.hrTimeDuration}});Object.defineProperty(Ja,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return dH.hrTimeToMicroseconds}});Object.defineProperty(Ja,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return dH.hrTimeToMilliseconds}});Object.defineProperty(Ja,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return dH.hrTimeToNanoseconds}});Object.defineProperty(Ja,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return dH.hrTimeToTimeStamp}});Object.defineProperty(Ja,"isTimeInput",{enumerable:!0,get:function(){return dH.isTimeInput}});Object.defineProperty(Ja,"isTimeInputHrTime",{enumerable:!0,get:function(){return dH.isTimeInputHrTime}});Object.defineProperty(Ja,"millisToHrTime",{enumerable:!0,get:function(){return dH.millisToHrTime}});Object.defineProperty(Ja,"timeInputToHrTime",{enumerable:!0,get:function(){return dH.timeInputToHrTime}});var rFc=jLr();Object.defineProperty(Ja,"hexToBinary",{enumerable:!0,get:function(){return rFc.hexToBinary}});var nFc=S4i();Object.defineProperty(Ja,"ExportResultCode",{enumerable:!0,get:function(){return nFc.ExportResultCode}});var Ivt=WLr();Ja.baggageUtils={getKeyPairs:Ivt.getKeyPairs,serializeKeyPairs:Ivt.serializeKeyPairs,parseKeyPairsIntoRecord:Ivt.parseKeyPairsIntoRecord,parsePairKeyValue:Ivt.parsePairKeyValue};var zce=e9r();Object.defineProperty(Ja,"RandomIdGenerator",{enumerable:!0,get:function(){return zce.RandomIdGenerator}});Object.defineProperty(Ja,"SDK_INFO",{enumerable:!0,get:function(){return zce.SDK_INFO}});Object.defineProperty(Ja,"_globalThis",{enumerable:!0,get:function(){return zce._globalThis}});Object.defineProperty(Ja,"getEnv",{enumerable:!0,get:function(){return zce.getEnv}});Object.defineProperty(Ja,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return zce.getEnvWithoutDefaults}});Object.defineProperty(Ja,"hexToBase64",{enumerable:!0,get:function(){return zce.hexToBase64}});Object.defineProperty(Ja,"otperformance",{enumerable:!0,get:function(){return zce.otperformance}});Object.defineProperty(Ja,"unrefTimer",{enumerable:!0,get:function(){return zce.unrefTimer}});var iFc=B4i();Object.defineProperty(Ja,"CompositePropagator",{enumerable:!0,get:function(){return iFc.CompositePropagator}});var hvt=x4i();Object.defineProperty(Ja,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_PARENT_HEADER}});Object.defineProperty(Ja,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_STATE_HEADER}});Object.defineProperty(Ja,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return hvt.W3CTraceContextPropagator}});Object.defineProperty(Ja,"parseTraceParent",{enumerable:!0,get:function(){return hvt.parseTraceParent}});var mvt=G4i();Object.defineProperty(Ja,"RPCType",{enumerable:!0,get:function(){return mvt.RPCType}});Object.defineProperty(Ja,"deleteRPCMetadata",{enumerable:!0,get:function(){return mvt.deleteRPCMetadata}});Object.defineProperty(Ja,"getRPCMetadata",{enumerable:!0,get:function(){return mvt.getRPCMetadata}});Object.defineProperty(Ja,"setRPCMetadata",{enumerable:!0,get:function(){return mvt.setRPCMetadata}});var sFc=g9r();Object.defineProperty(Ja,"AlwaysOffSampler",{enumerable:!0,get:function(){return sFc.AlwaysOffSampler}});var oFc=d9r();Object.defineProperty(Ja,"AlwaysOnSampler",{enumerable:!0,get:function(){return oFc.AlwaysOnSampler}});var aFc=Z4i();Object.defineProperty(Ja,"ParentBasedSampler",{enumerable:!0,get:function(){return aFc.ParentBasedSampler}});var cFc=L4i();Object.defineProperty(Ja,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return cFc.TraceIdRatioBasedSampler}});var b9r=GKe();Object.defineProperty(Ja,"isTracingSuppressed",{enumerable:!0,get:function(){return b9r.isTracingSuppressed}});Object.defineProperty(Ja,"suppressTracing",{enumerable:!0,get:function(){return b9r.suppressTracing}});Object.defineProperty(Ja,"unsuppressTracing",{enumerable:!0,get:function(){return b9r.unsuppressTracing}});var lFc=a9r();Object.defineProperty(Ja,"TraceState",{enumerable:!0,get:function(){return lFc.TraceState}});var WDe=ULr();Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ENVIRONMENT",{enumerable:!0,get:function(){return WDe.DEFAULT_ENVIRONMENT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT}});Object.defineProperty(Ja,"parseEnvironment",{enumerable:!0,get:function(){return WDe.parseEnvironment}});var uFc=J4i();Object.defineProperty(Ja,"merge",{enumerable:!0,get:function(){return uFc.merge}});var gFc=JLr();Object.defineProperty(Ja,"TracesSamplerValues",{enumerable:!0,get:function(){return gFc.TracesSamplerValues}});var nJi=U4i();Object.defineProperty(Ja,"TimeoutError",{enumerable:!0,get:function(){return nJi.TimeoutError}});Object.defineProperty(Ja,"callWithTimeout",{enumerable:!0,get:function(){return nJi.callWithTimeout}});var iJi=j4i();Object.defineProperty(Ja,"isUrlIgnored",{enumerable:!0,get:function(){return iJi.isUrlIgnored}});Object.defineProperty(Ja,"urlMatches",{enumerable:!0,get:function(){return iJi.urlMatches}});var AFc=z4i();Object.defineProperty(Ja,"isWrapped",{enumerable:!0,get:function(){return AFc.isWrapped}});var dFc=$4i();Object.defineProperty(Ja,"BindOnceFuture",{enumerable:!0,get:function(){return dFc.BindOnceFuture}});var pFc=qLr();Object.defineProperty(Ja,"VERSION",{enumerable:!0,get:function(){return pFc.VERSION}});var fFc=tJi();Ja.internal={_export:fFc._export}});var aJi=H((fMu,S9r)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(r){if((r>0&&r<1/0)===!1)throw typeof r!="number"&&typeof r!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(r))},e=new Int32Array(new SharedArrayBuffer(4));S9r.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let n=Date.now()+Number(t);for(;n>Date.now(););};S9r.exports=e}});var fJi=H((IMu,pJi)=>{"use strict";var sw=wt("fs"),IFc=wt("events"),hFc=wt("util").inherits,cJi=wt("path"),B9r=aJi(),_vt=100,yvt=Buffer.allocUnsafe(0),mFc=16*1024,lJi="buffer",uJi="utf8";function gJi(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function r(o,l){if(o){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",o)}):t.emit("error",o);return}let A=t._reopening;t.fd=l,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():A&&process.nextTick(()=>t.emit("drain")))}let n=t.append?"a":"w",a=t.mode;if(t.sync)try{t.mkdir&&sw.mkdirSync(cJi.dirname(e),{recursive:!0});let o=sw.openSync(e,n,a);r(null,o)}catch(o){throw r(o),o}else t.mkdir?sw.mkdir(cJi.dirname(e),{recursive:!0},o=>{if(o)return r(o);sw.open(e,n,a,r)}):sw.open(e,n,a,r)}function C4(e){if(!(this instanceof C4))return new C4(e);let{fd:t,dest:r,minLength:n,maxLength:a,maxWrite:o,sync:l,append:A=!0,mkdir:f,retryEAGAIN:I,fsync:C,contentMode:b,mode:E}=e||{};t=t||r,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(n||0,16387),this.file=null,this.destroyed=!1,this.minLength=n||0,this.maxLength=a||0,this.maxWrite=o||mFc,this.sync=l||!1,this.writable=!0,this._fsync=C||!1,this.append=A||!1,this.mode=E,this.retryEAGAIN=I||(()=>!0),this.mkdir=f||!1;let N,B;if(b===lJi)this._writingBuf=yvt,this.write=yFc,this.flush=EFc,this.flushSync=vFc,this._actualWrite=wFc,N=()=>sw.writeSync(this.fd,this._writingBuf),B=()=>sw.write(this.fd,this._writingBuf,this.release);else if(b===void 0||b===uJi)this._writingBuf="",this.write=_Fc,this.flush=bFc,this.flushSync=SFc,this._actualWrite=BFc,N=()=>sw.writeSync(this.fd,this._writingBuf,"utf8"),B=()=>sw.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${uJi}" and "${lJi}", but passed ${b}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")gJi(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(F,Q)=>{if(F){if((F.code==="EAGAIN"||F.code==="EBUSY")&&this.retryEAGAIN(F,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{B9r(_vt),this.release(void 0,0)}catch(ne){this.release(ne)}else setTimeout(B,_vt);else this._writing=!1,this.emit("error",F);return}this.emit("write",Q);let X=v9r(this._writingBuf,this._len,Q);if(this._len=X.len,this._writingBuf=X.writingBuf,this._writingBuf.length){if(!this.sync){B();return}try{do{let ne=N(),ce=v9r(this._writingBuf,this._len,ne);this._len=ce.len,this._writingBuf=ce.writingBuf}while(this._writingBuf.length)}catch(ne){this.release(ne);return}}this._fsync&&sw.fsyncSync(this.fd);let ae=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):ae>this.minLength?this._actualWrite():this._ending?ae>0?this._actualWrite():(this._writing=!1,bvt(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(CFc,this)):this.emit("drain"))},this.on("newListener",function(F){F==="drain"&&(this._asyncDrainScheduled=!1)})}function v9r(e,t,r){return typeof e=="string"&&Buffer.byteLength(e)!==r&&(r=Buffer.from(e).subarray(0,r).toString().length),t=Math.max(t-r,0),e=e.slice(r),{writingBuf:e,len:t}}function CFc(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}hFc(C4,IFc);function AJi(e,t){return e.length===0?yvt:e.length===1?e[0]:Buffer.concat(e,t)}function _Fc(e){if(this.destroyed)throw new Error("SonicBoom destroyed");let t=this._len+e.length,r=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(""+e):r[r.length-1]+=e,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(r.push([e]),n.push(e.length)):(r[r.length-1].push(e),n[n.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{this._fsync?(this._flushPending=!1,e()):sw.fsync(this.fd,n=>{this._flushPending=!1,e(n)}),this.off("error",r)},r=n=>{this._flushPending=!1,e(n),this.off("drain",t)};this.once("drain",t),this.once("error",r)}function bFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function EFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}C4.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&sw.close(t,r=>{if(r)return this.emit("error",r)})}),gJi(this.file,this)};C4.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():bvt(this)))};function SFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e;){e.length<=0&&(e=this._bufs[0]);try{let t=sw.writeSync(this.fd,e,"utf8"),r=v9r(e,this._len,t);e=r.writingBuf,this._len=r.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}try{sw.fsyncSync(this.fd)}catch{}}function vFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=yvt);let e=yvt;for(;this._bufs.length||e.length;){e.length<=0&&(e=AJi(this._bufs[0],this._lens[0]));try{let t=sw.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}}C4.prototype.destroy=function(){this.destroyed||bvt(this)};function BFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,"utf8",e)}function wFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:AJi(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,e)}function bvt(e){if(e.fd===-1){e.once("ready",bvt.bind(null,e));return}e.destroyed=!0,e._bufs=[],e._lens=[],sw.fsync(e.fd,t);function t(){e.fd!==1&&e.fd!==2?sw.close(e.fd,r):r()}function r(n){if(n){e.emit("error",n);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}C4.SonicBoom=C4;C4.default=C4;pJi.exports=C4});var yJi=H((hMu,_Ji)=>{"use strict";var _4={exit:[],beforeExit:[]},IJi={exit:NFc,beforeExit:DFc},ODe;function TFc(){ODe===void 0&&(ODe=new FinalizationRegistry(kFc))}function RFc(e){_4[e].length>0||process.on(e,IJi[e])}function hJi(e){_4[e].length>0||(process.removeListener(e,IJi[e]),_4.exit.length===0&&_4.beforeExit.length===0&&(ODe=void 0))}function NFc(){mJi("exit")}function DFc(){mJi("beforeExit")}function mJi(e){for(let t of _4[e]){let r=t.deref(),n=t.fn;r!==void 0&&n(r,e)}_4[e]=[]}function kFc(e){for(let t of["exit","beforeExit"]){let r=_4[t].indexOf(e);_4[t].splice(r,r+1),hJi(t)}}function CJi(e,t,r){if(t===void 0)throw new Error("the object can't be undefined");RFc(e);let n=new WeakRef(t);n.fn=r,TFc(),ODe.register(t,n),_4[e].push(n)}function xFc(e,t){CJi("exit",e,t)}function GFc(e,t){CJi("beforeExit",e,t)}function FFc(e){if(ODe!==void 0){ODe.unregister(e);for(let t of["exit","beforeExit"])_4[t]=_4[t].filter(r=>{let n=r.deref();return n&&n!==e}),hJi(t)}}_Ji.exports={register:xFc,registerBeforeExit:GFc,unregister:FFc}});var DJi=H((D9r,k9r)=>{(function(e,t){typeof D9r=="object"&&typeof k9r<"u"?k9r.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.uniqolor=t())})(D9r,function(){"use strict";function e(Se,De){var k=Se==null?null:typeof Symbol<"u"&&Se[Symbol.iterator]||Se["@@iterator"];if(k!=null){var et,ct,Me,je,St=[],At=!0,Yt=!1;try{if(Me=(k=k.call(Se)).next,De===0){if(Object(k)!==k)return;At=!1}else for(;!(At=(et=Me.call(k)).done)&&(St.push(et.value),St.length!==De);At=!0);}catch(Tr){Yt=!0,ct=Tr}finally{try{if(!At&&k.return!=null&&(je=k.return(),Object(je)!==je))return}finally{if(Yt)throw ct}}return St}}function t(Se,De){return a(Se)||e(Se,De)||l(Se,De)||I()}function r(Se){return n(Se)||o(Se)||l(Se)||f()}function n(Se){if(Array.isArray(Se))return A(Se)}function a(Se){if(Array.isArray(Se))return Se}function o(Se){if(typeof Symbol<"u"&&Se[Symbol.iterator]!=null||Se["@@iterator"]!=null)return Array.from(Se)}function l(Se,De){if(Se){if(typeof Se=="string")return A(Se,De);var k=Object.prototype.toString.call(Se).slice(8,-1);if(k==="Object"&&Se.constructor&&(k=Se.constructor.name),k==="Map"||k==="Set")return Array.from(Se);if(k==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(k))return A(Se,De)}}function A(Se,De){(De==null||De>Se.length)&&(De=Se.length);for(var k=0,et=new Array(De);kt.trim()).join(" ")};T9i.O=function(e){return this.inspectOpts.colors=this.useColors,$1t.inspect(e,this.inspectOpts)}});var PFr=H((eVu,VFr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?VFr.exports=w9i():VFr.exports=R9i()});var D9i=H((tVu,N9i)=>{var{Transform:q_c}=wt("stream"),WFr=class extends q_c{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,r,n){n(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(a,o)=>(this.replaced=!0,o+this.host)))}};N9i.exports=WFr});var G9i=H((nVu,x9i)=>{var{EventEmitter:$_c}=wt("events"),Bj=PFr()("localtunnel:client"),OFr=wt("fs"),k9i=wt("net"),e0c=wt("tls"),t0c=D9i();x9i.exports=class extends $_c{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,r=t.remote_ip||t.remote_host,n=t.remote_port,a=t.local_host||"localhost",o=t.local_port,l=t.local_https?"https":"http",A=t.allow_invalid_cert;Bj("establishing tunnel %s://%s:%s <> %s:%s",l,a,o,r,n);let f=k9i.connect({host:r,port:n});f.setKeepAlive(!0),f.on("error",C=>{Bj("got remote connection error",C.message),C.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${r}:${n} (check your firewall settings)`)),f.end()});let I=()=>{if(f.destroyed){Bj("remote destroyed"),this.emit("dead");return}Bj("connecting locally to %s://%s:%d",l,a,o),f.pause(),A&&Bj("allowing invalid certificates");let C=()=>A?{rejectUnauthorized:!1}:{cert:OFr.readFileSync(t.local_cert),key:OFr.readFileSync(t.local_key),ca:t.local_ca?[OFr.readFileSync(t.local_ca)]:void 0},b=t.local_https?e0c.connect({host:a,port:o,...C()}):k9i.connect({host:a,port:o}),E=()=>{Bj("remote close"),this.emit("dead"),b.end()};f.once("close",E),b.once("error",N=>{if(Bj("local error %s",N.message),b.end(),f.removeListener("close",E),N.code!=="ECONNREFUSED")return f.end();setTimeout(I,1e3)}),b.once("connect",()=>{Bj("connected locally"),f.resume();let N=f;t.local_host&&(Bj("transform Host header to %s",t.local_host),N=f.pipe(new t0c({host:t.local_host}))),N.pipe(b).pipe(f),b.once("close",B=>{Bj("local connection closed [%s]",B)})})};f.on("data",C=>{let b=C.toString().match(/^(\w+) (\S+)/);b&&this.emit("request",{method:b[1],path:b[2]})}),f.once("connect",()=>{this.emit("open",f),I()})}}});var L9i=H((sVu,Z9i)=>{var{parse:r0c}=wt("url"),{EventEmitter:F9i}=wt("events"),n0c=E9i(),oKe=PFr()("localtunnel:client"),i0c=G9i();Z9i.exports=class extends F9i{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:r,ip:n,port:a,url:o,cached_url:l,max_conn_count:A}=t,{host:f,port:I,local_host:C}=this.opts,{local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}=this.opts;return{name:r,url:o,cached_url:l,max_conn:A||1,remote_host:r0c(f).hostname,remote_ip:n,remote_port:a,local_port:I,local_host:C,local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}}_init(t){let r=this.opts,n=this._getInfo.bind(this),a={responseType:"json"},o=`${r.host}/`,l=r.subdomain,A=o+(l||"?new");(function f(){n0c.get(A,a).then(I=>{let C=I.data;if(oKe("got tunnel information",I.data),I.status!==200){let b=new Error(C&&C.message||"localtunnel server returned an error, please try again");return t(b)}t(null,n(C))}).catch(I=>(oKe(`tunnel server offline: ${I.message}, retry 1s`),setTimeout(f,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(F9i.defaultMaxListeners||10)),this.tunnelCluster=new i0c(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",n=>{oKe("got socket error",n.message),this.emit("error",n)});let r=0;this.tunnelCluster.on("open",n=>{r++,oKe("tunnel open [total: %d]",r);let a=()=>{n.destroy()};if(this.closed)return a();this.once("close",a),n.once("close",()=>{this.removeListener("close",a)})}),this.tunnelCluster.on("dead",()=>{r--,oKe("tunnel dead [total: %d]",r),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",n=>{this.emit("request",n)});for(let n=0;n{if(r)return t(r);this.clientId=n.name,this.url=n.url,n.cached_url&&(this.cachedUrl=n.cached_url),this._establish(n),t()})}close(){this.closed=!0,this.emit("close")}}});var P9i=H((oVu,V9i)=>{var s0c=L9i();V9i.exports=function(t,r,n){let a=typeof t=="object"?t:{...r,port:t},o=typeof t=="object"?r:n,l=new s0c(a);return o?(l.open(A=>A?o(A):o(null,l)),l):new Promise((A,f)=>l.open(I=>I?f(I):A(l)))}});var lVi=H(cVi=>{"use strict";Object.defineProperty(cVi,"__esModule",{value:!0})});var gVi=H(uVi=>{"use strict";Object.defineProperty(uVi,"__esModule",{value:!0})});var AVi=H(AKe=>{"use strict";Object.defineProperty(AKe,"__esModule",{value:!0});AKe.SeverityNumber=void 0;var w0c;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(w0c=AKe.SeverityNumber||(AKe.SeverityNumber={}))});var pVi=H(dVi=>{"use strict";Object.defineProperty(dVi,"__esModule",{value:!0})});var QFr=H(CDe=>{"use strict";Object.defineProperty(CDe,"__esModule",{value:!0});CDe.NOOP_LOGGER=CDe.NoopLogger=void 0;var a2t=class{emit(t){}};CDe.NoopLogger=a2t;CDe.NOOP_LOGGER=new a2t});var XFr=H(_De=>{"use strict";Object.defineProperty(_De,"__esModule",{value:!0});_De.NOOP_LOGGER_PROVIDER=_De.NoopLoggerProvider=void 0;var T0c=QFr(),c2t=class{getLogger(t,r,n){return new T0c.NoopLogger}};_De.NoopLoggerProvider=c2t;_De.NOOP_LOGGER_PROVIDER=new c2t});var fVi=H(l2t=>{"use strict";Object.defineProperty(l2t,"__esModule",{value:!0});l2t._globalThis=void 0;l2t._globalThis=typeof globalThis=="object"?globalThis:global});var IVi=H(TCe=>{"use strict";var R0c=TCe&&TCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),N0c=TCe&&TCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&R0c(t,e,r)};Object.defineProperty(TCe,"__esModule",{value:!0});N0c(fVi(),TCe)});var hVi=H(RCe=>{"use strict";var D0c=RCe&&RCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),k0c=RCe&&RCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&D0c(t,e,r)};Object.defineProperty(RCe,"__esModule",{value:!0});k0c(IVi(),RCe)});var mVi=H(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj.API_BACKWARDS_COMPATIBILITY_VERSION=wj.makeGetter=wj._global=wj.GLOBAL_LOGS_API_KEY=void 0;var x0c=hVi();wj.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");wj._global=x0c._globalThis;function G0c(e,t,r){return n=>n===e?t:r}wj.makeGetter=G0c;wj.API_BACKWARDS_COMPATIBILITY_VERSION=1});var _Vi=H(u2t=>{"use strict";Object.defineProperty(u2t,"__esModule",{value:!0});u2t.LogsAPI=void 0;var gH=mVi(),CVi=XFr(),JFr=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return gH._global[gH.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(gH._global[gH.GLOBAL_LOGS_API_KEY]=(0,gH.makeGetter)(gH.API_BACKWARDS_COMPATIBILITY_VERSION,t,CVi.NOOP_LOGGER_PROVIDER),t)}getLoggerProvider(){var t,r;return(r=(t=gH._global[gH.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(gH._global,gH.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&r!==void 0?r:CVi.NOOP_LOGGER_PROVIDER}getLogger(t,r,n){return this.getLoggerProvider().getLogger(t,r,n)}disable(){delete gH._global[gH.GLOBAL_LOGS_API_KEY]}};u2t.LogsAPI=JFr});var bDe=H(wV=>{"use strict";var F0c=wV&&wV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yDe=wV&&wV.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&F0c(t,e,r)};Object.defineProperty(wV,"__esModule",{value:!0});wV.logs=void 0;yDe(lVi(),wV);yDe(gVi(),wV);yDe(AVi(),wV);yDe(pVi(),wV);yDe(QFr(),wV);yDe(XFr(),wV);var Z0c=_Vi();wV.logs=Z0c.LogsAPI.getInstance()});var yVi,bVi=bc(()=>{yVi=typeof globalThis=="object"?globalThis:global});var EVi=bc(()=>{bVi()});var SVi=bc(()=>{EVi()});var Uee,UFr=bc(()=>{Uee="1.9.0"});function L0c(e){var t=new Set([e]),r=new Set,n=e.match(vVi);if(!n)return function(){return!1};var a={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(a.prerelease!=null)return function(f){return f===e};function o(A){return r.add(A),!1}function l(A){return t.add(A),!0}return function(f){if(t.has(f))return!0;if(r.has(f))return!1;var I=f.match(vVi);if(!I)return o(f);var C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};return C.prerelease!=null||a.major!==C.major?o(f):a.major===0?a.minor===C.minor&&a.patch<=C.patch?l(f):o(f):a.minor<=C.minor?l(f):o(f)}}var vVi,BVi,wVi=bc(()=>{UFr();vVi=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;BVi=L0c(Uee)});function Tj(e,t,r,n){var a;n===void 0&&(n=!1);var o=pKe[dKe]=(a=pKe[dKe])!==null&&a!==void 0?a:{version:Uee};if(!n&&o[e]){var l=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(l.stack||l.message),!1}if(o.version!==Uee){var l=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+Uee);return r.error(l.stack||l.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+Uee+"."),!0}function bO(e){var t,r,n=(t=pKe[dKe])===null||t===void 0?void 0:t.version;if(!(!n||!BVi(n)))return(r=pKe[dKe])===null||r===void 0?void 0:r[e]}function Rj(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+Uee+".");var r=pKe[dKe];r&&delete r[e]}var V0c,dKe,pKe,NCe=bc(()=>{SVi();UFr();wVi();V0c=Uee.split(".")[0],dKe=Symbol.for("opentelemetry.js.api."+V0c),pKe=yVi});function fKe(e,t,r){var n=bO("diag");if(n)return r.unshift(t),n[e].apply(n,W0c([],P0c(r),!1))}var P0c,W0c,TVi,RVi=bc(()=>{NCe();P0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},W0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(jk||(jk={}))});function NVi(e,t){ejk.ALL&&(e=jk.ALL),t=t||{};function r(n,a){var o=t[n];return typeof o=="function"&&e>=a?o.bind(t):function(){}}return{error:r("error",jk.ERROR),warn:r("warn",jk.WARN),info:r("info",jk.INFO),debug:r("debug",jk.DEBUG),verbose:r("verbose",jk.VERBOSE)}}var DVi=bc(()=>{g2t()});var O0c,M0c,H0c,VG,DCe=bc(()=>{RVi();DVi();g2t();NCe();O0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},M0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n";C.warn("Current logger will be overwritten from "+E),b.warn("Current logger will overwrite one already registered from "+E)}return Tj("diag",b,r,!0)};r.setLogger=n,r.disable=function(){Rj(H0c,r)},r.createComponentLogger=function(a){return new TVi(a)},r.verbose=t("verbose"),r.debug=t("debug"),r.info=t("info"),r.warn=t("warn"),r.error=t("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}()});var Y0c,Q0c,kVi,xVi=bc(()=>{Y0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Q0c=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},kVi=function(){function e(t){this._entries=t?new Map(t):new Map}return e.prototype.getEntry=function(t){var r=this._entries.get(t);if(r)return Object.assign({},r)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(t){var r=Y0c(t,2),n=r[0],a=r[1];return[n,a]})},e.prototype.setEntry=function(t,r){var n=new e(this._entries);return n._entries.set(t,r),n},e.prototype.removeEntry=function(t){var r=new e(this._entries);return r._entries.delete(t),r},e.prototype.removeEntries=function(){for(var t,r,n=[],a=0;a{GVi=Symbol("BaggageEntryMetadata")});function ZVi(e){return e===void 0&&(e={}),new kVi(new Map(Object.entries(e)))}function LVi(e){return typeof e!="string"&&(X0c.error("Cannot create baggage metadata from unknown type: "+typeof e),e=""),{__TYPE__:GVi,toString:function(){return e}}}var X0c,KFr=bc(()=>{DCe();xVi();FVi();X0c=VG.instance()});function EDe(e){return Symbol.for(e)}var J0c,A2t,IKe=bc(()=>{J0c=function(){function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,a){var o=new e(r._currentContext);return o._currentContext.set(n,a),o},r.deleteValue=function(n){var a=new e(r._currentContext);return a._currentContext.delete(n),a}}return e}(),A2t=new J0c});var jFr,VVi,PVi=bc(()=>{jFr=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],VVi=function(){function e(){function t(n){return function(){for(var a=[],o=0;o{kCe=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),U0c=function(){function e(){}return e.prototype.createGauge=function(t,r){return nyc},e.prototype.createHistogram=function(t,r){return iyc},e.prototype.createCounter=function(t,r){return ryc},e.prototype.createUpDownCounter=function(t,r){return syc},e.prototype.createObservableGauge=function(t,r){return ayc},e.prototype.createObservableCounter=function(t,r){return oyc},e.prototype.createObservableUpDownCounter=function(t,r){return cyc},e.prototype.addBatchObservableCallback=function(t,r){},e.prototype.removeBatchObservableCallback=function(t){},e}(),d2t=function(){function e(){}return e}(),K0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),j0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),z0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),q0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),zFr=function(){function e(){}return e.prototype.addCallback=function(t){},e.prototype.removeCallback=function(t){},e}(),$0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),eyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),tyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),qFr=new U0c,ryc=new K0c,nyc=new z0c,iyc=new q0c,syc=new j0c,oyc=new $0c,ayc=new eyc,cyc=new tyc});var p2t,OVi=bc(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(p2t||(p2t={}))});var f2t,I2t,eZr=bc(()=>{f2t={get:function(e,t){if(e!=null)return e[t]},keys:function(e){return e==null?[]:Object.keys(e)}},I2t={set:function(e,t,r){e!=null&&(e[t]=r)}}});var lyc,uyc,MVi,HVi=bc(()=>{IKe();lyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},uyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{HVi();NCe();DCe();gyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ayc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(SDe||(SDe={}))});var mKe,CKe,h2t,m2t=bc(()=>{rZr();mKe="0000000000000000",CKe="00000000000000000000000000000000",h2t={traceId:CKe,spanId:mKe,traceFlags:SDe.NONE}});var Oce,C2t=bc(()=>{m2t();Oce=function(){function e(t){t===void 0&&(t=h2t),this._spanContext=t}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(t,r){return this},e.prototype.setAttributes=function(t){return this},e.prototype.addEvent=function(t,r){return this},e.prototype.addLink=function(t){return this},e.prototype.addLinks=function(t){return this},e.prototype.setStatus=function(t){return this},e.prototype.updateName=function(t){return this},e.prototype.end=function(t){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(t,r){},e}()});function _2t(e){return e.getValue(nZr)||void 0}function YVi(){return _2t(Wce.getInstance().active())}function _Ke(e,t){return e.setValue(nZr,t)}function QVi(e){return e.deleteValue(nZr)}function XVi(e,t){return _Ke(e,new Oce(t))}function y2t(e){var t;return(t=_2t(e))===null||t===void 0?void 0:t.spanContext()}var nZr,iZr=bc(()=>{IKe();C2t();hKe();nZr=EDe("OpenTelemetry Context Key SPAN")});function sZr(e){return pyc.test(e)&&e!==CKe}function oZr(e){return fyc.test(e)&&e!==mKe}function vDe(e){return sZr(e.traceId)&&oZr(e.spanId)}function JVi(e){return new Oce(e)}var pyc,fyc,b2t=bc(()=>{m2t();C2t();pyc=/^([0-9a-f]{32})$/i,fyc=/^[0-9a-f]{16}$/i});function Iyc(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var aZr,E2t,cZr=bc(()=>{hKe();iZr();C2t();b2t();aZr=Wce.getInstance(),E2t=function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=aZr.active());var a=!!r?.root;if(a)return new Oce;var o=n&&y2t(n);return Iyc(o)&&vDe(o)?new Oce(o):new Oce},e.prototype.startActiveSpan=function(t,r,n,a){var o,l,A;if(!(arguments.length<2)){arguments.length===2?A=r:arguments.length===3?(o=r,A=n):(o=r,l=n,A=a);var f=l??aZr.active(),I=this.startSpan(t,o,f),C=_Ke(f,I);return aZr.with(C,A,void 0,I)}},e}()});var hyc,S2t,lZr=bc(()=>{cZr();hyc=new E2t,S2t=function(){function e(t,r,n,a){this._provider=t,this.name=r,this.version=n,this.options=a}return e.prototype.startSpan=function(t,r,n){return this._getTracer().startSpan(t,r,n)},e.prototype.startActiveSpan=function(t,r,n,a){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):hyc},e}()});var UVi,KVi=bc(()=>{cZr();UVi=function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new E2t},e}()});var myc,yKe,uZr=bc(()=>{lZr();KVi();myc=new UVi,yKe=function(){function e(){}return e.prototype.getTracer=function(t,r,n){var a;return(a=this.getDelegateTracer(t,r,n))!==null&&a!==void 0?a:new S2t(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:myc},e.prototype.setDelegate=function(t){this._delegate=t},e.prototype.getDelegateTracer=function(t,r,n){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(t,r,n)},e}()});var v2t,jVi=bc(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v2t||(v2t={}))});var B2t,zVi=bc(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})(B2t||(B2t={}))});var w2t,qVi=bc(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(w2t||(w2t={}))});function $Vi(e){return yyc.test(e)}function ePi(e){return byc.test(e)&&!Eyc.test(e)}var gZr,Cyc,_yc,yyc,byc,Eyc,tPi=bc(()=>{gZr="[_0-9a-z-*/]",Cyc="[a-z]"+gZr+"{0,255}",_yc="[a-z0-9]"+gZr+"{0,240}@[a-z]"+gZr+"{0,13}",yyc=new RegExp("^(?:"+Cyc+"|"+_yc+")$"),byc=/^[ -~]{0,255}[!-~]$/,Eyc=/,|=/});var rPi,Syc,nPi,iPi,sPi,oPi=bc(()=>{tPi();rPi=32,Syc=512,nPi=",",iPi="=",sPi=function(){function e(t){this._internalState=new Map,t&&this._parse(t)}return e.prototype.set=function(t,r){var n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n},e.prototype.unset=function(t){var r=this._clone();return r._internalState.delete(t),r},e.prototype.get=function(t){return this._internalState.get(t)},e.prototype.serialize=function(){var t=this;return this._keys().reduce(function(r,n){return r.push(n+iPi+t.get(n)),r},[]).join(nPi)},e.prototype._parse=function(t){t.length>Syc||(this._internalState=t.split(nPi).reverse().reduce(function(r,n){var a=n.trim(),o=a.indexOf(iPi);if(o!==-1){var l=a.slice(0,o),A=a.slice(o+1,n.length);$Vi(l)&&ePi(A)&&r.set(l,A)}return r},new Map),this._internalState.size>rPi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,rPi))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}()});function aPi(e){return new sPi(e)}var cPi=bc(()=>{oPi()});var AZr,lPi=bc(()=>{hKe();AZr=Wce.getInstance()});var dZr,uPi=bc(()=>{DCe();dZr=VG.instance()});var vyc,gPi,APi=bc(()=>{$Fr();vyc=function(){function e(){}return e.prototype.getMeter=function(t,r,n){return qFr},e}(),gPi=new vyc});var pZr,dPi,pPi=bc(()=>{APi();NCe();DCe();pZr="metrics",dPi=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalMeterProvider=function(t){return Tj(pZr,t,VG.instance())},e.prototype.getMeterProvider=function(){return bO(pZr)||gPi},e.prototype.getMeter=function(t,r,n){return this.getMeterProvider().getMeter(t,r,n)},e.prototype.disable=function(){Rj(pZr,VG.instance())},e}()});var fZr,fPi=bc(()=>{pPi();fZr=dPi.getInstance()});var IPi,hPi=bc(()=>{IPi=function(){function e(){}return e.prototype.inject=function(t,r){},e.prototype.extract=function(t,r){return t},e.prototype.fields=function(){return[]},e}()});function hZr(e){return e.getValue(IZr)||void 0}function mPi(){return hZr(Wce.getInstance().active())}function CPi(e,t){return e.setValue(IZr,t)}function _Pi(e){return e.deleteValue(IZr)}var IZr,yPi=bc(()=>{hKe();IKe();IZr=EDe("OpenTelemetry Baggage Key")});var mZr,Byc,bPi,EPi=bc(()=>{NCe();hPi();eZr();yPi();KFr();DCe();mZr="propagation",Byc=new IPi,bPi=function(){function e(){this.createBaggage=ZVi,this.getBaggage=hZr,this.getActiveBaggage=mPi,this.setBaggage=CPi,this.deleteBaggage=_Pi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalPropagator=function(t){return Tj(mZr,t,VG.instance())},e.prototype.inject=function(t,r,n){return n===void 0&&(n=I2t),this._getGlobalPropagator().inject(t,r,n)},e.prototype.extract=function(t,r,n){return n===void 0&&(n=f2t),this._getGlobalPropagator().extract(t,r,n)},e.prototype.fields=function(){return this._getGlobalPropagator().fields()},e.prototype.disable=function(){Rj(mZr,VG.instance())},e.prototype._getGlobalPropagator=function(){return bO(mZr)||Byc},e}()});var CZr,SPi=bc(()=>{EPi();CZr=bPi.getInstance()});var _Zr,vPi,BPi=bc(()=>{NCe();uZr();b2t();iZr();DCe();_Zr="trace",vPi=function(){function e(){this._proxyTracerProvider=new yKe,this.wrapSpanContext=JVi,this.isSpanContextValid=vDe,this.deleteSpan=QVi,this.getSpan=_2t,this.getActiveSpan=YVi,this.getSpanContext=y2t,this.setSpan=_Ke,this.setSpanContext=XVi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(t){var r=Tj(_Zr,this._proxyTracerProvider,VG.instance());return r&&this._proxyTracerProvider.setDelegate(t),r},e.prototype.getTracerProvider=function(){return bO(_Zr)||this._proxyTracerProvider},e.prototype.getTracer=function(t,r){return this.getTracerProvider().getTracer(t,r)},e.prototype.disable=function(){Rj(_Zr,VG.instance()),this._proxyTracerProvider=new yKe},e}()});var yZr,wPi=bc(()=>{BPi();yZr=vPi.getInstance()});var xI={};sI(xI,{DiagConsoleLogger:()=>VVi,DiagLogLevel:()=>jk,INVALID_SPANID:()=>mKe,INVALID_SPAN_CONTEXT:()=>h2t,INVALID_TRACEID:()=>CKe,ProxyTracer:()=>S2t,ProxyTracerProvider:()=>yKe,ROOT_CONTEXT:()=>A2t,SamplingDecision:()=>v2t,SpanKind:()=>B2t,SpanStatusCode:()=>w2t,TraceFlags:()=>SDe,ValueType:()=>p2t,baggageEntryMetadataFromString:()=>LVi,context:()=>AZr,createContextKey:()=>EDe,createNoopMeter:()=>WVi,createTraceState:()=>aPi,default:()=>wyc,defaultTextMapGetter:()=>f2t,defaultTextMapSetter:()=>I2t,diag:()=>dZr,isSpanContextValid:()=>vDe,isValidSpanId:()=>oZr,isValidTraceId:()=>sZr,metrics:()=>fZr,propagation:()=>CZr,trace:()=>yZr});var wyc,GI=bc(()=>{KFr();IKe();PVi();g2t();$Fr();OVi();eZr();lZr();uZr();jVi();zVi();qVi();rZr();cPi();b2t();m2t();lPi();uPi();fPi();SPi();wPi();wyc={context:AZr,diag:dZr,metrics:fZr,propagation:CZr,trace:yZr}});var TPi=H(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});K0.MessageTypeValues=K0.RpcGrpcStatusCodeValues=K0.MessagingOperationValues=K0.MessagingDestinationKindValues=K0.HttpFlavorValues=K0.NetHostConnectionSubtypeValues=K0.NetHostConnectionTypeValues=K0.NetTransportValues=K0.FaasInvokedProviderValues=K0.FaasDocumentOperationValues=K0.FaasTriggerValues=K0.DbCassandraConsistencyLevelValues=K0.DbSystemValues=K0.SemanticAttributes=void 0;K0.SemanticAttributes={AWS_LAMBDA_INVOKED_ARN:"aws.lambda.invoked_arn",DB_SYSTEM:"db.system",DB_CONNECTION_STRING:"db.connection_string",DB_USER:"db.user",DB_JDBC_DRIVER_CLASSNAME:"db.jdbc.driver_classname",DB_NAME:"db.name",DB_STATEMENT:"db.statement",DB_OPERATION:"db.operation",DB_MSSQL_INSTANCE_NAME:"db.mssql.instance_name",DB_CASSANDRA_KEYSPACE:"db.cassandra.keyspace",DB_CASSANDRA_PAGE_SIZE:"db.cassandra.page_size",DB_CASSANDRA_CONSISTENCY_LEVEL:"db.cassandra.consistency_level",DB_CASSANDRA_TABLE:"db.cassandra.table",DB_CASSANDRA_IDEMPOTENCE:"db.cassandra.idempotence",DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:"db.cassandra.speculative_execution_count",DB_CASSANDRA_COORDINATOR_ID:"db.cassandra.coordinator.id",DB_CASSANDRA_COORDINATOR_DC:"db.cassandra.coordinator.dc",DB_HBASE_NAMESPACE:"db.hbase.namespace",DB_REDIS_DATABASE_INDEX:"db.redis.database_index",DB_MONGODB_COLLECTION:"db.mongodb.collection",DB_SQL_TABLE:"db.sql.table",EXCEPTION_TYPE:"exception.type",EXCEPTION_MESSAGE:"exception.message",EXCEPTION_STACKTRACE:"exception.stacktrace",EXCEPTION_ESCAPED:"exception.escaped",FAAS_TRIGGER:"faas.trigger",FAAS_EXECUTION:"faas.execution",FAAS_DOCUMENT_COLLECTION:"faas.document.collection",FAAS_DOCUMENT_OPERATION:"faas.document.operation",FAAS_DOCUMENT_TIME:"faas.document.time",FAAS_DOCUMENT_NAME:"faas.document.name",FAAS_TIME:"faas.time",FAAS_CRON:"faas.cron",FAAS_COLDSTART:"faas.coldstart",FAAS_INVOKED_NAME:"faas.invoked_name",FAAS_INVOKED_PROVIDER:"faas.invoked_provider",FAAS_INVOKED_REGION:"faas.invoked_region",NET_TRANSPORT:"net.transport",NET_PEER_IP:"net.peer.ip",NET_PEER_PORT:"net.peer.port",NET_PEER_NAME:"net.peer.name",NET_HOST_IP:"net.host.ip",NET_HOST_PORT:"net.host.port",NET_HOST_NAME:"net.host.name",NET_HOST_CONNECTION_TYPE:"net.host.connection.type",NET_HOST_CONNECTION_SUBTYPE:"net.host.connection.subtype",NET_HOST_CARRIER_NAME:"net.host.carrier.name",NET_HOST_CARRIER_MCC:"net.host.carrier.mcc",NET_HOST_CARRIER_MNC:"net.host.carrier.mnc",NET_HOST_CARRIER_ICC:"net.host.carrier.icc",PEER_SERVICE:"peer.service",ENDUSER_ID:"enduser.id",ENDUSER_ROLE:"enduser.role",ENDUSER_SCOPE:"enduser.scope",THREAD_ID:"thread.id",THREAD_NAME:"thread.name",CODE_FUNCTION:"code.function",CODE_NAMESPACE:"code.namespace",CODE_FILEPATH:"code.filepath",CODE_LINENO:"code.lineno",HTTP_METHOD:"http.method",HTTP_URL:"http.url",HTTP_TARGET:"http.target",HTTP_HOST:"http.host",HTTP_SCHEME:"http.scheme",HTTP_STATUS_CODE:"http.status_code",HTTP_FLAVOR:"http.flavor",HTTP_USER_AGENT:"http.user_agent",HTTP_REQUEST_CONTENT_LENGTH:"http.request_content_length",HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:"http.request_content_length_uncompressed",HTTP_RESPONSE_CONTENT_LENGTH:"http.response_content_length",HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:"http.response_content_length_uncompressed",HTTP_SERVER_NAME:"http.server_name",HTTP_ROUTE:"http.route",HTTP_CLIENT_IP:"http.client_ip",AWS_DYNAMODB_TABLE_NAMES:"aws.dynamodb.table_names",AWS_DYNAMODB_CONSUMED_CAPACITY:"aws.dynamodb.consumed_capacity",AWS_DYNAMODB_ITEM_COLLECTION_METRICS:"aws.dynamodb.item_collection_metrics",AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:"aws.dynamodb.provisioned_read_capacity",AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:"aws.dynamodb.provisioned_write_capacity",AWS_DYNAMODB_CONSISTENT_READ:"aws.dynamodb.consistent_read",AWS_DYNAMODB_PROJECTION:"aws.dynamodb.projection",AWS_DYNAMODB_LIMIT:"aws.dynamodb.limit",AWS_DYNAMODB_ATTRIBUTES_TO_GET:"aws.dynamodb.attributes_to_get",AWS_DYNAMODB_INDEX_NAME:"aws.dynamodb.index_name",AWS_DYNAMODB_SELECT:"aws.dynamodb.select",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:"aws.dynamodb.global_secondary_indexes",AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:"aws.dynamodb.local_secondary_indexes",AWS_DYNAMODB_EXCLUSIVE_START_TABLE:"aws.dynamodb.exclusive_start_table",AWS_DYNAMODB_TABLE_COUNT:"aws.dynamodb.table_count",AWS_DYNAMODB_SCAN_FORWARD:"aws.dynamodb.scan_forward",AWS_DYNAMODB_SEGMENT:"aws.dynamodb.segment",AWS_DYNAMODB_TOTAL_SEGMENTS:"aws.dynamodb.total_segments",AWS_DYNAMODB_COUNT:"aws.dynamodb.count",AWS_DYNAMODB_SCANNED_COUNT:"aws.dynamodb.scanned_count",AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:"aws.dynamodb.attribute_definitions",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:"aws.dynamodb.global_secondary_index_updates",MESSAGING_SYSTEM:"messaging.system",MESSAGING_DESTINATION:"messaging.destination",MESSAGING_DESTINATION_KIND:"messaging.destination_kind",MESSAGING_TEMP_DESTINATION:"messaging.temp_destination",MESSAGING_PROTOCOL:"messaging.protocol",MESSAGING_PROTOCOL_VERSION:"messaging.protocol_version",MESSAGING_URL:"messaging.url",MESSAGING_MESSAGE_ID:"messaging.message_id",MESSAGING_CONVERSATION_ID:"messaging.conversation_id",MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:"messaging.message_payload_size_bytes",MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:"messaging.message_payload_compressed_size_bytes",MESSAGING_OPERATION:"messaging.operation",MESSAGING_CONSUMER_ID:"messaging.consumer_id",MESSAGING_RABBITMQ_ROUTING_KEY:"messaging.rabbitmq.routing_key",MESSAGING_KAFKA_MESSAGE_KEY:"messaging.kafka.message_key",MESSAGING_KAFKA_CONSUMER_GROUP:"messaging.kafka.consumer_group",MESSAGING_KAFKA_CLIENT_ID:"messaging.kafka.client_id",MESSAGING_KAFKA_PARTITION:"messaging.kafka.partition",MESSAGING_KAFKA_TOMBSTONE:"messaging.kafka.tombstone",RPC_SYSTEM:"rpc.system",RPC_SERVICE:"rpc.service",RPC_METHOD:"rpc.method",RPC_GRPC_STATUS_CODE:"rpc.grpc.status_code",RPC_JSONRPC_VERSION:"rpc.jsonrpc.version",RPC_JSONRPC_REQUEST_ID:"rpc.jsonrpc.request_id",RPC_JSONRPC_ERROR_CODE:"rpc.jsonrpc.error_code",RPC_JSONRPC_ERROR_MESSAGE:"rpc.jsonrpc.error_message",MESSAGE_TYPE:"message.type",MESSAGE_ID:"message.id",MESSAGE_COMPRESSED_SIZE:"message.compressed_size",MESSAGE_UNCOMPRESSED_SIZE:"message.uncompressed_size"};K0.DbSystemValues={OTHER_SQL:"other_sql",MSSQL:"mssql",MYSQL:"mysql",ORACLE:"oracle",DB2:"db2",POSTGRESQL:"postgresql",REDSHIFT:"redshift",HIVE:"hive",CLOUDSCAPE:"cloudscape",HSQLDB:"hsqldb",PROGRESS:"progress",MAXDB:"maxdb",HANADB:"hanadb",INGRES:"ingres",FIRSTSQL:"firstsql",EDB:"edb",CACHE:"cache",ADABAS:"adabas",FIREBIRD:"firebird",DERBY:"derby",FILEMAKER:"filemaker",INFORMIX:"informix",INSTANTDB:"instantdb",INTERBASE:"interbase",MARIADB:"mariadb",NETEZZA:"netezza",PERVASIVE:"pervasive",POINTBASE:"pointbase",SQLITE:"sqlite",SYBASE:"sybase",TERADATA:"teradata",VERTICA:"vertica",H2:"h2",COLDFUSION:"coldfusion",CASSANDRA:"cassandra",HBASE:"hbase",MONGODB:"mongodb",REDIS:"redis",COUCHBASE:"couchbase",COUCHDB:"couchdb",COSMOSDB:"cosmosdb",DYNAMODB:"dynamodb",NEO4J:"neo4j",GEODE:"geode",ELASTICSEARCH:"elasticsearch",MEMCACHED:"memcached",COCKROACHDB:"cockroachdb"};K0.DbCassandraConsistencyLevelValues={ALL:"all",EACH_QUORUM:"each_quorum",QUORUM:"quorum",LOCAL_QUORUM:"local_quorum",ONE:"one",TWO:"two",THREE:"three",LOCAL_ONE:"local_one",ANY:"any",SERIAL:"serial",LOCAL_SERIAL:"local_serial"};K0.FaasTriggerValues={DATASOURCE:"datasource",HTTP:"http",PUBSUB:"pubsub",TIMER:"timer",OTHER:"other"};K0.FaasDocumentOperationValues={INSERT:"insert",EDIT:"edit",DELETE:"delete"};K0.FaasInvokedProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};K0.NetTransportValues={IP_TCP:"ip_tcp",IP_UDP:"ip_udp",IP:"ip",UNIX:"unix",PIPE:"pipe",INPROC:"inproc",OTHER:"other"};K0.NetHostConnectionTypeValues={WIFI:"wifi",WIRED:"wired",CELL:"cell",UNAVAILABLE:"unavailable",UNKNOWN:"unknown"};K0.NetHostConnectionSubtypeValues={GPRS:"gprs",EDGE:"edge",UMTS:"umts",CDMA:"cdma",EVDO_0:"evdo_0",EVDO_A:"evdo_a",CDMA2000_1XRTT:"cdma2000_1xrtt",HSDPA:"hsdpa",HSUPA:"hsupa",HSPA:"hspa",IDEN:"iden",EVDO_B:"evdo_b",LTE:"lte",EHRPD:"ehrpd",HSPAP:"hspap",GSM:"gsm",TD_SCDMA:"td_scdma",IWLAN:"iwlan",NR:"nr",NRNSA:"nrnsa",LTE_CA:"lte_ca"};K0.HttpFlavorValues={HTTP_1_0:"1.0",HTTP_1_1:"1.1",HTTP_2_0:"2.0",SPDY:"SPDY",QUIC:"QUIC"};K0.MessagingDestinationKindValues={QUEUE:"queue",TOPIC:"topic"};K0.MessagingOperationValues={RECEIVE:"receive",PROCESS:"process"};K0.RpcGrpcStatusCodeValues={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15,UNAUTHENTICATED:16};K0.MessageTypeValues={SENT:"SENT",RECEIVED:"RECEIVED"}});var RPi=H(xCe=>{"use strict";var Tyc=xCe&&xCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ryc=xCe&&xCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Tyc(t,e,r)};Object.defineProperty(xCe,"__esModule",{value:!0});Ryc(TPi(),xCe)});var NPi=H(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.TelemetrySdkLanguageValues=PG.OsTypeValues=PG.HostArchValues=PG.AwsEcsLaunchtypeValues=PG.CloudPlatformValues=PG.CloudProviderValues=PG.SemanticResourceAttributes=void 0;PG.SemanticResourceAttributes={CLOUD_PROVIDER:"cloud.provider",CLOUD_ACCOUNT_ID:"cloud.account.id",CLOUD_REGION:"cloud.region",CLOUD_AVAILABILITY_ZONE:"cloud.availability_zone",CLOUD_PLATFORM:"cloud.platform",AWS_ECS_CONTAINER_ARN:"aws.ecs.container.arn",AWS_ECS_CLUSTER_ARN:"aws.ecs.cluster.arn",AWS_ECS_LAUNCHTYPE:"aws.ecs.launchtype",AWS_ECS_TASK_ARN:"aws.ecs.task.arn",AWS_ECS_TASK_FAMILY:"aws.ecs.task.family",AWS_ECS_TASK_REVISION:"aws.ecs.task.revision",AWS_EKS_CLUSTER_ARN:"aws.eks.cluster.arn",AWS_LOG_GROUP_NAMES:"aws.log.group.names",AWS_LOG_GROUP_ARNS:"aws.log.group.arns",AWS_LOG_STREAM_NAMES:"aws.log.stream.names",AWS_LOG_STREAM_ARNS:"aws.log.stream.arns",CONTAINER_NAME:"container.name",CONTAINER_ID:"container.id",CONTAINER_RUNTIME:"container.runtime",CONTAINER_IMAGE_NAME:"container.image.name",CONTAINER_IMAGE_TAG:"container.image.tag",DEPLOYMENT_ENVIRONMENT:"deployment.environment",DEVICE_ID:"device.id",DEVICE_MODEL_IDENTIFIER:"device.model.identifier",DEVICE_MODEL_NAME:"device.model.name",FAAS_NAME:"faas.name",FAAS_ID:"faas.id",FAAS_VERSION:"faas.version",FAAS_INSTANCE:"faas.instance",FAAS_MAX_MEMORY:"faas.max_memory",HOST_ID:"host.id",HOST_NAME:"host.name",HOST_TYPE:"host.type",HOST_ARCH:"host.arch",HOST_IMAGE_NAME:"host.image.name",HOST_IMAGE_ID:"host.image.id",HOST_IMAGE_VERSION:"host.image.version",K8S_CLUSTER_NAME:"k8s.cluster.name",K8S_NODE_NAME:"k8s.node.name",K8S_NODE_UID:"k8s.node.uid",K8S_NAMESPACE_NAME:"k8s.namespace.name",K8S_POD_UID:"k8s.pod.uid",K8S_POD_NAME:"k8s.pod.name",K8S_CONTAINER_NAME:"k8s.container.name",K8S_REPLICASET_UID:"k8s.replicaset.uid",K8S_REPLICASET_NAME:"k8s.replicaset.name",K8S_DEPLOYMENT_UID:"k8s.deployment.uid",K8S_DEPLOYMENT_NAME:"k8s.deployment.name",K8S_STATEFULSET_UID:"k8s.statefulset.uid",K8S_STATEFULSET_NAME:"k8s.statefulset.name",K8S_DAEMONSET_UID:"k8s.daemonset.uid",K8S_DAEMONSET_NAME:"k8s.daemonset.name",K8S_JOB_UID:"k8s.job.uid",K8S_JOB_NAME:"k8s.job.name",K8S_CRONJOB_UID:"k8s.cronjob.uid",K8S_CRONJOB_NAME:"k8s.cronjob.name",OS_TYPE:"os.type",OS_DESCRIPTION:"os.description",OS_NAME:"os.name",OS_VERSION:"os.version",PROCESS_PID:"process.pid",PROCESS_EXECUTABLE_NAME:"process.executable.name",PROCESS_EXECUTABLE_PATH:"process.executable.path",PROCESS_COMMAND:"process.command",PROCESS_COMMAND_LINE:"process.command_line",PROCESS_COMMAND_ARGS:"process.command_args",PROCESS_OWNER:"process.owner",PROCESS_RUNTIME_NAME:"process.runtime.name",PROCESS_RUNTIME_VERSION:"process.runtime.version",PROCESS_RUNTIME_DESCRIPTION:"process.runtime.description",SERVICE_NAME:"service.name",SERVICE_NAMESPACE:"service.namespace",SERVICE_INSTANCE_ID:"service.instance.id",SERVICE_VERSION:"service.version",TELEMETRY_SDK_NAME:"telemetry.sdk.name",TELEMETRY_SDK_LANGUAGE:"telemetry.sdk.language",TELEMETRY_SDK_VERSION:"telemetry.sdk.version",TELEMETRY_AUTO_VERSION:"telemetry.auto.version",WEBENGINE_NAME:"webengine.name",WEBENGINE_VERSION:"webengine.version",WEBENGINE_DESCRIPTION:"webengine.description"};PG.CloudProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};PG.CloudPlatformValues={ALIBABA_CLOUD_ECS:"alibaba_cloud_ecs",ALIBABA_CLOUD_FC:"alibaba_cloud_fc",AWS_EC2:"aws_ec2",AWS_ECS:"aws_ecs",AWS_EKS:"aws_eks",AWS_LAMBDA:"aws_lambda",AWS_ELASTIC_BEANSTALK:"aws_elastic_beanstalk",AZURE_VM:"azure_vm",AZURE_CONTAINER_INSTANCES:"azure_container_instances",AZURE_AKS:"azure_aks",AZURE_FUNCTIONS:"azure_functions",AZURE_APP_SERVICE:"azure_app_service",GCP_COMPUTE_ENGINE:"gcp_compute_engine",GCP_CLOUD_RUN:"gcp_cloud_run",GCP_KUBERNETES_ENGINE:"gcp_kubernetes_engine",GCP_CLOUD_FUNCTIONS:"gcp_cloud_functions",GCP_APP_ENGINE:"gcp_app_engine"};PG.AwsEcsLaunchtypeValues={EC2:"ec2",FARGATE:"fargate"};PG.HostArchValues={AMD64:"amd64",ARM32:"arm32",ARM64:"arm64",IA64:"ia64",PPC32:"ppc32",PPC64:"ppc64",X86:"x86"};PG.OsTypeValues={WINDOWS:"windows",LINUX:"linux",DARWIN:"darwin",FREEBSD:"freebsd",NETBSD:"netbsd",OPENBSD:"openbsd",DRAGONFLYBSD:"dragonflybsd",HPUX:"hpux",AIX:"aix",SOLARIS:"solaris",Z_OS:"z_os"};PG.TelemetrySdkLanguageValues={CPP:"cpp",DOTNET:"dotnet",ERLANG:"erlang",GO:"go",JAVA:"java",NODEJS:"nodejs",PHP:"php",PYTHON:"python",RUBY:"ruby",WEBJS:"webjs"}});var DPi=H(GCe=>{"use strict";var Nyc=GCe&&GCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dyc=GCe&&GCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Nyc(t,e,r)};Object.defineProperty(GCe,"__esModule",{value:!0});Dyc(NPi(),GCe)});var Hce=H(Mce=>{"use strict";var kyc=Mce&&Mce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kPi=Mce&&Mce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&kyc(t,e,r)};Object.defineProperty(Mce,"__esModule",{value:!0});kPi(RPi(),Mce);kPi(DPi(),Mce)});var bKe=H(Yce=>{"use strict";Object.defineProperty(Yce,"__esModule",{value:!0});Yce.isTracingSuppressed=Yce.unsuppressTracing=Yce.suppressTracing=void 0;var xyc=(GI(),vi(xI)),bZr=(0,xyc.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function Gyc(e){return e.setValue(bZr,!0)}Yce.suppressTracing=Gyc;function Fyc(e){return e.deleteValue(bZr)}Yce.unsuppressTracing=Fyc;function Zyc(e){return e.getValue(bZr)===!0}Yce.isTracingSuppressed=Zyc});var EZr=H(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.BAGGAGE_MAX_TOTAL_LENGTH=WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=WG.BAGGAGE_HEADER=WG.BAGGAGE_ITEMS_SEPARATOR=WG.BAGGAGE_PROPERTIES_SEPARATOR=WG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;WG.BAGGAGE_KEY_PAIR_SEPARATOR="=";WG.BAGGAGE_PROPERTIES_SEPARATOR=";";WG.BAGGAGE_ITEMS_SEPARATOR=",";WG.BAGGAGE_HEADER="baggage";WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;WG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var SZr=H(Nj=>{"use strict";Object.defineProperty(Nj,"__esModule",{value:!0});Nj.parseKeyPairsIntoRecord=Nj.parsePairKeyValue=Nj.getKeyPairs=Nj.serializeKeyPairs=void 0;var Lyc=(GI(),vi(xI)),FCe=EZr();function Vyc(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?FCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>FCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}Nj.serializeKeyPairs=Vyc;function Pyc(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=FCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}Nj.getKeyPairs=Pyc;function xPi(e){let t=e.split(FCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(FCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,Lyc.baggageEntryMetadataFromString)(t.join(FCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}Nj.parsePairKeyValue=xPi;function Wyc(e){return typeof e!="string"||e.length===0?{}:e.split(FCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>xPi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}Nj.parseKeyPairsIntoRecord=Wyc});var GPi=H(T2t=>{"use strict";Object.defineProperty(T2t,"__esModule",{value:!0});T2t.W3CBaggagePropagator=void 0;var vZr=(GI(),vi(xI)),Oyc=bKe(),ZCe=EZr(),BZr=SZr(),wZr=class{inject(t,r,n){let a=vZr.propagation.getBaggage(t);if(!a||(0,Oyc.isTracingSuppressed)(t))return;let o=(0,BZr.getKeyPairs)(a).filter(A=>A.length<=ZCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,ZCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,BZr.serializeKeyPairs)(o);l.length>0&&n.set(r,ZCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,ZCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(ZCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(ZCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,BZr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:vZr.propagation.setBaggage(t,vZr.propagation.createBaggage(l))}fields(){return[ZCe.BAGGAGE_HEADER]}};T2t.W3CBaggagePropagator=wZr});var FPi=H(R2t=>{"use strict";Object.defineProperty(R2t,"__esModule",{value:!0});R2t.AnchoredClock=void 0;var TZr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};R2t.AnchoredClock=TZr});var WPi=H(Qce=>{"use strict";Object.defineProperty(Qce,"__esModule",{value:!0});Qce.isAttributeValue=Qce.isAttributeKey=Qce.sanitizeAttributes=void 0;var ZPi=(GI(),vi(xI));function Myc(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!LPi(r)){ZPi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!VPi(n)){ZPi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Qce.sanitizeAttributes=Myc;function LPi(e){return typeof e=="string"&&e.length>0}Qce.isAttributeKey=LPi;function VPi(e){return e==null?!0:Array.isArray(e)?Hyc(e):PPi(e)}Qce.isAttributeValue=VPi;function Hyc(e){let t;for(let r of e)if(r!=null){if(!t){if(PPi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function PPi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var RZr=H(N2t=>{"use strict";Object.defineProperty(N2t,"__esModule",{value:!0});N2t.loggingErrorHandler=void 0;var Yyc=(GI(),vi(xI));function Qyc(){return e=>{Yyc.diag.error(Xyc(e))}}N2t.loggingErrorHandler=Qyc;function Xyc(e){return typeof e=="string"?e:JSON.stringify(Jyc(e))}function Jyc(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var NZr=H(BDe=>{"use strict";Object.defineProperty(BDe,"__esModule",{value:!0});BDe.globalErrorHandler=BDe.setGlobalErrorHandler=void 0;var Uyc=RZr(),OPi=(0,Uyc.loggingErrorHandler)();function Kyc(e){OPi=e}BDe.setGlobalErrorHandler=Kyc;function jyc(e){try{OPi(e)}catch{}}BDe.globalErrorHandler=jyc});var DZr=H(EKe=>{"use strict";Object.defineProperty(EKe,"__esModule",{value:!0});EKe.TracesSamplerValues=void 0;var zyc;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(zyc=EKe.TracesSamplerValues||(EKe.TracesSamplerValues={}))});var MPi=H(D2t=>{"use strict";Object.defineProperty(D2t,"__esModule",{value:!0});D2t._globalThis=void 0;D2t._globalThis=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});var xZr=H(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.getEnvWithoutDefaults=Q1.parseEnvironment=Q1.DEFAULT_ENVIRONMENT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Xce=(GI(),vi(xI)),qyc=DZr(),$yc=MPi(),ebc=",",tbc=["OTEL_SDK_DISABLED"];function rbc(e){return tbc.indexOf(e)>-1}var nbc=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function ibc(e){return nbc.indexOf(e)>-1}var sbc=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function obc(e){return sbc.indexOf(e)>-1}Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;Q1.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Xce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:qyc.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function abc(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function cbc(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function lbc(e,t,r,n=ebc){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var ubc={ALL:Xce.DiagLogLevel.ALL,VERBOSE:Xce.DiagLogLevel.VERBOSE,DEBUG:Xce.DiagLogLevel.DEBUG,INFO:Xce.DiagLogLevel.INFO,WARN:Xce.DiagLogLevel.WARN,ERROR:Xce.DiagLogLevel.ERROR,NONE:Xce.DiagLogLevel.NONE};function gbc(e,t,r){let n=r[e];if(typeof n=="string"){let a=ubc[n.toUpperCase()];a!=null&&(t[e]=a)}}function kZr(e){let t={};for(let r in Q1.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":gbc(n,t,e);break;default:if(rbc(n))abc(n,t,e);else if(ibc(n))cbc(n,t,e);else if(obc(n))lbc(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}Q1.parseEnvironment=kZr;function Abc(){return typeof process<"u"&&process&&process.env?kZr(process.env):kZr($yc._globalThis)}Q1.getEnvWithoutDefaults=Abc});var YPi=H(k2t=>{"use strict";Object.defineProperty(k2t,"__esModule",{value:!0});k2t.getEnv=void 0;var dbc=wt("os"),HPi=xZr();function pbc(){let e=(0,HPi.parseEnvironment)(process.env);return Object.assign({HOSTNAME:dbc.hostname()},HPi.DEFAULT_ENVIRONMENT,e)}k2t.getEnv=pbc});var QPi=H(x2t=>{"use strict";Object.defineProperty(x2t,"__esModule",{value:!0});x2t._globalThis=void 0;x2t._globalThis=typeof globalThis=="object"?globalThis:global});var JPi=H(G2t=>{"use strict";Object.defineProperty(G2t,"__esModule",{value:!0});G2t.hexToBase64=void 0;function XPi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}var fbc=Buffer.alloc(8),Ibc=Buffer.alloc(16);function hbc(e){let t;e.length===16?t=fbc:e.length===32?t=Ibc:t=Buffer.alloc(e.length/2);let r=0;for(let n=0;n{"use strict";Object.defineProperty(Z2t,"__esModule",{value:!0});Z2t.RandomIdGenerator=void 0;var mbc=8,KPi=16,GZr=class{constructor(){this.generateTraceId=UPi(KPi),this.generateSpanId=UPi(mbc)}};Z2t.RandomIdGenerator=GZr;var F2t=Buffer.allocUnsafe(KPi);function UPi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(F2t[e-1]=1);return F2t.toString("hex",0,e)}}});var zPi=H(L2t=>{"use strict";Object.defineProperty(L2t,"__esModule",{value:!0});L2t.otperformance=void 0;var Cbc=wt("perf_hooks");L2t.otperformance=Cbc.performance});var P2t=H(V2t=>{"use strict";Object.defineProperty(V2t,"__esModule",{value:!0});V2t.VERSION=void 0;V2t.VERSION="1.16.0"});var qPi=H(W2t=>{"use strict";Object.defineProperty(W2t,"__esModule",{value:!0});W2t.SDK_INFO=void 0;var _bc=P2t(),SKe=Hce();W2t.SDK_INFO={[SKe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:"opentelemetry",[SKe.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"node",[SKe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:SKe.TelemetrySdkLanguageValues.NODEJS,[SKe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:_bc.VERSION}});var $Pi=H(O2t=>{"use strict";Object.defineProperty(O2t,"__esModule",{value:!0});O2t.unrefTimer=void 0;function ybc(e){e.unref()}O2t.unrefTimer=ybc});var eWi=H(EO=>{"use strict";var bbc=EO&&EO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LCe=EO&&EO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bbc(t,e,r)};Object.defineProperty(EO,"__esModule",{value:!0});LCe(YPi(),EO);LCe(QPi(),EO);LCe(JPi(),EO);LCe(jPi(),EO);LCe(zPi(),EO);LCe(qPi(),EO);LCe($Pi(),EO)});var FZr=H(VCe=>{"use strict";var Ebc=VCe&&VCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Sbc=VCe&&VCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Ebc(t,e,r)};Object.defineProperty(VCe,"__esModule",{value:!0});Sbc(eWi(),VCe)});var iWi=H(WE=>{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.addHrTimes=WE.isTimeInput=WE.isTimeInputHrTime=WE.hrTimeToMicroseconds=WE.hrTimeToMilliseconds=WE.hrTimeToNanoseconds=WE.hrTimeToTimeStamp=WE.hrTimeDuration=WE.timeInputToHrTime=WE.hrTime=WE.getTimeOrigin=WE.millisToHrTime=void 0;var ZZr=FZr(),tWi=9,vbc=6,Bbc=Math.pow(10,vbc),M2t=Math.pow(10,tWi);function vKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*Bbc);return[r,n]}WE.millisToHrTime=vKe;function LZr(){let e=ZZr.otperformance.timeOrigin;if(typeof e!="number"){let t=ZZr.otperformance;e=t.timing&&t.timing.fetchStart}return e}WE.getTimeOrigin=LZr;function rWi(e){let t=vKe(LZr()),r=vKe(typeof e=="number"?e:ZZr.otperformance.now());return nWi(t,r)}WE.hrTime=rWi;function wbc(e){if(VZr(e))return e;if(typeof e=="number")return e=M2t&&(r[1]-=M2t,r[0]+=1),r}WE.addHrTimes=nWi});var oWi=H(sWi=>{"use strict";Object.defineProperty(sWi,"__esModule",{value:!0})});var aWi=H(BKe=>{"use strict";Object.defineProperty(BKe,"__esModule",{value:!0});BKe.ExportResultCode=void 0;var Gbc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(Gbc=BKe.ExportResultCode||(BKe.ExportResultCode={}))});var lWi=H(H2t=>{"use strict";Object.defineProperty(H2t,"__esModule",{value:!0});H2t.CompositePropagator=void 0;var cWi=(GI(),vi(xI)),PZr=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){cWi.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){cWi.diag.warn(`Failed to inject with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};H2t.CompositePropagator=PZr});var uWi=H(wDe=>{"use strict";Object.defineProperty(wDe,"__esModule",{value:!0});wDe.validateValue=wDe.validateKey=void 0;var WZr="[_0-9a-z-*/]",Fbc=`[a-z]${WZr}{0,255}`,Zbc=`[a-z0-9]${WZr}{0,240}@[a-z]${WZr}{0,13}`,Lbc=new RegExp(`^(?:${Fbc}|${Zbc})$`),Vbc=/^[ -~]{0,255}[!-~]$/,Pbc=/,|=/;function Wbc(e){return Lbc.test(e)}wDe.validateKey=Wbc;function Obc(e){return Vbc.test(e)&&!Pbc.test(e)}wDe.validateValue=Obc});var MZr=H(Y2t=>{"use strict";Object.defineProperty(Y2t,"__esModule",{value:!0});Y2t.TraceState=void 0;var gWi=uWi(),AWi=32,Mbc=512,dWi=",",pWi="=",OZr=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+pWi+this.get(r)),t),[]).join(dWi)}_parse(t){t.length>Mbc||(this._internalState=t.split(dWi).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(pWi);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,gWi.validateKey)(l)&&(0,gWi.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>AWi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,AWi))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};Y2t.TraceState=OZr});var IWi=H(OG=>{"use strict";Object.defineProperty(OG,"__esModule",{value:!0});OG.W3CTraceContextPropagator=OG.parseTraceParent=OG.TRACE_STATE_HEADER=OG.TRACE_PARENT_HEADER=void 0;var Q2t=(GI(),vi(xI)),Hbc=bKe(),Ybc=MZr();OG.TRACE_PARENT_HEADER="traceparent";OG.TRACE_STATE_HEADER="tracestate";var Qbc="00",Xbc="(?!ff)[\\da-f]{2}",Jbc="(?![0]{32})[\\da-f]{32}",Ubc="(?![0]{16})[\\da-f]{16}",Kbc="[\\da-f]{2}",jbc=new RegExp(`^\\s?(${Xbc})-(${Jbc})-(${Ubc})-(${Kbc})(-.*)?\\s?$`);function fWi(e){let t=jbc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}OG.parseTraceParent=fWi;var HZr=class{inject(t,r,n){let a=Q2t.trace.getSpanContext(t);if(!a||(0,Hbc.isTracingSuppressed)(t)||!(0,Q2t.isSpanContextValid)(a))return;let o=`${Qbc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||Q2t.TraceFlags.NONE).toString(16)}`;n.set(r,OG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,OG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,OG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=fWi(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,OG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new Ybc.TraceState(typeof f=="string"?f:void 0)}return Q2t.trace.setSpanContext(t,l)}fields(){return[OG.TRACE_PARENT_HEADER,OG.TRACE_STATE_HEADER]}};OG.W3CTraceContextPropagator=HZr});var mWi=H(hWi=>{"use strict";Object.defineProperty(hWi,"__esModule",{value:!0})});var CWi=H(h4=>{"use strict";Object.defineProperty(h4,"__esModule",{value:!0});h4.getRPCMetadata=h4.deleteRPCMetadata=h4.setRPCMetadata=h4.RPCType=void 0;var zbc=(GI(),vi(xI)),YZr=(0,zbc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),qbc;(function(e){e.HTTP="http"})(qbc=h4.RPCType||(h4.RPCType={}));function $bc(e,t){return e.setValue(YZr,t)}h4.setRPCMetadata=$bc;function eEc(e){return e.deleteValue(YZr)}h4.deleteRPCMetadata=eEc;function tEc(e){return e.getValue(YZr)}h4.getRPCMetadata=tEc});var XZr=H(X2t=>{"use strict";Object.defineProperty(X2t,"__esModule",{value:!0});X2t.AlwaysOffSampler=void 0;var rEc=(GI(),vi(xI)),QZr=class{shouldSample(){return{decision:rEc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};X2t.AlwaysOffSampler=QZr});var UZr=H(J2t=>{"use strict";Object.defineProperty(J2t,"__esModule",{value:!0});J2t.AlwaysOnSampler=void 0;var nEc=(GI(),vi(xI)),JZr=class{shouldSample(){return{decision:nEc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};J2t.AlwaysOnSampler=JZr});var yWi=H(K2t=>{"use strict";Object.defineProperty(K2t,"__esModule",{value:!0});K2t.ParentBasedSampler=void 0;var U2t=(GI(),vi(xI)),iEc=NZr(),_Wi=XZr(),KZr=UZr(),jZr=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,iEc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new KZr.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new KZr.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new _Wi.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new KZr.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new _Wi.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=U2t.trace.getSpanContext(t);return!A||!(0,U2t.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&U2t.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&U2t.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};K2t.ParentBasedSampler=jZr});var bWi=H(j2t=>{"use strict";Object.defineProperty(j2t,"__esModule",{value:!0});j2t.TraceIdRatioBasedSampler=void 0;var zZr=(GI(),vi(xI)),qZr=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,zZr.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};j2t.TraceIdRatioBasedSampler=qZr});var wWi=H(z2t=>{"use strict";Object.defineProperty(z2t,"__esModule",{value:!0});z2t.isPlainObject=void 0;var sEc="[object Object]",oEc="[object Null]",aEc="[object Undefined]",cEc=Function.prototype,EWi=cEc.toString,lEc=EWi.call(Object),uEc=gEc(Object.getPrototypeOf,Object),SWi=Object.prototype,vWi=SWi.hasOwnProperty,PCe=Symbol?Symbol.toStringTag:void 0,BWi=SWi.toString;function gEc(e,t){return function(r){return e(t(r))}}function AEc(e){if(!dEc(e)||pEc(e)!==sEc)return!1;let t=uEc(e);if(t===null)return!0;let r=vWi.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&EWi.call(r)===lEc}z2t.isPlainObject=AEc;function dEc(e){return e!=null&&typeof e=="object"}function pEc(e){return e==null?e===void 0?aEc:oEc:PCe&&PCe in Object(e)?fEc(e):IEc(e)}function fEc(e){let t=vWi.call(e,PCe),r=e[PCe],n=!1;try{e[PCe]=void 0,n=!0}catch{}let a=BWi.call(e);return n&&(t?e[PCe]=r:delete e[PCe]),a}function IEc(e){return BWi.call(e)}});var kWi=H(eSt=>{"use strict";Object.defineProperty(eSt,"__esModule",{value:!0});eSt.merge=void 0;var TWi=wWi(),hEc=20;function mEc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=NWi(t,e.shift(),0,r);return t}eSt.merge=mEc;function $Zr(e){return $2t(e)?e.slice():e}function NWi(e,t,r=0,n){let a;if(!(r>hEc)){if(r++,q2t(e)||q2t(t)||DWi(t))a=$Zr(t);else if($2t(e)){if(a=e.slice(),$2t(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(RWi(e,f,n)||RWi(t,f,n))delete a[f];else{if(wKe(C)&&wKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=NWi(a[f],I,r,n)}}}}else a=t;return a}}function RWi(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function CEc(e,t){return!(!(0,TWi.isPlainObject)(e)||!(0,TWi.isPlainObject)(t))}});var xWi=H(TDe=>{"use strict";Object.defineProperty(TDe,"__esModule",{value:!0});TDe.callWithTimeout=TDe.TimeoutError=void 0;var tSt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};TDe.TimeoutError=tSt;function _Ec(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new tSt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}TDe.callWithTimeout=_Ec});var FWi=H(RDe=>{"use strict";Object.defineProperty(RDe,"__esModule",{value:!0});RDe.isUrlIgnored=RDe.urlMatches=void 0;function GWi(e,t){return typeof t=="string"?e===t:!!e.match(t)}RDe.urlMatches=GWi;function yEc(e,t){if(!t)return!1;for(let r of t)if(GWi(e,r))return!0;return!1}RDe.isUrlIgnored=yEc});var ZWi=H(rSt=>{"use strict";Object.defineProperty(rSt,"__esModule",{value:!0});rSt.isWrapped=void 0;function bEc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}rSt.isWrapped=bEc});var LWi=H(nSt=>{"use strict";Object.defineProperty(nSt,"__esModule",{value:!0});nSt.Deferred=void 0;var eLr=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};nSt.Deferred=eLr});var VWi=H(iSt=>{"use strict";Object.defineProperty(iSt,"__esModule",{value:!0});iSt.BindOnceFuture=void 0;var EEc=LWi(),tLr=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new EEc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};iSt.BindOnceFuture=tLr});var WWi=H(sSt=>{"use strict";Object.defineProperty(sSt,"__esModule",{value:!0});sSt._export=void 0;var PWi=(GI(),vi(xI)),SEc=bKe();function vEc(e,t){return new Promise(r=>{PWi.context.with((0,SEc.suppressTracing)(PWi.context.active()),()=>{e.export(t,n=>{r(n)})})})}sSt._export=vEc});var AH=H(vm=>{"use strict";var BEc=vm&&vm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ab=vm&&vm.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&BEc(t,e,r)};Object.defineProperty(vm,"__esModule",{value:!0});vm.internal=vm.baggageUtils=void 0;ab(GPi(),vm);ab(FPi(),vm);ab(WPi(),vm);ab(NZr(),vm);ab(RZr(),vm);ab(iWi(),vm);ab(oWi(),vm);ab(aWi(),vm);ab(P2t(),vm);vm.baggageUtils=SZr();ab(FZr(),vm);ab(lWi(),vm);ab(IWi(),vm);ab(mWi(),vm);ab(CWi(),vm);ab(XZr(),vm);ab(UZr(),vm);ab(yWi(),vm);ab(bWi(),vm);ab(bKe(),vm);ab(MZr(),vm);ab(xZr(),vm);ab(kWi(),vm);ab(DZr(),vm);ab(xWi(),vm);ab(FWi(),vm);ab(ZWi(),vm);ab(VWi(),vm);ab(P2t(),vm);var wEc=WWi();vm.internal={_export:wEc._export}});var OWi=H(oSt=>{"use strict";Object.defineProperty(oSt,"__esModule",{value:!0});oSt.defaultServiceName=void 0;function TEc(){return`unknown_service:${process.argv0}`}oSt.defaultServiceName=TEc});var rLr=H(NDe=>{"use strict";Object.defineProperty(NDe,"__esModule",{value:!0});NDe.normalizeType=NDe.normalizeArch=void 0;var REc=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};NDe.normalizeArch=REc;var NEc=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};NDe.normalizeType=NEc});var cSt=H(aSt=>{"use strict";Object.defineProperty(aSt,"__esModule",{value:!0});aSt.execAsync=void 0;var DEc=wt("child_process"),kEc=wt("util");aSt.execAsync=kEc.promisify(DEc.exec)});var MWi=H(lSt=>{"use strict";Object.defineProperty(lSt,"__esModule",{value:!0});lSt.getMachineId=void 0;var xEc=cSt(),GEc=(GI(),vi(xI));async function FEc(){try{let t=(await(0,xEc.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find(n=>n.includes("IOPlatformUUID"));if(!t)return"";let r=t.split('" = "');if(r.length===2)return r[1].slice(0,-1)}catch(e){GEc.diag.debug(`error reading machine id: ${e}`)}return""}lSt.getMachineId=FEc});var HWi=H(uSt=>{"use strict";Object.defineProperty(uSt,"__esModule",{value:!0});uSt.getMachineId=void 0;var ZEc=wt("fs"),LEc=(GI(),vi(xI));async function VEc(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await ZEc.promises.readFile(t,{encoding:"utf8"})).trim()}catch(r){LEc.diag.debug(`error reading machine id: ${r}`)}return""}uSt.getMachineId=VEc});var QWi=H(gSt=>{"use strict";Object.defineProperty(gSt,"__esModule",{value:!0});gSt.getMachineId=void 0;var PEc=wt("fs"),WEc=cSt(),YWi=(GI(),vi(xI));async function OEc(){try{return(await PEc.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,WEc.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}return""}gSt.getMachineId=OEc});var JWi=H(ASt=>{"use strict";Object.defineProperty(ASt,"__esModule",{value:!0});ASt.getMachineId=void 0;var XWi=wt("process"),MEc=cSt(),HEc=(GI(),vi(xI));async function YEc(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";XWi.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in XWi.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let n=(await(0,MEc.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(n.length===2)return n[1].trim()}catch(r){HEc.diag.debug(`error reading machine id: ${r}`)}return""}ASt.getMachineId=YEc});var UWi=H(dSt=>{"use strict";Object.defineProperty(dSt,"__esModule",{value:!0});dSt.getMachineId=void 0;var QEc=(GI(),vi(xI));async function XEc(){return QEc.diag.debug("could not read machine-id: unsupported platform"),""}dSt.getMachineId=XEc});var KWi=H(Kee=>{"use strict";Object.defineProperty(Kee,"__esModule",{value:!0});Kee.getMachineId=void 0;var JEc=wt("process"),DDe;Kee.getMachineId=DDe;switch(JEc.platform){case"darwin":Kee.getMachineId=DDe=MWi().getMachineId;break;case"linux":Kee.getMachineId=DDe=HWi().getMachineId;break;case"freebsd":Kee.getMachineId=DDe=QWi().getMachineId;break;case"win32":Kee.getMachineId=DDe=JWi().getMachineId;break;default:Kee.getMachineId=DDe=UWi().getMachineId}});var sLr=H(pSt=>{"use strict";Object.defineProperty(pSt,"__esModule",{value:!0});pSt.hostDetectorSync=void 0;var nLr=Hce(),UEc=WCe(),jWi=wt("os"),KEc=rLr(),jEc=KWi(),iLr=class{detect(t){let r={[nLr.SemanticResourceAttributes.HOST_NAME]:(0,jWi.hostname)(),[nLr.SemanticResourceAttributes.HOST_ARCH]:(0,KEc.normalizeArch)((0,jWi.arch)())};return new UEc.Resource(r,this._getAsyncAttributes())}_getAsyncAttributes(){return(0,jEc.getMachineId)().then(t=>{let r={};return t&&(r[nLr.SemanticResourceAttributes.HOST_ID]=t),r})}};pSt.hostDetectorSync=new iLr});var zWi=H(fSt=>{"use strict";Object.defineProperty(fSt,"__esModule",{value:!0});fSt.hostDetector=void 0;var zEc=sLr(),oLr=class{detect(t){return Promise.resolve(zEc.hostDetectorSync.detect(t))}};fSt.hostDetector=new oLr});var cLr=H(ISt=>{"use strict";Object.defineProperty(ISt,"__esModule",{value:!0});ISt.osDetectorSync=void 0;var qWi=Hce(),qEc=WCe(),$Wi=wt("os"),$Ec=rLr(),aLr=class{detect(t){let r={[qWi.SemanticResourceAttributes.OS_TYPE]:(0,$Ec.normalizeType)((0,$Wi.platform)()),[qWi.SemanticResourceAttributes.OS_VERSION]:(0,$Wi.release)()};return new qEc.Resource(r)}};ISt.osDetectorSync=new aLr});var eOi=H(hSt=>{"use strict";Object.defineProperty(hSt,"__esModule",{value:!0});hSt.osDetector=void 0;var e1c=cLr(),lLr=class{detect(t){return Promise.resolve(e1c.osDetectorSync.detect(t))}};hSt.osDetector=new lLr});var gLr=H(mSt=>{"use strict";Object.defineProperty(mSt,"__esModule",{value:!0});mSt.processDetectorSync=void 0;var t1c=(GI(),vi(xI)),jee=Hce(),r1c=WCe(),n1c=wt("os"),uLr=class{detect(t){let r={[jee.SemanticResourceAttributes.PROCESS_PID]:process.pid,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_NAME]:process.title,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_PATH]:process.execPath,[jee.SemanticResourceAttributes.PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[jee.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:process.versions.node,[jee.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"nodejs",[jee.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(r[jee.SemanticResourceAttributes.PROCESS_COMMAND]=process.argv[1]);try{let n=n1c.userInfo();r[jee.SemanticResourceAttributes.PROCESS_OWNER]=n.username}catch(n){t1c.diag.debug(`error obtaining process owner: ${n}`)}return new r1c.Resource(r)}};mSt.processDetectorSync=new uLr});var tOi=H(CSt=>{"use strict";Object.defineProperty(CSt,"__esModule",{value:!0});CSt.processDetector=void 0;var i1c=gLr(),ALr=class{detect(t){return Promise.resolve(i1c.processDetectorSync.detect(t))}};CSt.processDetector=new ALr});var rOi=H(SO=>{"use strict";var s1c=SO&&SO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OCe=SO&&SO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&s1c(t,e,r)};Object.defineProperty(SO,"__esModule",{value:!0});OCe(OWi(),SO);OCe(zWi(),SO);OCe(eOi(),SO);OCe(sLr(),SO);OCe(cLr(),SO);OCe(tOi(),SO);OCe(gLr(),SO)});var dLr=H(MCe=>{"use strict";var o1c=MCe&&MCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),a1c=MCe&&MCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&o1c(t,e,r)};Object.defineProperty(MCe,"__esModule",{value:!0});a1c(rOi(),MCe)});var WCe=H(_St=>{"use strict";Object.defineProperty(_St,"__esModule",{value:!0});_St.Resource=void 0;var nOi=(GI(),vi(xI)),HCe=Hce(),pLr=AH(),c1c=dLr(),TKe=class e{constructor(t,r){var n;this._attributes=t,this.asyncAttributesPending=r!=null,this._syncAttributes=(n=this._attributes)!==null&&n!==void 0?n:{},this._asyncAttributesPromise=r?.then(a=>(this._attributes=Object.assign({},this._attributes,a),this.asyncAttributesPending=!1,a),a=>(nOi.diag.debug("a resource's async attributes promise rejected: %s",a),this.asyncAttributesPending=!1,{}))}static empty(){return e.EMPTY}static default(){return new e({[HCe.SemanticResourceAttributes.SERVICE_NAME]:(0,c1c.defaultServiceName)(),[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]})}get attributes(){var t;return this.asyncAttributesPending&&nOi.diag.error("Accessing resource attributes before async attributes settled"),(t=this._attributes)!==null&&t!==void 0?t:{}}async waitForAsyncAttributes(){this.asyncAttributesPending&&await this._asyncAttributesPromise}merge(t){var r;if(!t)return this;let n=Object.assign(Object.assign({},this._syncAttributes),(r=t._syncAttributes)!==null&&r!==void 0?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(n);let a=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then(([o,l])=>{var A;return Object.assign(Object.assign(Object.assign(Object.assign({},this._syncAttributes),o),(A=t._syncAttributes)!==null&&A!==void 0?A:t.attributes),l)});return new e(n,a)}};_St.Resource=TKe;TKe.EMPTY=new TKe({})});var sOi=H(iOi=>{"use strict";Object.defineProperty(iOi,"__esModule",{value:!0})});var aOi=H(oOi=>{"use strict";Object.defineProperty(oOi,"__esModule",{value:!0})});var lOi=H(cOi=>{"use strict";Object.defineProperty(cOi,"__esModule",{value:!0})});var uOi=H(ySt=>{"use strict";Object.defineProperty(ySt,"__esModule",{value:!0});ySt.browserDetector=void 0;var l1c=bSt(),fLr=class{detect(t){return Promise.resolve(l1c.browserDetectorSync.detect(t))}};ySt.browserDetector=new fLr});var hLr=H(ESt=>{"use strict";Object.defineProperty(ESt,"__esModule",{value:!0});ESt.envDetectorSync=void 0;var u1c=(GI(),vi(xI)),g1c=AH(),A1c=Hce(),d1c=WCe(),ILr=class{constructor(){this._MAX_LENGTH=255,this._COMMA_SEPARATOR=",",this._LABEL_KEY_VALUE_SPLITTER="=",this._ERROR_MESSAGE_INVALID_CHARS="should be a ASCII string with a length greater than 0 and not exceed "+this._MAX_LENGTH+" characters.",this._ERROR_MESSAGE_INVALID_VALUE="should be a ASCII string with a length not exceed "+this._MAX_LENGTH+" characters."}detect(t){let r={},n=(0,g1c.getEnv)(),a=n.OTEL_RESOURCE_ATTRIBUTES,o=n.OTEL_SERVICE_NAME;if(a)try{let l=this._parseResourceAttributes(a);Object.assign(r,l)}catch(l){u1c.diag.debug(`EnvDetector failed: ${l.message}`)}return o&&(r[A1c.SemanticResourceAttributes.SERVICE_NAME]=o),new d1c.Resource(r)}_parseResourceAttributes(t){if(!t)return{};let r={},n=t.split(this._COMMA_SEPARATOR,-1);for(let a of n){let o=a.split(this._LABEL_KEY_VALUE_SPLITTER,-1);if(o.length!==2)continue;let[l,A]=o;if(l=l.trim(),A=A.trim().split(/^"|"$/).join(""),!this._isValidAndNotEmpty(l))throw new Error(`Attribute key ${this._ERROR_MESSAGE_INVALID_CHARS}`);if(!this._isValid(A))throw new Error(`Attribute value ${this._ERROR_MESSAGE_INVALID_VALUE}`);r[l]=decodeURIComponent(A)}return r}_isValid(t){return t.length<=this._MAX_LENGTH&&this._isBaggageOctetString(t)}_isBaggageOctetString(t){for(let r=0;r126)return!1}return!0}_isValidAndNotEmpty(t){return t.length>0&&this._isValid(t)}};ESt.envDetectorSync=new ILr});var gOi=H(SSt=>{"use strict";Object.defineProperty(SSt,"__esModule",{value:!0});SSt.envDetector=void 0;var p1c=hLr(),mLr=class{detect(t){return Promise.resolve(p1c.envDetectorSync.detect(t))}};SSt.envDetector=new mLr});var AOi=H(BSt=>{"use strict";Object.defineProperty(BSt,"__esModule",{value:!0});BSt.browserDetectorSync=void 0;var vSt=Hce(),CLr=bSt(),f1c=(GI(),vi(xI)),_Lr=class{detect(t){if(!(typeof navigator<"u"))return CLr.Resource.empty();let n={[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Web Browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:navigator.userAgent};return this._getResourceAttributes(n,t)}_getResourceAttributes(t,r){return t[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]===""?(f1c.diag.debug("BrowserDetector failed: Unable to find required browser resources. "),CLr.Resource.empty()):new CLr.Resource(Object.assign({},t))}};BSt.browserDetectorSync=new _Lr});var dOi=H(Dj=>{"use strict";var I1c=Dj&&Dj.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),wSt=Dj&&Dj.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&I1c(t,e,r)};Object.defineProperty(Dj,"__esModule",{value:!0});wSt(uOi(),Dj);wSt(gOi(),Dj);wSt(AOi(),Dj);wSt(hLr(),Dj)});var pOi=H(TSt=>{"use strict";Object.defineProperty(TSt,"__esModule",{value:!0});TSt.isPromiseLike=void 0;var h1c=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";TSt.isPromiseLike=h1c});var IOi=H(xDe=>{"use strict";Object.defineProperty(xDe,"__esModule",{value:!0});xDe.detectResourcesSync=xDe.detectResources=void 0;var RKe=WCe(),kDe=(GI(),vi(xI)),m1c=pOi(),C1c=async(e={})=>{let t=await Promise.all((e.detectors||[]).map(async r=>{try{let n=await r.detect(e);return kDe.diag.debug(`${r.constructor.name} found resource.`,n),n}catch(n){return kDe.diag.debug(`${r.constructor.name} failed: ${n.message}`),RKe.Resource.empty()}}));return fOi(t),t.reduce((r,n)=>r.merge(n),RKe.Resource.empty())};xDe.detectResources=C1c;var _1c=(e={})=>{var t;let r=((t=e.detectors)!==null&&t!==void 0?t:[]).map(a=>{try{let o=a.detect(e),l;if((0,m1c.isPromiseLike)(o)){let A=async()=>(await o).attributes;l=new RKe.Resource({},A())}else l=o;return l.waitForAsyncAttributes?l.waitForAsyncAttributes().then(()=>kDe.diag.debug(`${a.constructor.name} found resource.`,l)):kDe.diag.debug(`${a.constructor.name} found resource.`,l),l}catch(o){return kDe.diag.error(`${a.constructor.name} failed: ${o.message}`),RKe.Resource.empty()}}),n=r.reduce((a,o)=>a.merge(o),RKe.Resource.empty());return n.waitForAsyncAttributes&&n.waitForAsyncAttributes().then(()=>{fOi(r)}),n};xDe.detectResourcesSync=_1c;var fOi=e=>{e.forEach(t=>{if(Object.keys(t.attributes).length>0){let r=JSON.stringify(t.attributes,null,4);kDe.diag.verbose(r)}})}});var bSt=H(vO=>{"use strict";var y1c=vO&&vO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),YCe=vO&&vO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&y1c(t,e,r)};Object.defineProperty(vO,"__esModule",{value:!0});YCe(WCe(),vO);YCe(sOi(),vO);YCe(dLr(),vO);YCe(aOi(),vO);YCe(lOi(),vO);YCe(dOi(),vO);YCe(IOi(),vO)});var ELr=H(RSt=>{"use strict";Object.defineProperty(RSt,"__esModule",{value:!0});RSt.LogRecord=void 0;var b1c=(GI(),vi(xI)),NKe=(GI(),vi(xI)),yLr=AH(),bLr=class{constructor(t,r){this.attributes={},this._isReadonly=!1;let{timestamp:n,observedTimestamp:a,severityNumber:o,severityText:l,body:A,attributes:f={},context:I}=r,C=Date.now();if(this.hrTime=(0,yLr.timeInputToHrTime)(n??C),this.hrTimeObserved=(0,yLr.timeInputToHrTime)(a??C),I){let b=NKe.trace.getSpanContext(I);b&&NKe.isSpanContextValid(b)&&(this.spanContext=b)}this.severityNumber=o,this.severityText=l,this.body=A,this.resource=t.resource,this.instrumentationScope=t.instrumentationScope,this._logRecordLimits=t.getLogRecordLimits(),this.setAttributes(f)}set severityText(t){this._isLogRecordReadonly()||(this._severityText=t)}get severityText(){return this._severityText}set severityNumber(t){this._isLogRecordReadonly()||(this._severityNumber=t)}get severityNumber(){return this._severityNumber}set body(t){this._isLogRecordReadonly()||(this._body=t)}get body(){return this._body}setAttribute(t,r){return this._isLogRecordReadonly()?this:r===null?this:(typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).length>0&&(this.attributes[t]=r),t.length===0?(NKe.diag.warn(`Invalid attribute key: ${t}`),this):(0,yLr.isAttributeValue)(r)?Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,t)?this:(this.attributes[t]=this._truncateToSize(r),this):(NKe.diag.warn(`Invalid attribute value set for key: ${t}`),this))}setAttributes(t){for(let[r,n]of Object.entries(t))this.setAttribute(r,n);return this}setBody(t){return this.body=t,this}setSeverityNumber(t){return this.severityNumber=t,this}setSeverityText(t){return this.severityText=t,this}makeReadonly(){this._isReadonly=!0}_truncateToSize(t){let r=this._logRecordLimits.attributeValueLengthLimit||0;return r<=0?(NKe.diag.warn(`Attribute value limit must be positive, got ${r}`),t):typeof t=="string"?this._truncateToLimitUtil(t,r):Array.isArray(t)?t.map(n=>typeof n=="string"?this._truncateToLimitUtil(n,r):n):t}_truncateToLimitUtil(t,r){return t.length<=r?t:t.substring(0,r)}_isLogRecordReadonly(){return this._isReadonly&&b1c.diag.warn("Can not execute the operation on emitted log record"),this._isReadonly}};RSt.LogRecord=bLr});var SLr=H(kj=>{"use strict";Object.defineProperty(kj,"__esModule",{value:!0});kj.DEFAULT_EVENT_DOMAIN=kj.mergeConfig=kj.reconfigureLimits=kj.loadDefaultConfig=void 0;var DKe=AH();function hOi(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT},includeTraceContext:!0}}kj.loadDefaultConfig=hOi;function E1c(e){var t,r,n,a,o,l,A,f;let I=Object.assign({},e.logRecordLimits),C=(0,DKe.getEnvWithoutDefaults)();return I.attributeCountLimit=(a=(n=(r=(t=e.logRecordLimits)===null||t===void 0?void 0:t.attributeCountLimit)!==null&&r!==void 0?r:C.OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT)!==null&&n!==void 0?n:C.OTEL_ATTRIBUTE_COUNT_LIMIT)!==null&&a!==void 0?a:DKe.DEFAULT_ATTRIBUTE_COUNT_LIMIT,I.attributeValueLengthLimit=(f=(A=(l=(o=e.logRecordLimits)===null||o===void 0?void 0:o.attributeValueLengthLimit)!==null&&l!==void 0?l:C.OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&A!==void 0?A:C.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&f!==void 0?f:DKe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{logRecordLimits:I})}kj.reconfigureLimits=E1c;function S1c(e){let t=hOi(),r=Object.assign({},t,e);return r.logRecordLimits=Object.assign({},t.logRecordLimits,e.logRecordLimits||{}),r}kj.mergeConfig=S1c;kj.DEFAULT_EVENT_DOMAIN="default"});var BLr=H(NSt=>{"use strict";Object.defineProperty(NSt,"__esModule",{value:!0});NSt.Logger=void 0;var v1c=(GI(),vi(xI)),B1c=ELr(),w1c=SLr(),vLr=class{constructor(t,r,n){this.instrumentationScope=t,this._loggerProvider=n,this._loggerConfig=(0,w1c.mergeConfig)(r),this.resource=n.resource}emit(t){let r=t.context||v1c.context.active(),n=new B1c.LogRecord(this,Object.assign({context:r},t));this.getActiveLogRecordProcessor().onEmit(n,r),n.makeReadonly()}getLogRecordLimits(){return this._loggerConfig.logRecordLimits}getActiveLogRecordProcessor(){return this._loggerProvider.getActiveLogRecordProcessor()}};NSt.Logger=vLr});var mOi=H(DSt=>{"use strict";Object.defineProperty(DSt,"__esModule",{value:!0});DSt.MultiLogRecordProcessor=void 0;var T1c=AH(),wLr=class{constructor(t,r){this.processors=t,this.forceFlushTimeoutMillis=r}async forceFlush(){let t=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(r=>(0,T1c.callWithTimeout)(r.forceFlush(),t)))}onEmit(t){this.processors.forEach(r=>r.onEmit(t))}async shutdown(){await Promise.all(this.processors.map(t=>t.shutdown()))}};DSt.MultiLogRecordProcessor=wLr});var RLr=H(kSt=>{"use strict";Object.defineProperty(kSt,"__esModule",{value:!0});kSt.NoopLogRecordProcessor=void 0;var TLr=class{forceFlush(){return Promise.resolve()}onEmit(t){}shutdown(){return Promise.resolve()}};kSt.NoopLogRecordProcessor=TLr});var EOi=H(QCe=>{"use strict";Object.defineProperty(QCe,"__esModule",{value:!0});QCe.LoggerProvider=QCe.DEFAULT_LOGGER_NAME=void 0;var kKe=(GI(),vi(xI)),R1c=bDe(),COi=bSt(),_Oi=AH(),N1c=BLr(),yOi=SLr(),bOi=mOi(),D1c=RLr();QCe.DEFAULT_LOGGER_NAME="unknown";var NLr=class{constructor(t={}){this._loggers=new Map,this._registeredLogRecordProcessors=[];let{resource:r=COi.Resource.empty(),logRecordLimits:n,forceFlushTimeoutMillis:a}=(0,_Oi.merge)({},(0,yOi.loadDefaultConfig)(),(0,yOi.reconfigureLimits)(t));this.resource=COi.Resource.default().merge(r),this._config={logRecordLimits:n,resource:this.resource,forceFlushTimeoutMillis:a},this._shutdownOnce=new _Oi.BindOnceFuture(this._shutdown,this),this._activeProcessor=new bOi.MultiLogRecordProcessor([new D1c.NoopLogRecordProcessor],a)}getLogger(t,r,n){if(this._shutdownOnce.isCalled)return kKe.diag.warn("A shutdown LoggerProvider cannot provide a Logger"),R1c.NOOP_LOGGER;t||kKe.diag.warn("Logger requested without instrumentation scope name.");let a=t||QCe.DEFAULT_LOGGER_NAME,o=`${a}@${r||""}:${n?.schemaUrl||""}`;return this._loggers.has(o)||this._loggers.set(o,new N1c.Logger({name:a,version:r,schemaUrl:n?.schemaUrl},{logRecordLimits:this._config.logRecordLimits},this)),this._loggers.get(o)}addLogRecordProcessor(t){this._registeredLogRecordProcessors.length===0&&this._activeProcessor.shutdown().catch(r=>kKe.diag.error("Error while trying to shutdown current log record processor",r)),this._registeredLogRecordProcessors.push(t),this._activeProcessor=new bOi.MultiLogRecordProcessor(this._registeredLogRecordProcessors,this._config.forceFlushTimeoutMillis)}forceFlush(){return this._shutdownOnce.isCalled?(kKe.diag.warn("invalid attempt to force flush after LoggerProvider shutdown"),this._shutdownOnce.promise):this._activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(kKe.diag.warn("shutdown may only be called once per LoggerProvider"),this._shutdownOnce.promise):this._shutdownOnce.call()}getActiveLogRecordProcessor(){return this._activeProcessor}getActiveLoggers(){return this._loggers}_shutdown(){return this._activeProcessor.shutdown()}};QCe.LoggerProvider=NLr});var SOi=H(xSt=>{"use strict";Object.defineProperty(xSt,"__esModule",{value:!0});xSt.ConsoleLogRecordExporter=void 0;var k1c=AH(),x1c=AH(),DLr=class{export(t,r){this._sendLogRecords(t,r)}shutdown(){return Promise.resolve()}_exportInfo(t){var r,n,a;return{timestamp:(0,k1c.hrTimeToMicroseconds)(t.hrTime),traceId:(r=t.spanContext)===null||r===void 0?void 0:r.traceId,spanId:(n=t.spanContext)===null||n===void 0?void 0:n.spanId,traceFlags:(a=t.spanContext)===null||a===void 0?void 0:a.traceFlags,severityText:t.severityText,severityNumber:t.severityNumber,body:t.body,attributes:t.attributes}}_sendLogRecords(t,r){for(let n of t)console.dir(this._exportInfo(n),{depth:3});r?.({code:x1c.ExportResultCode.SUCCESS})}};xSt.ConsoleLogRecordExporter=DLr});var vOi=H(GSt=>{"use strict";Object.defineProperty(GSt,"__esModule",{value:!0});GSt.SimpleLogRecordProcessor=void 0;var kLr=AH(),xLr=class{constructor(t){this._exporter=t,this._shutdownOnce=new kLr.BindOnceFuture(this._shutdown,this)}onEmit(t){this._shutdownOnce.isCalled||this._exporter.export([t],r=>{var n;if(r.code!==kLr.ExportResultCode.SUCCESS){(0,kLr.globalErrorHandler)((n=r.error)!==null&&n!==void 0?n:new Error(`SimpleLogRecordProcessor: log record export failed (status ${r})`));return}})}forceFlush(){return Promise.resolve()}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};GSt.SimpleLogRecordProcessor=xLr});var wOi=H(FSt=>{"use strict";Object.defineProperty(FSt,"__esModule",{value:!0});FSt.InMemoryLogRecordExporter=void 0;var BOi=AH(),GLr=class{constructor(){this._finishedLogRecords=[],this._stopped=!1}export(t,r){if(this._stopped)return r({code:BOi.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedLogRecords.push(...t),r({code:BOi.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}};FSt.InMemoryLogRecordExporter=GLr});var TOi=H(ZSt=>{"use strict";Object.defineProperty(ZSt,"__esModule",{value:!0});ZSt.BatchLogRecordProcessorBase=void 0;var G1c=(GI(),vi(xI)),GDe=AH(),FLr=class{constructor(t,r){var n,a,o,l;this._exporter=t,this._finishedLogRecords=[];let A=(0,GDe.getEnv)();this._maxExportBatchSize=(n=r?.maxExportBatchSize)!==null&&n!==void 0?n:A.OTEL_BLRP_MAX_EXPORT_BATCH_SIZE,this._maxQueueSize=(a=r?.maxQueueSize)!==null&&a!==void 0?a:A.OTEL_BLRP_MAX_QUEUE_SIZE,this._scheduledDelayMillis=(o=r?.scheduledDelayMillis)!==null&&o!==void 0?o:A.OTEL_BLRP_SCHEDULE_DELAY,this._exportTimeoutMillis=(l=r?.exportTimeoutMillis)!==null&&l!==void 0?l:A.OTEL_BLRP_EXPORT_TIMEOUT,this._shutdownOnce=new GDe.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(G1c.diag.warn("BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}onEmit(t){this._shutdownOnce.isCalled||this._addToBuffer(t)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(t){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(t),this._maybeStartTimer())}_flushAll(){return new Promise((t,r)=>{let n=[],a=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let o=0;o{t()}).catch(r)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((t,r)=>{(0,GDe.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>t()).catch(r)})}_maybeStartTimer(){this._timer===void 0&&(this._timer=setTimeout(()=>{this._flushOneBatch().then(()=>{this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(t=>{(0,GDe.globalErrorHandler)(t)})},this._scheduledDelayMillis),(0,GDe.unrefTimer)(this._timer))}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(t){return new Promise((r,n)=>{this._exporter.export(t,a=>{var o;if(a.code!==GDe.ExportResultCode.SUCCESS){n((o=a.error)!==null&&o!==void 0?o:new Error(`BatchLogRecordProcessorBase: log record export failed (status ${a})`));return}r(a)})})}};ZSt.BatchLogRecordProcessorBase=FLr});var ROi=H(LSt=>{"use strict";Object.defineProperty(LSt,"__esModule",{value:!0});LSt.BatchLogRecordProcessor=void 0;var F1c=TOi(),ZLr=class extends F1c.BatchLogRecordProcessorBase{onShutdown(){}};LSt.BatchLogRecordProcessor=ZLr});var NOi=H(VSt=>{"use strict";Object.defineProperty(VSt,"__esModule",{value:!0});VSt.BatchLogRecordProcessor=void 0;var Z1c=ROi();Object.defineProperty(VSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Z1c.BatchLogRecordProcessor}})});var DOi=H(PSt=>{"use strict";Object.defineProperty(PSt,"__esModule",{value:!0});PSt.BatchLogRecordProcessor=void 0;var L1c=NOi();Object.defineProperty(PSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return L1c.BatchLogRecordProcessor}})});var xKe=H(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.BatchLogRecordProcessor=uD.InMemoryLogRecordExporter=uD.SimpleLogRecordProcessor=uD.ConsoleLogRecordExporter=uD.NoopLogRecordProcessor=uD.LogRecord=uD.Logger=uD.LoggerProvider=void 0;var V1c=EOi();Object.defineProperty(uD,"LoggerProvider",{enumerable:!0,get:function(){return V1c.LoggerProvider}});var P1c=BLr();Object.defineProperty(uD,"Logger",{enumerable:!0,get:function(){return P1c.Logger}});var W1c=ELr();Object.defineProperty(uD,"LogRecord",{enumerable:!0,get:function(){return W1c.LogRecord}});var O1c=RLr();Object.defineProperty(uD,"NoopLogRecordProcessor",{enumerable:!0,get:function(){return O1c.NoopLogRecordProcessor}});var M1c=SOi();Object.defineProperty(uD,"ConsoleLogRecordExporter",{enumerable:!0,get:function(){return M1c.ConsoleLogRecordExporter}});var H1c=vOi();Object.defineProperty(uD,"SimpleLogRecordProcessor",{enumerable:!0,get:function(){return H1c.SimpleLogRecordProcessor}});var Y1c=wOi();Object.defineProperty(uD,"InMemoryLogRecordExporter",{enumerable:!0,get:function(){return Y1c.InMemoryLogRecordExporter}});var Q1c=DOi();Object.defineProperty(uD,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Q1c.BatchLogRecordProcessor}})});var GKe=H(Jce=>{"use strict";Object.defineProperty(Jce,"__esModule",{value:!0});Jce.isTracingSuppressed=Jce.unsuppressTracing=Jce.suppressTracing=void 0;var X1c=(GI(),vi(xI)),VLr=(0,X1c.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function J1c(e){return e.setValue(VLr,!0)}Jce.suppressTracing=J1c;function U1c(e){return e.deleteValue(VLr)}Jce.unsuppressTracing=U1c;function K1c(e){return e.getValue(VLr)===!0}Jce.isTracingSuppressed=K1c});var PLr=H(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.BAGGAGE_MAX_TOTAL_LENGTH=MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=MG.BAGGAGE_HEADER=MG.BAGGAGE_ITEMS_SEPARATOR=MG.BAGGAGE_PROPERTIES_SEPARATOR=MG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;MG.BAGGAGE_KEY_PAIR_SEPARATOR="=";MG.BAGGAGE_PROPERTIES_SEPARATOR=";";MG.BAGGAGE_ITEMS_SEPARATOR=",";MG.BAGGAGE_HEADER="baggage";MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;MG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var WLr=H(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.parseKeyPairsIntoRecord=xj.parsePairKeyValue=xj.getKeyPairs=xj.serializeKeyPairs=void 0;var j1c=(GI(),vi(xI)),XCe=PLr();function z1c(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?XCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>XCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}xj.serializeKeyPairs=z1c;function q1c(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=XCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}xj.getKeyPairs=q1c;function kOi(e){let t=e.split(XCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(XCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,j1c.baggageEntryMetadataFromString)(t.join(XCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}xj.parsePairKeyValue=kOi;function $1c(e){return typeof e!="string"||e.length===0?{}:e.split(XCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>kOi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}xj.parseKeyPairsIntoRecord=$1c});var xOi=H(WSt=>{"use strict";Object.defineProperty(WSt,"__esModule",{value:!0});WSt.W3CBaggagePropagator=void 0;var OLr=(GI(),vi(xI)),e2c=GKe(),JCe=PLr(),MLr=WLr(),HLr=class{inject(t,r,n){let a=OLr.propagation.getBaggage(t);if(!a||(0,e2c.isTracingSuppressed)(t))return;let o=(0,MLr.getKeyPairs)(a).filter(A=>A.length<=JCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,JCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,MLr.serializeKeyPairs)(o);l.length>0&&n.set(r,JCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,JCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(JCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(JCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,MLr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:OLr.propagation.setBaggage(t,OLr.propagation.createBaggage(l))}fields(){return[JCe.BAGGAGE_HEADER]}};WSt.W3CBaggagePropagator=HLr});var GOi=H(OSt=>{"use strict";Object.defineProperty(OSt,"__esModule",{value:!0});OSt.AnchoredClock=void 0;var YLr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};OSt.AnchoredClock=YLr});var POi=H(Uce=>{"use strict";Object.defineProperty(Uce,"__esModule",{value:!0});Uce.isAttributeValue=Uce.isAttributeKey=Uce.sanitizeAttributes=void 0;var FOi=(GI(),vi(xI));function t2c(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!ZOi(r)){FOi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!LOi(n)){FOi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Uce.sanitizeAttributes=t2c;function ZOi(e){return typeof e=="string"&&e.length>0}Uce.isAttributeKey=ZOi;function LOi(e){return e==null?!0:Array.isArray(e)?r2c(e):VOi(e)}Uce.isAttributeValue=LOi;function r2c(e){let t;for(let r of e)if(r!=null){if(!t){if(VOi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function VOi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var QLr=H(MSt=>{"use strict";Object.defineProperty(MSt,"__esModule",{value:!0});MSt.loggingErrorHandler=void 0;var n2c=(GI(),vi(xI));function i2c(){return e=>{n2c.diag.error(s2c(e))}}MSt.loggingErrorHandler=i2c;function s2c(e){return typeof e=="string"?e:JSON.stringify(o2c(e))}function o2c(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var XLr=H(FDe=>{"use strict";Object.defineProperty(FDe,"__esModule",{value:!0});FDe.globalErrorHandler=FDe.setGlobalErrorHandler=void 0;var a2c=QLr(),WOi=(0,a2c.loggingErrorHandler)();function c2c(e){WOi=e}FDe.setGlobalErrorHandler=c2c;function l2c(e){try{WOi(e)}catch{}}FDe.globalErrorHandler=l2c});var JLr=H(FKe=>{"use strict";Object.defineProperty(FKe,"__esModule",{value:!0});FKe.TracesSamplerValues=void 0;var u2c;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(u2c=FKe.TracesSamplerValues||(FKe.TracesSamplerValues={}))});var ULr=H(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.parseEnvironment=LS.DEFAULT_ENVIRONMENT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Kce=(GI(),vi(xI)),g2c=JLr(),A2c=",",d2c=["OTEL_SDK_DISABLED"];function p2c(e){return d2c.indexOf(e)>-1}var f2c=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function I2c(e){return f2c.indexOf(e)>-1}var h2c=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS","OTEL_SEMCONV_STABILITY_OPT_IN"];function m2c(e){return h2c.indexOf(e)>-1}LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;LS.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Kce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:g2c.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative",OTEL_SEMCONV_STABILITY_OPT_IN:[]};function C2c(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function _2c(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function y2c(e,t,r,n=A2c){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var b2c={ALL:Kce.DiagLogLevel.ALL,VERBOSE:Kce.DiagLogLevel.VERBOSE,DEBUG:Kce.DiagLogLevel.DEBUG,INFO:Kce.DiagLogLevel.INFO,WARN:Kce.DiagLogLevel.WARN,ERROR:Kce.DiagLogLevel.ERROR,NONE:Kce.DiagLogLevel.NONE};function E2c(e,t,r){let n=r[e];if(typeof n=="string"){let a=b2c[n.toUpperCase()];a!=null&&(t[e]=a)}}function S2c(e){let t={};for(let r in LS.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":E2c(n,t,e);break;default:if(p2c(n))C2c(n,t,e);else if(I2c(n))_2c(n,t,e);else if(m2c(n))y2c(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}LS.parseEnvironment=S2c});var OOi=H(ZDe=>{"use strict";Object.defineProperty(ZDe,"__esModule",{value:!0});ZDe.getEnvWithoutDefaults=ZDe.getEnv=void 0;var KLr=ULr();function v2c(){let e=(0,KLr.parseEnvironment)(process.env);return Object.assign({},KLr.DEFAULT_ENVIRONMENT,e)}ZDe.getEnv=v2c;function B2c(){return(0,KLr.parseEnvironment)(process.env)}ZDe.getEnvWithoutDefaults=B2c});var MOi=H(HSt=>{"use strict";Object.defineProperty(HSt,"__esModule",{value:!0});HSt._globalThis=void 0;HSt._globalThis=typeof globalThis=="object"?globalThis:global});var jLr=H(YSt=>{"use strict";Object.defineProperty(YSt,"__esModule",{value:!0});YSt.hexToBinary=void 0;function HOi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function w2c(e){let t=new Uint8Array(e.length/2),r=0;for(let n=0;n{"use strict";Object.defineProperty(QSt,"__esModule",{value:!0});QSt.hexToBase64=void 0;var T2c=jLr();function R2c(e){return Buffer.from((0,T2c.hexToBinary)(e)).toString("base64")}QSt.hexToBase64=R2c});var JOi=H(JSt=>{"use strict";Object.defineProperty(JSt,"__esModule",{value:!0});JSt.RandomIdGenerator=void 0;var N2c=8,XOi=16,zLr=class{constructor(){this.generateTraceId=QOi(XOi),this.generateSpanId=QOi(N2c)}};JSt.RandomIdGenerator=zLr;var XSt=Buffer.allocUnsafe(XOi);function QOi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(XSt[e-1]=1);return XSt.toString("hex",0,e)}}});var UOi=H(USt=>{"use strict";Object.defineProperty(USt,"__esModule",{value:!0});USt.otperformance=void 0;var D2c=wt("perf_hooks");USt.otperformance=D2c.performance});var qLr=H(KSt=>{"use strict";Object.defineProperty(KSt,"__esModule",{value:!0});KSt.VERSION=void 0;KSt.VERSION="1.27.0"});function iw(e){for(var t={},r=e.length,n=0;n{});var KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi,k2c,x2c,G2c,F2c,Z2c,L2c,V2c,P2c,W2c,O2c,M2c,H2c,Y2c,Q2c,X2c,J2c,U2c,K2c,j2c,z2c,q2c,$2c,eSc,tSc,rSc,nSc,iSc,sSc,oSc,aSc,cSc,lSc,uSc,gSc,ASc,dSc,pSc,fSc,ISc,hSc,mSc,CSc,_Sc,ySc,bSc,ESc,SSc,vSc,BSc,wSc,TSc,RSc,NSc,DSc,kSc,xSc,GSc,FSc,ZSc,LSc,VSc,PSc,WSc,OSc,MSc,HSc,YSc,QSc,XSc,JSc,USc,KSc,jSc,zSc,qSc,$Sc,evc,tvc,rvc,nvc,ivc,svc,ovc,avc,cvc,lvc,uvc,gvc,Avc,dvc,pvc,fvc,Ivc,hvc,mvc,Cvc,_vc,yvc,bvc,Evc,Svc,vvc,Bvc,wvc,Tvc,Rvc,Nvc,Dvc,kvc,xvc,Gvc,Fvc,Zvc,Lvc,Vvc,Pvc,Wvc,Ovc,Mvc,Hvc,Yvc,Qvc,Xvc,Jvc,Uvc,Kvc,jvc,zvc,qvc,fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi,$vc,eBc,tBc,rBc,nBc,iBc,sBc,oBc,aBc,cBc,lBc,uBc,gBc,ABc,dBc,pBc,fBc,IBc,hBc,mBc,CBc,_Bc,yBc,bBc,EBc,SBc,vBc,BBc,wBc,TBc,RBc,NBc,DBc,kBc,xBc,GBc,FBc,ZBc,LBc,VBc,PBc,WBc,OBc,MBc,HBc,YBc,QBc,XBc,cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi,JBc,UBc,KBc,jBc,zBc,qBc,$Bc,ewc,twc,rwc,nwc,iwc,CHi,_Hi,yHi,bHi,EHi,swc,owc,awc,cwc,lwc,uwc,SHi,vHi,BHi,gwc,Awc,dwc,pwc,wHi,THi,RHi,NHi,fwc,Iwc,hwc,mwc,Cwc,DHi,kHi,xHi,GHi,FHi,ZHi,LHi,_wc,ywc,bwc,Ewc,Swc,vwc,Bwc,wwc,VHi,PHi,WHi,OHi,MHi,Twc,Rwc,Nwc,Dwc,kwc,xwc,HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi,Gwc,Fwc,Zwc,Lwc,Vwc,Pwc,Wwc,Owc,Mwc,Hwc,Ywc,Qwc,Xwc,Jwc,Uwc,Kwc,jwc,zwc,qwc,$wc,eTc,tTc,uYi,gYi,AYi,dYi,pYi,rTc,nTc,iTc,sTc,oTc,aTc,fYi,IYi,cTc,lTc,uTc,hYi,mYi,gTc,ATc,dTc,CYi,_Yi,yYi,bYi,EYi,SYi,vYi,BYi,wYi,TYi,RYi,NYi,DYi,kYi,xYi,GYi,FYi,pTc,fTc,ITc,hTc,mTc,CTc,_Tc,yTc,bTc,ETc,STc,vTc,BTc,wTc,TTc,RTc,NTc,DTc,ZYi,LYi,kTc,xTc,GTc,VYi=bc(()=>{$Lr();KOi="aws.lambda.invoked_arn",jOi="db.system",zOi="db.connection_string",qOi="db.user",$Oi="db.jdbc.driver_classname",e3i="db.name",t3i="db.statement",r3i="db.operation",n3i="db.mssql.instance_name",i3i="db.cassandra.keyspace",s3i="db.cassandra.page_size",o3i="db.cassandra.consistency_level",a3i="db.cassandra.table",c3i="db.cassandra.idempotence",l3i="db.cassandra.speculative_execution_count",u3i="db.cassandra.coordinator.id",g3i="db.cassandra.coordinator.dc",A3i="db.hbase.namespace",d3i="db.redis.database_index",p3i="db.mongodb.collection",f3i="db.sql.table",I3i="exception.type",h3i="exception.message",m3i="exception.stacktrace",C3i="exception.escaped",_3i="faas.trigger",y3i="faas.execution",b3i="faas.document.collection",E3i="faas.document.operation",S3i="faas.document.time",v3i="faas.document.name",B3i="faas.time",w3i="faas.cron",T3i="faas.coldstart",R3i="faas.invoked_name",N3i="faas.invoked_provider",D3i="faas.invoked_region",k3i="net.transport",x3i="net.peer.ip",G3i="net.peer.port",F3i="net.peer.name",Z3i="net.host.ip",L3i="net.host.port",V3i="net.host.name",P3i="net.host.connection.type",W3i="net.host.connection.subtype",O3i="net.host.carrier.name",M3i="net.host.carrier.mcc",H3i="net.host.carrier.mnc",Y3i="net.host.carrier.icc",Q3i="peer.service",X3i="enduser.id",J3i="enduser.role",U3i="enduser.scope",K3i="thread.id",j3i="thread.name",z3i="code.function",q3i="code.namespace",$3i="code.filepath",e5i="code.lineno",t5i="http.method",r5i="http.url",n5i="http.target",i5i="http.host",s5i="http.scheme",o5i="http.status_code",a5i="http.flavor",c5i="http.user_agent",l5i="http.request_content_length",u5i="http.request_content_length_uncompressed",g5i="http.response_content_length",A5i="http.response_content_length_uncompressed",d5i="http.server_name",p5i="http.route",f5i="http.client_ip",I5i="aws.dynamodb.table_names",h5i="aws.dynamodb.consumed_capacity",m5i="aws.dynamodb.item_collection_metrics",C5i="aws.dynamodb.provisioned_read_capacity",_5i="aws.dynamodb.provisioned_write_capacity",y5i="aws.dynamodb.consistent_read",b5i="aws.dynamodb.projection",E5i="aws.dynamodb.limit",S5i="aws.dynamodb.attributes_to_get",v5i="aws.dynamodb.index_name",B5i="aws.dynamodb.select",w5i="aws.dynamodb.global_secondary_indexes",T5i="aws.dynamodb.local_secondary_indexes",R5i="aws.dynamodb.exclusive_start_table",N5i="aws.dynamodb.table_count",D5i="aws.dynamodb.scan_forward",k5i="aws.dynamodb.segment",x5i="aws.dynamodb.total_segments",G5i="aws.dynamodb.count",F5i="aws.dynamodb.scanned_count",Z5i="aws.dynamodb.attribute_definitions",L5i="aws.dynamodb.global_secondary_index_updates",V5i="messaging.system",P5i="messaging.destination",W5i="messaging.destination_kind",O5i="messaging.temp_destination",M5i="messaging.protocol",H5i="messaging.protocol_version",Y5i="messaging.url",Q5i="messaging.message_id",X5i="messaging.conversation_id",J5i="messaging.message_payload_size_bytes",U5i="messaging.message_payload_compressed_size_bytes",K5i="messaging.operation",j5i="messaging.consumer_id",z5i="messaging.rabbitmq.routing_key",q5i="messaging.kafka.message_key",$5i="messaging.kafka.consumer_group",eMi="messaging.kafka.client_id",tMi="messaging.kafka.partition",rMi="messaging.kafka.tombstone",nMi="rpc.system",iMi="rpc.service",sMi="rpc.method",oMi="rpc.grpc.status_code",aMi="rpc.jsonrpc.version",cMi="rpc.jsonrpc.request_id",lMi="rpc.jsonrpc.error_code",uMi="rpc.jsonrpc.error_message",gMi="message.type",AMi="message.id",dMi="message.compressed_size",pMi="message.uncompressed_size",k2c=KOi,x2c=jOi,G2c=zOi,F2c=qOi,Z2c=$Oi,L2c=e3i,V2c=t3i,P2c=r3i,W2c=n3i,O2c=i3i,M2c=s3i,H2c=o3i,Y2c=a3i,Q2c=c3i,X2c=l3i,J2c=u3i,U2c=g3i,K2c=A3i,j2c=d3i,z2c=p3i,q2c=f3i,$2c=I3i,eSc=h3i,tSc=m3i,rSc=C3i,nSc=_3i,iSc=y3i,sSc=b3i,oSc=E3i,aSc=S3i,cSc=v3i,lSc=B3i,uSc=w3i,gSc=T3i,ASc=R3i,dSc=N3i,pSc=D3i,fSc=k3i,ISc=x3i,hSc=G3i,mSc=F3i,CSc=Z3i,_Sc=L3i,ySc=V3i,bSc=P3i,ESc=W3i,SSc=O3i,vSc=M3i,BSc=H3i,wSc=Y3i,TSc=Q3i,RSc=X3i,NSc=J3i,DSc=U3i,kSc=K3i,xSc=j3i,GSc=z3i,FSc=q3i,ZSc=$3i,LSc=e5i,VSc=t5i,PSc=r5i,WSc=n5i,OSc=i5i,MSc=s5i,HSc=o5i,YSc=a5i,QSc=c5i,XSc=l5i,JSc=u5i,USc=g5i,KSc=A5i,jSc=d5i,zSc=p5i,qSc=f5i,$Sc=I5i,evc=h5i,tvc=m5i,rvc=C5i,nvc=_5i,ivc=y5i,svc=b5i,ovc=E5i,avc=S5i,cvc=v5i,lvc=B5i,uvc=w5i,gvc=T5i,Avc=R5i,dvc=N5i,pvc=D5i,fvc=k5i,Ivc=x5i,hvc=G5i,mvc=F5i,Cvc=Z5i,_vc=L5i,yvc=V5i,bvc=P5i,Evc=W5i,Svc=O5i,vvc=M5i,Bvc=H5i,wvc=Y5i,Tvc=Q5i,Rvc=X5i,Nvc=J5i,Dvc=U5i,kvc=K5i,xvc=j5i,Gvc=z5i,Fvc=q5i,Zvc=$5i,Lvc=eMi,Vvc=tMi,Pvc=rMi,Wvc=nMi,Ovc=iMi,Mvc=sMi,Hvc=oMi,Yvc=aMi,Qvc=cMi,Xvc=lMi,Jvc=uMi,Uvc=gMi,Kvc=AMi,jvc=dMi,zvc=pMi,qvc=iw([KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi]),fMi="other_sql",IMi="mssql",hMi="mysql",mMi="oracle",CMi="db2",_Mi="postgresql",yMi="redshift",bMi="hive",EMi="cloudscape",SMi="hsqldb",vMi="progress",BMi="maxdb",wMi="hanadb",TMi="ingres",RMi="firstsql",NMi="edb",DMi="cache",kMi="adabas",xMi="firebird",GMi="derby",FMi="filemaker",ZMi="informix",LMi="instantdb",VMi="interbase",PMi="mariadb",WMi="netezza",OMi="pervasive",MMi="pointbase",HMi="sqlite",YMi="sybase",QMi="teradata",XMi="vertica",JMi="h2",UMi="coldfusion",KMi="cassandra",jMi="hbase",zMi="mongodb",qMi="redis",$Mi="couchbase",eHi="couchdb",tHi="cosmosdb",rHi="dynamodb",nHi="neo4j",iHi="geode",sHi="elasticsearch",oHi="memcached",aHi="cockroachdb",$vc=fMi,eBc=IMi,tBc=hMi,rBc=mMi,nBc=CMi,iBc=_Mi,sBc=yMi,oBc=bMi,aBc=EMi,cBc=SMi,lBc=vMi,uBc=BMi,gBc=wMi,ABc=TMi,dBc=RMi,pBc=NMi,fBc=DMi,IBc=kMi,hBc=xMi,mBc=GMi,CBc=FMi,_Bc=ZMi,yBc=LMi,bBc=VMi,EBc=PMi,SBc=WMi,vBc=OMi,BBc=MMi,wBc=HMi,TBc=YMi,RBc=QMi,NBc=XMi,DBc=JMi,kBc=UMi,xBc=KMi,GBc=jMi,FBc=zMi,ZBc=qMi,LBc=$Mi,VBc=eHi,PBc=tHi,WBc=rHi,OBc=nHi,MBc=iHi,HBc=sHi,YBc=oHi,QBc=aHi,XBc=iw([fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi]),cHi="all",lHi="each_quorum",uHi="quorum",gHi="local_quorum",AHi="one",dHi="two",pHi="three",fHi="local_one",IHi="any",hHi="serial",mHi="local_serial",JBc=cHi,UBc=lHi,KBc=uHi,jBc=gHi,zBc=AHi,qBc=dHi,$Bc=pHi,ewc=fHi,twc=IHi,rwc=hHi,nwc=mHi,iwc=iw([cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi]),CHi="datasource",_Hi="http",yHi="pubsub",bHi="timer",EHi="other",swc=CHi,owc=_Hi,awc=yHi,cwc=bHi,lwc=EHi,uwc=iw([CHi,_Hi,yHi,bHi,EHi]),SHi="insert",vHi="edit",BHi="delete",gwc=SHi,Awc=vHi,dwc=BHi,pwc=iw([SHi,vHi,BHi]),wHi="alibaba_cloud",THi="aws",RHi="azure",NHi="gcp",fwc=wHi,Iwc=THi,hwc=RHi,mwc=NHi,Cwc=iw([wHi,THi,RHi,NHi]),DHi="ip_tcp",kHi="ip_udp",xHi="ip",GHi="unix",FHi="pipe",ZHi="inproc",LHi="other",_wc=DHi,ywc=kHi,bwc=xHi,Ewc=GHi,Swc=FHi,vwc=ZHi,Bwc=LHi,wwc=iw([DHi,kHi,xHi,GHi,FHi,ZHi,LHi]),VHi="wifi",PHi="wired",WHi="cell",OHi="unavailable",MHi="unknown",Twc=VHi,Rwc=PHi,Nwc=WHi,Dwc=OHi,kwc=MHi,xwc=iw([VHi,PHi,WHi,OHi,MHi]),HHi="gprs",YHi="edge",QHi="umts",XHi="cdma",JHi="evdo_0",UHi="evdo_a",KHi="cdma2000_1xrtt",jHi="hsdpa",zHi="hsupa",qHi="hspa",$Hi="iden",eYi="evdo_b",tYi="lte",rYi="ehrpd",nYi="hspap",iYi="gsm",sYi="td_scdma",oYi="iwlan",aYi="nr",cYi="nrnsa",lYi="lte_ca",Gwc=HHi,Fwc=YHi,Zwc=QHi,Lwc=XHi,Vwc=JHi,Pwc=UHi,Wwc=KHi,Owc=jHi,Mwc=zHi,Hwc=qHi,Ywc=$Hi,Qwc=eYi,Xwc=tYi,Jwc=rYi,Uwc=nYi,Kwc=iYi,jwc=sYi,zwc=oYi,qwc=aYi,$wc=cYi,eTc=lYi,tTc=iw([HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi]),uYi="1.0",gYi="1.1",AYi="2.0",dYi="SPDY",pYi="QUIC",rTc=uYi,nTc=gYi,iTc=AYi,sTc=dYi,oTc=pYi,aTc={HTTP_1_0:uYi,HTTP_1_1:gYi,HTTP_2_0:AYi,SPDY:dYi,QUIC:pYi},fYi="queue",IYi="topic",cTc=fYi,lTc=IYi,uTc=iw([fYi,IYi]),hYi="receive",mYi="process",gTc=hYi,ATc=mYi,dTc=iw([hYi,mYi]),CYi=0,_Yi=1,yYi=2,bYi=3,EYi=4,SYi=5,vYi=6,BYi=7,wYi=8,TYi=9,RYi=10,NYi=11,DYi=12,kYi=13,xYi=14,GYi=15,FYi=16,pTc=CYi,fTc=_Yi,ITc=yYi,hTc=bYi,mTc=EYi,CTc=SYi,_Tc=vYi,yTc=BYi,bTc=wYi,ETc=TYi,STc=RYi,vTc=NYi,BTc=DYi,wTc=kYi,TTc=xYi,RTc=GYi,NTc=FYi,DTc={OK:CYi,CANCELLED:_Yi,UNKNOWN:yYi,INVALID_ARGUMENT:bYi,DEADLINE_EXCEEDED:EYi,NOT_FOUND:SYi,ALREADY_EXISTS:vYi,PERMISSION_DENIED:BYi,RESOURCE_EXHAUSTED:wYi,FAILED_PRECONDITION:TYi,ABORTED:RYi,OUT_OF_RANGE:NYi,UNIMPLEMENTED:DYi,INTERNAL:kYi,UNAVAILABLE:xYi,DATA_LOSS:GYi,UNAUTHENTICATED:FYi},ZYi="SENT",LYi="RECEIVED",kTc=ZYi,xTc=LYi,GTc=iw([ZYi,LYi])});var PYi=bc(()=>{VYi()});var WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi,FTc,ZTc,LTc,VTc,PTc,WTc,OTc,MTc,HTc,YTc,QTc,XTc,JTc,UTc,KTc,jTc,zTc,qTc,$Tc,eRc,tRc,rRc,nRc,iRc,sRc,oRc,aRc,cRc,lRc,uRc,gRc,ARc,dRc,pRc,fRc,IRc,hRc,mRc,CRc,_Rc,yRc,bRc,ERc,SRc,vRc,BRc,wRc,TRc,RRc,NRc,DRc,kRc,xRc,GRc,FRc,ZRc,LRc,VRc,PRc,WRc,ORc,MRc,HRc,YRc,QRc,XRc,JRc,URc,KRc,jRc,zRc,qRc,$Rc,eNc,tNc,rNc,nNc,iNc,sNc,oNc,aNc,cNc,dXi,pXi,fXi,IXi,lNc,uNc,gNc,ANc,dNc,hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi,pNc,fNc,INc,hNc,mNc,CNc,_Nc,yNc,bNc,ENc,SNc,vNc,BNc,wNc,TNc,RNc,NNc,DNc,GXi,FXi,kNc,xNc,GNc,ZXi,LXi,VXi,PXi,WXi,OXi,MXi,FNc,ZNc,LNc,VNc,PNc,WNc,ONc,MNc,HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi,HNc,YNc,QNc,XNc,JNc,UNc,KNc,jNc,zNc,qNc,$Nc,eDc,e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i,tDc,rDc,nDc,iDc,sDc,oDc,aDc,cDc,lDc,uDc,gDc,u4i=bc(()=>{$Lr();WYi="cloud.provider",OYi="cloud.account.id",MYi="cloud.region",HYi="cloud.availability_zone",YYi="cloud.platform",QYi="aws.ecs.container.arn",XYi="aws.ecs.cluster.arn",JYi="aws.ecs.launchtype",UYi="aws.ecs.task.arn",KYi="aws.ecs.task.family",jYi="aws.ecs.task.revision",zYi="aws.eks.cluster.arn",qYi="aws.log.group.names",$Yi="aws.log.group.arns",eQi="aws.log.stream.names",tQi="aws.log.stream.arns",rQi="container.name",nQi="container.id",iQi="container.runtime",sQi="container.image.name",oQi="container.image.tag",aQi="deployment.environment",cQi="device.id",lQi="device.model.identifier",uQi="device.model.name",gQi="faas.name",AQi="faas.id",dQi="faas.version",pQi="faas.instance",fQi="faas.max_memory",IQi="host.id",hQi="host.name",mQi="host.type",CQi="host.arch",_Qi="host.image.name",yQi="host.image.id",bQi="host.image.version",EQi="k8s.cluster.name",SQi="k8s.node.name",vQi="k8s.node.uid",BQi="k8s.namespace.name",wQi="k8s.pod.uid",TQi="k8s.pod.name",RQi="k8s.container.name",NQi="k8s.replicaset.uid",DQi="k8s.replicaset.name",kQi="k8s.deployment.uid",xQi="k8s.deployment.name",GQi="k8s.statefulset.uid",FQi="k8s.statefulset.name",ZQi="k8s.daemonset.uid",LQi="k8s.daemonset.name",VQi="k8s.job.uid",PQi="k8s.job.name",WQi="k8s.cronjob.uid",OQi="k8s.cronjob.name",MQi="os.type",HQi="os.description",YQi="os.name",QQi="os.version",XQi="process.pid",JQi="process.executable.name",UQi="process.executable.path",KQi="process.command",jQi="process.command_line",zQi="process.command_args",qQi="process.owner",$Qi="process.runtime.name",eXi="process.runtime.version",tXi="process.runtime.description",rXi="service.name",nXi="service.namespace",iXi="service.instance.id",sXi="service.version",oXi="telemetry.sdk.name",aXi="telemetry.sdk.language",cXi="telemetry.sdk.version",lXi="telemetry.auto.version",uXi="webengine.name",gXi="webengine.version",AXi="webengine.description",FTc=WYi,ZTc=OYi,LTc=MYi,VTc=HYi,PTc=YYi,WTc=QYi,OTc=XYi,MTc=JYi,HTc=UYi,YTc=KYi,QTc=jYi,XTc=zYi,JTc=qYi,UTc=$Yi,KTc=eQi,jTc=tQi,zTc=rQi,qTc=nQi,$Tc=iQi,eRc=sQi,tRc=oQi,rRc=aQi,nRc=cQi,iRc=lQi,sRc=uQi,oRc=gQi,aRc=AQi,cRc=dQi,lRc=pQi,uRc=fQi,gRc=IQi,ARc=hQi,dRc=mQi,pRc=CQi,fRc=_Qi,IRc=yQi,hRc=bQi,mRc=EQi,CRc=SQi,_Rc=vQi,yRc=BQi,bRc=wQi,ERc=TQi,SRc=RQi,vRc=NQi,BRc=DQi,wRc=kQi,TRc=xQi,RRc=GQi,NRc=FQi,DRc=ZQi,kRc=LQi,xRc=VQi,GRc=PQi,FRc=WQi,ZRc=OQi,LRc=MQi,VRc=HQi,PRc=YQi,WRc=QQi,ORc=XQi,MRc=JQi,HRc=UQi,YRc=KQi,QRc=jQi,XRc=zQi,JRc=qQi,URc=$Qi,KRc=eXi,jRc=tXi,zRc=rXi,qRc=nXi,$Rc=iXi,eNc=sXi,tNc=oXi,rNc=aXi,nNc=cXi,iNc=lXi,sNc=uXi,oNc=gXi,aNc=AXi,cNc=iw([WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi]),dXi="alibaba_cloud",pXi="aws",fXi="azure",IXi="gcp",lNc=dXi,uNc=pXi,gNc=fXi,ANc=IXi,dNc=iw([dXi,pXi,fXi,IXi]),hXi="alibaba_cloud_ecs",mXi="alibaba_cloud_fc",CXi="aws_ec2",_Xi="aws_ecs",yXi="aws_eks",bXi="aws_lambda",EXi="aws_elastic_beanstalk",SXi="azure_vm",vXi="azure_container_instances",BXi="azure_aks",wXi="azure_functions",TXi="azure_app_service",RXi="gcp_compute_engine",NXi="gcp_cloud_run",DXi="gcp_kubernetes_engine",kXi="gcp_cloud_functions",xXi="gcp_app_engine",pNc=hXi,fNc=mXi,INc=CXi,hNc=_Xi,mNc=yXi,CNc=bXi,_Nc=EXi,yNc=SXi,bNc=vXi,ENc=BXi,SNc=wXi,vNc=TXi,BNc=RXi,wNc=NXi,TNc=DXi,RNc=kXi,NNc=xXi,DNc=iw([hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi]),GXi="ec2",FXi="fargate",kNc=GXi,xNc=FXi,GNc=iw([GXi,FXi]),ZXi="amd64",LXi="arm32",VXi="arm64",PXi="ia64",WXi="ppc32",OXi="ppc64",MXi="x86",FNc=ZXi,ZNc=LXi,LNc=VXi,VNc=PXi,PNc=WXi,WNc=OXi,ONc=MXi,MNc=iw([ZXi,LXi,VXi,PXi,WXi,OXi,MXi]),HXi="windows",YXi="linux",QXi="darwin",XXi="freebsd",JXi="netbsd",UXi="openbsd",KXi="dragonflybsd",jXi="hpux",zXi="aix",qXi="solaris",$Xi="z_os",HNc=HXi,YNc=YXi,QNc=QXi,XNc=XXi,JNc=JXi,UNc=UXi,KNc=KXi,jNc=jXi,zNc=zXi,qNc=qXi,$Nc=$Xi,eDc=iw([HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi]),e4i="cpp",t4i="dotnet",r4i="erlang",n4i="go",i4i="java",s4i="nodejs",o4i="php",a4i="python",c4i="ruby",l4i="webjs",tDc=e4i,rDc=t4i,nDc=r4i,iDc=n4i,sDc=i4i,oDc=s4i,aDc=o4i,cDc=a4i,lDc=c4i,uDc=l4i,gDc=iw([e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i])});var g4i=bc(()=>{u4i()});var ADc,dDc,pDc,fDc,IDc,hDc,mDc,CDc,_Dc,yDc,bDc,EDc,SDc,vDc,BDc,wDc,TDc,RDc,NDc,DDc,kDc,xDc,GDc,FDc,ZDc,LDc,VDc,PDc,WDc,ODc,MDc,HDc,YDc,QDc,XDc,JDc,UDc,KDc,jDc,zDc,qDc,$Dc,ekc,tkc,rkc,nkc,ikc,skc,okc,akc,ckc,lkc,ukc,gkc,Akc,dkc,pkc,fkc,Ikc,hkc,mkc,Ckc,_kc,ykc,bkc,Ekc,Skc,vkc,Bkc,wkc,Tkc,Rkc,Nkc,Dkc,kkc,xkc,Gkc,Fkc,Zkc,Lkc,Vkc,Pkc,Wkc,Okc,Mkc,Hkc,Ykc,Qkc,Xkc,Jkc,Ukc,Kkc,jkc,zkc,qkc,$kc,exc,txc,rxc,nxc,ixc,sxc,oxc,axc,cxc,lxc,uxc,gxc,Axc,dxc,A4i=bc(()=>{ADc="aspnetcore.rate_limiting.result",dDc="acquired",pDc="endpoint_limiter",fDc="global_limiter",IDc="request_canceled",hDc="telemetry.sdk.language",mDc="cpp",CDc="dotnet",_Dc="erlang",yDc="go",bDc="java",EDc="nodejs",SDc="php",vDc="python",BDc="ruby",wDc="rust",TDc="swift",RDc="webjs",NDc="telemetry.sdk.name",DDc="telemetry.sdk.version",kDc="aspnetcore.diagnostics.handler.type",xDc="aspnetcore.diagnostics.exception.result",GDc="aborted",FDc="handled",ZDc="skipped",LDc="unhandled",VDc="aspnetcore.rate_limiting.policy",PDc="aspnetcore.request.is_unhandled",WDc="aspnetcore.routing.is_fallback",ODc="aspnetcore.routing.match_status",MDc="failure",HDc="success",YDc="client.address",QDc="client.port",XDc="error.type",JDc="_OTHER",UDc="exception.escaped",KDc="exception.message",jDc="exception.stacktrace",zDc="exception.type",qDc=function(e){return"http.request.header."+e},$Dc="http.request.method",ekc="_OTHER",tkc="CONNECT",rkc="DELETE",nkc="GET",ikc="HEAD",skc="OPTIONS",okc="PATCH",akc="POST",ckc="PUT",lkc="TRACE",ukc="http.request.method_original",gkc="http.request.resend_count",Akc=function(e){return"http.response.header."+e},dkc="http.response.status_code",pkc="http.route",fkc="jvm.gc.action",Ikc="jvm.gc.name",hkc="jvm.memory.pool.name",mkc="jvm.memory.type",Ckc="heap",_kc="non_heap",ykc="jvm.thread.daemon",bkc="jvm.thread.state",Ekc="blocked",Skc="new",vkc="runnable",Bkc="terminated",wkc="timed_waiting",Tkc="waiting",Rkc="network.local.address",Nkc="network.local.port",Dkc="network.peer.address",kkc="network.peer.port",xkc="network.protocol.name",Gkc="network.protocol.version",Fkc="network.transport",Zkc="pipe",Lkc="quic",Vkc="tcp",Pkc="udp",Wkc="unix",Okc="network.type",Mkc="ipv4",Hkc="ipv6",Ykc="otel.scope.name",Qkc="otel.scope.version",Xkc="otel.status_code",Jkc="ERROR",Ukc="OK",Kkc="otel.status_description",jkc="server.address",zkc="server.port",qkc="service.name",$kc="service.version",exc="signalr.connection.status",txc="app_shutdown",rxc="normal_closure",nxc="timeout",ixc="signalr.transport",sxc="long_polling",oxc="server_sent_events",axc="web_sockets",cxc="url.fragment",lxc="url.full",uxc="url.path",gxc="url.query",Axc="url.scheme",dxc="user_agent.original"});var pxc,fxc,Ixc,hxc,mxc,Cxc,_xc,yxc,bxc,Exc,Sxc,vxc,Bxc,wxc,Txc,Rxc,Nxc,Dxc,kxc,xxc,Gxc,Fxc,Zxc,Lxc,Vxc,Pxc,Wxc,Oxc,Mxc,Hxc,Yxc,d4i=bc(()=>{pxc="aspnetcore.diagnostics.exceptions",fxc="aspnetcore.rate_limiting.active_request_leases",Ixc="aspnetcore.rate_limiting.queued_requests",hxc="aspnetcore.rate_limiting.request.time_in_queue",mxc="aspnetcore.rate_limiting.request_lease.duration",Cxc="aspnetcore.rate_limiting.requests",_xc="aspnetcore.routing.match_attempts",yxc="http.client.request.duration",bxc="http.server.request.duration",Exc="jvm.class.count",Sxc="jvm.class.loaded",vxc="jvm.class.unloaded",Bxc="jvm.cpu.count",wxc="jvm.cpu.recent_utilization",Txc="jvm.cpu.time",Rxc="jvm.gc.duration",Nxc="jvm.memory.committed",Dxc="jvm.memory.limit",kxc="jvm.memory.used",xxc="jvm.memory.used_after_last_gc",Gxc="jvm.thread.count",Fxc="kestrel.active_connections",Zxc="kestrel.active_tls_handshakes",Lxc="kestrel.connection.duration",Vxc="kestrel.queued_connections",Pxc="kestrel.queued_requests",Wxc="kestrel.rejected_connections",Oxc="kestrel.tls_handshake.duration",Mxc="kestrel.upgraded_connections",Hxc="signalr.server.active_connections",Yxc="signalr.server.connection.duration"});var p4i={};sI(p4i,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>GDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>FDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>ZDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>LDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>dDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>pDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>fDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>IDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>MDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>HDc,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>xDc,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>kDc,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>VDc,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>ADc,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>PDc,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>WDc,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>ODc,ATTR_CLIENT_ADDRESS:()=>YDc,ATTR_CLIENT_PORT:()=>QDc,ATTR_ERROR_TYPE:()=>XDc,ATTR_EXCEPTION_ESCAPED:()=>UDc,ATTR_EXCEPTION_MESSAGE:()=>KDc,ATTR_EXCEPTION_STACKTRACE:()=>jDc,ATTR_EXCEPTION_TYPE:()=>zDc,ATTR_HTTP_REQUEST_HEADER:()=>qDc,ATTR_HTTP_REQUEST_METHOD:()=>$Dc,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>ukc,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>gkc,ATTR_HTTP_RESPONSE_HEADER:()=>Akc,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>dkc,ATTR_HTTP_ROUTE:()=>pkc,ATTR_JVM_GC_ACTION:()=>fkc,ATTR_JVM_GC_NAME:()=>Ikc,ATTR_JVM_MEMORY_POOL_NAME:()=>hkc,ATTR_JVM_MEMORY_TYPE:()=>mkc,ATTR_JVM_THREAD_DAEMON:()=>ykc,ATTR_JVM_THREAD_STATE:()=>bkc,ATTR_NETWORK_LOCAL_ADDRESS:()=>Rkc,ATTR_NETWORK_LOCAL_PORT:()=>Nkc,ATTR_NETWORK_PEER_ADDRESS:()=>Dkc,ATTR_NETWORK_PEER_PORT:()=>kkc,ATTR_NETWORK_PROTOCOL_NAME:()=>xkc,ATTR_NETWORK_PROTOCOL_VERSION:()=>Gkc,ATTR_NETWORK_TRANSPORT:()=>Fkc,ATTR_NETWORK_TYPE:()=>Okc,ATTR_OTEL_SCOPE_NAME:()=>Ykc,ATTR_OTEL_SCOPE_VERSION:()=>Qkc,ATTR_OTEL_STATUS_CODE:()=>Xkc,ATTR_OTEL_STATUS_DESCRIPTION:()=>Kkc,ATTR_SERVER_ADDRESS:()=>jkc,ATTR_SERVER_PORT:()=>zkc,ATTR_SERVICE_NAME:()=>qkc,ATTR_SERVICE_VERSION:()=>$kc,ATTR_SIGNALR_CONNECTION_STATUS:()=>exc,ATTR_SIGNALR_TRANSPORT:()=>ixc,ATTR_TELEMETRY_SDK_LANGUAGE:()=>hDc,ATTR_TELEMETRY_SDK_NAME:()=>NDc,ATTR_TELEMETRY_SDK_VERSION:()=>DDc,ATTR_URL_FRAGMENT:()=>cxc,ATTR_URL_FULL:()=>lxc,ATTR_URL_PATH:()=>uxc,ATTR_URL_QUERY:()=>gxc,ATTR_URL_SCHEME:()=>Axc,ATTR_USER_AGENT_ORIGINAL:()=>dxc,AWSECSLAUNCHTYPEVALUES_EC2:()=>kNc,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>xNc,AwsEcsLaunchtypeValues:()=>GNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>pNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>fNc,CLOUDPLATFORMVALUES_AWS_EC2:()=>INc,CLOUDPLATFORMVALUES_AWS_ECS:()=>hNc,CLOUDPLATFORMVALUES_AWS_EKS:()=>mNc,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>_Nc,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>CNc,CLOUDPLATFORMVALUES_AZURE_AKS:()=>ENc,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>vNc,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>bNc,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>SNc,CLOUDPLATFORMVALUES_AZURE_VM:()=>yNc,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>NNc,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>RNc,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>wNc,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>BNc,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>TNc,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>lNc,CLOUDPROVIDERVALUES_AWS:()=>uNc,CLOUDPROVIDERVALUES_AZURE:()=>gNc,CLOUDPROVIDERVALUES_GCP:()=>ANc,CloudPlatformValues:()=>DNc,CloudProviderValues:()=>dNc,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>JBc,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>twc,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>UBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>ewc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>jBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>nwc,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>zBc,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>KBc,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>rwc,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>$Bc,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>qBc,DBSYSTEMVALUES_ADABAS:()=>IBc,DBSYSTEMVALUES_CACHE:()=>fBc,DBSYSTEMVALUES_CASSANDRA:()=>xBc,DBSYSTEMVALUES_CLOUDSCAPE:()=>aBc,DBSYSTEMVALUES_COCKROACHDB:()=>QBc,DBSYSTEMVALUES_COLDFUSION:()=>kBc,DBSYSTEMVALUES_COSMOSDB:()=>PBc,DBSYSTEMVALUES_COUCHBASE:()=>LBc,DBSYSTEMVALUES_COUCHDB:()=>VBc,DBSYSTEMVALUES_DB2:()=>nBc,DBSYSTEMVALUES_DERBY:()=>mBc,DBSYSTEMVALUES_DYNAMODB:()=>WBc,DBSYSTEMVALUES_EDB:()=>pBc,DBSYSTEMVALUES_ELASTICSEARCH:()=>HBc,DBSYSTEMVALUES_FILEMAKER:()=>CBc,DBSYSTEMVALUES_FIREBIRD:()=>hBc,DBSYSTEMVALUES_FIRSTSQL:()=>dBc,DBSYSTEMVALUES_GEODE:()=>MBc,DBSYSTEMVALUES_H2:()=>DBc,DBSYSTEMVALUES_HANADB:()=>gBc,DBSYSTEMVALUES_HBASE:()=>GBc,DBSYSTEMVALUES_HIVE:()=>oBc,DBSYSTEMVALUES_HSQLDB:()=>cBc,DBSYSTEMVALUES_INFORMIX:()=>_Bc,DBSYSTEMVALUES_INGRES:()=>ABc,DBSYSTEMVALUES_INSTANTDB:()=>yBc,DBSYSTEMVALUES_INTERBASE:()=>bBc,DBSYSTEMVALUES_MARIADB:()=>EBc,DBSYSTEMVALUES_MAXDB:()=>uBc,DBSYSTEMVALUES_MEMCACHED:()=>YBc,DBSYSTEMVALUES_MONGODB:()=>FBc,DBSYSTEMVALUES_MSSQL:()=>eBc,DBSYSTEMVALUES_MYSQL:()=>tBc,DBSYSTEMVALUES_NEO4J:()=>OBc,DBSYSTEMVALUES_NETEZZA:()=>SBc,DBSYSTEMVALUES_ORACLE:()=>rBc,DBSYSTEMVALUES_OTHER_SQL:()=>$vc,DBSYSTEMVALUES_PERVASIVE:()=>vBc,DBSYSTEMVALUES_POINTBASE:()=>BBc,DBSYSTEMVALUES_POSTGRESQL:()=>iBc,DBSYSTEMVALUES_PROGRESS:()=>lBc,DBSYSTEMVALUES_REDIS:()=>ZBc,DBSYSTEMVALUES_REDSHIFT:()=>sBc,DBSYSTEMVALUES_SQLITE:()=>wBc,DBSYSTEMVALUES_SYBASE:()=>TBc,DBSYSTEMVALUES_TERADATA:()=>RBc,DBSYSTEMVALUES_VERTICA:()=>NBc,DbCassandraConsistencyLevelValues:()=>iwc,DbSystemValues:()=>XBc,ERROR_TYPE_VALUE_OTHER:()=>JDc,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>dwc,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>Awc,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>gwc,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>fwc,FAASINVOKEDPROVIDERVALUES_AWS:()=>Iwc,FAASINVOKEDPROVIDERVALUES_AZURE:()=>hwc,FAASINVOKEDPROVIDERVALUES_GCP:()=>mwc,FAASTRIGGERVALUES_DATASOURCE:()=>swc,FAASTRIGGERVALUES_HTTP:()=>owc,FAASTRIGGERVALUES_OTHER:()=>lwc,FAASTRIGGERVALUES_PUBSUB:()=>awc,FAASTRIGGERVALUES_TIMER:()=>cwc,FaasDocumentOperationValues:()=>pwc,FaasInvokedProviderValues:()=>Cwc,FaasTriggerValues:()=>uwc,HOSTARCHVALUES_AMD64:()=>FNc,HOSTARCHVALUES_ARM32:()=>ZNc,HOSTARCHVALUES_ARM64:()=>LNc,HOSTARCHVALUES_IA64:()=>VNc,HOSTARCHVALUES_PPC32:()=>PNc,HOSTARCHVALUES_PPC64:()=>WNc,HOSTARCHVALUES_X86:()=>ONc,HTTPFLAVORVALUES_HTTP_1_0:()=>rTc,HTTPFLAVORVALUES_HTTP_1_1:()=>nTc,HTTPFLAVORVALUES_HTTP_2_0:()=>iTc,HTTPFLAVORVALUES_QUIC:()=>oTc,HTTPFLAVORVALUES_SPDY:()=>sTc,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>tkc,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>rkc,HTTP_REQUEST_METHOD_VALUE_GET:()=>nkc,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>ikc,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>skc,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>ekc,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>okc,HTTP_REQUEST_METHOD_VALUE_POST:()=>akc,HTTP_REQUEST_METHOD_VALUE_PUT:()=>ckc,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>lkc,HostArchValues:()=>MNc,HttpFlavorValues:()=>aTc,JVM_MEMORY_TYPE_VALUE_HEAP:()=>Ckc,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>_kc,JVM_THREAD_STATE_VALUE_BLOCKED:()=>Ekc,JVM_THREAD_STATE_VALUE_NEW:()=>Skc,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>vkc,JVM_THREAD_STATE_VALUE_TERMINATED:()=>Bkc,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>wkc,JVM_THREAD_STATE_VALUE_WAITING:()=>Tkc,MESSAGETYPEVALUES_RECEIVED:()=>xTc,MESSAGETYPEVALUES_SENT:()=>kTc,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>cTc,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>lTc,MESSAGINGOPERATIONVALUES_PROCESS:()=>ATc,MESSAGINGOPERATIONVALUES_RECEIVE:()=>gTc,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>pxc,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>fxc,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>Ixc,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>Cxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>mxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>hxc,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>_xc,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>yxc,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>bxc,METRIC_JVM_CLASS_COUNT:()=>Exc,METRIC_JVM_CLASS_LOADED:()=>Sxc,METRIC_JVM_CLASS_UNLOADED:()=>vxc,METRIC_JVM_CPU_COUNT:()=>Bxc,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>wxc,METRIC_JVM_CPU_TIME:()=>Txc,METRIC_JVM_GC_DURATION:()=>Rxc,METRIC_JVM_MEMORY_COMMITTED:()=>Nxc,METRIC_JVM_MEMORY_LIMIT:()=>Dxc,METRIC_JVM_MEMORY_USED:()=>kxc,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>xxc,METRIC_JVM_THREAD_COUNT:()=>Gxc,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Fxc,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Zxc,METRIC_KESTREL_CONNECTION_DURATION:()=>Lxc,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>Vxc,METRIC_KESTREL_QUEUED_REQUESTS:()=>Pxc,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>Wxc,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>Oxc,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>Mxc,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>Hxc,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>Yxc,MessageTypeValues:()=>GTc,MessagingDestinationKindValues:()=>uTc,MessagingOperationValues:()=>dTc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>Lwc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>Wwc,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>Fwc,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>Jwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>Vwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>Pwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>Qwc,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>Gwc,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>Kwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>Owc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>Hwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>Uwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>Mwc,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>Ywc,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>zwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>Xwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>eTc,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>qwc,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>$wc,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>jwc,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>Zwc,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>Nwc,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>Dwc,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>kwc,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>Twc,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>Rwc,NETTRANSPORTVALUES_INPROC:()=>vwc,NETTRANSPORTVALUES_IP:()=>bwc,NETTRANSPORTVALUES_IP_TCP:()=>_wc,NETTRANSPORTVALUES_IP_UDP:()=>ywc,NETTRANSPORTVALUES_OTHER:()=>Bwc,NETTRANSPORTVALUES_PIPE:()=>Swc,NETTRANSPORTVALUES_UNIX:()=>Ewc,NETWORK_TRANSPORT_VALUE_PIPE:()=>Zkc,NETWORK_TRANSPORT_VALUE_QUIC:()=>Lkc,NETWORK_TRANSPORT_VALUE_TCP:()=>Vkc,NETWORK_TRANSPORT_VALUE_UDP:()=>Pkc,NETWORK_TRANSPORT_VALUE_UNIX:()=>Wkc,NETWORK_TYPE_VALUE_IPV4:()=>Mkc,NETWORK_TYPE_VALUE_IPV6:()=>Hkc,NetHostConnectionSubtypeValues:()=>tTc,NetHostConnectionTypeValues:()=>xwc,NetTransportValues:()=>wwc,OSTYPEVALUES_AIX:()=>zNc,OSTYPEVALUES_DARWIN:()=>QNc,OSTYPEVALUES_DRAGONFLYBSD:()=>KNc,OSTYPEVALUES_FREEBSD:()=>XNc,OSTYPEVALUES_HPUX:()=>jNc,OSTYPEVALUES_LINUX:()=>YNc,OSTYPEVALUES_NETBSD:()=>JNc,OSTYPEVALUES_OPENBSD:()=>UNc,OSTYPEVALUES_SOLARIS:()=>qNc,OSTYPEVALUES_WINDOWS:()=>HNc,OSTYPEVALUES_Z_OS:()=>$Nc,OTEL_STATUS_CODE_VALUE_ERROR:()=>Jkc,OTEL_STATUS_CODE_VALUE_OK:()=>Ukc,OsTypeValues:()=>eDc,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>STc,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>_Tc,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>fTc,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>RTc,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>mTc,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>ETc,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>wTc,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>hTc,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>CTc,RPCGRPCSTATUSCODEVALUES_OK:()=>pTc,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>vTc,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>yTc,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>bTc,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>NTc,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>TTc,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>BTc,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>ITc,RpcGrpcStatusCodeValues:()=>DTc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>avc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>Cvc,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>ivc,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>evc,SEMATTRS_AWS_DYNAMODB_COUNT:()=>hvc,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>Avc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>uvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>_vc,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>cvc,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>tvc,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>ovc,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>gvc,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>svc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>rvc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>nvc,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>mvc,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>pvc,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>fvc,SEMATTRS_AWS_DYNAMODB_SELECT:()=>lvc,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>dvc,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>$Sc,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>Ivc,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>k2c,SEMATTRS_CODE_FILEPATH:()=>ZSc,SEMATTRS_CODE_FUNCTION:()=>GSc,SEMATTRS_CODE_LINENO:()=>LSc,SEMATTRS_CODE_NAMESPACE:()=>FSc,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>H2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>U2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>J2c,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>Q2c,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>O2c,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>M2c,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>X2c,SEMATTRS_DB_CASSANDRA_TABLE:()=>Y2c,SEMATTRS_DB_CONNECTION_STRING:()=>G2c,SEMATTRS_DB_HBASE_NAMESPACE:()=>K2c,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>Z2c,SEMATTRS_DB_MONGODB_COLLECTION:()=>z2c,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>W2c,SEMATTRS_DB_NAME:()=>L2c,SEMATTRS_DB_OPERATION:()=>P2c,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>j2c,SEMATTRS_DB_SQL_TABLE:()=>q2c,SEMATTRS_DB_STATEMENT:()=>V2c,SEMATTRS_DB_SYSTEM:()=>x2c,SEMATTRS_DB_USER:()=>F2c,SEMATTRS_ENDUSER_ID:()=>RSc,SEMATTRS_ENDUSER_ROLE:()=>NSc,SEMATTRS_ENDUSER_SCOPE:()=>DSc,SEMATTRS_EXCEPTION_ESCAPED:()=>rSc,SEMATTRS_EXCEPTION_MESSAGE:()=>eSc,SEMATTRS_EXCEPTION_STACKTRACE:()=>tSc,SEMATTRS_EXCEPTION_TYPE:()=>$2c,SEMATTRS_FAAS_COLDSTART:()=>gSc,SEMATTRS_FAAS_CRON:()=>uSc,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>sSc,SEMATTRS_FAAS_DOCUMENT_NAME:()=>cSc,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>oSc,SEMATTRS_FAAS_DOCUMENT_TIME:()=>aSc,SEMATTRS_FAAS_EXECUTION:()=>iSc,SEMATTRS_FAAS_INVOKED_NAME:()=>ASc,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>dSc,SEMATTRS_FAAS_INVOKED_REGION:()=>pSc,SEMATTRS_FAAS_TIME:()=>lSc,SEMATTRS_FAAS_TRIGGER:()=>nSc,SEMATTRS_HTTP_CLIENT_IP:()=>qSc,SEMATTRS_HTTP_FLAVOR:()=>YSc,SEMATTRS_HTTP_HOST:()=>OSc,SEMATTRS_HTTP_METHOD:()=>VSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>XSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>JSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>USc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>KSc,SEMATTRS_HTTP_ROUTE:()=>zSc,SEMATTRS_HTTP_SCHEME:()=>MSc,SEMATTRS_HTTP_SERVER_NAME:()=>jSc,SEMATTRS_HTTP_STATUS_CODE:()=>HSc,SEMATTRS_HTTP_TARGET:()=>WSc,SEMATTRS_HTTP_URL:()=>PSc,SEMATTRS_HTTP_USER_AGENT:()=>QSc,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>jvc,SEMATTRS_MESSAGE_ID:()=>Kvc,SEMATTRS_MESSAGE_TYPE:()=>Uvc,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>zvc,SEMATTRS_MESSAGING_CONSUMER_ID:()=>xvc,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>Rvc,SEMATTRS_MESSAGING_DESTINATION:()=>bvc,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>Evc,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>Lvc,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>Zvc,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>Fvc,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>Vvc,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>Pvc,SEMATTRS_MESSAGING_MESSAGE_ID:()=>Tvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>Dvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>Nvc,SEMATTRS_MESSAGING_OPERATION:()=>kvc,SEMATTRS_MESSAGING_PROTOCOL:()=>vvc,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>Bvc,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>Gvc,SEMATTRS_MESSAGING_SYSTEM:()=>yvc,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>Svc,SEMATTRS_MESSAGING_URL:()=>wvc,SEMATTRS_NET_HOST_CARRIER_ICC:()=>wSc,SEMATTRS_NET_HOST_CARRIER_MCC:()=>vSc,SEMATTRS_NET_HOST_CARRIER_MNC:()=>BSc,SEMATTRS_NET_HOST_CARRIER_NAME:()=>SSc,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>ESc,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>bSc,SEMATTRS_NET_HOST_IP:()=>CSc,SEMATTRS_NET_HOST_NAME:()=>ySc,SEMATTRS_NET_HOST_PORT:()=>_Sc,SEMATTRS_NET_PEER_IP:()=>ISc,SEMATTRS_NET_PEER_NAME:()=>mSc,SEMATTRS_NET_PEER_PORT:()=>hSc,SEMATTRS_NET_TRANSPORT:()=>fSc,SEMATTRS_PEER_SERVICE:()=>TSc,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>Hvc,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>Xvc,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>Jvc,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>Qvc,SEMATTRS_RPC_JSONRPC_VERSION:()=>Yvc,SEMATTRS_RPC_METHOD:()=>Mvc,SEMATTRS_RPC_SERVICE:()=>Ovc,SEMATTRS_RPC_SYSTEM:()=>Wvc,SEMATTRS_THREAD_ID:()=>kSc,SEMATTRS_THREAD_NAME:()=>xSc,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>OTc,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>WTc,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>MTc,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>HTc,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>YTc,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>QTc,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>XTc,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>UTc,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>JTc,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>jTc,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>KTc,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>ZTc,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>VTc,SEMRESATTRS_CLOUD_PLATFORM:()=>PTc,SEMRESATTRS_CLOUD_PROVIDER:()=>FTc,SEMRESATTRS_CLOUD_REGION:()=>LTc,SEMRESATTRS_CONTAINER_ID:()=>qTc,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>eRc,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>tRc,SEMRESATTRS_CONTAINER_NAME:()=>zTc,SEMRESATTRS_CONTAINER_RUNTIME:()=>$Tc,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>rRc,SEMRESATTRS_DEVICE_ID:()=>nRc,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>iRc,SEMRESATTRS_DEVICE_MODEL_NAME:()=>sRc,SEMRESATTRS_FAAS_ID:()=>aRc,SEMRESATTRS_FAAS_INSTANCE:()=>lRc,SEMRESATTRS_FAAS_MAX_MEMORY:()=>uRc,SEMRESATTRS_FAAS_NAME:()=>oRc,SEMRESATTRS_FAAS_VERSION:()=>cRc,SEMRESATTRS_HOST_ARCH:()=>pRc,SEMRESATTRS_HOST_ID:()=>gRc,SEMRESATTRS_HOST_IMAGE_ID:()=>IRc,SEMRESATTRS_HOST_IMAGE_NAME:()=>fRc,SEMRESATTRS_HOST_IMAGE_VERSION:()=>hRc,SEMRESATTRS_HOST_NAME:()=>ARc,SEMRESATTRS_HOST_TYPE:()=>dRc,SEMRESATTRS_K8S_CLUSTER_NAME:()=>mRc,SEMRESATTRS_K8S_CONTAINER_NAME:()=>SRc,SEMRESATTRS_K8S_CRONJOB_NAME:()=>ZRc,SEMRESATTRS_K8S_CRONJOB_UID:()=>FRc,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>kRc,SEMRESATTRS_K8S_DAEMONSET_UID:()=>DRc,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>TRc,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>wRc,SEMRESATTRS_K8S_JOB_NAME:()=>GRc,SEMRESATTRS_K8S_JOB_UID:()=>xRc,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>yRc,SEMRESATTRS_K8S_NODE_NAME:()=>CRc,SEMRESATTRS_K8S_NODE_UID:()=>_Rc,SEMRESATTRS_K8S_POD_NAME:()=>ERc,SEMRESATTRS_K8S_POD_UID:()=>bRc,SEMRESATTRS_K8S_REPLICASET_NAME:()=>BRc,SEMRESATTRS_K8S_REPLICASET_UID:()=>vRc,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>NRc,SEMRESATTRS_K8S_STATEFULSET_UID:()=>RRc,SEMRESATTRS_OS_DESCRIPTION:()=>VRc,SEMRESATTRS_OS_NAME:()=>PRc,SEMRESATTRS_OS_TYPE:()=>LRc,SEMRESATTRS_OS_VERSION:()=>WRc,SEMRESATTRS_PROCESS_COMMAND:()=>YRc,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>XRc,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>QRc,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>MRc,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>HRc,SEMRESATTRS_PROCESS_OWNER:()=>JRc,SEMRESATTRS_PROCESS_PID:()=>ORc,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>jRc,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>URc,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>KRc,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>$Rc,SEMRESATTRS_SERVICE_NAME:()=>zRc,SEMRESATTRS_SERVICE_NAMESPACE:()=>qRc,SEMRESATTRS_SERVICE_VERSION:()=>eNc,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>iNc,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>rNc,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>tNc,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>nNc,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>aNc,SEMRESATTRS_WEBENGINE_NAME:()=>sNc,SEMRESATTRS_WEBENGINE_VERSION:()=>oNc,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>txc,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>rxc,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>nxc,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>sxc,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>oxc,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>axc,SemanticAttributes:()=>qvc,SemanticResourceAttributes:()=>cNc,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>tDc,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>rDc,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>nDc,TELEMETRYSDKLANGUAGEVALUES_GO:()=>iDc,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>sDc,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>oDc,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>aDc,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>cDc,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>lDc,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>uDc,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>mDc,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>CDc,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>_Dc,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>yDc,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>bDc,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>EDc,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>SDc,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>vDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>BDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>wDc,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>TDc,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>RDc,TelemetrySdkLanguageValues:()=>gDc});var f4i=bc(()=>{PYi();g4i();A4i();d4i()});var I4i=H(jSt=>{"use strict";Object.defineProperty(jSt,"__esModule",{value:!0});jSt.SDK_INFO=void 0;var Qxc=qLr(),ZKe=(f4i(),vi(p4i));jSt.SDK_INFO={[ZKe.SEMRESATTRS_TELEMETRY_SDK_NAME]:"opentelemetry",[ZKe.SEMRESATTRS_PROCESS_RUNTIME_NAME]:"node",[ZKe.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]:ZKe.TELEMETRYSDKLANGUAGEVALUES_NODEJS,[ZKe.SEMRESATTRS_TELEMETRY_SDK_VERSION]:Qxc.VERSION}});var h4i=H(zSt=>{"use strict";Object.defineProperty(zSt,"__esModule",{value:!0});zSt.unrefTimer=void 0;function Xxc(e){e.unref()}zSt.unrefTimer=Xxc});var C4i=H(gD=>{"use strict";Object.defineProperty(gD,"__esModule",{value:!0});gD.unrefTimer=gD.SDK_INFO=gD.otperformance=gD.RandomIdGenerator=gD.hexToBase64=gD._globalThis=gD.getEnv=gD.getEnvWithoutDefaults=void 0;var m4i=OOi();Object.defineProperty(gD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return m4i.getEnvWithoutDefaults}});Object.defineProperty(gD,"getEnv",{enumerable:!0,get:function(){return m4i.getEnv}});var Jxc=MOi();Object.defineProperty(gD,"_globalThis",{enumerable:!0,get:function(){return Jxc._globalThis}});var Uxc=YOi();Object.defineProperty(gD,"hexToBase64",{enumerable:!0,get:function(){return Uxc.hexToBase64}});var Kxc=JOi();Object.defineProperty(gD,"RandomIdGenerator",{enumerable:!0,get:function(){return Kxc.RandomIdGenerator}});var jxc=UOi();Object.defineProperty(gD,"otperformance",{enumerable:!0,get:function(){return jxc.otperformance}});var zxc=I4i();Object.defineProperty(gD,"SDK_INFO",{enumerable:!0,get:function(){return zxc.SDK_INFO}});var qxc=h4i();Object.defineProperty(gD,"unrefTimer",{enumerable:!0,get:function(){return qxc.unrefTimer}})});var e9r=H(AD=>{"use strict";Object.defineProperty(AD,"__esModule",{value:!0});AD.unrefTimer=AD.otperformance=AD.hexToBase64=AD.getEnvWithoutDefaults=AD.getEnv=AD._globalThis=AD.SDK_INFO=AD.RandomIdGenerator=void 0;var jce=C4i();Object.defineProperty(AD,"RandomIdGenerator",{enumerable:!0,get:function(){return jce.RandomIdGenerator}});Object.defineProperty(AD,"SDK_INFO",{enumerable:!0,get:function(){return jce.SDK_INFO}});Object.defineProperty(AD,"_globalThis",{enumerable:!0,get:function(){return jce._globalThis}});Object.defineProperty(AD,"getEnv",{enumerable:!0,get:function(){return jce.getEnv}});Object.defineProperty(AD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return jce.getEnvWithoutDefaults}});Object.defineProperty(AD,"hexToBase64",{enumerable:!0,get:function(){return jce.hexToBase64}});Object.defineProperty(AD,"otperformance",{enumerable:!0,get:function(){return jce.otperformance}});Object.defineProperty(AD,"unrefTimer",{enumerable:!0,get:function(){return jce.unrefTimer}})});var E4i=H(OE=>{"use strict";Object.defineProperty(OE,"__esModule",{value:!0});OE.addHrTimes=OE.isTimeInput=OE.isTimeInputHrTime=OE.hrTimeToMicroseconds=OE.hrTimeToMilliseconds=OE.hrTimeToNanoseconds=OE.hrTimeToTimeStamp=OE.hrTimeDuration=OE.timeInputToHrTime=OE.hrTime=OE.getTimeOrigin=OE.millisToHrTime=void 0;var t9r=e9r(),_4i=9,$xc=6,eGc=Math.pow(10,$xc),qSt=Math.pow(10,_4i);function LKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*eGc);return[r,n]}OE.millisToHrTime=LKe;function r9r(){let e=t9r.otperformance.timeOrigin;if(typeof e!="number"){let t=t9r.otperformance;e=t.timing&&t.timing.fetchStart}return e}OE.getTimeOrigin=r9r;function y4i(e){let t=LKe(r9r()),r=LKe(typeof e=="number"?e:t9r.otperformance.now());return b4i(t,r)}OE.hrTime=y4i;function tGc(e){if(n9r(e))return e;if(typeof e=="number")return e=qSt&&(r[1]-=qSt,r[0]+=1),r}OE.addHrTimes=b4i});var S4i=H(VKe=>{"use strict";Object.defineProperty(VKe,"__esModule",{value:!0});VKe.ExportResultCode=void 0;var cGc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(cGc=VKe.ExportResultCode||(VKe.ExportResultCode={}))});var B4i=H($St=>{"use strict";Object.defineProperty($St,"__esModule",{value:!0});$St.CompositePropagator=void 0;var v4i=(GI(),vi(xI)),i9r=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){v4i.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){v4i.diag.warn(`Failed to extract with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};$St.CompositePropagator=i9r});var w4i=H(LDe=>{"use strict";Object.defineProperty(LDe,"__esModule",{value:!0});LDe.validateValue=LDe.validateKey=void 0;var s9r="[_0-9a-z-*/]",lGc=`[a-z]${s9r}{0,255}`,uGc=`[a-z0-9]${s9r}{0,240}@[a-z]${s9r}{0,13}`,gGc=new RegExp(`^(?:${lGc}|${uGc})$`),AGc=/^[ -~]{0,255}[!-~]$/,dGc=/,|=/;function pGc(e){return gGc.test(e)}LDe.validateKey=pGc;function fGc(e){return AGc.test(e)&&!dGc.test(e)}LDe.validateValue=fGc});var a9r=H(evt=>{"use strict";Object.defineProperty(evt,"__esModule",{value:!0});evt.TraceState=void 0;var T4i=w4i(),R4i=32,IGc=512,N4i=",",D4i="=",o9r=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+D4i+this.get(r)),t),[]).join(N4i)}_parse(t){t.length>IGc||(this._internalState=t.split(N4i).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(D4i);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,T4i.validateKey)(l)&&(0,T4i.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>R4i&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,R4i))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};evt.TraceState=o9r});var x4i=H(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.W3CTraceContextPropagator=HG.parseTraceParent=HG.TRACE_STATE_HEADER=HG.TRACE_PARENT_HEADER=void 0;var tvt=(GI(),vi(xI)),hGc=GKe(),mGc=a9r();HG.TRACE_PARENT_HEADER="traceparent";HG.TRACE_STATE_HEADER="tracestate";var CGc="00",_Gc="(?!ff)[\\da-f]{2}",yGc="(?![0]{32})[\\da-f]{32}",bGc="(?![0]{16})[\\da-f]{16}",EGc="[\\da-f]{2}",SGc=new RegExp(`^\\s?(${_Gc})-(${yGc})-(${bGc})-(${EGc})(-.*)?\\s?$`);function k4i(e){let t=SGc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}HG.parseTraceParent=k4i;var c9r=class{inject(t,r,n){let a=tvt.trace.getSpanContext(t);if(!a||(0,hGc.isTracingSuppressed)(t)||!(0,tvt.isSpanContextValid)(a))return;let o=`${CGc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||tvt.TraceFlags.NONE).toString(16)}`;n.set(r,HG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,HG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,HG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=k4i(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,HG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new mGc.TraceState(typeof f=="string"?f:void 0)}return tvt.trace.setSpanContext(t,l)}fields(){return[HG.TRACE_PARENT_HEADER,HG.TRACE_STATE_HEADER]}};HG.W3CTraceContextPropagator=c9r});var G4i=H(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.getRPCMetadata=m4.deleteRPCMetadata=m4.setRPCMetadata=m4.RPCType=void 0;var vGc=(GI(),vi(xI)),l9r=(0,vGc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),BGc;(function(e){e.HTTP="http"})(BGc=m4.RPCType||(m4.RPCType={}));function wGc(e,t){return e.setValue(l9r,t)}m4.setRPCMetadata=wGc;function TGc(e){return e.deleteValue(l9r)}m4.deleteRPCMetadata=TGc;function RGc(e){return e.getValue(l9r)}m4.getRPCMetadata=RGc});var g9r=H(rvt=>{"use strict";Object.defineProperty(rvt,"__esModule",{value:!0});rvt.AlwaysOffSampler=void 0;var NGc=(GI(),vi(xI)),u9r=class{shouldSample(){return{decision:NGc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};rvt.AlwaysOffSampler=u9r});var d9r=H(nvt=>{"use strict";Object.defineProperty(nvt,"__esModule",{value:!0});nvt.AlwaysOnSampler=void 0;var DGc=(GI(),vi(xI)),A9r=class{shouldSample(){return{decision:DGc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};nvt.AlwaysOnSampler=A9r});var Z4i=H(svt=>{"use strict";Object.defineProperty(svt,"__esModule",{value:!0});svt.ParentBasedSampler=void 0;var ivt=(GI(),vi(xI)),kGc=XLr(),F4i=g9r(),p9r=d9r(),f9r=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,kGc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new p9r.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new p9r.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new F4i.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new p9r.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new F4i.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=ivt.trace.getSpanContext(t);return!A||!(0,ivt.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&ivt.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&ivt.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};svt.ParentBasedSampler=f9r});var L4i=H(ovt=>{"use strict";Object.defineProperty(ovt,"__esModule",{value:!0});ovt.TraceIdRatioBasedSampler=void 0;var I9r=(GI(),vi(xI)),h9r=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,I9r.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};ovt.TraceIdRatioBasedSampler=h9r});var M4i=H(avt=>{"use strict";Object.defineProperty(avt,"__esModule",{value:!0});avt.isPlainObject=void 0;var xGc="[object Object]",GGc="[object Null]",FGc="[object Undefined]",ZGc=Function.prototype,V4i=ZGc.toString,LGc=V4i.call(Object),VGc=PGc(Object.getPrototypeOf,Object),P4i=Object.prototype,W4i=P4i.hasOwnProperty,UCe=Symbol?Symbol.toStringTag:void 0,O4i=P4i.toString;function PGc(e,t){return function(r){return e(t(r))}}function WGc(e){if(!OGc(e)||MGc(e)!==xGc)return!1;let t=VGc(e);if(t===null)return!0;let r=W4i.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&V4i.call(r)===LGc}avt.isPlainObject=WGc;function OGc(e){return e!=null&&typeof e=="object"}function MGc(e){return e==null?e===void 0?FGc:GGc:UCe&&UCe in Object(e)?HGc(e):YGc(e)}function HGc(e){let t=W4i.call(e,UCe),r=e[UCe],n=!1;try{e[UCe]=void 0,n=!0}catch{}let a=O4i.call(e);return n&&(t?e[UCe]=r:delete e[UCe]),a}function YGc(e){return O4i.call(e)}});var J4i=H(uvt=>{"use strict";Object.defineProperty(uvt,"__esModule",{value:!0});uvt.merge=void 0;var H4i=M4i(),QGc=20;function XGc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=Q4i(t,e.shift(),0,r);return t}uvt.merge=XGc;function m9r(e){return lvt(e)?e.slice():e}function Q4i(e,t,r=0,n){let a;if(!(r>QGc)){if(r++,cvt(e)||cvt(t)||X4i(t))a=m9r(t);else if(lvt(e)){if(a=e.slice(),lvt(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(Y4i(e,f,n)||Y4i(t,f,n))delete a[f];else{if(PKe(C)&&PKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=Q4i(a[f],I,r,n)}}}}else a=t;return a}}function Y4i(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function JGc(e,t){return!(!(0,H4i.isPlainObject)(e)||!(0,H4i.isPlainObject)(t))}});var U4i=H(VDe=>{"use strict";Object.defineProperty(VDe,"__esModule",{value:!0});VDe.callWithTimeout=VDe.TimeoutError=void 0;var gvt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};VDe.TimeoutError=gvt;function UGc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new gvt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}VDe.callWithTimeout=UGc});var j4i=H(PDe=>{"use strict";Object.defineProperty(PDe,"__esModule",{value:!0});PDe.isUrlIgnored=PDe.urlMatches=void 0;function K4i(e,t){return typeof t=="string"?e===t:!!e.match(t)}PDe.urlMatches=K4i;function KGc(e,t){if(!t)return!1;for(let r of t)if(K4i(e,r))return!0;return!1}PDe.isUrlIgnored=KGc});var z4i=H(Avt=>{"use strict";Object.defineProperty(Avt,"__esModule",{value:!0});Avt.isWrapped=void 0;function jGc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Avt.isWrapped=jGc});var q4i=H(dvt=>{"use strict";Object.defineProperty(dvt,"__esModule",{value:!0});dvt.Deferred=void 0;var C9r=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};dvt.Deferred=C9r});var $4i=H(pvt=>{"use strict";Object.defineProperty(pvt,"__esModule",{value:!0});pvt.BindOnceFuture=void 0;var zGc=q4i(),_9r=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new zGc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};pvt.BindOnceFuture=_9r});var tJi=H(fvt=>{"use strict";Object.defineProperty(fvt,"__esModule",{value:!0});fvt._export=void 0;var eJi=(GI(),vi(xI)),qGc=GKe();function $Gc(e,t){return new Promise(r=>{eJi.context.with((0,qGc.suppressTracing)(eJi.context.active()),()=>{e.export(t,n=>{r(n)})})})}fvt._export=$Gc});var E9r=H(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ja.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Ja.TraceState=Ja.unsuppressTracing=Ja.suppressTracing=Ja.isTracingSuppressed=Ja.TraceIdRatioBasedSampler=Ja.ParentBasedSampler=Ja.AlwaysOnSampler=Ja.AlwaysOffSampler=Ja.setRPCMetadata=Ja.getRPCMetadata=Ja.deleteRPCMetadata=Ja.RPCType=Ja.parseTraceParent=Ja.W3CTraceContextPropagator=Ja.TRACE_STATE_HEADER=Ja.TRACE_PARENT_HEADER=Ja.CompositePropagator=Ja.unrefTimer=Ja.otperformance=Ja.hexToBase64=Ja.getEnvWithoutDefaults=Ja.getEnv=Ja._globalThis=Ja.SDK_INFO=Ja.RandomIdGenerator=Ja.baggageUtils=Ja.ExportResultCode=Ja.hexToBinary=Ja.timeInputToHrTime=Ja.millisToHrTime=Ja.isTimeInputHrTime=Ja.isTimeInput=Ja.hrTimeToTimeStamp=Ja.hrTimeToNanoseconds=Ja.hrTimeToMilliseconds=Ja.hrTimeToMicroseconds=Ja.hrTimeDuration=Ja.hrTime=Ja.getTimeOrigin=Ja.addHrTimes=Ja.loggingErrorHandler=Ja.setGlobalErrorHandler=Ja.globalErrorHandler=Ja.sanitizeAttributes=Ja.isAttributeValue=Ja.isAttributeKey=Ja.AnchoredClock=Ja.W3CBaggagePropagator=void 0;Ja.internal=Ja.VERSION=Ja.BindOnceFuture=Ja.isWrapped=Ja.urlMatches=Ja.isUrlIgnored=Ja.callWithTimeout=Ja.TimeoutError=Ja.TracesSamplerValues=Ja.merge=Ja.parseEnvironment=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Ja.DEFAULT_ENVIRONMENT=void 0;var eFc=xOi();Object.defineProperty(Ja,"W3CBaggagePropagator",{enumerable:!0,get:function(){return eFc.W3CBaggagePropagator}});var tFc=GOi();Object.defineProperty(Ja,"AnchoredClock",{enumerable:!0,get:function(){return tFc.AnchoredClock}});var y9r=POi();Object.defineProperty(Ja,"isAttributeKey",{enumerable:!0,get:function(){return y9r.isAttributeKey}});Object.defineProperty(Ja,"isAttributeValue",{enumerable:!0,get:function(){return y9r.isAttributeValue}});Object.defineProperty(Ja,"sanitizeAttributes",{enumerable:!0,get:function(){return y9r.sanitizeAttributes}});var rJi=XLr();Object.defineProperty(Ja,"globalErrorHandler",{enumerable:!0,get:function(){return rJi.globalErrorHandler}});Object.defineProperty(Ja,"setGlobalErrorHandler",{enumerable:!0,get:function(){return rJi.setGlobalErrorHandler}});var rFc=QLr();Object.defineProperty(Ja,"loggingErrorHandler",{enumerable:!0,get:function(){return rFc.loggingErrorHandler}});var dH=E4i();Object.defineProperty(Ja,"addHrTimes",{enumerable:!0,get:function(){return dH.addHrTimes}});Object.defineProperty(Ja,"getTimeOrigin",{enumerable:!0,get:function(){return dH.getTimeOrigin}});Object.defineProperty(Ja,"hrTime",{enumerable:!0,get:function(){return dH.hrTime}});Object.defineProperty(Ja,"hrTimeDuration",{enumerable:!0,get:function(){return dH.hrTimeDuration}});Object.defineProperty(Ja,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return dH.hrTimeToMicroseconds}});Object.defineProperty(Ja,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return dH.hrTimeToMilliseconds}});Object.defineProperty(Ja,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return dH.hrTimeToNanoseconds}});Object.defineProperty(Ja,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return dH.hrTimeToTimeStamp}});Object.defineProperty(Ja,"isTimeInput",{enumerable:!0,get:function(){return dH.isTimeInput}});Object.defineProperty(Ja,"isTimeInputHrTime",{enumerable:!0,get:function(){return dH.isTimeInputHrTime}});Object.defineProperty(Ja,"millisToHrTime",{enumerable:!0,get:function(){return dH.millisToHrTime}});Object.defineProperty(Ja,"timeInputToHrTime",{enumerable:!0,get:function(){return dH.timeInputToHrTime}});var nFc=jLr();Object.defineProperty(Ja,"hexToBinary",{enumerable:!0,get:function(){return nFc.hexToBinary}});var iFc=S4i();Object.defineProperty(Ja,"ExportResultCode",{enumerable:!0,get:function(){return iFc.ExportResultCode}});var Ivt=WLr();Ja.baggageUtils={getKeyPairs:Ivt.getKeyPairs,serializeKeyPairs:Ivt.serializeKeyPairs,parseKeyPairsIntoRecord:Ivt.parseKeyPairsIntoRecord,parsePairKeyValue:Ivt.parsePairKeyValue};var zce=e9r();Object.defineProperty(Ja,"RandomIdGenerator",{enumerable:!0,get:function(){return zce.RandomIdGenerator}});Object.defineProperty(Ja,"SDK_INFO",{enumerable:!0,get:function(){return zce.SDK_INFO}});Object.defineProperty(Ja,"_globalThis",{enumerable:!0,get:function(){return zce._globalThis}});Object.defineProperty(Ja,"getEnv",{enumerable:!0,get:function(){return zce.getEnv}});Object.defineProperty(Ja,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return zce.getEnvWithoutDefaults}});Object.defineProperty(Ja,"hexToBase64",{enumerable:!0,get:function(){return zce.hexToBase64}});Object.defineProperty(Ja,"otperformance",{enumerable:!0,get:function(){return zce.otperformance}});Object.defineProperty(Ja,"unrefTimer",{enumerable:!0,get:function(){return zce.unrefTimer}});var sFc=B4i();Object.defineProperty(Ja,"CompositePropagator",{enumerable:!0,get:function(){return sFc.CompositePropagator}});var hvt=x4i();Object.defineProperty(Ja,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_PARENT_HEADER}});Object.defineProperty(Ja,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_STATE_HEADER}});Object.defineProperty(Ja,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return hvt.W3CTraceContextPropagator}});Object.defineProperty(Ja,"parseTraceParent",{enumerable:!0,get:function(){return hvt.parseTraceParent}});var mvt=G4i();Object.defineProperty(Ja,"RPCType",{enumerable:!0,get:function(){return mvt.RPCType}});Object.defineProperty(Ja,"deleteRPCMetadata",{enumerable:!0,get:function(){return mvt.deleteRPCMetadata}});Object.defineProperty(Ja,"getRPCMetadata",{enumerable:!0,get:function(){return mvt.getRPCMetadata}});Object.defineProperty(Ja,"setRPCMetadata",{enumerable:!0,get:function(){return mvt.setRPCMetadata}});var oFc=g9r();Object.defineProperty(Ja,"AlwaysOffSampler",{enumerable:!0,get:function(){return oFc.AlwaysOffSampler}});var aFc=d9r();Object.defineProperty(Ja,"AlwaysOnSampler",{enumerable:!0,get:function(){return aFc.AlwaysOnSampler}});var cFc=Z4i();Object.defineProperty(Ja,"ParentBasedSampler",{enumerable:!0,get:function(){return cFc.ParentBasedSampler}});var lFc=L4i();Object.defineProperty(Ja,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return lFc.TraceIdRatioBasedSampler}});var b9r=GKe();Object.defineProperty(Ja,"isTracingSuppressed",{enumerable:!0,get:function(){return b9r.isTracingSuppressed}});Object.defineProperty(Ja,"suppressTracing",{enumerable:!0,get:function(){return b9r.suppressTracing}});Object.defineProperty(Ja,"unsuppressTracing",{enumerable:!0,get:function(){return b9r.unsuppressTracing}});var uFc=a9r();Object.defineProperty(Ja,"TraceState",{enumerable:!0,get:function(){return uFc.TraceState}});var WDe=ULr();Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ENVIRONMENT",{enumerable:!0,get:function(){return WDe.DEFAULT_ENVIRONMENT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT}});Object.defineProperty(Ja,"parseEnvironment",{enumerable:!0,get:function(){return WDe.parseEnvironment}});var gFc=J4i();Object.defineProperty(Ja,"merge",{enumerable:!0,get:function(){return gFc.merge}});var AFc=JLr();Object.defineProperty(Ja,"TracesSamplerValues",{enumerable:!0,get:function(){return AFc.TracesSamplerValues}});var nJi=U4i();Object.defineProperty(Ja,"TimeoutError",{enumerable:!0,get:function(){return nJi.TimeoutError}});Object.defineProperty(Ja,"callWithTimeout",{enumerable:!0,get:function(){return nJi.callWithTimeout}});var iJi=j4i();Object.defineProperty(Ja,"isUrlIgnored",{enumerable:!0,get:function(){return iJi.isUrlIgnored}});Object.defineProperty(Ja,"urlMatches",{enumerable:!0,get:function(){return iJi.urlMatches}});var dFc=z4i();Object.defineProperty(Ja,"isWrapped",{enumerable:!0,get:function(){return dFc.isWrapped}});var pFc=$4i();Object.defineProperty(Ja,"BindOnceFuture",{enumerable:!0,get:function(){return pFc.BindOnceFuture}});var fFc=qLr();Object.defineProperty(Ja,"VERSION",{enumerable:!0,get:function(){return fFc.VERSION}});var IFc=tJi();Ja.internal={_export:IFc._export}});var aJi=H((IMu,S9r)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(r){if((r>0&&r<1/0)===!1)throw typeof r!="number"&&typeof r!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(r))},e=new Int32Array(new SharedArrayBuffer(4));S9r.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let n=Date.now()+Number(t);for(;n>Date.now(););};S9r.exports=e}});var fJi=H((hMu,pJi)=>{"use strict";var sw=wt("fs"),hFc=wt("events"),mFc=wt("util").inherits,cJi=wt("path"),B9r=aJi(),_vt=100,yvt=Buffer.allocUnsafe(0),CFc=16*1024,lJi="buffer",uJi="utf8";function gJi(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function r(o,l){if(o){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",o)}):t.emit("error",o);return}let A=t._reopening;t.fd=l,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():A&&process.nextTick(()=>t.emit("drain")))}let n=t.append?"a":"w",a=t.mode;if(t.sync)try{t.mkdir&&sw.mkdirSync(cJi.dirname(e),{recursive:!0});let o=sw.openSync(e,n,a);r(null,o)}catch(o){throw r(o),o}else t.mkdir?sw.mkdir(cJi.dirname(e),{recursive:!0},o=>{if(o)return r(o);sw.open(e,n,a,r)}):sw.open(e,n,a,r)}function C4(e){if(!(this instanceof C4))return new C4(e);let{fd:t,dest:r,minLength:n,maxLength:a,maxWrite:o,sync:l,append:A=!0,mkdir:f,retryEAGAIN:I,fsync:C,contentMode:b,mode:E}=e||{};t=t||r,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(n||0,16387),this.file=null,this.destroyed=!1,this.minLength=n||0,this.maxLength=a||0,this.maxWrite=o||CFc,this.sync=l||!1,this.writable=!0,this._fsync=C||!1,this.append=A||!1,this.mode=E,this.retryEAGAIN=I||(()=>!0),this.mkdir=f||!1;let N,B;if(b===lJi)this._writingBuf=yvt,this.write=bFc,this.flush=SFc,this.flushSync=BFc,this._actualWrite=TFc,N=()=>sw.writeSync(this.fd,this._writingBuf),B=()=>sw.write(this.fd,this._writingBuf,this.release);else if(b===void 0||b===uJi)this._writingBuf="",this.write=yFc,this.flush=EFc,this.flushSync=vFc,this._actualWrite=wFc,N=()=>sw.writeSync(this.fd,this._writingBuf,"utf8"),B=()=>sw.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${uJi}" and "${lJi}", but passed ${b}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")gJi(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(F,Q)=>{if(F){if((F.code==="EAGAIN"||F.code==="EBUSY")&&this.retryEAGAIN(F,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{B9r(_vt),this.release(void 0,0)}catch(ne){this.release(ne)}else setTimeout(B,_vt);else this._writing=!1,this.emit("error",F);return}this.emit("write",Q);let X=v9r(this._writingBuf,this._len,Q);if(this._len=X.len,this._writingBuf=X.writingBuf,this._writingBuf.length){if(!this.sync){B();return}try{do{let ne=N(),ce=v9r(this._writingBuf,this._len,ne);this._len=ce.len,this._writingBuf=ce.writingBuf}while(this._writingBuf.length)}catch(ne){this.release(ne);return}}this._fsync&&sw.fsyncSync(this.fd);let ae=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):ae>this.minLength?this._actualWrite():this._ending?ae>0?this._actualWrite():(this._writing=!1,bvt(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(_Fc,this)):this.emit("drain"))},this.on("newListener",function(F){F==="drain"&&(this._asyncDrainScheduled=!1)})}function v9r(e,t,r){return typeof e=="string"&&Buffer.byteLength(e)!==r&&(r=Buffer.from(e).subarray(0,r).toString().length),t=Math.max(t-r,0),e=e.slice(r),{writingBuf:e,len:t}}function _Fc(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}mFc(C4,hFc);function AJi(e,t){return e.length===0?yvt:e.length===1?e[0]:Buffer.concat(e,t)}function yFc(e){if(this.destroyed)throw new Error("SonicBoom destroyed");let t=this._len+e.length,r=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(""+e):r[r.length-1]+=e,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(r.push([e]),n.push(e.length)):(r[r.length-1].push(e),n[n.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{this._fsync?(this._flushPending=!1,e()):sw.fsync(this.fd,n=>{this._flushPending=!1,e(n)}),this.off("error",r)},r=n=>{this._flushPending=!1,e(n),this.off("drain",t)};this.once("drain",t),this.once("error",r)}function EFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function SFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}C4.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&sw.close(t,r=>{if(r)return this.emit("error",r)})}),gJi(this.file,this)};C4.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():bvt(this)))};function vFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e;){e.length<=0&&(e=this._bufs[0]);try{let t=sw.writeSync(this.fd,e,"utf8"),r=v9r(e,this._len,t);e=r.writingBuf,this._len=r.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}try{sw.fsyncSync(this.fd)}catch{}}function BFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=yvt);let e=yvt;for(;this._bufs.length||e.length;){e.length<=0&&(e=AJi(this._bufs[0],this._lens[0]));try{let t=sw.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}}C4.prototype.destroy=function(){this.destroyed||bvt(this)};function wFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,"utf8",e)}function TFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:AJi(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,e)}function bvt(e){if(e.fd===-1){e.once("ready",bvt.bind(null,e));return}e.destroyed=!0,e._bufs=[],e._lens=[],sw.fsync(e.fd,t);function t(){e.fd!==1&&e.fd!==2?sw.close(e.fd,r):r()}function r(n){if(n){e.emit("error",n);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}C4.SonicBoom=C4;C4.default=C4;pJi.exports=C4});var yJi=H((mMu,_Ji)=>{"use strict";var _4={exit:[],beforeExit:[]},IJi={exit:DFc,beforeExit:kFc},ODe;function RFc(){ODe===void 0&&(ODe=new FinalizationRegistry(xFc))}function NFc(e){_4[e].length>0||process.on(e,IJi[e])}function hJi(e){_4[e].length>0||(process.removeListener(e,IJi[e]),_4.exit.length===0&&_4.beforeExit.length===0&&(ODe=void 0))}function DFc(){mJi("exit")}function kFc(){mJi("beforeExit")}function mJi(e){for(let t of _4[e]){let r=t.deref(),n=t.fn;r!==void 0&&n(r,e)}_4[e]=[]}function xFc(e){for(let t of["exit","beforeExit"]){let r=_4[t].indexOf(e);_4[t].splice(r,r+1),hJi(t)}}function CJi(e,t,r){if(t===void 0)throw new Error("the object can't be undefined");NFc(e);let n=new WeakRef(t);n.fn=r,RFc(),ODe.register(t,n),_4[e].push(n)}function GFc(e,t){CJi("exit",e,t)}function FFc(e,t){CJi("beforeExit",e,t)}function ZFc(e){if(ODe!==void 0){ODe.unregister(e);for(let t of["exit","beforeExit"])_4[t]=_4[t].filter(r=>{let n=r.deref();return n&&n!==e}),hJi(t)}}_Ji.exports={register:GFc,registerBeforeExit:FFc,unregister:ZFc}});var DJi=H((D9r,k9r)=>{(function(e,t){typeof D9r=="object"&&typeof k9r<"u"?k9r.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.uniqolor=t())})(D9r,function(){"use strict";function e(Se,De){var k=Se==null?null:typeof Symbol<"u"&&Se[Symbol.iterator]||Se["@@iterator"];if(k!=null){var et,ct,Me,je,St=[],At=!0,Yt=!1;try{if(Me=(k=k.call(Se)).next,De===0){if(Object(k)!==k)return;At=!1}else for(;!(At=(et=Me.call(k)).done)&&(St.push(et.value),St.length!==De);At=!0);}catch(Tr){Yt=!0,ct=Tr}finally{try{if(!At&&k.return!=null&&(je=k.return(),Object(je)!==je))return}finally{if(Yt)throw ct}}return St}}function t(Se,De){return a(Se)||e(Se,De)||l(Se,De)||I()}function r(Se){return n(Se)||o(Se)||l(Se)||f()}function n(Se){if(Array.isArray(Se))return A(Se)}function a(Se){if(Array.isArray(Se))return Se}function o(Se){if(typeof Symbol<"u"&&Se[Symbol.iterator]!=null||Se["@@iterator"]!=null)return Array.from(Se)}function l(Se,De){if(Se){if(typeof Se=="string")return A(Se,De);var k=Object.prototype.toString.call(Se).slice(8,-1);if(k==="Object"&&Se.constructor&&(k=Se.constructor.name),k==="Map"||k==="Set")return Array.from(Se);if(k==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(k))return A(Se,De)}}function A(Se,De){(De==null||De>Se.length)&&(De=Se.length);for(var k=0,et=new Array(De);k=je[0]&&ct<=je[1])return Se(De,k,et)}return ct},Q=function(De){for(var k=De.length,et=0,ct=0;ct1&&(et-=1),et<1/6?De+(k-De)*6*et:et<1/2?k:et<2/3?De+(k-De)*(2/3-et)*6:De},ce=function(De,k,et){var ct,Me,je;if(De/=360,k/=100,et/=100,k===0)ct=Me=je=et;else{var St=et<.5?et*(1+k):et+k-et*k,At=2*et-St;ct=ne(At,St,De+1/3),Me=ne(At,St,De),je=ne(At,St,De-1/3)}return[Math.round(ct*255),Math.round(Me*255),Math.round(je*255)]},fe=function(De,k,et,ct){return(De*299+k*587+et*114)/1e3>=ct},ue=function(De,k,et){return"hsl(".concat(De,", ").concat(k,"%, ").concat(et,"%)")},de=function(De,k,et,ct){switch(ct){case"rgb":return"rgb(".concat(De,", ").concat(k,", ").concat(et,")");case"hex":default:return"#".concat(E(De.toString(16))).concat(E(k.toString(16))).concat(E(et.toString(16)))}},be=function(De){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=k.format,ct=et===void 0?"hex":et,Me=k.saturation,je=Me===void 0?[50,55]:Me,St=k.lightness,At=St===void 0?[50,60]:St,Yt=k.differencePoint,Tr=Yt===void 0?130:Yt,Nr=Math.abs(Q(String(De))),er=X(Nr,[0,360]),vt=X(Nr,ae(je,C)),xt=X(Nr,ae(At,b)),Zr=ce(er,vt,xt),qt=t(Zr,3),Xt=qt[0],lr=qt[1],cr=qt[2];return{color:ct==="hsl"?ue(er,vt,xt):de(Xt,lr,cr,ct),isLight:fe(Xt,lr,cr,Tr)}};return be.random=function(){var Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},De=Se.format,k=De===void 0?"hex":De,et=Se.saturation,ct=et===void 0?[50,55]:et,Me=Se.lightness,je=Me===void 0?[50,60]:Me,St=Se.differencePoint,At=St===void 0?130:St,Yt=Se.excludeHue;ct=ae(ct,C),je=ae(je,b);var Tr=Yt?F(0,359,Yt):B(0,359),Nr=typeof ct=="number"?ct:B.apply(void 0,r(ct)),er=typeof je=="number"?je:B.apply(void 0,r(je)),vt=ce(Tr,Nr,er),xt=t(vt,3),Zr=xt[0],qt=xt[1],Xt=xt[2];return{color:k==="hsl"?ue(Tr,Nr,er):de(Zr,qt,Xt,k),isLight:fe(Zr,qt,Xt,At)}},be})});var Z9r=H(Gj=>{"use strict";Object.defineProperty(Gj,"__esModule",{value:!0});Gj.TOKEN_TYPE_TO_HIGHLIGHT=Gj.HighlightSubject=Gj.TokenType=void 0;var TV;(function(e){e[e.WHITESPACE=0]="WHITESPACE",e[e.WORD=1]="WORD",e[e.QUOTE=2]="QUOTE",e[e.BACKTICK_QUOTE=3]="BACKTICK_QUOTE",e[e.RESERVED=4]="RESERVED",e[e.RESERVED_TOPLEVEL=5]="RESERVED_TOPLEVEL",e[e.RESERVED_NEWLINE=6]="RESERVED_NEWLINE",e[e.BOUNDARY=7]="BOUNDARY",e[e.COMMENT=8]="COMMENT",e[e.BLOCK_COMMENT=9]="BLOCK_COMMENT",e[e.NUMBER=10]="NUMBER",e[e.ERROR=11]="ERROR",e[e.VARIABLE=12]="VARIABLE",e[e.LITERAL=13]="LITERAL",e[e.BUILT_IN=14]="BUILT_IN"})(TV=Gj.TokenType||(Gj.TokenType={}));var RV;(function(e){e.BOUNDARY="boundary",e.WORD="word",e.BACKTICK_QUOTE="backtickQuote",e.QUOTE="quote",e.RESERVED="reserved",e.NUMBER="number",e.VARIABLE="variable",e.COMMENT="comment",e.FUNCTIONS="functions",e.LITERAL="literal",e.BUILT_IN="builtIn"})(RV=Gj.HighlightSubject||(Gj.HighlightSubject={}));Gj.TOKEN_TYPE_TO_HIGHLIGHT={[TV.BOUNDARY]:RV.BOUNDARY,[TV.WORD]:RV.WORD,[TV.BACKTICK_QUOTE]:RV.BACKTICK_QUOTE,[TV.QUOTE]:RV.QUOTE,[TV.RESERVED]:RV.RESERVED,[TV.RESERVED_TOPLEVEL]:RV.RESERVED,[TV.RESERVED_NEWLINE]:RV.RESERVED,[TV.NUMBER]:RV.NUMBER,[TV.VARIABLE]:RV.VARIABLE,[TV.COMMENT]:RV.COMMENT,[TV.BLOCK_COMMENT]:RV.COMMENT,[TV.LITERAL]:RV.LITERAL,[TV.BUILT_IN]:RV.BUILT_IN}});var V9r=H(Nvt=>{"use strict";Object.defineProperty(Nvt,"__esModule",{value:!0});Nvt.Tokenizer=void 0;var zk=Z9r(),L9r=class{constructor(){this.literal=["true","false","null","unknown"],this.builtIn=["array","bigint","binary","bit","blob","bool","boolean","char","character","date","dec","decimal","float","int","int8","integer","interval","number","numeric","real","record","serial","serial8","smallint","text","time","timestamp","tinyint","varchar","varchar2","varying","void"],this.reserved=["accessible","action","after","against","aggregate","algorithm","all","alter","analyse","analyze","as","asc","autocommit","auto_increment","backup","begin","between","binlog","both","cascade","case","change","changed","character set","charset","check","checksum","collate","collation","column","columns","comment","commit","committed","compressed","concurrent","constraint","contains","convert","create","cross","current_timestamp","database","databases","day","day_hour","day_minute","day_second","default","definer","delayed","delete","desc","describe","deterministic","distinct","distinctrow","div","do","dumpfile","duplicate","dynamic","else","enclosed","end","engine","engine_type","engines","escape","escaped","events","exec","execute","exists","explain","extended","fast","fields","file","first","fixed","flush","for","force","foreign","full","fulltext","function","global","grant","grants","group_concat","heap","high_priority","hosts","hour","hour_minute","hour_second","identified","if","ifnull","ignore","in","index","indexes","infile","insert","insert_id","insert_method","interval","into","invoker","is","isolation","key","keys","kill","last_insert_id","leading","level","like","linear","lines","load","local","lock","locks","logs","low_priority","maria","master","master_connect_retry","master_host","master_log_file","match","max_connections_per_hour","max_queries_per_hour","max_rows","max_updates_per_hour","max_user_connections","medium","merge","minute","minute_second","min_rows","mode","month","mrg_myisam","myisam","names","natural","not","now()","null","offset","on","open","optimize","option","optionally","on update","on delete","outfile","pack_keys","page","partial","partition","partitions","password","primary","privileges","procedure","process","processlist","purge","quick","range","raid0","raid_chunks","raid_chunksize","raid_type","read","read_only","read_write","references","regexp","reload","rename","repair","repeatable","replace","replication","reset","restore","restrict","return","returns","revoke","rlike","rollback","row","rows","row_format","second","security","separator","serializable","session","share","show","shutdown","slave","soname","sounds","sql","sql_auto_is_null","sql_big_result","sql_big_selects","sql_big_tables","sql_buffer_result","sql_calc_found_rows","sql_log_bin","sql_log_off","sql_log_update","sql_low_priority_updates","sql_max_join_size","sql_quote_show_create","sql_safe_updates","sql_select_limit","sql_slave_skip_counter","sql_small_result","sql_warnings","sql_cache","sql_no_cache","start","starting","status","stop","storage","straight_join","string","striped","super","table","tables","temporary","terminated","then","to","trailing","transactional","true","truncate","type","types","uncommitted","unique","unlock","unsigned","usage","use","using","variables","view","when","with","work","write","year_month"],this.reservedToplevel=["select","from","where","set","order by","group by","limit","drop","values","update","having","add","change","modify","alter table","delete from","union all","union","except","intersect"],this.reservedNewline=["left outer join","right outer join","left join","right join","outer join","inner join","join","xor","or","and"],this.functions=["abs","acos","adddate","addtime","aes_decrypt","aes_encrypt","area","asbinary","ascii","asin","astext","atan","atan2","avg","bdmpolyfromtext","bdmpolyfromwkb","bdpolyfromtext","bdpolyfromwkb","benchmark","bin","bit_and","bit_count","bit_length","bit_or","bit_xor","boundary","buffer","cast","ceil","ceiling","centroid","char","character_length","charset","char_length","coalesce","coercibility","collation","compress","concat","concat_ws","connection_id","contains","conv","convert","convert_tz","convexhull","cos","cot","count","crc32","crosses","curdate","current_date","current_time","current_timestamp","current_user","curtime","database","date","datediff","date_add","date_diff","date_format","date_sub","day","dayname","dayofmonth","dayofweek","dayofyear","decode","default","degrees","des_decrypt","des_encrypt","difference","dimension","disjoint","distance","elt","encode","encrypt","endpoint","envelope","equals","exp","export_set","exteriorring","extract","extractvalue","field","find_in_set","floor","format","found_rows","from_days","from_unixtime","geomcollfromtext","geomcollfromwkb","geometrycollection","geometrycollectionfromtext","geometrycollectionfromwkb","geometryfromtext","geometryfromwkb","geometryn","geometrytype","geomfromtext","geomfromwkb","get_format","get_lock","glength","greatest","group_concat","group_unique_users","hex","hour","if","ifnull","inet_aton","inet_ntoa","insert","instr","interiorringn","intersection","intersects","interval","isclosed","isempty","isnull","isring","issimple","is_free_lock","is_used_lock","last_day","last_insert_id","lcase","least","left","length","linefromtext","linefromwkb","linestring","linestringfromtext","linestringfromwkb","ln","load_file","localtime","localtimestamp","locate","log","log10","log2","lower","lpad","ltrim","makedate","maketime","make_set","master_pos_wait","max","mbrcontains","mbrdisjoint","mbrequal","mbrintersects","mbroverlaps","mbrtouches","mbrwithin","md5","microsecond","mid","min","minute","mlinefromtext","mlinefromwkb","mod","month","monthname","mpointfromtext","mpointfromwkb","mpolyfromtext","mpolyfromwkb","multilinestring","multilinestringfromtext","multilinestringfromwkb","multipoint","multipointfromtext","multipointfromwkb","multipolygon","multipolygonfromtext","multipolygonfromwkb","name_const","nullif","numgeometries","numinteriorrings","numpoints","oct","octet_length","old_password","ord","overlaps","password","period_add","period_diff","pi","point","pointfromtext","pointfromwkb","pointn","pointonsurface","polyfromtext","polyfromwkb","polygon","polygonfromtext","polygonfromwkb","position","pow","power","quarter","quote","radians","rand","related","release_lock","repeat","replace","reverse","right","round","row_count","rpad","rtrim","schema","second","sec_to_time","session_user","sha","sha1","sign","sin","sleep","soundex","space","sqrt","srid","startpoint","std","stddev","stddev_pop","stddev_samp","strcmp","str_to_date","subdate","substr","substring","substring_index","subtime","sum","symdifference","sysdate","system_user","tan","time","timediff","timestamp","timestampadd","timestampdiff","time_format","time_to_sec","touches","to_days","trim","truncate","ucase","uncompress","uncompressed_length","unhex","unique_users","unix_timestamp","updatexml","upper","user","utc_date","utc_time","utc_timestamp","uuid","variance","var_pop","var_samp","version","week","weekday","weekofyear","within","x","y","year","yearweek"],this.boundaries=[",",";",":",")","(",".","=","<",">","+","-","*","/","!","^","%","|","&","#"],this.regexBoundaries="("+this.quoteRegex(this.boundaries).join("|")+")",this.regexReserved="("+this.quoteRegex(this.reserved).join("|")+")",this.regexReservedToplevel=`(${this.quoteRegex(this.reservedToplevel).join("|")})`.replace(/ /g,"\\s+"),this.regexReservedNewline=`(${this.quoteRegex(this.reservedNewline).join("|")})`.replace(/ /g,"\\s+"),this.regexFunction="("+this.quoteRegex(this.functions).join("|")+")",this.regexLiteral="("+this.quoteRegex(this.literal).join("|")+")",this.regexBuiltIn="("+this.quoteRegex(this.builtIn).join("|")+")"}tokenize(t){let r=[],n=t.length+1,a,o=t.length;for(;o;){if(n<=o)return r.push({type:zk.TokenType.ERROR,value:t}),r;n=o,a=this.createNextToken(t,a);let l=a.value.length;r.push(a),t=t.substr(l),o-=l}return r}createNextToken(t,r){let n;if(n=t.match(/^\s+/),n)return{type:zk.TokenType.WHITESPACE,value:n[0]};if(t[0]==="#"||t[1]&&t[0]==="-"&&t[1]==="-"||t[1]&&t[0]==="/"&&t[1]==="*"){let o,l;return t[0]==="-"||t[0]==="#"?(l=t.indexOf(` -`),o=zk.TokenType.COMMENT):(l=t.indexOf("*/",2)+2,o=zk.TokenType.BLOCK_COMMENT),l===-1&&(l=t.length),{type:o,value:t.substr(0,l)}}if(['"',"'","`","["].includes(t[0]))return{type:t[0]==="`"||t[0]==="["?zk.TokenType.BACKTICK_QUOTE:zk.TokenType.QUOTE,value:this.getQuotedString(t)};if((t[0]==="@"||t[0]===":")&&t[1]){if(['"',"'","`"].includes(t[1])){let o=t[0]+this.getQuotedString(t.substr(1));return{type:zk.TokenType.VARIABLE,value:o}}if(n=new RegExp(`^(${t[0]}[a-zA-Z0-9._$]+)`).exec(t),n)return{type:zk.TokenType.VARIABLE,value:n[1]}}if(n=new RegExp(`^([0-9]+(.[0-9]+)?|0x[0-9a-fA-F]+|0b[01]+)($|\\s|"'\`|${this.regexBoundaries})`).exec(t),n)return{type:zk.TokenType.NUMBER,value:n[1]};if(n=new RegExp(`^(${this.regexBoundaries})`).exec(t),n)return{type:zk.TokenType.BOUNDARY,value:n[1]};let a=t.toLowerCase();if(!r||r.value!=="."){if(n=new RegExp(`^(${this.regexReservedToplevel})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED_TOPLEVEL,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexReservedNewline})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED_NEWLINE,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexLiteral})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.LITERAL,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexBuiltIn})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.BUILT_IN,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexReserved})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED,value:t.substr(0,n[1].length)}}return n=new RegExp(`^(${this.regexFunction}[(]|\\s|[)])`).exec(a),n?{type:zk.TokenType.RESERVED,value:t.substr(0,n[1].length-1)}:(n=new RegExp(`^(.*?)($|\\s|["'\`]|${this.regexBoundaries})`).exec(t),{type:zk.TokenType.WORD,value:n[1]})}quoteRegex(t){return t.map(r=>r.replace(new RegExp("[.\\\\+*?\\[^\\]$(){}=!<>|:\\/-]","g"),"\\$&"))}getQuotedString(t){var r;let n=`^(((\`[^\`]*($|\`))+)|((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)|(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)|(('[^'\\\\]*(?:\\\\.[^'\\\\]*)*('|$))+))`,a=new RegExp(n,"s").exec(t);return(r=a?.[1])!==null&&r!==void 0?r:""}};Nvt.Tokenizer=L9r});var LJi=H((lHu,WKe)=>{"use strict";var JFc=typeof process<"u"&&process.env.TERM_PROGRAM==="Hyper",UFc=typeof process<"u"&&process.platform==="win32",GJi=typeof process<"u"&&process.platform==="linux",P9r={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",question:"?",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},FJi=Object.assign({},P9r,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ZJi=Object.assign({},P9r,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:GJi?"\u25B8":"\u276F",pointerSmall:GJi?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});WKe.exports=UFc&&!JFc?FJi:ZJi;Reflect.defineProperty(WKe.exports,"common",{enumerable:!1,value:P9r});Reflect.defineProperty(WKe.exports,"windows",{enumerable:!1,value:FJi});Reflect.defineProperty(WKe.exports,"other",{enumerable:!1,value:ZJi})});var OKe=H((uHu,W9r)=>{"use strict";var KFc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),jFc=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,zFc=()=>typeof process<"u"?process.env.FORCE_COLOR!=="0":!1,VJi=()=>{let e={enabled:zFc(),visible:!0,styles:{},keys:{}},t=o=>{let l=o.open=`\x1B[${o.codes[0]}m`,A=o.close=`\x1B[${o.codes[1]}m`,f=o.regex=new RegExp(`\\u001b\\[${o.codes[1]}m`,"g");return o.wrap=(I,C)=>{I.includes(A)&&(I=I.replace(f,A+l));let b=l+I+A;return C?b.replace(/\r*\n/g,`${A}$&${l}`):b},o},r=(o,l,A)=>typeof o=="function"?o(l):o.wrap(l,A),n=(o,l)=>{if(o===""||o==null)return"";if(e.enabled===!1)return o;if(e.visible===!1)return"";let A=""+o,f=A.includes(` -`),I=l.length;for(I>0&&l.includes("unstyle")&&(l=[...new Set(["unstyle",...l])].reverse());I-- >0;)A=r(e.styles[l[I]],A,f);return A},a=(o,l,A)=>{e.styles[o]=t({name:o,codes:l}),(e.keys[A]||(e.keys[A]=[])).push(o),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(I){e.alias(o,I)},get(){let I=C=>n(C,I.stack);return Reflect.setPrototypeOf(I,e),I.stack=this.stack?this.stack.concat(o):[o],I}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),e.ansiRegex=jFc,e.hasColor=e.hasAnsi=o=>(e.ansiRegex.lastIndex=0,typeof o=="string"&&o!==""&&e.ansiRegex.test(o)),e.alias=(o,l)=>{let A=typeof l=="string"?e[l]:l;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:o}),e.styles[o]=A,A.stack=[o]),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(f){e.alias(o,f)},get(){let f=I=>n(I,f.stack);return Reflect.setPrototypeOf(f,e),f.stack=this.stack?this.stack.concat(A.stack):A.stack,f}})},e.theme=o=>{if(!KFc(o))throw new TypeError("Expected theme to be an object");for(let l of Object.keys(o))e.alias(l,o[l]);return e},e.alias("unstyle",o=>typeof o=="string"&&o!==""?(e.ansiRegex.lastIndex=0,o.replace(e.ansiRegex,"")):""),e.alias("noop",o=>o),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=LJi(),e.define=a,e};W9r.exports=VJi();W9r.exports.create=VJi});var PJi=H(HDe=>{"use strict";var qFc=HDe&&HDe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HDe,"__esModule",{value:!0});HDe.SqlHighlighter=void 0;var Fj=qFc(OKe()),$Fc=V9r(),eL=Z9r(),Dvt=class e{constructor(t={}){this.theme=t,this.tokenizer=new $Fc.Tokenizer,this.theme=Object.assign(Object.assign({},e.DEFAULT_THEME),this.theme)}highlight(t){let r=this.tokenizer.tokenize(t),n,a="",o=0;for(;n=r[o++];)a+=this.highlightToken(n.type,n.value);return a}highlightToken(t,r){return t===eL.TokenType.BOUNDARY&&["(",")"].includes(r)?r:this.colorize(t,r)}colorize(t,r){return!eL.TOKEN_TYPE_TO_HIGHLIGHT[t]||!this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]]?r:this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]](r)}};HDe.SqlHighlighter=Dvt;Dvt.DEFAULT_THEME={[eL.HighlightSubject.QUOTE]:Fj.default.yellow,[eL.HighlightSubject.BACKTICK_QUOTE]:Fj.default.yellow,[eL.HighlightSubject.RESERVED]:Fj.default.white.bold,[eL.HighlightSubject.BOUNDARY]:Fj.default.reset,[eL.HighlightSubject.NUMBER]:Fj.default.green,[eL.HighlightSubject.WORD]:void 0,[eL.HighlightSubject.COMMENT]:Fj.default.green.dim,[eL.HighlightSubject.VARIABLE]:Fj.default.yellow,[eL.HighlightSubject.FUNCTIONS]:Fj.default.green.bold,[eL.HighlightSubject.BUILT_IN]:Fj.default.cyan,[eL.HighlightSubject.LITERAL]:Fj.default.cyan}});var OJi=H(qce=>{"use strict";var eZc=qce&&qce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WJi=qce&&qce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&eZc(t,e,r)};Object.defineProperty(qce,"__esModule",{value:!0});WJi(V9r(),qce);WJi(PJi(),qce)});var HJi=H((MJi,kvt)=>{(function(e,t){typeof kvt=="object"&&kvt.exports?kvt.exports=t():e.nearley=t()})(MJi,function(){function e(f,I,C){return this.id=++e.highestId,this.name=f,this.symbols=I,this.postprocess=C,this}e.highestId=0,e.prototype.toString=function(f){var I=typeof f>"u"?this.symbols.map(A).join(" "):this.symbols.slice(0,f).map(A).join(" ")+" \u25CF "+this.symbols.slice(f).map(A).join(" ");return this.name+" \u2192 "+I};function t(f,I,C,b){this.rule=f,this.dot=I,this.reference=C,this.data=[],this.wantedBy=b,this.isComplete=this.dot===f.symbols.length}t.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},t.prototype.nextState=function(f){var I=new t(this.rule,this.dot+1,this.reference,this.wantedBy);return I.left=this,I.right=f,I.isComplete&&(I.data=I.build(),I.right=void 0),I},t.prototype.build=function(){var f=[],I=this;do f.push(I.right.data),I=I.left;while(I.left);return f.reverse(),f},t.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,o.fail))};function r(f,I){this.grammar=f,this.index=I,this.states=[],this.wants={},this.scannable=[],this.completed={}}r.prototype.process=function(f){for(var I=this.states,C=this.wants,b=this.completed,E=0;Er.replace(new RegExp("[.\\\\+*?\\[^\\]$(){}=!<>|:\\/-]","g"),"\\$&"))}getQuotedString(t){var r;let n=`^(((\`[^\`]*($|\`))+)|((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)|(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)|(('[^'\\\\]*(?:\\\\.[^'\\\\]*)*('|$))+))`,a=new RegExp(n,"s").exec(t);return(r=a?.[1])!==null&&r!==void 0?r:""}};Nvt.Tokenizer=L9r});var LJi=H((uHu,WKe)=>{"use strict";var UFc=typeof process<"u"&&process.env.TERM_PROGRAM==="Hyper",KFc=typeof process<"u"&&process.platform==="win32",GJi=typeof process<"u"&&process.platform==="linux",P9r={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",question:"?",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},FJi=Object.assign({},P9r,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ZJi=Object.assign({},P9r,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:GJi?"\u25B8":"\u276F",pointerSmall:GJi?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});WKe.exports=KFc&&!UFc?FJi:ZJi;Reflect.defineProperty(WKe.exports,"common",{enumerable:!1,value:P9r});Reflect.defineProperty(WKe.exports,"windows",{enumerable:!1,value:FJi});Reflect.defineProperty(WKe.exports,"other",{enumerable:!1,value:ZJi})});var OKe=H((gHu,W9r)=>{"use strict";var jFc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),zFc=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,qFc=()=>typeof process<"u"?process.env.FORCE_COLOR!=="0":!1,VJi=()=>{let e={enabled:qFc(),visible:!0,styles:{},keys:{}},t=o=>{let l=o.open=`\x1B[${o.codes[0]}m`,A=o.close=`\x1B[${o.codes[1]}m`,f=o.regex=new RegExp(`\\u001b\\[${o.codes[1]}m`,"g");return o.wrap=(I,C)=>{I.includes(A)&&(I=I.replace(f,A+l));let b=l+I+A;return C?b.replace(/\r*\n/g,`${A}$&${l}`):b},o},r=(o,l,A)=>typeof o=="function"?o(l):o.wrap(l,A),n=(o,l)=>{if(o===""||o==null)return"";if(e.enabled===!1)return o;if(e.visible===!1)return"";let A=""+o,f=A.includes(` +`),I=l.length;for(I>0&&l.includes("unstyle")&&(l=[...new Set(["unstyle",...l])].reverse());I-- >0;)A=r(e.styles[l[I]],A,f);return A},a=(o,l,A)=>{e.styles[o]=t({name:o,codes:l}),(e.keys[A]||(e.keys[A]=[])).push(o),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(I){e.alias(o,I)},get(){let I=C=>n(C,I.stack);return Reflect.setPrototypeOf(I,e),I.stack=this.stack?this.stack.concat(o):[o],I}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),e.ansiRegex=zFc,e.hasColor=e.hasAnsi=o=>(e.ansiRegex.lastIndex=0,typeof o=="string"&&o!==""&&e.ansiRegex.test(o)),e.alias=(o,l)=>{let A=typeof l=="string"?e[l]:l;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:o}),e.styles[o]=A,A.stack=[o]),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(f){e.alias(o,f)},get(){let f=I=>n(I,f.stack);return Reflect.setPrototypeOf(f,e),f.stack=this.stack?this.stack.concat(A.stack):A.stack,f}})},e.theme=o=>{if(!jFc(o))throw new TypeError("Expected theme to be an object");for(let l of Object.keys(o))e.alias(l,o[l]);return e},e.alias("unstyle",o=>typeof o=="string"&&o!==""?(e.ansiRegex.lastIndex=0,o.replace(e.ansiRegex,"")):""),e.alias("noop",o=>o),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=LJi(),e.define=a,e};W9r.exports=VJi();W9r.exports.create=VJi});var PJi=H(HDe=>{"use strict";var $Fc=HDe&&HDe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HDe,"__esModule",{value:!0});HDe.SqlHighlighter=void 0;var Fj=$Fc(OKe()),eZc=V9r(),eL=Z9r(),Dvt=class e{constructor(t={}){this.theme=t,this.tokenizer=new eZc.Tokenizer,this.theme=Object.assign(Object.assign({},e.DEFAULT_THEME),this.theme)}highlight(t){let r=this.tokenizer.tokenize(t),n,a="",o=0;for(;n=r[o++];)a+=this.highlightToken(n.type,n.value);return a}highlightToken(t,r){return t===eL.TokenType.BOUNDARY&&["(",")"].includes(r)?r:this.colorize(t,r)}colorize(t,r){return!eL.TOKEN_TYPE_TO_HIGHLIGHT[t]||!this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]]?r:this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]](r)}};HDe.SqlHighlighter=Dvt;Dvt.DEFAULT_THEME={[eL.HighlightSubject.QUOTE]:Fj.default.yellow,[eL.HighlightSubject.BACKTICK_QUOTE]:Fj.default.yellow,[eL.HighlightSubject.RESERVED]:Fj.default.white.bold,[eL.HighlightSubject.BOUNDARY]:Fj.default.reset,[eL.HighlightSubject.NUMBER]:Fj.default.green,[eL.HighlightSubject.WORD]:void 0,[eL.HighlightSubject.COMMENT]:Fj.default.green.dim,[eL.HighlightSubject.VARIABLE]:Fj.default.yellow,[eL.HighlightSubject.FUNCTIONS]:Fj.default.green.bold,[eL.HighlightSubject.BUILT_IN]:Fj.default.cyan,[eL.HighlightSubject.LITERAL]:Fj.default.cyan}});var OJi=H(qce=>{"use strict";var tZc=qce&&qce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WJi=qce&&qce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&tZc(t,e,r)};Object.defineProperty(qce,"__esModule",{value:!0});WJi(V9r(),qce);WJi(PJi(),qce)});var HJi=H((MJi,kvt)=>{(function(e,t){typeof kvt=="object"&&kvt.exports?kvt.exports=t():e.nearley=t()})(MJi,function(){function e(f,I,C){return this.id=++e.highestId,this.name=f,this.symbols=I,this.postprocess=C,this}e.highestId=0,e.prototype.toString=function(f){var I=typeof f>"u"?this.symbols.map(A).join(" "):this.symbols.slice(0,f).map(A).join(" ")+" \u25CF "+this.symbols.slice(f).map(A).join(" ");return this.name+" \u2192 "+I};function t(f,I,C,b){this.rule=f,this.dot=I,this.reference=C,this.data=[],this.wantedBy=b,this.isComplete=this.dot===f.symbols.length}t.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},t.prototype.nextState=function(f){var I=new t(this.rule,this.dot+1,this.reference,this.wantedBy);return I.left=this,I.right=f,I.isComplete&&(I.data=I.build(),I.right=void 0),I},t.prototype.build=function(){var f=[],I=this;do f.push(I.right.data),I=I.left;while(I.left);return f.reverse(),f},t.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,o.fail))};function r(f,I){this.grammar=f,this.index=I,this.states=[],this.wants={},this.scannable=[],this.completed={}}r.prototype.process=function(f){for(var I=this.states,C=this.wants,b=this.completed,E=0;E0&&I.push(" ^ "+b+" more lines identical to this"),b=0,I.push(" "+B)),C=B}},o.prototype.getSymbolDisplay=function(f){return l(f)},o.prototype.buildFirstStateStack=function(f,I){if(I.indexOf(f)!==-1)return null;if(f.wantedBy.length===0)return[f];var C=f.wantedBy[0],b=[f].concat(I),E=this.buildFirstStateStack(C,b);return E===null?null:[f].concat(E)},o.prototype.save=function(){var f=this.table[this.current];return f.lexerState=this.lexerState,f},o.prototype.restore=function(f){var I=f.index;this.current=I,this.table[I]=f,this.table.splice(I+1),this.lexerState=f.lexerState,this.results=this.finish()},o.prototype.rewind=function(f){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[f])},o.prototype.finish=function(){var f=[],I=this.grammar.start,C=this.table[this.table.length-1];return C.states.forEach(function(b){b.rule.name===I&&b.dot===b.rule.symbols.length&&b.reference===0&&b.data!==o.fail&&f.push(b)}),f.map(function(b){return b.data})};function l(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return"character matching "+f;if(f.type)return f.type+" token";if(f.test)return"token matching "+String(f.test);throw new Error("Unknown symbol type: "+f)}}function A(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return f.toString();if(f.type)return"%"+f.type;if(f.test)return"<"+String(f.test)+">";throw new Error("Unknown symbol type: "+f)}}return{Parser:o,Grammar:n,Rule:e}})});var YVr=H((MVr,HVr)=>{(function(e,t){typeof MVr=="object"&&typeof HVr<"u"?HVr.exports=t():typeof define=="function"&&define.amd?define(t):e.deepmerge=t()})(MVr,function(){"use strict";var e=function(N){return t(N)&&!r(N)};function t(E){return!!E&&typeof E=="object"}function r(E){var N=Object.prototype.toString.call(E);return N==="[object RegExp]"||N==="[object Date]"||o(E)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function o(E){return E.$$typeof===a}function l(E){return Array.isArray(E)?[]:{}}function A(E,N){var B=N&&N.clone===!0;return B&&e(E)?C(l(E),E,N):E}function f(E,N,B){var F=E.slice();return N.forEach(function(Q,X){typeof F[X]>"u"?F[X]=A(Q,B):e(Q)?F[X]=C(E[X],Q,B):E.indexOf(Q)===-1&&F.push(A(Q,B))}),F}function I(E,N,B){var F={};return e(E)&&Object.keys(E).forEach(function(Q){F[Q]=A(E[Q],B)}),Object.keys(N).forEach(function(Q){!e(N[Q])||!E[Q]?F[Q]=A(N[Q],B):F[Q]=C(E[Q],N[Q],B)}),F}function C(E,N,B){var F=Array.isArray(N),Q=Array.isArray(E),X=B||{arrayMerge:f},ae=F===Q;if(ae)if(F){var ne=X.arrayMerge||f;return ne(E,N,B)}else return I(E,N,B);else return A(N,B)}C.all=function(N,B){if(!Array.isArray(N)||N.length<2)throw new Error("first argument should be an array with at least two elements");return N.reduce(function(F,Q){return C(F,Q,B)})};var b=C;return b})});var QVr=H((kXu,a8i)=>{var wPc=YVr();a8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Map}extend(r){return this.shorthands=r,r.forEach(n=>{this[n]=a=>this.set(n,a)}),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}order(){let r=[...this.store].reduce((o,[l,A])=>(o[l]=A,o),{}),n=Object.keys(r),a=[...n];return n.forEach(o=>{if(!r[o])return;let{__before:l,__after:A}=r[o];l&&a.includes(l)?(a.splice(a.indexOf(o),1),a.splice(a.indexOf(l),0,o)):A&&a.includes(A)&&(a.splice(a.indexOf(o),1),a.splice(a.indexOf(A)+1,0,o))}),{entries:r,order:a}}entries(){let{entries:r,order:n}=this.order();if(n.length)return r}values(){let{entries:r,order:n}=this.order();return n.map(a=>r[a])}get(r){return this.store.get(r)}getOrCompute(r,n){return this.has(r)||this.set(r,n()),this.get(r)}has(r){return this.store.has(r)}set(r,n){return this.store.set(r,n),this}merge(r,n=[]){return Object.keys(r).forEach(a=>{if(n.includes(a))return;let o=r[a];!Array.isArray(o)&&typeof o!="object"||o===null||!this.has(a)?this.set(a,o):this.set(a,wPc(this.get(a),o))}),this}clean(r){return Object.keys(r).reduce((n,a)=>{let o=r[a];return o===void 0||Array.isArray(o)&&!o.length||Object.prototype.toString.call(o)==="[object Object]"&&!Object.keys(o).length||(n[a]=o),n},{})}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var Kvt=H((GXu,c8i)=>{c8i.exports=function(t){return class extends t{constructor(r){super(),this.parent=r}batch(r){return r(this),this}end(){return this.parent}}}});var Lj=H((ZXu,l8i)=>{var TPc=QVr(),RPc=Kvt();l8i.exports=TPc(RPc(Object))});var g8i=H((LXu,u8i)=>{u8i.exports=class extends Function{constructor(){return super(),new Proxy(this,{apply:(e,t,r)=>e.classCall(...r)})}classCall(){throw new Error("not implemented")}}});var d8i=H((PXu,A8i)=>{A8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.value=void 0,this.useMap=!0}set(...r){return this.useMap=!0,this.value=void 0,super.set(...r)}clear(){return this.value=void 0,super.clear()}classCall(r){return this.clear(),this.useMap=!1,this.value=r,this.parent}entries(){return this.useMap?super.entries():this.value}values(){return this.useMap?super.values():this.value}}}});var jvt=H((OXu,p8i)=>{var NPc=g8i(),DPc=QVr(),kPc=Kvt(),xPc=d8i();p8i.exports=xPc(DPc(kPc(NPc)))});var I8i=H((MXu,f8i)=>{f8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Set}add(r){return this.store.add(r),this}prepend(r){return this.store=new Set([r,...this.store]),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}values(){return[...this.store]}has(r){return this.store.has(r)}merge(r){return this.store=new Set([...this.store,...r]),this}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var $De=H((YXu,h8i)=>{var GPc=I8i(),FPc=Kvt();h8i.exports=GPc(FPc(Object))});var zvt=H((QXu,m8i)=>{m8i.exports=e=>class extends e{before(t){if(this.__after)throw new Error(`Unable to set .before(${JSON.stringify(t)}) with existing value for .after()`);return this.__before=t,this}after(t){if(this.__before)throw new Error(`Unable to set .after(${JSON.stringify(t)}) with existing value for .before()`);return this.__after=t,this}merge(t,r=[]){return t.before&&this.before(t.before),t.after&&this.after(t.after),super.merge(t,[...r,"before","after"])}}});var qvt=H((JXu,C8i)=>{var ZPc=Lj(),LPc=zvt();C8i.exports=LPc(class extends ZPc{constructor(e,t,r="plugin"){super(e),this.name=t,this.type=r,this.extend(["init"]),this.init((n,a=[])=>typeof n=="function"?new n(...a):n)}use(e,t=[]){return this.set("plugin",e).set("args",t)}tap(e){if(!this.has("plugin"))throw new Error(`Cannot call .tap() on a plugin that has not yet been defined. Call ${this.type}('${this.name}').use() first.`);return this.set("args",e(this.get("args")||[])),this}set(e,t){if(e==="args"&&!Array.isArray(t))throw new Error("args must be an array of arguments");return super.set(e,t)}merge(e,t=[]){return"plugin"in e&&this.set("plugin",e.plugin),"args"in e&&this.set("args",e.args),super.merge(e,[...t,"args","plugin"])}toConfig(){let e=this.get("init"),t=this.get("plugin"),r=this.get("args"),n=null;if(t===void 0)throw new Error(`Invalid ${this.type} configuration: ${this.type}('${this.name}').use() was not called to specify the plugin`);typeof t=="string"&&(n=t,t=wt(n));let a=t.__expression?`(${t.__expression})`:t.name,o=e(t,r);return Object.defineProperties(o,{__pluginName:{value:this.name},__pluginType:{value:this.type},__pluginArgs:{value:r},__pluginConstructorName:{value:a},__pluginPath:{value:n}}),o}})});var $vt=H((jXu,_8i)=>{var eke=Lj(),S4=$De(),VPc=qvt();_8i.exports=class extends eke{constructor(e){super(e),this.alias=new eke(this),this.aliasFields=new S4(this),this.conditionNames=new S4(this),this.descriptionFiles=new S4(this),this.extensionAlias=new eke(this),this.extensions=new S4(this),this.mainFields=new S4(this),this.mainFiles=new S4(this),this.exportsFields=new S4(this),this.importsFields=new S4(this),this.restrictions=new S4(this),this.roots=new S4(this),this.modules=new S4(this),this.plugins=new eke(this),this.fallback=new eke(this),this.byDependency=new eke(this),this.extend(["cachePredicate","cacheWithContext","enforceExtension","symlinks","unsafeCache","useSyncFileSystemCalls","preferRelative","preferAbsolute"])}plugin(e){return this.plugins.getOrCompute(e,()=>new VPc(this,e,"resolve.plugin"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{alias:this.alias.entries(),aliasFields:this.aliasFields.values(),conditionNames:this.conditionNames.values(),descriptionFiles:this.descriptionFiles.values(),extensionAlias:this.extensionAlias.entries(),extensions:this.extensions.values(),mainFields:this.mainFields.values(),mainFiles:this.mainFiles.values(),modules:this.modules.values(),exportsFields:this.exportsFields.values(),importsFields:this.importsFields.values(),restrictions:this.restrictions.values(),roots:this.roots.values(),fallback:this.fallback.entries(),byDependency:this.byDependency.entries(),plugins:this.plugins.values().map(e=>e.toConfig())}))}merge(e,t=[]){let r=["alias","aliasFields","conditionNames","descriptionFiles","extensionAlias","extensions","mainFields","mainFiles","modules","exportsFields","importsFields","restrictions","roots","fallback","byDependency"];return!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"plugin"])}}});var b8i=H((qXu,y8i)=>{var PPc=$vt(),XVr=$De();y8i.exports=class extends PPc{constructor(e){super(e),this.modules=new XVr(this),this.moduleExtensions=new XVr(this),this.packageMains=new XVr(this)}toConfig(){return this.clean({modules:this.modules.values(),moduleExtensions:this.moduleExtensions.values(),packageMains:this.packageMains.values(),...super.toConfig()})}merge(e,t=[]){let r=["modules","moduleExtensions","packageMains"];return r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r])}}});var S8i=H((e4u,E8i)=>{var WPc=Lj();E8i.exports=class extends WPc{constructor(e){super(e),this.extend(["asyncChunks","auxiliaryComment","charset","chunkFilename","chunkLoadTimeout","chunkLoadingGlobal","chunkLoading","chunkFormat","enabledChunkLoadingTypes","crossOriginLoading","devtoolFallbackModuleFilenameTemplate","devtoolModuleFilenameTemplate","devtoolNamespace","filename","assetModuleFilename","globalObject","uniqueName","hashDigest","hashDigestLength","hashFunction","hashSalt","hotUpdateChunkFilename","hotUpdateGlobal","hotUpdateMainFilename","library","libraryExport","libraryTarget","importFunctionName","path","pathinfo","publicPath","scriptType","sourceMapFilename","sourcePrefix","strictModuleErrorHandling","strictModuleExceptionHandling","umdNamedDefine","workerChunkLoading","enabledLibraryTypes","environment","compareBeforeEmit","wasmLoading","enabledWasmLoadingTypes","iife","module","clean"])}}});var B8i=H((r4u,v8i)=>{var OPc=Lj(),MPc=$De();v8i.exports=class extends OPc{constructor(e){super(e),this.allowedHosts=new MPc(this),this.extend(["after","before","bonjour","clientLogLevel","compress","contentBase","contentBasePublicPath","disableHostCheck","filename","headers","historyApiFallback","host","hot","hotOnly","http2","https","index","injectClient","injectHot","inline","lazy","liveReload","mimeTypes","noInfo","onListening","open","openPage","overlay","pfx","pfxPassphrase","port","proxy","progress","public","publicPath","quiet","serveIndex","setup","socket","sockHost","sockPath","sockPort","staticOptions","stats","stdin","transportMode","useLocalIp","watchContentBase","watchOptions","writeToDisk"])}toConfig(){return this.clean({allowedHosts:this.allowedHosts.values(),...this.entries()||{}})}merge(e,t=[]){return!t.includes("allowedHosts")&&"allowedHosts"in e&&this.allowedHosts.merge(e.allowedHosts),super.merge(e,["allowedHosts"])}}});var T8i=H((i4u,w8i)=>{var HPc=YVr(),YPc=Lj(),QPc=zvt();w8i.exports=QPc(class extends YPc{constructor(e,t){super(e),this.name=t,this.extend(["loader","options"])}tap(e){return this.options(e(this.get("options"))),this}merge(e,t=[]){return!t.includes("loader")&&"loader"in e&&this.loader(e.loader),!t.includes("options")&&"options"in e&&this.options(HPc(this.store.get("options")||{},e.options)),super.merge(e,[...t,"loader","options"])}toConfig(){let e=this.clean(this.entries()||{});return Object.defineProperties(e,{__useName:{value:this.name},__ruleNames:{value:this.parent&&this.parent.names},__ruleTypes:{value:this.parent&&this.parent.ruleTypes}}),e}})});var k8i=H((o4u,D8i)=>{var eBt=Lj(),R8i=$De(),XPc=zvt(),JPc=T8i(),UPc=$vt();function N8i(e){return Array.isArray(e)?e:[e]}var tBt=XPc(class extends eBt{constructor(e,t,r="rule"){super(e),this.ruleName=t,this.names=[],this.ruleType=r,this.ruleTypes=[];let n=this;for(;n instanceof tBt;)this.names.unshift(n.ruleName),this.ruleTypes.unshift(n.ruleType),n=n.parent;this.uses=new eBt(this),this.include=new R8i(this),this.exclude=new R8i(this),this.rules=new eBt(this),this.oneOfs=new eBt(this),this.resolve=new UPc(this),this.resolve.extend(["fullySpecified"]),this.extend(["enforce","issuer","issuerLayer","layer","mimetype","parser","generator","resource","resourceQuery","sideEffects","test","type"])}use(e){return this.uses.getOrCompute(e,()=>new JPc(this,e))}rule(e){return this.rules.getOrCompute(e,()=>new tBt(this,e,"rule"))}oneOf(e){return this.oneOfs.getOrCompute(e,()=>new tBt(this,e,"oneOf"))}pre(){return this.enforce("pre")}post(){return this.enforce("post")}toConfig(){let e=this.clean(Object.assign(this.entries()||{},{include:this.include.values(),exclude:this.exclude.values(),rules:this.rules.values().map(t=>t.toConfig()),oneOf:this.oneOfs.values().map(t=>t.toConfig()),use:this.uses.values().map(t=>t.toConfig()),resolve:this.resolve.toConfig()}));return Object.defineProperties(e,{__ruleNames:{value:this.names},__ruleTypes:{value:this.ruleTypes}}),e}merge(e,t=[]){return!t.includes("include")&&"include"in e&&this.include.merge(N8i(e.include)),!t.includes("exclude")&&"exclude"in e&&this.exclude.merge(N8i(e.exclude)),!t.includes("use")&&"use"in e&&Object.keys(e.use).forEach(r=>this.use(r).merge(e.use[r])),!t.includes("rules")&&"rules"in e&&Object.keys(e.rules).forEach(r=>this.rule(r).merge(e.rules[r])),!t.includes("oneOf")&&"oneOf"in e&&Object.keys(e.oneOf).forEach(r=>this.oneOf(r).merge(e.oneOf[r])),!t.includes("resolve")&&"resolve"in e&&this.resolve.merge(e.resolve),!t.includes("test")&&"test"in e&&this.test(e.test instanceof RegExp||typeof e.test=="function"?e.test:new RegExp(e.test)),super.merge(e,[...t,"include","exclude","use","rules","oneOf","resolve","test"])}});D8i.exports=tBt});var F8i=H((c4u,G8i)=>{var $Ke=Lj(),x8i=k8i();G8i.exports=class extends $Ke{constructor(e){super(e),this.rules=new $Ke(this),this.defaultRules=new $Ke(this),this.generator=new $Ke(this),this.parser=new $Ke(this),this.extend(["noParse","unsafeCache","wrappedContextCritical","exprContextRegExp","wrappedContextRecursive","strictExportPresence","wrappedContextRegExp"])}defaultRule(e){return this.defaultRules.getOrCompute(e,()=>new x8i(this,e,"defaultRule"))}rule(e){return this.rules.getOrCompute(e,()=>new x8i(this,e,"rule"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{defaultRules:this.defaultRules.values().map(e=>e.toConfig()),generator:this.generator.entries(),parser:this.parser.entries(),rules:this.rules.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("rule")&&"rule"in e&&Object.keys(e.rule).forEach(r=>this.rule(r).merge(e.rule[r])),!t.includes("defaultRule")&&"defaultRule"in e&&Object.keys(e.defaultRule).forEach(r=>this.defaultRule(r).merge(e.defaultRule[r])),super.merge(e,["rule","defaultRule"])}}});var V8i=H((u4u,L8i)=>{var Z8i=Lj(),KPc=jvt(),jPc=qvt();L8i.exports=class extends Z8i{constructor(e){super(e),this.minimizers=new Z8i(this),this.splitChunks=new KPc(this),this.extend(["minimize","runtimeChunk","emitOnErrors","moduleIds","chunkIds","nodeEnv","mangleWasmImports","removeAvailableModules","removeEmptyChunks","mergeDuplicateChunks","flagIncludedChunks","providedExports","usedExports","concatenateModules","sideEffects","portableRecords","mangleExports","innerGraph","realContentHash"])}minimizer(e){if(Array.isArray(e))throw new Error("optimization.minimizer() no longer supports being passed an array. Either switch to the new syntax (https://github.com/neutrinojs/webpack-chain#config-optimization-minimizers-adding) or downgrade to webpack-chain 4. If using Vue this likely means a Vue plugin has not yet been updated to support Vue CLI 4+.");return this.minimizers.getOrCompute(e,()=>new jPc(this,e,"optimization.minimizer"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{splitChunks:this.splitChunks.entries(),minimizer:this.minimizers.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("minimizer")&&"minimizer"in e&&Object.keys(e.minimizer).forEach(r=>this.minimizer(r).merge(e.minimizer[r])),super.merge(e,[...t,"minimizer"])}}});var W8i=H((A4u,P8i)=>{var zPc=jvt();P8i.exports=class extends zPc{constructor(e){super(e),this.extend(["assetFilter","hints","maxAssetSize","maxEntrypointSize"])}}});var e8e=H(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});wO.stringifyPath=wO.quoteKey=wO.isValidVariableName=wO.IS_VALID_IDENTIFIER=wO.quoteString=void 0;var qPc=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,$Pc=new Map([["\b","\\b"],[" ","\\t"],[` -`,"\\n"],["\f","\\f"],["\r","\\r"],["'","\\'"],['"','\\"'],["\\","\\\\"]]);function eWc(e){return $Pc.get(e)||`\\u${`0000${e.charCodeAt(0).toString(16)}`.slice(-4)}`}function tWc(e){return`'${e.replace(qPc,eWc)}'`}wO.quoteString=tWc;var rWc=new Set("break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "));wO.IS_VALID_IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function JVr(e){return typeof e=="string"&&!rWc.has(e)&&wO.IS_VALID_IDENTIFIER.test(e)}wO.isValidVariableName=JVr;function nWc(e,t){return JVr(e)?e:t(e)}wO.quoteKey=nWc;function iWc(e,t){let r="";for(let n of e)JVr(n)?r+=`.${n}`:r+=`[${t(n)}]`;return r}wO.stringifyPath=iWc});var UVr=H(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.FunctionParser=v4.dedentFunction=v4.functionToString=v4.USED_METHOD_KEY=void 0;var O8i=e8e(),sWc={" "(){}}[" "].toString().charAt(0)==='"',oWc={Function:"function ",GeneratorFunction:"function* ",AsyncFunction:"async function ",AsyncGeneratorFunction:"async function* "},aWc={Function:"",GeneratorFunction:"*",AsyncFunction:"async ",AsyncGeneratorFunction:"async *"},cWc=new Set("case delete else in instanceof new return throw typeof void , ; : + - ! ~ & | ^ * / % < > ? =".split(" "));v4.USED_METHOD_KEY=new WeakSet;var lWc=(e,t,r,n)=>{let a=typeof n=="string"?n:void 0;return a!==void 0&&v4.USED_METHOD_KEY.add(e),new rBt(e,t,r,a).stringify()};v4.functionToString=lWc;function M8i(e){let t;for(let r of e.split(` +`)},o.prototype.displayStateStack=function(f,I){for(var C,b=0,E=0;E0&&I.push(" ^ "+b+" more lines identical to this"),b=0,I.push(" "+B)),C=B}},o.prototype.getSymbolDisplay=function(f){return l(f)},o.prototype.buildFirstStateStack=function(f,I){if(I.indexOf(f)!==-1)return null;if(f.wantedBy.length===0)return[f];var C=f.wantedBy[0],b=[f].concat(I),E=this.buildFirstStateStack(C,b);return E===null?null:[f].concat(E)},o.prototype.save=function(){var f=this.table[this.current];return f.lexerState=this.lexerState,f},o.prototype.restore=function(f){var I=f.index;this.current=I,this.table[I]=f,this.table.splice(I+1),this.lexerState=f.lexerState,this.results=this.finish()},o.prototype.rewind=function(f){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[f])},o.prototype.finish=function(){var f=[],I=this.grammar.start,C=this.table[this.table.length-1];return C.states.forEach(function(b){b.rule.name===I&&b.dot===b.rule.symbols.length&&b.reference===0&&b.data!==o.fail&&f.push(b)}),f.map(function(b){return b.data})};function l(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return"character matching "+f;if(f.type)return f.type+" token";if(f.test)return"token matching "+String(f.test);throw new Error("Unknown symbol type: "+f)}}function A(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return f.toString();if(f.type)return"%"+f.type;if(f.test)return"<"+String(f.test)+">";throw new Error("Unknown symbol type: "+f)}}return{Parser:o,Grammar:n,Rule:e}})});var YVr=H((MVr,HVr)=>{(function(e,t){typeof MVr=="object"&&typeof HVr<"u"?HVr.exports=t():typeof define=="function"&&define.amd?define(t):e.deepmerge=t()})(MVr,function(){"use strict";var e=function(N){return t(N)&&!r(N)};function t(E){return!!E&&typeof E=="object"}function r(E){var N=Object.prototype.toString.call(E);return N==="[object RegExp]"||N==="[object Date]"||o(E)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function o(E){return E.$$typeof===a}function l(E){return Array.isArray(E)?[]:{}}function A(E,N){var B=N&&N.clone===!0;return B&&e(E)?C(l(E),E,N):E}function f(E,N,B){var F=E.slice();return N.forEach(function(Q,X){typeof F[X]>"u"?F[X]=A(Q,B):e(Q)?F[X]=C(E[X],Q,B):E.indexOf(Q)===-1&&F.push(A(Q,B))}),F}function I(E,N,B){var F={};return e(E)&&Object.keys(E).forEach(function(Q){F[Q]=A(E[Q],B)}),Object.keys(N).forEach(function(Q){!e(N[Q])||!E[Q]?F[Q]=A(N[Q],B):F[Q]=C(E[Q],N[Q],B)}),F}function C(E,N,B){var F=Array.isArray(N),Q=Array.isArray(E),X=B||{arrayMerge:f},ae=F===Q;if(ae)if(F){var ne=X.arrayMerge||f;return ne(E,N,B)}else return I(E,N,B);else return A(N,B)}C.all=function(N,B){if(!Array.isArray(N)||N.length<2)throw new Error("first argument should be an array with at least two elements");return N.reduce(function(F,Q){return C(F,Q,B)})};var b=C;return b})});var QVr=H((xXu,a8i)=>{var TPc=YVr();a8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Map}extend(r){return this.shorthands=r,r.forEach(n=>{this[n]=a=>this.set(n,a)}),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}order(){let r=[...this.store].reduce((o,[l,A])=>(o[l]=A,o),{}),n=Object.keys(r),a=[...n];return n.forEach(o=>{if(!r[o])return;let{__before:l,__after:A}=r[o];l&&a.includes(l)?(a.splice(a.indexOf(o),1),a.splice(a.indexOf(l),0,o)):A&&a.includes(A)&&(a.splice(a.indexOf(o),1),a.splice(a.indexOf(A)+1,0,o))}),{entries:r,order:a}}entries(){let{entries:r,order:n}=this.order();if(n.length)return r}values(){let{entries:r,order:n}=this.order();return n.map(a=>r[a])}get(r){return this.store.get(r)}getOrCompute(r,n){return this.has(r)||this.set(r,n()),this.get(r)}has(r){return this.store.has(r)}set(r,n){return this.store.set(r,n),this}merge(r,n=[]){return Object.keys(r).forEach(a=>{if(n.includes(a))return;let o=r[a];!Array.isArray(o)&&typeof o!="object"||o===null||!this.has(a)?this.set(a,o):this.set(a,TPc(this.get(a),o))}),this}clean(r){return Object.keys(r).reduce((n,a)=>{let o=r[a];return o===void 0||Array.isArray(o)&&!o.length||Object.prototype.toString.call(o)==="[object Object]"&&!Object.keys(o).length||(n[a]=o),n},{})}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var Kvt=H((FXu,c8i)=>{c8i.exports=function(t){return class extends t{constructor(r){super(),this.parent=r}batch(r){return r(this),this}end(){return this.parent}}}});var Lj=H((LXu,l8i)=>{var RPc=QVr(),NPc=Kvt();l8i.exports=RPc(NPc(Object))});var g8i=H((VXu,u8i)=>{u8i.exports=class extends Function{constructor(){return super(),new Proxy(this,{apply:(e,t,r)=>e.classCall(...r)})}classCall(){throw new Error("not implemented")}}});var d8i=H((WXu,A8i)=>{A8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.value=void 0,this.useMap=!0}set(...r){return this.useMap=!0,this.value=void 0,super.set(...r)}clear(){return this.value=void 0,super.clear()}classCall(r){return this.clear(),this.useMap=!1,this.value=r,this.parent}entries(){return this.useMap?super.entries():this.value}values(){return this.useMap?super.values():this.value}}}});var jvt=H((MXu,p8i)=>{var DPc=g8i(),kPc=QVr(),xPc=Kvt(),GPc=d8i();p8i.exports=GPc(kPc(xPc(DPc)))});var I8i=H((HXu,f8i)=>{f8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Set}add(r){return this.store.add(r),this}prepend(r){return this.store=new Set([r,...this.store]),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}values(){return[...this.store]}has(r){return this.store.has(r)}merge(r){return this.store=new Set([...this.store,...r]),this}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var $De=H((QXu,h8i)=>{var FPc=I8i(),ZPc=Kvt();h8i.exports=FPc(ZPc(Object))});var zvt=H((XXu,m8i)=>{m8i.exports=e=>class extends e{before(t){if(this.__after)throw new Error(`Unable to set .before(${JSON.stringify(t)}) with existing value for .after()`);return this.__before=t,this}after(t){if(this.__before)throw new Error(`Unable to set .after(${JSON.stringify(t)}) with existing value for .before()`);return this.__after=t,this}merge(t,r=[]){return t.before&&this.before(t.before),t.after&&this.after(t.after),super.merge(t,[...r,"before","after"])}}});var qvt=H((UXu,C8i)=>{var LPc=Lj(),VPc=zvt();C8i.exports=VPc(class extends LPc{constructor(e,t,r="plugin"){super(e),this.name=t,this.type=r,this.extend(["init"]),this.init((n,a=[])=>typeof n=="function"?new n(...a):n)}use(e,t=[]){return this.set("plugin",e).set("args",t)}tap(e){if(!this.has("plugin"))throw new Error(`Cannot call .tap() on a plugin that has not yet been defined. Call ${this.type}('${this.name}').use() first.`);return this.set("args",e(this.get("args")||[])),this}set(e,t){if(e==="args"&&!Array.isArray(t))throw new Error("args must be an array of arguments");return super.set(e,t)}merge(e,t=[]){return"plugin"in e&&this.set("plugin",e.plugin),"args"in e&&this.set("args",e.args),super.merge(e,[...t,"args","plugin"])}toConfig(){let e=this.get("init"),t=this.get("plugin"),r=this.get("args"),n=null;if(t===void 0)throw new Error(`Invalid ${this.type} configuration: ${this.type}('${this.name}').use() was not called to specify the plugin`);typeof t=="string"&&(n=t,t=wt(n));let a=t.__expression?`(${t.__expression})`:t.name,o=e(t,r);return Object.defineProperties(o,{__pluginName:{value:this.name},__pluginType:{value:this.type},__pluginArgs:{value:r},__pluginConstructorName:{value:a},__pluginPath:{value:n}}),o}})});var $vt=H((zXu,_8i)=>{var eke=Lj(),S4=$De(),PPc=qvt();_8i.exports=class extends eke{constructor(e){super(e),this.alias=new eke(this),this.aliasFields=new S4(this),this.conditionNames=new S4(this),this.descriptionFiles=new S4(this),this.extensionAlias=new eke(this),this.extensions=new S4(this),this.mainFields=new S4(this),this.mainFiles=new S4(this),this.exportsFields=new S4(this),this.importsFields=new S4(this),this.restrictions=new S4(this),this.roots=new S4(this),this.modules=new S4(this),this.plugins=new eke(this),this.fallback=new eke(this),this.byDependency=new eke(this),this.extend(["cachePredicate","cacheWithContext","enforceExtension","symlinks","unsafeCache","useSyncFileSystemCalls","preferRelative","preferAbsolute"])}plugin(e){return this.plugins.getOrCompute(e,()=>new PPc(this,e,"resolve.plugin"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{alias:this.alias.entries(),aliasFields:this.aliasFields.values(),conditionNames:this.conditionNames.values(),descriptionFiles:this.descriptionFiles.values(),extensionAlias:this.extensionAlias.entries(),extensions:this.extensions.values(),mainFields:this.mainFields.values(),mainFiles:this.mainFiles.values(),modules:this.modules.values(),exportsFields:this.exportsFields.values(),importsFields:this.importsFields.values(),restrictions:this.restrictions.values(),roots:this.roots.values(),fallback:this.fallback.entries(),byDependency:this.byDependency.entries(),plugins:this.plugins.values().map(e=>e.toConfig())}))}merge(e,t=[]){let r=["alias","aliasFields","conditionNames","descriptionFiles","extensionAlias","extensions","mainFields","mainFiles","modules","exportsFields","importsFields","restrictions","roots","fallback","byDependency"];return!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"plugin"])}}});var b8i=H(($Xu,y8i)=>{var WPc=$vt(),XVr=$De();y8i.exports=class extends WPc{constructor(e){super(e),this.modules=new XVr(this),this.moduleExtensions=new XVr(this),this.packageMains=new XVr(this)}toConfig(){return this.clean({modules:this.modules.values(),moduleExtensions:this.moduleExtensions.values(),packageMains:this.packageMains.values(),...super.toConfig()})}merge(e,t=[]){let r=["modules","moduleExtensions","packageMains"];return r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r])}}});var S8i=H((t4u,E8i)=>{var OPc=Lj();E8i.exports=class extends OPc{constructor(e){super(e),this.extend(["asyncChunks","auxiliaryComment","charset","chunkFilename","chunkLoadTimeout","chunkLoadingGlobal","chunkLoading","chunkFormat","enabledChunkLoadingTypes","crossOriginLoading","devtoolFallbackModuleFilenameTemplate","devtoolModuleFilenameTemplate","devtoolNamespace","filename","assetModuleFilename","globalObject","uniqueName","hashDigest","hashDigestLength","hashFunction","hashSalt","hotUpdateChunkFilename","hotUpdateGlobal","hotUpdateMainFilename","library","libraryExport","libraryTarget","importFunctionName","path","pathinfo","publicPath","scriptType","sourceMapFilename","sourcePrefix","strictModuleErrorHandling","strictModuleExceptionHandling","umdNamedDefine","workerChunkLoading","enabledLibraryTypes","environment","compareBeforeEmit","wasmLoading","enabledWasmLoadingTypes","iife","module","clean"])}}});var B8i=H((n4u,v8i)=>{var MPc=Lj(),HPc=$De();v8i.exports=class extends MPc{constructor(e){super(e),this.allowedHosts=new HPc(this),this.extend(["after","before","bonjour","clientLogLevel","compress","contentBase","contentBasePublicPath","disableHostCheck","filename","headers","historyApiFallback","host","hot","hotOnly","http2","https","index","injectClient","injectHot","inline","lazy","liveReload","mimeTypes","noInfo","onListening","open","openPage","overlay","pfx","pfxPassphrase","port","proxy","progress","public","publicPath","quiet","serveIndex","setup","socket","sockHost","sockPath","sockPort","staticOptions","stats","stdin","transportMode","useLocalIp","watchContentBase","watchOptions","writeToDisk"])}toConfig(){return this.clean({allowedHosts:this.allowedHosts.values(),...this.entries()||{}})}merge(e,t=[]){return!t.includes("allowedHosts")&&"allowedHosts"in e&&this.allowedHosts.merge(e.allowedHosts),super.merge(e,["allowedHosts"])}}});var T8i=H((s4u,w8i)=>{var YPc=YVr(),QPc=Lj(),XPc=zvt();w8i.exports=XPc(class extends QPc{constructor(e,t){super(e),this.name=t,this.extend(["loader","options"])}tap(e){return this.options(e(this.get("options"))),this}merge(e,t=[]){return!t.includes("loader")&&"loader"in e&&this.loader(e.loader),!t.includes("options")&&"options"in e&&this.options(YPc(this.store.get("options")||{},e.options)),super.merge(e,[...t,"loader","options"])}toConfig(){let e=this.clean(this.entries()||{});return Object.defineProperties(e,{__useName:{value:this.name},__ruleNames:{value:this.parent&&this.parent.names},__ruleTypes:{value:this.parent&&this.parent.ruleTypes}}),e}})});var k8i=H((a4u,D8i)=>{var eBt=Lj(),R8i=$De(),JPc=zvt(),UPc=T8i(),KPc=$vt();function N8i(e){return Array.isArray(e)?e:[e]}var tBt=JPc(class extends eBt{constructor(e,t,r="rule"){super(e),this.ruleName=t,this.names=[],this.ruleType=r,this.ruleTypes=[];let n=this;for(;n instanceof tBt;)this.names.unshift(n.ruleName),this.ruleTypes.unshift(n.ruleType),n=n.parent;this.uses=new eBt(this),this.include=new R8i(this),this.exclude=new R8i(this),this.rules=new eBt(this),this.oneOfs=new eBt(this),this.resolve=new KPc(this),this.resolve.extend(["fullySpecified"]),this.extend(["enforce","issuer","issuerLayer","layer","mimetype","parser","generator","resource","resourceQuery","sideEffects","test","type"])}use(e){return this.uses.getOrCompute(e,()=>new UPc(this,e))}rule(e){return this.rules.getOrCompute(e,()=>new tBt(this,e,"rule"))}oneOf(e){return this.oneOfs.getOrCompute(e,()=>new tBt(this,e,"oneOf"))}pre(){return this.enforce("pre")}post(){return this.enforce("post")}toConfig(){let e=this.clean(Object.assign(this.entries()||{},{include:this.include.values(),exclude:this.exclude.values(),rules:this.rules.values().map(t=>t.toConfig()),oneOf:this.oneOfs.values().map(t=>t.toConfig()),use:this.uses.values().map(t=>t.toConfig()),resolve:this.resolve.toConfig()}));return Object.defineProperties(e,{__ruleNames:{value:this.names},__ruleTypes:{value:this.ruleTypes}}),e}merge(e,t=[]){return!t.includes("include")&&"include"in e&&this.include.merge(N8i(e.include)),!t.includes("exclude")&&"exclude"in e&&this.exclude.merge(N8i(e.exclude)),!t.includes("use")&&"use"in e&&Object.keys(e.use).forEach(r=>this.use(r).merge(e.use[r])),!t.includes("rules")&&"rules"in e&&Object.keys(e.rules).forEach(r=>this.rule(r).merge(e.rules[r])),!t.includes("oneOf")&&"oneOf"in e&&Object.keys(e.oneOf).forEach(r=>this.oneOf(r).merge(e.oneOf[r])),!t.includes("resolve")&&"resolve"in e&&this.resolve.merge(e.resolve),!t.includes("test")&&"test"in e&&this.test(e.test instanceof RegExp||typeof e.test=="function"?e.test:new RegExp(e.test)),super.merge(e,[...t,"include","exclude","use","rules","oneOf","resolve","test"])}});D8i.exports=tBt});var F8i=H((l4u,G8i)=>{var $Ke=Lj(),x8i=k8i();G8i.exports=class extends $Ke{constructor(e){super(e),this.rules=new $Ke(this),this.defaultRules=new $Ke(this),this.generator=new $Ke(this),this.parser=new $Ke(this),this.extend(["noParse","unsafeCache","wrappedContextCritical","exprContextRegExp","wrappedContextRecursive","strictExportPresence","wrappedContextRegExp"])}defaultRule(e){return this.defaultRules.getOrCompute(e,()=>new x8i(this,e,"defaultRule"))}rule(e){return this.rules.getOrCompute(e,()=>new x8i(this,e,"rule"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{defaultRules:this.defaultRules.values().map(e=>e.toConfig()),generator:this.generator.entries(),parser:this.parser.entries(),rules:this.rules.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("rule")&&"rule"in e&&Object.keys(e.rule).forEach(r=>this.rule(r).merge(e.rule[r])),!t.includes("defaultRule")&&"defaultRule"in e&&Object.keys(e.defaultRule).forEach(r=>this.defaultRule(r).merge(e.defaultRule[r])),super.merge(e,["rule","defaultRule"])}}});var V8i=H((g4u,L8i)=>{var Z8i=Lj(),jPc=jvt(),zPc=qvt();L8i.exports=class extends Z8i{constructor(e){super(e),this.minimizers=new Z8i(this),this.splitChunks=new jPc(this),this.extend(["minimize","runtimeChunk","emitOnErrors","moduleIds","chunkIds","nodeEnv","mangleWasmImports","removeAvailableModules","removeEmptyChunks","mergeDuplicateChunks","flagIncludedChunks","providedExports","usedExports","concatenateModules","sideEffects","portableRecords","mangleExports","innerGraph","realContentHash"])}minimizer(e){if(Array.isArray(e))throw new Error("optimization.minimizer() no longer supports being passed an array. Either switch to the new syntax (https://github.com/neutrinojs/webpack-chain#config-optimization-minimizers-adding) or downgrade to webpack-chain 4. If using Vue this likely means a Vue plugin has not yet been updated to support Vue CLI 4+.");return this.minimizers.getOrCompute(e,()=>new zPc(this,e,"optimization.minimizer"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{splitChunks:this.splitChunks.entries(),minimizer:this.minimizers.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("minimizer")&&"minimizer"in e&&Object.keys(e.minimizer).forEach(r=>this.minimizer(r).merge(e.minimizer[r])),super.merge(e,[...t,"minimizer"])}}});var W8i=H((d4u,P8i)=>{var qPc=jvt();P8i.exports=class extends qPc{constructor(e){super(e),this.extend(["assetFilter","hints","maxAssetSize","maxEntrypointSize"])}}});var e8e=H(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});wO.stringifyPath=wO.quoteKey=wO.isValidVariableName=wO.IS_VALID_IDENTIFIER=wO.quoteString=void 0;var $Pc=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,eWc=new Map([["\b","\\b"],[" ","\\t"],[` +`,"\\n"],["\f","\\f"],["\r","\\r"],["'","\\'"],['"','\\"'],["\\","\\\\"]]);function tWc(e){return eWc.get(e)||`\\u${`0000${e.charCodeAt(0).toString(16)}`.slice(-4)}`}function rWc(e){return`'${e.replace($Pc,tWc)}'`}wO.quoteString=rWc;var nWc=new Set("break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "));wO.IS_VALID_IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function JVr(e){return typeof e=="string"&&!nWc.has(e)&&wO.IS_VALID_IDENTIFIER.test(e)}wO.isValidVariableName=JVr;function iWc(e,t){return JVr(e)?e:t(e)}wO.quoteKey=iWc;function sWc(e,t){let r="";for(let n of e)JVr(n)?r+=`.${n}`:r+=`[${t(n)}]`;return r}wO.stringifyPath=sWc});var UVr=H(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.FunctionParser=v4.dedentFunction=v4.functionToString=v4.USED_METHOD_KEY=void 0;var O8i=e8e(),oWc={" "(){}}[" "].toString().charAt(0)==='"',aWc={Function:"function ",GeneratorFunction:"function* ",AsyncFunction:"async function ",AsyncGeneratorFunction:"async function* "},cWc={Function:"",GeneratorFunction:"*",AsyncFunction:"async ",AsyncGeneratorFunction:"async *"},lWc=new Set("case delete else in instanceof new return throw typeof void , ; : + - ! ~ & | ^ * / % < > ? =".split(" "));v4.USED_METHOD_KEY=new WeakSet;var uWc=(e,t,r,n)=>{let a=typeof n=="string"?n:void 0;return a!==void 0&&v4.USED_METHOD_KEY.add(e),new rBt(e,t,r,a).stringify()};v4.functionToString=uWc;function M8i(e){let t;for(let r of e.split(` `).slice(1)){let n=/^[\s\t]+/.exec(r);if(!n)return e;let[a]=n;(t===void 0||a.length")return this.keyPrefix+this.fnString;this.pos=n;case'"':case"'":case"[]":return this.getPrefix()+this.fnString.substr(this.pos)}}}tryStrippingName(){if(sWc)return;let t=this.pos,r=this.fnString.substr(this.pos,this.fn.name.length);if(r===this.fn.name&&(this.pos+=r.length,this.consumeSyntax()==="()"&&this.consumeSyntax()==="{}"&&this.pos===this.fnString.length))return(this.isMethodCandidate||!O8i.isValidVariableName(r))&&(t+=r.length),this.getPrefix()+this.fnString.substr(t);this.pos=t}tryParsePrefixTokens(){let t=this.pos;switch(this.hadKeyword=!1,this.fnType){case"AsyncFunction":if(this.consumeSyntax()!=="async")return!1;t=this.pos;case"Function":return this.consumeSyntax()==="function"?this.hadKeyword=!0:this.pos=t,!0;case"AsyncGeneratorFunction":if(this.consumeSyntax()!=="async")return!1;case"GeneratorFunction":let r=this.consumeSyntax();return r==="function"&&(r=this.consumeSyntax(),this.hadKeyword=!0),r==="*"}}consumeSyntax(t){let r=this.consumeMatch(/^(?:([A-Za-z_0-9$\xA0-\uFFFF]+)|=>|\+\+|\-\-|.)/);if(!r)return;let[n,a]=r;if(this.consumeWhitespace(),a)return t||a;switch(n){case"(":return this.consumeSyntaxUntil("(",")");case"[":return this.consumeSyntaxUntil("[","]");case"{":return this.consumeSyntaxUntil("{","}");case"`":return this.consumeTemplate();case'"':return this.consumeRegExp(/^(?:[^\\"]|\\.)*"/,'"');case"'":return this.consumeRegExp(/^(?:[^\\']|\\.)*'/,"'")}return n}consumeSyntaxUntil(t,r){let n=!0;for(;;){let a=this.consumeSyntax();if(a===r)return t+r;if(!a||a===")"||a==="]"||a==="}")return;a==="/"&&n&&this.consumeMatch(/^(?:\\.|[^\\\/\n[]|\[(?:\\.|[^\]])*\])+\/[a-z]*/)?(n=!1,this.consumeWhitespace()):n=cWc.has(a)}}consumeMatch(t){let r=t.exec(this.fnString.substr(this.pos));return r&&(this.pos+=r[0].length),r}consumeRegExp(t,r){let n=t.exec(this.fnString.substr(this.pos));if(n)return this.pos+=n[0].length,this.consumeWhitespace(),r}consumeTemplate(){for(;;){if(this.consumeMatch(/^(?:[^`$\\]|\\.|\$(?!{))*/),this.fnString[this.pos]==="`")return this.pos++,this.consumeWhitespace(),"`";if(!(this.fnString.substr(this.pos,2)==="${"&&(this.pos+=2,this.consumeWhitespace(),this.consumeSyntaxUntil("{","}"))))return}}consumeWhitespace(){this.consumeMatch(/^(?:\s|\/\/.*|\/\*[^]*?\*\/)*/)}};v4.FunctionParser=rBt});var H8i=H(nBt=>{"use strict";Object.defineProperty(nBt,"__esModule",{value:!0});nBt.arrayToString=void 0;var uWc=(e,t,r)=>{let n=e.map(function(o,l){let A=r(o,l);return A===void 0?String(A):t+A.split(` +`):e}v4.dedentFunction=M8i;var rBt=class{constructor(t,r,n,a){this.fn=t,this.indent=r,this.next=n,this.key=a,this.pos=0,this.hadKeyword=!1,this.fnString=Function.prototype.toString.call(t),this.fnType=t.constructor.name,this.keyQuote=a===void 0?"":O8i.quoteKey(a,n),this.keyPrefix=a===void 0?"":`${this.keyQuote}:${r?" ":""}`,this.isMethodCandidate=a===void 0?!1:this.fn.name===""||this.fn.name===a}stringify(){let t=this.tryParse();return t?M8i(t):`${this.keyPrefix}void ${this.next(this.fnString)}`}getPrefix(){return this.isMethodCandidate&&!this.hadKeyword?cWc[this.fnType]+this.keyQuote:this.keyPrefix+aWc[this.fnType]}tryParse(){if(this.fnString[this.fnString.length-1]!=="}")return this.keyPrefix+this.fnString;if(this.fn.name){let r=this.tryStrippingName();if(r)return r}let t=this.pos;if(this.consumeSyntax()==="class")return this.fnString;if(this.pos=t,this.tryParsePrefixTokens()){let r=this.tryStrippingName();if(r)return r;let n=this.pos;switch(this.consumeSyntax("WORD_LIKE")){case"WORD_LIKE":this.isMethodCandidate&&!this.hadKeyword&&(n=this.pos);case"()":if(this.fnString.substr(this.pos,2)==="=>")return this.keyPrefix+this.fnString;this.pos=n;case'"':case"'":case"[]":return this.getPrefix()+this.fnString.substr(this.pos)}}}tryStrippingName(){if(oWc)return;let t=this.pos,r=this.fnString.substr(this.pos,this.fn.name.length);if(r===this.fn.name&&(this.pos+=r.length,this.consumeSyntax()==="()"&&this.consumeSyntax()==="{}"&&this.pos===this.fnString.length))return(this.isMethodCandidate||!O8i.isValidVariableName(r))&&(t+=r.length),this.getPrefix()+this.fnString.substr(t);this.pos=t}tryParsePrefixTokens(){let t=this.pos;switch(this.hadKeyword=!1,this.fnType){case"AsyncFunction":if(this.consumeSyntax()!=="async")return!1;t=this.pos;case"Function":return this.consumeSyntax()==="function"?this.hadKeyword=!0:this.pos=t,!0;case"AsyncGeneratorFunction":if(this.consumeSyntax()!=="async")return!1;case"GeneratorFunction":let r=this.consumeSyntax();return r==="function"&&(r=this.consumeSyntax(),this.hadKeyword=!0),r==="*"}}consumeSyntax(t){let r=this.consumeMatch(/^(?:([A-Za-z_0-9$\xA0-\uFFFF]+)|=>|\+\+|\-\-|.)/);if(!r)return;let[n,a]=r;if(this.consumeWhitespace(),a)return t||a;switch(n){case"(":return this.consumeSyntaxUntil("(",")");case"[":return this.consumeSyntaxUntil("[","]");case"{":return this.consumeSyntaxUntil("{","}");case"`":return this.consumeTemplate();case'"':return this.consumeRegExp(/^(?:[^\\"]|\\.)*"/,'"');case"'":return this.consumeRegExp(/^(?:[^\\']|\\.)*'/,"'")}return n}consumeSyntaxUntil(t,r){let n=!0;for(;;){let a=this.consumeSyntax();if(a===r)return t+r;if(!a||a===")"||a==="]"||a==="}")return;a==="/"&&n&&this.consumeMatch(/^(?:\\.|[^\\\/\n[]|\[(?:\\.|[^\]])*\])+\/[a-z]*/)?(n=!1,this.consumeWhitespace()):n=lWc.has(a)}}consumeMatch(t){let r=t.exec(this.fnString.substr(this.pos));return r&&(this.pos+=r[0].length),r}consumeRegExp(t,r){let n=t.exec(this.fnString.substr(this.pos));if(n)return this.pos+=n[0].length,this.consumeWhitespace(),r}consumeTemplate(){for(;;){if(this.consumeMatch(/^(?:[^`$\\]|\\.|\$(?!{))*/),this.fnString[this.pos]==="`")return this.pos++,this.consumeWhitespace(),"`";if(!(this.fnString.substr(this.pos,2)==="${"&&(this.pos+=2,this.consumeWhitespace(),this.consumeSyntaxUntil("{","}"))))return}}consumeWhitespace(){this.consumeMatch(/^(?:\s|\/\/.*|\/\*[^]*?\*\/)*/)}};v4.FunctionParser=rBt});var H8i=H(nBt=>{"use strict";Object.defineProperty(nBt,"__esModule",{value:!0});nBt.arrayToString=void 0;var gWc=(e,t,r)=>{let n=e.map(function(o,l){let A=r(o,l);return A===void 0?String(A):t+A.split(` `).join(` ${t}`)}).join(t?`, `:","),a=t&&n?` -`:"";return`[${a}${n}${a}]`};nBt.arrayToString=uWc});var Y8i=H(iBt=>{"use strict";Object.defineProperty(iBt,"__esModule",{value:!0});iBt.objectToString=void 0;var gWc=e8e(),AWc=UVr(),dWc=H8i(),pWc=(e,t,r,n)=>{if(typeof Buffer=="function"&&Buffer.isBuffer(e))return`Buffer.from(${r(e.toString("base64"))}, 'base64')`;if(typeof global=="object"&&e===global)return KVr(e,t,r,n);let a=IWc[Object.prototype.toString.call(e)];return a?a(e,t,r,n):void 0};iBt.objectToString=pWc;var fWc=(e,t,r,n)=>{let a=t?` +`:"";return`[${a}${n}${a}]`};nBt.arrayToString=gWc});var Y8i=H(iBt=>{"use strict";Object.defineProperty(iBt,"__esModule",{value:!0});iBt.objectToString=void 0;var AWc=e8e(),dWc=UVr(),pWc=H8i(),fWc=(e,t,r,n)=>{if(typeof Buffer=="function"&&Buffer.isBuffer(e))return`Buffer.from(${r(e.toString("base64"))}, 'base64')`;if(typeof global=="object"&&e===global)return KVr(e,t,r,n);let a=hWc[Object.prototype.toString.call(e)];return a?a(e,t,r,n):void 0};iBt.objectToString=fWc;var IWc=(e,t,r,n)=>{let a=t?` `:"",o=t?" ":"",l=Object.keys(e).reduce(function(A,f){let I=e[f],C=r(I,f);if(C===void 0)return A;let b=C.split(` `).join(` -${t}`);return AWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${gWc.quoteKey(f,r)}:${o}${b}`),A)},[]).join(`,${a}`);return l===""?"{}":`{${a}${l}${a}}`},KVr=(e,t,r)=>`Function(${r("return this")})()`,IWc={"[object Array]":dWc.arrayToString,"[object Object]":fWc,"[object Error]":(e,t,r)=>`new Error(${r(e.message)})`,"[object Date]":e=>`new Date(${e.getTime()})`,"[object String]":(e,t,r)=>`new String(${r(e.toString())})`,"[object Number]":e=>`new Number(${e})`,"[object Boolean]":e=>`new Boolean(${e})`,"[object Set]":(e,t,r)=>`new Set(${r(Array.from(e))})`,"[object Map]":(e,t,r)=>`new Map(${r(Array.from(e))})`,"[object RegExp]":String,"[object global]":KVr,"[object Window]":KVr}});var Q8i=H(sBt=>{"use strict";Object.defineProperty(sBt,"__esModule",{value:!0});sBt.toString=void 0;var hWc=e8e(),mWc=Y8i(),CWc=UVr(),_Wc={string:hWc.quoteString,number:e=>Object.is(e,-0)?"-0":String(e),boolean:String,symbol:(e,t,r)=>{let n=Symbol.keyFor(e);return n!==void 0?`Symbol.for(${r(n)})`:`Symbol(${r(e.description)})`},bigint:(e,t,r)=>`BigInt(${r(String(e))})`,undefined:String,object:mWc.objectToString,function:CWc.functionToString},yWc=(e,t,r,n)=>e===null?"null":_Wc[typeof e](e,t,r,n);sBt.toString=yWc});var K8i=H(oBt=>{"use strict";Object.defineProperty(oBt,"__esModule",{value:!0});oBt.stringify=void 0;var X8i=Q8i(),J8i=e8e(),U8i=Symbol("root");function bWc(e,t,r,n={}){let a=typeof r=="string"?r:" ".repeat(r||0),o=[],l=new Set,A=new Map,f=new Map,I=0,{maxDepth:C=100,references:b=!1,skipUndefinedProperties:E=!1,maxValues:N=1e5}=n,B=EWc(t),F=(ae,ne)=>{if(++I>N||E&&ae===void 0||o.length>C)return;if(ne===void 0)return B(ae,a,F,ne);o.push(ne);let ce=Q(ae,ne===U8i?void 0:ne);return o.pop(),ce},Q=b?(ae,ne)=>{if(ae!==null&&(typeof ae=="object"||typeof ae=="function"||typeof ae=="symbol")){if(A.has(ae))return f.set(o.slice(1),A.get(ae)),B(void 0,a,F,ne);A.set(ae,o.slice(1))}return B(ae,a,F,ne)}:(ae,ne)=>{if(l.has(ae))return;l.add(ae);let ce=B(ae,a,F,ne);return l.delete(ae),ce},X=F(e,U8i);if(f.size){let ae=a?" ":"",ne=a?` -`:"",ce=`var x${ae}=${ae}${X};${ne}`;for(let[fe,ue]of f.entries()){let de=J8i.stringifyPath(fe,F),be=J8i.stringifyPath(ue,F);ce+=`x${de}${ae}=${ae}x${be};${ne}`}return`(function${ae}()${ae}{${ne}${ce}return x;${ne}}())`}return X}oBt.stringify=bWc;function EWc(e){return e?(t,r,n,a)=>e(t,r,o=>X8i.toString(o,r,n,a),a):X8i.toString}});var j8i=H((_4u,zVr)=>{var jVr=Lj(),SWc=jvt(),vWc=$De(),BWc=$vt(),wWc=b8i(),TWc=S8i(),RWc=B8i(),NWc=qvt(),DWc=F8i(),kWc=V8i(),xWc=W8i();zVr.exports=class extends jVr{constructor(){super(),this.entryPoints=new jVr(this),this.output=new TWc(this),this.module=new DWc(this),this.resolve=new BWc(this),this.resolveLoader=new wWc(this),this.optimization=new kWc(this),this.plugins=new jVr(this),this.devServer=new RWc(this),this.performance=new xWc(this),this.node=new SWc(this),this.extend(["context","mode","devtool","target","watch","watchOptions","externals","externalsType","externalsPresets","stats","experiments","amd","bail","cache","dependencies","ignoreWarnings","loader","parallelism","profile","recordsPath","recordsInputPath","recordsOutputPath","name","infrastructureLogging","snapshot"])}static toString(e,{verbose:t=!1,configPrefix:r="config"}={}){let{stringify:n}=K8i();return n(e,(a,o,l)=>{if(a&&a.__pluginName){let A=`/* ${r}.${a.__pluginType}('${a.__pluginName}') */ +${t}`);return dWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${AWc.quoteKey(f,r)}:${o}${b}`),A)},[]).join(`,${a}`);return l===""?"{}":`{${a}${l}${a}}`},KVr=(e,t,r)=>`Function(${r("return this")})()`,hWc={"[object Array]":pWc.arrayToString,"[object Object]":IWc,"[object Error]":(e,t,r)=>`new Error(${r(e.message)})`,"[object Date]":e=>`new Date(${e.getTime()})`,"[object String]":(e,t,r)=>`new String(${r(e.toString())})`,"[object Number]":e=>`new Number(${e})`,"[object Boolean]":e=>`new Boolean(${e})`,"[object Set]":(e,t,r)=>`new Set(${r(Array.from(e))})`,"[object Map]":(e,t,r)=>`new Map(${r(Array.from(e))})`,"[object RegExp]":String,"[object global]":KVr,"[object Window]":KVr}});var Q8i=H(sBt=>{"use strict";Object.defineProperty(sBt,"__esModule",{value:!0});sBt.toString=void 0;var mWc=e8e(),CWc=Y8i(),_Wc=UVr(),yWc={string:mWc.quoteString,number:e=>Object.is(e,-0)?"-0":String(e),boolean:String,symbol:(e,t,r)=>{let n=Symbol.keyFor(e);return n!==void 0?`Symbol.for(${r(n)})`:`Symbol(${r(e.description)})`},bigint:(e,t,r)=>`BigInt(${r(String(e))})`,undefined:String,object:CWc.objectToString,function:_Wc.functionToString},bWc=(e,t,r,n)=>e===null?"null":yWc[typeof e](e,t,r,n);sBt.toString=bWc});var K8i=H(oBt=>{"use strict";Object.defineProperty(oBt,"__esModule",{value:!0});oBt.stringify=void 0;var X8i=Q8i(),J8i=e8e(),U8i=Symbol("root");function EWc(e,t,r,n={}){let a=typeof r=="string"?r:" ".repeat(r||0),o=[],l=new Set,A=new Map,f=new Map,I=0,{maxDepth:C=100,references:b=!1,skipUndefinedProperties:E=!1,maxValues:N=1e5}=n,B=SWc(t),F=(ae,ne)=>{if(++I>N||E&&ae===void 0||o.length>C)return;if(ne===void 0)return B(ae,a,F,ne);o.push(ne);let ce=Q(ae,ne===U8i?void 0:ne);return o.pop(),ce},Q=b?(ae,ne)=>{if(ae!==null&&(typeof ae=="object"||typeof ae=="function"||typeof ae=="symbol")){if(A.has(ae))return f.set(o.slice(1),A.get(ae)),B(void 0,a,F,ne);A.set(ae,o.slice(1))}return B(ae,a,F,ne)}:(ae,ne)=>{if(l.has(ae))return;l.add(ae);let ce=B(ae,a,F,ne);return l.delete(ae),ce},X=F(e,U8i);if(f.size){let ae=a?" ":"",ne=a?` +`:"",ce=`var x${ae}=${ae}${X};${ne}`;for(let[fe,ue]of f.entries()){let de=J8i.stringifyPath(fe,F),be=J8i.stringifyPath(ue,F);ce+=`x${de}${ae}=${ae}x${be};${ne}`}return`(function${ae}()${ae}{${ne}${ce}return x;${ne}}())`}return X}oBt.stringify=EWc;function SWc(e){return e?(t,r,n,a)=>e(t,r,o=>X8i.toString(o,r,n,a),a):X8i.toString}});var j8i=H((y4u,zVr)=>{var jVr=Lj(),vWc=jvt(),BWc=$De(),wWc=$vt(),TWc=b8i(),RWc=S8i(),NWc=B8i(),DWc=qvt(),kWc=F8i(),xWc=V8i(),GWc=W8i();zVr.exports=class extends jVr{constructor(){super(),this.entryPoints=new jVr(this),this.output=new RWc(this),this.module=new kWc(this),this.resolve=new wWc(this),this.resolveLoader=new TWc(this),this.optimization=new xWc(this),this.plugins=new jVr(this),this.devServer=new NWc(this),this.performance=new GWc(this),this.node=new vWc(this),this.extend(["context","mode","devtool","target","watch","watchOptions","externals","externalsType","externalsPresets","stats","experiments","amd","bail","cache","dependencies","ignoreWarnings","loader","parallelism","profile","recordsPath","recordsInputPath","recordsOutputPath","name","infrastructureLogging","snapshot"])}static toString(e,{verbose:t=!1,configPrefix:r="config"}={}){let{stringify:n}=K8i();return n(e,(a,o,l)=>{if(a&&a.__pluginName){let A=`/* ${r}.${a.__pluginType}('${a.__pluginName}') */ `,f=a.__pluginPath?`(require(${l(a.__pluginPath)}))`:a.__pluginConstructorName;if(f){let I=l(a.__pluginArgs).slice(1,-1);return`${A}new ${f}(${I})`}return A+l(a.__pluginArgs&&a.__pluginArgs.length?{args:a.__pluginArgs}:{})}if(a&&a.__ruleNames){let A=a.__ruleTypes;return`/* ${r}.module${a.__ruleNames.map((I,C)=>`.${A?A[C]:"rule"}('${I}')`).join("")}${a.__useName?`.use('${a.__useName}')`:""} */ -`+l(a)}return a&&a.__expression?a.__expression:typeof a=="function"&&!t&&a.toString().length>100?"function () { /* omitted long function */ }":l(a)},2)}entry(e){return this.entryPoints.getOrCompute(e,()=>new vWc(this))}plugin(e){return this.plugins.getOrCompute(e,()=>new NWc(this,e))}toConfig(){let e=this.entryPoints.entries()||{},t=this.entries()||{};return this.clean(Object.assign(t,{node:this.node.entries(),output:this.output.entries(),resolve:this.resolve.toConfig(),resolveLoader:this.resolveLoader.toConfig(),devServer:this.devServer.toConfig(),module:this.module.toConfig(),optimization:this.optimization.toConfig(),plugins:this.plugins.values().map(r=>r.toConfig()),performance:this.performance.entries(),entry:Object.keys(e).reduce((r,n)=>Object.assign(r,{[n]:e[n].values()}),{})}))}toString(e){return zVr.exports.toString(this.toConfig(),e)}merge(e={},t=[]){let r=["node","output","resolve","resolveLoader","devServer","optimization","performance","module"];return!t.includes("entry")&&"entry"in e&&Object.keys(e.entry).forEach(n=>this.entry(n).merge([].concat(e.entry[n]))),!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"entry","plugin"])}}});var $Ce=H(uBt=>{"use strict";Object.defineProperty(uBt,"__esModule",{value:!0});uBt.isJsonObject=QWc;uBt.isJsonArray=XWc;function QWc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function XWc(e){return Array.isArray(e)}});var gBt=H(nPr=>{"use strict";Object.defineProperty(nPr,"__esModule",{value:!0});nPr.getTypesOfSchema=r8e;var cji=$Ce(),lji=["string","integer","number","object","array","boolean","null"];function r8e(e){if(!e)return new Set;if(e===!0)return new Set(lji);let t;if(typeof e.type=="string")t=new Set([e.type]);else if(Array.isArray(e.type))t=new Set(e.type);else if((0,cji.isJsonArray)(e.enum)){t=new Set;for(let r of e.enum)switch(typeof r){case"string":case"number":case"boolean":t.add(typeof r);break;case"object":Array.isArray(r)?t.add("array"):r===null?t.add("null"):t.add("object");break}}else t=new Set(lji);if((0,cji.isJsonObject)(e.not)){let r=r8e(e.not);t=new Set([...t].filter(n=>!r.has(n)))}if(Array.isArray(e.allOf))for(let r of e.allOf){let n=r8e(r);t=new Set([...n].filter(a=>t.has(a)))}if(Array.isArray(e.oneOf)){let r=new Set;for(let n of e.oneOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}if(Array.isArray(e.anyOf)){let r=new Set;for(let n of e.anyOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}return e.properties?t.add("object"):e.items&&t.add("array"),t}});var Aji=H(iPr=>{"use strict";Object.defineProperty(iPr,"__esModule",{value:!0});iPr.addUndefinedDefaults=gji;var sle=$Ce(),uji=gBt();function gji(e,t,r){if(typeof r=="boolean"||r===void 0)return e;e??=r.default;let n=(0,uji.getTypesOfSchema)(r);if(n.size===0)return e;let a;if(n.size===1)a=Array.from(n)[0];else if(n.size===2&&n.has("array")&&n.has("object"))a="array";else if(r.properties&&n.has("object"))a="object";else if(r.items&&n.has("array"))a="array";else return e;if(a==="array")return e??[];if(a==="object"){let o;if(e==null)o={};else if((0,sle.isJsonObject)(e))o=e;else return e;if(!(0,sle.isJsonObject)(r.properties))return o;for(let[l,A]of Object.entries(r.properties)){if(l==="$schema"||!(0,sle.isJsonObject)(A))continue;let f=o[l];if(f===void 0)o[l]=A.default;else if((0,sle.isJsonObject)(f)){let I=A.oneOf||A.anyOf,C=Object.keys(f),b=(0,sle.isJsonArray)(I)&&I.find(E=>{if(!(0,sle.isJsonObject)(E))return!1;let N=(0,uji.getTypesOfSchema)(E);if(N.size===1&&N.has("object")&&(0,sle.isJsonObject)(E.properties)){let B=Object.keys(E.properties);return C.every(F=>B.includes(F))}return!1});b&&(0,sle.isJsonObject)(b)&&(o[l]=gji(f,t,b))}}return o}return e}});var pji=H(dji=>{"use strict";Object.defineProperty(dji,"__esModule",{value:!0})});var oPr=H(n8e=>{"use strict";Object.defineProperty(n8e,"__esModule",{value:!0});n8e.buildJsonPointer=sPr;n8e.joinJsonPointer=JWc;n8e.parseJsonPointer=UWc;function sPr(e){return"/"+e.map(t=>t.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}function JWc(e,...t){return e=="/"?sPr(t):e+sPr(t)}function UWc(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Relative pointer: "+e);return e.substring(1).split(/\//).map(t=>t.replace(/~1/g,"/").replace(/~0/g,"~"))}});var o8e=H(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.regexpCode=v_.getEsmExportName=v_.getProperty=v_.safeStringify=v_.stringify=v_.strConcat=v_.addCodeArg=v_.str=v_._=v_.nil=v_._Code=v_.Name=v_.IDENTIFIER=v_._CodeOrName=void 0;var i8e=class{};v_._CodeOrName=i8e;v_.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var e_e=class extends i8e{constructor(t){if(super(),!v_.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};v_.Name=e_e;var fH=class extends i8e{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof e_e&&(r[n.str]=(r[n.str]||0)+1),r),{})}};v_._Code=fH;v_.nil=new fH("");function fji(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(DV,"__esModule",{value:!0});DV.ValueScope=DV.ValueScopeName=DV.Scope=DV.varKinds=DV.UsedValueState=void 0;var NV=o8e(),lPr=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},ABt;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(ABt||(DV.UsedValueState=ABt={}));DV.varKinds={const:new NV.Name("const"),let:new NV.Name("let"),var:new NV.Name("var")};var dBt=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof NV.Name?t:this.name(t)}name(t){return new NV.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};DV.Scope=dBt;var pBt=class extends NV.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,NV._)`.${new NV.Name(r)}[${n}]`}};DV.ValueScopeName=pBt;var nOc=(0,NV._)`\n`,uPr=class extends dBt{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?nOc:NV.nil}}get(){return this._scope}name(t){return new pBt(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(t),{prefix:o}=a,l=(n=r.key)!==null&&n!==void 0?n:r.ref,A=this._values[o];if(A){let C=A.get(l);if(C)return C}else A=this._values[o]=new Map;A.set(l,a);let f=this._scope[o]||(this._scope[o]=[]),I=f.length;return f[I]=r.ref,a.setValue(r,{property:o,itemIndex:I}),a}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,NV._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let o=NV.nil;for(let l in t){let A=t[l];if(!A)continue;let f=n[l]=n[l]||new Map;A.forEach(I=>{if(f.has(I))return;f.set(I,ABt.Started);let C=r(I);if(C){let b=this.opts.es5?DV.varKinds.var:DV.varKinds.const;o=(0,NV._)`${o}${b} ${I} = ${C};${this.opts._n}`}else if(C=a?.(I))o=(0,NV._)`${o}${C}${this.opts._n}`;else throw new lPr(I);f.set(I,ABt.Completed)})}return o}};DV.ValueScope=uPr});var Hh=H(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});om.or=om.and=om.not=om.CodeGen=om.operators=om.varKinds=om.ValueScopeName=om.ValueScope=om.Scope=om.Name=om.regexpCode=om.stringify=om.getProperty=om.nil=om.strConcat=om.str=om._=void 0;var wC=o8e(),B4=gPr(),ole=o8e();Object.defineProperty(om,"_",{enumerable:!0,get:function(){return ole._}});Object.defineProperty(om,"str",{enumerable:!0,get:function(){return ole.str}});Object.defineProperty(om,"strConcat",{enumerable:!0,get:function(){return ole.strConcat}});Object.defineProperty(om,"nil",{enumerable:!0,get:function(){return ole.nil}});Object.defineProperty(om,"getProperty",{enumerable:!0,get:function(){return ole.getProperty}});Object.defineProperty(om,"stringify",{enumerable:!0,get:function(){return ole.stringify}});Object.defineProperty(om,"regexpCode",{enumerable:!0,get:function(){return ole.regexpCode}});Object.defineProperty(om,"Name",{enumerable:!0,get:function(){return ole.Name}});var mBt=gPr();Object.defineProperty(om,"Scope",{enumerable:!0,get:function(){return mBt.Scope}});Object.defineProperty(om,"ValueScope",{enumerable:!0,get:function(){return mBt.ValueScope}});Object.defineProperty(om,"ValueScopeName",{enumerable:!0,get:function(){return mBt.ValueScopeName}});Object.defineProperty(om,"varKinds",{enumerable:!0,get:function(){return mBt.varKinds}});om.operators={GT:new wC._Code(">"),GTE:new wC._Code(">="),LT:new wC._Code("<"),LTE:new wC._Code("<="),EQ:new wC._Code("==="),NEQ:new wC._Code("!=="),NOT:new wC._Code("!"),OR:new wC._Code("||"),AND:new wC._Code("&&"),ADD:new wC._Code("+")};var ete=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},APr=class extends ete{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?B4.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=rke(this.rhs,t,r)),this}get names(){return this.rhs instanceof wC._CodeOrName?this.rhs.names:{}}},fBt=class extends ete{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof wC.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=rke(this.rhs,t,r),this}get names(){let t=this.lhs instanceof wC.Name?{}:{...this.lhs.names};return hBt(t,this.rhs)}},dPr=class extends fBt{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},pPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},fPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},IPr=class extends ete{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},hPr=class extends ete{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=rke(this.code,t,r),this}get names(){return this.code instanceof wC._CodeOrName?this.code.names:{}}},a8e=class extends ete{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,a=n.length;for(;a--;){let o=n[a];o.optimizeNames(t,r)||(iOc(t,o.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>n_e(t,r.names),{})}},tte=class extends a8e{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},mPr=class extends a8e{},tke=class extends tte{};tke.kind="else";var t_e=class e extends tte{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new tke(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(hji(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=rke(this.condition,t,r),this}get names(){let t=super.names;return hBt(t,this.condition),this.else&&n_e(t,this.else.names),t}};t_e.kind="if";var r_e=class extends tte{};r_e.kind="for";var CPr=class extends r_e{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=rke(this.iteration,t,r),this}get names(){return n_e(super.names,this.iteration.names)}},_Pr=class extends r_e{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?B4.varKinds.var:this.varKind,{name:n,from:a,to:o}=this;return`for(${r} ${n}=${a}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=hBt(super.names,this.from);return hBt(t,this.to)}},IBt=class extends r_e{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=rke(this.iterable,t,r),this}get names(){return n_e(super.names,this.iterable.names)}},c8e=class extends tte{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};c8e.kind="func";var l8e=class extends a8e{render(t){return"return "+super.render(t)}};l8e.kind="return";var yPr=class extends tte{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&n_e(t,this.catch.names),this.finally&&n_e(t,this.finally.names),t}},u8e=class extends tte{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};u8e.kind="catch";var g8e=class extends tte{render(t){return"finally"+super.render(t)}};g8e.kind="finally";var bPr=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=t,this._scope=new B4.Scope({parent:t}),this._nodes=[new mPr]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,a){let o=this._scope.toName(r);return n!==void 0&&a&&(this._constants[o.str]=n),this._leafNode(new APr(t,o,n)),o}const(t,r,n){return this._def(B4.varKinds.const,t,r,n)}let(t,r,n){return this._def(B4.varKinds.let,t,r,n)}var(t,r,n){return this._def(B4.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new fBt(t,r,n))}add(t,r){return this._leafNode(new dPr(t,om.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==wC.nil&&this._leafNode(new hPr(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,wC.addCodeArg)(r,a));return r.push("}"),new wC._Code(r)}if(t,r,n){if(this._blockNode(new t_e(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new t_e(t))}else(){return this._elseNode(new tke)}endIf(){return this._endBlockNode(t_e,tke)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new CPr(t),r)}forRange(t,r,n,a,o=this.opts.es5?B4.varKinds.var:B4.varKinds.let){let l=this._scope.toName(t);return this._for(new _Pr(o,l,r,n),()=>a(l))}forOf(t,r,n,a=B4.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let l=r instanceof wC.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,wC._)`${l}.length`,A=>{this.var(o,(0,wC._)`${l}[${A}]`),n(o)})}return this._for(new IBt("of",a,o,r),()=>n(o))}forIn(t,r,n,a=this.opts.es5?B4.varKinds.var:B4.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,wC._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new IBt("in",a,o,r),()=>n(o))}endFor(){return this._endBlockNode(r_e)}label(t){return this._leafNode(new pPr(t))}break(t){return this._leafNode(new fPr(t))}return(t){let r=new l8e;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(l8e)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new yPr;if(this._blockNode(a),this.code(t),r){let o=this.name("e");this._currNode=a.catch=new u8e(o),r(o)}return n&&(this._currNode=a.finally=new g8e,this.code(n)),this._endBlockNode(u8e,g8e)}throw(t){return this._leafNode(new IPr(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=wC.nil,n,a){return this._blockNode(new c8e(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(c8e)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof t_e))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};om.CodeGen=bPr;function n_e(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function hBt(e,t){return t instanceof wC._CodeOrName?n_e(e,t.names):e}function rke(e,t,r){if(e instanceof wC.Name)return n(e);if(!a(e))return e;return new wC._Code(e._items.reduce((o,l)=>(l instanceof wC.Name&&(l=n(l)),l instanceof wC._Code?o.push(...l._items):o.push(l),o),[]));function n(o){let l=r[o.str];return l===void 0||t[o.str]!==1?o:(delete t[o.str],l)}function a(o){return o instanceof wC._Code&&o._items.some(l=>l instanceof wC.Name&&t[l.str]===1&&r[l.str]!==void 0)}}function iOc(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function hji(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,wC._)`!${EPr(e)}`}om.not=hji;var sOc=mji(om.operators.AND);function oOc(...e){return e.reduce(sOc)}om.and=oOc;var aOc=mji(om.operators.OR);function cOc(...e){return e.reduce(aOc)}om.or=cOc;function mji(e){return(t,r)=>t===wC.nil?r:r===wC.nil?t:(0,wC._)`${EPr(t)} ${e} ${EPr(r)}`}function EPr(e){return e instanceof wC.Name?e:(0,wC._)`(${e})`}});var B_=H(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.checkStrictMode=Bm.getErrorPath=Bm.Type=Bm.useFunc=Bm.setEvaluated=Bm.evaluatedPropsToName=Bm.mergeEvaluated=Bm.eachItem=Bm.unescapeJsonPointer=Bm.escapeJsonPointer=Bm.escapeFragment=Bm.unescapeFragment=Bm.schemaRefOrVal=Bm.schemaHasRulesButRef=Bm.schemaHasRules=Bm.checkUnknownRules=Bm.alwaysValidSchema=Bm.toHash=void 0;var zb=Hh(),lOc=o8e();function uOc(e){let t={};for(let r of e)t[r]=!0;return t}Bm.toHash=uOc;function gOc(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yji(e,t),!bji(t,e.self.RULES.all))}Bm.alwaysValidSchema=gOc;function yji(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let o in t)a[o]||vji(e,`unknown keyword: "${o}"`)}Bm.checkUnknownRules=yji;function bji(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}Bm.schemaHasRules=bji;function AOc(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}Bm.schemaHasRulesButRef=AOc;function dOc({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,zb._)`${r}`}return(0,zb._)`${e}${t}${(0,zb.getProperty)(n)}`}Bm.schemaRefOrVal=dOc;function pOc(e){return Eji(decodeURIComponent(e))}Bm.unescapeFragment=pOc;function fOc(e){return encodeURIComponent(vPr(e))}Bm.escapeFragment=fOc;function vPr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Bm.escapeJsonPointer=vPr;function Eji(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Bm.unescapeJsonPointer=Eji;function IOc(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}Bm.eachItem=IOc;function Cji({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,o,l,A)=>{let f=l===void 0?o:l instanceof zb.Name?(o instanceof zb.Name?e(a,o,l):t(a,o,l),l):o instanceof zb.Name?(t(a,l,o),o):r(o,l);return A===zb.Name&&!(f instanceof zb.Name)?n(a,f):f}}Bm.mergeEvaluated={props:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,zb._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,zb._)`${r} || {}`).code((0,zb._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,zb._)`${r} || {}`),BPr(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Sji}),items:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,zb._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,zb._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Sji(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,zb._)`{}`);return t!==void 0&&BPr(e,r,t),r}Bm.evaluatedPropsToName=Sji;function BPr(e,t,r){Object.keys(r).forEach(n=>e.assign((0,zb._)`${t}${(0,zb.getProperty)(n)}`,!0))}Bm.setEvaluated=BPr;var _ji={};function hOc(e,t){return e.scopeValue("func",{ref:t,code:_ji[t.code]||(_ji[t.code]=new lOc._Code(t.code))})}Bm.useFunc=hOc;var SPr;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(SPr||(Bm.Type=SPr={}));function mOc(e,t,r){if(e instanceof zb.Name){let n=t===SPr.Num;return r?n?(0,zb._)`"[" + ${e} + "]"`:(0,zb._)`"['" + ${e} + "']"`:n?(0,zb._)`"/" + ${e}`:(0,zb._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,zb.getProperty)(e).toString():"/"+vPr(e)}Bm.getErrorPath=mOc;function vji(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}Bm.checkStrictMode=vji});var rte=H(wPr=>{"use strict";Object.defineProperty(wPr,"__esModule",{value:!0});var QG=Hh(),COc={data:new QG.Name("data"),valCxt:new QG.Name("valCxt"),instancePath:new QG.Name("instancePath"),parentData:new QG.Name("parentData"),parentDataProperty:new QG.Name("parentDataProperty"),rootData:new QG.Name("rootData"),dynamicAnchors:new QG.Name("dynamicAnchors"),vErrors:new QG.Name("vErrors"),errors:new QG.Name("errors"),this:new QG.Name("this"),self:new QG.Name("self"),scope:new QG.Name("scope"),json:new QG.Name("json"),jsonPos:new QG.Name("jsonPos"),jsonLen:new QG.Name("jsonLen"),jsonPart:new QG.Name("jsonPart")};wPr.default=COc});var A8e=H(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.extendErrors=XG.resetErrorsCount=XG.reportExtraError=XG.reportError=XG.keyword$DataError=XG.keywordError=void 0;var e_=Hh(),CBt=B_(),rL=rte();XG.keywordError={message:({keyword:e})=>(0,e_.str)`must pass "${e}" keyword validation`};XG.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,e_.str)`"${e}" keyword must be ${t} ($data)`:(0,e_.str)`"${e}" keyword is invalid ($data)`};function _Oc(e,t=XG.keywordError,r,n){let{it:a}=e,{gen:o,compositeRule:l,allErrors:A}=a,f=Tji(e,t,r);n??(l||A)?Bji(o,f):wji(a,(0,e_._)`[${f}]`)}XG.reportError=_Oc;function yOc(e,t=XG.keywordError,r){let{it:n}=e,{gen:a,compositeRule:o,allErrors:l}=n,A=Tji(e,t,r);Bji(a,A),o||l||wji(n,rL.default.vErrors)}XG.reportExtraError=yOc;function bOc(e,t){e.assign(rL.default.errors,t),e.if((0,e_._)`${rL.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,e_._)`${rL.default.vErrors}.length`,t),()=>e.assign(rL.default.vErrors,null)))}XG.resetErrorsCount=bOc;function EOc({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:o}){if(a===void 0)throw new Error("ajv implementation error");let l=e.name("err");e.forRange("i",a,rL.default.errors,A=>{e.const(l,(0,e_._)`${rL.default.vErrors}[${A}]`),e.if((0,e_._)`${l}.instancePath === undefined`,()=>e.assign((0,e_._)`${l}.instancePath`,(0,e_.strConcat)(rL.default.instancePath,o.errorPath))),e.assign((0,e_._)`${l}.schemaPath`,(0,e_.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,e_._)`${l}.schema`,r),e.assign((0,e_._)`${l}.data`,n))})}XG.extendErrors=EOc;function Bji(e,t){let r=e.const("err",t);e.if((0,e_._)`${rL.default.vErrors} === null`,()=>e.assign(rL.default.vErrors,(0,e_._)`[${r}]`),(0,e_._)`${rL.default.vErrors}.push(${r})`),e.code((0,e_._)`${rL.default.errors}++`)}function wji(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,e_._)`new ${e.ValidationError}(${t})`):(r.assign((0,e_._)`${n}.errors`,t),r.return(!1))}var i_e={keyword:new e_.Name("keyword"),schemaPath:new e_.Name("schemaPath"),params:new e_.Name("params"),propertyName:new e_.Name("propertyName"),message:new e_.Name("message"),schema:new e_.Name("schema"),parentSchema:new e_.Name("parentSchema")};function Tji(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,e_._)`{}`:SOc(e,t,r)}function SOc(e,t,r={}){let{gen:n,it:a}=e,o=[vOc(a,r),BOc(e,r)];return wOc(e,t,o),n.object(...o)}function vOc({errorPath:e},{instancePath:t}){let r=t?(0,e_.str)`${e}${(0,CBt.getErrorPath)(t,CBt.Type.Str)}`:e;return[rL.default.instancePath,(0,e_.strConcat)(rL.default.instancePath,r)]}function BOc({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,e_.str)`${t}/${e}`;return r&&(a=(0,e_.str)`${a}${(0,CBt.getErrorPath)(r,CBt.Type.Str)}`),[i_e.schemaPath,a]}function wOc(e,{params:t,message:r},n){let{keyword:a,data:o,schemaValue:l,it:A}=e,{opts:f,propertyName:I,topSchemaRef:C,schemaPath:b}=A;n.push([i_e.keyword,a],[i_e.params,typeof t=="function"?t(e):t||(0,e_._)`{}`]),f.messages&&n.push([i_e.message,typeof r=="function"?r(e):r]),f.verbose&&n.push([i_e.schema,l],[i_e.parentSchema,(0,e_._)`${C}${b}`],[rL.default.data,o]),I&&n.push([i_e.propertyName,I])}});var Nji=H(nke=>{"use strict";Object.defineProperty(nke,"__esModule",{value:!0});nke.boolOrEmptySchema=nke.topBoolOrEmptySchema=void 0;var TOc=A8e(),ROc=Hh(),NOc=rte(),DOc={message:"boolean schema is false"};function kOc(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Rji(e,!1):typeof r=="object"&&r.$async===!0?t.return(NOc.default.data):(t.assign((0,ROc._)`${n}.errors`,null),t.return(!0))}nke.topBoolOrEmptySchema=kOc;function xOc(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Rji(e)):r.var(t,!0)}nke.boolOrEmptySchema=xOc;function Rji(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,TOc.reportError)(a,DOc,void 0,t)}});var TPr=H(ike=>{"use strict";Object.defineProperty(ike,"__esModule",{value:!0});ike.getRules=ike.isJSONType=void 0;var GOc=["string","number","integer","boolean","null","object","array"],FOc=new Set(GOc);function ZOc(e){return typeof e=="string"&&FOc.has(e)}ike.isJSONType=ZOc;function LOc(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ike.getRules=LOc});var RPr=H(ale=>{"use strict";Object.defineProperty(ale,"__esModule",{value:!0});ale.shouldUseRule=ale.shouldUseGroup=ale.schemaHasRulesForType=void 0;function VOc({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Dji(e,n)}ale.schemaHasRulesForType=VOc;function Dji(e,t){return t.rules.some(r=>kji(e,r))}ale.shouldUseGroup=Dji;function kji(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}ale.shouldUseRule=kji});var d8e=H(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.reportTypeError=JG.checkDataTypes=JG.checkDataType=JG.coerceAndCheckDataType=JG.getJSONTypes=JG.getSchemaTypes=JG.DataType=void 0;var POc=TPr(),WOc=RPr(),OOc=A8e(),Bh=Hh(),xji=B_(),ske;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ske||(JG.DataType=ske={}));function MOc(e){let t=Gji(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}JG.getSchemaTypes=MOc;function Gji(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(POc.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}JG.getJSONTypes=Gji;function HOc(e,t){let{gen:r,data:n,opts:a}=e,o=YOc(t,a.coerceTypes),l=t.length>0&&!(o.length===0&&t.length===1&&(0,WOc.schemaHasRulesForType)(e,t[0]));if(l){let A=DPr(t,n,a.strictNumbers,ske.Wrong);r.if(A,()=>{o.length?QOc(e,t,o):kPr(e)})}return l}JG.coerceAndCheckDataType=HOc;var Fji=new Set(["string","number","integer","boolean","null"]);function YOc(e,t){return t?e.filter(r=>Fji.has(r)||t==="array"&&r==="array"):[]}function QOc(e,t,r){let{gen:n,data:a,opts:o}=e,l=n.let("dataType",(0,Bh._)`typeof ${a}`),A=n.let("coerced",(0,Bh._)`undefined`);o.coerceTypes==="array"&&n.if((0,Bh._)`${l} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,Bh._)`${a}[0]`).assign(l,(0,Bh._)`typeof ${a}`).if(DPr(t,a,o.strictNumbers),()=>n.assign(A,a))),n.if((0,Bh._)`${A} !== undefined`);for(let I of r)(Fji.has(I)||I==="array"&&o.coerceTypes==="array")&&f(I);n.else(),kPr(e),n.endIf(),n.if((0,Bh._)`${A} !== undefined`,()=>{n.assign(a,A),XOc(e,A)});function f(I){switch(I){case"string":n.elseIf((0,Bh._)`${l} == "number" || ${l} == "boolean"`).assign(A,(0,Bh._)`"" + ${a}`).elseIf((0,Bh._)`${a} === null`).assign(A,(0,Bh._)`""`);return;case"number":n.elseIf((0,Bh._)`${l} == "boolean" || ${a} === null +`+l(a)}return a&&a.__expression?a.__expression:typeof a=="function"&&!t&&a.toString().length>100?"function () { /* omitted long function */ }":l(a)},2)}entry(e){return this.entryPoints.getOrCompute(e,()=>new BWc(this))}plugin(e){return this.plugins.getOrCompute(e,()=>new DWc(this,e))}toConfig(){let e=this.entryPoints.entries()||{},t=this.entries()||{};return this.clean(Object.assign(t,{node:this.node.entries(),output:this.output.entries(),resolve:this.resolve.toConfig(),resolveLoader:this.resolveLoader.toConfig(),devServer:this.devServer.toConfig(),module:this.module.toConfig(),optimization:this.optimization.toConfig(),plugins:this.plugins.values().map(r=>r.toConfig()),performance:this.performance.entries(),entry:Object.keys(e).reduce((r,n)=>Object.assign(r,{[n]:e[n].values()}),{})}))}toString(e){return zVr.exports.toString(this.toConfig(),e)}merge(e={},t=[]){let r=["node","output","resolve","resolveLoader","devServer","optimization","performance","module"];return!t.includes("entry")&&"entry"in e&&Object.keys(e.entry).forEach(n=>this.entry(n).merge([].concat(e.entry[n]))),!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"entry","plugin"])}}});var $Ce=H(uBt=>{"use strict";Object.defineProperty(uBt,"__esModule",{value:!0});uBt.isJsonObject=XWc;uBt.isJsonArray=JWc;function XWc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function JWc(e){return Array.isArray(e)}});var gBt=H(nPr=>{"use strict";Object.defineProperty(nPr,"__esModule",{value:!0});nPr.getTypesOfSchema=r8e;var cji=$Ce(),lji=["string","integer","number","object","array","boolean","null"];function r8e(e){if(!e)return new Set;if(e===!0)return new Set(lji);let t;if(typeof e.type=="string")t=new Set([e.type]);else if(Array.isArray(e.type))t=new Set(e.type);else if((0,cji.isJsonArray)(e.enum)){t=new Set;for(let r of e.enum)switch(typeof r){case"string":case"number":case"boolean":t.add(typeof r);break;case"object":Array.isArray(r)?t.add("array"):r===null?t.add("null"):t.add("object");break}}else t=new Set(lji);if((0,cji.isJsonObject)(e.not)){let r=r8e(e.not);t=new Set([...t].filter(n=>!r.has(n)))}if(Array.isArray(e.allOf))for(let r of e.allOf){let n=r8e(r);t=new Set([...n].filter(a=>t.has(a)))}if(Array.isArray(e.oneOf)){let r=new Set;for(let n of e.oneOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}if(Array.isArray(e.anyOf)){let r=new Set;for(let n of e.anyOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}return e.properties?t.add("object"):e.items&&t.add("array"),t}});var Aji=H(iPr=>{"use strict";Object.defineProperty(iPr,"__esModule",{value:!0});iPr.addUndefinedDefaults=gji;var sle=$Ce(),uji=gBt();function gji(e,t,r){if(typeof r=="boolean"||r===void 0)return e;e??=r.default;let n=(0,uji.getTypesOfSchema)(r);if(n.size===0)return e;let a;if(n.size===1)a=Array.from(n)[0];else if(n.size===2&&n.has("array")&&n.has("object"))a="array";else if(r.properties&&n.has("object"))a="object";else if(r.items&&n.has("array"))a="array";else return e;if(a==="array")return e??[];if(a==="object"){let o;if(e==null)o={};else if((0,sle.isJsonObject)(e))o=e;else return e;if(!(0,sle.isJsonObject)(r.properties))return o;for(let[l,A]of Object.entries(r.properties)){if(l==="$schema"||!(0,sle.isJsonObject)(A))continue;let f=o[l];if(f===void 0)o[l]=A.default;else if((0,sle.isJsonObject)(f)){let I=A.oneOf||A.anyOf,C=Object.keys(f),b=(0,sle.isJsonArray)(I)&&I.find(E=>{if(!(0,sle.isJsonObject)(E))return!1;let N=(0,uji.getTypesOfSchema)(E);if(N.size===1&&N.has("object")&&(0,sle.isJsonObject)(E.properties)){let B=Object.keys(E.properties);return C.every(F=>B.includes(F))}return!1});b&&(0,sle.isJsonObject)(b)&&(o[l]=gji(f,t,b))}}return o}return e}});var pji=H(dji=>{"use strict";Object.defineProperty(dji,"__esModule",{value:!0})});var oPr=H(n8e=>{"use strict";Object.defineProperty(n8e,"__esModule",{value:!0});n8e.buildJsonPointer=sPr;n8e.joinJsonPointer=UWc;n8e.parseJsonPointer=KWc;function sPr(e){return"/"+e.map(t=>t.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}function UWc(e,...t){return e=="/"?sPr(t):e+sPr(t)}function KWc(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Relative pointer: "+e);return e.substring(1).split(/\//).map(t=>t.replace(/~1/g,"/").replace(/~0/g,"~"))}});var o8e=H(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.regexpCode=v_.getEsmExportName=v_.getProperty=v_.safeStringify=v_.stringify=v_.strConcat=v_.addCodeArg=v_.str=v_._=v_.nil=v_._Code=v_.Name=v_.IDENTIFIER=v_._CodeOrName=void 0;var i8e=class{};v_._CodeOrName=i8e;v_.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var e_e=class extends i8e{constructor(t){if(super(),!v_.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};v_.Name=e_e;var fH=class extends i8e{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof e_e&&(r[n.str]=(r[n.str]||0)+1),r),{})}};v_._Code=fH;v_.nil=new fH("");function fji(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(DV,"__esModule",{value:!0});DV.ValueScope=DV.ValueScopeName=DV.Scope=DV.varKinds=DV.UsedValueState=void 0;var NV=o8e(),lPr=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},ABt;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(ABt||(DV.UsedValueState=ABt={}));DV.varKinds={const:new NV.Name("const"),let:new NV.Name("let"),var:new NV.Name("var")};var dBt=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof NV.Name?t:this.name(t)}name(t){return new NV.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};DV.Scope=dBt;var pBt=class extends NV.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,NV._)`.${new NV.Name(r)}[${n}]`}};DV.ValueScopeName=pBt;var iOc=(0,NV._)`\n`,uPr=class extends dBt{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?iOc:NV.nil}}get(){return this._scope}name(t){return new pBt(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(t),{prefix:o}=a,l=(n=r.key)!==null&&n!==void 0?n:r.ref,A=this._values[o];if(A){let C=A.get(l);if(C)return C}else A=this._values[o]=new Map;A.set(l,a);let f=this._scope[o]||(this._scope[o]=[]),I=f.length;return f[I]=r.ref,a.setValue(r,{property:o,itemIndex:I}),a}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,NV._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let o=NV.nil;for(let l in t){let A=t[l];if(!A)continue;let f=n[l]=n[l]||new Map;A.forEach(I=>{if(f.has(I))return;f.set(I,ABt.Started);let C=r(I);if(C){let b=this.opts.es5?DV.varKinds.var:DV.varKinds.const;o=(0,NV._)`${o}${b} ${I} = ${C};${this.opts._n}`}else if(C=a?.(I))o=(0,NV._)`${o}${C}${this.opts._n}`;else throw new lPr(I);f.set(I,ABt.Completed)})}return o}};DV.ValueScope=uPr});var Hh=H(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});om.or=om.and=om.not=om.CodeGen=om.operators=om.varKinds=om.ValueScopeName=om.ValueScope=om.Scope=om.Name=om.regexpCode=om.stringify=om.getProperty=om.nil=om.strConcat=om.str=om._=void 0;var wC=o8e(),B4=gPr(),ole=o8e();Object.defineProperty(om,"_",{enumerable:!0,get:function(){return ole._}});Object.defineProperty(om,"str",{enumerable:!0,get:function(){return ole.str}});Object.defineProperty(om,"strConcat",{enumerable:!0,get:function(){return ole.strConcat}});Object.defineProperty(om,"nil",{enumerable:!0,get:function(){return ole.nil}});Object.defineProperty(om,"getProperty",{enumerable:!0,get:function(){return ole.getProperty}});Object.defineProperty(om,"stringify",{enumerable:!0,get:function(){return ole.stringify}});Object.defineProperty(om,"regexpCode",{enumerable:!0,get:function(){return ole.regexpCode}});Object.defineProperty(om,"Name",{enumerable:!0,get:function(){return ole.Name}});var mBt=gPr();Object.defineProperty(om,"Scope",{enumerable:!0,get:function(){return mBt.Scope}});Object.defineProperty(om,"ValueScope",{enumerable:!0,get:function(){return mBt.ValueScope}});Object.defineProperty(om,"ValueScopeName",{enumerable:!0,get:function(){return mBt.ValueScopeName}});Object.defineProperty(om,"varKinds",{enumerable:!0,get:function(){return mBt.varKinds}});om.operators={GT:new wC._Code(">"),GTE:new wC._Code(">="),LT:new wC._Code("<"),LTE:new wC._Code("<="),EQ:new wC._Code("==="),NEQ:new wC._Code("!=="),NOT:new wC._Code("!"),OR:new wC._Code("||"),AND:new wC._Code("&&"),ADD:new wC._Code("+")};var ete=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},APr=class extends ete{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?B4.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=rke(this.rhs,t,r)),this}get names(){return this.rhs instanceof wC._CodeOrName?this.rhs.names:{}}},fBt=class extends ete{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof wC.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=rke(this.rhs,t,r),this}get names(){let t=this.lhs instanceof wC.Name?{}:{...this.lhs.names};return hBt(t,this.rhs)}},dPr=class extends fBt{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},pPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},fPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},IPr=class extends ete{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},hPr=class extends ete{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=rke(this.code,t,r),this}get names(){return this.code instanceof wC._CodeOrName?this.code.names:{}}},a8e=class extends ete{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,a=n.length;for(;a--;){let o=n[a];o.optimizeNames(t,r)||(sOc(t,o.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>n_e(t,r.names),{})}},tte=class extends a8e{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},mPr=class extends a8e{},tke=class extends tte{};tke.kind="else";var t_e=class e extends tte{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new tke(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(hji(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=rke(this.condition,t,r),this}get names(){let t=super.names;return hBt(t,this.condition),this.else&&n_e(t,this.else.names),t}};t_e.kind="if";var r_e=class extends tte{};r_e.kind="for";var CPr=class extends r_e{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=rke(this.iteration,t,r),this}get names(){return n_e(super.names,this.iteration.names)}},_Pr=class extends r_e{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?B4.varKinds.var:this.varKind,{name:n,from:a,to:o}=this;return`for(${r} ${n}=${a}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=hBt(super.names,this.from);return hBt(t,this.to)}},IBt=class extends r_e{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=rke(this.iterable,t,r),this}get names(){return n_e(super.names,this.iterable.names)}},c8e=class extends tte{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};c8e.kind="func";var l8e=class extends a8e{render(t){return"return "+super.render(t)}};l8e.kind="return";var yPr=class extends tte{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&n_e(t,this.catch.names),this.finally&&n_e(t,this.finally.names),t}},u8e=class extends tte{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};u8e.kind="catch";var g8e=class extends tte{render(t){return"finally"+super.render(t)}};g8e.kind="finally";var bPr=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=t,this._scope=new B4.Scope({parent:t}),this._nodes=[new mPr]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,a){let o=this._scope.toName(r);return n!==void 0&&a&&(this._constants[o.str]=n),this._leafNode(new APr(t,o,n)),o}const(t,r,n){return this._def(B4.varKinds.const,t,r,n)}let(t,r,n){return this._def(B4.varKinds.let,t,r,n)}var(t,r,n){return this._def(B4.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new fBt(t,r,n))}add(t,r){return this._leafNode(new dPr(t,om.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==wC.nil&&this._leafNode(new hPr(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,wC.addCodeArg)(r,a));return r.push("}"),new wC._Code(r)}if(t,r,n){if(this._blockNode(new t_e(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new t_e(t))}else(){return this._elseNode(new tke)}endIf(){return this._endBlockNode(t_e,tke)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new CPr(t),r)}forRange(t,r,n,a,o=this.opts.es5?B4.varKinds.var:B4.varKinds.let){let l=this._scope.toName(t);return this._for(new _Pr(o,l,r,n),()=>a(l))}forOf(t,r,n,a=B4.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let l=r instanceof wC.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,wC._)`${l}.length`,A=>{this.var(o,(0,wC._)`${l}[${A}]`),n(o)})}return this._for(new IBt("of",a,o,r),()=>n(o))}forIn(t,r,n,a=this.opts.es5?B4.varKinds.var:B4.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,wC._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new IBt("in",a,o,r),()=>n(o))}endFor(){return this._endBlockNode(r_e)}label(t){return this._leafNode(new pPr(t))}break(t){return this._leafNode(new fPr(t))}return(t){let r=new l8e;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(l8e)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new yPr;if(this._blockNode(a),this.code(t),r){let o=this.name("e");this._currNode=a.catch=new u8e(o),r(o)}return n&&(this._currNode=a.finally=new g8e,this.code(n)),this._endBlockNode(u8e,g8e)}throw(t){return this._leafNode(new IPr(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=wC.nil,n,a){return this._blockNode(new c8e(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(c8e)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof t_e))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};om.CodeGen=bPr;function n_e(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function hBt(e,t){return t instanceof wC._CodeOrName?n_e(e,t.names):e}function rke(e,t,r){if(e instanceof wC.Name)return n(e);if(!a(e))return e;return new wC._Code(e._items.reduce((o,l)=>(l instanceof wC.Name&&(l=n(l)),l instanceof wC._Code?o.push(...l._items):o.push(l),o),[]));function n(o){let l=r[o.str];return l===void 0||t[o.str]!==1?o:(delete t[o.str],l)}function a(o){return o instanceof wC._Code&&o._items.some(l=>l instanceof wC.Name&&t[l.str]===1&&r[l.str]!==void 0)}}function sOc(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function hji(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,wC._)`!${EPr(e)}`}om.not=hji;var oOc=mji(om.operators.AND);function aOc(...e){return e.reduce(oOc)}om.and=aOc;var cOc=mji(om.operators.OR);function lOc(...e){return e.reduce(cOc)}om.or=lOc;function mji(e){return(t,r)=>t===wC.nil?r:r===wC.nil?t:(0,wC._)`${EPr(t)} ${e} ${EPr(r)}`}function EPr(e){return e instanceof wC.Name?e:(0,wC._)`(${e})`}});var B_=H(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.checkStrictMode=Bm.getErrorPath=Bm.Type=Bm.useFunc=Bm.setEvaluated=Bm.evaluatedPropsToName=Bm.mergeEvaluated=Bm.eachItem=Bm.unescapeJsonPointer=Bm.escapeJsonPointer=Bm.escapeFragment=Bm.unescapeFragment=Bm.schemaRefOrVal=Bm.schemaHasRulesButRef=Bm.schemaHasRules=Bm.checkUnknownRules=Bm.alwaysValidSchema=Bm.toHash=void 0;var zb=Hh(),uOc=o8e();function gOc(e){let t={};for(let r of e)t[r]=!0;return t}Bm.toHash=gOc;function AOc(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yji(e,t),!bji(t,e.self.RULES.all))}Bm.alwaysValidSchema=AOc;function yji(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let o in t)a[o]||vji(e,`unknown keyword: "${o}"`)}Bm.checkUnknownRules=yji;function bji(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}Bm.schemaHasRules=bji;function dOc(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}Bm.schemaHasRulesButRef=dOc;function pOc({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,zb._)`${r}`}return(0,zb._)`${e}${t}${(0,zb.getProperty)(n)}`}Bm.schemaRefOrVal=pOc;function fOc(e){return Eji(decodeURIComponent(e))}Bm.unescapeFragment=fOc;function IOc(e){return encodeURIComponent(vPr(e))}Bm.escapeFragment=IOc;function vPr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Bm.escapeJsonPointer=vPr;function Eji(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Bm.unescapeJsonPointer=Eji;function hOc(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}Bm.eachItem=hOc;function Cji({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,o,l,A)=>{let f=l===void 0?o:l instanceof zb.Name?(o instanceof zb.Name?e(a,o,l):t(a,o,l),l):o instanceof zb.Name?(t(a,l,o),o):r(o,l);return A===zb.Name&&!(f instanceof zb.Name)?n(a,f):f}}Bm.mergeEvaluated={props:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,zb._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,zb._)`${r} || {}`).code((0,zb._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,zb._)`${r} || {}`),BPr(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Sji}),items:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,zb._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,zb._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Sji(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,zb._)`{}`);return t!==void 0&&BPr(e,r,t),r}Bm.evaluatedPropsToName=Sji;function BPr(e,t,r){Object.keys(r).forEach(n=>e.assign((0,zb._)`${t}${(0,zb.getProperty)(n)}`,!0))}Bm.setEvaluated=BPr;var _ji={};function mOc(e,t){return e.scopeValue("func",{ref:t,code:_ji[t.code]||(_ji[t.code]=new uOc._Code(t.code))})}Bm.useFunc=mOc;var SPr;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(SPr||(Bm.Type=SPr={}));function COc(e,t,r){if(e instanceof zb.Name){let n=t===SPr.Num;return r?n?(0,zb._)`"[" + ${e} + "]"`:(0,zb._)`"['" + ${e} + "']"`:n?(0,zb._)`"/" + ${e}`:(0,zb._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,zb.getProperty)(e).toString():"/"+vPr(e)}Bm.getErrorPath=COc;function vji(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}Bm.checkStrictMode=vji});var rte=H(wPr=>{"use strict";Object.defineProperty(wPr,"__esModule",{value:!0});var QG=Hh(),_Oc={data:new QG.Name("data"),valCxt:new QG.Name("valCxt"),instancePath:new QG.Name("instancePath"),parentData:new QG.Name("parentData"),parentDataProperty:new QG.Name("parentDataProperty"),rootData:new QG.Name("rootData"),dynamicAnchors:new QG.Name("dynamicAnchors"),vErrors:new QG.Name("vErrors"),errors:new QG.Name("errors"),this:new QG.Name("this"),self:new QG.Name("self"),scope:new QG.Name("scope"),json:new QG.Name("json"),jsonPos:new QG.Name("jsonPos"),jsonLen:new QG.Name("jsonLen"),jsonPart:new QG.Name("jsonPart")};wPr.default=_Oc});var A8e=H(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.extendErrors=XG.resetErrorsCount=XG.reportExtraError=XG.reportError=XG.keyword$DataError=XG.keywordError=void 0;var e_=Hh(),CBt=B_(),rL=rte();XG.keywordError={message:({keyword:e})=>(0,e_.str)`must pass "${e}" keyword validation`};XG.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,e_.str)`"${e}" keyword must be ${t} ($data)`:(0,e_.str)`"${e}" keyword is invalid ($data)`};function yOc(e,t=XG.keywordError,r,n){let{it:a}=e,{gen:o,compositeRule:l,allErrors:A}=a,f=Tji(e,t,r);n??(l||A)?Bji(o,f):wji(a,(0,e_._)`[${f}]`)}XG.reportError=yOc;function bOc(e,t=XG.keywordError,r){let{it:n}=e,{gen:a,compositeRule:o,allErrors:l}=n,A=Tji(e,t,r);Bji(a,A),o||l||wji(n,rL.default.vErrors)}XG.reportExtraError=bOc;function EOc(e,t){e.assign(rL.default.errors,t),e.if((0,e_._)`${rL.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,e_._)`${rL.default.vErrors}.length`,t),()=>e.assign(rL.default.vErrors,null)))}XG.resetErrorsCount=EOc;function SOc({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:o}){if(a===void 0)throw new Error("ajv implementation error");let l=e.name("err");e.forRange("i",a,rL.default.errors,A=>{e.const(l,(0,e_._)`${rL.default.vErrors}[${A}]`),e.if((0,e_._)`${l}.instancePath === undefined`,()=>e.assign((0,e_._)`${l}.instancePath`,(0,e_.strConcat)(rL.default.instancePath,o.errorPath))),e.assign((0,e_._)`${l}.schemaPath`,(0,e_.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,e_._)`${l}.schema`,r),e.assign((0,e_._)`${l}.data`,n))})}XG.extendErrors=SOc;function Bji(e,t){let r=e.const("err",t);e.if((0,e_._)`${rL.default.vErrors} === null`,()=>e.assign(rL.default.vErrors,(0,e_._)`[${r}]`),(0,e_._)`${rL.default.vErrors}.push(${r})`),e.code((0,e_._)`${rL.default.errors}++`)}function wji(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,e_._)`new ${e.ValidationError}(${t})`):(r.assign((0,e_._)`${n}.errors`,t),r.return(!1))}var i_e={keyword:new e_.Name("keyword"),schemaPath:new e_.Name("schemaPath"),params:new e_.Name("params"),propertyName:new e_.Name("propertyName"),message:new e_.Name("message"),schema:new e_.Name("schema"),parentSchema:new e_.Name("parentSchema")};function Tji(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,e_._)`{}`:vOc(e,t,r)}function vOc(e,t,r={}){let{gen:n,it:a}=e,o=[BOc(a,r),wOc(e,r)];return TOc(e,t,o),n.object(...o)}function BOc({errorPath:e},{instancePath:t}){let r=t?(0,e_.str)`${e}${(0,CBt.getErrorPath)(t,CBt.Type.Str)}`:e;return[rL.default.instancePath,(0,e_.strConcat)(rL.default.instancePath,r)]}function wOc({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,e_.str)`${t}/${e}`;return r&&(a=(0,e_.str)`${a}${(0,CBt.getErrorPath)(r,CBt.Type.Str)}`),[i_e.schemaPath,a]}function TOc(e,{params:t,message:r},n){let{keyword:a,data:o,schemaValue:l,it:A}=e,{opts:f,propertyName:I,topSchemaRef:C,schemaPath:b}=A;n.push([i_e.keyword,a],[i_e.params,typeof t=="function"?t(e):t||(0,e_._)`{}`]),f.messages&&n.push([i_e.message,typeof r=="function"?r(e):r]),f.verbose&&n.push([i_e.schema,l],[i_e.parentSchema,(0,e_._)`${C}${b}`],[rL.default.data,o]),I&&n.push([i_e.propertyName,I])}});var Nji=H(nke=>{"use strict";Object.defineProperty(nke,"__esModule",{value:!0});nke.boolOrEmptySchema=nke.topBoolOrEmptySchema=void 0;var ROc=A8e(),NOc=Hh(),DOc=rte(),kOc={message:"boolean schema is false"};function xOc(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Rji(e,!1):typeof r=="object"&&r.$async===!0?t.return(DOc.default.data):(t.assign((0,NOc._)`${n}.errors`,null),t.return(!0))}nke.topBoolOrEmptySchema=xOc;function GOc(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Rji(e)):r.var(t,!0)}nke.boolOrEmptySchema=GOc;function Rji(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,ROc.reportError)(a,kOc,void 0,t)}});var TPr=H(ike=>{"use strict";Object.defineProperty(ike,"__esModule",{value:!0});ike.getRules=ike.isJSONType=void 0;var FOc=["string","number","integer","boolean","null","object","array"],ZOc=new Set(FOc);function LOc(e){return typeof e=="string"&&ZOc.has(e)}ike.isJSONType=LOc;function VOc(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ike.getRules=VOc});var RPr=H(ale=>{"use strict";Object.defineProperty(ale,"__esModule",{value:!0});ale.shouldUseRule=ale.shouldUseGroup=ale.schemaHasRulesForType=void 0;function POc({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Dji(e,n)}ale.schemaHasRulesForType=POc;function Dji(e,t){return t.rules.some(r=>kji(e,r))}ale.shouldUseGroup=Dji;function kji(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}ale.shouldUseRule=kji});var d8e=H(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.reportTypeError=JG.checkDataTypes=JG.checkDataType=JG.coerceAndCheckDataType=JG.getJSONTypes=JG.getSchemaTypes=JG.DataType=void 0;var WOc=TPr(),OOc=RPr(),MOc=A8e(),Bh=Hh(),xji=B_(),ske;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ske||(JG.DataType=ske={}));function HOc(e){let t=Gji(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}JG.getSchemaTypes=HOc;function Gji(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(WOc.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}JG.getJSONTypes=Gji;function YOc(e,t){let{gen:r,data:n,opts:a}=e,o=QOc(t,a.coerceTypes),l=t.length>0&&!(o.length===0&&t.length===1&&(0,OOc.schemaHasRulesForType)(e,t[0]));if(l){let A=DPr(t,n,a.strictNumbers,ske.Wrong);r.if(A,()=>{o.length?XOc(e,t,o):kPr(e)})}return l}JG.coerceAndCheckDataType=YOc;var Fji=new Set(["string","number","integer","boolean","null"]);function QOc(e,t){return t?e.filter(r=>Fji.has(r)||t==="array"&&r==="array"):[]}function XOc(e,t,r){let{gen:n,data:a,opts:o}=e,l=n.let("dataType",(0,Bh._)`typeof ${a}`),A=n.let("coerced",(0,Bh._)`undefined`);o.coerceTypes==="array"&&n.if((0,Bh._)`${l} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,Bh._)`${a}[0]`).assign(l,(0,Bh._)`typeof ${a}`).if(DPr(t,a,o.strictNumbers),()=>n.assign(A,a))),n.if((0,Bh._)`${A} !== undefined`);for(let I of r)(Fji.has(I)||I==="array"&&o.coerceTypes==="array")&&f(I);n.else(),kPr(e),n.endIf(),n.if((0,Bh._)`${A} !== undefined`,()=>{n.assign(a,A),JOc(e,A)});function f(I){switch(I){case"string":n.elseIf((0,Bh._)`${l} == "number" || ${l} == "boolean"`).assign(A,(0,Bh._)`"" + ${a}`).elseIf((0,Bh._)`${a} === null`).assign(A,(0,Bh._)`""`);return;case"number":n.elseIf((0,Bh._)`${l} == "boolean" || ${a} === null || (${l} == "string" && ${a} && ${a} == +${a})`).assign(A,(0,Bh._)`+${a}`);return;case"integer":n.elseIf((0,Bh._)`${l} === "boolean" || ${a} === null || (${l} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(A,(0,Bh._)`+${a}`);return;case"boolean":n.elseIf((0,Bh._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(A,!1).elseIf((0,Bh._)`${a} === "true" || ${a} === 1`).assign(A,!0);return;case"null":n.elseIf((0,Bh._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(A,null);return;case"array":n.elseIf((0,Bh._)`${l} === "string" || ${l} === "number" - || ${l} === "boolean" || ${a} === null`).assign(A,(0,Bh._)`[${a}]`)}}}function XOc({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,Bh._)`${t} !== undefined`,()=>e.assign((0,Bh._)`${t}[${r}]`,n))}function NPr(e,t,r,n=ske.Correct){let a=n===ske.Correct?Bh.operators.EQ:Bh.operators.NEQ,o;switch(e){case"null":return(0,Bh._)`${t} ${a} null`;case"array":o=(0,Bh._)`Array.isArray(${t})`;break;case"object":o=(0,Bh._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=l((0,Bh._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=l();break;default:return(0,Bh._)`typeof ${t} ${a} ${e}`}return n===ske.Correct?o:(0,Bh.not)(o);function l(A=Bh.nil){return(0,Bh.and)((0,Bh._)`typeof ${t} == "number"`,A,r?(0,Bh._)`isFinite(${t})`:Bh.nil)}}JG.checkDataType=NPr;function DPr(e,t,r,n){if(e.length===1)return NPr(e[0],t,r,n);let a,o=(0,xji.toHash)(e);if(o.array&&o.object){let l=(0,Bh._)`typeof ${t} != "object"`;a=o.null?l:(0,Bh._)`!${t} || ${l}`,delete o.null,delete o.array,delete o.object}else a=Bh.nil;o.number&&delete o.integer;for(let l in o)a=(0,Bh.and)(a,NPr(l,t,r,n));return a}JG.checkDataTypes=DPr;var JOc={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,Bh._)`{type: ${e}}`:(0,Bh._)`{type: ${t}}`};function kPr(e){let t=UOc(e);(0,OOc.reportError)(t,JOc)}JG.reportTypeError=kPr;function UOc(e){let{gen:t,data:r,schema:n}=e,a=(0,xji.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var Lji=H(_Bt=>{"use strict";Object.defineProperty(_Bt,"__esModule",{value:!0});_Bt.assignDefaults=void 0;var oke=Hh(),KOc=B_();function jOc(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Zji(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,o)=>Zji(e,o,a.default))}_Bt.assignDefaults=jOc;function Zji(e,t,r){let{gen:n,compositeRule:a,data:o,opts:l}=e;if(r===void 0)return;let A=(0,oke._)`${o}${(0,oke.getProperty)(t)}`;if(a){(0,KOc.checkStrictMode)(e,`default is ignored for: ${A}`);return}let f=(0,oke._)`${A} === undefined`;l.useDefaults==="empty"&&(f=(0,oke._)`${f} || ${A} === null || ${A} === ""`),n.if(f,(0,oke._)`${A} = ${(0,oke.stringify)(r)}`)}});var IH=H(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.validateUnion=lb.validateArray=lb.usePattern=lb.callValidateCode=lb.schemaProperties=lb.allSchemaProperties=lb.noPropertyInData=lb.propertyInData=lb.isOwnProperty=lb.hasPropFunc=lb.reportMissingProp=lb.checkMissingProp=lb.checkReportMissingProp=void 0;var X1=Hh(),xPr=B_(),cle=rte(),zOc=B_();function qOc(e,t){let{gen:r,data:n,it:a}=e;r.if(FPr(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,X1._)`${t}`},!0),e.error()})}lb.checkReportMissingProp=qOc;function $Oc({gen:e,data:t,it:{opts:r}},n,a){return(0,X1.or)(...n.map(o=>(0,X1.and)(FPr(e,t,o,r.ownProperties),(0,X1._)`${a} = ${o}`)))}lb.checkMissingProp=$Oc;function e3c(e,t){e.setParams({missingProperty:t},!0),e.error()}lb.reportMissingProp=e3c;function Vji(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,X1._)`Object.prototype.hasOwnProperty`})}lb.hasPropFunc=Vji;function GPr(e,t,r){return(0,X1._)`${Vji(e)}.call(${t}, ${r})`}lb.isOwnProperty=GPr;function t3c(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} !== undefined`;return n?(0,X1._)`${a} && ${GPr(e,t,r)}`:a}lb.propertyInData=t3c;function FPr(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} === undefined`;return n?(0,X1.or)(a,(0,X1.not)(GPr(e,t,r))):a}lb.noPropertyInData=FPr;function Pji(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}lb.allSchemaProperties=Pji;function r3c(e,t){return Pji(t).filter(r=>!(0,xPr.alwaysValidSchema)(e,t[r]))}lb.schemaProperties=r3c;function n3c({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:o},it:l},A,f,I){let C=I?(0,X1._)`${e}, ${t}, ${n}${a}`:t,b=[[cle.default.instancePath,(0,X1.strConcat)(cle.default.instancePath,o)],[cle.default.parentData,l.parentData],[cle.default.parentDataProperty,l.parentDataProperty],[cle.default.rootData,cle.default.rootData]];l.opts.dynamicRef&&b.push([cle.default.dynamicAnchors,cle.default.dynamicAnchors]);let E=(0,X1._)`${C}, ${r.object(...b)}`;return f!==X1.nil?(0,X1._)`${A}.call(${f}, ${E})`:(0,X1._)`${A}(${E})`}lb.callValidateCode=n3c;var i3c=(0,X1._)`new RegExp`;function s3c({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,o=a(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,X1._)`${a.code==="new RegExp"?i3c:(0,zOc.useFunc)(e,a)}(${r}, ${n})`})}lb.usePattern=s3c;function o3c(e){let{gen:t,data:r,keyword:n,it:a}=e,o=t.name("valid");if(a.allErrors){let A=t.let("valid",!0);return l(()=>t.assign(A,!1)),A}return t.var(o,!0),l(()=>t.break()),o;function l(A){let f=t.const("len",(0,X1._)`${r}.length`);t.forRange("i",0,f,I=>{e.subschema({keyword:n,dataProp:I,dataPropType:xPr.Type.Num},o),t.if((0,X1.not)(o),A)})}}lb.validateArray=o3c;function a3c(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(f=>(0,xPr.alwaysValidSchema)(a,f))&&!a.opts.unevaluated)return;let l=t.let("valid",!1),A=t.name("_valid");t.block(()=>r.forEach((f,I)=>{let C=e.subschema({keyword:n,schemaProp:I,compositeRule:!0},A);t.assign(l,(0,X1._)`${l} || ${A}`),e.mergeValidEvaluated(C,A)||t.if((0,X1.not)(l))})),e.result(l,()=>e.reset(),()=>e.error(!0))}lb.validateUnion=a3c});var Mji=H(Vj=>{"use strict";Object.defineProperty(Vj,"__esModule",{value:!0});Vj.validateKeywordUsage=Vj.validSchemaType=Vj.funcKeywordCode=Vj.macroKeywordCode=void 0;var nL=Hh(),s_e=rte(),c3c=IH(),l3c=A8e();function u3c(e,t){let{gen:r,keyword:n,schema:a,parentSchema:o,it:l}=e,A=t.macro.call(l.self,a,o,l),f=Oji(r,n,A);l.opts.validateSchema!==!1&&l.self.validateSchema(A,!0);let I=r.name("valid");e.subschema({schema:A,schemaPath:nL.nil,errSchemaPath:`${l.errSchemaPath}/${n}`,topSchemaRef:f,compositeRule:!0},I),e.pass(I,()=>e.error(!0))}Vj.macroKeywordCode=u3c;function g3c(e,t){var r;let{gen:n,keyword:a,schema:o,parentSchema:l,$data:A,it:f}=e;d3c(f,t);let I=!A&&t.compile?t.compile.call(f.self,o,l,f):t.validate,C=Oji(n,a,I),b=n.let("valid");e.block$data(b,E),e.ok((r=t.valid)!==null&&r!==void 0?r:b);function E(){if(t.errors===!1)F(),t.modifying&&Wji(e),Q(()=>e.error());else{let X=t.async?N():B();t.modifying&&Wji(e),Q(()=>A3c(e,X))}}function N(){let X=n.let("ruleErrs",null);return n.try(()=>F((0,nL._)`await `),ae=>n.assign(b,!1).if((0,nL._)`${ae} instanceof ${f.ValidationError}`,()=>n.assign(X,(0,nL._)`${ae}.errors`),()=>n.throw(ae))),X}function B(){let X=(0,nL._)`${C}.errors`;return n.assign(X,null),F(nL.nil),X}function F(X=t.async?(0,nL._)`await `:nL.nil){let ae=f.opts.passContext?s_e.default.this:s_e.default.self,ne=!("compile"in t&&!A||t.schema===!1);n.assign(b,(0,nL._)`${X}${(0,c3c.callValidateCode)(e,C,ae,ne)}`,t.modifying)}function Q(X){var ae;n.if((0,nL.not)((ae=t.valid)!==null&&ae!==void 0?ae:b),X)}}Vj.funcKeywordCode=g3c;function Wji(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,nL._)`${n.parentData}[${n.parentDataProperty}]`))}function A3c(e,t){let{gen:r}=e;r.if((0,nL._)`Array.isArray(${t})`,()=>{r.assign(s_e.default.vErrors,(0,nL._)`${s_e.default.vErrors} === null ? ${t} : ${s_e.default.vErrors}.concat(${t})`).assign(s_e.default.errors,(0,nL._)`${s_e.default.vErrors}.length`),(0,l3c.extendErrors)(e)},()=>e.error())}function d3c({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Oji(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,nL.stringify)(r)})}function p3c(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Vj.validSchemaType=p3c;function f3c({schema:e,opts:t,self:r,errSchemaPath:n},a,o){if(Array.isArray(a.keyword)?!a.keyword.includes(o):a.keyword!==o)throw new Error("ajv implementation error");let l=a.dependencies;if(l?.some(A=>!Object.prototype.hasOwnProperty.call(e,A)))throw new Error(`parent schema must have dependencies of ${o}: ${l.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[o])){let f=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(f);else throw new Error(f)}}Vj.validateKeywordUsage=f3c});var Yji=H(lle=>{"use strict";Object.defineProperty(lle,"__esModule",{value:!0});lle.extendSubschemaMode=lle.extendSubschemaData=lle.getSubschema=void 0;var Pj=Hh(),Hji=B_();function I3c(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:o,topSchemaRef:l}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let A=e.schema[t];return r===void 0?{schema:A,schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:A[r],schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}${(0,Pj.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Hji.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||o===void 0||l===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:l,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}lle.getSubschema=I3c;function h3c(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:o,propertyName:l}){if(a!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:A}=t;if(r!==void 0){let{errorPath:I,dataPathArr:C,opts:b}=t,E=A.let("data",(0,Pj._)`${t.data}${(0,Pj.getProperty)(r)}`,!0);f(E),e.errorPath=(0,Pj.str)`${I}${(0,Hji.getErrorPath)(r,n,b.jsPropertySyntax)}`,e.parentDataProperty=(0,Pj._)`${r}`,e.dataPathArr=[...C,e.parentDataProperty]}if(a!==void 0){let I=a instanceof Pj.Name?a:A.let("data",a,!0);f(I),l!==void 0&&(e.propertyName=l)}o&&(e.dataTypes=o);function f(I){e.data=I,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,I]}}lle.extendSubschemaData=h3c;function m3c(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:o}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}lle.extendSubschemaMode=m3c});var ZPr=H((BJu,Qji)=>{"use strict";Qji.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,a,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[a]))return!1;for(a=n;a--!==0;){var l=o[a];if(!e(t[l],r[l]))return!1}return!0}return t!==t&&r!==r}});var Jji=H((wJu,Xji)=>{"use strict";var ule=Xji.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};yBt(t,n,a,e,"",e)};ule.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ule.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ule.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ule.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function yBt(e,t,r,n,a,o,l,A,f,I){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,o,l,A,f,I);for(var C in n){var b=n[C];if(Array.isArray(b)){if(C in ule.arrayKeywords)for(var E=0;E{"use strict";Object.defineProperty(kV,"__esModule",{value:!0});kV.getSchemaRefs=kV.resolveUrl=kV.normalizeId=kV._getFullPath=kV.getFullPath=kV.inlineRef=void 0;var _3c=B_(),y3c=ZPr(),b3c=Jji(),E3c=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function S3c(e,t=!0){return typeof e=="boolean"?!0:t===!0?!LPr(e):t?Uji(e)<=t:!1}kV.inlineRef=S3c;var v3c=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function LPr(e){for(let t in e){if(v3c.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(LPr)||typeof r=="object"&&LPr(r))return!0}return!1}function Uji(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!E3c.has(r)&&(typeof e[r]=="object"&&(0,_3c.eachItem)(e[r],n=>t+=Uji(n)),t===1/0))return 1/0}return t}function Kji(e,t="",r){r!==!1&&(t=ake(t));let n=e.parse(t);return jji(e,n)}kV.getFullPath=Kji;function jji(e,t){return e.serialize(t).split("#")[0]+"#"}kV._getFullPath=jji;var B3c=/#\/?$/;function ake(e){return e?e.replace(B3c,""):""}kV.normalizeId=ake;function w3c(e,t,r){return r=ake(r),e.resolve(t,r)}kV.resolveUrl=w3c;var T3c=/^[a-z_][-a-z0-9._]*$/i;function R3c(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=ake(e[r]||t),o={"":a},l=Kji(n,a,!1),A={},f=new Set;return b3c(e,{allKeys:!0},(b,E,N,B)=>{if(B===void 0)return;let F=l+E,Q=o[B];typeof b[r]=="string"&&(Q=X.call(this,b[r])),ae.call(this,b.$anchor),ae.call(this,b.$dynamicAnchor),o[E]=Q;function X(ne){let ce=this.opts.uriResolver.resolve;if(ne=ake(Q?ce(Q,ne):ne),f.has(ne))throw C(ne);f.add(ne);let fe=this.refs[ne];return typeof fe=="string"&&(fe=this.refs[fe]),typeof fe=="object"?I(b,fe.schema,ne):ne!==ake(F)&&(ne[0]==="#"?(I(b,A[ne],ne),A[ne]=b):this.refs[ne]=F),ne}function ae(ne){if(typeof ne=="string"){if(!T3c.test(ne))throw new Error(`invalid anchor "${ne}"`);X.call(this,`#${ne}`)}}}),A;function I(b,E,N){if(E!==void 0&&!y3c(b,E))throw C(N)}function C(b){return new Error(`reference "${b}" resolves to more than one schema`)}}kV.getSchemaRefs=R3c});var h8e=H(gle=>{"use strict";Object.defineProperty(gle,"__esModule",{value:!0});gle.getData=gle.KeywordCxt=gle.validateFunctionCode=void 0;var t6i=Nji(),zji=d8e(),PPr=RPr(),bBt=d8e(),N3c=Lji(),I8e=Mji(),VPr=Yji(),Zd=Hh(),cI=rte(),D3c=p8e(),nte=B_(),f8e=A8e();function k3c(e){if(i6i(e)&&(s6i(e),n6i(e))){F3c(e);return}r6i(e,()=>(0,t6i.topBoolOrEmptySchema)(e))}gle.validateFunctionCode=k3c;function r6i({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},o){a.code.es5?e.func(t,(0,Zd._)`${cI.default.data}, ${cI.default.valCxt}`,n.$async,()=>{e.code((0,Zd._)`"use strict"; ${qji(r,a)}`),G3c(e,a),e.code(o)}):e.func(t,(0,Zd._)`${cI.default.data}, ${x3c(a)}`,n.$async,()=>e.code(qji(r,a)).code(o))}function x3c(e){return(0,Zd._)`{${cI.default.instancePath}="", ${cI.default.parentData}, ${cI.default.parentDataProperty}, ${cI.default.rootData}=${cI.default.data}${e.dynamicRef?(0,Zd._)`, ${cI.default.dynamicAnchors}={}`:Zd.nil}}={}`}function G3c(e,t){e.if(cI.default.valCxt,()=>{e.var(cI.default.instancePath,(0,Zd._)`${cI.default.valCxt}.${cI.default.instancePath}`),e.var(cI.default.parentData,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentData}`),e.var(cI.default.parentDataProperty,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentDataProperty}`),e.var(cI.default.rootData,(0,Zd._)`${cI.default.valCxt}.${cI.default.rootData}`),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`${cI.default.valCxt}.${cI.default.dynamicAnchors}`)},()=>{e.var(cI.default.instancePath,(0,Zd._)`""`),e.var(cI.default.parentData,(0,Zd._)`undefined`),e.var(cI.default.parentDataProperty,(0,Zd._)`undefined`),e.var(cI.default.rootData,cI.default.data),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`{}`)})}function F3c(e){let{schema:t,opts:r,gen:n}=e;r6i(e,()=>{r.$comment&&t.$comment&&a6i(e),W3c(e),n.let(cI.default.vErrors,null),n.let(cI.default.errors,0),r.unevaluated&&Z3c(e),o6i(e),H3c(e)})}function Z3c(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,Zd._)`${r}.evaluated`),t.if((0,Zd._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,Zd._)`${e.evaluated}.props`,(0,Zd._)`undefined`)),t.if((0,Zd._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,Zd._)`${e.evaluated}.items`,(0,Zd._)`undefined`))}function qji(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,Zd._)`/*# sourceURL=${r} */`:Zd.nil}function L3c(e,t){if(i6i(e)&&(s6i(e),n6i(e))){V3c(e,t);return}(0,t6i.boolOrEmptySchema)(e,t)}function n6i({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function i6i(e){return typeof e.schema!="boolean"}function V3c(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&a6i(e),O3c(e),M3c(e);let o=n.const("_errs",cI.default.errors);o6i(e,o),n.var(t,(0,Zd._)`${o} === ${cI.default.errors}`)}function s6i(e){(0,nte.checkUnknownRules)(e),P3c(e)}function o6i(e,t){if(e.opts.jtd)return $ji(e,[],!1,t);let r=(0,zji.getSchemaTypes)(e.schema),n=(0,zji.coerceAndCheckDataType)(e,r);$ji(e,r,!n,t)}function P3c(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,nte.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function W3c(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,nte.checkStrictMode)(e,"default is ignored in the schema root")}function O3c(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,D3c.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function M3c(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function a6i({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let o=r.$comment;if(a.$comment===!0)e.code((0,Zd._)`${cI.default.self}.logger.log(${o})`);else if(typeof a.$comment=="function"){let l=(0,Zd.str)`${n}/$comment`,A=e.scopeValue("root",{ref:t.root});e.code((0,Zd._)`${cI.default.self}.opts.$comment(${o}, ${l}, ${A}.schema)`)}}function H3c(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:o}=e;r.$async?t.if((0,Zd._)`${cI.default.errors} === 0`,()=>t.return(cI.default.data),()=>t.throw((0,Zd._)`new ${a}(${cI.default.vErrors})`)):(t.assign((0,Zd._)`${n}.errors`,cI.default.vErrors),o.unevaluated&&Y3c(e),t.return((0,Zd._)`${cI.default.errors} === 0`))}function Y3c({gen:e,evaluated:t,props:r,items:n}){r instanceof Zd.Name&&e.assign((0,Zd._)`${t}.props`,r),n instanceof Zd.Name&&e.assign((0,Zd._)`${t}.items`,n)}function $ji(e,t,r,n){let{gen:a,schema:o,data:l,allErrors:A,opts:f,self:I}=e,{RULES:C}=I;if(o.$ref&&(f.ignoreKeywordsWithRef||!(0,nte.schemaHasRulesButRef)(o,C))){a.block(()=>l6i(e,"$ref",C.all.$ref.definition));return}f.jtd||Q3c(e,t),a.block(()=>{for(let E of C.rules)b(E);b(C.post)});function b(E){(0,PPr.shouldUseGroup)(o,E)&&(E.type?(a.if((0,bBt.checkDataType)(E.type,l,f.strictNumbers)),e6i(e,E),t.length===1&&t[0]===E.type&&r&&(a.else(),(0,bBt.reportTypeError)(e)),a.endIf()):e6i(e,E),A||a.if((0,Zd._)`${cI.default.errors} === ${n||0}`))}}function e6i(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,N3c.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,PPr.shouldUseRule)(n,o)&&l6i(e,o.keyword,o.definition,t.type)})}function Q3c(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(X3c(e,t),e.opts.allowUnionTypes||J3c(e,t),U3c(e,e.dataTypes))}function X3c(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{c6i(e.dataTypes,r)||WPr(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),j3c(e,t)}}function J3c(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&WPr(e,"use allowUnionTypes to allow union type keyword")}function U3c(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,PPr.shouldUseRule)(e.schema,a)){let{type:o}=a.definition;o.length&&!o.some(l=>K3c(t,l))&&WPr(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function K3c(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function c6i(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function j3c(e,t){let r=[];for(let n of e.dataTypes)c6i(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function WPr(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,nte.checkStrictMode)(e,t,e.opts.strictTypes)}var EBt=class{constructor(t,r,n){if((0,I8e.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,nte.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",u6i(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,I8e.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",cI.default.errors))}result(t,r,n){this.failResult((0,Zd.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,Zd.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,Zd._)`${r} !== undefined && (${(0,Zd.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?f8e.reportExtraError:f8e.reportError)(this,this.def.error,r)}$dataError(){(0,f8e.reportError)(this,this.def.$dataError||f8e.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f8e.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=Zd.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=Zd.nil,r=Zd.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:o,def:l}=this;n.if((0,Zd.or)((0,Zd._)`${a} === undefined`,r)),t!==Zd.nil&&n.assign(t,!0),(o.length||l.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==Zd.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:a,it:o}=this;return(0,Zd.or)(l(),A());function l(){if(n.length){if(!(r instanceof Zd.Name))throw new Error("ajv implementation error");let f=Array.isArray(n)?n:[n];return(0,Zd._)`${(0,bBt.checkDataTypes)(f,r,o.opts.strictNumbers,bBt.DataType.Wrong)}`}return Zd.nil}function A(){if(a.validateSchema){let f=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,Zd._)`!${f}(${r})`}return Zd.nil}}subschema(t,r){let n=(0,VPr.getSubschema)(this.it,t);(0,VPr.extendSubschemaData)(n,this.it,t),(0,VPr.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return L3c(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=nte.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=nte.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,Zd.Name)),!0}};gle.KeywordCxt=EBt;function l6i(e,t,r,n){let a=new EBt(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,I8e.funcKeywordCode)(a,r):"macro"in r?(0,I8e.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,I8e.funcKeywordCode)(a,r)}var z3c=/^\/(?:[^~]|~0|~1)*$/,q3c=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function u6i(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,o;if(e==="")return cI.default.rootData;if(e[0]==="/"){if(!z3c.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,o=cI.default.rootData}else{let I=q3c.exec(e);if(!I)throw new Error(`Invalid JSON-pointer: ${e}`);let C=+I[1];if(a=I[2],a==="#"){if(C>=t)throw new Error(f("property/index",C));return n[t-C]}if(C>t)throw new Error(f("data",C));if(o=r[t-C],!a)return o}let l=o,A=a.split("/");for(let I of A)I&&(o=(0,Zd._)`${o}${(0,Zd.getProperty)((0,nte.unescapeJsonPointer)(I))}`,l=(0,Zd._)`${l} && ${o}`);return l;function f(I,C){return`Cannot access ${I} ${C} levels up, current level is ${t}`}}gle.getData=u6i});var SBt=H(MPr=>{"use strict";Object.defineProperty(MPr,"__esModule",{value:!0});var OPr=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};MPr.default=OPr});var m8e=H(QPr=>{"use strict";Object.defineProperty(QPr,"__esModule",{value:!0});var HPr=p8e(),YPr=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,HPr.resolveUrl)(t,r,n),this.missingSchema=(0,HPr.normalizeId)((0,HPr.getFullPath)(t,this.missingRef))}};QPr.default=YPr});var BBt=H(hH=>{"use strict";Object.defineProperty(hH,"__esModule",{value:!0});hH.resolveSchema=hH.getCompilingSchema=hH.resolveRef=hH.compileSchema=hH.SchemaEnv=void 0;var w4=Hh(),$3c=SBt(),o_e=rte(),T4=p8e(),g6i=B_(),e5c=h8e(),cke=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,T4.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};hH.SchemaEnv=cke;function JPr(e){let t=A6i.call(this,e);if(t)return t;let r=(0,T4.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:o}=this.opts,l=new w4.CodeGen(this.scope,{es5:n,lines:a,ownProperties:o}),A;e.$async&&(A=l.scopeValue("Error",{ref:$3c.default,code:(0,w4._)`require("ajv/dist/runtime/validation_error").default`}));let f=l.scopeName("validate");e.validateName=f;let I={gen:l,allErrors:this.opts.allErrors,data:o_e.default.data,parentData:o_e.default.parentData,parentDataProperty:o_e.default.parentDataProperty,dataNames:[o_e.default.data],dataPathArr:[w4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,w4.stringify)(e.schema)}:{ref:e.schema}),validateName:f,ValidationError:A,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:w4.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,w4._)`""`,opts:this.opts,self:this},C;try{this._compilations.add(e),(0,e5c.validateFunctionCode)(I),l.optimize(this.opts.code.optimize);let b=l.toString();C=`${l.scopeRefs(o_e.default.scope)}return ${b}`,this.opts.code.process&&(C=this.opts.code.process(C,e));let N=new Function(`${o_e.default.self}`,`${o_e.default.scope}`,C)(this,this.scope.get());if(this.scope.value(f,{ref:N}),N.errors=null,N.schema=e.schema,N.schemaEnv=e,e.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:f,validateCode:b,scopeValues:l._values}),this.opts.unevaluated){let{props:B,items:F}=I;N.evaluated={props:B instanceof w4.Name?void 0:B,items:F instanceof w4.Name?void 0:F,dynamicProps:B instanceof w4.Name,dynamicItems:F instanceof w4.Name},N.source&&(N.source.evaluated=(0,w4.stringify)(N.evaluated))}return e.validate=N,e}catch(b){throw delete e.validate,delete e.validateName,C&&this.logger.error("Error compiling schema, function code:",C),b}finally{this._compilations.delete(e)}}hH.compileSchema=JPr;function t5c(e,t,r){var n;r=(0,T4.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let o=i5c.call(this,e,r);if(o===void 0){let l=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:A}=this.opts;l&&(o=new cke({schema:l,schemaId:A,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=r5c.call(this,o)}hH.resolveRef=t5c;function r5c(e){return(0,T4.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:JPr.call(this,e)}function A6i(e){for(let t of this._compilations)if(n5c(t,e))return t}hH.getCompilingSchema=A6i;function n5c(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function i5c(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||vBt.call(this,e,t)}function vBt(e,t){let r=this.opts.uriResolver.parse(t),n=(0,T4._getFullPath)(this.opts.uriResolver,r),a=(0,T4.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return XPr.call(this,r,e);let o=(0,T4.normalizeId)(n),l=this.refs[o]||this.schemas[o];if(typeof l=="string"){let A=vBt.call(this,e,l);return typeof A?.schema!="object"?void 0:XPr.call(this,r,A)}if(typeof l?.schema=="object"){if(l.validate||JPr.call(this,l),o===(0,T4.normalizeId)(t)){let{schema:A}=l,{schemaId:f}=this.opts,I=A[f];return I&&(a=(0,T4.resolveUrl)(this.opts.uriResolver,a,I)),new cke({schema:A,schemaId:f,root:e,baseId:a})}return XPr.call(this,r,l)}}hH.resolveSchema=vBt;var s5c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function XPr(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let A of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let f=r[(0,g6i.unescapeFragment)(A)];if(f===void 0)return;r=f;let I=typeof r=="object"&&r[this.opts.schemaId];!s5c.has(A)&&I&&(t=(0,T4.resolveUrl)(this.opts.uriResolver,t,I))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,g6i.schemaHasRulesButRef)(r,this.RULES)){let A=(0,T4.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=vBt.call(this,n,A)}let{schemaId:l}=this.opts;if(o=o||new cke({schema:r,schemaId:l,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var d6i=H((xJu,o5c)=>{o5c.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var f6i=H((GJu,p6i)=>{"use strict";var a5c={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p6i.exports={HEX:a5c}});var E6i=H((FJu,b6i)=>{"use strict";var{HEX:c5c}=f6i();function C6i(e){if(y6i(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:u5c(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function UPr(e,t=!1){let r="",n=!0;for(let a of e){if(c5c[a]===void 0)return;a!=="0"&&n===!0&&(n=!1),n||(r+=a)}return t&&r.length===0&&(r="0"),r}function l5c(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],o=!1,l=!1,A=!1;function f(){if(a.length){if(o===!1){let I=UPr(a);if(I!==void 0)n.push(I);else return r.error=!0,!1}a.length=0}return!0}for(let I=0;I7){r.error=!0;break}I-1>=0&&e[I-1]===":"&&(l=!0);continue}else if(C==="%"){if(!f())break;o=!0}else{a.push(C);continue}}return a.length&&(o?r.zone=a.join(""):A?n.push(a.join("")):n.push(UPr(a))),r.address=n.join(""),r}function _6i(e,t={}){if(y6i(e,":")<2)return{host:e,isIPV6:!1};let r=l5c(e);if(r.error)return{host:e,isIPV6:!1};{let n=r.address,a=r.address;return r.zone&&(n+="%"+r.zone,a+="%25"+r.zone),{host:n,escapedHost:a,isIPV6:!0}}}function u5c(e,t){let r="",n=!0,a=e.length;for(let o=0;o{"use strict";var f5c=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,I5c=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function S6i(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function v6i(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function B6i(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function h5c(e){return e.secure=S6i(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function m5c(e){if((e.port===(S6i(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function C5c(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(I5c);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,o=KPr[a];e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function _5c(e,t){let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),a=`${r}:${t.nid||n}`,o=KPr[a];o&&(e=o.serialize(e,t));let l=e,A=e.nss;return l.path=`${n||t.nid}:${A}`,t.skipEscape=!0,l}function y5c(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!f5c.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function b5c(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var w6i={scheme:"http",domainHost:!0,parse:v6i,serialize:B6i},E5c={scheme:"https",domainHost:w6i.domainHost,parse:v6i,serialize:B6i},wBt={scheme:"ws",domainHost:!0,parse:h5c,serialize:m5c},S5c={scheme:"wss",domainHost:wBt.domainHost,parse:wBt.parse,serialize:wBt.serialize},v5c={scheme:"urn",parse:C5c,serialize:_5c,skipNormalize:!0},B5c={scheme:"urn:uuid",parse:y5c,serialize:b5c,skipNormalize:!0},KPr={http:w6i,https:E5c,ws:wBt,wss:S5c,urn:v5c,"urn:uuid":B5c};T6i.exports=KPr});var D6i=H((LJu,RBt)=>{"use strict";var{normalizeIPv6:w5c,normalizeIPv4:T5c,removeDotSegments:C8e,recomposeAuthority:R5c,normalizeComponentEncoding:TBt}=E6i(),jPr=R6i();function N5c(e,t){return typeof e=="string"?e=Wj(ite(e,t),t):typeof e=="object"&&(e=ite(Wj(e,t),t)),e}function D5c(e,t,r){let n=Object.assign({scheme:"null"},r),a=N6i(ite(e,n),ite(t,n),n,!0);return Wj(a,{...n,skipEscape:!0})}function N6i(e,t,r,n){let a={};return n||(e=ite(Wj(e,r),r),t=ite(Wj(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.path?(t.path.charAt(0)==="/"?a.path=C8e(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=C8e(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function k5c(e,t,r){return typeof e=="string"?(e=unescape(e),e=Wj(TBt(ite(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Wj(TBt(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=Wj(TBt(ite(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Wj(TBt(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function Wj(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),a=[],o=jPr[(n.scheme||r.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let l=R5c(r,n);if(l!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(l),r.path&&r.path.charAt(0)!=="/"&&a.push("/")),r.path!==void 0){let A=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(A=C8e(A)),l===void 0&&(A=A.replace(/^\/\//u,"/%2F")),a.push(A)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var x5c=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function G5c(e){let t=0;for(let r=0,n=e.length;r126||x5c[t])return!0;return!1}var F5c=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ite(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=e.indexOf("%")!==-1,o=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let l=e.match(F5c);if(l){if(n.scheme=l[1],n.userinfo=l[3],n.host=l[4],n.port=parseInt(l[5],10),n.path=l[6]||"",n.query=l[7],n.fragment=l[8],isNaN(n.port)&&(n.port=l[5]),n.host){let f=T5c(n.host);if(f.isIPV4===!1){let I=w5c(f.host,{isIPV4:!1});n.host=I.host.toLowerCase(),o=I.isIPV6}else n.host=f.host,o=!0}n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let A=jPr[(r.scheme||n.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!A||!A.unicodeSupport)&&n.host&&(r.domainHost||A&&A.domainHost)&&o===!1&&G5c(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(f){n.error=n.error||"Host's domain name can not be converted to ASCII: "+f}(!A||A&&!A.skipNormalize)&&(a&&n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),a&&n.host!==void 0&&(n.host=unescape(n.host)),n.path!==void 0&&n.path.length&&(n.path=escape(unescape(n.path))),n.fragment!==void 0&&n.fragment.length&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),A&&A.parse&&A.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var zPr={SCHEMES:jPr,normalize:N5c,resolve:D5c,resolveComponents:N6i,equal:k5c,serialize:Wj,parse:ite};RBt.exports=zPr;RBt.exports.default=zPr;RBt.exports.fastUri=zPr});var x6i=H(qPr=>{"use strict";Object.defineProperty(qPr,"__esModule",{value:!0});var k6i=D6i();k6i.code='require("ajv/dist/runtime/uri").default';qPr.default=k6i});var O6i=H(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.CodeGen=ex.Name=ex.nil=ex.stringify=ex.str=ex._=ex.KeywordCxt=void 0;var Z5c=h8e();Object.defineProperty(ex,"KeywordCxt",{enumerable:!0,get:function(){return Z5c.KeywordCxt}});var lke=Hh();Object.defineProperty(ex,"_",{enumerable:!0,get:function(){return lke._}});Object.defineProperty(ex,"str",{enumerable:!0,get:function(){return lke.str}});Object.defineProperty(ex,"stringify",{enumerable:!0,get:function(){return lke.stringify}});Object.defineProperty(ex,"nil",{enumerable:!0,get:function(){return lke.nil}});Object.defineProperty(ex,"Name",{enumerable:!0,get:function(){return lke.Name}});Object.defineProperty(ex,"CodeGen",{enumerable:!0,get:function(){return lke.CodeGen}});var L5c=SBt(),V6i=m8e(),V5c=TPr(),_8e=BBt(),P5c=Hh(),y8e=p8e(),NBt=d8e(),eWr=B_(),G6i=d6i(),W5c=x6i(),P6i=(e,t)=>new RegExp(e,t);P6i.code="new RegExp";var O5c=["removeAdditional","useDefaults","coerceTypes"],M5c=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),H5c={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Y5c={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},F6i=200;function Q5c(e){var t,r,n,a,o,l,A,f,I,C,b,E,N,B,F,Q,X,ae,ne,ce,fe,ue,de,be,Se;let De=e.strict,k=(t=e.code)===null||t===void 0?void 0:t.optimize,et=k===!0||k===void 0?1:k||0,ct=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:P6i,Me=(a=e.uriResolver)!==null&&a!==void 0?a:W5c.default;return{strictSchema:(l=(o=e.strictSchema)!==null&&o!==void 0?o:De)!==null&&l!==void 0?l:!0,strictNumbers:(f=(A=e.strictNumbers)!==null&&A!==void 0?A:De)!==null&&f!==void 0?f:!0,strictTypes:(C=(I=e.strictTypes)!==null&&I!==void 0?I:De)!==null&&C!==void 0?C:"log",strictTuples:(E=(b=e.strictTuples)!==null&&b!==void 0?b:De)!==null&&E!==void 0?E:"log",strictRequired:(B=(N=e.strictRequired)!==null&&N!==void 0?N:De)!==null&&B!==void 0?B:!1,code:e.code?{...e.code,optimize:et,regExp:ct}:{optimize:et,regExp:ct},loopRequired:(F=e.loopRequired)!==null&&F!==void 0?F:F6i,loopEnum:(Q=e.loopEnum)!==null&&Q!==void 0?Q:F6i,meta:(X=e.meta)!==null&&X!==void 0?X:!0,messages:(ae=e.messages)!==null&&ae!==void 0?ae:!0,inlineRefs:(ne=e.inlineRefs)!==null&&ne!==void 0?ne:!0,schemaId:(ce=e.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(fe=e.addUsedSchema)!==null&&fe!==void 0?fe:!0,validateSchema:(ue=e.validateSchema)!==null&&ue!==void 0?ue:!0,validateFormats:(de=e.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(be=e.unicodeRegExp)!==null&&be!==void 0?be:!0,int32range:(Se=e.int32range)!==null&&Se!==void 0?Se:!0,uriResolver:Me}}var b8e=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Q5c(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new P5c.ValueScope({scope:{},prefixes:M5c,es5:r,lines:n}),this.logger=z5c(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,V5c.getRules)(),Z6i.call(this,H5c,t,"NOT SUPPORTED"),Z6i.call(this,Y5c,t,"DEPRECATED","warn"),this._metaOpts=K5c.call(this),t.formats&&J5c.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&U5c.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),X5c.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=G6i;n==="id"&&(a={...G6i},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let a=n(r);return"$async"in n||(this.errors=n.errors),a}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,t,r);async function a(C,b){await o.call(this,C.$schema);let E=this._addSchema(C,b);return E.validate||l.call(this,E)}async function o(C){C&&!this.getSchema(C)&&await a.call(this,{$ref:C},!0)}async function l(C){try{return this._compileSchemaEnv(C)}catch(b){if(!(b instanceof V6i.default))throw b;return A.call(this,b),await f.call(this,b.missingSchema),l.call(this,C)}}function A({missingSchema:C,missingRef:b}){if(this.refs[C])throw new Error(`AnySchema ${C} is loaded but ${b} cannot be resolved`)}async function f(C){let b=await I.call(this,C);this.refs[C]||await o.call(this,b.$schema),this.refs[C]||this.addSchema(b,C,r)}async function I(C){let b=this._loading[C];if(b)return b;try{return await(this._loading[C]=n(C))}finally{delete this._loading[C]}}}addSchema(t,r,n,a=this.opts.validateSchema){if(Array.isArray(t)){for(let l of t)this.addSchema(l,void 0,n,a);return this}let o;if(typeof t=="object"){let{schemaId:l}=this.opts;if(o=t[l],o!==void 0&&typeof o!="string")throw new Error(`schema ${l} must be string`)}return r=(0,y8e.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,t);if(!a&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return a}getSchema(t){let r;for(;typeof(r=L6i.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new _8e.SchemaEnv({schema:{},schemaId:n});if(r=_8e.resolveSchema.call(this,a,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=L6i.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,y8e.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if($5c.call(this,n,r),!r)return(0,eWr.eachItem)(n,o=>$Pr.call(this,o)),this;tMc.call(this,r);let a={...r,type:(0,NBt.getJSONTypes)(r.type),schemaType:(0,NBt.getJSONTypes)(r.schemaType)};return(0,eWr.eachItem)(n,a.type.length===0?o=>$Pr.call(this,o,a):o=>a.type.forEach(l=>$Pr.call(this,o,a,l))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let a=n.rules.findIndex(o=>o.keyword===t);a>=0&&n.rules.splice(a,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,o)=>a+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let o=a.split("/").slice(1),l=t;for(let A of o)l=l[A];for(let A in n){let f=n[A];if(typeof f!="object")continue;let{$data:I}=f.definition,C=l[A];I&&C&&(l[A]=W6i(C))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,o=this.opts.addUsedSchema){let l,{schemaId:A}=this.opts;if(typeof t=="object")l=t[A];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let f=this._cache.get(t);if(f!==void 0)return f;n=(0,y8e.normalizeId)(l||n);let I=y8e.getSchemaRefs.call(this,t,n);return f=new _8e.SchemaEnv({schema:t,schemaId:A,meta:r,baseId:n,localRefs:I}),this._cache.set(f.schema,f),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=f),a&&this.validateSchema(t,!0),f}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):_8e.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{_8e.compileSchema.call(this,t)}finally{this.opts=r}}};b8e.ValidationError=L5c.default;b8e.MissingRefError=V6i.default;ex.default=b8e;function Z6i(e,t,r,n="error"){for(let a in e){let o=a;o in t&&this.logger[n](`${r}: option ${a}. ${e[o]}`)}}function L6i(e){return e=(0,y8e.normalizeId)(e),this.schemas[e]||this.refs[e]}function X5c(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function J5c(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function U5c(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function K5c(){let e={...this.opts};for(let t of O5c)delete e[t];return e}var j5c={log(){},warn(){},error(){}};function z5c(e){if(e===!1)return j5c;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var q5c=/^[a-z_$][a-z0-9_$:-]*$/i;function $5c(e,t){let{RULES:r}=this;if((0,eWr.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!q5c.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $Pr(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,l=a?o.post:o.rules.find(({type:f})=>f===r);if(l||(l={type:r,rules:[]},o.rules.push(l)),o.keywords[e]=!0,!t)return;let A={keyword:e,definition:{...t,type:(0,NBt.getJSONTypes)(t.type),schemaType:(0,NBt.getJSONTypes)(t.schemaType)}};t.before?eMc.call(this,l,A,t.before):l.rules.push(A),o.all[e]=A,(n=t.implements)===null||n===void 0||n.forEach(f=>this.addKeyword(f))}function eMc(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function tMc(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=W6i(t)),e.validateSchema=this.compile(t,!0))}var rMc={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function W6i(e){return{anyOf:[e,rMc]}}});var M6i=H(tWr=>{"use strict";Object.defineProperty(tWr,"__esModule",{value:!0});var nMc={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};tWr.default=nMc});var X6i=H(a_e=>{"use strict";Object.defineProperty(a_e,"__esModule",{value:!0});a_e.callRef=a_e.getValidate=void 0;var iMc=m8e(),H6i=IH(),xV=Hh(),uke=rte(),Y6i=BBt(),DBt=B_(),sMc={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:o,validateName:l,opts:A,self:f}=n,{root:I}=o;if((r==="#"||r==="#/")&&a===I.baseId)return b();let C=Y6i.resolveRef.call(f,I,a,r);if(C===void 0)throw new iMc.default(n.opts.uriResolver,a,r);if(C instanceof Y6i.SchemaEnv)return E(C);return N(C);function b(){if(o===I)return kBt(e,l,o,o.$async);let B=t.scopeValue("root",{ref:I});return kBt(e,(0,xV._)`${B}.validate`,I,I.$async)}function E(B){let F=Q6i(e,B);kBt(e,F,B,B.$async)}function N(B){let F=t.scopeValue("schema",A.code.source===!0?{ref:B,code:(0,xV.stringify)(B)}:{ref:B}),Q=t.name("valid"),X=e.subschema({schema:B,dataTypes:[],schemaPath:xV.nil,topSchemaRef:F,errSchemaPath:r},Q);e.mergeEvaluated(X),e.ok(Q)}}};function Q6i(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,xV._)`${r.scopeValue("wrapper",{ref:t})}.validate`}a_e.getValidate=Q6i;function kBt(e,t,r,n){let{gen:a,it:o}=e,{allErrors:l,schemaEnv:A,opts:f}=o,I=f.passContext?uke.default.this:xV.nil;n?C():b();function C(){if(!A.$async)throw new Error("async schema referenced by sync schema");let B=a.let("valid");a.try(()=>{a.code((0,xV._)`await ${(0,H6i.callValidateCode)(e,t,I)}`),N(t),l||a.assign(B,!0)},F=>{a.if((0,xV._)`!(${F} instanceof ${o.ValidationError})`,()=>a.throw(F)),E(F),l||a.assign(B,!1)}),e.ok(B)}function b(){e.result((0,H6i.callValidateCode)(e,t,I),()=>N(t),()=>E(t))}function E(B){let F=(0,xV._)`${B}.errors`;a.assign(uke.default.vErrors,(0,xV._)`${uke.default.vErrors} === null ? ${F} : ${uke.default.vErrors}.concat(${F})`),a.assign(uke.default.errors,(0,xV._)`${uke.default.vErrors}.length`)}function N(B){var F;if(!o.opts.unevaluated)return;let Q=(F=r?.validate)===null||F===void 0?void 0:F.evaluated;if(o.props!==!0)if(Q&&!Q.dynamicProps)Q.props!==void 0&&(o.props=DBt.mergeEvaluated.props(a,Q.props,o.props));else{let X=a.var("props",(0,xV._)`${B}.evaluated.props`);o.props=DBt.mergeEvaluated.props(a,X,o.props,xV.Name)}if(o.items!==!0)if(Q&&!Q.dynamicItems)Q.items!==void 0&&(o.items=DBt.mergeEvaluated.items(a,Q.items,o.items));else{let X=a.var("items",(0,xV._)`${B}.evaluated.items`);o.items=DBt.mergeEvaluated.items(a,X,o.items,xV.Name)}}}a_e.callRef=kBt;a_e.default=sMc});var J6i=H(rWr=>{"use strict";Object.defineProperty(rWr,"__esModule",{value:!0});var oMc=M6i(),aMc=X6i(),cMc=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",oMc.default,aMc.default];rWr.default=cMc});var U6i=H(nWr=>{"use strict";Object.defineProperty(nWr,"__esModule",{value:!0});var xBt=Hh(),Ale=xBt.operators,GBt={maximum:{okStr:"<=",ok:Ale.LTE,fail:Ale.GT},minimum:{okStr:">=",ok:Ale.GTE,fail:Ale.LT},exclusiveMaximum:{okStr:"<",ok:Ale.LT,fail:Ale.GTE},exclusiveMinimum:{okStr:">",ok:Ale.GT,fail:Ale.LTE}},lMc={message:({keyword:e,schemaCode:t})=>(0,xBt.str)`must be ${GBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,xBt._)`{comparison: ${GBt[e].okStr}, limit: ${t}}`},uMc={keyword:Object.keys(GBt),type:"number",schemaType:"number",$data:!0,error:lMc,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,xBt._)`${r} ${GBt[t].fail} ${n} || isNaN(${r})`)}};nWr.default=uMc});var K6i=H(iWr=>{"use strict";Object.defineProperty(iWr,"__esModule",{value:!0});var E8e=Hh(),gMc={message:({schemaCode:e})=>(0,E8e.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,E8e._)`{multipleOf: ${e}}`},AMc={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:gMc,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,o=a.opts.multipleOfPrecision,l=t.let("res"),A=o?(0,E8e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${o}`:(0,E8e._)`${l} !== parseInt(${l})`;e.fail$data((0,E8e._)`(${n} === 0 || (${l} = ${r}/${n}, ${A}))`)}};iWr.default=AMc});var z6i=H(sWr=>{"use strict";Object.defineProperty(sWr,"__esModule",{value:!0});function j6i(e){let t=e.length,r=0,n=0,a;for(;n=55296&&a<=56319&&n{"use strict";Object.defineProperty(oWr,"__esModule",{value:!0});var c_e=Hh(),dMc=B_(),pMc=z6i(),fMc={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,c_e.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,c_e._)`{limit: ${e}}`},IMc={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:fMc,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,o=t==="maxLength"?c_e.operators.GT:c_e.operators.LT,l=a.opts.unicode===!1?(0,c_e._)`${r}.length`:(0,c_e._)`${(0,dMc.useFunc)(e.gen,pMc.default)}(${r})`;e.fail$data((0,c_e._)`${l} ${o} ${n}`)}};oWr.default=IMc});var $6i=H(aWr=>{"use strict";Object.defineProperty(aWr,"__esModule",{value:!0});var hMc=IH(),FBt=Hh(),mMc={message:({schemaCode:e})=>(0,FBt.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,FBt._)`{pattern: ${e}}`},CMc={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:mMc,code(e){let{data:t,$data:r,schema:n,schemaCode:a,it:o}=e,l=o.opts.unicodeRegExp?"u":"",A=r?(0,FBt._)`(new RegExp(${a}, ${l}))`:(0,hMc.usePattern)(e,n);e.fail$data((0,FBt._)`!${A}.test(${t})`)}};aWr.default=CMc});var e7i=H(cWr=>{"use strict";Object.defineProperty(cWr,"__esModule",{value:!0});var S8e=Hh(),_Mc={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,S8e.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,S8e._)`{limit: ${e}}`},yMc={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:_Mc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?S8e.operators.GT:S8e.operators.LT;e.fail$data((0,S8e._)`Object.keys(${r}).length ${a} ${n}`)}};cWr.default=yMc});var t7i=H(lWr=>{"use strict";Object.defineProperty(lWr,"__esModule",{value:!0});var v8e=IH(),B8e=Hh(),bMc=B_(),EMc={message:({params:{missingProperty:e}})=>(0,B8e.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,B8e._)`{missingProperty: ${e}}`},SMc={keyword:"required",type:"object",schemaType:"array",$data:!0,error:EMc,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:o,it:l}=e,{opts:A}=l;if(!o&&r.length===0)return;let f=r.length>=A.loopRequired;if(l.allErrors?I():C(),A.strictRequired){let N=e.parentSchema.properties,{definedProperties:B}=e.it;for(let F of r)if(N?.[F]===void 0&&!B.has(F)){let Q=l.schemaEnv.baseId+l.errSchemaPath,X=`required property "${F}" is not defined at "${Q}" (strictRequired)`;(0,bMc.checkStrictMode)(l,X,l.opts.strictRequired)}}function I(){if(f||o)e.block$data(B8e.nil,b);else for(let N of r)(0,v8e.checkReportMissingProp)(e,N)}function C(){let N=t.let("missing");if(f||o){let B=t.let("valid",!0);e.block$data(B,()=>E(N,B)),e.ok(B)}else t.if((0,v8e.checkMissingProp)(e,r,N)),(0,v8e.reportMissingProp)(e,N),t.else()}function b(){t.forOf("prop",n,N=>{e.setParams({missingProperty:N}),t.if((0,v8e.noPropertyInData)(t,a,N,A.ownProperties),()=>e.error())})}function E(N,B){e.setParams({missingProperty:N}),t.forOf(N,n,()=>{t.assign(B,(0,v8e.propertyInData)(t,a,N,A.ownProperties)),t.if((0,B8e.not)(B),()=>{e.error(),t.break()})},B8e.nil)}}};lWr.default=SMc});var r7i=H(uWr=>{"use strict";Object.defineProperty(uWr,"__esModule",{value:!0});var w8e=Hh(),vMc={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,w8e.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,w8e._)`{limit: ${e}}`},BMc={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:vMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?w8e.operators.GT:w8e.operators.LT;e.fail$data((0,w8e._)`${r}.length ${a} ${n}`)}};uWr.default=BMc});var ZBt=H(gWr=>{"use strict";Object.defineProperty(gWr,"__esModule",{value:!0});var n7i=ZPr();n7i.code='require("ajv/dist/runtime/equal").default';gWr.default=n7i});var i7i=H(dWr=>{"use strict";Object.defineProperty(dWr,"__esModule",{value:!0});var AWr=d8e(),tx=Hh(),wMc=B_(),TMc=ZBt(),RMc={message:({params:{i:e,j:t}})=>(0,tx.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,tx._)`{i: ${e}, j: ${t}}`},NMc={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:RMc,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:o,schemaCode:l,it:A}=e;if(!n&&!a)return;let f=t.let("valid"),I=o.items?(0,AWr.getSchemaTypes)(o.items):[];e.block$data(f,C,(0,tx._)`${l} === false`),e.ok(f);function C(){let B=t.let("i",(0,tx._)`${r}.length`),F=t.let("j");e.setParams({i:B,j:F}),t.assign(f,!0),t.if((0,tx._)`${B} > 1`,()=>(b()?E:N)(B,F))}function b(){return I.length>0&&!I.some(B=>B==="object"||B==="array")}function E(B,F){let Q=t.name("item"),X=(0,AWr.checkDataTypes)(I,Q,A.opts.strictNumbers,AWr.DataType.Wrong),ae=t.const("indices",(0,tx._)`{}`);t.for((0,tx._)`;${B}--;`,()=>{t.let(Q,(0,tx._)`${r}[${B}]`),t.if(X,(0,tx._)`continue`),I.length>1&&t.if((0,tx._)`typeof ${Q} == "string"`,(0,tx._)`${Q} += "_"`),t.if((0,tx._)`typeof ${ae}[${Q}] == "number"`,()=>{t.assign(F,(0,tx._)`${ae}[${Q}]`),e.error(),t.assign(f,!1).break()}).code((0,tx._)`${ae}[${Q}] = ${B}`)})}function N(B,F){let Q=(0,wMc.useFunc)(t,TMc.default),X=t.name("outer");t.label(X).for((0,tx._)`;${B}--;`,()=>t.for((0,tx._)`${F} = ${B}; ${F}--;`,()=>t.if((0,tx._)`${Q}(${r}[${B}], ${r}[${F}])`,()=>{e.error(),t.assign(f,!1).break(X)})))}}};dWr.default=NMc});var s7i=H(fWr=>{"use strict";Object.defineProperty(fWr,"__esModule",{value:!0});var pWr=Hh(),DMc=B_(),kMc=ZBt(),xMc={message:"must be equal to constant",params:({schemaCode:e})=>(0,pWr._)`{allowedValue: ${e}}`},GMc={keyword:"const",$data:!0,error:xMc,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,pWr._)`!${(0,DMc.useFunc)(t,kMc.default)}(${r}, ${a})`):e.fail((0,pWr._)`${o} !== ${r}`)}};fWr.default=GMc});var o7i=H(IWr=>{"use strict";Object.defineProperty(IWr,"__esModule",{value:!0});var T8e=Hh(),FMc=B_(),ZMc=ZBt(),LMc={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,T8e._)`{allowedValues: ${e}}`},VMc={keyword:"enum",schemaType:"array",$data:!0,error:LMc,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:o,it:l}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let A=a.length>=l.opts.loopEnum,f,I=()=>f??(f=(0,FMc.useFunc)(t,ZMc.default)),C;if(A||n)C=t.let("valid"),e.block$data(C,b);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let N=t.const("vSchema",o);C=(0,T8e.or)(...a.map((B,F)=>E(N,F)))}e.pass(C);function b(){t.assign(C,!1),t.forOf("v",o,N=>t.if((0,T8e._)`${I()}(${r}, ${N})`,()=>t.assign(C,!0).break()))}function E(N,B){let F=a[B];return typeof F=="object"&&F!==null?(0,T8e._)`${I()}(${r}, ${N}[${B}])`:(0,T8e._)`${r} === ${F}`}}};IWr.default=VMc});var a7i=H(hWr=>{"use strict";Object.defineProperty(hWr,"__esModule",{value:!0});var PMc=U6i(),WMc=K6i(),OMc=q6i(),MMc=$6i(),HMc=e7i(),YMc=t7i(),QMc=r7i(),XMc=i7i(),JMc=s7i(),UMc=o7i(),KMc=[PMc.default,WMc.default,OMc.default,MMc.default,HMc.default,YMc.default,QMc.default,XMc.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},JMc.default,UMc.default];hWr.default=KMc});var CWr=H(R8e=>{"use strict";Object.defineProperty(R8e,"__esModule",{value:!0});R8e.validateAdditionalItems=void 0;var l_e=Hh(),mWr=B_(),jMc={message:({params:{len:e}})=>(0,l_e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,l_e._)`{limit: ${e}}`},zMc={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:jMc,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,mWr.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}c7i(e,n)}};function c7i(e,t){let{gen:r,schema:n,data:a,keyword:o,it:l}=e;l.items=!0;let A=r.const("len",(0,l_e._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,l_e._)`${A} <= ${t.length}`);else if(typeof n=="object"&&!(0,mWr.alwaysValidSchema)(l,n)){let I=r.var("valid",(0,l_e._)`${A} <= ${t.length}`);r.if((0,l_e.not)(I),()=>f(I)),e.ok(I)}function f(I){r.forRange("i",t.length,A,C=>{e.subschema({keyword:o,dataProp:C,dataPropType:mWr.Type.Num},I),l.allErrors||r.if((0,l_e.not)(I),()=>r.break())})}}R8e.validateAdditionalItems=c7i;R8e.default=zMc});var _Wr=H(N8e=>{"use strict";Object.defineProperty(N8e,"__esModule",{value:!0});N8e.validateTuple=void 0;var l7i=Hh(),LBt=B_(),qMc=IH(),$Mc={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return u7i(e,"additionalItems",t);r.items=!0,!(0,LBt.alwaysValidSchema)(r,t)&&e.ok((0,qMc.validateArray)(e))}};function u7i(e,t,r=e.schema){let{gen:n,parentSchema:a,data:o,keyword:l,it:A}=e;C(a),A.opts.unevaluated&&r.length&&A.items!==!0&&(A.items=LBt.mergeEvaluated.items(n,r.length,A.items));let f=n.name("valid"),I=n.const("len",(0,l7i._)`${o}.length`);r.forEach((b,E)=>{(0,LBt.alwaysValidSchema)(A,b)||(n.if((0,l7i._)`${I} > ${E}`,()=>e.subschema({keyword:l,schemaProp:E,dataProp:E},f)),e.ok(f))});function C(b){let{opts:E,errSchemaPath:N}=A,B=r.length,F=B===b.minItems&&(B===b.maxItems||b[t]===!1);if(E.strictTuples&&!F){let Q=`"${l}" is ${B}-tuple, but minItems or maxItems/${t} are not specified or different at path "${N}"`;(0,LBt.checkStrictMode)(A,Q,E.strictTuples)}}}N8e.validateTuple=u7i;N8e.default=$Mc});var g7i=H(yWr=>{"use strict";Object.defineProperty(yWr,"__esModule",{value:!0});var eHc=_Wr(),tHc={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,eHc.validateTuple)(e,"items")};yWr.default=tHc});var d7i=H(bWr=>{"use strict";Object.defineProperty(bWr,"__esModule",{value:!0});var A7i=Hh(),rHc=B_(),nHc=IH(),iHc=CWr(),sHc={message:({params:{len:e}})=>(0,A7i.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,A7i._)`{limit: ${e}}`},oHc={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:sHc,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,rHc.alwaysValidSchema)(n,t)&&(a?(0,iHc.validateAdditionalItems)(e,a):e.ok((0,nHc.validateArray)(e)))}};bWr.default=oHc});var p7i=H(EWr=>{"use strict";Object.defineProperty(EWr,"__esModule",{value:!0});var mH=Hh(),VBt=B_(),aHc={message:({params:{min:e,max:t}})=>t===void 0?(0,mH.str)`must contain at least ${e} valid item(s)`:(0,mH.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,mH._)`{minContains: ${e}}`:(0,mH._)`{minContains: ${e}, maxContains: ${t}}`},cHc={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:aHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e,l,A,{minContains:f,maxContains:I}=n;o.opts.next?(l=f===void 0?1:f,A=I):l=1;let C=t.const("len",(0,mH._)`${a}.length`);if(e.setParams({min:l,max:A}),A===void 0&&l===0){(0,VBt.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(A!==void 0&&l>A){(0,VBt.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,VBt.alwaysValidSchema)(o,r)){let F=(0,mH._)`${C} >= ${l}`;A!==void 0&&(F=(0,mH._)`${F} && ${C} <= ${A}`),e.pass(F);return}o.items=!0;let b=t.name("valid");A===void 0&&l===1?N(b,()=>t.if(b,()=>t.break())):l===0?(t.let(b,!0),A!==void 0&&t.if((0,mH._)`${a}.length > 0`,E)):(t.let(b,!1),E()),e.result(b,()=>e.reset());function E(){let F=t.name("_valid"),Q=t.let("count",0);N(F,()=>t.if(F,()=>B(Q)))}function N(F,Q){t.forRange("i",0,C,X=>{e.subschema({keyword:"contains",dataProp:X,dataPropType:VBt.Type.Num,compositeRule:!0},F),Q()})}function B(F){t.code((0,mH._)`${F}++`),A===void 0?t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0).break()):(t.if((0,mH._)`${F} > ${A}`,()=>t.assign(b,!1).break()),l===1?t.assign(b,!0):t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0)))}}};EWr.default=cHc});var h7i=H(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.validateSchemaDeps=Oj.validatePropertyDeps=Oj.error=void 0;var SWr=Hh(),lHc=B_(),D8e=IH();Oj.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,SWr.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,SWr._)`{property: ${e}, + || ${l} === "boolean" || ${a} === null`).assign(A,(0,Bh._)`[${a}]`)}}}function JOc({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,Bh._)`${t} !== undefined`,()=>e.assign((0,Bh._)`${t}[${r}]`,n))}function NPr(e,t,r,n=ske.Correct){let a=n===ske.Correct?Bh.operators.EQ:Bh.operators.NEQ,o;switch(e){case"null":return(0,Bh._)`${t} ${a} null`;case"array":o=(0,Bh._)`Array.isArray(${t})`;break;case"object":o=(0,Bh._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=l((0,Bh._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=l();break;default:return(0,Bh._)`typeof ${t} ${a} ${e}`}return n===ske.Correct?o:(0,Bh.not)(o);function l(A=Bh.nil){return(0,Bh.and)((0,Bh._)`typeof ${t} == "number"`,A,r?(0,Bh._)`isFinite(${t})`:Bh.nil)}}JG.checkDataType=NPr;function DPr(e,t,r,n){if(e.length===1)return NPr(e[0],t,r,n);let a,o=(0,xji.toHash)(e);if(o.array&&o.object){let l=(0,Bh._)`typeof ${t} != "object"`;a=o.null?l:(0,Bh._)`!${t} || ${l}`,delete o.null,delete o.array,delete o.object}else a=Bh.nil;o.number&&delete o.integer;for(let l in o)a=(0,Bh.and)(a,NPr(l,t,r,n));return a}JG.checkDataTypes=DPr;var UOc={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,Bh._)`{type: ${e}}`:(0,Bh._)`{type: ${t}}`};function kPr(e){let t=KOc(e);(0,MOc.reportError)(t,UOc)}JG.reportTypeError=kPr;function KOc(e){let{gen:t,data:r,schema:n}=e,a=(0,xji.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var Lji=H(_Bt=>{"use strict";Object.defineProperty(_Bt,"__esModule",{value:!0});_Bt.assignDefaults=void 0;var oke=Hh(),jOc=B_();function zOc(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Zji(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,o)=>Zji(e,o,a.default))}_Bt.assignDefaults=zOc;function Zji(e,t,r){let{gen:n,compositeRule:a,data:o,opts:l}=e;if(r===void 0)return;let A=(0,oke._)`${o}${(0,oke.getProperty)(t)}`;if(a){(0,jOc.checkStrictMode)(e,`default is ignored for: ${A}`);return}let f=(0,oke._)`${A} === undefined`;l.useDefaults==="empty"&&(f=(0,oke._)`${f} || ${A} === null || ${A} === ""`),n.if(f,(0,oke._)`${A} = ${(0,oke.stringify)(r)}`)}});var IH=H(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.validateUnion=lb.validateArray=lb.usePattern=lb.callValidateCode=lb.schemaProperties=lb.allSchemaProperties=lb.noPropertyInData=lb.propertyInData=lb.isOwnProperty=lb.hasPropFunc=lb.reportMissingProp=lb.checkMissingProp=lb.checkReportMissingProp=void 0;var X1=Hh(),xPr=B_(),cle=rte(),qOc=B_();function $Oc(e,t){let{gen:r,data:n,it:a}=e;r.if(FPr(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,X1._)`${t}`},!0),e.error()})}lb.checkReportMissingProp=$Oc;function e3c({gen:e,data:t,it:{opts:r}},n,a){return(0,X1.or)(...n.map(o=>(0,X1.and)(FPr(e,t,o,r.ownProperties),(0,X1._)`${a} = ${o}`)))}lb.checkMissingProp=e3c;function t3c(e,t){e.setParams({missingProperty:t},!0),e.error()}lb.reportMissingProp=t3c;function Vji(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,X1._)`Object.prototype.hasOwnProperty`})}lb.hasPropFunc=Vji;function GPr(e,t,r){return(0,X1._)`${Vji(e)}.call(${t}, ${r})`}lb.isOwnProperty=GPr;function r3c(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} !== undefined`;return n?(0,X1._)`${a} && ${GPr(e,t,r)}`:a}lb.propertyInData=r3c;function FPr(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} === undefined`;return n?(0,X1.or)(a,(0,X1.not)(GPr(e,t,r))):a}lb.noPropertyInData=FPr;function Pji(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}lb.allSchemaProperties=Pji;function n3c(e,t){return Pji(t).filter(r=>!(0,xPr.alwaysValidSchema)(e,t[r]))}lb.schemaProperties=n3c;function i3c({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:o},it:l},A,f,I){let C=I?(0,X1._)`${e}, ${t}, ${n}${a}`:t,b=[[cle.default.instancePath,(0,X1.strConcat)(cle.default.instancePath,o)],[cle.default.parentData,l.parentData],[cle.default.parentDataProperty,l.parentDataProperty],[cle.default.rootData,cle.default.rootData]];l.opts.dynamicRef&&b.push([cle.default.dynamicAnchors,cle.default.dynamicAnchors]);let E=(0,X1._)`${C}, ${r.object(...b)}`;return f!==X1.nil?(0,X1._)`${A}.call(${f}, ${E})`:(0,X1._)`${A}(${E})`}lb.callValidateCode=i3c;var s3c=(0,X1._)`new RegExp`;function o3c({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,o=a(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,X1._)`${a.code==="new RegExp"?s3c:(0,qOc.useFunc)(e,a)}(${r}, ${n})`})}lb.usePattern=o3c;function a3c(e){let{gen:t,data:r,keyword:n,it:a}=e,o=t.name("valid");if(a.allErrors){let A=t.let("valid",!0);return l(()=>t.assign(A,!1)),A}return t.var(o,!0),l(()=>t.break()),o;function l(A){let f=t.const("len",(0,X1._)`${r}.length`);t.forRange("i",0,f,I=>{e.subschema({keyword:n,dataProp:I,dataPropType:xPr.Type.Num},o),t.if((0,X1.not)(o),A)})}}lb.validateArray=a3c;function c3c(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(f=>(0,xPr.alwaysValidSchema)(a,f))&&!a.opts.unevaluated)return;let l=t.let("valid",!1),A=t.name("_valid");t.block(()=>r.forEach((f,I)=>{let C=e.subschema({keyword:n,schemaProp:I,compositeRule:!0},A);t.assign(l,(0,X1._)`${l} || ${A}`),e.mergeValidEvaluated(C,A)||t.if((0,X1.not)(l))})),e.result(l,()=>e.reset(),()=>e.error(!0))}lb.validateUnion=c3c});var Mji=H(Vj=>{"use strict";Object.defineProperty(Vj,"__esModule",{value:!0});Vj.validateKeywordUsage=Vj.validSchemaType=Vj.funcKeywordCode=Vj.macroKeywordCode=void 0;var nL=Hh(),s_e=rte(),l3c=IH(),u3c=A8e();function g3c(e,t){let{gen:r,keyword:n,schema:a,parentSchema:o,it:l}=e,A=t.macro.call(l.self,a,o,l),f=Oji(r,n,A);l.opts.validateSchema!==!1&&l.self.validateSchema(A,!0);let I=r.name("valid");e.subschema({schema:A,schemaPath:nL.nil,errSchemaPath:`${l.errSchemaPath}/${n}`,topSchemaRef:f,compositeRule:!0},I),e.pass(I,()=>e.error(!0))}Vj.macroKeywordCode=g3c;function A3c(e,t){var r;let{gen:n,keyword:a,schema:o,parentSchema:l,$data:A,it:f}=e;p3c(f,t);let I=!A&&t.compile?t.compile.call(f.self,o,l,f):t.validate,C=Oji(n,a,I),b=n.let("valid");e.block$data(b,E),e.ok((r=t.valid)!==null&&r!==void 0?r:b);function E(){if(t.errors===!1)F(),t.modifying&&Wji(e),Q(()=>e.error());else{let X=t.async?N():B();t.modifying&&Wji(e),Q(()=>d3c(e,X))}}function N(){let X=n.let("ruleErrs",null);return n.try(()=>F((0,nL._)`await `),ae=>n.assign(b,!1).if((0,nL._)`${ae} instanceof ${f.ValidationError}`,()=>n.assign(X,(0,nL._)`${ae}.errors`),()=>n.throw(ae))),X}function B(){let X=(0,nL._)`${C}.errors`;return n.assign(X,null),F(nL.nil),X}function F(X=t.async?(0,nL._)`await `:nL.nil){let ae=f.opts.passContext?s_e.default.this:s_e.default.self,ne=!("compile"in t&&!A||t.schema===!1);n.assign(b,(0,nL._)`${X}${(0,l3c.callValidateCode)(e,C,ae,ne)}`,t.modifying)}function Q(X){var ae;n.if((0,nL.not)((ae=t.valid)!==null&&ae!==void 0?ae:b),X)}}Vj.funcKeywordCode=A3c;function Wji(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,nL._)`${n.parentData}[${n.parentDataProperty}]`))}function d3c(e,t){let{gen:r}=e;r.if((0,nL._)`Array.isArray(${t})`,()=>{r.assign(s_e.default.vErrors,(0,nL._)`${s_e.default.vErrors} === null ? ${t} : ${s_e.default.vErrors}.concat(${t})`).assign(s_e.default.errors,(0,nL._)`${s_e.default.vErrors}.length`),(0,u3c.extendErrors)(e)},()=>e.error())}function p3c({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Oji(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,nL.stringify)(r)})}function f3c(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Vj.validSchemaType=f3c;function I3c({schema:e,opts:t,self:r,errSchemaPath:n},a,o){if(Array.isArray(a.keyword)?!a.keyword.includes(o):a.keyword!==o)throw new Error("ajv implementation error");let l=a.dependencies;if(l?.some(A=>!Object.prototype.hasOwnProperty.call(e,A)))throw new Error(`parent schema must have dependencies of ${o}: ${l.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[o])){let f=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(f);else throw new Error(f)}}Vj.validateKeywordUsage=I3c});var Yji=H(lle=>{"use strict";Object.defineProperty(lle,"__esModule",{value:!0});lle.extendSubschemaMode=lle.extendSubschemaData=lle.getSubschema=void 0;var Pj=Hh(),Hji=B_();function h3c(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:o,topSchemaRef:l}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let A=e.schema[t];return r===void 0?{schema:A,schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:A[r],schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}${(0,Pj.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Hji.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||o===void 0||l===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:l,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}lle.getSubschema=h3c;function m3c(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:o,propertyName:l}){if(a!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:A}=t;if(r!==void 0){let{errorPath:I,dataPathArr:C,opts:b}=t,E=A.let("data",(0,Pj._)`${t.data}${(0,Pj.getProperty)(r)}`,!0);f(E),e.errorPath=(0,Pj.str)`${I}${(0,Hji.getErrorPath)(r,n,b.jsPropertySyntax)}`,e.parentDataProperty=(0,Pj._)`${r}`,e.dataPathArr=[...C,e.parentDataProperty]}if(a!==void 0){let I=a instanceof Pj.Name?a:A.let("data",a,!0);f(I),l!==void 0&&(e.propertyName=l)}o&&(e.dataTypes=o);function f(I){e.data=I,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,I]}}lle.extendSubschemaData=m3c;function C3c(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:o}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}lle.extendSubschemaMode=C3c});var ZPr=H((wJu,Qji)=>{"use strict";Qji.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,a,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[a]))return!1;for(a=n;a--!==0;){var l=o[a];if(!e(t[l],r[l]))return!1}return!0}return t!==t&&r!==r}});var Jji=H((TJu,Xji)=>{"use strict";var ule=Xji.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};yBt(t,n,a,e,"",e)};ule.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ule.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ule.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ule.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function yBt(e,t,r,n,a,o,l,A,f,I){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,o,l,A,f,I);for(var C in n){var b=n[C];if(Array.isArray(b)){if(C in ule.arrayKeywords)for(var E=0;E{"use strict";Object.defineProperty(kV,"__esModule",{value:!0});kV.getSchemaRefs=kV.resolveUrl=kV.normalizeId=kV._getFullPath=kV.getFullPath=kV.inlineRef=void 0;var y3c=B_(),b3c=ZPr(),E3c=Jji(),S3c=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function v3c(e,t=!0){return typeof e=="boolean"?!0:t===!0?!LPr(e):t?Uji(e)<=t:!1}kV.inlineRef=v3c;var B3c=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function LPr(e){for(let t in e){if(B3c.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(LPr)||typeof r=="object"&&LPr(r))return!0}return!1}function Uji(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!S3c.has(r)&&(typeof e[r]=="object"&&(0,y3c.eachItem)(e[r],n=>t+=Uji(n)),t===1/0))return 1/0}return t}function Kji(e,t="",r){r!==!1&&(t=ake(t));let n=e.parse(t);return jji(e,n)}kV.getFullPath=Kji;function jji(e,t){return e.serialize(t).split("#")[0]+"#"}kV._getFullPath=jji;var w3c=/#\/?$/;function ake(e){return e?e.replace(w3c,""):""}kV.normalizeId=ake;function T3c(e,t,r){return r=ake(r),e.resolve(t,r)}kV.resolveUrl=T3c;var R3c=/^[a-z_][-a-z0-9._]*$/i;function N3c(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=ake(e[r]||t),o={"":a},l=Kji(n,a,!1),A={},f=new Set;return E3c(e,{allKeys:!0},(b,E,N,B)=>{if(B===void 0)return;let F=l+E,Q=o[B];typeof b[r]=="string"&&(Q=X.call(this,b[r])),ae.call(this,b.$anchor),ae.call(this,b.$dynamicAnchor),o[E]=Q;function X(ne){let ce=this.opts.uriResolver.resolve;if(ne=ake(Q?ce(Q,ne):ne),f.has(ne))throw C(ne);f.add(ne);let fe=this.refs[ne];return typeof fe=="string"&&(fe=this.refs[fe]),typeof fe=="object"?I(b,fe.schema,ne):ne!==ake(F)&&(ne[0]==="#"?(I(b,A[ne],ne),A[ne]=b):this.refs[ne]=F),ne}function ae(ne){if(typeof ne=="string"){if(!R3c.test(ne))throw new Error(`invalid anchor "${ne}"`);X.call(this,`#${ne}`)}}}),A;function I(b,E,N){if(E!==void 0&&!b3c(b,E))throw C(N)}function C(b){return new Error(`reference "${b}" resolves to more than one schema`)}}kV.getSchemaRefs=N3c});var h8e=H(gle=>{"use strict";Object.defineProperty(gle,"__esModule",{value:!0});gle.getData=gle.KeywordCxt=gle.validateFunctionCode=void 0;var t6i=Nji(),zji=d8e(),PPr=RPr(),bBt=d8e(),D3c=Lji(),I8e=Mji(),VPr=Yji(),Zd=Hh(),cI=rte(),k3c=p8e(),nte=B_(),f8e=A8e();function x3c(e){if(i6i(e)&&(s6i(e),n6i(e))){Z3c(e);return}r6i(e,()=>(0,t6i.topBoolOrEmptySchema)(e))}gle.validateFunctionCode=x3c;function r6i({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},o){a.code.es5?e.func(t,(0,Zd._)`${cI.default.data}, ${cI.default.valCxt}`,n.$async,()=>{e.code((0,Zd._)`"use strict"; ${qji(r,a)}`),F3c(e,a),e.code(o)}):e.func(t,(0,Zd._)`${cI.default.data}, ${G3c(a)}`,n.$async,()=>e.code(qji(r,a)).code(o))}function G3c(e){return(0,Zd._)`{${cI.default.instancePath}="", ${cI.default.parentData}, ${cI.default.parentDataProperty}, ${cI.default.rootData}=${cI.default.data}${e.dynamicRef?(0,Zd._)`, ${cI.default.dynamicAnchors}={}`:Zd.nil}}={}`}function F3c(e,t){e.if(cI.default.valCxt,()=>{e.var(cI.default.instancePath,(0,Zd._)`${cI.default.valCxt}.${cI.default.instancePath}`),e.var(cI.default.parentData,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentData}`),e.var(cI.default.parentDataProperty,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentDataProperty}`),e.var(cI.default.rootData,(0,Zd._)`${cI.default.valCxt}.${cI.default.rootData}`),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`${cI.default.valCxt}.${cI.default.dynamicAnchors}`)},()=>{e.var(cI.default.instancePath,(0,Zd._)`""`),e.var(cI.default.parentData,(0,Zd._)`undefined`),e.var(cI.default.parentDataProperty,(0,Zd._)`undefined`),e.var(cI.default.rootData,cI.default.data),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`{}`)})}function Z3c(e){let{schema:t,opts:r,gen:n}=e;r6i(e,()=>{r.$comment&&t.$comment&&a6i(e),O3c(e),n.let(cI.default.vErrors,null),n.let(cI.default.errors,0),r.unevaluated&&L3c(e),o6i(e),Y3c(e)})}function L3c(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,Zd._)`${r}.evaluated`),t.if((0,Zd._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,Zd._)`${e.evaluated}.props`,(0,Zd._)`undefined`)),t.if((0,Zd._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,Zd._)`${e.evaluated}.items`,(0,Zd._)`undefined`))}function qji(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,Zd._)`/*# sourceURL=${r} */`:Zd.nil}function V3c(e,t){if(i6i(e)&&(s6i(e),n6i(e))){P3c(e,t);return}(0,t6i.boolOrEmptySchema)(e,t)}function n6i({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function i6i(e){return typeof e.schema!="boolean"}function P3c(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&a6i(e),M3c(e),H3c(e);let o=n.const("_errs",cI.default.errors);o6i(e,o),n.var(t,(0,Zd._)`${o} === ${cI.default.errors}`)}function s6i(e){(0,nte.checkUnknownRules)(e),W3c(e)}function o6i(e,t){if(e.opts.jtd)return $ji(e,[],!1,t);let r=(0,zji.getSchemaTypes)(e.schema),n=(0,zji.coerceAndCheckDataType)(e,r);$ji(e,r,!n,t)}function W3c(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,nte.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function O3c(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,nte.checkStrictMode)(e,"default is ignored in the schema root")}function M3c(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,k3c.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function H3c(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function a6i({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let o=r.$comment;if(a.$comment===!0)e.code((0,Zd._)`${cI.default.self}.logger.log(${o})`);else if(typeof a.$comment=="function"){let l=(0,Zd.str)`${n}/$comment`,A=e.scopeValue("root",{ref:t.root});e.code((0,Zd._)`${cI.default.self}.opts.$comment(${o}, ${l}, ${A}.schema)`)}}function Y3c(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:o}=e;r.$async?t.if((0,Zd._)`${cI.default.errors} === 0`,()=>t.return(cI.default.data),()=>t.throw((0,Zd._)`new ${a}(${cI.default.vErrors})`)):(t.assign((0,Zd._)`${n}.errors`,cI.default.vErrors),o.unevaluated&&Q3c(e),t.return((0,Zd._)`${cI.default.errors} === 0`))}function Q3c({gen:e,evaluated:t,props:r,items:n}){r instanceof Zd.Name&&e.assign((0,Zd._)`${t}.props`,r),n instanceof Zd.Name&&e.assign((0,Zd._)`${t}.items`,n)}function $ji(e,t,r,n){let{gen:a,schema:o,data:l,allErrors:A,opts:f,self:I}=e,{RULES:C}=I;if(o.$ref&&(f.ignoreKeywordsWithRef||!(0,nte.schemaHasRulesButRef)(o,C))){a.block(()=>l6i(e,"$ref",C.all.$ref.definition));return}f.jtd||X3c(e,t),a.block(()=>{for(let E of C.rules)b(E);b(C.post)});function b(E){(0,PPr.shouldUseGroup)(o,E)&&(E.type?(a.if((0,bBt.checkDataType)(E.type,l,f.strictNumbers)),e6i(e,E),t.length===1&&t[0]===E.type&&r&&(a.else(),(0,bBt.reportTypeError)(e)),a.endIf()):e6i(e,E),A||a.if((0,Zd._)`${cI.default.errors} === ${n||0}`))}}function e6i(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,D3c.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,PPr.shouldUseRule)(n,o)&&l6i(e,o.keyword,o.definition,t.type)})}function X3c(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(J3c(e,t),e.opts.allowUnionTypes||U3c(e,t),K3c(e,e.dataTypes))}function J3c(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{c6i(e.dataTypes,r)||WPr(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),z3c(e,t)}}function U3c(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&WPr(e,"use allowUnionTypes to allow union type keyword")}function K3c(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,PPr.shouldUseRule)(e.schema,a)){let{type:o}=a.definition;o.length&&!o.some(l=>j3c(t,l))&&WPr(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function j3c(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function c6i(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function z3c(e,t){let r=[];for(let n of e.dataTypes)c6i(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function WPr(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,nte.checkStrictMode)(e,t,e.opts.strictTypes)}var EBt=class{constructor(t,r,n){if((0,I8e.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,nte.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",u6i(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,I8e.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",cI.default.errors))}result(t,r,n){this.failResult((0,Zd.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,Zd.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,Zd._)`${r} !== undefined && (${(0,Zd.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?f8e.reportExtraError:f8e.reportError)(this,this.def.error,r)}$dataError(){(0,f8e.reportError)(this,this.def.$dataError||f8e.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f8e.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=Zd.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=Zd.nil,r=Zd.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:o,def:l}=this;n.if((0,Zd.or)((0,Zd._)`${a} === undefined`,r)),t!==Zd.nil&&n.assign(t,!0),(o.length||l.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==Zd.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:a,it:o}=this;return(0,Zd.or)(l(),A());function l(){if(n.length){if(!(r instanceof Zd.Name))throw new Error("ajv implementation error");let f=Array.isArray(n)?n:[n];return(0,Zd._)`${(0,bBt.checkDataTypes)(f,r,o.opts.strictNumbers,bBt.DataType.Wrong)}`}return Zd.nil}function A(){if(a.validateSchema){let f=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,Zd._)`!${f}(${r})`}return Zd.nil}}subschema(t,r){let n=(0,VPr.getSubschema)(this.it,t);(0,VPr.extendSubschemaData)(n,this.it,t),(0,VPr.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return V3c(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=nte.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=nte.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,Zd.Name)),!0}};gle.KeywordCxt=EBt;function l6i(e,t,r,n){let a=new EBt(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,I8e.funcKeywordCode)(a,r):"macro"in r?(0,I8e.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,I8e.funcKeywordCode)(a,r)}var q3c=/^\/(?:[^~]|~0|~1)*$/,$3c=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function u6i(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,o;if(e==="")return cI.default.rootData;if(e[0]==="/"){if(!q3c.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,o=cI.default.rootData}else{let I=$3c.exec(e);if(!I)throw new Error(`Invalid JSON-pointer: ${e}`);let C=+I[1];if(a=I[2],a==="#"){if(C>=t)throw new Error(f("property/index",C));return n[t-C]}if(C>t)throw new Error(f("data",C));if(o=r[t-C],!a)return o}let l=o,A=a.split("/");for(let I of A)I&&(o=(0,Zd._)`${o}${(0,Zd.getProperty)((0,nte.unescapeJsonPointer)(I))}`,l=(0,Zd._)`${l} && ${o}`);return l;function f(I,C){return`Cannot access ${I} ${C} levels up, current level is ${t}`}}gle.getData=u6i});var SBt=H(MPr=>{"use strict";Object.defineProperty(MPr,"__esModule",{value:!0});var OPr=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};MPr.default=OPr});var m8e=H(QPr=>{"use strict";Object.defineProperty(QPr,"__esModule",{value:!0});var HPr=p8e(),YPr=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,HPr.resolveUrl)(t,r,n),this.missingSchema=(0,HPr.normalizeId)((0,HPr.getFullPath)(t,this.missingRef))}};QPr.default=YPr});var BBt=H(hH=>{"use strict";Object.defineProperty(hH,"__esModule",{value:!0});hH.resolveSchema=hH.getCompilingSchema=hH.resolveRef=hH.compileSchema=hH.SchemaEnv=void 0;var w4=Hh(),e5c=SBt(),o_e=rte(),T4=p8e(),g6i=B_(),t5c=h8e(),cke=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,T4.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};hH.SchemaEnv=cke;function JPr(e){let t=A6i.call(this,e);if(t)return t;let r=(0,T4.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:o}=this.opts,l=new w4.CodeGen(this.scope,{es5:n,lines:a,ownProperties:o}),A;e.$async&&(A=l.scopeValue("Error",{ref:e5c.default,code:(0,w4._)`require("ajv/dist/runtime/validation_error").default`}));let f=l.scopeName("validate");e.validateName=f;let I={gen:l,allErrors:this.opts.allErrors,data:o_e.default.data,parentData:o_e.default.parentData,parentDataProperty:o_e.default.parentDataProperty,dataNames:[o_e.default.data],dataPathArr:[w4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,w4.stringify)(e.schema)}:{ref:e.schema}),validateName:f,ValidationError:A,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:w4.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,w4._)`""`,opts:this.opts,self:this},C;try{this._compilations.add(e),(0,t5c.validateFunctionCode)(I),l.optimize(this.opts.code.optimize);let b=l.toString();C=`${l.scopeRefs(o_e.default.scope)}return ${b}`,this.opts.code.process&&(C=this.opts.code.process(C,e));let N=new Function(`${o_e.default.self}`,`${o_e.default.scope}`,C)(this,this.scope.get());if(this.scope.value(f,{ref:N}),N.errors=null,N.schema=e.schema,N.schemaEnv=e,e.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:f,validateCode:b,scopeValues:l._values}),this.opts.unevaluated){let{props:B,items:F}=I;N.evaluated={props:B instanceof w4.Name?void 0:B,items:F instanceof w4.Name?void 0:F,dynamicProps:B instanceof w4.Name,dynamicItems:F instanceof w4.Name},N.source&&(N.source.evaluated=(0,w4.stringify)(N.evaluated))}return e.validate=N,e}catch(b){throw delete e.validate,delete e.validateName,C&&this.logger.error("Error compiling schema, function code:",C),b}finally{this._compilations.delete(e)}}hH.compileSchema=JPr;function r5c(e,t,r){var n;r=(0,T4.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let o=s5c.call(this,e,r);if(o===void 0){let l=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:A}=this.opts;l&&(o=new cke({schema:l,schemaId:A,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=n5c.call(this,o)}hH.resolveRef=r5c;function n5c(e){return(0,T4.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:JPr.call(this,e)}function A6i(e){for(let t of this._compilations)if(i5c(t,e))return t}hH.getCompilingSchema=A6i;function i5c(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function s5c(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||vBt.call(this,e,t)}function vBt(e,t){let r=this.opts.uriResolver.parse(t),n=(0,T4._getFullPath)(this.opts.uriResolver,r),a=(0,T4.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return XPr.call(this,r,e);let o=(0,T4.normalizeId)(n),l=this.refs[o]||this.schemas[o];if(typeof l=="string"){let A=vBt.call(this,e,l);return typeof A?.schema!="object"?void 0:XPr.call(this,r,A)}if(typeof l?.schema=="object"){if(l.validate||JPr.call(this,l),o===(0,T4.normalizeId)(t)){let{schema:A}=l,{schemaId:f}=this.opts,I=A[f];return I&&(a=(0,T4.resolveUrl)(this.opts.uriResolver,a,I)),new cke({schema:A,schemaId:f,root:e,baseId:a})}return XPr.call(this,r,l)}}hH.resolveSchema=vBt;var o5c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function XPr(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let A of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let f=r[(0,g6i.unescapeFragment)(A)];if(f===void 0)return;r=f;let I=typeof r=="object"&&r[this.opts.schemaId];!o5c.has(A)&&I&&(t=(0,T4.resolveUrl)(this.opts.uriResolver,t,I))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,g6i.schemaHasRulesButRef)(r,this.RULES)){let A=(0,T4.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=vBt.call(this,n,A)}let{schemaId:l}=this.opts;if(o=o||new cke({schema:r,schemaId:l,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var d6i=H((GJu,a5c)=>{a5c.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var f6i=H((FJu,p6i)=>{"use strict";var c5c={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p6i.exports={HEX:c5c}});var E6i=H((ZJu,b6i)=>{"use strict";var{HEX:l5c}=f6i();function C6i(e){if(y6i(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:g5c(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function UPr(e,t=!1){let r="",n=!0;for(let a of e){if(l5c[a]===void 0)return;a!=="0"&&n===!0&&(n=!1),n||(r+=a)}return t&&r.length===0&&(r="0"),r}function u5c(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],o=!1,l=!1,A=!1;function f(){if(a.length){if(o===!1){let I=UPr(a);if(I!==void 0)n.push(I);else return r.error=!0,!1}a.length=0}return!0}for(let I=0;I7){r.error=!0;break}I-1>=0&&e[I-1]===":"&&(l=!0);continue}else if(C==="%"){if(!f())break;o=!0}else{a.push(C);continue}}return a.length&&(o?r.zone=a.join(""):A?n.push(a.join("")):n.push(UPr(a))),r.address=n.join(""),r}function _6i(e,t={}){if(y6i(e,":")<2)return{host:e,isIPV6:!1};let r=u5c(e);if(r.error)return{host:e,isIPV6:!1};{let n=r.address,a=r.address;return r.zone&&(n+="%"+r.zone,a+="%25"+r.zone),{host:n,escapedHost:a,isIPV6:!0}}}function g5c(e,t){let r="",n=!0,a=e.length;for(let o=0;o{"use strict";var I5c=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,h5c=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function S6i(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function v6i(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function B6i(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function m5c(e){return e.secure=S6i(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function C5c(e){if((e.port===(S6i(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function _5c(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(h5c);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,o=KPr[a];e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function y5c(e,t){let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),a=`${r}:${t.nid||n}`,o=KPr[a];o&&(e=o.serialize(e,t));let l=e,A=e.nss;return l.path=`${n||t.nid}:${A}`,t.skipEscape=!0,l}function b5c(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!I5c.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function E5c(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var w6i={scheme:"http",domainHost:!0,parse:v6i,serialize:B6i},S5c={scheme:"https",domainHost:w6i.domainHost,parse:v6i,serialize:B6i},wBt={scheme:"ws",domainHost:!0,parse:m5c,serialize:C5c},v5c={scheme:"wss",domainHost:wBt.domainHost,parse:wBt.parse,serialize:wBt.serialize},B5c={scheme:"urn",parse:_5c,serialize:y5c,skipNormalize:!0},w5c={scheme:"urn:uuid",parse:b5c,serialize:E5c,skipNormalize:!0},KPr={http:w6i,https:S5c,ws:wBt,wss:v5c,urn:B5c,"urn:uuid":w5c};T6i.exports=KPr});var D6i=H((VJu,RBt)=>{"use strict";var{normalizeIPv6:T5c,normalizeIPv4:R5c,removeDotSegments:C8e,recomposeAuthority:N5c,normalizeComponentEncoding:TBt}=E6i(),jPr=R6i();function D5c(e,t){return typeof e=="string"?e=Wj(ite(e,t),t):typeof e=="object"&&(e=ite(Wj(e,t),t)),e}function k5c(e,t,r){let n=Object.assign({scheme:"null"},r),a=N6i(ite(e,n),ite(t,n),n,!0);return Wj(a,{...n,skipEscape:!0})}function N6i(e,t,r,n){let a={};return n||(e=ite(Wj(e,r),r),t=ite(Wj(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.path?(t.path.charAt(0)==="/"?a.path=C8e(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=C8e(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function x5c(e,t,r){return typeof e=="string"?(e=unescape(e),e=Wj(TBt(ite(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Wj(TBt(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=Wj(TBt(ite(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Wj(TBt(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function Wj(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),a=[],o=jPr[(n.scheme||r.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let l=N5c(r,n);if(l!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(l),r.path&&r.path.charAt(0)!=="/"&&a.push("/")),r.path!==void 0){let A=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(A=C8e(A)),l===void 0&&(A=A.replace(/^\/\//u,"/%2F")),a.push(A)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var G5c=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function F5c(e){let t=0;for(let r=0,n=e.length;r126||G5c[t])return!0;return!1}var Z5c=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ite(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=e.indexOf("%")!==-1,o=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let l=e.match(Z5c);if(l){if(n.scheme=l[1],n.userinfo=l[3],n.host=l[4],n.port=parseInt(l[5],10),n.path=l[6]||"",n.query=l[7],n.fragment=l[8],isNaN(n.port)&&(n.port=l[5]),n.host){let f=R5c(n.host);if(f.isIPV4===!1){let I=T5c(f.host,{isIPV4:!1});n.host=I.host.toLowerCase(),o=I.isIPV6}else n.host=f.host,o=!0}n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let A=jPr[(r.scheme||n.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!A||!A.unicodeSupport)&&n.host&&(r.domainHost||A&&A.domainHost)&&o===!1&&F5c(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(f){n.error=n.error||"Host's domain name can not be converted to ASCII: "+f}(!A||A&&!A.skipNormalize)&&(a&&n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),a&&n.host!==void 0&&(n.host=unescape(n.host)),n.path!==void 0&&n.path.length&&(n.path=escape(unescape(n.path))),n.fragment!==void 0&&n.fragment.length&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),A&&A.parse&&A.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var zPr={SCHEMES:jPr,normalize:D5c,resolve:k5c,resolveComponents:N6i,equal:x5c,serialize:Wj,parse:ite};RBt.exports=zPr;RBt.exports.default=zPr;RBt.exports.fastUri=zPr});var x6i=H(qPr=>{"use strict";Object.defineProperty(qPr,"__esModule",{value:!0});var k6i=D6i();k6i.code='require("ajv/dist/runtime/uri").default';qPr.default=k6i});var O6i=H(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.CodeGen=ex.Name=ex.nil=ex.stringify=ex.str=ex._=ex.KeywordCxt=void 0;var L5c=h8e();Object.defineProperty(ex,"KeywordCxt",{enumerable:!0,get:function(){return L5c.KeywordCxt}});var lke=Hh();Object.defineProperty(ex,"_",{enumerable:!0,get:function(){return lke._}});Object.defineProperty(ex,"str",{enumerable:!0,get:function(){return lke.str}});Object.defineProperty(ex,"stringify",{enumerable:!0,get:function(){return lke.stringify}});Object.defineProperty(ex,"nil",{enumerable:!0,get:function(){return lke.nil}});Object.defineProperty(ex,"Name",{enumerable:!0,get:function(){return lke.Name}});Object.defineProperty(ex,"CodeGen",{enumerable:!0,get:function(){return lke.CodeGen}});var V5c=SBt(),V6i=m8e(),P5c=TPr(),_8e=BBt(),W5c=Hh(),y8e=p8e(),NBt=d8e(),eWr=B_(),G6i=d6i(),O5c=x6i(),P6i=(e,t)=>new RegExp(e,t);P6i.code="new RegExp";var M5c=["removeAdditional","useDefaults","coerceTypes"],H5c=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Y5c={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Q5c={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},F6i=200;function X5c(e){var t,r,n,a,o,l,A,f,I,C,b,E,N,B,F,Q,X,ae,ne,ce,fe,ue,de,be,Se;let De=e.strict,k=(t=e.code)===null||t===void 0?void 0:t.optimize,et=k===!0||k===void 0?1:k||0,ct=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:P6i,Me=(a=e.uriResolver)!==null&&a!==void 0?a:O5c.default;return{strictSchema:(l=(o=e.strictSchema)!==null&&o!==void 0?o:De)!==null&&l!==void 0?l:!0,strictNumbers:(f=(A=e.strictNumbers)!==null&&A!==void 0?A:De)!==null&&f!==void 0?f:!0,strictTypes:(C=(I=e.strictTypes)!==null&&I!==void 0?I:De)!==null&&C!==void 0?C:"log",strictTuples:(E=(b=e.strictTuples)!==null&&b!==void 0?b:De)!==null&&E!==void 0?E:"log",strictRequired:(B=(N=e.strictRequired)!==null&&N!==void 0?N:De)!==null&&B!==void 0?B:!1,code:e.code?{...e.code,optimize:et,regExp:ct}:{optimize:et,regExp:ct},loopRequired:(F=e.loopRequired)!==null&&F!==void 0?F:F6i,loopEnum:(Q=e.loopEnum)!==null&&Q!==void 0?Q:F6i,meta:(X=e.meta)!==null&&X!==void 0?X:!0,messages:(ae=e.messages)!==null&&ae!==void 0?ae:!0,inlineRefs:(ne=e.inlineRefs)!==null&&ne!==void 0?ne:!0,schemaId:(ce=e.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(fe=e.addUsedSchema)!==null&&fe!==void 0?fe:!0,validateSchema:(ue=e.validateSchema)!==null&&ue!==void 0?ue:!0,validateFormats:(de=e.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(be=e.unicodeRegExp)!==null&&be!==void 0?be:!0,int32range:(Se=e.int32range)!==null&&Se!==void 0?Se:!0,uriResolver:Me}}var b8e=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...X5c(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new W5c.ValueScope({scope:{},prefixes:H5c,es5:r,lines:n}),this.logger=q5c(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,P5c.getRules)(),Z6i.call(this,Y5c,t,"NOT SUPPORTED"),Z6i.call(this,Q5c,t,"DEPRECATED","warn"),this._metaOpts=j5c.call(this),t.formats&&U5c.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&K5c.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),J5c.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=G6i;n==="id"&&(a={...G6i},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let a=n(r);return"$async"in n||(this.errors=n.errors),a}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,t,r);async function a(C,b){await o.call(this,C.$schema);let E=this._addSchema(C,b);return E.validate||l.call(this,E)}async function o(C){C&&!this.getSchema(C)&&await a.call(this,{$ref:C},!0)}async function l(C){try{return this._compileSchemaEnv(C)}catch(b){if(!(b instanceof V6i.default))throw b;return A.call(this,b),await f.call(this,b.missingSchema),l.call(this,C)}}function A({missingSchema:C,missingRef:b}){if(this.refs[C])throw new Error(`AnySchema ${C} is loaded but ${b} cannot be resolved`)}async function f(C){let b=await I.call(this,C);this.refs[C]||await o.call(this,b.$schema),this.refs[C]||this.addSchema(b,C,r)}async function I(C){let b=this._loading[C];if(b)return b;try{return await(this._loading[C]=n(C))}finally{delete this._loading[C]}}}addSchema(t,r,n,a=this.opts.validateSchema){if(Array.isArray(t)){for(let l of t)this.addSchema(l,void 0,n,a);return this}let o;if(typeof t=="object"){let{schemaId:l}=this.opts;if(o=t[l],o!==void 0&&typeof o!="string")throw new Error(`schema ${l} must be string`)}return r=(0,y8e.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,t);if(!a&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return a}getSchema(t){let r;for(;typeof(r=L6i.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new _8e.SchemaEnv({schema:{},schemaId:n});if(r=_8e.resolveSchema.call(this,a,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=L6i.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,y8e.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(eMc.call(this,n,r),!r)return(0,eWr.eachItem)(n,o=>$Pr.call(this,o)),this;rMc.call(this,r);let a={...r,type:(0,NBt.getJSONTypes)(r.type),schemaType:(0,NBt.getJSONTypes)(r.schemaType)};return(0,eWr.eachItem)(n,a.type.length===0?o=>$Pr.call(this,o,a):o=>a.type.forEach(l=>$Pr.call(this,o,a,l))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let a=n.rules.findIndex(o=>o.keyword===t);a>=0&&n.rules.splice(a,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,o)=>a+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let o=a.split("/").slice(1),l=t;for(let A of o)l=l[A];for(let A in n){let f=n[A];if(typeof f!="object")continue;let{$data:I}=f.definition,C=l[A];I&&C&&(l[A]=W6i(C))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,o=this.opts.addUsedSchema){let l,{schemaId:A}=this.opts;if(typeof t=="object")l=t[A];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let f=this._cache.get(t);if(f!==void 0)return f;n=(0,y8e.normalizeId)(l||n);let I=y8e.getSchemaRefs.call(this,t,n);return f=new _8e.SchemaEnv({schema:t,schemaId:A,meta:r,baseId:n,localRefs:I}),this._cache.set(f.schema,f),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=f),a&&this.validateSchema(t,!0),f}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):_8e.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{_8e.compileSchema.call(this,t)}finally{this.opts=r}}};b8e.ValidationError=V5c.default;b8e.MissingRefError=V6i.default;ex.default=b8e;function Z6i(e,t,r,n="error"){for(let a in e){let o=a;o in t&&this.logger[n](`${r}: option ${a}. ${e[o]}`)}}function L6i(e){return e=(0,y8e.normalizeId)(e),this.schemas[e]||this.refs[e]}function J5c(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function U5c(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function K5c(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function j5c(){let e={...this.opts};for(let t of M5c)delete e[t];return e}var z5c={log(){},warn(){},error(){}};function q5c(e){if(e===!1)return z5c;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var $5c=/^[a-z_$][a-z0-9_$:-]*$/i;function eMc(e,t){let{RULES:r}=this;if((0,eWr.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!$5c.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $Pr(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,l=a?o.post:o.rules.find(({type:f})=>f===r);if(l||(l={type:r,rules:[]},o.rules.push(l)),o.keywords[e]=!0,!t)return;let A={keyword:e,definition:{...t,type:(0,NBt.getJSONTypes)(t.type),schemaType:(0,NBt.getJSONTypes)(t.schemaType)}};t.before?tMc.call(this,l,A,t.before):l.rules.push(A),o.all[e]=A,(n=t.implements)===null||n===void 0||n.forEach(f=>this.addKeyword(f))}function tMc(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function rMc(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=W6i(t)),e.validateSchema=this.compile(t,!0))}var nMc={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function W6i(e){return{anyOf:[e,nMc]}}});var M6i=H(tWr=>{"use strict";Object.defineProperty(tWr,"__esModule",{value:!0});var iMc={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};tWr.default=iMc});var X6i=H(a_e=>{"use strict";Object.defineProperty(a_e,"__esModule",{value:!0});a_e.callRef=a_e.getValidate=void 0;var sMc=m8e(),H6i=IH(),xV=Hh(),uke=rte(),Y6i=BBt(),DBt=B_(),oMc={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:o,validateName:l,opts:A,self:f}=n,{root:I}=o;if((r==="#"||r==="#/")&&a===I.baseId)return b();let C=Y6i.resolveRef.call(f,I,a,r);if(C===void 0)throw new sMc.default(n.opts.uriResolver,a,r);if(C instanceof Y6i.SchemaEnv)return E(C);return N(C);function b(){if(o===I)return kBt(e,l,o,o.$async);let B=t.scopeValue("root",{ref:I});return kBt(e,(0,xV._)`${B}.validate`,I,I.$async)}function E(B){let F=Q6i(e,B);kBt(e,F,B,B.$async)}function N(B){let F=t.scopeValue("schema",A.code.source===!0?{ref:B,code:(0,xV.stringify)(B)}:{ref:B}),Q=t.name("valid"),X=e.subschema({schema:B,dataTypes:[],schemaPath:xV.nil,topSchemaRef:F,errSchemaPath:r},Q);e.mergeEvaluated(X),e.ok(Q)}}};function Q6i(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,xV._)`${r.scopeValue("wrapper",{ref:t})}.validate`}a_e.getValidate=Q6i;function kBt(e,t,r,n){let{gen:a,it:o}=e,{allErrors:l,schemaEnv:A,opts:f}=o,I=f.passContext?uke.default.this:xV.nil;n?C():b();function C(){if(!A.$async)throw new Error("async schema referenced by sync schema");let B=a.let("valid");a.try(()=>{a.code((0,xV._)`await ${(0,H6i.callValidateCode)(e,t,I)}`),N(t),l||a.assign(B,!0)},F=>{a.if((0,xV._)`!(${F} instanceof ${o.ValidationError})`,()=>a.throw(F)),E(F),l||a.assign(B,!1)}),e.ok(B)}function b(){e.result((0,H6i.callValidateCode)(e,t,I),()=>N(t),()=>E(t))}function E(B){let F=(0,xV._)`${B}.errors`;a.assign(uke.default.vErrors,(0,xV._)`${uke.default.vErrors} === null ? ${F} : ${uke.default.vErrors}.concat(${F})`),a.assign(uke.default.errors,(0,xV._)`${uke.default.vErrors}.length`)}function N(B){var F;if(!o.opts.unevaluated)return;let Q=(F=r?.validate)===null||F===void 0?void 0:F.evaluated;if(o.props!==!0)if(Q&&!Q.dynamicProps)Q.props!==void 0&&(o.props=DBt.mergeEvaluated.props(a,Q.props,o.props));else{let X=a.var("props",(0,xV._)`${B}.evaluated.props`);o.props=DBt.mergeEvaluated.props(a,X,o.props,xV.Name)}if(o.items!==!0)if(Q&&!Q.dynamicItems)Q.items!==void 0&&(o.items=DBt.mergeEvaluated.items(a,Q.items,o.items));else{let X=a.var("items",(0,xV._)`${B}.evaluated.items`);o.items=DBt.mergeEvaluated.items(a,X,o.items,xV.Name)}}}a_e.callRef=kBt;a_e.default=oMc});var J6i=H(rWr=>{"use strict";Object.defineProperty(rWr,"__esModule",{value:!0});var aMc=M6i(),cMc=X6i(),lMc=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",aMc.default,cMc.default];rWr.default=lMc});var U6i=H(nWr=>{"use strict";Object.defineProperty(nWr,"__esModule",{value:!0});var xBt=Hh(),Ale=xBt.operators,GBt={maximum:{okStr:"<=",ok:Ale.LTE,fail:Ale.GT},minimum:{okStr:">=",ok:Ale.GTE,fail:Ale.LT},exclusiveMaximum:{okStr:"<",ok:Ale.LT,fail:Ale.GTE},exclusiveMinimum:{okStr:">",ok:Ale.GT,fail:Ale.LTE}},uMc={message:({keyword:e,schemaCode:t})=>(0,xBt.str)`must be ${GBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,xBt._)`{comparison: ${GBt[e].okStr}, limit: ${t}}`},gMc={keyword:Object.keys(GBt),type:"number",schemaType:"number",$data:!0,error:uMc,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,xBt._)`${r} ${GBt[t].fail} ${n} || isNaN(${r})`)}};nWr.default=gMc});var K6i=H(iWr=>{"use strict";Object.defineProperty(iWr,"__esModule",{value:!0});var E8e=Hh(),AMc={message:({schemaCode:e})=>(0,E8e.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,E8e._)`{multipleOf: ${e}}`},dMc={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:AMc,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,o=a.opts.multipleOfPrecision,l=t.let("res"),A=o?(0,E8e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${o}`:(0,E8e._)`${l} !== parseInt(${l})`;e.fail$data((0,E8e._)`(${n} === 0 || (${l} = ${r}/${n}, ${A}))`)}};iWr.default=dMc});var z6i=H(sWr=>{"use strict";Object.defineProperty(sWr,"__esModule",{value:!0});function j6i(e){let t=e.length,r=0,n=0,a;for(;n=55296&&a<=56319&&n{"use strict";Object.defineProperty(oWr,"__esModule",{value:!0});var c_e=Hh(),pMc=B_(),fMc=z6i(),IMc={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,c_e.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,c_e._)`{limit: ${e}}`},hMc={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:IMc,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,o=t==="maxLength"?c_e.operators.GT:c_e.operators.LT,l=a.opts.unicode===!1?(0,c_e._)`${r}.length`:(0,c_e._)`${(0,pMc.useFunc)(e.gen,fMc.default)}(${r})`;e.fail$data((0,c_e._)`${l} ${o} ${n}`)}};oWr.default=hMc});var $6i=H(aWr=>{"use strict";Object.defineProperty(aWr,"__esModule",{value:!0});var mMc=IH(),FBt=Hh(),CMc={message:({schemaCode:e})=>(0,FBt.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,FBt._)`{pattern: ${e}}`},_Mc={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:CMc,code(e){let{data:t,$data:r,schema:n,schemaCode:a,it:o}=e,l=o.opts.unicodeRegExp?"u":"",A=r?(0,FBt._)`(new RegExp(${a}, ${l}))`:(0,mMc.usePattern)(e,n);e.fail$data((0,FBt._)`!${A}.test(${t})`)}};aWr.default=_Mc});var e7i=H(cWr=>{"use strict";Object.defineProperty(cWr,"__esModule",{value:!0});var S8e=Hh(),yMc={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,S8e.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,S8e._)`{limit: ${e}}`},bMc={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:yMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?S8e.operators.GT:S8e.operators.LT;e.fail$data((0,S8e._)`Object.keys(${r}).length ${a} ${n}`)}};cWr.default=bMc});var t7i=H(lWr=>{"use strict";Object.defineProperty(lWr,"__esModule",{value:!0});var v8e=IH(),B8e=Hh(),EMc=B_(),SMc={message:({params:{missingProperty:e}})=>(0,B8e.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,B8e._)`{missingProperty: ${e}}`},vMc={keyword:"required",type:"object",schemaType:"array",$data:!0,error:SMc,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:o,it:l}=e,{opts:A}=l;if(!o&&r.length===0)return;let f=r.length>=A.loopRequired;if(l.allErrors?I():C(),A.strictRequired){let N=e.parentSchema.properties,{definedProperties:B}=e.it;for(let F of r)if(N?.[F]===void 0&&!B.has(F)){let Q=l.schemaEnv.baseId+l.errSchemaPath,X=`required property "${F}" is not defined at "${Q}" (strictRequired)`;(0,EMc.checkStrictMode)(l,X,l.opts.strictRequired)}}function I(){if(f||o)e.block$data(B8e.nil,b);else for(let N of r)(0,v8e.checkReportMissingProp)(e,N)}function C(){let N=t.let("missing");if(f||o){let B=t.let("valid",!0);e.block$data(B,()=>E(N,B)),e.ok(B)}else t.if((0,v8e.checkMissingProp)(e,r,N)),(0,v8e.reportMissingProp)(e,N),t.else()}function b(){t.forOf("prop",n,N=>{e.setParams({missingProperty:N}),t.if((0,v8e.noPropertyInData)(t,a,N,A.ownProperties),()=>e.error())})}function E(N,B){e.setParams({missingProperty:N}),t.forOf(N,n,()=>{t.assign(B,(0,v8e.propertyInData)(t,a,N,A.ownProperties)),t.if((0,B8e.not)(B),()=>{e.error(),t.break()})},B8e.nil)}}};lWr.default=vMc});var r7i=H(uWr=>{"use strict";Object.defineProperty(uWr,"__esModule",{value:!0});var w8e=Hh(),BMc={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,w8e.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,w8e._)`{limit: ${e}}`},wMc={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:BMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?w8e.operators.GT:w8e.operators.LT;e.fail$data((0,w8e._)`${r}.length ${a} ${n}`)}};uWr.default=wMc});var ZBt=H(gWr=>{"use strict";Object.defineProperty(gWr,"__esModule",{value:!0});var n7i=ZPr();n7i.code='require("ajv/dist/runtime/equal").default';gWr.default=n7i});var i7i=H(dWr=>{"use strict";Object.defineProperty(dWr,"__esModule",{value:!0});var AWr=d8e(),tx=Hh(),TMc=B_(),RMc=ZBt(),NMc={message:({params:{i:e,j:t}})=>(0,tx.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,tx._)`{i: ${e}, j: ${t}}`},DMc={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:NMc,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:o,schemaCode:l,it:A}=e;if(!n&&!a)return;let f=t.let("valid"),I=o.items?(0,AWr.getSchemaTypes)(o.items):[];e.block$data(f,C,(0,tx._)`${l} === false`),e.ok(f);function C(){let B=t.let("i",(0,tx._)`${r}.length`),F=t.let("j");e.setParams({i:B,j:F}),t.assign(f,!0),t.if((0,tx._)`${B} > 1`,()=>(b()?E:N)(B,F))}function b(){return I.length>0&&!I.some(B=>B==="object"||B==="array")}function E(B,F){let Q=t.name("item"),X=(0,AWr.checkDataTypes)(I,Q,A.opts.strictNumbers,AWr.DataType.Wrong),ae=t.const("indices",(0,tx._)`{}`);t.for((0,tx._)`;${B}--;`,()=>{t.let(Q,(0,tx._)`${r}[${B}]`),t.if(X,(0,tx._)`continue`),I.length>1&&t.if((0,tx._)`typeof ${Q} == "string"`,(0,tx._)`${Q} += "_"`),t.if((0,tx._)`typeof ${ae}[${Q}] == "number"`,()=>{t.assign(F,(0,tx._)`${ae}[${Q}]`),e.error(),t.assign(f,!1).break()}).code((0,tx._)`${ae}[${Q}] = ${B}`)})}function N(B,F){let Q=(0,TMc.useFunc)(t,RMc.default),X=t.name("outer");t.label(X).for((0,tx._)`;${B}--;`,()=>t.for((0,tx._)`${F} = ${B}; ${F}--;`,()=>t.if((0,tx._)`${Q}(${r}[${B}], ${r}[${F}])`,()=>{e.error(),t.assign(f,!1).break(X)})))}}};dWr.default=DMc});var s7i=H(fWr=>{"use strict";Object.defineProperty(fWr,"__esModule",{value:!0});var pWr=Hh(),kMc=B_(),xMc=ZBt(),GMc={message:"must be equal to constant",params:({schemaCode:e})=>(0,pWr._)`{allowedValue: ${e}}`},FMc={keyword:"const",$data:!0,error:GMc,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,pWr._)`!${(0,kMc.useFunc)(t,xMc.default)}(${r}, ${a})`):e.fail((0,pWr._)`${o} !== ${r}`)}};fWr.default=FMc});var o7i=H(IWr=>{"use strict";Object.defineProperty(IWr,"__esModule",{value:!0});var T8e=Hh(),ZMc=B_(),LMc=ZBt(),VMc={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,T8e._)`{allowedValues: ${e}}`},PMc={keyword:"enum",schemaType:"array",$data:!0,error:VMc,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:o,it:l}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let A=a.length>=l.opts.loopEnum,f,I=()=>f??(f=(0,ZMc.useFunc)(t,LMc.default)),C;if(A||n)C=t.let("valid"),e.block$data(C,b);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let N=t.const("vSchema",o);C=(0,T8e.or)(...a.map((B,F)=>E(N,F)))}e.pass(C);function b(){t.assign(C,!1),t.forOf("v",o,N=>t.if((0,T8e._)`${I()}(${r}, ${N})`,()=>t.assign(C,!0).break()))}function E(N,B){let F=a[B];return typeof F=="object"&&F!==null?(0,T8e._)`${I()}(${r}, ${N}[${B}])`:(0,T8e._)`${r} === ${F}`}}};IWr.default=PMc});var a7i=H(hWr=>{"use strict";Object.defineProperty(hWr,"__esModule",{value:!0});var WMc=U6i(),OMc=K6i(),MMc=q6i(),HMc=$6i(),YMc=e7i(),QMc=t7i(),XMc=r7i(),JMc=i7i(),UMc=s7i(),KMc=o7i(),jMc=[WMc.default,OMc.default,MMc.default,HMc.default,YMc.default,QMc.default,XMc.default,JMc.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},UMc.default,KMc.default];hWr.default=jMc});var CWr=H(R8e=>{"use strict";Object.defineProperty(R8e,"__esModule",{value:!0});R8e.validateAdditionalItems=void 0;var l_e=Hh(),mWr=B_(),zMc={message:({params:{len:e}})=>(0,l_e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,l_e._)`{limit: ${e}}`},qMc={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zMc,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,mWr.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}c7i(e,n)}};function c7i(e,t){let{gen:r,schema:n,data:a,keyword:o,it:l}=e;l.items=!0;let A=r.const("len",(0,l_e._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,l_e._)`${A} <= ${t.length}`);else if(typeof n=="object"&&!(0,mWr.alwaysValidSchema)(l,n)){let I=r.var("valid",(0,l_e._)`${A} <= ${t.length}`);r.if((0,l_e.not)(I),()=>f(I)),e.ok(I)}function f(I){r.forRange("i",t.length,A,C=>{e.subschema({keyword:o,dataProp:C,dataPropType:mWr.Type.Num},I),l.allErrors||r.if((0,l_e.not)(I),()=>r.break())})}}R8e.validateAdditionalItems=c7i;R8e.default=qMc});var _Wr=H(N8e=>{"use strict";Object.defineProperty(N8e,"__esModule",{value:!0});N8e.validateTuple=void 0;var l7i=Hh(),LBt=B_(),$Mc=IH(),eHc={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return u7i(e,"additionalItems",t);r.items=!0,!(0,LBt.alwaysValidSchema)(r,t)&&e.ok((0,$Mc.validateArray)(e))}};function u7i(e,t,r=e.schema){let{gen:n,parentSchema:a,data:o,keyword:l,it:A}=e;C(a),A.opts.unevaluated&&r.length&&A.items!==!0&&(A.items=LBt.mergeEvaluated.items(n,r.length,A.items));let f=n.name("valid"),I=n.const("len",(0,l7i._)`${o}.length`);r.forEach((b,E)=>{(0,LBt.alwaysValidSchema)(A,b)||(n.if((0,l7i._)`${I} > ${E}`,()=>e.subschema({keyword:l,schemaProp:E,dataProp:E},f)),e.ok(f))});function C(b){let{opts:E,errSchemaPath:N}=A,B=r.length,F=B===b.minItems&&(B===b.maxItems||b[t]===!1);if(E.strictTuples&&!F){let Q=`"${l}" is ${B}-tuple, but minItems or maxItems/${t} are not specified or different at path "${N}"`;(0,LBt.checkStrictMode)(A,Q,E.strictTuples)}}}N8e.validateTuple=u7i;N8e.default=eHc});var g7i=H(yWr=>{"use strict";Object.defineProperty(yWr,"__esModule",{value:!0});var tHc=_Wr(),rHc={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,tHc.validateTuple)(e,"items")};yWr.default=rHc});var d7i=H(bWr=>{"use strict";Object.defineProperty(bWr,"__esModule",{value:!0});var A7i=Hh(),nHc=B_(),iHc=IH(),sHc=CWr(),oHc={message:({params:{len:e}})=>(0,A7i.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,A7i._)`{limit: ${e}}`},aHc={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:oHc,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,nHc.alwaysValidSchema)(n,t)&&(a?(0,sHc.validateAdditionalItems)(e,a):e.ok((0,iHc.validateArray)(e)))}};bWr.default=aHc});var p7i=H(EWr=>{"use strict";Object.defineProperty(EWr,"__esModule",{value:!0});var mH=Hh(),VBt=B_(),cHc={message:({params:{min:e,max:t}})=>t===void 0?(0,mH.str)`must contain at least ${e} valid item(s)`:(0,mH.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,mH._)`{minContains: ${e}}`:(0,mH._)`{minContains: ${e}, maxContains: ${t}}`},lHc={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:cHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e,l,A,{minContains:f,maxContains:I}=n;o.opts.next?(l=f===void 0?1:f,A=I):l=1;let C=t.const("len",(0,mH._)`${a}.length`);if(e.setParams({min:l,max:A}),A===void 0&&l===0){(0,VBt.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(A!==void 0&&l>A){(0,VBt.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,VBt.alwaysValidSchema)(o,r)){let F=(0,mH._)`${C} >= ${l}`;A!==void 0&&(F=(0,mH._)`${F} && ${C} <= ${A}`),e.pass(F);return}o.items=!0;let b=t.name("valid");A===void 0&&l===1?N(b,()=>t.if(b,()=>t.break())):l===0?(t.let(b,!0),A!==void 0&&t.if((0,mH._)`${a}.length > 0`,E)):(t.let(b,!1),E()),e.result(b,()=>e.reset());function E(){let F=t.name("_valid"),Q=t.let("count",0);N(F,()=>t.if(F,()=>B(Q)))}function N(F,Q){t.forRange("i",0,C,X=>{e.subschema({keyword:"contains",dataProp:X,dataPropType:VBt.Type.Num,compositeRule:!0},F),Q()})}function B(F){t.code((0,mH._)`${F}++`),A===void 0?t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0).break()):(t.if((0,mH._)`${F} > ${A}`,()=>t.assign(b,!1).break()),l===1?t.assign(b,!0):t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0)))}}};EWr.default=lHc});var h7i=H(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.validateSchemaDeps=Oj.validatePropertyDeps=Oj.error=void 0;var SWr=Hh(),uHc=B_(),D8e=IH();Oj.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,SWr.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,SWr._)`{property: ${e}, missingProperty: ${n}, depsCount: ${t}, - deps: ${r}}`};var uHc={keyword:"dependencies",type:"object",schemaType:"object",error:Oj.error,code(e){let[t,r]=gHc(e);f7i(e,t),I7i(e,r)}};function gHc({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function f7i(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let l in t){let A=t[l];if(A.length===0)continue;let f=(0,D8e.propertyInData)(r,n,l,a.opts.ownProperties);e.setParams({property:l,depsCount:A.length,deps:A.join(", ")}),a.allErrors?r.if(f,()=>{for(let I of A)(0,D8e.checkReportMissingProp)(e,I)}):(r.if((0,SWr._)`${f} && (${(0,D8e.checkMissingProp)(e,A,o)})`),(0,D8e.reportMissingProp)(e,o),r.else())}}Oj.validatePropertyDeps=f7i;function I7i(e,t=e.schema){let{gen:r,data:n,keyword:a,it:o}=e,l=r.name("valid");for(let A in t)(0,lHc.alwaysValidSchema)(o,t[A])||(r.if((0,D8e.propertyInData)(r,n,A,o.opts.ownProperties),()=>{let f=e.subschema({keyword:a,schemaProp:A},l);e.mergeValidEvaluated(f,l)},()=>r.var(l,!0)),e.ok(l))}Oj.validateSchemaDeps=I7i;Oj.default=uHc});var C7i=H(vWr=>{"use strict";Object.defineProperty(vWr,"__esModule",{value:!0});var m7i=Hh(),AHc=B_(),dHc={message:"property name must be valid",params:({params:e})=>(0,m7i._)`{propertyName: ${e.propertyName}}`},pHc={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:dHc,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,AHc.alwaysValidSchema)(a,r))return;let o=t.name("valid");t.forIn("key",n,l=>{e.setParams({propertyName:l}),e.subschema({keyword:"propertyNames",data:l,dataTypes:["string"],propertyName:l,compositeRule:!0},o),t.if((0,m7i.not)(o),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(o)}};vWr.default=pHc});var wWr=H(BWr=>{"use strict";Object.defineProperty(BWr,"__esModule",{value:!0});var PBt=IH(),R4=Hh(),fHc=rte(),WBt=B_(),IHc={message:"must NOT have additional properties",params:({params:e})=>(0,R4._)`{additionalProperty: ${e.additionalProperty}}`},hHc={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:IHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:o,it:l}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:A,opts:f}=l;if(l.props=!0,f.removeAdditional!=="all"&&(0,WBt.alwaysValidSchema)(l,r))return;let I=(0,PBt.allSchemaProperties)(n.properties),C=(0,PBt.allSchemaProperties)(n.patternProperties);b(),e.ok((0,R4._)`${o} === ${fHc.default.errors}`);function b(){t.forIn("key",a,Q=>{!I.length&&!C.length?B(Q):t.if(E(Q),()=>B(Q))})}function E(Q){let X;if(I.length>8){let ae=(0,WBt.schemaRefOrVal)(l,n.properties,"properties");X=(0,PBt.isOwnProperty)(t,ae,Q)}else I.length?X=(0,R4.or)(...I.map(ae=>(0,R4._)`${Q} === ${ae}`)):X=R4.nil;return C.length&&(X=(0,R4.or)(X,...C.map(ae=>(0,R4._)`${(0,PBt.usePattern)(e,ae)}.test(${Q})`))),(0,R4.not)(X)}function N(Q){t.code((0,R4._)`delete ${a}[${Q}]`)}function B(Q){if(f.removeAdditional==="all"||f.removeAdditional&&r===!1){N(Q);return}if(r===!1){e.setParams({additionalProperty:Q}),e.error(),A||t.break();return}if(typeof r=="object"&&!(0,WBt.alwaysValidSchema)(l,r)){let X=t.name("valid");f.removeAdditional==="failing"?(F(Q,X,!1),t.if((0,R4.not)(X),()=>{e.reset(),N(Q)})):(F(Q,X),A||t.if((0,R4.not)(X),()=>t.break()))}}function F(Q,X,ae){let ne={keyword:"additionalProperties",dataProp:Q,dataPropType:WBt.Type.Str};ae===!1&&Object.assign(ne,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(ne,X)}}};BWr.default=hHc});var b7i=H(RWr=>{"use strict";Object.defineProperty(RWr,"__esModule",{value:!0});var mHc=h8e(),_7i=IH(),TWr=B_(),y7i=wWr(),CHc={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&y7i.default.code(new mHc.KeywordCxt(o,y7i.default,"additionalProperties"));let l=(0,_7i.allSchemaProperties)(r);for(let b of l)o.definedProperties.add(b);o.opts.unevaluated&&l.length&&o.props!==!0&&(o.props=TWr.mergeEvaluated.props(t,(0,TWr.toHash)(l),o.props));let A=l.filter(b=>!(0,TWr.alwaysValidSchema)(o,r[b]));if(A.length===0)return;let f=t.name("valid");for(let b of A)I(b)?C(b):(t.if((0,_7i.propertyInData)(t,a,b,o.opts.ownProperties)),C(b),o.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(b),e.ok(f);function I(b){return o.opts.useDefaults&&!o.compositeRule&&r[b].default!==void 0}function C(b){e.subschema({keyword:"properties",schemaProp:b,dataProp:b},f)}}};RWr.default=CHc});var B7i=H(NWr=>{"use strict";Object.defineProperty(NWr,"__esModule",{value:!0});var E7i=IH(),OBt=Hh(),S7i=B_(),v7i=B_(),_Hc={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:o}=e,{opts:l}=o,A=(0,E7i.allSchemaProperties)(r),f=A.filter(F=>(0,S7i.alwaysValidSchema)(o,r[F]));if(A.length===0||f.length===A.length&&(!o.opts.unevaluated||o.props===!0))return;let I=l.strictSchema&&!l.allowMatchingProperties&&a.properties,C=t.name("valid");o.props!==!0&&!(o.props instanceof OBt.Name)&&(o.props=(0,v7i.evaluatedPropsToName)(t,o.props));let{props:b}=o;E();function E(){for(let F of A)I&&N(F),o.allErrors?B(F):(t.var(C,!0),B(F),t.if(C))}function N(F){for(let Q in I)new RegExp(F).test(Q)&&(0,S7i.checkStrictMode)(o,`property ${Q} matches pattern ${F} (use allowMatchingProperties)`)}function B(F){t.forIn("key",n,Q=>{t.if((0,OBt._)`${(0,E7i.usePattern)(e,F)}.test(${Q})`,()=>{let X=f.includes(F);X||e.subschema({keyword:"patternProperties",schemaProp:F,dataProp:Q,dataPropType:v7i.Type.Str},C),o.opts.unevaluated&&b!==!0?t.assign((0,OBt._)`${b}[${Q}]`,!0):!X&&!o.allErrors&&t.if((0,OBt.not)(C),()=>t.break())})})}}};NWr.default=_Hc});var w7i=H(DWr=>{"use strict";Object.defineProperty(DWr,"__esModule",{value:!0});var yHc=B_(),bHc={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,yHc.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};DWr.default=bHc});var T7i=H(kWr=>{"use strict";Object.defineProperty(kWr,"__esModule",{value:!0});var EHc=IH(),SHc={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:EHc.validateUnion,error:{message:"must match a schema in anyOf"}};kWr.default=SHc});var R7i=H(xWr=>{"use strict";Object.defineProperty(xWr,"__esModule",{value:!0});var MBt=Hh(),vHc=B_(),BHc={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,MBt._)`{passingSchemas: ${e.passing}}`},wHc={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:BHc,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let o=r,l=t.let("valid",!1),A=t.let("passing",null),f=t.name("_valid");e.setParams({passing:A}),t.block(I),e.result(l,()=>e.reset(),()=>e.error(!0));function I(){o.forEach((C,b)=>{let E;(0,vHc.alwaysValidSchema)(a,C)?t.var(f,!0):E=e.subschema({keyword:"oneOf",schemaProp:b,compositeRule:!0},f),b>0&&t.if((0,MBt._)`${f} && ${l}`).assign(l,!1).assign(A,(0,MBt._)`[${A}, ${b}]`).else(),t.if(f,()=>{t.assign(l,!0),t.assign(A,b),E&&e.mergeEvaluated(E,MBt.Name)})})}}};xWr.default=wHc});var N7i=H(GWr=>{"use strict";Object.defineProperty(GWr,"__esModule",{value:!0});var THc=B_(),RHc={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let a=t.name("valid");r.forEach((o,l)=>{if((0,THc.alwaysValidSchema)(n,o))return;let A=e.subschema({keyword:"allOf",schemaProp:l},a);e.ok(a),e.mergeEvaluated(A)})}};GWr.default=RHc});var x7i=H(FWr=>{"use strict";Object.defineProperty(FWr,"__esModule",{value:!0});var HBt=Hh(),k7i=B_(),NHc={message:({params:e})=>(0,HBt.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,HBt._)`{failingKeyword: ${e.ifClause}}`},DHc={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:NHc,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,k7i.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=D7i(n,"then"),o=D7i(n,"else");if(!a&&!o)return;let l=t.let("valid",!0),A=t.name("_valid");if(f(),e.reset(),a&&o){let C=t.let("ifClause");e.setParams({ifClause:C}),t.if(A,I("then",C),I("else",C))}else a?t.if(A,I("then")):t.if((0,HBt.not)(A),I("else"));e.pass(l,()=>e.error(!0));function f(){let C=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},A);e.mergeEvaluated(C)}function I(C,b){return()=>{let E=e.subschema({keyword:C},A);t.assign(l,A),e.mergeValidEvaluated(E,l),b?t.assign(b,(0,HBt._)`${C}`):e.setParams({ifClause:C})}}}};function D7i(e,t){let r=e.schema[t];return r!==void 0&&!(0,k7i.alwaysValidSchema)(e,r)}FWr.default=DHc});var G7i=H(ZWr=>{"use strict";Object.defineProperty(ZWr,"__esModule",{value:!0});var kHc=B_(),xHc={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,kHc.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};ZWr.default=xHc});var F7i=H(LWr=>{"use strict";Object.defineProperty(LWr,"__esModule",{value:!0});var GHc=CWr(),FHc=g7i(),ZHc=_Wr(),LHc=d7i(),VHc=p7i(),PHc=h7i(),WHc=C7i(),OHc=wWr(),MHc=b7i(),HHc=B7i(),YHc=w7i(),QHc=T7i(),XHc=R7i(),JHc=N7i(),UHc=x7i(),KHc=G7i();function jHc(e=!1){let t=[YHc.default,QHc.default,XHc.default,JHc.default,UHc.default,KHc.default,WHc.default,OHc.default,PHc.default,MHc.default,HHc.default];return e?t.push(FHc.default,LHc.default):t.push(GHc.default,ZHc.default),t.push(VHc.default),t}LWr.default=jHc});var Z7i=H(VWr=>{"use strict";Object.defineProperty(VWr,"__esModule",{value:!0});var ow=Hh(),zHc={message:({schemaCode:e})=>(0,ow.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ow._)`{format: ${e}}`},qHc={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:zHc,code(e,t){let{gen:r,data:n,$data:a,schema:o,schemaCode:l,it:A}=e,{opts:f,errSchemaPath:I,schemaEnv:C,self:b}=A;if(!f.validateFormats)return;a?E():N();function E(){let B=r.scopeValue("formats",{ref:b.formats,code:f.code.formats}),F=r.const("fDef",(0,ow._)`${B}[${l}]`),Q=r.let("fType"),X=r.let("format");r.if((0,ow._)`typeof ${F} == "object" && !(${F} instanceof RegExp)`,()=>r.assign(Q,(0,ow._)`${F}.type || "string"`).assign(X,(0,ow._)`${F}.validate`),()=>r.assign(Q,(0,ow._)`"string"`).assign(X,F)),e.fail$data((0,ow.or)(ae(),ne()));function ae(){return f.strictSchema===!1?ow.nil:(0,ow._)`${l} && !${X}`}function ne(){let ce=C.$async?(0,ow._)`(${F}.async ? await ${X}(${n}) : ${X}(${n}))`:(0,ow._)`${X}(${n})`,fe=(0,ow._)`(typeof ${X} == "function" ? ${ce} : ${X}.test(${n}))`;return(0,ow._)`${X} && ${X} !== true && ${Q} === ${t} && !${fe}`}}function N(){let B=b.formats[o];if(!B){ae();return}if(B===!0)return;let[F,Q,X]=ne(B);F===t&&e.pass(ce());function ae(){if(f.strictSchema===!1){b.logger.warn(fe());return}throw new Error(fe());function fe(){return`unknown format "${o}" ignored in schema at path "${I}"`}}function ne(fe){let ue=fe instanceof RegExp?(0,ow.regexpCode)(fe):f.code.formats?(0,ow._)`${f.code.formats}${(0,ow.getProperty)(o)}`:void 0,de=r.scopeValue("formats",{key:o,ref:fe,code:ue});return typeof fe=="object"&&!(fe instanceof RegExp)?[fe.type||"string",fe.validate,(0,ow._)`${de}.validate`]:["string",fe,de]}function ce(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!C.$async)throw new Error("async format in sync schema");return(0,ow._)`await ${X}(${n})`}return typeof Q=="function"?(0,ow._)`${X}(${n})`:(0,ow._)`${X}.test(${n})`}}}};VWr.default=qHc});var L7i=H(PWr=>{"use strict";Object.defineProperty(PWr,"__esModule",{value:!0});var $Hc=Z7i(),eYc=[$Hc.default];PWr.default=eYc});var V7i=H(gke=>{"use strict";Object.defineProperty(gke,"__esModule",{value:!0});gke.contentVocabulary=gke.metadataVocabulary=void 0;gke.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];gke.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var W7i=H(WWr=>{"use strict";Object.defineProperty(WWr,"__esModule",{value:!0});var tYc=J6i(),rYc=a7i(),nYc=F7i(),iYc=L7i(),P7i=V7i(),sYc=[tYc.default,rYc.default,(0,nYc.default)(),iYc.default,P7i.metadataVocabulary,P7i.contentVocabulary];WWr.default=sYc});var M7i=H(YBt=>{"use strict";Object.defineProperty(YBt,"__esModule",{value:!0});YBt.DiscrError=void 0;var O7i;(function(e){e.Tag="tag",e.Mapping="mapping"})(O7i||(YBt.DiscrError=O7i={}))});var Y7i=H(MWr=>{"use strict";Object.defineProperty(MWr,"__esModule",{value:!0});var Ake=Hh(),OWr=M7i(),H7i=BBt(),oYc=m8e(),aYc=B_(),cYc={message:({params:{discrError:e,tagName:t}})=>e===OWr.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Ake._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},lYc={keyword:"discriminator",type:"object",schemaType:"object",error:cYc,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:o}=e,{oneOf:l}=a;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let A=n.propertyName;if(typeof A!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");let f=t.let("valid",!1),I=t.const("tag",(0,Ake._)`${r}${(0,Ake.getProperty)(A)}`);t.if((0,Ake._)`typeof ${I} == "string"`,()=>C(),()=>e.error(!1,{discrError:OWr.DiscrError.Tag,tag:I,tagName:A})),e.ok(f);function C(){let N=E();t.if(!1);for(let B in N)t.elseIf((0,Ake._)`${I} === ${B}`),t.assign(f,b(N[B]));t.else(),e.error(!1,{discrError:OWr.DiscrError.Mapping,tag:I,tagName:A}),t.endIf()}function b(N){let B=t.name("valid"),F=e.subschema({keyword:"oneOf",schemaProp:N},B);return e.mergeEvaluated(F,Ake.Name),B}function E(){var N;let B={},F=X(a),Q=!0;for(let ce=0;ce{uYc.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var YWr=H((J1,HWr)=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.MissingRefError=J1.ValidationError=J1.CodeGen=J1.Name=J1.nil=J1.stringify=J1.str=J1._=J1.KeywordCxt=J1.Ajv=void 0;var gYc=O6i(),AYc=W7i(),dYc=Y7i(),X7i=Q7i(),pYc=["/properties"],QBt="http://json-schema.org/draft-07/schema",dke=class extends gYc.default{_addVocabularies(){super._addVocabularies(),AYc.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(dYc.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(X7i,pYc):X7i;this.addMetaSchema(t,QBt,!1),this.refs["http://json-schema.org/schema"]=QBt}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(QBt)?QBt:void 0)}};J1.Ajv=dke;HWr.exports=J1=dke;HWr.exports.Ajv=dke;Object.defineProperty(J1,"__esModule",{value:!0});J1.default=dke;var fYc=h8e();Object.defineProperty(J1,"KeywordCxt",{enumerable:!0,get:function(){return fYc.KeywordCxt}});var pke=Hh();Object.defineProperty(J1,"_",{enumerable:!0,get:function(){return pke._}});Object.defineProperty(J1,"str",{enumerable:!0,get:function(){return pke.str}});Object.defineProperty(J1,"stringify",{enumerable:!0,get:function(){return pke.stringify}});Object.defineProperty(J1,"nil",{enumerable:!0,get:function(){return pke.nil}});Object.defineProperty(J1,"Name",{enumerable:!0,get:function(){return pke.Name}});Object.defineProperty(J1,"CodeGen",{enumerable:!0,get:function(){return pke.CodeGen}});var IYc=SBt();Object.defineProperty(J1,"ValidationError",{enumerable:!0,get:function(){return IYc.default}});var hYc=m8e();Object.defineProperty(J1,"MissingRefError",{enumerable:!0,get:function(){return hYc.default}})});var ezi=H(Hj=>{"use strict";Object.defineProperty(Hj,"__esModule",{value:!0});Hj.formatNames=Hj.fastFormats=Hj.fullFormats=void 0;function Mj(e,t){return{validate:e,compare:t}}Hj.fullFormats={date:Mj(j7i,UWr),time:Mj(XWr(!0),KWr),"date-time":Mj(J7i(!0),q7i),"iso-time":Mj(XWr(),z7i),"iso-date-time":Mj(J7i(),$7i),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:EYc,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:NYc,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:SYc,int32:{type:"number",validate:wYc},int64:{type:"number",validate:TYc},float:{type:"number",validate:K7i},double:{type:"number",validate:K7i},password:!0,binary:!0};Hj.fastFormats={...Hj.fullFormats,date:Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,UWr),time:Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KWr),"date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,q7i),"iso-time":Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,z7i),"iso-date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,$7i),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Hj.formatNames=Object.keys(Hj.fullFormats);function mYc(e){return e%4===0&&(e%100!==0||e%400===0)}var CYc=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,_Yc=[0,31,28,31,30,31,30,31,31,30,31,30,31];function j7i(e){let t=CYc.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],a=+t[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&mYc(r)?29:_Yc[n])}function UWr(e,t){if(e&&t)return e>t?1:e23||C>59||e&&!A)return!1;if(a<=23&&o<=59&&l<60)return!0;let b=o-C*f,E=a-I*f-(b<0?1:0);return(E===23||E===-1)&&(b===59||b===-1)&&l<61}}function KWr(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function z7i(e,t){if(!(e&&t))return;let r=QWr.exec(e),n=QWr.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=vYc}function TYc(e){return Number.isInteger(e)}function K7i(){return!0}var RYc=/[^\\]\\Z/;function NYc(e){if(RYc.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var tzi=H(fke=>{"use strict";Object.defineProperty(fke,"__esModule",{value:!0});fke.formatLimitDefinition=void 0;var DYc=YWr(),N4=Hh(),dle=N4.operators,XBt={formatMaximum:{okStr:"<=",ok:dle.LTE,fail:dle.GT},formatMinimum:{okStr:">=",ok:dle.GTE,fail:dle.LT},formatExclusiveMaximum:{okStr:"<",ok:dle.LT,fail:dle.GTE},formatExclusiveMinimum:{okStr:">",ok:dle.GT,fail:dle.LTE}},kYc={message:({keyword:e,schemaCode:t})=>(0,N4.str)`should be ${XBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,N4._)`{comparison: ${XBt[e].okStr}, limit: ${t}}`};fke.formatLimitDefinition={keyword:Object.keys(XBt),type:"string",schemaType:"string",$data:!0,error:kYc,code(e){let{gen:t,data:r,schemaCode:n,keyword:a,it:o}=e,{opts:l,self:A}=o;if(!l.validateFormats)return;let f=new DYc.KeywordCxt(o,A.RULES.all.format.definition,"format");f.$data?I():C();function I(){let E=t.scopeValue("formats",{ref:A.formats,code:l.code.formats}),N=t.const("fmt",(0,N4._)`${E}[${f.schemaCode}]`);e.fail$data((0,N4.or)((0,N4._)`typeof ${N} != "object"`,(0,N4._)`${N} instanceof RegExp`,(0,N4._)`typeof ${N}.compare != "function"`,b(N)))}function C(){let E=f.schema,N=A.formats[E];if(!N||N===!0)return;if(typeof N!="object"||N instanceof RegExp||typeof N.compare!="function")throw new Error(`"${a}": format "${E}" does not define "compare" function`);let B=t.scopeValue("formats",{key:E,ref:N,code:l.code.formats?(0,N4._)`${l.code.formats}${(0,N4.getProperty)(E)}`:void 0});e.fail$data(b(B))}function b(E){return(0,N4._)`${E}.compare(${r}, ${n}) ${XBt[a].fail} 0`}},dependencies:["format"]};var xYc=e=>(e.addKeyword(fke.formatLimitDefinition),e);fke.default=xYc});var szi=H((k8e,izi)=>{"use strict";Object.defineProperty(k8e,"__esModule",{value:!0});var Ike=ezi(),GYc=tzi(),jWr=Hh(),rzi=new jWr.Name("fullFormats"),FYc=new jWr.Name("fastFormats"),zWr=(e,t={keywords:!0})=>{if(Array.isArray(t))return nzi(e,t,Ike.fullFormats,rzi),e;let[r,n]=t.mode==="fast"?[Ike.fastFormats,FYc]:[Ike.fullFormats,rzi],a=t.formats||Ike.formatNames;return nzi(e,a,r,n),t.keywords&&(0,GYc.default)(e),e};zWr.get=(e,t="full")=>{let n=(t==="fast"?Ike.fastFormats:Ike.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function nzi(e,t,r,n){var a,o;(a=(o=e.opts.code).formats)!==null&&a!==void 0||(o.formats=(0,jWr._)`require("ajv-formats/dist/formats").${n}`);for(let l of t)e.addFormat(l,r[l])}izi.exports=k8e=zWr;Object.defineProperty(k8e,"__esModule",{value:!0});k8e.default=zWr});var Sy=H(JBt=>{"use strict";Object.defineProperty(JBt,"__esModule",{value:!0});JBt.isFunction=void 0;function ZYc(e){return typeof e=="function"}JBt.isFunction=ZYc});var ple=H(UBt=>{"use strict";Object.defineProperty(UBt,"__esModule",{value:!0});UBt.createErrorClass=void 0;function LYc(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}UBt.createErrorClass=LYc});var qWr=H(KBt=>{"use strict";Object.defineProperty(KBt,"__esModule",{value:!0});KBt.UnsubscriptionError=void 0;var VYc=ple();KBt.UnsubscriptionError=VYc.createErrorClass(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: + deps: ${r}}`};var gHc={keyword:"dependencies",type:"object",schemaType:"object",error:Oj.error,code(e){let[t,r]=AHc(e);f7i(e,t),I7i(e,r)}};function AHc({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function f7i(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let l in t){let A=t[l];if(A.length===0)continue;let f=(0,D8e.propertyInData)(r,n,l,a.opts.ownProperties);e.setParams({property:l,depsCount:A.length,deps:A.join(", ")}),a.allErrors?r.if(f,()=>{for(let I of A)(0,D8e.checkReportMissingProp)(e,I)}):(r.if((0,SWr._)`${f} && (${(0,D8e.checkMissingProp)(e,A,o)})`),(0,D8e.reportMissingProp)(e,o),r.else())}}Oj.validatePropertyDeps=f7i;function I7i(e,t=e.schema){let{gen:r,data:n,keyword:a,it:o}=e,l=r.name("valid");for(let A in t)(0,uHc.alwaysValidSchema)(o,t[A])||(r.if((0,D8e.propertyInData)(r,n,A,o.opts.ownProperties),()=>{let f=e.subschema({keyword:a,schemaProp:A},l);e.mergeValidEvaluated(f,l)},()=>r.var(l,!0)),e.ok(l))}Oj.validateSchemaDeps=I7i;Oj.default=gHc});var C7i=H(vWr=>{"use strict";Object.defineProperty(vWr,"__esModule",{value:!0});var m7i=Hh(),dHc=B_(),pHc={message:"property name must be valid",params:({params:e})=>(0,m7i._)`{propertyName: ${e.propertyName}}`},fHc={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:pHc,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,dHc.alwaysValidSchema)(a,r))return;let o=t.name("valid");t.forIn("key",n,l=>{e.setParams({propertyName:l}),e.subschema({keyword:"propertyNames",data:l,dataTypes:["string"],propertyName:l,compositeRule:!0},o),t.if((0,m7i.not)(o),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(o)}};vWr.default=fHc});var wWr=H(BWr=>{"use strict";Object.defineProperty(BWr,"__esModule",{value:!0});var PBt=IH(),R4=Hh(),IHc=rte(),WBt=B_(),hHc={message:"must NOT have additional properties",params:({params:e})=>(0,R4._)`{additionalProperty: ${e.additionalProperty}}`},mHc={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:hHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:o,it:l}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:A,opts:f}=l;if(l.props=!0,f.removeAdditional!=="all"&&(0,WBt.alwaysValidSchema)(l,r))return;let I=(0,PBt.allSchemaProperties)(n.properties),C=(0,PBt.allSchemaProperties)(n.patternProperties);b(),e.ok((0,R4._)`${o} === ${IHc.default.errors}`);function b(){t.forIn("key",a,Q=>{!I.length&&!C.length?B(Q):t.if(E(Q),()=>B(Q))})}function E(Q){let X;if(I.length>8){let ae=(0,WBt.schemaRefOrVal)(l,n.properties,"properties");X=(0,PBt.isOwnProperty)(t,ae,Q)}else I.length?X=(0,R4.or)(...I.map(ae=>(0,R4._)`${Q} === ${ae}`)):X=R4.nil;return C.length&&(X=(0,R4.or)(X,...C.map(ae=>(0,R4._)`${(0,PBt.usePattern)(e,ae)}.test(${Q})`))),(0,R4.not)(X)}function N(Q){t.code((0,R4._)`delete ${a}[${Q}]`)}function B(Q){if(f.removeAdditional==="all"||f.removeAdditional&&r===!1){N(Q);return}if(r===!1){e.setParams({additionalProperty:Q}),e.error(),A||t.break();return}if(typeof r=="object"&&!(0,WBt.alwaysValidSchema)(l,r)){let X=t.name("valid");f.removeAdditional==="failing"?(F(Q,X,!1),t.if((0,R4.not)(X),()=>{e.reset(),N(Q)})):(F(Q,X),A||t.if((0,R4.not)(X),()=>t.break()))}}function F(Q,X,ae){let ne={keyword:"additionalProperties",dataProp:Q,dataPropType:WBt.Type.Str};ae===!1&&Object.assign(ne,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(ne,X)}}};BWr.default=mHc});var b7i=H(RWr=>{"use strict";Object.defineProperty(RWr,"__esModule",{value:!0});var CHc=h8e(),_7i=IH(),TWr=B_(),y7i=wWr(),_Hc={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&y7i.default.code(new CHc.KeywordCxt(o,y7i.default,"additionalProperties"));let l=(0,_7i.allSchemaProperties)(r);for(let b of l)o.definedProperties.add(b);o.opts.unevaluated&&l.length&&o.props!==!0&&(o.props=TWr.mergeEvaluated.props(t,(0,TWr.toHash)(l),o.props));let A=l.filter(b=>!(0,TWr.alwaysValidSchema)(o,r[b]));if(A.length===0)return;let f=t.name("valid");for(let b of A)I(b)?C(b):(t.if((0,_7i.propertyInData)(t,a,b,o.opts.ownProperties)),C(b),o.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(b),e.ok(f);function I(b){return o.opts.useDefaults&&!o.compositeRule&&r[b].default!==void 0}function C(b){e.subschema({keyword:"properties",schemaProp:b,dataProp:b},f)}}};RWr.default=_Hc});var B7i=H(NWr=>{"use strict";Object.defineProperty(NWr,"__esModule",{value:!0});var E7i=IH(),OBt=Hh(),S7i=B_(),v7i=B_(),yHc={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:o}=e,{opts:l}=o,A=(0,E7i.allSchemaProperties)(r),f=A.filter(F=>(0,S7i.alwaysValidSchema)(o,r[F]));if(A.length===0||f.length===A.length&&(!o.opts.unevaluated||o.props===!0))return;let I=l.strictSchema&&!l.allowMatchingProperties&&a.properties,C=t.name("valid");o.props!==!0&&!(o.props instanceof OBt.Name)&&(o.props=(0,v7i.evaluatedPropsToName)(t,o.props));let{props:b}=o;E();function E(){for(let F of A)I&&N(F),o.allErrors?B(F):(t.var(C,!0),B(F),t.if(C))}function N(F){for(let Q in I)new RegExp(F).test(Q)&&(0,S7i.checkStrictMode)(o,`property ${Q} matches pattern ${F} (use allowMatchingProperties)`)}function B(F){t.forIn("key",n,Q=>{t.if((0,OBt._)`${(0,E7i.usePattern)(e,F)}.test(${Q})`,()=>{let X=f.includes(F);X||e.subschema({keyword:"patternProperties",schemaProp:F,dataProp:Q,dataPropType:v7i.Type.Str},C),o.opts.unevaluated&&b!==!0?t.assign((0,OBt._)`${b}[${Q}]`,!0):!X&&!o.allErrors&&t.if((0,OBt.not)(C),()=>t.break())})})}}};NWr.default=yHc});var w7i=H(DWr=>{"use strict";Object.defineProperty(DWr,"__esModule",{value:!0});var bHc=B_(),EHc={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,bHc.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};DWr.default=EHc});var T7i=H(kWr=>{"use strict";Object.defineProperty(kWr,"__esModule",{value:!0});var SHc=IH(),vHc={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SHc.validateUnion,error:{message:"must match a schema in anyOf"}};kWr.default=vHc});var R7i=H(xWr=>{"use strict";Object.defineProperty(xWr,"__esModule",{value:!0});var MBt=Hh(),BHc=B_(),wHc={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,MBt._)`{passingSchemas: ${e.passing}}`},THc={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:wHc,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let o=r,l=t.let("valid",!1),A=t.let("passing",null),f=t.name("_valid");e.setParams({passing:A}),t.block(I),e.result(l,()=>e.reset(),()=>e.error(!0));function I(){o.forEach((C,b)=>{let E;(0,BHc.alwaysValidSchema)(a,C)?t.var(f,!0):E=e.subschema({keyword:"oneOf",schemaProp:b,compositeRule:!0},f),b>0&&t.if((0,MBt._)`${f} && ${l}`).assign(l,!1).assign(A,(0,MBt._)`[${A}, ${b}]`).else(),t.if(f,()=>{t.assign(l,!0),t.assign(A,b),E&&e.mergeEvaluated(E,MBt.Name)})})}}};xWr.default=THc});var N7i=H(GWr=>{"use strict";Object.defineProperty(GWr,"__esModule",{value:!0});var RHc=B_(),NHc={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let a=t.name("valid");r.forEach((o,l)=>{if((0,RHc.alwaysValidSchema)(n,o))return;let A=e.subschema({keyword:"allOf",schemaProp:l},a);e.ok(a),e.mergeEvaluated(A)})}};GWr.default=NHc});var x7i=H(FWr=>{"use strict";Object.defineProperty(FWr,"__esModule",{value:!0});var HBt=Hh(),k7i=B_(),DHc={message:({params:e})=>(0,HBt.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,HBt._)`{failingKeyword: ${e.ifClause}}`},kHc={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:DHc,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,k7i.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=D7i(n,"then"),o=D7i(n,"else");if(!a&&!o)return;let l=t.let("valid",!0),A=t.name("_valid");if(f(),e.reset(),a&&o){let C=t.let("ifClause");e.setParams({ifClause:C}),t.if(A,I("then",C),I("else",C))}else a?t.if(A,I("then")):t.if((0,HBt.not)(A),I("else"));e.pass(l,()=>e.error(!0));function f(){let C=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},A);e.mergeEvaluated(C)}function I(C,b){return()=>{let E=e.subschema({keyword:C},A);t.assign(l,A),e.mergeValidEvaluated(E,l),b?t.assign(b,(0,HBt._)`${C}`):e.setParams({ifClause:C})}}}};function D7i(e,t){let r=e.schema[t];return r!==void 0&&!(0,k7i.alwaysValidSchema)(e,r)}FWr.default=kHc});var G7i=H(ZWr=>{"use strict";Object.defineProperty(ZWr,"__esModule",{value:!0});var xHc=B_(),GHc={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,xHc.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};ZWr.default=GHc});var F7i=H(LWr=>{"use strict";Object.defineProperty(LWr,"__esModule",{value:!0});var FHc=CWr(),ZHc=g7i(),LHc=_Wr(),VHc=d7i(),PHc=p7i(),WHc=h7i(),OHc=C7i(),MHc=wWr(),HHc=b7i(),YHc=B7i(),QHc=w7i(),XHc=T7i(),JHc=R7i(),UHc=N7i(),KHc=x7i(),jHc=G7i();function zHc(e=!1){let t=[QHc.default,XHc.default,JHc.default,UHc.default,KHc.default,jHc.default,OHc.default,MHc.default,WHc.default,HHc.default,YHc.default];return e?t.push(ZHc.default,VHc.default):t.push(FHc.default,LHc.default),t.push(PHc.default),t}LWr.default=zHc});var Z7i=H(VWr=>{"use strict";Object.defineProperty(VWr,"__esModule",{value:!0});var ow=Hh(),qHc={message:({schemaCode:e})=>(0,ow.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ow._)`{format: ${e}}`},$Hc={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:qHc,code(e,t){let{gen:r,data:n,$data:a,schema:o,schemaCode:l,it:A}=e,{opts:f,errSchemaPath:I,schemaEnv:C,self:b}=A;if(!f.validateFormats)return;a?E():N();function E(){let B=r.scopeValue("formats",{ref:b.formats,code:f.code.formats}),F=r.const("fDef",(0,ow._)`${B}[${l}]`),Q=r.let("fType"),X=r.let("format");r.if((0,ow._)`typeof ${F} == "object" && !(${F} instanceof RegExp)`,()=>r.assign(Q,(0,ow._)`${F}.type || "string"`).assign(X,(0,ow._)`${F}.validate`),()=>r.assign(Q,(0,ow._)`"string"`).assign(X,F)),e.fail$data((0,ow.or)(ae(),ne()));function ae(){return f.strictSchema===!1?ow.nil:(0,ow._)`${l} && !${X}`}function ne(){let ce=C.$async?(0,ow._)`(${F}.async ? await ${X}(${n}) : ${X}(${n}))`:(0,ow._)`${X}(${n})`,fe=(0,ow._)`(typeof ${X} == "function" ? ${ce} : ${X}.test(${n}))`;return(0,ow._)`${X} && ${X} !== true && ${Q} === ${t} && !${fe}`}}function N(){let B=b.formats[o];if(!B){ae();return}if(B===!0)return;let[F,Q,X]=ne(B);F===t&&e.pass(ce());function ae(){if(f.strictSchema===!1){b.logger.warn(fe());return}throw new Error(fe());function fe(){return`unknown format "${o}" ignored in schema at path "${I}"`}}function ne(fe){let ue=fe instanceof RegExp?(0,ow.regexpCode)(fe):f.code.formats?(0,ow._)`${f.code.formats}${(0,ow.getProperty)(o)}`:void 0,de=r.scopeValue("formats",{key:o,ref:fe,code:ue});return typeof fe=="object"&&!(fe instanceof RegExp)?[fe.type||"string",fe.validate,(0,ow._)`${de}.validate`]:["string",fe,de]}function ce(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!C.$async)throw new Error("async format in sync schema");return(0,ow._)`await ${X}(${n})`}return typeof Q=="function"?(0,ow._)`${X}(${n})`:(0,ow._)`${X}.test(${n})`}}}};VWr.default=$Hc});var L7i=H(PWr=>{"use strict";Object.defineProperty(PWr,"__esModule",{value:!0});var eYc=Z7i(),tYc=[eYc.default];PWr.default=tYc});var V7i=H(gke=>{"use strict";Object.defineProperty(gke,"__esModule",{value:!0});gke.contentVocabulary=gke.metadataVocabulary=void 0;gke.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];gke.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var W7i=H(WWr=>{"use strict";Object.defineProperty(WWr,"__esModule",{value:!0});var rYc=J6i(),nYc=a7i(),iYc=F7i(),sYc=L7i(),P7i=V7i(),oYc=[rYc.default,nYc.default,(0,iYc.default)(),sYc.default,P7i.metadataVocabulary,P7i.contentVocabulary];WWr.default=oYc});var M7i=H(YBt=>{"use strict";Object.defineProperty(YBt,"__esModule",{value:!0});YBt.DiscrError=void 0;var O7i;(function(e){e.Tag="tag",e.Mapping="mapping"})(O7i||(YBt.DiscrError=O7i={}))});var Y7i=H(MWr=>{"use strict";Object.defineProperty(MWr,"__esModule",{value:!0});var Ake=Hh(),OWr=M7i(),H7i=BBt(),aYc=m8e(),cYc=B_(),lYc={message:({params:{discrError:e,tagName:t}})=>e===OWr.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Ake._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},uYc={keyword:"discriminator",type:"object",schemaType:"object",error:lYc,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:o}=e,{oneOf:l}=a;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let A=n.propertyName;if(typeof A!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");let f=t.let("valid",!1),I=t.const("tag",(0,Ake._)`${r}${(0,Ake.getProperty)(A)}`);t.if((0,Ake._)`typeof ${I} == "string"`,()=>C(),()=>e.error(!1,{discrError:OWr.DiscrError.Tag,tag:I,tagName:A})),e.ok(f);function C(){let N=E();t.if(!1);for(let B in N)t.elseIf((0,Ake._)`${I} === ${B}`),t.assign(f,b(N[B]));t.else(),e.error(!1,{discrError:OWr.DiscrError.Mapping,tag:I,tagName:A}),t.endIf()}function b(N){let B=t.name("valid"),F=e.subschema({keyword:"oneOf",schemaProp:N},B);return e.mergeEvaluated(F,Ake.Name),B}function E(){var N;let B={},F=X(a),Q=!0;for(let ce=0;ce{gYc.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var YWr=H((J1,HWr)=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.MissingRefError=J1.ValidationError=J1.CodeGen=J1.Name=J1.nil=J1.stringify=J1.str=J1._=J1.KeywordCxt=J1.Ajv=void 0;var AYc=O6i(),dYc=W7i(),pYc=Y7i(),X7i=Q7i(),fYc=["/properties"],QBt="http://json-schema.org/draft-07/schema",dke=class extends AYc.default{_addVocabularies(){super._addVocabularies(),dYc.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(pYc.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(X7i,fYc):X7i;this.addMetaSchema(t,QBt,!1),this.refs["http://json-schema.org/schema"]=QBt}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(QBt)?QBt:void 0)}};J1.Ajv=dke;HWr.exports=J1=dke;HWr.exports.Ajv=dke;Object.defineProperty(J1,"__esModule",{value:!0});J1.default=dke;var IYc=h8e();Object.defineProperty(J1,"KeywordCxt",{enumerable:!0,get:function(){return IYc.KeywordCxt}});var pke=Hh();Object.defineProperty(J1,"_",{enumerable:!0,get:function(){return pke._}});Object.defineProperty(J1,"str",{enumerable:!0,get:function(){return pke.str}});Object.defineProperty(J1,"stringify",{enumerable:!0,get:function(){return pke.stringify}});Object.defineProperty(J1,"nil",{enumerable:!0,get:function(){return pke.nil}});Object.defineProperty(J1,"Name",{enumerable:!0,get:function(){return pke.Name}});Object.defineProperty(J1,"CodeGen",{enumerable:!0,get:function(){return pke.CodeGen}});var hYc=SBt();Object.defineProperty(J1,"ValidationError",{enumerable:!0,get:function(){return hYc.default}});var mYc=m8e();Object.defineProperty(J1,"MissingRefError",{enumerable:!0,get:function(){return mYc.default}})});var ezi=H(Hj=>{"use strict";Object.defineProperty(Hj,"__esModule",{value:!0});Hj.formatNames=Hj.fastFormats=Hj.fullFormats=void 0;function Mj(e,t){return{validate:e,compare:t}}Hj.fullFormats={date:Mj(j7i,UWr),time:Mj(XWr(!0),KWr),"date-time":Mj(J7i(!0),q7i),"iso-time":Mj(XWr(),z7i),"iso-date-time":Mj(J7i(),$7i),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:SYc,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:DYc,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:vYc,int32:{type:"number",validate:TYc},int64:{type:"number",validate:RYc},float:{type:"number",validate:K7i},double:{type:"number",validate:K7i},password:!0,binary:!0};Hj.fastFormats={...Hj.fullFormats,date:Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,UWr),time:Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KWr),"date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,q7i),"iso-time":Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,z7i),"iso-date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,$7i),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Hj.formatNames=Object.keys(Hj.fullFormats);function CYc(e){return e%4===0&&(e%100!==0||e%400===0)}var _Yc=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,yYc=[0,31,28,31,30,31,30,31,31,30,31,30,31];function j7i(e){let t=_Yc.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],a=+t[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&CYc(r)?29:yYc[n])}function UWr(e,t){if(e&&t)return e>t?1:e23||C>59||e&&!A)return!1;if(a<=23&&o<=59&&l<60)return!0;let b=o-C*f,E=a-I*f-(b<0?1:0);return(E===23||E===-1)&&(b===59||b===-1)&&l<61}}function KWr(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function z7i(e,t){if(!(e&&t))return;let r=QWr.exec(e),n=QWr.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=BYc}function RYc(e){return Number.isInteger(e)}function K7i(){return!0}var NYc=/[^\\]\\Z/;function DYc(e){if(NYc.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var tzi=H(fke=>{"use strict";Object.defineProperty(fke,"__esModule",{value:!0});fke.formatLimitDefinition=void 0;var kYc=YWr(),N4=Hh(),dle=N4.operators,XBt={formatMaximum:{okStr:"<=",ok:dle.LTE,fail:dle.GT},formatMinimum:{okStr:">=",ok:dle.GTE,fail:dle.LT},formatExclusiveMaximum:{okStr:"<",ok:dle.LT,fail:dle.GTE},formatExclusiveMinimum:{okStr:">",ok:dle.GT,fail:dle.LTE}},xYc={message:({keyword:e,schemaCode:t})=>(0,N4.str)`should be ${XBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,N4._)`{comparison: ${XBt[e].okStr}, limit: ${t}}`};fke.formatLimitDefinition={keyword:Object.keys(XBt),type:"string",schemaType:"string",$data:!0,error:xYc,code(e){let{gen:t,data:r,schemaCode:n,keyword:a,it:o}=e,{opts:l,self:A}=o;if(!l.validateFormats)return;let f=new kYc.KeywordCxt(o,A.RULES.all.format.definition,"format");f.$data?I():C();function I(){let E=t.scopeValue("formats",{ref:A.formats,code:l.code.formats}),N=t.const("fmt",(0,N4._)`${E}[${f.schemaCode}]`);e.fail$data((0,N4.or)((0,N4._)`typeof ${N} != "object"`,(0,N4._)`${N} instanceof RegExp`,(0,N4._)`typeof ${N}.compare != "function"`,b(N)))}function C(){let E=f.schema,N=A.formats[E];if(!N||N===!0)return;if(typeof N!="object"||N instanceof RegExp||typeof N.compare!="function")throw new Error(`"${a}": format "${E}" does not define "compare" function`);let B=t.scopeValue("formats",{key:E,ref:N,code:l.code.formats?(0,N4._)`${l.code.formats}${(0,N4.getProperty)(E)}`:void 0});e.fail$data(b(B))}function b(E){return(0,N4._)`${E}.compare(${r}, ${n}) ${XBt[a].fail} 0`}},dependencies:["format"]};var GYc=e=>(e.addKeyword(fke.formatLimitDefinition),e);fke.default=GYc});var szi=H((k8e,izi)=>{"use strict";Object.defineProperty(k8e,"__esModule",{value:!0});var Ike=ezi(),FYc=tzi(),jWr=Hh(),rzi=new jWr.Name("fullFormats"),ZYc=new jWr.Name("fastFormats"),zWr=(e,t={keywords:!0})=>{if(Array.isArray(t))return nzi(e,t,Ike.fullFormats,rzi),e;let[r,n]=t.mode==="fast"?[Ike.fastFormats,ZYc]:[Ike.fullFormats,rzi],a=t.formats||Ike.formatNames;return nzi(e,a,r,n),t.keywords&&(0,FYc.default)(e),e};zWr.get=(e,t="full")=>{let n=(t==="fast"?Ike.fastFormats:Ike.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function nzi(e,t,r,n){var a,o;(a=(o=e.opts.code).formats)!==null&&a!==void 0||(o.formats=(0,jWr._)`require("ajv-formats/dist/formats").${n}`);for(let l of t)e.addFormat(l,r[l])}izi.exports=k8e=zWr;Object.defineProperty(k8e,"__esModule",{value:!0});k8e.default=zWr});var Sy=H(JBt=>{"use strict";Object.defineProperty(JBt,"__esModule",{value:!0});JBt.isFunction=void 0;function LYc(e){return typeof e=="function"}JBt.isFunction=LYc});var ple=H(UBt=>{"use strict";Object.defineProperty(UBt,"__esModule",{value:!0});UBt.createErrorClass=void 0;function VYc(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}UBt.createErrorClass=VYc});var qWr=H(KBt=>{"use strict";Object.defineProperty(KBt,"__esModule",{value:!0});KBt.UnsubscriptionError=void 0;var PYc=ple();KBt.UnsubscriptionError=PYc.createErrorClass(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: `+r.map(function(n,a){return a+1+") "+n.toString()}).join(` - `):"",this.name="UnsubscriptionError",this.errors=r}})});var ste=H(jBt=>{"use strict";Object.defineProperty(jBt,"__esModule",{value:!0});jBt.arrRemove=void 0;function PYc(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}jBt.arrRemove=PYc});var TO=H(GV=>{"use strict";var ozi=GV&&GV.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},azi=GV&&GV.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},czi=GV&&GV.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(zBt,"__esModule",{value:!0});zBt.config=void 0;zBt.config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var tOr=H(Yj=>{"use strict";var gzi=Yj&&Yj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Azi=Yj&&Yj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(qBt,"__esModule",{value:!0});qBt.reportUnhandledError=void 0;var OYc=hke(),MYc=tOr();function HYc(e){MYc.timeoutProvider.setTimeout(function(){var t=OYc.config.onUnhandledError;if(t)t(e);else throw e})}qBt.reportUnhandledError=HYc});var rx=H($Bt=>{"use strict";Object.defineProperty($Bt,"__esModule",{value:!0});$Bt.noop=void 0;function YYc(){}$Bt.noop=YYc});var dzi=H(Qj=>{"use strict";Object.defineProperty(Qj,"__esModule",{value:!0});Qj.createNotification=Qj.nextNotification=Qj.errorNotification=Qj.COMPLETE_NOTIFICATION=void 0;Qj.COMPLETE_NOTIFICATION=function(){return ewt("C",void 0,void 0)}();function QYc(e){return ewt("E",void 0,e)}Qj.errorNotification=QYc;function XYc(e){return ewt("N",e,void 0)}Qj.nextNotification=XYc;function ewt(e,t,r){return{kind:e,value:t,error:r}}Qj.createNotification=ewt});var twt=H(mke=>{"use strict";Object.defineProperty(mke,"__esModule",{value:!0});mke.captureError=mke.errorContext=void 0;var pzi=hke(),u_e=null;function JYc(e){if(pzi.config.useDeprecatedSynchronousErrorHandling){var t=!u_e;if(t&&(u_e={errorThrown:!1,error:null}),e(),t){var r=u_e,n=r.errorThrown,a=r.error;if(u_e=null,n)throw a}}else e()}mke.errorContext=JYc;function UYc(e){pzi.config.useDeprecatedSynchronousErrorHandling&&u_e&&(u_e.errorThrown=!0,u_e.error=e)}mke.captureError=UYc});var Cke=H(D4=>{"use strict";var hzi=D4&&D4.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(D4,"__esModule",{value:!0});D4.EMPTY_OBSERVER=D4.SafeSubscriber=D4.Subscriber=void 0;var KYc=Sy(),fzi=TO(),oOr=hke(),jYc=rOr(),Izi=rx(),nOr=dzi(),zYc=tOr(),qYc=twt(),mzi=function(e){hzi(t,e);function t(r){var n=e.call(this)||this;return n.isStopped=!1,r?(n.destination=r,fzi.isSubscription(r)&&r.add(n)):n.destination=D4.EMPTY_OBSERVER,n}return t.create=function(r,n,a){return new Czi(r,n,a)},t.prototype.next=function(r){this.isStopped?sOr(nOr.nextNotification(r),this):this._next(r)},t.prototype.error=function(r){this.isStopped?sOr(nOr.errorNotification(r),this):(this.isStopped=!0,this._error(r))},t.prototype.complete=function(){this.isStopped?sOr(nOr.COMPLETE_NOTIFICATION,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(r){this.destination.next(r)},t.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fzi.Subscription);D4.Subscriber=mzi;var $Yc=Function.prototype.bind;function iOr(e,t){return $Yc.call(e,t)}var eQc=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var r=this.partialObserver;if(r.next)try{r.next(t)}catch(n){rwt(n)}},e.prototype.error=function(t){var r=this.partialObserver;if(r.error)try{r.error(t)}catch(n){rwt(n)}else rwt(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(r){rwt(r)}},e}(),Czi=function(e){hzi(t,e);function t(r,n,a){var o=e.call(this)||this,l;if(KYc.isFunction(r)||!r)l={next:r??void 0,error:n??void 0,complete:a??void 0};else{var A;o&&oOr.config.useDeprecatedNextContext?(A=Object.create(r),A.unsubscribe=function(){return o.unsubscribe()},l={next:r.next&&iOr(r.next,A),error:r.error&&iOr(r.error,A),complete:r.complete&&iOr(r.complete,A)}):l=r}return o.destination=new eQc(l),o}return t}(mzi);D4.SafeSubscriber=Czi;function rwt(e){oOr.config.useDeprecatedSynchronousErrorHandling?qYc.captureError(e):jYc.reportUnhandledError(e)}function tQc(e){throw e}function sOr(e,t){var r=oOr.config.onStoppedNotification;r&&zYc.timeoutProvider.setTimeout(function(){return r(e,t)})}D4.EMPTY_OBSERVER={closed:!0,next:Izi.noop,error:tQc,complete:Izi.noop}});var G8e=H(nwt=>{"use strict";Object.defineProperty(nwt,"__esModule",{value:!0});nwt.observable=void 0;nwt.observable=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}()});var nx=H(iwt=>{"use strict";Object.defineProperty(iwt,"__esModule",{value:!0});iwt.identity=void 0;function rQc(e){return e}iwt.identity=rQc});var F8e=H(_ke=>{"use strict";Object.defineProperty(_ke,"__esModule",{value:!0});_ke.pipeFromArray=_ke.pipe=void 0;var nQc=nx();function iQc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(swt,"__esModule",{value:!0});swt.Observable=void 0;var cOr=Cke(),sQc=TO(),oQc=G8e(),aQc=F8e(),cQc=hke(),aOr=Sy(),lQc=twt(),uQc=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(t,r,n){var a=this,o=AQc(t)?t:new cOr.SafeSubscriber(t,r,n);return lQc.errorContext(function(){var l=a,A=l.operator,f=l.source;o.add(A?A.call(o,f):f?a._subscribe(o):a._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(r){t.error(r)}},e.prototype.forEach=function(t,r){var n=this;return r=yzi(r),new r(function(a,o){var l=new cOr.SafeSubscriber({next:function(A){try{t(A)}catch(f){o(f),l.unsubscribe()}},error:o,complete:a});n.subscribe(l)})},e.prototype._subscribe=function(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)},e.prototype[oQc.observable]=function(){return this},e.prototype.pipe=function(){for(var t=[],r=0;r{"use strict";Object.defineProperty(yke,"__esModule",{value:!0});yke.operate=yke.hasLift=void 0;var dQc=Sy();function bzi(e){return dQc.isFunction(e?.lift)}yke.hasLift=bzi;function pQc(e){return function(t){if(bzi(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}yke.operate=pQc});var Cd=H(fle=>{"use strict";var fQc=fle&&fle.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(fle,"__esModule",{value:!0});fle.OperatorSubscriber=fle.createOperatorSubscriber=void 0;var IQc=Cke();function hQc(e,t,r,n,a){return new Ezi(e,t,r,n,a)}fle.createOperatorSubscriber=hQc;var Ezi=function(e){fQc(t,e);function t(r,n,a,o,l,A){var f=e.call(this,r)||this;return f.onFinalize=l,f.shouldUnsubscribe=A,f._next=n?function(I){try{n(I)}catch(C){r.error(C)}}:e.prototype._next,f._error=o?function(I){try{o(I)}catch(C){r.error(C)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=a?function(){try{a()}catch(I){r.error(I)}finally{this.unsubscribe()}}:e.prototype._complete,f}return t.prototype.unsubscribe=function(){var r;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((r=this.onFinalize)===null||r===void 0||r.call(this))}},t}(IQc.Subscriber);fle.OperatorSubscriber=Ezi});var awt=H(owt=>{"use strict";Object.defineProperty(owt,"__esModule",{value:!0});owt.refCount=void 0;var mQc=qg(),CQc=Cd();function _Qc(){return mQc.operate(function(e,t){var r=null;e._refCount++;var n=CQc.createOperatorSubscriber(t,void 0,void 0,void 0,function(){if(!e||e._refCount<=0||0<--e._refCount){r=null;return}var a=e._connection,o=r;r=null,a&&(!o||a===o)&&a.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}owt.refCount=_Qc});var Z8e=H(bke=>{"use strict";var yQc=bke&&bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(bke,"__esModule",{value:!0});bke.ConnectableObservable=void 0;var bQc=ub(),Szi=TO(),EQc=awt(),SQc=Cd(),vQc=qg(),BQc=function(e){yQc(t,e);function t(r,n){var a=e.call(this)||this;return a.source=r,a.subjectFactory=n,a._subject=null,a._refCount=0,a._connection=null,vQc.hasLift(r)&&(a.lift=r.lift),a}return t.prototype._subscribe=function(r){return this.getSubject().subscribe(r)},t.prototype.getSubject=function(){var r=this._subject;return(!r||r.isStopped)&&(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var r=this._connection;this._subject=this._connection=null,r?.unsubscribe()},t.prototype.connect=function(){var r=this,n=this._connection;if(!n){n=this._connection=new Szi.Subscription;var a=this.getSubject();n.add(this.source.subscribe(SQc.createOperatorSubscriber(a,void 0,function(){r._teardown(),a.complete()},function(o){r._teardown(),a.error(o)},function(){return r._teardown()}))),n.closed&&(this._connection=null,n=Szi.Subscription.EMPTY)}return n},t.prototype.refCount=function(){return EQc.refCount()(this)},t}(bQc.Observable);bke.ConnectableObservable=BQc});var vzi=H(L8e=>{"use strict";Object.defineProperty(L8e,"__esModule",{value:!0});L8e.performanceTimestampProvider=void 0;L8e.performanceTimestampProvider={now:function(){return(L8e.performanceTimestampProvider.delegate||performance).now()},delegate:void 0}});var lOr=H(k4=>{"use strict";var Bzi=k4&&k4.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},wzi=k4&&k4.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(cwt,"__esModule",{value:!0});cwt.animationFrames=void 0;var TQc=ub(),RQc=vzi(),Tzi=lOr();function NQc(e){return e?Rzi(e):DQc}cwt.animationFrames=NQc;function Rzi(e){return new TQc.Observable(function(t){var r=e||RQc.performanceTimestampProvider,n=r.now(),a=0,o=function(){t.closed||(a=Tzi.animationFrameProvider.requestAnimationFrame(function(l){a=0;var A=r.now();t.next({timestamp:e?A:l,elapsed:A-n}),o()}))};return o(),function(){a&&Tzi.animationFrameProvider.cancelAnimationFrame(a)}})}var DQc=Rzi()});var uOr=H(lwt=>{"use strict";Object.defineProperty(lwt,"__esModule",{value:!0});lwt.ObjectUnsubscribedError=void 0;var kQc=ple();lwt.ObjectUnsubscribedError=kQc.createErrorClass(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})});var ix=H(Xj=>{"use strict";var kzi=Xj&&Xj.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),xQc=Xj&&Xj.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Xj,"__esModule",{value:!0});Xj.AnonymousSubject=Xj.Subject=void 0;var Dzi=ub(),AOr=TO(),GQc=uOr(),FQc=ste(),gOr=twt(),xzi=function(e){kzi(t,e);function t(){var r=e.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return t.prototype.lift=function(r){var n=new dOr(this,this);return n.operator=r,n},t.prototype._throwIfClosed=function(){if(this.closed)throw new GQc.ObjectUnsubscribedError},t.prototype.next=function(r){var n=this;gOr.errorContext(function(){var a,o;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var l=xQc(n.currentObservers),A=l.next();!A.done;A=l.next()){var f=A.value;f.next(r)}}catch(I){a={error:I}}finally{try{A&&!A.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}}})},t.prototype.error=function(r){var n=this;gOr.errorContext(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var a=n.observers;a.length;)a.shift().error(r)}})},t.prototype.complete=function(){var r=this;gOr.errorContext(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,a=this,o=a.hasError,l=a.isStopped,A=a.observers;return o||l?AOr.EMPTY_SUBSCRIPTION:(this.currentObservers=null,A.push(r),new AOr.Subscription(function(){n.currentObservers=null,FQc.arrRemove(A,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n.thrownError,l=n.isStopped;a?r.error(o):l&&r.complete()},t.prototype.asObservable=function(){var r=new Dzi.Observable;return r.source=this,r},t.create=function(r,n){return new dOr(r,n)},t}(Dzi.Observable);Xj.Subject=xzi;var dOr=function(e){kzi(t,e);function t(r,n){var a=e.call(this)||this;return a.destination=r,a.source=n,a}return t.prototype.next=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.next)===null||a===void 0||a.call(n,r)},t.prototype.error=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.error)===null||a===void 0||a.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,a;return(a=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&a!==void 0?a:AOr.EMPTY_SUBSCRIPTION},t}(xzi);Xj.AnonymousSubject=dOr});var pOr=H(Eke=>{"use strict";var ZQc=Eke&&Eke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Eke,"__esModule",{value:!0});Eke.BehaviorSubject=void 0;var LQc=ix(),VQc=function(e){ZQc(t,e);function t(r){var n=e.call(this)||this;return n._value=r,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var n=e.prototype._subscribe.call(this,r);return!n.closed&&r.next(this._value),n},t.prototype.getValue=function(){var r=this,n=r.hasError,a=r.thrownError,o=r._value;if(n)throw a;return this._throwIfClosed(),o},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(LQc.Subject);Eke.BehaviorSubject=VQc});var uwt=H(V8e=>{"use strict";Object.defineProperty(V8e,"__esModule",{value:!0});V8e.dateTimestampProvider=void 0;V8e.dateTimestampProvider={now:function(){return(V8e.dateTimestampProvider.delegate||Date).now()},delegate:void 0}});var gwt=H(Ske=>{"use strict";var PQc=Ske&&Ske.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ske,"__esModule",{value:!0});Ske.ReplaySubject=void 0;var WQc=ix(),OQc=uwt(),MQc=function(e){PQc(t,e);function t(r,n,a){r===void 0&&(r=1/0),n===void 0&&(n=1/0),a===void 0&&(a=OQc.dateTimestampProvider);var o=e.call(this)||this;return o._bufferSize=r,o._windowTime=n,o._timestampProvider=a,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,r),o._windowTime=Math.max(1,n),o}return t.prototype.next=function(r){var n=this,a=n.isStopped,o=n._buffer,l=n._infiniteTimeWindow,A=n._timestampProvider,f=n._windowTime;a||(o.push(r),!l&&o.push(A.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),a=this,o=a._infiniteTimeWindow,l=a._buffer,A=l.slice(),f=0;f{"use strict";var HQc=vke&&vke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(vke,"__esModule",{value:!0});vke.AsyncSubject=void 0;var YQc=ix(),QQc=function(e){HQc(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._value=null,r._hasValue=!1,r._isComplete=!1,r}return t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n._hasValue,l=n._value,A=n.thrownError,f=n.isStopped,I=n._isComplete;a?r.error(A):(f||I)&&(o&&r.next(l),r.complete())},t.prototype.next=function(r){this.isStopped||(this._value=r,this._hasValue=!0)},t.prototype.complete=function(){var r=this,n=r._hasValue,a=r._value,o=r._isComplete;o||(this._isComplete=!0,n&&e.prototype.next.call(this,a),e.prototype.complete.call(this))},t}(YQc.Subject);vke.AsyncSubject=QQc});var Gzi=H(Bke=>{"use strict";var XQc=Bke&&Bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Bke,"__esModule",{value:!0});Bke.Action=void 0;var JQc=TO(),UQc=function(e){XQc(t,e);function t(r,n){return e.call(this)||this}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),this},t}(JQc.Subscription);Bke.Action=UQc});var Lzi=H(Jj=>{"use strict";var Fzi=Jj&&Jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Zzi=Jj&&Jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var KQc=wke&&wke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(wke,"__esModule",{value:!0});wke.AsyncAction=void 0;var jQc=Gzi(),Vzi=Lzi(),zQc=ste(),qQc=function(e){KQc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a.pending=!1,a}return t.prototype.schedule=function(r,n){var a;if(n===void 0&&(n=0),this.closed)return this;this.state=r;var o=this.id,l=this.scheduler;return o!=null&&(this.id=this.recycleAsyncId(l,o,n)),this.pending=!0,this.delay=n,this.id=(a=this.id)!==null&&a!==void 0?a:this.requestAsyncId(l,this.id,n),this},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),Vzi.intervalProvider.setInterval(r.flush.bind(r,this),a)},t.prototype.recycleAsyncId=function(r,n,a){if(a===void 0&&(a=0),a!=null&&this.delay===a&&this.pending===!1)return n;n!=null&&Vzi.intervalProvider.clearInterval(n)},t.prototype.execute=function(r,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var a=this._execute(r,n);if(a)return a;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(r,n){var a=!1,o;try{this.work(r)}catch(l){a=!0,o=l||new Error("Scheduled action threw falsy error")}if(a)return this.unsubscribe(),o},t.prototype.unsubscribe=function(){if(!this.closed){var r=this,n=r.id,a=r.scheduler,o=a.actions;this.work=this.state=this.scheduler=null,this.pending=!1,zQc.arrRemove(o,this),n!=null&&(this.id=this.recycleAsyncId(a,n,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(jQc.Action);wke.AsyncAction=qQc});var Wzi=H(Rke=>{"use strict";Object.defineProperty(Rke,"__esModule",{value:!0});Rke.TestTools=Rke.Immediate=void 0;var $Qc=1,fOr,dwt={};function Pzi(e){return e in dwt?(delete dwt[e],!0):!1}Rke.Immediate={setImmediate:function(e){var t=$Qc++;return dwt[t]=!0,fOr||(fOr=Promise.resolve()),fOr.then(function(){return Pzi(t)&&e()}),t},clearImmediate:function(e){Pzi(e)}};Rke.TestTools={pending:function(){return Object.keys(dwt).length}}});var Mzi=H(Uj=>{"use strict";var eXc=Uj&&Uj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},tXc=Uj&&Uj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var iXc=Nke&&Nke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Nke,"__esModule",{value:!0});Nke.AsapAction=void 0;var sXc=Tke(),Hzi=Mzi(),oXc=function(e){iXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=Hzi.immediateProvider.setImmediate(r.flush.bind(r,void 0))))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(Hzi.immediateProvider.clearImmediate(n),r._scheduled===n&&(r._scheduled=void 0))},t}(sXc.AsyncAction);Nke.AsapAction=oXc});var IOr=H(pwt=>{"use strict";Object.defineProperty(pwt,"__esModule",{value:!0});pwt.Scheduler=void 0;var aXc=uwt(),cXc=function(){function e(t,r){r===void 0&&(r=e.now),this.schedulerActionCtor=t,this.now=r}return e.prototype.schedule=function(t,r,n){return r===void 0&&(r=0),new this.schedulerActionCtor(this,t).schedule(n,r)},e.now=aXc.dateTimestampProvider.now,e}();pwt.Scheduler=cXc});var kke=H(Dke=>{"use strict";var lXc=Dke&&Dke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Dke,"__esModule",{value:!0});Dke.AsyncScheduler=void 0;var Qzi=IOr(),uXc=function(e){lXc(t,e);function t(r,n){n===void 0&&(n=Qzi.Scheduler.now);var a=e.call(this,r,n)||this;return a.actions=[],a._active=!1,a}return t.prototype.flush=function(r){var n=this.actions;if(this._active){n.push(r);return}var a;this._active=!0;do if(a=r.execute(r.state,r.delay))break;while(r=n.shift());if(this._active=!1,a){for(;r=n.shift();)r.unsubscribe();throw a}},t}(Qzi.Scheduler);Dke.AsyncScheduler=uXc});var Xzi=H(xke=>{"use strict";var gXc=xke&&xke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(xke,"__esModule",{value:!0});xke.AsapScheduler=void 0;var AXc=kke(),dXc=function(e){gXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(AXc.AsyncScheduler);xke.AsapScheduler=dXc});var Jzi=H(g_e=>{"use strict";Object.defineProperty(g_e,"__esModule",{value:!0});g_e.asap=g_e.asapScheduler=void 0;var pXc=Yzi(),fXc=Xzi();g_e.asapScheduler=new fXc.AsapScheduler(pXc.AsapAction);g_e.asap=g_e.asapScheduler});var FV=H(A_e=>{"use strict";Object.defineProperty(A_e,"__esModule",{value:!0});A_e.async=A_e.asyncScheduler=void 0;var IXc=Tke(),hXc=kke();A_e.asyncScheduler=new hXc.AsyncScheduler(IXc.AsyncAction);A_e.async=A_e.asyncScheduler});var Uzi=H(Gke=>{"use strict";var mXc=Gke&&Gke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Gke,"__esModule",{value:!0});Gke.QueueAction=void 0;var CXc=Tke(),_Xc=function(e){mXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),n>0?e.prototype.schedule.call(this,r,n):(this.delay=n,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,n){return n>0||this.closed?e.prototype.execute.call(this,r,n):this._execute(r,n)},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!=null&&a>0||a==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.flush(this),0)},t}(CXc.AsyncAction);Gke.QueueAction=_Xc});var Kzi=H(Fke=>{"use strict";var yXc=Fke&&Fke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Fke,"__esModule",{value:!0});Fke.QueueScheduler=void 0;var bXc=kke(),EXc=function(e){yXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(bXc.AsyncScheduler);Fke.QueueScheduler=EXc});var jzi=H(d_e=>{"use strict";Object.defineProperty(d_e,"__esModule",{value:!0});d_e.queue=d_e.queueScheduler=void 0;var SXc=Uzi(),vXc=Kzi();d_e.queueScheduler=new vXc.QueueScheduler(SXc.QueueAction);d_e.queue=d_e.queueScheduler});var qzi=H(Zke=>{"use strict";var BXc=Zke&&Zke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Zke,"__esModule",{value:!0});Zke.AnimationFrameAction=void 0;var wXc=Tke(),zzi=lOr(),TXc=function(e){BXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=zzi.animationFrameProvider.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(zzi.animationFrameProvider.cancelAnimationFrame(n),r._scheduled=void 0)},t}(wXc.AsyncAction);Zke.AnimationFrameAction=TXc});var $zi=H(Lke=>{"use strict";var RXc=Lke&&Lke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Lke,"__esModule",{value:!0});Lke.AnimationFrameScheduler=void 0;var NXc=kke(),DXc=function(e){RXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(NXc.AsyncScheduler);Lke.AnimationFrameScheduler=DXc});var eqi=H(p_e=>{"use strict";Object.defineProperty(p_e,"__esModule",{value:!0});p_e.animationFrame=p_e.animationFrameScheduler=void 0;var kXc=qzi(),xXc=$zi();p_e.animationFrameScheduler=new xXc.AnimationFrameScheduler(kXc.AnimationFrameAction);p_e.animationFrame=p_e.animationFrameScheduler});var nqi=H(Ile=>{"use strict";var tqi=Ile&&Ile.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ile,"__esModule",{value:!0});Ile.VirtualAction=Ile.VirtualTimeScheduler=void 0;var GXc=Tke(),FXc=TO(),ZXc=kke(),LXc=function(e){tqi(t,e);function t(r,n){r===void 0&&(r=rqi),n===void 0&&(n=1/0);var a=e.call(this,r,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return t.prototype.flush=function(){for(var r=this,n=r.actions,a=r.maxFrames,o,l;(l=n[0])&&l.delay<=a&&(n.shift(),this.frame=l.delay,!(o=l.execute(l.state,l.delay))););if(o){for(;l=n.shift();)l.unsubscribe();throw o}},t.frameTimeFactor=10,t}(ZXc.AsyncScheduler);Ile.VirtualTimeScheduler=LXc;var rqi=function(e){tqi(t,e);function t(r,n,a){a===void 0&&(a=r.index+=1);var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o.index=a,o.active=!0,o.index=r.index=a,o}return t.prototype.schedule=function(r,n){if(n===void 0&&(n=0),Number.isFinite(n)){if(!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var a=new t(this.scheduler,this.work);return this.add(a),a.schedule(r,n)}else return FXc.Subscription.EMPTY},t.prototype.requestAsyncId=function(r,n,a){a===void 0&&(a=0),this.delay=r.frame+a;var o=r.actions;return o.push(this),o.sort(t.sortActions),1},t.prototype.recycleAsyncId=function(r,n,a){a===void 0&&(a=0)},t.prototype._execute=function(r,n){if(this.active===!0)return e.prototype._execute.call(this,r,n)},t.sortActions=function(r,n){return r.delay===n.delay?r.index===n.index?0:r.index>n.index?1:-1:r.delay>n.delay?1:-1},t}(GXc.AsyncAction);Ile.VirtualAction=rqi});var x4=H(f_e=>{"use strict";Object.defineProperty(f_e,"__esModule",{value:!0});f_e.empty=f_e.EMPTY=void 0;var iqi=ub();f_e.EMPTY=new iqi.Observable(function(e){return e.complete()});function VXc(e){return e?PXc(e):f_e.EMPTY}f_e.empty=VXc;function PXc(e){return new iqi.Observable(function(t){return e.schedule(function(){return t.complete()})})}});var P8e=H(fwt=>{"use strict";Object.defineProperty(fwt,"__esModule",{value:!0});fwt.isScheduler=void 0;var WXc=Sy();function OXc(e){return e&&WXc.isFunction(e.schedule)}fwt.isScheduler=OXc});var ZV=H(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});hle.popNumber=hle.popScheduler=hle.popResultSelector=void 0;var MXc=Sy(),HXc=P8e();function hOr(e){return e[e.length-1]}function YXc(e){return MXc.isFunction(hOr(e))?e.pop():void 0}hle.popResultSelector=YXc;function QXc(e){return HXc.isScheduler(hOr(e))?e.pop():void 0}hle.popScheduler=QXc;function XXc(e,t){return typeof hOr(e)=="number"?e.pop():t}hle.popNumber=XXc});var hwt=H(Iwt=>{"use strict";Object.defineProperty(Iwt,"__esModule",{value:!0});Iwt.isArrayLike=void 0;Iwt.isArrayLike=function(e){return e&&typeof e.length=="number"&&typeof e!="function"}});var mOr=H(mwt=>{"use strict";Object.defineProperty(mwt,"__esModule",{value:!0});mwt.isPromise=void 0;var JXc=Sy();function UXc(e){return JXc.isFunction(e?.then)}mwt.isPromise=UXc});var COr=H(Cwt=>{"use strict";Object.defineProperty(Cwt,"__esModule",{value:!0});Cwt.isInteropObservable=void 0;var KXc=G8e(),jXc=Sy();function zXc(e){return jXc.isFunction(e[KXc.observable])}Cwt.isInteropObservable=zXc});var _Or=H(_wt=>{"use strict";Object.defineProperty(_wt,"__esModule",{value:!0});_wt.isAsyncIterable=void 0;var qXc=Sy();function $Xc(e){return Symbol.asyncIterator&&qXc.isFunction(e?.[Symbol.asyncIterator])}_wt.isAsyncIterable=$Xc});var yOr=H(ywt=>{"use strict";Object.defineProperty(ywt,"__esModule",{value:!0});ywt.createInvalidObservableTypeError=void 0;function e4c(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}ywt.createInvalidObservableTypeError=e4c});var bOr=H(Vke=>{"use strict";Object.defineProperty(Vke,"__esModule",{value:!0});Vke.iterator=Vke.getSymbolIterator=void 0;function sqi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}Vke.getSymbolIterator=sqi;Vke.iterator=sqi()});var EOr=H(bwt=>{"use strict";Object.defineProperty(bwt,"__esModule",{value:!0});bwt.isIterable=void 0;var t4c=bOr(),r4c=Sy();function n4c(e){return r4c.isFunction(e?.[t4c.iterator])}bwt.isIterable=n4c});var Ewt=H(CH=>{"use strict";var i4c=CH&&CH.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]1||A(E,N)})})}function A(E,N){try{f(n[E](N))}catch(B){b(o[0][3],B)}}function f(E){E.value instanceof Pke?Promise.resolve(E.value.v).then(I,C):b(o[0][2],E)}function I(E){A("next",E)}function C(E){A("throw",E)}function b(E,N){E(N),o.shift(),o.length&&A(o[0][0],o[0][1])}};Object.defineProperty(CH,"__esModule",{value:!0});CH.isReadableStreamLike=CH.readableStreamLikeToAsyncGenerator=void 0;var o4c=Sy();function a4c(e){return s4c(this,arguments,function(){var r,n,a,o;return i4c(this,function(l){switch(l.label){case 0:r=e.getReader(),l.label=1;case 1:l.trys.push([1,,9,10]),l.label=2;case 2:return[4,Pke(r.read())];case 3:return n=l.sent(),a=n.value,o=n.done,o?[4,Pke(void 0)]:[3,5];case 4:return[2,l.sent()];case 5:return[4,Pke(a)];case 6:return[4,l.sent()];case 7:return l.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}CH.readableStreamLikeToAsyncGenerator=a4c;function c4c(e){return o4c.isFunction(e?.getReader)}CH.isReadableStreamLike=c4c});var uh=H(G2=>{"use strict";var l4c=G2&&G2.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})},u4c=G2&&G2.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(G2,"__esModule",{value:!0});G2.fromReadableStreamLike=G2.fromAsyncIterable=G2.fromIterable=G2.fromPromise=G2.fromArrayLike=G2.fromInteropObservable=G2.innerFrom=void 0;var A4c=hwt(),d4c=mOr(),Wke=ub(),p4c=COr(),f4c=_Or(),I4c=yOr(),h4c=EOr(),oqi=Ewt(),m4c=Sy(),C4c=rOr(),_4c=G8e();function y4c(e){if(e instanceof Wke.Observable)return e;if(e!=null){if(p4c.isInteropObservable(e))return aqi(e);if(A4c.isArrayLike(e))return cqi(e);if(d4c.isPromise(e))return lqi(e);if(f4c.isAsyncIterable(e))return vOr(e);if(h4c.isIterable(e))return uqi(e);if(oqi.isReadableStreamLike(e))return gqi(e)}throw I4c.createInvalidObservableTypeError(e)}G2.innerFrom=y4c;function aqi(e){return new Wke.Observable(function(t){var r=e[_4c.observable]();if(m4c.isFunction(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}G2.fromInteropObservable=aqi;function cqi(e){return new Wke.Observable(function(t){for(var r=0;r{"use strict";Object.defineProperty(Swt,"__esModule",{value:!0});Swt.executeSchedule=void 0;function E4c(e,t,r,n,a){n===void 0&&(n=0),a===void 0&&(a=!1);var o=t.schedule(function(){r(),a?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(o),!a)return o}Swt.executeSchedule=E4c});var Oke=H(vwt=>{"use strict";Object.defineProperty(vwt,"__esModule",{value:!0});vwt.observeOn=void 0;var BOr=ote(),S4c=qg(),v4c=Cd();function B4c(e,t){return t===void 0&&(t=0),S4c.operate(function(r,n){r.subscribe(v4c.createOperatorSubscriber(n,function(a){return BOr.executeSchedule(n,e,function(){return n.next(a)},t)},function(){return BOr.executeSchedule(n,e,function(){return n.complete()},t)},function(a){return BOr.executeSchedule(n,e,function(){return n.error(a)},t)}))})}vwt.observeOn=B4c});var Mke=H(Bwt=>{"use strict";Object.defineProperty(Bwt,"__esModule",{value:!0});Bwt.subscribeOn=void 0;var w4c=qg();function T4c(e,t){return t===void 0&&(t=0),w4c.operate(function(r,n){n.add(e.schedule(function(){return r.subscribe(n)},t))})}Bwt.subscribeOn=T4c});var Aqi=H(wwt=>{"use strict";Object.defineProperty(wwt,"__esModule",{value:!0});wwt.scheduleObservable=void 0;var R4c=uh(),N4c=Oke(),D4c=Mke();function k4c(e,t){return R4c.innerFrom(e).pipe(D4c.subscribeOn(t),N4c.observeOn(t))}wwt.scheduleObservable=k4c});var dqi=H(Twt=>{"use strict";Object.defineProperty(Twt,"__esModule",{value:!0});Twt.schedulePromise=void 0;var x4c=uh(),G4c=Oke(),F4c=Mke();function Z4c(e,t){return x4c.innerFrom(e).pipe(F4c.subscribeOn(t),G4c.observeOn(t))}Twt.schedulePromise=Z4c});var pqi=H(Rwt=>{"use strict";Object.defineProperty(Rwt,"__esModule",{value:!0});Rwt.scheduleArray=void 0;var L4c=ub();function V4c(e,t){return new L4c.Observable(function(r){var n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}Rwt.scheduleArray=V4c});var wOr=H(Nwt=>{"use strict";Object.defineProperty(Nwt,"__esModule",{value:!0});Nwt.scheduleIterable=void 0;var P4c=ub(),W4c=bOr(),O4c=Sy(),fqi=ote();function M4c(e,t){return new P4c.Observable(function(r){var n;return fqi.executeSchedule(r,t,function(){n=e[W4c.iterator](),fqi.executeSchedule(r,t,function(){var a,o,l;try{a=n.next(),o=a.value,l=a.done}catch(A){r.error(A);return}l?r.complete():r.next(o)},0,!0)}),function(){return O4c.isFunction(n?.return)&&n.return()}})}Nwt.scheduleIterable=M4c});var TOr=H(Dwt=>{"use strict";Object.defineProperty(Dwt,"__esModule",{value:!0});Dwt.scheduleAsyncIterable=void 0;var H4c=ub(),Iqi=ote();function Y4c(e,t){if(!e)throw new Error("Iterable cannot be null");return new H4c.Observable(function(r){Iqi.executeSchedule(r,t,function(){var n=e[Symbol.asyncIterator]();Iqi.executeSchedule(r,t,function(){n.next().then(function(a){a.done?r.complete():r.next(a.value)})},0,!0)})})}Dwt.scheduleAsyncIterable=Y4c});var hqi=H(kwt=>{"use strict";Object.defineProperty(kwt,"__esModule",{value:!0});kwt.scheduleReadableStreamLike=void 0;var Q4c=TOr(),X4c=Ewt();function J4c(e,t){return Q4c.scheduleAsyncIterable(X4c.readableStreamLikeToAsyncGenerator(e),t)}kwt.scheduleReadableStreamLike=J4c});var ROr=H(xwt=>{"use strict";Object.defineProperty(xwt,"__esModule",{value:!0});xwt.scheduled=void 0;var U4c=Aqi(),K4c=dqi(),j4c=pqi(),z4c=wOr(),q4c=TOr(),$4c=COr(),eJc=mOr(),tJc=hwt(),rJc=EOr(),nJc=_Or(),iJc=yOr(),sJc=Ewt(),oJc=hqi();function aJc(e,t){if(e!=null){if($4c.isInteropObservable(e))return U4c.scheduleObservable(e,t);if(tJc.isArrayLike(e))return j4c.scheduleArray(e,t);if(eJc.isPromise(e))return K4c.schedulePromise(e,t);if(nJc.isAsyncIterable(e))return q4c.scheduleAsyncIterable(e,t);if(rJc.isIterable(e))return z4c.scheduleIterable(e,t);if(sJc.isReadableStreamLike(e))return oJc.scheduleReadableStreamLike(e,t)}throw iJc.createInvalidObservableTypeError(e)}xwt.scheduled=aJc});var ate=H(Gwt=>{"use strict";Object.defineProperty(Gwt,"__esModule",{value:!0});Gwt.from=void 0;var cJc=ROr(),lJc=uh();function uJc(e,t){return t?cJc.scheduled(e,t):lJc.innerFrom(e)}Gwt.from=uJc});var Zwt=H(Fwt=>{"use strict";Object.defineProperty(Fwt,"__esModule",{value:!0});Fwt.of=void 0;var gJc=ZV(),AJc=ate();function dJc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(Lwt,"__esModule",{value:!0});Lwt.throwError=void 0;var pJc=ub(),fJc=Sy();function IJc(e,t){var r=fJc.isFunction(e)?e:function(){return e},n=function(a){return a.error(r())};return new pJc.Observable(t?function(a){return t.schedule(n,0,a)}:n)}Lwt.throwError=IJc});var Vwt=H(cte=>{"use strict";Object.defineProperty(cte,"__esModule",{value:!0});cte.observeNotification=cte.Notification=cte.NotificationKind=void 0;var hJc=x4(),mJc=Zwt(),CJc=NOr(),_Jc=Sy(),yJc;(function(e){e.NEXT="N",e.ERROR="E",e.COMPLETE="C"})(yJc=cte.NotificationKind||(cte.NotificationKind={}));var bJc=function(){function e(t,r,n){this.kind=t,this.value=r,this.error=n,this.hasValue=t==="N"}return e.prototype.observe=function(t){return mqi(this,t)},e.prototype.do=function(t,r,n){var a=this,o=a.kind,l=a.value,A=a.error;return o==="N"?t?.(l):o==="E"?r?.(A):n?.()},e.prototype.accept=function(t,r,n){var a;return _Jc.isFunction((a=t)===null||a===void 0?void 0:a.next)?this.observe(t):this.do(t,r,n)},e.prototype.toObservable=function(){var t=this,r=t.kind,n=t.value,a=t.error,o=r==="N"?mJc.of(n):r==="E"?CJc.throwError(function(){return a}):r==="C"?hJc.EMPTY:0;if(!o)throw new TypeError("Unexpected notification kind "+r);return o},e.createNext=function(t){return new e("N",t)},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e}();cte.Notification=bJc;function mqi(e,t){var r,n,a,o=e,l=o.kind,A=o.value,f=o.error;if(typeof l!="string")throw new TypeError('Invalid notification, missing "kind"');l==="N"?(r=t.next)===null||r===void 0||r.call(t,A):l==="E"?(n=t.error)===null||n===void 0||n.call(t,f):(a=t.complete)===null||a===void 0||a.call(t)}cte.observeNotification=mqi});var _qi=H(Pwt=>{"use strict";Object.defineProperty(Pwt,"__esModule",{value:!0});Pwt.isObservable=void 0;var EJc=ub(),Cqi=Sy();function SJc(e){return!!e&&(e instanceof EJc.Observable||Cqi.isFunction(e.lift)&&Cqi.isFunction(e.subscribe))}Pwt.isObservable=SJc});var mle=H(Wwt=>{"use strict";Object.defineProperty(Wwt,"__esModule",{value:!0});Wwt.EmptyError=void 0;var vJc=ple();Wwt.EmptyError=vJc.createErrorClass(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})});var yqi=H(Owt=>{"use strict";Object.defineProperty(Owt,"__esModule",{value:!0});Owt.lastValueFrom=void 0;var BJc=mle();function wJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=!1,l;e.subscribe({next:function(A){l=A,o=!0},error:a,complete:function(){o?n(l):r?n(t.defaultValue):a(new BJc.EmptyError)}})})}Owt.lastValueFrom=wJc});var bqi=H(Mwt=>{"use strict";Object.defineProperty(Mwt,"__esModule",{value:!0});Mwt.firstValueFrom=void 0;var TJc=mle(),RJc=Cke();function NJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=new RJc.SafeSubscriber({next:function(l){n(l),o.unsubscribe()},error:a,complete:function(){r?n(t.defaultValue):a(new TJc.EmptyError)}});e.subscribe(o)})}Mwt.firstValueFrom=NJc});var DOr=H(Hwt=>{"use strict";Object.defineProperty(Hwt,"__esModule",{value:!0});Hwt.ArgumentOutOfRangeError=void 0;var DJc=ple();Hwt.ArgumentOutOfRangeError=DJc.createErrorClass(function(e){return function(){e(this),this.name="ArgumentOutOfRangeError",this.message="argument out of range"}})});var kOr=H(Ywt=>{"use strict";Object.defineProperty(Ywt,"__esModule",{value:!0});Ywt.NotFoundError=void 0;var kJc=ple();Ywt.NotFoundError=kJc.createErrorClass(function(e){return function(r){e(this),this.name="NotFoundError",this.message=r}})});var xOr=H(Qwt=>{"use strict";Object.defineProperty(Qwt,"__esModule",{value:!0});Qwt.SequenceError=void 0;var xJc=ple();Qwt.SequenceError=xJc.createErrorClass(function(e){return function(r){e(this),this.name="SequenceError",this.message=r}})});var Jwt=H(Xwt=>{"use strict";Object.defineProperty(Xwt,"__esModule",{value:!0});Xwt.isValidDate=void 0;function GJc(e){return e instanceof Date&&!isNaN(e)}Xwt.isValidDate=GJc});var W8e=H(I_e=>{"use strict";Object.defineProperty(I_e,"__esModule",{value:!0});I_e.timeout=I_e.TimeoutError=void 0;var FJc=FV(),ZJc=Jwt(),LJc=qg(),VJc=uh(),PJc=ple(),WJc=Cd(),OJc=ote();I_e.TimeoutError=PJc.createErrorClass(function(e){return function(r){r===void 0&&(r=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=r}});function MJc(e,t){var r=ZJc.isValidDate(e)?{first:e}:typeof e=="number"?{each:e}:e,n=r.first,a=r.each,o=r.with,l=o===void 0?HJc:o,A=r.scheduler,f=A===void 0?t??FJc.asyncScheduler:A,I=r.meta,C=I===void 0?null:I;if(n==null&&a==null)throw new TypeError("No timeout provided.");return LJc.operate(function(b,E){var N,B,F=null,Q=0,X=function(ae){B=OJc.executeSchedule(E,f,function(){try{N.unsubscribe(),VJc.innerFrom(l({meta:C,lastValue:F,seen:Q})).subscribe(E)}catch(ne){E.error(ne)}},ae)};N=b.subscribe(WJc.createOperatorSubscriber(E,function(ae){B?.unsubscribe(),Q++,E.next(F=ae),a>0&&X(a)},void 0,void 0,function(){B?.closed||B?.unsubscribe(),F=null})),!Q&&X(n!=null?typeof n=="number"?n:+n-f.now():a)})}I_e.timeout=MJc;function HJc(e){throw new I_e.TimeoutError(e)}});var lte=H(Uwt=>{"use strict";Object.defineProperty(Uwt,"__esModule",{value:!0});Uwt.map=void 0;var YJc=qg(),QJc=Cd();function XJc(e,t){return YJc.operate(function(r,n){var a=0;r.subscribe(QJc.createOperatorSubscriber(n,function(o){n.next(e.call(t,o,a++))}))})}Uwt.map=XJc});var _le=H(Cle=>{"use strict";var JJc=Cle&&Cle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},UJc=Cle&&Cle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var $Jc=yle&&yle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Eqi=yle&&yle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(Kwt,"__esModule",{value:!0});Kwt.bindCallback=void 0;var oUc=FOr();function aUc(e,t,r){return oUc.bindCallbackInternals(!1,e,t,r)}Kwt.bindCallback=aUc});var vqi=H(jwt=>{"use strict";Object.defineProperty(jwt,"__esModule",{value:!0});jwt.bindNodeCallback=void 0;var cUc=FOr();function lUc(e,t,r){return cUc.bindCallbackInternals(!0,e,t,r)}jwt.bindNodeCallback=lUc});var ZOr=H(zwt=>{"use strict";Object.defineProperty(zwt,"__esModule",{value:!0});zwt.argsArgArrayOrObject=void 0;var uUc=Array.isArray,gUc=Object.getPrototypeOf,AUc=Object.prototype,dUc=Object.keys;function pUc(e){if(e.length===1){var t=e[0];if(uUc(t))return{args:t,keys:null};if(fUc(t)){var r=dUc(t);return{args:r.map(function(n){return t[n]}),keys:r}}}return{args:e,keys:null}}zwt.argsArgArrayOrObject=pUc;function fUc(e){return e&&typeof e=="object"&&gUc(e)===AUc}});var LOr=H(qwt=>{"use strict";Object.defineProperty(qwt,"__esModule",{value:!0});qwt.createObject=void 0;function IUc(e,t){return e.reduce(function(r,n,a){return r[n]=t[a],r},{})}qwt.createObject=IUc});var $wt=H(Hke=>{"use strict";Object.defineProperty(Hke,"__esModule",{value:!0});Hke.combineLatestInit=Hke.combineLatest=void 0;var hUc=ub(),mUc=ZOr(),Tqi=ate(),Rqi=nx(),CUc=_le(),Bqi=ZV(),_Uc=LOr(),yUc=Cd(),bUc=ote();function EUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(eTt,"__esModule",{value:!0});eTt.mergeInternals=void 0;var SUc=uh(),vUc=ote(),Dqi=Cd();function BUc(e,t,r,n,a,o,l,A){var f=[],I=0,C=0,b=!1,E=function(){b&&!f.length&&!I&&t.complete()},N=function(F){return I{"use strict";Object.defineProperty(rTt,"__esModule",{value:!0});rTt.mergeMap=void 0;var wUc=lte(),TUc=uh(),RUc=qg(),NUc=tTt(),DUc=Sy();function kqi(e,t,r){return r===void 0&&(r=1/0),DUc.isFunction(t)?kqi(function(n,a){return wUc.map(function(o,l){return t(n,o,a,l)})(TUc.innerFrom(e(n,a)))},r):(typeof t=="number"&&(r=t),RUc.operate(function(n,a){return NUc.mergeInternals(n,a,e,r)}))}rTt.mergeMap=kqi});var Yke=H(nTt=>{"use strict";Object.defineProperty(nTt,"__esModule",{value:!0});nTt.mergeAll=void 0;var kUc=Kj(),xUc=nx();function GUc(e){return e===void 0&&(e=1/0),kUc.mergeMap(xUc.identity,e)}nTt.mergeAll=GUc});var O8e=H(iTt=>{"use strict";Object.defineProperty(iTt,"__esModule",{value:!0});iTt.concatAll=void 0;var FUc=Yke();function ZUc(){return FUc.mergeAll(1)}iTt.concatAll=ZUc});var M8e=H(sTt=>{"use strict";Object.defineProperty(sTt,"__esModule",{value:!0});sTt.concat=void 0;var LUc=O8e(),VUc=ZV(),PUc=ate();function WUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(oTt,"__esModule",{value:!0});oTt.defer=void 0;var OUc=ub(),MUc=uh();function HUc(e){return new OUc.Observable(function(t){MUc.innerFrom(e()).subscribe(t)})}oTt.defer=HUc});var xqi=H(aTt=>{"use strict";Object.defineProperty(aTt,"__esModule",{value:!0});aTt.connectable=void 0;var YUc=ix(),QUc=ub(),XUc=H8e(),JUc={connector:function(){return new YUc.Subject},resetOnDisconnect:!0};function UUc(e,t){t===void 0&&(t=JUc);var r=null,n=t.connector,a=t.resetOnDisconnect,o=a===void 0?!0:a,l=n(),A=new QUc.Observable(function(f){return l.subscribe(f)});return A.connect=function(){return(!r||r.closed)&&(r=XUc.defer(function(){return e}).subscribe(l),o&&r.add(function(){return l=n()})),r},A}aTt.connectable=UUc});var Gqi=H(cTt=>{"use strict";Object.defineProperty(cTt,"__esModule",{value:!0});cTt.forkJoin=void 0;var KUc=ub(),jUc=ZOr(),zUc=uh(),qUc=ZV(),$Uc=Cd(),eKc=_le(),tKc=LOr();function rKc(){for(var e=[],t=0;t{"use strict";var nKc=Qke&&Qke.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o};Object.defineProperty(Qke,"__esModule",{value:!0});Qke.fromEvent=void 0;var iKc=uh(),sKc=ub(),oKc=Kj(),aKc=hwt(),h_e=Sy(),cKc=_le(),lKc=["addListener","removeListener"],uKc=["addEventListener","removeEventListener"],gKc=["on","off"];function VOr(e,t,r,n){if(h_e.isFunction(r)&&(n=r,r=void 0),n)return VOr(e,t,r).pipe(cKc.mapOneOrManyArgs(n));var a=nKc(pKc(e)?uKc.map(function(A){return function(f){return e[A](t,f,r)}}):AKc(e)?lKc.map(Fqi(e,t)):dKc(e)?gKc.map(Fqi(e,t)):[],2),o=a[0],l=a[1];if(!o&&aKc.isArrayLike(e))return oKc.mergeMap(function(A){return VOr(A,t,r)})(iKc.innerFrom(e));if(!o)throw new TypeError("Invalid event target");return new sKc.Observable(function(A){var f=function(){for(var I=[],C=0;C{"use strict";Object.defineProperty(lTt,"__esModule",{value:!0});lTt.fromEventPattern=void 0;var fKc=ub(),IKc=Sy(),hKc=_le();function Lqi(e,t,r){return r?Lqi(e,t).pipe(hKc.mapOneOrManyArgs(r)):new fKc.Observable(function(n){var a=function(){for(var l=[],A=0;A{"use strict";var mKc=Xke&&Xke.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]{"use strict";Object.defineProperty(uTt,"__esModule",{value:!0});uTt.iif=void 0;var EKc=H8e();function SKc(e,t,r){return EKc.defer(function(){return e()?t:r})}uTt.iif=SKc});var ble=H(gTt=>{"use strict";Object.defineProperty(gTt,"__esModule",{value:!0});gTt.timer=void 0;var vKc=ub(),BKc=FV(),wKc=P8e(),TKc=Jwt();function RKc(e,t,r){e===void 0&&(e=0),r===void 0&&(r=BKc.async);var n=-1;return t!=null&&(wKc.isScheduler(t)?r=t:n=t),new vKc.Observable(function(a){var o=TKc.isValidDate(e)?+e-r.now():e;o<0&&(o=0);var l=0;return r.schedule(function(){a.closed||(a.next(l++),0<=n?this.schedule(void 0,n):a.complete())},o)})}gTt.timer=RKc});var POr=H(ATt=>{"use strict";Object.defineProperty(ATt,"__esModule",{value:!0});ATt.interval=void 0;var NKc=FV(),DKc=ble();function kKc(e,t){return e===void 0&&(e=0),t===void 0&&(t=NKc.asyncScheduler),e<0&&(e=0),DKc.timer(e,e,t)}ATt.interval=kKc});var Hqi=H(dTt=>{"use strict";Object.defineProperty(dTt,"__esModule",{value:!0});dTt.merge=void 0;var xKc=Yke(),GKc=uh(),FKc=x4(),Mqi=ZV(),ZKc=ate();function LKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(m_e,"__esModule",{value:!0});m_e.never=m_e.NEVER=void 0;var VKc=ub(),PKc=rx();m_e.NEVER=new VKc.Observable(PKc.noop);function WKc(){return m_e.NEVER}m_e.never=WKc});var Ele=H(pTt=>{"use strict";Object.defineProperty(pTt,"__esModule",{value:!0});pTt.argsOrArgArray=void 0;var OKc=Array.isArray;function MKc(e){return e.length===1&&OKc(e[0])?e[0]:e}pTt.argsOrArgArray=MKc});var OOr=H(fTt=>{"use strict";Object.defineProperty(fTt,"__esModule",{value:!0});fTt.onErrorResumeNext=void 0;var HKc=ub(),YKc=Ele(),QKc=Cd(),Yqi=rx(),XKc=uh();function JKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(ITt,"__esModule",{value:!0});ITt.pairs=void 0;var UKc=ate();function KKc(e,t){return UKc.from(Object.entries(e),t)}ITt.pairs=KKc});var MOr=H(hTt=>{"use strict";Object.defineProperty(hTt,"__esModule",{value:!0});hTt.not=void 0;function jKc(e,t){return function(r,n){return!e.call(t,r,n)}}hTt.not=jKc});var ute=H(mTt=>{"use strict";Object.defineProperty(mTt,"__esModule",{value:!0});mTt.filter=void 0;var zKc=qg(),qKc=Cd();function $Kc(e,t){return zKc.operate(function(r,n){var a=0;r.subscribe(qKc.createOperatorSubscriber(n,function(o){return e.call(t,o,a++)&&n.next(o)}))})}mTt.filter=$Kc});var Uqi=H(CTt=>{"use strict";Object.defineProperty(CTt,"__esModule",{value:!0});CTt.partition=void 0;var e8c=MOr(),Xqi=ute(),Jqi=uh();function t8c(e,t,r){return[Xqi.filter(t,r)(Jqi.innerFrom(e)),Xqi.filter(e8c.not(t,r))(Jqi.innerFrom(e))]}CTt.partition=t8c});var HOr=H(Jke=>{"use strict";Object.defineProperty(Jke,"__esModule",{value:!0});Jke.raceInit=Jke.race=void 0;var r8c=ub(),Kqi=uh(),n8c=Ele(),i8c=Cd();function s8c(){for(var e=[],t=0;t{"use strict";Object.defineProperty(_Tt,"__esModule",{value:!0});_Tt.range=void 0;var o8c=ub(),a8c=x4();function c8c(e,t,r){if(t==null&&(t=e,e=0),t<=0)return a8c.EMPTY;var n=t+e;return new o8c.Observable(r?function(a){var o=e;return r.schedule(function(){o{"use strict";Object.defineProperty(yTt,"__esModule",{value:!0});yTt.using=void 0;var l8c=ub(),u8c=uh(),g8c=x4();function A8c(e,t){return new l8c.Observable(function(r){var n=e(),a=t(n),o=a?u8c.innerFrom(a):g8c.EMPTY;return o.subscribe(r),function(){n&&n.unsubscribe()}})}yTt.using=A8c});var bTt=H(Sle=>{"use strict";var d8c=Sle&&Sle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},p8c=Sle&&Sle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty($qi,"__esModule",{value:!0})});var STt=H(ETt=>{"use strict";Object.defineProperty(ETt,"__esModule",{value:!0});ETt.audit=void 0;var b8c=qg(),E8c=uh(),t$i=Cd();function S8c(e){return b8c.operate(function(t,r){var n=!1,a=null,o=null,l=!1,A=function(){if(o?.unsubscribe(),o=null,n){n=!1;var I=a;a=null,r.next(I)}l&&r.complete()},f=function(){o=null,l&&r.complete()};t.subscribe(t$i.createOperatorSubscriber(r,function(I){n=!0,a=I,o||E8c.innerFrom(e(I)).subscribe(o=t$i.createOperatorSubscriber(r,A,f))},function(){l=!0,(!n||!o||o.closed)&&r.complete()}))})}ETt.audit=S8c});var YOr=H(vTt=>{"use strict";Object.defineProperty(vTt,"__esModule",{value:!0});vTt.auditTime=void 0;var v8c=FV(),B8c=STt(),w8c=ble();function T8c(e,t){return t===void 0&&(t=v8c.asyncScheduler),B8c.audit(function(){return w8c.timer(e,t)})}vTt.auditTime=T8c});var QOr=H(BTt=>{"use strict";Object.defineProperty(BTt,"__esModule",{value:!0});BTt.buffer=void 0;var R8c=qg(),N8c=rx(),r$i=Cd(),D8c=uh();function k8c(e){return R8c.operate(function(t,r){var n=[];return t.subscribe(r$i.createOperatorSubscriber(r,function(a){return n.push(a)},function(){r.next(n),r.complete()})),D8c.innerFrom(e).subscribe(r$i.createOperatorSubscriber(r,function(){var a=n;n=[],r.next(a)},N8c.noop)),function(){n=null}})}BTt.buffer=k8c});var JOr=H(Uke=>{"use strict";var XOr=Uke&&Uke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Uke,"__esModule",{value:!0});Uke.bufferCount=void 0;var x8c=qg(),G8c=Cd(),F8c=ste();function Z8c(e,t){return t===void 0&&(t=null),t=t??e,x8c.operate(function(r,n){var a=[],o=0;r.subscribe(G8c.createOperatorSubscriber(n,function(l){var A,f,I,C,b=null;o++%t===0&&a.push([]);try{for(var E=XOr(a),N=E.next();!N.done;N=E.next()){var B=N.value;B.push(l),e<=B.length&&(b=b??[],b.push(B))}}catch(X){A={error:X}}finally{try{N&&!N.done&&(f=E.return)&&f.call(E)}finally{if(A)throw A.error}}if(b)try{for(var F=XOr(b),Q=F.next();!Q.done;Q=F.next()){var B=Q.value;F8c.arrRemove(a,B),n.next(B)}}catch(X){I={error:X}}finally{try{Q&&!Q.done&&(C=F.return)&&C.call(F)}finally{if(I)throw I.error}}},function(){var l,A;try{for(var f=XOr(a),I=f.next();!I.done;I=f.next()){var C=I.value;n.next(C)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}n.complete()},void 0,function(){a=null}))})}Uke.bufferCount=Z8c});var UOr=H(Kke=>{"use strict";var L8c=Kke&&Kke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Kke,"__esModule",{value:!0});Kke.bufferTime=void 0;var V8c=TO(),P8c=qg(),W8c=Cd(),O8c=ste(),M8c=FV(),H8c=ZV(),n$i=ote();function Y8c(e){for(var t,r,n=[],a=1;a=0?n$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=W8c.createOperatorSubscriber(I,function(F){var Q,X,ae=C.slice();try{for(var ne=L8c(ae),ce=ne.next();!ce.done;ce=ne.next()){var fe=ce.value,ue=fe.buffer;ue.push(F),A<=ue.length&&E(fe)}}catch(de){Q={error:de}}finally{try{ce&&!ce.done&&(X=ne.return)&&X.call(ne)}finally{if(Q)throw Q.error}}},function(){for(;C?.length;)I.next(C.shift().buffer);B?.unsubscribe(),I.complete(),I.unsubscribe()},void 0,function(){return C=null});f.subscribe(B)})}Kke.bufferTime=Y8c});var jOr=H(jke=>{"use strict";var Q8c=jke&&jke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(jke,"__esModule",{value:!0});jke.bufferToggle=void 0;var X8c=TO(),J8c=qg(),i$i=uh(),KOr=Cd(),s$i=rx(),U8c=ste();function K8c(e,t){return J8c.operate(function(r,n){var a=[];i$i.innerFrom(e).subscribe(KOr.createOperatorSubscriber(n,function(o){var l=[];a.push(l);var A=new X8c.Subscription,f=function(){U8c.arrRemove(a,l),n.next(l),A.unsubscribe()};A.add(i$i.innerFrom(t(o)).subscribe(KOr.createOperatorSubscriber(n,f,s$i.noop)))},s$i.noop)),r.subscribe(KOr.createOperatorSubscriber(n,function(o){var l,A;try{for(var f=Q8c(a),I=f.next();!I.done;I=f.next()){var C=I.value;C.push(o)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}},function(){for(;a.length>0;)n.next(a.shift());n.complete()}))})}jke.bufferToggle=K8c});var zOr=H(wTt=>{"use strict";Object.defineProperty(wTt,"__esModule",{value:!0});wTt.bufferWhen=void 0;var j8c=qg(),z8c=rx(),o$i=Cd(),q8c=uh();function $8c(e){return j8c.operate(function(t,r){var n=null,a=null,o=function(){a?.unsubscribe();var l=n;n=[],l&&r.next(l),q8c.innerFrom(e()).subscribe(a=o$i.createOperatorSubscriber(r,o,z8c.noop))};o(),t.subscribe(o$i.createOperatorSubscriber(r,function(l){return n?.push(l)},function(){n&&r.next(n),r.complete()},void 0,function(){return n=a=null}))})}wTt.bufferWhen=$8c});var qOr=H(TTt=>{"use strict";Object.defineProperty(TTt,"__esModule",{value:!0});TTt.catchError=void 0;var ejc=uh(),tjc=Cd(),rjc=qg();function a$i(e){return rjc.operate(function(t,r){var n=null,a=!1,o;n=t.subscribe(tjc.createOperatorSubscriber(r,void 0,void 0,function(l){o=ejc.innerFrom(e(l,a$i(e)(t))),n?(n.unsubscribe(),n=null,o.subscribe(r)):a=!0})),a&&(n.unsubscribe(),n=null,o.subscribe(r))})}TTt.catchError=a$i});var $Or=H(RTt=>{"use strict";Object.defineProperty(RTt,"__esModule",{value:!0});RTt.scanInternals=void 0;var njc=Cd();function ijc(e,t,r,n,a){return function(o,l){var A=r,f=t,I=0;o.subscribe(njc.createOperatorSubscriber(l,function(C){var b=I++;f=A?e(f,C,b):(A=!0,C),n&&l.next(f)},a&&function(){A&&l.next(f),l.complete()}))}}RTt.scanInternals=ijc});var C_e=H(NTt=>{"use strict";Object.defineProperty(NTt,"__esModule",{value:!0});NTt.reduce=void 0;var sjc=$Or(),ojc=qg();function ajc(e,t){return ojc.operate(sjc.scanInternals(e,t,arguments.length>=2,!1,!0))}NTt.reduce=ajc});var kTt=H(DTt=>{"use strict";Object.defineProperty(DTt,"__esModule",{value:!0});DTt.toArray=void 0;var cjc=C_e(),ljc=qg(),ujc=function(e,t){return e.push(t),e};function gjc(){return ljc.operate(function(e,t){cjc.reduce(ujc,[])(e).subscribe(t)})}DTt.toArray=gjc});var e3r=H(xTt=>{"use strict";Object.defineProperty(xTt,"__esModule",{value:!0});xTt.joinAllInternals=void 0;var Ajc=nx(),djc=_le(),pjc=F8e(),fjc=Kj(),Ijc=kTt();function hjc(e,t){return pjc.pipe(Ijc.toArray(),fjc.mergeMap(function(r){return e(r)}),t?djc.mapOneOrManyArgs(t):Ajc.identity)}xTt.joinAllInternals=hjc});var FTt=H(GTt=>{"use strict";Object.defineProperty(GTt,"__esModule",{value:!0});GTt.combineLatestAll=void 0;var mjc=$wt(),Cjc=e3r();function _jc(e){return Cjc.joinAllInternals(mjc.combineLatest,e)}GTt.combineLatestAll=_jc});var t3r=H(ZTt=>{"use strict";Object.defineProperty(ZTt,"__esModule",{value:!0});ZTt.combineAll=void 0;var yjc=FTt();ZTt.combineAll=yjc.combineLatestAll});var r3r=H(vle=>{"use strict";var c$i=vle&&vle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},l$i=vle&&vle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Tjc=Ble&&Ble.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Rjc=Ble&&Ble.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(LTt,"__esModule",{value:!0});LTt.concatMap=void 0;var g$i=Kj(),kjc=Sy();function xjc(e,t){return kjc.isFunction(t)?g$i.mergeMap(e,t,1):g$i.mergeMap(e,1)}LTt.concatMap=xjc});var i3r=H(PTt=>{"use strict";Object.defineProperty(PTt,"__esModule",{value:!0});PTt.concatMapTo=void 0;var A$i=VTt(),Gjc=Sy();function Fjc(e,t){return Gjc.isFunction(t)?A$i.concatMap(function(){return e},t):A$i.concatMap(function(){return e})}PTt.concatMapTo=Fjc});var s3r=H(wle=>{"use strict";var Zjc=wle&&wle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ljc=wle&&wle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Hjc=Tle&&Tle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yjc=Tle&&Tle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(WTt,"__esModule",{value:!0});WTt.fromSubscribable=void 0;var Jjc=ub();function Ujc(e){return new Jjc.Observable(function(t){return e.subscribe(t)})}WTt.fromSubscribable=Ujc});var Y8e=H(OTt=>{"use strict";Object.defineProperty(OTt,"__esModule",{value:!0});OTt.connect=void 0;var Kjc=ix(),jjc=uh(),zjc=qg(),qjc=d$i(),$jc={connector:function(){return new Kjc.Subject}};function e6c(e,t){t===void 0&&(t=$jc);var r=t.connector;return zjc.operate(function(n,a){var o=r();jjc.innerFrom(e(qjc.fromSubscribable(o))).subscribe(a),a.add(n.subscribe(o))})}OTt.connect=e6c});var a3r=H(MTt=>{"use strict";Object.defineProperty(MTt,"__esModule",{value:!0});MTt.count=void 0;var t6c=C_e();function r6c(e){return t6c.reduce(function(t,r,n){return!e||e(r,n)?t+1:t},0)}MTt.count=r6c});var c3r=H(HTt=>{"use strict";Object.defineProperty(HTt,"__esModule",{value:!0});HTt.debounce=void 0;var n6c=qg(),i6c=rx(),p$i=Cd(),s6c=uh();function o6c(e){return n6c.operate(function(t,r){var n=!1,a=null,o=null,l=function(){if(o?.unsubscribe(),o=null,n){n=!1;var A=a;a=null,r.next(A)}};t.subscribe(p$i.createOperatorSubscriber(r,function(A){o?.unsubscribe(),n=!0,a=A,o=p$i.createOperatorSubscriber(r,l,i6c.noop),s6c.innerFrom(e(A)).subscribe(o)},function(){l(),r.complete()},void 0,function(){a=o=null}))})}HTt.debounce=o6c});var l3r=H(YTt=>{"use strict";Object.defineProperty(YTt,"__esModule",{value:!0});YTt.debounceTime=void 0;var a6c=FV(),c6c=qg(),l6c=Cd();function u6c(e,t){return t===void 0&&(t=a6c.asyncScheduler),c6c.operate(function(r,n){var a=null,o=null,l=null,A=function(){if(a){a.unsubscribe(),a=null;var I=o;o=null,n.next(I)}};function f(){var I=l+e,C=t.now();if(C{"use strict";Object.defineProperty(QTt,"__esModule",{value:!0});QTt.defaultIfEmpty=void 0;var g6c=qg(),A6c=Cd();function d6c(e){return g6c.operate(function(t,r){var n=!1;t.subscribe(A6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){n||r.next(e),r.complete()}))})}QTt.defaultIfEmpty=d6c});var qke=H(XTt=>{"use strict";Object.defineProperty(XTt,"__esModule",{value:!0});XTt.take=void 0;var p6c=x4(),f6c=qg(),I6c=Cd();function h6c(e){return e<=0?function(){return p6c.EMPTY}:f6c.operate(function(t,r){var n=0;t.subscribe(I6c.createOperatorSubscriber(r,function(a){++n<=e&&(r.next(a),e<=n&&r.complete())}))})}XTt.take=h6c});var UTt=H(JTt=>{"use strict";Object.defineProperty(JTt,"__esModule",{value:!0});JTt.ignoreElements=void 0;var m6c=qg(),C6c=Cd(),_6c=rx();function y6c(){return m6c.operate(function(e,t){e.subscribe(C6c.createOperatorSubscriber(t,_6c.noop))})}JTt.ignoreElements=y6c});var jTt=H(KTt=>{"use strict";Object.defineProperty(KTt,"__esModule",{value:!0});KTt.mapTo=void 0;var b6c=lte();function E6c(e){return b6c.map(function(){return e})}KTt.mapTo=E6c});var qTt=H(zTt=>{"use strict";Object.defineProperty(zTt,"__esModule",{value:!0});zTt.delayWhen=void 0;var S6c=M8e(),f$i=qke(),v6c=UTt(),B6c=jTt(),w6c=Kj(),T6c=uh();function I$i(e,t){return t?function(r){return S6c.concat(t.pipe(f$i.take(1),v6c.ignoreElements()),r.pipe(I$i(e)))}:w6c.mergeMap(function(r,n){return T6c.innerFrom(e(r,n)).pipe(f$i.take(1),B6c.mapTo(r))})}zTt.delayWhen=I$i});var u3r=H($Tt=>{"use strict";Object.defineProperty($Tt,"__esModule",{value:!0});$Tt.delay=void 0;var R6c=FV(),N6c=qTt(),D6c=ble();function k6c(e,t){t===void 0&&(t=R6c.asyncScheduler);var r=D6c.timer(e,t);return N6c.delayWhen(function(){return r})}$Tt.delay=k6c});var g3r=H(eRt=>{"use strict";Object.defineProperty(eRt,"__esModule",{value:!0});eRt.dematerialize=void 0;var x6c=Vwt(),G6c=qg(),F6c=Cd();function Z6c(){return G6c.operate(function(e,t){e.subscribe(F6c.createOperatorSubscriber(t,function(r){return x6c.observeNotification(r,t)}))})}eRt.dematerialize=Z6c});var A3r=H(tRt=>{"use strict";Object.defineProperty(tRt,"__esModule",{value:!0});tRt.distinct=void 0;var L6c=qg(),h$i=Cd(),V6c=rx(),P6c=uh();function W6c(e,t){return L6c.operate(function(r,n){var a=new Set;r.subscribe(h$i.createOperatorSubscriber(n,function(o){var l=e?e(o):o;a.has(l)||(a.add(l),n.next(o))})),t&&P6c.innerFrom(t).subscribe(h$i.createOperatorSubscriber(n,function(){return a.clear()},V6c.noop))})}tRt.distinct=W6c});var nRt=H(rRt=>{"use strict";Object.defineProperty(rRt,"__esModule",{value:!0});rRt.distinctUntilChanged=void 0;var O6c=nx(),M6c=qg(),H6c=Cd();function Y6c(e,t){return t===void 0&&(t=O6c.identity),e=e??Q6c,M6c.operate(function(r,n){var a,o=!0;r.subscribe(H6c.createOperatorSubscriber(n,function(l){var A=t(l);(o||!e(a,A))&&(o=!1,a=A,n.next(l))}))})}rRt.distinctUntilChanged=Y6c;function Q6c(e,t){return e===t}});var d3r=H(iRt=>{"use strict";Object.defineProperty(iRt,"__esModule",{value:!0});iRt.distinctUntilKeyChanged=void 0;var X6c=nRt();function J6c(e,t){return X6c.distinctUntilChanged(function(r,n){return t?t(r[e],n[e]):r[e]===n[e]})}iRt.distinctUntilKeyChanged=J6c});var $ke=H(sRt=>{"use strict";Object.defineProperty(sRt,"__esModule",{value:!0});sRt.throwIfEmpty=void 0;var U6c=mle(),K6c=qg(),j6c=Cd();function z6c(e){return e===void 0&&(e=q6c),K6c.operate(function(t,r){var n=!1;t.subscribe(j6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){return n?r.complete():r.error(e())}))})}sRt.throwIfEmpty=z6c;function q6c(){return new U6c.EmptyError}});var p3r=H(oRt=>{"use strict";Object.defineProperty(oRt,"__esModule",{value:!0});oRt.elementAt=void 0;var m$i=DOr(),$6c=ute(),e7c=$ke(),t7c=zke(),r7c=qke();function n7c(e,t){if(e<0)throw new m$i.ArgumentOutOfRangeError;var r=arguments.length>=2;return function(n){return n.pipe($6c.filter(function(a,o){return o===e}),r7c.take(1),r?t7c.defaultIfEmpty(t):e7c.throwIfEmpty(function(){return new m$i.ArgumentOutOfRangeError}))}}oRt.elementAt=n7c});var f3r=H(Rle=>{"use strict";var i7c=Rle&&Rle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},s7c=Rle&&Rle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(aRt,"__esModule",{value:!0});aRt.every=void 0;var l7c=qg(),u7c=Cd();function g7c(e,t){return l7c.operate(function(r,n){var a=0;r.subscribe(u7c.createOperatorSubscriber(n,function(o){e.call(t,o,a++,r)||(n.next(!1),n.complete())},function(){n.next(!0),n.complete()}))})}aRt.every=g7c});var lRt=H(cRt=>{"use strict";Object.defineProperty(cRt,"__esModule",{value:!0});cRt.exhaustMap=void 0;var A7c=lte(),C$i=uh(),d7c=qg(),_$i=Cd();function y$i(e,t){return t?function(r){return r.pipe(y$i(function(n,a){return C$i.innerFrom(e(n,a)).pipe(A7c.map(function(o,l){return t(n,o,a,l)}))}))}:d7c.operate(function(r,n){var a=0,o=null,l=!1;r.subscribe(_$i.createOperatorSubscriber(n,function(A){o||(o=_$i.createOperatorSubscriber(n,void 0,function(){o=null,l&&n.complete()}),C$i.innerFrom(e(A,a++)).subscribe(o))},function(){l=!0,!o&&n.complete()}))})}cRt.exhaustMap=y$i});var gRt=H(uRt=>{"use strict";Object.defineProperty(uRt,"__esModule",{value:!0});uRt.exhaustAll=void 0;var p7c=lRt(),f7c=nx();function I7c(){return p7c.exhaustMap(f7c.identity)}uRt.exhaustAll=I7c});var h3r=H(ARt=>{"use strict";Object.defineProperty(ARt,"__esModule",{value:!0});ARt.exhaust=void 0;var h7c=gRt();ARt.exhaust=h7c.exhaustAll});var m3r=H(dRt=>{"use strict";Object.defineProperty(dRt,"__esModule",{value:!0});dRt.expand=void 0;var m7c=qg(),C7c=tTt();function _7c(e,t,r){return t===void 0&&(t=1/0),t=(t||0)<1?1/0:t,m7c.operate(function(n,a){return C7c.mergeInternals(n,a,e,t,void 0,!0,r)})}dRt.expand=_7c});var C3r=H(pRt=>{"use strict";Object.defineProperty(pRt,"__esModule",{value:!0});pRt.finalize=void 0;var y7c=qg();function b7c(e){return y7c.operate(function(t,r){try{t.subscribe(r)}finally{r.add(e)}})}pRt.finalize=b7c});var fRt=H(exe=>{"use strict";Object.defineProperty(exe,"__esModule",{value:!0});exe.createFind=exe.find=void 0;var E7c=qg(),S7c=Cd();function v7c(e,t){return E7c.operate(b$i(e,t,"value"))}exe.find=v7c;function b$i(e,t,r){var n=r==="index";return function(a,o){var l=0;a.subscribe(S7c.createOperatorSubscriber(o,function(A){var f=l++;e.call(t,A,f,a)&&(o.next(n?f:A),o.complete())},function(){o.next(n?-1:void 0),o.complete()}))}}exe.createFind=b$i});var _3r=H(IRt=>{"use strict";Object.defineProperty(IRt,"__esModule",{value:!0});IRt.findIndex=void 0;var B7c=qg(),w7c=fRt();function T7c(e,t){return B7c.operate(w7c.createFind(e,t,"index"))}IRt.findIndex=T7c});var y3r=H(hRt=>{"use strict";Object.defineProperty(hRt,"__esModule",{value:!0});hRt.first=void 0;var R7c=mle(),N7c=ute(),D7c=qke(),k7c=zke(),x7c=$ke(),G7c=nx();function F7c(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?N7c.filter(function(a,o){return e(a,o,n)}):G7c.identity,D7c.take(1),r?k7c.defaultIfEmpty(t):x7c.throwIfEmpty(function(){return new R7c.EmptyError}))}}hRt.first=F7c});var b3r=H(mRt=>{"use strict";Object.defineProperty(mRt,"__esModule",{value:!0});mRt.groupBy=void 0;var Z7c=ub(),L7c=uh(),V7c=ix(),P7c=qg(),E$i=Cd();function W7c(e,t,r,n){return P7c.operate(function(a,o){var l;!t||typeof t=="function"?l=t:(r=t.duration,l=t.element,n=t.connector);var A=new Map,f=function(B){A.forEach(B),B(o)},I=function(B){return f(function(F){return F.error(B)})},C=0,b=!1,E=new E$i.OperatorSubscriber(o,function(B){try{var F=e(B),Q=A.get(F);if(!Q){A.set(F,Q=n?n():new V7c.Subject);var X=N(F,Q);if(o.next(X),r){var ae=E$i.createOperatorSubscriber(Q,function(){Q.complete(),ae?.unsubscribe()},void 0,void 0,function(){return A.delete(F)});E.add(L7c.innerFrom(r(X)).subscribe(ae))}}Q.next(l?l(B):B)}catch(ne){I(ne)}},function(){return f(function(B){return B.complete()})},I,function(){return A.clear()},function(){return b=!0,C===0});a.subscribe(E);function N(B,F){var Q=new Z7c.Observable(function(X){C++;var ae=F.subscribe(X);return function(){ae.unsubscribe(),--C===0&&b&&E.unsubscribe()}});return Q.key=B,Q}})}mRt.groupBy=W7c});var E3r=H(CRt=>{"use strict";Object.defineProperty(CRt,"__esModule",{value:!0});CRt.isEmpty=void 0;var O7c=qg(),M7c=Cd();function H7c(){return O7c.operate(function(e,t){e.subscribe(M7c.createOperatorSubscriber(t,function(){t.next(!1),t.complete()},function(){t.next(!0),t.complete()}))})}CRt.isEmpty=H7c});var _Rt=H(txe=>{"use strict";var Y7c=txe&&txe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(txe,"__esModule",{value:!0});txe.takeLast=void 0;var Q7c=x4(),X7c=qg(),J7c=Cd();function U7c(e){return e<=0?function(){return Q7c.EMPTY}:X7c.operate(function(t,r){var n=[];t.subscribe(J7c.createOperatorSubscriber(r,function(a){n.push(a),e{"use strict";Object.defineProperty(yRt,"__esModule",{value:!0});yRt.last=void 0;var K7c=mle(),j7c=ute(),z7c=_Rt(),q7c=$ke(),$7c=zke(),ezc=nx();function tzc(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?j7c.filter(function(a,o){return e(a,o,n)}):ezc.identity,z7c.takeLast(1),r?$7c.defaultIfEmpty(t):q7c.throwIfEmpty(function(){return new K7c.EmptyError}))}}yRt.last=tzc});var B3r=H(bRt=>{"use strict";Object.defineProperty(bRt,"__esModule",{value:!0});bRt.materialize=void 0;var v3r=Vwt(),rzc=qg(),nzc=Cd();function izc(){return rzc.operate(function(e,t){e.subscribe(nzc.createOperatorSubscriber(t,function(r){t.next(v3r.Notification.createNext(r))},function(){t.next(v3r.Notification.createComplete()),t.complete()},function(r){t.next(v3r.Notification.createError(r)),t.complete()}))})}bRt.materialize=izc});var w3r=H(ERt=>{"use strict";Object.defineProperty(ERt,"__esModule",{value:!0});ERt.max=void 0;var szc=C_e(),ozc=Sy();function azc(e){return szc.reduce(ozc.isFunction(e)?function(t,r){return e(t,r)>0?t:r}:function(t,r){return t>r?t:r})}ERt.max=azc});var T3r=H(SRt=>{"use strict";Object.defineProperty(SRt,"__esModule",{value:!0});SRt.flatMap=void 0;var czc=Kj();SRt.flatMap=czc.mergeMap});var R3r=H(vRt=>{"use strict";Object.defineProperty(vRt,"__esModule",{value:!0});vRt.mergeMapTo=void 0;var S$i=Kj(),lzc=Sy();function uzc(e,t,r){return r===void 0&&(r=1/0),lzc.isFunction(t)?S$i.mergeMap(function(){return e},t,r):(typeof t=="number"&&(r=t),S$i.mergeMap(function(){return e},r))}vRt.mergeMapTo=uzc});var N3r=H(BRt=>{"use strict";Object.defineProperty(BRt,"__esModule",{value:!0});BRt.mergeScan=void 0;var gzc=qg(),Azc=tTt();function dzc(e,t,r){return r===void 0&&(r=1/0),gzc.operate(function(n,a){var o=t;return Azc.mergeInternals(n,a,function(l,A){return e(o,l,A)},r,function(l){o=l},!1,void 0,function(){return o=null})})}BRt.mergeScan=dzc});var D3r=H(Nle=>{"use strict";var pzc=Nle&&Nle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},fzc=Nle&&Nle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var yzc=Dle&&Dle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},bzc=Dle&&Dle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(wRt,"__esModule",{value:!0});wRt.min=void 0;var vzc=C_e(),Bzc=Sy();function wzc(e){return vzc.reduce(Bzc.isFunction(e)?function(t,r){return e(t,r)<0?t:r}:function(t,r){return t{"use strict";Object.defineProperty(TRt,"__esModule",{value:!0});TRt.multicast=void 0;var Tzc=Z8e(),B$i=Sy(),Rzc=Y8e();function Nzc(e,t){var r=B$i.isFunction(e)?e:function(){return e};return B$i.isFunction(t)?Rzc.connect(t,{connector:r}):function(n){return new Tzc.ConnectableObservable(n,r)}}TRt.multicast=Nzc});var G3r=H(jj=>{"use strict";var Dzc=jj&&jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},kzc=jj&&jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(RRt,"__esModule",{value:!0});RRt.pairwise=void 0;var Fzc=qg(),Zzc=Cd();function Lzc(){return Fzc.operate(function(e,t){var r,n=!1;e.subscribe(Zzc.createOperatorSubscriber(t,function(a){var o=r;r=a,n&&t.next([o,a]),n=!0}))})}RRt.pairwise=Lzc});var Z3r=H(NRt=>{"use strict";Object.defineProperty(NRt,"__esModule",{value:!0});NRt.pluck=void 0;var Vzc=lte();function Pzc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(DRt,"__esModule",{value:!0});DRt.publish=void 0;var Wzc=ix(),Ozc=Q8e(),Mzc=Y8e();function Hzc(e){return e?function(t){return Mzc.connect(e)(t)}:function(t){return Ozc.multicast(new Wzc.Subject)(t)}}DRt.publish=Hzc});var V3r=H(kRt=>{"use strict";Object.defineProperty(kRt,"__esModule",{value:!0});kRt.publishBehavior=void 0;var Yzc=pOr(),Qzc=Z8e();function Xzc(e){return function(t){var r=new Yzc.BehaviorSubject(e);return new Qzc.ConnectableObservable(t,function(){return r})}}kRt.publishBehavior=Xzc});var P3r=H(xRt=>{"use strict";Object.defineProperty(xRt,"__esModule",{value:!0});xRt.publishLast=void 0;var Jzc=Awt(),Uzc=Z8e();function Kzc(){return function(e){var t=new Jzc.AsyncSubject;return new Uzc.ConnectableObservable(e,function(){return t})}}xRt.publishLast=Kzc});var W3r=H(GRt=>{"use strict";Object.defineProperty(GRt,"__esModule",{value:!0});GRt.publishReplay=void 0;var jzc=gwt(),zzc=Q8e(),T$i=Sy();function qzc(e,t,r,n){r&&!T$i.isFunction(r)&&(n=r);var a=T$i.isFunction(r)?r:void 0;return function(o){return zzc.multicast(new jzc.ReplaySubject(e,t,n),a)(o)}}GRt.publishReplay=qzc});var FRt=H(kle=>{"use strict";var $zc=kle&&kle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},eqc=kle&&kle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ZRt,"__esModule",{value:!0});ZRt.repeat=void 0;var sqc=x4(),oqc=qg(),R$i=Cd(),aqc=uh(),cqc=ble();function lqc(e){var t,r=1/0,n;return e!=null&&(typeof e=="object"?(t=e.count,r=t===void 0?1/0:t,n=e.delay):r=e),r<=0?function(){return sqc.EMPTY}:oqc.operate(function(a,o){var l=0,A,f=function(){if(A?.unsubscribe(),A=null,n!=null){var C=typeof n=="number"?cqc.timer(n):aqc.innerFrom(n(l)),b=R$i.createOperatorSubscriber(o,function(){b.unsubscribe(),I()});C.subscribe(b)}else I()},I=function(){var C=!1;A=a.subscribe(R$i.createOperatorSubscriber(o,void 0,function(){++l{"use strict";Object.defineProperty(LRt,"__esModule",{value:!0});LRt.repeatWhen=void 0;var uqc=uh(),gqc=ix(),Aqc=qg(),N$i=Cd();function dqc(e){return Aqc.operate(function(t,r){var n,a=!1,o,l=!1,A=!1,f=function(){return A&&l&&(r.complete(),!0)},I=function(){return o||(o=new gqc.Subject,uqc.innerFrom(e(o)).subscribe(N$i.createOperatorSubscriber(r,function(){n?C():a=!0},function(){l=!0,f()}))),o},C=function(){A=!1,n=t.subscribe(N$i.createOperatorSubscriber(r,void 0,function(){A=!0,!f()&&I().next()})),a&&(n.unsubscribe(),n=null,a=!1,C())};C()})}LRt.repeatWhen=dqc});var H3r=H(VRt=>{"use strict";Object.defineProperty(VRt,"__esModule",{value:!0});VRt.retry=void 0;var pqc=qg(),D$i=Cd(),fqc=nx(),Iqc=ble(),hqc=uh();function mqc(e){e===void 0&&(e=1/0);var t;e&&typeof e=="object"?t=e:t={count:e};var r=t.count,n=r===void 0?1/0:r,a=t.delay,o=t.resetOnSuccess,l=o===void 0?!1:o;return n<=0?fqc.identity:pqc.operate(function(A,f){var I=0,C,b=function(){var E=!1;C=A.subscribe(D$i.createOperatorSubscriber(f,function(N){l&&(I=0),f.next(N)},void 0,function(N){if(I++{"use strict";Object.defineProperty(PRt,"__esModule",{value:!0});PRt.retryWhen=void 0;var Cqc=uh(),_qc=ix(),yqc=qg(),k$i=Cd();function bqc(e){return yqc.operate(function(t,r){var n,a=!1,o,l=function(){n=t.subscribe(k$i.createOperatorSubscriber(r,void 0,void 0,function(A){o||(o=new _qc.Subject,Cqc.innerFrom(e(o)).subscribe(k$i.createOperatorSubscriber(r,function(){return n?l():a=!0}))),o&&o.next(A)})),a&&(n.unsubscribe(),n=null,a=!1,l())};l()})}PRt.retryWhen=bqc});var ORt=H(WRt=>{"use strict";Object.defineProperty(WRt,"__esModule",{value:!0});WRt.sample=void 0;var Eqc=uh(),Sqc=qg(),vqc=rx(),x$i=Cd();function Bqc(e){return Sqc.operate(function(t,r){var n=!1,a=null;t.subscribe(x$i.createOperatorSubscriber(r,function(o){n=!0,a=o})),Eqc.innerFrom(e).subscribe(x$i.createOperatorSubscriber(r,function(){if(n){n=!1;var o=a;a=null,r.next(o)}},vqc.noop))})}WRt.sample=Bqc});var Q3r=H(MRt=>{"use strict";Object.defineProperty(MRt,"__esModule",{value:!0});MRt.sampleTime=void 0;var wqc=FV(),Tqc=ORt(),Rqc=POr();function Nqc(e,t){return t===void 0&&(t=wqc.asyncScheduler),Tqc.sample(Rqc.interval(e,t))}MRt.sampleTime=Nqc});var X3r=H(HRt=>{"use strict";Object.defineProperty(HRt,"__esModule",{value:!0});HRt.scan=void 0;var Dqc=qg(),kqc=$Or();function xqc(e,t){return Dqc.operate(kqc.scanInternals(e,t,arguments.length>=2,!0))}HRt.scan=xqc});var J3r=H(YRt=>{"use strict";Object.defineProperty(YRt,"__esModule",{value:!0});YRt.sequenceEqual=void 0;var Gqc=qg(),Fqc=Cd(),Zqc=uh();function Lqc(e,t){return t===void 0&&(t=function(r,n){return r===n}),Gqc.operate(function(r,n){var a=G$i(),o=G$i(),l=function(f){n.next(f),n.complete()},A=function(f,I){var C=Fqc.createOperatorSubscriber(n,function(b){var E=I.buffer,N=I.complete;E.length===0?N?l(!1):f.buffer.push(b):!t(b,E.shift())&&l(!1)},function(){f.complete=!0;var b=I.complete,E=I.buffer;b&&l(E.length===0),C?.unsubscribe()});return C};r.subscribe(A(a,o)),Zqc.innerFrom(e).subscribe(A(o,a))})}YRt.sequenceEqual=Lqc;function G$i(){return{buffer:[],complete:!1}}});var QRt=H(xle=>{"use strict";var Vqc=xle&&xle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Pqc=xle&&xle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r0&&(C=new Z$i.SafeSubscriber({next:function(ue){return fe.next(ue)},error:function(ue){F=!0,Q(),b=U3r(X,a,ue),fe.error(ue)},complete:function(){B=!0,Q(),b=U3r(X,l),fe.complete()}}),F$i.innerFrom(ne).subscribe(C))})(I)}}xle.share=Mqc;function U3r(e,t){for(var r=[],n=2;n{"use strict";Object.defineProperty(XRt,"__esModule",{value:!0});XRt.shareReplay=void 0;var Hqc=gwt(),Yqc=QRt();function Qqc(e,t,r){var n,a,o,l,A=!1;return e&&typeof e=="object"?(n=e.bufferSize,l=n===void 0?1/0:n,a=e.windowTime,t=a===void 0?1/0:a,o=e.refCount,A=o===void 0?!1:o,r=e.scheduler):l=e??1/0,Yqc.share({connector:function(){return new Hqc.ReplaySubject(l,t,r)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:A})}XRt.shareReplay=Qqc});var j3r=H(JRt=>{"use strict";Object.defineProperty(JRt,"__esModule",{value:!0});JRt.single=void 0;var Xqc=mle(),Jqc=xOr(),Uqc=kOr(),Kqc=qg(),jqc=Cd();function zqc(e){return Kqc.operate(function(t,r){var n=!1,a,o=!1,l=0;t.subscribe(jqc.createOperatorSubscriber(r,function(A){o=!0,(!e||e(A,l++,t))&&(n&&r.error(new Jqc.SequenceError("Too many matching values")),n=!0,a=A)},function(){n?(r.next(a),r.complete()):r.error(o?new Uqc.NotFoundError("No matching values"):new Xqc.EmptyError)}))})}JRt.single=zqc});var z3r=H(URt=>{"use strict";Object.defineProperty(URt,"__esModule",{value:!0});URt.skip=void 0;var qqc=ute();function $qc(e){return qqc.filter(function(t,r){return e<=r})}URt.skip=$qc});var q3r=H(KRt=>{"use strict";Object.defineProperty(KRt,"__esModule",{value:!0});KRt.skipLast=void 0;var e$c=nx(),t$c=qg(),r$c=Cd();function n$c(e){return e<=0?e$c.identity:t$c.operate(function(t,r){var n=new Array(e),a=0;return t.subscribe(r$c.createOperatorSubscriber(r,function(o){var l=a++;if(l{"use strict";Object.defineProperty(jRt,"__esModule",{value:!0});jRt.skipUntil=void 0;var i$c=qg(),L$i=Cd(),s$c=uh(),o$c=rx();function a$c(e){return i$c.operate(function(t,r){var n=!1,a=L$i.createOperatorSubscriber(r,function(){a?.unsubscribe(),n=!0},o$c.noop);s$c.innerFrom(e).subscribe(a),t.subscribe(L$i.createOperatorSubscriber(r,function(o){return n&&r.next(o)}))})}jRt.skipUntil=a$c});var e5r=H(zRt=>{"use strict";Object.defineProperty(zRt,"__esModule",{value:!0});zRt.skipWhile=void 0;var c$c=qg(),l$c=Cd();function u$c(e){return c$c.operate(function(t,r){var n=!1,a=0;t.subscribe(l$c.createOperatorSubscriber(r,function(o){return(n||(n=!e(o,a++)))&&r.next(o)}))})}zRt.skipWhile=u$c});var t5r=H(qRt=>{"use strict";Object.defineProperty(qRt,"__esModule",{value:!0});qRt.startWith=void 0;var V$i=M8e(),g$c=ZV(),A$c=qg();function d$c(){for(var e=[],t=0;t{"use strict";Object.defineProperty($Rt,"__esModule",{value:!0});$Rt.switchMap=void 0;var p$c=uh(),f$c=qg(),P$i=Cd();function I$c(e,t){return f$c.operate(function(r,n){var a=null,o=0,l=!1,A=function(){return l&&!a&&n.complete()};r.subscribe(P$i.createOperatorSubscriber(n,function(f){a?.unsubscribe();var I=0,C=o++;p$c.innerFrom(e(f,C)).subscribe(a=P$i.createOperatorSubscriber(n,function(b){return n.next(t?t(f,b,C,I++):b)},function(){a=null,A()}))},function(){l=!0,A()}))})}$Rt.switchMap=I$c});var r5r=H(eNt=>{"use strict";Object.defineProperty(eNt,"__esModule",{value:!0});eNt.switchAll=void 0;var h$c=rxe(),m$c=nx();function C$c(){return h$c.switchMap(m$c.identity)}eNt.switchAll=C$c});var n5r=H(tNt=>{"use strict";Object.defineProperty(tNt,"__esModule",{value:!0});tNt.switchMapTo=void 0;var W$i=rxe(),_$c=Sy();function y$c(e,t){return _$c.isFunction(t)?W$i.switchMap(function(){return e},t):W$i.switchMap(function(){return e})}tNt.switchMapTo=y$c});var i5r=H(rNt=>{"use strict";Object.defineProperty(rNt,"__esModule",{value:!0});rNt.switchScan=void 0;var b$c=rxe(),E$c=qg();function S$c(e,t){return E$c.operate(function(r,n){var a=t;return b$c.switchMap(function(o,l){return e(a,o,l)},function(o,l){return a=l,l})(r).subscribe(n),function(){a=null}})}rNt.switchScan=S$c});var s5r=H(nNt=>{"use strict";Object.defineProperty(nNt,"__esModule",{value:!0});nNt.takeUntil=void 0;var v$c=qg(),B$c=Cd(),w$c=uh(),T$c=rx();function R$c(e){return v$c.operate(function(t,r){w$c.innerFrom(e).subscribe(B$c.createOperatorSubscriber(r,function(){return r.complete()},T$c.noop)),!r.closed&&t.subscribe(r)})}nNt.takeUntil=R$c});var o5r=H(iNt=>{"use strict";Object.defineProperty(iNt,"__esModule",{value:!0});iNt.takeWhile=void 0;var N$c=qg(),D$c=Cd();function k$c(e,t){return t===void 0&&(t=!1),N$c.operate(function(r,n){var a=0;r.subscribe(D$c.createOperatorSubscriber(n,function(o){var l=e(o,a++);(l||t)&&n.next(o),!l&&n.complete()}))})}iNt.takeWhile=k$c});var a5r=H(sNt=>{"use strict";Object.defineProperty(sNt,"__esModule",{value:!0});sNt.tap=void 0;var x$c=Sy(),G$c=qg(),F$c=Cd(),Z$c=nx();function L$c(e,t,r){var n=x$c.isFunction(e)||t||r?{next:e,error:t,complete:r}:e;return n?G$c.operate(function(a,o){var l;(l=n.subscribe)===null||l===void 0||l.call(n);var A=!0;a.subscribe(F$c.createOperatorSubscriber(o,function(f){var I;(I=n.next)===null||I===void 0||I.call(n,f),o.next(f)},function(){var f;A=!1,(f=n.complete)===null||f===void 0||f.call(n),o.complete()},function(f){var I;A=!1,(I=n.error)===null||I===void 0||I.call(n,f),o.error(f)},function(){var f,I;A&&((f=n.unsubscribe)===null||f===void 0||f.call(n)),(I=n.finalize)===null||I===void 0||I.call(n)}))}):Z$c.identity}sNt.tap=L$c});var aNt=H(oNt=>{"use strict";Object.defineProperty(oNt,"__esModule",{value:!0});oNt.throttle=void 0;var V$c=qg(),O$i=Cd(),P$c=uh();function W$c(e,t){return V$c.operate(function(r,n){var a=t??{},o=a.leading,l=o===void 0?!0:o,A=a.trailing,f=A===void 0?!1:A,I=!1,C=null,b=null,E=!1,N=function(){b?.unsubscribe(),b=null,f&&(Q(),E&&n.complete())},B=function(){b=null,E&&n.complete()},F=function(X){return b=P$c.innerFrom(e(X)).subscribe(O$i.createOperatorSubscriber(n,N,B))},Q=function(){if(I){I=!1;var X=C;C=null,n.next(X),!E&&F(X)}};r.subscribe(O$i.createOperatorSubscriber(n,function(X){I=!0,C=X,!(b&&!b.closed)&&(l?Q():F(X))},function(){E=!0,!(f&&I&&b&&!b.closed)&&n.complete()}))})}oNt.throttle=W$c});var c5r=H(cNt=>{"use strict";Object.defineProperty(cNt,"__esModule",{value:!0});cNt.throttleTime=void 0;var O$c=FV(),M$c=aNt(),H$c=ble();function Y$c(e,t,r){t===void 0&&(t=O$c.asyncScheduler);var n=H$c.timer(e,t);return M$c.throttle(function(){return n},r)}cNt.throttleTime=Y$c});var l5r=H(nxe=>{"use strict";Object.defineProperty(nxe,"__esModule",{value:!0});nxe.TimeInterval=nxe.timeInterval=void 0;var Q$c=FV(),X$c=qg(),J$c=Cd();function U$c(e){return e===void 0&&(e=Q$c.asyncScheduler),X$c.operate(function(t,r){var n=e.now();t.subscribe(J$c.createOperatorSubscriber(r,function(a){var o=e.now(),l=o-n;n=o,r.next(new M$i(a,l))}))})}nxe.timeInterval=U$c;var M$i=function(){function e(t,r){this.value=t,this.interval=r}return e}();nxe.TimeInterval=M$i});var u5r=H(lNt=>{"use strict";Object.defineProperty(lNt,"__esModule",{value:!0});lNt.timeoutWith=void 0;var K$c=FV(),j$c=Jwt(),z$c=W8e();function q$c(e,t,r){var n,a,o;if(r=r??K$c.async,j$c.isValidDate(e)?n=e:typeof e=="number"&&(a=e),t)o=function(){return t};else throw new TypeError("No observable provided to switch to");if(n==null&&a==null)throw new TypeError("No timeout provided.");return z$c.timeout({first:n,each:a,scheduler:r,with:o})}lNt.timeoutWith=q$c});var g5r=H(uNt=>{"use strict";Object.defineProperty(uNt,"__esModule",{value:!0});uNt.timestamp=void 0;var $$c=uwt(),eel=lte();function tel(e){return e===void 0&&(e=$$c.dateTimestampProvider),eel.map(function(t){return{value:t,timestamp:e.now()}})}uNt.timestamp=tel});var A5r=H(gNt=>{"use strict";Object.defineProperty(gNt,"__esModule",{value:!0});gNt.window=void 0;var H$i=ix(),rel=qg(),Y$i=Cd(),nel=rx(),iel=uh();function sel(e){return rel.operate(function(t,r){var n=new H$i.Subject;r.next(n.asObservable());var a=function(o){n.error(o),r.error(o)};return t.subscribe(Y$i.createOperatorSubscriber(r,function(o){return n?.next(o)},function(){n.complete(),r.complete()},a)),iel.innerFrom(e).subscribe(Y$i.createOperatorSubscriber(r,function(){n.complete(),r.next(n=new H$i.Subject)},nel.noop,a)),function(){n?.unsubscribe(),n=null}})}gNt.window=sel});var d5r=H(ixe=>{"use strict";var oel=ixe&&ixe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ixe,"__esModule",{value:!0});ixe.windowCount=void 0;var Q$i=ix(),ael=qg(),cel=Cd();function lel(e,t){t===void 0&&(t=0);var r=t>0?t:e;return ael.operate(function(n,a){var o=[new Q$i.Subject],l=[],A=0;a.next(o[0].asObservable()),n.subscribe(cel.createOperatorSubscriber(a,function(f){var I,C;try{for(var b=oel(o),E=b.next();!E.done;E=b.next()){var N=E.value;N.next(f)}}catch(Q){I={error:Q}}finally{try{E&&!E.done&&(C=b.return)&&C.call(b)}finally{if(I)throw I.error}}var B=A-e+1;if(B>=0&&B%r===0&&o.shift().complete(),++A%r===0){var F=new Q$i.Subject;o.push(F),a.next(F.asObservable())}},function(){for(;o.length>0;)o.shift().complete();a.complete()},function(f){for(;o.length>0;)o.shift().error(f);a.error(f)},function(){l=null,o=null}))})}ixe.windowCount=lel});var p5r=H(ANt=>{"use strict";Object.defineProperty(ANt,"__esModule",{value:!0});ANt.windowTime=void 0;var uel=ix(),gel=FV(),Ael=TO(),del=qg(),pel=Cd(),fel=ste(),Iel=ZV(),X$i=ote();function hel(e){for(var t,r,n=[],a=1;a=0?X$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=function(Q){return C.slice().forEach(Q)},F=function(Q){B(function(X){var ae=X.window;return Q(ae)}),Q(I),I.unsubscribe()};return f.subscribe(pel.createOperatorSubscriber(I,function(Q){B(function(X){X.window.next(Q),A<=++X.seen&&E(X)})},function(){return F(function(Q){return Q.complete()})},function(Q){return F(function(X){return X.error(Q)})})),function(){C=null}})}ANt.windowTime=hel});var I5r=H(sxe=>{"use strict";var mel=sxe&&sxe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(sxe,"__esModule",{value:!0});sxe.windowToggle=void 0;var Cel=ix(),_el=TO(),yel=qg(),J$i=uh(),f5r=Cd(),U$i=rx(),bel=ste();function Eel(e,t){return yel.operate(function(r,n){var a=[],o=function(l){for(;0{"use strict";Object.defineProperty(dNt,"__esModule",{value:!0});dNt.windowWhen=void 0;var Sel=ix(),vel=qg(),K$i=Cd(),Bel=uh();function wel(e){return vel.operate(function(t,r){var n,a,o=function(A){n.error(A),r.error(A)},l=function(){a?.unsubscribe(),n?.complete(),n=new Sel.Subject,r.next(n.asObservable());var A;try{A=Bel.innerFrom(e())}catch(f){o(f);return}A.subscribe(a=K$i.createOperatorSubscriber(r,l,l,o))};l(),t.subscribe(K$i.createOperatorSubscriber(r,function(A){return n.next(A)},function(){n.complete(),r.complete()},o,function(){a?.unsubscribe(),n=null}))})}dNt.windowWhen=wel});var m5r=H(Gle=>{"use strict";var j$i=Gle&&Gle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},z$i=Gle&&Gle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(pNt,"__esModule",{value:!0});pNt.zipAll=void 0;var Gel=bTt(),Fel=e3r();function Zel(e){return Fel.joinAllInternals(Gel.zip,e)}pNt.zipAll=Zel});var _5r=H(Fle=>{"use strict";var Lel=Fle&&Fle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Vel=Fle&&Fle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Mel=Zle&&Zle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Hel=Zle&&Zle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Xel=Cn&&Cn.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jel=Cn&&Cn.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Xel(t,e,r)};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.interval=Cn.iif=Cn.generate=Cn.fromEventPattern=Cn.fromEvent=Cn.from=Cn.forkJoin=Cn.empty=Cn.defer=Cn.connectable=Cn.concat=Cn.combineLatest=Cn.bindNodeCallback=Cn.bindCallback=Cn.UnsubscriptionError=Cn.TimeoutError=Cn.SequenceError=Cn.ObjectUnsubscribedError=Cn.NotFoundError=Cn.EmptyError=Cn.ArgumentOutOfRangeError=Cn.firstValueFrom=Cn.lastValueFrom=Cn.isObservable=Cn.identity=Cn.noop=Cn.pipe=Cn.NotificationKind=Cn.Notification=Cn.Subscriber=Cn.Subscription=Cn.Scheduler=Cn.VirtualAction=Cn.VirtualTimeScheduler=Cn.animationFrameScheduler=Cn.animationFrame=Cn.queueScheduler=Cn.queue=Cn.asyncScheduler=Cn.async=Cn.asapScheduler=Cn.asap=Cn.AsyncSubject=Cn.ReplaySubject=Cn.BehaviorSubject=Cn.Subject=Cn.animationFrames=Cn.observable=Cn.ConnectableObservable=Cn.Observable=void 0;Cn.filter=Cn.expand=Cn.exhaustMap=Cn.exhaustAll=Cn.exhaust=Cn.every=Cn.endWith=Cn.elementAt=Cn.distinctUntilKeyChanged=Cn.distinctUntilChanged=Cn.distinct=Cn.dematerialize=Cn.delayWhen=Cn.delay=Cn.defaultIfEmpty=Cn.debounceTime=Cn.debounce=Cn.count=Cn.connect=Cn.concatWith=Cn.concatMapTo=Cn.concatMap=Cn.concatAll=Cn.combineLatestWith=Cn.combineLatestAll=Cn.combineAll=Cn.catchError=Cn.bufferWhen=Cn.bufferToggle=Cn.bufferTime=Cn.bufferCount=Cn.buffer=Cn.auditTime=Cn.audit=Cn.config=Cn.NEVER=Cn.EMPTY=Cn.scheduled=Cn.zip=Cn.using=Cn.timer=Cn.throwError=Cn.range=Cn.race=Cn.partition=Cn.pairs=Cn.onErrorResumeNext=Cn.of=Cn.never=Cn.merge=void 0;Cn.switchMap=Cn.switchAll=Cn.subscribeOn=Cn.startWith=Cn.skipWhile=Cn.skipUntil=Cn.skipLast=Cn.skip=Cn.single=Cn.shareReplay=Cn.share=Cn.sequenceEqual=Cn.scan=Cn.sampleTime=Cn.sample=Cn.refCount=Cn.retryWhen=Cn.retry=Cn.repeatWhen=Cn.repeat=Cn.reduce=Cn.raceWith=Cn.publishReplay=Cn.publishLast=Cn.publishBehavior=Cn.publish=Cn.pluck=Cn.pairwise=Cn.onErrorResumeNextWith=Cn.observeOn=Cn.multicast=Cn.min=Cn.mergeWith=Cn.mergeScan=Cn.mergeMapTo=Cn.mergeMap=Cn.flatMap=Cn.mergeAll=Cn.max=Cn.materialize=Cn.mapTo=Cn.map=Cn.last=Cn.isEmpty=Cn.ignoreElements=Cn.groupBy=Cn.first=Cn.findIndex=Cn.find=Cn.finalize=void 0;Cn.zipWith=Cn.zipAll=Cn.withLatestFrom=Cn.windowWhen=Cn.windowToggle=Cn.windowTime=Cn.windowCount=Cn.window=Cn.toArray=Cn.timestamp=Cn.timeoutWith=Cn.timeout=Cn.timeInterval=Cn.throwIfEmpty=Cn.throttleTime=Cn.throttle=Cn.tap=Cn.takeWhile=Cn.takeUntil=Cn.takeLast=Cn.take=Cn.switchScan=Cn.switchMapTo=void 0;var Uel=ub();Object.defineProperty(Cn,"Observable",{enumerable:!0,get:function(){return Uel.Observable}});var Kel=Z8e();Object.defineProperty(Cn,"ConnectableObservable",{enumerable:!0,get:function(){return Kel.ConnectableObservable}});var jel=G8e();Object.defineProperty(Cn,"observable",{enumerable:!0,get:function(){return jel.observable}});var zel=Nzi();Object.defineProperty(Cn,"animationFrames",{enumerable:!0,get:function(){return zel.animationFrames}});var qel=ix();Object.defineProperty(Cn,"Subject",{enumerable:!0,get:function(){return qel.Subject}});var $el=pOr();Object.defineProperty(Cn,"BehaviorSubject",{enumerable:!0,get:function(){return $el.BehaviorSubject}});var etl=gwt();Object.defineProperty(Cn,"ReplaySubject",{enumerable:!0,get:function(){return etl.ReplaySubject}});var ttl=Awt();Object.defineProperty(Cn,"AsyncSubject",{enumerable:!0,get:function(){return ttl.AsyncSubject}});var $$i=Jzi();Object.defineProperty(Cn,"asap",{enumerable:!0,get:function(){return $$i.asap}});Object.defineProperty(Cn,"asapScheduler",{enumerable:!0,get:function(){return $$i.asapScheduler}});var ees=FV();Object.defineProperty(Cn,"async",{enumerable:!0,get:function(){return ees.async}});Object.defineProperty(Cn,"asyncScheduler",{enumerable:!0,get:function(){return ees.asyncScheduler}});var tes=jzi();Object.defineProperty(Cn,"queue",{enumerable:!0,get:function(){return tes.queue}});Object.defineProperty(Cn,"queueScheduler",{enumerable:!0,get:function(){return tes.queueScheduler}});var res=eqi();Object.defineProperty(Cn,"animationFrame",{enumerable:!0,get:function(){return res.animationFrame}});Object.defineProperty(Cn,"animationFrameScheduler",{enumerable:!0,get:function(){return res.animationFrameScheduler}});var nes=nqi();Object.defineProperty(Cn,"VirtualTimeScheduler",{enumerable:!0,get:function(){return nes.VirtualTimeScheduler}});Object.defineProperty(Cn,"VirtualAction",{enumerable:!0,get:function(){return nes.VirtualAction}});var rtl=IOr();Object.defineProperty(Cn,"Scheduler",{enumerable:!0,get:function(){return rtl.Scheduler}});var ntl=TO();Object.defineProperty(Cn,"Subscription",{enumerable:!0,get:function(){return ntl.Subscription}});var itl=Cke();Object.defineProperty(Cn,"Subscriber",{enumerable:!0,get:function(){return itl.Subscriber}});var ies=Vwt();Object.defineProperty(Cn,"Notification",{enumerable:!0,get:function(){return ies.Notification}});Object.defineProperty(Cn,"NotificationKind",{enumerable:!0,get:function(){return ies.NotificationKind}});var stl=F8e();Object.defineProperty(Cn,"pipe",{enumerable:!0,get:function(){return stl.pipe}});var otl=rx();Object.defineProperty(Cn,"noop",{enumerable:!0,get:function(){return otl.noop}});var atl=nx();Object.defineProperty(Cn,"identity",{enumerable:!0,get:function(){return atl.identity}});var ctl=_qi();Object.defineProperty(Cn,"isObservable",{enumerable:!0,get:function(){return ctl.isObservable}});var ltl=yqi();Object.defineProperty(Cn,"lastValueFrom",{enumerable:!0,get:function(){return ltl.lastValueFrom}});var utl=bqi();Object.defineProperty(Cn,"firstValueFrom",{enumerable:!0,get:function(){return utl.firstValueFrom}});var gtl=DOr();Object.defineProperty(Cn,"ArgumentOutOfRangeError",{enumerable:!0,get:function(){return gtl.ArgumentOutOfRangeError}});var Atl=mle();Object.defineProperty(Cn,"EmptyError",{enumerable:!0,get:function(){return Atl.EmptyError}});var dtl=kOr();Object.defineProperty(Cn,"NotFoundError",{enumerable:!0,get:function(){return dtl.NotFoundError}});var ptl=uOr();Object.defineProperty(Cn,"ObjectUnsubscribedError",{enumerable:!0,get:function(){return ptl.ObjectUnsubscribedError}});var ftl=xOr();Object.defineProperty(Cn,"SequenceError",{enumerable:!0,get:function(){return ftl.SequenceError}});var Itl=W8e();Object.defineProperty(Cn,"TimeoutError",{enumerable:!0,get:function(){return Itl.TimeoutError}});var htl=qWr();Object.defineProperty(Cn,"UnsubscriptionError",{enumerable:!0,get:function(){return htl.UnsubscriptionError}});var mtl=Sqi();Object.defineProperty(Cn,"bindCallback",{enumerable:!0,get:function(){return mtl.bindCallback}});var Ctl=vqi();Object.defineProperty(Cn,"bindNodeCallback",{enumerable:!0,get:function(){return Ctl.bindNodeCallback}});var _tl=$wt();Object.defineProperty(Cn,"combineLatest",{enumerable:!0,get:function(){return _tl.combineLatest}});var ytl=M8e();Object.defineProperty(Cn,"concat",{enumerable:!0,get:function(){return ytl.concat}});var btl=xqi();Object.defineProperty(Cn,"connectable",{enumerable:!0,get:function(){return btl.connectable}});var Etl=H8e();Object.defineProperty(Cn,"defer",{enumerable:!0,get:function(){return Etl.defer}});var Stl=x4();Object.defineProperty(Cn,"empty",{enumerable:!0,get:function(){return Stl.empty}});var vtl=Gqi();Object.defineProperty(Cn,"forkJoin",{enumerable:!0,get:function(){return vtl.forkJoin}});var Btl=ate();Object.defineProperty(Cn,"from",{enumerable:!0,get:function(){return Btl.from}});var wtl=Zqi();Object.defineProperty(Cn,"fromEvent",{enumerable:!0,get:function(){return wtl.fromEvent}});var Ttl=Vqi();Object.defineProperty(Cn,"fromEventPattern",{enumerable:!0,get:function(){return Ttl.fromEventPattern}});var Rtl=Wqi();Object.defineProperty(Cn,"generate",{enumerable:!0,get:function(){return Rtl.generate}});var Ntl=Oqi();Object.defineProperty(Cn,"iif",{enumerable:!0,get:function(){return Ntl.iif}});var Dtl=POr();Object.defineProperty(Cn,"interval",{enumerable:!0,get:function(){return Dtl.interval}});var ktl=Hqi();Object.defineProperty(Cn,"merge",{enumerable:!0,get:function(){return ktl.merge}});var xtl=WOr();Object.defineProperty(Cn,"never",{enumerable:!0,get:function(){return xtl.never}});var Gtl=Zwt();Object.defineProperty(Cn,"of",{enumerable:!0,get:function(){return Gtl.of}});var Ftl=OOr();Object.defineProperty(Cn,"onErrorResumeNext",{enumerable:!0,get:function(){return Ftl.onErrorResumeNext}});var Ztl=Qqi();Object.defineProperty(Cn,"pairs",{enumerable:!0,get:function(){return Ztl.pairs}});var Ltl=Uqi();Object.defineProperty(Cn,"partition",{enumerable:!0,get:function(){return Ltl.partition}});var Vtl=HOr();Object.defineProperty(Cn,"race",{enumerable:!0,get:function(){return Vtl.race}});var Ptl=zqi();Object.defineProperty(Cn,"range",{enumerable:!0,get:function(){return Ptl.range}});var Wtl=NOr();Object.defineProperty(Cn,"throwError",{enumerable:!0,get:function(){return Wtl.throwError}});var Otl=ble();Object.defineProperty(Cn,"timer",{enumerable:!0,get:function(){return Otl.timer}});var Mtl=qqi();Object.defineProperty(Cn,"using",{enumerable:!0,get:function(){return Mtl.using}});var Htl=bTt();Object.defineProperty(Cn,"zip",{enumerable:!0,get:function(){return Htl.zip}});var Ytl=ROr();Object.defineProperty(Cn,"scheduled",{enumerable:!0,get:function(){return Ytl.scheduled}});var Qtl=x4();Object.defineProperty(Cn,"EMPTY",{enumerable:!0,get:function(){return Qtl.EMPTY}});var Xtl=WOr();Object.defineProperty(Cn,"NEVER",{enumerable:!0,get:function(){return Xtl.NEVER}});Jel(e$i(),Cn);var Jtl=hke();Object.defineProperty(Cn,"config",{enumerable:!0,get:function(){return Jtl.config}});var Utl=STt();Object.defineProperty(Cn,"audit",{enumerable:!0,get:function(){return Utl.audit}});var Ktl=YOr();Object.defineProperty(Cn,"auditTime",{enumerable:!0,get:function(){return Ktl.auditTime}});var jtl=QOr();Object.defineProperty(Cn,"buffer",{enumerable:!0,get:function(){return jtl.buffer}});var ztl=JOr();Object.defineProperty(Cn,"bufferCount",{enumerable:!0,get:function(){return ztl.bufferCount}});var qtl=UOr();Object.defineProperty(Cn,"bufferTime",{enumerable:!0,get:function(){return qtl.bufferTime}});var $tl=jOr();Object.defineProperty(Cn,"bufferToggle",{enumerable:!0,get:function(){return $tl.bufferToggle}});var erl=zOr();Object.defineProperty(Cn,"bufferWhen",{enumerable:!0,get:function(){return erl.bufferWhen}});var trl=qOr();Object.defineProperty(Cn,"catchError",{enumerable:!0,get:function(){return trl.catchError}});var rrl=t3r();Object.defineProperty(Cn,"combineAll",{enumerable:!0,get:function(){return rrl.combineAll}});var nrl=FTt();Object.defineProperty(Cn,"combineLatestAll",{enumerable:!0,get:function(){return nrl.combineLatestAll}});var irl=n3r();Object.defineProperty(Cn,"combineLatestWith",{enumerable:!0,get:function(){return irl.combineLatestWith}});var srl=O8e();Object.defineProperty(Cn,"concatAll",{enumerable:!0,get:function(){return srl.concatAll}});var orl=VTt();Object.defineProperty(Cn,"concatMap",{enumerable:!0,get:function(){return orl.concatMap}});var arl=i3r();Object.defineProperty(Cn,"concatMapTo",{enumerable:!0,get:function(){return arl.concatMapTo}});var crl=o3r();Object.defineProperty(Cn,"concatWith",{enumerable:!0,get:function(){return crl.concatWith}});var lrl=Y8e();Object.defineProperty(Cn,"connect",{enumerable:!0,get:function(){return lrl.connect}});var url=a3r();Object.defineProperty(Cn,"count",{enumerable:!0,get:function(){return url.count}});var grl=c3r();Object.defineProperty(Cn,"debounce",{enumerable:!0,get:function(){return grl.debounce}});var Arl=l3r();Object.defineProperty(Cn,"debounceTime",{enumerable:!0,get:function(){return Arl.debounceTime}});var drl=zke();Object.defineProperty(Cn,"defaultIfEmpty",{enumerable:!0,get:function(){return drl.defaultIfEmpty}});var prl=u3r();Object.defineProperty(Cn,"delay",{enumerable:!0,get:function(){return prl.delay}});var frl=qTt();Object.defineProperty(Cn,"delayWhen",{enumerable:!0,get:function(){return frl.delayWhen}});var Irl=g3r();Object.defineProperty(Cn,"dematerialize",{enumerable:!0,get:function(){return Irl.dematerialize}});var hrl=A3r();Object.defineProperty(Cn,"distinct",{enumerable:!0,get:function(){return hrl.distinct}});var mrl=nRt();Object.defineProperty(Cn,"distinctUntilChanged",{enumerable:!0,get:function(){return mrl.distinctUntilChanged}});var Crl=d3r();Object.defineProperty(Cn,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return Crl.distinctUntilKeyChanged}});var _rl=p3r();Object.defineProperty(Cn,"elementAt",{enumerable:!0,get:function(){return _rl.elementAt}});var yrl=f3r();Object.defineProperty(Cn,"endWith",{enumerable:!0,get:function(){return yrl.endWith}});var brl=I3r();Object.defineProperty(Cn,"every",{enumerable:!0,get:function(){return brl.every}});var Erl=h3r();Object.defineProperty(Cn,"exhaust",{enumerable:!0,get:function(){return Erl.exhaust}});var Srl=gRt();Object.defineProperty(Cn,"exhaustAll",{enumerable:!0,get:function(){return Srl.exhaustAll}});var vrl=lRt();Object.defineProperty(Cn,"exhaustMap",{enumerable:!0,get:function(){return vrl.exhaustMap}});var Brl=m3r();Object.defineProperty(Cn,"expand",{enumerable:!0,get:function(){return Brl.expand}});var wrl=ute();Object.defineProperty(Cn,"filter",{enumerable:!0,get:function(){return wrl.filter}});var Trl=C3r();Object.defineProperty(Cn,"finalize",{enumerable:!0,get:function(){return Trl.finalize}});var Rrl=fRt();Object.defineProperty(Cn,"find",{enumerable:!0,get:function(){return Rrl.find}});var Nrl=_3r();Object.defineProperty(Cn,"findIndex",{enumerable:!0,get:function(){return Nrl.findIndex}});var Drl=y3r();Object.defineProperty(Cn,"first",{enumerable:!0,get:function(){return Drl.first}});var krl=b3r();Object.defineProperty(Cn,"groupBy",{enumerable:!0,get:function(){return krl.groupBy}});var xrl=UTt();Object.defineProperty(Cn,"ignoreElements",{enumerable:!0,get:function(){return xrl.ignoreElements}});var Grl=E3r();Object.defineProperty(Cn,"isEmpty",{enumerable:!0,get:function(){return Grl.isEmpty}});var Frl=S3r();Object.defineProperty(Cn,"last",{enumerable:!0,get:function(){return Frl.last}});var Zrl=lte();Object.defineProperty(Cn,"map",{enumerable:!0,get:function(){return Zrl.map}});var Lrl=jTt();Object.defineProperty(Cn,"mapTo",{enumerable:!0,get:function(){return Lrl.mapTo}});var Vrl=B3r();Object.defineProperty(Cn,"materialize",{enumerable:!0,get:function(){return Vrl.materialize}});var Prl=w3r();Object.defineProperty(Cn,"max",{enumerable:!0,get:function(){return Prl.max}});var Wrl=Yke();Object.defineProperty(Cn,"mergeAll",{enumerable:!0,get:function(){return Wrl.mergeAll}});var Orl=T3r();Object.defineProperty(Cn,"flatMap",{enumerable:!0,get:function(){return Orl.flatMap}});var Mrl=Kj();Object.defineProperty(Cn,"mergeMap",{enumerable:!0,get:function(){return Mrl.mergeMap}});var Hrl=R3r();Object.defineProperty(Cn,"mergeMapTo",{enumerable:!0,get:function(){return Hrl.mergeMapTo}});var Yrl=N3r();Object.defineProperty(Cn,"mergeScan",{enumerable:!0,get:function(){return Yrl.mergeScan}});var Qrl=k3r();Object.defineProperty(Cn,"mergeWith",{enumerable:!0,get:function(){return Qrl.mergeWith}});var Xrl=x3r();Object.defineProperty(Cn,"min",{enumerable:!0,get:function(){return Xrl.min}});var Jrl=Q8e();Object.defineProperty(Cn,"multicast",{enumerable:!0,get:function(){return Jrl.multicast}});var Url=Oke();Object.defineProperty(Cn,"observeOn",{enumerable:!0,get:function(){return Url.observeOn}});var Krl=G3r();Object.defineProperty(Cn,"onErrorResumeNextWith",{enumerable:!0,get:function(){return Krl.onErrorResumeNextWith}});var jrl=F3r();Object.defineProperty(Cn,"pairwise",{enumerable:!0,get:function(){return jrl.pairwise}});var zrl=Z3r();Object.defineProperty(Cn,"pluck",{enumerable:!0,get:function(){return zrl.pluck}});var qrl=L3r();Object.defineProperty(Cn,"publish",{enumerable:!0,get:function(){return qrl.publish}});var $rl=V3r();Object.defineProperty(Cn,"publishBehavior",{enumerable:!0,get:function(){return $rl.publishBehavior}});var enl=P3r();Object.defineProperty(Cn,"publishLast",{enumerable:!0,get:function(){return enl.publishLast}});var tnl=W3r();Object.defineProperty(Cn,"publishReplay",{enumerable:!0,get:function(){return tnl.publishReplay}});var rnl=FRt();Object.defineProperty(Cn,"raceWith",{enumerable:!0,get:function(){return rnl.raceWith}});var nnl=C_e();Object.defineProperty(Cn,"reduce",{enumerable:!0,get:function(){return nnl.reduce}});var inl=O3r();Object.defineProperty(Cn,"repeat",{enumerable:!0,get:function(){return inl.repeat}});var snl=M3r();Object.defineProperty(Cn,"repeatWhen",{enumerable:!0,get:function(){return snl.repeatWhen}});var onl=H3r();Object.defineProperty(Cn,"retry",{enumerable:!0,get:function(){return onl.retry}});var anl=Y3r();Object.defineProperty(Cn,"retryWhen",{enumerable:!0,get:function(){return anl.retryWhen}});var cnl=awt();Object.defineProperty(Cn,"refCount",{enumerable:!0,get:function(){return cnl.refCount}});var lnl=ORt();Object.defineProperty(Cn,"sample",{enumerable:!0,get:function(){return lnl.sample}});var unl=Q3r();Object.defineProperty(Cn,"sampleTime",{enumerable:!0,get:function(){return unl.sampleTime}});var gnl=X3r();Object.defineProperty(Cn,"scan",{enumerable:!0,get:function(){return gnl.scan}});var Anl=J3r();Object.defineProperty(Cn,"sequenceEqual",{enumerable:!0,get:function(){return Anl.sequenceEqual}});var dnl=QRt();Object.defineProperty(Cn,"share",{enumerable:!0,get:function(){return dnl.share}});var pnl=K3r();Object.defineProperty(Cn,"shareReplay",{enumerable:!0,get:function(){return pnl.shareReplay}});var fnl=j3r();Object.defineProperty(Cn,"single",{enumerable:!0,get:function(){return fnl.single}});var Inl=z3r();Object.defineProperty(Cn,"skip",{enumerable:!0,get:function(){return Inl.skip}});var hnl=q3r();Object.defineProperty(Cn,"skipLast",{enumerable:!0,get:function(){return hnl.skipLast}});var mnl=$3r();Object.defineProperty(Cn,"skipUntil",{enumerable:!0,get:function(){return mnl.skipUntil}});var Cnl=e5r();Object.defineProperty(Cn,"skipWhile",{enumerable:!0,get:function(){return Cnl.skipWhile}});var _nl=t5r();Object.defineProperty(Cn,"startWith",{enumerable:!0,get:function(){return _nl.startWith}});var ynl=Mke();Object.defineProperty(Cn,"subscribeOn",{enumerable:!0,get:function(){return ynl.subscribeOn}});var bnl=r5r();Object.defineProperty(Cn,"switchAll",{enumerable:!0,get:function(){return bnl.switchAll}});var Enl=rxe();Object.defineProperty(Cn,"switchMap",{enumerable:!0,get:function(){return Enl.switchMap}});var Snl=n5r();Object.defineProperty(Cn,"switchMapTo",{enumerable:!0,get:function(){return Snl.switchMapTo}});var vnl=i5r();Object.defineProperty(Cn,"switchScan",{enumerable:!0,get:function(){return vnl.switchScan}});var Bnl=qke();Object.defineProperty(Cn,"take",{enumerable:!0,get:function(){return Bnl.take}});var wnl=_Rt();Object.defineProperty(Cn,"takeLast",{enumerable:!0,get:function(){return wnl.takeLast}});var Tnl=s5r();Object.defineProperty(Cn,"takeUntil",{enumerable:!0,get:function(){return Tnl.takeUntil}});var Rnl=o5r();Object.defineProperty(Cn,"takeWhile",{enumerable:!0,get:function(){return Rnl.takeWhile}});var Nnl=a5r();Object.defineProperty(Cn,"tap",{enumerable:!0,get:function(){return Nnl.tap}});var Dnl=aNt();Object.defineProperty(Cn,"throttle",{enumerable:!0,get:function(){return Dnl.throttle}});var knl=c5r();Object.defineProperty(Cn,"throttleTime",{enumerable:!0,get:function(){return knl.throttleTime}});var xnl=$ke();Object.defineProperty(Cn,"throwIfEmpty",{enumerable:!0,get:function(){return xnl.throwIfEmpty}});var Gnl=l5r();Object.defineProperty(Cn,"timeInterval",{enumerable:!0,get:function(){return Gnl.timeInterval}});var Fnl=W8e();Object.defineProperty(Cn,"timeout",{enumerable:!0,get:function(){return Fnl.timeout}});var Znl=u5r();Object.defineProperty(Cn,"timeoutWith",{enumerable:!0,get:function(){return Znl.timeoutWith}});var Lnl=g5r();Object.defineProperty(Cn,"timestamp",{enumerable:!0,get:function(){return Lnl.timestamp}});var Vnl=kTt();Object.defineProperty(Cn,"toArray",{enumerable:!0,get:function(){return Vnl.toArray}});var Pnl=A5r();Object.defineProperty(Cn,"window",{enumerable:!0,get:function(){return Pnl.window}});var Wnl=d5r();Object.defineProperty(Cn,"windowCount",{enumerable:!0,get:function(){return Wnl.windowCount}});var Onl=p5r();Object.defineProperty(Cn,"windowTime",{enumerable:!0,get:function(){return Onl.windowTime}});var Mnl=I5r();Object.defineProperty(Cn,"windowToggle",{enumerable:!0,get:function(){return Mnl.windowToggle}});var Hnl=h5r();Object.defineProperty(Cn,"windowWhen",{enumerable:!0,get:function(){return Hnl.windowWhen}});var Ynl=m5r();Object.defineProperty(Cn,"withLatestFrom",{enumerable:!0,get:function(){return Ynl.withLatestFrom}});var Qnl=C5r();Object.defineProperty(Cn,"zipAll",{enumerable:!0,get:function(){return Qnl.zipAll}});var Xnl=y5r();Object.defineProperty(Cn,"zipWith",{enumerable:!0,get:function(){return Xnl.zipWith}})});var gte=H(LV=>{"use strict";Object.defineProperty(LV,"__esModule",{value:!0});LV.PathIsFileException=LV.PathIsDirectoryException=LV.FileAlreadyExistException=LV.FileDoesNotExistException=LV.UnknownException=LV.BaseException=void 0;var Lle=class extends Error{constructor(t=""){super(t)}};LV.BaseException=Lle;var b5r=class extends Lle{constructor(t){super(t)}};LV.UnknownException=b5r;var E5r=class extends Lle{constructor(t){super(`Path "${t}" does not exist.`)}};LV.FileDoesNotExistException=E5r;var S5r=class extends Lle{constructor(t){super(`Path "${t}" already exist.`)}};LV.FileAlreadyExistException=S5r;var v5r=class extends Lle{constructor(t){super(`Path "${t}" is a directory.`)}};LV.PathIsDirectoryException=v5r;var B5r=class extends Lle{constructor(t){super(`Path "${t}" is a file.`)}};LV.PathIsFileException=B5r});var oes=H(__e=>{"use strict";Object.defineProperty(__e,"__esModule",{value:!0});__e.oneLine=Jnl;__e.indentBy=Unl;__e.stripIndent=ses;__e.stripIndents=Knl;__e.trimNewlines=jnl;function Jnl(e,...t){return String.raw(e,...t).replace(/(?:\r?\n(?:\s*))+/gm," ").trim()}function Unl(e){let t="";for(;e--;)t+=" ";return(r,...n)=>t+ses(r,...n).replace(/\n/g,` -`+t)}function ses(e,...t){let r=String.raw(e,...t),n=r.match(/^[ \t]*(?=\S)/gm);if(n===null)return r;let a=Math.min(...n.map(l=>l.length)),o=new RegExp("^[ \\t]{"+a+"}","gm");return(a>0?r.replace(o,""):r).trim()}function Knl(e,...t){return String.raw(e,...t).split(` + `):"",this.name="UnsubscriptionError",this.errors=r}})});var ste=H(jBt=>{"use strict";Object.defineProperty(jBt,"__esModule",{value:!0});jBt.arrRemove=void 0;function WYc(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}jBt.arrRemove=WYc});var TO=H(GV=>{"use strict";var ozi=GV&&GV.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},azi=GV&&GV.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},czi=GV&&GV.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(zBt,"__esModule",{value:!0});zBt.config=void 0;zBt.config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var tOr=H(Yj=>{"use strict";var gzi=Yj&&Yj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Azi=Yj&&Yj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(qBt,"__esModule",{value:!0});qBt.reportUnhandledError=void 0;var MYc=hke(),HYc=tOr();function YYc(e){HYc.timeoutProvider.setTimeout(function(){var t=MYc.config.onUnhandledError;if(t)t(e);else throw e})}qBt.reportUnhandledError=YYc});var rx=H($Bt=>{"use strict";Object.defineProperty($Bt,"__esModule",{value:!0});$Bt.noop=void 0;function QYc(){}$Bt.noop=QYc});var dzi=H(Qj=>{"use strict";Object.defineProperty(Qj,"__esModule",{value:!0});Qj.createNotification=Qj.nextNotification=Qj.errorNotification=Qj.COMPLETE_NOTIFICATION=void 0;Qj.COMPLETE_NOTIFICATION=function(){return ewt("C",void 0,void 0)}();function XYc(e){return ewt("E",void 0,e)}Qj.errorNotification=XYc;function JYc(e){return ewt("N",e,void 0)}Qj.nextNotification=JYc;function ewt(e,t,r){return{kind:e,value:t,error:r}}Qj.createNotification=ewt});var twt=H(mke=>{"use strict";Object.defineProperty(mke,"__esModule",{value:!0});mke.captureError=mke.errorContext=void 0;var pzi=hke(),u_e=null;function UYc(e){if(pzi.config.useDeprecatedSynchronousErrorHandling){var t=!u_e;if(t&&(u_e={errorThrown:!1,error:null}),e(),t){var r=u_e,n=r.errorThrown,a=r.error;if(u_e=null,n)throw a}}else e()}mke.errorContext=UYc;function KYc(e){pzi.config.useDeprecatedSynchronousErrorHandling&&u_e&&(u_e.errorThrown=!0,u_e.error=e)}mke.captureError=KYc});var Cke=H(D4=>{"use strict";var hzi=D4&&D4.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(D4,"__esModule",{value:!0});D4.EMPTY_OBSERVER=D4.SafeSubscriber=D4.Subscriber=void 0;var jYc=Sy(),fzi=TO(),oOr=hke(),zYc=rOr(),Izi=rx(),nOr=dzi(),qYc=tOr(),$Yc=twt(),mzi=function(e){hzi(t,e);function t(r){var n=e.call(this)||this;return n.isStopped=!1,r?(n.destination=r,fzi.isSubscription(r)&&r.add(n)):n.destination=D4.EMPTY_OBSERVER,n}return t.create=function(r,n,a){return new Czi(r,n,a)},t.prototype.next=function(r){this.isStopped?sOr(nOr.nextNotification(r),this):this._next(r)},t.prototype.error=function(r){this.isStopped?sOr(nOr.errorNotification(r),this):(this.isStopped=!0,this._error(r))},t.prototype.complete=function(){this.isStopped?sOr(nOr.COMPLETE_NOTIFICATION,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(r){this.destination.next(r)},t.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fzi.Subscription);D4.Subscriber=mzi;var eQc=Function.prototype.bind;function iOr(e,t){return eQc.call(e,t)}var tQc=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var r=this.partialObserver;if(r.next)try{r.next(t)}catch(n){rwt(n)}},e.prototype.error=function(t){var r=this.partialObserver;if(r.error)try{r.error(t)}catch(n){rwt(n)}else rwt(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(r){rwt(r)}},e}(),Czi=function(e){hzi(t,e);function t(r,n,a){var o=e.call(this)||this,l;if(jYc.isFunction(r)||!r)l={next:r??void 0,error:n??void 0,complete:a??void 0};else{var A;o&&oOr.config.useDeprecatedNextContext?(A=Object.create(r),A.unsubscribe=function(){return o.unsubscribe()},l={next:r.next&&iOr(r.next,A),error:r.error&&iOr(r.error,A),complete:r.complete&&iOr(r.complete,A)}):l=r}return o.destination=new tQc(l),o}return t}(mzi);D4.SafeSubscriber=Czi;function rwt(e){oOr.config.useDeprecatedSynchronousErrorHandling?$Yc.captureError(e):zYc.reportUnhandledError(e)}function rQc(e){throw e}function sOr(e,t){var r=oOr.config.onStoppedNotification;r&&qYc.timeoutProvider.setTimeout(function(){return r(e,t)})}D4.EMPTY_OBSERVER={closed:!0,next:Izi.noop,error:rQc,complete:Izi.noop}});var G8e=H(nwt=>{"use strict";Object.defineProperty(nwt,"__esModule",{value:!0});nwt.observable=void 0;nwt.observable=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}()});var nx=H(iwt=>{"use strict";Object.defineProperty(iwt,"__esModule",{value:!0});iwt.identity=void 0;function nQc(e){return e}iwt.identity=nQc});var F8e=H(_ke=>{"use strict";Object.defineProperty(_ke,"__esModule",{value:!0});_ke.pipeFromArray=_ke.pipe=void 0;var iQc=nx();function sQc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(swt,"__esModule",{value:!0});swt.Observable=void 0;var cOr=Cke(),oQc=TO(),aQc=G8e(),cQc=F8e(),lQc=hke(),aOr=Sy(),uQc=twt(),gQc=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(t,r,n){var a=this,o=dQc(t)?t:new cOr.SafeSubscriber(t,r,n);return uQc.errorContext(function(){var l=a,A=l.operator,f=l.source;o.add(A?A.call(o,f):f?a._subscribe(o):a._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(r){t.error(r)}},e.prototype.forEach=function(t,r){var n=this;return r=yzi(r),new r(function(a,o){var l=new cOr.SafeSubscriber({next:function(A){try{t(A)}catch(f){o(f),l.unsubscribe()}},error:o,complete:a});n.subscribe(l)})},e.prototype._subscribe=function(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)},e.prototype[aQc.observable]=function(){return this},e.prototype.pipe=function(){for(var t=[],r=0;r{"use strict";Object.defineProperty(yke,"__esModule",{value:!0});yke.operate=yke.hasLift=void 0;var pQc=Sy();function bzi(e){return pQc.isFunction(e?.lift)}yke.hasLift=bzi;function fQc(e){return function(t){if(bzi(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}yke.operate=fQc});var Cd=H(fle=>{"use strict";var IQc=fle&&fle.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(fle,"__esModule",{value:!0});fle.OperatorSubscriber=fle.createOperatorSubscriber=void 0;var hQc=Cke();function mQc(e,t,r,n,a){return new Ezi(e,t,r,n,a)}fle.createOperatorSubscriber=mQc;var Ezi=function(e){IQc(t,e);function t(r,n,a,o,l,A){var f=e.call(this,r)||this;return f.onFinalize=l,f.shouldUnsubscribe=A,f._next=n?function(I){try{n(I)}catch(C){r.error(C)}}:e.prototype._next,f._error=o?function(I){try{o(I)}catch(C){r.error(C)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=a?function(){try{a()}catch(I){r.error(I)}finally{this.unsubscribe()}}:e.prototype._complete,f}return t.prototype.unsubscribe=function(){var r;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((r=this.onFinalize)===null||r===void 0||r.call(this))}},t}(hQc.Subscriber);fle.OperatorSubscriber=Ezi});var awt=H(owt=>{"use strict";Object.defineProperty(owt,"__esModule",{value:!0});owt.refCount=void 0;var CQc=qg(),_Qc=Cd();function yQc(){return CQc.operate(function(e,t){var r=null;e._refCount++;var n=_Qc.createOperatorSubscriber(t,void 0,void 0,void 0,function(){if(!e||e._refCount<=0||0<--e._refCount){r=null;return}var a=e._connection,o=r;r=null,a&&(!o||a===o)&&a.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}owt.refCount=yQc});var Z8e=H(bke=>{"use strict";var bQc=bke&&bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(bke,"__esModule",{value:!0});bke.ConnectableObservable=void 0;var EQc=ub(),Szi=TO(),SQc=awt(),vQc=Cd(),BQc=qg(),wQc=function(e){bQc(t,e);function t(r,n){var a=e.call(this)||this;return a.source=r,a.subjectFactory=n,a._subject=null,a._refCount=0,a._connection=null,BQc.hasLift(r)&&(a.lift=r.lift),a}return t.prototype._subscribe=function(r){return this.getSubject().subscribe(r)},t.prototype.getSubject=function(){var r=this._subject;return(!r||r.isStopped)&&(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var r=this._connection;this._subject=this._connection=null,r?.unsubscribe()},t.prototype.connect=function(){var r=this,n=this._connection;if(!n){n=this._connection=new Szi.Subscription;var a=this.getSubject();n.add(this.source.subscribe(vQc.createOperatorSubscriber(a,void 0,function(){r._teardown(),a.complete()},function(o){r._teardown(),a.error(o)},function(){return r._teardown()}))),n.closed&&(this._connection=null,n=Szi.Subscription.EMPTY)}return n},t.prototype.refCount=function(){return SQc.refCount()(this)},t}(EQc.Observable);bke.ConnectableObservable=wQc});var vzi=H(L8e=>{"use strict";Object.defineProperty(L8e,"__esModule",{value:!0});L8e.performanceTimestampProvider=void 0;L8e.performanceTimestampProvider={now:function(){return(L8e.performanceTimestampProvider.delegate||performance).now()},delegate:void 0}});var lOr=H(k4=>{"use strict";var Bzi=k4&&k4.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},wzi=k4&&k4.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(cwt,"__esModule",{value:!0});cwt.animationFrames=void 0;var RQc=ub(),NQc=vzi(),Tzi=lOr();function DQc(e){return e?Rzi(e):kQc}cwt.animationFrames=DQc;function Rzi(e){return new RQc.Observable(function(t){var r=e||NQc.performanceTimestampProvider,n=r.now(),a=0,o=function(){t.closed||(a=Tzi.animationFrameProvider.requestAnimationFrame(function(l){a=0;var A=r.now();t.next({timestamp:e?A:l,elapsed:A-n}),o()}))};return o(),function(){a&&Tzi.animationFrameProvider.cancelAnimationFrame(a)}})}var kQc=Rzi()});var uOr=H(lwt=>{"use strict";Object.defineProperty(lwt,"__esModule",{value:!0});lwt.ObjectUnsubscribedError=void 0;var xQc=ple();lwt.ObjectUnsubscribedError=xQc.createErrorClass(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})});var ix=H(Xj=>{"use strict";var kzi=Xj&&Xj.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),GQc=Xj&&Xj.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Xj,"__esModule",{value:!0});Xj.AnonymousSubject=Xj.Subject=void 0;var Dzi=ub(),AOr=TO(),FQc=uOr(),ZQc=ste(),gOr=twt(),xzi=function(e){kzi(t,e);function t(){var r=e.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return t.prototype.lift=function(r){var n=new dOr(this,this);return n.operator=r,n},t.prototype._throwIfClosed=function(){if(this.closed)throw new FQc.ObjectUnsubscribedError},t.prototype.next=function(r){var n=this;gOr.errorContext(function(){var a,o;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var l=GQc(n.currentObservers),A=l.next();!A.done;A=l.next()){var f=A.value;f.next(r)}}catch(I){a={error:I}}finally{try{A&&!A.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}}})},t.prototype.error=function(r){var n=this;gOr.errorContext(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var a=n.observers;a.length;)a.shift().error(r)}})},t.prototype.complete=function(){var r=this;gOr.errorContext(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,a=this,o=a.hasError,l=a.isStopped,A=a.observers;return o||l?AOr.EMPTY_SUBSCRIPTION:(this.currentObservers=null,A.push(r),new AOr.Subscription(function(){n.currentObservers=null,ZQc.arrRemove(A,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n.thrownError,l=n.isStopped;a?r.error(o):l&&r.complete()},t.prototype.asObservable=function(){var r=new Dzi.Observable;return r.source=this,r},t.create=function(r,n){return new dOr(r,n)},t}(Dzi.Observable);Xj.Subject=xzi;var dOr=function(e){kzi(t,e);function t(r,n){var a=e.call(this)||this;return a.destination=r,a.source=n,a}return t.prototype.next=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.next)===null||a===void 0||a.call(n,r)},t.prototype.error=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.error)===null||a===void 0||a.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,a;return(a=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&a!==void 0?a:AOr.EMPTY_SUBSCRIPTION},t}(xzi);Xj.AnonymousSubject=dOr});var pOr=H(Eke=>{"use strict";var LQc=Eke&&Eke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Eke,"__esModule",{value:!0});Eke.BehaviorSubject=void 0;var VQc=ix(),PQc=function(e){LQc(t,e);function t(r){var n=e.call(this)||this;return n._value=r,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var n=e.prototype._subscribe.call(this,r);return!n.closed&&r.next(this._value),n},t.prototype.getValue=function(){var r=this,n=r.hasError,a=r.thrownError,o=r._value;if(n)throw a;return this._throwIfClosed(),o},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(VQc.Subject);Eke.BehaviorSubject=PQc});var uwt=H(V8e=>{"use strict";Object.defineProperty(V8e,"__esModule",{value:!0});V8e.dateTimestampProvider=void 0;V8e.dateTimestampProvider={now:function(){return(V8e.dateTimestampProvider.delegate||Date).now()},delegate:void 0}});var gwt=H(Ske=>{"use strict";var WQc=Ske&&Ske.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ske,"__esModule",{value:!0});Ske.ReplaySubject=void 0;var OQc=ix(),MQc=uwt(),HQc=function(e){WQc(t,e);function t(r,n,a){r===void 0&&(r=1/0),n===void 0&&(n=1/0),a===void 0&&(a=MQc.dateTimestampProvider);var o=e.call(this)||this;return o._bufferSize=r,o._windowTime=n,o._timestampProvider=a,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,r),o._windowTime=Math.max(1,n),o}return t.prototype.next=function(r){var n=this,a=n.isStopped,o=n._buffer,l=n._infiniteTimeWindow,A=n._timestampProvider,f=n._windowTime;a||(o.push(r),!l&&o.push(A.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),a=this,o=a._infiniteTimeWindow,l=a._buffer,A=l.slice(),f=0;f{"use strict";var YQc=vke&&vke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(vke,"__esModule",{value:!0});vke.AsyncSubject=void 0;var QQc=ix(),XQc=function(e){YQc(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._value=null,r._hasValue=!1,r._isComplete=!1,r}return t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n._hasValue,l=n._value,A=n.thrownError,f=n.isStopped,I=n._isComplete;a?r.error(A):(f||I)&&(o&&r.next(l),r.complete())},t.prototype.next=function(r){this.isStopped||(this._value=r,this._hasValue=!0)},t.prototype.complete=function(){var r=this,n=r._hasValue,a=r._value,o=r._isComplete;o||(this._isComplete=!0,n&&e.prototype.next.call(this,a),e.prototype.complete.call(this))},t}(QQc.Subject);vke.AsyncSubject=XQc});var Gzi=H(Bke=>{"use strict";var JQc=Bke&&Bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Bke,"__esModule",{value:!0});Bke.Action=void 0;var UQc=TO(),KQc=function(e){JQc(t,e);function t(r,n){return e.call(this)||this}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),this},t}(UQc.Subscription);Bke.Action=KQc});var Lzi=H(Jj=>{"use strict";var Fzi=Jj&&Jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Zzi=Jj&&Jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var jQc=wke&&wke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(wke,"__esModule",{value:!0});wke.AsyncAction=void 0;var zQc=Gzi(),Vzi=Lzi(),qQc=ste(),$Qc=function(e){jQc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a.pending=!1,a}return t.prototype.schedule=function(r,n){var a;if(n===void 0&&(n=0),this.closed)return this;this.state=r;var o=this.id,l=this.scheduler;return o!=null&&(this.id=this.recycleAsyncId(l,o,n)),this.pending=!0,this.delay=n,this.id=(a=this.id)!==null&&a!==void 0?a:this.requestAsyncId(l,this.id,n),this},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),Vzi.intervalProvider.setInterval(r.flush.bind(r,this),a)},t.prototype.recycleAsyncId=function(r,n,a){if(a===void 0&&(a=0),a!=null&&this.delay===a&&this.pending===!1)return n;n!=null&&Vzi.intervalProvider.clearInterval(n)},t.prototype.execute=function(r,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var a=this._execute(r,n);if(a)return a;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(r,n){var a=!1,o;try{this.work(r)}catch(l){a=!0,o=l||new Error("Scheduled action threw falsy error")}if(a)return this.unsubscribe(),o},t.prototype.unsubscribe=function(){if(!this.closed){var r=this,n=r.id,a=r.scheduler,o=a.actions;this.work=this.state=this.scheduler=null,this.pending=!1,qQc.arrRemove(o,this),n!=null&&(this.id=this.recycleAsyncId(a,n,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(zQc.Action);wke.AsyncAction=$Qc});var Wzi=H(Rke=>{"use strict";Object.defineProperty(Rke,"__esModule",{value:!0});Rke.TestTools=Rke.Immediate=void 0;var eXc=1,fOr,dwt={};function Pzi(e){return e in dwt?(delete dwt[e],!0):!1}Rke.Immediate={setImmediate:function(e){var t=eXc++;return dwt[t]=!0,fOr||(fOr=Promise.resolve()),fOr.then(function(){return Pzi(t)&&e()}),t},clearImmediate:function(e){Pzi(e)}};Rke.TestTools={pending:function(){return Object.keys(dwt).length}}});var Mzi=H(Uj=>{"use strict";var tXc=Uj&&Uj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},rXc=Uj&&Uj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var sXc=Nke&&Nke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Nke,"__esModule",{value:!0});Nke.AsapAction=void 0;var oXc=Tke(),Hzi=Mzi(),aXc=function(e){sXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=Hzi.immediateProvider.setImmediate(r.flush.bind(r,void 0))))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(Hzi.immediateProvider.clearImmediate(n),r._scheduled===n&&(r._scheduled=void 0))},t}(oXc.AsyncAction);Nke.AsapAction=aXc});var IOr=H(pwt=>{"use strict";Object.defineProperty(pwt,"__esModule",{value:!0});pwt.Scheduler=void 0;var cXc=uwt(),lXc=function(){function e(t,r){r===void 0&&(r=e.now),this.schedulerActionCtor=t,this.now=r}return e.prototype.schedule=function(t,r,n){return r===void 0&&(r=0),new this.schedulerActionCtor(this,t).schedule(n,r)},e.now=cXc.dateTimestampProvider.now,e}();pwt.Scheduler=lXc});var kke=H(Dke=>{"use strict";var uXc=Dke&&Dke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Dke,"__esModule",{value:!0});Dke.AsyncScheduler=void 0;var Qzi=IOr(),gXc=function(e){uXc(t,e);function t(r,n){n===void 0&&(n=Qzi.Scheduler.now);var a=e.call(this,r,n)||this;return a.actions=[],a._active=!1,a}return t.prototype.flush=function(r){var n=this.actions;if(this._active){n.push(r);return}var a;this._active=!0;do if(a=r.execute(r.state,r.delay))break;while(r=n.shift());if(this._active=!1,a){for(;r=n.shift();)r.unsubscribe();throw a}},t}(Qzi.Scheduler);Dke.AsyncScheduler=gXc});var Xzi=H(xke=>{"use strict";var AXc=xke&&xke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(xke,"__esModule",{value:!0});xke.AsapScheduler=void 0;var dXc=kke(),pXc=function(e){AXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(dXc.AsyncScheduler);xke.AsapScheduler=pXc});var Jzi=H(g_e=>{"use strict";Object.defineProperty(g_e,"__esModule",{value:!0});g_e.asap=g_e.asapScheduler=void 0;var fXc=Yzi(),IXc=Xzi();g_e.asapScheduler=new IXc.AsapScheduler(fXc.AsapAction);g_e.asap=g_e.asapScheduler});var FV=H(A_e=>{"use strict";Object.defineProperty(A_e,"__esModule",{value:!0});A_e.async=A_e.asyncScheduler=void 0;var hXc=Tke(),mXc=kke();A_e.asyncScheduler=new mXc.AsyncScheduler(hXc.AsyncAction);A_e.async=A_e.asyncScheduler});var Uzi=H(Gke=>{"use strict";var CXc=Gke&&Gke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Gke,"__esModule",{value:!0});Gke.QueueAction=void 0;var _Xc=Tke(),yXc=function(e){CXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),n>0?e.prototype.schedule.call(this,r,n):(this.delay=n,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,n){return n>0||this.closed?e.prototype.execute.call(this,r,n):this._execute(r,n)},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!=null&&a>0||a==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.flush(this),0)},t}(_Xc.AsyncAction);Gke.QueueAction=yXc});var Kzi=H(Fke=>{"use strict";var bXc=Fke&&Fke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Fke,"__esModule",{value:!0});Fke.QueueScheduler=void 0;var EXc=kke(),SXc=function(e){bXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(EXc.AsyncScheduler);Fke.QueueScheduler=SXc});var jzi=H(d_e=>{"use strict";Object.defineProperty(d_e,"__esModule",{value:!0});d_e.queue=d_e.queueScheduler=void 0;var vXc=Uzi(),BXc=Kzi();d_e.queueScheduler=new BXc.QueueScheduler(vXc.QueueAction);d_e.queue=d_e.queueScheduler});var qzi=H(Zke=>{"use strict";var wXc=Zke&&Zke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Zke,"__esModule",{value:!0});Zke.AnimationFrameAction=void 0;var TXc=Tke(),zzi=lOr(),RXc=function(e){wXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=zzi.animationFrameProvider.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(zzi.animationFrameProvider.cancelAnimationFrame(n),r._scheduled=void 0)},t}(TXc.AsyncAction);Zke.AnimationFrameAction=RXc});var $zi=H(Lke=>{"use strict";var NXc=Lke&&Lke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Lke,"__esModule",{value:!0});Lke.AnimationFrameScheduler=void 0;var DXc=kke(),kXc=function(e){NXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(DXc.AsyncScheduler);Lke.AnimationFrameScheduler=kXc});var eqi=H(p_e=>{"use strict";Object.defineProperty(p_e,"__esModule",{value:!0});p_e.animationFrame=p_e.animationFrameScheduler=void 0;var xXc=qzi(),GXc=$zi();p_e.animationFrameScheduler=new GXc.AnimationFrameScheduler(xXc.AnimationFrameAction);p_e.animationFrame=p_e.animationFrameScheduler});var nqi=H(Ile=>{"use strict";var tqi=Ile&&Ile.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ile,"__esModule",{value:!0});Ile.VirtualAction=Ile.VirtualTimeScheduler=void 0;var FXc=Tke(),ZXc=TO(),LXc=kke(),VXc=function(e){tqi(t,e);function t(r,n){r===void 0&&(r=rqi),n===void 0&&(n=1/0);var a=e.call(this,r,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return t.prototype.flush=function(){for(var r=this,n=r.actions,a=r.maxFrames,o,l;(l=n[0])&&l.delay<=a&&(n.shift(),this.frame=l.delay,!(o=l.execute(l.state,l.delay))););if(o){for(;l=n.shift();)l.unsubscribe();throw o}},t.frameTimeFactor=10,t}(LXc.AsyncScheduler);Ile.VirtualTimeScheduler=VXc;var rqi=function(e){tqi(t,e);function t(r,n,a){a===void 0&&(a=r.index+=1);var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o.index=a,o.active=!0,o.index=r.index=a,o}return t.prototype.schedule=function(r,n){if(n===void 0&&(n=0),Number.isFinite(n)){if(!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var a=new t(this.scheduler,this.work);return this.add(a),a.schedule(r,n)}else return ZXc.Subscription.EMPTY},t.prototype.requestAsyncId=function(r,n,a){a===void 0&&(a=0),this.delay=r.frame+a;var o=r.actions;return o.push(this),o.sort(t.sortActions),1},t.prototype.recycleAsyncId=function(r,n,a){a===void 0&&(a=0)},t.prototype._execute=function(r,n){if(this.active===!0)return e.prototype._execute.call(this,r,n)},t.sortActions=function(r,n){return r.delay===n.delay?r.index===n.index?0:r.index>n.index?1:-1:r.delay>n.delay?1:-1},t}(FXc.AsyncAction);Ile.VirtualAction=rqi});var x4=H(f_e=>{"use strict";Object.defineProperty(f_e,"__esModule",{value:!0});f_e.empty=f_e.EMPTY=void 0;var iqi=ub();f_e.EMPTY=new iqi.Observable(function(e){return e.complete()});function PXc(e){return e?WXc(e):f_e.EMPTY}f_e.empty=PXc;function WXc(e){return new iqi.Observable(function(t){return e.schedule(function(){return t.complete()})})}});var P8e=H(fwt=>{"use strict";Object.defineProperty(fwt,"__esModule",{value:!0});fwt.isScheduler=void 0;var OXc=Sy();function MXc(e){return e&&OXc.isFunction(e.schedule)}fwt.isScheduler=MXc});var ZV=H(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});hle.popNumber=hle.popScheduler=hle.popResultSelector=void 0;var HXc=Sy(),YXc=P8e();function hOr(e){return e[e.length-1]}function QXc(e){return HXc.isFunction(hOr(e))?e.pop():void 0}hle.popResultSelector=QXc;function XXc(e){return YXc.isScheduler(hOr(e))?e.pop():void 0}hle.popScheduler=XXc;function JXc(e,t){return typeof hOr(e)=="number"?e.pop():t}hle.popNumber=JXc});var hwt=H(Iwt=>{"use strict";Object.defineProperty(Iwt,"__esModule",{value:!0});Iwt.isArrayLike=void 0;Iwt.isArrayLike=function(e){return e&&typeof e.length=="number"&&typeof e!="function"}});var mOr=H(mwt=>{"use strict";Object.defineProperty(mwt,"__esModule",{value:!0});mwt.isPromise=void 0;var UXc=Sy();function KXc(e){return UXc.isFunction(e?.then)}mwt.isPromise=KXc});var COr=H(Cwt=>{"use strict";Object.defineProperty(Cwt,"__esModule",{value:!0});Cwt.isInteropObservable=void 0;var jXc=G8e(),zXc=Sy();function qXc(e){return zXc.isFunction(e[jXc.observable])}Cwt.isInteropObservable=qXc});var _Or=H(_wt=>{"use strict";Object.defineProperty(_wt,"__esModule",{value:!0});_wt.isAsyncIterable=void 0;var $Xc=Sy();function e4c(e){return Symbol.asyncIterator&&$Xc.isFunction(e?.[Symbol.asyncIterator])}_wt.isAsyncIterable=e4c});var yOr=H(ywt=>{"use strict";Object.defineProperty(ywt,"__esModule",{value:!0});ywt.createInvalidObservableTypeError=void 0;function t4c(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}ywt.createInvalidObservableTypeError=t4c});var bOr=H(Vke=>{"use strict";Object.defineProperty(Vke,"__esModule",{value:!0});Vke.iterator=Vke.getSymbolIterator=void 0;function sqi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}Vke.getSymbolIterator=sqi;Vke.iterator=sqi()});var EOr=H(bwt=>{"use strict";Object.defineProperty(bwt,"__esModule",{value:!0});bwt.isIterable=void 0;var r4c=bOr(),n4c=Sy();function i4c(e){return n4c.isFunction(e?.[r4c.iterator])}bwt.isIterable=i4c});var Ewt=H(CH=>{"use strict";var s4c=CH&&CH.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]1||A(E,N)})})}function A(E,N){try{f(n[E](N))}catch(B){b(o[0][3],B)}}function f(E){E.value instanceof Pke?Promise.resolve(E.value.v).then(I,C):b(o[0][2],E)}function I(E){A("next",E)}function C(E){A("throw",E)}function b(E,N){E(N),o.shift(),o.length&&A(o[0][0],o[0][1])}};Object.defineProperty(CH,"__esModule",{value:!0});CH.isReadableStreamLike=CH.readableStreamLikeToAsyncGenerator=void 0;var a4c=Sy();function c4c(e){return o4c(this,arguments,function(){var r,n,a,o;return s4c(this,function(l){switch(l.label){case 0:r=e.getReader(),l.label=1;case 1:l.trys.push([1,,9,10]),l.label=2;case 2:return[4,Pke(r.read())];case 3:return n=l.sent(),a=n.value,o=n.done,o?[4,Pke(void 0)]:[3,5];case 4:return[2,l.sent()];case 5:return[4,Pke(a)];case 6:return[4,l.sent()];case 7:return l.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}CH.readableStreamLikeToAsyncGenerator=c4c;function l4c(e){return a4c.isFunction(e?.getReader)}CH.isReadableStreamLike=l4c});var uh=H(G2=>{"use strict";var u4c=G2&&G2.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})},g4c=G2&&G2.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(G2,"__esModule",{value:!0});G2.fromReadableStreamLike=G2.fromAsyncIterable=G2.fromIterable=G2.fromPromise=G2.fromArrayLike=G2.fromInteropObservable=G2.innerFrom=void 0;var d4c=hwt(),p4c=mOr(),Wke=ub(),f4c=COr(),I4c=_Or(),h4c=yOr(),m4c=EOr(),oqi=Ewt(),C4c=Sy(),_4c=rOr(),y4c=G8e();function b4c(e){if(e instanceof Wke.Observable)return e;if(e!=null){if(f4c.isInteropObservable(e))return aqi(e);if(d4c.isArrayLike(e))return cqi(e);if(p4c.isPromise(e))return lqi(e);if(I4c.isAsyncIterable(e))return vOr(e);if(m4c.isIterable(e))return uqi(e);if(oqi.isReadableStreamLike(e))return gqi(e)}throw h4c.createInvalidObservableTypeError(e)}G2.innerFrom=b4c;function aqi(e){return new Wke.Observable(function(t){var r=e[y4c.observable]();if(C4c.isFunction(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}G2.fromInteropObservable=aqi;function cqi(e){return new Wke.Observable(function(t){for(var r=0;r{"use strict";Object.defineProperty(Swt,"__esModule",{value:!0});Swt.executeSchedule=void 0;function S4c(e,t,r,n,a){n===void 0&&(n=0),a===void 0&&(a=!1);var o=t.schedule(function(){r(),a?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(o),!a)return o}Swt.executeSchedule=S4c});var Oke=H(vwt=>{"use strict";Object.defineProperty(vwt,"__esModule",{value:!0});vwt.observeOn=void 0;var BOr=ote(),v4c=qg(),B4c=Cd();function w4c(e,t){return t===void 0&&(t=0),v4c.operate(function(r,n){r.subscribe(B4c.createOperatorSubscriber(n,function(a){return BOr.executeSchedule(n,e,function(){return n.next(a)},t)},function(){return BOr.executeSchedule(n,e,function(){return n.complete()},t)},function(a){return BOr.executeSchedule(n,e,function(){return n.error(a)},t)}))})}vwt.observeOn=w4c});var Mke=H(Bwt=>{"use strict";Object.defineProperty(Bwt,"__esModule",{value:!0});Bwt.subscribeOn=void 0;var T4c=qg();function R4c(e,t){return t===void 0&&(t=0),T4c.operate(function(r,n){n.add(e.schedule(function(){return r.subscribe(n)},t))})}Bwt.subscribeOn=R4c});var Aqi=H(wwt=>{"use strict";Object.defineProperty(wwt,"__esModule",{value:!0});wwt.scheduleObservable=void 0;var N4c=uh(),D4c=Oke(),k4c=Mke();function x4c(e,t){return N4c.innerFrom(e).pipe(k4c.subscribeOn(t),D4c.observeOn(t))}wwt.scheduleObservable=x4c});var dqi=H(Twt=>{"use strict";Object.defineProperty(Twt,"__esModule",{value:!0});Twt.schedulePromise=void 0;var G4c=uh(),F4c=Oke(),Z4c=Mke();function L4c(e,t){return G4c.innerFrom(e).pipe(Z4c.subscribeOn(t),F4c.observeOn(t))}Twt.schedulePromise=L4c});var pqi=H(Rwt=>{"use strict";Object.defineProperty(Rwt,"__esModule",{value:!0});Rwt.scheduleArray=void 0;var V4c=ub();function P4c(e,t){return new V4c.Observable(function(r){var n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}Rwt.scheduleArray=P4c});var wOr=H(Nwt=>{"use strict";Object.defineProperty(Nwt,"__esModule",{value:!0});Nwt.scheduleIterable=void 0;var W4c=ub(),O4c=bOr(),M4c=Sy(),fqi=ote();function H4c(e,t){return new W4c.Observable(function(r){var n;return fqi.executeSchedule(r,t,function(){n=e[O4c.iterator](),fqi.executeSchedule(r,t,function(){var a,o,l;try{a=n.next(),o=a.value,l=a.done}catch(A){r.error(A);return}l?r.complete():r.next(o)},0,!0)}),function(){return M4c.isFunction(n?.return)&&n.return()}})}Nwt.scheduleIterable=H4c});var TOr=H(Dwt=>{"use strict";Object.defineProperty(Dwt,"__esModule",{value:!0});Dwt.scheduleAsyncIterable=void 0;var Y4c=ub(),Iqi=ote();function Q4c(e,t){if(!e)throw new Error("Iterable cannot be null");return new Y4c.Observable(function(r){Iqi.executeSchedule(r,t,function(){var n=e[Symbol.asyncIterator]();Iqi.executeSchedule(r,t,function(){n.next().then(function(a){a.done?r.complete():r.next(a.value)})},0,!0)})})}Dwt.scheduleAsyncIterable=Q4c});var hqi=H(kwt=>{"use strict";Object.defineProperty(kwt,"__esModule",{value:!0});kwt.scheduleReadableStreamLike=void 0;var X4c=TOr(),J4c=Ewt();function U4c(e,t){return X4c.scheduleAsyncIterable(J4c.readableStreamLikeToAsyncGenerator(e),t)}kwt.scheduleReadableStreamLike=U4c});var ROr=H(xwt=>{"use strict";Object.defineProperty(xwt,"__esModule",{value:!0});xwt.scheduled=void 0;var K4c=Aqi(),j4c=dqi(),z4c=pqi(),q4c=wOr(),$4c=TOr(),eJc=COr(),tJc=mOr(),rJc=hwt(),nJc=EOr(),iJc=_Or(),sJc=yOr(),oJc=Ewt(),aJc=hqi();function cJc(e,t){if(e!=null){if(eJc.isInteropObservable(e))return K4c.scheduleObservable(e,t);if(rJc.isArrayLike(e))return z4c.scheduleArray(e,t);if(tJc.isPromise(e))return j4c.schedulePromise(e,t);if(iJc.isAsyncIterable(e))return $4c.scheduleAsyncIterable(e,t);if(nJc.isIterable(e))return q4c.scheduleIterable(e,t);if(oJc.isReadableStreamLike(e))return aJc.scheduleReadableStreamLike(e,t)}throw sJc.createInvalidObservableTypeError(e)}xwt.scheduled=cJc});var ate=H(Gwt=>{"use strict";Object.defineProperty(Gwt,"__esModule",{value:!0});Gwt.from=void 0;var lJc=ROr(),uJc=uh();function gJc(e,t){return t?lJc.scheduled(e,t):uJc.innerFrom(e)}Gwt.from=gJc});var Zwt=H(Fwt=>{"use strict";Object.defineProperty(Fwt,"__esModule",{value:!0});Fwt.of=void 0;var AJc=ZV(),dJc=ate();function pJc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(Lwt,"__esModule",{value:!0});Lwt.throwError=void 0;var fJc=ub(),IJc=Sy();function hJc(e,t){var r=IJc.isFunction(e)?e:function(){return e},n=function(a){return a.error(r())};return new fJc.Observable(t?function(a){return t.schedule(n,0,a)}:n)}Lwt.throwError=hJc});var Vwt=H(cte=>{"use strict";Object.defineProperty(cte,"__esModule",{value:!0});cte.observeNotification=cte.Notification=cte.NotificationKind=void 0;var mJc=x4(),CJc=Zwt(),_Jc=NOr(),yJc=Sy(),bJc;(function(e){e.NEXT="N",e.ERROR="E",e.COMPLETE="C"})(bJc=cte.NotificationKind||(cte.NotificationKind={}));var EJc=function(){function e(t,r,n){this.kind=t,this.value=r,this.error=n,this.hasValue=t==="N"}return e.prototype.observe=function(t){return mqi(this,t)},e.prototype.do=function(t,r,n){var a=this,o=a.kind,l=a.value,A=a.error;return o==="N"?t?.(l):o==="E"?r?.(A):n?.()},e.prototype.accept=function(t,r,n){var a;return yJc.isFunction((a=t)===null||a===void 0?void 0:a.next)?this.observe(t):this.do(t,r,n)},e.prototype.toObservable=function(){var t=this,r=t.kind,n=t.value,a=t.error,o=r==="N"?CJc.of(n):r==="E"?_Jc.throwError(function(){return a}):r==="C"?mJc.EMPTY:0;if(!o)throw new TypeError("Unexpected notification kind "+r);return o},e.createNext=function(t){return new e("N",t)},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e}();cte.Notification=EJc;function mqi(e,t){var r,n,a,o=e,l=o.kind,A=o.value,f=o.error;if(typeof l!="string")throw new TypeError('Invalid notification, missing "kind"');l==="N"?(r=t.next)===null||r===void 0||r.call(t,A):l==="E"?(n=t.error)===null||n===void 0||n.call(t,f):(a=t.complete)===null||a===void 0||a.call(t)}cte.observeNotification=mqi});var _qi=H(Pwt=>{"use strict";Object.defineProperty(Pwt,"__esModule",{value:!0});Pwt.isObservable=void 0;var SJc=ub(),Cqi=Sy();function vJc(e){return!!e&&(e instanceof SJc.Observable||Cqi.isFunction(e.lift)&&Cqi.isFunction(e.subscribe))}Pwt.isObservable=vJc});var mle=H(Wwt=>{"use strict";Object.defineProperty(Wwt,"__esModule",{value:!0});Wwt.EmptyError=void 0;var BJc=ple();Wwt.EmptyError=BJc.createErrorClass(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})});var yqi=H(Owt=>{"use strict";Object.defineProperty(Owt,"__esModule",{value:!0});Owt.lastValueFrom=void 0;var wJc=mle();function TJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=!1,l;e.subscribe({next:function(A){l=A,o=!0},error:a,complete:function(){o?n(l):r?n(t.defaultValue):a(new wJc.EmptyError)}})})}Owt.lastValueFrom=TJc});var bqi=H(Mwt=>{"use strict";Object.defineProperty(Mwt,"__esModule",{value:!0});Mwt.firstValueFrom=void 0;var RJc=mle(),NJc=Cke();function DJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=new NJc.SafeSubscriber({next:function(l){n(l),o.unsubscribe()},error:a,complete:function(){r?n(t.defaultValue):a(new RJc.EmptyError)}});e.subscribe(o)})}Mwt.firstValueFrom=DJc});var DOr=H(Hwt=>{"use strict";Object.defineProperty(Hwt,"__esModule",{value:!0});Hwt.ArgumentOutOfRangeError=void 0;var kJc=ple();Hwt.ArgumentOutOfRangeError=kJc.createErrorClass(function(e){return function(){e(this),this.name="ArgumentOutOfRangeError",this.message="argument out of range"}})});var kOr=H(Ywt=>{"use strict";Object.defineProperty(Ywt,"__esModule",{value:!0});Ywt.NotFoundError=void 0;var xJc=ple();Ywt.NotFoundError=xJc.createErrorClass(function(e){return function(r){e(this),this.name="NotFoundError",this.message=r}})});var xOr=H(Qwt=>{"use strict";Object.defineProperty(Qwt,"__esModule",{value:!0});Qwt.SequenceError=void 0;var GJc=ple();Qwt.SequenceError=GJc.createErrorClass(function(e){return function(r){e(this),this.name="SequenceError",this.message=r}})});var Jwt=H(Xwt=>{"use strict";Object.defineProperty(Xwt,"__esModule",{value:!0});Xwt.isValidDate=void 0;function FJc(e){return e instanceof Date&&!isNaN(e)}Xwt.isValidDate=FJc});var W8e=H(I_e=>{"use strict";Object.defineProperty(I_e,"__esModule",{value:!0});I_e.timeout=I_e.TimeoutError=void 0;var ZJc=FV(),LJc=Jwt(),VJc=qg(),PJc=uh(),WJc=ple(),OJc=Cd(),MJc=ote();I_e.TimeoutError=WJc.createErrorClass(function(e){return function(r){r===void 0&&(r=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=r}});function HJc(e,t){var r=LJc.isValidDate(e)?{first:e}:typeof e=="number"?{each:e}:e,n=r.first,a=r.each,o=r.with,l=o===void 0?YJc:o,A=r.scheduler,f=A===void 0?t??ZJc.asyncScheduler:A,I=r.meta,C=I===void 0?null:I;if(n==null&&a==null)throw new TypeError("No timeout provided.");return VJc.operate(function(b,E){var N,B,F=null,Q=0,X=function(ae){B=MJc.executeSchedule(E,f,function(){try{N.unsubscribe(),PJc.innerFrom(l({meta:C,lastValue:F,seen:Q})).subscribe(E)}catch(ne){E.error(ne)}},ae)};N=b.subscribe(OJc.createOperatorSubscriber(E,function(ae){B?.unsubscribe(),Q++,E.next(F=ae),a>0&&X(a)},void 0,void 0,function(){B?.closed||B?.unsubscribe(),F=null})),!Q&&X(n!=null?typeof n=="number"?n:+n-f.now():a)})}I_e.timeout=HJc;function YJc(e){throw new I_e.TimeoutError(e)}});var lte=H(Uwt=>{"use strict";Object.defineProperty(Uwt,"__esModule",{value:!0});Uwt.map=void 0;var QJc=qg(),XJc=Cd();function JJc(e,t){return QJc.operate(function(r,n){var a=0;r.subscribe(XJc.createOperatorSubscriber(n,function(o){n.next(e.call(t,o,a++))}))})}Uwt.map=JJc});var _le=H(Cle=>{"use strict";var UJc=Cle&&Cle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},KJc=Cle&&Cle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var eUc=yle&&yle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Eqi=yle&&yle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(Kwt,"__esModule",{value:!0});Kwt.bindCallback=void 0;var aUc=FOr();function cUc(e,t,r){return aUc.bindCallbackInternals(!1,e,t,r)}Kwt.bindCallback=cUc});var vqi=H(jwt=>{"use strict";Object.defineProperty(jwt,"__esModule",{value:!0});jwt.bindNodeCallback=void 0;var lUc=FOr();function uUc(e,t,r){return lUc.bindCallbackInternals(!0,e,t,r)}jwt.bindNodeCallback=uUc});var ZOr=H(zwt=>{"use strict";Object.defineProperty(zwt,"__esModule",{value:!0});zwt.argsArgArrayOrObject=void 0;var gUc=Array.isArray,AUc=Object.getPrototypeOf,dUc=Object.prototype,pUc=Object.keys;function fUc(e){if(e.length===1){var t=e[0];if(gUc(t))return{args:t,keys:null};if(IUc(t)){var r=pUc(t);return{args:r.map(function(n){return t[n]}),keys:r}}}return{args:e,keys:null}}zwt.argsArgArrayOrObject=fUc;function IUc(e){return e&&typeof e=="object"&&AUc(e)===dUc}});var LOr=H(qwt=>{"use strict";Object.defineProperty(qwt,"__esModule",{value:!0});qwt.createObject=void 0;function hUc(e,t){return e.reduce(function(r,n,a){return r[n]=t[a],r},{})}qwt.createObject=hUc});var $wt=H(Hke=>{"use strict";Object.defineProperty(Hke,"__esModule",{value:!0});Hke.combineLatestInit=Hke.combineLatest=void 0;var mUc=ub(),CUc=ZOr(),Tqi=ate(),Rqi=nx(),_Uc=_le(),Bqi=ZV(),yUc=LOr(),bUc=Cd(),EUc=ote();function SUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(eTt,"__esModule",{value:!0});eTt.mergeInternals=void 0;var vUc=uh(),BUc=ote(),Dqi=Cd();function wUc(e,t,r,n,a,o,l,A){var f=[],I=0,C=0,b=!1,E=function(){b&&!f.length&&!I&&t.complete()},N=function(F){return I{"use strict";Object.defineProperty(rTt,"__esModule",{value:!0});rTt.mergeMap=void 0;var TUc=lte(),RUc=uh(),NUc=qg(),DUc=tTt(),kUc=Sy();function kqi(e,t,r){return r===void 0&&(r=1/0),kUc.isFunction(t)?kqi(function(n,a){return TUc.map(function(o,l){return t(n,o,a,l)})(RUc.innerFrom(e(n,a)))},r):(typeof t=="number"&&(r=t),NUc.operate(function(n,a){return DUc.mergeInternals(n,a,e,r)}))}rTt.mergeMap=kqi});var Yke=H(nTt=>{"use strict";Object.defineProperty(nTt,"__esModule",{value:!0});nTt.mergeAll=void 0;var xUc=Kj(),GUc=nx();function FUc(e){return e===void 0&&(e=1/0),xUc.mergeMap(GUc.identity,e)}nTt.mergeAll=FUc});var O8e=H(iTt=>{"use strict";Object.defineProperty(iTt,"__esModule",{value:!0});iTt.concatAll=void 0;var ZUc=Yke();function LUc(){return ZUc.mergeAll(1)}iTt.concatAll=LUc});var M8e=H(sTt=>{"use strict";Object.defineProperty(sTt,"__esModule",{value:!0});sTt.concat=void 0;var VUc=O8e(),PUc=ZV(),WUc=ate();function OUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(oTt,"__esModule",{value:!0});oTt.defer=void 0;var MUc=ub(),HUc=uh();function YUc(e){return new MUc.Observable(function(t){HUc.innerFrom(e()).subscribe(t)})}oTt.defer=YUc});var xqi=H(aTt=>{"use strict";Object.defineProperty(aTt,"__esModule",{value:!0});aTt.connectable=void 0;var QUc=ix(),XUc=ub(),JUc=H8e(),UUc={connector:function(){return new QUc.Subject},resetOnDisconnect:!0};function KUc(e,t){t===void 0&&(t=UUc);var r=null,n=t.connector,a=t.resetOnDisconnect,o=a===void 0?!0:a,l=n(),A=new XUc.Observable(function(f){return l.subscribe(f)});return A.connect=function(){return(!r||r.closed)&&(r=JUc.defer(function(){return e}).subscribe(l),o&&r.add(function(){return l=n()})),r},A}aTt.connectable=KUc});var Gqi=H(cTt=>{"use strict";Object.defineProperty(cTt,"__esModule",{value:!0});cTt.forkJoin=void 0;var jUc=ub(),zUc=ZOr(),qUc=uh(),$Uc=ZV(),eKc=Cd(),tKc=_le(),rKc=LOr();function nKc(){for(var e=[],t=0;t{"use strict";var iKc=Qke&&Qke.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o};Object.defineProperty(Qke,"__esModule",{value:!0});Qke.fromEvent=void 0;var sKc=uh(),oKc=ub(),aKc=Kj(),cKc=hwt(),h_e=Sy(),lKc=_le(),uKc=["addListener","removeListener"],gKc=["addEventListener","removeEventListener"],AKc=["on","off"];function VOr(e,t,r,n){if(h_e.isFunction(r)&&(n=r,r=void 0),n)return VOr(e,t,r).pipe(lKc.mapOneOrManyArgs(n));var a=iKc(fKc(e)?gKc.map(function(A){return function(f){return e[A](t,f,r)}}):dKc(e)?uKc.map(Fqi(e,t)):pKc(e)?AKc.map(Fqi(e,t)):[],2),o=a[0],l=a[1];if(!o&&cKc.isArrayLike(e))return aKc.mergeMap(function(A){return VOr(A,t,r)})(sKc.innerFrom(e));if(!o)throw new TypeError("Invalid event target");return new oKc.Observable(function(A){var f=function(){for(var I=[],C=0;C{"use strict";Object.defineProperty(lTt,"__esModule",{value:!0});lTt.fromEventPattern=void 0;var IKc=ub(),hKc=Sy(),mKc=_le();function Lqi(e,t,r){return r?Lqi(e,t).pipe(mKc.mapOneOrManyArgs(r)):new IKc.Observable(function(n){var a=function(){for(var l=[],A=0;A{"use strict";var CKc=Xke&&Xke.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]{"use strict";Object.defineProperty(uTt,"__esModule",{value:!0});uTt.iif=void 0;var SKc=H8e();function vKc(e,t,r){return SKc.defer(function(){return e()?t:r})}uTt.iif=vKc});var ble=H(gTt=>{"use strict";Object.defineProperty(gTt,"__esModule",{value:!0});gTt.timer=void 0;var BKc=ub(),wKc=FV(),TKc=P8e(),RKc=Jwt();function NKc(e,t,r){e===void 0&&(e=0),r===void 0&&(r=wKc.async);var n=-1;return t!=null&&(TKc.isScheduler(t)?r=t:n=t),new BKc.Observable(function(a){var o=RKc.isValidDate(e)?+e-r.now():e;o<0&&(o=0);var l=0;return r.schedule(function(){a.closed||(a.next(l++),0<=n?this.schedule(void 0,n):a.complete())},o)})}gTt.timer=NKc});var POr=H(ATt=>{"use strict";Object.defineProperty(ATt,"__esModule",{value:!0});ATt.interval=void 0;var DKc=FV(),kKc=ble();function xKc(e,t){return e===void 0&&(e=0),t===void 0&&(t=DKc.asyncScheduler),e<0&&(e=0),kKc.timer(e,e,t)}ATt.interval=xKc});var Hqi=H(dTt=>{"use strict";Object.defineProperty(dTt,"__esModule",{value:!0});dTt.merge=void 0;var GKc=Yke(),FKc=uh(),ZKc=x4(),Mqi=ZV(),LKc=ate();function VKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(m_e,"__esModule",{value:!0});m_e.never=m_e.NEVER=void 0;var PKc=ub(),WKc=rx();m_e.NEVER=new PKc.Observable(WKc.noop);function OKc(){return m_e.NEVER}m_e.never=OKc});var Ele=H(pTt=>{"use strict";Object.defineProperty(pTt,"__esModule",{value:!0});pTt.argsOrArgArray=void 0;var MKc=Array.isArray;function HKc(e){return e.length===1&&MKc(e[0])?e[0]:e}pTt.argsOrArgArray=HKc});var OOr=H(fTt=>{"use strict";Object.defineProperty(fTt,"__esModule",{value:!0});fTt.onErrorResumeNext=void 0;var YKc=ub(),QKc=Ele(),XKc=Cd(),Yqi=rx(),JKc=uh();function UKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(ITt,"__esModule",{value:!0});ITt.pairs=void 0;var KKc=ate();function jKc(e,t){return KKc.from(Object.entries(e),t)}ITt.pairs=jKc});var MOr=H(hTt=>{"use strict";Object.defineProperty(hTt,"__esModule",{value:!0});hTt.not=void 0;function zKc(e,t){return function(r,n){return!e.call(t,r,n)}}hTt.not=zKc});var ute=H(mTt=>{"use strict";Object.defineProperty(mTt,"__esModule",{value:!0});mTt.filter=void 0;var qKc=qg(),$Kc=Cd();function e8c(e,t){return qKc.operate(function(r,n){var a=0;r.subscribe($Kc.createOperatorSubscriber(n,function(o){return e.call(t,o,a++)&&n.next(o)}))})}mTt.filter=e8c});var Uqi=H(CTt=>{"use strict";Object.defineProperty(CTt,"__esModule",{value:!0});CTt.partition=void 0;var t8c=MOr(),Xqi=ute(),Jqi=uh();function r8c(e,t,r){return[Xqi.filter(t,r)(Jqi.innerFrom(e)),Xqi.filter(t8c.not(t,r))(Jqi.innerFrom(e))]}CTt.partition=r8c});var HOr=H(Jke=>{"use strict";Object.defineProperty(Jke,"__esModule",{value:!0});Jke.raceInit=Jke.race=void 0;var n8c=ub(),Kqi=uh(),i8c=Ele(),s8c=Cd();function o8c(){for(var e=[],t=0;t{"use strict";Object.defineProperty(_Tt,"__esModule",{value:!0});_Tt.range=void 0;var a8c=ub(),c8c=x4();function l8c(e,t,r){if(t==null&&(t=e,e=0),t<=0)return c8c.EMPTY;var n=t+e;return new a8c.Observable(r?function(a){var o=e;return r.schedule(function(){o{"use strict";Object.defineProperty(yTt,"__esModule",{value:!0});yTt.using=void 0;var u8c=ub(),g8c=uh(),A8c=x4();function d8c(e,t){return new u8c.Observable(function(r){var n=e(),a=t(n),o=a?g8c.innerFrom(a):A8c.EMPTY;return o.subscribe(r),function(){n&&n.unsubscribe()}})}yTt.using=d8c});var bTt=H(Sle=>{"use strict";var p8c=Sle&&Sle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},f8c=Sle&&Sle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty($qi,"__esModule",{value:!0})});var STt=H(ETt=>{"use strict";Object.defineProperty(ETt,"__esModule",{value:!0});ETt.audit=void 0;var E8c=qg(),S8c=uh(),t$i=Cd();function v8c(e){return E8c.operate(function(t,r){var n=!1,a=null,o=null,l=!1,A=function(){if(o?.unsubscribe(),o=null,n){n=!1;var I=a;a=null,r.next(I)}l&&r.complete()},f=function(){o=null,l&&r.complete()};t.subscribe(t$i.createOperatorSubscriber(r,function(I){n=!0,a=I,o||S8c.innerFrom(e(I)).subscribe(o=t$i.createOperatorSubscriber(r,A,f))},function(){l=!0,(!n||!o||o.closed)&&r.complete()}))})}ETt.audit=v8c});var YOr=H(vTt=>{"use strict";Object.defineProperty(vTt,"__esModule",{value:!0});vTt.auditTime=void 0;var B8c=FV(),w8c=STt(),T8c=ble();function R8c(e,t){return t===void 0&&(t=B8c.asyncScheduler),w8c.audit(function(){return T8c.timer(e,t)})}vTt.auditTime=R8c});var QOr=H(BTt=>{"use strict";Object.defineProperty(BTt,"__esModule",{value:!0});BTt.buffer=void 0;var N8c=qg(),D8c=rx(),r$i=Cd(),k8c=uh();function x8c(e){return N8c.operate(function(t,r){var n=[];return t.subscribe(r$i.createOperatorSubscriber(r,function(a){return n.push(a)},function(){r.next(n),r.complete()})),k8c.innerFrom(e).subscribe(r$i.createOperatorSubscriber(r,function(){var a=n;n=[],r.next(a)},D8c.noop)),function(){n=null}})}BTt.buffer=x8c});var JOr=H(Uke=>{"use strict";var XOr=Uke&&Uke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Uke,"__esModule",{value:!0});Uke.bufferCount=void 0;var G8c=qg(),F8c=Cd(),Z8c=ste();function L8c(e,t){return t===void 0&&(t=null),t=t??e,G8c.operate(function(r,n){var a=[],o=0;r.subscribe(F8c.createOperatorSubscriber(n,function(l){var A,f,I,C,b=null;o++%t===0&&a.push([]);try{for(var E=XOr(a),N=E.next();!N.done;N=E.next()){var B=N.value;B.push(l),e<=B.length&&(b=b??[],b.push(B))}}catch(X){A={error:X}}finally{try{N&&!N.done&&(f=E.return)&&f.call(E)}finally{if(A)throw A.error}}if(b)try{for(var F=XOr(b),Q=F.next();!Q.done;Q=F.next()){var B=Q.value;Z8c.arrRemove(a,B),n.next(B)}}catch(X){I={error:X}}finally{try{Q&&!Q.done&&(C=F.return)&&C.call(F)}finally{if(I)throw I.error}}},function(){var l,A;try{for(var f=XOr(a),I=f.next();!I.done;I=f.next()){var C=I.value;n.next(C)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}n.complete()},void 0,function(){a=null}))})}Uke.bufferCount=L8c});var UOr=H(Kke=>{"use strict";var V8c=Kke&&Kke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Kke,"__esModule",{value:!0});Kke.bufferTime=void 0;var P8c=TO(),W8c=qg(),O8c=Cd(),M8c=ste(),H8c=FV(),Y8c=ZV(),n$i=ote();function Q8c(e){for(var t,r,n=[],a=1;a=0?n$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=O8c.createOperatorSubscriber(I,function(F){var Q,X,ae=C.slice();try{for(var ne=V8c(ae),ce=ne.next();!ce.done;ce=ne.next()){var fe=ce.value,ue=fe.buffer;ue.push(F),A<=ue.length&&E(fe)}}catch(de){Q={error:de}}finally{try{ce&&!ce.done&&(X=ne.return)&&X.call(ne)}finally{if(Q)throw Q.error}}},function(){for(;C?.length;)I.next(C.shift().buffer);B?.unsubscribe(),I.complete(),I.unsubscribe()},void 0,function(){return C=null});f.subscribe(B)})}Kke.bufferTime=Q8c});var jOr=H(jke=>{"use strict";var X8c=jke&&jke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(jke,"__esModule",{value:!0});jke.bufferToggle=void 0;var J8c=TO(),U8c=qg(),i$i=uh(),KOr=Cd(),s$i=rx(),K8c=ste();function j8c(e,t){return U8c.operate(function(r,n){var a=[];i$i.innerFrom(e).subscribe(KOr.createOperatorSubscriber(n,function(o){var l=[];a.push(l);var A=new J8c.Subscription,f=function(){K8c.arrRemove(a,l),n.next(l),A.unsubscribe()};A.add(i$i.innerFrom(t(o)).subscribe(KOr.createOperatorSubscriber(n,f,s$i.noop)))},s$i.noop)),r.subscribe(KOr.createOperatorSubscriber(n,function(o){var l,A;try{for(var f=X8c(a),I=f.next();!I.done;I=f.next()){var C=I.value;C.push(o)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}},function(){for(;a.length>0;)n.next(a.shift());n.complete()}))})}jke.bufferToggle=j8c});var zOr=H(wTt=>{"use strict";Object.defineProperty(wTt,"__esModule",{value:!0});wTt.bufferWhen=void 0;var z8c=qg(),q8c=rx(),o$i=Cd(),$8c=uh();function ejc(e){return z8c.operate(function(t,r){var n=null,a=null,o=function(){a?.unsubscribe();var l=n;n=[],l&&r.next(l),$8c.innerFrom(e()).subscribe(a=o$i.createOperatorSubscriber(r,o,q8c.noop))};o(),t.subscribe(o$i.createOperatorSubscriber(r,function(l){return n?.push(l)},function(){n&&r.next(n),r.complete()},void 0,function(){return n=a=null}))})}wTt.bufferWhen=ejc});var qOr=H(TTt=>{"use strict";Object.defineProperty(TTt,"__esModule",{value:!0});TTt.catchError=void 0;var tjc=uh(),rjc=Cd(),njc=qg();function a$i(e){return njc.operate(function(t,r){var n=null,a=!1,o;n=t.subscribe(rjc.createOperatorSubscriber(r,void 0,void 0,function(l){o=tjc.innerFrom(e(l,a$i(e)(t))),n?(n.unsubscribe(),n=null,o.subscribe(r)):a=!0})),a&&(n.unsubscribe(),n=null,o.subscribe(r))})}TTt.catchError=a$i});var $Or=H(RTt=>{"use strict";Object.defineProperty(RTt,"__esModule",{value:!0});RTt.scanInternals=void 0;var ijc=Cd();function sjc(e,t,r,n,a){return function(o,l){var A=r,f=t,I=0;o.subscribe(ijc.createOperatorSubscriber(l,function(C){var b=I++;f=A?e(f,C,b):(A=!0,C),n&&l.next(f)},a&&function(){A&&l.next(f),l.complete()}))}}RTt.scanInternals=sjc});var C_e=H(NTt=>{"use strict";Object.defineProperty(NTt,"__esModule",{value:!0});NTt.reduce=void 0;var ojc=$Or(),ajc=qg();function cjc(e,t){return ajc.operate(ojc.scanInternals(e,t,arguments.length>=2,!1,!0))}NTt.reduce=cjc});var kTt=H(DTt=>{"use strict";Object.defineProperty(DTt,"__esModule",{value:!0});DTt.toArray=void 0;var ljc=C_e(),ujc=qg(),gjc=function(e,t){return e.push(t),e};function Ajc(){return ujc.operate(function(e,t){ljc.reduce(gjc,[])(e).subscribe(t)})}DTt.toArray=Ajc});var e3r=H(xTt=>{"use strict";Object.defineProperty(xTt,"__esModule",{value:!0});xTt.joinAllInternals=void 0;var djc=nx(),pjc=_le(),fjc=F8e(),Ijc=Kj(),hjc=kTt();function mjc(e,t){return fjc.pipe(hjc.toArray(),Ijc.mergeMap(function(r){return e(r)}),t?pjc.mapOneOrManyArgs(t):djc.identity)}xTt.joinAllInternals=mjc});var FTt=H(GTt=>{"use strict";Object.defineProperty(GTt,"__esModule",{value:!0});GTt.combineLatestAll=void 0;var Cjc=$wt(),_jc=e3r();function yjc(e){return _jc.joinAllInternals(Cjc.combineLatest,e)}GTt.combineLatestAll=yjc});var t3r=H(ZTt=>{"use strict";Object.defineProperty(ZTt,"__esModule",{value:!0});ZTt.combineAll=void 0;var bjc=FTt();ZTt.combineAll=bjc.combineLatestAll});var r3r=H(vle=>{"use strict";var c$i=vle&&vle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},l$i=vle&&vle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Rjc=Ble&&Ble.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Njc=Ble&&Ble.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(LTt,"__esModule",{value:!0});LTt.concatMap=void 0;var g$i=Kj(),xjc=Sy();function Gjc(e,t){return xjc.isFunction(t)?g$i.mergeMap(e,t,1):g$i.mergeMap(e,1)}LTt.concatMap=Gjc});var i3r=H(PTt=>{"use strict";Object.defineProperty(PTt,"__esModule",{value:!0});PTt.concatMapTo=void 0;var A$i=VTt(),Fjc=Sy();function Zjc(e,t){return Fjc.isFunction(t)?A$i.concatMap(function(){return e},t):A$i.concatMap(function(){return e})}PTt.concatMapTo=Zjc});var s3r=H(wle=>{"use strict";var Ljc=wle&&wle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Vjc=wle&&wle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Yjc=Tle&&Tle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Qjc=Tle&&Tle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(WTt,"__esModule",{value:!0});WTt.fromSubscribable=void 0;var Ujc=ub();function Kjc(e){return new Ujc.Observable(function(t){return e.subscribe(t)})}WTt.fromSubscribable=Kjc});var Y8e=H(OTt=>{"use strict";Object.defineProperty(OTt,"__esModule",{value:!0});OTt.connect=void 0;var jjc=ix(),zjc=uh(),qjc=qg(),$jc=d$i(),e6c={connector:function(){return new jjc.Subject}};function t6c(e,t){t===void 0&&(t=e6c);var r=t.connector;return qjc.operate(function(n,a){var o=r();zjc.innerFrom(e($jc.fromSubscribable(o))).subscribe(a),a.add(n.subscribe(o))})}OTt.connect=t6c});var a3r=H(MTt=>{"use strict";Object.defineProperty(MTt,"__esModule",{value:!0});MTt.count=void 0;var r6c=C_e();function n6c(e){return r6c.reduce(function(t,r,n){return!e||e(r,n)?t+1:t},0)}MTt.count=n6c});var c3r=H(HTt=>{"use strict";Object.defineProperty(HTt,"__esModule",{value:!0});HTt.debounce=void 0;var i6c=qg(),s6c=rx(),p$i=Cd(),o6c=uh();function a6c(e){return i6c.operate(function(t,r){var n=!1,a=null,o=null,l=function(){if(o?.unsubscribe(),o=null,n){n=!1;var A=a;a=null,r.next(A)}};t.subscribe(p$i.createOperatorSubscriber(r,function(A){o?.unsubscribe(),n=!0,a=A,o=p$i.createOperatorSubscriber(r,l,s6c.noop),o6c.innerFrom(e(A)).subscribe(o)},function(){l(),r.complete()},void 0,function(){a=o=null}))})}HTt.debounce=a6c});var l3r=H(YTt=>{"use strict";Object.defineProperty(YTt,"__esModule",{value:!0});YTt.debounceTime=void 0;var c6c=FV(),l6c=qg(),u6c=Cd();function g6c(e,t){return t===void 0&&(t=c6c.asyncScheduler),l6c.operate(function(r,n){var a=null,o=null,l=null,A=function(){if(a){a.unsubscribe(),a=null;var I=o;o=null,n.next(I)}};function f(){var I=l+e,C=t.now();if(C{"use strict";Object.defineProperty(QTt,"__esModule",{value:!0});QTt.defaultIfEmpty=void 0;var A6c=qg(),d6c=Cd();function p6c(e){return A6c.operate(function(t,r){var n=!1;t.subscribe(d6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){n||r.next(e),r.complete()}))})}QTt.defaultIfEmpty=p6c});var qke=H(XTt=>{"use strict";Object.defineProperty(XTt,"__esModule",{value:!0});XTt.take=void 0;var f6c=x4(),I6c=qg(),h6c=Cd();function m6c(e){return e<=0?function(){return f6c.EMPTY}:I6c.operate(function(t,r){var n=0;t.subscribe(h6c.createOperatorSubscriber(r,function(a){++n<=e&&(r.next(a),e<=n&&r.complete())}))})}XTt.take=m6c});var UTt=H(JTt=>{"use strict";Object.defineProperty(JTt,"__esModule",{value:!0});JTt.ignoreElements=void 0;var C6c=qg(),_6c=Cd(),y6c=rx();function b6c(){return C6c.operate(function(e,t){e.subscribe(_6c.createOperatorSubscriber(t,y6c.noop))})}JTt.ignoreElements=b6c});var jTt=H(KTt=>{"use strict";Object.defineProperty(KTt,"__esModule",{value:!0});KTt.mapTo=void 0;var E6c=lte();function S6c(e){return E6c.map(function(){return e})}KTt.mapTo=S6c});var qTt=H(zTt=>{"use strict";Object.defineProperty(zTt,"__esModule",{value:!0});zTt.delayWhen=void 0;var v6c=M8e(),f$i=qke(),B6c=UTt(),w6c=jTt(),T6c=Kj(),R6c=uh();function I$i(e,t){return t?function(r){return v6c.concat(t.pipe(f$i.take(1),B6c.ignoreElements()),r.pipe(I$i(e)))}:T6c.mergeMap(function(r,n){return R6c.innerFrom(e(r,n)).pipe(f$i.take(1),w6c.mapTo(r))})}zTt.delayWhen=I$i});var u3r=H($Tt=>{"use strict";Object.defineProperty($Tt,"__esModule",{value:!0});$Tt.delay=void 0;var N6c=FV(),D6c=qTt(),k6c=ble();function x6c(e,t){t===void 0&&(t=N6c.asyncScheduler);var r=k6c.timer(e,t);return D6c.delayWhen(function(){return r})}$Tt.delay=x6c});var g3r=H(eRt=>{"use strict";Object.defineProperty(eRt,"__esModule",{value:!0});eRt.dematerialize=void 0;var G6c=Vwt(),F6c=qg(),Z6c=Cd();function L6c(){return F6c.operate(function(e,t){e.subscribe(Z6c.createOperatorSubscriber(t,function(r){return G6c.observeNotification(r,t)}))})}eRt.dematerialize=L6c});var A3r=H(tRt=>{"use strict";Object.defineProperty(tRt,"__esModule",{value:!0});tRt.distinct=void 0;var V6c=qg(),h$i=Cd(),P6c=rx(),W6c=uh();function O6c(e,t){return V6c.operate(function(r,n){var a=new Set;r.subscribe(h$i.createOperatorSubscriber(n,function(o){var l=e?e(o):o;a.has(l)||(a.add(l),n.next(o))})),t&&W6c.innerFrom(t).subscribe(h$i.createOperatorSubscriber(n,function(){return a.clear()},P6c.noop))})}tRt.distinct=O6c});var nRt=H(rRt=>{"use strict";Object.defineProperty(rRt,"__esModule",{value:!0});rRt.distinctUntilChanged=void 0;var M6c=nx(),H6c=qg(),Y6c=Cd();function Q6c(e,t){return t===void 0&&(t=M6c.identity),e=e??X6c,H6c.operate(function(r,n){var a,o=!0;r.subscribe(Y6c.createOperatorSubscriber(n,function(l){var A=t(l);(o||!e(a,A))&&(o=!1,a=A,n.next(l))}))})}rRt.distinctUntilChanged=Q6c;function X6c(e,t){return e===t}});var d3r=H(iRt=>{"use strict";Object.defineProperty(iRt,"__esModule",{value:!0});iRt.distinctUntilKeyChanged=void 0;var J6c=nRt();function U6c(e,t){return J6c.distinctUntilChanged(function(r,n){return t?t(r[e],n[e]):r[e]===n[e]})}iRt.distinctUntilKeyChanged=U6c});var $ke=H(sRt=>{"use strict";Object.defineProperty(sRt,"__esModule",{value:!0});sRt.throwIfEmpty=void 0;var K6c=mle(),j6c=qg(),z6c=Cd();function q6c(e){return e===void 0&&(e=$6c),j6c.operate(function(t,r){var n=!1;t.subscribe(z6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){return n?r.complete():r.error(e())}))})}sRt.throwIfEmpty=q6c;function $6c(){return new K6c.EmptyError}});var p3r=H(oRt=>{"use strict";Object.defineProperty(oRt,"__esModule",{value:!0});oRt.elementAt=void 0;var m$i=DOr(),e7c=ute(),t7c=$ke(),r7c=zke(),n7c=qke();function i7c(e,t){if(e<0)throw new m$i.ArgumentOutOfRangeError;var r=arguments.length>=2;return function(n){return n.pipe(e7c.filter(function(a,o){return o===e}),n7c.take(1),r?r7c.defaultIfEmpty(t):t7c.throwIfEmpty(function(){return new m$i.ArgumentOutOfRangeError}))}}oRt.elementAt=i7c});var f3r=H(Rle=>{"use strict";var s7c=Rle&&Rle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},o7c=Rle&&Rle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(aRt,"__esModule",{value:!0});aRt.every=void 0;var u7c=qg(),g7c=Cd();function A7c(e,t){return u7c.operate(function(r,n){var a=0;r.subscribe(g7c.createOperatorSubscriber(n,function(o){e.call(t,o,a++,r)||(n.next(!1),n.complete())},function(){n.next(!0),n.complete()}))})}aRt.every=A7c});var lRt=H(cRt=>{"use strict";Object.defineProperty(cRt,"__esModule",{value:!0});cRt.exhaustMap=void 0;var d7c=lte(),C$i=uh(),p7c=qg(),_$i=Cd();function y$i(e,t){return t?function(r){return r.pipe(y$i(function(n,a){return C$i.innerFrom(e(n,a)).pipe(d7c.map(function(o,l){return t(n,o,a,l)}))}))}:p7c.operate(function(r,n){var a=0,o=null,l=!1;r.subscribe(_$i.createOperatorSubscriber(n,function(A){o||(o=_$i.createOperatorSubscriber(n,void 0,function(){o=null,l&&n.complete()}),C$i.innerFrom(e(A,a++)).subscribe(o))},function(){l=!0,!o&&n.complete()}))})}cRt.exhaustMap=y$i});var gRt=H(uRt=>{"use strict";Object.defineProperty(uRt,"__esModule",{value:!0});uRt.exhaustAll=void 0;var f7c=lRt(),I7c=nx();function h7c(){return f7c.exhaustMap(I7c.identity)}uRt.exhaustAll=h7c});var h3r=H(ARt=>{"use strict";Object.defineProperty(ARt,"__esModule",{value:!0});ARt.exhaust=void 0;var m7c=gRt();ARt.exhaust=m7c.exhaustAll});var m3r=H(dRt=>{"use strict";Object.defineProperty(dRt,"__esModule",{value:!0});dRt.expand=void 0;var C7c=qg(),_7c=tTt();function y7c(e,t,r){return t===void 0&&(t=1/0),t=(t||0)<1?1/0:t,C7c.operate(function(n,a){return _7c.mergeInternals(n,a,e,t,void 0,!0,r)})}dRt.expand=y7c});var C3r=H(pRt=>{"use strict";Object.defineProperty(pRt,"__esModule",{value:!0});pRt.finalize=void 0;var b7c=qg();function E7c(e){return b7c.operate(function(t,r){try{t.subscribe(r)}finally{r.add(e)}})}pRt.finalize=E7c});var fRt=H(exe=>{"use strict";Object.defineProperty(exe,"__esModule",{value:!0});exe.createFind=exe.find=void 0;var S7c=qg(),v7c=Cd();function B7c(e,t){return S7c.operate(b$i(e,t,"value"))}exe.find=B7c;function b$i(e,t,r){var n=r==="index";return function(a,o){var l=0;a.subscribe(v7c.createOperatorSubscriber(o,function(A){var f=l++;e.call(t,A,f,a)&&(o.next(n?f:A),o.complete())},function(){o.next(n?-1:void 0),o.complete()}))}}exe.createFind=b$i});var _3r=H(IRt=>{"use strict";Object.defineProperty(IRt,"__esModule",{value:!0});IRt.findIndex=void 0;var w7c=qg(),T7c=fRt();function R7c(e,t){return w7c.operate(T7c.createFind(e,t,"index"))}IRt.findIndex=R7c});var y3r=H(hRt=>{"use strict";Object.defineProperty(hRt,"__esModule",{value:!0});hRt.first=void 0;var N7c=mle(),D7c=ute(),k7c=qke(),x7c=zke(),G7c=$ke(),F7c=nx();function Z7c(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?D7c.filter(function(a,o){return e(a,o,n)}):F7c.identity,k7c.take(1),r?x7c.defaultIfEmpty(t):G7c.throwIfEmpty(function(){return new N7c.EmptyError}))}}hRt.first=Z7c});var b3r=H(mRt=>{"use strict";Object.defineProperty(mRt,"__esModule",{value:!0});mRt.groupBy=void 0;var L7c=ub(),V7c=uh(),P7c=ix(),W7c=qg(),E$i=Cd();function O7c(e,t,r,n){return W7c.operate(function(a,o){var l;!t||typeof t=="function"?l=t:(r=t.duration,l=t.element,n=t.connector);var A=new Map,f=function(B){A.forEach(B),B(o)},I=function(B){return f(function(F){return F.error(B)})},C=0,b=!1,E=new E$i.OperatorSubscriber(o,function(B){try{var F=e(B),Q=A.get(F);if(!Q){A.set(F,Q=n?n():new P7c.Subject);var X=N(F,Q);if(o.next(X),r){var ae=E$i.createOperatorSubscriber(Q,function(){Q.complete(),ae?.unsubscribe()},void 0,void 0,function(){return A.delete(F)});E.add(V7c.innerFrom(r(X)).subscribe(ae))}}Q.next(l?l(B):B)}catch(ne){I(ne)}},function(){return f(function(B){return B.complete()})},I,function(){return A.clear()},function(){return b=!0,C===0});a.subscribe(E);function N(B,F){var Q=new L7c.Observable(function(X){C++;var ae=F.subscribe(X);return function(){ae.unsubscribe(),--C===0&&b&&E.unsubscribe()}});return Q.key=B,Q}})}mRt.groupBy=O7c});var E3r=H(CRt=>{"use strict";Object.defineProperty(CRt,"__esModule",{value:!0});CRt.isEmpty=void 0;var M7c=qg(),H7c=Cd();function Y7c(){return M7c.operate(function(e,t){e.subscribe(H7c.createOperatorSubscriber(t,function(){t.next(!1),t.complete()},function(){t.next(!0),t.complete()}))})}CRt.isEmpty=Y7c});var _Rt=H(txe=>{"use strict";var Q7c=txe&&txe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(txe,"__esModule",{value:!0});txe.takeLast=void 0;var X7c=x4(),J7c=qg(),U7c=Cd();function K7c(e){return e<=0?function(){return X7c.EMPTY}:J7c.operate(function(t,r){var n=[];t.subscribe(U7c.createOperatorSubscriber(r,function(a){n.push(a),e{"use strict";Object.defineProperty(yRt,"__esModule",{value:!0});yRt.last=void 0;var j7c=mle(),z7c=ute(),q7c=_Rt(),$7c=$ke(),ezc=zke(),tzc=nx();function rzc(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?z7c.filter(function(a,o){return e(a,o,n)}):tzc.identity,q7c.takeLast(1),r?ezc.defaultIfEmpty(t):$7c.throwIfEmpty(function(){return new j7c.EmptyError}))}}yRt.last=rzc});var B3r=H(bRt=>{"use strict";Object.defineProperty(bRt,"__esModule",{value:!0});bRt.materialize=void 0;var v3r=Vwt(),nzc=qg(),izc=Cd();function szc(){return nzc.operate(function(e,t){e.subscribe(izc.createOperatorSubscriber(t,function(r){t.next(v3r.Notification.createNext(r))},function(){t.next(v3r.Notification.createComplete()),t.complete()},function(r){t.next(v3r.Notification.createError(r)),t.complete()}))})}bRt.materialize=szc});var w3r=H(ERt=>{"use strict";Object.defineProperty(ERt,"__esModule",{value:!0});ERt.max=void 0;var ozc=C_e(),azc=Sy();function czc(e){return ozc.reduce(azc.isFunction(e)?function(t,r){return e(t,r)>0?t:r}:function(t,r){return t>r?t:r})}ERt.max=czc});var T3r=H(SRt=>{"use strict";Object.defineProperty(SRt,"__esModule",{value:!0});SRt.flatMap=void 0;var lzc=Kj();SRt.flatMap=lzc.mergeMap});var R3r=H(vRt=>{"use strict";Object.defineProperty(vRt,"__esModule",{value:!0});vRt.mergeMapTo=void 0;var S$i=Kj(),uzc=Sy();function gzc(e,t,r){return r===void 0&&(r=1/0),uzc.isFunction(t)?S$i.mergeMap(function(){return e},t,r):(typeof t=="number"&&(r=t),S$i.mergeMap(function(){return e},r))}vRt.mergeMapTo=gzc});var N3r=H(BRt=>{"use strict";Object.defineProperty(BRt,"__esModule",{value:!0});BRt.mergeScan=void 0;var Azc=qg(),dzc=tTt();function pzc(e,t,r){return r===void 0&&(r=1/0),Azc.operate(function(n,a){var o=t;return dzc.mergeInternals(n,a,function(l,A){return e(o,l,A)},r,function(l){o=l},!1,void 0,function(){return o=null})})}BRt.mergeScan=pzc});var D3r=H(Nle=>{"use strict";var fzc=Nle&&Nle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Izc=Nle&&Nle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var bzc=Dle&&Dle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ezc=Dle&&Dle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(wRt,"__esModule",{value:!0});wRt.min=void 0;var Bzc=C_e(),wzc=Sy();function Tzc(e){return Bzc.reduce(wzc.isFunction(e)?function(t,r){return e(t,r)<0?t:r}:function(t,r){return t{"use strict";Object.defineProperty(TRt,"__esModule",{value:!0});TRt.multicast=void 0;var Rzc=Z8e(),B$i=Sy(),Nzc=Y8e();function Dzc(e,t){var r=B$i.isFunction(e)?e:function(){return e};return B$i.isFunction(t)?Nzc.connect(t,{connector:r}):function(n){return new Rzc.ConnectableObservable(n,r)}}TRt.multicast=Dzc});var G3r=H(jj=>{"use strict";var kzc=jj&&jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},xzc=jj&&jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(RRt,"__esModule",{value:!0});RRt.pairwise=void 0;var Zzc=qg(),Lzc=Cd();function Vzc(){return Zzc.operate(function(e,t){var r,n=!1;e.subscribe(Lzc.createOperatorSubscriber(t,function(a){var o=r;r=a,n&&t.next([o,a]),n=!0}))})}RRt.pairwise=Vzc});var Z3r=H(NRt=>{"use strict";Object.defineProperty(NRt,"__esModule",{value:!0});NRt.pluck=void 0;var Pzc=lte();function Wzc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(DRt,"__esModule",{value:!0});DRt.publish=void 0;var Ozc=ix(),Mzc=Q8e(),Hzc=Y8e();function Yzc(e){return e?function(t){return Hzc.connect(e)(t)}:function(t){return Mzc.multicast(new Ozc.Subject)(t)}}DRt.publish=Yzc});var V3r=H(kRt=>{"use strict";Object.defineProperty(kRt,"__esModule",{value:!0});kRt.publishBehavior=void 0;var Qzc=pOr(),Xzc=Z8e();function Jzc(e){return function(t){var r=new Qzc.BehaviorSubject(e);return new Xzc.ConnectableObservable(t,function(){return r})}}kRt.publishBehavior=Jzc});var P3r=H(xRt=>{"use strict";Object.defineProperty(xRt,"__esModule",{value:!0});xRt.publishLast=void 0;var Uzc=Awt(),Kzc=Z8e();function jzc(){return function(e){var t=new Uzc.AsyncSubject;return new Kzc.ConnectableObservable(e,function(){return t})}}xRt.publishLast=jzc});var W3r=H(GRt=>{"use strict";Object.defineProperty(GRt,"__esModule",{value:!0});GRt.publishReplay=void 0;var zzc=gwt(),qzc=Q8e(),T$i=Sy();function $zc(e,t,r,n){r&&!T$i.isFunction(r)&&(n=r);var a=T$i.isFunction(r)?r:void 0;return function(o){return qzc.multicast(new zzc.ReplaySubject(e,t,n),a)(o)}}GRt.publishReplay=$zc});var FRt=H(kle=>{"use strict";var eqc=kle&&kle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},tqc=kle&&kle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ZRt,"__esModule",{value:!0});ZRt.repeat=void 0;var oqc=x4(),aqc=qg(),R$i=Cd(),cqc=uh(),lqc=ble();function uqc(e){var t,r=1/0,n;return e!=null&&(typeof e=="object"?(t=e.count,r=t===void 0?1/0:t,n=e.delay):r=e),r<=0?function(){return oqc.EMPTY}:aqc.operate(function(a,o){var l=0,A,f=function(){if(A?.unsubscribe(),A=null,n!=null){var C=typeof n=="number"?lqc.timer(n):cqc.innerFrom(n(l)),b=R$i.createOperatorSubscriber(o,function(){b.unsubscribe(),I()});C.subscribe(b)}else I()},I=function(){var C=!1;A=a.subscribe(R$i.createOperatorSubscriber(o,void 0,function(){++l{"use strict";Object.defineProperty(LRt,"__esModule",{value:!0});LRt.repeatWhen=void 0;var gqc=uh(),Aqc=ix(),dqc=qg(),N$i=Cd();function pqc(e){return dqc.operate(function(t,r){var n,a=!1,o,l=!1,A=!1,f=function(){return A&&l&&(r.complete(),!0)},I=function(){return o||(o=new Aqc.Subject,gqc.innerFrom(e(o)).subscribe(N$i.createOperatorSubscriber(r,function(){n?C():a=!0},function(){l=!0,f()}))),o},C=function(){A=!1,n=t.subscribe(N$i.createOperatorSubscriber(r,void 0,function(){A=!0,!f()&&I().next()})),a&&(n.unsubscribe(),n=null,a=!1,C())};C()})}LRt.repeatWhen=pqc});var H3r=H(VRt=>{"use strict";Object.defineProperty(VRt,"__esModule",{value:!0});VRt.retry=void 0;var fqc=qg(),D$i=Cd(),Iqc=nx(),hqc=ble(),mqc=uh();function Cqc(e){e===void 0&&(e=1/0);var t;e&&typeof e=="object"?t=e:t={count:e};var r=t.count,n=r===void 0?1/0:r,a=t.delay,o=t.resetOnSuccess,l=o===void 0?!1:o;return n<=0?Iqc.identity:fqc.operate(function(A,f){var I=0,C,b=function(){var E=!1;C=A.subscribe(D$i.createOperatorSubscriber(f,function(N){l&&(I=0),f.next(N)},void 0,function(N){if(I++{"use strict";Object.defineProperty(PRt,"__esModule",{value:!0});PRt.retryWhen=void 0;var _qc=uh(),yqc=ix(),bqc=qg(),k$i=Cd();function Eqc(e){return bqc.operate(function(t,r){var n,a=!1,o,l=function(){n=t.subscribe(k$i.createOperatorSubscriber(r,void 0,void 0,function(A){o||(o=new yqc.Subject,_qc.innerFrom(e(o)).subscribe(k$i.createOperatorSubscriber(r,function(){return n?l():a=!0}))),o&&o.next(A)})),a&&(n.unsubscribe(),n=null,a=!1,l())};l()})}PRt.retryWhen=Eqc});var ORt=H(WRt=>{"use strict";Object.defineProperty(WRt,"__esModule",{value:!0});WRt.sample=void 0;var Sqc=uh(),vqc=qg(),Bqc=rx(),x$i=Cd();function wqc(e){return vqc.operate(function(t,r){var n=!1,a=null;t.subscribe(x$i.createOperatorSubscriber(r,function(o){n=!0,a=o})),Sqc.innerFrom(e).subscribe(x$i.createOperatorSubscriber(r,function(){if(n){n=!1;var o=a;a=null,r.next(o)}},Bqc.noop))})}WRt.sample=wqc});var Q3r=H(MRt=>{"use strict";Object.defineProperty(MRt,"__esModule",{value:!0});MRt.sampleTime=void 0;var Tqc=FV(),Rqc=ORt(),Nqc=POr();function Dqc(e,t){return t===void 0&&(t=Tqc.asyncScheduler),Rqc.sample(Nqc.interval(e,t))}MRt.sampleTime=Dqc});var X3r=H(HRt=>{"use strict";Object.defineProperty(HRt,"__esModule",{value:!0});HRt.scan=void 0;var kqc=qg(),xqc=$Or();function Gqc(e,t){return kqc.operate(xqc.scanInternals(e,t,arguments.length>=2,!0))}HRt.scan=Gqc});var J3r=H(YRt=>{"use strict";Object.defineProperty(YRt,"__esModule",{value:!0});YRt.sequenceEqual=void 0;var Fqc=qg(),Zqc=Cd(),Lqc=uh();function Vqc(e,t){return t===void 0&&(t=function(r,n){return r===n}),Fqc.operate(function(r,n){var a=G$i(),o=G$i(),l=function(f){n.next(f),n.complete()},A=function(f,I){var C=Zqc.createOperatorSubscriber(n,function(b){var E=I.buffer,N=I.complete;E.length===0?N?l(!1):f.buffer.push(b):!t(b,E.shift())&&l(!1)},function(){f.complete=!0;var b=I.complete,E=I.buffer;b&&l(E.length===0),C?.unsubscribe()});return C};r.subscribe(A(a,o)),Lqc.innerFrom(e).subscribe(A(o,a))})}YRt.sequenceEqual=Vqc;function G$i(){return{buffer:[],complete:!1}}});var QRt=H(xle=>{"use strict";var Pqc=xle&&xle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Wqc=xle&&xle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r0&&(C=new Z$i.SafeSubscriber({next:function(ue){return fe.next(ue)},error:function(ue){F=!0,Q(),b=U3r(X,a,ue),fe.error(ue)},complete:function(){B=!0,Q(),b=U3r(X,l),fe.complete()}}),F$i.innerFrom(ne).subscribe(C))})(I)}}xle.share=Hqc;function U3r(e,t){for(var r=[],n=2;n{"use strict";Object.defineProperty(XRt,"__esModule",{value:!0});XRt.shareReplay=void 0;var Yqc=gwt(),Qqc=QRt();function Xqc(e,t,r){var n,a,o,l,A=!1;return e&&typeof e=="object"?(n=e.bufferSize,l=n===void 0?1/0:n,a=e.windowTime,t=a===void 0?1/0:a,o=e.refCount,A=o===void 0?!1:o,r=e.scheduler):l=e??1/0,Qqc.share({connector:function(){return new Yqc.ReplaySubject(l,t,r)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:A})}XRt.shareReplay=Xqc});var j3r=H(JRt=>{"use strict";Object.defineProperty(JRt,"__esModule",{value:!0});JRt.single=void 0;var Jqc=mle(),Uqc=xOr(),Kqc=kOr(),jqc=qg(),zqc=Cd();function qqc(e){return jqc.operate(function(t,r){var n=!1,a,o=!1,l=0;t.subscribe(zqc.createOperatorSubscriber(r,function(A){o=!0,(!e||e(A,l++,t))&&(n&&r.error(new Uqc.SequenceError("Too many matching values")),n=!0,a=A)},function(){n?(r.next(a),r.complete()):r.error(o?new Kqc.NotFoundError("No matching values"):new Jqc.EmptyError)}))})}JRt.single=qqc});var z3r=H(URt=>{"use strict";Object.defineProperty(URt,"__esModule",{value:!0});URt.skip=void 0;var $qc=ute();function e$c(e){return $qc.filter(function(t,r){return e<=r})}URt.skip=e$c});var q3r=H(KRt=>{"use strict";Object.defineProperty(KRt,"__esModule",{value:!0});KRt.skipLast=void 0;var t$c=nx(),r$c=qg(),n$c=Cd();function i$c(e){return e<=0?t$c.identity:r$c.operate(function(t,r){var n=new Array(e),a=0;return t.subscribe(n$c.createOperatorSubscriber(r,function(o){var l=a++;if(l{"use strict";Object.defineProperty(jRt,"__esModule",{value:!0});jRt.skipUntil=void 0;var s$c=qg(),L$i=Cd(),o$c=uh(),a$c=rx();function c$c(e){return s$c.operate(function(t,r){var n=!1,a=L$i.createOperatorSubscriber(r,function(){a?.unsubscribe(),n=!0},a$c.noop);o$c.innerFrom(e).subscribe(a),t.subscribe(L$i.createOperatorSubscriber(r,function(o){return n&&r.next(o)}))})}jRt.skipUntil=c$c});var e5r=H(zRt=>{"use strict";Object.defineProperty(zRt,"__esModule",{value:!0});zRt.skipWhile=void 0;var l$c=qg(),u$c=Cd();function g$c(e){return l$c.operate(function(t,r){var n=!1,a=0;t.subscribe(u$c.createOperatorSubscriber(r,function(o){return(n||(n=!e(o,a++)))&&r.next(o)}))})}zRt.skipWhile=g$c});var t5r=H(qRt=>{"use strict";Object.defineProperty(qRt,"__esModule",{value:!0});qRt.startWith=void 0;var V$i=M8e(),A$c=ZV(),d$c=qg();function p$c(){for(var e=[],t=0;t{"use strict";Object.defineProperty($Rt,"__esModule",{value:!0});$Rt.switchMap=void 0;var f$c=uh(),I$c=qg(),P$i=Cd();function h$c(e,t){return I$c.operate(function(r,n){var a=null,o=0,l=!1,A=function(){return l&&!a&&n.complete()};r.subscribe(P$i.createOperatorSubscriber(n,function(f){a?.unsubscribe();var I=0,C=o++;f$c.innerFrom(e(f,C)).subscribe(a=P$i.createOperatorSubscriber(n,function(b){return n.next(t?t(f,b,C,I++):b)},function(){a=null,A()}))},function(){l=!0,A()}))})}$Rt.switchMap=h$c});var r5r=H(eNt=>{"use strict";Object.defineProperty(eNt,"__esModule",{value:!0});eNt.switchAll=void 0;var m$c=rxe(),C$c=nx();function _$c(){return m$c.switchMap(C$c.identity)}eNt.switchAll=_$c});var n5r=H(tNt=>{"use strict";Object.defineProperty(tNt,"__esModule",{value:!0});tNt.switchMapTo=void 0;var W$i=rxe(),y$c=Sy();function b$c(e,t){return y$c.isFunction(t)?W$i.switchMap(function(){return e},t):W$i.switchMap(function(){return e})}tNt.switchMapTo=b$c});var i5r=H(rNt=>{"use strict";Object.defineProperty(rNt,"__esModule",{value:!0});rNt.switchScan=void 0;var E$c=rxe(),S$c=qg();function v$c(e,t){return S$c.operate(function(r,n){var a=t;return E$c.switchMap(function(o,l){return e(a,o,l)},function(o,l){return a=l,l})(r).subscribe(n),function(){a=null}})}rNt.switchScan=v$c});var s5r=H(nNt=>{"use strict";Object.defineProperty(nNt,"__esModule",{value:!0});nNt.takeUntil=void 0;var B$c=qg(),w$c=Cd(),T$c=uh(),R$c=rx();function N$c(e){return B$c.operate(function(t,r){T$c.innerFrom(e).subscribe(w$c.createOperatorSubscriber(r,function(){return r.complete()},R$c.noop)),!r.closed&&t.subscribe(r)})}nNt.takeUntil=N$c});var o5r=H(iNt=>{"use strict";Object.defineProperty(iNt,"__esModule",{value:!0});iNt.takeWhile=void 0;var D$c=qg(),k$c=Cd();function x$c(e,t){return t===void 0&&(t=!1),D$c.operate(function(r,n){var a=0;r.subscribe(k$c.createOperatorSubscriber(n,function(o){var l=e(o,a++);(l||t)&&n.next(o),!l&&n.complete()}))})}iNt.takeWhile=x$c});var a5r=H(sNt=>{"use strict";Object.defineProperty(sNt,"__esModule",{value:!0});sNt.tap=void 0;var G$c=Sy(),F$c=qg(),Z$c=Cd(),L$c=nx();function V$c(e,t,r){var n=G$c.isFunction(e)||t||r?{next:e,error:t,complete:r}:e;return n?F$c.operate(function(a,o){var l;(l=n.subscribe)===null||l===void 0||l.call(n);var A=!0;a.subscribe(Z$c.createOperatorSubscriber(o,function(f){var I;(I=n.next)===null||I===void 0||I.call(n,f),o.next(f)},function(){var f;A=!1,(f=n.complete)===null||f===void 0||f.call(n),o.complete()},function(f){var I;A=!1,(I=n.error)===null||I===void 0||I.call(n,f),o.error(f)},function(){var f,I;A&&((f=n.unsubscribe)===null||f===void 0||f.call(n)),(I=n.finalize)===null||I===void 0||I.call(n)}))}):L$c.identity}sNt.tap=V$c});var aNt=H(oNt=>{"use strict";Object.defineProperty(oNt,"__esModule",{value:!0});oNt.throttle=void 0;var P$c=qg(),O$i=Cd(),W$c=uh();function O$c(e,t){return P$c.operate(function(r,n){var a=t??{},o=a.leading,l=o===void 0?!0:o,A=a.trailing,f=A===void 0?!1:A,I=!1,C=null,b=null,E=!1,N=function(){b?.unsubscribe(),b=null,f&&(Q(),E&&n.complete())},B=function(){b=null,E&&n.complete()},F=function(X){return b=W$c.innerFrom(e(X)).subscribe(O$i.createOperatorSubscriber(n,N,B))},Q=function(){if(I){I=!1;var X=C;C=null,n.next(X),!E&&F(X)}};r.subscribe(O$i.createOperatorSubscriber(n,function(X){I=!0,C=X,!(b&&!b.closed)&&(l?Q():F(X))},function(){E=!0,!(f&&I&&b&&!b.closed)&&n.complete()}))})}oNt.throttle=O$c});var c5r=H(cNt=>{"use strict";Object.defineProperty(cNt,"__esModule",{value:!0});cNt.throttleTime=void 0;var M$c=FV(),H$c=aNt(),Y$c=ble();function Q$c(e,t,r){t===void 0&&(t=M$c.asyncScheduler);var n=Y$c.timer(e,t);return H$c.throttle(function(){return n},r)}cNt.throttleTime=Q$c});var l5r=H(nxe=>{"use strict";Object.defineProperty(nxe,"__esModule",{value:!0});nxe.TimeInterval=nxe.timeInterval=void 0;var X$c=FV(),J$c=qg(),U$c=Cd();function K$c(e){return e===void 0&&(e=X$c.asyncScheduler),J$c.operate(function(t,r){var n=e.now();t.subscribe(U$c.createOperatorSubscriber(r,function(a){var o=e.now(),l=o-n;n=o,r.next(new M$i(a,l))}))})}nxe.timeInterval=K$c;var M$i=function(){function e(t,r){this.value=t,this.interval=r}return e}();nxe.TimeInterval=M$i});var u5r=H(lNt=>{"use strict";Object.defineProperty(lNt,"__esModule",{value:!0});lNt.timeoutWith=void 0;var j$c=FV(),z$c=Jwt(),q$c=W8e();function $$c(e,t,r){var n,a,o;if(r=r??j$c.async,z$c.isValidDate(e)?n=e:typeof e=="number"&&(a=e),t)o=function(){return t};else throw new TypeError("No observable provided to switch to");if(n==null&&a==null)throw new TypeError("No timeout provided.");return q$c.timeout({first:n,each:a,scheduler:r,with:o})}lNt.timeoutWith=$$c});var g5r=H(uNt=>{"use strict";Object.defineProperty(uNt,"__esModule",{value:!0});uNt.timestamp=void 0;var eel=uwt(),tel=lte();function rel(e){return e===void 0&&(e=eel.dateTimestampProvider),tel.map(function(t){return{value:t,timestamp:e.now()}})}uNt.timestamp=rel});var A5r=H(gNt=>{"use strict";Object.defineProperty(gNt,"__esModule",{value:!0});gNt.window=void 0;var H$i=ix(),nel=qg(),Y$i=Cd(),iel=rx(),sel=uh();function oel(e){return nel.operate(function(t,r){var n=new H$i.Subject;r.next(n.asObservable());var a=function(o){n.error(o),r.error(o)};return t.subscribe(Y$i.createOperatorSubscriber(r,function(o){return n?.next(o)},function(){n.complete(),r.complete()},a)),sel.innerFrom(e).subscribe(Y$i.createOperatorSubscriber(r,function(){n.complete(),r.next(n=new H$i.Subject)},iel.noop,a)),function(){n?.unsubscribe(),n=null}})}gNt.window=oel});var d5r=H(ixe=>{"use strict";var ael=ixe&&ixe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ixe,"__esModule",{value:!0});ixe.windowCount=void 0;var Q$i=ix(),cel=qg(),lel=Cd();function uel(e,t){t===void 0&&(t=0);var r=t>0?t:e;return cel.operate(function(n,a){var o=[new Q$i.Subject],l=[],A=0;a.next(o[0].asObservable()),n.subscribe(lel.createOperatorSubscriber(a,function(f){var I,C;try{for(var b=ael(o),E=b.next();!E.done;E=b.next()){var N=E.value;N.next(f)}}catch(Q){I={error:Q}}finally{try{E&&!E.done&&(C=b.return)&&C.call(b)}finally{if(I)throw I.error}}var B=A-e+1;if(B>=0&&B%r===0&&o.shift().complete(),++A%r===0){var F=new Q$i.Subject;o.push(F),a.next(F.asObservable())}},function(){for(;o.length>0;)o.shift().complete();a.complete()},function(f){for(;o.length>0;)o.shift().error(f);a.error(f)},function(){l=null,o=null}))})}ixe.windowCount=uel});var p5r=H(ANt=>{"use strict";Object.defineProperty(ANt,"__esModule",{value:!0});ANt.windowTime=void 0;var gel=ix(),Ael=FV(),del=TO(),pel=qg(),fel=Cd(),Iel=ste(),hel=ZV(),X$i=ote();function mel(e){for(var t,r,n=[],a=1;a=0?X$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=function(Q){return C.slice().forEach(Q)},F=function(Q){B(function(X){var ae=X.window;return Q(ae)}),Q(I),I.unsubscribe()};return f.subscribe(fel.createOperatorSubscriber(I,function(Q){B(function(X){X.window.next(Q),A<=++X.seen&&E(X)})},function(){return F(function(Q){return Q.complete()})},function(Q){return F(function(X){return X.error(Q)})})),function(){C=null}})}ANt.windowTime=mel});var I5r=H(sxe=>{"use strict";var Cel=sxe&&sxe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(sxe,"__esModule",{value:!0});sxe.windowToggle=void 0;var _el=ix(),yel=TO(),bel=qg(),J$i=uh(),f5r=Cd(),U$i=rx(),Eel=ste();function Sel(e,t){return bel.operate(function(r,n){var a=[],o=function(l){for(;0{"use strict";Object.defineProperty(dNt,"__esModule",{value:!0});dNt.windowWhen=void 0;var vel=ix(),Bel=qg(),K$i=Cd(),wel=uh();function Tel(e){return Bel.operate(function(t,r){var n,a,o=function(A){n.error(A),r.error(A)},l=function(){a?.unsubscribe(),n?.complete(),n=new vel.Subject,r.next(n.asObservable());var A;try{A=wel.innerFrom(e())}catch(f){o(f);return}A.subscribe(a=K$i.createOperatorSubscriber(r,l,l,o))};l(),t.subscribe(K$i.createOperatorSubscriber(r,function(A){return n.next(A)},function(){n.complete(),r.complete()},o,function(){a?.unsubscribe(),n=null}))})}dNt.windowWhen=Tel});var m5r=H(Gle=>{"use strict";var j$i=Gle&&Gle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},z$i=Gle&&Gle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(pNt,"__esModule",{value:!0});pNt.zipAll=void 0;var Fel=bTt(),Zel=e3r();function Lel(e){return Zel.joinAllInternals(Fel.zip,e)}pNt.zipAll=Lel});var _5r=H(Fle=>{"use strict";var Vel=Fle&&Fle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Pel=Fle&&Fle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Hel=Zle&&Zle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yel=Zle&&Zle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Jel=Cn&&Cn.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uel=Cn&&Cn.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Jel(t,e,r)};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.interval=Cn.iif=Cn.generate=Cn.fromEventPattern=Cn.fromEvent=Cn.from=Cn.forkJoin=Cn.empty=Cn.defer=Cn.connectable=Cn.concat=Cn.combineLatest=Cn.bindNodeCallback=Cn.bindCallback=Cn.UnsubscriptionError=Cn.TimeoutError=Cn.SequenceError=Cn.ObjectUnsubscribedError=Cn.NotFoundError=Cn.EmptyError=Cn.ArgumentOutOfRangeError=Cn.firstValueFrom=Cn.lastValueFrom=Cn.isObservable=Cn.identity=Cn.noop=Cn.pipe=Cn.NotificationKind=Cn.Notification=Cn.Subscriber=Cn.Subscription=Cn.Scheduler=Cn.VirtualAction=Cn.VirtualTimeScheduler=Cn.animationFrameScheduler=Cn.animationFrame=Cn.queueScheduler=Cn.queue=Cn.asyncScheduler=Cn.async=Cn.asapScheduler=Cn.asap=Cn.AsyncSubject=Cn.ReplaySubject=Cn.BehaviorSubject=Cn.Subject=Cn.animationFrames=Cn.observable=Cn.ConnectableObservable=Cn.Observable=void 0;Cn.filter=Cn.expand=Cn.exhaustMap=Cn.exhaustAll=Cn.exhaust=Cn.every=Cn.endWith=Cn.elementAt=Cn.distinctUntilKeyChanged=Cn.distinctUntilChanged=Cn.distinct=Cn.dematerialize=Cn.delayWhen=Cn.delay=Cn.defaultIfEmpty=Cn.debounceTime=Cn.debounce=Cn.count=Cn.connect=Cn.concatWith=Cn.concatMapTo=Cn.concatMap=Cn.concatAll=Cn.combineLatestWith=Cn.combineLatestAll=Cn.combineAll=Cn.catchError=Cn.bufferWhen=Cn.bufferToggle=Cn.bufferTime=Cn.bufferCount=Cn.buffer=Cn.auditTime=Cn.audit=Cn.config=Cn.NEVER=Cn.EMPTY=Cn.scheduled=Cn.zip=Cn.using=Cn.timer=Cn.throwError=Cn.range=Cn.race=Cn.partition=Cn.pairs=Cn.onErrorResumeNext=Cn.of=Cn.never=Cn.merge=void 0;Cn.switchMap=Cn.switchAll=Cn.subscribeOn=Cn.startWith=Cn.skipWhile=Cn.skipUntil=Cn.skipLast=Cn.skip=Cn.single=Cn.shareReplay=Cn.share=Cn.sequenceEqual=Cn.scan=Cn.sampleTime=Cn.sample=Cn.refCount=Cn.retryWhen=Cn.retry=Cn.repeatWhen=Cn.repeat=Cn.reduce=Cn.raceWith=Cn.publishReplay=Cn.publishLast=Cn.publishBehavior=Cn.publish=Cn.pluck=Cn.pairwise=Cn.onErrorResumeNextWith=Cn.observeOn=Cn.multicast=Cn.min=Cn.mergeWith=Cn.mergeScan=Cn.mergeMapTo=Cn.mergeMap=Cn.flatMap=Cn.mergeAll=Cn.max=Cn.materialize=Cn.mapTo=Cn.map=Cn.last=Cn.isEmpty=Cn.ignoreElements=Cn.groupBy=Cn.first=Cn.findIndex=Cn.find=Cn.finalize=void 0;Cn.zipWith=Cn.zipAll=Cn.withLatestFrom=Cn.windowWhen=Cn.windowToggle=Cn.windowTime=Cn.windowCount=Cn.window=Cn.toArray=Cn.timestamp=Cn.timeoutWith=Cn.timeout=Cn.timeInterval=Cn.throwIfEmpty=Cn.throttleTime=Cn.throttle=Cn.tap=Cn.takeWhile=Cn.takeUntil=Cn.takeLast=Cn.take=Cn.switchScan=Cn.switchMapTo=void 0;var Kel=ub();Object.defineProperty(Cn,"Observable",{enumerable:!0,get:function(){return Kel.Observable}});var jel=Z8e();Object.defineProperty(Cn,"ConnectableObservable",{enumerable:!0,get:function(){return jel.ConnectableObservable}});var zel=G8e();Object.defineProperty(Cn,"observable",{enumerable:!0,get:function(){return zel.observable}});var qel=Nzi();Object.defineProperty(Cn,"animationFrames",{enumerable:!0,get:function(){return qel.animationFrames}});var $el=ix();Object.defineProperty(Cn,"Subject",{enumerable:!0,get:function(){return $el.Subject}});var etl=pOr();Object.defineProperty(Cn,"BehaviorSubject",{enumerable:!0,get:function(){return etl.BehaviorSubject}});var ttl=gwt();Object.defineProperty(Cn,"ReplaySubject",{enumerable:!0,get:function(){return ttl.ReplaySubject}});var rtl=Awt();Object.defineProperty(Cn,"AsyncSubject",{enumerable:!0,get:function(){return rtl.AsyncSubject}});var $$i=Jzi();Object.defineProperty(Cn,"asap",{enumerable:!0,get:function(){return $$i.asap}});Object.defineProperty(Cn,"asapScheduler",{enumerable:!0,get:function(){return $$i.asapScheduler}});var ees=FV();Object.defineProperty(Cn,"async",{enumerable:!0,get:function(){return ees.async}});Object.defineProperty(Cn,"asyncScheduler",{enumerable:!0,get:function(){return ees.asyncScheduler}});var tes=jzi();Object.defineProperty(Cn,"queue",{enumerable:!0,get:function(){return tes.queue}});Object.defineProperty(Cn,"queueScheduler",{enumerable:!0,get:function(){return tes.queueScheduler}});var res=eqi();Object.defineProperty(Cn,"animationFrame",{enumerable:!0,get:function(){return res.animationFrame}});Object.defineProperty(Cn,"animationFrameScheduler",{enumerable:!0,get:function(){return res.animationFrameScheduler}});var nes=nqi();Object.defineProperty(Cn,"VirtualTimeScheduler",{enumerable:!0,get:function(){return nes.VirtualTimeScheduler}});Object.defineProperty(Cn,"VirtualAction",{enumerable:!0,get:function(){return nes.VirtualAction}});var ntl=IOr();Object.defineProperty(Cn,"Scheduler",{enumerable:!0,get:function(){return ntl.Scheduler}});var itl=TO();Object.defineProperty(Cn,"Subscription",{enumerable:!0,get:function(){return itl.Subscription}});var stl=Cke();Object.defineProperty(Cn,"Subscriber",{enumerable:!0,get:function(){return stl.Subscriber}});var ies=Vwt();Object.defineProperty(Cn,"Notification",{enumerable:!0,get:function(){return ies.Notification}});Object.defineProperty(Cn,"NotificationKind",{enumerable:!0,get:function(){return ies.NotificationKind}});var otl=F8e();Object.defineProperty(Cn,"pipe",{enumerable:!0,get:function(){return otl.pipe}});var atl=rx();Object.defineProperty(Cn,"noop",{enumerable:!0,get:function(){return atl.noop}});var ctl=nx();Object.defineProperty(Cn,"identity",{enumerable:!0,get:function(){return ctl.identity}});var ltl=_qi();Object.defineProperty(Cn,"isObservable",{enumerable:!0,get:function(){return ltl.isObservable}});var utl=yqi();Object.defineProperty(Cn,"lastValueFrom",{enumerable:!0,get:function(){return utl.lastValueFrom}});var gtl=bqi();Object.defineProperty(Cn,"firstValueFrom",{enumerable:!0,get:function(){return gtl.firstValueFrom}});var Atl=DOr();Object.defineProperty(Cn,"ArgumentOutOfRangeError",{enumerable:!0,get:function(){return Atl.ArgumentOutOfRangeError}});var dtl=mle();Object.defineProperty(Cn,"EmptyError",{enumerable:!0,get:function(){return dtl.EmptyError}});var ptl=kOr();Object.defineProperty(Cn,"NotFoundError",{enumerable:!0,get:function(){return ptl.NotFoundError}});var ftl=uOr();Object.defineProperty(Cn,"ObjectUnsubscribedError",{enumerable:!0,get:function(){return ftl.ObjectUnsubscribedError}});var Itl=xOr();Object.defineProperty(Cn,"SequenceError",{enumerable:!0,get:function(){return Itl.SequenceError}});var htl=W8e();Object.defineProperty(Cn,"TimeoutError",{enumerable:!0,get:function(){return htl.TimeoutError}});var mtl=qWr();Object.defineProperty(Cn,"UnsubscriptionError",{enumerable:!0,get:function(){return mtl.UnsubscriptionError}});var Ctl=Sqi();Object.defineProperty(Cn,"bindCallback",{enumerable:!0,get:function(){return Ctl.bindCallback}});var _tl=vqi();Object.defineProperty(Cn,"bindNodeCallback",{enumerable:!0,get:function(){return _tl.bindNodeCallback}});var ytl=$wt();Object.defineProperty(Cn,"combineLatest",{enumerable:!0,get:function(){return ytl.combineLatest}});var btl=M8e();Object.defineProperty(Cn,"concat",{enumerable:!0,get:function(){return btl.concat}});var Etl=xqi();Object.defineProperty(Cn,"connectable",{enumerable:!0,get:function(){return Etl.connectable}});var Stl=H8e();Object.defineProperty(Cn,"defer",{enumerable:!0,get:function(){return Stl.defer}});var vtl=x4();Object.defineProperty(Cn,"empty",{enumerable:!0,get:function(){return vtl.empty}});var Btl=Gqi();Object.defineProperty(Cn,"forkJoin",{enumerable:!0,get:function(){return Btl.forkJoin}});var wtl=ate();Object.defineProperty(Cn,"from",{enumerable:!0,get:function(){return wtl.from}});var Ttl=Zqi();Object.defineProperty(Cn,"fromEvent",{enumerable:!0,get:function(){return Ttl.fromEvent}});var Rtl=Vqi();Object.defineProperty(Cn,"fromEventPattern",{enumerable:!0,get:function(){return Rtl.fromEventPattern}});var Ntl=Wqi();Object.defineProperty(Cn,"generate",{enumerable:!0,get:function(){return Ntl.generate}});var Dtl=Oqi();Object.defineProperty(Cn,"iif",{enumerable:!0,get:function(){return Dtl.iif}});var ktl=POr();Object.defineProperty(Cn,"interval",{enumerable:!0,get:function(){return ktl.interval}});var xtl=Hqi();Object.defineProperty(Cn,"merge",{enumerable:!0,get:function(){return xtl.merge}});var Gtl=WOr();Object.defineProperty(Cn,"never",{enumerable:!0,get:function(){return Gtl.never}});var Ftl=Zwt();Object.defineProperty(Cn,"of",{enumerable:!0,get:function(){return Ftl.of}});var Ztl=OOr();Object.defineProperty(Cn,"onErrorResumeNext",{enumerable:!0,get:function(){return Ztl.onErrorResumeNext}});var Ltl=Qqi();Object.defineProperty(Cn,"pairs",{enumerable:!0,get:function(){return Ltl.pairs}});var Vtl=Uqi();Object.defineProperty(Cn,"partition",{enumerable:!0,get:function(){return Vtl.partition}});var Ptl=HOr();Object.defineProperty(Cn,"race",{enumerable:!0,get:function(){return Ptl.race}});var Wtl=zqi();Object.defineProperty(Cn,"range",{enumerable:!0,get:function(){return Wtl.range}});var Otl=NOr();Object.defineProperty(Cn,"throwError",{enumerable:!0,get:function(){return Otl.throwError}});var Mtl=ble();Object.defineProperty(Cn,"timer",{enumerable:!0,get:function(){return Mtl.timer}});var Htl=qqi();Object.defineProperty(Cn,"using",{enumerable:!0,get:function(){return Htl.using}});var Ytl=bTt();Object.defineProperty(Cn,"zip",{enumerable:!0,get:function(){return Ytl.zip}});var Qtl=ROr();Object.defineProperty(Cn,"scheduled",{enumerable:!0,get:function(){return Qtl.scheduled}});var Xtl=x4();Object.defineProperty(Cn,"EMPTY",{enumerable:!0,get:function(){return Xtl.EMPTY}});var Jtl=WOr();Object.defineProperty(Cn,"NEVER",{enumerable:!0,get:function(){return Jtl.NEVER}});Uel(e$i(),Cn);var Utl=hke();Object.defineProperty(Cn,"config",{enumerable:!0,get:function(){return Utl.config}});var Ktl=STt();Object.defineProperty(Cn,"audit",{enumerable:!0,get:function(){return Ktl.audit}});var jtl=YOr();Object.defineProperty(Cn,"auditTime",{enumerable:!0,get:function(){return jtl.auditTime}});var ztl=QOr();Object.defineProperty(Cn,"buffer",{enumerable:!0,get:function(){return ztl.buffer}});var qtl=JOr();Object.defineProperty(Cn,"bufferCount",{enumerable:!0,get:function(){return qtl.bufferCount}});var $tl=UOr();Object.defineProperty(Cn,"bufferTime",{enumerable:!0,get:function(){return $tl.bufferTime}});var erl=jOr();Object.defineProperty(Cn,"bufferToggle",{enumerable:!0,get:function(){return erl.bufferToggle}});var trl=zOr();Object.defineProperty(Cn,"bufferWhen",{enumerable:!0,get:function(){return trl.bufferWhen}});var rrl=qOr();Object.defineProperty(Cn,"catchError",{enumerable:!0,get:function(){return rrl.catchError}});var nrl=t3r();Object.defineProperty(Cn,"combineAll",{enumerable:!0,get:function(){return nrl.combineAll}});var irl=FTt();Object.defineProperty(Cn,"combineLatestAll",{enumerable:!0,get:function(){return irl.combineLatestAll}});var srl=n3r();Object.defineProperty(Cn,"combineLatestWith",{enumerable:!0,get:function(){return srl.combineLatestWith}});var orl=O8e();Object.defineProperty(Cn,"concatAll",{enumerable:!0,get:function(){return orl.concatAll}});var arl=VTt();Object.defineProperty(Cn,"concatMap",{enumerable:!0,get:function(){return arl.concatMap}});var crl=i3r();Object.defineProperty(Cn,"concatMapTo",{enumerable:!0,get:function(){return crl.concatMapTo}});var lrl=o3r();Object.defineProperty(Cn,"concatWith",{enumerable:!0,get:function(){return lrl.concatWith}});var url=Y8e();Object.defineProperty(Cn,"connect",{enumerable:!0,get:function(){return url.connect}});var grl=a3r();Object.defineProperty(Cn,"count",{enumerable:!0,get:function(){return grl.count}});var Arl=c3r();Object.defineProperty(Cn,"debounce",{enumerable:!0,get:function(){return Arl.debounce}});var drl=l3r();Object.defineProperty(Cn,"debounceTime",{enumerable:!0,get:function(){return drl.debounceTime}});var prl=zke();Object.defineProperty(Cn,"defaultIfEmpty",{enumerable:!0,get:function(){return prl.defaultIfEmpty}});var frl=u3r();Object.defineProperty(Cn,"delay",{enumerable:!0,get:function(){return frl.delay}});var Irl=qTt();Object.defineProperty(Cn,"delayWhen",{enumerable:!0,get:function(){return Irl.delayWhen}});var hrl=g3r();Object.defineProperty(Cn,"dematerialize",{enumerable:!0,get:function(){return hrl.dematerialize}});var mrl=A3r();Object.defineProperty(Cn,"distinct",{enumerable:!0,get:function(){return mrl.distinct}});var Crl=nRt();Object.defineProperty(Cn,"distinctUntilChanged",{enumerable:!0,get:function(){return Crl.distinctUntilChanged}});var _rl=d3r();Object.defineProperty(Cn,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return _rl.distinctUntilKeyChanged}});var yrl=p3r();Object.defineProperty(Cn,"elementAt",{enumerable:!0,get:function(){return yrl.elementAt}});var brl=f3r();Object.defineProperty(Cn,"endWith",{enumerable:!0,get:function(){return brl.endWith}});var Erl=I3r();Object.defineProperty(Cn,"every",{enumerable:!0,get:function(){return Erl.every}});var Srl=h3r();Object.defineProperty(Cn,"exhaust",{enumerable:!0,get:function(){return Srl.exhaust}});var vrl=gRt();Object.defineProperty(Cn,"exhaustAll",{enumerable:!0,get:function(){return vrl.exhaustAll}});var Brl=lRt();Object.defineProperty(Cn,"exhaustMap",{enumerable:!0,get:function(){return Brl.exhaustMap}});var wrl=m3r();Object.defineProperty(Cn,"expand",{enumerable:!0,get:function(){return wrl.expand}});var Trl=ute();Object.defineProperty(Cn,"filter",{enumerable:!0,get:function(){return Trl.filter}});var Rrl=C3r();Object.defineProperty(Cn,"finalize",{enumerable:!0,get:function(){return Rrl.finalize}});var Nrl=fRt();Object.defineProperty(Cn,"find",{enumerable:!0,get:function(){return Nrl.find}});var Drl=_3r();Object.defineProperty(Cn,"findIndex",{enumerable:!0,get:function(){return Drl.findIndex}});var krl=y3r();Object.defineProperty(Cn,"first",{enumerable:!0,get:function(){return krl.first}});var xrl=b3r();Object.defineProperty(Cn,"groupBy",{enumerable:!0,get:function(){return xrl.groupBy}});var Grl=UTt();Object.defineProperty(Cn,"ignoreElements",{enumerable:!0,get:function(){return Grl.ignoreElements}});var Frl=E3r();Object.defineProperty(Cn,"isEmpty",{enumerable:!0,get:function(){return Frl.isEmpty}});var Zrl=S3r();Object.defineProperty(Cn,"last",{enumerable:!0,get:function(){return Zrl.last}});var Lrl=lte();Object.defineProperty(Cn,"map",{enumerable:!0,get:function(){return Lrl.map}});var Vrl=jTt();Object.defineProperty(Cn,"mapTo",{enumerable:!0,get:function(){return Vrl.mapTo}});var Prl=B3r();Object.defineProperty(Cn,"materialize",{enumerable:!0,get:function(){return Prl.materialize}});var Wrl=w3r();Object.defineProperty(Cn,"max",{enumerable:!0,get:function(){return Wrl.max}});var Orl=Yke();Object.defineProperty(Cn,"mergeAll",{enumerable:!0,get:function(){return Orl.mergeAll}});var Mrl=T3r();Object.defineProperty(Cn,"flatMap",{enumerable:!0,get:function(){return Mrl.flatMap}});var Hrl=Kj();Object.defineProperty(Cn,"mergeMap",{enumerable:!0,get:function(){return Hrl.mergeMap}});var Yrl=R3r();Object.defineProperty(Cn,"mergeMapTo",{enumerable:!0,get:function(){return Yrl.mergeMapTo}});var Qrl=N3r();Object.defineProperty(Cn,"mergeScan",{enumerable:!0,get:function(){return Qrl.mergeScan}});var Xrl=k3r();Object.defineProperty(Cn,"mergeWith",{enumerable:!0,get:function(){return Xrl.mergeWith}});var Jrl=x3r();Object.defineProperty(Cn,"min",{enumerable:!0,get:function(){return Jrl.min}});var Url=Q8e();Object.defineProperty(Cn,"multicast",{enumerable:!0,get:function(){return Url.multicast}});var Krl=Oke();Object.defineProperty(Cn,"observeOn",{enumerable:!0,get:function(){return Krl.observeOn}});var jrl=G3r();Object.defineProperty(Cn,"onErrorResumeNextWith",{enumerable:!0,get:function(){return jrl.onErrorResumeNextWith}});var zrl=F3r();Object.defineProperty(Cn,"pairwise",{enumerable:!0,get:function(){return zrl.pairwise}});var qrl=Z3r();Object.defineProperty(Cn,"pluck",{enumerable:!0,get:function(){return qrl.pluck}});var $rl=L3r();Object.defineProperty(Cn,"publish",{enumerable:!0,get:function(){return $rl.publish}});var enl=V3r();Object.defineProperty(Cn,"publishBehavior",{enumerable:!0,get:function(){return enl.publishBehavior}});var tnl=P3r();Object.defineProperty(Cn,"publishLast",{enumerable:!0,get:function(){return tnl.publishLast}});var rnl=W3r();Object.defineProperty(Cn,"publishReplay",{enumerable:!0,get:function(){return rnl.publishReplay}});var nnl=FRt();Object.defineProperty(Cn,"raceWith",{enumerable:!0,get:function(){return nnl.raceWith}});var inl=C_e();Object.defineProperty(Cn,"reduce",{enumerable:!0,get:function(){return inl.reduce}});var snl=O3r();Object.defineProperty(Cn,"repeat",{enumerable:!0,get:function(){return snl.repeat}});var onl=M3r();Object.defineProperty(Cn,"repeatWhen",{enumerable:!0,get:function(){return onl.repeatWhen}});var anl=H3r();Object.defineProperty(Cn,"retry",{enumerable:!0,get:function(){return anl.retry}});var cnl=Y3r();Object.defineProperty(Cn,"retryWhen",{enumerable:!0,get:function(){return cnl.retryWhen}});var lnl=awt();Object.defineProperty(Cn,"refCount",{enumerable:!0,get:function(){return lnl.refCount}});var unl=ORt();Object.defineProperty(Cn,"sample",{enumerable:!0,get:function(){return unl.sample}});var gnl=Q3r();Object.defineProperty(Cn,"sampleTime",{enumerable:!0,get:function(){return gnl.sampleTime}});var Anl=X3r();Object.defineProperty(Cn,"scan",{enumerable:!0,get:function(){return Anl.scan}});var dnl=J3r();Object.defineProperty(Cn,"sequenceEqual",{enumerable:!0,get:function(){return dnl.sequenceEqual}});var pnl=QRt();Object.defineProperty(Cn,"share",{enumerable:!0,get:function(){return pnl.share}});var fnl=K3r();Object.defineProperty(Cn,"shareReplay",{enumerable:!0,get:function(){return fnl.shareReplay}});var Inl=j3r();Object.defineProperty(Cn,"single",{enumerable:!0,get:function(){return Inl.single}});var hnl=z3r();Object.defineProperty(Cn,"skip",{enumerable:!0,get:function(){return hnl.skip}});var mnl=q3r();Object.defineProperty(Cn,"skipLast",{enumerable:!0,get:function(){return mnl.skipLast}});var Cnl=$3r();Object.defineProperty(Cn,"skipUntil",{enumerable:!0,get:function(){return Cnl.skipUntil}});var _nl=e5r();Object.defineProperty(Cn,"skipWhile",{enumerable:!0,get:function(){return _nl.skipWhile}});var ynl=t5r();Object.defineProperty(Cn,"startWith",{enumerable:!0,get:function(){return ynl.startWith}});var bnl=Mke();Object.defineProperty(Cn,"subscribeOn",{enumerable:!0,get:function(){return bnl.subscribeOn}});var Enl=r5r();Object.defineProperty(Cn,"switchAll",{enumerable:!0,get:function(){return Enl.switchAll}});var Snl=rxe();Object.defineProperty(Cn,"switchMap",{enumerable:!0,get:function(){return Snl.switchMap}});var vnl=n5r();Object.defineProperty(Cn,"switchMapTo",{enumerable:!0,get:function(){return vnl.switchMapTo}});var Bnl=i5r();Object.defineProperty(Cn,"switchScan",{enumerable:!0,get:function(){return Bnl.switchScan}});var wnl=qke();Object.defineProperty(Cn,"take",{enumerable:!0,get:function(){return wnl.take}});var Tnl=_Rt();Object.defineProperty(Cn,"takeLast",{enumerable:!0,get:function(){return Tnl.takeLast}});var Rnl=s5r();Object.defineProperty(Cn,"takeUntil",{enumerable:!0,get:function(){return Rnl.takeUntil}});var Nnl=o5r();Object.defineProperty(Cn,"takeWhile",{enumerable:!0,get:function(){return Nnl.takeWhile}});var Dnl=a5r();Object.defineProperty(Cn,"tap",{enumerable:!0,get:function(){return Dnl.tap}});var knl=aNt();Object.defineProperty(Cn,"throttle",{enumerable:!0,get:function(){return knl.throttle}});var xnl=c5r();Object.defineProperty(Cn,"throttleTime",{enumerable:!0,get:function(){return xnl.throttleTime}});var Gnl=$ke();Object.defineProperty(Cn,"throwIfEmpty",{enumerable:!0,get:function(){return Gnl.throwIfEmpty}});var Fnl=l5r();Object.defineProperty(Cn,"timeInterval",{enumerable:!0,get:function(){return Fnl.timeInterval}});var Znl=W8e();Object.defineProperty(Cn,"timeout",{enumerable:!0,get:function(){return Znl.timeout}});var Lnl=u5r();Object.defineProperty(Cn,"timeoutWith",{enumerable:!0,get:function(){return Lnl.timeoutWith}});var Vnl=g5r();Object.defineProperty(Cn,"timestamp",{enumerable:!0,get:function(){return Vnl.timestamp}});var Pnl=kTt();Object.defineProperty(Cn,"toArray",{enumerable:!0,get:function(){return Pnl.toArray}});var Wnl=A5r();Object.defineProperty(Cn,"window",{enumerable:!0,get:function(){return Wnl.window}});var Onl=d5r();Object.defineProperty(Cn,"windowCount",{enumerable:!0,get:function(){return Onl.windowCount}});var Mnl=p5r();Object.defineProperty(Cn,"windowTime",{enumerable:!0,get:function(){return Mnl.windowTime}});var Hnl=I5r();Object.defineProperty(Cn,"windowToggle",{enumerable:!0,get:function(){return Hnl.windowToggle}});var Ynl=h5r();Object.defineProperty(Cn,"windowWhen",{enumerable:!0,get:function(){return Ynl.windowWhen}});var Qnl=m5r();Object.defineProperty(Cn,"withLatestFrom",{enumerable:!0,get:function(){return Qnl.withLatestFrom}});var Xnl=C5r();Object.defineProperty(Cn,"zipAll",{enumerable:!0,get:function(){return Xnl.zipAll}});var Jnl=y5r();Object.defineProperty(Cn,"zipWith",{enumerable:!0,get:function(){return Jnl.zipWith}})});var gte=H(LV=>{"use strict";Object.defineProperty(LV,"__esModule",{value:!0});LV.PathIsFileException=LV.PathIsDirectoryException=LV.FileAlreadyExistException=LV.FileDoesNotExistException=LV.UnknownException=LV.BaseException=void 0;var Lle=class extends Error{constructor(t=""){super(t)}};LV.BaseException=Lle;var b5r=class extends Lle{constructor(t){super(t)}};LV.UnknownException=b5r;var E5r=class extends Lle{constructor(t){super(`Path "${t}" does not exist.`)}};LV.FileDoesNotExistException=E5r;var S5r=class extends Lle{constructor(t){super(`Path "${t}" already exist.`)}};LV.FileAlreadyExistException=S5r;var v5r=class extends Lle{constructor(t){super(`Path "${t}" is a directory.`)}};LV.PathIsDirectoryException=v5r;var B5r=class extends Lle{constructor(t){super(`Path "${t}" is a file.`)}};LV.PathIsFileException=B5r});var oes=H(__e=>{"use strict";Object.defineProperty(__e,"__esModule",{value:!0});__e.oneLine=Unl;__e.indentBy=Knl;__e.stripIndent=ses;__e.stripIndents=jnl;__e.trimNewlines=znl;function Unl(e,...t){return String.raw(e,...t).replace(/(?:\r?\n(?:\s*))+/gm," ").trim()}function Knl(e){let t="";for(;e--;)t+=" ";return(r,...n)=>t+ses(r,...n).replace(/\n/g,` +`+t)}function ses(e,...t){let r=String.raw(e,...t),n=r.match(/^[ \t]*(?=\S)/gm);if(n===null)return r;let a=Math.min(...n.map(l=>l.length)),o=new RegExp("^[ \\t]{"+a+"}","gm");return(a>0?r.replace(o,""):r).trim()}function jnl(e,...t){return String.raw(e,...t).split(` `).map(r=>r.trim()).join(` -`).trim()}function jnl(e,...t){return String.raw(e,...t).replace(/^(?:\r?\n)+/,"").replace(/(?:\r?\n(?:\s*))$/,"")}});var ues=H(Ate=>{"use strict";Object.defineProperty(Ate,"__esModule",{value:!0});Ate.decamelize=aes;Ate.dasherize=ril;Ate.camelize=ces;Ate.classify=nil;Ate.underscore=iil;Ate.capitalize=les;Ate.levenshtein=sil;var znl=/[ _]/g,qnl=/([a-z\d])([A-Z])/g,$nl=/(-|_|\.|\s)+(.)?/g,eil=/([a-z\d])([A-Z]+)/g,til=/-|\s+/g;function aes(e){return e.replace(qnl,"$1_$2").toLowerCase()}function ril(e){return aes(e).replace(znl,"-")}function ces(e){return e.replace($nl,(t,r,n)=>n?n.toUpperCase():"").replace(/^([A-Z])/,t=>t.toLowerCase())}function nil(e){return e.split(".").map(t=>les(ces(t))).join("")}function iil(e){return e.replace(eil,"$1_$2").replace(til,"_").toLowerCase()}function les(e){return e.charAt(0).toUpperCase()+e.slice(1)}function sil(e,t){if(e.length==0)return t.length;if(t.length==0)return e.length;let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=t.length;n++)for(let a=1;a<=e.length;a++)t.charAt(n-1)==e.charAt(a-1)?r[n][a]=r[n-1][a-1]:r[n][a]=Math.min(r[n-1][a-1]+1,r[n][a-1]+1,r[n-1][a]+1);return r[t.length][e.length]}});var ges=H(T5r=>{"use strict";Object.defineProperty(T5r,"__esModule",{value:!0});T5r.deepCopy=w5r;var fNt=Symbol();function w5r(e){if(Array.isArray(e))return e.map(t=>w5r(t));if(e&&typeof e=="object"){let t=e;if(t[fNt])return t[fNt];if(t.toJSON)return JSON.parse(t.toJSON());let r=Object.create(Object.getPrototypeOf(t));t[fNt]=r;for(let n of Object.getOwnPropertyNames(t))r[n]=w5r(t[n]);return delete t[fNt],r}else return e}});var pes=H(des=>{var Aes="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");des.encode=function(e){if(0<=e&&e{var oil=pes(),fes=5,Ies=1<>>=fes,a>0&&(n|=cil),r+=oil.encode(n);while(a>0);return r}});var J8e=H(UG=>{function uil(e,t,r){if(t in e)return e[t];if(arguments.length===3)return r;throw new Error('"'+t+'" is a required argument.')}UG.getArg=uil;var mes=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,gil=/^data:.+\,.+$/;function X8e(e){let t=e.match(mes);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}UG.urlParse=X8e;function oxe(e){let t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}UG.urlGenerate=oxe;var Ail=32;function dil(e){let t=[];return function(r){for(let a=0;aAil&&t.pop(),n}}var N5r=dil(function(t){let r=t,n=X8e(t);if(n){if(!n.path)return t;r=n.path}let a=UG.isAbsolute(r),o=[],l=0,A=0;for(;;)if(l=A,A=r.indexOf("/",l),A===-1){o.push(r.slice(l));break}else for(o.push(r.slice(l,A));A=0;A--){let I=o[A];I==="."?o.splice(A,1):I===".."?f++:f>0&&(I===""?(o.splice(A+1,f),f=0):(o.splice(A,2),f--))}return r=o.join("/"),r===""&&(r=a?"/":"."),n?(n.path=r,oxe(n)):r});UG.normalize=N5r;function Ces(e,t){e===""&&(e="."),t===""&&(t=".");let r=X8e(t),n=X8e(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),oxe(r);if(r||t.match(gil))return t;if(n&&!n.host&&!n.path)return n.host=t,oxe(n);let a=t.charAt(0)==="/"?t:N5r(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=a,oxe(n)):a}UG.join=Ces;UG.isAbsolute=function(e){return e.charAt(0)==="/"||mes.test(e)};function pil(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");let r=0;for(;t.indexOf(e+"/")!==0;){let n=e.lastIndexOf("/");if(n<0||(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/)))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}UG.relative=pil;var _es=function(){return!("__proto__"in Object.create(null))}();function yes(e){return e}function fil(e){return bes(e)?"$"+e:e}UG.toSetString=_es?yes:fil;function Iil(e){return bes(e)?e.slice(1):e}UG.fromSetString=_es?yes:Iil;function bes(e){if(!e)return!1;let t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(let r=t-10;r>=0;r--)if(e.charCodeAt(r)!==36)return!1;return!0}function hil(e,t,r){let n=axe(e.source,t.source);return n!==0||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:axe(e.name,t.name)}UG.compareByOriginalPositions=hil;function mil(e,t,r){let n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0||r)||(n=axe(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:axe(e.name,t.name)}UG.compareByGeneratedPositionsDeflated=mil;function axe(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function Cil(e,t){let r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=axe(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:axe(e.name,t.name)}UG.compareByGeneratedPositionsInflated=Cil;function _il(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}UG.parseSourceMapInput=_il;function yil(e,t,r){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),r){let n=X8e(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){let a=n.path.lastIndexOf("/");a>=0&&(n.path=n.path.substring(0,a+1))}t=Ces(oxe(n),t)}return N5r(t)}UG.computeSourceURL=yil});var k5r=H(Ees=>{var D5r=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){let n=new e;for(let a=0,o=t.length;a=0)return r;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&t{var Ses=J8e();function bil(e,t){let r=e.generatedLine,n=t.generatedLine,a=e.generatedColumn,o=t.generatedColumn;return n>r||n==r&&o>=a||Ses.compareByGeneratedPositionsInflated(e,t)<=0}var x5r=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(t,r){this._array.forEach(t,r)}add(t){bil(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(Ses.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};ves.MappingList=x5r});var G5r=H(wes=>{var U8e=R5r(),fT=J8e(),INt=k5r().ArraySet,Eil=Bes().MappingList,hNt=class e{constructor(t){t||(t={}),this._file=fT.getArg(t,"file",null),this._sourceRoot=fT.getArg(t,"sourceRoot",null),this._skipValidation=fT.getArg(t,"skipValidation",!1),this._sources=new INt,this._names=new INt,this._mappings=new Eil,this._sourcesContents=null}static fromSourceMap(t){let r=t.sourceRoot,n=new e({file:t.file,sourceRoot:r});return t.eachMapping(function(a){let o={generated:{line:a.generatedLine,column:a.generatedColumn}};a.source!=null&&(o.source=a.source,r!=null&&(o.source=fT.relative(r,o.source)),o.original={line:a.originalLine,column:a.originalColumn},a.name!=null&&(o.name=a.name)),n.addMapping(o)}),t.sources.forEach(function(a){let o=a;r!==null&&(o=fT.relative(r,a)),n._sources.has(o)||n._sources.add(o);let l=t.sourceContentFor(a);l!=null&&n.setSourceContent(a,l)}),n}addMapping(t){let r=fT.getArg(t,"generated"),n=fT.getArg(t,"original",null),a=fT.getArg(t,"source",null),o=fT.getArg(t,"name",null);this._skipValidation||this._validateMapping(r,n,a,o),a!=null&&(a=String(a),this._sources.has(a)||this._sources.add(a)),o!=null&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:a,name:o})}setSourceContent(t,r){let n=t;this._sourceRoot!=null&&(n=fT.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[fT.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[fT.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))}applySourceMap(t,r,n){let a=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);a=t.file}let o=this._sourceRoot;o!=null&&(a=fT.relative(o,a));let l=this._mappings.toArray().length>0?new INt:this._sources,A=new INt;this._mappings.unsortedForEach(function(f){if(f.source===a&&f.originalLine!=null){let b=t.originalPositionFor({line:f.originalLine,column:f.originalColumn});b.source!=null&&(f.source=b.source,n!=null&&(f.source=fT.join(n,f.source)),o!=null&&(f.source=fT.relative(o,f.source)),f.originalLine=b.line,f.originalColumn=b.column,b.name!=null&&(f.name=b.name))}let I=f.source;I!=null&&!l.has(I)&&l.add(I);let C=f.name;C!=null&&!A.has(C)&&A.add(C)},this),this._sources=l,this._names=A,t.sources.forEach(function(f){let I=t.sourceContentFor(f);I!=null&&(n!=null&&(f=fT.join(n,f)),o!=null&&(f=fT.relative(o,f)),this.setSourceContent(f,I))},this)}_validateMapping(t,r,n,a){if(r&&typeof r.line!="number"&&typeof r.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!r&&!n&&!a)){if(!(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:n,original:r,name:a}))}}_serializeMappings(){let t=0,r=1,n=0,a=0,o=0,l=0,A="",f,I,C,b,E=this._mappings.toArray();for(let N=0,B=E.length;N0){if(!fT.compareByGeneratedPositionsInflated(I,E[N-1]))continue;f+=","}f+=U8e.encode(I.generatedColumn-t),t=I.generatedColumn,I.source!=null&&(b=this._sources.indexOf(I.source),f+=U8e.encode(b-l),l=b,f+=U8e.encode(I.originalLine-1-a),a=I.originalLine-1,f+=U8e.encode(I.originalColumn-n),n=I.originalColumn,I.name!=null&&(C=this._names.indexOf(I.name),f+=U8e.encode(C-o),o=C)),A+=f}return A}_generateSourcesContent(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=fT.relative(r,n));let a=fT.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null},this)}toJSON(){let t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}};hNt.prototype._version=3;wes.SourceMapGenerator=hNt});var Tes=H(y_e=>{y_e.GREATEST_LOWER_BOUND=1;y_e.LEAST_UPPER_BOUND=2;function F5r(e,t,r,n,a,o){let l=Math.floor((t-e)/2)+e,A=a(r,n[l],!0);return A===0?l:A>0?t-l>1?F5r(l,t,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?t1?F5r(e,l,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?l:e<0?-1:e}y_e.search=function(t,r,n,a){if(r.length===0)return-1;let o=F5r(-1,r.length,t,r,n,a||y_e.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&n(r[o],r[o-1],!0)===0;)--o;return o}});var Z5r=H((X6u,K8e)=>{var Sil=function(){return typeof window<"u"&&this===window}.call();if(Sil){let e=null;K8e.exports=function(){if(typeof e=="string")return fetch(e).then(r=>r.arrayBuffer());if(e instanceof ArrayBuffer)return Promise.resolve(e);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},K8e.exports.initialize=t=>e=t}else{let e=wt("fs"),t=wt("path");K8e.exports=function(){return new Promise((n,a)=>{let o=t.join(__dirname,"mappings.wasm");e.readFile(o,null,(l,A)=>{if(l){a(l);return}n(A.buffer)})})},K8e.exports.initialize=r=>{console.debug("SourceMapConsumer.initialize is a no-op when running in node.js")}}});var Nes=H((J6u,Res)=>{var vil=Z5r();function Bil(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}var j8e=null;Res.exports=function(){if(j8e)return j8e;let t=[];return j8e=vil().then(r=>WebAssembly.instantiate(r,{env:{mapping_callback(n,a,o,l,A,f,I,C,b,E){let N=new Bil;N.generatedLine=n+1,N.generatedColumn=a,o&&(N.lastGeneratedColumn=l-1),A&&(N.source=f,N.originalLine=I+1,N.originalColumn=C,b&&(N.name=E)),t[t.length-1](N)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}})).then(r=>({exports:r.instance.exports,withMappingCallback:(n,a)=>{t.push(n);try{a()}finally{t.pop()}}})).then(null,r=>{throw j8e=null,r}),j8e}});var Des=H(_Nt=>{var Jd=J8e(),L5r=Tes(),mNt=k5r().ArraySet,U6u=R5r(),wil=Z5r(),Til=Nes(),V5r=Symbol("smcInternal"),Jv=class e{constructor(t,r){return t==V5r?Promise.resolve(this):Ril(t,r)}static initialize(t){wil.initialize(t["lib/mappings.wasm"])}static fromSourceMap(t,r){return Nil(t,r)}static async with(t,r,n){let a=await new e(t,r);try{return await n(a)}finally{a.destroy()}}_parseMappings(t,r){throw new Error("Subclasses must implement _parseMappings")}eachMapping(t,r,n){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(t){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};Jv.prototype._version=3;Jv.GENERATED_ORDER=1;Jv.ORIGINAL_ORDER=2;Jv.GREATEST_LOWER_BOUND=1;Jv.LEAST_UPPER_BOUND=2;_Nt.SourceMapConsumer=Jv;var cxe=class e extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sources"),A=Jd.getArg(a,"names",[]),f=Jd.getArg(a,"sourceRoot",null),I=Jd.getArg(a,"sourcesContent",null),C=Jd.getArg(a,"mappings"),b=Jd.getArg(a,"file",null);if(o!=n._version)throw new Error("Unsupported version: "+o);return f&&(f=Jd.normalize(f)),l=l.map(String).map(Jd.normalize).map(function(E){return f&&Jd.isAbsolute(f)&&Jd.isAbsolute(E)?Jd.relative(f,E):E}),n._names=mNt.fromArray(A.map(String),!0),n._sources=mNt.fromArray(l,!0),n._absoluteSources=n._sources.toArray().map(function(E){return Jd.computeSourceURL(f,E,r)}),n.sourceRoot=f,n.sourcesContent=I,n._mappings=C,n._sourceMapURL=r,n.file=b,n._computedColumnSpans=!1,n._mappingsPtr=0,n._wasm=null,Til().then(E=>(n._wasm=E,n))})}_findSourceIndex(t){let r=t;if(this.sourceRoot!=null&&(r=Jd.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(let n=0;n{A.source!==null&&(A.source=this._sources.at(A.source),A.source=Jd.computeSourceURL(l,A.source,this._sourceMapURL),A.name!==null&&(A.name=this._names.at(A.name))),t.call(a,A)},()=>{switch(o){case Jv.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case Jv.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}})}allGeneratedPositionsFor(t){let r=Jd.getArg(t,"source"),n=Jd.getArg(t,"line"),a=t.column||0;if(r=this._findSourceIndex(r),r<0)return[];if(n<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");let o=[];return this._wasm.withMappingCallback(l=>{let A=l.lastGeneratedColumn;this._computedColumnSpans&&A===null&&(A=1/0),o.push({line:l.generatedLine,column:l.generatedColumn,lastColumn:A})},()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),r,n-1,"column"in t,a)}),o}destroy(){this._mappingsPtr!==0&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(t){let r={generatedLine:Jd.getArg(t,"line"),generatedColumn:Jd.getArg(t,"column")};if(r.generatedLine<1)throw new Error("Line numbers must be >= 1");if(r.generatedColumn<0)throw new Error("Column numbers must be >= 0");let n=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);n==null&&(n=Jv.GREATEST_LOWER_BOUND);let a;if(this._wasm.withMappingCallback(o=>a=o,()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),r.generatedLine-1,r.generatedColumn,n)}),a&&a.generatedLine===r.generatedLine){let o=Jd.getArg(a,"source",null);o!==null&&(o=this._sources.at(o),o=Jd.computeSourceURL(this.sourceRoot,o,this._sourceMapURL));let l=Jd.getArg(a,"name",null);return l!==null&&(l=this._names.at(l)),{source:o,line:Jd.getArg(a,"originalLine",null),column:Jd.getArg(a,"originalColumn",null),name:l}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1}sourceContentFor(t,r){if(!this.sourcesContent)return null;let n=this._findSourceIndex(t);if(n>=0)return this.sourcesContent[n];let a=t;this.sourceRoot!=null&&(a=Jd.relative(this.sourceRoot,a));let o;if(this.sourceRoot!=null&&(o=Jd.urlParse(this.sourceRoot))){let l=a.replace(/^file:\/\//,"");if(o.scheme=="file"&&this._sources.has(l))return this.sourcesContent[this._sources.indexOf(l)];if((!o.path||o.path=="/")&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(r)return null;throw new Error('"'+a+'" is not in the SourceMap.')}generatedPositionFor(t){let r=Jd.getArg(t,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};let n={source:r,originalLine:Jd.getArg(t,"line"),originalColumn:Jd.getArg(t,"column")};if(n.originalLine<1)throw new Error("Line numbers must be >= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);a==null&&(a=Jv.GREATEST_LOWER_BOUND);let o;if(this._wasm.withMappingCallback(l=>o=l,()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),n.source,n.originalLine-1,n.originalColumn,a)}),o&&o.source===n.source){let l=o.lastGeneratedColumn;return this._computedColumnSpans&&l===null&&(l=1/0),{line:Jd.getArg(o,"generatedLine",null),column:Jd.getArg(o,"generatedColumn",null),lastColumn:l}}return{line:null,column:null,lastColumn:null}}};cxe.prototype.consumer=Jv;_Nt.BasicSourceMapConsumer=cxe;var CNt=class extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sections");if(o!=n._version)throw new Error("Unsupported version: "+o);n._sources=new mNt,n._names=new mNt,n.__generatedMappings=null,n.__originalMappings=null,n.__generatedMappingsUnsorted=null,n.__originalMappingsUnsorted=null;let A={line:-1,column:0};return Promise.all(l.map(f=>{if(f.url)throw new Error("Support for url field in sections not implemented.");let I=Jd.getArg(f,"offset"),C=Jd.getArg(I,"line"),b=Jd.getArg(I,"column");if(C({generatedOffset:{generatedLine:C+1,generatedColumn:b+1},consumer:N}))})).then(f=>(n._sections=f,n))})}get _generatedMappings(){return this.__generatedMappings||this._sortGeneratedMappings(),this.__generatedMappings}get _originalMappings(){return this.__originalMappings||this._sortOriginalMappings(),this.__originalMappings}get _generatedMappingsUnsorted(){return this.__generatedMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappingsUnsorted}get _originalMappingsUnsorted(){return this.__originalMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappingsUnsorted}_sortGeneratedMappings(){let t=this._generatedMappingsUnsorted;t.sort(Jd.compareByGeneratedPositionsDeflated),this.__generatedMappings=t}_sortOriginalMappings(){let t=this._originalMappingsUnsorted;t.sort(Jd.compareByOriginalPositions),this.__originalMappings=t}get sources(){let t=[];for(let r=0;rA.push(f));for(let f=0;f= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=[],o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",Jd.compareByOriginalPositions,L5r.LEAST_UPPER_BOUND);if(o>=0){let l=this._originalMappings[o];if(t.column===void 0){let A=l.originalLine;for(;l&&l.originalLine===A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}else{let A=l.originalColumn;for(;l&&l.originalLine===r&&l.originalColumn==A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}}return a}destroy(){for(let t=0;t{var Dil=G5r().SourceMapGenerator,yNt=J8e(),kil=/(\r?\n)/,xil=10,lxe="$$$isSourceNode$$$",P5r=class e{constructor(t,r,n,a,o){this.children=[],this.sourceContents={},this.line=t??null,this.column=r??null,this.source=n??null,this.name=o??null,this[lxe]=!0,a!=null&&this.add(a)}static fromStringWithSourceMap(t,r,n){let a=new e,o=t.split(kil),l=0,A=function(){let N=F(),B=F()||"";return N+B;function F(){return l=0;r--)this.prepend(t[r]);else if(t[lxe]||typeof t=="string")this.children.unshift(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this}walk(t){let r;for(let n=0,a=this.children.length;n0){for(r=[],n=0;n{bNt.SourceMapGenerator=G5r().SourceMapGenerator;bNt.SourceMapConsumer=Des().SourceMapConsumer;bNt.SourceNode=xes().SourceNode});var Les=H(ENt=>{"use strict";Object.defineProperty(ENt,"__esModule",{value:!0});ENt.templateParser=Zes;ENt.template=Wil;var iL=Ges(),Gil=/<%=([\s\S]+?)%>/g,Fil=/<%#([\s\S]+?)%>/g,Zil=/<%-([\s\S]+?)%>/g,Lil=/<%([\s\S]+?)%>/g,W5r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Fes=new RegExp(`[${Object.keys(W5r).join("")}]`,"g");function uxe(e,t){let r=1,n=0;for(let a=0;aC.source).join("|")+"|$","g"),o=e.split(a),l=0,A=uxe(e,l),f,I=n.length+1;for(let C=0;C{"use strict";Object.defineProperty(Ate,"__esModule",{value:!0});Ate.decamelize=aes;Ate.dasherize=nil;Ate.camelize=ces;Ate.classify=iil;Ate.underscore=sil;Ate.capitalize=les;Ate.levenshtein=oil;var qnl=/[ _]/g,$nl=/([a-z\d])([A-Z])/g,eil=/(-|_|\.|\s)+(.)?/g,til=/([a-z\d])([A-Z]+)/g,ril=/-|\s+/g;function aes(e){return e.replace($nl,"$1_$2").toLowerCase()}function nil(e){return aes(e).replace(qnl,"-")}function ces(e){return e.replace(eil,(t,r,n)=>n?n.toUpperCase():"").replace(/^([A-Z])/,t=>t.toLowerCase())}function iil(e){return e.split(".").map(t=>les(ces(t))).join("")}function sil(e){return e.replace(til,"$1_$2").replace(ril,"_").toLowerCase()}function les(e){return e.charAt(0).toUpperCase()+e.slice(1)}function oil(e,t){if(e.length==0)return t.length;if(t.length==0)return e.length;let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=t.length;n++)for(let a=1;a<=e.length;a++)t.charAt(n-1)==e.charAt(a-1)?r[n][a]=r[n-1][a-1]:r[n][a]=Math.min(r[n-1][a-1]+1,r[n][a-1]+1,r[n-1][a]+1);return r[t.length][e.length]}});var ges=H(T5r=>{"use strict";Object.defineProperty(T5r,"__esModule",{value:!0});T5r.deepCopy=w5r;var fNt=Symbol();function w5r(e){if(Array.isArray(e))return e.map(t=>w5r(t));if(e&&typeof e=="object"){let t=e;if(t[fNt])return t[fNt];if(t.toJSON)return JSON.parse(t.toJSON());let r=Object.create(Object.getPrototypeOf(t));t[fNt]=r;for(let n of Object.getOwnPropertyNames(t))r[n]=w5r(t[n]);return delete t[fNt],r}else return e}});var pes=H(des=>{var Aes="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");des.encode=function(e){if(0<=e&&e{var ail=pes(),fes=5,Ies=1<>>=fes,a>0&&(n|=lil),r+=ail.encode(n);while(a>0);return r}});var J8e=H(UG=>{function gil(e,t,r){if(t in e)return e[t];if(arguments.length===3)return r;throw new Error('"'+t+'" is a required argument.')}UG.getArg=gil;var mes=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,Ail=/^data:.+\,.+$/;function X8e(e){let t=e.match(mes);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}UG.urlParse=X8e;function oxe(e){let t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}UG.urlGenerate=oxe;var dil=32;function pil(e){let t=[];return function(r){for(let a=0;adil&&t.pop(),n}}var N5r=pil(function(t){let r=t,n=X8e(t);if(n){if(!n.path)return t;r=n.path}let a=UG.isAbsolute(r),o=[],l=0,A=0;for(;;)if(l=A,A=r.indexOf("/",l),A===-1){o.push(r.slice(l));break}else for(o.push(r.slice(l,A));A=0;A--){let I=o[A];I==="."?o.splice(A,1):I===".."?f++:f>0&&(I===""?(o.splice(A+1,f),f=0):(o.splice(A,2),f--))}return r=o.join("/"),r===""&&(r=a?"/":"."),n?(n.path=r,oxe(n)):r});UG.normalize=N5r;function Ces(e,t){e===""&&(e="."),t===""&&(t=".");let r=X8e(t),n=X8e(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),oxe(r);if(r||t.match(Ail))return t;if(n&&!n.host&&!n.path)return n.host=t,oxe(n);let a=t.charAt(0)==="/"?t:N5r(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=a,oxe(n)):a}UG.join=Ces;UG.isAbsolute=function(e){return e.charAt(0)==="/"||mes.test(e)};function fil(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");let r=0;for(;t.indexOf(e+"/")!==0;){let n=e.lastIndexOf("/");if(n<0||(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/)))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}UG.relative=fil;var _es=function(){return!("__proto__"in Object.create(null))}();function yes(e){return e}function Iil(e){return bes(e)?"$"+e:e}UG.toSetString=_es?yes:Iil;function hil(e){return bes(e)?e.slice(1):e}UG.fromSetString=_es?yes:hil;function bes(e){if(!e)return!1;let t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(let r=t-10;r>=0;r--)if(e.charCodeAt(r)!==36)return!1;return!0}function mil(e,t,r){let n=axe(e.source,t.source);return n!==0||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:axe(e.name,t.name)}UG.compareByOriginalPositions=mil;function Cil(e,t,r){let n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0||r)||(n=axe(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:axe(e.name,t.name)}UG.compareByGeneratedPositionsDeflated=Cil;function axe(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function _il(e,t){let r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=axe(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:axe(e.name,t.name)}UG.compareByGeneratedPositionsInflated=_il;function yil(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}UG.parseSourceMapInput=yil;function bil(e,t,r){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),r){let n=X8e(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){let a=n.path.lastIndexOf("/");a>=0&&(n.path=n.path.substring(0,a+1))}t=Ces(oxe(n),t)}return N5r(t)}UG.computeSourceURL=bil});var k5r=H(Ees=>{var D5r=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){let n=new e;for(let a=0,o=t.length;a=0)return r;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&t{var Ses=J8e();function Eil(e,t){let r=e.generatedLine,n=t.generatedLine,a=e.generatedColumn,o=t.generatedColumn;return n>r||n==r&&o>=a||Ses.compareByGeneratedPositionsInflated(e,t)<=0}var x5r=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(t,r){this._array.forEach(t,r)}add(t){Eil(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(Ses.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};ves.MappingList=x5r});var G5r=H(wes=>{var U8e=R5r(),fT=J8e(),INt=k5r().ArraySet,Sil=Bes().MappingList,hNt=class e{constructor(t){t||(t={}),this._file=fT.getArg(t,"file",null),this._sourceRoot=fT.getArg(t,"sourceRoot",null),this._skipValidation=fT.getArg(t,"skipValidation",!1),this._sources=new INt,this._names=new INt,this._mappings=new Sil,this._sourcesContents=null}static fromSourceMap(t){let r=t.sourceRoot,n=new e({file:t.file,sourceRoot:r});return t.eachMapping(function(a){let o={generated:{line:a.generatedLine,column:a.generatedColumn}};a.source!=null&&(o.source=a.source,r!=null&&(o.source=fT.relative(r,o.source)),o.original={line:a.originalLine,column:a.originalColumn},a.name!=null&&(o.name=a.name)),n.addMapping(o)}),t.sources.forEach(function(a){let o=a;r!==null&&(o=fT.relative(r,a)),n._sources.has(o)||n._sources.add(o);let l=t.sourceContentFor(a);l!=null&&n.setSourceContent(a,l)}),n}addMapping(t){let r=fT.getArg(t,"generated"),n=fT.getArg(t,"original",null),a=fT.getArg(t,"source",null),o=fT.getArg(t,"name",null);this._skipValidation||this._validateMapping(r,n,a,o),a!=null&&(a=String(a),this._sources.has(a)||this._sources.add(a)),o!=null&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:a,name:o})}setSourceContent(t,r){let n=t;this._sourceRoot!=null&&(n=fT.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[fT.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[fT.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))}applySourceMap(t,r,n){let a=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);a=t.file}let o=this._sourceRoot;o!=null&&(a=fT.relative(o,a));let l=this._mappings.toArray().length>0?new INt:this._sources,A=new INt;this._mappings.unsortedForEach(function(f){if(f.source===a&&f.originalLine!=null){let b=t.originalPositionFor({line:f.originalLine,column:f.originalColumn});b.source!=null&&(f.source=b.source,n!=null&&(f.source=fT.join(n,f.source)),o!=null&&(f.source=fT.relative(o,f.source)),f.originalLine=b.line,f.originalColumn=b.column,b.name!=null&&(f.name=b.name))}let I=f.source;I!=null&&!l.has(I)&&l.add(I);let C=f.name;C!=null&&!A.has(C)&&A.add(C)},this),this._sources=l,this._names=A,t.sources.forEach(function(f){let I=t.sourceContentFor(f);I!=null&&(n!=null&&(f=fT.join(n,f)),o!=null&&(f=fT.relative(o,f)),this.setSourceContent(f,I))},this)}_validateMapping(t,r,n,a){if(r&&typeof r.line!="number"&&typeof r.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!r&&!n&&!a)){if(!(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:n,original:r,name:a}))}}_serializeMappings(){let t=0,r=1,n=0,a=0,o=0,l=0,A="",f,I,C,b,E=this._mappings.toArray();for(let N=0,B=E.length;N0){if(!fT.compareByGeneratedPositionsInflated(I,E[N-1]))continue;f+=","}f+=U8e.encode(I.generatedColumn-t),t=I.generatedColumn,I.source!=null&&(b=this._sources.indexOf(I.source),f+=U8e.encode(b-l),l=b,f+=U8e.encode(I.originalLine-1-a),a=I.originalLine-1,f+=U8e.encode(I.originalColumn-n),n=I.originalColumn,I.name!=null&&(C=this._names.indexOf(I.name),f+=U8e.encode(C-o),o=C)),A+=f}return A}_generateSourcesContent(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=fT.relative(r,n));let a=fT.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null},this)}toJSON(){let t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}};hNt.prototype._version=3;wes.SourceMapGenerator=hNt});var Tes=H(y_e=>{y_e.GREATEST_LOWER_BOUND=1;y_e.LEAST_UPPER_BOUND=2;function F5r(e,t,r,n,a,o){let l=Math.floor((t-e)/2)+e,A=a(r,n[l],!0);return A===0?l:A>0?t-l>1?F5r(l,t,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?t1?F5r(e,l,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?l:e<0?-1:e}y_e.search=function(t,r,n,a){if(r.length===0)return-1;let o=F5r(-1,r.length,t,r,n,a||y_e.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&n(r[o],r[o-1],!0)===0;)--o;return o}});var Z5r=H((J6u,K8e)=>{var vil=function(){return typeof window<"u"&&this===window}.call();if(vil){let e=null;K8e.exports=function(){if(typeof e=="string")return fetch(e).then(r=>r.arrayBuffer());if(e instanceof ArrayBuffer)return Promise.resolve(e);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},K8e.exports.initialize=t=>e=t}else{let e=wt("fs"),t=wt("path");K8e.exports=function(){return new Promise((n,a)=>{let o=t.join(__dirname,"mappings.wasm");e.readFile(o,null,(l,A)=>{if(l){a(l);return}n(A.buffer)})})},K8e.exports.initialize=r=>{console.debug("SourceMapConsumer.initialize is a no-op when running in node.js")}}});var Nes=H((U6u,Res)=>{var Bil=Z5r();function wil(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}var j8e=null;Res.exports=function(){if(j8e)return j8e;let t=[];return j8e=Bil().then(r=>WebAssembly.instantiate(r,{env:{mapping_callback(n,a,o,l,A,f,I,C,b,E){let N=new wil;N.generatedLine=n+1,N.generatedColumn=a,o&&(N.lastGeneratedColumn=l-1),A&&(N.source=f,N.originalLine=I+1,N.originalColumn=C,b&&(N.name=E)),t[t.length-1](N)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}})).then(r=>({exports:r.instance.exports,withMappingCallback:(n,a)=>{t.push(n);try{a()}finally{t.pop()}}})).then(null,r=>{throw j8e=null,r}),j8e}});var Des=H(_Nt=>{var Jd=J8e(),L5r=Tes(),mNt=k5r().ArraySet,K6u=R5r(),Til=Z5r(),Ril=Nes(),V5r=Symbol("smcInternal"),Jv=class e{constructor(t,r){return t==V5r?Promise.resolve(this):Nil(t,r)}static initialize(t){Til.initialize(t["lib/mappings.wasm"])}static fromSourceMap(t,r){return Dil(t,r)}static async with(t,r,n){let a=await new e(t,r);try{return await n(a)}finally{a.destroy()}}_parseMappings(t,r){throw new Error("Subclasses must implement _parseMappings")}eachMapping(t,r,n){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(t){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};Jv.prototype._version=3;Jv.GENERATED_ORDER=1;Jv.ORIGINAL_ORDER=2;Jv.GREATEST_LOWER_BOUND=1;Jv.LEAST_UPPER_BOUND=2;_Nt.SourceMapConsumer=Jv;var cxe=class e extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sources"),A=Jd.getArg(a,"names",[]),f=Jd.getArg(a,"sourceRoot",null),I=Jd.getArg(a,"sourcesContent",null),C=Jd.getArg(a,"mappings"),b=Jd.getArg(a,"file",null);if(o!=n._version)throw new Error("Unsupported version: "+o);return f&&(f=Jd.normalize(f)),l=l.map(String).map(Jd.normalize).map(function(E){return f&&Jd.isAbsolute(f)&&Jd.isAbsolute(E)?Jd.relative(f,E):E}),n._names=mNt.fromArray(A.map(String),!0),n._sources=mNt.fromArray(l,!0),n._absoluteSources=n._sources.toArray().map(function(E){return Jd.computeSourceURL(f,E,r)}),n.sourceRoot=f,n.sourcesContent=I,n._mappings=C,n._sourceMapURL=r,n.file=b,n._computedColumnSpans=!1,n._mappingsPtr=0,n._wasm=null,Ril().then(E=>(n._wasm=E,n))})}_findSourceIndex(t){let r=t;if(this.sourceRoot!=null&&(r=Jd.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(let n=0;n{A.source!==null&&(A.source=this._sources.at(A.source),A.source=Jd.computeSourceURL(l,A.source,this._sourceMapURL),A.name!==null&&(A.name=this._names.at(A.name))),t.call(a,A)},()=>{switch(o){case Jv.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case Jv.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}})}allGeneratedPositionsFor(t){let r=Jd.getArg(t,"source"),n=Jd.getArg(t,"line"),a=t.column||0;if(r=this._findSourceIndex(r),r<0)return[];if(n<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");let o=[];return this._wasm.withMappingCallback(l=>{let A=l.lastGeneratedColumn;this._computedColumnSpans&&A===null&&(A=1/0),o.push({line:l.generatedLine,column:l.generatedColumn,lastColumn:A})},()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),r,n-1,"column"in t,a)}),o}destroy(){this._mappingsPtr!==0&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(t){let r={generatedLine:Jd.getArg(t,"line"),generatedColumn:Jd.getArg(t,"column")};if(r.generatedLine<1)throw new Error("Line numbers must be >= 1");if(r.generatedColumn<0)throw new Error("Column numbers must be >= 0");let n=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);n==null&&(n=Jv.GREATEST_LOWER_BOUND);let a;if(this._wasm.withMappingCallback(o=>a=o,()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),r.generatedLine-1,r.generatedColumn,n)}),a&&a.generatedLine===r.generatedLine){let o=Jd.getArg(a,"source",null);o!==null&&(o=this._sources.at(o),o=Jd.computeSourceURL(this.sourceRoot,o,this._sourceMapURL));let l=Jd.getArg(a,"name",null);return l!==null&&(l=this._names.at(l)),{source:o,line:Jd.getArg(a,"originalLine",null),column:Jd.getArg(a,"originalColumn",null),name:l}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1}sourceContentFor(t,r){if(!this.sourcesContent)return null;let n=this._findSourceIndex(t);if(n>=0)return this.sourcesContent[n];let a=t;this.sourceRoot!=null&&(a=Jd.relative(this.sourceRoot,a));let o;if(this.sourceRoot!=null&&(o=Jd.urlParse(this.sourceRoot))){let l=a.replace(/^file:\/\//,"");if(o.scheme=="file"&&this._sources.has(l))return this.sourcesContent[this._sources.indexOf(l)];if((!o.path||o.path=="/")&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(r)return null;throw new Error('"'+a+'" is not in the SourceMap.')}generatedPositionFor(t){let r=Jd.getArg(t,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};let n={source:r,originalLine:Jd.getArg(t,"line"),originalColumn:Jd.getArg(t,"column")};if(n.originalLine<1)throw new Error("Line numbers must be >= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);a==null&&(a=Jv.GREATEST_LOWER_BOUND);let o;if(this._wasm.withMappingCallback(l=>o=l,()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),n.source,n.originalLine-1,n.originalColumn,a)}),o&&o.source===n.source){let l=o.lastGeneratedColumn;return this._computedColumnSpans&&l===null&&(l=1/0),{line:Jd.getArg(o,"generatedLine",null),column:Jd.getArg(o,"generatedColumn",null),lastColumn:l}}return{line:null,column:null,lastColumn:null}}};cxe.prototype.consumer=Jv;_Nt.BasicSourceMapConsumer=cxe;var CNt=class extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sections");if(o!=n._version)throw new Error("Unsupported version: "+o);n._sources=new mNt,n._names=new mNt,n.__generatedMappings=null,n.__originalMappings=null,n.__generatedMappingsUnsorted=null,n.__originalMappingsUnsorted=null;let A={line:-1,column:0};return Promise.all(l.map(f=>{if(f.url)throw new Error("Support for url field in sections not implemented.");let I=Jd.getArg(f,"offset"),C=Jd.getArg(I,"line"),b=Jd.getArg(I,"column");if(C({generatedOffset:{generatedLine:C+1,generatedColumn:b+1},consumer:N}))})).then(f=>(n._sections=f,n))})}get _generatedMappings(){return this.__generatedMappings||this._sortGeneratedMappings(),this.__generatedMappings}get _originalMappings(){return this.__originalMappings||this._sortOriginalMappings(),this.__originalMappings}get _generatedMappingsUnsorted(){return this.__generatedMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappingsUnsorted}get _originalMappingsUnsorted(){return this.__originalMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappingsUnsorted}_sortGeneratedMappings(){let t=this._generatedMappingsUnsorted;t.sort(Jd.compareByGeneratedPositionsDeflated),this.__generatedMappings=t}_sortOriginalMappings(){let t=this._originalMappingsUnsorted;t.sort(Jd.compareByOriginalPositions),this.__originalMappings=t}get sources(){let t=[];for(let r=0;rA.push(f));for(let f=0;f= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=[],o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",Jd.compareByOriginalPositions,L5r.LEAST_UPPER_BOUND);if(o>=0){let l=this._originalMappings[o];if(t.column===void 0){let A=l.originalLine;for(;l&&l.originalLine===A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}else{let A=l.originalColumn;for(;l&&l.originalLine===r&&l.originalColumn==A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}}return a}destroy(){for(let t=0;t{var kil=G5r().SourceMapGenerator,yNt=J8e(),xil=/(\r?\n)/,Gil=10,lxe="$$$isSourceNode$$$",P5r=class e{constructor(t,r,n,a,o){this.children=[],this.sourceContents={},this.line=t??null,this.column=r??null,this.source=n??null,this.name=o??null,this[lxe]=!0,a!=null&&this.add(a)}static fromStringWithSourceMap(t,r,n){let a=new e,o=t.split(xil),l=0,A=function(){let N=F(),B=F()||"";return N+B;function F(){return l=0;r--)this.prepend(t[r]);else if(t[lxe]||typeof t=="string")this.children.unshift(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this}walk(t){let r;for(let n=0,a=this.children.length;n0){for(r=[],n=0;n{bNt.SourceMapGenerator=G5r().SourceMapGenerator;bNt.SourceMapConsumer=Des().SourceMapConsumer;bNt.SourceNode=xes().SourceNode});var Les=H(ENt=>{"use strict";Object.defineProperty(ENt,"__esModule",{value:!0});ENt.templateParser=Zes;ENt.template=Oil;var iL=Ges(),Fil=/<%=([\s\S]+?)%>/g,Zil=/<%#([\s\S]+?)%>/g,Lil=/<%-([\s\S]+?)%>/g,Vil=/<%([\s\S]+?)%>/g,W5r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Fes=new RegExp(`[${Object.keys(W5r).join("")}]`,"g");function uxe(e,t){let r=1,n=0;for(let a=0;aC.source).join("|")+"|$","g"),o=e.split(a),l=0,A=uxe(e,l),f,I=n.length+1;for(let C=0;C{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0});Vle.PartiallyOrderedSet=Vle.CircularDependencyFoundException=Vle.DependencyNotFoundException=void 0;var Ves=gte(),SNt=class extends Ves.BaseException{constructor(){super("One of the dependencies is not part of the set.")}};Vle.DependencyNotFoundException=SNt;var z8e=class extends Ves.BaseException{constructor(){super("Circular dependencies found.")}};Vle.CircularDependencyFoundException=z8e;var O5r=class{_items=new Map;_checkCircularDependencies(t,r){if(r.has(t))throw new z8e;r.forEach(n=>this._checkCircularDependencies(t,this._items.get(n)||new Set))}clear(){this._items.clear()}has(t){return this._items.has(t)}get size(){return this._items.size}forEach(t,r){for(let n of this)t.call(r,n,n,this)}*entries(){for(let t of this)yield[t,t]}keys(){return this.values()}values(){return this[Symbol.iterator]()}add(t,r=new Set){if(Array.isArray(r)&&(r=new Set(r)),this._items.has(t)){let n=this._items.get(t)||new Set,a=!0;for(let o of r)if(!n.has(o)){a=!1;break}if(a){for(let o of n)if(!r.has(o)){a=!1;break}}if(a)return this;this._items.delete(t)}for(let n of r)if(!this._items.has(n))throw new SNt;return this._checkCircularDependencies(t,r),this._items.set(t,new Set(r)),this}delete(t){return this._items.has(t)?(this._items.forEach(r=>r.delete(t)),this._items.delete(t)):!1}*[Symbol.iterator](){let t=new Map(this._items);for(let[r,n]of t.entries())t.set(r,new Set(n));for(;t.size>0;){let r=[];for(let[n,a]of t.entries())a.size==0&&r.push(n);for(let n of r)t.forEach(a=>a.delete(n)),t.delete(n),yield n;if(r.length==0)throw new z8e}}get[Symbol.toStringTag](){return"Set"}};Vle.PartiallyOrderedSet=O5r});var Wes=H(vNt=>{"use strict";Object.defineProperty(vNt,"__esModule",{value:!0});vNt.PriorityQueue=void 0;var M5r=class{_comparator;_items=new Array;constructor(t){this._comparator=t}clear(){this._items=new Array}push(t){let r=this._items.findIndex(n=>this._comparator(t,n)<=0);r===-1?this._items.push(t):this._items.splice(r,0,t)}pop(){if(this._items.length!==0)return this._items.splice(0,1)[0]}peek(){if(this._items.length!==0)return this._items[0]}get size(){return this._items.length}toArray(){return this._items.slice()}};vNt.PriorityQueue=M5r});var Oes=H(H5r=>{"use strict";Object.defineProperty(H5r,"__esModule",{value:!0});H5r.isPromise=Oil;function Oil(e){return!!e&&typeof e.then=="function"}});var Y5r=H(ZR=>{"use strict";var Mes=ZR&&ZR.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Mil=ZR&&ZR.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hes=ZR&&ZR.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(BNt,"__esModule",{value:!0});BNt.visitJson=Qil;BNt.visitJsonSchema=Xil;var KG=qb(),Ple=oPr();function Yes(e,t){if(!(typeof e!="object"||e===null)){if(typeof e.properties=="object"||e.type=="object")return typeof e.properties=="object"&&typeof e.properties[t]=="object"?e.properties[t]:typeof e.additionalProperties=="object"?e.additionalProperties:void 0;if(typeof e.items=="object"||e.type=="array")return typeof e.items=="object"?e.items:void 0}}function Q5r(e,t,r,n,a,o,l){if((n===!0||n===!1)&&(n=void 0),n&&n.hasOwnProperty("$ref")&&typeof n.$ref=="string"&&a){let f=a(n.$ref,o);n=f.schema,o=f.context}let A=t(e,r,n,l);return((0,KG.isObservable)(A)?A:(0,KG.of)(A)).pipe((0,KG.concatMap)(f=>Array.isArray(f)?(0,KG.concat)((0,KG.from)(f).pipe((0,KG.mergeMap)((I,C)=>Q5r(I,t,(0,Ple.joinJsonPointer)(r,""+C),Yes(n,""+C),a,o,l||f).pipe((0,KG.tap)(b=>f[C]=b))),(0,KG.ignoreElements)()),(0,KG.of)(f)):typeof f=="object"&&f!==null?(0,KG.concat)((0,KG.from)(Object.getOwnPropertyNames(f)).pipe((0,KG.mergeMap)(I=>Q5r(f[I],t,(0,Ple.joinJsonPointer)(r,I),Yes(n,I),a,o,l||f).pipe((0,KG.tap)(C=>{let b=Object.getOwnPropertyDescriptor(f,I);b&&b.writable&&f[I]!==C&&(f[I]=C)}))),(0,KG.ignoreElements)()),(0,KG.of)(f)):(0,KG.of)(f)))}function Qil(e,t,r,n,a){return Q5r(e,t,(0,Ple.buildJsonPointer)([]),r,n,a)}function Xil(e,t){if(e===!1||e===!0)return;let r={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a={definitions:!0,properties:!0,patternProperties:!0,additionalProperties:!0,dependencies:!0,items:!0};function o(l,A,f,I,C){if(l&&typeof l=="object"&&!Array.isArray(l)){t(l,A,I,C);for(let b of Object.keys(l)){let E=l[b];if(b in a){if(E&&typeof E=="object")for(let N of Object.keys(E))o(E[N],(0,Ple.joinJsonPointer)(A,b,N),f,l,N)}else if(b in r)o(E,(0,Ple.joinJsonPointer)(A,b),f,l,b);else if(b in n){if(Array.isArray(E))for(let N=0;N{"use strict";var Jil=VV&&VV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uil=VV&&VV.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),z5r=VV&&VV.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0});Vle.PartiallyOrderedSet=Vle.CircularDependencyFoundException=Vle.DependencyNotFoundException=void 0;var Ves=gte(),SNt=class extends Ves.BaseException{constructor(){super("One of the dependencies is not part of the set.")}};Vle.DependencyNotFoundException=SNt;var z8e=class extends Ves.BaseException{constructor(){super("Circular dependencies found.")}};Vle.CircularDependencyFoundException=z8e;var O5r=class{_items=new Map;_checkCircularDependencies(t,r){if(r.has(t))throw new z8e;r.forEach(n=>this._checkCircularDependencies(t,this._items.get(n)||new Set))}clear(){this._items.clear()}has(t){return this._items.has(t)}get size(){return this._items.size}forEach(t,r){for(let n of this)t.call(r,n,n,this)}*entries(){for(let t of this)yield[t,t]}keys(){return this.values()}values(){return this[Symbol.iterator]()}add(t,r=new Set){if(Array.isArray(r)&&(r=new Set(r)),this._items.has(t)){let n=this._items.get(t)||new Set,a=!0;for(let o of r)if(!n.has(o)){a=!1;break}if(a){for(let o of n)if(!r.has(o)){a=!1;break}}if(a)return this;this._items.delete(t)}for(let n of r)if(!this._items.has(n))throw new SNt;return this._checkCircularDependencies(t,r),this._items.set(t,new Set(r)),this}delete(t){return this._items.has(t)?(this._items.forEach(r=>r.delete(t)),this._items.delete(t)):!1}*[Symbol.iterator](){let t=new Map(this._items);for(let[r,n]of t.entries())t.set(r,new Set(n));for(;t.size>0;){let r=[];for(let[n,a]of t.entries())a.size==0&&r.push(n);for(let n of r)t.forEach(a=>a.delete(n)),t.delete(n),yield n;if(r.length==0)throw new z8e}}get[Symbol.toStringTag](){return"Set"}};Vle.PartiallyOrderedSet=O5r});var Wes=H(vNt=>{"use strict";Object.defineProperty(vNt,"__esModule",{value:!0});vNt.PriorityQueue=void 0;var M5r=class{_comparator;_items=new Array;constructor(t){this._comparator=t}clear(){this._items=new Array}push(t){let r=this._items.findIndex(n=>this._comparator(t,n)<=0);r===-1?this._items.push(t):this._items.splice(r,0,t)}pop(){if(this._items.length!==0)return this._items.splice(0,1)[0]}peek(){if(this._items.length!==0)return this._items[0]}get size(){return this._items.length}toArray(){return this._items.slice()}};vNt.PriorityQueue=M5r});var Oes=H(H5r=>{"use strict";Object.defineProperty(H5r,"__esModule",{value:!0});H5r.isPromise=Mil;function Mil(e){return!!e&&typeof e.then=="function"}});var Y5r=H(ZR=>{"use strict";var Mes=ZR&&ZR.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Hil=ZR&&ZR.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hes=ZR&&ZR.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(BNt,"__esModule",{value:!0});BNt.visitJson=Xil;BNt.visitJsonSchema=Jil;var KG=qb(),Ple=oPr();function Yes(e,t){if(!(typeof e!="object"||e===null)){if(typeof e.properties=="object"||e.type=="object")return typeof e.properties=="object"&&typeof e.properties[t]=="object"?e.properties[t]:typeof e.additionalProperties=="object"?e.additionalProperties:void 0;if(typeof e.items=="object"||e.type=="array")return typeof e.items=="object"?e.items:void 0}}function Q5r(e,t,r,n,a,o,l){if((n===!0||n===!1)&&(n=void 0),n&&n.hasOwnProperty("$ref")&&typeof n.$ref=="string"&&a){let f=a(n.$ref,o);n=f.schema,o=f.context}let A=t(e,r,n,l);return((0,KG.isObservable)(A)?A:(0,KG.of)(A)).pipe((0,KG.concatMap)(f=>Array.isArray(f)?(0,KG.concat)((0,KG.from)(f).pipe((0,KG.mergeMap)((I,C)=>Q5r(I,t,(0,Ple.joinJsonPointer)(r,""+C),Yes(n,""+C),a,o,l||f).pipe((0,KG.tap)(b=>f[C]=b))),(0,KG.ignoreElements)()),(0,KG.of)(f)):typeof f=="object"&&f!==null?(0,KG.concat)((0,KG.from)(Object.getOwnPropertyNames(f)).pipe((0,KG.mergeMap)(I=>Q5r(f[I],t,(0,Ple.joinJsonPointer)(r,I),Yes(n,I),a,o,l||f).pipe((0,KG.tap)(C=>{let b=Object.getOwnPropertyDescriptor(f,I);b&&b.writable&&f[I]!==C&&(f[I]=C)}))),(0,KG.ignoreElements)()),(0,KG.of)(f)):(0,KG.of)(f)))}function Xil(e,t,r,n,a){return Q5r(e,t,(0,Ple.buildJsonPointer)([]),r,n,a)}function Jil(e,t){if(e===!1||e===!0)return;let r={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a={definitions:!0,properties:!0,patternProperties:!0,additionalProperties:!0,dependencies:!0,items:!0};function o(l,A,f,I,C){if(l&&typeof l=="object"&&!Array.isArray(l)){t(l,A,I,C);for(let b of Object.keys(l)){let E=l[b];if(b in a){if(E&&typeof E=="object")for(let N of Object.keys(E))o(E[N],(0,Ple.joinJsonPointer)(A,b,N),f,l,N)}else if(b in r)o(E,(0,Ple.joinJsonPointer)(A,b),f,l,b);else if(b in n){if(Array.isArray(E))for(let N=0;N{"use strict";var Uil=VV&&VV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Kil=VV&&VV.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),z5r=VV&&VV.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=`Data path ${JSON.stringify(n.instancePath)} ${n.message}`;if(n.params)switch(n.keyword){case"additionalProperties":a+=`(${n.params.additionalProperty})`;break;case"enum":a+=`. Allowed values are: ${n.params.allowedValues?.map(o=>`"${o}"`).join(", ")}`;break}return a+"."})}};VV.SchemaValidationException=K5r;var j5r=class e{_ajv;_uriCache=new Map;_uriHandlers=new Set;_pre=new U5r.PartiallyOrderedSet;_post=new U5r.PartiallyOrderedSet;_currentCompilationSchemaInfo;_smartDefaultKeyword=!1;_promptProvider;_sourceMap=new Map;constructor(t=[]){this._ajv=new J5r.default({strict:!1,loadSchema:r=>this._fetch(r),passContext:!0}),(0,Kil.default)(this._ajv);for(let r of t)this.addFormat(r)}async _fetch(t){let r=this._uriCache.get(t);if(r)return r;for(let n of this._uriHandlers){let a=n(t);if(a==null)continue;(0,dte.isObservable)(a)&&(a=(0,dte.lastValueFrom)(a));let o=await a;return this._uriCache.set(t,o),o}return new Promise((n,a)=>{let o=new Qes.URL(t);(o.protocol==="https:"?zil:jil).get(o,A=>{if(!A.statusCode||A.statusCode>=300)A.resume(),a(new Error(`Request failed. Status Code: ${A.statusCode}`));else{A.setEncoding("utf8");let f="";A.on("data",I=>{f+=I}),A.on("end",()=>{try{let I=JSON.parse(f);this._uriCache.set(t,I),n(I)}catch(I){a(I)}})}})})}addPreTransform(t,r){this._pre.add(t,r)}addPostTransform(t,r){this._post.add(t,r)}_resolver(t,r){if(!r||!t)return{};let n=r.schemaEnv.root.schema,a=typeof n=="object"?n.$id:null,o=t;typeof a=="string"&&(o=Qes.resolve(a,t),t.startsWith("#")&&(o=a+o));let l=this._ajv.getSchema(o);return{context:l?.schemaEnv.validate,schema:l?.schema}}async \u0275flatten(t){this._ajv.removeSchema(t),this._currentCompilationSchemaInfo=void 0;let r=await this._ajv.compileAsync(t),n=this;function a(l,A,f,I){if(l&&f&&I&&(0,$il.isJsonObject)(l)&&Object.prototype.hasOwnProperty.call(l,"$ref")&&typeof l.$ref=="string"){let C=n._resolver(l.$ref,r);C.schema&&(f[I]=C.schema)}}let o=(0,U5r.deepCopy)(r.schema);return(0,wNt.visitJsonSchema)(o,a),o}async compile(t){let r=await this._compile(t);return(n,a)=>r(n,a)}async _compile(t){if(typeof t=="boolean")return async a=>({success:t,data:a});let r={smartDefaultRecord:new Map,promptDefinitions:[]};this._ajv.removeSchema(t);let n;try{this._currentCompilationSchemaInfo=r,n=this._ajv.compile(t)}catch(a){if(!(a instanceof J5r.default.MissingRefError))throw a;n=await this._ajv.compileAsync(t)}finally{this._currentCompilationSchemaInfo=void 0}return async(a,o)=>{let l={withPrompts:!0,applyPostTransforms:!0,applyPreTransforms:!0,...o},A={promptFieldsWithValue:new Set};if(l.applyPreTransforms)for(let f of this._pre.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));if(await this._applySmartDefaults(a,r.smartDefaultRecord),l.withPrompts){let f=(C,b)=>(C!==void 0&&A.promptFieldsWithValue.add(b),C);typeof t=="object"&&await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));let I=r.promptDefinitions.filter(C=>!A.promptFieldsWithValue.has(C.id));I.length>0&&await this._applyPrompts(a,I)}try{let f=await n.call(A,a);if(!f)return{data:a,success:f,errors:n.errors??[]}}catch(f){if(f instanceof J5r.default.ValidationError)return{data:a,success:!1,errors:f.errors};throw f}if(l.applyPostTransforms)for(let f of this._post.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));return{data:a,success:!0}}}addFormat(t){this._ajv.addFormat(t.name,t.formatter)}addSmartDefaultProvider(t,r){if(this._sourceMap.has(t))throw new Error(t);this._sourceMap.set(t,r),this._smartDefaultKeyword||(this._smartDefaultKeyword=!0,this._ajv.addKeyword({keyword:"$default",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(l===void 0)return()=>!0;let A=this.normalizeDataPathArr(o);return l.smartDefaultRecord.set(JSON.stringify(A),n),()=>!0},metaSchema:{type:"object",properties:{$source:{type:"string"}},additionalProperties:!0,required:["$source"]}}))}registerUriHandler(t){this._uriHandlers.add(t)}usePromptProvider(t){let r=!!this._promptProvider;this._promptProvider=t,!r&&this._ajv.addKeyword({keyword:"x-prompt",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(!l)return()=>!0;let A="/"+this.normalizeDataPathArr(o).join("/"),f,I,C;typeof n=="string"?C=n:(C=n.message,f=n.type,I=n.items);let b=(0,esl.getTypesOfSchema)(a);f||(b.size===1&&b.has("boolean")?f="confirmation":Array.isArray(a.enum)||b.size===1&&b.has("array")&&a.items&&Array.isArray(a.items.enum)?f="list":f="input");let E;if(f==="list"){E=n.multiselect===void 0?b.size===1&&b.has("array"):n.multiselect;let B=E?a.items&&a.items.enum:a.enum;if(!I&&Array.isArray(B)){I=[];for(let F of B)typeof F=="string"?I.push(F):typeof F=="object"||I.push({label:F.toString(),value:F})}}let N={id:A,type:f,message:C,raw:n,items:I,multiselect:E,propertyTypes:b,default:typeof a.default=="object"&&a.default!==null&&!Array.isArray(a.default)?void 0:a.default,async validator(B){try{let F=await o.self.validate(a,B);if(F)return F;if(o.self.errors?.length)return o.self.errors[0].message}catch(F){let Q=F;if(Array.isArray(Q.errors)&&Q.errors.length)return Q.errors[0].message}return!1}};return l.promptDefinitions.push(N),function(){return this&&this.promptFieldsWithValue&&this.promptFieldsWithValue.add(A),!0}},metaSchema:{oneOf:[{type:"string"},{type:"object",properties:{type:{type:"string"},message:{type:"string"}},additionalProperties:!0,required:["message"]}]}})}async _applyPrompts(t,r){let n=this._promptProvider;if(!n)return;let a=await(0,dte.lastValueFrom)((0,dte.from)(n(r)));for(let o in a){let l=o.split("/").slice(1);e._set(t,l,a[o],null,void 0,!0)}}static _set(t,r,n,a=null,o,l){for(let A=0;A(r&&t(`Option "${o?.parentDataProperty}" is deprecated${typeof r=="string"?": "+r:"."}`),!0),errors:!1})}normalizeDataPathArr(t){return t.dataPathArr.slice(1,t.dataLevel+1).map(r=>typeof r=="number"?r:r.str.replace(/"/g,""))}};VV.CoreSchemaRegistry=j5r});var Ues=H(TNt=>{"use strict";Object.defineProperty(TNt,"__esModule",{value:!0});TNt.isJsonSchema=rsl;TNt.mergeSchemas=nsl;var tsl=$Ce();function rsl(e){return(0,tsl.isJsonObject)(e)||e===!1||e===!0}function nsl(...e){return e.reduce((t,r)=>r===void 0?t:t===!1||r===!1?!1:t===!0?r:r===!0?t:Array.isArray(t.allOf)?Array.isArray(r.allOf)?{...t,allOf:[...t.allOf,...r.allOf]}:{...t,allOf:[...t.allOf,r]}:Array.isArray(r.allOf)?{...t,allOf:[t,...r.allOf]}:{...t,allOf:[t,r]},!0)}});var jes=H(ID=>{"use strict";var Kes=ID&&ID.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),isl=ID&&ID.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ssl=ID&&ID.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var zes=RO&&RO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),asl=RO&&RO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),csl=RO&&RO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(NNt,"__esModule",{value:!0});NNt.Logger=void 0;var q5r=qb(),$5r=class extends q5r.Observable{name;parent;_subject=new q5r.Subject;_metadata;_obs=q5r.EMPTY;_subscription=null;get _observable(){return this._obs}set _observable(t){this._subscription&&this._subscription.unsubscribe(),this._obs=t,this.parent&&(this._subscription=this.subscribe(r=>{this.parent&&this.parent._subject.next(r)},r=>{this.parent&&this.parent._subject.error(r)},()=>{this._subscription&&this._subscription.unsubscribe(),this._subscription=null}))}constructor(t,r=null){super(),this.name=t,this.parent=r;let n=[],a=r;for(;a;)n.push(a.name),a=a.parent;this._metadata={name:t,path:n},this._observable=this._subject.asObservable(),this.parent&&this.parent._subject&&this.parent._subject.subscribe(void 0,void 0,()=>this.complete())}asApi(){return{createChild:t=>this.createChild(t),log:(t,r,n)=>this.log(t,r,n),debug:(t,r)=>this.debug(t,r),info:(t,r)=>this.info(t,r),warn:(t,r)=>this.warn(t,r),error:(t,r)=>this.error(t,r),fatal:(t,r)=>this.fatal(t,r)}}createChild(t){return new this.constructor(t,this)}complete(){this._subject.complete()}log(t,r,n={}){let a=Object.assign({},n,this._metadata,{level:t,message:r,timestamp:+Date.now()});this._subject.next(a)}next(t){this._subject.next(t)}debug(t,r={}){return this.log("debug",t,r)}info(t,r={}){return this.log("info",t,r)}warn(t,r={}){return this.log("warn",t,r)}error(t,r={}){return this.log("error",t,r)}fatal(t,r={}){return this.log("fatal",t,r)}toString(){return``}lift(t){return this._observable.lift(t)}subscribe(t,r,n){return this._observable.subscribe.apply(this._observable,arguments)}forEach(t,r=Promise){return this._observable.forEach(t,r)}};NNt.Logger=$5r});var qes=H(DNt=>{"use strict";Object.defineProperty(DNt,"__esModule",{value:!0});DNt.IndentLogger=void 0;var gsl=qb(),Asl=Axe(),eMr={},tMr=class extends Asl.Logger{constructor(t,r=null,n=" "){super(t,r),eMr[n]=eMr[n]||[""];let a=eMr[n];this._observable=this._observable.pipe((0,gsl.map)(o=>{let l=o.path.filter(A=>!!A).length;if(l>=a.length){let A=a[a.length-1];for(;l>=a.length;)A+=n,a.push(A)}return o.message=a[l]+o.message.split(/\n/).join(` -`+a[l]),o}))}};DNt.IndentLogger=tMr});var $es=H(dxe=>{"use strict";Object.defineProperty(dxe,"__esModule",{value:!0});dxe.LevelCapLogger=dxe.LevelTransformLogger=void 0;var dsl=Axe(),kNt=class e extends dsl.Logger{name;parent;levelTransform;constructor(t,r=null,n){super(t,r),this.name=t,this.parent=r,this.levelTransform=n}log(t,r,n={}){return super.log(this.levelTransform(t),r,n)}createChild(t){return new e(t,this,this.levelTransform)}};dxe.LevelTransformLogger=kNt;var rMr=class e extends kNt{name;parent;levelCap;static levelMap={debug:{debug:"debug",info:"debug",warn:"debug",error:"debug",fatal:"debug"},info:{debug:"debug",info:"info",warn:"info",error:"info",fatal:"info"},warn:{debug:"debug",info:"info",warn:"warn",error:"warn",fatal:"warn"},error:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"error"},fatal:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}};constructor(t,r=null,n){super(t,r,a=>e.levelMap[n][a]||a),this.name=t,this.parent=r,this.levelCap=n}};dxe.LevelCapLogger=rMr});var ets=H(xNt=>{"use strict";Object.defineProperty(xNt,"__esModule",{value:!0});xNt.NullLogger=void 0;var psl=qb(),fsl=Axe(),nMr=class e extends fsl.Logger{constructor(t=null){super("",t),this._observable=psl.EMPTY}asApi(){return{createChild:()=>new e(this),log(){},debug(){},info(){},warn(){},error(){},fatal(){}}}};xNt.NullLogger=nMr});var tts=H(GNt=>{"use strict";Object.defineProperty(GNt,"__esModule",{value:!0});GNt.TransformLogger=void 0;var Isl=Axe(),iMr=class extends Isl.Logger{constructor(t,r,n=null){super(t,n),this._observable=r(this._observable)}};GNt.TransformLogger=iMr});var rts=H(G4=>{"use strict";var hsl=G4&&G4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$8e=G4&&G4.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&hsl(t,e,r)};Object.defineProperty(G4,"__esModule",{value:!0});$8e(qes(),G4);$8e($es(),G4);$8e(Axe(),G4);$8e(ets(),G4);$8e(tts(),G4)});var oMr=H(pxe=>{"use strict";Object.defineProperty(pxe,"__esModule",{value:!0});pxe.TargetDefinitionCollection=pxe.ProjectDefinitionCollection=void 0;var FNt=class{_listener;_map;constructor(t,r){this._listener=r,this._map=new Map(t&&Object.entries(t))}delete(t){let r=this._map.delete(t);return r&&this._listener?.(t,void 0,this),r}set(t,r){return r!==this.get(t)&&(this._map.set(t,r),this._listener?.(t,r,this)),this}forEach(t,r){this._map.forEach((n,a)=>t(n,a,this),r)}get(t){return this._map.get(t)}has(t){return this._map.has(t)}get size(){return this._map.size}[Symbol.iterator](){return this._map[Symbol.iterator]()}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}};function nts(e){let t=new Set;switch(typeof e){case"boolean":case"number":case"string":return!0;case"object":if(e===null)return!0;t.add(e);for(let r of Object.values(e))if(!(typeof e=="object"&&t.has(r))&&!nts(r))return!1;return!0;default:return!1}}var sMr=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Project name already exists.");this._validateName(t.name);let r={root:t.root,prefix:t.prefix,sourceRoot:t.sourceRoot,targets:new ZNt,extensions:{}};if(t.targets)for(let[n,a]of Object.entries(t.targets))a&&r.targets.set(n,a);for(let[n,a]of Object.entries(t))switch(n){case"name":case"root":case"sourceRoot":case"prefix":case"targets":break;default:if(nts(a))r.extensions[n]=a;else throw new TypeError(`"${n}" must be a JSON value.`);break}return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string"||!/^(?:@\w[\w.-]*\/)?\w[\w.-]*$/.test(t))throw new Error("Project name must be a valid npm package name.")}};pxe.ProjectDefinitionCollection=sMr;var ZNt=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Target name already exists.");this._validateName(t.name);let r={builder:t.builder,options:t.options,configurations:t.configurations,defaultConfiguration:t.defaultConfiguration};return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string")throw new TypeError("Target name must be a string.")}};pxe.TargetDefinitionCollection=ZNt});var fxe=H(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.path=FI.NormalizedRoot=FI.NormalizedSep=FI.PathCannotBeFragmentException=FI.PathMustBeAbsoluteException=FI.InvalidPathException=void 0;FI.split=aMr;FI.extname=msl;FI.basename=its;FI.dirname=Csl;FI.join=sts;FI.isAbsolute=PNt;FI.relative=_sl;FI.resolve=ysl;FI.fragment=WNt;FI.resetNormalizeCache=bsl;FI.normalize=tje;FI.noCacheNormalize=ots;FI.asWindowsPath=ats;FI.asPosixPath=Ssl;FI.getSystemPath=vsl;var lMr=gte(),LNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} is invalid.`)}};FI.InvalidPathException=LNt;var eje=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} must be absolute.`)}};FI.PathMustBeAbsoluteException=eje;var VNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} cannot be made a fragment.`)}};FI.PathCannotBeFragmentException=VNt;FI.NormalizedSep="/";FI.NormalizedRoot=FI.NormalizedSep;function aMr(e){let t=e.split(FI.NormalizedSep).map(r=>WNt(r));return t[t.length-1].length===0&&t.pop(),t}function msl(e){let t=its(e),r=t.lastIndexOf(".");return r<1?"":t.slice(r)}function its(e){return e.lastIndexOf(FI.NormalizedSep)==-1?WNt(e):WNt(e.slice(e.lastIndexOf(FI.NormalizedSep)+1))}function Csl(e){let t=e.lastIndexOf(FI.NormalizedSep);if(t===-1)return"";let r=t===0?1:t;return tje(e.slice(0,r))}function sts(e,...t){return t.length>0?tje((e?e+FI.NormalizedSep:"")+t.join(FI.NormalizedSep)):e}function PNt(e){return e.startsWith(FI.NormalizedSep)}function _sl(e,t){if(!PNt(e))throw new eje(e);if(!PNt(t))throw new eje(t);let r;if(e==t)r="";else{let n=aMr(e),a=aMr(t);for(;n.length>0&&a.length>0&&n[0]==a[0];)n.shift(),a.shift();n.length==0?r=a.join(FI.NormalizedSep):r=n.map(()=>"..").concat(a).join(FI.NormalizedSep)}return tje(r)}function ysl(e,t){return PNt(t)?t:sts(e,t)}function WNt(e){if(e.indexOf(FI.NormalizedSep)!=-1)throw new VNt(e);return e}var cMr=new Map;function bsl(){cMr=new Map}function tje(e){let t=cMr.get(e);return t||(t=ots(e),cMr.set(e,t)),t}function ots(e){if(e==""||e==".")return"";if(e==FI.NormalizedRoot)return FI.NormalizedRoot;let t=e;e.match(/^[A-Z]:[/\\]/i)&&(e="\\"+e[0].toUpperCase()+"\\"+e.slice(3));let r=e.split(/[/\\]/g),n=!1,a=1;for(r[0]!=""&&(r.unshift("."),n=!0);a=2&&r[a-1]!=".."?(r.splice(a-1,2),a--):a++}else r[a]==""?r.splice(a,1):a++;return r.length==1?r[0]==""?FI.NormalizedSep:"":(r[0]=="."&&r.shift(),r.join(FI.NormalizedSep))}var Esl=(e,...t)=>tje(String.raw(e,...t));FI.path=Esl;function ats(e){let t=e.match(/^\/(\w)(?:\/(.*))?$/);if(t){let r=t[2]?t[2].replace(/\//g,"\\"):"";return`${t[1]}:\\${r}`}return e.replace(/\//g,"\\")}function Ssl(e){return e}function vsl(e){return process.platform.startsWith("win32")?ats(e):e}});var uMr=H(ONt=>{"use strict";Object.defineProperty(ONt,"__esModule",{value:!0});ONt.stringToFileBuffer=Bsl;ONt.fileBufferToString=wsl;var cts=wt("node:util");function Bsl(e){return new cts.TextEncoder().encode(e).buffer}function wsl(e){return e.toString.length===1?e.toString("utf-8"):new cts.TextDecoder("utf-8").decode(new Uint8Array(e))}});var gMr=H(MNt=>{"use strict";Object.defineProperty(MNt,"__esModule",{value:!0});MNt.HostWatchEventType=void 0;var lts;(function(e){e[e.Changed=0]="Changed",e[e.Created=1]="Created",e[e.Deleted=2]="Deleted",e[e.Renamed=3]="Renamed"})(lts||(MNt.HostWatchEventType=lts={}))});var YNt=H(HNt=>{"use strict";Object.defineProperty(HNt,"__esModule",{value:!0});HNt.SimpleMemoryHost=void 0;var zj=qb(),pte=gte(),aw=fxe(),Ixe=gMr(),AMr=class{_cache=new Map;_watchers=new Map;_newDirStats(){return{inspect(){return""},isFile(){return!1},isDirectory(){return!0},size:0,atime:new Date,ctime:new Date,mtime:new Date,birthtime:new Date,content:null}}_newFileStats(t,r){return{inspect(){return``},isFile(){return!0},isDirectory(){return!1},size:t.byteLength,atime:r?r.atime:new Date,ctime:new Date,mtime:new Date,birthtime:r?r.birthtime:new Date,content:t}}constructor(){this._cache.set((0,aw.normalize)("/"),this._newDirStats())}_toAbsolute(t){return(0,aw.isAbsolute)(t)?t:(0,aw.normalize)("/"+t)}_updateWatchers(t,r){let n=new Date,a=t,o=null;if(this._watchers.size==0)return;let l=this._watchers.get(a);l&&l.forEach(A=>{let[f,I]=A;I.next({path:t,time:n,type:r}),!f.persistent&&r==Ixe.HostWatchEventType.Deleted&&(I.complete(),this._watchers.delete(a))});do{a=o!==null?o:a,o=(0,aw.dirname)(a);let A=this._watchers.get(a);A&&A.forEach(f=>{let[I,C]=f;I.recursive&&(C.next({path:t,time:n,type:r}),!I.persistent&&r==Ixe.HostWatchEventType.Deleted&&(C.complete(),this._watchers.delete(a)))})}while(o!=a)}get capabilities(){return{synchronous:!0}}_write(t,r){t=this._toAbsolute(t);let n=this._cache.get(t);if(n&&n.isDirectory())throw new pte.PathIsDirectoryException(t);let a=(0,aw.split)(t),o=(0,aw.normalize)("/");for(let A of a){o=(0,aw.join)(o,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(o)}else this._cache.set(o,this._newDirStats())}let l=this._newFileStats(r,n);this._cache.set(t,l),this._updateWatchers(t,n?Ixe.HostWatchEventType.Changed:Ixe.HostWatchEventType.Created)}_read(t){t=this._toAbsolute(t);let r=this._cache.get(t);if(r){if(r.isDirectory())throw new pte.PathIsDirectoryException(t);if(r.content)return r.content;throw new pte.PathIsDirectoryException(t)}else throw new pte.FileDoesNotExistException(t)}_delete(t){if(t=this._toAbsolute(t),this._isDirectory(t))for(let[r]of this._cache.entries())(r.startsWith(t+aw.NormalizedSep)||r===t)&&this._cache.delete(r);else this._cache.delete(t);this._updateWatchers(t,Ixe.HostWatchEventType.Deleted)}_rename(t,r){if(t=this._toAbsolute(t),r=this._toAbsolute(r),this._cache.has(t)){if(this._cache.has(r))throw new pte.FileAlreadyExistException(r)}else throw new pte.FileDoesNotExistException(t);if(this._isDirectory(t)){for(let n of this._cache.keys())if(n.startsWith(t+aw.NormalizedSep)){let a=this._cache.get(n);a&&this._cache.set((0,aw.join)(r,aw.NormalizedSep,n.slice(t.length)),a)}}else{let n=this._cache.get(t);if(n){let a=(0,aw.split)(r),o=[],l=(0,aw.normalize)("/");for(let A of a){l=(0,aw.join)(l,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(l)}else o.push(l)}for(let A of o)this._cache.set(A,this._newDirStats());this._cache.delete(t),this._cache.set(r,n)}}this._updateWatchers(t,Ixe.HostWatchEventType.Renamed)}_list(t){if(t=this._toAbsolute(t),this._isFile(t))throw new pte.PathIsFileException(t);let r=(0,aw.split)(t),n=new Set;if(t!==aw.NormalizedRoot)for(let a of this._cache.keys())a.startsWith(t+aw.NormalizedSep)&&n.add((0,aw.split)(a)[r.length]);else for(let a of this._cache.keys())a.startsWith(aw.NormalizedSep)&&a!==aw.NormalizedRoot&&n.add((0,aw.split)(a)[1]);return[...n]}_exists(t){return!!this._cache.get(this._toAbsolute(t))}_isDirectory(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isDirectory():!1}_isFile(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isFile():!1}_stat(t){let r=this._cache.get(this._toAbsolute(t));return r||null}_watch(t,r){t=this._toAbsolute(t);let n=new zj.Subject,a=this._watchers.get(t);return a||(a=[],this._watchers.set(t,a)),a.push([r||{},n]),n.asObservable()}write(t,r){return new zj.Observable(n=>{this._write(t,r),n.next(),n.complete()})}read(t){return new zj.Observable(r=>{let n=this._read(t);r.next(n),r.complete()})}delete(t){return new zj.Observable(r=>{this._delete(t),r.next(),r.complete()})}rename(t,r){return new zj.Observable(n=>{this._rename(t,r),n.next(),n.complete()})}list(t){return new zj.Observable(r=>{r.next(this._list(t)),r.complete()})}exists(t){return new zj.Observable(r=>{r.next(this._exists(t)),r.complete()})}isDirectory(t){return new zj.Observable(r=>{r.next(this._isDirectory(t)),r.complete()})}isFile(t){return new zj.Observable(r=>{r.next(this._isFile(t)),r.complete()})}stat(t){return new zj.Observable(r=>{r.next(this._stat(t)),r.complete()})}watch(t,r){return this._watch(t,r)}reset(){this._cache.clear(),this._watchers.clear()}};HNt.SimpleMemoryHost=AMr});var pMr=H(hxe=>{"use strict";Object.defineProperty(hxe,"__esModule",{value:!0});hxe.SyncDelegateHost=hxe.SynchronousDelegateExpectedException=void 0;var Tsl=gte(),rje=class extends Tsl.BaseException{constructor(){super("Expected a synchronous delegate but got an asynchronous one.")}};hxe.SynchronousDelegateExpectedException=rje;var dMr=class{_delegate;constructor(t){if(this._delegate=t,!t.capabilities.synchronous)throw new rje}_doSyncCall(t){let r=!1,n,a;if(t.subscribe(o=>n=o,o=>a=o,()=>r=!0),a!==void 0)throw a;if(!r)throw new rje;return n}get capabilities(){return this._delegate.capabilities}get delegate(){return this._delegate}write(t,r){return this._doSyncCall(this._delegate.write(t,r))}read(t){return this._doSyncCall(this._delegate.read(t))}delete(t){return this._doSyncCall(this._delegate.delete(t))}rename(t,r){return this._doSyncCall(this._delegate.rename(t,r))}list(t){return this._doSyncCall(this._delegate.list(t))}exists(t){return this._doSyncCall(this._delegate.exists(t))}isDirectory(t){return this._doSyncCall(this._delegate.isDirectory(t))}isFile(t){return this._doSyncCall(this._delegate.isFile(t))}stat(t){let r=this._delegate.stat(t);return r?this._doSyncCall(r):null}watch(t,r){return this._delegate.watch(t,r)}};hxe.SyncDelegateHost=dMr});var uts=H(QNt=>{"use strict";Object.defineProperty(QNt,"__esModule",{value:!0});QNt.TestHost=void 0;var fte=fxe(),fMr=uMr(),Rsl=YNt(),Nsl=pMr(),IMr=class e extends Rsl.SimpleMemoryHost{_records=[];_sync=null;constructor(t={}){super();for(let r of Object.getOwnPropertyNames(t))this._write((0,fte.normalize)(r),(0,fMr.stringToFileBuffer)(t[r]))}get records(){return[...this._records]}clearRecords(){this._records=[]}get files(){let t=this.sync;function r(n){return t.list(n).map(a=>(0,fte.join)(n,a)).reduce((a,o)=>t.isDirectory(o)?a.concat(r(o)):a.concat(o),[])}return r((0,fte.normalize)("/"))}get sync(){return this._sync||(this._sync=new Nsl.SyncDelegateHost(this)),this._sync}clone(){let t=new e;return t._cache=new Map(this._cache),t}_write(t,r){return this._records.push({kind:"write",path:t}),super._write(t,r)}_read(t){return this._records.push({kind:"read",path:t}),super._read(t)}_delete(t){return this._records.push({kind:"delete",path:t}),super._delete(t)}_rename(t,r){return this._records.push({kind:"rename",from:t,to:r}),super._rename(t,r)}_list(t){return this._records.push({kind:"list",path:t}),super._list(t)}_exists(t){return this._records.push({kind:"exists",path:t}),super._exists(t)}_isDirectory(t){return this._records.push({kind:"isDirectory",path:t}),super._isDirectory(t)}_isFile(t){return this._records.push({kind:"isFile",path:t}),super._isFile(t)}_stat(t){return this._records.push({kind:"stat",path:t}),super._stat(t)}_watch(t,r){return this._records.push({kind:"watch",path:t}),super._watch(t,r)}$write(t,r){return super._write((0,fte.normalize)(t),(0,fMr.stringToFileBuffer)(r))}$read(t){return(0,fMr.fileBufferToString)(super._read((0,fte.normalize)(t)))}$list(t){return super._list((0,fte.normalize)(t))}$exists(t){return super._exists((0,fte.normalize)(t))}$isDirectory(t){return super._isDirectory((0,fte.normalize)(t))}$isFile(t){return super._isFile((0,fte.normalize)(t))}};QNt.TestHost=IMr});var nje=H(XNt=>{"use strict";Object.defineProperty(XNt,"__esModule",{value:!0});XNt.ResolverHost=void 0;var hMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}write(t,r){return this._delegate.write(this._resolve(t),r)}read(t){return this._delegate.read(this._resolve(t))}delete(t){return this._delegate.delete(this._resolve(t))}rename(t,r){return this._delegate.rename(this._resolve(t),this._resolve(r))}list(t){return this._delegate.list(this._resolve(t))}exists(t){return this._delegate.exists(this._resolve(t))}isDirectory(t){return this._delegate.isDirectory(this._resolve(t))}isFile(t){return this._delegate.isFile(this._resolve(t))}stat(t){return this._delegate.stat(this._resolve(t))}watch(t,r){return this._delegate.watch(this._resolve(t),r)}};XNt.ResolverHost=hMr});var gts=H(UNt=>{"use strict";Object.defineProperty(UNt,"__esModule",{value:!0});UNt.AliasHost=void 0;var JNt=fxe(),Dsl=nje(),mMr=class extends Dsl.ResolverHost{_aliases=new Map;_resolve(t){let r=this._aliases.get(t),n=(0,JNt.split)(t),a=[];for(;!r&&n.length>0;){let o=(0,JNt.join)(JNt.NormalizedRoot,...n);r=this._aliases.get(o),r&&(r=(0,JNt.join)(r,...a)),a.unshift(n.pop())}return r||t}get aliases(){return this._aliases}};UNt.AliasHost=mMr});var Ats=H(CMr=>{"use strict";Object.defineProperty(CMr,"__esModule",{value:!0});CMr.createSyncHost=xsl;var ksl=qb();function Ite(e){return new ksl.Observable(t=>{t.next(e()),t.complete()})}function xsl(e){return new class{get capabilities(){return{synchronous:!0}}read(t){return Ite(()=>e.read(t))}list(t){return Ite(()=>e.list(t))}exists(t){return Ite(()=>e.exists(t))}isDirectory(t){return Ite(()=>e.isDirectory(t))}isFile(t){return Ite(()=>e.isFile(t))}stat(t){return Ite(()=>e.stat(t))}write(t,r){return Ite(()=>e.write(t,r))}delete(t){return Ite(()=>e.delete(t))}rename(t,r){return Ite(()=>e.rename(t,r))}watch(){return null}}}});var dts=H(KNt=>{"use strict";Object.defineProperty(KNt,"__esModule",{value:!0});KNt.Empty=void 0;var mxe=qb(),Gsl=gte(),_Mr=class{capabilities={synchronous:!0};read(t){return(0,mxe.throwError)(new Gsl.FileDoesNotExistException(t))}list(t){return(0,mxe.of)([])}exists(t){return(0,mxe.of)(!1)}isDirectory(t){return(0,mxe.of)(!1)}isFile(t){return(0,mxe.of)(!1)}stat(t){return(0,mxe.of)(null)}};KNt.Empty=_Mr});var ije=H((B7u,mts)=>{"use strict";var qj="\\\\/",pts=`[^${qj}]`,hte="\\.",Fsl="\\+",Zsl="\\?",jNt="\\/",Lsl="(?=.)",fts="[^/]",yMr=`(?:${jNt}|$)`,Its=`(?:^|${jNt})`,bMr=`${hte}{1,2}${yMr}`,Vsl=`(?!${hte})`,Psl=`(?!${Its}${bMr})`,Wsl=`(?!${hte}{0,1}${yMr})`,Osl=`(?!${bMr})`,Msl=`[^.${jNt}]`,Hsl=`${fts}*?`,Ysl="/",hts={DOT_LITERAL:hte,PLUS_LITERAL:Fsl,QMARK_LITERAL:Zsl,SLASH_LITERAL:jNt,ONE_CHAR:Lsl,QMARK:fts,END_ANCHOR:yMr,DOTS_SLASH:bMr,NO_DOT:Vsl,NO_DOTS:Psl,NO_DOT_SLASH:Wsl,NO_DOTS_SLASH:Osl,QMARK_NO_DOT:Msl,STAR:Hsl,START_ANCHOR:Its,SEP:Ysl},Qsl={...hts,SLASH_LITERAL:`[${qj}]`,QMARK:pts,STAR:`${pts}*?`,DOTS_SLASH:`${hte}{1,2}(?:[${qj}]|$)`,NO_DOT:`(?!${hte})`,NO_DOTS:`(?!(?:^|[${qj}])${hte}{1,2}(?:[${qj}]|$))`,NO_DOT_SLASH:`(?!${hte}{0,1}(?:[${qj}]|$))`,NO_DOTS_SLASH:`(?!${hte}{1,2}(?:[${qj}]|$))`,QMARK_NO_DOT:`[^.${qj}]`,START_ANCHOR:`(?:^|[${qj}])`,END_ANCHOR:`(?:[${qj}]|$)`,SEP:"\\"},Xsl={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};mts.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Xsl,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Qsl:hts}}});var sje=H(PV=>{"use strict";var{REGEX_BACKSLASH:Jsl,REGEX_REMOVE_BACKSLASH:Usl,REGEX_SPECIAL_CHARS:Ksl,REGEX_SPECIAL_CHARS_GLOBAL:jsl}=ije();PV.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);PV.hasRegexChars=e=>Ksl.test(e);PV.isRegexChar=e=>e.length===1&&PV.hasRegexChars(e);PV.escapeRegex=e=>e.replace(jsl,"\\$1");PV.toPosixSlashes=e=>e.replace(Jsl,"/");PV.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};PV.removeBackslashes=e=>e.replace(Usl,t=>t==="\\"?"":t);PV.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?PV.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};PV.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};PV.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o};PV.basename=(e,{windows:t}={})=>{let r=e.split(t?/[\\/]/:"/"),n=r[r.length-1];return n===""?r[r.length-2]:n}});var Bts=H((T7u,vts)=>{"use strict";var Cts=sje(),{CHAR_ASTERISK:EMr,CHAR_AT:zsl,CHAR_BACKWARD_SLASH:oje,CHAR_COMMA:qsl,CHAR_DOT:SMr,CHAR_EXCLAMATION_MARK:vMr,CHAR_FORWARD_SLASH:Sts,CHAR_LEFT_CURLY_BRACE:BMr,CHAR_LEFT_PARENTHESES:wMr,CHAR_LEFT_SQUARE_BRACKET:$sl,CHAR_PLUS:eol,CHAR_QUESTION_MARK:_ts,CHAR_RIGHT_CURLY_BRACE:tol,CHAR_RIGHT_PARENTHESES:yts,CHAR_RIGHT_SQUARE_BRACKET:rol}=ije(),bts=e=>e===Sts||e===oje,Ets=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},nol=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&bts(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Cts.removeBackslashes(je)),ct&&ae===!0&&(ct=Cts.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,bts(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var zNt=ije(),$j=sje(),{MAX_LENGTH:qNt,POSIX_REGEX_SOURCE:iol,REGEX_NON_SPECIAL_CHARS:sol,REGEX_SPECIAL_CHARS_BACKREF:ool,REPLACEMENTS:wts}=zNt,aol=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>$j.escapeRegex(a)).join("..")}return r},Cxe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,TMr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=wts[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=zNt.globChars(r.windows),I=zNt.extglobChars(f),{DOT_LITERAL:C,PLUS_LITERAL:b,SLASH_LITERAL:E,ONE_CHAR:N,DOTS_SLASH:B,NO_DOT:F,NO_DOT_SLASH:Q,NO_DOTS_SLASH:X,QMARK:ae,QMARK_NO_DOT:ne,STAR:ce,START_ANCHOR:fe}=f,ue=cr=>`(${A}(?:(?!${fe}${cr.dot?B:C}).)*?)`,de=r.dot?"":F,be=r.dot?ae:ne,Se=r.bash===!0?ue(r):ce;r.capture&&(Se=`(${Se})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let De={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=$j.removePrefix(e,De),a=e.length;let k=[],et=[],ct=[],Me=o,je,St=()=>De.index===a-1,At=De.peek=(cr=1)=>e[De.index+cr],Yt=De.advance=()=>e[++De.index]||"",Tr=()=>e.slice(De.index+1),Nr=(cr="",Ar=0)=>{De.consumed+=cr,De.index+=Ar},er=cr=>{De.output+=cr.output!=null?cr.output:cr.value,Nr(cr.value)},vt=()=>{let cr=1;for(;At()==="!"&&(At(2)!=="("||At(3)==="?");)Yt(),De.start++,cr++;return cr%2===0?!1:(De.negated=!0,De.start++,!0)},xt=cr=>{De[cr]++,ct.push(cr)},Zr=cr=>{De[cr]--,ct.pop()},qt=cr=>{if(Me.type==="globstar"){let Ar=De.braces>0&&(cr.type==="comma"||cr.type==="brace"),qr=cr.extglob===!0||k.length&&(cr.type==="pipe"||cr.type==="paren");cr.type!=="slash"&&cr.type!=="paren"&&!Ar&&!qr&&(De.output=De.output.slice(0,-Me.output.length),Me.type="star",Me.value="*",Me.output=Se,De.output+=Me.output)}if(k.length&&cr.type!=="paren"&&(k[k.length-1].inner+=cr.value),(cr.value||cr.output)&&er(cr),Me&&Me.type==="text"&&cr.type==="text"){Me.output=(Me.output||Me.value)+cr.value,Me.value+=cr.value;return}cr.prev=Me,l.push(cr),Me=cr},Xt=(cr,Ar)=>{let qr={...I[Ar],conditions:1,inner:""};qr.prev=Me,qr.parens=De.parens,qr.output=De.output;let _n=(r.capture?"(":"")+qr.open;xt("parens"),qt({type:cr,value:Ar,output:De.output?"":N}),qt({type:"paren",extglob:!0,value:Yt(),output:_n}),k.push(qr)},lr=cr=>{let Ar=cr.close+(r.capture?")":""),qr;if(cr.type==="negate"){let _n=Se;if(cr.inner&&cr.inner.length>1&&cr.inner.includes("/")&&(_n=ue(r)),(_n!==Se||St()||/^\)+$/.test(Tr()))&&(Ar=cr.close=`)$))${_n}`),cr.inner.includes("*")&&(qr=Tr())&&/^\.[^\\/.]+$/.test(qr)){let ke=TMr(qr,{...t,fastpaths:!1}).output;Ar=cr.close=`)${ke})${_n})`}cr.prev.type==="bos"&&(De.negatedExtglob=!0)}qt({type:"paren",extglob:!0,value:je,output:Ar}),Zr("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let cr=!1,Ar=e.replace(ool,(qr,_n,ke,jt,Fn,Nn)=>jt==="\\"?(cr=!0,qr):jt==="?"?_n?_n+jt+(Fn?ae.repeat(Fn.length):""):Nn===0?be+(Fn?ae.repeat(Fn.length):""):ae.repeat(ke.length):jt==="."?C.repeat(ke.length):jt==="*"?_n?_n+jt+(Fn?Se:""):Se:_n?qr:`\\${qr}`);return cr===!0&&(r.unescape===!0?Ar=Ar.replace(/\\/g,""):Ar=Ar.replace(/\\+/g,qr=>qr.length%2===0?"\\\\":qr?"\\":"")),Ar===e&&r.contains===!0?(De.output=e,De):(De.output=$j.wrapOutput(Ar,De,t),De)}for(;!St();){if(je=Yt(),je==="\0")continue;if(je==="\\"){let qr=At();if(qr==="/"&&r.bash!==!0||qr==="."||qr===";")continue;if(!qr){je+="\\",qt({type:"text",value:je});continue}let _n=/^\\+/.exec(Tr()),ke=0;if(_n&&_n[0].length>2&&(ke=_n[0].length,De.index+=ke,ke%2!==0&&(je+="\\")),r.unescape===!0?je=Yt():je+=Yt(),De.brackets===0){qt({type:"text",value:je});continue}}if(De.brackets>0&&(je!=="]"||Me.value==="["||Me.value==="[^")){if(r.posix!==!1&&je===":"){let qr=Me.value.slice(1);if(qr.includes("[")&&(Me.posix=!0,qr.includes(":"))){let _n=Me.value.lastIndexOf("["),ke=Me.value.slice(0,_n),jt=Me.value.slice(_n+2),Fn=iol[jt];if(Fn){Me.value=ke+Fn,De.backtrack=!0,Yt(),!o.output&&l.indexOf(Me)===1&&(o.output=N);continue}}}(je==="["&&At()!==":"||je==="-"&&At()==="]")&&(je=`\\${je}`),je==="]"&&(Me.value==="["||Me.value==="[^")&&(je=`\\${je}`),r.posix===!0&&je==="!"&&Me.value==="["&&(je="^"),Me.value+=je,er({value:je});continue}if(De.quotes===1&&je!=='"'){je=$j.escapeRegex(je),Me.value+=je,er({value:je});continue}if(je==='"'){De.quotes=De.quotes===1?0:1,r.keepQuotes===!0&&qt({type:"text",value:je});continue}if(je==="("){xt("parens"),qt({type:"paren",value:je});continue}if(je===")"){if(De.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","("));let qr=k[k.length-1];if(qr&&De.parens===qr.parens+1){lr(k.pop());continue}qt({type:"paren",value:je,output:De.parens?")":"\\)"}),Zr("parens");continue}if(je==="["){if(r.nobracket===!0||!Tr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));je=`\\${je}`}else xt("brackets");qt({type:"bracket",value:je});continue}if(je==="]"){if(r.nobracket===!0||Me&&Me.type==="bracket"&&Me.value.length===1){qt({type:"text",value:je,output:`\\${je}`});continue}if(De.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","["));qt({type:"text",value:je,output:`\\${je}`});continue}Zr("brackets");let qr=Me.value.slice(1);if(Me.posix!==!0&&qr[0]==="^"&&!qr.includes("/")&&(je=`/${je}`),Me.value+=je,er({value:je}),r.literalBrackets===!1||$j.hasRegexChars(qr))continue;let _n=$j.escapeRegex(Me.value);if(De.output=De.output.slice(0,-Me.value.length),r.literalBrackets===!0){De.output+=_n,Me.value=_n;continue}Me.value=`(${A}${_n}|${Me.value})`,De.output+=Me.value;continue}if(je==="{"&&r.nobrace!==!0){xt("braces");let qr={type:"brace",value:je,output:"(",outputIndex:De.output.length,tokensIndex:De.tokens.length};et.push(qr),qt(qr);continue}if(je==="}"){let qr=et[et.length-1];if(r.nobrace===!0||!qr){qt({type:"text",value:je,output:je});continue}let _n=")";if(qr.dots===!0){let ke=l.slice(),jt=[];for(let Fn=ke.length-1;Fn>=0&&(l.pop(),ke[Fn].type!=="brace");Fn--)ke[Fn].type!=="dots"&&jt.unshift(ke[Fn].value);_n=aol(jt,r),De.backtrack=!0}if(qr.comma!==!0&&qr.dots!==!0){let ke=De.output.slice(0,qr.outputIndex),jt=De.tokens.slice(qr.tokensIndex);qr.value=qr.output="\\{",je=_n="\\}",De.output=ke;for(let Fn of jt)De.output+=Fn.output||Fn.value}qt({type:"brace",value:je,output:_n}),Zr("braces"),et.pop();continue}if(je==="|"){k.length>0&&k[k.length-1].conditions++,qt({type:"text",value:je});continue}if(je===","){let qr=je,_n=et[et.length-1];_n&&ct[ct.length-1]==="braces"&&(_n.comma=!0,qr="|"),qt({type:"comma",value:je,output:qr});continue}if(je==="/"){if(Me.type==="dot"&&De.index===De.start+1){De.start=De.index+1,De.consumed="",De.output="",l.pop(),Me=o;continue}qt({type:"slash",value:je,output:E});continue}if(je==="."){if(De.braces>0&&Me.type==="dot"){Me.value==="."&&(Me.output=C);let qr=et[et.length-1];Me.type="dots",Me.output+=je,Me.value+=je,qr.dots=!0;continue}if(De.braces+De.parens===0&&Me.type!=="bos"&&Me.type!=="slash"){qt({type:"text",value:je,output:C});continue}qt({type:"dot",value:je,output:C});continue}if(je==="?"){if(!(Me&&Me.value==="(")&&r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("qmark",je);continue}if(Me&&Me.type==="paren"){let _n=At(),ke=je;(Me.value==="("&&!/[!=<:]/.test(_n)||_n==="<"&&!/<([!=]|\w+>)/.test(Tr()))&&(ke=`\\${je}`),qt({type:"text",value:je,output:ke});continue}if(r.dot!==!0&&(Me.type==="slash"||Me.type==="bos")){qt({type:"qmark",value:je,output:ne});continue}qt({type:"qmark",value:je,output:ae});continue}if(je==="!"){if(r.noextglob!==!0&&At()==="("&&(At(2)!=="?"||!/[!=<:]/.test(At(3)))){Xt("negate",je);continue}if(r.nonegate!==!0&&De.index===0){vt();continue}}if(je==="+"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("plus",je);continue}if(Me&&Me.value==="("||r.regex===!1){qt({type:"plus",value:je,output:b});continue}if(Me&&(Me.type==="bracket"||Me.type==="paren"||Me.type==="brace")||De.parens>0){qt({type:"plus",value:je});continue}qt({type:"plus",value:b});continue}if(je==="@"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){qt({type:"at",extglob:!0,value:je,output:""});continue}qt({type:"text",value:je});continue}if(je!=="*"){(je==="$"||je==="^")&&(je=`\\${je}`);let qr=sol.exec(Tr());qr&&(je+=qr[0],De.index+=qr[0].length),qt({type:"text",value:je});continue}if(Me&&(Me.type==="globstar"||Me.star===!0)){Me.type="star",Me.star=!0,Me.value+=je,Me.output=Se,De.backtrack=!0,De.globstar=!0,Nr(je);continue}let cr=Tr();if(r.noextglob!==!0&&/^\([^?]/.test(cr)){Xt("star",je);continue}if(Me.type==="star"){if(r.noglobstar===!0){Nr(je);continue}let qr=Me.prev,_n=qr.prev,ke=qr.type==="slash"||qr.type==="bos",jt=_n&&(_n.type==="star"||_n.type==="globstar");if(r.bash===!0&&(!ke||cr[0]&&cr[0]!=="/")){qt({type:"star",value:je,output:""});continue}let Fn=De.braces>0&&(qr.type==="comma"||qr.type==="brace"),Nn=k.length&&(qr.type==="pipe"||qr.type==="paren");if(!ke&&qr.type!=="paren"&&!Fn&&!Nn){qt({type:"star",value:je,output:""});continue}for(;cr.slice(0,3)==="/**";){let Hi=e[De.index+4];if(Hi&&Hi!=="/")break;cr=cr.slice(3),Nr("/**",3)}if(qr.type==="bos"&&St()){Me.type="globstar",Me.value+=je,Me.output=ue(r),De.output=Me.output,De.globstar=!0,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&!jt&&St()){De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=ue(r)+(r.strictSlashes?")":"|$)"),Me.value+=je,De.globstar=!0,De.output+=qr.output+Me.output,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&cr[0]==="/"){let Hi=cr[1]!==void 0?"|$":"";De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=`${ue(r)}${E}|${E}${Hi})`,Me.value+=je,De.output+=qr.output+Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}if(qr.type==="bos"&&cr[0]==="/"){Me.type="globstar",Me.value+=je,Me.output=`(?:^|${E}|${ue(r)}${E})`,De.output=Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}De.output=De.output.slice(0,-Me.output.length),Me.type="globstar",Me.output=ue(r),Me.value+=je,De.output+=Me.output,De.globstar=!0,Nr(je);continue}let Ar={type:"star",value:je,output:Se};if(r.bash===!0){Ar.output=".*?",(Me.type==="bos"||Me.type==="slash")&&(Ar.output=de+Ar.output),qt(Ar);continue}if(Me&&(Me.type==="bracket"||Me.type==="paren")&&r.regex===!0){Ar.output=je,qt(Ar);continue}(De.index===De.start||Me.type==="slash"||Me.type==="dot")&&(Me.type==="dot"?(De.output+=Q,Me.output+=Q):r.dot===!0?(De.output+=X,Me.output+=X):(De.output+=de,Me.output+=de),At()!=="*"&&(De.output+=N,Me.output+=N)),qt(Ar)}for(;De.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));De.output=$j.escapeLast(De.output,"["),Zr("brackets")}for(;De.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing",")"));De.output=$j.escapeLast(De.output,"("),Zr("parens")}for(;De.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","}"));De.output=$j.escapeLast(De.output,"{"),Zr("braces")}if(r.strictSlashes!==!0&&(Me.type==="star"||Me.type==="bracket")&&qt({type:"maybe_slash",value:"",output:`${E}?`}),De.backtrack===!0){De.output="";for(let cr of De.tokens)De.output+=cr.output!=null?cr.output:cr.value,cr.suffix&&(De.output+=cr.suffix)}return De};TMr.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=wts[e]||e;let{DOT_LITERAL:o,SLASH_LITERAL:l,ONE_CHAR:A,DOTS_SLASH:f,NO_DOT:I,NO_DOTS:C,NO_DOTS_SLASH:b,STAR:E,START_ANCHOR:N}=zNt.globChars(r.windows),B=r.dot?C:I,F=r.dot?b:I,Q=r.capture?"":"?:",X={negated:!1,prefix:""},ae=r.bash===!0?".*?":E;r.capture&&(ae=`(${ae})`);let ne=de=>de.noglobstar===!0?ae:`(${Q}(?:(?!${N}${de.dot?f:o}).)*?)`,ce=de=>{switch(de){case"*":return`${B}${A}${ae}`;case".*":return`${o}${A}${ae}`;case"*.*":return`${B}${ae}${o}${A}${ae}`;case"*/*":return`${B}${ae}${l}${A}${F}${ae}`;case"**":return B+ne(r);case"**/*":return`(?:${B}${ne(r)}${l})?${F}${A}${ae}`;case"**/*.*":return`(?:${B}${ne(r)}${l})?${F}${ae}${o}${A}${ae}`;case"**/.*":return`(?:${B}${ne(r)}${l})?${o}${A}${ae}`;default:{let be=/^(.*?)\.(\w+)$/.exec(de);if(!be)return;let Se=ce(be[1]);return Se?Se+o+be[2]:void 0}}},fe=$j.removePrefix(e,X),ue=ce(fe);return ue&&r.strictSlashes!==!0&&(ue+=`${l}?`),ue};Tts.exports=TMr});var kts=H((N7u,Dts)=>{"use strict";var col=Bts(),RMr=Rts(),Nts=sje(),lol=ije(),uol=e=>e&&typeof e=="object"&&!Array.isArray(e),cw=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>cw(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=uol(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=a.windows,l=n?cw.compileRe(e,t):cw.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=cw(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=cw.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};cw.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?Nts.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=cw.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};cw.matchBase=(e,t,r)=>(t instanceof RegExp?t:cw.makeRe(t,r)).test(Nts.basename(e));cw.isMatch=(e,t,r)=>cw(t,r)(e);cw.parse=(e,t)=>Array.isArray(e)?e.map(r=>cw.parse(r,t)):RMr(e,{...t,fastpaths:!1});cw.scan=(e,t)=>col(e,t);cw.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=cw.toRegex(A,t);return n===!0&&(f.state=e),f};cw.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=RMr.fastpaths(e,t)),a.output||(a=RMr(e,t)),cw.compileRe(a,t,r,n)};cw.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};cw.constants=lol;Dts.exports=cw});var Zts=H((D7u,Fts)=>{"use strict";var xts=kts(),gol=sje();function Gts(e,t,r=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:gol.isWindows()}),xts(e,t,r)}Object.assign(Gts,xts);Fts.exports=Gts});var Lts=H($Nt=>{"use strict";Object.defineProperty($Nt,"__esModule",{value:!0});$Nt.PatternMatchingHost=void 0;var Aol=Zts(),dol=nje(),NMr=class extends dol.ResolverHost{_patterns=new Map;addPattern(t,r){let n=Array.isArray(t)?t:[t];for(let a of n){let{output:o}=(0,Aol.parse)(a);this._patterns.set(new RegExp(`^${o}$`),r)}}_resolve(t){let r=t;return this._patterns.forEach((n,a)=>{a.test(t)&&(r=n(r))}),r}};$Nt.PatternMatchingHost=NMr});var Vts=H(eDt=>{"use strict";Object.defineProperty(eDt,"__esModule",{value:!0});eDt.CordHost=void 0;var w_=qb(),mte=gte(),pol=YNt(),DMr=class e extends pol.SimpleMemoryHost{_back;_filesToCreate=new Set;_filesToRename=new Map;_filesToRenameRevert=new Map;_filesToDelete=new Set;_filesToOverwrite=new Set;constructor(t){super(),this._back=t}get backend(){return this._back}get capabilities(){return{synchronous:this._back.capabilities.synchronous}}clone(){let t=new e(this._back);return t._cache=new Map(this._cache),t._filesToCreate=new Set(this._filesToCreate),t._filesToRename=new Map(this._filesToRename),t._filesToRenameRevert=new Map(this._filesToRenameRevert),t._filesToDelete=new Set(this._filesToDelete),t._filesToOverwrite=new Set(this._filesToOverwrite),t}commit(t,r=!1){return(0,w_.from)(this.records()).pipe((0,w_.concatMap)(n=>{switch(n.kind){case"delete":return t.delete(n.path);case"rename":return t.rename(n.from,n.to);case"create":return t.exists(n.path).pipe((0,w_.switchMap)(a=>a&&!r?(0,w_.throwError)(new mte.FileAlreadyExistException(n.path)):t.write(n.path,n.content)));case"overwrite":return t.exists(n.path).pipe((0,w_.switchMap)(a=>!a&&!r?(0,w_.throwError)(new mte.FileDoesNotExistException(n.path)):t.write(n.path,n.content)))}}),(0,w_.reduce)(()=>{}))}records(){return[...[...this._filesToDelete.values()].map(t=>({kind:"delete",path:t})),...[...this._filesToRename.entries()].map(([t,r])=>({kind:"rename",from:t,to:r})),...[...this._filesToCreate.values()].map(t=>({kind:"create",path:t,content:this._read(t)})),...[...this._filesToOverwrite.values()].map(t=>({kind:"overwrite",path:t,content:this._read(t)}))]}create(t,r){if(super._exists(t))throw new mte.FileAlreadyExistException(t);return this._filesToDelete.has(t)?(this._filesToDelete.delete(t),this._filesToOverwrite.add(t)):this._filesToCreate.add(t),super.write(t,r)}overwrite(t,r){return this.isDirectory(t).pipe((0,w_.switchMap)(n=>n?(0,w_.throwError)(new mte.PathIsDirectoryException(t)):this.exists(t)),(0,w_.switchMap)(n=>n?(this._filesToCreate.has(t)||this._filesToOverwrite.add(t),super.write(t,r)):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}write(t,r){return this.exists(t).pipe((0,w_.switchMap)(n=>n?this.willRename(t)||this.willDelete(t)?this.create(t,r):this.overwrite(t,r):this.create(t,r)))}read(t){return this._exists(t)?super.read(t):this._back.read(t)}delete(t){if(this._exists(t)){if(this._filesToCreate.has(t))this._filesToCreate.delete(t);else if(this._filesToOverwrite.has(t))this._filesToOverwrite.delete(t),this._filesToDelete.add(t);else{let r=this._filesToRenameRevert.get(t);if(r)this._filesToRenameRevert.delete(t),this._filesToRename.delete(r),this._filesToDelete.add(r);else return(0,w_.throwError)(new mte.UnknownException(`This should never happen. Path: ${JSON.stringify(t)}.`))}return super.delete(t)}else return this._back.exists(t).pipe((0,w_.switchMap)(r=>r?(this._filesToDelete.add(t),(0,w_.of)()):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}rename(t,r){return(0,w_.concat)(this.exists(r),this.exists(t)).pipe((0,w_.toArray)(),(0,w_.switchMap)(([n,a])=>{if(!a)return(0,w_.throwError)(new mte.FileDoesNotExistException(t));if(t===r)return w_.EMPTY;if(n)return(0,w_.throwError)(new mte.FileAlreadyExistException(r));if(this._filesToCreate.has(t))return this._filesToCreate.delete(t),this._filesToCreate.add(r),super.rename(t,r);if(this._filesToOverwrite.has(t))return this._filesToOverwrite.delete(t),(0,w_.concat)(this.rename(t,r),new w_.Observable(l=>{this._filesToOverwrite.add(r),l.complete()}));if(this._filesToDelete.has(r))return this._filesToDelete.delete(r),this._filesToDelete.add(t),this._filesToOverwrite.add(r),this.read(t).pipe((0,w_.map)(l=>this._write(r,l)));let o=this._filesToRenameRevert.get(t);return o&&(this._filesToRename.delete(o),this._filesToRenameRevert.delete(t),t=o),this._filesToRename.set(t,r),this._filesToRenameRevert.set(r,t),this._exists(t)?super.rename(t,r):this._back.read(t).pipe((0,w_.switchMap)(l=>super.write(r,l)))}))}list(t){return(0,w_.concat)(super.list(t),this._back.list(t)).pipe((0,w_.reduce)((r,n)=>(n.forEach(a=>r.add(a)),r),new Set),(0,w_.map)(r=>[...r]))}exists(t){return this._exists(t)?(0,w_.of)(!0):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.exists(t)}isDirectory(t){return this._exists(t)?super.isDirectory(t):this._back.isDirectory(t)}isFile(t){return this._exists(t)?super.isFile(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.isFile(t)}stat(t){return this._exists(t)?super.stat(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(null):this._back.stat(t)}watch(t,r){return null}willCreate(t){return this._filesToCreate.has(t)}willOverwrite(t){return this._filesToOverwrite.has(t)}willDelete(t){return this._filesToDelete.has(t)}willRename(t){return this._filesToRename.has(t)}willRenameTo(t,r){return this._filesToRename.get(t)===r}};eDt.CordHost=DMr});var Pts=H(tDt=>{"use strict";Object.defineProperty(tDt,"__esModule",{value:!0});tDt.SafeReadonlyHost=void 0;var Wle=qb(),kMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}read(t){return this._delegate.read(t)}list(t){return this._delegate.list(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)([])))}exists(t){return this._delegate.exists(t)}isDirectory(t){return this._delegate.isDirectory(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}isFile(t){return this._delegate.isFile(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}stat(t){let r=this._delegate.stat(t);return r&&r.pipe((0,Wle.catchError)(()=>(0,Wle.of)(null)))}};tDt.SafeReadonlyHost=kMr});var Ots=H(rDt=>{"use strict";Object.defineProperty(rDt,"__esModule",{value:!0});rDt.ScopedHost=void 0;var Wts=fxe(),fol=nje(),xMr=class extends fol.ResolverHost{_root;constructor(t,r=Wts.NormalizedRoot){super(t),this._root=r}_resolve(t){return(0,Wts.join)(this._root,t)}};rDt.ScopedHost=xMr});var Hts=H(F2=>{"use strict";var Mts=F2&&F2.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Iol=F2&&F2.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hol=F2&&F2.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var Yts=NO&&NO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Col=NO&&NO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),_ol=NO&&NO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(GMr,"__esModule",{value:!0});GMr.createWorkspaceHost=Eol;var iDt=qb(),_xe=nDt();function Eol(e){return{async readFile(r){let n=await(0,iDt.lastValueFrom)(e.read((0,_xe.normalize)(r)));return _xe.virtualFs.fileBufferToString(n)},async writeFile(r,n){return(0,iDt.lastValueFrom)(e.write((0,_xe.normalize)(r),_xe.virtualFs.stringToFileBuffer(n)))},async isDirectory(r){try{return await(0,iDt.lastValueFrom)(e.isDirectory((0,_xe.normalize)(r)))}catch{return!1}},async isFile(r){try{return await(0,iDt.lastValueFrom)(e.isFile((0,_xe.normalize)(r)))}catch{return!1}}}}});var oDt=H((Xts,sDt)=>{(function(e){if(typeof sDt=="object"&&typeof sDt.exports=="object"){var t=e(wt,Xts);t!==void 0&&(sDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createScanner=void 0;function r(A,f=!1){let I=A.length,C=0,b="",E=0,N=16,B=0,F=0,Q=0,X=0,ae=0;function ne(De,k){let et=0,ct=0;for(;et=48&&Me<=57)ct=ct*16+Me-48;else if(Me>=65&&Me<=70)ct=ct*16+Me-65+10;else if(Me>=97&&Me<=102)ct=ct*16+Me-97+10;else break;C++,et++}return et=I){De+=A.substring(k,C),ae=2;break}let et=A.charCodeAt(C);if(et===34){De+=A.substring(k,C),C++;break}if(et===92){if(De+=A.substring(k,C),C++,C>=I){ae=2;break}switch(A.charCodeAt(C++)){case 34:De+='"';break;case 92:De+="\\";break;case 47:De+="/";break;case 98:De+="\b";break;case 102:De+="\f";break;case 110:De+=` + `)}`),this.errors=t}static createMessages(t){return!t||t.length===0?[]:t.map(n=>{let a=`Data path ${JSON.stringify(n.instancePath)} ${n.message}`;if(n.params)switch(n.keyword){case"additionalProperties":a+=`(${n.params.additionalProperty})`;break;case"enum":a+=`. Allowed values are: ${n.params.allowedValues?.map(o=>`"${o}"`).join(", ")}`;break}return a+"."})}};VV.SchemaValidationException=K5r;var j5r=class e{_ajv;_uriCache=new Map;_uriHandlers=new Set;_pre=new U5r.PartiallyOrderedSet;_post=new U5r.PartiallyOrderedSet;_currentCompilationSchemaInfo;_smartDefaultKeyword=!1;_promptProvider;_sourceMap=new Map;constructor(t=[]){this._ajv=new J5r.default({strict:!1,loadSchema:r=>this._fetch(r),passContext:!0}),(0,jil.default)(this._ajv);for(let r of t)this.addFormat(r)}async _fetch(t){let r=this._uriCache.get(t);if(r)return r;for(let n of this._uriHandlers){let a=n(t);if(a==null)continue;(0,dte.isObservable)(a)&&(a=(0,dte.lastValueFrom)(a));let o=await a;return this._uriCache.set(t,o),o}return new Promise((n,a)=>{let o=new Qes.URL(t);(o.protocol==="https:"?qil:zil).get(o,A=>{if(!A.statusCode||A.statusCode>=300)A.resume(),a(new Error(`Request failed. Status Code: ${A.statusCode}`));else{A.setEncoding("utf8");let f="";A.on("data",I=>{f+=I}),A.on("end",()=>{try{let I=JSON.parse(f);this._uriCache.set(t,I),n(I)}catch(I){a(I)}})}})})}addPreTransform(t,r){this._pre.add(t,r)}addPostTransform(t,r){this._post.add(t,r)}_resolver(t,r){if(!r||!t)return{};let n=r.schemaEnv.root.schema,a=typeof n=="object"?n.$id:null,o=t;typeof a=="string"&&(o=Qes.resolve(a,t),t.startsWith("#")&&(o=a+o));let l=this._ajv.getSchema(o);return{context:l?.schemaEnv.validate,schema:l?.schema}}async \u0275flatten(t){this._ajv.removeSchema(t),this._currentCompilationSchemaInfo=void 0;let r=await this._ajv.compileAsync(t),n=this;function a(l,A,f,I){if(l&&f&&I&&(0,esl.isJsonObject)(l)&&Object.prototype.hasOwnProperty.call(l,"$ref")&&typeof l.$ref=="string"){let C=n._resolver(l.$ref,r);C.schema&&(f[I]=C.schema)}}let o=(0,U5r.deepCopy)(r.schema);return(0,wNt.visitJsonSchema)(o,a),o}async compile(t){let r=await this._compile(t);return(n,a)=>r(n,a)}async _compile(t){if(typeof t=="boolean")return async a=>({success:t,data:a});let r={smartDefaultRecord:new Map,promptDefinitions:[]};this._ajv.removeSchema(t);let n;try{this._currentCompilationSchemaInfo=r,n=this._ajv.compile(t)}catch(a){if(!(a instanceof J5r.default.MissingRefError))throw a;n=await this._ajv.compileAsync(t)}finally{this._currentCompilationSchemaInfo=void 0}return async(a,o)=>{let l={withPrompts:!0,applyPostTransforms:!0,applyPreTransforms:!0,...o},A={promptFieldsWithValue:new Set};if(l.applyPreTransforms)for(let f of this._pre.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));if(await this._applySmartDefaults(a,r.smartDefaultRecord),l.withPrompts){let f=(C,b)=>(C!==void 0&&A.promptFieldsWithValue.add(b),C);typeof t=="object"&&await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));let I=r.promptDefinitions.filter(C=>!A.promptFieldsWithValue.has(C.id));I.length>0&&await this._applyPrompts(a,I)}try{let f=await n.call(A,a);if(!f)return{data:a,success:f,errors:n.errors??[]}}catch(f){if(f instanceof J5r.default.ValidationError)return{data:a,success:!1,errors:f.errors};throw f}if(l.applyPostTransforms)for(let f of this._post.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));return{data:a,success:!0}}}addFormat(t){this._ajv.addFormat(t.name,t.formatter)}addSmartDefaultProvider(t,r){if(this._sourceMap.has(t))throw new Error(t);this._sourceMap.set(t,r),this._smartDefaultKeyword||(this._smartDefaultKeyword=!0,this._ajv.addKeyword({keyword:"$default",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(l===void 0)return()=>!0;let A=this.normalizeDataPathArr(o);return l.smartDefaultRecord.set(JSON.stringify(A),n),()=>!0},metaSchema:{type:"object",properties:{$source:{type:"string"}},additionalProperties:!0,required:["$source"]}}))}registerUriHandler(t){this._uriHandlers.add(t)}usePromptProvider(t){let r=!!this._promptProvider;this._promptProvider=t,!r&&this._ajv.addKeyword({keyword:"x-prompt",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(!l)return()=>!0;let A="/"+this.normalizeDataPathArr(o).join("/"),f,I,C;typeof n=="string"?C=n:(C=n.message,f=n.type,I=n.items);let b=(0,tsl.getTypesOfSchema)(a);f||(b.size===1&&b.has("boolean")?f="confirmation":Array.isArray(a.enum)||b.size===1&&b.has("array")&&a.items&&Array.isArray(a.items.enum)?f="list":f="input");let E;if(f==="list"){E=n.multiselect===void 0?b.size===1&&b.has("array"):n.multiselect;let B=E?a.items&&a.items.enum:a.enum;if(!I&&Array.isArray(B)){I=[];for(let F of B)typeof F=="string"?I.push(F):typeof F=="object"||I.push({label:F.toString(),value:F})}}let N={id:A,type:f,message:C,raw:n,items:I,multiselect:E,propertyTypes:b,default:typeof a.default=="object"&&a.default!==null&&!Array.isArray(a.default)?void 0:a.default,async validator(B){try{let F=await o.self.validate(a,B);if(F)return F;if(o.self.errors?.length)return o.self.errors[0].message}catch(F){let Q=F;if(Array.isArray(Q.errors)&&Q.errors.length)return Q.errors[0].message}return!1}};return l.promptDefinitions.push(N),function(){return this&&this.promptFieldsWithValue&&this.promptFieldsWithValue.add(A),!0}},metaSchema:{oneOf:[{type:"string"},{type:"object",properties:{type:{type:"string"},message:{type:"string"}},additionalProperties:!0,required:["message"]}]}})}async _applyPrompts(t,r){let n=this._promptProvider;if(!n)return;let a=await(0,dte.lastValueFrom)((0,dte.from)(n(r)));for(let o in a){let l=o.split("/").slice(1);e._set(t,l,a[o],null,void 0,!0)}}static _set(t,r,n,a=null,o,l){for(let A=0;A(r&&t(`Option "${o?.parentDataProperty}" is deprecated${typeof r=="string"?": "+r:"."}`),!0),errors:!1})}normalizeDataPathArr(t){return t.dataPathArr.slice(1,t.dataLevel+1).map(r=>typeof r=="number"?r:r.str.replace(/"/g,""))}};VV.CoreSchemaRegistry=j5r});var Ues=H(TNt=>{"use strict";Object.defineProperty(TNt,"__esModule",{value:!0});TNt.isJsonSchema=nsl;TNt.mergeSchemas=isl;var rsl=$Ce();function nsl(e){return(0,rsl.isJsonObject)(e)||e===!1||e===!0}function isl(...e){return e.reduce((t,r)=>r===void 0?t:t===!1||r===!1?!1:t===!0?r:r===!0?t:Array.isArray(t.allOf)?Array.isArray(r.allOf)?{...t,allOf:[...t.allOf,...r.allOf]}:{...t,allOf:[...t.allOf,r]}:Array.isArray(r.allOf)?{...t,allOf:[t,...r.allOf]}:{...t,allOf:[t,r]},!0)}});var jes=H(ID=>{"use strict";var Kes=ID&&ID.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ssl=ID&&ID.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),osl=ID&&ID.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var zes=RO&&RO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),csl=RO&&RO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lsl=RO&&RO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(NNt,"__esModule",{value:!0});NNt.Logger=void 0;var q5r=qb(),$5r=class extends q5r.Observable{name;parent;_subject=new q5r.Subject;_metadata;_obs=q5r.EMPTY;_subscription=null;get _observable(){return this._obs}set _observable(t){this._subscription&&this._subscription.unsubscribe(),this._obs=t,this.parent&&(this._subscription=this.subscribe(r=>{this.parent&&this.parent._subject.next(r)},r=>{this.parent&&this.parent._subject.error(r)},()=>{this._subscription&&this._subscription.unsubscribe(),this._subscription=null}))}constructor(t,r=null){super(),this.name=t,this.parent=r;let n=[],a=r;for(;a;)n.push(a.name),a=a.parent;this._metadata={name:t,path:n},this._observable=this._subject.asObservable(),this.parent&&this.parent._subject&&this.parent._subject.subscribe(void 0,void 0,()=>this.complete())}asApi(){return{createChild:t=>this.createChild(t),log:(t,r,n)=>this.log(t,r,n),debug:(t,r)=>this.debug(t,r),info:(t,r)=>this.info(t,r),warn:(t,r)=>this.warn(t,r),error:(t,r)=>this.error(t,r),fatal:(t,r)=>this.fatal(t,r)}}createChild(t){return new this.constructor(t,this)}complete(){this._subject.complete()}log(t,r,n={}){let a=Object.assign({},n,this._metadata,{level:t,message:r,timestamp:+Date.now()});this._subject.next(a)}next(t){this._subject.next(t)}debug(t,r={}){return this.log("debug",t,r)}info(t,r={}){return this.log("info",t,r)}warn(t,r={}){return this.log("warn",t,r)}error(t,r={}){return this.log("error",t,r)}fatal(t,r={}){return this.log("fatal",t,r)}toString(){return``}lift(t){return this._observable.lift(t)}subscribe(t,r,n){return this._observable.subscribe.apply(this._observable,arguments)}forEach(t,r=Promise){return this._observable.forEach(t,r)}};NNt.Logger=$5r});var qes=H(DNt=>{"use strict";Object.defineProperty(DNt,"__esModule",{value:!0});DNt.IndentLogger=void 0;var Asl=qb(),dsl=Axe(),eMr={},tMr=class extends dsl.Logger{constructor(t,r=null,n=" "){super(t,r),eMr[n]=eMr[n]||[""];let a=eMr[n];this._observable=this._observable.pipe((0,Asl.map)(o=>{let l=o.path.filter(A=>!!A).length;if(l>=a.length){let A=a[a.length-1];for(;l>=a.length;)A+=n,a.push(A)}return o.message=a[l]+o.message.split(/\n/).join(` +`+a[l]),o}))}};DNt.IndentLogger=tMr});var $es=H(dxe=>{"use strict";Object.defineProperty(dxe,"__esModule",{value:!0});dxe.LevelCapLogger=dxe.LevelTransformLogger=void 0;var psl=Axe(),kNt=class e extends psl.Logger{name;parent;levelTransform;constructor(t,r=null,n){super(t,r),this.name=t,this.parent=r,this.levelTransform=n}log(t,r,n={}){return super.log(this.levelTransform(t),r,n)}createChild(t){return new e(t,this,this.levelTransform)}};dxe.LevelTransformLogger=kNt;var rMr=class e extends kNt{name;parent;levelCap;static levelMap={debug:{debug:"debug",info:"debug",warn:"debug",error:"debug",fatal:"debug"},info:{debug:"debug",info:"info",warn:"info",error:"info",fatal:"info"},warn:{debug:"debug",info:"info",warn:"warn",error:"warn",fatal:"warn"},error:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"error"},fatal:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}};constructor(t,r=null,n){super(t,r,a=>e.levelMap[n][a]||a),this.name=t,this.parent=r,this.levelCap=n}};dxe.LevelCapLogger=rMr});var ets=H(xNt=>{"use strict";Object.defineProperty(xNt,"__esModule",{value:!0});xNt.NullLogger=void 0;var fsl=qb(),Isl=Axe(),nMr=class e extends Isl.Logger{constructor(t=null){super("",t),this._observable=fsl.EMPTY}asApi(){return{createChild:()=>new e(this),log(){},debug(){},info(){},warn(){},error(){},fatal(){}}}};xNt.NullLogger=nMr});var tts=H(GNt=>{"use strict";Object.defineProperty(GNt,"__esModule",{value:!0});GNt.TransformLogger=void 0;var hsl=Axe(),iMr=class extends hsl.Logger{constructor(t,r,n=null){super(t,n),this._observable=r(this._observable)}};GNt.TransformLogger=iMr});var rts=H(G4=>{"use strict";var msl=G4&&G4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$8e=G4&&G4.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&msl(t,e,r)};Object.defineProperty(G4,"__esModule",{value:!0});$8e(qes(),G4);$8e($es(),G4);$8e(Axe(),G4);$8e(ets(),G4);$8e(tts(),G4)});var oMr=H(pxe=>{"use strict";Object.defineProperty(pxe,"__esModule",{value:!0});pxe.TargetDefinitionCollection=pxe.ProjectDefinitionCollection=void 0;var FNt=class{_listener;_map;constructor(t,r){this._listener=r,this._map=new Map(t&&Object.entries(t))}delete(t){let r=this._map.delete(t);return r&&this._listener?.(t,void 0,this),r}set(t,r){return r!==this.get(t)&&(this._map.set(t,r),this._listener?.(t,r,this)),this}forEach(t,r){this._map.forEach((n,a)=>t(n,a,this),r)}get(t){return this._map.get(t)}has(t){return this._map.has(t)}get size(){return this._map.size}[Symbol.iterator](){return this._map[Symbol.iterator]()}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}};function nts(e){let t=new Set;switch(typeof e){case"boolean":case"number":case"string":return!0;case"object":if(e===null)return!0;t.add(e);for(let r of Object.values(e))if(!(typeof e=="object"&&t.has(r))&&!nts(r))return!1;return!0;default:return!1}}var sMr=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Project name already exists.");this._validateName(t.name);let r={root:t.root,prefix:t.prefix,sourceRoot:t.sourceRoot,targets:new ZNt,extensions:{}};if(t.targets)for(let[n,a]of Object.entries(t.targets))a&&r.targets.set(n,a);for(let[n,a]of Object.entries(t))switch(n){case"name":case"root":case"sourceRoot":case"prefix":case"targets":break;default:if(nts(a))r.extensions[n]=a;else throw new TypeError(`"${n}" must be a JSON value.`);break}return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string"||!/^(?:@\w[\w.-]*\/)?\w[\w.-]*$/.test(t))throw new Error("Project name must be a valid npm package name.")}};pxe.ProjectDefinitionCollection=sMr;var ZNt=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Target name already exists.");this._validateName(t.name);let r={builder:t.builder,options:t.options,configurations:t.configurations,defaultConfiguration:t.defaultConfiguration};return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string")throw new TypeError("Target name must be a string.")}};pxe.TargetDefinitionCollection=ZNt});var fxe=H(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.path=FI.NormalizedRoot=FI.NormalizedSep=FI.PathCannotBeFragmentException=FI.PathMustBeAbsoluteException=FI.InvalidPathException=void 0;FI.split=aMr;FI.extname=Csl;FI.basename=its;FI.dirname=_sl;FI.join=sts;FI.isAbsolute=PNt;FI.relative=ysl;FI.resolve=bsl;FI.fragment=WNt;FI.resetNormalizeCache=Esl;FI.normalize=tje;FI.noCacheNormalize=ots;FI.asWindowsPath=ats;FI.asPosixPath=vsl;FI.getSystemPath=Bsl;var lMr=gte(),LNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} is invalid.`)}};FI.InvalidPathException=LNt;var eje=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} must be absolute.`)}};FI.PathMustBeAbsoluteException=eje;var VNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} cannot be made a fragment.`)}};FI.PathCannotBeFragmentException=VNt;FI.NormalizedSep="/";FI.NormalizedRoot=FI.NormalizedSep;function aMr(e){let t=e.split(FI.NormalizedSep).map(r=>WNt(r));return t[t.length-1].length===0&&t.pop(),t}function Csl(e){let t=its(e),r=t.lastIndexOf(".");return r<1?"":t.slice(r)}function its(e){return e.lastIndexOf(FI.NormalizedSep)==-1?WNt(e):WNt(e.slice(e.lastIndexOf(FI.NormalizedSep)+1))}function _sl(e){let t=e.lastIndexOf(FI.NormalizedSep);if(t===-1)return"";let r=t===0?1:t;return tje(e.slice(0,r))}function sts(e,...t){return t.length>0?tje((e?e+FI.NormalizedSep:"")+t.join(FI.NormalizedSep)):e}function PNt(e){return e.startsWith(FI.NormalizedSep)}function ysl(e,t){if(!PNt(e))throw new eje(e);if(!PNt(t))throw new eje(t);let r;if(e==t)r="";else{let n=aMr(e),a=aMr(t);for(;n.length>0&&a.length>0&&n[0]==a[0];)n.shift(),a.shift();n.length==0?r=a.join(FI.NormalizedSep):r=n.map(()=>"..").concat(a).join(FI.NormalizedSep)}return tje(r)}function bsl(e,t){return PNt(t)?t:sts(e,t)}function WNt(e){if(e.indexOf(FI.NormalizedSep)!=-1)throw new VNt(e);return e}var cMr=new Map;function Esl(){cMr=new Map}function tje(e){let t=cMr.get(e);return t||(t=ots(e),cMr.set(e,t)),t}function ots(e){if(e==""||e==".")return"";if(e==FI.NormalizedRoot)return FI.NormalizedRoot;let t=e;e.match(/^[A-Z]:[/\\]/i)&&(e="\\"+e[0].toUpperCase()+"\\"+e.slice(3));let r=e.split(/[/\\]/g),n=!1,a=1;for(r[0]!=""&&(r.unshift("."),n=!0);a=2&&r[a-1]!=".."?(r.splice(a-1,2),a--):a++}else r[a]==""?r.splice(a,1):a++;return r.length==1?r[0]==""?FI.NormalizedSep:"":(r[0]=="."&&r.shift(),r.join(FI.NormalizedSep))}var Ssl=(e,...t)=>tje(String.raw(e,...t));FI.path=Ssl;function ats(e){let t=e.match(/^\/(\w)(?:\/(.*))?$/);if(t){let r=t[2]?t[2].replace(/\//g,"\\"):"";return`${t[1]}:\\${r}`}return e.replace(/\//g,"\\")}function vsl(e){return e}function Bsl(e){return process.platform.startsWith("win32")?ats(e):e}});var uMr=H(ONt=>{"use strict";Object.defineProperty(ONt,"__esModule",{value:!0});ONt.stringToFileBuffer=wsl;ONt.fileBufferToString=Tsl;var cts=wt("node:util");function wsl(e){return new cts.TextEncoder().encode(e).buffer}function Tsl(e){return e.toString.length===1?e.toString("utf-8"):new cts.TextDecoder("utf-8").decode(new Uint8Array(e))}});var gMr=H(MNt=>{"use strict";Object.defineProperty(MNt,"__esModule",{value:!0});MNt.HostWatchEventType=void 0;var lts;(function(e){e[e.Changed=0]="Changed",e[e.Created=1]="Created",e[e.Deleted=2]="Deleted",e[e.Renamed=3]="Renamed"})(lts||(MNt.HostWatchEventType=lts={}))});var YNt=H(HNt=>{"use strict";Object.defineProperty(HNt,"__esModule",{value:!0});HNt.SimpleMemoryHost=void 0;var zj=qb(),pte=gte(),aw=fxe(),Ixe=gMr(),AMr=class{_cache=new Map;_watchers=new Map;_newDirStats(){return{inspect(){return""},isFile(){return!1},isDirectory(){return!0},size:0,atime:new Date,ctime:new Date,mtime:new Date,birthtime:new Date,content:null}}_newFileStats(t,r){return{inspect(){return``},isFile(){return!0},isDirectory(){return!1},size:t.byteLength,atime:r?r.atime:new Date,ctime:new Date,mtime:new Date,birthtime:r?r.birthtime:new Date,content:t}}constructor(){this._cache.set((0,aw.normalize)("/"),this._newDirStats())}_toAbsolute(t){return(0,aw.isAbsolute)(t)?t:(0,aw.normalize)("/"+t)}_updateWatchers(t,r){let n=new Date,a=t,o=null;if(this._watchers.size==0)return;let l=this._watchers.get(a);l&&l.forEach(A=>{let[f,I]=A;I.next({path:t,time:n,type:r}),!f.persistent&&r==Ixe.HostWatchEventType.Deleted&&(I.complete(),this._watchers.delete(a))});do{a=o!==null?o:a,o=(0,aw.dirname)(a);let A=this._watchers.get(a);A&&A.forEach(f=>{let[I,C]=f;I.recursive&&(C.next({path:t,time:n,type:r}),!I.persistent&&r==Ixe.HostWatchEventType.Deleted&&(C.complete(),this._watchers.delete(a)))})}while(o!=a)}get capabilities(){return{synchronous:!0}}_write(t,r){t=this._toAbsolute(t);let n=this._cache.get(t);if(n&&n.isDirectory())throw new pte.PathIsDirectoryException(t);let a=(0,aw.split)(t),o=(0,aw.normalize)("/");for(let A of a){o=(0,aw.join)(o,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(o)}else this._cache.set(o,this._newDirStats())}let l=this._newFileStats(r,n);this._cache.set(t,l),this._updateWatchers(t,n?Ixe.HostWatchEventType.Changed:Ixe.HostWatchEventType.Created)}_read(t){t=this._toAbsolute(t);let r=this._cache.get(t);if(r){if(r.isDirectory())throw new pte.PathIsDirectoryException(t);if(r.content)return r.content;throw new pte.PathIsDirectoryException(t)}else throw new pte.FileDoesNotExistException(t)}_delete(t){if(t=this._toAbsolute(t),this._isDirectory(t))for(let[r]of this._cache.entries())(r.startsWith(t+aw.NormalizedSep)||r===t)&&this._cache.delete(r);else this._cache.delete(t);this._updateWatchers(t,Ixe.HostWatchEventType.Deleted)}_rename(t,r){if(t=this._toAbsolute(t),r=this._toAbsolute(r),this._cache.has(t)){if(this._cache.has(r))throw new pte.FileAlreadyExistException(r)}else throw new pte.FileDoesNotExistException(t);if(this._isDirectory(t)){for(let n of this._cache.keys())if(n.startsWith(t+aw.NormalizedSep)){let a=this._cache.get(n);a&&this._cache.set((0,aw.join)(r,aw.NormalizedSep,n.slice(t.length)),a)}}else{let n=this._cache.get(t);if(n){let a=(0,aw.split)(r),o=[],l=(0,aw.normalize)("/");for(let A of a){l=(0,aw.join)(l,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(l)}else o.push(l)}for(let A of o)this._cache.set(A,this._newDirStats());this._cache.delete(t),this._cache.set(r,n)}}this._updateWatchers(t,Ixe.HostWatchEventType.Renamed)}_list(t){if(t=this._toAbsolute(t),this._isFile(t))throw new pte.PathIsFileException(t);let r=(0,aw.split)(t),n=new Set;if(t!==aw.NormalizedRoot)for(let a of this._cache.keys())a.startsWith(t+aw.NormalizedSep)&&n.add((0,aw.split)(a)[r.length]);else for(let a of this._cache.keys())a.startsWith(aw.NormalizedSep)&&a!==aw.NormalizedRoot&&n.add((0,aw.split)(a)[1]);return[...n]}_exists(t){return!!this._cache.get(this._toAbsolute(t))}_isDirectory(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isDirectory():!1}_isFile(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isFile():!1}_stat(t){let r=this._cache.get(this._toAbsolute(t));return r||null}_watch(t,r){t=this._toAbsolute(t);let n=new zj.Subject,a=this._watchers.get(t);return a||(a=[],this._watchers.set(t,a)),a.push([r||{},n]),n.asObservable()}write(t,r){return new zj.Observable(n=>{this._write(t,r),n.next(),n.complete()})}read(t){return new zj.Observable(r=>{let n=this._read(t);r.next(n),r.complete()})}delete(t){return new zj.Observable(r=>{this._delete(t),r.next(),r.complete()})}rename(t,r){return new zj.Observable(n=>{this._rename(t,r),n.next(),n.complete()})}list(t){return new zj.Observable(r=>{r.next(this._list(t)),r.complete()})}exists(t){return new zj.Observable(r=>{r.next(this._exists(t)),r.complete()})}isDirectory(t){return new zj.Observable(r=>{r.next(this._isDirectory(t)),r.complete()})}isFile(t){return new zj.Observable(r=>{r.next(this._isFile(t)),r.complete()})}stat(t){return new zj.Observable(r=>{r.next(this._stat(t)),r.complete()})}watch(t,r){return this._watch(t,r)}reset(){this._cache.clear(),this._watchers.clear()}};HNt.SimpleMemoryHost=AMr});var pMr=H(hxe=>{"use strict";Object.defineProperty(hxe,"__esModule",{value:!0});hxe.SyncDelegateHost=hxe.SynchronousDelegateExpectedException=void 0;var Rsl=gte(),rje=class extends Rsl.BaseException{constructor(){super("Expected a synchronous delegate but got an asynchronous one.")}};hxe.SynchronousDelegateExpectedException=rje;var dMr=class{_delegate;constructor(t){if(this._delegate=t,!t.capabilities.synchronous)throw new rje}_doSyncCall(t){let r=!1,n,a;if(t.subscribe(o=>n=o,o=>a=o,()=>r=!0),a!==void 0)throw a;if(!r)throw new rje;return n}get capabilities(){return this._delegate.capabilities}get delegate(){return this._delegate}write(t,r){return this._doSyncCall(this._delegate.write(t,r))}read(t){return this._doSyncCall(this._delegate.read(t))}delete(t){return this._doSyncCall(this._delegate.delete(t))}rename(t,r){return this._doSyncCall(this._delegate.rename(t,r))}list(t){return this._doSyncCall(this._delegate.list(t))}exists(t){return this._doSyncCall(this._delegate.exists(t))}isDirectory(t){return this._doSyncCall(this._delegate.isDirectory(t))}isFile(t){return this._doSyncCall(this._delegate.isFile(t))}stat(t){let r=this._delegate.stat(t);return r?this._doSyncCall(r):null}watch(t,r){return this._delegate.watch(t,r)}};hxe.SyncDelegateHost=dMr});var uts=H(QNt=>{"use strict";Object.defineProperty(QNt,"__esModule",{value:!0});QNt.TestHost=void 0;var fte=fxe(),fMr=uMr(),Nsl=YNt(),Dsl=pMr(),IMr=class e extends Nsl.SimpleMemoryHost{_records=[];_sync=null;constructor(t={}){super();for(let r of Object.getOwnPropertyNames(t))this._write((0,fte.normalize)(r),(0,fMr.stringToFileBuffer)(t[r]))}get records(){return[...this._records]}clearRecords(){this._records=[]}get files(){let t=this.sync;function r(n){return t.list(n).map(a=>(0,fte.join)(n,a)).reduce((a,o)=>t.isDirectory(o)?a.concat(r(o)):a.concat(o),[])}return r((0,fte.normalize)("/"))}get sync(){return this._sync||(this._sync=new Dsl.SyncDelegateHost(this)),this._sync}clone(){let t=new e;return t._cache=new Map(this._cache),t}_write(t,r){return this._records.push({kind:"write",path:t}),super._write(t,r)}_read(t){return this._records.push({kind:"read",path:t}),super._read(t)}_delete(t){return this._records.push({kind:"delete",path:t}),super._delete(t)}_rename(t,r){return this._records.push({kind:"rename",from:t,to:r}),super._rename(t,r)}_list(t){return this._records.push({kind:"list",path:t}),super._list(t)}_exists(t){return this._records.push({kind:"exists",path:t}),super._exists(t)}_isDirectory(t){return this._records.push({kind:"isDirectory",path:t}),super._isDirectory(t)}_isFile(t){return this._records.push({kind:"isFile",path:t}),super._isFile(t)}_stat(t){return this._records.push({kind:"stat",path:t}),super._stat(t)}_watch(t,r){return this._records.push({kind:"watch",path:t}),super._watch(t,r)}$write(t,r){return super._write((0,fte.normalize)(t),(0,fMr.stringToFileBuffer)(r))}$read(t){return(0,fMr.fileBufferToString)(super._read((0,fte.normalize)(t)))}$list(t){return super._list((0,fte.normalize)(t))}$exists(t){return super._exists((0,fte.normalize)(t))}$isDirectory(t){return super._isDirectory((0,fte.normalize)(t))}$isFile(t){return super._isFile((0,fte.normalize)(t))}};QNt.TestHost=IMr});var nje=H(XNt=>{"use strict";Object.defineProperty(XNt,"__esModule",{value:!0});XNt.ResolverHost=void 0;var hMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}write(t,r){return this._delegate.write(this._resolve(t),r)}read(t){return this._delegate.read(this._resolve(t))}delete(t){return this._delegate.delete(this._resolve(t))}rename(t,r){return this._delegate.rename(this._resolve(t),this._resolve(r))}list(t){return this._delegate.list(this._resolve(t))}exists(t){return this._delegate.exists(this._resolve(t))}isDirectory(t){return this._delegate.isDirectory(this._resolve(t))}isFile(t){return this._delegate.isFile(this._resolve(t))}stat(t){return this._delegate.stat(this._resolve(t))}watch(t,r){return this._delegate.watch(this._resolve(t),r)}};XNt.ResolverHost=hMr});var gts=H(UNt=>{"use strict";Object.defineProperty(UNt,"__esModule",{value:!0});UNt.AliasHost=void 0;var JNt=fxe(),ksl=nje(),mMr=class extends ksl.ResolverHost{_aliases=new Map;_resolve(t){let r=this._aliases.get(t),n=(0,JNt.split)(t),a=[];for(;!r&&n.length>0;){let o=(0,JNt.join)(JNt.NormalizedRoot,...n);r=this._aliases.get(o),r&&(r=(0,JNt.join)(r,...a)),a.unshift(n.pop())}return r||t}get aliases(){return this._aliases}};UNt.AliasHost=mMr});var Ats=H(CMr=>{"use strict";Object.defineProperty(CMr,"__esModule",{value:!0});CMr.createSyncHost=Gsl;var xsl=qb();function Ite(e){return new xsl.Observable(t=>{t.next(e()),t.complete()})}function Gsl(e){return new class{get capabilities(){return{synchronous:!0}}read(t){return Ite(()=>e.read(t))}list(t){return Ite(()=>e.list(t))}exists(t){return Ite(()=>e.exists(t))}isDirectory(t){return Ite(()=>e.isDirectory(t))}isFile(t){return Ite(()=>e.isFile(t))}stat(t){return Ite(()=>e.stat(t))}write(t,r){return Ite(()=>e.write(t,r))}delete(t){return Ite(()=>e.delete(t))}rename(t,r){return Ite(()=>e.rename(t,r))}watch(){return null}}}});var dts=H(KNt=>{"use strict";Object.defineProperty(KNt,"__esModule",{value:!0});KNt.Empty=void 0;var mxe=qb(),Fsl=gte(),_Mr=class{capabilities={synchronous:!0};read(t){return(0,mxe.throwError)(new Fsl.FileDoesNotExistException(t))}list(t){return(0,mxe.of)([])}exists(t){return(0,mxe.of)(!1)}isDirectory(t){return(0,mxe.of)(!1)}isFile(t){return(0,mxe.of)(!1)}stat(t){return(0,mxe.of)(null)}};KNt.Empty=_Mr});var ije=H((w7u,mts)=>{"use strict";var qj="\\\\/",pts=`[^${qj}]`,hte="\\.",Zsl="\\+",Lsl="\\?",jNt="\\/",Vsl="(?=.)",fts="[^/]",yMr=`(?:${jNt}|$)`,Its=`(?:^|${jNt})`,bMr=`${hte}{1,2}${yMr}`,Psl=`(?!${hte})`,Wsl=`(?!${Its}${bMr})`,Osl=`(?!${hte}{0,1}${yMr})`,Msl=`(?!${bMr})`,Hsl=`[^.${jNt}]`,Ysl=`${fts}*?`,Qsl="/",hts={DOT_LITERAL:hte,PLUS_LITERAL:Zsl,QMARK_LITERAL:Lsl,SLASH_LITERAL:jNt,ONE_CHAR:Vsl,QMARK:fts,END_ANCHOR:yMr,DOTS_SLASH:bMr,NO_DOT:Psl,NO_DOTS:Wsl,NO_DOT_SLASH:Osl,NO_DOTS_SLASH:Msl,QMARK_NO_DOT:Hsl,STAR:Ysl,START_ANCHOR:Its,SEP:Qsl},Xsl={...hts,SLASH_LITERAL:`[${qj}]`,QMARK:pts,STAR:`${pts}*?`,DOTS_SLASH:`${hte}{1,2}(?:[${qj}]|$)`,NO_DOT:`(?!${hte})`,NO_DOTS:`(?!(?:^|[${qj}])${hte}{1,2}(?:[${qj}]|$))`,NO_DOT_SLASH:`(?!${hte}{0,1}(?:[${qj}]|$))`,NO_DOTS_SLASH:`(?!${hte}{1,2}(?:[${qj}]|$))`,QMARK_NO_DOT:`[^.${qj}]`,START_ANCHOR:`(?:^|[${qj}])`,END_ANCHOR:`(?:[${qj}]|$)`,SEP:"\\"},Jsl={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};mts.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Jsl,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Xsl:hts}}});var sje=H(PV=>{"use strict";var{REGEX_BACKSLASH:Usl,REGEX_REMOVE_BACKSLASH:Ksl,REGEX_SPECIAL_CHARS:jsl,REGEX_SPECIAL_CHARS_GLOBAL:zsl}=ije();PV.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);PV.hasRegexChars=e=>jsl.test(e);PV.isRegexChar=e=>e.length===1&&PV.hasRegexChars(e);PV.escapeRegex=e=>e.replace(zsl,"\\$1");PV.toPosixSlashes=e=>e.replace(Usl,"/");PV.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};PV.removeBackslashes=e=>e.replace(Ksl,t=>t==="\\"?"":t);PV.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?PV.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};PV.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};PV.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o};PV.basename=(e,{windows:t}={})=>{let r=e.split(t?/[\\/]/:"/"),n=r[r.length-1];return n===""?r[r.length-2]:n}});var Bts=H((R7u,vts)=>{"use strict";var Cts=sje(),{CHAR_ASTERISK:EMr,CHAR_AT:qsl,CHAR_BACKWARD_SLASH:oje,CHAR_COMMA:$sl,CHAR_DOT:SMr,CHAR_EXCLAMATION_MARK:vMr,CHAR_FORWARD_SLASH:Sts,CHAR_LEFT_CURLY_BRACE:BMr,CHAR_LEFT_PARENTHESES:wMr,CHAR_LEFT_SQUARE_BRACKET:eol,CHAR_PLUS:tol,CHAR_QUESTION_MARK:_ts,CHAR_RIGHT_CURLY_BRACE:rol,CHAR_RIGHT_PARENTHESES:yts,CHAR_RIGHT_SQUARE_BRACKET:nol}=ije(),bts=e=>e===Sts||e===oje,Ets=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},iol=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&bts(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Cts.removeBackslashes(je)),ct&&ae===!0&&(ct=Cts.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,bts(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var zNt=ije(),$j=sje(),{MAX_LENGTH:qNt,POSIX_REGEX_SOURCE:sol,REGEX_NON_SPECIAL_CHARS:ool,REGEX_SPECIAL_CHARS_BACKREF:aol,REPLACEMENTS:wts}=zNt,col=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>$j.escapeRegex(a)).join("..")}return r},Cxe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,TMr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=wts[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=zNt.globChars(r.windows),I=zNt.extglobChars(f),{DOT_LITERAL:C,PLUS_LITERAL:b,SLASH_LITERAL:E,ONE_CHAR:N,DOTS_SLASH:B,NO_DOT:F,NO_DOT_SLASH:Q,NO_DOTS_SLASH:X,QMARK:ae,QMARK_NO_DOT:ne,STAR:ce,START_ANCHOR:fe}=f,ue=cr=>`(${A}(?:(?!${fe}${cr.dot?B:C}).)*?)`,de=r.dot?"":F,be=r.dot?ae:ne,Se=r.bash===!0?ue(r):ce;r.capture&&(Se=`(${Se})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let De={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=$j.removePrefix(e,De),a=e.length;let k=[],et=[],ct=[],Me=o,je,St=()=>De.index===a-1,At=De.peek=(cr=1)=>e[De.index+cr],Yt=De.advance=()=>e[++De.index]||"",Tr=()=>e.slice(De.index+1),Nr=(cr="",Ar=0)=>{De.consumed+=cr,De.index+=Ar},er=cr=>{De.output+=cr.output!=null?cr.output:cr.value,Nr(cr.value)},vt=()=>{let cr=1;for(;At()==="!"&&(At(2)!=="("||At(3)==="?");)Yt(),De.start++,cr++;return cr%2===0?!1:(De.negated=!0,De.start++,!0)},xt=cr=>{De[cr]++,ct.push(cr)},Zr=cr=>{De[cr]--,ct.pop()},qt=cr=>{if(Me.type==="globstar"){let Ar=De.braces>0&&(cr.type==="comma"||cr.type==="brace"),qr=cr.extglob===!0||k.length&&(cr.type==="pipe"||cr.type==="paren");cr.type!=="slash"&&cr.type!=="paren"&&!Ar&&!qr&&(De.output=De.output.slice(0,-Me.output.length),Me.type="star",Me.value="*",Me.output=Se,De.output+=Me.output)}if(k.length&&cr.type!=="paren"&&(k[k.length-1].inner+=cr.value),(cr.value||cr.output)&&er(cr),Me&&Me.type==="text"&&cr.type==="text"){Me.output=(Me.output||Me.value)+cr.value,Me.value+=cr.value;return}cr.prev=Me,l.push(cr),Me=cr},Xt=(cr,Ar)=>{let qr={...I[Ar],conditions:1,inner:""};qr.prev=Me,qr.parens=De.parens,qr.output=De.output;let _n=(r.capture?"(":"")+qr.open;xt("parens"),qt({type:cr,value:Ar,output:De.output?"":N}),qt({type:"paren",extglob:!0,value:Yt(),output:_n}),k.push(qr)},lr=cr=>{let Ar=cr.close+(r.capture?")":""),qr;if(cr.type==="negate"){let _n=Se;if(cr.inner&&cr.inner.length>1&&cr.inner.includes("/")&&(_n=ue(r)),(_n!==Se||St()||/^\)+$/.test(Tr()))&&(Ar=cr.close=`)$))${_n}`),cr.inner.includes("*")&&(qr=Tr())&&/^\.[^\\/.]+$/.test(qr)){let ke=TMr(qr,{...t,fastpaths:!1}).output;Ar=cr.close=`)${ke})${_n})`}cr.prev.type==="bos"&&(De.negatedExtglob=!0)}qt({type:"paren",extglob:!0,value:je,output:Ar}),Zr("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let cr=!1,Ar=e.replace(aol,(qr,_n,ke,jt,Fn,Nn)=>jt==="\\"?(cr=!0,qr):jt==="?"?_n?_n+jt+(Fn?ae.repeat(Fn.length):""):Nn===0?be+(Fn?ae.repeat(Fn.length):""):ae.repeat(ke.length):jt==="."?C.repeat(ke.length):jt==="*"?_n?_n+jt+(Fn?Se:""):Se:_n?qr:`\\${qr}`);return cr===!0&&(r.unescape===!0?Ar=Ar.replace(/\\/g,""):Ar=Ar.replace(/\\+/g,qr=>qr.length%2===0?"\\\\":qr?"\\":"")),Ar===e&&r.contains===!0?(De.output=e,De):(De.output=$j.wrapOutput(Ar,De,t),De)}for(;!St();){if(je=Yt(),je==="\0")continue;if(je==="\\"){let qr=At();if(qr==="/"&&r.bash!==!0||qr==="."||qr===";")continue;if(!qr){je+="\\",qt({type:"text",value:je});continue}let _n=/^\\+/.exec(Tr()),ke=0;if(_n&&_n[0].length>2&&(ke=_n[0].length,De.index+=ke,ke%2!==0&&(je+="\\")),r.unescape===!0?je=Yt():je+=Yt(),De.brackets===0){qt({type:"text",value:je});continue}}if(De.brackets>0&&(je!=="]"||Me.value==="["||Me.value==="[^")){if(r.posix!==!1&&je===":"){let qr=Me.value.slice(1);if(qr.includes("[")&&(Me.posix=!0,qr.includes(":"))){let _n=Me.value.lastIndexOf("["),ke=Me.value.slice(0,_n),jt=Me.value.slice(_n+2),Fn=sol[jt];if(Fn){Me.value=ke+Fn,De.backtrack=!0,Yt(),!o.output&&l.indexOf(Me)===1&&(o.output=N);continue}}}(je==="["&&At()!==":"||je==="-"&&At()==="]")&&(je=`\\${je}`),je==="]"&&(Me.value==="["||Me.value==="[^")&&(je=`\\${je}`),r.posix===!0&&je==="!"&&Me.value==="["&&(je="^"),Me.value+=je,er({value:je});continue}if(De.quotes===1&&je!=='"'){je=$j.escapeRegex(je),Me.value+=je,er({value:je});continue}if(je==='"'){De.quotes=De.quotes===1?0:1,r.keepQuotes===!0&&qt({type:"text",value:je});continue}if(je==="("){xt("parens"),qt({type:"paren",value:je});continue}if(je===")"){if(De.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","("));let qr=k[k.length-1];if(qr&&De.parens===qr.parens+1){lr(k.pop());continue}qt({type:"paren",value:je,output:De.parens?")":"\\)"}),Zr("parens");continue}if(je==="["){if(r.nobracket===!0||!Tr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));je=`\\${je}`}else xt("brackets");qt({type:"bracket",value:je});continue}if(je==="]"){if(r.nobracket===!0||Me&&Me.type==="bracket"&&Me.value.length===1){qt({type:"text",value:je,output:`\\${je}`});continue}if(De.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","["));qt({type:"text",value:je,output:`\\${je}`});continue}Zr("brackets");let qr=Me.value.slice(1);if(Me.posix!==!0&&qr[0]==="^"&&!qr.includes("/")&&(je=`/${je}`),Me.value+=je,er({value:je}),r.literalBrackets===!1||$j.hasRegexChars(qr))continue;let _n=$j.escapeRegex(Me.value);if(De.output=De.output.slice(0,-Me.value.length),r.literalBrackets===!0){De.output+=_n,Me.value=_n;continue}Me.value=`(${A}${_n}|${Me.value})`,De.output+=Me.value;continue}if(je==="{"&&r.nobrace!==!0){xt("braces");let qr={type:"brace",value:je,output:"(",outputIndex:De.output.length,tokensIndex:De.tokens.length};et.push(qr),qt(qr);continue}if(je==="}"){let qr=et[et.length-1];if(r.nobrace===!0||!qr){qt({type:"text",value:je,output:je});continue}let _n=")";if(qr.dots===!0){let ke=l.slice(),jt=[];for(let Fn=ke.length-1;Fn>=0&&(l.pop(),ke[Fn].type!=="brace");Fn--)ke[Fn].type!=="dots"&&jt.unshift(ke[Fn].value);_n=col(jt,r),De.backtrack=!0}if(qr.comma!==!0&&qr.dots!==!0){let ke=De.output.slice(0,qr.outputIndex),jt=De.tokens.slice(qr.tokensIndex);qr.value=qr.output="\\{",je=_n="\\}",De.output=ke;for(let Fn of jt)De.output+=Fn.output||Fn.value}qt({type:"brace",value:je,output:_n}),Zr("braces"),et.pop();continue}if(je==="|"){k.length>0&&k[k.length-1].conditions++,qt({type:"text",value:je});continue}if(je===","){let qr=je,_n=et[et.length-1];_n&&ct[ct.length-1]==="braces"&&(_n.comma=!0,qr="|"),qt({type:"comma",value:je,output:qr});continue}if(je==="/"){if(Me.type==="dot"&&De.index===De.start+1){De.start=De.index+1,De.consumed="",De.output="",l.pop(),Me=o;continue}qt({type:"slash",value:je,output:E});continue}if(je==="."){if(De.braces>0&&Me.type==="dot"){Me.value==="."&&(Me.output=C);let qr=et[et.length-1];Me.type="dots",Me.output+=je,Me.value+=je,qr.dots=!0;continue}if(De.braces+De.parens===0&&Me.type!=="bos"&&Me.type!=="slash"){qt({type:"text",value:je,output:C});continue}qt({type:"dot",value:je,output:C});continue}if(je==="?"){if(!(Me&&Me.value==="(")&&r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("qmark",je);continue}if(Me&&Me.type==="paren"){let _n=At(),ke=je;(Me.value==="("&&!/[!=<:]/.test(_n)||_n==="<"&&!/<([!=]|\w+>)/.test(Tr()))&&(ke=`\\${je}`),qt({type:"text",value:je,output:ke});continue}if(r.dot!==!0&&(Me.type==="slash"||Me.type==="bos")){qt({type:"qmark",value:je,output:ne});continue}qt({type:"qmark",value:je,output:ae});continue}if(je==="!"){if(r.noextglob!==!0&&At()==="("&&(At(2)!=="?"||!/[!=<:]/.test(At(3)))){Xt("negate",je);continue}if(r.nonegate!==!0&&De.index===0){vt();continue}}if(je==="+"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("plus",je);continue}if(Me&&Me.value==="("||r.regex===!1){qt({type:"plus",value:je,output:b});continue}if(Me&&(Me.type==="bracket"||Me.type==="paren"||Me.type==="brace")||De.parens>0){qt({type:"plus",value:je});continue}qt({type:"plus",value:b});continue}if(je==="@"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){qt({type:"at",extglob:!0,value:je,output:""});continue}qt({type:"text",value:je});continue}if(je!=="*"){(je==="$"||je==="^")&&(je=`\\${je}`);let qr=ool.exec(Tr());qr&&(je+=qr[0],De.index+=qr[0].length),qt({type:"text",value:je});continue}if(Me&&(Me.type==="globstar"||Me.star===!0)){Me.type="star",Me.star=!0,Me.value+=je,Me.output=Se,De.backtrack=!0,De.globstar=!0,Nr(je);continue}let cr=Tr();if(r.noextglob!==!0&&/^\([^?]/.test(cr)){Xt("star",je);continue}if(Me.type==="star"){if(r.noglobstar===!0){Nr(je);continue}let qr=Me.prev,_n=qr.prev,ke=qr.type==="slash"||qr.type==="bos",jt=_n&&(_n.type==="star"||_n.type==="globstar");if(r.bash===!0&&(!ke||cr[0]&&cr[0]!=="/")){qt({type:"star",value:je,output:""});continue}let Fn=De.braces>0&&(qr.type==="comma"||qr.type==="brace"),Nn=k.length&&(qr.type==="pipe"||qr.type==="paren");if(!ke&&qr.type!=="paren"&&!Fn&&!Nn){qt({type:"star",value:je,output:""});continue}for(;cr.slice(0,3)==="/**";){let Hi=e[De.index+4];if(Hi&&Hi!=="/")break;cr=cr.slice(3),Nr("/**",3)}if(qr.type==="bos"&&St()){Me.type="globstar",Me.value+=je,Me.output=ue(r),De.output=Me.output,De.globstar=!0,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&!jt&&St()){De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=ue(r)+(r.strictSlashes?")":"|$)"),Me.value+=je,De.globstar=!0,De.output+=qr.output+Me.output,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&cr[0]==="/"){let Hi=cr[1]!==void 0?"|$":"";De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=`${ue(r)}${E}|${E}${Hi})`,Me.value+=je,De.output+=qr.output+Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}if(qr.type==="bos"&&cr[0]==="/"){Me.type="globstar",Me.value+=je,Me.output=`(?:^|${E}|${ue(r)}${E})`,De.output=Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}De.output=De.output.slice(0,-Me.output.length),Me.type="globstar",Me.output=ue(r),Me.value+=je,De.output+=Me.output,De.globstar=!0,Nr(je);continue}let Ar={type:"star",value:je,output:Se};if(r.bash===!0){Ar.output=".*?",(Me.type==="bos"||Me.type==="slash")&&(Ar.output=de+Ar.output),qt(Ar);continue}if(Me&&(Me.type==="bracket"||Me.type==="paren")&&r.regex===!0){Ar.output=je,qt(Ar);continue}(De.index===De.start||Me.type==="slash"||Me.type==="dot")&&(Me.type==="dot"?(De.output+=Q,Me.output+=Q):r.dot===!0?(De.output+=X,Me.output+=X):(De.output+=de,Me.output+=de),At()!=="*"&&(De.output+=N,Me.output+=N)),qt(Ar)}for(;De.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));De.output=$j.escapeLast(De.output,"["),Zr("brackets")}for(;De.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing",")"));De.output=$j.escapeLast(De.output,"("),Zr("parens")}for(;De.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","}"));De.output=$j.escapeLast(De.output,"{"),Zr("braces")}if(r.strictSlashes!==!0&&(Me.type==="star"||Me.type==="bracket")&&qt({type:"maybe_slash",value:"",output:`${E}?`}),De.backtrack===!0){De.output="";for(let cr of De.tokens)De.output+=cr.output!=null?cr.output:cr.value,cr.suffix&&(De.output+=cr.suffix)}return De};TMr.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=wts[e]||e;let{DOT_LITERAL:o,SLASH_LITERAL:l,ONE_CHAR:A,DOTS_SLASH:f,NO_DOT:I,NO_DOTS:C,NO_DOTS_SLASH:b,STAR:E,START_ANCHOR:N}=zNt.globChars(r.windows),B=r.dot?C:I,F=r.dot?b:I,Q=r.capture?"":"?:",X={negated:!1,prefix:""},ae=r.bash===!0?".*?":E;r.capture&&(ae=`(${ae})`);let ne=de=>de.noglobstar===!0?ae:`(${Q}(?:(?!${N}${de.dot?f:o}).)*?)`,ce=de=>{switch(de){case"*":return`${B}${A}${ae}`;case".*":return`${o}${A}${ae}`;case"*.*":return`${B}${ae}${o}${A}${ae}`;case"*/*":return`${B}${ae}${l}${A}${F}${ae}`;case"**":return B+ne(r);case"**/*":return`(?:${B}${ne(r)}${l})?${F}${A}${ae}`;case"**/*.*":return`(?:${B}${ne(r)}${l})?${F}${ae}${o}${A}${ae}`;case"**/.*":return`(?:${B}${ne(r)}${l})?${o}${A}${ae}`;default:{let be=/^(.*?)\.(\w+)$/.exec(de);if(!be)return;let Se=ce(be[1]);return Se?Se+o+be[2]:void 0}}},fe=$j.removePrefix(e,X),ue=ce(fe);return ue&&r.strictSlashes!==!0&&(ue+=`${l}?`),ue};Tts.exports=TMr});var kts=H((D7u,Dts)=>{"use strict";var lol=Bts(),RMr=Rts(),Nts=sje(),uol=ije(),gol=e=>e&&typeof e=="object"&&!Array.isArray(e),cw=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>cw(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=gol(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=a.windows,l=n?cw.compileRe(e,t):cw.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=cw(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=cw.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};cw.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?Nts.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=cw.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};cw.matchBase=(e,t,r)=>(t instanceof RegExp?t:cw.makeRe(t,r)).test(Nts.basename(e));cw.isMatch=(e,t,r)=>cw(t,r)(e);cw.parse=(e,t)=>Array.isArray(e)?e.map(r=>cw.parse(r,t)):RMr(e,{...t,fastpaths:!1});cw.scan=(e,t)=>lol(e,t);cw.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=cw.toRegex(A,t);return n===!0&&(f.state=e),f};cw.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=RMr.fastpaths(e,t)),a.output||(a=RMr(e,t)),cw.compileRe(a,t,r,n)};cw.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};cw.constants=uol;Dts.exports=cw});var Zts=H((k7u,Fts)=>{"use strict";var xts=kts(),Aol=sje();function Gts(e,t,r=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:Aol.isWindows()}),xts(e,t,r)}Object.assign(Gts,xts);Fts.exports=Gts});var Lts=H($Nt=>{"use strict";Object.defineProperty($Nt,"__esModule",{value:!0});$Nt.PatternMatchingHost=void 0;var dol=Zts(),pol=nje(),NMr=class extends pol.ResolverHost{_patterns=new Map;addPattern(t,r){let n=Array.isArray(t)?t:[t];for(let a of n){let{output:o}=(0,dol.parse)(a);this._patterns.set(new RegExp(`^${o}$`),r)}}_resolve(t){let r=t;return this._patterns.forEach((n,a)=>{a.test(t)&&(r=n(r))}),r}};$Nt.PatternMatchingHost=NMr});var Vts=H(eDt=>{"use strict";Object.defineProperty(eDt,"__esModule",{value:!0});eDt.CordHost=void 0;var w_=qb(),mte=gte(),fol=YNt(),DMr=class e extends fol.SimpleMemoryHost{_back;_filesToCreate=new Set;_filesToRename=new Map;_filesToRenameRevert=new Map;_filesToDelete=new Set;_filesToOverwrite=new Set;constructor(t){super(),this._back=t}get backend(){return this._back}get capabilities(){return{synchronous:this._back.capabilities.synchronous}}clone(){let t=new e(this._back);return t._cache=new Map(this._cache),t._filesToCreate=new Set(this._filesToCreate),t._filesToRename=new Map(this._filesToRename),t._filesToRenameRevert=new Map(this._filesToRenameRevert),t._filesToDelete=new Set(this._filesToDelete),t._filesToOverwrite=new Set(this._filesToOverwrite),t}commit(t,r=!1){return(0,w_.from)(this.records()).pipe((0,w_.concatMap)(n=>{switch(n.kind){case"delete":return t.delete(n.path);case"rename":return t.rename(n.from,n.to);case"create":return t.exists(n.path).pipe((0,w_.switchMap)(a=>a&&!r?(0,w_.throwError)(new mte.FileAlreadyExistException(n.path)):t.write(n.path,n.content)));case"overwrite":return t.exists(n.path).pipe((0,w_.switchMap)(a=>!a&&!r?(0,w_.throwError)(new mte.FileDoesNotExistException(n.path)):t.write(n.path,n.content)))}}),(0,w_.reduce)(()=>{}))}records(){return[...[...this._filesToDelete.values()].map(t=>({kind:"delete",path:t})),...[...this._filesToRename.entries()].map(([t,r])=>({kind:"rename",from:t,to:r})),...[...this._filesToCreate.values()].map(t=>({kind:"create",path:t,content:this._read(t)})),...[...this._filesToOverwrite.values()].map(t=>({kind:"overwrite",path:t,content:this._read(t)}))]}create(t,r){if(super._exists(t))throw new mte.FileAlreadyExistException(t);return this._filesToDelete.has(t)?(this._filesToDelete.delete(t),this._filesToOverwrite.add(t)):this._filesToCreate.add(t),super.write(t,r)}overwrite(t,r){return this.isDirectory(t).pipe((0,w_.switchMap)(n=>n?(0,w_.throwError)(new mte.PathIsDirectoryException(t)):this.exists(t)),(0,w_.switchMap)(n=>n?(this._filesToCreate.has(t)||this._filesToOverwrite.add(t),super.write(t,r)):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}write(t,r){return this.exists(t).pipe((0,w_.switchMap)(n=>n?this.willRename(t)||this.willDelete(t)?this.create(t,r):this.overwrite(t,r):this.create(t,r)))}read(t){return this._exists(t)?super.read(t):this._back.read(t)}delete(t){if(this._exists(t)){if(this._filesToCreate.has(t))this._filesToCreate.delete(t);else if(this._filesToOverwrite.has(t))this._filesToOverwrite.delete(t),this._filesToDelete.add(t);else{let r=this._filesToRenameRevert.get(t);if(r)this._filesToRenameRevert.delete(t),this._filesToRename.delete(r),this._filesToDelete.add(r);else return(0,w_.throwError)(new mte.UnknownException(`This should never happen. Path: ${JSON.stringify(t)}.`))}return super.delete(t)}else return this._back.exists(t).pipe((0,w_.switchMap)(r=>r?(this._filesToDelete.add(t),(0,w_.of)()):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}rename(t,r){return(0,w_.concat)(this.exists(r),this.exists(t)).pipe((0,w_.toArray)(),(0,w_.switchMap)(([n,a])=>{if(!a)return(0,w_.throwError)(new mte.FileDoesNotExistException(t));if(t===r)return w_.EMPTY;if(n)return(0,w_.throwError)(new mte.FileAlreadyExistException(r));if(this._filesToCreate.has(t))return this._filesToCreate.delete(t),this._filesToCreate.add(r),super.rename(t,r);if(this._filesToOverwrite.has(t))return this._filesToOverwrite.delete(t),(0,w_.concat)(this.rename(t,r),new w_.Observable(l=>{this._filesToOverwrite.add(r),l.complete()}));if(this._filesToDelete.has(r))return this._filesToDelete.delete(r),this._filesToDelete.add(t),this._filesToOverwrite.add(r),this.read(t).pipe((0,w_.map)(l=>this._write(r,l)));let o=this._filesToRenameRevert.get(t);return o&&(this._filesToRename.delete(o),this._filesToRenameRevert.delete(t),t=o),this._filesToRename.set(t,r),this._filesToRenameRevert.set(r,t),this._exists(t)?super.rename(t,r):this._back.read(t).pipe((0,w_.switchMap)(l=>super.write(r,l)))}))}list(t){return(0,w_.concat)(super.list(t),this._back.list(t)).pipe((0,w_.reduce)((r,n)=>(n.forEach(a=>r.add(a)),r),new Set),(0,w_.map)(r=>[...r]))}exists(t){return this._exists(t)?(0,w_.of)(!0):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.exists(t)}isDirectory(t){return this._exists(t)?super.isDirectory(t):this._back.isDirectory(t)}isFile(t){return this._exists(t)?super.isFile(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.isFile(t)}stat(t){return this._exists(t)?super.stat(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(null):this._back.stat(t)}watch(t,r){return null}willCreate(t){return this._filesToCreate.has(t)}willOverwrite(t){return this._filesToOverwrite.has(t)}willDelete(t){return this._filesToDelete.has(t)}willRename(t){return this._filesToRename.has(t)}willRenameTo(t,r){return this._filesToRename.get(t)===r}};eDt.CordHost=DMr});var Pts=H(tDt=>{"use strict";Object.defineProperty(tDt,"__esModule",{value:!0});tDt.SafeReadonlyHost=void 0;var Wle=qb(),kMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}read(t){return this._delegate.read(t)}list(t){return this._delegate.list(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)([])))}exists(t){return this._delegate.exists(t)}isDirectory(t){return this._delegate.isDirectory(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}isFile(t){return this._delegate.isFile(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}stat(t){let r=this._delegate.stat(t);return r&&r.pipe((0,Wle.catchError)(()=>(0,Wle.of)(null)))}};tDt.SafeReadonlyHost=kMr});var Ots=H(rDt=>{"use strict";Object.defineProperty(rDt,"__esModule",{value:!0});rDt.ScopedHost=void 0;var Wts=fxe(),Iol=nje(),xMr=class extends Iol.ResolverHost{_root;constructor(t,r=Wts.NormalizedRoot){super(t),this._root=r}_resolve(t){return(0,Wts.join)(this._root,t)}};rDt.ScopedHost=xMr});var Hts=H(F2=>{"use strict";var Mts=F2&&F2.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hol=F2&&F2.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mol=F2&&F2.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var Yts=NO&&NO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_ol=NO&&NO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),yol=NO&&NO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(GMr,"__esModule",{value:!0});GMr.createWorkspaceHost=Sol;var iDt=qb(),_xe=nDt();function Sol(e){return{async readFile(r){let n=await(0,iDt.lastValueFrom)(e.read((0,_xe.normalize)(r)));return _xe.virtualFs.fileBufferToString(n)},async writeFile(r,n){return(0,iDt.lastValueFrom)(e.write((0,_xe.normalize)(r),_xe.virtualFs.stringToFileBuffer(n)))},async isDirectory(r){try{return await(0,iDt.lastValueFrom)(e.isDirectory((0,_xe.normalize)(r)))}catch{return!1}},async isFile(r){try{return await(0,iDt.lastValueFrom)(e.isFile((0,_xe.normalize)(r)))}catch{return!1}}}}});var oDt=H((Xts,sDt)=>{(function(e){if(typeof sDt=="object"&&typeof sDt.exports=="object"){var t=e(wt,Xts);t!==void 0&&(sDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createScanner=void 0;function r(A,f=!1){let I=A.length,C=0,b="",E=0,N=16,B=0,F=0,Q=0,X=0,ae=0;function ne(De,k){let et=0,ct=0;for(;et=48&&Me<=57)ct=ct*16+Me-48;else if(Me>=65&&Me<=70)ct=ct*16+Me-65+10;else if(Me>=97&&Me<=102)ct=ct*16+Me-97+10;else break;C++,et++}return et=I){De+=A.substring(k,C),ae=2;break}let et=A.charCodeAt(C);if(et===34){De+=A.substring(k,C),C++;break}if(et===92){if(De+=A.substring(k,C),C++,C>=I){ae=2;break}switch(A.charCodeAt(C++)){case 34:De+='"';break;case 92:De+="\\";break;case 47:De+="/";break;case 98:De+="\b";break;case 102:De+="\f";break;case 110:De+=` `;break;case 114:De+="\r";break;case 116:De+=" ";break;case 117:let Me=ne(4,!0);Me>=0?De+=String.fromCharCode(Me):ae=4;break;default:ae=5}k=C;continue}if(et>=0&&et<=31)if(a(et)){De+=A.substring(k,C),ae=2;break}else ae=6;C++}return De}function de(){if(b="",ae=0,E=C,F=B,X=Q,C>=I)return E=I,N=17;let De=A.charCodeAt(C);if(n(De)){do C++,b+=String.fromCharCode(De),De=A.charCodeAt(C);while(n(De));return N=15}if(a(De))return C++,b+=String.fromCharCode(De),De===13&&A.charCodeAt(C)===10&&(C++,b+=` `),B++,Q=C,N=14;switch(De){case 123:return C++,N=1;case 125:return C++,N=2;case 91:return C++,N=3;case 93:return C++,N=4;case 58:return C++,N=6;case 44:return C++,N=5;case 34:return C++,b=ue(),N=10;case 47:let k=C-1;if(A.charCodeAt(C+1)===47){for(C+=2;C=12&&De<=15);return De}return{setPosition:ce,getPosition:()=>C,scan:f?Se:de,getToken:()=>N,getTokenValue:()=>b,getTokenOffset:()=>E,getTokenLength:()=>C-E,getTokenStartLine:()=>F,getTokenStartCharacter:()=>E-X,getTokenError:()=>ae}}t.createScanner=r;function n(A){return A===32||A===9}function a(A){return A===10||A===13}function o(A){return A>=48&&A<=57}var l;(function(A){A[A.lineFeed=10]="lineFeed",A[A.carriageReturn=13]="carriageReturn",A[A.space=32]="space",A[A._0=48]="_0",A[A._1=49]="_1",A[A._2=50]="_2",A[A._3=51]="_3",A[A._4=52]="_4",A[A._5=53]="_5",A[A._6=54]="_6",A[A._7=55]="_7",A[A._8=56]="_8",A[A._9=57]="_9",A[A.a=97]="a",A[A.b=98]="b",A[A.c=99]="c",A[A.d=100]="d",A[A.e=101]="e",A[A.f=102]="f",A[A.g=103]="g",A[A.h=104]="h",A[A.i=105]="i",A[A.j=106]="j",A[A.k=107]="k",A[A.l=108]="l",A[A.m=109]="m",A[A.n=110]="n",A[A.o=111]="o",A[A.p=112]="p",A[A.q=113]="q",A[A.r=114]="r",A[A.s=115]="s",A[A.t=116]="t",A[A.u=117]="u",A[A.v=118]="v",A[A.w=119]="w",A[A.x=120]="x",A[A.y=121]="y",A[A.z=122]="z",A[A.A=65]="A",A[A.B=66]="B",A[A.C=67]="C",A[A.D=68]="D",A[A.E=69]="E",A[A.F=70]="F",A[A.G=71]="G",A[A.H=72]="H",A[A.I=73]="I",A[A.J=74]="J",A[A.K=75]="K",A[A.L=76]="L",A[A.M=77]="M",A[A.N=78]="N",A[A.O=79]="O",A[A.P=80]="P",A[A.Q=81]="Q",A[A.R=82]="R",A[A.S=83]="S",A[A.T=84]="T",A[A.U=85]="U",A[A.V=86]="V",A[A.W=87]="W",A[A.X=88]="X",A[A.Y=89]="Y",A[A.Z=90]="Z",A[A.asterisk=42]="asterisk",A[A.backslash=92]="backslash",A[A.closeBrace=125]="closeBrace",A[A.closeBracket=93]="closeBracket",A[A.colon=58]="colon",A[A.comma=44]="comma",A[A.dot=46]="dot",A[A.doubleQuote=34]="doubleQuote",A[A.minus=45]="minus",A[A.openBrace=123]="openBrace",A[A.openBracket=91]="openBracket",A[A.plus=43]="plus",A[A.slash=47]="slash",A[A.formFeed=12]="formFeed",A[A.tab=9]="tab"})(l||(l={}))})});var Uts=H((Jts,aDt)=>{(function(e){if(typeof aDt=="object"&&typeof aDt.exports=="object"){var t=e(wt,Jts);t!==void 0&&(aDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedEols=t.cachedBreakLinesWithSpaces=t.cachedSpaces=void 0,t.cachedSpaces=new Array(20).fill(0).map((n,a)=>" ".repeat(a));let r=200;t.cachedBreakLinesWithSpaces={" ":{"\n":new Array(r).fill(0).map((n,a)=>` `+" ".repeat(a)),"\r":new Array(r).fill(0).map((n,a)=>"\r"+" ".repeat(a)),"\r\n":new Array(r).fill(0).map((n,a)=>`\r @@ -1214,103 +1214,103 @@ ${t}`);return AWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${g `+" ".repeat(a)),"\r":new Array(r).fill(0).map((n,a)=>"\r"+" ".repeat(a)),"\r\n":new Array(r).fill(0).map((n,a)=>`\r `+" ".repeat(a))}},t.supportedEols=[` `,"\r",`\r -`]})});var FMr=H((Kts,cDt)=>{var Sol=oDt(),sL=Uts();(function(e){if(typeof cDt=="object"&&typeof cDt.exports=="object"){var t=e(wt,Kts);t!==void 0&&(cDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner","./string-intern"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEOL=t.format=void 0;function r(A,f,I){let C,b,E,N,B;if(f){for(N=f.offset,B=N+f.length,E=N;E>0&&!l(A,E-1);)E--;let et=B;for(;et1)return n(F,X)+n(ne,C+ae);let et=ne.length*(C+ae);return!Q||et>sL.cachedBreakLinesWithSpaces[ce][F].length?F+n(ne,C+ae):et<=0?F:sL.cachedBreakLinesWithSpaces[ce][F][et]}function be(){let et=fe.scan();for(X=0;et===15||et===14;)et===14&&I.keepLines?X+=1:et===14&&(X=1),et=fe.scan();return ue=et===16||fe.getTokenError()!==0,et}let Se=[];function De(et,ct,Me){!ue&&(!f||ctN)&&A.substring(ct,Me)!==et&&Se.push({offset:ct,length:Me-ct,content:et})}let k=be();if(I.keepLines&&X>0&&De(n(F,X),0,0),k!==17){let et=fe.getTokenOffset()+E,ct=ne.length*C<20&&I.insertSpaces?sL.cachedSpaces[ne.length*C]:n(ne,C);De(ct,E,et)}for(;k!==17;){let et=fe.getTokenOffset()+fe.getTokenLength()+E,ct=be(),Me="",je=!1;for(;X===0&&(ct===12||ct===13);){let At=fe.getTokenOffset()+E;De(sL.cachedSpaces[1],et,At),et=fe.getTokenOffset()+fe.getTokenLength()+E,je=ct===12,Me=je?de():"",ct=be()}if(ct===2)k!==1&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==1?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else if(ct===4)k!==3&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==3?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else{switch(k){case 3:case 1:ae++,I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 5:I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 12:Me=de();break;case 13:X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 6:I.keepLines&&X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 10:I.keepLines&&X>0?Me=de():ct===6&&!je&&(Me="");break;case 7:case 8:case 9:case 11:case 2:case 4:I.keepLines&&X>0?Me=de():(ct===12||ct===13)&&!je?Me=sL.cachedSpaces[1]:ct!==5&&ct!==17&&(ue=!0);break;case 16:ue=!0;break}X>0&&(ct===12||ct===13)&&(Me=de())}ct===17&&(I.keepLines&&X>0?Me=de():Me=I.insertFinalNewline?F:"");let St=fe.getTokenOffset()+E;De(Me,et,St),k=ct}return Se}t.format=r;function n(A,f){let I="";for(let C=0;C{var vol=oDt(),sL=Uts();(function(e){if(typeof cDt=="object"&&typeof cDt.exports=="object"){var t=e(wt,Kts);t!==void 0&&(cDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner","./string-intern"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEOL=t.format=void 0;function r(A,f,I){let C,b,E,N,B;if(f){for(N=f.offset,B=N+f.length,E=N;E>0&&!l(A,E-1);)E--;let et=B;for(;et1)return n(F,X)+n(ne,C+ae);let et=ne.length*(C+ae);return!Q||et>sL.cachedBreakLinesWithSpaces[ce][F].length?F+n(ne,C+ae):et<=0?F:sL.cachedBreakLinesWithSpaces[ce][F][et]}function be(){let et=fe.scan();for(X=0;et===15||et===14;)et===14&&I.keepLines?X+=1:et===14&&(X=1),et=fe.scan();return ue=et===16||fe.getTokenError()!==0,et}let Se=[];function De(et,ct,Me){!ue&&(!f||ctN)&&A.substring(ct,Me)!==et&&Se.push({offset:ct,length:Me-ct,content:et})}let k=be();if(I.keepLines&&X>0&&De(n(F,X),0,0),k!==17){let et=fe.getTokenOffset()+E,ct=ne.length*C<20&&I.insertSpaces?sL.cachedSpaces[ne.length*C]:n(ne,C);De(ct,E,et)}for(;k!==17;){let et=fe.getTokenOffset()+fe.getTokenLength()+E,ct=be(),Me="",je=!1;for(;X===0&&(ct===12||ct===13);){let At=fe.getTokenOffset()+E;De(sL.cachedSpaces[1],et,At),et=fe.getTokenOffset()+fe.getTokenLength()+E,je=ct===12,Me=je?de():"",ct=be()}if(ct===2)k!==1&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==1?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else if(ct===4)k!==3&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==3?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else{switch(k){case 3:case 1:ae++,I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 5:I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 12:Me=de();break;case 13:X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 6:I.keepLines&&X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 10:I.keepLines&&X>0?Me=de():ct===6&&!je&&(Me="");break;case 7:case 8:case 9:case 11:case 2:case 4:I.keepLines&&X>0?Me=de():(ct===12||ct===13)&&!je?Me=sL.cachedSpaces[1]:ct!==5&&ct!==17&&(ue=!0);break;case 16:ue=!0;break}X>0&&(ct===12||ct===13)&&(Me=de())}ct===17&&(I.keepLines&&X>0?Me=de():Me=I.insertFinalNewline?F:"");let St=fe.getTokenOffset()+E;De(Me,et,St),k=ct}return Se}t.format=r;function n(A,f){let I="";for(let C=0;C{var jts=oDt();(function(e){if(typeof lDt=="object"&&typeof lDt.exports=="object"){var t=e(wt,zts);t!==void 0&&(lDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getNodeType=t.stripComments=t.visit=t.findNodeAtOffset=t.contains=t.getNodeValue=t.getNodePath=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=void 0;var r;(function(B){B.DEFAULT={allowTrailingComma:!1}})(r||(r={}));function n(B,F){let Q=[],X=new Object,ae,ne={value:{},offset:0,length:0,type:"object",parent:void 0},ce=!1;function fe(ue,de,be,Se){ne.value=ue,ne.offset=de,ne.length=be,ne.type=Se,ne.colonOffset=void 0,ae=ne}try{b(B,{onObjectBegin:(ue,de)=>{if(F<=ue)throw X;ae=void 0,ce=F>ue,Q.push("")},onObjectProperty:(ue,de,be)=>{if(F{if(F<=ue)throw X;ae=void 0,Q.pop()},onArrayBegin:(ue,de)=>{if(F<=ue)throw X;ae=void 0,Q.push(0)},onArrayEnd:(ue,de)=>{if(F<=ue)throw X;ae=void 0,Q.pop()},onLiteralValue:(ue,de,be)=>{if(F{if(F<=de)throw X;if(ue===":"&&ae&&ae.type==="property")ae.colonOffset=de,ce=!1,ae=void 0;else if(ue===","){let Se=Q[Q.length-1];typeof Se=="number"?Q[Q.length-1]=Se+1:(ce=!0,Q[Q.length-1]=""),ae=void 0}}})}catch(ue){if(ue!==X)throw ue}return{path:Q,previousNode:ae,isAtPropertyKey:ce,matches:ue=>{let de=0;for(let be=0;de{let ue={};ce(ue),ne.push(ae),ae=ue,X=null},onObjectProperty:ue=>{X=ue},onObjectEnd:()=>{ae=ne.pop()},onArrayBegin:()=>{let ue=[];ce(ue),ne.push(ae),ae=ue,X=null},onArrayEnd:()=>{ae=ne.pop()},onLiteralValue:ce,onError:(ue,de,be)=>{F.push({error:ue,offset:de,length:be})}},Q),ae[0]}t.parse=a;function o(B,F=[],Q=r.DEFAULT){let X={type:"array",offset:-1,length:-1,children:[],parent:void 0};function ae(ue){X.type==="property"&&(X.length=ue-X.offset,X=X.parent)}function ne(ue){return X.children.push(ue),ue}b(B,{onObjectBegin:ue=>{X=ne({type:"object",offset:ue,length:-1,parent:X,children:[]})},onObjectProperty:(ue,de,be)=>{X=ne({type:"property",offset:de,length:-1,parent:X,children:[]}),X.children.push({type:"string",value:ue,offset:de,length:be,parent:X})},onObjectEnd:(ue,de)=>{ae(ue+de),X.length=ue+de-X.offset,X=X.parent,ae(ue+de)},onArrayBegin:(ue,de)=>{X=ne({type:"array",offset:ue,length:-1,parent:X,children:[]})},onArrayEnd:(ue,de)=>{X.length=ue+de-X.offset,X=X.parent,ae(ue+de)},onLiteralValue:(ue,de,be)=>{ne({type:N(ue),offset:de,length:be,parent:X,value:ue}),ae(de+be)},onSeparator:(ue,de,be)=>{X.type==="property"&&(ue===":"?X.colonOffset=de:ue===","&&ae(de))},onError:(ue,de,be)=>{F.push({error:ue,offset:de,length:be})}},Q);let fe=X.children[0];return fe&&delete fe.parent,fe}t.parseTree=o;function l(B,F){if(!B)return;let Q=B;for(let X of F)if(typeof X=="string"){if(Q.type!=="object"||!Array.isArray(Q.children))return;let ae=!1;for(let ne of Q.children)if(Array.isArray(ne.children)&&ne.children[0].value===X&&ne.children.length===2){Q=ne.children[1],ae=!0;break}if(!ae)return}else{let ae=X;if(Q.type!=="array"||ae<0||!Array.isArray(Q.children)||ae>=Q.children.length)return;Q=Q.children[ae]}return Q}t.findNodeAtLocation=l;function A(B){if(!B.parent||!B.parent.children)return[];let F=A(B.parent);if(B.parent.type==="property"){let Q=B.parent.children[0].value;F.push(Q)}else if(B.parent.type==="array"){let Q=B.parent.children.indexOf(B);Q!==-1&&F.push(Q)}return F}t.getNodePath=A;function f(B){switch(B.type){case"array":return B.children.map(f);case"object":let F=Object.create(null);for(let Q of B.children){let X=Q.children[1];X&&(F[Q.children[0].value]=f(X))}return F;case"null":case"string":case"number":case"boolean":return B.value;default:return}}t.getNodeValue=f;function I(B,F,Q=!1){return F>=B.offset&&Fne===0&&cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter()):()=>!0}function fe(cr){return cr?Ar=>ne===0&&cr(Ar,X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter()):()=>!0}function ue(cr){return cr?Ar=>ne===0&&cr(Ar,X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter(),()=>ae.slice()):()=>!0}function de(cr){return cr?()=>{ne>0?ne++:cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter(),()=>ae.slice())===!1&&(ne=1)}:()=>!0}function be(cr){return cr?()=>{ne>0&&ne--,ne===0&&cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter())}:()=>!0}let Se=de(F.onObjectBegin),De=ue(F.onObjectProperty),k=be(F.onObjectEnd),et=de(F.onArrayBegin),ct=be(F.onArrayEnd),Me=ue(F.onLiteralValue),je=fe(F.onSeparator),St=ce(F.onComment),At=fe(F.onError),Yt=Q&&Q.disallowComments,Tr=Q&&Q.allowTrailingComma;function Nr(){for(;;){let cr=X.scan();switch(X.getTokenError()){case 4:er(14);break;case 5:er(15);break;case 3:er(13);break;case 1:Yt||er(11);break;case 2:er(12);break;case 6:er(16);break}switch(cr){case 12:case 13:Yt?er(10):St();break;case 16:er(1);break;case 15:case 14:break;default:return cr}}}function er(cr,Ar=[],qr=[]){if(At(cr),Ar.length+qr.length>0){let _n=X.getToken();for(;_n!==17;){if(Ar.indexOf(_n)!==-1){Nr();break}else if(qr.indexOf(_n)!==-1)break;_n=Nr()}}}function vt(cr){let Ar=X.getTokenValue();return cr?Me(Ar):(De(Ar),ae.push(Ar)),Nr(),!0}function xt(){switch(X.getToken()){case 11:let cr=X.getTokenValue(),Ar=Number(cr);isNaN(Ar)&&(er(2),Ar=0),Me(Ar);break;case 7:Me(null);break;case 8:Me(!0);break;case 9:Me(!1);break;default:return!1}return Nr(),!0}function Zr(){return X.getToken()!==10?(er(3,[],[2,5]),!1):(vt(!1),X.getToken()===6?(je(":"),Nr(),lr()||er(4,[],[2,5])):er(5,[],[2,5]),ae.pop(),!0)}function qt(){Se(),Nr();let cr=!1;for(;X.getToken()!==2&&X.getToken()!==17;){if(X.getToken()===5){if(cr||er(4,[],[]),je(","),Nr(),X.getToken()===2&&Tr)break}else cr&&er(6,[],[]);Zr()||er(4,[],[2,5]),cr=!0}return k(),X.getToken()!==2?er(7,[2],[]):Nr(),!0}function Xt(){et(),Nr();let cr=!0,Ar=!1;for(;X.getToken()!==4&&X.getToken()!==17;){if(X.getToken()===5){if(Ar||er(4,[],[]),je(","),Nr(),X.getToken()===4&&Tr)break}else Ar&&er(6,[],[]);cr?(ae.push(0),cr=!1):ae[ae.length-1]++,lr()||er(4,[],[4,5]),Ar=!0}return ct(),cr||ae.pop(),X.getToken()!==4?er(8,[4],[]):Nr(),!0}function lr(){switch(X.getToken()){case 3:return Xt();case 1:return qt();case 10:return vt(!0);default:return xt()}}return Nr(),X.getToken()===17?Q.allowEmptyContent?!0:(er(4,[],[]),!1):lr()?(X.getToken()!==17&&er(9,[],[]),!0):(er(4,[],[]),!1)}t.visit=b;function E(B,F){let Q=(0,jts.createScanner)(B),X=[],ae,ne=0,ce;do switch(ce=Q.getPosition(),ae=Q.scan(),ae){case 12:case 13:case 17:ne!==ce&&X.push(B.substring(ne,ce)),F!==void 0&&X.push(Q.getTokenValue().replace(/[^\r\n]/g,F)),ne=Q.getPosition();break}while(ae!==17);return X.join("")}t.stripComments=E;function N(B){switch(typeof B){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(B){if(Array.isArray(B))return"array"}else return"null";return"object"}default:return"null"}}t.getNodeType=N})});var $ts=H((qts,uDt)=>{var LMr=FMr(),VMr=ZMr();(function(e){if(typeof uDt=="object"&&typeof uDt.exports=="object"){var t=e(wt,qts);t!==void 0&&(uDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./format","./parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isWS=t.applyEdit=t.setProperty=t.removeProperty=void 0;function r(A,f,I){return n(A,f,void 0,I)}t.removeProperty=r;function n(A,f,I,C){let b=f.slice(),E=[],N=(0,VMr.parseTree)(A,E),B,F;for(;b.length>0&&(F=b.pop(),B=(0,VMr.findNodeAtLocation)(N,b),B===void 0&&I!==void 0);)typeof F=="string"?I={[F]:I}:I=[I];if(B)if(B.type==="object"&&typeof F=="string"&&Array.isArray(B.children)){let Q=(0,VMr.findNodeAtLocation)(B,[F]);if(Q!==void 0)if(I===void 0){if(!Q.parent)throw new Error("Malformed AST");let X=B.children.indexOf(Q.parent),ae,ne=Q.parent.offset+Q.parent.length;if(X>0){let ce=B.children[X-1];ae=ce.offset+ce.length}else ae=B.offset+1,B.children.length>1&&(ne=B.children[1].offset);return a(A,{offset:ae,length:ne-ae,content:""},C)}else return a(A,{offset:Q.offset,length:Q.length,content:JSON.stringify(I)},C);else{if(I===void 0)return[];let X=`${JSON.stringify(F)}: ${JSON.stringify(I)}`,ae=C.getInsertionIndex?C.getInsertionIndex(B.children.map(ce=>ce.children[0].value)):B.children.length,ne;if(ae>0){let ce=B.children[ae-1];ne={offset:ce.offset+ce.length,length:0,content:","+X}}else B.children.length===0?ne={offset:B.offset+1,length:0,content:X}:ne={offset:B.offset+1,length:0,content:X+","};return a(A,ne,C)}}else if(B.type==="array"&&typeof F=="number"&&Array.isArray(B.children)){let Q=F;if(Q===-1){let X=`${JSON.stringify(I)}`,ae;if(B.children.length===0)ae={offset:B.offset+1,length:0,content:X};else{let ne=B.children[B.children.length-1];ae={offset:ne.offset+ne.length,length:0,content:","+X}}return a(A,ae,C)}else if(I===void 0&&B.children.length>=0){let X=F,ae=B.children[X],ne;if(B.children.length===1)ne={offset:B.offset+1,length:B.length-2,content:""};else if(B.children.length-1===X){let ce=B.children[X-1],fe=ce.offset+ce.length,ue=B.offset+B.length;ne={offset:fe,length:ue-2-fe,content:""}}else ne={offset:ae.offset,length:B.children[X+1].offset-ae.offset,content:""};return a(A,ne,C)}else if(I!==void 0){let X,ae=`${JSON.stringify(I)}`;if(!C.isArrayInsertion&&B.children.length>F){let ne=B.children[F];X={offset:ne.offset,length:ne.length,content:ae}}else if(B.children.length===0||F===0)X={offset:B.offset+1,length:0,content:B.children.length===0?ae:ae+","};else{let ne=F>B.children.length?B.children.length:F,ce=B.children[ne-1];X={offset:ce.offset+ce.length,length:0,content:","+ae}}return a(A,X,C)}else throw new Error(`Can not ${I===void 0?"remove":C.isArrayInsertion?"insert":"modify"} Array index ${Q} as length is not sufficient`)}else throw new Error(`Can not add ${typeof F!="number"?"index":"property"} to parent of type ${B.type}`);else{if(I===void 0)throw new Error("Can not delete in empty document");return a(A,{offset:N?N.offset:0,length:N?N.length:0,content:JSON.stringify(I)},C)}}t.setProperty=n;function a(A,f,I){if(!I.formattingOptions)return[f];let C=o(A,f),b=f.offset,E=f.offset+f.content.length;if(f.length===0||f.content.length===0){for(;b>0&&!(0,LMr.isEOL)(C,b-1);)b--;for(;E=0;F--){let Q=N[F];C=o(C,Q),b=Math.min(b,Q.offset),E=Math.max(E,Q.offset+Q.length),E+=Q.content.length-Q.length}let B=A.length-(C.length-E)-b;return[{offset:b,length:B,content:C.substring(b,E)}]}function o(A,f){return A.substring(0,f.offset)+f.content+A.substring(f.offset+f.length)}t.applyEdit=o;function l(A,f){return`\r - `.indexOf(A.charAt(f))!==-1}t.isWS=l})});var yxe=H((trs,gDt)=>{var vol=FMr(),ers=$ts(),Bol=oDt(),Cte=ZMr();(function(e){if(typeof gDt=="object"&&typeof gDt.exports=="object"){var t=e(wt,trs);t!==void 0&&(gDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./impl/format","./impl/edit","./impl/scanner","./impl/parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyEdits=t.modify=t.format=t.printParseErrorCode=t.ParseErrorCode=t.stripComments=t.visit=t.getNodeValue=t.getNodePath=t.findNodeAtOffset=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=t.SyntaxKind=t.ScanError=t.createScanner=void 0,t.createScanner=Bol.createScanner;var r;(function(I){I[I.None=0]="None",I[I.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=2]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",I[I.InvalidUnicode=4]="InvalidUnicode",I[I.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",I[I.InvalidCharacter=6]="InvalidCharacter"})(r||(t.ScanError=r={}));var n;(function(I){I[I.OpenBraceToken=1]="OpenBraceToken",I[I.CloseBraceToken=2]="CloseBraceToken",I[I.OpenBracketToken=3]="OpenBracketToken",I[I.CloseBracketToken=4]="CloseBracketToken",I[I.CommaToken=5]="CommaToken",I[I.ColonToken=6]="ColonToken",I[I.NullKeyword=7]="NullKeyword",I[I.TrueKeyword=8]="TrueKeyword",I[I.FalseKeyword=9]="FalseKeyword",I[I.StringLiteral=10]="StringLiteral",I[I.NumericLiteral=11]="NumericLiteral",I[I.LineCommentTrivia=12]="LineCommentTrivia",I[I.BlockCommentTrivia=13]="BlockCommentTrivia",I[I.LineBreakTrivia=14]="LineBreakTrivia",I[I.Trivia=15]="Trivia",I[I.Unknown=16]="Unknown",I[I.EOF=17]="EOF"})(n||(t.SyntaxKind=n={})),t.getLocation=Cte.getLocation,t.parse=Cte.parse,t.parseTree=Cte.parseTree,t.findNodeAtLocation=Cte.findNodeAtLocation,t.findNodeAtOffset=Cte.findNodeAtOffset,t.getNodePath=Cte.getNodePath,t.getNodeValue=Cte.getNodeValue,t.visit=Cte.visit,t.stripComments=Cte.stripComments;var a;(function(I){I[I.InvalidSymbol=1]="InvalidSymbol",I[I.InvalidNumberFormat=2]="InvalidNumberFormat",I[I.PropertyNameExpected=3]="PropertyNameExpected",I[I.ValueExpected=4]="ValueExpected",I[I.ColonExpected=5]="ColonExpected",I[I.CommaExpected=6]="CommaExpected",I[I.CloseBraceExpected=7]="CloseBraceExpected",I[I.CloseBracketExpected=8]="CloseBracketExpected",I[I.EndOfFileExpected=9]="EndOfFileExpected",I[I.InvalidCommentToken=10]="InvalidCommentToken",I[I.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=12]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",I[I.InvalidUnicode=14]="InvalidUnicode",I[I.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",I[I.InvalidCharacter=16]="InvalidCharacter"})(a||(t.ParseErrorCode=a={}));function o(I){switch(I){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return""}t.printParseErrorCode=o;function l(I,C,b){return vol.format(I,C,b)}t.format=l;function A(I,C,b,E){return ers.setProperty(I,C,b,E)}t.modify=A;function f(I,C){let b=C.slice(0).sort((N,B)=>{let F=N.offset-B.offset;return F===0?N.length-B.length:F}),E=I.length;for(let N=b.length-1;N>=0;N--){let B=b[N];if(B.offset+B.length<=E)I=ers.applyEdit(I,B);else throw new Error("Overlapping edit");E=B.offset}return I}t.applyEdits=f})});var WMr=H(bxe=>{"use strict";Object.defineProperty(bxe,"__esModule",{value:!0});bxe.JsonWorkspaceMetadata=bxe.JsonWorkspaceSymbol=void 0;var rrs=yxe();bxe.JsonWorkspaceSymbol=Symbol.for("@angular/core:workspace-json");function nrs(e){return e.replace("~","~0").replace("/","~1")}var PMr=class{filePath;ast;raw;changes=new Map;hasLegacyTargetsName=!0;constructor(t,r,n){this.filePath=t,this.ast=r,this.raw=n}get hasChanges(){return this.changes.size>0}get changeCount(){return this.changes.size}getNodeValueFromAst(t){let r=(0,rrs.findNodeAtLocation)(this.ast,t);return r&&(0,rrs.getNodeValue)(r)}findChangesForPath(t){return this.changes.get(t)}addChange(t,r,n){let a="";for(let l=0;lnrs(l)).join("/");for(let l of this.changes.keys())l.startsWith(o+"/")&&this.changes.delete(l);this.changes.set(o,{jsonPath:t,type:n,value:r})}};bxe.JsonWorkspaceMetadata=PMr});var ors=H(OMr=>{"use strict";Object.defineProperty(OMr,"__esModule",{value:!0});OMr.createVirtualAstObject=Tol;var wol=RNt();function Tol(e,t={}){let r=(n,a,o,l)=>{t.listener&&(o===l||JSON.stringify(o)===JSON.stringify(l)||(Array.isArray(a)?t.listener(n.slice(0,-1),a):t.listener(n,l)))};return srs(Array.isArray(e)?[...e]:{...e},[],r,new Set(t.exclude),t.include?.length?new Set(t.include):void 0)}function srs(e,t,r,n=new Set,a){return new Proxy(e,{getOwnPropertyDescriptor(o,l){if(!(n.has(l)||a&&!a.has(l)))return Reflect.getOwnPropertyDescriptor(o,l)},has(o,l){return typeof l=="symbol"||n.has(l)?!1:Reflect.has(o,l)},get(o,l){if(n.has(l)||a&&!a.has(l))return;let A=Reflect.get(o,l);return typeof l=="symbol"?A:(0,wol.isJsonObject)(A)&&!(A instanceof Map)||Array.isArray(A)?srs(A,[...t,l],r):A},set(o,l,A){if(n.has(l)||a&&!a.has(l))return!1;if(A===void 0)return this.deleteProperty?.(o,l)??!1;if(typeof l=="symbol")return Reflect.set(o,l,A);let f=irs(o,l);return Reflect.set(o,l,A)?(r([...t,l],o,f,A),!0):!1},deleteProperty(o,l){if(n.has(l))return!1;if(typeof l=="symbol")return Reflect.deleteProperty(o,l);let A=irs(o,l);return Reflect.deleteProperty(o,l)&&r([...t,l],o,A,void 0),!0},defineProperty(o,l,A){return typeof l=="symbol"?Reflect.defineProperty(o,l,A):!1},ownKeys(o){return Reflect.ownKeys(o).filter(l=>!n.has(l)&&(!a||a.has(l)))}})}function irs(e,t){if(Array.isArray(e)&&isFinite(+t))return e[+t];if(e&&t in e)return e[t]}});var lrs=H(MMr=>{"use strict";Object.defineProperty(MMr,"__esModule",{value:!0});MMr.readJsonWorkspace=Dol;var _te=yxe(),dDt=$Ce(),ars=oMr(),crs=WMr(),ADt=ors(),Rol=Object.freeze(["cli","newProjectRoot","schematics"]),Nol=Object.freeze(["cli","schematics","projectType","i18n"]);async function Dol(e,t,r={}){let n=await t.readFile(e);if(n===void 0)throw new Error("Unable to read workspace file.");let a=(0,_te.parseTree)(n,void 0,{allowTrailingComma:!0,disallowComments:!1});if(a?.type!=="object"||!a.children)throw new Error("Invalid workspace file - expected JSON object.");let o=(0,_te.findNodeAtLocation)(a,["version"]);if(!o)throw new Error("Unknown format - version specifier not found.");let l=o.value;if(l!==1)throw new Error(`Invalid format version detected - Expected:[ 1 ] Found: [ ${l} ]`);let A={host:t,metadata:new crs.JsonWorkspaceMetadata(e,a,n),trackChanges:!0,unprefixedWorkspaceExtensions:new Set([...Rol,...r.allowedWorkspaceExtensions??[]]),unprefixedProjectExtensions:new Set([...Nol,...r.allowedProjectExtensions??[]]),error(I,C){throw new Error(I)},warn(I,C){console.warn(I)}};return kol(a,A)}function kol(e,t){let r=t.metadata,n,a;t.trackChanges||(a=Object.create(null));let o=(0,_te.getNodeValue)(e);for(let[f,I]of Object.entries(o))if(!(f==="$schema"||f==="version"))if(f==="projects"){let C=(0,_te.findNodeAtLocation)(e,["projects"]);if(!(0,dDt.isJsonObject)(I)||!C){t.error('Invalid "projects" field found; expected an object.',I);continue}n=xol(C,t)}else!t.unprefixedWorkspaceExtensions.has(f)&&!/^[a-z]{1,3}-.*/.test(f)&&t.warn(`Workspace extension with invalid name (${f}) found.`,f),a&&(a[f]=I);let l;t.trackChanges&&(l=(f,I)=>{r.addChange(["projects",f],I,"project")});let A=new ars.ProjectDefinitionCollection(n,l);return{[crs.JsonWorkspaceSymbol]:r,projects:A,extensions:a??(0,ADt.createVirtualAstObject)(o,{exclude:["$schema","version","projects"],listener(f,I){r.addChange(f,I)}})}}function xol(e,t){let r=Object.create(null);for(let[n,a]of Object.entries((0,_te.getNodeValue)(e))){let o=(0,_te.findNodeAtLocation)(e,[n]);if(!(0,dDt.isJsonObject)(a)||!o){t.warn("Skipping invalid project value; expected an object.",a);continue}r[n]=Gol(n,o,t)}return r}function Gol(e,t,r){let n=r.metadata,a,o=!1,l,A;r.trackChanges||(l=Object.create(null),A=Object.create(null));let f=(0,_te.getNodeValue)(t);if(!("root"in f))throw new Error(`Project "${e}" is missing a required property "root".`);for(let[N,B]of Object.entries(f))switch(N){case"targets":case"architect":{let F=(0,_te.findNodeAtLocation)(t,[N]);if(!(0,dDt.isJsonObject)(B)||!F){r.error(`Invalid "${N}" field found; expected an object.`,B);break}o=!0,a=Fol(e,F,r),n.hasLegacyTargetsName=N==="architect";break}case"prefix":case"root":case"sourceRoot":typeof B!="string"&&r.warn(`Project property "${N}" should be a string.`,B),A&&(A[N]=B);break;default:!r.unprefixedProjectExtensions.has(N)&&!/^[a-z]{1,3}-.*/.test(N)&&r.warn(`Project '${e}' contains extension with invalid name (${N}).`,N),l&&(l[N]=B);break}let I;r.trackChanges&&(I=(N,B,F)=>{o?n.addChange(["projects",e,"targets",N],B,"target"):n.addChange(["projects",e,"targets"],F,"targetcollection")});let C={targets:new ars.TargetDefinitionCollection(a,I),extensions:l??(0,ADt.createVirtualAstObject)(f,{exclude:["architect","prefix","root","sourceRoot","targets"],listener(N,B){n.addChange(["projects",e,...N],B)}})},b=new Set(Object.keys(C)),E=A??(0,ADt.createVirtualAstObject)(f,{include:["prefix","root","sourceRoot",...b],listener(N,B){b.has(N[0])||n.addChange(["projects",e,...N],B)}});return Object.assign(E,C)}function Fol(e,t,r){let n=r.metadata,a=Object.create(null);for(let[o,l]of Object.entries((0,_te.getNodeValue)(t))){if(!(0,dDt.isJsonObject)(l)){r.warn("Skipping invalid target value; expected an object.",l);continue}r.trackChanges?a[o]=(0,ADt.createVirtualAstObject)(l,{include:["builder","options","configurations","defaultConfiguration"],listener(A,f){n.addChange(["projects",e,"targets",o,...A],f)}}):a[o]=l}return a}});var drs=H(YMr=>{"use strict";Object.defineProperty(YMr,"__esModule",{value:!0});YMr.writeJsonWorkspace=Vol;var urs=yxe(),Zol=wt("node:os"),Lol=WMr();async function Vol(e,t,r,n={}){let a=e[Lol.JsonWorkspaceSymbol];if(a){if(!a.hasChanges)return;let o=Mol(a);return t.writeFile(r??a.filePath,o)}else{if(!r)throw new Error("path option is required");let o=Pol(e,n.schema),l=JSON.stringify(o,null,2);return t.writeFile(r,l)}}function Pol(e,t){return{$schema:t||"./node_modules/@angular/cli/lib/config/schema.json",version:1,...e.extensions,...aje(e.projects)?{}:{projects:grs(e.projects)}}}function grs(e){let t=Object.create(null);for(let[r,n]of e)t[r]=Ars(n);return t}function Ars(e){let t;if(e.targets.size>0){t=Object.create(null);for(let[n,a]of e.targets)t[n]=HMr(a)}return{...e.extensions,root:e.root,...e.sourceRoot===void 0?{}:{sourceRoot:e.sourceRoot},...e.prefix===void 0?{}:{prefix:e.prefix},...t===void 0?{}:{architect:t}}}function aje(e){return e===void 0||Object.keys(e).length===0}function HMr(e){return{builder:e.builder,...aje(e.options)?{}:{options:e.options},...aje(e.configurations)?{}:{configurations:e.configurations},...e.defaultConfiguration===void 0?{}:{defaultConfiguration:e.defaultConfiguration}}}function Wol(e){let t=Object.create(null);for(let[r,n]of e)t[r]=HMr(n);return t}function Ool(e,t){if(e!==void 0)switch(t){case"project":return Ars(e);case"projectcollection":{let r=grs(e);return aje(r)?void 0:r}case"target":return HMr(e);case"targetcollection":{let r=Wol(e);return aje(r)?void 0:r}default:return e}}function Mol(e){let{raw:t}=e,{changes:r,hasLegacyTargetsName:n}=e;for(let{jsonPath:a,value:o,type:l}of r.values()){n&&a[2]==="targets"&&(a[2]="architect");let A=(0,urs.modify)(t,a,Ool(o,l),{formattingOptions:{insertSpaces:!0,tabSize:2,eol:Hol(t)}});t=(0,urs.applyEdits)(t,A)}return t}function Hol(e){let t=`\r + `.indexOf(A.charAt(f))!==-1}t.isWS=l})});var yxe=H((trs,gDt)=>{var Bol=FMr(),ers=$ts(),wol=oDt(),Cte=ZMr();(function(e){if(typeof gDt=="object"&&typeof gDt.exports=="object"){var t=e(wt,trs);t!==void 0&&(gDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./impl/format","./impl/edit","./impl/scanner","./impl/parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyEdits=t.modify=t.format=t.printParseErrorCode=t.ParseErrorCode=t.stripComments=t.visit=t.getNodeValue=t.getNodePath=t.findNodeAtOffset=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=t.SyntaxKind=t.ScanError=t.createScanner=void 0,t.createScanner=wol.createScanner;var r;(function(I){I[I.None=0]="None",I[I.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=2]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",I[I.InvalidUnicode=4]="InvalidUnicode",I[I.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",I[I.InvalidCharacter=6]="InvalidCharacter"})(r||(t.ScanError=r={}));var n;(function(I){I[I.OpenBraceToken=1]="OpenBraceToken",I[I.CloseBraceToken=2]="CloseBraceToken",I[I.OpenBracketToken=3]="OpenBracketToken",I[I.CloseBracketToken=4]="CloseBracketToken",I[I.CommaToken=5]="CommaToken",I[I.ColonToken=6]="ColonToken",I[I.NullKeyword=7]="NullKeyword",I[I.TrueKeyword=8]="TrueKeyword",I[I.FalseKeyword=9]="FalseKeyword",I[I.StringLiteral=10]="StringLiteral",I[I.NumericLiteral=11]="NumericLiteral",I[I.LineCommentTrivia=12]="LineCommentTrivia",I[I.BlockCommentTrivia=13]="BlockCommentTrivia",I[I.LineBreakTrivia=14]="LineBreakTrivia",I[I.Trivia=15]="Trivia",I[I.Unknown=16]="Unknown",I[I.EOF=17]="EOF"})(n||(t.SyntaxKind=n={})),t.getLocation=Cte.getLocation,t.parse=Cte.parse,t.parseTree=Cte.parseTree,t.findNodeAtLocation=Cte.findNodeAtLocation,t.findNodeAtOffset=Cte.findNodeAtOffset,t.getNodePath=Cte.getNodePath,t.getNodeValue=Cte.getNodeValue,t.visit=Cte.visit,t.stripComments=Cte.stripComments;var a;(function(I){I[I.InvalidSymbol=1]="InvalidSymbol",I[I.InvalidNumberFormat=2]="InvalidNumberFormat",I[I.PropertyNameExpected=3]="PropertyNameExpected",I[I.ValueExpected=4]="ValueExpected",I[I.ColonExpected=5]="ColonExpected",I[I.CommaExpected=6]="CommaExpected",I[I.CloseBraceExpected=7]="CloseBraceExpected",I[I.CloseBracketExpected=8]="CloseBracketExpected",I[I.EndOfFileExpected=9]="EndOfFileExpected",I[I.InvalidCommentToken=10]="InvalidCommentToken",I[I.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=12]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",I[I.InvalidUnicode=14]="InvalidUnicode",I[I.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",I[I.InvalidCharacter=16]="InvalidCharacter"})(a||(t.ParseErrorCode=a={}));function o(I){switch(I){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return""}t.printParseErrorCode=o;function l(I,C,b){return Bol.format(I,C,b)}t.format=l;function A(I,C,b,E){return ers.setProperty(I,C,b,E)}t.modify=A;function f(I,C){let b=C.slice(0).sort((N,B)=>{let F=N.offset-B.offset;return F===0?N.length-B.length:F}),E=I.length;for(let N=b.length-1;N>=0;N--){let B=b[N];if(B.offset+B.length<=E)I=ers.applyEdit(I,B);else throw new Error("Overlapping edit");E=B.offset}return I}t.applyEdits=f})});var WMr=H(bxe=>{"use strict";Object.defineProperty(bxe,"__esModule",{value:!0});bxe.JsonWorkspaceMetadata=bxe.JsonWorkspaceSymbol=void 0;var rrs=yxe();bxe.JsonWorkspaceSymbol=Symbol.for("@angular/core:workspace-json");function nrs(e){return e.replace("~","~0").replace("/","~1")}var PMr=class{filePath;ast;raw;changes=new Map;hasLegacyTargetsName=!0;constructor(t,r,n){this.filePath=t,this.ast=r,this.raw=n}get hasChanges(){return this.changes.size>0}get changeCount(){return this.changes.size}getNodeValueFromAst(t){let r=(0,rrs.findNodeAtLocation)(this.ast,t);return r&&(0,rrs.getNodeValue)(r)}findChangesForPath(t){return this.changes.get(t)}addChange(t,r,n){let a="";for(let l=0;lnrs(l)).join("/");for(let l of this.changes.keys())l.startsWith(o+"/")&&this.changes.delete(l);this.changes.set(o,{jsonPath:t,type:n,value:r})}};bxe.JsonWorkspaceMetadata=PMr});var ors=H(OMr=>{"use strict";Object.defineProperty(OMr,"__esModule",{value:!0});OMr.createVirtualAstObject=Rol;var Tol=RNt();function Rol(e,t={}){let r=(n,a,o,l)=>{t.listener&&(o===l||JSON.stringify(o)===JSON.stringify(l)||(Array.isArray(a)?t.listener(n.slice(0,-1),a):t.listener(n,l)))};return srs(Array.isArray(e)?[...e]:{...e},[],r,new Set(t.exclude),t.include?.length?new Set(t.include):void 0)}function srs(e,t,r,n=new Set,a){return new Proxy(e,{getOwnPropertyDescriptor(o,l){if(!(n.has(l)||a&&!a.has(l)))return Reflect.getOwnPropertyDescriptor(o,l)},has(o,l){return typeof l=="symbol"||n.has(l)?!1:Reflect.has(o,l)},get(o,l){if(n.has(l)||a&&!a.has(l))return;let A=Reflect.get(o,l);return typeof l=="symbol"?A:(0,Tol.isJsonObject)(A)&&!(A instanceof Map)||Array.isArray(A)?srs(A,[...t,l],r):A},set(o,l,A){if(n.has(l)||a&&!a.has(l))return!1;if(A===void 0)return this.deleteProperty?.(o,l)??!1;if(typeof l=="symbol")return Reflect.set(o,l,A);let f=irs(o,l);return Reflect.set(o,l,A)?(r([...t,l],o,f,A),!0):!1},deleteProperty(o,l){if(n.has(l))return!1;if(typeof l=="symbol")return Reflect.deleteProperty(o,l);let A=irs(o,l);return Reflect.deleteProperty(o,l)&&r([...t,l],o,A,void 0),!0},defineProperty(o,l,A){return typeof l=="symbol"?Reflect.defineProperty(o,l,A):!1},ownKeys(o){return Reflect.ownKeys(o).filter(l=>!n.has(l)&&(!a||a.has(l)))}})}function irs(e,t){if(Array.isArray(e)&&isFinite(+t))return e[+t];if(e&&t in e)return e[t]}});var lrs=H(MMr=>{"use strict";Object.defineProperty(MMr,"__esModule",{value:!0});MMr.readJsonWorkspace=kol;var _te=yxe(),dDt=$Ce(),ars=oMr(),crs=WMr(),ADt=ors(),Nol=Object.freeze(["cli","newProjectRoot","schematics"]),Dol=Object.freeze(["cli","schematics","projectType","i18n"]);async function kol(e,t,r={}){let n=await t.readFile(e);if(n===void 0)throw new Error("Unable to read workspace file.");let a=(0,_te.parseTree)(n,void 0,{allowTrailingComma:!0,disallowComments:!1});if(a?.type!=="object"||!a.children)throw new Error("Invalid workspace file - expected JSON object.");let o=(0,_te.findNodeAtLocation)(a,["version"]);if(!o)throw new Error("Unknown format - version specifier not found.");let l=o.value;if(l!==1)throw new Error(`Invalid format version detected - Expected:[ 1 ] Found: [ ${l} ]`);let A={host:t,metadata:new crs.JsonWorkspaceMetadata(e,a,n),trackChanges:!0,unprefixedWorkspaceExtensions:new Set([...Nol,...r.allowedWorkspaceExtensions??[]]),unprefixedProjectExtensions:new Set([...Dol,...r.allowedProjectExtensions??[]]),error(I,C){throw new Error(I)},warn(I,C){console.warn(I)}};return xol(a,A)}function xol(e,t){let r=t.metadata,n,a;t.trackChanges||(a=Object.create(null));let o=(0,_te.getNodeValue)(e);for(let[f,I]of Object.entries(o))if(!(f==="$schema"||f==="version"))if(f==="projects"){let C=(0,_te.findNodeAtLocation)(e,["projects"]);if(!(0,dDt.isJsonObject)(I)||!C){t.error('Invalid "projects" field found; expected an object.',I);continue}n=Gol(C,t)}else!t.unprefixedWorkspaceExtensions.has(f)&&!/^[a-z]{1,3}-.*/.test(f)&&t.warn(`Workspace extension with invalid name (${f}) found.`,f),a&&(a[f]=I);let l;t.trackChanges&&(l=(f,I)=>{r.addChange(["projects",f],I,"project")});let A=new ars.ProjectDefinitionCollection(n,l);return{[crs.JsonWorkspaceSymbol]:r,projects:A,extensions:a??(0,ADt.createVirtualAstObject)(o,{exclude:["$schema","version","projects"],listener(f,I){r.addChange(f,I)}})}}function Gol(e,t){let r=Object.create(null);for(let[n,a]of Object.entries((0,_te.getNodeValue)(e))){let o=(0,_te.findNodeAtLocation)(e,[n]);if(!(0,dDt.isJsonObject)(a)||!o){t.warn("Skipping invalid project value; expected an object.",a);continue}r[n]=Fol(n,o,t)}return r}function Fol(e,t,r){let n=r.metadata,a,o=!1,l,A;r.trackChanges||(l=Object.create(null),A=Object.create(null));let f=(0,_te.getNodeValue)(t);if(!("root"in f))throw new Error(`Project "${e}" is missing a required property "root".`);for(let[N,B]of Object.entries(f))switch(N){case"targets":case"architect":{let F=(0,_te.findNodeAtLocation)(t,[N]);if(!(0,dDt.isJsonObject)(B)||!F){r.error(`Invalid "${N}" field found; expected an object.`,B);break}o=!0,a=Zol(e,F,r),n.hasLegacyTargetsName=N==="architect";break}case"prefix":case"root":case"sourceRoot":typeof B!="string"&&r.warn(`Project property "${N}" should be a string.`,B),A&&(A[N]=B);break;default:!r.unprefixedProjectExtensions.has(N)&&!/^[a-z]{1,3}-.*/.test(N)&&r.warn(`Project '${e}' contains extension with invalid name (${N}).`,N),l&&(l[N]=B);break}let I;r.trackChanges&&(I=(N,B,F)=>{o?n.addChange(["projects",e,"targets",N],B,"target"):n.addChange(["projects",e,"targets"],F,"targetcollection")});let C={targets:new ars.TargetDefinitionCollection(a,I),extensions:l??(0,ADt.createVirtualAstObject)(f,{exclude:["architect","prefix","root","sourceRoot","targets"],listener(N,B){n.addChange(["projects",e,...N],B)}})},b=new Set(Object.keys(C)),E=A??(0,ADt.createVirtualAstObject)(f,{include:["prefix","root","sourceRoot",...b],listener(N,B){b.has(N[0])||n.addChange(["projects",e,...N],B)}});return Object.assign(E,C)}function Zol(e,t,r){let n=r.metadata,a=Object.create(null);for(let[o,l]of Object.entries((0,_te.getNodeValue)(t))){if(!(0,dDt.isJsonObject)(l)){r.warn("Skipping invalid target value; expected an object.",l);continue}r.trackChanges?a[o]=(0,ADt.createVirtualAstObject)(l,{include:["builder","options","configurations","defaultConfiguration"],listener(A,f){n.addChange(["projects",e,"targets",o,...A],f)}}):a[o]=l}return a}});var drs=H(YMr=>{"use strict";Object.defineProperty(YMr,"__esModule",{value:!0});YMr.writeJsonWorkspace=Pol;var urs=yxe(),Lol=wt("node:os"),Vol=WMr();async function Pol(e,t,r,n={}){let a=e[Vol.JsonWorkspaceSymbol];if(a){if(!a.hasChanges)return;let o=Hol(a);return t.writeFile(r??a.filePath,o)}else{if(!r)throw new Error("path option is required");let o=Wol(e,n.schema),l=JSON.stringify(o,null,2);return t.writeFile(r,l)}}function Wol(e,t){return{$schema:t||"./node_modules/@angular/cli/lib/config/schema.json",version:1,...e.extensions,...aje(e.projects)?{}:{projects:grs(e.projects)}}}function grs(e){let t=Object.create(null);for(let[r,n]of e)t[r]=Ars(n);return t}function Ars(e){let t;if(e.targets.size>0){t=Object.create(null);for(let[n,a]of e.targets)t[n]=HMr(a)}return{...e.extensions,root:e.root,...e.sourceRoot===void 0?{}:{sourceRoot:e.sourceRoot},...e.prefix===void 0?{}:{prefix:e.prefix},...t===void 0?{}:{architect:t}}}function aje(e){return e===void 0||Object.keys(e).length===0}function HMr(e){return{builder:e.builder,...aje(e.options)?{}:{options:e.options},...aje(e.configurations)?{}:{configurations:e.configurations},...e.defaultConfiguration===void 0?{}:{defaultConfiguration:e.defaultConfiguration}}}function Ool(e){let t=Object.create(null);for(let[r,n]of e)t[r]=HMr(n);return t}function Mol(e,t){if(e!==void 0)switch(t){case"project":return Ars(e);case"projectcollection":{let r=grs(e);return aje(r)?void 0:r}case"target":return HMr(e);case"targetcollection":{let r=Ool(e);return aje(r)?void 0:r}default:return e}}function Hol(e){let{raw:t}=e,{changes:r,hasLegacyTargetsName:n}=e;for(let{jsonPath:a,value:o,type:l}of r.values()){n&&a[2]==="targets"&&(a[2]="architect");let A=(0,urs.modify)(t,a,Mol(o,l),{formattingOptions:{insertSpaces:!0,tabSize:2,eol:Yol(t)}});t=(0,urs.applyEdits)(t,A)}return t}function Yol(e){let t=`\r `,r=` -`,n=e.match(/(?:\r?\n)/g);if(n?.length){let a=n.filter(l=>l===t).length,o=n.length-a;return a>o?t:r}return Zol.EOL}});var frs=H(Ole=>{"use strict";Object.defineProperty(Ole,"__esModule",{value:!0});Ole.WorkspaceFormat=void 0;Ole._test_addWorkspaceFile=Xol;Ole._test_removeWorkspaceFile=Jol;Ole.readWorkspace=Uol;Ole.writeWorkspace=Kol;var cje=nDt(),Yol=lrs(),Qol=drs(),prs=new WeakMap,b_e;(function(e){e[e.JSON=0]="JSON"})(b_e||(Ole.WorkspaceFormat=b_e={}));function Xol(e,t){lje[e]=t}function Jol(e){delete lje[e]}var lje={"angular.json":b_e.JSON,".angular.json":b_e.JSON};async function Uol(e,t,r){if(await t.isDirectory(e)){let a=(0,cje.normalize)(e),o=!1;for(let[l,A]of Object.entries(lje)){if(r!==void 0&&r!==A)continue;let f=(0,cje.getSystemPath)((0,cje.join)(a,l));if(await t.isFile(f)){e=f,r=A,o=!0;break}}if(!o)throw new Error("Unable to locate a workspace file for workspace path. Are you missing an `angular.json` or `.angular.json` file?")}else if(r===void 0){let a=(0,cje.basename)((0,cje.normalize)(e));a in lje&&(r=lje[a])}if(r===void 0)throw new Error("Unable to determine format for workspace path.");let n;switch(r){case b_e.JSON:n=await(0,Yol.readJsonWorkspace)(e,t);break;default:throw new Error("Unsupported workspace format.")}return prs.set(n,b_e.JSON),{workspace:n}}async function Kol(e,t,r,n){if(n===void 0&&(n=prs.get(e),n===void 0))throw new Error("A format is required for custom workspace objects.");switch(n){case b_e.JSON:return(0,Qol.writeJsonWorkspace)(e,t,r);default:throw new Error("Unsupported workspace format.")}}});var Irs=H(oL=>{"use strict";var jol=oL&&oL.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zol=oL&&oL.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&jol(t,e,r)};Object.defineProperty(oL,"__esModule",{value:!0});oL.writeWorkspace=oL.readWorkspace=oL.WorkspaceFormat=oL.createWorkspaceHost=void 0;zol(oMr(),oL);var qol=Qts();Object.defineProperty(oL,"createWorkspaceHost",{enumerable:!0,get:function(){return qol.createWorkspaceHost}});var QMr=frs();Object.defineProperty(oL,"WorkspaceFormat",{enumerable:!0,get:function(){return QMr.WorkspaceFormat}});Object.defineProperty(oL,"readWorkspace",{enumerable:!0,get:function(){return QMr.readWorkspace}});Object.defineProperty(oL,"writeWorkspace",{enumerable:!0,get:function(){return QMr.writeWorkspace}})});var Z2=H(IT=>{"use strict";var hrs=IT&&IT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$ol=IT&&IT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),XMr=IT&&IT.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(fDt,"__esModule",{value:!0});fDt.htmlSelectorFormat=void 0;var nal=[[192,214],[216,246],[248,893],[895,8191],[8204,8205],[8255,8256],[8304,8591],[11264,12271],[12289,55295],[63744,64975],[65008,65533],[65536,983039]];function ial(e){let t="^[a-zA-Z][";t+="-.0-9_a-zA-Z\\u{B7}";for(let r of nal)t+=`\\u{${r[0].toString(16)}}-\\u{${r[1].toString(16)}}`;return t+="]*$",new RegExp(t,"u").test(e)}fDt.htmlSelectorFormat={name:"html-selector",formatter:{async:!1,validate:e=>typeof e=="string"&&ial(e)}}});var UMr=H(IDt=>{"use strict";Object.defineProperty(IDt,"__esModule",{value:!0});IDt.pathFormat=void 0;var sal=Z2();IDt.pathFormat={name:"path",formatter:{async:!1,validate:e=>e===(0,sal.normalize)(e)}}});var KMr=H(Mle=>{"use strict";Object.defineProperty(Mle,"__esModule",{value:!0});Mle.standardFormats=Mle.pathFormat=Mle.htmlSelectorFormat=void 0;var oal=JMr(),aal=UMr(),cal=JMr();Object.defineProperty(Mle,"htmlSelectorFormat",{enumerable:!0,get:function(){return cal.htmlSelectorFormat}});var lal=UMr();Object.defineProperty(Mle,"pathFormat",{enumerable:!0,get:function(){return lal.pathFormat}});Mle.standardFormats=[oal.htmlSelectorFormat,aal.pathFormat]});var yH=H(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.Tree=F4.TreeSymbol=F4.FileVisitorCancelToken=F4.MergeStrategy=void 0;var mrs;(function(e){e[e.AllowOverwriteConflict=2]="AllowOverwriteConflict",e[e.AllowCreationConflict=4]="AllowCreationConflict",e[e.AllowDeleteConflict=8]="AllowDeleteConflict",e[e.Default=0]="Default",e[e.Error=1]="Error",e[e.ContentOnly=2]="ContentOnly",e[e.Overwrite=14]="Overwrite"})(mrs||(F4.MergeStrategy=mrs={}));F4.FileVisitorCancelToken=Symbol();F4.TreeSymbol=function(){let e=typeof window=="object"&&window.window===window&&window.Symbol||typeof self=="object"&&self.self===self&&self.Symbol||typeof global=="object"&&global.global===global&&global.Symbol;return e?(e.schematicTree||(e.schematicTree=Symbol("schematic-tree")),e.schematicTree):Symbol("schematic-tree")}();F4.Tree=Object.freeze({isTree(e){return F4.TreeSymbol in e}})});var Z4=H(hD=>{"use strict";Object.defineProperty(hD,"__esModule",{value:!0});hD.UnimplementedException=hD.UnsuccessfulWorkflowExecution=hD.MergeConflictException=hD.InvalidUpdateRecordException=hD.ContentHasMutatedException=hD.FileAlreadyExistException=hD.FileDoesNotExistException=hD.SchematicsException=void 0;var Hle=Z2(),jMr=class extends Hle.BaseException{};hD.SchematicsException=jMr;var zMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" does not exist.`)}};hD.FileDoesNotExistException=zMr;var qMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" already exist.`)}};hD.FileAlreadyExistException=qMr;var $Mr=class extends Hle.BaseException{constructor(t){super(`Content at path "${t}" has changed between the start and the end of an update.`)}};hD.ContentHasMutatedException=$Mr;var eHr=class extends Hle.BaseException{constructor(){super("Invalid record instance.")}};hD.InvalidUpdateRecordException=eHr;var tHr=class extends Hle.BaseException{constructor(t){super(`A merge conflicted on path "${t}".`)}};hD.MergeConflictException=tHr;var rHr=class extends Hle.BaseException{constructor(){super("Workflow did not execute successfully.")}};hD.UnsuccessfulWorkflowExecution=rHr;var nHr=class extends Hle.BaseException{constructor(){super("This function is unimplemented.")}};hD.UnimplementedException=nHr});var mDt=H(hDt=>{"use strict";Object.defineProperty(hDt,"__esModule",{value:!0});hDt.DelegateTree=void 0;var ual=yH(),iHr=class{_other;constructor(t){this._other=t}branch(){return this._other.branch()}merge(t,r){this._other.merge(t,r)}get root(){return this._other.root}read(t){return this._other.read(t)}readText(t){return this._other.readText(t)}readJson(t){return this._other.readJson(t)}exists(t){return this._other.exists(t)}get(t){return this._other.get(t)}getDir(t){return this._other.getDir(t)}visit(t){return this._other.visit(t)}overwrite(t,r){return this._other.overwrite(t,r)}beginUpdate(t){return this._other.beginUpdate(t)}commitUpdate(t){return this._other.commitUpdate(t)}create(t,r){return this._other.create(t,r)}delete(t){return this._other.delete(t)}rename(t,r){return this._other.rename(t,r)}apply(t,r){return this._other.apply(t,r)}get actions(){return this._other.actions}[ual.TreeSymbol](){return this}};hDt.DelegateTree=iHr});var Crs=H(Exe=>{"use strict";Object.defineProperty(Exe,"__esModule",{value:!0});Exe.LazyFileEntry=Exe.SimpleFileEntry=void 0;var sHr=class{_path;_content;constructor(t,r){this._path=t,this._content=r}get path(){return this._path}get content(){return this._content}};Exe.SimpleFileEntry=sHr;var oHr=class{_path;_load;_content=null;constructor(t,r){this._path=t,this._load=r}get path(){return this._path}get content(){return this._content||(this._content=this._load(this._path))}};Exe.LazyFileEntry=oHr});var yrs=H((CDt,_rs)=>{(function(e,t){typeof CDt=="object"&&typeof _rs<"u"?t(CDt):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.sourcemapCodec={}))})(CDt,function(e){"use strict";let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=new Uint8Array(64),o=new Uint8Array(128);for(let Se=0;Se>>=1,Me&&(k=-2147483648|-k),De+k}function A(Se,De,k){let et=De-k;et=et<0?-et<<1|1:et<<1;do{let ct=et&31;et>>>=5,et>0&&(ct|=32),Se.write(a[ct])}while(et>0);return De}function f(Se,De){return Se.pos>=De?!1:Se.peek()!==44}let I=1024*16,C=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(Se){return Buffer.from(Se.buffer,Se.byteOffset,Se.byteLength).toString()}}:{decode(Se){let De="";for(let k=0;k0?k+C.decode(De.subarray(0,et)):k}}class E{constructor(De){this.pos=0,this.buffer=De}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(De){let{buffer:k,pos:et}=this,ct=k.indexOf(De,et);return ct===-1?k.length:ct}}let N=[];function B(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0;for(;k.pos0&&k.write(44),et[0]=A(k,Me,et[0]),A(k,je,0),A(k,Yt,0);let Nr=ct.length===6?1:0;A(k,Nr,0),ct.length===6&&A(k,ct[5],0);for(let er of Tr)A(k,er,0);for(De++;DeSt||vt===St&&xt>=At)break;De=Q(Se,De,k,et)}return k.write(44),et[0]=A(k,St,et[0]),A(k,At,0),De}function X(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0,je=0,St=0,At=0,Yt=0,Tr=0,Nr=0,er=0;do{let vt=k.indexOf(";"),xt=0;for(;k.pos_n;jt--){let Fn=Nr;Nr=l(k,Nr),er=l(k,Nr===Fn?er:0);let Nn=l(k,0);ke.push([Nn,Nr,er])}}else ke=[[_n]];Ar.push(ke)}while(f(k,vt))}qr.bindings=Ar,et.push(qr),ct.push(qr)}Me++,k.pos=vt+1}while(k.pos0&&k.write(44),et[1]=A(k,ct[1],et[1]);let er=(ct.length===6?1:0)|(Tr?2:0)|(Yt?4:0);if(A(k,er,0),ct.length===6){let{4:vt,5:xt}=ct;vt!==et[2]&&(et[3]=0),et[2]=A(k,vt,et[2]),et[3]=A(k,xt,et[3])}if(Tr){let{0:vt,1:xt,2:Zr}=ct.callsite;vt!==et[4]?(et[5]=0,et[6]=0):xt!==et[5]&&(et[6]=0),et[4]=A(k,vt,et[4]),et[5]=A(k,xt,et[5]),et[6]=A(k,Zr,et[6])}if(Nr)for(let vt of Nr){vt.length>1&&A(k,-vt.length,0);let xt=vt[0][0];A(k,xt,0);let Zr=Me,qt=je;for(let Xt=1;XtSt||xt===St&&Zr>=At)break;De=ne(Se,De,k,et)}return et[0]0&&De.write(59),St.length===0)continue;let At=0;for(let Yt=0;Yt0&&De.write(44),At=A(De,Tr[0],At),Tr.length!==1&&(k=A(De,Tr[1],k),et=A(De,Tr[2],et),ct=A(De,Tr[3],ct),Tr.length!==4&&(Me=A(De,Tr[4],Me)))}}return De.flush()}e.decode=fe,e.decodeGeneratedRanges=X,e.decodeOriginalScopes=B,e.encode=be,e.encodeGeneratedRanges=ae,e.encodeOriginalScopes=F,Object.defineProperty(e,"__esModule",{value:!0})})});var Brs=H((szu,vrs)=>{"use strict";var gal=yrs(),_Dt=class e{constructor(t){this.bits=t instanceof e?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},yDt=class e{constructor(t,r,n){this.start=t,this.end=r,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new e(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.startglobalThis.btoa(unescape(encodeURIComponent(e))):typeof Buffer=="function"?e=>Buffer.from(e,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var dal=Aal(),gje=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=gal.encode(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+dal(this.toString())}};function pal(e){let t=e.split(` -`),r=t.filter(o=>/^\t+/.test(o)),n=t.filter(o=>/^ {2,}/.test(o));if(r.length===0&&n.length===0)return null;if(r.length>=n.length)return" ";let a=n.reduce((o,l)=>{let A=/^ +/.exec(l)[0].length;return Math.min(A,o)},1/0);return new Array(a+1).join(" ")}function Ers(e,t){let r=e.split(/[/\\]/),n=t.split(/[/\\]/);for(r.pop();r[0]===n[0];)r.shift(),n.shift();if(r.length){let a=r.length;for(;a--;)r[a]=".."}return r.concat(n).join("/")}var fal=Object.prototype.toString;function Srs(e){return fal.call(e)==="[object Object]"}function aHr(e){let t=e.split(` -`),r=[];for(let n=0,a=0;n>1;al===t).length,o=n.length-a;return a>o?t:r}return Lol.EOL}});var frs=H(Ole=>{"use strict";Object.defineProperty(Ole,"__esModule",{value:!0});Ole.WorkspaceFormat=void 0;Ole._test_addWorkspaceFile=Jol;Ole._test_removeWorkspaceFile=Uol;Ole.readWorkspace=Kol;Ole.writeWorkspace=jol;var cje=nDt(),Qol=lrs(),Xol=drs(),prs=new WeakMap,b_e;(function(e){e[e.JSON=0]="JSON"})(b_e||(Ole.WorkspaceFormat=b_e={}));function Jol(e,t){lje[e]=t}function Uol(e){delete lje[e]}var lje={"angular.json":b_e.JSON,".angular.json":b_e.JSON};async function Kol(e,t,r){if(await t.isDirectory(e)){let a=(0,cje.normalize)(e),o=!1;for(let[l,A]of Object.entries(lje)){if(r!==void 0&&r!==A)continue;let f=(0,cje.getSystemPath)((0,cje.join)(a,l));if(await t.isFile(f)){e=f,r=A,o=!0;break}}if(!o)throw new Error("Unable to locate a workspace file for workspace path. Are you missing an `angular.json` or `.angular.json` file?")}else if(r===void 0){let a=(0,cje.basename)((0,cje.normalize)(e));a in lje&&(r=lje[a])}if(r===void 0)throw new Error("Unable to determine format for workspace path.");let n;switch(r){case b_e.JSON:n=await(0,Qol.readJsonWorkspace)(e,t);break;default:throw new Error("Unsupported workspace format.")}return prs.set(n,b_e.JSON),{workspace:n}}async function jol(e,t,r,n){if(n===void 0&&(n=prs.get(e),n===void 0))throw new Error("A format is required for custom workspace objects.");switch(n){case b_e.JSON:return(0,Xol.writeJsonWorkspace)(e,t,r);default:throw new Error("Unsupported workspace format.")}}});var Irs=H(oL=>{"use strict";var zol=oL&&oL.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qol=oL&&oL.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&zol(t,e,r)};Object.defineProperty(oL,"__esModule",{value:!0});oL.writeWorkspace=oL.readWorkspace=oL.WorkspaceFormat=oL.createWorkspaceHost=void 0;qol(oMr(),oL);var $ol=Qts();Object.defineProperty(oL,"createWorkspaceHost",{enumerable:!0,get:function(){return $ol.createWorkspaceHost}});var QMr=frs();Object.defineProperty(oL,"WorkspaceFormat",{enumerable:!0,get:function(){return QMr.WorkspaceFormat}});Object.defineProperty(oL,"readWorkspace",{enumerable:!0,get:function(){return QMr.readWorkspace}});Object.defineProperty(oL,"writeWorkspace",{enumerable:!0,get:function(){return QMr.writeWorkspace}})});var Z2=H(IT=>{"use strict";var hrs=IT&&IT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),eal=IT&&IT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),XMr=IT&&IT.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(fDt,"__esModule",{value:!0});fDt.htmlSelectorFormat=void 0;var ial=[[192,214],[216,246],[248,893],[895,8191],[8204,8205],[8255,8256],[8304,8591],[11264,12271],[12289,55295],[63744,64975],[65008,65533],[65536,983039]];function sal(e){let t="^[a-zA-Z][";t+="-.0-9_a-zA-Z\\u{B7}";for(let r of ial)t+=`\\u{${r[0].toString(16)}}-\\u{${r[1].toString(16)}}`;return t+="]*$",new RegExp(t,"u").test(e)}fDt.htmlSelectorFormat={name:"html-selector",formatter:{async:!1,validate:e=>typeof e=="string"&&sal(e)}}});var UMr=H(IDt=>{"use strict";Object.defineProperty(IDt,"__esModule",{value:!0});IDt.pathFormat=void 0;var oal=Z2();IDt.pathFormat={name:"path",formatter:{async:!1,validate:e=>e===(0,oal.normalize)(e)}}});var KMr=H(Mle=>{"use strict";Object.defineProperty(Mle,"__esModule",{value:!0});Mle.standardFormats=Mle.pathFormat=Mle.htmlSelectorFormat=void 0;var aal=JMr(),cal=UMr(),lal=JMr();Object.defineProperty(Mle,"htmlSelectorFormat",{enumerable:!0,get:function(){return lal.htmlSelectorFormat}});var ual=UMr();Object.defineProperty(Mle,"pathFormat",{enumerable:!0,get:function(){return ual.pathFormat}});Mle.standardFormats=[aal.htmlSelectorFormat,cal.pathFormat]});var yH=H(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.Tree=F4.TreeSymbol=F4.FileVisitorCancelToken=F4.MergeStrategy=void 0;var mrs;(function(e){e[e.AllowOverwriteConflict=2]="AllowOverwriteConflict",e[e.AllowCreationConflict=4]="AllowCreationConflict",e[e.AllowDeleteConflict=8]="AllowDeleteConflict",e[e.Default=0]="Default",e[e.Error=1]="Error",e[e.ContentOnly=2]="ContentOnly",e[e.Overwrite=14]="Overwrite"})(mrs||(F4.MergeStrategy=mrs={}));F4.FileVisitorCancelToken=Symbol();F4.TreeSymbol=function(){let e=typeof window=="object"&&window.window===window&&window.Symbol||typeof self=="object"&&self.self===self&&self.Symbol||typeof global=="object"&&global.global===global&&global.Symbol;return e?(e.schematicTree||(e.schematicTree=Symbol("schematic-tree")),e.schematicTree):Symbol("schematic-tree")}();F4.Tree=Object.freeze({isTree(e){return F4.TreeSymbol in e}})});var Z4=H(hD=>{"use strict";Object.defineProperty(hD,"__esModule",{value:!0});hD.UnimplementedException=hD.UnsuccessfulWorkflowExecution=hD.MergeConflictException=hD.InvalidUpdateRecordException=hD.ContentHasMutatedException=hD.FileAlreadyExistException=hD.FileDoesNotExistException=hD.SchematicsException=void 0;var Hle=Z2(),jMr=class extends Hle.BaseException{};hD.SchematicsException=jMr;var zMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" does not exist.`)}};hD.FileDoesNotExistException=zMr;var qMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" already exist.`)}};hD.FileAlreadyExistException=qMr;var $Mr=class extends Hle.BaseException{constructor(t){super(`Content at path "${t}" has changed between the start and the end of an update.`)}};hD.ContentHasMutatedException=$Mr;var eHr=class extends Hle.BaseException{constructor(){super("Invalid record instance.")}};hD.InvalidUpdateRecordException=eHr;var tHr=class extends Hle.BaseException{constructor(t){super(`A merge conflicted on path "${t}".`)}};hD.MergeConflictException=tHr;var rHr=class extends Hle.BaseException{constructor(){super("Workflow did not execute successfully.")}};hD.UnsuccessfulWorkflowExecution=rHr;var nHr=class extends Hle.BaseException{constructor(){super("This function is unimplemented.")}};hD.UnimplementedException=nHr});var mDt=H(hDt=>{"use strict";Object.defineProperty(hDt,"__esModule",{value:!0});hDt.DelegateTree=void 0;var gal=yH(),iHr=class{_other;constructor(t){this._other=t}branch(){return this._other.branch()}merge(t,r){this._other.merge(t,r)}get root(){return this._other.root}read(t){return this._other.read(t)}readText(t){return this._other.readText(t)}readJson(t){return this._other.readJson(t)}exists(t){return this._other.exists(t)}get(t){return this._other.get(t)}getDir(t){return this._other.getDir(t)}visit(t){return this._other.visit(t)}overwrite(t,r){return this._other.overwrite(t,r)}beginUpdate(t){return this._other.beginUpdate(t)}commitUpdate(t){return this._other.commitUpdate(t)}create(t,r){return this._other.create(t,r)}delete(t){return this._other.delete(t)}rename(t,r){return this._other.rename(t,r)}apply(t,r){return this._other.apply(t,r)}get actions(){return this._other.actions}[gal.TreeSymbol](){return this}};hDt.DelegateTree=iHr});var Crs=H(Exe=>{"use strict";Object.defineProperty(Exe,"__esModule",{value:!0});Exe.LazyFileEntry=Exe.SimpleFileEntry=void 0;var sHr=class{_path;_content;constructor(t,r){this._path=t,this._content=r}get path(){return this._path}get content(){return this._content}};Exe.SimpleFileEntry=sHr;var oHr=class{_path;_load;_content=null;constructor(t,r){this._path=t,this._load=r}get path(){return this._path}get content(){return this._content||(this._content=this._load(this._path))}};Exe.LazyFileEntry=oHr});var yrs=H((CDt,_rs)=>{(function(e,t){typeof CDt=="object"&&typeof _rs<"u"?t(CDt):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.sourcemapCodec={}))})(CDt,function(e){"use strict";let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=new Uint8Array(64),o=new Uint8Array(128);for(let Se=0;Se>>=1,Me&&(k=-2147483648|-k),De+k}function A(Se,De,k){let et=De-k;et=et<0?-et<<1|1:et<<1;do{let ct=et&31;et>>>=5,et>0&&(ct|=32),Se.write(a[ct])}while(et>0);return De}function f(Se,De){return Se.pos>=De?!1:Se.peek()!==44}let I=1024*16,C=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(Se){return Buffer.from(Se.buffer,Se.byteOffset,Se.byteLength).toString()}}:{decode(Se){let De="";for(let k=0;k0?k+C.decode(De.subarray(0,et)):k}}class E{constructor(De){this.pos=0,this.buffer=De}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(De){let{buffer:k,pos:et}=this,ct=k.indexOf(De,et);return ct===-1?k.length:ct}}let N=[];function B(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0;for(;k.pos0&&k.write(44),et[0]=A(k,Me,et[0]),A(k,je,0),A(k,Yt,0);let Nr=ct.length===6?1:0;A(k,Nr,0),ct.length===6&&A(k,ct[5],0);for(let er of Tr)A(k,er,0);for(De++;DeSt||vt===St&&xt>=At)break;De=Q(Se,De,k,et)}return k.write(44),et[0]=A(k,St,et[0]),A(k,At,0),De}function X(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0,je=0,St=0,At=0,Yt=0,Tr=0,Nr=0,er=0;do{let vt=k.indexOf(";"),xt=0;for(;k.pos_n;jt--){let Fn=Nr;Nr=l(k,Nr),er=l(k,Nr===Fn?er:0);let Nn=l(k,0);ke.push([Nn,Nr,er])}}else ke=[[_n]];Ar.push(ke)}while(f(k,vt))}qr.bindings=Ar,et.push(qr),ct.push(qr)}Me++,k.pos=vt+1}while(k.pos0&&k.write(44),et[1]=A(k,ct[1],et[1]);let er=(ct.length===6?1:0)|(Tr?2:0)|(Yt?4:0);if(A(k,er,0),ct.length===6){let{4:vt,5:xt}=ct;vt!==et[2]&&(et[3]=0),et[2]=A(k,vt,et[2]),et[3]=A(k,xt,et[3])}if(Tr){let{0:vt,1:xt,2:Zr}=ct.callsite;vt!==et[4]?(et[5]=0,et[6]=0):xt!==et[5]&&(et[6]=0),et[4]=A(k,vt,et[4]),et[5]=A(k,xt,et[5]),et[6]=A(k,Zr,et[6])}if(Nr)for(let vt of Nr){vt.length>1&&A(k,-vt.length,0);let xt=vt[0][0];A(k,xt,0);let Zr=Me,qt=je;for(let Xt=1;XtSt||xt===St&&Zr>=At)break;De=ne(Se,De,k,et)}return et[0]0&&De.write(59),St.length===0)continue;let At=0;for(let Yt=0;Yt0&&De.write(44),At=A(De,Tr[0],At),Tr.length!==1&&(k=A(De,Tr[1],k),et=A(De,Tr[2],et),ct=A(De,Tr[3],ct),Tr.length!==4&&(Me=A(De,Tr[4],Me)))}}return De.flush()}e.decode=fe,e.decodeGeneratedRanges=X,e.decodeOriginalScopes=B,e.encode=be,e.encodeGeneratedRanges=ae,e.encodeOriginalScopes=F,Object.defineProperty(e,"__esModule",{value:!0})})});var Brs=H((ozu,vrs)=>{"use strict";var Aal=yrs(),_Dt=class e{constructor(t){this.bits=t instanceof e?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},yDt=class e{constructor(t,r,n){this.start=t,this.end=r,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new e(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.startglobalThis.btoa(unescape(encodeURIComponent(e))):typeof Buffer=="function"?e=>Buffer.from(e,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var pal=dal(),gje=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=Aal.encode(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+pal(this.toString())}};function fal(e){let t=e.split(` +`),r=t.filter(o=>/^\t+/.test(o)),n=t.filter(o=>/^ {2,}/.test(o));if(r.length===0&&n.length===0)return null;if(r.length>=n.length)return" ";let a=n.reduce((o,l)=>{let A=/^ +/.exec(l)[0].length;return Math.min(A,o)},1/0);return new Array(a+1).join(" ")}function Ers(e,t){let r=e.split(/[/\\]/),n=t.split(/[/\\]/);for(r.pop();r[0]===n[0];)r.shift(),n.shift();if(r.length){let a=r.length;for(;a--;)r[a]=".."}return r.concat(n).join("/")}var Ial=Object.prototype.toString;function Srs(e){return Ial.call(e)==="[object Object]"}function aHr(e){let t=e.split(` +`),r=[];for(let n=0,a=0;n>1;a=0&&o>l;){let I=[this.generatedCodeColumn,t,n.line,n.column];a>=0&&I.push(a),this.rawSegments.push(I),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,A=l,l=r.indexOf(` `,l+1)}let f=[this.generatedCodeColumn,t,n.line,n.column];a>=0&&f.push(a),this.rawSegments.push(f),this.advance(r.slice(A+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(r));this.pending=null}addUneditedChunk(t,r,n,a,o){let l=r.start,A=!0,f=!1;for(;l1){for(let n=0;n{let A=o(l.start);l.intro.length&&a.advance(l.intro),l.edited?a.addEdit(r,l.content,A,l.storeName?n.indexOf(l.original):-1):a.addUneditedChunk(r,l,this.original,A,this.sourcemapLocations),l.outro.length&&a.advance(l.outro)}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?Ers(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:a.raw,x_google_ignoreList:this.ignoreList?[r]:void 0}}generateMap(t){return new gje(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=pal(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,r){let n=/^[^\r\n]/gm;if(Srs(t)&&(r=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;r=r||{};let a={};r.exclude&&(typeof r.exclude[0]=="number"?[r.exclude]:r.exclude).forEach(C=>{for(let b=C[0];bo?`${t}${I}`:(o=!0,I);this.intro=this.intro.replace(n,l);let A=0,f=this.firstChunk;for(;f;){let I=f.end;if(f.edited)a[A]||(f.content=f.content.replace(n,l),f.content.length&&(o=f.content[f.content.length-1]===` +`,Sxe={insertLeft:!1,insertRight:!1,storeName:!1},yte=class e{constructor(t,r={}){let n=new yDt(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:r.filename},indentExclusionRanges:{writable:!0,value:r.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new _Dt},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:r.ignoreList},offset:{writable:!0,value:r.offset||0}}),this.byStart[0]=n,this.byEnd[t.length]=n}addSourcemapLocation(t){this.sourcemapLocations.add(t)}append(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.outro+=t,this}appendLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.appendLeft(r):this.intro+=r,this}appendRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.appendRight(r):this.outro+=r,this}clone(){let t=new e(this.original,{filename:this.filename,offset:this.offset}),r=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=r.clone();for(;r;){t.byStart[n.start]=n,t.byEnd[n.end]=n;let a=r.next,o=a&&a.clone();o&&(n.next=o,o.previous=n,n=o),r=a}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new _Dt(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t}generateDecodedMap(t){t=t||{};let r=0,n=Object.keys(this.storedNames),a=new bDt(t.hires),o=aHr(this.original);return this.intro&&a.advance(this.intro),this.firstChunk.eachNext(l=>{let A=o(l.start);l.intro.length&&a.advance(l.intro),l.edited?a.addEdit(r,l.content,A,l.storeName?n.indexOf(l.original):-1):a.addUneditedChunk(r,l,this.original,A,this.sourcemapLocations),l.outro.length&&a.advance(l.outro)}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?Ers(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:a.raw,x_google_ignoreList:this.ignoreList?[r]:void 0}}generateMap(t){return new gje(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=fal(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,r){let n=/^[^\r\n]/gm;if(Srs(t)&&(r=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;r=r||{};let a={};r.exclude&&(typeof r.exclude[0]=="number"?[r.exclude]:r.exclude).forEach(C=>{for(let b=C[0];bo?`${t}${I}`:(o=!0,I);this.intro=this.intro.replace(n,l);let A=0,f=this.firstChunk;for(;f;){let I=f.end;if(f.edited)a[A]||(f.content=f.content.replace(n,l),f.content.length&&(o=f.content[f.content.length-1]===` `));else for(A=f.start;A=t&&n<=r)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(r),this._split(n);let a=this.byStart[t],o=this.byEnd[r],l=a.previous,A=o.next,f=this.byStart[n];if(!f&&o===this.lastChunk)return this;let I=f?f.previous:this.lastChunk;return l&&(l.next=A),A&&(A.previous=l),I&&(I.next=a),f&&(f.previous=o),a.previous||(this.firstChunk=o.next),o.next||(this.lastChunk=a.previous,this.lastChunk.next=null),a.previous=I,o.next=f||null,I||(this.firstChunk=a),f||(this.lastChunk=o),this}overwrite(t,r,n,a){return a=a||{},this.update(t,r,n,{...a,overwrite:!a.contentOnly})}update(t,r,n,a){if(t=t+this.offset,r=r+this.offset,typeof n!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(r>this.original.length)throw new Error("end is out of bounds");if(t===r)throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead");this._split(t),this._split(r),a===!0&&(Sxe.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Sxe.storeName=!0),a={storeName:!0});let o=a!==void 0?a.storeName:!1,l=a!==void 0?a.overwrite:!1;if(o){let I=this.original.slice(t,r);Object.defineProperty(this.storedNames,I,{writable:!0,value:!0,enumerable:!0})}let A=this.byStart[t],f=this.byEnd[r];if(A){let I=A;for(;I!==f;){if(I.next!==this.byStart[I.end])throw new Error("Cannot overwrite across a split point");I=I.next,I.edit("",!1)}A.edit(n,o,!l)}else{let I=new yDt(t,r,"").edit(n,o);f.next=I,I.previous=f}return this}prepend(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this}prependLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.prependLeft(r):this.intro=r+this.intro,this}prependRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.prependRight(r):this.outro=r+this.outro,this}remove(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.intro="",n.outro="",n.edit(""),n=r>n.end?this.byStart[n.end]:null;return this}reset(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.reset(),n=r>n.end?this.byStart[n.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let t=this.outro.lastIndexOf(uje);if(t!==-1)return this.outro.substr(t+1);let r=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(t=n.outro.lastIndexOf(uje),t!==-1)return n.outro.substr(t+1)+r;r=n.outro+r}if(n.content.length>0){if(t=n.content.lastIndexOf(uje),t!==-1)return n.content.substr(t+1)+r;r=n.content+r}if(n.intro.length>0){if(t=n.intro.lastIndexOf(uje),t!==-1)return n.intro.substr(t+1)+r;r=n.intro+r}}while(n=n.previous);return t=this.intro.lastIndexOf(uje),t!==-1?this.intro.substr(t+1)+r:this.intro+r}slice(t=0,r=this.original.length-this.offset){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}let n="",a=this.firstChunk;for(;a&&(a.start>t||a.end<=t);){if(a.start=r)return n;a=a.next}if(a&&a.edited&&a.start!==t)throw new Error(`Cannot use replaced character ${t} as slice start anchor.`);let o=a;for(;a;){a.intro&&(o!==a||a.start===t)&&(n+=a.intro);let l=a.start=r;if(l&&a.edited&&a.end!==r)throw new Error(`Cannot use replaced character ${r} as slice end anchor.`);let A=o===a?t-a.start:0,f=l?a.content.length+r-a.end:a.content.length;if(n+=a.content.slice(A,f),a.outro&&(!l||a.end===r)&&(n+=a.outro),l)break;a=a.next}return n}snip(t,r){let n=this.clone();return n.remove(0,t),n.remove(r,n.original.length),n}_split(t){if(this.byStart[t]||this.byEnd[t])return;let r=this.lastSearchedChunk,n=t>r.end;for(;r;){if(r.contains(t))return this._splitChunk(r,t);r=n?this.byStart[r.end]:this.byEnd[r.start]}}_splitChunk(t,r){if(t.edited&&t.content.length){let a=aHr(this.original)(r);throw new Error(`Cannot split a chunk that has already been edited (${a.line}:${a.column} \u2013 "${t.original}")`)}let n=t.split(r);return this.byEnd[r]=t,this.byStart[r]=n,this.byEnd[n.end]=n,t===this.lastChunk&&(this.lastChunk=n),this.lastSearchedChunk=t,!0}toString(){let t=this.intro,r=this.firstChunk;for(;r;)t+=r.toString(),r=r.next;return t+this.outro}isEmpty(){let t=this.firstChunk;do if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1;while(t=t.next);return!0}length(){let t=this.firstChunk,r=0;do r+=t.intro.length+t.content.length+t.outro.length;while(t=t.next);return r}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimEndAborted(t){let r=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(r,""),this.outro.length)return!0;let n=this.lastChunk;do{let a=n.end,o=n.trimEnd(r);if(n.end!==a&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),o)return!0;n=n.previous}while(n);return!1}trimEnd(t){return this.trimEndAborted(t),this}trimStartAborted(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),this.intro.length)return!0;let n=this.firstChunk;do{let a=n.end,o=n.trimStart(r);if(n.end!==a&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),o)return!0;n=n.next}while(n);return!1}trimStart(t){return this.trimStartAborted(t),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(t,r){function n(o,l){return typeof r=="string"?r.replace(/\$(\$|&|\d+)/g,(A,f)=>f==="$"?"$":f==="&"?o[0]:+f{if(l.index!=null){let A=n(l,this.original);A!==l[0]&&this.overwrite(l.index,l.index+l[0].length,A)}});else{let o=this.original.match(t);if(o&&o.index!=null){let l=n(o,this.original);l!==o[0]&&this.overwrite(o.index,o.index+o[0].length,l)}}return this}_replaceString(t,r){let{original:n}=this,a=n.indexOf(t);return a!==-1&&this.overwrite(a,a+t.length,r),this}replace(t,r){return typeof t=="string"?this._replaceString(t,r):this._replaceRegexp(t,r)}_replaceAllString(t,r){let{original:n}=this,a=t.length;for(let o=n.indexOf(t);o!==-1;o=n.indexOf(t,o+a))n.slice(o,o+a)!==r&&this.overwrite(o,o+a,r);return this}replaceAll(t,r){if(typeof t=="string")return this._replaceAllString(t,r);if(!t.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(t,r)}},brs=Object.prototype.hasOwnProperty,cHr=class e{constructor(t={}){this.intro=t.intro||"",this.separator=t.separator!==void 0?t.separator:` `,this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}}addSource(t){if(t instanceof yte)return this.addSource({content:t,filename:t.filename,separator:this.separator});if(!Srs(t)||!t.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","ignoreList","indentExclusionRanges","separator"].forEach(r=>{brs.call(t,r)||(t[r]=t.content[r])}),t.separator===void 0&&(t.separator=this.separator),t.filename)if(!brs.call(this.uniqueSourceIndexByFilename,t.filename))this.uniqueSourceIndexByFilename[t.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:t.filename,content:t.content.original});else{let r=this.uniqueSources[this.uniqueSourceIndexByFilename[t.filename]];if(t.content.original!==r.content)throw new Error(`Illegal source: same filename (${t.filename}), different contents`)}return this.sources.push(t),this}append(t,r){return this.addSource({content:new yte(t),separator:r&&r.separator||""}),this}clone(){let t=new e({intro:this.intro,separator:this.separator});return this.sources.forEach(r=>{t.addSource({filename:r.filename,content:r.content.clone(),separator:r.separator})}),t}generateDecodedMap(t={}){let r=[],n;this.sources.forEach(o=>{Object.keys(o.content.storedNames).forEach(l=>{~r.indexOf(l)||r.push(l)})});let a=new bDt(t.hires);return this.intro&&a.advance(this.intro),this.sources.forEach((o,l)=>{l>0&&a.advance(this.separator);let A=o.filename?this.uniqueSourceIndexByFilename[o.filename]:-1,f=o.content,I=aHr(f.original);f.intro&&a.advance(f.intro),f.firstChunk.eachNext(C=>{let b=I(C.start);C.intro.length&&a.advance(C.intro),o.filename?C.edited?a.addEdit(A,C.content,b,C.storeName?r.indexOf(C.original):-1):a.addUneditedChunk(A,C,f.original,b,f.sourcemapLocations):a.advance(C.content),C.outro.length&&a.advance(C.outro)}),f.outro&&a.advance(f.outro),o.ignoreList&&A!==-1&&(n===void 0&&(n=[]),n.push(A))}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:this.uniqueSources.map(o=>t.file?Ers(t.file,o.filename):o.filename),sourcesContent:this.uniqueSources.map(o=>t.includeContent?o.content:null),names:r,mappings:a.raw,x_google_ignoreList:n}}generateMap(t){return new gje(this.generateDecodedMap(t))}getIndentString(){let t={};return this.sources.forEach(r=>{let n=r.content._getRawIndentString();n!==null&&(t[n]||(t[n]=0),t[n]+=1)}),Object.keys(t).sort((r,n)=>t[r]-t[n])[0]||" "}indent(t){if(arguments.length||(t=this.getIndentString()),t==="")return this;let r=!this.intro||this.intro.slice(-1)===` `;return this.sources.forEach((n,a)=>{let o=n.separator!==void 0?n.separator:this.separator,l=r||a>0&&/\r?\n$/.test(o);n.content.indent(t,{exclude:n.indentExclusionRanges,indentStart:l}),r=n.content.lastChar()===` -`}),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(n,a)=>a>0?t+n:n)),this}prepend(t){return this.intro=t+this.intro,this}toString(){let t=this.sources.map((r,n)=>{let a=r.separator!==void 0?r.separator:this.separator;return(n>0?a:"")+r.content.toString()}).join("");return this.intro+t}isEmpty(){return!(this.intro.length&&this.intro.trim()||this.sources.some(t=>!t.content.isEmpty()))}length(){return this.sources.reduce((t,r)=>t+r.content.length(),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimStart(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),!this.intro){let n,a=0;do if(n=this.sources[a++],!n)break;while(!n.content.trimStartAborted(t))}return this}trimEnd(t){let r=new RegExp((t||"\\s")+"+$"),n,a=this.sources.length-1;do if(n=this.sources[a--],!n){this.intro=this.intro.replace(r,"");break}while(!n.content.trimEndAborted(t));return this}};yte.Bundle=cHr;yte.SourceMap=gje;yte.default=yte;vrs.exports=yte});var uHr=H(Yle=>{"use strict";var hal=Yle&&Yle.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Yle,"__esModule",{value:!0});Yle.UpdateRecorderBase=Yle.IndexOutOfBoundException=void 0;var mal=Z2(),Cal=hal(Brs()),_al=Z4(),EDt=class extends mal.BaseException{constructor(t,r,n=1/0){super(`Index ${t} outside of range [${r}, ${n}].`)}};Yle.IndexOutOfBoundException=EDt;var lHr=class e{data;bom;_path;content;constructor(t,r,n="utf-8",a=!1){this.data=t,this.bom=a;let o;try{o=new TextDecoder(n,{fatal:!0,ignoreBOM:!1}).decode(t)}catch(l){throw l instanceof TypeError?new Error(`Failed to decode "${r}" as ${n} text.`):l}this._path=r,this.content=new Cal.default(o)}static createFromFileEntry(t){let r=t.content.byteLength>0&&t.content.readUInt8(0),n=t.content.byteLength>1&&t.content.readUInt8(1),a=t.content.byteLength>2&&t.content.readUInt8(2);return r==239&&n==187&&a==191?new e(t.content,t.path,"utf-8",!0):r===255&&n==254?new e(t.content,t.path,"utf-16le",!0):r===254&&n==255?new e(t.content,t.path,"utf-16be",!0):new e(t.content,t.path)}get path(){return this._path}_assertIndex(t){if(t<0||t>this.content.original.length)throw new EDt(t,0,this.content.original.length)}insertLeft(t,r){return this._assertIndex(t),this.content.appendLeft(t,r.toString()),this}insertRight(t,r){return this._assertIndex(t),this.content.appendRight(t,r.toString()),this}remove(t,r){return this._assertIndex(t),this.content.remove(t,t+r),this}apply(t){if(!t.equals(this.data))throw new _al.ContentHasMutatedException(this.path);return Buffer.from((this.bom?"\uFEFF":"")+this.content.toString(),"utf-8")}};Yle.UpdateRecorderBase=lHr});var BDt=H(vDt=>{"use strict";Object.defineProperty(vDt,"__esModule",{value:!0});vDt.ScopedTree=void 0;var lw=Z2(),yal=mDt(),bal=yH(),Aje=class{_base;scope;constructor(t,r){this._base=t,this.scope=r}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get content(){return this._base.content}},SDt=class e{_base;scope;constructor(t,r){this._base=t,this.scope=r}get parent(){return!this._base.parent||this._base.path==this.scope?null:new e(this._base.parent,this.scope)}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get subdirs(){return this._base.subdirs}get subfiles(){return this._base.subfiles}dir(t){let r=this._base.dir(t);return r&&new e(r,this.scope)}file(t){let r=this._base.file(t);return r&&new Aje(r,this.scope)}visit(t){return this._base.visit((r,n)=>{t((0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,r)),n&&new Aje(n,this.scope))})}},gHr=class e{_base;_root;constructor(t,r){this._base=t;let n=(0,lw.normalize)("/"+r);this._root=new SDt(this._base.getDir(n),n)}get root(){return this._root}branch(){return new e(this._base.branch(),this._root.scope)}merge(t,r){let n=this,a=new class extends yal.DelegateTree{get actions(){return t.actions.map(o=>n._fullPathAction(o))}}(t);this._base.merge(a,r)}read(t){return this._base.read(this._fullPath(t))}readText(t){return this._base.readText(this._fullPath(t))}readJson(t){return this._base.readJson(this._fullPath(t))}exists(t){return this._base.exists(this._fullPath(t))}get(t){let r=this._base.get(this._fullPath(t));return r&&new Aje(r,this._root.scope)}getDir(t){let r=this._base.getDir(this._fullPath(t));return r&&new SDt(r,this._root.scope)}visit(t){return this._root.visit(t)}overwrite(t,r){return this._base.overwrite(this._fullPath(t),r)}beginUpdate(t){return this._base.beginUpdate(this._fullPath(t))}commitUpdate(t){return this._base.commitUpdate(t)}create(t,r){return this._base.create(this._fullPath(t),r)}delete(t){return this._base.delete(this._fullPath(t))}rename(t,r){return this._base.rename(this._fullPath(t),this._fullPath(r))}apply(t,r){return this._base.apply(this._fullPathAction(t),r)}get actions(){let t=[];for(let r of this._base.actions)r.path.startsWith(this._root.scope+"/")&&(r.kind!=="r"?t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path))}):r.to.startsWith(this._root.scope+"/")&&t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path)),to:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.to))}));return t}[bal.TreeSymbol](){return this}_fullPath(t){return(0,lw.join)(this._root.scope,(0,lw.normalize)("/"+t))}_fullPathAction(t){let r;return t.kind==="r"?r={...t,path:this._fullPath(t.path),to:this._fullPath(t.to)}:r={...t,path:this._fullPath(t.path)},r}};vDt.ScopedTree=gHr});var E_e=H(t6=>{"use strict";Object.defineProperty(t6,"__esModule",{value:!0});t6.FilterHostTree=t6.HostCreateTree=t6.HostTree=t6.HostDirEntry=void 0;var aL=Z2(),wrs=yxe(),DO=Z4(),Eal=mDt(),Sal=Crs(),e6=yH(),Trs=uHr(),val=BDt(),Bal=0,wDt=class{parent;path;_host;_tree;constructor(t,r,n,a){this.parent=t,this.path=r,this._host=n,this._tree=a}get subdirs(){return this._host.list(this.path).filter(t=>this._host.isDirectory((0,aL.join)(this.path,t)))}get subfiles(){return this._host.list(this.path).filter(t=>this._host.isFile((0,aL.join)(this.path,t)))}dir(t){return this._tree.getDir((0,aL.join)(this.path,t))}file(t){return this._tree.get((0,aL.join)(this.path,t))}visit(t){try{this.getSubfilesRecursively().forEach(r=>t(r.path,r))}catch(r){if(r!==e6.FileVisitorCancelToken)throw r}}getSubfilesRecursively(){function t(r){return r.subdirs.reduce((n,a)=>[...n,...t(r.dir(a))],r.subfiles.map(n=>r.file(n)))}return t(this)}};t6.HostDirEntry=wDt;var vxe=class e{_backend;_id=--Bal;_record;_recordSync;_ancestry=new Set;_dirCache=new Map;[e6.TreeSymbol](){return this}static isHostTree(t){return t instanceof e||typeof t=="object"&&typeof t._ancestry=="object"}constructor(t=new aL.virtualFs.Empty){this._backend=t,this._record=new aL.virtualFs.CordHost(new aL.virtualFs.SafeReadonlyHost(t)),this._recordSync=new aL.virtualFs.SyncDelegateHost(this._record)}_normalizePath(t){return(0,aL.normalize)("/"+t)}_willCreate(t){return this._record.willCreate(t)}_willOverwrite(t){return this._record.willOverwrite(t)}_willDelete(t){return this._record.willDelete(t)}_willRename(t){return this._record.willRename(t)}branch(){let t=new e(this._backend);return t._record=this._record.clone(),t._recordSync=new aL.virtualFs.SyncDelegateHost(t._record),t._ancestry=new Set(this._ancestry).add(this._id),t}isAncestorOf(t){return t instanceof e?t._ancestry.has(this._id):t instanceof Eal.DelegateTree?this.isAncestorOf(t._other):t instanceof val.ScopedTree?this.isAncestorOf(t._base):!1}merge(t,r=e6.MergeStrategy.Default){if(t===this)return;this.isAncestorOf(t)&&(r|=e6.MergeStrategy.Overwrite);let n=(r&e6.MergeStrategy.AllowCreationConflict)==e6.MergeStrategy.AllowCreationConflict,a=(r&e6.MergeStrategy.AllowOverwriteConflict)==e6.MergeStrategy.AllowOverwriteConflict,o=(r&e6.MergeStrategy.AllowDeleteConflict)==e6.MergeStrategy.AllowDeleteConflict;t.actions.forEach(l=>{switch(l.kind){case"c":{let{path:A,content:f}=l;if(this._willCreate(A)||this._willOverwrite(A)||this.exists(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!n)throw new DO.MergeConflictException(A);this._record.overwrite(A,f).subscribe()}else this._record.create(A,f).subscribe();return}case"o":{let{path:A,content:f}=l;if(this._willDelete(A)&&!a)throw new DO.MergeConflictException(A);if(this._willOverwrite(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!a)throw new DO.MergeConflictException(A)}this._record.write(A,f).subscribe();return}case"r":{let{path:A,to:f}=l;if(this._willDelete(A))throw new DO.MergeConflictException(A);if(this._willRename(A)){if(this._record.willRenameTo(A,f))return;throw new DO.MergeConflictException(A)}this.rename(A,f);return}case"d":{let{path:A}=l;if(this._willDelete(A))return;if(!this.exists(A)&&!o)throw new DO.MergeConflictException(A);this._recordSync.delete(A);return}}})}get root(){return this.getDir("/")}read(t){let r=this.get(t);return r?r.content:null}readText(t){let r=this.read(t);if(r===null)throw new DO.FileDoesNotExistException(t);let n=new TextDecoder("utf-8",{fatal:!0});try{return n.decode(r)}catch(a){throw a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA"?new Error(`Failed to decode "${t}" as UTF-8 text.`):a}}readJson(t){let r=this.readText(t),n=[],a=(0,wrs.parse)(r,n,{allowTrailingComma:!0});if(n[0]){let{error:o,offset:l}=n[0];throw new Error(`Failed to parse "${t}" as JSON. ${(0,wrs.printParseErrorCode)(o)} at offset: ${l}.`)}return a}exists(t){return this._recordSync.isFile(this._normalizePath(t))}get(t){let r=this._normalizePath(t);if(this._recordSync.isDirectory(r))throw new aL.PathIsDirectoryException(r);return this._recordSync.exists(r)?new Sal.LazyFileEntry(r,()=>Buffer.from(this._recordSync.read(r))):null}getDir(t){let r=this._normalizePath(t);if(this._recordSync.isFile(r))throw new aL.PathIsFileException(r);let n=this._dirCache.get(r);if(!n){let a=(0,aL.dirname)(r);r===a&&(a=null),n=new wDt(a&&this.getDir(a),r,this._recordSync,this),this._dirCache.set(r,n)}return n}visit(t){this.root.visit((r,n)=>{t(r,n)})}overwrite(t,r){let n=this._normalizePath(t);if(!this._recordSync.exists(n))throw new DO.FileDoesNotExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.overwrite(n,a).subscribe()}beginUpdate(t){let r=this.get(t);if(!r)throw new DO.FileDoesNotExistException(t);return Trs.UpdateRecorderBase.createFromFileEntry(r)}commitUpdate(t){if(t instanceof Trs.UpdateRecorderBase){let r=t.path,n=this.get(r);if(n){let a=t.apply(n.content);a.equals(n.content)||this.overwrite(r,a)}else throw new DO.ContentHasMutatedException(r)}else throw new DO.InvalidUpdateRecordException}create(t,r){let n=this._normalizePath(t);if(this._recordSync.exists(n))throw new DO.FileAlreadyExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.create(n,a).subscribe()}delete(t){this._recordSync.delete(this._normalizePath(t))}rename(t,r){this._recordSync.rename(this._normalizePath(t),this._normalizePath(r))}apply(t,r){throw new DO.SchematicsException("Apply not implemented on host trees.")}*generateActions(){for(let t of this._record.records())switch(t.kind){case"create":yield{id:this._id,parent:0,kind:"c",path:t.path,content:Buffer.from(t.content)};break;case"overwrite":yield{id:this._id,parent:0,kind:"o",path:t.path,content:Buffer.from(t.content)};break;case"rename":yield{id:this._id,parent:0,kind:"r",path:t.from,to:t.to};break;case"delete":yield{id:this._id,parent:0,kind:"d",path:t.path};break}}get actions(){return Array.from(this.generateActions())}};t6.HostTree=vxe;var AHr=class extends vxe{constructor(t){super();let r=new vxe(t);r.visit(n=>{let a=r.read(n);a&&this.create(n,a)})}};t6.HostCreateTree=AHr;var dHr=class extends vxe{constructor(t,r=()=>!0){let n=new aL.virtualFs.SimpleMemoryHost,a=t._backend,o=["/"];for(;o.length>0;){let l=o.pop();if(l===void 0)break;let A=!1;if(a.isDirectory(l).subscribe(C=>A=C),A){a.list(l).subscribe(C=>o.push(...C.map(b=>(0,aL.join)(l,b))));continue}let f=!1;if(a.isFile(l).subscribe(C=>f=C),!f||!r(l))continue;let I=null;a.read(l).subscribe(C=>I=C),I!==null&&n.write(l,I).subscribe()}super(n);for(let l of t.actions)if(r(l.path))switch(l.kind){case"c":this.create(l.path,l.content);break;case"d":this.delete(l.path);break;case"o":this.overwrite(l.path,l.content);break;case"r":this.rename(l.path,l.to);break}}};t6.FilterHostTree=dHr});var dje=H(Bxe=>{"use strict";Object.defineProperty(Bxe,"__esModule",{value:!0});Bxe.empty=Ral;Bxe.branch=Nal;Bxe.merge=Dal;Bxe.partition=kal;var wal=Z4(),TDt=E_e(),Tal=yH();function Ral(){return new TDt.HostTree}function Nal(e){return e.branch()}function Dal(e,t,r=Tal.MergeStrategy.Default){return e.merge(t,r),e}function kal(e,t){if(e instanceof TDt.HostTree)return[new TDt.FilterHostTree(e,t),new TDt.FilterHostTree(e,(r,n)=>!t(r,n))];throw new wal.SchematicsException("Tree type is not supported.")}});var Rrs=H(Xle=>{"use strict";Object.defineProperty(Xle,"__esModule",{value:!0});Xle.NullTree=Xle.NullTreeDirEntry=Xle.CannotCreateFileException=void 0;var pje=Z2(),Qle=Z4(),xal=yH(),Gal=uHr(),RDt=class extends pje.BaseException{constructor(t){super(`Cannot create file "${t}".`)}};Xle.CannotCreateFileException=RDt;var fje=class e{path;get parent(){return this.path=="/"?null:new e((0,pje.dirname)(this.path))}constructor(t){this.path=t}subdirs=[];subfiles=[];dir(t){return new e((0,pje.join)(this.path,t))}file(t){return null}visit(){}};Xle.NullTreeDirEntry=fje;var pHr=class e{[xal.TreeSymbol](){return this}branch(){return new e}merge(t,r){}root=new fje((0,pje.normalize)("/"));exists(t){return!1}read(t){return null}readText(t){throw new Qle.FileDoesNotExistException(t)}readJson(t){throw new Qle.FileDoesNotExistException(t)}get(t){return null}getDir(t){return new fje((0,pje.normalize)("/"+t))}visit(){}beginUpdate(t){throw new Qle.FileDoesNotExistException(t)}commitUpdate(t){throw new Qle.FileDoesNotExistException(t instanceof Gal.UpdateRecorderBase?t.path:"")}copy(t,r){throw new Qle.FileDoesNotExistException(t)}delete(t){throw new Qle.FileDoesNotExistException(t)}create(t,r){throw new RDt(t)}rename(t,r){throw new Qle.FileDoesNotExistException(t)}overwrite(t,r){throw new Qle.FileDoesNotExistException(t)}apply(t,r){}get actions(){return[]}};Xle.NullTree=pHr});var kDt=H(Jle=>{"use strict";Object.defineProperty(Jle,"__esModule",{value:!0});Jle.InvalidSourceResultException=Jle.InvalidRuleResultException=void 0;Jle.callSource=Fal;Jle.callRule=Zal;var Drs=Z2(),r6=qb(),krs=yH();function xrs(e){return e===void 0?"undefined":e===null?"null":typeof e=="function"?"Function()":typeof e!="object"?`${typeof e}(${JSON.stringify(e)})`:Object.getPrototypeOf(e)==Object?`Object(${JSON.stringify(e)})`:e.constructor?`Instance of class ${e.constructor.name}`:"Unknown Object"}var NDt=class extends Drs.BaseException{constructor(t){super(`Invalid rule result: ${xrs(t)}.`)}};Jle.InvalidRuleResultException=NDt;var DDt=class extends Drs.BaseException{constructor(t){super(`Invalid source result: ${xrs(t)}.`)}};Jle.InvalidSourceResultException=DDt;function Fal(e,t){return(0,r6.defer)(async()=>{let r=e(t);if((0,r6.isObservable)(r)&&(r=await(0,r6.lastValueFrom)(r.pipe((0,r6.defaultIfEmpty)(void 0)))),r&&krs.TreeSymbol in r)return r;throw new DDt(r)})}function Zal(e,t,r){return(0,r6.isObservable)(t)?t.pipe((0,r6.mergeMap)(n=>Nrs(e,n,r))):(0,r6.defer)(()=>Nrs(e,t,r))}async function Nrs(e,t,r){let n=await e(t,r);for(;typeof n=="function";)n=await n(t,r);if(typeof n>"u")return t;if((0,r6.isObservable)(n)&&(n=await(0,r6.lastValueFrom)(n.pipe((0,r6.defaultIfEmpty)(t)))),n&&krs.TreeSymbol in n)return n;throw new NDt(n)}});var GDt=H(wxe=>{"use strict";Object.defineProperty(wxe,"__esModule",{value:!0});wxe.SchematicImpl=wxe.InvalidSchematicsNameException=void 0;var Lal=Z2(),Ije=qb(),Val=kDt(),Pal=BDt(),xDt=class extends Lal.BaseException{constructor(t){super(`Schematics has invalid name: "${t}".`)}};wxe.InvalidSchematicsNameException=xDt;var fHr=class{_description;_factory;_collection;_engine;constructor(t,r,n,a){if(this._description=t,this._factory=r,this._collection=n,this._engine=a,!t.name.match(/^[-@/_.a-zA-Z0-9]+$/))throw new xDt(t.name)}get description(){return this._description}get collection(){return this._collection}call(t,r,n,a){let o=this._engine.createContext(this,n,a);return r.pipe((0,Ije.first)(),(0,Ije.concatMap)(l=>this._engine.transformOptions(this,t,o).pipe((0,Ije.map)(A=>[l,A]))),(0,Ije.concatMap)(([l,A])=>{let f,I=!1;return a&&a.scope?(I=!0,f=new Pal.ScopedTree(l,a.scope)):f=l,(0,Val.callRule)(this._factory(A),f,o).pipe((0,Ije.map)(C=>C===f?l:I?(l.merge(C),l):C))}))}};wxe.SchematicImpl=fHr});var Grs=H(L2=>{"use strict";Object.defineProperty(L2,"__esModule",{value:!0});L2.SchematicEngine=L2.TaskScheduler=L2.CollectionImpl=L2.UnknownTaskDependencyException=L2.UnregisteredTaskException=L2.SchematicEngineConflictingException=L2.PrivateSchematicException=L2.UnknownSchematicException=L2.CircularCollectionException=L2.UnknownCollectionException=L2.UnknownUrlSourceProtocol=void 0;var n6=Z2(),FDt=qb(),Wal=yH(),Oal=Rrs(),Mal=dje(),Hal=GDt(),ZDt=class extends n6.BaseException{constructor(t){super(`Unknown Protocol on url "${t}".`)}};L2.UnknownUrlSourceProtocol=ZDt;var LDt=class extends n6.BaseException{constructor(t){super(`Unknown collection "${t}".`)}};L2.UnknownCollectionException=LDt;var VDt=class extends n6.BaseException{constructor(t){super(`Circular collection reference "${t}".`)}};L2.CircularCollectionException=VDt;var PDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.UnknownSchematicException=PDt;var WDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.PrivateSchematicException=WDt;var ODt=class extends n6.BaseException{constructor(){super("A schematic was called from a different engine as its parent.")}};L2.SchematicEngineConflictingException=ODt;var MDt=class extends n6.BaseException{constructor(t,r){let n=r?` in schematic "${r.name}"`:"";super(`Unregistered task "${t}"${n}.`)}};L2.UnregisteredTaskException=MDt;var HDt=class extends n6.BaseException{constructor(t){super(`Unknown task dependency [ID: ${t.id}].`)}};L2.UnknownTaskDependencyException=HDt;var YDt=class{_description;_engine;baseDescriptions;constructor(t,r,n){this._description=t,this._engine=r,this.baseDescriptions=n}get description(){return this._description}get name(){return this.description.name||""}createSchematic(t,r=!1){return this._engine.createSchematic(t,this,r)}listSchematicNames(t){return this._engine.listSchematicNames(this,t)}};L2.CollectionImpl=YDt;var QDt=class e{_context;_queue=new n6.PriorityQueue((t,r)=>t.priority-r.priority);_taskIds=new Map;static _taskIdCounter=1;constructor(t){this._context=t}_calculatePriority(t){return t.size===0?0:[...t].reduce((n,a)=>n+a.priority,1)}_mapDependencies(t){if(!t)return new Set;let r=t.map(n=>{let a=this._taskIds.get(n);if(!a)throw new HDt(n);return a});return new Set(r)}schedule(t){let r=this._mapDependencies(t.dependencies),n=this._calculatePriority(r),a={id:e._taskIdCounter++,priority:n,configuration:t,context:this._context};this._queue.push(a);let o={id:a.id};return this._taskIds.set(o,a),o}finalize(){let t=this._queue.toArray();return this._queue.clear(),this._taskIds.clear(),t}};L2.TaskScheduler=QDt;var IHr=class{_host;_workflow;_collectionCache=new Map;_schematicCache=new WeakMap;_taskSchedulers=new Array;constructor(t,r){this._host=t,this._workflow=r}get workflow(){return this._workflow||null}get defaultMergeStrategy(){return this._host.defaultMergeStrategy||Wal.MergeStrategy.Default}createCollection(t,r){let n=this._collectionCache.get(t);if(n)return n;let[a,o]=this._createCollectionDescription(t,r?.description);return n=new YDt(a,this,o),this._collectionCache.set(t,n),this._schematicCache.set(n,new Map),n}_createCollectionDescription(t,r,n){let a=this._host.createCollectionDescription(t,r);if(!a)throw new LDt(t);if(n&&n.has(a.name))throw new VDt(t);let o=new Array;if(a.extends){n=(n||new Set).add(a.name);for(let l of a.extends){let[A,f]=this._createCollectionDescription(l,a,new Set(n));o.unshift(A,...f)}}return[a,o]}createContext(t,r,n){if(r&&r.engine&&r.engine!==this)throw new ODt;let a=!0;n&&n.interactive!=null?a=n.interactive:r&&r.interactive!=null&&(a=r.interactive);let o={debug:r&&r.debug||!1,engine:this,logger:r&&r.logger&&r.logger.createChild(t.description.name)||new n6.logging.NullLogger,schematic:t,strategy:r&&r.strategy!==void 0?r.strategy:this.defaultMergeStrategy,interactive:a,addTask:I},l=this._host.transformContext(o);l&&(o=l);let A=new QDt(o),f=this._host;this._taskSchedulers.push(A);function I(C,b){let E=C.toConfiguration();if(!f.hasTaskExecutor(E.name))throw new MDt(E.name,t.description);return E.dependencies=E.dependencies||[],b&&E.dependencies.unshift(...b),A.schedule(E)}return o}createSchematic(t,r,n=!1){let a=this._schematicCache.get(r),o=a?.get(t);if(o)return o;let l=r.description,A=this._host.createSchematicDescription(t,r.description);if(!A){if(r.baseDescriptions){for(let I of r.baseDescriptions)if(A=this._host.createSchematicDescription(t,I),A){l=I;break}}if(!A)throw new PDt(t,r.description)}if(A.private&&!n)throw new WDt(t,r.description);let f=this._host.getSchematicRuleFactory(A,l);return o=new Hal.SchematicImpl(A,f,r,this),a?.set(t,o),o}listSchematicNames(t,r){let n=this._host.listSchematicNames(t.description,r);if(t.baseDescriptions)for(let a of t.baseDescriptions)n.push(...this._host.listSchematicNames(a,r));return[...new Set(n)].sort()}transformOptions(t,r,n){return this._host.transformOptions(t.description,r,n)}createSourceFromUrl(t,r){switch(t.protocol){case"null:":return()=>new Oal.NullTree;case"empty:":return()=>(0,Mal.empty)()}let n=this._host.createSourceFromUrl(t,r);if(!n)throw new ZDt(t.toString());return n}executePostTasks(){let t=new Map;return(0,FDt.from)(this._taskSchedulers).pipe((0,FDt.concatMap)(n=>n.finalize()),(0,FDt.concatMap)(n=>{let{name:a,options:o}=n.configuration,l=t.get(a);return l?l(o,n.context):this._host.createTaskExecutor(a).pipe((0,FDt.concatMap)(A=>(t.set(a,A),A(o,n.context))))}))}};L2.SchematicEngine=IHr});var Zrs=H(Frs=>{"use strict";Object.defineProperty(Frs,"__esModule",{value:!0})});var mHr=H(bte=>{"use strict";var Yal=bte&&bte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hHr=bte&&bte.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Yal(t,e,r)};Object.defineProperty(bte,"__esModule",{value:!0});hHr(Grs(),bte);hHr(Zrs(),bte);hHr(GDt(),bte)});var Lrs=H(CHr=>{"use strict";Object.defineProperty(CHr,"__esModule",{value:!0});CHr.createConsoleLogger=Jal;var Qal=qb(),Xal=Z2();function Jal(e=!1,t=process.stdout,r=process.stderr,n){let a=new Xal.logging.IndentLogger("cling");return a.pipe((0,Qal.filter)(o=>o.level!=="debug"||e)).subscribe(o=>{let l=n&&n[o.level],A=t;switch(o.level){case"warn":case"fatal":case"error":A=r;break}let f=2e3,I=o.message;for(;I;){let C=I.slice(0,f);I=I.slice(f),A.write(l?l(C):C)}A.write(` -`)}),a}});var Prs=H(Txe=>{"use strict";Object.defineProperty(Txe,"__esModule",{value:!0});Txe.NodeJsSyncHost=Txe.NodeJsAsyncHost=void 0;var mD=wt("node:fs"),Ual=wt("node:path"),$b=qb(),oC=Z2();async function Kal(e){try{return await mD.promises.access(e,mD.constants.F_OK),!0}catch{return!1}}var XDt;function Vrs(){if(!XDt)try{XDt=wt("chokidar").FSWatcher}catch(e){throw e.code!=="MODULE_NOT_FOUND"?new Error('As of angular-devkit version 8.0, the "chokidar" package must be installed in order to use watch() features.'):e}}var _Hr=class{get capabilities(){return{synchronous:!1}}write(t,r){return(0,$b.from)(mD.promises.mkdir((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0})).pipe((0,$b.mergeMap)(()=>mD.promises.writeFile((0,oC.getSystemPath)(t),new Uint8Array(r))))}read(t){return(0,$b.from)(mD.promises.readFile((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>new Uint8Array(r).buffer))}delete(t){return(0,$b.from)(mD.promises.rm((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}))}rename(t,r){return(0,$b.from)(mD.promises.rename((0,oC.getSystemPath)(t),(0,oC.getSystemPath)(r)))}list(t){return(0,$b.from)(mD.promises.readdir((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>r.map(n=>(0,oC.fragment)(n))))}exists(t){return(0,$b.from)(Kal((0,oC.getSystemPath)(t)))}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return(0,$b.from)(mD.promises.stat((0,oC.getSystemPath)(t)))}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!0});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsAsyncHost=_Hr;var yHr=class{get capabilities(){return{synchronous:!0}}write(t,r){return new $b.Observable(n=>{(0,mD.mkdirSync)((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0}),(0,mD.writeFileSync)((0,oC.getSystemPath)(t),new Uint8Array(r)),n.next(),n.complete()})}read(t){return new $b.Observable(r=>{let n=(0,mD.readFileSync)((0,oC.getSystemPath)(t));r.next(new Uint8Array(n).buffer),r.complete()})}delete(t){return new $b.Observable(r=>{(0,mD.rmSync)((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}),r.complete()})}rename(t,r){return new $b.Observable(n=>{let a=(0,oC.getSystemPath)(r);(0,mD.mkdirSync)((0,Ual.dirname)(a),{recursive:!0}),(0,mD.renameSync)((0,oC.getSystemPath)(t),a),n.next(),n.complete()})}list(t){return new $b.Observable(r=>{let n=(0,mD.readdirSync)((0,oC.getSystemPath)(t));r.next(n.map(a=>(0,oC.fragment)(a))),r.complete()})}exists(t){return new $b.Observable(r=>{r.next((0,mD.existsSync)((0,oC.getSystemPath)(t))),r.complete()})}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return new $b.Observable(r=>{r.next((0,mD.statSync)((0,oC.getSystemPath)(t))),r.complete()})}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!1});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsSyncHost=yHr});var JDt=H(Ule=>{"use strict";var jal=Ule&&Ule.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wrs=Ule&&Ule.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&jal(t,e,r)};Object.defineProperty(Ule,"__esModule",{value:!0});Wrs(Lrs(),Ule);Wrs(Prs(),Ule)});var SHr=H(S_e=>{"use strict";Object.defineProperty(S_e,"__esModule",{value:!0});S_e.ActionList=S_e.UnknownActionException=void 0;S_e.isContentAction=$al;var zal=Z2(),bHr=class extends zal.BaseException{constructor(t){super(`Unknown action: "${t.kind}".`)}};S_e.UnknownActionException=bHr;var qal=1,EHr=class{_actions=[];_action(t){this._actions.push({...t,id:qal++,parent:this._actions[this._actions.length-1]?.id??0})}create(t,r){this._action({kind:"c",path:t,content:r})}overwrite(t,r){this._action({kind:"o",path:t,content:r})}rename(t,r){this._action({kind:"r",path:t,to:r})}delete(t){this._action({kind:"d",path:t})}optimize(){let t=new Map,r=new Map,n=new Map,a=new Set;for(let o of this._actions)switch(o.kind){case"c":t.set(o.path,o.content);break;case"o":t.has(o.path)?t.set(o.path,o.content):n.set(o.path,o.content);break;case"d":a.add(o.path);break;case"r":{let l=t.get(o.path),A=n.get(o.path);l&&(t.delete(o.path),t.set(o.to,l)),A&&(n.delete(o.path),n.set(o.to,A));let f;for(let[I,C]of r.entries())if(C==o.path){f=I;break}f&&r.set(f,o.to),!l&&!A&&!f&&r.set(o.path,o.to);break}}this._actions=[],a.forEach(o=>{this.delete(o)}),r.forEach((o,l)=>{this.rename(l,o)}),t.forEach((o,l)=>{this.create(l,o)}),n.forEach((o,l)=>{this.overwrite(l,o)})}push(t){this._actions.push(t)}get(t){return this._actions[t]}has(t){for(let r=0;rt.id)return!1}return!1}find(t){return this._actions.find(t)||null}forEach(t,r){this._actions.forEach(t,r)}get length(){return this._actions.length}[Symbol.iterator](){return this._actions[Symbol.iterator]()}};S_e.ActionList=EHr;function $al(e){return e.kind=="c"||e.kind=="o"}});var BHr=H(KDt=>{"use strict";Object.defineProperty(KDt,"__esModule",{value:!0});KDt.SimpleSinkBase=void 0;var eE=qb(),Ors=Z4(),ecl=SHr(),UDt=function(){},vHr=class{preCommitAction=UDt;postCommitAction=UDt;preCommit=UDt;postCommit=UDt;_fileAlreadyExistException(t){throw new Ors.FileAlreadyExistException(t)}_fileDoesNotExistException(t){throw new Ors.FileDoesNotExistException(t)}_validateOverwriteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}_validateCreateAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.path)}))}_validateRenameAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}),(0,eE.mergeMap)(()=>this._validateFileExists(t.to)),(0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.to)}))}_validateDeleteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}validateSingleAction(t){switch(t.kind){case"o":return this._validateOverwriteAction(t);case"c":return this._validateCreateAction(t);case"r":return this._validateRenameAction(t);case"d":return this._validateDeleteAction(t);default:throw new ecl.UnknownActionException(t)}}commitSingleAction(t){return(0,eE.concat)(this.validateSingleAction(t),new eE.Observable(r=>{let n=null;switch(t.kind){case"o":n=this._overwriteFile(t.path,t.content);break;case"c":n=this._createFile(t.path,t.content);break;case"r":n=this._renameFile(t.path,t.to);break;case"d":n=this._deleteFile(t.path);break}n?n.subscribe(r):r.complete()})).pipe((0,eE.ignoreElements)())}commit(t){let r=(0,eE.from)(t.actions);return(0,eE.concat)(this.preCommit()||(0,eE.of)(null),(0,eE.defer)(()=>r).pipe((0,eE.concatMap)(n=>{let a=this.preCommitAction(n);return(0,eE.isObservable)(a)||tcl(a)?a:(0,eE.of)(a||n)}),(0,eE.concatMap)(n=>(0,eE.concat)(this.commitSingleAction(n).pipe((0,eE.ignoreElements)()),(0,eE.of)(n))),(0,eE.concatMap)(n=>this.postCommitAction(n)||(0,eE.of)(null))),(0,eE.defer)(()=>this._done()),(0,eE.defer)(()=>this.postCommit()||(0,eE.of)(null))).pipe((0,eE.ignoreElements)(),(0,eE.defaultIfEmpty)(void 0))}};KDt.SimpleSinkBase=vHr;function tcl(e){return!!e&&typeof e.then=="function"}});var zDt=H(jDt=>{"use strict";Object.defineProperty(jDt,"__esModule",{value:!0});jDt.HostSink=void 0;var LR=qb(),rcl=BHr(),wHr=class extends rcl.SimpleSinkBase{_host;_force;_filesToDelete=new Set;_filesToRename=new Set;_filesToCreate=new Map;_filesToUpdate=new Map;constructor(t,r=!1){super(),this._host=t,this._force=r}_validateCreateAction(t){return this._force?LR.EMPTY:super._validateCreateAction(t)}_validateFileExists(t){if(this._filesToCreate.has(t)||this._filesToUpdate.has(t))return(0,LR.of)(!0);if(this._filesToDelete.has(t))return(0,LR.of)(!1);for(let[r,n]of this._filesToRename.values())switch(t){case r:return(0,LR.of)(!1);case n:return(0,LR.of)(!0)}return this._host.exists(t)}_overwriteFile(t,r){return this._filesToUpdate.set(t,r),LR.EMPTY}_createFile(t,r){return this._filesToCreate.set(t,r),LR.EMPTY}_renameFile(t,r){return this._filesToRename.add([t,r]),LR.EMPTY}_deleteFile(t){return this._filesToCreate.has(t)?(this._filesToCreate.delete(t),this._filesToUpdate.delete(t)):this._filesToDelete.add(t),LR.EMPTY}_done(){return(0,LR.concat)((0,LR.from)([...this._filesToDelete.values()]).pipe((0,LR.concatMap)(t=>this._host.delete(t))),(0,LR.from)([...this._filesToRename.entries()]).pipe((0,LR.concatMap)(([t,[r,n]])=>this._host.rename(r,n))),(0,LR.from)([...this._filesToCreate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r))),(0,LR.from)([...this._filesToUpdate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r)))).pipe((0,LR.reduce)(()=>{}))}};jDt.HostSink=wHr});var RHr=H(qDt=>{"use strict";Object.defineProperty(qDt,"__esModule",{value:!0});qDt.DryRunSink=void 0;var Mrs=Z2(),ncl=JDt(),Hrs=qb(),icl=zDt(),THr=class extends icl.HostSink{_subject=new Hrs.Subject;_fileDoesNotExistExceptionSet=new Set;_fileAlreadyExistExceptionSet=new Set;reporter=this._subject.asObservable();constructor(t,r=!1){super(typeof t=="string"?new Mrs.virtualFs.ScopedHost(new ncl.NodeJsSyncHost,(0,Mrs.normalize)(t)):t,r)}_fileAlreadyExistException(t){this._fileAlreadyExistExceptionSet.add(t)}_fileDoesNotExistException(t){this._fileDoesNotExistExceptionSet.add(t)}_done(){return this._fileAlreadyExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"alreadyExist",path:t})}),this._fileDoesNotExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"doesNotExist",path:t})}),this._filesToDelete.forEach(t=>{for(let[r]of this._filesToRename)if(r==t)return;this._subject.next({kind:"delete",path:t})}),this._filesToRename.forEach(([t,r])=>{this._subject.next({kind:"rename",path:t,to:r})}),this._filesToCreate.forEach((t,r)=>{for(let[,n]of this._filesToRename)if(n==r)return;this._fileAlreadyExistExceptionSet.has(r)||this._fileDoesNotExistExceptionSet.has(r)||this._subject.next({kind:"create",path:r,content:t})}),this._filesToUpdate.forEach((t,r)=>{this._subject.next({kind:"update",path:r,content:t})}),this._subject.complete(),(0,Hrs.of)(void 0)}};qDt.DryRunSink=THr});var Yrs=H($Dt=>{"use strict";Object.defineProperty($Dt,"__esModule",{value:!0});$Dt.BaseWorkflow=void 0;var NHr=Z2(),sx=qb(),scl=mHr(),ocl=Z4(),acl=KMr(),ccl=RHr(),lcl=zDt(),ucl=E_e(),DHr=class{_engine;_engineHost;_registry;_host;_reporter=new sx.Subject;_lifeCycle=new sx.Subject;_context;_force;_dryRun;constructor(t){this._host=t.host,this._engineHost=t.engineHost,t.registry?this._registry=t.registry:(this._registry=new NHr.schema.CoreSchemaRegistry(acl.standardFormats),this._registry.addPostTransform(NHr.schema.transforms.addUndefinedDefaults)),this._engine=new scl.SchematicEngine(this._engineHost,this),this._context=[],this._force=t.force||!1,this._dryRun=t.dryRun||!1}get context(){let t=this._context[this._context.length-1];if(!t)throw new Error("Cannot get context when workflow is not executing...");return t}get engine(){return this._engine}get engineHost(){return this._engineHost}get registry(){return this._registry}get reporter(){return this._reporter.asObservable()}get lifeCycle(){return this._lifeCycle.asObservable()}_createSinks(){let t=!1,r=new ccl.DryRunSink(this._host,this._force),n=r.reporter.subscribe(a=>{this._reporter.next(a),t=t||a.kind=="error"});return[r,{commit(){return n.unsubscribe(),t?(0,sx.throwError)(new ocl.UnsuccessfulWorkflowExecution):(0,sx.of)()}},...this._dryRun?[]:[new lcl.HostSink(this._host,this._force)]]}execute(t){let r=this._context[this._context.length-1];r||this._lifeCycle.next({kind:"start"});let n=this._engine.createCollection(t.collection),a=t.allowPrivate||r&&r.collection===t.collection,o=n.createSchematic(t.schematic,a),l=this._createSinks();this._lifeCycle.next({kind:"workflow-start"});let A={...t,debug:t.debug||!1,logger:t.logger||r&&r.logger||new NHr.logging.NullLogger,parentContext:r};return this._context.push(A),o.call(t.options,(0,sx.of)(new ucl.HostTree(this._host)),{logger:A.logger}).pipe((0,sx.concatMap)(f=>(0,sx.concat)((0,sx.from)(l).pipe((0,sx.concatMap)(I=>I.commit(f)),(0,sx.ignoreElements)()),(0,sx.of)(f))),(0,sx.concatMap)(()=>this._dryRun?sx.EMPTY:(this._lifeCycle.next({kind:"post-tasks-start"}),this._engine.executePostTasks().pipe((0,sx.tap)({complete:()=>this._lifeCycle.next({kind:"post-tasks-end"})}),(0,sx.defaultIfEmpty)(void 0),(0,sx.last)()))),(0,sx.tap)({complete:()=>{this._lifeCycle.next({kind:"workflow-end"}),this._context.pop(),this._context.length==0&&this._lifeCycle.next({kind:"end"})}}))}};$Dt.BaseWorkflow=DHr});var Xrs=H(Qrs=>{"use strict";Object.defineProperty(Qrs,"__esModule",{value:!0})});var Urs=H(Kle=>{"use strict";var gcl=Kle&&Kle.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jrs=Kle&&Kle.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&gcl(t,e,r)};Object.defineProperty(Kle,"__esModule",{value:!0});Jrs(Yrs(),Kle);Jrs(Xrs(),Kle)});var ekt=H(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.source=dcl;jG.empty=pcl;jG.chain=xHr;jG.apply=fcl;jG.mergeWith=Icl;jG.noop=qrs;jG.filter=hcl;jG.asSource=mcl;jG.branchAndMerge=Ccl;jG.when=_cl;jG.partitionApplyMerge=ycl;jG.forEach=bcl;jG.composeFileOperators=Ecl;jG.applyToSubtree=Scl;var jle=qb(),jrs=Z4(),Krs=E_e(),zrs=yH(),Acl=BDt(),kHr=dje(),i6=kDt();function dcl(e){return()=>e}function pcl(){return()=>(0,kHr.empty)()}function xHr(e){return async(t,r)=>{let n;if(Symbol.asyncIterator in e)for await(let a of e)n=(0,i6.callRule)(a,n??t,r);else for(let a of e)n=(0,i6.callRule)(a,n??t,r);return()=>n}}function fcl(e,t){return r=>(0,i6.callRule)(xHr(t),(0,i6.callSource)(e,r),r)}function Icl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callSource)(e,n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function qrs(){return()=>{}}function hcl(e){return t=>{if(Krs.HostTree.isHostTree(t))return new Krs.FilterHostTree(t,e);throw new jrs.SchematicsException("Tree type is not supported.")}}function mcl(e){return t=>(0,i6.callRule)(e,(0,kHr.empty)(),t)}function Ccl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callRule)(e,r.branch(),n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function _cl(e,t){return r=>e(r.path,r)?t(r):r}function ycl(e,t,r){return(n,a)=>{let[o,l]=(0,kHr.partition)(n,e);return(0,jle.concat)((0,i6.callRule)(t,o,a),(0,i6.callRule)(r||qrs(),l,a)).pipe((0,jle.toArray)(),(0,jle.map)(([A,f])=>(A.merge(f,a.strategy),A)))}}function bcl(e){return t=>{t.visit((r,n)=>{if(!n)return;let a=e(n);if(a!==n){if(a===null){t.delete(r);return}a.path!=r&&t.rename(r,a.path),a.content.equals(n.content)||t.overwrite(a.path,a.content)}})}}function Ecl(e){return t=>{let r=t;for(let n of e)if(r=n(r),r===null)return null;return r}}function Scl(e,t){return(r,n)=>{let a=new Acl.ScopedTree(r,e);return(0,i6.callRule)(xHr(t),a,n).pipe((0,jle.map)(o=>{if(o===a)return r;throw new jrs.SchematicsException('Original tree must be returned from all rules when using "applyToSubtree".')}))}}});var $rs=H(FHr=>{"use strict";Object.defineProperty(FHr,"__esModule",{value:!0});FHr.move=Bcl;var GHr=Z2(),vcl=ekt();function Bcl(e,t){t===void 0&&(t=e,e="/");let r=(0,GHr.normalize)("/"+e),n=(0,GHr.normalize)("/"+t);return r===n?vcl.noop:a=>(a.exists(r)?a.rename(r,n):a.getDir(r).visit(o=>{a.rename(o,(0,GHr.join)(n,o.slice(r.length)))}),a)}});var tns=H(ZHr=>{"use strict";Object.defineProperty(ZHr,"__esModule",{value:!0});ZHr.default=Rcl;var wcl=E_e();function ens(e){return new Array(e).fill(0).map(t=>"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]).join("")}function Tcl(e,t){return Math.floor(Math.random()*(t-e))+e}function Rcl(e){return()=>{let t="root"in e?e.root:"/",r=new wcl.HostTree,n="multiFiles"in e?typeof e.multiFiles=="number"?e.multiFiles:Tcl(2,12):1;for(let a=0;a{"use strict";Object.defineProperty(tkt,"__esModule",{value:!0});tkt.externalSchematic=Ncl;tkt.schematic=Dcl;var Rxe=qb(),rns=yH(),nns=dje();function Ncl(e,t,r,n){return(a,o)=>o.engine.createCollection(e,o.schematic.collection).createSchematic(t).call(r,(0,Rxe.of)((0,nns.branch)(a)),o,n).pipe((0,Rxe.last)(),(0,Rxe.map)(f=>(a.merge(f,rns.MergeStrategy.AllowOverwriteConflict),a)))}function Dcl(e,t,r){return(n,a)=>a.schematic.collection.createSchematic(e,!0).call(t,(0,Rxe.of)((0,nns.branch)(n)),a,r).pipe((0,Rxe.last)(),(0,Rxe.map)(A=>(n.merge(A,rns.MergeStrategy.AllowOverwriteConflict),n)))}});var ans=H(hT=>{"use strict";Object.defineProperty(hT,"__esModule",{value:!0});hT.InvalidPipeException=hT.UnknownPipeException=hT.OptionIsNotDefinedException=hT.TEMPLATE_FILENAME_RE=void 0;hT.applyContentTemplate=LHr;hT.contentTemplate=sns;hT.applyPathTemplate=VHr;hT.pathTemplate=ons;hT.renameTemplateFiles=Gcl;hT.template=Fcl;hT.applyTemplates=Zcl;var Nxe=Z2(),kcl=wt("node:os"),v_e=ekt();hT.TEMPLATE_FILENAME_RE=/\.template$/;var hje=class extends Nxe.BaseException{constructor(t){super(`Option "${t}" is not defined.`)}};hT.OptionIsNotDefinedException=hje;var rkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is not defined.`)}};hT.UnknownPipeException=rkt;var nkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is invalid.`)}};hT.InvalidPipeException=nkt;var xcl=new TextDecoder("utf-8",{fatal:!0});function LHr(e){return t=>{let{path:r,content:n}=t;try{let a=xcl.decode(n).replace(/\r?\n/g,kcl.EOL);return{path:r,content:Buffer.from((0,Nxe.template)(a,{})(e))}}catch(a){if(a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA")return t;throw a}}}function sns(e){return(0,v_e.forEach)(LHr(e))}function VHr(e,t={interpolationStart:"__",interpolationEnd:"__",pipeSeparator:"@"}){let r=t.interpolationStart,n=t.interpolationEnd,a=r.length,o=n.length;return l=>{let A=l.path,f=l.content,I=A,C=A.indexOf(r),b=A.indexOf(n,C+a+1);for(;C!=-1&&b!=-1;){let E=A.substring(C+a,b),N=e[E];if(t.pipeSeparator){let[B,...F]=E.split(t.pipeSeparator);if(N=e[B],typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(B);N=F.reduce((Q,X)=>{if(!X)return Q;if(!(X in e))throw new rkt(X);let ae=e[X];if(typeof ae!="function")throw new nkt(X);return""+ae(Q)},""+N)}else if(typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(E);A=A.substring(0,C)+N+A.substring(b+o),C=A.indexOf(t.interpolationStart),b=A.indexOf(t.interpolationEnd,C+a+1)}return{path:(0,Nxe.normalize)(A),content:f}}}function ons(e){return(0,v_e.forEach)(VHr(e))}function Gcl(){return(0,v_e.forEach)(e=>e.path.match(hT.TEMPLATE_FILENAME_RE)?{content:e.content,path:(0,Nxe.normalize)(e.path.replace(hT.TEMPLATE_FILENAME_RE,""))}:e)}function Fcl(e){return(0,v_e.chain)([sns(e),ons(e)])}function Zcl(e){return(0,v_e.forEach)((0,v_e.when)(t=>t.endsWith(".template"),(0,v_e.composeFileOperators)([LHr(e),VHr(e),t=>({content:t.content,path:t.path.replace(hT.TEMPLATE_FILENAME_RE,"")})])))}});var cns=H(PHr=>{"use strict";Object.defineProperty(PHr,"__esModule",{value:!0});PHr.url=Vcl;var Lcl=wt("url");function Vcl(e){let t=(0,Lcl.parse)(e);return r=>r.engine.createSourceFromUrl(t,r)(r)}});var lns=H(ikt=>{"use strict";Object.defineProperty(ikt,"__esModule",{value:!0});ikt.EmptyTree=void 0;var Pcl=E_e(),WHr=class extends Pcl.HostTree{constructor(){super()}};ikt.EmptyTree=WHr});var Dxe=H(wm=>{"use strict";var uns=wm&&wm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wcl=wm&&wm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gns=wm&&wm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Ans,"__esModule",{value:!0})});var akt=H(okt=>{"use strict";Object.defineProperty(okt,"__esModule",{value:!0});okt.ExportStringRef=void 0;var pns=wt("path"),OHr=class{_ref;_module;_path;constructor(t,r=process.cwd(),n=!0){let[a,o]=t.split("#",2);this._module=a[0]=="."?(0,pns.resolve)(r,a):a,this._module=wt.resolve(this._module),this._path=(0,pns.dirname)(this._module),n?this._ref=wt(this._module)[o||"default"]:this._ref=wt(this._module)}get ref(){return this._ref}get module(){return this._module}get path(){return this._path}};okt.ExportStringRef=OHr});var HHr=H(MHr=>{"use strict";Object.defineProperty(MHr,"__esModule",{value:!0});MHr.readJsonFile=Ucl;var Xcl=wt("fs"),fns=yxe(),Jcl=Z4();function Ucl(e){let t;try{t=(0,Xcl.readFileSync)(e,"utf-8")}catch(a){throw a&&typeof a=="object"&&"code"in a&&a.code==="ENOENT"?new Jcl.FileDoesNotExistException(e):a}let r=[],n=(0,fns.parse)(t,r,{allowTrailingComma:!0});if(r.length){let{error:a,offset:o}=r[0];throw new Error(`Failed to parse "${e}" as JSON AST Object. ${(0,fns.printParseErrorCode)(a)} at location: ${o}.`)}return n}});var gkt=H(Uv=>{"use strict";Object.defineProperty(Uv,"__esModule",{value:!0});Uv.FileSystemEngineHostBase=Uv.SchematicNameCollisionException=Uv.SchematicMissingDescriptionException=Uv.SchematicMissingFieldsException=Uv.CollectionMissingFieldsException=Uv.CollectionMissingSchematicsMapException=Uv.FactoryCannotBeResolvedException=Uv.SchematicMissingFactoryException=Uv.InvalidCollectionJsonException=Uv.CollectionCannotBeResolvedException=void 0;var L4=Z2(),Kcl=JDt(),Ins=wt("fs"),kxe=wt("path"),mje=qb(),hns=Dxe(),mns=HHr(),YHr=class extends L4.BaseException{constructor(t){super(`Collection ${JSON.stringify(t)} cannot be resolved.`)}};Uv.CollectionCannotBeResolvedException=YHr;var Cje=class extends L4.BaseException{constructor(t,r,n){let a=`Collection JSON at path ${JSON.stringify(r)} is invalid.`;n&&(a=`${a} ${n.message}`),super(a)}};Uv.InvalidCollectionJsonException=Cje;var ckt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} is missing a factory.`)}};Uv.SchematicMissingFactoryException=ckt;var lkt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} cannot resolve the factory.`)}};Uv.FactoryCannotBeResolvedException=lkt;var QHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" does not have a schematics map.`)}};Uv.CollectionMissingSchematicsMapException=QHr;var XHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" is missing fields.`)}};Uv.CollectionMissingFieldsException=XHr;var JHr=class extends L4.BaseException{constructor(t){super(`Schematic "${t}" is missing fields.`)}};Uv.SchematicMissingFieldsException=JHr;var UHr=class extends L4.BaseException{constructor(t){super(`Schematics "${t}" does not have a description.`)}};Uv.SchematicMissingDescriptionException=UHr;var ukt=class extends L4.BaseException{constructor(t){super(`Schematics/alias ${JSON.stringify(t)} collides with another alias or schematic name.`)}};Uv.SchematicNameCollisionException=ukt;var KHr=class{_transforms=[];_contextTransforms=[];_taskFactories=new Map;listSchematicNames(t,r){let n=[];for(let a of Object.keys(t.schematics)){let o=t.schematics[a];o.hidden&&!r||o.private||(!o.extends||o.factory||o.extends&&o.extends.indexOf(":")!==-1)&&n.push(a)}return n}registerOptionsTransform(t){this._transforms.push(t)}registerContextTransform(t){this._contextTransforms.push(t)}createCollectionDescription(t,r){let n=this._resolveCollectionPath(t,r?.path),a=(0,mns.readJsonFile)(n);if(!a||typeof a!="object"||Array.isArray(a))throw new Cje(t,n);typeof a.extends=="string"&&(a.extends=[a.extends]);let o=this._transformCollectionDescription(t,{...a,path:n});if(!o||!o.name)throw new Cje(t,n);let l=Object.keys(o.schematics);for(let A of Object.keys(o.schematics)){let f=o.schematics[A].aliases||[];for(let I of f)if(l.indexOf(I)!=-1)throw new ukt(I);l.push(...f)}return o}createSchematicDescription(t,r){for(let C of Object.keys(r.schematics)){let b=r.schematics[C];if(b.aliases&&b.aliases.indexOf(t)!=-1){t=C;break}}if(!(t in r.schematics))return null;let n=(0,kxe.dirname)(r.path),a=r.schematics[t];if(!a)return null;if(a.extends){let C=a.extends.indexOf(":"),b=C!==-1?a.extends.slice(0,C):null,E=C===-1?a.extends:a.extends.slice(C+1);if(b!==null){let N=this.createCollectionDescription(b);return this.createSchematicDescription(E,N)}else return this.createSchematicDescription(E,r)}if(!a.factory)throw new ckt(t);let o=this._resolveReferenceString(a.factory,n,r);if(!o)throw new lkt(t);let l=a.schema,A;l&&((0,kxe.isAbsolute)(l)||(l=(0,kxe.join)(n,l)),A=(0,mns.readJsonFile)(l));let f=(0,kxe.join)(n,a.factory),I=(0,Ins.existsSync)(f)&&(0,Ins.statSync)(f).isDirectory()?f:(0,kxe.dirname)(f);return this._transformSchematicDescription(t,r,{...a,schema:l,schemaJson:A,name:t,path:I,factoryFn:o.ref,collection:r})}createSourceFromUrl(t){switch(t.protocol){case null:case"file:":return r=>{let n=r.schematic.description;if(n.path===void 0)throw new Error("Unsupported schematic context. Expected a FileSystemSchematicContext.");let a=(0,L4.normalize)((0,kxe.resolve)(n.path,t.path||""));return new hns.HostCreateTree(new L4.virtualFs.ScopedHost(new Kcl.NodeJsSyncHost,a))}}return null}transformOptions(t,r,n){let a=async()=>{let o=r;for(let l of this._transforms){let A=l(t,o,n);o=await((0,mje.isObservable)(A)?(0,mje.lastValueFrom)(A):A)}return o};return(0,mje.from)(a())}transformContext(t){return this._contextTransforms.reduce((r,n)=>n(r),t)}getSchematicRuleFactory(t,r){return t.factoryFn}registerTaskExecutor(t,r){this._taskFactories.set(t.name,()=>(0,mje.from)(t.create(r)))}createTaskExecutor(t){let r=this._taskFactories.get(t);return r?r():(0,mje.throwError)(new hns.UnregisteredTaskException(t))}hasTaskExecutor(t){return this._taskFactories.has(t)}};Uv.FileSystemEngineHostBase=KHr});var Cns=H(Akt=>{"use strict";Object.defineProperty(Akt,"__esModule",{value:!0});Akt.NodePackageName=void 0;Akt.NodePackageName="node-package"});var _ns=H(dkt=>{"use strict";Object.defineProperty(dkt,"__esModule",{value:!0});dkt.RepositoryInitializerName=void 0;dkt.RepositoryInitializerName="repo-init"});var yns=H(pkt=>{"use strict";Object.defineProperty(pkt,"__esModule",{value:!0});pkt.RunSchematicName=void 0;pkt.RunSchematicName="run-schematic"});var bns=H((Hzu,jcl)=>{jcl.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var vns=H((Yzu,Sns)=>{"use strict";var fkt=Object.assign({},bns()),Ens=Object.keys(fkt);Object.defineProperty(fkt,"random",{get(){let e=Math.floor(Math.random()*Ens.length),t=Ens[e];return fkt[t]}});Sns.exports=fkt});var jHr=H((Qzu,Bns)=>{"use strict";Bns.exports=()=>process.platform!=="win32"?!0:!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"});var Tns=H((Xzu,wns)=>{"use strict";var zle=VK(),zcl=jHr(),qcl={info:zle.blue("\u2139"),success:zle.green("\u2714"),warning:zle.yellow("\u26A0"),error:zle.red("\u2716")},$cl={info:zle.blue("i"),success:zle.green("\u221A"),warning:zle.yellow("\u203C"),error:zle.red("\xD7")};wns.exports=zcl()?qcl:$cl});var Rns=H((Jzu,Ikt)=>{var ell=function(){"use strict";function e(l,A,f,I){var C;typeof A=="object"&&(f=A.depth,I=A.prototype,C=A.filter,A=A.circular);var b=[],E=[],N=typeof Buffer<"u";typeof A>"u"&&(A=!0),typeof f>"u"&&(f=1/0);function B(F,Q){if(F===null)return null;if(Q==0)return F;var X,ae;if(typeof F!="object")return F;if(e.__isArray(F))X=[];else if(e.__isRegExp(F))X=new RegExp(F.source,o(F)),F.lastIndex&&(X.lastIndex=F.lastIndex);else if(e.__isDate(F))X=new Date(F.getTime());else{if(N&&Buffer.isBuffer(F))return Buffer.allocUnsafe?X=Buffer.allocUnsafe(F.length):X=new Buffer(F.length),F.copy(X),X;typeof I>"u"?(ae=Object.getPrototypeOf(F),X=Object.create(ae)):(X=Object.create(I),ae=I)}if(A){var ne=b.indexOf(F);if(ne!=-1)return E[ne];b.push(F),E.push(X)}for(var ce in F){var fe;ae&&(fe=Object.getOwnPropertyDescriptor(ae,ce)),!(fe&&fe.set==null)&&(X[ce]=B(F[ce],Q-1))}return X}return B(l,f)}e.clonePrototype=function(A){if(A===null)return null;var f=function(){};return f.prototype=A,new f};function t(l){return Object.prototype.toString.call(l)}e.__objToStr=t;function r(l){return typeof l=="object"&&t(l)==="[object Date]"}e.__isDate=r;function n(l){return typeof l=="object"&&t(l)==="[object Array]"}e.__isArray=n;function a(l){return typeof l=="object"&&t(l)==="[object RegExp]"}e.__isRegExp=a;function o(l){var A="";return l.global&&(A+="g"),l.ignoreCase&&(A+="i"),l.multiline&&(A+="m"),A}return e.__getRegExpFlags=o,e}();typeof Ikt=="object"&&Ikt.exports&&(Ikt.exports=ell)});var Dns=H((Uzu,Nns)=>{var tll=Rns();Nns.exports=function(e,t){return e=e||{},Object.keys(t).forEach(function(r){typeof e[r]>"u"&&(e[r]=tll(t[r]))}),e}});var xns=H((Kzu,kns)=>{kns.exports=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]]});var Lns=H((jzu,zHr)=>{"use strict";var rll=Dns(),_je=xns(),Fns={nul:0,control:0};zHr.exports=function(t){return Zns(t,Fns)};zHr.exports.config=function(e){return e=rll(e||{},Fns),function(r){return Zns(r,e)}};function Zns(e,t){if(typeof e!="string")return Gns(e,t);for(var r=0,n=0;n=127&&e<160?t.control:nll(e)?0:1+(e>=4352&&(e<=4447||e==9001||e==9002||e>=11904&&e<=42191&&e!=12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141))}function nll(e){var t=0,r=_je.length-1,n;if(e<_je[0][0]||e>_je[r][1])return!1;for(;r>=t;)if(n=Math.floor((t+r)/2),e>_je[n][1])t=n+1;else if(e<_je[n][0])r=n-1;else return!0;return!1}});var Pns=H((zzu,Vns)=>{"use strict";Vns.exports=({stream:e=process.stdout}={})=>!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))});var Ons=H((qzu,tYr)=>{"use strict";var ill=wt("readline"),sll=VK(),Wns=uBe(),hkt=vns(),mkt=Tns(),oll=q5(),all=Lns(),cll=Pns(),lll=jHr(),{BufferListStream:ull}=cwr(),qHr=Symbol("text"),$Hr=Symbol("prefixText"),gll=3,eYr=class{constructor(){this.requests=0,this.mutedStream=new ull,this.mutedStream.pipe(process.stdout);let t=this;this.ourEmit=function(r,n,...a){let{stdin:o}=process;if(t.requests>0||o.emit===t.ourEmit){if(r==="keypress")return;r==="data"&&n.includes(gll)&&process.emit("SIGINT"),Reflect.apply(t.oldEmit,this,[r,n,...a])}else Reflect.apply(process.stdin.emit,this,[r,n,...a])}}start(){this.requests++,this.requests===1&&this.realStart()}stop(){if(this.requests<=0)throw new Error("`stop` called more times than `start`");this.requests--,this.requests===0&&this.realStop()}realStart(){process.platform!=="win32"&&(this.rl=ill.createInterface({input:process.stdin,output:this.mutedStream}),this.rl.on("SIGINT",()=>{process.listenerCount("SIGINT")===0?process.emit("SIGINT"):(this.rl.close(),process.kill(process.pid,"SIGINT"))}))}realStop(){process.platform!=="win32"&&(this.rl.close(),this.rl=void 0)}},Ckt,_kt=class{constructor(t){Ckt||(Ckt=new eYr),typeof t=="string"&&(t={text:t}),this.options={text:"",color:"cyan",stream:process.stderr,discardStdin:!0,...t},this.spinner=this.options.spinner,this.color=this.options.color,this.hideCursor=this.options.hideCursor!==!1,this.interval=this.options.interval||this.spinner.interval||100,this.stream=this.options.stream,this.id=void 0,this.isEnabled=typeof this.options.isEnabled=="boolean"?this.options.isEnabled:cll({stream:this.stream}),this.isSilent=typeof this.options.isSilent=="boolean"?this.options.isSilent:!1,this.text=this.options.text,this.prefixText=this.options.prefixText,this.linesToClear=0,this.indent=this.options.indent,this.discardStdin=this.options.discardStdin,this.isDiscardingStdin=!1}get indent(){return this._indent}set indent(t=0){if(!(t>=0&&Number.isInteger(t)))throw new Error("The `indent` option must be an integer from 0 and up");this._indent=t}_updateInterval(t){t!==void 0&&(this.interval=t)}get spinner(){return this._spinner}set spinner(t){if(this.frameIndex=0,typeof t=="object"){if(t.frames===void 0)throw new Error("The given spinner must have a `frames` property");this._spinner=t}else if(!lll())this._spinner=hkt.line;else if(t===void 0)this._spinner=hkt.dots;else if(t!=="default"&&hkt[t])this._spinner=hkt[t];else throw new Error(`There is no built-in spinner named '${t}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);this._updateInterval(this._spinner.interval)}get text(){return this[qHr]}set text(t){this[qHr]=t,this.updateLineCount()}get prefixText(){return this[$Hr]}set prefixText(t){this[$Hr]=t,this.updateLineCount()}get isSpinning(){return this.id!==void 0}getFullPrefixText(t=this[$Hr],r=" "){return typeof t=="string"?t+r:typeof t=="function"?t()+r:""}updateLineCount(){let t=this.stream.columns||80,r=this.getFullPrefixText(this.prefixText,"-");this.lineCount=0;for(let n of oll(r+"--"+this[qHr]).split(` -`))this.lineCount+=Math.max(1,Math.ceil(all(n)/t))}get isEnabled(){return this._isEnabled&&!this.isSilent}set isEnabled(t){if(typeof t!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this._isEnabled=t}get isSilent(){return this._isSilent}set isSilent(t){if(typeof t!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this._isSilent=t}frame(){let{frames:t}=this.spinner,r=t[this.frameIndex];this.color&&(r=sll[this.color](r)),this.frameIndex=++this.frameIndex%t.length;let n=typeof this.prefixText=="string"&&this.prefixText!==""?this.prefixText+" ":"",a=typeof this.text=="string"?" "+this.text:"";return n+r+a}clear(){if(!this.isEnabled||!this.stream.isTTY)return this;for(let t=0;t0&&this.stream.moveCursor(0,-1),this.stream.clearLine(),this.stream.cursorTo(this.indent);return this.linesToClear=0,this}render(){return this.isSilent?this:(this.clear(),this.stream.write(this.frame()),this.linesToClear=this.lineCount,this)}start(t){return t&&(this.text=t),this.isSilent?this:this.isEnabled?this.isSpinning?this:(this.hideCursor&&Wns.hide(this.stream),this.discardStdin&&process.stdin.isTTY&&(this.isDiscardingStdin=!0,Ckt.start()),this.render(),this.id=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.stream.write(`- ${this.text} +`}),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(n,a)=>a>0?t+n:n)),this}prepend(t){return this.intro=t+this.intro,this}toString(){let t=this.sources.map((r,n)=>{let a=r.separator!==void 0?r.separator:this.separator;return(n>0?a:"")+r.content.toString()}).join("");return this.intro+t}isEmpty(){return!(this.intro.length&&this.intro.trim()||this.sources.some(t=>!t.content.isEmpty()))}length(){return this.sources.reduce((t,r)=>t+r.content.length(),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimStart(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),!this.intro){let n,a=0;do if(n=this.sources[a++],!n)break;while(!n.content.trimStartAborted(t))}return this}trimEnd(t){let r=new RegExp((t||"\\s")+"+$"),n,a=this.sources.length-1;do if(n=this.sources[a--],!n){this.intro=this.intro.replace(r,"");break}while(!n.content.trimEndAborted(t));return this}};yte.Bundle=cHr;yte.SourceMap=gje;yte.default=yte;vrs.exports=yte});var uHr=H(Yle=>{"use strict";var mal=Yle&&Yle.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Yle,"__esModule",{value:!0});Yle.UpdateRecorderBase=Yle.IndexOutOfBoundException=void 0;var Cal=Z2(),_al=mal(Brs()),yal=Z4(),EDt=class extends Cal.BaseException{constructor(t,r,n=1/0){super(`Index ${t} outside of range [${r}, ${n}].`)}};Yle.IndexOutOfBoundException=EDt;var lHr=class e{data;bom;_path;content;constructor(t,r,n="utf-8",a=!1){this.data=t,this.bom=a;let o;try{o=new TextDecoder(n,{fatal:!0,ignoreBOM:!1}).decode(t)}catch(l){throw l instanceof TypeError?new Error(`Failed to decode "${r}" as ${n} text.`):l}this._path=r,this.content=new _al.default(o)}static createFromFileEntry(t){let r=t.content.byteLength>0&&t.content.readUInt8(0),n=t.content.byteLength>1&&t.content.readUInt8(1),a=t.content.byteLength>2&&t.content.readUInt8(2);return r==239&&n==187&&a==191?new e(t.content,t.path,"utf-8",!0):r===255&&n==254?new e(t.content,t.path,"utf-16le",!0):r===254&&n==255?new e(t.content,t.path,"utf-16be",!0):new e(t.content,t.path)}get path(){return this._path}_assertIndex(t){if(t<0||t>this.content.original.length)throw new EDt(t,0,this.content.original.length)}insertLeft(t,r){return this._assertIndex(t),this.content.appendLeft(t,r.toString()),this}insertRight(t,r){return this._assertIndex(t),this.content.appendRight(t,r.toString()),this}remove(t,r){return this._assertIndex(t),this.content.remove(t,t+r),this}apply(t){if(!t.equals(this.data))throw new yal.ContentHasMutatedException(this.path);return Buffer.from((this.bom?"\uFEFF":"")+this.content.toString(),"utf-8")}};Yle.UpdateRecorderBase=lHr});var BDt=H(vDt=>{"use strict";Object.defineProperty(vDt,"__esModule",{value:!0});vDt.ScopedTree=void 0;var lw=Z2(),bal=mDt(),Eal=yH(),Aje=class{_base;scope;constructor(t,r){this._base=t,this.scope=r}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get content(){return this._base.content}},SDt=class e{_base;scope;constructor(t,r){this._base=t,this.scope=r}get parent(){return!this._base.parent||this._base.path==this.scope?null:new e(this._base.parent,this.scope)}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get subdirs(){return this._base.subdirs}get subfiles(){return this._base.subfiles}dir(t){let r=this._base.dir(t);return r&&new e(r,this.scope)}file(t){let r=this._base.file(t);return r&&new Aje(r,this.scope)}visit(t){return this._base.visit((r,n)=>{t((0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,r)),n&&new Aje(n,this.scope))})}},gHr=class e{_base;_root;constructor(t,r){this._base=t;let n=(0,lw.normalize)("/"+r);this._root=new SDt(this._base.getDir(n),n)}get root(){return this._root}branch(){return new e(this._base.branch(),this._root.scope)}merge(t,r){let n=this,a=new class extends bal.DelegateTree{get actions(){return t.actions.map(o=>n._fullPathAction(o))}}(t);this._base.merge(a,r)}read(t){return this._base.read(this._fullPath(t))}readText(t){return this._base.readText(this._fullPath(t))}readJson(t){return this._base.readJson(this._fullPath(t))}exists(t){return this._base.exists(this._fullPath(t))}get(t){let r=this._base.get(this._fullPath(t));return r&&new Aje(r,this._root.scope)}getDir(t){let r=this._base.getDir(this._fullPath(t));return r&&new SDt(r,this._root.scope)}visit(t){return this._root.visit(t)}overwrite(t,r){return this._base.overwrite(this._fullPath(t),r)}beginUpdate(t){return this._base.beginUpdate(this._fullPath(t))}commitUpdate(t){return this._base.commitUpdate(t)}create(t,r){return this._base.create(this._fullPath(t),r)}delete(t){return this._base.delete(this._fullPath(t))}rename(t,r){return this._base.rename(this._fullPath(t),this._fullPath(r))}apply(t,r){return this._base.apply(this._fullPathAction(t),r)}get actions(){let t=[];for(let r of this._base.actions)r.path.startsWith(this._root.scope+"/")&&(r.kind!=="r"?t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path))}):r.to.startsWith(this._root.scope+"/")&&t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path)),to:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.to))}));return t}[Eal.TreeSymbol](){return this}_fullPath(t){return(0,lw.join)(this._root.scope,(0,lw.normalize)("/"+t))}_fullPathAction(t){let r;return t.kind==="r"?r={...t,path:this._fullPath(t.path),to:this._fullPath(t.to)}:r={...t,path:this._fullPath(t.path)},r}};vDt.ScopedTree=gHr});var E_e=H(t6=>{"use strict";Object.defineProperty(t6,"__esModule",{value:!0});t6.FilterHostTree=t6.HostCreateTree=t6.HostTree=t6.HostDirEntry=void 0;var aL=Z2(),wrs=yxe(),DO=Z4(),Sal=mDt(),val=Crs(),e6=yH(),Trs=uHr(),Bal=BDt(),wal=0,wDt=class{parent;path;_host;_tree;constructor(t,r,n,a){this.parent=t,this.path=r,this._host=n,this._tree=a}get subdirs(){return this._host.list(this.path).filter(t=>this._host.isDirectory((0,aL.join)(this.path,t)))}get subfiles(){return this._host.list(this.path).filter(t=>this._host.isFile((0,aL.join)(this.path,t)))}dir(t){return this._tree.getDir((0,aL.join)(this.path,t))}file(t){return this._tree.get((0,aL.join)(this.path,t))}visit(t){try{this.getSubfilesRecursively().forEach(r=>t(r.path,r))}catch(r){if(r!==e6.FileVisitorCancelToken)throw r}}getSubfilesRecursively(){function t(r){return r.subdirs.reduce((n,a)=>[...n,...t(r.dir(a))],r.subfiles.map(n=>r.file(n)))}return t(this)}};t6.HostDirEntry=wDt;var vxe=class e{_backend;_id=--wal;_record;_recordSync;_ancestry=new Set;_dirCache=new Map;[e6.TreeSymbol](){return this}static isHostTree(t){return t instanceof e||typeof t=="object"&&typeof t._ancestry=="object"}constructor(t=new aL.virtualFs.Empty){this._backend=t,this._record=new aL.virtualFs.CordHost(new aL.virtualFs.SafeReadonlyHost(t)),this._recordSync=new aL.virtualFs.SyncDelegateHost(this._record)}_normalizePath(t){return(0,aL.normalize)("/"+t)}_willCreate(t){return this._record.willCreate(t)}_willOverwrite(t){return this._record.willOverwrite(t)}_willDelete(t){return this._record.willDelete(t)}_willRename(t){return this._record.willRename(t)}branch(){let t=new e(this._backend);return t._record=this._record.clone(),t._recordSync=new aL.virtualFs.SyncDelegateHost(t._record),t._ancestry=new Set(this._ancestry).add(this._id),t}isAncestorOf(t){return t instanceof e?t._ancestry.has(this._id):t instanceof Sal.DelegateTree?this.isAncestorOf(t._other):t instanceof Bal.ScopedTree?this.isAncestorOf(t._base):!1}merge(t,r=e6.MergeStrategy.Default){if(t===this)return;this.isAncestorOf(t)&&(r|=e6.MergeStrategy.Overwrite);let n=(r&e6.MergeStrategy.AllowCreationConflict)==e6.MergeStrategy.AllowCreationConflict,a=(r&e6.MergeStrategy.AllowOverwriteConflict)==e6.MergeStrategy.AllowOverwriteConflict,o=(r&e6.MergeStrategy.AllowDeleteConflict)==e6.MergeStrategy.AllowDeleteConflict;t.actions.forEach(l=>{switch(l.kind){case"c":{let{path:A,content:f}=l;if(this._willCreate(A)||this._willOverwrite(A)||this.exists(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!n)throw new DO.MergeConflictException(A);this._record.overwrite(A,f).subscribe()}else this._record.create(A,f).subscribe();return}case"o":{let{path:A,content:f}=l;if(this._willDelete(A)&&!a)throw new DO.MergeConflictException(A);if(this._willOverwrite(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!a)throw new DO.MergeConflictException(A)}this._record.write(A,f).subscribe();return}case"r":{let{path:A,to:f}=l;if(this._willDelete(A))throw new DO.MergeConflictException(A);if(this._willRename(A)){if(this._record.willRenameTo(A,f))return;throw new DO.MergeConflictException(A)}this.rename(A,f);return}case"d":{let{path:A}=l;if(this._willDelete(A))return;if(!this.exists(A)&&!o)throw new DO.MergeConflictException(A);this._recordSync.delete(A);return}}})}get root(){return this.getDir("/")}read(t){let r=this.get(t);return r?r.content:null}readText(t){let r=this.read(t);if(r===null)throw new DO.FileDoesNotExistException(t);let n=new TextDecoder("utf-8",{fatal:!0});try{return n.decode(r)}catch(a){throw a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA"?new Error(`Failed to decode "${t}" as UTF-8 text.`):a}}readJson(t){let r=this.readText(t),n=[],a=(0,wrs.parse)(r,n,{allowTrailingComma:!0});if(n[0]){let{error:o,offset:l}=n[0];throw new Error(`Failed to parse "${t}" as JSON. ${(0,wrs.printParseErrorCode)(o)} at offset: ${l}.`)}return a}exists(t){return this._recordSync.isFile(this._normalizePath(t))}get(t){let r=this._normalizePath(t);if(this._recordSync.isDirectory(r))throw new aL.PathIsDirectoryException(r);return this._recordSync.exists(r)?new val.LazyFileEntry(r,()=>Buffer.from(this._recordSync.read(r))):null}getDir(t){let r=this._normalizePath(t);if(this._recordSync.isFile(r))throw new aL.PathIsFileException(r);let n=this._dirCache.get(r);if(!n){let a=(0,aL.dirname)(r);r===a&&(a=null),n=new wDt(a&&this.getDir(a),r,this._recordSync,this),this._dirCache.set(r,n)}return n}visit(t){this.root.visit((r,n)=>{t(r,n)})}overwrite(t,r){let n=this._normalizePath(t);if(!this._recordSync.exists(n))throw new DO.FileDoesNotExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.overwrite(n,a).subscribe()}beginUpdate(t){let r=this.get(t);if(!r)throw new DO.FileDoesNotExistException(t);return Trs.UpdateRecorderBase.createFromFileEntry(r)}commitUpdate(t){if(t instanceof Trs.UpdateRecorderBase){let r=t.path,n=this.get(r);if(n){let a=t.apply(n.content);a.equals(n.content)||this.overwrite(r,a)}else throw new DO.ContentHasMutatedException(r)}else throw new DO.InvalidUpdateRecordException}create(t,r){let n=this._normalizePath(t);if(this._recordSync.exists(n))throw new DO.FileAlreadyExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.create(n,a).subscribe()}delete(t){this._recordSync.delete(this._normalizePath(t))}rename(t,r){this._recordSync.rename(this._normalizePath(t),this._normalizePath(r))}apply(t,r){throw new DO.SchematicsException("Apply not implemented on host trees.")}*generateActions(){for(let t of this._record.records())switch(t.kind){case"create":yield{id:this._id,parent:0,kind:"c",path:t.path,content:Buffer.from(t.content)};break;case"overwrite":yield{id:this._id,parent:0,kind:"o",path:t.path,content:Buffer.from(t.content)};break;case"rename":yield{id:this._id,parent:0,kind:"r",path:t.from,to:t.to};break;case"delete":yield{id:this._id,parent:0,kind:"d",path:t.path};break}}get actions(){return Array.from(this.generateActions())}};t6.HostTree=vxe;var AHr=class extends vxe{constructor(t){super();let r=new vxe(t);r.visit(n=>{let a=r.read(n);a&&this.create(n,a)})}};t6.HostCreateTree=AHr;var dHr=class extends vxe{constructor(t,r=()=>!0){let n=new aL.virtualFs.SimpleMemoryHost,a=t._backend,o=["/"];for(;o.length>0;){let l=o.pop();if(l===void 0)break;let A=!1;if(a.isDirectory(l).subscribe(C=>A=C),A){a.list(l).subscribe(C=>o.push(...C.map(b=>(0,aL.join)(l,b))));continue}let f=!1;if(a.isFile(l).subscribe(C=>f=C),!f||!r(l))continue;let I=null;a.read(l).subscribe(C=>I=C),I!==null&&n.write(l,I).subscribe()}super(n);for(let l of t.actions)if(r(l.path))switch(l.kind){case"c":this.create(l.path,l.content);break;case"d":this.delete(l.path);break;case"o":this.overwrite(l.path,l.content);break;case"r":this.rename(l.path,l.to);break}}};t6.FilterHostTree=dHr});var dje=H(Bxe=>{"use strict";Object.defineProperty(Bxe,"__esModule",{value:!0});Bxe.empty=Nal;Bxe.branch=Dal;Bxe.merge=kal;Bxe.partition=xal;var Tal=Z4(),TDt=E_e(),Ral=yH();function Nal(){return new TDt.HostTree}function Dal(e){return e.branch()}function kal(e,t,r=Ral.MergeStrategy.Default){return e.merge(t,r),e}function xal(e,t){if(e instanceof TDt.HostTree)return[new TDt.FilterHostTree(e,t),new TDt.FilterHostTree(e,(r,n)=>!t(r,n))];throw new Tal.SchematicsException("Tree type is not supported.")}});var Rrs=H(Xle=>{"use strict";Object.defineProperty(Xle,"__esModule",{value:!0});Xle.NullTree=Xle.NullTreeDirEntry=Xle.CannotCreateFileException=void 0;var pje=Z2(),Qle=Z4(),Gal=yH(),Fal=uHr(),RDt=class extends pje.BaseException{constructor(t){super(`Cannot create file "${t}".`)}};Xle.CannotCreateFileException=RDt;var fje=class e{path;get parent(){return this.path=="/"?null:new e((0,pje.dirname)(this.path))}constructor(t){this.path=t}subdirs=[];subfiles=[];dir(t){return new e((0,pje.join)(this.path,t))}file(t){return null}visit(){}};Xle.NullTreeDirEntry=fje;var pHr=class e{[Gal.TreeSymbol](){return this}branch(){return new e}merge(t,r){}root=new fje((0,pje.normalize)("/"));exists(t){return!1}read(t){return null}readText(t){throw new Qle.FileDoesNotExistException(t)}readJson(t){throw new Qle.FileDoesNotExistException(t)}get(t){return null}getDir(t){return new fje((0,pje.normalize)("/"+t))}visit(){}beginUpdate(t){throw new Qle.FileDoesNotExistException(t)}commitUpdate(t){throw new Qle.FileDoesNotExistException(t instanceof Fal.UpdateRecorderBase?t.path:"")}copy(t,r){throw new Qle.FileDoesNotExistException(t)}delete(t){throw new Qle.FileDoesNotExistException(t)}create(t,r){throw new RDt(t)}rename(t,r){throw new Qle.FileDoesNotExistException(t)}overwrite(t,r){throw new Qle.FileDoesNotExistException(t)}apply(t,r){}get actions(){return[]}};Xle.NullTree=pHr});var kDt=H(Jle=>{"use strict";Object.defineProperty(Jle,"__esModule",{value:!0});Jle.InvalidSourceResultException=Jle.InvalidRuleResultException=void 0;Jle.callSource=Zal;Jle.callRule=Lal;var Drs=Z2(),r6=qb(),krs=yH();function xrs(e){return e===void 0?"undefined":e===null?"null":typeof e=="function"?"Function()":typeof e!="object"?`${typeof e}(${JSON.stringify(e)})`:Object.getPrototypeOf(e)==Object?`Object(${JSON.stringify(e)})`:e.constructor?`Instance of class ${e.constructor.name}`:"Unknown Object"}var NDt=class extends Drs.BaseException{constructor(t){super(`Invalid rule result: ${xrs(t)}.`)}};Jle.InvalidRuleResultException=NDt;var DDt=class extends Drs.BaseException{constructor(t){super(`Invalid source result: ${xrs(t)}.`)}};Jle.InvalidSourceResultException=DDt;function Zal(e,t){return(0,r6.defer)(async()=>{let r=e(t);if((0,r6.isObservable)(r)&&(r=await(0,r6.lastValueFrom)(r.pipe((0,r6.defaultIfEmpty)(void 0)))),r&&krs.TreeSymbol in r)return r;throw new DDt(r)})}function Lal(e,t,r){return(0,r6.isObservable)(t)?t.pipe((0,r6.mergeMap)(n=>Nrs(e,n,r))):(0,r6.defer)(()=>Nrs(e,t,r))}async function Nrs(e,t,r){let n=await e(t,r);for(;typeof n=="function";)n=await n(t,r);if(typeof n>"u")return t;if((0,r6.isObservable)(n)&&(n=await(0,r6.lastValueFrom)(n.pipe((0,r6.defaultIfEmpty)(t)))),n&&krs.TreeSymbol in n)return n;throw new NDt(n)}});var GDt=H(wxe=>{"use strict";Object.defineProperty(wxe,"__esModule",{value:!0});wxe.SchematicImpl=wxe.InvalidSchematicsNameException=void 0;var Val=Z2(),Ije=qb(),Pal=kDt(),Wal=BDt(),xDt=class extends Val.BaseException{constructor(t){super(`Schematics has invalid name: "${t}".`)}};wxe.InvalidSchematicsNameException=xDt;var fHr=class{_description;_factory;_collection;_engine;constructor(t,r,n,a){if(this._description=t,this._factory=r,this._collection=n,this._engine=a,!t.name.match(/^[-@/_.a-zA-Z0-9]+$/))throw new xDt(t.name)}get description(){return this._description}get collection(){return this._collection}call(t,r,n,a){let o=this._engine.createContext(this,n,a);return r.pipe((0,Ije.first)(),(0,Ije.concatMap)(l=>this._engine.transformOptions(this,t,o).pipe((0,Ije.map)(A=>[l,A]))),(0,Ije.concatMap)(([l,A])=>{let f,I=!1;return a&&a.scope?(I=!0,f=new Wal.ScopedTree(l,a.scope)):f=l,(0,Pal.callRule)(this._factory(A),f,o).pipe((0,Ije.map)(C=>C===f?l:I?(l.merge(C),l):C))}))}};wxe.SchematicImpl=fHr});var Grs=H(L2=>{"use strict";Object.defineProperty(L2,"__esModule",{value:!0});L2.SchematicEngine=L2.TaskScheduler=L2.CollectionImpl=L2.UnknownTaskDependencyException=L2.UnregisteredTaskException=L2.SchematicEngineConflictingException=L2.PrivateSchematicException=L2.UnknownSchematicException=L2.CircularCollectionException=L2.UnknownCollectionException=L2.UnknownUrlSourceProtocol=void 0;var n6=Z2(),FDt=qb(),Oal=yH(),Mal=Rrs(),Hal=dje(),Yal=GDt(),ZDt=class extends n6.BaseException{constructor(t){super(`Unknown Protocol on url "${t}".`)}};L2.UnknownUrlSourceProtocol=ZDt;var LDt=class extends n6.BaseException{constructor(t){super(`Unknown collection "${t}".`)}};L2.UnknownCollectionException=LDt;var VDt=class extends n6.BaseException{constructor(t){super(`Circular collection reference "${t}".`)}};L2.CircularCollectionException=VDt;var PDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.UnknownSchematicException=PDt;var WDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.PrivateSchematicException=WDt;var ODt=class extends n6.BaseException{constructor(){super("A schematic was called from a different engine as its parent.")}};L2.SchematicEngineConflictingException=ODt;var MDt=class extends n6.BaseException{constructor(t,r){let n=r?` in schematic "${r.name}"`:"";super(`Unregistered task "${t}"${n}.`)}};L2.UnregisteredTaskException=MDt;var HDt=class extends n6.BaseException{constructor(t){super(`Unknown task dependency [ID: ${t.id}].`)}};L2.UnknownTaskDependencyException=HDt;var YDt=class{_description;_engine;baseDescriptions;constructor(t,r,n){this._description=t,this._engine=r,this.baseDescriptions=n}get description(){return this._description}get name(){return this.description.name||""}createSchematic(t,r=!1){return this._engine.createSchematic(t,this,r)}listSchematicNames(t){return this._engine.listSchematicNames(this,t)}};L2.CollectionImpl=YDt;var QDt=class e{_context;_queue=new n6.PriorityQueue((t,r)=>t.priority-r.priority);_taskIds=new Map;static _taskIdCounter=1;constructor(t){this._context=t}_calculatePriority(t){return t.size===0?0:[...t].reduce((n,a)=>n+a.priority,1)}_mapDependencies(t){if(!t)return new Set;let r=t.map(n=>{let a=this._taskIds.get(n);if(!a)throw new HDt(n);return a});return new Set(r)}schedule(t){let r=this._mapDependencies(t.dependencies),n=this._calculatePriority(r),a={id:e._taskIdCounter++,priority:n,configuration:t,context:this._context};this._queue.push(a);let o={id:a.id};return this._taskIds.set(o,a),o}finalize(){let t=this._queue.toArray();return this._queue.clear(),this._taskIds.clear(),t}};L2.TaskScheduler=QDt;var IHr=class{_host;_workflow;_collectionCache=new Map;_schematicCache=new WeakMap;_taskSchedulers=new Array;constructor(t,r){this._host=t,this._workflow=r}get workflow(){return this._workflow||null}get defaultMergeStrategy(){return this._host.defaultMergeStrategy||Oal.MergeStrategy.Default}createCollection(t,r){let n=this._collectionCache.get(t);if(n)return n;let[a,o]=this._createCollectionDescription(t,r?.description);return n=new YDt(a,this,o),this._collectionCache.set(t,n),this._schematicCache.set(n,new Map),n}_createCollectionDescription(t,r,n){let a=this._host.createCollectionDescription(t,r);if(!a)throw new LDt(t);if(n&&n.has(a.name))throw new VDt(t);let o=new Array;if(a.extends){n=(n||new Set).add(a.name);for(let l of a.extends){let[A,f]=this._createCollectionDescription(l,a,new Set(n));o.unshift(A,...f)}}return[a,o]}createContext(t,r,n){if(r&&r.engine&&r.engine!==this)throw new ODt;let a=!0;n&&n.interactive!=null?a=n.interactive:r&&r.interactive!=null&&(a=r.interactive);let o={debug:r&&r.debug||!1,engine:this,logger:r&&r.logger&&r.logger.createChild(t.description.name)||new n6.logging.NullLogger,schematic:t,strategy:r&&r.strategy!==void 0?r.strategy:this.defaultMergeStrategy,interactive:a,addTask:I},l=this._host.transformContext(o);l&&(o=l);let A=new QDt(o),f=this._host;this._taskSchedulers.push(A);function I(C,b){let E=C.toConfiguration();if(!f.hasTaskExecutor(E.name))throw new MDt(E.name,t.description);return E.dependencies=E.dependencies||[],b&&E.dependencies.unshift(...b),A.schedule(E)}return o}createSchematic(t,r,n=!1){let a=this._schematicCache.get(r),o=a?.get(t);if(o)return o;let l=r.description,A=this._host.createSchematicDescription(t,r.description);if(!A){if(r.baseDescriptions){for(let I of r.baseDescriptions)if(A=this._host.createSchematicDescription(t,I),A){l=I;break}}if(!A)throw new PDt(t,r.description)}if(A.private&&!n)throw new WDt(t,r.description);let f=this._host.getSchematicRuleFactory(A,l);return o=new Yal.SchematicImpl(A,f,r,this),a?.set(t,o),o}listSchematicNames(t,r){let n=this._host.listSchematicNames(t.description,r);if(t.baseDescriptions)for(let a of t.baseDescriptions)n.push(...this._host.listSchematicNames(a,r));return[...new Set(n)].sort()}transformOptions(t,r,n){return this._host.transformOptions(t.description,r,n)}createSourceFromUrl(t,r){switch(t.protocol){case"null:":return()=>new Mal.NullTree;case"empty:":return()=>(0,Hal.empty)()}let n=this._host.createSourceFromUrl(t,r);if(!n)throw new ZDt(t.toString());return n}executePostTasks(){let t=new Map;return(0,FDt.from)(this._taskSchedulers).pipe((0,FDt.concatMap)(n=>n.finalize()),(0,FDt.concatMap)(n=>{let{name:a,options:o}=n.configuration,l=t.get(a);return l?l(o,n.context):this._host.createTaskExecutor(a).pipe((0,FDt.concatMap)(A=>(t.set(a,A),A(o,n.context))))}))}};L2.SchematicEngine=IHr});var Zrs=H(Frs=>{"use strict";Object.defineProperty(Frs,"__esModule",{value:!0})});var mHr=H(bte=>{"use strict";var Qal=bte&&bte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hHr=bte&&bte.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Qal(t,e,r)};Object.defineProperty(bte,"__esModule",{value:!0});hHr(Grs(),bte);hHr(Zrs(),bte);hHr(GDt(),bte)});var Lrs=H(CHr=>{"use strict";Object.defineProperty(CHr,"__esModule",{value:!0});CHr.createConsoleLogger=Ual;var Xal=qb(),Jal=Z2();function Ual(e=!1,t=process.stdout,r=process.stderr,n){let a=new Jal.logging.IndentLogger("cling");return a.pipe((0,Xal.filter)(o=>o.level!=="debug"||e)).subscribe(o=>{let l=n&&n[o.level],A=t;switch(o.level){case"warn":case"fatal":case"error":A=r;break}let f=2e3,I=o.message;for(;I;){let C=I.slice(0,f);I=I.slice(f),A.write(l?l(C):C)}A.write(` +`)}),a}});var Prs=H(Txe=>{"use strict";Object.defineProperty(Txe,"__esModule",{value:!0});Txe.NodeJsSyncHost=Txe.NodeJsAsyncHost=void 0;var mD=wt("node:fs"),Kal=wt("node:path"),$b=qb(),oC=Z2();async function jal(e){try{return await mD.promises.access(e,mD.constants.F_OK),!0}catch{return!1}}var XDt;function Vrs(){if(!XDt)try{XDt=wt("chokidar").FSWatcher}catch(e){throw e.code!=="MODULE_NOT_FOUND"?new Error('As of angular-devkit version 8.0, the "chokidar" package must be installed in order to use watch() features.'):e}}var _Hr=class{get capabilities(){return{synchronous:!1}}write(t,r){return(0,$b.from)(mD.promises.mkdir((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0})).pipe((0,$b.mergeMap)(()=>mD.promises.writeFile((0,oC.getSystemPath)(t),new Uint8Array(r))))}read(t){return(0,$b.from)(mD.promises.readFile((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>new Uint8Array(r).buffer))}delete(t){return(0,$b.from)(mD.promises.rm((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}))}rename(t,r){return(0,$b.from)(mD.promises.rename((0,oC.getSystemPath)(t),(0,oC.getSystemPath)(r)))}list(t){return(0,$b.from)(mD.promises.readdir((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>r.map(n=>(0,oC.fragment)(n))))}exists(t){return(0,$b.from)(jal((0,oC.getSystemPath)(t)))}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return(0,$b.from)(mD.promises.stat((0,oC.getSystemPath)(t)))}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!0});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsAsyncHost=_Hr;var yHr=class{get capabilities(){return{synchronous:!0}}write(t,r){return new $b.Observable(n=>{(0,mD.mkdirSync)((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0}),(0,mD.writeFileSync)((0,oC.getSystemPath)(t),new Uint8Array(r)),n.next(),n.complete()})}read(t){return new $b.Observable(r=>{let n=(0,mD.readFileSync)((0,oC.getSystemPath)(t));r.next(new Uint8Array(n).buffer),r.complete()})}delete(t){return new $b.Observable(r=>{(0,mD.rmSync)((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}),r.complete()})}rename(t,r){return new $b.Observable(n=>{let a=(0,oC.getSystemPath)(r);(0,mD.mkdirSync)((0,Kal.dirname)(a),{recursive:!0}),(0,mD.renameSync)((0,oC.getSystemPath)(t),a),n.next(),n.complete()})}list(t){return new $b.Observable(r=>{let n=(0,mD.readdirSync)((0,oC.getSystemPath)(t));r.next(n.map(a=>(0,oC.fragment)(a))),r.complete()})}exists(t){return new $b.Observable(r=>{r.next((0,mD.existsSync)((0,oC.getSystemPath)(t))),r.complete()})}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return new $b.Observable(r=>{r.next((0,mD.statSync)((0,oC.getSystemPath)(t))),r.complete()})}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!1});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsSyncHost=yHr});var JDt=H(Ule=>{"use strict";var zal=Ule&&Ule.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wrs=Ule&&Ule.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&zal(t,e,r)};Object.defineProperty(Ule,"__esModule",{value:!0});Wrs(Lrs(),Ule);Wrs(Prs(),Ule)});var SHr=H(S_e=>{"use strict";Object.defineProperty(S_e,"__esModule",{value:!0});S_e.ActionList=S_e.UnknownActionException=void 0;S_e.isContentAction=ecl;var qal=Z2(),bHr=class extends qal.BaseException{constructor(t){super(`Unknown action: "${t.kind}".`)}};S_e.UnknownActionException=bHr;var $al=1,EHr=class{_actions=[];_action(t){this._actions.push({...t,id:$al++,parent:this._actions[this._actions.length-1]?.id??0})}create(t,r){this._action({kind:"c",path:t,content:r})}overwrite(t,r){this._action({kind:"o",path:t,content:r})}rename(t,r){this._action({kind:"r",path:t,to:r})}delete(t){this._action({kind:"d",path:t})}optimize(){let t=new Map,r=new Map,n=new Map,a=new Set;for(let o of this._actions)switch(o.kind){case"c":t.set(o.path,o.content);break;case"o":t.has(o.path)?t.set(o.path,o.content):n.set(o.path,o.content);break;case"d":a.add(o.path);break;case"r":{let l=t.get(o.path),A=n.get(o.path);l&&(t.delete(o.path),t.set(o.to,l)),A&&(n.delete(o.path),n.set(o.to,A));let f;for(let[I,C]of r.entries())if(C==o.path){f=I;break}f&&r.set(f,o.to),!l&&!A&&!f&&r.set(o.path,o.to);break}}this._actions=[],a.forEach(o=>{this.delete(o)}),r.forEach((o,l)=>{this.rename(l,o)}),t.forEach((o,l)=>{this.create(l,o)}),n.forEach((o,l)=>{this.overwrite(l,o)})}push(t){this._actions.push(t)}get(t){return this._actions[t]}has(t){for(let r=0;rt.id)return!1}return!1}find(t){return this._actions.find(t)||null}forEach(t,r){this._actions.forEach(t,r)}get length(){return this._actions.length}[Symbol.iterator](){return this._actions[Symbol.iterator]()}};S_e.ActionList=EHr;function ecl(e){return e.kind=="c"||e.kind=="o"}});var BHr=H(KDt=>{"use strict";Object.defineProperty(KDt,"__esModule",{value:!0});KDt.SimpleSinkBase=void 0;var eE=qb(),Ors=Z4(),tcl=SHr(),UDt=function(){},vHr=class{preCommitAction=UDt;postCommitAction=UDt;preCommit=UDt;postCommit=UDt;_fileAlreadyExistException(t){throw new Ors.FileAlreadyExistException(t)}_fileDoesNotExistException(t){throw new Ors.FileDoesNotExistException(t)}_validateOverwriteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}_validateCreateAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.path)}))}_validateRenameAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}),(0,eE.mergeMap)(()=>this._validateFileExists(t.to)),(0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.to)}))}_validateDeleteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}validateSingleAction(t){switch(t.kind){case"o":return this._validateOverwriteAction(t);case"c":return this._validateCreateAction(t);case"r":return this._validateRenameAction(t);case"d":return this._validateDeleteAction(t);default:throw new tcl.UnknownActionException(t)}}commitSingleAction(t){return(0,eE.concat)(this.validateSingleAction(t),new eE.Observable(r=>{let n=null;switch(t.kind){case"o":n=this._overwriteFile(t.path,t.content);break;case"c":n=this._createFile(t.path,t.content);break;case"r":n=this._renameFile(t.path,t.to);break;case"d":n=this._deleteFile(t.path);break}n?n.subscribe(r):r.complete()})).pipe((0,eE.ignoreElements)())}commit(t){let r=(0,eE.from)(t.actions);return(0,eE.concat)(this.preCommit()||(0,eE.of)(null),(0,eE.defer)(()=>r).pipe((0,eE.concatMap)(n=>{let a=this.preCommitAction(n);return(0,eE.isObservable)(a)||rcl(a)?a:(0,eE.of)(a||n)}),(0,eE.concatMap)(n=>(0,eE.concat)(this.commitSingleAction(n).pipe((0,eE.ignoreElements)()),(0,eE.of)(n))),(0,eE.concatMap)(n=>this.postCommitAction(n)||(0,eE.of)(null))),(0,eE.defer)(()=>this._done()),(0,eE.defer)(()=>this.postCommit()||(0,eE.of)(null))).pipe((0,eE.ignoreElements)(),(0,eE.defaultIfEmpty)(void 0))}};KDt.SimpleSinkBase=vHr;function rcl(e){return!!e&&typeof e.then=="function"}});var zDt=H(jDt=>{"use strict";Object.defineProperty(jDt,"__esModule",{value:!0});jDt.HostSink=void 0;var LR=qb(),ncl=BHr(),wHr=class extends ncl.SimpleSinkBase{_host;_force;_filesToDelete=new Set;_filesToRename=new Set;_filesToCreate=new Map;_filesToUpdate=new Map;constructor(t,r=!1){super(),this._host=t,this._force=r}_validateCreateAction(t){return this._force?LR.EMPTY:super._validateCreateAction(t)}_validateFileExists(t){if(this._filesToCreate.has(t)||this._filesToUpdate.has(t))return(0,LR.of)(!0);if(this._filesToDelete.has(t))return(0,LR.of)(!1);for(let[r,n]of this._filesToRename.values())switch(t){case r:return(0,LR.of)(!1);case n:return(0,LR.of)(!0)}return this._host.exists(t)}_overwriteFile(t,r){return this._filesToUpdate.set(t,r),LR.EMPTY}_createFile(t,r){return this._filesToCreate.set(t,r),LR.EMPTY}_renameFile(t,r){return this._filesToRename.add([t,r]),LR.EMPTY}_deleteFile(t){return this._filesToCreate.has(t)?(this._filesToCreate.delete(t),this._filesToUpdate.delete(t)):this._filesToDelete.add(t),LR.EMPTY}_done(){return(0,LR.concat)((0,LR.from)([...this._filesToDelete.values()]).pipe((0,LR.concatMap)(t=>this._host.delete(t))),(0,LR.from)([...this._filesToRename.entries()]).pipe((0,LR.concatMap)(([t,[r,n]])=>this._host.rename(r,n))),(0,LR.from)([...this._filesToCreate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r))),(0,LR.from)([...this._filesToUpdate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r)))).pipe((0,LR.reduce)(()=>{}))}};jDt.HostSink=wHr});var RHr=H(qDt=>{"use strict";Object.defineProperty(qDt,"__esModule",{value:!0});qDt.DryRunSink=void 0;var Mrs=Z2(),icl=JDt(),Hrs=qb(),scl=zDt(),THr=class extends scl.HostSink{_subject=new Hrs.Subject;_fileDoesNotExistExceptionSet=new Set;_fileAlreadyExistExceptionSet=new Set;reporter=this._subject.asObservable();constructor(t,r=!1){super(typeof t=="string"?new Mrs.virtualFs.ScopedHost(new icl.NodeJsSyncHost,(0,Mrs.normalize)(t)):t,r)}_fileAlreadyExistException(t){this._fileAlreadyExistExceptionSet.add(t)}_fileDoesNotExistException(t){this._fileDoesNotExistExceptionSet.add(t)}_done(){return this._fileAlreadyExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"alreadyExist",path:t})}),this._fileDoesNotExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"doesNotExist",path:t})}),this._filesToDelete.forEach(t=>{for(let[r]of this._filesToRename)if(r==t)return;this._subject.next({kind:"delete",path:t})}),this._filesToRename.forEach(([t,r])=>{this._subject.next({kind:"rename",path:t,to:r})}),this._filesToCreate.forEach((t,r)=>{for(let[,n]of this._filesToRename)if(n==r)return;this._fileAlreadyExistExceptionSet.has(r)||this._fileDoesNotExistExceptionSet.has(r)||this._subject.next({kind:"create",path:r,content:t})}),this._filesToUpdate.forEach((t,r)=>{this._subject.next({kind:"update",path:r,content:t})}),this._subject.complete(),(0,Hrs.of)(void 0)}};qDt.DryRunSink=THr});var Yrs=H($Dt=>{"use strict";Object.defineProperty($Dt,"__esModule",{value:!0});$Dt.BaseWorkflow=void 0;var NHr=Z2(),sx=qb(),ocl=mHr(),acl=Z4(),ccl=KMr(),lcl=RHr(),ucl=zDt(),gcl=E_e(),DHr=class{_engine;_engineHost;_registry;_host;_reporter=new sx.Subject;_lifeCycle=new sx.Subject;_context;_force;_dryRun;constructor(t){this._host=t.host,this._engineHost=t.engineHost,t.registry?this._registry=t.registry:(this._registry=new NHr.schema.CoreSchemaRegistry(ccl.standardFormats),this._registry.addPostTransform(NHr.schema.transforms.addUndefinedDefaults)),this._engine=new ocl.SchematicEngine(this._engineHost,this),this._context=[],this._force=t.force||!1,this._dryRun=t.dryRun||!1}get context(){let t=this._context[this._context.length-1];if(!t)throw new Error("Cannot get context when workflow is not executing...");return t}get engine(){return this._engine}get engineHost(){return this._engineHost}get registry(){return this._registry}get reporter(){return this._reporter.asObservable()}get lifeCycle(){return this._lifeCycle.asObservable()}_createSinks(){let t=!1,r=new lcl.DryRunSink(this._host,this._force),n=r.reporter.subscribe(a=>{this._reporter.next(a),t=t||a.kind=="error"});return[r,{commit(){return n.unsubscribe(),t?(0,sx.throwError)(new acl.UnsuccessfulWorkflowExecution):(0,sx.of)()}},...this._dryRun?[]:[new ucl.HostSink(this._host,this._force)]]}execute(t){let r=this._context[this._context.length-1];r||this._lifeCycle.next({kind:"start"});let n=this._engine.createCollection(t.collection),a=t.allowPrivate||r&&r.collection===t.collection,o=n.createSchematic(t.schematic,a),l=this._createSinks();this._lifeCycle.next({kind:"workflow-start"});let A={...t,debug:t.debug||!1,logger:t.logger||r&&r.logger||new NHr.logging.NullLogger,parentContext:r};return this._context.push(A),o.call(t.options,(0,sx.of)(new gcl.HostTree(this._host)),{logger:A.logger}).pipe((0,sx.concatMap)(f=>(0,sx.concat)((0,sx.from)(l).pipe((0,sx.concatMap)(I=>I.commit(f)),(0,sx.ignoreElements)()),(0,sx.of)(f))),(0,sx.concatMap)(()=>this._dryRun?sx.EMPTY:(this._lifeCycle.next({kind:"post-tasks-start"}),this._engine.executePostTasks().pipe((0,sx.tap)({complete:()=>this._lifeCycle.next({kind:"post-tasks-end"})}),(0,sx.defaultIfEmpty)(void 0),(0,sx.last)()))),(0,sx.tap)({complete:()=>{this._lifeCycle.next({kind:"workflow-end"}),this._context.pop(),this._context.length==0&&this._lifeCycle.next({kind:"end"})}}))}};$Dt.BaseWorkflow=DHr});var Xrs=H(Qrs=>{"use strict";Object.defineProperty(Qrs,"__esModule",{value:!0})});var Urs=H(Kle=>{"use strict";var Acl=Kle&&Kle.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jrs=Kle&&Kle.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Acl(t,e,r)};Object.defineProperty(Kle,"__esModule",{value:!0});Jrs(Yrs(),Kle);Jrs(Xrs(),Kle)});var ekt=H(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.source=pcl;jG.empty=fcl;jG.chain=xHr;jG.apply=Icl;jG.mergeWith=hcl;jG.noop=qrs;jG.filter=mcl;jG.asSource=Ccl;jG.branchAndMerge=_cl;jG.when=ycl;jG.partitionApplyMerge=bcl;jG.forEach=Ecl;jG.composeFileOperators=Scl;jG.applyToSubtree=vcl;var jle=qb(),jrs=Z4(),Krs=E_e(),zrs=yH(),dcl=BDt(),kHr=dje(),i6=kDt();function pcl(e){return()=>e}function fcl(){return()=>(0,kHr.empty)()}function xHr(e){return async(t,r)=>{let n;if(Symbol.asyncIterator in e)for await(let a of e)n=(0,i6.callRule)(a,n??t,r);else for(let a of e)n=(0,i6.callRule)(a,n??t,r);return()=>n}}function Icl(e,t){return r=>(0,i6.callRule)(xHr(t),(0,i6.callSource)(e,r),r)}function hcl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callSource)(e,n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function qrs(){return()=>{}}function mcl(e){return t=>{if(Krs.HostTree.isHostTree(t))return new Krs.FilterHostTree(t,e);throw new jrs.SchematicsException("Tree type is not supported.")}}function Ccl(e){return t=>(0,i6.callRule)(e,(0,kHr.empty)(),t)}function _cl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callRule)(e,r.branch(),n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function ycl(e,t){return r=>e(r.path,r)?t(r):r}function bcl(e,t,r){return(n,a)=>{let[o,l]=(0,kHr.partition)(n,e);return(0,jle.concat)((0,i6.callRule)(t,o,a),(0,i6.callRule)(r||qrs(),l,a)).pipe((0,jle.toArray)(),(0,jle.map)(([A,f])=>(A.merge(f,a.strategy),A)))}}function Ecl(e){return t=>{t.visit((r,n)=>{if(!n)return;let a=e(n);if(a!==n){if(a===null){t.delete(r);return}a.path!=r&&t.rename(r,a.path),a.content.equals(n.content)||t.overwrite(a.path,a.content)}})}}function Scl(e){return t=>{let r=t;for(let n of e)if(r=n(r),r===null)return null;return r}}function vcl(e,t){return(r,n)=>{let a=new dcl.ScopedTree(r,e);return(0,i6.callRule)(xHr(t),a,n).pipe((0,jle.map)(o=>{if(o===a)return r;throw new jrs.SchematicsException('Original tree must be returned from all rules when using "applyToSubtree".')}))}}});var $rs=H(FHr=>{"use strict";Object.defineProperty(FHr,"__esModule",{value:!0});FHr.move=wcl;var GHr=Z2(),Bcl=ekt();function wcl(e,t){t===void 0&&(t=e,e="/");let r=(0,GHr.normalize)("/"+e),n=(0,GHr.normalize)("/"+t);return r===n?Bcl.noop:a=>(a.exists(r)?a.rename(r,n):a.getDir(r).visit(o=>{a.rename(o,(0,GHr.join)(n,o.slice(r.length)))}),a)}});var tns=H(ZHr=>{"use strict";Object.defineProperty(ZHr,"__esModule",{value:!0});ZHr.default=Ncl;var Tcl=E_e();function ens(e){return new Array(e).fill(0).map(t=>"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]).join("")}function Rcl(e,t){return Math.floor(Math.random()*(t-e))+e}function Ncl(e){return()=>{let t="root"in e?e.root:"/",r=new Tcl.HostTree,n="multiFiles"in e?typeof e.multiFiles=="number"?e.multiFiles:Rcl(2,12):1;for(let a=0;a{"use strict";Object.defineProperty(tkt,"__esModule",{value:!0});tkt.externalSchematic=Dcl;tkt.schematic=kcl;var Rxe=qb(),rns=yH(),nns=dje();function Dcl(e,t,r,n){return(a,o)=>o.engine.createCollection(e,o.schematic.collection).createSchematic(t).call(r,(0,Rxe.of)((0,nns.branch)(a)),o,n).pipe((0,Rxe.last)(),(0,Rxe.map)(f=>(a.merge(f,rns.MergeStrategy.AllowOverwriteConflict),a)))}function kcl(e,t,r){return(n,a)=>a.schematic.collection.createSchematic(e,!0).call(t,(0,Rxe.of)((0,nns.branch)(n)),a,r).pipe((0,Rxe.last)(),(0,Rxe.map)(A=>(n.merge(A,rns.MergeStrategy.AllowOverwriteConflict),n)))}});var ans=H(hT=>{"use strict";Object.defineProperty(hT,"__esModule",{value:!0});hT.InvalidPipeException=hT.UnknownPipeException=hT.OptionIsNotDefinedException=hT.TEMPLATE_FILENAME_RE=void 0;hT.applyContentTemplate=LHr;hT.contentTemplate=sns;hT.applyPathTemplate=VHr;hT.pathTemplate=ons;hT.renameTemplateFiles=Fcl;hT.template=Zcl;hT.applyTemplates=Lcl;var Nxe=Z2(),xcl=wt("node:os"),v_e=ekt();hT.TEMPLATE_FILENAME_RE=/\.template$/;var hje=class extends Nxe.BaseException{constructor(t){super(`Option "${t}" is not defined.`)}};hT.OptionIsNotDefinedException=hje;var rkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is not defined.`)}};hT.UnknownPipeException=rkt;var nkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is invalid.`)}};hT.InvalidPipeException=nkt;var Gcl=new TextDecoder("utf-8",{fatal:!0});function LHr(e){return t=>{let{path:r,content:n}=t;try{let a=Gcl.decode(n).replace(/\r?\n/g,xcl.EOL);return{path:r,content:Buffer.from((0,Nxe.template)(a,{})(e))}}catch(a){if(a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA")return t;throw a}}}function sns(e){return(0,v_e.forEach)(LHr(e))}function VHr(e,t={interpolationStart:"__",interpolationEnd:"__",pipeSeparator:"@"}){let r=t.interpolationStart,n=t.interpolationEnd,a=r.length,o=n.length;return l=>{let A=l.path,f=l.content,I=A,C=A.indexOf(r),b=A.indexOf(n,C+a+1);for(;C!=-1&&b!=-1;){let E=A.substring(C+a,b),N=e[E];if(t.pipeSeparator){let[B,...F]=E.split(t.pipeSeparator);if(N=e[B],typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(B);N=F.reduce((Q,X)=>{if(!X)return Q;if(!(X in e))throw new rkt(X);let ae=e[X];if(typeof ae!="function")throw new nkt(X);return""+ae(Q)},""+N)}else if(typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(E);A=A.substring(0,C)+N+A.substring(b+o),C=A.indexOf(t.interpolationStart),b=A.indexOf(t.interpolationEnd,C+a+1)}return{path:(0,Nxe.normalize)(A),content:f}}}function ons(e){return(0,v_e.forEach)(VHr(e))}function Fcl(){return(0,v_e.forEach)(e=>e.path.match(hT.TEMPLATE_FILENAME_RE)?{content:e.content,path:(0,Nxe.normalize)(e.path.replace(hT.TEMPLATE_FILENAME_RE,""))}:e)}function Zcl(e){return(0,v_e.chain)([sns(e),ons(e)])}function Lcl(e){return(0,v_e.forEach)((0,v_e.when)(t=>t.endsWith(".template"),(0,v_e.composeFileOperators)([LHr(e),VHr(e),t=>({content:t.content,path:t.path.replace(hT.TEMPLATE_FILENAME_RE,"")})])))}});var cns=H(PHr=>{"use strict";Object.defineProperty(PHr,"__esModule",{value:!0});PHr.url=Pcl;var Vcl=wt("url");function Pcl(e){let t=(0,Vcl.parse)(e);return r=>r.engine.createSourceFromUrl(t,r)(r)}});var lns=H(ikt=>{"use strict";Object.defineProperty(ikt,"__esModule",{value:!0});ikt.EmptyTree=void 0;var Wcl=E_e(),WHr=class extends Wcl.HostTree{constructor(){super()}};ikt.EmptyTree=WHr});var Dxe=H(wm=>{"use strict";var uns=wm&&wm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ocl=wm&&wm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gns=wm&&wm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Ans,"__esModule",{value:!0})});var akt=H(okt=>{"use strict";Object.defineProperty(okt,"__esModule",{value:!0});okt.ExportStringRef=void 0;var pns=wt("path"),OHr=class{_ref;_module;_path;constructor(t,r=process.cwd(),n=!0){let[a,o]=t.split("#",2);this._module=a[0]=="."?(0,pns.resolve)(r,a):a,this._module=wt.resolve(this._module),this._path=(0,pns.dirname)(this._module),n?this._ref=wt(this._module)[o||"default"]:this._ref=wt(this._module)}get ref(){return this._ref}get module(){return this._module}get path(){return this._path}};okt.ExportStringRef=OHr});var HHr=H(MHr=>{"use strict";Object.defineProperty(MHr,"__esModule",{value:!0});MHr.readJsonFile=Kcl;var Jcl=wt("fs"),fns=yxe(),Ucl=Z4();function Kcl(e){let t;try{t=(0,Jcl.readFileSync)(e,"utf-8")}catch(a){throw a&&typeof a=="object"&&"code"in a&&a.code==="ENOENT"?new Ucl.FileDoesNotExistException(e):a}let r=[],n=(0,fns.parse)(t,r,{allowTrailingComma:!0});if(r.length){let{error:a,offset:o}=r[0];throw new Error(`Failed to parse "${e}" as JSON AST Object. ${(0,fns.printParseErrorCode)(a)} at location: ${o}.`)}return n}});var gkt=H(Uv=>{"use strict";Object.defineProperty(Uv,"__esModule",{value:!0});Uv.FileSystemEngineHostBase=Uv.SchematicNameCollisionException=Uv.SchematicMissingDescriptionException=Uv.SchematicMissingFieldsException=Uv.CollectionMissingFieldsException=Uv.CollectionMissingSchematicsMapException=Uv.FactoryCannotBeResolvedException=Uv.SchematicMissingFactoryException=Uv.InvalidCollectionJsonException=Uv.CollectionCannotBeResolvedException=void 0;var L4=Z2(),jcl=JDt(),Ins=wt("fs"),kxe=wt("path"),mje=qb(),hns=Dxe(),mns=HHr(),YHr=class extends L4.BaseException{constructor(t){super(`Collection ${JSON.stringify(t)} cannot be resolved.`)}};Uv.CollectionCannotBeResolvedException=YHr;var Cje=class extends L4.BaseException{constructor(t,r,n){let a=`Collection JSON at path ${JSON.stringify(r)} is invalid.`;n&&(a=`${a} ${n.message}`),super(a)}};Uv.InvalidCollectionJsonException=Cje;var ckt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} is missing a factory.`)}};Uv.SchematicMissingFactoryException=ckt;var lkt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} cannot resolve the factory.`)}};Uv.FactoryCannotBeResolvedException=lkt;var QHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" does not have a schematics map.`)}};Uv.CollectionMissingSchematicsMapException=QHr;var XHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" is missing fields.`)}};Uv.CollectionMissingFieldsException=XHr;var JHr=class extends L4.BaseException{constructor(t){super(`Schematic "${t}" is missing fields.`)}};Uv.SchematicMissingFieldsException=JHr;var UHr=class extends L4.BaseException{constructor(t){super(`Schematics "${t}" does not have a description.`)}};Uv.SchematicMissingDescriptionException=UHr;var ukt=class extends L4.BaseException{constructor(t){super(`Schematics/alias ${JSON.stringify(t)} collides with another alias or schematic name.`)}};Uv.SchematicNameCollisionException=ukt;var KHr=class{_transforms=[];_contextTransforms=[];_taskFactories=new Map;listSchematicNames(t,r){let n=[];for(let a of Object.keys(t.schematics)){let o=t.schematics[a];o.hidden&&!r||o.private||(!o.extends||o.factory||o.extends&&o.extends.indexOf(":")!==-1)&&n.push(a)}return n}registerOptionsTransform(t){this._transforms.push(t)}registerContextTransform(t){this._contextTransforms.push(t)}createCollectionDescription(t,r){let n=this._resolveCollectionPath(t,r?.path),a=(0,mns.readJsonFile)(n);if(!a||typeof a!="object"||Array.isArray(a))throw new Cje(t,n);typeof a.extends=="string"&&(a.extends=[a.extends]);let o=this._transformCollectionDescription(t,{...a,path:n});if(!o||!o.name)throw new Cje(t,n);let l=Object.keys(o.schematics);for(let A of Object.keys(o.schematics)){let f=o.schematics[A].aliases||[];for(let I of f)if(l.indexOf(I)!=-1)throw new ukt(I);l.push(...f)}return o}createSchematicDescription(t,r){for(let C of Object.keys(r.schematics)){let b=r.schematics[C];if(b.aliases&&b.aliases.indexOf(t)!=-1){t=C;break}}if(!(t in r.schematics))return null;let n=(0,kxe.dirname)(r.path),a=r.schematics[t];if(!a)return null;if(a.extends){let C=a.extends.indexOf(":"),b=C!==-1?a.extends.slice(0,C):null,E=C===-1?a.extends:a.extends.slice(C+1);if(b!==null){let N=this.createCollectionDescription(b);return this.createSchematicDescription(E,N)}else return this.createSchematicDescription(E,r)}if(!a.factory)throw new ckt(t);let o=this._resolveReferenceString(a.factory,n,r);if(!o)throw new lkt(t);let l=a.schema,A;l&&((0,kxe.isAbsolute)(l)||(l=(0,kxe.join)(n,l)),A=(0,mns.readJsonFile)(l));let f=(0,kxe.join)(n,a.factory),I=(0,Ins.existsSync)(f)&&(0,Ins.statSync)(f).isDirectory()?f:(0,kxe.dirname)(f);return this._transformSchematicDescription(t,r,{...a,schema:l,schemaJson:A,name:t,path:I,factoryFn:o.ref,collection:r})}createSourceFromUrl(t){switch(t.protocol){case null:case"file:":return r=>{let n=r.schematic.description;if(n.path===void 0)throw new Error("Unsupported schematic context. Expected a FileSystemSchematicContext.");let a=(0,L4.normalize)((0,kxe.resolve)(n.path,t.path||""));return new hns.HostCreateTree(new L4.virtualFs.ScopedHost(new jcl.NodeJsSyncHost,a))}}return null}transformOptions(t,r,n){let a=async()=>{let o=r;for(let l of this._transforms){let A=l(t,o,n);o=await((0,mje.isObservable)(A)?(0,mje.lastValueFrom)(A):A)}return o};return(0,mje.from)(a())}transformContext(t){return this._contextTransforms.reduce((r,n)=>n(r),t)}getSchematicRuleFactory(t,r){return t.factoryFn}registerTaskExecutor(t,r){this._taskFactories.set(t.name,()=>(0,mje.from)(t.create(r)))}createTaskExecutor(t){let r=this._taskFactories.get(t);return r?r():(0,mje.throwError)(new hns.UnregisteredTaskException(t))}hasTaskExecutor(t){return this._taskFactories.has(t)}};Uv.FileSystemEngineHostBase=KHr});var Cns=H(Akt=>{"use strict";Object.defineProperty(Akt,"__esModule",{value:!0});Akt.NodePackageName=void 0;Akt.NodePackageName="node-package"});var _ns=H(dkt=>{"use strict";Object.defineProperty(dkt,"__esModule",{value:!0});dkt.RepositoryInitializerName=void 0;dkt.RepositoryInitializerName="repo-init"});var yns=H(pkt=>{"use strict";Object.defineProperty(pkt,"__esModule",{value:!0});pkt.RunSchematicName=void 0;pkt.RunSchematicName="run-schematic"});var bns=H((Yzu,zcl)=>{zcl.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var vns=H((Qzu,Sns)=>{"use strict";var fkt=Object.assign({},bns()),Ens=Object.keys(fkt);Object.defineProperty(fkt,"random",{get(){let e=Math.floor(Math.random()*Ens.length),t=Ens[e];return fkt[t]}});Sns.exports=fkt});var jHr=H((Xzu,Bns)=>{"use strict";Bns.exports=()=>process.platform!=="win32"?!0:!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"});var Tns=H((Jzu,wns)=>{"use strict";var zle=VK(),qcl=jHr(),$cl={info:zle.blue("\u2139"),success:zle.green("\u2714"),warning:zle.yellow("\u26A0"),error:zle.red("\u2716")},ell={info:zle.blue("i"),success:zle.green("\u221A"),warning:zle.yellow("\u203C"),error:zle.red("\xD7")};wns.exports=qcl()?$cl:ell});var Rns=H((Uzu,Ikt)=>{var tll=function(){"use strict";function e(l,A,f,I){var C;typeof A=="object"&&(f=A.depth,I=A.prototype,C=A.filter,A=A.circular);var b=[],E=[],N=typeof Buffer<"u";typeof A>"u"&&(A=!0),typeof f>"u"&&(f=1/0);function B(F,Q){if(F===null)return null;if(Q==0)return F;var X,ae;if(typeof F!="object")return F;if(e.__isArray(F))X=[];else if(e.__isRegExp(F))X=new RegExp(F.source,o(F)),F.lastIndex&&(X.lastIndex=F.lastIndex);else if(e.__isDate(F))X=new Date(F.getTime());else{if(N&&Buffer.isBuffer(F))return Buffer.allocUnsafe?X=Buffer.allocUnsafe(F.length):X=new Buffer(F.length),F.copy(X),X;typeof I>"u"?(ae=Object.getPrototypeOf(F),X=Object.create(ae)):(X=Object.create(I),ae=I)}if(A){var ne=b.indexOf(F);if(ne!=-1)return E[ne];b.push(F),E.push(X)}for(var ce in F){var fe;ae&&(fe=Object.getOwnPropertyDescriptor(ae,ce)),!(fe&&fe.set==null)&&(X[ce]=B(F[ce],Q-1))}return X}return B(l,f)}e.clonePrototype=function(A){if(A===null)return null;var f=function(){};return f.prototype=A,new f};function t(l){return Object.prototype.toString.call(l)}e.__objToStr=t;function r(l){return typeof l=="object"&&t(l)==="[object Date]"}e.__isDate=r;function n(l){return typeof l=="object"&&t(l)==="[object Array]"}e.__isArray=n;function a(l){return typeof l=="object"&&t(l)==="[object RegExp]"}e.__isRegExp=a;function o(l){var A="";return l.global&&(A+="g"),l.ignoreCase&&(A+="i"),l.multiline&&(A+="m"),A}return e.__getRegExpFlags=o,e}();typeof Ikt=="object"&&Ikt.exports&&(Ikt.exports=tll)});var Dns=H((Kzu,Nns)=>{var rll=Rns();Nns.exports=function(e,t){return e=e||{},Object.keys(t).forEach(function(r){typeof e[r]>"u"&&(e[r]=rll(t[r]))}),e}});var xns=H((jzu,kns)=>{kns.exports=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]]});var Lns=H((zzu,zHr)=>{"use strict";var nll=Dns(),_je=xns(),Fns={nul:0,control:0};zHr.exports=function(t){return Zns(t,Fns)};zHr.exports.config=function(e){return e=nll(e||{},Fns),function(r){return Zns(r,e)}};function Zns(e,t){if(typeof e!="string")return Gns(e,t);for(var r=0,n=0;n=127&&e<160?t.control:ill(e)?0:1+(e>=4352&&(e<=4447||e==9001||e==9002||e>=11904&&e<=42191&&e!=12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141))}function ill(e){var t=0,r=_je.length-1,n;if(e<_je[0][0]||e>_je[r][1])return!1;for(;r>=t;)if(n=Math.floor((t+r)/2),e>_je[n][1])t=n+1;else if(e<_je[n][0])r=n-1;else return!0;return!1}});var Pns=H((qzu,Vns)=>{"use strict";Vns.exports=({stream:e=process.stdout}={})=>!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))});var Ons=H(($zu,tYr)=>{"use strict";var sll=wt("readline"),oll=VK(),Wns=uBe(),hkt=vns(),mkt=Tns(),all=q5(),cll=Lns(),lll=Pns(),ull=jHr(),{BufferListStream:gll}=cwr(),qHr=Symbol("text"),$Hr=Symbol("prefixText"),All=3,eYr=class{constructor(){this.requests=0,this.mutedStream=new gll,this.mutedStream.pipe(process.stdout);let t=this;this.ourEmit=function(r,n,...a){let{stdin:o}=process;if(t.requests>0||o.emit===t.ourEmit){if(r==="keypress")return;r==="data"&&n.includes(All)&&process.emit("SIGINT"),Reflect.apply(t.oldEmit,this,[r,n,...a])}else Reflect.apply(process.stdin.emit,this,[r,n,...a])}}start(){this.requests++,this.requests===1&&this.realStart()}stop(){if(this.requests<=0)throw new Error("`stop` called more times than `start`");this.requests--,this.requests===0&&this.realStop()}realStart(){process.platform!=="win32"&&(this.rl=sll.createInterface({input:process.stdin,output:this.mutedStream}),this.rl.on("SIGINT",()=>{process.listenerCount("SIGINT")===0?process.emit("SIGINT"):(this.rl.close(),process.kill(process.pid,"SIGINT"))}))}realStop(){process.platform!=="win32"&&(this.rl.close(),this.rl=void 0)}},Ckt,_kt=class{constructor(t){Ckt||(Ckt=new eYr),typeof t=="string"&&(t={text:t}),this.options={text:"",color:"cyan",stream:process.stderr,discardStdin:!0,...t},this.spinner=this.options.spinner,this.color=this.options.color,this.hideCursor=this.options.hideCursor!==!1,this.interval=this.options.interval||this.spinner.interval||100,this.stream=this.options.stream,this.id=void 0,this.isEnabled=typeof this.options.isEnabled=="boolean"?this.options.isEnabled:lll({stream:this.stream}),this.isSilent=typeof this.options.isSilent=="boolean"?this.options.isSilent:!1,this.text=this.options.text,this.prefixText=this.options.prefixText,this.linesToClear=0,this.indent=this.options.indent,this.discardStdin=this.options.discardStdin,this.isDiscardingStdin=!1}get indent(){return this._indent}set indent(t=0){if(!(t>=0&&Number.isInteger(t)))throw new Error("The `indent` option must be an integer from 0 and up");this._indent=t}_updateInterval(t){t!==void 0&&(this.interval=t)}get spinner(){return this._spinner}set spinner(t){if(this.frameIndex=0,typeof t=="object"){if(t.frames===void 0)throw new Error("The given spinner must have a `frames` property");this._spinner=t}else if(!ull())this._spinner=hkt.line;else if(t===void 0)this._spinner=hkt.dots;else if(t!=="default"&&hkt[t])this._spinner=hkt[t];else throw new Error(`There is no built-in spinner named '${t}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);this._updateInterval(this._spinner.interval)}get text(){return this[qHr]}set text(t){this[qHr]=t,this.updateLineCount()}get prefixText(){return this[$Hr]}set prefixText(t){this[$Hr]=t,this.updateLineCount()}get isSpinning(){return this.id!==void 0}getFullPrefixText(t=this[$Hr],r=" "){return typeof t=="string"?t+r:typeof t=="function"?t()+r:""}updateLineCount(){let t=this.stream.columns||80,r=this.getFullPrefixText(this.prefixText,"-");this.lineCount=0;for(let n of all(r+"--"+this[qHr]).split(` +`))this.lineCount+=Math.max(1,Math.ceil(cll(n)/t))}get isEnabled(){return this._isEnabled&&!this.isSilent}set isEnabled(t){if(typeof t!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this._isEnabled=t}get isSilent(){return this._isSilent}set isSilent(t){if(typeof t!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this._isSilent=t}frame(){let{frames:t}=this.spinner,r=t[this.frameIndex];this.color&&(r=oll[this.color](r)),this.frameIndex=++this.frameIndex%t.length;let n=typeof this.prefixText=="string"&&this.prefixText!==""?this.prefixText+" ":"",a=typeof this.text=="string"?" "+this.text:"";return n+r+a}clear(){if(!this.isEnabled||!this.stream.isTTY)return this;for(let t=0;t0&&this.stream.moveCursor(0,-1),this.stream.clearLine(),this.stream.cursorTo(this.indent);return this.linesToClear=0,this}render(){return this.isSilent?this:(this.clear(),this.stream.write(this.frame()),this.linesToClear=this.lineCount,this)}start(t){return t&&(this.text=t),this.isSilent?this:this.isEnabled?this.isSpinning?this:(this.hideCursor&&Wns.hide(this.stream),this.discardStdin&&process.stdin.isTTY&&(this.isDiscardingStdin=!0,Ckt.start()),this.render(),this.id=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.stream.write(`- ${this.text} `),this)}stop(){return this.isEnabled?(clearInterval(this.id),this.id=void 0,this.frameIndex=0,this.clear(),this.hideCursor&&Wns.show(this.stream),this.discardStdin&&process.stdin.isTTY&&this.isDiscardingStdin&&(Ckt.stop(),this.isDiscardingStdin=!1),this):this}succeed(t){return this.stopAndPersist({symbol:mkt.success,text:t})}fail(t){return this.stopAndPersist({symbol:mkt.error,text:t})}warn(t){return this.stopAndPersist({symbol:mkt.warning,text:t})}info(t){return this.stopAndPersist({symbol:mkt.info,text:t})}stopAndPersist(t={}){if(this.isSilent)return this;let r=t.prefixText||this.prefixText,n=t.text||this.text,a=typeof n=="string"?" "+n:"";return this.stop(),this.stream.write(`${this.getFullPrefixText(r," ")}${t.symbol||" "}${a} -`),this}},All=function(e){return new _kt(e)};tYr.exports=All;tYr.exports.promise=(e,t)=>{if(typeof e.then!="function")throw new TypeError("Parameter `action` must be a Promise");let r=new _kt(t);return r.start(),(async()=>{try{await e,r.succeed()}catch{r.fail()}})(),r}});var Hns=H(kO=>{"use strict";var dll=kO&&kO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),pll=kO&&kO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),fll=kO&&kO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let o=r,l=t;if(e.allowPackageManagerOverride&&a.packageManager){if(o=Mns[a.packageManager],!o)throw new yje(a.packageManager);l=a.packageManager}let A=[],f={shell:!0,cwd:_ll.join(n,a.workingDirectory||"")};a.hideOutput?f.stdio=a.quiet?["ignore","ignore","pipe"]:"pipe":f.stdio=a.quiet?["ignore","ignore","inherit"]:"inherit";let I=[];return a.packageName?(a.command==="install"&&I.push(o.commands.installPackage),I.push(a.packageName)):a.command==="install"&&o.commands.installAll&&I.push(o.commands.installAll),a.allowScripts||(l==="yarn"?f.env={...process.env,npm_config_ignore_scripts:"true",YARN_ENABLE_SCRIPTS:"false"}:I.push("--ignore-scripts")),e.registry&&I.push(`--registry="${e.registry}"`),e.force&&I.push("--force"),new yll.Observable(C=>{let b=(0,Cll.default)({text:`Installing packages (${l})...`,discardStdin:process.platform!="win32"}).start(),E=(0,mll.spawn)(l,I,f).on("close",N=>{N===0?(b.succeed("Packages installed successfully."),b.stop(),C.next(),C.complete()):(a.hideOutput&&A.forEach(({stream:B,data:F})=>B.write(F)),b.fail("Package install failed, see above."),C.error(new bll.UnsuccessfulWorkflowExecution))});a.hideOutput&&(E.stdout?.on("data",N=>A.push({stream:process.stdout,data:N})),E.stderr?.on("data",N=>A.push({stream:process.stderr,data:N})))})}}});var Yns=H(Ete=>{"use strict";var Sll=Ete&&Ete.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),vll=Ete&&Ete.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Bll=Ete&&Ete.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=r.authorName,o=r.authorEmail,l=(I,C)=>{let b="ignore",E=C?"ignore":process.stderr,N={stdio:[process.stdin,b,E],shell:!0,cwd:Rll.join(t,r.workingDirectory||""),env:{...process.env,...a?{GIT_AUTHOR_NAME:a,GIT_COMMITTER_NAME:a}:{},...o?{GIT_AUTHOR_EMAIL:o,GIT_COMMITTER_EMAIL:o}:{}}};return new Promise((B,F)=>{(0,Tll.spawn)("git",I,N).on("close",Q=>{Q===0?B():F(Q)})})};if(!await l(["--version"]).then(()=>!0,()=>!1))return;if(await l(["rev-parse","--is-inside-work-tree"],!0).then(()=>!0,()=>!1)){n.logger.info(wll.tags.oneLine` +`),this}},dll=function(e){return new _kt(e)};tYr.exports=dll;tYr.exports.promise=(e,t)=>{if(typeof e.then!="function")throw new TypeError("Parameter `action` must be a Promise");let r=new _kt(t);return r.start(),(async()=>{try{await e,r.succeed()}catch{r.fail()}})(),r}});var Hns=H(kO=>{"use strict";var pll=kO&&kO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),fll=kO&&kO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ill=kO&&kO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let o=r,l=t;if(e.allowPackageManagerOverride&&a.packageManager){if(o=Mns[a.packageManager],!o)throw new yje(a.packageManager);l=a.packageManager}let A=[],f={shell:!0,cwd:yll.join(n,a.workingDirectory||"")};a.hideOutput?f.stdio=a.quiet?["ignore","ignore","pipe"]:"pipe":f.stdio=a.quiet?["ignore","ignore","inherit"]:"inherit";let I=[];return a.packageName?(a.command==="install"&&I.push(o.commands.installPackage),I.push(a.packageName)):a.command==="install"&&o.commands.installAll&&I.push(o.commands.installAll),a.allowScripts||(l==="yarn"?f.env={...process.env,npm_config_ignore_scripts:"true",YARN_ENABLE_SCRIPTS:"false"}:I.push("--ignore-scripts")),e.registry&&I.push(`--registry="${e.registry}"`),e.force&&I.push("--force"),new bll.Observable(C=>{let b=(0,_ll.default)({text:`Installing packages (${l})...`,discardStdin:process.platform!="win32"}).start(),E=(0,Cll.spawn)(l,I,f).on("close",N=>{N===0?(b.succeed("Packages installed successfully."),b.stop(),C.next(),C.complete()):(a.hideOutput&&A.forEach(({stream:B,data:F})=>B.write(F)),b.fail("Package install failed, see above."),C.error(new Ell.UnsuccessfulWorkflowExecution))});a.hideOutput&&(E.stdout?.on("data",N=>A.push({stream:process.stdout,data:N})),E.stderr?.on("data",N=>A.push({stream:process.stderr,data:N})))})}}});var Yns=H(Ete=>{"use strict";var vll=Ete&&Ete.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bll=Ete&&Ete.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wll=Ete&&Ete.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=r.authorName,o=r.authorEmail,l=(I,C)=>{let b="ignore",E=C?"ignore":process.stderr,N={stdio:[process.stdin,b,E],shell:!0,cwd:Nll.join(t,r.workingDirectory||""),env:{...process.env,...a?{GIT_AUTHOR_NAME:a,GIT_COMMITTER_NAME:a}:{},...o?{GIT_AUTHOR_EMAIL:o,GIT_COMMITTER_EMAIL:o}:{}}};return new Promise((B,F)=>{(0,Rll.spawn)("git",I,N).on("close",Q=>{Q===0?B():F(Q)})})};if(!await l(["--version"]).then(()=>!0,()=>!1))return;if(await l(["rev-parse","--is-inside-work-tree"],!0).then(()=>!0,()=>!1)){n.logger.info(Tll.tags.oneLine` Directory is already under version control. Skipping initialization of git. - `);return}try{if(await l(["init"]),await l(["add","."]),r.commit){let I=r.message||"initial commit";await l(["commit",`-m "${I}"`])}n.logger.info("Successfully initialized git.")}catch{}}}});var Qns=H(rYr=>{"use strict";Object.defineProperty(rYr,"__esModule",{value:!0});rYr.default=Dll;function Dll(){return(e,t)=>{if(!e?.name)throw new Error("RunSchematicTask requires an options object with a non-empty name property.");let r=t.engine.workflow,n=e.collection||t.schematic.collection.description.name;if(!r)throw new Error("Need Workflow to support executing schematics as post tasks.");return r.execute({collection:n,schematic:e.name,options:e.options,allowPrivate:n==t.schematic.collection.description.name})}}});var Xns=H(s6=>{"use strict";var kll=s6&&s6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xll=s6&&s6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nYr=s6&&s6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aPromise.resolve().then(()=>nYr(Hns())).then(r=>r.default(t))};static RepositoryInitializer={name:Fll.RepositoryInitializerName,create:t=>Promise.resolve().then(()=>nYr(Yns())).then(r=>r.default(t))};static RunSchematic={name:Zll.RunSchematicName,create:()=>Promise.resolve().then(()=>nYr(Qns())).then(t=>t.default())}};s6.BuiltinTaskExecutor=iYr});var Ekt=H(Gxe=>{"use strict";Object.defineProperty(Gxe,"__esModule",{value:!0});Gxe.NodeModulesEngineHost=Gxe.NodePackageDoesNotSupportSchematics=void 0;var Lll=Z2(),xxe=wt("path"),Vll=akt(),ykt=gkt(),Pll=HHr(),bkt=class extends Lll.BaseException{constructor(t){super(`Package ${JSON.stringify(t)} was found but does not support schematics.`)}};Gxe.NodePackageDoesNotSupportSchematics=bkt;var sYr=class extends ykt.FileSystemEngineHostBase{paths;constructor(t){super(),this.paths=t}resolve(t,r,n=new Set){if(r){if(n.has(r))throw n.add(r),new Error("Circular schematic reference detected: "+JSON.stringify(Array.from(n)));n.add(r)}let a=r?(0,xxe.dirname)(r):process.cwd(),o;t.startsWith(".")&&(t=(0,xxe.resolve)(a,t));let l={paths:r?[(0,xxe.dirname)(r),...this.paths||[]]:this.paths};try{let A=wt.resolve((0,xxe.join)(t,"package.json"),l),{schematics:f}=wt(A);if(!f||typeof f!="string")throw new bkt(t);if(f.startsWith(".")){let I=(0,xxe.dirname)(A);o=(0,xxe.resolve)(I,f)}else o=this.resolve(f,A,n)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)try{o=wt.resolve(t,l)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)throw new ykt.CollectionCannotBeResolvedException(t);return o}_resolveCollectionPath(t,r){let n=this.resolve(t,r);return(0,Pll.readJsonFile)(n),n}_resolveReferenceString(t,r,n){let a=new Vll.ExportStringRef(t,r);return a.ref?{ref:a.ref,path:a.module}:null}_transformCollectionDescription(t,r){if(!r.schematics||typeof r.schematics!="object")throw new ykt.CollectionMissingSchematicsMapException(t);return{...r,name:t}}_transformSchematicDescription(t,r,n){if(!n.factoryFn||!n.path||!n.description)throw new ykt.SchematicMissingFieldsException(t);return n}};Gxe.NodeModulesEngineHost=sYr});var Uns=H(Skt=>{"use strict";Object.defineProperty(Skt,"__esModule",{value:!0});Skt.partition=void 0;var Wll=MOr(),Jns=ute();function Oll(e,t){return function(r){return[Jns.filter(e,t)(r),Jns.filter(Wll.not(e,t))(r)]}}Skt.partition=Oll});var Kns=H(qle=>{"use strict";var Mll=qle&&qle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Hll=qle&&qle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.mergeAll=ns.merge=ns.max=ns.materialize=ns.mapTo=ns.map=ns.last=ns.isEmpty=ns.ignoreElements=ns.groupBy=ns.first=ns.findIndex=ns.find=ns.finalize=ns.filter=ns.expand=ns.exhaustMap=ns.exhaustAll=ns.exhaust=ns.every=ns.endWith=ns.elementAt=ns.distinctUntilKeyChanged=ns.distinctUntilChanged=ns.distinct=ns.dematerialize=ns.delayWhen=ns.delay=ns.defaultIfEmpty=ns.debounceTime=ns.debounce=ns.count=ns.connect=ns.concatWith=ns.concatMapTo=ns.concatMap=ns.concatAll=ns.concat=ns.combineLatestWith=ns.combineLatest=ns.combineLatestAll=ns.combineAll=ns.catchError=ns.bufferWhen=ns.bufferToggle=ns.bufferTime=ns.bufferCount=ns.buffer=ns.auditTime=ns.audit=void 0;ns.timeInterval=ns.throwIfEmpty=ns.throttleTime=ns.throttle=ns.tap=ns.takeWhile=ns.takeUntil=ns.takeLast=ns.take=ns.switchScan=ns.switchMapTo=ns.switchMap=ns.switchAll=ns.subscribeOn=ns.startWith=ns.skipWhile=ns.skipUntil=ns.skipLast=ns.skip=ns.single=ns.shareReplay=ns.share=ns.sequenceEqual=ns.scan=ns.sampleTime=ns.sample=ns.refCount=ns.retryWhen=ns.retry=ns.repeatWhen=ns.repeat=ns.reduce=ns.raceWith=ns.race=ns.publishReplay=ns.publishLast=ns.publishBehavior=ns.publish=ns.pluck=ns.partition=ns.pairwise=ns.onErrorResumeNext=ns.observeOn=ns.multicast=ns.min=ns.mergeWith=ns.mergeScan=ns.mergeMapTo=ns.mergeMap=ns.flatMap=void 0;ns.zipWith=ns.zipAll=ns.zip=ns.withLatestFrom=ns.windowWhen=ns.windowToggle=ns.windowTime=ns.windowCount=ns.window=ns.toArray=ns.timestamp=ns.timeoutWith=ns.timeout=void 0;var Jll=STt();Object.defineProperty(ns,"audit",{enumerable:!0,get:function(){return Jll.audit}});var Ull=YOr();Object.defineProperty(ns,"auditTime",{enumerable:!0,get:function(){return Ull.auditTime}});var Kll=QOr();Object.defineProperty(ns,"buffer",{enumerable:!0,get:function(){return Kll.buffer}});var jll=JOr();Object.defineProperty(ns,"bufferCount",{enumerable:!0,get:function(){return jll.bufferCount}});var zll=UOr();Object.defineProperty(ns,"bufferTime",{enumerable:!0,get:function(){return zll.bufferTime}});var qll=jOr();Object.defineProperty(ns,"bufferToggle",{enumerable:!0,get:function(){return qll.bufferToggle}});var $ll=zOr();Object.defineProperty(ns,"bufferWhen",{enumerable:!0,get:function(){return $ll.bufferWhen}});var eul=qOr();Object.defineProperty(ns,"catchError",{enumerable:!0,get:function(){return eul.catchError}});var tul=t3r();Object.defineProperty(ns,"combineAll",{enumerable:!0,get:function(){return tul.combineAll}});var rul=FTt();Object.defineProperty(ns,"combineLatestAll",{enumerable:!0,get:function(){return rul.combineLatestAll}});var nul=r3r();Object.defineProperty(ns,"combineLatest",{enumerable:!0,get:function(){return nul.combineLatest}});var iul=n3r();Object.defineProperty(ns,"combineLatestWith",{enumerable:!0,get:function(){return iul.combineLatestWith}});var sul=s3r();Object.defineProperty(ns,"concat",{enumerable:!0,get:function(){return sul.concat}});var oul=O8e();Object.defineProperty(ns,"concatAll",{enumerable:!0,get:function(){return oul.concatAll}});var aul=VTt();Object.defineProperty(ns,"concatMap",{enumerable:!0,get:function(){return aul.concatMap}});var cul=i3r();Object.defineProperty(ns,"concatMapTo",{enumerable:!0,get:function(){return cul.concatMapTo}});var lul=o3r();Object.defineProperty(ns,"concatWith",{enumerable:!0,get:function(){return lul.concatWith}});var uul=Y8e();Object.defineProperty(ns,"connect",{enumerable:!0,get:function(){return uul.connect}});var gul=a3r();Object.defineProperty(ns,"count",{enumerable:!0,get:function(){return gul.count}});var Aul=c3r();Object.defineProperty(ns,"debounce",{enumerable:!0,get:function(){return Aul.debounce}});var dul=l3r();Object.defineProperty(ns,"debounceTime",{enumerable:!0,get:function(){return dul.debounceTime}});var pul=zke();Object.defineProperty(ns,"defaultIfEmpty",{enumerable:!0,get:function(){return pul.defaultIfEmpty}});var ful=u3r();Object.defineProperty(ns,"delay",{enumerable:!0,get:function(){return ful.delay}});var Iul=qTt();Object.defineProperty(ns,"delayWhen",{enumerable:!0,get:function(){return Iul.delayWhen}});var hul=g3r();Object.defineProperty(ns,"dematerialize",{enumerable:!0,get:function(){return hul.dematerialize}});var mul=A3r();Object.defineProperty(ns,"distinct",{enumerable:!0,get:function(){return mul.distinct}});var Cul=nRt();Object.defineProperty(ns,"distinctUntilChanged",{enumerable:!0,get:function(){return Cul.distinctUntilChanged}});var _ul=d3r();Object.defineProperty(ns,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return _ul.distinctUntilKeyChanged}});var yul=p3r();Object.defineProperty(ns,"elementAt",{enumerable:!0,get:function(){return yul.elementAt}});var bul=f3r();Object.defineProperty(ns,"endWith",{enumerable:!0,get:function(){return bul.endWith}});var Eul=I3r();Object.defineProperty(ns,"every",{enumerable:!0,get:function(){return Eul.every}});var Sul=h3r();Object.defineProperty(ns,"exhaust",{enumerable:!0,get:function(){return Sul.exhaust}});var vul=gRt();Object.defineProperty(ns,"exhaustAll",{enumerable:!0,get:function(){return vul.exhaustAll}});var Bul=lRt();Object.defineProperty(ns,"exhaustMap",{enumerable:!0,get:function(){return Bul.exhaustMap}});var wul=m3r();Object.defineProperty(ns,"expand",{enumerable:!0,get:function(){return wul.expand}});var Tul=ute();Object.defineProperty(ns,"filter",{enumerable:!0,get:function(){return Tul.filter}});var Rul=C3r();Object.defineProperty(ns,"finalize",{enumerable:!0,get:function(){return Rul.finalize}});var Nul=fRt();Object.defineProperty(ns,"find",{enumerable:!0,get:function(){return Nul.find}});var Dul=_3r();Object.defineProperty(ns,"findIndex",{enumerable:!0,get:function(){return Dul.findIndex}});var kul=y3r();Object.defineProperty(ns,"first",{enumerable:!0,get:function(){return kul.first}});var xul=b3r();Object.defineProperty(ns,"groupBy",{enumerable:!0,get:function(){return xul.groupBy}});var Gul=UTt();Object.defineProperty(ns,"ignoreElements",{enumerable:!0,get:function(){return Gul.ignoreElements}});var Ful=E3r();Object.defineProperty(ns,"isEmpty",{enumerable:!0,get:function(){return Ful.isEmpty}});var Zul=S3r();Object.defineProperty(ns,"last",{enumerable:!0,get:function(){return Zul.last}});var Lul=lte();Object.defineProperty(ns,"map",{enumerable:!0,get:function(){return Lul.map}});var Vul=jTt();Object.defineProperty(ns,"mapTo",{enumerable:!0,get:function(){return Vul.mapTo}});var Pul=B3r();Object.defineProperty(ns,"materialize",{enumerable:!0,get:function(){return Pul.materialize}});var Wul=w3r();Object.defineProperty(ns,"max",{enumerable:!0,get:function(){return Wul.max}});var Oul=D3r();Object.defineProperty(ns,"merge",{enumerable:!0,get:function(){return Oul.merge}});var Mul=Yke();Object.defineProperty(ns,"mergeAll",{enumerable:!0,get:function(){return Mul.mergeAll}});var Hul=T3r();Object.defineProperty(ns,"flatMap",{enumerable:!0,get:function(){return Hul.flatMap}});var Yul=Kj();Object.defineProperty(ns,"mergeMap",{enumerable:!0,get:function(){return Yul.mergeMap}});var Qul=R3r();Object.defineProperty(ns,"mergeMapTo",{enumerable:!0,get:function(){return Qul.mergeMapTo}});var Xul=N3r();Object.defineProperty(ns,"mergeScan",{enumerable:!0,get:function(){return Xul.mergeScan}});var Jul=k3r();Object.defineProperty(ns,"mergeWith",{enumerable:!0,get:function(){return Jul.mergeWith}});var Uul=x3r();Object.defineProperty(ns,"min",{enumerable:!0,get:function(){return Uul.min}});var Kul=Q8e();Object.defineProperty(ns,"multicast",{enumerable:!0,get:function(){return Kul.multicast}});var jul=Oke();Object.defineProperty(ns,"observeOn",{enumerable:!0,get:function(){return jul.observeOn}});var zul=G3r();Object.defineProperty(ns,"onErrorResumeNext",{enumerable:!0,get:function(){return zul.onErrorResumeNext}});var qul=F3r();Object.defineProperty(ns,"pairwise",{enumerable:!0,get:function(){return qul.pairwise}});var $ul=Uns();Object.defineProperty(ns,"partition",{enumerable:!0,get:function(){return $ul.partition}});var egl=Z3r();Object.defineProperty(ns,"pluck",{enumerable:!0,get:function(){return egl.pluck}});var tgl=L3r();Object.defineProperty(ns,"publish",{enumerable:!0,get:function(){return tgl.publish}});var rgl=V3r();Object.defineProperty(ns,"publishBehavior",{enumerable:!0,get:function(){return rgl.publishBehavior}});var ngl=P3r();Object.defineProperty(ns,"publishLast",{enumerable:!0,get:function(){return ngl.publishLast}});var igl=W3r();Object.defineProperty(ns,"publishReplay",{enumerable:!0,get:function(){return igl.publishReplay}});var sgl=Kns();Object.defineProperty(ns,"race",{enumerable:!0,get:function(){return sgl.race}});var ogl=FRt();Object.defineProperty(ns,"raceWith",{enumerable:!0,get:function(){return ogl.raceWith}});var agl=C_e();Object.defineProperty(ns,"reduce",{enumerable:!0,get:function(){return agl.reduce}});var cgl=O3r();Object.defineProperty(ns,"repeat",{enumerable:!0,get:function(){return cgl.repeat}});var lgl=M3r();Object.defineProperty(ns,"repeatWhen",{enumerable:!0,get:function(){return lgl.repeatWhen}});var ugl=H3r();Object.defineProperty(ns,"retry",{enumerable:!0,get:function(){return ugl.retry}});var ggl=Y3r();Object.defineProperty(ns,"retryWhen",{enumerable:!0,get:function(){return ggl.retryWhen}});var Agl=awt();Object.defineProperty(ns,"refCount",{enumerable:!0,get:function(){return Agl.refCount}});var dgl=ORt();Object.defineProperty(ns,"sample",{enumerable:!0,get:function(){return dgl.sample}});var pgl=Q3r();Object.defineProperty(ns,"sampleTime",{enumerable:!0,get:function(){return pgl.sampleTime}});var fgl=X3r();Object.defineProperty(ns,"scan",{enumerable:!0,get:function(){return fgl.scan}});var Igl=J3r();Object.defineProperty(ns,"sequenceEqual",{enumerable:!0,get:function(){return Igl.sequenceEqual}});var hgl=QRt();Object.defineProperty(ns,"share",{enumerable:!0,get:function(){return hgl.share}});var mgl=K3r();Object.defineProperty(ns,"shareReplay",{enumerable:!0,get:function(){return mgl.shareReplay}});var Cgl=j3r();Object.defineProperty(ns,"single",{enumerable:!0,get:function(){return Cgl.single}});var _gl=z3r();Object.defineProperty(ns,"skip",{enumerable:!0,get:function(){return _gl.skip}});var ygl=q3r();Object.defineProperty(ns,"skipLast",{enumerable:!0,get:function(){return ygl.skipLast}});var bgl=$3r();Object.defineProperty(ns,"skipUntil",{enumerable:!0,get:function(){return bgl.skipUntil}});var Egl=e5r();Object.defineProperty(ns,"skipWhile",{enumerable:!0,get:function(){return Egl.skipWhile}});var Sgl=t5r();Object.defineProperty(ns,"startWith",{enumerable:!0,get:function(){return Sgl.startWith}});var vgl=Mke();Object.defineProperty(ns,"subscribeOn",{enumerable:!0,get:function(){return vgl.subscribeOn}});var Bgl=r5r();Object.defineProperty(ns,"switchAll",{enumerable:!0,get:function(){return Bgl.switchAll}});var wgl=rxe();Object.defineProperty(ns,"switchMap",{enumerable:!0,get:function(){return wgl.switchMap}});var Tgl=n5r();Object.defineProperty(ns,"switchMapTo",{enumerable:!0,get:function(){return Tgl.switchMapTo}});var Rgl=i5r();Object.defineProperty(ns,"switchScan",{enumerable:!0,get:function(){return Rgl.switchScan}});var Ngl=qke();Object.defineProperty(ns,"take",{enumerable:!0,get:function(){return Ngl.take}});var Dgl=_Rt();Object.defineProperty(ns,"takeLast",{enumerable:!0,get:function(){return Dgl.takeLast}});var kgl=s5r();Object.defineProperty(ns,"takeUntil",{enumerable:!0,get:function(){return kgl.takeUntil}});var xgl=o5r();Object.defineProperty(ns,"takeWhile",{enumerable:!0,get:function(){return xgl.takeWhile}});var Ggl=a5r();Object.defineProperty(ns,"tap",{enumerable:!0,get:function(){return Ggl.tap}});var Fgl=aNt();Object.defineProperty(ns,"throttle",{enumerable:!0,get:function(){return Fgl.throttle}});var Zgl=c5r();Object.defineProperty(ns,"throttleTime",{enumerable:!0,get:function(){return Zgl.throttleTime}});var Lgl=$ke();Object.defineProperty(ns,"throwIfEmpty",{enumerable:!0,get:function(){return Lgl.throwIfEmpty}});var Vgl=l5r();Object.defineProperty(ns,"timeInterval",{enumerable:!0,get:function(){return Vgl.timeInterval}});var Pgl=W8e();Object.defineProperty(ns,"timeout",{enumerable:!0,get:function(){return Pgl.timeout}});var Wgl=u5r();Object.defineProperty(ns,"timeoutWith",{enumerable:!0,get:function(){return Wgl.timeoutWith}});var Ogl=g5r();Object.defineProperty(ns,"timestamp",{enumerable:!0,get:function(){return Ogl.timestamp}});var Mgl=kTt();Object.defineProperty(ns,"toArray",{enumerable:!0,get:function(){return Mgl.toArray}});var Hgl=A5r();Object.defineProperty(ns,"window",{enumerable:!0,get:function(){return Hgl.window}});var Ygl=d5r();Object.defineProperty(ns,"windowCount",{enumerable:!0,get:function(){return Ygl.windowCount}});var Qgl=p5r();Object.defineProperty(ns,"windowTime",{enumerable:!0,get:function(){return Qgl.windowTime}});var Xgl=I5r();Object.defineProperty(ns,"windowToggle",{enumerable:!0,get:function(){return Xgl.windowToggle}});var Jgl=h5r();Object.defineProperty(ns,"windowWhen",{enumerable:!0,get:function(){return Jgl.windowWhen}});var Ugl=m5r();Object.defineProperty(ns,"withLatestFrom",{enumerable:!0,get:function(){return Ugl.withLatestFrom}});var Kgl=_5r();Object.defineProperty(ns,"zip",{enumerable:!0,get:function(){return Kgl.zip}});var jgl=C5r();Object.defineProperty(ns,"zipAll",{enumerable:!0,get:function(){return jgl.zipAll}});var zgl=y5r();Object.defineProperty(ns,"zipWith",{enumerable:!0,get:function(){return zgl.zipWith}})});var aYr=H(bje=>{"use strict";Object.defineProperty(bje,"__esModule",{value:!0});bje.InvalidInputOptions=void 0;bje.validateOptionsWithSchema=qgl;var qns=Z2(),zns=qb(),oYr=jns(),vkt=class extends qns.schema.SchemaValidationException{constructor(t,r){super(r,`Schematic input does not validate against the Schema: ${JSON.stringify(t)} + `);return}try{if(await l(["init"]),await l(["add","."]),r.commit){let I=r.message||"initial commit";await l(["commit",`-m "${I}"`])}n.logger.info("Successfully initialized git.")}catch{}}}});var Qns=H(rYr=>{"use strict";Object.defineProperty(rYr,"__esModule",{value:!0});rYr.default=kll;function kll(){return(e,t)=>{if(!e?.name)throw new Error("RunSchematicTask requires an options object with a non-empty name property.");let r=t.engine.workflow,n=e.collection||t.schematic.collection.description.name;if(!r)throw new Error("Need Workflow to support executing schematics as post tasks.");return r.execute({collection:n,schematic:e.name,options:e.options,allowPrivate:n==t.schematic.collection.description.name})}}});var Xns=H(s6=>{"use strict";var xll=s6&&s6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Gll=s6&&s6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nYr=s6&&s6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aPromise.resolve().then(()=>nYr(Hns())).then(r=>r.default(t))};static RepositoryInitializer={name:Zll.RepositoryInitializerName,create:t=>Promise.resolve().then(()=>nYr(Yns())).then(r=>r.default(t))};static RunSchematic={name:Lll.RunSchematicName,create:()=>Promise.resolve().then(()=>nYr(Qns())).then(t=>t.default())}};s6.BuiltinTaskExecutor=iYr});var Ekt=H(Gxe=>{"use strict";Object.defineProperty(Gxe,"__esModule",{value:!0});Gxe.NodeModulesEngineHost=Gxe.NodePackageDoesNotSupportSchematics=void 0;var Vll=Z2(),xxe=wt("path"),Pll=akt(),ykt=gkt(),Wll=HHr(),bkt=class extends Vll.BaseException{constructor(t){super(`Package ${JSON.stringify(t)} was found but does not support schematics.`)}};Gxe.NodePackageDoesNotSupportSchematics=bkt;var sYr=class extends ykt.FileSystemEngineHostBase{paths;constructor(t){super(),this.paths=t}resolve(t,r,n=new Set){if(r){if(n.has(r))throw n.add(r),new Error("Circular schematic reference detected: "+JSON.stringify(Array.from(n)));n.add(r)}let a=r?(0,xxe.dirname)(r):process.cwd(),o;t.startsWith(".")&&(t=(0,xxe.resolve)(a,t));let l={paths:r?[(0,xxe.dirname)(r),...this.paths||[]]:this.paths};try{let A=wt.resolve((0,xxe.join)(t,"package.json"),l),{schematics:f}=wt(A);if(!f||typeof f!="string")throw new bkt(t);if(f.startsWith(".")){let I=(0,xxe.dirname)(A);o=(0,xxe.resolve)(I,f)}else o=this.resolve(f,A,n)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)try{o=wt.resolve(t,l)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)throw new ykt.CollectionCannotBeResolvedException(t);return o}_resolveCollectionPath(t,r){let n=this.resolve(t,r);return(0,Wll.readJsonFile)(n),n}_resolveReferenceString(t,r,n){let a=new Pll.ExportStringRef(t,r);return a.ref?{ref:a.ref,path:a.module}:null}_transformCollectionDescription(t,r){if(!r.schematics||typeof r.schematics!="object")throw new ykt.CollectionMissingSchematicsMapException(t);return{...r,name:t}}_transformSchematicDescription(t,r,n){if(!n.factoryFn||!n.path||!n.description)throw new ykt.SchematicMissingFieldsException(t);return n}};Gxe.NodeModulesEngineHost=sYr});var Uns=H(Skt=>{"use strict";Object.defineProperty(Skt,"__esModule",{value:!0});Skt.partition=void 0;var Oll=MOr(),Jns=ute();function Mll(e,t){return function(r){return[Jns.filter(e,t)(r),Jns.filter(Oll.not(e,t))(r)]}}Skt.partition=Mll});var Kns=H(qle=>{"use strict";var Hll=qle&&qle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yll=qle&&qle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.mergeAll=ns.merge=ns.max=ns.materialize=ns.mapTo=ns.map=ns.last=ns.isEmpty=ns.ignoreElements=ns.groupBy=ns.first=ns.findIndex=ns.find=ns.finalize=ns.filter=ns.expand=ns.exhaustMap=ns.exhaustAll=ns.exhaust=ns.every=ns.endWith=ns.elementAt=ns.distinctUntilKeyChanged=ns.distinctUntilChanged=ns.distinct=ns.dematerialize=ns.delayWhen=ns.delay=ns.defaultIfEmpty=ns.debounceTime=ns.debounce=ns.count=ns.connect=ns.concatWith=ns.concatMapTo=ns.concatMap=ns.concatAll=ns.concat=ns.combineLatestWith=ns.combineLatest=ns.combineLatestAll=ns.combineAll=ns.catchError=ns.bufferWhen=ns.bufferToggle=ns.bufferTime=ns.bufferCount=ns.buffer=ns.auditTime=ns.audit=void 0;ns.timeInterval=ns.throwIfEmpty=ns.throttleTime=ns.throttle=ns.tap=ns.takeWhile=ns.takeUntil=ns.takeLast=ns.take=ns.switchScan=ns.switchMapTo=ns.switchMap=ns.switchAll=ns.subscribeOn=ns.startWith=ns.skipWhile=ns.skipUntil=ns.skipLast=ns.skip=ns.single=ns.shareReplay=ns.share=ns.sequenceEqual=ns.scan=ns.sampleTime=ns.sample=ns.refCount=ns.retryWhen=ns.retry=ns.repeatWhen=ns.repeat=ns.reduce=ns.raceWith=ns.race=ns.publishReplay=ns.publishLast=ns.publishBehavior=ns.publish=ns.pluck=ns.partition=ns.pairwise=ns.onErrorResumeNext=ns.observeOn=ns.multicast=ns.min=ns.mergeWith=ns.mergeScan=ns.mergeMapTo=ns.mergeMap=ns.flatMap=void 0;ns.zipWith=ns.zipAll=ns.zip=ns.withLatestFrom=ns.windowWhen=ns.windowToggle=ns.windowTime=ns.windowCount=ns.window=ns.toArray=ns.timestamp=ns.timeoutWith=ns.timeout=void 0;var Ull=STt();Object.defineProperty(ns,"audit",{enumerable:!0,get:function(){return Ull.audit}});var Kll=YOr();Object.defineProperty(ns,"auditTime",{enumerable:!0,get:function(){return Kll.auditTime}});var jll=QOr();Object.defineProperty(ns,"buffer",{enumerable:!0,get:function(){return jll.buffer}});var zll=JOr();Object.defineProperty(ns,"bufferCount",{enumerable:!0,get:function(){return zll.bufferCount}});var qll=UOr();Object.defineProperty(ns,"bufferTime",{enumerable:!0,get:function(){return qll.bufferTime}});var $ll=jOr();Object.defineProperty(ns,"bufferToggle",{enumerable:!0,get:function(){return $ll.bufferToggle}});var eul=zOr();Object.defineProperty(ns,"bufferWhen",{enumerable:!0,get:function(){return eul.bufferWhen}});var tul=qOr();Object.defineProperty(ns,"catchError",{enumerable:!0,get:function(){return tul.catchError}});var rul=t3r();Object.defineProperty(ns,"combineAll",{enumerable:!0,get:function(){return rul.combineAll}});var nul=FTt();Object.defineProperty(ns,"combineLatestAll",{enumerable:!0,get:function(){return nul.combineLatestAll}});var iul=r3r();Object.defineProperty(ns,"combineLatest",{enumerable:!0,get:function(){return iul.combineLatest}});var sul=n3r();Object.defineProperty(ns,"combineLatestWith",{enumerable:!0,get:function(){return sul.combineLatestWith}});var oul=s3r();Object.defineProperty(ns,"concat",{enumerable:!0,get:function(){return oul.concat}});var aul=O8e();Object.defineProperty(ns,"concatAll",{enumerable:!0,get:function(){return aul.concatAll}});var cul=VTt();Object.defineProperty(ns,"concatMap",{enumerable:!0,get:function(){return cul.concatMap}});var lul=i3r();Object.defineProperty(ns,"concatMapTo",{enumerable:!0,get:function(){return lul.concatMapTo}});var uul=o3r();Object.defineProperty(ns,"concatWith",{enumerable:!0,get:function(){return uul.concatWith}});var gul=Y8e();Object.defineProperty(ns,"connect",{enumerable:!0,get:function(){return gul.connect}});var Aul=a3r();Object.defineProperty(ns,"count",{enumerable:!0,get:function(){return Aul.count}});var dul=c3r();Object.defineProperty(ns,"debounce",{enumerable:!0,get:function(){return dul.debounce}});var pul=l3r();Object.defineProperty(ns,"debounceTime",{enumerable:!0,get:function(){return pul.debounceTime}});var ful=zke();Object.defineProperty(ns,"defaultIfEmpty",{enumerable:!0,get:function(){return ful.defaultIfEmpty}});var Iul=u3r();Object.defineProperty(ns,"delay",{enumerable:!0,get:function(){return Iul.delay}});var hul=qTt();Object.defineProperty(ns,"delayWhen",{enumerable:!0,get:function(){return hul.delayWhen}});var mul=g3r();Object.defineProperty(ns,"dematerialize",{enumerable:!0,get:function(){return mul.dematerialize}});var Cul=A3r();Object.defineProperty(ns,"distinct",{enumerable:!0,get:function(){return Cul.distinct}});var _ul=nRt();Object.defineProperty(ns,"distinctUntilChanged",{enumerable:!0,get:function(){return _ul.distinctUntilChanged}});var yul=d3r();Object.defineProperty(ns,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return yul.distinctUntilKeyChanged}});var bul=p3r();Object.defineProperty(ns,"elementAt",{enumerable:!0,get:function(){return bul.elementAt}});var Eul=f3r();Object.defineProperty(ns,"endWith",{enumerable:!0,get:function(){return Eul.endWith}});var Sul=I3r();Object.defineProperty(ns,"every",{enumerable:!0,get:function(){return Sul.every}});var vul=h3r();Object.defineProperty(ns,"exhaust",{enumerable:!0,get:function(){return vul.exhaust}});var Bul=gRt();Object.defineProperty(ns,"exhaustAll",{enumerable:!0,get:function(){return Bul.exhaustAll}});var wul=lRt();Object.defineProperty(ns,"exhaustMap",{enumerable:!0,get:function(){return wul.exhaustMap}});var Tul=m3r();Object.defineProperty(ns,"expand",{enumerable:!0,get:function(){return Tul.expand}});var Rul=ute();Object.defineProperty(ns,"filter",{enumerable:!0,get:function(){return Rul.filter}});var Nul=C3r();Object.defineProperty(ns,"finalize",{enumerable:!0,get:function(){return Nul.finalize}});var Dul=fRt();Object.defineProperty(ns,"find",{enumerable:!0,get:function(){return Dul.find}});var kul=_3r();Object.defineProperty(ns,"findIndex",{enumerable:!0,get:function(){return kul.findIndex}});var xul=y3r();Object.defineProperty(ns,"first",{enumerable:!0,get:function(){return xul.first}});var Gul=b3r();Object.defineProperty(ns,"groupBy",{enumerable:!0,get:function(){return Gul.groupBy}});var Ful=UTt();Object.defineProperty(ns,"ignoreElements",{enumerable:!0,get:function(){return Ful.ignoreElements}});var Zul=E3r();Object.defineProperty(ns,"isEmpty",{enumerable:!0,get:function(){return Zul.isEmpty}});var Lul=S3r();Object.defineProperty(ns,"last",{enumerable:!0,get:function(){return Lul.last}});var Vul=lte();Object.defineProperty(ns,"map",{enumerable:!0,get:function(){return Vul.map}});var Pul=jTt();Object.defineProperty(ns,"mapTo",{enumerable:!0,get:function(){return Pul.mapTo}});var Wul=B3r();Object.defineProperty(ns,"materialize",{enumerable:!0,get:function(){return Wul.materialize}});var Oul=w3r();Object.defineProperty(ns,"max",{enumerable:!0,get:function(){return Oul.max}});var Mul=D3r();Object.defineProperty(ns,"merge",{enumerable:!0,get:function(){return Mul.merge}});var Hul=Yke();Object.defineProperty(ns,"mergeAll",{enumerable:!0,get:function(){return Hul.mergeAll}});var Yul=T3r();Object.defineProperty(ns,"flatMap",{enumerable:!0,get:function(){return Yul.flatMap}});var Qul=Kj();Object.defineProperty(ns,"mergeMap",{enumerable:!0,get:function(){return Qul.mergeMap}});var Xul=R3r();Object.defineProperty(ns,"mergeMapTo",{enumerable:!0,get:function(){return Xul.mergeMapTo}});var Jul=N3r();Object.defineProperty(ns,"mergeScan",{enumerable:!0,get:function(){return Jul.mergeScan}});var Uul=k3r();Object.defineProperty(ns,"mergeWith",{enumerable:!0,get:function(){return Uul.mergeWith}});var Kul=x3r();Object.defineProperty(ns,"min",{enumerable:!0,get:function(){return Kul.min}});var jul=Q8e();Object.defineProperty(ns,"multicast",{enumerable:!0,get:function(){return jul.multicast}});var zul=Oke();Object.defineProperty(ns,"observeOn",{enumerable:!0,get:function(){return zul.observeOn}});var qul=G3r();Object.defineProperty(ns,"onErrorResumeNext",{enumerable:!0,get:function(){return qul.onErrorResumeNext}});var $ul=F3r();Object.defineProperty(ns,"pairwise",{enumerable:!0,get:function(){return $ul.pairwise}});var egl=Uns();Object.defineProperty(ns,"partition",{enumerable:!0,get:function(){return egl.partition}});var tgl=Z3r();Object.defineProperty(ns,"pluck",{enumerable:!0,get:function(){return tgl.pluck}});var rgl=L3r();Object.defineProperty(ns,"publish",{enumerable:!0,get:function(){return rgl.publish}});var ngl=V3r();Object.defineProperty(ns,"publishBehavior",{enumerable:!0,get:function(){return ngl.publishBehavior}});var igl=P3r();Object.defineProperty(ns,"publishLast",{enumerable:!0,get:function(){return igl.publishLast}});var sgl=W3r();Object.defineProperty(ns,"publishReplay",{enumerable:!0,get:function(){return sgl.publishReplay}});var ogl=Kns();Object.defineProperty(ns,"race",{enumerable:!0,get:function(){return ogl.race}});var agl=FRt();Object.defineProperty(ns,"raceWith",{enumerable:!0,get:function(){return agl.raceWith}});var cgl=C_e();Object.defineProperty(ns,"reduce",{enumerable:!0,get:function(){return cgl.reduce}});var lgl=O3r();Object.defineProperty(ns,"repeat",{enumerable:!0,get:function(){return lgl.repeat}});var ugl=M3r();Object.defineProperty(ns,"repeatWhen",{enumerable:!0,get:function(){return ugl.repeatWhen}});var ggl=H3r();Object.defineProperty(ns,"retry",{enumerable:!0,get:function(){return ggl.retry}});var Agl=Y3r();Object.defineProperty(ns,"retryWhen",{enumerable:!0,get:function(){return Agl.retryWhen}});var dgl=awt();Object.defineProperty(ns,"refCount",{enumerable:!0,get:function(){return dgl.refCount}});var pgl=ORt();Object.defineProperty(ns,"sample",{enumerable:!0,get:function(){return pgl.sample}});var fgl=Q3r();Object.defineProperty(ns,"sampleTime",{enumerable:!0,get:function(){return fgl.sampleTime}});var Igl=X3r();Object.defineProperty(ns,"scan",{enumerable:!0,get:function(){return Igl.scan}});var hgl=J3r();Object.defineProperty(ns,"sequenceEqual",{enumerable:!0,get:function(){return hgl.sequenceEqual}});var mgl=QRt();Object.defineProperty(ns,"share",{enumerable:!0,get:function(){return mgl.share}});var Cgl=K3r();Object.defineProperty(ns,"shareReplay",{enumerable:!0,get:function(){return Cgl.shareReplay}});var _gl=j3r();Object.defineProperty(ns,"single",{enumerable:!0,get:function(){return _gl.single}});var ygl=z3r();Object.defineProperty(ns,"skip",{enumerable:!0,get:function(){return ygl.skip}});var bgl=q3r();Object.defineProperty(ns,"skipLast",{enumerable:!0,get:function(){return bgl.skipLast}});var Egl=$3r();Object.defineProperty(ns,"skipUntil",{enumerable:!0,get:function(){return Egl.skipUntil}});var Sgl=e5r();Object.defineProperty(ns,"skipWhile",{enumerable:!0,get:function(){return Sgl.skipWhile}});var vgl=t5r();Object.defineProperty(ns,"startWith",{enumerable:!0,get:function(){return vgl.startWith}});var Bgl=Mke();Object.defineProperty(ns,"subscribeOn",{enumerable:!0,get:function(){return Bgl.subscribeOn}});var wgl=r5r();Object.defineProperty(ns,"switchAll",{enumerable:!0,get:function(){return wgl.switchAll}});var Tgl=rxe();Object.defineProperty(ns,"switchMap",{enumerable:!0,get:function(){return Tgl.switchMap}});var Rgl=n5r();Object.defineProperty(ns,"switchMapTo",{enumerable:!0,get:function(){return Rgl.switchMapTo}});var Ngl=i5r();Object.defineProperty(ns,"switchScan",{enumerable:!0,get:function(){return Ngl.switchScan}});var Dgl=qke();Object.defineProperty(ns,"take",{enumerable:!0,get:function(){return Dgl.take}});var kgl=_Rt();Object.defineProperty(ns,"takeLast",{enumerable:!0,get:function(){return kgl.takeLast}});var xgl=s5r();Object.defineProperty(ns,"takeUntil",{enumerable:!0,get:function(){return xgl.takeUntil}});var Ggl=o5r();Object.defineProperty(ns,"takeWhile",{enumerable:!0,get:function(){return Ggl.takeWhile}});var Fgl=a5r();Object.defineProperty(ns,"tap",{enumerable:!0,get:function(){return Fgl.tap}});var Zgl=aNt();Object.defineProperty(ns,"throttle",{enumerable:!0,get:function(){return Zgl.throttle}});var Lgl=c5r();Object.defineProperty(ns,"throttleTime",{enumerable:!0,get:function(){return Lgl.throttleTime}});var Vgl=$ke();Object.defineProperty(ns,"throwIfEmpty",{enumerable:!0,get:function(){return Vgl.throwIfEmpty}});var Pgl=l5r();Object.defineProperty(ns,"timeInterval",{enumerable:!0,get:function(){return Pgl.timeInterval}});var Wgl=W8e();Object.defineProperty(ns,"timeout",{enumerable:!0,get:function(){return Wgl.timeout}});var Ogl=u5r();Object.defineProperty(ns,"timeoutWith",{enumerable:!0,get:function(){return Ogl.timeoutWith}});var Mgl=g5r();Object.defineProperty(ns,"timestamp",{enumerable:!0,get:function(){return Mgl.timestamp}});var Hgl=kTt();Object.defineProperty(ns,"toArray",{enumerable:!0,get:function(){return Hgl.toArray}});var Ygl=A5r();Object.defineProperty(ns,"window",{enumerable:!0,get:function(){return Ygl.window}});var Qgl=d5r();Object.defineProperty(ns,"windowCount",{enumerable:!0,get:function(){return Qgl.windowCount}});var Xgl=p5r();Object.defineProperty(ns,"windowTime",{enumerable:!0,get:function(){return Xgl.windowTime}});var Jgl=I5r();Object.defineProperty(ns,"windowToggle",{enumerable:!0,get:function(){return Jgl.windowToggle}});var Ugl=h5r();Object.defineProperty(ns,"windowWhen",{enumerable:!0,get:function(){return Ugl.windowWhen}});var Kgl=m5r();Object.defineProperty(ns,"withLatestFrom",{enumerable:!0,get:function(){return Kgl.withLatestFrom}});var jgl=_5r();Object.defineProperty(ns,"zip",{enumerable:!0,get:function(){return jgl.zip}});var zgl=C5r();Object.defineProperty(ns,"zipAll",{enumerable:!0,get:function(){return zgl.zipAll}});var qgl=y5r();Object.defineProperty(ns,"zipWith",{enumerable:!0,get:function(){return qgl.zipWith}})});var aYr=H(bje=>{"use strict";Object.defineProperty(bje,"__esModule",{value:!0});bje.InvalidInputOptions=void 0;bje.validateOptionsWithSchema=$gl;var qns=Z2(),zns=qb(),oYr=jns(),vkt=class extends qns.schema.SchemaValidationException{constructor(t,r){super(r,`Schematic input does not validate against the Schema: ${JSON.stringify(t)} Errors: -`)}};bje.InvalidInputOptions=vkt;function qgl(e){return(t,r,n)=>{r=(0,qns.deepCopy)(r);let a=n?n.interactive:!0;return t.schema&&t.schemaJson?(0,zns.from)(e.compile(t.schemaJson)).pipe((0,oYr.mergeMap)(o=>o(r,{withPrompts:a})),(0,oYr.first)(),(0,oYr.map)(o=>{if(!o.success)throw new vkt(r,o.errors||[]);return r})):(0,zns.of)(r)}}});var $ns=H(wkt=>{"use strict";Object.defineProperty(wkt,"__esModule",{value:!0});wkt.NodeWorkflow=void 0;var Bkt=Z2(),$gl=JDt(),eAl=Dxe(),cYr=Xns(),tAl=Ekt(),rAl=aYr(),lYr=class extends eAl.workflow.BaseWorkflow{constructor(t,r){let n,a;typeof t=="string"?(a=(0,Bkt.normalize)(t),n=new Bkt.virtualFs.ScopedHost(new $gl.NodeJsSyncHost,a)):(n=t,a=r.root);let o=r.engineHostCreator?.(r)||new tAl.NodeModulesEngineHost(r.resolvePaths);if(super({host:n,engineHost:o,force:r.force,dryRun:r.dryRun,registry:r.registry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.NodePackage,{allowPackageManagerOverride:!0,packageManager:r.packageManager,force:r.packageManagerForce,rootDirectory:a&&(0,Bkt.getSystemPath)(a),registry:r.packageRegistry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RepositoryInitializer,{rootDirectory:a&&(0,Bkt.getSystemPath)(a)}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RunSchematic),r.optionTransforms)for(let l of r.optionTransforms)o.registerOptionsTransform(l);r.schemaValidation&&o.registerOptionsTransform((0,rAl.validateOptionsWithSchema)(this.registry)),this._context=[]}get engine(){return this._engine}get engineHost(){return this._engineHost}};wkt.NodeWorkflow=lYr});var eis=H(o6=>{"use strict";var nAl=o6&&o6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iAl=o6&&o6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),sAl=o6&&o6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;asAl(wt(n))).then(n=>(n.default?.default||n.default)())).pipe((0,gYr.catchError)(()=>(0,gYr.throwError)(()=>new oAl.UnregisteredTaskException(t))))}catch{}return super.createTaskExecutor(t)}};o6.FileSystemEngineHost=AYr});var tis=H(Nkt=>{"use strict";Object.defineProperty(Nkt,"__esModule",{value:!0});Nkt.NodeModulesTestEngineHost=void 0;var cAl=Ekt(),dYr=class extends cAl.NodeModulesEngineHost{#e=new Map;#t=[];get tasks(){return this.#t}clearTasks(){this.#t=[]}registerCollection(t,r){this.#e.set(t,r)}transformContext(t){let r=t.addTask.bind(t);return t.addTask=(n,a)=>(this.#t.push(n.toConfiguration()),r(n,a)),t}_resolveCollectionPath(t,r){return this.#e.get(t)??super._resolveCollectionPath(t,r)}};Nkt.NodeModulesTestEngineHost=dYr});var nis=H(mT=>{"use strict";var lAl=mT&&mT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dkt=mT&&mT.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lAl(t,e,r)};Object.defineProperty(mT,"__esModule",{value:!0});mT.validateOptionsWithSchema=mT.NodeModulesTestEngineHost=mT.NodePackageDoesNotSupportSchematics=mT.NodeModulesEngineHost=mT.FileSystemEngineHost=void 0;Dkt(dns(),mT);Dkt(akt(),mT);Dkt(gkt(),mT);Dkt($ns(),mT);var uAl=eis();Object.defineProperty(mT,"FileSystemEngineHost",{enumerable:!0,get:function(){return uAl.FileSystemEngineHost}});var ris=Ekt();Object.defineProperty(mT,"NodeModulesEngineHost",{enumerable:!0,get:function(){return ris.NodeModulesEngineHost}});Object.defineProperty(mT,"NodePackageDoesNotSupportSchematics",{enumerable:!0,get:function(){return ris.NodePackageDoesNotSupportSchematics}});var gAl=tis();Object.defineProperty(mT,"NodeModulesTestEngineHost",{enumerable:!0,get:function(){return gAl.NodeModulesTestEngineHost}});var AAl=aYr();Object.defineProperty(mT,"validateOptionsWithSchema",{enumerable:!0,get:function(){return AAl.validateOptionsWithSchema}})});var Cis=H(Gkt=>{"use strict";Object.defineProperty(Gkt,"__esModule",{value:!0});function Eje(e){let t=[...e.caches],r=t.shift();return r===void 0?mis():{get(n,a,o={miss:()=>Promise.resolve()}){return r.get(n,a,o).catch(()=>Eje({caches:t}).get(n,a,o))},set(n,a){return r.set(n,a).catch(()=>Eje({caches:t}).set(n,a))},delete(n){return r.delete(n).catch(()=>Eje({caches:t}).delete(n))},clear(){return r.clear().catch(()=>Eje({caches:t}).clear())}}}function mis(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}Gkt.createFallbackableCache=Eje;Gkt.createNullCache=mis});var IYr=H((t$u,_is)=>{_is.exports=Cis()});var yis=H(hYr=>{"use strict";Object.defineProperty(hYr,"__esModule",{value:!0});function fAl(e={serializable:!0}){let t={};return{get(r,n,a={miss:()=>Promise.resolve()}){let o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);let l=n(),A=a&&a.miss||(()=>Promise.resolve());return l.then(f=>A(f)).then(()=>l)},set(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}hYr.createInMemoryCache=fAl});var mYr=H((n$u,bis)=>{bis.exports=yis()});var Sis=H(V4=>{"use strict";Object.defineProperty(V4,"__esModule",{value:!0});function IAl(e,t,r){let n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===CYr.WithinHeaders?n:{}},queryParameters(){return e===CYr.WithinQueryParameters?n:{}}}}function hAl(e){let t=0,r=()=>(t++,new Promise(n=>{setTimeout(()=>{n(e(r))},Math.min(100*t,1e3))}));return e(r)}function Eis(e,t=(r,n)=>Promise.resolve()){return Object.assign(e,{wait(r){return Eis(e.then(n=>Promise.all([t(n,r),n])).then(n=>n[1]))}})}function mAl(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function CAl(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function _Al(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var yAl="4.24.0",bAl=e=>()=>e.transporter.requester.destroy(),CYr={WithinQueryParameters:0,WithinHeaders:1};V4.AuthMode=CYr;V4.addMethods=CAl;V4.createAuth=IAl;V4.createRetryablePromise=hAl;V4.createWaitablePromise=Eis;V4.destroy=bAl;V4.encode=_Al;V4.shuffle=mAl;V4.version=yAl});var Fxe=H((s$u,vis)=>{vis.exports=Sis()});var Bis=H(_Yr=>{"use strict";Object.defineProperty(_Yr,"__esModule",{value:!0});var EAl={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};_Yr.MethodEnum=EAl});var Zxe=H((a$u,wis)=>{wis.exports=Bis()});var Mis=H(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});var Ris=Zxe();function yYr(e,t){let r=e||{},n=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(n[a]=r[a])}),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Sje={Read:1,Write:2,Any:3},Lxe={Up:1,Down:2,Timeouted:3},Nis=2*60*1e3;function EYr(e,t=Lxe.Up){return{...e,status:t,lastUpdate:Date.now()}}function Dis(e){return e.status===Lxe.Up||Date.now()-e.lastUpdate>Nis}function kis(e){return e.status===Lxe.Timeouted&&Date.now()-e.lastUpdate<=Nis}function SYr(e){return typeof e=="string"?{protocol:"https",url:e,accept:Sje.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Sje.Any}}function SAl(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(EYr(r))))).then(r=>{let n=r.filter(A=>Dis(A)),a=r.filter(A=>kis(A)),o=[...n,...a],l=o.length>0?o.map(A=>SYr(A)):t;return{getTimeout(A,f){return(a.length===0&&A===0?1:a.length+3+A)*f},statelessHosts:l}})}var vAl=({isTimedOut:e,status:t})=>!e&&~~t===0,BAl=e=>{let t=e.status;return e.isTimedOut||vAl(e)||~~(t/100)!==2&&~~(t/100)!==4},wAl=({status:e})=>~~(e/100)===2,TAl=(e,t)=>BAl(e)?t.onRetry(e):wAl(e)?t.onSuccess(e):t.onFail(e);function Tis(e,t,r,n){let a=[],o=Lis(r,n),l=Vis(e,n),A=r.method,f=r.method!==Ris.MethodEnum.Get?{}:{...r.data,...n.data},I={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...f,...n.queryParameters},C=0,b=(E,N)=>{let B=E.pop();if(B===void 0)throw Ois(bYr(a));let F={data:o,headers:l,method:A,url:Fis(B,r.path,I),connectTimeout:N(C,e.timeouts.connect),responseTimeout:N(C,n.timeout)},Q=ae=>{let ne={request:F,response:ae,host:B,triesLeft:E.length};return a.push(ne),ne},X={onSuccess:ae=>xis(ae),onRetry(ae){let ne=Q(ae);return ae.isTimedOut&&C++,Promise.all([e.logger.info("Retryable failure",vYr(ne)),e.hostsCache.set(B,EYr(B,ae.isTimedOut?Lxe.Timeouted:Lxe.Down))]).then(()=>b(E,N))},onFail(ae){throw Q(ae),Gis(ae,bYr(a))}};return e.requester.send(F).then(ae=>TAl(ae,X))};return SAl(e.hostsCache,t).then(E=>b([...E.statelessHosts].reverse(),E.getTimeout))}function RAl(e){let{hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,hosts:f,queryParameters:I,headers:C}=e,b={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,headers:C,queryParameters:I,hosts:f.map(E=>SYr(E)),read(E,N){let B=yYr(N,b.timeouts.read),F=()=>Tis(b,b.hosts.filter(ae=>(ae.accept&Sje.Read)!==0),E,B);if((B.cacheable!==void 0?B.cacheable:E.cacheable)!==!0)return F();let X={request:E,mappedRequestOptions:B,transporter:{queryParameters:b.queryParameters,headers:b.headers}};return b.responsesCache.get(X,()=>b.requestsCache.get(X,()=>b.requestsCache.set(X,F()).then(ae=>Promise.all([b.requestsCache.delete(X),ae]),ae=>Promise.all([b.requestsCache.delete(X),Promise.reject(ae)])).then(([ae,ne])=>ne)),{miss:ae=>b.responsesCache.set(X,ae)})},write(E,N){return Tis(b,b.hosts.filter(B=>(B.accept&Sje.Write)!==0),E,yYr(N,b.timeouts.write))}};return b}function NAl(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let n=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(n)===-1&&(t.value=`${t.value}${n}`),t}};return t}function xis(e){try{return JSON.parse(e.content)}catch(t){throw Wis(t.message,e)}}function Gis({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch{}return Pis(n,t,r)}function DAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Fis(e,t,r){let n=Zis(r),a=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return n.length&&(a+=`?${n}`),a}function Zis(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>DAl("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function Lis(e,t){if(e.method===Ris.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function Vis(e,t){let r={...e.headers,...t.headers},n={};return Object.keys(r).forEach(a=>{let o=r[a];n[a.toLowerCase()]=o}),n}function bYr(e){return e.map(t=>vYr(t))}function vYr(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function Pis(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Wis(e,t){return{name:"DeserializationError",message:e,response:t}}function Ois(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:e}}Kv.CallEnum=Sje;Kv.HostStatusEnum=Lxe;Kv.createApiError=Pis;Kv.createDeserializationError=Wis;Kv.createMappedRequestOptions=yYr;Kv.createRetryError=Ois;Kv.createStatefulHost=EYr;Kv.createStatelessHost=SYr;Kv.createTransporter=RAl;Kv.createUserAgent=NAl;Kv.deserializeFailure=Gis;Kv.deserializeSuccess=xis;Kv.isStatefulHostTimeouted=kis;Kv.isStatefulHostUp=Dis;Kv.serializeData=Lis;Kv.serializeHeaders=Vis;Kv.serializeQueryParameters=Zis;Kv.serializeUrl=Fis;Kv.stackFrameWithoutCredentials=vYr;Kv.stackTraceWithoutCredentials=bYr});var Vxe=H((l$u,His)=>{His.exports=Mis()});var Yis=H($le=>{"use strict";Object.defineProperty($le,"__esModule",{value:!0});var Pxe=Fxe(),kAl=Vxe(),vje=Zxe(),xAl=e=>{let t=e.region||"us",r=Pxe.createAuth(Pxe.AuthMode.WithinHeaders,e.appId,e.apiKey),n=kAl.createTransporter({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a=e.appId;return Pxe.addMethods({appId:a,transporter:n},e.methods)},GAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:"2/abtests",data:t},r),FAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Delete,path:Pxe.encode("2/abtests/%s",t)},r),ZAl=e=>(t,r)=>e.transporter.read({method:vje.MethodEnum.Get,path:Pxe.encode("2/abtests/%s",t)},r),LAl=e=>t=>e.transporter.read({method:vje.MethodEnum.Get,path:"2/abtests"},t),VAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:Pxe.encode("2/abtests/%s/stop",t)},r);$le.addABTest=GAl;$le.createAnalyticsClient=xAl;$le.deleteABTest=FAl;$le.getABTest=ZAl;$le.getABTests=LAl;$le.stopABTest=VAl});var Xis=H((g$u,Qis)=>{Qis.exports=Yis()});var Uis=H(Bje=>{"use strict";Object.defineProperty(Bje,"__esModule",{value:!0});var BYr=Fxe(),PAl=Vxe(),Jis=Zxe(),WAl=e=>{let t=e.region||"us",r=BYr.createAuth(BYr.AuthMode.WithinHeaders,e.appId,e.apiKey),n=PAl.createTransporter({hosts:[{url:`personalization.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}});return BYr.addMethods({appId:e.appId,transporter:n},e.methods)},OAl=e=>t=>e.transporter.read({method:Jis.MethodEnum.Get,path:"1/strategies/personalization"},t),MAl=e=>(t,r)=>e.transporter.write({method:Jis.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);Bje.createPersonalizationClient=WAl;Bje.getPersonalizationStrategy=OAl;Bje.setPersonalizationStrategy=MAl});var jis=H((d$u,Kis)=>{Kis.exports=Uis()});var uss=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});var mg=Fxe(),WV=Vxe(),ap=Zxe(),HAl=wt("crypto");function Fkt(e){let t=r=>e.request(r).then(n=>{if(e.batch!==void 0&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})});return t({})}var YAl=e=>{let t=e.appId,r=mg.createAuth(e.authMode!==void 0?e.authMode:mg.AuthMode.WithinHeaders,t,e.apiKey),n=WV.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:WV.CallEnum.Read},{url:`${t}.algolia.net`,accept:WV.CallEnum.Write}].concat(mg.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return mg.addMethods(a,e.methods)};function zis(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function qis(){return{name:"ObjectNotFoundError",message:"Object not found."}}function $is(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var QAl=e=>(t,r)=>{let{queryParameters:n,...a}=r||{},o={acl:t,...n!==void 0?{queryParameters:n}:{}},l=(A,f)=>mg.createRetryablePromise(I=>wje(e)(A.key,f).catch(C=>{if(C.status!==404)throw C;return I()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/keys",data:o},a),l)},XAl=e=>(t,r,n)=>{let a=WV.createMappedRequestOptions(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},JAl=e=>(t,r,n)=>e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n),UAl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(n,a)=>Wxe(e)(n.taskID,a)),Zkt=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),a)},KAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Rules]}),jAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Settings]}),zAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Synonyms]}),qAl=e=>(t,r)=>t.method===ap.MethodEnum.Get?e.transporter.read(t,r):e.transporter.write(t,r),$Al=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).then(l).catch(A=>{if(A.status!==404)throw A}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/keys/%s",t)},r),n)},edl=e=>(t,r,n)=>{let a=r.map(o=>({action:"deleteEntry",body:{objectID:o}}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},tdl=()=>(e,t)=>{let r=WV.serializeQueryParameters(t),n=HAl.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(n+r).toString("base64")},wje=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/keys/%s",t)},r),ess=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/task/%s",t.toString())},r),rdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"/1/dictionaries/*/settings"},t),ndl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/logs"},t),idl=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,n=t.match(r);if(n===null)throw $is();return parseInt(n[1],10)-Math.round(new Date().getTime()/1e3)},sdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/top"},t),odl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/clusters/mapping/%s",t)},r),adl=e=>t=>{let{retrieveMappings:r,...n}=t||{};return r===!0&&(n.getClusters=!0),e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/pending"},n)},Tje=e=>(t,r={})=>{let n={transporter:e.transporter,appId:e.appId,indexName:t};return mg.addMethods(n,r.methods)},cdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/keys"},t),ldl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters"},t),udl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/indexes"},t),gdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping"},t),Adl=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),a)},ddl=e=>(t,r)=>{let n=(a,o)=>Promise.all(Object.keys(a.taskID).map(l=>Tje(e)(l,{methods:{waitTask:CT}}).waitTask(a.taskID[l],o)));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),n)},pdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),fdl=e=>(t,r)=>{let n=t.map(a=>({...a,params:WV.serializeQueryParameters(a.params||{})}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Idl=e=>(t,r)=>Promise.all(t.map(n=>{let{facetName:a,facetQuery:o,...l}=n.params;return Tje(e)(n.indexName,{methods:{searchForFacetValues:ass}}).searchForFacetValues(a,o,{...r,...l})})),hdl=e=>(t,r)=>{let n=WV.createMappedRequestOptions(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Delete,path:"1/clusters/mapping"},n)},mdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},Cdl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).catch(A=>{if(A.status!==404)throw A;return l()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/keys/%s/restore",t)},r),n)},_dl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},ydl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n),bdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Edl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:t},r),(n,a)=>Wxe(e)(n.taskID,a)),Sdl=e=>(t,r)=>{let n=Object.assign({},r),{queryParameters:a,...o}=r||{},l=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],f=C=>Object.keys(n).filter(b=>A.indexOf(b)!==-1).every(b=>{if(Array.isArray(C[b])&&Array.isArray(n[b])){let E=C[b];return E.length===n[b].length&&E.every((N,B)=>N===n[b][B])}else return C[b]===n[b]}),I=(C,b)=>mg.createRetryablePromise(E=>wje(e)(t,b).then(N=>f(N)?Promise.resolve():E()));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/keys/%s",t),data:l},o),I)},Wxe=e=>(t,r)=>mg.createRetryablePromise(n=>ess(e)(t,r).then(a=>a.status!=="published"?n():void 0)),tss=e=>(t,r)=>{let n=(a,o)=>CT(e)(a.taskID,o);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),n)},vdl=e=>t=>Fkt({shouldStop:r=>r.cursor===void 0,...t,request:r=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/browse",e.indexName),data:r},t)}),Bdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},wdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Lkt=e=>(t,r,n)=>{let{batchSize:a,...o}=n||{},l={taskIDs:[],objectIDs:[]},A=(f=0)=>{let I=[],C;for(C=f;C({action:r,body:b})),o).then(b=>(l.objectIDs=l.objectIDs.concat(b.objectIDs),l.taskIDs.push(b.taskID),C++,A(C)))};return mg.createWaitablePromise(A(),(f,I)=>Promise.all(f.taskIDs.map(C=>CT(e)(C,I))))},Tdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/clear",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Rdl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ndl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ddl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(n,a)=>CT(e)(n.taskID,a)),kdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),xdl=e=>(t,r)=>mg.createWaitablePromise(rss(e)([t],r).then(n=>({taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),rss=e=>(t,r)=>{let n=t.map(a=>({objectID:a}));return Lkt(e)(n,w_e.DeleteObject,r)},Gdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Fdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Zdl=e=>t=>nss(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Ldl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Vdl=e=>(t,r)=>{let{query:n,paginate:a,...o}=r||{},l=0,A=()=>oss(e)(n||"",{...o,page:l}).then(f=>{for(let[I,C]of Object.entries(f.hits))if(t(C))return{object:C,position:parseInt(I,10),page:l};if(l++,a===!1||l>=f.nbPages)throw qis();return A()});return A()},Pdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/%s",e.indexName,t)},r),Wdl=()=>(e,t)=>{for(let[r,n]of Object.entries(e.hits))if(n.objectID===t)return parseInt(r,10);return-1},Odl=e=>(t,r)=>{let{attributesToRetrieve:n,...a}=r||{},o=t.map(l=>({indexName:e.indexName,objectID:l,...n?{attributesToRetrieve:n}:{}}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:o}},a)},Mdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),nss=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),Hdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),iss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),Ydl=e=>(t,r)=>mg.createWaitablePromise(sss(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),sss=e=>(t,r)=>{let{createIfNotExists:n,...a}=r||{},o=n?w_e.PartialUpdateObject:w_e.PartialUpdateObjectNoCreate;return Lkt(e)(t,o,a)},Qdl=e=>(t,r)=>{let{safe:n,autoGenerateObjectIDIfNotExist:a,batchSize:o,...l}=r||{},A=(B,F,Q,X)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",B),data:{operation:Q,destination:F}},X),(ae,ne)=>CT(e)(ae.taskID,ne)),f=Math.random().toString(36).substring(7),I=`${e.indexName}_tmp_${f}`,C=wYr({appId:e.appId,transporter:e.transporter,indexName:I}),b=[],E=A(e.indexName,I,"copy",{...l,scope:["settings","synonyms","rules"]});b.push(E);let N=(n?E.wait(l):E).then(()=>{let B=C(t,{...l,autoGenerateObjectIDIfNotExist:a,batchSize:o});return b.push(B),n?B.wait(l):B}).then(()=>{let B=A(I,e.indexName,"move",l);return b.push(B),n?B.wait(l):B}).then(()=>Promise.all(b)).then(([B,F,Q])=>({objectIDs:F.objectIDs,taskIDs:[B.taskID,...F.taskIDs,Q.taskID]}));return mg.createWaitablePromise(N,(B,F)=>Promise.all(b.map(Q=>Q.wait(F))))},Xdl=e=>(t,r)=>TYr(e)(t,{...r,clearExistingRules:!0}),Jdl=e=>(t,r)=>RYr(e)(t,{...r,clearExistingSynonyms:!0}),Udl=e=>(t,r)=>mg.createWaitablePromise(wYr(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),wYr=e=>(t,r)=>{let{autoGenerateObjectIDIfNotExist:n,...a}=r||{},o=n?w_e.AddObject:w_e.UpdateObject;if(o===w_e.UpdateObject){for(let l of t)if(l.objectID===void 0)return mg.createWaitablePromise(Promise.reject(zis()))}return Lkt(e)(t,o,a)},Kdl=e=>(t,r)=>TYr(e)([t],r),TYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingRules:a,...o}=r||{},l=WV.createMappedRequestOptions(o);return n&&(l.queryParameters.forwardToReplicas=1),a&&(l.queryParameters.clearExistingRules=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/batch",e.indexName),data:t},l),(A,f)=>CT(e)(A.taskID,f))},jdl=e=>(t,r)=>RYr(e)([t],r),RYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingSynonyms:a,replaceExistingSynonyms:o,...l}=r||{},A=WV.createMappedRequestOptions(l);return n&&(A.queryParameters.forwardToReplicas=1),(o||a)&&(A.queryParameters.replaceExistingSynonyms=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},A),(f,I)=>CT(e)(f.taskID,I))},oss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ass=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),css=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),lss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),zdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/indexes/%s/settings",e.indexName),data:t},o),(l,A)=>CT(e)(l.taskID,A))},CT=e=>(t,r)=>mg.createRetryablePromise(n=>iss(e)(t,r).then(a=>a.status!=="published"?n():void 0)),qdl={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},w_e={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Vkt={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},$dl={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},epl={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};cu.ApiKeyACLEnum=qdl;cu.BatchActionEnum=w_e;cu.ScopeEnum=Vkt;cu.StrategyEnum=$dl;cu.SynonymEnum=epl;cu.addApiKey=QAl;cu.assignUserID=XAl;cu.assignUserIDs=JAl;cu.batch=tss;cu.browseObjects=vdl;cu.browseRules=Bdl;cu.browseSynonyms=wdl;cu.chunkedBatch=Lkt;cu.clearDictionaryEntries=UAl;cu.clearObjects=Tdl;cu.clearRules=Rdl;cu.clearSynonyms=Ndl;cu.copyIndex=Zkt;cu.copyRules=KAl;cu.copySettings=jAl;cu.copySynonyms=zAl;cu.createBrowsablePromise=Fkt;cu.createMissingObjectIDError=zis;cu.createObjectNotFoundError=qis;cu.createSearchClient=YAl;cu.createValidUntilNotFoundError=$is;cu.customRequest=qAl;cu.deleteApiKey=$Al;cu.deleteBy=Ddl;cu.deleteDictionaryEntries=edl;cu.deleteIndex=kdl;cu.deleteObject=xdl;cu.deleteObjects=rss;cu.deleteRule=Gdl;cu.deleteSynonym=Fdl;cu.exists=Zdl;cu.findAnswers=Ldl;cu.findObject=Vdl;cu.generateSecuredApiKey=tdl;cu.getApiKey=wje;cu.getAppTask=ess;cu.getDictionarySettings=rdl;cu.getLogs=ndl;cu.getObject=Pdl;cu.getObjectPosition=Wdl;cu.getObjects=Odl;cu.getRule=Mdl;cu.getSecuredApiKeyRemainingValidity=idl;cu.getSettings=nss;cu.getSynonym=Hdl;cu.getTask=iss;cu.getTopUserIDs=sdl;cu.getUserID=odl;cu.hasPendingMappings=adl;cu.initIndex=Tje;cu.listApiKeys=cdl;cu.listClusters=ldl;cu.listIndices=udl;cu.listUserIDs=gdl;cu.moveIndex=Adl;cu.multipleBatch=ddl;cu.multipleGetObjects=pdl;cu.multipleQueries=fdl;cu.multipleSearchForFacetValues=Idl;cu.partialUpdateObject=Ydl;cu.partialUpdateObjects=sss;cu.removeUserID=hdl;cu.replaceAllObjects=Qdl;cu.replaceAllRules=Xdl;cu.replaceAllSynonyms=Jdl;cu.replaceDictionaryEntries=mdl;cu.restoreApiKey=Cdl;cu.saveDictionaryEntries=_dl;cu.saveObject=Udl;cu.saveObjects=wYr;cu.saveRule=Kdl;cu.saveRules=TYr;cu.saveSynonym=jdl;cu.saveSynonyms=RYr;cu.search=oss;cu.searchDictionaryEntries=ydl;cu.searchForFacetValues=ass;cu.searchRules=css;cu.searchSynonyms=lss;cu.searchUserIDs=bdl;cu.setDictionarySettings=Edl;cu.setSettings=zdl;cu.updateApiKey=Sdl;cu.waitAppTask=Wxe;cu.waitTask=CT});var Ass=H((f$u,gss)=>{gss.exports=uss()});var dss=H(Pkt=>{"use strict";Object.defineProperty(Pkt,"__esModule",{value:!0});function tpl(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var rpl={Debug:1,Info:2,Error:3};Pkt.LogLevelEnum=rpl;Pkt.createNullLogger=tpl});var NYr=H((h$u,pss)=>{pss.exports=dss()});var mss=H(DYr=>{"use strict";Object.defineProperty(DYr,"__esModule",{value:!0});var fss=wt("http"),Iss=wt("https"),npl=wt("url"),hss={keepAlive:!0},ipl=new fss.Agent(hss),spl=new Iss.Agent(hss);function opl({agent:e,httpAgent:t,httpsAgent:r,requesterOptions:n={}}={}){let a=t||e||ipl,o=r||e||spl;return{send(l){return new Promise(A=>{let f=npl.parse(l.url),I=f.query===null?f.pathname:`${f.pathname}?${f.query}`,C={...n,agent:f.protocol==="https:"?o:a,hostname:f.hostname,path:I,method:l.method,headers:{...n&&n.headers?n.headers:{},...l.headers},...f.port!==void 0?{port:f.port||""}:{}},b=(f.protocol==="https:"?Iss:fss).request(C,F=>{let Q=[];F.on("data",X=>{Q=Q.concat(X)}),F.on("end",()=>{clearTimeout(N),clearTimeout(B),A({status:F.statusCode||0,content:Buffer.concat(Q).toString(),isTimedOut:!1})})}),E=(F,Q)=>setTimeout(()=>{b.abort(),A({status:0,content:Q,isTimedOut:!0})},F*1e3),N=E(l.connectTimeout,"Connection timeout"),B;b.on("error",F=>{clearTimeout(N),clearTimeout(B),A({status:0,content:F.message,isTimedOut:!1})}),b.once("response",()=>{clearTimeout(N),B=E(l.responseTimeout,"Socket timeout")}),l.data!==void 0&&b.write(l.data),b.end()})},destroy(){return a.destroy(),o.destroy(),Promise.resolve()}}}DYr.createNodeHttpRequester=opl});var kYr=H((C$u,Css)=>{Css.exports=mss()});var Tss=H((_$u,wss)=>{"use strict";var _ss=IYr(),apl=mYr(),eue=Fxe(),cpl=NYr(),lpl=kYr(),Wkt=Vxe(),Okt=Zxe(),upl=e=>{let t=e.appId,r=eue.createAuth(e.authMode!==void 0?e.authMode:eue.AuthMode.WithinHeaders,t,e.apiKey),n=Wkt.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:Wkt.CallEnum.Read},{url:`${t}.algolia.net`,accept:Wkt.CallEnum.Write}].concat(eue.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return eue.addMethods(a,e.methods)},Rje=e=>(t,r)=>{let n=t.map(a=>({...a,threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},yss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,fallbackParameters:{},model:"bought-together"})),r),bss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"related-products"})),r),Ess=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-facets",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},Sss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-items",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},vss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"looking-similar"})),r),Bss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"recommended-for-you",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)};function Ste(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:lpl.createNodeHttpRequester(),logger:cpl.createNullLogger(),responsesCache:_ss.createNullCache(),requestsCache:_ss.createNullCache(),hostsCache:apl.createInMemoryCache(),userAgent:Wkt.createUserAgent(eue.version).add({segment:"Recommend",version:eue.version}).add({segment:"Node.js",version:process.versions.node})};return upl({...n,...r,methods:{destroy:eue.destroy,getFrequentlyBoughtTogether:yss,getRecommendations:Rje,getRelatedProducts:bss,getTrendingFacets:Ess,getTrendingItems:Sss,getLookingSimilar:vss,getRecommendedForYou:Bss}})}Ste.version=eue.version;Ste.getFrequentlyBoughtTogether=yss;Ste.getRecommendations=Rje;Ste.getRelatedProducts=bss;Ste.getTrendingFacets=Ess;Ste.getTrendingItems=Sss;Ste.getLookingSimilar=vss;Ste.getRecommendedForYou=Bss;wss.exports=Ste});var Nss=H((y$u,xYr)=>{var Rss=Tss();xYr.exports=Rss;xYr.exports.default=Rss});var Gss=H((b$u,xss)=>{"use strict";var Dss=IYr(),gpl=mYr(),Oxe=Xis(),FYr=Fxe(),GYr=jis(),ju=Ass(),Apl=NYr(),T_e=Nss(),dpl=kYr(),ppl=Vxe();function kss(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:dpl.createNodeHttpRequester(),logger:Apl.createNullLogger(),responsesCache:Dss.createNullCache(),requestsCache:Dss.createNullCache(),hostsCache:gpl.createInMemoryCache(),userAgent:ppl.createUserAgent(FYr.version).add({segment:"Node.js",version:process.versions.node})},a={...n,...r},o=()=>l=>GYr.createPersonalizationClient({...n,...l,methods:{getPersonalizationStrategy:GYr.getPersonalizationStrategy,setPersonalizationStrategy:GYr.setPersonalizationStrategy}});return ju.createSearchClient({...a,methods:{search:ju.multipleQueries,searchForFacetValues:ju.multipleSearchForFacetValues,multipleBatch:ju.multipleBatch,multipleGetObjects:ju.multipleGetObjects,multipleQueries:ju.multipleQueries,copyIndex:ju.copyIndex,copySettings:ju.copySettings,copyRules:ju.copyRules,copySynonyms:ju.copySynonyms,moveIndex:ju.moveIndex,listIndices:ju.listIndices,getLogs:ju.getLogs,listClusters:ju.listClusters,multipleSearchForFacetValues:ju.multipleSearchForFacetValues,getApiKey:ju.getApiKey,addApiKey:ju.addApiKey,listApiKeys:ju.listApiKeys,updateApiKey:ju.updateApiKey,deleteApiKey:ju.deleteApiKey,restoreApiKey:ju.restoreApiKey,assignUserID:ju.assignUserID,assignUserIDs:ju.assignUserIDs,getUserID:ju.getUserID,searchUserIDs:ju.searchUserIDs,listUserIDs:ju.listUserIDs,getTopUserIDs:ju.getTopUserIDs,removeUserID:ju.removeUserID,hasPendingMappings:ju.hasPendingMappings,generateSecuredApiKey:ju.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:ju.getSecuredApiKeyRemainingValidity,destroy:FYr.destroy,clearDictionaryEntries:ju.clearDictionaryEntries,deleteDictionaryEntries:ju.deleteDictionaryEntries,getDictionarySettings:ju.getDictionarySettings,getAppTask:ju.getAppTask,replaceDictionaryEntries:ju.replaceDictionaryEntries,saveDictionaryEntries:ju.saveDictionaryEntries,searchDictionaryEntries:ju.searchDictionaryEntries,setDictionarySettings:ju.setDictionarySettings,waitAppTask:ju.waitAppTask,customRequest:ju.customRequest,initIndex:l=>A=>ju.initIndex(l)(A,{methods:{batch:ju.batch,delete:ju.deleteIndex,findAnswers:ju.findAnswers,getObject:ju.getObject,getObjects:ju.getObjects,saveObject:ju.saveObject,saveObjects:ju.saveObjects,search:ju.search,searchForFacetValues:ju.searchForFacetValues,waitTask:ju.waitTask,setSettings:ju.setSettings,getSettings:ju.getSettings,partialUpdateObject:ju.partialUpdateObject,partialUpdateObjects:ju.partialUpdateObjects,deleteObject:ju.deleteObject,deleteObjects:ju.deleteObjects,deleteBy:ju.deleteBy,clearObjects:ju.clearObjects,browseObjects:ju.browseObjects,getObjectPosition:ju.getObjectPosition,findObject:ju.findObject,exists:ju.exists,saveSynonym:ju.saveSynonym,saveSynonyms:ju.saveSynonyms,getSynonym:ju.getSynonym,searchSynonyms:ju.searchSynonyms,browseSynonyms:ju.browseSynonyms,deleteSynonym:ju.deleteSynonym,clearSynonyms:ju.clearSynonyms,replaceAllObjects:ju.replaceAllObjects,replaceAllSynonyms:ju.replaceAllSynonyms,searchRules:ju.searchRules,getRule:ju.getRule,deleteRule:ju.deleteRule,saveRule:ju.saveRule,saveRules:ju.saveRules,replaceAllRules:ju.replaceAllRules,browseRules:ju.browseRules,clearRules:ju.clearRules}}),initAnalytics:()=>l=>Oxe.createAnalyticsClient({...n,...l,methods:{addABTest:Oxe.addABTest,getABTest:Oxe.getABTest,getABTests:Oxe.getABTests,stopABTest:Oxe.stopABTest,deleteABTest:Oxe.deleteABTest}}),initPersonalization:o,initRecommendation:()=>l=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),o()(l)),getRecommendations:T_e.getRecommendations,getFrequentlyBoughtTogether:T_e.getFrequentlyBoughtTogether,getLookingSimilar:T_e.getLookingSimilar,getRecommendedForYou:T_e.getRecommendedForYou,getRelatedProducts:T_e.getRelatedProducts,getTrendingFacets:T_e.getTrendingFacets,getTrendingItems:T_e.getTrendingItems}})}kss.version=FYr.version;xss.exports=kss});var LYr=H((E$u,ZYr)=>{var Fss=Gss();ZYr.exports=Fss;ZYr.exports.default=Fss});var Zss=H(Mkt=>{"use strict";Object.defineProperty(Mkt,"__esModule",{value:!0});Mkt.search=void 0;var fpl=(Pa(),vi(Va)),Ipl=fpl.__importDefault(LYr()),VYr={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},hpl=(0,Ipl.default)(VYr.appId,VYr.apiKey).initIndex(VYr.indexName),mpl=async(e,t=0)=>await hpl.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10});Mkt.search=mpl});var WYr=H(Hkt=>{"use strict";Object.defineProperty(Hkt,"__esModule",{value:!0});Hkt.useMinistore=Cpl;Hkt.useMinistoreSetAll=_pl;var PYr=sC(),Lss=yGr();function Cpl(e,t){let r=(0,PYr.useContext)(Lss.MinistoreContext);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof e>"u")return r.getAll();let n=(0,PYr.useCallback)(o=>{r.set(e,o)},[e,r.set]),a=r.get(e);return typeof a>"u"&&(a=t),[a,n]}function _pl(){let e=(0,PYr.useContext)(Lss.MinistoreContext);if(e===null)throw new Error("Expected this hook to run with a ministore context attached");return e.setAll}});var Oss=H(Nje=>{"use strict";Object.defineProperty(Nje,"__esModule",{value:!0});Nje.UncontrolledTextInput=void 0;var Pss=sC(),OYr=sC(),Vss=lH(),R_e=VK(),Wss=({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A})=>{let[{cursorOffset:f,cursorWidth:I},C]=OYr.useState({cursorOffset:(e||"").length,cursorWidth:0});OYr.useEffect(()=>{C(F=>{if(!r||!o)return F;let Q=e||"";return F.cursorOffset>Q.length-1?{cursorOffset:Q.length,cursorWidth:0}:F})},[e,r,o]);let b=a?I:0,E=n?n.repeat(e.length):e,N=E,B=t?R_e.grey(t):void 0;if(o&&r){B=t.length>0?R_e.inverse(t[0])+R_e.grey(t.slice(1)):R_e.inverse(" "),N=E.length>0?"":R_e.inverse(" ");let F=0;for(let Q of E)F>=f-b&&F<=f?N+=R_e.inverse(Q):N+=Q,F++;E.length>0&&f===E.length&&(N+=R_e.inverse(" "))}return Vss.useInput((F,Q)=>{if(Q.upArrow||Q.downArrow||Q.ctrl&&F==="c"||Q.tab||Q.shift&&Q.tab)return;if(Q.return){A&&A(e);return}let X=f,ae=e,ne=0;Q.leftArrow?o&&X--:Q.rightArrow?o&&X++:Q.backspace||Q.delete?f>0&&(ae=e.slice(0,f-1)+e.slice(f,e.length),X--):(ae=e.slice(0,f)+F+e.slice(f,e.length),X+=F.length,F.length>1&&(ne=F.length)),f<0&&(X=0),f>e.length&&(X=e.length),C({cursorOffset:X,cursorWidth:ne}),ae!==e&&l(ae)},{isActive:r}),Pss.createElement(Vss.Text,null,t?E.length>0?N:B:N)};Nje.default=Wss;Nje.UncontrolledTextInput=({initialValue:e="",...t})=>{let[r,n]=OYr.useState(e);return Pss.createElement(Wss,Object.assign({},t,{value:r,onChange:n}))}});var Hss=H(MYr=>{"use strict";Object.defineProperty(MYr,"__esModule",{value:!0});var vte=(Pa(),vi(Va)),ypl=el(),Dje=Bn(),bpl=vte.__importStar(A1t()),Epl=($c(),vi(rg)),Mss=Zss(),kje=["regular","dev","peer"],xje=class extends ypl.BaseCommand{async execute(){bpl.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vte.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vte.__importStar(N1t())),{useKeypress:n}=await Promise.resolve().then(()=>vte.__importStar(cDe())),{useMinistore:a}=await Promise.resolve().then(()=>vte.__importStar(WYr())),{renderForm:o}=await Promise.resolve().then(()=>vte.__importStar(D1t())),{default:l}=await Promise.resolve().then(()=>vte.__importStar(Oss())),{Box:A,Text:f}=await Promise.resolve().then(()=>vte.__importStar(lH())),{default:I,useEffect:C,useState:b}=await Promise.resolve().then(()=>vte.__importStar(sC())),E=await Dje.Configuration.find(this.context.cwd,this.context.plugins),N=()=>I.createElement(A,{flexDirection:"row"},I.createElement(A,{flexDirection:"column",width:48},I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},""),"/",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to move between packages.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to select a package.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," again to change the target."))),I.createElement(A,{flexDirection:"column"},I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to abort.")))),B=()=>I.createElement(I.Fragment,null,I.createElement(A,{width:15},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Owner")),I.createElement(A,{width:11},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Version")),I.createElement(A,{width:10},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Downloads"))),F=()=>I.createElement(A,{width:17},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Target")),Q=({hit:be,active:Se})=>{let[De,k]=a(be.name,null);n({active:Se},(Me,je)=>{if(je.name!=="space")return;if(!De){k(kje[0]);return}let St=kje.indexOf(De)+1;St===kje.length?k(null):k(kje[St])},[De,k]);let et=Dje.structUtils.parseIdent(be.name),ct=Dje.structUtils.prettyIdent(E,et);return I.createElement(A,null,I.createElement(A,{width:45},I.createElement(f,{bold:!0,wrap:"wrap"},ct)),I.createElement(A,{width:14,marginLeft:1},I.createElement(f,{bold:!0,wrap:"truncate"},be.owner.name)),I.createElement(A,{width:10,marginLeft:1},I.createElement(f,{italic:!0,wrap:"truncate"},be.version)),I.createElement(A,{width:16,marginLeft:1},I.createElement(f,null,be.humanDownloadsLast30Days)))},X=({name:be,active:Se})=>{let[De]=a(be,null),k=Dje.structUtils.parseIdent(be);return I.createElement(A,null,I.createElement(A,{width:47},I.createElement(f,{bold:!0}," - ",Dje.structUtils.prettyIdent(E,k))),kje.map(et=>I.createElement(A,{key:et,width:14,marginLeft:1},I.createElement(f,null," ",I.createElement(t,{active:De===et})," ",I.createElement(f,{bold:!0},et)))))},ae=()=>I.createElement(A,{marginTop:1},I.createElement(f,null,"Powered by Algolia.")),ce=await o(({useSubmit:be})=>{let Se=a();be(Se);let De=Array.from(Se.keys()).filter(Nr=>Se.get(Nr)!==null),[k,et]=b(""),[ct,Me]=b(0),[je,St]=b([]),At=Nr=>{Nr.match(/\t| /)||et(Nr)},Yt=async()=>{Me(0);let Nr=await(0,Mss.search)(k);Nr.query===k&&St(Nr.hits)},Tr=async()=>{let Nr=await(0,Mss.search)(k,ct+1);Nr.query===k&&Nr.page-1===ct&&(Me(Nr.page),St([...je,...Nr.hits]))};return C(()=>{k?Yt():St([])},[k]),I.createElement(A,{flexDirection:"column"},I.createElement(N,null),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(f,{bold:!0},"Search: "),I.createElement(A,{width:41},I.createElement(l,{value:k,onChange:At,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),I.createElement(B,null)),je.length?I.createElement(r,{radius:2,loop:!1,children:je.map(Nr=>I.createElement(Q,{key:Nr.name,hit:Nr,active:!1})),willReachEnd:Tr}):I.createElement(f,{color:"gray"},"Start typing..."),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(A,{width:49},I.createElement(f,{bold:!0},"Selected:")),I.createElement(F,null)),De.length?De.map(Nr=>I.createElement(X,{key:Nr,name:Nr,active:!1})):I.createElement(f,{color:"gray"},"No selected packages..."),I.createElement(ae,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;let fe=Array.from(ce.keys()).filter(be=>ce.get(be)==="regular"),ue=Array.from(ce.keys()).filter(be=>ce.get(be)==="dev"),de=Array.from(ce.keys()).filter(be=>ce.get(be)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ue.length&&await this.cli.run(["add","--dev",...ue]),de&&await this.cli.run(["add","--peer",...de]),0}};xje.paths=[["search"]];xje.usage=Epl.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` +`)}};bje.InvalidInputOptions=vkt;function $gl(e){return(t,r,n)=>{r=(0,qns.deepCopy)(r);let a=n?n.interactive:!0;return t.schema&&t.schemaJson?(0,zns.from)(e.compile(t.schemaJson)).pipe((0,oYr.mergeMap)(o=>o(r,{withPrompts:a})),(0,oYr.first)(),(0,oYr.map)(o=>{if(!o.success)throw new vkt(r,o.errors||[]);return r})):(0,zns.of)(r)}}});var $ns=H(wkt=>{"use strict";Object.defineProperty(wkt,"__esModule",{value:!0});wkt.NodeWorkflow=void 0;var Bkt=Z2(),eAl=JDt(),tAl=Dxe(),cYr=Xns(),rAl=Ekt(),nAl=aYr(),lYr=class extends tAl.workflow.BaseWorkflow{constructor(t,r){let n,a;typeof t=="string"?(a=(0,Bkt.normalize)(t),n=new Bkt.virtualFs.ScopedHost(new eAl.NodeJsSyncHost,a)):(n=t,a=r.root);let o=r.engineHostCreator?.(r)||new rAl.NodeModulesEngineHost(r.resolvePaths);if(super({host:n,engineHost:o,force:r.force,dryRun:r.dryRun,registry:r.registry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.NodePackage,{allowPackageManagerOverride:!0,packageManager:r.packageManager,force:r.packageManagerForce,rootDirectory:a&&(0,Bkt.getSystemPath)(a),registry:r.packageRegistry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RepositoryInitializer,{rootDirectory:a&&(0,Bkt.getSystemPath)(a)}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RunSchematic),r.optionTransforms)for(let l of r.optionTransforms)o.registerOptionsTransform(l);r.schemaValidation&&o.registerOptionsTransform((0,nAl.validateOptionsWithSchema)(this.registry)),this._context=[]}get engine(){return this._engine}get engineHost(){return this._engineHost}};wkt.NodeWorkflow=lYr});var eis=H(o6=>{"use strict";var iAl=o6&&o6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),sAl=o6&&o6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),oAl=o6&&o6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aoAl(wt(n))).then(n=>(n.default?.default||n.default)())).pipe((0,gYr.catchError)(()=>(0,gYr.throwError)(()=>new aAl.UnregisteredTaskException(t))))}catch{}return super.createTaskExecutor(t)}};o6.FileSystemEngineHost=AYr});var tis=H(Nkt=>{"use strict";Object.defineProperty(Nkt,"__esModule",{value:!0});Nkt.NodeModulesTestEngineHost=void 0;var lAl=Ekt(),dYr=class extends lAl.NodeModulesEngineHost{#e=new Map;#t=[];get tasks(){return this.#t}clearTasks(){this.#t=[]}registerCollection(t,r){this.#e.set(t,r)}transformContext(t){let r=t.addTask.bind(t);return t.addTask=(n,a)=>(this.#t.push(n.toConfiguration()),r(n,a)),t}_resolveCollectionPath(t,r){return this.#e.get(t)??super._resolveCollectionPath(t,r)}};Nkt.NodeModulesTestEngineHost=dYr});var nis=H(mT=>{"use strict";var uAl=mT&&mT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dkt=mT&&mT.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&uAl(t,e,r)};Object.defineProperty(mT,"__esModule",{value:!0});mT.validateOptionsWithSchema=mT.NodeModulesTestEngineHost=mT.NodePackageDoesNotSupportSchematics=mT.NodeModulesEngineHost=mT.FileSystemEngineHost=void 0;Dkt(dns(),mT);Dkt(akt(),mT);Dkt(gkt(),mT);Dkt($ns(),mT);var gAl=eis();Object.defineProperty(mT,"FileSystemEngineHost",{enumerable:!0,get:function(){return gAl.FileSystemEngineHost}});var ris=Ekt();Object.defineProperty(mT,"NodeModulesEngineHost",{enumerable:!0,get:function(){return ris.NodeModulesEngineHost}});Object.defineProperty(mT,"NodePackageDoesNotSupportSchematics",{enumerable:!0,get:function(){return ris.NodePackageDoesNotSupportSchematics}});var AAl=tis();Object.defineProperty(mT,"NodeModulesTestEngineHost",{enumerable:!0,get:function(){return AAl.NodeModulesTestEngineHost}});var dAl=aYr();Object.defineProperty(mT,"validateOptionsWithSchema",{enumerable:!0,get:function(){return dAl.validateOptionsWithSchema}})});var Cis=H(Gkt=>{"use strict";Object.defineProperty(Gkt,"__esModule",{value:!0});function Eje(e){let t=[...e.caches],r=t.shift();return r===void 0?mis():{get(n,a,o={miss:()=>Promise.resolve()}){return r.get(n,a,o).catch(()=>Eje({caches:t}).get(n,a,o))},set(n,a){return r.set(n,a).catch(()=>Eje({caches:t}).set(n,a))},delete(n){return r.delete(n).catch(()=>Eje({caches:t}).delete(n))},clear(){return r.clear().catch(()=>Eje({caches:t}).clear())}}}function mis(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}Gkt.createFallbackableCache=Eje;Gkt.createNullCache=mis});var IYr=H((r$u,_is)=>{_is.exports=Cis()});var yis=H(hYr=>{"use strict";Object.defineProperty(hYr,"__esModule",{value:!0});function IAl(e={serializable:!0}){let t={};return{get(r,n,a={miss:()=>Promise.resolve()}){let o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);let l=n(),A=a&&a.miss||(()=>Promise.resolve());return l.then(f=>A(f)).then(()=>l)},set(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}hYr.createInMemoryCache=IAl});var mYr=H((i$u,bis)=>{bis.exports=yis()});var Sis=H(V4=>{"use strict";Object.defineProperty(V4,"__esModule",{value:!0});function hAl(e,t,r){let n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===CYr.WithinHeaders?n:{}},queryParameters(){return e===CYr.WithinQueryParameters?n:{}}}}function mAl(e){let t=0,r=()=>(t++,new Promise(n=>{setTimeout(()=>{n(e(r))},Math.min(100*t,1e3))}));return e(r)}function Eis(e,t=(r,n)=>Promise.resolve()){return Object.assign(e,{wait(r){return Eis(e.then(n=>Promise.all([t(n,r),n])).then(n=>n[1]))}})}function CAl(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function _Al(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function yAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var bAl="4.24.0",EAl=e=>()=>e.transporter.requester.destroy(),CYr={WithinQueryParameters:0,WithinHeaders:1};V4.AuthMode=CYr;V4.addMethods=_Al;V4.createAuth=hAl;V4.createRetryablePromise=mAl;V4.createWaitablePromise=Eis;V4.destroy=EAl;V4.encode=yAl;V4.shuffle=CAl;V4.version=bAl});var Fxe=H((o$u,vis)=>{vis.exports=Sis()});var Bis=H(_Yr=>{"use strict";Object.defineProperty(_Yr,"__esModule",{value:!0});var SAl={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};_Yr.MethodEnum=SAl});var Zxe=H((c$u,wis)=>{wis.exports=Bis()});var Mis=H(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});var Ris=Zxe();function yYr(e,t){let r=e||{},n=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(n[a]=r[a])}),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Sje={Read:1,Write:2,Any:3},Lxe={Up:1,Down:2,Timeouted:3},Nis=2*60*1e3;function EYr(e,t=Lxe.Up){return{...e,status:t,lastUpdate:Date.now()}}function Dis(e){return e.status===Lxe.Up||Date.now()-e.lastUpdate>Nis}function kis(e){return e.status===Lxe.Timeouted&&Date.now()-e.lastUpdate<=Nis}function SYr(e){return typeof e=="string"?{protocol:"https",url:e,accept:Sje.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Sje.Any}}function vAl(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(EYr(r))))).then(r=>{let n=r.filter(A=>Dis(A)),a=r.filter(A=>kis(A)),o=[...n,...a],l=o.length>0?o.map(A=>SYr(A)):t;return{getTimeout(A,f){return(a.length===0&&A===0?1:a.length+3+A)*f},statelessHosts:l}})}var BAl=({isTimedOut:e,status:t})=>!e&&~~t===0,wAl=e=>{let t=e.status;return e.isTimedOut||BAl(e)||~~(t/100)!==2&&~~(t/100)!==4},TAl=({status:e})=>~~(e/100)===2,RAl=(e,t)=>wAl(e)?t.onRetry(e):TAl(e)?t.onSuccess(e):t.onFail(e);function Tis(e,t,r,n){let a=[],o=Lis(r,n),l=Vis(e,n),A=r.method,f=r.method!==Ris.MethodEnum.Get?{}:{...r.data,...n.data},I={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...f,...n.queryParameters},C=0,b=(E,N)=>{let B=E.pop();if(B===void 0)throw Ois(bYr(a));let F={data:o,headers:l,method:A,url:Fis(B,r.path,I),connectTimeout:N(C,e.timeouts.connect),responseTimeout:N(C,n.timeout)},Q=ae=>{let ne={request:F,response:ae,host:B,triesLeft:E.length};return a.push(ne),ne},X={onSuccess:ae=>xis(ae),onRetry(ae){let ne=Q(ae);return ae.isTimedOut&&C++,Promise.all([e.logger.info("Retryable failure",vYr(ne)),e.hostsCache.set(B,EYr(B,ae.isTimedOut?Lxe.Timeouted:Lxe.Down))]).then(()=>b(E,N))},onFail(ae){throw Q(ae),Gis(ae,bYr(a))}};return e.requester.send(F).then(ae=>RAl(ae,X))};return vAl(e.hostsCache,t).then(E=>b([...E.statelessHosts].reverse(),E.getTimeout))}function NAl(e){let{hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,hosts:f,queryParameters:I,headers:C}=e,b={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,headers:C,queryParameters:I,hosts:f.map(E=>SYr(E)),read(E,N){let B=yYr(N,b.timeouts.read),F=()=>Tis(b,b.hosts.filter(ae=>(ae.accept&Sje.Read)!==0),E,B);if((B.cacheable!==void 0?B.cacheable:E.cacheable)!==!0)return F();let X={request:E,mappedRequestOptions:B,transporter:{queryParameters:b.queryParameters,headers:b.headers}};return b.responsesCache.get(X,()=>b.requestsCache.get(X,()=>b.requestsCache.set(X,F()).then(ae=>Promise.all([b.requestsCache.delete(X),ae]),ae=>Promise.all([b.requestsCache.delete(X),Promise.reject(ae)])).then(([ae,ne])=>ne)),{miss:ae=>b.responsesCache.set(X,ae)})},write(E,N){return Tis(b,b.hosts.filter(B=>(B.accept&Sje.Write)!==0),E,yYr(N,b.timeouts.write))}};return b}function DAl(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let n=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(n)===-1&&(t.value=`${t.value}${n}`),t}};return t}function xis(e){try{return JSON.parse(e.content)}catch(t){throw Wis(t.message,e)}}function Gis({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch{}return Pis(n,t,r)}function kAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Fis(e,t,r){let n=Zis(r),a=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return n.length&&(a+=`?${n}`),a}function Zis(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>kAl("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function Lis(e,t){if(e.method===Ris.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function Vis(e,t){let r={...e.headers,...t.headers},n={};return Object.keys(r).forEach(a=>{let o=r[a];n[a.toLowerCase()]=o}),n}function bYr(e){return e.map(t=>vYr(t))}function vYr(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function Pis(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Wis(e,t){return{name:"DeserializationError",message:e,response:t}}function Ois(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:e}}Kv.CallEnum=Sje;Kv.HostStatusEnum=Lxe;Kv.createApiError=Pis;Kv.createDeserializationError=Wis;Kv.createMappedRequestOptions=yYr;Kv.createRetryError=Ois;Kv.createStatefulHost=EYr;Kv.createStatelessHost=SYr;Kv.createTransporter=NAl;Kv.createUserAgent=DAl;Kv.deserializeFailure=Gis;Kv.deserializeSuccess=xis;Kv.isStatefulHostTimeouted=kis;Kv.isStatefulHostUp=Dis;Kv.serializeData=Lis;Kv.serializeHeaders=Vis;Kv.serializeQueryParameters=Zis;Kv.serializeUrl=Fis;Kv.stackFrameWithoutCredentials=vYr;Kv.stackTraceWithoutCredentials=bYr});var Vxe=H((u$u,His)=>{His.exports=Mis()});var Yis=H($le=>{"use strict";Object.defineProperty($le,"__esModule",{value:!0});var Pxe=Fxe(),xAl=Vxe(),vje=Zxe(),GAl=e=>{let t=e.region||"us",r=Pxe.createAuth(Pxe.AuthMode.WithinHeaders,e.appId,e.apiKey),n=xAl.createTransporter({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a=e.appId;return Pxe.addMethods({appId:a,transporter:n},e.methods)},FAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:"2/abtests",data:t},r),ZAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Delete,path:Pxe.encode("2/abtests/%s",t)},r),LAl=e=>(t,r)=>e.transporter.read({method:vje.MethodEnum.Get,path:Pxe.encode("2/abtests/%s",t)},r),VAl=e=>t=>e.transporter.read({method:vje.MethodEnum.Get,path:"2/abtests"},t),PAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:Pxe.encode("2/abtests/%s/stop",t)},r);$le.addABTest=FAl;$le.createAnalyticsClient=GAl;$le.deleteABTest=ZAl;$le.getABTest=LAl;$le.getABTests=VAl;$le.stopABTest=PAl});var Xis=H((A$u,Qis)=>{Qis.exports=Yis()});var Uis=H(Bje=>{"use strict";Object.defineProperty(Bje,"__esModule",{value:!0});var BYr=Fxe(),WAl=Vxe(),Jis=Zxe(),OAl=e=>{let t=e.region||"us",r=BYr.createAuth(BYr.AuthMode.WithinHeaders,e.appId,e.apiKey),n=WAl.createTransporter({hosts:[{url:`personalization.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}});return BYr.addMethods({appId:e.appId,transporter:n},e.methods)},MAl=e=>t=>e.transporter.read({method:Jis.MethodEnum.Get,path:"1/strategies/personalization"},t),HAl=e=>(t,r)=>e.transporter.write({method:Jis.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);Bje.createPersonalizationClient=OAl;Bje.getPersonalizationStrategy=MAl;Bje.setPersonalizationStrategy=HAl});var jis=H((p$u,Kis)=>{Kis.exports=Uis()});var uss=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});var mg=Fxe(),WV=Vxe(),ap=Zxe(),YAl=wt("crypto");function Fkt(e){let t=r=>e.request(r).then(n=>{if(e.batch!==void 0&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})});return t({})}var QAl=e=>{let t=e.appId,r=mg.createAuth(e.authMode!==void 0?e.authMode:mg.AuthMode.WithinHeaders,t,e.apiKey),n=WV.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:WV.CallEnum.Read},{url:`${t}.algolia.net`,accept:WV.CallEnum.Write}].concat(mg.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return mg.addMethods(a,e.methods)};function zis(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function qis(){return{name:"ObjectNotFoundError",message:"Object not found."}}function $is(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var XAl=e=>(t,r)=>{let{queryParameters:n,...a}=r||{},o={acl:t,...n!==void 0?{queryParameters:n}:{}},l=(A,f)=>mg.createRetryablePromise(I=>wje(e)(A.key,f).catch(C=>{if(C.status!==404)throw C;return I()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/keys",data:o},a),l)},JAl=e=>(t,r,n)=>{let a=WV.createMappedRequestOptions(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},UAl=e=>(t,r,n)=>e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n),KAl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(n,a)=>Wxe(e)(n.taskID,a)),Zkt=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),a)},jAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Rules]}),zAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Settings]}),qAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Synonyms]}),$Al=e=>(t,r)=>t.method===ap.MethodEnum.Get?e.transporter.read(t,r):e.transporter.write(t,r),edl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).then(l).catch(A=>{if(A.status!==404)throw A}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/keys/%s",t)},r),n)},tdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"deleteEntry",body:{objectID:o}}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},rdl=()=>(e,t)=>{let r=WV.serializeQueryParameters(t),n=YAl.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(n+r).toString("base64")},wje=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/keys/%s",t)},r),ess=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/task/%s",t.toString())},r),ndl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"/1/dictionaries/*/settings"},t),idl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/logs"},t),sdl=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,n=t.match(r);if(n===null)throw $is();return parseInt(n[1],10)-Math.round(new Date().getTime()/1e3)},odl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/top"},t),adl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/clusters/mapping/%s",t)},r),cdl=e=>t=>{let{retrieveMappings:r,...n}=t||{};return r===!0&&(n.getClusters=!0),e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/pending"},n)},Tje=e=>(t,r={})=>{let n={transporter:e.transporter,appId:e.appId,indexName:t};return mg.addMethods(n,r.methods)},ldl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/keys"},t),udl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters"},t),gdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/indexes"},t),Adl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping"},t),ddl=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),a)},pdl=e=>(t,r)=>{let n=(a,o)=>Promise.all(Object.keys(a.taskID).map(l=>Tje(e)(l,{methods:{waitTask:CT}}).waitTask(a.taskID[l],o)));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),n)},fdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),Idl=e=>(t,r)=>{let n=t.map(a=>({...a,params:WV.serializeQueryParameters(a.params||{})}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},hdl=e=>(t,r)=>Promise.all(t.map(n=>{let{facetName:a,facetQuery:o,...l}=n.params;return Tje(e)(n.indexName,{methods:{searchForFacetValues:ass}}).searchForFacetValues(a,o,{...r,...l})})),mdl=e=>(t,r)=>{let n=WV.createMappedRequestOptions(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Delete,path:"1/clusters/mapping"},n)},Cdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},_dl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).catch(A=>{if(A.status!==404)throw A;return l()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/keys/%s/restore",t)},r),n)},ydl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},bdl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n),Edl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Sdl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:t},r),(n,a)=>Wxe(e)(n.taskID,a)),vdl=e=>(t,r)=>{let n=Object.assign({},r),{queryParameters:a,...o}=r||{},l=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],f=C=>Object.keys(n).filter(b=>A.indexOf(b)!==-1).every(b=>{if(Array.isArray(C[b])&&Array.isArray(n[b])){let E=C[b];return E.length===n[b].length&&E.every((N,B)=>N===n[b][B])}else return C[b]===n[b]}),I=(C,b)=>mg.createRetryablePromise(E=>wje(e)(t,b).then(N=>f(N)?Promise.resolve():E()));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/keys/%s",t),data:l},o),I)},Wxe=e=>(t,r)=>mg.createRetryablePromise(n=>ess(e)(t,r).then(a=>a.status!=="published"?n():void 0)),tss=e=>(t,r)=>{let n=(a,o)=>CT(e)(a.taskID,o);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),n)},Bdl=e=>t=>Fkt({shouldStop:r=>r.cursor===void 0,...t,request:r=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/browse",e.indexName),data:r},t)}),wdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Tdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Lkt=e=>(t,r,n)=>{let{batchSize:a,...o}=n||{},l={taskIDs:[],objectIDs:[]},A=(f=0)=>{let I=[],C;for(C=f;C({action:r,body:b})),o).then(b=>(l.objectIDs=l.objectIDs.concat(b.objectIDs),l.taskIDs.push(b.taskID),C++,A(C)))};return mg.createWaitablePromise(A(),(f,I)=>Promise.all(f.taskIDs.map(C=>CT(e)(C,I))))},Rdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/clear",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Ndl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ddl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},kdl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(n,a)=>CT(e)(n.taskID,a)),xdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Gdl=e=>(t,r)=>mg.createWaitablePromise(rss(e)([t],r).then(n=>({taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),rss=e=>(t,r)=>{let n=t.map(a=>({objectID:a}));return Lkt(e)(n,w_e.DeleteObject,r)},Fdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Zdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Ldl=e=>t=>nss(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Vdl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Pdl=e=>(t,r)=>{let{query:n,paginate:a,...o}=r||{},l=0,A=()=>oss(e)(n||"",{...o,page:l}).then(f=>{for(let[I,C]of Object.entries(f.hits))if(t(C))return{object:C,position:parseInt(I,10),page:l};if(l++,a===!1||l>=f.nbPages)throw qis();return A()});return A()},Wdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/%s",e.indexName,t)},r),Odl=()=>(e,t)=>{for(let[r,n]of Object.entries(e.hits))if(n.objectID===t)return parseInt(r,10);return-1},Mdl=e=>(t,r)=>{let{attributesToRetrieve:n,...a}=r||{},o=t.map(l=>({indexName:e.indexName,objectID:l,...n?{attributesToRetrieve:n}:{}}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:o}},a)},Hdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),nss=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),Ydl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),iss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),Qdl=e=>(t,r)=>mg.createWaitablePromise(sss(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),sss=e=>(t,r)=>{let{createIfNotExists:n,...a}=r||{},o=n?w_e.PartialUpdateObject:w_e.PartialUpdateObjectNoCreate;return Lkt(e)(t,o,a)},Xdl=e=>(t,r)=>{let{safe:n,autoGenerateObjectIDIfNotExist:a,batchSize:o,...l}=r||{},A=(B,F,Q,X)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",B),data:{operation:Q,destination:F}},X),(ae,ne)=>CT(e)(ae.taskID,ne)),f=Math.random().toString(36).substring(7),I=`${e.indexName}_tmp_${f}`,C=wYr({appId:e.appId,transporter:e.transporter,indexName:I}),b=[],E=A(e.indexName,I,"copy",{...l,scope:["settings","synonyms","rules"]});b.push(E);let N=(n?E.wait(l):E).then(()=>{let B=C(t,{...l,autoGenerateObjectIDIfNotExist:a,batchSize:o});return b.push(B),n?B.wait(l):B}).then(()=>{let B=A(I,e.indexName,"move",l);return b.push(B),n?B.wait(l):B}).then(()=>Promise.all(b)).then(([B,F,Q])=>({objectIDs:F.objectIDs,taskIDs:[B.taskID,...F.taskIDs,Q.taskID]}));return mg.createWaitablePromise(N,(B,F)=>Promise.all(b.map(Q=>Q.wait(F))))},Jdl=e=>(t,r)=>TYr(e)(t,{...r,clearExistingRules:!0}),Udl=e=>(t,r)=>RYr(e)(t,{...r,clearExistingSynonyms:!0}),Kdl=e=>(t,r)=>mg.createWaitablePromise(wYr(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),wYr=e=>(t,r)=>{let{autoGenerateObjectIDIfNotExist:n,...a}=r||{},o=n?w_e.AddObject:w_e.UpdateObject;if(o===w_e.UpdateObject){for(let l of t)if(l.objectID===void 0)return mg.createWaitablePromise(Promise.reject(zis()))}return Lkt(e)(t,o,a)},jdl=e=>(t,r)=>TYr(e)([t],r),TYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingRules:a,...o}=r||{},l=WV.createMappedRequestOptions(o);return n&&(l.queryParameters.forwardToReplicas=1),a&&(l.queryParameters.clearExistingRules=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/batch",e.indexName),data:t},l),(A,f)=>CT(e)(A.taskID,f))},zdl=e=>(t,r)=>RYr(e)([t],r),RYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingSynonyms:a,replaceExistingSynonyms:o,...l}=r||{},A=WV.createMappedRequestOptions(l);return n&&(A.queryParameters.forwardToReplicas=1),(o||a)&&(A.queryParameters.replaceExistingSynonyms=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},A),(f,I)=>CT(e)(f.taskID,I))},oss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ass=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),css=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),lss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),qdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/indexes/%s/settings",e.indexName),data:t},o),(l,A)=>CT(e)(l.taskID,A))},CT=e=>(t,r)=>mg.createRetryablePromise(n=>iss(e)(t,r).then(a=>a.status!=="published"?n():void 0)),$dl={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},w_e={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Vkt={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},epl={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},tpl={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};cu.ApiKeyACLEnum=$dl;cu.BatchActionEnum=w_e;cu.ScopeEnum=Vkt;cu.StrategyEnum=epl;cu.SynonymEnum=tpl;cu.addApiKey=XAl;cu.assignUserID=JAl;cu.assignUserIDs=UAl;cu.batch=tss;cu.browseObjects=Bdl;cu.browseRules=wdl;cu.browseSynonyms=Tdl;cu.chunkedBatch=Lkt;cu.clearDictionaryEntries=KAl;cu.clearObjects=Rdl;cu.clearRules=Ndl;cu.clearSynonyms=Ddl;cu.copyIndex=Zkt;cu.copyRules=jAl;cu.copySettings=zAl;cu.copySynonyms=qAl;cu.createBrowsablePromise=Fkt;cu.createMissingObjectIDError=zis;cu.createObjectNotFoundError=qis;cu.createSearchClient=QAl;cu.createValidUntilNotFoundError=$is;cu.customRequest=$Al;cu.deleteApiKey=edl;cu.deleteBy=kdl;cu.deleteDictionaryEntries=tdl;cu.deleteIndex=xdl;cu.deleteObject=Gdl;cu.deleteObjects=rss;cu.deleteRule=Fdl;cu.deleteSynonym=Zdl;cu.exists=Ldl;cu.findAnswers=Vdl;cu.findObject=Pdl;cu.generateSecuredApiKey=rdl;cu.getApiKey=wje;cu.getAppTask=ess;cu.getDictionarySettings=ndl;cu.getLogs=idl;cu.getObject=Wdl;cu.getObjectPosition=Odl;cu.getObjects=Mdl;cu.getRule=Hdl;cu.getSecuredApiKeyRemainingValidity=sdl;cu.getSettings=nss;cu.getSynonym=Ydl;cu.getTask=iss;cu.getTopUserIDs=odl;cu.getUserID=adl;cu.hasPendingMappings=cdl;cu.initIndex=Tje;cu.listApiKeys=ldl;cu.listClusters=udl;cu.listIndices=gdl;cu.listUserIDs=Adl;cu.moveIndex=ddl;cu.multipleBatch=pdl;cu.multipleGetObjects=fdl;cu.multipleQueries=Idl;cu.multipleSearchForFacetValues=hdl;cu.partialUpdateObject=Qdl;cu.partialUpdateObjects=sss;cu.removeUserID=mdl;cu.replaceAllObjects=Xdl;cu.replaceAllRules=Jdl;cu.replaceAllSynonyms=Udl;cu.replaceDictionaryEntries=Cdl;cu.restoreApiKey=_dl;cu.saveDictionaryEntries=ydl;cu.saveObject=Kdl;cu.saveObjects=wYr;cu.saveRule=jdl;cu.saveRules=TYr;cu.saveSynonym=zdl;cu.saveSynonyms=RYr;cu.search=oss;cu.searchDictionaryEntries=bdl;cu.searchForFacetValues=ass;cu.searchRules=css;cu.searchSynonyms=lss;cu.searchUserIDs=Edl;cu.setDictionarySettings=Sdl;cu.setSettings=qdl;cu.updateApiKey=vdl;cu.waitAppTask=Wxe;cu.waitTask=CT});var Ass=H((I$u,gss)=>{gss.exports=uss()});var dss=H(Pkt=>{"use strict";Object.defineProperty(Pkt,"__esModule",{value:!0});function rpl(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var npl={Debug:1,Info:2,Error:3};Pkt.LogLevelEnum=npl;Pkt.createNullLogger=rpl});var NYr=H((m$u,pss)=>{pss.exports=dss()});var mss=H(DYr=>{"use strict";Object.defineProperty(DYr,"__esModule",{value:!0});var fss=wt("http"),Iss=wt("https"),ipl=wt("url"),hss={keepAlive:!0},spl=new fss.Agent(hss),opl=new Iss.Agent(hss);function apl({agent:e,httpAgent:t,httpsAgent:r,requesterOptions:n={}}={}){let a=t||e||spl,o=r||e||opl;return{send(l){return new Promise(A=>{let f=ipl.parse(l.url),I=f.query===null?f.pathname:`${f.pathname}?${f.query}`,C={...n,agent:f.protocol==="https:"?o:a,hostname:f.hostname,path:I,method:l.method,headers:{...n&&n.headers?n.headers:{},...l.headers},...f.port!==void 0?{port:f.port||""}:{}},b=(f.protocol==="https:"?Iss:fss).request(C,F=>{let Q=[];F.on("data",X=>{Q=Q.concat(X)}),F.on("end",()=>{clearTimeout(N),clearTimeout(B),A({status:F.statusCode||0,content:Buffer.concat(Q).toString(),isTimedOut:!1})})}),E=(F,Q)=>setTimeout(()=>{b.abort(),A({status:0,content:Q,isTimedOut:!0})},F*1e3),N=E(l.connectTimeout,"Connection timeout"),B;b.on("error",F=>{clearTimeout(N),clearTimeout(B),A({status:0,content:F.message,isTimedOut:!1})}),b.once("response",()=>{clearTimeout(N),B=E(l.responseTimeout,"Socket timeout")}),l.data!==void 0&&b.write(l.data),b.end()})},destroy(){return a.destroy(),o.destroy(),Promise.resolve()}}}DYr.createNodeHttpRequester=apl});var kYr=H((_$u,Css)=>{Css.exports=mss()});var Tss=H((y$u,wss)=>{"use strict";var _ss=IYr(),cpl=mYr(),eue=Fxe(),lpl=NYr(),upl=kYr(),Wkt=Vxe(),Okt=Zxe(),gpl=e=>{let t=e.appId,r=eue.createAuth(e.authMode!==void 0?e.authMode:eue.AuthMode.WithinHeaders,t,e.apiKey),n=Wkt.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:Wkt.CallEnum.Read},{url:`${t}.algolia.net`,accept:Wkt.CallEnum.Write}].concat(eue.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return eue.addMethods(a,e.methods)},Rje=e=>(t,r)=>{let n=t.map(a=>({...a,threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},yss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,fallbackParameters:{},model:"bought-together"})),r),bss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"related-products"})),r),Ess=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-facets",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},Sss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-items",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},vss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"looking-similar"})),r),Bss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"recommended-for-you",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)};function Ste(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:upl.createNodeHttpRequester(),logger:lpl.createNullLogger(),responsesCache:_ss.createNullCache(),requestsCache:_ss.createNullCache(),hostsCache:cpl.createInMemoryCache(),userAgent:Wkt.createUserAgent(eue.version).add({segment:"Recommend",version:eue.version}).add({segment:"Node.js",version:process.versions.node})};return gpl({...n,...r,methods:{destroy:eue.destroy,getFrequentlyBoughtTogether:yss,getRecommendations:Rje,getRelatedProducts:bss,getTrendingFacets:Ess,getTrendingItems:Sss,getLookingSimilar:vss,getRecommendedForYou:Bss}})}Ste.version=eue.version;Ste.getFrequentlyBoughtTogether=yss;Ste.getRecommendations=Rje;Ste.getRelatedProducts=bss;Ste.getTrendingFacets=Ess;Ste.getTrendingItems=Sss;Ste.getLookingSimilar=vss;Ste.getRecommendedForYou=Bss;wss.exports=Ste});var Nss=H((b$u,xYr)=>{var Rss=Tss();xYr.exports=Rss;xYr.exports.default=Rss});var Gss=H((E$u,xss)=>{"use strict";var Dss=IYr(),Apl=mYr(),Oxe=Xis(),FYr=Fxe(),GYr=jis(),ju=Ass(),dpl=NYr(),T_e=Nss(),ppl=kYr(),fpl=Vxe();function kss(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:ppl.createNodeHttpRequester(),logger:dpl.createNullLogger(),responsesCache:Dss.createNullCache(),requestsCache:Dss.createNullCache(),hostsCache:Apl.createInMemoryCache(),userAgent:fpl.createUserAgent(FYr.version).add({segment:"Node.js",version:process.versions.node})},a={...n,...r},o=()=>l=>GYr.createPersonalizationClient({...n,...l,methods:{getPersonalizationStrategy:GYr.getPersonalizationStrategy,setPersonalizationStrategy:GYr.setPersonalizationStrategy}});return ju.createSearchClient({...a,methods:{search:ju.multipleQueries,searchForFacetValues:ju.multipleSearchForFacetValues,multipleBatch:ju.multipleBatch,multipleGetObjects:ju.multipleGetObjects,multipleQueries:ju.multipleQueries,copyIndex:ju.copyIndex,copySettings:ju.copySettings,copyRules:ju.copyRules,copySynonyms:ju.copySynonyms,moveIndex:ju.moveIndex,listIndices:ju.listIndices,getLogs:ju.getLogs,listClusters:ju.listClusters,multipleSearchForFacetValues:ju.multipleSearchForFacetValues,getApiKey:ju.getApiKey,addApiKey:ju.addApiKey,listApiKeys:ju.listApiKeys,updateApiKey:ju.updateApiKey,deleteApiKey:ju.deleteApiKey,restoreApiKey:ju.restoreApiKey,assignUserID:ju.assignUserID,assignUserIDs:ju.assignUserIDs,getUserID:ju.getUserID,searchUserIDs:ju.searchUserIDs,listUserIDs:ju.listUserIDs,getTopUserIDs:ju.getTopUserIDs,removeUserID:ju.removeUserID,hasPendingMappings:ju.hasPendingMappings,generateSecuredApiKey:ju.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:ju.getSecuredApiKeyRemainingValidity,destroy:FYr.destroy,clearDictionaryEntries:ju.clearDictionaryEntries,deleteDictionaryEntries:ju.deleteDictionaryEntries,getDictionarySettings:ju.getDictionarySettings,getAppTask:ju.getAppTask,replaceDictionaryEntries:ju.replaceDictionaryEntries,saveDictionaryEntries:ju.saveDictionaryEntries,searchDictionaryEntries:ju.searchDictionaryEntries,setDictionarySettings:ju.setDictionarySettings,waitAppTask:ju.waitAppTask,customRequest:ju.customRequest,initIndex:l=>A=>ju.initIndex(l)(A,{methods:{batch:ju.batch,delete:ju.deleteIndex,findAnswers:ju.findAnswers,getObject:ju.getObject,getObjects:ju.getObjects,saveObject:ju.saveObject,saveObjects:ju.saveObjects,search:ju.search,searchForFacetValues:ju.searchForFacetValues,waitTask:ju.waitTask,setSettings:ju.setSettings,getSettings:ju.getSettings,partialUpdateObject:ju.partialUpdateObject,partialUpdateObjects:ju.partialUpdateObjects,deleteObject:ju.deleteObject,deleteObjects:ju.deleteObjects,deleteBy:ju.deleteBy,clearObjects:ju.clearObjects,browseObjects:ju.browseObjects,getObjectPosition:ju.getObjectPosition,findObject:ju.findObject,exists:ju.exists,saveSynonym:ju.saveSynonym,saveSynonyms:ju.saveSynonyms,getSynonym:ju.getSynonym,searchSynonyms:ju.searchSynonyms,browseSynonyms:ju.browseSynonyms,deleteSynonym:ju.deleteSynonym,clearSynonyms:ju.clearSynonyms,replaceAllObjects:ju.replaceAllObjects,replaceAllSynonyms:ju.replaceAllSynonyms,searchRules:ju.searchRules,getRule:ju.getRule,deleteRule:ju.deleteRule,saveRule:ju.saveRule,saveRules:ju.saveRules,replaceAllRules:ju.replaceAllRules,browseRules:ju.browseRules,clearRules:ju.clearRules}}),initAnalytics:()=>l=>Oxe.createAnalyticsClient({...n,...l,methods:{addABTest:Oxe.addABTest,getABTest:Oxe.getABTest,getABTests:Oxe.getABTests,stopABTest:Oxe.stopABTest,deleteABTest:Oxe.deleteABTest}}),initPersonalization:o,initRecommendation:()=>l=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),o()(l)),getRecommendations:T_e.getRecommendations,getFrequentlyBoughtTogether:T_e.getFrequentlyBoughtTogether,getLookingSimilar:T_e.getLookingSimilar,getRecommendedForYou:T_e.getRecommendedForYou,getRelatedProducts:T_e.getRelatedProducts,getTrendingFacets:T_e.getTrendingFacets,getTrendingItems:T_e.getTrendingItems}})}kss.version=FYr.version;xss.exports=kss});var LYr=H((S$u,ZYr)=>{var Fss=Gss();ZYr.exports=Fss;ZYr.exports.default=Fss});var Zss=H(Mkt=>{"use strict";Object.defineProperty(Mkt,"__esModule",{value:!0});Mkt.search=void 0;var Ipl=(Pa(),vi(Va)),hpl=Ipl.__importDefault(LYr()),VYr={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},mpl=(0,hpl.default)(VYr.appId,VYr.apiKey).initIndex(VYr.indexName),Cpl=async(e,t=0)=>await mpl.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10});Mkt.search=Cpl});var WYr=H(Hkt=>{"use strict";Object.defineProperty(Hkt,"__esModule",{value:!0});Hkt.useMinistore=_pl;Hkt.useMinistoreSetAll=ypl;var PYr=sC(),Lss=yGr();function _pl(e,t){let r=(0,PYr.useContext)(Lss.MinistoreContext);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof e>"u")return r.getAll();let n=(0,PYr.useCallback)(o=>{r.set(e,o)},[e,r.set]),a=r.get(e);return typeof a>"u"&&(a=t),[a,n]}function ypl(){let e=(0,PYr.useContext)(Lss.MinistoreContext);if(e===null)throw new Error("Expected this hook to run with a ministore context attached");return e.setAll}});var Oss=H(Nje=>{"use strict";Object.defineProperty(Nje,"__esModule",{value:!0});Nje.UncontrolledTextInput=void 0;var Pss=sC(),OYr=sC(),Vss=lH(),R_e=VK(),Wss=({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A})=>{let[{cursorOffset:f,cursorWidth:I},C]=OYr.useState({cursorOffset:(e||"").length,cursorWidth:0});OYr.useEffect(()=>{C(F=>{if(!r||!o)return F;let Q=e||"";return F.cursorOffset>Q.length-1?{cursorOffset:Q.length,cursorWidth:0}:F})},[e,r,o]);let b=a?I:0,E=n?n.repeat(e.length):e,N=E,B=t?R_e.grey(t):void 0;if(o&&r){B=t.length>0?R_e.inverse(t[0])+R_e.grey(t.slice(1)):R_e.inverse(" "),N=E.length>0?"":R_e.inverse(" ");let F=0;for(let Q of E)F>=f-b&&F<=f?N+=R_e.inverse(Q):N+=Q,F++;E.length>0&&f===E.length&&(N+=R_e.inverse(" "))}return Vss.useInput((F,Q)=>{if(Q.upArrow||Q.downArrow||Q.ctrl&&F==="c"||Q.tab||Q.shift&&Q.tab)return;if(Q.return){A&&A(e);return}let X=f,ae=e,ne=0;Q.leftArrow?o&&X--:Q.rightArrow?o&&X++:Q.backspace||Q.delete?f>0&&(ae=e.slice(0,f-1)+e.slice(f,e.length),X--):(ae=e.slice(0,f)+F+e.slice(f,e.length),X+=F.length,F.length>1&&(ne=F.length)),f<0&&(X=0),f>e.length&&(X=e.length),C({cursorOffset:X,cursorWidth:ne}),ae!==e&&l(ae)},{isActive:r}),Pss.createElement(Vss.Text,null,t?E.length>0?N:B:N)};Nje.default=Wss;Nje.UncontrolledTextInput=({initialValue:e="",...t})=>{let[r,n]=OYr.useState(e);return Pss.createElement(Wss,Object.assign({},t,{value:r,onChange:n}))}});var Hss=H(MYr=>{"use strict";Object.defineProperty(MYr,"__esModule",{value:!0});var vte=(Pa(),vi(Va)),bpl=el(),Dje=Bn(),Epl=vte.__importStar(A1t()),Spl=($c(),vi(rg)),Mss=Zss(),kje=["regular","dev","peer"],xje=class extends bpl.BaseCommand{async execute(){Epl.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vte.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vte.__importStar(N1t())),{useKeypress:n}=await Promise.resolve().then(()=>vte.__importStar(cDe())),{useMinistore:a}=await Promise.resolve().then(()=>vte.__importStar(WYr())),{renderForm:o}=await Promise.resolve().then(()=>vte.__importStar(D1t())),{default:l}=await Promise.resolve().then(()=>vte.__importStar(Oss())),{Box:A,Text:f}=await Promise.resolve().then(()=>vte.__importStar(lH())),{default:I,useEffect:C,useState:b}=await Promise.resolve().then(()=>vte.__importStar(sC())),E=await Dje.Configuration.find(this.context.cwd,this.context.plugins),N=()=>I.createElement(A,{flexDirection:"row"},I.createElement(A,{flexDirection:"column",width:48},I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},""),"/",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to move between packages.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to select a package.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," again to change the target."))),I.createElement(A,{flexDirection:"column"},I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to abort.")))),B=()=>I.createElement(I.Fragment,null,I.createElement(A,{width:15},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Owner")),I.createElement(A,{width:11},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Version")),I.createElement(A,{width:10},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Downloads"))),F=()=>I.createElement(A,{width:17},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Target")),Q=({hit:be,active:Se})=>{let[De,k]=a(be.name,null);n({active:Se},(Me,je)=>{if(je.name!=="space")return;if(!De){k(kje[0]);return}let St=kje.indexOf(De)+1;St===kje.length?k(null):k(kje[St])},[De,k]);let et=Dje.structUtils.parseIdent(be.name),ct=Dje.structUtils.prettyIdent(E,et);return I.createElement(A,null,I.createElement(A,{width:45},I.createElement(f,{bold:!0,wrap:"wrap"},ct)),I.createElement(A,{width:14,marginLeft:1},I.createElement(f,{bold:!0,wrap:"truncate"},be.owner.name)),I.createElement(A,{width:10,marginLeft:1},I.createElement(f,{italic:!0,wrap:"truncate"},be.version)),I.createElement(A,{width:16,marginLeft:1},I.createElement(f,null,be.humanDownloadsLast30Days)))},X=({name:be,active:Se})=>{let[De]=a(be,null),k=Dje.structUtils.parseIdent(be);return I.createElement(A,null,I.createElement(A,{width:47},I.createElement(f,{bold:!0}," - ",Dje.structUtils.prettyIdent(E,k))),kje.map(et=>I.createElement(A,{key:et,width:14,marginLeft:1},I.createElement(f,null," ",I.createElement(t,{active:De===et})," ",I.createElement(f,{bold:!0},et)))))},ae=()=>I.createElement(A,{marginTop:1},I.createElement(f,null,"Powered by Algolia.")),ce=await o(({useSubmit:be})=>{let Se=a();be(Se);let De=Array.from(Se.keys()).filter(Nr=>Se.get(Nr)!==null),[k,et]=b(""),[ct,Me]=b(0),[je,St]=b([]),At=Nr=>{Nr.match(/\t| /)||et(Nr)},Yt=async()=>{Me(0);let Nr=await(0,Mss.search)(k);Nr.query===k&&St(Nr.hits)},Tr=async()=>{let Nr=await(0,Mss.search)(k,ct+1);Nr.query===k&&Nr.page-1===ct&&(Me(Nr.page),St([...je,...Nr.hits]))};return C(()=>{k?Yt():St([])},[k]),I.createElement(A,{flexDirection:"column"},I.createElement(N,null),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(f,{bold:!0},"Search: "),I.createElement(A,{width:41},I.createElement(l,{value:k,onChange:At,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),I.createElement(B,null)),je.length?I.createElement(r,{radius:2,loop:!1,children:je.map(Nr=>I.createElement(Q,{key:Nr.name,hit:Nr,active:!1})),willReachEnd:Tr}):I.createElement(f,{color:"gray"},"Start typing..."),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(A,{width:49},I.createElement(f,{bold:!0},"Selected:")),I.createElement(F,null)),De.length?De.map(Nr=>I.createElement(X,{key:Nr,name:Nr,active:!1})):I.createElement(f,{color:"gray"},"No selected packages..."),I.createElement(ae,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;let fe=Array.from(ce.keys()).filter(be=>ce.get(be)==="regular"),ue=Array.from(ce.keys()).filter(be=>ce.get(be)==="dev"),de=Array.from(ce.keys()).filter(be=>ce.get(be)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ue.length&&await this.cli.run(["add","--dev",...ue]),de&&await this.cli.run(["add","--peer",...de]),0}};xje.paths=[["search"]];xje.usage=Spl.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. - `,examples:[["Open the search window","yarn search"]]});MYr.default=xje});var zG=H(aC=>{"use strict";var Spl=Object.prototype.toString,bH=OKe(),Yss=!1,Gje=new Set,Qss={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};aC.longest=(e,t)=>e.reduce((r,n)=>Math.max(r,t?n[t].length:n.length),0);aC.hasColor=e=>!!e&&bH.hasColor(e);var Ykt=aC.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);aC.nativeType=e=>Spl.call(e).slice(8,-1).toLowerCase().replace(/\s/g,"");aC.isAsyncFn=e=>aC.nativeType(e)==="asyncfunction";aC.isPrimitive=e=>e!=null&&typeof e!="object"&&typeof e!="function";aC.resolve=(e,t,...r)=>typeof t=="function"?t.call(e,...r):t;aC.scrollDown=(e=[])=>[...e.slice(1),e[0]];aC.scrollUp=(e=[])=>[e.pop(),...e];aC.reorder=(e=[])=>{let t=e.slice();return t.sort((r,n)=>r.index>n.index?1:r.index{let n=e.length,a=r===n?0:r<0?n-1:r,o=e[t];e[t]=e[a],e[a]=o};aC.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[0]),process.platform==="win32"?r-1:r};aC.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[1]),r};aC.wordWrap=(e,t={})=>{if(!e)return e;typeof t=="number"&&(t={width:t});let{indent:r="",newline:n=` -`+r,width:a=80}=t,o=(n+r).match(/[^\S\n]/g)||[];a-=o.length;let l=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=e.trim(),f=new RegExp(l,"g"),I=A.match(f)||[];return I=I.map(C=>C.replace(/\n$/,"")),t.padEnd&&(I=I.map(C=>C.padEnd(a," "))),t.padStart&&(I=I.map(C=>C.padStart(a," "))),r+I.join(n)};aC.unmute=e=>{let t=e.stack.find(n=>bH.keys.color.includes(n));return t?bH[t]:e.stack.find(n=>n.slice(2)==="bg")?bH[t.slice(2)]:n=>n};aC.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"";aC.inverse=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n));if(t){let n=bH["bg"+aC.pascal(t)];return n?n.black:e}let r=e.stack.find(n=>n.slice(0,2)==="bg");return r?bH[r.slice(2).toLowerCase()]||e:bH.none};aC.complement=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n)),r=e.stack.find(n=>n.slice(0,2)==="bg");if(t&&!r)return bH[Qss[t]||t];if(r){let n=r.slice(2).toLowerCase(),a=Qss[n];return a&&bH["bg"+aC.pascal(a)]||e}return bH.none};aC.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),n=t>=12?"pm":"am";t=t%12;let a=t===0?12:t,o=r<10?"0"+r:r;return a+":"+o+" "+n};aC.set=(e={},t="",r)=>t.split(".").reduce((n,a,o,l)=>{let A=l.length-1>o?n[a]||{}:r;return!aC.isObject(A)&&o{let n=e[t]==null?t.split(".").reduce((a,o)=>a&&a[o],e):e[t];return n??r};aC.mixin=(e,t)=>{if(!Ykt(e))return t;if(!Ykt(t))return e;for(let r of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,r);if(hasOwnProperty.call(n,"value"))if(hasOwnProperty.call(e,r)&&Ykt(n.value)){let a=Object.getOwnPropertyDescriptor(e,r);Ykt(a.value)&&a.value!==n.value?e[r]=aC.merge({},e[r],t[r]):Reflect.defineProperty(e,r,n)}else Reflect.defineProperty(e,r,n);else Reflect.defineProperty(e,r,n)}return e};aC.merge=(...e)=>{let t={};for(let r of e)aC.mixin(t,r);return t};aC.mixinEmitter=(e,t)=>{let r=t.constructor.prototype;for(let n of Object.keys(r)){let a=r[n];typeof a=="function"?aC.define(e,n,a.bind(t)):aC.define(e,n,a)}};var Qkt=(e,t)=>{Yss||(Yss=!0,Gje.forEach(r=>r()),e===!0&&process.exit(128+t))},Xss=Qkt.bind(null,!0,15),Jss=Qkt.bind(null,!0,2);aC.onExit=e=>(Gje.size===0&&(process.once("SIGTERM",Xss),process.once("SIGINT",Jss),process.once("exit",Qkt)),Gje.add(e),()=>{Gje.delete(e),Gje.size===0&&(process.off("SIGTERM",Xss),process.off("SIGINT",Jss),process.off("exit",Qkt))});aC.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})};aC.defineExport=(e,t,r)=>{let n;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(a){n=a},get(){return n?n():r()}})}});var Uss=H(Mxe=>{"use strict";Mxe.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Mxe.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Mxe.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Mxe.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Mxe.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var jss=H((D$u,Kss)=>{"use strict";Kss.exports=class{_queue=[];_executing=!1;_jobRunner=null;constructor(t){this._jobRunner=t}enqueue=(...t)=>{this._queue.push(t),this._dequeue()};destroy(){this._queue.length=0,this._jobRunner=null}_dequeue(){this._executing||!this._queue.length||(this._executing=!0,this._jobRunner(...this._queue.shift()),setTimeout(()=>{this._executing=!1,this._dequeue()}))}}});var HYr=H((k$u,qss)=>{"use strict";var zss=wt("readline"),vpl=Uss(),Bpl=jss(),wpl=/^(?:\x1b)([a-zA-Z0-9])$/,Tpl=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Rpl={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Npl(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}function Dpl(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}var Xkt=(e="",t={})=>{let r,n={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&e[1]===void 0?(e[0]-=128,e="\x1B"+String(e)):e=String(e):e!==void 0&&typeof e!="string"?e=String(e):e||(e=n.sequence||""),n.sequence=n.sequence||e||n.name,e==="\r")n.raw=void 0,n.name="return";else if(e===` -`)n.name="enter";else if(e===" ")n.name="tab";else if(e==="\b"||e==="\x7F"||e==="\x1B\x7F"||e==="\x1B\b")n.name="backspace",n.meta=e.charAt(0)==="\x1B";else if(e==="\x1B"||e==="\x1B\x1B")n.name="escape",n.meta=e.length===2;else if(e===" "||e==="\x1B ")n.name="space",n.meta=e.length===2;else if(e<="")n.name=String.fromCharCode(e.charCodeAt(0)+97-1),n.ctrl=!0;else if(e.length===1&&e>="0"&&e<="9")n.name="number";else if(e.length===1&&e>="a"&&e<="z")n.name=e;else if(e.length===1&&e>="A"&&e<="Z")n.name=e.toLowerCase(),n.shift=!0;else if(r=wpl.exec(e))n.meta=!0,n.shift=/^[A-Z]$/.test(r[1]);else if(r=Tpl.exec(e)){let a=[...e];a[0]==="\x1B"&&a[1]==="\x1B"&&(n.option=!0);let o=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),l=(r[3]||r[5]||1)-1;n.ctrl=!!(l&4),n.meta=!!(l&10),n.shift=!!(l&1),n.code=o,n.name=Rpl[o],n.shift=Npl(o)||n.shift,n.ctrl=Dpl(o)||n.ctrl}return n};Xkt.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let n=zss.createInterface({terminal:!0,input:r});zss.emitKeypressEvents(r,n);let a=new Bpl((A,f)=>t(A,Xkt(A,f),n)),o=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a.enqueue),n.resume(),()=>{r.isTTY&&r.setRawMode(o),r.removeListener("keypress",a.enqueue),a.destroy(),n.pause(),n.close()}};Xkt.action=(e,t,r)=>{let n={...vpl,...r};return t.ctrl?(t.action=n.ctrl[t.name],t):t.option&&n.option?(t.action=n.option[t.name],t):t.shift?(t.action=n.shift[t.name],t):(t.action=n.keys[t.name],t)};qss.exports=Xkt});var eos=H((x$u,$ss)=>{"use strict";$ss.exports=e=>{e.timers=e.timers||{};let t=e.options.timers;if(t)for(let r of Object.keys(t)){let n=t[r];typeof n=="number"&&(n={interval:n}),kpl(e,r,n)}};function kpl(e,t,r={}){let n=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},a=r.interval||120;n.frames=r.frames||[],n.loading=!0;let o=setInterval(()=>{n.ms=Date.now()-n.start,n.tick++,e.render()},a);return n.stop=()=>{n.loading=!1,clearInterval(o)},Reflect.defineProperty(n,"interval",{value:o}),e.once("close",()=>n.stop()),n.stop}});var ros=H((G$u,tos)=>{"use strict";var{define:xpl,width:Gpl}=zG(),YYr=class{constructor(t){let r=t.options;xpl(this,"_prompt",t),this.type=t.type,this.name=t.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Gpl(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=t.symbols,this.styles=t.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let t={...this};return t.status=this.status,t.buffer=Buffer.from(t.buffer),delete t.clone,t}set color(t){this._color=t}get color(){let t=this.prompt.styles;if(this.cancelled)return t.cancelled;if(this.submitted)return t.submitted;let r=this._color||t[this.status];return typeof r=="function"?r:t.pending}set loading(t){this._loading=t}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};tos.exports=YYr});var ios=H((F$u,nos)=>{"use strict";var QYr=zG(),ox=OKe(),XYr={default:ox.noop,noop:ox.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||QYr.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||QYr.complement(this.primary)},primary:ox.cyan,success:ox.green,danger:ox.magenta,strong:ox.bold,warning:ox.yellow,muted:ox.dim,disabled:ox.gray,dark:ox.dim.gray,underline:ox.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse}};XYr.merge=(e={})=>{e.styles&&typeof e.styles.enabled=="boolean"&&(ox.enabled=e.styles.enabled),e.styles&&typeof e.styles.visible=="boolean"&&(ox.visible=e.styles.visible);let t=QYr.merge({},XYr,e.styles);delete t.merge;for(let r of Object.keys(ox))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});for(let r of Object.keys(ox.styles))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});return t};nos.exports=XYr});var oos=H((Z$u,sos)=>{"use strict";var JYr=process.platform==="win32",Bte=OKe(),Fpl=zG(),UYr={...Bte.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Bte.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Bte.symbols.question,submitted:Bte.symbols.check,cancelled:Bte.symbols.cross},separator:{pending:Bte.symbols.pointerSmall,submitted:Bte.symbols.middot,cancelled:Bte.symbols.middot},radio:{off:JYr?"( )":"\u25EF",on:JYr?"(*)":"\u25C9",disabled:JYr?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};UYr.merge=e=>{let t=Fpl.merge({},Bte.symbols,UYr,e.symbols);return delete t.merge,t};sos.exports=UYr});var cos=H((L$u,aos)=>{"use strict";var Zpl=ios(),Lpl=oos(),Vpl=zG();aos.exports=e=>{e.options=Vpl.merge({},e.options.theme,e.options),e.symbols=Lpl.merge(e.options),e.styles=Zpl.merge(e.options)}});var dos=H((gos,Aos)=>{"use strict";var los=process.env.TERM_PROGRAM==="Apple_Terminal",Ppl=q5(),KYr=zG(),P4=Aos.exports=gos,VS="\x1B[",uos="\x07",jYr=!1,tue=P4.code={bell:uos,beep:uos,beginning:`${VS}G`,down:`${VS}J`,esc:VS,getPosition:`${VS}6n`,hide:`${VS}?25l`,line:`${VS}2K`,lineEnd:`${VS}K`,lineStart:`${VS}1K`,restorePosition:VS+(los?"8":"u"),savePosition:VS+(los?"7":"s"),screen:`${VS}2J`,show:`${VS}?25h`,up:`${VS}1J`},N_e=P4.cursor={get hidden(){return jYr},hide(){return jYr=!0,tue.hide},show(){return jYr=!1,tue.show},forward:(e=1)=>`${VS}${e}C`,backward:(e=1)=>`${VS}${e}D`,nextLine:(e=1)=>`${VS}E`.repeat(e),prevLine:(e=1)=>`${VS}F`.repeat(e),up:(e=1)=>e?`${VS}${e}A`:"",down:(e=1)=>e?`${VS}${e}B`:"",right:(e=1)=>e?`${VS}${e}C`:"",left:(e=1)=>e?`${VS}${e}D`:"",to(e,t){return t?`${VS}${t+1};${e+1}H`:`${VS}${e+1}G`},move(e=0,t=0){let r="";return r+=e<0?N_e.left(-e):e>0?N_e.right(e):"",r+=t<0?N_e.up(-t):t>0?N_e.down(t):"",r},strLen(e){for(var t=0,r=e.length,n=-1,a=0;a=0&&n<=128?t+=1:t+=2;return t},restore(e={}){let{after:t,cursor:r,initial:n,input:a,prompt:o,size:l,value:A}=e;if(n=KYr.isPrimitive(n)?String(n):"",a=KYr.isPrimitive(a)?String(a):"",A=KYr.isPrimitive(A)?String(A):"",l){let f=P4.cursor.up(l)+P4.cursor.to(this.strLen(o)),I=a.length-r;return I>0&&(f+=P4.cursor.left(I)),f}if(A||t){let f=!a&&n?-this.strLen(n):-this.strLen(a)+r;return t&&(f-=this.strLen(t)),a===""&&n&&!o.includes(n)&&(f+=this.strLen(n)),P4.cursor.move(f)}}},zYr=P4.erase={screen:tue.screen,up:tue.up,down:tue.down,line:tue.line,lineEnd:tue.lineEnd,lineStart:tue.lineStart,lines(e){let t="";for(let r=0;r{if(!t)return zYr.line+N_e.to(0);let r=o=>[...Ppl(o)].length,n=e.split(/\r?\n/),a=0;for(let o of n)a+=1+Math.floor(Math.max(r(o)-1,0)/t);return(zYr.line+N_e.prevLine()).repeat(a-1)+zYr.line+N_e.to(0)}});var Hxe=H((V$u,fos)=>{"use strict";var Wpl=wt("events"),pos=q5(),qYr=HYr(),Opl=eos(),Mpl=ros(),Hpl=cos(),OV=zG(),D_e=dos(),$Yr=class e extends Wpl{constructor(t={}){super(),this.name=t.name,this.type=t.type,this.options=t,Hpl(this),Opl(this),this.state=new Mpl(this),this.initial=[t.initial,t.default].find(r=>r!=null),this.stdout=t.stdout||process.stdout,this.stdin=t.stdin||process.stdin,this.scale=t.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Qpl(this.options.margin),this.setMaxListeners(0),Ypl(this)}async keypress(t,r={}){this.keypressed=!0;let n=qYr.action(t,qYr(t,r),this.options.actions);this.state.keypress=n,this.emit("keypress",t,n),this.emit("state",this.state.clone());let a=this.options[n.action]||this[n.action]||this.dispatch;if(typeof a=="function")return await a.call(this,t,n);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(D_e.code.beep)}cursorHide(){this.stdout.write(D_e.cursor.hide());let t=OV.onExit(()=>this.cursorShow());this.on("close",()=>{this.cursorShow(),t()})}cursorShow(){this.stdout.write(D_e.cursor.show())}write(t){t&&(this.stdout&&this.state.show!==!1&&this.stdout.write(t),this.state.buffer+=t)}clear(t=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!t||this.options.show===!1)&&this.stdout.write(D_e.cursor.down(t)+D_e.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:t,after:r,rest:n}=this.sections(),{cursor:a,initial:o="",input:l="",value:A=""}=this,f=this.state.size=n.length,I={after:r,cursor:a,initial:o,input:l,prompt:t,size:f,value:A},C=D_e.cursor.restore(I);C&&this.stdout.write(C)}sections(){let{buffer:t,input:r,prompt:n}=this.state;n=pos(n);let a=pos(t),o=a.indexOf(n),l=a.slice(0,o),f=a.slice(o).split(` + `,examples:[["Open the search window","yarn search"]]});MYr.default=xje});var zG=H(aC=>{"use strict";var vpl=Object.prototype.toString,bH=OKe(),Yss=!1,Gje=new Set,Qss={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};aC.longest=(e,t)=>e.reduce((r,n)=>Math.max(r,t?n[t].length:n.length),0);aC.hasColor=e=>!!e&&bH.hasColor(e);var Ykt=aC.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);aC.nativeType=e=>vpl.call(e).slice(8,-1).toLowerCase().replace(/\s/g,"");aC.isAsyncFn=e=>aC.nativeType(e)==="asyncfunction";aC.isPrimitive=e=>e!=null&&typeof e!="object"&&typeof e!="function";aC.resolve=(e,t,...r)=>typeof t=="function"?t.call(e,...r):t;aC.scrollDown=(e=[])=>[...e.slice(1),e[0]];aC.scrollUp=(e=[])=>[e.pop(),...e];aC.reorder=(e=[])=>{let t=e.slice();return t.sort((r,n)=>r.index>n.index?1:r.index{let n=e.length,a=r===n?0:r<0?n-1:r,o=e[t];e[t]=e[a],e[a]=o};aC.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[0]),process.platform==="win32"?r-1:r};aC.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[1]),r};aC.wordWrap=(e,t={})=>{if(!e)return e;typeof t=="number"&&(t={width:t});let{indent:r="",newline:n=` +`+r,width:a=80}=t,o=(n+r).match(/[^\S\n]/g)||[];a-=o.length;let l=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=e.trim(),f=new RegExp(l,"g"),I=A.match(f)||[];return I=I.map(C=>C.replace(/\n$/,"")),t.padEnd&&(I=I.map(C=>C.padEnd(a," "))),t.padStart&&(I=I.map(C=>C.padStart(a," "))),r+I.join(n)};aC.unmute=e=>{let t=e.stack.find(n=>bH.keys.color.includes(n));return t?bH[t]:e.stack.find(n=>n.slice(2)==="bg")?bH[t.slice(2)]:n=>n};aC.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"";aC.inverse=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n));if(t){let n=bH["bg"+aC.pascal(t)];return n?n.black:e}let r=e.stack.find(n=>n.slice(0,2)==="bg");return r?bH[r.slice(2).toLowerCase()]||e:bH.none};aC.complement=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n)),r=e.stack.find(n=>n.slice(0,2)==="bg");if(t&&!r)return bH[Qss[t]||t];if(r){let n=r.slice(2).toLowerCase(),a=Qss[n];return a&&bH["bg"+aC.pascal(a)]||e}return bH.none};aC.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),n=t>=12?"pm":"am";t=t%12;let a=t===0?12:t,o=r<10?"0"+r:r;return a+":"+o+" "+n};aC.set=(e={},t="",r)=>t.split(".").reduce((n,a,o,l)=>{let A=l.length-1>o?n[a]||{}:r;return!aC.isObject(A)&&o{let n=e[t]==null?t.split(".").reduce((a,o)=>a&&a[o],e):e[t];return n??r};aC.mixin=(e,t)=>{if(!Ykt(e))return t;if(!Ykt(t))return e;for(let r of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,r);if(hasOwnProperty.call(n,"value"))if(hasOwnProperty.call(e,r)&&Ykt(n.value)){let a=Object.getOwnPropertyDescriptor(e,r);Ykt(a.value)&&a.value!==n.value?e[r]=aC.merge({},e[r],t[r]):Reflect.defineProperty(e,r,n)}else Reflect.defineProperty(e,r,n);else Reflect.defineProperty(e,r,n)}return e};aC.merge=(...e)=>{let t={};for(let r of e)aC.mixin(t,r);return t};aC.mixinEmitter=(e,t)=>{let r=t.constructor.prototype;for(let n of Object.keys(r)){let a=r[n];typeof a=="function"?aC.define(e,n,a.bind(t)):aC.define(e,n,a)}};var Qkt=(e,t)=>{Yss||(Yss=!0,Gje.forEach(r=>r()),e===!0&&process.exit(128+t))},Xss=Qkt.bind(null,!0,15),Jss=Qkt.bind(null,!0,2);aC.onExit=e=>(Gje.size===0&&(process.once("SIGTERM",Xss),process.once("SIGINT",Jss),process.once("exit",Qkt)),Gje.add(e),()=>{Gje.delete(e),Gje.size===0&&(process.off("SIGTERM",Xss),process.off("SIGINT",Jss),process.off("exit",Qkt))});aC.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})};aC.defineExport=(e,t,r)=>{let n;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(a){n=a},get(){return n?n():r()}})}});var Uss=H(Mxe=>{"use strict";Mxe.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Mxe.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Mxe.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Mxe.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Mxe.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var jss=H((k$u,Kss)=>{"use strict";Kss.exports=class{_queue=[];_executing=!1;_jobRunner=null;constructor(t){this._jobRunner=t}enqueue=(...t)=>{this._queue.push(t),this._dequeue()};destroy(){this._queue.length=0,this._jobRunner=null}_dequeue(){this._executing||!this._queue.length||(this._executing=!0,this._jobRunner(...this._queue.shift()),setTimeout(()=>{this._executing=!1,this._dequeue()}))}}});var HYr=H((x$u,qss)=>{"use strict";var zss=wt("readline"),Bpl=Uss(),wpl=jss(),Tpl=/^(?:\x1b)([a-zA-Z0-9])$/,Rpl=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Npl={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Dpl(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}function kpl(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}var Xkt=(e="",t={})=>{let r,n={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&e[1]===void 0?(e[0]-=128,e="\x1B"+String(e)):e=String(e):e!==void 0&&typeof e!="string"?e=String(e):e||(e=n.sequence||""),n.sequence=n.sequence||e||n.name,e==="\r")n.raw=void 0,n.name="return";else if(e===` +`)n.name="enter";else if(e===" ")n.name="tab";else if(e==="\b"||e==="\x7F"||e==="\x1B\x7F"||e==="\x1B\b")n.name="backspace",n.meta=e.charAt(0)==="\x1B";else if(e==="\x1B"||e==="\x1B\x1B")n.name="escape",n.meta=e.length===2;else if(e===" "||e==="\x1B ")n.name="space",n.meta=e.length===2;else if(e<="")n.name=String.fromCharCode(e.charCodeAt(0)+97-1),n.ctrl=!0;else if(e.length===1&&e>="0"&&e<="9")n.name="number";else if(e.length===1&&e>="a"&&e<="z")n.name=e;else if(e.length===1&&e>="A"&&e<="Z")n.name=e.toLowerCase(),n.shift=!0;else if(r=Tpl.exec(e))n.meta=!0,n.shift=/^[A-Z]$/.test(r[1]);else if(r=Rpl.exec(e)){let a=[...e];a[0]==="\x1B"&&a[1]==="\x1B"&&(n.option=!0);let o=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),l=(r[3]||r[5]||1)-1;n.ctrl=!!(l&4),n.meta=!!(l&10),n.shift=!!(l&1),n.code=o,n.name=Npl[o],n.shift=Dpl(o)||n.shift,n.ctrl=kpl(o)||n.ctrl}return n};Xkt.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let n=zss.createInterface({terminal:!0,input:r});zss.emitKeypressEvents(r,n);let a=new wpl((A,f)=>t(A,Xkt(A,f),n)),o=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a.enqueue),n.resume(),()=>{r.isTTY&&r.setRawMode(o),r.removeListener("keypress",a.enqueue),a.destroy(),n.pause(),n.close()}};Xkt.action=(e,t,r)=>{let n={...Bpl,...r};return t.ctrl?(t.action=n.ctrl[t.name],t):t.option&&n.option?(t.action=n.option[t.name],t):t.shift?(t.action=n.shift[t.name],t):(t.action=n.keys[t.name],t)};qss.exports=Xkt});var eos=H((G$u,$ss)=>{"use strict";$ss.exports=e=>{e.timers=e.timers||{};let t=e.options.timers;if(t)for(let r of Object.keys(t)){let n=t[r];typeof n=="number"&&(n={interval:n}),xpl(e,r,n)}};function xpl(e,t,r={}){let n=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},a=r.interval||120;n.frames=r.frames||[],n.loading=!0;let o=setInterval(()=>{n.ms=Date.now()-n.start,n.tick++,e.render()},a);return n.stop=()=>{n.loading=!1,clearInterval(o)},Reflect.defineProperty(n,"interval",{value:o}),e.once("close",()=>n.stop()),n.stop}});var ros=H((F$u,tos)=>{"use strict";var{define:Gpl,width:Fpl}=zG(),YYr=class{constructor(t){let r=t.options;Gpl(this,"_prompt",t),this.type=t.type,this.name=t.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Fpl(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=t.symbols,this.styles=t.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let t={...this};return t.status=this.status,t.buffer=Buffer.from(t.buffer),delete t.clone,t}set color(t){this._color=t}get color(){let t=this.prompt.styles;if(this.cancelled)return t.cancelled;if(this.submitted)return t.submitted;let r=this._color||t[this.status];return typeof r=="function"?r:t.pending}set loading(t){this._loading=t}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};tos.exports=YYr});var ios=H((Z$u,nos)=>{"use strict";var QYr=zG(),ox=OKe(),XYr={default:ox.noop,noop:ox.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||QYr.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||QYr.complement(this.primary)},primary:ox.cyan,success:ox.green,danger:ox.magenta,strong:ox.bold,warning:ox.yellow,muted:ox.dim,disabled:ox.gray,dark:ox.dim.gray,underline:ox.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse}};XYr.merge=(e={})=>{e.styles&&typeof e.styles.enabled=="boolean"&&(ox.enabled=e.styles.enabled),e.styles&&typeof e.styles.visible=="boolean"&&(ox.visible=e.styles.visible);let t=QYr.merge({},XYr,e.styles);delete t.merge;for(let r of Object.keys(ox))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});for(let r of Object.keys(ox.styles))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});return t};nos.exports=XYr});var oos=H((L$u,sos)=>{"use strict";var JYr=process.platform==="win32",Bte=OKe(),Zpl=zG(),UYr={...Bte.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Bte.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Bte.symbols.question,submitted:Bte.symbols.check,cancelled:Bte.symbols.cross},separator:{pending:Bte.symbols.pointerSmall,submitted:Bte.symbols.middot,cancelled:Bte.symbols.middot},radio:{off:JYr?"( )":"\u25EF",on:JYr?"(*)":"\u25C9",disabled:JYr?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};UYr.merge=e=>{let t=Zpl.merge({},Bte.symbols,UYr,e.symbols);return delete t.merge,t};sos.exports=UYr});var cos=H((V$u,aos)=>{"use strict";var Lpl=ios(),Vpl=oos(),Ppl=zG();aos.exports=e=>{e.options=Ppl.merge({},e.options.theme,e.options),e.symbols=Vpl.merge(e.options),e.styles=Lpl.merge(e.options)}});var dos=H((gos,Aos)=>{"use strict";var los=process.env.TERM_PROGRAM==="Apple_Terminal",Wpl=q5(),KYr=zG(),P4=Aos.exports=gos,VS="\x1B[",uos="\x07",jYr=!1,tue=P4.code={bell:uos,beep:uos,beginning:`${VS}G`,down:`${VS}J`,esc:VS,getPosition:`${VS}6n`,hide:`${VS}?25l`,line:`${VS}2K`,lineEnd:`${VS}K`,lineStart:`${VS}1K`,restorePosition:VS+(los?"8":"u"),savePosition:VS+(los?"7":"s"),screen:`${VS}2J`,show:`${VS}?25h`,up:`${VS}1J`},N_e=P4.cursor={get hidden(){return jYr},hide(){return jYr=!0,tue.hide},show(){return jYr=!1,tue.show},forward:(e=1)=>`${VS}${e}C`,backward:(e=1)=>`${VS}${e}D`,nextLine:(e=1)=>`${VS}E`.repeat(e),prevLine:(e=1)=>`${VS}F`.repeat(e),up:(e=1)=>e?`${VS}${e}A`:"",down:(e=1)=>e?`${VS}${e}B`:"",right:(e=1)=>e?`${VS}${e}C`:"",left:(e=1)=>e?`${VS}${e}D`:"",to(e,t){return t?`${VS}${t+1};${e+1}H`:`${VS}${e+1}G`},move(e=0,t=0){let r="";return r+=e<0?N_e.left(-e):e>0?N_e.right(e):"",r+=t<0?N_e.up(-t):t>0?N_e.down(t):"",r},strLen(e){for(var t=0,r=e.length,n=-1,a=0;a=0&&n<=128?t+=1:t+=2;return t},restore(e={}){let{after:t,cursor:r,initial:n,input:a,prompt:o,size:l,value:A}=e;if(n=KYr.isPrimitive(n)?String(n):"",a=KYr.isPrimitive(a)?String(a):"",A=KYr.isPrimitive(A)?String(A):"",l){let f=P4.cursor.up(l)+P4.cursor.to(this.strLen(o)),I=a.length-r;return I>0&&(f+=P4.cursor.left(I)),f}if(A||t){let f=!a&&n?-this.strLen(n):-this.strLen(a)+r;return t&&(f-=this.strLen(t)),a===""&&n&&!o.includes(n)&&(f+=this.strLen(n)),P4.cursor.move(f)}}},zYr=P4.erase={screen:tue.screen,up:tue.up,down:tue.down,line:tue.line,lineEnd:tue.lineEnd,lineStart:tue.lineStart,lines(e){let t="";for(let r=0;r{if(!t)return zYr.line+N_e.to(0);let r=o=>[...Wpl(o)].length,n=e.split(/\r?\n/),a=0;for(let o of n)a+=1+Math.floor(Math.max(r(o)-1,0)/t);return(zYr.line+N_e.prevLine()).repeat(a-1)+zYr.line+N_e.to(0)}});var Hxe=H((P$u,fos)=>{"use strict";var Opl=wt("events"),pos=q5(),qYr=HYr(),Mpl=eos(),Hpl=ros(),Ypl=cos(),OV=zG(),D_e=dos(),$Yr=class e extends Opl{constructor(t={}){super(),this.name=t.name,this.type=t.type,this.options=t,Ypl(this),Mpl(this),this.state=new Hpl(this),this.initial=[t.initial,t.default].find(r=>r!=null),this.stdout=t.stdout||process.stdout,this.stdin=t.stdin||process.stdin,this.scale=t.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Xpl(this.options.margin),this.setMaxListeners(0),Qpl(this)}async keypress(t,r={}){this.keypressed=!0;let n=qYr.action(t,qYr(t,r),this.options.actions);this.state.keypress=n,this.emit("keypress",t,n),this.emit("state",this.state.clone());let a=this.options[n.action]||this[n.action]||this.dispatch;if(typeof a=="function")return await a.call(this,t,n);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(D_e.code.beep)}cursorHide(){this.stdout.write(D_e.cursor.hide());let t=OV.onExit(()=>this.cursorShow());this.on("close",()=>{this.cursorShow(),t()})}cursorShow(){this.stdout.write(D_e.cursor.show())}write(t){t&&(this.stdout&&this.state.show!==!1&&this.stdout.write(t),this.state.buffer+=t)}clear(t=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!t||this.options.show===!1)&&this.stdout.write(D_e.cursor.down(t)+D_e.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:t,after:r,rest:n}=this.sections(),{cursor:a,initial:o="",input:l="",value:A=""}=this,f=this.state.size=n.length,I={after:r,cursor:a,initial:o,input:l,prompt:t,size:f,value:A},C=D_e.cursor.restore(I);C&&this.stdout.write(C)}sections(){let{buffer:t,input:r,prompt:n}=this.state;n=pos(n);let a=pos(t),o=a.indexOf(n),l=a.slice(0,o),f=a.slice(o).split(` `),I=f[0],C=f[f.length-1],E=(n+(r?" "+r:"")).length,N=Et.call(this,this.value),this.result=()=>n.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),o=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),o())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(t,r)=>{if(this.once("submit",t),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(t,r,n){let{options:a,state:o,symbols:l,timers:A}=this,f=A&&A[t];o.timer=f;let I=a[t]||o[t]||l[t],C=r&&r[t]!=null?r[t]:await I;if(C==="")return C;let b=await this.resolve(C,o,r,n);return!b&&r&&r[t]?this.resolve(I,o,r,n):b}async prefix(){let t=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,n=this.state;return n.timer=r,OV.isObject(t)&&(t=t[n.status]||t.pending),OV.hasColor(t)?t:(this.styles[n.status]||this.styles.pending)(t)}async message(){let t=await this.element("message");return OV.hasColor(t)?t:this.styles.strong(t)}async separator(){let t=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,n=this.state;n.timer=r;let a=t[n.status]||t.pending||n.separator,o=await this.resolve(a,n);return OV.isObject(o)&&(o=o[n.status]||o.pending),OV.hasColor(o)?o:this.styles.muted(o)}async pointer(t,r){let n=await this.element("pointer",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=this.index===r,l=o?a.primary:I=>I,A=await this.resolve(n[o?"on":"off"]||n,this.state),f=OV.hasColor(A)?A:l(A);return o?f:" ".repeat(A.length)}}async indicator(t,r){let n=await this.element("indicator",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=t.enabled===!0,l=o?a.success:a.dark,A=n[o?"on":"off"]||n;return OV.hasColor(A)?A:l(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let t=await this.element("hint");return OV.hasColor(t)?t:this.styles.muted(t)}}error(t){return this.state.submitted?"":t||this.state.error}format(t){return t}result(t){return t}validate(t){return this.options.required===!0?this.isValue(t):!0}isValue(t){return t!=null&&t!==""}resolve(t,...r){return OV.resolve(this,t,...r)}get base(){return e.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||OV.height(this.stdout,25)}get width(){return this.options.columns||OV.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(t){this.state.cursor=t}get cursor(){return this.state.cursor}set input(t){this.state.input=t}get input(){return this.state.input}set value(t){this.state.value=t}get value(){let{input:t,value:r}=this.state,n=[r,t].find(this.isValue.bind(this));return this.isValue(n)?n:this.initial}static get prompt(){return t=>new this(t).run()}};function Ypl(e){let t=a=>e[a]===void 0||typeof e[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],n=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(e.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let o=e.options[a];typeof o=="function"&&t(a)?n.includes(a)||(e[a]=o.bind(e)):typeof e[a]!="function"&&(e[a]=o)}}function Qpl(e){typeof e=="number"&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=a=>a%2===0?` -`:" ",n=[];for(let a=0;a<4;a++){let o=r(a);t[a]?n.push(o.repeat(t[a])):n.push("")}return n}fos.exports=$Yr});var mos=H((P$u,hos)=>{"use strict";var Xpl=zG(),Ios={default(e,t){return t},checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||"",t},input(e,t){throw new Error("input role is not implemented yet")},option(e,t){return Ios.default(e,t)},radio(e,t){throw new Error("radio role is not implemented yet")},separator(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||e.symbols.line.repeat(5),t},spacer(e,t){return t}};hos.exports=(e,t={})=>{let r=Xpl.merge({},Ios,t.roles);return r[e]||r.default}});var Fje=H((W$u,yos)=>{"use strict";var Jpl=q5(),Upl=Hxe(),Kpl=mos(),Jkt=zG(),{reorder:eQr,scrollUp:jpl,scrollDown:zpl,isObject:Cos,swap:qpl}=Jkt,tQr=class extends Upl{constructor(t){super(t),this.cursorHide(),this.maxSelected=t.maxSelected||1/0,this.multiple=t.multiple||!1,this.initial=t.initial||0,this.delay=t.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:t,initial:r,autofocus:n,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(t)),this.choices.forEach(o=>o.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Cos(r)&&(r=Object.keys(r)),Array.isArray(r)?(n!=null&&(this.index=this.findIndex(n)),r.forEach(o=>this.enable(this.find(o))),await this.render()):(n!=null&&(r=n),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(t,r){this.state.loadingChoices=!0;let n=[],a=0,o=async(l,A)=>{typeof l=="function"&&(l=await l.call(this)),l instanceof Promise&&(l=await l);for(let f=0;f(this.state.loadingChoices=!1,l))}async toChoice(t,r,n){if(typeof t=="function"&&(t=await t.call(this,this)),t instanceof Promise&&(t=await t),typeof t=="string"&&(t={name:t}),t.normalized)return t;t.normalized=!0;let a=t.value;if(t=Kpl(t.role,this.options)(this,t),typeof t.disabled=="string"&&!t.hint&&(t.hint=t.disabled,t.disabled=!0),t.disabled===!0&&t.hint==null&&(t.hint="(disabled)"),t.index!=null)return t;t.name=t.name||t.key||t.title||t.value||t.message,t.message=t.message||t.name||"",t.value=[t.value,t.name].find(this.isValue.bind(this)),t.input="",t.index=r,t.cursor=0,Jkt.define(t,"parent",n),t.level=n?n.level+1:1,t.indent==null&&(t.indent=n?n.indent+" ":t.indent||""),t.path=n?n.path+"."+t.name:t.name,t.enabled=!!(this.multiple&&!this.isDisabled(t)&&(t.enabled||this.isSelected(t))),this.isDisabled(t)||(this.longest=Math.max(this.longest,Jpl(t.message).length));let l={...t};return t.reset=(A=l.input,f=l.value)=>{for(let I of Object.keys(l))t[I]=l[I];t.input=A,t.value=f},a==null&&typeof t.initial=="function"&&(t.input=await t.initial.call(this,this.state,t,r)),t}async onChoice(t,r){this.emit("choice",t,r,this),typeof t.onChoice=="function"&&await t.onChoice.call(this,this.state,t,r)}async addChoice(t,r,n){let a=await this.toChoice(t,r,n);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(t,r,n){let a={name:"New choice name?",editable:!0,newChoice:!0,...t},o=await this.addChoice(a,r,n);return o.updateChoice=()=>{delete o.newChoice,o.name=o.message=o.input,o.input="",o.cursor=0},this.render()}indent(t){return t.indent==null?t.level>1?" ".repeat(t.level-1):"":t.indent}dispatch(t,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(t,r){return typeof r!="boolean"&&(r=t.enabled),r&&!t.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=t.index,t.enabled=r&&!this.isDisabled(t),t)}space(){if(!this.multiple)return this.alert();if(this.focused)return this.toggle(this.focused),this.render()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!t),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(t=>t.enabled=!t.enabled),this.render())}g(){if(!this.choices.some(r=>!!r.parent))return this.a();let t=this.focused;return this.toggle(t.parent&&!t.choices?t.parent:t),this.render()}toggle(t,r){if(!t.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!t.enabled),t.enabled=r,t.choices&&t.choices.forEach(a=>this.toggle(a,r));let n=t.parent;for(;n;){let a=n.choices.filter(o=>this.isDisabled(o));n.enabled=a.every(o=>o.enabled===!0),n=n.parent}return _os(this,this.choices),this.emit("toggle",t,this),t}enable(t){return this.selected.length>=this.maxSelected?this.alert():(t.enabled=!this.isDisabled(t),t.choices&&t.choices.forEach(this.enable.bind(this)),t)}disable(t){return t.enabled=!1,t.choices&&t.choices.forEach(this.disable.bind(this)),t}number(t){this.num+=t;let r=n=>{let a=Number(n);if(a>this.choices.length-1)return this.alert();let o=this.focused,l=this.choices.find(A=>a===A.index);if(!l.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(l)===-1){let A=eQr(this.choices),f=A.indexOf(l);if(o.index>f){let I=A.slice(f,f+this.limit),C=A.filter(b=>!I.includes(b));this.choices=I.concat(C)}else{let I=f-this.limit+1;this.choices=A.slice(I).concat(A.slice(0,I))}}return this.index=this.choices.indexOf(l),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(n=>{let a=this.choices.length,o=this.num,l=(A=!1,f)=>{clearTimeout(this.numberTimeout),A&&(f=r(o)),this.num="",n(f)};if(o==="0"||o.length===1&&+(o+"0")>a)return l(!0);if(Number(o)>a)return l(!1,this.alert());this.numberTimeout=setTimeout(()=>l(!0),this.delay)})}home(){return this.choices=eQr(this.choices),this.index=0,this.render()}end(){let t=this.choices.length-this.limit,r=eQr(this.choices);return this.choices=r.slice(t).concat(r.slice(0,t)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===0?this.alert():t>r&&n===0?this.scrollUp():(this.index=(n-1%t+t)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.up():this.render())}down(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===r-1?this.alert():t>r&&n===r-1?this.scrollDown():(this.index=(n+1)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.down():this.render())}scrollUp(t=0){return this.choices=jpl(this.choices),this.index=t,this.isDisabled()?this.up():this.render()}scrollDown(t=this.visible.length-1){return this.choices=zpl(this.choices),this.index=t,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(t){qpl(this.choices,this.index,t)}allChoicesAreDisabled(t=this.choices){return t.every(r=>this.isDisabled(r))}isDisabled(t=this.focused){return t&&["disabled","collapsed","hidden","completing","readonly"].some(n=>t[n]===!0)?!0:t&&t.role==="heading"}isEnabled(t=this.focused){if(Array.isArray(t))return t.every(r=>this.isEnabled(r));if(t.choices){let r=t.choices.filter(n=>!this.isDisabled(n));return t.enabled&&r.every(n=>this.isEnabled(n))}return t.enabled&&!this.isDisabled(t)}isChoice(t,r){return t.name===r||t.index===Number(r)}isSelected(t){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(t,r)):this.isChoice(t,this.initial)}map(t=[],r="value"){return[].concat(t||[]).reduce((n,a)=>(n[a]=this.find(a,r),n),{})}filter(t,r){let a=typeof t=="function"?t:(A,f)=>[A.name,f].includes(t),l=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?l.map(A=>A[r]):l}find(t,r){if(Cos(t))return r?t[r]:t;let a=typeof t=="function"?t:(l,A)=>[l.name,A].includes(t),o=this.choices.find(a);if(o)return r?o[r]:o}findIndex(t){return this.choices.indexOf(this.find(t))}async submit(){let t=this.focused;if(!t)return this.alert();if(t.newChoice)return t.input?(t.updateChoice(),this.render()):this.alert();if(this.choices.some(l=>l.newChoice))return this.alert();let{reorder:r,sort:n}=this.options,a=this.multiple===!0,o=this.selected;return o===void 0?this.alert():(Array.isArray(o)&&r!==!1&&n!==!0&&(o=Jkt.reorder(o)),this.value=a?o.map(l=>l.name):o.name,super.submit())}set choices(t=[]){this.state._choices=this.state._choices||[],this.state.choices=t;for(let r of t)this.state._choices.some(n=>n.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let n=this.find(r);n&&(this.initial=n.index,this.focus(n,!0))}}}get choices(){return _os(this,this.state.choices||[])}set visible(t){this.state.visible=t}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(t){this.state.limit=t}get limit(){let{state:t,options:r,choices:n}=this,a=t.limit||this._limit||r.limit||n.length;return Math.min(a,this.height)}set value(t){super.value=t}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(t){this.state.index=t}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let t=this.choices[this.index];return t&&this.state.submitted&&this.multiple!==!0&&(t.enabled=!0),t}get selectable(){return this.choices.filter(t=>!this.isDisabled(t))}get selected(){return this.multiple?this.enabled:this.focused}};function _os(e,t){if(t instanceof Promise)return t;if(typeof t=="function"){if(Jkt.isAsyncFn(t))return t;t=t.call(e,e)}for(let r of t){if(Array.isArray(r.choices)){let n=r.choices.filter(a=>!e.isDisabled(a));r.enabled=n.every(a=>a.enabled===!0)}e.isDisabled(r)===!0&&delete r.enabled}return t}yos.exports=tQr});var rue=H((O$u,bos)=>{"use strict";var $pl=Fje(),rQr=zG(),nQr=class extends $pl{constructor(t){super(t),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(t,r){if(this.multiple)return this[r.name]?await this[r.name](t,r):await super.dispatch(t,r);this.alert()}separator(){if(this.options.separator)return super.separator();let t=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():t}pointer(t,r){return!this.multiple||this.options.pointer?super.pointer(t,r):""}indicator(t,r){return this.multiple?super.indicator(t,r):""}choiceMessage(t,r){let n=this.resolve(t.message,this.state,t,r);return t.role==="heading"&&!rQr.hasColor(n)&&(n=this.styles.strong(n)),this.resolve(n,this.state,t,r)}choiceSeparator(){return":"}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await this.indicator(t,r)+(t.pad||""),l=await this.resolve(t.hint,this.state,t,r);l&&!rQr.hasColor(l)&&(l=this.styles.muted(l));let A=this.indent(t),f=await this.choiceMessage(t,r),I=()=>[this.margin[3],A+a+o,f,this.margin[1],l].filter(Boolean).join(" ");return t.role==="heading"?I():t.disabled?(rQr.hasColor(f)||(f=this.styles.disabled(f)),I()):(n&&(f=this.styles.em(f)),I())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let t=this.visible.map(async(o,l)=>await this.renderChoice(o,l)),r=await Promise.all(t);r.length||r.push(this.styles.danger("No matching choices"));let n=this.margin[0]+r.join(` +`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=qYr.listen(this,this.keypress.bind(this)),this.once("close",this.stop),this.emit("start",this))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:t,options:r,result:n}=this;if(this.format=()=>t.call(this,this.value),this.result=()=>n.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),o=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),o())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(t,r)=>{if(this.once("submit",t),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(t,r,n){let{options:a,state:o,symbols:l,timers:A}=this,f=A&&A[t];o.timer=f;let I=a[t]||o[t]||l[t],C=r&&r[t]!=null?r[t]:await I;if(C==="")return C;let b=await this.resolve(C,o,r,n);return!b&&r&&r[t]?this.resolve(I,o,r,n):b}async prefix(){let t=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,n=this.state;return n.timer=r,OV.isObject(t)&&(t=t[n.status]||t.pending),OV.hasColor(t)?t:(this.styles[n.status]||this.styles.pending)(t)}async message(){let t=await this.element("message");return OV.hasColor(t)?t:this.styles.strong(t)}async separator(){let t=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,n=this.state;n.timer=r;let a=t[n.status]||t.pending||n.separator,o=await this.resolve(a,n);return OV.isObject(o)&&(o=o[n.status]||o.pending),OV.hasColor(o)?o:this.styles.muted(o)}async pointer(t,r){let n=await this.element("pointer",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=this.index===r,l=o?a.primary:I=>I,A=await this.resolve(n[o?"on":"off"]||n,this.state),f=OV.hasColor(A)?A:l(A);return o?f:" ".repeat(A.length)}}async indicator(t,r){let n=await this.element("indicator",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=t.enabled===!0,l=o?a.success:a.dark,A=n[o?"on":"off"]||n;return OV.hasColor(A)?A:l(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let t=await this.element("hint");return OV.hasColor(t)?t:this.styles.muted(t)}}error(t){return this.state.submitted?"":t||this.state.error}format(t){return t}result(t){return t}validate(t){return this.options.required===!0?this.isValue(t):!0}isValue(t){return t!=null&&t!==""}resolve(t,...r){return OV.resolve(this,t,...r)}get base(){return e.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||OV.height(this.stdout,25)}get width(){return this.options.columns||OV.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(t){this.state.cursor=t}get cursor(){return this.state.cursor}set input(t){this.state.input=t}get input(){return this.state.input}set value(t){this.state.value=t}get value(){let{input:t,value:r}=this.state,n=[r,t].find(this.isValue.bind(this));return this.isValue(n)?n:this.initial}static get prompt(){return t=>new this(t).run()}};function Qpl(e){let t=a=>e[a]===void 0||typeof e[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],n=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(e.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let o=e.options[a];typeof o=="function"&&t(a)?n.includes(a)||(e[a]=o.bind(e)):typeof e[a]!="function"&&(e[a]=o)}}function Xpl(e){typeof e=="number"&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=a=>a%2===0?` +`:" ",n=[];for(let a=0;a<4;a++){let o=r(a);t[a]?n.push(o.repeat(t[a])):n.push("")}return n}fos.exports=$Yr});var mos=H((W$u,hos)=>{"use strict";var Jpl=zG(),Ios={default(e,t){return t},checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||"",t},input(e,t){throw new Error("input role is not implemented yet")},option(e,t){return Ios.default(e,t)},radio(e,t){throw new Error("radio role is not implemented yet")},separator(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||e.symbols.line.repeat(5),t},spacer(e,t){return t}};hos.exports=(e,t={})=>{let r=Jpl.merge({},Ios,t.roles);return r[e]||r.default}});var Fje=H((O$u,yos)=>{"use strict";var Upl=q5(),Kpl=Hxe(),jpl=mos(),Jkt=zG(),{reorder:eQr,scrollUp:zpl,scrollDown:qpl,isObject:Cos,swap:$pl}=Jkt,tQr=class extends Kpl{constructor(t){super(t),this.cursorHide(),this.maxSelected=t.maxSelected||1/0,this.multiple=t.multiple||!1,this.initial=t.initial||0,this.delay=t.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:t,initial:r,autofocus:n,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(t)),this.choices.forEach(o=>o.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Cos(r)&&(r=Object.keys(r)),Array.isArray(r)?(n!=null&&(this.index=this.findIndex(n)),r.forEach(o=>this.enable(this.find(o))),await this.render()):(n!=null&&(r=n),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(t,r){this.state.loadingChoices=!0;let n=[],a=0,o=async(l,A)=>{typeof l=="function"&&(l=await l.call(this)),l instanceof Promise&&(l=await l);for(let f=0;f(this.state.loadingChoices=!1,l))}async toChoice(t,r,n){if(typeof t=="function"&&(t=await t.call(this,this)),t instanceof Promise&&(t=await t),typeof t=="string"&&(t={name:t}),t.normalized)return t;t.normalized=!0;let a=t.value;if(t=jpl(t.role,this.options)(this,t),typeof t.disabled=="string"&&!t.hint&&(t.hint=t.disabled,t.disabled=!0),t.disabled===!0&&t.hint==null&&(t.hint="(disabled)"),t.index!=null)return t;t.name=t.name||t.key||t.title||t.value||t.message,t.message=t.message||t.name||"",t.value=[t.value,t.name].find(this.isValue.bind(this)),t.input="",t.index=r,t.cursor=0,Jkt.define(t,"parent",n),t.level=n?n.level+1:1,t.indent==null&&(t.indent=n?n.indent+" ":t.indent||""),t.path=n?n.path+"."+t.name:t.name,t.enabled=!!(this.multiple&&!this.isDisabled(t)&&(t.enabled||this.isSelected(t))),this.isDisabled(t)||(this.longest=Math.max(this.longest,Upl(t.message).length));let l={...t};return t.reset=(A=l.input,f=l.value)=>{for(let I of Object.keys(l))t[I]=l[I];t.input=A,t.value=f},a==null&&typeof t.initial=="function"&&(t.input=await t.initial.call(this,this.state,t,r)),t}async onChoice(t,r){this.emit("choice",t,r,this),typeof t.onChoice=="function"&&await t.onChoice.call(this,this.state,t,r)}async addChoice(t,r,n){let a=await this.toChoice(t,r,n);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(t,r,n){let a={name:"New choice name?",editable:!0,newChoice:!0,...t},o=await this.addChoice(a,r,n);return o.updateChoice=()=>{delete o.newChoice,o.name=o.message=o.input,o.input="",o.cursor=0},this.render()}indent(t){return t.indent==null?t.level>1?" ".repeat(t.level-1):"":t.indent}dispatch(t,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(t,r){return typeof r!="boolean"&&(r=t.enabled),r&&!t.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=t.index,t.enabled=r&&!this.isDisabled(t),t)}space(){if(!this.multiple)return this.alert();if(this.focused)return this.toggle(this.focused),this.render()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!t),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(t=>t.enabled=!t.enabled),this.render())}g(){if(!this.choices.some(r=>!!r.parent))return this.a();let t=this.focused;return this.toggle(t.parent&&!t.choices?t.parent:t),this.render()}toggle(t,r){if(!t.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!t.enabled),t.enabled=r,t.choices&&t.choices.forEach(a=>this.toggle(a,r));let n=t.parent;for(;n;){let a=n.choices.filter(o=>this.isDisabled(o));n.enabled=a.every(o=>o.enabled===!0),n=n.parent}return _os(this,this.choices),this.emit("toggle",t,this),t}enable(t){return this.selected.length>=this.maxSelected?this.alert():(t.enabled=!this.isDisabled(t),t.choices&&t.choices.forEach(this.enable.bind(this)),t)}disable(t){return t.enabled=!1,t.choices&&t.choices.forEach(this.disable.bind(this)),t}number(t){this.num+=t;let r=n=>{let a=Number(n);if(a>this.choices.length-1)return this.alert();let o=this.focused,l=this.choices.find(A=>a===A.index);if(!l.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(l)===-1){let A=eQr(this.choices),f=A.indexOf(l);if(o.index>f){let I=A.slice(f,f+this.limit),C=A.filter(b=>!I.includes(b));this.choices=I.concat(C)}else{let I=f-this.limit+1;this.choices=A.slice(I).concat(A.slice(0,I))}}return this.index=this.choices.indexOf(l),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(n=>{let a=this.choices.length,o=this.num,l=(A=!1,f)=>{clearTimeout(this.numberTimeout),A&&(f=r(o)),this.num="",n(f)};if(o==="0"||o.length===1&&+(o+"0")>a)return l(!0);if(Number(o)>a)return l(!1,this.alert());this.numberTimeout=setTimeout(()=>l(!0),this.delay)})}home(){return this.choices=eQr(this.choices),this.index=0,this.render()}end(){let t=this.choices.length-this.limit,r=eQr(this.choices);return this.choices=r.slice(t).concat(r.slice(0,t)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===0?this.alert():t>r&&n===0?this.scrollUp():(this.index=(n-1%t+t)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.up():this.render())}down(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===r-1?this.alert():t>r&&n===r-1?this.scrollDown():(this.index=(n+1)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.down():this.render())}scrollUp(t=0){return this.choices=zpl(this.choices),this.index=t,this.isDisabled()?this.up():this.render()}scrollDown(t=this.visible.length-1){return this.choices=qpl(this.choices),this.index=t,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(t){$pl(this.choices,this.index,t)}allChoicesAreDisabled(t=this.choices){return t.every(r=>this.isDisabled(r))}isDisabled(t=this.focused){return t&&["disabled","collapsed","hidden","completing","readonly"].some(n=>t[n]===!0)?!0:t&&t.role==="heading"}isEnabled(t=this.focused){if(Array.isArray(t))return t.every(r=>this.isEnabled(r));if(t.choices){let r=t.choices.filter(n=>!this.isDisabled(n));return t.enabled&&r.every(n=>this.isEnabled(n))}return t.enabled&&!this.isDisabled(t)}isChoice(t,r){return t.name===r||t.index===Number(r)}isSelected(t){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(t,r)):this.isChoice(t,this.initial)}map(t=[],r="value"){return[].concat(t||[]).reduce((n,a)=>(n[a]=this.find(a,r),n),{})}filter(t,r){let a=typeof t=="function"?t:(A,f)=>[A.name,f].includes(t),l=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?l.map(A=>A[r]):l}find(t,r){if(Cos(t))return r?t[r]:t;let a=typeof t=="function"?t:(l,A)=>[l.name,A].includes(t),o=this.choices.find(a);if(o)return r?o[r]:o}findIndex(t){return this.choices.indexOf(this.find(t))}async submit(){let t=this.focused;if(!t)return this.alert();if(t.newChoice)return t.input?(t.updateChoice(),this.render()):this.alert();if(this.choices.some(l=>l.newChoice))return this.alert();let{reorder:r,sort:n}=this.options,a=this.multiple===!0,o=this.selected;return o===void 0?this.alert():(Array.isArray(o)&&r!==!1&&n!==!0&&(o=Jkt.reorder(o)),this.value=a?o.map(l=>l.name):o.name,super.submit())}set choices(t=[]){this.state._choices=this.state._choices||[],this.state.choices=t;for(let r of t)this.state._choices.some(n=>n.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let n=this.find(r);n&&(this.initial=n.index,this.focus(n,!0))}}}get choices(){return _os(this,this.state.choices||[])}set visible(t){this.state.visible=t}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(t){this.state.limit=t}get limit(){let{state:t,options:r,choices:n}=this,a=t.limit||this._limit||r.limit||n.length;return Math.min(a,this.height)}set value(t){super.value=t}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(t){this.state.index=t}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let t=this.choices[this.index];return t&&this.state.submitted&&this.multiple!==!0&&(t.enabled=!0),t}get selectable(){return this.choices.filter(t=>!this.isDisabled(t))}get selected(){return this.multiple?this.enabled:this.focused}};function _os(e,t){if(t instanceof Promise)return t;if(typeof t=="function"){if(Jkt.isAsyncFn(t))return t;t=t.call(e,e)}for(let r of t){if(Array.isArray(r.choices)){let n=r.choices.filter(a=>!e.isDisabled(a));r.enabled=n.every(a=>a.enabled===!0)}e.isDisabled(r)===!0&&delete r.enabled}return t}yos.exports=tQr});var rue=H((M$u,bos)=>{"use strict";var efl=Fje(),rQr=zG(),nQr=class extends efl{constructor(t){super(t),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(t,r){if(this.multiple)return this[r.name]?await this[r.name](t,r):await super.dispatch(t,r);this.alert()}separator(){if(this.options.separator)return super.separator();let t=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():t}pointer(t,r){return!this.multiple||this.options.pointer?super.pointer(t,r):""}indicator(t,r){return this.multiple?super.indicator(t,r):""}choiceMessage(t,r){let n=this.resolve(t.message,this.state,t,r);return t.role==="heading"&&!rQr.hasColor(n)&&(n=this.styles.strong(n)),this.resolve(n,this.state,t,r)}choiceSeparator(){return":"}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await this.indicator(t,r)+(t.pad||""),l=await this.resolve(t.hint,this.state,t,r);l&&!rQr.hasColor(l)&&(l=this.styles.muted(l));let A=this.indent(t),f=await this.choiceMessage(t,r),I=()=>[this.margin[3],A+a+o,f,this.margin[1],l].filter(Boolean).join(" ");return t.role==="heading"?I():t.disabled?(rQr.hasColor(f)||(f=this.styles.disabled(f)),I()):(n&&(f=this.styles.em(f)),I())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let t=this.visible.map(async(o,l)=>await this.renderChoice(o,l)),r=await Promise.all(t);r.length||r.push(this.styles.danger("No matching choices"));let n=this.margin[0]+r.join(` `),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,n].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(t=>this.styles.primary(t.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:t,size:r}=this.state,n="",a=await this.header(),o=await this.prefix(),l=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(n=[o,A,l,""].join(" "),this.state.prompt=n);let f=await this.format(),I=await this.error()||await this.hint(),C=await this.renderChoices(),b=await this.footer();f&&(n+=f),I&&!n.includes(I)&&(n+=" "+I),t&&!f&&!C.trim()&&this.multiple&&this.emptyError!=null&&(n+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,n,C,b].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};bos.exports=nQr});var Sos=H((M$u,Eos)=>{"use strict";var efl=rue(),tfl=(e,t)=>{let r=e?new RegExp(e,"ig"):/$^/;return n=>e?n.replace(r,a=>t(a)):n},iQr=class extends efl{constructor(t){super(t),this.cursorShow()}moveCursor(t){this.state.cursor+=t}dispatch(t){return this.append(t)}space(t){return this.options.multiple?super.space(t):this.append(t)}append(t){let{cursor:r,input:n}=this.state;return this.input=n.slice(0,r)+t+n.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:t,input:r}=this.state;return r?(this.input=r.slice(0,t-1)+r.slice(t),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:t,input:r}=this.state;return r[t]===void 0?this.alert():(this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.complete())}number(t){return this.append(t)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(t=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,t,r);let n=t.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(n))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(t=>this.styles.primary(t.message)).join(", ");if(this.state.submitted){let t=this.value=this.input=this.focused.value;return this.styles.primary(t)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let t=this.options.highlight||this.styles.complement,r=(o,l)=>o&&(t.stack?t(o):t.call(this,o)),n=tfl(this.input,r),a=this.choices;this.choices=a.map(o=>({...o,message:n(o.message)})),await super.render(),this.choices=a}submit(){return this.options.multiple&&(this.value=this.selected.map(t=>t.name)),super.submit()}};Eos.exports=iQr});var oQr=H((H$u,vos)=>{"use strict";var sQr=zG();vos.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:n="",pos:a,showCursor:o=!0,color:l}=t,A=l||e.styles.placeholder,f=sQr.inverse(e.styles.primary),I=F=>f(e.styles.black(F)),C=r,b=" ",E=I(b);if(e.blink&&e.blink.off===!0&&(I=F=>F,E=""),o&&a===0&&n===""&&r==="")return I(b);if(o&&a===0&&(r===n||r===""))return I(n[0])+A(n.slice(1));n=sQr.isPrimitive(n)?`${n}`:"",r=sQr.isPrimitive(r)?`${r}`:"";let N=n&&n.startsWith(r)&&n!==r,B=N?I(n[r.length]):E;if(a!==r.length&&o===!0&&(C=r.slice(0,a)+I(r[a])+r.slice(a+1),B=""),o===!1&&(B=""),N){let F=e.styles.unstyle(C+B);return C+B+A(n.slice(F.length))}return C+B}});var Ukt=H((Y$u,Bos)=>{"use strict";var rfl=q5(),nfl=rue(),ifl=oQr(),aQr=class extends nfl{constructor(t){super({...t,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(t){return await super.reset(),t===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(t){return!!t&&this.append(t)}append(t){let r=this.focused;if(!r)return this.alert();let{cursor:n,input:a}=r;return r.value=r.input=a.slice(0,n)+t+a.slice(n),r.cursor++,this.render()}delete(){let t=this.focused;if(!t||t.cursor<=0)return this.alert();let{cursor:r,input:n}=t;return t.value=t.input=n.slice(0,r-1)+n.slice(r),t.cursor--,this.render()}deleteForward(){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:n}=t;if(n[r]===void 0)return this.alert();let a=`${n}`.slice(0,r)+`${n}`.slice(r+1);return t.value=t.input=a,this.render()}right(){let t=this.focused;return t?t.cursor>=t.input.length?this.alert():(t.cursor++,this.render()):this.alert()}left(){let t=this.focused;return t?t.cursor<=0?this.alert():(t.cursor--,this.render()):this.alert()}space(t,r){return this.dispatch(t,r)}number(t,r){return this.dispatch(t,r)}next(){let t=this.focused;if(!t)return this.alert();let{initial:r,input:n}=t;return r&&r.startsWith(n)&&n!==r?(t.value=t.input=r,t.cursor=t.value.length,this.render()):super.next()}prev(){let t=this.focused;return t?t.cursor===0?super.prev():(t.value=t.input="",t.cursor=0,this.render()):this.alert()}separator(){return""}format(t){return this.state.submitted?"":super.format(t)}pointer(){return""}indicator(t){return t.input?"\u29BF":"\u2299"}async choiceSeparator(t,r){let n=await this.resolve(t.separator,this.state,t,r)||":";return n?" "+this.styles.disabled(n):""}async renderChoice(t,r){await this.onChoice(t,r);let{state:n,styles:a}=this,{cursor:o,initial:l="",name:A,input:f=""}=t,{muted:I,submitted:C,primary:b,danger:E}=a,N=this.index===r,B=t.validate||(()=>!0),F=await this.choiceSeparator(t,r),Q=t.message;this.align==="right"&&(Q=Q.padStart(this.longest+1," ")),this.align==="left"&&(Q=Q.padEnd(this.longest+1," "));let X=this.values[A]=f||l,ae=f?"success":"dark";await B.call(t,X,this.state)!==!0&&(ae="danger");let ne=a[ae],ce=ne(await this.indicator(t,r))+(t.pad||""),fe=this.indent(t),ue=()=>[fe,ce,Q+F,f].filter(Boolean).join(" ");if(n.submitted)return Q=rfl(Q),f=C(f),ue();if(t.format)f=await t.format.call(this,f,t,r);else{let de=this.styles.muted;f=ifl(this,{input:f,initial:l,pos:o,showCursor:N,color:de})}return this.isValue(f)||(f=this.styles.muted(this.symbols.ellipsis)),t.result&&(this.values[A]=await t.result.call(this,X,t,r)),N&&(Q=b(Q)),t.error?f+=(f?" ":"")+E(t.error.trim()):t.hint&&(f+=(f?" ":"")+I(t.hint.trim())),ue()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Bos.exports=aQr});var cQr=H((Q$u,Tos)=>{"use strict";var sfl=Ukt(),ofl=()=>{throw new Error("expected prompt to have a custom authenticate method")},wos=(e=ofl)=>{class t extends sfl{constructor(n){super(n)}async submit(){this.value=await e.call(this,this.values,this.state),super.base.submit.call(this)}static create(n){return wos(n)}}return t};Tos.exports=wos()});var Dos=H((X$u,Nos)=>{"use strict";var afl=cQr();function cfl(e,t){return e.username===this.options.username&&e.password===this.options.password}var Ros=(e=cfl)=>{let t=[{name:"username",message:"username"},{name:"password",message:"password",format(n){return this.options.showPassword?n:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(n.length))}}];class r extends afl.create(e){constructor(a){super({...a,choices:t})}static create(a){return Ros(a)}}return r};Nos.exports=Ros()});var Kkt=H((J$u,kos)=>{"use strict";var lfl=Hxe(),{isPrimitive:ufl,hasColor:gfl}=zG(),lQr=class extends lfl{constructor(t){super(t),this.cursorHide()}async initialize(){let t=await this.resolve(this.initial,this.state);this.input=await this.cast(t),await super.initialize()}dispatch(t){return this.isValue(t)?(this.input=t,this.submit()):this.alert()}format(t){let{styles:r,state:n}=this;return n.submitted?r.success(t):r.primary(t)}cast(t){return this.isTrue(t)}isTrue(t){return/^[ty1]/i.test(t)}isFalse(t){return/^[fn0]/i.test(t)}isValue(t){return ufl(t)&&(this.isTrue(t)||this.isFalse(t))}async hint(){if(this.state.status==="pending"){let t=await this.element("hint");return gfl(t)?t:this.styles.muted(t)}}async render(){let{input:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=this.styles.muted(this.default),A=[n,o,l,a].filter(Boolean).join(" ");this.state.prompt=A;let f=await this.header(),I=this.value=this.cast(t),C=await this.format(I),b=await this.error()||await this.hint(),E=await this.footer();b&&!A.includes(b)&&(C+=" "+b),A+=" "+C,this.clear(r),this.write([f,A,E].filter(Boolean).join(` -`)),this.restore()}set value(t){super.value=t}get value(){return this.cast(super.value)}};kos.exports=lQr});var Gos=H((U$u,xos)=>{"use strict";var Afl=Kkt(),uQr=class extends Afl{constructor(t){super(t),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};xos.exports=uQr});var Zos=H((K$u,Fos)=>{"use strict";var dfl=rue(),pfl=Ukt(),Yxe=pfl.prototype,gQr=class extends dfl{constructor(t){super({...t,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(t,r){let n=this.focused,a=n.parent||{};return!n.editable&&!a.editable&&(t==="a"||t==="i")?super[t]():Yxe.dispatch.call(this,t,r)}append(t,r){return Yxe.append.call(this,t,r)}delete(t,r){return Yxe.delete.call(this,t,r)}space(t){return this.focused.editable?this.append(t):super.space()}number(t){return this.focused.editable?this.append(t):super.number(t)}next(){return this.focused.editable?Yxe.next.call(this):super.next()}prev(){return this.focused.editable?Yxe.prev.call(this):super.prev()}async indicator(t,r){let n=t.indicator||"",a=t.editable?n:super.indicator(t,r);return await this.resolve(a,this.state,t,r)||""}indent(t){return t.role==="heading"?"":t.editable?" ":" "}async renderChoice(t,r){return t.indent="",t.editable?Yxe.renderChoice.call(this,t,r):super.renderChoice(t,r)}error(){return""}footer(){return this.state.error}async validate(){let t=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let n=r.parent?this.value[r.parent.name]:this.value;if(r.editable?n=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(n=r.enabled===!0),t=await r.validate(n,this.state),t!==!0)break}return t!==!0&&(this.state.error=typeof t=="string"?t:"Invalid Input"),t}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(t=>t.newChoice))return this.alert();this.value={};for(let t of this.choices){let r=t.parent?this.value[t.parent.name]:this.value;if(t.role==="heading"){this.value[t.name]={};continue}t.editable?r[t.name]=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r[t.name]=t.enabled===!0)}return this.base.submit.call(this)}};Fos.exports=gQr});var k_e=H((j$u,Los)=>{"use strict";var ffl=Hxe(),Ifl=HYr(),hfl=oQr(),{isPrimitive:mfl}=zG(),AQr=class extends ffl{constructor(t){super(t),this.initial=mfl(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[],this.keypressTimeout=this.options.keypressTimeout!==void 0?this.options.keypressTimeout:null}async keypress(t,r=t?Ifl(t,{}):{}){let n=Date.now(),a=n-this.lastKeypress;this.lastKeypress=n;let o=r.name==="return"||r.name==="enter",l=this.state.prevKeypress,A;if(this.state.prevKeypress=r,this.keypressTimeout!=null&&o){if(a=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(t){return!!t}async format(t=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(t||r):hfl(this,{input:t,initial:r,pos:this.cursor})}async render(){let t=this.state.size,r=await this.prefix(),n=await this.separator(),a=await this.message(),o=[r,a,n].filter(Boolean).join(" ");this.state.prompt=o;let l=await this.header(),A=await this.format(),f=await this.error()||await this.hint(),I=await this.footer();f&&!A.includes(f)&&(A+=" "+f),o+=" "+A,this.clear(t),this.write([l,o,I].filter(Boolean).join(` -`)),this.restore()}};Los.exports=AQr});var Pos=H((z$u,Vos)=>{"use strict";var Cfl=e=>e.filter((t,r)=>e.lastIndexOf(t)===r),jkt=e=>Cfl(e).filter(Boolean);Vos.exports=(e,t={},r="")=>{let{past:n=[],present:a=""}=t,o,l;switch(e){case"prev":case"undo":return o=n.slice(0,n.length-1),l=n[n.length-1]||"",{past:jkt([r,...o]),present:l};case"next":case"redo":return o=n.slice(1),l=n[0]||"",{past:jkt([...o,r]),present:l};case"save":return{past:jkt([...n,r]),present:""};case"remove":return l=jkt(n.filter(A=>A!==r)),a="",l.length&&(a=l.pop()),{past:l,present:a};default:throw new Error(`Invalid action: "${e}"`)}}});var pQr=H((q$u,Oos)=>{"use strict";var _fl=k_e(),Wos=Pos(),dQr=class extends _fl{constructor(t){super(t);let r=this.options.history;if(r&&r.store){let n=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:n},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(t){return this.store?(this.data=Wos(t,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=Wos("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Oos.exports=dQr});var Hos=H(($$u,Mos)=>{"use strict";var yfl=k_e(),fQr=class extends yfl{format(){return""}};Mos.exports=fQr});var Qos=H((eeg,Yos)=>{"use strict";var bfl=k_e(),IQr=class extends bfl{constructor(t={}){super(t),this.sep=this.options.separator||/, */,this.initial=t.initial||""}split(t=this.value){return t?String(t).split(this.sep):[]}format(){let t=this.state.submitted?this.styles.primary:r=>r;return this.list.map(t).join(", ")}async submit(t){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Yos.exports=IQr});var Jos=H((teg,Xos)=>{"use strict";var Efl=rue(),hQr=class extends Efl{constructor(t){super({...t,multiple:!0})}};Xos.exports=hQr});var CQr=H((reg,Uos)=>{"use strict";var Sfl=k_e(),mQr=class extends Sfl{constructor(t={}){super({style:"number",...t}),this.min=this.isValue(t.min)?this.toNumber(t.min):-1/0,this.max=this.isValue(t.max)?this.toNumber(t.max):1/0,this.delay=t.delay!=null?t.delay:1e3,this.float=t.float!==!1,this.round=t.round===!0||t.float===!1,this.major=t.major||10,this.minor=t.minor||1,this.initial=t.initial!=null?t.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(t){return!/[-+.]/.test(t)||t==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(t)}number(t){return super.append(t)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(t){let r=t||this.minor,n=this.toNumber(this.input);return n>this.max+r?this.alert():(this.input=`${n+r}`,this.render())}down(t){let r=t||this.minor,n=this.toNumber(this.input);return nthis.isValue(r));return this.value=this.toNumber(t||0),super.submit()}};Uos.exports=mQr});var jos=H((neg,Kos)=>{Kos.exports=CQr()});var qos=H((ieg,zos)=>{"use strict";var vfl=k_e(),_Qr=class extends vfl{constructor(t){super(t),this.cursorShow()}format(t=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(t.length)):""}};zos.exports=_Qr});var tas=H((seg,eas)=>{"use strict";var Bfl=q5(),wfl=Fje(),$os=zG(),yQr=class extends wfl{constructor(t={}){super(t),this.widths=[].concat(t.messageWidth||50),this.align=[].concat(t.align||"left"),this.linebreak=t.linebreak||!1,this.edgeLength=t.edgeLength||3,this.newline=t.newline||` +`)),this.write(this.margin[2]),this.restore()}};bos.exports=nQr});var Sos=H((H$u,Eos)=>{"use strict";var tfl=rue(),rfl=(e,t)=>{let r=e?new RegExp(e,"ig"):/$^/;return n=>e?n.replace(r,a=>t(a)):n},iQr=class extends tfl{constructor(t){super(t),this.cursorShow()}moveCursor(t){this.state.cursor+=t}dispatch(t){return this.append(t)}space(t){return this.options.multiple?super.space(t):this.append(t)}append(t){let{cursor:r,input:n}=this.state;return this.input=n.slice(0,r)+t+n.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:t,input:r}=this.state;return r?(this.input=r.slice(0,t-1)+r.slice(t),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:t,input:r}=this.state;return r[t]===void 0?this.alert():(this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.complete())}number(t){return this.append(t)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(t=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,t,r);let n=t.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(n))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(t=>this.styles.primary(t.message)).join(", ");if(this.state.submitted){let t=this.value=this.input=this.focused.value;return this.styles.primary(t)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let t=this.options.highlight||this.styles.complement,r=(o,l)=>o&&(t.stack?t(o):t.call(this,o)),n=rfl(this.input,r),a=this.choices;this.choices=a.map(o=>({...o,message:n(o.message)})),await super.render(),this.choices=a}submit(){return this.options.multiple&&(this.value=this.selected.map(t=>t.name)),super.submit()}};Eos.exports=iQr});var oQr=H((Y$u,vos)=>{"use strict";var sQr=zG();vos.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:n="",pos:a,showCursor:o=!0,color:l}=t,A=l||e.styles.placeholder,f=sQr.inverse(e.styles.primary),I=F=>f(e.styles.black(F)),C=r,b=" ",E=I(b);if(e.blink&&e.blink.off===!0&&(I=F=>F,E=""),o&&a===0&&n===""&&r==="")return I(b);if(o&&a===0&&(r===n||r===""))return I(n[0])+A(n.slice(1));n=sQr.isPrimitive(n)?`${n}`:"",r=sQr.isPrimitive(r)?`${r}`:"";let N=n&&n.startsWith(r)&&n!==r,B=N?I(n[r.length]):E;if(a!==r.length&&o===!0&&(C=r.slice(0,a)+I(r[a])+r.slice(a+1),B=""),o===!1&&(B=""),N){let F=e.styles.unstyle(C+B);return C+B+A(n.slice(F.length))}return C+B}});var Ukt=H((Q$u,Bos)=>{"use strict";var nfl=q5(),ifl=rue(),sfl=oQr(),aQr=class extends ifl{constructor(t){super({...t,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(t){return await super.reset(),t===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(t){return!!t&&this.append(t)}append(t){let r=this.focused;if(!r)return this.alert();let{cursor:n,input:a}=r;return r.value=r.input=a.slice(0,n)+t+a.slice(n),r.cursor++,this.render()}delete(){let t=this.focused;if(!t||t.cursor<=0)return this.alert();let{cursor:r,input:n}=t;return t.value=t.input=n.slice(0,r-1)+n.slice(r),t.cursor--,this.render()}deleteForward(){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:n}=t;if(n[r]===void 0)return this.alert();let a=`${n}`.slice(0,r)+`${n}`.slice(r+1);return t.value=t.input=a,this.render()}right(){let t=this.focused;return t?t.cursor>=t.input.length?this.alert():(t.cursor++,this.render()):this.alert()}left(){let t=this.focused;return t?t.cursor<=0?this.alert():(t.cursor--,this.render()):this.alert()}space(t,r){return this.dispatch(t,r)}number(t,r){return this.dispatch(t,r)}next(){let t=this.focused;if(!t)return this.alert();let{initial:r,input:n}=t;return r&&r.startsWith(n)&&n!==r?(t.value=t.input=r,t.cursor=t.value.length,this.render()):super.next()}prev(){let t=this.focused;return t?t.cursor===0?super.prev():(t.value=t.input="",t.cursor=0,this.render()):this.alert()}separator(){return""}format(t){return this.state.submitted?"":super.format(t)}pointer(){return""}indicator(t){return t.input?"\u29BF":"\u2299"}async choiceSeparator(t,r){let n=await this.resolve(t.separator,this.state,t,r)||":";return n?" "+this.styles.disabled(n):""}async renderChoice(t,r){await this.onChoice(t,r);let{state:n,styles:a}=this,{cursor:o,initial:l="",name:A,input:f=""}=t,{muted:I,submitted:C,primary:b,danger:E}=a,N=this.index===r,B=t.validate||(()=>!0),F=await this.choiceSeparator(t,r),Q=t.message;this.align==="right"&&(Q=Q.padStart(this.longest+1," ")),this.align==="left"&&(Q=Q.padEnd(this.longest+1," "));let X=this.values[A]=f||l,ae=f?"success":"dark";await B.call(t,X,this.state)!==!0&&(ae="danger");let ne=a[ae],ce=ne(await this.indicator(t,r))+(t.pad||""),fe=this.indent(t),ue=()=>[fe,ce,Q+F,f].filter(Boolean).join(" ");if(n.submitted)return Q=nfl(Q),f=C(f),ue();if(t.format)f=await t.format.call(this,f,t,r);else{let de=this.styles.muted;f=sfl(this,{input:f,initial:l,pos:o,showCursor:N,color:de})}return this.isValue(f)||(f=this.styles.muted(this.symbols.ellipsis)),t.result&&(this.values[A]=await t.result.call(this,X,t,r)),N&&(Q=b(Q)),t.error?f+=(f?" ":"")+E(t.error.trim()):t.hint&&(f+=(f?" ":"")+I(t.hint.trim())),ue()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Bos.exports=aQr});var cQr=H((X$u,Tos)=>{"use strict";var ofl=Ukt(),afl=()=>{throw new Error("expected prompt to have a custom authenticate method")},wos=(e=afl)=>{class t extends ofl{constructor(n){super(n)}async submit(){this.value=await e.call(this,this.values,this.state),super.base.submit.call(this)}static create(n){return wos(n)}}return t};Tos.exports=wos()});var Dos=H((J$u,Nos)=>{"use strict";var cfl=cQr();function lfl(e,t){return e.username===this.options.username&&e.password===this.options.password}var Ros=(e=lfl)=>{let t=[{name:"username",message:"username"},{name:"password",message:"password",format(n){return this.options.showPassword?n:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(n.length))}}];class r extends cfl.create(e){constructor(a){super({...a,choices:t})}static create(a){return Ros(a)}}return r};Nos.exports=Ros()});var Kkt=H((U$u,kos)=>{"use strict";var ufl=Hxe(),{isPrimitive:gfl,hasColor:Afl}=zG(),lQr=class extends ufl{constructor(t){super(t),this.cursorHide()}async initialize(){let t=await this.resolve(this.initial,this.state);this.input=await this.cast(t),await super.initialize()}dispatch(t){return this.isValue(t)?(this.input=t,this.submit()):this.alert()}format(t){let{styles:r,state:n}=this;return n.submitted?r.success(t):r.primary(t)}cast(t){return this.isTrue(t)}isTrue(t){return/^[ty1]/i.test(t)}isFalse(t){return/^[fn0]/i.test(t)}isValue(t){return gfl(t)&&(this.isTrue(t)||this.isFalse(t))}async hint(){if(this.state.status==="pending"){let t=await this.element("hint");return Afl(t)?t:this.styles.muted(t)}}async render(){let{input:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=this.styles.muted(this.default),A=[n,o,l,a].filter(Boolean).join(" ");this.state.prompt=A;let f=await this.header(),I=this.value=this.cast(t),C=await this.format(I),b=await this.error()||await this.hint(),E=await this.footer();b&&!A.includes(b)&&(C+=" "+b),A+=" "+C,this.clear(r),this.write([f,A,E].filter(Boolean).join(` +`)),this.restore()}set value(t){super.value=t}get value(){return this.cast(super.value)}};kos.exports=lQr});var Gos=H((K$u,xos)=>{"use strict";var dfl=Kkt(),uQr=class extends dfl{constructor(t){super(t),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};xos.exports=uQr});var Zos=H((j$u,Fos)=>{"use strict";var pfl=rue(),ffl=Ukt(),Yxe=ffl.prototype,gQr=class extends pfl{constructor(t){super({...t,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(t,r){let n=this.focused,a=n.parent||{};return!n.editable&&!a.editable&&(t==="a"||t==="i")?super[t]():Yxe.dispatch.call(this,t,r)}append(t,r){return Yxe.append.call(this,t,r)}delete(t,r){return Yxe.delete.call(this,t,r)}space(t){return this.focused.editable?this.append(t):super.space()}number(t){return this.focused.editable?this.append(t):super.number(t)}next(){return this.focused.editable?Yxe.next.call(this):super.next()}prev(){return this.focused.editable?Yxe.prev.call(this):super.prev()}async indicator(t,r){let n=t.indicator||"",a=t.editable?n:super.indicator(t,r);return await this.resolve(a,this.state,t,r)||""}indent(t){return t.role==="heading"?"":t.editable?" ":" "}async renderChoice(t,r){return t.indent="",t.editable?Yxe.renderChoice.call(this,t,r):super.renderChoice(t,r)}error(){return""}footer(){return this.state.error}async validate(){let t=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let n=r.parent?this.value[r.parent.name]:this.value;if(r.editable?n=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(n=r.enabled===!0),t=await r.validate(n,this.state),t!==!0)break}return t!==!0&&(this.state.error=typeof t=="string"?t:"Invalid Input"),t}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(t=>t.newChoice))return this.alert();this.value={};for(let t of this.choices){let r=t.parent?this.value[t.parent.name]:this.value;if(t.role==="heading"){this.value[t.name]={};continue}t.editable?r[t.name]=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r[t.name]=t.enabled===!0)}return this.base.submit.call(this)}};Fos.exports=gQr});var k_e=H((z$u,Los)=>{"use strict";var Ifl=Hxe(),hfl=HYr(),mfl=oQr(),{isPrimitive:Cfl}=zG(),AQr=class extends Ifl{constructor(t){super(t),this.initial=Cfl(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[],this.keypressTimeout=this.options.keypressTimeout!==void 0?this.options.keypressTimeout:null}async keypress(t,r=t?hfl(t,{}):{}){let n=Date.now(),a=n-this.lastKeypress;this.lastKeypress=n;let o=r.name==="return"||r.name==="enter",l=this.state.prevKeypress,A;if(this.state.prevKeypress=r,this.keypressTimeout!=null&&o){if(a=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(t){return!!t}async format(t=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(t||r):mfl(this,{input:t,initial:r,pos:this.cursor})}async render(){let t=this.state.size,r=await this.prefix(),n=await this.separator(),a=await this.message(),o=[r,a,n].filter(Boolean).join(" ");this.state.prompt=o;let l=await this.header(),A=await this.format(),f=await this.error()||await this.hint(),I=await this.footer();f&&!A.includes(f)&&(A+=" "+f),o+=" "+A,this.clear(t),this.write([l,o,I].filter(Boolean).join(` +`)),this.restore()}};Los.exports=AQr});var Pos=H((q$u,Vos)=>{"use strict";var _fl=e=>e.filter((t,r)=>e.lastIndexOf(t)===r),jkt=e=>_fl(e).filter(Boolean);Vos.exports=(e,t={},r="")=>{let{past:n=[],present:a=""}=t,o,l;switch(e){case"prev":case"undo":return o=n.slice(0,n.length-1),l=n[n.length-1]||"",{past:jkt([r,...o]),present:l};case"next":case"redo":return o=n.slice(1),l=n[0]||"",{past:jkt([...o,r]),present:l};case"save":return{past:jkt([...n,r]),present:""};case"remove":return l=jkt(n.filter(A=>A!==r)),a="",l.length&&(a=l.pop()),{past:l,present:a};default:throw new Error(`Invalid action: "${e}"`)}}});var pQr=H(($$u,Oos)=>{"use strict";var yfl=k_e(),Wos=Pos(),dQr=class extends yfl{constructor(t){super(t);let r=this.options.history;if(r&&r.store){let n=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:n},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(t){return this.store?(this.data=Wos(t,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=Wos("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Oos.exports=dQr});var Hos=H((eeg,Mos)=>{"use strict";var bfl=k_e(),fQr=class extends bfl{format(){return""}};Mos.exports=fQr});var Qos=H((teg,Yos)=>{"use strict";var Efl=k_e(),IQr=class extends Efl{constructor(t={}){super(t),this.sep=this.options.separator||/, */,this.initial=t.initial||""}split(t=this.value){return t?String(t).split(this.sep):[]}format(){let t=this.state.submitted?this.styles.primary:r=>r;return this.list.map(t).join(", ")}async submit(t){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Yos.exports=IQr});var Jos=H((reg,Xos)=>{"use strict";var Sfl=rue(),hQr=class extends Sfl{constructor(t){super({...t,multiple:!0})}};Xos.exports=hQr});var CQr=H((neg,Uos)=>{"use strict";var vfl=k_e(),mQr=class extends vfl{constructor(t={}){super({style:"number",...t}),this.min=this.isValue(t.min)?this.toNumber(t.min):-1/0,this.max=this.isValue(t.max)?this.toNumber(t.max):1/0,this.delay=t.delay!=null?t.delay:1e3,this.float=t.float!==!1,this.round=t.round===!0||t.float===!1,this.major=t.major||10,this.minor=t.minor||1,this.initial=t.initial!=null?t.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(t){return!/[-+.]/.test(t)||t==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(t)}number(t){return super.append(t)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(t){let r=t||this.minor,n=this.toNumber(this.input);return n>this.max+r?this.alert():(this.input=`${n+r}`,this.render())}down(t){let r=t||this.minor,n=this.toNumber(this.input);return nthis.isValue(r));return this.value=this.toNumber(t||0),super.submit()}};Uos.exports=mQr});var jos=H((ieg,Kos)=>{Kos.exports=CQr()});var qos=H((seg,zos)=>{"use strict";var Bfl=k_e(),_Qr=class extends Bfl{constructor(t){super(t),this.cursorShow()}format(t=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(t.length)):""}};zos.exports=_Qr});var tas=H((oeg,eas)=>{"use strict";var wfl=q5(),Tfl=Fje(),$os=zG(),yQr=class extends Tfl{constructor(t={}){super(t),this.widths=[].concat(t.messageWidth||50),this.align=[].concat(t.align||"left"),this.linebreak=t.linebreak||!1,this.edgeLength=t.edgeLength||3,this.newline=t.newline||` `;let r=t.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((n,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let t=0;for(let r of this.choices){t=Math.max(t,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let n=0;n=this.scale.length-1?this.alert():(t.scaleIndex++,this.render())}left(){let t=this.focused;return t.scaleIndex<=0?this.alert():(t.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(n=>` ${n.name} - ${n.message}`)].map(n=>this.styles.muted(n)).join(` -`)}renderScaleHeading(t){let r=this.scale.map(f=>f.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,t));let n=this.scaleLength-r.join("").length,a=Math.round(n/(r.length-1)),l=r.map(f=>this.styles.strong(f)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+l}scaleIndicator(t,r,n){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,t,r,n);let a=t.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(t,r){let n=t.scale.map(o=>this.scaleIndicator(t,o,r)),a=this.term==="Hyper"?"":" ";return n.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await t.hint;o&&!$os.hasColor(o)&&(o=this.styles.muted(o));let l=B=>this.margin[3]+B.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,f=this.indent(t),I=await this.resolve(t.message,this.state,t,r),C=await this.renderScale(t,r),b=this.margin[1]+this.margin[3];this.scaleLength=Bfl(C).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-b.length);let N=$os.wordWrap(I,{width:this.widths[0],newline:A}).split(` +`)}renderScaleHeading(t){let r=this.scale.map(f=>f.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,t));let n=this.scaleLength-r.join("").length,a=Math.round(n/(r.length-1)),l=r.map(f=>this.styles.strong(f)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+l}scaleIndicator(t,r,n){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,t,r,n);let a=t.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(t,r){let n=t.scale.map(o=>this.scaleIndicator(t,o,r)),a=this.term==="Hyper"?"":" ";return n.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await t.hint;o&&!$os.hasColor(o)&&(o=this.styles.muted(o));let l=B=>this.margin[3]+B.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,f=this.indent(t),I=await this.resolve(t.message,this.state,t,r),C=await this.renderScale(t,r),b=this.margin[1]+this.margin[3];this.scaleLength=wfl(C).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-b.length);let N=$os.wordWrap(I,{width:this.widths[0],newline:A}).split(` `).map(B=>l(B)+this.margin[1]);return n&&(C=this.styles.info(C),N=N.map(B=>this.styles.info(B))),N[0]+=C,this.linebreak&&N.push(""),[f+a,N.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let t=this.visible.map(async(a,o)=>await this.renderChoice(a,o)),r=await Promise.all(t),n=await this.renderScaleHeading();return this.margin[0]+[n,...r.map(a=>a.join(" "))].join(` `)}async render(){let{submitted:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l="";this.options.promptLine!==!1&&(l=[n,o,a,""].join(" "),this.state.prompt=l);let A=await this.header(),f=await this.format(),I=await this.renderScaleKey(),C=await this.error()||await this.hint(),b=await this.renderChoices(),E=await this.footer(),N=this.emptyError;f&&(l+=f),C&&!l.includes(C)&&(l+=" "+C),t&&!f&&!b.trim()&&this.multiple&&N!=null&&(l+=this.styles.danger(N)),this.clear(r),this.write([A,l,I,b,E].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIndex;return this.base.submit.call(this)}};eas.exports=yQr});var ias=H((oeg,nas)=>{"use strict";var ras=q5(),Tfl=(e="")=>typeof e=="string"?e.replace(/^['"]|['"]$/g,""):"",EQr=class{constructor(t){this.name=t.key,this.field=t.field||{},this.value=Tfl(t.initial||this.field.initial||""),this.message=t.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Rfl=async(e={},t={},r=n=>n)=>{let n=new Set,a=e.fields||[],o=e.template,l=[],A=[],f=[],I=1;typeof o=="function"&&(o=await o());let C=-1,b=()=>o[++C],E=()=>o[C+1],N=B=>{B.line=I,l.push(B)};for(N({type:"bos",value:""});Cce.name===X.key);X.field=a.find(ce=>ce.name===X.key),ne||(ne=new EQr(X),A.push(ne)),ne.lines.push(X.line-1);continue}let F=l[l.length-1];F.type==="text"&&F.line===I?F.value+=B:N({type:"text",value:B})}return N({type:"eos",value:""}),{input:o,tabstops:l,unique:n,keys:f,items:A}};nas.exports=async e=>{let t=e.options,r=new Set(t.required===!0?[]:t.required||[]),n={...t.values,...t.initial},{tabstops:a,items:o,keys:l}=await Rfl(t,n),A=bQr("result",e,t),f=bQr("format",e,t),I=bQr("validate",e,t,!0),C=e.isValue.bind(e);return async(b={},E=!1)=>{let N=0;b.required=r,b.items=o,b.keys=l,b.output="";let B=async(ae,ne,ce,fe)=>{let ue=await I(ae,ne,ce,fe);return ue===!1?"Invalid field "+ce.name:ue};for(let ae of a){let ne=ae.value,ce=ae.key;if(ae.type!=="template"){ne&&(b.output+=ne);continue}if(ae.type==="template"){let fe=o.find(De=>De.name===ce);t.required===!0&&b.required.add(fe.name);let ue=[fe.input,b.values[fe.value],fe.value,ne].find(C),be=(fe.field||{}).message||ae.inner;if(E){let De=await B(b.values[ce],b,fe,N);if(De&&typeof De=="string"||De===!1){b.invalid.set(ce,De);continue}b.invalid.delete(ce);let k=await A(b.values[ce],b,fe,N);b.output+=ras(k);continue}fe.placeholder=!1;let Se=ne;ne=await f(ne,b,fe,N),ue!==ne?(b.values[ce]=ue,ne=e.styles.typing(ue),b.missing.delete(be)):(b.values[ce]=void 0,ue=`<${be}>`,ne=e.styles.primary(ue),fe.placeholder=!0,b.required.has(ce)&&b.missing.add(be)),b.missing.has(be)&&b.validating&&(ne=e.styles.warning(ue)),b.invalid.has(ce)&&b.validating&&(ne=e.styles.danger(ue)),N===b.index&&(Se!==ne?ne=e.styles.underline(ne):ne=e.styles.heading(ras(ne))),N++}ne&&(b.output+=ne)}let F=b.output.split(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIndex;return this.base.submit.call(this)}};eas.exports=yQr});var ias=H((aeg,nas)=>{"use strict";var ras=q5(),Rfl=(e="")=>typeof e=="string"?e.replace(/^['"]|['"]$/g,""):"",EQr=class{constructor(t){this.name=t.key,this.field=t.field||{},this.value=Rfl(t.initial||this.field.initial||""),this.message=t.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Nfl=async(e={},t={},r=n=>n)=>{let n=new Set,a=e.fields||[],o=e.template,l=[],A=[],f=[],I=1;typeof o=="function"&&(o=await o());let C=-1,b=()=>o[++C],E=()=>o[C+1],N=B=>{B.line=I,l.push(B)};for(N({type:"bos",value:""});Cce.name===X.key);X.field=a.find(ce=>ce.name===X.key),ne||(ne=new EQr(X),A.push(ne)),ne.lines.push(X.line-1);continue}let F=l[l.length-1];F.type==="text"&&F.line===I?F.value+=B:N({type:"text",value:B})}return N({type:"eos",value:""}),{input:o,tabstops:l,unique:n,keys:f,items:A}};nas.exports=async e=>{let t=e.options,r=new Set(t.required===!0?[]:t.required||[]),n={...t.values,...t.initial},{tabstops:a,items:o,keys:l}=await Nfl(t,n),A=bQr("result",e,t),f=bQr("format",e,t),I=bQr("validate",e,t,!0),C=e.isValue.bind(e);return async(b={},E=!1)=>{let N=0;b.required=r,b.items=o,b.keys=l,b.output="";let B=async(ae,ne,ce,fe)=>{let ue=await I(ae,ne,ce,fe);return ue===!1?"Invalid field "+ce.name:ue};for(let ae of a){let ne=ae.value,ce=ae.key;if(ae.type!=="template"){ne&&(b.output+=ne);continue}if(ae.type==="template"){let fe=o.find(De=>De.name===ce);t.required===!0&&b.required.add(fe.name);let ue=[fe.input,b.values[fe.value],fe.value,ne].find(C),be=(fe.field||{}).message||ae.inner;if(E){let De=await B(b.values[ce],b,fe,N);if(De&&typeof De=="string"||De===!1){b.invalid.set(ce,De);continue}b.invalid.delete(ce);let k=await A(b.values[ce],b,fe,N);b.output+=ras(k);continue}fe.placeholder=!1;let Se=ne;ne=await f(ne,b,fe,N),ue!==ne?(b.values[ce]=ue,ne=e.styles.typing(ue),b.missing.delete(be)):(b.values[ce]=void 0,ue=`<${be}>`,ne=e.styles.primary(ue),fe.placeholder=!0,b.required.has(ce)&&b.missing.add(be)),b.missing.has(be)&&b.validating&&(ne=e.styles.warning(ue)),b.invalid.has(ce)&&b.validating&&(ne=e.styles.danger(ue)),N===b.index&&(Se!==ne?ne=e.styles.underline(ne):ne=e.styles.heading(ras(ne))),N++}ne&&(b.output+=ne)}let F=b.output.split(` `).map(ae=>" "+ae),Q=o.length,X=0;for(let ae of o)b.invalid.has(ae.name)&&ae.lines.forEach(ne=>{F[ne][0]===" "&&(F[ne]=b.styles.danger(b.symbols.bullet)+F[ne].slice(1))}),e.isValue(b.values[ae.name])&&X++;return b.completed=(X/Q*100).toFixed(0),b.output=F.join(` -`),b.output}};function bQr(e,t,r,n){return(a,o,l,A)=>typeof l.field[e]=="function"?l.field[e].call(t,a,o,l,A):[n,a].find(f=>t.isValue(f))}});var oas=H((aeg,sas)=>{"use strict";var Nfl=q5(),Dfl=ias(),kfl=Hxe(),SQr=class extends kfl{constructor(t){super(t),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Dfl(this),await super.initialize()}async reset(t){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},t!==!0&&(await this.initialize(),await this.render())}moveCursor(t){let r=this.getItem();this.cursor+=t,r.cursor+=t}dispatch(t,r){if(!r.code&&!r.ctrl&&t!=null&&this.getItem()){this.append(t,r);return}this.alert()}append(t,r){let n=this.getItem(),a=n.input.slice(0,this.cursor),o=n.input.slice(this.cursor);this.input=n.input=`${a}${t}${o}`,this.moveCursor(1),this.render()}delete(){let t=this.getItem();if(this.cursor<=0||!t.input)return this.alert();let r=t.input.slice(this.cursor),n=t.input.slice(0,this.cursor-1);this.input=t.input=`${n}${r}`,this.moveCursor(-1),this.render()}increment(t){return t>=this.state.keys.length-1?0:t+1}decrement(t){return t<=0?this.state.keys.length-1:t-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(t){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:t,keys:r=[],submitted:n,size:a}=this.state,o=[this.options.newline,` +`),b.output}};function bQr(e,t,r,n){return(a,o,l,A)=>typeof l.field[e]=="function"?l.field[e].call(t,a,o,l,A):[n,a].find(f=>t.isValue(f))}});var oas=H((ceg,sas)=>{"use strict";var Dfl=q5(),kfl=ias(),xfl=Hxe(),SQr=class extends xfl{constructor(t){super(t),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await kfl(this),await super.initialize()}async reset(t){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},t!==!0&&(await this.initialize(),await this.render())}moveCursor(t){let r=this.getItem();this.cursor+=t,r.cursor+=t}dispatch(t,r){if(!r.code&&!r.ctrl&&t!=null&&this.getItem()){this.append(t,r);return}this.alert()}append(t,r){let n=this.getItem(),a=n.input.slice(0,this.cursor),o=n.input.slice(this.cursor);this.input=n.input=`${a}${t}${o}`,this.moveCursor(1),this.render()}delete(){let t=this.getItem();if(this.cursor<=0||!t.input)return this.alert();let r=t.input.slice(this.cursor),n=t.input.slice(0,this.cursor-1);this.input=t.input=`${n}${r}`,this.moveCursor(-1),this.render()}increment(t){return t>=this.state.keys.length-1?0:t+1}decrement(t){return t<=0?this.state.keys.length-1:t-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(t){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:t,keys:r=[],submitted:n,size:a}=this.state,o=[this.options.newline,` `].find(ae=>ae!=null),l=await this.prefix(),A=await this.separator(),f=await this.message(),I=[l,f,A].filter(Boolean).join(" ");this.state.prompt=I;let C=await this.header(),b=await this.error()||"",E=await this.hint()||"",N=n?"":await this.interpolate(this.state),B=this.state.key=r[t]||"",F=await this.format(B),Q=await this.footer();F&&(I+=" "+F),E&&!F&&this.state.completed===0&&(I+=" "+E),this.clear(a);let X=[C,I,N,Q,b.trim()];this.write(X.filter(Boolean).join(o)),this.restore()}getItem(t){let{items:r,keys:n,index:a}=this.state,o=r.find(l=>l.name===n[a]);return o&&o.input!=null&&(this.input=o.input,this.cursor=o.cursor),o}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:t,missing:r,output:n,values:a}=this.state;if(t.size){let A="";for(let[f,I]of t)A+=`Invalid ${f}: ${I} -`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let l=Nfl(n).split(` +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let l=Dfl(n).split(` `).map(A=>A.slice(1)).join(` -`);return this.value={values:a,result:l},super.submit()}};sas.exports=SQr});var cas=H((ceg,aas)=>{"use strict";var xfl="(Use + to sort)",Gfl=rue(),vQr=class extends Gfl{constructor(t){super({...t,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,xfl].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(t,r){let n=await super.renderChoice(t,r),a=this.symbols.identicalTo+" ",o=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(o=""),this.options.numbered===!0?o+`${r+1} - `+n:o+n}get selected(){return this.choices}submit(){return this.value=this.choices.map(t=>t.value),super.submit()}};aas.exports=vQr});var uas=H((leg,las)=>{"use strict";var Ffl=Fje(),BQr=class extends Ffl{constructor(t={}){if(super(t),this.emptyError=t.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(n=>this.styles.muted(n)),this.state.header=r.join(` - `)}}async toChoices(...t){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...t);for(let n of r)n.scale=Zfl(5,this.options),n.scaleIdx=2;return r}dispatch(){this.alert()}space(){let t=this.focused,r=t.scale[t.scaleIdx],n=r.selected;return t.scale.forEach(a=>a.selected=!1),r.selected=!n,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIdx>=t.scale.length-1?this.alert():(t.scaleIdx++,this.render())}left(){let t=this.focused;return t.scaleIdx<=0?this.alert():(t.scaleIdx--,this.render())}indent(){return" "}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=this.term==="Hyper",o=a?9:8,l=a?"":" ",A=this.symbols.line.repeat(o),f=" ".repeat(o+(a?0:1)),I=ne=>(ne?this.styles.success("\u25C9"):"\u25EF")+l,C=r+1+".",b=n?this.styles.heading:this.styles.noop,E=await this.resolve(t.message,this.state,t,r),N=this.indent(t),B=N+t.scale.map((ne,ce)=>I(ce===t.scaleIdx)).join(A),F=ne=>ne===t.scaleIdx?b(ne):ne,Q=N+t.scale.map((ne,ce)=>F(ce)).join(f),X=()=>[C,E].filter(Boolean).join(" "),ae=()=>[X(),B,Q," "].filter(Boolean).join(` +`);return this.value={values:a,result:l},super.submit()}};sas.exports=SQr});var cas=H((leg,aas)=>{"use strict";var Gfl="(Use + to sort)",Ffl=rue(),vQr=class extends Ffl{constructor(t){super({...t,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Gfl].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(t,r){let n=await super.renderChoice(t,r),a=this.symbols.identicalTo+" ",o=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(o=""),this.options.numbered===!0?o+`${r+1} - `+n:o+n}get selected(){return this.choices}submit(){return this.value=this.choices.map(t=>t.value),super.submit()}};aas.exports=vQr});var uas=H((ueg,las)=>{"use strict";var Zfl=Fje(),BQr=class extends Zfl{constructor(t={}){if(super(t),this.emptyError=t.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(n=>this.styles.muted(n)),this.state.header=r.join(` + `)}}async toChoices(...t){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...t);for(let n of r)n.scale=Lfl(5,this.options),n.scaleIdx=2;return r}dispatch(){this.alert()}space(){let t=this.focused,r=t.scale[t.scaleIdx],n=r.selected;return t.scale.forEach(a=>a.selected=!1),r.selected=!n,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIdx>=t.scale.length-1?this.alert():(t.scaleIdx++,this.render())}left(){let t=this.focused;return t.scaleIdx<=0?this.alert():(t.scaleIdx--,this.render())}indent(){return" "}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=this.term==="Hyper",o=a?9:8,l=a?"":" ",A=this.symbols.line.repeat(o),f=" ".repeat(o+(a?0:1)),I=ne=>(ne?this.styles.success("\u25C9"):"\u25EF")+l,C=r+1+".",b=n?this.styles.heading:this.styles.noop,E=await this.resolve(t.message,this.state,t,r),N=this.indent(t),B=N+t.scale.map((ne,ce)=>I(ce===t.scaleIdx)).join(A),F=ne=>ne===t.scaleIdx?b(ne):ne,Q=N+t.scale.map((ne,ce)=>F(ce)).join(f),X=()=>[C,E].filter(Boolean).join(" "),ae=()=>[X(),B,Q," "].filter(Boolean).join(` `);return n&&(B=this.styles.cyan(B),Q=this.styles.cyan(Q)),ae()}async renderChoices(){if(this.state.submitted)return"";let t=this.visible.map(async(n,a)=>await this.renderChoice(n,a)),r=await Promise.all(t);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` `)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=[n,o,a].filter(Boolean).join(" ");this.state.prompt=l;let A=await this.header(),f=await this.format(),I=await this.error()||await this.hint(),C=await this.renderChoices(),b=await this.footer();(f||!I)&&(l+=" "+f),I&&!l.includes(I)&&(l+=" "+I),t&&!f&&!C&&this.multiple&&this.type!=="form"&&(l+=this.styles.danger(this.emptyError)),this.clear(r),this.write([l,A,C,b].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIdx;return this.base.submit.call(this)}};function Zfl(e,t={}){if(Array.isArray(t.scale))return t.scale.map(n=>({...n}));let r=[];for(let n=1;n{gas.exports=pQr()});var pas=H((geg,das)=>{"use strict";var Lfl=Kkt(),wQr=class extends Lfl{async initialize(){await super.initialize(),this.value=this.initial=this.resolve(this.options.initial),this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(t="",r){switch(t.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let t=n=>this.styles.primary.underline(n);return[this.value?this.disabled:t(this.disabled),this.value?t(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:t}=this.state,r=await this.header(),n=await this.prefix(),a=await this.separator(),o=await this.message(),l=await this.format(),A=await this.error()||await this.hint(),f=await this.footer(),I=[n,o,a,l].join(" ");this.state.prompt=I,A&&!I.includes(A)&&(I+=" "+A),this.clear(t),this.write([r,I,f].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};das.exports=wQr});var Ias=H((Aeg,fas)=>{"use strict";var Vfl=rue(),TQr=class extends Vfl{constructor(t){if(super(t),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(t,r){let n=await super.toChoices(t,r);if(n.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>n.length)throw new Error("Please specify the index of the correct answer from the list of choices");return n}check(t){return t.index===this.options.correctChoice}async result(t){return{selectedAnswer:t,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};fas.exports=TQr});var mas=H(RQr=>{"use strict";var has=zG(),VR=(e,t)=>{has.defineExport(RQr,e,t),has.defineExport(RQr,e.toLowerCase(),t)};VR("AutoComplete",()=>Sos());VR("BasicAuth",()=>Dos());VR("Confirm",()=>Gos());VR("Editable",()=>Zos());VR("Form",()=>Ukt());VR("Input",()=>pQr());VR("Invisible",()=>Hos());VR("List",()=>Qos());VR("MultiSelect",()=>Jos());VR("Numeral",()=>jos());VR("Password",()=>qos());VR("Scale",()=>tas());VR("Select",()=>rue());VR("Snippet",()=>oas());VR("Sort",()=>cas());VR("Survey",()=>uas());VR("Text",()=>Aas());VR("Toggle",()=>pas());VR("Quiz",()=>Ias())});var _as=H((peg,Cas)=>{Cas.exports={ArrayPrompt:Fje(),AuthPrompt:cQr(),BooleanPrompt:Kkt(),NumberPrompt:CQr(),StringPrompt:k_e()}});var Lje=H((feg,bas)=>{"use strict";var yas=wt("assert"),DQr=wt("events"),nue=zG(),W4=class extends DQr{constructor(t,r){super(),this.options=nue.merge({},t),this.answers={...r}}register(t,r){if(nue.isObject(t)){for(let a of Object.keys(t))this.register(a,t[a]);return this}yas.equal(typeof r,"function","expected a function");let n=t.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[n]=r:this.prompts[n]=r(this.Prompt,this),this}async prompt(t=[]){for(let r of[].concat(t))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(nue.merge({},this.options,r))}catch(n){return Promise.reject(n)}return this.answers}async ask(t){typeof t=="function"&&(t=await t.call(this));let r=nue.merge({},this.options,t),{type:n,name:a}=t,{set:o,get:l}=nue;if(typeof n=="function"&&(n=await n.call(this,t,this.answers)),!n)return this.answers[a];n==="number"&&(n="numeral"),yas(this.prompts[n],`Prompt "${n}" is not registered`);let A=new this.prompts[n](r),f=l(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",C=>{this.emit("answer",a,C,A),o(this.answers,a,C)});let I=A.emit.bind(A);return A.emit=(...C)=>(this.emit.call(this,...C),I(...C)),this.emit("prompt",A,this),r.autofill&&f!=null?(A.value=A.input=f,r.autofill==="show"&&await A.submit()):f=A.value=await A.run(),f}use(t){return t.call(this,this),this}set Prompt(t){this._Prompt=t}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(t){this._Prompt=t}static get Prompt(){return this._Prompt||Hxe()}static get prompts(){return mas()}static get types(){return _as()}static get prompt(){let t=(r,...n)=>{let a=new this(...n),o=a.emit.bind(a);return a.emit=(...l)=>(t.emit(...l),o(...l)),a.prompt(r)};return nue.mixinEmitter(t,new DQr),t}};nue.mixinEmitter(W4,new DQr);var NQr=W4.prompts;for(let e of Object.keys(NQr)){let t=e.toLowerCase(),r=n=>new NQr[e](n).run();W4.prompt[t]=r,W4[t]=r,W4[e]||Reflect.defineProperty(W4,e,{get:()=>NQr[e]})}var Zje=e=>{nue.defineExport(W4,e,()=>W4.types[e])};Zje("ArrayPrompt");Zje("AuthPrompt");Zje("BooleanPrompt");Zje("NumberPrompt");Zje("StringPrompt");bas.exports=W4});var Wje=H(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.Strategy=PR.WorkspaceModifier=PR.Modifier=PR.Target=void 0;PR.getModifier=Ofl;PR.extractRangeModifier=Sas;PR.applyModifier=Hfl;PR.toWorkspaceModifier=vas;PR.makeWorkspaceDescriptor=Bas;PR.findProjectDescriptors=was;PR.extractDescriptorFromPath=Yfl;PR.getSuggestedDescriptors=Xfl;PR.fetchDescriptorFrom=kQr;var Pfl=(Pa(),vi(Va)),x_e=Bn(),gb=Bn(),zkt=no(),Eas=Pfl.__importDefault(UC()),Wfl="workspace:",Pje;(function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"})(Pje||(PR.Target=Pje={}));var sue;(function(e){e.CARET="^",e.TILDE="~",e.EXACT=""})(sue||(PR.Modifier=sue={}));var Vje;(function(e){e.CARET="^",e.TILDE="~",e.EXACT="*"})(Vje||(PR.WorkspaceModifier=Vje={}));var iue;(function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"})(iue||(PR.Strategy=iue={}));function Ofl(e,t){return e.exact?sue.EXACT:e.caret?sue.CARET:e.tilde?sue.TILDE:t.configuration.get("defaultSemverRangePrefix")}var Mfl=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Sas(e,{project:t}){let r=e.match(Mfl);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function Hfl(e,t){let{protocol:r,source:n,params:a,selector:o}=gb.structUtils.parseRange(e.range);return Eas.default.valid(o)&&(o=`${t}${e.range}`),gb.structUtils.makeDescriptor(e,gb.structUtils.makeRange({protocol:r,source:n,params:a,selector:o}))}function vas(e){switch(e){case sue.CARET:return Vje.CARET;case sue.TILDE:return Vje.TILDE;case sue.EXACT:return Vje.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${e}"`)}}function Bas(e,t){return gb.structUtils.makeDescriptor(e.anchoredDescriptor,`${Wfl}${vas(t)}`)}async function was(e,{project:t,target:r}){let n=new Map,a=o=>{let l=n.get(o.descriptorHash);return l||n.set(o.descriptorHash,l={descriptor:o,locators:[]}),l};for(let o of t.workspaces)if(r===Pje.PEER){let l=o.manifest.peerDependencies.get(e.identHash);l!==void 0&&a(l).locators.push(o.anchoredLocator)}else{let l=o.manifest.dependencies.get(e.identHash),A=o.manifest.devDependencies.get(e.identHash);r===Pje.DEVELOPMENT?A!==void 0?a(A).locators.push(o.anchoredLocator):l!==void 0&&a(l).locators.push(o.anchoredLocator):l!==void 0?a(l).locators.push(o.anchoredLocator):A!==void 0&&a(A).locators.push(o.anchoredLocator)}return n}async function Yfl(e,{cwd:t,workspace:r}){return await Jfl(async n=>{zkt.ppath.isAbsolute(e)||(e=zkt.ppath.relative(r.cwd,zkt.ppath.resolve(t,e)),e.match(/^\.{0,2}\//)||(e=`./${e}`));let{project:a}=r,o=await kQr(gb.structUtils.makeIdent(null,"archive"),e,{project:r.project,cache:n,workspace:r});if(!o)throw new Error("Assertion failed: The descriptor should have been found");let l=new x_e.ThrowReport,A=a.configuration.makeResolver(),f=a.configuration.makeFetcher(),I={checksums:a.storedChecksums,project:a,cache:n,fetcher:f,report:l,resolver:A},C=A.bindDescriptor(o,r.anchoredLocator,I),b=gb.structUtils.convertDescriptorToLocator(C),E=await f.fetch(b,I),N=await x_e.Manifest.find(E.prefixPath,{baseFs:E.packageFs});if(!N.name)throw new Error("Target path doesn't have a name");return gb.structUtils.makeDescriptor(N.name,e)})}function Qfl(e){if(e.range==="unknown")return{type:"resolve",range:"latest"};if(gb.semverUtils.validRange(e.range))return{type:"fixed",range:e.range};if(x_e.TAG_REGEXP.test(e.range))return{type:"resolve",range:e.range};let t=e.range.match(/^(?:jsr:|npm:)(.*)/);if(!t)return{type:"fixed",range:e.range};let[,r]=t,n=`${gb.structUtils.stringifyIdent(e)}@`;return r.startsWith(n)&&(r=r.slice(n.length)),gb.semverUtils.validRange(r)?{type:"fixed",range:e.range}:x_e.TAG_REGEXP.test(r)?{type:"resolve",range:e.range}:{type:"fixed",range:e.range}}async function Xfl(e,{project:t,workspace:r,cache:n,target:a,fixed:o,modifier:l,strategies:A,maxResults:f=1/0}){if(!(f>=0))throw new Error(`Invalid maxResults (${f})`);let I=!o||e.range==="unknown"?Qfl(e):{type:"fixed",range:e.range};if(I.type==="fixed")return{suggestions:[{descriptor:e,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,e)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let C=typeof r<"u"&&r!==null&&r.manifest[a].get(e.identHash)||null,b=[],E=[],N=async B=>{try{await B()}catch(F){E.push(F)}};for(let B of A){if(b.length>=f)break;switch(B){case iue.KEEP:await N(async()=>{C&&b.push({descriptor:C,name:`Keep ${gb.structUtils.prettyDescriptor(t.configuration,C)}`,reason:"(no changes)"})});break;case iue.REUSE:await N(async()=>{for(let{descriptor:F,locators:Q}of(await was(e,{project:t,target:a})).values()){if(Q.length===1&&Q[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes(iue.KEEP))continue;let X=`(originally used by ${gb.structUtils.prettyLocator(t.configuration,Q[0])}`;X+=Q.length>1?` and ${Q.length-1} other${Q.length>2?"s":""})`:")",b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:X})}});break;case iue.CACHE:await N(async()=>{for(let F of t.storedDescriptors.values())F.identHash===e.identHash&&b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:"(already used somewhere in the lockfile)"})});break;case iue.PROJECT:await N(async()=>{if(r.manifest.name!==null&&e.identHash===r.manifest.name.identHash)return;let F=t.tryWorkspaceByIdent(e);if(F===null)return;let Q=Bas(F,l);b.push({descriptor:Q,name:`Attach ${gb.structUtils.prettyDescriptor(t.configuration,Q)}`,reason:`(local workspace at ${gb.formatUtils.pretty(t.configuration,F.relativeCwd,gb.formatUtils.Type.PATH)})`})});break;case iue.LATEST:{let F=t.configuration.get("enableNetwork"),Q=t.configuration.get("enableOfflineMode");await N(async()=>{if(a===Pje.PEER)b.push({descriptor:gb.structUtils.makeDescriptor(e,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!F&&!Q)b.push({descriptor:null,name:"Resolve from latest",reason:gb.formatUtils.pretty(t.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let X=await kQr(e,I.range,{project:t,cache:n,workspace:r,modifier:l});X&&b.push({descriptor:X,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,X)}`,reason:`(resolved from ${Q?"the cache":"latest"})`})}})}break}}return{suggestions:b.slice(0,f),rejections:E.slice(0,f)}}async function kQr(e,t,{project:r,cache:n,workspace:a,preserveModifier:o=!0,modifier:l}){let A=r.configuration.normalizeDependency(gb.structUtils.makeDescriptor(e,t)),f=new x_e.ThrowReport,I=r.configuration.makeFetcher(),C=r.configuration.makeResolver(),b={project:r,fetcher:I,cache:n,checksums:r.storedChecksums,report:f,cacheOptions:{skipIntegrityCheck:!0}},E={...b,resolver:C,fetchOptions:b},N=C.bindDescriptor(A,a.anchoredLocator,E),B=await C.getCandidates(N,{},E);if(B.length===0)return null;let F=B[0],{protocol:Q,source:X,params:ae,selector:ne}=gb.structUtils.parseRange(gb.structUtils.convertToManifestRange(F.reference));if(Q===r.configuration.get("defaultProtocol")&&(Q=null),Eas.default.valid(ne)){let ce=ne;if(typeof l<"u")ne=l+ne;else if(o!==!1){let de=typeof o=="string"?o:A.range;ne=Sas(de,{project:r})+ne}let fe=gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}));(await C.getCandidates(r.configuration.normalizeDependency(fe),{},E)).length!==1&&(ne=ce)}return gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}))}async function Jfl(e){return await zkt.xfs.mktempPromise(async t=>{let r=x_e.Configuration.create(t);return r.useWithSource(t,{enableMirror:!1,compressionLevel:0},t,{overwrite:!0}),await e(new x_e.Cache(t,{configuration:r,check:!1,immutable:!1}))})}});var Das=H(xQr=>{"use strict";Object.defineProperty(xQr,"__esModule",{value:!0});var Nas=(Pa(),vi(Va)),Tas=el(),xO=Bn(),Ras=Bn(),cL=Bn(),jv=($c(),vi(rg)),Ufl=Lje(),Kfl=Nas.__importStar((CZ(),vi(mZ))),qG=Nas.__importStar(Wje()),Oje=class extends Tas.BaseCommand{constructor(){super(...arguments),this.json=jv.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.fixed=jv.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=jv.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=jv.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=jv.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.dev=jv.Option.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"}),this.peer=jv.Option.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"}),this.optional=jv.Option.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"}),this.preferDev=jv.Option.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"}),this.interactive=jv.Option.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"}),this.cached=jv.Option.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"}),this.mode=jv.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Kfl.isEnum(Ras.InstallMode)}),this.silent=jv.Option.Boolean("--silent",{hidden:!0}),this.packages=jv.Option.Rest()}async execute(){let t=await xO.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ras.Project.find(t,this.context.cwd),a=await xO.Cache.find(t);if(!n)throw new Tas.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l||t.get("preferReuse"),f=qG.getModifier(this,r),I=[A?qG.Strategy.REUSE:void 0,qG.Strategy.PROJECT,this.cached?qG.Strategy.CACHE:void 0,qG.Strategy.LATEST].filter(X=>typeof X<"u"),C=l?1/0:1,b=X=>{let ae=cL.structUtils.tryParseDescriptor(X.slice(4));return ae?ae.range==="unknown"?cL.structUtils.makeDescriptor(ae,`jsr:${cL.structUtils.stringifyIdent(ae)}@latest`):cL.structUtils.makeDescriptor(ae,`jsr:${ae.range}`):null},E=await Promise.all(this.packages.map(async X=>{let ae=X.match(/^\.{0,2}\//)?await qG.extractDescriptorFromPath(X,{cwd:this.context.cwd,workspace:n}):X.startsWith("jsr:")?b(X):cL.structUtils.tryParseDescriptor(X),ne=X.match(/^(https?:|git@github)/);if(ne)throw new jv.UsageError(`It seems you are trying to add a package using a ${xO.formatUtils.pretty(t,`${ne[0]}...`,xO.formatUtils.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${xO.formatUtils.pretty(t,"yarn add",xO.formatUtils.Type.CODE)} ${xO.formatUtils.pretty(t,cL.structUtils.makeDescriptor(cL.structUtils.makeIdent(null,"my-package"),`${ne[0]}...`),xO.formatUtils.Type.DESCRIPTOR)}`);if(!ae)throw new jv.UsageError(`The ${xO.formatUtils.pretty(t,X,xO.formatUtils.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ce=jfl(n,ae,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ce.map(async ue=>{let de=await qG.getSuggestedDescriptors(ae,{project:r,workspace:n,cache:a,fixed:o,target:ue,modifier:f,strategies:I,maxResults:C});return{request:ae,suggestedDescriptors:de,target:ue}}))})).then(X=>X.flat()),N=await xO.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async X=>{for(let{request:ae,suggestedDescriptors:{suggestions:ne,rejections:ce}}of E)if(ne.filter(ue=>ue.descriptor!==null).length===0){let[ue]=ce;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range`):X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),X.reportSeparator(),X.reportExceptionOnce(ue)}});if(N.hasErrors())return N.exitCode();let B=!1,F=[],Q=[];for(let{suggestedDescriptors:{suggestions:X},target:ae}of E){let ne,ce=X.filter(be=>be.descriptor!==null),fe=ce[0].descriptor,ue=ce.every(be=>cL.structUtils.areDescriptorsEqual(be.descriptor,fe));ce.length===1||ue?ne=fe:(B=!0,{answer:ne}=await(0,Ufl.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:X.map(({descriptor:be,name:Se,reason:De})=>be?{name:Se,hint:De,descriptor:be}:{name:Se,hint:De,disabled:!0}),onCancel:()=>process.exit(130),result(be){return this.find(be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let de=n.manifest[ae].get(ne.identHash);(typeof de>"u"||de.descriptorHash!==ne.descriptorHash)&&(n.manifest[ae].set(ne.identHash,ne),this.optional&&(ae==="dependencies"?n.manifest.ensureDependencyMeta({...ne,range:"unknown"}).optional=!0:ae==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...ne,range:"unknown"}).optional=!0)),typeof de>"u"?F.push([n,ae,ne,I]):Q.push([n,ae,de,ne]))}return await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyAddition,F),await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyReplacement,Q),B&&this.context.stdout.write(` -`),await r.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:a,mode:this.mode})}};Oje.paths=[["add"]];Oje.usage=jv.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]});xQr.default=Oje;function jfl(e,t,{dev:r,peer:n,preferDev:a,optional:o}){let l=e.manifest[qG.Target.REGULAR].has(t.identHash),A=e.manifest[qG.Target.DEVELOPMENT].has(t.identHash),f=e.manifest[qG.Target.PEER].has(t.identHash);if((r||n)&&l)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(o&&A)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(o&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&o)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);let I=[];return n&&I.push(qG.Target.PEER),(r||a)&&I.push(qG.Target.DEVELOPMENT),o&&I.push(qG.Target.REGULAR),I.length>0?I:A?[qG.Target.DEVELOPMENT]:f?[qG.Target.PEER]:[qG.Target.REGULAR]}});var kas=H(FQr=>{"use strict";Object.defineProperty(FQr,"__esModule",{value:!0});var zfl=el(),GQr=Bn(),Mje=Bn(),Hje=($c(),vi(rg)),Yje=class extends zfl.BaseCommand{constructor(){super(...arguments),this.verbose=Hje.Option.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"}),this.json=Hje.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.name=Hje.Option.String({required:!1})}async execute(){let t=await GQr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await GQr.Project.find(t,this.context.cwd);if(await r.restoreInstallState(),this.name){let l=(await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r})).get(this.name);if(!l)throw new Hje.UsageError(`Couldn't find a binary named "${this.name}" for package "${Mje.structUtils.prettyLocator(t,n)}"`);let[,A]=l;return this.context.stdout.write(`${A} +`)),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIdx;return this.base.submit.call(this)}};function Lfl(e,t={}){if(Array.isArray(t.scale))return t.scale.map(n=>({...n}));let r=[];for(let n=1;n{gas.exports=pQr()});var pas=H((Aeg,das)=>{"use strict";var Vfl=Kkt(),wQr=class extends Vfl{async initialize(){await super.initialize(),this.value=this.initial=this.resolve(this.options.initial),this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(t="",r){switch(t.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let t=n=>this.styles.primary.underline(n);return[this.value?this.disabled:t(this.disabled),this.value?t(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:t}=this.state,r=await this.header(),n=await this.prefix(),a=await this.separator(),o=await this.message(),l=await this.format(),A=await this.error()||await this.hint(),f=await this.footer(),I=[n,o,a,l].join(" ");this.state.prompt=I,A&&!I.includes(A)&&(I+=" "+A),this.clear(t),this.write([r,I,f].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};das.exports=wQr});var Ias=H((deg,fas)=>{"use strict";var Pfl=rue(),TQr=class extends Pfl{constructor(t){if(super(t),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(t,r){let n=await super.toChoices(t,r);if(n.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>n.length)throw new Error("Please specify the index of the correct answer from the list of choices");return n}check(t){return t.index===this.options.correctChoice}async result(t){return{selectedAnswer:t,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};fas.exports=TQr});var mas=H(RQr=>{"use strict";var has=zG(),VR=(e,t)=>{has.defineExport(RQr,e,t),has.defineExport(RQr,e.toLowerCase(),t)};VR("AutoComplete",()=>Sos());VR("BasicAuth",()=>Dos());VR("Confirm",()=>Gos());VR("Editable",()=>Zos());VR("Form",()=>Ukt());VR("Input",()=>pQr());VR("Invisible",()=>Hos());VR("List",()=>Qos());VR("MultiSelect",()=>Jos());VR("Numeral",()=>jos());VR("Password",()=>qos());VR("Scale",()=>tas());VR("Select",()=>rue());VR("Snippet",()=>oas());VR("Sort",()=>cas());VR("Survey",()=>uas());VR("Text",()=>Aas());VR("Toggle",()=>pas());VR("Quiz",()=>Ias())});var _as=H((feg,Cas)=>{Cas.exports={ArrayPrompt:Fje(),AuthPrompt:cQr(),BooleanPrompt:Kkt(),NumberPrompt:CQr(),StringPrompt:k_e()}});var Lje=H((Ieg,bas)=>{"use strict";var yas=wt("assert"),DQr=wt("events"),nue=zG(),W4=class extends DQr{constructor(t,r){super(),this.options=nue.merge({},t),this.answers={...r}}register(t,r){if(nue.isObject(t)){for(let a of Object.keys(t))this.register(a,t[a]);return this}yas.equal(typeof r,"function","expected a function");let n=t.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[n]=r:this.prompts[n]=r(this.Prompt,this),this}async prompt(t=[]){for(let r of[].concat(t))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(nue.merge({},this.options,r))}catch(n){return Promise.reject(n)}return this.answers}async ask(t){typeof t=="function"&&(t=await t.call(this));let r=nue.merge({},this.options,t),{type:n,name:a}=t,{set:o,get:l}=nue;if(typeof n=="function"&&(n=await n.call(this,t,this.answers)),!n)return this.answers[a];n==="number"&&(n="numeral"),yas(this.prompts[n],`Prompt "${n}" is not registered`);let A=new this.prompts[n](r),f=l(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",C=>{this.emit("answer",a,C,A),o(this.answers,a,C)});let I=A.emit.bind(A);return A.emit=(...C)=>(this.emit.call(this,...C),I(...C)),this.emit("prompt",A,this),r.autofill&&f!=null?(A.value=A.input=f,r.autofill==="show"&&await A.submit()):f=A.value=await A.run(),f}use(t){return t.call(this,this),this}set Prompt(t){this._Prompt=t}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(t){this._Prompt=t}static get Prompt(){return this._Prompt||Hxe()}static get prompts(){return mas()}static get types(){return _as()}static get prompt(){let t=(r,...n)=>{let a=new this(...n),o=a.emit.bind(a);return a.emit=(...l)=>(t.emit(...l),o(...l)),a.prompt(r)};return nue.mixinEmitter(t,new DQr),t}};nue.mixinEmitter(W4,new DQr);var NQr=W4.prompts;for(let e of Object.keys(NQr)){let t=e.toLowerCase(),r=n=>new NQr[e](n).run();W4.prompt[t]=r,W4[t]=r,W4[e]||Reflect.defineProperty(W4,e,{get:()=>NQr[e]})}var Zje=e=>{nue.defineExport(W4,e,()=>W4.types[e])};Zje("ArrayPrompt");Zje("AuthPrompt");Zje("BooleanPrompt");Zje("NumberPrompt");Zje("StringPrompt");bas.exports=W4});var Wje=H(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.Strategy=PR.WorkspaceModifier=PR.Modifier=PR.Target=void 0;PR.getModifier=Mfl;PR.extractRangeModifier=Sas;PR.applyModifier=Yfl;PR.toWorkspaceModifier=vas;PR.makeWorkspaceDescriptor=Bas;PR.findProjectDescriptors=was;PR.extractDescriptorFromPath=Qfl;PR.getSuggestedDescriptors=Jfl;PR.fetchDescriptorFrom=kQr;var Wfl=(Pa(),vi(Va)),x_e=Bn(),gb=Bn(),zkt=no(),Eas=Wfl.__importDefault(UC()),Ofl="workspace:",Pje;(function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"})(Pje||(PR.Target=Pje={}));var sue;(function(e){e.CARET="^",e.TILDE="~",e.EXACT=""})(sue||(PR.Modifier=sue={}));var Vje;(function(e){e.CARET="^",e.TILDE="~",e.EXACT="*"})(Vje||(PR.WorkspaceModifier=Vje={}));var iue;(function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"})(iue||(PR.Strategy=iue={}));function Mfl(e,t){return e.exact?sue.EXACT:e.caret?sue.CARET:e.tilde?sue.TILDE:t.configuration.get("defaultSemverRangePrefix")}var Hfl=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Sas(e,{project:t}){let r=e.match(Hfl);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function Yfl(e,t){let{protocol:r,source:n,params:a,selector:o}=gb.structUtils.parseRange(e.range);return Eas.default.valid(o)&&(o=`${t}${e.range}`),gb.structUtils.makeDescriptor(e,gb.structUtils.makeRange({protocol:r,source:n,params:a,selector:o}))}function vas(e){switch(e){case sue.CARET:return Vje.CARET;case sue.TILDE:return Vje.TILDE;case sue.EXACT:return Vje.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${e}"`)}}function Bas(e,t){return gb.structUtils.makeDescriptor(e.anchoredDescriptor,`${Ofl}${vas(t)}`)}async function was(e,{project:t,target:r}){let n=new Map,a=o=>{let l=n.get(o.descriptorHash);return l||n.set(o.descriptorHash,l={descriptor:o,locators:[]}),l};for(let o of t.workspaces)if(r===Pje.PEER){let l=o.manifest.peerDependencies.get(e.identHash);l!==void 0&&a(l).locators.push(o.anchoredLocator)}else{let l=o.manifest.dependencies.get(e.identHash),A=o.manifest.devDependencies.get(e.identHash);r===Pje.DEVELOPMENT?A!==void 0?a(A).locators.push(o.anchoredLocator):l!==void 0&&a(l).locators.push(o.anchoredLocator):l!==void 0?a(l).locators.push(o.anchoredLocator):A!==void 0&&a(A).locators.push(o.anchoredLocator)}return n}async function Qfl(e,{cwd:t,workspace:r}){return await Ufl(async n=>{zkt.ppath.isAbsolute(e)||(e=zkt.ppath.relative(r.cwd,zkt.ppath.resolve(t,e)),e.match(/^\.{0,2}\//)||(e=`./${e}`));let{project:a}=r,o=await kQr(gb.structUtils.makeIdent(null,"archive"),e,{project:r.project,cache:n,workspace:r});if(!o)throw new Error("Assertion failed: The descriptor should have been found");let l=new x_e.ThrowReport,A=a.configuration.makeResolver(),f=a.configuration.makeFetcher(),I={checksums:a.storedChecksums,project:a,cache:n,fetcher:f,report:l,resolver:A},C=A.bindDescriptor(o,r.anchoredLocator,I),b=gb.structUtils.convertDescriptorToLocator(C),E=await f.fetch(b,I),N=await x_e.Manifest.find(E.prefixPath,{baseFs:E.packageFs});if(!N.name)throw new Error("Target path doesn't have a name");return gb.structUtils.makeDescriptor(N.name,e)})}function Xfl(e){if(e.range==="unknown")return{type:"resolve",range:"latest"};if(gb.semverUtils.validRange(e.range))return{type:"fixed",range:e.range};if(x_e.TAG_REGEXP.test(e.range))return{type:"resolve",range:e.range};let t=e.range.match(/^(?:jsr:|npm:)(.*)/);if(!t)return{type:"fixed",range:e.range};let[,r]=t,n=`${gb.structUtils.stringifyIdent(e)}@`;return r.startsWith(n)&&(r=r.slice(n.length)),gb.semverUtils.validRange(r)?{type:"fixed",range:e.range}:x_e.TAG_REGEXP.test(r)?{type:"resolve",range:e.range}:{type:"fixed",range:e.range}}async function Jfl(e,{project:t,workspace:r,cache:n,target:a,fixed:o,modifier:l,strategies:A,maxResults:f=1/0}){if(!(f>=0))throw new Error(`Invalid maxResults (${f})`);let I=!o||e.range==="unknown"?Xfl(e):{type:"fixed",range:e.range};if(I.type==="fixed")return{suggestions:[{descriptor:e,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,e)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let C=typeof r<"u"&&r!==null&&r.manifest[a].get(e.identHash)||null,b=[],E=[],N=async B=>{try{await B()}catch(F){E.push(F)}};for(let B of A){if(b.length>=f)break;switch(B){case iue.KEEP:await N(async()=>{C&&b.push({descriptor:C,name:`Keep ${gb.structUtils.prettyDescriptor(t.configuration,C)}`,reason:"(no changes)"})});break;case iue.REUSE:await N(async()=>{for(let{descriptor:F,locators:Q}of(await was(e,{project:t,target:a})).values()){if(Q.length===1&&Q[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes(iue.KEEP))continue;let X=`(originally used by ${gb.structUtils.prettyLocator(t.configuration,Q[0])}`;X+=Q.length>1?` and ${Q.length-1} other${Q.length>2?"s":""})`:")",b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:X})}});break;case iue.CACHE:await N(async()=>{for(let F of t.storedDescriptors.values())F.identHash===e.identHash&&b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:"(already used somewhere in the lockfile)"})});break;case iue.PROJECT:await N(async()=>{if(r.manifest.name!==null&&e.identHash===r.manifest.name.identHash)return;let F=t.tryWorkspaceByIdent(e);if(F===null)return;let Q=Bas(F,l);b.push({descriptor:Q,name:`Attach ${gb.structUtils.prettyDescriptor(t.configuration,Q)}`,reason:`(local workspace at ${gb.formatUtils.pretty(t.configuration,F.relativeCwd,gb.formatUtils.Type.PATH)})`})});break;case iue.LATEST:{let F=t.configuration.get("enableNetwork"),Q=t.configuration.get("enableOfflineMode");await N(async()=>{if(a===Pje.PEER)b.push({descriptor:gb.structUtils.makeDescriptor(e,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!F&&!Q)b.push({descriptor:null,name:"Resolve from latest",reason:gb.formatUtils.pretty(t.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let X=await kQr(e,I.range,{project:t,cache:n,workspace:r,modifier:l});X&&b.push({descriptor:X,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,X)}`,reason:`(resolved from ${Q?"the cache":"latest"})`})}})}break}}return{suggestions:b.slice(0,f),rejections:E.slice(0,f)}}async function kQr(e,t,{project:r,cache:n,workspace:a,preserveModifier:o=!0,modifier:l}){let A=r.configuration.normalizeDependency(gb.structUtils.makeDescriptor(e,t)),f=new x_e.ThrowReport,I=r.configuration.makeFetcher(),C=r.configuration.makeResolver(),b={project:r,fetcher:I,cache:n,checksums:r.storedChecksums,report:f,cacheOptions:{skipIntegrityCheck:!0}},E={...b,resolver:C,fetchOptions:b},N=C.bindDescriptor(A,a.anchoredLocator,E),B=await C.getCandidates(N,{},E);if(B.length===0)return null;let F=B[0],{protocol:Q,source:X,params:ae,selector:ne}=gb.structUtils.parseRange(gb.structUtils.convertToManifestRange(F.reference));if(Q===r.configuration.get("defaultProtocol")&&(Q=null),Eas.default.valid(ne)){let ce=ne;if(typeof l<"u")ne=l+ne;else if(o!==!1){let de=typeof o=="string"?o:A.range;ne=Sas(de,{project:r})+ne}let fe=gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}));(await C.getCandidates(r.configuration.normalizeDependency(fe),{},E)).length!==1&&(ne=ce)}return gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}))}async function Ufl(e){return await zkt.xfs.mktempPromise(async t=>{let r=x_e.Configuration.create(t);return r.useWithSource(t,{enableMirror:!1,compressionLevel:0},t,{overwrite:!0}),await e(new x_e.Cache(t,{configuration:r,check:!1,immutable:!1}))})}});var Das=H(xQr=>{"use strict";Object.defineProperty(xQr,"__esModule",{value:!0});var Nas=(Pa(),vi(Va)),Tas=el(),xO=Bn(),Ras=Bn(),cL=Bn(),jv=($c(),vi(rg)),Kfl=Lje(),jfl=Nas.__importStar((CZ(),vi(mZ))),qG=Nas.__importStar(Wje()),Oje=class extends Tas.BaseCommand{constructor(){super(...arguments),this.json=jv.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.fixed=jv.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=jv.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=jv.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=jv.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.dev=jv.Option.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"}),this.peer=jv.Option.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"}),this.optional=jv.Option.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"}),this.preferDev=jv.Option.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"}),this.interactive=jv.Option.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"}),this.cached=jv.Option.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"}),this.mode=jv.Option.String("--mode",{description:"Change what artifacts installs generate",validator:jfl.isEnum(Ras.InstallMode)}),this.silent=jv.Option.Boolean("--silent",{hidden:!0}),this.packages=jv.Option.Rest()}async execute(){let t=await xO.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ras.Project.find(t,this.context.cwd),a=await xO.Cache.find(t);if(!n)throw new Tas.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l||t.get("preferReuse"),f=qG.getModifier(this,r),I=[A?qG.Strategy.REUSE:void 0,qG.Strategy.PROJECT,this.cached?qG.Strategy.CACHE:void 0,qG.Strategy.LATEST].filter(X=>typeof X<"u"),C=l?1/0:1,b=X=>{let ae=cL.structUtils.tryParseDescriptor(X.slice(4));return ae?ae.range==="unknown"?cL.structUtils.makeDescriptor(ae,`jsr:${cL.structUtils.stringifyIdent(ae)}@latest`):cL.structUtils.makeDescriptor(ae,`jsr:${ae.range}`):null},E=await Promise.all(this.packages.map(async X=>{let ae=X.match(/^\.{0,2}\//)?await qG.extractDescriptorFromPath(X,{cwd:this.context.cwd,workspace:n}):X.startsWith("jsr:")?b(X):cL.structUtils.tryParseDescriptor(X),ne=X.match(/^(https?:|git@github)/);if(ne)throw new jv.UsageError(`It seems you are trying to add a package using a ${xO.formatUtils.pretty(t,`${ne[0]}...`,xO.formatUtils.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${xO.formatUtils.pretty(t,"yarn add",xO.formatUtils.Type.CODE)} ${xO.formatUtils.pretty(t,cL.structUtils.makeDescriptor(cL.structUtils.makeIdent(null,"my-package"),`${ne[0]}...`),xO.formatUtils.Type.DESCRIPTOR)}`);if(!ae)throw new jv.UsageError(`The ${xO.formatUtils.pretty(t,X,xO.formatUtils.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ce=zfl(n,ae,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ce.map(async ue=>{let de=await qG.getSuggestedDescriptors(ae,{project:r,workspace:n,cache:a,fixed:o,target:ue,modifier:f,strategies:I,maxResults:C});return{request:ae,suggestedDescriptors:de,target:ue}}))})).then(X=>X.flat()),N=await xO.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async X=>{for(let{request:ae,suggestedDescriptors:{suggestions:ne,rejections:ce}}of E)if(ne.filter(ue=>ue.descriptor!==null).length===0){let[ue]=ce;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range`):X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),X.reportSeparator(),X.reportExceptionOnce(ue)}});if(N.hasErrors())return N.exitCode();let B=!1,F=[],Q=[];for(let{suggestedDescriptors:{suggestions:X},target:ae}of E){let ne,ce=X.filter(be=>be.descriptor!==null),fe=ce[0].descriptor,ue=ce.every(be=>cL.structUtils.areDescriptorsEqual(be.descriptor,fe));ce.length===1||ue?ne=fe:(B=!0,{answer:ne}=await(0,Kfl.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:X.map(({descriptor:be,name:Se,reason:De})=>be?{name:Se,hint:De,descriptor:be}:{name:Se,hint:De,disabled:!0}),onCancel:()=>process.exit(130),result(be){return this.find(be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let de=n.manifest[ae].get(ne.identHash);(typeof de>"u"||de.descriptorHash!==ne.descriptorHash)&&(n.manifest[ae].set(ne.identHash,ne),this.optional&&(ae==="dependencies"?n.manifest.ensureDependencyMeta({...ne,range:"unknown"}).optional=!0:ae==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...ne,range:"unknown"}).optional=!0)),typeof de>"u"?F.push([n,ae,ne,I]):Q.push([n,ae,de,ne]))}return await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyAddition,F),await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyReplacement,Q),B&&this.context.stdout.write(` +`),await r.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:a,mode:this.mode})}};Oje.paths=[["add"]];Oje.usage=jv.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]});xQr.default=Oje;function zfl(e,t,{dev:r,peer:n,preferDev:a,optional:o}){let l=e.manifest[qG.Target.REGULAR].has(t.identHash),A=e.manifest[qG.Target.DEVELOPMENT].has(t.identHash),f=e.manifest[qG.Target.PEER].has(t.identHash);if((r||n)&&l)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(o&&A)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(o&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&o)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);let I=[];return n&&I.push(qG.Target.PEER),(r||a)&&I.push(qG.Target.DEVELOPMENT),o&&I.push(qG.Target.REGULAR),I.length>0?I:A?[qG.Target.DEVELOPMENT]:f?[qG.Target.PEER]:[qG.Target.REGULAR]}});var kas=H(FQr=>{"use strict";Object.defineProperty(FQr,"__esModule",{value:!0});var qfl=el(),GQr=Bn(),Mje=Bn(),Hje=($c(),vi(rg)),Yje=class extends qfl.BaseCommand{constructor(){super(...arguments),this.verbose=Hje.Option.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"}),this.json=Hje.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.name=Hje.Option.String({required:!1})}async execute(){let t=await GQr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await GQr.Project.find(t,this.context.cwd);if(await r.restoreInstallState(),this.name){let l=(await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r})).get(this.name);if(!l)throw new Hje.UsageError(`Couldn't find a binary named "${this.name}" for package "${Mje.structUtils.prettyLocator(t,n)}"`);let[,A]=l;return this.context.stdout.write(`${A} `),0}return(await GQr.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let l=await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r}),f=Array.from(l.keys()).reduce((I,C)=>Math.max(I,C.length),0);for(let[I,[C,b]]of l)o.reportJson({name:I,source:Mje.structUtils.stringifyIdent(C),path:b});if(this.verbose)for(let[I,[C]]of l)o.reportInfo(null,`${I.padEnd(f," ")} ${Mje.structUtils.prettyLocator(t,C)}`);else for(let I of l.keys())o.reportInfo(null,I)})).exitCode()}};Yje.paths=[["bin"]];Yje.usage=Hje.Command.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});FQr.default=Yje});var Gas=H(LQr=>{"use strict";Object.defineProperty(LQr,"__esModule",{value:!0});var qfl=el(),ZQr=Bn(),xas=no(),qkt=($c(),vi(rg)),Qje=class extends qfl.BaseCommand{constructor(){super(...arguments),this.mirror=qkt.Option.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"}),this.all=qkt.Option.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ZQr.Configuration.find(this.context.cwd,this.context.plugins);if(!t.get("enableCacheClean"))throw new qkt.UsageError("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let r=await ZQr.Cache.find(t);return(await ZQr.StreamReport.start({configuration:t,stdout:this.context.stdout},async()=>{let a=(this.all||this.mirror)&&r.mirrorCwd!==null,o=!this.mirror;a&&(await xas.xfs.removePromise(r.mirrorCwd),await t.triggerHook(l=>l.cleanGlobalArtifacts,t)),o&&await xas.xfs.removePromise(r.cwd)})).exitCode()}};Qje.paths=[["cache","clean"],["cache","clear"]];Qje.usage=qkt.Command.Usage({description:"remove the shared cache files",details:` + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});FQr.default=Yje});var Gas=H(LQr=>{"use strict";Object.defineProperty(LQr,"__esModule",{value:!0});var $fl=el(),ZQr=Bn(),xas=no(),qkt=($c(),vi(rg)),Qje=class extends $fl.BaseCommand{constructor(){super(...arguments),this.mirror=qkt.Option.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"}),this.all=qkt.Option.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ZQr.Configuration.find(this.context.cwd,this.context.plugins);if(!t.get("enableCacheClean"))throw new qkt.UsageError("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let r=await ZQr.Cache.find(t);return(await ZQr.StreamReport.start({configuration:t,stdout:this.context.stdout},async()=>{let a=(this.all||this.mirror)&&r.mirrorCwd!==null,o=!this.mirror;a&&(await xas.xfs.removePromise(r.mirrorCwd),await t.triggerHook(l=>l.cleanGlobalArtifacts,t)),o&&await xas.xfs.removePromise(r.cwd)})).exitCode()}};Qje.paths=[["cache","clean"],["cache","clear"]];Qje.usage=qkt.Command.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});LQr.default=Qje});var Zas=H(PQr=>{"use strict";Object.defineProperty(PQr,"__esModule",{value:!0});var $fl=el(),VQr=Bn(),Qxe=($c(),vi(rg)),eIl=kW(),Fas=wt("util"),Xje=class extends $fl.BaseCommand{constructor(){super(...arguments),this.why=Qxe.Option.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"}),this.json=Qxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.unsafe=Qxe.Option.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"}),this.name=Qxe.Option.String()}async execute(){let t=await VQr.Configuration.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(r)>"u")throw new Qxe.UsageError(`Couldn't find a configuration settings named "${r}"`);let o=t.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),l=VQr.miscUtils.convertMapsToIndexableObjects(o),A=n?(0,eIl.get)(l,n):l,f=await VQr.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async I=>{I.reportJson(A)});if(!this.json){if(typeof A=="string")return this.context.stdout.write(`${A} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});LQr.default=Qje});var Zas=H(PQr=>{"use strict";Object.defineProperty(PQr,"__esModule",{value:!0});var eIl=el(),VQr=Bn(),Qxe=($c(),vi(rg)),tIl=kW(),Fas=wt("util"),Xje=class extends eIl.BaseCommand{constructor(){super(...arguments),this.why=Qxe.Option.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"}),this.json=Qxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.unsafe=Qxe.Option.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"}),this.name=Qxe.Option.String()}async execute(){let t=await VQr.Configuration.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(r)>"u")throw new Qxe.UsageError(`Couldn't find a configuration settings named "${r}"`);let o=t.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),l=VQr.miscUtils.convertMapsToIndexableObjects(o),A=n?(0,tIl.get)(l,n):l,f=await VQr.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async I=>{I.reportJson(A)});if(!this.json){if(typeof A=="string")return this.context.stdout.write(`${A} `),f.exitCode();Fas.inspect.styles.name="cyan",this.context.stdout.write(`${(0,Fas.inspect)(A,{depth:1/0,colors:t.get("enableColors"),compact:!1})} `)}return f.exitCode()}};Xje.paths=[["config","get"]];Xje.usage=Qxe.Command.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});PQr.default=Xje});var Vas=H(OQr=>{"use strict";Object.defineProperty(OQr,"__esModule",{value:!0});var tIl=el(),G_e=Bn(),oue=($c(),vi(rg)),WQr=kW(),Las=wt("util"),Jje=class extends tIl.BaseCommand{constructor(){super(...arguments),this.json=oue.Option.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"}),this.home=oue.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=oue.Option.String(),this.value=oue.Option.String()}async execute(){let t=await G_e.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new oue.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new oue.UsageError(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new oue.UsageError("This setting only affects the file it's in, and thus cannot be set from the CLI");let l=this.json?JSON.parse(this.value):this.value;await(this.home?N=>G_e.Configuration.updateHomeConfiguration(N):N=>G_e.Configuration.updateConfiguration(r(),N))(N=>{if(a){let B=(0,WQr.cloneDeep)(N);return(0,WQr.set)(B,this.name,l),B}else return{...N,[n]:l}});let I=(await G_e.Configuration.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),C=G_e.miscUtils.convertMapsToIndexableObjects(I),b=a?(0,WQr.get)(C,a):C;return(await G_e.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async N=>{Las.inspect.styles.name="cyan",N.reportInfo(G_e.MessageName.UNNAMED,`Successfully set ${this.name} to ${(0,Las.inspect)(b,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};Jje.paths=[["config","set"]];Jje.usage=oue.Command.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});PQr.default=Xje});var Vas=H(OQr=>{"use strict";Object.defineProperty(OQr,"__esModule",{value:!0});var rIl=el(),G_e=Bn(),oue=($c(),vi(rg)),WQr=kW(),Las=wt("util"),Jje=class extends rIl.BaseCommand{constructor(){super(...arguments),this.json=oue.Option.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"}),this.home=oue.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=oue.Option.String(),this.value=oue.Option.String()}async execute(){let t=await G_e.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new oue.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new oue.UsageError(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new oue.UsageError("This setting only affects the file it's in, and thus cannot be set from the CLI");let l=this.json?JSON.parse(this.value):this.value;await(this.home?N=>G_e.Configuration.updateHomeConfiguration(N):N=>G_e.Configuration.updateConfiguration(r(),N))(N=>{if(a){let B=(0,WQr.cloneDeep)(N);return(0,WQr.set)(B,this.name,l),B}else return{...N,[n]:l}});let I=(await G_e.Configuration.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),C=G_e.miscUtils.convertMapsToIndexableObjects(I),b=a?(0,WQr.get)(C,a):C;return(await G_e.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async N=>{Las.inspect.styles.name="cyan",N.reportInfo(G_e.MessageName.UNNAMED,`Successfully set ${this.name} to ${(0,Las.inspect)(b,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};Jje.paths=[["config","set"]];Jje.usage=oue.Command.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});OQr.default=Jje});var Pas=H(HQr=>{"use strict";Object.defineProperty(HQr,"__esModule",{value:!0});var rIl=el(),Xxe=Bn(),Uje=($c(),vi(rg)),MQr=kW(),Kje=class extends rIl.BaseCommand{constructor(){super(...arguments),this.home=Uje.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=Uje.Option.String()}async execute(){let t=await Xxe.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new Uje.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Uje.UsageError(`Couldn't find a configuration settings named "${n}"`);let l=this.home?f=>Xxe.Configuration.updateHomeConfiguration(f):f=>Xxe.Configuration.updateConfiguration(r(),f);return(await Xxe.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async f=>{let I=!1;await l(C=>{if(!(0,MQr.has)(C,this.name))return f.reportWarning(Xxe.MessageName.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),I=!0,C;let b=a?(0,MQr.cloneDeep)(C):{...C};return(0,MQr.unset)(b,this.name),b}),I||f.reportInfo(Xxe.MessageName.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};Kje.paths=[["config","unset"]];Kje.usage=Uje.Command.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});OQr.default=Jje});var Pas=H(HQr=>{"use strict";Object.defineProperty(HQr,"__esModule",{value:!0});var nIl=el(),Xxe=Bn(),Uje=($c(),vi(rg)),MQr=kW(),Kje=class extends nIl.BaseCommand{constructor(){super(...arguments),this.home=Uje.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=Uje.Option.String()}async execute(){let t=await Xxe.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new Uje.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Uje.UsageError(`Couldn't find a configuration settings named "${n}"`);let l=this.home?f=>Xxe.Configuration.updateHomeConfiguration(f):f=>Xxe.Configuration.updateConfiguration(r(),f);return(await Xxe.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async f=>{let I=!1;await l(C=>{if(!(0,MQr.has)(C,this.name))return f.reportWarning(Xxe.MessageName.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),I=!0,C;let b=a?(0,MQr.cloneDeep)(C):{...C};return(0,MQr.unset)(b,this.name),b}),I||f.reportInfo(Xxe.MessageName.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};Kje.paths=[["config","unset"]];Kje.usage=Uje.Command.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});HQr.default=Kje});var Was=H(QQr=>{"use strict";Object.defineProperty(QQr,"__esModule",{value:!0});var nIl=el(),ax=Bn(),iIl=no(),Jxe=($c(),vi(rg)),YQr=wt("util"),jje=class extends nIl.BaseCommand{constructor(){super(...arguments),this.noDefaults=Jxe.Option.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"}),this.json=Jxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.verbose=Jxe.Option.Boolean("-v,--verbose",{hidden:!0}),this.why=Jxe.Option.Boolean("--why",{hidden:!0}),this.names=Jxe.Option.Rest()}async execute(){let t=await ax.Configuration.find(this.context.cwd,this.context.plugins,{strict:!1}),r=await(0,ax.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(r!==null)return r;let n=this.names.length>0?[...new Set(this.names)].sort():[...t.settings.keys()].sort(),a,o=await ax.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async l=>{if(t.invalid.size>0&&!this.json){for(let[A,f]of t.invalid)l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${A}" in ${f}`);l.reportSeparator()}if(this.json)for(let A of n){if(this.noDefaults&&!t.sources.has(A))continue;let f=t.settings.get(A);typeof f>"u"&&l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`No configuration key named "${A}"`);let I=t.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),C=t.sources.get(A)??"",b=C&&C[0]!=="<"?iIl.npath.fromPortablePath(C):C;l.reportJson({key:A,effective:I,source:b,...f})}else{let A={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},f={},I={children:f};for(let C of n){if(this.noDefaults&&!t.sources.has(C))continue;let b=t.settings.get(C),E=t.sources.get(C)??"",N=t.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),B={Description:{label:"Description",value:ax.formatUtils.tuple(ax.formatUtils.Type.MARKDOWN,{text:b.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:ax.formatUtils.tuple(E[0]==="<"?ax.formatUtils.Type.CODE:ax.formatUtils.Type.PATH,E)}};f[C]={value:ax.formatUtils.tuple(ax.formatUtils.Type.CODE,C),children:B};let F=(Q,X)=>{for(let[ae,ne]of X)if(ne instanceof Map){let ce={};Q[ae]={children:ce},F(ce,ne)}else Q[ae]={label:ae,value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(ne,A))}};N instanceof Map?F(B,N):B.Value={label:"Value",value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(N,A))}}n.length!==1&&(a=void 0),ax.treeUtils.emitTree(I,{configuration:t,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof a<"u"){let l=n[0],A=(0,YQr.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),{colors:t.get("enableColors")});this.context.stdout.write(` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});HQr.default=Kje});var Was=H(QQr=>{"use strict";Object.defineProperty(QQr,"__esModule",{value:!0});var iIl=el(),ax=Bn(),sIl=no(),Jxe=($c(),vi(rg)),YQr=wt("util"),jje=class extends iIl.BaseCommand{constructor(){super(...arguments),this.noDefaults=Jxe.Option.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"}),this.json=Jxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.verbose=Jxe.Option.Boolean("-v,--verbose",{hidden:!0}),this.why=Jxe.Option.Boolean("--why",{hidden:!0}),this.names=Jxe.Option.Rest()}async execute(){let t=await ax.Configuration.find(this.context.cwd,this.context.plugins,{strict:!1}),r=await(0,ax.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(r!==null)return r;let n=this.names.length>0?[...new Set(this.names)].sort():[...t.settings.keys()].sort(),a,o=await ax.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async l=>{if(t.invalid.size>0&&!this.json){for(let[A,f]of t.invalid)l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${A}" in ${f}`);l.reportSeparator()}if(this.json)for(let A of n){if(this.noDefaults&&!t.sources.has(A))continue;let f=t.settings.get(A);typeof f>"u"&&l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`No configuration key named "${A}"`);let I=t.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),C=t.sources.get(A)??"",b=C&&C[0]!=="<"?sIl.npath.fromPortablePath(C):C;l.reportJson({key:A,effective:I,source:b,...f})}else{let A={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},f={},I={children:f};for(let C of n){if(this.noDefaults&&!t.sources.has(C))continue;let b=t.settings.get(C),E=t.sources.get(C)??"",N=t.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),B={Description:{label:"Description",value:ax.formatUtils.tuple(ax.formatUtils.Type.MARKDOWN,{text:b.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:ax.formatUtils.tuple(E[0]==="<"?ax.formatUtils.Type.CODE:ax.formatUtils.Type.PATH,E)}};f[C]={value:ax.formatUtils.tuple(ax.formatUtils.Type.CODE,C),children:B};let F=(Q,X)=>{for(let[ae,ne]of X)if(ne instanceof Map){let ce={};Q[ae]={children:ce},F(ce,ne)}else Q[ae]={label:ae,value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(ne,A))}};N instanceof Map?F(B,N):B.Value={label:"Value",value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(N,A))}}n.length!==1&&(a=void 0),ax.treeUtils.emitTree(I,{configuration:t,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof a<"u"){let l=n[0],A=(0,YQr.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),{colors:t.get("enableColors")});this.context.stdout.write(` `),this.context.stdout.write(`${A} `)}return o.exitCode()}};jje.paths=[["config"]];jje.usage=Jxe.Command.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});QQr.default=jje});var JQr=H(Z_e=>{"use strict";Object.defineProperty(Z_e,"__esModule",{value:!0});Z_e.acceptedStrategies=Z_e.Strategy=void 0;Z_e.dedupe=cIl;var sIl=(Pa(),vi(Va)),F_e=Bn(),EH=Bn(),oIl=sIl.__importDefault(Ek()),XQr;(function(e){e.HIGHEST="highest"})(XQr||(Z_e.Strategy=XQr={}));Z_e.acceptedStrategies=new Set(Object.values(XQr));var aIl={highest:async(e,t,{resolver:r,fetcher:n,resolveOptions:a,fetchOptions:o})=>{let l=new Map;for(let[f,I]of e.storedResolutions){let C=e.storedDescriptors.get(f);if(typeof C>"u")throw new Error(`Assertion failed: The descriptor (${f}) should have been registered`);F_e.miscUtils.getSetWithDefault(l,C.identHash).add(I)}let A=new Map(F_e.miscUtils.mapAndFilter(e.storedDescriptors.values(),f=>EH.structUtils.isVirtualDescriptor(f)?F_e.miscUtils.mapAndFilter.skip:[f.descriptorHash,F_e.miscUtils.makeDeferred()]));for(let f of e.storedDescriptors.values()){let I=A.get(f.descriptorHash);if(typeof I>"u")throw new Error(`Assertion failed: The descriptor (${f.descriptorHash}) should have been registered`);let C=e.storedResolutions.get(f.descriptorHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolution (${f.descriptorHash}) should have been registered`);let b=e.originalPackages.get(C);if(typeof b>"u")throw new Error(`Assertion failed: The package (${C}) should have been registered`);Promise.resolve().then(async()=>{let E=r.getResolutionDependencies(f,a),N=Object.fromEntries(await F_e.miscUtils.allSettledSafe(Object.entries(E).map(async([ne,ce])=>{let fe=A.get(ce.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ce.descriptorHash}) should have been registered`);let ue=await fe.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ne,ue.updatedPackage]})));if(t.length&&!oIl.default.isMatch(EH.structUtils.stringifyIdent(f),t)||!r.shouldPersistResolution(b,a))return b;let B=l.get(f.identHash);if(typeof B>"u")throw new Error(`Assertion failed: The resolutions (${f.identHash}) should have been registered`);if(B.size===1)return b;let F=[...B].map(ne=>{let ce=e.originalPackages.get(ne);if(typeof ce>"u")throw new Error(`Assertion failed: The package (${ne}) should have been registered`);return ce}),Q=await r.getSatisfying(f,N,F,a),X=Q.locators?.[0];if(typeof X>"u"||!Q.sorted)return b;let ae=e.originalPackages.get(X.locatorHash);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${X.locatorHash}) should have been registered`);return ae}).then(async E=>{let N=await e.preparePackage(E,{resolver:r,resolveOptions:a});I.resolve({descriptor:f,currentPackage:b,updatedPackage:E,resolvedPackage:N})}).catch(E=>{I.reject(E)})}return[...A.values()].map(f=>f.promise)}};async function cIl(e,{strategy:t,patterns:r,cache:n,report:a}){let{configuration:o}=e,l=new F_e.ThrowReport,A=o.makeResolver(),f=o.makeFetcher(),I={cache:n,checksums:e.storedChecksums,fetcher:f,project:e,report:l,cacheOptions:{skipIntegrityCheck:!0}},C={project:e,resolver:A,report:l,fetchOptions:I};return await a.startTimerPromise("Deduplication step",async()=>{let b=aIl[t],E=await b(e,r,{resolver:A,resolveOptions:C,fetcher:f,fetchOptions:I}),N=F_e.Report.progressViaCounter(E.length);await a.reportProgress(N);let B=0;await Promise.all(E.map(X=>X.then(ae=>{if(ae===null||ae.currentPackage.locatorHash===ae.updatedPackage.locatorHash)return;B++;let{descriptor:ne,currentPackage:ce,updatedPackage:fe}=ae;a.reportInfo(EH.MessageName.UNNAMED,`${EH.structUtils.prettyDescriptor(o,ne)} can be deduped from ${EH.structUtils.prettyLocator(o,ce)} to ${EH.structUtils.prettyLocator(o,fe)}`),a.reportJson({descriptor:EH.structUtils.stringifyDescriptor(ne),currentResolution:EH.structUtils.stringifyLocator(ce),updatedResolution:EH.structUtils.stringifyLocator(fe)}),e.storedResolutions.set(ne.descriptorHash,fe.locatorHash)}).finally(()=>N.tick())));let F;switch(B){case 0:F="No packages";break;case 1:F="One package";break;default:F=`${B} packages`}let Q=EH.formatUtils.pretty(o,t,EH.formatUtils.Type.CODE);return a.reportInfo(EH.MessageName.UNNAMED,`${F} can be deduped using the ${Q} strategy`),B})}});var Has=H(KQr=>{"use strict";Object.defineProperty(KQr,"__esModule",{value:!0});var Mas=(Pa(),vi(Va)),lIl=el(),zje=Bn(),Uxe=($c(),vi(rg)),Oas=Mas.__importStar((CZ(),vi(mZ))),UQr=Mas.__importStar(JQr()),qje=class extends lIl.BaseCommand{constructor(){super(...arguments),this.strategy=Uxe.Option.String("-s,--strategy",UQr.Strategy.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Oas.isEnum(UQr.Strategy)}),this.check=Uxe.Option.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"}),this.json=Uxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.mode=Uxe.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Oas.isEnum(zje.InstallMode)}),this.patterns=Uxe.Option.Rest()}async execute(){let t=await zje.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zje.Project.find(t,this.context.cwd),n=await zje.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a=0,o=await zje.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async l=>{a=await UQr.dedupe(r,{strategy:this.strategy,patterns:this.patterns,cache:n,report:l})});return o.hasErrors()?o.exitCode():this.check?a?1:0:await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,mode:this.mode})}};qje.paths=[["dedupe"]];qje.usage=Uxe.Command.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});KQr.default=qje});var Yas=H(jQr=>{"use strict";Object.defineProperty(jQr,"__esModule",{value:!0});var uIl=el(),gIl=Bn(),AIl=($c(),vi(rg)),$kt=class extends uIl.BaseCommand{async execute(){let{plugins:t}=await gIl.Configuration.find(this.context.cwd,this.context.plugins),r=[];for(let l of t){let{commands:A}=l[1];if(A){let I=AIl.Cli.from(A).definitions();r.push([l[0],I])}}let n=this.cli.definitions(),a=(l,A)=>l.split(" ").slice(1).join()===A.split(" ").slice(1).join(),o=$dr()["@yarnpkg/builder"].bundles.standard;for(let l of r){let A=l[1];for(let f of A)n.find(I=>a(I.path,f.path)).plugin={name:l[0],isDefault:o.includes(l[0])}}this.context.stdout.write(`${JSON.stringify(n,null,2)} -`)}};$kt.paths=[["--clipanion=definitions"]];jQr.default=$kt});var Qas=H(zQr=>{"use strict";Object.defineProperty(zQr,"__esModule",{value:!0});var dIl=el(),ext=class extends dIl.BaseCommand{async execute(){this.context.stdout.write(this.cli.usage(null))}};ext.paths=[["help"],["--help"],["-h"]];zQr.default=ext});var Uas=H($Qr=>{"use strict";Object.defineProperty($Qr,"__esModule",{value:!0});var pIl=el(),fIl=Bn(),Xas=no(),Jas=($c(),vi(rg)),qQr=class extends pIl.BaseCommand{constructor(){super(...arguments),this.leadingArgument=Jas.Option.String(),this.args=Jas.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!fIl.structUtils.tryParseIdent(this.leadingArgument)){let t=Xas.ppath.resolve(this.context.cwd,Xas.npath.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};$Qr.default=qQr});var Kas=H(eXr=>{"use strict";Object.defineProperty(eXr,"__esModule",{value:!0});var IIl=el(),hIl=Bn(),txt=class extends IIl.BaseCommand{async execute(){this.context.stdout.write(`${hIl.YarnVersion||""} -`)}};txt.paths=[["-v"],["--version"]];eXr.default=txt});var zas=H(rXr=>{"use strict";Object.defineProperty(rXr,"__esModule",{value:!0});var mIl=el(),jas=Bn(),CIl=Bn(),tXr=($c(),vi(rg)),$je=class extends mIl.BaseCommand{constructor(){super(...arguments),this.commandName=tXr.Option.String(),this.args=tXr.Option.Proxy()}async execute(){let t=await jas.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await jas.Project.find(t,this.context.cwd);return await r.restoreInstallState(),await CIl.scriptUtils.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};$je.paths=[["exec"]];$je.usage=tXr.Command.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});QQr.default=jje});var JQr=H(Z_e=>{"use strict";Object.defineProperty(Z_e,"__esModule",{value:!0});Z_e.acceptedStrategies=Z_e.Strategy=void 0;Z_e.dedupe=lIl;var oIl=(Pa(),vi(Va)),F_e=Bn(),EH=Bn(),aIl=oIl.__importDefault(Ek()),XQr;(function(e){e.HIGHEST="highest"})(XQr||(Z_e.Strategy=XQr={}));Z_e.acceptedStrategies=new Set(Object.values(XQr));var cIl={highest:async(e,t,{resolver:r,fetcher:n,resolveOptions:a,fetchOptions:o})=>{let l=new Map;for(let[f,I]of e.storedResolutions){let C=e.storedDescriptors.get(f);if(typeof C>"u")throw new Error(`Assertion failed: The descriptor (${f}) should have been registered`);F_e.miscUtils.getSetWithDefault(l,C.identHash).add(I)}let A=new Map(F_e.miscUtils.mapAndFilter(e.storedDescriptors.values(),f=>EH.structUtils.isVirtualDescriptor(f)?F_e.miscUtils.mapAndFilter.skip:[f.descriptorHash,F_e.miscUtils.makeDeferred()]));for(let f of e.storedDescriptors.values()){let I=A.get(f.descriptorHash);if(typeof I>"u")throw new Error(`Assertion failed: The descriptor (${f.descriptorHash}) should have been registered`);let C=e.storedResolutions.get(f.descriptorHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolution (${f.descriptorHash}) should have been registered`);let b=e.originalPackages.get(C);if(typeof b>"u")throw new Error(`Assertion failed: The package (${C}) should have been registered`);Promise.resolve().then(async()=>{let E=r.getResolutionDependencies(f,a),N=Object.fromEntries(await F_e.miscUtils.allSettledSafe(Object.entries(E).map(async([ne,ce])=>{let fe=A.get(ce.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ce.descriptorHash}) should have been registered`);let ue=await fe.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ne,ue.updatedPackage]})));if(t.length&&!aIl.default.isMatch(EH.structUtils.stringifyIdent(f),t)||!r.shouldPersistResolution(b,a))return b;let B=l.get(f.identHash);if(typeof B>"u")throw new Error(`Assertion failed: The resolutions (${f.identHash}) should have been registered`);if(B.size===1)return b;let F=[...B].map(ne=>{let ce=e.originalPackages.get(ne);if(typeof ce>"u")throw new Error(`Assertion failed: The package (${ne}) should have been registered`);return ce}),Q=await r.getSatisfying(f,N,F,a),X=Q.locators?.[0];if(typeof X>"u"||!Q.sorted)return b;let ae=e.originalPackages.get(X.locatorHash);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${X.locatorHash}) should have been registered`);return ae}).then(async E=>{let N=await e.preparePackage(E,{resolver:r,resolveOptions:a});I.resolve({descriptor:f,currentPackage:b,updatedPackage:E,resolvedPackage:N})}).catch(E=>{I.reject(E)})}return[...A.values()].map(f=>f.promise)}};async function lIl(e,{strategy:t,patterns:r,cache:n,report:a}){let{configuration:o}=e,l=new F_e.ThrowReport,A=o.makeResolver(),f=o.makeFetcher(),I={cache:n,checksums:e.storedChecksums,fetcher:f,project:e,report:l,cacheOptions:{skipIntegrityCheck:!0}},C={project:e,resolver:A,report:l,fetchOptions:I};return await a.startTimerPromise("Deduplication step",async()=>{let b=cIl[t],E=await b(e,r,{resolver:A,resolveOptions:C,fetcher:f,fetchOptions:I}),N=F_e.Report.progressViaCounter(E.length);await a.reportProgress(N);let B=0;await Promise.all(E.map(X=>X.then(ae=>{if(ae===null||ae.currentPackage.locatorHash===ae.updatedPackage.locatorHash)return;B++;let{descriptor:ne,currentPackage:ce,updatedPackage:fe}=ae;a.reportInfo(EH.MessageName.UNNAMED,`${EH.structUtils.prettyDescriptor(o,ne)} can be deduped from ${EH.structUtils.prettyLocator(o,ce)} to ${EH.structUtils.prettyLocator(o,fe)}`),a.reportJson({descriptor:EH.structUtils.stringifyDescriptor(ne),currentResolution:EH.structUtils.stringifyLocator(ce),updatedResolution:EH.structUtils.stringifyLocator(fe)}),e.storedResolutions.set(ne.descriptorHash,fe.locatorHash)}).finally(()=>N.tick())));let F;switch(B){case 0:F="No packages";break;case 1:F="One package";break;default:F=`${B} packages`}let Q=EH.formatUtils.pretty(o,t,EH.formatUtils.Type.CODE);return a.reportInfo(EH.MessageName.UNNAMED,`${F} can be deduped using the ${Q} strategy`),B})}});var Has=H(KQr=>{"use strict";Object.defineProperty(KQr,"__esModule",{value:!0});var Mas=(Pa(),vi(Va)),uIl=el(),zje=Bn(),Uxe=($c(),vi(rg)),Oas=Mas.__importStar((CZ(),vi(mZ))),UQr=Mas.__importStar(JQr()),qje=class extends uIl.BaseCommand{constructor(){super(...arguments),this.strategy=Uxe.Option.String("-s,--strategy",UQr.Strategy.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Oas.isEnum(UQr.Strategy)}),this.check=Uxe.Option.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"}),this.json=Uxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.mode=Uxe.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Oas.isEnum(zje.InstallMode)}),this.patterns=Uxe.Option.Rest()}async execute(){let t=await zje.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zje.Project.find(t,this.context.cwd),n=await zje.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a=0,o=await zje.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async l=>{a=await UQr.dedupe(r,{strategy:this.strategy,patterns:this.patterns,cache:n,report:l})});return o.hasErrors()?o.exitCode():this.check?a?1:0:await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,mode:this.mode})}};qje.paths=[["dedupe"]];qje.usage=Uxe.Command.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});KQr.default=qje});var Yas=H(jQr=>{"use strict";Object.defineProperty(jQr,"__esModule",{value:!0});var gIl=el(),AIl=Bn(),dIl=($c(),vi(rg)),$kt=class extends gIl.BaseCommand{async execute(){let{plugins:t}=await AIl.Configuration.find(this.context.cwd,this.context.plugins),r=[];for(let l of t){let{commands:A}=l[1];if(A){let I=dIl.Cli.from(A).definitions();r.push([l[0],I])}}let n=this.cli.definitions(),a=(l,A)=>l.split(" ").slice(1).join()===A.split(" ").slice(1).join(),o=$dr()["@yarnpkg/builder"].bundles.standard;for(let l of r){let A=l[1];for(let f of A)n.find(I=>a(I.path,f.path)).plugin={name:l[0],isDefault:o.includes(l[0])}}this.context.stdout.write(`${JSON.stringify(n,null,2)} +`)}};$kt.paths=[["--clipanion=definitions"]];jQr.default=$kt});var Qas=H(zQr=>{"use strict";Object.defineProperty(zQr,"__esModule",{value:!0});var pIl=el(),ext=class extends pIl.BaseCommand{async execute(){this.context.stdout.write(this.cli.usage(null))}};ext.paths=[["help"],["--help"],["-h"]];zQr.default=ext});var Uas=H($Qr=>{"use strict";Object.defineProperty($Qr,"__esModule",{value:!0});var fIl=el(),IIl=Bn(),Xas=no(),Jas=($c(),vi(rg)),qQr=class extends fIl.BaseCommand{constructor(){super(...arguments),this.leadingArgument=Jas.Option.String(),this.args=Jas.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!IIl.structUtils.tryParseIdent(this.leadingArgument)){let t=Xas.ppath.resolve(this.context.cwd,Xas.npath.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};$Qr.default=qQr});var Kas=H(eXr=>{"use strict";Object.defineProperty(eXr,"__esModule",{value:!0});var hIl=el(),mIl=Bn(),txt=class extends hIl.BaseCommand{async execute(){this.context.stdout.write(`${mIl.YarnVersion||""} +`)}};txt.paths=[["-v"],["--version"]];eXr.default=txt});var zas=H(rXr=>{"use strict";Object.defineProperty(rXr,"__esModule",{value:!0});var CIl=el(),jas=Bn(),_Il=Bn(),tXr=($c(),vi(rg)),$je=class extends CIl.BaseCommand{constructor(){super(...arguments),this.commandName=tXr.Option.String(),this.args=tXr.Option.Proxy()}async execute(){let t=await jas.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await jas.Project.find(t,this.context.cwd);return await r.restoreInstallState(),await _Il.scriptUtils.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};$je.paths=[["exec"]];$je.usage=tXr.Command.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});rXr.default=$je});var tcs=H(t6e=>{"use strict";Object.defineProperty(t6e,"__esModule",{value:!0});t6e.explainPeerRequirement=$as;t6e.explainPeerRequirements=ecs;var _Il=(Pa(),vi(Va)),yIl=el(),Ud=Bn(),qas=($c(),vi(rg)),nXr=_Il.__importStar((CZ(),vi(mZ))),e6e=class extends yIl.BaseCommand{constructor(){super(...arguments),this.hash=qas.Option.String({required:!1,validator:nXr.cascade(nXr.isString(),[nXr.matchesRegExp(/^p[0-9a-f]{6}$/)])})}async execute(){let t=await Ud.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await Ud.Project.find(t,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash<"u"?await $as(this.hash,r,{stdout:this.context.stdout}):await ecs(r,{stdout:this.context.stdout})}};e6e.paths=[["explain","peer-requirements"]];e6e.usage=qas.Command.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});rXr.default=$je});var tcs=H(t6e=>{"use strict";Object.defineProperty(t6e,"__esModule",{value:!0});t6e.explainPeerRequirement=$as;t6e.explainPeerRequirements=ecs;var yIl=(Pa(),vi(Va)),bIl=el(),Ud=Bn(),qas=($c(),vi(rg)),nXr=yIl.__importStar((CZ(),vi(mZ))),e6e=class extends bIl.BaseCommand{constructor(){super(...arguments),this.hash=qas.Option.String({required:!1,validator:nXr.cascade(nXr.isString(),[nXr.matchesRegExp(/^p[0-9a-f]{6}$/)])})}async execute(){let t=await Ud.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await Ud.Project.find(t,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash<"u"?await $as(this.hash,r,{stdout:this.context.stdout}):await ecs(r,{stdout:this.context.stdout})}};e6e.paths=[["explain","peer-requirements"]];e6e.usage=qas.Command.Usage({description:"explain a set of peer requirements",details:` A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. @@ -1318,9 +1318,9 @@ Try running the command again with the package name prefixed: ${xO.formatUtils.p When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. **Note:** A hash is a seven-letter code consisting of the letter 'p' followed by six characters that can be obtained from peer dependency warnings or from the list of all peer requirements(\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]});t6e.default=e6e;async function $as(e,t,r){let n=t.peerRequirementNodes.get(e);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${e}"`);let a=new Set,o=f=>a.has(f.requester.locatorHash)?{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:f.children.size>0?[{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.NO_HINT,"...")}]:[]}:(a.add(f.requester.locatorHash),{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:Object.fromEntries(Array.from(f.children.values(),I=>[Ud.structUtils.stringifyLocator(I.requester),o(I)]))}),l=t.peerWarnings.find(f=>f.hash===e);return(await Ud.StreamReport.start({configuration:t.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async f=>{let I=Ud.formatUtils.mark(t.configuration),C=l?I.Cross:I.Check;if(f.reportInfo(Ud.MessageName.UNNAMED,`Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} is requested to provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} by its descendants`),f.reportSeparator(),f.reportInfo(Ud.MessageName.UNNAMED,Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)),Ud.treeUtils.emitTree({children:Object.fromEntries(Array.from(n.requests.values(),b=>[Ud.structUtils.stringifyLocator(b.requester),o(b)]))},{configuration:t.configuration,stdout:r.stdout,json:!1}),f.reportSeparator(),n.provided.range==="missing:"){let b=l?"":" , but all peer requests are optional";f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} does not provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)}${b}.`)}else{let b=t.storedResolutions.get(n.provided.descriptorHash);if(!b)throw new Error("Assertion failed: Expected the descriptor to be registered");let E=t.storedPackages.get(b);if(!E)throw new Error("Assertion failed: Expected the package to be registered");f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} provides ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} with version ${Ud.structUtils.prettyReference(t.configuration,E.version??"0.0.0")}, ${l?"which does not satisfy all requests.":"which satisfies all requests"}`),l?.type===Ud.PeerWarningType.NodeNotCompatible&&(l.range?f.reportInfo(Ud.MessageName.UNNAMED,` The combined requested range is ${Ud.formatUtils.pretty(t.configuration,l.range,Ud.formatUtils.Type.RANGE)}`):f.reportInfo(Ud.MessageName.UNNAMED," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function ecs(e,t){return(await Ud.StreamReport.start({configuration:e.configuration,stdout:t.stdout,includeFooter:!1,includePrefix:!1},async n=>{let a=Ud.formatUtils.mark(e.configuration),o=Ud.miscUtils.sortMap(e.peerRequirementNodes,[([,l])=>Ud.structUtils.stringifyLocator(l.subject),([,l])=>Ud.structUtils.stringifyIdent(l.ident)]);for(let[,l]of o.values()){if(!l.root)continue;let A=e.peerWarnings.find(C=>C.hash===l.hash),f=[...Ud.structUtils.allPeerRequests(l)],I;if(f.length>2?I=` and ${f.length-1} other dependencies`:f.length===2?I=" and 1 other dependency":I="",l.provided.range!=="missing:"){let C=e.storedResolutions.get(l.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the resolution to have been registered");let b=e.storedPackages.get(C);if(!b)throw new Error("Assertion failed: Expected the provided package to have been registered");let E=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} provides ${Ud.structUtils.prettyLocator(e.configuration,b)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,E):n.reportInfo(Ud.MessageName.UNNAMED,E)}else{let C=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} doesn't provide ${Ud.structUtils.prettyIdent(e.configuration,l.ident)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,C):n.reportInfo(Ud.MessageName.UNNAMED,C)}}})).exitCode()}});var nxt=H(Kxe=>{"use strict";Object.defineProperty(Kxe,"__esModule",{value:!0});Kxe.resolveRange=rcs;Kxe.resolveTag=rxt;Kxe.setVersion=ncs;var bIl=(Pa(),vi(Va)),EIl=el(),$G=Bn(),qv=Bn(),zv=no(),aue=($c(),vi(rg)),SIl=bIl.__importDefault(UC()),r6e=class extends EIl.BaseCommand{constructor(){super(...arguments),this.useYarnPath=aue.Option.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"}),this.onlyIfNeeded=aue.Option.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"}),this.version=aue.Option.String()}async execute(){let t=await $G.Configuration.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let l=t.sources.get("yarnPath");if(!l)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let A=t.projectCwd??t.startingCwd;if(zv.ppath.contains(A,l))return 0}let r=()=>{if(typeof $G.YarnVersion>"u")throw new aue.UsageError("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n,a=(l,A)=>({version:A,url:l.replace(/\{\}/g,A)});if(this.version==="self")n={url:r(),version:$G.YarnVersion??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"stable"));else if(this.version==="canary")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"canary"));else if(this.version==="classic")n={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))n={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||zv.npath.isAbsolute(this.version))n={url:`file://${zv.ppath.resolve(zv.npath.toPortablePath(this.version))}`,version:"file"};else if(qv.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(qv.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=a("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(qv.semverUtils.validRange(this.version))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rcs(t,this.version));else throw new aue.UsageError(`Invalid version descriptor "${this.version}"`);return(await $G.StreamReport.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{let A=async()=>{let f="file://";return n.url.startsWith(f)?(l.reportInfo($G.MessageName.UNNAMED,`Retrieving ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.PATH)}`),await zv.xfs.readFilePromise(n.url.slice(f.length))):(l.reportInfo($G.MessageName.UNNAMED,`Downloading ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.URL)}`),await qv.httpUtils.get(n.url,{configuration:t}))};await ncs(t,n.version,A,{report:l,useYarnPath:this.useYarnPath})})).exitCode()}};r6e.paths=[["set","version"]];r6e.usage=aue.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});Kxe.default=r6e;async function rcs(e,t){let n=(await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0})).tags.filter(a=>qv.semverUtils.satisfiesWithPrereleases(a,t));if(n.length===0)throw new aue.UsageError(`No matching release found for range ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)}.`);return n[0]}async function rxt(e,t){let r=await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0});if(!r.latest[t])throw new aue.UsageError(`Tag ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)} not found`);return r.latest[t]}async function ncs(e,t,r,{report:n,useYarnPath:a}){let o,l=async()=>(typeof o>"u"&&(o=await r()),o);if(t===null){let ne=await l();await zv.xfs.mktempPromise(async ce=>{let fe=zv.ppath.join(ce,"yarn.cjs");await zv.xfs.writeFilePromise(fe,ne);let{stdout:ue}=await qv.execUtils.execvp(process.execPath,[zv.npath.fromPortablePath(fe),"--version"],{cwd:ce,env:{...e.env,YARN_IGNORE_PATH:"1"}});if(t=ue.trim(),!SIl.default.valid(t))throw new Error(`Invalid semver version. ${qv.formatUtils.pretty(e,"yarn --version",qv.formatUtils.Type.CODE)} returned: + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]});t6e.default=e6e;async function $as(e,t,r){let n=t.peerRequirementNodes.get(e);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${e}"`);let a=new Set,o=f=>a.has(f.requester.locatorHash)?{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:f.children.size>0?[{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.NO_HINT,"...")}]:[]}:(a.add(f.requester.locatorHash),{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:Object.fromEntries(Array.from(f.children.values(),I=>[Ud.structUtils.stringifyLocator(I.requester),o(I)]))}),l=t.peerWarnings.find(f=>f.hash===e);return(await Ud.StreamReport.start({configuration:t.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async f=>{let I=Ud.formatUtils.mark(t.configuration),C=l?I.Cross:I.Check;if(f.reportInfo(Ud.MessageName.UNNAMED,`Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} is requested to provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} by its descendants`),f.reportSeparator(),f.reportInfo(Ud.MessageName.UNNAMED,Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)),Ud.treeUtils.emitTree({children:Object.fromEntries(Array.from(n.requests.values(),b=>[Ud.structUtils.stringifyLocator(b.requester),o(b)]))},{configuration:t.configuration,stdout:r.stdout,json:!1}),f.reportSeparator(),n.provided.range==="missing:"){let b=l?"":" , but all peer requests are optional";f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} does not provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)}${b}.`)}else{let b=t.storedResolutions.get(n.provided.descriptorHash);if(!b)throw new Error("Assertion failed: Expected the descriptor to be registered");let E=t.storedPackages.get(b);if(!E)throw new Error("Assertion failed: Expected the package to be registered");f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} provides ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} with version ${Ud.structUtils.prettyReference(t.configuration,E.version??"0.0.0")}, ${l?"which does not satisfy all requests.":"which satisfies all requests"}`),l?.type===Ud.PeerWarningType.NodeNotCompatible&&(l.range?f.reportInfo(Ud.MessageName.UNNAMED,` The combined requested range is ${Ud.formatUtils.pretty(t.configuration,l.range,Ud.formatUtils.Type.RANGE)}`):f.reportInfo(Ud.MessageName.UNNAMED," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function ecs(e,t){return(await Ud.StreamReport.start({configuration:e.configuration,stdout:t.stdout,includeFooter:!1,includePrefix:!1},async n=>{let a=Ud.formatUtils.mark(e.configuration),o=Ud.miscUtils.sortMap(e.peerRequirementNodes,[([,l])=>Ud.structUtils.stringifyLocator(l.subject),([,l])=>Ud.structUtils.stringifyIdent(l.ident)]);for(let[,l]of o.values()){if(!l.root)continue;let A=e.peerWarnings.find(C=>C.hash===l.hash),f=[...Ud.structUtils.allPeerRequests(l)],I;if(f.length>2?I=` and ${f.length-1} other dependencies`:f.length===2?I=" and 1 other dependency":I="",l.provided.range!=="missing:"){let C=e.storedResolutions.get(l.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the resolution to have been registered");let b=e.storedPackages.get(C);if(!b)throw new Error("Assertion failed: Expected the provided package to have been registered");let E=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} provides ${Ud.structUtils.prettyLocator(e.configuration,b)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,E):n.reportInfo(Ud.MessageName.UNNAMED,E)}else{let C=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} doesn't provide ${Ud.structUtils.prettyIdent(e.configuration,l.ident)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,C):n.reportInfo(Ud.MessageName.UNNAMED,C)}}})).exitCode()}});var nxt=H(Kxe=>{"use strict";Object.defineProperty(Kxe,"__esModule",{value:!0});Kxe.resolveRange=rcs;Kxe.resolveTag=rxt;Kxe.setVersion=ncs;var EIl=(Pa(),vi(Va)),SIl=el(),$G=Bn(),qv=Bn(),zv=no(),aue=($c(),vi(rg)),vIl=EIl.__importDefault(UC()),r6e=class extends SIl.BaseCommand{constructor(){super(...arguments),this.useYarnPath=aue.Option.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"}),this.onlyIfNeeded=aue.Option.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"}),this.version=aue.Option.String()}async execute(){let t=await $G.Configuration.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let l=t.sources.get("yarnPath");if(!l)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let A=t.projectCwd??t.startingCwd;if(zv.ppath.contains(A,l))return 0}let r=()=>{if(typeof $G.YarnVersion>"u")throw new aue.UsageError("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n,a=(l,A)=>({version:A,url:l.replace(/\{\}/g,A)});if(this.version==="self")n={url:r(),version:$G.YarnVersion??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"stable"));else if(this.version==="canary")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"canary"));else if(this.version==="classic")n={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))n={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||zv.npath.isAbsolute(this.version))n={url:`file://${zv.ppath.resolve(zv.npath.toPortablePath(this.version))}`,version:"file"};else if(qv.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(qv.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=a("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(qv.semverUtils.validRange(this.version))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rcs(t,this.version));else throw new aue.UsageError(`Invalid version descriptor "${this.version}"`);return(await $G.StreamReport.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{let A=async()=>{let f="file://";return n.url.startsWith(f)?(l.reportInfo($G.MessageName.UNNAMED,`Retrieving ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.PATH)}`),await zv.xfs.readFilePromise(n.url.slice(f.length))):(l.reportInfo($G.MessageName.UNNAMED,`Downloading ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.URL)}`),await qv.httpUtils.get(n.url,{configuration:t}))};await ncs(t,n.version,A,{report:l,useYarnPath:this.useYarnPath})})).exitCode()}};r6e.paths=[["set","version"]];r6e.usage=aue.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});Kxe.default=r6e;async function rcs(e,t){let n=(await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0})).tags.filter(a=>qv.semverUtils.satisfiesWithPrereleases(a,t));if(n.length===0)throw new aue.UsageError(`No matching release found for range ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)}.`);return n[0]}async function rxt(e,t){let r=await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0});if(!r.latest[t])throw new aue.UsageError(`Tag ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)} not found`);return r.latest[t]}async function ncs(e,t,r,{report:n,useYarnPath:a}){let o,l=async()=>(typeof o>"u"&&(o=await r()),o);if(t===null){let ne=await l();await zv.xfs.mktempPromise(async ce=>{let fe=zv.ppath.join(ce,"yarn.cjs");await zv.xfs.writeFilePromise(fe,ne);let{stdout:ue}=await qv.execUtils.execvp(process.execPath,[zv.npath.fromPortablePath(fe),"--version"],{cwd:ce,env:{...e.env,YARN_IGNORE_PATH:"1"}});if(t=ue.trim(),!vIl.default.valid(t))throw new Error(`Invalid semver version. ${qv.formatUtils.pretty(e,"yarn --version",qv.formatUtils.Type.CODE)} returned: ${t}`)})}let A=e.projectCwd??e.startingCwd,f=zv.ppath.resolve(A,".yarn/releases"),I=zv.ppath.resolve(f,`yarn-${t}.mjs`),C=zv.ppath.relative(e.startingCwd,I),b=qv.miscUtils.isTaggedYarnVersion(t),E=e.get("yarnPath"),N=!b,B=N||!!E||!!a;if(a===!1){if(N)throw new $G.ReportError($G.MessageName.UNNAMED,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");B=!1}else!B&&!process.env.COREPACK_ROOT&&(n.reportWarning($G.MessageName.UNNAMED,`You don't seem to have ${qv.formatUtils.applyHyperlink(e,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${qv.formatUtils.applyHyperlink(e,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),B=!0);if(B){let ne=await l();n.reportInfo($G.MessageName.UNNAMED,`Saving the new release in ${qv.formatUtils.pretty(e,C,"magenta")}`),await zv.xfs.removePromise(zv.ppath.dirname(I)),await zv.xfs.mkdirPromise(zv.ppath.dirname(I),{recursive:!0}),await zv.xfs.writeFilePromise(I,ne,{mode:493}),await $G.Configuration.updateConfiguration(A,{yarnPath:zv.ppath.relative(A,I)})}else await zv.xfs.removePromise(zv.ppath.dirname(I)),await $G.Configuration.updateConfiguration(A,{yarnPath:$G.Configuration.deleteProperty});let F=await $G.Manifest.tryFind(A)||new $G.Manifest;F.packageManager=`yarn@${b?t:await rxt(e,"stable")}`;let Q={};F.exportTo(Q);let X=zv.ppath.join(A,$G.Manifest.fileName),ae=`${JSON.stringify(Q,null,F.indent)} -`;return await zv.xfs.changeFilePromise(X,ae,{automaticNewlines:!0}),{bundleVersion:t}}});var ocs=H(ixt=>{"use strict";Object.defineProperty(ixt,"__esModule",{value:!0});ixt.getErrorCodeDetails=scs;var vIl=(Pa(),vi(Va)),BIl=el(),$v=Bn(),sXr=($c(),vi(rg)),iXr=vIl.__importStar((CZ(),vi(mZ))),wIl=nxt();function ics(e){return $v.MessageName[(0,$v.parseMessageName)(e)]}var TIl=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?

(?:.(?!##))+)/gs;async function scs(e){let r=`https://repo.yarnpkg.com/${$v.miscUtils.isTaggedYarnVersion($v.YarnVersion)?$v.YarnVersion:await(0,wIl.resolveTag)(e,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,n=await $v.httpUtils.get(r,{configuration:e});return new Map(Array.from(n.toString().matchAll(TIl),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let o=ics(a.code);if(a.name!==o)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${o}"`);return[a.code,a.details]}))}var n6e=class extends BIl.BaseCommand{constructor(){super(...arguments),this.code=sXr.Option.String({required:!1,validator:iXr.applyCascade(iXr.isString(),[iXr.matchesRegExp(/^YN[0-9]{4}$/)])}),this.json=sXr.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await $v.Configuration.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let r=ics(this.code),n=$v.formatUtils.pretty(t,r,$v.formatUtils.Type.CODE),a=this.cli.format().header(`${this.code} - ${n}`),l=(await scs(t)).get(this.code),A=typeof l<"u"?$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.MARKDOWN,{text:l,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;return await zv.xfs.changeFilePromise(X,ae,{automaticNewlines:!0}),{bundleVersion:t}}});var ocs=H(ixt=>{"use strict";Object.defineProperty(ixt,"__esModule",{value:!0});ixt.getErrorCodeDetails=scs;var BIl=(Pa(),vi(Va)),wIl=el(),$v=Bn(),sXr=($c(),vi(rg)),iXr=BIl.__importStar((CZ(),vi(mZ))),TIl=nxt();function ics(e){return $v.MessageName[(0,$v.parseMessageName)(e)]}var RIl=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function scs(e){let r=`https://repo.yarnpkg.com/${$v.miscUtils.isTaggedYarnVersion($v.YarnVersion)?$v.YarnVersion:await(0,TIl.resolveTag)(e,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,n=await $v.httpUtils.get(r,{configuration:e});return new Map(Array.from(n.toString().matchAll(RIl),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let o=ics(a.code);if(a.name!==o)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${o}"`);return[a.code,a.details]}))}var n6e=class extends wIl.BaseCommand{constructor(){super(...arguments),this.code=sXr.Option.String({required:!1,validator:iXr.applyCascade(iXr.isString(),[iXr.matchesRegExp(/^YN[0-9]{4}$/)])}),this.json=sXr.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await $v.Configuration.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let r=ics(this.code),n=$v.formatUtils.pretty(t,r,$v.formatUtils.Type.CODE),a=this.cli.format().header(`${this.code} - ${n}`),l=(await scs(t)).get(this.code),A=typeof l<"u"?$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.MARKDOWN,{text:l,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} @@ -1332,20 +1332,20 @@ ${A} When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});ixt.default=n6e});var ccs=H(oXr=>{"use strict";Object.defineProperty(oXr,"__esModule",{value:!0});var RIl=(Pa(),vi(Va)),acs=el(),hI=Bn(),NIl=no(),SH=($c(),vi(rg)),DIl=RIl.__importDefault(Ek()),i6e=class extends acs.BaseCommand{constructor(){super(...arguments),this.all=SH.Option.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"}),this.recursive=SH.Option.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"}),this.extra=SH.Option.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"}),this.cache=SH.Option.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"}),this.dependents=SH.Option.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"}),this.manifest=SH.Option.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"}),this.nameOnly=SH.Option.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"}),this.virtuals=SH.Option.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"}),this.json=SH.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=SH.Option.Rest()}async execute(){let t=await hI.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hI.Project.find(t,this.context.cwd),a=await hI.Cache.find(t);if(!n&&!this.all)throw new acs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let l=(ne,{recursive:ce})=>{let fe=ne.anchoredLocator.locatorHash,ue=new Map,de=[fe];for(;de.length>0;){let be=de.shift();if(ue.has(be))continue;let Se=r.storedPackages.get(be);if(typeof Se>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ue.set(be,Se),hI.structUtils.isVirtualLocator(Se)&&de.push(hI.structUtils.devirtualizeLocator(Se).locatorHash),!(!ce&&be!==fe))for(let De of Se.dependencies.values()){let k=r.storedResolutions.get(De.descriptorHash);if(typeof k>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(k)}}return ue.values()},A=({recursive:ne})=>{let ce=new Map;for(let fe of r.workspaces)for(let ue of l(fe,{recursive:ne}))ce.set(ue.locatorHash,ue);return ce.values()},f=({all:ne,recursive:ce})=>ne&&ce?r.storedPackages.values():ne?A({recursive:ce}):l(n,{recursive:ce}),I=({all:ne,recursive:ce})=>{let fe=f({all:ne,recursive:ce}),ue=this.patterns.map(Se=>{let De=hI.structUtils.parseLocator(Se),k=DIl.default.makeRe(hI.structUtils.stringifyIdent(De)),et=hI.structUtils.isVirtualLocator(De),ct=et?hI.structUtils.devirtualizeLocator(De):De;return Me=>{let je=hI.structUtils.stringifyIdent(Me);if(!k.test(je))return!1;if(De.reference==="unknown")return!0;let St=hI.structUtils.isVirtualLocator(Me),At=St?hI.structUtils.devirtualizeLocator(Me):Me;return!(et&&St&&De.reference!==Me.reference||ct.reference!==At.reference)}}),de=hI.miscUtils.sortMap([...fe],Se=>hI.structUtils.stringifyLocator(Se));return{selection:de.filter(Se=>ue.length===0||ue.some(De=>De(Se))),sortedLookup:de}},{selection:C,sortedLookup:b}=I({all:this.all,recursive:this.recursive});if(C.length===0)throw new SH.UsageError("No package matched your request");let E=new Map;if(this.dependents)for(let ne of b)for(let ce of ne.dependencies.values()){let fe=r.storedResolutions.get(ce.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the resolution to be registered");hI.miscUtils.getArrayWithDefault(E,fe).push(ne)}let N=new Map;for(let ne of b){if(!hI.structUtils.isVirtualLocator(ne))continue;let ce=hI.structUtils.devirtualizeLocator(ne);hI.miscUtils.getArrayWithDefault(N,ce.locatorHash).push(ne)}let B={},F={children:B},Q=t.makeFetcher(),X={project:r,fetcher:Q,cache:a,checksums:r.storedChecksums,report:new hI.ThrowReport,cacheOptions:{skipIntegrityCheck:!0}},ae=[async(ne,ce,fe)=>{if(!ce.has("manifest"))return;let ue=await Q.fetch(ne,X),de;try{de=await hI.Manifest.find(ue.prefixPath,{baseFs:ue.packageFs})}finally{ue.releaseFs?.()}fe("Manifest",{License:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,de.license),Homepage:hI.formatUtils.tuple(hI.formatUtils.Type.URL,de.raw.homepage??null)})},async(ne,ce,fe)=>{if(!ce.has("cache"))return;let ue=r.storedChecksums.get(ne.locatorHash)??null,de=a.getLocatorPath(ne,ue),be;if(de!==null)try{be=await NIl.xfs.statPromise(de)}catch{}let Se=typeof be<"u"?[be.size,hI.formatUtils.Type.SIZE]:void 0;fe("Cache",{Checksum:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ue),Path:hI.formatUtils.tuple(hI.formatUtils.Type.PATH,de),Size:Se})}];for(let ne of C){let ce=hI.structUtils.isVirtualLocator(ne);if(!this.virtuals&&ce)continue;let fe={},ue={value:[ne,hI.formatUtils.Type.LOCATOR],children:fe};if(B[hI.structUtils.stringifyLocator(ne)]=ue,this.nameOnly){delete ue.children;continue}let de=N.get(ne.locatorHash);typeof de<"u"&&(fe.Instances={label:"Instances",value:hI.formatUtils.tuple(hI.formatUtils.Type.NUMBER,de.length)}),fe.Version={label:"Version",value:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ne.version)};let be=(De,k)=>{let et={};if(fe[De]=et,Array.isArray(k))et.children=k.map(ct=>({value:ct}));else{let ct={};et.children=ct;for(let[Me,je]of Object.entries(k))typeof je>"u"||(ct[Me]={label:Me,value:je})}};if(!ce){for(let De of ae)await De(ne,o,be);await t.triggerHook(De=>De.fetchPackageInfo,ne,o,be)}ne.bin.size>0&&!ce&&be("Exported Binaries",[...ne.bin.keys()].map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.PATH,De)));let Se=E.get(ne.locatorHash);typeof Se<"u"&&Se.length>0&&be("Dependents",Se.map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.LOCATOR,De))),ne.dependencies.size>0&&!ce&&be("Dependencies",[...ne.dependencies.values()].map(De=>{let k=r.storedResolutions.get(De.descriptorHash),et=typeof k<"u"?r.storedPackages.get(k)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:et})})),ne.peerDependencies.size>0&&ce&&be("Peer dependencies",[...ne.peerDependencies.values()].map(De=>{let k=ne.dependencies.get(De.identHash),et=typeof k<"u"?r.storedResolutions.get(k.descriptorHash)??null:null,ct=et!==null?r.storedPackages.get(et)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:ct})}))}hI.treeUtils.emitTree(F,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};i6e.paths=[["info"]];i6e.usage=SH.Command.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});oXr.default=i6e});var Acs=H(lXr=>{"use strict";Object.defineProperty(lXr,"__esModule",{value:!0});var cXr=(Pa(),vi(Va)),lcs=el(),WA=Bn(),a6=no(),ucs=TW(),aXr=cXr.__importDefault(Nfe()),_T=($c(),vi(rg)),gcs=cXr.__importDefault(UC()),kIl=cXr.__importStar((CZ(),vi(mZ))),xIl=[{selector:e=>e===-1,name:"nodeLinker",value:"node-modules"},{selector:e=>e!==-1&&e<8,name:"enableGlobalCache",value:!1},{selector:e=>e!==-1&&e<8,name:"compressionLevel",value:"mixed"},{selector:e=>e<9,name:"approvedGitRepositories",value:["**"]},{selector:e=>e<9,name:"enableScripts",value:!0}],s6e=class extends lcs.BaseCommand{constructor(){super(...arguments),this.json=_T.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.immutable=_T.Option.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"}),this.immutableCache=_T.Option.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"}),this.refreshLockfile=_T.Option.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"}),this.checkCache=_T.Option.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"}),this.checkResolutions=_T.Option.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"}),this.inlineBuilds=_T.Option.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"}),this.mode=_T.Option.String("--mode",{description:"Change what artifacts installs generate",validator:kIl.isEnum(WA.InstallMode)}),this.cacheFolder=_T.Option.String("--cache-folder",{hidden:!0}),this.frozenLockfile=_T.Option.Boolean("--frozen-lockfile",{hidden:!0}),this.ignoreEngines=_T.Option.Boolean("--ignore-engines",{hidden:!0}),this.nonInteractive=_T.Option.Boolean("--non-interactive",{hidden:!0}),this.preferOffline=_T.Option.Boolean("--prefer-offline",{hidden:!0}),this.production=_T.Option.Boolean("--production",{hidden:!0}),this.registry=_T.Option.String("--registry",{hidden:!0}),this.silent=_T.Option.Boolean("--silent",{hidden:!0}),this.networkTimeout=_T.Option.String("--network-timeout",{hidden:!0})}async execute(){let t=await WA.Configuration.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=await(0,WA.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!aXr.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!aXr.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!r},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!aXr.default.NETLIFY}]);if(n!==null)return n;let a=this.mode===WA.InstallMode.UpdateLockfile;if(a&&(this.immutable||this.immutableCache))throw new _T.UsageError(`${WA.formatUtils.pretty(t,"--immutable",WA.formatUtils.Type.CODE)} and ${WA.formatUtils.pretty(t,"--immutable-cache",WA.formatUtils.Type.CODE)} cannot be used with ${WA.formatUtils.pretty(t,"--mode=update-lockfile",WA.formatUtils.Type.CODE)}`);let o=(this.immutable??t.get("enableImmutableInstalls"))&&!a,l=this.immutableCache&&!a;if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q=!1;await ZIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically removed core plugins that are now builtins \u{1F44D}"),Q=!0),await FIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),Q=!0),Q&&F.reportSeparator()});if(B.hasErrors())return B.exitCode()}if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{if(WA.Configuration.telemetry?.isNew)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,`Run ${WA.formatUtils.pretty(t,"yarn config set --home enableTelemetry 0",WA.formatUtils.Type.CODE)} to disable`),F.reportSeparator();else if(WA.Configuration.telemetry?.shouldShowTips){let Q=await WA.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0}).catch(()=>null);if(Q!==null){let X=null;if(WA.YarnVersion!==null){let ne=gcs.default.prerelease(WA.YarnVersion)?"canary":"stable",ce=Q.latest[ne];ce!==null&&gcs.default.gt(ce,WA.YarnVersion)&&(X=[ne,ce])}if(X)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.VERSION_NOTICE,`${WA.formatUtils.applyStyle(t,`A new ${X[0]} version of Yarn is available:`,WA.formatUtils.Style.BOLD)} ${WA.structUtils.prettyReference(t,X[1])}!`),F.reportInfo(WA.MessageName.VERSION_NOTICE,`Upgrade now by running ${WA.formatUtils.pretty(t,`yarn set version ${X[1]}`,WA.formatUtils.Type.CODE)}`),F.reportSeparator();else{let ae=WA.Configuration.telemetry.selectTip(Q.tips);ae&&(F.reportInfo(WA.MessageName.TIPS_NOTICE,WA.formatUtils.pretty(t,ae.message,WA.formatUtils.Type.MARKDOWN_INLINE)),ae.url&&F.reportInfo(WA.MessageName.TIPS_NOTICE,`Learn more at ${ae.url}`),F.reportSeparator())}}}});if(B.hasErrors())return B.exitCode()}let{project:A,workspace:f}=await WA.Project.find(t,this.context.cwd),I=A.lockfileLastVersion;if(I!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q={};for(let X of xIl)X.selector(I)&&typeof t.sources.get(X.name)>"u"&&(t.use("",{[X.name]:X.value},A.cwd,{overwrite:!0}),Q[X.name]=X.value);Object.keys(Q).length>0&&(await WA.Configuration.updateConfiguration(A.cwd,Q),F.reportInfo(WA.MessageName.MIGRATION_SUCCESS,"Migrated your project to the latest Yarn version \u{1F680}"),F.reportSeparator())});if(B.hasErrors())return B.exitCode()}let C=await WA.Cache.find(t,{immutable:l,check:this.checkCache});if(!f)throw new lcs.WorkspaceRequiredError(A.cwd,this.context.cwd);await A.restoreInstallState({restoreResolutions:!1});let b=t.get("enableHardenedMode");b&&typeof t.sources.get("enableHardenedMode")>"u"&&await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async B=>{B.reportWarning(WA.MessageName.UNNAMED,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),B.reportWarning(WA.MessageName.UNNAMED,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${WA.formatUtils.applyHyperlink(t,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),B.reportSeparator()}),(this.refreshLockfile??b)&&(A.lockfileNeedsRefresh=!0);let E=this.checkResolutions??b;return(await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async B=>{await A.install({cache:C,report:B,immutable:o,checkResolutions:E,mode:this.mode})})).exitCode()}};s6e.paths=[["install"],_T.Command.Default];s6e.usage=_T.Command.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});lXr.default=s6e;var GIl="<<<<<<<";async function FIl(e,t){if(!e.projectCwd)return!1;let r=a6.ppath.join(e.projectCwd,a6.Filename.lockfile);if(!await a6.xfs.existsPromise(r)||!(await a6.xfs.readFilePromise(r,"utf8")).includes(GIl))return!1;if(t)throw new WA.ReportError(WA.MessageName.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let a=await WA.execUtils.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:e.projectCwd});if(a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,"Git returned an error when trying to find the commits pertaining to the conflict");let o=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let f=await WA.execUtils.execvp("git",["show",`${A}:./${a6.Filename.lockfile}`],{cwd:e.projectCwd});if(f.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,`Git returned an error when trying to access the lockfile content in ${A}`);try{return(0,ucs.parseSyml)(f.stdout)}catch{throw new WA.ReportError(WA.MessageName.AUTOMERGE_FAILED_TO_PARSE,"A variant of the conflicting lockfile failed to parse")}}));o=o.filter(A=>!!A.__metadata);for(let A of o){if(A.__metadata.version<7)for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=WA.structUtils.parseDescriptor(f,!0),C=e.normalizeDependency(I),b=WA.structUtils.stringifyDescriptor(C);b!==f&&(A[b]=A[f],delete A[f])}for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=A[f].checksum;typeof I>"u"||I.includes("/")||(A[f].checksum=`${A.__metadata.cacheKey}/${I}`)}}let l=Object.assign({},...o);l.__metadata.version=`${Math.min(...o.map(A=>parseInt(A.__metadata.version??0)))}`,l.__metadata.cacheKey="merged";for(let[A,f]of Object.entries(l))typeof f=="string"&&delete l[A];return await a6.xfs.changeFilePromise(r,(0,ucs.stringifySyml)(l),{automaticNewlines:!0}),!0}async function ZIl(e,t){if(!e.projectCwd)return!1;let r=[],n=a6.ppath.join(e.projectCwd,".yarn/plugins/@yarnpkg");return await WA.Configuration.updateConfiguration(e.projectCwd,{plugins:o=>{if(!Array.isArray(o))return o;let l=o.filter(A=>{if(!A.path)return!0;let f=a6.ppath.resolve(e.projectCwd,A.path),I=WA.LEGACY_PLUGINS.has(A.spec)&&a6.ppath.contains(n,f);return I&&r.push(f),!I});return l.length===0?WA.Configuration.deleteProperty:l.length===o.length?o:l}},{immutable:t})?(await Promise.all(r.map(async o=>{await a6.xfs.removePromise(o)})),!0):!1}});var dcs=H(AXr=>{"use strict";Object.defineProperty(AXr,"__esModule",{value:!0});var uXr=el(),jxe=Bn(),gXr=no(),wte=($c(),vi(rg)),o6e=class extends uXr.BaseCommand{constructor(){super(...arguments),this.all=wte.Option.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"}),this.private=wte.Option.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"}),this.relative=wte.Option.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"}),this.destinations=wte.Option.Rest()}async execute(){let t=await jxe.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await jxe.Project.find(t,this.context.cwd),a=await jxe.Cache.find(t);if(!n)throw new uXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=r.topLevelWorkspace,l=[];for(let A of this.destinations){let f=gXr.ppath.resolve(this.context.cwd,gXr.npath.toPortablePath(A)),I=await jxe.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await jxe.Project.find(I,f);if(r.cwd===C.cwd)throw new wte.UsageError(`Invalid destination '${A}'; Can't link the project to itself`);if(!b)throw new uXr.WorkspaceRequiredError(C.cwd,f);if(this.all){let E=!1;for(let N of C.workspaces)N.manifest.name&&(!N.manifest.private||this.private)&&(l.push(N),E=!0);if(!E)throw new wte.UsageError(`No workspace found to be linked in the target project: ${A}`)}else{if(!b.manifest.name)throw new wte.UsageError(`The target workspace at '${A}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new wte.UsageError(`The target workspace at '${A}' is marked private - use the --private flag to link it anyway`);l.push(b)}}for(let A of l){let f=jxe.structUtils.stringifyIdent(A.anchoredLocator),I=this.relative?gXr.ppath.relative(r.cwd,A.cwd):A.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:f}},reference:`portal:${I}`})}return await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};o6e.paths=[["link"]];o6e.usage=wte.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});AXr.default=o6e});var fcs=H(dXr=>{"use strict";Object.defineProperty(dXr,"__esModule",{value:!0});var LIl=el(),pcs=($c(),vi(rg)),a6e=class extends LIl.BaseCommand{constructor(){super(...arguments),this.args=pcs.Option.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};a6e.paths=[["node"]];a6e.usage=pcs.Command.Usage({description:"run node with the hook already setup",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});ixt.default=n6e});var ccs=H(oXr=>{"use strict";Object.defineProperty(oXr,"__esModule",{value:!0});var NIl=(Pa(),vi(Va)),acs=el(),hI=Bn(),DIl=no(),SH=($c(),vi(rg)),kIl=NIl.__importDefault(Ek()),i6e=class extends acs.BaseCommand{constructor(){super(...arguments),this.all=SH.Option.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"}),this.recursive=SH.Option.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"}),this.extra=SH.Option.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"}),this.cache=SH.Option.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"}),this.dependents=SH.Option.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"}),this.manifest=SH.Option.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"}),this.nameOnly=SH.Option.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"}),this.virtuals=SH.Option.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"}),this.json=SH.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=SH.Option.Rest()}async execute(){let t=await hI.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hI.Project.find(t,this.context.cwd),a=await hI.Cache.find(t);if(!n&&!this.all)throw new acs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let l=(ne,{recursive:ce})=>{let fe=ne.anchoredLocator.locatorHash,ue=new Map,de=[fe];for(;de.length>0;){let be=de.shift();if(ue.has(be))continue;let Se=r.storedPackages.get(be);if(typeof Se>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ue.set(be,Se),hI.structUtils.isVirtualLocator(Se)&&de.push(hI.structUtils.devirtualizeLocator(Se).locatorHash),!(!ce&&be!==fe))for(let De of Se.dependencies.values()){let k=r.storedResolutions.get(De.descriptorHash);if(typeof k>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(k)}}return ue.values()},A=({recursive:ne})=>{let ce=new Map;for(let fe of r.workspaces)for(let ue of l(fe,{recursive:ne}))ce.set(ue.locatorHash,ue);return ce.values()},f=({all:ne,recursive:ce})=>ne&&ce?r.storedPackages.values():ne?A({recursive:ce}):l(n,{recursive:ce}),I=({all:ne,recursive:ce})=>{let fe=f({all:ne,recursive:ce}),ue=this.patterns.map(Se=>{let De=hI.structUtils.parseLocator(Se),k=kIl.default.makeRe(hI.structUtils.stringifyIdent(De)),et=hI.structUtils.isVirtualLocator(De),ct=et?hI.structUtils.devirtualizeLocator(De):De;return Me=>{let je=hI.structUtils.stringifyIdent(Me);if(!k.test(je))return!1;if(De.reference==="unknown")return!0;let St=hI.structUtils.isVirtualLocator(Me),At=St?hI.structUtils.devirtualizeLocator(Me):Me;return!(et&&St&&De.reference!==Me.reference||ct.reference!==At.reference)}}),de=hI.miscUtils.sortMap([...fe],Se=>hI.structUtils.stringifyLocator(Se));return{selection:de.filter(Se=>ue.length===0||ue.some(De=>De(Se))),sortedLookup:de}},{selection:C,sortedLookup:b}=I({all:this.all,recursive:this.recursive});if(C.length===0)throw new SH.UsageError("No package matched your request");let E=new Map;if(this.dependents)for(let ne of b)for(let ce of ne.dependencies.values()){let fe=r.storedResolutions.get(ce.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the resolution to be registered");hI.miscUtils.getArrayWithDefault(E,fe).push(ne)}let N=new Map;for(let ne of b){if(!hI.structUtils.isVirtualLocator(ne))continue;let ce=hI.structUtils.devirtualizeLocator(ne);hI.miscUtils.getArrayWithDefault(N,ce.locatorHash).push(ne)}let B={},F={children:B},Q=t.makeFetcher(),X={project:r,fetcher:Q,cache:a,checksums:r.storedChecksums,report:new hI.ThrowReport,cacheOptions:{skipIntegrityCheck:!0}},ae=[async(ne,ce,fe)=>{if(!ce.has("manifest"))return;let ue=await Q.fetch(ne,X),de;try{de=await hI.Manifest.find(ue.prefixPath,{baseFs:ue.packageFs})}finally{ue.releaseFs?.()}fe("Manifest",{License:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,de.license),Homepage:hI.formatUtils.tuple(hI.formatUtils.Type.URL,de.raw.homepage??null)})},async(ne,ce,fe)=>{if(!ce.has("cache"))return;let ue=r.storedChecksums.get(ne.locatorHash)??null,de=a.getLocatorPath(ne,ue),be;if(de!==null)try{be=await DIl.xfs.statPromise(de)}catch{}let Se=typeof be<"u"?[be.size,hI.formatUtils.Type.SIZE]:void 0;fe("Cache",{Checksum:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ue),Path:hI.formatUtils.tuple(hI.formatUtils.Type.PATH,de),Size:Se})}];for(let ne of C){let ce=hI.structUtils.isVirtualLocator(ne);if(!this.virtuals&&ce)continue;let fe={},ue={value:[ne,hI.formatUtils.Type.LOCATOR],children:fe};if(B[hI.structUtils.stringifyLocator(ne)]=ue,this.nameOnly){delete ue.children;continue}let de=N.get(ne.locatorHash);typeof de<"u"&&(fe.Instances={label:"Instances",value:hI.formatUtils.tuple(hI.formatUtils.Type.NUMBER,de.length)}),fe.Version={label:"Version",value:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ne.version)};let be=(De,k)=>{let et={};if(fe[De]=et,Array.isArray(k))et.children=k.map(ct=>({value:ct}));else{let ct={};et.children=ct;for(let[Me,je]of Object.entries(k))typeof je>"u"||(ct[Me]={label:Me,value:je})}};if(!ce){for(let De of ae)await De(ne,o,be);await t.triggerHook(De=>De.fetchPackageInfo,ne,o,be)}ne.bin.size>0&&!ce&&be("Exported Binaries",[...ne.bin.keys()].map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.PATH,De)));let Se=E.get(ne.locatorHash);typeof Se<"u"&&Se.length>0&&be("Dependents",Se.map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.LOCATOR,De))),ne.dependencies.size>0&&!ce&&be("Dependencies",[...ne.dependencies.values()].map(De=>{let k=r.storedResolutions.get(De.descriptorHash),et=typeof k<"u"?r.storedPackages.get(k)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:et})})),ne.peerDependencies.size>0&&ce&&be("Peer dependencies",[...ne.peerDependencies.values()].map(De=>{let k=ne.dependencies.get(De.identHash),et=typeof k<"u"?r.storedResolutions.get(k.descriptorHash)??null:null,ct=et!==null?r.storedPackages.get(et)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:ct})}))}hI.treeUtils.emitTree(F,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};i6e.paths=[["info"]];i6e.usage=SH.Command.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});oXr.default=i6e});var Acs=H(lXr=>{"use strict";Object.defineProperty(lXr,"__esModule",{value:!0});var cXr=(Pa(),vi(Va)),lcs=el(),WA=Bn(),a6=no(),ucs=TW(),aXr=cXr.__importDefault(Nfe()),_T=($c(),vi(rg)),gcs=cXr.__importDefault(UC()),xIl=cXr.__importStar((CZ(),vi(mZ))),GIl=[{selector:e=>e===-1,name:"nodeLinker",value:"node-modules"},{selector:e=>e!==-1&&e<8,name:"enableGlobalCache",value:!1},{selector:e=>e!==-1&&e<8,name:"compressionLevel",value:"mixed"},{selector:e=>e<9,name:"approvedGitRepositories",value:["**"]},{selector:e=>e<9,name:"enableScripts",value:!0}],s6e=class extends lcs.BaseCommand{constructor(){super(...arguments),this.json=_T.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.immutable=_T.Option.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"}),this.immutableCache=_T.Option.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"}),this.refreshLockfile=_T.Option.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"}),this.checkCache=_T.Option.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"}),this.checkResolutions=_T.Option.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"}),this.inlineBuilds=_T.Option.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"}),this.mode=_T.Option.String("--mode",{description:"Change what artifacts installs generate",validator:xIl.isEnum(WA.InstallMode)}),this.cacheFolder=_T.Option.String("--cache-folder",{hidden:!0}),this.frozenLockfile=_T.Option.Boolean("--frozen-lockfile",{hidden:!0}),this.ignoreEngines=_T.Option.Boolean("--ignore-engines",{hidden:!0}),this.nonInteractive=_T.Option.Boolean("--non-interactive",{hidden:!0}),this.preferOffline=_T.Option.Boolean("--prefer-offline",{hidden:!0}),this.production=_T.Option.Boolean("--production",{hidden:!0}),this.registry=_T.Option.String("--registry",{hidden:!0}),this.silent=_T.Option.Boolean("--silent",{hidden:!0}),this.networkTimeout=_T.Option.String("--network-timeout",{hidden:!0})}async execute(){let t=await WA.Configuration.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=await(0,WA.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!aXr.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!aXr.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!r},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!aXr.default.NETLIFY}]);if(n!==null)return n;let a=this.mode===WA.InstallMode.UpdateLockfile;if(a&&(this.immutable||this.immutableCache))throw new _T.UsageError(`${WA.formatUtils.pretty(t,"--immutable",WA.formatUtils.Type.CODE)} and ${WA.formatUtils.pretty(t,"--immutable-cache",WA.formatUtils.Type.CODE)} cannot be used with ${WA.formatUtils.pretty(t,"--mode=update-lockfile",WA.formatUtils.Type.CODE)}`);let o=(this.immutable??t.get("enableImmutableInstalls"))&&!a,l=this.immutableCache&&!a;if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q=!1;await LIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically removed core plugins that are now builtins \u{1F44D}"),Q=!0),await ZIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),Q=!0),Q&&F.reportSeparator()});if(B.hasErrors())return B.exitCode()}if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{if(WA.Configuration.telemetry?.isNew)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,`Run ${WA.formatUtils.pretty(t,"yarn config set --home enableTelemetry 0",WA.formatUtils.Type.CODE)} to disable`),F.reportSeparator();else if(WA.Configuration.telemetry?.shouldShowTips){let Q=await WA.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0}).catch(()=>null);if(Q!==null){let X=null;if(WA.YarnVersion!==null){let ne=gcs.default.prerelease(WA.YarnVersion)?"canary":"stable",ce=Q.latest[ne];ce!==null&&gcs.default.gt(ce,WA.YarnVersion)&&(X=[ne,ce])}if(X)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.VERSION_NOTICE,`${WA.formatUtils.applyStyle(t,`A new ${X[0]} version of Yarn is available:`,WA.formatUtils.Style.BOLD)} ${WA.structUtils.prettyReference(t,X[1])}!`),F.reportInfo(WA.MessageName.VERSION_NOTICE,`Upgrade now by running ${WA.formatUtils.pretty(t,`yarn set version ${X[1]}`,WA.formatUtils.Type.CODE)}`),F.reportSeparator();else{let ae=WA.Configuration.telemetry.selectTip(Q.tips);ae&&(F.reportInfo(WA.MessageName.TIPS_NOTICE,WA.formatUtils.pretty(t,ae.message,WA.formatUtils.Type.MARKDOWN_INLINE)),ae.url&&F.reportInfo(WA.MessageName.TIPS_NOTICE,`Learn more at ${ae.url}`),F.reportSeparator())}}}});if(B.hasErrors())return B.exitCode()}let{project:A,workspace:f}=await WA.Project.find(t,this.context.cwd),I=A.lockfileLastVersion;if(I!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q={};for(let X of GIl)X.selector(I)&&typeof t.sources.get(X.name)>"u"&&(t.use("",{[X.name]:X.value},A.cwd,{overwrite:!0}),Q[X.name]=X.value);Object.keys(Q).length>0&&(await WA.Configuration.updateConfiguration(A.cwd,Q),F.reportInfo(WA.MessageName.MIGRATION_SUCCESS,"Migrated your project to the latest Yarn version \u{1F680}"),F.reportSeparator())});if(B.hasErrors())return B.exitCode()}let C=await WA.Cache.find(t,{immutable:l,check:this.checkCache});if(!f)throw new lcs.WorkspaceRequiredError(A.cwd,this.context.cwd);await A.restoreInstallState({restoreResolutions:!1});let b=t.get("enableHardenedMode");b&&typeof t.sources.get("enableHardenedMode")>"u"&&await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async B=>{B.reportWarning(WA.MessageName.UNNAMED,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),B.reportWarning(WA.MessageName.UNNAMED,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${WA.formatUtils.applyHyperlink(t,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),B.reportSeparator()}),(this.refreshLockfile??b)&&(A.lockfileNeedsRefresh=!0);let E=this.checkResolutions??b;return(await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async B=>{await A.install({cache:C,report:B,immutable:o,checkResolutions:E,mode:this.mode})})).exitCode()}};s6e.paths=[["install"],_T.Command.Default];s6e.usage=_T.Command.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});lXr.default=s6e;var FIl="<<<<<<<";async function ZIl(e,t){if(!e.projectCwd)return!1;let r=a6.ppath.join(e.projectCwd,a6.Filename.lockfile);if(!await a6.xfs.existsPromise(r)||!(await a6.xfs.readFilePromise(r,"utf8")).includes(FIl))return!1;if(t)throw new WA.ReportError(WA.MessageName.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let a=await WA.execUtils.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:e.projectCwd});if(a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,"Git returned an error when trying to find the commits pertaining to the conflict");let o=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let f=await WA.execUtils.execvp("git",["show",`${A}:./${a6.Filename.lockfile}`],{cwd:e.projectCwd});if(f.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,`Git returned an error when trying to access the lockfile content in ${A}`);try{return(0,ucs.parseSyml)(f.stdout)}catch{throw new WA.ReportError(WA.MessageName.AUTOMERGE_FAILED_TO_PARSE,"A variant of the conflicting lockfile failed to parse")}}));o=o.filter(A=>!!A.__metadata);for(let A of o){if(A.__metadata.version<7)for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=WA.structUtils.parseDescriptor(f,!0),C=e.normalizeDependency(I),b=WA.structUtils.stringifyDescriptor(C);b!==f&&(A[b]=A[f],delete A[f])}for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=A[f].checksum;typeof I>"u"||I.includes("/")||(A[f].checksum=`${A.__metadata.cacheKey}/${I}`)}}let l=Object.assign({},...o);l.__metadata.version=`${Math.min(...o.map(A=>parseInt(A.__metadata.version??0)))}`,l.__metadata.cacheKey="merged";for(let[A,f]of Object.entries(l))typeof f=="string"&&delete l[A];return await a6.xfs.changeFilePromise(r,(0,ucs.stringifySyml)(l),{automaticNewlines:!0}),!0}async function LIl(e,t){if(!e.projectCwd)return!1;let r=[],n=a6.ppath.join(e.projectCwd,".yarn/plugins/@yarnpkg");return await WA.Configuration.updateConfiguration(e.projectCwd,{plugins:o=>{if(!Array.isArray(o))return o;let l=o.filter(A=>{if(!A.path)return!0;let f=a6.ppath.resolve(e.projectCwd,A.path),I=WA.LEGACY_PLUGINS.has(A.spec)&&a6.ppath.contains(n,f);return I&&r.push(f),!I});return l.length===0?WA.Configuration.deleteProperty:l.length===o.length?o:l}},{immutable:t})?(await Promise.all(r.map(async o=>{await a6.xfs.removePromise(o)})),!0):!1}});var dcs=H(AXr=>{"use strict";Object.defineProperty(AXr,"__esModule",{value:!0});var uXr=el(),jxe=Bn(),gXr=no(),wte=($c(),vi(rg)),o6e=class extends uXr.BaseCommand{constructor(){super(...arguments),this.all=wte.Option.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"}),this.private=wte.Option.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"}),this.relative=wte.Option.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"}),this.destinations=wte.Option.Rest()}async execute(){let t=await jxe.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await jxe.Project.find(t,this.context.cwd),a=await jxe.Cache.find(t);if(!n)throw new uXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=r.topLevelWorkspace,l=[];for(let A of this.destinations){let f=gXr.ppath.resolve(this.context.cwd,gXr.npath.toPortablePath(A)),I=await jxe.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await jxe.Project.find(I,f);if(r.cwd===C.cwd)throw new wte.UsageError(`Invalid destination '${A}'; Can't link the project to itself`);if(!b)throw new uXr.WorkspaceRequiredError(C.cwd,f);if(this.all){let E=!1;for(let N of C.workspaces)N.manifest.name&&(!N.manifest.private||this.private)&&(l.push(N),E=!0);if(!E)throw new wte.UsageError(`No workspace found to be linked in the target project: ${A}`)}else{if(!b.manifest.name)throw new wte.UsageError(`The target workspace at '${A}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new wte.UsageError(`The target workspace at '${A}' is marked private - use the --private flag to link it anyway`);l.push(b)}}for(let A of l){let f=jxe.structUtils.stringifyIdent(A.anchoredLocator),I=this.relative?gXr.ppath.relative(r.cwd,A.cwd):A.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:f}},reference:`portal:${I}`})}return await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};o6e.paths=[["link"]];o6e.usage=wte.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});AXr.default=o6e});var fcs=H(dXr=>{"use strict";Object.defineProperty(dXr,"__esModule",{value:!0});var VIl=el(),pcs=($c(),vi(rg)),a6e=class extends VIl.BaseCommand{constructor(){super(...arguments),this.args=pcs.Option.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};a6e.paths=[["node"]];a6e.usage=pcs.Command.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});dXr.default=a6e});var hcs=H(pXr=>{"use strict";Object.defineProperty(pXr,"__esModule",{value:!0});var VIl=el(),c6=Bn(),Ics=($c(),vi(rg)),c6e=class extends VIl.BaseCommand{constructor(){super(...arguments),this.json=Ics.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await c6.Configuration.find(this.context.cwd,this.context.plugins),r=await c6.Configuration.findRcFiles(this.context.cwd);return(await c6.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{for(let o of r)if(o.data?.plugins)for(let l of o.data.plugins){if(!l.checksum||!l.spec.match(/^https?:/))continue;let A=await c6.httpUtils.get(l.spec,{configuration:t}),f=c6.hashUtils.makeHash(A);if(l.checksum===f)continue;let I=c6.formatUtils.pretty(t,l.path,c6.formatUtils.Type.PATH),C=c6.formatUtils.pretty(t,l.spec,c6.formatUtils.Type.URL),b=`${I} is different from the file provided by ${C}`;a.reportJson({...l,newChecksum:f}),a.reportError(c6.MessageName.UNNAMED,b)}})).exitCode()}};c6e.paths=[["plugin","check"]];c6e.usage=Ics.Command.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});dXr.default=a6e});var hcs=H(pXr=>{"use strict";Object.defineProperty(pXr,"__esModule",{value:!0});var PIl=el(),c6=Bn(),Ics=($c(),vi(rg)),c6e=class extends PIl.BaseCommand{constructor(){super(...arguments),this.json=Ics.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await c6.Configuration.find(this.context.cwd,this.context.plugins),r=await c6.Configuration.findRcFiles(this.context.cwd);return(await c6.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{for(let o of r)if(o.data?.plugins)for(let l of o.data.plugins){if(!l.checksum||!l.spec.match(/^https?:/))continue;let A=await c6.httpUtils.get(l.spec,{configuration:t}),f=c6.hashUtils.makeHash(A);if(l.checksum===f)continue;let I=c6.formatUtils.pretty(t,l.path,c6.formatUtils.Type.PATH),C=c6.formatUtils.pretty(t,l.spec,c6.formatUtils.Type.URL),b=`${I} is different from the file provided by ${C}`;a.reportJson({...l,newChecksum:f}),a.reportError(c6.MessageName.UNNAMED,b)}})).exitCode()}};c6e.paths=[["plugin","check"]];c6e.usage=Ics.Command.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` Check only the plugins from https. If this command detects any plugin differences in the CI environment, it will throw an error. - `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});pXr.default=c6e});var g6e=H(sxt=>{"use strict";Object.defineProperty(sxt,"__esModule",{value:!0});sxt.getAvailablePlugins=Ccs;var PIl=el(),l6e=Bn(),WIl=TW(),mcs=($c(),vi(rg)),OIl="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Ccs(e,t){let r=await l6e.httpUtils.get(OIl,{configuration:e}),n=(0,WIl.parseSyml)(r.toString());return Object.fromEntries(Object.entries(n).filter(([a,o])=>!t||l6e.semverUtils.satisfiesWithPrereleases(t,o.range??"<4.0.0-rc.1")))}var u6e=class extends PIl.BaseCommand{constructor(){super(...arguments),this.json=mcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await l6e.Configuration.find(this.context.cwd,this.context.plugins);return(await l6e.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let a=await Ccs(t,l6e.YarnVersion);for(let[o,{experimental:l,...A}]of Object.entries(a)){let f=o;l&&(f+=" [experimental]"),n.reportJson({name:o,experimental:l,...A}),n.reportInfo(null,f)}})).exitCode()}};u6e.paths=[["plugin","list"]];u6e.usage=mcs.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});sxt.default=u6e});var fXr=H(d6e=>{"use strict";Object.defineProperty(d6e,"__esModule",{value:!0});d6e.runWorkflow=oxt;d6e.prepareRepo=ycs;var MIl=el(),vH=Bn(),MV=no(),Tte=($c(),vi(rg)),HIl=wt("os"),YIl=IXr(),QIl=g6e(),XIl=nxt(),JIl=/^[0-9]+$/,UIl=process.platform==="win32";function _cs(e){return JIl.test(e)?`pull/${e}/head`:e}var KIl=({repository:e,branch:t},r)=>[["git","init",MV.npath.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin","--depth=1",_cs(t)],["git","reset","--hard","FETCH_HEAD"]],jIl=({branch:e})=>[["git","fetch","origin","--depth=1",_cs(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],zIl=({plugins:e,noMinify:t},r,n)=>[["yarn","build:cli",...new Array().concat(...e.map(a=>["--plugin",MV.ppath.resolve(n,a)])),...t?["--no-minify"]:[],"|"],[UIl?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",MV.npath.fromPortablePath(r),"|"]],A6e=class extends MIl.BaseCommand{constructor(){super(...arguments),this.installPath=Tte.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=Tte.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=Tte.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.plugins=Tte.Option.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"}),this.dryRun=Tte.Option.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"}),this.noMinify=Tte.Option.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"}),this.force=Tte.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.skipPlugins=Tte.Option.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await vH.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await vH.Project.find(t,this.context.cwd),n=typeof this.installPath<"u"?MV.ppath.resolve(this.context.cwd,MV.npath.toPortablePath(this.installPath)):MV.ppath.resolve(MV.npath.toPortablePath((0,HIl.tmpdir)()),"yarnpkg-sources",vH.hashUtils.makeHash(this.repository).slice(0,6));return(await vH.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await ycs(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(vH.MessageName.UNNAMED,"Building a fresh bundle"),o.reportSeparator();let l=await vH.execUtils.execvp("git",["rev-parse","--short","HEAD"],{cwd:n,strict:!0}),A=MV.ppath.join(n,`packages/yarnpkg-cli/bundles/yarn-${l.stdout.trim()}.js`);MV.xfs.existsSync(A)||(await oxt(zIl(this,A,n),{configuration:t,context:this.context,target:n}),o.reportSeparator());let f=await MV.xfs.readFilePromise(A);if(!this.dryRun){let{bundleVersion:I}=await(0,XIl.setVersion)(t,null,async()=>f,{report:o});this.skipPlugins||await qIl(this,I,{project:r,report:o,target:n})}})).exitCode()}};A6e.paths=[["set","version","from","sources"]];A6e.usage=Tte.Command.Usage({description:"build Yarn from master",details:` + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});pXr.default=c6e});var g6e=H(sxt=>{"use strict";Object.defineProperty(sxt,"__esModule",{value:!0});sxt.getAvailablePlugins=Ccs;var WIl=el(),l6e=Bn(),OIl=TW(),mcs=($c(),vi(rg)),MIl="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Ccs(e,t){let r=await l6e.httpUtils.get(MIl,{configuration:e}),n=(0,OIl.parseSyml)(r.toString());return Object.fromEntries(Object.entries(n).filter(([a,o])=>!t||l6e.semverUtils.satisfiesWithPrereleases(t,o.range??"<4.0.0-rc.1")))}var u6e=class extends WIl.BaseCommand{constructor(){super(...arguments),this.json=mcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await l6e.Configuration.find(this.context.cwd,this.context.plugins);return(await l6e.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let a=await Ccs(t,l6e.YarnVersion);for(let[o,{experimental:l,...A}]of Object.entries(a)){let f=o;l&&(f+=" [experimental]"),n.reportJson({name:o,experimental:l,...A}),n.reportInfo(null,f)}})).exitCode()}};u6e.paths=[["plugin","list"]];u6e.usage=mcs.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});sxt.default=u6e});var fXr=H(d6e=>{"use strict";Object.defineProperty(d6e,"__esModule",{value:!0});d6e.runWorkflow=oxt;d6e.prepareRepo=ycs;var HIl=el(),vH=Bn(),MV=no(),Tte=($c(),vi(rg)),YIl=wt("os"),QIl=IXr(),XIl=g6e(),JIl=nxt(),UIl=/^[0-9]+$/,KIl=process.platform==="win32";function _cs(e){return UIl.test(e)?`pull/${e}/head`:e}var jIl=({repository:e,branch:t},r)=>[["git","init",MV.npath.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin","--depth=1",_cs(t)],["git","reset","--hard","FETCH_HEAD"]],zIl=({branch:e})=>[["git","fetch","origin","--depth=1",_cs(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],qIl=({plugins:e,noMinify:t},r,n)=>[["yarn","build:cli",...new Array().concat(...e.map(a=>["--plugin",MV.ppath.resolve(n,a)])),...t?["--no-minify"]:[],"|"],[KIl?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",MV.npath.fromPortablePath(r),"|"]],A6e=class extends HIl.BaseCommand{constructor(){super(...arguments),this.installPath=Tte.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=Tte.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=Tte.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.plugins=Tte.Option.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"}),this.dryRun=Tte.Option.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"}),this.noMinify=Tte.Option.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"}),this.force=Tte.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.skipPlugins=Tte.Option.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await vH.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await vH.Project.find(t,this.context.cwd),n=typeof this.installPath<"u"?MV.ppath.resolve(this.context.cwd,MV.npath.toPortablePath(this.installPath)):MV.ppath.resolve(MV.npath.toPortablePath((0,YIl.tmpdir)()),"yarnpkg-sources",vH.hashUtils.makeHash(this.repository).slice(0,6));return(await vH.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await ycs(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(vH.MessageName.UNNAMED,"Building a fresh bundle"),o.reportSeparator();let l=await vH.execUtils.execvp("git",["rev-parse","--short","HEAD"],{cwd:n,strict:!0}),A=MV.ppath.join(n,`packages/yarnpkg-cli/bundles/yarn-${l.stdout.trim()}.js`);MV.xfs.existsSync(A)||(await oxt(qIl(this,A,n),{configuration:t,context:this.context,target:n}),o.reportSeparator());let f=await MV.xfs.readFilePromise(A);if(!this.dryRun){let{bundleVersion:I}=await(0,JIl.setVersion)(t,null,async()=>f,{report:o});this.skipPlugins||await $Il(this,I,{project:r,report:o,target:n})}})).exitCode()}};A6e.paths=[["set","version","from","sources"]];A6e.usage=Tte.Command.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});d6e.default=A6e;async function oxt(e,{configuration:t,context:r,target:n}){for(let[a,...o]of e){let l=o[o.length-1]==="|";if(l&&o.pop(),l)await vH.execUtils.pipevp(a,o,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${vH.formatUtils.pretty(t,` $ ${[a,...o].join(" ")}`,"grey")} -`);try{await vH.execUtils.execvp(a,o,{cwd:n,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function ycs(e,{configuration:t,report:r,target:n}){let a=!1;if(!e.force&&MV.xfs.existsSync(MV.ppath.join(n,".git"))){r.reportInfo(vH.MessageName.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await oxt(jIl(e),{configuration:t,context:e.context,target:n}),a=!0}catch{r.reportSeparator(),r.reportWarning(vH.MessageName.UNNAMED,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(vH.MessageName.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await MV.xfs.removePromise(n),await MV.xfs.mkdirPromise(n,{recursive:!0}),await oxt(KIl(e,n),{configuration:t,context:e.context,target:n}))}async function qIl(e,t,{project:r,report:n,target:a}){let o=await(0,QIl.getAvailablePlugins)(r.configuration,t),l=new Set(Object.keys(o));for(let A of r.configuration.plugins.keys())l.has(A)&&await(0,YIl.buildAndSavePlugin)(A,e,{project:r,report:n,target:a})}});var mXr=H(axt=>{"use strict";Object.defineProperty(axt,"__esModule",{value:!0});axt.savePlugin=bcs;var $Il=(Pa(),vi(Va)),ehl=el(),GO=Bn(),cx=Bn(),Rte=no(),hXr=($c(),vi(rg)),thl=$Il.__importDefault(UC()),rhl=wt("vm"),nhl=g6e(),p6e=class extends ehl.BaseCommand{constructor(){super(...arguments),this.name=hXr.Option.String(),this.checksum=hXr.Option.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let t=await GO.Configuration.find(this.context.cwd,this.context.plugins);return(await GO.StreamReport.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:a}=await GO.Project.find(t,this.context.cwd),o,l;if(this.name.match(/^\.{0,2}[\\/]/)||Rte.npath.isAbsolute(this.name)){let A=Rte.ppath.resolve(this.context.cwd,Rte.npath.toPortablePath(this.name));n.reportInfo(GO.MessageName.UNNAMED,`Reading ${cx.formatUtils.pretty(t,A,cx.formatUtils.Type.PATH)}`),o=Rte.ppath.relative(a.cwd,A),l=await Rte.xfs.readFilePromise(A)}else{let A;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new GO.ReportError(GO.MessageName.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,A=this.name}else{let f=cx.structUtils.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(f.reference!=="unknown"&&!thl.default.valid(f.reference))throw new GO.ReportError(GO.MessageName.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let I=cx.structUtils.stringifyIdent(f),C=await(0,nhl.getAvailablePlugins)(t,cx.YarnVersion);if(!Object.hasOwn(C,I)){let b=`Couldn't find a plugin named ${cx.structUtils.prettyIdent(t,f)} on the remote registry. +`);try{await vH.execUtils.execvp(a,o,{cwd:n,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function ycs(e,{configuration:t,report:r,target:n}){let a=!1;if(!e.force&&MV.xfs.existsSync(MV.ppath.join(n,".git"))){r.reportInfo(vH.MessageName.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await oxt(zIl(e),{configuration:t,context:e.context,target:n}),a=!0}catch{r.reportSeparator(),r.reportWarning(vH.MessageName.UNNAMED,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(vH.MessageName.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await MV.xfs.removePromise(n),await MV.xfs.mkdirPromise(n,{recursive:!0}),await oxt(jIl(e,n),{configuration:t,context:e.context,target:n}))}async function $Il(e,t,{project:r,report:n,target:a}){let o=await(0,XIl.getAvailablePlugins)(r.configuration,t),l=new Set(Object.keys(o));for(let A of r.configuration.plugins.keys())l.has(A)&&await(0,QIl.buildAndSavePlugin)(A,e,{project:r,report:n,target:a})}});var mXr=H(axt=>{"use strict";Object.defineProperty(axt,"__esModule",{value:!0});axt.savePlugin=bcs;var ehl=(Pa(),vi(Va)),thl=el(),GO=Bn(),cx=Bn(),Rte=no(),hXr=($c(),vi(rg)),rhl=ehl.__importDefault(UC()),nhl=wt("vm"),ihl=g6e(),p6e=class extends thl.BaseCommand{constructor(){super(...arguments),this.name=hXr.Option.String(),this.checksum=hXr.Option.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let t=await GO.Configuration.find(this.context.cwd,this.context.plugins);return(await GO.StreamReport.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:a}=await GO.Project.find(t,this.context.cwd),o,l;if(this.name.match(/^\.{0,2}[\\/]/)||Rte.npath.isAbsolute(this.name)){let A=Rte.ppath.resolve(this.context.cwd,Rte.npath.toPortablePath(this.name));n.reportInfo(GO.MessageName.UNNAMED,`Reading ${cx.formatUtils.pretty(t,A,cx.formatUtils.Type.PATH)}`),o=Rte.ppath.relative(a.cwd,A),l=await Rte.xfs.readFilePromise(A)}else{let A;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new GO.ReportError(GO.MessageName.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,A=this.name}else{let f=cx.structUtils.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(f.reference!=="unknown"&&!rhl.default.valid(f.reference))throw new GO.ReportError(GO.MessageName.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let I=cx.structUtils.stringifyIdent(f),C=await(0,ihl.getAvailablePlugins)(t,cx.YarnVersion);if(!Object.hasOwn(C,I)){let b=`Couldn't find a plugin named ${cx.structUtils.prettyIdent(t,f)} on the remote registry. `;throw t.plugins.has(I)?b+=`A plugin named ${cx.structUtils.prettyIdent(t,f)} is already installed; possibly attempting to import a built-in plugin.`:b+=`Note that only the plugins referenced on our website (${cx.formatUtils.pretty(t,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",cx.formatUtils.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${cx.formatUtils.pretty(t,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",cx.formatUtils.Type.URL)}).`,new GO.ReportError(GO.MessageName.PLUGIN_NAME_NOT_FOUND,b)}o=I,A=C[I].url,f.reference!=="unknown"?A=A.replace(/\/master\//,`/${I}/${f.reference}/`):cx.YarnVersion!==null&&(A=A.replace(/\/master\//,`/@yarnpkg/cli/${cx.YarnVersion}/`))}n.reportInfo(GO.MessageName.UNNAMED,`Downloading ${cx.formatUtils.pretty(t,A,"green")}`),l=await cx.httpUtils.get(A,{configuration:t})}await bcs(o,l,{checksum:this.checksum,project:a,report:n})})).exitCode()}};p6e.paths=[["plugin","import"]];p6e.usage=hXr.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. @@ -1358,15 +1358,15 @@ ${A} If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});axt.default=p6e;async function bcs(e,t,{checksum:r=!0,project:n,report:a}){let{configuration:o}=n,l={},A={exports:l};(0,rhl.runInNewContext)(t.toString(),{module:A,exports:l});let I=`.yarn/plugins/${A.exports.name}.cjs`,C=Rte.ppath.resolve(n.cwd,I);a.reportInfo(GO.MessageName.UNNAMED,`Saving the new plugin in ${cx.formatUtils.pretty(o,I,"magenta")}`),await Rte.xfs.mkdirPromise(Rte.ppath.dirname(C),{recursive:!0}),await Rte.xfs.writeFilePromise(C,t);let b={path:I,spec:e};r&&(b.checksum=cx.hashUtils.makeHash(t)),await GO.Configuration.addPlugin(n.cwd,[b])}});var IXr=H(lxt=>{"use strict";Object.defineProperty(lxt,"__esModule",{value:!0});lxt.buildAndSavePlugin=Scs;var ihl=el(),cxt=Bn(),zxe=Bn(),qxe=no(),L_e=($c(),vi(rg)),shl=wt("os"),Ecs=fXr(),ohl=mXr(),ahl=g6e(),chl=({pluginName:e,noMinify:t},r)=>[["yarn",`build:${e}`,...t?["--no-minify"]:[],"|"]],f6e=class extends ihl.BaseCommand{constructor(){super(...arguments),this.installPath=L_e.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=L_e.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=L_e.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.noMinify=L_e.Option.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"}),this.force=L_e.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.name=L_e.Option.String()}async execute(){let t=await zxe.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.installPath<"u"?qxe.ppath.resolve(this.context.cwd,qxe.npath.toPortablePath(this.installPath)):qxe.ppath.resolve(qxe.npath.toPortablePath((0,shl.tmpdir)()),"yarnpkg-sources",cxt.hashUtils.makeHash(this.repository).slice(0,6));return(await zxe.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let{project:o}=await zxe.Project.find(t,this.context.cwd),l=cxt.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),A=cxt.structUtils.stringifyIdent(l),f=await(0,ahl.getAvailablePlugins)(t,cxt.YarnVersion);if(!Object.hasOwn(f,A))throw new zxe.ReportError(zxe.MessageName.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${A}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let I=A;await(0,Ecs.prepareRepo)(this,{configuration:t,report:a,target:r}),await Scs(I,this,{project:o,report:a,target:r})})).exitCode()}};f6e.paths=[["plugin","import","from","sources"]];f6e.usage=L_e.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});axt.default=p6e;async function bcs(e,t,{checksum:r=!0,project:n,report:a}){let{configuration:o}=n,l={},A={exports:l};(0,nhl.runInNewContext)(t.toString(),{module:A,exports:l});let I=`.yarn/plugins/${A.exports.name}.cjs`,C=Rte.ppath.resolve(n.cwd,I);a.reportInfo(GO.MessageName.UNNAMED,`Saving the new plugin in ${cx.formatUtils.pretty(o,I,"magenta")}`),await Rte.xfs.mkdirPromise(Rte.ppath.dirname(C),{recursive:!0}),await Rte.xfs.writeFilePromise(C,t);let b={path:I,spec:e};r&&(b.checksum=cx.hashUtils.makeHash(t)),await GO.Configuration.addPlugin(n.cwd,[b])}});var IXr=H(lxt=>{"use strict";Object.defineProperty(lxt,"__esModule",{value:!0});lxt.buildAndSavePlugin=Scs;var shl=el(),cxt=Bn(),zxe=Bn(),qxe=no(),L_e=($c(),vi(rg)),ohl=wt("os"),Ecs=fXr(),ahl=mXr(),chl=g6e(),lhl=({pluginName:e,noMinify:t},r)=>[["yarn",`build:${e}`,...t?["--no-minify"]:[],"|"]],f6e=class extends shl.BaseCommand{constructor(){super(...arguments),this.installPath=L_e.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=L_e.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=L_e.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.noMinify=L_e.Option.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"}),this.force=L_e.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.name=L_e.Option.String()}async execute(){let t=await zxe.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.installPath<"u"?qxe.ppath.resolve(this.context.cwd,qxe.npath.toPortablePath(this.installPath)):qxe.ppath.resolve(qxe.npath.toPortablePath((0,ohl.tmpdir)()),"yarnpkg-sources",cxt.hashUtils.makeHash(this.repository).slice(0,6));return(await zxe.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let{project:o}=await zxe.Project.find(t,this.context.cwd),l=cxt.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),A=cxt.structUtils.stringifyIdent(l),f=await(0,chl.getAvailablePlugins)(t,cxt.YarnVersion);if(!Object.hasOwn(f,A))throw new zxe.ReportError(zxe.MessageName.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${A}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let I=A;await(0,Ecs.prepareRepo)(this,{configuration:t,report:a,target:r}),await Scs(I,this,{project:o,report:a,target:r})})).exitCode()}};f6e.paths=[["plugin","import","from","sources"]];f6e.usage=L_e.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});lxt.default=f6e;async function Scs(e,{context:t,noMinify:r},{project:n,report:a,target:o}){let l=e.replace(/@yarnpkg\//,""),{configuration:A}=n;a.reportSeparator(),a.reportInfo(zxe.MessageName.UNNAMED,`Building a fresh ${l}`),a.reportSeparator(),await(0,Ecs.runWorkflow)(chl({pluginName:l,noMinify:r},o),{configuration:A,context:t,target:o}),a.reportSeparator();let f=qxe.ppath.resolve(o,`packages/${l}/bundles/${e}.js`),I=await qxe.xfs.readFilePromise(f);await(0,ohl.savePlugin)(e,I,{project:n,report:a})}});var vcs=H(yXr=>{"use strict";Object.defineProperty(yXr,"__esModule",{value:!0});var lhl=el(),O4=Bn(),CXr=no(),_Xr=($c(),vi(rg)),I6e=class extends lhl.BaseCommand{constructor(){super(...arguments),this.name=_Xr.Option.String()}async execute(){let t=await O4.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await O4.Project.find(t,this.context.cwd);return(await O4.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o=this.name,l=O4.structUtils.parseIdent(o);if(!t.plugins.has(o))throw new _Xr.UsageError(`${O4.structUtils.prettyIdent(t,l)} isn't referenced by the current configuration`);let A=`.yarn/plugins/${o}.cjs`,f=CXr.ppath.resolve(r.cwd,A);CXr.xfs.existsSync(f)&&(a.reportInfo(O4.MessageName.UNNAMED,`Removing ${O4.formatUtils.pretty(t,A,O4.formatUtils.Type.PATH)}...`),await CXr.xfs.removePromise(f)),a.reportInfo(O4.MessageName.UNNAMED,"Updating the configuration..."),await O4.Configuration.updateConfiguration(r.cwd,{plugins:I=>{if(!Array.isArray(I))return I;let C=I.filter(b=>b.path!==A);return C.length===0?O4.Configuration.deleteProperty:C.length===I.length?I:C}})})).exitCode()}};I6e.paths=[["plugin","remove"]];I6e.usage=_Xr.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});lxt.default=f6e;async function Scs(e,{context:t,noMinify:r},{project:n,report:a,target:o}){let l=e.replace(/@yarnpkg\//,""),{configuration:A}=n;a.reportSeparator(),a.reportInfo(zxe.MessageName.UNNAMED,`Building a fresh ${l}`),a.reportSeparator(),await(0,Ecs.runWorkflow)(lhl({pluginName:l,noMinify:r},o),{configuration:A,context:t,target:o}),a.reportSeparator();let f=qxe.ppath.resolve(o,`packages/${l}/bundles/${e}.js`),I=await qxe.xfs.readFilePromise(f);await(0,ahl.savePlugin)(e,I,{project:n,report:a})}});var vcs=H(yXr=>{"use strict";Object.defineProperty(yXr,"__esModule",{value:!0});var uhl=el(),O4=Bn(),CXr=no(),_Xr=($c(),vi(rg)),I6e=class extends uhl.BaseCommand{constructor(){super(...arguments),this.name=_Xr.Option.String()}async execute(){let t=await O4.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await O4.Project.find(t,this.context.cwd);return(await O4.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o=this.name,l=O4.structUtils.parseIdent(o);if(!t.plugins.has(o))throw new _Xr.UsageError(`${O4.structUtils.prettyIdent(t,l)} isn't referenced by the current configuration`);let A=`.yarn/plugins/${o}.cjs`,f=CXr.ppath.resolve(r.cwd,A);CXr.xfs.existsSync(f)&&(a.reportInfo(O4.MessageName.UNNAMED,`Removing ${O4.formatUtils.pretty(t,A,O4.formatUtils.Type.PATH)}...`),await CXr.xfs.removePromise(f)),a.reportInfo(O4.MessageName.UNNAMED,"Updating the configuration..."),await O4.Configuration.updateConfiguration(r.cwd,{plugins:I=>{if(!Array.isArray(I))return I;let C=I.filter(b=>b.path!==A);return C.length===0?O4.Configuration.deleteProperty:C.length===I.length?I:C}})})).exitCode()}};I6e.paths=[["plugin","remove"]];I6e.usage=_Xr.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});yXr.default=I6e});var Tcs=H(bXr=>{"use strict";Object.defineProperty(bXr,"__esModule",{value:!0});var uhl=el(),Bcs=Bn(),wcs=($c(),vi(rg)),h6e=class extends uhl.BaseCommand{constructor(){super(...arguments),this.json=wcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Bcs.Configuration.find(this.context.cwd,this.context.plugins);return(await Bcs.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let a of t.plugins.keys()){let o=this.context.plugins.plugins.has(a),l=a;o&&(l+=" [builtin]"),n.reportJson({name:a,builtin:o}),n.reportInfo(null,`${l}`)}})).exitCode()}};h6e.paths=[["plugin","runtime"]];h6e.usage=wcs.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});yXr.default=I6e});var Tcs=H(bXr=>{"use strict";Object.defineProperty(bXr,"__esModule",{value:!0});var ghl=el(),Bcs=Bn(),wcs=($c(),vi(rg)),h6e=class extends ghl.BaseCommand{constructor(){super(...arguments),this.json=wcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Bcs.Configuration.find(this.context.cwd,this.context.plugins);return(await Bcs.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let a of t.plugins.keys()){let o=this.context.plugins.plugins.has(a),l=a;o&&(l+=" [builtin]"),n.reportJson({name:a,builtin:o}),n.reportInfo(null,`${l}`)}})).exitCode()}};h6e.paths=[["plugin","runtime"]];h6e.usage=wcs.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. `,examples:[["List the currently active plugins","$0 plugin runtime"]]});bXr.default=h6e});var kcs=H(SXr=>{"use strict";Object.defineProperty(SXr,"__esModule",{value:!0});var Rcs=el(),Ncs=Bn(),EXr=Bn(),Dcs=($c(),vi(rg)),m6e=class extends Rcs.BaseCommand{constructor(){super(...arguments),this.idents=Dcs.Option.Rest()}async execute(){let t=await Ncs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await EXr.Project.find(t,this.context.cwd),a=await Ncs.Cache.find(t);if(!n)throw new Rcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(EXr.structUtils.parseIdent(l).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:a,report:new EXr.ThrowReport}),o.size>0)for(let l of r.storedPackages.values())o.has(l.identHash)&&(r.storedBuildState.delete(l.locatorHash),r.skippedBuilds.delete(l.locatorHash));else r.storedBuildState.clear(),r.skippedBuilds.clear();return await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};m6e.paths=[["rebuild"]];m6e.usage=Dcs.Command.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. @@ -1374,7 +1374,7 @@ ${A} Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});SXr.default=m6e});var Fcs=H(wXr=>{"use strict";Object.defineProperty(wXr,"__esModule",{value:!0});var BXr=(Pa(),vi(Va)),xcs=el(),C6e=Bn(),ghl=Bn(),uxt=Bn(),_6e=($c(),vi(rg)),Gcs=BXr.__importDefault(Ek()),Ahl=BXr.__importStar((CZ(),vi(mZ))),vXr=BXr.__importStar(Wje()),y6e=class extends xcs.BaseCommand{constructor(){super(...arguments),this.all=_6e.Option.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"}),this.mode=_6e.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Ahl.isEnum(ghl.InstallMode)}),this.patterns=_6e.Option.Rest()}async execute(){let t=await C6e.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await C6e.Project.find(t,this.context.cwd),a=await C6e.Cache.find(t);if(!n)throw new xcs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.all?r.workspaces:[n],l=[vXr.Target.REGULAR,vXr.Target.DEVELOPMENT,vXr.Target.PEER],A=[],f=!1,I=[];for(let N of this.patterns){let B=!1,F=uxt.structUtils.parseIdent(N);for(let Q of o){let X=[...Q.manifest.peerDependenciesMeta.keys()];for(let ae of(0,Gcs.default)(X,N))Q.manifest.peerDependenciesMeta.delete(ae),f=!0,B=!0;for(let ae of l){let ne=Q.manifest.getForScope(ae),ce=[...ne.values()].map(fe=>uxt.structUtils.stringifyIdent(fe));for(let fe of(0,Gcs.default)(ce,uxt.structUtils.stringifyIdent(F))){let{identHash:ue}=uxt.structUtils.parseIdent(fe),de=ne.get(ue);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");Q.manifest[ae].delete(ue),I.push([Q,ae,de]),f=!0,B=!0}}}B||A.push(N)}let C=A.length>1?"Patterns":"Pattern",b=A.length>1?"don't":"doesn't",E=this.all?"any":"this";if(A.length>0)throw new _6e.UsageError(`${C} ${C6e.formatUtils.prettyList(t,A,C6e.formatUtils.Type.CODE)} ${b} match any packages referenced by ${E} workspace`);return f?(await t.triggerMultipleHooks(N=>N.afterWorkspaceDependencyRemoval,I),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})):0}};y6e.paths=[["remove"]];y6e.usage=_6e.Command.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});SXr.default=m6e});var Fcs=H(wXr=>{"use strict";Object.defineProperty(wXr,"__esModule",{value:!0});var BXr=(Pa(),vi(Va)),xcs=el(),C6e=Bn(),Ahl=Bn(),uxt=Bn(),_6e=($c(),vi(rg)),Gcs=BXr.__importDefault(Ek()),dhl=BXr.__importStar((CZ(),vi(mZ))),vXr=BXr.__importStar(Wje()),y6e=class extends xcs.BaseCommand{constructor(){super(...arguments),this.all=_6e.Option.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"}),this.mode=_6e.Option.String("--mode",{description:"Change what artifacts installs generate",validator:dhl.isEnum(Ahl.InstallMode)}),this.patterns=_6e.Option.Rest()}async execute(){let t=await C6e.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await C6e.Project.find(t,this.context.cwd),a=await C6e.Cache.find(t);if(!n)throw new xcs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.all?r.workspaces:[n],l=[vXr.Target.REGULAR,vXr.Target.DEVELOPMENT,vXr.Target.PEER],A=[],f=!1,I=[];for(let N of this.patterns){let B=!1,F=uxt.structUtils.parseIdent(N);for(let Q of o){let X=[...Q.manifest.peerDependenciesMeta.keys()];for(let ae of(0,Gcs.default)(X,N))Q.manifest.peerDependenciesMeta.delete(ae),f=!0,B=!0;for(let ae of l){let ne=Q.manifest.getForScope(ae),ce=[...ne.values()].map(fe=>uxt.structUtils.stringifyIdent(fe));for(let fe of(0,Gcs.default)(ce,uxt.structUtils.stringifyIdent(F))){let{identHash:ue}=uxt.structUtils.parseIdent(fe),de=ne.get(ue);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");Q.manifest[ae].delete(ue),I.push([Q,ae,de]),f=!0,B=!0}}}B||A.push(N)}let C=A.length>1?"Patterns":"Pattern",b=A.length>1?"don't":"doesn't",E=this.all?"any":"this";if(A.length>0)throw new _6e.UsageError(`${C} ${C6e.formatUtils.prettyList(t,A,C6e.formatUtils.Type.CODE)} ${b} match any packages referenced by ${E} workspace`);return f?(await t.triggerMultipleHooks(N=>N.afterWorkspaceDependencyRemoval,I),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})):0}};y6e.paths=[["remove"]];y6e.usage=_6e.Command.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -1384,7 +1384,7 @@ ${A} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});wXr.default=y6e});var Lcs=H(RXr=>{"use strict";Object.defineProperty(RXr,"__esModule",{value:!0});var Zcs=el(),TXr=Bn(),dhl=Bn(),phl=($c(),vi(rg)),fhl=wt("util"),gxt=class extends Zcs.BaseCommand{constructor(){super(...arguments),this.json=phl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await TXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TXr.Project.find(t,this.context.cwd);if(!n)throw new Zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await TXr.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async o=>{let l=n.manifest.scripts,A=dhl.miscUtils.sortMap(l.keys(),C=>C),f={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},I=A.reduce((C,b)=>Math.max(C,b.length),0);for(let[C,b]of l.entries())o.reportInfo(null,`${C.padEnd(I," ")} ${(0,fhl.inspect)(b,f)}`),o.reportJson({name:C,script:b})})).exitCode()}};gxt.paths=[["run"]];RXr.default=gxt});var Wcs=H(NXr=>{"use strict";Object.defineProperty(NXr,"__esModule",{value:!0});var Vcs=el(),Pcs=Bn(),V_e=Bn(),HV=($c(),vi(rg)),b6e=class extends Vcs.BaseCommand{constructor(){super(...arguments),this.inspect=HV.Option.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.inspectBrk=HV.Option.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.topLevel=HV.Option.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"}),this.binariesOnly=HV.Option.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"}),this.require=HV.Option.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"}),this.silent=HV.Option.Boolean("--silent",{hidden:!0}),this.scriptName=HV.Option.String(),this.args=HV.Option.Proxy()}async execute(){let t=await Pcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n,locator:a}=await Pcs.Project.find(t,this.context.cwd);await r.restoreInstallState();let o=this.topLevel?r.topLevelWorkspace.anchoredLocator:a;if(!this.binariesOnly&&await V_e.scriptUtils.hasPackageScript(o,this.scriptName,{project:r}))return await V_e.scriptUtils.executePackageScript(o,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let l=await V_e.scriptUtils.getPackageAccessibleBinaries(o,{project:r});if(l.get(this.scriptName)){let f=[];return this.inspect&&(typeof this.inspect=="string"?f.push(`--inspect=${this.inspect}`):f.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?f.push(`--inspect-brk=${this.inspectBrk}`):f.push("--inspect-brk")),this.require&&f.push(`--require=${this.require}`),await V_e.scriptUtils.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:f,packageAccessibleBinaries:l})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let I=(await Promise.all(r.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(I.length===1)return await V_e.scriptUtils.executeWorkspaceScript(I[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}).`);{if(this.scriptName==="global")throw new HV.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let f=[this.scriptName].concat(this.args);for(let[I,C]of Vcs.pluginCommands)for(let b of C)if(f.length>=b.length&&JSON.stringify(f.slice(0,b.length))===JSON.stringify(b))throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${I} plugin. You can install it with "yarn plugin import ${I}".`);throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}};b6e.paths=[["run"]];b6e.usage=HV.Command.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});wXr.default=y6e});var Lcs=H(RXr=>{"use strict";Object.defineProperty(RXr,"__esModule",{value:!0});var Zcs=el(),TXr=Bn(),phl=Bn(),fhl=($c(),vi(rg)),Ihl=wt("util"),gxt=class extends Zcs.BaseCommand{constructor(){super(...arguments),this.json=fhl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await TXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TXr.Project.find(t,this.context.cwd);if(!n)throw new Zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await TXr.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async o=>{let l=n.manifest.scripts,A=phl.miscUtils.sortMap(l.keys(),C=>C),f={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},I=A.reduce((C,b)=>Math.max(C,b.length),0);for(let[C,b]of l.entries())o.reportInfo(null,`${C.padEnd(I," ")} ${(0,Ihl.inspect)(b,f)}`),o.reportJson({name:C,script:b})})).exitCode()}};gxt.paths=[["run"]];RXr.default=gxt});var Wcs=H(NXr=>{"use strict";Object.defineProperty(NXr,"__esModule",{value:!0});var Vcs=el(),Pcs=Bn(),V_e=Bn(),HV=($c(),vi(rg)),b6e=class extends Vcs.BaseCommand{constructor(){super(...arguments),this.inspect=HV.Option.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.inspectBrk=HV.Option.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.topLevel=HV.Option.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"}),this.binariesOnly=HV.Option.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"}),this.require=HV.Option.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"}),this.silent=HV.Option.Boolean("--silent",{hidden:!0}),this.scriptName=HV.Option.String(),this.args=HV.Option.Proxy()}async execute(){let t=await Pcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n,locator:a}=await Pcs.Project.find(t,this.context.cwd);await r.restoreInstallState();let o=this.topLevel?r.topLevelWorkspace.anchoredLocator:a;if(!this.binariesOnly&&await V_e.scriptUtils.hasPackageScript(o,this.scriptName,{project:r}))return await V_e.scriptUtils.executePackageScript(o,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let l=await V_e.scriptUtils.getPackageAccessibleBinaries(o,{project:r});if(l.get(this.scriptName)){let f=[];return this.inspect&&(typeof this.inspect=="string"?f.push(`--inspect=${this.inspect}`):f.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?f.push(`--inspect-brk=${this.inspectBrk}`):f.push("--inspect-brk")),this.require&&f.push(`--require=${this.require}`),await V_e.scriptUtils.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:f,packageAccessibleBinaries:l})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let I=(await Promise.all(r.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(I.length===1)return await V_e.scriptUtils.executeWorkspaceScript(I[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}).`);{if(this.scriptName==="global")throw new HV.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let f=[this.scriptName].concat(this.args);for(let[I,C]of Vcs.pluginCommands)for(let b of C)if(f.length>=b.length&&JSON.stringify(f.slice(0,b.length))===JSON.stringify(b))throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${I} plugin. You can install it with "yarn plugin import ${I}".`);throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}};b6e.paths=[["run"]];b6e.usage=HV.Command.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -1394,34 +1394,34 @@ ${A} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});NXr.default=b6e});var Hcs=H(xXr=>{"use strict";Object.defineProperty(xXr,"__esModule",{value:!0});var Ocs=el(),DXr=Bn(),Mcs=Bn(),kXr=($c(),vi(rg)),E6e=class extends Ocs.BaseCommand{constructor(){super(...arguments),this.descriptor=kXr.Option.String(),this.resolution=kXr.Option.String()}async execute(){let t=await DXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await DXr.Project.find(t,this.context.cwd),a=await DXr.Cache.find(t);if(await r.restoreInstallState({restoreResolutions:!1}),!n)throw new Ocs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=Mcs.structUtils.parseDescriptor(this.descriptor,!0),l=Mcs.structUtils.makeDescriptor(o,this.resolution);return r.storedDescriptors.set(o.descriptorHash,o),r.storedDescriptors.set(l.descriptorHash,l),r.resolutionAliases.set(o.descriptorHash,l.descriptorHash),await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};E6e.paths=[["set","resolution"]];E6e.usage=kXr.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]});xXr.default=E6e});var Qcs=H(FXr=>{"use strict";Object.defineProperty(FXr,"__esModule",{value:!0});var Ihl=(Pa(),vi(Va)),GXr=el(),cue=Bn(),Ycs=no(),S6e=($c(),vi(rg)),hhl=Ihl.__importDefault(Ek()),v6e=class extends GXr.BaseCommand{constructor(){super(...arguments),this.all=S6e.Option.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"}),this.leadingArguments=S6e.Option.Rest()}async execute(){let t=await cue.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await cue.Project.find(t,this.context.cwd),a=await cue.Cache.find(t);if(!n)throw new GXr.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=r.topLevelWorkspace,l=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:A,reference:f}of o.manifest.resolutions)f.startsWith("portal:")&&l.add(A.descriptor.fullName);if(this.leadingArguments.length>0)for(let A of this.leadingArguments){let f=Ycs.ppath.resolve(this.context.cwd,Ycs.npath.toPortablePath(A));if(cue.miscUtils.isPathLike(A)){let I=await cue.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await cue.Project.find(I,f);if(!b)throw new GXr.WorkspaceRequiredError(C.cwd,f);if(this.all){for(let E of C.workspaces)E.manifest.name&&l.add(cue.structUtils.stringifyIdent(E.anchoredLocator));if(l.size===0)throw new S6e.UsageError("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new S6e.UsageError("The target workspace doesn't have a name and thus cannot be unlinked");l.add(cue.structUtils.stringifyIdent(b.anchoredLocator))}}else{let I=[...o.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,hhl.default)(I,A))l.add(C)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:A})=>!l.has(A.descriptor.fullName)),await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};v6e.paths=[["unlink"]];v6e.usage=S6e.Command.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});NXr.default=b6e});var Hcs=H(xXr=>{"use strict";Object.defineProperty(xXr,"__esModule",{value:!0});var Ocs=el(),DXr=Bn(),Mcs=Bn(),kXr=($c(),vi(rg)),E6e=class extends Ocs.BaseCommand{constructor(){super(...arguments),this.descriptor=kXr.Option.String(),this.resolution=kXr.Option.String()}async execute(){let t=await DXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await DXr.Project.find(t,this.context.cwd),a=await DXr.Cache.find(t);if(await r.restoreInstallState({restoreResolutions:!1}),!n)throw new Ocs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=Mcs.structUtils.parseDescriptor(this.descriptor,!0),l=Mcs.structUtils.makeDescriptor(o,this.resolution);return r.storedDescriptors.set(o.descriptorHash,o),r.storedDescriptors.set(l.descriptorHash,l),r.resolutionAliases.set(o.descriptorHash,l.descriptorHash),await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};E6e.paths=[["set","resolution"]];E6e.usage=kXr.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]});xXr.default=E6e});var Qcs=H(FXr=>{"use strict";Object.defineProperty(FXr,"__esModule",{value:!0});var hhl=(Pa(),vi(Va)),GXr=el(),cue=Bn(),Ycs=no(),S6e=($c(),vi(rg)),mhl=hhl.__importDefault(Ek()),v6e=class extends GXr.BaseCommand{constructor(){super(...arguments),this.all=S6e.Option.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"}),this.leadingArguments=S6e.Option.Rest()}async execute(){let t=await cue.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await cue.Project.find(t,this.context.cwd),a=await cue.Cache.find(t);if(!n)throw new GXr.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=r.topLevelWorkspace,l=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:A,reference:f}of o.manifest.resolutions)f.startsWith("portal:")&&l.add(A.descriptor.fullName);if(this.leadingArguments.length>0)for(let A of this.leadingArguments){let f=Ycs.ppath.resolve(this.context.cwd,Ycs.npath.toPortablePath(A));if(cue.miscUtils.isPathLike(A)){let I=await cue.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await cue.Project.find(I,f);if(!b)throw new GXr.WorkspaceRequiredError(C.cwd,f);if(this.all){for(let E of C.workspaces)E.manifest.name&&l.add(cue.structUtils.stringifyIdent(E.anchoredLocator));if(l.size===0)throw new S6e.UsageError("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new S6e.UsageError("The target workspace doesn't have a name and thus cannot be unlinked");l.add(cue.structUtils.stringifyIdent(b.anchoredLocator))}}else{let I=[...o.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,mhl.default)(I,A))l.add(C)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:A})=>!l.has(A.descriptor.fullName)),await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};v6e.paths=[["unlink"]];v6e.usage=S6e.Command.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});FXr.default=v6e});var Jcs=H(WXr=>{"use strict";Object.defineProperty(WXr,"__esModule",{value:!0});var PXr=(Pa(),vi(Va)),ZXr=el(),FO=Bn(),LXr=Bn(),BH=Bn(),wH=($c(),vi(rg)),mhl=Lje(),Xcs=PXr.__importDefault(Ek()),VXr=PXr.__importStar((CZ(),vi(mZ))),l6=PXr.__importStar(Wje()),$xe=class extends ZXr.BaseCommand{constructor(){super(...arguments),this.interactive=wH.Option.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"}),this.fixed=wH.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=wH.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=wH.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=wH.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.recursive=wH.Option.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"}),this.mode=wH.Option.String("--mode",{description:"Change what artifacts installs generate",validator:VXr.isEnum(LXr.InstallMode)}),this.patterns=wH.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=[...r.storedDescriptors.values()],l=o.map(I=>FO.structUtils.stringifyIdent(I)),A=new Set;for(let I of this.patterns){if(FO.structUtils.parseDescriptor(I).range!=="unknown")throw new wH.UsageError("Ranges aren't allowed when using --recursive");for(let C of(0,Xcs.default)(l,I)){let b=FO.structUtils.parseIdent(C);A.add(b.identHash)}}let f=o.filter(I=>A.has(I.identHash));for(let I of f)r.storedDescriptors.delete(I.descriptorHash),r.storedResolutions.delete(I.descriptorHash);return await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}async executeUpClassic(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l6.getModifier(this,r),f=l?[l6.Strategy.KEEP,l6.Strategy.REUSE,l6.Strategy.PROJECT,l6.Strategy.LATEST]:[l6.Strategy.PROJECT,l6.Strategy.LATEST],I=[],C=[];for(let F of this.patterns){let Q=!1,X=FO.structUtils.parseDescriptor(F),ae=FO.structUtils.stringifyIdent(X);for(let ne of r.workspaces)for(let ce of[l6.Target.REGULAR,l6.Target.DEVELOPMENT]){let ue=[...ne.manifest.getForScope(ce).values()].map(be=>FO.structUtils.stringifyIdent(be)),de=ae==="*"?ue:(0,Xcs.default)(ue,ae);for(let be of de){let Se=FO.structUtils.parseIdent(be),De=ne.manifest[ce].get(Se.identHash);if(typeof De>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let k=FO.structUtils.makeDescriptor(Se,X.range);I.push(Promise.resolve().then(async()=>[ne,ce,De,await l6.getSuggestedDescriptors(k,{project:r,workspace:ne,cache:a,target:ce,fixed:o,modifier:A,strategies:f})])),Q=!0}}Q||C.push(F)}if(C.length>1)throw new wH.UsageError(`Patterns ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new wH.UsageError(`Pattern ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} doesn't match any packages referenced by any workspace`);let b=await Promise.all(I),E=await BH.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async F=>{for(let[,,Q,{suggestions:X,rejections:ae}]of b){let ne=X.filter(ce=>ce.descriptor!==null);if(ne.length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let fe=this.cli.error(ce);r.configuration.get("enableNetwork")?F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});FXr.default=v6e});var Jcs=H(WXr=>{"use strict";Object.defineProperty(WXr,"__esModule",{value:!0});var PXr=(Pa(),vi(Va)),ZXr=el(),FO=Bn(),LXr=Bn(),BH=Bn(),wH=($c(),vi(rg)),Chl=Lje(),Xcs=PXr.__importDefault(Ek()),VXr=PXr.__importStar((CZ(),vi(mZ))),l6=PXr.__importStar(Wje()),$xe=class extends ZXr.BaseCommand{constructor(){super(...arguments),this.interactive=wH.Option.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"}),this.fixed=wH.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=wH.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=wH.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=wH.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.recursive=wH.Option.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"}),this.mode=wH.Option.String("--mode",{description:"Change what artifacts installs generate",validator:VXr.isEnum(LXr.InstallMode)}),this.patterns=wH.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=[...r.storedDescriptors.values()],l=o.map(I=>FO.structUtils.stringifyIdent(I)),A=new Set;for(let I of this.patterns){if(FO.structUtils.parseDescriptor(I).range!=="unknown")throw new wH.UsageError("Ranges aren't allowed when using --recursive");for(let C of(0,Xcs.default)(l,I)){let b=FO.structUtils.parseIdent(C);A.add(b.identHash)}}let f=o.filter(I=>A.has(I.identHash));for(let I of f)r.storedDescriptors.delete(I.descriptorHash),r.storedResolutions.delete(I.descriptorHash);return await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}async executeUpClassic(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l6.getModifier(this,r),f=l?[l6.Strategy.KEEP,l6.Strategy.REUSE,l6.Strategy.PROJECT,l6.Strategy.LATEST]:[l6.Strategy.PROJECT,l6.Strategy.LATEST],I=[],C=[];for(let F of this.patterns){let Q=!1,X=FO.structUtils.parseDescriptor(F),ae=FO.structUtils.stringifyIdent(X);for(let ne of r.workspaces)for(let ce of[l6.Target.REGULAR,l6.Target.DEVELOPMENT]){let ue=[...ne.manifest.getForScope(ce).values()].map(be=>FO.structUtils.stringifyIdent(be)),de=ae==="*"?ue:(0,Xcs.default)(ue,ae);for(let be of de){let Se=FO.structUtils.parseIdent(be),De=ne.manifest[ce].get(Se.identHash);if(typeof De>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let k=FO.structUtils.makeDescriptor(Se,X.range);I.push(Promise.resolve().then(async()=>[ne,ce,De,await l6.getSuggestedDescriptors(k,{project:r,workspace:ne,cache:a,target:ce,fixed:o,modifier:A,strategies:f})])),Q=!0}}Q||C.push(F)}if(C.length>1)throw new wH.UsageError(`Patterns ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new wH.UsageError(`Pattern ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} doesn't match any packages referenced by any workspace`);let b=await Promise.all(I),E=await BH.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async F=>{for(let[,,Q,{suggestions:X,rejections:ae}]of b){let ne=X.filter(ce=>ce.descriptor!==null);if(ne.length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let fe=this.cli.error(ce);r.configuration.get("enableNetwork")?F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range ${fe}`):F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range (note: network resolution has been disabled) -${fe}`)}else ne.length>1&&!l&&F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(E.hasErrors())return E.exitCode();let N=!1,B=[];for(let[F,Q,,{suggestions:X}]of b){let ae,ne=X.filter(de=>de.descriptor!==null),ce=ne[0].descriptor,fe=ne.every(de=>FO.structUtils.areDescriptorsEqual(de.descriptor,ce));ne.length===1||fe?ae=ce:(N=!0,{answer:ae}=await(0,mhl.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${FO.structUtils.prettyWorkspace(t,F)} \u276F ${Q}?`,choices:X.map(({descriptor:de,name:be,reason:Se})=>de?{name:be,hint:Se,descriptor:de}:{name:be,hint:Se,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ue=F.manifest[Q].get(ae.identHash);if(typeof ue>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ue.descriptorHash!==ae.descriptorHash)F.manifest[Q].set(ae.identHash,ae),B.push([F,Q,ue,ae]);else{let de=t.makeResolver(),be={project:r,resolver:de},Se=t.normalizeDependency(ue),De=de.bindDescriptor(Se,F.anchoredLocator,be);r.forgetResolution(De)}}return await t.triggerMultipleHooks(F=>F.afterWorkspaceDependencyReplacement,B),N&&this.context.stdout.write(` -`),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}};$xe.paths=[["up"]];$xe.usage=wH.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]});$xe.schema=[VXr.hasKeyRelationship("recursive",VXr.KeyRelationship.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];WXr.default=$xe});var Kcs=H(MXr=>{"use strict";Object.defineProperty(MXr,"__esModule",{value:!0});var Ucs=el(),OXr=Bn(),WR=Bn(),eGe=($c(),vi(rg)),B6e=class extends Ucs.BaseCommand{constructor(){super(...arguments),this.recursive=eGe.Option.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"}),this.json=eGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.peers=eGe.Option.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"}),this.package=eGe.Option.String()}async execute(){let t=await OXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await OXr.Project.find(t,this.context.cwd);if(!n)throw new Ucs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=WR.structUtils.parseDescriptor(this.package,!1);if(a.range!=="unknown"&&OXr.semverUtils.validRange(a.range)===null)throw new eGe.UsageError(`Expected a valid semver range, got ${a.range}`);let o=this.recursive?_hl(r,a,{configuration:t,peers:this.peers}):Chl(r,a,{configuration:t,peers:this.peers});WR.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};B6e.paths=[["why"]];B6e.usage=eGe.Command.Usage({description:"display the reason why a package is needed",details:` +${fe}`)}else ne.length>1&&!l&&F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(E.hasErrors())return E.exitCode();let N=!1,B=[];for(let[F,Q,,{suggestions:X}]of b){let ae,ne=X.filter(de=>de.descriptor!==null),ce=ne[0].descriptor,fe=ne.every(de=>FO.structUtils.areDescriptorsEqual(de.descriptor,ce));ne.length===1||fe?ae=ce:(N=!0,{answer:ae}=await(0,Chl.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${FO.structUtils.prettyWorkspace(t,F)} \u276F ${Q}?`,choices:X.map(({descriptor:de,name:be,reason:Se})=>de?{name:be,hint:Se,descriptor:de}:{name:be,hint:Se,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ue=F.manifest[Q].get(ae.identHash);if(typeof ue>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ue.descriptorHash!==ae.descriptorHash)F.manifest[Q].set(ae.identHash,ae),B.push([F,Q,ue,ae]);else{let de=t.makeResolver(),be={project:r,resolver:de},Se=t.normalizeDependency(ue),De=de.bindDescriptor(Se,F.anchoredLocator,be);r.forgetResolution(De)}}return await t.triggerMultipleHooks(F=>F.afterWorkspaceDependencyReplacement,B),N&&this.context.stdout.write(` +`),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}};$xe.paths=[["up"]];$xe.usage=wH.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]});$xe.schema=[VXr.hasKeyRelationship("recursive",VXr.KeyRelationship.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];WXr.default=$xe});var Kcs=H(MXr=>{"use strict";Object.defineProperty(MXr,"__esModule",{value:!0});var Ucs=el(),OXr=Bn(),WR=Bn(),eGe=($c(),vi(rg)),B6e=class extends Ucs.BaseCommand{constructor(){super(...arguments),this.recursive=eGe.Option.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"}),this.json=eGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.peers=eGe.Option.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"}),this.package=eGe.Option.String()}async execute(){let t=await OXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await OXr.Project.find(t,this.context.cwd);if(!n)throw new Ucs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=WR.structUtils.parseDescriptor(this.package,!1);if(a.range!=="unknown"&&OXr.semverUtils.validRange(a.range)===null)throw new eGe.UsageError(`Expected a valid semver range, got ${a.range}`);let o=this.recursive?yhl(r,a,{configuration:t,peers:this.peers}):_hl(r,a,{configuration:t,peers:this.peers});WR.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};B6e.paths=[["why"]];B6e.usage=eGe.Command.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. Specify a version or range to determine why the dependency tree contains a specific version of a package. This is particularly useful when trying to find out why your project depends on lower versions. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]});MXr.default=B6e;function Chl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.storedPackages.values(),A=>WR.structUtils.stringifyLocator(A)),o={},l={children:o};for(let A of a){let f={};for(let C of A.dependencies.values()){if(!n&&A.peerDependencies.has(C.identHash))continue;let b=e.storedResolutions.get(C.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let E=e.storedPackages.get(b);if(!E)throw new Error("Assertion failed: The package should have been registered");if(!WR.structUtils.areIdentsEqual(E,t)||!WR.structUtils.isPackageInRange(E,t.range))continue;{let B=WR.structUtils.stringifyLocator(A);o[B]={value:[A,WR.formatUtils.Type.LOCATOR],children:f}}let N=WR.structUtils.stringifyLocator(E);f[N]={value:[{descriptor:C,locator:E},WR.formatUtils.Type.DEPENDENT]}}}return l}function _hl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.workspaces,E=>WR.structUtils.stringifyLocator(E.anchoredLocator)),o=new Set,l=new Set,A=E=>{if(o.has(E.locatorHash))return l.has(E.locatorHash);if(o.add(E.locatorHash),WR.structUtils.areIdentsEqual(E,t)&&WR.structUtils.isPackageInRange(E,t.range))return l.add(E.locatorHash),!0;let N=!1;for(let B of E.dependencies.values()){if(!n&&E.peerDependencies.has(B.identHash))continue;let F=e.storedResolutions.get(B.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let Q=e.storedPackages.get(F);if(!Q)throw new Error("Assertion failed: The package should have been registered");A(Q)&&(N=!0)}return N&&l.add(E.locatorHash),N};for(let E of a)A(E.anchoredPackage);let f=new Set,I={},C={children:I},b=(E,N,B)=>{if(!l.has(E.locatorHash))return;let F=B!==null?WR.formatUtils.tuple(WR.formatUtils.Type.DEPENDENT,{locator:E,descriptor:B}):WR.formatUtils.tuple(WR.formatUtils.Type.LOCATOR,E),Q={},X={value:F,children:Q},ae=WR.structUtils.stringifyLocator(E);if(N[ae]=X,!(B!==null&&e.tryWorkspaceByLocator(E))&&!f.has(E.locatorHash)){f.add(E.locatorHash);for(let ne of E.dependencies.values()){if(!n&&E.peerDependencies.has(ne.identHash))continue;let ce=e.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=e.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");b(fe,Q,ne)}}};for(let E of a)b(E.anchoredPackage,I,null);return C}});var jcs=H(HXr=>{"use strict";Object.defineProperty(HXr,"__esModule",{value:!0});var yhl=el(),tGe=Bn(),bhl=nDe(),rGe=($c(),vi(rg)),w6e=class extends yhl.BaseCommand{constructor(){super(...arguments),this.since=rGe.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.recursive=rGe.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"}),this.noPrivate=rGe.Option.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"}),this.verbose=rGe.Option.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"}),this.json=rGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await tGe.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await tGe.Project.find(t,this.context.cwd);return(await tGe.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let o=this.since?await bhl.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,l=new Set(o);if(this.recursive)for(let A of[...o].map(f=>f.getRecursiveWorkspaceDependents()))for(let f of A)l.add(f);for(let A of l){let{manifest:f}=A;if(f.private&&this.noPrivate)continue;let I;if(this.verbose){let C=new Set,b=new Set;for(let E of tGe.Manifest.hardDependencies)for(let[N,B]of f.getForScope(E)){let F=r.tryWorkspaceByDescriptor(B);F===null?r.workspacesByIdent.has(N)&&b.add(B):C.add(F)}I={workspaceDependencies:Array.from(C).map(E=>E.relativeCwd),mismatchedWorkspaceDependencies:Array.from(b).map(E=>tGe.structUtils.stringifyDescriptor(E))}}a.reportInfo(null,`${A.relativeCwd}`),a.reportJson({location:A.relativeCwd,name:f.name?tGe.structUtils.stringifyIdent(f.name):null,...I})}})).exitCode()}};w6e.paths=[["workspaces","list"]];w6e.usage=rGe.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});HXr.default=w6e});var $cs=H(YXr=>{"use strict";Object.defineProperty(YXr,"__esModule",{value:!0});var zcs=el(),qcs=Bn(),Ehl=Bn(),T6e=($c(),vi(rg)),R6e=class extends zcs.BaseCommand{constructor(){super(...arguments),this.workspaceName=T6e.Option.String(),this.commandName=T6e.Option.String(),this.args=T6e.Option.Proxy()}async execute(){let t=await qcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await qcs.Project.find(t,this.context.cwd);if(!n)throw new zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=r.workspaces,o=new Map(a.map(A=>[Ehl.structUtils.stringifyIdent(A.anchoredLocator),A])),l=o.get(this.workspaceName);if(l===void 0){let A=Array.from(o.keys()).sort();throw new T6e.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]});MXr.default=B6e;function _hl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.storedPackages.values(),A=>WR.structUtils.stringifyLocator(A)),o={},l={children:o};for(let A of a){let f={};for(let C of A.dependencies.values()){if(!n&&A.peerDependencies.has(C.identHash))continue;let b=e.storedResolutions.get(C.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let E=e.storedPackages.get(b);if(!E)throw new Error("Assertion failed: The package should have been registered");if(!WR.structUtils.areIdentsEqual(E,t)||!WR.structUtils.isPackageInRange(E,t.range))continue;{let B=WR.structUtils.stringifyLocator(A);o[B]={value:[A,WR.formatUtils.Type.LOCATOR],children:f}}let N=WR.structUtils.stringifyLocator(E);f[N]={value:[{descriptor:C,locator:E},WR.formatUtils.Type.DEPENDENT]}}}return l}function yhl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.workspaces,E=>WR.structUtils.stringifyLocator(E.anchoredLocator)),o=new Set,l=new Set,A=E=>{if(o.has(E.locatorHash))return l.has(E.locatorHash);if(o.add(E.locatorHash),WR.structUtils.areIdentsEqual(E,t)&&WR.structUtils.isPackageInRange(E,t.range))return l.add(E.locatorHash),!0;let N=!1;for(let B of E.dependencies.values()){if(!n&&E.peerDependencies.has(B.identHash))continue;let F=e.storedResolutions.get(B.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let Q=e.storedPackages.get(F);if(!Q)throw new Error("Assertion failed: The package should have been registered");A(Q)&&(N=!0)}return N&&l.add(E.locatorHash),N};for(let E of a)A(E.anchoredPackage);let f=new Set,I={},C={children:I},b=(E,N,B)=>{if(!l.has(E.locatorHash))return;let F=B!==null?WR.formatUtils.tuple(WR.formatUtils.Type.DEPENDENT,{locator:E,descriptor:B}):WR.formatUtils.tuple(WR.formatUtils.Type.LOCATOR,E),Q={},X={value:F,children:Q},ae=WR.structUtils.stringifyLocator(E);if(N[ae]=X,!(B!==null&&e.tryWorkspaceByLocator(E))&&!f.has(E.locatorHash)){f.add(E.locatorHash);for(let ne of E.dependencies.values()){if(!n&&E.peerDependencies.has(ne.identHash))continue;let ce=e.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=e.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");b(fe,Q,ne)}}};for(let E of a)b(E.anchoredPackage,I,null);return C}});var jcs=H(HXr=>{"use strict";Object.defineProperty(HXr,"__esModule",{value:!0});var bhl=el(),tGe=Bn(),Ehl=nDe(),rGe=($c(),vi(rg)),w6e=class extends bhl.BaseCommand{constructor(){super(...arguments),this.since=rGe.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.recursive=rGe.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"}),this.noPrivate=rGe.Option.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"}),this.verbose=rGe.Option.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"}),this.json=rGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await tGe.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await tGe.Project.find(t,this.context.cwd);return(await tGe.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let o=this.since?await Ehl.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,l=new Set(o);if(this.recursive)for(let A of[...o].map(f=>f.getRecursiveWorkspaceDependents()))for(let f of A)l.add(f);for(let A of l){let{manifest:f}=A;if(f.private&&this.noPrivate)continue;let I;if(this.verbose){let C=new Set,b=new Set;for(let E of tGe.Manifest.hardDependencies)for(let[N,B]of f.getForScope(E)){let F=r.tryWorkspaceByDescriptor(B);F===null?r.workspacesByIdent.has(N)&&b.add(B):C.add(F)}I={workspaceDependencies:Array.from(C).map(E=>E.relativeCwd),mismatchedWorkspaceDependencies:Array.from(b).map(E=>tGe.structUtils.stringifyDescriptor(E))}}a.reportInfo(null,`${A.relativeCwd}`),a.reportJson({location:A.relativeCwd,name:f.name?tGe.structUtils.stringifyIdent(f.name):null,...I})}})).exitCode()}};w6e.paths=[["workspaces","list"]];w6e.usage=rGe.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});HXr.default=w6e});var $cs=H(YXr=>{"use strict";Object.defineProperty(YXr,"__esModule",{value:!0});var zcs=el(),qcs=Bn(),Shl=Bn(),T6e=($c(),vi(rg)),R6e=class extends zcs.BaseCommand{constructor(){super(...arguments),this.workspaceName=T6e.Option.String(),this.commandName=T6e.Option.String(),this.args=T6e.Option.Proxy()}async execute(){let t=await qcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await qcs.Project.find(t,this.context.cwd);if(!n)throw new zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=r.workspaces,o=new Map(a.map(A=>[Shl.structUtils.stringifyIdent(A.anchoredLocator),A])),l=o.get(this.workspaceName);if(l===void 0){let A=Array.from(o.keys()).sort();throw new T6e.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${A.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:l.cwd})}};R6e.paths=[["workspace"]];R6e.usage=T6e.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});YXr.default=R6e});var Axt=H(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.suggestUtils=zu.dedupeUtils=zu.WorkspaceCommand=zu.WorkspacesListCommand=zu.WhyCommand=zu.UpCommand=zu.UnlinkCommand=zu.SetVersionCommand=zu.SetVersionSourcesCommand=zu.SetResolutionCommand=zu.RunCommand=zu.RunIndexCommand=zu.RemoveCommand=zu.RebuildCommand=zu.PluginRuntimeCommand=zu.PluginRemoveCommand=zu.PluginListCommand=zu.PluginImportCommand=zu.PluginCheckCommand=zu.PluginImportSourcesCommand=zu.NodeCommand=zu.LinkCommand=zu.YarnCommand=zu.InfoCommand=zu.ExplainCommand=zu.ExplainPeerRequirementsCommand=zu.ExecCommand=zu.VersionCommand=zu.EntryCommand=zu.HelpCommand=zu.ClipanionCommand=zu.DedupeCommand=zu.ConfigCommand=zu.ConfigUnsetCommand=zu.ConfigSetCommand=zu.ConfigGetCommand=zu.CacheCleanCommand=zu.BinCommand=zu.AddCommand=void 0;var am=(Pa(),vi(Va)),QXr=Bn(),Shl=Nfe(),els=am.__importDefault(Das());zu.AddCommand=els.default;var tls=am.__importDefault(kas());zu.BinCommand=tls.default;var rls=am.__importDefault(Gas());zu.CacheCleanCommand=rls.default;var nls=am.__importDefault(Zas());zu.ConfigGetCommand=nls.default;var ils=am.__importDefault(Vas());zu.ConfigSetCommand=ils.default;var sls=am.__importDefault(Pas());zu.ConfigUnsetCommand=sls.default;var ols=am.__importDefault(Was());zu.ConfigCommand=ols.default;var als=am.__importDefault(Has());zu.DedupeCommand=als.default;var cls=am.__importDefault(Yas());zu.ClipanionCommand=cls.default;var lls=am.__importDefault(Qas());zu.HelpCommand=lls.default;var uls=am.__importDefault(Uas());zu.EntryCommand=uls.default;var gls=am.__importDefault(Kas());zu.VersionCommand=gls.default;var Als=am.__importDefault(zas());zu.ExecCommand=Als.default;var dls=am.__importDefault(tcs());zu.ExplainPeerRequirementsCommand=dls.default;var pls=am.__importDefault(ocs());zu.ExplainCommand=pls.default;var fls=am.__importDefault(ccs());zu.InfoCommand=fls.default;var Ils=am.__importDefault(Acs());zu.YarnCommand=Ils.default;var hls=am.__importDefault(dcs());zu.LinkCommand=hls.default;var mls=am.__importDefault(fcs());zu.NodeCommand=mls.default;var Cls=am.__importDefault(hcs());zu.PluginCheckCommand=Cls.default;var _ls=am.__importDefault(IXr());zu.PluginImportSourcesCommand=_ls.default;var yls=am.__importDefault(mXr());zu.PluginImportCommand=yls.default;var bls=am.__importDefault(g6e());zu.PluginListCommand=bls.default;var Els=am.__importDefault(vcs());zu.PluginRemoveCommand=Els.default;var Sls=am.__importDefault(Tcs());zu.PluginRuntimeCommand=Sls.default;var vls=am.__importDefault(kcs());zu.RebuildCommand=vls.default;var Bls=am.__importDefault(Fcs());zu.RemoveCommand=Bls.default;var wls=am.__importDefault(Lcs());zu.RunIndexCommand=wls.default;var Tls=am.__importDefault(Wcs());zu.RunCommand=Tls.default;var Rls=am.__importDefault(Hcs());zu.SetResolutionCommand=Rls.default;var Nls=am.__importDefault(fXr());zu.SetVersionSourcesCommand=Nls.default;var Dls=am.__importDefault(nxt());zu.SetVersionCommand=Dls.default;var kls=am.__importDefault(Qcs());zu.UnlinkCommand=kls.default;var xls=am.__importDefault(Jcs());zu.UpCommand=xls.default;var Gls=am.__importDefault(Kcs());zu.WhyCommand=Gls.default;var Fls=am.__importDefault(jcs());zu.WorkspacesListCommand=Fls.default;var Zls=am.__importDefault($cs());zu.WorkspaceCommand=Zls.default;var vhl=am.__importStar(JQr());zu.dedupeUtils=vhl;var Lls=am.__importStar(Wje());zu.suggestUtils=Lls;var Bhl={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:QXr.SettingsType.BOOLEAN,default:Shl.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:QXr.SettingsType.STRING,values:["^","~",""],default:Lls.Modifier.CARET},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:QXr.SettingsType.BOOLEAN,default:!1}},commands:[rls.default,nls.default,ils.default,sls.default,Rls.default,Nls.default,Dls.default,Fls.default,cls.default,lls.default,uls.default,gls.default,els.default,tls.default,ols.default,als.default,Als.default,dls.default,pls.default,fls.default,Ils.default,hls.default,kls.default,mls.default,Cls.default,_ls.default,yls.default,Els.default,bls.default,Sls.default,vls.default,Bls.default,wls.default,Tls.default,xls.default,Gls.default,Zls.default]};zu.default=Bhl});var XXr=H(dxt=>{"use strict";Object.defineProperty(dxt,"__esModule",{value:!0});dxt.Pad=void 0;var whl=(Pa(),vi(Va)),Thl=lH(),Rhl=whl.__importDefault(sC()),Nhl=({length:e,active:t})=>{if(e===0)return null;let r=e>1?` ${"-".repeat(e-1)}`:" ";return Rhl.default.createElement(Thl.Text,{dimColor:!t},r)};dxt.Pad=Nhl});var Vls=H(pxt=>{"use strict";Object.defineProperty(pxt,"__esModule",{value:!0});pxt.ItemOptions=void 0;var Dhl=(Pa(),vi(Va)),JXr=lH(),P_e=Dhl.__importDefault(sC()),khl=T1t(),xhl=v1t(),Ghl=XXr(),Fhl=function({active:e,skewer:t,options:r,value:n,onChange:a,sizes:o=[]}){let l=r.filter(({label:f})=>!!f).map(({value:f})=>f),A=r.findIndex(f=>f.value===n&&f.label!="");return(0,khl.useListInput)(n,l,{active:e,minus:"left",plus:"right",set:a}),P_e.default.createElement(P_e.default.Fragment,null,r.map(({label:f},I)=>{let C=I===A,b=o[I]-1||0,E=f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),N=Math.max(0,b-E.length-2);return f?P_e.default.createElement(JXr.Box,{key:f,width:b,marginLeft:1},P_e.default.createElement(JXr.Text,{wrap:"truncate"},P_e.default.createElement(xhl.Gem,{active:C})," ",f),t?P_e.default.createElement(Ghl.Pad,{active:e,length:N}):null):P_e.default.createElement(JXr.Box,{key:`spacer-${I}`,width:b,marginLeft:1})}))};pxt.ItemOptions=Fhl});var Hls=H(UXr=>{"use strict";Object.defineProperty(UXr,"__esModule",{value:!0});var M4=(Pa(),vi(Va)),Pls=el(),ZO=Bn(),Zhl=M4.__importStar(A1t()),Lhl=Axt(),Ols=($c(),vi(rg)),Vhl=kdr(),Phl=M4.__importDefault(UC()),Whl=M4.__importStar((CZ(),vi(mZ))),Wls=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function Mls(e,t){return e.length>0?[e.slice(0,t)].concat(Mls(e.slice(t),t)):[]}var N6e=class extends Pls.BaseCommand{constructor(){super(...arguments),this.mode=Ols.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Whl.isEnum(ZO.InstallMode)})}async execute(){Zhl.checkRequirements(this.context);let{ItemOptions:t}=await Promise.resolve().then(()=>M4.__importStar(Vls())),{Pad:r}=await Promise.resolve().then(()=>M4.__importStar(XXr())),{ScrollableItems:n}=await Promise.resolve().then(()=>M4.__importStar(N1t())),{useMinistore:a,useMinistoreSetAll:o}=await Promise.resolve().then(()=>M4.__importStar(WYr())),{useKeypress:l}=await Promise.resolve().then(()=>M4.__importStar(cDe())),{renderForm:A}=await Promise.resolve().then(()=>M4.__importStar(D1t())),{Box:f,Text:I}=await Promise.resolve().then(()=>M4.__importStar(lH())),{default:C,useCallback:b,useEffect:E,useRef:N,useState:B}=await Promise.resolve().then(()=>M4.__importStar(sC())),F=await ZO.Configuration.find(this.context.cwd,this.context.plugins),{project:Q,workspace:X}=await ZO.Project.find(F,this.context.cwd),ae=await ZO.Cache.find(F);if(!X)throw new Pls.WorkspaceRequiredError(Q.cwd,this.context.cwd);await Q.restoreInstallState({restoreResolutions:!1});let ne=this.context.stdout.rows-8,ce=(je,St)=>{let At=(0,Vhl.diffWords)(je,St),Yt="";for(let Tr of At)Tr.added?Yt+=ZO.formatUtils.pretty(F,Tr.value,"green"):Tr.removed||(Yt+=Tr.value);return Yt},fe=(je,St)=>{if(je===St)return St;let At=ZO.structUtils.parseRange(je),Yt=ZO.structUtils.parseRange(St),Tr=At.selector.match(Wls),Nr=Yt.selector.match(Wls);if(!Tr||!Nr)return ce(je,St);let er=["gray","red","yellow","green","magenta"],vt=null,xt="";for(let Zr=1;Zr{let Yt=await Lhl.suggestUtils.fetchDescriptorFrom(je,At,{project:Q,cache:ae,preserveModifier:St,workspace:X});return Yt!==null?Yt.range:je.range},de=async je=>{let St=Phl.default.valid(je.range)?`^${je.range}`:je.range,[At,Yt]=await Promise.all([ue(je,je.range,St).catch(()=>null),ue(je,je.range,"latest").catch(()=>null)]),Tr=[{value:null,label:je.range}];return At&&At!==je.range?Tr.push({value:At,label:fe(je.range,At)}):Tr.push({value:null,label:""}),Yt&&Yt!==At&&Yt!==je.range?Tr.push({value:Yt,label:fe(je.range,Yt)}):Tr.push({value:null,label:""}),Tr},be=()=>C.createElement(f,{flexDirection:"row"},C.createElement(f,{flexDirection:"column",width:49},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select packages.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select versions.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"c"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"r"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"l")," to select all ",C.createElement(I,{bold:!0,color:"cyanBright"},"current"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"range"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"latest"),"."))),C.createElement(f,{flexDirection:"column"},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to install.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to abort.")))),Se=()=>C.createElement(f,{flexDirection:"row",paddingTop:1,paddingBottom:1},C.createElement(f,{width:50},C.createElement(I,{bold:!0},C.createElement(I,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Current")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Range")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Latest"))),De=({active:je,descriptor:St,suggestions:At})=>{let[Yt,Tr]=a(St.descriptorHash,null),Nr=ZO.structUtils.stringifyIdent(St),er=Math.max(0,45-Nr.length);return C.createElement(C.Fragment,null,C.createElement(f,null,C.createElement(f,{width:45},C.createElement(I,{bold:!0},ZO.structUtils.prettyIdent(F,St)),C.createElement(r,{active:je,length:er})),C.createElement(t,{active:je,options:At,value:Yt,skewer:!0,onChange:Tr,sizes:[17,17,17]})))},k=({dependencies:je})=>{let St=o(),[At,Yt]=B(je.map(()=>null)),Tr=N(!0),Nr=async vt=>{let xt=await de(vt);return xt.filter(Zr=>Zr.label!=="").length<=1?null:{descriptor:vt,suggestions:xt}};E(()=>()=>{Tr.current=!1},[]),E(()=>{let vt=Math.trunc(ne*1.75),xt=je.slice(0,vt),Zr=je.slice(vt),qt=Mls(Zr,ne),Xt=xt.map(Nr).reduce(async(lr,cr)=>{await lr;let Ar=await cr;Ar!==null&&Tr.current&&Yt(qr=>{let _n=qr.findIndex(jt=>jt===null),ke=[...qr];return ke[_n]=Ar,ke})},Promise.resolve());qt.reduce((lr,cr)=>Promise.all(cr.map(Ar=>Promise.resolve().then(()=>Nr(Ar)))).then(async Ar=>{Ar=Ar.filter(qr=>qr!==null),await lr,Tr.current&&Yt(qr=>{let _n=qr.findIndex(ke=>ke===null);return qr.slice(0,_n).concat(Ar).concat(qr.slice(_n+Ar.length))})}),Xt).then(()=>{Tr.current&&Yt(lr=>lr.filter(cr=>cr!==null))})},[]);let er=b(vt=>{if(vt!=="c"&&vt!=="r"&&vt!=="l")return;let xt=[];for(let Zr of At){if(Zr===null)continue;let qt;vt==="c"?qt=null:vt==="r"?qt=Zr.suggestions[1].value:qt=Zr.suggestions[2].value??Zr.suggestions[1].value,xt.push([Zr.descriptor.descriptorHash,qt])}St(xt)},[At,St]);return l({active:!0},er,[er]),At.length?C.createElement(n,{radius:ne>>1,children:At.map((vt,xt)=>vt!==null?C.createElement(De,{key:xt,active:!1,descriptor:vt.descriptor,suggestions:vt.suggestions}):C.createElement(I,{key:xt},"Loading..."))}):C.createElement(I,null,"No upgrades found")},ct=await A(({useSubmit:je})=>{je(a());let St=new Map;for(let Yt of Q.workspaces)for(let Tr of["dependencies","devDependencies"])for(let Nr of Yt.manifest[Tr].values())Q.tryWorkspaceByDescriptor(Nr)===null&&(Nr.range.startsWith("link:")||St.set(Nr.descriptorHash,Nr));let At=ZO.miscUtils.sortMap(St.values(),Yt=>ZO.structUtils.stringifyDescriptor(Yt));return C.createElement(f,{flexDirection:"column"},C.createElement(be,null),C.createElement(Se,null),C.createElement(k,{dependencies:At}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ct>"u")return 1;let Me=!1;for(let je of Q.workspaces)for(let St of["dependencies","devDependencies"]){let At=je.manifest[St];for(let Yt of At.values()){let Tr=ct.get(Yt.descriptorHash);typeof Tr<"u"&&Tr!==null&&(At.set(Yt.identHash,ZO.structUtils.makeDescriptor(Yt,Tr)),Me=!0)}}return Me?await Q.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:ae,mode:this.mode}):0}};N6e.paths=[["upgrade-interactive"]];N6e.usage=Ols.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]});UXr.default=N6e});var Jls=H(W_e=>{"use strict";Object.defineProperty(W_e,"__esModule",{value:!0});W_e.UpgradeInteractiveCommand=W_e.SearchCommand=void 0;var Yls=(Pa(),vi(Va)),Qls=Yls.__importDefault(Hss());W_e.SearchCommand=Qls.default;var Xls=Yls.__importDefault(Hls());W_e.UpgradeInteractiveCommand=Xls.default;var Ohl={commands:[Qls.default,Xls.default]};W_e.default=Ohl});var KXr=H(fxt=>{"use strict";Object.defineProperty(fxt,"__esModule",{value:!0});fxt.JSR_PROTOCOL=void 0;fxt.JSR_PROTOCOL="jsr:"});var Ixt=H(D6e=>{"use strict";Object.defineProperty(D6e,"__esModule",{value:!0});D6e.convertDescriptorFromJsrToNpm=Hhl;D6e.convertLocatorFromJsrToNpm=Yhl;D6e.convertLocatorFromNpmToJsr=Qhl;var Mhl=Bn(),H4=Bn();function Hhl(e){let t=e.range.slice(4);if(Mhl.semverUtils.validRange(t))return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(e,"jsr"))}@${t}`);let r=H4.structUtils.tryParseDescriptor(t,!0);if(r!==null)return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${e.range}`)}function Yhl(e){return H4.structUtils.makeLocator(H4.structUtils.wrapIdentIntoScope(e,"jsr"),`npm:${e.reference.slice(4)}`)}function Qhl(e){return H4.structUtils.makeLocator(H4.structUtils.unwrapIdentFromScope(e,"jsr"),`jsr:${e.reference.slice(4)}`)}});var Kls=H(hxt=>{"use strict";Object.defineProperty(hxt,"__esModule",{value:!0});hxt.JsrFetcher=void 0;var Xhl=KXr(),Uls=Ixt(),jXr=class{supports(t,r){return t.reference.startsWith(Xhl.JSR_PROTOCOL)}getLocalPath(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.getLocalPath(n,r)}fetch(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.fetch(n,r)}};hxt.JsrFetcher=jXr});var zls=H(mxt=>{"use strict";Object.defineProperty(mxt,"__esModule",{value:!0});mxt.JsrResolver=void 0;var jls=KXr(),O_e=Ixt(),zXr=class{supportsDescriptor(t,r){return!!t.range.startsWith(jls.JSR_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(jls.JSR_PROTOCOL)}shouldPersistResolution(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t);return r.resolver.shouldPersistResolution(n,r)}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{inner:(0,O_e.convertDescriptorFromJsrToNpm)(t)}}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return(await n.resolver.getCandidates(a,r,n)).map(l=>(0,O_e.convertLocatorFromNpmToJsr)(l))}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return a.resolver.getSatisfying(o,r,n,a)}async resolve(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t),a=await r.resolver.resolve(n,r);return{...a,...(0,O_e.convertLocatorFromNpmToJsr)(a)}}};mxt.JsrResolver=zXr});var $ls=H(qXr=>{"use strict";Object.defineProperty(qXr,"__esModule",{value:!0});var qls=Bn(),Jhl=Kls(),Uhl=zls(),Khl=Ixt(),jhl=["dependencies","devDependencies","peerDependencies"];function zhl(e,t){for(let r of jhl)for(let n of e.manifest.getForScope(r).values()){if(!n.range.startsWith("jsr:"))continue;let a=(0,Khl.convertDescriptorFromJsrToNpm)(n),o=r==="dependencies"?qls.structUtils.makeDescriptor(n,"unknown"):null,l=o!==null&&e.manifest.ensureDependencyMeta(o).optional?"optionalDependencies":r;t[l][qls.structUtils.stringifyIdent(n)]=a.range}}var qhl={hooks:{beforeWorkspacePacking:zhl},resolvers:[Uhl.JsrResolver],fetchers:[Jhl.JsrFetcher]};qXr.default=qhl});var tus=H($Xr=>{"use strict";Object.defineProperty($Xr,"__esModule",{value:!0});var eus=el(),Cxt=Bn(),$hl=Bn(),k6e=($c(),vi(rg)),x6e=class extends eus.BaseCommand{constructor(){super(...arguments),this.json=k6e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.production=k6e.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"}),this.all=k6e.Option.Boolean("-A,--all",!1,{description:"Install the entire project"}),this.workspaces=k6e.Option.Rest()}async execute(){let t=await Cxt.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Cxt.Project.find(t,this.context.cwd),a=await Cxt.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let o;if(this.all)o=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new eus.WorkspaceRequiredError(r.cwd,this.context.cwd);o=new Set([n])}else o=new Set(this.workspaces.map(l=>r.getWorkspaceByIdent($hl.structUtils.parseIdent(l))));for(let l of o)for(let A of this.production?["dependencies"]:Cxt.Manifest.hardDependencies)for(let f of l.manifest.getForScope(A).values()){let I=r.tryWorkspaceByDescriptor(f);I!==null&&o.add(I)}for(let l of r.workspaces)o.has(l)?this.production&&l.manifest.devDependencies.clear():(l.manifest.installConfig=l.manifest.installConfig||{},l.manifest.installConfig.selfReferences=!1,l.manifest.dependencies.clear(),l.manifest.devDependencies.clear(),l.manifest.peerDependencies.clear(),l.manifest.scripts.clear());return await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,persistProject:!1})}};x6e.paths=[["workspaces","focus"]];x6e.usage=k6e.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});$Xr.default=x6e});var ius=H(r4r=>{"use strict";Object.defineProperty(r4r,"__esModule",{value:!0});var t4r=(Pa(),vi(Va)),rus=el(),e4r=Bn(),_xt=Bn(),eF=Bn(),eml=nDe(),MR=($c(),vi(rg)),G6e=t4r.__importDefault(Ek()),tml=t4r.__importDefault(Dfe()),Nte=t4r.__importStar((CZ(),vi(mZ))),nGe=class extends rus.BaseCommand{constructor(){super(...arguments),this.from=MR.Option.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"}),this.all=MR.Option.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"}),this.recursive=MR.Option.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"}),this.worktree=MR.Option.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"}),this.verbose=MR.Option.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"}),this.parallel=MR.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"}),this.interlaced=MR.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"}),this.jobs=MR.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:Nte.isOneOf([Nte.isEnum(["unlimited"]),Nte.applyCascade(Nte.isNumber(),[Nte.isInteger(),Nte.isAtLeast(1)])])}),this.topological=MR.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"}),this.topologicalDev=MR.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"}),this.include=MR.Option.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"}),this.exclude=MR.Option.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"}),this.publicOnly=MR.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"}),this.since=MR.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.dryRun=MR.Option.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"}),this.commandName=MR.Option.String(),this.args=MR.Option.Proxy()}async execute(){let t=await e4r.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await e4r.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new rus.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=this.cli.process([this.commandName,...this.args]),o=a.path.length===1&&a.path[0]==="run"&&typeof a.scriptName<"u"?a.scriptName:null;if(a.path.length===0)throw new MR.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let l=Se=>{this.dryRun&&this.context.stdout.write(`${Se} -`)},A=()=>{let Se=this.from.map(De=>G6e.default.matcher(De));return r.workspaces.filter(De=>{let k=eF.structUtils.stringifyIdent(De.anchoredLocator),et=De.relativeCwd;return Se.some(ct=>ct(k)||ct(et))})},f=[];if(this.since?(l("Option --since is set; selecting the changed workspaces as root for workspace selection"),f=Array.from(await eml.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}))):this.from?(l("Option --from is set; selecting the specified workspaces"),f=[...A()]):this.worktree?(l("Option --worktree is set; selecting the current workspace"),f=[n]):this.recursive?(l("Option --recursive is set; selecting the current workspace"),f=[n]):this.all&&(l("Option --all is set; selecting all workspaces"),f=[...r.workspaces]),this.dryRun&&!this.all){for(let Se of f)l(` + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});YXr.default=R6e});var Axt=H(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.suggestUtils=zu.dedupeUtils=zu.WorkspaceCommand=zu.WorkspacesListCommand=zu.WhyCommand=zu.UpCommand=zu.UnlinkCommand=zu.SetVersionCommand=zu.SetVersionSourcesCommand=zu.SetResolutionCommand=zu.RunCommand=zu.RunIndexCommand=zu.RemoveCommand=zu.RebuildCommand=zu.PluginRuntimeCommand=zu.PluginRemoveCommand=zu.PluginListCommand=zu.PluginImportCommand=zu.PluginCheckCommand=zu.PluginImportSourcesCommand=zu.NodeCommand=zu.LinkCommand=zu.YarnCommand=zu.InfoCommand=zu.ExplainCommand=zu.ExplainPeerRequirementsCommand=zu.ExecCommand=zu.VersionCommand=zu.EntryCommand=zu.HelpCommand=zu.ClipanionCommand=zu.DedupeCommand=zu.ConfigCommand=zu.ConfigUnsetCommand=zu.ConfigSetCommand=zu.ConfigGetCommand=zu.CacheCleanCommand=zu.BinCommand=zu.AddCommand=void 0;var am=(Pa(),vi(Va)),QXr=Bn(),vhl=Nfe(),els=am.__importDefault(Das());zu.AddCommand=els.default;var tls=am.__importDefault(kas());zu.BinCommand=tls.default;var rls=am.__importDefault(Gas());zu.CacheCleanCommand=rls.default;var nls=am.__importDefault(Zas());zu.ConfigGetCommand=nls.default;var ils=am.__importDefault(Vas());zu.ConfigSetCommand=ils.default;var sls=am.__importDefault(Pas());zu.ConfigUnsetCommand=sls.default;var ols=am.__importDefault(Was());zu.ConfigCommand=ols.default;var als=am.__importDefault(Has());zu.DedupeCommand=als.default;var cls=am.__importDefault(Yas());zu.ClipanionCommand=cls.default;var lls=am.__importDefault(Qas());zu.HelpCommand=lls.default;var uls=am.__importDefault(Uas());zu.EntryCommand=uls.default;var gls=am.__importDefault(Kas());zu.VersionCommand=gls.default;var Als=am.__importDefault(zas());zu.ExecCommand=Als.default;var dls=am.__importDefault(tcs());zu.ExplainPeerRequirementsCommand=dls.default;var pls=am.__importDefault(ocs());zu.ExplainCommand=pls.default;var fls=am.__importDefault(ccs());zu.InfoCommand=fls.default;var Ils=am.__importDefault(Acs());zu.YarnCommand=Ils.default;var hls=am.__importDefault(dcs());zu.LinkCommand=hls.default;var mls=am.__importDefault(fcs());zu.NodeCommand=mls.default;var Cls=am.__importDefault(hcs());zu.PluginCheckCommand=Cls.default;var _ls=am.__importDefault(IXr());zu.PluginImportSourcesCommand=_ls.default;var yls=am.__importDefault(mXr());zu.PluginImportCommand=yls.default;var bls=am.__importDefault(g6e());zu.PluginListCommand=bls.default;var Els=am.__importDefault(vcs());zu.PluginRemoveCommand=Els.default;var Sls=am.__importDefault(Tcs());zu.PluginRuntimeCommand=Sls.default;var vls=am.__importDefault(kcs());zu.RebuildCommand=vls.default;var Bls=am.__importDefault(Fcs());zu.RemoveCommand=Bls.default;var wls=am.__importDefault(Lcs());zu.RunIndexCommand=wls.default;var Tls=am.__importDefault(Wcs());zu.RunCommand=Tls.default;var Rls=am.__importDefault(Hcs());zu.SetResolutionCommand=Rls.default;var Nls=am.__importDefault(fXr());zu.SetVersionSourcesCommand=Nls.default;var Dls=am.__importDefault(nxt());zu.SetVersionCommand=Dls.default;var kls=am.__importDefault(Qcs());zu.UnlinkCommand=kls.default;var xls=am.__importDefault(Jcs());zu.UpCommand=xls.default;var Gls=am.__importDefault(Kcs());zu.WhyCommand=Gls.default;var Fls=am.__importDefault(jcs());zu.WorkspacesListCommand=Fls.default;var Zls=am.__importDefault($cs());zu.WorkspaceCommand=Zls.default;var Bhl=am.__importStar(JQr());zu.dedupeUtils=Bhl;var Lls=am.__importStar(Wje());zu.suggestUtils=Lls;var whl={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:QXr.SettingsType.BOOLEAN,default:vhl.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:QXr.SettingsType.STRING,values:["^","~",""],default:Lls.Modifier.CARET},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:QXr.SettingsType.BOOLEAN,default:!1}},commands:[rls.default,nls.default,ils.default,sls.default,Rls.default,Nls.default,Dls.default,Fls.default,cls.default,lls.default,uls.default,gls.default,els.default,tls.default,ols.default,als.default,Als.default,dls.default,pls.default,fls.default,Ils.default,hls.default,kls.default,mls.default,Cls.default,_ls.default,yls.default,Els.default,bls.default,Sls.default,vls.default,Bls.default,wls.default,Tls.default,xls.default,Gls.default,Zls.default]};zu.default=whl});var XXr=H(dxt=>{"use strict";Object.defineProperty(dxt,"__esModule",{value:!0});dxt.Pad=void 0;var Thl=(Pa(),vi(Va)),Rhl=lH(),Nhl=Thl.__importDefault(sC()),Dhl=({length:e,active:t})=>{if(e===0)return null;let r=e>1?` ${"-".repeat(e-1)}`:" ";return Nhl.default.createElement(Rhl.Text,{dimColor:!t},r)};dxt.Pad=Dhl});var Vls=H(pxt=>{"use strict";Object.defineProperty(pxt,"__esModule",{value:!0});pxt.ItemOptions=void 0;var khl=(Pa(),vi(Va)),JXr=lH(),P_e=khl.__importDefault(sC()),xhl=T1t(),Ghl=v1t(),Fhl=XXr(),Zhl=function({active:e,skewer:t,options:r,value:n,onChange:a,sizes:o=[]}){let l=r.filter(({label:f})=>!!f).map(({value:f})=>f),A=r.findIndex(f=>f.value===n&&f.label!="");return(0,xhl.useListInput)(n,l,{active:e,minus:"left",plus:"right",set:a}),P_e.default.createElement(P_e.default.Fragment,null,r.map(({label:f},I)=>{let C=I===A,b=o[I]-1||0,E=f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),N=Math.max(0,b-E.length-2);return f?P_e.default.createElement(JXr.Box,{key:f,width:b,marginLeft:1},P_e.default.createElement(JXr.Text,{wrap:"truncate"},P_e.default.createElement(Ghl.Gem,{active:C})," ",f),t?P_e.default.createElement(Fhl.Pad,{active:e,length:N}):null):P_e.default.createElement(JXr.Box,{key:`spacer-${I}`,width:b,marginLeft:1})}))};pxt.ItemOptions=Zhl});var Hls=H(UXr=>{"use strict";Object.defineProperty(UXr,"__esModule",{value:!0});var M4=(Pa(),vi(Va)),Pls=el(),ZO=Bn(),Lhl=M4.__importStar(A1t()),Vhl=Axt(),Ols=($c(),vi(rg)),Phl=kdr(),Whl=M4.__importDefault(UC()),Ohl=M4.__importStar((CZ(),vi(mZ))),Wls=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function Mls(e,t){return e.length>0?[e.slice(0,t)].concat(Mls(e.slice(t),t)):[]}var N6e=class extends Pls.BaseCommand{constructor(){super(...arguments),this.mode=Ols.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Ohl.isEnum(ZO.InstallMode)})}async execute(){Lhl.checkRequirements(this.context);let{ItemOptions:t}=await Promise.resolve().then(()=>M4.__importStar(Vls())),{Pad:r}=await Promise.resolve().then(()=>M4.__importStar(XXr())),{ScrollableItems:n}=await Promise.resolve().then(()=>M4.__importStar(N1t())),{useMinistore:a,useMinistoreSetAll:o}=await Promise.resolve().then(()=>M4.__importStar(WYr())),{useKeypress:l}=await Promise.resolve().then(()=>M4.__importStar(cDe())),{renderForm:A}=await Promise.resolve().then(()=>M4.__importStar(D1t())),{Box:f,Text:I}=await Promise.resolve().then(()=>M4.__importStar(lH())),{default:C,useCallback:b,useEffect:E,useRef:N,useState:B}=await Promise.resolve().then(()=>M4.__importStar(sC())),F=await ZO.Configuration.find(this.context.cwd,this.context.plugins),{project:Q,workspace:X}=await ZO.Project.find(F,this.context.cwd),ae=await ZO.Cache.find(F);if(!X)throw new Pls.WorkspaceRequiredError(Q.cwd,this.context.cwd);await Q.restoreInstallState({restoreResolutions:!1});let ne=this.context.stdout.rows-8,ce=(je,St)=>{let At=(0,Phl.diffWords)(je,St),Yt="";for(let Tr of At)Tr.added?Yt+=ZO.formatUtils.pretty(F,Tr.value,"green"):Tr.removed||(Yt+=Tr.value);return Yt},fe=(je,St)=>{if(je===St)return St;let At=ZO.structUtils.parseRange(je),Yt=ZO.structUtils.parseRange(St),Tr=At.selector.match(Wls),Nr=Yt.selector.match(Wls);if(!Tr||!Nr)return ce(je,St);let er=["gray","red","yellow","green","magenta"],vt=null,xt="";for(let Zr=1;Zr{let Yt=await Vhl.suggestUtils.fetchDescriptorFrom(je,At,{project:Q,cache:ae,preserveModifier:St,workspace:X});return Yt!==null?Yt.range:je.range},de=async je=>{let St=Whl.default.valid(je.range)?`^${je.range}`:je.range,[At,Yt]=await Promise.all([ue(je,je.range,St).catch(()=>null),ue(je,je.range,"latest").catch(()=>null)]),Tr=[{value:null,label:je.range}];return At&&At!==je.range?Tr.push({value:At,label:fe(je.range,At)}):Tr.push({value:null,label:""}),Yt&&Yt!==At&&Yt!==je.range?Tr.push({value:Yt,label:fe(je.range,Yt)}):Tr.push({value:null,label:""}),Tr},be=()=>C.createElement(f,{flexDirection:"row"},C.createElement(f,{flexDirection:"column",width:49},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select packages.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select versions.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"c"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"r"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"l")," to select all ",C.createElement(I,{bold:!0,color:"cyanBright"},"current"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"range"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"latest"),"."))),C.createElement(f,{flexDirection:"column"},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to install.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to abort.")))),Se=()=>C.createElement(f,{flexDirection:"row",paddingTop:1,paddingBottom:1},C.createElement(f,{width:50},C.createElement(I,{bold:!0},C.createElement(I,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Current")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Range")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Latest"))),De=({active:je,descriptor:St,suggestions:At})=>{let[Yt,Tr]=a(St.descriptorHash,null),Nr=ZO.structUtils.stringifyIdent(St),er=Math.max(0,45-Nr.length);return C.createElement(C.Fragment,null,C.createElement(f,null,C.createElement(f,{width:45},C.createElement(I,{bold:!0},ZO.structUtils.prettyIdent(F,St)),C.createElement(r,{active:je,length:er})),C.createElement(t,{active:je,options:At,value:Yt,skewer:!0,onChange:Tr,sizes:[17,17,17]})))},k=({dependencies:je})=>{let St=o(),[At,Yt]=B(je.map(()=>null)),Tr=N(!0),Nr=async vt=>{let xt=await de(vt);return xt.filter(Zr=>Zr.label!=="").length<=1?null:{descriptor:vt,suggestions:xt}};E(()=>()=>{Tr.current=!1},[]),E(()=>{let vt=Math.trunc(ne*1.75),xt=je.slice(0,vt),Zr=je.slice(vt),qt=Mls(Zr,ne),Xt=xt.map(Nr).reduce(async(lr,cr)=>{await lr;let Ar=await cr;Ar!==null&&Tr.current&&Yt(qr=>{let _n=qr.findIndex(jt=>jt===null),ke=[...qr];return ke[_n]=Ar,ke})},Promise.resolve());qt.reduce((lr,cr)=>Promise.all(cr.map(Ar=>Promise.resolve().then(()=>Nr(Ar)))).then(async Ar=>{Ar=Ar.filter(qr=>qr!==null),await lr,Tr.current&&Yt(qr=>{let _n=qr.findIndex(ke=>ke===null);return qr.slice(0,_n).concat(Ar).concat(qr.slice(_n+Ar.length))})}),Xt).then(()=>{Tr.current&&Yt(lr=>lr.filter(cr=>cr!==null))})},[]);let er=b(vt=>{if(vt!=="c"&&vt!=="r"&&vt!=="l")return;let xt=[];for(let Zr of At){if(Zr===null)continue;let qt;vt==="c"?qt=null:vt==="r"?qt=Zr.suggestions[1].value:qt=Zr.suggestions[2].value??Zr.suggestions[1].value,xt.push([Zr.descriptor.descriptorHash,qt])}St(xt)},[At,St]);return l({active:!0},er,[er]),At.length?C.createElement(n,{radius:ne>>1,children:At.map((vt,xt)=>vt!==null?C.createElement(De,{key:xt,active:!1,descriptor:vt.descriptor,suggestions:vt.suggestions}):C.createElement(I,{key:xt},"Loading..."))}):C.createElement(I,null,"No upgrades found")},ct=await A(({useSubmit:je})=>{je(a());let St=new Map;for(let Yt of Q.workspaces)for(let Tr of["dependencies","devDependencies"])for(let Nr of Yt.manifest[Tr].values())Q.tryWorkspaceByDescriptor(Nr)===null&&(Nr.range.startsWith("link:")||St.set(Nr.descriptorHash,Nr));let At=ZO.miscUtils.sortMap(St.values(),Yt=>ZO.structUtils.stringifyDescriptor(Yt));return C.createElement(f,{flexDirection:"column"},C.createElement(be,null),C.createElement(Se,null),C.createElement(k,{dependencies:At}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ct>"u")return 1;let Me=!1;for(let je of Q.workspaces)for(let St of["dependencies","devDependencies"]){let At=je.manifest[St];for(let Yt of At.values()){let Tr=ct.get(Yt.descriptorHash);typeof Tr<"u"&&Tr!==null&&(At.set(Yt.identHash,ZO.structUtils.makeDescriptor(Yt,Tr)),Me=!0)}}return Me?await Q.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:ae,mode:this.mode}):0}};N6e.paths=[["upgrade-interactive"]];N6e.usage=Ols.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]});UXr.default=N6e});var Jls=H(W_e=>{"use strict";Object.defineProperty(W_e,"__esModule",{value:!0});W_e.UpgradeInteractiveCommand=W_e.SearchCommand=void 0;var Yls=(Pa(),vi(Va)),Qls=Yls.__importDefault(Hss());W_e.SearchCommand=Qls.default;var Xls=Yls.__importDefault(Hls());W_e.UpgradeInteractiveCommand=Xls.default;var Mhl={commands:[Qls.default,Xls.default]};W_e.default=Mhl});var KXr=H(fxt=>{"use strict";Object.defineProperty(fxt,"__esModule",{value:!0});fxt.JSR_PROTOCOL=void 0;fxt.JSR_PROTOCOL="jsr:"});var Ixt=H(D6e=>{"use strict";Object.defineProperty(D6e,"__esModule",{value:!0});D6e.convertDescriptorFromJsrToNpm=Yhl;D6e.convertLocatorFromJsrToNpm=Qhl;D6e.convertLocatorFromNpmToJsr=Xhl;var Hhl=Bn(),H4=Bn();function Yhl(e){let t=e.range.slice(4);if(Hhl.semverUtils.validRange(t))return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(e,"jsr"))}@${t}`);let r=H4.structUtils.tryParseDescriptor(t,!0);if(r!==null)return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${e.range}`)}function Qhl(e){return H4.structUtils.makeLocator(H4.structUtils.wrapIdentIntoScope(e,"jsr"),`npm:${e.reference.slice(4)}`)}function Xhl(e){return H4.structUtils.makeLocator(H4.structUtils.unwrapIdentFromScope(e,"jsr"),`jsr:${e.reference.slice(4)}`)}});var Kls=H(hxt=>{"use strict";Object.defineProperty(hxt,"__esModule",{value:!0});hxt.JsrFetcher=void 0;var Jhl=KXr(),Uls=Ixt(),jXr=class{supports(t,r){return t.reference.startsWith(Jhl.JSR_PROTOCOL)}getLocalPath(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.getLocalPath(n,r)}fetch(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.fetch(n,r)}};hxt.JsrFetcher=jXr});var zls=H(mxt=>{"use strict";Object.defineProperty(mxt,"__esModule",{value:!0});mxt.JsrResolver=void 0;var jls=KXr(),O_e=Ixt(),zXr=class{supportsDescriptor(t,r){return!!t.range.startsWith(jls.JSR_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(jls.JSR_PROTOCOL)}shouldPersistResolution(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t);return r.resolver.shouldPersistResolution(n,r)}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{inner:(0,O_e.convertDescriptorFromJsrToNpm)(t)}}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return(await n.resolver.getCandidates(a,r,n)).map(l=>(0,O_e.convertLocatorFromNpmToJsr)(l))}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return a.resolver.getSatisfying(o,r,n,a)}async resolve(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t),a=await r.resolver.resolve(n,r);return{...a,...(0,O_e.convertLocatorFromNpmToJsr)(a)}}};mxt.JsrResolver=zXr});var $ls=H(qXr=>{"use strict";Object.defineProperty(qXr,"__esModule",{value:!0});var qls=Bn(),Uhl=Kls(),Khl=zls(),jhl=Ixt(),zhl=["dependencies","devDependencies","peerDependencies"];function qhl(e,t){for(let r of zhl)for(let n of e.manifest.getForScope(r).values()){if(!n.range.startsWith("jsr:"))continue;let a=(0,jhl.convertDescriptorFromJsrToNpm)(n),o=r==="dependencies"?qls.structUtils.makeDescriptor(n,"unknown"):null,l=o!==null&&e.manifest.ensureDependencyMeta(o).optional?"optionalDependencies":r;t[l][qls.structUtils.stringifyIdent(n)]=a.range}}var $hl={hooks:{beforeWorkspacePacking:qhl},resolvers:[Khl.JsrResolver],fetchers:[Uhl.JsrFetcher]};qXr.default=$hl});var tus=H($Xr=>{"use strict";Object.defineProperty($Xr,"__esModule",{value:!0});var eus=el(),Cxt=Bn(),eml=Bn(),k6e=($c(),vi(rg)),x6e=class extends eus.BaseCommand{constructor(){super(...arguments),this.json=k6e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.production=k6e.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"}),this.all=k6e.Option.Boolean("-A,--all",!1,{description:"Install the entire project"}),this.workspaces=k6e.Option.Rest()}async execute(){let t=await Cxt.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Cxt.Project.find(t,this.context.cwd),a=await Cxt.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let o;if(this.all)o=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new eus.WorkspaceRequiredError(r.cwd,this.context.cwd);o=new Set([n])}else o=new Set(this.workspaces.map(l=>r.getWorkspaceByIdent(eml.structUtils.parseIdent(l))));for(let l of o)for(let A of this.production?["dependencies"]:Cxt.Manifest.hardDependencies)for(let f of l.manifest.getForScope(A).values()){let I=r.tryWorkspaceByDescriptor(f);I!==null&&o.add(I)}for(let l of r.workspaces)o.has(l)?this.production&&l.manifest.devDependencies.clear():(l.manifest.installConfig=l.manifest.installConfig||{},l.manifest.installConfig.selfReferences=!1,l.manifest.dependencies.clear(),l.manifest.devDependencies.clear(),l.manifest.peerDependencies.clear(),l.manifest.scripts.clear());return await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,persistProject:!1})}};x6e.paths=[["workspaces","focus"]];x6e.usage=k6e.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});$Xr.default=x6e});var ius=H(r4r=>{"use strict";Object.defineProperty(r4r,"__esModule",{value:!0});var t4r=(Pa(),vi(Va)),rus=el(),e4r=Bn(),_xt=Bn(),eF=Bn(),tml=nDe(),MR=($c(),vi(rg)),G6e=t4r.__importDefault(Ek()),rml=t4r.__importDefault(Dfe()),Nte=t4r.__importStar((CZ(),vi(mZ))),nGe=class extends rus.BaseCommand{constructor(){super(...arguments),this.from=MR.Option.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"}),this.all=MR.Option.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"}),this.recursive=MR.Option.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"}),this.worktree=MR.Option.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"}),this.verbose=MR.Option.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"}),this.parallel=MR.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"}),this.interlaced=MR.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"}),this.jobs=MR.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:Nte.isOneOf([Nte.isEnum(["unlimited"]),Nte.applyCascade(Nte.isNumber(),[Nte.isInteger(),Nte.isAtLeast(1)])])}),this.topological=MR.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"}),this.topologicalDev=MR.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"}),this.include=MR.Option.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"}),this.exclude=MR.Option.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"}),this.publicOnly=MR.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"}),this.since=MR.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.dryRun=MR.Option.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"}),this.commandName=MR.Option.String(),this.args=MR.Option.Proxy()}async execute(){let t=await e4r.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await e4r.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new rus.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=this.cli.process([this.commandName,...this.args]),o=a.path.length===1&&a.path[0]==="run"&&typeof a.scriptName<"u"?a.scriptName:null;if(a.path.length===0)throw new MR.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let l=Se=>{this.dryRun&&this.context.stdout.write(`${Se} +`)},A=()=>{let Se=this.from.map(De=>G6e.default.matcher(De));return r.workspaces.filter(De=>{let k=eF.structUtils.stringifyIdent(De.anchoredLocator),et=De.relativeCwd;return Se.some(ct=>ct(k)||ct(et))})},f=[];if(this.since?(l("Option --since is set; selecting the changed workspaces as root for workspace selection"),f=Array.from(await tml.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}))):this.from?(l("Option --from is set; selecting the specified workspaces"),f=[...A()]):this.worktree?(l("Option --worktree is set; selecting the current workspace"),f=[n]):this.recursive?(l("Option --recursive is set; selecting the current workspace"),f=[n]):this.all&&(l("Option --all is set; selecting all workspaces"),f=[...r.workspaces]),this.dryRun&&!this.all){for(let Se of f)l(` - ${Se.relativeCwd} ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);f.length>0&&l("")}let I;if(this.recursive?this.since?(l("Option --recursive --since is set; recursively selecting all dependent workspaces"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceDependents()]).flat())):(l("Option --recursive is set; recursively selecting all transitive dependencies"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(l("Option --worktree is set; recursively selecting all nested workspaces"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceChildren()]).flat())):I=null,I!==null&&(f=[...new Set([...f,...I])],this.dryRun))for(let Se of I)l(` - ${Se.relativeCwd} - ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);let C=[],b=!1;if(o?.includes(":")){for(let Se of r.workspaces)if(Se.manifest.scripts.has(o)&&(b=!b,b===!1))break}for(let Se of f){if(o&&!Se.manifest.scripts.has(o)&&!b&&!(await e4r.scriptUtils.getWorkspaceAccessibleBinaries(Se)).has(o)){l(`Excluding ${Se.relativeCwd} because it doesn't have a "${o}" script`);continue}if(!(o===t.env.npm_lifecycle_event&&Se.cwd===n.cwd)){if(this.include.length>0&&!G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.include)&&!G6e.default.isMatch(Se.relativeCwd,this.include)){l(`Excluding ${Se.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.exclude)||G6e.default.isMatch(Se.relativeCwd,this.exclude))){l(`Excluding ${Se.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Se.manifest.private===!0){l(`Excluding ${Se.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Se)}}if(C.sort((Se,De)=>eF.structUtils.stringifyIdent(Se.anchoredLocator).localeCompare(eF.structUtils.stringifyIdent(De.anchoredLocator))),this.dryRun)return 0;let E=this.verbose??(this.context.stdout.isTTY?1/0:0),N=E>0,B=E>1,F=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(eF.nodeUtils.availableParallelism()/2):1,Q=F===1?!1:this.parallel,X=Q?this.interlaced:!0,ae=(0,tml.default)(F),ne=new Map,ce=new Set,fe=0,ue=null,de=!1,be=await _xt.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async Se=>{let De=async(k,{commandIndex:et})=>{if(de)return-1;!Q&&B&&et>1&&Se.reportSeparator();let ct=rml(k,{configuration:t,label:N,commandIndex:et}),[Me,je]=nus(Se,{prefix:ct,interlaced:X}),[St,At]=nus(Se,{prefix:ct,interlaced:X});try{B&&Se.reportInfo(null,`${ct?`${ct} `:""}Process started`);let Yt=Date.now(),Tr=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:Me,stderr:St})||0;Me.end(),St.end(),await je,await At;let Nr=Date.now();if(B){let er=t.get("enableTimers")?`, completed in ${eF.formatUtils.pretty(t,Nr-Yt,eF.formatUtils.Type.DURATION)}`:"";Se.reportInfo(null,`${ct?`${ct} `:""}Process exited (exit code ${Tr})${er}`)}return Tr===130&&(de=!0,ue=Tr),Tr}catch(Yt){throw Me.end(),St.end(),await je,await At,Yt}};for(let k of C)ne.set(k.anchoredLocator.locatorHash,k);for(;ne.size>0&&!Se.hasErrors();){let k=[];for(let[je,St]of ne){if(ce.has(St.anchoredDescriptor.descriptorHash))continue;let At=!0;if(this.topological||this.topologicalDev){let Yt=this.topologicalDev?new Map([...St.manifest.dependencies,...St.manifest.devDependencies]):St.manifest.dependencies;for(let Tr of Yt.values()){let Nr=r.tryWorkspaceByDescriptor(Tr);if(At=Nr===null||!ne.has(Nr.anchoredLocator.locatorHash),!At)break}}if(At&&(ce.add(St.anchoredDescriptor.descriptorHash),k.push(ae(async()=>{let Yt=await De(St,{commandIndex:++fe});return ne.delete(je),ce.delete(St.anchoredDescriptor.descriptorHash),{workspace:St,exitCode:Yt}})),!Q))break}if(k.length===0){let je=Array.from(ne.values()).map(St=>eF.structUtils.prettyLocator(t,St.anchoredLocator)).join(", ");Se.reportError(_xt.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${je})`);return}let et=await Promise.all(k);et.forEach(({workspace:je,exitCode:St})=>{St!==0&&Se.reportError(_xt.MessageName.UNNAMED,`The command failed in workspace ${eF.structUtils.prettyLocator(t,je.anchoredLocator)} with exit code ${St}`)});let Me=et.map(je=>je.exitCode).find(je=>je!==0);(this.topological||this.topologicalDev)&&typeof Me<"u"&&Se.reportError(_xt.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ue!==null?ue:be.exitCode()}};nGe.paths=[["workspaces","foreach"]];nGe.usage=MR.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]});nGe.schema=[Nte.hasKeyRelationship("all",Nte.KeyRelationship.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),Nte.hasAtLeastOneKey(["all","recursive","since","worktree"],{missingIf:"undefined"})];r4r.default=nGe;function nus(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),a=new eF.miscUtils.DefaultStream;a.pipe(n,{end:!1}),a.on("finish",()=>{n.end()});let o=new Promise(A=>{n.on("finish",()=>{A(a.active)})});if(r)return[a,o];let l=new eF.miscUtils.BufferStream;return l.pipe(a,{end:!1}),l.on("finish",()=>{a.end()}),[l,o]}function rml(e,{configuration:t,commandIndex:r,label:n}){if(!n)return null;let o=`[${eF.structUtils.stringifyIdent(e.anchoredLocator)}]:`,l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[r%l.length];return eF.formatUtils.pretty(t,o,A)}});var cus=H(M_e=>{"use strict";Object.defineProperty(M_e,"__esModule",{value:!0});M_e.WorkspacesForeachCommand=M_e.WorkspacesFocusCommand=void 0;var sus=(Pa(),vi(Va)),ous=sus.__importDefault(tus());M_e.WorkspacesFocusCommand=ous.default;var aus=sus.__importDefault(ius());M_e.WorkspacesForeachCommand=aus.default;var nml={commands:[ous.default,aus.default]};M_e.default=nml});var uus=H(yxt=>{"use strict";Object.defineProperty(yxt,"__esModule",{value:!0});yxt.hasDefinitelyTyped=void 0;var iml=(Pa(),vi(Va)),lus=Bn(),sml=iml.__importDefault(LYr()),oml="e8e1bd300d860104bb8c58453ffa1eb4",aml="OFCNCOG2CU",cml=async(e,t)=>{let r=lus.structUtils.stringifyIdent(e),a=lml(t).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}};yxt.hasDefinitelyTyped=cml;var lml=e=>{let t={async send(r){try{let n=await lus.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:n.body,isTimedOut:!1,status:n.statusCode}}catch(n){return{content:n.response.body,isTimedOut:!1,status:n.response.statusCode}}}};return(0,sml.default)(aml,oml,{requester:t})}});var dus=H(i4r=>{"use strict";Object.defineProperty(i4r,"__esModule",{value:!0});var uml=(Pa(),vi(Va)),n4r=Bn(),u6=Bn(),lue=no(),gus=Axt(),gml=uml.__importDefault(UC()),Aml=uus(),Aus=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,dml=async(e,t,r,n)=>{if(r.scope==="types")return;let{project:a}=e,{configuration:o}=a;if(!(o.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(a.cwd,"tsconfig.json")))))return;let A=o.makeResolver(),f={project:a,resolver:A,report:new u6.ThrowReport};if(!await(0,Aml.hasDefinitelyTyped)(r,o))return;let C=Aus(r),b=u6.structUtils.parseRange(r.range).selector;if(!u6.semverUtils.validRange(b)){let Q=o.normalizeDependency(r),X=await A.getCandidates(Q,{},f);b=u6.structUtils.parseRange(X[0].reference).selector}let E=gml.default.coerce(b);if(E===null)return;let N=`${gus.suggestUtils.Modifier.CARET}${E.major}`,B=u6.structUtils.makeDescriptor(u6.structUtils.makeIdent("types",C),N),F=u6.miscUtils.mapAndFind(a.workspaces,Q=>{let X=Q.manifest.dependencies.get(r.identHash)?.descriptorHash,ae=Q.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(X!==r.descriptorHash&&ae!==r.descriptorHash)return u6.miscUtils.mapAndFind.skip;let ne=[];for(let ce of n4r.Manifest.allDependencies){let fe=Q.manifest[ce].get(B.identHash);typeof fe>"u"||ne.push([ce,fe])}return ne.length===0?u6.miscUtils.mapAndFind.skip:ne});if(typeof F<"u")for(let[Q,X]of F)e.manifest[Q].set(X.identHash,X);else{try{let Q=o.normalizeDependency(B);if((await A.getCandidates(Q,{},f)).length===0)return}catch{return}e.manifest[gus.suggestUtils.Target.DEVELOPMENT].set(B.identHash,B)}},pml=async(e,t,r)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n;if(!(a.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(n.cwd,"tsconfig.json")))))return;let l=Aus(r),A=u6.structUtils.makeIdent("types",l);for(let f of n4r.Manifest.allDependencies)typeof e.manifest[f].get(A.identHash)>"u"||e.manifest[f].delete(A.identHash)},fml=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},Iml={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:n4r.SettingsType.BOOLEAN,isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:dml,afterWorkspaceDependencyRemoval:pml,beforeWorkspacePacking:fml}};i4r.default=Iml});var pus=H(bxt=>{"use strict";Object.defineProperty(bxt,"__esModule",{value:!0});bxt.CATALOG_DESCRIPTOR_PREFIX=void 0;bxt.CATALOG_DESCRIPTOR_PREFIX="catalog:"});var hus=H(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});TH.resolveDescriptorFromCatalog=TH.getCatalogEntryName=TH.getCatalogName=TH.isCatalogReference=void 0;var H_e=Bn(),Ius=pus(),hml=e=>e.startsWith(Ius.CATALOG_DESCRIPTOR_PREFIX);TH.isCatalogReference=hml;var mml=e=>e.range.slice(Ius.CATALOG_DESCRIPTOR_PREFIX.length)||null;TH.getCatalogName=mml;var fus=e=>e===null?"default catalog":`catalog "${e}"`,Cml=e=>e.scope?`@${e.scope}/${e.name}`:e.name;TH.getCatalogEntryName=Cml;var _ml=(e,t,r,n)=>{let a=(0,TH.getCatalogName)(t),o;if(a===null)o=e.configuration.get("catalog");else try{let C=e.configuration.get("catalogs");C&&(o=C.get(a))}catch{o=void 0}if(!o||o.size===0)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: ${fus(a)} not found or empty`);let l=(0,TH.getCatalogEntryName)(t),A=o.get(l);if(!A)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: entry not found in ${fus(a)}`);let f=e.configuration.normalizeDependency(H_e.structUtils.makeDescriptor(t,A));return r.supportsDescriptor(f,n)?r.bindDescriptor(f,e.topLevelWorkspace.anchoredLocator,n):f};TH.resolveDescriptorFromCatalog=_ml});var mus=H(s4r=>{"use strict";Object.defineProperty(s4r,"__esModule",{value:!0});var RH=Bn(),Ext=hus(),yml={configuration:{catalog:{description:"The default catalog of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"The catalog of packages",type:RH.SettingsType.STRING}},catalogs:{description:"Named catalogs of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"A named catalog",type:RH.SettingsType.MAP,valueDefinition:{description:"Package version in the catalog",type:RH.SettingsType.STRING}}}},hooks:{beforeWorkspacePacking:(e,t)=>{let r=e.project,n=r.configuration.makeResolver(),a={project:r,resolver:n,report:new RH.ThrowReport};for(let o of RH.Manifest.allDependencies){let l=t[o];if(l)for(let[A,f]of Object.entries(l)){if(typeof f!="string"||!(0,Ext.isCatalogReference)(f))continue;let I=RH.structUtils.parseIdent(A),C=RH.structUtils.makeDescriptor(I,f),b=(0,Ext.resolveDescriptorFromCatalog)(r,C,n,a),{protocol:E,source:N,params:B,selector:F}=RH.structUtils.parseRange(RH.structUtils.convertToManifestRange(b.range));E===e.project.configuration.get("defaultProtocol")&&(E=null),l[A]=RH.structUtils.makeRange({protocol:E,source:N,params:B,selector:F})}}},reduceDependency:async(e,t,r,n,{resolver:a,resolveOptions:o})=>(0,Ext.isCatalogReference)(e.range)?(0,Ext.resolveDescriptorFromCatalog)(t,e,a,o):e}};s4r.default=yml});var Cus=H(Sxt=>{"use strict";Object.defineProperty(Sxt,"__esModule",{value:!0});Sxt.packageExtensions=void 0;var Wl={optional:!0};Sxt.packageExtensions=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Wl}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Wl,"postcss-jsx":Wl,"postcss-less":Wl,"postcss-markdown":Wl,"postcss-scss":Wl}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Wl}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Wl}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Wl,"vue-template-compiler":Wl}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Wl,"utf-8-validate":Wl}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl,"vuetify-loader":Wl}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Wl}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Wl}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Wl}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Wl,tinyliquid:Wl,"liquid-node":Wl,jade:Wl,"then-jade":Wl,dust:Wl,"dustjs-helpers":Wl,"dustjs-linkedin":Wl,swig:Wl,"swig-templates":Wl,"razor-tmpl":Wl,atpl:Wl,liquor:Wl,twig:Wl,ejs:Wl,eco:Wl,jazz:Wl,jqtpl:Wl,hamljs:Wl,hamlet:Wl,whiskers:Wl,"haml-coffee":Wl,"hogan.js":Wl,templayed:Wl,handlebars:Wl,underscore:Wl,lodash:Wl,pug:Wl,"then-pug":Wl,qejs:Wl,walrus:Wl,mustache:Wl,just:Wl,ect:Wl,mote:Wl,toffee:Wl,dot:Wl,"bracket-template":Wl,ractive:Wl,nunjucks:Wl,htmling:Wl,"babel-core":Wl,plates:Wl,"react-dom":Wl,react:Wl,"arc-templates":Wl,vash:Wl,slm:Wl,marko:Wl,teacup:Wl,"coffee-script":Wl,squirrelly:Wl,twing:Wl}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl,vue:Wl}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Wl}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Wl}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(e=>[e,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Wl,"webpack-command":Wl}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Wl}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Wl}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Wl,jimp:Wl}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Wl,"eslint-import-resolver-typescript":Wl,"eslint-import-resolver-webpack":Wl,"@typescript-eslint/parser":Wl}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Wl}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Wl}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Wl}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Wl}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Wl}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Wl}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Wl}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Wl}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Wl}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]]});var _us=H(vxt=>{"use strict";Object.defineProperty(vxt,"__esModule",{value:!0});vxt.packageExtensions=void 0;var bml=Cus();Object.defineProperty(vxt,"packageExtensions",{enumerable:!0,get:function(){return bml.packageExtensions}})});var yus=H(a4r=>{"use strict";Object.defineProperty(a4r,"__esModule",{value:!0});a4r.getPatch=Eml;var o4r;function Eml(){return typeof o4r>"u"&&(o4r=wt("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),o4r}});var bus=H(l4r=>{"use strict";Object.defineProperty(l4r,"__esModule",{value:!0});l4r.getPatch=Sml;var c4r;function Sml(){return typeof c4r>"u"&&(c4r=wt("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),c4r}});var Eus=H(g4r=>{"use strict";Object.defineProperty(g4r,"__esModule",{value:!0});g4r.getPatch=vml;var u4r;function vml(){return typeof u4r>"u"&&(u4r=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),u4r}});var vus=H(A4r=>{"use strict";Object.defineProperty(A4r,"__esModule",{value:!0});var Dte=Bn(),Bml=_us(),wml=yus(),Tml=bus(),Rml=Eus(),Sus=new Map([[Dte.structUtils.makeIdent(null,"fsevents").identHash,wml.getPatch],[Dte.structUtils.makeIdent(null,"resolve").identHash,Tml.getPatch],[Dte.structUtils.makeIdent(null,"typescript").identHash,Rml.getPatch]]),Nml={hooks:{registerPackageExtensions:async(e,t)=>{for(let[r,n]of Bml.packageExtensions)t(Dte.structUtils.parseDescriptor(r,!0),n)},getBuiltinPatch:async(e,t)=>{let r="compat/";if(!t.startsWith(r))return;let n=Dte.structUtils.parseIdent(t.slice(r.length)),a=Sus.get(n.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(e,t,r,n)=>typeof Sus.get(e.identHash)>"u"?e:Dte.structUtils.makeDescriptor(e,Dte.structUtils.makeRange({protocol:"patch:",source:Dte.structUtils.stringifyDescriptor(e),selector:`optional!builtin`,params:null}))}};A4r.default=Nml});var F6e=H(Y_e=>{"use strict";Object.defineProperty(Y_e,"__esModule",{value:!0});Y_e.Index=void 0;Y_e.normalizePath=Fml;Y_e.applyEngineReport=Lml;Y_e.convertReportToRoot=Vml;var Tm=Bn(),Bxt=kW(),d4r=class{constructor(t){this.indexedFields=t,this.items=[],this.indexes={},this.clear()}clear(){this.items=[];for(let t of this.indexedFields)this.indexes[t]=new Map}insert(t){this.items.push(t);for(let r of this.indexedFields){let n=Object.hasOwn(t,r)?t[r]:void 0;if(typeof n>"u")continue;Tm.miscUtils.getArrayWithDefault(this.indexes[r],n).push(t)}return t}find(t){if(typeof t>"u")return this.items;let r=Object.entries(t);if(r.length===0)return this.items;let n=[],a;for(let[l,A]of r){let f=l,I=Object.hasOwn(this.indexes,f)?this.indexes[f]:void 0;if(typeof I>"u"){n.push([f,A]);continue}let C=new Set(I.get(A)??[]);if(C.size===0)return[];if(typeof a>"u")a=C;else for(let b of a)C.has(b)||a.delete(b);if(a.size===0)break}let o=[...a??[]];return n.length>0&&(o=o.filter(l=>{for(let[A,f]of n)if(!(typeof f<"u"?Object.hasOwn(l,A)&&l[A]===f:Object.hasOwn(l,A)===!1))return!1;return!0})),o}};Y_e.Index=d4r;var Dml=/^[0-9]+$/,kml=/^[a-zA-Z0-9_]+$/,xml=new Set(["scripts",...Tm.Manifest.allDependencies]);function Gml(e,t){return t===1&&xml.has(e[0])}function Fml(e){let t=Array.isArray(e)?e:(0,Bxt.toPath)(e);return t.map((n,a)=>Dml.test(n)?`[${n}]`:kml.test(n)&&!Gml(t,a)?`.${n}`:`[${JSON.stringify(n)}]`).join("").replace(/^\./,"")}function Zml(e,t){let r=[];if(t.methodName!==null&&r.push(Tm.formatUtils.pretty(e,t.methodName,Tm.formatUtils.Type.CODE)),t.file!==null){let n=[];n.push(Tm.formatUtils.pretty(e,t.file,Tm.formatUtils.Type.PATH)),t.line!==null&&(n.push(Tm.formatUtils.pretty(e,t.line,Tm.formatUtils.Type.NUMBER)),t.column!==null&&n.push(Tm.formatUtils.pretty(e,t.column,Tm.formatUtils.Type.NUMBER))),r.push(`(${n.join(Tm.formatUtils.pretty(e,":","grey"))})`)}return r.join(" ")}function Lml(e,{manifestUpdates:t,reportedErrors:r},{fix:n}={}){let a=new Map,o=new Map,l=[...r.keys()].map(A=>[A,new Map]);for(let[A,f]of[...l,...t]){let I=r.get(A)?.map(N=>({text:N,fixable:!1}))??[],C=!1,b=e.getWorkspaceByCwd(A),E=b.manifest.exportTo({});for(let[N,B]of f){if(B.size>1){let F=[...B].map(([Q,X])=>{let ae=Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT),ne=X.size>0?Zml(e.configuration,X.values().next().value):null;return ne!==null?` + ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);let C=[],b=!1;if(o?.includes(":")){for(let Se of r.workspaces)if(Se.manifest.scripts.has(o)&&(b=!b,b===!1))break}for(let Se of f){if(o&&!Se.manifest.scripts.has(o)&&!b&&!(await e4r.scriptUtils.getWorkspaceAccessibleBinaries(Se)).has(o)){l(`Excluding ${Se.relativeCwd} because it doesn't have a "${o}" script`);continue}if(!(o===t.env.npm_lifecycle_event&&Se.cwd===n.cwd)){if(this.include.length>0&&!G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.include)&&!G6e.default.isMatch(Se.relativeCwd,this.include)){l(`Excluding ${Se.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.exclude)||G6e.default.isMatch(Se.relativeCwd,this.exclude))){l(`Excluding ${Se.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Se.manifest.private===!0){l(`Excluding ${Se.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Se)}}if(C.sort((Se,De)=>eF.structUtils.stringifyIdent(Se.anchoredLocator).localeCompare(eF.structUtils.stringifyIdent(De.anchoredLocator))),this.dryRun)return 0;let E=this.verbose??(this.context.stdout.isTTY?1/0:0),N=E>0,B=E>1,F=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(eF.nodeUtils.availableParallelism()/2):1,Q=F===1?!1:this.parallel,X=Q?this.interlaced:!0,ae=(0,rml.default)(F),ne=new Map,ce=new Set,fe=0,ue=null,de=!1,be=await _xt.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async Se=>{let De=async(k,{commandIndex:et})=>{if(de)return-1;!Q&&B&&et>1&&Se.reportSeparator();let ct=nml(k,{configuration:t,label:N,commandIndex:et}),[Me,je]=nus(Se,{prefix:ct,interlaced:X}),[St,At]=nus(Se,{prefix:ct,interlaced:X});try{B&&Se.reportInfo(null,`${ct?`${ct} `:""}Process started`);let Yt=Date.now(),Tr=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:Me,stderr:St})||0;Me.end(),St.end(),await je,await At;let Nr=Date.now();if(B){let er=t.get("enableTimers")?`, completed in ${eF.formatUtils.pretty(t,Nr-Yt,eF.formatUtils.Type.DURATION)}`:"";Se.reportInfo(null,`${ct?`${ct} `:""}Process exited (exit code ${Tr})${er}`)}return Tr===130&&(de=!0,ue=Tr),Tr}catch(Yt){throw Me.end(),St.end(),await je,await At,Yt}};for(let k of C)ne.set(k.anchoredLocator.locatorHash,k);for(;ne.size>0&&!Se.hasErrors();){let k=[];for(let[je,St]of ne){if(ce.has(St.anchoredDescriptor.descriptorHash))continue;let At=!0;if(this.topological||this.topologicalDev){let Yt=this.topologicalDev?new Map([...St.manifest.dependencies,...St.manifest.devDependencies]):St.manifest.dependencies;for(let Tr of Yt.values()){let Nr=r.tryWorkspaceByDescriptor(Tr);if(At=Nr===null||!ne.has(Nr.anchoredLocator.locatorHash),!At)break}}if(At&&(ce.add(St.anchoredDescriptor.descriptorHash),k.push(ae(async()=>{let Yt=await De(St,{commandIndex:++fe});return ne.delete(je),ce.delete(St.anchoredDescriptor.descriptorHash),{workspace:St,exitCode:Yt}})),!Q))break}if(k.length===0){let je=Array.from(ne.values()).map(St=>eF.structUtils.prettyLocator(t,St.anchoredLocator)).join(", ");Se.reportError(_xt.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${je})`);return}let et=await Promise.all(k);et.forEach(({workspace:je,exitCode:St})=>{St!==0&&Se.reportError(_xt.MessageName.UNNAMED,`The command failed in workspace ${eF.structUtils.prettyLocator(t,je.anchoredLocator)} with exit code ${St}`)});let Me=et.map(je=>je.exitCode).find(je=>je!==0);(this.topological||this.topologicalDev)&&typeof Me<"u"&&Se.reportError(_xt.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ue!==null?ue:be.exitCode()}};nGe.paths=[["workspaces","foreach"]];nGe.usage=MR.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]});nGe.schema=[Nte.hasKeyRelationship("all",Nte.KeyRelationship.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),Nte.hasAtLeastOneKey(["all","recursive","since","worktree"],{missingIf:"undefined"})];r4r.default=nGe;function nus(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),a=new eF.miscUtils.DefaultStream;a.pipe(n,{end:!1}),a.on("finish",()=>{n.end()});let o=new Promise(A=>{n.on("finish",()=>{A(a.active)})});if(r)return[a,o];let l=new eF.miscUtils.BufferStream;return l.pipe(a,{end:!1}),l.on("finish",()=>{a.end()}),[l,o]}function nml(e,{configuration:t,commandIndex:r,label:n}){if(!n)return null;let o=`[${eF.structUtils.stringifyIdent(e.anchoredLocator)}]:`,l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[r%l.length];return eF.formatUtils.pretty(t,o,A)}});var cus=H(M_e=>{"use strict";Object.defineProperty(M_e,"__esModule",{value:!0});M_e.WorkspacesForeachCommand=M_e.WorkspacesFocusCommand=void 0;var sus=(Pa(),vi(Va)),ous=sus.__importDefault(tus());M_e.WorkspacesFocusCommand=ous.default;var aus=sus.__importDefault(ius());M_e.WorkspacesForeachCommand=aus.default;var iml={commands:[ous.default,aus.default]};M_e.default=iml});var uus=H(yxt=>{"use strict";Object.defineProperty(yxt,"__esModule",{value:!0});yxt.hasDefinitelyTyped=void 0;var sml=(Pa(),vi(Va)),lus=Bn(),oml=sml.__importDefault(LYr()),aml="e8e1bd300d860104bb8c58453ffa1eb4",cml="OFCNCOG2CU",lml=async(e,t)=>{let r=lus.structUtils.stringifyIdent(e),a=uml(t).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}};yxt.hasDefinitelyTyped=lml;var uml=e=>{let t={async send(r){try{let n=await lus.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:n.body,isTimedOut:!1,status:n.statusCode}}catch(n){return{content:n.response.body,isTimedOut:!1,status:n.response.statusCode}}}};return(0,oml.default)(cml,aml,{requester:t})}});var dus=H(i4r=>{"use strict";Object.defineProperty(i4r,"__esModule",{value:!0});var gml=(Pa(),vi(Va)),n4r=Bn(),u6=Bn(),lue=no(),gus=Axt(),Aml=gml.__importDefault(UC()),dml=uus(),Aus=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,pml=async(e,t,r,n)=>{if(r.scope==="types")return;let{project:a}=e,{configuration:o}=a;if(!(o.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(a.cwd,"tsconfig.json")))))return;let A=o.makeResolver(),f={project:a,resolver:A,report:new u6.ThrowReport};if(!await(0,dml.hasDefinitelyTyped)(r,o))return;let C=Aus(r),b=u6.structUtils.parseRange(r.range).selector;if(!u6.semverUtils.validRange(b)){let Q=o.normalizeDependency(r),X=await A.getCandidates(Q,{},f);b=u6.structUtils.parseRange(X[0].reference).selector}let E=Aml.default.coerce(b);if(E===null)return;let N=`${gus.suggestUtils.Modifier.CARET}${E.major}`,B=u6.structUtils.makeDescriptor(u6.structUtils.makeIdent("types",C),N),F=u6.miscUtils.mapAndFind(a.workspaces,Q=>{let X=Q.manifest.dependencies.get(r.identHash)?.descriptorHash,ae=Q.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(X!==r.descriptorHash&&ae!==r.descriptorHash)return u6.miscUtils.mapAndFind.skip;let ne=[];for(let ce of n4r.Manifest.allDependencies){let fe=Q.manifest[ce].get(B.identHash);typeof fe>"u"||ne.push([ce,fe])}return ne.length===0?u6.miscUtils.mapAndFind.skip:ne});if(typeof F<"u")for(let[Q,X]of F)e.manifest[Q].set(X.identHash,X);else{try{let Q=o.normalizeDependency(B);if((await A.getCandidates(Q,{},f)).length===0)return}catch{return}e.manifest[gus.suggestUtils.Target.DEVELOPMENT].set(B.identHash,B)}},fml=async(e,t,r)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n;if(!(a.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(n.cwd,"tsconfig.json")))))return;let l=Aus(r),A=u6.structUtils.makeIdent("types",l);for(let f of n4r.Manifest.allDependencies)typeof e.manifest[f].get(A.identHash)>"u"||e.manifest[f].delete(A.identHash)},Iml=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},hml={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:n4r.SettingsType.BOOLEAN,isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:pml,afterWorkspaceDependencyRemoval:fml,beforeWorkspacePacking:Iml}};i4r.default=hml});var pus=H(bxt=>{"use strict";Object.defineProperty(bxt,"__esModule",{value:!0});bxt.CATALOG_DESCRIPTOR_PREFIX=void 0;bxt.CATALOG_DESCRIPTOR_PREFIX="catalog:"});var hus=H(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});TH.resolveDescriptorFromCatalog=TH.getCatalogEntryName=TH.getCatalogName=TH.isCatalogReference=void 0;var H_e=Bn(),Ius=pus(),mml=e=>e.startsWith(Ius.CATALOG_DESCRIPTOR_PREFIX);TH.isCatalogReference=mml;var Cml=e=>e.range.slice(Ius.CATALOG_DESCRIPTOR_PREFIX.length)||null;TH.getCatalogName=Cml;var fus=e=>e===null?"default catalog":`catalog "${e}"`,_ml=e=>e.scope?`@${e.scope}/${e.name}`:e.name;TH.getCatalogEntryName=_ml;var yml=(e,t,r,n)=>{let a=(0,TH.getCatalogName)(t),o;if(a===null)o=e.configuration.get("catalog");else try{let C=e.configuration.get("catalogs");C&&(o=C.get(a))}catch{o=void 0}if(!o||o.size===0)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: ${fus(a)} not found or empty`);let l=(0,TH.getCatalogEntryName)(t),A=o.get(l);if(!A)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: entry not found in ${fus(a)}`);let f=e.configuration.normalizeDependency(H_e.structUtils.makeDescriptor(t,A));return r.supportsDescriptor(f,n)?r.bindDescriptor(f,e.topLevelWorkspace.anchoredLocator,n):f};TH.resolveDescriptorFromCatalog=yml});var mus=H(s4r=>{"use strict";Object.defineProperty(s4r,"__esModule",{value:!0});var RH=Bn(),Ext=hus(),bml={configuration:{catalog:{description:"The default catalog of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"The catalog of packages",type:RH.SettingsType.STRING}},catalogs:{description:"Named catalogs of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"A named catalog",type:RH.SettingsType.MAP,valueDefinition:{description:"Package version in the catalog",type:RH.SettingsType.STRING}}}},hooks:{beforeWorkspacePacking:(e,t)=>{let r=e.project,n=r.configuration.makeResolver(),a={project:r,resolver:n,report:new RH.ThrowReport};for(let o of RH.Manifest.allDependencies){let l=t[o];if(l)for(let[A,f]of Object.entries(l)){if(typeof f!="string"||!(0,Ext.isCatalogReference)(f))continue;let I=RH.structUtils.parseIdent(A),C=RH.structUtils.makeDescriptor(I,f),b=(0,Ext.resolveDescriptorFromCatalog)(r,C,n,a),{protocol:E,source:N,params:B,selector:F}=RH.structUtils.parseRange(RH.structUtils.convertToManifestRange(b.range));E===e.project.configuration.get("defaultProtocol")&&(E=null),l[A]=RH.structUtils.makeRange({protocol:E,source:N,params:B,selector:F})}}},reduceDependency:async(e,t,r,n,{resolver:a,resolveOptions:o})=>(0,Ext.isCatalogReference)(e.range)?(0,Ext.resolveDescriptorFromCatalog)(t,e,a,o):e}};s4r.default=bml});var Cus=H(Sxt=>{"use strict";Object.defineProperty(Sxt,"__esModule",{value:!0});Sxt.packageExtensions=void 0;var Wl={optional:!0};Sxt.packageExtensions=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Wl}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Wl,"postcss-jsx":Wl,"postcss-less":Wl,"postcss-markdown":Wl,"postcss-scss":Wl}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Wl}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Wl}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Wl,"vue-template-compiler":Wl}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Wl,"utf-8-validate":Wl}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl,"vuetify-loader":Wl}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Wl}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Wl}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Wl}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Wl,tinyliquid:Wl,"liquid-node":Wl,jade:Wl,"then-jade":Wl,dust:Wl,"dustjs-helpers":Wl,"dustjs-linkedin":Wl,swig:Wl,"swig-templates":Wl,"razor-tmpl":Wl,atpl:Wl,liquor:Wl,twig:Wl,ejs:Wl,eco:Wl,jazz:Wl,jqtpl:Wl,hamljs:Wl,hamlet:Wl,whiskers:Wl,"haml-coffee":Wl,"hogan.js":Wl,templayed:Wl,handlebars:Wl,underscore:Wl,lodash:Wl,pug:Wl,"then-pug":Wl,qejs:Wl,walrus:Wl,mustache:Wl,just:Wl,ect:Wl,mote:Wl,toffee:Wl,dot:Wl,"bracket-template":Wl,ractive:Wl,nunjucks:Wl,htmling:Wl,"babel-core":Wl,plates:Wl,"react-dom":Wl,react:Wl,"arc-templates":Wl,vash:Wl,slm:Wl,marko:Wl,teacup:Wl,"coffee-script":Wl,squirrelly:Wl,twing:Wl}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl,vue:Wl}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Wl}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Wl}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(e=>[e,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Wl,"webpack-command":Wl}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Wl}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Wl}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Wl,jimp:Wl}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Wl,"eslint-import-resolver-typescript":Wl,"eslint-import-resolver-webpack":Wl,"@typescript-eslint/parser":Wl}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Wl}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Wl}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Wl}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Wl}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Wl}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Wl}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Wl}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Wl}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Wl}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]]});var _us=H(vxt=>{"use strict";Object.defineProperty(vxt,"__esModule",{value:!0});vxt.packageExtensions=void 0;var Eml=Cus();Object.defineProperty(vxt,"packageExtensions",{enumerable:!0,get:function(){return Eml.packageExtensions}})});var yus=H(a4r=>{"use strict";Object.defineProperty(a4r,"__esModule",{value:!0});a4r.getPatch=Sml;var o4r;function Sml(){return typeof o4r>"u"&&(o4r=wt("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),o4r}});var bus=H(l4r=>{"use strict";Object.defineProperty(l4r,"__esModule",{value:!0});l4r.getPatch=vml;var c4r;function vml(){return typeof c4r>"u"&&(c4r=wt("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),c4r}});var Eus=H(g4r=>{"use strict";Object.defineProperty(g4r,"__esModule",{value:!0});g4r.getPatch=Bml;var u4r;function Bml(){return typeof u4r>"u"&&(u4r=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),u4r}});var vus=H(A4r=>{"use strict";Object.defineProperty(A4r,"__esModule",{value:!0});var Dte=Bn(),wml=_us(),Tml=yus(),Rml=bus(),Nml=Eus(),Sus=new Map([[Dte.structUtils.makeIdent(null,"fsevents").identHash,Tml.getPatch],[Dte.structUtils.makeIdent(null,"resolve").identHash,Rml.getPatch],[Dte.structUtils.makeIdent(null,"typescript").identHash,Nml.getPatch]]),Dml={hooks:{registerPackageExtensions:async(e,t)=>{for(let[r,n]of wml.packageExtensions)t(Dte.structUtils.parseDescriptor(r,!0),n)},getBuiltinPatch:async(e,t)=>{let r="compat/";if(!t.startsWith(r))return;let n=Dte.structUtils.parseIdent(t.slice(r.length)),a=Sus.get(n.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(e,t,r,n)=>typeof Sus.get(e.identHash)>"u"?e:Dte.structUtils.makeDescriptor(e,Dte.structUtils.makeRange({protocol:"patch:",source:Dte.structUtils.stringifyDescriptor(e),selector:`optional!builtin`,params:null}))}};A4r.default=Dml});var F6e=H(Y_e=>{"use strict";Object.defineProperty(Y_e,"__esModule",{value:!0});Y_e.Index=void 0;Y_e.normalizePath=Zml;Y_e.applyEngineReport=Vml;Y_e.convertReportToRoot=Pml;var Tm=Bn(),Bxt=kW(),d4r=class{constructor(t){this.indexedFields=t,this.items=[],this.indexes={},this.clear()}clear(){this.items=[];for(let t of this.indexedFields)this.indexes[t]=new Map}insert(t){this.items.push(t);for(let r of this.indexedFields){let n=Object.hasOwn(t,r)?t[r]:void 0;if(typeof n>"u")continue;Tm.miscUtils.getArrayWithDefault(this.indexes[r],n).push(t)}return t}find(t){if(typeof t>"u")return this.items;let r=Object.entries(t);if(r.length===0)return this.items;let n=[],a;for(let[l,A]of r){let f=l,I=Object.hasOwn(this.indexes,f)?this.indexes[f]:void 0;if(typeof I>"u"){n.push([f,A]);continue}let C=new Set(I.get(A)??[]);if(C.size===0)return[];if(typeof a>"u")a=C;else for(let b of a)C.has(b)||a.delete(b);if(a.size===0)break}let o=[...a??[]];return n.length>0&&(o=o.filter(l=>{for(let[A,f]of n)if(!(typeof f<"u"?Object.hasOwn(l,A)&&l[A]===f:Object.hasOwn(l,A)===!1))return!1;return!0})),o}};Y_e.Index=d4r;var kml=/^[0-9]+$/,xml=/^[a-zA-Z0-9_]+$/,Gml=new Set(["scripts",...Tm.Manifest.allDependencies]);function Fml(e,t){return t===1&&Gml.has(e[0])}function Zml(e){let t=Array.isArray(e)?e:(0,Bxt.toPath)(e);return t.map((n,a)=>kml.test(n)?`[${n}]`:xml.test(n)&&!Fml(t,a)?`.${n}`:`[${JSON.stringify(n)}]`).join("").replace(/^\./,"")}function Lml(e,t){let r=[];if(t.methodName!==null&&r.push(Tm.formatUtils.pretty(e,t.methodName,Tm.formatUtils.Type.CODE)),t.file!==null){let n=[];n.push(Tm.formatUtils.pretty(e,t.file,Tm.formatUtils.Type.PATH)),t.line!==null&&(n.push(Tm.formatUtils.pretty(e,t.line,Tm.formatUtils.Type.NUMBER)),t.column!==null&&n.push(Tm.formatUtils.pretty(e,t.column,Tm.formatUtils.Type.NUMBER))),r.push(`(${n.join(Tm.formatUtils.pretty(e,":","grey"))})`)}return r.join(" ")}function Vml(e,{manifestUpdates:t,reportedErrors:r},{fix:n}={}){let a=new Map,o=new Map,l=[...r.keys()].map(A=>[A,new Map]);for(let[A,f]of[...l,...t]){let I=r.get(A)?.map(N=>({text:N,fixable:!1}))??[],C=!1,b=e.getWorkspaceByCwd(A),E=b.manifest.exportTo({});for(let[N,B]of f){if(B.size>1){let F=[...B].map(([Q,X])=>{let ae=Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT),ne=X.size>0?Lml(e.configuration,X.values().next().value):null;return ne!==null?` ${ae} at ${ne}`:` -${ae}`}).join("");I.push({text:`Conflict detected in constraint targeting ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; conflicting values are:${F}`,fixable:!1})}else{let[[F]]=B,Q=(0,Bxt.get)(E,N);if(JSON.stringify(Q)===JSON.stringify(F))continue;if(!n){let X=typeof Q>"u"?`Missing field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}`:typeof F>"u"?`Extraneous field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)} currently set to ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`:`Invalid field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}, found ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`;I.push({text:X,fixable:!0});continue}typeof F>"u"?(0,Bxt.unset)(E,N):(0,Bxt.set)(E,N,F),C=!0}C&&a.set(b,E)}I.length>0&&o.set(b,I)}return{changedWorkspaces:a,remainingErrors:o}}function Vml(e,{configuration:t}){let r={children:[]};for(let[n,a]of e){let o=[];for(let A of a){let f=A.text.split(/\n/);A.fixable&&(f[0]=`${Tm.formatUtils.pretty(t,"\u2699","gray")} ${f[0]}`),o.push({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,f[0]),children:f.slice(1).map(I=>({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,I)}))})}let l={value:Tm.formatUtils.tuple(Tm.formatUtils.Type.LOCATOR,n.anchoredLocator),children:Tm.miscUtils.sortMap(o,A=>A.value[1])};r.children.push(l)}return r.children=Tm.miscUtils.sortMap(r.children,n=>n.value[1]),r}});var f4r=H(Txt=>{"use strict";Object.defineProperty(Txt,"__esModule",{value:!0});Txt.ModernEngine=void 0;var Pml=(Pa(),vi(Va)),YV=Bn(),wxt=Pml.__importStar(F6e()),p4r=class{constructor(t){this.project=t}createEnvironment(){let t=new wxt.Index(["cwd","ident"]),r=new wxt.Index(["workspace","type","ident"]),n=new wxt.Index(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},o=new Map,l=new Map;for(let A of this.project.storedPackages.values()){let f=Array.from(A.peerDependencies.values(),I=>[YV.structUtils.stringifyIdent(I),I.range]);o.set(A.locatorHash,{workspace:null,ident:YV.structUtils.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional!==!0)),optionalPeerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let f=o.get(A.locatorHash);f.dependencies=new Map(Array.from(A.dependencies.values(),I=>{let C=this.project.storedResolutions.get(I.descriptorHash);if(typeof C>"u")throw new Error("Assertion failed: The resolution should have been registered");let b=o.get(C);if(typeof b>"u")throw new Error("Assertion failed: The package should have been registered");return[YV.structUtils.stringifyIdent(I),b]})),f.dependencies.delete(f.ident)}for(let A of this.project.workspaces){let f=YV.structUtils.stringifyIdent(A.anchoredLocator),I=A.manifest.exportTo({}),C=o.get(A.anchoredLocator.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");let b=(F,Q,{caller:X=YV.nodeUtils.getCaller()}={})=>{let ae=wxt.normalizePath(F),ne=YV.miscUtils.getMapWithDefault(a.manifestUpdates,A.cwd),ce=YV.miscUtils.getMapWithDefault(ne,ae),fe=YV.miscUtils.getSetWithDefault(ce,Q);X!==null&&fe.add(X)},E=F=>b(F,void 0,{caller:YV.nodeUtils.getCaller()}),N=F=>{YV.miscUtils.getArrayWithDefault(a.reportedErrors,A.cwd).push(F)},B=t.insert({cwd:A.relativeCwd,ident:f,manifest:I,pkg:C,set:b,unset:E,error:N});l.set(A,B);for(let F of YV.Manifest.allDependencies)for(let Q of A.manifest[F].values()){let X=YV.structUtils.stringifyIdent(Q),ae=()=>{b([F,X],void 0,{caller:YV.nodeUtils.getCaller()})},ne=fe=>{b([F,X],fe,{caller:YV.nodeUtils.getCaller()})},ce=null;if(F!=="peerDependencies"&&(F!=="dependencies"||!A.manifest.devDependencies.has(Q.identHash))){let fe=A.anchoredPackage.dependencies.get(Q.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let de=o.get(ue);if(typeof de>"u")throw new Error("Assertion failed: The package should have been registered");ce=de}}r.insert({workspace:B,ident:X,range:Q.range,type:F,resolution:ce,update:ne,delete:ae,error:N})}}for(let A of this.project.storedPackages.values()){let f=this.project.tryWorkspaceByLocator(A);if(!f)continue;let I=l.get(f);if(typeof I>"u")throw new Error("Assertion failed: The workspace should have been registered");let C=o.get(A.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");C.workspace=I}return{workspaces:t,dependencies:r,packages:n,result:a}}async process(){let t=this.createEnvironment(),r={Yarn:{workspace:a=>t.workspaces.find(a)[0]??null,workspaces:a=>t.workspaces.find(a),dependency:a=>t.dependencies.find(a)[0]??null,dependencies:a=>t.dependencies.find(a),package:a=>t.packages.find(a)[0]??null,packages:a=>t.packages.find(a)}},n=await this.project.loadUserConfig();return n?.constraints?(await n.constraints(r),t.result):null}};Txt.ModernEngine=p4r});var Bus=H((wtg,I4r)=>{var Wml;(function(e){var t=function(){return{"append/2":[new e.type.Rule(new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("L")]),new e.type.Term("foldl",[new e.type.Term("append",[]),new e.type.Var("X"),new e.type.Term("[]",[]),new e.type.Var("L")]))],"append/3":[new e.type.Rule(new e.type.Term("append",[new e.type.Term("[]",[]),new e.type.Var("X"),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("append",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("append",[new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("S")]))],"member/2":[new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("_")])]),null),new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")])]),new e.type.Term("member",[new e.type.Var("X"),new e.type.Var("Xs")]))],"permutation/2":[new e.type.Rule(new e.type.Term("permutation",[new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("permutation",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("permutation",[new e.type.Var("T"),new e.type.Var("P")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("P")]),new e.type.Term("append",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("Y")]),new e.type.Var("S")])])]))],"maplist/2":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("X")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("Xs")])]))],"maplist/3":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs")])]))],"maplist/4":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs")])]))],"maplist/5":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds")])]))],"maplist/6":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es")])]))],"maplist/7":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs")])]))],"maplist/8":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")]),new e.type.Term(".",[new e.type.Var("G"),new e.type.Var("Gs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F"),new e.type.Var("G")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs"),new e.type.Var("Gs")])]))],"include/3":[new e.type.Rule(new e.type.Term("include",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("include",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("A")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("A"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("F"),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("F")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("L"),new e.type.Var("S")])]),new e.type.Term("include",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("S")])])])])]))],"exclude/3":[new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("E")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("Q")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("R"),new e.type.Var("Q")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("!",[]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("E")])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("E")])])])])])])]))],"foldl/4":[new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Var("I"),new e.type.Var("I")]),null),new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("I"),new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("I"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])])])]),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P2"),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P2")]),new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("R")])])])])]))],"select/3":[new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Xs")]),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term("select",[new e.type.Var("E"),new e.type.Var("Xs"),new e.type.Var("Ys")]))],"sum_list/2":[new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term("[]",[]),new e.type.Num(0,!1)]),null),new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("sum_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("+",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"max_list/2":[new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("max_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"min_list/2":[new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("min_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("=<",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"prod_list/2":[new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term("[]",[]),new e.type.Num(1,!1)]),null),new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("prod_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("*",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"last/2":[new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")]),new e.type.Var("X")]),new e.type.Term("last",[new e.type.Var("Xs"),new e.type.Var("X")]))],"prefix/2":[new e.type.Rule(new e.type.Term("prefix",[new e.type.Var("Part"),new e.type.Var("Whole")]),new e.type.Term("append",[new e.type.Var("Part"),new e.type.Var("_"),new e.type.Var("Whole")]))],"nth0/3":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth1/3":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth0/4":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth1/4":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth/5":[new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("N"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("X"),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("O"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("Y"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term(",",[new e.type.Term("is",[new e.type.Var("M"),new e.type.Term("+",[new e.type.Var("N"),new e.type.Num(1,!1)])]),new e.type.Term("nth",[new e.type.Var("M"),new e.type.Var("O"),new e.type.Var("Xs"),new e.type.Var("Y"),new e.type.Var("Ys")])]))],"length/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(!e.type.is_variable(A)&&!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(e.type.is_integer(A)&&A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else{var f=new e.type.Term("length",[l,new e.type.Num(0,!1),A]);e.type.is_integer(A)&&(f=new e.type.Term(",",[f,new e.type.Term("!",[])])),n.prepend([new e.type.State(a.goal.replace(f),a.substitution,a)])}},"length/3":[new e.type.Rule(new e.type.Term("length",[new e.type.Term("[]",[]),new e.type.Var("N"),new e.type.Var("N")]),null),new e.type.Rule(new e.type.Term("length",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("X")]),new e.type.Var("A"),new e.type.Var("N")]),new e.type.Term(",",[new e.type.Term("succ",[new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("length",[new e.type.Var("X"),new e.type.Var("B"),new e.type.Var("N")])]))],"replicate/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=new e.type.Term("[]"),C=0;C0;b--)C[b].equals(C[b-1])&&C.splice(b,1);for(var E=new e.type.Term("[]"),b=C.length-1;b>=0;b--)E=new e.type.Term(".",[C[b],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"msort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I=l;I.indicator==="./2";)f.push(I.args[0]),I=I.args[1];if(e.type.is_variable(I))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(I))n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=f.sort(e.compare),b=new e.type.Term("[]"),E=C.length-1;E>=0;E--)b=new e.type.Term(".",[C[E],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,A])),a.substitution,a)])}}},"keysort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I,C=l;C.indicator==="./2";){if(I=C.args[0],e.type.is_variable(I)){n.throw_error(e.error.instantiation(o.indicator));return}else if(!e.type.is_term(I)||I.indicator!=="-/2"){n.throw_error(e.error.type("pair",I,o.indicator));return}I.args[0].pair=I.args[1],f.push(I.args[0]),C=C.args[1]}if(e.type.is_variable(C))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(C))n.throw_error(e.error.type("list",l,o.indicator));else{for(var b=f.sort(e.compare),E=new e.type.Term("[]"),N=b.length-1;N>=0;N--)E=new e.type.Term(".",[new e.type.Term("-",[b[N],b[N].pair]),E]),delete b[N].pair;n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"take/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;if(I===0){for(var E=new e.type.Term("[]"),I=C.length-1;I>=0;I--)E=new e.type.Term(".",[C[I],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,f])),a.substitution,a)])}}},"drop/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;I===0&&n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f])),a.substitution,a)])}},"reverse/2":function(n,a,o){var l=o.args[0],A=o.args[1],f=e.type.is_instantiated_list(l),I=e.type.is_instantiated_list(A);if(e.type.is_variable(l)&&e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(l)&&!e.type.is_fully_list(l))n.throw_error(e.error.type("list",l,o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!f&&!I)n.throw_error(e.error.instantiation(o.indicator));else{for(var C=f?l:A,b=new e.type.Term("[]",[]);C.indicator==="./2";)b=new e.type.Term(".",[C.args[0],b]),C=C.args[1];n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f?A:l])),a.substitution,a)])}},"list_to_set/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else{for(var f=l,I=[];f.indicator==="./2";)I.push(f.args[0]),f=f.args[1];if(e.type.is_variable(f))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_term(f)||f.indicator!=="[]/0")n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=[],b=new e.type.Term("[]",[]),E,N=0;N=0;N--)b=new e.type.Term(".",[C[N],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[A,b])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof I4r<"u"?I4r.exports=function(n){e=n,new e.type.Module("lists",t(),r)}:new e.type.Module("lists",t(),r)})(Wml)});var Ous=H(wh=>{"use strict";var X_e=process.platform==="win32",h4r="aes-256-cbc",Oml="sha256",Rus="The current environment doesn't support interactive reading from TTY.",Ab=wt("fs"),wus=process.binding("tty_wrap").TTY,C4r=wt("child_process"),gue=wt("path"),_4r={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},kte="none",Y4,iGe,Tus=!1,uue,Rxt,m4r,Mml=0,v4r="",Q_e=[],Nxt,Nus=!1,y4r=!1,Z6e=!1;function Dus(e){function t(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(n){return"#"+n.charCodeAt(0)+";"})}return Rxt.concat(function(r){var n=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?e[a]&&n.push("--"+a):r[a]==="string"&&e[a]&&n.push("--"+a,t(e[a]))}),n}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Hml(e,t){function r(X){var ae,ne="",ce;for(m4r=m4r||wt("os").tmpdir();;){ae=gue.join(m4r,X+ne);try{ce=Ab.openSync(ae,"wx")}catch(fe){if(fe.code==="EEXIST"){ne++;continue}else throw fe}Ab.closeSync(ce);break}return ae}var n,a,o,l={},A,f,I=r("readline-sync.stdout"),C=r("readline-sync.stderr"),b=r("readline-sync.exit"),E=r("readline-sync.done"),N=wt("crypto"),B,F,Q;B=N.createHash(Oml),B.update(""+process.pid+Mml+++Math.random()),Q=B.digest("hex"),F=N.createDecipher(h4r,Q),n=Dus(e),X_e?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',o=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+uue+"%Q%"+n.map(function(X){return" %Q%"+X+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+b+"%Q%%Q%) 2>%Q%"+C+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+h4r+"%Q% %Q%"+Q+"%Q% >%Q%"+I+"%Q% & (echo 1)>%Q%"+E+"%Q%"]):(a="/bin/sh",o=["-c",'("'+uue+'"'+n.map(function(X){return" '"+X.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+b+'") 2>"'+C+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+h4r+'" "'+Q+'" >"'+I+'"; echo 1 >"'+E+'"']),Z6e&&Z6e("_execFileSync",n);try{C4r.spawn(a,o,t)}catch(X){l.error=new Error(X.message),l.error.method="_execFileSync - spawn",l.error.program=a,l.error.args=o}for(;Ab.readFileSync(E,{encoding:e.encoding}).trim()!=="1";);return(A=Ab.readFileSync(b,{encoding:e.encoding}).trim())==="0"?l.input=F.update(Ab.readFileSync(I,{encoding:"binary"}),"hex",e.encoding)+F.final(e.encoding):(f=Ab.readFileSync(C,{encoding:e.encoding}).trim(),l.error=new Error(Rus+(f?` -`+f:"")),l.error.method="_execFileSync",l.error.program=a,l.error.args=o,l.error.extMessage=f,l.error.exitCode=+A),Ab.unlinkSync(I),Ab.unlinkSync(C),Ab.unlinkSync(b),Ab.unlinkSync(E),l}function Yml(e){var t,r={},n,a={env:process.env,encoding:e.encoding};if(uue||(X_e?process.env.PSModulePath?(uue="powershell.exe",Rxt=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(uue="cscript.exe",Rxt=["//nologo",__dirname+"\\read.cs.js"]):(uue="/bin/sh",Rxt=[__dirname+"/read.sh"])),X_e&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),C4r.execFileSync){t=Dus(e),Z6e&&Z6e("execFileSync",t);try{r.input=C4r.execFileSync(uue,t,a)}catch(o){n=o.stderr?(o.stderr+"").trim():"",r.error=new Error(Rus+(n?` -`+n:"")),r.error.method="execFileSync",r.error.program=uue,r.error.args=t,r.error.extMessage=n,r.error.exitCode=o.status,r.error.code=o.code,r.error.signal=o.signal}}else r=Hml(e,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),e.display=""),r}function b4r(e){var t="",r=e.display,n=!e.display&&e.keyIn&&e.hideEchoBack&&!e.mask;function a(){var o=Yml(e);if(o.error)throw o.error;return o.input}return y4r&&y4r(e),function(){var o,l,A;function f(){return o||(o=process.binding("fs"),l=process.binding("constants")),o}if(typeof kte=="string")if(kte=null,X_e){if(A=function(I){var C=I.replace(/^\D+/,"").split("."),b=0;return(C[0]=+C[0])&&(b+=C[0]*1e4),(C[1]=+C[1])&&(b+=C[1]*100),(C[2]=+C[2])&&(b+=C[2]),b}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),kte=process.stdin.fd,iGe=process.stdin._handle;else try{kte=f().open("CONIN$",l.O_RDWR,parseInt("0666",8)),iGe=new wus(kte,!0)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else{try{Y4=Ab.openSync("\\\\.\\CON","w")}catch{}if(typeof Y4!="number")try{Y4=f().open("CONOUT$",l.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{kte=Ab.openSync("/dev/tty","r"),iGe=process.stdin._handle}catch{}}else try{kte=Ab.openSync("/dev/tty","r"),iGe=new wus(kte,!1)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else try{Y4=Ab.openSync("/dev/tty","w")}catch{}}}(),function(){var o,l,A=!e.hideEchoBack&&!e.keyIn,f,I,C,b,E;Nxt="";function N(B){return B===Tus?!0:iGe.setRawMode(B)!==0?!1:(Tus=B,!0)}if(Nus||!iGe||typeof Y4!="number"&&(e.display||!A)){t=a();return}if(e.display&&(Ab.writeSync(Y4,e.display),e.display=""),!e.displayOnly){if(!N(!A)){t=a();return}for(I=e.keyIn?1:e.bufferSize,f=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(I):new Buffer(I),e.keyIn&&e.limit&&(l=new RegExp("[^"+e.limit+"]","g"+(e.caseSensitive?"":"i")));;){C=0;try{C=Ab.readSync(kte,f,0,I)}catch(B){if(B.code!=="EOF"){N(!1),t+=a();return}}if(C>0?(b=f.toString(e.encoding,0,C),Nxt+=b):(b=` +${ae}`}).join("");I.push({text:`Conflict detected in constraint targeting ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; conflicting values are:${F}`,fixable:!1})}else{let[[F]]=B,Q=(0,Bxt.get)(E,N);if(JSON.stringify(Q)===JSON.stringify(F))continue;if(!n){let X=typeof Q>"u"?`Missing field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}`:typeof F>"u"?`Extraneous field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)} currently set to ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`:`Invalid field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}, found ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`;I.push({text:X,fixable:!0});continue}typeof F>"u"?(0,Bxt.unset)(E,N):(0,Bxt.set)(E,N,F),C=!0}C&&a.set(b,E)}I.length>0&&o.set(b,I)}return{changedWorkspaces:a,remainingErrors:o}}function Pml(e,{configuration:t}){let r={children:[]};for(let[n,a]of e){let o=[];for(let A of a){let f=A.text.split(/\n/);A.fixable&&(f[0]=`${Tm.formatUtils.pretty(t,"\u2699","gray")} ${f[0]}`),o.push({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,f[0]),children:f.slice(1).map(I=>({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,I)}))})}let l={value:Tm.formatUtils.tuple(Tm.formatUtils.Type.LOCATOR,n.anchoredLocator),children:Tm.miscUtils.sortMap(o,A=>A.value[1])};r.children.push(l)}return r.children=Tm.miscUtils.sortMap(r.children,n=>n.value[1]),r}});var f4r=H(Txt=>{"use strict";Object.defineProperty(Txt,"__esModule",{value:!0});Txt.ModernEngine=void 0;var Wml=(Pa(),vi(Va)),YV=Bn(),wxt=Wml.__importStar(F6e()),p4r=class{constructor(t){this.project=t}createEnvironment(){let t=new wxt.Index(["cwd","ident"]),r=new wxt.Index(["workspace","type","ident"]),n=new wxt.Index(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},o=new Map,l=new Map;for(let A of this.project.storedPackages.values()){let f=Array.from(A.peerDependencies.values(),I=>[YV.structUtils.stringifyIdent(I),I.range]);o.set(A.locatorHash,{workspace:null,ident:YV.structUtils.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional!==!0)),optionalPeerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let f=o.get(A.locatorHash);f.dependencies=new Map(Array.from(A.dependencies.values(),I=>{let C=this.project.storedResolutions.get(I.descriptorHash);if(typeof C>"u")throw new Error("Assertion failed: The resolution should have been registered");let b=o.get(C);if(typeof b>"u")throw new Error("Assertion failed: The package should have been registered");return[YV.structUtils.stringifyIdent(I),b]})),f.dependencies.delete(f.ident)}for(let A of this.project.workspaces){let f=YV.structUtils.stringifyIdent(A.anchoredLocator),I=A.manifest.exportTo({}),C=o.get(A.anchoredLocator.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");let b=(F,Q,{caller:X=YV.nodeUtils.getCaller()}={})=>{let ae=wxt.normalizePath(F),ne=YV.miscUtils.getMapWithDefault(a.manifestUpdates,A.cwd),ce=YV.miscUtils.getMapWithDefault(ne,ae),fe=YV.miscUtils.getSetWithDefault(ce,Q);X!==null&&fe.add(X)},E=F=>b(F,void 0,{caller:YV.nodeUtils.getCaller()}),N=F=>{YV.miscUtils.getArrayWithDefault(a.reportedErrors,A.cwd).push(F)},B=t.insert({cwd:A.relativeCwd,ident:f,manifest:I,pkg:C,set:b,unset:E,error:N});l.set(A,B);for(let F of YV.Manifest.allDependencies)for(let Q of A.manifest[F].values()){let X=YV.structUtils.stringifyIdent(Q),ae=()=>{b([F,X],void 0,{caller:YV.nodeUtils.getCaller()})},ne=fe=>{b([F,X],fe,{caller:YV.nodeUtils.getCaller()})},ce=null;if(F!=="peerDependencies"&&(F!=="dependencies"||!A.manifest.devDependencies.has(Q.identHash))){let fe=A.anchoredPackage.dependencies.get(Q.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let de=o.get(ue);if(typeof de>"u")throw new Error("Assertion failed: The package should have been registered");ce=de}}r.insert({workspace:B,ident:X,range:Q.range,type:F,resolution:ce,update:ne,delete:ae,error:N})}}for(let A of this.project.storedPackages.values()){let f=this.project.tryWorkspaceByLocator(A);if(!f)continue;let I=l.get(f);if(typeof I>"u")throw new Error("Assertion failed: The workspace should have been registered");let C=o.get(A.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");C.workspace=I}return{workspaces:t,dependencies:r,packages:n,result:a}}async process(){let t=this.createEnvironment(),r={Yarn:{workspace:a=>t.workspaces.find(a)[0]??null,workspaces:a=>t.workspaces.find(a),dependency:a=>t.dependencies.find(a)[0]??null,dependencies:a=>t.dependencies.find(a),package:a=>t.packages.find(a)[0]??null,packages:a=>t.packages.find(a)}},n=await this.project.loadUserConfig();return n?.constraints?(await n.constraints(r),t.result):null}};Txt.ModernEngine=p4r});var Bus=H((Ttg,I4r)=>{var Oml;(function(e){var t=function(){return{"append/2":[new e.type.Rule(new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("L")]),new e.type.Term("foldl",[new e.type.Term("append",[]),new e.type.Var("X"),new e.type.Term("[]",[]),new e.type.Var("L")]))],"append/3":[new e.type.Rule(new e.type.Term("append",[new e.type.Term("[]",[]),new e.type.Var("X"),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("append",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("append",[new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("S")]))],"member/2":[new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("_")])]),null),new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")])]),new e.type.Term("member",[new e.type.Var("X"),new e.type.Var("Xs")]))],"permutation/2":[new e.type.Rule(new e.type.Term("permutation",[new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("permutation",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("permutation",[new e.type.Var("T"),new e.type.Var("P")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("P")]),new e.type.Term("append",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("Y")]),new e.type.Var("S")])])]))],"maplist/2":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("X")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("Xs")])]))],"maplist/3":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs")])]))],"maplist/4":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs")])]))],"maplist/5":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds")])]))],"maplist/6":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es")])]))],"maplist/7":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs")])]))],"maplist/8":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")]),new e.type.Term(".",[new e.type.Var("G"),new e.type.Var("Gs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F"),new e.type.Var("G")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs"),new e.type.Var("Gs")])]))],"include/3":[new e.type.Rule(new e.type.Term("include",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("include",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("A")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("A"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("F"),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("F")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("L"),new e.type.Var("S")])]),new e.type.Term("include",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("S")])])])])]))],"exclude/3":[new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("E")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("Q")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("R"),new e.type.Var("Q")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("!",[]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("E")])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("E")])])])])])])]))],"foldl/4":[new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Var("I"),new e.type.Var("I")]),null),new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("I"),new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("I"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])])])]),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P2"),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P2")]),new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("R")])])])])]))],"select/3":[new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Xs")]),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term("select",[new e.type.Var("E"),new e.type.Var("Xs"),new e.type.Var("Ys")]))],"sum_list/2":[new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term("[]",[]),new e.type.Num(0,!1)]),null),new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("sum_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("+",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"max_list/2":[new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("max_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"min_list/2":[new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("min_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("=<",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"prod_list/2":[new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term("[]",[]),new e.type.Num(1,!1)]),null),new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("prod_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("*",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"last/2":[new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")]),new e.type.Var("X")]),new e.type.Term("last",[new e.type.Var("Xs"),new e.type.Var("X")]))],"prefix/2":[new e.type.Rule(new e.type.Term("prefix",[new e.type.Var("Part"),new e.type.Var("Whole")]),new e.type.Term("append",[new e.type.Var("Part"),new e.type.Var("_"),new e.type.Var("Whole")]))],"nth0/3":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth1/3":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth0/4":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth1/4":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth/5":[new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("N"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("X"),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("O"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("Y"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term(",",[new e.type.Term("is",[new e.type.Var("M"),new e.type.Term("+",[new e.type.Var("N"),new e.type.Num(1,!1)])]),new e.type.Term("nth",[new e.type.Var("M"),new e.type.Var("O"),new e.type.Var("Xs"),new e.type.Var("Y"),new e.type.Var("Ys")])]))],"length/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(!e.type.is_variable(A)&&!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(e.type.is_integer(A)&&A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else{var f=new e.type.Term("length",[l,new e.type.Num(0,!1),A]);e.type.is_integer(A)&&(f=new e.type.Term(",",[f,new e.type.Term("!",[])])),n.prepend([new e.type.State(a.goal.replace(f),a.substitution,a)])}},"length/3":[new e.type.Rule(new e.type.Term("length",[new e.type.Term("[]",[]),new e.type.Var("N"),new e.type.Var("N")]),null),new e.type.Rule(new e.type.Term("length",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("X")]),new e.type.Var("A"),new e.type.Var("N")]),new e.type.Term(",",[new e.type.Term("succ",[new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("length",[new e.type.Var("X"),new e.type.Var("B"),new e.type.Var("N")])]))],"replicate/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=new e.type.Term("[]"),C=0;C0;b--)C[b].equals(C[b-1])&&C.splice(b,1);for(var E=new e.type.Term("[]"),b=C.length-1;b>=0;b--)E=new e.type.Term(".",[C[b],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"msort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I=l;I.indicator==="./2";)f.push(I.args[0]),I=I.args[1];if(e.type.is_variable(I))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(I))n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=f.sort(e.compare),b=new e.type.Term("[]"),E=C.length-1;E>=0;E--)b=new e.type.Term(".",[C[E],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,A])),a.substitution,a)])}}},"keysort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I,C=l;C.indicator==="./2";){if(I=C.args[0],e.type.is_variable(I)){n.throw_error(e.error.instantiation(o.indicator));return}else if(!e.type.is_term(I)||I.indicator!=="-/2"){n.throw_error(e.error.type("pair",I,o.indicator));return}I.args[0].pair=I.args[1],f.push(I.args[0]),C=C.args[1]}if(e.type.is_variable(C))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(C))n.throw_error(e.error.type("list",l,o.indicator));else{for(var b=f.sort(e.compare),E=new e.type.Term("[]"),N=b.length-1;N>=0;N--)E=new e.type.Term(".",[new e.type.Term("-",[b[N],b[N].pair]),E]),delete b[N].pair;n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"take/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;if(I===0){for(var E=new e.type.Term("[]"),I=C.length-1;I>=0;I--)E=new e.type.Term(".",[C[I],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,f])),a.substitution,a)])}}},"drop/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;I===0&&n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f])),a.substitution,a)])}},"reverse/2":function(n,a,o){var l=o.args[0],A=o.args[1],f=e.type.is_instantiated_list(l),I=e.type.is_instantiated_list(A);if(e.type.is_variable(l)&&e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(l)&&!e.type.is_fully_list(l))n.throw_error(e.error.type("list",l,o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!f&&!I)n.throw_error(e.error.instantiation(o.indicator));else{for(var C=f?l:A,b=new e.type.Term("[]",[]);C.indicator==="./2";)b=new e.type.Term(".",[C.args[0],b]),C=C.args[1];n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f?A:l])),a.substitution,a)])}},"list_to_set/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else{for(var f=l,I=[];f.indicator==="./2";)I.push(f.args[0]),f=f.args[1];if(e.type.is_variable(f))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_term(f)||f.indicator!=="[]/0")n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=[],b=new e.type.Term("[]",[]),E,N=0;N=0;N--)b=new e.type.Term(".",[C[N],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[A,b])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof I4r<"u"?I4r.exports=function(n){e=n,new e.type.Module("lists",t(),r)}:new e.type.Module("lists",t(),r)})(Oml)});var Ous=H(wh=>{"use strict";var X_e=process.platform==="win32",h4r="aes-256-cbc",Mml="sha256",Rus="The current environment doesn't support interactive reading from TTY.",Ab=wt("fs"),wus=process.binding("tty_wrap").TTY,C4r=wt("child_process"),gue=wt("path"),_4r={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},kte="none",Y4,iGe,Tus=!1,uue,Rxt,m4r,Hml=0,v4r="",Q_e=[],Nxt,Nus=!1,y4r=!1,Z6e=!1;function Dus(e){function t(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(n){return"#"+n.charCodeAt(0)+";"})}return Rxt.concat(function(r){var n=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?e[a]&&n.push("--"+a):r[a]==="string"&&e[a]&&n.push("--"+a,t(e[a]))}),n}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Yml(e,t){function r(X){var ae,ne="",ce;for(m4r=m4r||wt("os").tmpdir();;){ae=gue.join(m4r,X+ne);try{ce=Ab.openSync(ae,"wx")}catch(fe){if(fe.code==="EEXIST"){ne++;continue}else throw fe}Ab.closeSync(ce);break}return ae}var n,a,o,l={},A,f,I=r("readline-sync.stdout"),C=r("readline-sync.stderr"),b=r("readline-sync.exit"),E=r("readline-sync.done"),N=wt("crypto"),B,F,Q;B=N.createHash(Mml),B.update(""+process.pid+Hml+++Math.random()),Q=B.digest("hex"),F=N.createDecipher(h4r,Q),n=Dus(e),X_e?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',o=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+uue+"%Q%"+n.map(function(X){return" %Q%"+X+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+b+"%Q%%Q%) 2>%Q%"+C+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+h4r+"%Q% %Q%"+Q+"%Q% >%Q%"+I+"%Q% & (echo 1)>%Q%"+E+"%Q%"]):(a="/bin/sh",o=["-c",'("'+uue+'"'+n.map(function(X){return" '"+X.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+b+'") 2>"'+C+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+h4r+'" "'+Q+'" >"'+I+'"; echo 1 >"'+E+'"']),Z6e&&Z6e("_execFileSync",n);try{C4r.spawn(a,o,t)}catch(X){l.error=new Error(X.message),l.error.method="_execFileSync - spawn",l.error.program=a,l.error.args=o}for(;Ab.readFileSync(E,{encoding:e.encoding}).trim()!=="1";);return(A=Ab.readFileSync(b,{encoding:e.encoding}).trim())==="0"?l.input=F.update(Ab.readFileSync(I,{encoding:"binary"}),"hex",e.encoding)+F.final(e.encoding):(f=Ab.readFileSync(C,{encoding:e.encoding}).trim(),l.error=new Error(Rus+(f?` +`+f:"")),l.error.method="_execFileSync",l.error.program=a,l.error.args=o,l.error.extMessage=f,l.error.exitCode=+A),Ab.unlinkSync(I),Ab.unlinkSync(C),Ab.unlinkSync(b),Ab.unlinkSync(E),l}function Qml(e){var t,r={},n,a={env:process.env,encoding:e.encoding};if(uue||(X_e?process.env.PSModulePath?(uue="powershell.exe",Rxt=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(uue="cscript.exe",Rxt=["//nologo",__dirname+"\\read.cs.js"]):(uue="/bin/sh",Rxt=[__dirname+"/read.sh"])),X_e&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),C4r.execFileSync){t=Dus(e),Z6e&&Z6e("execFileSync",t);try{r.input=C4r.execFileSync(uue,t,a)}catch(o){n=o.stderr?(o.stderr+"").trim():"",r.error=new Error(Rus+(n?` +`+n:"")),r.error.method="execFileSync",r.error.program=uue,r.error.args=t,r.error.extMessage=n,r.error.exitCode=o.status,r.error.code=o.code,r.error.signal=o.signal}}else r=Yml(e,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),e.display=""),r}function b4r(e){var t="",r=e.display,n=!e.display&&e.keyIn&&e.hideEchoBack&&!e.mask;function a(){var o=Qml(e);if(o.error)throw o.error;return o.input}return y4r&&y4r(e),function(){var o,l,A;function f(){return o||(o=process.binding("fs"),l=process.binding("constants")),o}if(typeof kte=="string")if(kte=null,X_e){if(A=function(I){var C=I.replace(/^\D+/,"").split("."),b=0;return(C[0]=+C[0])&&(b+=C[0]*1e4),(C[1]=+C[1])&&(b+=C[1]*100),(C[2]=+C[2])&&(b+=C[2]),b}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),kte=process.stdin.fd,iGe=process.stdin._handle;else try{kte=f().open("CONIN$",l.O_RDWR,parseInt("0666",8)),iGe=new wus(kte,!0)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else{try{Y4=Ab.openSync("\\\\.\\CON","w")}catch{}if(typeof Y4!="number")try{Y4=f().open("CONOUT$",l.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{kte=Ab.openSync("/dev/tty","r"),iGe=process.stdin._handle}catch{}}else try{kte=Ab.openSync("/dev/tty","r"),iGe=new wus(kte,!1)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else try{Y4=Ab.openSync("/dev/tty","w")}catch{}}}(),function(){var o,l,A=!e.hideEchoBack&&!e.keyIn,f,I,C,b,E;Nxt="";function N(B){return B===Tus?!0:iGe.setRawMode(B)!==0?!1:(Tus=B,!0)}if(Nus||!iGe||typeof Y4!="number"&&(e.display||!A)){t=a();return}if(e.display&&(Ab.writeSync(Y4,e.display),e.display=""),!e.displayOnly){if(!N(!A)){t=a();return}for(I=e.keyIn?1:e.bufferSize,f=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(I):new Buffer(I),e.keyIn&&e.limit&&(l=new RegExp("[^"+e.limit+"]","g"+(e.caseSensitive?"":"i")));;){C=0;try{C=Ab.readSync(kte,f,0,I)}catch(B){if(B.code!=="EOF"){N(!1),t+=a();return}}if(C>0?(b=f.toString(e.encoding,0,C),Nxt+=b):(b=` `,Nxt+="\0"),b&&typeof(E=(b.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(b=E,o=!0),b&&(b=b.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),b&&l&&(b=b.replace(l,"")),b&&(A||(e.hideEchoBack?e.mask&&Ab.writeSync(Y4,new Array(b.length+1).join(e.mask)):Ab.writeSync(Y4,b)),t+=b),!e.keyIn&&o||e.keyIn&&t.length>=I)break}!A&&!n&&Ab.writeSync(Y4,` `),N(!1)}}(),e.print&&!n&&e.print(r+(e.displayOnly?"":(e.hideEchoBack?new Array(t.length+1).join(e.mask):t)+` -`),e.encoding),e.displayOnly?"":v4r=e.keepWhitespace||e.keyIn?t:t.trim()}function Qml(e,t){var r=[];function n(a){a!=null&&(Array.isArray(a)?a.forEach(n):(!t||t(a))&&r.push(a))}return n(e),r}function B4r(e){return e.replace(/[\x00-\x7f]/g,function(t){return"\\x"+("00"+t.charCodeAt().toString(16)).substr(-2)})}function _D(){var e=Array.prototype.slice.call(arguments),t,r;return e.length&&typeof e[0]=="boolean"&&(r=e.shift(),r&&(t=Object.keys(_4r),e.unshift(_4r))),e.reduce(function(n,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(t=Object.keys(a)),t.forEach(function(o){var l;if(a.hasOwnProperty(o))switch(l=a[o],o){case"mask":case"limitMessage":case"defaultInput":case"encoding":l=l!=null?l+"":"",l&&o!=="limitMessage"&&(l=l.replace(/[\r\n]/g,"")),n[o]=l;break;case"bufferSize":!isNaN(l=parseInt(l,10))&&typeof l=="number"&&(n[o]=l);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":n[o]=!!l;break;case"limit":case"trueValue":case"falseValue":n[o]=Qml(l,function(A){var f=typeof A;return f==="string"||f==="number"||f==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":n[o]=typeof l=="function"?l:void 0;break;case"prompt":case"display":n[o]=l??"";break}})),n},{})}function E4r(e,t,r){return t.some(function(n){var a=typeof n;return a==="string"?r?e===n:e.toLowerCase()===n.toLowerCase():a==="number"?parseFloat(e)===n:a==="function"?n(e):n instanceof RegExp?n.test(e):!1})}function w4r(e,t){var r=gue.normalize(X_e?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return e=gue.normalize(e),t?e.replace(/^~(?=\/|\\|$)/,r):e.replace(new RegExp("^"+B4r(r)+"(?=\\/|\\\\|$)",X_e?"i":""),"~")}function sGe(e,t){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",n=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function o(l,A,f,I,C,b){var E;return A||typeof(E=t(C))!="string"?f:E?(I||"")+E+(b||""):""}return e.replace(n,o).replace(a,o)}function kus(e,t,r){var n,a=[],o=-1,l=0,A="",f;function I(C,b){return b.length>3?(C.push(b[0]+"..."+b[b.length-1]),f=!0):b.length&&(C=C.concat(b)),C}return n=e.reduce(function(C,b){return C.concat((b+"").split(""))},[]).reduce(function(C,b){var E,N;return t||(b=b.toLowerCase()),E=/^\d$/.test(b)?1:/^[A-Z]$/.test(b)?2:/^[a-z]$/.test(b)?3:0,r&&E===0?A+=b:(N=b.charCodeAt(0),E&&E===o&&N===l+1?a.push(b):(C=I(C,a),a=[b],o=E),l=N),C},[]),n=I(n,a),A&&(n.push(A),f=!0),{values:n,suppressed:f}}function xus(e,t){return e.join(e.length>2?", ":t?" / ":"/")}function Gus(e,t){var r,n,a={},o;if(t.phContent&&(r=t.phContent(e,t)),typeof r!="string")switch(e){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=t.hasOwnProperty(e)?typeof t[e]=="boolean"?t[e]?"on":"off":t[e]+"":"";break;case"limit":case"trueValue":case"falseValue":n=t[t.hasOwnProperty(e+"Src")?e+"Src":e],t.keyIn?(a=kus(n,t.caseSensitive),n=a.values):n=n.filter(function(l){var A=typeof l;return A==="string"||A==="number"}),r=xus(n,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=t[t.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||e!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=v4r;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),e==="CWD"?r=gue.basename(r):e==="cwdHome"&&(r=w4r(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+e.replace(/^./,function(l){return l.toUpperCase()})+"String"]();break;default:typeof(o=(e.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Q_e[Q_e.length-o]||"")}return r}function Fus(e){var t=/^(.)-(.)$/.exec(e),r="",n,a,o,l;if(!t)return null;for(n=t[1].charCodeAt(0),a=t[2].charCodeAt(0),l=n)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function o(l,A,f,I,C,b){var E;return A||typeof(E=t(C))!="string"?f:E?(I||"")+E+(b||""):""}return e.replace(n,o).replace(a,o)}function kus(e,t,r){var n,a=[],o=-1,l=0,A="",f;function I(C,b){return b.length>3?(C.push(b[0]+"..."+b[b.length-1]),f=!0):b.length&&(C=C.concat(b)),C}return n=e.reduce(function(C,b){return C.concat((b+"").split(""))},[]).reduce(function(C,b){var E,N;return t||(b=b.toLowerCase()),E=/^\d$/.test(b)?1:/^[A-Z]$/.test(b)?2:/^[a-z]$/.test(b)?3:0,r&&E===0?A+=b:(N=b.charCodeAt(0),E&&E===o&&N===l+1?a.push(b):(C=I(C,a),a=[b],o=E),l=N),C},[]),n=I(n,a),A&&(n.push(A),f=!0),{values:n,suppressed:f}}function xus(e,t){return e.join(e.length>2?", ":t?" / ":"/")}function Gus(e,t){var r,n,a={},o;if(t.phContent&&(r=t.phContent(e,t)),typeof r!="string")switch(e){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=t.hasOwnProperty(e)?typeof t[e]=="boolean"?t[e]?"on":"off":t[e]+"":"";break;case"limit":case"trueValue":case"falseValue":n=t[t.hasOwnProperty(e+"Src")?e+"Src":e],t.keyIn?(a=kus(n,t.caseSensitive),n=a.values):n=n.filter(function(l){var A=typeof l;return A==="string"||A==="number"}),r=xus(n,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=t[t.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||e!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=v4r;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),e==="CWD"?r=gue.basename(r):e==="cwdHome"&&(r=w4r(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+e.replace(/^./,function(l){return l.toUpperCase()})+"String"]();break;default:typeof(o=(e.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Q_e[Q_e.length-o]||"")}return r}function Fus(e){var t=/^(.)-(.)$/.exec(e),r="",n,a,o,l;if(!t)return null;for(n=t[1].charCodeAt(0),a=t[2].charCodeAt(0),l=n @@ -1451,7 +1451,7 @@ And the length must be: $`,trueValue:null,falseValue:null,caseSensitive: `,n+=`THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -`,n+="You should have received a copy of the BSD 3-Clause License along with this program. If not, see https://opensource.org/licenses/BSD-3-Clause",e.prepend([new State(t.goal.replace(new Term("write",[new Term(n,[])])),t.substitution,t)])}},flag:{bounded:{allowed:[new Term("true"),new Term("false")],value:new Term("true"),changeable:!1},max_integer:{allowed:[new Num(Number.MAX_SAFE_INTEGER)],value:new Num(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Num(Number.MIN_SAFE_INTEGER)],value:new Num(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new Term("down"),new Term("toward_zero")],value:new Term("toward_zero"),changeable:!1},char_conversion:{allowed:[new Term("on"),new Term("off")],value:new Term("on"),changeable:!0},debug:{allowed:[new Term("on"),new Term("off")],value:new Term("off"),changeable:!0},max_arity:{allowed:[new Term("unbounded")],value:new Term("unbounded"),changeable:!1},unknown:{allowed:[new Term("error"),new Term("fail"),new Term("warning")],value:new Term("error"),changeable:!0},double_quotes:{allowed:[new Term("chars"),new Term("codes"),new Term("atom")],value:new Term("codes"),changeable:!0},occurs_check:{allowed:[new Term("false"),new Term("true")],value:new Term("false"),changeable:!0},dialect:{allowed:[new Term("tau")],value:new Term("tau"),changeable:!1},version_data:{allowed:[new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)])],value:new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)]),changeable:!1},nodejs:{allowed:[new Term("yes"),new Term("no")],value:new Term(nodejs_flag?"yes":"no"),changeable:!1},argv:{allowed:[nodejs_arguments],value:nodejs_arguments,changeble:!1}},unify:function(e,t,r){r=r===void 0?!1:r;for(var n=[{left:e,right:t}],a={};n.length!==0;){var o=n.pop();if(e=o.left,t=o.right,e!=t)if(pl.type.is_term(e)&&pl.type.is_term(t)){if(e.indicator!==t.indicator)return null;if(e.indicator==="./2"){for(var l=e,A=t;l.indicator==="./2"&&A.indicator==="./2";)n.push({left:l.args[0],right:A.args[0]}),l=l.args[1],A=A.args[1];n.push({left:l,right:A})}else for(var f=0;fa.value?1:0:a}else return n},operate:function(e,t){if(pl.type.is_operator(t)){for(var r=pl.type.is_operator(t),n=[],a,o=!1,l=0;le.get_flag("max_integer").value||a0?e.start+e.matches[0].length:e.start,a=r?new Term("token_not_found"):new Term("found",[new Term(e.value.toString())]),o=new Term(".",[new Term("line",[new Num(e.line+1)]),new Term(".",[new Term("column",[new Num(n+1)]),new Term(".",[a,new Term("[]",[])])])]);return new Term("error",[new Term("syntax_error",[new Term(t)]),o])},syntax_by_predicate:function(e,t){return new Term("error",[new Term("syntax_error",[new Term(e)]),str_indicator(t)])}},warning:{singleton:function(e,t,r){for(var n=new Term("[]"),a=e.length-1;a>=0;a--)n=new Term(".",[new Var(e[a]),n]);return new Term("warning",[new Term("singleton_variables",[n,str_indicator(t)]),new Term(".",[new Term("line",[new Num(r,!1)]),new Term("[]")])])},failed_goal:function(e,t){return new Term("warning",[new Term("failed_goal",[e]),new Term(".",[new Term("line",[new Num(t,!1)]),new Term("[]")])])}},format_variable:function(e){return"_"+e},format_answer:function(e,t,n){t instanceof Session&&(t=t.thread);var n=n||{};if(n.session=t?t.session:void 0,pl.type.is_error(e))return"uncaught exception: "+e.args[0].toString();if(e===!1)return"false.";if(e===null)return"limit exceeded ;";var a=0,o="";if(pl.type.is_substitution(e)){var l=e.domain(!0);e=e.filter(function(b,E){return!pl.type.is_variable(E)||pl.type.is_variable(E)&&e.has_attributes(b)||indexOf(l,E.id)!==-1&&b!==E.id})}for(var A in e.links)if(e.links.hasOwnProperty(A))if(pl.type.is_variable(e.links[A])&&A===e.links[A].id){var f=e.attrs[A];for(var I in f)f.hasOwnProperty(I)&&(a++,o!==""&&(o+=", "),o+="put_attr("+A+", "+I+", "+f[I].toString(n)+")")}else a++,o!==""&&(o+=", "),o+=A.toString(n)+" = "+e.links[A].toString(n,{priority:"700",class:"xfx",indicator:"=/2"},"right");var C=typeof t>"u"||t.points.length>0?" ;":".";return a===0?"true"+C:o+C},flatten_error:function(e){if(!pl.type.is_error(e))return null;e=e.args[0];var t={};return t.type=e.args[0].id,t.thrown=t.type==="syntax_error"?null:e.args[1].id,t.expected=null,t.found=null,t.representation=null,t.existence=null,t.existence_type=null,t.line=null,t.column=null,t.permission_operation=null,t.permission_type=null,t.evaluation_type=null,t.type==="type_error"||t.type==="domain_error"?(t.expected=e.args[0].args[0].id,t.found=e.args[0].args[1].toString()):t.type==="syntax_error"?e.args[1].indicator==="./2"?(t.expected=e.args[0].args[0].id,t.found=e.args[1].args[1].args[1].args[0],t.found=t.found.id==="token_not_found"?t.found.id:t.found.args[0].id,t.line=e.args[1].args[0].args[0].value,t.column=e.args[1].args[1].args[0].args[0].value):t.thrown=e.args[1].id:t.type==="permission_error"?(t.found=e.args[0].args[2].toString(),t.permission_operation=e.args[0].args[0].id,t.permission_type=e.args[0].args[1].id):t.type==="evaluation_error"?t.evaluation_type=e.args[0].args[0].id:t.type==="representation_error"?t.representation=e.args[0].args[0].id:t.type==="existence_error"&&(t.existence=e.args[0].args[1].toString(),t.existence_type=e.args[0].args[0].id),t},create:function(e){return new pl.type.Session(e)}};typeof module<"u"?module.exports=pl:window.pl=pl})()});var Jus=H(N4r=>{"use strict";Object.defineProperty(N4r,"__esModule",{value:!0});N4r.linkProjectToSession=jml;var Qus=(Pa(),vi(Va)),Mus=Bn(),Hus=kW(),LO=Qus.__importDefault(T4r()),Xml=Qus.__importDefault(wt("vm")),{is_atom:Aue,is_variable:Jml,is_instantiated_list:Uml}=LO.default.type;function Yus(e,t,r){e.prepend(r.map(n=>new LO.default.type.State(t.goal.replace(n),t.substitution,t)))}var Xus=new WeakMap;function R4r(e){let t=Xus.get(e.session);if(t==null)throw new Error("Assertion failed: A project should have been registered for the active session");return t}var Kml=new LO.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let l=Mus.structUtils.parseIdent(n.id),A=Mus.structUtils.makeDescriptor(l,a.id),I=R4r(e).tryWorkspaceByDescriptor(A);Jml(o)&&I!==null&&Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(String(I.relativeCwd))])]),Aue(o)&&I!==null&&I.relativeCwd===o.id&&e.success(t)},"workspace_field/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let A=R4r(e).tryWorkspaceByCwd(n.id);if(A==null)return;let f=(0,Hus.get)(A.manifest.raw,a.id);typeof f>"u"||Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(typeof f=="object"?JSON.stringify(f):f)])])},"workspace_field_test/3":(e,t,r)=>{let[n,a,o]=r.args;e.prepend([new LO.default.type.State(t.goal.replace(new LO.default.type.Term("workspace_field_test",[n,a,o,new LO.default.type.Term("[]",[])])),t.substitution,t)])},"workspace_field_test/4":(e,t,r)=>{let[n,a,o,l]=r.args;if(!Aue(n)||!Aue(a)||!Aue(o)||!Uml(l)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let f=R4r(e).tryWorkspaceByCwd(n.id);if(f==null)return;let I=(0,Hus.get)(f.manifest.raw,a.id);if(typeof I>"u")return;let C={$$:I};for(let[E,N]of l.toJavaScript().entries())C[`$${E}`]=N;Xml.default.runInNewContext(o.id,C)&&e.success(t)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"]);function jml(e,t){Xus.set(e,t),e.consult(`:- use_module(library(${Kml.id})).`)}});var W6e=H(oGe=>{"use strict";Object.defineProperty(oGe,"__esModule",{value:!0});oGe.Constraints=oGe.DependencyType=void 0;var x4r=(Pa(),vi(Va)),g6=Bn(),VO=Bn(),Dxt=no(),zml=x4r.__importDefault(Bus()),V6e=x4r.__importDefault(T4r()),Uus=x4r.__importStar(F6e()),qml=Jus();(0,zml.default)(V6e.default);var P6e;(function(e){e.Dependencies="dependencies",e.DevDependencies="devDependencies",e.PeerDependencies="peerDependencies"})(P6e||(oGe.DependencyType=P6e={}));var Kus=[P6e.Dependencies,P6e.DevDependencies,P6e.PeerDependencies];function lx(e){if(e instanceof V6e.default.type.Num)return e.value;if(e instanceof V6e.default.type.Term)switch(e.indicator){case"throw/1":return lx(e.args[0]);case"error/1":return lx(e.args[0]);case"error/2":if(e.args[0]instanceof V6e.default.type.Term&&e.args[0].indicator==="syntax_error/1")return Object.assign(lx(e.args[0]),...lx(e.args[1]));{let t=lx(e.args[0]);return t.message+=` (in ${lx(e.args[1])})`,t}case"syntax_error/1":return new g6.ReportError(g6.MessageName.PROLOG_SYNTAX_ERROR,`Syntax error: ${lx(e.args[0])}`);case"existence_error/2":return new g6.ReportError(g6.MessageName.PROLOG_EXISTENCE_ERROR,`Existence error: ${lx(e.args[0])} ${lx(e.args[1])} not found`);case"instantiation_error/0":return new g6.ReportError(g6.MessageName.PROLOG_INSTANTIATION_ERROR,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:lx(e.args[0])};case"column/1":return{column:lx(e.args[0])};case"found/1":return{found:lx(e.args[0])};case"./2":return[lx(e.args[0])].concat(lx(e.args[1]));case"//2":return`${lx(e.args[0])}/${lx(e.args[1])}`;default:return e.id}throw`couldn't pretty print because of unsupported node ${e}`}function jus(e){let t;try{t=lx(e)}catch(r){throw typeof r=="string"?new g6.ReportError(g6.MessageName.PROLOG_UNKNOWN_ERROR,`Unknown error: ${e} (note: ${r})`):r}return typeof t.line<"u"&&typeof t.column<"u"&&(t.message+=` at line ${t.line}, column ${t.column}`),t}var D4r=class{constructor(t,r){let n=1e3*t.workspaces.length;this.session=V6e.default.create(n),(0,qml.linkProjectToSession)(this.session,t),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(t=>{this.session.answer(r=>{t(r)})})}async*makeQuery(t){let r=this.session.query(t);if(r!==!0)throw jus(r);for(;;){let n=await this.fetchNextAnswer();if(n===null)throw new g6.ReportError(g6.MessageName.PROLOG_LIMIT_EXCEEDED,"Resolution limit exceeded");if(!n)break;if(n.id==="throw")throw jus(n);yield n}}};function J_e(e){return e.id==="null"?null:`${e.toJavaScript()}`}function $ml(e){if(e.id==="null")return null;{let t=e.toJavaScript();if(typeof t!="string")return JSON.stringify(t);try{return JSON.stringify(JSON.parse(t))}catch{return JSON.stringify(t)}}}var k4r=class e{static async find(t){return new e(t)}constructor(t){this.source="",this.project=t;let r=t.configuration.get("constraintsPath");Dxt.xfs.existsSync(r)&&(this.source=Dxt.xfs.readFileSync(r,"utf8"))}getProjectDatabase(){let t="";for(let r of Kus)t+=`dependency_type(${r}). +`,n+="You should have received a copy of the BSD 3-Clause License along with this program. If not, see https://opensource.org/licenses/BSD-3-Clause",e.prepend([new State(t.goal.replace(new Term("write",[new Term(n,[])])),t.substitution,t)])}},flag:{bounded:{allowed:[new Term("true"),new Term("false")],value:new Term("true"),changeable:!1},max_integer:{allowed:[new Num(Number.MAX_SAFE_INTEGER)],value:new Num(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Num(Number.MIN_SAFE_INTEGER)],value:new Num(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new Term("down"),new Term("toward_zero")],value:new Term("toward_zero"),changeable:!1},char_conversion:{allowed:[new Term("on"),new Term("off")],value:new Term("on"),changeable:!0},debug:{allowed:[new Term("on"),new Term("off")],value:new Term("off"),changeable:!0},max_arity:{allowed:[new Term("unbounded")],value:new Term("unbounded"),changeable:!1},unknown:{allowed:[new Term("error"),new Term("fail"),new Term("warning")],value:new Term("error"),changeable:!0},double_quotes:{allowed:[new Term("chars"),new Term("codes"),new Term("atom")],value:new Term("codes"),changeable:!0},occurs_check:{allowed:[new Term("false"),new Term("true")],value:new Term("false"),changeable:!0},dialect:{allowed:[new Term("tau")],value:new Term("tau"),changeable:!1},version_data:{allowed:[new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)])],value:new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)]),changeable:!1},nodejs:{allowed:[new Term("yes"),new Term("no")],value:new Term(nodejs_flag?"yes":"no"),changeable:!1},argv:{allowed:[nodejs_arguments],value:nodejs_arguments,changeble:!1}},unify:function(e,t,r){r=r===void 0?!1:r;for(var n=[{left:e,right:t}],a={};n.length!==0;){var o=n.pop();if(e=o.left,t=o.right,e!=t)if(pl.type.is_term(e)&&pl.type.is_term(t)){if(e.indicator!==t.indicator)return null;if(e.indicator==="./2"){for(var l=e,A=t;l.indicator==="./2"&&A.indicator==="./2";)n.push({left:l.args[0],right:A.args[0]}),l=l.args[1],A=A.args[1];n.push({left:l,right:A})}else for(var f=0;fa.value?1:0:a}else return n},operate:function(e,t){if(pl.type.is_operator(t)){for(var r=pl.type.is_operator(t),n=[],a,o=!1,l=0;le.get_flag("max_integer").value||a0?e.start+e.matches[0].length:e.start,a=r?new Term("token_not_found"):new Term("found",[new Term(e.value.toString())]),o=new Term(".",[new Term("line",[new Num(e.line+1)]),new Term(".",[new Term("column",[new Num(n+1)]),new Term(".",[a,new Term("[]",[])])])]);return new Term("error",[new Term("syntax_error",[new Term(t)]),o])},syntax_by_predicate:function(e,t){return new Term("error",[new Term("syntax_error",[new Term(e)]),str_indicator(t)])}},warning:{singleton:function(e,t,r){for(var n=new Term("[]"),a=e.length-1;a>=0;a--)n=new Term(".",[new Var(e[a]),n]);return new Term("warning",[new Term("singleton_variables",[n,str_indicator(t)]),new Term(".",[new Term("line",[new Num(r,!1)]),new Term("[]")])])},failed_goal:function(e,t){return new Term("warning",[new Term("failed_goal",[e]),new Term(".",[new Term("line",[new Num(t,!1)]),new Term("[]")])])}},format_variable:function(e){return"_"+e},format_answer:function(e,t,n){t instanceof Session&&(t=t.thread);var n=n||{};if(n.session=t?t.session:void 0,pl.type.is_error(e))return"uncaught exception: "+e.args[0].toString();if(e===!1)return"false.";if(e===null)return"limit exceeded ;";var a=0,o="";if(pl.type.is_substitution(e)){var l=e.domain(!0);e=e.filter(function(b,E){return!pl.type.is_variable(E)||pl.type.is_variable(E)&&e.has_attributes(b)||indexOf(l,E.id)!==-1&&b!==E.id})}for(var A in e.links)if(e.links.hasOwnProperty(A))if(pl.type.is_variable(e.links[A])&&A===e.links[A].id){var f=e.attrs[A];for(var I in f)f.hasOwnProperty(I)&&(a++,o!==""&&(o+=", "),o+="put_attr("+A+", "+I+", "+f[I].toString(n)+")")}else a++,o!==""&&(o+=", "),o+=A.toString(n)+" = "+e.links[A].toString(n,{priority:"700",class:"xfx",indicator:"=/2"},"right");var C=typeof t>"u"||t.points.length>0?" ;":".";return a===0?"true"+C:o+C},flatten_error:function(e){if(!pl.type.is_error(e))return null;e=e.args[0];var t={};return t.type=e.args[0].id,t.thrown=t.type==="syntax_error"?null:e.args[1].id,t.expected=null,t.found=null,t.representation=null,t.existence=null,t.existence_type=null,t.line=null,t.column=null,t.permission_operation=null,t.permission_type=null,t.evaluation_type=null,t.type==="type_error"||t.type==="domain_error"?(t.expected=e.args[0].args[0].id,t.found=e.args[0].args[1].toString()):t.type==="syntax_error"?e.args[1].indicator==="./2"?(t.expected=e.args[0].args[0].id,t.found=e.args[1].args[1].args[1].args[0],t.found=t.found.id==="token_not_found"?t.found.id:t.found.args[0].id,t.line=e.args[1].args[0].args[0].value,t.column=e.args[1].args[1].args[0].args[0].value):t.thrown=e.args[1].id:t.type==="permission_error"?(t.found=e.args[0].args[2].toString(),t.permission_operation=e.args[0].args[0].id,t.permission_type=e.args[0].args[1].id):t.type==="evaluation_error"?t.evaluation_type=e.args[0].args[0].id:t.type==="representation_error"?t.representation=e.args[0].args[0].id:t.type==="existence_error"&&(t.existence=e.args[0].args[1].toString(),t.existence_type=e.args[0].args[0].id),t},create:function(e){return new pl.type.Session(e)}};typeof module<"u"?module.exports=pl:window.pl=pl})()});var Jus=H(N4r=>{"use strict";Object.defineProperty(N4r,"__esModule",{value:!0});N4r.linkProjectToSession=zml;var Qus=(Pa(),vi(Va)),Mus=Bn(),Hus=kW(),LO=Qus.__importDefault(T4r()),Jml=Qus.__importDefault(wt("vm")),{is_atom:Aue,is_variable:Uml,is_instantiated_list:Kml}=LO.default.type;function Yus(e,t,r){e.prepend(r.map(n=>new LO.default.type.State(t.goal.replace(n),t.substitution,t)))}var Xus=new WeakMap;function R4r(e){let t=Xus.get(e.session);if(t==null)throw new Error("Assertion failed: A project should have been registered for the active session");return t}var jml=new LO.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let l=Mus.structUtils.parseIdent(n.id),A=Mus.structUtils.makeDescriptor(l,a.id),I=R4r(e).tryWorkspaceByDescriptor(A);Uml(o)&&I!==null&&Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(String(I.relativeCwd))])]),Aue(o)&&I!==null&&I.relativeCwd===o.id&&e.success(t)},"workspace_field/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let A=R4r(e).tryWorkspaceByCwd(n.id);if(A==null)return;let f=(0,Hus.get)(A.manifest.raw,a.id);typeof f>"u"||Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(typeof f=="object"?JSON.stringify(f):f)])])},"workspace_field_test/3":(e,t,r)=>{let[n,a,o]=r.args;e.prepend([new LO.default.type.State(t.goal.replace(new LO.default.type.Term("workspace_field_test",[n,a,o,new LO.default.type.Term("[]",[])])),t.substitution,t)])},"workspace_field_test/4":(e,t,r)=>{let[n,a,o,l]=r.args;if(!Aue(n)||!Aue(a)||!Aue(o)||!Kml(l)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let f=R4r(e).tryWorkspaceByCwd(n.id);if(f==null)return;let I=(0,Hus.get)(f.manifest.raw,a.id);if(typeof I>"u")return;let C={$$:I};for(let[E,N]of l.toJavaScript().entries())C[`$${E}`]=N;Jml.default.runInNewContext(o.id,C)&&e.success(t)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"]);function zml(e,t){Xus.set(e,t),e.consult(`:- use_module(library(${jml.id})).`)}});var W6e=H(oGe=>{"use strict";Object.defineProperty(oGe,"__esModule",{value:!0});oGe.Constraints=oGe.DependencyType=void 0;var x4r=(Pa(),vi(Va)),g6=Bn(),VO=Bn(),Dxt=no(),qml=x4r.__importDefault(Bus()),V6e=x4r.__importDefault(T4r()),Uus=x4r.__importStar(F6e()),$ml=Jus();(0,qml.default)(V6e.default);var P6e;(function(e){e.Dependencies="dependencies",e.DevDependencies="devDependencies",e.PeerDependencies="peerDependencies"})(P6e||(oGe.DependencyType=P6e={}));var Kus=[P6e.Dependencies,P6e.DevDependencies,P6e.PeerDependencies];function lx(e){if(e instanceof V6e.default.type.Num)return e.value;if(e instanceof V6e.default.type.Term)switch(e.indicator){case"throw/1":return lx(e.args[0]);case"error/1":return lx(e.args[0]);case"error/2":if(e.args[0]instanceof V6e.default.type.Term&&e.args[0].indicator==="syntax_error/1")return Object.assign(lx(e.args[0]),...lx(e.args[1]));{let t=lx(e.args[0]);return t.message+=` (in ${lx(e.args[1])})`,t}case"syntax_error/1":return new g6.ReportError(g6.MessageName.PROLOG_SYNTAX_ERROR,`Syntax error: ${lx(e.args[0])}`);case"existence_error/2":return new g6.ReportError(g6.MessageName.PROLOG_EXISTENCE_ERROR,`Existence error: ${lx(e.args[0])} ${lx(e.args[1])} not found`);case"instantiation_error/0":return new g6.ReportError(g6.MessageName.PROLOG_INSTANTIATION_ERROR,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:lx(e.args[0])};case"column/1":return{column:lx(e.args[0])};case"found/1":return{found:lx(e.args[0])};case"./2":return[lx(e.args[0])].concat(lx(e.args[1]));case"//2":return`${lx(e.args[0])}/${lx(e.args[1])}`;default:return e.id}throw`couldn't pretty print because of unsupported node ${e}`}function jus(e){let t;try{t=lx(e)}catch(r){throw typeof r=="string"?new g6.ReportError(g6.MessageName.PROLOG_UNKNOWN_ERROR,`Unknown error: ${e} (note: ${r})`):r}return typeof t.line<"u"&&typeof t.column<"u"&&(t.message+=` at line ${t.line}, column ${t.column}`),t}var D4r=class{constructor(t,r){let n=1e3*t.workspaces.length;this.session=V6e.default.create(n),(0,$ml.linkProjectToSession)(this.session,t),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(t=>{this.session.answer(r=>{t(r)})})}async*makeQuery(t){let r=this.session.query(t);if(r!==!0)throw jus(r);for(;;){let n=await this.fetchNextAnswer();if(n===null)throw new g6.ReportError(g6.MessageName.PROLOG_LIMIT_EXCEEDED,"Resolution limit exceeded");if(!n)break;if(n.id==="throw")throw jus(n);yield n}}};function J_e(e){return e.id==="null"?null:`${e.toJavaScript()}`}function eCl(e){if(e.id==="null")return null;{let t=e.toJavaScript();if(typeof t!="string")return JSON.stringify(t);try{return JSON.stringify(JSON.parse(t))}catch{return JSON.stringify(t)}}}var k4r=class e{static async find(t){return new e(t)}constructor(t){this.source="",this.project=t;let r=t.configuration.get("constraintsPath");Dxt.xfs.existsSync(r)&&(this.source=Dxt.xfs.readFileSync(r,"utf8"))}getProjectDatabase(){let t="";for(let r of Kus)t+=`dependency_type(${r}). `;for(let r of this.project.workspacesByCwd.values()){let n=r.relativeCwd;t+=`workspace(${due(n)}). `,t+=`workspace_ident(${due(n)}, ${due(VO.structUtils.stringifyIdent(r.anchoredLocator))}). `,t+=`workspace_version(${due(n)}, ${due(r.manifest.version)}). @@ -1464,17 +1464,17 @@ And the length must be: $`,trueValue:null,falseValue:null,caseSensitive: `,t+=`gen_enforced_field(_, _, _) :- false. `,t}get fullSource(){return`${this.getProjectDatabase()} ${this.source} -${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.fullSource)}async processClassic(){let t=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(t),enforcedFields:await this.genEnforcedFields(t)}}async process(){let{enforcedDependencies:t,enforcedFields:r}=await this.processClassic(),n=new Map;for(let{workspace:a,dependencyIdent:o,dependencyRange:l,dependencyType:A}of t){let f=Uus.normalizePath([A,VO.structUtils.stringifyIdent(o)]),I=VO.miscUtils.getMapWithDefault(n,a.cwd);VO.miscUtils.getMapWithDefault(I,f).set(l??void 0,new Set)}for(let{workspace:a,fieldPath:o,fieldValue:l}of r){let A=Uus.normalizePath(o),f=VO.miscUtils.getMapWithDefault(n,a.cwd);VO.miscUtils.getMapWithDefault(f,A).set(JSON.parse(l)??void 0,new Set)}return{manifestUpdates:n,reportedErrors:new Map}}async genEnforcedDependencies(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.DependencyIdent),l=J_e(n.links.DependencyRange),A=J_e(n.links.DependencyType);if(a===null||o===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a),I=VO.structUtils.parseIdent(o);r.push({workspace:f,dependencyIdent:I,dependencyRange:l,dependencyType:A})}return VO.miscUtils.sortMap(r,[({dependencyRange:n})=>n!==null?"0":"1",({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({dependencyIdent:n})=>VO.structUtils.stringifyIdent(n)])}async genEnforcedFields(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.FieldPath),l=$ml(n.links.FieldValue);if(a===null||o===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:o,fieldValue:l})}return VO.miscUtils.sortMap(r,[({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({fieldPath:n})=>n])}async*query(t){let r=this.createSession();for await(let n of r.makeQuery(t)){let a={};for(let[o,l]of Object.entries(n.links))o!=="_"&&(a[o]=J_e(l));yield a}}};oGe.Constraints=k4r;function due(e){return typeof e=="string"?`'${e}'`:"[]"}});var qus=H(xte=>{"use strict";var eCl=xte&&xte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),tCl=xte&&xte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),rCl=xte&&xte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&eCl(t,e,r);return tCl(t,e),t};Object.defineProperty(xte,"__esModule",{value:!0});var nCl=el(),zus=Bn(),iCl=Bn(),G4r=($c(),vi(rg)),O6e=class extends nCl.BaseCommand{constructor(){super(...arguments),this.json=G4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.query=G4r.Option.String()}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>rCl(W6e())),r=await zus.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await zus.Project.find(r,this.context.cwd),a=await t.find(n),o=this.query;return o.endsWith(".")||(o=`${o}.`),(await iCl.StreamReport.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{for await(let f of a.query(o)){let I=Array.from(Object.entries(f)),C=I.length,b=I.reduce((E,[N])=>Math.max(E,N.length),0);for(let E=0;En!==null?"0":"1",({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({dependencyIdent:n})=>VO.structUtils.stringifyIdent(n)])}async genEnforcedFields(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.FieldPath),l=eCl(n.links.FieldValue);if(a===null||o===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:o,fieldValue:l})}return VO.miscUtils.sortMap(r,[({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({fieldPath:n})=>n])}async*query(t){let r=this.createSession();for await(let n of r.makeQuery(t)){let a={};for(let[o,l]of Object.entries(n.links))o!=="_"&&(a[o]=J_e(l));yield a}}};oGe.Constraints=k4r;function due(e){return typeof e=="string"?`'${e}'`:"[]"}});var qus=H(xte=>{"use strict";var tCl=xte&&xte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),rCl=xte&&xte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nCl=xte&&xte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&tCl(t,e,r);return rCl(t,e),t};Object.defineProperty(xte,"__esModule",{value:!0});var iCl=el(),zus=Bn(),sCl=Bn(),G4r=($c(),vi(rg)),O6e=class extends iCl.BaseCommand{constructor(){super(...arguments),this.json=G4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.query=G4r.Option.String()}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>nCl(W6e())),r=await zus.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await zus.Project.find(r,this.context.cwd),a=await t.find(n),o=this.query;return o.endsWith(".")||(o=`${o}.`),(await sCl.StreamReport.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{for await(let f of a.query(o)){let I=Array.from(Object.entries(f)),C=I.length,b=I.reduce((E,[N])=>Math.max(E,N.length),0);for(let E=0;E{"use strict";var aCl=Gte&&Gte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cCl=Gte&&Gte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lCl=Gte&&Gte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&aCl(t,e,r);return cCl(t,e),t};Object.defineProperty(Gte,"__esModule",{value:!0});var uCl=el(),$us=Bn(),egs=($c(),vi(rg)),M6e=class extends uCl.BaseCommand{constructor(){super(...arguments),this.verbose=egs.Option.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>lCl(W6e())),r=await $us.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await $us.Project.find(r,this.context.cwd),a=await t.find(n);this.context.stdout.write(this.verbose?a.fullSource:a.source)}};M6e.paths=[["constraints","source"]];M6e.usage=egs.Command.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Gte.default=M6e});var igs=H(Z4r=>{"use strict";Object.defineProperty(Z4r,"__esModule",{value:!0});var ngs=(Pa(),vi(Va)),gCl=el(),U_e=Bn(),kxt=Bn(),F4r=($c(),vi(rg)),ACl=f4r(),rgs=ngs.__importStar(F6e()),H6e=class extends gCl.BaseCommand{constructor(){super(...arguments),this.fix=F4r.Option.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"}),this.json=F4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await U_e.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await U_e.Project.find(t,this.context.cwd);await r.restoreInstallState();let n=await r.loadUserConfig(),a;if(n?.constraints)a=new ACl.ModernEngine(r);else{let{Constraints:f}=await Promise.resolve().then(()=>ngs.__importStar(W6e()));a=await f.find(r)}let o,l=!1,A=!1;for(let f=this.fix?10:1;f>0;--f){let I=await a.process();if(!I)break;let{changedWorkspaces:C,remainingErrors:b}=rgs.applyEngineReport(r,I,{fix:this.fix}),E=[];for(let[N,B]of C){let F=N.manifest.indent;N.manifest=new U_e.Manifest,N.manifest.indent=F,N.manifest.load(B),E.push(N.persistManifest())}if(await Promise.all(E),!(C.size>0&&f>1)){o=rgs.convertReportToRoot(b,{configuration:t}),l=!1,A=!0;for(let[,N]of b)for(let B of N)B.fixable?l=!0:A=!1}}if(o.children.length===0)return 0;if(l){let f=A?`Those errors can all be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`;await U_e.StreamReport.start({configuration:t,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async I=>{I.reportInfo(U_e.MessageName.UNNAMED,f),I.reportSeparator()})}return o.children=U_e.miscUtils.sortMap(o.children,f=>f.value[1]),U_e.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1}),1}};H6e.paths=[["constraints"]];H6e.usage=F4r.Command.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]});xte.default=O6e;function oCl(e){return typeof e!="string"?`${e}`:e.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?e:`'${e}'`}function aCl(e,t){let r=e===0,n=e===t-1;return r&&n?"":r?"\u250C ":n?"\u2514 ":"\u2502 "}});var tgs=H(Gte=>{"use strict";var cCl=Gte&&Gte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lCl=Gte&&Gte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uCl=Gte&&Gte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&cCl(t,e,r);return lCl(t,e),t};Object.defineProperty(Gte,"__esModule",{value:!0});var gCl=el(),$us=Bn(),egs=($c(),vi(rg)),M6e=class extends gCl.BaseCommand{constructor(){super(...arguments),this.verbose=egs.Option.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>uCl(W6e())),r=await $us.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await $us.Project.find(r,this.context.cwd),a=await t.find(n);this.context.stdout.write(this.verbose?a.fullSource:a.source)}};M6e.paths=[["constraints","source"]];M6e.usage=egs.Command.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Gte.default=M6e});var igs=H(Z4r=>{"use strict";Object.defineProperty(Z4r,"__esModule",{value:!0});var ngs=(Pa(),vi(Va)),ACl=el(),U_e=Bn(),kxt=Bn(),F4r=($c(),vi(rg)),dCl=f4r(),rgs=ngs.__importStar(F6e()),H6e=class extends ACl.BaseCommand{constructor(){super(...arguments),this.fix=F4r.Option.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"}),this.json=F4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await U_e.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await U_e.Project.find(t,this.context.cwd);await r.restoreInstallState();let n=await r.loadUserConfig(),a;if(n?.constraints)a=new dCl.ModernEngine(r);else{let{Constraints:f}=await Promise.resolve().then(()=>ngs.__importStar(W6e()));a=await f.find(r)}let o,l=!1,A=!1;for(let f=this.fix?10:1;f>0;--f){let I=await a.process();if(!I)break;let{changedWorkspaces:C,remainingErrors:b}=rgs.applyEngineReport(r,I,{fix:this.fix}),E=[];for(let[N,B]of C){let F=N.manifest.indent;N.manifest=new U_e.Manifest,N.manifest.indent=F,N.manifest.load(B),E.push(N.persistManifest())}if(await Promise.all(E),!(C.size>0&&f>1)){o=rgs.convertReportToRoot(b,{configuration:t}),l=!1,A=!0;for(let[,N]of b)for(let B of N)B.fixable?l=!0:A=!1}}if(o.children.length===0)return 0;if(l){let f=A?`Those errors can all be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`;await U_e.StreamReport.start({configuration:t,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async I=>{I.reportInfo(U_e.MessageName.UNNAMED,f),I.reportSeparator()})}return o.children=U_e.miscUtils.sortMap(o.children,f=>f.value[1]),U_e.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1}),1}};H6e.paths=[["constraints"]];H6e.usage=F4r.Command.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. - `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});Z4r.default=H6e});var cgs=H(Fte=>{"use strict";Object.defineProperty(Fte,"__esModule",{value:!0});Fte.ConstraintsCheckCommand=Fte.ConstraintsSourceCommand=Fte.ConstraintsQueryCommand=void 0;var Y6e=(Pa(),vi(Va)),pue=Bn(),dCl=f4r(),sgs=Y6e.__importDefault(qus());Fte.ConstraintsQueryCommand=sgs.default;var ogs=Y6e.__importDefault(tgs());Fte.ConstraintsSourceCommand=ogs.default;var ags=Y6e.__importDefault(igs());Fte.ConstraintsCheckCommand=ags.default;var pCl=Y6e.__importStar(F6e()),fCl={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:pue.SettingsType.BOOLEAN,default:!1},constraintsPath:{description:"The path of the constraints file.",type:pue.SettingsType.ABSOLUTE_PATH,default:"./constraints.pro"}},commands:[sgs.default,ogs.default,ags.default],hooks:{async validateProjectAfterInstall(e,{reportError:t}){if(!e.configuration.get("enableConstraintsChecks"))return;let r=await e.loadUserConfig(),n;if(r?.constraints)n=new dCl.ModernEngine(e);else{let{Constraints:l}=await Promise.resolve().then(()=>Y6e.__importStar(W6e()));n=await l.find(e)}let a=await n.process();if(!a)return;let{remainingErrors:o}=pCl.applyEngineReport(e,a);if(o.size!==0)if(e.configuration.isCI)for(let[l,A]of o)for(let f of A)t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`${pue.formatUtils.pretty(e.configuration,l.anchoredLocator,pue.formatUtils.Type.IDENT)}: ${f.text}`);else t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`Constraint check failed; run ${pue.formatUtils.pretty(e.configuration,"yarn constraints",pue.formatUtils.Type.CODE)} for more details`)}}};Fte.default=fCl});var lgs=H(L4r=>{"use strict";Object.defineProperty(L4r,"__esModule",{value:!0});var ICl=el(),xxt=Bn(),Gxt=($c(),vi(rg)),Fxt=class extends ICl.BaseCommand{constructor(){super(...arguments),this.pkg=Gxt.Option.String("-p,--package",{description:"The package to run the provided command from"}),this.quiet=Gxt.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Gxt.Option.String(),this.args=Gxt.Option.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let r=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),n=xxt.structUtils.parseDescriptor(r),a=n.name.match(/^create(-|$)/)?n:n.scope?xxt.structUtils.makeIdent(n.scope,`create-${n.name}`):xxt.structUtils.makeIdent(null,`create-${n.name}`),o=xxt.structUtils.stringifyIdent(a);return n.range!=="unknown"&&(o+=`@${n.range}`),this.cli.run(["dlx",...t,o,...this.args])}};Fxt.paths=[["create"]];L4r.default=Fxt});var ggs=H(V4r=>{"use strict";Object.defineProperty(V4r,"__esModule",{value:!0});var ugs=el(),Zte=Bn(),Zxt=Bn(),lL=no(),Q6e=($c(),vi(rg)),X6e=class extends ugs.BaseCommand{constructor(){super(...arguments),this.packages=Q6e.Option.Array("-p,--package",{description:"The package(s) to install before running the command"}),this.quiet=Q6e.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Q6e.Option.String(),this.args=Q6e.Option.Proxy()}async execute(){return Zte.Configuration.telemetry=null,await lL.xfs.mktempPromise(async t=>{let r=lL.ppath.join(t,`dlx-${process.pid}`);await lL.xfs.mkdirPromise(r),await lL.xfs.writeFilePromise(lL.ppath.join(r,"package.json"),`{} + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});Z4r.default=H6e});var cgs=H(Fte=>{"use strict";Object.defineProperty(Fte,"__esModule",{value:!0});Fte.ConstraintsCheckCommand=Fte.ConstraintsSourceCommand=Fte.ConstraintsQueryCommand=void 0;var Y6e=(Pa(),vi(Va)),pue=Bn(),pCl=f4r(),sgs=Y6e.__importDefault(qus());Fte.ConstraintsQueryCommand=sgs.default;var ogs=Y6e.__importDefault(tgs());Fte.ConstraintsSourceCommand=ogs.default;var ags=Y6e.__importDefault(igs());Fte.ConstraintsCheckCommand=ags.default;var fCl=Y6e.__importStar(F6e()),ICl={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:pue.SettingsType.BOOLEAN,default:!1},constraintsPath:{description:"The path of the constraints file.",type:pue.SettingsType.ABSOLUTE_PATH,default:"./constraints.pro"}},commands:[sgs.default,ogs.default,ags.default],hooks:{async validateProjectAfterInstall(e,{reportError:t}){if(!e.configuration.get("enableConstraintsChecks"))return;let r=await e.loadUserConfig(),n;if(r?.constraints)n=new pCl.ModernEngine(e);else{let{Constraints:l}=await Promise.resolve().then(()=>Y6e.__importStar(W6e()));n=await l.find(e)}let a=await n.process();if(!a)return;let{remainingErrors:o}=fCl.applyEngineReport(e,a);if(o.size!==0)if(e.configuration.isCI)for(let[l,A]of o)for(let f of A)t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`${pue.formatUtils.pretty(e.configuration,l.anchoredLocator,pue.formatUtils.Type.IDENT)}: ${f.text}`);else t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`Constraint check failed; run ${pue.formatUtils.pretty(e.configuration,"yarn constraints",pue.formatUtils.Type.CODE)} for more details`)}}};Fte.default=ICl});var lgs=H(L4r=>{"use strict";Object.defineProperty(L4r,"__esModule",{value:!0});var hCl=el(),xxt=Bn(),Gxt=($c(),vi(rg)),Fxt=class extends hCl.BaseCommand{constructor(){super(...arguments),this.pkg=Gxt.Option.String("-p,--package",{description:"The package to run the provided command from"}),this.quiet=Gxt.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Gxt.Option.String(),this.args=Gxt.Option.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let r=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),n=xxt.structUtils.parseDescriptor(r),a=n.name.match(/^create(-|$)/)?n:n.scope?xxt.structUtils.makeIdent(n.scope,`create-${n.name}`):xxt.structUtils.makeIdent(null,`create-${n.name}`),o=xxt.structUtils.stringifyIdent(a);return n.range!=="unknown"&&(o+=`@${n.range}`),this.cli.run(["dlx",...t,o,...this.args])}};Fxt.paths=[["create"]];L4r.default=Fxt});var ggs=H(V4r=>{"use strict";Object.defineProperty(V4r,"__esModule",{value:!0});var ugs=el(),Zte=Bn(),Zxt=Bn(),lL=no(),Q6e=($c(),vi(rg)),X6e=class extends ugs.BaseCommand{constructor(){super(...arguments),this.packages=Q6e.Option.Array("-p,--package",{description:"The package(s) to install before running the command"}),this.quiet=Q6e.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Q6e.Option.String(),this.args=Q6e.Option.Proxy()}async execute(){return Zte.Configuration.telemetry=null,await lL.xfs.mktempPromise(async t=>{let r=lL.ppath.join(t,`dlx-${process.pid}`);await lL.xfs.mkdirPromise(r),await lL.xfs.writeFilePromise(lL.ppath.join(r,"package.json"),`{} `),await lL.xfs.writeFilePromise(lL.ppath.join(r,"yarn.lock"),"");let n=lL.ppath.join(r,".yarnrc.yml"),a=await Zte.Configuration.findProjectCwd(this.context.cwd),l={enableGlobalCache:!(await Zte.Configuration.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:(0,Zte.stringifyMessageName)(Zte.MessageName.UNUSED_PACKAGE_EXTENSION),level:Zxt.formatUtils.LogLevel.Discard}]},A=a!==null?lL.ppath.join(a,".yarnrc.yml"):null;A!==null&&lL.xfs.existsSync(A)?(await lL.xfs.copyFilePromise(A,n),await Zte.Configuration.updateConfiguration(r,F=>{let Q=Zte.miscUtils.toMerged(F,l);return Array.isArray(F.plugins)&&(Q.plugins=F.plugins.map(X=>{let ae=typeof X=="string"?X:X.path,ne=lL.npath.isAbsolute(ae)?ae:lL.npath.resolve(lL.npath.fromPortablePath(a),ae);return typeof X=="string"?ne:{path:ne,spec:X.spec}})),Q})):await lL.xfs.writeJsonPromise(n,l);let f=this.packages??[this.command],I=Zxt.structUtils.parseDescriptor(this.command).name,C=await this.cli.run(["add","--fixed","--",...f],{cwd:r,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(` -`);let b=await Zte.Configuration.find(r,this.context.plugins),{project:E,workspace:N}=await Zte.Project.find(b,r);if(N===null)throw new ugs.WorkspaceRequiredError(E.cwd,r);await E.restoreInstallState();let B=await Zxt.scriptUtils.getWorkspaceAccessibleBinaries(N);return B.has(I)===!1&&B.size===1&&typeof this.packages>"u"&&(I=Array.from(B)[0][0]),await Zxt.scriptUtils.executeWorkspaceAccessibleBinary(N,I,this.args,{packageAccessibleBinaries:B,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};X6e.paths=[["dlx"]];X6e.usage=Q6e.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});V4r.default=X6e});var fgs=H(K_e=>{"use strict";Object.defineProperty(K_e,"__esModule",{value:!0});K_e.DlxCommand=K_e.CreateCommand=void 0;var Ags=(Pa(),vi(Va)),dgs=Ags.__importDefault(lgs());K_e.CreateCommand=dgs.default;var pgs=Ags.__importDefault(ggs());K_e.DlxCommand=pgs.default;var hCl={commands:[dgs.default,pgs.default]};K_e.default=hCl});var P4r=H(Lxt=>{"use strict";Object.defineProperty(Lxt,"__esModule",{value:!0});Lxt.PROTOCOL=void 0;Lxt.PROTOCOL="exec:"});var Vxt=H(cGe=>{"use strict";Object.defineProperty(cGe,"__esModule",{value:!0});cGe.parseSpec=mCl;cGe.makeSpec=Igs;cGe.makeLocator=CCl;cGe.loadGeneratorFile=_Cl;var aGe=Bn(),Q4=no();function mCl(e){let{params:t,selector:r}=aGe.structUtils.parseRange(e),n=Q4.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?aGe.structUtils.parseLocator(t.locator):null,path:n}}function Igs({parentLocator:e,path:t,generatorHash:r,protocol:n}){let a=e!==null?{locator:aGe.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return aGe.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function CCl(e,{parentLocator:t,path:r,generatorHash:n,protocol:a}){return aGe.structUtils.makeLocator(e,Igs({parentLocator:t,path:r,generatorHash:n,protocol:a}))}async function _Cl(e,t,r){let{parentLocator:n,path:a}=aGe.structUtils.parseFileStyleRange(e,{protocol:t}),o=Q4.ppath.isAbsolute(a)?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.PortablePath.dot,localPath:Q4.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.ppath.relative(Q4.PortablePath.root,o.localPath)}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=Q4.ppath.join(l.prefixPath,a);return await A.readFilePromise(f,"utf8")}});var Cgs=H(Pxt=>{"use strict";Object.defineProperty(Pxt,"__esModule",{value:!0});Pxt.ExecFetcher=void 0;var X4=Bn(),hgs=Bn(),mgs=Bn(),PS=no(),W4r=P4r(),yCl=Vxt(),O4r=class{supports(t,r){return!!t.reference.startsWith(W4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=X4.structUtils.parseFileStyleRange(t.reference,{protocol:W4r.PROTOCOL});if(PS.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:PS.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:X4.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){let n=r.project.getDependencyMeta(t,null);if(!r.project.configuration.get("enableScripts")&&!n.built)throw new mgs.ReportError(mgs.MessageName.DISABLED_BUILD_SCRIPTS,`${X4.structUtils.prettyLocator(r.project.configuration,t)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await(0,yCl.loadGeneratorFile)(t.reference,W4r.PROTOCOL,r);return PS.xfs.mktempPromise(async o=>{let l=PS.ppath.join(o,"generator.js");return await PS.xfs.writeFilePromise(l,a),PS.xfs.mktempPromise(async A=>{if(await this.generatePackage(A,t,l,r),!PS.xfs.existsSync(PS.ppath.join(A,"build")))throw new Error("The script should have generated a build directory");return await X4.tgzUtils.makeArchiveFromDirectory(PS.ppath.join(A,"build"),{prefixPath:X4.structUtils.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(t,r,n,a){return await PS.xfs.mktempPromise(async o=>{let l=await X4.scriptUtils.makeScriptEnv({project:a.project,binFolder:o}),A=PS.ppath.join(t,"runtime.js");return await PS.xfs.mktempPromise(async f=>{let I=PS.ppath.join(f,"buildfile.log"),C=PS.ppath.join(t,"generator"),b=PS.ppath.join(t,"build");await PS.xfs.mkdirPromise(C),await PS.xfs.mkdirPromise(b);let E={tempDir:PS.npath.fromPortablePath(C),buildDir:PS.npath.fromPortablePath(b),locator:X4.structUtils.stringifyLocator(r)};await PS.xfs.writeFilePromise(A,` +`);let b=await Zte.Configuration.find(r,this.context.plugins),{project:E,workspace:N}=await Zte.Project.find(b,r);if(N===null)throw new ugs.WorkspaceRequiredError(E.cwd,r);await E.restoreInstallState();let B=await Zxt.scriptUtils.getWorkspaceAccessibleBinaries(N);return B.has(I)===!1&&B.size===1&&typeof this.packages>"u"&&(I=Array.from(B)[0][0]),await Zxt.scriptUtils.executeWorkspaceAccessibleBinary(N,I,this.args,{packageAccessibleBinaries:B,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};X6e.paths=[["dlx"]];X6e.usage=Q6e.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});V4r.default=X6e});var fgs=H(K_e=>{"use strict";Object.defineProperty(K_e,"__esModule",{value:!0});K_e.DlxCommand=K_e.CreateCommand=void 0;var Ags=(Pa(),vi(Va)),dgs=Ags.__importDefault(lgs());K_e.CreateCommand=dgs.default;var pgs=Ags.__importDefault(ggs());K_e.DlxCommand=pgs.default;var mCl={commands:[dgs.default,pgs.default]};K_e.default=mCl});var P4r=H(Lxt=>{"use strict";Object.defineProperty(Lxt,"__esModule",{value:!0});Lxt.PROTOCOL=void 0;Lxt.PROTOCOL="exec:"});var Vxt=H(cGe=>{"use strict";Object.defineProperty(cGe,"__esModule",{value:!0});cGe.parseSpec=CCl;cGe.makeSpec=Igs;cGe.makeLocator=_Cl;cGe.loadGeneratorFile=yCl;var aGe=Bn(),Q4=no();function CCl(e){let{params:t,selector:r}=aGe.structUtils.parseRange(e),n=Q4.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?aGe.structUtils.parseLocator(t.locator):null,path:n}}function Igs({parentLocator:e,path:t,generatorHash:r,protocol:n}){let a=e!==null?{locator:aGe.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return aGe.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function _Cl(e,{parentLocator:t,path:r,generatorHash:n,protocol:a}){return aGe.structUtils.makeLocator(e,Igs({parentLocator:t,path:r,generatorHash:n,protocol:a}))}async function yCl(e,t,r){let{parentLocator:n,path:a}=aGe.structUtils.parseFileStyleRange(e,{protocol:t}),o=Q4.ppath.isAbsolute(a)?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.PortablePath.dot,localPath:Q4.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.ppath.relative(Q4.PortablePath.root,o.localPath)}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=Q4.ppath.join(l.prefixPath,a);return await A.readFilePromise(f,"utf8")}});var Cgs=H(Pxt=>{"use strict";Object.defineProperty(Pxt,"__esModule",{value:!0});Pxt.ExecFetcher=void 0;var X4=Bn(),hgs=Bn(),mgs=Bn(),PS=no(),W4r=P4r(),bCl=Vxt(),O4r=class{supports(t,r){return!!t.reference.startsWith(W4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=X4.structUtils.parseFileStyleRange(t.reference,{protocol:W4r.PROTOCOL});if(PS.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:PS.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:X4.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){let n=r.project.getDependencyMeta(t,null);if(!r.project.configuration.get("enableScripts")&&!n.built)throw new mgs.ReportError(mgs.MessageName.DISABLED_BUILD_SCRIPTS,`${X4.structUtils.prettyLocator(r.project.configuration,t)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await(0,bCl.loadGeneratorFile)(t.reference,W4r.PROTOCOL,r);return PS.xfs.mktempPromise(async o=>{let l=PS.ppath.join(o,"generator.js");return await PS.xfs.writeFilePromise(l,a),PS.xfs.mktempPromise(async A=>{if(await this.generatePackage(A,t,l,r),!PS.xfs.existsSync(PS.ppath.join(A,"build")))throw new Error("The script should have generated a build directory");return await X4.tgzUtils.makeArchiveFromDirectory(PS.ppath.join(A,"build"),{prefixPath:X4.structUtils.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(t,r,n,a){return await PS.xfs.mktempPromise(async o=>{let l=await X4.scriptUtils.makeScriptEnv({project:a.project,binFolder:o}),A=PS.ppath.join(t,"runtime.js");return await PS.xfs.mktempPromise(async f=>{let I=PS.ppath.join(f,"buildfile.log"),C=PS.ppath.join(t,"generator"),b=PS.ppath.join(t,"build");await PS.xfs.mkdirPromise(C),await PS.xfs.mkdirPromise(b);let E={tempDir:PS.npath.fromPortablePath(C),buildDir:PS.npath.fromPortablePath(b),locator:X4.structUtils.stringifyLocator(r)};await PS.xfs.writeFilePromise(A,` // Expose 'Module' as a global variable Object.defineProperty(global, 'Module', { get: () => require('module'), @@ -1499,7 +1499,7 @@ ${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.full enumerable: true, }); `);let N=l.NODE_OPTIONS||"",B=/\s*--require\s+\S*\.pnp\.c?js\s*/g;N=N.replace(B," ").trim(),l.NODE_OPTIONS=N;let{stdout:F,stderr:Q}=a.project.configuration.getSubprocessStreams(I,{header:`# This file contains the result of Yarn generating a package (${X4.structUtils.stringifyLocator(r)}) -`,prefix:X4.structUtils.prettyLocator(a.project.configuration,r),report:a.report}),{code:X}=await X4.execUtils.pipevp(process.execPath,["--require",PS.npath.fromPortablePath(A),PS.npath.fromPortablePath(n),X4.structUtils.stringifyIdent(r)],{cwd:t,env:l,stdin:null,stdout:F,stderr:Q});if(X!==0)throw PS.xfs.detachTemp(f),new Error(`Package generation failed (exit code ${X}, logs can be found here: ${hgs.formatUtils.pretty(a.project.configuration,I,hgs.formatUtils.Type.PATH)})`)})})}};Pxt.ExecFetcher=O4r});var ygs=H(Wxt=>{"use strict";Object.defineProperty(Wxt,"__esModule",{value:!0});Wxt.ExecResolver=void 0;var bCl=(Pa(),vi(Va)),ECl=Bn(),SCl=Bn(),_gs=Bn(),fue=Bn(),J6e=P4r(),M4r=bCl.__importStar(Vxt()),vCl=2,H4r=class{supportsDescriptor(t,r){return!!t.range.startsWith(J6e.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(J6e.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){if(n.project.tryWorkspaceByLocator(r)===null)throw new _gs.ReportError(_gs.MessageName.INVALID_MANIFEST,`${fue.structUtils.prettyLocator(n.project.configuration,r)} lists ${fue.structUtils.prettyDescriptor(n.project.configuration,t)} as dependency, but only workspaces can depend on exec: packages.`);return fue.structUtils.bindDescriptor(t,{locator:fue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=M4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await M4r.loadGeneratorFile(fue.structUtils.makeRange({protocol:J6e.PROTOCOL,source:a,selector:a,params:{locator:fue.structUtils.stringifyLocator(o)}}),J6e.PROTOCOL,n.fetchOptions),A=fue.hashUtils.makeHash(`${vCl}`,l).slice(0,6);return[M4r.makeLocator(t,{parentLocator:o,path:a,generatorHash:A,protocol:J6e.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await fue.miscUtils.releaseAfterUseAsync(async()=>await ECl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:SCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Wxt.ExecResolver=H4r});var Sgs=H(Lte=>{"use strict";Object.defineProperty(Lte,"__esModule",{value:!0});Lte.ExecResolver=Lte.ExecFetcher=Lte.execUtils=void 0;var BCl=(Pa(),vi(Va)),bgs=Cgs();Object.defineProperty(Lte,"ExecFetcher",{enumerable:!0,get:function(){return bgs.ExecFetcher}});var Egs=ygs();Object.defineProperty(Lte,"ExecResolver",{enumerable:!0,get:function(){return Egs.ExecResolver}});var wCl=BCl.__importStar(Vxt());Lte.execUtils=wCl;var TCl={fetchers:[bgs.ExecFetcher],resolvers:[Egs.ExecResolver]};Lte.default=TCl});var lGe=H(Iue=>{"use strict";Object.defineProperty(Iue,"__esModule",{value:!0});Iue.PROTOCOL=Iue.TARBALL_REGEXP=Iue.FILE_REGEXP=void 0;Iue.FILE_REGEXP=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/;Iue.TARBALL_REGEXP=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;Iue.PROTOCOL="file:"});var uGe=H(hue=>{"use strict";Object.defineProperty(hue,"__esModule",{value:!0});hue.parseSpec=NCl;hue.makeSpec=vgs;hue.makeLocator=DCl;hue.fetchArchiveFromLocator=kCl;hue.makeArchiveFromLocator=Bgs;hue.makeBufferFromLocator=xCl;var J4=Bn(),uw=no(),RCl=lGe();function NCl(e){let{params:t,selector:r}=J4.structUtils.parseRange(e),n=uw.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?J4.structUtils.parseLocator(t.locator):null,path:n}}function vgs({parentLocator:e,path:t,hash:r,protocol:n}){let a=e!==null?{locator:J4.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return J4.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function DCl(e,{parentLocator:t,path:r,hash:n,protocol:a}){return J4.structUtils.makeLocator(e,vgs({parentLocator:t,path:r,hash:n,protocol:a}))}async function kCl(e,t){let{parentLocator:r,path:n}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:RCl.PROTOCOL}),a=uw.ppath.isAbsolute(n)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await t.fetcher.fetch(r,t),o=a.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,a.localPath)}:a;a!==o&&a.releaseFs&&a.releaseFs();let l=o.packageFs,A=uw.ppath.join(o.prefixPath,n);return await J4.miscUtils.releaseAfterUseAsync(async()=>await l.readFilePromise(A),o.releaseFs)}async function Bgs(e,{protocol:t,fetchOptions:r,inMemory:n=!1}){let{parentLocator:a,path:o}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:t}),l=uw.ppath.isAbsolute(o)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await r.fetcher.fetch(a,r),A=l.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,l.localPath)}:l;l!==A&&l.releaseFs&&l.releaseFs();let f=A.packageFs,I=uw.ppath.join(A.prefixPath,o);return await J4.miscUtils.releaseAfterUseAsync(async()=>await J4.tgzUtils.makeArchiveFromDirectory(I,{baseFs:f,prefixPath:J4.structUtils.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:n}),A.releaseFs)}async function xCl(e,{protocol:t,fetchOptions:r}){return(await Bgs(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}});var Tgs=H(Oxt=>{"use strict";Object.defineProperty(Oxt,"__esModule",{value:!0});Oxt.FileFetcher=void 0;var GCl=(Pa(),vi(Va)),Y4r=Bn(),wgs=no(),Q4r=lGe(),FCl=GCl.__importStar(uGe()),X4r=class{supports(t,r){return!!t.reference.startsWith(Q4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=Y4r.structUtils.parseFileStyleRange(t.reference,{protocol:Q4r.PROTOCOL});if(wgs.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:wgs.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Y4r.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Y4r.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){return FCl.makeArchiveFromLocator(t,{protocol:Q4r.PROTOCOL,fetchOptions:r})}};Oxt.FileFetcher=X4r});var Rgs=H(Mxt=>{"use strict";Object.defineProperty(Mxt,"__esModule",{value:!0});Mxt.FileResolver=void 0;var ZCl=(Pa(),vi(Va)),mue=Bn(),LCl=Bn(),VCl=Bn(),Cue=lGe(),J4r=ZCl.__importStar(uGe()),PCl=2,U4r=class{supportsDescriptor(t,r){return t.range.match(Cue.FILE_REGEXP)?!0:!!t.range.startsWith(Cue.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(Cue.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Cue.FILE_REGEXP.test(t.range)&&(t=mue.structUtils.makeDescriptor(t,`${Cue.PROTOCOL}${t.range}`)),mue.structUtils.bindDescriptor(t,{locator:mue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=J4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await J4r.makeBufferFromLocator(mue.structUtils.makeLocator(t,mue.structUtils.makeRange({protocol:Cue.PROTOCOL,source:a,selector:a,params:{locator:mue.structUtils.stringifyLocator(o)}})),{protocol:Cue.PROTOCOL,fetchOptions:n.fetchOptions}),A=mue.hashUtils.makeHash(`${PCl}`,l).slice(0,6);return[J4r.makeLocator(t,{parentLocator:o,path:a,hash:A,protocol:Cue.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await mue.miscUtils.releaseAfterUseAsync(async()=>await VCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:LCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Mxt.FileResolver=U4r});var Dgs=H(Yxt=>{"use strict";Object.defineProperty(Yxt,"__esModule",{value:!0});Yxt.TarballFileFetcher=void 0;var WCl=(Pa(),vi(Va)),Hxt=Bn(),Ngs=lGe(),OCl=WCl.__importStar(uGe()),K4r=class{supports(t,r){return Ngs.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Ngs.PROTOCOL):!1}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Hxt.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Hxt.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromDisk(t,r){let n=await OCl.fetchArchiveFromLocator(t,r);return await Hxt.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:Hxt.structUtils.getIdentVendorPath(t),stripComponents:1})}};Yxt.TarballFileFetcher=K4r});var kgs=H(Jxt=>{"use strict";Object.defineProperty(Jxt,"__esModule",{value:!0});Jxt.TarballFileResolver=void 0;var MCl=(Pa(),vi(Va)),HCl=Bn(),YCl=Bn(),QCl=Bn(),Qxt=Bn(),Vte=lGe(),Xxt=MCl.__importStar(uGe()),j4r=class{supportsDescriptor(t,r){return Vte.TARBALL_REGEXP.test(t.range)?!!(t.range.startsWith(Vte.PROTOCOL)||Vte.FILE_REGEXP.test(t.range)):!1}supportsLocator(t,r){return Vte.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Vte.PROTOCOL):!1}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Vte.FILE_REGEXP.test(t.range)&&(t=Qxt.structUtils.makeDescriptor(t,`${Vte.PROTOCOL}${t.range}`)),Qxt.structUtils.bindDescriptor(t,{locator:Qxt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=Xxt.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=Xxt.makeLocator(t,{parentLocator:o,path:a,hash:"",protocol:Vte.PROTOCOL}),A=await Xxt.fetchArchiveFromLocator(l,n.fetchOptions),f=HCl.hashUtils.makeHash(A).slice(0,6);return[Xxt.makeLocator(t,{parentLocator:o,path:a,hash:f,protocol:Vte.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qxt.miscUtils.releaseAfterUseAsync(async()=>await YCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:QCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Jxt.TarballFileResolver=j4r});var Lgs=H(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TarballFileResolver=PO.TarballFileFetcher=PO.FileResolver=PO.FileFetcher=PO.fileUtils=void 0;var XCl=(Pa(),vi(Va)),xgs=Tgs();Object.defineProperty(PO,"FileFetcher",{enumerable:!0,get:function(){return xgs.FileFetcher}});var Ggs=Rgs();Object.defineProperty(PO,"FileResolver",{enumerable:!0,get:function(){return Ggs.FileResolver}});var Fgs=Dgs();Object.defineProperty(PO,"TarballFileFetcher",{enumerable:!0,get:function(){return Fgs.TarballFileFetcher}});var Zgs=kgs();Object.defineProperty(PO,"TarballFileResolver",{enumerable:!0,get:function(){return Zgs.TarballFileResolver}});var JCl=XCl.__importStar(uGe());PO.fileUtils=JCl;var UCl={fetchers:[Fgs.TarballFileFetcher,xgs.FileFetcher],resolvers:[Zgs.TarballFileResolver,Ggs.FileResolver]};PO.default=UCl});var z4r=H(U6e=>{"use strict";Object.defineProperty(U6e,"__esModule",{value:!0});U6e.isGithubUrl=zCl;U6e.parseGithubUrl=qCl;U6e.invalidGithubUrlMessage=Pgs;var KCl=(Pa(),vi(Va)),jCl=KCl.__importDefault(wt("querystring")),Vgs=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function zCl(e){return e?Vgs.some(t=>!!e.match(t)):!1}function qCl(e){let t;for(let A of Vgs)if(t=e.match(A),t)break;if(!t)throw new Error(Pgs(e));let[,r,n,a,o="master"]=t,{commit:l}=jCl.default.parse(o);return o=l||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:a,treeish:o}}function Pgs(e){return`Input cannot be parsed as a valid GitHub URL ('${e}').`}});var Ogs=H(Kxt=>{"use strict";Object.defineProperty(Kxt,"__esModule",{value:!0});Kxt.GithubFetcher=void 0;var $Cl=(Pa(),vi(Va)),j_e=Bn(),Uxt=no(),e_l=nDe(),Wgs=$Cl.__importStar(z4r()),q4r=class{supports(t,r){return!!Wgs.isGithubUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j_e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:j_e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await j_e.httpUtils.get(this.getLocatorUrl(t,r),{configuration:r.project.configuration});return await Uxt.xfs.mktempPromise(async a=>{let o=new Uxt.CwdFS(a);await j_e.tgzUtils.extractArchiveTo(n,o,{stripComponents:1});let l=e_l.gitUtils.splitRepoUrl(t.reference),A=Uxt.ppath.join(a,"package.tgz");await j_e.scriptUtils.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:l.extra.workspace,locator:t});let f=await Uxt.xfs.readFilePromise(A);return await j_e.tgzUtils.convertToZip(f,{configuration:r.project.configuration,prefixPath:j_e.structUtils.getIdentVendorPath(t),stripComponents:1})})}getLocatorUrl(t,r){let{auth:n,username:a,reponame:o,treeish:l}=Wgs.parseGithubUrl(t.reference);return`https://${n?`${n}@`:""}github.com/${a}/${o}/archive/${l}.tar.gz`}};Kxt.GithubFetcher=q4r});var Hgs=H(z_e=>{"use strict";Object.defineProperty(z_e,"__esModule",{value:!0});z_e.GithubFetcher=z_e.githubUtils=void 0;var t_l=(Pa(),vi(Va)),Mgs=Ogs();Object.defineProperty(z_e,"GithubFetcher",{enumerable:!0,get:function(){return Mgs.GithubFetcher}});var r_l=t_l.__importStar(z4r());z_e.githubUtils=r_l;var n_l={hooks:{async fetchHostedRepository(e,t,r){if(e!==null)return e;let n=new Mgs.GithubFetcher;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch{return null}}}};z_e.default=n_l});var eJr=H($4r=>{"use strict";Object.defineProperty($4r,"__esModule",{value:!0});$4r.isTgzUrl=i_l;function i_l(e){let t;try{t=new URL(e)}catch{return!1}return!(t.protocol!=="http:"&&t.protocol!=="https:"||!t.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}});var Ygs=H(jxt=>{"use strict";Object.defineProperty(jxt,"__esModule",{value:!0});jxt.TarballHttpFetcher=void 0;var s_l=(Pa(),vi(Va)),K6e=Bn(),o_l=s_l.__importStar(eJr()),tJr=class{supports(t,r){return o_l.isTgzUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${K6e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:K6e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await K6e.httpUtils.get(t.reference,{configuration:r.project.configuration});return await K6e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:K6e.structUtils.getIdentVendorPath(t),stripComponents:1})}};jxt.TarballHttpFetcher=tJr});var Jgs=H(zxt=>{"use strict";Object.defineProperty(zxt,"__esModule",{value:!0});zxt.TarballHttpResolver=void 0;var a_l=(Pa(),vi(Va)),c_l=Bn(),l_l=Bn(),Qgs=Bn(),Xgs=a_l.__importStar(eJr()),rJr=class{supportsDescriptor(t,r){return Xgs.isTgzUrl(t.range)}supportsLocator(t,r){return Xgs.isTgzUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[Qgs.structUtils.convertDescriptorToLocator(t)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qgs.miscUtils.releaseAfterUseAsync(async()=>await c_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:l_l.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};zxt.TarballHttpResolver=rJr});var jgs=H(q_e=>{"use strict";Object.defineProperty(q_e,"__esModule",{value:!0});q_e.TarballHttpResolver=q_e.TarballHttpFetcher=void 0;var Ugs=Ygs();Object.defineProperty(q_e,"TarballHttpFetcher",{enumerable:!0,get:function(){return Ugs.TarballHttpFetcher}});var Kgs=Jgs();Object.defineProperty(q_e,"TarballHttpResolver",{enumerable:!0,get:function(){return Kgs.TarballHttpResolver}});var u_l={fetchers:[Ugs.TarballHttpFetcher],resolvers:[Kgs.TarballHttpResolver]};q_e.default=u_l});var iJr=H(nJr=>{"use strict";Object.defineProperty(nJr,"__esModule",{value:!0});var g_l=el(),A6=Bn(),$_e=Bn(),Q_=no(),_ue=($c(),vi(rg)),j6e=class extends g_l.BaseCommand{constructor(){super(...arguments),this.private=_ue.Option.Boolean("-p,--private",!1,{description:"Initialize a private package"}),this.workspace=_ue.Option.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"}),this.install=_ue.Option.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"}),this.name=_ue.Option.String("-n,--name",{description:"Initialize a package with the given name"}),this.usev2=_ue.Option.Boolean("-2",!1,{hidden:!0}),this.yes=_ue.Option.Boolean("-y,--yes",{hidden:!0})}async execute(){let t=await A6.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(t,r):await this.executeRegular(t)}async executeProxy(t,r){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new _ue.UsageError("Cannot use the --install flag from within a project subdirectory");Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(n)||await Q_.xfs.writeFilePromise(n,"");let a=await this.cli.run(["set","version",r],{quiet:!0});if(a!==0)return a;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.name&&o.push(`-n=${this.name}`),this.yes&&o.push("-y"),await Q_.xfs.mktempPromise(async l=>{let{code:A}=await $_e.execUtils.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await $_e.scriptUtils.makeScriptEnv({binFolder:l})});return A})}async initialize(){}async executeRegular(t){let r=null;try{r=(await A6.Project.find(t,this.context.cwd)).project}catch{r=null}Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=await A6.Manifest.tryFind(this.context.cwd),a=n??new A6.Manifest,o=Object.fromEntries(t.get("initFields").entries());a.load(o),a.name=a.name??$_e.structUtils.makeIdent(t.get("initScope"),this.name??Q_.ppath.basename(this.context.cwd)),a.packageManager=A6.YarnVersion&&A6.miscUtils.isTaggedYarnVersion(A6.YarnVersion)?`yarn@${A6.YarnVersion}`:null,(!n&&this.workspace||this.private)&&(a.private=!0),this.workspace&&a.workspaceDefinitions.length===0&&(await Q_.xfs.mkdirPromise(Q_.ppath.join(this.context.cwd,"packages"),{recursive:!0}),a.workspaceDefinitions=[{pattern:"packages/*"}]);let l={};a.exportTo(l);let A=Q_.ppath.join(this.context.cwd,A6.Manifest.fileName);await Q_.xfs.changeFilePromise(A,`${JSON.stringify(l,null,2)} +`,prefix:X4.structUtils.prettyLocator(a.project.configuration,r),report:a.report}),{code:X}=await X4.execUtils.pipevp(process.execPath,["--require",PS.npath.fromPortablePath(A),PS.npath.fromPortablePath(n),X4.structUtils.stringifyIdent(r)],{cwd:t,env:l,stdin:null,stdout:F,stderr:Q});if(X!==0)throw PS.xfs.detachTemp(f),new Error(`Package generation failed (exit code ${X}, logs can be found here: ${hgs.formatUtils.pretty(a.project.configuration,I,hgs.formatUtils.Type.PATH)})`)})})}};Pxt.ExecFetcher=O4r});var ygs=H(Wxt=>{"use strict";Object.defineProperty(Wxt,"__esModule",{value:!0});Wxt.ExecResolver=void 0;var ECl=(Pa(),vi(Va)),SCl=Bn(),vCl=Bn(),_gs=Bn(),fue=Bn(),J6e=P4r(),M4r=ECl.__importStar(Vxt()),BCl=2,H4r=class{supportsDescriptor(t,r){return!!t.range.startsWith(J6e.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(J6e.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){if(n.project.tryWorkspaceByLocator(r)===null)throw new _gs.ReportError(_gs.MessageName.INVALID_MANIFEST,`${fue.structUtils.prettyLocator(n.project.configuration,r)} lists ${fue.structUtils.prettyDescriptor(n.project.configuration,t)} as dependency, but only workspaces can depend on exec: packages.`);return fue.structUtils.bindDescriptor(t,{locator:fue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=M4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await M4r.loadGeneratorFile(fue.structUtils.makeRange({protocol:J6e.PROTOCOL,source:a,selector:a,params:{locator:fue.structUtils.stringifyLocator(o)}}),J6e.PROTOCOL,n.fetchOptions),A=fue.hashUtils.makeHash(`${BCl}`,l).slice(0,6);return[M4r.makeLocator(t,{parentLocator:o,path:a,generatorHash:A,protocol:J6e.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await fue.miscUtils.releaseAfterUseAsync(async()=>await SCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:vCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Wxt.ExecResolver=H4r});var Sgs=H(Lte=>{"use strict";Object.defineProperty(Lte,"__esModule",{value:!0});Lte.ExecResolver=Lte.ExecFetcher=Lte.execUtils=void 0;var wCl=(Pa(),vi(Va)),bgs=Cgs();Object.defineProperty(Lte,"ExecFetcher",{enumerable:!0,get:function(){return bgs.ExecFetcher}});var Egs=ygs();Object.defineProperty(Lte,"ExecResolver",{enumerable:!0,get:function(){return Egs.ExecResolver}});var TCl=wCl.__importStar(Vxt());Lte.execUtils=TCl;var RCl={fetchers:[bgs.ExecFetcher],resolvers:[Egs.ExecResolver]};Lte.default=RCl});var lGe=H(Iue=>{"use strict";Object.defineProperty(Iue,"__esModule",{value:!0});Iue.PROTOCOL=Iue.TARBALL_REGEXP=Iue.FILE_REGEXP=void 0;Iue.FILE_REGEXP=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/;Iue.TARBALL_REGEXP=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;Iue.PROTOCOL="file:"});var uGe=H(hue=>{"use strict";Object.defineProperty(hue,"__esModule",{value:!0});hue.parseSpec=DCl;hue.makeSpec=vgs;hue.makeLocator=kCl;hue.fetchArchiveFromLocator=xCl;hue.makeArchiveFromLocator=Bgs;hue.makeBufferFromLocator=GCl;var J4=Bn(),uw=no(),NCl=lGe();function DCl(e){let{params:t,selector:r}=J4.structUtils.parseRange(e),n=uw.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?J4.structUtils.parseLocator(t.locator):null,path:n}}function vgs({parentLocator:e,path:t,hash:r,protocol:n}){let a=e!==null?{locator:J4.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return J4.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function kCl(e,{parentLocator:t,path:r,hash:n,protocol:a}){return J4.structUtils.makeLocator(e,vgs({parentLocator:t,path:r,hash:n,protocol:a}))}async function xCl(e,t){let{parentLocator:r,path:n}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:NCl.PROTOCOL}),a=uw.ppath.isAbsolute(n)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await t.fetcher.fetch(r,t),o=a.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,a.localPath)}:a;a!==o&&a.releaseFs&&a.releaseFs();let l=o.packageFs,A=uw.ppath.join(o.prefixPath,n);return await J4.miscUtils.releaseAfterUseAsync(async()=>await l.readFilePromise(A),o.releaseFs)}async function Bgs(e,{protocol:t,fetchOptions:r,inMemory:n=!1}){let{parentLocator:a,path:o}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:t}),l=uw.ppath.isAbsolute(o)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await r.fetcher.fetch(a,r),A=l.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,l.localPath)}:l;l!==A&&l.releaseFs&&l.releaseFs();let f=A.packageFs,I=uw.ppath.join(A.prefixPath,o);return await J4.miscUtils.releaseAfterUseAsync(async()=>await J4.tgzUtils.makeArchiveFromDirectory(I,{baseFs:f,prefixPath:J4.structUtils.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:n}),A.releaseFs)}async function GCl(e,{protocol:t,fetchOptions:r}){return(await Bgs(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}});var Tgs=H(Oxt=>{"use strict";Object.defineProperty(Oxt,"__esModule",{value:!0});Oxt.FileFetcher=void 0;var FCl=(Pa(),vi(Va)),Y4r=Bn(),wgs=no(),Q4r=lGe(),ZCl=FCl.__importStar(uGe()),X4r=class{supports(t,r){return!!t.reference.startsWith(Q4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=Y4r.structUtils.parseFileStyleRange(t.reference,{protocol:Q4r.PROTOCOL});if(wgs.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:wgs.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Y4r.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Y4r.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){return ZCl.makeArchiveFromLocator(t,{protocol:Q4r.PROTOCOL,fetchOptions:r})}};Oxt.FileFetcher=X4r});var Rgs=H(Mxt=>{"use strict";Object.defineProperty(Mxt,"__esModule",{value:!0});Mxt.FileResolver=void 0;var LCl=(Pa(),vi(Va)),mue=Bn(),VCl=Bn(),PCl=Bn(),Cue=lGe(),J4r=LCl.__importStar(uGe()),WCl=2,U4r=class{supportsDescriptor(t,r){return t.range.match(Cue.FILE_REGEXP)?!0:!!t.range.startsWith(Cue.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(Cue.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Cue.FILE_REGEXP.test(t.range)&&(t=mue.structUtils.makeDescriptor(t,`${Cue.PROTOCOL}${t.range}`)),mue.structUtils.bindDescriptor(t,{locator:mue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=J4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await J4r.makeBufferFromLocator(mue.structUtils.makeLocator(t,mue.structUtils.makeRange({protocol:Cue.PROTOCOL,source:a,selector:a,params:{locator:mue.structUtils.stringifyLocator(o)}})),{protocol:Cue.PROTOCOL,fetchOptions:n.fetchOptions}),A=mue.hashUtils.makeHash(`${WCl}`,l).slice(0,6);return[J4r.makeLocator(t,{parentLocator:o,path:a,hash:A,protocol:Cue.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await mue.miscUtils.releaseAfterUseAsync(async()=>await PCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:VCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Mxt.FileResolver=U4r});var Dgs=H(Yxt=>{"use strict";Object.defineProperty(Yxt,"__esModule",{value:!0});Yxt.TarballFileFetcher=void 0;var OCl=(Pa(),vi(Va)),Hxt=Bn(),Ngs=lGe(),MCl=OCl.__importStar(uGe()),K4r=class{supports(t,r){return Ngs.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Ngs.PROTOCOL):!1}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Hxt.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Hxt.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromDisk(t,r){let n=await MCl.fetchArchiveFromLocator(t,r);return await Hxt.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:Hxt.structUtils.getIdentVendorPath(t),stripComponents:1})}};Yxt.TarballFileFetcher=K4r});var kgs=H(Jxt=>{"use strict";Object.defineProperty(Jxt,"__esModule",{value:!0});Jxt.TarballFileResolver=void 0;var HCl=(Pa(),vi(Va)),YCl=Bn(),QCl=Bn(),XCl=Bn(),Qxt=Bn(),Vte=lGe(),Xxt=HCl.__importStar(uGe()),j4r=class{supportsDescriptor(t,r){return Vte.TARBALL_REGEXP.test(t.range)?!!(t.range.startsWith(Vte.PROTOCOL)||Vte.FILE_REGEXP.test(t.range)):!1}supportsLocator(t,r){return Vte.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Vte.PROTOCOL):!1}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Vte.FILE_REGEXP.test(t.range)&&(t=Qxt.structUtils.makeDescriptor(t,`${Vte.PROTOCOL}${t.range}`)),Qxt.structUtils.bindDescriptor(t,{locator:Qxt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=Xxt.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=Xxt.makeLocator(t,{parentLocator:o,path:a,hash:"",protocol:Vte.PROTOCOL}),A=await Xxt.fetchArchiveFromLocator(l,n.fetchOptions),f=YCl.hashUtils.makeHash(A).slice(0,6);return[Xxt.makeLocator(t,{parentLocator:o,path:a,hash:f,protocol:Vte.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qxt.miscUtils.releaseAfterUseAsync(async()=>await QCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:XCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Jxt.TarballFileResolver=j4r});var Lgs=H(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TarballFileResolver=PO.TarballFileFetcher=PO.FileResolver=PO.FileFetcher=PO.fileUtils=void 0;var JCl=(Pa(),vi(Va)),xgs=Tgs();Object.defineProperty(PO,"FileFetcher",{enumerable:!0,get:function(){return xgs.FileFetcher}});var Ggs=Rgs();Object.defineProperty(PO,"FileResolver",{enumerable:!0,get:function(){return Ggs.FileResolver}});var Fgs=Dgs();Object.defineProperty(PO,"TarballFileFetcher",{enumerable:!0,get:function(){return Fgs.TarballFileFetcher}});var Zgs=kgs();Object.defineProperty(PO,"TarballFileResolver",{enumerable:!0,get:function(){return Zgs.TarballFileResolver}});var UCl=JCl.__importStar(uGe());PO.fileUtils=UCl;var KCl={fetchers:[Fgs.TarballFileFetcher,xgs.FileFetcher],resolvers:[Zgs.TarballFileResolver,Ggs.FileResolver]};PO.default=KCl});var z4r=H(U6e=>{"use strict";Object.defineProperty(U6e,"__esModule",{value:!0});U6e.isGithubUrl=qCl;U6e.parseGithubUrl=$Cl;U6e.invalidGithubUrlMessage=Pgs;var jCl=(Pa(),vi(Va)),zCl=jCl.__importDefault(wt("querystring")),Vgs=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function qCl(e){return e?Vgs.some(t=>!!e.match(t)):!1}function $Cl(e){let t;for(let A of Vgs)if(t=e.match(A),t)break;if(!t)throw new Error(Pgs(e));let[,r,n,a,o="master"]=t,{commit:l}=zCl.default.parse(o);return o=l||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:a,treeish:o}}function Pgs(e){return`Input cannot be parsed as a valid GitHub URL ('${e}').`}});var Ogs=H(Kxt=>{"use strict";Object.defineProperty(Kxt,"__esModule",{value:!0});Kxt.GithubFetcher=void 0;var e_l=(Pa(),vi(Va)),j_e=Bn(),Uxt=no(),t_l=nDe(),Wgs=e_l.__importStar(z4r()),q4r=class{supports(t,r){return!!Wgs.isGithubUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j_e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:j_e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await j_e.httpUtils.get(this.getLocatorUrl(t,r),{configuration:r.project.configuration});return await Uxt.xfs.mktempPromise(async a=>{let o=new Uxt.CwdFS(a);await j_e.tgzUtils.extractArchiveTo(n,o,{stripComponents:1});let l=t_l.gitUtils.splitRepoUrl(t.reference),A=Uxt.ppath.join(a,"package.tgz");await j_e.scriptUtils.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:l.extra.workspace,locator:t});let f=await Uxt.xfs.readFilePromise(A);return await j_e.tgzUtils.convertToZip(f,{configuration:r.project.configuration,prefixPath:j_e.structUtils.getIdentVendorPath(t),stripComponents:1})})}getLocatorUrl(t,r){let{auth:n,username:a,reponame:o,treeish:l}=Wgs.parseGithubUrl(t.reference);return`https://${n?`${n}@`:""}github.com/${a}/${o}/archive/${l}.tar.gz`}};Kxt.GithubFetcher=q4r});var Hgs=H(z_e=>{"use strict";Object.defineProperty(z_e,"__esModule",{value:!0});z_e.GithubFetcher=z_e.githubUtils=void 0;var r_l=(Pa(),vi(Va)),Mgs=Ogs();Object.defineProperty(z_e,"GithubFetcher",{enumerable:!0,get:function(){return Mgs.GithubFetcher}});var n_l=r_l.__importStar(z4r());z_e.githubUtils=n_l;var i_l={hooks:{async fetchHostedRepository(e,t,r){if(e!==null)return e;let n=new Mgs.GithubFetcher;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch{return null}}}};z_e.default=i_l});var eJr=H($4r=>{"use strict";Object.defineProperty($4r,"__esModule",{value:!0});$4r.isTgzUrl=s_l;function s_l(e){let t;try{t=new URL(e)}catch{return!1}return!(t.protocol!=="http:"&&t.protocol!=="https:"||!t.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}});var Ygs=H(jxt=>{"use strict";Object.defineProperty(jxt,"__esModule",{value:!0});jxt.TarballHttpFetcher=void 0;var o_l=(Pa(),vi(Va)),K6e=Bn(),a_l=o_l.__importStar(eJr()),tJr=class{supports(t,r){return a_l.isTgzUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${K6e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:K6e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await K6e.httpUtils.get(t.reference,{configuration:r.project.configuration});return await K6e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:K6e.structUtils.getIdentVendorPath(t),stripComponents:1})}};jxt.TarballHttpFetcher=tJr});var Jgs=H(zxt=>{"use strict";Object.defineProperty(zxt,"__esModule",{value:!0});zxt.TarballHttpResolver=void 0;var c_l=(Pa(),vi(Va)),l_l=Bn(),u_l=Bn(),Qgs=Bn(),Xgs=c_l.__importStar(eJr()),rJr=class{supportsDescriptor(t,r){return Xgs.isTgzUrl(t.range)}supportsLocator(t,r){return Xgs.isTgzUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[Qgs.structUtils.convertDescriptorToLocator(t)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qgs.miscUtils.releaseAfterUseAsync(async()=>await l_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:u_l.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};zxt.TarballHttpResolver=rJr});var jgs=H(q_e=>{"use strict";Object.defineProperty(q_e,"__esModule",{value:!0});q_e.TarballHttpResolver=q_e.TarballHttpFetcher=void 0;var Ugs=Ygs();Object.defineProperty(q_e,"TarballHttpFetcher",{enumerable:!0,get:function(){return Ugs.TarballHttpFetcher}});var Kgs=Jgs();Object.defineProperty(q_e,"TarballHttpResolver",{enumerable:!0,get:function(){return Kgs.TarballHttpResolver}});var g_l={fetchers:[Ugs.TarballHttpFetcher],resolvers:[Kgs.TarballHttpResolver]};q_e.default=g_l});var iJr=H(nJr=>{"use strict";Object.defineProperty(nJr,"__esModule",{value:!0});var A_l=el(),A6=Bn(),$_e=Bn(),Q_=no(),_ue=($c(),vi(rg)),j6e=class extends A_l.BaseCommand{constructor(){super(...arguments),this.private=_ue.Option.Boolean("-p,--private",!1,{description:"Initialize a private package"}),this.workspace=_ue.Option.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"}),this.install=_ue.Option.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"}),this.name=_ue.Option.String("-n,--name",{description:"Initialize a package with the given name"}),this.usev2=_ue.Option.Boolean("-2",!1,{hidden:!0}),this.yes=_ue.Option.Boolean("-y,--yes",{hidden:!0})}async execute(){let t=await A6.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(t,r):await this.executeRegular(t)}async executeProxy(t,r){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new _ue.UsageError("Cannot use the --install flag from within a project subdirectory");Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(n)||await Q_.xfs.writeFilePromise(n,"");let a=await this.cli.run(["set","version",r],{quiet:!0});if(a!==0)return a;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.name&&o.push(`-n=${this.name}`),this.yes&&o.push("-y"),await Q_.xfs.mktempPromise(async l=>{let{code:A}=await $_e.execUtils.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await $_e.scriptUtils.makeScriptEnv({binFolder:l})});return A})}async initialize(){}async executeRegular(t){let r=null;try{r=(await A6.Project.find(t,this.context.cwd)).project}catch{r=null}Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=await A6.Manifest.tryFind(this.context.cwd),a=n??new A6.Manifest,o=Object.fromEntries(t.get("initFields").entries());a.load(o),a.name=a.name??$_e.structUtils.makeIdent(t.get("initScope"),this.name??Q_.ppath.basename(this.context.cwd)),a.packageManager=A6.YarnVersion&&A6.miscUtils.isTaggedYarnVersion(A6.YarnVersion)?`yarn@${A6.YarnVersion}`:null,(!n&&this.workspace||this.private)&&(a.private=!0),this.workspace&&a.workspaceDefinitions.length===0&&(await Q_.xfs.mkdirPromise(Q_.ppath.join(this.context.cwd,"packages"),{recursive:!0}),a.workspaceDefinitions=[{pattern:"packages/*"}]);let l={};a.exportTo(l);let A=Q_.ppath.join(this.context.cwd,A6.Manifest.fileName);await Q_.xfs.changeFilePromise(A,`${JSON.stringify(l,null,2)} `,{automaticNewlines:!0});let f=[A],I=Q_.ppath.join(this.context.cwd,"README.md");if(Q_.xfs.existsSync(I)||(await Q_.xfs.writeFilePromise(I,`# ${$_e.structUtils.stringifyIdent(a.name)} `),f.push(I)),!r||r.cwd===this.context.cwd){let C=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(C)||(await Q_.xfs.writeFilePromise(C,""),f.push(C));let E=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ce=>`${ce} `).join(""),N=Q_.ppath.join(this.context.cwd,".gitignore");Q_.xfs.existsSync(N)||(await Q_.xfs.writeFilePromise(N,E),f.push(N));let F=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ce=>`${ce} @@ -1507,47 +1507,47 @@ ${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.full `;for(let[ce,fe]of Object.entries(X)){ae+=` [${ce}] `;for(let[ue,de]of Object.entries(fe)){let be=ue.replace(/[A-Z]/g,Se=>`_${Se.toLowerCase()}`);ae+=`${be} = ${de} -`}}let ne=Q_.ppath.join(this.context.cwd,".editorconfig");Q_.xfs.existsSync(ne)||(await Q_.xfs.writeFilePromise(ne,ae),f.push(ne)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),Q_.xfs.existsSync(Q_.ppath.join(this.context.cwd,".git"))||(await $_e.execUtils.execvp("git",["init"],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["add","--",...f],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};j6e.paths=[["init"]];j6e.usage=_ue.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});nJr.default=j6e});var qgs=H(sJr=>{"use strict";Object.defineProperty(sJr,"__esModule",{value:!0});var A_l=(Pa(),vi(Va)),zgs=($c(),vi(rg)),d_l=A_l.__importDefault(iJr()),qxt=class extends d_l.default{constructor(){super(...arguments),this.initializer=zgs.Option.String(),this.argv=zgs.Option.Proxy()}async initialize(){this.context.stdout.write(` -`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};qxt.paths=[["init"]];sJr.default=qxt});var rAs=H(e0e=>{"use strict";Object.defineProperty(e0e,"__esModule",{value:!0});e0e.InitInitializerCommand=e0e.InitCommand=void 0;var $gs=(Pa(),vi(Va)),z6e=Bn(),eAs=$gs.__importDefault(qgs());e0e.InitInitializerCommand=eAs.default;var tAs=$gs.__importDefault(iJr());e0e.InitCommand=tAs.default;var p_l={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:z6e.SettingsType.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}}},commands:[tAs.default,eAs.default]};e0e.default=p_l});var q6e=H(gGe=>{"use strict";Object.defineProperty(gGe,"__esModule",{value:!0});gGe.LINK_PROTOCOL=gGe.PORTAL_PROTOCOL=void 0;gGe.PORTAL_PROTOCOL="portal:";gGe.LINK_PROTOCOL="link:"});var iAs=H($xt=>{"use strict";Object.defineProperty($xt,"__esModule",{value:!0});$xt.LinkFetcher=void 0;var nAs=Bn(),ux=no(),oJr=q6e(),aJr=class{supports(t,r){return!!t.reference.startsWith(oJr.LINK_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL});if(ux.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:ux.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL}),o=ux.ppath.isAbsolute(a)?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.PortablePath.dot,localPath:ux.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.ppath.relative(ux.PortablePath.root,o.localPath),localPath:ux.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=ux.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new ux.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0,localPath:f}:{packageFs:new ux.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0}}};$xt.LinkFetcher=aJr});var sAs=H(tGt=>{"use strict";Object.defineProperty(tGt,"__esModule",{value:!0});tGt.LinkResolver=void 0;var f_l=Bn(),cJr=Bn(),I_l=no(),eGt=q6e(),lJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(eGt.LINK_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(eGt.LINK_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return cJr.structUtils.bindDescriptor(t,{locator:cJr.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(eGt.LINK_PROTOCOL.length);return[cJr.structUtils.makeLocator(t,`${eGt.LINK_PROTOCOL}${I_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){return{...t,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:f_l.LinkType.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};tGt.LinkResolver=lJr});var aAs=H(rGt=>{"use strict";Object.defineProperty(rGt,"__esModule",{value:!0});rGt.PortalFetcher=void 0;var oAs=Bn(),gx=no(),uJr=q6e(),gJr=class{supports(t,r){return!!t.reference.startsWith(uJr.PORTAL_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL});if(gx.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:gx.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL}),o=gx.ppath.isAbsolute(a)?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.PortablePath.dot,localPath:gx.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.ppath.relative(gx.PortablePath.root,o.localPath),localPath:gx.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=gx.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new gx.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot,localPath:f}:{packageFs:new gx.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot}}};rGt.PortalFetcher=gJr});var cAs=H(sGt=>{"use strict";Object.defineProperty(sGt,"__esModule",{value:!0});sGt.PortalResolver=void 0;var h_l=Bn(),m_l=Bn(),nGt=Bn(),C_l=no(),iGt=q6e(),AJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(iGt.PORTAL_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(iGt.PORTAL_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return nGt.structUtils.bindDescriptor(t,{locator:nGt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(iGt.PORTAL_PROTOCOL.length);return[nGt.structUtils.makeLocator(t,`${iGt.PORTAL_PROTOCOL}${C_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await nGt.miscUtils.releaseAfterUseAsync(async()=>await h_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:m_l.LinkType.SOFT,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};sGt.PortalResolver=AJr});var dAs=H(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});U4.LinkResolver=U4.LinkFetcher=U4.PortalResolver=U4.PortalFetcher=void 0;var lAs=iAs();Object.defineProperty(U4,"LinkFetcher",{enumerable:!0,get:function(){return lAs.LinkFetcher}});var uAs=sAs();Object.defineProperty(U4,"LinkResolver",{enumerable:!0,get:function(){return uAs.LinkResolver}});var gAs=aAs();Object.defineProperty(U4,"PortalFetcher",{enumerable:!0,get:function(){return gAs.PortalFetcher}});var AAs=cAs();Object.defineProperty(U4,"PortalResolver",{enumerable:!0,get:function(){return AAs.PortalResolver}});var __l={fetchers:[lAs.LinkFetcher,gAs.PortalFetcher],resolvers:[uAs.LinkResolver,AAs.PortalResolver]};U4.default=__l});var hJr=H(AGe=>{"use strict";Object.defineProperty(AGe,"__esModule",{value:!0});AGe.hoist=AGe.HoisterDependencyKind=void 0;var t0e;(function(e){e[e.REGULAR=0]="REGULAR",e[e.WORKSPACE=1]="WORKSPACE",e[e.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(t0e||(AGe.HoisterDependencyKind=t0e={}));var Pte;(function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.DEPENDS=2]="DEPENDS"})(Pte||(Pte={}));var pJr=(e,t)=>`${e}@${t}`,pAs=(e,t)=>{let r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return pJr(e,n)},K4;(function(e){e[e.NONE=-1]="NONE",e[e.PERF=0]="PERF",e[e.CHECK=1]="CHECK",e[e.REASONS=2]="REASONS",e[e.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(K4||(K4={}));var y_l=(e,t={})=>{let r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||K4.NONE),n=t.check||r>=K4.INTENSIVE_CHECK,a=t.hoistingLimits||new Map,o={check:n,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},l;o.debugLevel>=K4.PERF&&(l=Date.now());let A=T_l(e,o),f=!1,I=0;do{let C=fJr(A,[A],new Set([A.locator]),new Map,o);f=C.anotherRoundNeeded||C.isGraphChanged,o.fastLookupPossible=!1,I++}while(f);if(o.debugLevel>=K4.PERF&&console.log(`hoist time: ${Date.now()-l}ms, rounds: ${I}`),o.debugLevel>=K4.CHECK){let C=$6e(A);if(fJr(A,[A],new Set([A.locator]),new Map,o).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let ne=Q_.ppath.join(this.context.cwd,".editorconfig");Q_.xfs.existsSync(ne)||(await Q_.xfs.writeFilePromise(ne,ae),f.push(ne)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),Q_.xfs.existsSync(Q_.ppath.join(this.context.cwd,".git"))||(await $_e.execUtils.execvp("git",["init"],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["add","--",...f],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};j6e.paths=[["init"]];j6e.usage=_ue.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});nJr.default=j6e});var qgs=H(sJr=>{"use strict";Object.defineProperty(sJr,"__esModule",{value:!0});var d_l=(Pa(),vi(Va)),zgs=($c(),vi(rg)),p_l=d_l.__importDefault(iJr()),qxt=class extends p_l.default{constructor(){super(...arguments),this.initializer=zgs.Option.String(),this.argv=zgs.Option.Proxy()}async initialize(){this.context.stdout.write(` +`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};qxt.paths=[["init"]];sJr.default=qxt});var rAs=H(e0e=>{"use strict";Object.defineProperty(e0e,"__esModule",{value:!0});e0e.InitInitializerCommand=e0e.InitCommand=void 0;var $gs=(Pa(),vi(Va)),z6e=Bn(),eAs=$gs.__importDefault(qgs());e0e.InitInitializerCommand=eAs.default;var tAs=$gs.__importDefault(iJr());e0e.InitCommand=tAs.default;var f_l={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:z6e.SettingsType.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}}},commands:[tAs.default,eAs.default]};e0e.default=f_l});var q6e=H(gGe=>{"use strict";Object.defineProperty(gGe,"__esModule",{value:!0});gGe.LINK_PROTOCOL=gGe.PORTAL_PROTOCOL=void 0;gGe.PORTAL_PROTOCOL="portal:";gGe.LINK_PROTOCOL="link:"});var iAs=H($xt=>{"use strict";Object.defineProperty($xt,"__esModule",{value:!0});$xt.LinkFetcher=void 0;var nAs=Bn(),ux=no(),oJr=q6e(),aJr=class{supports(t,r){return!!t.reference.startsWith(oJr.LINK_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL});if(ux.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:ux.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL}),o=ux.ppath.isAbsolute(a)?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.PortablePath.dot,localPath:ux.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.ppath.relative(ux.PortablePath.root,o.localPath),localPath:ux.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=ux.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new ux.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0,localPath:f}:{packageFs:new ux.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0}}};$xt.LinkFetcher=aJr});var sAs=H(tGt=>{"use strict";Object.defineProperty(tGt,"__esModule",{value:!0});tGt.LinkResolver=void 0;var I_l=Bn(),cJr=Bn(),h_l=no(),eGt=q6e(),lJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(eGt.LINK_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(eGt.LINK_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return cJr.structUtils.bindDescriptor(t,{locator:cJr.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(eGt.LINK_PROTOCOL.length);return[cJr.structUtils.makeLocator(t,`${eGt.LINK_PROTOCOL}${h_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){return{...t,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:I_l.LinkType.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};tGt.LinkResolver=lJr});var aAs=H(rGt=>{"use strict";Object.defineProperty(rGt,"__esModule",{value:!0});rGt.PortalFetcher=void 0;var oAs=Bn(),gx=no(),uJr=q6e(),gJr=class{supports(t,r){return!!t.reference.startsWith(uJr.PORTAL_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL});if(gx.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:gx.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL}),o=gx.ppath.isAbsolute(a)?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.PortablePath.dot,localPath:gx.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.ppath.relative(gx.PortablePath.root,o.localPath),localPath:gx.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=gx.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new gx.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot,localPath:f}:{packageFs:new gx.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot}}};rGt.PortalFetcher=gJr});var cAs=H(sGt=>{"use strict";Object.defineProperty(sGt,"__esModule",{value:!0});sGt.PortalResolver=void 0;var m_l=Bn(),C_l=Bn(),nGt=Bn(),__l=no(),iGt=q6e(),AJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(iGt.PORTAL_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(iGt.PORTAL_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return nGt.structUtils.bindDescriptor(t,{locator:nGt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(iGt.PORTAL_PROTOCOL.length);return[nGt.structUtils.makeLocator(t,`${iGt.PORTAL_PROTOCOL}${__l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await nGt.miscUtils.releaseAfterUseAsync(async()=>await m_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:C_l.LinkType.SOFT,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};sGt.PortalResolver=AJr});var dAs=H(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});U4.LinkResolver=U4.LinkFetcher=U4.PortalResolver=U4.PortalFetcher=void 0;var lAs=iAs();Object.defineProperty(U4,"LinkFetcher",{enumerable:!0,get:function(){return lAs.LinkFetcher}});var uAs=sAs();Object.defineProperty(U4,"LinkResolver",{enumerable:!0,get:function(){return uAs.LinkResolver}});var gAs=aAs();Object.defineProperty(U4,"PortalFetcher",{enumerable:!0,get:function(){return gAs.PortalFetcher}});var AAs=cAs();Object.defineProperty(U4,"PortalResolver",{enumerable:!0,get:function(){return AAs.PortalResolver}});var y_l={fetchers:[lAs.LinkFetcher,gAs.PortalFetcher],resolvers:[uAs.LinkResolver,AAs.PortalResolver]};U4.default=y_l});var hJr=H(AGe=>{"use strict";Object.defineProperty(AGe,"__esModule",{value:!0});AGe.hoist=AGe.HoisterDependencyKind=void 0;var t0e;(function(e){e[e.REGULAR=0]="REGULAR",e[e.WORKSPACE=1]="WORKSPACE",e[e.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(t0e||(AGe.HoisterDependencyKind=t0e={}));var Pte;(function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.DEPENDS=2]="DEPENDS"})(Pte||(Pte={}));var pJr=(e,t)=>`${e}@${t}`,pAs=(e,t)=>{let r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return pJr(e,n)},K4;(function(e){e[e.NONE=-1]="NONE",e[e.PERF=0]="PERF",e[e.CHECK=1]="CHECK",e[e.REASONS=2]="REASONS",e[e.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(K4||(K4={}));var b_l=(e,t={})=>{let r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||K4.NONE),n=t.check||r>=K4.INTENSIVE_CHECK,a=t.hoistingLimits||new Map,o={check:n,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},l;o.debugLevel>=K4.PERF&&(l=Date.now());let A=R_l(e,o),f=!1,I=0;do{let C=fJr(A,[A],new Set([A.locator]),new Map,o);f=C.anotherRoundNeeded||C.isGraphChanged,o.fastLookupPossible=!1,I++}while(f);if(o.debugLevel>=K4.PERF&&console.log(`hoist time: ${Date.now()-l}ms, rounds: ${I}`),o.debugLevel>=K4.CHECK){let C=$6e(A);if(fJr(A,[A],new Set([A.locator]),new Map,o).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${C}, next tree: ${$6e(A)}`);let E=hAs(A);if(E)throw new Error(`${E}, after hoisting finished: -${$6e(A)}`)}return o.debugLevel>=K4.REASONS&&console.log($6e(A)),R_l(A)};AGe.hoist=y_l;var b_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=o=>{if(!n.has(o)){n.add(o);for(let l of o.hoistedDependencies.values())r.set(l.name,l);for(let l of o.dependencies.values())o.peerNames.has(l.name)||a(l)}};return a(t),r},E_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=new Set,o=(l,A)=>{if(n.has(l))return;n.add(l);for(let I of l.hoistedDependencies.values())if(!A.has(I.name)){let C;for(let b of e)C=b.dependencies.get(I.name),C&&r.set(C.name,C)}let f=new Set;for(let I of l.dependencies.values())f.add(I.name);for(let I of l.dependencies.values())l.peerNames.has(I.name)||o(I,f)};return o(t,a),r},fAs=(e,t)=>{if(t.decoupled)return t;let{name:r,references:n,ident:a,locator:o,dependencies:l,originalDependencies:A,hoistedDependencies:f,peerNames:I,reasons:C,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:B,hoistedTo:F}=t,Q={name:r,references:new Set(n),ident:a,locator:o,dependencies:new Map(l),originalDependencies:new Map(A),hoistedDependencies:new Map(f),peerNames:new Set(I),reasons:new Map(C),decoupled:!0,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:new Map(B),hoistedTo:new Map(F)},X=Q.dependencies.get(r);return X&&X.ident==Q.ident&&Q.dependencies.set(r,Q),e.dependencies.set(Q.name,Q),Q},S_l=(e,t)=>{let r=new Map([[e.name,[e.ident]]]);for(let a of e.dependencies.values())e.peerNames.has(a.name)||r.set(a.name,[a.ident]);let n=Array.from(t.keys());n.sort((a,o)=>{let l=t.get(a),A=t.get(o);if(A.hoistPriority!==l.hoistPriority)return A.hoistPriority-l.hoistPriority;{let f=l.dependents.size+l.peerDependents.size;return A.dependents.size+A.peerDependents.size-f}});for(let a of n){let o=a.substring(0,a.indexOf("@",1)),l=a.substring(o.length+1);if(!e.peerNames.has(o)){let A=r.get(o);A||(A=[],r.set(o,A)),A.indexOf(l)<0&&A.push(l)}}return r},dJr=e=>{let t=new Set,r=(n,a=new Set)=>{if(!a.has(n)){a.add(n);for(let o of n.peerNames)if(!e.peerNames.has(o)){let l=e.dependencies.get(o);l&&!t.has(l)&&r(l,a)}t.add(n)}};for(let n of e.dependencies.values())e.peerNames.has(n.name)||r(n);return t},fJr=(e,t,r,n,a,o=new Set)=>{let l=t[t.length-1];if(o.has(l))return{anotherRoundNeeded:!1,isGraphChanged:!1};o.add(l);let A=N_l(l),f=S_l(l,A),I=e==l?new Map:a.fastLookupPossible?b_l(t):E_l(t),C,b=!1,E=!1,N=new Map(Array.from(f.entries()).map(([F,Q])=>[F,Q[0]])),B=new Map;do{let F=w_l(e,t,r,I,N,f,n,B,a);F.isGraphChanged&&(E=!0),F.anotherRoundNeeded&&(b=!0),C=!1;for(let[Q,X]of f)X.length>1&&!l.dependencies.has(Q)&&(N.delete(Q),X.shift(),N.set(Q,X[0]),C=!0)}while(C);for(let F of l.dependencies.values())if(!l.peerNames.has(F.name)&&!r.has(F.locator)){r.add(F.locator);let Q=fJr(e,[...t,F],r,B,a);Q.isGraphChanged&&(E=!0),Q.anotherRoundNeeded&&(b=!0),r.delete(F.locator)}return{anotherRoundNeeded:b,isGraphChanged:E}},v_l=e=>{for(let[t,r]of e.dependencies)if(!e.peerNames.has(t)&&r.ident!==e.ident)return!0;return!1},B_l=(e,t,r,n,a,o,l,A,{outputReason:f,fastLookupPossible:I})=>{let C,b=null,E=new Set;f&&(C=`${Array.from(t).map(Q=>Ax(Q)).join("\u2192")}`);let N=r[r.length-1],F=!(n.ident===N.ident);if(f&&!F&&(b="- self-reference"),F&&(F=n.dependencyKind!==t0e.WORKSPACE,f&&!F&&(b="- workspace")),F&&n.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&(F=!v_l(n),f&&!F&&(b="- external soft link with unhoisted dependencies")),F&&(F=!e.peerNames.has(n.name),f&&!F&&(b=`- cannot shadow peer: ${Ax(e.originalDependencies.get(n.name).locator)} at ${C}`)),F){let Q=!1,X=a.get(n.name);if(Q=!X||X.ident===n.ident,f&&!Q&&(b=`- filled by: ${Ax(X.locator)} at ${C}`),Q)for(let ae=r.length-1;ae>=1;ae--){let ce=r[ae].dependencies.get(n.name);if(ce&&ce.ident!==n.ident){Q=!1;let fe=A.get(N);fe||(fe=new Set,A.set(N,fe)),fe.add(n.name),f&&(b=`- filled by ${Ax(ce.locator)} at ${r.slice(0,ae).map(ue=>Ax(ue.locator)).join("\u2192")}`);break}}F=Q}if(F&&(F=o.get(n.name)===n.ident,f&&!F&&(b=`- filled by: ${Ax(l.get(n.name)[0])} at ${C}`)),F){let Q=!0,X=new Set(n.peerNames);for(let ae=r.length-1;ae>=1;ae--){let ne=r[ae];for(let ce of X){if(ne.peerNames.has(ce)&&ne.originalDependencies.has(ce))continue;let fe=ne.dependencies.get(ce);fe&&e.dependencies.get(ce)!==fe&&(ae===r.length-1?E.add(fe):(E=null,Q=!1,f&&(b=`- peer dependency ${Ax(fe.locator)} from parent ${Ax(ne.locator)} was not hoisted to ${C}`))),X.delete(ce)}if(!Q)break}F=Q}if(F&&!I)for(let Q of n.hoistedDependencies.values()){let X=a.get(Q.name)||e.dependencies.get(Q.name);if(!X||Q.ident!==X.ident){F=!1,f&&(b=`- previously hoisted dependency mismatch, needed: ${Ax(Q.locator)}, available: ${Ax(X?.locator)}`);break}}return E!==null&&E.size>0?{isHoistable:Pte.DEPENDS,dependsOn:E,reason:b}:{isHoistable:F?Pte.YES:Pte.NO,reason:b}},oGt=e=>`${e.name}@${e.locator}`,w_l=(e,t,r,n,a,o,l,A,f)=>{let I=t[t.length-1],C=new Set,b=!1,E=!1,N=(X,ae,ne,ce,fe)=>{if(C.has(ce))return;let ue=[...ae,oGt(ce)],de=[...ne,oGt(ce)],be=new Map,Se=new Map;for(let Me of dJr(ce)){let je=B_l(I,r,[I,...X,ce],Me,n,a,o,A,{outputReason:f.debugLevel>=K4.REASONS,fastLookupPossible:f.fastLookupPossible});if(Se.set(Me,je),je.isHoistable===Pte.DEPENDS)for(let St of je.dependsOn){let At=be.get(St.name)||new Set;At.add(Me.name),be.set(St.name,At)}}let De=new Set,k=(Me,je,St)=>{if(!De.has(Me)){De.add(Me),Se.set(Me,{isHoistable:Pte.NO,reason:St});for(let At of be.get(Me.name)||[])k(ce.dependencies.get(At),je,f.debugLevel>=K4.REASONS?`- peer dependency ${Ax(Me.locator)} from parent ${Ax(ce.locator)} was not hoisted`:"")}};for(let[Me,je]of Se)je.isHoistable===Pte.NO&&k(Me,je,je.reason);let et=!1;for(let Me of Se.keys())if(!De.has(Me)){E=!0;let je=l.get(ce);je&&je.has(Me.name)&&(b=!0),et=!0,ce.dependencies.delete(Me.name),ce.hoistedDependencies.set(Me.name,Me),ce.reasons.delete(Me.name);let St=I.dependencies.get(Me.name);if(f.debugLevel>=K4.REASONS){let At=Array.from(ae).concat([ce.locator]).map(Tr=>Ax(Tr)).join("\u2192"),Yt=I.hoistedFrom.get(Me.name);Yt||(Yt=[],I.hoistedFrom.set(Me.name,Yt)),Yt.push(At),ce.hoistedTo.set(Me.name,Array.from(t).map(Tr=>Ax(Tr.locator)).join("\u2192"))}if(!St)I.ident!==Me.ident&&(I.dependencies.set(Me.name,Me),fe.add(Me));else for(let At of Me.references)St.references.add(At)}if(ce.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&et&&(b=!0),f.check){let Me=hAs(e);if(Me)throw new Error(`${Me}, after hoisting dependencies of ${[I,...X,ce].map(je=>Ax(je.locator)).join("\u2192")}: +${$6e(A)}`)}return o.debugLevel>=K4.REASONS&&console.log($6e(A)),N_l(A)};AGe.hoist=b_l;var E_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=o=>{if(!n.has(o)){n.add(o);for(let l of o.hoistedDependencies.values())r.set(l.name,l);for(let l of o.dependencies.values())o.peerNames.has(l.name)||a(l)}};return a(t),r},S_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=new Set,o=(l,A)=>{if(n.has(l))return;n.add(l);for(let I of l.hoistedDependencies.values())if(!A.has(I.name)){let C;for(let b of e)C=b.dependencies.get(I.name),C&&r.set(C.name,C)}let f=new Set;for(let I of l.dependencies.values())f.add(I.name);for(let I of l.dependencies.values())l.peerNames.has(I.name)||o(I,f)};return o(t,a),r},fAs=(e,t)=>{if(t.decoupled)return t;let{name:r,references:n,ident:a,locator:o,dependencies:l,originalDependencies:A,hoistedDependencies:f,peerNames:I,reasons:C,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:B,hoistedTo:F}=t,Q={name:r,references:new Set(n),ident:a,locator:o,dependencies:new Map(l),originalDependencies:new Map(A),hoistedDependencies:new Map(f),peerNames:new Set(I),reasons:new Map(C),decoupled:!0,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:new Map(B),hoistedTo:new Map(F)},X=Q.dependencies.get(r);return X&&X.ident==Q.ident&&Q.dependencies.set(r,Q),e.dependencies.set(Q.name,Q),Q},v_l=(e,t)=>{let r=new Map([[e.name,[e.ident]]]);for(let a of e.dependencies.values())e.peerNames.has(a.name)||r.set(a.name,[a.ident]);let n=Array.from(t.keys());n.sort((a,o)=>{let l=t.get(a),A=t.get(o);if(A.hoistPriority!==l.hoistPriority)return A.hoistPriority-l.hoistPriority;{let f=l.dependents.size+l.peerDependents.size;return A.dependents.size+A.peerDependents.size-f}});for(let a of n){let o=a.substring(0,a.indexOf("@",1)),l=a.substring(o.length+1);if(!e.peerNames.has(o)){let A=r.get(o);A||(A=[],r.set(o,A)),A.indexOf(l)<0&&A.push(l)}}return r},dJr=e=>{let t=new Set,r=(n,a=new Set)=>{if(!a.has(n)){a.add(n);for(let o of n.peerNames)if(!e.peerNames.has(o)){let l=e.dependencies.get(o);l&&!t.has(l)&&r(l,a)}t.add(n)}};for(let n of e.dependencies.values())e.peerNames.has(n.name)||r(n);return t},fJr=(e,t,r,n,a,o=new Set)=>{let l=t[t.length-1];if(o.has(l))return{anotherRoundNeeded:!1,isGraphChanged:!1};o.add(l);let A=D_l(l),f=v_l(l,A),I=e==l?new Map:a.fastLookupPossible?E_l(t):S_l(t),C,b=!1,E=!1,N=new Map(Array.from(f.entries()).map(([F,Q])=>[F,Q[0]])),B=new Map;do{let F=T_l(e,t,r,I,N,f,n,B,a);F.isGraphChanged&&(E=!0),F.anotherRoundNeeded&&(b=!0),C=!1;for(let[Q,X]of f)X.length>1&&!l.dependencies.has(Q)&&(N.delete(Q),X.shift(),N.set(Q,X[0]),C=!0)}while(C);for(let F of l.dependencies.values())if(!l.peerNames.has(F.name)&&!r.has(F.locator)){r.add(F.locator);let Q=fJr(e,[...t,F],r,B,a);Q.isGraphChanged&&(E=!0),Q.anotherRoundNeeded&&(b=!0),r.delete(F.locator)}return{anotherRoundNeeded:b,isGraphChanged:E}},B_l=e=>{for(let[t,r]of e.dependencies)if(!e.peerNames.has(t)&&r.ident!==e.ident)return!0;return!1},w_l=(e,t,r,n,a,o,l,A,{outputReason:f,fastLookupPossible:I})=>{let C,b=null,E=new Set;f&&(C=`${Array.from(t).map(Q=>Ax(Q)).join("\u2192")}`);let N=r[r.length-1],F=!(n.ident===N.ident);if(f&&!F&&(b="- self-reference"),F&&(F=n.dependencyKind!==t0e.WORKSPACE,f&&!F&&(b="- workspace")),F&&n.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&(F=!B_l(n),f&&!F&&(b="- external soft link with unhoisted dependencies")),F&&(F=!e.peerNames.has(n.name),f&&!F&&(b=`- cannot shadow peer: ${Ax(e.originalDependencies.get(n.name).locator)} at ${C}`)),F){let Q=!1,X=a.get(n.name);if(Q=!X||X.ident===n.ident,f&&!Q&&(b=`- filled by: ${Ax(X.locator)} at ${C}`),Q)for(let ae=r.length-1;ae>=1;ae--){let ce=r[ae].dependencies.get(n.name);if(ce&&ce.ident!==n.ident){Q=!1;let fe=A.get(N);fe||(fe=new Set,A.set(N,fe)),fe.add(n.name),f&&(b=`- filled by ${Ax(ce.locator)} at ${r.slice(0,ae).map(ue=>Ax(ue.locator)).join("\u2192")}`);break}}F=Q}if(F&&(F=o.get(n.name)===n.ident,f&&!F&&(b=`- filled by: ${Ax(l.get(n.name)[0])} at ${C}`)),F){let Q=!0,X=new Set(n.peerNames);for(let ae=r.length-1;ae>=1;ae--){let ne=r[ae];for(let ce of X){if(ne.peerNames.has(ce)&&ne.originalDependencies.has(ce))continue;let fe=ne.dependencies.get(ce);fe&&e.dependencies.get(ce)!==fe&&(ae===r.length-1?E.add(fe):(E=null,Q=!1,f&&(b=`- peer dependency ${Ax(fe.locator)} from parent ${Ax(ne.locator)} was not hoisted to ${C}`))),X.delete(ce)}if(!Q)break}F=Q}if(F&&!I)for(let Q of n.hoistedDependencies.values()){let X=a.get(Q.name)||e.dependencies.get(Q.name);if(!X||Q.ident!==X.ident){F=!1,f&&(b=`- previously hoisted dependency mismatch, needed: ${Ax(Q.locator)}, available: ${Ax(X?.locator)}`);break}}return E!==null&&E.size>0?{isHoistable:Pte.DEPENDS,dependsOn:E,reason:b}:{isHoistable:F?Pte.YES:Pte.NO,reason:b}},oGt=e=>`${e.name}@${e.locator}`,T_l=(e,t,r,n,a,o,l,A,f)=>{let I=t[t.length-1],C=new Set,b=!1,E=!1,N=(X,ae,ne,ce,fe)=>{if(C.has(ce))return;let ue=[...ae,oGt(ce)],de=[...ne,oGt(ce)],be=new Map,Se=new Map;for(let Me of dJr(ce)){let je=w_l(I,r,[I,...X,ce],Me,n,a,o,A,{outputReason:f.debugLevel>=K4.REASONS,fastLookupPossible:f.fastLookupPossible});if(Se.set(Me,je),je.isHoistable===Pte.DEPENDS)for(let St of je.dependsOn){let At=be.get(St.name)||new Set;At.add(Me.name),be.set(St.name,At)}}let De=new Set,k=(Me,je,St)=>{if(!De.has(Me)){De.add(Me),Se.set(Me,{isHoistable:Pte.NO,reason:St});for(let At of be.get(Me.name)||[])k(ce.dependencies.get(At),je,f.debugLevel>=K4.REASONS?`- peer dependency ${Ax(Me.locator)} from parent ${Ax(ce.locator)} was not hoisted`:"")}};for(let[Me,je]of Se)je.isHoistable===Pte.NO&&k(Me,je,je.reason);let et=!1;for(let Me of Se.keys())if(!De.has(Me)){E=!0;let je=l.get(ce);je&&je.has(Me.name)&&(b=!0),et=!0,ce.dependencies.delete(Me.name),ce.hoistedDependencies.set(Me.name,Me),ce.reasons.delete(Me.name);let St=I.dependencies.get(Me.name);if(f.debugLevel>=K4.REASONS){let At=Array.from(ae).concat([ce.locator]).map(Tr=>Ax(Tr)).join("\u2192"),Yt=I.hoistedFrom.get(Me.name);Yt||(Yt=[],I.hoistedFrom.set(Me.name,Yt)),Yt.push(At),ce.hoistedTo.set(Me.name,Array.from(t).map(Tr=>Ax(Tr.locator)).join("\u2192"))}if(!St)I.ident!==Me.ident&&(I.dependencies.set(Me.name,Me),fe.add(Me));else for(let At of Me.references)St.references.add(At)}if(ce.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&et&&(b=!0),f.check){let Me=hAs(e);if(Me)throw new Error(`${Me}, after hoisting dependencies of ${[I,...X,ce].map(je=>Ax(je.locator)).join("\u2192")}: ${$6e(e)}`)}let ct=dJr(ce);for(let Me of ct)if(De.has(Me)){let je=Se.get(Me);if((a.get(Me.name)===Me.ident||!ce.reasons.has(Me.name))&&je.isHoistable!==Pte.YES&&ce.reasons.set(Me.name,je.reason),!Me.isHoistBorder&&de.indexOf(oGt(Me))<0){C.add(ce);let At=fAs(ce,Me);N([...X,ce],ue,de,At,F),C.delete(ce)}}},B,F=new Set(dJr(I)),Q=Array.from(t).map(X=>oGt(X));do{B=F,F=new Set;for(let X of B){if(X.locator===I.locator||X.isHoistBorder)continue;let ae=fAs(I,X);N([],Array.from(r),Q,ae,F)}}while(F.size>0);return{anotherRoundNeeded:b,isGraphChanged:E}},hAs=e=>{let t=[],r=new Set,n=new Set,a=(o,l,A)=>{if(r.has(o)||(r.add(o),n.has(o)))return;let f=new Map(l);for(let I of o.dependencies.values())o.peerNames.has(I.name)||f.set(I.name,I);for(let I of o.originalDependencies.values()){let C=f.get(I.name),b=()=>`${Array.from(n).concat([o]).map(E=>Ax(E.locator)).join("\u2192")}`;if(o.peerNames.has(I.name)){let E=l.get(I.name);(E!==C||!E||E.ident!==I.ident)&&t.push(`${b()} - broken peer promise: expected ${I.ident} but found ${E&&E.ident}`)}else{let E=A.hoistedFrom.get(o.name),N=o.hoistedTo.get(I.name),B=`${E?` hoisted from ${E.join(", ")}`:""}`,F=`${N?` hoisted to ${N}`:""}`,Q=`${b()}${B}`;C?C.ident!==I.ident&&t.push(`${Q} - broken require promise for ${I.name}${F}: expected ${I.ident}, but found: ${C.ident}`):t.push(`${Q} - broken require promise: no required dependency ${I.name}${F} found`)}}n.add(o);for(let I of o.dependencies.values())o.peerNames.has(I.name)||a(I,f,o);n.delete(o)};return a(e,e.dependencies,e),t.join(` -`)},T_l=(e,t)=>{let{identName:r,name:n,reference:a,peerNames:o}=e,l={name:n,references:new Set([a]),locator:pJr(r,a),ident:pAs(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:t0e.WORKSPACE,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[e,l]]),f=(I,C)=>{let b=A.get(I),E=!!b;if(!b){let{name:N,identName:B,reference:F,peerNames:Q,hoistPriority:X,dependencyKind:ae}=I,ne=t.hoistingLimits.get(C.locator);b={name:N,references:new Set([F]),locator:pJr(B,F),ident:pAs(B,F),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(Q),reasons:new Map,decoupled:!0,isHoistBorder:ne?ne.has(N):!1,hoistPriority:X||0,dependencyKind:ae||t0e.REGULAR,hoistedFrom:new Map,hoistedTo:new Map},A.set(I,b)}if(C.dependencies.set(I.name,b),C.originalDependencies.set(I.name,b),E){let N=new Set,B=F=>{if(!N.has(F)){N.add(F),F.decoupled=!1;for(let Q of F.dependencies.values())F.peerNames.has(Q.name)||B(Q)}};B(b)}else for(let N of I.dependencies)f(N,b)};for(let I of e.dependencies)f(I,l);return l},IJr=e=>e.substring(0,e.indexOf("@",1)),R_l=e=>{let t={name:e.name,identName:IJr(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(a,o,l)=>{let A=r.has(a),f;if(o===a)f=l;else{let{name:I,references:C,locator:b}=a;f={name:I,identName:IJr(b),references:C,dependencies:new Set}}if(l.dependencies.add(f),!A){r.add(a);for(let I of a.dependencies.values())a.peerNames.has(I.name)||n(I,a,f);r.delete(a)}};for(let a of e.dependencies.values())n(a,e,t);return t},N_l=e=>{let t=new Map,r=new Set([e]),n=l=>`${l.name}@${l.ident}`,a=l=>{let A=n(l),f=t.get(A);return f||(f={dependents:new Set,peerDependents:new Set,hoistPriority:0},t.set(A,f)),f},o=(l,A)=>{let f=!!r.has(A);if(a(A).dependents.add(l.ident),!f){r.add(A);for(let C of A.dependencies.values()){let b=a(C);b.hoistPriority=Math.max(b.hoistPriority,C.hoistPriority),A.peerNames.has(C.name)?b.peerDependents.add(A.ident):o(A,C)}}};for(let l of e.dependencies.values())e.peerNames.has(l.name)||o(e,l);return t},Ax=e=>{if(!e)return"none";let t=e.indexOf("@",1),r=e.substring(0,t);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let n=e.substring(t+1);if(n==="workspace:.")return".";if(n){let a=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},IAs=5e4,$6e=e=>{let t=0,r=(a,o,l="")=>{if(t>IAs||o.has(a))return"";t++;let A=Array.from(a.dependencies.values()).sort((I,C)=>I.name===C.name?0:I.name>C.name?1:-1),f="";o.add(a);for(let I=0;I":"")+(E!==C.name?`a:${C.name}:`:"")+Ax(C.locator)+(b?` ${b}`:"")} +`)},R_l=(e,t)=>{let{identName:r,name:n,reference:a,peerNames:o}=e,l={name:n,references:new Set([a]),locator:pJr(r,a),ident:pAs(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:t0e.WORKSPACE,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[e,l]]),f=(I,C)=>{let b=A.get(I),E=!!b;if(!b){let{name:N,identName:B,reference:F,peerNames:Q,hoistPriority:X,dependencyKind:ae}=I,ne=t.hoistingLimits.get(C.locator);b={name:N,references:new Set([F]),locator:pJr(B,F),ident:pAs(B,F),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(Q),reasons:new Map,decoupled:!0,isHoistBorder:ne?ne.has(N):!1,hoistPriority:X||0,dependencyKind:ae||t0e.REGULAR,hoistedFrom:new Map,hoistedTo:new Map},A.set(I,b)}if(C.dependencies.set(I.name,b),C.originalDependencies.set(I.name,b),E){let N=new Set,B=F=>{if(!N.has(F)){N.add(F),F.decoupled=!1;for(let Q of F.dependencies.values())F.peerNames.has(Q.name)||B(Q)}};B(b)}else for(let N of I.dependencies)f(N,b)};for(let I of e.dependencies)f(I,l);return l},IJr=e=>e.substring(0,e.indexOf("@",1)),N_l=e=>{let t={name:e.name,identName:IJr(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(a,o,l)=>{let A=r.has(a),f;if(o===a)f=l;else{let{name:I,references:C,locator:b}=a;f={name:I,identName:IJr(b),references:C,dependencies:new Set}}if(l.dependencies.add(f),!A){r.add(a);for(let I of a.dependencies.values())a.peerNames.has(I.name)||n(I,a,f);r.delete(a)}};for(let a of e.dependencies.values())n(a,e,t);return t},D_l=e=>{let t=new Map,r=new Set([e]),n=l=>`${l.name}@${l.ident}`,a=l=>{let A=n(l),f=t.get(A);return f||(f={dependents:new Set,peerDependents:new Set,hoistPriority:0},t.set(A,f)),f},o=(l,A)=>{let f=!!r.has(A);if(a(A).dependents.add(l.ident),!f){r.add(A);for(let C of A.dependencies.values()){let b=a(C);b.hoistPriority=Math.max(b.hoistPriority,C.hoistPriority),A.peerNames.has(C.name)?b.peerDependents.add(A.ident):o(A,C)}}};for(let l of e.dependencies.values())e.peerNames.has(l.name)||o(e,l);return t},Ax=e=>{if(!e)return"none";let t=e.indexOf("@",1),r=e.substring(0,t);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let n=e.substring(t+1);if(n==="workspace:.")return".";if(n){let a=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},IAs=5e4,$6e=e=>{let t=0,r=(a,o,l="")=>{if(t>IAs||o.has(a))return"";t++;let A=Array.from(a.dependencies.values()).sort((I,C)=>I.name===C.name?0:I.name>C.name?1:-1),f="";o.add(a);for(let I=0;I":"")+(E!==C.name?`a:${C.name}:`:"")+Ax(C.locator)+(b?` ${b}`:"")} `,f+=r(C,o,`${l}${IIAs?` Tree is too large, part of the tree has been dunped -`:"")}});var cGt=H(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});NH.buildLocatorMap=NH.buildNodeModulesTree=NH.getArchivePath=NH.NodeModulesHoistingLimits=NH.LinkType=void 0;var X_=Bn(),HR=no(),mAs=no(),dGe=hJr(),j4;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(j4||(NH.LinkType=j4={}));var e7e;(function(e){e.WORKSPACES="workspaces",e.DEPENDENCIES="dependencies",e.NONE="none"})(e7e||(NH.NodeModulesHoistingLimits=e7e={}));var aGt="node_modules",yue="$wsroot$",D_l=e=>e.indexOf(`.zip/${aGt}/`)>=0?HR.npath.toPortablePath(e.split(`/${aGt}/`)[0]):null;NH.getArchivePath=D_l;var k_l=(e,t)=>{let{packageTree:r,hoistingLimits:n,errors:a,preserveSymlinksRequired:o}=F_l(e,t),l=null;if(a.length===0){let A=(0,dGe.hoist)(r,{hoistingLimits:n});l=L_l(e,A,t)}return{tree:l,errors:a,preserveSymlinksRequired:o}};NH.buildNodeModulesTree=k_l;var d6=e=>`${e.name}@${e.reference}`,x_l=e=>{let t=new Map;for(let[r,n]of e.entries())if(!n.dirList){let a=t.get(n.locator);a||(a={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,a)),a.locations.push(r)}for(let r of t.values())r.locations=r.locations.sort((n,a)=>{let o=n.split(HR.ppath.delimiter).length,l=a.split(HR.ppath.delimiter).length;return a===n?0:o!==l?l-o:a>n?1:-1});return t};NH.buildLocatorMap=x_l;var CAs=(e,t)=>{let r=X_.structUtils.isVirtualLocator(e)?X_.structUtils.devirtualizeLocator(e):e,n=X_.structUtils.isVirtualLocator(t)?X_.structUtils.devirtualizeLocator(t):t;return X_.structUtils.areLocatorsEqual(r,n)},mJr=(e,t,r,n)=>{if(e.linkType!==j4.SOFT)return!1;let a=HR.npath.toPortablePath(r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation);return HR.ppath.contains(n,a)===null},G_l=e=>{let t=e.getPackageInformation(e.topLevel);if(t===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(e.findPackageLocator(t.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let n=HR.npath.toPortablePath(t.packageLocation.slice(0,-1)),a=new Map,o={children:new Map},l=e.getDependencyTreeRoots(),A=new Map,f=new Set,I=(E,N)=>{let B=d6(E);if(f.has(B))return;f.add(B);let F=e.getPackageInformation(E);if(F){let Q=N?d6(N):"";if(d6(E)!==Q&&F.linkType===j4.SOFT&&!E.reference.startsWith("link:")&&!mJr(F,E,e,n)){let X=_As(F,E,e);(!A.get(X)||E.reference.startsWith("workspace:"))&&A.set(X,E)}for(let[X,ae]of F.packageDependencies)ae!==null&&(F.packagePeers.has(X)||I(e.getLocator(X,ae),E))}};for(let E of l)I(E,null);let C=n.split(HR.ppath.sep);for(let E of A.values()){let N=e.getPackageInformation(E),F=HR.npath.toPortablePath(N.packageLocation.slice(0,-1)).split(HR.ppath.sep).slice(C.length),Q=o;for(let X of F){let ae=Q.children.get(X);ae||(ae={children:new Map},Q.children.set(X,ae)),Q=ae}Q.workspaceLocator=E}let b=(E,N)=>{if(E.workspaceLocator){let B=d6(N),F=a.get(B);F||(F=new Set,a.set(B,F)),F.add(E.workspaceLocator)}for(let B of E.children.values())b(B,E.workspaceLocator||N)};for(let E of o.children.values())b(E,o.workspaceLocator);return a},F_l=(e,t)=>{let r=[],n=!1,a=new Map,o=G_l(e),l=e.getPackageInformation(e.topLevel);if(l===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=e.findPackageLocator(l.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let f=HR.npath.toPortablePath(l.packageLocation.slice(0,-1)),I={name:A.name,identName:A.name,reference:A.reference,peerNames:l.packagePeers,dependencies:new Set,dependencyKind:dGe.HoisterDependencyKind.WORKSPACE},C=new Map,b=(N,B)=>`${d6(B)}:${N}`,E=(N,B,F,Q,X,ae,ne,ce)=>{let fe=b(N,F),ue=C.get(fe),de=!!ue;!de&&F.name===A.name&&F.reference===A.reference&&(ue=I,C.set(fe,I));let be=mJr(B,F,e,f);if(!ue){let Me=dGe.HoisterDependencyKind.REGULAR;be?Me=dGe.HoisterDependencyKind.EXTERNAL_SOFT_LINK:B.linkType===j4.SOFT&&F.name.endsWith(yue)&&(Me=dGe.HoisterDependencyKind.WORKSPACE),ue={name:N,identName:F.name,reference:F.reference,dependencies:new Set,peerNames:Me===dGe.HoisterDependencyKind.WORKSPACE?new Set:B.packagePeers,dependencyKind:Me},C.set(fe,ue)}let Se;if(be?Se=2:X.linkType===j4.SOFT?Se=1:Se=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,Se),ce&&!be){let Me=d6({name:Q.identName,reference:Q.reference}),je=a.get(Me)||new Set;a.set(Me,je),je.add(ue.name)}let De=new Map(B.packageDependencies);if(t.project){let Me=t.project.workspacesByCwd.get(HR.npath.toPortablePath(B.packageLocation.slice(0,-1)));if(Me){let je=new Set([...Array.from(Me.manifest.peerDependencies.values(),St=>X_.structUtils.stringifyIdent(St)),...Array.from(Me.manifest.peerDependenciesMeta.keys())]);for(let St of je)De.has(St)||(De.set(St,ae.get(St)||null),ue.peerNames.add(St))}}let k=d6({name:F.name.replace(yue,""),reference:F.reference}),et=o.get(k);if(et)for(let Me of et)De.set(`${Me.name}${yue}`,Me.reference);(B!==X||B.linkType!==j4.SOFT||!be&&(!t.selfReferencesByCwd||t.selfReferencesByCwd.get(ne)))&&Q.dependencies.add(ue);let ct=F!==A&&B.linkType===j4.SOFT&&!F.name.endsWith(yue)&&!be;if(!de&&!ct){let Me=new Map;for(let[je,St]of De)if(St!==null){let At=e.getLocator(je,St),Yt=e.getLocator(je.replace(yue,""),St),Tr=e.getPackageInformation(Yt);if(Tr===null)throw new Error("Assertion failed: Expected the package to have been registered");let Nr=mJr(Tr,At,e,f);if(t.validateExternalSoftLinks&&t.project&&Nr){Tr.packageDependencies.size>0&&(n=!0);for(let[qt,Xt]of Tr.packageDependencies)if(Xt!==null){let lr=X_.structUtils.parseLocator(Array.isArray(Xt)?`${Xt[0]}@${Xt[1]}`:`${qt}@${Xt}`);if(d6(lr)!==d6(At)){let cr=De.get(qt);if(cr){let Ar=X_.structUtils.parseLocator(Array.isArray(cr)?`${cr[0]}@${cr[1]}`:`${qt}@${cr}`);CAs(Ar,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with parent dependency ${X_.structUtils.prettyLocator(t.project.configuration,Ar)}`})}else{let Ar=Me.get(qt);if(Ar){let qr=Ar.target,_n=X_.structUtils.parseLocator(Array.isArray(qr)?`${qr[0]}@${qr[1]}`:`${qt}@${qr}`);CAs(_n,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with dependency ${X_.structUtils.prettyLocator(t.project.configuration,_n)} from sibling portal ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(Ar.portal.name))}`})}else Me.set(qt,{target:lr.reference,portal:At})}}}}let er=t.hoistingLimitsByCwd?.get(ne),vt=Nr?ne:HR.ppath.relative(f,HR.npath.toPortablePath(Tr.packageLocation))||mAs.PortablePath.dot,xt=t.hoistingLimitsByCwd?.get(vt),Zr=er===e7e.DEPENDENCIES||xt===e7e.DEPENDENCIES||xt===e7e.WORKSPACES;E(je,Tr,At,ue,B,De,vt,Zr)}}};return E(A.name,l,A,I,l,l.packageDependencies,mAs.PortablePath.dot,!1),{packageTree:I,hoistingLimits:a,errors:r,preserveSymlinksRequired:n}};function _As(e,t,r){let n=r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation;return HR.npath.toPortablePath(n||e.packageLocation)}function Z_l(e,t,r){let n=t.getLocator(e.name.replace(yue,""),e.reference),a=t.getPackageInformation(n);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:j4.SOFT,target:HR.npath.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:_As(a,e,t)}}var L_l=(e,t,r)=>{let n=new Map,a=(C,b,E)=>{let{linkType:N,target:B}=Z_l(C,e,r);return{locator:d6(C),nodePath:b,target:B,linkType:N,aliases:E}},o=C=>{let[b,E]=C.split("/");return E?{scope:b,name:E}:{scope:null,name:b}},l=new Set,A=(C,b,E)=>{if(l.has(C))return;l.add(C);let N=Array.from(C.references).sort().join("#");for(let B of C.dependencies){let F=Array.from(B.references).sort().join("#");if(B.identName===C.identName.replace(yue,"")&&F===N)continue;let Q=Array.from(B.references).sort(),X={name:B.identName,reference:Q[0]},{name:ae,scope:ne}=o(B.name),ce=ne?[ne,ae]:[ae],fe=HR.ppath.join(b,aGt),ue=HR.ppath.join(fe,...ce),de=`${E}/${X.name}`,be=a(X,E,Q.slice(1)),Se=!1;if(be.linkType===j4.SOFT&&r.project){let De=r.project.workspacesByCwd.get(be.target.slice(0,-1));Se=!!(De&&!De.manifest.name)}if(!B.name.endsWith(yue)&&!Se){let De=n.get(ue);if(De){if(De.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let ct=X_.structUtils.parseLocator(De.locator),Me=X_.structUtils.parseLocator(be.locator);if(De.linkType!==be.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/${X_.structUtils.stringifyLocator(Me)}`);if(ct.identHash!==Me.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/s${X_.structUtils.stringifyLocator(Me)}`);be.aliases=[...be.aliases,...De.aliases,X_.structUtils.parseLocator(De.locator).reference]}}n.set(ue,be);let k=ue.split("/"),et=k.indexOf(aGt);for(let ct=k.length-1;et>=0&&ct>et;ct--){let Me=HR.npath.toPortablePath(k.slice(0,ct).join(HR.ppath.sep)),je=k[ct],St=n.get(Me);if(!St)n.set(Me,{dirList:new Set([je])});else if(St.dirList){if(St.dirList.has(je))break;St.dirList.add(je)}}}A(B,be.linkType===j4.SOFT?be.target:ue,de)}},f=a({name:t.name,reference:Array.from(t.references)[0]},"",[]),I=f.target;return n.set(I,f),A(t,I,""),n}});var t7e=H(QV=>{"use strict";Object.defineProperty(QV,"__esModule",{value:!0});QV.HoisterDependencyKind=QV.hoist=QV.getArchivePath=QV.buildLocatorMap=QV.buildNodeModulesTree=QV.NodeModulesHoistingLimits=void 0;var V_l=cGt();Object.defineProperty(QV,"getArchivePath",{enumerable:!0,get:function(){return V_l.getArchivePath}});var yAs=cGt();Object.defineProperty(QV,"buildNodeModulesTree",{enumerable:!0,get:function(){return yAs.buildNodeModulesTree}});Object.defineProperty(QV,"buildLocatorMap",{enumerable:!0,get:function(){return yAs.buildLocatorMap}});var P_l=cGt();Object.defineProperty(QV,"NodeModulesHoistingLimits",{enumerable:!0,get:function(){return P_l.NodeModulesHoistingLimits}});var bAs=hJr();Object.defineProperty(QV,"hoist",{enumerable:!0,get:function(){return bAs.hoist}});Object.defineProperty(QV,"HoisterDependencyKind",{enumerable:!0,get:function(){return bAs.HoisterDependencyKind}})});var ZJr=H(z4=>{"use strict";Object.defineProperty(z4,"__esModule",{value:!0});var W_l=wt("zlib"),GAs=wt("path"),r0e=wt("module"),eB=wt("url"),EAs=wt("util"),O_l=wt("assert"),M_l=wt("fs"),H_l=wt("crypto"),Y_l=wt("os"),fGt=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},FAs=fGt(W_l),uGt=fGt(GAs),Q_l=fGt(O_l),X_l=fGt(M_l),ZAs=(e=>(e.HARD="HARD",e.SOFT="SOFT",e))(ZAs||{}),J_l=456789e3,SJr={root:"/",dot:".",parent:".."},gGt={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Rc=Object.create(uGt.default),gh=Object.create(uGt.default.posix);Rc.cwd=()=>process.cwd();gh.cwd=process.platform==="win32"?()=>kJr(process.cwd()):process.cwd;process.platform==="win32"&&(gh.resolve=(...e)=>e.length>0&&gh.isAbsolute(e[0])?uGt.default.posix.resolve(...e):uGt.default.posix.resolve(gh.cwd(),...e));var LAs=function(e,t,r){return t=e.normalize(t),r=e.normalize(r),t===r?".":(t.endsWith(e.sep)||(t=t+e.sep),r.startsWith(t)?r.slice(t.length):null)};Rc.contains=(e,t)=>LAs(Rc,e,t);gh.contains=(e,t)=>LAs(gh,e,t);var U_l=/^([a-zA-Z]:.*)$/,K_l=/^\/\/(\.\/)?(.*)$/,j_l=/^\/([a-zA-Z]:.*)$/,z_l=/^\/unc\/(\.dot\/)?(.*)$/;function q_l(e){let t,r;if(t=e.match(j_l))e=t[1];else if(r=e.match(z_l))e=`\\\\${r[1]?".\\":""}${r[2]}`;else return e;return e.replace(/\//g,"\\")}function $_l(e){e=e.replace(/\\/g,"/");let t,r;return(t=e.match(U_l))?e=`/${t[1]}`:(r=e.match(K_l))&&(e=`/unc/${r[1]?".dot/":""}${r[2]}`),e}var kJr=process.platform==="win32"?$_l:e=>e,VAs=process.platform==="win32"?q_l:e=>e;Rc.fromPortablePath=VAs;Rc.toPortablePath=kJr;function PAs(e,t){return e===Rc?VAs(t):kJr(t)}var i0e=new Date(J_l*1e3),e0l=i0e.getTime();async function t0l(e,t,r,n,a){let o=e.pathUtils.normalize(t),l=r.pathUtils.normalize(n),A=[],f=[],{atime:I,mtime:C}=a.stableTime?{atime:i0e,mtime:i0e}:await r.lstatPromise(l);await e.mkdirpPromise(e.pathUtils.dirname(t),{utimes:[I,C]}),await vJr(A,f,e,o,r,l,{...a,didParentExist:!0});for(let b of A)await b();await Promise.all(f.map(b=>b()))}async function vJr(e,t,r,n,a,o,l){let A=l.didParentExist?await WAs(r,n):null,f=await a.lstatPromise(o),{atime:I,mtime:C}=l.stableTime?{atime:i0e,mtime:i0e}:f,b;switch(!0){case f.isDirectory():b=await r0l(e,t,r,n,A,a,o,f,l);break;case f.isFile():b=await s0l(e,t,r,n,A,a,o,f,l);break;case f.isSymbolicLink():b=await o0l(e,t,r,n,A,a,o,f,l);break;default:throw new Error(`Unsupported file type (${f.mode})`)}return(l.linkStrategy?.type!=="HardlinkFromIndex"||!f.isFile())&&((b||A?.mtime?.getTime()!==C.getTime()||A?.atime?.getTime()!==I.getTime())&&(t.push(()=>r.lutimesPromise(n,I,C)),b=!0),(A===null||(A.mode&511)!==(f.mode&511))&&(t.push(()=>r.chmodPromise(n,f.mode&511)),b=!0)),b}async function WAs(e,t){try{return await e.lstatPromise(t)}catch{return null}}async function r0l(e,t,r,n,a,o,l,A,f){if(a!==null&&!a.isDirectory())if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;let I=!1;a===null&&(e.push(async()=>{try{await r.mkdirPromise(n,{mode:A.mode})}catch(E){if(E.code!=="EEXIST")throw E}}),I=!0);let C=await o.readdirPromise(l),b=f.didParentExist&&!a?{...f,didParentExist:!1}:f;if(f.stableSort)for(let E of C.sort())await vJr(e,t,r,r.pathUtils.join(n,E),o,o.pathUtils.join(l,E),b)&&(I=!0);else(await Promise.all(C.map(async N=>{await vJr(e,t,r,r.pathUtils.join(n,N),o,o.pathUtils.join(l,N),b)}))).some(N=>N)&&(I=!0);return I}async function n0l(e,t,r,n,a,o,l,A,f,I){let C=await o.checksumFilePromise(l,{algorithm:"sha1"}),b=420,E=A.mode&511,N=`${C}${E!==b?E.toString(8):""}`,B=r.pathUtils.join(I.indexPath,C.slice(0,2),`${N}.dat`),F;(ce=>{ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"})(F||(F={}));let Q=1,X=await WAs(r,B);if(a){let ce=X&&a.dev===X.dev&&a.ino===X.ino,fe=X?.mtimeMs!==e0l;if(ce&&fe&&I.autoRepair&&(Q=0,X=null),!ce)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1}let ae=!X&&Q===1?`${B}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ne=!1;return e.push(async()=>{if(!X&&(Q===0&&await r.lockPromise(B,async()=>{let ce=await o.readFilePromise(l);await r.writeFilePromise(B,ce)}),Q===1&&ae)){let ce=await o.readFilePromise(l);await r.writeFilePromise(ae,ce);try{await r.linkPromise(ae,B)}catch(fe){if(fe.code==="EEXIST")ne=!0,await r.unlinkPromise(ae);else throw fe}}a||await r.linkPromise(B,n)}),t.push(async()=>{X||(await r.lutimesPromise(B,i0e,i0e),E!==b&&await r.chmodPromise(B,E)),ae&&!ne&&await r.unlinkPromise(ae)}),!1}async function i0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{let I=await o.readFilePromise(l);await r.writeFilePromise(n,I)}),!0}async function s0l(e,t,r,n,a,o,l,A,f){return f.linkStrategy?.type==="HardlinkFromIndex"?n0l(e,t,r,n,a,o,l,A,f,f.linkStrategy):i0l(e,t,r,n,a,o,l,A,f)}async function o0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{await r.symlinkPromise(PAs(r.pathUtils,await o.readlinkPromise(l)),n)}),!0}var AGt=class{pathUtils;constructor(t){this.pathUtils=t}async*genTraversePromise(t,{stableSort:r=!1}={}){let n=[t];for(;n.length>0;){let a=n.shift();if((await this.lstatPromise(a)).isDirectory()){let l=await this.readdirPromise(a);if(r)for(let A of l.sort())n.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(t,{algorithm:r="sha512"}={}){let n=await this.openPromise(t,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=H_l.createHash(r),A=0;for(;(A=await this.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await this.closePromise(n)}}async removePromise(t,{recursive:r=!0,maxRetries:n=5}={}){let a;try{a=await this.lstatPromise(t)}catch(o){if(o.code==="ENOENT")return;throw o}if(a.isDirectory()){if(r){let o=await this.readdirPromise(t);await Promise.all(o.map(l=>this.removePromise(this.pathUtils.resolve(t,l))))}for(let o=0;o<=n;o++)try{await this.rmdirPromise(t);break}catch(l){if(l.code!=="EBUSY"&&l.code!=="ENOTEMPTY")throw l;osetTimeout(A,o*100))}}else await this.unlinkPromise(t)}removeSync(t,{recursive:r=!0}={}){let n;try{n=this.lstatSync(t)}catch(a){if(a.code==="ENOENT")return;throw a}if(n.isDirectory()){if(r)for(let a of this.readdirSync(t))this.removeSync(this.pathUtils.resolve(t,a));this.rmdirSync(t)}else this.unlinkSync(t)}async mkdirpPromise(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&await this.chmodPromise(A,r),n!=null)await this.utimesPromise(A,n[0],n[1]);else{let f=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,f.atime,f.mtime)}}}return o}mkdirpSync(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&this.chmodSync(A,r),n!=null)this.utimesSync(A,n[0],n[1]);else{let f=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,f.atime,f.mtime)}}}return o}async copyPromise(t,r,{baseFs:n=this,overwrite:a=!0,stableSort:o=!1,stableTime:l=!1,linkStrategy:A=null}={}){return await t0l(this,t,n,r,{overwrite:a,stableSort:o,stableTime:l,linkStrategy:A})}copySync(t,r,{baseFs:n=this,overwrite:a=!0}={}){let o=n.lstatSync(r),l=this.existsSync(t);if(o.isDirectory()){this.mkdirpSync(t);let f=n.readdirSync(r);for(let I of f)this.copySync(this.pathUtils.join(t,I),n.pathUtils.join(r,I),{baseFs:n,overwrite:a})}else if(o.isFile()){if(!l||a){l&&this.removeSync(t);let f=n.readFileSync(r);this.writeFileSync(t,f)}}else if(o.isSymbolicLink()){if(!l||a){l&&this.removeSync(t);let f=n.readlinkSync(r);this.symlinkSync(PAs(this.pathUtils,f),t)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${o.mode.toString(8).padStart(6,"0")})`);let A=o.mode&511;this.chmodSync(t,A)}async changeFilePromise(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(t,r,n):this.changeFileTextPromise(t,r,n)}async changeFileBufferPromise(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(t)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(t,r,{mode:n})}async changeFileTextPromise(t,r,{automaticNewlines:n,mode:a}={}){let o="";try{o=await this.readFilePromise(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&await this.writeFilePromise(t,l,{mode:a})}changeFileSync(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(t,r,n):this.changeFileTextSync(t,r,n)}changeFileBufferSync(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(t)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(t,r,{mode:n})}changeFileTextSync(t,r,{automaticNewlines:n=!1,mode:a}={}){let o="";try{o=this.readFileSync(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&this.writeFileSync(t,l,{mode:a})}async movePromise(t,r){try{await this.renamePromise(t,r)}catch(n){if(n.code==="EXDEV")await this.copyPromise(r,t),await this.removePromise(t);else throw n}}moveSync(t,r){try{this.renameSync(t,r)}catch(n){if(n.code==="EXDEV")this.copySync(r,t),this.removeSync(t);else throw n}}async lockPromise(t,r){let n=`${t}.flock`,a=1e3/60,o=Date.now(),l=null,A=async()=>{let f;try{[f]=await this.readJsonPromise(n)}catch{return Date.now()-o<500}try{return process.kill(f,0),!0}catch{return!1}};for(;l===null;)try{l=await this.openPromise(n,"wx")}catch(f){if(f.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(n);continue}catch{}if(Date.now()-o<60*1e3)await new Promise(I=>setTimeout(I,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${n})`)}else throw f}await this.writePromise(l,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(l),await this.unlinkPromise(n)}catch{}}}async readJsonPromise(t){let r=await this.readFilePromise(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}readJsonSync(t){let r=this.readFileSync(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}async writeJsonPromise(t,r,{compact:n=!1}={}){let a=n?0:2;return await this.writeFilePromise(t,`${JSON.stringify(r,null,a)} +`:"")}});var cGt=H(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});NH.buildLocatorMap=NH.buildNodeModulesTree=NH.getArchivePath=NH.NodeModulesHoistingLimits=NH.LinkType=void 0;var X_=Bn(),HR=no(),mAs=no(),dGe=hJr(),j4;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(j4||(NH.LinkType=j4={}));var e7e;(function(e){e.WORKSPACES="workspaces",e.DEPENDENCIES="dependencies",e.NONE="none"})(e7e||(NH.NodeModulesHoistingLimits=e7e={}));var aGt="node_modules",yue="$wsroot$",k_l=e=>e.indexOf(`.zip/${aGt}/`)>=0?HR.npath.toPortablePath(e.split(`/${aGt}/`)[0]):null;NH.getArchivePath=k_l;var x_l=(e,t)=>{let{packageTree:r,hoistingLimits:n,errors:a,preserveSymlinksRequired:o}=Z_l(e,t),l=null;if(a.length===0){let A=(0,dGe.hoist)(r,{hoistingLimits:n});l=V_l(e,A,t)}return{tree:l,errors:a,preserveSymlinksRequired:o}};NH.buildNodeModulesTree=x_l;var d6=e=>`${e.name}@${e.reference}`,G_l=e=>{let t=new Map;for(let[r,n]of e.entries())if(!n.dirList){let a=t.get(n.locator);a||(a={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,a)),a.locations.push(r)}for(let r of t.values())r.locations=r.locations.sort((n,a)=>{let o=n.split(HR.ppath.delimiter).length,l=a.split(HR.ppath.delimiter).length;return a===n?0:o!==l?l-o:a>n?1:-1});return t};NH.buildLocatorMap=G_l;var CAs=(e,t)=>{let r=X_.structUtils.isVirtualLocator(e)?X_.structUtils.devirtualizeLocator(e):e,n=X_.structUtils.isVirtualLocator(t)?X_.structUtils.devirtualizeLocator(t):t;return X_.structUtils.areLocatorsEqual(r,n)},mJr=(e,t,r,n)=>{if(e.linkType!==j4.SOFT)return!1;let a=HR.npath.toPortablePath(r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation);return HR.ppath.contains(n,a)===null},F_l=e=>{let t=e.getPackageInformation(e.topLevel);if(t===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(e.findPackageLocator(t.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let n=HR.npath.toPortablePath(t.packageLocation.slice(0,-1)),a=new Map,o={children:new Map},l=e.getDependencyTreeRoots(),A=new Map,f=new Set,I=(E,N)=>{let B=d6(E);if(f.has(B))return;f.add(B);let F=e.getPackageInformation(E);if(F){let Q=N?d6(N):"";if(d6(E)!==Q&&F.linkType===j4.SOFT&&!E.reference.startsWith("link:")&&!mJr(F,E,e,n)){let X=_As(F,E,e);(!A.get(X)||E.reference.startsWith("workspace:"))&&A.set(X,E)}for(let[X,ae]of F.packageDependencies)ae!==null&&(F.packagePeers.has(X)||I(e.getLocator(X,ae),E))}};for(let E of l)I(E,null);let C=n.split(HR.ppath.sep);for(let E of A.values()){let N=e.getPackageInformation(E),F=HR.npath.toPortablePath(N.packageLocation.slice(0,-1)).split(HR.ppath.sep).slice(C.length),Q=o;for(let X of F){let ae=Q.children.get(X);ae||(ae={children:new Map},Q.children.set(X,ae)),Q=ae}Q.workspaceLocator=E}let b=(E,N)=>{if(E.workspaceLocator){let B=d6(N),F=a.get(B);F||(F=new Set,a.set(B,F)),F.add(E.workspaceLocator)}for(let B of E.children.values())b(B,E.workspaceLocator||N)};for(let E of o.children.values())b(E,o.workspaceLocator);return a},Z_l=(e,t)=>{let r=[],n=!1,a=new Map,o=F_l(e),l=e.getPackageInformation(e.topLevel);if(l===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=e.findPackageLocator(l.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let f=HR.npath.toPortablePath(l.packageLocation.slice(0,-1)),I={name:A.name,identName:A.name,reference:A.reference,peerNames:l.packagePeers,dependencies:new Set,dependencyKind:dGe.HoisterDependencyKind.WORKSPACE},C=new Map,b=(N,B)=>`${d6(B)}:${N}`,E=(N,B,F,Q,X,ae,ne,ce)=>{let fe=b(N,F),ue=C.get(fe),de=!!ue;!de&&F.name===A.name&&F.reference===A.reference&&(ue=I,C.set(fe,I));let be=mJr(B,F,e,f);if(!ue){let Me=dGe.HoisterDependencyKind.REGULAR;be?Me=dGe.HoisterDependencyKind.EXTERNAL_SOFT_LINK:B.linkType===j4.SOFT&&F.name.endsWith(yue)&&(Me=dGe.HoisterDependencyKind.WORKSPACE),ue={name:N,identName:F.name,reference:F.reference,dependencies:new Set,peerNames:Me===dGe.HoisterDependencyKind.WORKSPACE?new Set:B.packagePeers,dependencyKind:Me},C.set(fe,ue)}let Se;if(be?Se=2:X.linkType===j4.SOFT?Se=1:Se=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,Se),ce&&!be){let Me=d6({name:Q.identName,reference:Q.reference}),je=a.get(Me)||new Set;a.set(Me,je),je.add(ue.name)}let De=new Map(B.packageDependencies);if(t.project){let Me=t.project.workspacesByCwd.get(HR.npath.toPortablePath(B.packageLocation.slice(0,-1)));if(Me){let je=new Set([...Array.from(Me.manifest.peerDependencies.values(),St=>X_.structUtils.stringifyIdent(St)),...Array.from(Me.manifest.peerDependenciesMeta.keys())]);for(let St of je)De.has(St)||(De.set(St,ae.get(St)||null),ue.peerNames.add(St))}}let k=d6({name:F.name.replace(yue,""),reference:F.reference}),et=o.get(k);if(et)for(let Me of et)De.set(`${Me.name}${yue}`,Me.reference);(B!==X||B.linkType!==j4.SOFT||!be&&(!t.selfReferencesByCwd||t.selfReferencesByCwd.get(ne)))&&Q.dependencies.add(ue);let ct=F!==A&&B.linkType===j4.SOFT&&!F.name.endsWith(yue)&&!be;if(!de&&!ct){let Me=new Map;for(let[je,St]of De)if(St!==null){let At=e.getLocator(je,St),Yt=e.getLocator(je.replace(yue,""),St),Tr=e.getPackageInformation(Yt);if(Tr===null)throw new Error("Assertion failed: Expected the package to have been registered");let Nr=mJr(Tr,At,e,f);if(t.validateExternalSoftLinks&&t.project&&Nr){Tr.packageDependencies.size>0&&(n=!0);for(let[qt,Xt]of Tr.packageDependencies)if(Xt!==null){let lr=X_.structUtils.parseLocator(Array.isArray(Xt)?`${Xt[0]}@${Xt[1]}`:`${qt}@${Xt}`);if(d6(lr)!==d6(At)){let cr=De.get(qt);if(cr){let Ar=X_.structUtils.parseLocator(Array.isArray(cr)?`${cr[0]}@${cr[1]}`:`${qt}@${cr}`);CAs(Ar,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with parent dependency ${X_.structUtils.prettyLocator(t.project.configuration,Ar)}`})}else{let Ar=Me.get(qt);if(Ar){let qr=Ar.target,_n=X_.structUtils.parseLocator(Array.isArray(qr)?`${qr[0]}@${qr[1]}`:`${qt}@${qr}`);CAs(_n,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with dependency ${X_.structUtils.prettyLocator(t.project.configuration,_n)} from sibling portal ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(Ar.portal.name))}`})}else Me.set(qt,{target:lr.reference,portal:At})}}}}let er=t.hoistingLimitsByCwd?.get(ne),vt=Nr?ne:HR.ppath.relative(f,HR.npath.toPortablePath(Tr.packageLocation))||mAs.PortablePath.dot,xt=t.hoistingLimitsByCwd?.get(vt),Zr=er===e7e.DEPENDENCIES||xt===e7e.DEPENDENCIES||xt===e7e.WORKSPACES;E(je,Tr,At,ue,B,De,vt,Zr)}}};return E(A.name,l,A,I,l,l.packageDependencies,mAs.PortablePath.dot,!1),{packageTree:I,hoistingLimits:a,errors:r,preserveSymlinksRequired:n}};function _As(e,t,r){let n=r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation;return HR.npath.toPortablePath(n||e.packageLocation)}function L_l(e,t,r){let n=t.getLocator(e.name.replace(yue,""),e.reference),a=t.getPackageInformation(n);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:j4.SOFT,target:HR.npath.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:_As(a,e,t)}}var V_l=(e,t,r)=>{let n=new Map,a=(C,b,E)=>{let{linkType:N,target:B}=L_l(C,e,r);return{locator:d6(C),nodePath:b,target:B,linkType:N,aliases:E}},o=C=>{let[b,E]=C.split("/");return E?{scope:b,name:E}:{scope:null,name:b}},l=new Set,A=(C,b,E)=>{if(l.has(C))return;l.add(C);let N=Array.from(C.references).sort().join("#");for(let B of C.dependencies){let F=Array.from(B.references).sort().join("#");if(B.identName===C.identName.replace(yue,"")&&F===N)continue;let Q=Array.from(B.references).sort(),X={name:B.identName,reference:Q[0]},{name:ae,scope:ne}=o(B.name),ce=ne?[ne,ae]:[ae],fe=HR.ppath.join(b,aGt),ue=HR.ppath.join(fe,...ce),de=`${E}/${X.name}`,be=a(X,E,Q.slice(1)),Se=!1;if(be.linkType===j4.SOFT&&r.project){let De=r.project.workspacesByCwd.get(be.target.slice(0,-1));Se=!!(De&&!De.manifest.name)}if(!B.name.endsWith(yue)&&!Se){let De=n.get(ue);if(De){if(De.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let ct=X_.structUtils.parseLocator(De.locator),Me=X_.structUtils.parseLocator(be.locator);if(De.linkType!==be.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/${X_.structUtils.stringifyLocator(Me)}`);if(ct.identHash!==Me.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/s${X_.structUtils.stringifyLocator(Me)}`);be.aliases=[...be.aliases,...De.aliases,X_.structUtils.parseLocator(De.locator).reference]}}n.set(ue,be);let k=ue.split("/"),et=k.indexOf(aGt);for(let ct=k.length-1;et>=0&&ct>et;ct--){let Me=HR.npath.toPortablePath(k.slice(0,ct).join(HR.ppath.sep)),je=k[ct],St=n.get(Me);if(!St)n.set(Me,{dirList:new Set([je])});else if(St.dirList){if(St.dirList.has(je))break;St.dirList.add(je)}}}A(B,be.linkType===j4.SOFT?be.target:ue,de)}},f=a({name:t.name,reference:Array.from(t.references)[0]},"",[]),I=f.target;return n.set(I,f),A(t,I,""),n}});var t7e=H(QV=>{"use strict";Object.defineProperty(QV,"__esModule",{value:!0});QV.HoisterDependencyKind=QV.hoist=QV.getArchivePath=QV.buildLocatorMap=QV.buildNodeModulesTree=QV.NodeModulesHoistingLimits=void 0;var P_l=cGt();Object.defineProperty(QV,"getArchivePath",{enumerable:!0,get:function(){return P_l.getArchivePath}});var yAs=cGt();Object.defineProperty(QV,"buildNodeModulesTree",{enumerable:!0,get:function(){return yAs.buildNodeModulesTree}});Object.defineProperty(QV,"buildLocatorMap",{enumerable:!0,get:function(){return yAs.buildLocatorMap}});var W_l=cGt();Object.defineProperty(QV,"NodeModulesHoistingLimits",{enumerable:!0,get:function(){return W_l.NodeModulesHoistingLimits}});var bAs=hJr();Object.defineProperty(QV,"hoist",{enumerable:!0,get:function(){return bAs.hoist}});Object.defineProperty(QV,"HoisterDependencyKind",{enumerable:!0,get:function(){return bAs.HoisterDependencyKind}})});var ZJr=H(z4=>{"use strict";Object.defineProperty(z4,"__esModule",{value:!0});var O_l=wt("zlib"),GAs=wt("path"),r0e=wt("module"),eB=wt("url"),EAs=wt("util"),M_l=wt("assert"),H_l=wt("fs"),Y_l=wt("crypto"),Q_l=wt("os"),fGt=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},FAs=fGt(O_l),uGt=fGt(GAs),X_l=fGt(M_l),J_l=fGt(H_l),ZAs=(e=>(e.HARD="HARD",e.SOFT="SOFT",e))(ZAs||{}),U_l=456789e3,SJr={root:"/",dot:".",parent:".."},gGt={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Rc=Object.create(uGt.default),gh=Object.create(uGt.default.posix);Rc.cwd=()=>process.cwd();gh.cwd=process.platform==="win32"?()=>kJr(process.cwd()):process.cwd;process.platform==="win32"&&(gh.resolve=(...e)=>e.length>0&&gh.isAbsolute(e[0])?uGt.default.posix.resolve(...e):uGt.default.posix.resolve(gh.cwd(),...e));var LAs=function(e,t,r){return t=e.normalize(t),r=e.normalize(r),t===r?".":(t.endsWith(e.sep)||(t=t+e.sep),r.startsWith(t)?r.slice(t.length):null)};Rc.contains=(e,t)=>LAs(Rc,e,t);gh.contains=(e,t)=>LAs(gh,e,t);var K_l=/^([a-zA-Z]:.*)$/,j_l=/^\/\/(\.\/)?(.*)$/,z_l=/^\/([a-zA-Z]:.*)$/,q_l=/^\/unc\/(\.dot\/)?(.*)$/;function $_l(e){let t,r;if(t=e.match(z_l))e=t[1];else if(r=e.match(q_l))e=`\\\\${r[1]?".\\":""}${r[2]}`;else return e;return e.replace(/\//g,"\\")}function e0l(e){e=e.replace(/\\/g,"/");let t,r;return(t=e.match(K_l))?e=`/${t[1]}`:(r=e.match(j_l))&&(e=`/unc/${r[1]?".dot/":""}${r[2]}`),e}var kJr=process.platform==="win32"?e0l:e=>e,VAs=process.platform==="win32"?$_l:e=>e;Rc.fromPortablePath=VAs;Rc.toPortablePath=kJr;function PAs(e,t){return e===Rc?VAs(t):kJr(t)}var i0e=new Date(U_l*1e3),t0l=i0e.getTime();async function r0l(e,t,r,n,a){let o=e.pathUtils.normalize(t),l=r.pathUtils.normalize(n),A=[],f=[],{atime:I,mtime:C}=a.stableTime?{atime:i0e,mtime:i0e}:await r.lstatPromise(l);await e.mkdirpPromise(e.pathUtils.dirname(t),{utimes:[I,C]}),await vJr(A,f,e,o,r,l,{...a,didParentExist:!0});for(let b of A)await b();await Promise.all(f.map(b=>b()))}async function vJr(e,t,r,n,a,o,l){let A=l.didParentExist?await WAs(r,n):null,f=await a.lstatPromise(o),{atime:I,mtime:C}=l.stableTime?{atime:i0e,mtime:i0e}:f,b;switch(!0){case f.isDirectory():b=await n0l(e,t,r,n,A,a,o,f,l);break;case f.isFile():b=await o0l(e,t,r,n,A,a,o,f,l);break;case f.isSymbolicLink():b=await a0l(e,t,r,n,A,a,o,f,l);break;default:throw new Error(`Unsupported file type (${f.mode})`)}return(l.linkStrategy?.type!=="HardlinkFromIndex"||!f.isFile())&&((b||A?.mtime?.getTime()!==C.getTime()||A?.atime?.getTime()!==I.getTime())&&(t.push(()=>r.lutimesPromise(n,I,C)),b=!0),(A===null||(A.mode&511)!==(f.mode&511))&&(t.push(()=>r.chmodPromise(n,f.mode&511)),b=!0)),b}async function WAs(e,t){try{return await e.lstatPromise(t)}catch{return null}}async function n0l(e,t,r,n,a,o,l,A,f){if(a!==null&&!a.isDirectory())if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;let I=!1;a===null&&(e.push(async()=>{try{await r.mkdirPromise(n,{mode:A.mode})}catch(E){if(E.code!=="EEXIST")throw E}}),I=!0);let C=await o.readdirPromise(l),b=f.didParentExist&&!a?{...f,didParentExist:!1}:f;if(f.stableSort)for(let E of C.sort())await vJr(e,t,r,r.pathUtils.join(n,E),o,o.pathUtils.join(l,E),b)&&(I=!0);else(await Promise.all(C.map(async N=>{await vJr(e,t,r,r.pathUtils.join(n,N),o,o.pathUtils.join(l,N),b)}))).some(N=>N)&&(I=!0);return I}async function i0l(e,t,r,n,a,o,l,A,f,I){let C=await o.checksumFilePromise(l,{algorithm:"sha1"}),b=420,E=A.mode&511,N=`${C}${E!==b?E.toString(8):""}`,B=r.pathUtils.join(I.indexPath,C.slice(0,2),`${N}.dat`),F;(ce=>{ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"})(F||(F={}));let Q=1,X=await WAs(r,B);if(a){let ce=X&&a.dev===X.dev&&a.ino===X.ino,fe=X?.mtimeMs!==t0l;if(ce&&fe&&I.autoRepair&&(Q=0,X=null),!ce)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1}let ae=!X&&Q===1?`${B}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ne=!1;return e.push(async()=>{if(!X&&(Q===0&&await r.lockPromise(B,async()=>{let ce=await o.readFilePromise(l);await r.writeFilePromise(B,ce)}),Q===1&&ae)){let ce=await o.readFilePromise(l);await r.writeFilePromise(ae,ce);try{await r.linkPromise(ae,B)}catch(fe){if(fe.code==="EEXIST")ne=!0,await r.unlinkPromise(ae);else throw fe}}a||await r.linkPromise(B,n)}),t.push(async()=>{X||(await r.lutimesPromise(B,i0e,i0e),E!==b&&await r.chmodPromise(B,E)),ae&&!ne&&await r.unlinkPromise(ae)}),!1}async function s0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{let I=await o.readFilePromise(l);await r.writeFilePromise(n,I)}),!0}async function o0l(e,t,r,n,a,o,l,A,f){return f.linkStrategy?.type==="HardlinkFromIndex"?i0l(e,t,r,n,a,o,l,A,f,f.linkStrategy):s0l(e,t,r,n,a,o,l,A,f)}async function a0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{await r.symlinkPromise(PAs(r.pathUtils,await o.readlinkPromise(l)),n)}),!0}var AGt=class{pathUtils;constructor(t){this.pathUtils=t}async*genTraversePromise(t,{stableSort:r=!1}={}){let n=[t];for(;n.length>0;){let a=n.shift();if((await this.lstatPromise(a)).isDirectory()){let l=await this.readdirPromise(a);if(r)for(let A of l.sort())n.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(t,{algorithm:r="sha512"}={}){let n=await this.openPromise(t,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=Y_l.createHash(r),A=0;for(;(A=await this.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await this.closePromise(n)}}async removePromise(t,{recursive:r=!0,maxRetries:n=5}={}){let a;try{a=await this.lstatPromise(t)}catch(o){if(o.code==="ENOENT")return;throw o}if(a.isDirectory()){if(r){let o=await this.readdirPromise(t);await Promise.all(o.map(l=>this.removePromise(this.pathUtils.resolve(t,l))))}for(let o=0;o<=n;o++)try{await this.rmdirPromise(t);break}catch(l){if(l.code!=="EBUSY"&&l.code!=="ENOTEMPTY")throw l;osetTimeout(A,o*100))}}else await this.unlinkPromise(t)}removeSync(t,{recursive:r=!0}={}){let n;try{n=this.lstatSync(t)}catch(a){if(a.code==="ENOENT")return;throw a}if(n.isDirectory()){if(r)for(let a of this.readdirSync(t))this.removeSync(this.pathUtils.resolve(t,a));this.rmdirSync(t)}else this.unlinkSync(t)}async mkdirpPromise(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&await this.chmodPromise(A,r),n!=null)await this.utimesPromise(A,n[0],n[1]);else{let f=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,f.atime,f.mtime)}}}return o}mkdirpSync(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&this.chmodSync(A,r),n!=null)this.utimesSync(A,n[0],n[1]);else{let f=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,f.atime,f.mtime)}}}return o}async copyPromise(t,r,{baseFs:n=this,overwrite:a=!0,stableSort:o=!1,stableTime:l=!1,linkStrategy:A=null}={}){return await r0l(this,t,n,r,{overwrite:a,stableSort:o,stableTime:l,linkStrategy:A})}copySync(t,r,{baseFs:n=this,overwrite:a=!0}={}){let o=n.lstatSync(r),l=this.existsSync(t);if(o.isDirectory()){this.mkdirpSync(t);let f=n.readdirSync(r);for(let I of f)this.copySync(this.pathUtils.join(t,I),n.pathUtils.join(r,I),{baseFs:n,overwrite:a})}else if(o.isFile()){if(!l||a){l&&this.removeSync(t);let f=n.readFileSync(r);this.writeFileSync(t,f)}}else if(o.isSymbolicLink()){if(!l||a){l&&this.removeSync(t);let f=n.readlinkSync(r);this.symlinkSync(PAs(this.pathUtils,f),t)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${o.mode.toString(8).padStart(6,"0")})`);let A=o.mode&511;this.chmodSync(t,A)}async changeFilePromise(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(t,r,n):this.changeFileTextPromise(t,r,n)}async changeFileBufferPromise(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(t)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(t,r,{mode:n})}async changeFileTextPromise(t,r,{automaticNewlines:n,mode:a}={}){let o="";try{o=await this.readFilePromise(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&await this.writeFilePromise(t,l,{mode:a})}changeFileSync(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(t,r,n):this.changeFileTextSync(t,r,n)}changeFileBufferSync(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(t)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(t,r,{mode:n})}changeFileTextSync(t,r,{automaticNewlines:n=!1,mode:a}={}){let o="";try{o=this.readFileSync(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&this.writeFileSync(t,l,{mode:a})}async movePromise(t,r){try{await this.renamePromise(t,r)}catch(n){if(n.code==="EXDEV")await this.copyPromise(r,t),await this.removePromise(t);else throw n}}moveSync(t,r){try{this.renameSync(t,r)}catch(n){if(n.code==="EXDEV")this.copySync(r,t),this.removeSync(t);else throw n}}async lockPromise(t,r){let n=`${t}.flock`,a=1e3/60,o=Date.now(),l=null,A=async()=>{let f;try{[f]=await this.readJsonPromise(n)}catch{return Date.now()-o<500}try{return process.kill(f,0),!0}catch{return!1}};for(;l===null;)try{l=await this.openPromise(n,"wx")}catch(f){if(f.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(n);continue}catch{}if(Date.now()-o<60*1e3)await new Promise(I=>setTimeout(I,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${n})`)}else throw f}await this.writePromise(l,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(l),await this.unlinkPromise(n)}catch{}}}async readJsonPromise(t){let r=await this.readFilePromise(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}readJsonSync(t){let r=this.readFileSync(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}async writeJsonPromise(t,r,{compact:n=!1}={}){let a=n?0:2;return await this.writeFilePromise(t,`${JSON.stringify(r,null,a)} `)}writeJsonSync(t,r,{compact:n=!1}={}){let a=n?0:2;return this.writeFileSync(t,`${JSON.stringify(r,null,a)} -`)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}},BJr=class extends AGt{constructor(){super(gh)}};function a0l(e){let t=e.match(/\r?\n/g);if(t===null)return Y_l.EOL;let r=t.filter(a=>a===`\r +`)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}},BJr=class extends AGt{constructor(){super(gh)}};function c0l(e){let t=e.match(/\r?\n/g);if(t===null)return Q_l.EOL;let r=t.filter(a=>a===`\r `).length,n=t.length-r;return r>n?`\r `:` -`}function SAs(e,t){return t.replace(/\r?\n/g,a0l(e))}var wJr=class extends AGt{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};function vAs(e){let t=e;return typeof e.path=="string"&&(t.path=Rc.toPortablePath(e.path)),t}var TJr=class extends BJr{realFs;constructor(t=X_l.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return SJr.root}resolve(t){return gh.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(Rc.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(Rc.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(Rc.fromPortablePath(t),r):this.realFs.opendirSync(Rc.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(Rc.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}realpathSync(t){return Rc.toPortablePath(this.realFs.realpathSync(Rc.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(Rc.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(Rc.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(Rc.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(Rc.fromPortablePath(t),r):this.realFs.statSync(Rc.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(Rc.fromPortablePath(t),r):this.realFs.lstatSync(Rc.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(Rc.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(Rc.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(Rc.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(Rc.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(Rc.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(Rc.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(Rc.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(Rc.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(Rc.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?Rc.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?Rc.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(vAs)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Rc.toPortablePath)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(vAs):this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(Rc.toPortablePath):this.realFs.readdirSync(Rc.fromPortablePath(t),r):this.realFs.readdirSync(Rc.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(Rc.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}readlinkSync(t){return Rc.toPortablePath(this.realFs.readlinkSync(Rc.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(Rc.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(Rc.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(Rc.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(Rc.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}},c0l=/^[0-9]+$/,CJr=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,l0l=/^([^/]+-)?[a-f0-9]+$/,dGt=class e extends wJr{baseFs;static makeVirtualPath(t,r,n){if(gh.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!gh.basename(r).match(l0l))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=gh.relative(gh.dirname(t),n).split("/"),l=0;for(;l{this.realFs.open(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(Rc.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(Rc.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(Rc.fromPortablePath(t),r):this.realFs.opendirSync(Rc.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(Rc.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}realpathSync(t){return Rc.toPortablePath(this.realFs.realpathSync(Rc.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(Rc.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(Rc.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(Rc.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(Rc.fromPortablePath(t),r):this.realFs.statSync(Rc.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(Rc.fromPortablePath(t),r):this.realFs.lstatSync(Rc.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(Rc.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(Rc.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(Rc.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(Rc.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(Rc.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(Rc.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(Rc.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(Rc.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(Rc.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?Rc.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?Rc.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(vAs)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Rc.toPortablePath)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(vAs):this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(Rc.toPortablePath):this.realFs.readdirSync(Rc.fromPortablePath(t),r):this.realFs.readdirSync(Rc.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(Rc.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}readlinkSync(t){return Rc.toPortablePath(this.realFs.readlinkSync(Rc.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(Rc.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(Rc.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(Rc.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(Rc.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}},l0l=/^[0-9]+$/,CJr=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,u0l=/^([^/]+-)?[a-f0-9]+$/,dGt=class e extends wJr{baseFs;static makeVirtualPath(t,r,n){if(gh.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!gh.basename(r).match(u0l))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=gh.relative(gh.dirname(t),n).split("/"),l=0;for(;l"u"||(A!==0&&(a+=", "),a+=JSON.stringify(f),a+=": ",a+=IGt(f,I,t,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function d0l(e,t,r){let n=Object.keys(e),a=`${r} `,o="";o+=r,o+=`{ +`;return a+=r,a+="]",a}function d0l(e,t,r){let n=Object.keys(e),a="";a+="{";for(let o=0,l=n.length,A=0;o"u"||(A!==0&&(a+=", "),a+=JSON.stringify(f),a+=": ",a+=IGt(f,I,t,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function p0l(e,t,r){let n=Object.keys(e),a=`${r} `,o="";o+=r,o+=`{ `;let l=0;for(let A=0,f=n.length;A"u"||(l!==0&&(o+=",",o+=` `),o+=a,o+=JSON.stringify(I),o+=": ",o+=IGt(I,C,t,a).replace(/^ +/g,""),l+=1)}return l!==0&&(o+=` -`),o+=r,o+="}",o}function IGt(e,t,r,n){let{next:a}=OAs[r],o=a[e]||a["*"];return MAs(t,o,n)}function MAs(e,t,r){let{collapsed:n}=OAs[t];return Array.isArray(e)?n?u0l(e,t,r):g0l(e,t,r):typeof e=="object"&&e!==null?n?A0l(e,t,r):d0l(e,t,r):JSON.stringify(e)}function HAs(e){return MAs(e,"TOP_LEVEL","")}function n7e(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function p0l(e){let t=new Map,r=n7e(e.fallbackExclusionList||[],[({name:n,reference:a})=>n,({name:n,reference:a})=>a]);for(let{name:n,reference:a}of r){let o=t.get(n);typeof o>"u"&&t.set(n,o=new Set),o.add(a)}return Array.from(t).map(([n,a])=>[n,Array.from(a)])}function f0l(e){return n7e(e.fallbackPool||[],([t])=>t)}function I0l(e){let t=[],r=e.dependencyTreeRoots.find(n=>e.packageRegistry.get(n.name)?.get(n.reference)?.packageLocation==="./");for(let[n,a]of n7e(e.packageRegistry,([o])=>o===null?"0":`1${o}`)){if(n===null)continue;let o=[];t.push([n,o]);for(let[l,{packageLocation:A,packageDependencies:f,packagePeers:I,linkType:C,discardFromLookup:b}]of n7e(a,([E])=>E===null?"0":`1${E}`)){if(l===null)continue;let E=[];n!==null&&l!==null&&!f.has(n)&&E.push([n,l]);for(let[X,ae]of f)E.push([X,ae]);let N=n7e(E,([X])=>X),B=I&&I.size>0?Array.from(I):void 0,Q={packageLocation:A,packageDependencies:N,packagePeers:B,linkType:C,discardFromLookup:b||void 0};o.push([l,Q]),r&&n===r.name&&l===r.reference&&t.unshift([null,[[null,Q]]])}}return t}function xJr(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,pnpZipBackend:e.pnpZipBackend,fallbackExclusionList:p0l(e),fallbackPool:f0l(e),packageRegistryData:I0l(e)}}var _Jr,h0l=()=>(typeof _Jr>"u"&&(_Jr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),_Jr);function GJr(e,t){return[e?`${e} +`),o+=r,o+="}",o}function IGt(e,t,r,n){let{next:a}=OAs[r],o=a[e]||a["*"];return MAs(t,o,n)}function MAs(e,t,r){let{collapsed:n}=OAs[t];return Array.isArray(e)?n?g0l(e,t,r):A0l(e,t,r):typeof e=="object"&&e!==null?n?d0l(e,t,r):p0l(e,t,r):JSON.stringify(e)}function HAs(e){return MAs(e,"TOP_LEVEL","")}function n7e(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function f0l(e){let t=new Map,r=n7e(e.fallbackExclusionList||[],[({name:n,reference:a})=>n,({name:n,reference:a})=>a]);for(let{name:n,reference:a}of r){let o=t.get(n);typeof o>"u"&&t.set(n,o=new Set),o.add(a)}return Array.from(t).map(([n,a])=>[n,Array.from(a)])}function I0l(e){return n7e(e.fallbackPool||[],([t])=>t)}function h0l(e){let t=[],r=e.dependencyTreeRoots.find(n=>e.packageRegistry.get(n.name)?.get(n.reference)?.packageLocation==="./");for(let[n,a]of n7e(e.packageRegistry,([o])=>o===null?"0":`1${o}`)){if(n===null)continue;let o=[];t.push([n,o]);for(let[l,{packageLocation:A,packageDependencies:f,packagePeers:I,linkType:C,discardFromLookup:b}]of n7e(a,([E])=>E===null?"0":`1${E}`)){if(l===null)continue;let E=[];n!==null&&l!==null&&!f.has(n)&&E.push([n,l]);for(let[X,ae]of f)E.push([X,ae]);let N=n7e(E,([X])=>X),B=I&&I.size>0?Array.from(I):void 0,Q={packageLocation:A,packageDependencies:N,packagePeers:B,linkType:C,discardFromLookup:b||void 0};o.push([l,Q]),r&&n===r.name&&l===r.reference&&t.unshift([null,[[null,Q]]])}}return t}function xJr(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,pnpZipBackend:e.pnpZipBackend,fallbackExclusionList:f0l(e),fallbackPool:I0l(e),packageRegistryData:h0l(e)}}var _Jr,m0l=()=>(typeof _Jr>"u"&&(_Jr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),_Jr);function GJr(e,t){return[e?`${e} `:"",`/* eslint-disable */ `,`// @ts-nocheck `,`"use strict"; `,` `,t,` -`,h0l()].join("")}function m0l(e){return JSON.stringify(e,null,2)}function C0l(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function _0l(e){return[`const RAW_RUNTIME_STATE = -`,`${C0l(HAs(e))}; +`,m0l()].join("")}function C0l(e){return JSON.stringify(e,null,2)}function _0l(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function y0l(e){return[`const RAW_RUNTIME_STATE = +`,`${_0l(HAs(e))}; `,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); `,`} -`].join("")}function y0l(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`].join("")}function b0l(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` const fs = require('fs'); `,` const path = require('path'); `,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(gGt.pnpData)}); `,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); `,`} -`].join("")}function b0l(e){let t=xJr(e),r=_0l(t);return GJr(e.shebang,r)}function E0l(e){let t=xJr(e),r=y0l(),n=GJr(e.shebang,r);return{dataFile:m0l(t),loaderFile:n}}function YAs(e,{basePath:t}){let r=Rc.toPortablePath(t),n=gh.resolve(r),a=e.ignorePatternData!==null?new RegExp(e.ignorePatternData):null,o=new Map,l=new Map(e.packageRegistryData.map(([b,E])=>[b,new Map(E.map(([N,B])=>{if(b===null!=(N===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let F=B.discardFromLookup??!1,Q={name:b,reference:N},X=o.get(B.packageLocation);X?(X.discardFromLookup=X.discardFromLookup&&F,F||(X.locator=Q)):o.set(B.packageLocation,{locator:Q,discardFromLookup:F});let ae=null;return[N,{packageDependencies:new Map(B.packageDependencies),packagePeers:new Set(B.packagePeers),linkType:B.linkType,discardFromLookup:F,get packageLocation(){return ae||(ae=gh.join(n,B.packageLocation))}}]}))])),A=new Map(e.fallbackExclusionList.map(([b,E])=>[b,new Set(E)])),f=new Map(e.fallbackPool),I=e.dependencyTreeRoots,C=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:I,enableTopLevelFallback:C,fallbackExclusionList:A,pnpZipBackend:e.pnpZipBackend,fallbackPool:f,ignorePattern:a,packageLocatorsByLocations:o,packageRegistry:l}}var QAs=Array.isArray,RJr=JSON.stringify,hGt=Object.getOwnPropertyNames,mGt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),BAs=(e,t)=>RegExp.prototype.exec.call(e,t),wAs=(e,...t)=>RegExp.prototype[Symbol.replace].apply(e,t),pGe=(e,...t)=>String.prototype.endsWith.apply(e,t),XAs=(e,...t)=>String.prototype.includes.apply(e,t),JAs=(e,...t)=>String.prototype.lastIndexOf.apply(e,t),pGt=(e,...t)=>String.prototype.indexOf.apply(e,t),S0l=(e,...t)=>String.prototype.replace.apply(e,t),n0e=(e,...t)=>String.prototype.slice.apply(e,t),bue=(e,...t)=>String.prototype.startsWith.apply(e,t),v0l=Map,B0l=JSON.parse;function s7e(e,t,r){return class extends r{constructor(...n){super(t(...n)),this.code=e,this.name=`${r.name} [${e}]`}}}var w0l=s7e("ERR_PACKAGE_IMPORT_NOT_DEFINED",(e,t,r)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:""} imported from ${r}`,TypeError),UAs=s7e("ERR_INVALID_MODULE_SPECIFIER",(e,t,r=void 0)=>`Invalid module "${e}" ${t}${r?` imported from ${r}`:""}`,TypeError),T0l=s7e("ERR_INVALID_PACKAGE_TARGET",(e,t,r,n=!1,a=void 0)=>{let o=typeof r=="string"&&!n&&r.length&&!bue(r,"./");return t==="."?(Q_l.default(n===!1),`Invalid "exports" main target ${RJr(r)} defined in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`):`Invalid "${n?"imports":"exports"}" target ${RJr(r)} defined for '${t}' in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`},Error),FJr=s7e("ERR_INVALID_PACKAGE_CONFIG",(e,t,r)=>`Invalid package config ${e}${t?` while importing ${t}`:""}${r?`. ${r}`:""}`,Error),R0l=s7e("ERR_PACKAGE_PATH_NOT_EXPORTED",(e,t,r=void 0)=>t==="."?`No "exports" main defined in ${e}package.json${r?` imported from ${r}`:""}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${r?` imported from ${r}`:""}`,Error);function N0l(e,t){let r=Object.create(null);for(let n=0;nt):e+t}r7e(r,e,n,l,a)}BAs(TAs,n0e(e,2))!==null&&r7e(r,e,n,l,a);let f=new URL(e,n),I=f.pathname,C=new URL(".",n).pathname;if(bue(I,C)||r7e(r,e,n,l,a),t==="")return f;if(BAs(TAs,t)!==null){let b=o?S0l(r,"*",()=>t):r+t;G0l(b,n,l,a)}return o?new URL(wAs(RAs,f.href,()=>t)):new URL(t,f)}function Z0l(e){let t=+e;return`${t}`!==e?!1:t>=0&&t<4294967295}function fGe(e,t,r,n,a,o,l,A){if(typeof t=="string")return F0l(t,r,n,e,a,o,l);if(QAs(t)){if(t.length===0)return null;let f;for(let I=0;Io?-1:o>a||r===-1?1:n===-1||e.length>t.length?-1:t.length>e.length?1:0}function L0l(e,t,r){if(typeof e=="string"||QAs(e))return!0;if(typeof e!="object"||e===null)return!1;let n=hGt(e),a=!1,o=0;for(let l=0;l=I.length&&pGe(t,b)&&KAs(o,I)===1&&JAs(I,"*")===C&&(o=I,l=n0e(t,C,t.length-b.length))}}if(o){let f=r[o],I=fGe(e,f,l,o,n,!0,!1,a);return I==null&&yJr(t,e,n),I}yJr(t,e,n)}function W0l({name:e,base:t,conditions:r,readFileSyncFn:n}){if(e==="#"||bue(e,"#/")||pGe(e,"/")){let l="is not a valid internal imports specifier name";throw new UAs(e,l,eB.fileURLToPath(t))}let a,o=k0l(t,n);if(o.exists){a=eB.pathToFileURL(o.pjsonPath);let l=o.imports;if(l)if(mGt(l,e)&&!XAs(e,"*")){let A=fGe(a,l[e],"",e,t,!1,!0,r);if(A!=null)return A}else{let A="",f,I=hGt(l);for(let C=0;C=b.length&&pGe(e,N)&&KAs(A,b)===1&&JAs(b,"*")===E&&(A=b,f=n0e(e,E,e.length-N.length))}}if(A){let C=l[A],b=fGe(a,C,f,A,t,!0,!0,r);if(b!=null)return b}}}x0l(e,a,t)}var yT=(e=>(e.API_ERROR="API_ERROR",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED",e))(yT||{}),O0l=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function YR(e,t,r={},n){n??=O0l.has(e)?"MODULE_NOT_FOUND":e;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...a,value:n},pnpCode:{...a,value:e},data:{...a,value:r}})}function p6(e){return Rc.normalize(Rc.fromPortablePath(e))}var NJr=Symbol("arg flag"),DH=class e extends Error{constructor(t,r){super(t),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,e.prototype)}};function i7e(e,{argv:t=process.argv.slice(2),permissive:r=!1,stopAtPositional:n=!1}={}){if(!e)throw new DH("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},o={},l={};for(let A of Object.keys(e)){if(!A)throw new DH("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new DH(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new DH(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof e[A]=="string"){o[A]=e[A];continue}let f=e[A],I=!1;if(Array.isArray(f)&&f.length===1&&typeof f[0]=="function"){let[C]=f;f=(b,E,N=[])=>(N.push(C(b,E,N[N.length-1])),N),I=C===Boolean||C[NJr]===!0}else if(typeof f=="function")I=f===Boolean||f[NJr]===!0;else throw new DH(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new DH(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");l[A]=[f,I]}for(let A=0,f=t.length;A0){a._=a._.concat(t.slice(A));break}if(I==="--"){a._=a._.concat(t.slice(A+1));break}if(I.length>1&&I[0]==="-"){let C=I[1]==="-"||I.length===2?[I]:I.slice(1).split("").map(b=>`-${b}`);for(let b=0;b1&&t[A+1][0]==="-"&&!(t[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(Q===Number||typeof BigInt<"u"&&Q===BigInt))){let ae=N===F?"":` (alias for ${F})`;throw new DH(`option requires argument: ${N}${ae}`,"ARG_MISSING_REQUIRED_LONGARG")}a[F]=Q(t[A+1],F,a[F]),++A}else a[F]=Q(B,F,a[F])}}else a._.push(I)}return a}i7e.flag=e=>(e[NJr]=!0,e);i7e.COUNT=i7e.flag((e,t,r)=>(r||0)+1);i7e.ArgError=DH;var M0l=i7e;function H0l(e){return Y0l(),DJr[e]}var DJr;function Y0l(){DJr||(DJr={"--conditions":[],...DAs(Q0l()),...DAs(process.execArgv)})}function DAs(e){return M0l({"--conditions":[String],"-C":"--conditions"},{argv:e,permissive:!0})}function Q0l(){let e=[],t=X0l(process.env.NODE_OPTIONS||"",e);return e.length,t}function X0l(e,t){let r=[],n=!1,a=!0;for(let o=0;o[b,new Map(E.map(([N,B])=>{if(b===null!=(N===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let F=B.discardFromLookup??!1,Q={name:b,reference:N},X=o.get(B.packageLocation);X?(X.discardFromLookup=X.discardFromLookup&&F,F||(X.locator=Q)):o.set(B.packageLocation,{locator:Q,discardFromLookup:F});let ae=null;return[N,{packageDependencies:new Map(B.packageDependencies),packagePeers:new Set(B.packagePeers),linkType:B.linkType,discardFromLookup:F,get packageLocation(){return ae||(ae=gh.join(n,B.packageLocation))}}]}))])),A=new Map(e.fallbackExclusionList.map(([b,E])=>[b,new Set(E)])),f=new Map(e.fallbackPool),I=e.dependencyTreeRoots,C=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:I,enableTopLevelFallback:C,fallbackExclusionList:A,pnpZipBackend:e.pnpZipBackend,fallbackPool:f,ignorePattern:a,packageLocatorsByLocations:o,packageRegistry:l}}var QAs=Array.isArray,RJr=JSON.stringify,hGt=Object.getOwnPropertyNames,mGt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),BAs=(e,t)=>RegExp.prototype.exec.call(e,t),wAs=(e,...t)=>RegExp.prototype[Symbol.replace].apply(e,t),pGe=(e,...t)=>String.prototype.endsWith.apply(e,t),XAs=(e,...t)=>String.prototype.includes.apply(e,t),JAs=(e,...t)=>String.prototype.lastIndexOf.apply(e,t),pGt=(e,...t)=>String.prototype.indexOf.apply(e,t),v0l=(e,...t)=>String.prototype.replace.apply(e,t),n0e=(e,...t)=>String.prototype.slice.apply(e,t),bue=(e,...t)=>String.prototype.startsWith.apply(e,t),B0l=Map,w0l=JSON.parse;function s7e(e,t,r){return class extends r{constructor(...n){super(t(...n)),this.code=e,this.name=`${r.name} [${e}]`}}}var T0l=s7e("ERR_PACKAGE_IMPORT_NOT_DEFINED",(e,t,r)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:""} imported from ${r}`,TypeError),UAs=s7e("ERR_INVALID_MODULE_SPECIFIER",(e,t,r=void 0)=>`Invalid module "${e}" ${t}${r?` imported from ${r}`:""}`,TypeError),R0l=s7e("ERR_INVALID_PACKAGE_TARGET",(e,t,r,n=!1,a=void 0)=>{let o=typeof r=="string"&&!n&&r.length&&!bue(r,"./");return t==="."?(X_l.default(n===!1),`Invalid "exports" main target ${RJr(r)} defined in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`):`Invalid "${n?"imports":"exports"}" target ${RJr(r)} defined for '${t}' in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`},Error),FJr=s7e("ERR_INVALID_PACKAGE_CONFIG",(e,t,r)=>`Invalid package config ${e}${t?` while importing ${t}`:""}${r?`. ${r}`:""}`,Error),N0l=s7e("ERR_PACKAGE_PATH_NOT_EXPORTED",(e,t,r=void 0)=>t==="."?`No "exports" main defined in ${e}package.json${r?` imported from ${r}`:""}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${r?` imported from ${r}`:""}`,Error);function D0l(e,t){let r=Object.create(null);for(let n=0;nt):e+t}r7e(r,e,n,l,a)}BAs(TAs,n0e(e,2))!==null&&r7e(r,e,n,l,a);let f=new URL(e,n),I=f.pathname,C=new URL(".",n).pathname;if(bue(I,C)||r7e(r,e,n,l,a),t==="")return f;if(BAs(TAs,t)!==null){let b=o?v0l(r,"*",()=>t):r+t;F0l(b,n,l,a)}return o?new URL(wAs(RAs,f.href,()=>t)):new URL(t,f)}function L0l(e){let t=+e;return`${t}`!==e?!1:t>=0&&t<4294967295}function fGe(e,t,r,n,a,o,l,A){if(typeof t=="string")return Z0l(t,r,n,e,a,o,l);if(QAs(t)){if(t.length===0)return null;let f;for(let I=0;Io?-1:o>a||r===-1?1:n===-1||e.length>t.length?-1:t.length>e.length?1:0}function V0l(e,t,r){if(typeof e=="string"||QAs(e))return!0;if(typeof e!="object"||e===null)return!1;let n=hGt(e),a=!1,o=0;for(let l=0;l=I.length&&pGe(t,b)&&KAs(o,I)===1&&JAs(I,"*")===C&&(o=I,l=n0e(t,C,t.length-b.length))}}if(o){let f=r[o],I=fGe(e,f,l,o,n,!0,!1,a);return I==null&&yJr(t,e,n),I}yJr(t,e,n)}function O0l({name:e,base:t,conditions:r,readFileSyncFn:n}){if(e==="#"||bue(e,"#/")||pGe(e,"/")){let l="is not a valid internal imports specifier name";throw new UAs(e,l,eB.fileURLToPath(t))}let a,o=x0l(t,n);if(o.exists){a=eB.pathToFileURL(o.pjsonPath);let l=o.imports;if(l)if(mGt(l,e)&&!XAs(e,"*")){let A=fGe(a,l[e],"",e,t,!1,!0,r);if(A!=null)return A}else{let A="",f,I=hGt(l);for(let C=0;C=b.length&&pGe(e,N)&&KAs(A,b)===1&&JAs(b,"*")===E&&(A=b,f=n0e(e,E,e.length-N.length))}}if(A){let C=l[A],b=fGe(a,C,f,A,t,!0,!0,r);if(b!=null)return b}}}G0l(e,a,t)}var yT=(e=>(e.API_ERROR="API_ERROR",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED",e))(yT||{}),M0l=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function YR(e,t,r={},n){n??=M0l.has(e)?"MODULE_NOT_FOUND":e;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...a,value:n},pnpCode:{...a,value:e},data:{...a,value:r}})}function p6(e){return Rc.normalize(Rc.fromPortablePath(e))}var NJr=Symbol("arg flag"),DH=class e extends Error{constructor(t,r){super(t),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,e.prototype)}};function i7e(e,{argv:t=process.argv.slice(2),permissive:r=!1,stopAtPositional:n=!1}={}){if(!e)throw new DH("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},o={},l={};for(let A of Object.keys(e)){if(!A)throw new DH("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new DH(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new DH(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof e[A]=="string"){o[A]=e[A];continue}let f=e[A],I=!1;if(Array.isArray(f)&&f.length===1&&typeof f[0]=="function"){let[C]=f;f=(b,E,N=[])=>(N.push(C(b,E,N[N.length-1])),N),I=C===Boolean||C[NJr]===!0}else if(typeof f=="function")I=f===Boolean||f[NJr]===!0;else throw new DH(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new DH(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");l[A]=[f,I]}for(let A=0,f=t.length;A0){a._=a._.concat(t.slice(A));break}if(I==="--"){a._=a._.concat(t.slice(A+1));break}if(I.length>1&&I[0]==="-"){let C=I[1]==="-"||I.length===2?[I]:I.slice(1).split("").map(b=>`-${b}`);for(let b=0;b1&&t[A+1][0]==="-"&&!(t[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(Q===Number||typeof BigInt<"u"&&Q===BigInt))){let ae=N===F?"":` (alias for ${F})`;throw new DH(`option requires argument: ${N}${ae}`,"ARG_MISSING_REQUIRED_LONGARG")}a[F]=Q(t[A+1],F,a[F]),++A}else a[F]=Q(B,F,a[F])}}else a._.push(I)}return a}i7e.flag=e=>(e[NJr]=!0,e);i7e.COUNT=i7e.flag((e,t,r)=>(r||0)+1);i7e.ArgError=DH;var H0l=i7e;function Y0l(e){return Q0l(),DJr[e]}var DJr;function Q0l(){DJr||(DJr={"--conditions":[],...DAs(X0l()),...DAs(process.execArgv)})}function DAs(e){return H0l({"--conditions":[String],"-C":"--conditions"},{argv:e,permissive:!0})}function X0l(){let e=[],t=J0l(process.env.NODE_OPTIONS||"",e);return e.length,t}function J0l(e,t){let r=[],n=!1,a=!0;for(let o=0;oparseInt(e,10)),J0l=bJr>19||bJr===19&&kAs>=2||bJr===18&&kAs>=13;function xAs(e){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let t=e.map(r=>Rc.fromPortablePath(dGt.resolveVirtual(r)));if(J0l)process.send({"watch:require":t});else for(let r of t)process.send({"watch:require":r})}}function jAs(e,t){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,o=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,A=/^\.{0,2}\//,f={name:null,reference:null},I=[],C=new Set;if(e.enableTopLevelFallback===!0&&I.push(f),t.compatibilityMode!==!1)for(let vt of["react-scripts","gatsby"]){let xt=e.packageRegistry.get(vt);if(xt)for(let Zr of xt.keys()){if(Zr===null)throw new Error("Assertion failed: This reference shouldn't be null");I.push({name:vt,reference:Zr})}}let{ignorePattern:b,packageRegistry:E,packageLocatorsByLocations:N}=e;function B(vt,xt){return{fn:vt,args:xt,error:null,result:null}}function F(vt){let xt=process.stderr?.hasColors?.()??process.stdout.isTTY,Zr=(lr,cr)=>`\x1B[${lr}m${cr}\x1B[0m`,qt=vt.error;console.error(qt?Zr("31;1",`\u2716 ${vt.error?.message.replace(/\n.*/s,"")}`):Zr("33;1","\u203C Resolution")),vt.args.length>0&&console.error();for(let lr of vt.args)console.error(` ${Zr("37;1","In \u2190")} ${EAs.inspect(lr,{colors:xt,compact:!0})}`);vt.result&&(console.error(),console.error(` ${Zr("37;1","Out \u2192")} ${EAs.inspect(vt.result,{colors:xt,compact:!0})}`));let Xt=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Xt.length>0){console.error();for(let lr of Xt)console.error(` ${Zr("38;5;244",lr)}`)}console.error()}function Q(vt,xt){if(t.allowDebug===!1)return xt;if(Number.isFinite(n)){if(n>=2)return(...Zr)=>{let qt=B(vt,Zr);try{return qt.result=xt(...Zr)}catch(Xt){throw qt.error=Xt}finally{F(qt)}};if(n>=1)return(...Zr)=>{try{return xt(...Zr)}catch(qt){let Xt=B(vt,Zr);throw Xt.error=qt,F(Xt),qt}}}return xt}function X(vt){let xt=k(vt);if(!xt)throw YR(yT.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return xt}function ae(vt){if(vt.name===null)return!0;for(let xt of e.dependencyTreeRoots)if(xt.name===vt.name&&xt.reference===vt.reference)return!0;return!1}let ne=new Set(["node","require",...H0l("--conditions")]);function ce(vt,xt=ne,Zr){let qt=Me(gh.join(vt,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(qt===null)throw YR(yT.INTERNAL,`The locator that owns the "${vt}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Xt}=X(qt),lr=gh.join(Xt,gGt.manifest);if(!t.fakeFs.existsSync(lr))return null;let cr=JSON.parse(t.fakeFs.readFileSync(lr,"utf8"));if(cr.exports==null)return null;let Ar=gh.contains(Xt,vt);if(Ar===null)throw YR(yT.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Ar!=="."&&!A.test(Ar)&&(Ar=`./${Ar}`);try{let qr=P0l({packageJSONUrl:eB.pathToFileURL(Rc.fromPortablePath(lr)),packageSubpath:Ar,exports:cr.exports,base:Zr?eB.pathToFileURL(Rc.fromPortablePath(Zr)):null,conditions:xt});return Rc.toPortablePath(eB.fileURLToPath(qr))}catch(qr){throw YR(yT.EXPORTS_RESOLUTION_FAILED,qr.message,{unqualifiedPath:p6(vt),locator:qt,pkgJson:cr,subpath:p6(Ar),conditions:xt},qr.code)}}function fe(vt,xt,{extensions:Zr}){let qt;try{xt.push(vt),qt=t.fakeFs.statSync(vt)}catch{}if(qt&&!qt.isDirectory())return t.fakeFs.realpathSync(vt);if(qt&&qt.isDirectory()){let Xt;try{Xt=JSON.parse(t.fakeFs.readFileSync(gh.join(vt,gGt.manifest),"utf8"))}catch{}let lr;if(Xt&&Xt.main&&(lr=gh.resolve(vt,Xt.main)),lr&&lr!==vt){let cr=fe(lr,xt,{extensions:Zr});if(cr!==null)return cr}}for(let Xt=0,lr=Zr.length;Xt{let Ar=JSON.stringify(cr.name);if(qt.has(Ar))return;qt.add(Ar);let qr=et(cr);for(let _n of qr)if(X(_n).packagePeers.has(vt))Xt(_n);else{let jt=Zr.get(_n.name);typeof jt>"u"&&Zr.set(_n.name,jt=new Set),jt.add(_n.reference)}};Xt(xt);let lr=[];for(let cr of[...Zr.keys()].sort())for(let Ar of[...Zr.get(cr)].sort())lr.push({name:cr,reference:Ar});return lr}function Me(vt,{resolveIgnored:xt=!1,includeDiscardFromLookup:Zr=!1}={}){if(be(vt)&&!xt)return null;let qt=gh.relative(e.basePath,vt);qt.match(o)||(qt=`./${qt}`),qt.endsWith("/")||(qt=`${qt}/`);do{let Xt=N.get(qt);if(typeof Xt>"u"||Xt.discardFromLookup&&!Zr){qt=qt.substring(0,qt.lastIndexOf("/",qt.length-2)+1);continue}return Xt.locator}while(qt!=="");return null}function je(vt){try{return t.fakeFs.readFileSync(Rc.toPortablePath(vt),"utf8")}catch(xt){if(xt.code==="ENOENT")return;throw xt}}function St(vt,xt,{considerBuiltins:Zr=!0}={}){if(vt.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(vt==="pnpapi")return Rc.toPortablePath(t.pnpapiResolution);if(Zr&&r0e.isBuiltin(vt))return null;let qt=p6(vt),Xt=xt&&p6(xt);if(xt&&be(xt)&&(!gh.isAbsolute(vt)||Me(vt)===null)){let Ar=de(vt,xt);if(Ar===!1)throw YR(yT.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),r}var[bJr,kAs]=process.versions.node.split(".").map(e=>parseInt(e,10)),U0l=bJr>19||bJr===19&&kAs>=2||bJr===18&&kAs>=13;function xAs(e){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let t=e.map(r=>Rc.fromPortablePath(dGt.resolveVirtual(r)));if(U0l)process.send({"watch:require":t});else for(let r of t)process.send({"watch:require":r})}}function jAs(e,t){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,o=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,A=/^\.{0,2}\//,f={name:null,reference:null},I=[],C=new Set;if(e.enableTopLevelFallback===!0&&I.push(f),t.compatibilityMode!==!1)for(let vt of["react-scripts","gatsby"]){let xt=e.packageRegistry.get(vt);if(xt)for(let Zr of xt.keys()){if(Zr===null)throw new Error("Assertion failed: This reference shouldn't be null");I.push({name:vt,reference:Zr})}}let{ignorePattern:b,packageRegistry:E,packageLocatorsByLocations:N}=e;function B(vt,xt){return{fn:vt,args:xt,error:null,result:null}}function F(vt){let xt=process.stderr?.hasColors?.()??process.stdout.isTTY,Zr=(lr,cr)=>`\x1B[${lr}m${cr}\x1B[0m`,qt=vt.error;console.error(qt?Zr("31;1",`\u2716 ${vt.error?.message.replace(/\n.*/s,"")}`):Zr("33;1","\u203C Resolution")),vt.args.length>0&&console.error();for(let lr of vt.args)console.error(` ${Zr("37;1","In \u2190")} ${EAs.inspect(lr,{colors:xt,compact:!0})}`);vt.result&&(console.error(),console.error(` ${Zr("37;1","Out \u2192")} ${EAs.inspect(vt.result,{colors:xt,compact:!0})}`));let Xt=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Xt.length>0){console.error();for(let lr of Xt)console.error(` ${Zr("38;5;244",lr)}`)}console.error()}function Q(vt,xt){if(t.allowDebug===!1)return xt;if(Number.isFinite(n)){if(n>=2)return(...Zr)=>{let qt=B(vt,Zr);try{return qt.result=xt(...Zr)}catch(Xt){throw qt.error=Xt}finally{F(qt)}};if(n>=1)return(...Zr)=>{try{return xt(...Zr)}catch(qt){let Xt=B(vt,Zr);throw Xt.error=qt,F(Xt),qt}}}return xt}function X(vt){let xt=k(vt);if(!xt)throw YR(yT.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return xt}function ae(vt){if(vt.name===null)return!0;for(let xt of e.dependencyTreeRoots)if(xt.name===vt.name&&xt.reference===vt.reference)return!0;return!1}let ne=new Set(["node","require",...Y0l("--conditions")]);function ce(vt,xt=ne,Zr){let qt=Me(gh.join(vt,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(qt===null)throw YR(yT.INTERNAL,`The locator that owns the "${vt}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Xt}=X(qt),lr=gh.join(Xt,gGt.manifest);if(!t.fakeFs.existsSync(lr))return null;let cr=JSON.parse(t.fakeFs.readFileSync(lr,"utf8"));if(cr.exports==null)return null;let Ar=gh.contains(Xt,vt);if(Ar===null)throw YR(yT.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Ar!=="."&&!A.test(Ar)&&(Ar=`./${Ar}`);try{let qr=W0l({packageJSONUrl:eB.pathToFileURL(Rc.fromPortablePath(lr)),packageSubpath:Ar,exports:cr.exports,base:Zr?eB.pathToFileURL(Rc.fromPortablePath(Zr)):null,conditions:xt});return Rc.toPortablePath(eB.fileURLToPath(qr))}catch(qr){throw YR(yT.EXPORTS_RESOLUTION_FAILED,qr.message,{unqualifiedPath:p6(vt),locator:qt,pkgJson:cr,subpath:p6(Ar),conditions:xt},qr.code)}}function fe(vt,xt,{extensions:Zr}){let qt;try{xt.push(vt),qt=t.fakeFs.statSync(vt)}catch{}if(qt&&!qt.isDirectory())return t.fakeFs.realpathSync(vt);if(qt&&qt.isDirectory()){let Xt;try{Xt=JSON.parse(t.fakeFs.readFileSync(gh.join(vt,gGt.manifest),"utf8"))}catch{}let lr;if(Xt&&Xt.main&&(lr=gh.resolve(vt,Xt.main)),lr&&lr!==vt){let cr=fe(lr,xt,{extensions:Zr});if(cr!==null)return cr}}for(let Xt=0,lr=Zr.length;Xt{let Ar=JSON.stringify(cr.name);if(qt.has(Ar))return;qt.add(Ar);let qr=et(cr);for(let _n of qr)if(X(_n).packagePeers.has(vt))Xt(_n);else{let jt=Zr.get(_n.name);typeof jt>"u"&&Zr.set(_n.name,jt=new Set),jt.add(_n.reference)}};Xt(xt);let lr=[];for(let cr of[...Zr.keys()].sort())for(let Ar of[...Zr.get(cr)].sort())lr.push({name:cr,reference:Ar});return lr}function Me(vt,{resolveIgnored:xt=!1,includeDiscardFromLookup:Zr=!1}={}){if(be(vt)&&!xt)return null;let qt=gh.relative(e.basePath,vt);qt.match(o)||(qt=`./${qt}`),qt.endsWith("/")||(qt=`${qt}/`);do{let Xt=N.get(qt);if(typeof Xt>"u"||Xt.discardFromLookup&&!Zr){qt=qt.substring(0,qt.lastIndexOf("/",qt.length-2)+1);continue}return Xt.locator}while(qt!=="");return null}function je(vt){try{return t.fakeFs.readFileSync(Rc.toPortablePath(vt),"utf8")}catch(xt){if(xt.code==="ENOENT")return;throw xt}}function St(vt,xt,{considerBuiltins:Zr=!0}={}){if(vt.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(vt==="pnpapi")return Rc.toPortablePath(t.pnpapiResolution);if(Zr&&r0e.isBuiltin(vt))return null;let qt=p6(vt),Xt=xt&&p6(xt);if(xt&&be(xt)&&(!gh.isAbsolute(vt)||Me(vt)===null)){let Ar=de(vt,xt);if(Ar===!1)throw YR(yT.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${qt}" Required by: ${Xt} @@ -1604,8 +1604,8 @@ Expected package location: ${p6(cr)} Source path: ${Xt} ${Zr.map(cr=>`Not found: ${p6(cr)} -`).join("")}`,{unqualifiedPath:Xt,extensions:xt})}}function Tr(vt,xt,Zr){if(!xt)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let qt=W0l({name:vt,base:eB.pathToFileURL(Rc.fromPortablePath(xt)),conditions:Zr.conditions??ne,readFileSyncFn:je});if(qt instanceof URL)return Yt(Rc.toPortablePath(eB.fileURLToPath(qt)),{extensions:Zr.extensions});if(qt.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Nr(qt,xt,Zr)}function Nr(vt,xt,Zr={}){try{if(vt.startsWith("#"))return Tr(vt,xt,Zr);let{considerBuiltins:qt,extensions:Xt,conditions:lr}=Zr,cr=St(vt,xt,{considerBuiltins:qt});if(vt==="pnpapi")return cr;if(cr===null)return null;let Ar=()=>xt!==null?be(xt):!1,qr=(!qt||!r0e.isBuiltin(vt))&&!Ar()?At(vt,cr,lr,xt):cr;return Yt(qr,{extensions:Xt})}catch(qt){throw Object.hasOwn(qt,"pnpCode")&&Object.assign(qt.data,{request:p6(vt),issuer:xt&&p6(xt)}),qt}}function er(vt){let xt=gh.normalize(vt),Zr=dGt.resolveVirtual(xt);return Zr!==xt?Zr:null}return{VERSIONS:Se,topLevel:De,getLocator:(vt,xt)=>Array.isArray(xt)?{name:xt[0],reference:xt[1]}:{name:vt,reference:xt},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){let vt=[];for(let[xt,Zr]of E)for(let qt of Zr.keys())xt!==null&&qt!==null&&vt.push({name:xt,reference:qt});return vt},getPackageInformation:vt=>{let xt=k(vt);if(xt===null)return null;let Zr=Rc.fromPortablePath(xt.packageLocation);return{...xt,packageLocation:Zr}},findPackageLocator:vt=>Me(Rc.toPortablePath(vt)),resolveToUnqualified:Q("resolveToUnqualified",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=St(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveUnqualified:Q("resolveUnqualified",(vt,xt)=>Rc.fromPortablePath(Yt(Rc.toPortablePath(vt),xt))),resolveRequest:Q("resolveRequest",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=Nr(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveVirtual:Q("resolveVirtual",vt=>{let xt=er(Rc.toPortablePath(vt));return xt!==null?Rc.fromPortablePath(xt):null})}}async function U0l(e,{fakeFs:t,pnpapiResolution:r}){let n=await t.readFilePromise(e,"utf8");return zAs(n,{basePath:GAs.dirname(e),fakeFs:t,pnpapiResolution:r})}function zAs(e,{basePath:t,fakeFs:r,pnpapiResolution:n}){let a=JSON.parse(e),o=YAs(a,{basePath:t});return jAs(o,{compatibilityMode:!0,fakeFs:r,pnpapiResolution:n})}var K0l=(e,t,r)=>{let n=xJr(e),a=YAs(n,{basePath:t}),o=Rc.join(t,gGt.pnpCjs);return jAs(a,{fakeFs:r,pnpapiResolution:o})},EJr,j0l=()=>(typeof EJr>"u"&&(EJr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),EJr);z4.LinkType=ZAs;z4.generateInlinedScript=b0l;z4.generateLoader=GJr;z4.generatePrettyJson=HAs;z4.generateSplitScript=E0l;z4.getESMLoaderTemplate=j0l;z4.hydratePnpFile=U0l;z4.hydratePnpSource=zAs;z4.makeRuntimeApi=K0l});var LJr=H(IGe=>{"use strict";Object.defineProperty(IGe,"__esModule",{value:!0});IGe.checkManifestCompatibility=qAs;IGe.extractBuildRequest=q0l;IGe.getExtractHint=eyl;IGe.hasBindingGyp=tyl;var XV=Bn(),z0l=no();function qAs(e){return XV.structUtils.isPackageCompatible(e,XV.nodeUtils.getArchitectureSet())}function q0l(e,t,r,{configuration:n}){let a=[];for(let o of["preinstall","install","postinstall"])t.manifest.scripts.has(o)&&a.push({type:XV.BuildDirectiveType.SCRIPT,script:o});return!t.manifest.scripts.has("install")&&t.misc.hasBindingGyp&&a.push({type:XV.BuildDirectiveType.SHELLCODE,script:"node-gyp rebuild"}),a.length===0?null:e.linkType!==XV.LinkType.HARD?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.SOFT_LINK_BUILD,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:o=>o.reportInfoOnce(XV.MessageName.BUILD_DISABLED,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!n.get("enableScripts")&&!r.built?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.DISABLED_BUILD_SCRIPTS,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but all build scripts have been disabled.`)}:qAs(e)?{skipped:!1,directives:a}:{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.INCOMPATIBLE_ARCHITECTURE,`${XV.structUtils.prettyLocator(n,e)} The ${XV.nodeUtils.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var $0l=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function eyl(e){return e.packageFs.getExtractHint({relevantExtensions:$0l})}function tyl(e){let t=z0l.ppath.join(e.prefixPath,"binding.gyp");return e.packageFs.existsSync(t)}});var CGt=H(VJr=>{"use strict";Object.defineProperty(VJr,"__esModule",{value:!0});VJr.getUnpluggedPath=iyl;var ryl=Bn(),nyl=no();function iyl(e,{configuration:t}){return nyl.ppath.resolve(t.get("pnpUnpluggedFolder"),ryl.structUtils.slugifyLocator(e))}});var MJr=H(hGe=>{"use strict";Object.defineProperty(hGe,"__esModule",{value:!0});hGe.PnpInstaller=hGe.PnpLinker=void 0;var eds=(Pa(),vi(Va)),cC=Bn(),Eue=Bn(),Pm=no(),PJr=ZJr(),$As=($c(),vi(rg)),_Gt=mGe(),yGt=eds.__importStar(LJr()),syl=eds.__importStar(CGt()),oyl=new Set([cC.structUtils.makeIdent(null,"open").identHash,cC.structUtils.makeIdent(null,"opn").identHash]),OJr=class{constructor(){this.mode="strict",this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))throw new $As.UsageError(`The project in ${cC.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,cC.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})),o={name:cC.structUtils.stringifyIdent(t),reference:t.reference},l=a.getPackageInformation(o);if(!l)throw new $As.UsageError(`Couldn't find ${cC.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed PnP map - running an install might help`);return Pm.npath.toPortablePath(l.packageLocation)}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))return null;let o=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})).findPackageLocator(Pm.npath.fromPortablePath(t));return o?cC.structUtils.makeLocator(cC.structUtils.parseIdent(o.name),o.reference):null}makeInstaller(t){return new bGt(t)}isEnabled(t){return!(t.project.configuration.get("nodeLinker")!=="pnp"||t.project.configuration.get("pnpMode")!==this.mode)}};hGe.PnpLinker=OJr;var bGt=class{constructor(t){this.opts=t,this.mode="strict",this.asyncActions=new cC.miscUtils.AsyncActions(10),this.packageRegistry=new Map,this.virtualTemplates=new Map,this.isESMLoaderRequired=!1,this.customData={store:new Map},this.unpluggedPaths=new Set,this.opts=t}attachCustomData(t){this.customData=t}async installPackage(t,r,n){let a=cC.structUtils.stringifyIdent(t),o=t.reference,l=!!this.opts.project.tryWorkspaceByLocator(t),A=cC.structUtils.isVirtualLocator(t),f=t.peerDependencies.size>0&&!A,I=!f&&!l,C=!f&&t.linkType!==Eue.LinkType.SOFT,b,E;if(I||C){let ne=A?cC.structUtils.devirtualizeLocator(t):t;b=this.customData.store.get(ne.locatorHash),typeof b>"u"&&(b=await ayl(r),t.linkType===Eue.LinkType.HARD&&this.customData.store.set(ne.locatorHash,b)),b.manifest.type==="module"&&(this.isESMLoaderRequired=!0),E=this.opts.project.getDependencyMeta(ne,t.version)}let N=I?yGt.extractBuildRequest(t,b,E,{configuration:this.opts.project.configuration}):null,B=C?await this.unplugPackageIfNeeded(t,b,r,E,n):r.packageFs;if(Pm.ppath.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let F=Pm.ppath.resolve(B.getRealPath(),r.prefixPath),Q=WJr(this.opts.project.cwd,F),X=new Map,ae=new Set;if(A){for(let ne of t.peerDependencies.values())X.set(cC.structUtils.stringifyIdent(ne),null),ae.add(cC.structUtils.stringifyIdent(ne));if(!l){let ne=cC.structUtils.devirtualizeLocator(t);this.virtualTemplates.set(ne.locatorHash,{location:WJr(this.opts.project.cwd,Pm.VirtualFS.resolveVirtual(F)),locator:ne})}}return cC.miscUtils.getMapWithDefault(this.packageRegistry,a).set(o,{packageLocation:Q,packageDependencies:X,packagePeers:ae,linkType:t.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:F,buildRequest:N}}async attachInternalDependencies(t,r){let n=this.getPackageInformation(t);for(let[a,o]of r){let l=cC.structUtils.areIdentsEqual(a,o)?o.reference:[cC.structUtils.stringifyIdent(o),o.reference];n.packageDependencies.set(cC.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){for(let n of r)this.getDiskInformation(n).packageDependencies.set(cC.structUtils.stringifyIdent(t),t.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let t=(0,_Gt.getPnpPath)(this.opts.project);if(this.isEsmEnabled()||await Pm.xfs.removePromise(t.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await Pm.xfs.removePromise(t.cjs),await Pm.xfs.removePromise(t.data),await Pm.xfs.removePromise(t.esmLoader),await Pm.xfs.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:b,location:E}of this.virtualTemplates.values())cC.miscUtils.getMapWithDefault(this.packageRegistry,cC.structUtils.stringifyIdent(b)).set(b.reference,{packageLocation:E,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),n=this.opts.project.workspaces.map(({anchoredLocator:b})=>({name:cC.structUtils.stringifyIdent(b),reference:b.reference})),a=r!=="none",o=[],l=new Map,A=cC.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),f=this.packageRegistry,I=this.opts.project.configuration.get("pnpShebang"),C=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let b of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(b)&&o.push({name:cC.structUtils.stringifyIdent(b),reference:b.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:n,enableTopLevelFallback:a,fallbackExclusionList:o,fallbackPool:l,ignorePattern:A,pnpZipBackend:C,packageRegistry:f,shebang:I}),{customData:this.customData}}async transformPnpSettings(t){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let t of this.opts.project.workspaces)if(t.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(t){let r=(0,_Gt.getPnpPath)(this.opts.project),n=await this.locateNodeModules(t.ignorePattern);if(n.length>0){this.opts.report.reportWarning(Eue.MessageName.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await Pm.xfs.removePromise(o)}if(await this.transformPnpSettings(t),this.opts.project.configuration.get("pnpEnableInlining")){let o=(0,PJr.generateInlinedScript)(t);await Pm.xfs.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await Pm.xfs.removePromise(r.data)}else{let{dataFile:o,loaderFile:l}=(0,PJr.generateSplitScript)(t);await Pm.xfs.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await Pm.xfs.changeFilePromise(r.data,o,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(Eue.MessageName.EXPERIMENTAL,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await Pm.xfs.changeFilePromise(r.esmLoader,(0,PJr.getESMLoaderTemplate)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await Pm.xfs.removePromise(a);else for(let o of await Pm.xfs.readdirPromise(a)){let l=Pm.ppath.resolve(a,o);this.unpluggedPaths.has(l)||await Pm.xfs.removePromise(l)}}async locateNodeModules(t){let r=[],n=t?new RegExp(t):null;for(let a of this.opts.project.workspaces){let o=Pm.ppath.join(a.cwd,"node_modules");if(n&&n.test(Pm.ppath.relative(this.opts.project.cwd,a.cwd))||!Pm.xfs.existsSync(o))continue;let l=await Pm.xfs.readdirPromise(o,{withFileTypes:!0}),A=l.filter(f=>!f.isDirectory()||f.name===".bin"||!f.name.startsWith("."));if(A.length===l.length)r.push(o);else for(let f of A)r.push(Pm.ppath.join(o,f.name))}return r}async unplugPackageIfNeeded(t,r,n,a,o){return this.shouldBeUnplugged(t,r,a)?this.unplugPackage(t,n,o):n.packageFs}shouldBeUnplugged(t,r,n){return typeof n.unplugged<"u"?n.unplugged:oyl.has(t.identHash)||t.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(yGt.extractBuildRequest(t,r,n,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(t,r,n){let a=syl.getUnpluggedPath(t,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(t.locatorHash)?new Pm.AliasFS(a,{baseFs:r.packageFs,pathUtils:Pm.ppath}):(this.unpluggedPaths.add(a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{let o=Pm.ppath.join(a,r.prefixPath,".ready");await Pm.xfs.existsPromise(o)||(this.opts.project.storedBuildState.delete(t.locatorHash),await Pm.xfs.mkdirPromise(a,{recursive:!0}),await Pm.xfs.copyPromise(a,Pm.PortablePath.dot,{baseFs:r.packageFs,overwrite:!1}),await Pm.xfs.writeFilePromise(o,""))})),new Pm.CwdFS(a))}getPackageInformation(t){let r=cC.structUtils.stringifyIdent(t),n=t.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${cC.structUtils.prettyIdent(this.opts.project.configuration,t)})`);let o=a.get(n);if(!o)throw new Error(`Assertion failed: The package information should have been available (for ${cC.structUtils.prettyLocator(this.opts.project.configuration,t)})`);return o}getDiskInformation(t){let r=cC.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),n=WJr(this.opts.project.cwd,t);return cC.miscUtils.getFactoryWithDefault(r,n,()=>({packageLocation:n,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1}))}};hGe.PnpInstaller=bGt;function WJr(e,t){let r=Pm.ppath.relative(e,t);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function ayl(e){let t=await Eue.Manifest.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Eue.Manifest,r=new Set(["preinstall","install","postinstall"]);for(let n of t.scripts.keys())r.has(n)||t.scripts.delete(n);return{manifest:{scripts:t.scripts,preferUnplugged:t.preferUnplugged,type:t.type},misc:{extractHint:yGt.getExtractHint(e),hasBindingGyp:yGt.hasBindingGyp(e)}}}});var nds=H(HJr=>{"use strict";Object.defineProperty(HJr,"__esModule",{value:!0});var rds=(Pa(),vi(Va)),tds=el(),kH=Bn(),xH=Bn(),Wte=($c(),vi(rg)),cyl=rds.__importDefault(Ek()),lyl=rds.__importStar(CGt()),o7e=class extends tds.BaseCommand{constructor(){super(...arguments),this.all=Wte.Option.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"}),this.recursive=Wte.Option.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"}),this.json=Wte.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=Wte.Option.Rest()}async execute(){let t=await kH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await kH.Project.find(t,this.context.cwd),a=await kH.Cache.find(t);if(!n)throw new tds.WorkspaceRequiredError(r.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Wte.UsageError("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let o=new Set(this.patterns),l=this.patterns.map(E=>{let N=xH.structUtils.parseDescriptor(E),B=N.range!=="unknown"?N:xH.structUtils.makeDescriptor(N,"*");if(!xH.semverUtils.validRange(B.range))throw new Wte.UsageError(`The range of the descriptor patterns must be a valid semver range (${xH.structUtils.prettyDescriptor(t,B)})`);return F=>{let Q=xH.structUtils.stringifyIdent(F);return!cyl.default.isMatch(Q,xH.structUtils.stringifyIdent(B))||F.version&&!xH.semverUtils.satisfiesWithPrereleases(F.version,B.range)?!1:(o.delete(E),!0)}}),A=()=>{let E=[];for(let N of r.storedPackages.values())!r.tryWorkspaceByLocator(N)&&!xH.structUtils.isVirtualLocator(N)&&l.some(B=>B(N))&&E.push(N);return E},f=E=>{let N=new Set,B=[],F=(Q,X)=>{if(N.has(Q.locatorHash))return;let ae=!!r.tryWorkspaceByLocator(Q);if(!(X>0&&!this.recursive&&ae)&&(N.add(Q.locatorHash),!r.tryWorkspaceByLocator(Q)&&l.some(ne=>ne(Q))&&B.push(Q),!(X>0&&!this.recursive)))for(let ne of Q.dependencies.values()){let ce=r.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=r.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");F(fe,X+1)}};for(let Q of E)F(Q.anchoredPackage,0);return B},I,C;if(this.all&&this.recursive?(I=A(),C="the project"):this.all?(I=f(r.workspaces),C="any workspace"):(I=f([n]),C="this workspace"),o.size>1)throw new Wte.UsageError(`Patterns ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} don't match any packages referenced by ${C}`);if(o.size>0)throw new Wte.UsageError(`Pattern ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} doesn't match any packages referenced by ${C}`);I=kH.miscUtils.sortMap(I,E=>xH.structUtils.stringifyLocator(E));let b=await kH.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async E=>{for(let N of I){let B=N.version??"unknown",F=r.topLevelWorkspace.manifest.ensureDependencyMeta(xH.structUtils.makeDescriptor(N,B));F.unplugged=!0,E.reportInfo(kH.MessageName.UNNAMED,`Will unpack ${xH.structUtils.prettyLocator(t,N)} to ${kH.formatUtils.pretty(t,lyl.getUnpluggedPath(N,{configuration:t}),kH.formatUtils.Type.PATH)}`),E.reportJson({locator:xH.structUtils.stringifyLocator(N),version:B})}await r.topLevelWorkspace.persistManifest(),this.json||E.reportSeparator()});return b.hasErrors()?b.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};o7e.paths=[["unplug"]];o7e.usage=Wte.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});HJr.default=o7e});var mGe=H(bT=>{"use strict";Object.defineProperty(bT,"__esModule",{value:!0});bT.PnpLinker=bT.PnpInstaller=bT.quotePathIfNeeded=bT.getPnpPath=bT.pnpUtils=bT.jsInstallUtils=bT.UnplugCommand=void 0;var YJr=(Pa(),vi(Va)),JV=Bn(),f6=no(),uyl=wt("url"),gyl=MJr(),ids=YJr.__importDefault(nds());bT.UnplugCommand=ids.default;var Ayl=YJr.__importStar(LJr());bT.jsInstallUtils=Ayl;var dyl=YJr.__importStar(CGt());bT.pnpUtils=dyl;var pyl=e=>({cjs:f6.ppath.join(e.cwd,f6.Filename.pnpCjs),data:f6.ppath.join(e.cwd,f6.Filename.pnpData),esmLoader:f6.ppath.join(e.cwd,f6.Filename.pnpEsmLoader)});bT.getPnpPath=pyl;var fyl=e=>/\s/.test(e)?JSON.stringify(e):e;bT.quotePathIfNeeded=fyl;async function Iyl(e,t,r){let n=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,o=(t.NODE_OPTIONS??"").replace(n," ").replace(a," ").trim();if(e.configuration.get("nodeLinker")!=="pnp"){t.NODE_OPTIONS=o||void 0;return}let l=(0,bT.getPnpPath)(e),A=`--require ${(0,bT.quotePathIfNeeded)(f6.npath.fromPortablePath(l.cjs))}`;f6.xfs.existsSync(l.esmLoader)&&(A=`${A} --experimental-loader ${(0,uyl.pathToFileURL)(f6.npath.fromPortablePath(l.esmLoader)).href}`),f6.xfs.existsSync(l.cjs)&&(t.NODE_OPTIONS=o?`${A} ${o}`:A)}async function hyl(e,t){let r=(0,bT.getPnpPath)(e);t(r.cjs),t(r.data),t(r.esmLoader),t(e.configuration.get("pnpUnpluggedFolder"))}var myl={hooks:{populateYarnPaths:hyl,setupScriptEnvironment:Iyl},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:JV.SettingsType.STRING,default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:JV.SettingsType.BOOLEAN,default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:JV.SettingsType.STRING,values:[JV.WindowsLinkType.JUNCTIONS,JV.WindowsLinkType.SYMLINKS],default:JV.WindowsLinkType.JUNCTIONS},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:JV.SettingsType.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:JV.SettingsType.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:JV.SettingsType.STRING,default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:JV.SettingsType.STRING,values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:JV.SettingsType.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:JV.SettingsType.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:JV.SettingsType.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:JV.SettingsType.ABSOLUTE_PATH,default:"./.yarn/unplugged"}},linkers:[gyl.PnpLinker],commands:[ids.default]},sds=MJr();Object.defineProperty(bT,"PnpInstaller",{enumerable:!0,get:function(){return sds.PnpInstaller}});Object.defineProperty(bT,"PnpLinker",{enumerable:!0,get:function(){return sds.PnpLinker}});bT.default=myl});var ods=H((QJr,XJr)=>{(function(e){QJr&&typeof QJr=="object"&&typeof XJr<"u"?XJr.exports=e():typeof define=="function"&&define.amd?define([],e):typeof window<"u"?window.isWindows=e():typeof global<"u"?global.isWindows=e():typeof self<"u"?self.isWindows=e():this.isWindows=e()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var lds=H((Erg,cds)=>{"use strict";var Cyl=wt("path"),ads;process.env.PATHEXT&&(ads=process.env.PATHEXT.split(Cyl.delimiter).find(e=>e.toUpperCase()===".CMD"));cds.exports=ads||".cmd"});var gds=H((Srg,uds)=>{var Sue=wt("constants"),_yl=process.cwd,EGt=null,yyl=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return EGt||(EGt=_yl.call(process)),EGt};try{process.cwd()}catch{}typeof process.chdir=="function"&&(JJr=process.chdir,process.chdir=function(e){EGt=null,JJr.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,JJr));var JJr;uds.exports=byl;function byl(e){Sue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=o(e.chown),e.fchown=o(e.fchown),e.lchown=o(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=l(e.chownSync),e.fchownSync=l(e.fchownSync),e.lchownSync=l(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=A(e.stat),e.fstat=A(e.fstat),e.lstat=A(e.lstat),e.statSync=f(e.statSync),e.fstatSync=f(e.fstatSync),e.lstatSync=f(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(C,b,E){E&&process.nextTick(E)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(C,b,E,N){N&&process.nextTick(N)},e.lchownSync=function(){}),yyl==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(C){function b(E,N,B){var F=Date.now(),Q=0;C(E,N,function X(ae){if(ae&&(ae.code==="EACCES"||ae.code==="EPERM"||ae.code==="EBUSY")&&Date.now()-F<6e4){setTimeout(function(){e.stat(N,function(ne,ce){ne&&ne.code==="ENOENT"?C(E,N,X):B(ae)})},Q),Q<100&&(Q+=10);return}B&&B(ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.rename)),e.read=typeof e.read!="function"?e.read:function(C){function b(E,N,B,F,Q,X){var ae;if(X&&typeof X=="function"){var ne=0;ae=function(ce,fe,ue){if(ce&&ce.code==="EAGAIN"&&ne<10)return ne++,C.call(e,E,N,B,F,Q,ae);X.apply(this,arguments)}}return C.call(e,E,N,B,F,Q,ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(C){return function(b,E,N,B,F){for(var Q=0;;)try{return C.call(e,b,E,N,B,F)}catch(X){if(X.code==="EAGAIN"&&Q<10){Q++;continue}throw X}}}(e.readSync);function t(C){C.lchmod=function(b,E,N){C.open(b,Sue.O_WRONLY|Sue.O_SYMLINK,E,function(B,F){if(B){N&&N(B);return}C.fchmod(F,E,function(Q){C.close(F,function(X){N&&N(Q||X)})})})},C.lchmodSync=function(b,E){var N=C.openSync(b,Sue.O_WRONLY|Sue.O_SYMLINK,E),B=!0,F;try{F=C.fchmodSync(N,E),B=!1}finally{if(B)try{C.closeSync(N)}catch{}else C.closeSync(N)}return F}}function r(C){Sue.hasOwnProperty("O_SYMLINK")&&C.futimes?(C.lutimes=function(b,E,N,B){C.open(b,Sue.O_SYMLINK,function(F,Q){if(F){B&&B(F);return}C.futimes(Q,E,N,function(X){C.close(Q,function(ae){B&&B(X||ae)})})})},C.lutimesSync=function(b,E,N){var B=C.openSync(b,Sue.O_SYMLINK),F,Q=!0;try{F=C.futimesSync(B,E,N),Q=!1}finally{if(Q)try{C.closeSync(B)}catch{}else C.closeSync(B)}return F}):C.futimes&&(C.lutimes=function(b,E,N,B){B&&process.nextTick(B)},C.lutimesSync=function(){})}function n(C){return C&&function(b,E,N){return C.call(e,b,E,function(B){I(B)&&(B=null),N&&N.apply(this,arguments)})}}function a(C){return C&&function(b,E){try{return C.call(e,b,E)}catch(N){if(!I(N))throw N}}}function o(C){return C&&function(b,E,N,B){return C.call(e,b,E,N,function(F){I(F)&&(F=null),B&&B.apply(this,arguments)})}}function l(C){return C&&function(b,E,N){try{return C.call(e,b,E,N)}catch(B){if(!I(B))throw B}}}function A(C){return C&&function(b,E,N){typeof E=="function"&&(N=E,E=null);function B(F,Q){Q&&(Q.uid<0&&(Q.uid+=4294967296),Q.gid<0&&(Q.gid+=4294967296)),N&&N.apply(this,arguments)}return E?C.call(e,b,E,B):C.call(e,b,B)}}function f(C){return C&&function(b,E){var N=E?C.call(e,b,E):C.call(e,b);return N&&(N.uid<0&&(N.uid+=4294967296),N.gid<0&&(N.gid+=4294967296)),N}}function I(C){if(!C||C.code==="ENOSYS")return!0;var b=!process.getuid||process.getuid()!==0;return!!(b&&(C.code==="EINVAL"||C.code==="EPERM"))}}});var pds=H((vrg,dds)=>{var Ads=wt("stream").Stream;dds.exports=Eyl;function Eyl(e){return{ReadStream:t,WriteStream:r};function t(n,a){if(!(this instanceof t))return new t(n,a);Ads.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,a=a||{};for(var l=Object.keys(a),A=0,f=l.length;Athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}e.open(this.path,this.flags,this.mode,function(C,b){if(C){o.emit("error",C),o.readable=!1;return}o.fd=b,o.emit("open",b),o._read()})}function r(n,a){if(!(this instanceof r))return new r(n,a);Ads.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,a=a||{};for(var o=Object.keys(a),l=0,A=o.length;l= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Ids=H((Brg,fds)=>{"use strict";fds.exports=vyl;var Syl=Object.getPrototypeOf||function(e){return e.__proto__};function vyl(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:Syl(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var _ds=H((wrg,jJr)=>{var WS=wt("fs"),Byl=gds(),wyl=pds(),Tyl=Ids(),SGt=wt("util"),dx,BGt;typeof Symbol=="function"&&typeof Symbol.for=="function"?(dx=Symbol.for("graceful-fs.queue"),BGt=Symbol.for("graceful-fs.previous")):(dx="___graceful-fs.queue",BGt="___graceful-fs.previous");function Ryl(){}function Cds(e,t){Object.defineProperty(e,dx,{get:function(){return t}})}var s0e=Ryl;SGt.debuglog?s0e=SGt.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(s0e=function(){var e=SGt.format.apply(SGt,arguments);e="GFS4: "+e.split(/\n/).join(` -GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=function(e){function t(r,n){return e.call(WS,r,function(a){a||mds(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,BGt,{value:e}),t}(WS.close),WS.closeSync=function(e){function t(r){e.apply(WS,arguments),mds()}return Object.defineProperty(t,BGt,{value:e}),t}(WS.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){s0e(WS[dx]),wt("assert").equal(WS[dx].length,0)}));var hds;global[dx]||Cds(global,WS[dx]);jJr.exports=UJr(Tyl(WS));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!WS.__patched&&(jJr.exports=UJr(WS),WS.__patched=!0);function UJr(e){Byl(e),e.gracefulify=UJr,e.createReadStream=fe,e.createWriteStream=ue;var t=e.readFile;e.readFile=r;function r(Se,De,k){return typeof De=="function"&&(k=De,De=null),et(Se,De,k);function et(ct,Me,je,St){return t(ct,Me,function(At){At&&(At.code==="EMFILE"||At.code==="ENFILE")?CGe([et,[ct,Me,je],At,St||Date.now(),Date.now()]):typeof je=="function"&&je.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=a;function a(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return n(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var o=e.appendFile;o&&(e.appendFile=l);function l(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return o(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var A=e.copyFile;A&&(e.copyFile=f);function f(Se,De,k,et){return typeof k=="function"&&(et=k,k=0),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return A(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var I=e.readdir;e.readdir=b;var C=/^v[0-5]\./;function b(Se,De,k){typeof De=="function"&&(k=De,De=null);var et=C.test(process.version)?function(je,St,At,Yt){return I(je,ct(je,St,At,Yt))}:function(je,St,At,Yt){return I(je,St,ct(je,St,At,Yt))};return et(Se,De,k);function ct(Me,je,St,At){return function(Yt,Tr){Yt&&(Yt.code==="EMFILE"||Yt.code==="ENFILE")?CGe([et,[Me,je,St],Yt,At||Date.now(),Date.now()]):(Tr&&Tr.sort&&Tr.sort(),typeof St=="function"&&St.call(this,Yt,Tr))}}}if(process.version.substr(0,4)==="v0.8"){var E=wyl(e);X=E.ReadStream,ne=E.WriteStream}var N=e.ReadStream;N&&(X.prototype=Object.create(N.prototype),X.prototype.open=ae);var B=e.WriteStream;B&&(ne.prototype=Object.create(B.prototype),ne.prototype.open=ce),Object.defineProperty(e,"ReadStream",{get:function(){return X},set:function(Se){X=Se},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return ne},set:function(Se){ne=Se},enumerable:!0,configurable:!0});var F=X;Object.defineProperty(e,"FileReadStream",{get:function(){return F},set:function(Se){F=Se},enumerable:!0,configurable:!0});var Q=ne;Object.defineProperty(e,"FileWriteStream",{get:function(){return Q},set:function(Se){Q=Se},enumerable:!0,configurable:!0});function X(Se,De){return this instanceof X?(N.apply(this,arguments),this):X.apply(Object.create(X.prototype),arguments)}function ae(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.autoClose&&Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k),Se.read())})}function ne(Se,De){return this instanceof ne?(B.apply(this,arguments),this):ne.apply(Object.create(ne.prototype),arguments)}function ce(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k))})}function fe(Se,De){return new e.ReadStream(Se,De)}function ue(Se,De){return new e.WriteStream(Se,De)}var de=e.open;e.open=be;function be(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return de(Me,je,St,function(Tr,Nr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}return e}function CGe(e){s0e("ENQUEUE",e[0].name,e[1]),WS[dx].push(e),KJr()}var vGt;function mds(){for(var e=Date.now(),t=0;t2&&(WS[dx][t][3]=e,WS[dx][t][4]=e);KJr()}function KJr(){if(clearTimeout(vGt),vGt=void 0,WS[dx].length!==0){var e=WS[dx].shift(),t=e[0],r=e[1],n=e[2],a=e[3],o=e[4];if(a===void 0)s0e("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-a>=6e4){s0e("TIMEOUT",t.name,r);var l=r.pop();typeof l=="function"&&l.call(null,n)}else{var A=Date.now()-o,f=Math.max(o-a,1),I=Math.min(f*1.2,100);A>=I?(s0e("RETRY",t.name,r),t.apply(null,r.concat([a]))):WS[dx].push(e)}vGt===void 0&&(vGt=setTimeout(KJr,0))}}});var Eds=H((Trg,bds)=>{"use strict";qJr.ifExists=Gyl;var _Ge=wt("util"),WO=wt("path"),zJr=ods(),Nyl=lds(),Dyl=/^#!\s*(?:\/usr\/bin\/env(?:\s+-S\s*)?)?\s*([^ \t]+)(.*)$/,kyl={createPwshFile:!0,createCmdFile:zJr(),fs:_ds()},xyl=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function yds(e){let t={...kyl,...e},r=t.fs;return t.fs_={chmod:r.chmod?(0,_Ge.promisify)(r.chmod):async()=>{},mkdir:(0,_Ge.promisify)(r.mkdir),readFile:(0,_Ge.promisify)(r.readFile),stat:(0,_Ge.promisify)(r.stat),unlink:(0,_Ge.promisify)(r.unlink),writeFile:(0,_Ge.promisify)(r.writeFile)},t}async function qJr(e,t,r){let n=yds(r);await Zyl(e,t,n)}function Gyl(e,t,r){return qJr(e,t,r).catch(()=>{})}function Fyl(e,t){return t.fs_.unlink(e).catch(()=>{})}async function Zyl(e,t,r){let n=await Oyl(e,r);return await Lyl(t,r),Vyl(e,t,n,r)}function Lyl(e,t){return t.fs_.mkdir(WO.dirname(e),{recursive:!0})}function Vyl(e,t,r,n){let a=yds(n),o=[{generator:Qyl,extension:""}];return a.createCmdFile&&o.push({generator:Yyl,extension:Nyl}),a.createPwshFile&&o.push({generator:Xyl,extension:".ps1"}),Promise.all(o.map(l=>Hyl(e,t+l.extension,r,l.generator,a)))}function Pyl(e,t){return Fyl(e,t)}function Wyl(e,t){return Jyl(e,t)}async function Oyl(e,t){try{let a=(await t.fs_.readFile(e,"utf8")).trim().split(/\r*\n/)[0].match(Dyl);if(!a){let o=WO.extname(e).toLowerCase();return{program:xyl.get(o)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}catch(r){if(!zJr()||r.code!=="ENOENT")throw r;if(await t.fs_.stat(`${e}${Myl()}`))return{program:null,additionalArgs:""};throw r}}function Myl(){let e;return process.env.PATHEXT&&(e=process.env.PATHEXT.split(WO.delimiter).find(t=>t.toLowerCase()===".exe")),e||".exe"}async function Hyl(e,t,r,n,a){let o=a.preserveSymlinks?"--preserve-symlinks":"",l=[r.additionalArgs,o].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:l}),await Pyl(t,a),await a.fs_.writeFile(t,n(e,t,a),"utf8"),Wyl(t,a)}function Yyl(e,t,r){let a=WO.relative(WO.dirname(t),e).split("/").join("\\"),o=WO.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,l,A=r.prog,f=r.args||"",I=a7e(r.nodePath).win32,C=a7e(r.prependToPath).win32;A?A==="node"&&r.nodeExecPath?(A=`"${r.nodeExecPath}"`,a=o):(l=`"%~dp0\\${A}.exe"`,a=o):(A=o,f="",a="");let b=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`@SETLOCAL\r +`).join("")}`,{unqualifiedPath:Xt,extensions:xt})}}function Tr(vt,xt,Zr){if(!xt)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let qt=O0l({name:vt,base:eB.pathToFileURL(Rc.fromPortablePath(xt)),conditions:Zr.conditions??ne,readFileSyncFn:je});if(qt instanceof URL)return Yt(Rc.toPortablePath(eB.fileURLToPath(qt)),{extensions:Zr.extensions});if(qt.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Nr(qt,xt,Zr)}function Nr(vt,xt,Zr={}){try{if(vt.startsWith("#"))return Tr(vt,xt,Zr);let{considerBuiltins:qt,extensions:Xt,conditions:lr}=Zr,cr=St(vt,xt,{considerBuiltins:qt});if(vt==="pnpapi")return cr;if(cr===null)return null;let Ar=()=>xt!==null?be(xt):!1,qr=(!qt||!r0e.isBuiltin(vt))&&!Ar()?At(vt,cr,lr,xt):cr;return Yt(qr,{extensions:Xt})}catch(qt){throw Object.hasOwn(qt,"pnpCode")&&Object.assign(qt.data,{request:p6(vt),issuer:xt&&p6(xt)}),qt}}function er(vt){let xt=gh.normalize(vt),Zr=dGt.resolveVirtual(xt);return Zr!==xt?Zr:null}return{VERSIONS:Se,topLevel:De,getLocator:(vt,xt)=>Array.isArray(xt)?{name:xt[0],reference:xt[1]}:{name:vt,reference:xt},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){let vt=[];for(let[xt,Zr]of E)for(let qt of Zr.keys())xt!==null&&qt!==null&&vt.push({name:xt,reference:qt});return vt},getPackageInformation:vt=>{let xt=k(vt);if(xt===null)return null;let Zr=Rc.fromPortablePath(xt.packageLocation);return{...xt,packageLocation:Zr}},findPackageLocator:vt=>Me(Rc.toPortablePath(vt)),resolveToUnqualified:Q("resolveToUnqualified",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=St(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveUnqualified:Q("resolveUnqualified",(vt,xt)=>Rc.fromPortablePath(Yt(Rc.toPortablePath(vt),xt))),resolveRequest:Q("resolveRequest",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=Nr(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveVirtual:Q("resolveVirtual",vt=>{let xt=er(Rc.toPortablePath(vt));return xt!==null?Rc.fromPortablePath(xt):null})}}async function K0l(e,{fakeFs:t,pnpapiResolution:r}){let n=await t.readFilePromise(e,"utf8");return zAs(n,{basePath:GAs.dirname(e),fakeFs:t,pnpapiResolution:r})}function zAs(e,{basePath:t,fakeFs:r,pnpapiResolution:n}){let a=JSON.parse(e),o=YAs(a,{basePath:t});return jAs(o,{compatibilityMode:!0,fakeFs:r,pnpapiResolution:n})}var j0l=(e,t,r)=>{let n=xJr(e),a=YAs(n,{basePath:t}),o=Rc.join(t,gGt.pnpCjs);return jAs(a,{fakeFs:r,pnpapiResolution:o})},EJr,z0l=()=>(typeof EJr>"u"&&(EJr=FAs.default.brotliDecompressSync(Buffer.from("W7kaIYpg44CMsUmsRgZqyiY8BbAqsOlwx+xgozwRWWzxFyryaK7yo4iHM8BdhKuj2++Xancupx9CZAYrM6ureH5sryfh9aSUCvhlqv7dl9Oz0oD5KyqlSi6pRSlVw/mEiaWMCAQwWCiWMoH/6dL6NB3yERl8SOTW8Pz3uKqtshWe7BdXwsSQPwEqGQt1m1bEKjZCpsoH/1DTQ1fVTb1ezwVKiVa1suscgz67R1E7f6HV17S5iPP7903LjSRAXBOkynSUxGscY7lQUcSuuu9dse0MugFoAfbBOHA9Oc7uvqp6/7dBLw8a4B4BQ66xLjI2lMniCRUrjEDKZrEsfvq/F8ZRPMqQzD1Drwpl7rZZah6tOoRpRoiE/o37UJsM2TCgRqHvfZtM7ZLdkab9By3LgxWwLGI11Bz8QpEbSjNXOFBfkP3JNkSrSTe1d5s0+W9tACEECCGITXu/QQJq8S6U6VoDvxyxGBF8uZXpeZRkcmDGtLrNssUb1/tyLfbohuVlW16ej8w8oojO2so+LRYVua99ic+P26OZyMFd9hcFS/3kv4Y8AiTzmTL6d9jJ+1Qi4LGfivj8hXTXahn3fmimlnbY6LiV11PtuoANRRUUUo0sCQAdOjE0W3IXr7J24T+R3wK3kbX7uwWQXzAnSvjnAcIBkGMscyzaG8D+/xIjacjHh1lNu1QmfUJHxONdnSE9hhrs8uQJTYridrBS+vVNf2EBWgMPaUC6X1XQO1yydx5c/HoUfnDhlp0R0VgbY/gWFclzBMfjSkoWrabc07QDOVKpKMJOG+Yc3hO+ArgFEMy9com0d2RKIVDZcfLqO8JKaT6g7zS7udBSZmzvvYjBfNQInVr8XGrTg9YjA9ShAOItF2B20Ztcn/S1OC9kuMd4jHJrlwMADFx48Ij7y6q3crmdEqHGYzyJ5kBrq4jPmRBJIsxg3cOLWBUhvsUriD4mnDQiKOGf6wmg8nFcoq0ROAs0Y4AbsNUhowKkmBRZjc55lSGR9t+ZlpxLHQ61wjSd5J49BVtoE+m8Ofa7FsRb8l1zF/ZX9+GT53/TCA7/fe6nz4+mTT9yICcon9c/DoH2+CxZ/ImL85T8I1vYHd1rWdVi7t+Fnt253Vg+csLTkJrc3P2eKSeXXL7cc4EAaDt2O/6lyz45+n0USZpp/CcUNSWsOySAm9TI0EOiUPqGd/SENurZPMj5M3GFmM/wARC0wd8fhcPaQK+nbVPJTEKVDMD/F0P1D2SRA+Ld01E96v52xniFsIbKpdyVM6IljUQ55zTS55+JEHwyhcaf11lcIVA+15veLPf4swknSaW92ZG0vM/D3VhmtxCWn4wBFrWeppsN38KY+ZA4Og02c7ZDvmmNtsWKHyjagoOPnsH94Dkdy2yephp0WI0xwLnl0AZjhHLCI+nRg9UgKe/oe0HR6TtZYgCJm3RJVGc5pSY8xCyAFwzV9xLDfrcQrXzGOwG27Tdr/lo4Ga3bl4HfTvtfQb6S+b36PMtNGQ+j5xjpksIXVsDAInXeNqKtg8tHNkVwaeo0Hd2ETHIEQGKXYKB05Jpklu99OuTtvjtHKe97AX6Qj2735aOYIaDjRmJL42JIBkdzHGdbZjuc2HO85ISg3/BSTMG4CSOhhyUHbc8aN9blZLUKpR1Oqjf2Ltx8bzrBsTV5+M60mL1UOrj5akxeYW2eEHUCoQ0b2TGVuKETUPb2zEMEXaucHeBVe2+k1wIERHoez4gOI+kjaMgWAThNzavQJES9pzH+ZSie04wmKW2JvDJTs+feuG5SDFJLc0y1n4KMlXQmKJn8HIxtg8Kq4pXuW8O1CXeq4VjD7BEAgB+19Mn0dFGTRwlPLraTbEA2QRDf1QSSOWOptJc2DxonJzw93ozGRqiHDOHicYDQe89lEm1HohtFUayW4CGGUbFJ6z4A5cVVFuGRan8rQVHz9507xnDecr2gpZUAdXwiArrHn5lKR3Og0/mk9C4KX50cygP+9xZliwRbBOFn9eWCCRFznauk1drEaWqikfDmPnPjU3ajG7FC0u9N9kt/NO219j11uFREdDJP9fyEVDHuIWR8ymlv7rT4V790R3GNLb/brXf2BGQeEQYJIcQfTknV9wVRVIwtUt4iea9LLZINFPjE4meY48rtJEjGACPlaVjjTjU0KYPz9rcZqgf7c3t8j31oGLhR5S2zsaAYMln/fmGE2FOdSAXIplhDIoNJJ3/vCTxJNl0nSHC9v7eyUIQtjPE3Rn/vukNkSwa4U6ZAkeqqSLr8s5b5iqCH0Q5BcPReRLALLZZYUGYl0IYSTHG4Cxiqp32EqH7BH0MstwuwnDF5bwWcw6NP5sP5Scq6rjlnwBAJulmOowt5Xu/dyXvMXw0y0+3AcDNjhl/DtzgljSq7klqUAi5H2gIYvOhTGgVEjTXmv0KKu10Qd6vRB35HzOR4LFkn6VcOJFj+V/s9ptDI4aeRoNPaOvdeVx2TNhMb3YDjCJ1WA6vYR1vEJGEO48zGqyvVtFGJF2BA98ujwOons/pIRA9wDOXf5zAGvGjtI0dzhAWZD6exHjZoKHEHwmdbyJDD3P/mDCNyL+T3a4Q1KqtGMI1WLT9Na4vbnmxHoJmwWenkaYk+E9+cmxsnA7ECE9FJ/qpwa6wopb1xiU7z2r1IYNB26S8DdgXqYd0weJfzWZ/nybM8n1STRy3IW6b+JBlWPVkaPI4am/N0SW0KTzIkRQ+wDcPNyrumSFHlULZ2XD9iguw5Qall/mY68/YufbZ11VwyfWAJMF/g4xZE61vJS7qhn5ds2oj6ugeY8oHe5psQKgXunb04/JgcAq5TxGIUuEdR26zmTYyvootr0DWjdV6kJ5n732W77gIQaNnjXZ/ZWP4DZJBbI8N/y4WIy+ICGvU0a8jTOGsRu++EfClhLPKpRqFxCi7PR4HaEq7oBuA1nEwB4sfZnxkhIrnTKP+Q9XJLmtSE1x7cMe94wdb61V/jlaG1HJFo3qQMZCGiKx+zS0sLu6BcQhz59MquKFdYpZjXFuPW2jvLOpGjXbXC/qWx88vw4x8Jv+i0pqKpY56h1DFvDN/bkKdFnDJoTuQFgbTE87EQKyy6L/laZqghX80klfX+Yv4TZZV/qwZE6Y52LTTZv8Idw4sbXDSKbKGIHBHEzKyD1XyB5/EH6yvVq6Rf1z03T66un/jr5eEokCv5rHpAT92GlfDFiTyuE3HlGudyUQHUFIuWxIxBI8/S78EOtp44AUQsIYqfLHjsBgCVvKrks6qTOQU50Y2u0jMXzYxHrRl6pAGv26cHotnm8bXMOgQe9wexzP1X6FJf0sw0M2yeEZZG7NPSA/Kbyo97iRAqZdqXAavhdK9WN33Qa/Sq7smEVieEZXvJf2Uk+TDZ9gX7+W5URmrq5UdSVgF37GWRKKUy5fdMZ4in/DIbfv4ZWnonNqjwfhCz2pmTneq287EGWAdigIknxwccvmSja878SV5Q5liA2DJz6RPMlWuTU4rRJ/UbQG6332IfP3933V1qpCbLXK8J4IROSh1zeiMaTTkwghW1bRgB2gr7FgFfzmgdpqjY/8Ra4MK4GQhxV735jjcEGJSovnsynW0h104F8YB+KRc3W773+6dgHXWOYYmX723v2FtIxZK0EkrfJAD2PgbeP/cdtUMtJzQW96Jq7zi4w9dAszZAF570/WXOR8zp33cD9xErKeYvy/Nt2KRz1/0DnBvjfey/BjEDT4J0cXMoTfpozkObfqQCRdN/3HNBsS8sn9hYgNlZEPtIGQioK/+91liC88uJGUBCQ+WOQZwoVJiGMOP4WuFhQIHuu68LYR9tkZBS5gK3f5t1a5ai+JB3zdZp2ISEdRMM7QpRvGdrlkIc3q0rhJEP+6/n1Na1s9qNzuw+cQpcvCMSIFmSt08AuqdhPmDre6O48r4Y3/6CFXGJpUD+YhOaulVVR1hN2iOxEimzzZiaNIu4DSI2lHDfxpmXG1F9Pz8XtczBvjMnVMmOpo0vNyI7ju8bC+N/82BH1Xx7WWVcrOJGZYzHsX4p+kCQp/W1+mb3gh562alM2n9xvBv60I+zBVlo6YYJnGbOOVgDjV6Nn7L3UTrkzV/8iBiWBEkAAIyfbN1K5zK5gAA+j8/70KfWNlNnmS7h7n32wSVqlrX3FMjC0gBGiNZ2ElRJ9URdEFoTpzAa58HQGbUXlXYMSB/Ui9ZhijlCWLZDdoBea6RuyvDnOJJhB+ZNG4P28J+C9P/1XJsIewjiSv3tGE/Yy2xlc9pINye4zd6hV+5L7xjK6bA9E33DOAvFyaQ5rBpoKMBSM+icqPhOjt4CnYNZTQrabz3bqhdK5i6WLUkTP5a4LkdMXAelBUoddlgpK73m1QoaF2rOu4zJHo+5BoHSySrkwqjvqu6Sfmz8dte2nsSIIZF+dg7lM2thrhVJgDHL9+bQlr5C285uhSpcnQqMlVD4KQaGkAUI3f7XyaNI+bD2n6hHmeCJgtYfJvU4js0+kTN5q/ttPXzYLn6SZrle1VWnECUOgr5nCugukb6z2uVLcbhd2E9ebLN8kqqTbQj0TC148N4CCdAMsHwasAw4Hhjb8+JDvdMYaB8NdUIrwQmsl9yrleTDOHIFeGHzCCvEa8x2whXm1uGF2kr5kV4HgfCSFXU/Y/bVdywDxJUY1i1Ndd4yMPV6bowbEylec7WtSx0hCu/MnFMsHLtU51xVUxirZMx9fMct3hbRAo5/o/Ns0uEzfNQH2HaeuMcCjiGv7FVTYdWFMnG9m4dDPgNy3pFzxxhpt+OFfLszp2a3XXv95AfNL+NudetKZZQ33JuOGsTHoNP987X+bDnnx7ba1YeRlH6mCWteSBVo72GWlOMySSwnTr4ZKBvB2AwAh57ASpVXtkLZxDV51aNGiw1pU0CgPB6KE/JQNo6s9hRlRL807ovGiGTe3B4OyyqO0+/RV3K3SKvQFHJqtqYt10nz1cEN6aEeyaMw3P/+e754ofpmqPsnYcXWz5HwXRnuH6z5fXFHTzJIH9xjILPyClo4Fp+jBMtD9y0Ly2xQI8D3seUI8dyJowaRwpz7QqdO+DPLBx2qfYSeX9TkaMkL/l3EVBiXt/WJL0ZgfZojGzzTtOej5j6e5GLsG+tNMkDTxKCDI9wgY1wi16DRZlpSIYusti1UPqwiKq6+X7YK82hckid8CuDyg3PLtWAa/0/+rB4vBiO0MetHzP67WIj5ydkGHpRhlGzzaHr4l4dzs5U1tSNm0NXC2NqrvG/gWBdt5LFyuxgo4zPlgHvZtA6/hKqv/Bw4Pz3ECyWO3m7s07q7L49860ikCYzb5xZnF53tvsYqOduWyvJCpX+Sw4gPbzUJswT6OHahuZnhjnQgBIXDsMgMnD1HnCXGS6t14sLRXPncanysDbaLYghRtRYAMXKd8EPzdL0grfnCehV8RqTaqmYIa5NmNRt59eK6GK1Eo/s9Ia6L88k9x4GZcYMj04y5Rek7rqXp69kehmu3mHcyOXKkOT9EdneE/Nn6jzNYFsShJtaehovGdL1czWcSjeaFHC0jRri84Ya9ytOFpNKjiOOxAq8802yxwoSx3lh9ol3qIv3U5q1u3nKyaFXWFmsIMU6ASp0WueRskyIJCTSNpv3HkgWGdgHLIpXUehDLDB9DBg4keDRnvu790CCmlDTtrUunGTYIr1NUr2u3kTaY5p9OMOKk3iFwTapKUpJ66QFA6Fi18OS9uhll6Ag2kHvBHgGv2TqowLGZdVKVKZfP9fIMtOY6RbSAIWG5bpdnOUExAj3MQaOEg+O+Li3TBJjyK7PsCcH7/NCuMBpaFCrDCqzFtAsxPCNO36xTZtMEcU3CoAFcpY7u3DhaAruiRWSDfbXPnFhtQhgtU5Iv4dOv5ZXLs2A/DG9dmMwLdun8WNsQIbXO91GHfH2az2cHFTtzZK7clCVYtq07EmyfVWY/ANzxHwluX/d+ITzp/TrKjXx9oIRkIL3tEWGMHdcCGgwh3SN8n3h9JzhsNKY93kzMLTjnDTcZmKc/mxbuypdyU4u0ySJZ1eV6TBNkWcZBPvfOsc1MoZTeoeMrXrpQ1JsLVQy82ULaNR2ScIoggEVSQcRnbzRpdQRJZQuKcabNEcdfYq+s+iQB2ko9+bqbu7WLpfWmXot57VItmGmvX60dDKGr9qJmRImChimxJUGgah5smgxqL+2jsqJyG8z5M5egIQtXPBnFyQRjGfKIi58+k2BO7VVEUVVV8IWDXhlgARffe7rY13WGvvnI+JgxoxVxT7nAGlKm1GlCnpNSD8mSIOT1iLiGIzaJXe6ADDNLLP+5MZc1XUW63e+q5li3BX5wtQmGXKchrNIUKk1/zEiebBQCb4MnW9S82CxM82tQhCx8WsRhYNP1V4x9m6CcFWR18Mn2Gpl6PmF2cBcOX0/w/E4nhJ50+jvnPad8ucRZb2URFQXLJrxz6UWJmM3KloaGOpZiU4Zj2tkHedvYwZ2XfcRGniWjZgPOUAF+tQUqCaJnvCwFEW91IaRRjGY7p1hgSRHK8EomNzEErPPLXKv3M2j8qzXWxzTke37QoMyOBH5Y0JtzMe+X8n5R7wnOHfdj7YxsMkS8ExtRZhhReDra7smkYxfb1pNCBSTM+ZUOdEfFi/C9J2fJq1sOJgkpAdFotTrjmMrT2XZPLh272N6RNCojE5Kwey4tziHDex/eLrduH3d5AVl8B5fjo/fKzJXS9w7MiYSCRhssGDRocODMEmR1drmN9rkAo4vLx4gm20inWcxZ7S0wk/vsmlQCk84AO5lvBGUafJXVKGAwx3h3kHdF0bKkDmSABMlFg7oe/K2ujmSTXn2DU98Qem5ezbasMMQuriXiUXO8xc7q6e7Vte0dp8VYWn90eFGu2ecqFAfCemD6DuTsD8D75b1f3ntWpBOt25Gk7OaHwuEmcq/vc9T9UOXxEOXxkOZRNogGzaAazDxlnC+yuAaQnBORUW09gLMfnWiQ6QPTDXiNoOBTEo6FINnOMaduN0DbtsuRzG3tUreiAU9Kl/nfpqadVFQotihx50mXpOby2GWpvS+dr3JcF6KuOizx7pEwR4hbcyJ/b/3jKJSTknS67pMA0XNVixm1PDsx3w3Ef+vZDW1+fgPMVQ+YuCP4xzifbeEAQW09mbx4MegMnTCQqYJqQYiH6gkSyRM32XNUwenbrQs2dYfoegfquvvSmLehN6WsvfSZj0G5RL4UMBmSBgnSUhZAinzgzp1BZsaCoNyFO3aMKlWmMY1eBj3FsQT/8/Wk8IibZrvBJb2YTmycP/Jlb3p29P7uXZxMnx+nUYeGpnf2e0chybxNlWL8C63Y+jb8WLl05svXSfDJ2c6UouN4fTmEh9NJv5mV5dCcKz1/JZgLvdbwvB7Kl/jPj/ZqlcvjQF7uPe22ATqhWmqMF3TR5Bx61J58TMwjnXFxXjEzbdo5XEYL/M+5v9FifiI40CAchFr+vNE7vPJVAI2AguY3oCRGLPgcUYEomYeBOjdFgpjUS7vpfWyKN/BkzogxC3xILdp3m3wiReLUPWPIno2oOK2mi/bgVsLOht9qoS8ql87WsSfUCq5es/YxKO3bzE7JytAHwTGyZ16oUzsqy5ZMy3nETIS2KC7lpuzEC8nM1jCsmy61V+sbbxRGmKckNhlsA2Plf3E3l26PsNDHuz5p+m23PCD0t/bD10uQcM7I/Dp2QRav5TS4zd25svFoDh5igu8WUBpOBeXJU0oFGsIWduRIZCk39H3cx33cs0/2MvDUtPhgwE7w5/E2LP4nsBvmiJModcjLWYKEm+YVyZgzjqidFyiBMd94CZcbFGJIvHJ+8BX7RWtsz+kzUQWWitOKZxT0c2a9MN8i+jn1fynizZC2TgdGq3VtM4SZ63wXr/vE4DUK0DvO7Scqu7m8hYxllhWAjmGMzO/LHSKqGLf1K2gF8y6HwrUViME+vTB/XaEWF65cTTTtHQrHm1QgGEzqmLyYlZs6csinsIrRqxs8Z2gwTT8GF5pBBciDKOsy4sTAvP5yBhElvWSXMvjRz4SKdYpAwuZFuuHkWmpiupHtKhv6Qx4oGRohzi0yqFjDLoYbmQ52aUzm6gvBLJby+rPb8m7LWIsqVT8tizgT6+Rxdv23zpPrf8j7f9X7g/P+3/J+ee/zqN/+5RhkkLl+gVVHEkNqp2tPNbpk3vbYoo5Stprky4QerdxvJcixAmQ2USOgIb3f9VsBXTJ39LbRoqutRpXyokdZ9z8hJaPewElnYszayO1YR3LTWafXthvZ3W/wITb1hBrZ0aKwZdbvRo8jHdb1pKUfTa7PFJ4N6Yx8xsTdHhRz6Jh746o7U+orZ3upekCJZsra1s7kMrvudcj9yizt93FPxeKvaLWvh9/j6SZmfhrKLhK1/htFrvFG/lu/2TT338BOfYtrdbQv7cC8fwtxmVpjxMpPL6PUNUf6LQNRWWdlq+1UrZUSKZU3V2+1lH7r/eveL+j98t7X67z0m21+rmWX0HK1Po3VJG2ner2a1e9Cm6VuwyGs0dUrDlGXlkza0rCZYZ2DZigN+mpS3XOW7KKdglez20BfFQsjXZ/O+qpZ/eaGrNwI2eZd/d2cO/EvqZSkK6IV1edCtZJSNBrKlaVGXrtm+1tgPuYh2man+vIsy1f+WVmq4vw3amSSF+Xh2hf+/Pv7mvOvfuK6w/sB9XlMpq5OwZw/QI+JF2Zzx0rGWf22WOeU7VK7+3ucdNitjPBcTUXDLPm2qGgIj8kpG8A1u5WuT0TxudqF4vtXFyChdBy0t0TX+9wELll9jEtqGpTbLzUudvms7pefOt9WI/94H86EvcYn2Kefm4TgQbcWBw5ZJ6xL2W/v4ZJuFiozurKepqtN2kb6+prdlqKUwV5uk3odUD5bHTlZl7DtduqCMtD1K9hfJ5TOupxutm5ovjxYYcRZ64xMyFqKt86or5sb65Kw93tvvcddEEBJfmhbU/E+pzBm8X6byUzX7dyG3vRGwzBgv9efxNM4vchynoVCEg6zy8408um/1ep+Zb+HyAMdS748dZPS5Kf7fPrUW+8bNKEE/yCHfo6EUGczj+B8Zlx8gorz596IQACuU2o2Ri6awnq+ogsYk63xlRA1OgVoRM6uWxvjaA/W4BRAeT2AYvT1amFl4G9LqVrL3isbqR9zMeCt/ZSFHqMxszC1eVdYnLVQlI/b69Y1lh0KQ6EHejP2nvJutSYW6RZPddvnM33AG++M8fFqVgZE9KsXhbDcCgY6nbEu61D1bPCzhdDbAKlkR0A29Rc3NbGchnjkK/qcmMEQ6t1199NbwfXbsdFd5hgD+qcnC1YgVPUy+iwVKSXjAhRxUSOd3XqfqrIasIURP4mhqlKQgn3Ulqldqc6S5yeTM/J/frr1pSzrLBB2srdJXoC+dqn4397qptUgHne8a2lF9jjiGdNA37CWEciXz6W3XyDpVMb1VcJ2BEovmOKe6RhGilIrNNMRbFW3dAgnJbmYy68pZiK67+ls7NP8hEuJCpMQnmfWiGQxtdSONCaVPHeL/IdEnyOGdlX4ohJszd1Yq35ntamTJa4ugyM3RMd/Mo+Z19PQdB36qooT4rVdZpmua7c45HAy2I3TfqbwyQJs/romZXhDJeagnR75ZtQzbWWFqJmrrNk2xGemu4YcLrISDXEzzMeQgleGpOl2rmApR/Pcb4uSBNC1zfBZDZhxjSZ2kxSf28aiqd/C5d1XuDtgN1LPESe1NNaVikrnBoai7WQ4I6tqPT8L6jxXKftK5DBEy3sZ+Un2zIRF+zSeliGlkMn9E7gG/WpjLzvyUJDv5S0ZVxcQ3TWAxTVmna/T06vK60g7GyiMzjeJJayzVt+Dd+H/8AHeTCBdeCy8B+eJP5qOQIAP4Mi2utBlD3XbWndyCcTflfSd945dPF/+51GKk9/UeBOH9OBE8yviNFPJD4iIcni4+wz3/Mkge768j/eTyBx8Ro5zEndBL2THw6oMjmA05NiFX8Yt2wXTAd6XIv9+yDTzM0iVoNlfICNBX00a53eOZQ8Q7+xnbNxb4NGZQcl7Frov7NVKJhrVl/Peb4yxfOZksikxG/tI6KJhypjCPBBOVksuDojSZ8fGIXolzbLR2S7dOUAaLBrK4lEuy/QCnjbwH7ArHLo1p/T/bx/C5yMdkf1t3CqRNNRkASosuBwgAe1SCsVzV7thp6cD1hQzpz6iHqi5h+TzJHE5KzNPPHg6PeoYcaGNdnFyGKhGRbh3kS/pf77fFJDFmRJ2x7Kcj3XUAgG7wmamd4omY37DWg6XNEvDSINVJXYpRK4Baodj3n/CHF8e5oeuftP24O1GdmtjwRKotkrGuJLFeruAcHWDamtczAMOEwBtvqv4of3aULLpEhUPHXd2YJsbTLx9ysZWaJsxUvwCiKJ85sDl2eNQNc5/+fjSe9miHjtRJFzXodjLUsoa17vJLjl3Wj0Q1NjV3bnt53fLfPZbujFX9Tknz3X5hDjvfgct5OiMo8fhg5HxEs6BYF4ddI3vFOnZoKGeotKb2LaxsyxB266KfIRmi5wTSKq9YhReWUJ9js0aKN6tYjmu2zEggVaqhT2FuvgUEjbznU5Jgb5R2uDmJBed8USpcPaS6QUOF8DND3JtTkKxXK2r5KhaNP2KczT28qCm7N14l/w8d7WvpJ24Jpd02HWgSCB2LmKl6/DUI5Sq4S5f1ua/jCWHBuxH8Sxkcu42jT4RGgZUc/jJQI4HhWI4AOD2xQIVnBFbmi1MAdxkxMtZ3pv4YO9iFi0IpoHjzrdJkNM659kVsqQ3zYz87NPPJGE+wFucZdKPDjo8UK4Edlxtu6SMA5+m8MVxGV0lzdbcJ+egypF2f8q1lnNO7mZYU79sFUEUzkLe1c71Dm2Ink8EBCUuc0CcWZsOJivOWusPpKki7vrvwiX77ar+dpdlEuGAwFGjVZYOt4Kz1bWokvNfCZQvbfPosla5czryMQ5/mgm1cUIMXnNEF+KIONxT+hIGcWunnaGSGm0j7d1bghbcNFmQRVnrpsLjhcgsD3Lhin93tctA8WkEHqpU0JvsABvE1cc1GadLzxDy0J1t4cJql2NmVaBRQDKeyAY7mGKGZbootHoSTWByMPOOvv0g87NLc/7J0+P0LqJTLlWqlWn8NPPl8zicRWN2QgNcMX0BUfB/bUxQ8kANN4g3X9t0oW2lHr+Sf06ATpPGXdLkq46tI4dtuQHQ1n7NL2zZ71kvuHy4CGdt2CBbuXPEGsChwGZQn31pBPpFAB3PftMJje9IROk2ocVzJHG0aHnLnOCQmz/l7u4kfQRKHwAtD1f5kC4fNQ/YzpNaaJ1ZbO3Z2aTxpb9Cyy/y7LXeJgWu3MkNMVGEIU3yCqO/LSUneBOQ9AAHPKsPuU3bbz3zRiuHsvXpzT/M3INWnu3xuIWOPuO46SFHbiuHT8pn766fLPHuyvb9tMGAOJVcXmgGfmcSoDKFho7SHgcm9cv5U9iEG4b3spvlxJkZyYKB9IY9HdYwtiJwLFHPy9EJpwdn+dPT98xbeS0UikVNlhUhHdv38hBe/mn7jYJh5eSu3f+xIt+Ccee61NYjyahCejPb5FGGQ1YZ3rH2y6GXL+AK6BC1CVIj5YGHaSZzaDDgwFwFt2khA57OymNIpCCjUuzQiWe0gj4WhzpcyZL+PgjjjKnzIgAW62wiWI+eGM6xA9e2lkU+2JTeregOB5m/0QFxKWfVZ3UB/ALcPIA0fF/CvdxTgrBqa7inCXWERg7wtA2UrBHCxp/epxQ36rjN5EznmSzLs1+DBMSEYQUi2gkyIx2/9TfV99iS3LUGDFK48c570nD75a28GtMBl8VYsC0zPe81td+Ta1YFXo85ObsuG2CuVHFYLcqM2KR8jlkUSaYb3itClLUG8OdzKiCDVliO4m6gpq1cTrYQHnaOZWsSHDu6EfwUbfi1E0mDDXesCbGWzNuggB1X8CnG+xGcrMKiM7x8qFisNeYlceh2XMGFOArve2I7hfuuumb/AmPJhG4oEKAzl/3/C1feeV9n2EDyaZp08FvA87aCpXRh9skiqTJriFAjf0tcQIiffk3W3M/kjXzsMjatWIPOYhTzgFEwvlPHMraIpnt7Mjcw/x+KLeAQ8GW1+pknBCCWE1ATYZgmKB7kZHHedeoy7/g5cRSLplo1d2bVtom5nrk3QI90Wuf96mo0ak96QLeE549AO0XdJseOkL6e9i2kDIllOa82UZKdykXMH1OiA5aHmSRMM8UJz4Okm4dC5/ot9R51lJIuWtiNFlmvJTE6qRTg1zA9WBwPskH/bjGDsB7cFGB9mJpdULHODVVo10lnjpF2aG6aK6N5u3BB7gVCrq6a6at8SdmTa3zdjbvM0fv4SH2DLKMQWU0Ab3/G5rpn6lgQLS5m57ER+NiE19r2IbYe1GZJOds1GB6qrMLhvpBvSjbwVZTVkAhoYU/ECflxqu6PAgYZuwn7MGC6R7HYo3hDP8HPjRnylBIt+6bc3cHEpRSt3Yl7+XtxNV/E7S+bGKAVkmQK+DiAKr/jNYvxcwSKp6HtYqYc73VjEqya1PpqPucFeXmfezBIvJROLlZnFXd4YDLqk33srHwousML/lRdYAuzP6+8FXdkyRIdS7JdpDi8xQmf13DhwtdTALkQ3BH5l+2AqgwS+wfJt51Fr+HiNjeaBiKYooJPmEH7Kf5m/vdAg+o5ZQv/MjfRD1KgUHjb833yCxfBoGSkjj+qdCUIK8rBGtHNUuXeuUHpKzhAsoy0hxu8cs3h/dINbni5ihMEPojftM3m2h7O9aPk4B1oknoAwlCZT/thmp6NvGUAfYTDYm1Eu++eeQN3HJMoTwFNbKYqZmwipO24zc0Fq7XUa10/labgjhd/8Zd48Zf6FG9AbDPx8x0lLCo70/exTPCXL/ggCo02BQvnJgIYpI3C2ZCwTlp3MVfQWUBZSEhR6f0BbQAdRu+KOkX/szL1RA1fB8HLJytqAkqVVaguDVhIkWU4Yw/nqQRufiDMWodMLnbiDWpz8ga1OSlmIOL2l4V4UWch4uvFOOkOwHBHMPC9BBFobxGLSKjplUmJy1TNbI5TlsBW3kEugiIO/xwTaONIAoZ8eFBryh7dv7EMwSK+T7W/AKOx0Af3dinURgD8xoWYaSU6UicIREPqIqLtHP9GwMG/1JxrFvL6xHXDWH/9UKq+9y9M/rfhrP3HtTlsDJvV5u2N25v15p2NOxv/rwaw2W3alay1jWmzNuPqebLZL/aOXR2gzVuP3gJ58G5UR3IkVkjn+8owfFoOclBjzEWjJTZEeP5L5EKvuyKTGpJfhhCLU3otyDE5CNZPSXAQ2S7IcclK6PbYDva1MxHbGluZTABmK/fMZjeV6W0osC35MzsnoDd3Q95bsVD6l06WpyfK2SgIKw6BLycTOFQ08NN+9XHnLVS9JLVUwOBUefgazDnqVqdGwwVFg4wcHNofe9tsw+3cQbLdPWo+C4GncXCh6II1l6iNFRlUlD8ghwlbvxi1vTSXKTLbiwS72/2gZB4r3InsganjJrKGPiOXDFfnzXSgaVIzMNi2n/9bGlM2K7qEoUZoGZRVF0QQxj+p2S9JgTgwMjbl1DTC5jDdSQWbUtSA9xGzXfC0RYpP4K2gNXaR7NpK70Soqs64ATJCHd+/ZLBwxuGSkk4HTmtExK16pei2977v4tWkS1EpKvTYN64aSWrPVZrHtuzI+Njp/OZNc9kJGC0EPHEZulQh3i9Nk6EUY+0VozFHZ0UxDE5t+a5GDavkc1EjABruYfhwQSBoCkHBJgbIMIvyx6jrpEzKFrKWEdCgUgIcKbsOaodlVLU5JTEwELYA0Av3kytMyRQrDLCBzQHwLiEZ05gXl8yOsdsAaIY2YhTjXwkS97jxVhl3bkyFsWVjzGwvCJG36IAxDdNg4+GrAOrFq3cWPQ9WVHUBkHTt0V4urbqIZsn+2UgIWhOs883dUMKrDTAJs9p9UrF9uufh6LlO+OXN3w/YrA/OsywxvJ1MnDOqMTIHvksB9OcMg9paw1z9itUvGGi7vWaNlqSKcaqau9ZKz4lXTZOUkaeO9dD1EJwgtEdd+wNCuGBYkp0ao/lE9Y9favoWvUMfeXCWBneNrwIgNtmQaaxckHzP9/y+kP01zWNs6m+U7uNDlodjbgpl0mQajDtNVfPNq1zhizxBHDOxOMUVYWXkTt/w/j+lNo5KlEhk4pfGco/KCk3HsfKMcFlPuQWF3Xdd/LRG+C2HR4D3H1l2Awj+J0rpmXr1BNatzceXUbxD8e4KjUNCNDo6Sn506c7kOzx+0yNewxAFbyG8ka8ZD3JJ34awFSazJfuWbwuGLjI5penVTP+9wfVDO5wG0nC7bgvYMcz8L5sxxmo9C6usVar7HXQqVlujdiu+UejiC6GXKOEzkwEbWQutQ540YTuSY7FFDb5QLGmavb1UWde2UtPAGGt+5Li1zjiNXJ7XbjcMzzpbdMyICGWDtGMj7StarrCR3jfVu8nWoARAKVuo/Z0j/FK4mAVXAqq7ui60O9cmdosYqS6l2OaVL2jJnk35FJ8PRFwsNR01c8PfQMFSTrb8LpQV+1MRg8+2mMWEyHRrlR9qxhOZlubGBUvnF8WnQbN960UZrJBhZd4EN2I6qBIiAoJ1M+Cd11ZJ0nHwdMqoPl/OgAfLpMSyYS2yX5YAitRSK7Y+i/WA0XQasAokG6jQYdwKuVb2tmDUwIYJiIuVRZAs5EOhEVJtFcpoNYxH/rPwBCYMPpftUJT2efa8SFm9nnEIIo2hClNGZiWZY9EG0kn7+WPD1TCa1TFQY4K7bK4ZZ5PxM165trQ2X23sxH0kY30ApptIFUDVCfT4yV+LC3YZ0qPkgJllmGt2YcIT5g43Gi48TRLIEsxDQ8p4v5tm5GKarfpG9m/waZwT+fBH7BMfAytm4cuQxi4A5wJr+steoVubAn6sTbdPiJsxFuUurc08weOmU5Zl/Y00dz6Fi6FTh7ScVDcQpvyoWJ+1ydP4cvTMXvrmH8h/efD7UIe93GllzrUOP/Ga/UsOXxk6aDhAB/sy1ty8EUBopWpkDm9ptrBqaN/is9ojeaYZzEgzaGE0TnTqJpblruyJSwdwbsNSFUdf6uIUfrCuuGzOOcJvyFPKZNmfqzbvcun3XuyHBY+LXZhHj+CBbC2hzvNzcSYOaNtkn9Oviin7eXtF0NdUFssLOR6ZuWa4S17XcUDTxKtCMXb7I/zIbJD+iglW+XAr4drtLOeBdNxsZ/fyAEVNNFbSBtzg0SUPPsdbPT14+YpUrjh1FYFrdswc82zHYw7QlM2+OsD+iosBKAy1uwl+vSnJYV4PFYAzzJGW86wbZsavADq4qW40i1mHfx5LPLSFVc7bDQDe1Kl1FgauYwa/iLSUAxwDLAvTZZDInce0FNh3wEkg0GjJm4GLJapEuWQKcsqZwj4oYXYNZICYyOfcX6hvwL1ZUxvc5CVO1fBllllriQxOYmCvr/lkDpVupQEkiwIxJwrkDJja1+Syey7jkfOOlOOknEAY0ikp3bEFoCtq6sksaEH7zDlWkBoQO+zzFpUmMDVoth5+iV/DNJrvObbtto7D61V6Y2Y8K1rcLLnhadbaEbdo16tDpwdddAf6qTy0eTzCmBLb1PcfocWomldEeyM5THIdabuLzFqahN2qUpfbzfjv8uNQ7G9+rBVru80ZHhlNPZmbKld2j5mw5ETx8/EN8TGkJq3HnLwNdCMGqSzQUaoKAXaZa3pqhzagzhsdTgqSN1WS1R9bITNod+QT33DIZ+W8B/jHxS/pEUr5XLjuD3NpJtslTvSB0cDN0BtwXLJjV9qGvWFxRHtp8n66KA/ThmULY9NzI4t+a0PGHBzPaEw1m+HT4RM1GscDvBUN4dZoIA+Fo3Z4TcOVpmlzKccSTVs/Q/G+IDUXAznN7wD2yax/p69luC+Xuo98Zka561TGf7K3dGWm18gATSXninjr8JvcXDsNIWjaLC9TEOXdYZwmLKDd6kobnvx8zqhi74Wys23B/n7Aq0g+C4ptoaZOnjU7xk+y+OC3Z+o/tOukzFzD8uTp/U3O3YzJ02Zbyc32PQXTvZRk+lPfrvSmFcBbDupyLkjFPdYAU94SRHKtoOMqvpKgMBjP6euYbYvUJi17oOLdCMRGItDeLqUMYtGUgE2QK9+8uDc1K6Q4jW/OjgZaNtrz6NlPj01o/ylra5ObQPoWR/ll8EBPXywD8ijXJkWOE6gdD3vCjyXcKjS1LylYwM1g9qZqLNbSYeYbRZECmGSKddo7IyHpvwIjygm2UQVdET2yvwQH+9Kxp//y0ZS7/oqi+RyuD2rSgvOjqJfafRN9ab3S4dcdt85eL2O9Smb9PZ/5jbi/H1fy3cYqFHWyTMpavKEm4s8DA/c9l/dIl9VdTndZ5WWU6m8yIsYAPjLWuIxzMW9xfmYea/BTrGRduPyFk8d5TpG4wqeHf0qPvhmBGyP88HWKUjwA","base64")).toString()),EJr);z4.LinkType=ZAs;z4.generateInlinedScript=E0l;z4.generateLoader=GJr;z4.generatePrettyJson=HAs;z4.generateSplitScript=S0l;z4.getESMLoaderTemplate=z0l;z4.hydratePnpFile=K0l;z4.hydratePnpSource=zAs;z4.makeRuntimeApi=j0l});var LJr=H(IGe=>{"use strict";Object.defineProperty(IGe,"__esModule",{value:!0});IGe.checkManifestCompatibility=qAs;IGe.extractBuildRequest=$0l;IGe.getExtractHint=tyl;IGe.hasBindingGyp=ryl;var XV=Bn(),q0l=no();function qAs(e){return XV.structUtils.isPackageCompatible(e,XV.nodeUtils.getArchitectureSet())}function $0l(e,t,r,{configuration:n}){let a=[];for(let o of["preinstall","install","postinstall"])t.manifest.scripts.has(o)&&a.push({type:XV.BuildDirectiveType.SCRIPT,script:o});return!t.manifest.scripts.has("install")&&t.misc.hasBindingGyp&&a.push({type:XV.BuildDirectiveType.SHELLCODE,script:"node-gyp rebuild"}),a.length===0?null:e.linkType!==XV.LinkType.HARD?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.SOFT_LINK_BUILD,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:o=>o.reportInfoOnce(XV.MessageName.BUILD_DISABLED,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!n.get("enableScripts")&&!r.built?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.DISABLED_BUILD_SCRIPTS,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but all build scripts have been disabled.`)}:qAs(e)?{skipped:!1,directives:a}:{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.INCOMPATIBLE_ARCHITECTURE,`${XV.structUtils.prettyLocator(n,e)} The ${XV.nodeUtils.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var eyl=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function tyl(e){return e.packageFs.getExtractHint({relevantExtensions:eyl})}function ryl(e){let t=q0l.ppath.join(e.prefixPath,"binding.gyp");return e.packageFs.existsSync(t)}});var CGt=H(VJr=>{"use strict";Object.defineProperty(VJr,"__esModule",{value:!0});VJr.getUnpluggedPath=syl;var nyl=Bn(),iyl=no();function syl(e,{configuration:t}){return iyl.ppath.resolve(t.get("pnpUnpluggedFolder"),nyl.structUtils.slugifyLocator(e))}});var MJr=H(hGe=>{"use strict";Object.defineProperty(hGe,"__esModule",{value:!0});hGe.PnpInstaller=hGe.PnpLinker=void 0;var eds=(Pa(),vi(Va)),cC=Bn(),Eue=Bn(),Pm=no(),PJr=ZJr(),$As=($c(),vi(rg)),_Gt=mGe(),yGt=eds.__importStar(LJr()),oyl=eds.__importStar(CGt()),ayl=new Set([cC.structUtils.makeIdent(null,"open").identHash,cC.structUtils.makeIdent(null,"opn").identHash]),OJr=class{constructor(){this.mode="strict",this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))throw new $As.UsageError(`The project in ${cC.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,cC.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})),o={name:cC.structUtils.stringifyIdent(t),reference:t.reference},l=a.getPackageInformation(o);if(!l)throw new $As.UsageError(`Couldn't find ${cC.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed PnP map - running an install might help`);return Pm.npath.toPortablePath(l.packageLocation)}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))return null;let o=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})).findPackageLocator(Pm.npath.fromPortablePath(t));return o?cC.structUtils.makeLocator(cC.structUtils.parseIdent(o.name),o.reference):null}makeInstaller(t){return new bGt(t)}isEnabled(t){return!(t.project.configuration.get("nodeLinker")!=="pnp"||t.project.configuration.get("pnpMode")!==this.mode)}};hGe.PnpLinker=OJr;var bGt=class{constructor(t){this.opts=t,this.mode="strict",this.asyncActions=new cC.miscUtils.AsyncActions(10),this.packageRegistry=new Map,this.virtualTemplates=new Map,this.isESMLoaderRequired=!1,this.customData={store:new Map},this.unpluggedPaths=new Set,this.opts=t}attachCustomData(t){this.customData=t}async installPackage(t,r,n){let a=cC.structUtils.stringifyIdent(t),o=t.reference,l=!!this.opts.project.tryWorkspaceByLocator(t),A=cC.structUtils.isVirtualLocator(t),f=t.peerDependencies.size>0&&!A,I=!f&&!l,C=!f&&t.linkType!==Eue.LinkType.SOFT,b,E;if(I||C){let ne=A?cC.structUtils.devirtualizeLocator(t):t;b=this.customData.store.get(ne.locatorHash),typeof b>"u"&&(b=await cyl(r),t.linkType===Eue.LinkType.HARD&&this.customData.store.set(ne.locatorHash,b)),b.manifest.type==="module"&&(this.isESMLoaderRequired=!0),E=this.opts.project.getDependencyMeta(ne,t.version)}let N=I?yGt.extractBuildRequest(t,b,E,{configuration:this.opts.project.configuration}):null,B=C?await this.unplugPackageIfNeeded(t,b,r,E,n):r.packageFs;if(Pm.ppath.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let F=Pm.ppath.resolve(B.getRealPath(),r.prefixPath),Q=WJr(this.opts.project.cwd,F),X=new Map,ae=new Set;if(A){for(let ne of t.peerDependencies.values())X.set(cC.structUtils.stringifyIdent(ne),null),ae.add(cC.structUtils.stringifyIdent(ne));if(!l){let ne=cC.structUtils.devirtualizeLocator(t);this.virtualTemplates.set(ne.locatorHash,{location:WJr(this.opts.project.cwd,Pm.VirtualFS.resolveVirtual(F)),locator:ne})}}return cC.miscUtils.getMapWithDefault(this.packageRegistry,a).set(o,{packageLocation:Q,packageDependencies:X,packagePeers:ae,linkType:t.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:F,buildRequest:N}}async attachInternalDependencies(t,r){let n=this.getPackageInformation(t);for(let[a,o]of r){let l=cC.structUtils.areIdentsEqual(a,o)?o.reference:[cC.structUtils.stringifyIdent(o),o.reference];n.packageDependencies.set(cC.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){for(let n of r)this.getDiskInformation(n).packageDependencies.set(cC.structUtils.stringifyIdent(t),t.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let t=(0,_Gt.getPnpPath)(this.opts.project);if(this.isEsmEnabled()||await Pm.xfs.removePromise(t.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await Pm.xfs.removePromise(t.cjs),await Pm.xfs.removePromise(t.data),await Pm.xfs.removePromise(t.esmLoader),await Pm.xfs.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:b,location:E}of this.virtualTemplates.values())cC.miscUtils.getMapWithDefault(this.packageRegistry,cC.structUtils.stringifyIdent(b)).set(b.reference,{packageLocation:E,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),n=this.opts.project.workspaces.map(({anchoredLocator:b})=>({name:cC.structUtils.stringifyIdent(b),reference:b.reference})),a=r!=="none",o=[],l=new Map,A=cC.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),f=this.packageRegistry,I=this.opts.project.configuration.get("pnpShebang"),C=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let b of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(b)&&o.push({name:cC.structUtils.stringifyIdent(b),reference:b.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:n,enableTopLevelFallback:a,fallbackExclusionList:o,fallbackPool:l,ignorePattern:A,pnpZipBackend:C,packageRegistry:f,shebang:I}),{customData:this.customData}}async transformPnpSettings(t){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let t of this.opts.project.workspaces)if(t.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(t){let r=(0,_Gt.getPnpPath)(this.opts.project),n=await this.locateNodeModules(t.ignorePattern);if(n.length>0){this.opts.report.reportWarning(Eue.MessageName.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await Pm.xfs.removePromise(o)}if(await this.transformPnpSettings(t),this.opts.project.configuration.get("pnpEnableInlining")){let o=(0,PJr.generateInlinedScript)(t);await Pm.xfs.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await Pm.xfs.removePromise(r.data)}else{let{dataFile:o,loaderFile:l}=(0,PJr.generateSplitScript)(t);await Pm.xfs.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await Pm.xfs.changeFilePromise(r.data,o,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(Eue.MessageName.EXPERIMENTAL,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await Pm.xfs.changeFilePromise(r.esmLoader,(0,PJr.getESMLoaderTemplate)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await Pm.xfs.removePromise(a);else for(let o of await Pm.xfs.readdirPromise(a)){let l=Pm.ppath.resolve(a,o);this.unpluggedPaths.has(l)||await Pm.xfs.removePromise(l)}}async locateNodeModules(t){let r=[],n=t?new RegExp(t):null;for(let a of this.opts.project.workspaces){let o=Pm.ppath.join(a.cwd,"node_modules");if(n&&n.test(Pm.ppath.relative(this.opts.project.cwd,a.cwd))||!Pm.xfs.existsSync(o))continue;let l=await Pm.xfs.readdirPromise(o,{withFileTypes:!0}),A=l.filter(f=>!f.isDirectory()||f.name===".bin"||!f.name.startsWith("."));if(A.length===l.length)r.push(o);else for(let f of A)r.push(Pm.ppath.join(o,f.name))}return r}async unplugPackageIfNeeded(t,r,n,a,o){return this.shouldBeUnplugged(t,r,a)?this.unplugPackage(t,n,o):n.packageFs}shouldBeUnplugged(t,r,n){return typeof n.unplugged<"u"?n.unplugged:ayl.has(t.identHash)||t.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(yGt.extractBuildRequest(t,r,n,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(t,r,n){let a=oyl.getUnpluggedPath(t,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(t.locatorHash)?new Pm.AliasFS(a,{baseFs:r.packageFs,pathUtils:Pm.ppath}):(this.unpluggedPaths.add(a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{let o=Pm.ppath.join(a,r.prefixPath,".ready");await Pm.xfs.existsPromise(o)||(this.opts.project.storedBuildState.delete(t.locatorHash),await Pm.xfs.mkdirPromise(a,{recursive:!0}),await Pm.xfs.copyPromise(a,Pm.PortablePath.dot,{baseFs:r.packageFs,overwrite:!1}),await Pm.xfs.writeFilePromise(o,""))})),new Pm.CwdFS(a))}getPackageInformation(t){let r=cC.structUtils.stringifyIdent(t),n=t.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${cC.structUtils.prettyIdent(this.opts.project.configuration,t)})`);let o=a.get(n);if(!o)throw new Error(`Assertion failed: The package information should have been available (for ${cC.structUtils.prettyLocator(this.opts.project.configuration,t)})`);return o}getDiskInformation(t){let r=cC.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),n=WJr(this.opts.project.cwd,t);return cC.miscUtils.getFactoryWithDefault(r,n,()=>({packageLocation:n,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1}))}};hGe.PnpInstaller=bGt;function WJr(e,t){let r=Pm.ppath.relative(e,t);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function cyl(e){let t=await Eue.Manifest.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Eue.Manifest,r=new Set(["preinstall","install","postinstall"]);for(let n of t.scripts.keys())r.has(n)||t.scripts.delete(n);return{manifest:{scripts:t.scripts,preferUnplugged:t.preferUnplugged,type:t.type},misc:{extractHint:yGt.getExtractHint(e),hasBindingGyp:yGt.hasBindingGyp(e)}}}});var nds=H(HJr=>{"use strict";Object.defineProperty(HJr,"__esModule",{value:!0});var rds=(Pa(),vi(Va)),tds=el(),kH=Bn(),xH=Bn(),Wte=($c(),vi(rg)),lyl=rds.__importDefault(Ek()),uyl=rds.__importStar(CGt()),o7e=class extends tds.BaseCommand{constructor(){super(...arguments),this.all=Wte.Option.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"}),this.recursive=Wte.Option.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"}),this.json=Wte.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=Wte.Option.Rest()}async execute(){let t=await kH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await kH.Project.find(t,this.context.cwd),a=await kH.Cache.find(t);if(!n)throw new tds.WorkspaceRequiredError(r.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Wte.UsageError("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let o=new Set(this.patterns),l=this.patterns.map(E=>{let N=xH.structUtils.parseDescriptor(E),B=N.range!=="unknown"?N:xH.structUtils.makeDescriptor(N,"*");if(!xH.semverUtils.validRange(B.range))throw new Wte.UsageError(`The range of the descriptor patterns must be a valid semver range (${xH.structUtils.prettyDescriptor(t,B)})`);return F=>{let Q=xH.structUtils.stringifyIdent(F);return!lyl.default.isMatch(Q,xH.structUtils.stringifyIdent(B))||F.version&&!xH.semverUtils.satisfiesWithPrereleases(F.version,B.range)?!1:(o.delete(E),!0)}}),A=()=>{let E=[];for(let N of r.storedPackages.values())!r.tryWorkspaceByLocator(N)&&!xH.structUtils.isVirtualLocator(N)&&l.some(B=>B(N))&&E.push(N);return E},f=E=>{let N=new Set,B=[],F=(Q,X)=>{if(N.has(Q.locatorHash))return;let ae=!!r.tryWorkspaceByLocator(Q);if(!(X>0&&!this.recursive&&ae)&&(N.add(Q.locatorHash),!r.tryWorkspaceByLocator(Q)&&l.some(ne=>ne(Q))&&B.push(Q),!(X>0&&!this.recursive)))for(let ne of Q.dependencies.values()){let ce=r.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=r.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");F(fe,X+1)}};for(let Q of E)F(Q.anchoredPackage,0);return B},I,C;if(this.all&&this.recursive?(I=A(),C="the project"):this.all?(I=f(r.workspaces),C="any workspace"):(I=f([n]),C="this workspace"),o.size>1)throw new Wte.UsageError(`Patterns ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} don't match any packages referenced by ${C}`);if(o.size>0)throw new Wte.UsageError(`Pattern ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} doesn't match any packages referenced by ${C}`);I=kH.miscUtils.sortMap(I,E=>xH.structUtils.stringifyLocator(E));let b=await kH.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async E=>{for(let N of I){let B=N.version??"unknown",F=r.topLevelWorkspace.manifest.ensureDependencyMeta(xH.structUtils.makeDescriptor(N,B));F.unplugged=!0,E.reportInfo(kH.MessageName.UNNAMED,`Will unpack ${xH.structUtils.prettyLocator(t,N)} to ${kH.formatUtils.pretty(t,uyl.getUnpluggedPath(N,{configuration:t}),kH.formatUtils.Type.PATH)}`),E.reportJson({locator:xH.structUtils.stringifyLocator(N),version:B})}await r.topLevelWorkspace.persistManifest(),this.json||E.reportSeparator()});return b.hasErrors()?b.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};o7e.paths=[["unplug"]];o7e.usage=Wte.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});HJr.default=o7e});var mGe=H(bT=>{"use strict";Object.defineProperty(bT,"__esModule",{value:!0});bT.PnpLinker=bT.PnpInstaller=bT.quotePathIfNeeded=bT.getPnpPath=bT.pnpUtils=bT.jsInstallUtils=bT.UnplugCommand=void 0;var YJr=(Pa(),vi(Va)),JV=Bn(),f6=no(),gyl=wt("url"),Ayl=MJr(),ids=YJr.__importDefault(nds());bT.UnplugCommand=ids.default;var dyl=YJr.__importStar(LJr());bT.jsInstallUtils=dyl;var pyl=YJr.__importStar(CGt());bT.pnpUtils=pyl;var fyl=e=>({cjs:f6.ppath.join(e.cwd,f6.Filename.pnpCjs),data:f6.ppath.join(e.cwd,f6.Filename.pnpData),esmLoader:f6.ppath.join(e.cwd,f6.Filename.pnpEsmLoader)});bT.getPnpPath=fyl;var Iyl=e=>/\s/.test(e)?JSON.stringify(e):e;bT.quotePathIfNeeded=Iyl;async function hyl(e,t,r){let n=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,o=(t.NODE_OPTIONS??"").replace(n," ").replace(a," ").trim();if(e.configuration.get("nodeLinker")!=="pnp"){t.NODE_OPTIONS=o||void 0;return}let l=(0,bT.getPnpPath)(e),A=`--require ${(0,bT.quotePathIfNeeded)(f6.npath.fromPortablePath(l.cjs))}`;f6.xfs.existsSync(l.esmLoader)&&(A=`${A} --experimental-loader ${(0,gyl.pathToFileURL)(f6.npath.fromPortablePath(l.esmLoader)).href}`),f6.xfs.existsSync(l.cjs)&&(t.NODE_OPTIONS=o?`${A} ${o}`:A)}async function myl(e,t){let r=(0,bT.getPnpPath)(e);t(r.cjs),t(r.data),t(r.esmLoader),t(e.configuration.get("pnpUnpluggedFolder"))}var Cyl={hooks:{populateYarnPaths:myl,setupScriptEnvironment:hyl},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:JV.SettingsType.STRING,default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:JV.SettingsType.BOOLEAN,default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:JV.SettingsType.STRING,values:[JV.WindowsLinkType.JUNCTIONS,JV.WindowsLinkType.SYMLINKS],default:JV.WindowsLinkType.JUNCTIONS},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:JV.SettingsType.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:JV.SettingsType.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:JV.SettingsType.STRING,default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:JV.SettingsType.STRING,values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:JV.SettingsType.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:JV.SettingsType.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:JV.SettingsType.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:JV.SettingsType.ABSOLUTE_PATH,default:"./.yarn/unplugged"}},linkers:[Ayl.PnpLinker],commands:[ids.default]},sds=MJr();Object.defineProperty(bT,"PnpInstaller",{enumerable:!0,get:function(){return sds.PnpInstaller}});Object.defineProperty(bT,"PnpLinker",{enumerable:!0,get:function(){return sds.PnpLinker}});bT.default=Cyl});var ods=H((QJr,XJr)=>{(function(e){QJr&&typeof QJr=="object"&&typeof XJr<"u"?XJr.exports=e():typeof define=="function"&&define.amd?define([],e):typeof window<"u"?window.isWindows=e():typeof global<"u"?global.isWindows=e():typeof self<"u"?self.isWindows=e():this.isWindows=e()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var lds=H((Srg,cds)=>{"use strict";var _yl=wt("path"),ads;process.env.PATHEXT&&(ads=process.env.PATHEXT.split(_yl.delimiter).find(e=>e.toUpperCase()===".CMD"));cds.exports=ads||".cmd"});var gds=H((vrg,uds)=>{var Sue=wt("constants"),yyl=process.cwd,EGt=null,byl=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return EGt||(EGt=yyl.call(process)),EGt};try{process.cwd()}catch{}typeof process.chdir=="function"&&(JJr=process.chdir,process.chdir=function(e){EGt=null,JJr.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,JJr));var JJr;uds.exports=Eyl;function Eyl(e){Sue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=o(e.chown),e.fchown=o(e.fchown),e.lchown=o(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=l(e.chownSync),e.fchownSync=l(e.fchownSync),e.lchownSync=l(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=A(e.stat),e.fstat=A(e.fstat),e.lstat=A(e.lstat),e.statSync=f(e.statSync),e.fstatSync=f(e.fstatSync),e.lstatSync=f(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(C,b,E){E&&process.nextTick(E)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(C,b,E,N){N&&process.nextTick(N)},e.lchownSync=function(){}),byl==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(C){function b(E,N,B){var F=Date.now(),Q=0;C(E,N,function X(ae){if(ae&&(ae.code==="EACCES"||ae.code==="EPERM"||ae.code==="EBUSY")&&Date.now()-F<6e4){setTimeout(function(){e.stat(N,function(ne,ce){ne&&ne.code==="ENOENT"?C(E,N,X):B(ae)})},Q),Q<100&&(Q+=10);return}B&&B(ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.rename)),e.read=typeof e.read!="function"?e.read:function(C){function b(E,N,B,F,Q,X){var ae;if(X&&typeof X=="function"){var ne=0;ae=function(ce,fe,ue){if(ce&&ce.code==="EAGAIN"&&ne<10)return ne++,C.call(e,E,N,B,F,Q,ae);X.apply(this,arguments)}}return C.call(e,E,N,B,F,Q,ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(C){return function(b,E,N,B,F){for(var Q=0;;)try{return C.call(e,b,E,N,B,F)}catch(X){if(X.code==="EAGAIN"&&Q<10){Q++;continue}throw X}}}(e.readSync);function t(C){C.lchmod=function(b,E,N){C.open(b,Sue.O_WRONLY|Sue.O_SYMLINK,E,function(B,F){if(B){N&&N(B);return}C.fchmod(F,E,function(Q){C.close(F,function(X){N&&N(Q||X)})})})},C.lchmodSync=function(b,E){var N=C.openSync(b,Sue.O_WRONLY|Sue.O_SYMLINK,E),B=!0,F;try{F=C.fchmodSync(N,E),B=!1}finally{if(B)try{C.closeSync(N)}catch{}else C.closeSync(N)}return F}}function r(C){Sue.hasOwnProperty("O_SYMLINK")&&C.futimes?(C.lutimes=function(b,E,N,B){C.open(b,Sue.O_SYMLINK,function(F,Q){if(F){B&&B(F);return}C.futimes(Q,E,N,function(X){C.close(Q,function(ae){B&&B(X||ae)})})})},C.lutimesSync=function(b,E,N){var B=C.openSync(b,Sue.O_SYMLINK),F,Q=!0;try{F=C.futimesSync(B,E,N),Q=!1}finally{if(Q)try{C.closeSync(B)}catch{}else C.closeSync(B)}return F}):C.futimes&&(C.lutimes=function(b,E,N,B){B&&process.nextTick(B)},C.lutimesSync=function(){})}function n(C){return C&&function(b,E,N){return C.call(e,b,E,function(B){I(B)&&(B=null),N&&N.apply(this,arguments)})}}function a(C){return C&&function(b,E){try{return C.call(e,b,E)}catch(N){if(!I(N))throw N}}}function o(C){return C&&function(b,E,N,B){return C.call(e,b,E,N,function(F){I(F)&&(F=null),B&&B.apply(this,arguments)})}}function l(C){return C&&function(b,E,N){try{return C.call(e,b,E,N)}catch(B){if(!I(B))throw B}}}function A(C){return C&&function(b,E,N){typeof E=="function"&&(N=E,E=null);function B(F,Q){Q&&(Q.uid<0&&(Q.uid+=4294967296),Q.gid<0&&(Q.gid+=4294967296)),N&&N.apply(this,arguments)}return E?C.call(e,b,E,B):C.call(e,b,B)}}function f(C){return C&&function(b,E){var N=E?C.call(e,b,E):C.call(e,b);return N&&(N.uid<0&&(N.uid+=4294967296),N.gid<0&&(N.gid+=4294967296)),N}}function I(C){if(!C||C.code==="ENOSYS")return!0;var b=!process.getuid||process.getuid()!==0;return!!(b&&(C.code==="EINVAL"||C.code==="EPERM"))}}});var pds=H((Brg,dds)=>{var Ads=wt("stream").Stream;dds.exports=Syl;function Syl(e){return{ReadStream:t,WriteStream:r};function t(n,a){if(!(this instanceof t))return new t(n,a);Ads.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,a=a||{};for(var l=Object.keys(a),A=0,f=l.length;Athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}e.open(this.path,this.flags,this.mode,function(C,b){if(C){o.emit("error",C),o.readable=!1;return}o.fd=b,o.emit("open",b),o._read()})}function r(n,a){if(!(this instanceof r))return new r(n,a);Ads.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,a=a||{};for(var o=Object.keys(a),l=0,A=o.length;l= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Ids=H((wrg,fds)=>{"use strict";fds.exports=Byl;var vyl=Object.getPrototypeOf||function(e){return e.__proto__};function Byl(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:vyl(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var _ds=H((Trg,jJr)=>{var WS=wt("fs"),wyl=gds(),Tyl=pds(),Ryl=Ids(),SGt=wt("util"),dx,BGt;typeof Symbol=="function"&&typeof Symbol.for=="function"?(dx=Symbol.for("graceful-fs.queue"),BGt=Symbol.for("graceful-fs.previous")):(dx="___graceful-fs.queue",BGt="___graceful-fs.previous");function Nyl(){}function Cds(e,t){Object.defineProperty(e,dx,{get:function(){return t}})}var s0e=Nyl;SGt.debuglog?s0e=SGt.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(s0e=function(){var e=SGt.format.apply(SGt,arguments);e="GFS4: "+e.split(/\n/).join(` +GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=function(e){function t(r,n){return e.call(WS,r,function(a){a||mds(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,BGt,{value:e}),t}(WS.close),WS.closeSync=function(e){function t(r){e.apply(WS,arguments),mds()}return Object.defineProperty(t,BGt,{value:e}),t}(WS.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){s0e(WS[dx]),wt("assert").equal(WS[dx].length,0)}));var hds;global[dx]||Cds(global,WS[dx]);jJr.exports=UJr(Ryl(WS));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!WS.__patched&&(jJr.exports=UJr(WS),WS.__patched=!0);function UJr(e){wyl(e),e.gracefulify=UJr,e.createReadStream=fe,e.createWriteStream=ue;var t=e.readFile;e.readFile=r;function r(Se,De,k){return typeof De=="function"&&(k=De,De=null),et(Se,De,k);function et(ct,Me,je,St){return t(ct,Me,function(At){At&&(At.code==="EMFILE"||At.code==="ENFILE")?CGe([et,[ct,Me,je],At,St||Date.now(),Date.now()]):typeof je=="function"&&je.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=a;function a(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return n(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var o=e.appendFile;o&&(e.appendFile=l);function l(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return o(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var A=e.copyFile;A&&(e.copyFile=f);function f(Se,De,k,et){return typeof k=="function"&&(et=k,k=0),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return A(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var I=e.readdir;e.readdir=b;var C=/^v[0-5]\./;function b(Se,De,k){typeof De=="function"&&(k=De,De=null);var et=C.test(process.version)?function(je,St,At,Yt){return I(je,ct(je,St,At,Yt))}:function(je,St,At,Yt){return I(je,St,ct(je,St,At,Yt))};return et(Se,De,k);function ct(Me,je,St,At){return function(Yt,Tr){Yt&&(Yt.code==="EMFILE"||Yt.code==="ENFILE")?CGe([et,[Me,je,St],Yt,At||Date.now(),Date.now()]):(Tr&&Tr.sort&&Tr.sort(),typeof St=="function"&&St.call(this,Yt,Tr))}}}if(process.version.substr(0,4)==="v0.8"){var E=Tyl(e);X=E.ReadStream,ne=E.WriteStream}var N=e.ReadStream;N&&(X.prototype=Object.create(N.prototype),X.prototype.open=ae);var B=e.WriteStream;B&&(ne.prototype=Object.create(B.prototype),ne.prototype.open=ce),Object.defineProperty(e,"ReadStream",{get:function(){return X},set:function(Se){X=Se},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return ne},set:function(Se){ne=Se},enumerable:!0,configurable:!0});var F=X;Object.defineProperty(e,"FileReadStream",{get:function(){return F},set:function(Se){F=Se},enumerable:!0,configurable:!0});var Q=ne;Object.defineProperty(e,"FileWriteStream",{get:function(){return Q},set:function(Se){Q=Se},enumerable:!0,configurable:!0});function X(Se,De){return this instanceof X?(N.apply(this,arguments),this):X.apply(Object.create(X.prototype),arguments)}function ae(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.autoClose&&Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k),Se.read())})}function ne(Se,De){return this instanceof ne?(B.apply(this,arguments),this):ne.apply(Object.create(ne.prototype),arguments)}function ce(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k))})}function fe(Se,De){return new e.ReadStream(Se,De)}function ue(Se,De){return new e.WriteStream(Se,De)}var de=e.open;e.open=be;function be(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return de(Me,je,St,function(Tr,Nr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}return e}function CGe(e){s0e("ENQUEUE",e[0].name,e[1]),WS[dx].push(e),KJr()}var vGt;function mds(){for(var e=Date.now(),t=0;t2&&(WS[dx][t][3]=e,WS[dx][t][4]=e);KJr()}function KJr(){if(clearTimeout(vGt),vGt=void 0,WS[dx].length!==0){var e=WS[dx].shift(),t=e[0],r=e[1],n=e[2],a=e[3],o=e[4];if(a===void 0)s0e("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-a>=6e4){s0e("TIMEOUT",t.name,r);var l=r.pop();typeof l=="function"&&l.call(null,n)}else{var A=Date.now()-o,f=Math.max(o-a,1),I=Math.min(f*1.2,100);A>=I?(s0e("RETRY",t.name,r),t.apply(null,r.concat([a]))):WS[dx].push(e)}vGt===void 0&&(vGt=setTimeout(KJr,0))}}});var Eds=H((Rrg,bds)=>{"use strict";qJr.ifExists=Fyl;var _Ge=wt("util"),WO=wt("path"),zJr=ods(),Dyl=lds(),kyl=/^#!\s*(?:\/usr\/bin\/env(?:\s+-S\s*)?)?\s*([^ \t]+)(.*)$/,xyl={createPwshFile:!0,createCmdFile:zJr(),fs:_ds()},Gyl=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function yds(e){let t={...xyl,...e},r=t.fs;return t.fs_={chmod:r.chmod?(0,_Ge.promisify)(r.chmod):async()=>{},mkdir:(0,_Ge.promisify)(r.mkdir),readFile:(0,_Ge.promisify)(r.readFile),stat:(0,_Ge.promisify)(r.stat),unlink:(0,_Ge.promisify)(r.unlink),writeFile:(0,_Ge.promisify)(r.writeFile)},t}async function qJr(e,t,r){let n=yds(r);await Lyl(e,t,n)}function Fyl(e,t,r){return qJr(e,t,r).catch(()=>{})}function Zyl(e,t){return t.fs_.unlink(e).catch(()=>{})}async function Lyl(e,t,r){let n=await Myl(e,r);return await Vyl(t,r),Pyl(e,t,n,r)}function Vyl(e,t){return t.fs_.mkdir(WO.dirname(e),{recursive:!0})}function Pyl(e,t,r,n){let a=yds(n),o=[{generator:Xyl,extension:""}];return a.createCmdFile&&o.push({generator:Qyl,extension:Dyl}),a.createPwshFile&&o.push({generator:Jyl,extension:".ps1"}),Promise.all(o.map(l=>Yyl(e,t+l.extension,r,l.generator,a)))}function Wyl(e,t){return Zyl(e,t)}function Oyl(e,t){return Uyl(e,t)}async function Myl(e,t){try{let a=(await t.fs_.readFile(e,"utf8")).trim().split(/\r*\n/)[0].match(kyl);if(!a){let o=WO.extname(e).toLowerCase();return{program:Gyl.get(o)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}catch(r){if(!zJr()||r.code!=="ENOENT")throw r;if(await t.fs_.stat(`${e}${Hyl()}`))return{program:null,additionalArgs:""};throw r}}function Hyl(){let e;return process.env.PATHEXT&&(e=process.env.PATHEXT.split(WO.delimiter).find(t=>t.toLowerCase()===".exe")),e||".exe"}async function Yyl(e,t,r,n,a){let o=a.preserveSymlinks?"--preserve-symlinks":"",l=[r.additionalArgs,o].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:l}),await Wyl(t,a),await a.fs_.writeFile(t,n(e,t,a),"utf8"),Oyl(t,a)}function Qyl(e,t,r){let a=WO.relative(WO.dirname(t),e).split("/").join("\\"),o=WO.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,l,A=r.prog,f=r.args||"",I=a7e(r.nodePath).win32,C=a7e(r.prependToPath).win32;A?A==="node"&&r.nodeExecPath?(A=`"${r.nodeExecPath}"`,a=o):(l=`"%~dp0\\${A}.exe"`,a=o):(A=o,f="",a="");let b=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`@SETLOCAL\r `;return C&&(E+=`@SET "PATH=${C}:%PATH%"\r `),I&&(E+=`@IF NOT DEFINED NODE_PATH (\r @SET "NODE_PATH=${I}"\r @@ -1619,7 +1619,7 @@ GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=fun ${A} ${f} ${a} ${b}%*\r )\r `:E+=`@${A} ${f} ${a} ${b}%*\r -`,E}function Qyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o;n=n.split("\\").join("/");let l=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,A=r.args||"",f=a7e(r.nodePath).posix;a?r.prog==="node"&&r.nodeExecPath?(a=`"${r.nodeExecPath}"`,n=l):(o=`"$basedir/${r.prog}"`,n=l):(a=l,A="",n="");let I=r.progArgs?`${r.progArgs.join(" ")} `:"",C=`#!/bin/sh +`,E}function Xyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o;n=n.split("\\").join("/");let l=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,A=r.args||"",f=a7e(r.nodePath).posix;a?r.prog==="node"&&r.nodeExecPath?(a=`"${r.nodeExecPath}"`,n=l):(o=`"$basedir/${r.prog}"`,n=l):(a=l,A="",n="");let I=r.progArgs?`${r.progArgs.join(" ")} `:"",C=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -1639,7 +1639,7 @@ else fi `:C+=`${a} ${A} ${n} ${I}"$@" exit $? -`,C}function Xyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o=a&&`"${a}$exe"`,l;n=n.split("\\").join("/");let A=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,f=r.args||"",I=a7e(r.nodePath),C=I.win32,b=I.posix,E=a7e(r.prependToPath),N=E.win32,B=E.posix;o?r.prog==="node"&&r.nodeExecPath?(o=`"${r.nodeExecPath}"`,n=A):(l=`"$basedir/${r.prog}$exe"`,n=A):(o=A,f="",n="");let F=r.progArgs?`${r.progArgs.join(" ")} `:"",Q=`#!/usr/bin/env pwsh +`,C}function Jyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o=a&&`"${a}$exe"`,l;n=n.split("\\").join("/");let A=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,f=r.args||"",I=a7e(r.nodePath),C=I.win32,b=I.posix,E=a7e(r.prependToPath),N=E.win32,B=E.posix;o?r.prog==="node"&&r.nodeExecPath?(o=`"${r.nodeExecPath}"`,n=A):(l=`"$basedir/${r.prog}$exe"`,n=A):(o=A,f="",n="");let F=r.progArgs?`${r.progArgs.join(" ")} `:"",Q=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -1696,7 +1696,7 @@ if ($MyInvocation.ExpectingInput) { ${C?`$env:NODE_PATH=$env_node_path `:""}${N?`$env:PATH=$env_path `:""}exit $LASTEXITCODE -`,Q}function Jyl(e,t){return t.fs_.chmod(e,493)}function a7e(e){if(!e||!e.length)return{win32:"",posix:""};let t=typeof e=="string"?e.split(WO.delimiter):Array.from(e),r={};for(let n=0;n`/mnt/${A.toLowerCase()}`):t[n];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${o}`:o,r[n]={win32:a,posix:o}}return r}bds.exports=qJr});var oUr=H(o0e=>{"use strict";Object.defineProperty(o0e,"__esModule",{value:!0});o0e.NodeModulesLinker=o0e.NodeModulesMode=void 0;o0e.getGlobalHardlinksStore=Fds;var iUr=(Pa(),vi(Va)),rp=Bn(),wds=Bn(),q4=Bn(),eUr=Bn(),Fu=no(),Op=no(),Uyl=zK(),Kyl=t7e(),$Jr=t7e(),jyl=TW(),Tds=mGe(),zyl=iUr.__importDefault(Eds()),Sds=($c(),vi(rg)),Rds=iUr.__importDefault(wt("crypto")),qyl=iUr.__importDefault(wt("fs")),Nds=1,V2="node_modules",wGt=".bin",Dds=".yarn-state.yml",$yl=1e3,OO;(function(e){e.CLASSIC="classic",e.HARDLINKS_LOCAL="hardlinks-local",e.HARDLINKS_GLOBAL="hardlinks-global"})(OO||(o0e.NodeModulesMode=OO={}));var tUr=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let n=r.project.tryWorkspaceByLocator(t);if(n)return n.cwd;let a=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(a===null)throw new Sds.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let o=a.locatorMap.get(rp.structUtils.stringifyLocator(t));if(!o){let f=new Sds.UsageError(`Couldn't find ${rp.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed node_modules map - running an install might help`);throw f.code="LOCATOR_NOT_INSTALLED",f}let l=o.locations.sort((f,I)=>f.split(Fu.ppath.sep).length-I.split(Fu.ppath.sep).length),A=Fu.ppath.join(r.project.configuration.startingCwd,V2);return l.find(f=>Fu.ppath.contains(A,f))||o.locations[0]}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(n===null)return null;let{locationRoot:a,segments:o}=TGt(Fu.ppath.resolve(t),{skipPrefix:r.project.cwd}),l=n.locationTree.get(a);if(!l)return null;let A=l.locator;for(let f of o){if(l=l.children.get(f),!l)break;A=l.locator||A}return rp.structUtils.parseLocator(A)}makeInstaller(t){return new rUr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="node-modules"}};o0e.NodeModulesLinker=tUr;var rUr=class{constructor(t){this.opts=t,this.localStore=new Map,this.realLocatorChecksums=new Map,this.customData={store:new Map}}attachCustomData(t){this.customData=t}async installPackage(t,r){let n=Fu.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(t.locatorHash);if(typeof a>"u"&&(a=await ebl(t,r),t.linkType===q4.LinkType.HARD&&this.customData.store.set(t.locatorHash,a)),!rp.structUtils.isPackageCompatible(t,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let o=new Map,l=new Set;o.has(rp.structUtils.stringifyIdent(t))||o.set(rp.structUtils.stringifyIdent(t),t.reference);let A=t;if(rp.structUtils.isVirtualLocator(t)){A=rp.structUtils.devirtualizeLocator(t);for(let C of t.peerDependencies.values())o.set(rp.structUtils.stringifyIdent(C),null),l.add(rp.structUtils.stringifyIdent(C))}let f={packageLocation:`${Fu.npath.fromPortablePath(n)}/`,packageDependencies:o,packagePeers:l,linkType:t.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(t.locatorHash,{pkg:t,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(t,t.version),pnpNode:f});let I=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,I),{packageLocation:n,buildRequest:null}}async attachInternalDependencies(t,r){let n=this.localStore.get(t.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,o]of r){let l=rp.structUtils.areIdentsEqual(a,o)?o.reference:[rp.structUtils.stringifyIdent(o),o.reference];n.pnpNode.packageDependencies.set(rp.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let t=new Op.VirtualFS({baseFs:new Uyl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),r=await nUr(this.opts.project),n=this.opts.project.configuration.get("nmMode");(r===null||n!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:n,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmHoistingLimits");try{N=rp.miscUtils.validateEnum($Jr.NodeModulesHoistingLimits,E.manifest.installConfig?.hoistingLimits??N)}catch{let B=rp.structUtils.prettyWorkspace(this.opts.project.configuration,E);this.opts.report.reportWarning(eUr.MessageName.INVALID_MANIFEST,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values($Jr.NodeModulesHoistingLimits).join(", ")}, using default: "${N}"`)}return[E.relativeCwd,N]})),o=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmSelfReferences");return N=E.manifest.installConfig?.selfReferences??N,[E.relativeCwd,N]})),l={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(E,N)=>Array.isArray(N)?{name:N[0],reference:N[1]}:{name:E,reference:N},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(E=>{let N=E.anchoredLocator;return{name:rp.structUtils.stringifyIdent(N),reference:N.reference}}),getPackageInformation:E=>{let N=E.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:rp.structUtils.makeLocator(rp.structUtils.parseIdent(E.name),E.reference),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return B.pnpNode},findPackageLocator:E=>{let N=this.opts.project.tryWorkspaceByCwd(Fu.npath.toPortablePath(E));if(N!==null){let B=N.anchoredLocator;return{name:rp.structUtils.stringifyIdent(B),reference:B.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:E=>Fu.npath.fromPortablePath(Op.VirtualFS.resolveVirtual(Fu.npath.toPortablePath(E)))},{tree:A,errors:f,preserveSymlinksRequired:I}=(0,Kyl.buildNodeModulesTree)(l,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:o});if(!A){for(let{messageName:E,text:N}of f)this.opts.report.reportError(E,N);return}let C=(0,$Jr.buildLocatorMap)(A);await abl(r,C,{baseFs:t,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async E=>{let N=rp.structUtils.parseLocator(E),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the slot to exist");return B.customPackageData.manifest}});let b=[];for(let[E,N]of C.entries()){if(Gds(E))continue;let B=rp.structUtils.parseLocator(E),F=this.localStore.get(B.locatorHash);if(typeof F>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(F.pkg))continue;let Q=Tds.jsInstallUtils.extractBuildRequest(F.pkg,F.customPackageData,F.dependencyMeta,{configuration:this.opts.project.configuration});Q&&b.push({buildLocations:N.locations,locator:B,buildRequest:Q})}return I&&this.opts.report.reportWarning(eUr.MessageName.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${rp.formatUtils.pretty(this.opts.project.configuration,"--preserve-symlinks",rp.formatUtils.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:b}}};async function ebl(e,t){let r=await rp.Manifest.tryFind(t.prefixPath,{baseFs:t.packageFs})??new rp.Manifest,n=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())n.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:Tds.jsInstallUtils.hasBindingGyp(t)}}}async function tbl(e,t,r,n,{installChangedByUser:a}){let o="";o+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,Q}function Uyl(e,t){return t.fs_.chmod(e,493)}function a7e(e){if(!e||!e.length)return{win32:"",posix:""};let t=typeof e=="string"?e.split(WO.delimiter):Array.from(e),r={};for(let n=0;n`/mnt/${A.toLowerCase()}`):t[n];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${o}`:o,r[n]={win32:a,posix:o}}return r}bds.exports=qJr});var oUr=H(o0e=>{"use strict";Object.defineProperty(o0e,"__esModule",{value:!0});o0e.NodeModulesLinker=o0e.NodeModulesMode=void 0;o0e.getGlobalHardlinksStore=Fds;var iUr=(Pa(),vi(Va)),rp=Bn(),wds=Bn(),q4=Bn(),eUr=Bn(),Fu=no(),Op=no(),Kyl=zK(),jyl=t7e(),$Jr=t7e(),zyl=TW(),Tds=mGe(),qyl=iUr.__importDefault(Eds()),Sds=($c(),vi(rg)),Rds=iUr.__importDefault(wt("crypto")),$yl=iUr.__importDefault(wt("fs")),Nds=1,V2="node_modules",wGt=".bin",Dds=".yarn-state.yml",ebl=1e3,OO;(function(e){e.CLASSIC="classic",e.HARDLINKS_LOCAL="hardlinks-local",e.HARDLINKS_GLOBAL="hardlinks-global"})(OO||(o0e.NodeModulesMode=OO={}));var tUr=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let n=r.project.tryWorkspaceByLocator(t);if(n)return n.cwd;let a=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(a===null)throw new Sds.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let o=a.locatorMap.get(rp.structUtils.stringifyLocator(t));if(!o){let f=new Sds.UsageError(`Couldn't find ${rp.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed node_modules map - running an install might help`);throw f.code="LOCATOR_NOT_INSTALLED",f}let l=o.locations.sort((f,I)=>f.split(Fu.ppath.sep).length-I.split(Fu.ppath.sep).length),A=Fu.ppath.join(r.project.configuration.startingCwd,V2);return l.find(f=>Fu.ppath.contains(A,f))||o.locations[0]}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(n===null)return null;let{locationRoot:a,segments:o}=TGt(Fu.ppath.resolve(t),{skipPrefix:r.project.cwd}),l=n.locationTree.get(a);if(!l)return null;let A=l.locator;for(let f of o){if(l=l.children.get(f),!l)break;A=l.locator||A}return rp.structUtils.parseLocator(A)}makeInstaller(t){return new rUr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="node-modules"}};o0e.NodeModulesLinker=tUr;var rUr=class{constructor(t){this.opts=t,this.localStore=new Map,this.realLocatorChecksums=new Map,this.customData={store:new Map}}attachCustomData(t){this.customData=t}async installPackage(t,r){let n=Fu.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(t.locatorHash);if(typeof a>"u"&&(a=await tbl(t,r),t.linkType===q4.LinkType.HARD&&this.customData.store.set(t.locatorHash,a)),!rp.structUtils.isPackageCompatible(t,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let o=new Map,l=new Set;o.has(rp.structUtils.stringifyIdent(t))||o.set(rp.structUtils.stringifyIdent(t),t.reference);let A=t;if(rp.structUtils.isVirtualLocator(t)){A=rp.structUtils.devirtualizeLocator(t);for(let C of t.peerDependencies.values())o.set(rp.structUtils.stringifyIdent(C),null),l.add(rp.structUtils.stringifyIdent(C))}let f={packageLocation:`${Fu.npath.fromPortablePath(n)}/`,packageDependencies:o,packagePeers:l,linkType:t.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(t.locatorHash,{pkg:t,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(t,t.version),pnpNode:f});let I=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,I),{packageLocation:n,buildRequest:null}}async attachInternalDependencies(t,r){let n=this.localStore.get(t.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,o]of r){let l=rp.structUtils.areIdentsEqual(a,o)?o.reference:[rp.structUtils.stringifyIdent(o),o.reference];n.pnpNode.packageDependencies.set(rp.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let t=new Op.VirtualFS({baseFs:new Kyl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),r=await nUr(this.opts.project),n=this.opts.project.configuration.get("nmMode");(r===null||n!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:n,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmHoistingLimits");try{N=rp.miscUtils.validateEnum($Jr.NodeModulesHoistingLimits,E.manifest.installConfig?.hoistingLimits??N)}catch{let B=rp.structUtils.prettyWorkspace(this.opts.project.configuration,E);this.opts.report.reportWarning(eUr.MessageName.INVALID_MANIFEST,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values($Jr.NodeModulesHoistingLimits).join(", ")}, using default: "${N}"`)}return[E.relativeCwd,N]})),o=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmSelfReferences");return N=E.manifest.installConfig?.selfReferences??N,[E.relativeCwd,N]})),l={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(E,N)=>Array.isArray(N)?{name:N[0],reference:N[1]}:{name:E,reference:N},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(E=>{let N=E.anchoredLocator;return{name:rp.structUtils.stringifyIdent(N),reference:N.reference}}),getPackageInformation:E=>{let N=E.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:rp.structUtils.makeLocator(rp.structUtils.parseIdent(E.name),E.reference),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return B.pnpNode},findPackageLocator:E=>{let N=this.opts.project.tryWorkspaceByCwd(Fu.npath.toPortablePath(E));if(N!==null){let B=N.anchoredLocator;return{name:rp.structUtils.stringifyIdent(B),reference:B.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:E=>Fu.npath.fromPortablePath(Op.VirtualFS.resolveVirtual(Fu.npath.toPortablePath(E)))},{tree:A,errors:f,preserveSymlinksRequired:I}=(0,jyl.buildNodeModulesTree)(l,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:o});if(!A){for(let{messageName:E,text:N}of f)this.opts.report.reportError(E,N);return}let C=(0,$Jr.buildLocatorMap)(A);await cbl(r,C,{baseFs:t,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async E=>{let N=rp.structUtils.parseLocator(E),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the slot to exist");return B.customPackageData.manifest}});let b=[];for(let[E,N]of C.entries()){if(Gds(E))continue;let B=rp.structUtils.parseLocator(E),F=this.localStore.get(B.locatorHash);if(typeof F>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(F.pkg))continue;let Q=Tds.jsInstallUtils.extractBuildRequest(F.pkg,F.customPackageData,F.dependencyMeta,{configuration:this.opts.project.configuration});Q&&b.push({buildLocations:N.locations,locator:B,buildRequest:Q})}return I&&this.opts.report.reportWarning(eUr.MessageName.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${rp.formatUtils.pretty(this.opts.project.configuration,"--preserve-symlinks",rp.formatUtils.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:b}}};async function tbl(e,t){let r=await rp.Manifest.tryFind(t.prefixPath,{baseFs:t.packageFs})??new rp.Manifest,n=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())n.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:Tds.jsInstallUtils.hasBindingGyp(t)}}}async function rbl(e,t,r,n,{installChangedByUser:a}){let o="";o+=`# Warning: This file is automatically generated. Removing it is fine, but will `,o+=`# cause your node_modules installation to become invalidated. `,o+=` `,o+=`__metadata: @@ -1711,47 +1711,47 @@ ${C?`$env:NODE_PATH=$env_node_path `}if(C===A&&r.size>0){o+=` bin: `;for(let[E,N]of r){let B=Fu.ppath.contains(e.cwd,E);if(B===null)throw new Error(`Assertion failed: Expected the path to be within the project (${E})`);o+=` ${JSON.stringify(B)}: `;for(let[F,Q]of N){let X=Fu.ppath.relative(Fu.ppath.join(E,V2),Q);o+=` ${JSON.stringify(F)}: ${JSON.stringify(X)} -`}}}}let f=e.cwd,I=Fu.ppath.join(f,V2,Dds);a&&await Op.xfs.removePromise(I),await Op.xfs.changeFilePromise(I,o,{automaticNewlines:!0})}async function nUr(e,{unrollAliases:t=!1}={}){let r=e.cwd,n=Fu.ppath.join(r,V2,Dds),a;try{a=await Op.xfs.statPromise(n)}catch{}if(!a)return null;let o=(0,jyl.parseSyml)(await Op.xfs.readFilePromise(n,"utf8"));if(o.__metadata.version>Nds)return null;let l=o.__metadata.nmMode||OO.CLASSIC,A=new Map,f=new Map;delete o.__metadata;for(let[I,C]of Object.entries(o)){let b=C.locations.map(N=>Fu.ppath.join(r,N)),E=C.bin;if(E)for(let[N,B]of Object.entries(E)){let F=Fu.ppath.join(r,Fu.npath.toPortablePath(N)),Q=rp.miscUtils.getMapWithDefault(f,F);for(let[X,ae]of Object.entries(B))Q.set(X,Fu.npath.toPortablePath([F,V2,ae].join(Fu.ppath.sep)))}if(A.set(I,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:C.aliases||[]}),t&&C.aliases)for(let N of C.aliases){let{scope:B,name:F}=rp.structUtils.parseLocator(I),Q=rp.structUtils.makeLocator(rp.structUtils.makeIdent(B,F),N),X=rp.structUtils.stringifyLocator(Q);A.set(X,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:[]})}}return{locatorMap:A,binSymlinks:f,locationTree:kds(A,{skipPrefix:e.cwd}),nmMode:l,mtimeMs:a.mtimeMs}}var yGe=async(e,t)=>{if(e.split(Fu.ppath.sep).indexOf(V2)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${e}`);try{let r;if(!t.innerLoop&&(r=await Op.xfs.lstatPromise(e),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!t.isWorkspaceDir)){await Op.xfs.unlinkPromise(e);return}let n=await Op.xfs.readdirPromise(e,{withFileTypes:!0});for(let o of n){let l=Fu.ppath.join(e,o.name);o.isDirectory()?(o.name!==V2||t&&t.innerLoop)&&await yGe(l,{innerLoop:!0,contentsOnly:!1}):await Op.xfs.unlinkPromise(l)}let a=!t.innerLoop&&t.isWorkspaceDir&&r?.isSymbolicLink();!t.contentsOnly&&!a&&await Op.xfs.rmdirPromise(e)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},vds=4,TGt=(e,{skipPrefix:t})=>{let r=Fu.ppath.contains(t,e);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${e} which is outside project root: ${t}`);let n=r.split(Fu.ppath.sep).filter(f=>f!==""),a=n.indexOf(V2),o=n.slice(0,a).join(Fu.ppath.sep),l=Fu.ppath.join(t,o),A=n.slice(a);return{locationRoot:l,segments:A}},kds=(e,{skipPrefix:t})=>{let r=new Map;if(e===null)return r;let n=()=>({children:new Map,linkType:q4.LinkType.HARD});for(let[a,o]of e.entries()){if(o.linkType===q4.LinkType.SOFT&&Fu.ppath.contains(t,o.target)!==null){let A=rp.miscUtils.getFactoryWithDefault(r,o.target,n);A.locator=a,A.linkType=o.linkType}for(let l of o.locations){let{locationRoot:A,segments:f}=TGt(l,{skipPrefix:t}),I=rp.miscUtils.getFactoryWithDefault(r,A,n);for(let C=0;C{if(process.platform==="win32"&&r===q4.WindowsLinkType.JUNCTIONS){let n;try{n=await Op.xfs.lstatPromise(e)}catch{}if(!n||n.isDirectory()){await Op.xfs.symlinkPromise(e,t,"junction");return}}await Op.xfs.symlinkPromise(Fu.ppath.relative(Fu.ppath.dirname(t),e),t)};async function xds(e,t,r){let n=Fu.ppath.join(e,`${Rds.default.randomBytes(16).toString("hex")}.tmp`);try{await Op.xfs.writeFilePromise(n,r);try{await Op.xfs.linkPromise(n,t)}catch{}}finally{await Op.xfs.unlinkPromise(n)}}async function rbl({srcPath:e,dstPath:t,entry:r,globalHardlinksStore:n,baseFs:a,nmMode:o}){if(r.kind===Ote.FILE){if(o.value===OO.HARDLINKS_GLOBAL&&n&&r.digest){let A=Fu.ppath.join(n,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),f;try{let I=await Op.xfs.statPromise(A);if(I&&(!r.mtimeMs||I.mtimeMs>r.mtimeMs||I.mtimeMs{await Op.xfs.mkdirPromise(e,{recursive:!0});let A=async(C=Fu.PortablePath.dot)=>{let b=Fu.ppath.join(t,C),E=await r.readdirPromise(b,{withFileTypes:!0}),N=new Map;for(let B of E){let F=Fu.ppath.join(C,B.name),Q,X=Fu.ppath.join(b,B.name);if(B.isFile()){if(Q={kind:Ote.FILE,mode:(await r.lstatPromise(X)).mode},a.value===OO.HARDLINKS_GLOBAL){let ae=await wds.hashUtils.checksumFile(X,{baseFs:r,algorithm:"sha1"});Q.digest=ae}}else if(B.isDirectory())Q={kind:Ote.DIRECTORY};else if(B.isSymbolicLink())Q={kind:Ote.SYMLINK,symlinkTo:await r.readlinkPromise(X)};else throw new Error(`Unsupported file type (file: ${X}, mode: 0o${await r.statSync(X).mode.toString(8).padStart(6,"0")})`);if(N.set(F,Q),B.isDirectory()&&F!==V2){let ae=await A(F);for(let[ne,ce]of ae)N.set(ne,ce)}}return N},f;if(a.value===OO.HARDLINKS_GLOBAL&&n&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);try{f=new Map(Object.entries(JSON.parse(await Op.xfs.readFilePromise(C,"utf8"))))}catch{f=await A()}}else f=await A();let I=!1;for(let[C,b]of f){let E=Fu.ppath.join(t,C),N=Fu.ppath.join(e,C);if(b.kind===Ote.DIRECTORY)await Op.xfs.mkdirPromise(N,{recursive:!0});else if(b.kind===Ote.FILE){let B=b.mtimeMs;await rbl({srcPath:E,dstPath:N,entry:b,nmMode:a,baseFs:r,globalHardlinksStore:n}),b.mtimeMs!==B&&(I=!0)}else b.kind===Ote.SYMLINK&&await sUr(Fu.ppath.resolve(Fu.ppath.dirname(N),b.symlinkTo),N,o)}if(a.value===OO.HARDLINKS_GLOBAL&&n&&I&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);await Op.xfs.removePromise(C),await xds(n,C,Buffer.from(JSON.stringify(Object.fromEntries(f))))}};function ibl(e,t,r,n){let a=new Map,o=new Map,l=new Map,A=!1,f=(I,C,b,E,N)=>{let B=!0,F=Fu.ppath.join(I,C),Q=new Set;if(C===V2||C.startsWith("@")){let ae;try{ae=Op.xfs.statSync(F)}catch{}B=!!ae,ae?ae.mtimeMs>r?(A=!0,Q=new Set(Op.xfs.readdirSync(F))):Q=new Set(b.children.get(C).children.keys()):A=!0;let ne=t.get(I);if(ne){let ce=Fu.ppath.join(I,V2,wGt),fe;try{fe=Op.xfs.statSync(ce)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ue=new Set(Op.xfs.readdirSync(ce)),de=new Map;o.set(I,de);for(let[be,Se]of ne)ue.has(be)&&de.set(be,Se)}else o.set(I,ne)}}else B=N.has(C);let X=b.children.get(C);if(B){let{linkType:ae,locator:ne}=X,ce={children:new Map,linkType:ae,locator:ne};if(E.children.set(C,ce),ne){let fe=rp.miscUtils.getSetWithDefault(l,ne);fe.add(F),l.set(ne,fe)}for(let fe of X.children.keys())f(F,fe,X,ce,Q)}else X.locator&&n.storedBuildState.delete(rp.structUtils.parseLocator(X.locator).locatorHash)};for(let[I,C]of e){let{linkType:b,locator:E}=C,N={children:new Map,linkType:b,locator:E};if(a.set(I,N),E){let B=rp.miscUtils.getSetWithDefault(l,C.locator);B.add(I),l.set(C.locator,B)}C.children.has(V2)&&f(I,V2,C,N,new Set)}return{locationTree:a,binSymlinks:o,locatorLocations:l,installChangedByUser:A}}function Gds(e){let t=rp.structUtils.parseDescriptor(e);return rp.structUtils.isVirtualDescriptor(t)&&(t=rp.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}async function sbl(e,t,r,{loadManifest:n}){let a=new Map;for(let[A,{locations:f}]of e){let I=Gds(A)?null:await n(A,f[0]),C=new Map;if(I)for(let[b,E]of I.bin){let N=Fu.ppath.join(f[0],E);E!==""&&Op.xfs.existsSync(N)&&C.set(b,E)}a.set(A,C)}let o=new Map,l=(A,f,I)=>{let C=new Map,b=Fu.ppath.contains(r,A);if(I.locator&&b!==null){let E=a.get(I.locator);for(let[N,B]of E){let F=Fu.ppath.join(A,Fu.npath.toPortablePath(B));C.set(N,F)}for(let[N,B]of I.children){let F=Fu.ppath.join(A,N),Q=l(F,F,B);Q.size>0&&o.set(A,new Map([...o.get(A)||new Map,...Q]))}}else for(let[E,N]of I.children){let B=l(Fu.ppath.join(A,E),f,N);for(let[F,Q]of B)C.set(F,Q)}return C};for(let[A,f]of t){let I=l(A,A,f);I.size>0&&o.set(A,new Map([...o.get(A)||new Map,...I]))}return o}var Bds=(e,t)=>{if(!e||!t)return e===t;let r=rp.structUtils.parseLocator(e);rp.structUtils.isVirtualLocator(r)&&(r=rp.structUtils.devirtualizeLocator(r));let n=rp.structUtils.parseLocator(t);return rp.structUtils.isVirtualLocator(n)&&(n=rp.structUtils.devirtualizeLocator(n)),rp.structUtils.areLocatorsEqual(r,n)};function Fds(e){return Fu.ppath.join(e.get("globalFolder"),"store")}function obl(e,t){let r=n=>{let a=n.split(Fu.ppath.sep),o=a.lastIndexOf(V2);if(o<0||o==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${n}`);return a.slice(0,o+(a[o+1].startsWith("@")?3:2)).join(Fu.ppath.sep)};for(let n of e.values())for(let[a,o]of n)t.has(r(o))&&n.delete(a)}async function abl(e,t,{baseFs:r,project:n,report:a,loadManifest:o,realLocatorChecksums:l}){let A=Fu.ppath.join(n.cwd,V2),{locationTree:f,binSymlinks:I,locatorLocations:C,installChangedByUser:b}=ibl(e.locationTree,e.binSymlinks,e.mtimeMs,n),E=kds(t,{skipPrefix:n.cwd}),N=[],B=async({srcDir:Se,dstDir:De,linkType:k,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})=>{let St=(async()=>{try{k===q4.LinkType.SOFT?(await Op.xfs.mkdirPromise(Fu.ppath.dirname(De),{recursive:!0}),await sUr(Fu.ppath.resolve(Se),De,Me)):await nbl(De,Se,{baseFs:r,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})}catch(At){throw At.message=`While persisting ${Se} -> ${De} ${At.message}`,At}finally{ce.tick()}})().then(()=>N.splice(N.indexOf(St),1));N.push(St),N.length>vds&&await Promise.race(N)},F=async(Se,De,k)=>{let et=(async()=>{let ct=async(Me,je,St)=>{try{St.innerLoop||await Op.xfs.mkdirPromise(je,{recursive:!0});let At=await Op.xfs.readdirPromise(Me,{withFileTypes:!0});for(let Yt of At){if(!St.innerLoop&&Yt.name===wGt)continue;let Tr=Fu.ppath.join(Me,Yt.name),Nr=Fu.ppath.join(je,Yt.name);Yt.isDirectory()?(Yt.name!==V2||St&&St.innerLoop)&&(await Op.xfs.mkdirPromise(Nr,{recursive:!0}),await ct(Tr,Nr,{...St,innerLoop:!0})):de.value===OO.HARDLINKS_LOCAL||de.value===OO.HARDLINKS_GLOBAL?await Op.xfs.linkPromise(Tr,Nr):await Op.xfs.copyFilePromise(Tr,Nr,qyl.default.constants.COPYFILE_FICLONE)}}catch(At){throw St.innerLoop||(At.message=`While cloning ${Me} -> ${je} ${At.message}`),At}finally{St.innerLoop||ce.tick()}};await ct(Se,De,k)})().then(()=>N.splice(N.indexOf(et),1));N.push(et),N.length>vds&&await Promise.race(N)},Q=async(Se,De,k)=>{if(k)for(let[et,ct]of De.children){let Me=k.children.get(et);await Q(Fu.ppath.join(Se,et),ct,Me)}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!1});let et=Fu.ppath.basename(Se)===V2&&f.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:Se===A,isWorkspaceDir:et})}};for(let[Se,De]of f){let k=E.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et),je=Fu.ppath.join(Se,et);await Q(je,ct,Me)}}let X=async(Se,De,k)=>{if(k){Bds(De.locator,k.locator)||await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD});for(let[et,ct]of De.children){let Me=k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!0});let et=Fu.ppath.basename(Se)===V2&&E.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD,isWorkspaceDir:et})}};for(let[Se,De]of E){let k=f.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}let ae=new Map,ne=[];for(let[Se,De]of C)for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=E.get(et),je=et;if(Me){for(let St of ct)if(je=Fu.ppath.join(je,St),Me=Me.children.get(St),!Me)break;if(Me){let St=Bds(Me.locator,Se),At=t.get(Me.locator),Yt=At.target,Tr=je,Nr=At.linkType;if(St)ae.has(Yt)||ae.set(Yt,Tr);else if(Yt!==Tr){let er=rp.structUtils.parseLocator(Me.locator);rp.structUtils.isVirtualLocator(er)&&(er=rp.structUtils.devirtualizeLocator(er)),ne.push({srcDir:Yt,dstDir:Tr,linkType:Nr,realLocatorHash:er.locatorHash})}}}}for(let[Se,{locations:De}]of t.entries())for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=f.get(et),je=E.get(et),St=et,At=t.get(Se),Yt=rp.structUtils.parseLocator(Se);rp.structUtils.isVirtualLocator(Yt)&&(Yt=rp.structUtils.devirtualizeLocator(Yt));let Tr=Yt.locatorHash,Nr=At.target,er=k;if(Nr===er)continue;let vt=At.linkType;for(let xt of ct)je=je.children.get(xt);if(!Me)ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});else for(let xt of ct)if(St=Fu.ppath.join(St,xt),Me=Me.children.get(xt),!Me){ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});break}}let ce=rp.Report.progressViaCounter(ne.length),fe=a.reportProgress(ce),ue=n.configuration.get("nmMode"),de={value:ue},be=n.configuration.get("winLinkType");try{let Se=de.value===OO.HARDLINKS_GLOBAL?`${Fds(n.configuration)}/v1`:null;if(Se&&!await Op.xfs.existsPromise(Se)){await Op.xfs.mkdirpPromise(Se);for(let k=0;k<256;k++)await Op.xfs.mkdirPromise(Fu.ppath.join(Se,k.toString(16).padStart(2,"0")))}for(let k of ne)(k.linkType===q4.LinkType.SOFT||!ae.has(k.srcDir))&&(ae.set(k.srcDir,k.dstDir),await B({...k,globalHardlinksStore:Se,nmMode:de,windowsLinkType:be,packageChecksum:l.get(k.realLocatorHash)||null}));await Promise.all(N),N.length=0;for(let k of ne){let et=ae.get(k.srcDir);k.linkType!==q4.LinkType.SOFT&&k.dstDir!==et&&await F(et,k.dstDir,{nmMode:de})}await Promise.all(N),await Op.xfs.mkdirPromise(A,{recursive:!0}),obl(I,new Set(ne.map(k=>k.dstDir)));let De=await sbl(t,E,n.cwd,{loadManifest:o});await cbl(I,De,n.cwd,be),await tbl(n,t,De,de,{installChangedByUser:b}),ue==OO.HARDLINKS_GLOBAL&&de.value==OO.HARDLINKS_LOCAL&&a.reportWarningOnce(eUr.MessageName.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function cbl(e,t,r,n){for(let a of e.keys()){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!t.has(a)){let o=Fu.ppath.join(a,V2,wGt);await Op.xfs.removePromise(o)}}for(let[a,o]of t){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let l=Fu.ppath.join(a,V2,wGt),A=e.get(a)||new Map;await Op.xfs.mkdirPromise(l,{recursive:!0});for(let f of A.keys())o.has(f)||(await Op.xfs.removePromise(Fu.ppath.join(l,f)),process.platform==="win32"&&await Op.xfs.removePromise(Fu.ppath.join(l,`${f}.cmd`)));for(let[f,I]of o){let C=A.get(f),b=Fu.ppath.join(l,f);C!==I&&(process.platform==="win32"?await(0,zyl.default)(Fu.npath.fromPortablePath(I),Fu.npath.fromPortablePath(b),{createPwshFile:!1}):(await Op.xfs.removePromise(b),await sUr(I,b,n),Fu.ppath.contains(r,await Op.xfs.realpathPromise(I))!==null&&await Op.xfs.chmodPromise(I,493)))}}}});var Vds=H(RGt=>{"use strict";Object.defineProperty(RGt,"__esModule",{value:!0});RGt.PnpLooseLinker=void 0;var Zds=Bn(),c7e=no(),lbl=zK(),ubl=t7e(),Lds=mGe(),gbl=ZJr(),aUr=class extends Lds.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(t){return new cUr(t)}};RGt.PnpLooseLinker=aUr;var cUr=class extends Lds.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async transformPnpSettings(t){let r=new c7e.VirtualFS({baseFs:new lbl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),n=(0,gbl.makeRuntimeApi)(t,this.opts.project.cwd,r),{tree:a,errors:o}=(0,ubl.buildNodeModulesTree)(n,{pnpifyFs:!1,project:this.opts.project});if(!a){for(let{messageName:C,text:b}of o)this.opts.report.reportError(C,b);return}let l=new Map;t.fallbackPool=l;let A=(C,b)=>{let E=Zds.structUtils.parseLocator(b.locator),N=Zds.structUtils.stringifyIdent(E);N===C?l.set(C,E.reference):l.set(C,[N,E.reference])},f=c7e.ppath.join(this.opts.project.cwd,c7e.Filename.nodeModules),I=a.get(f);if(!(typeof I>"u")){if("target"in I)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of I.dirList){let b=c7e.ppath.join(f,C),E=a.get(b);if(typeof E>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in E)A(C,E);else for(let N of E.dirList){let B=c7e.ppath.join(b,N),F=a.get(B);if(typeof F>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in F)A(`${C}/${N}`,F);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}}});var Wds=H(Mte=>{"use strict";Object.defineProperty(Mte,"__esModule",{value:!0});Mte.PnpLooseLinker=Mte.NodeModulesMode=Mte.NodeModulesLinker=void 0;var lUr=Bn(),Abl=no(),NGt=t7e(),a0e=oUr();Object.defineProperty(Mte,"NodeModulesLinker",{enumerable:!0,get:function(){return a0e.NodeModulesLinker}});Object.defineProperty(Mte,"NodeModulesMode",{enumerable:!0,get:function(){return a0e.NodeModulesMode}});var dbl=oUr(),Pds=Vds();Object.defineProperty(Mte,"PnpLooseLinker",{enumerable:!0,get:function(){return Pds.PnpLooseLinker}});var pbl={hooks:{cleanGlobalArtifacts:async e=>{let t=(0,dbl.getGlobalHardlinksStore)(e);await Abl.xfs.removePromise(t)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:lUr.SettingsType.STRING,values:[NGt.NodeModulesHoistingLimits.WORKSPACES,NGt.NodeModulesHoistingLimits.DEPENDENCIES,NGt.NodeModulesHoistingLimits.NONE],default:NGt.NodeModulesHoistingLimits.NONE},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:lUr.SettingsType.STRING,values:[a0e.NodeModulesMode.CLASSIC,a0e.NodeModulesMode.HARDLINKS_LOCAL,a0e.NodeModulesMode.HARDLINKS_GLOBAL],default:a0e.NodeModulesMode.CLASSIC},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:lUr.SettingsType.BOOLEAN,default:!0}},linkers:[a0e.NodeModulesLinker,Pds.PnpLooseLinker]};Mte.default=pbl});var bGe=H(DGt=>{"use strict";Object.defineProperty(DGt,"__esModule",{value:!0});DGt.PROTOCOL=void 0;DGt.PROTOCOL="npm:"});var c0e=H(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});MO.RegistryType=void 0;MO.normalizeRegistry=EGe;MO.getAuditRegistry=hbl;MO.getPublishRegistry=mbl;MO.getScopeRegistry=Ods;MO.getDefaultRegistry=l7e;MO.getRegistryConfiguration=Mds;MO.getScopeConfiguration=uUr;MO.getAuthConfiguration=_bl;MO.isPackageApproved=Sbl;var fbl=(Pa(),vi(Va)),kGt=Bn(),Ibl=fbl.__importDefault(Ek()),vue;(function(e){e.AUDIT_REGISTRY="npmAuditRegistry",e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"})(vue||(MO.RegistryType=vue={}));function EGe(e){return e.replace(/\/$/,"")}function hbl({configuration:e}){return l7e({configuration:e,type:vue.AUDIT_REGISTRY})}function mbl(e,{configuration:t}){return e.publishConfig?.registry?EGe(e.publishConfig.registry):e.name?Ods(e.name.scope,{configuration:t,type:vue.PUBLISH_REGISTRY}):l7e({configuration:t,type:vue.PUBLISH_REGISTRY})}function Ods(e,{configuration:t,type:r=vue.FETCH_REGISTRY}){let n=uUr(e,{configuration:t});if(n===null)return l7e({configuration:t,type:r});let a=n.get(r);return a===null?l7e({configuration:t,type:r}):EGe(a)}function l7e({configuration:e,type:t=vue.FETCH_REGISTRY}){let r=e.get(t);return EGe(r!==null?r:e.get(vue.FETCH_REGISTRY))}function Mds(e,{configuration:t}){let r=t.get("npmRegistries"),n=EGe(e),a=r.get(n);if(typeof a<"u")return a;let o=r.get(n.replace(/^[a-z]+:/,""));return typeof o<"u"?o:null}var Cbl=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function uUr(e,{configuration:t}){if(e===null)return null;let n=t.get("npmScopes").get(e);return n||(e==="jsr"?Cbl:null)}function _bl(e,{configuration:t,ident:r}){let n=r&&uUr(r.scope,{configuration:t});return n?.get("npmAuthIdent")||n?.get("npmAuthToken")?n:Mds(e,{configuration:t})||t}function ybl({configuration:e,version:t,publishTimes:r}){let n=e.get("npmMinimalAgeGate");if(n){let a=r?.[t];if(typeof a>"u"||(new Date().getTime()-new Date(a).getTime())/60/1e3bbl(t,r,n))}function Sbl(e){return!ybl(e)||Ebl(e)}});var vGe=H(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});FH.AuthType=void 0;FH.handleInvalidAuthenticationError=wue;FH.customPackageError=Qds;FH.getIdentUrl=AUr;FH.getPackageMetadata=Dbl;FH.get=Uds;FH.post=Zbl;FH.put=Lbl;FH.del=Vbl;var Yds=(Pa(),vi(Va)),ET=Bn(),Bue=Bn(),Hte=no(),Hds=Lje(),vbl=kW(),Bbl=Yds.__importDefault(UC()),gUr=Yds.__importStar(c0e()),GH;(function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(GH||(FH.AuthType=GH={}));async function wue(e,{attemptedAs:t,registry:r,headers:n,configuration:a}){if(GGt(e))throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,"Invalid OTP token");if(e.originalError?.name==="HTTPError"&&e.originalError?.response.statusCode===401)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,`Invalid authentication (${typeof t!="string"?`as ${await Wbl(r,n,{configuration:a})}`:`attempted as ${t}`})`)}function Qds(e,t){let r=e.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ET.formatUtils.applyHyperlink(t,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function AUr(e){return e.scope?`/@${e.scope}%2f${e.name}`:`/${e.name}`}var Xds=new Map,wbl=new Map;async function Tbl(e){return await ET.miscUtils.getFactoryWithDefault(Xds,e,async()=>{let t=null;try{t=await Hte.xfs.readJsonPromise(e)}catch{}return t})}async function Rbl(e,t,{configuration:r,cached:n,registry:a,headers:o,version:l,...A}){return await ET.miscUtils.getFactoryWithDefault(wbl,e,async()=>await Uds(AUr(t),{...A,customErrorMessage:Qds,configuration:r,registry:a,ident:t,headers:{...o,"If-None-Match":n?.etag,"If-Modified-Since":n?.lastModified},wrapNetworkRequest:async f=>async()=>{let I=await f();if(I.statusCode===304){if(n===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...I,body:n.metadata}}let C=kbl(JSON.parse(I.body.toString())),b={metadata:C,etag:I.headers.etag,lastModified:I.headers["last-modified"]};return Xds.set(e,Promise.resolve(b)),Promise.resolve().then(async()=>{let E=`${e}-${process.pid}.tmp`;await Hte.xfs.mkdirPromise(Hte.ppath.dirname(E),{recursive:!0}),await Hte.xfs.writeJsonPromise(E,b,{compact:!0}),await Hte.xfs.renamePromise(E,e)}).catch(()=>{}),{...I,body:C}}}))}function Nbl(e){return e.scope!==null?`@${e.scope}-${e.name}-${e.scope.length}`:e.name}async function Dbl(e,{cache:t,project:r,registry:n,headers:a,version:o,...l}){let{configuration:A}=r;n=u7e(A,{ident:e,registry:n});let f=Gbl(A,n),I=Hte.ppath.join(f,`${Nbl(e)}.json`),C=null;if(!r.lockfileNeedsRefresh&&(C=await Tbl(I),C)){if(typeof o<"u"&&typeof C.metadata.versions[o]<"u")return C.metadata;if(A.get("enableOfflineMode")){let b=structuredClone(C.metadata),E=new Set;if(t){for(let B of Object.keys(b.versions)){let F=ET.structUtils.makeLocator(e,`npm:${B}`),Q=t.getLocatorMirrorPath(F);(!Q||!Hte.xfs.existsSync(Q))&&(delete b.versions[B],E.add(B))}let N=b["dist-tags"].latest;if(E.has(N)){let B=Object.keys(C.metadata.versions).sort(Bbl.default.compare),F=B.indexOf(N);for(;E.has(B[F])&&F>=0;)F-=1;F>=0?b["dist-tags"].latest=B[F]:delete b["dist-tags"].latest}}return b}}return await Rbl(I,e,{...l,configuration:A,cached:C,registry:n,headers:a,version:o})}var Jds=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function kbl(e){return{"dist-tags":e["dist-tags"],versions:Object.fromEntries(Object.entries(e.versions).map(([t,r])=>[t,(0,vbl.pick)(r,Jds)])),time:e.time}}var xbl=ET.hashUtils.makeHash("time",...Jds).slice(0,6);function Gbl(e,t){let r=Fbl(e),n=new URL(t);return Hte.ppath.join(r,xbl,n.hostname)}function Fbl(e){return Hte.ppath.join(e.get("globalFolder"),"metadata/npm")}async function Uds(e,{configuration:t,headers:r,ident:n,authType:a,allowOidc:o,registry:l,...A}){l=u7e(t,{ident:n,registry:l}),n&&n.scope&&typeof a>"u"&&(a=GH.BEST_EFFORT);let f=await xGt(l,{authType:a,allowOidc:o,configuration:t,ident:n});f&&(r={...r,authorization:f});try{return await ET.httpUtils.get(e.charAt(0)==="/"?`${l}${e}`:e,{configuration:t,headers:r,...A})}catch(I){throw await wue(I,{registry:l,configuration:t,headers:r}),I}}async function Zbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.post(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E)||I)throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.post(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Lbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.put(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E))throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.put(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Vbl(e,{attemptedAs:t,configuration:r,headers:n,ident:a,authType:o=GH.ALWAYS_AUTH,allowOidc:l,registry:A,otp:f,...I}){A=u7e(r,{ident:a,registry:A});let C=await xGt(A,{authType:o,allowOidc:l,configuration:r,ident:a});C&&(n={...n,authorization:C}),f&&(n={...n,...SGe(f)});try{return await ET.httpUtils.del(A+e,{configuration:r,headers:n,...I})}catch(b){if(!GGt(b)||f)throw await wue(b,{attemptedAs:t,registry:A,configuration:r,headers:n}),b;f=await dUr(b,{configuration:r});let E={...n,...SGe(f)};try{return await ET.httpUtils.del(`${A}${e}`,{configuration:r,headers:E,...I})}catch(N){throw await wue(N,{attemptedAs:t,registry:A,configuration:r,headers:n}),N}}}function u7e(e,{ident:t,registry:r}){if(typeof r>"u"&&t)return gUr.getScopeRegistry(t.scope,{configuration:e});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return gUr.normalizeRegistry(r)}async function xGt(e,{authType:t=GH.CONFIGURATION,allowOidc:r=!1,configuration:n,ident:a}){let o=gUr.getAuthConfiguration(e,{configuration:n,ident:a}),l=Pbl(o,t);if(!l)return null;let A=await n.reduceHook(f=>f.getNpmAuthenticationHeader,void 0,e,{configuration:n,ident:a});if(A)return A;if(o.get("npmAuthToken"))return`Bearer ${o.get("npmAuthToken")}`;if(o.get("npmAuthIdent")){let f=o.get("npmAuthIdent");return f.includes(":")?`Basic ${Buffer.from(f).toString("base64")}`:`Basic ${f}`}if(r&&a){let f=await Obl(e,{configuration:n,ident:a});if(f)return`Bearer ${f}`}if(l&&t!==GH.BEST_EFFORT)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function Pbl(e,t){switch(t){case GH.CONFIGURATION:return e.get("npmAlwaysAuth");case GH.BEST_EFFORT:case GH.ALWAYS_AUTH:return!0;case GH.NO_AUTH:return!1;default:throw new Error("Unreachable")}}async function Wbl(e,t,{configuration:r}){if(typeof t>"u"||typeof t.authorization>"u")return"an anonymous user";try{return(await ET.httpUtils.get(new URL(`${e}/-/whoami`).href,{configuration:r,headers:t,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function dUr(e,{configuration:t}){let r=e.originalError?.response.headers["npm-notice"];if(r&&(await ET.StreamReport.start({configuration:t,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(Bue.MessageName.UNNAMED,r.replace(/(https?:\/\/\S+)/g,ET.formatUtils.pretty(t,"$1",ET.formatUtils.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=r.match(/open (https?:\/\/\S+)/i);if(o&&ET.nodeUtils.openUrl){let{openNow:l}=await(0,Hds.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});l&&(await ET.nodeUtils.openUrl(o[1])||(a.reportSeparator(),a.reportWarning(Bue.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let f=e.cwd,I=Fu.ppath.join(f,V2,Dds);a&&await Op.xfs.removePromise(I),await Op.xfs.changeFilePromise(I,o,{automaticNewlines:!0})}async function nUr(e,{unrollAliases:t=!1}={}){let r=e.cwd,n=Fu.ppath.join(r,V2,Dds),a;try{a=await Op.xfs.statPromise(n)}catch{}if(!a)return null;let o=(0,zyl.parseSyml)(await Op.xfs.readFilePromise(n,"utf8"));if(o.__metadata.version>Nds)return null;let l=o.__metadata.nmMode||OO.CLASSIC,A=new Map,f=new Map;delete o.__metadata;for(let[I,C]of Object.entries(o)){let b=C.locations.map(N=>Fu.ppath.join(r,N)),E=C.bin;if(E)for(let[N,B]of Object.entries(E)){let F=Fu.ppath.join(r,Fu.npath.toPortablePath(N)),Q=rp.miscUtils.getMapWithDefault(f,F);for(let[X,ae]of Object.entries(B))Q.set(X,Fu.npath.toPortablePath([F,V2,ae].join(Fu.ppath.sep)))}if(A.set(I,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:C.aliases||[]}),t&&C.aliases)for(let N of C.aliases){let{scope:B,name:F}=rp.structUtils.parseLocator(I),Q=rp.structUtils.makeLocator(rp.structUtils.makeIdent(B,F),N),X=rp.structUtils.stringifyLocator(Q);A.set(X,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:[]})}}return{locatorMap:A,binSymlinks:f,locationTree:kds(A,{skipPrefix:e.cwd}),nmMode:l,mtimeMs:a.mtimeMs}}var yGe=async(e,t)=>{if(e.split(Fu.ppath.sep).indexOf(V2)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${e}`);try{let r;if(!t.innerLoop&&(r=await Op.xfs.lstatPromise(e),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!t.isWorkspaceDir)){await Op.xfs.unlinkPromise(e);return}let n=await Op.xfs.readdirPromise(e,{withFileTypes:!0});for(let o of n){let l=Fu.ppath.join(e,o.name);o.isDirectory()?(o.name!==V2||t&&t.innerLoop)&&await yGe(l,{innerLoop:!0,contentsOnly:!1}):await Op.xfs.unlinkPromise(l)}let a=!t.innerLoop&&t.isWorkspaceDir&&r?.isSymbolicLink();!t.contentsOnly&&!a&&await Op.xfs.rmdirPromise(e)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},vds=4,TGt=(e,{skipPrefix:t})=>{let r=Fu.ppath.contains(t,e);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${e} which is outside project root: ${t}`);let n=r.split(Fu.ppath.sep).filter(f=>f!==""),a=n.indexOf(V2),o=n.slice(0,a).join(Fu.ppath.sep),l=Fu.ppath.join(t,o),A=n.slice(a);return{locationRoot:l,segments:A}},kds=(e,{skipPrefix:t})=>{let r=new Map;if(e===null)return r;let n=()=>({children:new Map,linkType:q4.LinkType.HARD});for(let[a,o]of e.entries()){if(o.linkType===q4.LinkType.SOFT&&Fu.ppath.contains(t,o.target)!==null){let A=rp.miscUtils.getFactoryWithDefault(r,o.target,n);A.locator=a,A.linkType=o.linkType}for(let l of o.locations){let{locationRoot:A,segments:f}=TGt(l,{skipPrefix:t}),I=rp.miscUtils.getFactoryWithDefault(r,A,n);for(let C=0;C{if(process.platform==="win32"&&r===q4.WindowsLinkType.JUNCTIONS){let n;try{n=await Op.xfs.lstatPromise(e)}catch{}if(!n||n.isDirectory()){await Op.xfs.symlinkPromise(e,t,"junction");return}}await Op.xfs.symlinkPromise(Fu.ppath.relative(Fu.ppath.dirname(t),e),t)};async function xds(e,t,r){let n=Fu.ppath.join(e,`${Rds.default.randomBytes(16).toString("hex")}.tmp`);try{await Op.xfs.writeFilePromise(n,r);try{await Op.xfs.linkPromise(n,t)}catch{}}finally{await Op.xfs.unlinkPromise(n)}}async function nbl({srcPath:e,dstPath:t,entry:r,globalHardlinksStore:n,baseFs:a,nmMode:o}){if(r.kind===Ote.FILE){if(o.value===OO.HARDLINKS_GLOBAL&&n&&r.digest){let A=Fu.ppath.join(n,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),f;try{let I=await Op.xfs.statPromise(A);if(I&&(!r.mtimeMs||I.mtimeMs>r.mtimeMs||I.mtimeMs{await Op.xfs.mkdirPromise(e,{recursive:!0});let A=async(C=Fu.PortablePath.dot)=>{let b=Fu.ppath.join(t,C),E=await r.readdirPromise(b,{withFileTypes:!0}),N=new Map;for(let B of E){let F=Fu.ppath.join(C,B.name),Q,X=Fu.ppath.join(b,B.name);if(B.isFile()){if(Q={kind:Ote.FILE,mode:(await r.lstatPromise(X)).mode},a.value===OO.HARDLINKS_GLOBAL){let ae=await wds.hashUtils.checksumFile(X,{baseFs:r,algorithm:"sha1"});Q.digest=ae}}else if(B.isDirectory())Q={kind:Ote.DIRECTORY};else if(B.isSymbolicLink())Q={kind:Ote.SYMLINK,symlinkTo:await r.readlinkPromise(X)};else throw new Error(`Unsupported file type (file: ${X}, mode: 0o${await r.statSync(X).mode.toString(8).padStart(6,"0")})`);if(N.set(F,Q),B.isDirectory()&&F!==V2){let ae=await A(F);for(let[ne,ce]of ae)N.set(ne,ce)}}return N},f;if(a.value===OO.HARDLINKS_GLOBAL&&n&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);try{f=new Map(Object.entries(JSON.parse(await Op.xfs.readFilePromise(C,"utf8"))))}catch{f=await A()}}else f=await A();let I=!1;for(let[C,b]of f){let E=Fu.ppath.join(t,C),N=Fu.ppath.join(e,C);if(b.kind===Ote.DIRECTORY)await Op.xfs.mkdirPromise(N,{recursive:!0});else if(b.kind===Ote.FILE){let B=b.mtimeMs;await nbl({srcPath:E,dstPath:N,entry:b,nmMode:a,baseFs:r,globalHardlinksStore:n}),b.mtimeMs!==B&&(I=!0)}else b.kind===Ote.SYMLINK&&await sUr(Fu.ppath.resolve(Fu.ppath.dirname(N),b.symlinkTo),N,o)}if(a.value===OO.HARDLINKS_GLOBAL&&n&&I&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);await Op.xfs.removePromise(C),await xds(n,C,Buffer.from(JSON.stringify(Object.fromEntries(f))))}};function sbl(e,t,r,n){let a=new Map,o=new Map,l=new Map,A=!1,f=(I,C,b,E,N)=>{let B=!0,F=Fu.ppath.join(I,C),Q=new Set;if(C===V2||C.startsWith("@")){let ae;try{ae=Op.xfs.statSync(F)}catch{}B=!!ae,ae?ae.mtimeMs>r?(A=!0,Q=new Set(Op.xfs.readdirSync(F))):Q=new Set(b.children.get(C).children.keys()):A=!0;let ne=t.get(I);if(ne){let ce=Fu.ppath.join(I,V2,wGt),fe;try{fe=Op.xfs.statSync(ce)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ue=new Set(Op.xfs.readdirSync(ce)),de=new Map;o.set(I,de);for(let[be,Se]of ne)ue.has(be)&&de.set(be,Se)}else o.set(I,ne)}}else B=N.has(C);let X=b.children.get(C);if(B){let{linkType:ae,locator:ne}=X,ce={children:new Map,linkType:ae,locator:ne};if(E.children.set(C,ce),ne){let fe=rp.miscUtils.getSetWithDefault(l,ne);fe.add(F),l.set(ne,fe)}for(let fe of X.children.keys())f(F,fe,X,ce,Q)}else X.locator&&n.storedBuildState.delete(rp.structUtils.parseLocator(X.locator).locatorHash)};for(let[I,C]of e){let{linkType:b,locator:E}=C,N={children:new Map,linkType:b,locator:E};if(a.set(I,N),E){let B=rp.miscUtils.getSetWithDefault(l,C.locator);B.add(I),l.set(C.locator,B)}C.children.has(V2)&&f(I,V2,C,N,new Set)}return{locationTree:a,binSymlinks:o,locatorLocations:l,installChangedByUser:A}}function Gds(e){let t=rp.structUtils.parseDescriptor(e);return rp.structUtils.isVirtualDescriptor(t)&&(t=rp.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}async function obl(e,t,r,{loadManifest:n}){let a=new Map;for(let[A,{locations:f}]of e){let I=Gds(A)?null:await n(A,f[0]),C=new Map;if(I)for(let[b,E]of I.bin){let N=Fu.ppath.join(f[0],E);E!==""&&Op.xfs.existsSync(N)&&C.set(b,E)}a.set(A,C)}let o=new Map,l=(A,f,I)=>{let C=new Map,b=Fu.ppath.contains(r,A);if(I.locator&&b!==null){let E=a.get(I.locator);for(let[N,B]of E){let F=Fu.ppath.join(A,Fu.npath.toPortablePath(B));C.set(N,F)}for(let[N,B]of I.children){let F=Fu.ppath.join(A,N),Q=l(F,F,B);Q.size>0&&o.set(A,new Map([...o.get(A)||new Map,...Q]))}}else for(let[E,N]of I.children){let B=l(Fu.ppath.join(A,E),f,N);for(let[F,Q]of B)C.set(F,Q)}return C};for(let[A,f]of t){let I=l(A,A,f);I.size>0&&o.set(A,new Map([...o.get(A)||new Map,...I]))}return o}var Bds=(e,t)=>{if(!e||!t)return e===t;let r=rp.structUtils.parseLocator(e);rp.structUtils.isVirtualLocator(r)&&(r=rp.structUtils.devirtualizeLocator(r));let n=rp.structUtils.parseLocator(t);return rp.structUtils.isVirtualLocator(n)&&(n=rp.structUtils.devirtualizeLocator(n)),rp.structUtils.areLocatorsEqual(r,n)};function Fds(e){return Fu.ppath.join(e.get("globalFolder"),"store")}function abl(e,t){let r=n=>{let a=n.split(Fu.ppath.sep),o=a.lastIndexOf(V2);if(o<0||o==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${n}`);return a.slice(0,o+(a[o+1].startsWith("@")?3:2)).join(Fu.ppath.sep)};for(let n of e.values())for(let[a,o]of n)t.has(r(o))&&n.delete(a)}async function cbl(e,t,{baseFs:r,project:n,report:a,loadManifest:o,realLocatorChecksums:l}){let A=Fu.ppath.join(n.cwd,V2),{locationTree:f,binSymlinks:I,locatorLocations:C,installChangedByUser:b}=sbl(e.locationTree,e.binSymlinks,e.mtimeMs,n),E=kds(t,{skipPrefix:n.cwd}),N=[],B=async({srcDir:Se,dstDir:De,linkType:k,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})=>{let St=(async()=>{try{k===q4.LinkType.SOFT?(await Op.xfs.mkdirPromise(Fu.ppath.dirname(De),{recursive:!0}),await sUr(Fu.ppath.resolve(Se),De,Me)):await ibl(De,Se,{baseFs:r,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})}catch(At){throw At.message=`While persisting ${Se} -> ${De} ${At.message}`,At}finally{ce.tick()}})().then(()=>N.splice(N.indexOf(St),1));N.push(St),N.length>vds&&await Promise.race(N)},F=async(Se,De,k)=>{let et=(async()=>{let ct=async(Me,je,St)=>{try{St.innerLoop||await Op.xfs.mkdirPromise(je,{recursive:!0});let At=await Op.xfs.readdirPromise(Me,{withFileTypes:!0});for(let Yt of At){if(!St.innerLoop&&Yt.name===wGt)continue;let Tr=Fu.ppath.join(Me,Yt.name),Nr=Fu.ppath.join(je,Yt.name);Yt.isDirectory()?(Yt.name!==V2||St&&St.innerLoop)&&(await Op.xfs.mkdirPromise(Nr,{recursive:!0}),await ct(Tr,Nr,{...St,innerLoop:!0})):de.value===OO.HARDLINKS_LOCAL||de.value===OO.HARDLINKS_GLOBAL?await Op.xfs.linkPromise(Tr,Nr):await Op.xfs.copyFilePromise(Tr,Nr,$yl.default.constants.COPYFILE_FICLONE)}}catch(At){throw St.innerLoop||(At.message=`While cloning ${Me} -> ${je} ${At.message}`),At}finally{St.innerLoop||ce.tick()}};await ct(Se,De,k)})().then(()=>N.splice(N.indexOf(et),1));N.push(et),N.length>vds&&await Promise.race(N)},Q=async(Se,De,k)=>{if(k)for(let[et,ct]of De.children){let Me=k.children.get(et);await Q(Fu.ppath.join(Se,et),ct,Me)}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!1});let et=Fu.ppath.basename(Se)===V2&&f.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:Se===A,isWorkspaceDir:et})}};for(let[Se,De]of f){let k=E.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et),je=Fu.ppath.join(Se,et);await Q(je,ct,Me)}}let X=async(Se,De,k)=>{if(k){Bds(De.locator,k.locator)||await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD});for(let[et,ct]of De.children){let Me=k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!0});let et=Fu.ppath.basename(Se)===V2&&E.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD,isWorkspaceDir:et})}};for(let[Se,De]of E){let k=f.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}let ae=new Map,ne=[];for(let[Se,De]of C)for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=E.get(et),je=et;if(Me){for(let St of ct)if(je=Fu.ppath.join(je,St),Me=Me.children.get(St),!Me)break;if(Me){let St=Bds(Me.locator,Se),At=t.get(Me.locator),Yt=At.target,Tr=je,Nr=At.linkType;if(St)ae.has(Yt)||ae.set(Yt,Tr);else if(Yt!==Tr){let er=rp.structUtils.parseLocator(Me.locator);rp.structUtils.isVirtualLocator(er)&&(er=rp.structUtils.devirtualizeLocator(er)),ne.push({srcDir:Yt,dstDir:Tr,linkType:Nr,realLocatorHash:er.locatorHash})}}}}for(let[Se,{locations:De}]of t.entries())for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=f.get(et),je=E.get(et),St=et,At=t.get(Se),Yt=rp.structUtils.parseLocator(Se);rp.structUtils.isVirtualLocator(Yt)&&(Yt=rp.structUtils.devirtualizeLocator(Yt));let Tr=Yt.locatorHash,Nr=At.target,er=k;if(Nr===er)continue;let vt=At.linkType;for(let xt of ct)je=je.children.get(xt);if(!Me)ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});else for(let xt of ct)if(St=Fu.ppath.join(St,xt),Me=Me.children.get(xt),!Me){ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});break}}let ce=rp.Report.progressViaCounter(ne.length),fe=a.reportProgress(ce),ue=n.configuration.get("nmMode"),de={value:ue},be=n.configuration.get("winLinkType");try{let Se=de.value===OO.HARDLINKS_GLOBAL?`${Fds(n.configuration)}/v1`:null;if(Se&&!await Op.xfs.existsPromise(Se)){await Op.xfs.mkdirpPromise(Se);for(let k=0;k<256;k++)await Op.xfs.mkdirPromise(Fu.ppath.join(Se,k.toString(16).padStart(2,"0")))}for(let k of ne)(k.linkType===q4.LinkType.SOFT||!ae.has(k.srcDir))&&(ae.set(k.srcDir,k.dstDir),await B({...k,globalHardlinksStore:Se,nmMode:de,windowsLinkType:be,packageChecksum:l.get(k.realLocatorHash)||null}));await Promise.all(N),N.length=0;for(let k of ne){let et=ae.get(k.srcDir);k.linkType!==q4.LinkType.SOFT&&k.dstDir!==et&&await F(et,k.dstDir,{nmMode:de})}await Promise.all(N),await Op.xfs.mkdirPromise(A,{recursive:!0}),abl(I,new Set(ne.map(k=>k.dstDir)));let De=await obl(t,E,n.cwd,{loadManifest:o});await lbl(I,De,n.cwd,be),await rbl(n,t,De,de,{installChangedByUser:b}),ue==OO.HARDLINKS_GLOBAL&&de.value==OO.HARDLINKS_LOCAL&&a.reportWarningOnce(eUr.MessageName.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function lbl(e,t,r,n){for(let a of e.keys()){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!t.has(a)){let o=Fu.ppath.join(a,V2,wGt);await Op.xfs.removePromise(o)}}for(let[a,o]of t){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let l=Fu.ppath.join(a,V2,wGt),A=e.get(a)||new Map;await Op.xfs.mkdirPromise(l,{recursive:!0});for(let f of A.keys())o.has(f)||(await Op.xfs.removePromise(Fu.ppath.join(l,f)),process.platform==="win32"&&await Op.xfs.removePromise(Fu.ppath.join(l,`${f}.cmd`)));for(let[f,I]of o){let C=A.get(f),b=Fu.ppath.join(l,f);C!==I&&(process.platform==="win32"?await(0,qyl.default)(Fu.npath.fromPortablePath(I),Fu.npath.fromPortablePath(b),{createPwshFile:!1}):(await Op.xfs.removePromise(b),await sUr(I,b,n),Fu.ppath.contains(r,await Op.xfs.realpathPromise(I))!==null&&await Op.xfs.chmodPromise(I,493)))}}}});var Vds=H(RGt=>{"use strict";Object.defineProperty(RGt,"__esModule",{value:!0});RGt.PnpLooseLinker=void 0;var Zds=Bn(),c7e=no(),ubl=zK(),gbl=t7e(),Lds=mGe(),Abl=ZJr(),aUr=class extends Lds.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(t){return new cUr(t)}};RGt.PnpLooseLinker=aUr;var cUr=class extends Lds.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async transformPnpSettings(t){let r=new c7e.VirtualFS({baseFs:new ubl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),n=(0,Abl.makeRuntimeApi)(t,this.opts.project.cwd,r),{tree:a,errors:o}=(0,gbl.buildNodeModulesTree)(n,{pnpifyFs:!1,project:this.opts.project});if(!a){for(let{messageName:C,text:b}of o)this.opts.report.reportError(C,b);return}let l=new Map;t.fallbackPool=l;let A=(C,b)=>{let E=Zds.structUtils.parseLocator(b.locator),N=Zds.structUtils.stringifyIdent(E);N===C?l.set(C,E.reference):l.set(C,[N,E.reference])},f=c7e.ppath.join(this.opts.project.cwd,c7e.Filename.nodeModules),I=a.get(f);if(!(typeof I>"u")){if("target"in I)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of I.dirList){let b=c7e.ppath.join(f,C),E=a.get(b);if(typeof E>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in E)A(C,E);else for(let N of E.dirList){let B=c7e.ppath.join(b,N),F=a.get(B);if(typeof F>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in F)A(`${C}/${N}`,F);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}}});var Wds=H(Mte=>{"use strict";Object.defineProperty(Mte,"__esModule",{value:!0});Mte.PnpLooseLinker=Mte.NodeModulesMode=Mte.NodeModulesLinker=void 0;var lUr=Bn(),dbl=no(),NGt=t7e(),a0e=oUr();Object.defineProperty(Mte,"NodeModulesLinker",{enumerable:!0,get:function(){return a0e.NodeModulesLinker}});Object.defineProperty(Mte,"NodeModulesMode",{enumerable:!0,get:function(){return a0e.NodeModulesMode}});var pbl=oUr(),Pds=Vds();Object.defineProperty(Mte,"PnpLooseLinker",{enumerable:!0,get:function(){return Pds.PnpLooseLinker}});var fbl={hooks:{cleanGlobalArtifacts:async e=>{let t=(0,pbl.getGlobalHardlinksStore)(e);await dbl.xfs.removePromise(t)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:lUr.SettingsType.STRING,values:[NGt.NodeModulesHoistingLimits.WORKSPACES,NGt.NodeModulesHoistingLimits.DEPENDENCIES,NGt.NodeModulesHoistingLimits.NONE],default:NGt.NodeModulesHoistingLimits.NONE},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:lUr.SettingsType.STRING,values:[a0e.NodeModulesMode.CLASSIC,a0e.NodeModulesMode.HARDLINKS_LOCAL,a0e.NodeModulesMode.HARDLINKS_GLOBAL],default:a0e.NodeModulesMode.CLASSIC},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:lUr.SettingsType.BOOLEAN,default:!0}},linkers:[a0e.NodeModulesLinker,Pds.PnpLooseLinker]};Mte.default=fbl});var bGe=H(DGt=>{"use strict";Object.defineProperty(DGt,"__esModule",{value:!0});DGt.PROTOCOL=void 0;DGt.PROTOCOL="npm:"});var c0e=H(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});MO.RegistryType=void 0;MO.normalizeRegistry=EGe;MO.getAuditRegistry=mbl;MO.getPublishRegistry=Cbl;MO.getScopeRegistry=Ods;MO.getDefaultRegistry=l7e;MO.getRegistryConfiguration=Mds;MO.getScopeConfiguration=uUr;MO.getAuthConfiguration=ybl;MO.isPackageApproved=vbl;var Ibl=(Pa(),vi(Va)),kGt=Bn(),hbl=Ibl.__importDefault(Ek()),vue;(function(e){e.AUDIT_REGISTRY="npmAuditRegistry",e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"})(vue||(MO.RegistryType=vue={}));function EGe(e){return e.replace(/\/$/,"")}function mbl({configuration:e}){return l7e({configuration:e,type:vue.AUDIT_REGISTRY})}function Cbl(e,{configuration:t}){return e.publishConfig?.registry?EGe(e.publishConfig.registry):e.name?Ods(e.name.scope,{configuration:t,type:vue.PUBLISH_REGISTRY}):l7e({configuration:t,type:vue.PUBLISH_REGISTRY})}function Ods(e,{configuration:t,type:r=vue.FETCH_REGISTRY}){let n=uUr(e,{configuration:t});if(n===null)return l7e({configuration:t,type:r});let a=n.get(r);return a===null?l7e({configuration:t,type:r}):EGe(a)}function l7e({configuration:e,type:t=vue.FETCH_REGISTRY}){let r=e.get(t);return EGe(r!==null?r:e.get(vue.FETCH_REGISTRY))}function Mds(e,{configuration:t}){let r=t.get("npmRegistries"),n=EGe(e),a=r.get(n);if(typeof a<"u")return a;let o=r.get(n.replace(/^[a-z]+:/,""));return typeof o<"u"?o:null}var _bl=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function uUr(e,{configuration:t}){if(e===null)return null;let n=t.get("npmScopes").get(e);return n||(e==="jsr"?_bl:null)}function ybl(e,{configuration:t,ident:r}){let n=r&&uUr(r.scope,{configuration:t});return n?.get("npmAuthIdent")||n?.get("npmAuthToken")?n:Mds(e,{configuration:t})||t}function bbl({configuration:e,version:t,publishTimes:r}){let n=e.get("npmMinimalAgeGate");if(n){let a=r?.[t];if(typeof a>"u"||(new Date().getTime()-new Date(a).getTime())/60/1e3Ebl(t,r,n))}function vbl(e){return!bbl(e)||Sbl(e)}});var vGe=H(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});FH.AuthType=void 0;FH.handleInvalidAuthenticationError=wue;FH.customPackageError=Qds;FH.getIdentUrl=AUr;FH.getPackageMetadata=kbl;FH.get=Uds;FH.post=Lbl;FH.put=Vbl;FH.del=Pbl;var Yds=(Pa(),vi(Va)),ET=Bn(),Bue=Bn(),Hte=no(),Hds=Lje(),Bbl=kW(),wbl=Yds.__importDefault(UC()),gUr=Yds.__importStar(c0e()),GH;(function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(GH||(FH.AuthType=GH={}));async function wue(e,{attemptedAs:t,registry:r,headers:n,configuration:a}){if(GGt(e))throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,"Invalid OTP token");if(e.originalError?.name==="HTTPError"&&e.originalError?.response.statusCode===401)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,`Invalid authentication (${typeof t!="string"?`as ${await Obl(r,n,{configuration:a})}`:`attempted as ${t}`})`)}function Qds(e,t){let r=e.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ET.formatUtils.applyHyperlink(t,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function AUr(e){return e.scope?`/@${e.scope}%2f${e.name}`:`/${e.name}`}var Xds=new Map,Tbl=new Map;async function Rbl(e){return await ET.miscUtils.getFactoryWithDefault(Xds,e,async()=>{let t=null;try{t=await Hte.xfs.readJsonPromise(e)}catch{}return t})}async function Nbl(e,t,{configuration:r,cached:n,registry:a,headers:o,version:l,...A}){return await ET.miscUtils.getFactoryWithDefault(Tbl,e,async()=>await Uds(AUr(t),{...A,customErrorMessage:Qds,configuration:r,registry:a,ident:t,headers:{...o,"If-None-Match":n?.etag,"If-Modified-Since":n?.lastModified},wrapNetworkRequest:async f=>async()=>{let I=await f();if(I.statusCode===304){if(n===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...I,body:n.metadata}}let C=xbl(JSON.parse(I.body.toString())),b={metadata:C,etag:I.headers.etag,lastModified:I.headers["last-modified"]};return Xds.set(e,Promise.resolve(b)),Promise.resolve().then(async()=>{let E=`${e}-${process.pid}.tmp`;await Hte.xfs.mkdirPromise(Hte.ppath.dirname(E),{recursive:!0}),await Hte.xfs.writeJsonPromise(E,b,{compact:!0}),await Hte.xfs.renamePromise(E,e)}).catch(()=>{}),{...I,body:C}}}))}function Dbl(e){return e.scope!==null?`@${e.scope}-${e.name}-${e.scope.length}`:e.name}async function kbl(e,{cache:t,project:r,registry:n,headers:a,version:o,...l}){let{configuration:A}=r;n=u7e(A,{ident:e,registry:n});let f=Fbl(A,n),I=Hte.ppath.join(f,`${Dbl(e)}.json`),C=null;if(!r.lockfileNeedsRefresh&&(C=await Rbl(I),C)){if(typeof o<"u"&&typeof C.metadata.versions[o]<"u")return C.metadata;if(A.get("enableOfflineMode")){let b=structuredClone(C.metadata),E=new Set;if(t){for(let B of Object.keys(b.versions)){let F=ET.structUtils.makeLocator(e,`npm:${B}`),Q=t.getLocatorMirrorPath(F);(!Q||!Hte.xfs.existsSync(Q))&&(delete b.versions[B],E.add(B))}let N=b["dist-tags"].latest;if(E.has(N)){let B=Object.keys(C.metadata.versions).sort(wbl.default.compare),F=B.indexOf(N);for(;E.has(B[F])&&F>=0;)F-=1;F>=0?b["dist-tags"].latest=B[F]:delete b["dist-tags"].latest}}return b}}return await Nbl(I,e,{...l,configuration:A,cached:C,registry:n,headers:a,version:o})}var Jds=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function xbl(e){return{"dist-tags":e["dist-tags"],versions:Object.fromEntries(Object.entries(e.versions).map(([t,r])=>[t,(0,Bbl.pick)(r,Jds)])),time:e.time}}var Gbl=ET.hashUtils.makeHash("time",...Jds).slice(0,6);function Fbl(e,t){let r=Zbl(e),n=new URL(t);return Hte.ppath.join(r,Gbl,n.hostname)}function Zbl(e){return Hte.ppath.join(e.get("globalFolder"),"metadata/npm")}async function Uds(e,{configuration:t,headers:r,ident:n,authType:a,allowOidc:o,registry:l,...A}){l=u7e(t,{ident:n,registry:l}),n&&n.scope&&typeof a>"u"&&(a=GH.BEST_EFFORT);let f=await xGt(l,{authType:a,allowOidc:o,configuration:t,ident:n});f&&(r={...r,authorization:f});try{return await ET.httpUtils.get(e.charAt(0)==="/"?`${l}${e}`:e,{configuration:t,headers:r,...A})}catch(I){throw await wue(I,{registry:l,configuration:t,headers:r}),I}}async function Lbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.post(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E)||I)throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.post(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Vbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.put(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E))throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.put(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Pbl(e,{attemptedAs:t,configuration:r,headers:n,ident:a,authType:o=GH.ALWAYS_AUTH,allowOidc:l,registry:A,otp:f,...I}){A=u7e(r,{ident:a,registry:A});let C=await xGt(A,{authType:o,allowOidc:l,configuration:r,ident:a});C&&(n={...n,authorization:C}),f&&(n={...n,...SGe(f)});try{return await ET.httpUtils.del(A+e,{configuration:r,headers:n,...I})}catch(b){if(!GGt(b)||f)throw await wue(b,{attemptedAs:t,registry:A,configuration:r,headers:n}),b;f=await dUr(b,{configuration:r});let E={...n,...SGe(f)};try{return await ET.httpUtils.del(`${A}${e}`,{configuration:r,headers:E,...I})}catch(N){throw await wue(N,{attemptedAs:t,registry:A,configuration:r,headers:n}),N}}}function u7e(e,{ident:t,registry:r}){if(typeof r>"u"&&t)return gUr.getScopeRegistry(t.scope,{configuration:e});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return gUr.normalizeRegistry(r)}async function xGt(e,{authType:t=GH.CONFIGURATION,allowOidc:r=!1,configuration:n,ident:a}){let o=gUr.getAuthConfiguration(e,{configuration:n,ident:a}),l=Wbl(o,t);if(!l)return null;let A=await n.reduceHook(f=>f.getNpmAuthenticationHeader,void 0,e,{configuration:n,ident:a});if(A)return A;if(o.get("npmAuthToken"))return`Bearer ${o.get("npmAuthToken")}`;if(o.get("npmAuthIdent")){let f=o.get("npmAuthIdent");return f.includes(":")?`Basic ${Buffer.from(f).toString("base64")}`:`Basic ${f}`}if(r&&a){let f=await Mbl(e,{configuration:n,ident:a});if(f)return`Bearer ${f}`}if(l&&t!==GH.BEST_EFFORT)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function Wbl(e,t){switch(t){case GH.CONFIGURATION:return e.get("npmAlwaysAuth");case GH.BEST_EFFORT:case GH.ALWAYS_AUTH:return!0;case GH.NO_AUTH:return!1;default:throw new Error("Unreachable")}}async function Obl(e,t,{configuration:r}){if(typeof t>"u"||typeof t.authorization>"u")return"an anonymous user";try{return(await ET.httpUtils.get(new URL(`${e}/-/whoami`).href,{configuration:r,headers:t,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function dUr(e,{configuration:t}){let r=e.originalError?.response.headers["npm-notice"];if(r&&(await ET.StreamReport.start({configuration:t,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(Bue.MessageName.UNNAMED,r.replace(/(https?:\/\/\S+)/g,ET.formatUtils.pretty(t,"$1",ET.formatUtils.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=r.match(/open (https?:\/\/\S+)/i);if(o&&ET.nodeUtils.openUrl){let{openNow:l}=await(0,Hds.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});l&&(await ET.nodeUtils.openUrl(o[1])||(a.reportSeparator(),a.reportWarning(Bue.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:n}=await(0,Hds.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),n}function GGt(e){if(e.originalError?.name!=="HTTPError")return!1;try{return(e.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function SGe(e){return{"npm-otp":e}}async function Obl(e,{configuration:t,ident:r}){let n=null;if(process.env.GITLAB_CI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(e).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,o=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);o.searchParams.append("audience",a),n=(await ET.httpUtils.get(o.href,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!n)return null;try{return(await ET.httpUtils.post(`${e}/-/npm/v1/oidc/token/exchange/package${AUr(r)}`,null,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${n}`}})).token||null}catch{}return null}});var zds=H(FGt=>{"use strict";Object.defineProperty(FGt,"__esModule",{value:!0});FGt.NpmHttpFetcher=void 0;var jds=(Pa(),vi(Va)),BGe=Bn(),Mbl=jds.__importDefault(UC()),Hbl=bGe(),Kds=jds.__importStar(vGe()),pUr=class{supports(t,r){if(!t.reference.startsWith(Hbl.PROTOCOL))return!1;let{selector:n,params:a}=BGe.structUtils.parseRange(t.reference);return!(!Mbl.default.valid(n)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${BGe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:BGe.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let{params:n}=BGe.structUtils.parseRange(t.reference);if(n===null||typeof n.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Kds.get(n.__archiveUrl,{customErrorMessage:Kds.customPackageError,configuration:r.project.configuration,ident:t});return await BGe.tgzUtils.convertToZip(a,{configuration:r.project.configuration,prefixPath:BGe.structUtils.getIdentVendorPath(t),stripComponents:1})}};FGt.NpmHttpFetcher=pUr});var qds=H(LGt=>{"use strict";Object.defineProperty(LGt,"__esModule",{value:!0});LGt.NpmRemapResolver=void 0;var ZGt=Bn(),g7e=bGe(),fUr=class{supportsDescriptor(t,r){return!(!t.range.startsWith(g7e.PROTOCOL)||!ZGt.structUtils.tryParseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){let n=r.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return r.resolver.getResolutionDependencies(n,r)}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return await n.resolver.getCandidates(a,r,n)}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return a.resolver.getSatisfying(o,r,n,a)}resolve(t,r){throw new Error("Unreachable")}};LGt.NpmRemapResolver=fUr});var PGt=H(VGt=>{"use strict";Object.defineProperty(VGt,"__esModule",{value:!0});VGt.NpmSemverFetcher=void 0;var hUr=(Pa(),vi(Va)),A7e=Bn(),$ds=Bn(),Ybl=hUr.__importDefault(UC()),eps=bGe(),Qbl=hUr.__importStar(c0e()),d7e=hUr.__importStar(vGe()),IUr=class e{supports(t,r){if(!t.reference.startsWith(eps.PROTOCOL))return!1;let n=new URL(t.reference);return!(!Ybl.default.valid(n.pathname)||n.searchParams.has("__archiveUrl"))}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${A7e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:A7e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n;try{n=await d7e.get(e.getLocatorUrl(t),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}catch{n=await d7e.get(e.getLocatorUrl(t).replace(/%2f/g,"/"),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}return await A7e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:A7e.structUtils.getIdentVendorPath(t),stripComponents:1})}static isConventionalTarballUrl(t,r,{configuration:n}){let a=Qbl.getScopeRegistry(t.scope,{configuration:n}),o=e.getLocatorUrl(t);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+o||r===a+o.replace(/%2f/g,"/")}static getLocatorUrl(t){let r=A7e.semverUtils.clean(t.reference.slice(eps.PROTOCOL.length));if(r===null)throw new $ds.ReportError($ds.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${d7e.getIdentUrl(t)}/-/${t.name}-${r}.tgz`}};VGt.NpmSemverFetcher=IUr});var ips=H(OGt=>{"use strict";Object.defineProperty(OGt,"__esModule",{value:!0});OGt.NpmSemverResolver=void 0;var nps=(Pa(),vi(Va)),uL=Bn(),wGe=Bn(),Xbl=Bn(),l0e=Bn(),tps=nps.__importDefault(UC()),Jbl=PGt(),I6=bGe(),Ubl=c0e(),rps=nps.__importStar(vGe()),WGt=l0e.structUtils.makeIdent(null,"node-gyp"),Kbl=/\b(node-gyp|prebuild-install)\b/,mUr=class{supportsDescriptor(t,r){return t.range.startsWith(I6.PROTOCOL)?!!wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length)):!1}supportsLocator(t,r){if(!t.reference.startsWith(I6.PROTOCOL))return!1;let{selector:n}=l0e.structUtils.parseRange(t.reference);return!!tps.default.valid(n)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(a===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);let o=await rps.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project,version:tps.default.valid(a.raw)?a.raw:void 0}),l=uL.miscUtils.mapAndFilter(Object.keys(o.versions),C=>{try{let b=new wGe.semverUtils.SemVer(C);if(a.test(b))return b}catch{}return uL.miscUtils.mapAndFilter.skip}),A=l.filter(C=>(0,Ubl.isPackageApproved)({configuration:n.project.configuration,ident:t,version:C.raw,publishTimes:o.time}));if(l.length>0&&A.length===0)throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`All versions satisfying "${t.range.slice(I6.PROTOCOL.length)}" are quarantined`);let f=A.filter(C=>!o.versions[C.raw].deprecated),I=f.length>0?f:A;return I.sort((C,b)=>-C.compare(b)),I.map(C=>{let b=l0e.structUtils.makeLocator(t,`${I6.PROTOCOL}${C.raw}`),E=o.versions[C.raw].dist.tarball;return Jbl.NpmSemverFetcher.isConventionalTarballUrl(b,E,{configuration:n.project.configuration})?b:l0e.structUtils.bindLocator(b,{__archiveUrl:E})})}async getSatisfying(t,r,n,a){let o=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(o===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);return{locators:uL.miscUtils.mapAndFilter(n,f=>{if(f.identHash!==t.identHash)return uL.miscUtils.mapAndFilter.skip;let I=l0e.structUtils.tryParseRange(f.reference,{requireProtocol:I6.PROTOCOL});if(!I)return uL.miscUtils.mapAndFilter.skip;let C=new wGe.semverUtils.SemVer(I.selector);return o.test(C)?{locator:f,version:C}:uL.miscUtils.mapAndFilter.skip}).sort((f,I)=>-f.version.compare(I.version)).map(({locator:f})=>f),sorted:!0}}async resolve(t,r){let{selector:n}=l0e.structUtils.parseRange(t.reference),a=wGe.semverUtils.clean(n);if(a===null)throw new uL.ReportError(uL.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let o=await rps.getPackageMetadata(t,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(o,"versions"))throw new uL.ReportError(uL.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(o.versions,a))throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`Registry failed to return reference "${a}"`);let l=new uL.Manifest;if(l.load(o.versions[a]),!l.dependencies.has(WGt.identHash)&&!l.peerDependencies.has(WGt.identHash)){for(let A of l.scripts.values())if(A.match(Kbl)){l.dependencies.set(WGt.identHash,l0e.structUtils.makeDescriptor(WGt,"latest"));break}}return{...t,version:a,languageName:"node",linkType:Xbl.LinkType.HARD,conditions:l.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(l.dependencies),peerDependencies:l.peerDependencies,dependenciesMeta:l.dependenciesMeta,peerDependenciesMeta:l.peerDependenciesMeta,bin:l.bin}}};OGt.NpmSemverResolver=mUr});var aps=H(MGt=>{"use strict";Object.defineProperty(MGt,"__esModule",{value:!0});MGt.NpmTagResolver=void 0;var ops=(Pa(),vi(Va)),u0e=Bn(),p7e=Bn(),CUr=ops.__importDefault(UC()),jbl=PGt(),TGe=bGe(),sps=c0e(),zbl=ops.__importStar(vGe()),_Ur=class{supportsDescriptor(t,r){return!(!t.range.startsWith(TGe.PROTOCOL)||!u0e.TAG_REGEXP.test(t.range.slice(TGe.PROTOCOL.length)))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(TGe.PROTOCOL.length),o=await zbl.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project});if(!Object.hasOwn(o,"dist-tags"))throw new u0e.ReportError(u0e.MessageName.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let l=o["dist-tags"];if(!Object.hasOwn(l,a))throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`Registry failed to return tag "${a}"`);let A=Object.keys(o.versions),f=o.time,I=l[a];if(a==="latest"&&!(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:I,publishTimes:f})){let E=I.includes("-"),N=CUr.default.rsort(A).find(B=>CUr.default.lt(B,I)&&(E||!B.includes("-"))&&(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:B,publishTimes:f}));if(!N)throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`The version for tag "${a}" is quarantined, and no lower version is available`);I=N}let C=p7e.structUtils.makeLocator(t,`${TGe.PROTOCOL}${I}`),b=o.versions[I].dist.tarball;return jbl.NpmSemverFetcher.isConventionalTarballUrl(C,b,{configuration:n.project.configuration})?[C]:[p7e.structUtils.bindLocator(C,{__archiveUrl:b})]}async getSatisfying(t,r,n,a){let o=[];for(let l of n){if(l.identHash!==t.identHash)continue;let A=p7e.structUtils.tryParseRange(l.reference,{requireProtocol:TGe.PROTOCOL});if(!(!A||!CUr.default.valid(A.selector))){if(A.params?.__archiveUrl){let f=p7e.structUtils.makeRange({protocol:TGe.PROTOCOL,selector:A.selector,source:null,params:null}),[I]=await a.resolver.getCandidates(p7e.structUtils.makeDescriptor(t,f),r,a);if(l.reference!==I.reference)continue}o.push(l)}}return{locators:o,sorted:!1}}async resolve(t,r){throw new Error("Unreachable")}};MGt.NpmTagResolver=_Ur});var rF=H(AL=>{"use strict";var qbl=AL&&AL.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AL,"__esModule",{value:!0});AL.Minipass=AL.isWritable=AL.isReadable=AL.isStream=void 0;var cps=typeof process=="object"&&process?process:{stdout:null,stderr:null},wUr=wt("node:events"),Aps=qbl(wt("node:stream")),$bl=wt("node:string_decoder"),eEl=e=>!!e&&typeof e=="object"&&(e instanceof KGt||e instanceof Aps.default||(0,AL.isReadable)(e)||(0,AL.isWritable)(e));AL.isStream=eEl;var tEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Aps.default.Writable.prototype.pipe;AL.isReadable=tEl;var rEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function";AL.isWritable=rEl;var Yte=Symbol("EOF"),Qte=Symbol("maybeEmitEnd"),Tue=Symbol("emittedEnd"),HGt=Symbol("emittingEnd"),f7e=Symbol("emittedError"),YGt=Symbol("closed"),lps=Symbol("read"),QGt=Symbol("flush"),ups=Symbol("flushChunk"),$4=Symbol("encoding"),RGe=Symbol("decoder"),yD=Symbol("flowing"),I7e=Symbol("paused"),NGe=Symbol("resume"),bD=Symbol("buffer"),gL=Symbol("pipes"),ED=Symbol("bufferLength"),yUr=Symbol("bufferPush"),XGt=Symbol("bufferShift"),tF=Symbol("objectMode"),gw=Symbol("destroyed"),bUr=Symbol("error"),EUr=Symbol("emitData"),gps=Symbol("emitEnd"),SUr=Symbol("emitEnd2"),h6=Symbol("async"),vUr=Symbol("abort"),JGt=Symbol("aborted"),h7e=Symbol("signal"),g0e=Symbol("dataListeners"),HO=Symbol("discarded"),m7e=e=>Promise.resolve().then(e),nEl=e=>e(),iEl=e=>e==="end"||e==="finish"||e==="prefinish",sEl=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,oEl=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),UGt=class{src;dest;opts;ondrain;constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[NGe](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},BUr=class extends UGt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}},aEl=e=>!!e.objectMode,cEl=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",KGt=class extends wUr.EventEmitter{[yD]=!1;[I7e]=!1;[gL]=[];[bD]=[];[tF];[$4];[h6];[RGe];[Yte]=!1;[Tue]=!1;[HGt]=!1;[YGt]=!1;[f7e]=null;[ED]=0;[gw]=!1;[h7e];[JGt]=!1;[g0e]=0;[HO]=!1;writable=!0;readable=!0;constructor(...t){let r=t[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");aEl(r)?(this[tF]=!0,this[$4]=null):cEl(r)?(this[$4]=r.encoding,this[tF]=!1):(this[tF]=!1,this[$4]=null),this[h6]=!!r.async,this[RGe]=this[$4]?new $bl.StringDecoder(this[$4]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[bD]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[gL]});let{signal:n}=r;n&&(this[h7e]=n,n.aborted?this[vUr]():n.addEventListener("abort",()=>this[vUr]()))}get bufferLength(){return this[ED]}get encoding(){return this[$4]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[tF]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[h6]}set async(t){this[h6]=this[h6]||!!t}[vUr](){this[JGt]=!0,this.emit("abort",this[h7e]?.reason),this.destroy(this[h7e]?.reason)}get aborted(){return this[JGt]}set aborted(t){}write(t,r,n){if(this[JGt])return!1;if(this[Yte])throw new Error("write after end");if(this[gw])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[h6]?m7e:nEl;if(!this[tF]&&!Buffer.isBuffer(t)){if(oEl(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(sEl(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[tF]?(this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):t.length?(typeof t=="string"&&!(r===this[$4]&&!this[RGe]?.lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[$4]&&(t=this[RGe].write(t)),this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):(this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD])}read(t){if(this[gw])return null;if(this[HO]=!1,this[ED]===0||t===0||t&&t>this[ED])return this[Qte](),null;this[tF]&&(t=null),this[bD].length>1&&!this[tF]&&(this[bD]=[this[$4]?this[bD].join(""):Buffer.concat(this[bD],this[ED])]);let r=this[lps](t||null,this[bD][0]);return this[Qte](),r}[lps](t,r){if(this[tF])this[XGt]();else{let n=r;t===n.length||t===null?this[XGt]():typeof n=="string"?(this[bD][0]=n.slice(t),r=n.slice(0,t),this[ED]-=t):(this[bD][0]=n.subarray(t),r=n.subarray(0,t),this[ED]-=t)}return this.emit("data",r),!this[bD].length&&!this[Yte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r="utf8"),t!==void 0&&this.write(t,r),n&&this.once("end",n),this[Yte]=!0,this.writable=!1,(this[yD]||!this[I7e])&&this[Qte](),this}[NGe](){this[gw]||(!this[g0e]&&!this[gL].length&&(this[HO]=!0),this[I7e]=!1,this[yD]=!0,this.emit("resume"),this[bD].length?this[QGt]():this[Yte]?this[Qte]():this.emit("drain"))}resume(){return this[NGe]()}pause(){this[yD]=!1,this[I7e]=!0,this[HO]=!1}get destroyed(){return this[gw]}get flowing(){return this[yD]}get paused(){return this[I7e]}[yUr](t){this[tF]?this[ED]+=1:this[ED]+=t.length,this[bD].push(t)}[XGt](){return this[tF]?this[ED]-=1:this[ED]-=this[bD][0].length,this[bD].shift()}[QGt](t=!1){do;while(this[ups](this[XGt]())&&this[bD].length);!t&&!this[bD].length&&!this[Yte]&&this.emit("drain")}[ups](t){return this.emit("data",t),this[yD]}pipe(t,r){if(this[gw])return t;this[HO]=!1;let n=this[Tue];return r=r||{},t===cps.stdout||t===cps.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this[gL].push(r.proxyErrors?new BUr(this,t,r):new UGt(this,t,r)),this[h6]?m7e(()=>this[NGe]()):this[NGe]()),t}unpipe(t){let r=this[gL].find(n=>n.dest===t);r&&(this[gL].length===1?(this[yD]&&this[g0e]===0&&(this[yD]=!1),this[gL]=[]):this[gL].splice(this[gL].indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);if(t==="data")this[HO]=!1,this[g0e]++,!this[gL].length&&!this[yD]&&this[NGe]();else if(t==="readable"&&this[ED]!==0)super.emit("readable");else if(iEl(t)&&this[Tue])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[f7e]){let a=r;this[h6]?m7e(()=>a.call(this,this[f7e])):a.call(this,this[f7e])}return n}removeListener(t,r){return this.off(t,r)}off(t,r){let n=super.off(t,r);return t==="data"&&(this[g0e]=this.listeners("data").length,this[g0e]===0&&!this[HO]&&!this[gL].length&&(this[yD]=!1)),n}removeAllListeners(t){let r=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[g0e]=0,!this[HO]&&!this[gL].length&&(this[yD]=!1)),r}get emittedEnd(){return this[Tue]}[Qte](){!this[HGt]&&!this[Tue]&&!this[gw]&&this[bD].length===0&&this[Yte]&&(this[HGt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[YGt]&&this.emit("close"),this[HGt]=!1)}emit(t,...r){let n=r[0];if(t!=="error"&&t!=="close"&&t!==gw&&this[gw])return!1;if(t==="data")return!this[tF]&&!n?!1:this[h6]?(m7e(()=>this[EUr](n)),!0):this[EUr](n);if(t==="end")return this[gps]();if(t==="close"){if(this[YGt]=!0,!this[Tue]&&!this[gw])return!1;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[f7e]=n,super.emit(bUr,n);let o=!this[h7e]||this.listeners("error").length?super.emit("error",n):!1;return this[Qte](),o}else if(t==="resume"){let o=super.emit("resume");return this[Qte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,...r);return this[Qte](),a}[EUr](t){for(let n of this[gL])n.dest.write(t)===!1&&this.pause();let r=this[HO]?!1:super.emit("data",t);return this[Qte](),r}[gps](){return this[Tue]?!1:(this[Tue]=!0,this.readable=!1,this[h6]?(m7e(()=>this[SUr]()),!0):this[SUr]())}[SUr](){if(this[RGe]){let r=this[RGe].end();if(r){for(let n of this[gL])n.dest.write(r);this[HO]||super.emit("data",r)}}for(let r of this[gL])r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[tF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[tF]||(t.dataLength+=n.length)}),await r,t}async concat(){if(this[tF])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[$4]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,r)=>{this.on(gw,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[HO]=!1;let t=!1,r=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[Yte])return r();let o,l,A=b=>{this.off("data",f),this.off("end",I),this.off(gw,C),r(),l(b)},f=b=>{this.off("error",A),this.off("end",I),this.off(gw,C),this.pause(),o({value:b,done:!!this[Yte]})},I=()=>{this.off("error",A),this.off("data",f),this.off(gw,C),r(),o({done:!0,value:void 0})},C=()=>A(new Error("stream destroyed"));return new Promise((b,E)=>{l=E,o=b,this.once(gw,C),this.once("error",A),this.once("end",I),this.once("data",f)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HO]=!1;let t=!1,r=()=>(this.pause(),this.off(bUr,r),this.off(gw,r),this.off("end",r),t=!0,{done:!0,value:void 0}),n=()=>{if(t)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(bUr,r),this.once(gw,r),{next:n,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(t){if(this[gw])return t?this.emit("error",t):this.emit(gw),this;this[gw]=!0,this[HO]=!0,this[bD].length=0,this[ED]=0;let r=this;return typeof r.close=="function"&&!this[YGt]&&r.close(),t?this.emit("error",t):this.emit(gw),this}static get isStream(){return AL.isStream}};AL.Minipass=KGt});var Jte=H((Org,m6)=>{"use strict";var _7e=wt("crypto"),{Minipass:lEl}=rF(),RUr=["sha512","sha384","sha256"],DUr=["sha512"],uEl=/^[a-z0-9+/]+(?:=?=?)$/i,gEl=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,AEl=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,dEl=/^[\x21-\x7E]+$/,y7e=e=>e?.length?`?${e.join("?")}`:"",NUr=class extends lEl{#e;#t;#n;constructor(t){super(),this.size=0,this.opts=t,this.#r(),t?.algorithms?this.algorithms=[...t.algorithms]:this.algorithms=[...DUr],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(_7e.createHash)}#r(){this.sri=this.opts?.integrity?YO(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=y7e(this.opts?.options)}on(t,r){return t==="size"&&this.#t?r(this.#t):t==="integrity"&&this.#e?r(this.#e):t==="verified"&&this.#n?r(this.#n):super.on(t,r)}emit(t,r){return t==="end"&&this.#i(),super.emit(t,r)}write(t){return this.size+=t.length,this.hashes.forEach(r=>r.update(t)),super.write(t)}#i(){this.goodSri||this.#r();let t=YO(this.hashes.map((n,a)=>`${this.algorithms[a]}-${n.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&t.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let n=new Error(`stream size mismatch when checking ${this.sri}. +`),n}function GGt(e){if(e.originalError?.name!=="HTTPError")return!1;try{return(e.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function SGe(e){return{"npm-otp":e}}async function Mbl(e,{configuration:t,ident:r}){let n=null;if(process.env.GITLAB_CI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(e).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,o=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);o.searchParams.append("audience",a),n=(await ET.httpUtils.get(o.href,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!n)return null;try{return(await ET.httpUtils.post(`${e}/-/npm/v1/oidc/token/exchange/package${AUr(r)}`,null,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${n}`}})).token||null}catch{}return null}});var zds=H(FGt=>{"use strict";Object.defineProperty(FGt,"__esModule",{value:!0});FGt.NpmHttpFetcher=void 0;var jds=(Pa(),vi(Va)),BGe=Bn(),Hbl=jds.__importDefault(UC()),Ybl=bGe(),Kds=jds.__importStar(vGe()),pUr=class{supports(t,r){if(!t.reference.startsWith(Ybl.PROTOCOL))return!1;let{selector:n,params:a}=BGe.structUtils.parseRange(t.reference);return!(!Hbl.default.valid(n)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${BGe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:BGe.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let{params:n}=BGe.structUtils.parseRange(t.reference);if(n===null||typeof n.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Kds.get(n.__archiveUrl,{customErrorMessage:Kds.customPackageError,configuration:r.project.configuration,ident:t});return await BGe.tgzUtils.convertToZip(a,{configuration:r.project.configuration,prefixPath:BGe.structUtils.getIdentVendorPath(t),stripComponents:1})}};FGt.NpmHttpFetcher=pUr});var qds=H(LGt=>{"use strict";Object.defineProperty(LGt,"__esModule",{value:!0});LGt.NpmRemapResolver=void 0;var ZGt=Bn(),g7e=bGe(),fUr=class{supportsDescriptor(t,r){return!(!t.range.startsWith(g7e.PROTOCOL)||!ZGt.structUtils.tryParseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){let n=r.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return r.resolver.getResolutionDependencies(n,r)}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return await n.resolver.getCandidates(a,r,n)}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return a.resolver.getSatisfying(o,r,n,a)}resolve(t,r){throw new Error("Unreachable")}};LGt.NpmRemapResolver=fUr});var PGt=H(VGt=>{"use strict";Object.defineProperty(VGt,"__esModule",{value:!0});VGt.NpmSemverFetcher=void 0;var hUr=(Pa(),vi(Va)),A7e=Bn(),$ds=Bn(),Qbl=hUr.__importDefault(UC()),eps=bGe(),Xbl=hUr.__importStar(c0e()),d7e=hUr.__importStar(vGe()),IUr=class e{supports(t,r){if(!t.reference.startsWith(eps.PROTOCOL))return!1;let n=new URL(t.reference);return!(!Qbl.default.valid(n.pathname)||n.searchParams.has("__archiveUrl"))}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${A7e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:A7e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n;try{n=await d7e.get(e.getLocatorUrl(t),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}catch{n=await d7e.get(e.getLocatorUrl(t).replace(/%2f/g,"/"),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}return await A7e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:A7e.structUtils.getIdentVendorPath(t),stripComponents:1})}static isConventionalTarballUrl(t,r,{configuration:n}){let a=Xbl.getScopeRegistry(t.scope,{configuration:n}),o=e.getLocatorUrl(t);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+o||r===a+o.replace(/%2f/g,"/")}static getLocatorUrl(t){let r=A7e.semverUtils.clean(t.reference.slice(eps.PROTOCOL.length));if(r===null)throw new $ds.ReportError($ds.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${d7e.getIdentUrl(t)}/-/${t.name}-${r}.tgz`}};VGt.NpmSemverFetcher=IUr});var ips=H(OGt=>{"use strict";Object.defineProperty(OGt,"__esModule",{value:!0});OGt.NpmSemverResolver=void 0;var nps=(Pa(),vi(Va)),uL=Bn(),wGe=Bn(),Jbl=Bn(),l0e=Bn(),tps=nps.__importDefault(UC()),Ubl=PGt(),I6=bGe(),Kbl=c0e(),rps=nps.__importStar(vGe()),WGt=l0e.structUtils.makeIdent(null,"node-gyp"),jbl=/\b(node-gyp|prebuild-install)\b/,mUr=class{supportsDescriptor(t,r){return t.range.startsWith(I6.PROTOCOL)?!!wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length)):!1}supportsLocator(t,r){if(!t.reference.startsWith(I6.PROTOCOL))return!1;let{selector:n}=l0e.structUtils.parseRange(t.reference);return!!tps.default.valid(n)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(a===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);let o=await rps.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project,version:tps.default.valid(a.raw)?a.raw:void 0}),l=uL.miscUtils.mapAndFilter(Object.keys(o.versions),C=>{try{let b=new wGe.semverUtils.SemVer(C);if(a.test(b))return b}catch{}return uL.miscUtils.mapAndFilter.skip}),A=l.filter(C=>(0,Kbl.isPackageApproved)({configuration:n.project.configuration,ident:t,version:C.raw,publishTimes:o.time}));if(l.length>0&&A.length===0)throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`All versions satisfying "${t.range.slice(I6.PROTOCOL.length)}" are quarantined`);let f=A.filter(C=>!o.versions[C.raw].deprecated),I=f.length>0?f:A;return I.sort((C,b)=>-C.compare(b)),I.map(C=>{let b=l0e.structUtils.makeLocator(t,`${I6.PROTOCOL}${C.raw}`),E=o.versions[C.raw].dist.tarball;return Ubl.NpmSemverFetcher.isConventionalTarballUrl(b,E,{configuration:n.project.configuration})?b:l0e.structUtils.bindLocator(b,{__archiveUrl:E})})}async getSatisfying(t,r,n,a){let o=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(o===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);return{locators:uL.miscUtils.mapAndFilter(n,f=>{if(f.identHash!==t.identHash)return uL.miscUtils.mapAndFilter.skip;let I=l0e.structUtils.tryParseRange(f.reference,{requireProtocol:I6.PROTOCOL});if(!I)return uL.miscUtils.mapAndFilter.skip;let C=new wGe.semverUtils.SemVer(I.selector);return o.test(C)?{locator:f,version:C}:uL.miscUtils.mapAndFilter.skip}).sort((f,I)=>-f.version.compare(I.version)).map(({locator:f})=>f),sorted:!0}}async resolve(t,r){let{selector:n}=l0e.structUtils.parseRange(t.reference),a=wGe.semverUtils.clean(n);if(a===null)throw new uL.ReportError(uL.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let o=await rps.getPackageMetadata(t,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(o,"versions"))throw new uL.ReportError(uL.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(o.versions,a))throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`Registry failed to return reference "${a}"`);let l=new uL.Manifest;if(l.load(o.versions[a]),!l.dependencies.has(WGt.identHash)&&!l.peerDependencies.has(WGt.identHash)){for(let A of l.scripts.values())if(A.match(jbl)){l.dependencies.set(WGt.identHash,l0e.structUtils.makeDescriptor(WGt,"latest"));break}}return{...t,version:a,languageName:"node",linkType:Jbl.LinkType.HARD,conditions:l.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(l.dependencies),peerDependencies:l.peerDependencies,dependenciesMeta:l.dependenciesMeta,peerDependenciesMeta:l.peerDependenciesMeta,bin:l.bin}}};OGt.NpmSemverResolver=mUr});var aps=H(MGt=>{"use strict";Object.defineProperty(MGt,"__esModule",{value:!0});MGt.NpmTagResolver=void 0;var ops=(Pa(),vi(Va)),u0e=Bn(),p7e=Bn(),CUr=ops.__importDefault(UC()),zbl=PGt(),TGe=bGe(),sps=c0e(),qbl=ops.__importStar(vGe()),_Ur=class{supportsDescriptor(t,r){return!(!t.range.startsWith(TGe.PROTOCOL)||!u0e.TAG_REGEXP.test(t.range.slice(TGe.PROTOCOL.length)))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(TGe.PROTOCOL.length),o=await qbl.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project});if(!Object.hasOwn(o,"dist-tags"))throw new u0e.ReportError(u0e.MessageName.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let l=o["dist-tags"];if(!Object.hasOwn(l,a))throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`Registry failed to return tag "${a}"`);let A=Object.keys(o.versions),f=o.time,I=l[a];if(a==="latest"&&!(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:I,publishTimes:f})){let E=I.includes("-"),N=CUr.default.rsort(A).find(B=>CUr.default.lt(B,I)&&(E||!B.includes("-"))&&(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:B,publishTimes:f}));if(!N)throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`The version for tag "${a}" is quarantined, and no lower version is available`);I=N}let C=p7e.structUtils.makeLocator(t,`${TGe.PROTOCOL}${I}`),b=o.versions[I].dist.tarball;return zbl.NpmSemverFetcher.isConventionalTarballUrl(C,b,{configuration:n.project.configuration})?[C]:[p7e.structUtils.bindLocator(C,{__archiveUrl:b})]}async getSatisfying(t,r,n,a){let o=[];for(let l of n){if(l.identHash!==t.identHash)continue;let A=p7e.structUtils.tryParseRange(l.reference,{requireProtocol:TGe.PROTOCOL});if(!(!A||!CUr.default.valid(A.selector))){if(A.params?.__archiveUrl){let f=p7e.structUtils.makeRange({protocol:TGe.PROTOCOL,selector:A.selector,source:null,params:null}),[I]=await a.resolver.getCandidates(p7e.structUtils.makeDescriptor(t,f),r,a);if(l.reference!==I.reference)continue}o.push(l)}}return{locators:o,sorted:!1}}async resolve(t,r){throw new Error("Unreachable")}};MGt.NpmTagResolver=_Ur});var rF=H(AL=>{"use strict";var $bl=AL&&AL.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AL,"__esModule",{value:!0});AL.Minipass=AL.isWritable=AL.isReadable=AL.isStream=void 0;var cps=typeof process=="object"&&process?process:{stdout:null,stderr:null},wUr=wt("node:events"),Aps=$bl(wt("node:stream")),eEl=wt("node:string_decoder"),tEl=e=>!!e&&typeof e=="object"&&(e instanceof KGt||e instanceof Aps.default||(0,AL.isReadable)(e)||(0,AL.isWritable)(e));AL.isStream=tEl;var rEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Aps.default.Writable.prototype.pipe;AL.isReadable=rEl;var nEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function";AL.isWritable=nEl;var Yte=Symbol("EOF"),Qte=Symbol("maybeEmitEnd"),Tue=Symbol("emittedEnd"),HGt=Symbol("emittingEnd"),f7e=Symbol("emittedError"),YGt=Symbol("closed"),lps=Symbol("read"),QGt=Symbol("flush"),ups=Symbol("flushChunk"),$4=Symbol("encoding"),RGe=Symbol("decoder"),yD=Symbol("flowing"),I7e=Symbol("paused"),NGe=Symbol("resume"),bD=Symbol("buffer"),gL=Symbol("pipes"),ED=Symbol("bufferLength"),yUr=Symbol("bufferPush"),XGt=Symbol("bufferShift"),tF=Symbol("objectMode"),gw=Symbol("destroyed"),bUr=Symbol("error"),EUr=Symbol("emitData"),gps=Symbol("emitEnd"),SUr=Symbol("emitEnd2"),h6=Symbol("async"),vUr=Symbol("abort"),JGt=Symbol("aborted"),h7e=Symbol("signal"),g0e=Symbol("dataListeners"),HO=Symbol("discarded"),m7e=e=>Promise.resolve().then(e),iEl=e=>e(),sEl=e=>e==="end"||e==="finish"||e==="prefinish",oEl=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,aEl=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),UGt=class{src;dest;opts;ondrain;constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[NGe](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},BUr=class extends UGt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}},cEl=e=>!!e.objectMode,lEl=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",KGt=class extends wUr.EventEmitter{[yD]=!1;[I7e]=!1;[gL]=[];[bD]=[];[tF];[$4];[h6];[RGe];[Yte]=!1;[Tue]=!1;[HGt]=!1;[YGt]=!1;[f7e]=null;[ED]=0;[gw]=!1;[h7e];[JGt]=!1;[g0e]=0;[HO]=!1;writable=!0;readable=!0;constructor(...t){let r=t[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");cEl(r)?(this[tF]=!0,this[$4]=null):lEl(r)?(this[$4]=r.encoding,this[tF]=!1):(this[tF]=!1,this[$4]=null),this[h6]=!!r.async,this[RGe]=this[$4]?new eEl.StringDecoder(this[$4]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[bD]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[gL]});let{signal:n}=r;n&&(this[h7e]=n,n.aborted?this[vUr]():n.addEventListener("abort",()=>this[vUr]()))}get bufferLength(){return this[ED]}get encoding(){return this[$4]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[tF]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[h6]}set async(t){this[h6]=this[h6]||!!t}[vUr](){this[JGt]=!0,this.emit("abort",this[h7e]?.reason),this.destroy(this[h7e]?.reason)}get aborted(){return this[JGt]}set aborted(t){}write(t,r,n){if(this[JGt])return!1;if(this[Yte])throw new Error("write after end");if(this[gw])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[h6]?m7e:iEl;if(!this[tF]&&!Buffer.isBuffer(t)){if(aEl(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(oEl(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[tF]?(this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):t.length?(typeof t=="string"&&!(r===this[$4]&&!this[RGe]?.lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[$4]&&(t=this[RGe].write(t)),this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):(this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD])}read(t){if(this[gw])return null;if(this[HO]=!1,this[ED]===0||t===0||t&&t>this[ED])return this[Qte](),null;this[tF]&&(t=null),this[bD].length>1&&!this[tF]&&(this[bD]=[this[$4]?this[bD].join(""):Buffer.concat(this[bD],this[ED])]);let r=this[lps](t||null,this[bD][0]);return this[Qte](),r}[lps](t,r){if(this[tF])this[XGt]();else{let n=r;t===n.length||t===null?this[XGt]():typeof n=="string"?(this[bD][0]=n.slice(t),r=n.slice(0,t),this[ED]-=t):(this[bD][0]=n.subarray(t),r=n.subarray(0,t),this[ED]-=t)}return this.emit("data",r),!this[bD].length&&!this[Yte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r="utf8"),t!==void 0&&this.write(t,r),n&&this.once("end",n),this[Yte]=!0,this.writable=!1,(this[yD]||!this[I7e])&&this[Qte](),this}[NGe](){this[gw]||(!this[g0e]&&!this[gL].length&&(this[HO]=!0),this[I7e]=!1,this[yD]=!0,this.emit("resume"),this[bD].length?this[QGt]():this[Yte]?this[Qte]():this.emit("drain"))}resume(){return this[NGe]()}pause(){this[yD]=!1,this[I7e]=!0,this[HO]=!1}get destroyed(){return this[gw]}get flowing(){return this[yD]}get paused(){return this[I7e]}[yUr](t){this[tF]?this[ED]+=1:this[ED]+=t.length,this[bD].push(t)}[XGt](){return this[tF]?this[ED]-=1:this[ED]-=this[bD][0].length,this[bD].shift()}[QGt](t=!1){do;while(this[ups](this[XGt]())&&this[bD].length);!t&&!this[bD].length&&!this[Yte]&&this.emit("drain")}[ups](t){return this.emit("data",t),this[yD]}pipe(t,r){if(this[gw])return t;this[HO]=!1;let n=this[Tue];return r=r||{},t===cps.stdout||t===cps.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this[gL].push(r.proxyErrors?new BUr(this,t,r):new UGt(this,t,r)),this[h6]?m7e(()=>this[NGe]()):this[NGe]()),t}unpipe(t){let r=this[gL].find(n=>n.dest===t);r&&(this[gL].length===1?(this[yD]&&this[g0e]===0&&(this[yD]=!1),this[gL]=[]):this[gL].splice(this[gL].indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);if(t==="data")this[HO]=!1,this[g0e]++,!this[gL].length&&!this[yD]&&this[NGe]();else if(t==="readable"&&this[ED]!==0)super.emit("readable");else if(sEl(t)&&this[Tue])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[f7e]){let a=r;this[h6]?m7e(()=>a.call(this,this[f7e])):a.call(this,this[f7e])}return n}removeListener(t,r){return this.off(t,r)}off(t,r){let n=super.off(t,r);return t==="data"&&(this[g0e]=this.listeners("data").length,this[g0e]===0&&!this[HO]&&!this[gL].length&&(this[yD]=!1)),n}removeAllListeners(t){let r=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[g0e]=0,!this[HO]&&!this[gL].length&&(this[yD]=!1)),r}get emittedEnd(){return this[Tue]}[Qte](){!this[HGt]&&!this[Tue]&&!this[gw]&&this[bD].length===0&&this[Yte]&&(this[HGt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[YGt]&&this.emit("close"),this[HGt]=!1)}emit(t,...r){let n=r[0];if(t!=="error"&&t!=="close"&&t!==gw&&this[gw])return!1;if(t==="data")return!this[tF]&&!n?!1:this[h6]?(m7e(()=>this[EUr](n)),!0):this[EUr](n);if(t==="end")return this[gps]();if(t==="close"){if(this[YGt]=!0,!this[Tue]&&!this[gw])return!1;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[f7e]=n,super.emit(bUr,n);let o=!this[h7e]||this.listeners("error").length?super.emit("error",n):!1;return this[Qte](),o}else if(t==="resume"){let o=super.emit("resume");return this[Qte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,...r);return this[Qte](),a}[EUr](t){for(let n of this[gL])n.dest.write(t)===!1&&this.pause();let r=this[HO]?!1:super.emit("data",t);return this[Qte](),r}[gps](){return this[Tue]?!1:(this[Tue]=!0,this.readable=!1,this[h6]?(m7e(()=>this[SUr]()),!0):this[SUr]())}[SUr](){if(this[RGe]){let r=this[RGe].end();if(r){for(let n of this[gL])n.dest.write(r);this[HO]||super.emit("data",r)}}for(let r of this[gL])r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[tF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[tF]||(t.dataLength+=n.length)}),await r,t}async concat(){if(this[tF])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[$4]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,r)=>{this.on(gw,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[HO]=!1;let t=!1,r=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[Yte])return r();let o,l,A=b=>{this.off("data",f),this.off("end",I),this.off(gw,C),r(),l(b)},f=b=>{this.off("error",A),this.off("end",I),this.off(gw,C),this.pause(),o({value:b,done:!!this[Yte]})},I=()=>{this.off("error",A),this.off("data",f),this.off(gw,C),r(),o({done:!0,value:void 0})},C=()=>A(new Error("stream destroyed"));return new Promise((b,E)=>{l=E,o=b,this.once(gw,C),this.once("error",A),this.once("end",I),this.once("data",f)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HO]=!1;let t=!1,r=()=>(this.pause(),this.off(bUr,r),this.off(gw,r),this.off("end",r),t=!0,{done:!0,value:void 0}),n=()=>{if(t)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(bUr,r),this.once(gw,r),{next:n,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(t){if(this[gw])return t?this.emit("error",t):this.emit(gw),this;this[gw]=!0,this[HO]=!0,this[bD].length=0,this[ED]=0;let r=this;return typeof r.close=="function"&&!this[YGt]&&r.close(),t?this.emit("error",t):this.emit(gw),this}static get isStream(){return AL.isStream}};AL.Minipass=KGt});var Jte=H((Mrg,m6)=>{"use strict";var _7e=wt("crypto"),{Minipass:uEl}=rF(),RUr=["sha512","sha384","sha256"],DUr=["sha512"],gEl=/^[a-z0-9+/]+(?:=?=?)$/i,AEl=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,dEl=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,pEl=/^[\x21-\x7E]+$/,y7e=e=>e?.length?`?${e.join("?")}`:"",NUr=class extends uEl{#e;#t;#n;constructor(t){super(),this.size=0,this.opts=t,this.#r(),t?.algorithms?this.algorithms=[...t.algorithms]:this.algorithms=[...DUr],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(_7e.createHash)}#r(){this.sri=this.opts?.integrity?YO(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=y7e(this.opts?.options)}on(t,r){return t==="size"&&this.#t?r(this.#t):t==="integrity"&&this.#e?r(this.#e):t==="verified"&&this.#n?r(this.#n):super.on(t,r)}emit(t,r){return t==="end"&&this.#i(),super.emit(t,r)}write(t){return this.size+=t.length,this.hashes.forEach(r=>r.update(t)),super.write(t)}#i(){this.goodSri||this.#r();let t=YO(this.hashes.map((n,a)=>`${this.algorithms[a]}-${n.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&t.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let n=new Error(`stream size mismatch when checking ${this.sri}. Wanted: ${this.expectedSize} - Found: ${this.size}`);n.code="EBADSIZE",n.found=this.size,n.expected=this.expectedSize,n.sri=this.sri,this.emit("error",n)}else if(this.sri&&!r){let n=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${t}. (${this.size} bytes)`);n.code="EINTEGRITY",n.found=t,n.expected=this.digests,n.algorithm=this.algorithm,n.sri=this.sri,this.emit("error",n)}else this.#t=this.size,this.emit("size",this.size),this.#e=t,this.emit("integrity",t),r&&(this.#n=r,this.emit("verified",r))}},Xte=class{get isHash(){return!0}constructor(t,r){let n=r?.strict;this.source=t.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(n?AEl:gEl);if(!a||n&&!RUr.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let o=a[3];o&&(this.options=o.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(t,r){let n=YO(t,r);if(!n)return!1;if(n.isIntegrity){let a=n.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let o=n[a].find(l=>l.digest===this.digest);return o||!1}return n.digest===this.digest?n:!1}toString(t){return t?.strict&&!(RUr.includes(this.algorithm)&&this.digest.match(uEl)&&this.options.every(r=>r.match(dEl)))?"":`${this.algorithm}-${this.digest}${y7e(this.options)}`}};function dps(e,t,r,n){let a=e!=="",o=!1,l="",A=n.length-1;for(let I=0;In[a].find(l=>o.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=n[a]}match(t,r){let n=YO(t,r);if(!n)return!1;let a=n.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&n[a]&&this[a].find(o=>n[a].find(l=>o.digest===l.digest))||!1}pickAlgorithm(t,r){let n=t?.pickAlgorithm||yEl,a=Object.keys(this).filter(o=>r?.length?r.includes(o):!0);return a.length?a.reduce((o,l)=>n(o,l)||o):null}};m6.exports.parse=YO;function YO(e,t){if(!e)return null;if(typeof e=="string")return TUr(e,t);if(e.algorithm&&e.digest){let r=new A0e;return r[e.algorithm]=[e],TUr(C7e(r,t),t)}else return TUr(C7e(e,t),t)}function TUr(e,t){if(t?.single)return new Xte(e,t);let r=e.trim().split(/\s+/).reduce((n,a)=>{let o=new Xte(a,t);if(o.algorithm&&o.digest){let l=o.algorithm;n[l]||(n[l]=[]),n[l].push(o)}return n},new A0e);return r.isEmpty()?null:r}m6.exports.stringify=C7e;function C7e(e,t){return e.algorithm&&e.digest?Xte.prototype.toString.call(e,t):typeof e=="string"?C7e(YO(e,t),t):A0e.prototype.toString.call(e,t)}m6.exports.fromHex=pEl;function pEl(e,t,r){let n=y7e(r?.options);return YO(`${t}-${Buffer.from(e,"hex").toString("base64")}${n}`,r)}m6.exports.fromData=fEl;function fEl(e,t){let r=t?.algorithms||[...DUr],n=y7e(t?.options);return r.reduce((a,o)=>{let l=_7e.createHash(o).update(e).digest("base64"),A=new Xte(`${o}-${l}${n}`,t);if(A.algorithm&&A.digest){let f=A.algorithm;a[f]||(a[f]=[]),a[f].push(A)}return a},new A0e)}m6.exports.fromStream=IEl;function IEl(e,t){let r=kUr(t);return new Promise((n,a)=>{e.pipe(r),e.on("error",a),r.on("error",a);let o;r.on("integrity",l=>{o=l}),r.on("end",()=>n(o)),r.resume()})}m6.exports.checkData=hEl;function hEl(e,t,r){if(t=YO(t,r),!t||!Object.keys(t).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let n=t.pickAlgorithm(r),a=_7e.createHash(n).update(e).digest("base64"),o=YO({algorithm:n,digest:a}),l=o.match(t,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&e.length!==r.size){let A=new Error(`data size mismatch when checking ${t}. + Found: ${this.size}`);n.code="EBADSIZE",n.found=this.size,n.expected=this.expectedSize,n.sri=this.sri,this.emit("error",n)}else if(this.sri&&!r){let n=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${t}. (${this.size} bytes)`);n.code="EINTEGRITY",n.found=t,n.expected=this.digests,n.algorithm=this.algorithm,n.sri=this.sri,this.emit("error",n)}else this.#t=this.size,this.emit("size",this.size),this.#e=t,this.emit("integrity",t),r&&(this.#n=r,this.emit("verified",r))}},Xte=class{get isHash(){return!0}constructor(t,r){let n=r?.strict;this.source=t.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(n?dEl:AEl);if(!a||n&&!RUr.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let o=a[3];o&&(this.options=o.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(t,r){let n=YO(t,r);if(!n)return!1;if(n.isIntegrity){let a=n.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let o=n[a].find(l=>l.digest===this.digest);return o||!1}return n.digest===this.digest?n:!1}toString(t){return t?.strict&&!(RUr.includes(this.algorithm)&&this.digest.match(gEl)&&this.options.every(r=>r.match(pEl)))?"":`${this.algorithm}-${this.digest}${y7e(this.options)}`}};function dps(e,t,r,n){let a=e!=="",o=!1,l="",A=n.length-1;for(let I=0;In[a].find(l=>o.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=n[a]}match(t,r){let n=YO(t,r);if(!n)return!1;let a=n.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&n[a]&&this[a].find(o=>n[a].find(l=>o.digest===l.digest))||!1}pickAlgorithm(t,r){let n=t?.pickAlgorithm||bEl,a=Object.keys(this).filter(o=>r?.length?r.includes(o):!0);return a.length?a.reduce((o,l)=>n(o,l)||o):null}};m6.exports.parse=YO;function YO(e,t){if(!e)return null;if(typeof e=="string")return TUr(e,t);if(e.algorithm&&e.digest){let r=new A0e;return r[e.algorithm]=[e],TUr(C7e(r,t),t)}else return TUr(C7e(e,t),t)}function TUr(e,t){if(t?.single)return new Xte(e,t);let r=e.trim().split(/\s+/).reduce((n,a)=>{let o=new Xte(a,t);if(o.algorithm&&o.digest){let l=o.algorithm;n[l]||(n[l]=[]),n[l].push(o)}return n},new A0e);return r.isEmpty()?null:r}m6.exports.stringify=C7e;function C7e(e,t){return e.algorithm&&e.digest?Xte.prototype.toString.call(e,t):typeof e=="string"?C7e(YO(e,t),t):A0e.prototype.toString.call(e,t)}m6.exports.fromHex=fEl;function fEl(e,t,r){let n=y7e(r?.options);return YO(`${t}-${Buffer.from(e,"hex").toString("base64")}${n}`,r)}m6.exports.fromData=IEl;function IEl(e,t){let r=t?.algorithms||[...DUr],n=y7e(t?.options);return r.reduce((a,o)=>{let l=_7e.createHash(o).update(e).digest("base64"),A=new Xte(`${o}-${l}${n}`,t);if(A.algorithm&&A.digest){let f=A.algorithm;a[f]||(a[f]=[]),a[f].push(A)}return a},new A0e)}m6.exports.fromStream=hEl;function hEl(e,t){let r=kUr(t);return new Promise((n,a)=>{e.pipe(r),e.on("error",a),r.on("error",a);let o;r.on("integrity",l=>{o=l}),r.on("end",()=>n(o)),r.resume()})}m6.exports.checkData=mEl;function mEl(e,t,r){if(t=YO(t,r),!t||!Object.keys(t).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let n=t.pickAlgorithm(r),a=_7e.createHash(n).update(e).digest("base64"),o=YO({algorithm:n,digest:a}),l=o.match(t,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&e.length!==r.size){let A=new Error(`data size mismatch when checking ${t}. Wanted: ${r.size} - Found: ${e.length}`);throw A.code="EBADSIZE",A.found=e.length,A.expected=r.size,A.sri=t,A}else{let A=new Error(`Integrity checksum failed when using ${n}: Wanted ${t}, but got ${o}. (${e.length} bytes)`);throw A.code="EINTEGRITY",A.found=o,A.expected=t,A.algorithm=n,A.sri=t,A}}m6.exports.checkStream=mEl;function mEl(e,t,r){if(r=r||Object.create(null),r.integrity=t,t=YO(t,r),!t||!Object.keys(t).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let n=kUr(r);return new Promise((a,o)=>{e.pipe(n),e.on("error",o),n.on("error",o);let l;n.on("verified",A=>{l=A}),n.on("end",()=>a(l)),n.resume()})}m6.exports.integrityStream=kUr;function kUr(e=Object.create(null)){return new NUr(e)}m6.exports.create=CEl;function CEl(e){let t=e?.algorithms||[...DUr],r=y7e(e?.options),n=t.map(_7e.createHash);return{update:function(a,o){return n.forEach(l=>l.update(a,o)),this},digest:function(){return t.reduce((o,l)=>{let A=n.shift().digest("base64"),f=new Xte(`${l}-${A}${r}`,e);if(f.algorithm&&f.digest){let I=f.algorithm;o[I]||(o[I]=[]),o[I].push(f)}return o},new A0e)}}}var _El=_7e.getHashes(),pps=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>_El.includes(e));function yEl(e,t){return pps.indexOf(e.toLowerCase())>=pps.indexOf(t.toLowerCase())?e:t}});var xUr=H(Rue=>{"use strict";Object.defineProperty(Rue,"__esModule",{value:!0});Rue.Signature=Rue.Envelope=void 0;Rue.Envelope={fromJSON(e){return{payload:jGt(e.payload)?Buffer.from(fps(e.payload)):Buffer.alloc(0),payloadType:jGt(e.payloadType)?globalThis.String(e.payloadType):"",signatures:globalThis.Array.isArray(e?.signatures)?e.signatures.map(t=>Rue.Signature.fromJSON(t)):[]}},toJSON(e){let t={};return e.payload.length!==0&&(t.payload=Ips(e.payload)),e.payloadType!==""&&(t.payloadType=e.payloadType),e.signatures?.length&&(t.signatures=e.signatures.map(r=>Rue.Signature.toJSON(r))),t}};Rue.Signature={fromJSON(e){return{sig:jGt(e.sig)?Buffer.from(fps(e.sig)):Buffer.alloc(0),keyid:jGt(e.keyid)?globalThis.String(e.keyid):""}},toJSON(e){let t={};return e.sig.length!==0&&(t.sig=Ips(e.sig)),e.keyid!==""&&(t.keyid=e.keyid),t}};function fps(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function Ips(e){return globalThis.Buffer.from(e).toString("base64")}function jGt(e){return e!=null}});var mps=H(zGt=>{"use strict";Object.defineProperty(zGt,"__esModule",{value:!0});zGt.Timestamp=void 0;zGt.Timestamp={fromJSON(e){return{seconds:hps(e.seconds)?globalThis.String(e.seconds):"0",nanos:hps(e.nanos)?globalThis.Number(e.nanos):0}},toJSON(e){let t={};return e.seconds!=="0"&&(t.seconds=e.seconds),e.nanos!==0&&(t.nanos=Math.round(e.nanos)),t}};function hps(e){return e!=null}});var DGe=H(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.TimeRange=Vf.X509CertificateChain=Vf.SubjectAlternativeName=Vf.X509Certificate=Vf.DistinguishedName=Vf.ObjectIdentifierValuePair=Vf.ObjectIdentifier=Vf.PublicKeyIdentifier=Vf.PublicKey=Vf.RFC3161SignedTimestamp=Vf.LogId=Vf.MessageSignature=Vf.HashOutput=Vf.SubjectAlternativeNameType=Vf.PublicKeyDetails=Vf.HashAlgorithm=void 0;Vf.hashAlgorithmFromJSON=_ps;Vf.hashAlgorithmToJSON=yps;Vf.publicKeyDetailsFromJSON=bps;Vf.publicKeyDetailsToJSON=Eps;Vf.subjectAlternativeNameTypeFromJSON=Sps;Vf.subjectAlternativeNameTypeToJSON=vps;var bEl=mps(),UV;(function(e){e[e.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",e[e.SHA2_256=1]="SHA2_256",e[e.SHA2_384=2]="SHA2_384",e[e.SHA2_512=3]="SHA2_512",e[e.SHA3_256=4]="SHA3_256",e[e.SHA3_384=5]="SHA3_384"})(UV||(Vf.HashAlgorithm=UV={}));function _ps(e){switch(e){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return UV.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return UV.SHA2_256;case 2:case"SHA2_384":return UV.SHA2_384;case 3:case"SHA2_512":return UV.SHA2_512;case 4:case"SHA3_256":return UV.SHA3_256;case 5:case"SHA3_384":return UV.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}function yps(e){switch(e){case UV.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case UV.SHA2_256:return"SHA2_256";case UV.SHA2_384:return"SHA2_384";case UV.SHA2_512:return"SHA2_512";case UV.SHA3_256:return"SHA3_256";case UV.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}var Lf;(function(e){e[e.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",e[e.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",e[e.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",e[e.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",e[e.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",e[e.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",e[e.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",e[e.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",e[e.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",e[e.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",e[e.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",e[e.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",e[e.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",e[e.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",e[e.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",e[e.PKIX_ED25519=7]="PKIX_ED25519",e[e.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",e[e.PKIX_ECDSA_P384_SHA_256=19]="PKIX_ECDSA_P384_SHA_256",e[e.PKIX_ECDSA_P521_SHA_256=20]="PKIX_ECDSA_P521_SHA_256",e[e.LMS_SHA256=14]="LMS_SHA256",e[e.LMOTS_SHA256=15]="LMOTS_SHA256",e[e.ML_DSA_65=21]="ML_DSA_65",e[e.ML_DSA_87=22]="ML_DSA_87"})(Lf||(Vf.PublicKeyDetails=Lf={}));function bps(e){switch(e){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return Lf.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return Lf.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return Lf.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return Lf.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return Lf.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return Lf.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return Lf.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return Lf.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return Lf.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return Lf.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return Lf.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return Lf.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return Lf.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return Lf.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return Lf.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return Lf.PKIX_ED25519_PH;case 19:case"PKIX_ECDSA_P384_SHA_256":return Lf.PKIX_ECDSA_P384_SHA_256;case 20:case"PKIX_ECDSA_P521_SHA_256":return Lf.PKIX_ECDSA_P521_SHA_256;case 14:case"LMS_SHA256":return Lf.LMS_SHA256;case 15:case"LMOTS_SHA256":return Lf.LMOTS_SHA256;case 21:case"ML_DSA_65":return Lf.ML_DSA_65;case 22:case"ML_DSA_87":return Lf.ML_DSA_87;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}function Eps(e){switch(e){case Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case Lf.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case Lf.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case Lf.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case Lf.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case Lf.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case Lf.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case Lf.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case Lf.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case Lf.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case Lf.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case Lf.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case Lf.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case Lf.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case Lf.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case Lf.PKIX_ED25519:return"PKIX_ED25519";case Lf.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case Lf.PKIX_ECDSA_P384_SHA_256:return"PKIX_ECDSA_P384_SHA_256";case Lf.PKIX_ECDSA_P521_SHA_256:return"PKIX_ECDSA_P521_SHA_256";case Lf.LMS_SHA256:return"LMS_SHA256";case Lf.LMOTS_SHA256:return"LMOTS_SHA256";case Lf.ML_DSA_65:return"ML_DSA_65";case Lf.ML_DSA_87:return"ML_DSA_87";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}var C6;(function(e){e[e.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",e[e.EMAIL=1]="EMAIL",e[e.URI=2]="URI",e[e.OTHER_NAME=3]="OTHER_NAME"})(C6||(Vf.SubjectAlternativeNameType=C6={}));function Sps(e){switch(e){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return C6.EMAIL;case 2:case"URI":return C6.URI;case 3:case"OTHER_NAME":return C6.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}function vps(e){switch(e){case C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case C6.EMAIL:return"EMAIL";case C6.URI:return"URI";case C6.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}Vf.HashOutput={fromJSON(e){return{algorithm:ST(e.algorithm)?_ps(e.algorithm):0,digest:ST(e.digest)?Buffer.from(d0e(e.digest)):Buffer.alloc(0)}},toJSON(e){let t={};return e.algorithm!==0&&(t.algorithm=yps(e.algorithm)),e.digest.length!==0&&(t.digest=p0e(e.digest)),t}};Vf.MessageSignature={fromJSON(e){return{messageDigest:ST(e.messageDigest)?Vf.HashOutput.fromJSON(e.messageDigest):void 0,signature:ST(e.signature)?Buffer.from(d0e(e.signature)):Buffer.alloc(0)}},toJSON(e){let t={};return e.messageDigest!==void 0&&(t.messageDigest=Vf.HashOutput.toJSON(e.messageDigest)),e.signature.length!==0&&(t.signature=p0e(e.signature)),t}};Vf.LogId={fromJSON(e){return{keyId:ST(e.keyId)?Buffer.from(d0e(e.keyId)):Buffer.alloc(0)}},toJSON(e){let t={};return e.keyId.length!==0&&(t.keyId=p0e(e.keyId)),t}};Vf.RFC3161SignedTimestamp={fromJSON(e){return{signedTimestamp:ST(e.signedTimestamp)?Buffer.from(d0e(e.signedTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedTimestamp.length!==0&&(t.signedTimestamp=p0e(e.signedTimestamp)),t}};Vf.PublicKey={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):void 0,keyDetails:ST(e.keyDetails)?bps(e.keyDetails):0,validFor:ST(e.validFor)?Vf.TimeRange.fromJSON(e.validFor):void 0}},toJSON(e){let t={};return e.rawBytes!==void 0&&(t.rawBytes=p0e(e.rawBytes)),e.keyDetails!==0&&(t.keyDetails=Eps(e.keyDetails)),e.validFor!==void 0&&(t.validFor=Vf.TimeRange.toJSON(e.validFor)),t}};Vf.PublicKeyIdentifier={fromJSON(e){return{hint:ST(e.hint)?globalThis.String(e.hint):""}},toJSON(e){let t={};return e.hint!==""&&(t.hint=e.hint),t}};Vf.ObjectIdentifier={fromJSON(e){return{id:globalThis.Array.isArray(e?.id)?e.id.map(t=>globalThis.Number(t)):[]}},toJSON(e){let t={};return e.id?.length&&(t.id=e.id.map(r=>Math.round(r))),t}};Vf.ObjectIdentifierValuePair={fromJSON(e){return{oid:ST(e.oid)?Vf.ObjectIdentifier.fromJSON(e.oid):void 0,value:ST(e.value)?Buffer.from(d0e(e.value)):Buffer.alloc(0)}},toJSON(e){let t={};return e.oid!==void 0&&(t.oid=Vf.ObjectIdentifier.toJSON(e.oid)),e.value.length!==0&&(t.value=p0e(e.value)),t}};Vf.DistinguishedName={fromJSON(e){return{organization:ST(e.organization)?globalThis.String(e.organization):"",commonName:ST(e.commonName)?globalThis.String(e.commonName):""}},toJSON(e){let t={};return e.organization!==""&&(t.organization=e.organization),e.commonName!==""&&(t.commonName=e.commonName),t}};Vf.X509Certificate={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):Buffer.alloc(0)}},toJSON(e){let t={};return e.rawBytes.length!==0&&(t.rawBytes=p0e(e.rawBytes)),t}};Vf.SubjectAlternativeName={fromJSON(e){return{type:ST(e.type)?Sps(e.type):0,identity:ST(e.regexp)?{$case:"regexp",regexp:globalThis.String(e.regexp)}:ST(e.value)?{$case:"value",value:globalThis.String(e.value)}:void 0}},toJSON(e){let t={};return e.type!==0&&(t.type=vps(e.type)),e.identity?.$case==="regexp"?t.regexp=e.identity.regexp:e.identity?.$case==="value"&&(t.value=e.identity.value),t}};Vf.X509CertificateChain={fromJSON(e){return{certificates:globalThis.Array.isArray(e?.certificates)?e.certificates.map(t=>Vf.X509Certificate.fromJSON(t)):[]}},toJSON(e){let t={};return e.certificates?.length&&(t.certificates=e.certificates.map(r=>Vf.X509Certificate.toJSON(r))),t}};Vf.TimeRange={fromJSON(e){return{start:ST(e.start)?Cps(e.start):void 0,end:ST(e.end)?Cps(e.end):void 0}},toJSON(e){let t={};return e.start!==void 0&&(t.start=e.start.toISOString()),e.end!==void 0&&(t.end=e.end.toISOString()),t}};function d0e(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function p0e(e){return globalThis.Buffer.from(e).toString("base64")}function EEl(e){let t=(globalThis.Number(e.seconds)||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function Cps(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):EEl(bEl.Timestamp.fromJSON(e))}function ST(e){return e!=null}});var GUr=H(vT=>{"use strict";Object.defineProperty(vT,"__esModule",{value:!0});vT.TransparencyLogEntry=vT.InclusionPromise=vT.InclusionProof=vT.Checkpoint=vT.KindVersion=void 0;var Bps=DGe();vT.KindVersion={fromJSON(e){return{kind:dL(e.kind)?globalThis.String(e.kind):"",version:dL(e.version)?globalThis.String(e.version):""}},toJSON(e){let t={};return e.kind!==""&&(t.kind=e.kind),e.version!==""&&(t.version=e.version),t}};vT.Checkpoint={fromJSON(e){return{envelope:dL(e.envelope)?globalThis.String(e.envelope):""}},toJSON(e){let t={};return e.envelope!==""&&(t.envelope=e.envelope),t}};vT.InclusionProof={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",rootHash:dL(e.rootHash)?Buffer.from(qGt(e.rootHash)):Buffer.alloc(0),treeSize:dL(e.treeSize)?globalThis.String(e.treeSize):"0",hashes:globalThis.Array.isArray(e?.hashes)?e.hashes.map(t=>Buffer.from(qGt(t))):[],checkpoint:dL(e.checkpoint)?vT.Checkpoint.fromJSON(e.checkpoint):void 0}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.rootHash.length!==0&&(t.rootHash=$Gt(e.rootHash)),e.treeSize!=="0"&&(t.treeSize=e.treeSize),e.hashes?.length&&(t.hashes=e.hashes.map(r=>$Gt(r))),e.checkpoint!==void 0&&(t.checkpoint=vT.Checkpoint.toJSON(e.checkpoint)),t}};vT.InclusionPromise={fromJSON(e){return{signedEntryTimestamp:dL(e.signedEntryTimestamp)?Buffer.from(qGt(e.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedEntryTimestamp.length!==0&&(t.signedEntryTimestamp=$Gt(e.signedEntryTimestamp)),t}};vT.TransparencyLogEntry={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",logId:dL(e.logId)?Bps.LogId.fromJSON(e.logId):void 0,kindVersion:dL(e.kindVersion)?vT.KindVersion.fromJSON(e.kindVersion):void 0,integratedTime:dL(e.integratedTime)?globalThis.String(e.integratedTime):"0",inclusionPromise:dL(e.inclusionPromise)?vT.InclusionPromise.fromJSON(e.inclusionPromise):void 0,inclusionProof:dL(e.inclusionProof)?vT.InclusionProof.fromJSON(e.inclusionProof):void 0,canonicalizedBody:dL(e.canonicalizedBody)?Buffer.from(qGt(e.canonicalizedBody)):Buffer.alloc(0)}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.logId!==void 0&&(t.logId=Bps.LogId.toJSON(e.logId)),e.kindVersion!==void 0&&(t.kindVersion=vT.KindVersion.toJSON(e.kindVersion)),e.integratedTime!=="0"&&(t.integratedTime=e.integratedTime),e.inclusionPromise!==void 0&&(t.inclusionPromise=vT.InclusionPromise.toJSON(e.inclusionPromise)),e.inclusionProof!==void 0&&(t.inclusionProof=vT.InclusionProof.toJSON(e.inclusionProof)),e.canonicalizedBody.length!==0&&(t.canonicalizedBody=$Gt(e.canonicalizedBody)),t}};function qGt(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function $Gt(e){return globalThis.Buffer.from(e).toString("base64")}function dL(e){return e!=null}});var FUr=H(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.Bundle=ZH.VerificationMaterial=ZH.TimestampVerificationData=void 0;var wps=xUr(),_6=DGe(),Tps=GUr();ZH.TimestampVerificationData={fromJSON(e){return{rfc3161Timestamps:globalThis.Array.isArray(e?.rfc3161Timestamps)?e.rfc3161Timestamps.map(t=>_6.RFC3161SignedTimestamp.fromJSON(t)):[]}},toJSON(e){let t={};return e.rfc3161Timestamps?.length&&(t.rfc3161Timestamps=e.rfc3161Timestamps.map(r=>_6.RFC3161SignedTimestamp.toJSON(r))),t}};ZH.VerificationMaterial={fromJSON(e){return{content:Nue(e.publicKey)?{$case:"publicKey",publicKey:_6.PublicKeyIdentifier.fromJSON(e.publicKey)}:Nue(e.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:_6.X509CertificateChain.fromJSON(e.x509CertificateChain)}:Nue(e.certificate)?{$case:"certificate",certificate:_6.X509Certificate.fromJSON(e.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(e?.tlogEntries)?e.tlogEntries.map(t=>Tps.TransparencyLogEntry.fromJSON(t)):[],timestampVerificationData:Nue(e.timestampVerificationData)?ZH.TimestampVerificationData.fromJSON(e.timestampVerificationData):void 0}},toJSON(e){let t={};return e.content?.$case==="publicKey"?t.publicKey=_6.PublicKeyIdentifier.toJSON(e.content.publicKey):e.content?.$case==="x509CertificateChain"?t.x509CertificateChain=_6.X509CertificateChain.toJSON(e.content.x509CertificateChain):e.content?.$case==="certificate"&&(t.certificate=_6.X509Certificate.toJSON(e.content.certificate)),e.tlogEntries?.length&&(t.tlogEntries=e.tlogEntries.map(r=>Tps.TransparencyLogEntry.toJSON(r))),e.timestampVerificationData!==void 0&&(t.timestampVerificationData=ZH.TimestampVerificationData.toJSON(e.timestampVerificationData)),t}};ZH.Bundle={fromJSON(e){return{mediaType:Nue(e.mediaType)?globalThis.String(e.mediaType):"",verificationMaterial:Nue(e.verificationMaterial)?ZH.VerificationMaterial.fromJSON(e.verificationMaterial):void 0,content:Nue(e.messageSignature)?{$case:"messageSignature",messageSignature:_6.MessageSignature.fromJSON(e.messageSignature)}:Nue(e.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:wps.Envelope.fromJSON(e.dsseEnvelope)}:void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.verificationMaterial!==void 0&&(t.verificationMaterial=ZH.VerificationMaterial.toJSON(e.verificationMaterial)),e.content?.$case==="messageSignature"?t.messageSignature=_6.MessageSignature.toJSON(e.content.messageSignature):e.content?.$case==="dsseEnvelope"&&(t.dsseEnvelope=wps.Envelope.toJSON(e.content.dsseEnvelope)),t}};function Nue(e){return e!=null}});var ZUr=H(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.ClientTrustConfig=ZI.ServiceConfiguration=ZI.Service=ZI.SigningConfig=ZI.TrustedRoot=ZI.CertificateAuthority=ZI.TransparencyLogInstance=ZI.ServiceSelector=void 0;ZI.serviceSelectorFromJSON=Rps;ZI.serviceSelectorToJSON=Nps;var nF=DGe(),y6;(function(e){e[e.SERVICE_SELECTOR_UNDEFINED=0]="SERVICE_SELECTOR_UNDEFINED",e[e.ALL=1]="ALL",e[e.ANY=2]="ANY",e[e.EXACT=3]="EXACT"})(y6||(ZI.ServiceSelector=y6={}));function Rps(e){switch(e){case 0:case"SERVICE_SELECTOR_UNDEFINED":return y6.SERVICE_SELECTOR_UNDEFINED;case 1:case"ALL":return y6.ALL;case 2:case"ANY":return y6.ANY;case 3:case"EXACT":return y6.EXACT;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}function Nps(e){switch(e){case y6.SERVICE_SELECTOR_UNDEFINED:return"SERVICE_SELECTOR_UNDEFINED";case y6.ALL:return"ALL";case y6.ANY:return"ANY";case y6.EXACT:return"EXACT";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}ZI.TransparencyLogInstance={fromJSON(e){return{baseUrl:P2(e.baseUrl)?globalThis.String(e.baseUrl):"",hashAlgorithm:P2(e.hashAlgorithm)?(0,nF.hashAlgorithmFromJSON)(e.hashAlgorithm):0,publicKey:P2(e.publicKey)?nF.PublicKey.fromJSON(e.publicKey):void 0,logId:P2(e.logId)?nF.LogId.fromJSON(e.logId):void 0,checkpointKeyId:P2(e.checkpointKeyId)?nF.LogId.fromJSON(e.checkpointKeyId):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.baseUrl!==""&&(t.baseUrl=e.baseUrl),e.hashAlgorithm!==0&&(t.hashAlgorithm=(0,nF.hashAlgorithmToJSON)(e.hashAlgorithm)),e.publicKey!==void 0&&(t.publicKey=nF.PublicKey.toJSON(e.publicKey)),e.logId!==void 0&&(t.logId=nF.LogId.toJSON(e.logId)),e.checkpointKeyId!==void 0&&(t.checkpointKeyId=nF.LogId.toJSON(e.checkpointKeyId)),e.operator!==""&&(t.operator=e.operator),t}};ZI.CertificateAuthority={fromJSON(e){return{subject:P2(e.subject)?nF.DistinguishedName.fromJSON(e.subject):void 0,uri:P2(e.uri)?globalThis.String(e.uri):"",certChain:P2(e.certChain)?nF.X509CertificateChain.fromJSON(e.certChain):void 0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.subject!==void 0&&(t.subject=nF.DistinguishedName.toJSON(e.subject)),e.uri!==""&&(t.uri=e.uri),e.certChain!==void 0&&(t.certChain=nF.X509CertificateChain.toJSON(e.certChain)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.TrustedRoot={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",tlogs:globalThis.Array.isArray(e?.tlogs)?e.tlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],certificateAuthorities:globalThis.Array.isArray(e?.certificateAuthorities)?e.certificateAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[],ctlogs:globalThis.Array.isArray(e?.ctlogs)?e.ctlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],timestampAuthorities:globalThis.Array.isArray(e?.timestampAuthorities)?e.timestampAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[]}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.tlogs?.length&&(t.tlogs=e.tlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.certificateAuthorities?.length&&(t.certificateAuthorities=e.certificateAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),e.ctlogs?.length&&(t.ctlogs=e.ctlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.timestampAuthorities?.length&&(t.timestampAuthorities=e.timestampAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),t}};ZI.SigningConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",caUrls:globalThis.Array.isArray(e?.caUrls)?e.caUrls.map(t=>ZI.Service.fromJSON(t)):[],oidcUrls:globalThis.Array.isArray(e?.oidcUrls)?e.oidcUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogUrls:globalThis.Array.isArray(e?.rekorTlogUrls)?e.rekorTlogUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogConfig:P2(e.rekorTlogConfig)?ZI.ServiceConfiguration.fromJSON(e.rekorTlogConfig):void 0,tsaUrls:globalThis.Array.isArray(e?.tsaUrls)?e.tsaUrls.map(t=>ZI.Service.fromJSON(t)):[],tsaConfig:P2(e.tsaConfig)?ZI.ServiceConfiguration.fromJSON(e.tsaConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.caUrls?.length&&(t.caUrls=e.caUrls.map(r=>ZI.Service.toJSON(r))),e.oidcUrls?.length&&(t.oidcUrls=e.oidcUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogUrls?.length&&(t.rekorTlogUrls=e.rekorTlogUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogConfig!==void 0&&(t.rekorTlogConfig=ZI.ServiceConfiguration.toJSON(e.rekorTlogConfig)),e.tsaUrls?.length&&(t.tsaUrls=e.tsaUrls.map(r=>ZI.Service.toJSON(r))),e.tsaConfig!==void 0&&(t.tsaConfig=ZI.ServiceConfiguration.toJSON(e.tsaConfig)),t}};ZI.Service={fromJSON(e){return{url:P2(e.url)?globalThis.String(e.url):"",majorApiVersion:P2(e.majorApiVersion)?globalThis.Number(e.majorApiVersion):0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),e.majorApiVersion!==0&&(t.majorApiVersion=Math.round(e.majorApiVersion)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.ServiceConfiguration={fromJSON(e){return{selector:P2(e.selector)?Rps(e.selector):0,count:P2(e.count)?globalThis.Number(e.count):0}},toJSON(e){let t={};return e.selector!==0&&(t.selector=Nps(e.selector)),e.count!==0&&(t.count=Math.round(e.count)),t}};ZI.ClientTrustConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",trustedRoot:P2(e.trustedRoot)?ZI.TrustedRoot.fromJSON(e.trustedRoot):void 0,signingConfig:P2(e.signingConfig)?ZI.SigningConfig.fromJSON(e.signingConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.trustedRoot!==void 0&&(t.trustedRoot=ZI.TrustedRoot.toJSON(e.trustedRoot)),e.signingConfig!==void 0&&(t.signingConfig=ZI.SigningConfig.toJSON(e.signingConfig)),t}};function P2(e){return e!=null}});var xps=H(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.Input=LI.Artifact=LI.ArtifactVerificationOptions_ObserverTimestampOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions=LI.ArtifactVerificationOptions_CtlogOptions=LI.ArtifactVerificationOptions_TlogOptions=LI.ArtifactVerificationOptions=LI.PublicKeyIdentities=LI.CertificateIdentities=LI.CertificateIdentity=void 0;var Dps=FUr(),Due=DGe(),kps=ZUr();LI.CertificateIdentity={fromJSON(e){return{issuer:tE(e.issuer)?globalThis.String(e.issuer):"",san:tE(e.san)?Due.SubjectAlternativeName.fromJSON(e.san):void 0,oids:globalThis.Array.isArray(e?.oids)?e.oids.map(t=>Due.ObjectIdentifierValuePair.fromJSON(t)):[]}},toJSON(e){let t={};return e.issuer!==""&&(t.issuer=e.issuer),e.san!==void 0&&(t.san=Due.SubjectAlternativeName.toJSON(e.san)),e.oids?.length&&(t.oids=e.oids.map(r=>Due.ObjectIdentifierValuePair.toJSON(r))),t}};LI.CertificateIdentities={fromJSON(e){return{identities:globalThis.Array.isArray(e?.identities)?e.identities.map(t=>LI.CertificateIdentity.fromJSON(t)):[]}},toJSON(e){let t={};return e.identities?.length&&(t.identities=e.identities.map(r=>LI.CertificateIdentity.toJSON(r))),t}};LI.PublicKeyIdentities={fromJSON(e){return{publicKeys:globalThis.Array.isArray(e?.publicKeys)?e.publicKeys.map(t=>Due.PublicKey.fromJSON(t)):[]}},toJSON(e){let t={};return e.publicKeys?.length&&(t.publicKeys=e.publicKeys.map(r=>Due.PublicKey.toJSON(r))),t}};LI.ArtifactVerificationOptions={fromJSON(e){return{signers:tE(e.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:LI.CertificateIdentities.fromJSON(e.certificateIdentities)}:tE(e.publicKeys)?{$case:"publicKeys",publicKeys:LI.PublicKeyIdentities.fromJSON(e.publicKeys)}:void 0,tlogOptions:tE(e.tlogOptions)?LI.ArtifactVerificationOptions_TlogOptions.fromJSON(e.tlogOptions):void 0,ctlogOptions:tE(e.ctlogOptions)?LI.ArtifactVerificationOptions_CtlogOptions.fromJSON(e.ctlogOptions):void 0,tsaOptions:tE(e.tsaOptions)?LI.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(e.tsaOptions):void 0,integratedTsOptions:tE(e.integratedTsOptions)?LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(e.integratedTsOptions):void 0,observerOptions:tE(e.observerOptions)?LI.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(e.observerOptions):void 0}},toJSON(e){let t={};return e.signers?.$case==="certificateIdentities"?t.certificateIdentities=LI.CertificateIdentities.toJSON(e.signers.certificateIdentities):e.signers?.$case==="publicKeys"&&(t.publicKeys=LI.PublicKeyIdentities.toJSON(e.signers.publicKeys)),e.tlogOptions!==void 0&&(t.tlogOptions=LI.ArtifactVerificationOptions_TlogOptions.toJSON(e.tlogOptions)),e.ctlogOptions!==void 0&&(t.ctlogOptions=LI.ArtifactVerificationOptions_CtlogOptions.toJSON(e.ctlogOptions)),e.tsaOptions!==void 0&&(t.tsaOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(e.tsaOptions)),e.integratedTsOptions!==void 0&&(t.integratedTsOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(e.integratedTsOptions)),e.observerOptions!==void 0&&(t.observerOptions=LI.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(e.observerOptions)),t}};LI.ArtifactVerificationOptions_TlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,performOnlineVerification:tE(e.performOnlineVerification)?globalThis.Boolean(e.performOnlineVerification):!1,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.performOnlineVerification!==!1&&(t.performOnlineVerification=e.performOnlineVerification),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_CtlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.Artifact={fromJSON(e){return{data:tE(e.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(e.artifactUri)}:tE(e.artifact)?{$case:"artifact",artifact:Buffer.from(SEl(e.artifact))}:tE(e.artifactDigest)?{$case:"artifactDigest",artifactDigest:Due.HashOutput.fromJSON(e.artifactDigest)}:void 0}},toJSON(e){let t={};return e.data?.$case==="artifactUri"?t.artifactUri=e.data.artifactUri:e.data?.$case==="artifact"?t.artifact=vEl(e.data.artifact):e.data?.$case==="artifactDigest"&&(t.artifactDigest=Due.HashOutput.toJSON(e.data.artifactDigest)),t}};LI.Input={fromJSON(e){return{artifactTrustRoot:tE(e.artifactTrustRoot)?kps.TrustedRoot.fromJSON(e.artifactTrustRoot):void 0,artifactVerificationOptions:tE(e.artifactVerificationOptions)?LI.ArtifactVerificationOptions.fromJSON(e.artifactVerificationOptions):void 0,bundle:tE(e.bundle)?Dps.Bundle.fromJSON(e.bundle):void 0,artifact:tE(e.artifact)?LI.Artifact.fromJSON(e.artifact):void 0}},toJSON(e){let t={};return e.artifactTrustRoot!==void 0&&(t.artifactTrustRoot=kps.TrustedRoot.toJSON(e.artifactTrustRoot)),e.artifactVerificationOptions!==void 0&&(t.artifactVerificationOptions=LI.ArtifactVerificationOptions.toJSON(e.artifactVerificationOptions)),e.bundle!==void 0&&(t.bundle=Dps.Bundle.toJSON(e.bundle)),e.artifact!==void 0&&(t.artifact=LI.Artifact.toJSON(e.artifact)),t}};function SEl(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function vEl(e){return globalThis.Buffer.from(e).toString("base64")}function tE(e){return e!=null}});var b7e=H(LH=>{"use strict";var BEl=LH&&LH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kGe=LH&&LH.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&BEl(t,e,r)};Object.defineProperty(LH,"__esModule",{value:!0});kGe(xUr(),LH);kGe(FUr(),LH);kGe(DGe(),LH);kGe(GUr(),LH);kGe(ZUr(),LH);kGe(xps(),LH)});var eFt=H(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.BUNDLE_V03_MEDIA_TYPE=KV.BUNDLE_V03_LEGACY_MEDIA_TYPE=KV.BUNDLE_V02_MEDIA_TYPE=KV.BUNDLE_V01_MEDIA_TYPE=void 0;KV.isBundleWithCertificateChain=wEl;KV.isBundleWithPublicKey=TEl;KV.isBundleWithMessageSignature=REl;KV.isBundleWithDsseEnvelope=NEl;KV.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";KV.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";KV.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";KV.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function wEl(e){return e.verificationMaterial.content.$case==="x509CertificateChain"}function TEl(e){return e.verificationMaterial.content.$case==="publicKey"}function REl(e){return e.content.$case==="messageSignature"}function NEl(e){return e.content.$case==="dsseEnvelope"}});var Fps=H(rFt=>{"use strict";Object.defineProperty(rFt,"__esModule",{value:!0});rFt.toMessageSignatureBundle=kEl;rFt.toDSSEBundle=xEl;var DEl=b7e(),tFt=eFt();function kEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:DEl.HashAlgorithm.SHA2_256,digest:e.digest},signature:e.signature}},verificationMaterial:Gps(e)}}function xEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:GEl(e)},verificationMaterial:Gps(e)}}function GEl(e){return{payloadType:e.artifactType,payload:e.artifact,signatures:[FEl(e)]}}function FEl(e){return{keyid:e.keyHint||"",sig:e.signature}}function Gps(e){return{content:ZEl(e),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function ZEl(e){return e.certificate?e.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:e.certificate}]}}:{$case:"certificate",certificate:{rawBytes:e.certificate}}:{$case:"publicKey",publicKey:{hint:e.keyHint||""}}}});var VUr=H(nFt=>{"use strict";Object.defineProperty(nFt,"__esModule",{value:!0});nFt.ValidationError=void 0;var LUr=class extends Error{constructor(t,r){super(t),this.fields=r}};nFt.ValidationError=LUr});var PUr=H(f0e=>{"use strict";Object.defineProperty(f0e,"__esModule",{value:!0});f0e.assertBundle=LEl;f0e.assertBundleV01=Zps;f0e.isBundleV01=VEl;f0e.assertBundleV02=PEl;f0e.assertBundleLatest=WEl;var iFt=VUr();function LEl(e){let t=sFt(e);if(t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function Zps(e){let t=[];if(t.push(...sFt(e)),t.push(...OEl(e)),t.length>0)throw new iFt.ValidationError("invalid v0.1 bundle",t)}function VEl(e){try{return Zps(e),!0}catch{return!1}}function PEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.length>0)throw new iFt.ValidationError("invalid v0.2 bundle",t)}function WEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.push(...MEl(e)),t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function sFt(e){let t=[];if((e.mediaType===void 0||!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&t.push("mediaType"),e.content===void 0)t.push("content");else switch(e.content.$case){case"messageSignature":e.content.messageSignature.messageDigest===void 0?t.push("content.messageSignature.messageDigest"):e.content.messageSignature.messageDigest.digest.length===0&&t.push("content.messageSignature.messageDigest.digest"),e.content.messageSignature.signature.length===0&&t.push("content.messageSignature.signature");break;case"dsseEnvelope":e.content.dsseEnvelope.payload.length===0&&t.push("content.dsseEnvelope.payload"),e.content.dsseEnvelope.signatures.length!==1?t.push("content.dsseEnvelope.signatures"):e.content.dsseEnvelope.signatures[0].sig.length===0&&t.push("content.dsseEnvelope.signatures[0].sig");break}if(e.verificationMaterial===void 0)t.push("verificationMaterial");else{if(e.verificationMaterial.content===void 0)t.push("verificationMaterial.content");else switch(e.verificationMaterial.content.$case){case"x509CertificateChain":e.verificationMaterial.content.x509CertificateChain.certificates.length===0&&t.push("verificationMaterial.content.x509CertificateChain.certificates"),e.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,n)=>{r.rawBytes.length===0&&t.push(`verificationMaterial.content.x509CertificateChain.certificates[${n}].rawBytes`)});break;case"certificate":e.verificationMaterial.content.certificate.rawBytes.length===0&&t.push("verificationMaterial.content.certificate.rawBytes");break}e.verificationMaterial.tlogEntries===void 0?t.push("verificationMaterial.tlogEntries"):e.verificationMaterial.tlogEntries.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.logId===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].logId`),r.kindVersion===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].kindVersion`)})}return t}function OEl(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionPromise===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionPromise`)}),t}function Lps(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionProof===void 0?t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof.checkpoint`)}),t}function MEl(e){let t=[];return e.verificationMaterial?.content?.$case==="x509CertificateChain"&&t.push("verificationMaterial.content.$case"),t}});var Pps=H(b6=>{"use strict";Object.defineProperty(b6,"__esModule",{value:!0});b6.envelopeToJSON=b6.envelopeFromJSON=b6.bundleToJSON=b6.bundleFromJSON=void 0;var oFt=b7e(),Vps=eFt(),WUr=PUr(),HEl=e=>{let t=oFt.Bundle.fromJSON(e);switch(t.mediaType){case Vps.BUNDLE_V01_MEDIA_TYPE:(0,WUr.assertBundleV01)(t);break;case Vps.BUNDLE_V02_MEDIA_TYPE:(0,WUr.assertBundleV02)(t);break;default:(0,WUr.assertBundleLatest)(t);break}return t};b6.bundleFromJSON=HEl;var YEl=e=>oFt.Bundle.toJSON(e);b6.bundleToJSON=YEl;var QEl=e=>oFt.Envelope.fromJSON(e);b6.envelopeFromJSON=QEl;var XEl=e=>oFt.Envelope.toJSON(e);b6.envelopeToJSON=XEl});var S7e=H(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});Ah.isBundleV01=Ah.assertBundleV02=Ah.assertBundleV01=Ah.assertBundleLatest=Ah.assertBundle=Ah.envelopeToJSON=Ah.envelopeFromJSON=Ah.bundleToJSON=Ah.bundleFromJSON=Ah.ValidationError=Ah.isBundleWithPublicKey=Ah.isBundleWithMessageSignature=Ah.isBundleWithDsseEnvelope=Ah.isBundleWithCertificateChain=Ah.BUNDLE_V03_MEDIA_TYPE=Ah.BUNDLE_V03_LEGACY_MEDIA_TYPE=Ah.BUNDLE_V02_MEDIA_TYPE=Ah.BUNDLE_V01_MEDIA_TYPE=Ah.toMessageSignatureBundle=Ah.toDSSEBundle=void 0;var Wps=Fps();Object.defineProperty(Ah,"toDSSEBundle",{enumerable:!0,get:function(){return Wps.toDSSEBundle}});Object.defineProperty(Ah,"toMessageSignatureBundle",{enumerable:!0,get:function(){return Wps.toMessageSignatureBundle}});var kue=eFt();Object.defineProperty(Ah,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Ah,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return kue.isBundleWithCertificateChain}});Object.defineProperty(Ah,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return kue.isBundleWithDsseEnvelope}});Object.defineProperty(Ah,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return kue.isBundleWithMessageSignature}});Object.defineProperty(Ah,"isBundleWithPublicKey",{enumerable:!0,get:function(){return kue.isBundleWithPublicKey}});var JEl=VUr();Object.defineProperty(Ah,"ValidationError",{enumerable:!0,get:function(){return JEl.ValidationError}});var aFt=Pps();Object.defineProperty(Ah,"bundleFromJSON",{enumerable:!0,get:function(){return aFt.bundleFromJSON}});Object.defineProperty(Ah,"bundleToJSON",{enumerable:!0,get:function(){return aFt.bundleToJSON}});Object.defineProperty(Ah,"envelopeFromJSON",{enumerable:!0,get:function(){return aFt.envelopeFromJSON}});Object.defineProperty(Ah,"envelopeToJSON",{enumerable:!0,get:function(){return aFt.envelopeToJSON}});var E7e=PUr();Object.defineProperty(Ah,"assertBundle",{enumerable:!0,get:function(){return E7e.assertBundle}});Object.defineProperty(Ah,"assertBundleLatest",{enumerable:!0,get:function(){return E7e.assertBundleLatest}});Object.defineProperty(Ah,"assertBundleV01",{enumerable:!0,get:function(){return E7e.assertBundleV01}});Object.defineProperty(Ah,"assertBundleV02",{enumerable:!0,get:function(){return E7e.assertBundleV02}});Object.defineProperty(Ah,"isBundleV01",{enumerable:!0,get:function(){return E7e.isBundleV01}})});var v7e=H(lFt=>{"use strict";Object.defineProperty(lFt,"__esModule",{value:!0});lFt.ByteStream=void 0;var OUr=class extends Error{},cFt=class e{constructor(t){this.start=0,t?(this.buf=t,this.view=Buffer.from(t)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(t){this.start=t}slice(t,r){let n=t+r;if(n>this.length)throw new OUr("request past end of buffer");return this.view.subarray(t,n)}appendChar(t){this.ensureCapacity(1),this.view[this.start]=t,this.start+=1}appendUint16(t){this.ensureCapacity(2);let r=new Uint16Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[1],this.view[this.start+1]=n[0],this.start+=2}appendUint24(t){this.ensureCapacity(3);let r=new Uint32Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[2],this.view[this.start+1]=n[1],this.view[this.start+2]=n[0],this.start+=3}appendView(t){this.ensureCapacity(t.length),this.view.set(t,this.start),this.start+=t.length}getBlock(t){if(t<=0)return Buffer.alloc(0);if(this.start+t>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+t);return this.start+=t,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let t=this.getBlock(2);return t[0]<<8|t[1]}ensureCapacity(t){if(this.start+t>this.view.byteLength){let r=e.BLOCK_SIZE+(t>e.BLOCK_SIZE?t:0);this.realloc(this.view.byteLength+r)}}realloc(t){let r=new ArrayBuffer(t),n=Buffer.from(r);n.set(this.view),this.buf=r,this.view=n}};lFt.ByteStream=cFt;cFt.BLOCK_SIZE=1024});var uFt=H(xGe=>{"use strict";Object.defineProperty(xGe,"__esModule",{value:!0});xGe.ASN1TypeError=xGe.ASN1ParseError=void 0;var MUr=class extends Error{};xGe.ASN1ParseError=MUr;var HUr=class extends Error{};xGe.ASN1TypeError=HUr});var Mps=H(gFt=>{"use strict";Object.defineProperty(gFt,"__esModule",{value:!0});gFt.decodeLength=UEl;gFt.encodeLength=KEl;var Ops=uFt();function UEl(e){let t=e.getUint8();if(!(t&128))return t;let r=t&127;if(r>6)throw new Ops.ASN1ParseError("length exceeds 6 byte limit");let n=0;for(let a=0;a0n;)r.unshift(Number(t&255n)),t=t>>8n;return Buffer.from([128|r.length,...r])}});var Yps=H(xue=>{"use strict";Object.defineProperty(xue,"__esModule",{value:!0});xue.parseInteger=qEl;xue.parseStringASCII=Hps;xue.parseTime=$El;xue.parseOID=e1l;xue.parseBoolean=t1l;xue.parseBitString=r1l;var jEl=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,zEl=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function qEl(e){let t=0,r=e.length,n=e[t],a=n>127,o=a?255:0;for(;n==o&&++t=50?1900:2e3,n[1]=a.toString()}return new Date(`${n[1]}-${n[2]}-${n[3]}T${n[4]}:${n[5]}:${n[6]}Z`)}function e1l(e){let t=0,r=e.length,n=e[t++],a=Math.floor(n/40),o=n%40,l=`${a}.${o}`,A=0;for(;t=A;--f)a.push(l>>f&1)}return a}});var Xps=H(AFt=>{"use strict";Object.defineProperty(AFt,"__esModule",{value:!0});AFt.ASN1Tag=void 0;var Qps=uFt(),I0e={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},YUr={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},QUr=class{constructor(t){if(this.number=t&31,this.constructed=(t&32)===32,this.class=t>>6,this.number===31)throw new Qps.ASN1ParseError("long form tags not supported");if(this.class===YUr.UNIVERSAL&&this.number===0)throw new Qps.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===YUr.UNIVERSAL}isContextSpecific(t){let r=this.class===YUr.CONTEXT_SPECIFIC;return t!==void 0?r&&this.number===t:r}isBoolean(){return this.isUniversal()&&this.number===I0e.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===I0e.INTEGER}isBitString(){return this.isUniversal()&&this.number===I0e.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===I0e.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===I0e.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===I0e.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===I0e.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};AFt.ASN1Tag=QUr});var jps=H(pFt=>{"use strict";Object.defineProperty(pFt,"__esModule",{value:!0});pFt.ASN1Obj=void 0;var XUr=v7e(),h0e=uFt(),Ups=Mps(),GGe=Yps(),n1l=Xps(),dFt=class{constructor(t,r,n){this.tag=t,this.value=r,this.subs=n}static parseBuffer(t){return Kps(new XUr.ByteStream(t))}toDER(){let t=new XUr.ByteStream;if(this.subs.length>0)for(let a of this.subs)t.appendView(a.toDER());else t.appendView(this.value);let r=t.buffer,n=new XUr.ByteStream;return n.appendChar(this.tag.toDER()),n.appendView((0,Ups.encodeLength)(r.length)),n.appendView(r),n.buffer}toBoolean(){if(!this.tag.isBoolean())throw new h0e.ASN1TypeError("not a boolean");return(0,GGe.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new h0e.ASN1TypeError("not an integer");return(0,GGe.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new h0e.ASN1TypeError("not an OID");return(0,GGe.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,GGe.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,GGe.parseTime)(this.value,!1);default:throw new h0e.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new h0e.ASN1TypeError("not a bit string");return(0,GGe.parseBitString)(this.value)}};pFt.ASN1Obj=dFt;function Kps(e){let t=new n1l.ASN1Tag(e.getUint8()),r=(0,Ups.decodeLength)(e),n=e.slice(e.position,r),a=e.position,o=[];if(t.constructed)o=Jps(e,r);else if(t.isOctetString())try{o=Jps(e,r)}catch{}return o.length===0&&e.seek(a+r),new dFt(t,n,o)}function Jps(e,t){let r=e.position+t;if(r>e.length)throw new h0e.ASN1ParseError("invalid length");let n=[];for(;e.position{"use strict";Object.defineProperty(fFt,"__esModule",{value:!0});fFt.ASN1Obj=void 0;var i1l=jps();Object.defineProperty(fFt,"ASN1Obj",{enumerable:!0,get:function(){return i1l.ASN1Obj}})});var FGe=H(Gue=>{"use strict";var s1l=Gue&&Gue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gue,"__esModule",{value:!0});Gue.createPublicKey=o1l;Gue.digest=a1l;Gue.verify=c1l;Gue.bufferEqual=l1l;var B7e=s1l(wt("crypto"));function o1l(e,t="spki"){return typeof e=="string"?B7e.default.createPublicKey(e):B7e.default.createPublicKey({key:e,format:"der",type:t})}function a1l(e,...t){let r=B7e.default.createHash(e);for(let n of t)r.update(n);return r.digest()}function c1l(e,t,r,n){try{return B7e.default.verify(n,e,t,r)}catch{return!1}}function l1l(e,t){try{return B7e.default.timingSafeEqual(e,t)}catch{return!1}}});var zps=H(JUr=>{"use strict";Object.defineProperty(JUr,"__esModule",{value:!0});JUr.preAuthEncoding=g1l;var u1l="DSSEv1";function g1l(e,t){let r=[u1l,e.length,e,t.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),t])}});var efs=H(hFt=>{"use strict";Object.defineProperty(hFt,"__esModule",{value:!0});hFt.base64Encode=A1l;hFt.base64Decode=d1l;var qps="base64",$ps="utf-8";function A1l(e){return Buffer.from(e,$ps).toString(qps)}function d1l(e){return Buffer.from(e,qps).toString($ps)}});var tfs=H(KUr=>{"use strict";Object.defineProperty(KUr,"__esModule",{value:!0});KUr.canonicalize=UUr;function UUr(e){let t="";if(e===null||typeof e!="object"||e.toJSON!=null)t+=JSON.stringify(e);else if(Array.isArray(e)){t+="[";let r=!0;e.forEach(n=>{r||(t+=","),r=!1,t+=UUr(n)}),t+="]"}else{t+="{";let r=!0;Object.keys(e).sort().forEach(n=>{r||(t+=","),r=!1,t+=JSON.stringify(n),t+=":",t+=UUr(e[n])}),t+="}"}return t}});var jUr=H(mFt=>{"use strict";Object.defineProperty(mFt,"__esModule",{value:!0});mFt.toDER=I1l;mFt.fromDER=h1l;var p1l=/-----BEGIN (.*)-----/,f1l=/-----END (.*)-----/;function I1l(e){let t="";return e.split(` -`).forEach(r=>{r.match(p1l)||r.match(f1l)||(t+=r)}),Buffer.from(t,"base64")}function h1l(e,t="CERTIFICATE"){let n=e.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${t}-----`,...n,`-----END ${t}-----`].join(` + Found: ${e.length}`);throw A.code="EBADSIZE",A.found=e.length,A.expected=r.size,A.sri=t,A}else{let A=new Error(`Integrity checksum failed when using ${n}: Wanted ${t}, but got ${o}. (${e.length} bytes)`);throw A.code="EINTEGRITY",A.found=o,A.expected=t,A.algorithm=n,A.sri=t,A}}m6.exports.checkStream=CEl;function CEl(e,t,r){if(r=r||Object.create(null),r.integrity=t,t=YO(t,r),!t||!Object.keys(t).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let n=kUr(r);return new Promise((a,o)=>{e.pipe(n),e.on("error",o),n.on("error",o);let l;n.on("verified",A=>{l=A}),n.on("end",()=>a(l)),n.resume()})}m6.exports.integrityStream=kUr;function kUr(e=Object.create(null)){return new NUr(e)}m6.exports.create=_El;function _El(e){let t=e?.algorithms||[...DUr],r=y7e(e?.options),n=t.map(_7e.createHash);return{update:function(a,o){return n.forEach(l=>l.update(a,o)),this},digest:function(){return t.reduce((o,l)=>{let A=n.shift().digest("base64"),f=new Xte(`${l}-${A}${r}`,e);if(f.algorithm&&f.digest){let I=f.algorithm;o[I]||(o[I]=[]),o[I].push(f)}return o},new A0e)}}}var yEl=_7e.getHashes(),pps=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>yEl.includes(e));function bEl(e,t){return pps.indexOf(e.toLowerCase())>=pps.indexOf(t.toLowerCase())?e:t}});var xUr=H(Rue=>{"use strict";Object.defineProperty(Rue,"__esModule",{value:!0});Rue.Signature=Rue.Envelope=void 0;Rue.Envelope={fromJSON(e){return{payload:jGt(e.payload)?Buffer.from(fps(e.payload)):Buffer.alloc(0),payloadType:jGt(e.payloadType)?globalThis.String(e.payloadType):"",signatures:globalThis.Array.isArray(e?.signatures)?e.signatures.map(t=>Rue.Signature.fromJSON(t)):[]}},toJSON(e){let t={};return e.payload.length!==0&&(t.payload=Ips(e.payload)),e.payloadType!==""&&(t.payloadType=e.payloadType),e.signatures?.length&&(t.signatures=e.signatures.map(r=>Rue.Signature.toJSON(r))),t}};Rue.Signature={fromJSON(e){return{sig:jGt(e.sig)?Buffer.from(fps(e.sig)):Buffer.alloc(0),keyid:jGt(e.keyid)?globalThis.String(e.keyid):""}},toJSON(e){let t={};return e.sig.length!==0&&(t.sig=Ips(e.sig)),e.keyid!==""&&(t.keyid=e.keyid),t}};function fps(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function Ips(e){return globalThis.Buffer.from(e).toString("base64")}function jGt(e){return e!=null}});var mps=H(zGt=>{"use strict";Object.defineProperty(zGt,"__esModule",{value:!0});zGt.Timestamp=void 0;zGt.Timestamp={fromJSON(e){return{seconds:hps(e.seconds)?globalThis.String(e.seconds):"0",nanos:hps(e.nanos)?globalThis.Number(e.nanos):0}},toJSON(e){let t={};return e.seconds!=="0"&&(t.seconds=e.seconds),e.nanos!==0&&(t.nanos=Math.round(e.nanos)),t}};function hps(e){return e!=null}});var DGe=H(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.TimeRange=Vf.X509CertificateChain=Vf.SubjectAlternativeName=Vf.X509Certificate=Vf.DistinguishedName=Vf.ObjectIdentifierValuePair=Vf.ObjectIdentifier=Vf.PublicKeyIdentifier=Vf.PublicKey=Vf.RFC3161SignedTimestamp=Vf.LogId=Vf.MessageSignature=Vf.HashOutput=Vf.SubjectAlternativeNameType=Vf.PublicKeyDetails=Vf.HashAlgorithm=void 0;Vf.hashAlgorithmFromJSON=_ps;Vf.hashAlgorithmToJSON=yps;Vf.publicKeyDetailsFromJSON=bps;Vf.publicKeyDetailsToJSON=Eps;Vf.subjectAlternativeNameTypeFromJSON=Sps;Vf.subjectAlternativeNameTypeToJSON=vps;var EEl=mps(),UV;(function(e){e[e.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",e[e.SHA2_256=1]="SHA2_256",e[e.SHA2_384=2]="SHA2_384",e[e.SHA2_512=3]="SHA2_512",e[e.SHA3_256=4]="SHA3_256",e[e.SHA3_384=5]="SHA3_384"})(UV||(Vf.HashAlgorithm=UV={}));function _ps(e){switch(e){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return UV.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return UV.SHA2_256;case 2:case"SHA2_384":return UV.SHA2_384;case 3:case"SHA2_512":return UV.SHA2_512;case 4:case"SHA3_256":return UV.SHA3_256;case 5:case"SHA3_384":return UV.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}function yps(e){switch(e){case UV.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case UV.SHA2_256:return"SHA2_256";case UV.SHA2_384:return"SHA2_384";case UV.SHA2_512:return"SHA2_512";case UV.SHA3_256:return"SHA3_256";case UV.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}var Lf;(function(e){e[e.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",e[e.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",e[e.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",e[e.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",e[e.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",e[e.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",e[e.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",e[e.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",e[e.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",e[e.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",e[e.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",e[e.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",e[e.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",e[e.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",e[e.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",e[e.PKIX_ED25519=7]="PKIX_ED25519",e[e.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",e[e.PKIX_ECDSA_P384_SHA_256=19]="PKIX_ECDSA_P384_SHA_256",e[e.PKIX_ECDSA_P521_SHA_256=20]="PKIX_ECDSA_P521_SHA_256",e[e.LMS_SHA256=14]="LMS_SHA256",e[e.LMOTS_SHA256=15]="LMOTS_SHA256",e[e.ML_DSA_65=21]="ML_DSA_65",e[e.ML_DSA_87=22]="ML_DSA_87"})(Lf||(Vf.PublicKeyDetails=Lf={}));function bps(e){switch(e){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return Lf.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return Lf.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return Lf.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return Lf.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return Lf.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return Lf.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return Lf.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return Lf.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return Lf.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return Lf.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return Lf.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return Lf.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return Lf.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return Lf.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return Lf.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return Lf.PKIX_ED25519_PH;case 19:case"PKIX_ECDSA_P384_SHA_256":return Lf.PKIX_ECDSA_P384_SHA_256;case 20:case"PKIX_ECDSA_P521_SHA_256":return Lf.PKIX_ECDSA_P521_SHA_256;case 14:case"LMS_SHA256":return Lf.LMS_SHA256;case 15:case"LMOTS_SHA256":return Lf.LMOTS_SHA256;case 21:case"ML_DSA_65":return Lf.ML_DSA_65;case 22:case"ML_DSA_87":return Lf.ML_DSA_87;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}function Eps(e){switch(e){case Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case Lf.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case Lf.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case Lf.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case Lf.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case Lf.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case Lf.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case Lf.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case Lf.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case Lf.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case Lf.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case Lf.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case Lf.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case Lf.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case Lf.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case Lf.PKIX_ED25519:return"PKIX_ED25519";case Lf.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case Lf.PKIX_ECDSA_P384_SHA_256:return"PKIX_ECDSA_P384_SHA_256";case Lf.PKIX_ECDSA_P521_SHA_256:return"PKIX_ECDSA_P521_SHA_256";case Lf.LMS_SHA256:return"LMS_SHA256";case Lf.LMOTS_SHA256:return"LMOTS_SHA256";case Lf.ML_DSA_65:return"ML_DSA_65";case Lf.ML_DSA_87:return"ML_DSA_87";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}var C6;(function(e){e[e.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",e[e.EMAIL=1]="EMAIL",e[e.URI=2]="URI",e[e.OTHER_NAME=3]="OTHER_NAME"})(C6||(Vf.SubjectAlternativeNameType=C6={}));function Sps(e){switch(e){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return C6.EMAIL;case 2:case"URI":return C6.URI;case 3:case"OTHER_NAME":return C6.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}function vps(e){switch(e){case C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case C6.EMAIL:return"EMAIL";case C6.URI:return"URI";case C6.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}Vf.HashOutput={fromJSON(e){return{algorithm:ST(e.algorithm)?_ps(e.algorithm):0,digest:ST(e.digest)?Buffer.from(d0e(e.digest)):Buffer.alloc(0)}},toJSON(e){let t={};return e.algorithm!==0&&(t.algorithm=yps(e.algorithm)),e.digest.length!==0&&(t.digest=p0e(e.digest)),t}};Vf.MessageSignature={fromJSON(e){return{messageDigest:ST(e.messageDigest)?Vf.HashOutput.fromJSON(e.messageDigest):void 0,signature:ST(e.signature)?Buffer.from(d0e(e.signature)):Buffer.alloc(0)}},toJSON(e){let t={};return e.messageDigest!==void 0&&(t.messageDigest=Vf.HashOutput.toJSON(e.messageDigest)),e.signature.length!==0&&(t.signature=p0e(e.signature)),t}};Vf.LogId={fromJSON(e){return{keyId:ST(e.keyId)?Buffer.from(d0e(e.keyId)):Buffer.alloc(0)}},toJSON(e){let t={};return e.keyId.length!==0&&(t.keyId=p0e(e.keyId)),t}};Vf.RFC3161SignedTimestamp={fromJSON(e){return{signedTimestamp:ST(e.signedTimestamp)?Buffer.from(d0e(e.signedTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedTimestamp.length!==0&&(t.signedTimestamp=p0e(e.signedTimestamp)),t}};Vf.PublicKey={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):void 0,keyDetails:ST(e.keyDetails)?bps(e.keyDetails):0,validFor:ST(e.validFor)?Vf.TimeRange.fromJSON(e.validFor):void 0}},toJSON(e){let t={};return e.rawBytes!==void 0&&(t.rawBytes=p0e(e.rawBytes)),e.keyDetails!==0&&(t.keyDetails=Eps(e.keyDetails)),e.validFor!==void 0&&(t.validFor=Vf.TimeRange.toJSON(e.validFor)),t}};Vf.PublicKeyIdentifier={fromJSON(e){return{hint:ST(e.hint)?globalThis.String(e.hint):""}},toJSON(e){let t={};return e.hint!==""&&(t.hint=e.hint),t}};Vf.ObjectIdentifier={fromJSON(e){return{id:globalThis.Array.isArray(e?.id)?e.id.map(t=>globalThis.Number(t)):[]}},toJSON(e){let t={};return e.id?.length&&(t.id=e.id.map(r=>Math.round(r))),t}};Vf.ObjectIdentifierValuePair={fromJSON(e){return{oid:ST(e.oid)?Vf.ObjectIdentifier.fromJSON(e.oid):void 0,value:ST(e.value)?Buffer.from(d0e(e.value)):Buffer.alloc(0)}},toJSON(e){let t={};return e.oid!==void 0&&(t.oid=Vf.ObjectIdentifier.toJSON(e.oid)),e.value.length!==0&&(t.value=p0e(e.value)),t}};Vf.DistinguishedName={fromJSON(e){return{organization:ST(e.organization)?globalThis.String(e.organization):"",commonName:ST(e.commonName)?globalThis.String(e.commonName):""}},toJSON(e){let t={};return e.organization!==""&&(t.organization=e.organization),e.commonName!==""&&(t.commonName=e.commonName),t}};Vf.X509Certificate={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):Buffer.alloc(0)}},toJSON(e){let t={};return e.rawBytes.length!==0&&(t.rawBytes=p0e(e.rawBytes)),t}};Vf.SubjectAlternativeName={fromJSON(e){return{type:ST(e.type)?Sps(e.type):0,identity:ST(e.regexp)?{$case:"regexp",regexp:globalThis.String(e.regexp)}:ST(e.value)?{$case:"value",value:globalThis.String(e.value)}:void 0}},toJSON(e){let t={};return e.type!==0&&(t.type=vps(e.type)),e.identity?.$case==="regexp"?t.regexp=e.identity.regexp:e.identity?.$case==="value"&&(t.value=e.identity.value),t}};Vf.X509CertificateChain={fromJSON(e){return{certificates:globalThis.Array.isArray(e?.certificates)?e.certificates.map(t=>Vf.X509Certificate.fromJSON(t)):[]}},toJSON(e){let t={};return e.certificates?.length&&(t.certificates=e.certificates.map(r=>Vf.X509Certificate.toJSON(r))),t}};Vf.TimeRange={fromJSON(e){return{start:ST(e.start)?Cps(e.start):void 0,end:ST(e.end)?Cps(e.end):void 0}},toJSON(e){let t={};return e.start!==void 0&&(t.start=e.start.toISOString()),e.end!==void 0&&(t.end=e.end.toISOString()),t}};function d0e(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function p0e(e){return globalThis.Buffer.from(e).toString("base64")}function SEl(e){let t=(globalThis.Number(e.seconds)||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function Cps(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):SEl(EEl.Timestamp.fromJSON(e))}function ST(e){return e!=null}});var GUr=H(vT=>{"use strict";Object.defineProperty(vT,"__esModule",{value:!0});vT.TransparencyLogEntry=vT.InclusionPromise=vT.InclusionProof=vT.Checkpoint=vT.KindVersion=void 0;var Bps=DGe();vT.KindVersion={fromJSON(e){return{kind:dL(e.kind)?globalThis.String(e.kind):"",version:dL(e.version)?globalThis.String(e.version):""}},toJSON(e){let t={};return e.kind!==""&&(t.kind=e.kind),e.version!==""&&(t.version=e.version),t}};vT.Checkpoint={fromJSON(e){return{envelope:dL(e.envelope)?globalThis.String(e.envelope):""}},toJSON(e){let t={};return e.envelope!==""&&(t.envelope=e.envelope),t}};vT.InclusionProof={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",rootHash:dL(e.rootHash)?Buffer.from(qGt(e.rootHash)):Buffer.alloc(0),treeSize:dL(e.treeSize)?globalThis.String(e.treeSize):"0",hashes:globalThis.Array.isArray(e?.hashes)?e.hashes.map(t=>Buffer.from(qGt(t))):[],checkpoint:dL(e.checkpoint)?vT.Checkpoint.fromJSON(e.checkpoint):void 0}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.rootHash.length!==0&&(t.rootHash=$Gt(e.rootHash)),e.treeSize!=="0"&&(t.treeSize=e.treeSize),e.hashes?.length&&(t.hashes=e.hashes.map(r=>$Gt(r))),e.checkpoint!==void 0&&(t.checkpoint=vT.Checkpoint.toJSON(e.checkpoint)),t}};vT.InclusionPromise={fromJSON(e){return{signedEntryTimestamp:dL(e.signedEntryTimestamp)?Buffer.from(qGt(e.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedEntryTimestamp.length!==0&&(t.signedEntryTimestamp=$Gt(e.signedEntryTimestamp)),t}};vT.TransparencyLogEntry={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",logId:dL(e.logId)?Bps.LogId.fromJSON(e.logId):void 0,kindVersion:dL(e.kindVersion)?vT.KindVersion.fromJSON(e.kindVersion):void 0,integratedTime:dL(e.integratedTime)?globalThis.String(e.integratedTime):"0",inclusionPromise:dL(e.inclusionPromise)?vT.InclusionPromise.fromJSON(e.inclusionPromise):void 0,inclusionProof:dL(e.inclusionProof)?vT.InclusionProof.fromJSON(e.inclusionProof):void 0,canonicalizedBody:dL(e.canonicalizedBody)?Buffer.from(qGt(e.canonicalizedBody)):Buffer.alloc(0)}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.logId!==void 0&&(t.logId=Bps.LogId.toJSON(e.logId)),e.kindVersion!==void 0&&(t.kindVersion=vT.KindVersion.toJSON(e.kindVersion)),e.integratedTime!=="0"&&(t.integratedTime=e.integratedTime),e.inclusionPromise!==void 0&&(t.inclusionPromise=vT.InclusionPromise.toJSON(e.inclusionPromise)),e.inclusionProof!==void 0&&(t.inclusionProof=vT.InclusionProof.toJSON(e.inclusionProof)),e.canonicalizedBody.length!==0&&(t.canonicalizedBody=$Gt(e.canonicalizedBody)),t}};function qGt(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function $Gt(e){return globalThis.Buffer.from(e).toString("base64")}function dL(e){return e!=null}});var FUr=H(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.Bundle=ZH.VerificationMaterial=ZH.TimestampVerificationData=void 0;var wps=xUr(),_6=DGe(),Tps=GUr();ZH.TimestampVerificationData={fromJSON(e){return{rfc3161Timestamps:globalThis.Array.isArray(e?.rfc3161Timestamps)?e.rfc3161Timestamps.map(t=>_6.RFC3161SignedTimestamp.fromJSON(t)):[]}},toJSON(e){let t={};return e.rfc3161Timestamps?.length&&(t.rfc3161Timestamps=e.rfc3161Timestamps.map(r=>_6.RFC3161SignedTimestamp.toJSON(r))),t}};ZH.VerificationMaterial={fromJSON(e){return{content:Nue(e.publicKey)?{$case:"publicKey",publicKey:_6.PublicKeyIdentifier.fromJSON(e.publicKey)}:Nue(e.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:_6.X509CertificateChain.fromJSON(e.x509CertificateChain)}:Nue(e.certificate)?{$case:"certificate",certificate:_6.X509Certificate.fromJSON(e.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(e?.tlogEntries)?e.tlogEntries.map(t=>Tps.TransparencyLogEntry.fromJSON(t)):[],timestampVerificationData:Nue(e.timestampVerificationData)?ZH.TimestampVerificationData.fromJSON(e.timestampVerificationData):void 0}},toJSON(e){let t={};return e.content?.$case==="publicKey"?t.publicKey=_6.PublicKeyIdentifier.toJSON(e.content.publicKey):e.content?.$case==="x509CertificateChain"?t.x509CertificateChain=_6.X509CertificateChain.toJSON(e.content.x509CertificateChain):e.content?.$case==="certificate"&&(t.certificate=_6.X509Certificate.toJSON(e.content.certificate)),e.tlogEntries?.length&&(t.tlogEntries=e.tlogEntries.map(r=>Tps.TransparencyLogEntry.toJSON(r))),e.timestampVerificationData!==void 0&&(t.timestampVerificationData=ZH.TimestampVerificationData.toJSON(e.timestampVerificationData)),t}};ZH.Bundle={fromJSON(e){return{mediaType:Nue(e.mediaType)?globalThis.String(e.mediaType):"",verificationMaterial:Nue(e.verificationMaterial)?ZH.VerificationMaterial.fromJSON(e.verificationMaterial):void 0,content:Nue(e.messageSignature)?{$case:"messageSignature",messageSignature:_6.MessageSignature.fromJSON(e.messageSignature)}:Nue(e.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:wps.Envelope.fromJSON(e.dsseEnvelope)}:void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.verificationMaterial!==void 0&&(t.verificationMaterial=ZH.VerificationMaterial.toJSON(e.verificationMaterial)),e.content?.$case==="messageSignature"?t.messageSignature=_6.MessageSignature.toJSON(e.content.messageSignature):e.content?.$case==="dsseEnvelope"&&(t.dsseEnvelope=wps.Envelope.toJSON(e.content.dsseEnvelope)),t}};function Nue(e){return e!=null}});var ZUr=H(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.ClientTrustConfig=ZI.ServiceConfiguration=ZI.Service=ZI.SigningConfig=ZI.TrustedRoot=ZI.CertificateAuthority=ZI.TransparencyLogInstance=ZI.ServiceSelector=void 0;ZI.serviceSelectorFromJSON=Rps;ZI.serviceSelectorToJSON=Nps;var nF=DGe(),y6;(function(e){e[e.SERVICE_SELECTOR_UNDEFINED=0]="SERVICE_SELECTOR_UNDEFINED",e[e.ALL=1]="ALL",e[e.ANY=2]="ANY",e[e.EXACT=3]="EXACT"})(y6||(ZI.ServiceSelector=y6={}));function Rps(e){switch(e){case 0:case"SERVICE_SELECTOR_UNDEFINED":return y6.SERVICE_SELECTOR_UNDEFINED;case 1:case"ALL":return y6.ALL;case 2:case"ANY":return y6.ANY;case 3:case"EXACT":return y6.EXACT;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}function Nps(e){switch(e){case y6.SERVICE_SELECTOR_UNDEFINED:return"SERVICE_SELECTOR_UNDEFINED";case y6.ALL:return"ALL";case y6.ANY:return"ANY";case y6.EXACT:return"EXACT";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}ZI.TransparencyLogInstance={fromJSON(e){return{baseUrl:P2(e.baseUrl)?globalThis.String(e.baseUrl):"",hashAlgorithm:P2(e.hashAlgorithm)?(0,nF.hashAlgorithmFromJSON)(e.hashAlgorithm):0,publicKey:P2(e.publicKey)?nF.PublicKey.fromJSON(e.publicKey):void 0,logId:P2(e.logId)?nF.LogId.fromJSON(e.logId):void 0,checkpointKeyId:P2(e.checkpointKeyId)?nF.LogId.fromJSON(e.checkpointKeyId):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.baseUrl!==""&&(t.baseUrl=e.baseUrl),e.hashAlgorithm!==0&&(t.hashAlgorithm=(0,nF.hashAlgorithmToJSON)(e.hashAlgorithm)),e.publicKey!==void 0&&(t.publicKey=nF.PublicKey.toJSON(e.publicKey)),e.logId!==void 0&&(t.logId=nF.LogId.toJSON(e.logId)),e.checkpointKeyId!==void 0&&(t.checkpointKeyId=nF.LogId.toJSON(e.checkpointKeyId)),e.operator!==""&&(t.operator=e.operator),t}};ZI.CertificateAuthority={fromJSON(e){return{subject:P2(e.subject)?nF.DistinguishedName.fromJSON(e.subject):void 0,uri:P2(e.uri)?globalThis.String(e.uri):"",certChain:P2(e.certChain)?nF.X509CertificateChain.fromJSON(e.certChain):void 0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.subject!==void 0&&(t.subject=nF.DistinguishedName.toJSON(e.subject)),e.uri!==""&&(t.uri=e.uri),e.certChain!==void 0&&(t.certChain=nF.X509CertificateChain.toJSON(e.certChain)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.TrustedRoot={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",tlogs:globalThis.Array.isArray(e?.tlogs)?e.tlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],certificateAuthorities:globalThis.Array.isArray(e?.certificateAuthorities)?e.certificateAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[],ctlogs:globalThis.Array.isArray(e?.ctlogs)?e.ctlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],timestampAuthorities:globalThis.Array.isArray(e?.timestampAuthorities)?e.timestampAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[]}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.tlogs?.length&&(t.tlogs=e.tlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.certificateAuthorities?.length&&(t.certificateAuthorities=e.certificateAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),e.ctlogs?.length&&(t.ctlogs=e.ctlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.timestampAuthorities?.length&&(t.timestampAuthorities=e.timestampAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),t}};ZI.SigningConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",caUrls:globalThis.Array.isArray(e?.caUrls)?e.caUrls.map(t=>ZI.Service.fromJSON(t)):[],oidcUrls:globalThis.Array.isArray(e?.oidcUrls)?e.oidcUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogUrls:globalThis.Array.isArray(e?.rekorTlogUrls)?e.rekorTlogUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogConfig:P2(e.rekorTlogConfig)?ZI.ServiceConfiguration.fromJSON(e.rekorTlogConfig):void 0,tsaUrls:globalThis.Array.isArray(e?.tsaUrls)?e.tsaUrls.map(t=>ZI.Service.fromJSON(t)):[],tsaConfig:P2(e.tsaConfig)?ZI.ServiceConfiguration.fromJSON(e.tsaConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.caUrls?.length&&(t.caUrls=e.caUrls.map(r=>ZI.Service.toJSON(r))),e.oidcUrls?.length&&(t.oidcUrls=e.oidcUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogUrls?.length&&(t.rekorTlogUrls=e.rekorTlogUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogConfig!==void 0&&(t.rekorTlogConfig=ZI.ServiceConfiguration.toJSON(e.rekorTlogConfig)),e.tsaUrls?.length&&(t.tsaUrls=e.tsaUrls.map(r=>ZI.Service.toJSON(r))),e.tsaConfig!==void 0&&(t.tsaConfig=ZI.ServiceConfiguration.toJSON(e.tsaConfig)),t}};ZI.Service={fromJSON(e){return{url:P2(e.url)?globalThis.String(e.url):"",majorApiVersion:P2(e.majorApiVersion)?globalThis.Number(e.majorApiVersion):0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),e.majorApiVersion!==0&&(t.majorApiVersion=Math.round(e.majorApiVersion)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.ServiceConfiguration={fromJSON(e){return{selector:P2(e.selector)?Rps(e.selector):0,count:P2(e.count)?globalThis.Number(e.count):0}},toJSON(e){let t={};return e.selector!==0&&(t.selector=Nps(e.selector)),e.count!==0&&(t.count=Math.round(e.count)),t}};ZI.ClientTrustConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",trustedRoot:P2(e.trustedRoot)?ZI.TrustedRoot.fromJSON(e.trustedRoot):void 0,signingConfig:P2(e.signingConfig)?ZI.SigningConfig.fromJSON(e.signingConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.trustedRoot!==void 0&&(t.trustedRoot=ZI.TrustedRoot.toJSON(e.trustedRoot)),e.signingConfig!==void 0&&(t.signingConfig=ZI.SigningConfig.toJSON(e.signingConfig)),t}};function P2(e){return e!=null}});var xps=H(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.Input=LI.Artifact=LI.ArtifactVerificationOptions_ObserverTimestampOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions=LI.ArtifactVerificationOptions_CtlogOptions=LI.ArtifactVerificationOptions_TlogOptions=LI.ArtifactVerificationOptions=LI.PublicKeyIdentities=LI.CertificateIdentities=LI.CertificateIdentity=void 0;var Dps=FUr(),Due=DGe(),kps=ZUr();LI.CertificateIdentity={fromJSON(e){return{issuer:tE(e.issuer)?globalThis.String(e.issuer):"",san:tE(e.san)?Due.SubjectAlternativeName.fromJSON(e.san):void 0,oids:globalThis.Array.isArray(e?.oids)?e.oids.map(t=>Due.ObjectIdentifierValuePair.fromJSON(t)):[]}},toJSON(e){let t={};return e.issuer!==""&&(t.issuer=e.issuer),e.san!==void 0&&(t.san=Due.SubjectAlternativeName.toJSON(e.san)),e.oids?.length&&(t.oids=e.oids.map(r=>Due.ObjectIdentifierValuePair.toJSON(r))),t}};LI.CertificateIdentities={fromJSON(e){return{identities:globalThis.Array.isArray(e?.identities)?e.identities.map(t=>LI.CertificateIdentity.fromJSON(t)):[]}},toJSON(e){let t={};return e.identities?.length&&(t.identities=e.identities.map(r=>LI.CertificateIdentity.toJSON(r))),t}};LI.PublicKeyIdentities={fromJSON(e){return{publicKeys:globalThis.Array.isArray(e?.publicKeys)?e.publicKeys.map(t=>Due.PublicKey.fromJSON(t)):[]}},toJSON(e){let t={};return e.publicKeys?.length&&(t.publicKeys=e.publicKeys.map(r=>Due.PublicKey.toJSON(r))),t}};LI.ArtifactVerificationOptions={fromJSON(e){return{signers:tE(e.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:LI.CertificateIdentities.fromJSON(e.certificateIdentities)}:tE(e.publicKeys)?{$case:"publicKeys",publicKeys:LI.PublicKeyIdentities.fromJSON(e.publicKeys)}:void 0,tlogOptions:tE(e.tlogOptions)?LI.ArtifactVerificationOptions_TlogOptions.fromJSON(e.tlogOptions):void 0,ctlogOptions:tE(e.ctlogOptions)?LI.ArtifactVerificationOptions_CtlogOptions.fromJSON(e.ctlogOptions):void 0,tsaOptions:tE(e.tsaOptions)?LI.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(e.tsaOptions):void 0,integratedTsOptions:tE(e.integratedTsOptions)?LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(e.integratedTsOptions):void 0,observerOptions:tE(e.observerOptions)?LI.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(e.observerOptions):void 0}},toJSON(e){let t={};return e.signers?.$case==="certificateIdentities"?t.certificateIdentities=LI.CertificateIdentities.toJSON(e.signers.certificateIdentities):e.signers?.$case==="publicKeys"&&(t.publicKeys=LI.PublicKeyIdentities.toJSON(e.signers.publicKeys)),e.tlogOptions!==void 0&&(t.tlogOptions=LI.ArtifactVerificationOptions_TlogOptions.toJSON(e.tlogOptions)),e.ctlogOptions!==void 0&&(t.ctlogOptions=LI.ArtifactVerificationOptions_CtlogOptions.toJSON(e.ctlogOptions)),e.tsaOptions!==void 0&&(t.tsaOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(e.tsaOptions)),e.integratedTsOptions!==void 0&&(t.integratedTsOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(e.integratedTsOptions)),e.observerOptions!==void 0&&(t.observerOptions=LI.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(e.observerOptions)),t}};LI.ArtifactVerificationOptions_TlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,performOnlineVerification:tE(e.performOnlineVerification)?globalThis.Boolean(e.performOnlineVerification):!1,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.performOnlineVerification!==!1&&(t.performOnlineVerification=e.performOnlineVerification),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_CtlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.Artifact={fromJSON(e){return{data:tE(e.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(e.artifactUri)}:tE(e.artifact)?{$case:"artifact",artifact:Buffer.from(vEl(e.artifact))}:tE(e.artifactDigest)?{$case:"artifactDigest",artifactDigest:Due.HashOutput.fromJSON(e.artifactDigest)}:void 0}},toJSON(e){let t={};return e.data?.$case==="artifactUri"?t.artifactUri=e.data.artifactUri:e.data?.$case==="artifact"?t.artifact=BEl(e.data.artifact):e.data?.$case==="artifactDigest"&&(t.artifactDigest=Due.HashOutput.toJSON(e.data.artifactDigest)),t}};LI.Input={fromJSON(e){return{artifactTrustRoot:tE(e.artifactTrustRoot)?kps.TrustedRoot.fromJSON(e.artifactTrustRoot):void 0,artifactVerificationOptions:tE(e.artifactVerificationOptions)?LI.ArtifactVerificationOptions.fromJSON(e.artifactVerificationOptions):void 0,bundle:tE(e.bundle)?Dps.Bundle.fromJSON(e.bundle):void 0,artifact:tE(e.artifact)?LI.Artifact.fromJSON(e.artifact):void 0}},toJSON(e){let t={};return e.artifactTrustRoot!==void 0&&(t.artifactTrustRoot=kps.TrustedRoot.toJSON(e.artifactTrustRoot)),e.artifactVerificationOptions!==void 0&&(t.artifactVerificationOptions=LI.ArtifactVerificationOptions.toJSON(e.artifactVerificationOptions)),e.bundle!==void 0&&(t.bundle=Dps.Bundle.toJSON(e.bundle)),e.artifact!==void 0&&(t.artifact=LI.Artifact.toJSON(e.artifact)),t}};function vEl(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function BEl(e){return globalThis.Buffer.from(e).toString("base64")}function tE(e){return e!=null}});var b7e=H(LH=>{"use strict";var wEl=LH&&LH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kGe=LH&&LH.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&wEl(t,e,r)};Object.defineProperty(LH,"__esModule",{value:!0});kGe(xUr(),LH);kGe(FUr(),LH);kGe(DGe(),LH);kGe(GUr(),LH);kGe(ZUr(),LH);kGe(xps(),LH)});var eFt=H(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.BUNDLE_V03_MEDIA_TYPE=KV.BUNDLE_V03_LEGACY_MEDIA_TYPE=KV.BUNDLE_V02_MEDIA_TYPE=KV.BUNDLE_V01_MEDIA_TYPE=void 0;KV.isBundleWithCertificateChain=TEl;KV.isBundleWithPublicKey=REl;KV.isBundleWithMessageSignature=NEl;KV.isBundleWithDsseEnvelope=DEl;KV.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";KV.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";KV.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";KV.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function TEl(e){return e.verificationMaterial.content.$case==="x509CertificateChain"}function REl(e){return e.verificationMaterial.content.$case==="publicKey"}function NEl(e){return e.content.$case==="messageSignature"}function DEl(e){return e.content.$case==="dsseEnvelope"}});var Fps=H(rFt=>{"use strict";Object.defineProperty(rFt,"__esModule",{value:!0});rFt.toMessageSignatureBundle=xEl;rFt.toDSSEBundle=GEl;var kEl=b7e(),tFt=eFt();function xEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:kEl.HashAlgorithm.SHA2_256,digest:e.digest},signature:e.signature}},verificationMaterial:Gps(e)}}function GEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:FEl(e)},verificationMaterial:Gps(e)}}function FEl(e){return{payloadType:e.artifactType,payload:e.artifact,signatures:[ZEl(e)]}}function ZEl(e){return{keyid:e.keyHint||"",sig:e.signature}}function Gps(e){return{content:LEl(e),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function LEl(e){return e.certificate?e.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:e.certificate}]}}:{$case:"certificate",certificate:{rawBytes:e.certificate}}:{$case:"publicKey",publicKey:{hint:e.keyHint||""}}}});var VUr=H(nFt=>{"use strict";Object.defineProperty(nFt,"__esModule",{value:!0});nFt.ValidationError=void 0;var LUr=class extends Error{constructor(t,r){super(t),this.fields=r}};nFt.ValidationError=LUr});var PUr=H(f0e=>{"use strict";Object.defineProperty(f0e,"__esModule",{value:!0});f0e.assertBundle=VEl;f0e.assertBundleV01=Zps;f0e.isBundleV01=PEl;f0e.assertBundleV02=WEl;f0e.assertBundleLatest=OEl;var iFt=VUr();function VEl(e){let t=sFt(e);if(t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function Zps(e){let t=[];if(t.push(...sFt(e)),t.push(...MEl(e)),t.length>0)throw new iFt.ValidationError("invalid v0.1 bundle",t)}function PEl(e){try{return Zps(e),!0}catch{return!1}}function WEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.length>0)throw new iFt.ValidationError("invalid v0.2 bundle",t)}function OEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.push(...HEl(e)),t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function sFt(e){let t=[];if((e.mediaType===void 0||!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&t.push("mediaType"),e.content===void 0)t.push("content");else switch(e.content.$case){case"messageSignature":e.content.messageSignature.messageDigest===void 0?t.push("content.messageSignature.messageDigest"):e.content.messageSignature.messageDigest.digest.length===0&&t.push("content.messageSignature.messageDigest.digest"),e.content.messageSignature.signature.length===0&&t.push("content.messageSignature.signature");break;case"dsseEnvelope":e.content.dsseEnvelope.payload.length===0&&t.push("content.dsseEnvelope.payload"),e.content.dsseEnvelope.signatures.length!==1?t.push("content.dsseEnvelope.signatures"):e.content.dsseEnvelope.signatures[0].sig.length===0&&t.push("content.dsseEnvelope.signatures[0].sig");break}if(e.verificationMaterial===void 0)t.push("verificationMaterial");else{if(e.verificationMaterial.content===void 0)t.push("verificationMaterial.content");else switch(e.verificationMaterial.content.$case){case"x509CertificateChain":e.verificationMaterial.content.x509CertificateChain.certificates.length===0&&t.push("verificationMaterial.content.x509CertificateChain.certificates"),e.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,n)=>{r.rawBytes.length===0&&t.push(`verificationMaterial.content.x509CertificateChain.certificates[${n}].rawBytes`)});break;case"certificate":e.verificationMaterial.content.certificate.rawBytes.length===0&&t.push("verificationMaterial.content.certificate.rawBytes");break}e.verificationMaterial.tlogEntries===void 0?t.push("verificationMaterial.tlogEntries"):e.verificationMaterial.tlogEntries.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.logId===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].logId`),r.kindVersion===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].kindVersion`)})}return t}function MEl(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionPromise===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionPromise`)}),t}function Lps(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionProof===void 0?t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof.checkpoint`)}),t}function HEl(e){let t=[];return e.verificationMaterial?.content?.$case==="x509CertificateChain"&&t.push("verificationMaterial.content.$case"),t}});var Pps=H(b6=>{"use strict";Object.defineProperty(b6,"__esModule",{value:!0});b6.envelopeToJSON=b6.envelopeFromJSON=b6.bundleToJSON=b6.bundleFromJSON=void 0;var oFt=b7e(),Vps=eFt(),WUr=PUr(),YEl=e=>{let t=oFt.Bundle.fromJSON(e);switch(t.mediaType){case Vps.BUNDLE_V01_MEDIA_TYPE:(0,WUr.assertBundleV01)(t);break;case Vps.BUNDLE_V02_MEDIA_TYPE:(0,WUr.assertBundleV02)(t);break;default:(0,WUr.assertBundleLatest)(t);break}return t};b6.bundleFromJSON=YEl;var QEl=e=>oFt.Bundle.toJSON(e);b6.bundleToJSON=QEl;var XEl=e=>oFt.Envelope.fromJSON(e);b6.envelopeFromJSON=XEl;var JEl=e=>oFt.Envelope.toJSON(e);b6.envelopeToJSON=JEl});var S7e=H(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});Ah.isBundleV01=Ah.assertBundleV02=Ah.assertBundleV01=Ah.assertBundleLatest=Ah.assertBundle=Ah.envelopeToJSON=Ah.envelopeFromJSON=Ah.bundleToJSON=Ah.bundleFromJSON=Ah.ValidationError=Ah.isBundleWithPublicKey=Ah.isBundleWithMessageSignature=Ah.isBundleWithDsseEnvelope=Ah.isBundleWithCertificateChain=Ah.BUNDLE_V03_MEDIA_TYPE=Ah.BUNDLE_V03_LEGACY_MEDIA_TYPE=Ah.BUNDLE_V02_MEDIA_TYPE=Ah.BUNDLE_V01_MEDIA_TYPE=Ah.toMessageSignatureBundle=Ah.toDSSEBundle=void 0;var Wps=Fps();Object.defineProperty(Ah,"toDSSEBundle",{enumerable:!0,get:function(){return Wps.toDSSEBundle}});Object.defineProperty(Ah,"toMessageSignatureBundle",{enumerable:!0,get:function(){return Wps.toMessageSignatureBundle}});var kue=eFt();Object.defineProperty(Ah,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Ah,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return kue.isBundleWithCertificateChain}});Object.defineProperty(Ah,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return kue.isBundleWithDsseEnvelope}});Object.defineProperty(Ah,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return kue.isBundleWithMessageSignature}});Object.defineProperty(Ah,"isBundleWithPublicKey",{enumerable:!0,get:function(){return kue.isBundleWithPublicKey}});var UEl=VUr();Object.defineProperty(Ah,"ValidationError",{enumerable:!0,get:function(){return UEl.ValidationError}});var aFt=Pps();Object.defineProperty(Ah,"bundleFromJSON",{enumerable:!0,get:function(){return aFt.bundleFromJSON}});Object.defineProperty(Ah,"bundleToJSON",{enumerable:!0,get:function(){return aFt.bundleToJSON}});Object.defineProperty(Ah,"envelopeFromJSON",{enumerable:!0,get:function(){return aFt.envelopeFromJSON}});Object.defineProperty(Ah,"envelopeToJSON",{enumerable:!0,get:function(){return aFt.envelopeToJSON}});var E7e=PUr();Object.defineProperty(Ah,"assertBundle",{enumerable:!0,get:function(){return E7e.assertBundle}});Object.defineProperty(Ah,"assertBundleLatest",{enumerable:!0,get:function(){return E7e.assertBundleLatest}});Object.defineProperty(Ah,"assertBundleV01",{enumerable:!0,get:function(){return E7e.assertBundleV01}});Object.defineProperty(Ah,"assertBundleV02",{enumerable:!0,get:function(){return E7e.assertBundleV02}});Object.defineProperty(Ah,"isBundleV01",{enumerable:!0,get:function(){return E7e.isBundleV01}})});var v7e=H(lFt=>{"use strict";Object.defineProperty(lFt,"__esModule",{value:!0});lFt.ByteStream=void 0;var OUr=class extends Error{},cFt=class e{constructor(t){this.start=0,t?(this.buf=t,this.view=Buffer.from(t)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(t){this.start=t}slice(t,r){let n=t+r;if(n>this.length)throw new OUr("request past end of buffer");return this.view.subarray(t,n)}appendChar(t){this.ensureCapacity(1),this.view[this.start]=t,this.start+=1}appendUint16(t){this.ensureCapacity(2);let r=new Uint16Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[1],this.view[this.start+1]=n[0],this.start+=2}appendUint24(t){this.ensureCapacity(3);let r=new Uint32Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[2],this.view[this.start+1]=n[1],this.view[this.start+2]=n[0],this.start+=3}appendView(t){this.ensureCapacity(t.length),this.view.set(t,this.start),this.start+=t.length}getBlock(t){if(t<=0)return Buffer.alloc(0);if(this.start+t>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+t);return this.start+=t,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let t=this.getBlock(2);return t[0]<<8|t[1]}ensureCapacity(t){if(this.start+t>this.view.byteLength){let r=e.BLOCK_SIZE+(t>e.BLOCK_SIZE?t:0);this.realloc(this.view.byteLength+r)}}realloc(t){let r=new ArrayBuffer(t),n=Buffer.from(r);n.set(this.view),this.buf=r,this.view=n}};lFt.ByteStream=cFt;cFt.BLOCK_SIZE=1024});var uFt=H(xGe=>{"use strict";Object.defineProperty(xGe,"__esModule",{value:!0});xGe.ASN1TypeError=xGe.ASN1ParseError=void 0;var MUr=class extends Error{};xGe.ASN1ParseError=MUr;var HUr=class extends Error{};xGe.ASN1TypeError=HUr});var Mps=H(gFt=>{"use strict";Object.defineProperty(gFt,"__esModule",{value:!0});gFt.decodeLength=KEl;gFt.encodeLength=jEl;var Ops=uFt();function KEl(e){let t=e.getUint8();if(!(t&128))return t;let r=t&127;if(r>6)throw new Ops.ASN1ParseError("length exceeds 6 byte limit");let n=0;for(let a=0;a0n;)r.unshift(Number(t&255n)),t=t>>8n;return Buffer.from([128|r.length,...r])}});var Yps=H(xue=>{"use strict";Object.defineProperty(xue,"__esModule",{value:!0});xue.parseInteger=$El;xue.parseStringASCII=Hps;xue.parseTime=e1l;xue.parseOID=t1l;xue.parseBoolean=r1l;xue.parseBitString=n1l;var zEl=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,qEl=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function $El(e){let t=0,r=e.length,n=e[t],a=n>127,o=a?255:0;for(;n==o&&++t=50?1900:2e3,n[1]=a.toString()}return new Date(`${n[1]}-${n[2]}-${n[3]}T${n[4]}:${n[5]}:${n[6]}Z`)}function t1l(e){let t=0,r=e.length,n=e[t++],a=Math.floor(n/40),o=n%40,l=`${a}.${o}`,A=0;for(;t=A;--f)a.push(l>>f&1)}return a}});var Xps=H(AFt=>{"use strict";Object.defineProperty(AFt,"__esModule",{value:!0});AFt.ASN1Tag=void 0;var Qps=uFt(),I0e={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},YUr={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},QUr=class{constructor(t){if(this.number=t&31,this.constructed=(t&32)===32,this.class=t>>6,this.number===31)throw new Qps.ASN1ParseError("long form tags not supported");if(this.class===YUr.UNIVERSAL&&this.number===0)throw new Qps.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===YUr.UNIVERSAL}isContextSpecific(t){let r=this.class===YUr.CONTEXT_SPECIFIC;return t!==void 0?r&&this.number===t:r}isBoolean(){return this.isUniversal()&&this.number===I0e.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===I0e.INTEGER}isBitString(){return this.isUniversal()&&this.number===I0e.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===I0e.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===I0e.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===I0e.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===I0e.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};AFt.ASN1Tag=QUr});var jps=H(pFt=>{"use strict";Object.defineProperty(pFt,"__esModule",{value:!0});pFt.ASN1Obj=void 0;var XUr=v7e(),h0e=uFt(),Ups=Mps(),GGe=Yps(),i1l=Xps(),dFt=class{constructor(t,r,n){this.tag=t,this.value=r,this.subs=n}static parseBuffer(t){return Kps(new XUr.ByteStream(t))}toDER(){let t=new XUr.ByteStream;if(this.subs.length>0)for(let a of this.subs)t.appendView(a.toDER());else t.appendView(this.value);let r=t.buffer,n=new XUr.ByteStream;return n.appendChar(this.tag.toDER()),n.appendView((0,Ups.encodeLength)(r.length)),n.appendView(r),n.buffer}toBoolean(){if(!this.tag.isBoolean())throw new h0e.ASN1TypeError("not a boolean");return(0,GGe.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new h0e.ASN1TypeError("not an integer");return(0,GGe.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new h0e.ASN1TypeError("not an OID");return(0,GGe.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,GGe.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,GGe.parseTime)(this.value,!1);default:throw new h0e.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new h0e.ASN1TypeError("not a bit string");return(0,GGe.parseBitString)(this.value)}};pFt.ASN1Obj=dFt;function Kps(e){let t=new i1l.ASN1Tag(e.getUint8()),r=(0,Ups.decodeLength)(e),n=e.slice(e.position,r),a=e.position,o=[];if(t.constructed)o=Jps(e,r);else if(t.isOctetString())try{o=Jps(e,r)}catch{}return o.length===0&&e.seek(a+r),new dFt(t,n,o)}function Jps(e,t){let r=e.position+t;if(r>e.length)throw new h0e.ASN1ParseError("invalid length");let n=[];for(;e.position{"use strict";Object.defineProperty(fFt,"__esModule",{value:!0});fFt.ASN1Obj=void 0;var s1l=jps();Object.defineProperty(fFt,"ASN1Obj",{enumerable:!0,get:function(){return s1l.ASN1Obj}})});var FGe=H(Gue=>{"use strict";var o1l=Gue&&Gue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gue,"__esModule",{value:!0});Gue.createPublicKey=a1l;Gue.digest=c1l;Gue.verify=l1l;Gue.bufferEqual=u1l;var B7e=o1l(wt("crypto"));function a1l(e,t="spki"){return typeof e=="string"?B7e.default.createPublicKey(e):B7e.default.createPublicKey({key:e,format:"der",type:t})}function c1l(e,...t){let r=B7e.default.createHash(e);for(let n of t)r.update(n);return r.digest()}function l1l(e,t,r,n){try{return B7e.default.verify(n,e,t,r)}catch{return!1}}function u1l(e,t){try{return B7e.default.timingSafeEqual(e,t)}catch{return!1}}});var zps=H(JUr=>{"use strict";Object.defineProperty(JUr,"__esModule",{value:!0});JUr.preAuthEncoding=A1l;var g1l="DSSEv1";function A1l(e,t){let r=[g1l,e.length,e,t.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),t])}});var efs=H(hFt=>{"use strict";Object.defineProperty(hFt,"__esModule",{value:!0});hFt.base64Encode=d1l;hFt.base64Decode=p1l;var qps="base64",$ps="utf-8";function d1l(e){return Buffer.from(e,$ps).toString(qps)}function p1l(e){return Buffer.from(e,qps).toString($ps)}});var tfs=H(KUr=>{"use strict";Object.defineProperty(KUr,"__esModule",{value:!0});KUr.canonicalize=UUr;function UUr(e){let t="";if(e===null||typeof e!="object"||e.toJSON!=null)t+=JSON.stringify(e);else if(Array.isArray(e)){t+="[";let r=!0;e.forEach(n=>{r||(t+=","),r=!1,t+=UUr(n)}),t+="]"}else{t+="{";let r=!0;Object.keys(e).sort().forEach(n=>{r||(t+=","),r=!1,t+=JSON.stringify(n),t+=":",t+=UUr(e[n])}),t+="}"}return t}});var jUr=H(mFt=>{"use strict";Object.defineProperty(mFt,"__esModule",{value:!0});mFt.toDER=h1l;mFt.fromDER=m1l;var f1l=/-----BEGIN (.*)-----/,I1l=/-----END (.*)-----/;function h1l(e){let t="";return e.split(` +`).forEach(r=>{r.match(f1l)||r.match(I1l)||(t+=r)}),Buffer.from(t,"base64")}function m1l(e,t="CERTIFICATE"){let n=e.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${t}-----`,...n,`-----END ${t}-----`].join(` `).concat(` -`)}});var CFt=H(ZGe=>{"use strict";Object.defineProperty(ZGe,"__esModule",{value:!0});ZGe.SHA2_HASH_ALGOS=ZGe.ECDSA_SIGNATURE_ALGOS=void 0;ZGe.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};ZGe.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var qUr=H(_Ft=>{"use strict";Object.defineProperty(_Ft,"__esModule",{value:!0});_Ft.RFC3161TimestampVerificationError=void 0;var zUr=class extends Error{};_Ft.RFC3161TimestampVerificationError=zUr});var nfs=H(E6=>{"use strict";var m1l=E6&&E6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),C1l=E6&&E6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),_1l=E6&&E6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&m1l(t,e,r);return C1l(t,e),t};Object.defineProperty(E6,"__esModule",{value:!0});E6.TSTInfo=void 0;var rfs=_1l(FGe()),y1l=CFt(),b1l=qUr(),$Ur=class{constructor(t){this.root=t}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let t=this.messageImprintObj.subs[0].subs[0].toOID();return y1l.SHA2_HASH_ALGOS[t]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(t){let r=rfs.digest(this.messageImprintHashAlgorithm,t);if(!rfs.bufferEqual(r,this.messageImprintHashedMessage))throw new b1l.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};E6.TSTInfo=$Ur});var sfs=H(S6=>{"use strict";var E1l=S6&&S6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),S1l=S6&&S6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),v1l=S6&&S6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&E1l(t,e,r);return S1l(t,e),t};Object.defineProperty(S6,"__esModule",{value:!0});S6.RFC3161Timestamp=void 0;var B1l=IFt(),eKr=v1l(FGe()),ifs=CFt(),w7e=qUr(),w1l=nfs(),T1l="1.2.840.113549.1.7.2",R1l="1.2.840.113549.1.9.16.1.4",N1l="1.2.840.113549.1.9.4",tKr=class e{constructor(t){this.root=t}static parse(t){let r=B1l.ASN1Obj.parseBuffer(t);return new e(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let t=this.signerDigestAlgorithmObj.subs[0].toOID();return ifs.SHA2_HASH_ALGOS[t]}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return ifs.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new w1l.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(t,r){if(!this.timeStampTokenObj)throw new w7e.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==T1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==R1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(t),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let t=eKr.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!eKr.bufferEqual(t,r))throw new w7e.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(t){let r=this.signedAttrsObj.toDER();if(r[0]=49,!eKr.verify(r,t,this.signatureValue,this.signatureAlgorithm))throw new w7e.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let t=this.signedDataObj;return t.subs[t.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===N1l)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};S6.RFC3161Timestamp=tKr});var ofs=H(yFt=>{"use strict";Object.defineProperty(yFt,"__esModule",{value:!0});yFt.RFC3161Timestamp=void 0;var D1l=sfs();Object.defineProperty(yFt,"RFC3161Timestamp",{enumerable:!0,get:function(){return D1l.RFC3161Timestamp}})});var cfs=H(v6=>{"use strict";var k1l=v6&&v6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),x1l=v6&&v6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),G1l=v6&&v6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&k1l(t,e,r);return x1l(t,e),t};Object.defineProperty(v6,"__esModule",{value:!0});v6.SignedCertificateTimestamp=void 0;var F1l=G1l(FGe()),afs=v7e(),rKr=class e{constructor(t){this.version=t.version,this.logID=t.logID,this.timestamp=t.timestamp,this.extensions=t.extensions,this.hashAlgorithm=t.hashAlgorithm,this.signatureAlgorithm=t.signatureAlgorithm,this.signature=t.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(t,r){let n=new afs.ByteStream;return n.appendChar(this.version),n.appendChar(0),n.appendView(this.timestamp),n.appendUint16(1),n.appendView(t),n.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&n.appendView(this.extensions),F1l.verify(n.buffer,r,this.signature,this.algorithm)}static parse(t){let r=new afs.ByteStream(t),n=r.getUint8(),a=r.getBlock(32),o=r.getBlock(8),l=r.getUint16(),A=r.getBlock(l),f=r.getUint8(),I=r.getUint8(),C=r.getUint16(),b=r.getBlock(C);if(r.position!==t.length)throw new Error("SCT buffer length mismatch");return new e({version:n,logID:a,timestamp:o,extensions:A,hashAlgorithm:f,signatureAlgorithm:I,signature:b})}};v6.SignedCertificateTimestamp=rKr});var lKr=H(iF=>{"use strict";Object.defineProperty(iF,"__esModule",{value:!0});iF.X509SCTExtension=iF.X509SubjectKeyIDExtension=iF.X509AuthorityKeyIDExtension=iF.X509SubjectAlternativeNameExtension=iF.X509KeyUsageExtension=iF.X509BasicConstraintsExtension=iF.X509Extension=void 0;var Z1l=v7e(),L1l=cfs(),Ute=class{constructor(t){this.root=t}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};iF.X509Extension=Ute;var nKr=class extends Ute{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};iF.X509BasicConstraintsExtension=nKr;var iKr=class extends Ute{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};iF.X509KeyUsageExtension=iKr;var sKr=class extends Ute{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(t){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==t?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(t){return this.generalNames.find(r=>r.tag.isContextSpecific(t))}get generalNames(){return this.extnValueObj.subs[0].subs}};iF.X509SubjectAlternativeNameExtension=sKr;var oKr=class extends Ute{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(t){return this.sequence.subs.find(r=>r.tag.isContextSpecific(t))}get sequence(){return this.extnValueObj.subs[0]}};iF.X509AuthorityKeyIDExtension=oKr;var aKr=class extends Ute{get keyIdentifier(){return this.extnValueObj.subs[0].value}};iF.X509SubjectKeyIDExtension=aKr;var cKr=class extends Ute{constructor(t){super(t)}get signedCertificateTimestamps(){let t=this.extnValueObj.subs[0].value,r=new Z1l.ByteStream(t),n=r.getUint16()+2,a=[];for(;r.position{"use strict";var V1l=QO&&QO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),P1l=QO&&QO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ufs=QO&&QO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&V1l(t,e,r);return P1l(t,e),t};Object.defineProperty(QO,"__esModule",{value:!0});QO.X509Certificate=QO.EXTENSION_OID_SCT=void 0;var W1l=IFt(),lfs=ufs(FGe()),O1l=CFt(),M1l=ufs(jUr()),m0e=lKr(),H1l="2.5.29.14",Y1l="2.5.29.15",Q1l="2.5.29.17",X1l="2.5.29.19",J1l="2.5.29.35";QO.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var uKr=class e{constructor(t){this.root=t}static parse(t){let r=typeof t=="string"?M1l.toDER(t):t,n=W1l.ASN1Obj.parseBuffer(r);return new e(n)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return O1l.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let t=this.extSubjectAltName;return t?.uri||t?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let t=this.findExtension(Y1l);return t?new m0e.X509KeyUsageExtension(t):void 0}get extBasicConstraints(){let t=this.findExtension(X1l);return t?new m0e.X509BasicConstraintsExtension(t):void 0}get extSubjectAltName(){let t=this.findExtension(Q1l);return t?new m0e.X509SubjectAlternativeNameExtension(t):void 0}get extAuthorityKeyID(){let t=this.findExtension(J1l);return t?new m0e.X509AuthorityKeyIDExtension(t):void 0}get extSubjectKeyID(){let t=this.findExtension(H1l);return t?new m0e.X509SubjectKeyIDExtension(t):void 0}get extSCT(){let t=this.findExtension(QO.EXTENSION_OID_SCT);return t?new m0e.X509SCTExtension(t):void 0}get isCA(){let t=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?t&&this.extKeyUsage.keyCertSign:t}extension(t){let r=this.findExtension(t);return r?new m0e.X509Extension(r):void 0}verify(t){let r=t?.publicKey||this.publicKey,n=lfs.createPublicKey(r);return lfs.verify(this.tbsCertificate.toDER(),n,this.signatureValue,this.signatureAlgorithm)}validForDate(t){return this.notBefore<=t&&t<=this.notAfter}equals(t){return this.root.toDER().equals(t.root.toDER())}clone(){let t=this.root.toDER(),r=Buffer.alloc(t.length);return t.copy(r),e.parse(r)}findExtension(t){return this.extensions.find(r=>r.subs[0].toOID()===t)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(t=>t.tag.isContextSpecific(3))}};QO.X509Certificate=uKr});var dfs=H(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});Fue.X509SCTExtension=Fue.X509Certificate=Fue.EXTENSION_OID_SCT=void 0;var Afs=gfs();Object.defineProperty(Fue,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return Afs.EXTENSION_OID_SCT}});Object.defineProperty(Fue,"X509Certificate",{enumerable:!0,get:function(){return Afs.X509Certificate}});var U1l=lKr();Object.defineProperty(Fue,"X509SCTExtension",{enumerable:!0,get:function(){return U1l.X509SCTExtension}})});var jV=H(j0=>{"use strict";var K1l=j0&&j0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),j1l=j0&&j0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T7e=j0&&j0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&K1l(t,e,r);return j1l(t,e),t};Object.defineProperty(j0,"__esModule",{value:!0});j0.X509SCTExtension=j0.X509Certificate=j0.EXTENSION_OID_SCT=j0.ByteStream=j0.RFC3161Timestamp=j0.pem=j0.json=j0.encoding=j0.dsse=j0.crypto=j0.ASN1Obj=void 0;var z1l=IFt();Object.defineProperty(j0,"ASN1Obj",{enumerable:!0,get:function(){return z1l.ASN1Obj}});j0.crypto=T7e(FGe());j0.dsse=T7e(zps());j0.encoding=T7e(efs());j0.json=T7e(tfs());j0.pem=T7e(jUr());var q1l=ofs();Object.defineProperty(j0,"RFC3161Timestamp",{enumerable:!0,get:function(){return q1l.RFC3161Timestamp}});var $1l=v7e();Object.defineProperty(j0,"ByteStream",{enumerable:!0,get:function(){return $1l.ByteStream}});var gKr=dfs();Object.defineProperty(j0,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return gKr.EXTENSION_OID_SCT}});Object.defineProperty(j0,"X509Certificate",{enumerable:!0,get:function(){return gKr.X509Certificate}});Object.defineProperty(j0,"X509SCTExtension",{enumerable:!0,get:function(){return gKr.X509SCTExtension}})});var pfs=H(AKr=>{"use strict";Object.defineProperty(AKr,"__esModule",{value:!0});AKr.extractJWTSubject=t2l;var e2l=jV();function t2l(e){let t=e.split(".",3),r=JSON.parse(e2l.encoding.base64Decode(t[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var ffs=H((vng,r2l)=>{r2l.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var hfs=H(LGe=>{"use strict";var n2l=LGe&&LGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LGe,"__esModule",{value:!0});LGe.getUserAgent=void 0;var Ifs=n2l(wt("os")),i2l=()=>{let e=ffs().version,t=process.version,r=Ifs.default.platform(),n=Ifs.default.arch();return`sigstore-js/${e} (Node ${t}) (${r}/${n})`};LGe.getUserAgent=i2l});var Zue=H(tB=>{"use strict";var s2l=tB&&tB.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o2l=tB&&tB.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mfs=tB&&tB.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(bFt,"__esModule",{value:!0});bFt.BaseBundleBuilder=void 0;var dKr=class{constructor(t){this.signer=t.signer,this.witnesses=t.witnesses}async create(t){let r=await this.prepare(t).then(A=>this.signer.sign(A)),n=await this.package(t,r),a=await Promise.all(this.witnesses.map(A=>A.testify(n.content,a2l(r.key)))),o=[],l=[];return a.forEach(({tlogEntries:A,rfc3161Timestamps:f})=>{o.push(...A??[]),l.push(...f??[])}),n.verificationMaterial.tlogEntries=o,n.verificationMaterial.timestampVerificationData={rfc3161Timestamps:l},n}async prepare(t){return t.data}};bFt.BaseBundleBuilder=dKr;function a2l(e){switch(e.$case){case"publicKey":return e.publicKey;case"x509Certificate":return e.certificate}}});var IKr=H(B6=>{"use strict";var c2l=B6&&B6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),l2l=B6&&B6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u2l=B6&&B6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(EFt,"__esModule",{value:!0});EFt.DSSEBundleBuilder=void 0;var d2l=Zue(),p2l=pKr(),f2l=IKr(),hKr=class extends p2l.BaseBundleBuilder{constructor(t){super(t),this.certificateChain=t.certificateChain??!1}async prepare(t){let r=_fs(t);return d2l.dsse.preAuthEncoding(r.type,r.data)}async package(t,r){return(0,f2l.toDSSEBundle)(_fs(t),r,this.certificateChain)}};EFt.DSSEBundleBuilder=hKr;function _fs(e){return{...e,type:e.type??""}}});var bfs=H(SFt=>{"use strict";Object.defineProperty(SFt,"__esModule",{value:!0});SFt.MessageSignatureBundleBuilder=void 0;var I2l=pKr(),h2l=IKr(),mKr=class extends I2l.BaseBundleBuilder{constructor(t){super(t)}async package(t,r){return(0,h2l.toMessageSignatureBundle)(t,r)}};SFt.MessageSignatureBundleBuilder=mKr});var Efs=H(VGe=>{"use strict";Object.defineProperty(VGe,"__esModule",{value:!0});VGe.MessageSignatureBundleBuilder=VGe.DSSEBundleBuilder=void 0;var m2l=yfs();Object.defineProperty(VGe,"DSSEBundleBuilder",{enumerable:!0,get:function(){return m2l.DSSEBundleBuilder}});var C2l=bfs();Object.defineProperty(VGe,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return C2l.MessageSignatureBundleBuilder}})});var BFt=H(vFt=>{"use strict";Object.defineProperty(vFt,"__esModule",{value:!0});vFt.HTTPError=void 0;var CKr=class extends Error{constructor({status:t,message:r,location:n}){super(`(${t}) ${r}`),this.statusCode=t,this.location=n}};vFt.HTTPError=CKr});var PGe=H(N7e=>{"use strict";Object.defineProperty(N7e,"__esModule",{value:!0});N7e.InternalError=void 0;N7e.internalError=y2l;var _2l=BFt(),wFt=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.name=this.constructor.name,this.cause=n,this.code=t}};N7e.InternalError=wFt;function y2l(e,t,r){throw e instanceof _2l.HTTPError&&(r+=` - ${e.message}`),new wFt({code:t,message:r,cause:e})}});var _Kr=H(WGe=>{"use strict";var b2l=WGe&&WGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WGe,"__esModule",{value:!0});WGe.constants=void 0;var E2l=b2l(wt("zlib")),S2l=E2l.default.constants||{ZLIB_VERNUM:4736};WGe.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},S2l))});var Bfs=H(Rm=>{"use strict";var v2l=Rm&&Rm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),B2l=Rm&&Rm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),w2l=Rm&&Rm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;ae,yKr=vfs?.writable===!0||vfs?.set!==void 0?e=>{C0e.Buffer.concat=e?k2l:D2l}:e=>{},_0e=Symbol("_superWrite"),y0e=class extends Error{code;errno;constructor(t,r){super("zlib: "+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+t.message,Error.captureStackTrace(this,r??this.constructor)}get name(){return"ZlibError"}};Rm.ZlibError=y0e;var bKr=Symbol("flushFlag"),D7e=class extends R2l.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(t,r){if(!t||typeof t!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(t),this.#n=t.flush??0,this.#r=t.finishFlush??0,this.#i=t.fullFlushFlag??0,typeof Sfs[r]!="function")throw new TypeError("Compression method not supported: "+r);try{this.#s=new Sfs[r](t)}catch(n){throw new y0e(n,this.constructor)}this.#o=n=>{this.#e||(this.#e=!0,this.close(),this.emit("error",n))},this.#s?.on("error",n=>this.#o(new y0e(n))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,EKr.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(t){this.ended||(typeof t!="number"&&(t=this.#i),this.write(Object.assign(C0e.Buffer.alloc(0),{[bKr]:t})))}end(t,r,n){return typeof t=="function"&&(n=t,r=void 0,t=void 0),typeof r=="function"&&(n=r,r=void 0),t&&(r?this.write(t,r):this.write(t)),this.flush(this.#r),this.#t=!0,super.end(n)}get ended(){return this.#t}[_0e](t){return super.write(t)}write(t,r,n){if(typeof r=="function"&&(n=r,r="utf8"),typeof t=="string"&&(t=C0e.Buffer.from(t,r)),this.#e)return;(0,EKr.default)(this.#s,"zlib binding closed");let a=this.#s._handle,o=a.close;a.close=()=>{};let l=this.#s.close;this.#s.close=()=>{},yKr(!0);let A;try{let I=typeof t[bKr]=="number"?t[bKr]:this.#n;A=this.#s._processChunk(t,I),yKr(!1)}catch(I){yKr(!1),this.#o(new y0e(I,this.write))}finally{this.#s&&(this.#s._handle=a,a.close=o,this.#s.close=l,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",I=>this.#o(new y0e(I,this.write)));let f;if(A)if(Array.isArray(A)&&A.length>0){let I=A[0];f=this[_0e](C0e.Buffer.from(I));for(let C=1;C{typeof a=="function"&&(o=a,a=this.flushFlag),this.flush(a),o?.()};try{this.handle.params(t,r)}finally{this.handle.flush=n}this.handle&&(this.#e=t,this.#t=r)}}}};Rm.Zlib=T6;var SKr=class extends T6{constructor(t){super(t,"Deflate")}};Rm.Deflate=SKr;var vKr=class extends T6{constructor(t){super(t,"Inflate")}};Rm.Inflate=vKr;var BKr=class extends T6{#e;constructor(t){super(t,"Gzip"),this.#e=t&&!!t.portable}[_0e](t){return this.#e?(this.#e=!1,t[9]=255,super[_0e](t)):super[_0e](t)}};Rm.Gzip=BKr;var wKr=class extends T6{constructor(t){super(t,"Gunzip")}};Rm.Gunzip=wKr;var TKr=class extends T6{constructor(t){super(t,"DeflateRaw")}};Rm.DeflateRaw=TKr;var RKr=class extends T6{constructor(t){super(t,"InflateRaw")}};Rm.InflateRaw=RKr;var NKr=class extends T6{constructor(t){super(t,"Unzip")}};Rm.Unzip=NKr;var TFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||w6.constants.BROTLI_OPERATION_FINISH,t.fullFlushFlag=w6.constants.BROTLI_OPERATION_FLUSH,super(t,r)}},DKr=class extends TFt{constructor(t){super(t,"BrotliCompress")}};Rm.BrotliCompress=DKr;var kKr=class extends TFt{constructor(t){super(t,"BrotliDecompress")}};Rm.BrotliDecompress=kKr;var RFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.ZSTD_e_continue,t.finishFlush=t.finishFlush||w6.constants.ZSTD_e_end,t.fullFlushFlag=w6.constants.ZSTD_e_flush,super(t,r)}},xKr=class extends RFt{constructor(t){super(t,"ZstdCompress")}};Rm.ZstdCompress=xKr;var GKr=class extends RFt{constructor(t){super(t,"ZstdDecompress")}};Rm.ZstdDecompress=GKr});var FFt=H((Lng,Ffs)=>{"use strict";var wfs=typeof process=="object"&&process?process:{stdout:null,stderr:null},x2l=wt("events"),Tfs=wt("stream"),Rfs=wt("string_decoder").StringDecoder,Kte=Symbol("EOF"),jte=Symbol("maybeEmitEnd"),Lue=Symbol("emittedEnd"),NFt=Symbol("emittingEnd"),k7e=Symbol("emittedError"),DFt=Symbol("closed"),Nfs=Symbol("read"),kFt=Symbol("flush"),Dfs=Symbol("flushChunk"),zV=Symbol("encoding"),zte=Symbol("decoder"),xFt=Symbol("flowing"),x7e=Symbol("paused"),OGe=Symbol("resume"),SD=Symbol("bufferLength"),FKr=Symbol("bufferPush"),ZKr=Symbol("bufferShift"),sF=Symbol("objectMode"),oF=Symbol("destroyed"),LKr=Symbol("emitData"),kfs=Symbol("emitEnd"),VKr=Symbol("emitEnd2"),qte=Symbol("async"),G7e=e=>Promise.resolve().then(e),xfs=global._MP_NO_ITERATOR_SYMBOLS_!=="1",G2l=xfs&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),F2l=xfs&&Symbol.iterator||Symbol("iterator not implemented"),Z2l=e=>e==="end"||e==="finish"||e==="prefinish",L2l=e=>e instanceof ArrayBuffer||typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,V2l=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),GFt=class{constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[OGe](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},PKr=class extends GFt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}};Ffs.exports=class Gfs extends Tfs{constructor(t){super(),this[xFt]=!1,this[x7e]=!1,this.pipes=[],this.buffer=[],this[sF]=t&&t.objectMode||!1,this[sF]?this[zV]=null:this[zV]=t&&t.encoding||null,this[zV]==="buffer"&&(this[zV]=null),this[qte]=t&&!!t.async||!1,this[zte]=this[zV]?new Rfs(this[zV]):null,this[Kte]=!1,this[Lue]=!1,this[NFt]=!1,this[DFt]=!1,this[k7e]=null,this.writable=!0,this.readable=!0,this[SD]=0,this[oF]=!1}get bufferLength(){return this[SD]}get encoding(){return this[zV]}set encoding(t){if(this[sF])throw new Error("cannot set encoding in objectMode");if(this[zV]&&t!==this[zV]&&(this[zte]&&this[zte].lastNeed||this[SD]))throw new Error("cannot change encoding");this[zV]!==t&&(this[zte]=t?new Rfs(t):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[zte].write(r)))),this[zV]=t}setEncoding(t){this.encoding=t}get objectMode(){return this[sF]}set objectMode(t){this[sF]=this[sF]||!!t}get async(){return this[qte]}set async(t){this[qte]=this[qte]||!!t}write(t,r,n){if(this[Kte])throw new Error("write after end");if(this[oF])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[qte]?G7e:o=>o();return!this[sF]&&!Buffer.isBuffer(t)&&(V2l(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):L2l(t)?t=Buffer.from(t):typeof t!="string"&&(this.objectMode=!0)),this[sF]?(this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):t.length?(typeof t=="string"&&!(r===this[zV]&&!this[zte].lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[zV]&&(t=this[zte].write(t)),this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):(this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing)}read(t){if(this[oF])return null;if(this[SD]===0||t===0||t>this[SD])return this[jte](),null;this[sF]&&(t=null),this.buffer.length>1&&!this[sF]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[SD])]);let r=this[Nfs](t||null,this.buffer[0]);return this[jte](),r}[Nfs](t,r){return t===r.length||t===null?this[ZKr]():(this.buffer[0]=r.slice(t),r=r.slice(0,t),this[SD]-=t),this.emit("data",r),!this.buffer.length&&!this[Kte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r),n&&this.once("end",n),this[Kte]=!0,this.writable=!1,(this.flowing||!this[x7e])&&this[jte](),this}[OGe](){this[oF]||(this[x7e]=!1,this[xFt]=!0,this.emit("resume"),this.buffer.length?this[kFt]():this[Kte]?this[jte]():this.emit("drain"))}resume(){return this[OGe]()}pause(){this[xFt]=!1,this[x7e]=!0}get destroyed(){return this[oF]}get flowing(){return this[xFt]}get paused(){return this[x7e]}[FKr](t){this[sF]?this[SD]+=1:this[SD]+=t.length,this.buffer.push(t)}[ZKr](){return this.buffer.length&&(this[sF]?this[SD]-=1:this[SD]-=this.buffer[0].length),this.buffer.shift()}[kFt](t){do;while(this[Dfs](this[ZKr]()));!t&&!this.buffer.length&&!this[Kte]&&this.emit("drain")}[Dfs](t){return t?(this.emit("data",t),this.flowing):!1}pipe(t,r){if(this[oF])return;let n=this[Lue];return r=r||{},t===wfs.stdout||t===wfs.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this.pipes.push(r.proxyErrors?new PKr(this,t,r):new GFt(this,t,r)),this[qte]?G7e(()=>this[OGe]()):this[OGe]()),t}unpipe(t){let r=this.pipes.find(n=>n.dest===t);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);return t==="data"&&!this.pipes.length&&!this.flowing?this[OGe]():t==="readable"&&this[SD]!==0?super.emit("readable"):Z2l(t)&&this[Lue]?(super.emit(t),this.removeAllListeners(t)):t==="error"&&this[k7e]&&(this[qte]?G7e(()=>r.call(this,this[k7e])):r.call(this,this[k7e])),n}get emittedEnd(){return this[Lue]}[jte](){!this[NFt]&&!this[Lue]&&!this[oF]&&this.buffer.length===0&&this[Kte]&&(this[NFt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[DFt]&&this.emit("close"),this[NFt]=!1)}emit(t,r,...n){if(t!=="error"&&t!=="close"&&t!==oF&&this[oF])return;if(t==="data")return r?this[qte]?G7e(()=>this[LKr](r)):this[LKr](r):!1;if(t==="end")return this[kfs]();if(t==="close"){if(this[DFt]=!0,!this[Lue]&&!this[oF])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[k7e]=r;let o=super.emit("error",r);return this[jte](),o}else if(t==="resume"){let o=super.emit("resume");return this[jte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,r,...n);return this[jte](),a}[LKr](t){for(let n of this.pipes)n.dest.write(t)===!1&&this.pause();let r=super.emit("data",t);return this[jte](),r}[kfs](){this[Lue]||(this[Lue]=!0,this.readable=!1,this[qte]?G7e(()=>this[VKr]()):this[VKr]())}[VKr](){if(this[zte]){let r=this[zte].end();if(r){for(let n of this.pipes)n.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}collect(){let t=[];this[sF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[sF]||(t.dataLength+=n.length)}),r.then(()=>t)}concat(){return this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(t=>this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this[zV]?t.join(""):Buffer.concat(t,t.dataLength))}promise(){return new Promise((t,r)=>{this.on(oF,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[G2l](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Kte])return Promise.resolve({done:!0});let n=null,a=null,o=I=>{this.removeListener("data",l),this.removeListener("end",A),a(I)},l=I=>{this.removeListener("error",o),this.removeListener("end",A),this.pause(),n({value:I,done:!!this[Kte]})},A=()=>{this.removeListener("error",o),this.removeListener("data",l),n({done:!0})},f=()=>o(new Error("stream destroyed"));return new Promise((I,C)=>{a=C,n=I,this.once(oF,f),this.once("error",o),this.once("end",A),this.once("data",l)})}}}[F2l](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(t){return this[oF]?(t?this.emit("error",t):this.emit(oF),this):(this[oF]=!0,this.buffer.length=0,this[SD]=0,typeof this.close=="function"&&!this[DFt]&&this.close(),t?this.emit("error",t):this.emit(oF),this)}static isStream(t){return!!t&&(t instanceof Gfs||t instanceof Tfs||t instanceof x2l&&(typeof t.pipe=="function"||typeof t.write=="function"&&typeof t.end=="function"))}}});var Lfs=H((Vng,Zfs)=>{var P2l=FFt(),F7e=class extends Error{constructor(t,r){super(`Bad data size: expected ${r} bytes, but got ${t}`),this.expect=r,this.found=t,this.code="EBADSIZE",Error.captureStackTrace(this,this.constructor)}get name(){return"SizeError"}},ZFt=class extends P2l{constructor(t={}){if(super(t),t.objectMode)throw new TypeError(`${this.constructor.name} streams only work with string and buffer data`);if(this.found=0,this.expect=t.size,typeof this.expect!="number"||this.expect>Number.MAX_SAFE_INTEGER||isNaN(this.expect)||this.expect<0||!isFinite(this.expect)||this.expect!==Math.floor(this.expect))throw new Error("invalid expected size: "+this.expect)}write(t,r,n){let a=Buffer.isBuffer(t)?t:typeof t=="string"?Buffer.from(t,typeof r=="string"?r:"utf8"):t;return Buffer.isBuffer(a)?(this.found+=a.length,this.found>this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.write(t,r,n)):(this.emit("error",new TypeError(`${this.constructor.name} streams only work with string and buffer data`)),!1)}emit(t,...r){return t==="end"&&this.found!==this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.emit(t,...r)}};ZFt.SizeError=F7e;Zfs.exports=ZFt});var Pfs=H((Png,Vfs)=>{"use strict";var{Minipass:W2l}=rF(),WKr=Symbol("type"),$te=Symbol("buffer"),LFt=class e{constructor(t,r){this[WKr]="";let n=[],a=0;if(t){let l=t,A=Number(l.length);for(let f=0;f{"use strict";var OKr=class extends Error{constructor(t,r,n){super(t),this.code="FETCH_ERROR",n&&Object.assign(this,n),this.errno=this.code,this.type=this.code==="EBADSIZE"&&this.found>this.expect?"max-size":r,this.message=t,Error.captureStackTrace(this,this.constructor)}get name(){return"FetchError"}set name(t){}get[Symbol.toStringTag](){return"FetchError"}};Wfs.exports=OKr});var ere=H((Ong,Ofs)=>{"use strict";var VFt=wt("buffer"),MGe=VFt.Buffer,VH={},PH;for(PH in VFt)VFt.hasOwnProperty(PH)&&(PH==="SlowBuffer"||PH==="Buffer"||(VH[PH]=VFt[PH]));var HGe=VH.Buffer={};for(PH in MGe)MGe.hasOwnProperty(PH)&&(PH==="allocUnsafe"||PH==="allocUnsafeSlow"||(HGe[PH]=MGe[PH]));VH.Buffer.prototype=MGe.prototype;(!HGe.from||HGe.from===Uint8Array.from)&&(HGe.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return MGe(e,t,r)});HGe.alloc||(HGe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=MGe(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!VH.kStringMaxLength)try{VH.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}VH.constants||(VH.constants={MAX_LENGTH:VH.kMaxLength},VH.kStringMaxLength&&(VH.constants.MAX_STRING_LENGTH=VH.kStringMaxLength));Ofs.exports=VH});var Hfs=H(QKr=>{"use strict";var Mfs="\uFEFF";QKr.PrependBOM=HKr;function HKr(e,t){this.encoder=e,this.addBOM=!0}HKr.prototype.write=function(e){return this.addBOM&&(e=Mfs+e,this.addBOM=!1),this.encoder.write(e)};HKr.prototype.end=function(){return this.encoder.end()};QKr.StripBOM=YKr;function YKr(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}YKr.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||(t[0]===Mfs&&(t=t.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),t};YKr.prototype.end=function(){return this.decoder.end()}});var Qfs=H((Hng,Yfs)=>{"use strict";var b0e=ere().Buffer;Yfs.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:JKr};function JKr(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,this.enc==="base64"?this.encoder=jKr:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=zKr,b0e.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=qKr,this.defaultCharUnicode=t.defaultCharUnicode))}JKr.prototype.encoder=KKr;JKr.prototype.decoder=UKr;var XKr=wt("string_decoder").StringDecoder;XKr.prototype.end||(XKr.prototype.end=function(){});function UKr(e,t){this.decoder=new XKr(t.enc)}UKr.prototype.write=function(e){return b0e.isBuffer(e)||(e=b0e.from(e)),this.decoder.write(e)};UKr.prototype.end=function(){return this.decoder.end()};function KKr(e,t){this.enc=t.enc}KKr.prototype.write=function(e){return b0e.from(e,this.enc)};KKr.prototype.end=function(){};function jKr(e,t){this.prevStr=""}jKr.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),b0e.from(e,"base64")};jKr.prototype.end=function(){return b0e.from(this.prevStr,"base64")};function zKr(e,t){}zKr.prototype.write=function(e){for(var t=b0e.alloc(e.length*3),r=0,n=0;n>>6),t[r++]=128+(a&63)):(t[r++]=224+(a>>>12),t[r++]=128+(a>>>6&63),t[r++]=128+(a&63))}return t.slice(0,r)};zKr.prototype.end=function(){};function qKr(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}qKr.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,a="",o=0;o0&&(a+=this.defaultCharUnicode,r=0),l<128?a+=String.fromCharCode(l):l<224?(t=l&31,r=1,n=1):l<240?(t=l&15,r=2,n=1):a+=this.defaultCharUnicode):r>0?(t=t<<6|l&63,r--,n++,r===0&&(n===2&&t<128&&t>0?a+=this.defaultCharUnicode:n===3&&t<2048?a+=this.defaultCharUnicode:a+=String.fromCharCode(t))):a+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,a};qKr.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}});var Ufs=H(Vue=>{"use strict";var PFt=ere().Buffer;Vue._utf32=$Kr;function $Kr(e,t){this.iconv=t,this.bomAware=!0,this.isLE=e.isLE}Vue.utf32le={type:"_utf32",isLE:!0};Vue.utf32be={type:"_utf32",isLE:!1};Vue.ucs4le="utf32le";Vue.ucs4be="utf32be";$Kr.prototype.encoder=e8r;$Kr.prototype.decoder=t8r;function e8r(e,t){this.isLE=t.isLE,this.highSurrogate=0}e8r.prototype.write=function(e){for(var t=PFt.from(e,"ucs2"),r=PFt.alloc(t.length*2),n=this.isLE?r.writeUInt32LE:r.writeUInt32BE,a=0,o=0;o0){for(;t1114111)&&(r=n),r>=65536){r-=65536;var a=55296|r>>10;e[t++]=a&255,e[t++]=a>>8;var r=56320|r&1023}return e[t++]=r&255,e[t++]=r>>8,t}t8r.prototype.end=function(){this.overflow.length=0};Vue.utf32=r8r;Vue.ucs4="utf32";function r8r(e,t){this.iconv=t}r8r.prototype.encoder=n8r;r8r.prototype.decoder=i8r;function n8r(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder(e.defaultEncoding||"utf-32le",e)}n8r.prototype.write=function(e){return this.encoder.write(e)};n8r.prototype.end=function(){return this.encoder.end()};function i8r(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}i8r.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<32)return"";var t=Jfs(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n16)&&o++,(r[3]!==0||r[2]>16)&&a++,r[0]===0&&r[1]===0&&(r[2]!==0||r[3]!==0)&&A++,(r[0]!==0||r[1]!==0)&&r[2]===0&&r[3]===0&&l++,r.length=0,n++,n>=100)break e}return A-o>l-a?"utf-32be":A-o{"use strict";var Kfs=ere().Buffer;u8r.utf16be=WFt;function WFt(){}WFt.prototype.encoder=s8r;WFt.prototype.decoder=o8r;WFt.prototype.bomAware=!0;function s8r(){}s8r.prototype.write=function(e){for(var t=Kfs.from(e,"ucs2"),r=0;r=100)break e}return o>a?"utf-16be":o{"use strict";var R6=ere().Buffer;HFt.utf7=OFt;HFt.unicode11utf7="utf7";function OFt(e,t){this.iconv=t}OFt.prototype.encoder=A8r;OFt.prototype.decoder=d8r;OFt.prototype.bomAware=!0;var O2l=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function A8r(e,t){this.iconv=t.iconv}A8r.prototype.write=function(e){return R6.from(e.replace(O2l,function(t){return"+"+(t==="+"?"":this.iconv.encode(t,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};A8r.prototype.end=function(){};function d8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var M2l=/[A-Za-z0-9\/+]/,p8r=[];for(Z7e=0;Z7e<256;Z7e++)p8r[Z7e]=M2l.test(String.fromCharCode(Z7e));var Z7e,H2l=43,E0e=45,g8r=38;d8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};HFt.utf7imap=MFt;function MFt(e,t){this.iconv=t}MFt.prototype.encoder=f8r;MFt.prototype.decoder=I8r;MFt.prototype.bomAware=!0;function f8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=R6.alloc(6),this.base64AccumIdx=0}f8r.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,a=R6.alloc(e.length*5+10),o=0,l=0;l0&&(o+=a.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),o),n=0),a[o++]=E0e,t=!1),t||(a[o++]=A,A===g8r&&(a[o++]=E0e))):(t||(a[o++]=g8r,t=!0),t&&(r[n++]=A>>8,r[n++]=A&255,n==r.length&&(o+=a.write(r.toString("base64").replace(/\//g,","),o),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,a.slice(0,o)};f8r.prototype.end=function(){var e=R6.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=E0e,this.inBase64=!1),e.slice(0,t)};function I8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var qfs=p8r.slice();qfs[44]=!0;I8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}});var tIs=H(eIs=>{"use strict";var YFt=ere().Buffer;eIs._sbcs=h8r;function h8r(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=YFt.from(e.chars,"ucs2");for(var a=YFt.alloc(65536,t.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";rIs.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var sIs=H((Kng,iIs)=>{"use strict";iIs.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +`)}});var CFt=H(ZGe=>{"use strict";Object.defineProperty(ZGe,"__esModule",{value:!0});ZGe.SHA2_HASH_ALGOS=ZGe.ECDSA_SIGNATURE_ALGOS=void 0;ZGe.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};ZGe.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var qUr=H(_Ft=>{"use strict";Object.defineProperty(_Ft,"__esModule",{value:!0});_Ft.RFC3161TimestampVerificationError=void 0;var zUr=class extends Error{};_Ft.RFC3161TimestampVerificationError=zUr});var nfs=H(E6=>{"use strict";var C1l=E6&&E6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_1l=E6&&E6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),y1l=E6&&E6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&C1l(t,e,r);return _1l(t,e),t};Object.defineProperty(E6,"__esModule",{value:!0});E6.TSTInfo=void 0;var rfs=y1l(FGe()),b1l=CFt(),E1l=qUr(),$Ur=class{constructor(t){this.root=t}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let t=this.messageImprintObj.subs[0].subs[0].toOID();return b1l.SHA2_HASH_ALGOS[t]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(t){let r=rfs.digest(this.messageImprintHashAlgorithm,t);if(!rfs.bufferEqual(r,this.messageImprintHashedMessage))throw new E1l.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};E6.TSTInfo=$Ur});var sfs=H(S6=>{"use strict";var S1l=S6&&S6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),v1l=S6&&S6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),B1l=S6&&S6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&S1l(t,e,r);return v1l(t,e),t};Object.defineProperty(S6,"__esModule",{value:!0});S6.RFC3161Timestamp=void 0;var w1l=IFt(),eKr=B1l(FGe()),ifs=CFt(),w7e=qUr(),T1l=nfs(),R1l="1.2.840.113549.1.7.2",N1l="1.2.840.113549.1.9.16.1.4",D1l="1.2.840.113549.1.9.4",tKr=class e{constructor(t){this.root=t}static parse(t){let r=w1l.ASN1Obj.parseBuffer(t);return new e(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let t=this.signerDigestAlgorithmObj.subs[0].toOID();return ifs.SHA2_HASH_ALGOS[t]}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return ifs.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new T1l.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(t,r){if(!this.timeStampTokenObj)throw new w7e.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==R1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==N1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(t),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let t=eKr.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!eKr.bufferEqual(t,r))throw new w7e.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(t){let r=this.signedAttrsObj.toDER();if(r[0]=49,!eKr.verify(r,t,this.signatureValue,this.signatureAlgorithm))throw new w7e.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let t=this.signedDataObj;return t.subs[t.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===D1l)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};S6.RFC3161Timestamp=tKr});var ofs=H(yFt=>{"use strict";Object.defineProperty(yFt,"__esModule",{value:!0});yFt.RFC3161Timestamp=void 0;var k1l=sfs();Object.defineProperty(yFt,"RFC3161Timestamp",{enumerable:!0,get:function(){return k1l.RFC3161Timestamp}})});var cfs=H(v6=>{"use strict";var x1l=v6&&v6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),G1l=v6&&v6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),F1l=v6&&v6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&x1l(t,e,r);return G1l(t,e),t};Object.defineProperty(v6,"__esModule",{value:!0});v6.SignedCertificateTimestamp=void 0;var Z1l=F1l(FGe()),afs=v7e(),rKr=class e{constructor(t){this.version=t.version,this.logID=t.logID,this.timestamp=t.timestamp,this.extensions=t.extensions,this.hashAlgorithm=t.hashAlgorithm,this.signatureAlgorithm=t.signatureAlgorithm,this.signature=t.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(t,r){let n=new afs.ByteStream;return n.appendChar(this.version),n.appendChar(0),n.appendView(this.timestamp),n.appendUint16(1),n.appendView(t),n.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&n.appendView(this.extensions),Z1l.verify(n.buffer,r,this.signature,this.algorithm)}static parse(t){let r=new afs.ByteStream(t),n=r.getUint8(),a=r.getBlock(32),o=r.getBlock(8),l=r.getUint16(),A=r.getBlock(l),f=r.getUint8(),I=r.getUint8(),C=r.getUint16(),b=r.getBlock(C);if(r.position!==t.length)throw new Error("SCT buffer length mismatch");return new e({version:n,logID:a,timestamp:o,extensions:A,hashAlgorithm:f,signatureAlgorithm:I,signature:b})}};v6.SignedCertificateTimestamp=rKr});var lKr=H(iF=>{"use strict";Object.defineProperty(iF,"__esModule",{value:!0});iF.X509SCTExtension=iF.X509SubjectKeyIDExtension=iF.X509AuthorityKeyIDExtension=iF.X509SubjectAlternativeNameExtension=iF.X509KeyUsageExtension=iF.X509BasicConstraintsExtension=iF.X509Extension=void 0;var L1l=v7e(),V1l=cfs(),Ute=class{constructor(t){this.root=t}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};iF.X509Extension=Ute;var nKr=class extends Ute{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};iF.X509BasicConstraintsExtension=nKr;var iKr=class extends Ute{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};iF.X509KeyUsageExtension=iKr;var sKr=class extends Ute{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(t){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==t?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(t){return this.generalNames.find(r=>r.tag.isContextSpecific(t))}get generalNames(){return this.extnValueObj.subs[0].subs}};iF.X509SubjectAlternativeNameExtension=sKr;var oKr=class extends Ute{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(t){return this.sequence.subs.find(r=>r.tag.isContextSpecific(t))}get sequence(){return this.extnValueObj.subs[0]}};iF.X509AuthorityKeyIDExtension=oKr;var aKr=class extends Ute{get keyIdentifier(){return this.extnValueObj.subs[0].value}};iF.X509SubjectKeyIDExtension=aKr;var cKr=class extends Ute{constructor(t){super(t)}get signedCertificateTimestamps(){let t=this.extnValueObj.subs[0].value,r=new L1l.ByteStream(t),n=r.getUint16()+2,a=[];for(;r.position{"use strict";var P1l=QO&&QO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),W1l=QO&&QO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ufs=QO&&QO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&P1l(t,e,r);return W1l(t,e),t};Object.defineProperty(QO,"__esModule",{value:!0});QO.X509Certificate=QO.EXTENSION_OID_SCT=void 0;var O1l=IFt(),lfs=ufs(FGe()),M1l=CFt(),H1l=ufs(jUr()),m0e=lKr(),Y1l="2.5.29.14",Q1l="2.5.29.15",X1l="2.5.29.17",J1l="2.5.29.19",U1l="2.5.29.35";QO.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var uKr=class e{constructor(t){this.root=t}static parse(t){let r=typeof t=="string"?H1l.toDER(t):t,n=O1l.ASN1Obj.parseBuffer(r);return new e(n)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return M1l.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let t=this.extSubjectAltName;return t?.uri||t?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let t=this.findExtension(Q1l);return t?new m0e.X509KeyUsageExtension(t):void 0}get extBasicConstraints(){let t=this.findExtension(J1l);return t?new m0e.X509BasicConstraintsExtension(t):void 0}get extSubjectAltName(){let t=this.findExtension(X1l);return t?new m0e.X509SubjectAlternativeNameExtension(t):void 0}get extAuthorityKeyID(){let t=this.findExtension(U1l);return t?new m0e.X509AuthorityKeyIDExtension(t):void 0}get extSubjectKeyID(){let t=this.findExtension(Y1l);return t?new m0e.X509SubjectKeyIDExtension(t):void 0}get extSCT(){let t=this.findExtension(QO.EXTENSION_OID_SCT);return t?new m0e.X509SCTExtension(t):void 0}get isCA(){let t=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?t&&this.extKeyUsage.keyCertSign:t}extension(t){let r=this.findExtension(t);return r?new m0e.X509Extension(r):void 0}verify(t){let r=t?.publicKey||this.publicKey,n=lfs.createPublicKey(r);return lfs.verify(this.tbsCertificate.toDER(),n,this.signatureValue,this.signatureAlgorithm)}validForDate(t){return this.notBefore<=t&&t<=this.notAfter}equals(t){return this.root.toDER().equals(t.root.toDER())}clone(){let t=this.root.toDER(),r=Buffer.alloc(t.length);return t.copy(r),e.parse(r)}findExtension(t){return this.extensions.find(r=>r.subs[0].toOID()===t)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(t=>t.tag.isContextSpecific(3))}};QO.X509Certificate=uKr});var dfs=H(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});Fue.X509SCTExtension=Fue.X509Certificate=Fue.EXTENSION_OID_SCT=void 0;var Afs=gfs();Object.defineProperty(Fue,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return Afs.EXTENSION_OID_SCT}});Object.defineProperty(Fue,"X509Certificate",{enumerable:!0,get:function(){return Afs.X509Certificate}});var K1l=lKr();Object.defineProperty(Fue,"X509SCTExtension",{enumerable:!0,get:function(){return K1l.X509SCTExtension}})});var jV=H(j0=>{"use strict";var j1l=j0&&j0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),z1l=j0&&j0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T7e=j0&&j0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&j1l(t,e,r);return z1l(t,e),t};Object.defineProperty(j0,"__esModule",{value:!0});j0.X509SCTExtension=j0.X509Certificate=j0.EXTENSION_OID_SCT=j0.ByteStream=j0.RFC3161Timestamp=j0.pem=j0.json=j0.encoding=j0.dsse=j0.crypto=j0.ASN1Obj=void 0;var q1l=IFt();Object.defineProperty(j0,"ASN1Obj",{enumerable:!0,get:function(){return q1l.ASN1Obj}});j0.crypto=T7e(FGe());j0.dsse=T7e(zps());j0.encoding=T7e(efs());j0.json=T7e(tfs());j0.pem=T7e(jUr());var $1l=ofs();Object.defineProperty(j0,"RFC3161Timestamp",{enumerable:!0,get:function(){return $1l.RFC3161Timestamp}});var e2l=v7e();Object.defineProperty(j0,"ByteStream",{enumerable:!0,get:function(){return e2l.ByteStream}});var gKr=dfs();Object.defineProperty(j0,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return gKr.EXTENSION_OID_SCT}});Object.defineProperty(j0,"X509Certificate",{enumerable:!0,get:function(){return gKr.X509Certificate}});Object.defineProperty(j0,"X509SCTExtension",{enumerable:!0,get:function(){return gKr.X509SCTExtension}})});var pfs=H(AKr=>{"use strict";Object.defineProperty(AKr,"__esModule",{value:!0});AKr.extractJWTSubject=r2l;var t2l=jV();function r2l(e){let t=e.split(".",3),r=JSON.parse(t2l.encoding.base64Decode(t[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var ffs=H((Bng,n2l)=>{n2l.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var hfs=H(LGe=>{"use strict";var i2l=LGe&&LGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LGe,"__esModule",{value:!0});LGe.getUserAgent=void 0;var Ifs=i2l(wt("os")),s2l=()=>{let e=ffs().version,t=process.version,r=Ifs.default.platform(),n=Ifs.default.arch();return`sigstore-js/${e} (Node ${t}) (${r}/${n})`};LGe.getUserAgent=s2l});var Zue=H(tB=>{"use strict";var o2l=tB&&tB.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),a2l=tB&&tB.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mfs=tB&&tB.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(bFt,"__esModule",{value:!0});bFt.BaseBundleBuilder=void 0;var dKr=class{constructor(t){this.signer=t.signer,this.witnesses=t.witnesses}async create(t){let r=await this.prepare(t).then(A=>this.signer.sign(A)),n=await this.package(t,r),a=await Promise.all(this.witnesses.map(A=>A.testify(n.content,c2l(r.key)))),o=[],l=[];return a.forEach(({tlogEntries:A,rfc3161Timestamps:f})=>{o.push(...A??[]),l.push(...f??[])}),n.verificationMaterial.tlogEntries=o,n.verificationMaterial.timestampVerificationData={rfc3161Timestamps:l},n}async prepare(t){return t.data}};bFt.BaseBundleBuilder=dKr;function c2l(e){switch(e.$case){case"publicKey":return e.publicKey;case"x509Certificate":return e.certificate}}});var IKr=H(B6=>{"use strict";var l2l=B6&&B6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),u2l=B6&&B6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),g2l=B6&&B6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(EFt,"__esModule",{value:!0});EFt.DSSEBundleBuilder=void 0;var p2l=Zue(),f2l=pKr(),I2l=IKr(),hKr=class extends f2l.BaseBundleBuilder{constructor(t){super(t),this.certificateChain=t.certificateChain??!1}async prepare(t){let r=_fs(t);return p2l.dsse.preAuthEncoding(r.type,r.data)}async package(t,r){return(0,I2l.toDSSEBundle)(_fs(t),r,this.certificateChain)}};EFt.DSSEBundleBuilder=hKr;function _fs(e){return{...e,type:e.type??""}}});var bfs=H(SFt=>{"use strict";Object.defineProperty(SFt,"__esModule",{value:!0});SFt.MessageSignatureBundleBuilder=void 0;var h2l=pKr(),m2l=IKr(),mKr=class extends h2l.BaseBundleBuilder{constructor(t){super(t)}async package(t,r){return(0,m2l.toMessageSignatureBundle)(t,r)}};SFt.MessageSignatureBundleBuilder=mKr});var Efs=H(VGe=>{"use strict";Object.defineProperty(VGe,"__esModule",{value:!0});VGe.MessageSignatureBundleBuilder=VGe.DSSEBundleBuilder=void 0;var C2l=yfs();Object.defineProperty(VGe,"DSSEBundleBuilder",{enumerable:!0,get:function(){return C2l.DSSEBundleBuilder}});var _2l=bfs();Object.defineProperty(VGe,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return _2l.MessageSignatureBundleBuilder}})});var BFt=H(vFt=>{"use strict";Object.defineProperty(vFt,"__esModule",{value:!0});vFt.HTTPError=void 0;var CKr=class extends Error{constructor({status:t,message:r,location:n}){super(`(${t}) ${r}`),this.statusCode=t,this.location=n}};vFt.HTTPError=CKr});var PGe=H(N7e=>{"use strict";Object.defineProperty(N7e,"__esModule",{value:!0});N7e.InternalError=void 0;N7e.internalError=b2l;var y2l=BFt(),wFt=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.name=this.constructor.name,this.cause=n,this.code=t}};N7e.InternalError=wFt;function b2l(e,t,r){throw e instanceof y2l.HTTPError&&(r+=` - ${e.message}`),new wFt({code:t,message:r,cause:e})}});var _Kr=H(WGe=>{"use strict";var E2l=WGe&&WGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WGe,"__esModule",{value:!0});WGe.constants=void 0;var S2l=E2l(wt("zlib")),v2l=S2l.default.constants||{ZLIB_VERNUM:4736};WGe.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},v2l))});var Bfs=H(Rm=>{"use strict";var B2l=Rm&&Rm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),w2l=Rm&&Rm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T2l=Rm&&Rm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;ae,yKr=vfs?.writable===!0||vfs?.set!==void 0?e=>{C0e.Buffer.concat=e?x2l:k2l}:e=>{},_0e=Symbol("_superWrite"),y0e=class extends Error{code;errno;constructor(t,r){super("zlib: "+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+t.message,Error.captureStackTrace(this,r??this.constructor)}get name(){return"ZlibError"}};Rm.ZlibError=y0e;var bKr=Symbol("flushFlag"),D7e=class extends N2l.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(t,r){if(!t||typeof t!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(t),this.#n=t.flush??0,this.#r=t.finishFlush??0,this.#i=t.fullFlushFlag??0,typeof Sfs[r]!="function")throw new TypeError("Compression method not supported: "+r);try{this.#s=new Sfs[r](t)}catch(n){throw new y0e(n,this.constructor)}this.#o=n=>{this.#e||(this.#e=!0,this.close(),this.emit("error",n))},this.#s?.on("error",n=>this.#o(new y0e(n))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,EKr.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(t){this.ended||(typeof t!="number"&&(t=this.#i),this.write(Object.assign(C0e.Buffer.alloc(0),{[bKr]:t})))}end(t,r,n){return typeof t=="function"&&(n=t,r=void 0,t=void 0),typeof r=="function"&&(n=r,r=void 0),t&&(r?this.write(t,r):this.write(t)),this.flush(this.#r),this.#t=!0,super.end(n)}get ended(){return this.#t}[_0e](t){return super.write(t)}write(t,r,n){if(typeof r=="function"&&(n=r,r="utf8"),typeof t=="string"&&(t=C0e.Buffer.from(t,r)),this.#e)return;(0,EKr.default)(this.#s,"zlib binding closed");let a=this.#s._handle,o=a.close;a.close=()=>{};let l=this.#s.close;this.#s.close=()=>{},yKr(!0);let A;try{let I=typeof t[bKr]=="number"?t[bKr]:this.#n;A=this.#s._processChunk(t,I),yKr(!1)}catch(I){yKr(!1),this.#o(new y0e(I,this.write))}finally{this.#s&&(this.#s._handle=a,a.close=o,this.#s.close=l,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",I=>this.#o(new y0e(I,this.write)));let f;if(A)if(Array.isArray(A)&&A.length>0){let I=A[0];f=this[_0e](C0e.Buffer.from(I));for(let C=1;C{typeof a=="function"&&(o=a,a=this.flushFlag),this.flush(a),o?.()};try{this.handle.params(t,r)}finally{this.handle.flush=n}this.handle&&(this.#e=t,this.#t=r)}}}};Rm.Zlib=T6;var SKr=class extends T6{constructor(t){super(t,"Deflate")}};Rm.Deflate=SKr;var vKr=class extends T6{constructor(t){super(t,"Inflate")}};Rm.Inflate=vKr;var BKr=class extends T6{#e;constructor(t){super(t,"Gzip"),this.#e=t&&!!t.portable}[_0e](t){return this.#e?(this.#e=!1,t[9]=255,super[_0e](t)):super[_0e](t)}};Rm.Gzip=BKr;var wKr=class extends T6{constructor(t){super(t,"Gunzip")}};Rm.Gunzip=wKr;var TKr=class extends T6{constructor(t){super(t,"DeflateRaw")}};Rm.DeflateRaw=TKr;var RKr=class extends T6{constructor(t){super(t,"InflateRaw")}};Rm.InflateRaw=RKr;var NKr=class extends T6{constructor(t){super(t,"Unzip")}};Rm.Unzip=NKr;var TFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||w6.constants.BROTLI_OPERATION_FINISH,t.fullFlushFlag=w6.constants.BROTLI_OPERATION_FLUSH,super(t,r)}},DKr=class extends TFt{constructor(t){super(t,"BrotliCompress")}};Rm.BrotliCompress=DKr;var kKr=class extends TFt{constructor(t){super(t,"BrotliDecompress")}};Rm.BrotliDecompress=kKr;var RFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.ZSTD_e_continue,t.finishFlush=t.finishFlush||w6.constants.ZSTD_e_end,t.fullFlushFlag=w6.constants.ZSTD_e_flush,super(t,r)}},xKr=class extends RFt{constructor(t){super(t,"ZstdCompress")}};Rm.ZstdCompress=xKr;var GKr=class extends RFt{constructor(t){super(t,"ZstdDecompress")}};Rm.ZstdDecompress=GKr});var FFt=H((Vng,Ffs)=>{"use strict";var wfs=typeof process=="object"&&process?process:{stdout:null,stderr:null},G2l=wt("events"),Tfs=wt("stream"),Rfs=wt("string_decoder").StringDecoder,Kte=Symbol("EOF"),jte=Symbol("maybeEmitEnd"),Lue=Symbol("emittedEnd"),NFt=Symbol("emittingEnd"),k7e=Symbol("emittedError"),DFt=Symbol("closed"),Nfs=Symbol("read"),kFt=Symbol("flush"),Dfs=Symbol("flushChunk"),zV=Symbol("encoding"),zte=Symbol("decoder"),xFt=Symbol("flowing"),x7e=Symbol("paused"),OGe=Symbol("resume"),SD=Symbol("bufferLength"),FKr=Symbol("bufferPush"),ZKr=Symbol("bufferShift"),sF=Symbol("objectMode"),oF=Symbol("destroyed"),LKr=Symbol("emitData"),kfs=Symbol("emitEnd"),VKr=Symbol("emitEnd2"),qte=Symbol("async"),G7e=e=>Promise.resolve().then(e),xfs=global._MP_NO_ITERATOR_SYMBOLS_!=="1",F2l=xfs&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Z2l=xfs&&Symbol.iterator||Symbol("iterator not implemented"),L2l=e=>e==="end"||e==="finish"||e==="prefinish",V2l=e=>e instanceof ArrayBuffer||typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,P2l=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),GFt=class{constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[OGe](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},PKr=class extends GFt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}};Ffs.exports=class Gfs extends Tfs{constructor(t){super(),this[xFt]=!1,this[x7e]=!1,this.pipes=[],this.buffer=[],this[sF]=t&&t.objectMode||!1,this[sF]?this[zV]=null:this[zV]=t&&t.encoding||null,this[zV]==="buffer"&&(this[zV]=null),this[qte]=t&&!!t.async||!1,this[zte]=this[zV]?new Rfs(this[zV]):null,this[Kte]=!1,this[Lue]=!1,this[NFt]=!1,this[DFt]=!1,this[k7e]=null,this.writable=!0,this.readable=!0,this[SD]=0,this[oF]=!1}get bufferLength(){return this[SD]}get encoding(){return this[zV]}set encoding(t){if(this[sF])throw new Error("cannot set encoding in objectMode");if(this[zV]&&t!==this[zV]&&(this[zte]&&this[zte].lastNeed||this[SD]))throw new Error("cannot change encoding");this[zV]!==t&&(this[zte]=t?new Rfs(t):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[zte].write(r)))),this[zV]=t}setEncoding(t){this.encoding=t}get objectMode(){return this[sF]}set objectMode(t){this[sF]=this[sF]||!!t}get async(){return this[qte]}set async(t){this[qte]=this[qte]||!!t}write(t,r,n){if(this[Kte])throw new Error("write after end");if(this[oF])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[qte]?G7e:o=>o();return!this[sF]&&!Buffer.isBuffer(t)&&(P2l(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):V2l(t)?t=Buffer.from(t):typeof t!="string"&&(this.objectMode=!0)),this[sF]?(this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):t.length?(typeof t=="string"&&!(r===this[zV]&&!this[zte].lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[zV]&&(t=this[zte].write(t)),this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):(this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing)}read(t){if(this[oF])return null;if(this[SD]===0||t===0||t>this[SD])return this[jte](),null;this[sF]&&(t=null),this.buffer.length>1&&!this[sF]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[SD])]);let r=this[Nfs](t||null,this.buffer[0]);return this[jte](),r}[Nfs](t,r){return t===r.length||t===null?this[ZKr]():(this.buffer[0]=r.slice(t),r=r.slice(0,t),this[SD]-=t),this.emit("data",r),!this.buffer.length&&!this[Kte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r),n&&this.once("end",n),this[Kte]=!0,this.writable=!1,(this.flowing||!this[x7e])&&this[jte](),this}[OGe](){this[oF]||(this[x7e]=!1,this[xFt]=!0,this.emit("resume"),this.buffer.length?this[kFt]():this[Kte]?this[jte]():this.emit("drain"))}resume(){return this[OGe]()}pause(){this[xFt]=!1,this[x7e]=!0}get destroyed(){return this[oF]}get flowing(){return this[xFt]}get paused(){return this[x7e]}[FKr](t){this[sF]?this[SD]+=1:this[SD]+=t.length,this.buffer.push(t)}[ZKr](){return this.buffer.length&&(this[sF]?this[SD]-=1:this[SD]-=this.buffer[0].length),this.buffer.shift()}[kFt](t){do;while(this[Dfs](this[ZKr]()));!t&&!this.buffer.length&&!this[Kte]&&this.emit("drain")}[Dfs](t){return t?(this.emit("data",t),this.flowing):!1}pipe(t,r){if(this[oF])return;let n=this[Lue];return r=r||{},t===wfs.stdout||t===wfs.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this.pipes.push(r.proxyErrors?new PKr(this,t,r):new GFt(this,t,r)),this[qte]?G7e(()=>this[OGe]()):this[OGe]()),t}unpipe(t){let r=this.pipes.find(n=>n.dest===t);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);return t==="data"&&!this.pipes.length&&!this.flowing?this[OGe]():t==="readable"&&this[SD]!==0?super.emit("readable"):L2l(t)&&this[Lue]?(super.emit(t),this.removeAllListeners(t)):t==="error"&&this[k7e]&&(this[qte]?G7e(()=>r.call(this,this[k7e])):r.call(this,this[k7e])),n}get emittedEnd(){return this[Lue]}[jte](){!this[NFt]&&!this[Lue]&&!this[oF]&&this.buffer.length===0&&this[Kte]&&(this[NFt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[DFt]&&this.emit("close"),this[NFt]=!1)}emit(t,r,...n){if(t!=="error"&&t!=="close"&&t!==oF&&this[oF])return;if(t==="data")return r?this[qte]?G7e(()=>this[LKr](r)):this[LKr](r):!1;if(t==="end")return this[kfs]();if(t==="close"){if(this[DFt]=!0,!this[Lue]&&!this[oF])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[k7e]=r;let o=super.emit("error",r);return this[jte](),o}else if(t==="resume"){let o=super.emit("resume");return this[jte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,r,...n);return this[jte](),a}[LKr](t){for(let n of this.pipes)n.dest.write(t)===!1&&this.pause();let r=super.emit("data",t);return this[jte](),r}[kfs](){this[Lue]||(this[Lue]=!0,this.readable=!1,this[qte]?G7e(()=>this[VKr]()):this[VKr]())}[VKr](){if(this[zte]){let r=this[zte].end();if(r){for(let n of this.pipes)n.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}collect(){let t=[];this[sF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[sF]||(t.dataLength+=n.length)}),r.then(()=>t)}concat(){return this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(t=>this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this[zV]?t.join(""):Buffer.concat(t,t.dataLength))}promise(){return new Promise((t,r)=>{this.on(oF,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[F2l](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Kte])return Promise.resolve({done:!0});let n=null,a=null,o=I=>{this.removeListener("data",l),this.removeListener("end",A),a(I)},l=I=>{this.removeListener("error",o),this.removeListener("end",A),this.pause(),n({value:I,done:!!this[Kte]})},A=()=>{this.removeListener("error",o),this.removeListener("data",l),n({done:!0})},f=()=>o(new Error("stream destroyed"));return new Promise((I,C)=>{a=C,n=I,this.once(oF,f),this.once("error",o),this.once("end",A),this.once("data",l)})}}}[Z2l](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(t){return this[oF]?(t?this.emit("error",t):this.emit(oF),this):(this[oF]=!0,this.buffer.length=0,this[SD]=0,typeof this.close=="function"&&!this[DFt]&&this.close(),t?this.emit("error",t):this.emit(oF),this)}static isStream(t){return!!t&&(t instanceof Gfs||t instanceof Tfs||t instanceof G2l&&(typeof t.pipe=="function"||typeof t.write=="function"&&typeof t.end=="function"))}}});var Lfs=H((Png,Zfs)=>{var W2l=FFt(),F7e=class extends Error{constructor(t,r){super(`Bad data size: expected ${r} bytes, but got ${t}`),this.expect=r,this.found=t,this.code="EBADSIZE",Error.captureStackTrace(this,this.constructor)}get name(){return"SizeError"}},ZFt=class extends W2l{constructor(t={}){if(super(t),t.objectMode)throw new TypeError(`${this.constructor.name} streams only work with string and buffer data`);if(this.found=0,this.expect=t.size,typeof this.expect!="number"||this.expect>Number.MAX_SAFE_INTEGER||isNaN(this.expect)||this.expect<0||!isFinite(this.expect)||this.expect!==Math.floor(this.expect))throw new Error("invalid expected size: "+this.expect)}write(t,r,n){let a=Buffer.isBuffer(t)?t:typeof t=="string"?Buffer.from(t,typeof r=="string"?r:"utf8"):t;return Buffer.isBuffer(a)?(this.found+=a.length,this.found>this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.write(t,r,n)):(this.emit("error",new TypeError(`${this.constructor.name} streams only work with string and buffer data`)),!1)}emit(t,...r){return t==="end"&&this.found!==this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.emit(t,...r)}};ZFt.SizeError=F7e;Zfs.exports=ZFt});var Pfs=H((Wng,Vfs)=>{"use strict";var{Minipass:O2l}=rF(),WKr=Symbol("type"),$te=Symbol("buffer"),LFt=class e{constructor(t,r){this[WKr]="";let n=[],a=0;if(t){let l=t,A=Number(l.length);for(let f=0;f{"use strict";var OKr=class extends Error{constructor(t,r,n){super(t),this.code="FETCH_ERROR",n&&Object.assign(this,n),this.errno=this.code,this.type=this.code==="EBADSIZE"&&this.found>this.expect?"max-size":r,this.message=t,Error.captureStackTrace(this,this.constructor)}get name(){return"FetchError"}set name(t){}get[Symbol.toStringTag](){return"FetchError"}};Wfs.exports=OKr});var ere=H((Mng,Ofs)=>{"use strict";var VFt=wt("buffer"),MGe=VFt.Buffer,VH={},PH;for(PH in VFt)VFt.hasOwnProperty(PH)&&(PH==="SlowBuffer"||PH==="Buffer"||(VH[PH]=VFt[PH]));var HGe=VH.Buffer={};for(PH in MGe)MGe.hasOwnProperty(PH)&&(PH==="allocUnsafe"||PH==="allocUnsafeSlow"||(HGe[PH]=MGe[PH]));VH.Buffer.prototype=MGe.prototype;(!HGe.from||HGe.from===Uint8Array.from)&&(HGe.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return MGe(e,t,r)});HGe.alloc||(HGe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=MGe(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!VH.kStringMaxLength)try{VH.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}VH.constants||(VH.constants={MAX_LENGTH:VH.kMaxLength},VH.kStringMaxLength&&(VH.constants.MAX_STRING_LENGTH=VH.kStringMaxLength));Ofs.exports=VH});var Hfs=H(QKr=>{"use strict";var Mfs="\uFEFF";QKr.PrependBOM=HKr;function HKr(e,t){this.encoder=e,this.addBOM=!0}HKr.prototype.write=function(e){return this.addBOM&&(e=Mfs+e,this.addBOM=!1),this.encoder.write(e)};HKr.prototype.end=function(){return this.encoder.end()};QKr.StripBOM=YKr;function YKr(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}YKr.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||(t[0]===Mfs&&(t=t.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),t};YKr.prototype.end=function(){return this.decoder.end()}});var Qfs=H((Yng,Yfs)=>{"use strict";var b0e=ere().Buffer;Yfs.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:JKr};function JKr(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,this.enc==="base64"?this.encoder=jKr:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=zKr,b0e.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=qKr,this.defaultCharUnicode=t.defaultCharUnicode))}JKr.prototype.encoder=KKr;JKr.prototype.decoder=UKr;var XKr=wt("string_decoder").StringDecoder;XKr.prototype.end||(XKr.prototype.end=function(){});function UKr(e,t){this.decoder=new XKr(t.enc)}UKr.prototype.write=function(e){return b0e.isBuffer(e)||(e=b0e.from(e)),this.decoder.write(e)};UKr.prototype.end=function(){return this.decoder.end()};function KKr(e,t){this.enc=t.enc}KKr.prototype.write=function(e){return b0e.from(e,this.enc)};KKr.prototype.end=function(){};function jKr(e,t){this.prevStr=""}jKr.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),b0e.from(e,"base64")};jKr.prototype.end=function(){return b0e.from(this.prevStr,"base64")};function zKr(e,t){}zKr.prototype.write=function(e){for(var t=b0e.alloc(e.length*3),r=0,n=0;n>>6),t[r++]=128+(a&63)):(t[r++]=224+(a>>>12),t[r++]=128+(a>>>6&63),t[r++]=128+(a&63))}return t.slice(0,r)};zKr.prototype.end=function(){};function qKr(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}qKr.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,a="",o=0;o0&&(a+=this.defaultCharUnicode,r=0),l<128?a+=String.fromCharCode(l):l<224?(t=l&31,r=1,n=1):l<240?(t=l&15,r=2,n=1):a+=this.defaultCharUnicode):r>0?(t=t<<6|l&63,r--,n++,r===0&&(n===2&&t<128&&t>0?a+=this.defaultCharUnicode:n===3&&t<2048?a+=this.defaultCharUnicode:a+=String.fromCharCode(t))):a+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,a};qKr.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}});var Ufs=H(Vue=>{"use strict";var PFt=ere().Buffer;Vue._utf32=$Kr;function $Kr(e,t){this.iconv=t,this.bomAware=!0,this.isLE=e.isLE}Vue.utf32le={type:"_utf32",isLE:!0};Vue.utf32be={type:"_utf32",isLE:!1};Vue.ucs4le="utf32le";Vue.ucs4be="utf32be";$Kr.prototype.encoder=e8r;$Kr.prototype.decoder=t8r;function e8r(e,t){this.isLE=t.isLE,this.highSurrogate=0}e8r.prototype.write=function(e){for(var t=PFt.from(e,"ucs2"),r=PFt.alloc(t.length*2),n=this.isLE?r.writeUInt32LE:r.writeUInt32BE,a=0,o=0;o0){for(;t1114111)&&(r=n),r>=65536){r-=65536;var a=55296|r>>10;e[t++]=a&255,e[t++]=a>>8;var r=56320|r&1023}return e[t++]=r&255,e[t++]=r>>8,t}t8r.prototype.end=function(){this.overflow.length=0};Vue.utf32=r8r;Vue.ucs4="utf32";function r8r(e,t){this.iconv=t}r8r.prototype.encoder=n8r;r8r.prototype.decoder=i8r;function n8r(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder(e.defaultEncoding||"utf-32le",e)}n8r.prototype.write=function(e){return this.encoder.write(e)};n8r.prototype.end=function(){return this.encoder.end()};function i8r(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}i8r.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<32)return"";var t=Jfs(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n16)&&o++,(r[3]!==0||r[2]>16)&&a++,r[0]===0&&r[1]===0&&(r[2]!==0||r[3]!==0)&&A++,(r[0]!==0||r[1]!==0)&&r[2]===0&&r[3]===0&&l++,r.length=0,n++,n>=100)break e}return A-o>l-a?"utf-32be":A-o{"use strict";var Kfs=ere().Buffer;u8r.utf16be=WFt;function WFt(){}WFt.prototype.encoder=s8r;WFt.prototype.decoder=o8r;WFt.prototype.bomAware=!0;function s8r(){}s8r.prototype.write=function(e){for(var t=Kfs.from(e,"ucs2"),r=0;r=100)break e}return o>a?"utf-16be":o{"use strict";var R6=ere().Buffer;HFt.utf7=OFt;HFt.unicode11utf7="utf7";function OFt(e,t){this.iconv=t}OFt.prototype.encoder=A8r;OFt.prototype.decoder=d8r;OFt.prototype.bomAware=!0;var M2l=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function A8r(e,t){this.iconv=t.iconv}A8r.prototype.write=function(e){return R6.from(e.replace(M2l,function(t){return"+"+(t==="+"?"":this.iconv.encode(t,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};A8r.prototype.end=function(){};function d8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var H2l=/[A-Za-z0-9\/+]/,p8r=[];for(Z7e=0;Z7e<256;Z7e++)p8r[Z7e]=H2l.test(String.fromCharCode(Z7e));var Z7e,Y2l=43,E0e=45,g8r=38;d8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};HFt.utf7imap=MFt;function MFt(e,t){this.iconv=t}MFt.prototype.encoder=f8r;MFt.prototype.decoder=I8r;MFt.prototype.bomAware=!0;function f8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=R6.alloc(6),this.base64AccumIdx=0}f8r.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,a=R6.alloc(e.length*5+10),o=0,l=0;l0&&(o+=a.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),o),n=0),a[o++]=E0e,t=!1),t||(a[o++]=A,A===g8r&&(a[o++]=E0e))):(t||(a[o++]=g8r,t=!0),t&&(r[n++]=A>>8,r[n++]=A&255,n==r.length&&(o+=a.write(r.toString("base64").replace(/\//g,","),o),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,a.slice(0,o)};f8r.prototype.end=function(){var e=R6.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=E0e,this.inBase64=!1),e.slice(0,t)};function I8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var qfs=p8r.slice();qfs[44]=!0;I8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}});var tIs=H(eIs=>{"use strict";var YFt=ere().Buffer;eIs._sbcs=h8r;function h8r(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=YFt.from(e.chars,"ucs2");for(var a=YFt.alloc(65536,t.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";rIs.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var sIs=H((jng,iIs)=>{"use strict";iIs.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var cIs=H(aIs=>{"use strict";var _8r=ere().Buffer;aIs._dbcs=tre;var px=-1,oIs=-2,WH=-10,pL=-1e3,YGe=new Array(256),L7e=-1;for(QFt=0;QFt<256;QFt++)YGe[QFt]=px;var QFt;function tre(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=YGe.slice(0),this.decodeTableSeq=[];for(var n=0;npL)throw new Error("gb18030 decode tables conflict at byte 2");for(var I=this.decodeTables[pL-A[f]],C=129;C<=254;C++){if(I[C]===px)I[C]=pL-o;else{if(I[C]===pL-o)continue;if(I[C]>pL)throw new Error("gb18030 decode tables conflict at byte 3")}for(var b=this.decodeTables[pL-I[C]],E=48;E<=57;E++)b[E]===px&&(b[E]=oIs)}}}this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var N={};if(e.encodeSkipVals)for(var n=0;n0;e>>>=8)t.push(e&255);t.length==0&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var a=r[t[n]];if(a==px)r[t[n]]=pL-this.decodeTables.length,this.decodeTables.push(r=YGe.slice(0));else if(a<=pL)r=this.decodeTables[pL-a];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};tre.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t=t&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};tre.prototype._getEncodeBucket=function(e){var t=e>>8;return this.encodeTable[t]===void 0&&(this.encodeTable[t]=YGe.slice(0)),this.encodeTable[t]};tre.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=e&255;r[n]<=WH?this.encodeTableSeq[WH-r[n]][L7e]=t:r[n]==px&&(r[n]=t)};tre.prototype._setEncodeSequence=function(e,t){var r=e[0],n=this._getEncodeBucket(r),a=r&255,o;n[a]<=WH?o=this.encodeTableSeq[WH-n[a]]:(o={},n[a]!==px&&(o[L7e]=n[a]),n[a]=WH-this.encodeTableSeq.length,this.encodeTableSeq.push(o));for(var l=1;l=0)this._setEncodeChar(A,f),a=!0;else if(A<=pL){var I=pL-A;if(!o[I]){var C=f<<8>>>0;this._fillEncodeTable(I,C,r)?a=!0:o[I]=!0}}else A<=WH&&(this._setEncodeSequence(this.decodeTableSeq[WH-A],f),a=!0)}return a};function XFt(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}XFt.prototype.write=function(e){for(var t=_8r.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,a=-1,o=0,l=0;;){if(a===-1){if(o==e.length)break;var A=e.charCodeAt(o++)}else{var A=a;a=-1}if(55296<=A&&A<57344)if(A<56320)if(r===-1){r=A;continue}else r=A,A=px;else r!==-1?(A=65536+(r-55296)*1024+(A-56320),r=-1):A=px;else r!==-1&&(a=A,A=px,r=-1);var f=px;if(n!==void 0&&A!=px){var I=n[A];if(typeof I=="object"){n=I;continue}else typeof I=="number"?f=I:I==null&&(I=n[L7e],I!==void 0&&(f=I,a=A));n=void 0}else if(A>=0){var C=this.encodeTable[A>>8];if(C!==void 0&&(f=C[A&255]),f<=WH){n=this.encodeTableSeq[WH-f];continue}if(f==px&&this.gb18030){var b=b8r(this.gb18030.uChars,A);if(b!=-1){var f=this.gb18030.gbChars[b]+(A-this.gb18030.uChars[b]);t[l++]=129+Math.floor(f/12600),f=f%12600,t[l++]=48+Math.floor(f/1260),f=f%1260,t[l++]=129+Math.floor(f/10),f=f%10,t[l++]=48+f;continue}}}f===px&&(f=this.defaultCharSingleByte),f<256?t[l++]=f:f<65536?(t[l++]=f>>8,t[l++]=f&255):f<16777216?(t[l++]=f>>16,t[l++]=f>>8&255,t[l++]=f&255):(t[l++]=f>>>24,t[l++]=f>>>16&255,t[l++]=f>>>8&255,t[l++]=f&255)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,l)};XFt.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var e=_8r.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[L7e];r!==void 0&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}};XFt.prototype.findIdx=b8r;function y8r(e,t){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}y8r.prototype.write=function(e){for(var t=_8r.alloc(e.length*2),r=this.nodeIdx,n=this.prevBytes,a=this.prevBytes.length,o=-this.prevBytes.length,l,A=0,f=0;A=0?e[A]:n[A+a],l=this.decodeTables[r][I];if(!(l>=0))if(l===px)l=this.defaultCharUnicode.charCodeAt(0),A=o;else if(l===oIs){if(A>=3)var C=(e[A-3]-129)*12600+(e[A-2]-48)*1260+(e[A-1]-129)*10+(I-48);else var C=(n[A-3+a]-129)*12600+((A-2>=0?e[A-2]:n[A-2+a])-48)*1260+((A-1>=0?e[A-1]:n[A-1+a])-129)*10+(I-48);var b=b8r(this.gb18030.gbChars,C);l=this.gb18030.uChars[b]+C-this.gb18030.gbChars[b]}else if(l<=pL){r=pL-l;continue}else if(l<=WH){for(var E=this.decodeTableSeq[WH-l],N=0;N>8;l=E[E.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+l+" at "+r+"/"+I);if(l>=65536){l-=65536;var B=55296|l>>10;t[f++]=B&255,t[f++]=B>>8,l=56320|l&1023}t[f++]=l&255,t[f++]=l>>8,r=0,o=A+1}return this.nodeIdx=r,this.prevBytes=o>=0?Array.prototype.slice.call(e,o):n.slice(o+a).concat(Array.prototype.slice.call(e)),t.slice(0,f).toString("ucs2")};y8r.prototype.end=function(){for(var e="";this.prevBytes.length>0;){e+=this.defaultCharUnicode;var t=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.prevBytes=[],this.nodeIdx=0,e};function b8r(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r>1);e[a]<=t?r=a:n=a}return r}});var lIs=H((zng,Y2l)=>{Y2l.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var uIs=H((qng,Q2l)=>{Q2l.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var JFt=H(($ng,X2l)=>{X2l.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var E8r=H((eig,J2l)=>{J2l.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var gIs=H((tig,U2l)=>{U2l.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var AIs=H((rig,K2l)=>{K2l.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var S8r=H((nig,j2l)=>{j2l.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var dIs=H((iig,z2l)=>{z2l.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var fIs=H((sig,pIs)=>{"use strict";pIs.exports={shiftjis:{type:"_dbcs",table:function(){return lIs()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return uIs()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return JFt()}},gbk:{type:"_dbcs",table:function(){return JFt().concat(E8r())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return JFt().concat(E8r())},gb18030:function(){return gIs()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return AIs()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return S8r()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return S8r().concat(dIs())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var mIs=H((hIs,QGe)=>{"use strict";var IIs=[Qfs(),Ufs(),zfs(),$fs(),tIs(),nIs(),sIs(),cIs(),fIs()];for(UFt=0;UFt{"use strict";var CIs=ere().Buffer;_Is.exports=function(e){var t=e.Transform;function r(a,o){this.conv=a,o=o||{},o.decodeStrings=!1,t.call(this,o)}r.prototype=Object.create(t.prototype,{constructor:{value:r}}),r.prototype._transform=function(a,o,l){if(typeof a!="string")return l(new Error("Iconv encoding stream needs strings as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A),l()}catch(f){l(f)}},r.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o),a()}catch(l){a(l)}},r.prototype.collect=function(a){var o=[];return this.on("error",a),this.on("data",function(l){o.push(l)}),this.on("end",function(){a(null,CIs.concat(o))}),this};function n(a,o){this.conv=a,o=o||{},o.encoding=this.encoding="utf8",t.call(this,o)}return n.prototype=Object.create(t.prototype,{constructor:{value:n}}),n.prototype._transform=function(a,o,l){if(!CIs.isBuffer(a)&&!(a instanceof Uint8Array))return l(new Error("Iconv decoding stream needs buffers as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A,this.encoding),l()}catch(f){l(f)}},n.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o,this.encoding),a()}catch(l){a(l)}},n.prototype.collect=function(a){var o="";return this.on("error",a),this.on("data",function(l){o+=l}),this.on("end",function(){a(null,o)}),this},{IconvLiteEncoderStream:r,IconvLiteDecoderStream:n}}});var vIs=H((aig,SIs)=>{"use strict";var bIs=ere().Buffer,EIs=Hfs(),zI=SIs.exports;zI.encodings=null;zI.defaultCharUnicode="\uFFFD";zI.defaultCharSingleByte="?";zI.encode=function(t,r,n){t=""+(t||"");var a=zI.getEncoder(r,n),o=a.write(t),l=a.end();return l&&l.length>0?bIs.concat([o,l]):o};zI.decode=function(t,r,n){typeof t=="string"&&(zI.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),zI.skipDecodeWarning=!0),t=bIs.from(""+(t||""),"binary"));var a=zI.getDecoder(r,n),o=a.write(t),l=a.end();return l?o+l:o};zI.encodingExists=function(t){try{return zI.getCodec(t),!0}catch{return!1}};zI.toEncoding=zI.encode;zI.fromEncoding=zI.decode;zI._codecDataCache={};zI.getCodec=function(t){zI.encodings||(zI.encodings=mIs());for(var r=zI._canonicalizeEncoding(t),n={};;){var a=zI._codecDataCache[r];if(a)return a;var o=zI.encodings[r];switch(typeof o){case"string":r=o;break;case"object":for(var l in o)n[l]=o[l];n.encodingName||(n.encodingName=r),r=o.type;break;case"function":return n.encodingName||(n.encodingName=r),a=new o(n,zI),zI._codecDataCache[n.encodingName]=a,a;default:throw new Error("Encoding not recognized: '"+t+"' (searched as: '"+r+"')")}}};zI._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};zI.getEncoder=function(t,r){var n=zI.getCodec(t),a=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(a=new EIs.PrependBOM(a,r)),a};zI.getDecoder=function(t,r){var n=zI.getCodec(t),a=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(a=new EIs.StripBOM(a,r)),a};zI.enableStreamingAPI=function(t){if(!zI.supportsStreams){var r=yIs()(t);zI.IconvLiteEncoderStream=r.IconvLiteEncoderStream,zI.IconvLiteDecoderStream=r.IconvLiteDecoderStream,zI.encodeStream=function(a,o){return new zI.IconvLiteEncoderStream(zI.getEncoder(a,o),o)},zI.decodeStream=function(a,o){return new zI.IconvLiteDecoderStream(zI.getDecoder(a,o),o)},zI.supportsStreams=!0}};var jFt;try{jFt=wt("stream")}catch{}jFt&&jFt.Transform?zI.enableStreamingAPI(jFt):zI.encodeStream=zI.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});var TIs=H((cig,wIs)=>{"use strict";var zFt=vIs();wIs.exports.convert=q2l;function q2l(e,t,r){r=BIs(r||"UTF-8"),t=BIs(t||"UTF-8"),e=e||"";var n;if(r!=="UTF-8"&&typeof e=="string"&&(e=Buffer.from(e,"binary")),r===t)typeof e=="string"?n=Buffer.from(e):n=e;else try{n=$2l(e,t,r)}catch(a){console.error(a),n=e}return typeof n=="string"&&(n=Buffer.from(n,"utf-8")),n}function $2l(e,t,r){return t==="UTF-8"?zFt.decode(e,r):r==="UTF-8"?zFt.encode(e,t):zFt.encode(zFt.decode(e,r),t)}function BIs(e){return(e||"").toString().trim().replace(/^latin[\-_]?(\d+)$/i,"ISO-8859-$1").replace(/^win(?:dows)?[\-_]?(\d+)$/i,"WINDOWS-$1").replace(/^utf[\-_]?(\d+)$/i,"UTF-$1").replace(/^ks_c_5601\-1987$/i,"CP949").replace(/^us[\-_]?ascii$/i,"ASCII").toUpperCase()}});var $Ft=H((lig,DIs)=>{"use strict";var{Minipass:N6}=rF(),v8r=Lfs(),NIs=Pfs(),{BUFFER:eSl}=NIs,V7e=MKr(),B8r;try{B8r=TIs().convert}catch{}var rre=Symbol("Body internals"),S0e=Symbol("consumeBody"),qFt=class{constructor(t,r={}){let{size:n=0,timeout:a=0}=r,o=t==null?null:RIs(t)?Buffer.from(t.toString()):P7e(t)||Buffer.isBuffer(t)?t:Object.prototype.toString.call(t)==="[object ArrayBuffer]"?Buffer.from(t):ArrayBuffer.isView(t)?Buffer.from(t.buffer,t.byteOffset,t.byteLength):N6.isStream(t)?t:Buffer.from(String(t));this[rre]={body:o,disturbed:!1,error:null},this.size=n,this.timeout=a,N6.isStream(o)&&o.on("error",l=>{let A=l.name==="AbortError"?l:new V7e(`Invalid response while trying to fetch ${this.url}: ${l.message}`,"system",l);this[rre].error=A})}get body(){return this[rre].body}get bodyUsed(){return this[rre].disturbed}arrayBuffer(){return this[S0e]().then(t=>t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}blob(){let t=this.headers&&this.headers.get("content-type")||"";return this[S0e]().then(r=>Object.assign(new NIs([],{type:t.toLowerCase()}),{[eSl]:r}))}async json(){let t=await this[S0e]();try{return JSON.parse(t.toString())}catch(r){throw new V7e(`invalid json response body at ${this.url} reason: ${r.message}`,"invalid-json")}}text(){return this[S0e]().then(t=>t.toString())}buffer(){return this[S0e]()}textConverted(){return this[S0e]().then(t=>tSl(t,this.headers))}[S0e](){if(this[rre].disturbed)return Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[rre].disturbed=!0,this[rre].error)return Promise.reject(this[rre].error);if(this.body===null)return Promise.resolve(Buffer.alloc(0));if(Buffer.isBuffer(this.body))return Promise.resolve(this.body);let t=P7e(this.body)?this.body.stream():this.body;if(!N6.isStream(t))return Promise.resolve(Buffer.alloc(0));let r=this.size&&t instanceof v8r||!this.size&&t instanceof N6&&!(t instanceof v8r)?t:this.size?new v8r({size:this.size}):new N6,n=this.timeout&&r.writable?setTimeout(()=>{r.emit("error",new V7e(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`,"body-timeout"))},this.timeout):null;return n&&n.unref&&n.unref(),new Promise(a=>{r!==t&&(t.on("error",o=>r.emit("error",o)),t.pipe(r)),a()}).then(()=>r.concat()).then(a=>(clearTimeout(n),a)).catch(a=>{throw clearTimeout(n),a.name==="AbortError"||a.name==="FetchError"?a:a.name==="RangeError"?new V7e(`Could not create Buffer from response body for ${this.url}: ${a.message}`,"system",a):new V7e(`Invalid response body while trying to fetch ${this.url}: ${a.message}`,"system",a)})}static clone(t){if(t.bodyUsed)throw new Error("cannot clone body after it is used");let r=t.body;if(N6.isStream(r)&&typeof r.getBoundary!="function"){let n=new N6,a=new N6,o=new N6;return n.on("error",l=>{a.emit("error",l),o.emit("error",l)}),r.on("error",l=>n.emit("error",l)),n.pipe(a),n.pipe(o),r.pipe(n),t[rre].body=a,o}else return t.body}static extractContentType(t){return t==null?null:typeof t=="string"?"text/plain;charset=UTF-8":RIs(t)?"application/x-www-form-urlencoded;charset=UTF-8":P7e(t)?t.type||null:Buffer.isBuffer(t)||Object.prototype.toString.call(t)==="[object ArrayBuffer]"||ArrayBuffer.isView(t)?null:typeof t.getBoundary=="function"?`multipart/form-data;boundary=${t.getBoundary()}`:N6.isStream(t)?null:"text/plain;charset=UTF-8"}static getTotalBytes(t){let{body:r}=t;return r==null?0:P7e(r)?r.size:Buffer.isBuffer(r)?r.length:r&&typeof r.getLengthSync=="function"&&(r._lengthRetrievers&&r._lengthRetrievers.length===0||r.hasKnownLength&&r.hasKnownLength())?r.getLengthSync():null}static writeToStream(t,r){let{body:n}=r;return n==null?t.end():Buffer.isBuffer(n)||typeof n=="string"?t.end(n):(P7e(n)?n.stream():n).on("error",o=>t.emit("error",o)).pipe(t),t}};Object.defineProperties(qFt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});var RIs=e=>typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function",P7e=e=>typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),tSl=(e,t)=>{if(typeof B8r!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t&&t.get("content-type"),n="utf-8",a;r&&(a=/charset=([^;]*)/i.exec(r));let o=e.slice(0,1024).toString();return!a&&o&&(a=/{"use strict";var xIs=/[^^_`a-zA-Z\-0-9!#$%&'*+.|~]/,T8r=/[^\t\x20-\x7e\x80-\xff]/,W7e=e=>{if(e=`${e}`,xIs.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)},kIs=e=>{if(e=`${e}`,T8r.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)},XGe=(e,t)=>{t=t.toLowerCase();for(let r in e)if(r.toLowerCase()===t)return r},Aw=Symbol("map"),eZt=class e{constructor(t=void 0){if(this[Aw]=Object.create(null),t instanceof e){let r=t.raw(),n=Object.keys(r);for(let a of n)for(let o of r[a])this.append(a,o);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let a of t){if(typeof a!="object"||typeof a[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");let o=Array.from(a);if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");n.push(o)}for(let a of n)this.append(a[0],a[1])}else for(let n of Object.keys(t))this.append(n,t[n])}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,W7e(t);let r=XGe(this[Aw],t);return r===void 0?null:this[Aw][r].join(", ")}forEach(t,r=void 0){let n=R8r(this);for(let a=0;aObject.keys(e[Aw]).sort().map(t==="key"?r=>r.toLowerCase():t==="value"?r=>e[Aw][r].join(", "):r=>[r.toLowerCase(),e[Aw][r].join(", ")]),w8r=Symbol("internal"),v0e=class e{constructor(t,r){this[w8r]={target:t,kind:r,index:0}}get[Symbol.toStringTag](){return"HeadersIterator"}next(){if(!this||Object.getPrototypeOf(this)!==e.prototype)throw new TypeError("Value of `this` is not a HeadersIterator");let{target:t,kind:r,index:n}=this[w8r],a=R8r(t,r),o=a.length;return n>=o?{value:void 0,done:!0}:(this[w8r].index++,{value:a[n],done:!1})}};Object.setPrototypeOf(v0e.prototype,Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));GIs.exports=eZt});var VIs=H((gig,LIs)=>{"use strict";var rSl=wt("http"),{STATUS_CODES:nSl}=rSl,FIs=tZt(),ZIs=$Ft(),{clone:iSl,extractContentType:sSl}=ZIs,nre=Symbol("Response internals"),rZt=class e extends ZIs{constructor(t=null,r={}){super(t,r);let n=r.status||200,a=new FIs(r.headers);if(t!=null&&!a.has("Content-Type")){let o=sSl(t);o&&a.append("Content-Type",o)}this[nre]={url:r.url,status:n,statusText:r.statusText||nSl[n],headers:a,counter:r.counter,trailer:Promise.resolve(r.trailer||new FIs)}}get trailer(){return this[nre].trailer}get url(){return this[nre].url||""}get status(){return this[nre].status}get ok(){return this[nre].status>=200&&this[nre].status<300}get redirected(){return this[nre].counter>0}get statusText(){return this[nre].statusText}get headers(){return this[nre].headers}clone(){return new e(iSl(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,trailer:this.trailer})}get[Symbol.toStringTag](){return"Response"}};LIs.exports=rZt;Object.defineProperties(rZt.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var PIs=H((Aig,oSl)=>{oSl.exports={name:"minipass-fetch",version:"4.0.1",description:"An implementation of window.fetch in Node.js using Minipass streams",license:"MIT",main:"lib/index.js",scripts:{"test:tls-fixtures":"./test/fixtures/tls/setup.sh",test:"tap",snap:"tap",lint:"npm run eslint",postlint:"template-oss-check",lintfix:"npm run eslint -- --fix",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},tap:{"coverage-map":"map.js","check-coverage":!0,"nyc-arg":["--exclude","tap-snapshots/**"]},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3","@ungap/url-search-params":"^0.2.2","abort-controller":"^3.0.0","abortcontroller-polyfill":"~1.7.3",encoding:"^0.1.13","form-data":"^4.0.0",nock:"^13.2.4",parted:"^0.1.1","string-to-arraybuffer":"^1.0.2",tap:"^16.0.0"},dependencies:{minipass:"^7.0.3","minipass-sized":"^1.0.3",minizlib:"^3.0.1"},optionalDependencies:{encoding:"^0.1.13"},repository:{type:"git",url:"git+https://github.com/npm/minipass-fetch.git"},keywords:["fetch","minipass","node-fetch","window.fetch"],files:["bin/","lib/"],engines:{node:"^18.17.0 || >=20.5.0"},author:"GitHub Inc.",templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.3",publish:"true"}}});var MIs=H((dig,OIs)=>{"use strict";var{URL:N8r}=wt("url"),{Minipass:aSl}=rF(),D8r=tZt(),{exportNodeCompatibleHeaders:cSl}=D8r,WIs=$Ft(),{clone:lSl,extractContentType:uSl,getTotalBytes:gSl}=WIs,ASl=PIs().version,dSl=`minipass-fetch/${ASl} (+https://github.com/isaacs/minipass-fetch)`,eJ=Symbol("Request internals"),nZt=e=>typeof e=="object"&&typeof e[eJ]=="object",pSl=e=>{let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")},iZt=class e extends WIs{constructor(t,r={}){let n=nZt(t)?new N8r(t.url):t&&t.href?new N8r(t.href):new N8r(`${t}`);nZt(t)?r={...t[eJ],...r}:(!t||typeof t=="string")&&(t={});let a=(r.method||t.method||"GET").toUpperCase(),o=a==="GET"||a==="HEAD";if((r.body!==null&&r.body!==void 0||nZt(t)&&t.body!==null)&&o)throw new TypeError("Request with GET/HEAD method cannot have body");let l=r.body!==null&&r.body!==void 0?r.body:nZt(t)&&t.body!==null?lSl(t):null;super(l,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let A=new D8r(r.headers||t.headers||{});if(l!=null&&!A.has("Content-Type")){let De=uSl(l);De&&A.append("Content-Type",De)}let f="signal"in r?r.signal:null;if(f!=null&&!pSl(f))throw new TypeError("Expected signal must be an instanceof AbortSignal");let{ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0",secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se}=r;this[eJ]={method:a,redirect:r.redirect||t.redirect||"follow",headers:A,parsedURL:n,signal:f,ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe,secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[eJ].method}get url(){return this[eJ].parsedURL.toString()}get headers(){return this[eJ].headers}get redirect(){return this[eJ].redirect}get signal(){return this[eJ].signal}clone(){return new e(this)}get[Symbol.toStringTag](){return"Request"}static getNodeRequestOptions(t){let r=t[eJ].parsedURL,n=new D8r(t[eJ].headers);if(n.has("Accept")||n.set("Accept","*/*"),!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&aSl.isStream(t.body)&&typeof t.body.destroy!="function")throw new Error("Cancellation of streamed requests with AbortSignal is not supported");let a=(t.body===null||t.body===void 0)&&/^(POST|PUT)$/i.test(t.method)?"0":t.body!==null&&t.body!==void 0?gSl(t):null;a&&n.set("Content-Length",a+""),n.has("User-Agent")||n.set("User-Agent",dSl),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip,deflate");let o=typeof t.agent=="function"?t.agent(r):t.agent;!n.has("Connection")&&!o&&n.set("Connection","close");let{ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue}=t[eJ];return{...{auth:r.username||r.password?`${r.username}:${r.password}`:"",host:r.host,hostname:r.hostname,path:`${r.pathname}${r.search}`,port:r.port,protocol:r.protocol},method:t.method,headers:cSl(n),agent:o,ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue,timeout:t.timeout}}};OIs.exports=iZt;Object.defineProperties(iZt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}})});var YIs=H((pig,HIs)=>{"use strict";var k8r=class extends Error{constructor(t){super(t),this.code="FETCH_ABORTED",this.type="aborted",Error.captureStackTrace(this,this.constructor)}get name(){return"AbortError"}set name(t){}};HIs.exports=k8r});var H7e=H((fig,JIs)=>{"use strict";var{URL:O7e}=wt("url"),fSl=wt("http"),ISl=wt("https"),JGe=Bfs(),{Minipass:QIs}=rF(),hSl=$Ft(),{writeToStream:mSl,getTotalBytes:CSl}=hSl,B0e=VIs(),G8r=tZt(),{createHeadersLenient:XIs}=G8r,M7e=MIs(),{getNodeRequestOptions:_Sl}=M7e,Pue=MKr(),x8r=YIs(),ire=async(e,t)=>{if(/^data:/.test(e)){let r=new M7e(e,t);return Promise.resolve().then(()=>new Promise((n,a)=>{let o,l;try{let{pathname:I,search:C}=new O7e(e),b=I.split(",");if(b.length<2)throw new Error("invalid data: URI");let E=b.shift(),N=/;base64$/.test(E);o=N?E.slice(0,-1*7):E;let B=decodeURIComponent(b.join(",")+C);l=N?Buffer.from(B,"base64"):Buffer.from(B)}catch(I){return a(new Pue(`[${r.method}] ${r.url} invalid URL, ${I.message}`,"system",I))}let{signal:A}=r;if(A&&A.aborted)return a(new x8r("The user aborted a request."));let f={"Content-Length":l.length};return o&&(f["Content-Type"]=o),n(new B0e(l,{headers:f}))}))}return new Promise((r,n)=>{let a=new M7e(e,t),o;try{o=_Sl(a)}catch(B){return n(B)}let l=(o.protocol==="https:"?ISl:fSl).request,{signal:A}=a,f=null,I=()=>{let B=new x8r("The user aborted a request.");n(B),QIs.isStream(a.body)&&typeof a.body.destroy=="function"&&a.body.destroy(B),f&&f.body&&f.body.emit("error",B)};if(A&&A.aborted)return I();let C=()=>{I(),b()},b=()=>{E.abort(),A&&A.removeEventListener("abort",C),clearTimeout(N)},E=l(o);A&&A.addEventListener("abort",C);let N=null;a.timeout&&E.once("socket",()=>{N=setTimeout(()=>{n(new Pue(`network timeout at: ${a.url}`,"request-timeout")),b()},a.timeout)}),E.on("error",B=>{E.res&&E.res.emit("error",B),n(new Pue(`request to ${a.url} failed, reason: ${B.message}`,"system",B)),b()}),E.on("response",B=>{clearTimeout(N);let F=XIs(B.headers);if(ire.isRedirect(B.statusCode)){let fe=F.get("Location"),ue=null;try{ue=fe===null?null:new O7e(fe,a.url).toString()}catch{if(a.redirect!=="manual"){n(new Pue(`uri requested responds with an invalid redirect URL: ${fe}`,"invalid-redirect")),b();return}}if(a.redirect==="error"){n(new Pue(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),b();return}else if(a.redirect==="manual"){if(ue!==null)try{F.set("Location",ue)}catch(de){n(de)}}else if(a.redirect==="follow"&&ue!==null){if(a.counter>=a.follow){n(new Pue(`maximum redirect reached at: ${a.url}`,"max-redirect")),b();return}if(B.statusCode!==303&&a.body&&CSl(a)===null){n(new Pue("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}a.headers.set("host",new O7e(ue).host);let de={headers:new G8r(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:a.body,signal:a.signal,timeout:a.timeout},be=new O7e(a.url),Se=new O7e(ue);be.hostname!==Se.hostname&&(de.headers.delete("authorization"),de.headers.delete("cookie")),(B.statusCode===303||(B.statusCode===301||B.statusCode===302)&&a.method==="POST")&&(de.method="GET",de.body=void 0,de.headers.delete("content-length")),r(ire(new M7e(ue,de))),b();return}}B.once("end",()=>A&&A.removeEventListener("abort",C));let Q=new QIs;Q.on("error",b),B.on("error",fe=>Q.emit("error",fe)),B.on("data",fe=>Q.write(fe)),B.on("end",()=>Q.end());let X={url:a.url,status:B.statusCode,statusText:B.statusMessage,headers:F,size:a.size,timeout:a.timeout,counter:a.counter,trailer:new Promise(fe=>B.on("end",()=>fe(XIs(B.trailers))))},ae=F.get("Content-Encoding");if(!a.compress||a.method==="HEAD"||ae===null||B.statusCode===204||B.statusCode===304){f=new B0e(Q,X),r(f);return}let ne={flush:JGe.constants.Z_SYNC_FLUSH,finishFlush:JGe.constants.Z_SYNC_FLUSH};if(ae==="gzip"||ae==="x-gzip"){let fe=new JGe.Gunzip(ne);f=new B0e(Q.on("error",ue=>fe.emit("error",ue)).pipe(fe),X),r(f);return}if(ae==="deflate"||ae==="x-deflate"){B.once("data",fe=>{let ue=(fe[0]&15)===8?new JGe.Inflate:new JGe.InflateRaw;Q.on("error",de=>ue.emit("error",de)).pipe(ue),f=new B0e(ue,X),r(f)});return}if(ae==="br"){try{var ce=new JGe.BrotliDecompress}catch(fe){n(fe),b();return}Q.on("error",fe=>ce.emit("error",fe)).pipe(ce),f=new B0e(ce,X),r(f);return}f=new B0e(Q,X),r(f)}),mSl(E,a)})};JIs.exports=ire;ire.isRedirect=e=>e===301||e===302||e===303||e===307||e===308;ire.Headers=G8r;ire.Request=M7e;ire.Response=B0e;ire.FetchError=Pue;ire.AbortError=x8r});var KIs=H((Iig,UIs)=>{var ySl=wt("dns"),bSl=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"],ESl=e=>{let{strictSSL:t,...r}={...e};if(r.method=r.method?r.method.toUpperCase():"GET",t==null?r.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0":r.rejectUnauthorized=t!==!1,!r.retry)r.retry={retries:0};else if(typeof r.retry=="string"){let n=parseInt(r.retry,10);isFinite(n)?r.retry={retries:n}:r.retry={retries:0}}else typeof r.retry=="number"?r.retry={retries:r.retry}:r.retry={retries:0,...r.retry};return r.dns={ttl:5*60*1e3,lookup:ySl.lookup,...r.dns},r.cache=r.cache||"default",r.cache==="default"&&Object.keys(r.headers||{}).some(a=>bSl.includes(a.toLowerCase()))&&(r.cache="no-store"),r.cacheAdditionalHeaders=r.cacheAdditionalHeaders||[],r.cacheManager&&!r.cachePath&&(r.cachePath=r.cacheManager),r};UIs.exports=ESl});var $Is=H((hig,F8r)=>{"use strict";F8r.exports=qIs;F8r.exports.preferredCharsets=qIs;var SSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function vSl(e){for(var t=e.split(","),r=0,n=0;r0}});var nhs=H((mig,Z8r)=>{"use strict";Z8r.exports=rhs;Z8r.exports.preferredEncodings=rhs;var NSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function DSl(e){for(var t=e.split(","),r=!1,n=1,a=0,o=0;a0}});var chs=H((Cig,L8r)=>{"use strict";L8r.exports=ahs;L8r.exports.preferredLanguages=ahs;var ZSl=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function LSl(e){for(var t=e.split(","),r=0,n=0;r0}});var phs=H((_ig,V8r)=>{"use strict";V8r.exports=Ahs;V8r.exports.preferredMediaTypes=Ahs;var OSl=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function MSl(e){for(var t=JSl(e),r=0,n=0;r0)if(o.every(function(l){return t.params[l]=="*"||(t.params[l]||"").toLowerCase()==(n.params[l]||"").toLowerCase()}))a|=1;else return null;return{i:r,o:t.i,q:t.q,s:a}}function Ahs(e,t){var r=MSl(e===void 0?"*/*":e||"");if(!t)return r.filter(uhs).sort(lhs).map(QSl);var n=t.map(function(o,l){return HSl(o,r,l)});return n.filter(uhs).sort(lhs).map(function(o){return t[n.indexOf(o)]})}function lhs(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function QSl(e){return e.type+"/"+e.subtype}function uhs(e){return e.q>0}function dhs(e){for(var t=0,r=0;(r=e.indexOf('"',r))!==-1;)t++,r++;return t}function XSl(e){var t=e.indexOf("="),r,n;return t===-1?r=e:(r=e.slice(0,t),n=e.slice(t+1)),[r,n]}function JSl(e){for(var t=e.split(","),r=1,n=0;r{"use strict";var KSl=$Is(),jSl=nhs(),zSl=chs(),qSl=phs();P8r.exports=db;P8r.exports.Negotiator=db;function db(e){if(!(this instanceof db))return new db(e);this.request=e}db.prototype.charset=function(t){var r=this.charsets(t);return r&&r[0]};db.prototype.charsets=function(t){return KSl(this.request.headers["accept-charset"],t)};db.prototype.encoding=function(t,r){var n=this.encodings(t,r);return n&&n[0]};db.prototype.encodings=function(t,r){var n=r||{};return jSl(this.request.headers["accept-encoding"],t,n.preferred)};db.prototype.language=function(t){var r=this.languages(t);return r&&r[0]};db.prototype.languages=function(t){return zSl(this.request.headers["accept-language"],t)};db.prototype.mediaType=function(t){var r=this.mediaTypes(t);return r&&r[0]};db.prototype.mediaTypes=function(t){return qSl(this.request.headers.accept,t)};db.prototype.preferredCharset=db.prototype.charset;db.prototype.preferredCharsets=db.prototype.charsets;db.prototype.preferredEncoding=db.prototype.encoding;db.prototype.preferredEncodings=db.prototype.encodings;db.prototype.preferredLanguage=db.prototype.language;db.prototype.preferredLanguages=db.prototype.languages;db.prototype.preferredMediaType=db.prototype.mediaType;db.prototype.preferredMediaTypes=db.prototype.mediaTypes});var O8r=H((big,_hs)=>{var Ihs=jur(),hhs=fhs(),$Sl=Jte(),mhs={shared:!1,ignoreCargoCult:!0},evl={status:200,headers:{}},UGe=e=>{let t={method:e.method,url:e.url,headers:{},compress:e.compress};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},Chs=e=>{let t={status:e.status,headers:{}};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},W8r=class{constructor({entry:t,request:r,response:n,options:a}){this.entry=t,this.request=UGe(r),this.response=Chs(n),this.options=a,this.policy=new Ihs(this.request,this.response,mhs),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(t,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(t.method)?!1:new Ihs(UGe(t),evl,mhs).storable()}satisfies(t){let r=UGe(t);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let n=new hhs(this.request),a=new hhs(r);return JSON.stringify(n.mediaTypes())!==JSON.stringify(a.mediaTypes())||JSON.stringify(n.languages())!==JSON.stringify(a.languages())||JSON.stringify(n.encodings())!==JSON.stringify(a.encodings())?!1:this.options.integrity?$Sl.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(t){let r=UGe(t);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(t){let r=UGe(t);return this.policy.revalidationHeaders(r)}revalidated(t,r){let n=UGe(t),a=Chs(r);return!this.policy.revalidatedPolicy(n,a).modified}};_hs.exports=W8r});var bhs=H((Eig,yhs)=>{var M8r=class extends Error{constructor(t){super(`request to ${t} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};yhs.exports={NotCachedError:M8r}});var sZt=H((Sig,Bhs)=>{var tvl=FFt(),Ehs=Symbol("_flush"),Shs=Symbol("_flushed"),vhs=Symbol("_flushing"),H8r=class extends tvl{constructor(t={}){if(typeof t=="function"&&(t={flush:t}),super(t),typeof t.flush!="function"&&typeof this.flush!="function")throw new TypeError("must provide flush function in options");this[Ehs]=t.flush||this.flush}emit(t,...r){if(t!=="end"&&t!=="finish"||this[Shs])return super.emit(t,...r);if(this[vhs])return;this[vhs]=!0;let n=o=>{this[Shs]=!0,o?super.emit("error",o):super.emit("end")},a=this[Ehs](n);a&&a.then&&a.then(()=>n(),o=>n(o))}};Bhs.exports=H8r});var J8r=H((vig,X8r)=>{var{Minipass:whs}=rF(),KGe=Symbol("_data"),jGe=Symbol("_length"),Y8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,n&&n(),!0}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return super.write(a),super.end(n)}};X8r.exports=Y8r;var Q8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,super.write(t,r,n)}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return this.emit("collect",a),super.end(n)}};X8r.exports.PassThrough=Q8r});var zGe=H((Big,Dhs)=>{var rvl=FFt(),nvl=wt("events"),ivl=e=>e&&e instanceof nvl&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"),w0e=Symbol("_head"),XO=Symbol("_tail"),U8r=Symbol("_linkStreams"),K8r=Symbol("_setHead"),j8r=Symbol("_setTail"),Ths=Symbol("_onError"),Rhs=Symbol("_onData"),z8r=Symbol("_onEnd"),Nhs=Symbol("_onDrain"),oZt=Symbol("_streams"),q8r=class extends rvl{constructor(t,...r){ivl(t)&&(r.unshift(t),t={}),super(t),this[oZt]=[],r.length&&this.push(...r)}[U8r](t){return t.reduce((r,n)=>(r.on("error",a=>n.emit("error",a)),r.pipe(n),n))}push(...t){this[oZt].push(...t),this[XO]&&t.unshift(this[XO]);let r=this[U8r](t);this[j8r](r),this[w0e]||this[K8r](t[0])}unshift(...t){this[oZt].unshift(...t),this[w0e]&&t.push(this[w0e]);let r=this[U8r](t);this[K8r](t[0]),this[XO]||this[j8r](r)}destroy(t){return this[oZt].forEach(r=>typeof r.destroy=="function"&&r.destroy()),super.destroy(t)}[j8r](t){this[XO]=t,t.on("error",r=>this[Ths](t,r)),t.on("data",r=>this[Rhs](t,r)),t.on("end",()=>this[z8r](t)),t.on("finish",()=>this[z8r](t))}[Ths](t,r){t===this[XO]&&this.emit("error",r)}[Rhs](t,r){t===this[XO]&&super.write(r)}[z8r](t){t===this[XO]&&super.end()}pause(){return super.pause(),this[XO]&&this[XO].pause&&this[XO].pause()}emit(t,...r){return t==="resume"&&this[XO]&&this[XO].resume&&this[XO].resume(),super.emit(t,...r)}[K8r](t){this[w0e]=t,t.on("drain",()=>this[Nhs](t))}[Nhs](t){t===this[w0e]&&this.emit("drain")}write(t,r,n){return this[w0e].write(t,r,n)&&(this.flowing||this.buffer.length===0)}end(t,r,n){return this[w0e].end(t,r,n),this}};Dhs.exports=q8r});var khs=H((wig,$8r)=>{(function(){var e;function t(r,n){var a=this instanceof t?this:e;if(a.reset(n),typeof r=="string"&&r.length>0&&a.hash(r),a!==this)return a}t.prototype.hash=function(r){var n,a,o,l,A;switch(A=r.length,this.len+=A,a=this.k1,o=0,this.rem){case 0:a^=A>o?r.charCodeAt(o++)&65535:0;case 1:a^=A>o?(r.charCodeAt(o++)&65535)<<8:0;case 2:a^=A>o?(r.charCodeAt(o++)&65535)<<16:0;case 3:a^=A>o?(r.charCodeAt(o)&255)<<24:0,a^=A>o?(r.charCodeAt(o++)&65280)>>8:0}if(this.rem=A+this.rem&3,A-=this.rem,A>0){for(n=this.h1;a=a*11601+(a&65535)*3432906752&4294967295,a=a<<15|a>>>17,a=a*13715+(a&65535)*461832192&4294967295,n^=a,n=n<<13|n>>>19,n=n*5+3864292196&4294967295,!(o>=A);)a=r.charCodeAt(o++)&65535^(r.charCodeAt(o++)&65535)<<8^(r.charCodeAt(o++)&65535)<<16,l=r.charCodeAt(o++),a^=(l&255)<<24^(l&65280)>>8;switch(a=0,this.rem){case 3:a^=(r.charCodeAt(o+2)&65535)<<16;case 2:a^=(r.charCodeAt(o+1)&65535)<<8;case 1:a^=r.charCodeAt(o)&65535}this.h1=n}return this.k1=a,this},t.prototype.result=function(){var r,n;return r=this.k1,n=this.h1,r>0&&(r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,n^=r),n^=this.len,n^=n>>>16,n=n*51819+(n&65535)*2246770688&4294967295,n^=n>>>13,n=n*44597+(n&65535)*3266445312&4294967295,n^=n>>>16,n>>>0},t.prototype.reset=function(r){return this.h1=typeof r=="number"?r:0,this.rem=this.k1=this.len=0,this},e=new t,typeof $8r<"u"?$8r.exports=t:this.MurmurHash3=t})()});var Ghs=H((Tig,xhs)=>{"use strict";var svl=khs();xhs.exports=function(e){if(e){var t=new svl(e);return("00000000"+t.result().toString(16)).slice(-8)}else return(Math.random().toString(16)+"0000000").slice(2,10)}});var ejr=H((Rig,Fhs)=>{var ovl=wt("path"),avl=Ghs();Fhs.exports=function(e,t,r){return ovl.join(e,(t?t+"-":"")+avl(r))}});var tjr=H((Nig,cvl)=>{cvl.exports={name:"cacache",version:"19.0.1","cache-version":{content:"2",index:"5"},description:"Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",snap:"tap",coverage:"tap","test-docker":'docker run -it --rm --name pacotest -v "$PWD":/tmp -w /tmp node:latest npm test',lint:"npm run eslint",npmclilint:"npmcli-lint",lintfix:"npm run eslint -- --fix",postsnap:"npm run lintfix --",postlint:"template-oss-check",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},repository:{type:"git",url:"git+https://github.com/npm/cacache.git"},keywords:["cache","caching","content-addressable","sri","sri hash","subresource integrity","cache","storage","store","file store","filesystem","disk cache","disk storage"],license:"ISC",dependencies:{"@npmcli/fs":"^4.0.0","fs-minipass":"^3.0.0",glob:"^10.2.2","lru-cache":"^10.0.1",minipass:"^7.0.3","minipass-collect":"^2.0.1","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","p-map":"^7.0.2",ssri:"^12.0.0",tar:"^7.4.3","unique-filename":"^4.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",windowsCI:!1,version:"4.23.3",publish:"true"},author:"GitHub Inc.",tap:{"nyc-arg":["--exclude","tap-snapshots/**"]}}});var rjr=H((Dig,Zhs)=>{"use strict";Zhs.exports=lvl;function lvl(e){return[e.slice(0,2),e.slice(2,4),e.slice(4)]}});var qGe=H((kig,njr)=>{"use strict";var uvl=tjr()["cache-version"].content,gvl=rjr(),Lhs=wt("path"),Avl=Jte();njr.exports=dvl;function dvl(e,t){let r=Avl.parse(t,{single:!0});return Lhs.join(Vhs(e),r.algorithm,...gvl(r.hexDigest()))}njr.exports.contentDir=Vhs;function Vhs(e){return Lhs.join(e,`content-v${uvl}`)}});var ijr=H((xig,Phs)=>{var pvl=(e,{copy:t,wrap:r})=>{let n={};if(e&&typeof e=="object")for(let a of t)e[a]!==void 0&&(n[a]=e[a]);else n[r]=e;return n};Phs.exports=pvl});var Ohs=H((Gig,Whs)=>{var fvl=UC(),Ivl=e=>fvl.satisfies(process.version,e,{includePrerelease:!0});Whs.exports={satisfies:Ivl}});var Mhs=H((Lig,ojr)=>{"use strict";var{inspect:hvl}=wt("util"),sjr=class{constructor(t,r,n){let a=`${r}: ${n.syscall} returned ${n.code} (${n.message})`;n.path!==void 0&&(a+=` ${n.path}`),n.dest!==void 0&&(a+=` => ${n.dest}`),this.code=t,Object.defineProperties(this,{name:{value:"SystemError",enumerable:!1,writable:!0,configurable:!0},message:{value:a,enumerable:!1,writable:!0,configurable:!0},info:{value:n,enumerable:!0,configurable:!0,writable:!1},errno:{get(){return n.errno},set(o){n.errno=o},enumerable:!0,configurable:!0},syscall:{get(){return n.syscall},set(o){n.syscall=o},enumerable:!0,configurable:!0}}),n.path!==void 0&&Object.defineProperty(this,"path",{get(){return n.path},set(o){n.path=o},enumerable:!0,configurable:!0}),n.dest!==void 0&&Object.defineProperty(this,"dest",{get(){return n.dest},set(o){n.dest=o},enumerable:!0,configurable:!0})}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for("nodejs.util.inspect.custom")](t,r){return hvl(this,{...r,getters:!0,customInspect:!1})}};function sre(e,t){ojr.exports[e]=class extends sjr{constructor(n){super(e,t,n)}}}sre("ERR_FS_CP_DIR_TO_NON_DIR","Cannot overwrite directory with non-directory");sre("ERR_FS_CP_EEXIST","Target already exists");sre("ERR_FS_CP_EINVAL","Invalid src or dest");sre("ERR_FS_CP_FIFO_PIPE","Cannot copy a FIFO pipe");sre("ERR_FS_CP_NON_DIR_TO_DIR","Cannot overwrite non-directory with directory");sre("ERR_FS_CP_SOCKET","Cannot copy a socket file");sre("ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY","Cannot overwrite symlink in subdirectory of self");sre("ERR_FS_CP_UNKNOWN","Cannot copy an unknown file type");sre("ERR_FS_EISDIR","Path is a directory");ojr.exports.ERR_INVALID_ARG_TYPE=class extends Error{constructor(t,r,n){super(),this.code="ERR_INVALID_ARG_TYPE",this.message=`The ${t} argument must be ${r}. Received ${typeof n}`}}});var ams=H((Vig,oms)=>{"use strict";var{ERR_FS_CP_DIR_TO_NON_DIR:mvl,ERR_FS_CP_EEXIST:Cvl,ERR_FS_CP_EINVAL:aZt,ERR_FS_CP_FIFO_PIPE:_vl,ERR_FS_CP_NON_DIR_TO_DIR:yvl,ERR_FS_CP_SOCKET:bvl,ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY:Evl,ERR_FS_CP_UNKNOWN:Svl,ERR_FS_EISDIR:vvl,ERR_INVALID_ARG_TYPE:Bvl}=Mhs(),{constants:{errno:{EEXIST:wvl,EISDIR:Tvl,EINVAL:ore,ENOTDIR:Rvl}}}=wt("os"),{chmod:Nvl,copyFile:Dvl,lstat:zhs,mkdir:qhs,readdir:kvl,readlink:Hhs,stat:$Ge,symlink:ajr,unlink:$hs,utimes:xvl}=wt("fs/promises"),{dirname:Y7e,isAbsolute:Yhs,join:Qhs,parse:Gvl,resolve:Q7e,sep:Fvl,toNamespacedPath:Xhs}=wt("path"),{fileURLToPath:Zvl}=wt("url"),Lvl={dereference:!1,errorOnExist:!1,filter:void 0,force:!0,preserveTimestamps:!1,recursive:!1};async function Vvl(e,t,r){if(r!=null&&typeof r!="object")throw new Bvl("options",["Object"],r);return Pvl(Xhs(Jhs(e)),Xhs(Jhs(t)),{...Lvl,...r})}function Jhs(e){return e!=null&&e.href&&e.origin?Zvl(e):e}async function Pvl(e,t,r){r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended","TimestampPrecisionWarning");let n=await ems(e,t,r),{srcStat:a,destStat:o}=n;return await rms(e,a,t),r.filter?nms(Uhs,o,e,t,r):Uhs(o,e,t,r)}async function ems(e,t,r){let{0:n,1:a}=await Wvl(e,t,r);if(a){if(tms(n,a))throw new aZt({message:"src and dest cannot be the same",path:t,syscall:"cp",errno:ore});if(n.isDirectory()&&!a.isDirectory())throw new mvl({message:`cannot overwrite directory ${e} with non-directory ${t}`,path:t,syscall:"cp",errno:Tvl});if(!n.isDirectory()&&a.isDirectory())throw new yvl({message:`cannot overwrite non-directory ${e} with directory ${t}`,path:t,syscall:"cp",errno:Rvl})}if(n.isDirectory()&&cjr(e,t))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${t}`,path:t,syscall:"cp",errno:ore});return{srcStat:n,destStat:a}}function tms(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Wvl(e,t,r){let n=r.dereference?a=>$Ge(a,{bigint:!0}):a=>zhs(a,{bigint:!0});return Promise.all([n(e),n(t).catch(a=>{if(a.code==="ENOENT")return null;throw a})])}async function Uhs(e,t,r,n){let a=Y7e(r);return await Ovl(a)||await qhs(a,{recursive:!0}),cZt(e,t,r,n)}function Ovl(e){return $Ge(e).then(()=>!0,t=>t.code==="ENOENT"?!1:Promise.reject(t))}async function rms(e,t,r){let n=Q7e(Y7e(e)),a=Q7e(Y7e(r));if(a===n||a===Gvl(a).root)return;let o;try{o=await $Ge(a,{bigint:!0})}catch(l){if(l.code==="ENOENT")return;throw l}if(tms(t,o))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${r}`,path:r,syscall:"cp",errno:ore});return rms(e,t,a)}var Khs=e=>Q7e(e).split(Fvl).filter(Boolean);function cjr(e,t){let r=Khs(e),n=Khs(t);return r.every((a,o)=>n[o]===a)}async function nms(e,t,r,n,a,o){if(await a.filter(r,n))return e(t,r,n,a,o)}function Mvl(e,t,r,n){return n.filter?nms(cZt,e,t,r,n):cZt(e,t,r,n)}async function cZt(e,t,r,n){let o=await(n.dereference?$Ge:zhs)(t);if(o.isDirectory()&&n.recursive)return Kvl(o,e,t,r,n);if(o.isDirectory())throw new vvl({message:`${t} is a directory (not copied)`,path:t,syscall:"cp",errno:ore});if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Hvl(o,e,t,r,n);if(o.isSymbolicLink())return zvl(e,t,r);throw o.isSocket()?new bvl({message:`cannot copy a socket file: ${r}`,path:r,syscall:"cp",errno:ore}):o.isFIFO()?new _vl({message:`cannot copy a FIFO pipe: ${r}`,path:r,syscall:"cp",errno:ore}):new Svl({message:`cannot copy an unknown file type: ${r}`,path:r,syscall:"cp",errno:ore})}function Hvl(e,t,r,n,a){return t?Yvl(e,r,n,a):ims(e,r,n,a)}async function Yvl(e,t,r,n){if(n.force)return await $hs(r),ims(e,t,r,n);if(n.errorOnExist)throw new Cvl({message:`${r} already exists`,path:r,syscall:"cp",errno:wvl})}async function ims(e,t,r,n){return await Dvl(t,r),n.preserveTimestamps?Qvl(e.mode,t,r):lZt(r,e.mode)}async function Qvl(e,t,r){return Xvl(e)&&await Jvl(r,e),jhs(e,t,r)}function Xvl(e){return(e&128)===0}function Jvl(e,t){return lZt(e,t|128)}async function jhs(e,t,r){return await Uvl(t,r),lZt(r,e)}function lZt(e,t){return Nvl(e,t)}async function Uvl(e,t){let r=await $Ge(e);return xvl(t,r.atime,r.mtime)}function Kvl(e,t,r,n,a){return t?sms(r,n,a):jvl(e.mode,r,n,a)}async function jvl(e,t,r,n){return await qhs(r),await sms(t,r,n),lZt(r,e)}async function sms(e,t,r){let n=await kvl(e);for(let a=0;a{var $vl=wt("fs/promises"),eBl=ijr(),tBl=Ohs(),rBl=ams(),nBl=tBl.satisfies(">=16.7.0"),iBl=async(e,t,r)=>{let n=eBl(r,{copy:["dereference","errorOnExist","filter","force","preserveTimestamps","recursive"]});return nBl?$vl.cp(e,t,n):rBl(e,t,n)};cms.exports=iBl});var gms=H((Wig,ums)=>{var{join:sBl,sep:oBl}=wt("path"),aBl=ijr(),{mkdir:cBl,mkdtemp:lBl,rm:uBl}=wt("fs/promises"),gBl=async(e,t,r)=>{let n=aBl(r,{copy:["tmpPrefix"]});await cBl(e,{recursive:!0});let a=await lBl(sBl(`${e}${oBl}`,n.tmpPrefix||"")),o,l;try{l=await t(a)}catch(A){o=A}try{await uBl(a,{force:!0,recursive:!0})}catch{}if(o)throw o;return l};ums.exports=gBl});var fms=H((Oig,pms)=>{var{readdir:Ams}=wt("fs/promises"),{join:dms}=wt("path"),ABl=async e=>{let t=[];for(let r of await Ams(e))if(r.startsWith("@"))for(let n of await Ams(dms(e,r)))t.push(dms(r,n));else t.push(r);return t};pms.exports=ABl});var yms=H((Mig,_ms)=>{var{dirname:Ims,join:hms,resolve:mms,relative:dBl,isAbsolute:pBl}=wt("path"),D6=wt("fs/promises"),fBl=async e=>{try{return await D6.access(e),!0}catch(t){return t.code!=="ENOENT"}},Cms=async(e,t,r={},n=!0,a=[])=>{if(!e||!t)throw new TypeError("`source` and `destination` file required");if(r={overwrite:!0,...r},!r.overwrite&&await fBl(t))throw new Error(`The destination file exists: ${t}`);await D6.mkdir(Ims(t),{recursive:!0});try{await D6.rename(e,t)}catch(o){if(o.code==="EXDEV"||o.code==="EPERM"){let l=await D6.lstat(e);if(l.isDirectory()){let A=await D6.readdir(e);await Promise.all(A.map(f=>Cms(hms(e,f),hms(t,f),r,!1,a)))}else l.isSymbolicLink()?a.push({source:e,destination:t}):await D6.copyFile(e,t)}else throw o}n&&(await Promise.all(a.map(async({source:o,destination:l})=>{let A=await D6.readlink(o);pBl(A)&&(A=mms(l,dBl(o,A)));let f="file";try{f=await D6.stat(mms(Ims(o),A)),f.isDirectory()&&(f="junction")}catch{}await D6.symlink(A,l,f)})),await D6.rm(e,{recursive:!0,force:!0}))};_ms.exports=Cms});var uZt=H((Hig,bms)=>{"use strict";var IBl=lms(),hBl=gms(),mBl=fms(),CBl=yms();bms.exports={cp:IBl,withTempDir:hBl,readdirScoped:mBl,moveFile:CBl}});var gZt={};sI(gZt,{default:()=>Ems,pMapIterable:()=>_Bl,pMapSkip:()=>X7e});async function Ems(e,t,{concurrency:r=Number.POSITIVE_INFINITY,stopOnError:n=!0,signal:a}={}){return new Promise((o,l)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(r)&&r>=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);let A=[],f=[],I=new Map,C=!1,b=!1,E=!1,N=0,B=0,F=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),Q=()=>{ne(a.reason)},X=()=>{a?.removeEventListener("abort",Q)},ae=fe=>{o(fe),X()},ne=fe=>{C=!0,b=!0,l(fe),X()};a&&(a.aborted&&ne(a.reason),a.addEventListener("abort",Q,{once:!0}));let ce=async()=>{if(b)return;let fe=await F.next(),ue=B;if(B++,fe.done){if(E=!0,N===0&&!b){if(!n&&f.length>0){ne(new AggregateError(f));return}if(b=!0,I.size===0){ae(A);return}let de=[];for(let[be,Se]of A.entries())I.get(be)!==X7e&&de.push(Se);ae(de)}return}N++,(async()=>{try{let de=await fe.value;if(b)return;let be=await t(de,ue);be===X7e&&I.set(ue,be),A[ue]=be,N--,await ce()}catch(de){if(n)ne(de);else{f.push(de),N--;try{await ce()}catch(be){ne(be)}}}})()};(async()=>{for(let fe=0;fe=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);if(!(Number.isSafeInteger(n)&&n>=r||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`backpressure\` to be an integer from \`concurrency\` (${r}) and up or \`Infinity\`, got \`${n}\` (${typeof n})`);return{async*[Symbol.asyncIterator](){let a=e[Symbol.asyncIterator]===void 0?e[Symbol.iterator]():e[Symbol.asyncIterator](),o=[],l=0,A=!1,f=0;function I(){if(A||!(l{let{done:b,value:E}=await a.next();if(b)return l--,{done:!0};I();try{let N=await t(await E,f++);if(l--,N===X7e){let B=o.indexOf(C);B>0&&o.splice(B,1)}return I(),{done:!1,value:N}}catch(N){return l--,A=!0,{error:N}}})();o.push(C)}for(I();o.length>0;){let{error:C,done:b,value:E}=await o[0];if(o.shift(),C)throw C;if(b)return;I(),E!==X7e&&(yield E)}}}}var X7e,AZt=bc(()=>{X7e=Symbol("skip")});var eFe=H((Qig,JO)=>{"use strict";var yBl=wt("crypto"),{appendFile:bBl,mkdir:gjr,readFile:EBl,readdir:SBl,rm:Sms,writeFile:vBl}=wt("fs/promises"),{Minipass:BBl}=rF(),k6=wt("path"),wBl=Jte(),TBl=ejr(),RBl=qGe(),NBl=rjr(),DBl=tjr()["cache-version"].index,{moveFile:kBl}=uZt(),ljr=5;JO.exports.NotFoundError=class extends Error{constructor(t,r){super(`No cache entry for ${r} found in ${t}`),this.code="ENOENT",this.cache=t,this.key=r}};JO.exports.compact=xBl;async function xBl(e,t,r,n={}){let a=J7e(e,t),o=await dZt(a),l=[];for(let E=o.length-1;E>=0;--E){let N=o[E];if(N.integrity===null&&!n.validateEntry)break;(!n.validateEntry||n.validateEntry(N)===!0)&&(l.length===0||!l.find(B=>r(B,N)))&&l.unshift(N)}let A=` +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var cIs=H(aIs=>{"use strict";var _8r=ere().Buffer;aIs._dbcs=tre;var px=-1,oIs=-2,WH=-10,pL=-1e3,YGe=new Array(256),L7e=-1;for(QFt=0;QFt<256;QFt++)YGe[QFt]=px;var QFt;function tre(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=YGe.slice(0),this.decodeTableSeq=[];for(var n=0;npL)throw new Error("gb18030 decode tables conflict at byte 2");for(var I=this.decodeTables[pL-A[f]],C=129;C<=254;C++){if(I[C]===px)I[C]=pL-o;else{if(I[C]===pL-o)continue;if(I[C]>pL)throw new Error("gb18030 decode tables conflict at byte 3")}for(var b=this.decodeTables[pL-I[C]],E=48;E<=57;E++)b[E]===px&&(b[E]=oIs)}}}this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var N={};if(e.encodeSkipVals)for(var n=0;n0;e>>>=8)t.push(e&255);t.length==0&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var a=r[t[n]];if(a==px)r[t[n]]=pL-this.decodeTables.length,this.decodeTables.push(r=YGe.slice(0));else if(a<=pL)r=this.decodeTables[pL-a];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};tre.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t=t&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};tre.prototype._getEncodeBucket=function(e){var t=e>>8;return this.encodeTable[t]===void 0&&(this.encodeTable[t]=YGe.slice(0)),this.encodeTable[t]};tre.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=e&255;r[n]<=WH?this.encodeTableSeq[WH-r[n]][L7e]=t:r[n]==px&&(r[n]=t)};tre.prototype._setEncodeSequence=function(e,t){var r=e[0],n=this._getEncodeBucket(r),a=r&255,o;n[a]<=WH?o=this.encodeTableSeq[WH-n[a]]:(o={},n[a]!==px&&(o[L7e]=n[a]),n[a]=WH-this.encodeTableSeq.length,this.encodeTableSeq.push(o));for(var l=1;l=0)this._setEncodeChar(A,f),a=!0;else if(A<=pL){var I=pL-A;if(!o[I]){var C=f<<8>>>0;this._fillEncodeTable(I,C,r)?a=!0:o[I]=!0}}else A<=WH&&(this._setEncodeSequence(this.decodeTableSeq[WH-A],f),a=!0)}return a};function XFt(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}XFt.prototype.write=function(e){for(var t=_8r.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,a=-1,o=0,l=0;;){if(a===-1){if(o==e.length)break;var A=e.charCodeAt(o++)}else{var A=a;a=-1}if(55296<=A&&A<57344)if(A<56320)if(r===-1){r=A;continue}else r=A,A=px;else r!==-1?(A=65536+(r-55296)*1024+(A-56320),r=-1):A=px;else r!==-1&&(a=A,A=px,r=-1);var f=px;if(n!==void 0&&A!=px){var I=n[A];if(typeof I=="object"){n=I;continue}else typeof I=="number"?f=I:I==null&&(I=n[L7e],I!==void 0&&(f=I,a=A));n=void 0}else if(A>=0){var C=this.encodeTable[A>>8];if(C!==void 0&&(f=C[A&255]),f<=WH){n=this.encodeTableSeq[WH-f];continue}if(f==px&&this.gb18030){var b=b8r(this.gb18030.uChars,A);if(b!=-1){var f=this.gb18030.gbChars[b]+(A-this.gb18030.uChars[b]);t[l++]=129+Math.floor(f/12600),f=f%12600,t[l++]=48+Math.floor(f/1260),f=f%1260,t[l++]=129+Math.floor(f/10),f=f%10,t[l++]=48+f;continue}}}f===px&&(f=this.defaultCharSingleByte),f<256?t[l++]=f:f<65536?(t[l++]=f>>8,t[l++]=f&255):f<16777216?(t[l++]=f>>16,t[l++]=f>>8&255,t[l++]=f&255):(t[l++]=f>>>24,t[l++]=f>>>16&255,t[l++]=f>>>8&255,t[l++]=f&255)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,l)};XFt.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var e=_8r.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[L7e];r!==void 0&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}};XFt.prototype.findIdx=b8r;function y8r(e,t){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}y8r.prototype.write=function(e){for(var t=_8r.alloc(e.length*2),r=this.nodeIdx,n=this.prevBytes,a=this.prevBytes.length,o=-this.prevBytes.length,l,A=0,f=0;A=0?e[A]:n[A+a],l=this.decodeTables[r][I];if(!(l>=0))if(l===px)l=this.defaultCharUnicode.charCodeAt(0),A=o;else if(l===oIs){if(A>=3)var C=(e[A-3]-129)*12600+(e[A-2]-48)*1260+(e[A-1]-129)*10+(I-48);else var C=(n[A-3+a]-129)*12600+((A-2>=0?e[A-2]:n[A-2+a])-48)*1260+((A-1>=0?e[A-1]:n[A-1+a])-129)*10+(I-48);var b=b8r(this.gb18030.gbChars,C);l=this.gb18030.uChars[b]+C-this.gb18030.gbChars[b]}else if(l<=pL){r=pL-l;continue}else if(l<=WH){for(var E=this.decodeTableSeq[WH-l],N=0;N>8;l=E[E.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+l+" at "+r+"/"+I);if(l>=65536){l-=65536;var B=55296|l>>10;t[f++]=B&255,t[f++]=B>>8,l=56320|l&1023}t[f++]=l&255,t[f++]=l>>8,r=0,o=A+1}return this.nodeIdx=r,this.prevBytes=o>=0?Array.prototype.slice.call(e,o):n.slice(o+a).concat(Array.prototype.slice.call(e)),t.slice(0,f).toString("ucs2")};y8r.prototype.end=function(){for(var e="";this.prevBytes.length>0;){e+=this.defaultCharUnicode;var t=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.prevBytes=[],this.nodeIdx=0,e};function b8r(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r>1);e[a]<=t?r=a:n=a}return r}});var lIs=H((qng,Q2l)=>{Q2l.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var uIs=H(($ng,X2l)=>{X2l.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var JFt=H((eig,J2l)=>{J2l.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var E8r=H((tig,U2l)=>{U2l.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var gIs=H((rig,K2l)=>{K2l.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var AIs=H((nig,j2l)=>{j2l.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var S8r=H((iig,z2l)=>{z2l.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var dIs=H((sig,q2l)=>{q2l.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var fIs=H((oig,pIs)=>{"use strict";pIs.exports={shiftjis:{type:"_dbcs",table:function(){return lIs()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return uIs()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return JFt()}},gbk:{type:"_dbcs",table:function(){return JFt().concat(E8r())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return JFt().concat(E8r())},gb18030:function(){return gIs()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return AIs()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return S8r()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return S8r().concat(dIs())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var mIs=H((hIs,QGe)=>{"use strict";var IIs=[Qfs(),Ufs(),zfs(),$fs(),tIs(),nIs(),sIs(),cIs(),fIs()];for(UFt=0;UFt{"use strict";var CIs=ere().Buffer;_Is.exports=function(e){var t=e.Transform;function r(a,o){this.conv=a,o=o||{},o.decodeStrings=!1,t.call(this,o)}r.prototype=Object.create(t.prototype,{constructor:{value:r}}),r.prototype._transform=function(a,o,l){if(typeof a!="string")return l(new Error("Iconv encoding stream needs strings as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A),l()}catch(f){l(f)}},r.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o),a()}catch(l){a(l)}},r.prototype.collect=function(a){var o=[];return this.on("error",a),this.on("data",function(l){o.push(l)}),this.on("end",function(){a(null,CIs.concat(o))}),this};function n(a,o){this.conv=a,o=o||{},o.encoding=this.encoding="utf8",t.call(this,o)}return n.prototype=Object.create(t.prototype,{constructor:{value:n}}),n.prototype._transform=function(a,o,l){if(!CIs.isBuffer(a)&&!(a instanceof Uint8Array))return l(new Error("Iconv decoding stream needs buffers as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A,this.encoding),l()}catch(f){l(f)}},n.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o,this.encoding),a()}catch(l){a(l)}},n.prototype.collect=function(a){var o="";return this.on("error",a),this.on("data",function(l){o+=l}),this.on("end",function(){a(null,o)}),this},{IconvLiteEncoderStream:r,IconvLiteDecoderStream:n}}});var vIs=H((cig,SIs)=>{"use strict";var bIs=ere().Buffer,EIs=Hfs(),zI=SIs.exports;zI.encodings=null;zI.defaultCharUnicode="\uFFFD";zI.defaultCharSingleByte="?";zI.encode=function(t,r,n){t=""+(t||"");var a=zI.getEncoder(r,n),o=a.write(t),l=a.end();return l&&l.length>0?bIs.concat([o,l]):o};zI.decode=function(t,r,n){typeof t=="string"&&(zI.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),zI.skipDecodeWarning=!0),t=bIs.from(""+(t||""),"binary"));var a=zI.getDecoder(r,n),o=a.write(t),l=a.end();return l?o+l:o};zI.encodingExists=function(t){try{return zI.getCodec(t),!0}catch{return!1}};zI.toEncoding=zI.encode;zI.fromEncoding=zI.decode;zI._codecDataCache={};zI.getCodec=function(t){zI.encodings||(zI.encodings=mIs());for(var r=zI._canonicalizeEncoding(t),n={};;){var a=zI._codecDataCache[r];if(a)return a;var o=zI.encodings[r];switch(typeof o){case"string":r=o;break;case"object":for(var l in o)n[l]=o[l];n.encodingName||(n.encodingName=r),r=o.type;break;case"function":return n.encodingName||(n.encodingName=r),a=new o(n,zI),zI._codecDataCache[n.encodingName]=a,a;default:throw new Error("Encoding not recognized: '"+t+"' (searched as: '"+r+"')")}}};zI._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};zI.getEncoder=function(t,r){var n=zI.getCodec(t),a=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(a=new EIs.PrependBOM(a,r)),a};zI.getDecoder=function(t,r){var n=zI.getCodec(t),a=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(a=new EIs.StripBOM(a,r)),a};zI.enableStreamingAPI=function(t){if(!zI.supportsStreams){var r=yIs()(t);zI.IconvLiteEncoderStream=r.IconvLiteEncoderStream,zI.IconvLiteDecoderStream=r.IconvLiteDecoderStream,zI.encodeStream=function(a,o){return new zI.IconvLiteEncoderStream(zI.getEncoder(a,o),o)},zI.decodeStream=function(a,o){return new zI.IconvLiteDecoderStream(zI.getDecoder(a,o),o)},zI.supportsStreams=!0}};var jFt;try{jFt=wt("stream")}catch{}jFt&&jFt.Transform?zI.enableStreamingAPI(jFt):zI.encodeStream=zI.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});var TIs=H((lig,wIs)=>{"use strict";var zFt=vIs();wIs.exports.convert=$2l;function $2l(e,t,r){r=BIs(r||"UTF-8"),t=BIs(t||"UTF-8"),e=e||"";var n;if(r!=="UTF-8"&&typeof e=="string"&&(e=Buffer.from(e,"binary")),r===t)typeof e=="string"?n=Buffer.from(e):n=e;else try{n=eSl(e,t,r)}catch(a){console.error(a),n=e}return typeof n=="string"&&(n=Buffer.from(n,"utf-8")),n}function eSl(e,t,r){return t==="UTF-8"?zFt.decode(e,r):r==="UTF-8"?zFt.encode(e,t):zFt.encode(zFt.decode(e,r),t)}function BIs(e){return(e||"").toString().trim().replace(/^latin[\-_]?(\d+)$/i,"ISO-8859-$1").replace(/^win(?:dows)?[\-_]?(\d+)$/i,"WINDOWS-$1").replace(/^utf[\-_]?(\d+)$/i,"UTF-$1").replace(/^ks_c_5601\-1987$/i,"CP949").replace(/^us[\-_]?ascii$/i,"ASCII").toUpperCase()}});var $Ft=H((uig,DIs)=>{"use strict";var{Minipass:N6}=rF(),v8r=Lfs(),NIs=Pfs(),{BUFFER:tSl}=NIs,V7e=MKr(),B8r;try{B8r=TIs().convert}catch{}var rre=Symbol("Body internals"),S0e=Symbol("consumeBody"),qFt=class{constructor(t,r={}){let{size:n=0,timeout:a=0}=r,o=t==null?null:RIs(t)?Buffer.from(t.toString()):P7e(t)||Buffer.isBuffer(t)?t:Object.prototype.toString.call(t)==="[object ArrayBuffer]"?Buffer.from(t):ArrayBuffer.isView(t)?Buffer.from(t.buffer,t.byteOffset,t.byteLength):N6.isStream(t)?t:Buffer.from(String(t));this[rre]={body:o,disturbed:!1,error:null},this.size=n,this.timeout=a,N6.isStream(o)&&o.on("error",l=>{let A=l.name==="AbortError"?l:new V7e(`Invalid response while trying to fetch ${this.url}: ${l.message}`,"system",l);this[rre].error=A})}get body(){return this[rre].body}get bodyUsed(){return this[rre].disturbed}arrayBuffer(){return this[S0e]().then(t=>t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}blob(){let t=this.headers&&this.headers.get("content-type")||"";return this[S0e]().then(r=>Object.assign(new NIs([],{type:t.toLowerCase()}),{[tSl]:r}))}async json(){let t=await this[S0e]();try{return JSON.parse(t.toString())}catch(r){throw new V7e(`invalid json response body at ${this.url} reason: ${r.message}`,"invalid-json")}}text(){return this[S0e]().then(t=>t.toString())}buffer(){return this[S0e]()}textConverted(){return this[S0e]().then(t=>rSl(t,this.headers))}[S0e](){if(this[rre].disturbed)return Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[rre].disturbed=!0,this[rre].error)return Promise.reject(this[rre].error);if(this.body===null)return Promise.resolve(Buffer.alloc(0));if(Buffer.isBuffer(this.body))return Promise.resolve(this.body);let t=P7e(this.body)?this.body.stream():this.body;if(!N6.isStream(t))return Promise.resolve(Buffer.alloc(0));let r=this.size&&t instanceof v8r||!this.size&&t instanceof N6&&!(t instanceof v8r)?t:this.size?new v8r({size:this.size}):new N6,n=this.timeout&&r.writable?setTimeout(()=>{r.emit("error",new V7e(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`,"body-timeout"))},this.timeout):null;return n&&n.unref&&n.unref(),new Promise(a=>{r!==t&&(t.on("error",o=>r.emit("error",o)),t.pipe(r)),a()}).then(()=>r.concat()).then(a=>(clearTimeout(n),a)).catch(a=>{throw clearTimeout(n),a.name==="AbortError"||a.name==="FetchError"?a:a.name==="RangeError"?new V7e(`Could not create Buffer from response body for ${this.url}: ${a.message}`,"system",a):new V7e(`Invalid response body while trying to fetch ${this.url}: ${a.message}`,"system",a)})}static clone(t){if(t.bodyUsed)throw new Error("cannot clone body after it is used");let r=t.body;if(N6.isStream(r)&&typeof r.getBoundary!="function"){let n=new N6,a=new N6,o=new N6;return n.on("error",l=>{a.emit("error",l),o.emit("error",l)}),r.on("error",l=>n.emit("error",l)),n.pipe(a),n.pipe(o),r.pipe(n),t[rre].body=a,o}else return t.body}static extractContentType(t){return t==null?null:typeof t=="string"?"text/plain;charset=UTF-8":RIs(t)?"application/x-www-form-urlencoded;charset=UTF-8":P7e(t)?t.type||null:Buffer.isBuffer(t)||Object.prototype.toString.call(t)==="[object ArrayBuffer]"||ArrayBuffer.isView(t)?null:typeof t.getBoundary=="function"?`multipart/form-data;boundary=${t.getBoundary()}`:N6.isStream(t)?null:"text/plain;charset=UTF-8"}static getTotalBytes(t){let{body:r}=t;return r==null?0:P7e(r)?r.size:Buffer.isBuffer(r)?r.length:r&&typeof r.getLengthSync=="function"&&(r._lengthRetrievers&&r._lengthRetrievers.length===0||r.hasKnownLength&&r.hasKnownLength())?r.getLengthSync():null}static writeToStream(t,r){let{body:n}=r;return n==null?t.end():Buffer.isBuffer(n)||typeof n=="string"?t.end(n):(P7e(n)?n.stream():n).on("error",o=>t.emit("error",o)).pipe(t),t}};Object.defineProperties(qFt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});var RIs=e=>typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function",P7e=e=>typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),rSl=(e,t)=>{if(typeof B8r!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t&&t.get("content-type"),n="utf-8",a;r&&(a=/charset=([^;]*)/i.exec(r));let o=e.slice(0,1024).toString();return!a&&o&&(a=/{"use strict";var xIs=/[^^_`a-zA-Z\-0-9!#$%&'*+.|~]/,T8r=/[^\t\x20-\x7e\x80-\xff]/,W7e=e=>{if(e=`${e}`,xIs.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)},kIs=e=>{if(e=`${e}`,T8r.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)},XGe=(e,t)=>{t=t.toLowerCase();for(let r in e)if(r.toLowerCase()===t)return r},Aw=Symbol("map"),eZt=class e{constructor(t=void 0){if(this[Aw]=Object.create(null),t instanceof e){let r=t.raw(),n=Object.keys(r);for(let a of n)for(let o of r[a])this.append(a,o);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let a of t){if(typeof a!="object"||typeof a[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");let o=Array.from(a);if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");n.push(o)}for(let a of n)this.append(a[0],a[1])}else for(let n of Object.keys(t))this.append(n,t[n])}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,W7e(t);let r=XGe(this[Aw],t);return r===void 0?null:this[Aw][r].join(", ")}forEach(t,r=void 0){let n=R8r(this);for(let a=0;aObject.keys(e[Aw]).sort().map(t==="key"?r=>r.toLowerCase():t==="value"?r=>e[Aw][r].join(", "):r=>[r.toLowerCase(),e[Aw][r].join(", ")]),w8r=Symbol("internal"),v0e=class e{constructor(t,r){this[w8r]={target:t,kind:r,index:0}}get[Symbol.toStringTag](){return"HeadersIterator"}next(){if(!this||Object.getPrototypeOf(this)!==e.prototype)throw new TypeError("Value of `this` is not a HeadersIterator");let{target:t,kind:r,index:n}=this[w8r],a=R8r(t,r),o=a.length;return n>=o?{value:void 0,done:!0}:(this[w8r].index++,{value:a[n],done:!1})}};Object.setPrototypeOf(v0e.prototype,Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));GIs.exports=eZt});var VIs=H((Aig,LIs)=>{"use strict";var nSl=wt("http"),{STATUS_CODES:iSl}=nSl,FIs=tZt(),ZIs=$Ft(),{clone:sSl,extractContentType:oSl}=ZIs,nre=Symbol("Response internals"),rZt=class e extends ZIs{constructor(t=null,r={}){super(t,r);let n=r.status||200,a=new FIs(r.headers);if(t!=null&&!a.has("Content-Type")){let o=oSl(t);o&&a.append("Content-Type",o)}this[nre]={url:r.url,status:n,statusText:r.statusText||iSl[n],headers:a,counter:r.counter,trailer:Promise.resolve(r.trailer||new FIs)}}get trailer(){return this[nre].trailer}get url(){return this[nre].url||""}get status(){return this[nre].status}get ok(){return this[nre].status>=200&&this[nre].status<300}get redirected(){return this[nre].counter>0}get statusText(){return this[nre].statusText}get headers(){return this[nre].headers}clone(){return new e(sSl(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,trailer:this.trailer})}get[Symbol.toStringTag](){return"Response"}};LIs.exports=rZt;Object.defineProperties(rZt.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var PIs=H((dig,aSl)=>{aSl.exports={name:"minipass-fetch",version:"4.0.1",description:"An implementation of window.fetch in Node.js using Minipass streams",license:"MIT",main:"lib/index.js",scripts:{"test:tls-fixtures":"./test/fixtures/tls/setup.sh",test:"tap",snap:"tap",lint:"npm run eslint",postlint:"template-oss-check",lintfix:"npm run eslint -- --fix",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},tap:{"coverage-map":"map.js","check-coverage":!0,"nyc-arg":["--exclude","tap-snapshots/**"]},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3","@ungap/url-search-params":"^0.2.2","abort-controller":"^3.0.0","abortcontroller-polyfill":"~1.7.3",encoding:"^0.1.13","form-data":"^4.0.0",nock:"^13.2.4",parted:"^0.1.1","string-to-arraybuffer":"^1.0.2",tap:"^16.0.0"},dependencies:{minipass:"^7.0.3","minipass-sized":"^1.0.3",minizlib:"^3.0.1"},optionalDependencies:{encoding:"^0.1.13"},repository:{type:"git",url:"git+https://github.com/npm/minipass-fetch.git"},keywords:["fetch","minipass","node-fetch","window.fetch"],files:["bin/","lib/"],engines:{node:"^18.17.0 || >=20.5.0"},author:"GitHub Inc.",templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.3",publish:"true"}}});var MIs=H((pig,OIs)=>{"use strict";var{URL:N8r}=wt("url"),{Minipass:cSl}=rF(),D8r=tZt(),{exportNodeCompatibleHeaders:lSl}=D8r,WIs=$Ft(),{clone:uSl,extractContentType:gSl,getTotalBytes:ASl}=WIs,dSl=PIs().version,pSl=`minipass-fetch/${dSl} (+https://github.com/isaacs/minipass-fetch)`,eJ=Symbol("Request internals"),nZt=e=>typeof e=="object"&&typeof e[eJ]=="object",fSl=e=>{let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")},iZt=class e extends WIs{constructor(t,r={}){let n=nZt(t)?new N8r(t.url):t&&t.href?new N8r(t.href):new N8r(`${t}`);nZt(t)?r={...t[eJ],...r}:(!t||typeof t=="string")&&(t={});let a=(r.method||t.method||"GET").toUpperCase(),o=a==="GET"||a==="HEAD";if((r.body!==null&&r.body!==void 0||nZt(t)&&t.body!==null)&&o)throw new TypeError("Request with GET/HEAD method cannot have body");let l=r.body!==null&&r.body!==void 0?r.body:nZt(t)&&t.body!==null?uSl(t):null;super(l,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let A=new D8r(r.headers||t.headers||{});if(l!=null&&!A.has("Content-Type")){let De=gSl(l);De&&A.append("Content-Type",De)}let f="signal"in r?r.signal:null;if(f!=null&&!fSl(f))throw new TypeError("Expected signal must be an instanceof AbortSignal");let{ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0",secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se}=r;this[eJ]={method:a,redirect:r.redirect||t.redirect||"follow",headers:A,parsedURL:n,signal:f,ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe,secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[eJ].method}get url(){return this[eJ].parsedURL.toString()}get headers(){return this[eJ].headers}get redirect(){return this[eJ].redirect}get signal(){return this[eJ].signal}clone(){return new e(this)}get[Symbol.toStringTag](){return"Request"}static getNodeRequestOptions(t){let r=t[eJ].parsedURL,n=new D8r(t[eJ].headers);if(n.has("Accept")||n.set("Accept","*/*"),!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&cSl.isStream(t.body)&&typeof t.body.destroy!="function")throw new Error("Cancellation of streamed requests with AbortSignal is not supported");let a=(t.body===null||t.body===void 0)&&/^(POST|PUT)$/i.test(t.method)?"0":t.body!==null&&t.body!==void 0?ASl(t):null;a&&n.set("Content-Length",a+""),n.has("User-Agent")||n.set("User-Agent",pSl),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip,deflate");let o=typeof t.agent=="function"?t.agent(r):t.agent;!n.has("Connection")&&!o&&n.set("Connection","close");let{ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue}=t[eJ];return{...{auth:r.username||r.password?`${r.username}:${r.password}`:"",host:r.host,hostname:r.hostname,path:`${r.pathname}${r.search}`,port:r.port,protocol:r.protocol},method:t.method,headers:lSl(n),agent:o,ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue,timeout:t.timeout}}};OIs.exports=iZt;Object.defineProperties(iZt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}})});var YIs=H((fig,HIs)=>{"use strict";var k8r=class extends Error{constructor(t){super(t),this.code="FETCH_ABORTED",this.type="aborted",Error.captureStackTrace(this,this.constructor)}get name(){return"AbortError"}set name(t){}};HIs.exports=k8r});var H7e=H((Iig,JIs)=>{"use strict";var{URL:O7e}=wt("url"),ISl=wt("http"),hSl=wt("https"),JGe=Bfs(),{Minipass:QIs}=rF(),mSl=$Ft(),{writeToStream:CSl,getTotalBytes:_Sl}=mSl,B0e=VIs(),G8r=tZt(),{createHeadersLenient:XIs}=G8r,M7e=MIs(),{getNodeRequestOptions:ySl}=M7e,Pue=MKr(),x8r=YIs(),ire=async(e,t)=>{if(/^data:/.test(e)){let r=new M7e(e,t);return Promise.resolve().then(()=>new Promise((n,a)=>{let o,l;try{let{pathname:I,search:C}=new O7e(e),b=I.split(",");if(b.length<2)throw new Error("invalid data: URI");let E=b.shift(),N=/;base64$/.test(E);o=N?E.slice(0,-1*7):E;let B=decodeURIComponent(b.join(",")+C);l=N?Buffer.from(B,"base64"):Buffer.from(B)}catch(I){return a(new Pue(`[${r.method}] ${r.url} invalid URL, ${I.message}`,"system",I))}let{signal:A}=r;if(A&&A.aborted)return a(new x8r("The user aborted a request."));let f={"Content-Length":l.length};return o&&(f["Content-Type"]=o),n(new B0e(l,{headers:f}))}))}return new Promise((r,n)=>{let a=new M7e(e,t),o;try{o=ySl(a)}catch(B){return n(B)}let l=(o.protocol==="https:"?hSl:ISl).request,{signal:A}=a,f=null,I=()=>{let B=new x8r("The user aborted a request.");n(B),QIs.isStream(a.body)&&typeof a.body.destroy=="function"&&a.body.destroy(B),f&&f.body&&f.body.emit("error",B)};if(A&&A.aborted)return I();let C=()=>{I(),b()},b=()=>{E.abort(),A&&A.removeEventListener("abort",C),clearTimeout(N)},E=l(o);A&&A.addEventListener("abort",C);let N=null;a.timeout&&E.once("socket",()=>{N=setTimeout(()=>{n(new Pue(`network timeout at: ${a.url}`,"request-timeout")),b()},a.timeout)}),E.on("error",B=>{E.res&&E.res.emit("error",B),n(new Pue(`request to ${a.url} failed, reason: ${B.message}`,"system",B)),b()}),E.on("response",B=>{clearTimeout(N);let F=XIs(B.headers);if(ire.isRedirect(B.statusCode)){let fe=F.get("Location"),ue=null;try{ue=fe===null?null:new O7e(fe,a.url).toString()}catch{if(a.redirect!=="manual"){n(new Pue(`uri requested responds with an invalid redirect URL: ${fe}`,"invalid-redirect")),b();return}}if(a.redirect==="error"){n(new Pue(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),b();return}else if(a.redirect==="manual"){if(ue!==null)try{F.set("Location",ue)}catch(de){n(de)}}else if(a.redirect==="follow"&&ue!==null){if(a.counter>=a.follow){n(new Pue(`maximum redirect reached at: ${a.url}`,"max-redirect")),b();return}if(B.statusCode!==303&&a.body&&_Sl(a)===null){n(new Pue("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}a.headers.set("host",new O7e(ue).host);let de={headers:new G8r(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:a.body,signal:a.signal,timeout:a.timeout},be=new O7e(a.url),Se=new O7e(ue);be.hostname!==Se.hostname&&(de.headers.delete("authorization"),de.headers.delete("cookie")),(B.statusCode===303||(B.statusCode===301||B.statusCode===302)&&a.method==="POST")&&(de.method="GET",de.body=void 0,de.headers.delete("content-length")),r(ire(new M7e(ue,de))),b();return}}B.once("end",()=>A&&A.removeEventListener("abort",C));let Q=new QIs;Q.on("error",b),B.on("error",fe=>Q.emit("error",fe)),B.on("data",fe=>Q.write(fe)),B.on("end",()=>Q.end());let X={url:a.url,status:B.statusCode,statusText:B.statusMessage,headers:F,size:a.size,timeout:a.timeout,counter:a.counter,trailer:new Promise(fe=>B.on("end",()=>fe(XIs(B.trailers))))},ae=F.get("Content-Encoding");if(!a.compress||a.method==="HEAD"||ae===null||B.statusCode===204||B.statusCode===304){f=new B0e(Q,X),r(f);return}let ne={flush:JGe.constants.Z_SYNC_FLUSH,finishFlush:JGe.constants.Z_SYNC_FLUSH};if(ae==="gzip"||ae==="x-gzip"){let fe=new JGe.Gunzip(ne);f=new B0e(Q.on("error",ue=>fe.emit("error",ue)).pipe(fe),X),r(f);return}if(ae==="deflate"||ae==="x-deflate"){B.once("data",fe=>{let ue=(fe[0]&15)===8?new JGe.Inflate:new JGe.InflateRaw;Q.on("error",de=>ue.emit("error",de)).pipe(ue),f=new B0e(ue,X),r(f)});return}if(ae==="br"){try{var ce=new JGe.BrotliDecompress}catch(fe){n(fe),b();return}Q.on("error",fe=>ce.emit("error",fe)).pipe(ce),f=new B0e(ce,X),r(f);return}f=new B0e(Q,X),r(f)}),CSl(E,a)})};JIs.exports=ire;ire.isRedirect=e=>e===301||e===302||e===303||e===307||e===308;ire.Headers=G8r;ire.Request=M7e;ire.Response=B0e;ire.FetchError=Pue;ire.AbortError=x8r});var KIs=H((hig,UIs)=>{var bSl=wt("dns"),ESl=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"],SSl=e=>{let{strictSSL:t,...r}={...e};if(r.method=r.method?r.method.toUpperCase():"GET",t==null?r.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0":r.rejectUnauthorized=t!==!1,!r.retry)r.retry={retries:0};else if(typeof r.retry=="string"){let n=parseInt(r.retry,10);isFinite(n)?r.retry={retries:n}:r.retry={retries:0}}else typeof r.retry=="number"?r.retry={retries:r.retry}:r.retry={retries:0,...r.retry};return r.dns={ttl:5*60*1e3,lookup:bSl.lookup,...r.dns},r.cache=r.cache||"default",r.cache==="default"&&Object.keys(r.headers||{}).some(a=>ESl.includes(a.toLowerCase()))&&(r.cache="no-store"),r.cacheAdditionalHeaders=r.cacheAdditionalHeaders||[],r.cacheManager&&!r.cachePath&&(r.cachePath=r.cacheManager),r};UIs.exports=SSl});var $Is=H((mig,F8r)=>{"use strict";F8r.exports=qIs;F8r.exports.preferredCharsets=qIs;var vSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function BSl(e){for(var t=e.split(","),r=0,n=0;r0}});var nhs=H((Cig,Z8r)=>{"use strict";Z8r.exports=rhs;Z8r.exports.preferredEncodings=rhs;var DSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function kSl(e){for(var t=e.split(","),r=!1,n=1,a=0,o=0;a0}});var chs=H((_ig,L8r)=>{"use strict";L8r.exports=ahs;L8r.exports.preferredLanguages=ahs;var LSl=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function VSl(e){for(var t=e.split(","),r=0,n=0;r0}});var phs=H((yig,V8r)=>{"use strict";V8r.exports=Ahs;V8r.exports.preferredMediaTypes=Ahs;var MSl=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function HSl(e){for(var t=USl(e),r=0,n=0;r0)if(o.every(function(l){return t.params[l]=="*"||(t.params[l]||"").toLowerCase()==(n.params[l]||"").toLowerCase()}))a|=1;else return null;return{i:r,o:t.i,q:t.q,s:a}}function Ahs(e,t){var r=HSl(e===void 0?"*/*":e||"");if(!t)return r.filter(uhs).sort(lhs).map(XSl);var n=t.map(function(o,l){return YSl(o,r,l)});return n.filter(uhs).sort(lhs).map(function(o){return t[n.indexOf(o)]})}function lhs(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function XSl(e){return e.type+"/"+e.subtype}function uhs(e){return e.q>0}function dhs(e){for(var t=0,r=0;(r=e.indexOf('"',r))!==-1;)t++,r++;return t}function JSl(e){var t=e.indexOf("="),r,n;return t===-1?r=e:(r=e.slice(0,t),n=e.slice(t+1)),[r,n]}function USl(e){for(var t=e.split(","),r=1,n=0;r{"use strict";var jSl=$Is(),zSl=nhs(),qSl=chs(),$Sl=phs();P8r.exports=db;P8r.exports.Negotiator=db;function db(e){if(!(this instanceof db))return new db(e);this.request=e}db.prototype.charset=function(t){var r=this.charsets(t);return r&&r[0]};db.prototype.charsets=function(t){return jSl(this.request.headers["accept-charset"],t)};db.prototype.encoding=function(t,r){var n=this.encodings(t,r);return n&&n[0]};db.prototype.encodings=function(t,r){var n=r||{};return zSl(this.request.headers["accept-encoding"],t,n.preferred)};db.prototype.language=function(t){var r=this.languages(t);return r&&r[0]};db.prototype.languages=function(t){return qSl(this.request.headers["accept-language"],t)};db.prototype.mediaType=function(t){var r=this.mediaTypes(t);return r&&r[0]};db.prototype.mediaTypes=function(t){return $Sl(this.request.headers.accept,t)};db.prototype.preferredCharset=db.prototype.charset;db.prototype.preferredCharsets=db.prototype.charsets;db.prototype.preferredEncoding=db.prototype.encoding;db.prototype.preferredEncodings=db.prototype.encodings;db.prototype.preferredLanguage=db.prototype.language;db.prototype.preferredLanguages=db.prototype.languages;db.prototype.preferredMediaType=db.prototype.mediaType;db.prototype.preferredMediaTypes=db.prototype.mediaTypes});var O8r=H((Eig,_hs)=>{var Ihs=jur(),hhs=fhs(),evl=Jte(),mhs={shared:!1,ignoreCargoCult:!0},tvl={status:200,headers:{}},UGe=e=>{let t={method:e.method,url:e.url,headers:{},compress:e.compress};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},Chs=e=>{let t={status:e.status,headers:{}};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},W8r=class{constructor({entry:t,request:r,response:n,options:a}){this.entry=t,this.request=UGe(r),this.response=Chs(n),this.options=a,this.policy=new Ihs(this.request,this.response,mhs),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(t,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(t.method)?!1:new Ihs(UGe(t),tvl,mhs).storable()}satisfies(t){let r=UGe(t);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let n=new hhs(this.request),a=new hhs(r);return JSON.stringify(n.mediaTypes())!==JSON.stringify(a.mediaTypes())||JSON.stringify(n.languages())!==JSON.stringify(a.languages())||JSON.stringify(n.encodings())!==JSON.stringify(a.encodings())?!1:this.options.integrity?evl.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(t){let r=UGe(t);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(t){let r=UGe(t);return this.policy.revalidationHeaders(r)}revalidated(t,r){let n=UGe(t),a=Chs(r);return!this.policy.revalidatedPolicy(n,a).modified}};_hs.exports=W8r});var bhs=H((Sig,yhs)=>{var M8r=class extends Error{constructor(t){super(`request to ${t} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};yhs.exports={NotCachedError:M8r}});var sZt=H((vig,Bhs)=>{var rvl=FFt(),Ehs=Symbol("_flush"),Shs=Symbol("_flushed"),vhs=Symbol("_flushing"),H8r=class extends rvl{constructor(t={}){if(typeof t=="function"&&(t={flush:t}),super(t),typeof t.flush!="function"&&typeof this.flush!="function")throw new TypeError("must provide flush function in options");this[Ehs]=t.flush||this.flush}emit(t,...r){if(t!=="end"&&t!=="finish"||this[Shs])return super.emit(t,...r);if(this[vhs])return;this[vhs]=!0;let n=o=>{this[Shs]=!0,o?super.emit("error",o):super.emit("end")},a=this[Ehs](n);a&&a.then&&a.then(()=>n(),o=>n(o))}};Bhs.exports=H8r});var J8r=H((Big,X8r)=>{var{Minipass:whs}=rF(),KGe=Symbol("_data"),jGe=Symbol("_length"),Y8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,n&&n(),!0}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return super.write(a),super.end(n)}};X8r.exports=Y8r;var Q8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,super.write(t,r,n)}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return this.emit("collect",a),super.end(n)}};X8r.exports.PassThrough=Q8r});var zGe=H((wig,Dhs)=>{var nvl=FFt(),ivl=wt("events"),svl=e=>e&&e instanceof ivl&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"),w0e=Symbol("_head"),XO=Symbol("_tail"),U8r=Symbol("_linkStreams"),K8r=Symbol("_setHead"),j8r=Symbol("_setTail"),Ths=Symbol("_onError"),Rhs=Symbol("_onData"),z8r=Symbol("_onEnd"),Nhs=Symbol("_onDrain"),oZt=Symbol("_streams"),q8r=class extends nvl{constructor(t,...r){svl(t)&&(r.unshift(t),t={}),super(t),this[oZt]=[],r.length&&this.push(...r)}[U8r](t){return t.reduce((r,n)=>(r.on("error",a=>n.emit("error",a)),r.pipe(n),n))}push(...t){this[oZt].push(...t),this[XO]&&t.unshift(this[XO]);let r=this[U8r](t);this[j8r](r),this[w0e]||this[K8r](t[0])}unshift(...t){this[oZt].unshift(...t),this[w0e]&&t.push(this[w0e]);let r=this[U8r](t);this[K8r](t[0]),this[XO]||this[j8r](r)}destroy(t){return this[oZt].forEach(r=>typeof r.destroy=="function"&&r.destroy()),super.destroy(t)}[j8r](t){this[XO]=t,t.on("error",r=>this[Ths](t,r)),t.on("data",r=>this[Rhs](t,r)),t.on("end",()=>this[z8r](t)),t.on("finish",()=>this[z8r](t))}[Ths](t,r){t===this[XO]&&this.emit("error",r)}[Rhs](t,r){t===this[XO]&&super.write(r)}[z8r](t){t===this[XO]&&super.end()}pause(){return super.pause(),this[XO]&&this[XO].pause&&this[XO].pause()}emit(t,...r){return t==="resume"&&this[XO]&&this[XO].resume&&this[XO].resume(),super.emit(t,...r)}[K8r](t){this[w0e]=t,t.on("drain",()=>this[Nhs](t))}[Nhs](t){t===this[w0e]&&this.emit("drain")}write(t,r,n){return this[w0e].write(t,r,n)&&(this.flowing||this.buffer.length===0)}end(t,r,n){return this[w0e].end(t,r,n),this}};Dhs.exports=q8r});var khs=H((Tig,$8r)=>{(function(){var e;function t(r,n){var a=this instanceof t?this:e;if(a.reset(n),typeof r=="string"&&r.length>0&&a.hash(r),a!==this)return a}t.prototype.hash=function(r){var n,a,o,l,A;switch(A=r.length,this.len+=A,a=this.k1,o=0,this.rem){case 0:a^=A>o?r.charCodeAt(o++)&65535:0;case 1:a^=A>o?(r.charCodeAt(o++)&65535)<<8:0;case 2:a^=A>o?(r.charCodeAt(o++)&65535)<<16:0;case 3:a^=A>o?(r.charCodeAt(o)&255)<<24:0,a^=A>o?(r.charCodeAt(o++)&65280)>>8:0}if(this.rem=A+this.rem&3,A-=this.rem,A>0){for(n=this.h1;a=a*11601+(a&65535)*3432906752&4294967295,a=a<<15|a>>>17,a=a*13715+(a&65535)*461832192&4294967295,n^=a,n=n<<13|n>>>19,n=n*5+3864292196&4294967295,!(o>=A);)a=r.charCodeAt(o++)&65535^(r.charCodeAt(o++)&65535)<<8^(r.charCodeAt(o++)&65535)<<16,l=r.charCodeAt(o++),a^=(l&255)<<24^(l&65280)>>8;switch(a=0,this.rem){case 3:a^=(r.charCodeAt(o+2)&65535)<<16;case 2:a^=(r.charCodeAt(o+1)&65535)<<8;case 1:a^=r.charCodeAt(o)&65535}this.h1=n}return this.k1=a,this},t.prototype.result=function(){var r,n;return r=this.k1,n=this.h1,r>0&&(r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,n^=r),n^=this.len,n^=n>>>16,n=n*51819+(n&65535)*2246770688&4294967295,n^=n>>>13,n=n*44597+(n&65535)*3266445312&4294967295,n^=n>>>16,n>>>0},t.prototype.reset=function(r){return this.h1=typeof r=="number"?r:0,this.rem=this.k1=this.len=0,this},e=new t,typeof $8r<"u"?$8r.exports=t:this.MurmurHash3=t})()});var Ghs=H((Rig,xhs)=>{"use strict";var ovl=khs();xhs.exports=function(e){if(e){var t=new ovl(e);return("00000000"+t.result().toString(16)).slice(-8)}else return(Math.random().toString(16)+"0000000").slice(2,10)}});var ejr=H((Nig,Fhs)=>{var avl=wt("path"),cvl=Ghs();Fhs.exports=function(e,t,r){return avl.join(e,(t?t+"-":"")+cvl(r))}});var tjr=H((Dig,lvl)=>{lvl.exports={name:"cacache",version:"19.0.1","cache-version":{content:"2",index:"5"},description:"Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",snap:"tap",coverage:"tap","test-docker":'docker run -it --rm --name pacotest -v "$PWD":/tmp -w /tmp node:latest npm test',lint:"npm run eslint",npmclilint:"npmcli-lint",lintfix:"npm run eslint -- --fix",postsnap:"npm run lintfix --",postlint:"template-oss-check",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},repository:{type:"git",url:"git+https://github.com/npm/cacache.git"},keywords:["cache","caching","content-addressable","sri","sri hash","subresource integrity","cache","storage","store","file store","filesystem","disk cache","disk storage"],license:"ISC",dependencies:{"@npmcli/fs":"^4.0.0","fs-minipass":"^3.0.0",glob:"^10.2.2","lru-cache":"^10.0.1",minipass:"^7.0.3","minipass-collect":"^2.0.1","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","p-map":"^7.0.2",ssri:"^12.0.0",tar:"^7.4.3","unique-filename":"^4.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",windowsCI:!1,version:"4.23.3",publish:"true"},author:"GitHub Inc.",tap:{"nyc-arg":["--exclude","tap-snapshots/**"]}}});var rjr=H((kig,Zhs)=>{"use strict";Zhs.exports=uvl;function uvl(e){return[e.slice(0,2),e.slice(2,4),e.slice(4)]}});var qGe=H((xig,njr)=>{"use strict";var gvl=tjr()["cache-version"].content,Avl=rjr(),Lhs=wt("path"),dvl=Jte();njr.exports=pvl;function pvl(e,t){let r=dvl.parse(t,{single:!0});return Lhs.join(Vhs(e),r.algorithm,...Avl(r.hexDigest()))}njr.exports.contentDir=Vhs;function Vhs(e){return Lhs.join(e,`content-v${gvl}`)}});var ijr=H((Gig,Phs)=>{var fvl=(e,{copy:t,wrap:r})=>{let n={};if(e&&typeof e=="object")for(let a of t)e[a]!==void 0&&(n[a]=e[a]);else n[r]=e;return n};Phs.exports=fvl});var Ohs=H((Fig,Whs)=>{var Ivl=UC(),hvl=e=>Ivl.satisfies(process.version,e,{includePrerelease:!0});Whs.exports={satisfies:hvl}});var Mhs=H((Vig,ojr)=>{"use strict";var{inspect:mvl}=wt("util"),sjr=class{constructor(t,r,n){let a=`${r}: ${n.syscall} returned ${n.code} (${n.message})`;n.path!==void 0&&(a+=` ${n.path}`),n.dest!==void 0&&(a+=` => ${n.dest}`),this.code=t,Object.defineProperties(this,{name:{value:"SystemError",enumerable:!1,writable:!0,configurable:!0},message:{value:a,enumerable:!1,writable:!0,configurable:!0},info:{value:n,enumerable:!0,configurable:!0,writable:!1},errno:{get(){return n.errno},set(o){n.errno=o},enumerable:!0,configurable:!0},syscall:{get(){return n.syscall},set(o){n.syscall=o},enumerable:!0,configurable:!0}}),n.path!==void 0&&Object.defineProperty(this,"path",{get(){return n.path},set(o){n.path=o},enumerable:!0,configurable:!0}),n.dest!==void 0&&Object.defineProperty(this,"dest",{get(){return n.dest},set(o){n.dest=o},enumerable:!0,configurable:!0})}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for("nodejs.util.inspect.custom")](t,r){return mvl(this,{...r,getters:!0,customInspect:!1})}};function sre(e,t){ojr.exports[e]=class extends sjr{constructor(n){super(e,t,n)}}}sre("ERR_FS_CP_DIR_TO_NON_DIR","Cannot overwrite directory with non-directory");sre("ERR_FS_CP_EEXIST","Target already exists");sre("ERR_FS_CP_EINVAL","Invalid src or dest");sre("ERR_FS_CP_FIFO_PIPE","Cannot copy a FIFO pipe");sre("ERR_FS_CP_NON_DIR_TO_DIR","Cannot overwrite non-directory with directory");sre("ERR_FS_CP_SOCKET","Cannot copy a socket file");sre("ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY","Cannot overwrite symlink in subdirectory of self");sre("ERR_FS_CP_UNKNOWN","Cannot copy an unknown file type");sre("ERR_FS_EISDIR","Path is a directory");ojr.exports.ERR_INVALID_ARG_TYPE=class extends Error{constructor(t,r,n){super(),this.code="ERR_INVALID_ARG_TYPE",this.message=`The ${t} argument must be ${r}. Received ${typeof n}`}}});var ams=H((Pig,oms)=>{"use strict";var{ERR_FS_CP_DIR_TO_NON_DIR:Cvl,ERR_FS_CP_EEXIST:_vl,ERR_FS_CP_EINVAL:aZt,ERR_FS_CP_FIFO_PIPE:yvl,ERR_FS_CP_NON_DIR_TO_DIR:bvl,ERR_FS_CP_SOCKET:Evl,ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY:Svl,ERR_FS_CP_UNKNOWN:vvl,ERR_FS_EISDIR:Bvl,ERR_INVALID_ARG_TYPE:wvl}=Mhs(),{constants:{errno:{EEXIST:Tvl,EISDIR:Rvl,EINVAL:ore,ENOTDIR:Nvl}}}=wt("os"),{chmod:Dvl,copyFile:kvl,lstat:zhs,mkdir:qhs,readdir:xvl,readlink:Hhs,stat:$Ge,symlink:ajr,unlink:$hs,utimes:Gvl}=wt("fs/promises"),{dirname:Y7e,isAbsolute:Yhs,join:Qhs,parse:Fvl,resolve:Q7e,sep:Zvl,toNamespacedPath:Xhs}=wt("path"),{fileURLToPath:Lvl}=wt("url"),Vvl={dereference:!1,errorOnExist:!1,filter:void 0,force:!0,preserveTimestamps:!1,recursive:!1};async function Pvl(e,t,r){if(r!=null&&typeof r!="object")throw new wvl("options",["Object"],r);return Wvl(Xhs(Jhs(e)),Xhs(Jhs(t)),{...Vvl,...r})}function Jhs(e){return e!=null&&e.href&&e.origin?Lvl(e):e}async function Wvl(e,t,r){r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended","TimestampPrecisionWarning");let n=await ems(e,t,r),{srcStat:a,destStat:o}=n;return await rms(e,a,t),r.filter?nms(Uhs,o,e,t,r):Uhs(o,e,t,r)}async function ems(e,t,r){let{0:n,1:a}=await Ovl(e,t,r);if(a){if(tms(n,a))throw new aZt({message:"src and dest cannot be the same",path:t,syscall:"cp",errno:ore});if(n.isDirectory()&&!a.isDirectory())throw new Cvl({message:`cannot overwrite directory ${e} with non-directory ${t}`,path:t,syscall:"cp",errno:Rvl});if(!n.isDirectory()&&a.isDirectory())throw new bvl({message:`cannot overwrite non-directory ${e} with directory ${t}`,path:t,syscall:"cp",errno:Nvl})}if(n.isDirectory()&&cjr(e,t))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${t}`,path:t,syscall:"cp",errno:ore});return{srcStat:n,destStat:a}}function tms(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Ovl(e,t,r){let n=r.dereference?a=>$Ge(a,{bigint:!0}):a=>zhs(a,{bigint:!0});return Promise.all([n(e),n(t).catch(a=>{if(a.code==="ENOENT")return null;throw a})])}async function Uhs(e,t,r,n){let a=Y7e(r);return await Mvl(a)||await qhs(a,{recursive:!0}),cZt(e,t,r,n)}function Mvl(e){return $Ge(e).then(()=>!0,t=>t.code==="ENOENT"?!1:Promise.reject(t))}async function rms(e,t,r){let n=Q7e(Y7e(e)),a=Q7e(Y7e(r));if(a===n||a===Fvl(a).root)return;let o;try{o=await $Ge(a,{bigint:!0})}catch(l){if(l.code==="ENOENT")return;throw l}if(tms(t,o))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${r}`,path:r,syscall:"cp",errno:ore});return rms(e,t,a)}var Khs=e=>Q7e(e).split(Zvl).filter(Boolean);function cjr(e,t){let r=Khs(e),n=Khs(t);return r.every((a,o)=>n[o]===a)}async function nms(e,t,r,n,a,o){if(await a.filter(r,n))return e(t,r,n,a,o)}function Hvl(e,t,r,n){return n.filter?nms(cZt,e,t,r,n):cZt(e,t,r,n)}async function cZt(e,t,r,n){let o=await(n.dereference?$Ge:zhs)(t);if(o.isDirectory()&&n.recursive)return jvl(o,e,t,r,n);if(o.isDirectory())throw new Bvl({message:`${t} is a directory (not copied)`,path:t,syscall:"cp",errno:ore});if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Yvl(o,e,t,r,n);if(o.isSymbolicLink())return qvl(e,t,r);throw o.isSocket()?new Evl({message:`cannot copy a socket file: ${r}`,path:r,syscall:"cp",errno:ore}):o.isFIFO()?new yvl({message:`cannot copy a FIFO pipe: ${r}`,path:r,syscall:"cp",errno:ore}):new vvl({message:`cannot copy an unknown file type: ${r}`,path:r,syscall:"cp",errno:ore})}function Yvl(e,t,r,n,a){return t?Qvl(e,r,n,a):ims(e,r,n,a)}async function Qvl(e,t,r,n){if(n.force)return await $hs(r),ims(e,t,r,n);if(n.errorOnExist)throw new _vl({message:`${r} already exists`,path:r,syscall:"cp",errno:Tvl})}async function ims(e,t,r,n){return await kvl(t,r),n.preserveTimestamps?Xvl(e.mode,t,r):lZt(r,e.mode)}async function Xvl(e,t,r){return Jvl(e)&&await Uvl(r,e),jhs(e,t,r)}function Jvl(e){return(e&128)===0}function Uvl(e,t){return lZt(e,t|128)}async function jhs(e,t,r){return await Kvl(t,r),lZt(r,e)}function lZt(e,t){return Dvl(e,t)}async function Kvl(e,t){let r=await $Ge(e);return Gvl(t,r.atime,r.mtime)}function jvl(e,t,r,n,a){return t?sms(r,n,a):zvl(e.mode,r,n,a)}async function zvl(e,t,r,n){return await qhs(r),await sms(t,r,n),lZt(r,e)}async function sms(e,t,r){let n=await xvl(e);for(let a=0;a{var eBl=wt("fs/promises"),tBl=ijr(),rBl=Ohs(),nBl=ams(),iBl=rBl.satisfies(">=16.7.0"),sBl=async(e,t,r)=>{let n=tBl(r,{copy:["dereference","errorOnExist","filter","force","preserveTimestamps","recursive"]});return iBl?eBl.cp(e,t,n):nBl(e,t,n)};cms.exports=sBl});var gms=H((Oig,ums)=>{var{join:oBl,sep:aBl}=wt("path"),cBl=ijr(),{mkdir:lBl,mkdtemp:uBl,rm:gBl}=wt("fs/promises"),ABl=async(e,t,r)=>{let n=cBl(r,{copy:["tmpPrefix"]});await lBl(e,{recursive:!0});let a=await uBl(oBl(`${e}${aBl}`,n.tmpPrefix||"")),o,l;try{l=await t(a)}catch(A){o=A}try{await gBl(a,{force:!0,recursive:!0})}catch{}if(o)throw o;return l};ums.exports=ABl});var fms=H((Mig,pms)=>{var{readdir:Ams}=wt("fs/promises"),{join:dms}=wt("path"),dBl=async e=>{let t=[];for(let r of await Ams(e))if(r.startsWith("@"))for(let n of await Ams(dms(e,r)))t.push(dms(r,n));else t.push(r);return t};pms.exports=dBl});var yms=H((Hig,_ms)=>{var{dirname:Ims,join:hms,resolve:mms,relative:pBl,isAbsolute:fBl}=wt("path"),D6=wt("fs/promises"),IBl=async e=>{try{return await D6.access(e),!0}catch(t){return t.code!=="ENOENT"}},Cms=async(e,t,r={},n=!0,a=[])=>{if(!e||!t)throw new TypeError("`source` and `destination` file required");if(r={overwrite:!0,...r},!r.overwrite&&await IBl(t))throw new Error(`The destination file exists: ${t}`);await D6.mkdir(Ims(t),{recursive:!0});try{await D6.rename(e,t)}catch(o){if(o.code==="EXDEV"||o.code==="EPERM"){let l=await D6.lstat(e);if(l.isDirectory()){let A=await D6.readdir(e);await Promise.all(A.map(f=>Cms(hms(e,f),hms(t,f),r,!1,a)))}else l.isSymbolicLink()?a.push({source:e,destination:t}):await D6.copyFile(e,t)}else throw o}n&&(await Promise.all(a.map(async({source:o,destination:l})=>{let A=await D6.readlink(o);fBl(A)&&(A=mms(l,pBl(o,A)));let f="file";try{f=await D6.stat(mms(Ims(o),A)),f.isDirectory()&&(f="junction")}catch{}await D6.symlink(A,l,f)})),await D6.rm(e,{recursive:!0,force:!0}))};_ms.exports=Cms});var uZt=H((Yig,bms)=>{"use strict";var hBl=lms(),mBl=gms(),CBl=fms(),_Bl=yms();bms.exports={cp:hBl,withTempDir:mBl,readdirScoped:CBl,moveFile:_Bl}});var gZt={};sI(gZt,{default:()=>Ems,pMapIterable:()=>yBl,pMapSkip:()=>X7e});async function Ems(e,t,{concurrency:r=Number.POSITIVE_INFINITY,stopOnError:n=!0,signal:a}={}){return new Promise((o,l)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(r)&&r>=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);let A=[],f=[],I=new Map,C=!1,b=!1,E=!1,N=0,B=0,F=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),Q=()=>{ne(a.reason)},X=()=>{a?.removeEventListener("abort",Q)},ae=fe=>{o(fe),X()},ne=fe=>{C=!0,b=!0,l(fe),X()};a&&(a.aborted&&ne(a.reason),a.addEventListener("abort",Q,{once:!0}));let ce=async()=>{if(b)return;let fe=await F.next(),ue=B;if(B++,fe.done){if(E=!0,N===0&&!b){if(!n&&f.length>0){ne(new AggregateError(f));return}if(b=!0,I.size===0){ae(A);return}let de=[];for(let[be,Se]of A.entries())I.get(be)!==X7e&&de.push(Se);ae(de)}return}N++,(async()=>{try{let de=await fe.value;if(b)return;let be=await t(de,ue);be===X7e&&I.set(ue,be),A[ue]=be,N--,await ce()}catch(de){if(n)ne(de);else{f.push(de),N--;try{await ce()}catch(be){ne(be)}}}})()};(async()=>{for(let fe=0;fe=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);if(!(Number.isSafeInteger(n)&&n>=r||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`backpressure\` to be an integer from \`concurrency\` (${r}) and up or \`Infinity\`, got \`${n}\` (${typeof n})`);return{async*[Symbol.asyncIterator](){let a=e[Symbol.asyncIterator]===void 0?e[Symbol.iterator]():e[Symbol.asyncIterator](),o=[],l=0,A=!1,f=0;function I(){if(A||!(l{let{done:b,value:E}=await a.next();if(b)return l--,{done:!0};I();try{let N=await t(await E,f++);if(l--,N===X7e){let B=o.indexOf(C);B>0&&o.splice(B,1)}return I(),{done:!1,value:N}}catch(N){return l--,A=!0,{error:N}}})();o.push(C)}for(I();o.length>0;){let{error:C,done:b,value:E}=await o[0];if(o.shift(),C)throw C;if(b)return;I(),E!==X7e&&(yield E)}}}}var X7e,AZt=bc(()=>{X7e=Symbol("skip")});var eFe=H((Xig,JO)=>{"use strict";var bBl=wt("crypto"),{appendFile:EBl,mkdir:gjr,readFile:SBl,readdir:vBl,rm:Sms,writeFile:BBl}=wt("fs/promises"),{Minipass:wBl}=rF(),k6=wt("path"),TBl=Jte(),RBl=ejr(),NBl=qGe(),DBl=rjr(),kBl=tjr()["cache-version"].index,{moveFile:xBl}=uZt(),ljr=5;JO.exports.NotFoundError=class extends Error{constructor(t,r){super(`No cache entry for ${r} found in ${t}`),this.code="ENOENT",this.cache=t,this.key=r}};JO.exports.compact=GBl;async function GBl(e,t,r,n={}){let a=J7e(e,t),o=await dZt(a),l=[];for(let E=o.length-1;E>=0;--E){let N=o[E];if(N.integrity===null&&!n.validateEntry)break;(!n.validateEntry||n.validateEntry(N)===!0)&&(l.length===0||!l.find(B=>r(B,N)))&&l.unshift(N)}let A=` `+l.map(E=>{let N=JSON.stringify(E);return`${pZt(N)} ${N}`}).join(` -`),f=async()=>{let E=TBl(k6.join(e,"tmp"),n.tmpPrefix);return await gjr(k6.dirname(E),{recursive:!0}),{target:E,moved:!1}},I=async E=>{if(!E.moved)return Sms(E.target,{recursive:!0,force:!0})},C=async E=>{await vBl(E.target,A,{flag:"wx"}),await gjr(k6.dirname(a),{recursive:!0}),await kBl(E.target,a),E.moved=!0},b=await f();try{await C(b)}finally{await I(b)}return l.reverse().map(E=>fZt(e,E,!0))}JO.exports.insert=vms;async function vms(e,t,r,n={}){let{metadata:a,size:o,time:l}=n,A=J7e(e,t),f={key:t,integrity:r&&wBl.stringify(r),time:l||Date.now(),size:o,metadata:a};try{await gjr(k6.dirname(A),{recursive:!0});let I=JSON.stringify(f);await bBl(A,` -${pZt(I)} ${I}`)}catch(I){if(I.code==="ENOENT")return;throw I}return fZt(e,f)}JO.exports.find=GBl;async function GBl(e,t){let r=J7e(e,t);try{return(await dZt(r)).reduce((a,o)=>o&&o.key===t?fZt(e,o):a,null)}catch(n){if(n.code==="ENOENT")return null;throw n}}JO.exports.delete=FBl;function FBl(e,t,r={}){if(!r.removeFully)return vms(e,t,null,r);let n=J7e(e,t);return Sms(n,{recursive:!0,force:!0})}JO.exports.lsStream=Bms;function Bms(e){let t=Ajr(e),r=new BBl({objectMode:!0});return Promise.resolve().then(async()=>{let{default:n}=await Promise.resolve().then(()=>(AZt(),gZt)),a=await ujr(t);return await n(a,async o=>{let l=k6.join(t,o),A=await ujr(l);await n(A,async f=>{let I=k6.join(l,f),C=await ujr(I);await n(C,async b=>{let E=k6.join(I,b);try{let B=(await dZt(E)).reduce((F,Q)=>(F.set(Q.key,Q),F),new Map);for(let F of B.values()){let Q=fZt(e,F);Q&&r.write(Q)}}catch(N){if(N.code==="ENOENT")return;throw N}},{concurrency:ljr})},{concurrency:ljr})},{concurrency:ljr}),r.end(),r}).catch(n=>r.emit("error",n)),r}JO.exports.ls=ZBl;async function ZBl(e){return(await Bms(e).collect()).reduce((r,n)=>(r[n.key]=n,r),{})}JO.exports.bucketEntries=dZt;async function dZt(e,t){let r=await EBl(e,"utf8");return LBl(r,t)}function LBl(e){let t=[];return e.split(` -`).forEach(r=>{if(!r)return;let n=r.split(" ");if(!n[1]||pZt(n[1])!==n[0])return;let a;try{a=JSON.parse(n[1])}catch{}a&&t.push(a)}),t}JO.exports.bucketDir=Ajr;function Ajr(e){return k6.join(e,`index-v${DBl}`)}JO.exports.bucketPath=J7e;function J7e(e,t){let r=wms(t);return k6.join.apply(k6,[Ajr(e)].concat(NBl(r)))}JO.exports.hashKey=wms;function wms(e){return Tms(e,"sha256")}JO.exports.hashEntry=pZt;function pZt(e){return Tms(e,"sha1")}function Tms(e,t){return yBl.createHash(t).update(e).digest("hex")}function fZt(e,t,r){return!t.integrity&&!r?null:{key:t.key,integrity:t.integrity,path:t.integrity?RBl(e,t.integrity):void 0,size:t.size,time:t.time,metadata:t.metadata}}function ujr(e){return SBl(e).catch(t=>{if(t.code==="ENOENT"||t.code==="ENOTDIR")return[];throw t})}});var U7e=H((Xig,tFe)=>{"use strict";var{LRUCache:VBl}=yIe(),IZt=new VBl({max:500,maxSize:50*1024*1024,ttl:3*60*1e3,sizeCalculation:(e,t)=>t.startsWith("key:")?e.data.length:e.length});tFe.exports.clearMemoized=PBl;function PBl(){let e={};return IZt.forEach((t,r)=>{e[r]=t}),IZt.clear(),e}tFe.exports.put=WBl;function WBl(e,t,r,n){hZt(n).set(`key:${e}:${t.key}`,{entry:t,data:r}),Rms(e,t.integrity,r,n)}tFe.exports.put.byDigest=Rms;function Rms(e,t,r,n){hZt(n).set(`digest:${e}:${t}`,r)}tFe.exports.get=OBl;function OBl(e,t,r){return hZt(r).get(`key:${e}:${t}`)}tFe.exports.get.byDigest=MBl;function MBl(e,t,r){return hZt(r).get(`digest:${e}:${t}`)}var djr=class{constructor(t){this.obj=t}get(t){return this.obj[t]}set(t,r){this.obj[t]=r}};function hZt(e){return!e||!e.memoize?IZt:e.memoize.get&&e.memoize.set?e.memoize:typeof e.memoize=="object"?new djr(e.memoize):IZt}});var vZt=H(j7e=>{"use strict";var{Minipass:HBl}=rF(),YBl=wt("events").EventEmitter,qV=wt("fs"),QBl=qV.writev,oFe=Symbol("_autoClose"),tJ=Symbol("_close"),K7e=Symbol("_ended"),pb=Symbol("_fd"),Nms=Symbol("_finished"),Oue=Symbol("_flags"),pjr=Symbol("_flush"),Ijr=Symbol("_handleChunk"),hjr=Symbol("_makeBuf"),bZt=Symbol("_mode"),mZt=Symbol("_needDrain"),iFe=Symbol("_onerror"),aFe=Symbol("_onopen"),fjr=Symbol("_onread"),rFe=Symbol("_onwrite"),Mue=Symbol("_open"),are=Symbol("_path"),R0e=Symbol("_pos"),x6=Symbol("_queue"),nFe=Symbol("_read"),Dms=Symbol("_readSize"),Wue=Symbol("_reading"),CZt=Symbol("_remain"),kms=Symbol("_size"),_Zt=Symbol("_write"),T0e=Symbol("_writing"),yZt=Symbol("_defaultFlag"),sFe=Symbol("_errored"),EZt=class extends HBl{constructor(t,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof t!="string")throw new TypeError("path must be a string");this[sFe]=!1,this[pb]=typeof r.fd=="number"?r.fd:null,this[are]=t,this[Dms]=r.readSize||16*1024*1024,this[Wue]=!1,this[kms]=typeof r.size=="number"?r.size:1/0,this[CZt]=this[kms],this[oFe]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[pb]=="number"?this[nFe]():this[Mue]()}get fd(){return this[pb]}get path(){return this[are]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Mue](){qV.open(this[are],"r",(t,r)=>this[aFe](t,r))}[aFe](t,r){t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[nFe]())}[hjr](){return Buffer.allocUnsafe(Math.min(this[Dms],this[CZt]))}[nFe](){if(!this[Wue]){this[Wue]=!0;let t=this[hjr]();if(t.length===0)return process.nextTick(()=>this[fjr](null,0,t));qV.read(this[pb],t,0,t.length,null,(r,n,a)=>this[fjr](r,n,a))}}[fjr](t,r,n){this[Wue]=!1,t?this[iFe](t):this[Ijr](r,n)&&this[nFe]()}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}[iFe](t){this[Wue]=!0,this[tJ](),this.emit("error",t)}[Ijr](t,r){let n=!1;return this[CZt]-=t,t>0&&(n=super.write(tthis[aFe](t,r))}[aFe](t,r){this[yZt]&&this[Oue]==="r+"&&t&&t.code==="ENOENT"?(this[Oue]="w",this[Mue]()):t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[T0e]||this[pjr]())}end(t,r){return t&&this.write(t,r),this[K7e]=!0,!this[T0e]&&!this[x6].length&&typeof this[pb]=="number"&&this[rFe](null,0),this}write(t,r){return typeof t=="string"&&(t=Buffer.from(t,r)),this[K7e]?(this.emit("error",new Error("write() after end()")),!1):this[pb]===null||this[T0e]||this[x6].length?(this[x6].push(t),this[mZt]=!0,!1):(this[T0e]=!0,this[_Zt](t),!0)}[_Zt](t){qV.write(this[pb],t,0,t.length,this[R0e],(r,n)=>this[rFe](r,n))}[rFe](t,r){t?this[iFe](t):(this[R0e]!==null&&(this[R0e]+=r),this[x6].length?this[pjr]():(this[T0e]=!1,this[K7e]&&!this[Nms]?(this[Nms]=!0,this[tJ](),this.emit("finish")):this[mZt]&&(this[mZt]=!1,this.emit("drain"))))}[pjr](){if(this[x6].length===0)this[K7e]&&this[rFe](null,0);else if(this[x6].length===1)this[_Zt](this[x6].pop());else{let t=this[x6];this[x6]=[],QBl(this[pb],t,this[R0e],(r,n)=>this[rFe](r,n))}}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}},Cjr=class extends SZt{[Mue](){let t;if(this[yZt]&&this[Oue]==="r+")try{t=qV.openSync(this[are],this[Oue],this[bZt])}catch(r){if(r.code==="ENOENT")return this[Oue]="w",this[Mue]();throw r}else t=qV.openSync(this[are],this[Oue],this[bZt]);this[aFe](null,t)}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.closeSync(t),this.emit("close")}}[_Zt](t){let r=!0;try{this[rFe](null,qV.writeSync(this[pb],t,0,t.length,this[R0e])),r=!1}finally{if(r)try{this[tJ]()}catch{}}}};j7e.ReadStream=EZt;j7e.ReadStreamSync=mjr;j7e.WriteStream=SZt;j7e.WriteStreamSync=Cjr});var yjr=H((Uig,cFe)=>{"use strict";var z7e=wt("fs/promises"),XBl=vZt(),_jr=Jte(),JBl=qGe(),xms=zGe();cFe.exports=UBl;var Gms=64*1024*1024;async function UBl(e,t,r={}){let{size:n}=r,{stat:a,cpath:o,sri:l}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));if(a.size>Gms)return Fms(o,a.size,l,new xms).concat();let A=await z7e.readFile(o,{encoding:null});if(a.size!==A.length)throw zBl(a.size,A.length);if(!_jr.checkData(A,l))throw qBl(l,o);return A}var Fms=(e,t,r,n)=>(n.push(new XBl.ReadStream(e,{size:t,readSize:Gms}),_jr.integrityStream({integrity:r,size:t})),n);cFe.exports.stream=Zms;cFe.exports.readStream=Zms;function Zms(e,t,r={}){let{size:n}=r,a=new xms;return Promise.resolve().then(async()=>{let{stat:o,cpath:l,sri:A}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));return Fms(l,o.size,A,a)}).catch(o=>a.emit("error",o)),a}cFe.exports.copy=KBl;function KBl(e,t,r){return q7e(e,t,n=>z7e.copyFile(n,r))}cFe.exports.hasContent=jBl;async function jBl(e,t){if(!t)return!1;try{return await q7e(e,t,async(r,n)=>{let a=await z7e.stat(r);return{size:a.size,sri:n,stat:a}})}catch(r){if(r.code==="ENOENT")return!1;if(r.code==="EPERM"){if(process.platform!=="win32")throw r;return!1}}}async function q7e(e,t,r){let n=_jr.parse(t),a=n.pickAlgorithm(),o=n[a];if(o.length<=1){let l=JBl(e,o[0]);return r(l,o[0])}else{let l=await Promise.all(o.map(async I=>{try{return await q7e(e,I,r)}catch(C){return C.code==="ENOENT"?Object.assign(new Error("No matching content found for "+n.toString()),{code:"ENOENT"}):C}})),A=l.find(I=>!(I instanceof Error));if(A)return A;let f=l.find(I=>I.code==="ENOENT");throw f||l.find(I=>I instanceof Error)}}function zBl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function qBl(e,t){let r=new Error(`Integrity verification failed for ${e} (${t})`);return r.code="EINTEGRITY",r.sri=e,r.path=t,r}});var Wms=H((Kig,lre)=>{"use strict";var Lms=J8r(),{Minipass:Vms}=rF(),Pms=zGe(),N0e=eFe(),cre=U7e(),D0e=yjr();async function $Bl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get(e,t,r);if(l&&a!==!1)return{metadata:l.entry.metadata,data:l.data,integrity:l.entry.integrity,size:l.entry.size};let A=await N0e.find(e,t,r);if(!A)throw new N0e.NotFoundError(e,t);let f=await D0e(e,A.integrity,{integrity:n,size:o});return a&&cre.put(e,A,f,r),{data:f,metadata:A.metadata,size:A.size,integrity:A.integrity}}lre.exports=$Bl;async function ewl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get.byDigest(e,t,r);if(l&&a!==!1)return l;let A=await D0e(e,t,{integrity:n,size:o});return a&&cre.put.byDigest(e,t,A,r),A}lre.exports.byDigest=ewl;var twl=e=>{let t=new Vms;return t.on("newListener",function(r,n){r==="metadata"&&n(e.entry.metadata),r==="integrity"&&n(e.entry.integrity),r==="size"&&n(e.entry.size)}),t.end(e.data),t};function rwl(e,t,r={}){let{memoize:n,size:a}=r,o=cre.get(e,t,r);if(o&&n!==!1)return twl(o);let l=new Pms;return Promise.resolve().then(async()=>{let A=await N0e.find(e,t);if(!A)throw new N0e.NotFoundError(e,t);l.emit("metadata",A.metadata),l.emit("integrity",A.integrity),l.emit("size",A.size),l.on("newListener",function(I,C){I==="metadata"&&C(A.metadata),I==="integrity"&&C(A.integrity),I==="size"&&C(A.size)});let f=D0e.readStream(e,A.integrity,{...r,size:typeof a!="number"?A.size:a});if(n){let I=new Lms.PassThrough;I.on("collect",C=>cre.put(e,A,C,r)),l.unshift(I)}return l.unshift(f),l}).catch(A=>l.emit("error",A)),l}lre.exports.stream=rwl;function nwl(e,t,r={}){let{memoize:n}=r,a=cre.get.byDigest(e,t,r);if(a&&n!==!1){let o=new Vms;return o.end(a),o}else{let o=D0e.readStream(e,t,r);if(!n)return o;let l=new Lms.PassThrough;return l.on("collect",A=>cre.put.byDigest(e,t,A,r)),new Pms(o,l)}}lre.exports.stream.byDigest=nwl;function iwl(e,t,r={}){let{memoize:n}=r,a=cre.get(e,t,r);return a&&n!==!1?Promise.resolve(a.entry):N0e.find(e,t)}lre.exports.info=iwl;async function swl(e,t,r,n={}){let a=await N0e.find(e,t,n);if(!a)throw new N0e.NotFoundError(e,t);return await D0e.copy(e,a.integrity,r,n),{metadata:a.metadata,size:a.size,integrity:a.integrity}}lre.exports.copy=swl;async function owl(e,t,r,n={}){return await D0e.copy(e,t,r,n),t}lre.exports.copy.byDigest=owl;lre.exports.hasContent=D0e.hasContent});var Qms=H((jig,vjr)=>{"use strict";var Oms=wt("events"),awl=qGe(),eze=wt("fs/promises"),{moveFile:cwl}=uZt(),{Minipass:lwl}=rF(),Mms=zGe(),uwl=sZt(),bjr=wt("path"),Ejr=Jte(),gwl=ejr(),Awl=vZt();vjr.exports=dwl;var $7e=new Map;async function dwl(e,t,r={}){let{algorithms:n,size:a,integrity:o}=r;if(typeof a=="number"&&t.length!==a)throw hwl(a,t.length);let l=Ejr.fromData(t,n?{algorithms:n}:{});if(o&&!Ejr.checkData(t,o,r))throw mwl(o,l);for(let A in l){let f=await Hms(e,r),I=l[A].toString();try{await eze.writeFile(f.target,t,{flag:"wx"}),await Yms(f,e,I,r)}finally{f.moved||await eze.rm(f.target,{recursive:!0,force:!0})}}return{integrity:l,size:t.length}}vjr.exports.stream=pwl;var Sjr=class extends uwl{constructor(t,r){super(),this.opts=r,this.cache=t,this.inputStream=new lwl,this.inputStream.on("error",n=>this.emit("error",n)),this.inputStream.on("drain",()=>this.emit("drain")),this.handleContentP=null}write(t,r,n){return this.handleContentP||(this.handleContentP=fwl(this.inputStream,this.cache,this.opts),this.handleContentP.catch(a=>this.emit("error",a))),this.inputStream.write(t,r,n)}flush(t){this.inputStream.end(()=>{if(!this.handleContentP){let r=new Error("Cache input stream was empty");return r.code="ENODATA",Promise.reject(r).catch(t)}this.handleContentP.then(r=>{r.integrity&&this.emit("integrity",r.integrity),r.size!==null&&this.emit("size",r.size),t()},r=>t(r))})}};function pwl(e,t={}){return new Sjr(e,t)}async function fwl(e,t,r){let n=await Hms(t,r);try{let a=await Iwl(e,t,n.target,r);return await Yms(n,t,a.integrity,r),a}finally{n.moved||await eze.rm(n.target,{recursive:!0,force:!0})}}async function Iwl(e,t,r,n){let a=new Awl.WriteStream(r,{flags:"wx"});if(n.integrityEmitter){let[I,C]=await Promise.all([Oms.once(n.integrityEmitter,"integrity").then(b=>b[0]),Oms.once(n.integrityEmitter,"size").then(b=>b[0]),new Mms(e,a).promise()]);return{integrity:I,size:C}}let o,l,A=Ejr.integrityStream({integrity:n.integrity,algorithms:n.algorithms,size:n.size});return A.on("integrity",I=>{o=I}),A.on("size",I=>{l=I}),await new Mms(e,A,a).promise(),{integrity:o,size:l}}async function Hms(e,t){let r=gwl(bjr.join(e,"tmp"),t.tmpPrefix);return await eze.mkdir(bjr.dirname(r),{recursive:!0}),{target:r,moved:!1}}async function Yms(e,t,r){let n=awl(t,r),a=bjr.dirname(n);return $7e.has(n)||$7e.set(n,eze.mkdir(a,{recursive:!0}).then(async()=>(await cwl(e.target,n,{overwrite:!1}),e.moved=!0,e.moved)).catch(o=>{if(!o.message.startsWith("The destination file exists"))throw Object.assign(o,{code:"EEXIST"})}).finally(()=>{$7e.delete(n)})),$7e.get(n)}function hwl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function mwl(e,t){let r=new Error(`Integrity check failed: +`),f=async()=>{let E=RBl(k6.join(e,"tmp"),n.tmpPrefix);return await gjr(k6.dirname(E),{recursive:!0}),{target:E,moved:!1}},I=async E=>{if(!E.moved)return Sms(E.target,{recursive:!0,force:!0})},C=async E=>{await BBl(E.target,A,{flag:"wx"}),await gjr(k6.dirname(a),{recursive:!0}),await xBl(E.target,a),E.moved=!0},b=await f();try{await C(b)}finally{await I(b)}return l.reverse().map(E=>fZt(e,E,!0))}JO.exports.insert=vms;async function vms(e,t,r,n={}){let{metadata:a,size:o,time:l}=n,A=J7e(e,t),f={key:t,integrity:r&&TBl.stringify(r),time:l||Date.now(),size:o,metadata:a};try{await gjr(k6.dirname(A),{recursive:!0});let I=JSON.stringify(f);await EBl(A,` +${pZt(I)} ${I}`)}catch(I){if(I.code==="ENOENT")return;throw I}return fZt(e,f)}JO.exports.find=FBl;async function FBl(e,t){let r=J7e(e,t);try{return(await dZt(r)).reduce((a,o)=>o&&o.key===t?fZt(e,o):a,null)}catch(n){if(n.code==="ENOENT")return null;throw n}}JO.exports.delete=ZBl;function ZBl(e,t,r={}){if(!r.removeFully)return vms(e,t,null,r);let n=J7e(e,t);return Sms(n,{recursive:!0,force:!0})}JO.exports.lsStream=Bms;function Bms(e){let t=Ajr(e),r=new wBl({objectMode:!0});return Promise.resolve().then(async()=>{let{default:n}=await Promise.resolve().then(()=>(AZt(),gZt)),a=await ujr(t);return await n(a,async o=>{let l=k6.join(t,o),A=await ujr(l);await n(A,async f=>{let I=k6.join(l,f),C=await ujr(I);await n(C,async b=>{let E=k6.join(I,b);try{let B=(await dZt(E)).reduce((F,Q)=>(F.set(Q.key,Q),F),new Map);for(let F of B.values()){let Q=fZt(e,F);Q&&r.write(Q)}}catch(N){if(N.code==="ENOENT")return;throw N}},{concurrency:ljr})},{concurrency:ljr})},{concurrency:ljr}),r.end(),r}).catch(n=>r.emit("error",n)),r}JO.exports.ls=LBl;async function LBl(e){return(await Bms(e).collect()).reduce((r,n)=>(r[n.key]=n,r),{})}JO.exports.bucketEntries=dZt;async function dZt(e,t){let r=await SBl(e,"utf8");return VBl(r,t)}function VBl(e){let t=[];return e.split(` +`).forEach(r=>{if(!r)return;let n=r.split(" ");if(!n[1]||pZt(n[1])!==n[0])return;let a;try{a=JSON.parse(n[1])}catch{}a&&t.push(a)}),t}JO.exports.bucketDir=Ajr;function Ajr(e){return k6.join(e,`index-v${kBl}`)}JO.exports.bucketPath=J7e;function J7e(e,t){let r=wms(t);return k6.join.apply(k6,[Ajr(e)].concat(DBl(r)))}JO.exports.hashKey=wms;function wms(e){return Tms(e,"sha256")}JO.exports.hashEntry=pZt;function pZt(e){return Tms(e,"sha1")}function Tms(e,t){return bBl.createHash(t).update(e).digest("hex")}function fZt(e,t,r){return!t.integrity&&!r?null:{key:t.key,integrity:t.integrity,path:t.integrity?NBl(e,t.integrity):void 0,size:t.size,time:t.time,metadata:t.metadata}}function ujr(e){return vBl(e).catch(t=>{if(t.code==="ENOENT"||t.code==="ENOTDIR")return[];throw t})}});var U7e=H((Jig,tFe)=>{"use strict";var{LRUCache:PBl}=yIe(),IZt=new PBl({max:500,maxSize:50*1024*1024,ttl:3*60*1e3,sizeCalculation:(e,t)=>t.startsWith("key:")?e.data.length:e.length});tFe.exports.clearMemoized=WBl;function WBl(){let e={};return IZt.forEach((t,r)=>{e[r]=t}),IZt.clear(),e}tFe.exports.put=OBl;function OBl(e,t,r,n){hZt(n).set(`key:${e}:${t.key}`,{entry:t,data:r}),Rms(e,t.integrity,r,n)}tFe.exports.put.byDigest=Rms;function Rms(e,t,r,n){hZt(n).set(`digest:${e}:${t}`,r)}tFe.exports.get=MBl;function MBl(e,t,r){return hZt(r).get(`key:${e}:${t}`)}tFe.exports.get.byDigest=HBl;function HBl(e,t,r){return hZt(r).get(`digest:${e}:${t}`)}var djr=class{constructor(t){this.obj=t}get(t){return this.obj[t]}set(t,r){this.obj[t]=r}};function hZt(e){return!e||!e.memoize?IZt:e.memoize.get&&e.memoize.set?e.memoize:typeof e.memoize=="object"?new djr(e.memoize):IZt}});var vZt=H(j7e=>{"use strict";var{Minipass:YBl}=rF(),QBl=wt("events").EventEmitter,qV=wt("fs"),XBl=qV.writev,oFe=Symbol("_autoClose"),tJ=Symbol("_close"),K7e=Symbol("_ended"),pb=Symbol("_fd"),Nms=Symbol("_finished"),Oue=Symbol("_flags"),pjr=Symbol("_flush"),Ijr=Symbol("_handleChunk"),hjr=Symbol("_makeBuf"),bZt=Symbol("_mode"),mZt=Symbol("_needDrain"),iFe=Symbol("_onerror"),aFe=Symbol("_onopen"),fjr=Symbol("_onread"),rFe=Symbol("_onwrite"),Mue=Symbol("_open"),are=Symbol("_path"),R0e=Symbol("_pos"),x6=Symbol("_queue"),nFe=Symbol("_read"),Dms=Symbol("_readSize"),Wue=Symbol("_reading"),CZt=Symbol("_remain"),kms=Symbol("_size"),_Zt=Symbol("_write"),T0e=Symbol("_writing"),yZt=Symbol("_defaultFlag"),sFe=Symbol("_errored"),EZt=class extends YBl{constructor(t,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof t!="string")throw new TypeError("path must be a string");this[sFe]=!1,this[pb]=typeof r.fd=="number"?r.fd:null,this[are]=t,this[Dms]=r.readSize||16*1024*1024,this[Wue]=!1,this[kms]=typeof r.size=="number"?r.size:1/0,this[CZt]=this[kms],this[oFe]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[pb]=="number"?this[nFe]():this[Mue]()}get fd(){return this[pb]}get path(){return this[are]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Mue](){qV.open(this[are],"r",(t,r)=>this[aFe](t,r))}[aFe](t,r){t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[nFe]())}[hjr](){return Buffer.allocUnsafe(Math.min(this[Dms],this[CZt]))}[nFe](){if(!this[Wue]){this[Wue]=!0;let t=this[hjr]();if(t.length===0)return process.nextTick(()=>this[fjr](null,0,t));qV.read(this[pb],t,0,t.length,null,(r,n,a)=>this[fjr](r,n,a))}}[fjr](t,r,n){this[Wue]=!1,t?this[iFe](t):this[Ijr](r,n)&&this[nFe]()}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}[iFe](t){this[Wue]=!0,this[tJ](),this.emit("error",t)}[Ijr](t,r){let n=!1;return this[CZt]-=t,t>0&&(n=super.write(tthis[aFe](t,r))}[aFe](t,r){this[yZt]&&this[Oue]==="r+"&&t&&t.code==="ENOENT"?(this[Oue]="w",this[Mue]()):t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[T0e]||this[pjr]())}end(t,r){return t&&this.write(t,r),this[K7e]=!0,!this[T0e]&&!this[x6].length&&typeof this[pb]=="number"&&this[rFe](null,0),this}write(t,r){return typeof t=="string"&&(t=Buffer.from(t,r)),this[K7e]?(this.emit("error",new Error("write() after end()")),!1):this[pb]===null||this[T0e]||this[x6].length?(this[x6].push(t),this[mZt]=!0,!1):(this[T0e]=!0,this[_Zt](t),!0)}[_Zt](t){qV.write(this[pb],t,0,t.length,this[R0e],(r,n)=>this[rFe](r,n))}[rFe](t,r){t?this[iFe](t):(this[R0e]!==null&&(this[R0e]+=r),this[x6].length?this[pjr]():(this[T0e]=!1,this[K7e]&&!this[Nms]?(this[Nms]=!0,this[tJ](),this.emit("finish")):this[mZt]&&(this[mZt]=!1,this.emit("drain"))))}[pjr](){if(this[x6].length===0)this[K7e]&&this[rFe](null,0);else if(this[x6].length===1)this[_Zt](this[x6].pop());else{let t=this[x6];this[x6]=[],XBl(this[pb],t,this[R0e],(r,n)=>this[rFe](r,n))}}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}},Cjr=class extends SZt{[Mue](){let t;if(this[yZt]&&this[Oue]==="r+")try{t=qV.openSync(this[are],this[Oue],this[bZt])}catch(r){if(r.code==="ENOENT")return this[Oue]="w",this[Mue]();throw r}else t=qV.openSync(this[are],this[Oue],this[bZt]);this[aFe](null,t)}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.closeSync(t),this.emit("close")}}[_Zt](t){let r=!0;try{this[rFe](null,qV.writeSync(this[pb],t,0,t.length,this[R0e])),r=!1}finally{if(r)try{this[tJ]()}catch{}}}};j7e.ReadStream=EZt;j7e.ReadStreamSync=mjr;j7e.WriteStream=SZt;j7e.WriteStreamSync=Cjr});var yjr=H((Kig,cFe)=>{"use strict";var z7e=wt("fs/promises"),JBl=vZt(),_jr=Jte(),UBl=qGe(),xms=zGe();cFe.exports=KBl;var Gms=64*1024*1024;async function KBl(e,t,r={}){let{size:n}=r,{stat:a,cpath:o,sri:l}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));if(a.size>Gms)return Fms(o,a.size,l,new xms).concat();let A=await z7e.readFile(o,{encoding:null});if(a.size!==A.length)throw qBl(a.size,A.length);if(!_jr.checkData(A,l))throw $Bl(l,o);return A}var Fms=(e,t,r,n)=>(n.push(new JBl.ReadStream(e,{size:t,readSize:Gms}),_jr.integrityStream({integrity:r,size:t})),n);cFe.exports.stream=Zms;cFe.exports.readStream=Zms;function Zms(e,t,r={}){let{size:n}=r,a=new xms;return Promise.resolve().then(async()=>{let{stat:o,cpath:l,sri:A}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));return Fms(l,o.size,A,a)}).catch(o=>a.emit("error",o)),a}cFe.exports.copy=jBl;function jBl(e,t,r){return q7e(e,t,n=>z7e.copyFile(n,r))}cFe.exports.hasContent=zBl;async function zBl(e,t){if(!t)return!1;try{return await q7e(e,t,async(r,n)=>{let a=await z7e.stat(r);return{size:a.size,sri:n,stat:a}})}catch(r){if(r.code==="ENOENT")return!1;if(r.code==="EPERM"){if(process.platform!=="win32")throw r;return!1}}}async function q7e(e,t,r){let n=_jr.parse(t),a=n.pickAlgorithm(),o=n[a];if(o.length<=1){let l=UBl(e,o[0]);return r(l,o[0])}else{let l=await Promise.all(o.map(async I=>{try{return await q7e(e,I,r)}catch(C){return C.code==="ENOENT"?Object.assign(new Error("No matching content found for "+n.toString()),{code:"ENOENT"}):C}})),A=l.find(I=>!(I instanceof Error));if(A)return A;let f=l.find(I=>I.code==="ENOENT");throw f||l.find(I=>I instanceof Error)}}function qBl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function $Bl(e,t){let r=new Error(`Integrity verification failed for ${e} (${t})`);return r.code="EINTEGRITY",r.sri=e,r.path=t,r}});var Wms=H((jig,lre)=>{"use strict";var Lms=J8r(),{Minipass:Vms}=rF(),Pms=zGe(),N0e=eFe(),cre=U7e(),D0e=yjr();async function ewl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get(e,t,r);if(l&&a!==!1)return{metadata:l.entry.metadata,data:l.data,integrity:l.entry.integrity,size:l.entry.size};let A=await N0e.find(e,t,r);if(!A)throw new N0e.NotFoundError(e,t);let f=await D0e(e,A.integrity,{integrity:n,size:o});return a&&cre.put(e,A,f,r),{data:f,metadata:A.metadata,size:A.size,integrity:A.integrity}}lre.exports=ewl;async function twl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get.byDigest(e,t,r);if(l&&a!==!1)return l;let A=await D0e(e,t,{integrity:n,size:o});return a&&cre.put.byDigest(e,t,A,r),A}lre.exports.byDigest=twl;var rwl=e=>{let t=new Vms;return t.on("newListener",function(r,n){r==="metadata"&&n(e.entry.metadata),r==="integrity"&&n(e.entry.integrity),r==="size"&&n(e.entry.size)}),t.end(e.data),t};function nwl(e,t,r={}){let{memoize:n,size:a}=r,o=cre.get(e,t,r);if(o&&n!==!1)return rwl(o);let l=new Pms;return Promise.resolve().then(async()=>{let A=await N0e.find(e,t);if(!A)throw new N0e.NotFoundError(e,t);l.emit("metadata",A.metadata),l.emit("integrity",A.integrity),l.emit("size",A.size),l.on("newListener",function(I,C){I==="metadata"&&C(A.metadata),I==="integrity"&&C(A.integrity),I==="size"&&C(A.size)});let f=D0e.readStream(e,A.integrity,{...r,size:typeof a!="number"?A.size:a});if(n){let I=new Lms.PassThrough;I.on("collect",C=>cre.put(e,A,C,r)),l.unshift(I)}return l.unshift(f),l}).catch(A=>l.emit("error",A)),l}lre.exports.stream=nwl;function iwl(e,t,r={}){let{memoize:n}=r,a=cre.get.byDigest(e,t,r);if(a&&n!==!1){let o=new Vms;return o.end(a),o}else{let o=D0e.readStream(e,t,r);if(!n)return o;let l=new Lms.PassThrough;return l.on("collect",A=>cre.put.byDigest(e,t,A,r)),new Pms(o,l)}}lre.exports.stream.byDigest=iwl;function swl(e,t,r={}){let{memoize:n}=r,a=cre.get(e,t,r);return a&&n!==!1?Promise.resolve(a.entry):N0e.find(e,t)}lre.exports.info=swl;async function owl(e,t,r,n={}){let a=await N0e.find(e,t,n);if(!a)throw new N0e.NotFoundError(e,t);return await D0e.copy(e,a.integrity,r,n),{metadata:a.metadata,size:a.size,integrity:a.integrity}}lre.exports.copy=owl;async function awl(e,t,r,n={}){return await D0e.copy(e,t,r,n),t}lre.exports.copy.byDigest=awl;lre.exports.hasContent=D0e.hasContent});var Qms=H((zig,vjr)=>{"use strict";var Oms=wt("events"),cwl=qGe(),eze=wt("fs/promises"),{moveFile:lwl}=uZt(),{Minipass:uwl}=rF(),Mms=zGe(),gwl=sZt(),bjr=wt("path"),Ejr=Jte(),Awl=ejr(),dwl=vZt();vjr.exports=pwl;var $7e=new Map;async function pwl(e,t,r={}){let{algorithms:n,size:a,integrity:o}=r;if(typeof a=="number"&&t.length!==a)throw mwl(a,t.length);let l=Ejr.fromData(t,n?{algorithms:n}:{});if(o&&!Ejr.checkData(t,o,r))throw Cwl(o,l);for(let A in l){let f=await Hms(e,r),I=l[A].toString();try{await eze.writeFile(f.target,t,{flag:"wx"}),await Yms(f,e,I,r)}finally{f.moved||await eze.rm(f.target,{recursive:!0,force:!0})}}return{integrity:l,size:t.length}}vjr.exports.stream=fwl;var Sjr=class extends gwl{constructor(t,r){super(),this.opts=r,this.cache=t,this.inputStream=new uwl,this.inputStream.on("error",n=>this.emit("error",n)),this.inputStream.on("drain",()=>this.emit("drain")),this.handleContentP=null}write(t,r,n){return this.handleContentP||(this.handleContentP=Iwl(this.inputStream,this.cache,this.opts),this.handleContentP.catch(a=>this.emit("error",a))),this.inputStream.write(t,r,n)}flush(t){this.inputStream.end(()=>{if(!this.handleContentP){let r=new Error("Cache input stream was empty");return r.code="ENODATA",Promise.reject(r).catch(t)}this.handleContentP.then(r=>{r.integrity&&this.emit("integrity",r.integrity),r.size!==null&&this.emit("size",r.size),t()},r=>t(r))})}};function fwl(e,t={}){return new Sjr(e,t)}async function Iwl(e,t,r){let n=await Hms(t,r);try{let a=await hwl(e,t,n.target,r);return await Yms(n,t,a.integrity,r),a}finally{n.moved||await eze.rm(n.target,{recursive:!0,force:!0})}}async function hwl(e,t,r,n){let a=new dwl.WriteStream(r,{flags:"wx"});if(n.integrityEmitter){let[I,C]=await Promise.all([Oms.once(n.integrityEmitter,"integrity").then(b=>b[0]),Oms.once(n.integrityEmitter,"size").then(b=>b[0]),new Mms(e,a).promise()]);return{integrity:I,size:C}}let o,l,A=Ejr.integrityStream({integrity:n.integrity,algorithms:n.algorithms,size:n.size});return A.on("integrity",I=>{o=I}),A.on("size",I=>{l=I}),await new Mms(e,A,a).promise(),{integrity:o,size:l}}async function Hms(e,t){let r=Awl(bjr.join(e,"tmp"),t.tmpPrefix);return await eze.mkdir(bjr.dirname(r),{recursive:!0}),{target:r,moved:!1}}async function Yms(e,t,r){let n=cwl(t,r),a=bjr.dirname(n);return $7e.has(n)||$7e.set(n,eze.mkdir(a,{recursive:!0}).then(async()=>(await lwl(e.target,n,{overwrite:!1}),e.moved=!0,e.moved)).catch(o=>{if(!o.message.startsWith("The destination file exists"))throw Object.assign(o,{code:"EEXIST"})}).finally(()=>{$7e.delete(n)})),$7e.get(n)}function mwl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function Cwl(e,t){let r=new Error(`Integrity check failed: Wanted: ${e} - Found: ${t}`);return r.code="EINTEGRITY",r.expected=e,r.found=t,r}});var jms=H((zig,Bjr)=>{"use strict";var Xms=eFe(),Jms=U7e(),Ums=Qms(),Cwl=sZt(),{PassThrough:_wl}=J8r(),ywl=zGe(),Kms=e=>({algorithms:["sha512"],...e});Bjr.exports=bwl;async function bwl(e,t,r,n={}){let{memoize:a}=n;n=Kms(n);let o=await Ums(e,r,n),l=await Xms.insert(e,t,o.integrity,{...n,size:o.size});return a&&Jms.put(e,l,r,n),o.integrity}Bjr.exports.stream=Ewl;function Ewl(e,t,r={}){let{memoize:n}=r;r=Kms(r);let a,o,l,A,f=new ywl;if(n){let C=new _wl().on("collect",b=>{A=b});f.push(C)}let I=Ums.stream(e,r).on("integrity",C=>{a=C}).on("size",C=>{o=C}).on("error",C=>{l=C});return f.push(I),f.push(new Cwl({async flush(){if(!l){let C=await Xms.insert(e,t,a,{...r,size:o});n&&A&&Jms.put(e,C,A,r),f.emit("integrity",a),f.emit("size",o)}}})),f}});var wjr=H((qig,eCs)=>{"use strict";eCs.exports=qms;function qms(e,t,r){e instanceof RegExp&&(e=zms(e,r)),t instanceof RegExp&&(t=zms(t,r));var n=$ms(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function zms(e,t){var r=t.match(e);return r?r[0]:null}qms.range=$ms;function $ms(e,t,r){var n,a,o,l,A,f=r.indexOf(e),I=r.indexOf(t,f+1),C=f;if(f>=0&&I>0){if(e===t)return[f,I];for(n=[],o=r.length;C>=0&&!A;)C==f?(n.push(C),f=r.indexOf(e,C+1)):n.length==1?A=[n.pop(),I]:(a=n.pop(),a=0?f:I;n.length&&(A=[o,l])}return A}});var cCs=H(($ig,aCs)=>{var tCs=wjr();aCs.exports=Bwl;var rCs="\0SLASH"+Math.random()+"\0",nCs="\0OPEN"+Math.random()+"\0",Rjr="\0CLOSE"+Math.random()+"\0",iCs="\0COMMA"+Math.random()+"\0",sCs="\0PERIOD"+Math.random()+"\0";function Tjr(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function Swl(e){return e.split("\\\\").join(rCs).split("\\{").join(nCs).split("\\}").join(Rjr).split("\\,").join(iCs).split("\\.").join(sCs)}function vwl(e){return e.split(rCs).join("\\").split(nCs).join("{").split(Rjr).join("}").split(iCs).join(",").split(sCs).join(".")}function oCs(e){if(!e)return[""];var t=[],r=tCs("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=oCs(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function Bwl(e){return e?(e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),tze(Swl(e),!0).map(vwl)):[]}function wwl(e){return"{"+e+"}"}function Twl(e){return/^-?0\d/.test(e)}function Rwl(e,t){return e<=t}function Nwl(e,t){return e>=t}function tze(e,t){var r=[],n=tCs("{","}",e);if(!n)return[e];var a=n.pre,o=n.post.length?tze(n.post,!1):[""];if(/\$$/.test(n.pre))for(var l=0;l=0;if(!C&&!b)return n.post.match(/,.*\}/)?(e=n.pre+"{"+n.body+Rjr+n.post,tze(e)):[e];var E;if(C)E=n.body.split(/\.\./);else if(E=oCs(n.body),E.length===1&&(E=tze(E[0],!1).map(wwl),E.length===1))return o.map(function(De){return n.pre+E[0]+De});var N;if(C){var B=Tjr(E[0]),F=Tjr(E[1]),Q=Math.max(E[0].length,E[1].length),X=E.length==3?Math.abs(Tjr(E[2])):1,ae=Rwl,ne=F0){var be=new Array(de+1).join("0");fe<0?ue="-"+be+ue.slice(1):ue=be+ue}}N.push(ue)}}else{N=[];for(var Se=0;Se{"use strict";Object.defineProperty(BZt,"__esModule",{value:!0});BZt.assertValidPattern=void 0;var Dwl=1024*64,kwl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>Dwl)throw new TypeError("pattern is too long")};BZt.assertValidPattern=kwl});var gCs=H(wZt=>{"use strict";Object.defineProperty(wZt,"__esModule",{value:!0});wZt.parseClass=void 0;var xwl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},rze=e=>e.replace(/[[\]\\-]/g,"\\$&"),Gwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),uCs=e=>e.join(""),Fwl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(rze(b)+"-"+rze(F)):F===b&&n.push(rze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(rze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(rze(F)),o++}if(C{"use strict";Object.defineProperty(TZt,"__esModule",{value:!0});TZt.unescape=void 0;var Zwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");TZt.unescape=Zwl});var kjr=H(kZt=>{"use strict";Object.defineProperty(kZt,"__esModule",{value:!0});kZt.AST=void 0;var Lwl=gCs(),NZt=RZt(),Vwl=new Set(["!","?","+","*","@"]),ACs=e=>Vwl.has(e),Pwl="(?!(?:^|/)\\.\\.?(?:$|/))",DZt="(?!\\.)",Wwl=new Set(["[","."]),Owl=new Set(["..","."]),Mwl=new Set("().*{}+?[]^$\\!"),Hwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Djr="[^/]",dCs=Djr+"*?",pCs=Djr+"+?",Njr=class e{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?e.#d(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Owl.has(this.#r[0]))){let B=Wwl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?Pwl:Q?DZt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,NZt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#I(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString();return this.#r=[f],this.type=null,this.#t=void 0,[f,(0,NZt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!DZt?"":this.#I(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?DZt:"")+pCs;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?DZt:"")+dCs+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,NZt.unescape)(o),this.#t=!!this.#t,this.#n]}#I(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#d(t,r,n=!1){let a=!1,o="",l=!1;for(let A=0;A{"use strict";Object.defineProperty(xZt,"__esModule",{value:!0});xZt.escape=void 0;var Ywl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");xZt.escape=Ywl});var Hue=H(cd=>{"use strict";var Qwl=cd&&cd.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cd,"__esModule",{value:!0});cd.unescape=cd.escape=cd.AST=cd.Minimatch=cd.match=cd.makeRe=cd.braceExpand=cd.defaults=cd.filter=cd.GLOBSTAR=cd.sep=cd.minimatch=void 0;var Xwl=Qwl(cCs()),GZt=lCs(),hCs=kjr(),Jwl=xjr(),Uwl=RZt(),Kwl=(e,t,r={})=>((0,GZt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new k0e(t,r).match(e));cd.minimatch=Kwl;var jwl=/^\*+([^+@!?\*\[\(]*)$/,zwl=e=>t=>!t.startsWith(".")&&t.endsWith(e),qwl=e=>t=>t.endsWith(e),$wl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),eTl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),tTl=/^\*+\.\*+$/,rTl=e=>!e.startsWith(".")&&e.includes("."),nTl=e=>e!=="."&&e!==".."&&e.includes("."),iTl=/^\.\*+$/,sTl=e=>e!=="."&&e!==".."&&e.startsWith("."),oTl=/^\*+$/,aTl=e=>e.length!==0&&!e.startsWith("."),cTl=e=>e.length!==0&&e!=="."&&e!=="..",lTl=/^\?+([^+@!?\*\[\(]*)?$/,uTl=([e,t=""])=>{let r=mCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},gTl=([e,t=""])=>{let r=CCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},ATl=([e,t=""])=>{let r=CCs([e]);return t?n=>r(n)&&n.endsWith(t):r},dTl=([e,t=""])=>{let r=mCs([e]);return t?n=>r(n)&&n.endsWith(t):r},mCs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},CCs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},_Cs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",fCs={win32:{sep:"\\"},posix:{sep:"/"}};cd.sep=_Cs==="win32"?fCs.win32.sep:fCs.posix.sep;cd.minimatch.sep=cd.sep;cd.GLOBSTAR=Symbol("globstar **");cd.minimatch.GLOBSTAR=cd.GLOBSTAR;var pTl="[^/]",fTl=pTl+"*?",ITl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",hTl="(?:(?!(?:\\/|^)\\.).)*?",mTl=(e,t={})=>r=>(0,cd.minimatch)(r,e,t);cd.filter=mTl;cd.minimatch.filter=cd.filter;var OH=(e,t={})=>Object.assign({},e,t),CTl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return cd.minimatch;let t=cd.minimatch;return Object.assign((n,a,o={})=>t(n,a,OH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,OH(e,o))}static defaults(a){return t.defaults(OH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,OH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,OH(e,o))}},unescape:(n,a={})=>t.unescape(n,OH(e,a)),escape:(n,a={})=>t.escape(n,OH(e,a)),filter:(n,a={})=>t.filter(n,OH(e,a)),defaults:n=>t.defaults(OH(e,n)),makeRe:(n,a={})=>t.makeRe(n,OH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,OH(e,a)),match:(n,a,o={})=>t.match(n,a,OH(e,o)),sep:t.sep,GLOBSTAR:cd.GLOBSTAR})};cd.defaults=CTl;cd.minimatch.defaults=cd.defaults;var _Tl=(e,t={})=>((0,GZt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,Xwl.default)(e));cd.braceExpand=_Tl;cd.minimatch.braceExpand=cd.braceExpand;var yTl=(e,t={})=>new k0e(e,t).makeRe();cd.makeRe=yTl;cd.minimatch.makeRe=cd.makeRe;var bTl=(e,t,r={})=>{let n=new k0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};cd.match=bTl;cd.minimatch.match=cd.match;var ICs=/[?*]|[+@!]\(.*?\)|\[|\]/,ETl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,r={}){(0,GZt.assertValidPattern)(t),r=r||{},this.options=r,this.pattern=t,this.platform=r.platform||_Cs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!ICs.test(o[2]))&&!ICs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;ane?r=r.slice(ce):ne>ce&&(t=t.slice(ne)))}}let{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:r}),this.debug("matchOne",t.length,r.length);for(var l=0,A=0,f=t.length,I=r.length;l{"use strict";var Xms=eFe(),Jms=U7e(),Ums=Qms(),_wl=sZt(),{PassThrough:ywl}=J8r(),bwl=zGe(),Kms=e=>({algorithms:["sha512"],...e});Bjr.exports=Ewl;async function Ewl(e,t,r,n={}){let{memoize:a}=n;n=Kms(n);let o=await Ums(e,r,n),l=await Xms.insert(e,t,o.integrity,{...n,size:o.size});return a&&Jms.put(e,l,r,n),o.integrity}Bjr.exports.stream=Swl;function Swl(e,t,r={}){let{memoize:n}=r;r=Kms(r);let a,o,l,A,f=new bwl;if(n){let C=new ywl().on("collect",b=>{A=b});f.push(C)}let I=Ums.stream(e,r).on("integrity",C=>{a=C}).on("size",C=>{o=C}).on("error",C=>{l=C});return f.push(I),f.push(new _wl({async flush(){if(!l){let C=await Xms.insert(e,t,a,{...r,size:o});n&&A&&Jms.put(e,C,A,r),f.emit("integrity",a),f.emit("size",o)}}})),f}});var wjr=H(($ig,eCs)=>{"use strict";eCs.exports=qms;function qms(e,t,r){e instanceof RegExp&&(e=zms(e,r)),t instanceof RegExp&&(t=zms(t,r));var n=$ms(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function zms(e,t){var r=t.match(e);return r?r[0]:null}qms.range=$ms;function $ms(e,t,r){var n,a,o,l,A,f=r.indexOf(e),I=r.indexOf(t,f+1),C=f;if(f>=0&&I>0){if(e===t)return[f,I];for(n=[],o=r.length;C>=0&&!A;)C==f?(n.push(C),f=r.indexOf(e,C+1)):n.length==1?A=[n.pop(),I]:(a=n.pop(),a=0?f:I;n.length&&(A=[o,l])}return A}});var cCs=H((esg,aCs)=>{var tCs=wjr();aCs.exports=wwl;var rCs="\0SLASH"+Math.random()+"\0",nCs="\0OPEN"+Math.random()+"\0",Rjr="\0CLOSE"+Math.random()+"\0",iCs="\0COMMA"+Math.random()+"\0",sCs="\0PERIOD"+Math.random()+"\0";function Tjr(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function vwl(e){return e.split("\\\\").join(rCs).split("\\{").join(nCs).split("\\}").join(Rjr).split("\\,").join(iCs).split("\\.").join(sCs)}function Bwl(e){return e.split(rCs).join("\\").split(nCs).join("{").split(Rjr).join("}").split(iCs).join(",").split(sCs).join(".")}function oCs(e){if(!e)return[""];var t=[],r=tCs("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=oCs(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function wwl(e){return e?(e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),tze(vwl(e),!0).map(Bwl)):[]}function Twl(e){return"{"+e+"}"}function Rwl(e){return/^-?0\d/.test(e)}function Nwl(e,t){return e<=t}function Dwl(e,t){return e>=t}function tze(e,t){var r=[],n=tCs("{","}",e);if(!n)return[e];var a=n.pre,o=n.post.length?tze(n.post,!1):[""];if(/\$$/.test(n.pre))for(var l=0;l=0;if(!C&&!b)return n.post.match(/,.*\}/)?(e=n.pre+"{"+n.body+Rjr+n.post,tze(e)):[e];var E;if(C)E=n.body.split(/\.\./);else if(E=oCs(n.body),E.length===1&&(E=tze(E[0],!1).map(Twl),E.length===1))return o.map(function(De){return n.pre+E[0]+De});var N;if(C){var B=Tjr(E[0]),F=Tjr(E[1]),Q=Math.max(E[0].length,E[1].length),X=E.length==3?Math.abs(Tjr(E[2])):1,ae=Nwl,ne=F0){var be=new Array(de+1).join("0");fe<0?ue="-"+be+ue.slice(1):ue=be+ue}}N.push(ue)}}else{N=[];for(var Se=0;Se{"use strict";Object.defineProperty(BZt,"__esModule",{value:!0});BZt.assertValidPattern=void 0;var kwl=1024*64,xwl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>kwl)throw new TypeError("pattern is too long")};BZt.assertValidPattern=xwl});var gCs=H(wZt=>{"use strict";Object.defineProperty(wZt,"__esModule",{value:!0});wZt.parseClass=void 0;var Gwl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},rze=e=>e.replace(/[[\]\\-]/g,"\\$&"),Fwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),uCs=e=>e.join(""),Zwl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(rze(b)+"-"+rze(F)):F===b&&n.push(rze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(rze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(rze(F)),o++}if(C{"use strict";Object.defineProperty(TZt,"__esModule",{value:!0});TZt.unescape=void 0;var Lwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");TZt.unescape=Lwl});var kjr=H(kZt=>{"use strict";Object.defineProperty(kZt,"__esModule",{value:!0});kZt.AST=void 0;var Vwl=gCs(),NZt=RZt(),Pwl=new Set(["!","?","+","*","@"]),ACs=e=>Pwl.has(e),Wwl="(?!(?:^|/)\\.\\.?(?:$|/))",DZt="(?!\\.)",Owl=new Set(["[","."]),Mwl=new Set(["..","."]),Hwl=new Set("().*{}+?[]^$\\!"),Ywl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Djr="[^/]",dCs=Djr+"*?",pCs=Djr+"+?",Njr=class e{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?e.#d(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Mwl.has(this.#r[0]))){let B=Owl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?Wwl:Q?DZt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,NZt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#I(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString();return this.#r=[f],this.type=null,this.#t=void 0,[f,(0,NZt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!DZt?"":this.#I(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?DZt:"")+pCs;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?DZt:"")+dCs+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,NZt.unescape)(o),this.#t=!!this.#t,this.#n]}#I(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#d(t,r,n=!1){let a=!1,o="",l=!1;for(let A=0;A{"use strict";Object.defineProperty(xZt,"__esModule",{value:!0});xZt.escape=void 0;var Qwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");xZt.escape=Qwl});var Hue=H(cd=>{"use strict";var Xwl=cd&&cd.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cd,"__esModule",{value:!0});cd.unescape=cd.escape=cd.AST=cd.Minimatch=cd.match=cd.makeRe=cd.braceExpand=cd.defaults=cd.filter=cd.GLOBSTAR=cd.sep=cd.minimatch=void 0;var Jwl=Xwl(cCs()),GZt=lCs(),hCs=kjr(),Uwl=xjr(),Kwl=RZt(),jwl=(e,t,r={})=>((0,GZt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new k0e(t,r).match(e));cd.minimatch=jwl;var zwl=/^\*+([^+@!?\*\[\(]*)$/,qwl=e=>t=>!t.startsWith(".")&&t.endsWith(e),$wl=e=>t=>t.endsWith(e),eTl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),tTl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),rTl=/^\*+\.\*+$/,nTl=e=>!e.startsWith(".")&&e.includes("."),iTl=e=>e!=="."&&e!==".."&&e.includes("."),sTl=/^\.\*+$/,oTl=e=>e!=="."&&e!==".."&&e.startsWith("."),aTl=/^\*+$/,cTl=e=>e.length!==0&&!e.startsWith("."),lTl=e=>e.length!==0&&e!=="."&&e!=="..",uTl=/^\?+([^+@!?\*\[\(]*)?$/,gTl=([e,t=""])=>{let r=mCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},ATl=([e,t=""])=>{let r=CCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},dTl=([e,t=""])=>{let r=CCs([e]);return t?n=>r(n)&&n.endsWith(t):r},pTl=([e,t=""])=>{let r=mCs([e]);return t?n=>r(n)&&n.endsWith(t):r},mCs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},CCs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},_Cs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",fCs={win32:{sep:"\\"},posix:{sep:"/"}};cd.sep=_Cs==="win32"?fCs.win32.sep:fCs.posix.sep;cd.minimatch.sep=cd.sep;cd.GLOBSTAR=Symbol("globstar **");cd.minimatch.GLOBSTAR=cd.GLOBSTAR;var fTl="[^/]",ITl=fTl+"*?",hTl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",mTl="(?:(?!(?:\\/|^)\\.).)*?",CTl=(e,t={})=>r=>(0,cd.minimatch)(r,e,t);cd.filter=CTl;cd.minimatch.filter=cd.filter;var OH=(e,t={})=>Object.assign({},e,t),_Tl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return cd.minimatch;let t=cd.minimatch;return Object.assign((n,a,o={})=>t(n,a,OH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,OH(e,o))}static defaults(a){return t.defaults(OH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,OH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,OH(e,o))}},unescape:(n,a={})=>t.unescape(n,OH(e,a)),escape:(n,a={})=>t.escape(n,OH(e,a)),filter:(n,a={})=>t.filter(n,OH(e,a)),defaults:n=>t.defaults(OH(e,n)),makeRe:(n,a={})=>t.makeRe(n,OH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,OH(e,a)),match:(n,a,o={})=>t.match(n,a,OH(e,o)),sep:t.sep,GLOBSTAR:cd.GLOBSTAR})};cd.defaults=_Tl;cd.minimatch.defaults=cd.defaults;var yTl=(e,t={})=>((0,GZt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,Jwl.default)(e));cd.braceExpand=yTl;cd.minimatch.braceExpand=cd.braceExpand;var bTl=(e,t={})=>new k0e(e,t).makeRe();cd.makeRe=bTl;cd.minimatch.makeRe=cd.makeRe;var ETl=(e,t,r={})=>{let n=new k0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};cd.match=ETl;cd.minimatch.match=cd.match;var ICs=/[?*]|[+@!]\(.*?\)|\[|\]/,STl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,r={}){(0,GZt.assertValidPattern)(t),r=r||{},this.options=r,this.pattern=t,this.platform=r.platform||_Cs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!ICs.test(o[2]))&&!ICs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;ane?r=r.slice(ce):ne>ce&&(t=t.slice(ne)))}}let{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:r}),this.debug("matchOne",t.length,r.length);for(var l=0,A=0,f=t.length,I=r.length;l>> no match, partial?`,t,E,r,N),E===f))}let F;if(typeof C=="string"?(F=b===C,this.debug("string match",C,b,F)):(F=C.test(b),this.debug("pattern match",C,b,F)),!F)return!1}if(l===f&&A===I)return!0;if(l===f)return n;if(A===I)return l===f-1&&t[l]==="";throw new Error("wtf?")}braceExpand(){return(0,cd.braceExpand)(this.pattern,this.options)}parse(t){(0,GZt.assertValidPattern)(t);let r=this.options;if(t==="**")return cd.GLOBSTAR;if(t==="")return"";let n,a=null;(n=t.match(oTl))?a=r.dot?cTl:aTl:(n=t.match(jwl))?a=(r.nocase?r.dot?eTl:$wl:r.dot?qwl:zwl)(n[1]):(n=t.match(lTl))?a=(r.nocase?r.dot?gTl:uTl:r.dot?ATl:dTl)(n):(n=t.match(tTl))?a=r.dot?nTl:rTl:(n=t.match(iTl))&&(a=sTl);let o=hCs.AST.fromGlob(t,this.options).toMMPattern();return a&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:a}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?fTl:r.dot?ITl:hTl,a=new Set(r.nocase?["i"]:[]),o=t.map(f=>{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?ETl(C):C===cd.GLOBSTAR?cd.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==cd.GLOBSTAR||N===cd.GLOBSTAR||(N===void 0?E!==void 0&&E!==cd.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==cd.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=cd.GLOBSTAR))}),I.filter(C=>C!==cd.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var wTl=z0&&z0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),TTl=z0&&z0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),RTl=z0&&z0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&wTl(t,e,r);return TTl(t,e),t};Object.defineProperty(z0,"__esModule",{value:!0});z0.PathScurry=z0.Path=z0.PathScurryDarwin=z0.PathScurryPosix=z0.PathScurryWin32=z0.PathScurryBase=z0.PathPosix=z0.PathWin32=z0.PathBase=z0.ChildrenCache=z0.ResolveCache=void 0;var BCs=yIe(),PZt=wt("node:path"),NTl=wt("node:url"),ize=wt("fs"),DTl=RTl(wt("node:fs")),kTl=ize.realpathSync.native,FZt=wt("node:fs/promises"),yCs=rF(),sze={lstatSync:ize.lstatSync,readdir:ize.readdir,readdirSync:ize.readdirSync,readlinkSync:ize.readlinkSync,realpathSync:kTl,promises:{lstat:FZt.lstat,readdir:FZt.readdir,readlink:FZt.readlink,realpath:FZt.realpath}},wCs=e=>!e||e===sze||e===DTl?sze:{...sze,...e,promises:{...sze.promises,...e.promises||{}}},TCs=/^\\\\\?\\([a-z]:)\\?$/i,xTl=e=>e.replace(/\//g,"\\").replace(TCs,"$1\\"),GTl=/[\\\/]/,HH=0,RCs=1,NCs=2,G6=4,DCs=6,kCs=8,x0e=10,xCs=12,MH=15,nze=~MH,Gjr=16,bCs=32,oze=64,rJ=128,ZZt=256,VZt=512,ECs=oze|rJ|VZt,FTl=1023,Fjr=e=>e.isFile()?kCs:e.isDirectory()?G6:e.isSymbolicLink()?x0e:e.isCharacterDevice()?NCs:e.isBlockDevice()?DCs:e.isSocket()?xCs:e.isFIFO()?RCs:HH,SCs=new Map,aze=e=>{let t=SCs.get(e);if(t)return t;let r=e.normalize("NFKD");return SCs.set(e,r),r},vCs=new Map,LZt=e=>{let t=vCs.get(e);if(t)return t;let r=aze(e.toLowerCase());return vCs.set(e,r),r},cze=class extends BCs.LRUCache{constructor(){super({max:256})}};z0.ResolveCache=cze;var WZt=class extends BCs.LRUCache{constructor(t=16*1024){super({maxSize:t,sizeCalculation:r=>r.length+1})}};z0.ChildrenCache=WZt;var GCs=Symbol("PathScurry setAsCwd"),fx=class{name;root;roots;parent;nocase;isCWD=!1;#e;#t;get dev(){return this.#t}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#i;get uid(){return this.#i}#s;get gid(){return this.#s}#o;get rdev(){return this.#o}#g;get blksize(){return this.#g}#l;get ino(){return this.#l}#u;get size(){return this.#u}#a;get blocks(){return this.#a}#m;get atimeMs(){return this.#m}#f;get mtimeMs(){return this.#f}#I;get ctimeMs(){return this.#I}#d;get birthtimeMs(){return this.#d}#b;get atime(){return this.#b}#h;get mtime(){return this.#h}#S;get ctime(){return this.#S}#v;get birthtime(){return this.#v}#C;#E;#_;#p;#B;#w;#c;#k;#y;#N;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,r=HH,n,a,o,l,A){this.name=t,this.#C=o?LZt(t):aze(t),this.#c=r&FTl,this.nocase=o,this.roots=a,this.root=n||this,this.#k=l,this.#_=A.fullpath,this.#B=A.relative,this.#w=A.relativePosix,this.parent=A.parent,this.parent?this.#e=this.parent.#e:this.#e=wCs(A.fs)}depth(){return this.#E!==void 0?this.#E:this.parent?this.#E=this.parent.depth()+1:this.#E=0}childrenCache(){return this.#k}resolve(t){if(!t)return this;let r=this.getRootString(t),a=t.substring(r.length).split(this.splitSep);return r?this.getRoot(r).#x(a):this.#x(a)}#x(t){let r=this;for(let n of t)r=r.child(n);return r}children(){let t=this.#k.get(this);if(t)return t;let r=Object.assign([],{provisional:0});return this.#k.set(this,r),this.#c&=~Gjr,r}child(t,r){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let n=this.children(),a=this.nocase?LZt(t):aze(t);for(let f of n)if(f.#C===a)return f;let o=this.parent?this.sep:"",l=this.#_?this.#_+o+t:void 0,A=this.newChild(t,HH,{...r,parent:this,fullpath:l});return this.canReaddir()||(A.#c|=rJ),n.push(A),A}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let t=this.name,r=this.parent;if(!r)return this.#B=this.name;let n=r.relative();return n+(!n||!r.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#w!==void 0)return this.#w;let t=this.name,r=this.parent;if(!r)return this.#w=this.fullpathPosix();let n=r.relativePosix();return n+(!n||!r.parent?"":"/")+t}fullpath(){if(this.#_!==void 0)return this.#_;let t=this.name,r=this.parent;if(!r)return this.#_=this.name;let a=r.fullpath()+(r.parent?this.sep:"")+t;return this.#_=a}fullpathPosix(){if(this.#p!==void 0)return this.#p;if(this.sep==="/")return this.#p=this.fullpath();if(!this.parent){let a=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(a)?this.#p=`//?/${a}`:this.#p=a}let t=this.parent,r=t.fullpathPosix(),n=r+(!r||!t.parent?"":"/")+this.name;return this.#p=n}isUnknown(){return(this.#c&MH)===HH}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#c&MH)===kCs}isDirectory(){return(this.#c&MH)===G6}isCharacterDevice(){return(this.#c&MH)===NCs}isBlockDevice(){return(this.#c&MH)===DCs}isFIFO(){return(this.#c&MH)===RCs}isSocket(){return(this.#c&MH)===xCs}isSymbolicLink(){return(this.#c&x0e)===x0e}lstatCached(){return this.#c&bCs?this:void 0}readlinkCached(){return this.#y}realpathCached(){return this.#N}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#y)return!0;if(!this.parent)return!1;let t=this.#c&MH;return!(t!==HH&&t!==x0e||this.#c&ZZt||this.#c&rJ)}calledReaddir(){return!!(this.#c&Gjr)}isENOENT(){return!!(this.#c&rJ)}isNamed(t){return this.nocase?this.#C===LZt(t):this.#C===aze(t)}async readlink(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=await this.#e.promises.readlink(this.fullpath()),n=(await this.parent.realpath())?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}readlinkSync(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=this.#e.readlinkSync(this.fullpath()),n=this.parent.realpathSync()?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}#G(t){this.#c|=Gjr;for(let r=t.provisional;rn(null,t))}readdirCB(t,r=!1){if(!this.canReaddir()){r?t(null,[]):queueMicrotask(()=>t(null,[]));return}let n=this.children();if(this.calledReaddir()){let o=n.slice(0,n.provisional);r?t(null,o):queueMicrotask(()=>t(null,o));return}if(this.#H.push(t),this.#Y)return;this.#Y=!0;let a=this.fullpath();this.#e.readdir(a,{withFileTypes:!0},(o,l)=>{if(o)this.#L(o.code),n.provisional=0;else{for(let A of l)this.#P(A,n);this.#G(n)}this.#X(n.slice(0,n.provisional))})}#M;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();if(this.#M)await this.#M;else{let n=()=>{};this.#M=new Promise(a=>n=a);try{for(let a of await this.#e.promises.readdir(r,{withFileTypes:!0}))this.#P(a,t);this.#G(t)}catch(a){this.#L(a.code),t.provisional=0}this.#M=void 0,n()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();try{for(let n of this.#e.readdirSync(r,{withFileTypes:!0}))this.#P(n,t);this.#G(t)}catch(n){this.#L(n.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#c&ECs)return!1;let t=MH&this.#c;return t===HH||t===G6||t===x0e}shouldWalk(t,r){return(this.#c&G6)===G6&&!(this.#c&ECs)&&!t.has(this)&&(!r||r(this))}async realpath(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=await this.#e.promises.realpath(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}realpathSync(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=this.#e.realpathSync(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}[GCs](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let r=new Set([]),n=[],a=this;for(;a&&a.parent;)r.add(a),a.#B=n.join(this.sep),a.#w=n.join("/"),a=a.parent,n.push("..");for(a=t;a&&a.parent&&!r.has(a);)a.#B=void 0,a.#w=void 0,a=a.parent}};z0.PathBase=fx;var lze=class e extends fx{sep="\\";splitSep=GTl;constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}getRootString(t){return PZt.win32.parse(t).root}getRoot(t){if(t=xTl(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,n]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=n;return this.roots[t]=new Aze(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(TCs,"$1\\"),t===r}};z0.PathWin32=lze;var uze=class e extends fx{splitSep="/";sep="/";constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}};z0.PathPosix=uze;var gze=class{root;rootPath;roots;cwd;#e;#t;#n;nocase;#r;constructor(t=process.cwd(),r,n,{nocase:a,childrenCacheSize:o=16*1024,fs:l=sze}={}){this.#r=wCs(l),(t instanceof URL||t.startsWith("file://"))&&(t=(0,NTl.fileURLToPath)(t));let A=r.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(A),this.#e=new cze,this.#t=new cze,this.#n=new WZt(o);let f=A.substring(this.rootPath.length).split(n);if(f.length===1&&!f[0]&&f.pop(),a===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=a,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let I=this.root,C=f.length-1,b=r.sep,E=this.rootPath,N=!1;for(let B of f){let F=C--;I=I.child(B,{relative:new Array(F).fill("..").join(b),relativePosix:new Array(F).fill("..").join("/"),fullpath:E+=(N?"":b)+B}),N=!0}this.cwd=I}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#e.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpath();return this.#e.set(r,a),a}resolvePosix(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#t.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpathPosix();return this.#t.set(r,a),a}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n}=r;if(t.canReaddir()){let a=await t.readdir();return n?a:a.map(o=>o.name)}else return[]}readdirSync(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0}=r;return t.canReaddir()?n?t.readdirSync():t.readdirSync().map(a=>a.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.readlink();return r?n:n?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.readlinkSync();return r?n:n?.fullpath()}async realpath(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.realpath();return r?n:n?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.realpathSync();return r?n:n?.fullpath()}async walk(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set,I=(b,E)=>{f.add(b),b.readdirCB((N,B)=>{if(N)return E(N);let F=B.length;if(!F)return E();let Q=()=>{--F===0&&E()};for(let X of B)(!o||o(X))&&A.push(n?X:X.fullpath()),a&&X.isSymbolicLink()?X.realpath().then(ae=>ae?.isUnknown()?ae.lstat():ae).then(ae=>ae?.shouldWalk(f,l)?I(ae,Q):Q()):X.shouldWalk(f,l)?I(X,Q):Q()},!0)},C=t;return new Promise((b,E)=>{I(C,N=>{if(N)return E(N);b(A)})})}walkSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set([t]);for(let I of f){let C=I.readdirSync();for(let b of C){(!o||o(b))&&A.push(n?b:b.fullpath());let E=b;if(b.isSymbolicLink()){if(!(a&&(E=b.realpathSync())))continue;E.isUnknown()&&E.lstatSync()}E.shouldWalk(f,l)&&f.add(E)}}return A}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,r={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd),this.stream(t,r)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r;(!o||o(t))&&(yield n?t:t.fullpath());let A=new Set([t]);for(let f of A){let I=f.readdirSync();for(let C of I){(!o||o(C))&&(yield n?C:C.fullpath());let b=C;if(C.isSymbolicLink()){if(!(a&&(b=C.realpathSync())))continue;b.isUnknown()&&b.lstatSync()}b.shouldWalk(A,l)&&A.add(b)}}}stream(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0});(!o||o(t))&&A.write(n?t:t.fullpath());let f=new Set,I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=(Q,X,ae=!1)=>{if(Q)return A.emit("error",Q);if(a&&!ae){let ne=[];for(let ce of X)ce.isSymbolicLink()&&ne.push(ce.realpath().then(fe=>fe?.isUnknown()?fe.lstat():fe));if(ne.length){Promise.all(ne).then(()=>B(null,X,!0));return}}for(let ne of X)ne&&(!o||o(ne))&&(A.write(n?ne:ne.fullpath())||(E=!0));C--;for(let ne of X){let ce=ne.realpathCached()||ne;ce.shouldWalk(f,l)&&I.push(ce)}E&&!A.flowing?A.once("drain",b):F||b()},F=!0;N.readdirCB(B,!0),F=!1}};return b(),A}streamSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0}),f=new Set;(!o||o(t))&&A.write(n?t:t.fullpath());let I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=N.readdirSync();for(let F of B)(!o||o(F))&&(A.write(n?F:F.fullpath())||(E=!0));C--;for(let F of B){let Q=F;if(F.isSymbolicLink()){if(!(a&&(Q=F.realpathSync())))continue;Q.isUnknown()&&Q.lstatSync()}Q.shouldWalk(f,l)&&I.push(Q)}}E&&!A.flowing&&A.once("drain",b)};return b(),A}chdir(t=this.cwd){let r=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[GCs](r)}};z0.PathScurryBase=gze;var Aze=class extends gze{sep="\\";constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,PZt.win32,"\\",{...r,nocase:n}),this.nocase=n;for(let a=this.cwd;a;a=a.parent)a.nocase=this.nocase}parseRootPath(t){return PZt.win32.parse(t).root.toUpperCase()}newRoot(t){return new lze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}};z0.PathScurryWin32=Aze;var dze=class extends gze{sep="/";constructor(t=process.cwd(),r={}){let{nocase:n=!1}=r;super(t,PZt.posix,"/",{...r,nocase:n}),this.nocase=n}parseRootPath(t){return"/"}newRoot(t){return new uze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}};z0.PathScurryPosix=dze;var OZt=class extends dze{constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,{...r,nocase:n})}};z0.PathScurryDarwin=OZt;z0.Path=process.platform==="win32"?lze:uze;z0.PathScurry=process.platform==="win32"?Aze:process.platform==="darwin"?OZt:dze});var Ljr=H(MZt=>{"use strict";Object.defineProperty(MZt,"__esModule",{value:!0});MZt.Pattern=void 0;var ZTl=Hue(),LTl=e=>e.length>=1,VTl=e=>e.length>=1,Zjr=class e{#e;#t;#n;length;#r;#i;#s;#o;#g;#l;#u=!0;constructor(t,r,n,a){if(!LTl(t))throw new TypeError("empty pattern list");if(!VTl(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,n<0||n>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#t=r,this.#n=n,this.#r=a,this.#n===0){if(this.isUNC()){let[o,l,A,f,...I]=this.#e,[C,b,E,N,...B]=this.#t;I[0]===""&&(I.shift(),B.shift());let F=[o,l,A,f,""].join("/"),Q=[C,b,E,N,""].join("/");this.#e=[F,...I],this.#t=[Q,...B],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[o,...l]=this.#e,[A,...f]=this.#t;l[0]===""&&(l.shift(),f.shift());let I=o+"/",C=A+"/";this.#e=[I,...l],this.#t=[C,...f],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===ZTl.GLOBSTAR}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#s=this.#s||(this.#n===0?this.isAbsolute()?this.#t[0]+this.#t.slice(1).join("/"):this.#t.join("/"):this.#t.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#i!==void 0?this.#i:this.hasMore()?(this.#i=new e(this.#e,this.#t,this.#n+1,this.#r),this.#i.#l=this.#l,this.#i.#g=this.#g,this.#i.#o=this.#o,this.#i):this.#i=null}isUNC(){let t=this.#e;return this.#g!==void 0?this.#g:this.#g=this.#r==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#o!==void 0?this.#o:this.#o=this.#r==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#l!==void 0?this.#l:this.#l=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};MZt.Pattern=Zjr});var Pjr=H(HZt=>{"use strict";Object.defineProperty(HZt,"__esModule",{value:!0});HZt.Ignore=void 0;var ZCs=Hue(),PTl=Ljr(),WTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Vjr=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:r,nocase:n,noext:a,noglobstar:o,platform:l=WTl}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=l,this.mmopts={dot:!0,nobrace:r,nocase:n,noext:a,noglobstar:o,optimizationLevel:2,platform:l,nocomment:!0,nonegate:!0};for(let A of t)this.add(A)}add(t){let r=new ZCs.Minimatch(t,this.mmopts);for(let n=0;n{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});F6.Processor=F6.SubWalks=F6.MatchRecord=F6.HasWalkedCache=void 0;var LCs=Hue(),YZt=class e{store;constructor(t=new Map){this.store=t}copy(){return new e(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let n=t.fullpath(),a=this.store.get(n);a?a.add(r.globString()):this.store.set(n,new Set([r.globString()]))}};F6.HasWalkedCache=YZt;var QZt=class{store=new Map;add(t,r,n){let a=(r?2:0)|(n?1:0),o=this.store.get(t);this.store.set(t,o===void 0?a:a&o)}entries(){return[...this.store.entries()].map(([t,r])=>[t,!!(r&2),!!(r&1)])}};F6.MatchRecord=QZt;var XZt=class{store=new Map;add(t,r){if(!t.canReaddir())return;let n=this.store.get(t);n?n.find(a=>a.globString()===r.globString())||n.push(r):this.store.set(t,[r])}get(t){let r=this.store.get(t);if(!r)throw new Error("attempting to walk unknown path");return r}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}};F6.SubWalks=XZt;var Wjr=class e{hasWalkedCache;matches=new QZt;subwalks=new XZt;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new YZt}processPatterns(t,r){this.patterns=r;let n=r.map(a=>[t,a]);for(let[a,o]of n){this.hasWalkedCache.storeWalked(a,o);let l=o.root(),A=o.isAbsolute()&&this.opts.absolute!==!1;if(l){a=a.resolve(l==="/"&&this.opts.root!==void 0?this.opts.root:l);let b=o.rest();if(b)o=b;else{this.matches.add(a,!0,!1);continue}}if(a.isENOENT())continue;let f,I,C=!1;for(;typeof(f=o.pattern())=="string"&&(I=o.rest());)a=a.resolve(f),o=I,C=!0;if(f=o.pattern(),I=o.rest(),C){if(this.hasWalkedCache.hasWalked(a,o))continue;this.hasWalkedCache.storeWalked(a,o)}if(typeof f=="string"){let b=f===".."||f===""||f===".";this.matches.add(a.resolve(f),A,b);continue}else if(f===LCs.GLOBSTAR){(!a.isSymbolicLink()||this.follow||o.checkFollowGlobstar())&&this.subwalks.add(a,o);let b=I?.pattern(),E=I?.rest();if(!I||(b===""||b===".")&&!E)this.matches.add(a,A,b===""||b===".");else if(b===".."){let N=a.parent||a;E?this.hasWalkedCache.hasWalked(N,E)||this.subwalks.add(N,E):this.matches.add(N,A,!0)}}else f instanceof RegExp&&this.subwalks.add(a,o)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new e(this.opts,this.hasWalkedCache)}filterEntries(t,r){let n=this.subwalks.get(t),a=this.child();for(let o of r)for(let l of n){let A=l.isAbsolute(),f=l.pattern(),I=l.rest();f===LCs.GLOBSTAR?a.testGlobstar(o,l,I,A):f instanceof RegExp?a.testRegExp(o,f,I,A):a.testString(o,f,I,A)}return a}testGlobstar(t,r,n,a){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,a,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(n&&r.checkFollowGlobstar()?this.subwalks.add(t,n):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),n){let o=n.pattern();if(typeof o=="string"&&o!==".."&&o!==""&&o!==".")this.testString(t,o,n.rest(),a);else if(o===".."){let l=t.parent||t;this.subwalks.add(l,n)}else o instanceof RegExp&&this.testRegExp(t,o,n.rest(),a)}}testRegExp(t,r,n,a){r.test(t.name)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}testString(t,r,n,a){t.isNamed(r)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}};F6.Processor=Wjr});var OCs=H(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});Yue.GlobStream=Yue.GlobWalker=Yue.GlobUtil=void 0;var OTl=rF(),PCs=Pjr(),WCs=VCs(),MTl=(e,t)=>typeof e=="string"?new PCs.Ignore([e],t):Array.isArray(e)?new PCs.Ignore(e,t):e,pze=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#t;#n;signal;maxDepth;includeChildMatches;constructor(t,r,n){if(this.patterns=t,this.path=r,this.opts=n,this.#n=!n.posix&&n.platform==="win32"?"\\":"/",this.includeChildMatches=n.includeChildMatches!==!1,(n.ignore||!this.includeChildMatches)&&(this.#t=MTl(n.ignore??[],n),!this.includeChildMatches&&typeof this.#t.add!="function")){let a="cannot ignore child matches, ignore lacks add() method.";throw new Error(a)}this.maxDepth=n.maxDepth||1/0,n.signal&&(this.signal=n.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#r(t){return this.seen.has(t)||!!this.#t?.ignored?.(t)}#i(t){return!!this.#t?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#e.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#e.push(t):t())}async matchCheck(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||await t.realpath(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=await o.realpath();l&&(l.isUnknown()||this.opts.stat)&&await l.lstat()}return this.matchCheckTest(o,r)}matchCheckTest(t,r){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!r||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||t.realpathSync(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=o.realpathSync();l&&(l?.isUnknown()||this.opts.stat)&&l.lstatSync()}return this.matchCheckTest(o,r)}matchFinish(t,r){if(this.#r(t))return;if(!this.includeChildMatches&&this.#t?.add){let o=`${t.relativePosix()}/**`;this.#t.add(o)}let n=this.opts.absolute===void 0?r:this.opts.absolute;this.seen.add(t);let a=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(n){let o=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(o+a)}else{let o=this.opts.posix?t.relativePosix():t.relative(),l=this.opts.dotRelative&&!o.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(o?l+o+a:"."+a)}}async match(t,r,n){let a=await this.matchCheck(t,n);a&&this.matchFinish(a,r)}matchSync(t,r,n){let a=this.matchCheckSync(t,n);a&&this.matchFinish(a,r)}walkCB(t,r,n){this.signal?.aborted&&n(),this.walkCB2(t,r,new WCs.Processor(this.opts),n)}walkCB2(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirCached();A.calledReaddir()?this.walkCB3(A,f,n,l):A.readdirCB((I,C)=>this.walkCB3(A,C,n,l),!0)}l()}walkCB3(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let[A,f]of n.subwalks.entries())o++,this.walkCB2(A,f,n.child(),l);l()}walkCBSync(t,r,n){this.signal?.aborted&&n(),this.walkCB2Sync(t,r,new WCs.Processor(this.opts),n)}walkCB2Sync(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2Sync(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirSync();this.walkCB3Sync(A,f,n,l)}l()}walkCB3Sync(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let[A,f]of n.subwalks.entries())o++,this.walkCB2Sync(A,f,n.child(),l);l()}};Yue.GlobUtil=pze;var Ojr=class extends pze{matches=new Set;constructor(t,r,n){super(t,r,n)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,r)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?r(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}};Yue.GlobWalker=Ojr;var Mjr=class extends pze{results;constructor(t,r,n){super(t,r,n),this.results=new OTl.Minipass({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};Yue.GlobStream=Mjr});var Yjr=H(KZt=>{"use strict";Object.defineProperty(KZt,"__esModule",{value:!0});KZt.Glob=void 0;var HTl=Hue(),YTl=wt("node:url"),JZt=FCs(),QTl=Ljr(),UZt=OCs(),XTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Hjr=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,r){if(!r)throw new TypeError("glob options required");if(this.withFileTypes=!!r.withFileTypes,this.signal=r.signal,this.follow=!!r.follow,this.dot=!!r.dot,this.dotRelative=!!r.dotRelative,this.nodir=!!r.nodir,this.mark=!!r.mark,r.cwd?(r.cwd instanceof URL||r.cwd.startsWith("file://"))&&(r.cwd=(0,YTl.fileURLToPath)(r.cwd)):this.cwd="",this.cwd=r.cwd||"",this.root=r.root,this.magicalBraces=!!r.magicalBraces,this.nobrace=!!r.nobrace,this.noext=!!r.noext,this.realpath=!!r.realpath,this.absolute=r.absolute,this.includeChildMatches=r.includeChildMatches!==!1,this.noglobstar=!!r.noglobstar,this.matchBase=!!r.matchBase,this.maxDepth=typeof r.maxDepth=="number"?r.maxDepth:1/0,this.stat=!!r.stat,this.ignore=r.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(f=>f.replace(/\\/g,"/"))),this.matchBase){if(r.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(f=>f.includes("/")?f:`./**/${f}`)}if(this.pattern=t,this.platform=r.platform||XTl,this.opts={...r,platform:this.platform},r.scurry){if(this.scurry=r.scurry,r.nocase!==void 0&&r.nocase!==r.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let f=r.platform==="win32"?JZt.PathScurryWin32:r.platform==="darwin"?JZt.PathScurryDarwin:r.platform?JZt.PathScurryPosix:JZt.PathScurry;this.scurry=new f(this.cwd,{nocase:r.nocase,fs:r.fs})}this.nocase=this.scurry.nocase;let n=this.platform==="darwin"||this.platform==="win32",a={...r,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:n,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},o=this.pattern.map(f=>new HTl.Minimatch(f,a)),[l,A]=o.reduce((f,I)=>(f[0].push(...I.set),f[1].push(...I.globParts),f),[[],[]]);this.patterns=l.map((f,I)=>{let C=A[I];if(!C)throw new Error("invalid pattern object");return new QTl.Pattern(f,C,0,this.platform)})}async walk(){return[...await new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};KZt.Glob=Hjr});var Qjr=H(jZt=>{"use strict";Object.defineProperty(jZt,"__esModule",{value:!0});jZt.hasMagic=void 0;var JTl=Hue(),UTl=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new JTl.Minimatch(r,t).hasMagic())return!0;return!1};jZt.hasMagic=UTl});var QCs=H(lC=>{"use strict";Object.defineProperty(lC,"__esModule",{value:!0});lC.glob=lC.sync=lC.iterate=lC.iterateSync=lC.stream=lC.streamSync=lC.Ignore=lC.hasMagic=lC.Glob=lC.unescape=lC.escape=void 0;lC.globStreamSync=fze;lC.globStream=Xjr;lC.globSync=Jjr;lC.globIterateSync=Ize;lC.globIterate=Ujr;var MCs=Hue(),G0e=Yjr(),KTl=Qjr(),YCs=Hue();Object.defineProperty(lC,"escape",{enumerable:!0,get:function(){return YCs.escape}});Object.defineProperty(lC,"unescape",{enumerable:!0,get:function(){return YCs.unescape}});var jTl=Yjr();Object.defineProperty(lC,"Glob",{enumerable:!0,get:function(){return jTl.Glob}});var zTl=Qjr();Object.defineProperty(lC,"hasMagic",{enumerable:!0,get:function(){return zTl.hasMagic}});var qTl=Pjr();Object.defineProperty(lC,"Ignore",{enumerable:!0,get:function(){return qTl.Ignore}});function fze(e,t={}){return new G0e.Glob(e,t).streamSync()}function Xjr(e,t={}){return new G0e.Glob(e,t).stream()}function Jjr(e,t={}){return new G0e.Glob(e,t).walkSync()}async function HCs(e,t={}){return new G0e.Glob(e,t).walk()}function Ize(e,t={}){return new G0e.Glob(e,t).iterateSync()}function Ujr(e,t={}){return new G0e.Glob(e,t).iterate()}lC.streamSync=fze;lC.stream=Object.assign(Xjr,{sync:fze});lC.iterateSync=Ize;lC.iterate=Object.assign(Ujr,{sync:Ize});lC.sync=Object.assign(Jjr,{stream:fze,iterate:Ize});lC.glob=Object.assign(HCs,{glob:HCs,globSync:Jjr,sync:lC.sync,globStream:Xjr,stream:lC.stream,globStreamSync:fze,streamSync:lC.streamSync,globIterate:Ujr,iterate:lC.iterate,globIterateSync:Ize,iterateSync:lC.iterateSync,Glob:G0e.Glob,hasMagic:KTl.hasMagic,escape:MCs.escape,unescape:MCs.unescape});lC.glob.glob=lC.glob});var Kjr=H((Isg,JCs)=>{"use strict";var{glob:$Tl}=QCs(),XCs=wt("path"),eRl=e=>e.split(XCs.win32.sep).join(XCs.posix.sep);JCs.exports=(e,t)=>$Tl(eRl(e),t)});var KCs=H((hsg,UCs)=>{"use strict";var tRl=wt("fs/promises"),rRl=qGe(),{hasContent:nRl}=yjr();UCs.exports=iRl;async function iRl(e,t){let r=await nRl(e,t);return r&&r.sri?(await tRl.rm(rRl(e,r.sri),{recursive:!0,force:!0}),!0):!1}});var zCs=H((msg,hze)=>{"use strict";var{rm:sRl}=wt("fs/promises"),oRl=Kjr(),aRl=eFe(),jjr=U7e(),cRl=wt("path"),lRl=KCs();hze.exports=jCs;hze.exports.entry=jCs;function jCs(e,t,r){return jjr.clearMemoized(),aRl.delete(e,t,r)}hze.exports.content=uRl;function uRl(e,t){return jjr.clearMemoized(),lRl(e,t)}hze.exports.all=gRl;async function gRl(e){jjr.clearMemoized();let t=await oRl(cRl.join(e,"*(content-*|index-*)"),{silent:!0,nosort:!0});return Promise.all(t.map(r=>sRl(r,{recursive:!0,force:!0})))}});var $Cs=H((Csg,e6r)=>{"use strict";var{mkdir:ARl,readFile:dRl,rm:qjr,stat:$jr,truncate:pRl,writeFile:fRl}=wt("fs/promises"),qCs=qGe(),IRl=vZt(),hRl=Kjr(),lFe=eFe(),zZt=wt("path"),zjr=Jte(),mRl=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),CRl=e=>({concurrency:20,log:{silly(){}},...e});e6r.exports=_Rl;async function _Rl(e,t){t=CRl(t),t.log.silly("verify","verifying cache at",e);let r=[yRl,ERl,SRl,BRl,TRl,RRl,bRl],n={};for(let a of r){let o=a.name,l=new Date,A=await a(e,t);A&&Object.keys(A).forEach(I=>{n[I]=A[I]});let f=new Date;n.runTime||(n.runTime={}),n.runTime[o]=f-l}return n.runTime.total=n.endTime-n.startTime,t.log.silly("verify","verification finished for",e,"in",`${n.runTime.total}ms`),n}async function yRl(){return{startTime:new Date}}async function bRl(){return{endTime:new Date}}async function ERl(e,t){return t.log.silly("verify","fixing cache permissions"),await ARl(e,{recursive:!0}),null}async function SRl(e,t){t.log.silly("verify","garbage collecting content");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=lFe.lsStream(e),a=new Set;n.on("data",f=>{if(t.filter&&!t.filter(f))return;let I=zjr.parse(f.integrity);for(let C in I)a.add(I[C].toString())}),await new Promise((f,I)=>{n.on("end",f).on("error",I)});let o=qCs.contentDir(e),l=await hRl(zZt.join(o,"**"),{follow:!1,nodir:!0,nosort:!0}),A={verifiedContent:0,reclaimedCount:0,reclaimedSize:0,badContentCount:0,keptSize:0};return await r(l,async f=>{let I=f.split(/[/\\]/),C=I.slice(I.length-3).join(""),b=I[I.length-4],E=zjr.fromHex(C,b);if(a.has(E.toString())){let N=await vRl(f,E);N.valid?(A.verifiedContent++,A.keptSize+=N.size):(A.reclaimedCount++,A.badContentCount++,A.reclaimedSize+=N.size)}else{A.reclaimedCount++;let N=await $jr(f);await qjr(f,{recursive:!0,force:!0}),A.reclaimedSize+=N.size}return A},{concurrency:t.concurrency}),A}async function vRl(e,t){let r={};try{let{size:n}=await $jr(e);r.size=n,r.valid=!0,await zjr.checkStream(new IRl.ReadStream(e),t)}catch(n){if(n.code==="ENOENT")return{size:0,valid:!1};if(n.code!=="EINTEGRITY")throw n;await qjr(e,{recursive:!0,force:!0}),r.valid=!1}return r}async function BRl(e,t){t.log.silly("verify","rebuilding index");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=await lFe.ls(e),a={missingContent:0,rejectedEntries:0,totalEntries:0},o={};for(let l in n)if(mRl(n,l)){let A=lFe.hashKey(l),f=n[l],I=t.filter&&!t.filter(f);I&&a.rejectedEntries++,o[A]&&!I?o[A].push(f):o[A]&&I||(I?(o[A]=[],o[A]._path=lFe.bucketPath(e,l)):(o[A]=[f],o[A]._path=lFe.bucketPath(e,l)))}return await r(Object.keys(o),l=>wRl(e,o[l],a,t),{concurrency:t.concurrency}),a}async function wRl(e,t,r){await pRl(t._path);for(let n of t){let a=qCs(e,n.integrity);try{await $jr(a),await lFe.insert(e,n.key,n.integrity,{metadata:n.metadata,size:n.size,time:n.time}),r.totalEntries++}catch(o){if(o.code==="ENOENT")r.rejectedEntries++,r.missingContent++;else throw o}}}function TRl(e,t){return t.log.silly("verify","cleaning tmp directory"),qjr(zZt.join(e,"tmp"),{recursive:!0,force:!0})}async function RRl(e,t){let r=zZt.join(e,"_lastverified");return t.log.silly("verify","writing verifile to "+r),fRl(r,`${Date.now()}`)}e6r.exports.lastRun=NRl;async function NRl(e){let t=await dRl(zZt.join(e,"_lastverified"),{encoding:"utf8"});return new Date(+t)}});var t_s=H((_sg,r6r)=>{"use strict";var{withTempDir:DRl}=uZt(),e_s=wt("fs/promises"),t6r=wt("path");r6r.exports.mkdir=kRl;async function kRl(e,t={}){let{tmpPrefix:r}=t,n=t6r.join(e,"tmp");await e_s.mkdir(n,{recursive:!0,owner:"inherit"});let a=`${n}${t6r.sep}${r||""}`;return e_s.mkdtemp(a,{owner:"inherit"})}r6r.exports.withTmp=xRl;function xRl(e,t,r){return r||(r=t,t={}),DRl(t6r.join(e,"tmp"),r,t)}});var s_s=H((ysg,rE)=>{"use strict";var Que=Wms(),r_s=jms(),n6r=zCs(),n_s=$Cs(),{clearMemoized:GRl}=U7e(),i_s=t_s(),qZt=eFe();rE.exports.index={};rE.exports.index.compact=qZt.compact;rE.exports.index.insert=qZt.insert;rE.exports.ls=qZt.ls;rE.exports.ls.stream=qZt.lsStream;rE.exports.get=Que;rE.exports.get.byDigest=Que.byDigest;rE.exports.get.stream=Que.stream;rE.exports.get.stream.byDigest=Que.stream.byDigest;rE.exports.get.copy=Que.copy;rE.exports.get.copy.byDigest=Que.copy.byDigest;rE.exports.get.info=Que.info;rE.exports.get.hasContent=Que.hasContent;rE.exports.put=r_s;rE.exports.put.stream=r_s.stream;rE.exports.rm=n6r.entry;rE.exports.rm.all=n6r.all;rE.exports.rm.entry=rE.exports.rm;rE.exports.rm.content=n6r.content;rE.exports.clearMemoized=GRl;rE.exports.tmp={};rE.exports.tmp.mkdir=i_s.mkdir;rE.exports.tmp.withTmp=i_s.withTmp;rE.exports.verify=n_s;rE.exports.verify.lastRun=n_s.lastRun});var s6r=H((bsg,o_s)=>{"use strict";var FRl=zGe(),i6r=class extends FRl{#e=[];#t=new Map;constructor(t,...r){super(),this.#e=t.events,r.length&&this.push(...r)}on(t,r){return this.#e.includes(t)&&this.#t.has(t)?r(...this.#t.get(t)):super.on(t,r)}emit(t,...r){return this.#e.includes(t)&&this.#t.set(t,r),super.emit(t,...r)}};o_s.exports=i6r});var c_s=H((Esg,a_s)=>{var{URL:ZRl,format:LRl}=wt("url"),VRl={auth:!1,fragment:!1,search:!0,unicode:!1},PRl=e=>{let t=new ZRl(e.url);return`make-fetch-happen:request-cache:${LRl(t,VRl)}`};a_s.exports=PRl});var g_s=H((Ssg,u_s)=>{"use strict";function l_s(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function WRl(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=void 0),t!=null&&(r.code=t);try{return l_s(e,r)}catch{r.message=e.message,r.stack=e.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(e)),l_s(new a,r)}}u_s.exports=WRl});var d_s=H((vsg,A_s)=>{function YH(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}A_s.exports=YH;YH.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};YH.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};YH.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var n=this,a=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r);return this._options.unref&&a.unref(),!0};YH.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};YH.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};YH.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};YH.prototype.start=YH.prototype.try;YH.prototype.errors=function(){return this._errors};YH.prototype.attempts=function(){return this._attempts};YH.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=a,r=l)}return t}});var p_s=H(F0e=>{var ORl=d_s();F0e.operation=function(e){var t=F0e.timeouts(e);return new ORl(t,{forever:e&&e.forever,unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};F0e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],a=0;a{f_s.exports=p_s()});var o6r=H((Tsg,m_s)=>{"use strict";var MRl=g_s(),HRl=I_s(),YRl=Object.prototype.hasOwnProperty;function h_s(e){return e&&e.code==="EPROMISERETRY"&&YRl.call(e,"retried")}function QRl(e,t){var r,n;return typeof e=="object"&&typeof t=="function"&&(r=t,t=e,e=r),n=HRl.operation(t),new Promise(function(a,o){n.attempt(function(l){Promise.resolve().then(function(){return e(function(A){throw h_s(A)&&(A=A.retried),MRl(new Error("Retrying"),"EPROMISERETRY",{retried:A})},l)}).then(a,function(A){h_s(A)&&(A=A.retried,n.retry(A||new Error))||o(A)})})})}m_s.exports=QRl});var a6r=H((Rsg,C_s)=>{var XRl=Symbol("proc-log.meta");C_s.exports={META:XRl,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...e){return process.emit("output","standard",...e)},error:function(...e){return process.emit("output","error",...e)},buffer:function(...e){return process.emit("output","buffer",...e)},flush:function(...e){return process.emit("output","flush",...e)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...e){return process.emit("log","error",...e)},notice:function(...e){return process.emit("log","notice",...e)},warn:function(...e){return process.emit("log","warn",...e)},info:function(...e){return process.emit("log","info",...e)},verbose:function(...e){return process.emit("log","verbose",...e)},http:function(...e){return process.emit("log","http",...e)},silly:function(...e){return process.emit("log","silly",...e)},timing:function(...e){return process.emit("log","timing",...e)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(e,t){process.emit("time","start",e);function r(){return process.emit("time","end",e)}if(typeof t=="function"){let n=t();return n&&n.finally?n.finally(r):(r(),n)}return r},end:function(e){return process.emit("time","end",e)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(e){process.emit("input","start");function t(){return process.emit("input","end")}if(typeof e=="function"){let r=e();return r&&r.finally?r.finally(t):(t(),r)}return t},end:function(){return process.emit("input","end")},read:function(...e){let t,r,n=new Promise((a,o)=>{t=a,r=o});return process.emit("input","read",t,r,...e),n}}}});var c6r=H((Nsg,y_s)=>{"use strict";var{LRUCache:JRl}=yIe(),__s=wt("dns"),$Zt=new JRl({max:50}),URl=({family:e=0,hints:t=__s.ADDRCONFIG,all:r=!1,verbatim:n=void 0,ttl:a=5*60*1e3,lookup:o=__s.lookup})=>({hints:t,lookup:(l,...A)=>{let f=A.pop(),I=A[0]??{},C={family:e,hints:t,all:r,verbatim:n,...typeof I=="number"?{family:I}:I},b=JSON.stringify({hostname:l,...C});if($Zt.has(b)){let E=$Zt.get(b);return process.nextTick(f,null,...E)}o(l,C,(E,...N)=>E?f(E):($Zt.set(b,N,{ttl:a}),f(null,...N)))}});y_s.exports={cache:$Zt,getOptions:URl}});var l6r=H((Dsg,E_s)=>{"use strict";var KRl=c6r(),jRl=e=>{let t=parseInt(e.family??"0",10),r=e.keepAlive??!0,n={keepAliveMsecs:r?1e3:void 0,maxSockets:e.maxSockets??15,maxTotalSockets:1/0,maxFreeSockets:r?256:void 0,scheduling:"fifo",...e,family:t,keepAlive:r,timeouts:{idle:e.timeout??0,connection:0,response:0,transfer:0,...e.timeouts},...KRl.getOptions({family:t,...e.dns})};return delete n.timeout,n},b_s=e=>{let t="",r=Object.entries(e).sort((n,a)=>n[0]-a[0]);for(let[n,a]of r)a==null?a="null":a instanceof URL?a=a.toString():typeof a=="object"&&(a=b_s(a)),t+=`${n}:${a}:`;return t},zRl=({secureEndpoint:e,...t})=>b_s({secureEndpoint:!!e,family:t.family,hints:t.hints,localAddress:t.localAddress,strictSsl:e?!!t.rejectUnauthorized:!1,ca:e?t.ca:null,cert:e?t.cert:null,key:e?t.key:null,keepAlive:t.keepAlive,keepAliveMsecs:t.keepAliveMsecs,maxSockets:t.maxSockets,maxTotalSockets:t.maxTotalSockets,maxFreeSockets:t.maxFreeSockets,scheduling:t.scheduling,timeouts:t.timeouts,proxy:t.proxy});E_s.exports={normalizeOptions:jRl,cacheOptions:zRl}});var B_s=H($V=>{"use strict";var qRl=$V&&$V.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$Rl=$V&&$V.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S_s=$V&&$V.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&qRl(t,e,r);return $Rl(t,e),t};Object.defineProperty($V,"__esModule",{value:!0});$V.req=$V.json=$V.toBuffer=void 0;var eNl=S_s(wt("http")),tNl=S_s(wt("https"));async function v_s(e){let t=0,r=[];for await(let n of e)t+=n.length,r.push(n);return Buffer.concat(r,t)}$V.toBuffer=v_s;async function rNl(e){let r=(await v_s(e)).toString("utf8");try{return JSON.parse(r)}catch(n){let a=n;throw a.message+=` (input: ${r})`,a}}$V.json=rNl;function nNl(e,t={}){let n=((typeof e=="string"?e:e.href).startsWith("https:")?tNl:eNl).request(e,t),a=new Promise((o,l)=>{n.once("response",o).once("error",l).end()});return n.then=a.then.bind(a),n}$V.req=nNl});var mze=H(UO=>{"use strict";var T_s=UO&&UO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iNl=UO&&UO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),R_s=UO&&UO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&T_s(t,e,r);return iNl(t,e),t},sNl=UO&&UO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T_s(t,e,r)};Object.defineProperty(UO,"__esModule",{value:!0});UO.Agent=void 0;var oNl=R_s(wt("net")),w_s=R_s(wt("http")),aNl=wt("https");sNl(B_s(),UO);var Z6=Symbol("AgentBaseInternalState"),u6r=class extends w_s.Agent{constructor(t){super(t),this[Z6]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(` -`).some(n=>n.indexOf("(https.js:")!==-1||n.indexOf("node:https:")!==-1)}incrementSockets(t){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[t]||(this.sockets[t]=[]);let r=new oNl.Socket({writable:!1});return this.sockets[t].push(r),this.totalSocketCount++,r}decrementSockets(t,r){if(!this.sockets[t]||r===null)return;let n=this.sockets[t],a=n.indexOf(r);a!==-1&&(n.splice(a,1),this.totalSocketCount--,n.length===0&&delete this.sockets[t])}getName(t){return(typeof t.secureEndpoint=="boolean"?t.secureEndpoint:this.isSecureEndpoint(t))?aNl.Agent.prototype.getName.call(this,t):super.getName(t)}createSocket(t,r,n){let a={...r,secureEndpoint:this.isSecureEndpoint(r)},o=this.getName(a),l=this.incrementSockets(o);Promise.resolve().then(()=>this.connect(t,a)).then(A=>{if(this.decrementSockets(o,l),A instanceof w_s.Agent)return A.addRequest(t,a);this[Z6].currentSocket=A,super.createSocket(t,r,n)},A=>{this.decrementSockets(o,l),n(A)})}createConnection(){let t=this[Z6].currentSocket;if(this[Z6].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Z6].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Z6]&&(this[Z6].defaultPort=t)}get protocol(){return this[Z6].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Z6]&&(this[Z6].protocol=t)}};UO.Agent=u6r});var k_s=H(QH=>{"use strict";var cNl=QH&&QH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lNl=QH&&QH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),D_s=QH&&QH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&cNl(t,e,r);return lNl(t,e),t},uNl=QH&&QH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QH,"__esModule",{value:!0});QH.HttpProxyAgent=void 0;var gNl=D_s(wt("net")),ANl=D_s(wt("tls")),dNl=uNl(uT()),pNl=wt("events"),fNl=mze(),N_s=wt("url"),uFe=(0,dNl.default)("http-proxy-agent"),eLt=class extends fNl.Agent{constructor(t,r){super(r),this.proxy=typeof t=="string"?new N_s.URL(t):t,this.proxyHeaders=r?.headers??{},uFe("Creating new HttpProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?INl(r,"headers"):null,host:n,port:a}}addRequest(t,r){t._header=null,this.setRequestProps(t,r),super.addRequest(t,r)}setRequestProps(t,r){let{proxy:n}=this,a=r.secureEndpoint?"https:":"http:",o=t.getHeader("host")||"localhost",l=`${a}//${o}`,A=new N_s.URL(t.path,l);r.port!==80&&(A.port=String(r.port)),t.path=String(A);let f=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(n.username||n.password){let I=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;f["Proxy-Authorization"]=`Basic ${Buffer.from(I).toString("base64")}`}f["Proxy-Connection"]||(f["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let I of Object.keys(f)){let C=f[I];C&&t.setHeader(I,C)}}async connect(t,r){t._header=null,t.path.includes("://")||this.setRequestProps(t,r);let n,a;uFe("Regenerating stored HTTP header string for request"),t._implicitHeader(),t.outputData&&t.outputData.length>0&&(uFe("Patching connection write() output buffer with updated header"),n=t.outputData[0].data,a=n.indexOf(`\r +>>> no match, partial?`,t,E,r,N),E===f))}let F;if(typeof C=="string"?(F=b===C,this.debug("string match",C,b,F)):(F=C.test(b),this.debug("pattern match",C,b,F)),!F)return!1}if(l===f&&A===I)return!0;if(l===f)return n;if(A===I)return l===f-1&&t[l]==="";throw new Error("wtf?")}braceExpand(){return(0,cd.braceExpand)(this.pattern,this.options)}parse(t){(0,GZt.assertValidPattern)(t);let r=this.options;if(t==="**")return cd.GLOBSTAR;if(t==="")return"";let n,a=null;(n=t.match(aTl))?a=r.dot?lTl:cTl:(n=t.match(zwl))?a=(r.nocase?r.dot?tTl:eTl:r.dot?$wl:qwl)(n[1]):(n=t.match(uTl))?a=(r.nocase?r.dot?ATl:gTl:r.dot?dTl:pTl)(n):(n=t.match(rTl))?a=r.dot?iTl:nTl:(n=t.match(sTl))&&(a=oTl);let o=hCs.AST.fromGlob(t,this.options).toMMPattern();return a&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:a}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?ITl:r.dot?hTl:mTl,a=new Set(r.nocase?["i"]:[]),o=t.map(f=>{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?STl(C):C===cd.GLOBSTAR?cd.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==cd.GLOBSTAR||N===cd.GLOBSTAR||(N===void 0?E!==void 0&&E!==cd.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==cd.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=cd.GLOBSTAR))}),I.filter(C=>C!==cd.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var TTl=z0&&z0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),RTl=z0&&z0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),NTl=z0&&z0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&TTl(t,e,r);return RTl(t,e),t};Object.defineProperty(z0,"__esModule",{value:!0});z0.PathScurry=z0.Path=z0.PathScurryDarwin=z0.PathScurryPosix=z0.PathScurryWin32=z0.PathScurryBase=z0.PathPosix=z0.PathWin32=z0.PathBase=z0.ChildrenCache=z0.ResolveCache=void 0;var BCs=yIe(),PZt=wt("node:path"),DTl=wt("node:url"),ize=wt("fs"),kTl=NTl(wt("node:fs")),xTl=ize.realpathSync.native,FZt=wt("node:fs/promises"),yCs=rF(),sze={lstatSync:ize.lstatSync,readdir:ize.readdir,readdirSync:ize.readdirSync,readlinkSync:ize.readlinkSync,realpathSync:xTl,promises:{lstat:FZt.lstat,readdir:FZt.readdir,readlink:FZt.readlink,realpath:FZt.realpath}},wCs=e=>!e||e===sze||e===kTl?sze:{...sze,...e,promises:{...sze.promises,...e.promises||{}}},TCs=/^\\\\\?\\([a-z]:)\\?$/i,GTl=e=>e.replace(/\//g,"\\").replace(TCs,"$1\\"),FTl=/[\\\/]/,HH=0,RCs=1,NCs=2,G6=4,DCs=6,kCs=8,x0e=10,xCs=12,MH=15,nze=~MH,Gjr=16,bCs=32,oze=64,rJ=128,ZZt=256,VZt=512,ECs=oze|rJ|VZt,ZTl=1023,Fjr=e=>e.isFile()?kCs:e.isDirectory()?G6:e.isSymbolicLink()?x0e:e.isCharacterDevice()?NCs:e.isBlockDevice()?DCs:e.isSocket()?xCs:e.isFIFO()?RCs:HH,SCs=new Map,aze=e=>{let t=SCs.get(e);if(t)return t;let r=e.normalize("NFKD");return SCs.set(e,r),r},vCs=new Map,LZt=e=>{let t=vCs.get(e);if(t)return t;let r=aze(e.toLowerCase());return vCs.set(e,r),r},cze=class extends BCs.LRUCache{constructor(){super({max:256})}};z0.ResolveCache=cze;var WZt=class extends BCs.LRUCache{constructor(t=16*1024){super({maxSize:t,sizeCalculation:r=>r.length+1})}};z0.ChildrenCache=WZt;var GCs=Symbol("PathScurry setAsCwd"),fx=class{name;root;roots;parent;nocase;isCWD=!1;#e;#t;get dev(){return this.#t}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#i;get uid(){return this.#i}#s;get gid(){return this.#s}#o;get rdev(){return this.#o}#g;get blksize(){return this.#g}#l;get ino(){return this.#l}#u;get size(){return this.#u}#a;get blocks(){return this.#a}#m;get atimeMs(){return this.#m}#f;get mtimeMs(){return this.#f}#I;get ctimeMs(){return this.#I}#d;get birthtimeMs(){return this.#d}#b;get atime(){return this.#b}#h;get mtime(){return this.#h}#S;get ctime(){return this.#S}#v;get birthtime(){return this.#v}#C;#E;#_;#p;#B;#w;#c;#k;#y;#N;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,r=HH,n,a,o,l,A){this.name=t,this.#C=o?LZt(t):aze(t),this.#c=r&ZTl,this.nocase=o,this.roots=a,this.root=n||this,this.#k=l,this.#_=A.fullpath,this.#B=A.relative,this.#w=A.relativePosix,this.parent=A.parent,this.parent?this.#e=this.parent.#e:this.#e=wCs(A.fs)}depth(){return this.#E!==void 0?this.#E:this.parent?this.#E=this.parent.depth()+1:this.#E=0}childrenCache(){return this.#k}resolve(t){if(!t)return this;let r=this.getRootString(t),a=t.substring(r.length).split(this.splitSep);return r?this.getRoot(r).#x(a):this.#x(a)}#x(t){let r=this;for(let n of t)r=r.child(n);return r}children(){let t=this.#k.get(this);if(t)return t;let r=Object.assign([],{provisional:0});return this.#k.set(this,r),this.#c&=~Gjr,r}child(t,r){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let n=this.children(),a=this.nocase?LZt(t):aze(t);for(let f of n)if(f.#C===a)return f;let o=this.parent?this.sep:"",l=this.#_?this.#_+o+t:void 0,A=this.newChild(t,HH,{...r,parent:this,fullpath:l});return this.canReaddir()||(A.#c|=rJ),n.push(A),A}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let t=this.name,r=this.parent;if(!r)return this.#B=this.name;let n=r.relative();return n+(!n||!r.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#w!==void 0)return this.#w;let t=this.name,r=this.parent;if(!r)return this.#w=this.fullpathPosix();let n=r.relativePosix();return n+(!n||!r.parent?"":"/")+t}fullpath(){if(this.#_!==void 0)return this.#_;let t=this.name,r=this.parent;if(!r)return this.#_=this.name;let a=r.fullpath()+(r.parent?this.sep:"")+t;return this.#_=a}fullpathPosix(){if(this.#p!==void 0)return this.#p;if(this.sep==="/")return this.#p=this.fullpath();if(!this.parent){let a=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(a)?this.#p=`//?/${a}`:this.#p=a}let t=this.parent,r=t.fullpathPosix(),n=r+(!r||!t.parent?"":"/")+this.name;return this.#p=n}isUnknown(){return(this.#c&MH)===HH}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#c&MH)===kCs}isDirectory(){return(this.#c&MH)===G6}isCharacterDevice(){return(this.#c&MH)===NCs}isBlockDevice(){return(this.#c&MH)===DCs}isFIFO(){return(this.#c&MH)===RCs}isSocket(){return(this.#c&MH)===xCs}isSymbolicLink(){return(this.#c&x0e)===x0e}lstatCached(){return this.#c&bCs?this:void 0}readlinkCached(){return this.#y}realpathCached(){return this.#N}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#y)return!0;if(!this.parent)return!1;let t=this.#c&MH;return!(t!==HH&&t!==x0e||this.#c&ZZt||this.#c&rJ)}calledReaddir(){return!!(this.#c&Gjr)}isENOENT(){return!!(this.#c&rJ)}isNamed(t){return this.nocase?this.#C===LZt(t):this.#C===aze(t)}async readlink(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=await this.#e.promises.readlink(this.fullpath()),n=(await this.parent.realpath())?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}readlinkSync(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=this.#e.readlinkSync(this.fullpath()),n=this.parent.realpathSync()?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}#G(t){this.#c|=Gjr;for(let r=t.provisional;rn(null,t))}readdirCB(t,r=!1){if(!this.canReaddir()){r?t(null,[]):queueMicrotask(()=>t(null,[]));return}let n=this.children();if(this.calledReaddir()){let o=n.slice(0,n.provisional);r?t(null,o):queueMicrotask(()=>t(null,o));return}if(this.#H.push(t),this.#Y)return;this.#Y=!0;let a=this.fullpath();this.#e.readdir(a,{withFileTypes:!0},(o,l)=>{if(o)this.#L(o.code),n.provisional=0;else{for(let A of l)this.#P(A,n);this.#G(n)}this.#X(n.slice(0,n.provisional))})}#M;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();if(this.#M)await this.#M;else{let n=()=>{};this.#M=new Promise(a=>n=a);try{for(let a of await this.#e.promises.readdir(r,{withFileTypes:!0}))this.#P(a,t);this.#G(t)}catch(a){this.#L(a.code),t.provisional=0}this.#M=void 0,n()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();try{for(let n of this.#e.readdirSync(r,{withFileTypes:!0}))this.#P(n,t);this.#G(t)}catch(n){this.#L(n.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#c&ECs)return!1;let t=MH&this.#c;return t===HH||t===G6||t===x0e}shouldWalk(t,r){return(this.#c&G6)===G6&&!(this.#c&ECs)&&!t.has(this)&&(!r||r(this))}async realpath(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=await this.#e.promises.realpath(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}realpathSync(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=this.#e.realpathSync(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}[GCs](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let r=new Set([]),n=[],a=this;for(;a&&a.parent;)r.add(a),a.#B=n.join(this.sep),a.#w=n.join("/"),a=a.parent,n.push("..");for(a=t;a&&a.parent&&!r.has(a);)a.#B=void 0,a.#w=void 0,a=a.parent}};z0.PathBase=fx;var lze=class e extends fx{sep="\\";splitSep=FTl;constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}getRootString(t){return PZt.win32.parse(t).root}getRoot(t){if(t=GTl(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,n]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=n;return this.roots[t]=new Aze(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(TCs,"$1\\"),t===r}};z0.PathWin32=lze;var uze=class e extends fx{splitSep="/";sep="/";constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}};z0.PathPosix=uze;var gze=class{root;rootPath;roots;cwd;#e;#t;#n;nocase;#r;constructor(t=process.cwd(),r,n,{nocase:a,childrenCacheSize:o=16*1024,fs:l=sze}={}){this.#r=wCs(l),(t instanceof URL||t.startsWith("file://"))&&(t=(0,DTl.fileURLToPath)(t));let A=r.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(A),this.#e=new cze,this.#t=new cze,this.#n=new WZt(o);let f=A.substring(this.rootPath.length).split(n);if(f.length===1&&!f[0]&&f.pop(),a===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=a,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let I=this.root,C=f.length-1,b=r.sep,E=this.rootPath,N=!1;for(let B of f){let F=C--;I=I.child(B,{relative:new Array(F).fill("..").join(b),relativePosix:new Array(F).fill("..").join("/"),fullpath:E+=(N?"":b)+B}),N=!0}this.cwd=I}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#e.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpath();return this.#e.set(r,a),a}resolvePosix(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#t.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpathPosix();return this.#t.set(r,a),a}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n}=r;if(t.canReaddir()){let a=await t.readdir();return n?a:a.map(o=>o.name)}else return[]}readdirSync(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0}=r;return t.canReaddir()?n?t.readdirSync():t.readdirSync().map(a=>a.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.readlink();return r?n:n?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.readlinkSync();return r?n:n?.fullpath()}async realpath(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.realpath();return r?n:n?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.realpathSync();return r?n:n?.fullpath()}async walk(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set,I=(b,E)=>{f.add(b),b.readdirCB((N,B)=>{if(N)return E(N);let F=B.length;if(!F)return E();let Q=()=>{--F===0&&E()};for(let X of B)(!o||o(X))&&A.push(n?X:X.fullpath()),a&&X.isSymbolicLink()?X.realpath().then(ae=>ae?.isUnknown()?ae.lstat():ae).then(ae=>ae?.shouldWalk(f,l)?I(ae,Q):Q()):X.shouldWalk(f,l)?I(X,Q):Q()},!0)},C=t;return new Promise((b,E)=>{I(C,N=>{if(N)return E(N);b(A)})})}walkSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set([t]);for(let I of f){let C=I.readdirSync();for(let b of C){(!o||o(b))&&A.push(n?b:b.fullpath());let E=b;if(b.isSymbolicLink()){if(!(a&&(E=b.realpathSync())))continue;E.isUnknown()&&E.lstatSync()}E.shouldWalk(f,l)&&f.add(E)}}return A}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,r={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd),this.stream(t,r)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r;(!o||o(t))&&(yield n?t:t.fullpath());let A=new Set([t]);for(let f of A){let I=f.readdirSync();for(let C of I){(!o||o(C))&&(yield n?C:C.fullpath());let b=C;if(C.isSymbolicLink()){if(!(a&&(b=C.realpathSync())))continue;b.isUnknown()&&b.lstatSync()}b.shouldWalk(A,l)&&A.add(b)}}}stream(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0});(!o||o(t))&&A.write(n?t:t.fullpath());let f=new Set,I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=(Q,X,ae=!1)=>{if(Q)return A.emit("error",Q);if(a&&!ae){let ne=[];for(let ce of X)ce.isSymbolicLink()&&ne.push(ce.realpath().then(fe=>fe?.isUnknown()?fe.lstat():fe));if(ne.length){Promise.all(ne).then(()=>B(null,X,!0));return}}for(let ne of X)ne&&(!o||o(ne))&&(A.write(n?ne:ne.fullpath())||(E=!0));C--;for(let ne of X){let ce=ne.realpathCached()||ne;ce.shouldWalk(f,l)&&I.push(ce)}E&&!A.flowing?A.once("drain",b):F||b()},F=!0;N.readdirCB(B,!0),F=!1}};return b(),A}streamSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0}),f=new Set;(!o||o(t))&&A.write(n?t:t.fullpath());let I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=N.readdirSync();for(let F of B)(!o||o(F))&&(A.write(n?F:F.fullpath())||(E=!0));C--;for(let F of B){let Q=F;if(F.isSymbolicLink()){if(!(a&&(Q=F.realpathSync())))continue;Q.isUnknown()&&Q.lstatSync()}Q.shouldWalk(f,l)&&I.push(Q)}}E&&!A.flowing&&A.once("drain",b)};return b(),A}chdir(t=this.cwd){let r=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[GCs](r)}};z0.PathScurryBase=gze;var Aze=class extends gze{sep="\\";constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,PZt.win32,"\\",{...r,nocase:n}),this.nocase=n;for(let a=this.cwd;a;a=a.parent)a.nocase=this.nocase}parseRootPath(t){return PZt.win32.parse(t).root.toUpperCase()}newRoot(t){return new lze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}};z0.PathScurryWin32=Aze;var dze=class extends gze{sep="/";constructor(t=process.cwd(),r={}){let{nocase:n=!1}=r;super(t,PZt.posix,"/",{...r,nocase:n}),this.nocase=n}parseRootPath(t){return"/"}newRoot(t){return new uze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}};z0.PathScurryPosix=dze;var OZt=class extends dze{constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,{...r,nocase:n})}};z0.PathScurryDarwin=OZt;z0.Path=process.platform==="win32"?lze:uze;z0.PathScurry=process.platform==="win32"?Aze:process.platform==="darwin"?OZt:dze});var Ljr=H(MZt=>{"use strict";Object.defineProperty(MZt,"__esModule",{value:!0});MZt.Pattern=void 0;var LTl=Hue(),VTl=e=>e.length>=1,PTl=e=>e.length>=1,Zjr=class e{#e;#t;#n;length;#r;#i;#s;#o;#g;#l;#u=!0;constructor(t,r,n,a){if(!VTl(t))throw new TypeError("empty pattern list");if(!PTl(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,n<0||n>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#t=r,this.#n=n,this.#r=a,this.#n===0){if(this.isUNC()){let[o,l,A,f,...I]=this.#e,[C,b,E,N,...B]=this.#t;I[0]===""&&(I.shift(),B.shift());let F=[o,l,A,f,""].join("/"),Q=[C,b,E,N,""].join("/");this.#e=[F,...I],this.#t=[Q,...B],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[o,...l]=this.#e,[A,...f]=this.#t;l[0]===""&&(l.shift(),f.shift());let I=o+"/",C=A+"/";this.#e=[I,...l],this.#t=[C,...f],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===LTl.GLOBSTAR}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#s=this.#s||(this.#n===0?this.isAbsolute()?this.#t[0]+this.#t.slice(1).join("/"):this.#t.join("/"):this.#t.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#i!==void 0?this.#i:this.hasMore()?(this.#i=new e(this.#e,this.#t,this.#n+1,this.#r),this.#i.#l=this.#l,this.#i.#g=this.#g,this.#i.#o=this.#o,this.#i):this.#i=null}isUNC(){let t=this.#e;return this.#g!==void 0?this.#g:this.#g=this.#r==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#o!==void 0?this.#o:this.#o=this.#r==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#l!==void 0?this.#l:this.#l=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};MZt.Pattern=Zjr});var Pjr=H(HZt=>{"use strict";Object.defineProperty(HZt,"__esModule",{value:!0});HZt.Ignore=void 0;var ZCs=Hue(),WTl=Ljr(),OTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Vjr=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:r,nocase:n,noext:a,noglobstar:o,platform:l=OTl}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=l,this.mmopts={dot:!0,nobrace:r,nocase:n,noext:a,noglobstar:o,optimizationLevel:2,platform:l,nocomment:!0,nonegate:!0};for(let A of t)this.add(A)}add(t){let r=new ZCs.Minimatch(t,this.mmopts);for(let n=0;n{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});F6.Processor=F6.SubWalks=F6.MatchRecord=F6.HasWalkedCache=void 0;var LCs=Hue(),YZt=class e{store;constructor(t=new Map){this.store=t}copy(){return new e(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let n=t.fullpath(),a=this.store.get(n);a?a.add(r.globString()):this.store.set(n,new Set([r.globString()]))}};F6.HasWalkedCache=YZt;var QZt=class{store=new Map;add(t,r,n){let a=(r?2:0)|(n?1:0),o=this.store.get(t);this.store.set(t,o===void 0?a:a&o)}entries(){return[...this.store.entries()].map(([t,r])=>[t,!!(r&2),!!(r&1)])}};F6.MatchRecord=QZt;var XZt=class{store=new Map;add(t,r){if(!t.canReaddir())return;let n=this.store.get(t);n?n.find(a=>a.globString()===r.globString())||n.push(r):this.store.set(t,[r])}get(t){let r=this.store.get(t);if(!r)throw new Error("attempting to walk unknown path");return r}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}};F6.SubWalks=XZt;var Wjr=class e{hasWalkedCache;matches=new QZt;subwalks=new XZt;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new YZt}processPatterns(t,r){this.patterns=r;let n=r.map(a=>[t,a]);for(let[a,o]of n){this.hasWalkedCache.storeWalked(a,o);let l=o.root(),A=o.isAbsolute()&&this.opts.absolute!==!1;if(l){a=a.resolve(l==="/"&&this.opts.root!==void 0?this.opts.root:l);let b=o.rest();if(b)o=b;else{this.matches.add(a,!0,!1);continue}}if(a.isENOENT())continue;let f,I,C=!1;for(;typeof(f=o.pattern())=="string"&&(I=o.rest());)a=a.resolve(f),o=I,C=!0;if(f=o.pattern(),I=o.rest(),C){if(this.hasWalkedCache.hasWalked(a,o))continue;this.hasWalkedCache.storeWalked(a,o)}if(typeof f=="string"){let b=f===".."||f===""||f===".";this.matches.add(a.resolve(f),A,b);continue}else if(f===LCs.GLOBSTAR){(!a.isSymbolicLink()||this.follow||o.checkFollowGlobstar())&&this.subwalks.add(a,o);let b=I?.pattern(),E=I?.rest();if(!I||(b===""||b===".")&&!E)this.matches.add(a,A,b===""||b===".");else if(b===".."){let N=a.parent||a;E?this.hasWalkedCache.hasWalked(N,E)||this.subwalks.add(N,E):this.matches.add(N,A,!0)}}else f instanceof RegExp&&this.subwalks.add(a,o)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new e(this.opts,this.hasWalkedCache)}filterEntries(t,r){let n=this.subwalks.get(t),a=this.child();for(let o of r)for(let l of n){let A=l.isAbsolute(),f=l.pattern(),I=l.rest();f===LCs.GLOBSTAR?a.testGlobstar(o,l,I,A):f instanceof RegExp?a.testRegExp(o,f,I,A):a.testString(o,f,I,A)}return a}testGlobstar(t,r,n,a){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,a,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(n&&r.checkFollowGlobstar()?this.subwalks.add(t,n):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),n){let o=n.pattern();if(typeof o=="string"&&o!==".."&&o!==""&&o!==".")this.testString(t,o,n.rest(),a);else if(o===".."){let l=t.parent||t;this.subwalks.add(l,n)}else o instanceof RegExp&&this.testRegExp(t,o,n.rest(),a)}}testRegExp(t,r,n,a){r.test(t.name)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}testString(t,r,n,a){t.isNamed(r)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}};F6.Processor=Wjr});var OCs=H(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});Yue.GlobStream=Yue.GlobWalker=Yue.GlobUtil=void 0;var MTl=rF(),PCs=Pjr(),WCs=VCs(),HTl=(e,t)=>typeof e=="string"?new PCs.Ignore([e],t):Array.isArray(e)?new PCs.Ignore(e,t):e,pze=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#t;#n;signal;maxDepth;includeChildMatches;constructor(t,r,n){if(this.patterns=t,this.path=r,this.opts=n,this.#n=!n.posix&&n.platform==="win32"?"\\":"/",this.includeChildMatches=n.includeChildMatches!==!1,(n.ignore||!this.includeChildMatches)&&(this.#t=HTl(n.ignore??[],n),!this.includeChildMatches&&typeof this.#t.add!="function")){let a="cannot ignore child matches, ignore lacks add() method.";throw new Error(a)}this.maxDepth=n.maxDepth||1/0,n.signal&&(this.signal=n.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#r(t){return this.seen.has(t)||!!this.#t?.ignored?.(t)}#i(t){return!!this.#t?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#e.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#e.push(t):t())}async matchCheck(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||await t.realpath(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=await o.realpath();l&&(l.isUnknown()||this.opts.stat)&&await l.lstat()}return this.matchCheckTest(o,r)}matchCheckTest(t,r){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!r||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||t.realpathSync(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=o.realpathSync();l&&(l?.isUnknown()||this.opts.stat)&&l.lstatSync()}return this.matchCheckTest(o,r)}matchFinish(t,r){if(this.#r(t))return;if(!this.includeChildMatches&&this.#t?.add){let o=`${t.relativePosix()}/**`;this.#t.add(o)}let n=this.opts.absolute===void 0?r:this.opts.absolute;this.seen.add(t);let a=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(n){let o=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(o+a)}else{let o=this.opts.posix?t.relativePosix():t.relative(),l=this.opts.dotRelative&&!o.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(o?l+o+a:"."+a)}}async match(t,r,n){let a=await this.matchCheck(t,n);a&&this.matchFinish(a,r)}matchSync(t,r,n){let a=this.matchCheckSync(t,n);a&&this.matchFinish(a,r)}walkCB(t,r,n){this.signal?.aborted&&n(),this.walkCB2(t,r,new WCs.Processor(this.opts),n)}walkCB2(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirCached();A.calledReaddir()?this.walkCB3(A,f,n,l):A.readdirCB((I,C)=>this.walkCB3(A,C,n,l),!0)}l()}walkCB3(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let[A,f]of n.subwalks.entries())o++,this.walkCB2(A,f,n.child(),l);l()}walkCBSync(t,r,n){this.signal?.aborted&&n(),this.walkCB2Sync(t,r,new WCs.Processor(this.opts),n)}walkCB2Sync(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2Sync(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirSync();this.walkCB3Sync(A,f,n,l)}l()}walkCB3Sync(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let[A,f]of n.subwalks.entries())o++,this.walkCB2Sync(A,f,n.child(),l);l()}};Yue.GlobUtil=pze;var Ojr=class extends pze{matches=new Set;constructor(t,r,n){super(t,r,n)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,r)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?r(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}};Yue.GlobWalker=Ojr;var Mjr=class extends pze{results;constructor(t,r,n){super(t,r,n),this.results=new MTl.Minipass({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};Yue.GlobStream=Mjr});var Yjr=H(KZt=>{"use strict";Object.defineProperty(KZt,"__esModule",{value:!0});KZt.Glob=void 0;var YTl=Hue(),QTl=wt("node:url"),JZt=FCs(),XTl=Ljr(),UZt=OCs(),JTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Hjr=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,r){if(!r)throw new TypeError("glob options required");if(this.withFileTypes=!!r.withFileTypes,this.signal=r.signal,this.follow=!!r.follow,this.dot=!!r.dot,this.dotRelative=!!r.dotRelative,this.nodir=!!r.nodir,this.mark=!!r.mark,r.cwd?(r.cwd instanceof URL||r.cwd.startsWith("file://"))&&(r.cwd=(0,QTl.fileURLToPath)(r.cwd)):this.cwd="",this.cwd=r.cwd||"",this.root=r.root,this.magicalBraces=!!r.magicalBraces,this.nobrace=!!r.nobrace,this.noext=!!r.noext,this.realpath=!!r.realpath,this.absolute=r.absolute,this.includeChildMatches=r.includeChildMatches!==!1,this.noglobstar=!!r.noglobstar,this.matchBase=!!r.matchBase,this.maxDepth=typeof r.maxDepth=="number"?r.maxDepth:1/0,this.stat=!!r.stat,this.ignore=r.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(f=>f.replace(/\\/g,"/"))),this.matchBase){if(r.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(f=>f.includes("/")?f:`./**/${f}`)}if(this.pattern=t,this.platform=r.platform||JTl,this.opts={...r,platform:this.platform},r.scurry){if(this.scurry=r.scurry,r.nocase!==void 0&&r.nocase!==r.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let f=r.platform==="win32"?JZt.PathScurryWin32:r.platform==="darwin"?JZt.PathScurryDarwin:r.platform?JZt.PathScurryPosix:JZt.PathScurry;this.scurry=new f(this.cwd,{nocase:r.nocase,fs:r.fs})}this.nocase=this.scurry.nocase;let n=this.platform==="darwin"||this.platform==="win32",a={...r,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:n,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},o=this.pattern.map(f=>new YTl.Minimatch(f,a)),[l,A]=o.reduce((f,I)=>(f[0].push(...I.set),f[1].push(...I.globParts),f),[[],[]]);this.patterns=l.map((f,I)=>{let C=A[I];if(!C)throw new Error("invalid pattern object");return new XTl.Pattern(f,C,0,this.platform)})}async walk(){return[...await new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};KZt.Glob=Hjr});var Qjr=H(jZt=>{"use strict";Object.defineProperty(jZt,"__esModule",{value:!0});jZt.hasMagic=void 0;var UTl=Hue(),KTl=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new UTl.Minimatch(r,t).hasMagic())return!0;return!1};jZt.hasMagic=KTl});var QCs=H(lC=>{"use strict";Object.defineProperty(lC,"__esModule",{value:!0});lC.glob=lC.sync=lC.iterate=lC.iterateSync=lC.stream=lC.streamSync=lC.Ignore=lC.hasMagic=lC.Glob=lC.unescape=lC.escape=void 0;lC.globStreamSync=fze;lC.globStream=Xjr;lC.globSync=Jjr;lC.globIterateSync=Ize;lC.globIterate=Ujr;var MCs=Hue(),G0e=Yjr(),jTl=Qjr(),YCs=Hue();Object.defineProperty(lC,"escape",{enumerable:!0,get:function(){return YCs.escape}});Object.defineProperty(lC,"unescape",{enumerable:!0,get:function(){return YCs.unescape}});var zTl=Yjr();Object.defineProperty(lC,"Glob",{enumerable:!0,get:function(){return zTl.Glob}});var qTl=Qjr();Object.defineProperty(lC,"hasMagic",{enumerable:!0,get:function(){return qTl.hasMagic}});var $Tl=Pjr();Object.defineProperty(lC,"Ignore",{enumerable:!0,get:function(){return $Tl.Ignore}});function fze(e,t={}){return new G0e.Glob(e,t).streamSync()}function Xjr(e,t={}){return new G0e.Glob(e,t).stream()}function Jjr(e,t={}){return new G0e.Glob(e,t).walkSync()}async function HCs(e,t={}){return new G0e.Glob(e,t).walk()}function Ize(e,t={}){return new G0e.Glob(e,t).iterateSync()}function Ujr(e,t={}){return new G0e.Glob(e,t).iterate()}lC.streamSync=fze;lC.stream=Object.assign(Xjr,{sync:fze});lC.iterateSync=Ize;lC.iterate=Object.assign(Ujr,{sync:Ize});lC.sync=Object.assign(Jjr,{stream:fze,iterate:Ize});lC.glob=Object.assign(HCs,{glob:HCs,globSync:Jjr,sync:lC.sync,globStream:Xjr,stream:lC.stream,globStreamSync:fze,streamSync:lC.streamSync,globIterate:Ujr,iterate:lC.iterate,globIterateSync:Ize,iterateSync:lC.iterateSync,Glob:G0e.Glob,hasMagic:jTl.hasMagic,escape:MCs.escape,unescape:MCs.unescape});lC.glob.glob=lC.glob});var Kjr=H((hsg,JCs)=>{"use strict";var{glob:eRl}=QCs(),XCs=wt("path"),tRl=e=>e.split(XCs.win32.sep).join(XCs.posix.sep);JCs.exports=(e,t)=>eRl(tRl(e),t)});var KCs=H((msg,UCs)=>{"use strict";var rRl=wt("fs/promises"),nRl=qGe(),{hasContent:iRl}=yjr();UCs.exports=sRl;async function sRl(e,t){let r=await iRl(e,t);return r&&r.sri?(await rRl.rm(nRl(e,r.sri),{recursive:!0,force:!0}),!0):!1}});var zCs=H((Csg,hze)=>{"use strict";var{rm:oRl}=wt("fs/promises"),aRl=Kjr(),cRl=eFe(),jjr=U7e(),lRl=wt("path"),uRl=KCs();hze.exports=jCs;hze.exports.entry=jCs;function jCs(e,t,r){return jjr.clearMemoized(),cRl.delete(e,t,r)}hze.exports.content=gRl;function gRl(e,t){return jjr.clearMemoized(),uRl(e,t)}hze.exports.all=ARl;async function ARl(e){jjr.clearMemoized();let t=await aRl(lRl.join(e,"*(content-*|index-*)"),{silent:!0,nosort:!0});return Promise.all(t.map(r=>oRl(r,{recursive:!0,force:!0})))}});var $Cs=H((_sg,e6r)=>{"use strict";var{mkdir:dRl,readFile:pRl,rm:qjr,stat:$jr,truncate:fRl,writeFile:IRl}=wt("fs/promises"),qCs=qGe(),hRl=vZt(),mRl=Kjr(),lFe=eFe(),zZt=wt("path"),zjr=Jte(),CRl=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_Rl=e=>({concurrency:20,log:{silly(){}},...e});e6r.exports=yRl;async function yRl(e,t){t=_Rl(t),t.log.silly("verify","verifying cache at",e);let r=[bRl,SRl,vRl,wRl,RRl,NRl,ERl],n={};for(let a of r){let o=a.name,l=new Date,A=await a(e,t);A&&Object.keys(A).forEach(I=>{n[I]=A[I]});let f=new Date;n.runTime||(n.runTime={}),n.runTime[o]=f-l}return n.runTime.total=n.endTime-n.startTime,t.log.silly("verify","verification finished for",e,"in",`${n.runTime.total}ms`),n}async function bRl(){return{startTime:new Date}}async function ERl(){return{endTime:new Date}}async function SRl(e,t){return t.log.silly("verify","fixing cache permissions"),await dRl(e,{recursive:!0}),null}async function vRl(e,t){t.log.silly("verify","garbage collecting content");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=lFe.lsStream(e),a=new Set;n.on("data",f=>{if(t.filter&&!t.filter(f))return;let I=zjr.parse(f.integrity);for(let C in I)a.add(I[C].toString())}),await new Promise((f,I)=>{n.on("end",f).on("error",I)});let o=qCs.contentDir(e),l=await mRl(zZt.join(o,"**"),{follow:!1,nodir:!0,nosort:!0}),A={verifiedContent:0,reclaimedCount:0,reclaimedSize:0,badContentCount:0,keptSize:0};return await r(l,async f=>{let I=f.split(/[/\\]/),C=I.slice(I.length-3).join(""),b=I[I.length-4],E=zjr.fromHex(C,b);if(a.has(E.toString())){let N=await BRl(f,E);N.valid?(A.verifiedContent++,A.keptSize+=N.size):(A.reclaimedCount++,A.badContentCount++,A.reclaimedSize+=N.size)}else{A.reclaimedCount++;let N=await $jr(f);await qjr(f,{recursive:!0,force:!0}),A.reclaimedSize+=N.size}return A},{concurrency:t.concurrency}),A}async function BRl(e,t){let r={};try{let{size:n}=await $jr(e);r.size=n,r.valid=!0,await zjr.checkStream(new hRl.ReadStream(e),t)}catch(n){if(n.code==="ENOENT")return{size:0,valid:!1};if(n.code!=="EINTEGRITY")throw n;await qjr(e,{recursive:!0,force:!0}),r.valid=!1}return r}async function wRl(e,t){t.log.silly("verify","rebuilding index");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=await lFe.ls(e),a={missingContent:0,rejectedEntries:0,totalEntries:0},o={};for(let l in n)if(CRl(n,l)){let A=lFe.hashKey(l),f=n[l],I=t.filter&&!t.filter(f);I&&a.rejectedEntries++,o[A]&&!I?o[A].push(f):o[A]&&I||(I?(o[A]=[],o[A]._path=lFe.bucketPath(e,l)):(o[A]=[f],o[A]._path=lFe.bucketPath(e,l)))}return await r(Object.keys(o),l=>TRl(e,o[l],a,t),{concurrency:t.concurrency}),a}async function TRl(e,t,r){await fRl(t._path);for(let n of t){let a=qCs(e,n.integrity);try{await $jr(a),await lFe.insert(e,n.key,n.integrity,{metadata:n.metadata,size:n.size,time:n.time}),r.totalEntries++}catch(o){if(o.code==="ENOENT")r.rejectedEntries++,r.missingContent++;else throw o}}}function RRl(e,t){return t.log.silly("verify","cleaning tmp directory"),qjr(zZt.join(e,"tmp"),{recursive:!0,force:!0})}async function NRl(e,t){let r=zZt.join(e,"_lastverified");return t.log.silly("verify","writing verifile to "+r),IRl(r,`${Date.now()}`)}e6r.exports.lastRun=DRl;async function DRl(e){let t=await pRl(zZt.join(e,"_lastverified"),{encoding:"utf8"});return new Date(+t)}});var t_s=H((ysg,r6r)=>{"use strict";var{withTempDir:kRl}=uZt(),e_s=wt("fs/promises"),t6r=wt("path");r6r.exports.mkdir=xRl;async function xRl(e,t={}){let{tmpPrefix:r}=t,n=t6r.join(e,"tmp");await e_s.mkdir(n,{recursive:!0,owner:"inherit"});let a=`${n}${t6r.sep}${r||""}`;return e_s.mkdtemp(a,{owner:"inherit"})}r6r.exports.withTmp=GRl;function GRl(e,t,r){return r||(r=t,t={}),kRl(t6r.join(e,"tmp"),r,t)}});var s_s=H((bsg,rE)=>{"use strict";var Que=Wms(),r_s=jms(),n6r=zCs(),n_s=$Cs(),{clearMemoized:FRl}=U7e(),i_s=t_s(),qZt=eFe();rE.exports.index={};rE.exports.index.compact=qZt.compact;rE.exports.index.insert=qZt.insert;rE.exports.ls=qZt.ls;rE.exports.ls.stream=qZt.lsStream;rE.exports.get=Que;rE.exports.get.byDigest=Que.byDigest;rE.exports.get.stream=Que.stream;rE.exports.get.stream.byDigest=Que.stream.byDigest;rE.exports.get.copy=Que.copy;rE.exports.get.copy.byDigest=Que.copy.byDigest;rE.exports.get.info=Que.info;rE.exports.get.hasContent=Que.hasContent;rE.exports.put=r_s;rE.exports.put.stream=r_s.stream;rE.exports.rm=n6r.entry;rE.exports.rm.all=n6r.all;rE.exports.rm.entry=rE.exports.rm;rE.exports.rm.content=n6r.content;rE.exports.clearMemoized=FRl;rE.exports.tmp={};rE.exports.tmp.mkdir=i_s.mkdir;rE.exports.tmp.withTmp=i_s.withTmp;rE.exports.verify=n_s;rE.exports.verify.lastRun=n_s.lastRun});var s6r=H((Esg,o_s)=>{"use strict";var ZRl=zGe(),i6r=class extends ZRl{#e=[];#t=new Map;constructor(t,...r){super(),this.#e=t.events,r.length&&this.push(...r)}on(t,r){return this.#e.includes(t)&&this.#t.has(t)?r(...this.#t.get(t)):super.on(t,r)}emit(t,...r){return this.#e.includes(t)&&this.#t.set(t,r),super.emit(t,...r)}};o_s.exports=i6r});var c_s=H((Ssg,a_s)=>{var{URL:LRl,format:VRl}=wt("url"),PRl={auth:!1,fragment:!1,search:!0,unicode:!1},WRl=e=>{let t=new LRl(e.url);return`make-fetch-happen:request-cache:${VRl(t,PRl)}`};a_s.exports=WRl});var g_s=H((vsg,u_s)=>{"use strict";function l_s(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function ORl(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=void 0),t!=null&&(r.code=t);try{return l_s(e,r)}catch{r.message=e.message,r.stack=e.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(e)),l_s(new a,r)}}u_s.exports=ORl});var d_s=H((Bsg,A_s)=>{function YH(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}A_s.exports=YH;YH.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};YH.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};YH.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var n=this,a=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r);return this._options.unref&&a.unref(),!0};YH.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};YH.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};YH.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};YH.prototype.start=YH.prototype.try;YH.prototype.errors=function(){return this._errors};YH.prototype.attempts=function(){return this._attempts};YH.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=a,r=l)}return t}});var p_s=H(F0e=>{var MRl=d_s();F0e.operation=function(e){var t=F0e.timeouts(e);return new MRl(t,{forever:e&&e.forever,unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};F0e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],a=0;a{f_s.exports=p_s()});var o6r=H((Rsg,m_s)=>{"use strict";var HRl=g_s(),YRl=I_s(),QRl=Object.prototype.hasOwnProperty;function h_s(e){return e&&e.code==="EPROMISERETRY"&&QRl.call(e,"retried")}function XRl(e,t){var r,n;return typeof e=="object"&&typeof t=="function"&&(r=t,t=e,e=r),n=YRl.operation(t),new Promise(function(a,o){n.attempt(function(l){Promise.resolve().then(function(){return e(function(A){throw h_s(A)&&(A=A.retried),HRl(new Error("Retrying"),"EPROMISERETRY",{retried:A})},l)}).then(a,function(A){h_s(A)&&(A=A.retried,n.retry(A||new Error))||o(A)})})})}m_s.exports=XRl});var a6r=H((Nsg,C_s)=>{var JRl=Symbol("proc-log.meta");C_s.exports={META:JRl,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...e){return process.emit("output","standard",...e)},error:function(...e){return process.emit("output","error",...e)},buffer:function(...e){return process.emit("output","buffer",...e)},flush:function(...e){return process.emit("output","flush",...e)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...e){return process.emit("log","error",...e)},notice:function(...e){return process.emit("log","notice",...e)},warn:function(...e){return process.emit("log","warn",...e)},info:function(...e){return process.emit("log","info",...e)},verbose:function(...e){return process.emit("log","verbose",...e)},http:function(...e){return process.emit("log","http",...e)},silly:function(...e){return process.emit("log","silly",...e)},timing:function(...e){return process.emit("log","timing",...e)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(e,t){process.emit("time","start",e);function r(){return process.emit("time","end",e)}if(typeof t=="function"){let n=t();return n&&n.finally?n.finally(r):(r(),n)}return r},end:function(e){return process.emit("time","end",e)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(e){process.emit("input","start");function t(){return process.emit("input","end")}if(typeof e=="function"){let r=e();return r&&r.finally?r.finally(t):(t(),r)}return t},end:function(){return process.emit("input","end")},read:function(...e){let t,r,n=new Promise((a,o)=>{t=a,r=o});return process.emit("input","read",t,r,...e),n}}}});var c6r=H((Dsg,y_s)=>{"use strict";var{LRUCache:URl}=yIe(),__s=wt("dns"),$Zt=new URl({max:50}),KRl=({family:e=0,hints:t=__s.ADDRCONFIG,all:r=!1,verbatim:n=void 0,ttl:a=5*60*1e3,lookup:o=__s.lookup})=>({hints:t,lookup:(l,...A)=>{let f=A.pop(),I=A[0]??{},C={family:e,hints:t,all:r,verbatim:n,...typeof I=="number"?{family:I}:I},b=JSON.stringify({hostname:l,...C});if($Zt.has(b)){let E=$Zt.get(b);return process.nextTick(f,null,...E)}o(l,C,(E,...N)=>E?f(E):($Zt.set(b,N,{ttl:a}),f(null,...N)))}});y_s.exports={cache:$Zt,getOptions:KRl}});var l6r=H((ksg,E_s)=>{"use strict";var jRl=c6r(),zRl=e=>{let t=parseInt(e.family??"0",10),r=e.keepAlive??!0,n={keepAliveMsecs:r?1e3:void 0,maxSockets:e.maxSockets??15,maxTotalSockets:1/0,maxFreeSockets:r?256:void 0,scheduling:"fifo",...e,family:t,keepAlive:r,timeouts:{idle:e.timeout??0,connection:0,response:0,transfer:0,...e.timeouts},...jRl.getOptions({family:t,...e.dns})};return delete n.timeout,n},b_s=e=>{let t="",r=Object.entries(e).sort((n,a)=>n[0]-a[0]);for(let[n,a]of r)a==null?a="null":a instanceof URL?a=a.toString():typeof a=="object"&&(a=b_s(a)),t+=`${n}:${a}:`;return t},qRl=({secureEndpoint:e,...t})=>b_s({secureEndpoint:!!e,family:t.family,hints:t.hints,localAddress:t.localAddress,strictSsl:e?!!t.rejectUnauthorized:!1,ca:e?t.ca:null,cert:e?t.cert:null,key:e?t.key:null,keepAlive:t.keepAlive,keepAliveMsecs:t.keepAliveMsecs,maxSockets:t.maxSockets,maxTotalSockets:t.maxTotalSockets,maxFreeSockets:t.maxFreeSockets,scheduling:t.scheduling,timeouts:t.timeouts,proxy:t.proxy});E_s.exports={normalizeOptions:zRl,cacheOptions:qRl}});var B_s=H($V=>{"use strict";var $Rl=$V&&$V.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),eNl=$V&&$V.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S_s=$V&&$V.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&$Rl(t,e,r);return eNl(t,e),t};Object.defineProperty($V,"__esModule",{value:!0});$V.req=$V.json=$V.toBuffer=void 0;var tNl=S_s(wt("http")),rNl=S_s(wt("https"));async function v_s(e){let t=0,r=[];for await(let n of e)t+=n.length,r.push(n);return Buffer.concat(r,t)}$V.toBuffer=v_s;async function nNl(e){let r=(await v_s(e)).toString("utf8");try{return JSON.parse(r)}catch(n){let a=n;throw a.message+=` (input: ${r})`,a}}$V.json=nNl;function iNl(e,t={}){let n=((typeof e=="string"?e:e.href).startsWith("https:")?rNl:tNl).request(e,t),a=new Promise((o,l)=>{n.once("response",o).once("error",l).end()});return n.then=a.then.bind(a),n}$V.req=iNl});var mze=H(UO=>{"use strict";var T_s=UO&&UO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),sNl=UO&&UO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),R_s=UO&&UO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&T_s(t,e,r);return sNl(t,e),t},oNl=UO&&UO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T_s(t,e,r)};Object.defineProperty(UO,"__esModule",{value:!0});UO.Agent=void 0;var aNl=R_s(wt("net")),w_s=R_s(wt("http")),cNl=wt("https");oNl(B_s(),UO);var Z6=Symbol("AgentBaseInternalState"),u6r=class extends w_s.Agent{constructor(t){super(t),this[Z6]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(` +`).some(n=>n.indexOf("(https.js:")!==-1||n.indexOf("node:https:")!==-1)}incrementSockets(t){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[t]||(this.sockets[t]=[]);let r=new aNl.Socket({writable:!1});return this.sockets[t].push(r),this.totalSocketCount++,r}decrementSockets(t,r){if(!this.sockets[t]||r===null)return;let n=this.sockets[t],a=n.indexOf(r);a!==-1&&(n.splice(a,1),this.totalSocketCount--,n.length===0&&delete this.sockets[t])}getName(t){return(typeof t.secureEndpoint=="boolean"?t.secureEndpoint:this.isSecureEndpoint(t))?cNl.Agent.prototype.getName.call(this,t):super.getName(t)}createSocket(t,r,n){let a={...r,secureEndpoint:this.isSecureEndpoint(r)},o=this.getName(a),l=this.incrementSockets(o);Promise.resolve().then(()=>this.connect(t,a)).then(A=>{if(this.decrementSockets(o,l),A instanceof w_s.Agent)return A.addRequest(t,a);this[Z6].currentSocket=A,super.createSocket(t,r,n)},A=>{this.decrementSockets(o,l),n(A)})}createConnection(){let t=this[Z6].currentSocket;if(this[Z6].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Z6].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Z6]&&(this[Z6].defaultPort=t)}get protocol(){return this[Z6].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Z6]&&(this[Z6].protocol=t)}};UO.Agent=u6r});var k_s=H(QH=>{"use strict";var lNl=QH&&QH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),uNl=QH&&QH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),D_s=QH&&QH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&lNl(t,e,r);return uNl(t,e),t},gNl=QH&&QH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QH,"__esModule",{value:!0});QH.HttpProxyAgent=void 0;var ANl=D_s(wt("net")),dNl=D_s(wt("tls")),pNl=gNl(uT()),fNl=wt("events"),INl=mze(),N_s=wt("url"),uFe=(0,pNl.default)("http-proxy-agent"),eLt=class extends INl.Agent{constructor(t,r){super(r),this.proxy=typeof t=="string"?new N_s.URL(t):t,this.proxyHeaders=r?.headers??{},uFe("Creating new HttpProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?hNl(r,"headers"):null,host:n,port:a}}addRequest(t,r){t._header=null,this.setRequestProps(t,r),super.addRequest(t,r)}setRequestProps(t,r){let{proxy:n}=this,a=r.secureEndpoint?"https:":"http:",o=t.getHeader("host")||"localhost",l=`${a}//${o}`,A=new N_s.URL(t.path,l);r.port!==80&&(A.port=String(r.port)),t.path=String(A);let f=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(n.username||n.password){let I=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;f["Proxy-Authorization"]=`Basic ${Buffer.from(I).toString("base64")}`}f["Proxy-Connection"]||(f["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let I of Object.keys(f)){let C=f[I];C&&t.setHeader(I,C)}}async connect(t,r){t._header=null,t.path.includes("://")||this.setRequestProps(t,r);let n,a;uFe("Regenerating stored HTTP header string for request"),t._implicitHeader(),t.outputData&&t.outputData.length>0&&(uFe("Patching connection write() output buffer with updated header"),n=t.outputData[0].data,a=n.indexOf(`\r \r -`)+4,t.outputData[0].data=t._header+n.substring(a),uFe("Output buffer: %o",t.outputData[0].data));let o;return this.proxy.protocol==="https:"?(uFe("Creating `tls.Socket`: %o",this.connectOpts),o=ANl.connect(this.connectOpts)):(uFe("Creating `net.Socket`: %o",this.connectOpts),o=gNl.connect(this.connectOpts)),await(0,pNl.once)(o,"connect"),o}};eLt.protocols=["http","https"];QH.HttpProxyAgent=eLt;function INl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var x_s=H(gFe=>{"use strict";var hNl=gFe&&gFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gFe,"__esModule",{value:!0});gFe.parseProxyResponse=void 0;var mNl=hNl(uT()),tLt=(0,mNl.default)("https-proxy-agent:parse-proxy-response");function CNl(e){return new Promise((t,r)=>{let n=0,a=[];function o(){let C=e.read();C?I(C):e.once("readable",o)}function l(){e.removeListener("end",A),e.removeListener("error",f),e.removeListener("readable",o)}function A(){l(),tLt("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function f(C){l(),tLt("onerror %o",C),r(C)}function I(C){a.push(C),n+=C.length;let b=Buffer.concat(a,n),E=b.indexOf(`\r +`)+4,t.outputData[0].data=t._header+n.substring(a),uFe("Output buffer: %o",t.outputData[0].data));let o;return this.proxy.protocol==="https:"?(uFe("Creating `tls.Socket`: %o",this.connectOpts),o=dNl.connect(this.connectOpts)):(uFe("Creating `net.Socket`: %o",this.connectOpts),o=ANl.connect(this.connectOpts)),await(0,fNl.once)(o,"connect"),o}};eLt.protocols=["http","https"];QH.HttpProxyAgent=eLt;function hNl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var x_s=H(gFe=>{"use strict";var mNl=gFe&&gFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gFe,"__esModule",{value:!0});gFe.parseProxyResponse=void 0;var CNl=mNl(uT()),tLt=(0,CNl.default)("https-proxy-agent:parse-proxy-response");function _Nl(e){return new Promise((t,r)=>{let n=0,a=[];function o(){let C=e.read();C?I(C):e.once("readable",o)}function l(){e.removeListener("end",A),e.removeListener("error",f),e.removeListener("readable",o)}function A(){l(),tLt("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function f(C){l(),tLt("onerror %o",C),r(C)}function I(C){a.push(C),n+=C.length;let b=Buffer.concat(a,n),E=b.indexOf(`\r \r `);if(E===-1){tLt("have not received end of HTTP headers yet..."),o();return}let N=b.slice(0,E).toString("ascii").split(`\r -`),B=N.shift();if(!B)return e.destroy(),r(new Error("No header received from proxy CONNECT response"));let F=B.split(" "),Q=+F[1],X=F.slice(2).join(" "),ae={};for(let ne of N){if(!ne)continue;let ce=ne.indexOf(":");if(ce===-1)return e.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${ne}"`));let fe=ne.slice(0,ce).toLowerCase(),ue=ne.slice(ce+1).trimStart(),de=ae[fe];typeof de=="string"?ae[fe]=[de,ue]:Array.isArray(de)?de.push(ue):ae[fe]=ue}tLt("got proxy server response: %o %o",B,ae),l(),t({connect:{statusCode:Q,statusText:X,headers:ae},buffered:b})}e.on("error",f),e.on("end",A),o()})}gFe.parseProxyResponse=CNl});var V_s=H(XH=>{"use strict";var _Nl=XH&&XH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yNl=XH&&XH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Z_s=XH&&XH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&_Nl(t,e,r);return yNl(t,e),t},L_s=XH&&XH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XH,"__esModule",{value:!0});XH.HttpsProxyAgent=void 0;var g6r=Z_s(wt("net")),G_s=Z_s(wt("tls")),bNl=L_s(wt("assert")),ENl=L_s(uT()),SNl=mze(),vNl=wt("url"),BNl=x_s(),Cze=(0,ENl.default)("https-proxy-agent"),rLt=class extends SNl.Agent{constructor(t,r){super(r),this.options={path:void 0},this.proxy=typeof t=="string"?new vNl.URL(t):t,this.proxyHeaders=r?.headers??{},Cze("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?F_s(r,"headers"):null,host:n,port:a}}async connect(t,r){let{proxy:n}=this;if(!r.host)throw new TypeError('No "host" provided');let a;if(n.protocol==="https:"){Cze("Creating `tls.Socket`: %o",this.connectOpts);let E=this.connectOpts.servername||this.connectOpts.host;a=G_s.connect({...this.connectOpts,servername:E})}else Cze("Creating `net.Socket`: %o",this.connectOpts),a=g6r.connect(this.connectOpts);let o=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},l=g6r.isIPv6(r.host)?`[${r.host}]`:r.host,A=`CONNECT ${l}:${r.port} HTTP/1.1\r +`),B=N.shift();if(!B)return e.destroy(),r(new Error("No header received from proxy CONNECT response"));let F=B.split(" "),Q=+F[1],X=F.slice(2).join(" "),ae={};for(let ne of N){if(!ne)continue;let ce=ne.indexOf(":");if(ce===-1)return e.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${ne}"`));let fe=ne.slice(0,ce).toLowerCase(),ue=ne.slice(ce+1).trimStart(),de=ae[fe];typeof de=="string"?ae[fe]=[de,ue]:Array.isArray(de)?de.push(ue):ae[fe]=ue}tLt("got proxy server response: %o %o",B,ae),l(),t({connect:{statusCode:Q,statusText:X,headers:ae},buffered:b})}e.on("error",f),e.on("end",A),o()})}gFe.parseProxyResponse=_Nl});var V_s=H(XH=>{"use strict";var yNl=XH&&XH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),bNl=XH&&XH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Z_s=XH&&XH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&yNl(t,e,r);return bNl(t,e),t},L_s=XH&&XH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XH,"__esModule",{value:!0});XH.HttpsProxyAgent=void 0;var g6r=Z_s(wt("net")),G_s=Z_s(wt("tls")),ENl=L_s(wt("assert")),SNl=L_s(uT()),vNl=mze(),BNl=wt("url"),wNl=x_s(),Cze=(0,SNl.default)("https-proxy-agent"),rLt=class extends vNl.Agent{constructor(t,r){super(r),this.options={path:void 0},this.proxy=typeof t=="string"?new BNl.URL(t):t,this.proxyHeaders=r?.headers??{},Cze("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?F_s(r,"headers"):null,host:n,port:a}}async connect(t,r){let{proxy:n}=this;if(!r.host)throw new TypeError('No "host" provided');let a;if(n.protocol==="https:"){Cze("Creating `tls.Socket`: %o",this.connectOpts);let E=this.connectOpts.servername||this.connectOpts.host;a=G_s.connect({...this.connectOpts,servername:E})}else Cze("Creating `net.Socket`: %o",this.connectOpts),a=g6r.connect(this.connectOpts);let o=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},l=g6r.isIPv6(r.host)?`[${r.host}]`:r.host,A=`CONNECT ${l}:${r.port} HTTP/1.1\r `;if(n.username||n.password){let E=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;o["Proxy-Authorization"]=`Basic ${Buffer.from(E).toString("base64")}`}o.Host=`${l}:${r.port}`,o["Proxy-Connection"]||(o["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let E of Object.keys(o))A+=`${E}: ${o[E]}\r -`;let f=(0,BNl.parseProxyResponse)(a);a.write(`${A}\r -`);let{connect:I,buffered:C}=await f;if(t.emit("proxyConnect",I),this.emit("proxyConnect",I,t),I.statusCode===200){if(t.once("socket",wNl),r.secureEndpoint){Cze("Upgrading socket connection to TLS");let E=r.servername||r.host;return G_s.connect({...F_s(r,"host","path","port"),socket:a,servername:E})}return a}a.destroy();let b=new g6r.Socket({writable:!1});return b.readable=!0,t.once("socket",E=>{Cze("Replaying proxy buffer for failed request"),(0,bNl.default)(E.listenerCount("data")>0),E.push(C),E.push(null)}),b}};rLt.protocols=["http","https"];XH.HttpsProxyAgent=rLt;function wNl(e){e.resume()}function F_s(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var M_s=H(ure=>{"use strict";Object.defineProperty(ure,"__esModule",{value:!0});var P_s=wt("buffer"),Z0e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};ure.ERRORS=Z0e;function TNl(e){if(!P_s.Buffer.isEncoding(e))throw new Error(Z0e.INVALID_ENCODING)}ure.checkEncoding=TNl;function W_s(e){return typeof e=="number"&&isFinite(e)&&kNl(e)}ure.isFiniteInteger=W_s;function O_s(e,t){if(typeof e=="number"){if(!W_s(e)||e<0)throw new Error(t?Z0e.INVALID_OFFSET:Z0e.INVALID_LENGTH)}else throw new Error(t?Z0e.INVALID_OFFSET_NON_NUMBER:Z0e.INVALID_LENGTH_NON_NUMBER)}function RNl(e){O_s(e,!1)}ure.checkLengthValue=RNl;function NNl(e){O_s(e,!0)}ure.checkOffsetValue=NNl;function DNl(e,t){if(e<0||e>t.length)throw new Error(Z0e.INVALID_TARGET_OFFSET)}ure.checkTargetOffset=DNl;function kNl(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e}function xNl(e){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof P_s.Buffer.prototype[e]>"u")throw new Error(`Platform does not support Buffer.prototype.${e}.`)}ure.bigIntAndBufferInt64Check=xNl});var Y_s=H(d6r=>{"use strict";Object.defineProperty(d6r,"__esModule",{value:!0});var Yh=M_s(),H_s=4096,GNl="utf8",A6r=class e{constructor(t){if(this.length=0,this._encoding=GNl,this._writeOffset=0,this._readOffset=0,e.isSmartBufferOptions(t))if(t.encoding&&(Yh.checkEncoding(t.encoding),this._encoding=t.encoding),t.size)if(Yh.isFiniteInteger(t.size)&&t.size>0)this._buff=Buffer.allocUnsafe(t.size);else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(t.buff)if(Buffer.isBuffer(t.buff))this._buff=t.buff,this.length=t.buff.length;else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(H_s);else{if(typeof t<"u")throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(H_s)}}static fromSize(t,r){return new this({size:t,encoding:r})}static fromBuffer(t,r){return new this({buff:t,encoding:r})}static fromOptions(t){return new this(t)}static isSmartBufferOptions(t){let r=t;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(t){return this._readNumberValue(Buffer.prototype.readInt8,1,t)}readInt16BE(t){return this._readNumberValue(Buffer.prototype.readInt16BE,2,t)}readInt16LE(t){return this._readNumberValue(Buffer.prototype.readInt16LE,2,t)}readInt32BE(t){return this._readNumberValue(Buffer.prototype.readInt32BE,4,t)}readInt32LE(t){return this._readNumberValue(Buffer.prototype.readInt32LE,4,t)}readBigInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,t)}readBigInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,t)}writeInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,t,r),this}insertInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,t,r)}writeInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}insertInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}writeInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}insertInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}writeInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}insertInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}writeInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}insertInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}writeBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}insertBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}writeBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}insertBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}readUInt8(t){return this._readNumberValue(Buffer.prototype.readUInt8,1,t)}readUInt16BE(t){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,t)}readUInt16LE(t){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,t)}readUInt32BE(t){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,t)}readUInt32LE(t){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,t)}readBigUInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,t)}readBigUInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,t)}writeUInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,t,r)}insertUInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,t,r)}writeUInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}insertUInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}writeUInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}insertUInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}writeUInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}insertUInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}writeUInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}insertUInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}writeBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}insertBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}writeBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}insertBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}readFloatBE(t){return this._readNumberValue(Buffer.prototype.readFloatBE,4,t)}readFloatLE(t){return this._readNumberValue(Buffer.prototype.readFloatLE,4,t)}writeFloatBE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}insertFloatBE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}writeFloatLE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}insertFloatLE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}readDoubleBE(t){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,t)}readDoubleLE(t){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,t)}writeDoubleBE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}insertDoubleBE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}writeDoubleLE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}insertDoubleLE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}readString(t,r){let n;typeof t=="number"?(Yh.checkLengthValue(t),n=Math.min(t,this.length-this._readOffset)):(r=t,n=this.length-this._readOffset),typeof r<"u"&&Yh.checkEncoding(r);let a=this._buff.slice(this._readOffset,this._readOffset+n).toString(r||this._encoding);return this._readOffset+=n,a}insertString(t,r,n){return Yh.checkOffsetValue(r),this._handleString(t,!0,r,n)}writeString(t,r,n){return this._handleString(t,!1,r,n)}readStringNT(t){typeof t<"u"&&Yh.checkEncoding(t);let r=this.length;for(let a=this._readOffset;athis.length)throw new Error(Yh.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(t,r){Yh.checkOffsetValue(r),this._ensureCapacity(this.length+t),rthis.length?this.length=r+t:this.length+=t}_ensureWriteable(t,r){let n=typeof r=="number"?r:this._writeOffset;this._ensureCapacity(n+t),n+t>this.length&&(this.length=n+t)}_ensureCapacity(t){let r=this._buff.length;if(t>r){let n=this._buff,a=r*3/2+1;a"u"&&(this._readOffset+=r),a}_insertNumberValue(t,r,n,a){return Yh.checkOffsetValue(a),this.ensureInsertable(r,a),t.call(this._buff,n,a),this._writeOffset+=r,this}_writeNumberValue(t,r,n,a){if(typeof a=="number"){if(a<0)throw new Error(Yh.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);Yh.checkOffsetValue(a)}let o=typeof a=="number"?a:this._writeOffset;return this._ensureWriteable(r,o),t.call(this._buff,n,o),typeof a=="number"?this._writeOffset=Math.max(this._writeOffset,o+r):this._writeOffset+=r,this}};d6r.SmartBuffer=A6r});var p6r=H(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.SOCKS5_NO_ACCEPTABLE_AUTH=HE.SOCKS5_CUSTOM_AUTH_END=HE.SOCKS5_CUSTOM_AUTH_START=HE.SOCKS_INCOMING_PACKET_SIZES=HE.SocksClientState=HE.Socks5Response=HE.Socks5HostType=HE.Socks5Auth=HE.Socks4Response=HE.SocksCommand=HE.ERRORS=HE.DEFAULT_TIMEOUT=void 0;var FNl=3e4;HE.DEFAULT_TIMEOUT=FNl;var ZNl={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"};HE.ERRORS=ZNl;var LNl={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:e=>e+7,Socks4Response:8};HE.SOCKS_INCOMING_PACKET_SIZES=LNl;var Q_s;(function(e){e[e.connect=1]="connect",e[e.bind=2]="bind",e[e.associate=3]="associate"})(Q_s||(HE.SocksCommand=Q_s={}));var X_s;(function(e){e[e.Granted=90]="Granted",e[e.Failed=91]="Failed",e[e.Rejected=92]="Rejected",e[e.RejectedIdent=93]="RejectedIdent"})(X_s||(HE.Socks4Response=X_s={}));var J_s;(function(e){e[e.NoAuth=0]="NoAuth",e[e.GSSApi=1]="GSSApi",e[e.UserPass=2]="UserPass"})(J_s||(HE.Socks5Auth=J_s={}));var VNl=128;HE.SOCKS5_CUSTOM_AUTH_START=VNl;var PNl=254;HE.SOCKS5_CUSTOM_AUTH_END=PNl;var WNl=255;HE.SOCKS5_NO_ACCEPTABLE_AUTH=WNl;var U_s;(function(e){e[e.Granted=0]="Granted",e[e.Failure=1]="Failure",e[e.NotAllowed=2]="NotAllowed",e[e.NetworkUnreachable=3]="NetworkUnreachable",e[e.HostUnreachable=4]="HostUnreachable",e[e.ConnectionRefused=5]="ConnectionRefused",e[e.TTLExpired=6]="TTLExpired",e[e.CommandNotSupported=7]="CommandNotSupported",e[e.AddressNotSupported=8]="AddressNotSupported"})(U_s||(HE.Socks5Response=U_s={}));var K_s;(function(e){e[e.IPv4=1]="IPv4",e[e.Hostname=3]="Hostname",e[e.IPv6=4]="IPv6"})(K_s||(HE.Socks5HostType=K_s={}));var j_s;(function(e){e[e.Created=0]="Created",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.SentInitialHandshake=3]="SentInitialHandshake",e[e.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",e[e.SentAuthentication=5]="SentAuthentication",e[e.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",e[e.SentFinalHandshake=7]="SentFinalHandshake",e[e.ReceivedFinalResponse=8]="ReceivedFinalResponse",e[e.BoundWaitingForConnection=9]="BoundWaitingForConnection",e[e.Established=10]="Established",e[e.Disconnected=11]="Disconnected",e[e.Error=99]="Error"})(j_s||(HE.SocksClientState=j_s={}))});var I6r=H(AFe=>{"use strict";Object.defineProperty(AFe,"__esModule",{value:!0});AFe.shuffleArray=AFe.SocksClientError=void 0;var f6r=class extends Error{constructor(t,r){super(t),this.options=r}};AFe.SocksClientError=f6r;function ONl(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]]}}AFe.shuffleArray=ONl});var h6r=H(dFe=>{"use strict";Object.defineProperty(dFe,"__esModule",{value:!0});dFe.isCorrect=dFe.isInSubnet=void 0;function MNl(e){return this.subnetMask{"use strict";Object.defineProperty(L6,"__esModule",{value:!0});L6.RE_SUBNET_STRING=L6.RE_ADDRESS=L6.GROUPS=L6.BITS=void 0;L6.BITS=32;L6.GROUPS=4;L6.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;L6.RE_SUBNET_STRING=/\/\d{1,2}$/});var iLt=H(nLt=>{"use strict";Object.defineProperty(nLt,"__esModule",{value:!0});nLt.AddressError=void 0;var C6r=class extends Error{constructor(t,r){super(t),this.name="AddressError",r!==null&&(this.parseMessage=r)}};nLt.AddressError=C6r});var _6r=H((sLt,z_s)=>{(function(){var e,t=0xdeadbeefcafe,r=(t&16777215)==15715070;function n(Er,Zt,yn){Er!=null&&(typeof Er=="number"?this.fromNumber(Er,Zt,yn):Zt==null&&typeof Er!="string"?this.fromString(Er,256):this.fromString(Er,Zt))}function a(){return new n(null)}function o(Er,Zt,yn,ls,oa,Fs){for(;--Fs>=0;){var Wa=Zt*this[Er++]+yn[ls]+oa;oa=Math.floor(Wa/67108864),yn[ls++]=Wa&67108863}return oa}function l(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&32767,Ca=Zt>>15;--Fs>=0;){var ld=this[Er]&32767,Rp=this[Er++]>>15,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&32767)<<15)+yn[ls]+(oa&1073741823),oa=(ld>>>30)+(np>>>15)+Ca*Rp+(oa>>>30),yn[ls++]=ld&1073741823}return oa}function A(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&16383,Ca=Zt>>14;--Fs>=0;){var ld=this[Er]&16383,Rp=this[Er++]>>14,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&16383)<<14)+yn[ls]+oa,oa=(ld>>28)+(np>>14)+Ca*Rp,yn[ls++]=ld&268435455}return oa}var f=typeof navigator<"u";f&&r&&navigator.appName=="Microsoft Internet Explorer"?(n.prototype.am=l,e=30):f&&r&&navigator.appName!="Netscape"?(n.prototype.am=o,e=26):(n.prototype.am=A,e=28),n.prototype.DB=e,n.prototype.DM=(1<=0;--Zt)Er[Zt]=this[Zt];Er.t=this.t,Er.s=this.s}function X(Er){this.t=1,this.s=Er<0?-1:0,Er>0?this[0]=Er:Er<-1?this[0]=Er+this.DV:this.t=0}function ae(Er){var Zt=a();return Zt.fromInt(Er),Zt}function ne(Er,Zt){var yn;if(Zt==16)yn=4;else if(Zt==8)yn=3;else if(Zt==256)yn=8;else if(Zt==2)yn=1;else if(Zt==32)yn=5;else if(Zt==4)yn=2;else{this.fromRadix(Er,Zt);return}this.t=0,this.s=0;for(var ls=Er.length,oa=!1,Fs=0;--ls>=0;){var Wa=yn==8?Er[ls]&255:F(Er,ls);if(Wa<0){Er.charAt(ls)=="-"&&(oa=!0);continue}oa=!1,Fs==0?this[this.t++]=Wa:Fs+yn>this.DB?(this[this.t-1]|=(Wa&(1<>this.DB-Fs):this[this.t-1]|=Wa<=this.DB&&(Fs-=this.DB)}yn==8&&Er[0]&128&&(this.s=-1,Fs>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==Er;)--this.t}function fe(Er){if(this.s<0)return"-"+this.negate().toString(Er);var Zt;if(Er==16)Zt=4;else if(Er==8)Zt=3;else if(Er==2)Zt=1;else if(Er==32)Zt=5;else if(Er==4)Zt=2;else return this.toRadix(Er);var yn=(1<0)for(Ca>Ca)>0&&(oa=!0,Fs=B(ls));Wa>=0;)Ca>(Ca+=this.DB-Zt)):(ls=this[Wa]>>(Ca-=Zt)&yn,Ca<=0&&(Ca+=this.DB,--Wa)),ls>0&&(oa=!0),oa&&(Fs+=B(ls));return oa?Fs:"0"}function ue(){var Er=a();return n.ZERO.subTo(this,Er),Er}function de(){return this.s<0?this.negate():this}function be(Er){var Zt=this.s-Er.s;if(Zt!=0)return Zt;var yn=this.t;if(Zt=yn-Er.t,Zt!=0)return this.s<0?-Zt:Zt;for(;--yn>=0;)if((Zt=this[yn]-Er[yn])!=0)return Zt;return 0}function Se(Er){var Zt=1,yn;return(yn=Er>>>16)!=0&&(Er=yn,Zt+=16),(yn=Er>>8)!=0&&(Er=yn,Zt+=8),(yn=Er>>4)!=0&&(Er=yn,Zt+=4),(yn=Er>>2)!=0&&(Er=yn,Zt+=2),(yn=Er>>1)!=0&&(Er=yn,Zt+=1),Zt}function De(){return this.t<=0?0:this.DB*(this.t-1)+Se(this[this.t-1]^this.s&this.DM)}function k(Er,Zt){var yn;for(yn=this.t-1;yn>=0;--yn)Zt[yn+Er]=this[yn];for(yn=Er-1;yn>=0;--yn)Zt[yn]=0;Zt.t=this.t+Er,Zt.s=this.s}function et(Er,Zt){for(var yn=Er;yn=0;--Ca)Zt[Ca+Fs+1]=this[Ca]>>ls|Wa,Wa=(this[Ca]&oa)<=0;--Ca)Zt[Ca]=0;Zt[Fs]=Wa,Zt.t=this.t+Fs+1,Zt.s=this.s,Zt.clamp()}function Me(Er,Zt){Zt.s=this.s;var yn=Math.floor(Er/this.DB);if(yn>=this.t){Zt.t=0;return}var ls=Er%this.DB,oa=this.DB-ls,Fs=(1<>ls;for(var Wa=yn+1;Wa>ls;ls>0&&(Zt[this.t-yn-1]|=(this.s&Fs)<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls-=Er.s}Zt.s=ls<0?-1:0,ls<-1?Zt[yn++]=this.DV+ls:ls>0&&(Zt[yn++]=ls),Zt.t=yn,Zt.clamp()}function St(Er,Zt){var yn=this.abs(),ls=Er.abs(),oa=yn.t;for(Zt.t=oa+ls.t;--oa>=0;)Zt[oa]=0;for(oa=0;oa=0;)Er[yn]=0;for(yn=0;yn=Zt.DV&&(Er[yn+Zt.t]-=Zt.DV,Er[yn+Zt.t+1]=1)}Er.t>0&&(Er[Er.t-1]+=Zt.am(yn,Zt[yn],Er,2*yn,0,1)),Er.s=0,Er.clamp()}function Yt(Er,Zt,yn){var ls=Er.abs();if(!(ls.t<=0)){var oa=this.abs();if(oa.t0?(ls.lShiftTo(ld,Fs),oa.lShiftTo(ld,yn)):(ls.copyTo(Fs),oa.copyTo(yn));var Rp=Fs.t,np=Fs[Rp-1];if(np!=0){var HA=np*(1<1?Fs[Rp-2]>>this.F2:0),df=this.FV/HA,Zs=(1<=0&&(yn[yn.t++]=1,yn.subTo(Dr,yn)),n.ONE.dlShiftTo(Rp,Dr),Dr.subTo(Fs,Fs);Fs.t=0;){var Wn=yn[--Ea]==np?this.DM:Math.floor(yn[Ea]*df+(yn[Ea-1]+so)*Zs);if((yn[Ea]+=Fs.am(0,Wn,yn,Ml,0,Rp))0&&yn.rShiftTo(ld,yn),Wa<0&&n.ZERO.subTo(yn,yn)}}}function Tr(Er){var Zt=a();return this.abs().divRemTo(Er,null,Zt),this.s<0&&Zt.compareTo(n.ZERO)>0&&Er.subTo(Zt,Zt),Zt}function Nr(Er){this.m=Er}function er(Er){return Er.s<0||Er.compareTo(this.m)>=0?Er.mod(this.m):Er}function vt(Er){return Er}function xt(Er){Er.divRemTo(this.m,null,Er)}function Zr(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}function qt(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}Nr.prototype.convert=er,Nr.prototype.revert=vt,Nr.prototype.reduce=xt,Nr.prototype.mulTo=Zr,Nr.prototype.sqrTo=qt;function Xt(){if(this.t<1)return 0;var Er=this[0];if(!(Er&1))return 0;var Zt=Er&3;return Zt=Zt*(2-(Er&15)*Zt)&15,Zt=Zt*(2-(Er&255)*Zt)&255,Zt=Zt*(2-((Er&65535)*Zt&65535))&65535,Zt=Zt*(2-Er*Zt%this.DV)%this.DV,Zt>0?this.DV-Zt:-Zt}function lr(Er){this.m=Er,this.mp=Er.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(Zt,Zt),Zt}function Ar(Er){var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function qr(Er){for(;Er.t<=this.mt2;)Er[Er.t++]=0;for(var Zt=0;Zt>15)*this.mpl&this.um)<<15)&Er.DM;for(yn=Zt+this.m.t,Er[yn]+=this.m.am(0,ls,Er,Zt,0,this.m.t);Er[yn]>=Er.DV;)Er[yn]-=Er.DV,Er[++yn]++}Er.clamp(),Er.drShiftTo(this.m.t,Er),Er.compareTo(this.m)>=0&&Er.subTo(this.m,Er)}function _n(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function ke(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}lr.prototype.convert=cr,lr.prototype.revert=Ar,lr.prototype.reduce=qr,lr.prototype.mulTo=ke,lr.prototype.sqrTo=_n;function jt(){return(this.t>0?this[0]&1:this.s)==0}function Fn(Er,Zt){if(Er>4294967295||Er<1)return n.ONE;var yn=a(),ls=a(),oa=Zt.convert(this),Fs=Se(Er)-1;for(oa.copyTo(yn);--Fs>=0;)if(Zt.sqrTo(yn,ls),(Er&1<0)Zt.mulTo(ls,oa,yn);else{var Wa=yn;yn=ls,ls=Wa}return Zt.revert(yn)}function Nn(Er,Zt){var yn;return Er<256||Zt.isEven()?yn=new Nr(Zt):yn=new lr(Zt),this.exp(Er,yn)}n.prototype.copyTo=Q,n.prototype.fromInt=X,n.prototype.fromString=ne,n.prototype.clamp=ce,n.prototype.dlShiftTo=k,n.prototype.drShiftTo=et,n.prototype.lShiftTo=ct,n.prototype.rShiftTo=Me,n.prototype.subTo=je,n.prototype.multiplyTo=St,n.prototype.squareTo=At,n.prototype.divRemTo=Yt,n.prototype.invDigit=Xt,n.prototype.isEven=jt,n.prototype.exp=Fn,n.prototype.toString=fe,n.prototype.negate=ue,n.prototype.abs=de,n.prototype.compareTo=be,n.prototype.bitLength=De,n.prototype.mod=Tr,n.prototype.modPowInt=Nn,n.ZERO=ae(0),n.ONE=ae(1);function Hi(){var Er=a();return this.copyTo(Er),Er}function po(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>24}function xi(){return this.t==0?this.s:this[0]<<16>>16}function io(Er){return Math.floor(Math.LN2*this.DB/Math.log(Er))}function ga(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function Ya(Er){if(Er==null&&(Er=10),this.signum()==0||Er<2||Er>36)return"0";var Zt=this.chunkSize(Er),yn=Math.pow(Er,Zt),ls=ae(yn),oa=a(),Fs=a(),Wa="";for(this.divRemTo(ls,oa,Fs);oa.signum()>0;)Wa=(yn+Fs.intValue()).toString(Er).substr(1)+Wa,oa.divRemTo(ls,oa,Fs);return Fs.intValue().toString(Er)+Wa}function Gc(Er,Zt){this.fromInt(0),Zt==null&&(Zt=10);for(var yn=this.chunkSize(Zt),ls=Math.pow(Zt,yn),oa=!1,Fs=0,Wa=0,Ca=0;Ca=yn&&(this.dMultiply(ls),this.dAddOffset(Wa,0),Fs=0,Wa=0)}Fs>0&&(this.dMultiply(Math.pow(Zt,Fs)),this.dAddOffset(Wa,0)),oa&&n.ZERO.subTo(this,this)}function cl(Er,Zt,yn){if(typeof Zt=="number")if(Er<2)this.fromInt(1);else for(this.fromNumber(Er,yn),this.testBit(Er-1)||this.bitwiseTo(n.ONE.shiftLeft(Er-1),Qi,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(Zt);)this.dAddOffset(2,0),this.bitLength()>Er&&this.subTo(n.ONE.shiftLeft(Er-1),this);else{var ls=new Array,oa=Er&7;ls.length=(Er>>3)+1,Zt.nextBytes(ls),oa>0?ls[0]&=(1<0)for(yn>yn)!=(this.s&this.DM)>>yn&&(Zt[oa++]=ls|this.s<=0;)yn<8?(ls=(this[Er]&(1<>(yn+=this.DB-8)):(ls=this[Er]>>(yn-=8)&255,yn<=0&&(yn+=this.DB,--Er)),ls&128&&(ls|=-256),oa==0&&(this.s&128)!=(ls&128)&&++oa,(oa>0||ls!=this.s)&&(Zt[oa++]=ls);return Zt}function Hr(Er){return this.compareTo(Er)==0}function Wr(Er){return this.compareTo(Er)<0?this:Er}function Ft(Er){return this.compareTo(Er)>0?this:Er}function zr(Er,Zt,yn){var ls,oa,Fs=Math.min(Er.t,this.t);for(ls=0;ls>=16,Zt+=16),Er&255||(Er>>=8,Zt+=8),Er&15||(Er>>=4,Zt+=4),Er&3||(Er>>=2,Zt+=2),Er&1||++Zt,Zt}function vu(){for(var Er=0;Er=this.t?this.s!=0:(this[Zt]&1<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls+=Er.s}Zt.s=ls<0?-1:0,ls>0?Zt[yn++]=ls:ls<-1&&(Zt[yn++]=this.DV+ls),Zt.t=yn,Zt.clamp()}function Ul(Er){var Zt=a();return this.addTo(Er,Zt),Zt}function Xu(Er){var Zt=a();return this.subTo(Er,Zt),Zt}function Da(Er){var Zt=a();return this.multiplyTo(Er,Zt),Zt}function pu(){var Er=a();return this.squareTo(Er),Er}function _g(Er){var Zt=a();return this.divRemTo(Er,Zt,null),Zt}function mI(Er){var Zt=a();return this.divRemTo(Er,null,Zt),Zt}function Qh(Er){var Zt=a(),yn=a();return this.divRemTo(Er,Zt,yn),new Array(Zt,yn)}function Ri(Er){this[this.t]=this.am(0,Er-1,this,0,0,this.t),++this.t,this.clamp()}function Do(Er,Zt){if(Er!=0){for(;this.t<=Zt;)this[this.t++]=0;for(this[Zt]+=Er;this[Zt]>=this.DV;)this[Zt]-=this.DV,++Zt>=this.t&&(this[this.t++]=0),++this[Zt]}}function Wt(){}function Hu(Er){return Er}function Ru(Er,Zt,yn){Er.multiplyTo(Zt,yn)}function Vs(Er,Zt){Er.squareTo(Zt)}Wt.prototype.convert=Hu,Wt.prototype.revert=Hu,Wt.prototype.mulTo=Ru,Wt.prototype.sqrTo=Vs;function Ju(Er){return this.exp(Er,new Wt)}function Yn(Er,Zt,yn){var ls=Math.min(this.t+Er.t,Zt);for(yn.s=0,yn.t=ls;ls>0;)yn[--ls]=0;var oa;for(oa=yn.t-this.t;ls=0;)yn[ls]=0;for(ls=Math.max(Zt-this.t,0);ls2*this.m.t)return Er.mod(this.m);if(Er.compareTo(this.m)<0)return Er;var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function GA(Er){return Er}function $i(Er){for(Er.drShiftTo(this.m.t-1,this.r2),Er.t>this.m.t+1&&(Er.t=this.m.t+1,Er.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);Er.compareTo(this.r2)<0;)Er.dAddOffset(1,this.m.t+1);for(Er.subTo(this.r2,Er);Er.compareTo(this.m)>=0;)Er.subTo(this.m,Er)}function dl(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function Uf(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}Eg.prototype.convert=OA,Eg.prototype.revert=GA,Eg.prototype.reduce=$i,Eg.prototype.mulTo=Uf,Eg.prototype.sqrTo=dl;function Kd(Er,Zt){var yn=Er.bitLength(),ls,oa=ae(1),Fs;if(yn<=0)return oa;yn<18?ls=1:yn<48?ls=3:yn<144?ls=4:yn<768?ls=5:ls=6,yn<8?Fs=new Nr(Zt):Zt.isEven()?Fs=new Eg(Zt):Fs=new lr(Zt);var Wa=new Array,Ca=3,ld=ls-1,Rp=(1<1){var np=a();for(Fs.sqrTo(Wa[1],np);Ca<=Rp;)Wa[Ca]=a(),Fs.mulTo(np,Wa[Ca-2],Wa[Ca]),Ca+=2}var HA=Er.t-1,df,Zs=!0,so=a(),Ea;for(yn=Se(Er[HA])-1;HA>=0;){for(yn>=ld?df=Er[HA]>>yn-ld&Rp:(df=(Er[HA]&(1<0&&(df|=Er[HA-1]>>this.DB+yn-ld)),Ca=ls;!(df&1);)df>>=1,--Ca;if((yn-=Ca)<0&&(yn+=this.DB,--HA),Zs)Wa[df].copyTo(oa),Zs=!1;else{for(;Ca>1;)Fs.sqrTo(oa,so),Fs.sqrTo(so,oa),Ca-=2;Ca>0?Fs.sqrTo(oa,so):(Ea=oa,oa=so,so=Ea),Fs.mulTo(so,Wa[df],oa)}for(;HA>=0&&!(Er[HA]&1<0&&(Zt.rShiftTo(Fs,Zt),yn.rShiftTo(Fs,yn));Zt.signum()>0;)(oa=Zt.getLowestSetBit())>0&&Zt.rShiftTo(oa,Zt),(oa=yn.getLowestSetBit())>0&&yn.rShiftTo(oa,yn),Zt.compareTo(yn)>=0?(Zt.subTo(yn,Zt),Zt.rShiftTo(1,Zt)):(yn.subTo(Zt,yn),yn.rShiftTo(1,yn));return Fs>0&&yn.lShiftTo(Fs,yn),yn}function oo(Er){if(Er<=0)return 0;var Zt=this.DV%Er,yn=this.s<0?Er-1:0;if(this.t>0)if(Zt==0)yn=this[0]%Er;else for(var ls=this.t-1;ls>=0;--ls)yn=(Zt*yn+this[ls])%Er;return yn}function Ki(Er){var Zt=Er.isEven();if(this.isEven()&&Zt||Er.signum()==0)return n.ZERO;for(var yn=Er.clone(),ls=this.clone(),oa=ae(1),Fs=ae(0),Wa=ae(0),Ca=ae(1);yn.signum()!=0;){for(;yn.isEven();)yn.rShiftTo(1,yn),Zt?((!oa.isEven()||!Fs.isEven())&&(oa.addTo(this,oa),Fs.subTo(Er,Fs)),oa.rShiftTo(1,oa)):Fs.isEven()||Fs.subTo(Er,Fs),Fs.rShiftTo(1,Fs);for(;ls.isEven();)ls.rShiftTo(1,ls),Zt?((!Wa.isEven()||!Ca.isEven())&&(Wa.addTo(this,Wa),Ca.subTo(Er,Ca)),Wa.rShiftTo(1,Wa)):Ca.isEven()||Ca.subTo(Er,Ca),Ca.rShiftTo(1,Ca);yn.compareTo(ls)>=0?(yn.subTo(ls,yn),Zt&&oa.subTo(Wa,oa),Fs.subTo(Ca,Fs)):(ls.subTo(yn,ls),Zt&&Wa.subTo(oa,Wa),Ca.subTo(Fs,Ca))}if(ls.compareTo(n.ONE)!=0)return n.ZERO;if(Ca.compareTo(Er)>=0)return Ca.subtract(Er);if(Ca.signum()<0)Ca.addTo(Er,Ca);else return Ca;return Ca.signum()<0?Ca.add(Er):Ca}var cc=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Xs=(1<<26)/cc[cc.length-1];function ws(Er){var Zt,yn=this.abs();if(yn.t==1&&yn[0]<=cc[cc.length-1]){for(Zt=0;Zt>1,Er>cc.length&&(Er=cc.length);for(var oa=a(),Fs=0;Fs>8&255,Dc[As++]^=Er>>16&255,Dc[As++]^=Er>>24&255,As>=MA&&(As-=MA)}function cm(){Tf(new Date().getTime())}if(Dc==null){Dc=new Array,As=0;var Fl;if(typeof window<"u"&&window.crypto){if(window.crypto.getRandomValues){var rc=new Uint8Array(32);for(window.crypto.getRandomValues(rc),Fl=0;Fl<32;++Fl)Dc[As++]=rc[Fl]}else if(navigator.appName=="Netscape"&&navigator.appVersion<"5"){var sd=window.crypto.random(32);for(Fl=0;Fl>>8,Dc[As++]=Fl&255;As=0,cm()}function Om(){if(Ma==null){for(cm(),Ma=Mp(),Ma.init(Dc),As=0;As{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function t(l){return n(o(l),arguments)}function r(l,A){return t.apply(null,[l].concat(A||[]))}function n(l,A){var f=1,I=l.length,C,b="",E,N,B,F,Q,X,ae,ne;for(E=0;E=0),B.type){case"b":C=parseInt(C,10).toString(2);break;case"c":C=String.fromCharCode(parseInt(C,10));break;case"d":case"i":C=parseInt(C,10);break;case"j":C=JSON.stringify(C,null,B.width?parseInt(B.width):0);break;case"e":C=B.precision?parseFloat(C).toExponential(B.precision):parseFloat(C).toExponential();break;case"f":C=B.precision?parseFloat(C).toFixed(B.precision):parseFloat(C);break;case"g":C=B.precision?String(Number(C.toPrecision(B.precision))):parseFloat(C);break;case"o":C=(parseInt(C,10)>>>0).toString(8);break;case"s":C=String(C),C=B.precision?C.substring(0,B.precision):C;break;case"t":C=String(!!C),C=B.precision?C.substring(0,B.precision):C;break;case"T":C=Object.prototype.toString.call(C).slice(8,-1).toLowerCase(),C=B.precision?C.substring(0,B.precision):C;break;case"u":C=parseInt(C,10)>>>0;break;case"v":C=C.valueOf(),C=B.precision?C.substring(0,B.precision):C;break;case"x":C=(parseInt(C,10)>>>0).toString(16);break;case"X":C=(parseInt(C,10)>>>0).toString(16).toUpperCase();break}e.json.test(B.type)?b+=C:(e.number.test(B.type)&&(!ae||B.sign)?(ne=ae?"+":"-",C=C.toString().replace(e.sign,"")):ne="",Q=B.pad_char?B.pad_char==="0"?"0":B.pad_char.charAt(1):" ",X=B.width-(ne+C).length,F=B.width&&X>0?Q.repeat(X):"",b+=B.align?ne+C+F:Q==="0"?ne+F+C:F+ne+C)}return b}var a=Object.create(null);function o(l){if(a[l])return a[l];for(var A=l,f,I=[],C=0;A;){if((f=e.text.exec(A))!==null)I.push(f[0]);else if((f=e.modulo.exec(A))!==null)I.push("%");else if((f=e.placeholder.exec(A))!==null){if(f[2]){C|=1;var b=[],E=f[2],N=[];if((N=e.key.exec(E))!==null)for(b.push(N[1]);(E=E.substring(N[0].length))!=="";)if((N=e.key_access.exec(E))!==null)b.push(N[1]);else if((N=e.index_access.exec(E))!==null)b.push(N[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=b}else C|=2;if(C===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");I.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");A=A.substring(f[0].length)}return a[l]=I}typeof oLt<"u"&&(oLt.sprintf=t,oLt.vsprintf=r),typeof window<"u"&&(window.sprintf=t,window.vsprintf=r,typeof define=="function"&&define.amd&&define(function(){return{sprintf:t,vsprintf:r}}))})()});var b6r=H(V6=>{"use strict";var YNl=V6&&V6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),QNl=V6&&V6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),e0s=V6&&V6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&YNl(t,e,r);return QNl(t,e),t};Object.defineProperty(V6,"__esModule",{value:!0});V6.Address4=void 0;var q_s=e0s(h6r()),nJ=e0s(m6r()),$_s=iLt(),yze=_6r(),pFe=_ze(),y6r=class e{constructor(t){this.groups=nJ.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=q_s.isCorrect(nJ.BITS),this.isInSubnet=q_s.isInSubnet,this.address=t;let r=nJ.RE_SUBNET_STRING.exec(t);if(r){if(this.parsedSubnet=r[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>nJ.BITS)throw new $_s.AddressError("Invalid subnet mask.");t=t.replace(nJ.RE_SUBNET_STRING,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}static isValid(t){try{return new e(t),!0}catch{return!1}}parse(t){let r=t.split(".");if(!t.match(nJ.RE_ADDRESS))throw new $_s.AddressError("Invalid IPv4 address.");return r}correctForm(){return this.parsedAddress.map(t=>parseInt(t,10)).join(".")}static fromHex(t){let r=t.replace(/:/g,"").padStart(8,"0"),n=[],a;for(a=0;a<8;a+=2){let o=r.slice(a,a+2);n.push(parseInt(o,16))}return new e(n.join("."))}static fromInteger(t){return e.fromHex(t.toString(16))}static fromArpa(t){let n=t.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new e(n)}toHex(){return this.parsedAddress.map(t=>(0,pFe.sprintf)("%02x",parseInt(t,10))).join(":")}toArray(){return this.parsedAddress.map(t=>parseInt(t,10))}toGroup6(){let t=[],r;for(r=0;r(0,pFe.sprintf)("%02x",parseInt(t,10))).join(""),16)}_startAddress(){return new yze.BigInteger(this.mask()+"0".repeat(nJ.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new yze.BigInteger(this.mask()+"1".repeat(nJ.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}static fromBigInteger(t){return e.fromInteger(parseInt(t.toString(),10))}mask(t){return t===void 0&&(t=this.subnetMask),this.getBitsBase2(0,t)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}reverseForm(t){t||(t={});let r=this.correctForm().split(".").reverse().join(".");return t.omitSuffix?r:(0,pFe.sprintf)("%s.in-addr.arpa.",r)}isMulticast(){return this.isInSubnet(new e("224.0.0.0/4"))}binaryZeroPad(){return this.bigInteger().toString(2).padStart(nJ.BITS,"0")}groupForV6(){let t=this.parsedAddress;return this.address.replace(nJ.RE_ADDRESS,(0,pFe.sprintf)('%s.%s',t.slice(0,2).join("."),t.slice(2,4).join(".")))}};V6.Address4=y6r});var E6r=H(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.RE_URL_WITH_PORT=rB.RE_URL=rB.RE_ZONE_STRING=rB.RE_SUBNET_STRING=rB.RE_BAD_ADDRESS=rB.RE_BAD_CHARACTERS=rB.TYPES=rB.SCOPES=rB.GROUPS=rB.BITS=void 0;rB.BITS=128;rB.GROUPS=8;rB.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"};rB.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"};rB.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi;rB.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;rB.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/;rB.RE_ZONE_STRING=/%.*$/;rB.RE_URL=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/);rB.RE_URL_WITH_PORT=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)});var S6r=H(P6=>{"use strict";Object.defineProperty(P6,"__esModule",{value:!0});P6.simpleGroup=P6.spanLeadingZeroes=P6.spanAll=P6.spanAllZeroes=void 0;var t0s=_ze();function r0s(e){return e.replace(/(0+)/g,'$1')}P6.spanAllZeroes=r0s;function XNl(e,t=0){return e.split("").map((n,a)=>(0,t0s.sprintf)('%s',n,a+t,r0s(n))).join("")}P6.spanAll=XNl;function n0s(e){return e.replace(/^(0+)/,'$1')}function JNl(e){return e.split(":").map(r=>n0s(r)).join(":")}P6.spanLeadingZeroes=JNl;function UNl(e,t=0){return e.split(":").map((n,a)=>/group-v4/.test(n)?n:(0,t0s.sprintf)('%s',a+t,n0s(n)))}P6.simpleGroup=UNl});var i0s=H(vD=>{"use strict";var KNl=vD&&vD.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),jNl=vD&&vD.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),zNl=vD&&vD.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&KNl(t,e,r);return jNl(t,e),t};Object.defineProperty(vD,"__esModule",{value:!0});vD.possibleElisions=vD.simpleRegularExpression=vD.ADDRESS_BOUNDARY=vD.padGroup=vD.groupPossibilities=void 0;var qNl=zNl(E6r()),fFe=_ze();function cLt(e){return(0,fFe.sprintf)("(%s)",e.join("|"))}vD.groupPossibilities=cLt;function aLt(e){return e.length<4?(0,fFe.sprintf)("0{0,%d}%s",4-e.length,e):e}vD.padGroup=aLt;vD.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]";function $Nl(e){let t=[];e.forEach((n,a)=>{parseInt(n,16)===0&&t.push(a)});let r=t.map(n=>e.map((a,o)=>{if(o===n){let l=o===0||o===qNl.GROUPS-1?":":"";return cLt([aLt(a),l])}return aLt(a)}).join(":"));return r.push(e.map(aLt).join(":")),cLt(r)}vD.simpleRegularExpression=$Nl;function eDl(e,t,r){let n=t?"":":",a=r?"":":",o=[];!t&&!r&&o.push("::"),t&&r&&o.push(""),(r&&!t||!r&&t)&&o.push(":"),o.push((0,fFe.sprintf)("%s(:0{1,4}){1,%d}",n,e-1)),o.push((0,fFe.sprintf)("(0{1,4}:){1,%d}%s",e-1,a)),o.push((0,fFe.sprintf)("(0{1,4}:){%d}0{1,4}",e-1));for(let l=1;l{"use strict";var tDl=W6&&W6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),rDl=W6&&W6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uLt=W6&&W6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&tDl(t,e,r);return rDl(t,e),t};Object.defineProperty(W6,"__esModule",{value:!0});W6.Address6=void 0;var s0s=uLt(h6r()),v6r=uLt(m6r()),YE=uLt(E6r()),B6r=uLt(S6r()),L0e=b6r(),V0e=i0s(),gre=iLt(),fL=_6r(),IL=_ze();function lLt(e){if(!e)throw new Error("Assertion failed.")}function nDl(e){let t=/(\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}function iDl(e){return e=e.replace(/^(0{1,})([1-9]+)$/,'$1$2'),e=e.replace(/^(0{1,})(0)$/,'$1$2'),e}function sDl(e,t){let r=[],n=[],a;for(a=0;at[1]&&n.push(e[a]);return r.concat(["compact"]).concat(n)}function o0s(e){return(0,IL.sprintf)("%04x",parseInt(e,16))}function a0s(e){return e&255}var w6r=class e{constructor(t,r){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=s0s.isInSubnet,this.isCorrect=s0s.isCorrect(YE.BITS),r===void 0?this.groups=YE.GROUPS:this.groups=r,this.address=t;let n=YE.RE_SUBNET_STRING.exec(t);if(n){if(this.parsedSubnet=n[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>YE.BITS)throw new gre.AddressError("Invalid subnet mask.");t=t.replace(YE.RE_SUBNET_STRING,"")}else if(/\//.test(t))throw new gre.AddressError("Invalid subnet mask.");let a=YE.RE_ZONE_STRING.exec(t);a&&(this.zone=a[0],t=t.replace(YE.RE_ZONE_STRING,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(t){try{return new e(t),!0}catch{return!1}}static fromBigInteger(t){let r=t.toString(16).padStart(32,"0"),n=[],a;for(a=0;a65536)&&(n=null)):n=null,{address:new e(r),port:n}}static fromAddress4(t){let r=new L0e.Address4(t),n=YE.BITS-(v6r.BITS-r.subnetMask);return new e(`::ffff:${r.correctForm()}/${n}`)}static fromArpa(t){let r=t.replace(/(\.ip6\.arpa)?\.$/,""),n=7;if(r.length!==63)throw new gre.AddressError("Invalid 'ip6.arpa' form.");let a=r.split(".").reverse();for(let o=n;o>0;o--){let l=o*4;a.splice(l,0,":")}return r=a.join(""),new e(r)}microsoftTranscription(){return(0,IL.sprintf)("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))}mask(t=this.subnetMask){return this.getBitsBase2(0,t)}possibleSubnets(t=128){let r=YE.BITS-this.subnetMask,n=Math.abs(t-YE.BITS),a=r-n;return a<0?"0":nDl(new fL.BigInteger("2",10).pow(a).toString(10))}_startAddress(){return new fL.BigInteger(this.mask()+"0".repeat(YE.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new fL.BigInteger(this.mask()+"1".repeat(YE.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}getScope(){let t=YE.SCOPES[this.getBits(12,16).intValue()];return this.getType()==="Global unicast"&&t!=="Link local"&&(t="Global"),t||"Unknown"}getType(){for(let t of Object.keys(YE.TYPES))if(this.isInSubnet(new e(t)))return YE.TYPES[t];return"Global unicast"}getBits(t,r){return new fL.BigInteger(this.getBitsBase2(t,r),2)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}getBitsBase16(t,r){let n=r-t;if(n%4!==0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,r).toString(16).padStart(n/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,YE.BITS)}reverseForm(t){t||(t={});let r=Math.floor(this.subnetMask/4),n=this.canonicalForm().replace(/:/g,"").split("").slice(0,r).reverse().join(".");return r>0?t.omitSuffix?n:(0,IL.sprintf)("%s.ip6.arpa.",n):t.omitSuffix?"":"ip6.arpa."}correctForm(){let t,r=[],n=0,a=[];for(t=0;t0&&(n>1&&a.push([t-n,t-1]),n=0)}n>1&&a.push([this.parsedAddress.length-n,this.parsedAddress.length-1]);let o=a.map(A=>A[1]-A[0]+1);if(a.length>0){let A=o.indexOf(Math.max(...o));r=sDl(this.parsedAddress,a[A])}else r=this.parsedAddress;for(t=0;t1?"s":"",r.join("")),t.replace(YE.RE_BAD_CHARACTERS,'$1'));let n=t.match(YE.RE_BAD_ADDRESS);if(n)throw new gre.AddressError((0,IL.sprintf)("Address failed regex: %s",n.join("")),t.replace(YE.RE_BAD_ADDRESS,'$1'));let a=[],o=t.split("::");if(o.length===2){let l=o[0].split(":"),A=o[1].split(":");l.length===1&&l[0]===""&&(l=[]),A.length===1&&A[0]===""&&(A=[]);let f=this.groups-(l.length+A.length);if(!f)throw new gre.AddressError("Error parsing groups");this.elidedGroups=f,this.elisionBegin=l.length,this.elisionEnd=l.length+this.elidedGroups,a=a.concat(l);for(let I=0;I(0,IL.sprintf)("%x",parseInt(l,16))),a.length!==this.groups)throw new gre.AddressError("Incorrect number of groups found");return a}canonicalForm(){return this.parsedAddress.map(o0s).join(":")}decimal(){return this.parsedAddress.map(t=>(0,IL.sprintf)("%05d",parseInt(t,16))).join(":")}bigInteger(){return new fL.BigInteger(this.parsedAddress.map(o0s).join(""),16)}to4(){let t=this.binaryZeroPad().split("");return L0e.Address4.fromHex(new fL.BigInteger(t.slice(96,128).join(""),2).toString(16))}to4in6(){let t=this.to4(),n=new e(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),a="";return/:$/.test(n)||(a=":"),n+a+t.address}inspectTeredo(){let t=this.getBitsBase16(0,32),r=this.getBits(80,96).xor(new fL.BigInteger("ffff",16)).toString(),n=L0e.Address4.fromHex(this.getBitsBase16(32,64)),a=L0e.Address4.fromHex(this.getBits(96,128).xor(new fL.BigInteger("ffffffff",16)).toString(16)),o=this.getBits(64,80),l=this.getBitsBase2(64,80),A=o.testBit(15),f=o.testBit(14),I=o.testBit(8),C=o.testBit(9),b=new fL.BigInteger(l.slice(2,6)+l.slice(8,16),2).toString(10);return{prefix:(0,IL.sprintf)("%s:%s",t.slice(0,4),t.slice(4,8)),server4:n.address,client4:a.address,flags:l,coneNat:A,microsoft:{reserved:f,universalLocal:C,groupIndividual:I,nonce:b},udpPort:r}}inspect6to4(){let t=this.getBitsBase16(0,16),r=L0e.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:(0,IL.sprintf)("%s",t.slice(0,4)),gateway:r.address}}to6to4(){if(!this.is4())return null;let t=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new e(t)}toByteArray(){let t=this.bigInteger().toByteArray();return t.length===17&&t[0]===0?t.slice(1):t}toUnsignedByteArray(){return this.toByteArray().map(a0s)}static fromByteArray(t){return this.fromUnsignedByteArray(t.map(a0s))}static fromUnsignedByteArray(t){let r=new fL.BigInteger("256",10),n=new fL.BigInteger("0",10),a=new fL.BigInteger("1",10);for(let o=t.length-1;o>=0;o--)n=n.add(a.multiply(new fL.BigInteger(t[o].toString(10),10))),a=a.multiply(r);return e.fromBigInteger(n)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return this.getBitsBase2(0,64)==="1111111010000000000000000000000000000000000000000000000000000000"}isMulticast(){return this.getType()==="Multicast"}is4(){return this.v4}isTeredo(){return this.isInSubnet(new e("2001::/32"))}is6to4(){return this.isInSubnet(new e("2002::/16"))}isLoopback(){return this.getType()==="Loopback"}href(t){return t===void 0?t="":t=(0,IL.sprintf)(":%s",t),(0,IL.sprintf)("http://[%s]%s/",this.correctForm(),t)}link(t){t||(t={}),t.className===void 0&&(t.className=""),t.prefix===void 0&&(t.prefix="/#address="),t.v4===void 0&&(t.v4=!1);let r=this.correctForm;return t.v4&&(r=this.to4in6),t.className?(0,IL.sprintf)('%2$s',t.prefix,r.call(this),t.className):(0,IL.sprintf)('%2$s',t.prefix,r.call(this))}group(){if(this.elidedGroups===0)return B6r.simpleGroup(this.address).join(":");lLt(typeof this.elidedGroups=="number"),lLt(typeof this.elisionBegin=="number");let t=[],[r,n]=this.address.split("::");r.length?t.push(...B6r.simpleGroup(r)):t.push("");let a=["hover-group"];for(let o=this.elisionBegin;o',a.join(" "))),n.length?t.push(...B6r.simpleGroup(n,this.elisionEnd)):t.push(""),this.is4()&&(lLt(this.address4 instanceof L0e.Address4),t.pop(),t.push(this.address4.groupForV6())),t.join(":")}regularExpressionString(t=!1){let r=[],n=new e(this.correctForm());if(n.elidedGroups===0)r.push((0,V0e.simpleRegularExpression)(n.parsedAddress));else if(n.elidedGroups===YE.GROUPS)r.push((0,V0e.possibleElisions)(YE.GROUPS));else{let a=n.address.split("::");a[0].length&&r.push((0,V0e.simpleRegularExpression)(a[0].split(":"))),lLt(typeof n.elidedGroups=="number"),r.push((0,V0e.possibleElisions)(n.elidedGroups,a[0].length!==0,a[1].length!==0)),a[1].length&&r.push((0,V0e.simpleRegularExpression)(a[1].split(":"))),r=[r.join(":")]}return t||(r=["(?=^|",V0e.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...r,")(?=[^\\w\\:]|",V0e.ADDRESS_BOUNDARY,"|$)"]),r.join("")}regularExpression(t=!1){return new RegExp(this.regularExpressionString(t),"i")}};W6.Address6=w6r});var T6r=H(aF=>{"use strict";var oDl=aF&&aF.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),aDl=aF&&aF.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cDl=aF&&aF.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&oDl(t,e,r);return aDl(t,e),t};Object.defineProperty(aF,"__esModule",{value:!0});aF.v6=aF.AddressError=aF.Address6=aF.Address4=void 0;var lDl=b6r();Object.defineProperty(aF,"Address4",{enumerable:!0,get:function(){return lDl.Address4}});var uDl=c0s();Object.defineProperty(aF,"Address6",{enumerable:!0,get:function(){return uDl.Address6}});var gDl=iLt();Object.defineProperty(aF,"AddressError",{enumerable:!0,get:function(){return gDl.AddressError}});var ADl=cDl(S6r());aF.v6={helpers:ADl}});var p0s=H(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.ipToBuffer=JH.int32ToIpv4=JH.ipv4ToInt32=JH.validateSocksClientChainOptions=JH.validateSocksClientOptions=void 0;var hL=I6r(),BD=p6r(),dDl=wt("stream"),R6r=T6r(),l0s=wt("net");function pDl(e,t=["connect","bind","associate"]){if(!BD.SocksCommand[e.command])throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommand,e);if(t.indexOf(e.command)===-1)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandForOperation,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!A0s(e.proxy))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);if(u0s(e.proxy,e),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e);if(e.existing_socket&&!(e.existing_socket instanceof dDl.Duplex))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsExistingSocket,e)}JH.validateSocksClientOptions=pDl;function fDl(e){if(e.command!=="connect")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandChain,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!(e.proxies&&Array.isArray(e.proxies)&&e.proxies.length>=2))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxiesLength,e);if(e.proxies.forEach(t=>{if(!A0s(t))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);u0s(t,e)}),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e)}JH.validateSocksClientChainOptions=fDl;function u0s(e,t){if(e.custom_auth_method!==void 0){if(e.custom_auth_methodBD.SOCKS5_CUSTOM_AUTH_END)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthRange,t);if(e.custom_auth_request_handler===void 0||typeof e.custom_auth_request_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_size===void 0)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_handler===void 0||typeof e.custom_auth_response_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t)}}function g0s(e){return e&&typeof e.host=="string"&&typeof e.port=="number"&&e.port>=0&&e.port<=65535}function A0s(e){return e&&(typeof e.host=="string"||typeof e.ipaddress=="string")&&typeof e.port=="number"&&e.port>=0&&e.port<=65535&&(e.type===4||e.type===5)}function d0s(e){return typeof e=="number"&&e>0}function IDl(e){return new R6r.Address4(e).toArray().reduce((r,n)=>(r<<8)+n,0)}JH.ipv4ToInt32=IDl;function hDl(e){let t=e>>>24&255,r=e>>>16&255,n=e>>>8&255,a=e&255;return[t,r,n,a].join(".")}JH.int32ToIpv4=hDl;function mDl(e){if(l0s.isIPv4(e)){let t=new R6r.Address4(e);return Buffer.from(t.toArray())}else if(l0s.isIPv6(e)){let t=new R6r.Address6(e);return Buffer.from(t.canonicalForm().split(":").map(r=>r.padStart(4,"0")).join(""),"hex")}else throw new Error("Invalid IP address format")}JH.ipToBuffer=mDl});var f0s=H(gLt=>{"use strict";Object.defineProperty(gLt,"__esModule",{value:!0});gLt.ReceiveBuffer=void 0;var N6r=class{constructor(t=4096){this.buffer=Buffer.allocUnsafe(t),this.offset=0,this.originalSize=t}get length(){return this.offset}append(t){if(!Buffer.isBuffer(t))throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+t.length>=this.buffer.length){let r=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+t.length)),r.copy(this.buffer)}return t.copy(this.buffer,this.offset),this.offset+=t.length}peek(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,t)}get(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");let r=Buffer.allocUnsafe(t);return this.buffer.slice(0,t).copy(r),this.buffer.copyWithin(0,t,t+this.offset-t),this.offset-=t,r}};gLt.ReceiveBuffer=N6r});var I0s=H(Xue=>{"use strict";var IFe=Xue&&Xue.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(Xue,"__esModule",{value:!0});Xue.SocksClientError=Xue.SocksClient=void 0;var CDl=wt("events"),hFe=wt("net"),eP=Y_s(),lu=p6r(),KO=p0s(),_Dl=f0s(),k6r=I6r();Object.defineProperty(Xue,"SocksClientError",{enumerable:!0,get:function(){return k6r.SocksClientError}});var D6r=T6r(),x6r=class e extends CDl.EventEmitter{constructor(t){super(),this.options=Object.assign({},t),(0,KO.validateSocksClientOptions)(t),this.setState(lu.SocksClientState.Created)}static createConnection(t,r){return new Promise((n,a)=>{try{(0,KO.validateSocksClientOptions)(t,["connect"])}catch(l){return typeof r=="function"?(r(l),n(l)):a(l)}let o=new e(t);o.connect(t.existing_socket),o.once("established",l=>{o.removeAllListeners(),typeof r=="function"&&r(null,l),n(l)}),o.once("error",l=>{o.removeAllListeners(),typeof r=="function"?(r(l),n(l)):a(l)})})}static createConnectionChain(t,r){return new Promise((n,a)=>IFe(this,void 0,void 0,function*(){try{(0,KO.validateSocksClientChainOptions)(t)}catch(o){return typeof r=="function"?(r(o),n(o)):a(o)}t.randomizeChain&&(0,k6r.shuffleArray)(t.proxies);try{let o;for(let l=0;lthis.onDataReceivedHandler(n),this.onClose=()=>this.onCloseHandler(),this.onError=n=>this.onErrorHandler(n),this.onConnect=()=>this.onConnectHandler();let r=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||lu.DEFAULT_TIMEOUT);r.unref&&typeof r.unref=="function"&&r.unref(),t?this.socket=t:this.socket=new hFe.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(lu.SocksClientState.Connecting),this.receiveBuffer=new _Dl.ReceiveBuffer,t?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),this.options.set_tcp_nodelay!==void 0&&this.options.set_tcp_nodelay!==null&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",n=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let a=this.receiveBuffer.get(this.receiveBuffer.length);n.socket.emit("data",a)}n.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.BoundWaitingForConnection&&this.closeSocket(lu.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(lu.SocksClientState.Connected),this.options.proxy.type===4?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(lu.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(t){this.receiveBuffer.append(t),this.processData()}processData(){for(;this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===lu.SocksClientState.SentInitialHandshake)this.options.proxy.type===4?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===lu.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===lu.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===lu.SocksClientState.BoundWaitingForConnection)this.options.proxy.type===4?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(lu.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(lu.ERRORS.SocketClosed)}onErrorHandler(t){this.closeSocket(t.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(t){this.state!==lu.SocksClientState.Error&&(this.setState(lu.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new k6r.SocksClientError(t,this.options)))}sendSocks4InitialHandshake(){let t=this.options.proxy.userId||"",r=new eP.SmartBuffer;r.writeUInt8(4),r.writeUInt8(lu.SocksCommand[this.options.command]),r.writeUInt16BE(this.options.destination.port),hFe.isIPv4(this.options.destination.host)?(r.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host)),r.writeStringNT(t)):(r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(1),r.writeStringNT(t),r.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(r.toBuffer())}handleSocks4FinalHandshakeResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedConnection} - (${lu.Socks4Response[t[1]]})`);else if(lu.SocksCommand[this.options.command]===lu.SocksCommand.bind){let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};n.host==="0.0.0.0"&&(n.host=this.options.proxy.ipaddress),this.setState(lu.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:n,socket:this.socket})}else this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${lu.Socks4Response[t[1]]})`);else{let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:n,socket:this.socket})}}sendSocks5InitialHandshake(){let t=new eP.SmartBuffer,r=[lu.Socks5Auth.NoAuth];(this.options.proxy.userId||this.options.proxy.password)&&r.push(lu.Socks5Auth.UserPass),this.options.proxy.custom_auth_method!==void 0&&r.push(this.options.proxy.custom_auth_method),t.writeUInt8(5),t.writeUInt8(r.length);for(let n of r)t.writeUInt8(n);this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let t=this.receiveBuffer.get(2);t[0]!==5?this.closeSocket(lu.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):t[1]===lu.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):t[1]===lu.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=lu.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):t[1]===lu.Socks5Auth.UserPass?(this.socks5ChosenAuthType=lu.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):t[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let t=this.options.proxy.userId||"",r=this.options.proxy.password||"",n=new eP.SmartBuffer;n.writeUInt8(1),n.writeUInt8(Buffer.byteLength(t)),n.writeString(t),n.writeUInt8(Buffer.byteLength(r)),n.writeString(r),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(n.toBuffer()),this.setState(lu.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return IFe(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write(yield this.options.proxy.custom_auth_request_handler()),this.setState(lu.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(t)})}handleSocks5AuthenticationNoAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleSocks5AuthenticationUserPassHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleInitialSocks5AuthenticationHandshakeResponse(){return IFe(this,void 0,void 0,function*(){this.setState(lu.SocksClientState.ReceivedAuthenticationResponse);let t=!1;this.socks5ChosenAuthType===lu.Socks5Auth.NoAuth?t=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===lu.Socks5Auth.UserPass?t=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(t=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),t?this.sendSocks5CommandRequest():this.closeSocket(lu.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let t=new eP.SmartBuffer;t.writeUInt8(5),t.writeUInt8(lu.SocksCommand[this.options.command]),t.writeUInt8(0),hFe.isIPv4(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv4),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):hFe.isIPv6(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv6),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):(t.writeUInt8(lu.Socks5HostType.Hostname),t.writeUInt8(this.options.destination.host.length),t.writeString(this.options.destination.host)),t.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let t=this.receiveBuffer.peek(5);if(t[0]!==5||t[1]!==lu.Socks5Response.Granted)this.closeSocket(`${lu.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${lu.Socks5Response[t[1]]}`);else{let r=t[3],n,a;if(r===lu.Socks5HostType.IPv4){let o=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length{"use strict";var yDl=P0e&&P0e.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),bDl=P0e&&P0e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&yDl(t,e,r)};Object.defineProperty(P0e,"__esModule",{value:!0});bDl(I0s(),P0e)});var C0s=H(UH=>{"use strict";var EDl=UH&&UH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),SDl=UH&&UH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),m0s=UH&&UH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&EDl(t,e,r);return SDl(t,e),t},vDl=UH&&UH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UH,"__esModule",{value:!0});UH.SocksProxyAgent=void 0;var BDl=h0s(),wDl=mze(),TDl=vDl(uT()),RDl=m0s(wt("dns")),NDl=m0s(wt("tls")),DDl=wt("url"),ALt=(0,TDl.default)("socks-proxy-agent");function kDl(e){let t=!1,r=5,n=e.hostname,a=parseInt(e.port,10)||1080;switch(e.protocol.replace(":","")){case"socks4":t=!0,r=4;break;case"socks4a":r=4;break;case"socks5":t=!0,r=5;break;case"socks":r=5;break;case"socks5h":r=5;break;default:throw new TypeError(`A "socks" protocol must be specified! Got: ${String(e.protocol)}`)}let o={host:n,port:a,type:r};return e.username&&Object.defineProperty(o,"userId",{value:decodeURIComponent(e.username),enumerable:!1}),e.password!=null&&Object.defineProperty(o,"password",{value:decodeURIComponent(e.password),enumerable:!1}),{lookup:t,proxy:o}}var dLt=class extends wDl.Agent{constructor(t,r){super(r);let n=typeof t=="string"?new DDl.URL(t):t,{proxy:a,lookup:o}=kDl(n);this.shouldLookup=o,this.proxy=a,this.timeout=r?.timeout??null,this.socketOptions=r?.socketOptions??null}async connect(t,r){let{shouldLookup:n,proxy:a,timeout:o}=this;if(!r.host)throw new Error("No `host` defined!");let{host:l}=r,{port:A,lookup:f=RDl.lookup}=r;n&&(l=await new Promise((E,N)=>{f(l,{},(B,F)=>{B?N(B):E(F)})}));let I={proxy:a,destination:{host:l,port:typeof A=="number"?A:parseInt(A,10)},command:"connect",timeout:o??void 0,socket_options:this.socketOptions??void 0},C=E=>{t.destroy(),b.destroy(),E&&E.destroy()};ALt("Creating socks proxy connection: %o",I);let{socket:b}=await BDl.SocksClient.createConnection(I);if(ALt("Successfully created socks proxy connection"),o!==null&&(b.setTimeout(o),b.on("timeout",()=>C())),r.secureEndpoint){ALt("Upgrading socket connection to TLS");let E=r.servername||r.host,N=NDl.connect({...xDl(r,"host","path","port"),socket:b,servername:E});return N.once("error",B=>{ALt("Socket TLS error",B.message),C(N)}),N}return b}};dLt.protocols=["socks","socks4","socks4a","socks5","socks5h"];UH.SocksProxyAgent=dLt;function xDl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var P6r=H((rog,_0s)=>{"use strict";var G6r=class extends Error{constructor(t){super(`Invalid protocol \`${t.protocol}\` connecting to proxy \`${t.host}\``),this.code="EINVALIDPROXY",this.proxy=t}},F6r=class extends Error{constructor(t){super(`Timeout connecting to host \`${t}\``),this.code="ECONNECTIONTIMEOUT",this.host=t}},Z6r=class extends Error{constructor(t){super(`Idle timeout reached for host \`${t}\``),this.code="EIDLETIMEOUT",this.host=t}},L6r=class extends Error{constructor(t,r){let n="Response timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`connecting to host \`${t.host}\``,super(n),this.code="ERESPONSETIMEOUT",this.proxy=r,this.request=t}},V6r=class extends Error{constructor(t,r){let n="Transfer timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`for \`${t.host}\``,super(n),this.code="ETRANSFERTIMEOUT",this.proxy=r,this.request=t}};_0s.exports={InvalidProxyProtocolError:G6r,ConnectionTimeoutError:F6r,IdleTimeoutError:Z6r,ResponseTimeoutError:L6r,TransferTimeoutError:V6r}});var W6r=H((nog,b0s)=>{"use strict";var{HttpProxyAgent:GDl}=k_s(),{HttpsProxyAgent:FDl}=V_s(),{SocksProxyAgent:y0s}=C0s(),{LRUCache:ZDl}=yIe(),{InvalidProxyProtocolError:LDl}=P6r(),VDl=new ZDl({max:20}),PDl=new Set(y0s.protocols),WDl=new Set(["https_proxy","http_proxy","proxy","no_proxy"]),bze=Object.entries(process.env).reduce((e,[t,r])=>(t=t.toLowerCase(),WDl.has(t)&&(e[t]=r),e),{}),ODl=e=>{e=new URL(e);let t=e.protocol.slice(0,-1);if(PDl.has(t))return y0s;if(t==="https"||t==="http")return[GDl,FDl];throw new LDl(e)},MDl=(e,t)=>{if(typeof t=="string"&&(t=t.split(",").map(n=>n.trim()).filter(Boolean)),!t||!t.length)return!1;let r=e.hostname.split(".").reverse();return t.some(n=>{let a=n.split(".").filter(Boolean).reverse();if(!a.length)return!1;for(let o=0;o(e=new URL(e),t||(t=e.protocol==="https:"?bze.https_proxy:bze.https_proxy||bze.http_proxy||bze.proxy),r||(r=bze.no_proxy),!t||MDl(e,r)?null:new URL(t));b0s.exports={getProxyAgent:ODl,getProxy:HDl,proxyCache:VDl}});var v0s=H((sog,S0s)=>{"use strict";var YDl=wt("net"),QDl=wt("tls"),{once:E0s}=wt("events"),XDl=wt("timers/promises"),{normalizeOptions:JDl,cacheOptions:UDl}=l6r(),{getProxy:KDl,getProxyAgent:jDl,proxyCache:O6r}=W6r(),pLt=P6r(),{Agent:zDl}=mze();S0s.exports=class extends zDl{#e;#t;#n;#r;#i;constructor(t={}){let{timeouts:r,proxy:n,noProxy:a,...o}=JDl(t);super(o),this.#e=o,this.#t=r,n&&(this.#n=new URL(n),this.#r=a,this.#i=jDl(n))}get proxy(){return this.#n?{url:this.#n}:{}}#s(t){if(!this.#n)return;let r=KDl(`${t.protocol}//${t.host}:${t.port}`,{proxy:this.#n,noProxy:this.#r});if(!r)return;let n=UDl({...t,...this.#e,timeouts:this.#t,proxy:r});if(O6r.has(n))return O6r.get(n);let a=this.#i;Array.isArray(a)&&(a=this.isSecureEndpoint(t)?a[1]:a[0]);let o=new a(r,{...this.#e,socketOptions:{family:this.#e.family}});return O6r.set(n,o),o}async#o({promises:t,options:r,timeout:n},a=new AbortController){if(n){let l=XDl.setTimeout(n,null,{signal:a.signal}).then(()=>{throw new pLt.ConnectionTimeoutError(`${r.host}:${r.port}`)}).catch(A=>{if(A.name!=="AbortError")throw A});t.push(l)}let o;try{o=await Promise.race(t),a.abort()}catch(l){throw a.abort(),l}return o}async connect(t,r){r.lookup??=this.#e.lookup;let n,a=this.#t.connection,o=this.isSecureEndpoint(r),l=this.#s(r);if(l){let C=Date.now();n=await this.#o({options:r,timeout:a,promises:[l.connect(t,r)]}),a&&(a=a-(Date.now()-C))}else n=(o?QDl:YDl).connect(r);n.setKeepAlive(this.keepAlive,this.keepAliveMsecs),n.setNoDelay(this.keepAlive);let A=new AbortController,{signal:f}=A,I=n[o?"secureConnecting":"connecting"]?E0s(n,o?"secureConnect":"connect",{signal:f}):Promise.resolve();return await this.#o({options:r,timeout:a,promises:[I,E0s(n,"error",{signal:f}).then(C=>{throw C[0]})]},A),this.#t.idle&&n.setTimeout(this.#t.idle,()=>{n.destroy(new pLt.IdleTimeoutError(`${r.host}:${r.port}`))}),n}addRequest(t,r){let n=this.#s(r);if(n?.setRequestProps&&n.setRequestProps(t,r),t.setHeader("connection",this.keepAlive?"keep-alive":"close"),this.#t.response){let a;t.once("finish",()=>{setTimeout(()=>{t.destroy(new pLt.ResponseTimeoutError(t,this.#n))},this.#t.response)}),t.once("response",()=>{clearTimeout(a)})}if(this.#t.transfer){let a;t.once("response",o=>{setTimeout(()=>{o.destroy(new pLt.TransferTimeoutError(t,this.#n))},this.#t.transfer),o.once("close",()=>{clearTimeout(a)})})}return super.addRequest(t,r)}}});var R0s=H((oog,T0s)=>{"use strict";var{LRUCache:qDl}=yIe(),{normalizeOptions:$Dl,cacheOptions:ekl}=l6r(),{getProxy:tkl,proxyCache:B0s}=W6r(),w0s=c6r(),fLt=v0s(),Eze=new qDl({max:20}),rkl=(e,{agent:t,proxy:r,noProxy:n,...a}={})=>{if(t!=null)return t;e=new URL(e);let o=tkl(e,{proxy:r,noProxy:n}),l={...$Dl(a),proxy:o},A=ekl({...l,secureEndpoint:e.protocol==="https:"});if(Eze.has(A))return Eze.get(A);let f=new fLt(l);return Eze.set(A,f),f};T0s.exports={getAgent:rkl,Agent:fLt,HttpAgent:fLt,HttpsAgent:fLt,cache:{proxy:B0s,agent:Eze,dns:w0s.cache,clear:()=>{B0s.clear(),Eze.clear(),w0s.cache.clear()}}}});var N0s=H((aog,nkl)=>{nkl.exports={name:"make-fetch-happen",version:"14.0.3",description:"Opinionated, caching, retrying fetch client",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",posttest:"npm run lint",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"',lint:"npm run eslint",lintfix:"npm run eslint -- --fix",postlint:"template-oss-check",snap:"tap","template-oss-apply":"template-oss-apply --force"},repository:{type:"git",url:"git+https://github.com/npm/make-fetch-happen.git"},keywords:["http","request","fetch","mean girls","caching","cache","subresource integrity"],author:"GitHub Inc.",license:"ISC",dependencies:{"@npmcli/agent":"^3.0.0",cacache:"^19.0.1","http-cache-semantics":"^4.1.1",minipass:"^7.0.2","minipass-fetch":"^4.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4",negotiator:"^1.0.0","proc-log":"^5.0.0","promise-retry":"^2.0.1",ssri:"^12.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.4",nock:"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},tap:{color:1,files:"test/*.js","check-coverage":!0,timeout:60,"nyc-arg":["--exclude","tap-snapshots/**"]},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.4",publish:"true"}}});var hLt=H((cog,k0s)=>{var{Minipass:ikl}=rF(),ILt=H7e(),skl=o6r(),okl=Jte(),{log:D0s}=a6r(),akl=s6r(),{getAgent:ckl}=R0s(),M6r=N0s(),lkl=`${M6r.name}/${M6r.version} (+https://npm.im/${M6r.name})`,ukl=["ECONNRESET","ECONNREFUSED","EADDRINUSE","ETIMEDOUT","ECONNECTIONTIMEOUT","EIDLETIMEOUT","ERESPONSETIMEOUT","ETRANSFERTIMEOUT"],gkl=["request-timeout"],Akl=(e,t)=>{let r=ckl(e.url,{...t,signal:void 0});e.headers.has("connection")||e.headers.set("connection",r?"keep-alive":"close"),e.headers.has("user-agent")||e.headers.set("user-agent",lkl);let n={...t,agent:r,redirect:"manual"};return skl(async(a,o)=>{let l=new ILt.Request(e,n);try{let A=await ILt(l,n);if(n.integrity&&A.status===200){let C=okl.integrityStream({algorithms:n.algorithms,integrity:n.integrity,size:n.size}),b=new akl({events:["integrity","size"]},A.body,C);C.on("integrity",E=>b.emit("integrity",E)),C.on("size",E=>b.emit("size",E)),A=new ILt.Response(b,A),A.body.hasIntegrityEmitter=!0}A.headers.set("x-fetch-attempts",o);let f=ikl.isStream(l.body);return l.method!=="POST"&&!f&&([408,420,429].includes(A.status)||A.status>=500)?(typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.status}`),a(A)):A}catch(A){let f=A.code==="EPROMISERETRY"?A.retried.code:A.code,I=A.retried instanceof ILt.Response||ukl.includes(f)&&gkl.includes(A.type);if(l.method==="POST"||I)throw A;return typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.code}`),a(A)}},t.retry).catch(a=>{if(a.status>=400&&a.type!=="system")return a;throw a})};k0s.exports=Akl});var V0s=H((log,L0s)=>{var{Request:x0s,Response:H6r}=H7e(),{Minipass:G0s}=rF(),dkl=sZt(),W0e=s_s(),pkl=wt("url"),fkl=s6r(),Ikl=O8r(),Y6r=c_s(),hkl=hLt(),Sze=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),mkl=["accept-charset","accept-encoding","accept-language","accept","cache-control"],Z0s=["cache-control","content-encoding","content-language","content-type","date","etag","expires","last-modified","link","location","pragma","vary"],F0s=(e,t,r)=>{let n={time:Date.now(),url:e.url,reqHeaders:{},resHeaders:{},options:{compress:r.compress!=null?r.compress:e.compress}};t.status!==200&&t.status!==304&&(n.status=t.status);for(let l of mkl)e.headers.has(l)&&(n.reqHeaders[l]=e.headers.get(l));let a=e.headers.get("host"),o=new pkl.URL(e.url);if(a&&o.host!==a&&(n.reqHeaders.host=a),t.headers.has("vary")){let l=t.headers.get("vary");if(l!=="*"){let A=l.trim().toLowerCase().split(/\s*,\s*/);for(let f of A)e.headers.has(f)&&(n.reqHeaders[f]=e.headers.get(f))}}for(let l of Z0s)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));for(let l of r.cacheAdditionalHeaders)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));return n},mLt=Symbol("request"),CLt=Symbol("response"),_Lt=Symbol("policy"),Q6r=class e{constructor({entry:t,request:r,response:n,options:a}){t?(this.key=t.key,this.entry=t,this.entry.metadata.time=this.entry.metadata.time||this.entry.time):this.key=Y6r(r),this.options=a,this[mLt]=r,this[CLt]=n,this[_Lt]=null}static async find(t,r){try{var n=await W0e.index.compact(r.cachePath,Y6r(t),(o,l)=>{let A=new e({entry:o,options:r}),f=new e({entry:l,options:r});return A.policy.satisfies(f.request)},{validateEntry:o=>o.metadata&&o.metadata.resHeaders&&o.metadata.resHeaders["content-encoding"]===null?!1:o.integrity===null?!!(o.metadata&&o.metadata.status):!0})}catch{return}if(r.cache==="reload")return;let a;for(let o of n){let l=new e({entry:o,options:r});if(l.policy.satisfies(t)){a=l;break}}return a}static async invalidate(t,r){let n=Y6r(t);try{await W0e.rm.entry(r.cachePath,n,{removeFully:!0})}catch{}}get request(){return this[mLt]||(this[mLt]=new x0s(this.entry.metadata.url,{method:"GET",headers:this.entry.metadata.reqHeaders,...this.entry.metadata.options})),this[mLt]}get response(){return this[CLt]||(this[CLt]=new H6r(null,{url:this.entry.metadata.url,counter:this.options.counter,status:this.entry.metadata.status||200,headers:{...this.entry.metadata.resHeaders,"content-length":this.entry.size}})),this[CLt]}get policy(){return this[_Lt]||(this[_Lt]=new Ikl({entry:this.entry,request:this.request,response:this.response,options:this.options})),this[_Lt]}async store(t){if(this.request.method!=="GET"||![200,301,308].includes(this.response.status)||!this.policy.storable())return this.response.headers.set("x-local-cache-status","skip"),this.response;let r=this.response.headers.get("content-length"),n={algorithms:this.options.algorithms,metadata:F0s(this.request,this.response,this.options),size:r,integrity:this.options.integrity,integrityEmitter:this.response.body.hasIntegrityEmitter&&this.response.body},a=null;if(this.response.status===200){let l,A,f=new Promise((C,b)=>{l=C,A=b}).catch(C=>{a.emit("error",C)});a=new fkl({events:["integrity","size"]},new dkl({flush(){return f}})),a.hasIntegrityEmitter=!0;let I=()=>{let C=new G0s,b=W0e.put.stream(this.options.cachePath,this.key,n);b.on("integrity",E=>a.emit("integrity",E)),b.on("size",E=>a.emit("size",E)),C.pipe(b),b.promise().then(l,A),a.unshift(C),a.unshift(this.response.body)};a.once("resume",I),a.once("end",()=>a.removeListener("resume",I))}else await W0e.index.insert(this.options.cachePath,this.key,null,n);return this.response.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),this.response.headers.set("x-local-cache-key",encodeURIComponent(this.key)),this.response.headers.set("x-local-cache-mode","stream"),this.response.headers.set("x-local-cache-status",t),this.response.headers.set("x-local-cache-time",new Date().toISOString()),new H6r(a,{url:this.response.url,status:this.response.status,headers:this.response.headers,counter:this.options.counter})}async respond(t,r,n){let a;if(t==="HEAD"||[301,308].includes(this.response.status))a=this.response;else{let o=new G0s,l={...this.policy.responseHeaders()},A=()=>{let f=W0e.get.stream.byDigest(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize});f.on("error",async I=>{f.pause(),I.code==="EINTEGRITY"&&await W0e.rm.content(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize}),(I.code==="ENOENT"||I.code==="EINTEGRITY")&&await e.invalidate(this.request,this.options),o.emit("error",I),f.resume()}),o.emit("integrity",this.entry.integrity),o.emit("size",Number(l["content-length"])),f.pipe(o)};o.once("resume",A),o.once("end",()=>o.removeListener("resume",A)),a=new H6r(o,{url:this.entry.metadata.url,counter:r.counter,status:200,headers:l})}return a.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),a.headers.set("x-local-cache-hash",encodeURIComponent(this.entry.integrity)),a.headers.set("x-local-cache-key",encodeURIComponent(this.key)),a.headers.set("x-local-cache-mode","stream"),a.headers.set("x-local-cache-status",n),a.headers.set("x-local-cache-time",new Date(this.entry.metadata.time).toUTCString()),a}async revalidate(t,r){let n=new x0s(t,{headers:this.policy.revalidationHeaders(t)});try{var a=await hkl(n,{...r,headers:void 0})}catch(l){if(!this.policy.mustRevalidate)return this.respond(t.method,r,"stale");throw l}if(this.policy.revalidated(n,a)){let l=F0s(t,a,r);for(let A of Z0s)!Sze(l.resHeaders,A)&&Sze(this.entry.metadata.resHeaders,A)&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]);for(let A of r.cacheAdditionalHeaders){let f=Sze(l.resHeaders,A),I=Sze(this.entry.metadata.resHeaders,A),C=Sze(this.policy.response.headers,A);!f&&I&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]),!C&&f&&(this.policy.response.headers[A]=l.resHeaders[A])}try{await W0e.index.insert(r.cachePath,this.key,this.entry.integrity,{size:this.entry.size,metadata:l})}catch{}return this.respond(t.method,r,"revalidated")}return new e({request:t,response:a,options:r}).store("updated")}};L0s.exports=Q6r});var O0s=H((uog,W0s)=>{var{NotCachedError:Ckl}=bhs(),X6r=V0s(),_kl=hLt(),P0s=async(e,t)=>{let r=await X6r.find(e,t);if(!r){if(t.cache==="only-if-cached")throw new Ckl(e.url);let a=await _kl(e,t);return new X6r({request:e,response:a,options:t}).store("miss")}if(t.cache==="no-cache")return r.revalidate(e,t);let n=r.policy.needsRevalidation(e);return t.cache==="force-cache"||t.cache==="only-if-cached"||!n?r.respond(e.method,t,n?"stale":"hit"):r.revalidate(e,t)};P0s.invalidate=async(e,t)=>{if(t.cachePath)return X6r.invalidate(e,t)};W0s.exports=P0s});var Q0s=H((gog,Y0s)=>{"use strict";var{FetchError:J6r,Request:ykl,isRedirect:bkl}=H7e(),U6r=wt("url"),Ekl=O8r(),M0s=O0s(),Skl=hLt(),vkl=(e,t,r)=>{if(!bkl(t.status)||r.redirect==="manual")return!1;if(r.redirect==="error")throw new J6r(`redirect mode is set to error: ${e.url}`,"no-redirect",{code:"ENOREDIRECT"});if(!t.headers.has("location"))throw new J6r(`redirect location header missing for: ${e.url}`,"no-location",{code:"EINVALIDREDIRECT"});if(e.counter>=e.follow)throw new J6r(`maximum redirect reached at: ${e.url}`,"max-redirect",{code:"EMAXREDIRECT"});return!0},Bkl=(e,t,r)=>{let n={...r},a=t.headers.get("location"),o=new U6r.URL(a,/^https?:/.test(a)?void 0:e.url);return new U6r.URL(e.url).hostname!==o.hostname&&(e.headers.delete("authorization"),e.headers.delete("cookie")),(t.status===303||e.method==="POST"&&[301,302].includes(t.status))&&(n.method="GET",n.body=null,e.headers.delete("content-length")),n.headers={},e.headers.forEach((A,f)=>{n.headers[f]=A}),n.counter=++e.counter,{request:new ykl(U6r.format(o),n),options:n}},H0s=async(e,t)=>{let r=Ekl.storable(e,t)?await M0s(e,t):await Skl(e,t);if(!["GET","HEAD"].includes(e.method)&&r.status>=200&&r.status<=399&&await M0s.invalidate(e,t),!vkl(e,r,t))return r;let n=Bkl(e,r,t);return H0s(n.request,n.options)};Y0s.exports=H0s});var bLt=H((Aog,mFe)=>{var{FetchError:wkl,Headers:Tkl,Request:X0s,Response:Rkl}=H7e(),Nkl=KIs(),Dkl=Q0s(),yLt=(e,t)=>{let r=Nkl(t),n=new X0s(e,r);return Dkl(n,r)};yLt.defaults=(e,t={},r=yLt)=>{typeof e=="object"&&(t=e,e=null);let n=(a,o={})=>{let l=a||e,A={...t,...o,headers:{...t.headers,...o.headers}};return r(l,A)};return n.defaults=(a,o={})=>yLt.defaults(a,o,n),n};mFe.exports=yLt;mFe.exports.FetchError=wkl;mFe.exports.Headers=Tkl;mFe.exports.Request=X0s;mFe.exports.Response=Rkl});var J0s=H(CFe=>{"use strict";var kkl=CFe&&CFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(CFe,"__esModule",{value:!0});CFe.CIContextProvider=void 0;var xkl=kkl(bLt()),Gkl=[Fkl,Zkl],K6r=class{constructor(t="sigstore"){this.audience=t}async getToken(){return Promise.any(Gkl.map(t=>t(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};CFe.CIContextProvider=K6r;async function Fkl(e){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let t=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return t.searchParams.append("audience",e),(await(0,xkl.default)(t.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(n=>n.value)}async function Zkl(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var U0s=H(ELt=>{"use strict";Object.defineProperty(ELt,"__esModule",{value:!0});ELt.CIContextProvider=void 0;var Lkl=J0s();Object.defineProperty(ELt,"CIContextProvider",{enumerable:!0,get:function(){return Lkl.CIContextProvider}})});var SLt=H(vze=>{"use strict";var j0s=vze&&vze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vze,"__esModule",{value:!0});vze.fetchWithRetry=Kkl;var Vkl=wt("http2"),Pkl=j0s(bLt()),K0s=a6r(),Wkl=j0s(o6r()),Okl=Zue(),Mkl=BFt(),{HTTP2_HEADER_LOCATION:Hkl,HTTP2_HEADER_CONTENT_TYPE:Ykl,HTTP2_HEADER_USER_AGENT:Qkl,HTTP_STATUS_INTERNAL_SERVER_ERROR:Xkl,HTTP_STATUS_TOO_MANY_REQUESTS:Jkl,HTTP_STATUS_REQUEST_TIMEOUT:Ukl}=Vkl.constants;async function Kkl(e,t){return(0,Wkl.default)(async(r,n)=>{let a=t.method||"POST",o={[Qkl]:Okl.ua.getUserAgent(),...t.headers},l=await(0,Pkl.default)(e,{method:a,headers:o,body:t.body,timeout:t.timeout,retry:!1}).catch(A=>(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${A}`),r(A)));if(l.ok)return l;{let A=await jkl(l);if(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${l.status}`),zkl(l.status))return r(A);throw A}},qkl(t.retry))}var jkl=async e=>{let t=e.statusText,r=e.headers.get(Hkl)||void 0;if(e.headers.get(Ykl)?.includes("application/json"))try{t=(await e.json()).message||t}catch{}return new Mkl.HTTPError({status:e.status,message:t,location:r})},zkl=e=>[Ukl,Jkl].includes(e)||e>=Xkl,qkl=e=>typeof e=="boolean"?{retries:e?1:0}:typeof e=="number"?{retries:e}:{retries:0,...e}});var z0s=H(vLt=>{"use strict";Object.defineProperty(vLt,"__esModule",{value:!0});vLt.Fulcio=void 0;var $kl=SLt(),j6r=class{constructor(t){this.options=t}async createSigningCertificate(t){let{baseURL:r,retry:n,timeout:a}=this.options,o=`${r}/api/v2/signingCert`;return(await(0,$kl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:a,retry:n})).json()}};vLt.Fulcio=j6r});var q0s=H(BLt=>{"use strict";Object.defineProperty(BLt,"__esModule",{value:!0});BLt.CAClient=void 0;var exl=PGe(),txl=z0s(),z6r=class{constructor(t){this.fulcio=new txl.Fulcio({baseURL:t.fulcioBaseURL,retry:t.retry,timeout:t.timeout})}async createSigningCertificate(t,r,n){let a=rxl(t,r,n);try{let o=await this.fulcio.createSigningCertificate(a);return(o.signedCertificateEmbeddedSct?o.signedCertificateEmbeddedSct:o.signedCertificateDetachedSct).chain.certificates}catch(o){(0,exl.internalError)(o,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};BLt.CAClient=z6r;function rxl(e,t,r){return{credentials:{oidcIdentityToken:e},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:t},proofOfPossession:r.toString("base64")}}}});var eys=H(_Fe=>{"use strict";var nxl=_Fe&&_Fe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Fe,"__esModule",{value:!0});_Fe.EphemeralSigner=void 0;var $0s=nxl(wt("crypto")),ixl="ec",sxl="P-256",q6r=class{constructor(){this.keypair=$0s.default.generateKeyPairSync(ixl,{namedCurve:sxl})}async sign(t){let r=$0s.default.sign(null,t,this.keypair.privateKey),n=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:n}}}};_Fe.EphemeralSigner=q6r});var tys=H(O0e=>{"use strict";Object.defineProperty(O0e,"__esModule",{value:!0});O0e.FulcioSigner=O0e.DEFAULT_FULCIO_URL=void 0;var $6r=PGe(),oxl=Zue(),axl=q0s(),cxl=eys();O0e.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var e7r=class{constructor(t){this.ca=new axl.CAClient({...t,fulcioBaseURL:t.fulcioBaseURL||O0e.DEFAULT_FULCIO_URL}),this.identityProvider=t.identityProvider,this.keyHolder=t.keyHolder||new cxl.EphemeralSigner}async sign(t){let r=await this.getIdentityToken(),n;try{n=oxl.oidc.extractJWTSubject(r)}catch(A){throw new $6r.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:A})}let a=await this.keyHolder.sign(Buffer.from(n));if(a.key.$case!=="publicKey")throw new $6r.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let o=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(t)).signature,key:{$case:"x509Certificate",certificate:o[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(t){throw new $6r.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:t})}}};O0e.FulcioSigner=e7r});var nys=H(yFe=>{"use strict";Object.defineProperty(yFe,"__esModule",{value:!0});yFe.FulcioSigner=yFe.DEFAULT_FULCIO_URL=void 0;var rys=tys();Object.defineProperty(yFe,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return rys.DEFAULT_FULCIO_URL}});Object.defineProperty(yFe,"FulcioSigner",{enumerable:!0,get:function(){return rys.FulcioSigner}})});var oys=H(wLt=>{"use strict";Object.defineProperty(wLt,"__esModule",{value:!0});wLt.Rekor=void 0;var iys=SLt(),t7r=class{constructor(t){this.options=t}async createEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries`,A=await(await(0,iys.fetchWithRetry)(o,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).json();return sys(A)}async getEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries/${t}`,A=await(await(0,iys.fetchWithRetry)(o,{method:"GET",headers:{Accept:"application/json"},timeout:n,retry:a})).json();return sys(A)}};wLt.Rekor=t7r;function sys(e){let t=Object.entries(e);if(t.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,n]=t[0];return{...n,uuid:r}}});var cys=H(TLt=>{"use strict";Object.defineProperty(TLt,"__esModule",{value:!0});TLt.TLogClient=void 0;var ays=PGe(),lxl=BFt(),uxl=oys(),r7r=class{constructor(t){this.fetchOnConflict=t.fetchOnConflict??!1,this.rekor=new uxl.Rekor({baseURL:t.rekorBaseURL,retry:t.retry,timeout:t.timeout})}async createEntry(t){let r;try{r=await this.rekor.createEntry(t)}catch(n){if(gxl(n)&&this.fetchOnConflict){let a=n.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(o){(0,ays.internalError)(o,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,ays.internalError)(n,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};TLt.TLogClient=r7r;function gxl(e){return e instanceof lxl.HTTPError&&e.statusCode===409&&e.location!==void 0}});var lys=H(n7r=>{"use strict";Object.defineProperty(n7r,"__esModule",{value:!0});n7r.toProposedEntry=dxl;var Axl=S7e(),Jue=Zue(),Bze="sha256";function dxl(e,t,r="dsse"){switch(e.$case){case"dsseEnvelope":return r==="intoto"?Ixl(e.dsseEnvelope,t):fxl(e.dsseEnvelope,t);case"messageSignature":return pxl(e.messageSignature,t)}}function pxl(e,t){let r=e.messageDigest.digest.toString("hex"),n=e.signature.toString("base64"),a=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:Bze,value:r}},signature:{content:n,publicKey:{content:a}}}}}function fxl(e,t){let r=JSON.stringify((0,Axl.envelopeToJSON)(e)),n=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[n]}}}}function Ixl(e,t){let r=Jue.crypto.digest(Bze,e.payload).toString("hex"),n=hxl(e,t),a=Jue.encoding.base64Encode(e.payload.toString("base64")),o=Jue.encoding.base64Encode(e.signatures[0].sig.toString("base64")),l=e.signatures[0].keyid,A=Jue.encoding.base64Encode(t),f={payloadType:e.payloadType,payload:a,signatures:[{sig:o,publicKey:A}]};return l.length>0&&(f.signatures[0].keyid=l),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:f,hash:{algorithm:Bze,value:n},payloadHash:{algorithm:Bze,value:r}}}}}function hxl(e,t){let r={payloadType:e.payloadType,payload:e.payload.toString("base64"),signatures:[{sig:e.signatures[0].sig.toString("base64"),publicKey:t}]};return e.signatures[0].keyid.length>0&&(r.signatures[0].keyid=e.signatures[0].keyid),Jue.crypto.digest(Bze,Jue.json.canonicalize(r)).toString("hex")}});var uys=H(M0e=>{"use strict";Object.defineProperty(M0e,"__esModule",{value:!0});M0e.RekorWitness=M0e.DEFAULT_REKOR_URL=void 0;var mxl=Zue(),Cxl=cys(),_xl=lys();M0e.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var i7r=class{constructor(t){this.entryType=t.entryType,this.tlog=new Cxl.TLogClient({...t,rekorBaseURL:t.rekorBaseURL||M0e.DEFAULT_REKOR_URL})}async testify(t,r){let n=(0,_xl.toProposedEntry)(t,r,this.entryType),a=await this.tlog.createEntry(n);return yxl(a)}};M0e.RekorWitness=i7r;function yxl(e){let t=Buffer.from(e.logID,"hex"),r=mxl.encoding.base64Decode(e.body),n=JSON.parse(r),a=e?.verification?.signedEntryTimestamp?bxl(e.verification.signedEntryTimestamp):void 0,o=e?.verification?.inclusionProof?Exl(e.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:e.logIndex.toString(),logId:{keyId:t},integratedTime:e.integratedTime.toString(),kindVersion:{kind:n.kind,version:n.apiVersion},inclusionPromise:a,inclusionProof:o,canonicalizedBody:Buffer.from(e.body,"base64")}]}}function bxl(e){return{signedEntryTimestamp:Buffer.from(e,"base64")}}function Exl(e){return{logIndex:e.logIndex.toString(),treeSize:e.treeSize.toString(),rootHash:Buffer.from(e.rootHash,"hex"),hashes:e.hashes.map(t=>Buffer.from(t,"hex")),checkpoint:{envelope:e.checkpoint}}}});var gys=H(RLt=>{"use strict";Object.defineProperty(RLt,"__esModule",{value:!0});RLt.TimestampAuthority=void 0;var Sxl=SLt(),s7r=class{constructor(t){this.options=t}async createTimestamp(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/timestamp`;return(await(0,Sxl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).buffer()}};RLt.TimestampAuthority=s7r});var dys=H(NLt=>{"use strict";Object.defineProperty(NLt,"__esModule",{value:!0});NLt.TSAClient=void 0;var vxl=PGe(),Bxl=gys(),wxl=Zue(),Ays="sha256",o7r=class{constructor(t){this.tsa=new Bxl.TimestampAuthority({baseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async createTimestamp(t){let r={artifactHash:wxl.crypto.digest(Ays,t).toString("base64"),hashAlgorithm:Ays};try{return await this.tsa.createTimestamp(r)}catch(n){(0,vxl.internalError)(n,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};NLt.TSAClient=o7r});var pys=H(DLt=>{"use strict";Object.defineProperty(DLt,"__esModule",{value:!0});DLt.TSAWitness=void 0;var Txl=dys(),a7r=class{constructor(t){this.tsa=new Txl.TSAClient({tsaBaseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async testify(t){let r=Rxl(t);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};DLt.TSAWitness=a7r;function Rxl(e){switch(e.$case){case"dsseEnvelope":return e.dsseEnvelope.signatures[0].sig;case"messageSignature":return e.messageSignature.signature}}});var Iys=H(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});Uue.TSAWitness=Uue.RekorWitness=Uue.DEFAULT_REKOR_URL=void 0;var fys=uys();Object.defineProperty(Uue,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return fys.DEFAULT_REKOR_URL}});Object.defineProperty(Uue,"RekorWitness",{enumerable:!0,get:function(){return fys.RekorWitness}});var Nxl=pys();Object.defineProperty(Uue,"TSAWitness",{enumerable:!0,get:function(){return Nxl.TSAWitness}})});var l7r=H(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});BT.TSAWitness=BT.RekorWitness=BT.DEFAULT_REKOR_URL=BT.FulcioSigner=BT.DEFAULT_FULCIO_URL=BT.CIContextProvider=BT.InternalError=BT.MessageSignatureBundleBuilder=BT.DSSEBundleBuilder=void 0;var hys=Efs();Object.defineProperty(BT,"DSSEBundleBuilder",{enumerable:!0,get:function(){return hys.DSSEBundleBuilder}});Object.defineProperty(BT,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return hys.MessageSignatureBundleBuilder}});var Dxl=PGe();Object.defineProperty(BT,"InternalError",{enumerable:!0,get:function(){return Dxl.InternalError}});var kxl=U0s();Object.defineProperty(BT,"CIContextProvider",{enumerable:!0,get:function(){return kxl.CIContextProvider}});var mys=nys();Object.defineProperty(BT,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return mys.DEFAULT_FULCIO_URL}});Object.defineProperty(BT,"FulcioSigner",{enumerable:!0,get:function(){return mys.FulcioSigner}});var c7r=Iys();Object.defineProperty(BT,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return c7r.DEFAULT_REKOR_URL}});Object.defineProperty(BT,"RekorWitness",{enumerable:!0,get:function(){return c7r.RekorWitness}});Object.defineProperty(BT,"TSAWitness",{enumerable:!0,get:function(){return c7r.TSAWitness}})});var _ys=H(wze=>{"use strict";var Cys=wze&&wze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wze,"__esModule",{value:!0});wze.appDataPath=Gxl;var xxl=Cys(wt("os")),bFe=Cys(wt("path"));function Gxl(e){let t=xxl.default.homedir();switch(process.platform){case"darwin":{let r=bFe.default.join(t,"Library","Application Support");return bFe.default.join(r,e)}case"win32":{let r=process.env.LOCALAPPDATA||bFe.default.join(t,"AppData","Local");return bFe.default.join(r,e,"Data")}default:{let r=process.env.XDG_DATA_HOME||bFe.default.join(t,".local","share");return bFe.default.join(r,e)}}}});var O6=H(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.UnsupportedAlgorithmError=tP.CryptoError=tP.LengthOrHashMismatchError=tP.UnsignedMetadataError=tP.RepositoryError=tP.ValueError=void 0;var u7r=class extends Error{};tP.ValueError=u7r;var Tze=class extends Error{};tP.RepositoryError=Tze;var g7r=class extends Tze{};tP.UnsignedMetadataError=g7r;var A7r=class extends Tze{};tP.LengthOrHashMismatchError=A7r;var kLt=class extends Error{};tP.CryptoError=kLt;var d7r=class extends kLt{};tP.UnsupportedAlgorithmError=d7r});var bys=H(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});Kue.isDefined=Fxl;Kue.isObject=yys;Kue.isStringArray=Zxl;Kue.isObjectArray=Lxl;Kue.isStringRecord=Vxl;Kue.isObjectRecord=Pxl;function Fxl(e){return e!==void 0}function yys(e){return typeof e=="object"&&e!==null}function Zxl(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Lxl(e){return Array.isArray(e)&&e.every(yys)}function Vxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="string")}function Pxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="object"&&t!==null)}});var f7r=H((xog,vys)=>{var Eys=",",Wxl=":",Oxl="[",Mxl="]",Hxl="{",Yxl="}";function p7r(e){let t=[];if(typeof e=="string")t.push(Sys(e));else if(typeof e=="boolean")t.push(JSON.stringify(e));else if(Number.isInteger(e))t.push(JSON.stringify(e));else if(e===null)t.push(JSON.stringify(e));else if(Array.isArray(e)){t.push(Oxl);let r=!0;e.forEach(n=>{r||t.push(Eys),r=!1,t.push(p7r(n))}),t.push(Mxl)}else if(typeof e=="object"){t.push(Hxl);let r=!0;Object.keys(e).sort().forEach(n=>{r||t.push(Eys),r=!1,t.push(Sys(n)),t.push(Wxl),t.push(p7r(e[n]))}),t.push(Yxl)}else throw new TypeError("cannot encode "+e.toString());return t.join("")}function Sys(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}vys.exports={canonicalize:p7r}});var Bys=H(EFe=>{"use strict";var Qxl=EFe&&EFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EFe,"__esModule",{value:!0});EFe.verifySignature=void 0;var Xxl=f7r(),Jxl=Qxl(wt("crypto")),Uxl=(e,t,r)=>{let n=Buffer.from((0,Xxl.canonicalize)(e));return Jxl.default.verify(void 0,n,t,Buffer.from(r,"hex"))};EFe.verifySignature=Uxl});var iJ=H(KH=>{"use strict";var Kxl=KH&&KH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),jxl=KH&&KH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wys=KH&&KH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Kxl(t,e,r);return jxl(t,e),t};Object.defineProperty(KH,"__esModule",{value:!0});KH.crypto=KH.guard=void 0;KH.guard=wys(bys());KH.crypto=wys(Bys())});var H0e=H(Are=>{"use strict";var zxl=Are&&Are.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Are,"__esModule",{value:!0});Are.Signed=Are.MetadataKind=void 0;Are.isMetadataKind=$xl;var qxl=zxl(wt("util")),Rze=O6(),I7r=iJ(),Tys=["1","0","31"],h7r;(function(e){e.Root="root",e.Timestamp="timestamp",e.Snapshot="snapshot",e.Targets="targets"})(h7r||(Are.MetadataKind=h7r={}));function $xl(e){return typeof e=="string"&&Object.values(h7r).includes(e)}var m7r=class e{constructor(t){this.specVersion=t.specVersion||Tys.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(n=>eGl(n)))throw new Rze.ValueError("Failed to parse specVersion");if(r[0]!=Tys[0])throw new Rze.ValueError("Unsupported specVersion");this.expires=t.expires,this.version=t.version,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.specVersion===t.specVersion&&this.expires===t.expires&&this.version===t.version&&qxl.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}isExpired(t){return t||(t=new Date),t>=new Date(this.expires)}static commonFieldsFromJSON(t){let{spec_version:r,expires:n,version:a,...o}=t;if(I7r.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new Rze.ValueError("spec_version is not defined");if(I7r.guard.isDefined(n)){if(typeof n!="string")throw new TypeError("expires must be a string")}else throw new Rze.ValueError("expires is not defined");if(I7r.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new Rze.ValueError("version is not defined");return{specVersion:r,expires:n,version:a,unrecognizedFields:o}}};Are.Signed=m7r;function eGl(e){return!isNaN(Number(e))}});var Nze=H(zue=>{"use strict";var Rys=zue&&zue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zue,"__esModule",{value:!0});zue.TargetFile=zue.MetaFile=void 0;var Nys=Rys(wt("crypto")),GLt=Rys(wt("util")),jue=O6(),xLt=iJ(),C7r=class e{constructor(t){if(t.version<=0)throw new jue.ValueError("Metafile version must be at least 1");t.length!==void 0&&Dys(t.length),this.version=t.version,this.length=t.length,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.version===t.version&&this.length===t.length&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}verify(t){if(this.length!==void 0&&t.length!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${t.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,n])=>{let a;try{a=Nys.default.createHash(r)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let o=a.update(t).digest("hex");if(o!==n)throw new jue.LengthOrHashMismatchError(`Expected hash ${n} but got ${o}`)})}toJSON(){let t={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(t.length=this.length),this.hashes&&(t.hashes=this.hashes),t}static fromJSON(t){let{version:r,length:n,hashes:a,...o}=t;if(typeof r!="number")throw new TypeError("version must be a number");if(xLt.guard.isDefined(n)&&typeof n!="number")throw new TypeError("length must be a number");if(xLt.guard.isDefined(a)&&!xLt.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new e({version:r,length:n,hashes:a,unrecognizedFields:o})}};zue.MetaFile=C7r;var _7r=class e{constructor(t){Dys(t.length),this.length=t.length,this.path=t.path,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}get custom(){let t=this.unrecognizedFields.custom;return!t||Array.isArray(t)||typeof t!="object"?{}:t}equals(t){return t instanceof e?this.length===t.length&&this.path===t.path&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}async verify(t){let r=0,n=Object.keys(this.hashes).reduce((a,o)=>{try{a[o]=Nys.default.createHash(o)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${o} not supported`)}return a},{});for await(let a of t)r+=a.length,Object.values(n).forEach(o=>{o.update(a)});if(r!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(n).forEach(([a,o])=>{let l=this.hashes[a],A=o.digest("hex");if(A!==l)throw new jue.LengthOrHashMismatchError(`Expected hash ${l} but got ${A}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(t,r){let{length:n,hashes:a,...o}=r;if(typeof n!="number")throw new TypeError("length must be a number");if(!xLt.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new e({length:n,path:t,hashes:a,unrecognizedFields:o})}};zue.TargetFile=_7r;function Dys(e){if(e<0)throw new jue.ValueError("Length must be at least 0")}});var kys=H(y7r=>{"use strict";Object.defineProperty(y7r,"__esModule",{value:!0});y7r.encodeOIDString=rGl;var tGl=6;function rGl(e){let t=e.split("."),r=parseInt(t[0],10)*40+parseInt(t[1],10),n=[];t.slice(2).forEach(o=>{let l=nGl(parseInt(o,10));n.push(...l)});let a=Buffer.from([r,...n]);return Buffer.from([tGl,a.length,...a])}function nGl(e){let t=[],r=0;for(;e>0;)t.unshift(e&127|r),e>>=7,r=128;return t}});var Zys=H(kze=>{"use strict";var iGl=kze&&kze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kze,"__esModule",{value:!0});kze.getPublicKey=cGl;var SFe=iGl(wt("crypto")),Dze=O6(),b7r=kys(),FLt=48,xys=3,Gys=0,sGl="1.3.101.112",oGl="1.2.840.10045.2.1",aGl="1.2.840.10045.3.1.7",E7r="-----BEGIN PUBLIC KEY-----";function cGl(e){switch(e.keyType){case"rsa":return lGl(e);case"ed25519":return uGl(e);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return gGl(e);default:throw new Dze.UnsupportedAlgorithmError(`Unsupported key type: ${e.keyType}`)}}function lGl(e){if(!e.keyVal.startsWith(E7r))throw new Dze.CryptoError("Invalid key format");let t=SFe.default.createPublicKey(e.keyVal);switch(e.scheme){case"rsassa-pss-sha256":return{key:t,padding:SFe.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new Dze.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${e.scheme}`)}}function uGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:AGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}function gGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:dGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}var AGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=(0,b7r.encodeOIDString)(sGl),n=Buffer.concat([Buffer.concat([Buffer.from([FLt]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t])]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n])}},dGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t]),n=Buffer.concat([(0,b7r.encodeOIDString)(oGl),(0,b7r.encodeOIDString)(aGl)]),a=Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([a.length+r.length]),a,r])}},Fys=e=>/^[0-9a-fA-F]+$/.test(e)});var ZLt=H(vFe=>{"use strict";var pGl=vFe&&vFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vFe,"__esModule",{value:!0});vFe.Key=void 0;var Lys=pGl(wt("util")),xze=O6(),Vys=iJ(),fGl=Zys(),S7r=class e{constructor(t){let{keyID:r,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l}=t;this.keyID=r,this.keyType=n,this.scheme=a,this.keyVal=o,this.unrecognizedFields=l||{}}verifySignature(t){let r=t.signatures[this.keyID];if(!r)throw new xze.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new xze.UnsignedMetadataError("no public key found");let n=(0,fGl.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=t.signed.toJSON();try{if(!Vys.crypto.verifySignature(a,n,r.sig))throw new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(o){throw o instanceof xze.UnsignedMetadataError?o:new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(t){return t instanceof e?this.keyID===t.keyID&&this.keyType===t.keyType&&this.scheme===t.scheme&&Lys.default.isDeepStrictEqual(this.keyVal,t.keyVal)&&Lys.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(t,r){let{keytype:n,scheme:a,keyval:o,...l}=r;if(typeof n!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!Vys.guard.isStringRecord(o))throw new TypeError("keyval must be a string record");return new e({keyID:t,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l})}};vFe.Key=S7r});var Xys=H((Oog,Qys)=>{var Pys=wjr();Qys.exports=mGl;var Wys="\0SLASH"+Math.random()+"\0",Oys="\0OPEN"+Math.random()+"\0",B7r="\0CLOSE"+Math.random()+"\0",Mys="\0COMMA"+Math.random()+"\0",Hys="\0PERIOD"+Math.random()+"\0";function v7r(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function IGl(e){return e.split("\\\\").join(Wys).split("\\{").join(Oys).split("\\}").join(B7r).split("\\,").join(Mys).split("\\.").join(Hys)}function hGl(e){return e.split(Wys).join("\\").split(Oys).join("{").split(B7r).join("}").split(Mys).join(",").split(Hys).join(".")}function Yys(e){if(!e)return[""];var t=[],r=Pys("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=Yys(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function mGl(e,t){if(!e)return[];t=t||{};var r=t.max==null?1/0:t.max;return e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),Gze(IGl(e),r,!0).map(hGl)}function CGl(e){return"{"+e+"}"}function _Gl(e){return/^-?0\d/.test(e)}function yGl(e,t){return e<=t}function bGl(e,t){return e>=t}function Gze(e,t,r){var n=[],a=Pys("{","}",e);if(!a)return[e];var o=a.pre,l=a.post.length?Gze(a.post,t,!1):[""];if(/\$$/.test(a.pre))for(var A=0;A=0;if(!b&&!E)return a.post.match(/,(?!,).*\}/)?(e=a.pre+"{"+a.body+B7r+a.post,Gze(e,t,!0)):[e];var N;if(b)N=a.body.split(/\.\./);else if(N=Yys(a.body),N.length===1&&(N=Gze(N[0],t,!1).map(CGl),N.length===1))return l.map(function(k){return a.pre+N[0]+k});var B;if(b){var F=v7r(N[0]),Q=v7r(N[1]),X=Math.max(N[0].length,N[1].length),ae=N.length==3?Math.max(Math.abs(v7r(N[2])),1):1,ne=yGl,ce=Q0){var Se=new Array(be+1).join("0");ue<0?de="-"+Se+de.slice(1):de=Se+de}}B.push(de)}}else{B=[];for(var De=0;De{"use strict";Object.defineProperty(LLt,"__esModule",{value:!0});LLt.assertValidPattern=void 0;var EGl=1024*64,SGl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>EGl)throw new TypeError("pattern is too long")};LLt.assertValidPattern=SGl});var Kys=H(VLt=>{"use strict";Object.defineProperty(VLt,"__esModule",{value:!0});VLt.parseClass=void 0;var vGl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Fze=e=>e.replace(/[[\]\\-]/g,"\\$&"),BGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Uys=e=>e.join(""),wGl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(Fze(b)+"-"+Fze(F)):F===b&&n.push(Fze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(Fze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(Fze(F)),o++}if(C{"use strict";Object.defineProperty(PLt,"__esModule",{value:!0});PLt.unescape=void 0;var TGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");PLt.unescape=TGl});var R7r=H(YLt=>{"use strict";var rP;Object.defineProperty(YLt,"__esModule",{value:!0});YLt.AST=void 0;var RGl=Kys(),OLt=WLt(),NGl=new Set(["!","?","+","*","@"]),w7r=e=>NGl.has(e),jys=e=>w7r(e.type),DGl=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),kGl=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),xGl=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),zys=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),GGl="(?!(?:^|/)\\.\\.?(?:$|/))",MLt="(?!\\.)",FGl=new Set(["[","."]),ZGl=new Set(["..","."]),LGl=new Set("().*{}+?[]^$\\!"),VGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),T7r="[^/]",qys=T7r+"*?",$ys=T7r+"+?",HLt=class{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?rP.#B(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&ZGl.has(this.#r[0]))){let B=FGl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?GGl:Q?MLt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,OLt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#p(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString(),I=this;return I.#r=[f],I.type=null,I.#t=void 0,[f,(0,OLt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!MLt?"":this.#p(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?MLt:"")+$ys;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?MLt:"")+qys+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,OLt.unescape)(o),this.#t=!!this.#t,this.#n]}#p(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#B(t,r,n=!1){let a=!1,o="",l=!1,A=!1;for(let f=0;f{"use strict";Object.defineProperty(QLt,"__esModule",{value:!0});QLt.escape=void 0;var PGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");QLt.escape=PGl});var obs=H(xA=>{"use strict";var WGl=xA&&xA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xA,"__esModule",{value:!0});xA.unescape=xA.escape=xA.AST=xA.Minimatch=xA.match=xA.makeRe=xA.braceExpand=xA.defaults=xA.filter=xA.GLOBSTAR=xA.sep=xA.minimatch=void 0;var OGl=WGl(Xys()),XLt=Jys(),rbs=R7r(),MGl=N7r(),HGl=WLt(),YGl=(e,t,r={})=>((0,XLt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new Y0e(t,r).match(e));xA.minimatch=YGl;var QGl=/^\*+([^+@!?\*\[\(]*)$/,XGl=e=>t=>!t.startsWith(".")&&t.endsWith(e),JGl=e=>t=>t.endsWith(e),UGl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),KGl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),jGl=/^\*+\.\*+$/,zGl=e=>!e.startsWith(".")&&e.includes("."),qGl=e=>e!=="."&&e!==".."&&e.includes("."),$Gl=/^\.\*+$/,eFl=e=>e!=="."&&e!==".."&&e.startsWith("."),tFl=/^\*+$/,rFl=e=>e.length!==0&&!e.startsWith("."),nFl=e=>e.length!==0&&e!=="."&&e!=="..",iFl=/^\?+([^+@!?\*\[\(]*)?$/,sFl=([e,t=""])=>{let r=nbs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},oFl=([e,t=""])=>{let r=ibs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},aFl=([e,t=""])=>{let r=ibs([e]);return t?n=>r(n)&&n.endsWith(t):r},cFl=([e,t=""])=>{let r=nbs([e]);return t?n=>r(n)&&n.endsWith(t):r},nbs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},ibs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},sbs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",ebs={win32:{sep:"\\"},posix:{sep:"/"}};xA.sep=sbs==="win32"?ebs.win32.sep:ebs.posix.sep;xA.minimatch.sep=xA.sep;xA.GLOBSTAR=Symbol("globstar **");xA.minimatch.GLOBSTAR=xA.GLOBSTAR;var lFl="[^/]",uFl=lFl+"*?",gFl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",AFl="(?:(?!(?:\\/|^)\\.).)*?",dFl=(e,t={})=>r=>(0,xA.minimatch)(r,e,t);xA.filter=dFl;xA.minimatch.filter=xA.filter;var jH=(e,t={})=>Object.assign({},e,t),pFl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return xA.minimatch;let t=xA.minimatch;return Object.assign((n,a,o={})=>t(n,a,jH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,jH(e,o))}static defaults(a){return t.defaults(jH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,jH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,jH(e,o))}},unescape:(n,a={})=>t.unescape(n,jH(e,a)),escape:(n,a={})=>t.escape(n,jH(e,a)),filter:(n,a={})=>t.filter(n,jH(e,a)),defaults:n=>t.defaults(jH(e,n)),makeRe:(n,a={})=>t.makeRe(n,jH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,jH(e,a)),match:(n,a,o={})=>t.match(n,a,jH(e,o)),sep:t.sep,GLOBSTAR:xA.GLOBSTAR})};xA.defaults=pFl;xA.minimatch.defaults=xA.defaults;var fFl=(e,t={})=>((0,XLt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,OGl.default)(e));xA.braceExpand=fFl;xA.minimatch.braceExpand=xA.braceExpand;var IFl=(e,t={})=>new Y0e(e,t).makeRe();xA.makeRe=IFl;xA.minimatch.makeRe=xA.makeRe;var hFl=(e,t,r={})=>{let n=new Y0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};xA.match=hFl;xA.minimatch.match=xA.match;var tbs=/[?*]|[+@!]\(.*?\)|\[|\]/,mFl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Y0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){(0,XLt.assertValidPattern)(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||sbs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!tbs.test(o[2]))&&!tbs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;a=2&&(t=this.levelTwoFileOptimize(t)),r.includes(xA.GLOBSTAR)?this.#e(t,r,n,a,o):this.#n(t,r,n,a,o)}#e(t,r,n,a,o){let l=r.indexOf(xA.GLOBSTAR,o),A=r.lastIndexOf(xA.GLOBSTAR),[f,I,C]=n?[r.slice(o,l),r.slice(l+1),[]]:[r.slice(o,l),r.slice(l+1,A),r.slice(A+1)];if(f.length){let ae=t.slice(a,a+f.length);if(!this.#n(ae,f,n,0,0))return!1;a+=f.length}let b=0;if(C.length){if(C.length+a>t.length)return!1;let ae=t.length-C.length;if(this.#n(t,C,n,ae,0))b=C.length;else{if(t[t.length-1]!==""||a+C.length===t.length||(ae--,!this.#n(t,C,n,ae,0)))return!1;b=C.length+1}}if(!I.length){let ae=!!b;for(let ne=a;ne{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?mFl(C):C===xA.GLOBSTAR?xA.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==xA.GLOBSTAR||N===xA.GLOBSTAR||(N===void 0?E!==void 0&&E!==xA.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==xA.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=xA.GLOBSTAR))}),I.filter(C=>C!==xA.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var abs=zH&&zH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zH,"__esModule",{value:!0});zH.SuccinctRoles=zH.DelegatedRole=zH.Role=zH.TOP_LEVEL_ROLE_NAMES=void 0;var cbs=abs(wt("crypto")),bFl=obs(),JLt=abs(wt("util")),ULt=O6(),Q0e=iJ();zH.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var Zze=class e{constructor(t){let{keyIDs:r,threshold:n,unrecognizedFields:a}=t;if(EFl(r))throw new ULt.ValueError("duplicate key IDs found");if(n<1)throw new ULt.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=n,this.unrecognizedFields=a||{}}equals(t){return t instanceof e?this.threshold===t.threshold&&JLt.default.isDeepStrictEqual(this.keyIDs,t.keyIDs)&&JLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(t){let{keyids:r,threshold:n,...a}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof n!="number")throw new TypeError("threshold must be a number");return new e({keyIDs:r,threshold:n,unrecognizedFields:a})}};zH.Role=Zze;function EFl(e){return new Set(e).size!==e.length}var D7r=class e extends Zze{constructor(t){super(t);let{name:r,terminating:n,paths:a,pathHashPrefixes:o}=t;if(this.name=r,this.terminating=n,t.paths&&t.pathHashPrefixes)throw new ULt.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=o}equals(t){return t instanceof e?super.equals(t)&&this.name===t.name&&this.terminating===t.terminating&&JLt.default.isDeepStrictEqual(this.paths,t.paths)&&JLt.default.isDeepStrictEqual(this.pathHashPrefixes,t.pathHashPrefixes):!1}isDelegatedPath(t){if(this.paths)return this.paths.some(r=>vFl(t,r));if(this.pathHashPrefixes){let n=cbs.default.createHash("sha256").update(t).digest("hex");return this.pathHashPrefixes.some(a=>n.startsWith(a))}return!1}toJSON(){let t={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(t.paths=this.paths),this.pathHashPrefixes&&(t.path_hash_prefixes=this.pathHashPrefixes),t}static fromJSON(t){let{keyids:r,threshold:n,name:a,terminating:o,paths:l,path_hash_prefixes:A,...f}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof n!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof o!="boolean")throw new TypeError("terminating must be a boolean");if(Q0e.guard.isDefined(l)&&!Q0e.guard.isStringArray(l))throw new TypeError("paths must be an array of strings");if(Q0e.guard.isDefined(A)&&!Q0e.guard.isStringArray(A))throw new TypeError("path_hash_prefixes must be an array of strings");return new e({keyIDs:r,threshold:n,name:a,terminating:o,paths:l,pathHashPrefixes:A,unrecognizedFields:f})}};zH.DelegatedRole=D7r;var SFl=(e,t)=>e.map((r,n)=>[r,t[n]]);function vFl(e,t){let r=e.split("/"),n=t.split("/");return n.length!=r.length?!1:SFl(r,n).every(([a,o])=>(0,bFl.minimatch)(a,o))}var k7r=class e extends Zze{constructor(t){super(t);let{bitLength:r,namePrefix:n}=t;if(r<=0||r>32)throw new ULt.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=n,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(t){return t instanceof e?super.equals(t)&&this.bitLength===t.bitLength&&this.namePrefix===t.namePrefix:!1}getRoleForTarget(t){let a=cbs.default.createHash("sha256").update(t).digest().subarray(0,4),o=32-this.bitLength,A=(a.readUInt32BE()>>>o).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${A}`}*getRoles(){for(let t=0;t{"use strict";var BFl=BFe&&BFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BFe,"__esModule",{value:!0});BFe.Root=void 0;var lbs=BFl(wt("util")),G7r=H0e(),ubs=O6(),wFl=ZLt(),KLt=x7r(),jLt=iJ(),F7r=class e extends G7r.Signed{constructor(t){if(super(t),this.type=G7r.MetadataKind.Root,this.keys=t.keys||{},this.consistentSnapshot=t.consistentSnapshot??!0,!t.roles)this.roles=KLt.TOP_LEVEL_ROLE_NAMES.reduce((r,n)=>({...r,[n]:new KLt.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(t.roles));if(!KLt.TOP_LEVEL_ROLE_NAMES.every(n=>r.has(n)))throw new ubs.ValueError("missing top-level role");this.roles=t.roles}}addKey(t,r){if(!this.roles[r])throw new ubs.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(t.keyID)||this.roles[r].keyIDs.push(t.keyID),this.keys[t.keyID]=t}equals(t){return t instanceof e?super.equals(t)&&this.consistentSnapshot===t.consistentSnapshot&&lbs.default.isDeepStrictEqual(this.keys,t.keys)&&lbs.default.isDeepStrictEqual(this.roles,t.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:TFl(this.keys),roles:RFl(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=G7r.Signed.commonFieldsFromJSON(t),{keys:a,roles:o,consistent_snapshot:l,...A}=r;if(typeof l!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new e({...n,keys:NFl(a),roles:DFl(o),consistentSnapshot:l,unrecognizedFields:A})}};BFe.Root=F7r;function TFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function RFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function NFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("keys must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:wFl.Key.fromJSON(n,a)}),{})}return t}function DFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("roles must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:KLt.Role.fromJSON(a)}),{})}return t}});var V7r=H(zLt=>{"use strict";Object.defineProperty(zLt,"__esModule",{value:!0});zLt.Signature=void 0;var L7r=class e{constructor(t){let{keyID:r,sig:n}=t;this.keyID=r,this.sig=n}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(t){let{keyid:r,sig:n}=t;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof n!="string")throw new TypeError("sig must be a string");return new e({keyID:r,sig:n})}};zLt.Signature=L7r});var O7r=H(wFe=>{"use strict";var kFl=wFe&&wFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wFe,"__esModule",{value:!0});wFe.Snapshot=void 0;var xFl=kFl(wt("util")),P7r=H0e(),Abs=Nze(),gbs=iJ(),W7r=class e extends P7r.Signed{constructor(t){super(t),this.type=P7r.MetadataKind.Snapshot,this.meta=t.meta||{"targets.json":new Abs.MetaFile({version:1})}}equals(t){return t instanceof e?super.equals(t)&&xFl.default.isDeepStrictEqual(this.meta,t.meta):!1}toJSON(){return{_type:this.type,meta:GFl(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=P7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,meta:FFl(a),unrecognizedFields:o})}};wFe.Snapshot=W7r;function GFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function FFl(e){let t;if(gbs.guard.isDefined(e))if(gbs.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:Abs.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return t}});var dbs=H(TFe=>{"use strict";var ZFl=TFe&&TFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TFe,"__esModule",{value:!0});TFe.Delegations=void 0;var qLt=ZFl(wt("util")),LFl=O6(),VFl=ZLt(),M7r=x7r(),$Lt=iJ(),H7r=class e{constructor(t){if(this.keys=t.keys,this.unrecognizedFields=t.unrecognizedFields||{},t.roles&&Object.keys(t.roles).some(r=>M7r.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new LFl.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=t.succinctRoles,this.roles=t.roles}equals(t){return t instanceof e?qLt.default.isDeepStrictEqual(this.keys,t.keys)&&qLt.default.isDeepStrictEqual(this.roles,t.roles)&&qLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields)&&qLt.default.isDeepStrictEqual(this.succinctRoles,t.succinctRoles):!1}*rolesForTarget(t){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(t)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(t),terminating:!0})}toJSON(){let t={keys:PFl(this.keys),...this.unrecognizedFields};return this.roles?t.roles=WFl(this.roles):this.succinctRoles&&(t.succinct_roles=this.succinctRoles.toJSON()),t}static fromJSON(t){let{keys:r,roles:n,succinct_roles:a,...o}=t,l;return $Lt.guard.isObject(a)&&(l=M7r.SuccinctRoles.fromJSON(a)),new e({keys:OFl(r),roles:MFl(n),unrecognizedFields:o,succinctRoles:l})}};TFe.Delegations=H7r;function PFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function WFl(e){return Object.values(e).map(t=>t.toJSON())}function OFl(e){if(!$Lt.guard.isObjectRecord(e))throw new TypeError("keys is malformed");return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:VFl.Key.fromJSON(r,n)}),{})}function MFl(e){let t;if($Lt.guard.isDefined(e)){if(!$Lt.guard.isObjectArray(e))throw new TypeError("roles is malformed");t=e.reduce((r,n)=>{let a=M7r.DelegatedRole.fromJSON(n);return{...r,[a.name]:a}},{})}return t}});var X7r=H(RFe=>{"use strict";var HFl=RFe&&RFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RFe,"__esModule",{value:!0});RFe.Targets=void 0;var pbs=HFl(wt("util")),Y7r=H0e(),YFl=dbs(),QFl=Nze(),e9t=iJ(),Q7r=class e extends Y7r.Signed{constructor(t){super(t),this.type=Y7r.MetadataKind.Targets,this.targets=t.targets||{},this.delegations=t.delegations}addTarget(t){this.targets[t.path]=t}equals(t){return t instanceof e?super.equals(t)&&pbs.default.isDeepStrictEqual(this.targets,t.targets)&&pbs.default.isDeepStrictEqual(this.delegations,t.delegations):!1}toJSON(){let t={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:XFl(this.targets),...this.unrecognizedFields};return this.delegations&&(t.delegations=this.delegations.toJSON()),t}static fromJSON(t){let{unrecognizedFields:r,...n}=Y7r.Signed.commonFieldsFromJSON(t),{targets:a,delegations:o,...l}=r;return new e({...n,targets:JFl(a),delegations:UFl(o),unrecognizedFields:l})}};RFe.Targets=Q7r;function XFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function JFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:QFl.TargetFile.fromJSON(n,a)}),{});else throw new TypeError("targets must be an object");return t}function UFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObject(e))t=YFl.Delegations.fromJSON(e);else throw new TypeError("delegations must be an object");return t}});var j7r=H(t9t=>{"use strict";Object.defineProperty(t9t,"__esModule",{value:!0});t9t.Timestamp=void 0;var J7r=H0e(),fbs=Nze(),U7r=iJ(),K7r=class e extends J7r.Signed{constructor(t){super(t),this.type=J7r.MetadataKind.Timestamp,this.snapshotMeta=t.snapshotMeta||new fbs.MetaFile({version:1})}equals(t){return t instanceof e?super.equals(t)&&this.snapshotMeta.equals(t.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=J7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,snapshotMeta:KFl(a),unrecognizedFields:o})}};t9t.Timestamp=K7r;function KFl(e){let t;if(U7r.guard.isDefined(e)){let r=e["snapshot.json"];if(!U7r.guard.isDefined(r)||!U7r.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");t=fbs.MetaFile.fromJSON(r)}return t}});var hbs=H(DFe=>{"use strict";var jFl=DFe&&DFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DFe,"__esModule",{value:!0});DFe.Metadata=void 0;var zFl=f7r(),Ibs=jFl(wt("util")),NFe=H0e(),Lze=O6(),qFl=Z7r(),$Fl=V7r(),eZl=O7r(),tZl=X7r(),rZl=j7r(),z7r=iJ(),q7r=class e{constructor(t,r,n){this.signed=t,this.signatures=r||{},this.unrecognizedFields=n||{}}sign(t,r=!0){let n=Buffer.from((0,zFl.canonicalize)(this.signed.toJSON())),a=t(n);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(t,r){let n,a={};switch(this.signed.type){case NFe.MetadataKind.Root:a=this.signed.keys,n=this.signed.roles[t];break;case NFe.MetadataKind.Targets:if(!this.signed.delegations)throw new Lze.ValueError(`No delegations found for ${t}`);a=this.signed.delegations.keys,this.signed.delegations.roles?n=this.signed.delegations.roles[t]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(t)&&(n=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!n)throw new Lze.ValueError(`no delegation found for ${t}`);let o=new Set;if(n.keyIDs.forEach(l=>{let A=a[l];if(A)try{A.verifySignature(r),o.add(A.keyID)}catch{}}),o.sizer.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(t,r){let{signed:n,signatures:a,...o}=r;if(!z7r.guard.isDefined(n)||!z7r.guard.isObject(n))throw new TypeError("signed is not defined");if(t!==n._type)throw new Lze.ValueError(`expected '${t}', got ${n._type}`);if(!z7r.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let l;switch(t){case NFe.MetadataKind.Root:l=qFl.Root.fromJSON(n);break;case NFe.MetadataKind.Timestamp:l=rZl.Timestamp.fromJSON(n);break;case NFe.MetadataKind.Snapshot:l=eZl.Snapshot.fromJSON(n);break;case NFe.MetadataKind.Targets:l=tZl.Targets.fromJSON(n);break;default:throw new TypeError("invalid metadata type")}let A={};return a.forEach(f=>{let I=$Fl.Signature.fromJSON(f);if(A[I.keyID])throw new Lze.ValueError(`multiple signatures found for keyid: ${I.keyID}`);A[I.keyID]=I}),new e(l,A,o)}};DFe.Metadata=q7r});var r9t=H(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.Timestamp=W2.Targets=W2.Snapshot=W2.Signature=W2.Root=W2.Metadata=W2.Key=W2.TargetFile=W2.MetaFile=W2.ValueError=W2.MetadataKind=void 0;var nZl=H0e();Object.defineProperty(W2,"MetadataKind",{enumerable:!0,get:function(){return nZl.MetadataKind}});var iZl=O6();Object.defineProperty(W2,"ValueError",{enumerable:!0,get:function(){return iZl.ValueError}});var mbs=Nze();Object.defineProperty(W2,"MetaFile",{enumerable:!0,get:function(){return mbs.MetaFile}});Object.defineProperty(W2,"TargetFile",{enumerable:!0,get:function(){return mbs.TargetFile}});var sZl=ZLt();Object.defineProperty(W2,"Key",{enumerable:!0,get:function(){return sZl.Key}});var oZl=hbs();Object.defineProperty(W2,"Metadata",{enumerable:!0,get:function(){return oZl.Metadata}});var aZl=Z7r();Object.defineProperty(W2,"Root",{enumerable:!0,get:function(){return aZl.Root}});var cZl=V7r();Object.defineProperty(W2,"Signature",{enumerable:!0,get:function(){return cZl.Signature}});var lZl=O7r();Object.defineProperty(W2,"Snapshot",{enumerable:!0,get:function(){return lZl.Snapshot}});var uZl=X7r();Object.defineProperty(W2,"Targets",{enumerable:!0,get:function(){return uZl.Targets}});var gZl=j7r();Object.defineProperty(W2,"Timestamp",{enumerable:!0,get:function(){return gZl.Timestamp}})});var $7r=H((sag,Cbs)=>{function AZl(e){r.debug=r,r.default=r,r.coerce=f,r.disable=l,r.enable=a,r.enabled=A,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b=(typeof C=="string"?C:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?r.skips.push(E.slice(1)):r.names.push(E)}function o(C,b){let E=0,N=0,B=-1,F=0;for(;E"-"+b)].join(",");return r.enable(""),C}function A(C){for(let b of r.skips)if(o(C,b))return!1;for(let b of r.names)if(o(C,b))return!0;return!1}function f(C){return C instanceof Error?C.stack||C.message:C}function I(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Cbs.exports=AZl});var _bs=H((nP,n9t)=>{nP.formatArgs=pZl;nP.save=fZl;nP.load=IZl;nP.useColors=dZl;nP.storage=hZl();nP.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();nP.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function dZl(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function pZl(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+n9t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}nP.log=console.debug||console.log||(()=>{});function fZl(e){try{e?nP.storage.setItem("debug",e):nP.storage.removeItem("debug")}catch{}}function IZl(){let e;try{e=nP.storage.getItem("debug")||nP.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function hZl(){try{return localStorage}catch{}}n9t.exports=$7r()(nP);var{formatters:mZl}=n9t.exports;mZl.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bbs=H((wD,s9t)=>{var CZl=wt("tty"),i9t=wt("util");wD.init=BZl;wD.log=EZl;wD.formatArgs=yZl;wD.save=SZl;wD.load=vZl;wD.useColors=_Zl;wD.destroy=i9t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");wD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(wD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}wD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function _Zl(){return"colors"in wD.inspectOpts?!!wD.inspectOpts.colors:CZl.isatty(process.stderr.fd)}function yZl(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +`;let f=(0,wNl.parseProxyResponse)(a);a.write(`${A}\r +`);let{connect:I,buffered:C}=await f;if(t.emit("proxyConnect",I),this.emit("proxyConnect",I,t),I.statusCode===200){if(t.once("socket",TNl),r.secureEndpoint){Cze("Upgrading socket connection to TLS");let E=r.servername||r.host;return G_s.connect({...F_s(r,"host","path","port"),socket:a,servername:E})}return a}a.destroy();let b=new g6r.Socket({writable:!1});return b.readable=!0,t.once("socket",E=>{Cze("Replaying proxy buffer for failed request"),(0,ENl.default)(E.listenerCount("data")>0),E.push(C),E.push(null)}),b}};rLt.protocols=["http","https"];XH.HttpsProxyAgent=rLt;function TNl(e){e.resume()}function F_s(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var M_s=H(ure=>{"use strict";Object.defineProperty(ure,"__esModule",{value:!0});var P_s=wt("buffer"),Z0e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};ure.ERRORS=Z0e;function RNl(e){if(!P_s.Buffer.isEncoding(e))throw new Error(Z0e.INVALID_ENCODING)}ure.checkEncoding=RNl;function W_s(e){return typeof e=="number"&&isFinite(e)&&xNl(e)}ure.isFiniteInteger=W_s;function O_s(e,t){if(typeof e=="number"){if(!W_s(e)||e<0)throw new Error(t?Z0e.INVALID_OFFSET:Z0e.INVALID_LENGTH)}else throw new Error(t?Z0e.INVALID_OFFSET_NON_NUMBER:Z0e.INVALID_LENGTH_NON_NUMBER)}function NNl(e){O_s(e,!1)}ure.checkLengthValue=NNl;function DNl(e){O_s(e,!0)}ure.checkOffsetValue=DNl;function kNl(e,t){if(e<0||e>t.length)throw new Error(Z0e.INVALID_TARGET_OFFSET)}ure.checkTargetOffset=kNl;function xNl(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e}function GNl(e){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof P_s.Buffer.prototype[e]>"u")throw new Error(`Platform does not support Buffer.prototype.${e}.`)}ure.bigIntAndBufferInt64Check=GNl});var Y_s=H(d6r=>{"use strict";Object.defineProperty(d6r,"__esModule",{value:!0});var Yh=M_s(),H_s=4096,FNl="utf8",A6r=class e{constructor(t){if(this.length=0,this._encoding=FNl,this._writeOffset=0,this._readOffset=0,e.isSmartBufferOptions(t))if(t.encoding&&(Yh.checkEncoding(t.encoding),this._encoding=t.encoding),t.size)if(Yh.isFiniteInteger(t.size)&&t.size>0)this._buff=Buffer.allocUnsafe(t.size);else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(t.buff)if(Buffer.isBuffer(t.buff))this._buff=t.buff,this.length=t.buff.length;else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(H_s);else{if(typeof t<"u")throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(H_s)}}static fromSize(t,r){return new this({size:t,encoding:r})}static fromBuffer(t,r){return new this({buff:t,encoding:r})}static fromOptions(t){return new this(t)}static isSmartBufferOptions(t){let r=t;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(t){return this._readNumberValue(Buffer.prototype.readInt8,1,t)}readInt16BE(t){return this._readNumberValue(Buffer.prototype.readInt16BE,2,t)}readInt16LE(t){return this._readNumberValue(Buffer.prototype.readInt16LE,2,t)}readInt32BE(t){return this._readNumberValue(Buffer.prototype.readInt32BE,4,t)}readInt32LE(t){return this._readNumberValue(Buffer.prototype.readInt32LE,4,t)}readBigInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,t)}readBigInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,t)}writeInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,t,r),this}insertInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,t,r)}writeInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}insertInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}writeInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}insertInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}writeInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}insertInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}writeInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}insertInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}writeBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}insertBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}writeBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}insertBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}readUInt8(t){return this._readNumberValue(Buffer.prototype.readUInt8,1,t)}readUInt16BE(t){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,t)}readUInt16LE(t){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,t)}readUInt32BE(t){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,t)}readUInt32LE(t){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,t)}readBigUInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,t)}readBigUInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,t)}writeUInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,t,r)}insertUInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,t,r)}writeUInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}insertUInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}writeUInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}insertUInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}writeUInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}insertUInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}writeUInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}insertUInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}writeBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}insertBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}writeBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}insertBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}readFloatBE(t){return this._readNumberValue(Buffer.prototype.readFloatBE,4,t)}readFloatLE(t){return this._readNumberValue(Buffer.prototype.readFloatLE,4,t)}writeFloatBE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}insertFloatBE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}writeFloatLE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}insertFloatLE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}readDoubleBE(t){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,t)}readDoubleLE(t){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,t)}writeDoubleBE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}insertDoubleBE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}writeDoubleLE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}insertDoubleLE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}readString(t,r){let n;typeof t=="number"?(Yh.checkLengthValue(t),n=Math.min(t,this.length-this._readOffset)):(r=t,n=this.length-this._readOffset),typeof r<"u"&&Yh.checkEncoding(r);let a=this._buff.slice(this._readOffset,this._readOffset+n).toString(r||this._encoding);return this._readOffset+=n,a}insertString(t,r,n){return Yh.checkOffsetValue(r),this._handleString(t,!0,r,n)}writeString(t,r,n){return this._handleString(t,!1,r,n)}readStringNT(t){typeof t<"u"&&Yh.checkEncoding(t);let r=this.length;for(let a=this._readOffset;athis.length)throw new Error(Yh.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(t,r){Yh.checkOffsetValue(r),this._ensureCapacity(this.length+t),rthis.length?this.length=r+t:this.length+=t}_ensureWriteable(t,r){let n=typeof r=="number"?r:this._writeOffset;this._ensureCapacity(n+t),n+t>this.length&&(this.length=n+t)}_ensureCapacity(t){let r=this._buff.length;if(t>r){let n=this._buff,a=r*3/2+1;a"u"&&(this._readOffset+=r),a}_insertNumberValue(t,r,n,a){return Yh.checkOffsetValue(a),this.ensureInsertable(r,a),t.call(this._buff,n,a),this._writeOffset+=r,this}_writeNumberValue(t,r,n,a){if(typeof a=="number"){if(a<0)throw new Error(Yh.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);Yh.checkOffsetValue(a)}let o=typeof a=="number"?a:this._writeOffset;return this._ensureWriteable(r,o),t.call(this._buff,n,o),typeof a=="number"?this._writeOffset=Math.max(this._writeOffset,o+r):this._writeOffset+=r,this}};d6r.SmartBuffer=A6r});var p6r=H(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.SOCKS5_NO_ACCEPTABLE_AUTH=HE.SOCKS5_CUSTOM_AUTH_END=HE.SOCKS5_CUSTOM_AUTH_START=HE.SOCKS_INCOMING_PACKET_SIZES=HE.SocksClientState=HE.Socks5Response=HE.Socks5HostType=HE.Socks5Auth=HE.Socks4Response=HE.SocksCommand=HE.ERRORS=HE.DEFAULT_TIMEOUT=void 0;var ZNl=3e4;HE.DEFAULT_TIMEOUT=ZNl;var LNl={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"};HE.ERRORS=LNl;var VNl={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:e=>e+7,Socks4Response:8};HE.SOCKS_INCOMING_PACKET_SIZES=VNl;var Q_s;(function(e){e[e.connect=1]="connect",e[e.bind=2]="bind",e[e.associate=3]="associate"})(Q_s||(HE.SocksCommand=Q_s={}));var X_s;(function(e){e[e.Granted=90]="Granted",e[e.Failed=91]="Failed",e[e.Rejected=92]="Rejected",e[e.RejectedIdent=93]="RejectedIdent"})(X_s||(HE.Socks4Response=X_s={}));var J_s;(function(e){e[e.NoAuth=0]="NoAuth",e[e.GSSApi=1]="GSSApi",e[e.UserPass=2]="UserPass"})(J_s||(HE.Socks5Auth=J_s={}));var PNl=128;HE.SOCKS5_CUSTOM_AUTH_START=PNl;var WNl=254;HE.SOCKS5_CUSTOM_AUTH_END=WNl;var ONl=255;HE.SOCKS5_NO_ACCEPTABLE_AUTH=ONl;var U_s;(function(e){e[e.Granted=0]="Granted",e[e.Failure=1]="Failure",e[e.NotAllowed=2]="NotAllowed",e[e.NetworkUnreachable=3]="NetworkUnreachable",e[e.HostUnreachable=4]="HostUnreachable",e[e.ConnectionRefused=5]="ConnectionRefused",e[e.TTLExpired=6]="TTLExpired",e[e.CommandNotSupported=7]="CommandNotSupported",e[e.AddressNotSupported=8]="AddressNotSupported"})(U_s||(HE.Socks5Response=U_s={}));var K_s;(function(e){e[e.IPv4=1]="IPv4",e[e.Hostname=3]="Hostname",e[e.IPv6=4]="IPv6"})(K_s||(HE.Socks5HostType=K_s={}));var j_s;(function(e){e[e.Created=0]="Created",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.SentInitialHandshake=3]="SentInitialHandshake",e[e.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",e[e.SentAuthentication=5]="SentAuthentication",e[e.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",e[e.SentFinalHandshake=7]="SentFinalHandshake",e[e.ReceivedFinalResponse=8]="ReceivedFinalResponse",e[e.BoundWaitingForConnection=9]="BoundWaitingForConnection",e[e.Established=10]="Established",e[e.Disconnected=11]="Disconnected",e[e.Error=99]="Error"})(j_s||(HE.SocksClientState=j_s={}))});var I6r=H(AFe=>{"use strict";Object.defineProperty(AFe,"__esModule",{value:!0});AFe.shuffleArray=AFe.SocksClientError=void 0;var f6r=class extends Error{constructor(t,r){super(t),this.options=r}};AFe.SocksClientError=f6r;function MNl(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]]}}AFe.shuffleArray=MNl});var h6r=H(dFe=>{"use strict";Object.defineProperty(dFe,"__esModule",{value:!0});dFe.isCorrect=dFe.isInSubnet=void 0;function HNl(e){return this.subnetMask{"use strict";Object.defineProperty(L6,"__esModule",{value:!0});L6.RE_SUBNET_STRING=L6.RE_ADDRESS=L6.GROUPS=L6.BITS=void 0;L6.BITS=32;L6.GROUPS=4;L6.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;L6.RE_SUBNET_STRING=/\/\d{1,2}$/});var iLt=H(nLt=>{"use strict";Object.defineProperty(nLt,"__esModule",{value:!0});nLt.AddressError=void 0;var C6r=class extends Error{constructor(t,r){super(t),this.name="AddressError",r!==null&&(this.parseMessage=r)}};nLt.AddressError=C6r});var _6r=H((sLt,z_s)=>{(function(){var e,t=0xdeadbeefcafe,r=(t&16777215)==15715070;function n(Er,Zt,yn){Er!=null&&(typeof Er=="number"?this.fromNumber(Er,Zt,yn):Zt==null&&typeof Er!="string"?this.fromString(Er,256):this.fromString(Er,Zt))}function a(){return new n(null)}function o(Er,Zt,yn,ls,oa,Fs){for(;--Fs>=0;){var Wa=Zt*this[Er++]+yn[ls]+oa;oa=Math.floor(Wa/67108864),yn[ls++]=Wa&67108863}return oa}function l(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&32767,Ca=Zt>>15;--Fs>=0;){var ld=this[Er]&32767,Rp=this[Er++]>>15,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&32767)<<15)+yn[ls]+(oa&1073741823),oa=(ld>>>30)+(np>>>15)+Ca*Rp+(oa>>>30),yn[ls++]=ld&1073741823}return oa}function A(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&16383,Ca=Zt>>14;--Fs>=0;){var ld=this[Er]&16383,Rp=this[Er++]>>14,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&16383)<<14)+yn[ls]+oa,oa=(ld>>28)+(np>>14)+Ca*Rp,yn[ls++]=ld&268435455}return oa}var f=typeof navigator<"u";f&&r&&navigator.appName=="Microsoft Internet Explorer"?(n.prototype.am=l,e=30):f&&r&&navigator.appName!="Netscape"?(n.prototype.am=o,e=26):(n.prototype.am=A,e=28),n.prototype.DB=e,n.prototype.DM=(1<=0;--Zt)Er[Zt]=this[Zt];Er.t=this.t,Er.s=this.s}function X(Er){this.t=1,this.s=Er<0?-1:0,Er>0?this[0]=Er:Er<-1?this[0]=Er+this.DV:this.t=0}function ae(Er){var Zt=a();return Zt.fromInt(Er),Zt}function ne(Er,Zt){var yn;if(Zt==16)yn=4;else if(Zt==8)yn=3;else if(Zt==256)yn=8;else if(Zt==2)yn=1;else if(Zt==32)yn=5;else if(Zt==4)yn=2;else{this.fromRadix(Er,Zt);return}this.t=0,this.s=0;for(var ls=Er.length,oa=!1,Fs=0;--ls>=0;){var Wa=yn==8?Er[ls]&255:F(Er,ls);if(Wa<0){Er.charAt(ls)=="-"&&(oa=!0);continue}oa=!1,Fs==0?this[this.t++]=Wa:Fs+yn>this.DB?(this[this.t-1]|=(Wa&(1<>this.DB-Fs):this[this.t-1]|=Wa<=this.DB&&(Fs-=this.DB)}yn==8&&Er[0]&128&&(this.s=-1,Fs>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==Er;)--this.t}function fe(Er){if(this.s<0)return"-"+this.negate().toString(Er);var Zt;if(Er==16)Zt=4;else if(Er==8)Zt=3;else if(Er==2)Zt=1;else if(Er==32)Zt=5;else if(Er==4)Zt=2;else return this.toRadix(Er);var yn=(1<0)for(Ca>Ca)>0&&(oa=!0,Fs=B(ls));Wa>=0;)Ca>(Ca+=this.DB-Zt)):(ls=this[Wa]>>(Ca-=Zt)&yn,Ca<=0&&(Ca+=this.DB,--Wa)),ls>0&&(oa=!0),oa&&(Fs+=B(ls));return oa?Fs:"0"}function ue(){var Er=a();return n.ZERO.subTo(this,Er),Er}function de(){return this.s<0?this.negate():this}function be(Er){var Zt=this.s-Er.s;if(Zt!=0)return Zt;var yn=this.t;if(Zt=yn-Er.t,Zt!=0)return this.s<0?-Zt:Zt;for(;--yn>=0;)if((Zt=this[yn]-Er[yn])!=0)return Zt;return 0}function Se(Er){var Zt=1,yn;return(yn=Er>>>16)!=0&&(Er=yn,Zt+=16),(yn=Er>>8)!=0&&(Er=yn,Zt+=8),(yn=Er>>4)!=0&&(Er=yn,Zt+=4),(yn=Er>>2)!=0&&(Er=yn,Zt+=2),(yn=Er>>1)!=0&&(Er=yn,Zt+=1),Zt}function De(){return this.t<=0?0:this.DB*(this.t-1)+Se(this[this.t-1]^this.s&this.DM)}function k(Er,Zt){var yn;for(yn=this.t-1;yn>=0;--yn)Zt[yn+Er]=this[yn];for(yn=Er-1;yn>=0;--yn)Zt[yn]=0;Zt.t=this.t+Er,Zt.s=this.s}function et(Er,Zt){for(var yn=Er;yn=0;--Ca)Zt[Ca+Fs+1]=this[Ca]>>ls|Wa,Wa=(this[Ca]&oa)<=0;--Ca)Zt[Ca]=0;Zt[Fs]=Wa,Zt.t=this.t+Fs+1,Zt.s=this.s,Zt.clamp()}function Me(Er,Zt){Zt.s=this.s;var yn=Math.floor(Er/this.DB);if(yn>=this.t){Zt.t=0;return}var ls=Er%this.DB,oa=this.DB-ls,Fs=(1<>ls;for(var Wa=yn+1;Wa>ls;ls>0&&(Zt[this.t-yn-1]|=(this.s&Fs)<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls-=Er.s}Zt.s=ls<0?-1:0,ls<-1?Zt[yn++]=this.DV+ls:ls>0&&(Zt[yn++]=ls),Zt.t=yn,Zt.clamp()}function St(Er,Zt){var yn=this.abs(),ls=Er.abs(),oa=yn.t;for(Zt.t=oa+ls.t;--oa>=0;)Zt[oa]=0;for(oa=0;oa=0;)Er[yn]=0;for(yn=0;yn=Zt.DV&&(Er[yn+Zt.t]-=Zt.DV,Er[yn+Zt.t+1]=1)}Er.t>0&&(Er[Er.t-1]+=Zt.am(yn,Zt[yn],Er,2*yn,0,1)),Er.s=0,Er.clamp()}function Yt(Er,Zt,yn){var ls=Er.abs();if(!(ls.t<=0)){var oa=this.abs();if(oa.t0?(ls.lShiftTo(ld,Fs),oa.lShiftTo(ld,yn)):(ls.copyTo(Fs),oa.copyTo(yn));var Rp=Fs.t,np=Fs[Rp-1];if(np!=0){var HA=np*(1<1?Fs[Rp-2]>>this.F2:0),df=this.FV/HA,Zs=(1<=0&&(yn[yn.t++]=1,yn.subTo(Dr,yn)),n.ONE.dlShiftTo(Rp,Dr),Dr.subTo(Fs,Fs);Fs.t=0;){var Wn=yn[--Ea]==np?this.DM:Math.floor(yn[Ea]*df+(yn[Ea-1]+so)*Zs);if((yn[Ea]+=Fs.am(0,Wn,yn,Ml,0,Rp))0&&yn.rShiftTo(ld,yn),Wa<0&&n.ZERO.subTo(yn,yn)}}}function Tr(Er){var Zt=a();return this.abs().divRemTo(Er,null,Zt),this.s<0&&Zt.compareTo(n.ZERO)>0&&Er.subTo(Zt,Zt),Zt}function Nr(Er){this.m=Er}function er(Er){return Er.s<0||Er.compareTo(this.m)>=0?Er.mod(this.m):Er}function vt(Er){return Er}function xt(Er){Er.divRemTo(this.m,null,Er)}function Zr(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}function qt(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}Nr.prototype.convert=er,Nr.prototype.revert=vt,Nr.prototype.reduce=xt,Nr.prototype.mulTo=Zr,Nr.prototype.sqrTo=qt;function Xt(){if(this.t<1)return 0;var Er=this[0];if(!(Er&1))return 0;var Zt=Er&3;return Zt=Zt*(2-(Er&15)*Zt)&15,Zt=Zt*(2-(Er&255)*Zt)&255,Zt=Zt*(2-((Er&65535)*Zt&65535))&65535,Zt=Zt*(2-Er*Zt%this.DV)%this.DV,Zt>0?this.DV-Zt:-Zt}function lr(Er){this.m=Er,this.mp=Er.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(Zt,Zt),Zt}function Ar(Er){var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function qr(Er){for(;Er.t<=this.mt2;)Er[Er.t++]=0;for(var Zt=0;Zt>15)*this.mpl&this.um)<<15)&Er.DM;for(yn=Zt+this.m.t,Er[yn]+=this.m.am(0,ls,Er,Zt,0,this.m.t);Er[yn]>=Er.DV;)Er[yn]-=Er.DV,Er[++yn]++}Er.clamp(),Er.drShiftTo(this.m.t,Er),Er.compareTo(this.m)>=0&&Er.subTo(this.m,Er)}function _n(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function ke(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}lr.prototype.convert=cr,lr.prototype.revert=Ar,lr.prototype.reduce=qr,lr.prototype.mulTo=ke,lr.prototype.sqrTo=_n;function jt(){return(this.t>0?this[0]&1:this.s)==0}function Fn(Er,Zt){if(Er>4294967295||Er<1)return n.ONE;var yn=a(),ls=a(),oa=Zt.convert(this),Fs=Se(Er)-1;for(oa.copyTo(yn);--Fs>=0;)if(Zt.sqrTo(yn,ls),(Er&1<0)Zt.mulTo(ls,oa,yn);else{var Wa=yn;yn=ls,ls=Wa}return Zt.revert(yn)}function Nn(Er,Zt){var yn;return Er<256||Zt.isEven()?yn=new Nr(Zt):yn=new lr(Zt),this.exp(Er,yn)}n.prototype.copyTo=Q,n.prototype.fromInt=X,n.prototype.fromString=ne,n.prototype.clamp=ce,n.prototype.dlShiftTo=k,n.prototype.drShiftTo=et,n.prototype.lShiftTo=ct,n.prototype.rShiftTo=Me,n.prototype.subTo=je,n.prototype.multiplyTo=St,n.prototype.squareTo=At,n.prototype.divRemTo=Yt,n.prototype.invDigit=Xt,n.prototype.isEven=jt,n.prototype.exp=Fn,n.prototype.toString=fe,n.prototype.negate=ue,n.prototype.abs=de,n.prototype.compareTo=be,n.prototype.bitLength=De,n.prototype.mod=Tr,n.prototype.modPowInt=Nn,n.ZERO=ae(0),n.ONE=ae(1);function Hi(){var Er=a();return this.copyTo(Er),Er}function po(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>24}function xi(){return this.t==0?this.s:this[0]<<16>>16}function io(Er){return Math.floor(Math.LN2*this.DB/Math.log(Er))}function ga(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function Ya(Er){if(Er==null&&(Er=10),this.signum()==0||Er<2||Er>36)return"0";var Zt=this.chunkSize(Er),yn=Math.pow(Er,Zt),ls=ae(yn),oa=a(),Fs=a(),Wa="";for(this.divRemTo(ls,oa,Fs);oa.signum()>0;)Wa=(yn+Fs.intValue()).toString(Er).substr(1)+Wa,oa.divRemTo(ls,oa,Fs);return Fs.intValue().toString(Er)+Wa}function Gc(Er,Zt){this.fromInt(0),Zt==null&&(Zt=10);for(var yn=this.chunkSize(Zt),ls=Math.pow(Zt,yn),oa=!1,Fs=0,Wa=0,Ca=0;Ca=yn&&(this.dMultiply(ls),this.dAddOffset(Wa,0),Fs=0,Wa=0)}Fs>0&&(this.dMultiply(Math.pow(Zt,Fs)),this.dAddOffset(Wa,0)),oa&&n.ZERO.subTo(this,this)}function cl(Er,Zt,yn){if(typeof Zt=="number")if(Er<2)this.fromInt(1);else for(this.fromNumber(Er,yn),this.testBit(Er-1)||this.bitwiseTo(n.ONE.shiftLeft(Er-1),Qi,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(Zt);)this.dAddOffset(2,0),this.bitLength()>Er&&this.subTo(n.ONE.shiftLeft(Er-1),this);else{var ls=new Array,oa=Er&7;ls.length=(Er>>3)+1,Zt.nextBytes(ls),oa>0?ls[0]&=(1<0)for(yn>yn)!=(this.s&this.DM)>>yn&&(Zt[oa++]=ls|this.s<=0;)yn<8?(ls=(this[Er]&(1<>(yn+=this.DB-8)):(ls=this[Er]>>(yn-=8)&255,yn<=0&&(yn+=this.DB,--Er)),ls&128&&(ls|=-256),oa==0&&(this.s&128)!=(ls&128)&&++oa,(oa>0||ls!=this.s)&&(Zt[oa++]=ls);return Zt}function Hr(Er){return this.compareTo(Er)==0}function Wr(Er){return this.compareTo(Er)<0?this:Er}function Ft(Er){return this.compareTo(Er)>0?this:Er}function zr(Er,Zt,yn){var ls,oa,Fs=Math.min(Er.t,this.t);for(ls=0;ls>=16,Zt+=16),Er&255||(Er>>=8,Zt+=8),Er&15||(Er>>=4,Zt+=4),Er&3||(Er>>=2,Zt+=2),Er&1||++Zt,Zt}function vu(){for(var Er=0;Er=this.t?this.s!=0:(this[Zt]&1<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls+=Er.s}Zt.s=ls<0?-1:0,ls>0?Zt[yn++]=ls:ls<-1&&(Zt[yn++]=this.DV+ls),Zt.t=yn,Zt.clamp()}function Ul(Er){var Zt=a();return this.addTo(Er,Zt),Zt}function Xu(Er){var Zt=a();return this.subTo(Er,Zt),Zt}function Da(Er){var Zt=a();return this.multiplyTo(Er,Zt),Zt}function pu(){var Er=a();return this.squareTo(Er),Er}function _g(Er){var Zt=a();return this.divRemTo(Er,Zt,null),Zt}function mI(Er){var Zt=a();return this.divRemTo(Er,null,Zt),Zt}function Qh(Er){var Zt=a(),yn=a();return this.divRemTo(Er,Zt,yn),new Array(Zt,yn)}function Ri(Er){this[this.t]=this.am(0,Er-1,this,0,0,this.t),++this.t,this.clamp()}function Do(Er,Zt){if(Er!=0){for(;this.t<=Zt;)this[this.t++]=0;for(this[Zt]+=Er;this[Zt]>=this.DV;)this[Zt]-=this.DV,++Zt>=this.t&&(this[this.t++]=0),++this[Zt]}}function Wt(){}function Hu(Er){return Er}function Ru(Er,Zt,yn){Er.multiplyTo(Zt,yn)}function Vs(Er,Zt){Er.squareTo(Zt)}Wt.prototype.convert=Hu,Wt.prototype.revert=Hu,Wt.prototype.mulTo=Ru,Wt.prototype.sqrTo=Vs;function Ju(Er){return this.exp(Er,new Wt)}function Yn(Er,Zt,yn){var ls=Math.min(this.t+Er.t,Zt);for(yn.s=0,yn.t=ls;ls>0;)yn[--ls]=0;var oa;for(oa=yn.t-this.t;ls=0;)yn[ls]=0;for(ls=Math.max(Zt-this.t,0);ls2*this.m.t)return Er.mod(this.m);if(Er.compareTo(this.m)<0)return Er;var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function GA(Er){return Er}function $i(Er){for(Er.drShiftTo(this.m.t-1,this.r2),Er.t>this.m.t+1&&(Er.t=this.m.t+1,Er.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);Er.compareTo(this.r2)<0;)Er.dAddOffset(1,this.m.t+1);for(Er.subTo(this.r2,Er);Er.compareTo(this.m)>=0;)Er.subTo(this.m,Er)}function dl(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function Uf(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}Eg.prototype.convert=OA,Eg.prototype.revert=GA,Eg.prototype.reduce=$i,Eg.prototype.mulTo=Uf,Eg.prototype.sqrTo=dl;function Kd(Er,Zt){var yn=Er.bitLength(),ls,oa=ae(1),Fs;if(yn<=0)return oa;yn<18?ls=1:yn<48?ls=3:yn<144?ls=4:yn<768?ls=5:ls=6,yn<8?Fs=new Nr(Zt):Zt.isEven()?Fs=new Eg(Zt):Fs=new lr(Zt);var Wa=new Array,Ca=3,ld=ls-1,Rp=(1<1){var np=a();for(Fs.sqrTo(Wa[1],np);Ca<=Rp;)Wa[Ca]=a(),Fs.mulTo(np,Wa[Ca-2],Wa[Ca]),Ca+=2}var HA=Er.t-1,df,Zs=!0,so=a(),Ea;for(yn=Se(Er[HA])-1;HA>=0;){for(yn>=ld?df=Er[HA]>>yn-ld&Rp:(df=(Er[HA]&(1<0&&(df|=Er[HA-1]>>this.DB+yn-ld)),Ca=ls;!(df&1);)df>>=1,--Ca;if((yn-=Ca)<0&&(yn+=this.DB,--HA),Zs)Wa[df].copyTo(oa),Zs=!1;else{for(;Ca>1;)Fs.sqrTo(oa,so),Fs.sqrTo(so,oa),Ca-=2;Ca>0?Fs.sqrTo(oa,so):(Ea=oa,oa=so,so=Ea),Fs.mulTo(so,Wa[df],oa)}for(;HA>=0&&!(Er[HA]&1<0&&(Zt.rShiftTo(Fs,Zt),yn.rShiftTo(Fs,yn));Zt.signum()>0;)(oa=Zt.getLowestSetBit())>0&&Zt.rShiftTo(oa,Zt),(oa=yn.getLowestSetBit())>0&&yn.rShiftTo(oa,yn),Zt.compareTo(yn)>=0?(Zt.subTo(yn,Zt),Zt.rShiftTo(1,Zt)):(yn.subTo(Zt,yn),yn.rShiftTo(1,yn));return Fs>0&&yn.lShiftTo(Fs,yn),yn}function oo(Er){if(Er<=0)return 0;var Zt=this.DV%Er,yn=this.s<0?Er-1:0;if(this.t>0)if(Zt==0)yn=this[0]%Er;else for(var ls=this.t-1;ls>=0;--ls)yn=(Zt*yn+this[ls])%Er;return yn}function Ki(Er){var Zt=Er.isEven();if(this.isEven()&&Zt||Er.signum()==0)return n.ZERO;for(var yn=Er.clone(),ls=this.clone(),oa=ae(1),Fs=ae(0),Wa=ae(0),Ca=ae(1);yn.signum()!=0;){for(;yn.isEven();)yn.rShiftTo(1,yn),Zt?((!oa.isEven()||!Fs.isEven())&&(oa.addTo(this,oa),Fs.subTo(Er,Fs)),oa.rShiftTo(1,oa)):Fs.isEven()||Fs.subTo(Er,Fs),Fs.rShiftTo(1,Fs);for(;ls.isEven();)ls.rShiftTo(1,ls),Zt?((!Wa.isEven()||!Ca.isEven())&&(Wa.addTo(this,Wa),Ca.subTo(Er,Ca)),Wa.rShiftTo(1,Wa)):Ca.isEven()||Ca.subTo(Er,Ca),Ca.rShiftTo(1,Ca);yn.compareTo(ls)>=0?(yn.subTo(ls,yn),Zt&&oa.subTo(Wa,oa),Fs.subTo(Ca,Fs)):(ls.subTo(yn,ls),Zt&&Wa.subTo(oa,Wa),Ca.subTo(Fs,Ca))}if(ls.compareTo(n.ONE)!=0)return n.ZERO;if(Ca.compareTo(Er)>=0)return Ca.subtract(Er);if(Ca.signum()<0)Ca.addTo(Er,Ca);else return Ca;return Ca.signum()<0?Ca.add(Er):Ca}var cc=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Xs=(1<<26)/cc[cc.length-1];function ws(Er){var Zt,yn=this.abs();if(yn.t==1&&yn[0]<=cc[cc.length-1]){for(Zt=0;Zt>1,Er>cc.length&&(Er=cc.length);for(var oa=a(),Fs=0;Fs>8&255,Dc[As++]^=Er>>16&255,Dc[As++]^=Er>>24&255,As>=MA&&(As-=MA)}function cm(){Tf(new Date().getTime())}if(Dc==null){Dc=new Array,As=0;var Fl;if(typeof window<"u"&&window.crypto){if(window.crypto.getRandomValues){var rc=new Uint8Array(32);for(window.crypto.getRandomValues(rc),Fl=0;Fl<32;++Fl)Dc[As++]=rc[Fl]}else if(navigator.appName=="Netscape"&&navigator.appVersion<"5"){var sd=window.crypto.random(32);for(Fl=0;Fl>>8,Dc[As++]=Fl&255;As=0,cm()}function Om(){if(Ma==null){for(cm(),Ma=Mp(),Ma.init(Dc),As=0;As{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function t(l){return n(o(l),arguments)}function r(l,A){return t.apply(null,[l].concat(A||[]))}function n(l,A){var f=1,I=l.length,C,b="",E,N,B,F,Q,X,ae,ne;for(E=0;E=0),B.type){case"b":C=parseInt(C,10).toString(2);break;case"c":C=String.fromCharCode(parseInt(C,10));break;case"d":case"i":C=parseInt(C,10);break;case"j":C=JSON.stringify(C,null,B.width?parseInt(B.width):0);break;case"e":C=B.precision?parseFloat(C).toExponential(B.precision):parseFloat(C).toExponential();break;case"f":C=B.precision?parseFloat(C).toFixed(B.precision):parseFloat(C);break;case"g":C=B.precision?String(Number(C.toPrecision(B.precision))):parseFloat(C);break;case"o":C=(parseInt(C,10)>>>0).toString(8);break;case"s":C=String(C),C=B.precision?C.substring(0,B.precision):C;break;case"t":C=String(!!C),C=B.precision?C.substring(0,B.precision):C;break;case"T":C=Object.prototype.toString.call(C).slice(8,-1).toLowerCase(),C=B.precision?C.substring(0,B.precision):C;break;case"u":C=parseInt(C,10)>>>0;break;case"v":C=C.valueOf(),C=B.precision?C.substring(0,B.precision):C;break;case"x":C=(parseInt(C,10)>>>0).toString(16);break;case"X":C=(parseInt(C,10)>>>0).toString(16).toUpperCase();break}e.json.test(B.type)?b+=C:(e.number.test(B.type)&&(!ae||B.sign)?(ne=ae?"+":"-",C=C.toString().replace(e.sign,"")):ne="",Q=B.pad_char?B.pad_char==="0"?"0":B.pad_char.charAt(1):" ",X=B.width-(ne+C).length,F=B.width&&X>0?Q.repeat(X):"",b+=B.align?ne+C+F:Q==="0"?ne+F+C:F+ne+C)}return b}var a=Object.create(null);function o(l){if(a[l])return a[l];for(var A=l,f,I=[],C=0;A;){if((f=e.text.exec(A))!==null)I.push(f[0]);else if((f=e.modulo.exec(A))!==null)I.push("%");else if((f=e.placeholder.exec(A))!==null){if(f[2]){C|=1;var b=[],E=f[2],N=[];if((N=e.key.exec(E))!==null)for(b.push(N[1]);(E=E.substring(N[0].length))!=="";)if((N=e.key_access.exec(E))!==null)b.push(N[1]);else if((N=e.index_access.exec(E))!==null)b.push(N[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=b}else C|=2;if(C===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");I.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");A=A.substring(f[0].length)}return a[l]=I}typeof oLt<"u"&&(oLt.sprintf=t,oLt.vsprintf=r),typeof window<"u"&&(window.sprintf=t,window.vsprintf=r,typeof define=="function"&&define.amd&&define(function(){return{sprintf:t,vsprintf:r}}))})()});var b6r=H(V6=>{"use strict";var QNl=V6&&V6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),XNl=V6&&V6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),e0s=V6&&V6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&QNl(t,e,r);return XNl(t,e),t};Object.defineProperty(V6,"__esModule",{value:!0});V6.Address4=void 0;var q_s=e0s(h6r()),nJ=e0s(m6r()),$_s=iLt(),yze=_6r(),pFe=_ze(),y6r=class e{constructor(t){this.groups=nJ.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=q_s.isCorrect(nJ.BITS),this.isInSubnet=q_s.isInSubnet,this.address=t;let r=nJ.RE_SUBNET_STRING.exec(t);if(r){if(this.parsedSubnet=r[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>nJ.BITS)throw new $_s.AddressError("Invalid subnet mask.");t=t.replace(nJ.RE_SUBNET_STRING,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}static isValid(t){try{return new e(t),!0}catch{return!1}}parse(t){let r=t.split(".");if(!t.match(nJ.RE_ADDRESS))throw new $_s.AddressError("Invalid IPv4 address.");return r}correctForm(){return this.parsedAddress.map(t=>parseInt(t,10)).join(".")}static fromHex(t){let r=t.replace(/:/g,"").padStart(8,"0"),n=[],a;for(a=0;a<8;a+=2){let o=r.slice(a,a+2);n.push(parseInt(o,16))}return new e(n.join("."))}static fromInteger(t){return e.fromHex(t.toString(16))}static fromArpa(t){let n=t.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new e(n)}toHex(){return this.parsedAddress.map(t=>(0,pFe.sprintf)("%02x",parseInt(t,10))).join(":")}toArray(){return this.parsedAddress.map(t=>parseInt(t,10))}toGroup6(){let t=[],r;for(r=0;r(0,pFe.sprintf)("%02x",parseInt(t,10))).join(""),16)}_startAddress(){return new yze.BigInteger(this.mask()+"0".repeat(nJ.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new yze.BigInteger(this.mask()+"1".repeat(nJ.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}static fromBigInteger(t){return e.fromInteger(parseInt(t.toString(),10))}mask(t){return t===void 0&&(t=this.subnetMask),this.getBitsBase2(0,t)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}reverseForm(t){t||(t={});let r=this.correctForm().split(".").reverse().join(".");return t.omitSuffix?r:(0,pFe.sprintf)("%s.in-addr.arpa.",r)}isMulticast(){return this.isInSubnet(new e("224.0.0.0/4"))}binaryZeroPad(){return this.bigInteger().toString(2).padStart(nJ.BITS,"0")}groupForV6(){let t=this.parsedAddress;return this.address.replace(nJ.RE_ADDRESS,(0,pFe.sprintf)('%s.%s',t.slice(0,2).join("."),t.slice(2,4).join(".")))}};V6.Address4=y6r});var E6r=H(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.RE_URL_WITH_PORT=rB.RE_URL=rB.RE_ZONE_STRING=rB.RE_SUBNET_STRING=rB.RE_BAD_ADDRESS=rB.RE_BAD_CHARACTERS=rB.TYPES=rB.SCOPES=rB.GROUPS=rB.BITS=void 0;rB.BITS=128;rB.GROUPS=8;rB.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"};rB.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"};rB.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi;rB.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;rB.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/;rB.RE_ZONE_STRING=/%.*$/;rB.RE_URL=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/);rB.RE_URL_WITH_PORT=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)});var S6r=H(P6=>{"use strict";Object.defineProperty(P6,"__esModule",{value:!0});P6.simpleGroup=P6.spanLeadingZeroes=P6.spanAll=P6.spanAllZeroes=void 0;var t0s=_ze();function r0s(e){return e.replace(/(0+)/g,'$1')}P6.spanAllZeroes=r0s;function JNl(e,t=0){return e.split("").map((n,a)=>(0,t0s.sprintf)('%s',n,a+t,r0s(n))).join("")}P6.spanAll=JNl;function n0s(e){return e.replace(/^(0+)/,'$1')}function UNl(e){return e.split(":").map(r=>n0s(r)).join(":")}P6.spanLeadingZeroes=UNl;function KNl(e,t=0){return e.split(":").map((n,a)=>/group-v4/.test(n)?n:(0,t0s.sprintf)('%s',a+t,n0s(n)))}P6.simpleGroup=KNl});var i0s=H(vD=>{"use strict";var jNl=vD&&vD.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zNl=vD&&vD.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),qNl=vD&&vD.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&jNl(t,e,r);return zNl(t,e),t};Object.defineProperty(vD,"__esModule",{value:!0});vD.possibleElisions=vD.simpleRegularExpression=vD.ADDRESS_BOUNDARY=vD.padGroup=vD.groupPossibilities=void 0;var $Nl=qNl(E6r()),fFe=_ze();function cLt(e){return(0,fFe.sprintf)("(%s)",e.join("|"))}vD.groupPossibilities=cLt;function aLt(e){return e.length<4?(0,fFe.sprintf)("0{0,%d}%s",4-e.length,e):e}vD.padGroup=aLt;vD.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]";function eDl(e){let t=[];e.forEach((n,a)=>{parseInt(n,16)===0&&t.push(a)});let r=t.map(n=>e.map((a,o)=>{if(o===n){let l=o===0||o===$Nl.GROUPS-1?":":"";return cLt([aLt(a),l])}return aLt(a)}).join(":"));return r.push(e.map(aLt).join(":")),cLt(r)}vD.simpleRegularExpression=eDl;function tDl(e,t,r){let n=t?"":":",a=r?"":":",o=[];!t&&!r&&o.push("::"),t&&r&&o.push(""),(r&&!t||!r&&t)&&o.push(":"),o.push((0,fFe.sprintf)("%s(:0{1,4}){1,%d}",n,e-1)),o.push((0,fFe.sprintf)("(0{1,4}:){1,%d}%s",e-1,a)),o.push((0,fFe.sprintf)("(0{1,4}:){%d}0{1,4}",e-1));for(let l=1;l{"use strict";var rDl=W6&&W6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),nDl=W6&&W6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uLt=W6&&W6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&rDl(t,e,r);return nDl(t,e),t};Object.defineProperty(W6,"__esModule",{value:!0});W6.Address6=void 0;var s0s=uLt(h6r()),v6r=uLt(m6r()),YE=uLt(E6r()),B6r=uLt(S6r()),L0e=b6r(),V0e=i0s(),gre=iLt(),fL=_6r(),IL=_ze();function lLt(e){if(!e)throw new Error("Assertion failed.")}function iDl(e){let t=/(\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}function sDl(e){return e=e.replace(/^(0{1,})([1-9]+)$/,'$1$2'),e=e.replace(/^(0{1,})(0)$/,'$1$2'),e}function oDl(e,t){let r=[],n=[],a;for(a=0;at[1]&&n.push(e[a]);return r.concat(["compact"]).concat(n)}function o0s(e){return(0,IL.sprintf)("%04x",parseInt(e,16))}function a0s(e){return e&255}var w6r=class e{constructor(t,r){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=s0s.isInSubnet,this.isCorrect=s0s.isCorrect(YE.BITS),r===void 0?this.groups=YE.GROUPS:this.groups=r,this.address=t;let n=YE.RE_SUBNET_STRING.exec(t);if(n){if(this.parsedSubnet=n[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>YE.BITS)throw new gre.AddressError("Invalid subnet mask.");t=t.replace(YE.RE_SUBNET_STRING,"")}else if(/\//.test(t))throw new gre.AddressError("Invalid subnet mask.");let a=YE.RE_ZONE_STRING.exec(t);a&&(this.zone=a[0],t=t.replace(YE.RE_ZONE_STRING,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(t){try{return new e(t),!0}catch{return!1}}static fromBigInteger(t){let r=t.toString(16).padStart(32,"0"),n=[],a;for(a=0;a65536)&&(n=null)):n=null,{address:new e(r),port:n}}static fromAddress4(t){let r=new L0e.Address4(t),n=YE.BITS-(v6r.BITS-r.subnetMask);return new e(`::ffff:${r.correctForm()}/${n}`)}static fromArpa(t){let r=t.replace(/(\.ip6\.arpa)?\.$/,""),n=7;if(r.length!==63)throw new gre.AddressError("Invalid 'ip6.arpa' form.");let a=r.split(".").reverse();for(let o=n;o>0;o--){let l=o*4;a.splice(l,0,":")}return r=a.join(""),new e(r)}microsoftTranscription(){return(0,IL.sprintf)("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))}mask(t=this.subnetMask){return this.getBitsBase2(0,t)}possibleSubnets(t=128){let r=YE.BITS-this.subnetMask,n=Math.abs(t-YE.BITS),a=r-n;return a<0?"0":iDl(new fL.BigInteger("2",10).pow(a).toString(10))}_startAddress(){return new fL.BigInteger(this.mask()+"0".repeat(YE.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new fL.BigInteger(this.mask()+"1".repeat(YE.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}getScope(){let t=YE.SCOPES[this.getBits(12,16).intValue()];return this.getType()==="Global unicast"&&t!=="Link local"&&(t="Global"),t||"Unknown"}getType(){for(let t of Object.keys(YE.TYPES))if(this.isInSubnet(new e(t)))return YE.TYPES[t];return"Global unicast"}getBits(t,r){return new fL.BigInteger(this.getBitsBase2(t,r),2)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}getBitsBase16(t,r){let n=r-t;if(n%4!==0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,r).toString(16).padStart(n/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,YE.BITS)}reverseForm(t){t||(t={});let r=Math.floor(this.subnetMask/4),n=this.canonicalForm().replace(/:/g,"").split("").slice(0,r).reverse().join(".");return r>0?t.omitSuffix?n:(0,IL.sprintf)("%s.ip6.arpa.",n):t.omitSuffix?"":"ip6.arpa."}correctForm(){let t,r=[],n=0,a=[];for(t=0;t0&&(n>1&&a.push([t-n,t-1]),n=0)}n>1&&a.push([this.parsedAddress.length-n,this.parsedAddress.length-1]);let o=a.map(A=>A[1]-A[0]+1);if(a.length>0){let A=o.indexOf(Math.max(...o));r=oDl(this.parsedAddress,a[A])}else r=this.parsedAddress;for(t=0;t1?"s":"",r.join("")),t.replace(YE.RE_BAD_CHARACTERS,'$1'));let n=t.match(YE.RE_BAD_ADDRESS);if(n)throw new gre.AddressError((0,IL.sprintf)("Address failed regex: %s",n.join("")),t.replace(YE.RE_BAD_ADDRESS,'$1'));let a=[],o=t.split("::");if(o.length===2){let l=o[0].split(":"),A=o[1].split(":");l.length===1&&l[0]===""&&(l=[]),A.length===1&&A[0]===""&&(A=[]);let f=this.groups-(l.length+A.length);if(!f)throw new gre.AddressError("Error parsing groups");this.elidedGroups=f,this.elisionBegin=l.length,this.elisionEnd=l.length+this.elidedGroups,a=a.concat(l);for(let I=0;I(0,IL.sprintf)("%x",parseInt(l,16))),a.length!==this.groups)throw new gre.AddressError("Incorrect number of groups found");return a}canonicalForm(){return this.parsedAddress.map(o0s).join(":")}decimal(){return this.parsedAddress.map(t=>(0,IL.sprintf)("%05d",parseInt(t,16))).join(":")}bigInteger(){return new fL.BigInteger(this.parsedAddress.map(o0s).join(""),16)}to4(){let t=this.binaryZeroPad().split("");return L0e.Address4.fromHex(new fL.BigInteger(t.slice(96,128).join(""),2).toString(16))}to4in6(){let t=this.to4(),n=new e(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),a="";return/:$/.test(n)||(a=":"),n+a+t.address}inspectTeredo(){let t=this.getBitsBase16(0,32),r=this.getBits(80,96).xor(new fL.BigInteger("ffff",16)).toString(),n=L0e.Address4.fromHex(this.getBitsBase16(32,64)),a=L0e.Address4.fromHex(this.getBits(96,128).xor(new fL.BigInteger("ffffffff",16)).toString(16)),o=this.getBits(64,80),l=this.getBitsBase2(64,80),A=o.testBit(15),f=o.testBit(14),I=o.testBit(8),C=o.testBit(9),b=new fL.BigInteger(l.slice(2,6)+l.slice(8,16),2).toString(10);return{prefix:(0,IL.sprintf)("%s:%s",t.slice(0,4),t.slice(4,8)),server4:n.address,client4:a.address,flags:l,coneNat:A,microsoft:{reserved:f,universalLocal:C,groupIndividual:I,nonce:b},udpPort:r}}inspect6to4(){let t=this.getBitsBase16(0,16),r=L0e.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:(0,IL.sprintf)("%s",t.slice(0,4)),gateway:r.address}}to6to4(){if(!this.is4())return null;let t=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new e(t)}toByteArray(){let t=this.bigInteger().toByteArray();return t.length===17&&t[0]===0?t.slice(1):t}toUnsignedByteArray(){return this.toByteArray().map(a0s)}static fromByteArray(t){return this.fromUnsignedByteArray(t.map(a0s))}static fromUnsignedByteArray(t){let r=new fL.BigInteger("256",10),n=new fL.BigInteger("0",10),a=new fL.BigInteger("1",10);for(let o=t.length-1;o>=0;o--)n=n.add(a.multiply(new fL.BigInteger(t[o].toString(10),10))),a=a.multiply(r);return e.fromBigInteger(n)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return this.getBitsBase2(0,64)==="1111111010000000000000000000000000000000000000000000000000000000"}isMulticast(){return this.getType()==="Multicast"}is4(){return this.v4}isTeredo(){return this.isInSubnet(new e("2001::/32"))}is6to4(){return this.isInSubnet(new e("2002::/16"))}isLoopback(){return this.getType()==="Loopback"}href(t){return t===void 0?t="":t=(0,IL.sprintf)(":%s",t),(0,IL.sprintf)("http://[%s]%s/",this.correctForm(),t)}link(t){t||(t={}),t.className===void 0&&(t.className=""),t.prefix===void 0&&(t.prefix="/#address="),t.v4===void 0&&(t.v4=!1);let r=this.correctForm;return t.v4&&(r=this.to4in6),t.className?(0,IL.sprintf)('%2$s',t.prefix,r.call(this),t.className):(0,IL.sprintf)('%2$s',t.prefix,r.call(this))}group(){if(this.elidedGroups===0)return B6r.simpleGroup(this.address).join(":");lLt(typeof this.elidedGroups=="number"),lLt(typeof this.elisionBegin=="number");let t=[],[r,n]=this.address.split("::");r.length?t.push(...B6r.simpleGroup(r)):t.push("");let a=["hover-group"];for(let o=this.elisionBegin;o',a.join(" "))),n.length?t.push(...B6r.simpleGroup(n,this.elisionEnd)):t.push(""),this.is4()&&(lLt(this.address4 instanceof L0e.Address4),t.pop(),t.push(this.address4.groupForV6())),t.join(":")}regularExpressionString(t=!1){let r=[],n=new e(this.correctForm());if(n.elidedGroups===0)r.push((0,V0e.simpleRegularExpression)(n.parsedAddress));else if(n.elidedGroups===YE.GROUPS)r.push((0,V0e.possibleElisions)(YE.GROUPS));else{let a=n.address.split("::");a[0].length&&r.push((0,V0e.simpleRegularExpression)(a[0].split(":"))),lLt(typeof n.elidedGroups=="number"),r.push((0,V0e.possibleElisions)(n.elidedGroups,a[0].length!==0,a[1].length!==0)),a[1].length&&r.push((0,V0e.simpleRegularExpression)(a[1].split(":"))),r=[r.join(":")]}return t||(r=["(?=^|",V0e.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...r,")(?=[^\\w\\:]|",V0e.ADDRESS_BOUNDARY,"|$)"]),r.join("")}regularExpression(t=!1){return new RegExp(this.regularExpressionString(t),"i")}};W6.Address6=w6r});var T6r=H(aF=>{"use strict";var aDl=aF&&aF.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cDl=aF&&aF.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lDl=aF&&aF.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&aDl(t,e,r);return cDl(t,e),t};Object.defineProperty(aF,"__esModule",{value:!0});aF.v6=aF.AddressError=aF.Address6=aF.Address4=void 0;var uDl=b6r();Object.defineProperty(aF,"Address4",{enumerable:!0,get:function(){return uDl.Address4}});var gDl=c0s();Object.defineProperty(aF,"Address6",{enumerable:!0,get:function(){return gDl.Address6}});var ADl=iLt();Object.defineProperty(aF,"AddressError",{enumerable:!0,get:function(){return ADl.AddressError}});var dDl=lDl(S6r());aF.v6={helpers:dDl}});var p0s=H(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.ipToBuffer=JH.int32ToIpv4=JH.ipv4ToInt32=JH.validateSocksClientChainOptions=JH.validateSocksClientOptions=void 0;var hL=I6r(),BD=p6r(),pDl=wt("stream"),R6r=T6r(),l0s=wt("net");function fDl(e,t=["connect","bind","associate"]){if(!BD.SocksCommand[e.command])throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommand,e);if(t.indexOf(e.command)===-1)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandForOperation,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!A0s(e.proxy))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);if(u0s(e.proxy,e),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e);if(e.existing_socket&&!(e.existing_socket instanceof pDl.Duplex))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsExistingSocket,e)}JH.validateSocksClientOptions=fDl;function IDl(e){if(e.command!=="connect")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandChain,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!(e.proxies&&Array.isArray(e.proxies)&&e.proxies.length>=2))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxiesLength,e);if(e.proxies.forEach(t=>{if(!A0s(t))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);u0s(t,e)}),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e)}JH.validateSocksClientChainOptions=IDl;function u0s(e,t){if(e.custom_auth_method!==void 0){if(e.custom_auth_methodBD.SOCKS5_CUSTOM_AUTH_END)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthRange,t);if(e.custom_auth_request_handler===void 0||typeof e.custom_auth_request_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_size===void 0)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_handler===void 0||typeof e.custom_auth_response_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t)}}function g0s(e){return e&&typeof e.host=="string"&&typeof e.port=="number"&&e.port>=0&&e.port<=65535}function A0s(e){return e&&(typeof e.host=="string"||typeof e.ipaddress=="string")&&typeof e.port=="number"&&e.port>=0&&e.port<=65535&&(e.type===4||e.type===5)}function d0s(e){return typeof e=="number"&&e>0}function hDl(e){return new R6r.Address4(e).toArray().reduce((r,n)=>(r<<8)+n,0)}JH.ipv4ToInt32=hDl;function mDl(e){let t=e>>>24&255,r=e>>>16&255,n=e>>>8&255,a=e&255;return[t,r,n,a].join(".")}JH.int32ToIpv4=mDl;function CDl(e){if(l0s.isIPv4(e)){let t=new R6r.Address4(e);return Buffer.from(t.toArray())}else if(l0s.isIPv6(e)){let t=new R6r.Address6(e);return Buffer.from(t.canonicalForm().split(":").map(r=>r.padStart(4,"0")).join(""),"hex")}else throw new Error("Invalid IP address format")}JH.ipToBuffer=CDl});var f0s=H(gLt=>{"use strict";Object.defineProperty(gLt,"__esModule",{value:!0});gLt.ReceiveBuffer=void 0;var N6r=class{constructor(t=4096){this.buffer=Buffer.allocUnsafe(t),this.offset=0,this.originalSize=t}get length(){return this.offset}append(t){if(!Buffer.isBuffer(t))throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+t.length>=this.buffer.length){let r=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+t.length)),r.copy(this.buffer)}return t.copy(this.buffer,this.offset),this.offset+=t.length}peek(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,t)}get(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");let r=Buffer.allocUnsafe(t);return this.buffer.slice(0,t).copy(r),this.buffer.copyWithin(0,t,t+this.offset-t),this.offset-=t,r}};gLt.ReceiveBuffer=N6r});var I0s=H(Xue=>{"use strict";var IFe=Xue&&Xue.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(Xue,"__esModule",{value:!0});Xue.SocksClientError=Xue.SocksClient=void 0;var _Dl=wt("events"),hFe=wt("net"),eP=Y_s(),lu=p6r(),KO=p0s(),yDl=f0s(),k6r=I6r();Object.defineProperty(Xue,"SocksClientError",{enumerable:!0,get:function(){return k6r.SocksClientError}});var D6r=T6r(),x6r=class e extends _Dl.EventEmitter{constructor(t){super(),this.options=Object.assign({},t),(0,KO.validateSocksClientOptions)(t),this.setState(lu.SocksClientState.Created)}static createConnection(t,r){return new Promise((n,a)=>{try{(0,KO.validateSocksClientOptions)(t,["connect"])}catch(l){return typeof r=="function"?(r(l),n(l)):a(l)}let o=new e(t);o.connect(t.existing_socket),o.once("established",l=>{o.removeAllListeners(),typeof r=="function"&&r(null,l),n(l)}),o.once("error",l=>{o.removeAllListeners(),typeof r=="function"?(r(l),n(l)):a(l)})})}static createConnectionChain(t,r){return new Promise((n,a)=>IFe(this,void 0,void 0,function*(){try{(0,KO.validateSocksClientChainOptions)(t)}catch(o){return typeof r=="function"?(r(o),n(o)):a(o)}t.randomizeChain&&(0,k6r.shuffleArray)(t.proxies);try{let o;for(let l=0;lthis.onDataReceivedHandler(n),this.onClose=()=>this.onCloseHandler(),this.onError=n=>this.onErrorHandler(n),this.onConnect=()=>this.onConnectHandler();let r=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||lu.DEFAULT_TIMEOUT);r.unref&&typeof r.unref=="function"&&r.unref(),t?this.socket=t:this.socket=new hFe.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(lu.SocksClientState.Connecting),this.receiveBuffer=new yDl.ReceiveBuffer,t?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),this.options.set_tcp_nodelay!==void 0&&this.options.set_tcp_nodelay!==null&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",n=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let a=this.receiveBuffer.get(this.receiveBuffer.length);n.socket.emit("data",a)}n.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.BoundWaitingForConnection&&this.closeSocket(lu.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(lu.SocksClientState.Connected),this.options.proxy.type===4?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(lu.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(t){this.receiveBuffer.append(t),this.processData()}processData(){for(;this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===lu.SocksClientState.SentInitialHandshake)this.options.proxy.type===4?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===lu.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===lu.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===lu.SocksClientState.BoundWaitingForConnection)this.options.proxy.type===4?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(lu.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(lu.ERRORS.SocketClosed)}onErrorHandler(t){this.closeSocket(t.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(t){this.state!==lu.SocksClientState.Error&&(this.setState(lu.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new k6r.SocksClientError(t,this.options)))}sendSocks4InitialHandshake(){let t=this.options.proxy.userId||"",r=new eP.SmartBuffer;r.writeUInt8(4),r.writeUInt8(lu.SocksCommand[this.options.command]),r.writeUInt16BE(this.options.destination.port),hFe.isIPv4(this.options.destination.host)?(r.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host)),r.writeStringNT(t)):(r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(1),r.writeStringNT(t),r.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(r.toBuffer())}handleSocks4FinalHandshakeResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedConnection} - (${lu.Socks4Response[t[1]]})`);else if(lu.SocksCommand[this.options.command]===lu.SocksCommand.bind){let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};n.host==="0.0.0.0"&&(n.host=this.options.proxy.ipaddress),this.setState(lu.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:n,socket:this.socket})}else this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${lu.Socks4Response[t[1]]})`);else{let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:n,socket:this.socket})}}sendSocks5InitialHandshake(){let t=new eP.SmartBuffer,r=[lu.Socks5Auth.NoAuth];(this.options.proxy.userId||this.options.proxy.password)&&r.push(lu.Socks5Auth.UserPass),this.options.proxy.custom_auth_method!==void 0&&r.push(this.options.proxy.custom_auth_method),t.writeUInt8(5),t.writeUInt8(r.length);for(let n of r)t.writeUInt8(n);this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let t=this.receiveBuffer.get(2);t[0]!==5?this.closeSocket(lu.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):t[1]===lu.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):t[1]===lu.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=lu.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):t[1]===lu.Socks5Auth.UserPass?(this.socks5ChosenAuthType=lu.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):t[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let t=this.options.proxy.userId||"",r=this.options.proxy.password||"",n=new eP.SmartBuffer;n.writeUInt8(1),n.writeUInt8(Buffer.byteLength(t)),n.writeString(t),n.writeUInt8(Buffer.byteLength(r)),n.writeString(r),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(n.toBuffer()),this.setState(lu.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return IFe(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write(yield this.options.proxy.custom_auth_request_handler()),this.setState(lu.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(t)})}handleSocks5AuthenticationNoAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleSocks5AuthenticationUserPassHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleInitialSocks5AuthenticationHandshakeResponse(){return IFe(this,void 0,void 0,function*(){this.setState(lu.SocksClientState.ReceivedAuthenticationResponse);let t=!1;this.socks5ChosenAuthType===lu.Socks5Auth.NoAuth?t=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===lu.Socks5Auth.UserPass?t=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(t=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),t?this.sendSocks5CommandRequest():this.closeSocket(lu.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let t=new eP.SmartBuffer;t.writeUInt8(5),t.writeUInt8(lu.SocksCommand[this.options.command]),t.writeUInt8(0),hFe.isIPv4(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv4),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):hFe.isIPv6(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv6),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):(t.writeUInt8(lu.Socks5HostType.Hostname),t.writeUInt8(this.options.destination.host.length),t.writeString(this.options.destination.host)),t.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let t=this.receiveBuffer.peek(5);if(t[0]!==5||t[1]!==lu.Socks5Response.Granted)this.closeSocket(`${lu.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${lu.Socks5Response[t[1]]}`);else{let r=t[3],n,a;if(r===lu.Socks5HostType.IPv4){let o=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length{"use strict";var bDl=P0e&&P0e.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),EDl=P0e&&P0e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bDl(t,e,r)};Object.defineProperty(P0e,"__esModule",{value:!0});EDl(I0s(),P0e)});var C0s=H(UH=>{"use strict";var SDl=UH&&UH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),vDl=UH&&UH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),m0s=UH&&UH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&SDl(t,e,r);return vDl(t,e),t},BDl=UH&&UH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UH,"__esModule",{value:!0});UH.SocksProxyAgent=void 0;var wDl=h0s(),TDl=mze(),RDl=BDl(uT()),NDl=m0s(wt("dns")),DDl=m0s(wt("tls")),kDl=wt("url"),ALt=(0,RDl.default)("socks-proxy-agent");function xDl(e){let t=!1,r=5,n=e.hostname,a=parseInt(e.port,10)||1080;switch(e.protocol.replace(":","")){case"socks4":t=!0,r=4;break;case"socks4a":r=4;break;case"socks5":t=!0,r=5;break;case"socks":r=5;break;case"socks5h":r=5;break;default:throw new TypeError(`A "socks" protocol must be specified! Got: ${String(e.protocol)}`)}let o={host:n,port:a,type:r};return e.username&&Object.defineProperty(o,"userId",{value:decodeURIComponent(e.username),enumerable:!1}),e.password!=null&&Object.defineProperty(o,"password",{value:decodeURIComponent(e.password),enumerable:!1}),{lookup:t,proxy:o}}var dLt=class extends TDl.Agent{constructor(t,r){super(r);let n=typeof t=="string"?new kDl.URL(t):t,{proxy:a,lookup:o}=xDl(n);this.shouldLookup=o,this.proxy=a,this.timeout=r?.timeout??null,this.socketOptions=r?.socketOptions??null}async connect(t,r){let{shouldLookup:n,proxy:a,timeout:o}=this;if(!r.host)throw new Error("No `host` defined!");let{host:l}=r,{port:A,lookup:f=NDl.lookup}=r;n&&(l=await new Promise((E,N)=>{f(l,{},(B,F)=>{B?N(B):E(F)})}));let I={proxy:a,destination:{host:l,port:typeof A=="number"?A:parseInt(A,10)},command:"connect",timeout:o??void 0,socket_options:this.socketOptions??void 0},C=E=>{t.destroy(),b.destroy(),E&&E.destroy()};ALt("Creating socks proxy connection: %o",I);let{socket:b}=await wDl.SocksClient.createConnection(I);if(ALt("Successfully created socks proxy connection"),o!==null&&(b.setTimeout(o),b.on("timeout",()=>C())),r.secureEndpoint){ALt("Upgrading socket connection to TLS");let E=r.servername||r.host,N=DDl.connect({...GDl(r,"host","path","port"),socket:b,servername:E});return N.once("error",B=>{ALt("Socket TLS error",B.message),C(N)}),N}return b}};dLt.protocols=["socks","socks4","socks4a","socks5","socks5h"];UH.SocksProxyAgent=dLt;function GDl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var P6r=H((nog,_0s)=>{"use strict";var G6r=class extends Error{constructor(t){super(`Invalid protocol \`${t.protocol}\` connecting to proxy \`${t.host}\``),this.code="EINVALIDPROXY",this.proxy=t}},F6r=class extends Error{constructor(t){super(`Timeout connecting to host \`${t}\``),this.code="ECONNECTIONTIMEOUT",this.host=t}},Z6r=class extends Error{constructor(t){super(`Idle timeout reached for host \`${t}\``),this.code="EIDLETIMEOUT",this.host=t}},L6r=class extends Error{constructor(t,r){let n="Response timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`connecting to host \`${t.host}\``,super(n),this.code="ERESPONSETIMEOUT",this.proxy=r,this.request=t}},V6r=class extends Error{constructor(t,r){let n="Transfer timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`for \`${t.host}\``,super(n),this.code="ETRANSFERTIMEOUT",this.proxy=r,this.request=t}};_0s.exports={InvalidProxyProtocolError:G6r,ConnectionTimeoutError:F6r,IdleTimeoutError:Z6r,ResponseTimeoutError:L6r,TransferTimeoutError:V6r}});var W6r=H((iog,b0s)=>{"use strict";var{HttpProxyAgent:FDl}=k_s(),{HttpsProxyAgent:ZDl}=V_s(),{SocksProxyAgent:y0s}=C0s(),{LRUCache:LDl}=yIe(),{InvalidProxyProtocolError:VDl}=P6r(),PDl=new LDl({max:20}),WDl=new Set(y0s.protocols),ODl=new Set(["https_proxy","http_proxy","proxy","no_proxy"]),bze=Object.entries(process.env).reduce((e,[t,r])=>(t=t.toLowerCase(),ODl.has(t)&&(e[t]=r),e),{}),MDl=e=>{e=new URL(e);let t=e.protocol.slice(0,-1);if(WDl.has(t))return y0s;if(t==="https"||t==="http")return[FDl,ZDl];throw new VDl(e)},HDl=(e,t)=>{if(typeof t=="string"&&(t=t.split(",").map(n=>n.trim()).filter(Boolean)),!t||!t.length)return!1;let r=e.hostname.split(".").reverse();return t.some(n=>{let a=n.split(".").filter(Boolean).reverse();if(!a.length)return!1;for(let o=0;o(e=new URL(e),t||(t=e.protocol==="https:"?bze.https_proxy:bze.https_proxy||bze.http_proxy||bze.proxy),r||(r=bze.no_proxy),!t||HDl(e,r)?null:new URL(t));b0s.exports={getProxyAgent:MDl,getProxy:YDl,proxyCache:PDl}});var v0s=H((oog,S0s)=>{"use strict";var QDl=wt("net"),XDl=wt("tls"),{once:E0s}=wt("events"),JDl=wt("timers/promises"),{normalizeOptions:UDl,cacheOptions:KDl}=l6r(),{getProxy:jDl,getProxyAgent:zDl,proxyCache:O6r}=W6r(),pLt=P6r(),{Agent:qDl}=mze();S0s.exports=class extends qDl{#e;#t;#n;#r;#i;constructor(t={}){let{timeouts:r,proxy:n,noProxy:a,...o}=UDl(t);super(o),this.#e=o,this.#t=r,n&&(this.#n=new URL(n),this.#r=a,this.#i=zDl(n))}get proxy(){return this.#n?{url:this.#n}:{}}#s(t){if(!this.#n)return;let r=jDl(`${t.protocol}//${t.host}:${t.port}`,{proxy:this.#n,noProxy:this.#r});if(!r)return;let n=KDl({...t,...this.#e,timeouts:this.#t,proxy:r});if(O6r.has(n))return O6r.get(n);let a=this.#i;Array.isArray(a)&&(a=this.isSecureEndpoint(t)?a[1]:a[0]);let o=new a(r,{...this.#e,socketOptions:{family:this.#e.family}});return O6r.set(n,o),o}async#o({promises:t,options:r,timeout:n},a=new AbortController){if(n){let l=JDl.setTimeout(n,null,{signal:a.signal}).then(()=>{throw new pLt.ConnectionTimeoutError(`${r.host}:${r.port}`)}).catch(A=>{if(A.name!=="AbortError")throw A});t.push(l)}let o;try{o=await Promise.race(t),a.abort()}catch(l){throw a.abort(),l}return o}async connect(t,r){r.lookup??=this.#e.lookup;let n,a=this.#t.connection,o=this.isSecureEndpoint(r),l=this.#s(r);if(l){let C=Date.now();n=await this.#o({options:r,timeout:a,promises:[l.connect(t,r)]}),a&&(a=a-(Date.now()-C))}else n=(o?XDl:QDl).connect(r);n.setKeepAlive(this.keepAlive,this.keepAliveMsecs),n.setNoDelay(this.keepAlive);let A=new AbortController,{signal:f}=A,I=n[o?"secureConnecting":"connecting"]?E0s(n,o?"secureConnect":"connect",{signal:f}):Promise.resolve();return await this.#o({options:r,timeout:a,promises:[I,E0s(n,"error",{signal:f}).then(C=>{throw C[0]})]},A),this.#t.idle&&n.setTimeout(this.#t.idle,()=>{n.destroy(new pLt.IdleTimeoutError(`${r.host}:${r.port}`))}),n}addRequest(t,r){let n=this.#s(r);if(n?.setRequestProps&&n.setRequestProps(t,r),t.setHeader("connection",this.keepAlive?"keep-alive":"close"),this.#t.response){let a;t.once("finish",()=>{setTimeout(()=>{t.destroy(new pLt.ResponseTimeoutError(t,this.#n))},this.#t.response)}),t.once("response",()=>{clearTimeout(a)})}if(this.#t.transfer){let a;t.once("response",o=>{setTimeout(()=>{o.destroy(new pLt.TransferTimeoutError(t,this.#n))},this.#t.transfer),o.once("close",()=>{clearTimeout(a)})})}return super.addRequest(t,r)}}});var R0s=H((aog,T0s)=>{"use strict";var{LRUCache:$Dl}=yIe(),{normalizeOptions:ekl,cacheOptions:tkl}=l6r(),{getProxy:rkl,proxyCache:B0s}=W6r(),w0s=c6r(),fLt=v0s(),Eze=new $Dl({max:20}),nkl=(e,{agent:t,proxy:r,noProxy:n,...a}={})=>{if(t!=null)return t;e=new URL(e);let o=rkl(e,{proxy:r,noProxy:n}),l={...ekl(a),proxy:o},A=tkl({...l,secureEndpoint:e.protocol==="https:"});if(Eze.has(A))return Eze.get(A);let f=new fLt(l);return Eze.set(A,f),f};T0s.exports={getAgent:nkl,Agent:fLt,HttpAgent:fLt,HttpsAgent:fLt,cache:{proxy:B0s,agent:Eze,dns:w0s.cache,clear:()=>{B0s.clear(),Eze.clear(),w0s.cache.clear()}}}});var N0s=H((cog,ikl)=>{ikl.exports={name:"make-fetch-happen",version:"14.0.3",description:"Opinionated, caching, retrying fetch client",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",posttest:"npm run lint",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"',lint:"npm run eslint",lintfix:"npm run eslint -- --fix",postlint:"template-oss-check",snap:"tap","template-oss-apply":"template-oss-apply --force"},repository:{type:"git",url:"git+https://github.com/npm/make-fetch-happen.git"},keywords:["http","request","fetch","mean girls","caching","cache","subresource integrity"],author:"GitHub Inc.",license:"ISC",dependencies:{"@npmcli/agent":"^3.0.0",cacache:"^19.0.1","http-cache-semantics":"^4.1.1",minipass:"^7.0.2","minipass-fetch":"^4.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4",negotiator:"^1.0.0","proc-log":"^5.0.0","promise-retry":"^2.0.1",ssri:"^12.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.4",nock:"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},tap:{color:1,files:"test/*.js","check-coverage":!0,timeout:60,"nyc-arg":["--exclude","tap-snapshots/**"]},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.4",publish:"true"}}});var hLt=H((log,k0s)=>{var{Minipass:skl}=rF(),ILt=H7e(),okl=o6r(),akl=Jte(),{log:D0s}=a6r(),ckl=s6r(),{getAgent:lkl}=R0s(),M6r=N0s(),ukl=`${M6r.name}/${M6r.version} (+https://npm.im/${M6r.name})`,gkl=["ECONNRESET","ECONNREFUSED","EADDRINUSE","ETIMEDOUT","ECONNECTIONTIMEOUT","EIDLETIMEOUT","ERESPONSETIMEOUT","ETRANSFERTIMEOUT"],Akl=["request-timeout"],dkl=(e,t)=>{let r=lkl(e.url,{...t,signal:void 0});e.headers.has("connection")||e.headers.set("connection",r?"keep-alive":"close"),e.headers.has("user-agent")||e.headers.set("user-agent",ukl);let n={...t,agent:r,redirect:"manual"};return okl(async(a,o)=>{let l=new ILt.Request(e,n);try{let A=await ILt(l,n);if(n.integrity&&A.status===200){let C=akl.integrityStream({algorithms:n.algorithms,integrity:n.integrity,size:n.size}),b=new ckl({events:["integrity","size"]},A.body,C);C.on("integrity",E=>b.emit("integrity",E)),C.on("size",E=>b.emit("size",E)),A=new ILt.Response(b,A),A.body.hasIntegrityEmitter=!0}A.headers.set("x-fetch-attempts",o);let f=skl.isStream(l.body);return l.method!=="POST"&&!f&&([408,420,429].includes(A.status)||A.status>=500)?(typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.status}`),a(A)):A}catch(A){let f=A.code==="EPROMISERETRY"?A.retried.code:A.code,I=A.retried instanceof ILt.Response||gkl.includes(f)&&Akl.includes(A.type);if(l.method==="POST"||I)throw A;return typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.code}`),a(A)}},t.retry).catch(a=>{if(a.status>=400&&a.type!=="system")return a;throw a})};k0s.exports=dkl});var V0s=H((uog,L0s)=>{var{Request:x0s,Response:H6r}=H7e(),{Minipass:G0s}=rF(),pkl=sZt(),W0e=s_s(),fkl=wt("url"),Ikl=s6r(),hkl=O8r(),Y6r=c_s(),mkl=hLt(),Sze=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ckl=["accept-charset","accept-encoding","accept-language","accept","cache-control"],Z0s=["cache-control","content-encoding","content-language","content-type","date","etag","expires","last-modified","link","location","pragma","vary"],F0s=(e,t,r)=>{let n={time:Date.now(),url:e.url,reqHeaders:{},resHeaders:{},options:{compress:r.compress!=null?r.compress:e.compress}};t.status!==200&&t.status!==304&&(n.status=t.status);for(let l of Ckl)e.headers.has(l)&&(n.reqHeaders[l]=e.headers.get(l));let a=e.headers.get("host"),o=new fkl.URL(e.url);if(a&&o.host!==a&&(n.reqHeaders.host=a),t.headers.has("vary")){let l=t.headers.get("vary");if(l!=="*"){let A=l.trim().toLowerCase().split(/\s*,\s*/);for(let f of A)e.headers.has(f)&&(n.reqHeaders[f]=e.headers.get(f))}}for(let l of Z0s)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));for(let l of r.cacheAdditionalHeaders)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));return n},mLt=Symbol("request"),CLt=Symbol("response"),_Lt=Symbol("policy"),Q6r=class e{constructor({entry:t,request:r,response:n,options:a}){t?(this.key=t.key,this.entry=t,this.entry.metadata.time=this.entry.metadata.time||this.entry.time):this.key=Y6r(r),this.options=a,this[mLt]=r,this[CLt]=n,this[_Lt]=null}static async find(t,r){try{var n=await W0e.index.compact(r.cachePath,Y6r(t),(o,l)=>{let A=new e({entry:o,options:r}),f=new e({entry:l,options:r});return A.policy.satisfies(f.request)},{validateEntry:o=>o.metadata&&o.metadata.resHeaders&&o.metadata.resHeaders["content-encoding"]===null?!1:o.integrity===null?!!(o.metadata&&o.metadata.status):!0})}catch{return}if(r.cache==="reload")return;let a;for(let o of n){let l=new e({entry:o,options:r});if(l.policy.satisfies(t)){a=l;break}}return a}static async invalidate(t,r){let n=Y6r(t);try{await W0e.rm.entry(r.cachePath,n,{removeFully:!0})}catch{}}get request(){return this[mLt]||(this[mLt]=new x0s(this.entry.metadata.url,{method:"GET",headers:this.entry.metadata.reqHeaders,...this.entry.metadata.options})),this[mLt]}get response(){return this[CLt]||(this[CLt]=new H6r(null,{url:this.entry.metadata.url,counter:this.options.counter,status:this.entry.metadata.status||200,headers:{...this.entry.metadata.resHeaders,"content-length":this.entry.size}})),this[CLt]}get policy(){return this[_Lt]||(this[_Lt]=new hkl({entry:this.entry,request:this.request,response:this.response,options:this.options})),this[_Lt]}async store(t){if(this.request.method!=="GET"||![200,301,308].includes(this.response.status)||!this.policy.storable())return this.response.headers.set("x-local-cache-status","skip"),this.response;let r=this.response.headers.get("content-length"),n={algorithms:this.options.algorithms,metadata:F0s(this.request,this.response,this.options),size:r,integrity:this.options.integrity,integrityEmitter:this.response.body.hasIntegrityEmitter&&this.response.body},a=null;if(this.response.status===200){let l,A,f=new Promise((C,b)=>{l=C,A=b}).catch(C=>{a.emit("error",C)});a=new Ikl({events:["integrity","size"]},new pkl({flush(){return f}})),a.hasIntegrityEmitter=!0;let I=()=>{let C=new G0s,b=W0e.put.stream(this.options.cachePath,this.key,n);b.on("integrity",E=>a.emit("integrity",E)),b.on("size",E=>a.emit("size",E)),C.pipe(b),b.promise().then(l,A),a.unshift(C),a.unshift(this.response.body)};a.once("resume",I),a.once("end",()=>a.removeListener("resume",I))}else await W0e.index.insert(this.options.cachePath,this.key,null,n);return this.response.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),this.response.headers.set("x-local-cache-key",encodeURIComponent(this.key)),this.response.headers.set("x-local-cache-mode","stream"),this.response.headers.set("x-local-cache-status",t),this.response.headers.set("x-local-cache-time",new Date().toISOString()),new H6r(a,{url:this.response.url,status:this.response.status,headers:this.response.headers,counter:this.options.counter})}async respond(t,r,n){let a;if(t==="HEAD"||[301,308].includes(this.response.status))a=this.response;else{let o=new G0s,l={...this.policy.responseHeaders()},A=()=>{let f=W0e.get.stream.byDigest(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize});f.on("error",async I=>{f.pause(),I.code==="EINTEGRITY"&&await W0e.rm.content(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize}),(I.code==="ENOENT"||I.code==="EINTEGRITY")&&await e.invalidate(this.request,this.options),o.emit("error",I),f.resume()}),o.emit("integrity",this.entry.integrity),o.emit("size",Number(l["content-length"])),f.pipe(o)};o.once("resume",A),o.once("end",()=>o.removeListener("resume",A)),a=new H6r(o,{url:this.entry.metadata.url,counter:r.counter,status:200,headers:l})}return a.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),a.headers.set("x-local-cache-hash",encodeURIComponent(this.entry.integrity)),a.headers.set("x-local-cache-key",encodeURIComponent(this.key)),a.headers.set("x-local-cache-mode","stream"),a.headers.set("x-local-cache-status",n),a.headers.set("x-local-cache-time",new Date(this.entry.metadata.time).toUTCString()),a}async revalidate(t,r){let n=new x0s(t,{headers:this.policy.revalidationHeaders(t)});try{var a=await mkl(n,{...r,headers:void 0})}catch(l){if(!this.policy.mustRevalidate)return this.respond(t.method,r,"stale");throw l}if(this.policy.revalidated(n,a)){let l=F0s(t,a,r);for(let A of Z0s)!Sze(l.resHeaders,A)&&Sze(this.entry.metadata.resHeaders,A)&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]);for(let A of r.cacheAdditionalHeaders){let f=Sze(l.resHeaders,A),I=Sze(this.entry.metadata.resHeaders,A),C=Sze(this.policy.response.headers,A);!f&&I&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]),!C&&f&&(this.policy.response.headers[A]=l.resHeaders[A])}try{await W0e.index.insert(r.cachePath,this.key,this.entry.integrity,{size:this.entry.size,metadata:l})}catch{}return this.respond(t.method,r,"revalidated")}return new e({request:t,response:a,options:r}).store("updated")}};L0s.exports=Q6r});var O0s=H((gog,W0s)=>{var{NotCachedError:_kl}=bhs(),X6r=V0s(),ykl=hLt(),P0s=async(e,t)=>{let r=await X6r.find(e,t);if(!r){if(t.cache==="only-if-cached")throw new _kl(e.url);let a=await ykl(e,t);return new X6r({request:e,response:a,options:t}).store("miss")}if(t.cache==="no-cache")return r.revalidate(e,t);let n=r.policy.needsRevalidation(e);return t.cache==="force-cache"||t.cache==="only-if-cached"||!n?r.respond(e.method,t,n?"stale":"hit"):r.revalidate(e,t)};P0s.invalidate=async(e,t)=>{if(t.cachePath)return X6r.invalidate(e,t)};W0s.exports=P0s});var Q0s=H((Aog,Y0s)=>{"use strict";var{FetchError:J6r,Request:bkl,isRedirect:Ekl}=H7e(),U6r=wt("url"),Skl=O8r(),M0s=O0s(),vkl=hLt(),Bkl=(e,t,r)=>{if(!Ekl(t.status)||r.redirect==="manual")return!1;if(r.redirect==="error")throw new J6r(`redirect mode is set to error: ${e.url}`,"no-redirect",{code:"ENOREDIRECT"});if(!t.headers.has("location"))throw new J6r(`redirect location header missing for: ${e.url}`,"no-location",{code:"EINVALIDREDIRECT"});if(e.counter>=e.follow)throw new J6r(`maximum redirect reached at: ${e.url}`,"max-redirect",{code:"EMAXREDIRECT"});return!0},wkl=(e,t,r)=>{let n={...r},a=t.headers.get("location"),o=new U6r.URL(a,/^https?:/.test(a)?void 0:e.url);return new U6r.URL(e.url).hostname!==o.hostname&&(e.headers.delete("authorization"),e.headers.delete("cookie")),(t.status===303||e.method==="POST"&&[301,302].includes(t.status))&&(n.method="GET",n.body=null,e.headers.delete("content-length")),n.headers={},e.headers.forEach((A,f)=>{n.headers[f]=A}),n.counter=++e.counter,{request:new bkl(U6r.format(o),n),options:n}},H0s=async(e,t)=>{let r=Skl.storable(e,t)?await M0s(e,t):await vkl(e,t);if(!["GET","HEAD"].includes(e.method)&&r.status>=200&&r.status<=399&&await M0s.invalidate(e,t),!Bkl(e,r,t))return r;let n=wkl(e,r,t);return H0s(n.request,n.options)};Y0s.exports=H0s});var bLt=H((dog,mFe)=>{var{FetchError:Tkl,Headers:Rkl,Request:X0s,Response:Nkl}=H7e(),Dkl=KIs(),kkl=Q0s(),yLt=(e,t)=>{let r=Dkl(t),n=new X0s(e,r);return kkl(n,r)};yLt.defaults=(e,t={},r=yLt)=>{typeof e=="object"&&(t=e,e=null);let n=(a,o={})=>{let l=a||e,A={...t,...o,headers:{...t.headers,...o.headers}};return r(l,A)};return n.defaults=(a,o={})=>yLt.defaults(a,o,n),n};mFe.exports=yLt;mFe.exports.FetchError=Tkl;mFe.exports.Headers=Rkl;mFe.exports.Request=X0s;mFe.exports.Response=Nkl});var J0s=H(CFe=>{"use strict";var xkl=CFe&&CFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(CFe,"__esModule",{value:!0});CFe.CIContextProvider=void 0;var Gkl=xkl(bLt()),Fkl=[Zkl,Lkl],K6r=class{constructor(t="sigstore"){this.audience=t}async getToken(){return Promise.any(Fkl.map(t=>t(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};CFe.CIContextProvider=K6r;async function Zkl(e){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let t=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return t.searchParams.append("audience",e),(await(0,Gkl.default)(t.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(n=>n.value)}async function Lkl(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var U0s=H(ELt=>{"use strict";Object.defineProperty(ELt,"__esModule",{value:!0});ELt.CIContextProvider=void 0;var Vkl=J0s();Object.defineProperty(ELt,"CIContextProvider",{enumerable:!0,get:function(){return Vkl.CIContextProvider}})});var SLt=H(vze=>{"use strict";var j0s=vze&&vze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vze,"__esModule",{value:!0});vze.fetchWithRetry=jkl;var Pkl=wt("http2"),Wkl=j0s(bLt()),K0s=a6r(),Okl=j0s(o6r()),Mkl=Zue(),Hkl=BFt(),{HTTP2_HEADER_LOCATION:Ykl,HTTP2_HEADER_CONTENT_TYPE:Qkl,HTTP2_HEADER_USER_AGENT:Xkl,HTTP_STATUS_INTERNAL_SERVER_ERROR:Jkl,HTTP_STATUS_TOO_MANY_REQUESTS:Ukl,HTTP_STATUS_REQUEST_TIMEOUT:Kkl}=Pkl.constants;async function jkl(e,t){return(0,Okl.default)(async(r,n)=>{let a=t.method||"POST",o={[Xkl]:Mkl.ua.getUserAgent(),...t.headers},l=await(0,Wkl.default)(e,{method:a,headers:o,body:t.body,timeout:t.timeout,retry:!1}).catch(A=>(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${A}`),r(A)));if(l.ok)return l;{let A=await zkl(l);if(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${l.status}`),qkl(l.status))return r(A);throw A}},$kl(t.retry))}var zkl=async e=>{let t=e.statusText,r=e.headers.get(Ykl)||void 0;if(e.headers.get(Qkl)?.includes("application/json"))try{t=(await e.json()).message||t}catch{}return new Hkl.HTTPError({status:e.status,message:t,location:r})},qkl=e=>[Kkl,Ukl].includes(e)||e>=Jkl,$kl=e=>typeof e=="boolean"?{retries:e?1:0}:typeof e=="number"?{retries:e}:{retries:0,...e}});var z0s=H(vLt=>{"use strict";Object.defineProperty(vLt,"__esModule",{value:!0});vLt.Fulcio=void 0;var exl=SLt(),j6r=class{constructor(t){this.options=t}async createSigningCertificate(t){let{baseURL:r,retry:n,timeout:a}=this.options,o=`${r}/api/v2/signingCert`;return(await(0,exl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:a,retry:n})).json()}};vLt.Fulcio=j6r});var q0s=H(BLt=>{"use strict";Object.defineProperty(BLt,"__esModule",{value:!0});BLt.CAClient=void 0;var txl=PGe(),rxl=z0s(),z6r=class{constructor(t){this.fulcio=new rxl.Fulcio({baseURL:t.fulcioBaseURL,retry:t.retry,timeout:t.timeout})}async createSigningCertificate(t,r,n){let a=nxl(t,r,n);try{let o=await this.fulcio.createSigningCertificate(a);return(o.signedCertificateEmbeddedSct?o.signedCertificateEmbeddedSct:o.signedCertificateDetachedSct).chain.certificates}catch(o){(0,txl.internalError)(o,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};BLt.CAClient=z6r;function nxl(e,t,r){return{credentials:{oidcIdentityToken:e},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:t},proofOfPossession:r.toString("base64")}}}});var eys=H(_Fe=>{"use strict";var ixl=_Fe&&_Fe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Fe,"__esModule",{value:!0});_Fe.EphemeralSigner=void 0;var $0s=ixl(wt("crypto")),sxl="ec",oxl="P-256",q6r=class{constructor(){this.keypair=$0s.default.generateKeyPairSync(sxl,{namedCurve:oxl})}async sign(t){let r=$0s.default.sign(null,t,this.keypair.privateKey),n=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:n}}}};_Fe.EphemeralSigner=q6r});var tys=H(O0e=>{"use strict";Object.defineProperty(O0e,"__esModule",{value:!0});O0e.FulcioSigner=O0e.DEFAULT_FULCIO_URL=void 0;var $6r=PGe(),axl=Zue(),cxl=q0s(),lxl=eys();O0e.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var e7r=class{constructor(t){this.ca=new cxl.CAClient({...t,fulcioBaseURL:t.fulcioBaseURL||O0e.DEFAULT_FULCIO_URL}),this.identityProvider=t.identityProvider,this.keyHolder=t.keyHolder||new lxl.EphemeralSigner}async sign(t){let r=await this.getIdentityToken(),n;try{n=axl.oidc.extractJWTSubject(r)}catch(A){throw new $6r.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:A})}let a=await this.keyHolder.sign(Buffer.from(n));if(a.key.$case!=="publicKey")throw new $6r.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let o=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(t)).signature,key:{$case:"x509Certificate",certificate:o[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(t){throw new $6r.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:t})}}};O0e.FulcioSigner=e7r});var nys=H(yFe=>{"use strict";Object.defineProperty(yFe,"__esModule",{value:!0});yFe.FulcioSigner=yFe.DEFAULT_FULCIO_URL=void 0;var rys=tys();Object.defineProperty(yFe,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return rys.DEFAULT_FULCIO_URL}});Object.defineProperty(yFe,"FulcioSigner",{enumerable:!0,get:function(){return rys.FulcioSigner}})});var oys=H(wLt=>{"use strict";Object.defineProperty(wLt,"__esModule",{value:!0});wLt.Rekor=void 0;var iys=SLt(),t7r=class{constructor(t){this.options=t}async createEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries`,A=await(await(0,iys.fetchWithRetry)(o,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).json();return sys(A)}async getEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries/${t}`,A=await(await(0,iys.fetchWithRetry)(o,{method:"GET",headers:{Accept:"application/json"},timeout:n,retry:a})).json();return sys(A)}};wLt.Rekor=t7r;function sys(e){let t=Object.entries(e);if(t.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,n]=t[0];return{...n,uuid:r}}});var cys=H(TLt=>{"use strict";Object.defineProperty(TLt,"__esModule",{value:!0});TLt.TLogClient=void 0;var ays=PGe(),uxl=BFt(),gxl=oys(),r7r=class{constructor(t){this.fetchOnConflict=t.fetchOnConflict??!1,this.rekor=new gxl.Rekor({baseURL:t.rekorBaseURL,retry:t.retry,timeout:t.timeout})}async createEntry(t){let r;try{r=await this.rekor.createEntry(t)}catch(n){if(Axl(n)&&this.fetchOnConflict){let a=n.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(o){(0,ays.internalError)(o,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,ays.internalError)(n,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};TLt.TLogClient=r7r;function Axl(e){return e instanceof uxl.HTTPError&&e.statusCode===409&&e.location!==void 0}});var lys=H(n7r=>{"use strict";Object.defineProperty(n7r,"__esModule",{value:!0});n7r.toProposedEntry=pxl;var dxl=S7e(),Jue=Zue(),Bze="sha256";function pxl(e,t,r="dsse"){switch(e.$case){case"dsseEnvelope":return r==="intoto"?hxl(e.dsseEnvelope,t):Ixl(e.dsseEnvelope,t);case"messageSignature":return fxl(e.messageSignature,t)}}function fxl(e,t){let r=e.messageDigest.digest.toString("hex"),n=e.signature.toString("base64"),a=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:Bze,value:r}},signature:{content:n,publicKey:{content:a}}}}}function Ixl(e,t){let r=JSON.stringify((0,dxl.envelopeToJSON)(e)),n=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[n]}}}}function hxl(e,t){let r=Jue.crypto.digest(Bze,e.payload).toString("hex"),n=mxl(e,t),a=Jue.encoding.base64Encode(e.payload.toString("base64")),o=Jue.encoding.base64Encode(e.signatures[0].sig.toString("base64")),l=e.signatures[0].keyid,A=Jue.encoding.base64Encode(t),f={payloadType:e.payloadType,payload:a,signatures:[{sig:o,publicKey:A}]};return l.length>0&&(f.signatures[0].keyid=l),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:f,hash:{algorithm:Bze,value:n},payloadHash:{algorithm:Bze,value:r}}}}}function mxl(e,t){let r={payloadType:e.payloadType,payload:e.payload.toString("base64"),signatures:[{sig:e.signatures[0].sig.toString("base64"),publicKey:t}]};return e.signatures[0].keyid.length>0&&(r.signatures[0].keyid=e.signatures[0].keyid),Jue.crypto.digest(Bze,Jue.json.canonicalize(r)).toString("hex")}});var uys=H(M0e=>{"use strict";Object.defineProperty(M0e,"__esModule",{value:!0});M0e.RekorWitness=M0e.DEFAULT_REKOR_URL=void 0;var Cxl=Zue(),_xl=cys(),yxl=lys();M0e.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var i7r=class{constructor(t){this.entryType=t.entryType,this.tlog=new _xl.TLogClient({...t,rekorBaseURL:t.rekorBaseURL||M0e.DEFAULT_REKOR_URL})}async testify(t,r){let n=(0,yxl.toProposedEntry)(t,r,this.entryType),a=await this.tlog.createEntry(n);return bxl(a)}};M0e.RekorWitness=i7r;function bxl(e){let t=Buffer.from(e.logID,"hex"),r=Cxl.encoding.base64Decode(e.body),n=JSON.parse(r),a=e?.verification?.signedEntryTimestamp?Exl(e.verification.signedEntryTimestamp):void 0,o=e?.verification?.inclusionProof?Sxl(e.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:e.logIndex.toString(),logId:{keyId:t},integratedTime:e.integratedTime.toString(),kindVersion:{kind:n.kind,version:n.apiVersion},inclusionPromise:a,inclusionProof:o,canonicalizedBody:Buffer.from(e.body,"base64")}]}}function Exl(e){return{signedEntryTimestamp:Buffer.from(e,"base64")}}function Sxl(e){return{logIndex:e.logIndex.toString(),treeSize:e.treeSize.toString(),rootHash:Buffer.from(e.rootHash,"hex"),hashes:e.hashes.map(t=>Buffer.from(t,"hex")),checkpoint:{envelope:e.checkpoint}}}});var gys=H(RLt=>{"use strict";Object.defineProperty(RLt,"__esModule",{value:!0});RLt.TimestampAuthority=void 0;var vxl=SLt(),s7r=class{constructor(t){this.options=t}async createTimestamp(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/timestamp`;return(await(0,vxl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).buffer()}};RLt.TimestampAuthority=s7r});var dys=H(NLt=>{"use strict";Object.defineProperty(NLt,"__esModule",{value:!0});NLt.TSAClient=void 0;var Bxl=PGe(),wxl=gys(),Txl=Zue(),Ays="sha256",o7r=class{constructor(t){this.tsa=new wxl.TimestampAuthority({baseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async createTimestamp(t){let r={artifactHash:Txl.crypto.digest(Ays,t).toString("base64"),hashAlgorithm:Ays};try{return await this.tsa.createTimestamp(r)}catch(n){(0,Bxl.internalError)(n,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};NLt.TSAClient=o7r});var pys=H(DLt=>{"use strict";Object.defineProperty(DLt,"__esModule",{value:!0});DLt.TSAWitness=void 0;var Rxl=dys(),a7r=class{constructor(t){this.tsa=new Rxl.TSAClient({tsaBaseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async testify(t){let r=Nxl(t);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};DLt.TSAWitness=a7r;function Nxl(e){switch(e.$case){case"dsseEnvelope":return e.dsseEnvelope.signatures[0].sig;case"messageSignature":return e.messageSignature.signature}}});var Iys=H(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});Uue.TSAWitness=Uue.RekorWitness=Uue.DEFAULT_REKOR_URL=void 0;var fys=uys();Object.defineProperty(Uue,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return fys.DEFAULT_REKOR_URL}});Object.defineProperty(Uue,"RekorWitness",{enumerable:!0,get:function(){return fys.RekorWitness}});var Dxl=pys();Object.defineProperty(Uue,"TSAWitness",{enumerable:!0,get:function(){return Dxl.TSAWitness}})});var l7r=H(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});BT.TSAWitness=BT.RekorWitness=BT.DEFAULT_REKOR_URL=BT.FulcioSigner=BT.DEFAULT_FULCIO_URL=BT.CIContextProvider=BT.InternalError=BT.MessageSignatureBundleBuilder=BT.DSSEBundleBuilder=void 0;var hys=Efs();Object.defineProperty(BT,"DSSEBundleBuilder",{enumerable:!0,get:function(){return hys.DSSEBundleBuilder}});Object.defineProperty(BT,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return hys.MessageSignatureBundleBuilder}});var kxl=PGe();Object.defineProperty(BT,"InternalError",{enumerable:!0,get:function(){return kxl.InternalError}});var xxl=U0s();Object.defineProperty(BT,"CIContextProvider",{enumerable:!0,get:function(){return xxl.CIContextProvider}});var mys=nys();Object.defineProperty(BT,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return mys.DEFAULT_FULCIO_URL}});Object.defineProperty(BT,"FulcioSigner",{enumerable:!0,get:function(){return mys.FulcioSigner}});var c7r=Iys();Object.defineProperty(BT,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return c7r.DEFAULT_REKOR_URL}});Object.defineProperty(BT,"RekorWitness",{enumerable:!0,get:function(){return c7r.RekorWitness}});Object.defineProperty(BT,"TSAWitness",{enumerable:!0,get:function(){return c7r.TSAWitness}})});var _ys=H(wze=>{"use strict";var Cys=wze&&wze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wze,"__esModule",{value:!0});wze.appDataPath=Fxl;var Gxl=Cys(wt("os")),bFe=Cys(wt("path"));function Fxl(e){let t=Gxl.default.homedir();switch(process.platform){case"darwin":{let r=bFe.default.join(t,"Library","Application Support");return bFe.default.join(r,e)}case"win32":{let r=process.env.LOCALAPPDATA||bFe.default.join(t,"AppData","Local");return bFe.default.join(r,e,"Data")}default:{let r=process.env.XDG_DATA_HOME||bFe.default.join(t,".local","share");return bFe.default.join(r,e)}}}});var O6=H(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.UnsupportedAlgorithmError=tP.CryptoError=tP.LengthOrHashMismatchError=tP.UnsignedMetadataError=tP.RepositoryError=tP.ValueError=void 0;var u7r=class extends Error{};tP.ValueError=u7r;var Tze=class extends Error{};tP.RepositoryError=Tze;var g7r=class extends Tze{};tP.UnsignedMetadataError=g7r;var A7r=class extends Tze{};tP.LengthOrHashMismatchError=A7r;var kLt=class extends Error{};tP.CryptoError=kLt;var d7r=class extends kLt{};tP.UnsupportedAlgorithmError=d7r});var bys=H(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});Kue.isDefined=Zxl;Kue.isObject=yys;Kue.isStringArray=Lxl;Kue.isObjectArray=Vxl;Kue.isStringRecord=Pxl;Kue.isObjectRecord=Wxl;function Zxl(e){return e!==void 0}function yys(e){return typeof e=="object"&&e!==null}function Lxl(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Vxl(e){return Array.isArray(e)&&e.every(yys)}function Pxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="string")}function Wxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="object"&&t!==null)}});var f7r=H((Gog,vys)=>{var Eys=",",Oxl=":",Mxl="[",Hxl="]",Yxl="{",Qxl="}";function p7r(e){let t=[];if(typeof e=="string")t.push(Sys(e));else if(typeof e=="boolean")t.push(JSON.stringify(e));else if(Number.isInteger(e))t.push(JSON.stringify(e));else if(e===null)t.push(JSON.stringify(e));else if(Array.isArray(e)){t.push(Mxl);let r=!0;e.forEach(n=>{r||t.push(Eys),r=!1,t.push(p7r(n))}),t.push(Hxl)}else if(typeof e=="object"){t.push(Yxl);let r=!0;Object.keys(e).sort().forEach(n=>{r||t.push(Eys),r=!1,t.push(Sys(n)),t.push(Oxl),t.push(p7r(e[n]))}),t.push(Qxl)}else throw new TypeError("cannot encode "+e.toString());return t.join("")}function Sys(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}vys.exports={canonicalize:p7r}});var Bys=H(EFe=>{"use strict";var Xxl=EFe&&EFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EFe,"__esModule",{value:!0});EFe.verifySignature=void 0;var Jxl=f7r(),Uxl=Xxl(wt("crypto")),Kxl=(e,t,r)=>{let n=Buffer.from((0,Jxl.canonicalize)(e));return Uxl.default.verify(void 0,n,t,Buffer.from(r,"hex"))};EFe.verifySignature=Kxl});var iJ=H(KH=>{"use strict";var jxl=KH&&KH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zxl=KH&&KH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wys=KH&&KH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&jxl(t,e,r);return zxl(t,e),t};Object.defineProperty(KH,"__esModule",{value:!0});KH.crypto=KH.guard=void 0;KH.guard=wys(bys());KH.crypto=wys(Bys())});var H0e=H(Are=>{"use strict";var qxl=Are&&Are.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Are,"__esModule",{value:!0});Are.Signed=Are.MetadataKind=void 0;Are.isMetadataKind=eGl;var $xl=qxl(wt("util")),Rze=O6(),I7r=iJ(),Tys=["1","0","31"],h7r;(function(e){e.Root="root",e.Timestamp="timestamp",e.Snapshot="snapshot",e.Targets="targets"})(h7r||(Are.MetadataKind=h7r={}));function eGl(e){return typeof e=="string"&&Object.values(h7r).includes(e)}var m7r=class e{constructor(t){this.specVersion=t.specVersion||Tys.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(n=>tGl(n)))throw new Rze.ValueError("Failed to parse specVersion");if(r[0]!=Tys[0])throw new Rze.ValueError("Unsupported specVersion");this.expires=t.expires,this.version=t.version,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.specVersion===t.specVersion&&this.expires===t.expires&&this.version===t.version&&$xl.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}isExpired(t){return t||(t=new Date),t>=new Date(this.expires)}static commonFieldsFromJSON(t){let{spec_version:r,expires:n,version:a,...o}=t;if(I7r.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new Rze.ValueError("spec_version is not defined");if(I7r.guard.isDefined(n)){if(typeof n!="string")throw new TypeError("expires must be a string")}else throw new Rze.ValueError("expires is not defined");if(I7r.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new Rze.ValueError("version is not defined");return{specVersion:r,expires:n,version:a,unrecognizedFields:o}}};Are.Signed=m7r;function tGl(e){return!isNaN(Number(e))}});var Nze=H(zue=>{"use strict";var Rys=zue&&zue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zue,"__esModule",{value:!0});zue.TargetFile=zue.MetaFile=void 0;var Nys=Rys(wt("crypto")),GLt=Rys(wt("util")),jue=O6(),xLt=iJ(),C7r=class e{constructor(t){if(t.version<=0)throw new jue.ValueError("Metafile version must be at least 1");t.length!==void 0&&Dys(t.length),this.version=t.version,this.length=t.length,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.version===t.version&&this.length===t.length&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}verify(t){if(this.length!==void 0&&t.length!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${t.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,n])=>{let a;try{a=Nys.default.createHash(r)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let o=a.update(t).digest("hex");if(o!==n)throw new jue.LengthOrHashMismatchError(`Expected hash ${n} but got ${o}`)})}toJSON(){let t={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(t.length=this.length),this.hashes&&(t.hashes=this.hashes),t}static fromJSON(t){let{version:r,length:n,hashes:a,...o}=t;if(typeof r!="number")throw new TypeError("version must be a number");if(xLt.guard.isDefined(n)&&typeof n!="number")throw new TypeError("length must be a number");if(xLt.guard.isDefined(a)&&!xLt.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new e({version:r,length:n,hashes:a,unrecognizedFields:o})}};zue.MetaFile=C7r;var _7r=class e{constructor(t){Dys(t.length),this.length=t.length,this.path=t.path,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}get custom(){let t=this.unrecognizedFields.custom;return!t||Array.isArray(t)||typeof t!="object"?{}:t}equals(t){return t instanceof e?this.length===t.length&&this.path===t.path&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}async verify(t){let r=0,n=Object.keys(this.hashes).reduce((a,o)=>{try{a[o]=Nys.default.createHash(o)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${o} not supported`)}return a},{});for await(let a of t)r+=a.length,Object.values(n).forEach(o=>{o.update(a)});if(r!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(n).forEach(([a,o])=>{let l=this.hashes[a],A=o.digest("hex");if(A!==l)throw new jue.LengthOrHashMismatchError(`Expected hash ${l} but got ${A}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(t,r){let{length:n,hashes:a,...o}=r;if(typeof n!="number")throw new TypeError("length must be a number");if(!xLt.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new e({length:n,path:t,hashes:a,unrecognizedFields:o})}};zue.TargetFile=_7r;function Dys(e){if(e<0)throw new jue.ValueError("Length must be at least 0")}});var kys=H(y7r=>{"use strict";Object.defineProperty(y7r,"__esModule",{value:!0});y7r.encodeOIDString=nGl;var rGl=6;function nGl(e){let t=e.split("."),r=parseInt(t[0],10)*40+parseInt(t[1],10),n=[];t.slice(2).forEach(o=>{let l=iGl(parseInt(o,10));n.push(...l)});let a=Buffer.from([r,...n]);return Buffer.from([rGl,a.length,...a])}function iGl(e){let t=[],r=0;for(;e>0;)t.unshift(e&127|r),e>>=7,r=128;return t}});var Zys=H(kze=>{"use strict";var sGl=kze&&kze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kze,"__esModule",{value:!0});kze.getPublicKey=lGl;var SFe=sGl(wt("crypto")),Dze=O6(),b7r=kys(),FLt=48,xys=3,Gys=0,oGl="1.3.101.112",aGl="1.2.840.10045.2.1",cGl="1.2.840.10045.3.1.7",E7r="-----BEGIN PUBLIC KEY-----";function lGl(e){switch(e.keyType){case"rsa":return uGl(e);case"ed25519":return gGl(e);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return AGl(e);default:throw new Dze.UnsupportedAlgorithmError(`Unsupported key type: ${e.keyType}`)}}function uGl(e){if(!e.keyVal.startsWith(E7r))throw new Dze.CryptoError("Invalid key format");let t=SFe.default.createPublicKey(e.keyVal);switch(e.scheme){case"rsassa-pss-sha256":return{key:t,padding:SFe.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new Dze.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${e.scheme}`)}}function gGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:dGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}function AGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:pGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}var dGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=(0,b7r.encodeOIDString)(oGl),n=Buffer.concat([Buffer.concat([Buffer.from([FLt]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t])]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n])}},pGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t]),n=Buffer.concat([(0,b7r.encodeOIDString)(aGl),(0,b7r.encodeOIDString)(cGl)]),a=Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([a.length+r.length]),a,r])}},Fys=e=>/^[0-9a-fA-F]+$/.test(e)});var ZLt=H(vFe=>{"use strict";var fGl=vFe&&vFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vFe,"__esModule",{value:!0});vFe.Key=void 0;var Lys=fGl(wt("util")),xze=O6(),Vys=iJ(),IGl=Zys(),S7r=class e{constructor(t){let{keyID:r,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l}=t;this.keyID=r,this.keyType=n,this.scheme=a,this.keyVal=o,this.unrecognizedFields=l||{}}verifySignature(t){let r=t.signatures[this.keyID];if(!r)throw new xze.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new xze.UnsignedMetadataError("no public key found");let n=(0,IGl.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=t.signed.toJSON();try{if(!Vys.crypto.verifySignature(a,n,r.sig))throw new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(o){throw o instanceof xze.UnsignedMetadataError?o:new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(t){return t instanceof e?this.keyID===t.keyID&&this.keyType===t.keyType&&this.scheme===t.scheme&&Lys.default.isDeepStrictEqual(this.keyVal,t.keyVal)&&Lys.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(t,r){let{keytype:n,scheme:a,keyval:o,...l}=r;if(typeof n!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!Vys.guard.isStringRecord(o))throw new TypeError("keyval must be a string record");return new e({keyID:t,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l})}};vFe.Key=S7r});var Xys=H((Mog,Qys)=>{var Pys=wjr();Qys.exports=CGl;var Wys="\0SLASH"+Math.random()+"\0",Oys="\0OPEN"+Math.random()+"\0",B7r="\0CLOSE"+Math.random()+"\0",Mys="\0COMMA"+Math.random()+"\0",Hys="\0PERIOD"+Math.random()+"\0";function v7r(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function hGl(e){return e.split("\\\\").join(Wys).split("\\{").join(Oys).split("\\}").join(B7r).split("\\,").join(Mys).split("\\.").join(Hys)}function mGl(e){return e.split(Wys).join("\\").split(Oys).join("{").split(B7r).join("}").split(Mys).join(",").split(Hys).join(".")}function Yys(e){if(!e)return[""];var t=[],r=Pys("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=Yys(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function CGl(e,t){if(!e)return[];t=t||{};var r=t.max==null?1/0:t.max;return e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),Gze(hGl(e),r,!0).map(mGl)}function _Gl(e){return"{"+e+"}"}function yGl(e){return/^-?0\d/.test(e)}function bGl(e,t){return e<=t}function EGl(e,t){return e>=t}function Gze(e,t,r){var n=[],a=Pys("{","}",e);if(!a)return[e];var o=a.pre,l=a.post.length?Gze(a.post,t,!1):[""];if(/\$$/.test(a.pre))for(var A=0;A=0;if(!b&&!E)return a.post.match(/,(?!,).*\}/)?(e=a.pre+"{"+a.body+B7r+a.post,Gze(e,t,!0)):[e];var N;if(b)N=a.body.split(/\.\./);else if(N=Yys(a.body),N.length===1&&(N=Gze(N[0],t,!1).map(_Gl),N.length===1))return l.map(function(k){return a.pre+N[0]+k});var B;if(b){var F=v7r(N[0]),Q=v7r(N[1]),X=Math.max(N[0].length,N[1].length),ae=N.length==3?Math.max(Math.abs(v7r(N[2])),1):1,ne=bGl,ce=Q0){var Se=new Array(be+1).join("0");ue<0?de="-"+Se+de.slice(1):de=Se+de}}B.push(de)}}else{B=[];for(var De=0;De{"use strict";Object.defineProperty(LLt,"__esModule",{value:!0});LLt.assertValidPattern=void 0;var SGl=1024*64,vGl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>SGl)throw new TypeError("pattern is too long")};LLt.assertValidPattern=vGl});var Kys=H(VLt=>{"use strict";Object.defineProperty(VLt,"__esModule",{value:!0});VLt.parseClass=void 0;var BGl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Fze=e=>e.replace(/[[\]\\-]/g,"\\$&"),wGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Uys=e=>e.join(""),TGl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(Fze(b)+"-"+Fze(F)):F===b&&n.push(Fze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(Fze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(Fze(F)),o++}if(C{"use strict";Object.defineProperty(PLt,"__esModule",{value:!0});PLt.unescape=void 0;var RGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");PLt.unescape=RGl});var R7r=H(YLt=>{"use strict";var rP;Object.defineProperty(YLt,"__esModule",{value:!0});YLt.AST=void 0;var NGl=Kys(),OLt=WLt(),DGl=new Set(["!","?","+","*","@"]),w7r=e=>DGl.has(e),jys=e=>w7r(e.type),kGl=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),xGl=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),GGl=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),zys=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),FGl="(?!(?:^|/)\\.\\.?(?:$|/))",MLt="(?!\\.)",ZGl=new Set(["[","."]),LGl=new Set(["..","."]),VGl=new Set("().*{}+?[]^$\\!"),PGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),T7r="[^/]",qys=T7r+"*?",$ys=T7r+"+?",HLt=class{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?rP.#B(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&LGl.has(this.#r[0]))){let B=ZGl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?FGl:Q?MLt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,OLt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#p(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString(),I=this;return I.#r=[f],I.type=null,I.#t=void 0,[f,(0,OLt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!MLt?"":this.#p(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?MLt:"")+$ys;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?MLt:"")+qys+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,OLt.unescape)(o),this.#t=!!this.#t,this.#n]}#p(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#B(t,r,n=!1){let a=!1,o="",l=!1,A=!1;for(let f=0;f{"use strict";Object.defineProperty(QLt,"__esModule",{value:!0});QLt.escape=void 0;var WGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");QLt.escape=WGl});var obs=H(xA=>{"use strict";var OGl=xA&&xA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xA,"__esModule",{value:!0});xA.unescape=xA.escape=xA.AST=xA.Minimatch=xA.match=xA.makeRe=xA.braceExpand=xA.defaults=xA.filter=xA.GLOBSTAR=xA.sep=xA.minimatch=void 0;var MGl=OGl(Xys()),XLt=Jys(),rbs=R7r(),HGl=N7r(),YGl=WLt(),QGl=(e,t,r={})=>((0,XLt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new Y0e(t,r).match(e));xA.minimatch=QGl;var XGl=/^\*+([^+@!?\*\[\(]*)$/,JGl=e=>t=>!t.startsWith(".")&&t.endsWith(e),UGl=e=>t=>t.endsWith(e),KGl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),jGl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),zGl=/^\*+\.\*+$/,qGl=e=>!e.startsWith(".")&&e.includes("."),$Gl=e=>e!=="."&&e!==".."&&e.includes("."),eFl=/^\.\*+$/,tFl=e=>e!=="."&&e!==".."&&e.startsWith("."),rFl=/^\*+$/,nFl=e=>e.length!==0&&!e.startsWith("."),iFl=e=>e.length!==0&&e!=="."&&e!=="..",sFl=/^\?+([^+@!?\*\[\(]*)?$/,oFl=([e,t=""])=>{let r=nbs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},aFl=([e,t=""])=>{let r=ibs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},cFl=([e,t=""])=>{let r=ibs([e]);return t?n=>r(n)&&n.endsWith(t):r},lFl=([e,t=""])=>{let r=nbs([e]);return t?n=>r(n)&&n.endsWith(t):r},nbs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},ibs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},sbs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",ebs={win32:{sep:"\\"},posix:{sep:"/"}};xA.sep=sbs==="win32"?ebs.win32.sep:ebs.posix.sep;xA.minimatch.sep=xA.sep;xA.GLOBSTAR=Symbol("globstar **");xA.minimatch.GLOBSTAR=xA.GLOBSTAR;var uFl="[^/]",gFl=uFl+"*?",AFl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",dFl="(?:(?!(?:\\/|^)\\.).)*?",pFl=(e,t={})=>r=>(0,xA.minimatch)(r,e,t);xA.filter=pFl;xA.minimatch.filter=xA.filter;var jH=(e,t={})=>Object.assign({},e,t),fFl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return xA.minimatch;let t=xA.minimatch;return Object.assign((n,a,o={})=>t(n,a,jH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,jH(e,o))}static defaults(a){return t.defaults(jH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,jH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,jH(e,o))}},unescape:(n,a={})=>t.unescape(n,jH(e,a)),escape:(n,a={})=>t.escape(n,jH(e,a)),filter:(n,a={})=>t.filter(n,jH(e,a)),defaults:n=>t.defaults(jH(e,n)),makeRe:(n,a={})=>t.makeRe(n,jH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,jH(e,a)),match:(n,a,o={})=>t.match(n,a,jH(e,o)),sep:t.sep,GLOBSTAR:xA.GLOBSTAR})};xA.defaults=fFl;xA.minimatch.defaults=xA.defaults;var IFl=(e,t={})=>((0,XLt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,MGl.default)(e));xA.braceExpand=IFl;xA.minimatch.braceExpand=xA.braceExpand;var hFl=(e,t={})=>new Y0e(e,t).makeRe();xA.makeRe=hFl;xA.minimatch.makeRe=xA.makeRe;var mFl=(e,t,r={})=>{let n=new Y0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};xA.match=mFl;xA.minimatch.match=xA.match;var tbs=/[?*]|[+@!]\(.*?\)|\[|\]/,CFl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Y0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){(0,XLt.assertValidPattern)(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||sbs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!tbs.test(o[2]))&&!tbs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;a=2&&(t=this.levelTwoFileOptimize(t)),r.includes(xA.GLOBSTAR)?this.#e(t,r,n,a,o):this.#n(t,r,n,a,o)}#e(t,r,n,a,o){let l=r.indexOf(xA.GLOBSTAR,o),A=r.lastIndexOf(xA.GLOBSTAR),[f,I,C]=n?[r.slice(o,l),r.slice(l+1),[]]:[r.slice(o,l),r.slice(l+1,A),r.slice(A+1)];if(f.length){let ae=t.slice(a,a+f.length);if(!this.#n(ae,f,n,0,0))return!1;a+=f.length}let b=0;if(C.length){if(C.length+a>t.length)return!1;let ae=t.length-C.length;if(this.#n(t,C,n,ae,0))b=C.length;else{if(t[t.length-1]!==""||a+C.length===t.length||(ae--,!this.#n(t,C,n,ae,0)))return!1;b=C.length+1}}if(!I.length){let ae=!!b;for(let ne=a;ne{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?CFl(C):C===xA.GLOBSTAR?xA.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==xA.GLOBSTAR||N===xA.GLOBSTAR||(N===void 0?E!==void 0&&E!==xA.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==xA.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=xA.GLOBSTAR))}),I.filter(C=>C!==xA.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var abs=zH&&zH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zH,"__esModule",{value:!0});zH.SuccinctRoles=zH.DelegatedRole=zH.Role=zH.TOP_LEVEL_ROLE_NAMES=void 0;var cbs=abs(wt("crypto")),EFl=obs(),JLt=abs(wt("util")),ULt=O6(),Q0e=iJ();zH.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var Zze=class e{constructor(t){let{keyIDs:r,threshold:n,unrecognizedFields:a}=t;if(SFl(r))throw new ULt.ValueError("duplicate key IDs found");if(n<1)throw new ULt.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=n,this.unrecognizedFields=a||{}}equals(t){return t instanceof e?this.threshold===t.threshold&&JLt.default.isDeepStrictEqual(this.keyIDs,t.keyIDs)&&JLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(t){let{keyids:r,threshold:n,...a}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof n!="number")throw new TypeError("threshold must be a number");return new e({keyIDs:r,threshold:n,unrecognizedFields:a})}};zH.Role=Zze;function SFl(e){return new Set(e).size!==e.length}var D7r=class e extends Zze{constructor(t){super(t);let{name:r,terminating:n,paths:a,pathHashPrefixes:o}=t;if(this.name=r,this.terminating=n,t.paths&&t.pathHashPrefixes)throw new ULt.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=o}equals(t){return t instanceof e?super.equals(t)&&this.name===t.name&&this.terminating===t.terminating&&JLt.default.isDeepStrictEqual(this.paths,t.paths)&&JLt.default.isDeepStrictEqual(this.pathHashPrefixes,t.pathHashPrefixes):!1}isDelegatedPath(t){if(this.paths)return this.paths.some(r=>BFl(t,r));if(this.pathHashPrefixes){let n=cbs.default.createHash("sha256").update(t).digest("hex");return this.pathHashPrefixes.some(a=>n.startsWith(a))}return!1}toJSON(){let t={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(t.paths=this.paths),this.pathHashPrefixes&&(t.path_hash_prefixes=this.pathHashPrefixes),t}static fromJSON(t){let{keyids:r,threshold:n,name:a,terminating:o,paths:l,path_hash_prefixes:A,...f}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof n!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof o!="boolean")throw new TypeError("terminating must be a boolean");if(Q0e.guard.isDefined(l)&&!Q0e.guard.isStringArray(l))throw new TypeError("paths must be an array of strings");if(Q0e.guard.isDefined(A)&&!Q0e.guard.isStringArray(A))throw new TypeError("path_hash_prefixes must be an array of strings");return new e({keyIDs:r,threshold:n,name:a,terminating:o,paths:l,pathHashPrefixes:A,unrecognizedFields:f})}};zH.DelegatedRole=D7r;var vFl=(e,t)=>e.map((r,n)=>[r,t[n]]);function BFl(e,t){let r=e.split("/"),n=t.split("/");return n.length!=r.length?!1:vFl(r,n).every(([a,o])=>(0,EFl.minimatch)(a,o))}var k7r=class e extends Zze{constructor(t){super(t);let{bitLength:r,namePrefix:n}=t;if(r<=0||r>32)throw new ULt.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=n,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(t){return t instanceof e?super.equals(t)&&this.bitLength===t.bitLength&&this.namePrefix===t.namePrefix:!1}getRoleForTarget(t){let a=cbs.default.createHash("sha256").update(t).digest().subarray(0,4),o=32-this.bitLength,A=(a.readUInt32BE()>>>o).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${A}`}*getRoles(){for(let t=0;t{"use strict";var wFl=BFe&&BFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BFe,"__esModule",{value:!0});BFe.Root=void 0;var lbs=wFl(wt("util")),G7r=H0e(),ubs=O6(),TFl=ZLt(),KLt=x7r(),jLt=iJ(),F7r=class e extends G7r.Signed{constructor(t){if(super(t),this.type=G7r.MetadataKind.Root,this.keys=t.keys||{},this.consistentSnapshot=t.consistentSnapshot??!0,!t.roles)this.roles=KLt.TOP_LEVEL_ROLE_NAMES.reduce((r,n)=>({...r,[n]:new KLt.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(t.roles));if(!KLt.TOP_LEVEL_ROLE_NAMES.every(n=>r.has(n)))throw new ubs.ValueError("missing top-level role");this.roles=t.roles}}addKey(t,r){if(!this.roles[r])throw new ubs.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(t.keyID)||this.roles[r].keyIDs.push(t.keyID),this.keys[t.keyID]=t}equals(t){return t instanceof e?super.equals(t)&&this.consistentSnapshot===t.consistentSnapshot&&lbs.default.isDeepStrictEqual(this.keys,t.keys)&&lbs.default.isDeepStrictEqual(this.roles,t.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:RFl(this.keys),roles:NFl(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=G7r.Signed.commonFieldsFromJSON(t),{keys:a,roles:o,consistent_snapshot:l,...A}=r;if(typeof l!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new e({...n,keys:DFl(a),roles:kFl(o),consistentSnapshot:l,unrecognizedFields:A})}};BFe.Root=F7r;function RFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function NFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function DFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("keys must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:TFl.Key.fromJSON(n,a)}),{})}return t}function kFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("roles must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:KLt.Role.fromJSON(a)}),{})}return t}});var V7r=H(zLt=>{"use strict";Object.defineProperty(zLt,"__esModule",{value:!0});zLt.Signature=void 0;var L7r=class e{constructor(t){let{keyID:r,sig:n}=t;this.keyID=r,this.sig=n}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(t){let{keyid:r,sig:n}=t;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof n!="string")throw new TypeError("sig must be a string");return new e({keyID:r,sig:n})}};zLt.Signature=L7r});var O7r=H(wFe=>{"use strict";var xFl=wFe&&wFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wFe,"__esModule",{value:!0});wFe.Snapshot=void 0;var GFl=xFl(wt("util")),P7r=H0e(),Abs=Nze(),gbs=iJ(),W7r=class e extends P7r.Signed{constructor(t){super(t),this.type=P7r.MetadataKind.Snapshot,this.meta=t.meta||{"targets.json":new Abs.MetaFile({version:1})}}equals(t){return t instanceof e?super.equals(t)&&GFl.default.isDeepStrictEqual(this.meta,t.meta):!1}toJSON(){return{_type:this.type,meta:FFl(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=P7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,meta:ZFl(a),unrecognizedFields:o})}};wFe.Snapshot=W7r;function FFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function ZFl(e){let t;if(gbs.guard.isDefined(e))if(gbs.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:Abs.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return t}});var dbs=H(TFe=>{"use strict";var LFl=TFe&&TFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TFe,"__esModule",{value:!0});TFe.Delegations=void 0;var qLt=LFl(wt("util")),VFl=O6(),PFl=ZLt(),M7r=x7r(),$Lt=iJ(),H7r=class e{constructor(t){if(this.keys=t.keys,this.unrecognizedFields=t.unrecognizedFields||{},t.roles&&Object.keys(t.roles).some(r=>M7r.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new VFl.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=t.succinctRoles,this.roles=t.roles}equals(t){return t instanceof e?qLt.default.isDeepStrictEqual(this.keys,t.keys)&&qLt.default.isDeepStrictEqual(this.roles,t.roles)&&qLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields)&&qLt.default.isDeepStrictEqual(this.succinctRoles,t.succinctRoles):!1}*rolesForTarget(t){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(t)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(t),terminating:!0})}toJSON(){let t={keys:WFl(this.keys),...this.unrecognizedFields};return this.roles?t.roles=OFl(this.roles):this.succinctRoles&&(t.succinct_roles=this.succinctRoles.toJSON()),t}static fromJSON(t){let{keys:r,roles:n,succinct_roles:a,...o}=t,l;return $Lt.guard.isObject(a)&&(l=M7r.SuccinctRoles.fromJSON(a)),new e({keys:MFl(r),roles:HFl(n),unrecognizedFields:o,succinctRoles:l})}};TFe.Delegations=H7r;function WFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function OFl(e){return Object.values(e).map(t=>t.toJSON())}function MFl(e){if(!$Lt.guard.isObjectRecord(e))throw new TypeError("keys is malformed");return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:PFl.Key.fromJSON(r,n)}),{})}function HFl(e){let t;if($Lt.guard.isDefined(e)){if(!$Lt.guard.isObjectArray(e))throw new TypeError("roles is malformed");t=e.reduce((r,n)=>{let a=M7r.DelegatedRole.fromJSON(n);return{...r,[a.name]:a}},{})}return t}});var X7r=H(RFe=>{"use strict";var YFl=RFe&&RFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RFe,"__esModule",{value:!0});RFe.Targets=void 0;var pbs=YFl(wt("util")),Y7r=H0e(),QFl=dbs(),XFl=Nze(),e9t=iJ(),Q7r=class e extends Y7r.Signed{constructor(t){super(t),this.type=Y7r.MetadataKind.Targets,this.targets=t.targets||{},this.delegations=t.delegations}addTarget(t){this.targets[t.path]=t}equals(t){return t instanceof e?super.equals(t)&&pbs.default.isDeepStrictEqual(this.targets,t.targets)&&pbs.default.isDeepStrictEqual(this.delegations,t.delegations):!1}toJSON(){let t={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:JFl(this.targets),...this.unrecognizedFields};return this.delegations&&(t.delegations=this.delegations.toJSON()),t}static fromJSON(t){let{unrecognizedFields:r,...n}=Y7r.Signed.commonFieldsFromJSON(t),{targets:a,delegations:o,...l}=r;return new e({...n,targets:UFl(a),delegations:KFl(o),unrecognizedFields:l})}};RFe.Targets=Q7r;function JFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function UFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:XFl.TargetFile.fromJSON(n,a)}),{});else throw new TypeError("targets must be an object");return t}function KFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObject(e))t=QFl.Delegations.fromJSON(e);else throw new TypeError("delegations must be an object");return t}});var j7r=H(t9t=>{"use strict";Object.defineProperty(t9t,"__esModule",{value:!0});t9t.Timestamp=void 0;var J7r=H0e(),fbs=Nze(),U7r=iJ(),K7r=class e extends J7r.Signed{constructor(t){super(t),this.type=J7r.MetadataKind.Timestamp,this.snapshotMeta=t.snapshotMeta||new fbs.MetaFile({version:1})}equals(t){return t instanceof e?super.equals(t)&&this.snapshotMeta.equals(t.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=J7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,snapshotMeta:jFl(a),unrecognizedFields:o})}};t9t.Timestamp=K7r;function jFl(e){let t;if(U7r.guard.isDefined(e)){let r=e["snapshot.json"];if(!U7r.guard.isDefined(r)||!U7r.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");t=fbs.MetaFile.fromJSON(r)}return t}});var hbs=H(DFe=>{"use strict";var zFl=DFe&&DFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DFe,"__esModule",{value:!0});DFe.Metadata=void 0;var qFl=f7r(),Ibs=zFl(wt("util")),NFe=H0e(),Lze=O6(),$Fl=Z7r(),eZl=V7r(),tZl=O7r(),rZl=X7r(),nZl=j7r(),z7r=iJ(),q7r=class e{constructor(t,r,n){this.signed=t,this.signatures=r||{},this.unrecognizedFields=n||{}}sign(t,r=!0){let n=Buffer.from((0,qFl.canonicalize)(this.signed.toJSON())),a=t(n);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(t,r){let n,a={};switch(this.signed.type){case NFe.MetadataKind.Root:a=this.signed.keys,n=this.signed.roles[t];break;case NFe.MetadataKind.Targets:if(!this.signed.delegations)throw new Lze.ValueError(`No delegations found for ${t}`);a=this.signed.delegations.keys,this.signed.delegations.roles?n=this.signed.delegations.roles[t]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(t)&&(n=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!n)throw new Lze.ValueError(`no delegation found for ${t}`);let o=new Set;if(n.keyIDs.forEach(l=>{let A=a[l];if(A)try{A.verifySignature(r),o.add(A.keyID)}catch{}}),o.sizer.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(t,r){let{signed:n,signatures:a,...o}=r;if(!z7r.guard.isDefined(n)||!z7r.guard.isObject(n))throw new TypeError("signed is not defined");if(t!==n._type)throw new Lze.ValueError(`expected '${t}', got ${n._type}`);if(!z7r.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let l;switch(t){case NFe.MetadataKind.Root:l=$Fl.Root.fromJSON(n);break;case NFe.MetadataKind.Timestamp:l=nZl.Timestamp.fromJSON(n);break;case NFe.MetadataKind.Snapshot:l=tZl.Snapshot.fromJSON(n);break;case NFe.MetadataKind.Targets:l=rZl.Targets.fromJSON(n);break;default:throw new TypeError("invalid metadata type")}let A={};return a.forEach(f=>{let I=eZl.Signature.fromJSON(f);if(A[I.keyID])throw new Lze.ValueError(`multiple signatures found for keyid: ${I.keyID}`);A[I.keyID]=I}),new e(l,A,o)}};DFe.Metadata=q7r});var r9t=H(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.Timestamp=W2.Targets=W2.Snapshot=W2.Signature=W2.Root=W2.Metadata=W2.Key=W2.TargetFile=W2.MetaFile=W2.ValueError=W2.MetadataKind=void 0;var iZl=H0e();Object.defineProperty(W2,"MetadataKind",{enumerable:!0,get:function(){return iZl.MetadataKind}});var sZl=O6();Object.defineProperty(W2,"ValueError",{enumerable:!0,get:function(){return sZl.ValueError}});var mbs=Nze();Object.defineProperty(W2,"MetaFile",{enumerable:!0,get:function(){return mbs.MetaFile}});Object.defineProperty(W2,"TargetFile",{enumerable:!0,get:function(){return mbs.TargetFile}});var oZl=ZLt();Object.defineProperty(W2,"Key",{enumerable:!0,get:function(){return oZl.Key}});var aZl=hbs();Object.defineProperty(W2,"Metadata",{enumerable:!0,get:function(){return aZl.Metadata}});var cZl=Z7r();Object.defineProperty(W2,"Root",{enumerable:!0,get:function(){return cZl.Root}});var lZl=V7r();Object.defineProperty(W2,"Signature",{enumerable:!0,get:function(){return lZl.Signature}});var uZl=O7r();Object.defineProperty(W2,"Snapshot",{enumerable:!0,get:function(){return uZl.Snapshot}});var gZl=X7r();Object.defineProperty(W2,"Targets",{enumerable:!0,get:function(){return gZl.Targets}});var AZl=j7r();Object.defineProperty(W2,"Timestamp",{enumerable:!0,get:function(){return AZl.Timestamp}})});var $7r=H((oag,Cbs)=>{function dZl(e){r.debug=r,r.default=r,r.coerce=f,r.disable=l,r.enable=a,r.enabled=A,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b=(typeof C=="string"?C:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?r.skips.push(E.slice(1)):r.names.push(E)}function o(C,b){let E=0,N=0,B=-1,F=0;for(;E"-"+b)].join(",");return r.enable(""),C}function A(C){for(let b of r.skips)if(o(C,b))return!1;for(let b of r.names)if(o(C,b))return!0;return!1}function f(C){return C instanceof Error?C.stack||C.message:C}function I(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Cbs.exports=dZl});var _bs=H((nP,n9t)=>{nP.formatArgs=fZl;nP.save=IZl;nP.load=hZl;nP.useColors=pZl;nP.storage=mZl();nP.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();nP.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function pZl(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function fZl(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+n9t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}nP.log=console.debug||console.log||(()=>{});function IZl(e){try{e?nP.storage.setItem("debug",e):nP.storage.removeItem("debug")}catch{}}function hZl(){let e;try{e=nP.storage.getItem("debug")||nP.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function mZl(){try{return localStorage}catch{}}n9t.exports=$7r()(nP);var{formatters:CZl}=n9t.exports;CZl.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bbs=H((wD,s9t)=>{var _Zl=wt("tty"),i9t=wt("util");wD.init=wZl;wD.log=SZl;wD.formatArgs=bZl;wD.save=vZl;wD.load=BZl;wD.useColors=yZl;wD.destroy=i9t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");wD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(wD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}wD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function yZl(){return"colors"in wD.inspectOpts?!!wD.inspectOpts.colors:_Zl.isatty(process.stderr.fd)}function bZl(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` -`+o),e.push(a+"m+"+s9t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=bZl()+t+" "+e[0]}function bZl(){return wD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function EZl(...e){return process.stderr.write(i9t.formatWithOptions(wD.inspectOpts,...e)+` -`)}function SZl(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function vZl(){return process.env.DEBUG}function BZl(e){e.inspectOpts={};let t=Object.keys(wD.inspectOpts);for(let r=0;rt.trim()).join(" ")};ybs.O=function(e){return this.inspectOpts.colors=this.useColors,i9t.inspect(e,this.inspectOpts)}});var tzr=H((oag,ezr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ezr.exports=_bs():ezr.exports=bbs()});var a9t=H(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.DownloadHTTPError=nB.DownloadLengthMismatchError=nB.DownloadError=nB.ExpiredMetadataError=nB.EqualVersionError=nB.BadVersionError=nB.RepositoryError=nB.PersistError=nB.RuntimeError=nB.ValueError=void 0;var rzr=class extends Error{};nB.ValueError=rzr;var nzr=class extends Error{};nB.RuntimeError=nzr;var izr=class extends Error{};nB.PersistError=izr;var Vze=class extends Error{};nB.RepositoryError=Vze;var o9t=class extends Vze{};nB.BadVersionError=o9t;var szr=class extends o9t{};nB.EqualVersionError=szr;var ozr=class extends Vze{};nB.ExpiredMetadataError=ozr;var Pze=class extends Error{};nB.DownloadError=Pze;var azr=class extends Pze{};nB.DownloadLengthMismatchError=azr;var czr=class extends Pze{statusCode;constructor(t,r){super(t),this.statusCode=r}};nB.DownloadHTTPError=czr});var Sbs=H(kFe=>{"use strict";var uzr=kFe&&kFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kFe,"__esModule",{value:!0});kFe.withTempFile=void 0;var lzr=uzr(wt("fs/promises")),wZl=uzr(wt("os")),Ebs=uzr(wt("path")),TZl=async e=>RZl(async t=>e(Ebs.default.join(t,"tempfile")));kFe.withTempFile=TZl;var RZl=async e=>{let t=await lzr.default.realpath(wZl.default.tmpdir()),r=await lzr.default.mkdtemp(t+Ebs.default.sep);try{return await e(r)}finally{await lzr.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var Azr=H(que=>{"use strict";var l9t=que&&que.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(que,"__esModule",{value:!0});que.DefaultFetcher=que.BaseFetcher=void 0;var NZl=l9t(tzr()),vbs=l9t(wt("fs")),DZl=l9t(bLt()),kZl=l9t(wt("util")),Bbs=a9t(),xZl=Sbs(),GZl=(0,NZl.default)("tuf:fetch"),c9t=class{async downloadFile(t,r,n){return(0,xZl.withTempFile)(async a=>{let o=await this.fetch(t),l=0,A=vbs.default.createWriteStream(a);try{for await(let f of o){if(l+=f.length,l>r)throw new Bbs.DownloadLengthMismatchError("Max length reached");await FZl(A,f)}}finally{await kZl.default.promisify(A.close).bind(A)()}return n(a)})}async downloadBytes(t,r){return this.downloadFile(t,r,async n=>{let a=vbs.default.createReadStream(n),o=[];for await(let l of a)o.push(l);return Buffer.concat(o)})}};que.BaseFetcher=c9t;var gzr=class extends c9t{timeout;retry;constructor(t={}){super(),this.timeout=t.timeout,this.retry=t.retry}async fetch(t){GZl("GET %s",t);let r=await(0,DZl.default)(t,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Bbs.DownloadHTTPError("Failed to download",r.status);return r.body}};que.DefaultFetcher=gzr;var FZl=async(e,t)=>new Promise((r,n)=>{e.write(t,a=>{a&&n(a),r(!0)})})});var wbs=H(u9t=>{"use strict";Object.defineProperty(u9t,"__esModule",{value:!0});u9t.defaultConfig=void 0;u9t.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Tbs=H(g9t=>{"use strict";Object.defineProperty(g9t,"__esModule",{value:!0});g9t.TrustedMetadataStore=void 0;var wT=r9t(),OS=a9t(),dzr=class{trustedSet={};referenceTime;constructor(t){this.referenceTime=new Date,this.loadTrustedRoot(t)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(t){return this.trustedSet[t]}updateRoot(t){let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Root,r);if(n.signed.type!=wT.MetadataKind.Root)throw new OS.RepositoryError(`Expected 'root', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Root,n),n.signed.version!=this.root.signed.version+1)throw new OS.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${n.signed.version}`);return n.verifyDelegate(wT.MetadataKind.Root,n),this.trustedSet.root=n,n}updateTimestamp(t){if(this.snapshot)throw new OS.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new OS.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Timestamp,r);if(n.signed.type!=wT.MetadataKind.Timestamp)throw new OS.RepositoryError(`Expected 'timestamp', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Timestamp,n),this.timestamp){if(n.signed.version{let f=o.signed.meta[l];if(!f)throw new OS.RepositoryError(`Missing file ${l} in new snapshot`);if(f.version{"use strict";Object.defineProperty(pzr,"__esModule",{value:!0});pzr.join=LZl;var ZZl=wt("url");function LZl(e,t){return new ZZl.URL(VZl(e)+PZl(t)).toString()}function VZl(e){return e.endsWith("/")?e:e+"/"}function PZl(e){return e.startsWith("/")?e.slice(1):e}});var Nbs=H(qH=>{"use strict";var WZl=qH&&qH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OZl=qH&&qH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hzr=qH&&qH.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{await t.verify(xFe.createReadStream(f)),fzr("WRITE %s",a),xFe.copyFileSync(f,a)}),a}async findCachedTarget(t,r){r||(r=this.generateTargetPath(t));try{if(xFe.existsSync(r))return await t.verify(xFe.createReadStream(r)),r}catch{return}}loadLocalMetadata(t){let r=A9t.join(this.dir,`${t}.json`);return fzr("READ %s",r),xFe.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,n=r+this.config.maxRootRotations;for(let a=r;a0;){let{roleName:a,parentRoleName:o}=r.pop();if(n.has(a))continue;let l=(await this.loadTargets(a,o))?.signed;if(!l)continue;let A=l.targets?.[t];if(A)return A;if(n.add(a),l.delegations){let f=[],I=l.delegations.rolesForTarget(t);for(let{role:C,terminating:b}of I)if(f.push({roleName:C,parentRoleName:a}),b){r.splice(0);break}f.reverse(),r.push(...f)}}}generateTargetPath(t){if(!this.targetDir)throw new X0e.ValueError("Target directory not set");let r=encodeURIComponent(t.path);return A9t.join(this.targetDir,r)}persistMetadata(t,r){let n=encodeURIComponent(t);try{let a=A9t.join(this.dir,`${n}.json`);fzr("WRITE %s",a),xFe.writeFileSync(a,r.toString("utf8"))}catch(a){throw new X0e.PersistError(`Failed to persist metadata ${n} error: ${a}`)}}};qH.Updater=Izr});var Dbs=H($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});$ue.Updater=$ue.BaseFetcher=$ue.TargetFile=void 0;var JZl=r9t();Object.defineProperty($ue,"TargetFile",{enumerable:!0,get:function(){return JZl.TargetFile}});var UZl=Azr();Object.defineProperty($ue,"BaseFetcher",{enumerable:!0,get:function(){return UZl.BaseFetcher}});var KZl=Nbs();Object.defineProperty($ue,"Updater",{enumerable:!0,get:function(){return KZl.Updater}})});var Czr=H(d9t=>{"use strict";Object.defineProperty(d9t,"__esModule",{value:!0});d9t.TUFError=void 0;var mzr=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}};d9t.TUFError=mzr});var kbs=H(Oze=>{"use strict";var jZl=Oze&&Oze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oze,"__esModule",{value:!0});Oze.readTarget=qZl;var zZl=jZl(wt("fs")),p9t=Czr();async function qZl(e,t){let r=await $Zl(e,t);return new Promise((n,a)=>{zZl.default.readFile(r,"utf-8",(o,l)=>{o?a(new p9t.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:o})):n(l)})})}async function $Zl(e,t){let r;try{r=await e.getTargetInfo(t)}catch(a){throw new p9t.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new p9t.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${t} not found`});let n=await e.findCachedTarget(r);if(!n)try{n=await e.downloadTarget(r)}catch(a){throw new p9t.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${n}`,cause:a})}return n}});var xbs=H((hag,eLl)=>{eLl.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiIgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGIwYmNmMTg5Y2UxYjkzZTdkYjk2NDlkNWJlNTEyYTE4ODBjMGUzNTg4NzBlMzkzM2U0MjZjNWFmYjhhNDA2MTAwMjIwNmQyMTRiZDc5YjA5ZjQ1OGNjYzUyMWEyOTBhYTk2MGM0MTcwMTRmYzE2ZTYwNmY4MjA5MWI1ZTMxODE0ODg2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIiIKICB9LAogIHsKICAgImtleWlkIjogIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAic2lnIjogIjMwNDUwMjIxMDBhOWI5ZTI5NGVjMjFiNjJkZmNhNmExNmExOWQwODQxODJjMTI1NzJlMzNkOWM0ZGNhYjUzMTdmYTFlOGE0NTlkMDIyMDY5ZjY4ZTU1ZWExZjk1YzVhMzY3YWFjN2E2MWE2NTc1N2Y5M2RhNWEwMDZhNWY0ZDFjZjk5NWJlODEyZDc2MDIiCiAgfSwKICB7CiAgICJrZXlpZCI6ICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIiwKICAgInNpZyI6ICIzMDQ0MDIyMDc4MTE3OGVjMzkxNWNiMTZhY2E3NTdkNDBlMjg0MzVhYzUzNzhkNmI0ODdhY2IxMTFkMWVlYjMzOTM5N2Y3OWEwMjIwNzgxY2NlNDhhZTQ2ZjllNDdiOTdhODQxNGZjZjQ2NmE5ODY3MjZhNTg5NmM3MmEwZTRhYmEzMTYyY2I4MjZkZCIKICB9CiBdLAogInNpZ25lZCI6IHsKICAiX3R5cGUiOiAicm9vdCIsCiAgImNvbnNpc3RlbnRfc25hcHNob3QiOiB0cnVlLAogICJleHBpcmVzIjogIjIwMjUtMDgtMTlUMTQ6MzM6MDlaIiwKICAia2V5cyI6IHsKICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6cHJvamVjdHMvc2lnc3RvcmUtcm9vdC1zaWduaW5nL2xvY2F0aW9ucy9nbG9iYWwva2V5UmluZ3Mvcm9vdC9jcnlwdG9LZXlzL3RpbWVzdGFtcC9jcnlwdG9LZXlWZXJzaW9ucy8xIgogICB9LAogICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXpCelZPbUhDUG9qTVZMU0kzNjRXaWlWOE5QckRcbjZJZ1J4Vmxpc2t6L3YreTNKRVI1bWNWR2NPTmxpRGNXTUM1SjJsZkhtalBOUGhiNEg3eG04THpmU0E9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAc2FudGlhZ290b3JyZXMiCiAgIH0sCiAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaW5pa1NzQVFtWWtOZUg1ZVlxL0NuSXpMYWFjT1xueGxTYWF3UURPd3FLeS90Q3F4cTV4eFBTSmMyMUs0V0loczlHeU9rS2Z6dWVZM0dJTHpjTUpaNGNXdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBib2JjYWxsYXdheSIKICAgfSwKICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV5OFhLc21oQllESThKYzBHd3pCeGVLYXgwY201XG5TVEtFVTY1SFBGdW5VbjQxc1Q4cGkwRmpNNElrSHovWVVtd21MVU8wV3Q3bHhoajZCa0xJSzRxWUF3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGRsb3JlbmMiCiAgIH0sCiAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFMGdocmg5Mkx3MVlyM2lkR1Y1V3FDdE1EQjhDeFxuK0Q4aGRDNHcyWkxOSXBsVlJvVkdMc2tZYTNnaGVNeU9qaUo4a1BpMTVhUTIvLzdQK29qN1V2SlBHdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBqb3NodWFnbCIKICAgfSwKICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVFWHN6M1NaWEZiOGpNVjQyajZwSmx5amJqUjhLXG5OM0J3b2NleHE2TE1JYjVxc1dLT1F2TE4xNk5VZWZMYzRIc3dPb3VtUnNWVmFhalNwUVM2Zm9ia1J3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQG1ubTY3OCIKICAgfQogIH0sCiAgInJvbGVzIjogewogICAicm9vdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiLAogICAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIiwKICAgICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiIsCiAgICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAzCiAgIH0sCiAgICJzbmFwc2hvdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDM2NTAsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiAzNjUKICAgfSwKICAgInRhcmdldHMiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAidGltZXN0YW1wIjogewogICAgImtleWlkcyI6IFsKICAgICAiMGM4NzQzMmMzYmYwOWZkOTkxODlmZGMzMmZhNWVhZWRmNGU0YTVmYWM3YmFiNzNmYTA0YTJlMGZjNjRhZjZmNSIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMSwKICAgICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogNywKICAgICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDYKICAgfQogIH0sCiAgInNwZWNfdmVyc2lvbiI6ICIxLjAiLAogICJ2ZXJzaW9uIjogMTIsCiAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAxOTcsCiAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogNDYKIH0KfQ==",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXQp9Cg==","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var Fbs=H(GFe=>{"use strict";var Gbs=GFe&&GFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GFe,"__esModule",{value:!0});GFe.TUFClient=void 0;var ege=Gbs(wt("fs")),Mze=Gbs(wt("path")),tLl=Dbs(),rLl=f9t(),nLl=kbs(),yzr="targets",_zr=class{constructor(t){let r=new URL(t.mirrorURL),n=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=Mze.default.join(t.cachePath,n);iLl(a),sLl({cachePath:a,mirrorURL:t.mirrorURL,tufRootPath:t.rootPath,forceInit:t.forceInit}),this.updater=oLl({mirrorURL:t.mirrorURL,cachePath:a,forceCache:t.forceCache,retry:t.retry,timeout:t.timeout})}async refresh(){return this.updater.refresh()}getTarget(t){return(0,nLl.readTarget)(this.updater,t)}};GFe.TUFClient=_zr;function iLl(e){let t=Mze.default.join(e,yzr);ege.default.existsSync(e)||ege.default.mkdirSync(e,{recursive:!0}),ege.default.existsSync(t)||ege.default.mkdirSync(t)}function sLl({cachePath:e,mirrorURL:t,tufRootPath:r,forceInit:n}){let a=Mze.default.join(e,"root.json");if(!ege.default.existsSync(a)||n)if(r)ege.default.copyFileSync(r,a);else{let l=xbs()[t];if(!l)throw new rLl.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${t}`});ege.default.writeFileSync(a,Buffer.from(l["root.json"],"base64")),Object.entries(l.targets).forEach(([A,f])=>{ege.default.writeFileSync(Mze.default.join(e,yzr,A),Buffer.from(f,"base64"))})}}function oLl(e){let t={fetchTimeout:e.timeout,fetchRetry:e.retry};return new tLl.Updater({metadataBaseUrl:e.mirrorURL,targetBaseUrl:`${e.mirrorURL}/targets`,metadataDir:e.cachePath,targetDir:Mze.default.join(e.cachePath,yzr),forceCache:e.forceCache,config:t})}});var f9t=H(dre=>{"use strict";Object.defineProperty(dre,"__esModule",{value:!0});dre.TUFError=dre.DEFAULT_MIRROR_URL=void 0;dre.getTrustedRoot=pLl;dre.initTUF=fLl;var aLl=b7e(),cLl=_ys(),lLl=Fbs();dre.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var uLl="sigstore-js",gLl={retries:2},ALl=5e3,dLl="trusted_root.json";async function pLl(e={}){let r=await Zbs(e).getTarget(dLl);return aLl.TrustedRoot.fromJSON(JSON.parse(r))}async function fLl(e={}){let t=Zbs(e);return t.refresh().then(()=>t)}function Zbs(e){return new lLl.TUFClient({cachePath:e.cachePath||(0,cLl.appDataPath)(uLl),rootPath:e.rootPath,mirrorURL:e.mirrorURL||dre.DEFAULT_MIRROR_URL,retry:e.retry??gLl,timeout:e.timeout??ALl,forceCache:e.forceCache??!1,forceInit:e.forceInit??e.force??!1})}var ILl=Czr();Object.defineProperty(dre,"TUFError",{enumerable:!0,get:function(){return ILl.TUFError}})});var Lbs=H(I9t=>{"use strict";Object.defineProperty(I9t,"__esModule",{value:!0});I9t.DSSESignatureContent=void 0;var Hze=jV(),bzr=class{constructor(t){this.env=t}compareDigest(t){return Hze.crypto.bufferEqual(t,Hze.crypto.digest("sha256",this.env.payload))}compareSignature(t){return Hze.crypto.bufferEqual(t,this.signature)}verifySignature(t){return Hze.crypto.verify(this.preAuthEncoding,t,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return Hze.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};I9t.DSSESignatureContent=bzr});var Vbs=H(h9t=>{"use strict";Object.defineProperty(h9t,"__esModule",{value:!0});h9t.MessageSignatureContent=void 0;var Ezr=jV(),Szr=class{constructor(t,r){this.signature=t.signature,this.messageDigest=t.messageDigest.digest,this.artifact=r}compareSignature(t){return Ezr.crypto.bufferEqual(t,this.signature)}compareDigest(t){return Ezr.crypto.bufferEqual(t,this.messageDigest)}verifySignature(t){return Ezr.crypto.verify(this.artifact,t,this.signature)}};h9t.MessageSignatureContent=Szr});var Wbs=H(m9t=>{"use strict";Object.defineProperty(m9t,"__esModule",{value:!0});m9t.toSignedEntity=CLl;m9t.signatureContent=Pbs;var vzr=jV(),hLl=Lbs(),mLl=Vbs();function CLl(e,t){let{tlogEntries:r,timestampVerificationData:n}=e.verificationMaterial,a=[];for(let o of r)a.push({$case:"transparency-log",tlogEntry:o});for(let o of n?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:vzr.RFC3161Timestamp.parse(o.signedTimestamp)});return{signature:Pbs(e,t),key:_Ll(e),tlogEntries:r,timestamps:a}}function Pbs(e,t){switch(e.content.$case){case"dsseEnvelope":return new hLl.DSSESignatureContent(e.content.dsseEnvelope);case"messageSignature":return new mLl.MessageSignatureContent(e.content.messageSignature,t)}}function _Ll(e){switch(e.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:e.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.certificate.rawBytes)}}}});var Ix=H(FFe=>{"use strict";Object.defineProperty(FFe,"__esModule",{value:!0});FFe.PolicyError=FFe.VerificationError=void 0;var C9t=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}},Bzr=class extends C9t{};FFe.VerificationError=Bzr;var wzr=class extends C9t{};FFe.PolicyError=wzr});var Obs=H(_9t=>{"use strict";Object.defineProperty(_9t,"__esModule",{value:!0});_9t.filterCertAuthorities=yLl;_9t.filterTLogAuthorities=bLl;function yLl(e,t){return e.filter(r=>r.validFor.start<=t&&r.validFor.end>=t)}function bLl(e,t){return e.filter(r=>t.logID&&!r.logID.equals(t.logID)?!1:r.validFor.start<=t.targetDate&&t.targetDate<=r.validFor.end)}});var U0e=H(J0e=>{"use strict";Object.defineProperty(J0e,"__esModule",{value:!0});J0e.filterTLogAuthorities=J0e.filterCertAuthorities=void 0;J0e.toTrustMaterial=SLl;var Tzr=jV(),Yze=b7e(),ELl=Ix(),Rzr=new Date(0),Nzr=new Date(864e13),Ybs=Obs();Object.defineProperty(J0e,"filterCertAuthorities",{enumerable:!0,get:function(){return Ybs.filterCertAuthorities}});Object.defineProperty(J0e,"filterTLogAuthorities",{enumerable:!0,get:function(){return Ybs.filterTLogAuthorities}});function SLl(e,t){let r=typeof t=="function"?t:vLl(t);return{certificateAuthorities:e.certificateAuthorities.map(Hbs),timestampAuthorities:e.timestampAuthorities.map(Hbs),tlogs:e.tlogs.map(Mbs),ctlogs:e.ctlogs.map(Mbs),publicKey:r}}function Mbs(e){let t=e.publicKey.keyDetails,r=t===Yze.PublicKeyDetails.PKCS1_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:e.logId.keyId,publicKey:Tzr.crypto.createPublicKey(e.publicKey.rawBytes,r),validFor:{start:e.publicKey.validFor?.start||Rzr,end:e.publicKey.validFor?.end||Nzr}}}function Hbs(e){return{certChain:e.certChain.certificates.map(t=>Tzr.X509Certificate.parse(t.rawBytes)),validFor:{start:e.validFor?.start||Rzr,end:e.validFor?.end||Nzr}}}function vLl(e){return t=>{let r=(e||{})[t];if(!r)throw new ELl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:Tzr.crypto.createPublicKey(r.rawBytes),validFor:n=>(r.validFor?.start||Rzr)<=n&&(r.validFor?.end||Nzr)>=n}}}});var Dzr=H(Qze=>{"use strict";Object.defineProperty(Qze,"__esModule",{value:!0});Qze.CertificateChainVerifier=void 0;Qze.verifyCertificateChain=wLl;var tge=Ix(),BLl=U0e();function wLl(e,t,r){let n=(0,BLl.filterCertAuthorities)(r,e),a;for(let o of n)try{return new y9t({trustedCerts:o.certChain,untrustedCert:t,timestamp:e}).verify()}catch(l){a=l}throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:a})}var y9t=class{constructor(t){this.untrustedCert=t.untrustedCert,this.trustedCerts=t.trustedCerts,this.localCerts=TLl([...t.trustedCerts,t.untrustedCert]),this.timestamp=t.timestamp}verify(){let t=this.sort();if(this.checkPath(t),!t.every(n=>n.validForDate(this.timestamp)))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return t}sort(){let t=this.untrustedCert,r=this.buildPaths(t);if(r=r.filter(a=>a.some(o=>this.trustedCerts.includes(o))),r.length===0)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let n=r.reduce((a,o)=>a.length{if(n&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(n)&&r.push(a);return}a.subject.equals(t.issuer)&&r.push(a)}),r=r.filter(a=>{try{return t.verify(a)}catch{return!1}}),r)}checkPath(t){if(t.length<1)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!t.slice(1).every(n=>n.isCA))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let n=t.length-2;n>=0;n--)if(!t[n].issuer.equals(t[n+1].subject))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let n=0;n{"use strict";Object.defineProperty(kzr,"__esModule",{value:!0});kzr.verifySCTs=DLl;var b9t=jV(),RLl=Ix(),NLl=U0e();function DLl(e,t,r){let n,a=e.clone();for(let f=0;f{if(!(0,NLl.filterTLogAuthorities)(r,{logID:f.logID,targetDate:f.datetime}).some(b=>f.verify(o.buffer,b.publicKey)))throw new RLl.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return f.logID})}});var Xbs=H(E9t=>{"use strict";Object.defineProperty(E9t,"__esModule",{value:!0});E9t.verifyPublicKey=VLl;E9t.verifyCertificate=PLl;var kLl=jV(),xLl=Ix(),GLl=Dzr(),FLl=Qbs(),ZLl="1.3.6.1.4.1.57264.1.1",LLl="1.3.6.1.4.1.57264.1.8";function VLl(e,t,r){let n=r.publicKey(e);return t.forEach(a=>{if(!n.validFor(a))throw new xLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:n.publicKey}}function PLl(e,t,r){let n=[];return t.forEach(a=>{n=(0,GLl.verifyCertificateChain)(a,e,r.certificateAuthorities)}),{scts:(0,FLl.verifySCTs)(n[0],n[1],r.ctlogs),signer:WLl(n[0])}}function WLl(e){let t,r=e.extension(LLl);r?t=r.valueObj.subs?.[0]?.value.toString("ascii"):t=e.extension(ZLl)?.value.toString("ascii");let n={extensions:{issuer:t},subjectAlternativeName:e.subjectAltName};return{key:kLl.crypto.createPublicKey(e.publicKey),identity:n}}});var Ubs=H(S9t=>{"use strict";Object.defineProperty(S9t,"__esModule",{value:!0});S9t.verifySubjectAlternativeName=OLl;S9t.verifyExtensions=MLl;var Jbs=Ix();function OLl(e,t){if(t===void 0||!t.match(e))throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${e}, got ${t}`})}function MLl(e,t={}){let r;for(r in e)if(t[r]!==e[r])throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${e[r]}, got ${r}=${t[r]}`})}});var Kbs=H(Lzr=>{"use strict";Object.defineProperty(Lzr,"__esModule",{value:!0});Lzr.verifyCheckpoint=QLl;var Gzr=jV(),ZFe=Ix(),HLl=U0e(),xzr=` - -`,YLl=/\u2014 (\S+) (\S+)\n/g;function QLl(e,t){let r=(0,HLl.filterTLogAuthorities)(t,{targetDate:new Date(Number(e.integratedTime)*1e3)}),n=e.inclusionProof,a=Fzr.fromString(n.checkpoint.envelope),o=Zzr.fromString(a.note);if(!XLl(a,r))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!Gzr.crypto.bufferEqual(o.logHash,n.rootHash))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function XLl(e,t){let r=Buffer.from(e.note,"utf-8");return e.signatures.every(n=>{let a=t.find(o=>Gzr.crypto.bufferEqual(o.logID.subarray(0,4),n.keyHint));return a?Gzr.crypto.verify(r,a.publicKey,n.signature):!1})}var Fzr=class e{constructor(t,r){this.note=t,this.signatures=r}static fromString(t){if(!t.includes(xzr))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=t.indexOf(xzr),n=t.slice(0,r+1),o=t.slice(r+xzr.length).matchAll(YLl),l=Array.from(o,A=>{let[,f,I]=A,C=Buffer.from(I,"base64");if(C.length<5)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:f,keyHint:C.subarray(0,4),signature:C.subarray(4)}});if(l.length===0)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new e(n,l)}},Zzr=class e{constructor(t,r,n,a){this.origin=t,this.logSize=r,this.logHash=n,this.rest=a}static fromString(t){let r=t.trimEnd().split(` -`);if(r.length<3)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let n=r[0],a=BigInt(r[1]),o=Buffer.from(r[2],"base64"),l=r.slice(3);return new e(n,a,o,l)}}});var jbs=H(Ozr=>{"use strict";Object.defineProperty(Ozr,"__esModule",{value:!0});Ozr.verifyMerkleInclusion=KLl;var Wzr=jV(),Vzr=Ix(),JLl=Buffer.from([0]),ULl=Buffer.from([1]);function KLl(e){let t=e.inclusionProof,r=BigInt(t.logIndex),n=BigInt(t.treeSize);if(r<0n||r>=n)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:o}=jLl(r,n);if(t.hashes.length!==a+o)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let l=t.hashes.slice(0,a),A=t.hashes.slice(a),f=r9l(e.canonicalizedBody),I=qLl(zLl(f,l,r),A);if(!Wzr.crypto.bufferEqual(I,t.rootHash))throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function jLl(e,t){let r=$Ll(e,t),n=e9l(e>>BigInt(r));return{inner:r,border:n}}function zLl(e,t,r){return t.reduce((n,a,o)=>r>>BigInt(o)&BigInt(1)?Pzr(a,n):Pzr(n,a),e)}function qLl(e,t){return t.reduce((r,n)=>Pzr(n,r),e)}function $Ll(e,t){return t9l(e^t-BigInt(1))}function e9l(e){return e.toString(2).split("1").length-1}function t9l(e){return e===0n?0:e.toString(2).length}function Pzr(e,t){return Wzr.crypto.digest("sha256",ULl,e,t)}function r9l(e){return Wzr.crypto.digest("sha256",JLl,e)}});var qbs=H(Mzr=>{"use strict";Object.defineProperty(Mzr,"__esModule",{value:!0});Mzr.verifyTLogSET=s9l;var zbs=jV(),n9l=Ix(),i9l=U0e();function s9l(e,t){if(!(0,i9l.filterTLogAuthorities)(t,{logID:e.logId.keyId,targetDate:new Date(Number(e.integratedTime)*1e3)}).some(a=>{let o=o9l(e),l=Buffer.from(zbs.json.canonicalize(o),"utf8"),A=e.inclusionPromise.signedEntryTimestamp;return zbs.crypto.verify(l,a.publicKey,A)}))throw new n9l.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function o9l(e){let{integratedTime:t,logIndex:r,logId:n,canonicalizedBody:a}=e;return{body:a.toString("base64"),integratedTime:Number(t),logIndex:Number(r),logID:n.keyId.toString("hex")}}});var eEs=H(Yzr=>{"use strict";Object.defineProperty(Yzr,"__esModule",{value:!0});Yzr.verifyRFC3161Timestamp=l9l;var Hzr=jV(),$bs=Ix(),a9l=Dzr(),c9l=U0e();function l9l(e,t,r){let n=e.signingTime;if(r=(0,c9l.filterCertAuthorities)(r,n),r=g9l(r,{serialNumber:e.signerSerialNumber,issuer:e.signerIssuer}),!r.some(o=>{try{return u9l(e,t,o),!0}catch{return!1}}))throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function u9l(e,t,r){let[n,...a]=r.certChain,o=Hzr.crypto.createPublicKey(n.publicKey),l=e.signingTime;try{new a9l.CertificateChainVerifier({untrustedCert:n,trustedCerts:a,timestamp:l}).verify()}catch{throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}e.verify(t,o)}function g9l(e,t){return e.filter(r=>r.certChain.length>0&&Hzr.crypto.bufferEqual(r.certChain[0].serialNumber,t.serialNumber)&&Hzr.crypto.bufferEqual(r.certChain[0].issuer,t.issuer))}});var tEs=H(v9t=>{"use strict";Object.defineProperty(v9t,"__esModule",{value:!0});v9t.verifyTSATimestamp=h9l;v9t.verifyTLogTimestamp=m9l;var A9l=Ix(),d9l=Kbs(),p9l=jbs(),f9l=qbs(),I9l=eEs();function h9l(e,t,r){return(0,I9l.verifyRFC3161Timestamp)(e,t,r),{type:"timestamp-authority",logID:e.signerSerialNumber,timestamp:e.signingTime}}function m9l(e,t){let r=!1;if(C9l(e)&&((0,f9l.verifyTLogSET)(e,t),r=!0),_9l(e)&&((0,p9l.verifyMerkleInclusion)(e),(0,d9l.verifyCheckpoint)(e,t),r=!0),!r)throw new A9l.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:e.logId.keyId,timestamp:new Date(Number(e.integratedTime)*1e3)}}function C9l(e){return e.inclusionPromise!==void 0}function _9l(e){return e.inclusionProof!==void 0}});var rEs=H(Qzr=>{"use strict";Object.defineProperty(Qzr,"__esModule",{value:!0});Qzr.verifyDSSETLogBody=y9l;var B9t=Ix();function y9l(e,t){switch(e.apiVersion){case"0.0.1":return b9l(e,t);default:throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${e.apiVersion}`})}}function b9l(e,t){if(e.spec.signatures?.length!==1)throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=e.spec.signatures[0].signature;if(!t.compareSignature(Buffer.from(r,"base64")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var nEs=H(Jzr=>{"use strict";Object.defineProperty(Jzr,"__esModule",{value:!0});Jzr.verifyHashedRekordTLogBody=E9l;var Xzr=Ix();function E9l(e,t){switch(e.apiVersion){case"0.0.1":return S9l(e,t);default:throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${e.apiVersion}`})}}function S9l(e,t){let r=e.spec.signature.content||"";if(!t.compareSignature(Buffer.from(r,"base64")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let n=e.spec.data.hash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var iEs=H(Uzr=>{"use strict";Object.defineProperty(Uzr,"__esModule",{value:!0});Uzr.verifyIntotoTLogBody=v9l;var w9t=Ix();function v9l(e,t){switch(e.apiVersion){case"0.0.2":return B9l(e,t);default:throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${e.apiVersion}`})}}function B9l(e,t){if(e.spec.content.envelope.signatures?.length!==1)throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=w9l(e.spec.content.envelope.signatures[0].sig);if(!t.compareSignature(Buffer.from(r,"base64")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.content.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function w9l(e){return Buffer.from(e,"base64").toString("utf-8")}});var oEs=H(Kzr=>{"use strict";Object.defineProperty(Kzr,"__esModule",{value:!0});Kzr.verifyTLogBody=D9l;var sEs=Ix(),T9l=rEs(),R9l=nEs(),N9l=iEs();function D9l(e,t){let{kind:r,version:n}=e.kindVersion,a=JSON.parse(e.canonicalizedBody.toString("utf8"));if(r!==a.kind||n!==a.apiVersion)throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${n}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,T9l.verifyDSSETLogBody)(a,t);case"intoto":return(0,N9l.verifyIntotoTLogBody)(a,t);case"hashedrekord":return(0,R9l.verifyHashedRekordTLogBody)(a,t);default:throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var gEs=H(T9t=>{"use strict";Object.defineProperty(T9t,"__esModule",{value:!0});T9t.Verifier=void 0;var k9l=wt("util"),LFe=Ix(),aEs=Xbs(),cEs=Ubs(),lEs=tEs(),x9l=oEs(),jzr=class{constructor(t,r={}){this.trustMaterial=t,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(t,r){let n=this.verifyTimestamps(t),a=this.verifySigningKey(t,n);return this.verifyTLogs(t),this.verifySignature(t,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(t){let r=0,n=0,a=t.timestamps.map(o=>{switch(o.$case){case"timestamp-authority":return n++,(0,lEs.verifyTSATimestamp)(o.timestamp,t.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,lEs.verifyTLogTimestamp)(o.tlogEntry,this.trustMaterial.tlogs)}});if(uEs(a))throw new LFe.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(ro.timestamp)}verifySigningKey({key:t},r){switch(t.$case){case"public-key":return(0,aEs.verifyPublicKey)(t.hint,r,this.trustMaterial);case"certificate":{let n=(0,aEs.verifyCertificate)(t.certificate,r,this.trustMaterial);if(uEs(n.scts))throw new LFe.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(n.scts.length(0,x9l.verifyTLogBody)(n,t))}verifySignature(t,r){if(!t.signature.verifySignature(r.key))throw new LFe.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(t,r){t.subjectAlternativeName&&(0,cEs.verifySubjectAlternativeName)(t.subjectAlternativeName,r.subjectAlternativeName),t.extensions&&(0,cEs.verifyExtensions)(t.extensions,r.extensions)}};T9t.Verifier=jzr;function uEs(e){for(let t=0;t{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.Verifier=$H.toTrustMaterial=$H.VerificationError=$H.PolicyError=$H.toSignedEntity=void 0;var G9l=Wbs();Object.defineProperty($H,"toSignedEntity",{enumerable:!0,get:function(){return G9l.toSignedEntity}});var AEs=Ix();Object.defineProperty($H,"PolicyError",{enumerable:!0,get:function(){return AEs.PolicyError}});Object.defineProperty($H,"VerificationError",{enumerable:!0,get:function(){return AEs.VerificationError}});var F9l=U0e();Object.defineProperty($H,"toTrustMaterial",{enumerable:!0,get:function(){return F9l.toTrustMaterial}});var Z9l=gEs();Object.defineProperty($H,"Verifier",{enumerable:!0,get:function(){return Z9l.Verifier}})});var dEs=H(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.DEFAULT_TIMEOUT=mL.DEFAULT_RETRY=void 0;mL.createBundleBuilder=P9l;mL.createKeyFinder=W9l;mL.createVerificationPolicy=O9l;var L9l=jV(),VFe=l7r(),V9l=R9t();mL.DEFAULT_RETRY={retries:2};mL.DEFAULT_TIMEOUT=5e3;function P9l(e,t){let r={signer:M9l(t),witnesses:Y9l(t)};switch(e){case"messageSignature":return new VFe.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new VFe.DSSEBundleBuilder({...r,certificateChain:t.legacyCompatibility})}}function W9l(e){return t=>{let r=e(t);if(!r)throw new V9l.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:L9l.crypto.createPublicKey(r),validFor:()=>!0}}}function O9l(e){let t={},r=e.certificateIdentityEmail||e.certificateIdentityURI;return r&&(t.subjectAlternativeName=r),e.certificateIssuer&&(t.extensions={issuer:e.certificateIssuer}),t}function M9l(e){return new VFe.FulcioSigner({fulcioBaseURL:e.fulcioURL,identityProvider:e.identityProvider||H9l(e),retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})}function H9l(e){let t=e.identityToken;return t?{getToken:()=>Promise.resolve(t)}:new VFe.CIContextProvider("sigstore")}function Y9l(e){let t=[];return Q9l(e)&&t.push(new VFe.RekorWitness({rekorBaseURL:e.rekorURL,entryType:e.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),X9l(e)&&t.push(new VFe.TSAWitness({tsaBaseURL:e.tsaServerURL,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),t}function Q9l(e){return e.tlogUpload!==!1}function X9l(e){return e.tsaServerURL!==void 0}});var IEs=H(eY=>{"use strict";var J9l=eY&&eY.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),U9l=eY&&eY.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pEs=eY&&eY.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aa.verify(e,n))}async function fEs(e={}){let t=await K9l.getTrustedRoot({mirrorURL:e.tufMirrorURL,rootPath:e.tufRootPath,cachePath:e.tufCachePath,forceCache:e.tufForceCache,retry:e.retry??PFe.DEFAULT_RETRY,timeout:e.timeout??PFe.DEFAULT_TIMEOUT}),r=e.keySelector?PFe.createKeyFinder(e.keySelector):void 0,n=(0,zzr.toTrustMaterial)(t,r),a={ctlogThreshold:e.ctLogThreshold,tlogThreshold:e.tlogThreshold},o=new zzr.Verifier(n,a),l=PFe.createVerificationPolicy(e);return{verify:(A,f)=>{let I=(0,qzr.bundleFromJSON)(A),C=(0,zzr.toSignedEntity)(I,f);o.verify(C,l)}}}});var mEs=H(O2=>{"use strict";Object.defineProperty(O2,"__esModule",{value:!0});O2.verify=O2.sign=O2.createVerifier=O2.attest=O2.VerificationError=O2.PolicyError=O2.TUFError=O2.InternalError=O2.DEFAULT_REKOR_URL=O2.DEFAULT_FULCIO_URL=O2.ValidationError=void 0;var $9l=S7e();Object.defineProperty(O2,"ValidationError",{enumerable:!0,get:function(){return $9l.ValidationError}});var $zr=l7r();Object.defineProperty(O2,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_FULCIO_URL}});Object.defineProperty(O2,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_REKOR_URL}});Object.defineProperty(O2,"InternalError",{enumerable:!0,get:function(){return $zr.InternalError}});var eVl=f9t();Object.defineProperty(O2,"TUFError",{enumerable:!0,get:function(){return eVl.TUFError}});var hEs=R9t();Object.defineProperty(O2,"PolicyError",{enumerable:!0,get:function(){return hEs.PolicyError}});Object.defineProperty(O2,"VerificationError",{enumerable:!0,get:function(){return hEs.VerificationError}});var N9t=IEs();Object.defineProperty(O2,"attest",{enumerable:!0,get:function(){return N9t.attest}});Object.defineProperty(O2,"createVerifier",{enumerable:!0,get:function(){return N9t.createVerifier}});Object.defineProperty(O2,"sign",{enumerable:!0,get:function(){return N9t.sign}});Object.defineProperty(O2,"verify",{enumerable:!0,get:function(){return N9t.verify}})});var CEs=H(D9t=>{"use strict";Object.defineProperty(D9t,"__esModule",{value:!0});D9t.generateProvenance=void 0;var tVl=(Pa(),vi(Va)),WFe=Bn(),rVl=tVl.__importStar(mEs()),{env:zc}=process,nVl="application/vnd.in-toto+json",iVl="https://in-toto.io/Statement/v0.1",sVl="https://in-toto.io/Statement/v1",oVl="https://slsa.dev/provenance/v0.2",aVl="https://slsa.dev/provenance/v1",cVl="https://github.com/actions/runner",lVl="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",uVl="https://github.com/npm/cli/gitlab",gVl="v0alpha1",AVl=async(e,t)=>{let r;if(zc.GITHUB_ACTIONS){if(!zc.ACTIONS_ID_TOKEN_REQUEST_URL)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let n=(zc.GITHUB_WORKFLOW_REF||"").replace(`${zc.GITHUB_REPOSITORY}/`,""),a=n.indexOf("@"),o=n.slice(0,a),l=n.slice(a+1);r={_type:sVl,subject:e,predicateType:aVl,predicate:{buildDefinition:{buildType:lVl,externalParameters:{workflow:{ref:l,repository:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}`,path:o}},internalParameters:{github:{event_name:zc.GITHUB_EVENT_NAME,repository_id:zc.GITHUB_REPOSITORY_ID,repository_owner_id:zc.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}@${zc.GITHUB_REF}`,digest:{gitCommit:zc.GITHUB_SHA}}]},runDetails:{builder:{id:`${cVl}/${zc.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}/actions/runs/${zc.GITHUB_RUN_ID}/attempts/${zc.GITHUB_RUN_ATTEMPT}`}}}}}else if(zc.GITLAB_CI){if(!zc.SIGSTORE_ID_TOKEN)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: -https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:iVl,subject:e,predicateType:oVl,predicate:{buildType:`${uVl}/${gVl}`,builder:{id:`${zc.CI_PROJECT_URL}/-/runners/${zc.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA},entryPoint:zc.CI_JOB_NAME},parameters:{CI:zc.CI,CI_API_GRAPHQL_URL:zc.CI_API_GRAPHQL_URL,CI_API_V4_URL:zc.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:zc.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:zc.CI_BUILD_ID,CI_BUILD_NAME:zc.CI_BUILD_NAME,CI_BUILD_REF:zc.CI_BUILD_REF,CI_BUILD_REF_NAME:zc.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:zc.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:zc.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:zc.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:zc.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:zc.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:zc.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:zc.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:zc.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:zc.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:zc.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:zc.CI_COMMIT_TITLE,CI_CONFIG_PATH:zc.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:zc.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:zc.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:zc.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:zc.CI_JOB_ID,CI_JOB_NAME:zc.CI_JOB_NAME,CI_JOB_NAME_SLUG:zc.CI_JOB_NAME_SLUG,CI_JOB_STAGE:zc.CI_JOB_STAGE,CI_JOB_STARTED_AT:zc.CI_JOB_STARTED_AT,CI_JOB_URL:zc.CI_JOB_URL,CI_NODE_TOTAL:zc.CI_NODE_TOTAL,CI_PAGES_DOMAIN:zc.CI_PAGES_DOMAIN,CI_PAGES_URL:zc.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:zc.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:zc.CI_PIPELINE_ID,CI_PIPELINE_IID:zc.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:zc.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:zc.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:zc.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:zc.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:zc.CI_PROJECT_ID,CI_PROJECT_NAME:zc.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:zc.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:zc.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:zc.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:zc.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:zc.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:zc.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:zc.CI_PROJECT_TITLE,CI_PROJECT_URL:zc.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:zc.CI_PROJECT_VISIBILITY,CI_REGISTRY:zc.CI_REGISTRY,CI_REGISTRY_IMAGE:zc.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:zc.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:zc.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:zc.CI_RUNNER_ID,CI_RUNNER_TAGS:zc.CI_RUNNER_TAGS,CI_SERVER_HOST:zc.CI_SERVER_HOST,CI_SERVER_NAME:zc.CI_SERVER_NAME,CI_SERVER_PORT:zc.CI_SERVER_PORT,CI_SERVER_PROTOCOL:zc.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:zc.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:zc.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:zc.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:zc.CI_SERVER_URL,CI_SERVER_VERSION:zc.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:zc.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:zc.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:zc.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:zc.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:zc.GITLAB_CI,GITLAB_FEATURES:zc.GITLAB_FEATURES,GITLAB_USER_ID:zc.GITLAB_USER_ID,GITLAB_USER_LOGIN:zc.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:zc.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:zc.CI_RUNNER_DESCRIPTION,architecture:zc.CI_RUNNER_EXECUTABLE_ARCH,server:zc.CI_SERVER_URL,project:zc.CI_PROJECT_PATH,job:{id:zc.CI_JOB_ID},pipeline:{id:zc.CI_PIPELINE_ID,ref:zc.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${zc.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA}}]}}}else throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,"Provenance generation is only supported in GitHub Actions and GitLab CI");return rVl.attest(Buffer.from(JSON.stringify(r)),nVl,t)};D9t.generateProvenance=AVl});var SEs=H(OFe=>{"use strict";Object.defineProperty(OFe,"__esModule",{value:!0});OFe.makePublishBody=CVl;OFe.getGitHead=_Vl;OFe.getPublishAccess=bEs;OFe.getReadmeContent=EEs;var dVl=(Pa(),vi(Va)),pVl=Bn(),yEs=Bn(),_Es=no(),fVl=$he(),IVl=dVl.__importDefault(Jte()),hVl=c0e(),mVl=CEs();async function CVl(e,t,{access:r,tag:n,registry:a,gitHead:o,provenance:l}){let A=e.manifest.name,f=e.manifest.version,I=yEs.structUtils.stringifyIdent(A),C=IVl.default.fromData(t,{algorithms:["sha1","sha512"]}),b=r??bEs(e,A),E=await EEs(e),N=await fVl.packUtils.genPackageManifest(e),B=`${I}-${f}.tgz`,F=new URL(`${(0,hVl.normalizeRegistry)(a)}/${I}/-/${B}`),Q={[B]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}};if(l){let X={name:`pkg:npm/${I.replace(/^@/,"%40")}@${f}`,digest:{sha512:C.sha512[0].hexDigest()}},ae=await(0,mVl.generateProvenance)([X]),ne=JSON.stringify(ae);Q[`${I}-${f}.sigstore`]={content_type:ae.mediaType,data:ne,length:ne.length}}return{_id:I,_attachments:Q,name:I,access:b,"dist-tags":{[n]:f},versions:{[f]:{...N,_id:`${I}@${f}`,name:I,version:f,gitHead:o,dist:{shasum:C.sha1[0].hexDigest(),integrity:C.sha512[0].toString(),tarball:F.toString()}}},readme:E}}async function _Vl(e){try{let{stdout:t}=await pVl.execUtils.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:e});return t.trim()===""?void 0:t.trim()}catch{return}}function bEs(e,t){let r=e.project.configuration;return e.manifest.publishConfig&&typeof e.manifest.publishConfig.access=="string"?e.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):t.scope?"restricted":"public"}async function EEs(e){let t=_Es.npath.toPortablePath(`${e.cwd}/README.md`),r=e.manifest.name,a=`# ${yEs.structUtils.stringifyIdent(r)} -`;try{a=await _Es.xfs.readFilePromise(t,"utf8")}catch(o){if(o.code==="ENOENT")return a;throw o}return a}});var sJ=H(QR=>{"use strict";Object.defineProperty(QR,"__esModule",{value:!0});QR.NpmTagResolver=QR.NpmSemverResolver=QR.NpmSemverFetcher=QR.NpmRemapResolver=QR.NpmHttpFetcher=QR.npmPublishUtils=QR.npmHttpUtils=QR.npmConfigUtils=void 0;var tqr=(Pa(),vi(Va)),jO=Bn(),BEs=zds();Object.defineProperty(QR,"NpmHttpFetcher",{enumerable:!0,get:function(){return BEs.NpmHttpFetcher}});var wEs=qds();Object.defineProperty(QR,"NpmRemapResolver",{enumerable:!0,get:function(){return wEs.NpmRemapResolver}});var TEs=PGt();Object.defineProperty(QR,"NpmSemverFetcher",{enumerable:!0,get:function(){return TEs.NpmSemverFetcher}});var REs=ips();Object.defineProperty(QR,"NpmSemverResolver",{enumerable:!0,get:function(){return REs.NpmSemverResolver}});var NEs=aps();Object.defineProperty(QR,"NpmTagResolver",{enumerable:!0,get:function(){return NEs.NpmTagResolver}});var DEs=tqr.__importStar(c0e());QR.npmConfigUtils=DEs;var yVl=tqr.__importStar(vGe());QR.npmHttpUtils=yVl;var bVl=tqr.__importStar(SEs());QR.npmPublishUtils=bVl;var eqr={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null}},vEs={npmAuditRegistry:{description:"Registry to query for audit reports",type:jO.SettingsType.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:jO.SettingsType.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.STRING,default:"https://registry.yarnpkg.com"}},EVl={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:jO.SettingsType.DURATION,unit:jO.DurationUnit.MINUTES,default:"0m"},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:jO.SettingsType.STRING,isArray:!0,default:[]}},SVl={configuration:{...eqr,...vEs,...EVl,npmScopes:{description:"Settings per package scope",type:jO.SettingsType.MAP,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr,...vEs}}},npmRegistries:{description:"Settings per registry",type:jO.SettingsType.MAP,normalizeKeys:DEs.normalizeRegistry,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr}}}},fetchers:[BEs.NpmHttpFetcher,TEs.NpmSemverFetcher],resolvers:[wEs.NpmRemapResolver,REs.NpmSemverResolver,NEs.NpmTagResolver]};QR.default=SVl});var k9t=H(MFe=>{"use strict";Object.defineProperty(MFe,"__esModule",{value:!0});MFe.Severity=MFe.Environment=void 0;var kEs;(function(e){e.All="all",e.Production="production",e.Development="development"})(kEs||(MFe.Environment=kEs={}));var xEs;(function(e){e.Info="info",e.Low="low",e.Moderate="moderate",e.High="high",e.Critical="critical"})(xEs||(MFe.Severity=xEs={}))});var rqr=H(oJ=>{"use strict";Object.defineProperty(oJ,"__esModule",{value:!0});oJ.allSeverities=void 0;oJ.getSeverityInclusions=BVl;oJ.getReportTree=wVl;oJ.getTopLevelDependencies=TVl;oJ.getPackages=RVl;var GEs=(Pa(),vi(Va)),QE=Bn(),vVl=GEs.__importDefault(UC()),pre=GEs.__importStar(k9t());oJ.allSeverities=[pre.Severity.Info,pre.Severity.Low,pre.Severity.Moderate,pre.Severity.High,pre.Severity.Critical];function BVl(e){if(typeof e>"u")return new Set(oJ.allSeverities);let t=oJ.allSeverities.indexOf(e),r=oJ.allSeverities.slice(t);return new Set(r)}function wVl(e){let t={},r={children:t};for(let[n,a]of QE.miscUtils.sortMap(Object.entries(e),o=>o[0]))for(let o of QE.miscUtils.sortMap(a,l=>`${l.id}`))t[`${n}/${o.id}`]={value:QE.formatUtils.tuple(QE.formatUtils.Type.IDENT,QE.structUtils.parseIdent(n)),children:{ID:typeof o.id<"u"&&{label:"ID",value:QE.formatUtils.tuple(QE.formatUtils.Type.ID,o.id)},Issue:{label:"Issue",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.title)},URL:typeof o.url<"u"&&{label:"URL",value:QE.formatUtils.tuple(QE.formatUtils.Type.URL,o.url)},Severity:{label:"Severity",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:QE.formatUtils.tuple(QE.formatUtils.Type.RANGE,o.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...o.versions].sort(vVl.default.compare).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.REFERENCE,l)}))},Dependents:{label:"Dependents",children:QE.miscUtils.sortMap(o.dependents,l=>QE.structUtils.stringifyLocator(l)).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.LOCATOR,l)}))}}};return r}function TVl(e,t,{all:r,environment:n}){let a=[],o=r?e.workspaces:[t],l=[pre.Environment.All,pre.Environment.Production].includes(n),A=[pre.Environment.All,pre.Environment.Development].includes(n);for(let f of o)for(let I of f.anchoredPackage.dependencies.values())(f.manifest.devDependencies.has(I.identHash)?!A:!l)||a.push({workspace:f,dependency:I});return a}function RVl(e,t,{recursive:r}){let n=new Map,a=new Set,o=[],l=e.configuration.makeResolver(),A={project:e,resolver:l},f=(I,C)=>{let b=e.storedResolutions.get(C.descriptorHash);if(typeof b>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(b))a.add(b);else return;let E=e.storedPackages.get(b);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let N=QE.structUtils.ensureDevirtualizedDescriptor(C);if(l.supportsDescriptor(N,A)){let F=l.getResolutionDependencies(N,A);if(Object.keys(F).length>0)for(let Q of Object.values(F))f(I,Q)}if(QE.structUtils.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let F=QE.structUtils.stringifyIdent(E),Q=QE.miscUtils.getMapWithDefault(n,F);QE.miscUtils.getArrayWithDefault(Q,E.version).push(I)}if(r)for(let F of E.dependencies.values())o.push([E,F])};for(let{workspace:I,dependency:C}of t)o.push([I.anchoredLocator,C]);for(;o.length>0;){let[I,C]=o.shift();f(I,C)}return n}});var VEs=H(nqr=>{"use strict";Object.defineProperty(nqr,"__esModule",{value:!0});var G9t=(Pa(),vi(Va)),FEs=el(),H6=Bn(),NVl=Bn(),x9t=sJ(),fre=($c(),vi(rg)),ZEs=G9t.__importDefault(Ek()),LEs=G9t.__importStar((CZ(),vi(mZ))),Xze=G9t.__importStar(k9t()),Jze=G9t.__importStar(rqr()),Uze=class extends FEs.BaseCommand{constructor(){super(...arguments),this.all=fre.Option.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"}),this.recursive=fre.Option.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"}),this.environment=fre.Option.String("--environment",Xze.Environment.All,{description:"Which environments to cover",validator:LEs.isEnum(Xze.Environment)}),this.json=fre.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.noDeprecations=fre.Option.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"}),this.severity=fre.Option.String("--severity",Xze.Severity.Info,{description:"Minimal severity requested for packages to be displayed",validator:LEs.isEnum(Xze.Severity)}),this.excludes=fre.Option.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"}),this.ignores=fre.Option.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await H6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await H6.Project.find(t,this.context.cwd);if(!n)throw new FEs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=Jze.getTopLevelDependencies(r,n,{all:this.all,environment:this.environment}),o=Jze.getPackages(r,a,{recursive:this.recursive}),l=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes])),A=Object.create(null);for(let[F,Q]of o)l.some(X=>ZEs.default.isMatch(F,X))||(A[F]=[...Q.keys()]);let f=x9t.npmConfigUtils.getAuditRegistry({configuration:t}),I,C=await H6.LightReport.start({configuration:t,stdout:this.context.stdout},async()=>{let F=x9t.npmHttpUtils.post("/-/npm/v1/security/advisories/bulk",A,{authType:x9t.npmHttpUtils.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:f}),Q=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(A),async([ae,ne])=>{let ce=await x9t.npmHttpUtils.getPackageMetadata(NVl.structUtils.parseIdent(ae),{project:r});return H6.miscUtils.mapAndFilter(ne,fe=>{let{deprecated:ue}=ce.versions[fe];return ue?[ae,fe,ue]:H6.miscUtils.mapAndFilter.skip})})),X=await F;for(let[ae,ne,ce]of Q.flat(1))Object.hasOwn(X,ae)&&X[ae].some(fe=>H6.semverUtils.satisfiesWithPrereleases(ne,fe.vulnerable_versions))||(X[ae]??=[],X[ae].push({id:`${ae} (deprecation)`,title:(typeof ce=="string"?ce:"").trim()||"This package has been deprecated.",severity:Xze.Severity.Moderate,vulnerable_versions:ne}));I=X});if(C.hasErrors())return C.exitCode();let b=Jze.getSeverityInclusions(this.severity),E=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores])),N=Object.create(null);for(let[F,Q]of Object.entries(I)){let X=Q.filter(ae=>!ZEs.default.isMatch(`${ae.id}`,E)&&b.has(ae.severity));X.length>0&&(N[F]=X.map(ae=>{let ne=o.get(F);if(typeof ne>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...ne.keys()].filter(ue=>H6.semverUtils.satisfiesWithPrereleases(ue,ae.vulnerable_versions)),fe=new Map;for(let ue of ce)for(let de of ne.get(ue))fe.set(de.locatorHash,de);return{...ae,versions:ce,dependents:[...fe.values()]}}))}let B=Object.keys(N).length>0;return B?(H6.treeUtils.emitTree(Jze.getReportTree(N),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await H6.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async F=>{F.reportInfo(H6.MessageName.EXCEPTION,"No audit suggestions")}),B?1:0)}};Uze.paths=[["npm","audit"]];Uze.usage=fre.Command.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`+o),e.push(a+"m+"+s9t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=EZl()+t+" "+e[0]}function EZl(){return wD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function SZl(...e){return process.stderr.write(i9t.formatWithOptions(wD.inspectOpts,...e)+` +`)}function vZl(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function BZl(){return process.env.DEBUG}function wZl(e){e.inspectOpts={};let t=Object.keys(wD.inspectOpts);for(let r=0;rt.trim()).join(" ")};ybs.O=function(e){return this.inspectOpts.colors=this.useColors,i9t.inspect(e,this.inspectOpts)}});var tzr=H((aag,ezr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ezr.exports=_bs():ezr.exports=bbs()});var a9t=H(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.DownloadHTTPError=nB.DownloadLengthMismatchError=nB.DownloadError=nB.ExpiredMetadataError=nB.EqualVersionError=nB.BadVersionError=nB.RepositoryError=nB.PersistError=nB.RuntimeError=nB.ValueError=void 0;var rzr=class extends Error{};nB.ValueError=rzr;var nzr=class extends Error{};nB.RuntimeError=nzr;var izr=class extends Error{};nB.PersistError=izr;var Vze=class extends Error{};nB.RepositoryError=Vze;var o9t=class extends Vze{};nB.BadVersionError=o9t;var szr=class extends o9t{};nB.EqualVersionError=szr;var ozr=class extends Vze{};nB.ExpiredMetadataError=ozr;var Pze=class extends Error{};nB.DownloadError=Pze;var azr=class extends Pze{};nB.DownloadLengthMismatchError=azr;var czr=class extends Pze{statusCode;constructor(t,r){super(t),this.statusCode=r}};nB.DownloadHTTPError=czr});var Sbs=H(kFe=>{"use strict";var uzr=kFe&&kFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kFe,"__esModule",{value:!0});kFe.withTempFile=void 0;var lzr=uzr(wt("fs/promises")),TZl=uzr(wt("os")),Ebs=uzr(wt("path")),RZl=async e=>NZl(async t=>e(Ebs.default.join(t,"tempfile")));kFe.withTempFile=RZl;var NZl=async e=>{let t=await lzr.default.realpath(TZl.default.tmpdir()),r=await lzr.default.mkdtemp(t+Ebs.default.sep);try{return await e(r)}finally{await lzr.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var Azr=H(que=>{"use strict";var l9t=que&&que.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(que,"__esModule",{value:!0});que.DefaultFetcher=que.BaseFetcher=void 0;var DZl=l9t(tzr()),vbs=l9t(wt("fs")),kZl=l9t(bLt()),xZl=l9t(wt("util")),Bbs=a9t(),GZl=Sbs(),FZl=(0,DZl.default)("tuf:fetch"),c9t=class{async downloadFile(t,r,n){return(0,GZl.withTempFile)(async a=>{let o=await this.fetch(t),l=0,A=vbs.default.createWriteStream(a);try{for await(let f of o){if(l+=f.length,l>r)throw new Bbs.DownloadLengthMismatchError("Max length reached");await ZZl(A,f)}}finally{await xZl.default.promisify(A.close).bind(A)()}return n(a)})}async downloadBytes(t,r){return this.downloadFile(t,r,async n=>{let a=vbs.default.createReadStream(n),o=[];for await(let l of a)o.push(l);return Buffer.concat(o)})}};que.BaseFetcher=c9t;var gzr=class extends c9t{timeout;retry;constructor(t={}){super(),this.timeout=t.timeout,this.retry=t.retry}async fetch(t){FZl("GET %s",t);let r=await(0,kZl.default)(t,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Bbs.DownloadHTTPError("Failed to download",r.status);return r.body}};que.DefaultFetcher=gzr;var ZZl=async(e,t)=>new Promise((r,n)=>{e.write(t,a=>{a&&n(a),r(!0)})})});var wbs=H(u9t=>{"use strict";Object.defineProperty(u9t,"__esModule",{value:!0});u9t.defaultConfig=void 0;u9t.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Tbs=H(g9t=>{"use strict";Object.defineProperty(g9t,"__esModule",{value:!0});g9t.TrustedMetadataStore=void 0;var wT=r9t(),OS=a9t(),dzr=class{trustedSet={};referenceTime;constructor(t){this.referenceTime=new Date,this.loadTrustedRoot(t)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(t){return this.trustedSet[t]}updateRoot(t){let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Root,r);if(n.signed.type!=wT.MetadataKind.Root)throw new OS.RepositoryError(`Expected 'root', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Root,n),n.signed.version!=this.root.signed.version+1)throw new OS.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${n.signed.version}`);return n.verifyDelegate(wT.MetadataKind.Root,n),this.trustedSet.root=n,n}updateTimestamp(t){if(this.snapshot)throw new OS.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new OS.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Timestamp,r);if(n.signed.type!=wT.MetadataKind.Timestamp)throw new OS.RepositoryError(`Expected 'timestamp', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Timestamp,n),this.timestamp){if(n.signed.version{let f=o.signed.meta[l];if(!f)throw new OS.RepositoryError(`Missing file ${l} in new snapshot`);if(f.version{"use strict";Object.defineProperty(pzr,"__esModule",{value:!0});pzr.join=VZl;var LZl=wt("url");function VZl(e,t){return new LZl.URL(PZl(e)+WZl(t)).toString()}function PZl(e){return e.endsWith("/")?e:e+"/"}function WZl(e){return e.startsWith("/")?e.slice(1):e}});var Nbs=H(qH=>{"use strict";var OZl=qH&&qH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),MZl=qH&&qH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hzr=qH&&qH.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{await t.verify(xFe.createReadStream(f)),fzr("WRITE %s",a),xFe.copyFileSync(f,a)}),a}async findCachedTarget(t,r){r||(r=this.generateTargetPath(t));try{if(xFe.existsSync(r))return await t.verify(xFe.createReadStream(r)),r}catch{return}}loadLocalMetadata(t){let r=A9t.join(this.dir,`${t}.json`);return fzr("READ %s",r),xFe.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,n=r+this.config.maxRootRotations;for(let a=r;a0;){let{roleName:a,parentRoleName:o}=r.pop();if(n.has(a))continue;let l=(await this.loadTargets(a,o))?.signed;if(!l)continue;let A=l.targets?.[t];if(A)return A;if(n.add(a),l.delegations){let f=[],I=l.delegations.rolesForTarget(t);for(let{role:C,terminating:b}of I)if(f.push({roleName:C,parentRoleName:a}),b){r.splice(0);break}f.reverse(),r.push(...f)}}}generateTargetPath(t){if(!this.targetDir)throw new X0e.ValueError("Target directory not set");let r=encodeURIComponent(t.path);return A9t.join(this.targetDir,r)}persistMetadata(t,r){let n=encodeURIComponent(t);try{let a=A9t.join(this.dir,`${n}.json`);fzr("WRITE %s",a),xFe.writeFileSync(a,r.toString("utf8"))}catch(a){throw new X0e.PersistError(`Failed to persist metadata ${n} error: ${a}`)}}};qH.Updater=Izr});var Dbs=H($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});$ue.Updater=$ue.BaseFetcher=$ue.TargetFile=void 0;var UZl=r9t();Object.defineProperty($ue,"TargetFile",{enumerable:!0,get:function(){return UZl.TargetFile}});var KZl=Azr();Object.defineProperty($ue,"BaseFetcher",{enumerable:!0,get:function(){return KZl.BaseFetcher}});var jZl=Nbs();Object.defineProperty($ue,"Updater",{enumerable:!0,get:function(){return jZl.Updater}})});var Czr=H(d9t=>{"use strict";Object.defineProperty(d9t,"__esModule",{value:!0});d9t.TUFError=void 0;var mzr=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}};d9t.TUFError=mzr});var kbs=H(Oze=>{"use strict";var zZl=Oze&&Oze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oze,"__esModule",{value:!0});Oze.readTarget=$Zl;var qZl=zZl(wt("fs")),p9t=Czr();async function $Zl(e,t){let r=await eLl(e,t);return new Promise((n,a)=>{qZl.default.readFile(r,"utf-8",(o,l)=>{o?a(new p9t.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:o})):n(l)})})}async function eLl(e,t){let r;try{r=await e.getTargetInfo(t)}catch(a){throw new p9t.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new p9t.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${t} not found`});let n=await e.findCachedTarget(r);if(!n)try{n=await e.downloadTarget(r)}catch(a){throw new p9t.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${n}`,cause:a})}return n}});var xbs=H((mag,tLl)=>{tLl.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiIgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGIwYmNmMTg5Y2UxYjkzZTdkYjk2NDlkNWJlNTEyYTE4ODBjMGUzNTg4NzBlMzkzM2U0MjZjNWFmYjhhNDA2MTAwMjIwNmQyMTRiZDc5YjA5ZjQ1OGNjYzUyMWEyOTBhYTk2MGM0MTcwMTRmYzE2ZTYwNmY4MjA5MWI1ZTMxODE0ODg2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIiIKICB9LAogIHsKICAgImtleWlkIjogIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAic2lnIjogIjMwNDUwMjIxMDBhOWI5ZTI5NGVjMjFiNjJkZmNhNmExNmExOWQwODQxODJjMTI1NzJlMzNkOWM0ZGNhYjUzMTdmYTFlOGE0NTlkMDIyMDY5ZjY4ZTU1ZWExZjk1YzVhMzY3YWFjN2E2MWE2NTc1N2Y5M2RhNWEwMDZhNWY0ZDFjZjk5NWJlODEyZDc2MDIiCiAgfSwKICB7CiAgICJrZXlpZCI6ICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIiwKICAgInNpZyI6ICIzMDQ0MDIyMDc4MTE3OGVjMzkxNWNiMTZhY2E3NTdkNDBlMjg0MzVhYzUzNzhkNmI0ODdhY2IxMTFkMWVlYjMzOTM5N2Y3OWEwMjIwNzgxY2NlNDhhZTQ2ZjllNDdiOTdhODQxNGZjZjQ2NmE5ODY3MjZhNTg5NmM3MmEwZTRhYmEzMTYyY2I4MjZkZCIKICB9CiBdLAogInNpZ25lZCI6IHsKICAiX3R5cGUiOiAicm9vdCIsCiAgImNvbnNpc3RlbnRfc25hcHNob3QiOiB0cnVlLAogICJleHBpcmVzIjogIjIwMjUtMDgtMTlUMTQ6MzM6MDlaIiwKICAia2V5cyI6IHsKICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6cHJvamVjdHMvc2lnc3RvcmUtcm9vdC1zaWduaW5nL2xvY2F0aW9ucy9nbG9iYWwva2V5UmluZ3Mvcm9vdC9jcnlwdG9LZXlzL3RpbWVzdGFtcC9jcnlwdG9LZXlWZXJzaW9ucy8xIgogICB9LAogICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXpCelZPbUhDUG9qTVZMU0kzNjRXaWlWOE5QckRcbjZJZ1J4Vmxpc2t6L3YreTNKRVI1bWNWR2NPTmxpRGNXTUM1SjJsZkhtalBOUGhiNEg3eG04THpmU0E9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAc2FudGlhZ290b3JyZXMiCiAgIH0sCiAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaW5pa1NzQVFtWWtOZUg1ZVlxL0NuSXpMYWFjT1xueGxTYWF3UURPd3FLeS90Q3F4cTV4eFBTSmMyMUs0V0loczlHeU9rS2Z6dWVZM0dJTHpjTUpaNGNXdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBib2JjYWxsYXdheSIKICAgfSwKICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV5OFhLc21oQllESThKYzBHd3pCeGVLYXgwY201XG5TVEtFVTY1SFBGdW5VbjQxc1Q4cGkwRmpNNElrSHovWVVtd21MVU8wV3Q3bHhoajZCa0xJSzRxWUF3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGRsb3JlbmMiCiAgIH0sCiAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFMGdocmg5Mkx3MVlyM2lkR1Y1V3FDdE1EQjhDeFxuK0Q4aGRDNHcyWkxOSXBsVlJvVkdMc2tZYTNnaGVNeU9qaUo4a1BpMTVhUTIvLzdQK29qN1V2SlBHdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBqb3NodWFnbCIKICAgfSwKICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVFWHN6M1NaWEZiOGpNVjQyajZwSmx5amJqUjhLXG5OM0J3b2NleHE2TE1JYjVxc1dLT1F2TE4xNk5VZWZMYzRIc3dPb3VtUnNWVmFhalNwUVM2Zm9ia1J3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQG1ubTY3OCIKICAgfQogIH0sCiAgInJvbGVzIjogewogICAicm9vdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiLAogICAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIiwKICAgICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiIsCiAgICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAzCiAgIH0sCiAgICJzbmFwc2hvdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDM2NTAsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiAzNjUKICAgfSwKICAgInRhcmdldHMiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAidGltZXN0YW1wIjogewogICAgImtleWlkcyI6IFsKICAgICAiMGM4NzQzMmMzYmYwOWZkOTkxODlmZGMzMmZhNWVhZWRmNGU0YTVmYWM3YmFiNzNmYTA0YTJlMGZjNjRhZjZmNSIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMSwKICAgICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogNywKICAgICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDYKICAgfQogIH0sCiAgInNwZWNfdmVyc2lvbiI6ICIxLjAiLAogICJ2ZXJzaW9uIjogMTIsCiAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAxOTcsCiAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogNDYKIH0KfQ==",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXQp9Cg==","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var Fbs=H(GFe=>{"use strict";var Gbs=GFe&&GFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GFe,"__esModule",{value:!0});GFe.TUFClient=void 0;var ege=Gbs(wt("fs")),Mze=Gbs(wt("path")),rLl=Dbs(),nLl=f9t(),iLl=kbs(),yzr="targets",_zr=class{constructor(t){let r=new URL(t.mirrorURL),n=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=Mze.default.join(t.cachePath,n);sLl(a),oLl({cachePath:a,mirrorURL:t.mirrorURL,tufRootPath:t.rootPath,forceInit:t.forceInit}),this.updater=aLl({mirrorURL:t.mirrorURL,cachePath:a,forceCache:t.forceCache,retry:t.retry,timeout:t.timeout})}async refresh(){return this.updater.refresh()}getTarget(t){return(0,iLl.readTarget)(this.updater,t)}};GFe.TUFClient=_zr;function sLl(e){let t=Mze.default.join(e,yzr);ege.default.existsSync(e)||ege.default.mkdirSync(e,{recursive:!0}),ege.default.existsSync(t)||ege.default.mkdirSync(t)}function oLl({cachePath:e,mirrorURL:t,tufRootPath:r,forceInit:n}){let a=Mze.default.join(e,"root.json");if(!ege.default.existsSync(a)||n)if(r)ege.default.copyFileSync(r,a);else{let l=xbs()[t];if(!l)throw new nLl.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${t}`});ege.default.writeFileSync(a,Buffer.from(l["root.json"],"base64")),Object.entries(l.targets).forEach(([A,f])=>{ege.default.writeFileSync(Mze.default.join(e,yzr,A),Buffer.from(f,"base64"))})}}function aLl(e){let t={fetchTimeout:e.timeout,fetchRetry:e.retry};return new rLl.Updater({metadataBaseUrl:e.mirrorURL,targetBaseUrl:`${e.mirrorURL}/targets`,metadataDir:e.cachePath,targetDir:Mze.default.join(e.cachePath,yzr),forceCache:e.forceCache,config:t})}});var f9t=H(dre=>{"use strict";Object.defineProperty(dre,"__esModule",{value:!0});dre.TUFError=dre.DEFAULT_MIRROR_URL=void 0;dre.getTrustedRoot=fLl;dre.initTUF=ILl;var cLl=b7e(),lLl=_ys(),uLl=Fbs();dre.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var gLl="sigstore-js",ALl={retries:2},dLl=5e3,pLl="trusted_root.json";async function fLl(e={}){let r=await Zbs(e).getTarget(pLl);return cLl.TrustedRoot.fromJSON(JSON.parse(r))}async function ILl(e={}){let t=Zbs(e);return t.refresh().then(()=>t)}function Zbs(e){return new uLl.TUFClient({cachePath:e.cachePath||(0,lLl.appDataPath)(gLl),rootPath:e.rootPath,mirrorURL:e.mirrorURL||dre.DEFAULT_MIRROR_URL,retry:e.retry??ALl,timeout:e.timeout??dLl,forceCache:e.forceCache??!1,forceInit:e.forceInit??e.force??!1})}var hLl=Czr();Object.defineProperty(dre,"TUFError",{enumerable:!0,get:function(){return hLl.TUFError}})});var Lbs=H(I9t=>{"use strict";Object.defineProperty(I9t,"__esModule",{value:!0});I9t.DSSESignatureContent=void 0;var Hze=jV(),bzr=class{constructor(t){this.env=t}compareDigest(t){return Hze.crypto.bufferEqual(t,Hze.crypto.digest("sha256",this.env.payload))}compareSignature(t){return Hze.crypto.bufferEqual(t,this.signature)}verifySignature(t){return Hze.crypto.verify(this.preAuthEncoding,t,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return Hze.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};I9t.DSSESignatureContent=bzr});var Vbs=H(h9t=>{"use strict";Object.defineProperty(h9t,"__esModule",{value:!0});h9t.MessageSignatureContent=void 0;var Ezr=jV(),Szr=class{constructor(t,r){this.signature=t.signature,this.messageDigest=t.messageDigest.digest,this.artifact=r}compareSignature(t){return Ezr.crypto.bufferEqual(t,this.signature)}compareDigest(t){return Ezr.crypto.bufferEqual(t,this.messageDigest)}verifySignature(t){return Ezr.crypto.verify(this.artifact,t,this.signature)}};h9t.MessageSignatureContent=Szr});var Wbs=H(m9t=>{"use strict";Object.defineProperty(m9t,"__esModule",{value:!0});m9t.toSignedEntity=_Ll;m9t.signatureContent=Pbs;var vzr=jV(),mLl=Lbs(),CLl=Vbs();function _Ll(e,t){let{tlogEntries:r,timestampVerificationData:n}=e.verificationMaterial,a=[];for(let o of r)a.push({$case:"transparency-log",tlogEntry:o});for(let o of n?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:vzr.RFC3161Timestamp.parse(o.signedTimestamp)});return{signature:Pbs(e,t),key:yLl(e),tlogEntries:r,timestamps:a}}function Pbs(e,t){switch(e.content.$case){case"dsseEnvelope":return new mLl.DSSESignatureContent(e.content.dsseEnvelope);case"messageSignature":return new CLl.MessageSignatureContent(e.content.messageSignature,t)}}function yLl(e){switch(e.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:e.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.certificate.rawBytes)}}}});var Ix=H(FFe=>{"use strict";Object.defineProperty(FFe,"__esModule",{value:!0});FFe.PolicyError=FFe.VerificationError=void 0;var C9t=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}},Bzr=class extends C9t{};FFe.VerificationError=Bzr;var wzr=class extends C9t{};FFe.PolicyError=wzr});var Obs=H(_9t=>{"use strict";Object.defineProperty(_9t,"__esModule",{value:!0});_9t.filterCertAuthorities=bLl;_9t.filterTLogAuthorities=ELl;function bLl(e,t){return e.filter(r=>r.validFor.start<=t&&r.validFor.end>=t)}function ELl(e,t){return e.filter(r=>t.logID&&!r.logID.equals(t.logID)?!1:r.validFor.start<=t.targetDate&&t.targetDate<=r.validFor.end)}});var U0e=H(J0e=>{"use strict";Object.defineProperty(J0e,"__esModule",{value:!0});J0e.filterTLogAuthorities=J0e.filterCertAuthorities=void 0;J0e.toTrustMaterial=vLl;var Tzr=jV(),Yze=b7e(),SLl=Ix(),Rzr=new Date(0),Nzr=new Date(864e13),Ybs=Obs();Object.defineProperty(J0e,"filterCertAuthorities",{enumerable:!0,get:function(){return Ybs.filterCertAuthorities}});Object.defineProperty(J0e,"filterTLogAuthorities",{enumerable:!0,get:function(){return Ybs.filterTLogAuthorities}});function vLl(e,t){let r=typeof t=="function"?t:BLl(t);return{certificateAuthorities:e.certificateAuthorities.map(Hbs),timestampAuthorities:e.timestampAuthorities.map(Hbs),tlogs:e.tlogs.map(Mbs),ctlogs:e.ctlogs.map(Mbs),publicKey:r}}function Mbs(e){let t=e.publicKey.keyDetails,r=t===Yze.PublicKeyDetails.PKCS1_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:e.logId.keyId,publicKey:Tzr.crypto.createPublicKey(e.publicKey.rawBytes,r),validFor:{start:e.publicKey.validFor?.start||Rzr,end:e.publicKey.validFor?.end||Nzr}}}function Hbs(e){return{certChain:e.certChain.certificates.map(t=>Tzr.X509Certificate.parse(t.rawBytes)),validFor:{start:e.validFor?.start||Rzr,end:e.validFor?.end||Nzr}}}function BLl(e){return t=>{let r=(e||{})[t];if(!r)throw new SLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:Tzr.crypto.createPublicKey(r.rawBytes),validFor:n=>(r.validFor?.start||Rzr)<=n&&(r.validFor?.end||Nzr)>=n}}}});var Dzr=H(Qze=>{"use strict";Object.defineProperty(Qze,"__esModule",{value:!0});Qze.CertificateChainVerifier=void 0;Qze.verifyCertificateChain=TLl;var tge=Ix(),wLl=U0e();function TLl(e,t,r){let n=(0,wLl.filterCertAuthorities)(r,e),a;for(let o of n)try{return new y9t({trustedCerts:o.certChain,untrustedCert:t,timestamp:e}).verify()}catch(l){a=l}throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:a})}var y9t=class{constructor(t){this.untrustedCert=t.untrustedCert,this.trustedCerts=t.trustedCerts,this.localCerts=RLl([...t.trustedCerts,t.untrustedCert]),this.timestamp=t.timestamp}verify(){let t=this.sort();if(this.checkPath(t),!t.every(n=>n.validForDate(this.timestamp)))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return t}sort(){let t=this.untrustedCert,r=this.buildPaths(t);if(r=r.filter(a=>a.some(o=>this.trustedCerts.includes(o))),r.length===0)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let n=r.reduce((a,o)=>a.length{if(n&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(n)&&r.push(a);return}a.subject.equals(t.issuer)&&r.push(a)}),r=r.filter(a=>{try{return t.verify(a)}catch{return!1}}),r)}checkPath(t){if(t.length<1)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!t.slice(1).every(n=>n.isCA))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let n=t.length-2;n>=0;n--)if(!t[n].issuer.equals(t[n+1].subject))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let n=0;n{"use strict";Object.defineProperty(kzr,"__esModule",{value:!0});kzr.verifySCTs=kLl;var b9t=jV(),NLl=Ix(),DLl=U0e();function kLl(e,t,r){let n,a=e.clone();for(let f=0;f{if(!(0,DLl.filterTLogAuthorities)(r,{logID:f.logID,targetDate:f.datetime}).some(b=>f.verify(o.buffer,b.publicKey)))throw new NLl.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return f.logID})}});var Xbs=H(E9t=>{"use strict";Object.defineProperty(E9t,"__esModule",{value:!0});E9t.verifyPublicKey=PLl;E9t.verifyCertificate=WLl;var xLl=jV(),GLl=Ix(),FLl=Dzr(),ZLl=Qbs(),LLl="1.3.6.1.4.1.57264.1.1",VLl="1.3.6.1.4.1.57264.1.8";function PLl(e,t,r){let n=r.publicKey(e);return t.forEach(a=>{if(!n.validFor(a))throw new GLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:n.publicKey}}function WLl(e,t,r){let n=[];return t.forEach(a=>{n=(0,FLl.verifyCertificateChain)(a,e,r.certificateAuthorities)}),{scts:(0,ZLl.verifySCTs)(n[0],n[1],r.ctlogs),signer:OLl(n[0])}}function OLl(e){let t,r=e.extension(VLl);r?t=r.valueObj.subs?.[0]?.value.toString("ascii"):t=e.extension(LLl)?.value.toString("ascii");let n={extensions:{issuer:t},subjectAlternativeName:e.subjectAltName};return{key:xLl.crypto.createPublicKey(e.publicKey),identity:n}}});var Ubs=H(S9t=>{"use strict";Object.defineProperty(S9t,"__esModule",{value:!0});S9t.verifySubjectAlternativeName=MLl;S9t.verifyExtensions=HLl;var Jbs=Ix();function MLl(e,t){if(t===void 0||!t.match(e))throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${e}, got ${t}`})}function HLl(e,t={}){let r;for(r in e)if(t[r]!==e[r])throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${e[r]}, got ${r}=${t[r]}`})}});var Kbs=H(Lzr=>{"use strict";Object.defineProperty(Lzr,"__esModule",{value:!0});Lzr.verifyCheckpoint=XLl;var Gzr=jV(),ZFe=Ix(),YLl=U0e(),xzr=` + +`,QLl=/\u2014 (\S+) (\S+)\n/g;function XLl(e,t){let r=(0,YLl.filterTLogAuthorities)(t,{targetDate:new Date(Number(e.integratedTime)*1e3)}),n=e.inclusionProof,a=Fzr.fromString(n.checkpoint.envelope),o=Zzr.fromString(a.note);if(!JLl(a,r))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!Gzr.crypto.bufferEqual(o.logHash,n.rootHash))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function JLl(e,t){let r=Buffer.from(e.note,"utf-8");return e.signatures.every(n=>{let a=t.find(o=>Gzr.crypto.bufferEqual(o.logID.subarray(0,4),n.keyHint));return a?Gzr.crypto.verify(r,a.publicKey,n.signature):!1})}var Fzr=class e{constructor(t,r){this.note=t,this.signatures=r}static fromString(t){if(!t.includes(xzr))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=t.indexOf(xzr),n=t.slice(0,r+1),o=t.slice(r+xzr.length).matchAll(QLl),l=Array.from(o,A=>{let[,f,I]=A,C=Buffer.from(I,"base64");if(C.length<5)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:f,keyHint:C.subarray(0,4),signature:C.subarray(4)}});if(l.length===0)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new e(n,l)}},Zzr=class e{constructor(t,r,n,a){this.origin=t,this.logSize=r,this.logHash=n,this.rest=a}static fromString(t){let r=t.trimEnd().split(` +`);if(r.length<3)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let n=r[0],a=BigInt(r[1]),o=Buffer.from(r[2],"base64"),l=r.slice(3);return new e(n,a,o,l)}}});var jbs=H(Ozr=>{"use strict";Object.defineProperty(Ozr,"__esModule",{value:!0});Ozr.verifyMerkleInclusion=jLl;var Wzr=jV(),Vzr=Ix(),ULl=Buffer.from([0]),KLl=Buffer.from([1]);function jLl(e){let t=e.inclusionProof,r=BigInt(t.logIndex),n=BigInt(t.treeSize);if(r<0n||r>=n)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:o}=zLl(r,n);if(t.hashes.length!==a+o)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let l=t.hashes.slice(0,a),A=t.hashes.slice(a),f=n9l(e.canonicalizedBody),I=$Ll(qLl(f,l,r),A);if(!Wzr.crypto.bufferEqual(I,t.rootHash))throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function zLl(e,t){let r=e9l(e,t),n=t9l(e>>BigInt(r));return{inner:r,border:n}}function qLl(e,t,r){return t.reduce((n,a,o)=>r>>BigInt(o)&BigInt(1)?Pzr(a,n):Pzr(n,a),e)}function $Ll(e,t){return t.reduce((r,n)=>Pzr(n,r),e)}function e9l(e,t){return r9l(e^t-BigInt(1))}function t9l(e){return e.toString(2).split("1").length-1}function r9l(e){return e===0n?0:e.toString(2).length}function Pzr(e,t){return Wzr.crypto.digest("sha256",KLl,e,t)}function n9l(e){return Wzr.crypto.digest("sha256",ULl,e)}});var qbs=H(Mzr=>{"use strict";Object.defineProperty(Mzr,"__esModule",{value:!0});Mzr.verifyTLogSET=o9l;var zbs=jV(),i9l=Ix(),s9l=U0e();function o9l(e,t){if(!(0,s9l.filterTLogAuthorities)(t,{logID:e.logId.keyId,targetDate:new Date(Number(e.integratedTime)*1e3)}).some(a=>{let o=a9l(e),l=Buffer.from(zbs.json.canonicalize(o),"utf8"),A=e.inclusionPromise.signedEntryTimestamp;return zbs.crypto.verify(l,a.publicKey,A)}))throw new i9l.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function a9l(e){let{integratedTime:t,logIndex:r,logId:n,canonicalizedBody:a}=e;return{body:a.toString("base64"),integratedTime:Number(t),logIndex:Number(r),logID:n.keyId.toString("hex")}}});var eEs=H(Yzr=>{"use strict";Object.defineProperty(Yzr,"__esModule",{value:!0});Yzr.verifyRFC3161Timestamp=u9l;var Hzr=jV(),$bs=Ix(),c9l=Dzr(),l9l=U0e();function u9l(e,t,r){let n=e.signingTime;if(r=(0,l9l.filterCertAuthorities)(r,n),r=A9l(r,{serialNumber:e.signerSerialNumber,issuer:e.signerIssuer}),!r.some(o=>{try{return g9l(e,t,o),!0}catch{return!1}}))throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function g9l(e,t,r){let[n,...a]=r.certChain,o=Hzr.crypto.createPublicKey(n.publicKey),l=e.signingTime;try{new c9l.CertificateChainVerifier({untrustedCert:n,trustedCerts:a,timestamp:l}).verify()}catch{throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}e.verify(t,o)}function A9l(e,t){return e.filter(r=>r.certChain.length>0&&Hzr.crypto.bufferEqual(r.certChain[0].serialNumber,t.serialNumber)&&Hzr.crypto.bufferEqual(r.certChain[0].issuer,t.issuer))}});var tEs=H(v9t=>{"use strict";Object.defineProperty(v9t,"__esModule",{value:!0});v9t.verifyTSATimestamp=m9l;v9t.verifyTLogTimestamp=C9l;var d9l=Ix(),p9l=Kbs(),f9l=jbs(),I9l=qbs(),h9l=eEs();function m9l(e,t,r){return(0,h9l.verifyRFC3161Timestamp)(e,t,r),{type:"timestamp-authority",logID:e.signerSerialNumber,timestamp:e.signingTime}}function C9l(e,t){let r=!1;if(_9l(e)&&((0,I9l.verifyTLogSET)(e,t),r=!0),y9l(e)&&((0,f9l.verifyMerkleInclusion)(e),(0,p9l.verifyCheckpoint)(e,t),r=!0),!r)throw new d9l.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:e.logId.keyId,timestamp:new Date(Number(e.integratedTime)*1e3)}}function _9l(e){return e.inclusionPromise!==void 0}function y9l(e){return e.inclusionProof!==void 0}});var rEs=H(Qzr=>{"use strict";Object.defineProperty(Qzr,"__esModule",{value:!0});Qzr.verifyDSSETLogBody=b9l;var B9t=Ix();function b9l(e,t){switch(e.apiVersion){case"0.0.1":return E9l(e,t);default:throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${e.apiVersion}`})}}function E9l(e,t){if(e.spec.signatures?.length!==1)throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=e.spec.signatures[0].signature;if(!t.compareSignature(Buffer.from(r,"base64")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var nEs=H(Jzr=>{"use strict";Object.defineProperty(Jzr,"__esModule",{value:!0});Jzr.verifyHashedRekordTLogBody=S9l;var Xzr=Ix();function S9l(e,t){switch(e.apiVersion){case"0.0.1":return v9l(e,t);default:throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${e.apiVersion}`})}}function v9l(e,t){let r=e.spec.signature.content||"";if(!t.compareSignature(Buffer.from(r,"base64")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let n=e.spec.data.hash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var iEs=H(Uzr=>{"use strict";Object.defineProperty(Uzr,"__esModule",{value:!0});Uzr.verifyIntotoTLogBody=B9l;var w9t=Ix();function B9l(e,t){switch(e.apiVersion){case"0.0.2":return w9l(e,t);default:throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${e.apiVersion}`})}}function w9l(e,t){if(e.spec.content.envelope.signatures?.length!==1)throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=T9l(e.spec.content.envelope.signatures[0].sig);if(!t.compareSignature(Buffer.from(r,"base64")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.content.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function T9l(e){return Buffer.from(e,"base64").toString("utf-8")}});var oEs=H(Kzr=>{"use strict";Object.defineProperty(Kzr,"__esModule",{value:!0});Kzr.verifyTLogBody=k9l;var sEs=Ix(),R9l=rEs(),N9l=nEs(),D9l=iEs();function k9l(e,t){let{kind:r,version:n}=e.kindVersion,a=JSON.parse(e.canonicalizedBody.toString("utf8"));if(r!==a.kind||n!==a.apiVersion)throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${n}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,R9l.verifyDSSETLogBody)(a,t);case"intoto":return(0,D9l.verifyIntotoTLogBody)(a,t);case"hashedrekord":return(0,N9l.verifyHashedRekordTLogBody)(a,t);default:throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var gEs=H(T9t=>{"use strict";Object.defineProperty(T9t,"__esModule",{value:!0});T9t.Verifier=void 0;var x9l=wt("util"),LFe=Ix(),aEs=Xbs(),cEs=Ubs(),lEs=tEs(),G9l=oEs(),jzr=class{constructor(t,r={}){this.trustMaterial=t,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(t,r){let n=this.verifyTimestamps(t),a=this.verifySigningKey(t,n);return this.verifyTLogs(t),this.verifySignature(t,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(t){let r=0,n=0,a=t.timestamps.map(o=>{switch(o.$case){case"timestamp-authority":return n++,(0,lEs.verifyTSATimestamp)(o.timestamp,t.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,lEs.verifyTLogTimestamp)(o.tlogEntry,this.trustMaterial.tlogs)}});if(uEs(a))throw new LFe.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(ro.timestamp)}verifySigningKey({key:t},r){switch(t.$case){case"public-key":return(0,aEs.verifyPublicKey)(t.hint,r,this.trustMaterial);case"certificate":{let n=(0,aEs.verifyCertificate)(t.certificate,r,this.trustMaterial);if(uEs(n.scts))throw new LFe.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(n.scts.length(0,G9l.verifyTLogBody)(n,t))}verifySignature(t,r){if(!t.signature.verifySignature(r.key))throw new LFe.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(t,r){t.subjectAlternativeName&&(0,cEs.verifySubjectAlternativeName)(t.subjectAlternativeName,r.subjectAlternativeName),t.extensions&&(0,cEs.verifyExtensions)(t.extensions,r.extensions)}};T9t.Verifier=jzr;function uEs(e){for(let t=0;t{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.Verifier=$H.toTrustMaterial=$H.VerificationError=$H.PolicyError=$H.toSignedEntity=void 0;var F9l=Wbs();Object.defineProperty($H,"toSignedEntity",{enumerable:!0,get:function(){return F9l.toSignedEntity}});var AEs=Ix();Object.defineProperty($H,"PolicyError",{enumerable:!0,get:function(){return AEs.PolicyError}});Object.defineProperty($H,"VerificationError",{enumerable:!0,get:function(){return AEs.VerificationError}});var Z9l=U0e();Object.defineProperty($H,"toTrustMaterial",{enumerable:!0,get:function(){return Z9l.toTrustMaterial}});var L9l=gEs();Object.defineProperty($H,"Verifier",{enumerable:!0,get:function(){return L9l.Verifier}})});var dEs=H(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.DEFAULT_TIMEOUT=mL.DEFAULT_RETRY=void 0;mL.createBundleBuilder=W9l;mL.createKeyFinder=O9l;mL.createVerificationPolicy=M9l;var V9l=jV(),VFe=l7r(),P9l=R9t();mL.DEFAULT_RETRY={retries:2};mL.DEFAULT_TIMEOUT=5e3;function W9l(e,t){let r={signer:H9l(t),witnesses:Q9l(t)};switch(e){case"messageSignature":return new VFe.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new VFe.DSSEBundleBuilder({...r,certificateChain:t.legacyCompatibility})}}function O9l(e){return t=>{let r=e(t);if(!r)throw new P9l.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:V9l.crypto.createPublicKey(r),validFor:()=>!0}}}function M9l(e){let t={},r=e.certificateIdentityEmail||e.certificateIdentityURI;return r&&(t.subjectAlternativeName=r),e.certificateIssuer&&(t.extensions={issuer:e.certificateIssuer}),t}function H9l(e){return new VFe.FulcioSigner({fulcioBaseURL:e.fulcioURL,identityProvider:e.identityProvider||Y9l(e),retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})}function Y9l(e){let t=e.identityToken;return t?{getToken:()=>Promise.resolve(t)}:new VFe.CIContextProvider("sigstore")}function Q9l(e){let t=[];return X9l(e)&&t.push(new VFe.RekorWitness({rekorBaseURL:e.rekorURL,entryType:e.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),J9l(e)&&t.push(new VFe.TSAWitness({tsaBaseURL:e.tsaServerURL,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),t}function X9l(e){return e.tlogUpload!==!1}function J9l(e){return e.tsaServerURL!==void 0}});var IEs=H(eY=>{"use strict";var U9l=eY&&eY.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),K9l=eY&&eY.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pEs=eY&&eY.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aa.verify(e,n))}async function fEs(e={}){let t=await j9l.getTrustedRoot({mirrorURL:e.tufMirrorURL,rootPath:e.tufRootPath,cachePath:e.tufCachePath,forceCache:e.tufForceCache,retry:e.retry??PFe.DEFAULT_RETRY,timeout:e.timeout??PFe.DEFAULT_TIMEOUT}),r=e.keySelector?PFe.createKeyFinder(e.keySelector):void 0,n=(0,zzr.toTrustMaterial)(t,r),a={ctlogThreshold:e.ctLogThreshold,tlogThreshold:e.tlogThreshold},o=new zzr.Verifier(n,a),l=PFe.createVerificationPolicy(e);return{verify:(A,f)=>{let I=(0,qzr.bundleFromJSON)(A),C=(0,zzr.toSignedEntity)(I,f);o.verify(C,l)}}}});var mEs=H(O2=>{"use strict";Object.defineProperty(O2,"__esModule",{value:!0});O2.verify=O2.sign=O2.createVerifier=O2.attest=O2.VerificationError=O2.PolicyError=O2.TUFError=O2.InternalError=O2.DEFAULT_REKOR_URL=O2.DEFAULT_FULCIO_URL=O2.ValidationError=void 0;var eVl=S7e();Object.defineProperty(O2,"ValidationError",{enumerable:!0,get:function(){return eVl.ValidationError}});var $zr=l7r();Object.defineProperty(O2,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_FULCIO_URL}});Object.defineProperty(O2,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_REKOR_URL}});Object.defineProperty(O2,"InternalError",{enumerable:!0,get:function(){return $zr.InternalError}});var tVl=f9t();Object.defineProperty(O2,"TUFError",{enumerable:!0,get:function(){return tVl.TUFError}});var hEs=R9t();Object.defineProperty(O2,"PolicyError",{enumerable:!0,get:function(){return hEs.PolicyError}});Object.defineProperty(O2,"VerificationError",{enumerable:!0,get:function(){return hEs.VerificationError}});var N9t=IEs();Object.defineProperty(O2,"attest",{enumerable:!0,get:function(){return N9t.attest}});Object.defineProperty(O2,"createVerifier",{enumerable:!0,get:function(){return N9t.createVerifier}});Object.defineProperty(O2,"sign",{enumerable:!0,get:function(){return N9t.sign}});Object.defineProperty(O2,"verify",{enumerable:!0,get:function(){return N9t.verify}})});var CEs=H(D9t=>{"use strict";Object.defineProperty(D9t,"__esModule",{value:!0});D9t.generateProvenance=void 0;var rVl=(Pa(),vi(Va)),WFe=Bn(),nVl=rVl.__importStar(mEs()),{env:zc}=process,iVl="application/vnd.in-toto+json",sVl="https://in-toto.io/Statement/v0.1",oVl="https://in-toto.io/Statement/v1",aVl="https://slsa.dev/provenance/v0.2",cVl="https://slsa.dev/provenance/v1",lVl="https://github.com/actions/runner",uVl="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",gVl="https://github.com/npm/cli/gitlab",AVl="v0alpha1",dVl=async(e,t)=>{let r;if(zc.GITHUB_ACTIONS){if(!zc.ACTIONS_ID_TOKEN_REQUEST_URL)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let n=(zc.GITHUB_WORKFLOW_REF||"").replace(`${zc.GITHUB_REPOSITORY}/`,""),a=n.indexOf("@"),o=n.slice(0,a),l=n.slice(a+1);r={_type:oVl,subject:e,predicateType:cVl,predicate:{buildDefinition:{buildType:uVl,externalParameters:{workflow:{ref:l,repository:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}`,path:o}},internalParameters:{github:{event_name:zc.GITHUB_EVENT_NAME,repository_id:zc.GITHUB_REPOSITORY_ID,repository_owner_id:zc.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}@${zc.GITHUB_REF}`,digest:{gitCommit:zc.GITHUB_SHA}}]},runDetails:{builder:{id:`${lVl}/${zc.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}/actions/runs/${zc.GITHUB_RUN_ID}/attempts/${zc.GITHUB_RUN_ATTEMPT}`}}}}}else if(zc.GITLAB_CI){if(!zc.SIGSTORE_ID_TOKEN)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: +https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:sVl,subject:e,predicateType:aVl,predicate:{buildType:`${gVl}/${AVl}`,builder:{id:`${zc.CI_PROJECT_URL}/-/runners/${zc.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA},entryPoint:zc.CI_JOB_NAME},parameters:{CI:zc.CI,CI_API_GRAPHQL_URL:zc.CI_API_GRAPHQL_URL,CI_API_V4_URL:zc.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:zc.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:zc.CI_BUILD_ID,CI_BUILD_NAME:zc.CI_BUILD_NAME,CI_BUILD_REF:zc.CI_BUILD_REF,CI_BUILD_REF_NAME:zc.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:zc.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:zc.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:zc.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:zc.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:zc.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:zc.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:zc.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:zc.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:zc.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:zc.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:zc.CI_COMMIT_TITLE,CI_CONFIG_PATH:zc.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:zc.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:zc.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:zc.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:zc.CI_JOB_ID,CI_JOB_NAME:zc.CI_JOB_NAME,CI_JOB_NAME_SLUG:zc.CI_JOB_NAME_SLUG,CI_JOB_STAGE:zc.CI_JOB_STAGE,CI_JOB_STARTED_AT:zc.CI_JOB_STARTED_AT,CI_JOB_URL:zc.CI_JOB_URL,CI_NODE_TOTAL:zc.CI_NODE_TOTAL,CI_PAGES_DOMAIN:zc.CI_PAGES_DOMAIN,CI_PAGES_URL:zc.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:zc.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:zc.CI_PIPELINE_ID,CI_PIPELINE_IID:zc.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:zc.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:zc.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:zc.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:zc.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:zc.CI_PROJECT_ID,CI_PROJECT_NAME:zc.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:zc.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:zc.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:zc.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:zc.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:zc.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:zc.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:zc.CI_PROJECT_TITLE,CI_PROJECT_URL:zc.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:zc.CI_PROJECT_VISIBILITY,CI_REGISTRY:zc.CI_REGISTRY,CI_REGISTRY_IMAGE:zc.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:zc.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:zc.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:zc.CI_RUNNER_ID,CI_RUNNER_TAGS:zc.CI_RUNNER_TAGS,CI_SERVER_HOST:zc.CI_SERVER_HOST,CI_SERVER_NAME:zc.CI_SERVER_NAME,CI_SERVER_PORT:zc.CI_SERVER_PORT,CI_SERVER_PROTOCOL:zc.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:zc.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:zc.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:zc.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:zc.CI_SERVER_URL,CI_SERVER_VERSION:zc.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:zc.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:zc.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:zc.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:zc.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:zc.GITLAB_CI,GITLAB_FEATURES:zc.GITLAB_FEATURES,GITLAB_USER_ID:zc.GITLAB_USER_ID,GITLAB_USER_LOGIN:zc.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:zc.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:zc.CI_RUNNER_DESCRIPTION,architecture:zc.CI_RUNNER_EXECUTABLE_ARCH,server:zc.CI_SERVER_URL,project:zc.CI_PROJECT_PATH,job:{id:zc.CI_JOB_ID},pipeline:{id:zc.CI_PIPELINE_ID,ref:zc.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${zc.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA}}]}}}else throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,"Provenance generation is only supported in GitHub Actions and GitLab CI");return nVl.attest(Buffer.from(JSON.stringify(r)),iVl,t)};D9t.generateProvenance=dVl});var SEs=H(OFe=>{"use strict";Object.defineProperty(OFe,"__esModule",{value:!0});OFe.makePublishBody=_Vl;OFe.getGitHead=yVl;OFe.getPublishAccess=bEs;OFe.getReadmeContent=EEs;var pVl=(Pa(),vi(Va)),fVl=Bn(),yEs=Bn(),_Es=no(),IVl=$he(),hVl=pVl.__importDefault(Jte()),mVl=c0e(),CVl=CEs();async function _Vl(e,t,{access:r,tag:n,registry:a,gitHead:o,provenance:l}){let A=e.manifest.name,f=e.manifest.version,I=yEs.structUtils.stringifyIdent(A),C=hVl.default.fromData(t,{algorithms:["sha1","sha512"]}),b=r??bEs(e,A),E=await EEs(e),N=await IVl.packUtils.genPackageManifest(e),B=`${I}-${f}.tgz`,F=new URL(`${(0,mVl.normalizeRegistry)(a)}/${I}/-/${B}`),Q={[B]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}};if(l){let X={name:`pkg:npm/${I.replace(/^@/,"%40")}@${f}`,digest:{sha512:C.sha512[0].hexDigest()}},ae=await(0,CVl.generateProvenance)([X]),ne=JSON.stringify(ae);Q[`${I}-${f}.sigstore`]={content_type:ae.mediaType,data:ne,length:ne.length}}return{_id:I,_attachments:Q,name:I,access:b,"dist-tags":{[n]:f},versions:{[f]:{...N,_id:`${I}@${f}`,name:I,version:f,gitHead:o,dist:{shasum:C.sha1[0].hexDigest(),integrity:C.sha512[0].toString(),tarball:F.toString()}}},readme:E}}async function yVl(e){try{let{stdout:t}=await fVl.execUtils.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:e});return t.trim()===""?void 0:t.trim()}catch{return}}function bEs(e,t){let r=e.project.configuration;return e.manifest.publishConfig&&typeof e.manifest.publishConfig.access=="string"?e.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):t.scope?"restricted":"public"}async function EEs(e){let t=_Es.npath.toPortablePath(`${e.cwd}/README.md`),r=e.manifest.name,a=`# ${yEs.structUtils.stringifyIdent(r)} +`;try{a=await _Es.xfs.readFilePromise(t,"utf8")}catch(o){if(o.code==="ENOENT")return a;throw o}return a}});var sJ=H(QR=>{"use strict";Object.defineProperty(QR,"__esModule",{value:!0});QR.NpmTagResolver=QR.NpmSemverResolver=QR.NpmSemverFetcher=QR.NpmRemapResolver=QR.NpmHttpFetcher=QR.npmPublishUtils=QR.npmHttpUtils=QR.npmConfigUtils=void 0;var tqr=(Pa(),vi(Va)),jO=Bn(),BEs=zds();Object.defineProperty(QR,"NpmHttpFetcher",{enumerable:!0,get:function(){return BEs.NpmHttpFetcher}});var wEs=qds();Object.defineProperty(QR,"NpmRemapResolver",{enumerable:!0,get:function(){return wEs.NpmRemapResolver}});var TEs=PGt();Object.defineProperty(QR,"NpmSemverFetcher",{enumerable:!0,get:function(){return TEs.NpmSemverFetcher}});var REs=ips();Object.defineProperty(QR,"NpmSemverResolver",{enumerable:!0,get:function(){return REs.NpmSemverResolver}});var NEs=aps();Object.defineProperty(QR,"NpmTagResolver",{enumerable:!0,get:function(){return NEs.NpmTagResolver}});var DEs=tqr.__importStar(c0e());QR.npmConfigUtils=DEs;var bVl=tqr.__importStar(vGe());QR.npmHttpUtils=bVl;var EVl=tqr.__importStar(SEs());QR.npmPublishUtils=EVl;var eqr={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null}},vEs={npmAuditRegistry:{description:"Registry to query for audit reports",type:jO.SettingsType.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:jO.SettingsType.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.STRING,default:"https://registry.yarnpkg.com"}},SVl={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:jO.SettingsType.DURATION,unit:jO.DurationUnit.MINUTES,default:"0m"},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:jO.SettingsType.STRING,isArray:!0,default:[]}},vVl={configuration:{...eqr,...vEs,...SVl,npmScopes:{description:"Settings per package scope",type:jO.SettingsType.MAP,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr,...vEs}}},npmRegistries:{description:"Settings per registry",type:jO.SettingsType.MAP,normalizeKeys:DEs.normalizeRegistry,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr}}}},fetchers:[BEs.NpmHttpFetcher,TEs.NpmSemverFetcher],resolvers:[wEs.NpmRemapResolver,REs.NpmSemverResolver,NEs.NpmTagResolver]};QR.default=vVl});var k9t=H(MFe=>{"use strict";Object.defineProperty(MFe,"__esModule",{value:!0});MFe.Severity=MFe.Environment=void 0;var kEs;(function(e){e.All="all",e.Production="production",e.Development="development"})(kEs||(MFe.Environment=kEs={}));var xEs;(function(e){e.Info="info",e.Low="low",e.Moderate="moderate",e.High="high",e.Critical="critical"})(xEs||(MFe.Severity=xEs={}))});var rqr=H(oJ=>{"use strict";Object.defineProperty(oJ,"__esModule",{value:!0});oJ.allSeverities=void 0;oJ.getSeverityInclusions=wVl;oJ.getReportTree=TVl;oJ.getTopLevelDependencies=RVl;oJ.getPackages=NVl;var GEs=(Pa(),vi(Va)),QE=Bn(),BVl=GEs.__importDefault(UC()),pre=GEs.__importStar(k9t());oJ.allSeverities=[pre.Severity.Info,pre.Severity.Low,pre.Severity.Moderate,pre.Severity.High,pre.Severity.Critical];function wVl(e){if(typeof e>"u")return new Set(oJ.allSeverities);let t=oJ.allSeverities.indexOf(e),r=oJ.allSeverities.slice(t);return new Set(r)}function TVl(e){let t={},r={children:t};for(let[n,a]of QE.miscUtils.sortMap(Object.entries(e),o=>o[0]))for(let o of QE.miscUtils.sortMap(a,l=>`${l.id}`))t[`${n}/${o.id}`]={value:QE.formatUtils.tuple(QE.formatUtils.Type.IDENT,QE.structUtils.parseIdent(n)),children:{ID:typeof o.id<"u"&&{label:"ID",value:QE.formatUtils.tuple(QE.formatUtils.Type.ID,o.id)},Issue:{label:"Issue",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.title)},URL:typeof o.url<"u"&&{label:"URL",value:QE.formatUtils.tuple(QE.formatUtils.Type.URL,o.url)},Severity:{label:"Severity",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:QE.formatUtils.tuple(QE.formatUtils.Type.RANGE,o.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...o.versions].sort(BVl.default.compare).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.REFERENCE,l)}))},Dependents:{label:"Dependents",children:QE.miscUtils.sortMap(o.dependents,l=>QE.structUtils.stringifyLocator(l)).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.LOCATOR,l)}))}}};return r}function RVl(e,t,{all:r,environment:n}){let a=[],o=r?e.workspaces:[t],l=[pre.Environment.All,pre.Environment.Production].includes(n),A=[pre.Environment.All,pre.Environment.Development].includes(n);for(let f of o)for(let I of f.anchoredPackage.dependencies.values())(f.manifest.devDependencies.has(I.identHash)?!A:!l)||a.push({workspace:f,dependency:I});return a}function NVl(e,t,{recursive:r}){let n=new Map,a=new Set,o=[],l=e.configuration.makeResolver(),A={project:e,resolver:l},f=(I,C)=>{let b=e.storedResolutions.get(C.descriptorHash);if(typeof b>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(b))a.add(b);else return;let E=e.storedPackages.get(b);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let N=QE.structUtils.ensureDevirtualizedDescriptor(C);if(l.supportsDescriptor(N,A)){let F=l.getResolutionDependencies(N,A);if(Object.keys(F).length>0)for(let Q of Object.values(F))f(I,Q)}if(QE.structUtils.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let F=QE.structUtils.stringifyIdent(E),Q=QE.miscUtils.getMapWithDefault(n,F);QE.miscUtils.getArrayWithDefault(Q,E.version).push(I)}if(r)for(let F of E.dependencies.values())o.push([E,F])};for(let{workspace:I,dependency:C}of t)o.push([I.anchoredLocator,C]);for(;o.length>0;){let[I,C]=o.shift();f(I,C)}return n}});var VEs=H(nqr=>{"use strict";Object.defineProperty(nqr,"__esModule",{value:!0});var G9t=(Pa(),vi(Va)),FEs=el(),H6=Bn(),DVl=Bn(),x9t=sJ(),fre=($c(),vi(rg)),ZEs=G9t.__importDefault(Ek()),LEs=G9t.__importStar((CZ(),vi(mZ))),Xze=G9t.__importStar(k9t()),Jze=G9t.__importStar(rqr()),Uze=class extends FEs.BaseCommand{constructor(){super(...arguments),this.all=fre.Option.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"}),this.recursive=fre.Option.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"}),this.environment=fre.Option.String("--environment",Xze.Environment.All,{description:"Which environments to cover",validator:LEs.isEnum(Xze.Environment)}),this.json=fre.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.noDeprecations=fre.Option.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"}),this.severity=fre.Option.String("--severity",Xze.Severity.Info,{description:"Minimal severity requested for packages to be displayed",validator:LEs.isEnum(Xze.Severity)}),this.excludes=fre.Option.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"}),this.ignores=fre.Option.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await H6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await H6.Project.find(t,this.context.cwd);if(!n)throw new FEs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=Jze.getTopLevelDependencies(r,n,{all:this.all,environment:this.environment}),o=Jze.getPackages(r,a,{recursive:this.recursive}),l=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes])),A=Object.create(null);for(let[F,Q]of o)l.some(X=>ZEs.default.isMatch(F,X))||(A[F]=[...Q.keys()]);let f=x9t.npmConfigUtils.getAuditRegistry({configuration:t}),I,C=await H6.LightReport.start({configuration:t,stdout:this.context.stdout},async()=>{let F=x9t.npmHttpUtils.post("/-/npm/v1/security/advisories/bulk",A,{authType:x9t.npmHttpUtils.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:f}),Q=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(A),async([ae,ne])=>{let ce=await x9t.npmHttpUtils.getPackageMetadata(DVl.structUtils.parseIdent(ae),{project:r});return H6.miscUtils.mapAndFilter(ne,fe=>{let{deprecated:ue}=ce.versions[fe];return ue?[ae,fe,ue]:H6.miscUtils.mapAndFilter.skip})})),X=await F;for(let[ae,ne,ce]of Q.flat(1))Object.hasOwn(X,ae)&&X[ae].some(fe=>H6.semverUtils.satisfiesWithPrereleases(ne,fe.vulnerable_versions))||(X[ae]??=[],X[ae].push({id:`${ae} (deprecation)`,title:(typeof ce=="string"?ce:"").trim()||"This package has been deprecated.",severity:Xze.Severity.Moderate,vulnerable_versions:ne}));I=X});if(C.hasErrors())return C.exitCode();let b=Jze.getSeverityInclusions(this.severity),E=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores])),N=Object.create(null);for(let[F,Q]of Object.entries(I)){let X=Q.filter(ae=>!ZEs.default.isMatch(`${ae.id}`,E)&&b.has(ae.severity));X.length>0&&(N[F]=X.map(ae=>{let ne=o.get(F);if(typeof ne>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...ne.keys()].filter(ue=>H6.semverUtils.satisfiesWithPrereleases(ue,ae.vulnerable_versions)),fe=new Map;for(let ue of ce)for(let de of ne.get(ue))fe.set(de.locatorHash,de);return{...ae,versions:ce,dependents:[...fe.values()]}}))}let B=Object.keys(N).length>0;return B?(H6.treeUtils.emitTree(Jze.getReportTree(N),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await H6.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async F=>{F.reportInfo(H6.MessageName.EXCEPTION,"No audit suggestions")}),B?1:0)}};Uze.paths=[["npm","audit"]];Uze.usage=fre.Command.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -1765,30 +1765,30 @@ https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:iV If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});nqr.default=Uze});var OEs=H(aqr=>{"use strict";Object.defineProperty(aqr,"__esModule",{value:!0});var DVl=(Pa(),vi(Va)),kVl=el(),aJ=Bn(),Kze=Bn(),iqr=no(),sqr=sJ(),jze=($c(),vi(rg)),PEs=DVl.__importDefault(UC()),WEs=wt("util"),zze=class extends kVl.BaseCommand{constructor(){super(...arguments),this.fields=jze.Option.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"}),this.json=jze.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.packages=jze.Option.Rest()}async execute(){let t=await aJ.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await aJ.Project.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,a=[],o=!1,l=await Kze.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async A=>{for(let f of this.packages){let I;if(f==="."){let ne=r.topLevelWorkspace;if(!ne.manifest.name)throw new jze.UsageError(`Missing ${aJ.formatUtils.pretty(t,"name",aJ.formatUtils.Type.CODE)} field in ${iqr.npath.fromPortablePath(iqr.ppath.join(ne.cwd,iqr.Filename.manifest))}`);I=aJ.structUtils.makeDescriptor(ne.manifest.name,"unknown")}else I=aJ.structUtils.parseDescriptor(f);let C=sqr.npmHttpUtils.getIdentUrl(I),b=oqr(await sqr.npmHttpUtils.get(C,{configuration:t,ident:I,jsonResponse:!0,customErrorMessage:sqr.npmHttpUtils.customPackageError})),E=Object.keys(b.versions).sort(PEs.default.compareLoose),B=b["dist-tags"].latest||E[E.length-1],F=Kze.semverUtils.validRange(I.range);if(F){let ne=PEs.default.maxSatisfying(E,F);ne!==null?B=ne:(A.reportWarning(Kze.MessageName.UNNAMED,`Unmet range ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0)}else Object.hasOwn(b["dist-tags"],I.range)?B=b["dist-tags"][I.range]:I.range!=="unknown"&&(A.reportWarning(Kze.MessageName.UNNAMED,`Unknown tag ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0);let Q=b.versions[B],X={...b,...Q,version:B,versions:E},ae;if(n!==null){ae={};for(let ne of n){let ce=X[ne];if(typeof ce<"u")ae[ne]=ce;else{A.reportWarning(Kze.MessageName.EXCEPTION,`The ${aJ.formatUtils.pretty(t,ne,aJ.formatUtils.Type.CODE)} field doesn't exist inside ${aJ.structUtils.prettyIdent(t,I)}'s information`),o=!0;continue}}}else this.json||(delete X.dist,delete X.readme,delete X.users),ae=X;A.reportJson(ae),this.json||a.push(ae)}});WEs.inspect.styles.name="cyan";for(let A of a)(A!==a[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});nqr.default=Uze});var OEs=H(aqr=>{"use strict";Object.defineProperty(aqr,"__esModule",{value:!0});var kVl=(Pa(),vi(Va)),xVl=el(),aJ=Bn(),Kze=Bn(),iqr=no(),sqr=sJ(),jze=($c(),vi(rg)),PEs=kVl.__importDefault(UC()),WEs=wt("util"),zze=class extends xVl.BaseCommand{constructor(){super(...arguments),this.fields=jze.Option.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"}),this.json=jze.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.packages=jze.Option.Rest()}async execute(){let t=await aJ.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await aJ.Project.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,a=[],o=!1,l=await Kze.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async A=>{for(let f of this.packages){let I;if(f==="."){let ne=r.topLevelWorkspace;if(!ne.manifest.name)throw new jze.UsageError(`Missing ${aJ.formatUtils.pretty(t,"name",aJ.formatUtils.Type.CODE)} field in ${iqr.npath.fromPortablePath(iqr.ppath.join(ne.cwd,iqr.Filename.manifest))}`);I=aJ.structUtils.makeDescriptor(ne.manifest.name,"unknown")}else I=aJ.structUtils.parseDescriptor(f);let C=sqr.npmHttpUtils.getIdentUrl(I),b=oqr(await sqr.npmHttpUtils.get(C,{configuration:t,ident:I,jsonResponse:!0,customErrorMessage:sqr.npmHttpUtils.customPackageError})),E=Object.keys(b.versions).sort(PEs.default.compareLoose),B=b["dist-tags"].latest||E[E.length-1],F=Kze.semverUtils.validRange(I.range);if(F){let ne=PEs.default.maxSatisfying(E,F);ne!==null?B=ne:(A.reportWarning(Kze.MessageName.UNNAMED,`Unmet range ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0)}else Object.hasOwn(b["dist-tags"],I.range)?B=b["dist-tags"][I.range]:I.range!=="unknown"&&(A.reportWarning(Kze.MessageName.UNNAMED,`Unknown tag ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0);let Q=b.versions[B],X={...b,...Q,version:B,versions:E},ae;if(n!==null){ae={};for(let ne of n){let ce=X[ne];if(typeof ce<"u")ae[ne]=ce;else{A.reportWarning(Kze.MessageName.EXCEPTION,`The ${aJ.formatUtils.pretty(t,ne,aJ.formatUtils.Type.CODE)} field doesn't exist inside ${aJ.structUtils.prettyIdent(t,I)}'s information`),o=!0;continue}}}else this.json||(delete X.dist,delete X.readme,delete X.users),ae=X;A.reportJson(ae),this.json||a.push(ae)}});WEs.inspect.styles.name="cyan";for(let A of a)(A!==a[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,WEs.inspect)(A,{depth:1/0,colors:!0,compact:!1})} -`);return l.exitCode()}};zze.paths=[["npm","info"]];zze.usage=jze.Command.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});aqr.default=zze;function oqr(e){if(Array.isArray(e)){let t=[];for(let r of e)r=oqr(r),r&&t.push(r);return t}else if(typeof e=="object"&&e!==null){let t={};for(let r of Object.keys(e)){if(r.startsWith("_"))continue;let n=oqr(e[r]);n&&(t[r]=n)}return t}else return e||null}});var cqr=H(F9t=>{"use strict";Object.defineProperty(F9t,"__esModule",{value:!0});F9t.getRegistry=YEs;var MEs=el(),hx=Bn(),xVl=Bn(),tY=sJ(),qze=($c(),vi(rg)),HEs=Lje(),$ze=class extends MEs.BaseCommand{constructor(){super(...arguments),this.scope=qze.Option.String("-s,--scope",{description:"Login to the registry configured for a given scope"}),this.publish=qze.Option.Boolean("--publish",!1,{description:"Login to the publish registry"}),this.alwaysAuth=qze.Option.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"}),this.webLogin=qze.Option.Boolean("--web-login",{description:"Enable web login"})}async execute(){let t=await hx.Configuration.find(this.context.cwd,this.context.plugins),r=await YEs({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await xVl.StreamReport.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async a=>{let o=await VVl({registry:r,configuration:t,report:a,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await WVl(r,o,{alwaysAuth:this.alwaysAuth,scope:this.scope}),a.reportInfo(hx.MessageName.UNNAMED,"Successfully logged in")})).exitCode()}};$ze.paths=[["npm","login"]];$ze.usage=qze.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});F9t.default=$ze;async function YEs({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:tY.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?tY.npmConfigUtils.getPublishRegistry((await(0,MEs.openWorkspace)(r,n)).manifest,{configuration:r}):tY.npmConfigUtils.getDefaultRegistry({configuration:r})}async function GVl(e,t){let r;try{r=await tY.npmHttpUtils.post("/-/v1/login",null,{configuration:t,registry:e,authType:tY.npmHttpUtils.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function FVl(e,t){let r=await hx.httpUtils.request(e,null,{configuration:t,jsonResponse:!0});if(r.statusCode===202){let n=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(n,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function ZVl({registry:e,configuration:t,report:r}){let n=await GVl(e,t);if(!n)return null;if(hx.nodeUtils.openUrl){r.reportInfo(hx.MessageName.UNNAMED,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,HEs.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await hx.nodeUtils.openUrl(n.loginUrl))&&(r.reportWarning(hx.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(hx.MessageName.UNNAMED,hx.formatUtils.pretty(t,n.loginUrl,hx.formatUtils.Type.URL)),r.reportSeparator())}for(;;){let a=await FVl(n.doneUrl,t);if(a===null)return null;if(a.type==="waiting")await new Promise(o=>setTimeout(o,a.sleep*1e3));else return a.token}}var LVl=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function VVl(e){if(e.webLogin??LVl.includes(e.registry)){let t=await ZVl(e);if(t!==null)return t}return await PVl(e)}async function PVl({registry:e,configuration:t,report:r,stdin:n,stdout:a}){let o=await OVl({configuration:t,registry:e,report:r,stdin:n,stdout:a}),l=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,A={_id:`org.couchdb.user:${o.name}`,name:o.name,password:o.password,type:"user",roles:[],date:new Date().toISOString()},f={attemptedAs:o.name,configuration:t,registry:e,jsonResponse:!0,authType:tY.npmHttpUtils.AuthType.NO_AUTH};try{return(await tY.npmHttpUtils.put(l,A,f)).token}catch(N){if(!(N.originalError?.name==="HTTPError"&&N.originalError?.response.statusCode===409))throw N}let I={...f,authType:tY.npmHttpUtils.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${o.name}:${o.password}`).toString("base64")}`}},C=await tY.npmHttpUtils.get(l,I);for(let[N,B]of Object.entries(C))(!A[N]||N==="roles")&&(A[N]=B);let b=`${l}/-rev/${A._rev}`;return(await tY.npmHttpUtils.put(b,A,I)).token}async function WVl(e,t,{alwaysAuth:r,scope:n}){let a=l=>A=>{let f=hx.miscUtils.isIndexableObject(A)?A:{},I=f[l],C=hx.miscUtils.isIndexableObject(I)?I:{};return{...f,[l]:{...C,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:t}}},o=n?{npmScopes:a(n)}:{npmRegistries:a(e)};return await hx.Configuration.updateHomeConfiguration(o)}async function OVl({configuration:e,registry:t,report:r,stdin:n,stdout:a}){r.reportInfo(hx.MessageName.UNNAMED,`Logging in to ${hx.formatUtils.pretty(e,t,hx.formatUtils.Type.URL)}`);let o=!1;if(t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(hx.MessageName.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),o=!0),r.reportSeparator(),e.env.YARN_IS_TEST_ENV)return{name:e.env.YARN_INJECT_NPM_USER||"",password:e.env.YARN_INJECT_NPM_PASSWORD||""};let l=await(0,HEs.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a},{type:"password",name:"password",message:o?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a}]);return r.reportSeparator(),l}});var JEs=H(lqr=>{"use strict";Object.defineProperty(lqr,"__esModule",{value:!0});var MVl=el(),iP=Bn(),HVl=Bn(),YVl=sJ(),Z9t=($c(),vi(rg)),QEs=cqr(),HFe=new Set(["npmAuthIdent","npmAuthToken"]),eqe=class extends MVl.BaseCommand{constructor(){super(...arguments),this.scope=Z9t.Option.String("-s,--scope",{description:"Logout of the registry configured for a given scope"}),this.publish=Z9t.Option.Boolean("--publish",!1,{description:"Logout of the publish registry"}),this.all=Z9t.Option.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await iP.Configuration.find(this.context.cwd,this.context.plugins),r=async()=>{let a=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await iP.Configuration.find(this.context.cwd,this.context.plugins),l=iP.structUtils.makeIdent(this.scope??null,"pkg");return!YVl.npmConfigUtils.getAuthConfiguration(a,{configuration:o,ident:l}).get("npmAuthToken")};return(await HVl.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{if(this.all&&(await XVl(),a.reportInfo(iP.MessageName.UNNAMED,"Successfully logged out from everything")),this.scope){await XEs("npmScopes",this.scope),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${this.scope}`):a.reportWarning(iP.MessageName.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish});await XEs("npmRegistries",o),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${o}`):a.reportWarning(iP.MessageName.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};eqe.paths=[["npm","logout"]];eqe.usage=Z9t.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});lqr.default=eqe;function QVl(e,t){let r=e[t];if(!iP.miscUtils.isIndexableObject(r))return!1;let n=new Set(Object.keys(r));if([...HFe].every(o=>!n.has(o)))return!1;for(let o of HFe)n.delete(o);if(n.size===0)return e[t]=void 0,!0;let a={...r};for(let o of HFe)delete a[o];return e[t]=a,!0}async function XVl(){let e=t=>{let r=!1,n=iP.miscUtils.isIndexableObject(t)?{...t}:{};n.npmAuthToken&&(delete n.npmAuthToken,r=!0);for(let a of Object.keys(n))QVl(n,a)&&(r=!0);if(Object.keys(n).length!==0)return r?n:t};return await iP.Configuration.updateHomeConfiguration({npmRegistries:e,npmScopes:e})}async function XEs(e,t){return await iP.Configuration.updateHomeConfiguration({[e]:r=>{let n=iP.miscUtils.isIndexableObject(r)?r:{};if(!Object.hasOwn(n,t))return r;let a=n[t],o=iP.miscUtils.isIndexableObject(a)?a:{},l=new Set(Object.keys(o));if([...HFe].every(f=>!l.has(f)))return r;for(let f of HFe)l.delete(f);if(l.size===0)return Object.keys(n).length===1?void 0:{...n,[t]:void 0};let A={};for(let f of HFe)A[f]=void 0;return{...n,[t]:{...o,...A}}}})}});var KEs=H(Aqr=>{"use strict";Object.defineProperty(Aqr,"__esModule",{value:!0});var UEs=el(),rY=Bn(),uqr=no(),K0e=sJ(),gqr=$he(),Y6=($c(),vi(rg)),tqe=class extends UEs.BaseCommand{constructor(){super(...arguments),this.access=Y6.Option.String("--access",{description:"The access for the published package (public or restricted)"}),this.tag=Y6.Option.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"}),this.tolerateRepublish=Y6.Option.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"}),this.otp=Y6.Option.String("--otp",{description:"The OTP token to use with the command"}),this.provenance=Y6.Option.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."}),this.dryRun=Y6.Option.Boolean("-n,--dry-run",!1,{description:"Show what would be published without actually publishing"}),this.json=Y6.Option.Boolean("--json",!1,{description:"Output the result in JSON format"})}async execute(){let t=await rY.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await rY.Project.find(t,this.context.cwd);if(!n)throw new UEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(n.manifest.private)throw new Y6.UsageError("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Y6.UsageError("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let a=n.manifest.name,o=n.manifest.version,l=K0e.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t});return(await rY.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async f=>{if(f.reportInfo(rY.MessageName.UNNAMED,`Publishing to ${l} with tag ${this.tag}`),this.tolerateRepublish)try{let I=await K0e.npmHttpUtils.get(K0e.npmHttpUtils.getIdentUrl(a),{configuration:t,registry:l,ident:a,jsonResponse:!0});if(!Object.hasOwn(I,"versions"))throw new rY.ReportError(rY.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(I.versions,o)){let C=`Registry already knows about version ${o}; skipping.`;f.reportWarning(rY.MessageName.UNNAMED,C),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,warning:C,skipped:!0});return}}catch(I){if(I.originalError?.response?.statusCode!==404)throw I}await rY.scriptUtils.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:f}),await gqr.packUtils.prepareForPack(n,{report:f},async()=>{let I=await gqr.packUtils.genPackList(n);for(let X of I)f.reportInfo(null,uqr.npath.fromPortablePath(X)),f.reportJson({file:uqr.npath.fromPortablePath(X)});let C=await gqr.packUtils.genPackStream(n,I),b=await rY.miscUtils.bufferStream(C),E=await K0e.npmPublishUtils.getGitHead(n.cwd),N=!1,B="";n.manifest.publishConfig&&"provenance"in n.manifest.publishConfig?(N=!!n.manifest.publishConfig.provenance,B=N?"Generating provenance statement because `publishConfig.provenance` field is set.":"Skipping provenance statement because `publishConfig.provenance` field is set to false."):this.provenance?(N=!0,B="Generating provenance statement because `--provenance` flag is set."):t.get("npmPublishProvenance")&&(N=!0,B="Generating provenance statement because `npmPublishProvenance` setting is set."),B&&(f.reportInfo(null,B),f.reportJson({type:"provenance",enabled:N,provenanceMessage:B}));let F=await K0e.npmPublishUtils.makePublishBody(n,b,{access:this.access,tag:this.tag,registry:l,gitHead:E,provenance:N});this.dryRun||await K0e.npmHttpUtils.put(K0e.npmHttpUtils.getIdentUrl(a),F,{configuration:t,registry:l,ident:a,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB_CI))});let Q=this.dryRun?"Package archive not published (dry run)":"Package archive published";f.reportInfo(rY.MessageName.UNNAMED,Q),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,tag:this.tag||"latest",files:I.map(X=>uqr.npath.fromPortablePath(X)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:Q,provenance:!!N})})})).exitCode()}};tqe.paths=[["npm","publish"]];tqe.usage=Y6.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Aqr.default=tqe});var P9t=H(V9t=>{"use strict";Object.defineProperty(V9t,"__esModule",{value:!0});V9t.getDistTags=zEs;var jEs=el(),Ire=Bn(),dqr=no(),pqr=sJ(),L9t=($c(),vi(rg)),rqe=class extends jEs.BaseCommand{constructor(){super(...arguments),this.json=L9t.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=L9t.Option.String({required:!1})}async execute(){let t=await Ire.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ire.Project.find(t,this.context.cwd),a;if(typeof this.package<"u")a=Ire.structUtils.parseIdent(this.package);else{if(!n)throw new jEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(!n.manifest.name)throw new L9t.UsageError(`Missing 'name' field in ${dqr.npath.fromPortablePath(dqr.ppath.join(n.cwd,dqr.Filename.manifest))}`);a=n.manifest.name}let o=await zEs(a,t),A={children:Ire.miscUtils.sortMap(Object.entries(o),([f])=>f).map(([f,I])=>({value:Ire.formatUtils.tuple(Ire.formatUtils.Type.RESOLUTION,{descriptor:Ire.structUtils.makeDescriptor(a,f),locator:Ire.structUtils.makeLocator(a,I)})}))};return Ire.treeUtils.emitTree(A,{configuration:t,json:this.json,stdout:this.context.stdout})}};rqe.paths=[["npm","tag","list"]];rqe.usage=L9t.Command.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return l.exitCode()}};zze.paths=[["npm","info"]];zze.usage=jze.Command.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});aqr.default=zze;function oqr(e){if(Array.isArray(e)){let t=[];for(let r of e)r=oqr(r),r&&t.push(r);return t}else if(typeof e=="object"&&e!==null){let t={};for(let r of Object.keys(e)){if(r.startsWith("_"))continue;let n=oqr(e[r]);n&&(t[r]=n)}return t}else return e||null}});var cqr=H(F9t=>{"use strict";Object.defineProperty(F9t,"__esModule",{value:!0});F9t.getRegistry=YEs;var MEs=el(),hx=Bn(),GVl=Bn(),tY=sJ(),qze=($c(),vi(rg)),HEs=Lje(),$ze=class extends MEs.BaseCommand{constructor(){super(...arguments),this.scope=qze.Option.String("-s,--scope",{description:"Login to the registry configured for a given scope"}),this.publish=qze.Option.Boolean("--publish",!1,{description:"Login to the publish registry"}),this.alwaysAuth=qze.Option.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"}),this.webLogin=qze.Option.Boolean("--web-login",{description:"Enable web login"})}async execute(){let t=await hx.Configuration.find(this.context.cwd,this.context.plugins),r=await YEs({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await GVl.StreamReport.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async a=>{let o=await PVl({registry:r,configuration:t,report:a,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await OVl(r,o,{alwaysAuth:this.alwaysAuth,scope:this.scope}),a.reportInfo(hx.MessageName.UNNAMED,"Successfully logged in")})).exitCode()}};$ze.paths=[["npm","login"]];$ze.usage=qze.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});F9t.default=$ze;async function YEs({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:tY.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?tY.npmConfigUtils.getPublishRegistry((await(0,MEs.openWorkspace)(r,n)).manifest,{configuration:r}):tY.npmConfigUtils.getDefaultRegistry({configuration:r})}async function FVl(e,t){let r;try{r=await tY.npmHttpUtils.post("/-/v1/login",null,{configuration:t,registry:e,authType:tY.npmHttpUtils.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function ZVl(e,t){let r=await hx.httpUtils.request(e,null,{configuration:t,jsonResponse:!0});if(r.statusCode===202){let n=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(n,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function LVl({registry:e,configuration:t,report:r}){let n=await FVl(e,t);if(!n)return null;if(hx.nodeUtils.openUrl){r.reportInfo(hx.MessageName.UNNAMED,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,HEs.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await hx.nodeUtils.openUrl(n.loginUrl))&&(r.reportWarning(hx.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(hx.MessageName.UNNAMED,hx.formatUtils.pretty(t,n.loginUrl,hx.formatUtils.Type.URL)),r.reportSeparator())}for(;;){let a=await ZVl(n.doneUrl,t);if(a===null)return null;if(a.type==="waiting")await new Promise(o=>setTimeout(o,a.sleep*1e3));else return a.token}}var VVl=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function PVl(e){if(e.webLogin??VVl.includes(e.registry)){let t=await LVl(e);if(t!==null)return t}return await WVl(e)}async function WVl({registry:e,configuration:t,report:r,stdin:n,stdout:a}){let o=await MVl({configuration:t,registry:e,report:r,stdin:n,stdout:a}),l=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,A={_id:`org.couchdb.user:${o.name}`,name:o.name,password:o.password,type:"user",roles:[],date:new Date().toISOString()},f={attemptedAs:o.name,configuration:t,registry:e,jsonResponse:!0,authType:tY.npmHttpUtils.AuthType.NO_AUTH};try{return(await tY.npmHttpUtils.put(l,A,f)).token}catch(N){if(!(N.originalError?.name==="HTTPError"&&N.originalError?.response.statusCode===409))throw N}let I={...f,authType:tY.npmHttpUtils.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${o.name}:${o.password}`).toString("base64")}`}},C=await tY.npmHttpUtils.get(l,I);for(let[N,B]of Object.entries(C))(!A[N]||N==="roles")&&(A[N]=B);let b=`${l}/-rev/${A._rev}`;return(await tY.npmHttpUtils.put(b,A,I)).token}async function OVl(e,t,{alwaysAuth:r,scope:n}){let a=l=>A=>{let f=hx.miscUtils.isIndexableObject(A)?A:{},I=f[l],C=hx.miscUtils.isIndexableObject(I)?I:{};return{...f,[l]:{...C,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:t}}},o=n?{npmScopes:a(n)}:{npmRegistries:a(e)};return await hx.Configuration.updateHomeConfiguration(o)}async function MVl({configuration:e,registry:t,report:r,stdin:n,stdout:a}){r.reportInfo(hx.MessageName.UNNAMED,`Logging in to ${hx.formatUtils.pretty(e,t,hx.formatUtils.Type.URL)}`);let o=!1;if(t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(hx.MessageName.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),o=!0),r.reportSeparator(),e.env.YARN_IS_TEST_ENV)return{name:e.env.YARN_INJECT_NPM_USER||"",password:e.env.YARN_INJECT_NPM_PASSWORD||""};let l=await(0,HEs.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a},{type:"password",name:"password",message:o?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a}]);return r.reportSeparator(),l}});var JEs=H(lqr=>{"use strict";Object.defineProperty(lqr,"__esModule",{value:!0});var HVl=el(),iP=Bn(),YVl=Bn(),QVl=sJ(),Z9t=($c(),vi(rg)),QEs=cqr(),HFe=new Set(["npmAuthIdent","npmAuthToken"]),eqe=class extends HVl.BaseCommand{constructor(){super(...arguments),this.scope=Z9t.Option.String("-s,--scope",{description:"Logout of the registry configured for a given scope"}),this.publish=Z9t.Option.Boolean("--publish",!1,{description:"Logout of the publish registry"}),this.all=Z9t.Option.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await iP.Configuration.find(this.context.cwd,this.context.plugins),r=async()=>{let a=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await iP.Configuration.find(this.context.cwd,this.context.plugins),l=iP.structUtils.makeIdent(this.scope??null,"pkg");return!QVl.npmConfigUtils.getAuthConfiguration(a,{configuration:o,ident:l}).get("npmAuthToken")};return(await YVl.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{if(this.all&&(await JVl(),a.reportInfo(iP.MessageName.UNNAMED,"Successfully logged out from everything")),this.scope){await XEs("npmScopes",this.scope),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${this.scope}`):a.reportWarning(iP.MessageName.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish});await XEs("npmRegistries",o),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${o}`):a.reportWarning(iP.MessageName.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};eqe.paths=[["npm","logout"]];eqe.usage=Z9t.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});lqr.default=eqe;function XVl(e,t){let r=e[t];if(!iP.miscUtils.isIndexableObject(r))return!1;let n=new Set(Object.keys(r));if([...HFe].every(o=>!n.has(o)))return!1;for(let o of HFe)n.delete(o);if(n.size===0)return e[t]=void 0,!0;let a={...r};for(let o of HFe)delete a[o];return e[t]=a,!0}async function JVl(){let e=t=>{let r=!1,n=iP.miscUtils.isIndexableObject(t)?{...t}:{};n.npmAuthToken&&(delete n.npmAuthToken,r=!0);for(let a of Object.keys(n))XVl(n,a)&&(r=!0);if(Object.keys(n).length!==0)return r?n:t};return await iP.Configuration.updateHomeConfiguration({npmRegistries:e,npmScopes:e})}async function XEs(e,t){return await iP.Configuration.updateHomeConfiguration({[e]:r=>{let n=iP.miscUtils.isIndexableObject(r)?r:{};if(!Object.hasOwn(n,t))return r;let a=n[t],o=iP.miscUtils.isIndexableObject(a)?a:{},l=new Set(Object.keys(o));if([...HFe].every(f=>!l.has(f)))return r;for(let f of HFe)l.delete(f);if(l.size===0)return Object.keys(n).length===1?void 0:{...n,[t]:void 0};let A={};for(let f of HFe)A[f]=void 0;return{...n,[t]:{...o,...A}}}})}});var KEs=H(Aqr=>{"use strict";Object.defineProperty(Aqr,"__esModule",{value:!0});var UEs=el(),rY=Bn(),uqr=no(),K0e=sJ(),gqr=$he(),Y6=($c(),vi(rg)),tqe=class extends UEs.BaseCommand{constructor(){super(...arguments),this.access=Y6.Option.String("--access",{description:"The access for the published package (public or restricted)"}),this.tag=Y6.Option.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"}),this.tolerateRepublish=Y6.Option.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"}),this.otp=Y6.Option.String("--otp",{description:"The OTP token to use with the command"}),this.provenance=Y6.Option.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."}),this.dryRun=Y6.Option.Boolean("-n,--dry-run",!1,{description:"Show what would be published without actually publishing"}),this.json=Y6.Option.Boolean("--json",!1,{description:"Output the result in JSON format"})}async execute(){let t=await rY.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await rY.Project.find(t,this.context.cwd);if(!n)throw new UEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(n.manifest.private)throw new Y6.UsageError("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Y6.UsageError("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let a=n.manifest.name,o=n.manifest.version,l=K0e.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t});return(await rY.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async f=>{if(f.reportInfo(rY.MessageName.UNNAMED,`Publishing to ${l} with tag ${this.tag}`),this.tolerateRepublish)try{let I=await K0e.npmHttpUtils.get(K0e.npmHttpUtils.getIdentUrl(a),{configuration:t,registry:l,ident:a,jsonResponse:!0});if(!Object.hasOwn(I,"versions"))throw new rY.ReportError(rY.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(I.versions,o)){let C=`Registry already knows about version ${o}; skipping.`;f.reportWarning(rY.MessageName.UNNAMED,C),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,warning:C,skipped:!0});return}}catch(I){if(I.originalError?.response?.statusCode!==404)throw I}await rY.scriptUtils.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:f}),await gqr.packUtils.prepareForPack(n,{report:f},async()=>{let I=await gqr.packUtils.genPackList(n);for(let X of I)f.reportInfo(null,uqr.npath.fromPortablePath(X)),f.reportJson({file:uqr.npath.fromPortablePath(X)});let C=await gqr.packUtils.genPackStream(n,I),b=await rY.miscUtils.bufferStream(C),E=await K0e.npmPublishUtils.getGitHead(n.cwd),N=!1,B="";n.manifest.publishConfig&&"provenance"in n.manifest.publishConfig?(N=!!n.manifest.publishConfig.provenance,B=N?"Generating provenance statement because `publishConfig.provenance` field is set.":"Skipping provenance statement because `publishConfig.provenance` field is set to false."):this.provenance?(N=!0,B="Generating provenance statement because `--provenance` flag is set."):t.get("npmPublishProvenance")&&(N=!0,B="Generating provenance statement because `npmPublishProvenance` setting is set."),B&&(f.reportInfo(null,B),f.reportJson({type:"provenance",enabled:N,provenanceMessage:B}));let F=await K0e.npmPublishUtils.makePublishBody(n,b,{access:this.access,tag:this.tag,registry:l,gitHead:E,provenance:N});this.dryRun||await K0e.npmHttpUtils.put(K0e.npmHttpUtils.getIdentUrl(a),F,{configuration:t,registry:l,ident:a,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB_CI))});let Q=this.dryRun?"Package archive not published (dry run)":"Package archive published";f.reportInfo(rY.MessageName.UNNAMED,Q),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,tag:this.tag||"latest",files:I.map(X=>uqr.npath.fromPortablePath(X)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:Q,provenance:!!N})})})).exitCode()}};tqe.paths=[["npm","publish"]];tqe.usage=Y6.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Aqr.default=tqe});var P9t=H(V9t=>{"use strict";Object.defineProperty(V9t,"__esModule",{value:!0});V9t.getDistTags=zEs;var jEs=el(),Ire=Bn(),dqr=no(),pqr=sJ(),L9t=($c(),vi(rg)),rqe=class extends jEs.BaseCommand{constructor(){super(...arguments),this.json=L9t.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=L9t.Option.String({required:!1})}async execute(){let t=await Ire.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ire.Project.find(t,this.context.cwd),a;if(typeof this.package<"u")a=Ire.structUtils.parseIdent(this.package);else{if(!n)throw new jEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(!n.manifest.name)throw new L9t.UsageError(`Missing 'name' field in ${dqr.npath.fromPortablePath(dqr.ppath.join(n.cwd,dqr.Filename.manifest))}`);a=n.manifest.name}let o=await zEs(a,t),A={children:Ire.miscUtils.sortMap(Object.entries(o),([f])=>f).map(([f,I])=>({value:Ire.formatUtils.tuple(Ire.formatUtils.Type.RESOLUTION,{descriptor:Ire.structUtils.makeDescriptor(a,f),locator:Ire.structUtils.makeLocator(a,I)})}))};return Ire.treeUtils.emitTree(A,{configuration:t,json:this.json,stdout:this.context.stdout})}};rqe.paths=[["npm","tag","list"]];rqe.usage=L9t.Command.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});V9t.default=rqe;async function zEs(e,t){let r=`/-/package${pqr.npmHttpUtils.getIdentUrl(e)}/dist-tags`;return pqr.npmHttpUtils.get(r,{configuration:t,ident:e,jsonResponse:!0,customErrorMessage:pqr.npmHttpUtils.customPackageError})}});var $Es=H(Iqr=>{"use strict";Object.defineProperty(Iqr,"__esModule",{value:!0});var JVl=(Pa(),vi(Va)),qEs=el(),sP=Bn(),fqr=sJ(),W9t=($c(),vi(rg)),UVl=JVl.__importDefault(UC()),KVl=P9t(),nqe=class extends qEs.BaseCommand{constructor(){super(...arguments),this.package=W9t.Option.String(),this.tag=W9t.Option.String()}async execute(){let t=await sP.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await sP.Project.find(t,this.context.cwd);if(!n)throw new qEs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=sP.structUtils.parseDescriptor(this.package,!0),o=a.range;if(!UVl.default.valid(o))throw new W9t.UsageError(`The range ${sP.formatUtils.pretty(t,a.range,sP.formatUtils.Type.RANGE)} must be a valid semver version`);let l=fqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),A=sP.formatUtils.pretty(t,a,sP.formatUtils.Type.IDENT),f=sP.formatUtils.pretty(t,o,sP.formatUtils.Type.RANGE),I=sP.formatUtils.pretty(t,this.tag,sP.formatUtils.Type.CODE);return(await sP.StreamReport.start({configuration:t,stdout:this.context.stdout},async b=>{let E=await(0,KVl.getDistTags)(a,t);Object.hasOwn(E,this.tag)&&E[this.tag]===o&&b.reportWarning(sP.MessageName.UNNAMED,`Tag ${I} is already set to version ${f}`);let N=`/-/package${fqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await fqr.npmHttpUtils.put(N,o,{configuration:t,registry:l,ident:a,jsonRequest:!0,jsonResponse:!0}),b.reportInfo(sP.MessageName.UNNAMED,`Tag ${I} added to version ${f} of package ${A}`)})).exitCode()}};nqe.paths=[["npm","tag","add"]];nqe.usage=W9t.Command.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});V9t.default=rqe;async function zEs(e,t){let r=`/-/package${pqr.npmHttpUtils.getIdentUrl(e)}/dist-tags`;return pqr.npmHttpUtils.get(r,{configuration:t,ident:e,jsonResponse:!0,customErrorMessage:pqr.npmHttpUtils.customPackageError})}});var $Es=H(Iqr=>{"use strict";Object.defineProperty(Iqr,"__esModule",{value:!0});var UVl=(Pa(),vi(Va)),qEs=el(),sP=Bn(),fqr=sJ(),W9t=($c(),vi(rg)),KVl=UVl.__importDefault(UC()),jVl=P9t(),nqe=class extends qEs.BaseCommand{constructor(){super(...arguments),this.package=W9t.Option.String(),this.tag=W9t.Option.String()}async execute(){let t=await sP.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await sP.Project.find(t,this.context.cwd);if(!n)throw new qEs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=sP.structUtils.parseDescriptor(this.package,!0),o=a.range;if(!KVl.default.valid(o))throw new W9t.UsageError(`The range ${sP.formatUtils.pretty(t,a.range,sP.formatUtils.Type.RANGE)} must be a valid semver version`);let l=fqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),A=sP.formatUtils.pretty(t,a,sP.formatUtils.Type.IDENT),f=sP.formatUtils.pretty(t,o,sP.formatUtils.Type.RANGE),I=sP.formatUtils.pretty(t,this.tag,sP.formatUtils.Type.CODE);return(await sP.StreamReport.start({configuration:t,stdout:this.context.stdout},async b=>{let E=await(0,jVl.getDistTags)(a,t);Object.hasOwn(E,this.tag)&&E[this.tag]===o&&b.reportWarning(sP.MessageName.UNNAMED,`Tag ${I} is already set to version ${f}`);let N=`/-/package${fqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await fqr.npmHttpUtils.put(N,o,{configuration:t,registry:l,ident:a,jsonRequest:!0,jsonResponse:!0}),b.reportInfo(sP.MessageName.UNNAMED,`Tag ${I} added to version ${f} of package ${A}`)})).exitCode()}};nqe.paths=[["npm","tag","add"]];nqe.usage=W9t.Command.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Iqr.default=nqe});var t1s=H(mqr=>{"use strict";Object.defineProperty(mqr,"__esModule",{value:!0});var e1s=el(),hre=Bn(),hqr=sJ(),iqe=($c(),vi(rg)),jVl=P9t(),sqe=class extends e1s.BaseCommand{constructor(){super(...arguments),this.package=iqe.Option.String(),this.tag=iqe.Option.String()}async execute(){if(this.tag==="latest")throw new iqe.UsageError("The 'latest' tag cannot be removed.");let t=await hre.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hre.Project.find(t,this.context.cwd);if(!n)throw new e1s.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=hre.structUtils.parseIdent(this.package),o=hqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),l=hre.formatUtils.pretty(t,this.tag,hre.formatUtils.Type.CODE),A=hre.formatUtils.pretty(t,a,hre.formatUtils.Type.IDENT),f=await(0,jVl.getDistTags)(a,t);if(!Object.hasOwn(f,this.tag))throw new iqe.UsageError(`${l} is not a tag of package ${A}`);return(await hre.StreamReport.start({configuration:t,stdout:this.context.stdout},async C=>{let b=`/-/package${hqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await hqr.npmHttpUtils.del(b,{configuration:t,registry:o,ident:a,jsonResponse:!0}),C.reportInfo(hre.MessageName.UNNAMED,`Tag ${l} removed from package ${A}`)})).exitCode()}};sqe.paths=[["npm","tag","remove"]];sqe.usage=iqe.Command.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Iqr.default=nqe});var t1s=H(mqr=>{"use strict";Object.defineProperty(mqr,"__esModule",{value:!0});var e1s=el(),hre=Bn(),hqr=sJ(),iqe=($c(),vi(rg)),zVl=P9t(),sqe=class extends e1s.BaseCommand{constructor(){super(...arguments),this.package=iqe.Option.String(),this.tag=iqe.Option.String()}async execute(){if(this.tag==="latest")throw new iqe.UsageError("The 'latest' tag cannot be removed.");let t=await hre.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hre.Project.find(t,this.context.cwd);if(!n)throw new e1s.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=hre.structUtils.parseIdent(this.package),o=hqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),l=hre.formatUtils.pretty(t,this.tag,hre.formatUtils.Type.CODE),A=hre.formatUtils.pretty(t,a,hre.formatUtils.Type.IDENT),f=await(0,zVl.getDistTags)(a,t);if(!Object.hasOwn(f,this.tag))throw new iqe.UsageError(`${l} is not a tag of package ${A}`);return(await hre.StreamReport.start({configuration:t,stdout:this.context.stdout},async C=>{let b=`/-/package${hqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await hqr.npmHttpUtils.del(b,{configuration:t,registry:o,ident:a,jsonResponse:!0}),C.reportInfo(hre.MessageName.UNNAMED,`Tag ${l} removed from package ${A}`)})).exitCode()}};sqe.paths=[["npm","tag","remove"]];sqe.usage=iqe.Command.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});mqr.default=sqe});var i1s=H(yqr=>{"use strict";Object.defineProperty(yqr,"__esModule",{value:!0});var r1s=el(),Cqr=Bn(),n1s=Bn(),j0e=sJ(),_qr=($c(),vi(rg)),oqe=class extends r1s.BaseCommand{constructor(){super(...arguments),this.scope=_qr.Option.String("-s,--scope",{description:"Print username for the registry configured for a given scope"}),this.publish=_qr.Option.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Cqr.Configuration.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t,type:j0e.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t}):this.publish?r=j0e.npmConfigUtils.getPublishRegistry((await(0,r1s.openWorkspace)(t,this.context.cwd)).manifest,{configuration:t}):r=j0e.npmConfigUtils.getDefaultRegistry({configuration:t}),(await n1s.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o;try{o=await j0e.npmHttpUtils.get("/-/whoami",{configuration:t,registry:r,authType:j0e.npmHttpUtils.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?n1s.structUtils.makeIdent(this.scope,""):void 0})}catch(l){if(l.response?.statusCode===401||l.response?.statusCode===403){a.reportError(Cqr.MessageName.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}a.reportInfo(Cqr.MessageName.UNNAMED,o.username)})).exitCode()}};oqe.paths=[["npm","whoami"]];oqe.usage=_qr.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});yqr.default=oqe});var p1s=H(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});U1.NpmWhoamiCommand=U1.NpmTagRemoveCommand=U1.NpmTagListCommand=U1.NpmTagAddCommand=U1.NpmPublishCommand=U1.NpmLogoutCommand=U1.NpmLoginCommand=U1.NpmInfoCommand=U1.NpmAuditCommand=U1.npmAuditUtils=U1.npmAuditTypes=void 0;var cJ=(Pa(),vi(Va)),O9t=Bn(),s1s=cJ.__importDefault(VEs());U1.NpmAuditCommand=s1s.default;var o1s=cJ.__importDefault(OEs());U1.NpmInfoCommand=o1s.default;var a1s=cJ.__importDefault(cqr());U1.NpmLoginCommand=a1s.default;var c1s=cJ.__importDefault(JEs());U1.NpmLogoutCommand=c1s.default;var l1s=cJ.__importDefault(KEs());U1.NpmPublishCommand=l1s.default;var u1s=cJ.__importDefault($Es());U1.NpmTagAddCommand=u1s.default;var g1s=cJ.__importDefault(P9t());U1.NpmTagListCommand=g1s.default;var A1s=cJ.__importDefault(t1s());U1.NpmTagRemoveCommand=A1s.default;var d1s=cJ.__importDefault(i1s());U1.NpmWhoamiCommand=d1s.default;var zVl=cJ.__importStar(k9t());U1.npmAuditTypes=zVl;var qVl=cJ.__importStar(rqr());U1.npmAuditUtils=qVl;var $Vl={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:O9t.SettingsType.STRING,default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:O9t.SettingsType.BOOLEAN,default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0}},commands:[s1s.default,o1s.default,a1s.default,c1s.default,l1s.default,u1s.default,g1s.default,A1s.default,d1s.default]};U1.default=$Vl});var f1s=H(M9t=>{"use strict";Object.defineProperty(M9t,"__esModule",{value:!0});M9t.CACHE_VERSION=void 0;M9t.CACHE_VERSION=3});var Y9t=H(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});CL.PatchMutationType=CL.EXECUTABLE_FILE_MODE=CL.NON_EXECUTABLE_FILE_MODE=void 0;CL.getPath=z0e;CL.parseHunkHeaderLine=h1s;CL.interpretParsedPatchFile=m1s;CL.parsePatchFile=iPl;CL.verifyHunkIntegrity=C1s;var bqr=Bn(),aqe=no(),ePl=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function z0e(e){return aqe.ppath.relative(aqe.PortablePath.root,aqe.ppath.resolve(aqe.PortablePath.root,aqe.npath.toPortablePath(e)))}function h1s(e){let t=e.trim().match(ePl);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}CL.NON_EXECUTABLE_FILE_MODE=420;CL.EXECUTABLE_FILE_MODE=493;var nY;(function(e){e.Context="context",e.Insertion="insertion",e.Deletion="deletion"})(nY||(CL.PatchMutationType=nY={}));var I1s=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),tPl=e=>({header:h1s(e),parts:[]}),rPl={"@":"header","-":nY.Deletion,"+":nY.Insertion," ":nY.Context,"\\":"pragma",undefined:nY.Context};function nPl(e){let t=[],r=I1s(),n="parsing header",a=null,o=null;function l(){a&&(o&&(a.parts.push(o),o=null),r.hunks.push(a),a=null)}function A(){l(),t.push(r),r=I1s()}for(let f=0;f0?"patch":"mode change",ae=null;switch(X){case"rename":{if(!C||!b)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:n,fromPath:z0e(C),toPath:z0e(b)}),ae=b}break;case"file deletion":{let ne=a||B;if(!ne)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(f),hash:E})}break;case"file creation":{let ne=o||F;if(!ne)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(I),hash:N})}break;case"patch":case"mode change":ae=F||o;break;default:bqr.miscUtils.assertNever(X);break}ae&&l&&A&&l!==A&&t.push({type:"mode change",semverExclusivity:n,path:z0e(ae),oldMode:H9t(l),newMode:H9t(A)}),ae&&Q&&Q.length&&t.push({type:"patch",semverExclusivity:n,path:z0e(ae),hunks:Q,beforeHash:E,afterHash:N})}if(t.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return t}function H9t(e){let t=parseInt(e,8)&511;if(t!==CL.NON_EXECUTABLE_FILE_MODE&&t!==CL.EXECUTABLE_FILE_MODE)throw new Error(`Unexpected file mode string: ${e}`);return t}function iPl(e){let t=e.split(/\n/g);return t[t.length-1]===""&&t.pop(),m1s(nPl(t))}function C1s(e){let t=0,r=0;for(let{type:n,lines:a}of e.parts)switch(n){case nY.Context:r+=a.length,t+=a.length;break;case nY.Deletion:t+=a.length;break;case nY.Insertion:r+=a.length;break;default:bqr.miscUtils.assertNever(n);break}if(t!==e.header.original.length||r!==e.header.patched.length){let n=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}});var Sqr=H(Q9t=>{"use strict";Object.defineProperty(Q9t,"__esModule",{value:!0});Q9t.UnmatchedHunkError=void 0;var Eqr=class extends Error{constructor(t,r){super(`Cannot apply hunk #${t+1}`),this.hunk=r}};Q9t.UnmatchedHunkError=Eqr});var S1s=H(U9t=>{"use strict";Object.defineProperty(U9t,"__esModule",{value:!0});U9t.applyPatchFile=oPl;U9t.applyPatch=E1s;var J9t=Bn(),mre=no(),sPl=Sqr(),X9t=Y9t();async function YFe(e,t,r){let n=await e.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await e.lutimesPromise(t,n.atime,n.mtime)}async function oPl(e,{baseFs:t=new mre.NodeFS,dryRun:r=!1,version:n=null}={}){for(let a of e)if(!(a.semverExclusivity!==null&&n!==null&&!J9t.semverUtils.satisfiesWithPrereleases(n,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!t.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await YFe(t,mre.ppath.dirname(a.path),async()=>{await t.unlinkPromise(a.path)});break;case"rename":if(r){if(!t.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await YFe(t,mre.ppath.dirname(a.fromPath),async()=>{await YFe(t,mre.ppath.dirname(a.toPath),async()=>{await YFe(t,a.fromPath,async()=>(await t.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(t.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let o=a.hunk?a.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});mqr.default=sqe});var i1s=H(yqr=>{"use strict";Object.defineProperty(yqr,"__esModule",{value:!0});var r1s=el(),Cqr=Bn(),n1s=Bn(),j0e=sJ(),_qr=($c(),vi(rg)),oqe=class extends r1s.BaseCommand{constructor(){super(...arguments),this.scope=_qr.Option.String("-s,--scope",{description:"Print username for the registry configured for a given scope"}),this.publish=_qr.Option.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Cqr.Configuration.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t,type:j0e.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t}):this.publish?r=j0e.npmConfigUtils.getPublishRegistry((await(0,r1s.openWorkspace)(t,this.context.cwd)).manifest,{configuration:t}):r=j0e.npmConfigUtils.getDefaultRegistry({configuration:t}),(await n1s.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o;try{o=await j0e.npmHttpUtils.get("/-/whoami",{configuration:t,registry:r,authType:j0e.npmHttpUtils.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?n1s.structUtils.makeIdent(this.scope,""):void 0})}catch(l){if(l.response?.statusCode===401||l.response?.statusCode===403){a.reportError(Cqr.MessageName.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}a.reportInfo(Cqr.MessageName.UNNAMED,o.username)})).exitCode()}};oqe.paths=[["npm","whoami"]];oqe.usage=_qr.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});yqr.default=oqe});var p1s=H(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});U1.NpmWhoamiCommand=U1.NpmTagRemoveCommand=U1.NpmTagListCommand=U1.NpmTagAddCommand=U1.NpmPublishCommand=U1.NpmLogoutCommand=U1.NpmLoginCommand=U1.NpmInfoCommand=U1.NpmAuditCommand=U1.npmAuditUtils=U1.npmAuditTypes=void 0;var cJ=(Pa(),vi(Va)),O9t=Bn(),s1s=cJ.__importDefault(VEs());U1.NpmAuditCommand=s1s.default;var o1s=cJ.__importDefault(OEs());U1.NpmInfoCommand=o1s.default;var a1s=cJ.__importDefault(cqr());U1.NpmLoginCommand=a1s.default;var c1s=cJ.__importDefault(JEs());U1.NpmLogoutCommand=c1s.default;var l1s=cJ.__importDefault(KEs());U1.NpmPublishCommand=l1s.default;var u1s=cJ.__importDefault($Es());U1.NpmTagAddCommand=u1s.default;var g1s=cJ.__importDefault(P9t());U1.NpmTagListCommand=g1s.default;var A1s=cJ.__importDefault(t1s());U1.NpmTagRemoveCommand=A1s.default;var d1s=cJ.__importDefault(i1s());U1.NpmWhoamiCommand=d1s.default;var qVl=cJ.__importStar(k9t());U1.npmAuditTypes=qVl;var $Vl=cJ.__importStar(rqr());U1.npmAuditUtils=$Vl;var ePl={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:O9t.SettingsType.STRING,default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:O9t.SettingsType.BOOLEAN,default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0}},commands:[s1s.default,o1s.default,a1s.default,c1s.default,l1s.default,u1s.default,g1s.default,A1s.default,d1s.default]};U1.default=ePl});var f1s=H(M9t=>{"use strict";Object.defineProperty(M9t,"__esModule",{value:!0});M9t.CACHE_VERSION=void 0;M9t.CACHE_VERSION=3});var Y9t=H(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});CL.PatchMutationType=CL.EXECUTABLE_FILE_MODE=CL.NON_EXECUTABLE_FILE_MODE=void 0;CL.getPath=z0e;CL.parseHunkHeaderLine=h1s;CL.interpretParsedPatchFile=m1s;CL.parsePatchFile=sPl;CL.verifyHunkIntegrity=C1s;var bqr=Bn(),aqe=no(),tPl=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function z0e(e){return aqe.ppath.relative(aqe.PortablePath.root,aqe.ppath.resolve(aqe.PortablePath.root,aqe.npath.toPortablePath(e)))}function h1s(e){let t=e.trim().match(tPl);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}CL.NON_EXECUTABLE_FILE_MODE=420;CL.EXECUTABLE_FILE_MODE=493;var nY;(function(e){e.Context="context",e.Insertion="insertion",e.Deletion="deletion"})(nY||(CL.PatchMutationType=nY={}));var I1s=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),rPl=e=>({header:h1s(e),parts:[]}),nPl={"@":"header","-":nY.Deletion,"+":nY.Insertion," ":nY.Context,"\\":"pragma",undefined:nY.Context};function iPl(e){let t=[],r=I1s(),n="parsing header",a=null,o=null;function l(){a&&(o&&(a.parts.push(o),o=null),r.hunks.push(a),a=null)}function A(){l(),t.push(r),r=I1s()}for(let f=0;f0?"patch":"mode change",ae=null;switch(X){case"rename":{if(!C||!b)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:n,fromPath:z0e(C),toPath:z0e(b)}),ae=b}break;case"file deletion":{let ne=a||B;if(!ne)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(f),hash:E})}break;case"file creation":{let ne=o||F;if(!ne)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(I),hash:N})}break;case"patch":case"mode change":ae=F||o;break;default:bqr.miscUtils.assertNever(X);break}ae&&l&&A&&l!==A&&t.push({type:"mode change",semverExclusivity:n,path:z0e(ae),oldMode:H9t(l),newMode:H9t(A)}),ae&&Q&&Q.length&&t.push({type:"patch",semverExclusivity:n,path:z0e(ae),hunks:Q,beforeHash:E,afterHash:N})}if(t.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return t}function H9t(e){let t=parseInt(e,8)&511;if(t!==CL.NON_EXECUTABLE_FILE_MODE&&t!==CL.EXECUTABLE_FILE_MODE)throw new Error(`Unexpected file mode string: ${e}`);return t}function sPl(e){let t=e.split(/\n/g);return t[t.length-1]===""&&t.pop(),m1s(iPl(t))}function C1s(e){let t=0,r=0;for(let{type:n,lines:a}of e.parts)switch(n){case nY.Context:r+=a.length,t+=a.length;break;case nY.Deletion:t+=a.length;break;case nY.Insertion:r+=a.length;break;default:bqr.miscUtils.assertNever(n);break}if(t!==e.header.original.length||r!==e.header.patched.length){let n=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}});var Sqr=H(Q9t=>{"use strict";Object.defineProperty(Q9t,"__esModule",{value:!0});Q9t.UnmatchedHunkError=void 0;var Eqr=class extends Error{constructor(t,r){super(`Cannot apply hunk #${t+1}`),this.hunk=r}};Q9t.UnmatchedHunkError=Eqr});var S1s=H(U9t=>{"use strict";Object.defineProperty(U9t,"__esModule",{value:!0});U9t.applyPatchFile=aPl;U9t.applyPatch=E1s;var J9t=Bn(),mre=no(),oPl=Sqr(),X9t=Y9t();async function YFe(e,t,r){let n=await e.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await e.lutimesPromise(t,n.atime,n.mtime)}async function aPl(e,{baseFs:t=new mre.NodeFS,dryRun:r=!1,version:n=null}={}){for(let a of e)if(!(a.semverExclusivity!==null&&n!==null&&!J9t.semverUtils.satisfiesWithPrereleases(n,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!t.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await YFe(t,mre.ppath.dirname(a.path),async()=>{await t.unlinkPromise(a.path)});break;case"rename":if(r){if(!t.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await YFe(t,mre.ppath.dirname(a.fromPath),async()=>{await YFe(t,mre.ppath.dirname(a.toPath),async()=>{await YFe(t,a.fromPath,async()=>(await t.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(t.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let o=a.hunk?a.hunk.parts[0].lines.join(` `)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await t.mkdirpPromise(mre.ppath.dirname(a.path),{chmod:493,utimes:[mre.constants.SAFE_TIME,mre.constants.SAFE_TIME]}),await t.writeFilePromise(a.path,o,{mode:a.mode}),await t.utimesPromise(a.path,mre.constants.SAFE_TIME,mre.constants.SAFE_TIME)}break;case"patch":await YFe(t,a.path,async()=>{await E1s(a,{baseFs:t,dryRun:r})});break;case"mode change":{let l=(await t.statPromise(a.path)).mode;if(_1s(a.newMode)!==_1s(l))continue;await YFe(t,a.path,async()=>{await t.chmodPromise(a.path,a.newMode)})}break;default:J9t.miscUtils.assertNever(a);break}}function _1s(e){return(e&64)>0}function y1s(e){return e.replace(/\s+$/,"")}function aPl(e,t){return y1s(e)===y1s(t)}async function E1s({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){let a=await r.statSync(t).mode,l=(await r.readFileSync(t,"utf8")).split(/\n/),A=[],f=0,I=0;for(let b of e){let E=Math.max(I,b.header.patched.start+f),N=Math.max(0,E-I),B=Math.max(0,l.length-E-b.header.original.length),F=Math.max(N,B),Q=0,X=0,ae=null;for(;Q<=F;){if(Q<=N&&(X=E-Q,ae=b1s(b,l,X),ae!==null)){Q=-Q;break}if(Q<=B&&(X=E+Q,ae=b1s(b,l,X),ae!==null))break;Q+=1}if(ae===null)throw new sPl.UnmatchedHunkError(e.indexOf(b),b);A.push(ae),f+=Q,I=X+b.header.original.length}if(n)return;let C=0;for(let b of A)for(let E of b)switch(E.type){case"splice":{let N=E.index+C;l.splice(N,E.numToDelete,...E.linesToInsert),C+=E.linesToInsert.length-E.numToDelete}break;case"pop":l.pop();break;case"push":l.push(E.line);break;default:J9t.miscUtils.assertNever(E);break}await r.writeFilePromise(t,l.join(` -`),{mode:a})}function b1s(e,t,r){let n=[];for(let a of e.parts)switch(a.type){case X9t.PatchMutationType.Context:case X9t.PatchMutationType.Deletion:{for(let o of a.lines){let l=t[r];if(l==null||!aPl(l,o))return null;r+=1}a.type===X9t.PatchMutationType.Deletion&&(n.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&n.push({type:"push",line:""}))}break;case X9t.PatchMutationType.Insertion:n.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:J9t.miscUtils.assertNever(a.type);break}return n}});var XFe=H(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.parsePatchFile=iB.applyPatchFile=void 0;iB.isPatchDescriptor=B1s;iB.isPatchLocator=w1s;iB.parseDescriptor=gPl;iB.parseLocator=APl;iB.unpatchDescriptor=dPl;iB.unpatchLocator=pPl;iB.ensureUnpatchedDescriptor=fPl;iB.ensureUnpatchedLocator=T1s;iB.makeDescriptor=IPl;iB.makeLocator=hPl;iB.extractPatchFlags=D1s;iB.isParentRequired=mPl;iB.loadPatchFiles=CPl;iB.extractPackageToDisk=_Pl;iB.diffFolders=yPl;iB.makePatchHash=bPl;var M2=Bn(),dw=no(),cPl=f1s(),v1s=Y9t();Object.defineProperty(iB,"parsePatchFile",{enumerable:!0,get:function(){return v1s.parsePatchFile}});var lPl=S1s();Object.defineProperty(iB,"applyPatchFile",{enumerable:!0,get:function(){return lPl.applyPatchFile}});var uPl=/^builtin<([^>]+)>$/;function QFe(e,t){let{protocol:r,source:n,selector:a,params:o}=M2.structUtils.parseRange(e);if(r!=="patch:")throw new Error("Invalid patch range");if(n===null)throw new Error("Patch locators must explicitly define their source");let l=a?a.split(/&/).map(C=>dw.npath.toPortablePath(C)):[],A=o&&typeof o.locator=="string"?M2.structUtils.parseLocator(o.locator):null,f=o&&typeof o.version=="string"?o.version:null,I=t(n);return{parentLocator:A,sourceItem:I,patchPaths:l,sourceVersion:f}}function B1s(e){return e.range.startsWith("patch:")}function w1s(e){return e.reference.startsWith("patch:")}function gPl(e){let{sourceItem:t,...r}=QFe(e.range,M2.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function APl(e){let{sourceItem:t,...r}=QFe(e.reference,M2.structUtils.parseLocator);return{...r,sourceLocator:t}}function dPl(e){let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function pPl(e){let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function fPl(e){if(!B1s(e))return e;let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function T1s(e){if(!w1s(e))return e;let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function R1s({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:a},o){let l=e!==null?{locator:M2.structUtils.stringifyLocator(e)}:{},A=typeof n<"u"?{version:n}:{},f=typeof a<"u"?{hash:a}:{};return M2.structUtils.makeRange({protocol:"patch:",source:o(t),selector:r.join("&"),params:{...A,...f,...l}})}function IPl(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return M2.structUtils.makeDescriptor(e,R1s({parentLocator:t,sourceItem:r,patchPaths:n},M2.structUtils.stringifyDescriptor))}function hPl(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:a}){return M2.structUtils.makeLocator(e,R1s({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:a},M2.structUtils.stringifyLocator))}function N1s({onAbsolute:e,onRelative:t,onProject:r,onBuiltin:n},a){let o=a.lastIndexOf("!");o!==-1&&(a=a.slice(o+1));let l=a.match(uPl);return l!==null?n(l[1]):a.startsWith("~/")?r(a.slice(2)):dw.ppath.isAbsolute(a)?e(a):t(a)}function D1s(e){let t=e.lastIndexOf("!");return{optional:(t!==-1?new Set(e.slice(0,t).split(/!/)):new Set).has("optional")}}function mPl(e){return N1s({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},e)}async function CPl(e,t,r){let n=e!==null?await r.fetcher.fetch(e,r):null,a=n&&n.localPath?{packageFs:new dw.CwdFS(dw.PortablePath.root),prefixPath:dw.ppath.relative(dw.PortablePath.root,n.localPath)}:n;n&&n!==a&&n.releaseFs&&n.releaseFs();let o=await M2.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async l=>{let A=D1s(l),f=await N1s({onAbsolute:async I=>await dw.xfs.readFilePromise(I,"utf8"),onRelative:async I=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(dw.ppath.join(a.prefixPath,I),"utf8")},onProject:async I=>await dw.xfs.readFilePromise(dw.ppath.join(r.project.cwd,I),"utf8"),onBuiltin:async I=>await r.project.configuration.firstHook(C=>C.getBuiltinPatch,r.project,I)},l);return{...A,source:f}})));for(let l of o)typeof l.source=="string"&&(l.source=l.source.replace(/\r\n?/g,` -`));return o}async function _Pl(e,{cache:t,project:r}){let n=r.storedPackages.get(e.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=T1s(e),o=r.storedChecksums,l=new M2.ThrowReport,A=await dw.xfs.mktempPromise(),f=dw.ppath.join(A,"source"),I=dw.ppath.join(A,"user"),C=dw.ppath.join(A,".yarn-patch.json"),b=r.configuration.makeFetcher(),E=[];try{let N,B;if(e.locatorHash===a.locatorHash){let F=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l});E.push(()=>F.releaseFs?.()),N=F,B=F}else N=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>N.releaseFs?.()),B=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>B.releaseFs?.());await Promise.all([dw.xfs.copyPromise(f,N.prefixPath,{baseFs:N.packageFs}),dw.xfs.copyPromise(I,B.prefixPath,{baseFs:B.packageFs}),dw.xfs.writeJsonPromise(C,{locator:M2.structUtils.stringifyLocator(e),version:n.version})])}finally{for(let N of E)N()}return dw.xfs.detachTemp(A),I}async function yPl(e,t){let r=dw.npath.fromPortablePath(e).replace(/\\/g,"/"),n=dw.npath.fromPortablePath(t).replace(/\\/g,"/"),{stdout:a,stderr:o}=await M2.execUtils.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,n],{cwd:dw.npath.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(o.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`):"";await t.mkdirpPromise(mre.ppath.dirname(a.path),{chmod:493,utimes:[mre.constants.SAFE_TIME,mre.constants.SAFE_TIME]}),await t.writeFilePromise(a.path,o,{mode:a.mode}),await t.utimesPromise(a.path,mre.constants.SAFE_TIME,mre.constants.SAFE_TIME)}break;case"patch":await YFe(t,a.path,async()=>{await E1s(a,{baseFs:t,dryRun:r})});break;case"mode change":{let l=(await t.statPromise(a.path)).mode;if(_1s(a.newMode)!==_1s(l))continue;await YFe(t,a.path,async()=>{await t.chmodPromise(a.path,a.newMode)})}break;default:J9t.miscUtils.assertNever(a);break}}function _1s(e){return(e&64)>0}function y1s(e){return e.replace(/\s+$/,"")}function cPl(e,t){return y1s(e)===y1s(t)}async function E1s({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){let a=await r.statSync(t).mode,l=(await r.readFileSync(t,"utf8")).split(/\n/),A=[],f=0,I=0;for(let b of e){let E=Math.max(I,b.header.patched.start+f),N=Math.max(0,E-I),B=Math.max(0,l.length-E-b.header.original.length),F=Math.max(N,B),Q=0,X=0,ae=null;for(;Q<=F;){if(Q<=N&&(X=E-Q,ae=b1s(b,l,X),ae!==null)){Q=-Q;break}if(Q<=B&&(X=E+Q,ae=b1s(b,l,X),ae!==null))break;Q+=1}if(ae===null)throw new oPl.UnmatchedHunkError(e.indexOf(b),b);A.push(ae),f+=Q,I=X+b.header.original.length}if(n)return;let C=0;for(let b of A)for(let E of b)switch(E.type){case"splice":{let N=E.index+C;l.splice(N,E.numToDelete,...E.linesToInsert),C+=E.linesToInsert.length-E.numToDelete}break;case"pop":l.pop();break;case"push":l.push(E.line);break;default:J9t.miscUtils.assertNever(E);break}await r.writeFilePromise(t,l.join(` +`),{mode:a})}function b1s(e,t,r){let n=[];for(let a of e.parts)switch(a.type){case X9t.PatchMutationType.Context:case X9t.PatchMutationType.Deletion:{for(let o of a.lines){let l=t[r];if(l==null||!cPl(l,o))return null;r+=1}a.type===X9t.PatchMutationType.Deletion&&(n.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&n.push({type:"push",line:""}))}break;case X9t.PatchMutationType.Insertion:n.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:J9t.miscUtils.assertNever(a.type);break}return n}});var XFe=H(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.parsePatchFile=iB.applyPatchFile=void 0;iB.isPatchDescriptor=B1s;iB.isPatchLocator=w1s;iB.parseDescriptor=APl;iB.parseLocator=dPl;iB.unpatchDescriptor=pPl;iB.unpatchLocator=fPl;iB.ensureUnpatchedDescriptor=IPl;iB.ensureUnpatchedLocator=T1s;iB.makeDescriptor=hPl;iB.makeLocator=mPl;iB.extractPatchFlags=D1s;iB.isParentRequired=CPl;iB.loadPatchFiles=_Pl;iB.extractPackageToDisk=yPl;iB.diffFolders=bPl;iB.makePatchHash=EPl;var M2=Bn(),dw=no(),lPl=f1s(),v1s=Y9t();Object.defineProperty(iB,"parsePatchFile",{enumerable:!0,get:function(){return v1s.parsePatchFile}});var uPl=S1s();Object.defineProperty(iB,"applyPatchFile",{enumerable:!0,get:function(){return uPl.applyPatchFile}});var gPl=/^builtin<([^>]+)>$/;function QFe(e,t){let{protocol:r,source:n,selector:a,params:o}=M2.structUtils.parseRange(e);if(r!=="patch:")throw new Error("Invalid patch range");if(n===null)throw new Error("Patch locators must explicitly define their source");let l=a?a.split(/&/).map(C=>dw.npath.toPortablePath(C)):[],A=o&&typeof o.locator=="string"?M2.structUtils.parseLocator(o.locator):null,f=o&&typeof o.version=="string"?o.version:null,I=t(n);return{parentLocator:A,sourceItem:I,patchPaths:l,sourceVersion:f}}function B1s(e){return e.range.startsWith("patch:")}function w1s(e){return e.reference.startsWith("patch:")}function APl(e){let{sourceItem:t,...r}=QFe(e.range,M2.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function dPl(e){let{sourceItem:t,...r}=QFe(e.reference,M2.structUtils.parseLocator);return{...r,sourceLocator:t}}function pPl(e){let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function fPl(e){let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function IPl(e){if(!B1s(e))return e;let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function T1s(e){if(!w1s(e))return e;let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function R1s({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:a},o){let l=e!==null?{locator:M2.structUtils.stringifyLocator(e)}:{},A=typeof n<"u"?{version:n}:{},f=typeof a<"u"?{hash:a}:{};return M2.structUtils.makeRange({protocol:"patch:",source:o(t),selector:r.join("&"),params:{...A,...f,...l}})}function hPl(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return M2.structUtils.makeDescriptor(e,R1s({parentLocator:t,sourceItem:r,patchPaths:n},M2.structUtils.stringifyDescriptor))}function mPl(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:a}){return M2.structUtils.makeLocator(e,R1s({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:a},M2.structUtils.stringifyLocator))}function N1s({onAbsolute:e,onRelative:t,onProject:r,onBuiltin:n},a){let o=a.lastIndexOf("!");o!==-1&&(a=a.slice(o+1));let l=a.match(gPl);return l!==null?n(l[1]):a.startsWith("~/")?r(a.slice(2)):dw.ppath.isAbsolute(a)?e(a):t(a)}function D1s(e){let t=e.lastIndexOf("!");return{optional:(t!==-1?new Set(e.slice(0,t).split(/!/)):new Set).has("optional")}}function CPl(e){return N1s({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},e)}async function _Pl(e,t,r){let n=e!==null?await r.fetcher.fetch(e,r):null,a=n&&n.localPath?{packageFs:new dw.CwdFS(dw.PortablePath.root),prefixPath:dw.ppath.relative(dw.PortablePath.root,n.localPath)}:n;n&&n!==a&&n.releaseFs&&n.releaseFs();let o=await M2.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async l=>{let A=D1s(l),f=await N1s({onAbsolute:async I=>await dw.xfs.readFilePromise(I,"utf8"),onRelative:async I=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(dw.ppath.join(a.prefixPath,I),"utf8")},onProject:async I=>await dw.xfs.readFilePromise(dw.ppath.join(r.project.cwd,I),"utf8"),onBuiltin:async I=>await r.project.configuration.firstHook(C=>C.getBuiltinPatch,r.project,I)},l);return{...A,source:f}})));for(let l of o)typeof l.source=="string"&&(l.source=l.source.replace(/\r\n?/g,` +`));return o}async function yPl(e,{cache:t,project:r}){let n=r.storedPackages.get(e.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=T1s(e),o=r.storedChecksums,l=new M2.ThrowReport,A=await dw.xfs.mktempPromise(),f=dw.ppath.join(A,"source"),I=dw.ppath.join(A,"user"),C=dw.ppath.join(A,".yarn-patch.json"),b=r.configuration.makeFetcher(),E=[];try{let N,B;if(e.locatorHash===a.locatorHash){let F=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l});E.push(()=>F.releaseFs?.()),N=F,B=F}else N=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>N.releaseFs?.()),B=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>B.releaseFs?.());await Promise.all([dw.xfs.copyPromise(f,N.prefixPath,{baseFs:N.packageFs}),dw.xfs.copyPromise(I,B.prefixPath,{baseFs:B.packageFs}),dw.xfs.writeJsonPromise(C,{locator:M2.structUtils.stringifyLocator(e),version:n.version})])}finally{for(let N of E)N()}return dw.xfs.detachTemp(A),I}async function bPl(e,t){let r=dw.npath.fromPortablePath(e).replace(/\\/g,"/"),n=dw.npath.fromPortablePath(t).replace(/\\/g,"/"),{stdout:a,stderr:o}=await M2.execUtils.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,n],{cwd:dw.npath.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(o.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${o}`);let l=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${M2.miscUtils.escapeRegExp(`/${l(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${M2.miscUtils.escapeRegExp(`/${l(n)}/`)}`,"g"),"$1/").replace(new RegExp(M2.miscUtils.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(M2.miscUtils.escapeRegExp(`${n}/`),"g"),"")}function bPl(e,t){let r=[];for(let{source:n}of e){if(n===null)continue;let a=(0,v1s.parsePatchFile)(n);for(let o of a){let{semverExclusivity:l,...A}=o;l!==null&&t!==null&&!M2.semverUtils.satisfiesWithPrereleases(t,l)||r.push(JSON.stringify(A))}}return M2.hashUtils.makeHash(`${cPl.CACHE_VERSION}`,...r).slice(0,6)}});var k1s=H(Bqr=>{"use strict";Object.defineProperty(Bqr,"__esModule",{value:!0});Bqr.reportHunk=EPl;var rge=Bn(),vqr=Y9t();function EPl(e,{configuration:t,report:r}){for(let n of e.parts)for(let a of n.lines)switch(n.type){case vqr.PatchMutationType.Context:r.reportInfo(null,` ${rge.formatUtils.pretty(t,a,"grey")}`);break;case vqr.PatchMutationType.Deletion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`- ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.REMOVED)}`);break;case vqr.PatchMutationType.Insertion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`+ ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.ADDED)}`);break;default:rge.miscUtils.assertNever(n.type)}}});var x1s=H(K9t=>{"use strict";Object.defineProperty(K9t,"__esModule",{value:!0});K9t.PatchFetcher=void 0;var SPl=(Pa(),vi(Va)),wqr=Bn(),cqe=Bn(),lqe=no(),Tqr=zK(),uqe=SPl.__importStar(XFe()),vPl=Sqr(),BPl=k1s(),Rqr=class{supports(t,r){return!!uqe.isPatchLocator(t)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${cqe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:cqe.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async patchPackage(t,r){let{parentLocator:n,sourceLocator:a,sourceVersion:o,patchPaths:l}=uqe.parseLocator(t),A=await uqe.loadPatchFiles(n,l,r),f=await lqe.xfs.mktempPromise(),I=lqe.ppath.join(f,"current.zip"),C=await r.fetcher.fetch(a,r),b=cqe.structUtils.getIdentVendorPath(t),E=new Tqr.ZipFS(I,{create:!0,level:r.project.configuration.get("compressionLevel")});await cqe.miscUtils.releaseAfterUseAsync(async()=>{await E.copyPromise(b,C.prefixPath,{baseFs:C.packageFs,stableSort:!0})},C.releaseFs),E.saveAndClose();for(let{source:N,optional:B}of A){if(N===null)continue;let F=new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")}),Q=new lqe.CwdFS(lqe.ppath.resolve(lqe.PortablePath.root,b),{baseFs:F});try{await uqe.applyPatchFile(uqe.parsePatchFile(N),{baseFs:Q,version:o})}catch(X){if(!(X instanceof vPl.UnmatchedHunkError))throw X;let ae=r.project.configuration.get("enableInlineHunks"),ne=!ae&&!B?" (set enableInlineHunks for details)":"",ce=`${cqe.structUtils.prettyLocator(r.project.configuration,t)}: ${X.message}${ne}`,fe=ue=>{ae&&(0,BPl.reportHunk)(X.hunk,{configuration:r.project.configuration,report:ue})};if(F.discardAndClose(),B){r.report.reportWarningOnce(wqr.MessageName.PATCH_HUNK_FAILED,ce,{reportExtra:fe});continue}else throw new wqr.ReportError(wqr.MessageName.PATCH_HUNK_FAILED,ce,fe)}F.saveAndClose()}return new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")})}};K9t.PatchFetcher=Rqr});var F1s=H(j9t=>{"use strict";Object.defineProperty(j9t,"__esModule",{value:!0});j9t.PatchResolver=void 0;var wPl=(Pa(),vi(Va)),G1s=Bn(),Q6=wPl.__importStar(XFe()),Nqr=class{supportsDescriptor(t,r){return!!Q6.isPatchDescriptor(t)}supportsLocator(t,r){return!!Q6.isPatchLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){let{patchPaths:a}=Q6.parseDescriptor(t);return a.every(o=>!Q6.isParentRequired(o))?t:G1s.structUtils.bindDescriptor(t,{locator:G1s.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){let{sourceDescriptor:n}=Q6.parseDescriptor(t);return{sourceDescriptor:r.project.configuration.normalizeDependency(n)}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:o}=Q6.parseDescriptor(t),l=await Q6.loadPatchFiles(a,o,n.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let f=Q6.makePatchHash(l,A.version);return[Q6.makeLocator(t,{parentLocator:a,sourcePackage:A,patchPaths:o,patchHash:f})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let{sourceLocator:n}=Q6.parseLocator(t);return{...await r.resolver.resolve(n,r),...t}}};j9t.PatchResolver=Nqr});var L1s=H(Dqr=>{"use strict";Object.defineProperty(Dqr,"__esModule",{value:!0});var TPl=(Pa(),vi(Va)),Z1s=el(),X6=Bn(),_L=no(),gqe=($c(),vi(rg)),z9t=TPl.__importStar(XFe()),Aqe=class extends Z1s.BaseCommand{constructor(){super(...arguments),this.save=gqe.Option.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"}),this.patchFolder=gqe.Option.String()}async execute(){let t=await X6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await X6.Project.find(t,this.context.cwd);if(!n)throw new Z1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=_L.ppath.resolve(this.context.cwd,_L.npath.toPortablePath(this.patchFolder)),o=_L.ppath.join(a,"../source"),l=_L.ppath.join(a,"../.yarn-patch.json");if(!_L.xfs.existsSync(o))throw new gqe.UsageError("The argument folder didn't get created by 'yarn patch'");let A=await z9t.diffFolders(o,a),f=await _L.xfs.readJsonPromise(l),I=X6.structUtils.parseLocator(f.locator,!0);if(!r.storedPackages.has(I.locatorHash))throw new gqe.UsageError("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(A);return}let C=t.get("patchFolder"),b=_L.ppath.join(C,`${X6.structUtils.slugifyLocator(I)}.patch`);await _L.xfs.mkdirPromise(C,{recursive:!0}),await _L.xfs.writeFilePromise(b,A);let E=[],N=new Map;for(let B of r.storedPackages.values()){if(X6.structUtils.isVirtualLocator(B))continue;let F=B.dependencies.get(I.identHash);if(!F)continue;let Q=X6.structUtils.ensureDevirtualizedDescriptor(F),X=z9t.ensureUnpatchedDescriptor(Q),ae=r.storedResolutions.get(X.descriptorHash);if(!ae)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!r.storedPackages.get(ae))throw new Error("Assertion failed: Expected the package to have been registered");let ce=r.tryWorkspaceByLocator(B);if(ce)E.push(ce);else{let fe=r.originalPackages.get(B.locatorHash);if(!fe)throw new Error("Assertion failed: Expected the original package to have been registered");let ue=fe.dependencies.get(F.identHash);if(!ue)throw new Error("Assertion failed: Expected the original dependency to have been registered");N.set(ue.descriptorHash,ue)}}for(let B of E)for(let F of X6.Manifest.hardDependencies){let Q=B.manifest[F].get(I.identHash);if(!Q)continue;let X=z9t.makeDescriptor(Q,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});B.manifest[F].set(Q.identHash,X)}for(let B of N.values()){let F=z9t.makeDescriptor(B,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:X6.structUtils.stringifyIdent(F),description:B.range}},reference:F.range})}await r.persist()}};Aqe.paths=[["patch-commit"]];Aqe.usage=gqe.Command.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Dqr.default=Aqe});var P1s=H(Gqr=>{"use strict";Object.defineProperty(Gqr,"__esModule",{value:!0});var RPl=(Pa(),vi(Va)),V1s=el(),TD=Bn(),kqr=no(),q0e=($c(),vi(rg)),xqr=RPl.__importStar(XFe()),dqe=class extends V1s.BaseCommand{constructor(){super(...arguments),this.update=q0e.Option.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"}),this.json=q0e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=q0e.Option.String()}async execute(){let t=await TD.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TD.Project.find(t,this.context.cwd),a=await TD.Cache.find(t);if(!n)throw new V1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=TD.structUtils.parseLocator(this.package);if(o.reference==="unknown"){let l=TD.miscUtils.mapAndFilter([...r.storedPackages.values()],A=>A.identHash!==o.identHash||TD.structUtils.isVirtualLocator(A)||xqr.isPatchLocator(A)!==this.update?TD.miscUtils.mapAndFilter.skip:A);if(l.length===0)throw new q0e.UsageError("No package found in the project for the given locator");if(l.length>1)throw new q0e.UsageError(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${o}`);let l=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${M2.miscUtils.escapeRegExp(`/${l(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${M2.miscUtils.escapeRegExp(`/${l(n)}/`)}`,"g"),"$1/").replace(new RegExp(M2.miscUtils.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(M2.miscUtils.escapeRegExp(`${n}/`),"g"),"")}function EPl(e,t){let r=[];for(let{source:n}of e){if(n===null)continue;let a=(0,v1s.parsePatchFile)(n);for(let o of a){let{semverExclusivity:l,...A}=o;l!==null&&t!==null&&!M2.semverUtils.satisfiesWithPrereleases(t,l)||r.push(JSON.stringify(A))}}return M2.hashUtils.makeHash(`${lPl.CACHE_VERSION}`,...r).slice(0,6)}});var k1s=H(Bqr=>{"use strict";Object.defineProperty(Bqr,"__esModule",{value:!0});Bqr.reportHunk=SPl;var rge=Bn(),vqr=Y9t();function SPl(e,{configuration:t,report:r}){for(let n of e.parts)for(let a of n.lines)switch(n.type){case vqr.PatchMutationType.Context:r.reportInfo(null,` ${rge.formatUtils.pretty(t,a,"grey")}`);break;case vqr.PatchMutationType.Deletion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`- ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.REMOVED)}`);break;case vqr.PatchMutationType.Insertion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`+ ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.ADDED)}`);break;default:rge.miscUtils.assertNever(n.type)}}});var x1s=H(K9t=>{"use strict";Object.defineProperty(K9t,"__esModule",{value:!0});K9t.PatchFetcher=void 0;var vPl=(Pa(),vi(Va)),wqr=Bn(),cqe=Bn(),lqe=no(),Tqr=zK(),uqe=vPl.__importStar(XFe()),BPl=Sqr(),wPl=k1s(),Rqr=class{supports(t,r){return!!uqe.isPatchLocator(t)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${cqe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:cqe.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async patchPackage(t,r){let{parentLocator:n,sourceLocator:a,sourceVersion:o,patchPaths:l}=uqe.parseLocator(t),A=await uqe.loadPatchFiles(n,l,r),f=await lqe.xfs.mktempPromise(),I=lqe.ppath.join(f,"current.zip"),C=await r.fetcher.fetch(a,r),b=cqe.structUtils.getIdentVendorPath(t),E=new Tqr.ZipFS(I,{create:!0,level:r.project.configuration.get("compressionLevel")});await cqe.miscUtils.releaseAfterUseAsync(async()=>{await E.copyPromise(b,C.prefixPath,{baseFs:C.packageFs,stableSort:!0})},C.releaseFs),E.saveAndClose();for(let{source:N,optional:B}of A){if(N===null)continue;let F=new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")}),Q=new lqe.CwdFS(lqe.ppath.resolve(lqe.PortablePath.root,b),{baseFs:F});try{await uqe.applyPatchFile(uqe.parsePatchFile(N),{baseFs:Q,version:o})}catch(X){if(!(X instanceof BPl.UnmatchedHunkError))throw X;let ae=r.project.configuration.get("enableInlineHunks"),ne=!ae&&!B?" (set enableInlineHunks for details)":"",ce=`${cqe.structUtils.prettyLocator(r.project.configuration,t)}: ${X.message}${ne}`,fe=ue=>{ae&&(0,wPl.reportHunk)(X.hunk,{configuration:r.project.configuration,report:ue})};if(F.discardAndClose(),B){r.report.reportWarningOnce(wqr.MessageName.PATCH_HUNK_FAILED,ce,{reportExtra:fe});continue}else throw new wqr.ReportError(wqr.MessageName.PATCH_HUNK_FAILED,ce,fe)}F.saveAndClose()}return new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")})}};K9t.PatchFetcher=Rqr});var F1s=H(j9t=>{"use strict";Object.defineProperty(j9t,"__esModule",{value:!0});j9t.PatchResolver=void 0;var TPl=(Pa(),vi(Va)),G1s=Bn(),Q6=TPl.__importStar(XFe()),Nqr=class{supportsDescriptor(t,r){return!!Q6.isPatchDescriptor(t)}supportsLocator(t,r){return!!Q6.isPatchLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){let{patchPaths:a}=Q6.parseDescriptor(t);return a.every(o=>!Q6.isParentRequired(o))?t:G1s.structUtils.bindDescriptor(t,{locator:G1s.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){let{sourceDescriptor:n}=Q6.parseDescriptor(t);return{sourceDescriptor:r.project.configuration.normalizeDependency(n)}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:o}=Q6.parseDescriptor(t),l=await Q6.loadPatchFiles(a,o,n.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let f=Q6.makePatchHash(l,A.version);return[Q6.makeLocator(t,{parentLocator:a,sourcePackage:A,patchPaths:o,patchHash:f})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let{sourceLocator:n}=Q6.parseLocator(t);return{...await r.resolver.resolve(n,r),...t}}};j9t.PatchResolver=Nqr});var L1s=H(Dqr=>{"use strict";Object.defineProperty(Dqr,"__esModule",{value:!0});var RPl=(Pa(),vi(Va)),Z1s=el(),X6=Bn(),_L=no(),gqe=($c(),vi(rg)),z9t=RPl.__importStar(XFe()),Aqe=class extends Z1s.BaseCommand{constructor(){super(...arguments),this.save=gqe.Option.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"}),this.patchFolder=gqe.Option.String()}async execute(){let t=await X6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await X6.Project.find(t,this.context.cwd);if(!n)throw new Z1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=_L.ppath.resolve(this.context.cwd,_L.npath.toPortablePath(this.patchFolder)),o=_L.ppath.join(a,"../source"),l=_L.ppath.join(a,"../.yarn-patch.json");if(!_L.xfs.existsSync(o))throw new gqe.UsageError("The argument folder didn't get created by 'yarn patch'");let A=await z9t.diffFolders(o,a),f=await _L.xfs.readJsonPromise(l),I=X6.structUtils.parseLocator(f.locator,!0);if(!r.storedPackages.has(I.locatorHash))throw new gqe.UsageError("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(A);return}let C=t.get("patchFolder"),b=_L.ppath.join(C,`${X6.structUtils.slugifyLocator(I)}.patch`);await _L.xfs.mkdirPromise(C,{recursive:!0}),await _L.xfs.writeFilePromise(b,A);let E=[],N=new Map;for(let B of r.storedPackages.values()){if(X6.structUtils.isVirtualLocator(B))continue;let F=B.dependencies.get(I.identHash);if(!F)continue;let Q=X6.structUtils.ensureDevirtualizedDescriptor(F),X=z9t.ensureUnpatchedDescriptor(Q),ae=r.storedResolutions.get(X.descriptorHash);if(!ae)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!r.storedPackages.get(ae))throw new Error("Assertion failed: Expected the package to have been registered");let ce=r.tryWorkspaceByLocator(B);if(ce)E.push(ce);else{let fe=r.originalPackages.get(B.locatorHash);if(!fe)throw new Error("Assertion failed: Expected the original package to have been registered");let ue=fe.dependencies.get(F.identHash);if(!ue)throw new Error("Assertion failed: Expected the original dependency to have been registered");N.set(ue.descriptorHash,ue)}}for(let B of E)for(let F of X6.Manifest.hardDependencies){let Q=B.manifest[F].get(I.identHash);if(!Q)continue;let X=z9t.makeDescriptor(Q,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});B.manifest[F].set(Q.identHash,X)}for(let B of N.values()){let F=z9t.makeDescriptor(B,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:X6.structUtils.stringifyIdent(F),description:B.range}},reference:F.range})}await r.persist()}};Aqe.paths=[["patch-commit"]];Aqe.usage=gqe.Command.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Dqr.default=Aqe});var P1s=H(Gqr=>{"use strict";Object.defineProperty(Gqr,"__esModule",{value:!0});var NPl=(Pa(),vi(Va)),V1s=el(),TD=Bn(),kqr=no(),q0e=($c(),vi(rg)),xqr=NPl.__importStar(XFe()),dqe=class extends V1s.BaseCommand{constructor(){super(...arguments),this.update=q0e.Option.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"}),this.json=q0e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=q0e.Option.String()}async execute(){let t=await TD.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TD.Project.find(t,this.context.cwd),a=await TD.Cache.find(t);if(!n)throw new V1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=TD.structUtils.parseLocator(this.package);if(o.reference==="unknown"){let l=TD.miscUtils.mapAndFilter([...r.storedPackages.values()],A=>A.identHash!==o.identHash||TD.structUtils.isVirtualLocator(A)||xqr.isPatchLocator(A)!==this.update?TD.miscUtils.mapAndFilter.skip:A);if(l.length===0)throw new q0e.UsageError("No package found in the project for the given locator");if(l.length>1)throw new q0e.UsageError(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${l.map(A=>` -- ${TD.structUtils.prettyLocator(t,A)}`).join("")}`);o=l[0]}if(!r.storedPackages.has(o.locatorHash))throw new q0e.UsageError("No package found in the project for the given locator");await TD.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=xqr.ensureUnpatchedLocator(o),f=await xqr.extractPackageToDisk(o,{cache:a,project:r});l.reportJson({locator:TD.structUtils.stringifyLocator(A),path:kqr.npath.fromPortablePath(f)});let I=this.update?" along with its current modifications":"";l.reportInfo(TD.MessageName.UNNAMED,`Package ${TD.structUtils.prettyLocator(t,A)} got extracted with success${I}!`),l.reportInfo(TD.MessageName.UNNAMED,`You can now edit the following folder: ${TD.formatUtils.pretty(t,kqr.npath.fromPortablePath(f),"magenta")}`),l.reportInfo(TD.MessageName.UNNAMED,`Once you are done run ${TD.formatUtils.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${kqr.npath.fromPortablePath(f)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};dqe.paths=[["patch"]];dqe.usage=q0e.Command.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});Gqr.default=dqe});var Q1s=H(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.patchUtils=zO.PatchCommand=zO.PatchCommitCommand=zO.PatchResolver=zO.PatchFetcher=void 0;var Fqr=(Pa(),vi(Va)),W1s=Bn(),O1s=x1s();Object.defineProperty(zO,"PatchFetcher",{enumerable:!0,get:function(){return O1s.PatchFetcher}});var M1s=F1s();Object.defineProperty(zO,"PatchResolver",{enumerable:!0,get:function(){return M1s.PatchResolver}});var H1s=Fqr.__importDefault(L1s());zO.PatchCommitCommand=H1s.default;var Y1s=Fqr.__importDefault(P1s());zO.PatchCommand=Y1s.default;var NPl=Fqr.__importStar(XFe());zO.patchUtils=NPl;var DPl={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:W1s.SettingsType.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:W1s.SettingsType.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[H1s.default,Y1s.default],fetchers:[O1s.PatchFetcher],resolvers:[M1s.PatchResolver]};zO.default=DPl});var K1s=H(q9t=>{"use strict";Object.defineProperty(q9t,"__esModule",{value:!0});q9t.PnpmLinker=void 0;var MS=Bn(),Wm=no(),X1s=mGe(),Zqr=($c(),vi(rg)),Lqr=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=a.pathsByLocator.get(t.locatorHash);if(typeof o>"u")throw new Zqr.UsageError(`Couldn't find ${MS.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed pnpm map - running an install might help`);return o.packageLocation}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=t.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(o){let f=a.locatorByPath.get(o[1]);if(f)return f}let l=t,A=t;do{A=l,l=Wm.ppath.dirname(A);let f=a.locatorByPath.get(A);if(f)return f}while(l!==A);return null}makeInstaller(t){return new Vqr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="pnpm"}};q9t.PnpmLinker=Lqr;var Vqr=class{constructor(t){this.opts=t,this.asyncActions=new MS.miscUtils.AsyncActions(10),this.customData={pathsByLocator:new Map,locatorByPath:new Map},this.indexFolderPromise=(0,Wm.setupCopyIndex)(Wm.xfs,{indexPath:Wm.ppath.join(t.project.configuration.get("globalFolder"),"index")})}attachCustomData(t){}async installPackage(t,r,n){switch(t.linkType){case MS.LinkType.SOFT:return this.installPackageSoft(t,r,n);case MS.LinkType.HARD:return this.installPackageHard(t,r,n)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(t,r,n){let a=Wm.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),o=this.opts.project.tryWorkspaceByLocator(t)?Wm.ppath.join(a,Wm.Filename.nodeModules):null;return this.customData.pathsByLocator.set(t.locatorHash,{packageLocation:a,dependenciesLocation:o}),{packageLocation:a,buildRequest:null}}async installPackageHard(t,r,n){let a=xPl(t,{project:this.opts.project}),o=a.packageLocation;this.customData.locatorByPath.set(o,MS.structUtils.stringifyLocator(t)),this.customData.pathsByLocator.set(t.locatorHash,a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{await Wm.xfs.mkdirPromise(o,{recursive:!0}),await Wm.xfs.copyPromise(o,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=MS.structUtils.isVirtualLocator(t)?MS.structUtils.devirtualizeLocator(t):t,f={manifest:await MS.Manifest.tryFind(r.prefixPath,{baseFs:r.packageFs})??new MS.Manifest,misc:{hasBindingGyp:X1s.jsInstallUtils.hasBindingGyp(r)}},I=this.opts.project.getDependencyMeta(A,t.version),C=X1s.jsInstallUtils.extractBuildRequest(t,f,I,{configuration:this.opts.project.configuration});return{packageLocation:o,buildRequest:C}}async attachInternalDependencies(t,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!J1s(t,{project:this.opts.project}))return;let n=this.customData.pathsByLocator.get(t.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(t)})`);let{dependenciesLocation:a}=n;a&&this.asyncActions.reduce(t.locatorHash,async o=>{await Wm.xfs.mkdirPromise(a,{recursive:!0});let l=await GPl(a),A=new Map(l),f=[o],I=(b,E)=>{let N=E;J1s(E,{project:this.opts.project})||(this.opts.report.reportWarningOnce(MS.MessageName.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),N=MS.structUtils.devirtualizeLocator(E));let B=this.customData.pathsByLocator.get(N.locatorHash);if(typeof B>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(E)})`);let F=MS.structUtils.stringifyIdent(b),Q=Wm.ppath.join(a,F),X=Wm.ppath.relative(Wm.ppath.dirname(Q),B.packageLocation),ae=A.get(F);A.delete(F),f.push(Promise.resolve().then(async()=>{if(ae){if(ae.isSymbolicLink()&&await Wm.xfs.readlinkPromise(Q)===X)return;await Wm.xfs.removePromise(Q)}await Wm.xfs.mkdirpPromise(Wm.ppath.dirname(Q)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")===MS.WindowsLinkType.JUNCTIONS?await Wm.xfs.symlinkPromise(B.packageLocation,Q,"junction"):await Wm.xfs.symlinkPromise(X,Q)}))},C=!1;for(let[b,E]of r)b.identHash===t.identHash&&(C=!0),I(b,E);!C&&!this.opts.project.tryWorkspaceByLocator(t)&&I(MS.structUtils.convertLocatorToDescriptor(t),t),f.push(FPl(a,A)),await Promise.all(f)})}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let t=U1s(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await Wm.xfs.removePromise(t);else{let r;try{r=new Set(await Wm.xfs.readdirPromise(t))}catch{r=new Set}for(let{dependenciesLocation:n}of this.customData.pathsByLocator.values()){if(!n)continue;let a=Wm.ppath.contains(t,n);if(a===null)continue;let[o]=a.split(Wm.ppath.sep);r.delete(o)}await Promise.all([...r].map(async n=>{await Wm.xfs.removePromise(Wm.ppath.join(t,n))}))}return await this.asyncActions.wait(),await Pqr(t),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await Pqr(kPl(this.opts.project)),{customData:this.customData}}};function kPl(e){return Wm.ppath.join(e.cwd,Wm.Filename.nodeModules)}function U1s(e){return e.configuration.get("pnpmStoreFolder")}function xPl(e,{project:t}){let r=MS.structUtils.slugifyLocator(e),n=U1s(t),a=Wm.ppath.join(n,r,"package"),o=Wm.ppath.join(n,r,Wm.Filename.nodeModules);return{packageLocation:a,dependenciesLocation:o}}function J1s(e,{project:t}){return!MS.structUtils.isVirtualLocator(e)||!t.tryWorkspaceByLocator(e)}async function GPl(e){let t=new Map,r=[];try{r=await Wm.xfs.readdirPromise(e,{withFileTypes:!0})}catch(n){if(n.code!=="ENOENT")throw n}try{for(let n of r)if(!n.name.startsWith("."))if(n.name.startsWith("@")){let a=await Wm.xfs.readdirPromise(Wm.ppath.join(e,n.name),{withFileTypes:!0});if(a.length===0)t.set(n.name,n);else for(let o of a)t.set(`${n.name}/${o.name}`,o)}else t.set(n.name,n)}catch(n){if(n.code!=="ENOENT")throw n}return t}async function FPl(e,t){let r=[],n=new Set;for(let a of t.keys()){r.push(Wm.xfs.removePromise(Wm.ppath.join(e,a)));let o=MS.structUtils.tryParseIdent(a)?.scope;o&&n.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...n].map(a=>Pqr(Wm.ppath.join(e,a)))))}async function Pqr(e){try{await Wm.xfs.rmdirPromise(e)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY"&&t.code!=="EBUSY")throw t}}});var z1s=H(pqe=>{"use strict";Object.defineProperty(pqe,"__esModule",{value:!0});pqe.PnpmLinker=void 0;var ZPl=Bn(),j1s=K1s();Object.defineProperty(pqe,"PnpmLinker",{enumerable:!0,get:function(){return j1s.PnpmLinker}});var LPl={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:ZPl.SettingsType.ABSOLUTE_PATH,default:"./node_modules/.store"}},linkers:[j1s.PnpmLinker]};pqe.default=LPl});var Wqr=H(lJ=>{"use strict";Object.defineProperty(lJ,"__esModule",{value:!0});lJ.ActionType=void 0;lJ.findVcsRoot=VPl;lJ.isYarnFile=PPl;lJ.expandDirectory=WPl;lJ.checkConsensus=$9t;lJ.findConsensus=OPl;lJ.getCommitPrefix=q1s;lJ.genCommitMessage=HPl;var nge=no(),$0e;(function(e){e[e.CREATE=0]="CREATE",e[e.DELETE=1]="DELETE",e[e.ADD=2]="ADD",e[e.REMOVE=3]="REMOVE",e[e.MODIFY=4]="MODIFY"})($0e||(lJ.ActionType=$0e={}));async function VPl(e,{marker:t}){do if(!nge.xfs.existsSync(nge.ppath.join(e,t)))e=nge.ppath.dirname(e);else return e;while(e!=="/");return null}function PPl(e,{roots:t,names:r}){if(r.has(nge.ppath.basename(e)))return!0;do if(!t.has(e))e=nge.ppath.dirname(e);else return!0;while(e!=="/");return!1}function WPl(e){let t=[],r=[e];for(;r.length>0;){let n=r.pop(),a=nge.xfs.readdirSync(n);for(let o of a){let l=nge.ppath.resolve(n,o);nge.xfs.lstatSync(l).isDirectory()?r.push(l):t.push(l)}}return t}function $9t(e,t){let r=0,n=0;for(let a of e)a!=="wip"&&(t.test(a)?r+=1:n+=1);return r>=n}function OPl(e){let t=$9t(e,/^(\w\(\w+\):\s*)?\w+s/),r=$9t(e,/^(\w\(\w+\):\s*)?[A-Z]/),n=$9t(e,/^\w\(\w+\):/);return{useThirdPerson:t,useUpperCase:r,useComponent:n}}function q1s(e){return e.useComponent?"chore(yarn): ":""}var MPl=new Map([[$0e.CREATE,"create"],[$0e.DELETE,"delete"],[$0e.ADD,"add"],[$0e.REMOVE,"remove"],[$0e.MODIFY,"update"]]);function HPl(e,t){let r=q1s(e),n=[],a=t.slice().sort((o,l)=>o[0]-l[0]);for(;a.length>0;){let[o,l]=a.shift(),A=MPl.get(o);e.useUpperCase&&n.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),e.useThirdPerson&&(A+="s");let f=[l];for(;a.length>0&&a[0][0]===o;){let[,C]=a.shift();f.push(C)}f.sort();let I=f.shift();f.length===1?I+=" (and one other)":f.length>1&&(I+=` (and ${f.length} others)`),n.push(`${A} ${I}`)}return`${r}${n.join(", ")}`}});var e2s=H(eVt=>{"use strict";Object.defineProperty(eVt,"__esModule",{value:!0});eVt.Driver=void 0;var YPl=(Pa(),vi(Va)),mx=Bn(),JFe=no(),K1=YPl.__importStar(Wqr()),QPl="Commit generated via `yarn stage`",XPl=11;async function $1s(e){let{code:t,stdout:r}=await mx.execUtils.execvp("git",["log","-1","--pretty=format:%H"],{cwd:e});return t===0?r.trim():null}async function JPl(e,t){let r=[],n=t.filter(I=>JFe.ppath.basename(I.path)==="package.json");for(let{action:I,path:C}of n){let b=JFe.ppath.relative(e,C);if(I===K1.ActionType.MODIFY){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N),F=await mx.Manifest.fromFile(C),Q=new Map([...F.dependencies,...F.devDependencies]),X=new Map([...B.dependencies,...B.devDependencies]);for(let[ae,ne]of X){let ce=mx.structUtils.stringifyIdent(ne),fe=Q.get(ae);fe?fe.range!==ne.range&&r.push([K1.ActionType.MODIFY,`${ce} to ${fe.range}`]):r.push([K1.ActionType.REMOVE,ce])}for(let[ae,ne]of Q)X.has(ae)||r.push([K1.ActionType.ADD,mx.structUtils.stringifyIdent(ne)])}else if(I===K1.ActionType.CREATE){let E=await mx.Manifest.fromFile(C);E.name?r.push([K1.ActionType.CREATE,mx.structUtils.stringifyIdent(E.name)]):r.push([K1.ActionType.CREATE,"a package"])}else if(I===K1.ActionType.DELETE){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N);B.name?r.push([K1.ActionType.DELETE,mx.structUtils.stringifyIdent(B.name)]):r.push([K1.ActionType.DELETE,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:o}=await mx.execUtils.execvp("git",["log",`-${XPl}`,"--pretty=format:%s"],{cwd:e}),l=a===0?o.split(/\n/g).filter(I=>I!==""):[],A=K1.findConsensus(l);return K1.genCommitMessage(A,r)}var UPl={[K1.ActionType.CREATE]:[" A ","?? "],[K1.ActionType.MODIFY]:[" M "],[K1.ActionType.DELETE]:[" D "]},KPl={[K1.ActionType.CREATE]:["A "],[K1.ActionType.MODIFY]:["M "],[K1.ActionType.DELETE]:["D "]};eVt.Driver={async findRoot(e){return await K1.findVcsRoot(e,{marker:".git"})},async filterChanges(e,t,r,n){let{stdout:a}=await mx.execUtils.execvp("git",["status","-s"],{cwd:e,strict:!0}),o=a.toString().split(/\n/g),l=n?.staged?KPl:UPl;return[].concat(...o.map(f=>{if(f==="")return[];let I=f.slice(0,3),C=JFe.ppath.resolve(e,f.slice(3));if(!n?.staged&&I==="?? "&&f.endsWith("/"))return K1.expandDirectory(C).map(b=>({action:K1.ActionType.CREATE,path:b}));{let E=[K1.ActionType.CREATE,K1.ActionType.MODIFY,K1.ActionType.DELETE].find(N=>l[N].includes(I));return E!==void 0?[{action:E,path:C}]:[]}})).filter(f=>K1.isYarnFile(f.path,{roots:t,names:r}))},async genCommitMessage(e,t){return await JPl(e,t)},async makeStage(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["add","--",...r],{cwd:e,strict:!0})},async makeCommit(e,t,r){let n=t.map(a=>JFe.npath.fromPortablePath(a.path));await mx.execUtils.execvp("git",["add","-N","--",...n],{cwd:e,strict:!0}),await mx.execUtils.execvp("git",["commit","-m",`${r} +- ${TD.structUtils.prettyLocator(t,A)}`).join("")}`);o=l[0]}if(!r.storedPackages.has(o.locatorHash))throw new q0e.UsageError("No package found in the project for the given locator");await TD.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=xqr.ensureUnpatchedLocator(o),f=await xqr.extractPackageToDisk(o,{cache:a,project:r});l.reportJson({locator:TD.structUtils.stringifyLocator(A),path:kqr.npath.fromPortablePath(f)});let I=this.update?" along with its current modifications":"";l.reportInfo(TD.MessageName.UNNAMED,`Package ${TD.structUtils.prettyLocator(t,A)} got extracted with success${I}!`),l.reportInfo(TD.MessageName.UNNAMED,`You can now edit the following folder: ${TD.formatUtils.pretty(t,kqr.npath.fromPortablePath(f),"magenta")}`),l.reportInfo(TD.MessageName.UNNAMED,`Once you are done run ${TD.formatUtils.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${kqr.npath.fromPortablePath(f)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};dqe.paths=[["patch"]];dqe.usage=q0e.Command.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});Gqr.default=dqe});var Q1s=H(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.patchUtils=zO.PatchCommand=zO.PatchCommitCommand=zO.PatchResolver=zO.PatchFetcher=void 0;var Fqr=(Pa(),vi(Va)),W1s=Bn(),O1s=x1s();Object.defineProperty(zO,"PatchFetcher",{enumerable:!0,get:function(){return O1s.PatchFetcher}});var M1s=F1s();Object.defineProperty(zO,"PatchResolver",{enumerable:!0,get:function(){return M1s.PatchResolver}});var H1s=Fqr.__importDefault(L1s());zO.PatchCommitCommand=H1s.default;var Y1s=Fqr.__importDefault(P1s());zO.PatchCommand=Y1s.default;var DPl=Fqr.__importStar(XFe());zO.patchUtils=DPl;var kPl={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:W1s.SettingsType.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:W1s.SettingsType.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[H1s.default,Y1s.default],fetchers:[O1s.PatchFetcher],resolvers:[M1s.PatchResolver]};zO.default=kPl});var K1s=H(q9t=>{"use strict";Object.defineProperty(q9t,"__esModule",{value:!0});q9t.PnpmLinker=void 0;var MS=Bn(),Wm=no(),X1s=mGe(),Zqr=($c(),vi(rg)),Lqr=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=a.pathsByLocator.get(t.locatorHash);if(typeof o>"u")throw new Zqr.UsageError(`Couldn't find ${MS.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed pnpm map - running an install might help`);return o.packageLocation}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=t.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(o){let f=a.locatorByPath.get(o[1]);if(f)return f}let l=t,A=t;do{A=l,l=Wm.ppath.dirname(A);let f=a.locatorByPath.get(A);if(f)return f}while(l!==A);return null}makeInstaller(t){return new Vqr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="pnpm"}};q9t.PnpmLinker=Lqr;var Vqr=class{constructor(t){this.opts=t,this.asyncActions=new MS.miscUtils.AsyncActions(10),this.customData={pathsByLocator:new Map,locatorByPath:new Map},this.indexFolderPromise=(0,Wm.setupCopyIndex)(Wm.xfs,{indexPath:Wm.ppath.join(t.project.configuration.get("globalFolder"),"index")})}attachCustomData(t){}async installPackage(t,r,n){switch(t.linkType){case MS.LinkType.SOFT:return this.installPackageSoft(t,r,n);case MS.LinkType.HARD:return this.installPackageHard(t,r,n)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(t,r,n){let a=Wm.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),o=this.opts.project.tryWorkspaceByLocator(t)?Wm.ppath.join(a,Wm.Filename.nodeModules):null;return this.customData.pathsByLocator.set(t.locatorHash,{packageLocation:a,dependenciesLocation:o}),{packageLocation:a,buildRequest:null}}async installPackageHard(t,r,n){let a=GPl(t,{project:this.opts.project}),o=a.packageLocation;this.customData.locatorByPath.set(o,MS.structUtils.stringifyLocator(t)),this.customData.pathsByLocator.set(t.locatorHash,a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{await Wm.xfs.mkdirPromise(o,{recursive:!0}),await Wm.xfs.copyPromise(o,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=MS.structUtils.isVirtualLocator(t)?MS.structUtils.devirtualizeLocator(t):t,f={manifest:await MS.Manifest.tryFind(r.prefixPath,{baseFs:r.packageFs})??new MS.Manifest,misc:{hasBindingGyp:X1s.jsInstallUtils.hasBindingGyp(r)}},I=this.opts.project.getDependencyMeta(A,t.version),C=X1s.jsInstallUtils.extractBuildRequest(t,f,I,{configuration:this.opts.project.configuration});return{packageLocation:o,buildRequest:C}}async attachInternalDependencies(t,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!J1s(t,{project:this.opts.project}))return;let n=this.customData.pathsByLocator.get(t.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(t)})`);let{dependenciesLocation:a}=n;a&&this.asyncActions.reduce(t.locatorHash,async o=>{await Wm.xfs.mkdirPromise(a,{recursive:!0});let l=await FPl(a),A=new Map(l),f=[o],I=(b,E)=>{let N=E;J1s(E,{project:this.opts.project})||(this.opts.report.reportWarningOnce(MS.MessageName.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),N=MS.structUtils.devirtualizeLocator(E));let B=this.customData.pathsByLocator.get(N.locatorHash);if(typeof B>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(E)})`);let F=MS.structUtils.stringifyIdent(b),Q=Wm.ppath.join(a,F),X=Wm.ppath.relative(Wm.ppath.dirname(Q),B.packageLocation),ae=A.get(F);A.delete(F),f.push(Promise.resolve().then(async()=>{if(ae){if(ae.isSymbolicLink()&&await Wm.xfs.readlinkPromise(Q)===X)return;await Wm.xfs.removePromise(Q)}await Wm.xfs.mkdirpPromise(Wm.ppath.dirname(Q)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")===MS.WindowsLinkType.JUNCTIONS?await Wm.xfs.symlinkPromise(B.packageLocation,Q,"junction"):await Wm.xfs.symlinkPromise(X,Q)}))},C=!1;for(let[b,E]of r)b.identHash===t.identHash&&(C=!0),I(b,E);!C&&!this.opts.project.tryWorkspaceByLocator(t)&&I(MS.structUtils.convertLocatorToDescriptor(t),t),f.push(ZPl(a,A)),await Promise.all(f)})}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let t=U1s(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await Wm.xfs.removePromise(t);else{let r;try{r=new Set(await Wm.xfs.readdirPromise(t))}catch{r=new Set}for(let{dependenciesLocation:n}of this.customData.pathsByLocator.values()){if(!n)continue;let a=Wm.ppath.contains(t,n);if(a===null)continue;let[o]=a.split(Wm.ppath.sep);r.delete(o)}await Promise.all([...r].map(async n=>{await Wm.xfs.removePromise(Wm.ppath.join(t,n))}))}return await this.asyncActions.wait(),await Pqr(t),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await Pqr(xPl(this.opts.project)),{customData:this.customData}}};function xPl(e){return Wm.ppath.join(e.cwd,Wm.Filename.nodeModules)}function U1s(e){return e.configuration.get("pnpmStoreFolder")}function GPl(e,{project:t}){let r=MS.structUtils.slugifyLocator(e),n=U1s(t),a=Wm.ppath.join(n,r,"package"),o=Wm.ppath.join(n,r,Wm.Filename.nodeModules);return{packageLocation:a,dependenciesLocation:o}}function J1s(e,{project:t}){return!MS.structUtils.isVirtualLocator(e)||!t.tryWorkspaceByLocator(e)}async function FPl(e){let t=new Map,r=[];try{r=await Wm.xfs.readdirPromise(e,{withFileTypes:!0})}catch(n){if(n.code!=="ENOENT")throw n}try{for(let n of r)if(!n.name.startsWith("."))if(n.name.startsWith("@")){let a=await Wm.xfs.readdirPromise(Wm.ppath.join(e,n.name),{withFileTypes:!0});if(a.length===0)t.set(n.name,n);else for(let o of a)t.set(`${n.name}/${o.name}`,o)}else t.set(n.name,n)}catch(n){if(n.code!=="ENOENT")throw n}return t}async function ZPl(e,t){let r=[],n=new Set;for(let a of t.keys()){r.push(Wm.xfs.removePromise(Wm.ppath.join(e,a)));let o=MS.structUtils.tryParseIdent(a)?.scope;o&&n.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...n].map(a=>Pqr(Wm.ppath.join(e,a)))))}async function Pqr(e){try{await Wm.xfs.rmdirPromise(e)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY"&&t.code!=="EBUSY")throw t}}});var z1s=H(pqe=>{"use strict";Object.defineProperty(pqe,"__esModule",{value:!0});pqe.PnpmLinker=void 0;var LPl=Bn(),j1s=K1s();Object.defineProperty(pqe,"PnpmLinker",{enumerable:!0,get:function(){return j1s.PnpmLinker}});var VPl={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:LPl.SettingsType.ABSOLUTE_PATH,default:"./node_modules/.store"}},linkers:[j1s.PnpmLinker]};pqe.default=VPl});var Wqr=H(lJ=>{"use strict";Object.defineProperty(lJ,"__esModule",{value:!0});lJ.ActionType=void 0;lJ.findVcsRoot=PPl;lJ.isYarnFile=WPl;lJ.expandDirectory=OPl;lJ.checkConsensus=$9t;lJ.findConsensus=MPl;lJ.getCommitPrefix=q1s;lJ.genCommitMessage=YPl;var nge=no(),$0e;(function(e){e[e.CREATE=0]="CREATE",e[e.DELETE=1]="DELETE",e[e.ADD=2]="ADD",e[e.REMOVE=3]="REMOVE",e[e.MODIFY=4]="MODIFY"})($0e||(lJ.ActionType=$0e={}));async function PPl(e,{marker:t}){do if(!nge.xfs.existsSync(nge.ppath.join(e,t)))e=nge.ppath.dirname(e);else return e;while(e!=="/");return null}function WPl(e,{roots:t,names:r}){if(r.has(nge.ppath.basename(e)))return!0;do if(!t.has(e))e=nge.ppath.dirname(e);else return!0;while(e!=="/");return!1}function OPl(e){let t=[],r=[e];for(;r.length>0;){let n=r.pop(),a=nge.xfs.readdirSync(n);for(let o of a){let l=nge.ppath.resolve(n,o);nge.xfs.lstatSync(l).isDirectory()?r.push(l):t.push(l)}}return t}function $9t(e,t){let r=0,n=0;for(let a of e)a!=="wip"&&(t.test(a)?r+=1:n+=1);return r>=n}function MPl(e){let t=$9t(e,/^(\w\(\w+\):\s*)?\w+s/),r=$9t(e,/^(\w\(\w+\):\s*)?[A-Z]/),n=$9t(e,/^\w\(\w+\):/);return{useThirdPerson:t,useUpperCase:r,useComponent:n}}function q1s(e){return e.useComponent?"chore(yarn): ":""}var HPl=new Map([[$0e.CREATE,"create"],[$0e.DELETE,"delete"],[$0e.ADD,"add"],[$0e.REMOVE,"remove"],[$0e.MODIFY,"update"]]);function YPl(e,t){let r=q1s(e),n=[],a=t.slice().sort((o,l)=>o[0]-l[0]);for(;a.length>0;){let[o,l]=a.shift(),A=HPl.get(o);e.useUpperCase&&n.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),e.useThirdPerson&&(A+="s");let f=[l];for(;a.length>0&&a[0][0]===o;){let[,C]=a.shift();f.push(C)}f.sort();let I=f.shift();f.length===1?I+=" (and one other)":f.length>1&&(I+=` (and ${f.length} others)`),n.push(`${A} ${I}`)}return`${r}${n.join(", ")}`}});var e2s=H(eVt=>{"use strict";Object.defineProperty(eVt,"__esModule",{value:!0});eVt.Driver=void 0;var QPl=(Pa(),vi(Va)),mx=Bn(),JFe=no(),K1=QPl.__importStar(Wqr()),XPl="Commit generated via `yarn stage`",JPl=11;async function $1s(e){let{code:t,stdout:r}=await mx.execUtils.execvp("git",["log","-1","--pretty=format:%H"],{cwd:e});return t===0?r.trim():null}async function UPl(e,t){let r=[],n=t.filter(I=>JFe.ppath.basename(I.path)==="package.json");for(let{action:I,path:C}of n){let b=JFe.ppath.relative(e,C);if(I===K1.ActionType.MODIFY){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N),F=await mx.Manifest.fromFile(C),Q=new Map([...F.dependencies,...F.devDependencies]),X=new Map([...B.dependencies,...B.devDependencies]);for(let[ae,ne]of X){let ce=mx.structUtils.stringifyIdent(ne),fe=Q.get(ae);fe?fe.range!==ne.range&&r.push([K1.ActionType.MODIFY,`${ce} to ${fe.range}`]):r.push([K1.ActionType.REMOVE,ce])}for(let[ae,ne]of Q)X.has(ae)||r.push([K1.ActionType.ADD,mx.structUtils.stringifyIdent(ne)])}else if(I===K1.ActionType.CREATE){let E=await mx.Manifest.fromFile(C);E.name?r.push([K1.ActionType.CREATE,mx.structUtils.stringifyIdent(E.name)]):r.push([K1.ActionType.CREATE,"a package"])}else if(I===K1.ActionType.DELETE){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N);B.name?r.push([K1.ActionType.DELETE,mx.structUtils.stringifyIdent(B.name)]):r.push([K1.ActionType.DELETE,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:o}=await mx.execUtils.execvp("git",["log",`-${JPl}`,"--pretty=format:%s"],{cwd:e}),l=a===0?o.split(/\n/g).filter(I=>I!==""):[],A=K1.findConsensus(l);return K1.genCommitMessage(A,r)}var KPl={[K1.ActionType.CREATE]:[" A ","?? "],[K1.ActionType.MODIFY]:[" M "],[K1.ActionType.DELETE]:[" D "]},jPl={[K1.ActionType.CREATE]:["A "],[K1.ActionType.MODIFY]:["M "],[K1.ActionType.DELETE]:["D "]};eVt.Driver={async findRoot(e){return await K1.findVcsRoot(e,{marker:".git"})},async filterChanges(e,t,r,n){let{stdout:a}=await mx.execUtils.execvp("git",["status","-s"],{cwd:e,strict:!0}),o=a.toString().split(/\n/g),l=n?.staged?jPl:KPl;return[].concat(...o.map(f=>{if(f==="")return[];let I=f.slice(0,3),C=JFe.ppath.resolve(e,f.slice(3));if(!n?.staged&&I==="?? "&&f.endsWith("/"))return K1.expandDirectory(C).map(b=>({action:K1.ActionType.CREATE,path:b}));{let E=[K1.ActionType.CREATE,K1.ActionType.MODIFY,K1.ActionType.DELETE].find(N=>l[N].includes(I));return E!==void 0?[{action:E,path:C}]:[]}})).filter(f=>K1.isYarnFile(f.path,{roots:t,names:r}))},async genCommitMessage(e,t){return await UPl(e,t)},async makeStage(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["add","--",...r],{cwd:e,strict:!0})},async makeCommit(e,t,r){let n=t.map(a=>JFe.npath.fromPortablePath(a.path));await mx.execUtils.execvp("git",["add","-N","--",...n],{cwd:e,strict:!0}),await mx.execUtils.execvp("git",["commit","-m",`${r} -${QPl} -`,"--",...n],{cwd:e,strict:!0})},async makeReset(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["reset","HEAD","--",...r],{cwd:e,strict:!0})}}});var r2s=H(Oqr=>{"use strict";Object.defineProperty(Oqr,"__esModule",{value:!0});var jPl=el(),t2s=Bn(),eye=no(),UFe=($c(),vi(rg)),zPl=e2s(),qPl=[zPl.Driver],fqe=class extends jPl.BaseCommand{constructor(){super(...arguments),this.commit=UFe.Option.Boolean("-c,--commit",!1,{description:"Commit the staged files"}),this.reset=UFe.Option.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"}),this.dryRun=UFe.Option.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"}),this.update=UFe.Option.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let t=await t2s.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await t2s.Project.find(t,this.context.cwd),{driver:n,root:a}=await $Pl(r.cwd),o=[t.get("cacheFolder"),t.get("globalFolder"),t.get("virtualFolder"),t.get("yarnPath")];await t.triggerHook(C=>C.populateYarnPaths,r,C=>{o.push(C)});let l=new Set;for(let C of o)for(let b of eWl(a,C))l.add(b);let A=new Set([t.get("rcFilename"),eye.Filename.lockfile,eye.Filename.manifest]),f=await n.filterChanges(a,l,A),I=await n.genCommitMessage(a,f);if(this.dryRun)if(this.commit)this.context.stdout.write(`${I} +${XPl} +`,"--",...n],{cwd:e,strict:!0})},async makeReset(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["reset","HEAD","--",...r],{cwd:e,strict:!0})}}});var r2s=H(Oqr=>{"use strict";Object.defineProperty(Oqr,"__esModule",{value:!0});var zPl=el(),t2s=Bn(),eye=no(),UFe=($c(),vi(rg)),qPl=e2s(),$Pl=[qPl.Driver],fqe=class extends zPl.BaseCommand{constructor(){super(...arguments),this.commit=UFe.Option.Boolean("-c,--commit",!1,{description:"Commit the staged files"}),this.reset=UFe.Option.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"}),this.dryRun=UFe.Option.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"}),this.update=UFe.Option.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let t=await t2s.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await t2s.Project.find(t,this.context.cwd),{driver:n,root:a}=await eWl(r.cwd),o=[t.get("cacheFolder"),t.get("globalFolder"),t.get("virtualFolder"),t.get("yarnPath")];await t.triggerHook(C=>C.populateYarnPaths,r,C=>{o.push(C)});let l=new Set;for(let C of o)for(let b of tWl(a,C))l.add(b);let A=new Set([t.get("rcFilename"),eye.Filename.lockfile,eye.Filename.manifest]),f=await n.filterChanges(a,l,A),I=await n.genCommitMessage(a,f);if(this.dryRun)if(this.commit)this.context.stdout.write(`${I} `);else for(let C of f)this.context.stdout.write(`${eye.npath.fromPortablePath(C.path)} -`);else if(this.reset){let C=await n.filterChanges(a,l,A,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await n.makeReset(a,C)}else f.length===0?this.context.stdout.write("No changes found!"):this.commit?await n.makeCommit(a,f,I):(await n.makeStage(a,f),this.context.stdout.write(I))}};fqe.paths=[["stage"]];fqe.usage=UFe.Command.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});Oqr.default=fqe;async function $Pl(e){let t=null,r=null;for(let n of qPl)if((r=await n.findRoot(e))!==null){t=n;break}if(t===null||r===null)throw new UFe.UsageError("No stage driver has been found for your current project");return{driver:t,root:r}}function eWl(e,t){let r=[];if(t===null)return r;for(;;){(t===e||t.startsWith(`${e}/`))&&r.push(t);let n;try{n=eye.xfs.statSync(t)}catch{break}if(n.isSymbolicLink())t=eye.ppath.resolve(eye.ppath.dirname(t),eye.xfs.readlinkSync(t));else break}return r}});var s2s=H(tye=>{"use strict";Object.defineProperty(tye,"__esModule",{value:!0});tye.stageUtils=tye.StageCommand=void 0;var n2s=(Pa(),vi(Va)),i2s=n2s.__importDefault(r2s());tye.StageCommand=i2s.default;var tWl=n2s.__importStar(Wqr());tye.stageUtils=tWl;var rWl={commands:[i2s.default]};tye.default=rWl});var Hqr=Nt(el(),1),Yqr=Nt(no(),1),Qqr=Nt(no(),1);var nWl=Nt(el()),iWl=Nt(Bn()),sWl=Nt(no()),oWl=Nt(zK()),aWl=Nt(TW()),cWl=Nt(_5e());$c();var lWl=Nt(UC());CZ();var opr={};sI(opr,{BadgesCommand:()=>z5e,default:()=>oVn});var eVn=Nt(el(),1),tVn=Nt(el(),1),rVn=Nt(Bn(),1),nVn=Nt(Bn(),1),iVn=Nt(Bn(),1),j5e=Nt(Bn(),1),sVn=Nt(Bn(),1);import{readFileSync as nHo}from"node:fs";import{writeFileSync as iHo}from"node:fs";import{join as $9n}from"node:path";var z9n=["@atls/code-service","@atls/schematics","@atls/next-identity-integration","@atls/react-kratos-browser-flows","@atls/nestjs-dataloader","@atls/nestjs-external-renderer","@atls/nestjs-gateway","@atls/nestjs-grpc-errors","@atls/nestjs-grpc-http-proxy","@atls/nestjs-grpc-identity","@atls/nestjs-grpc-playground","@atls/nestjs-grpc-reflection","@atls/nestjs-hydra","@atls/nestjs-keto","@atls/nestjs-kratos","@atls/nestjs-typesense-typeorm","@atls/nestjs-typesense","@atls-ui-generators/button","@atls-ui-generators/input","@atls-ui-generators/icons"],ipr={"@atls/nestjs":{labelColor:"#CB5458",color:"#BE4045"},"@atls/next":{labelColor:"#354247",color:"#1D282D"},"@atls/react":{labelColor:"#43CFF4",color:"#2DBFE6"},"@atls-ui":{labelColor:"#097CEB",color:"#0B6DCC"},tools:{labelColor:"#ECEEF5",color:"#D7DCEB"}};var q9n=Nt(Bn(),1),spr=Nt(Bn(),1),tdt=class e{constructor(t,r){this.stdout=t;this.configuration=r}static PROGRESS_FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];static PROGRESS_INTERVAL=120;running=!1;position=0;isEnabled(){return this.stdout.isTTY&&!process.env.TOOLS_DISABLE_PROGRESS}start(){this.isEnabled()&&(this.running=!0,this.write(),this.tick())}end(){this.isEnabled()&&this.running&&(this.running=!1,this.clear(!0))}tick(){setTimeout(()=>{this.running&&(this.clear(),this.write(),this.position=this.position===e.PROGRESS_FRAMES.length-1?0:this.position+1,this.tick())},e.PROGRESS_INTERVAL)}write(){let t=e.PROGRESS_FRAMES[this.position],r=spr.formatUtils.pretty(this.configuration,`YN${q9n.MessageName.UNNAMED.toString(10).padStart(4,"0")}`,"gray");this.stdout.write(`${spr.formatUtils.pretty(this.configuration,"\u27A4","blueBright")} ${r}: \u2502 ${t} +`);else if(this.reset){let C=await n.filterChanges(a,l,A,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await n.makeReset(a,C)}else f.length===0?this.context.stdout.write("No changes found!"):this.commit?await n.makeCommit(a,f,I):(await n.makeStage(a,f),this.context.stdout.write(I))}};fqe.paths=[["stage"]];fqe.usage=UFe.Command.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});Oqr.default=fqe;async function eWl(e){let t=null,r=null;for(let n of $Pl)if((r=await n.findRoot(e))!==null){t=n;break}if(t===null||r===null)throw new UFe.UsageError("No stage driver has been found for your current project");return{driver:t,root:r}}function tWl(e,t){let r=[];if(t===null)return r;for(;;){(t===e||t.startsWith(`${e}/`))&&r.push(t);let n;try{n=eye.xfs.statSync(t)}catch{break}if(n.isSymbolicLink())t=eye.ppath.resolve(eye.ppath.dirname(t),eye.xfs.readlinkSync(t));else break}return r}});var s2s=H(tye=>{"use strict";Object.defineProperty(tye,"__esModule",{value:!0});tye.stageUtils=tye.StageCommand=void 0;var n2s=(Pa(),vi(Va)),i2s=n2s.__importDefault(r2s());tye.StageCommand=i2s.default;var rWl=n2s.__importStar(Wqr());tye.stageUtils=rWl;var nWl={commands:[i2s.default]};tye.default=nWl});var Hqr=Nt(el(),1),Yqr=Nt(no(),1),Qqr=Nt(no(),1);var iWl=Nt(el()),sWl=Nt(Bn()),oWl=Nt(no()),aWl=Nt(zK()),cWl=Nt(TW()),lWl=Nt(_5e());$c();var uWl=Nt(UC());CZ();var opr={};sI(opr,{BadgesCommand:()=>z5e,default:()=>oVn});var eVn=Nt(el(),1),tVn=Nt(el(),1),rVn=Nt(Bn(),1),nVn=Nt(Bn(),1),iVn=Nt(Bn(),1),j5e=Nt(Bn(),1),sVn=Nt(Bn(),1);import{readFileSync as nHo}from"node:fs";import{writeFileSync as iHo}from"node:fs";import{join as $9n}from"node:path";var z9n=["@atls/code-service","@atls/schematics","@atls/next-identity-integration","@atls/react-kratos-browser-flows","@atls/nestjs-dataloader","@atls/nestjs-external-renderer","@atls/nestjs-gateway","@atls/nestjs-grpc-errors","@atls/nestjs-grpc-http-proxy","@atls/nestjs-grpc-identity","@atls/nestjs-grpc-playground","@atls/nestjs-grpc-reflection","@atls/nestjs-hydra","@atls/nestjs-keto","@atls/nestjs-kratos","@atls/nestjs-typesense-typeorm","@atls/nestjs-typesense","@atls-ui-generators/button","@atls-ui-generators/input","@atls-ui-generators/icons"],ipr={"@atls/nestjs":{labelColor:"#CB5458",color:"#BE4045"},"@atls/next":{labelColor:"#354247",color:"#1D282D"},"@atls/react":{labelColor:"#43CFF4",color:"#2DBFE6"},"@atls-ui":{labelColor:"#097CEB",color:"#0B6DCC"},tools:{labelColor:"#ECEEF5",color:"#D7DCEB"}};var q9n=Nt(Bn(),1),spr=Nt(Bn(),1),tdt=class e{constructor(t,r){this.stdout=t;this.configuration=r}static PROGRESS_FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];static PROGRESS_INTERVAL=120;running=!1;position=0;isEnabled(){return this.stdout.isTTY&&!process.env.TOOLS_DISABLE_PROGRESS}start(){this.isEnabled()&&(this.running=!0,this.write(),this.tick())}end(){this.isEnabled()&&this.running&&(this.running=!1,this.clear(!0))}tick(){setTimeout(()=>{this.running&&(this.clear(),this.write(),this.position=this.position===e.PROGRESS_FRAMES.length-1?0:this.position+1,this.tick())},e.PROGRESS_INTERVAL)}write(){let t=e.PROGRESS_FRAMES[this.position],r=spr.formatUtils.pretty(this.configuration,`YN${q9n.MessageName.UNNAMED.toString(10).padStart(4,"0")}`,"gray");this.stdout.write(`${spr.formatUtils.pretty(this.configuration,"\u27A4","blueBright")} ${r}: \u2502 ${t} `)}clear(t=!1){this.stdout.write("\x1B[0A"),t&&this.stdout.write("\x1B[0J")}};var z5e=class e extends eVn.BaseCommand{static paths=[["badges","generate"]];static VERSIONS_SEPARATOR="[//]: # (VERSIONS)";static BADGE_URL="https://img.shields.io/static/v1";static BADGE_STYLE="for-the-badge";static REGISTRY_URL="https://npmjs.com";static REGISTRY_PACKAGE_PATH="/package";async execute(){let t=await nVn.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await iVn.Project.find(t,this.context.cwd);if(!n)throw new tVn.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await rVn.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Generating badges",async()=>{let l=new tdt(this.context.stdout,t);l.start();let A=X=>{let ae=X.anchoredLocator.locatorHash,ne=new Map,ce=[ae];for(;ce.length>0;){let fe=ce.shift();if(fe){if(ne.has(fe))continue;let ue=r.storedPackages.get(fe);if(typeof ue>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ne.set(fe,ue),j5e.structUtils.isVirtualLocator(ue)&&ce.push(j5e.structUtils.devirtualizeLocator(ue).locatorHash),fe!==ae)continue;for(let de of ue.dependencies.values()){let be=r.storedResolutions.get(de.descriptorHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the resolution to be registered");ce.push(be)}}}return ne.values()},I=(()=>{let X=new Map;for(let ae of r.workspaces)for(let ne of A(ae))X.set(ne.locatorHash,ne);return X.values()})(),C=sVn.miscUtils.sortMap([...I],X=>j5e.structUtils.stringifyLocator(X)),b=async X=>{let ae=j5e.structUtils.parseDescriptor(X),ne=C.filter(ce=>ce.scope===ae.scope&&ce.name===ae.name);return ne.length>0&&ne.shift()?.version||""},E=$9n(process.cwd(),"README.md"),B=nHo(E).toString("utf-8").split(e.VERSIONS_SEPARATOR),F=await Promise.all(z9n.map(async X=>({name:X,version:await b(X)}))),Q=(X,ae)=>{let ne=()=>{let ce=ue=>({labelColor:ue.labelColor.replace("#",""),color:ue.color.replace("#","")}),fe=Object.entries(ipr).find(([ue])=>ae.name.search(ue)!==-1);if(fe){let[,ue]=fe;return ce(ue)}return ce(ipr.tools)};if(ae.version){let ce=`${e.REGISTRY_URL}${e.REGISTRY_PACKAGE_PATH}/${ae.name}`;$9n(e.REGISTRY_URL,e.REGISTRY_PACKAGE_PATH,ae.name);let fe=new URLSearchParams({style:e.BADGE_STYLE,label:ae.name,message:ae.version,...ne()}),ue=`badge`;return`${X}${((be,Se)=>`[${be}](${Se})`)(ue,ce)} `}return X};B[1]=F.reduce(Q,""),B[1]=` ${B[1]} @@ -2000,7 +2000,7 @@ ${GVn(l)}`),l}async function kWn(e={}){let t=` {{/if}} `,a=SJo();return a.mainTemplate=e,a.headerPartial=t,a.commitPartial=r,a.footerPartial=n,a}function SJo(){return{transform:(e,t)=>{let r=!0,n=e.notes.map(C=>(r=!1,{...C,title:"BREAKING CHANGES"})),a=e.type;if(e.type==="feat")a="Features";else if(e.type==="fix")a="Bug Fixes";else if(e.type==="perf")a="Performance Improvements";else if(e.type==="revert"||e.revert)a="Reverts";else{if(r)return;e.type==="docs"?a="Documentation":e.type==="style"?a="Styles":e.type==="refactor"?a="Code Refactoring":e.type==="test"?a="Tests":e.type==="build"?a="Build System":e.type==="ci"&&(a="Continuous Integration")}let o=e.scope==="*"?"":e.scope,l=typeof e.hash=="string"?e.hash.substring(0,7):e.shortHash,A=[],f=e.subject;if(typeof f=="string"){let C=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;C&&(C=`${C}/issues/`,f=f.replace(/#([0-9]+)/g,(b,E)=>(A.push(E),`[#${E}](${C}${E})`))),t.host&&(f=f.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(b,E)=>E.includes("/")?`@${E}`:`[@${E}](${t.host}/${E})`))}let I=e.references.filter(C=>!A.includes(C.issue));return{notes:n,type:a,scope:o,shortHash:l,subject:f,references:I}},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:G3n.default}}function Z3n(e){let t=2,r=0,n=0;return e.forEach(a=>{a.notes.length>0?(r+=a.notes.length,t=0):a.type==="feat"&&(n+=1,t===2&&(t=1))}),{level:t,reason:r===1?`There is ${r} BREAKING CHANGE and ${n} features`:`There are ${r} BREAKING CHANGES and ${n} features`}}async function Jfr(){return{parser:v3n(),writer:await F3n(),whatBump:Z3n}}var qve=class{async generate({path:t,packageName:r,debug:n,tagPrefix:a,file:o,releaseCount:l}){let A={lernaPackage:`${r}`,tagPrefix:a,debug:n?console.debug:void 0,warn:console.warn,append:!0,releaseCount:l,pkg:{path:L3n(t,"package.json")},config:Jfr};return o?this.generateToFile(A,t):this.generateToStdOut(A)}async generateToStdOut(t){return new Promise((r,n)=>{let a=Qfr(t,void 0,{path:wJo(t.pkg?.path??"./")}),o="";a.on("data",l=>{o+=l.toString()}),a.on("end",()=>{r(o)}),a.on("error",l=>{n(l)})})}async generateToFile(t,r){let n=L3n(r,"CHANGELOG.md");try{let a=await this.generateToStdOut(t),o="";try{o=await vJo(n,"utf8")}catch(A){let f=A;if(f.code!=="ENOENT")throw f}let l=o?`${a} -${o}`:a;return await BJo(n,l,"utf8"),l}catch(a){throw console.error("Error generating changelog:",a),a}}};var ept=class extends V3n.BaseCommand{static paths=[["changelog","generate"]];debug=Su.Boolean("--debug");tagPrefix=Su.String("-t,--tag-prefix");stdOut=Su.Boolean("--stdout",!1);async execute(){let t=await W3n.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await M3n.Project.find(t,this.context.cwd);if(!n)throw new P3n.WorkspaceRequiredError(r.cwd,this.context.cwd);let a;return(await O3n.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Generating changelog",async()=>{let A="";n.manifest.name?.scope&&(A+=`@${n.manifest.name.scope}/`),A+=`${n.manifest.name?.name}`;let f=TJo(r.cwd,this.context.cwd);a=await new qve().generate({path:f,packageName:A,debug:this.debug,file:!this.stdOut,tagPrefix:this.tagPrefix}),this.stdOut&&console.log(a)})})).exitCode()}};var H3n={commands:[ept]};var Kfr={};sI(Kfr,{CheckCommand:()=>CMe,default:()=>Q3n});var Y3n=Nt(el(),1),CMe=class extends Y3n.BaseCommand{static paths=[["check"]];async execute(){await this.cli.run(["format"]),await this.cli.run(["typecheck"]),await this.cli.run(["lint"])}};var Q3n={commands:[CMe]};var r1r={};sI(r1r,{ChecksLintCommand:()=>gQe,ChecksTestIntegrationCommand:()=>hQe,ChecksTestUnitCommand:()=>mQe,ChecksTypeCheckCommand:()=>CQe,default:()=>bii});var yni=Nt(el(),1),bni=Nt(Bn(),1),TEr=Nt(Bn(),1),Eni=Nt(Bn(),1),REr=Nt(Bn(),1),NEr=Nt(no(),1),Sni=Nt(oIr(),1),vni=Nt(Bn(),1),DEr=Nt(no(),1),Bni=Nt(no(),1);$c();import{readFileSync as zya}from"node:fs";import{resolve as qya}from"node:path";var Bhr=Nt(Al(),1),Moe=Nt(Al(),1);var Ehr=Nt(Al(),1),Shr=Nt(Pc(),1),A8=({children:e,line:t=0,column:r=0})=>(0,Shr.jsxs)(Ehr.Text,{color:"cyan",children:[e,(0,Shr.jsxs)(Ehr.Text,{color:"yellow",children:[":",t,":",r]})]});var IYn=Nt(Al(),1),hYn=Nt(Pc(),1),J9=({offset:e=0})=>(0,hYn.jsx)(IYn.Text,{color:"gray",children:Array.from({length:process.stdout.columns-e},()=>"\u2500").join("")});var _Yn=Nt(oIr(),1),yYn=Nt(Al(),1);import vhr from"node:process";import Hjo from"node:os";import mYn from"node:tty";function bM(e,t=globalThis.Deno?globalThis.Deno.args:vhr.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function Xjo(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Yjo();n!==void 0&&(Opt=n);let a=r?Opt:n;if(a===0)return 0;if(r){if(bM("color=16m")||bM("color=full")||bM("color=truecolor"))return 3;if(bM("color=256"))return 2}if("TF_BUILD"in wS&&"AGENT_NAME"in wS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(wS.TERM==="dumb")return o;if(vhr.platform==="win32"){let l=Hjo.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in wS)return"GITHUB_ACTIONS"in wS||"GITEA_ACTIONS"in wS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in wS)||wS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in wS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(wS.TEAMCITY_VERSION)?1:0;if(wS.COLORTERM==="truecolor"||wS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in wS){let l=Number.parseInt((wS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(wS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(wS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(wS.TERM)||"COLORTERM"in wS?1:o}function Mpt(e,t={}){let r=Xjo(e,{streamIsTTY:e&&e.isTTY,...t});return Qjo(r)}var Sru={stdout:Mpt({isTTY:mYn.isatty(1)}),stderr:Mpt({isTTY:mYn.isatty(2)})};var bYn=Nt(Pc(),1),{level:Jjo}=Mpt({isTTY:!0})||{level:0},CYn=Jjo>=1,Ujo=(e,t,r,n)=>(0,_Yn.codeFrameColumns)(e,{start:{column:r,line:t}},{highlightCode:CYn,forceColor:CYn,message:n}),d8=({children:e,line:t,column:r,message:n})=>(0,bYn.jsx)(yYn.Text,{children:Ujo(e,t,r,n)});var qN=Nt(Pc(),1),EYn=({filePath:e,message:t,source:r})=>(0,qN.jsxs)(Moe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,qN.jsxs)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,qN.jsx)(Moe.Box,{flexDirection:"row",flexGrow:1,children:(0,qN.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsxs)(Bhr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(J9,{offset:2})}),!!r&&(0,qN.jsxs)(qN.Fragment,{children:[(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,qN.jsx)(J9,{offset:2})]}),(0,qN.jsx)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,qN.jsxs)(Bhr.Text,{color:"white",children:[" ",t.message]})})]});var BYn=Nt(Al(),1);import{isAbsolute as zjo}from"node:path";import{relative as qjo}from"node:path";import{webcrypto as vYn}from"node:crypto";var SYn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Kjo=128,DIe,IBe;function jjo(e){!DIe||DIe.lengthDIe.length&&(vYn.getRandomValues(DIe),IBe=0),IBe+=e}function OW(e=21){jjo(e-=0);let t="";for(let r=IBe-e;r{let a=(0,wYn.useMemo)(()=>zjo(e)?qjo(n,e):e,[e]);return r.length===0?null:(0,whr.jsx)(BYn.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,whr.jsx)(EYn,{filePath:a,message:o,source:t},OW()))})};import x6o from"node:events";import{readFileSync as G6o}from"node:fs";import{readFile as F6o}from"node:fs/promises";import{writeFile as Z6o}from"node:fs/promises";import{relative as L6o}from"node:path";import{join as gQn}from"node:path";var qYn=Nt(Xcr(),1),dHe=Nt(nve(),1),AHe=Nt(FYn(),1);import S6o from"node:fs";import v6o from"node:path";var Lhr=Nt(nve(),1),QYn=Nt(uHe(),1);import _6o from"node:process";import YYn from"node:fs";import mBe from"node:path";function hBe(e){let t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}import{fileURLToPath as m6o}from"node:url";import{Transform as C6o}from"node:stream";var gHe=e=>e instanceof URL?m6o(e):e,Ypt=class extends C6o{constructor(t){super({objectMode:!0,transform(r,n,a){a(void 0,t(r)?r:void 0)}})}},Qpt=e=>e[0]==="!";var XYn={ignore:["**/node_modules","**/flow-typed","**/coverage","**/.git"],absolute:!0,dot:!0},JYn="**/.gitignore",y6o=(e,t)=>Qpt(e)?"!"+mBe.posix.join(t,e.slice(1)):mBe.posix.join(t,e),b6o=(e,t)=>{let r=hBe(mBe.relative(t,mBe.dirname(e.filePath)));return e.content.split(/\r?\n/).filter(n=>n&&!n.startsWith("#")).map(n=>y6o(n,r))},E6o=(e,t)=>{if(t=hBe(t),mBe.isAbsolute(e)){if(hBe(e).startsWith(t))return mBe.relative(t,e);throw new Error(`Path ${e} is not in cwd ${t}`)}return e},UYn=(e,t)=>{let r=e.flatMap(a=>b6o(a,t)),n=(0,QYn.default)().add(r);return a=>(a=gHe(a),a=E6o(a,t),a?n.ignores(hBe(a)):!1)},KYn=(e={})=>({cwd:gHe(e.cwd)||_6o.cwd(),suppressErrors:!!e.suppressErrors,deep:typeof e.deep=="number"?e.deep:Number.POSITIVE_INFINITY}),jYn=async(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),o=await(0,Lhr.default)(e,{cwd:r,suppressErrors:n,deep:a,...XYn}),l=await Promise.all(o.map(async A=>({filePath:A,content:await YYn.promises.readFile(A,"utf8")})));return UYn(l,r)},zYn=(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),l=Lhr.default.sync(e,{cwd:r,suppressErrors:n,deep:a,...XYn}).map(A=>({filePath:A,content:YYn.readFileSync(A,"utf8")}));return UYn(l,r)};var B6o=e=>{if(e.some(t=>typeof t!="string"))throw new TypeError("Patterns must be a string or an array of strings")},Vhr=e=>(e=[...new Set([e].flat())],B6o(e),e),w6o=e=>{if(!e.cwd)return;let t;try{t=S6o.statSync(e.cwd)}catch{return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},$Yn=(e={})=>(e={...e,ignore:e.ignore||[],expandDirectories:e.expandDirectories===void 0?!0:e.expandDirectories,cwd:gHe(e.cwd)},w6o(e),e),eQn=e=>async(t,r)=>e(Vhr(t),$Yn(r)),Xpt=e=>(t,r)=>e(Vhr(t),$Yn(r)),tQn=e=>{let{ignoreFiles:t,gitignore:r}=e,n=t?Vhr(t):[];return r&&n.push(JYn),n},T6o=async e=>{let t=tQn(e);return nQn(t.length>0&&await jYn(t,e))},rQn=e=>{let t=tQn(e);return nQn(t.length>0&&zYn(t,e))},nQn=e=>{let t=new Set;return r=>{let n=r.path||r,a=v6o.normalize(n),o=t.has(a)||e&&e(n);return t.add(a),!o}},iQn=(e,t)=>e.flat().filter(r=>t(r)),R6o=(e,t)=>(0,qYn.default)(e).pipe(new Ypt(r=>t(r))),sQn=(e,t)=>{let r=[];for(;e.length>0;){let n=e.findIndex(o=>Qpt(o));if(n===-1){r.push({patterns:e,options:t});break}let a=e[n].slice(1);for(let o of r)o.options.ignore.push(a);n!==0&&r.push({patterns:e.slice(0,n),options:{...t,ignore:[...t.ignore,a]}}),e=e.slice(n+1)}return r},oQn=(e,t)=>({...t?{cwd:t}:{},...Array.isArray(e)?{files:e}:e}),aQn=async(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return Promise.all(r.map(async A=>{let{patterns:f,options:I}=A;return[f,I.ignore]=await Promise.all([(0,AHe.default)(f,o),(0,AHe.default)(I.ignore,l)]),{patterns:f,options:I}}))},Phr=(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return r.map(A=>{let{patterns:f,options:I}=A;return f=AHe.default.sync(f,o),I.ignore=AHe.default.sync(I.ignore,l),{patterns:f,options:I}})},b$=eQn(async(e,t)=>{let[r,n]=await Promise.all([aQn(e,t),T6o(t)]),a=await Promise.all(r.map(o=>(0,dHe.default)(o.patterns,o.options)));return iQn(a,n)}),cQn=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.sync(o.patterns,o.options));return iQn(a,n)}),gnu=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.stream(o.patterns,o.options));return R6o(a,n)}),Anu=Xpt((e,t)=>e.some(r=>dHe.default.isDynamicPattern(r,t))),dnu=eQn(aQn),pnu=Xpt(Phr);var AQn=Nt(uHe(),1);import{join as N6o}from"node:path";var lQn=[".c9",".pnp.js",".pnp.cjs",".pnp.loader.mjs",".pnp-ts.loader.mjs",".git","node_modules","coverage","bundles","dist","gen",".yarn",".vscode",".next","**/**/dist/*","**/**/build/*","**/**/.cache/*","**/**/bundles/*","**/**/templates/*.yaml","**/templates/*.yaml","**/types/**",".terraform",".idea","yarn.mjs"],D6o=["./**/*.{js,mjs,cjs,jsx,ts,tsx}"],k6o=["!**/node_modules/**","!./node_modules/**","!**/.{git,svn,hg}/**","!./.{git,svn,hg}/**","!**/.yarn/**","!./.yarn/**","!**/gen/**","!**/.idea/**"],uQn=e=>[...D6o.map(t=>N6o(e,t)),...k6o];var Whr=(e,t,r)=>({filePath:e,source:t,messages:r,fixableErrorCount:0,fixableWarningCount:0,usedDeprecatedRules:[],suppressedMessages:[],errorCount:r.filter(n=>n.severity===1).length,fatalErrorCount:r.filter(n=>n.fatal).length,warningCount:r.filter(n=>n.severity===2).length});var CBe=class e extends x6o{constructor(r,n,a,o){super();this.linter=r;this.cacheLinter=n;this.config=a;this.cwd=o;this.ignore=AQn.default.default().add(lQn).add(this.getProjectIgnorePatterns())}ignore;static async initialize(r,n){let{Linter:a,ESLint:o}=await import("@atls/code-runtime/eslint"),{eslintconfig:l}=await import("@atls/code-runtime/eslint"),A=new a({configType:"flat"}),f=l.map(C=>({...C,languageOptions:{...C.languageOptions||{},parserOptions:{...C.languageOptions?.parserOptions||{},tsconfigRootDir:r}}})),I=new o({cache:!0,baseConfig:f,overrideConfigFile:!0,cwd:n,cacheLocation:gQn(r,".config/eslint/.eslintcache")});return new e(A,I,f,n)}async lintFile(r,n){let a=await F6o(r,"utf8");if(n?.fix){let{messages:o,fixed:l,output:A}=this.linter.verifyAndFix(a,this.config,{filename:r});return l&&await Z6o(r,A,"utf8"),Whr(r,A,o)}return Whr(r,a,this.linter.verify(a,this.config,{filename:r}))}async lintFiles(r=[],n){let a=[];this.emit("start",{files:r});for await(let o of r){this.emit("lint:start",{file:o});let l=await this.lintFile(o,n);a.push(l),this.emit("lint:end",{result:l})}return this.emit("end",{results:a}),a}async lint(r,n){let o=(r&&r.length>0?r:await b$(uQn(this.cwd),{dot:!0})).filter(l=>this.ignore.filter([L6o(this.cwd,l)]).length!==0);return n?.cache?this.lintWithCache(o):this.lintFiles(o,n)}async lintWithCache(r=[]){this.emit("start",{files:r});let n=await this.cacheLinter.lintFiles(r);for(let a of n)this.emit("lint:end",{result:a});return this.emit("end",{results:n}),n}getProjectIgnorePatterns(){let r=G6o(gQn(this.cwd,"package.json"),"utf-8"),{linterIgnorePatterns:n=[]}=JSON.parse(r);return n}};var dQn=Nt(Al(),1);import{EventEmitter as V6o}from"node:events";var Jpt=class extends V6o{frames=[];get columns(){return process.stdout.columns||160}write=t=>{this.frames.push(t)}},xE=e=>{let t=new Jpt,r=new Jpt,{cleanup:n}=(0,dQn.render)(e,{stdout:t,stderr:r,debug:!0,exitOnCtrlC:!1,patchConsole:!1});return n(),[...t.frames,...r.frames].join(` +${o}`:a;return await BJo(n,l,"utf8"),l}catch(a){throw console.error("Error generating changelog:",a),a}}};var ept=class extends V3n.BaseCommand{static paths=[["changelog","generate"]];debug=Su.Boolean("--debug");tagPrefix=Su.String("-t,--tag-prefix");stdOut=Su.Boolean("--stdout",!1);async execute(){let t=await W3n.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await M3n.Project.find(t,this.context.cwd);if(!n)throw new P3n.WorkspaceRequiredError(r.cwd,this.context.cwd);let a;return(await O3n.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Generating changelog",async()=>{let A="";n.manifest.name?.scope&&(A+=`@${n.manifest.name.scope}/`),A+=`${n.manifest.name?.name}`;let f=TJo(r.cwd,this.context.cwd);a=await new qve().generate({path:f,packageName:A,debug:this.debug,file:!this.stdOut,tagPrefix:this.tagPrefix}),this.stdOut&&console.log(a)})})).exitCode()}};var H3n={commands:[ept]};var Kfr={};sI(Kfr,{CheckCommand:()=>CMe,default:()=>Q3n});var Y3n=Nt(el(),1),CMe=class extends Y3n.BaseCommand{static paths=[["check"]];async execute(){await this.cli.run(["format"]),await this.cli.run(["typecheck"]),await this.cli.run(["lint"])}};var Q3n={commands:[CMe]};var r1r={};sI(r1r,{ChecksLintCommand:()=>gQe,ChecksTestIntegrationCommand:()=>hQe,ChecksTestUnitCommand:()=>mQe,ChecksTypeCheckCommand:()=>CQe,default:()=>bii});var yni=Nt(el(),1),bni=Nt(Bn(),1),TEr=Nt(Bn(),1),Eni=Nt(Bn(),1),REr=Nt(Bn(),1),NEr=Nt(no(),1),Sni=Nt(oIr(),1),vni=Nt(Bn(),1),DEr=Nt(no(),1),Bni=Nt(no(),1);$c();import{readFileSync as zya}from"node:fs";import{resolve as qya}from"node:path";var Bhr=Nt(Al(),1),Moe=Nt(Al(),1);var Ehr=Nt(Al(),1),Shr=Nt(Pc(),1),A8=({children:e,line:t=0,column:r=0})=>(0,Shr.jsxs)(Ehr.Text,{color:"cyan",children:[e,(0,Shr.jsxs)(Ehr.Text,{color:"yellow",children:[":",t,":",r]})]});var IYn=Nt(Al(),1),hYn=Nt(Pc(),1),J9=({offset:e=0})=>(0,hYn.jsx)(IYn.Text,{color:"gray",children:Array.from({length:process.stdout.columns-e},()=>"\u2500").join("")});var _Yn=Nt(oIr(),1),yYn=Nt(Al(),1);import vhr from"node:process";import Hjo from"node:os";import mYn from"node:tty";function bM(e,t=globalThis.Deno?globalThis.Deno.args:vhr.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function Xjo(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Yjo();n!==void 0&&(Opt=n);let a=r?Opt:n;if(a===0)return 0;if(r){if(bM("color=16m")||bM("color=full")||bM("color=truecolor"))return 3;if(bM("color=256"))return 2}if("TF_BUILD"in wS&&"AGENT_NAME"in wS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(wS.TERM==="dumb")return o;if(vhr.platform==="win32"){let l=Hjo.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in wS)return"GITHUB_ACTIONS"in wS||"GITEA_ACTIONS"in wS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in wS)||wS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in wS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(wS.TEAMCITY_VERSION)?1:0;if(wS.COLORTERM==="truecolor"||wS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in wS){let l=Number.parseInt((wS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(wS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(wS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(wS.TERM)||"COLORTERM"in wS?1:o}function Mpt(e,t={}){let r=Xjo(e,{streamIsTTY:e&&e.isTTY,...t});return Qjo(r)}var vru={stdout:Mpt({isTTY:mYn.isatty(1)}),stderr:Mpt({isTTY:mYn.isatty(2)})};var bYn=Nt(Pc(),1),{level:Jjo}=Mpt({isTTY:!0})||{level:0},CYn=Jjo>=1,Ujo=(e,t,r,n)=>(0,_Yn.codeFrameColumns)(e,{start:{column:r,line:t}},{highlightCode:CYn,forceColor:CYn,message:n}),d8=({children:e,line:t,column:r,message:n})=>(0,bYn.jsx)(yYn.Text,{children:Ujo(e,t,r,n)});var qN=Nt(Pc(),1),EYn=({filePath:e,message:t,source:r})=>(0,qN.jsxs)(Moe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,qN.jsxs)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,qN.jsx)(Moe.Box,{flexDirection:"row",flexGrow:1,children:(0,qN.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsxs)(Bhr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(J9,{offset:2})}),!!r&&(0,qN.jsxs)(qN.Fragment,{children:[(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,qN.jsx)(J9,{offset:2})]}),(0,qN.jsx)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,qN.jsxs)(Bhr.Text,{color:"white",children:[" ",t.message]})})]});var BYn=Nt(Al(),1);import{isAbsolute as zjo}from"node:path";import{relative as qjo}from"node:path";import{webcrypto as vYn}from"node:crypto";var SYn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Kjo=128,DIe,IBe;function jjo(e){!DIe||DIe.lengthDIe.length&&(vYn.getRandomValues(DIe),IBe=0),IBe+=e}function OW(e=21){jjo(e-=0);let t="";for(let r=IBe-e;r{let a=(0,wYn.useMemo)(()=>zjo(e)?qjo(n,e):e,[e]);return r.length===0?null:(0,whr.jsx)(BYn.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,whr.jsx)(EYn,{filePath:a,message:o,source:t},OW()))})};import x6o from"node:events";import{readFileSync as G6o}from"node:fs";import{readFile as F6o}from"node:fs/promises";import{writeFile as Z6o}from"node:fs/promises";import{relative as L6o}from"node:path";import{join as gQn}from"node:path";var qYn=Nt(Xcr(),1),dHe=Nt(nve(),1),AHe=Nt(FYn(),1);import S6o from"node:fs";import v6o from"node:path";var Lhr=Nt(nve(),1),QYn=Nt(uHe(),1);import _6o from"node:process";import YYn from"node:fs";import mBe from"node:path";function hBe(e){let t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}import{fileURLToPath as m6o}from"node:url";import{Transform as C6o}from"node:stream";var gHe=e=>e instanceof URL?m6o(e):e,Ypt=class extends C6o{constructor(t){super({objectMode:!0,transform(r,n,a){a(void 0,t(r)?r:void 0)}})}},Qpt=e=>e[0]==="!";var XYn={ignore:["**/node_modules","**/flow-typed","**/coverage","**/.git"],absolute:!0,dot:!0},JYn="**/.gitignore",y6o=(e,t)=>Qpt(e)?"!"+mBe.posix.join(t,e.slice(1)):mBe.posix.join(t,e),b6o=(e,t)=>{let r=hBe(mBe.relative(t,mBe.dirname(e.filePath)));return e.content.split(/\r?\n/).filter(n=>n&&!n.startsWith("#")).map(n=>y6o(n,r))},E6o=(e,t)=>{if(t=hBe(t),mBe.isAbsolute(e)){if(hBe(e).startsWith(t))return mBe.relative(t,e);throw new Error(`Path ${e} is not in cwd ${t}`)}return e},UYn=(e,t)=>{let r=e.flatMap(a=>b6o(a,t)),n=(0,QYn.default)().add(r);return a=>(a=gHe(a),a=E6o(a,t),a?n.ignores(hBe(a)):!1)},KYn=(e={})=>({cwd:gHe(e.cwd)||_6o.cwd(),suppressErrors:!!e.suppressErrors,deep:typeof e.deep=="number"?e.deep:Number.POSITIVE_INFINITY}),jYn=async(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),o=await(0,Lhr.default)(e,{cwd:r,suppressErrors:n,deep:a,...XYn}),l=await Promise.all(o.map(async A=>({filePath:A,content:await YYn.promises.readFile(A,"utf8")})));return UYn(l,r)},zYn=(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),l=Lhr.default.sync(e,{cwd:r,suppressErrors:n,deep:a,...XYn}).map(A=>({filePath:A,content:YYn.readFileSync(A,"utf8")}));return UYn(l,r)};var B6o=e=>{if(e.some(t=>typeof t!="string"))throw new TypeError("Patterns must be a string or an array of strings")},Vhr=e=>(e=[...new Set([e].flat())],B6o(e),e),w6o=e=>{if(!e.cwd)return;let t;try{t=S6o.statSync(e.cwd)}catch{return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},$Yn=(e={})=>(e={...e,ignore:e.ignore||[],expandDirectories:e.expandDirectories===void 0?!0:e.expandDirectories,cwd:gHe(e.cwd)},w6o(e),e),eQn=e=>async(t,r)=>e(Vhr(t),$Yn(r)),Xpt=e=>(t,r)=>e(Vhr(t),$Yn(r)),tQn=e=>{let{ignoreFiles:t,gitignore:r}=e,n=t?Vhr(t):[];return r&&n.push(JYn),n},T6o=async e=>{let t=tQn(e);return nQn(t.length>0&&await jYn(t,e))},rQn=e=>{let t=tQn(e);return nQn(t.length>0&&zYn(t,e))},nQn=e=>{let t=new Set;return r=>{let n=r.path||r,a=v6o.normalize(n),o=t.has(a)||e&&e(n);return t.add(a),!o}},iQn=(e,t)=>e.flat().filter(r=>t(r)),R6o=(e,t)=>(0,qYn.default)(e).pipe(new Ypt(r=>t(r))),sQn=(e,t)=>{let r=[];for(;e.length>0;){let n=e.findIndex(o=>Qpt(o));if(n===-1){r.push({patterns:e,options:t});break}let a=e[n].slice(1);for(let o of r)o.options.ignore.push(a);n!==0&&r.push({patterns:e.slice(0,n),options:{...t,ignore:[...t.ignore,a]}}),e=e.slice(n+1)}return r},oQn=(e,t)=>({...t?{cwd:t}:{},...Array.isArray(e)?{files:e}:e}),aQn=async(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return Promise.all(r.map(async A=>{let{patterns:f,options:I}=A;return[f,I.ignore]=await Promise.all([(0,AHe.default)(f,o),(0,AHe.default)(I.ignore,l)]),{patterns:f,options:I}}))},Phr=(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return r.map(A=>{let{patterns:f,options:I}=A;return f=AHe.default.sync(f,o),I.ignore=AHe.default.sync(I.ignore,l),{patterns:f,options:I}})},b$=eQn(async(e,t)=>{let[r,n]=await Promise.all([aQn(e,t),T6o(t)]),a=await Promise.all(r.map(o=>(0,dHe.default)(o.patterns,o.options)));return iQn(a,n)}),cQn=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.sync(o.patterns,o.options));return iQn(a,n)}),Anu=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.stream(o.patterns,o.options));return R6o(a,n)}),dnu=Xpt((e,t)=>e.some(r=>dHe.default.isDynamicPattern(r,t))),pnu=eQn(aQn),fnu=Xpt(Phr);var AQn=Nt(uHe(),1);import{join as N6o}from"node:path";var lQn=[".c9",".pnp.js",".pnp.cjs",".pnp.loader.mjs",".pnp-ts.loader.mjs",".git","node_modules","coverage","bundles","dist","gen",".yarn",".vscode",".next","**/**/dist/*","**/**/build/*","**/**/.cache/*","**/**/bundles/*","**/**/templates/*.yaml","**/templates/*.yaml","**/types/**",".terraform",".idea","yarn.mjs"],D6o=["./**/*.{js,mjs,cjs,jsx,ts,tsx}"],k6o=["!**/node_modules/**","!./node_modules/**","!**/.{git,svn,hg}/**","!./.{git,svn,hg}/**","!**/.yarn/**","!./.yarn/**","!**/gen/**","!**/.idea/**"],uQn=e=>[...D6o.map(t=>N6o(e,t)),...k6o];var Whr=(e,t,r)=>({filePath:e,source:t,messages:r,fixableErrorCount:0,fixableWarningCount:0,usedDeprecatedRules:[],suppressedMessages:[],errorCount:r.filter(n=>n.severity===1).length,fatalErrorCount:r.filter(n=>n.fatal).length,warningCount:r.filter(n=>n.severity===2).length});var CBe=class e extends x6o{constructor(r,n,a,o){super();this.linter=r;this.cacheLinter=n;this.config=a;this.cwd=o;this.ignore=AQn.default.default().add(lQn).add(this.getProjectIgnorePatterns())}ignore;static async initialize(r,n){let{Linter:a,ESLint:o}=await import("@atls/code-runtime/eslint"),{eslintconfig:l}=await import("@atls/code-runtime/eslint"),A=new a({configType:"flat"}),f=l.map(C=>({...C,languageOptions:{...C.languageOptions||{},parserOptions:{...C.languageOptions?.parserOptions||{},tsconfigRootDir:r}}})),I=new o({cache:!0,baseConfig:f,overrideConfigFile:!0,cwd:n,cacheLocation:gQn(r,".config/eslint/.eslintcache")});return new e(A,I,f,n)}async lintFile(r,n){let a=await F6o(r,"utf8");if(n?.fix){let{messages:o,fixed:l,output:A}=this.linter.verifyAndFix(a,this.config,{filename:r});return l&&await Z6o(r,A,"utf8"),Whr(r,A,o)}return Whr(r,a,this.linter.verify(a,this.config,{filename:r}))}async lintFiles(r=[],n){let a=[];this.emit("start",{files:r});for await(let o of r){this.emit("lint:start",{file:o});let l=await this.lintFile(o,n);a.push(l),this.emit("lint:end",{result:l})}return this.emit("end",{results:a}),a}async lint(r,n){let o=(r&&r.length>0?r:await b$(uQn(this.cwd),{dot:!0})).filter(l=>this.ignore.filter([L6o(this.cwd,l)]).length!==0);return n?.cache?this.lintWithCache(o):this.lintFiles(o,n)}async lintWithCache(r=[]){this.emit("start",{files:r});let n=await this.cacheLinter.lintFiles(r);for(let a of n)this.emit("lint:end",{result:a});return this.emit("end",{results:n}),n}getProjectIgnorePatterns(){let r=G6o(gQn(this.cwd,"package.json"),"utf-8"),{linterIgnorePatterns:n=[]}=JSON.parse(r);return n}};var dQn=Nt(Al(),1);import{EventEmitter as V6o}from"node:events";var Jpt=class extends V6o{frames=[];get columns(){return process.stdout.columns||160}write=t=>{this.frames.push(t)}},xE=e=>{let t=new Jpt,r=new Jpt,{cleanup:n}=(0,dQn.render)(e,{stdout:t,stderr:r,debug:!0,exitOnCtrlC:!1,patchConsole:!1});return n(),[...t.frames,...r.frames].join(` `)};var SEr={};sI(SEr,{FilesChangedListCommand:()=>cQe,default:()=>fni,getChangedCommmits:()=>Pmt,getChangedFiles:()=>oO,getCommitData:()=>cni,getEventCommmits:()=>ani,getGithubChangedFiles:()=>lni});var uni=Nt(el(),1),gni=Nt(el(),1),Ani=Nt(Bn(),1),dni=Nt(Bn(),1),pni=Nt(Bn(),1);$c();var sO=Nt(sTe(),1),Vmt=Nt(sTe(),1),oni=Nt(Bn(),1),Lya=100,ani=async()=>{if(sO.context.eventName==="push")return sO.context.payload.commits;if(sO.context.eventName==="pull_request"&&sO.context.payload.pull_request){let e=sO.context.payload.pull_request.commits_url;return(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN).paginate(`GET ${e}`,sO.context.repo)}return console.log(`Unknown event "${sO.context.eventName}". Only "push" and "pull_request" supported.`),[]},cni=async e=>{let t=(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN),r=[],n;for await(let a of t.paginate.iterator(t.rest.repos.getCommit,{...sO.context.repo,ref:e,per_page:Lya})){let o=a;n??=o,r.push(...o.data.files??[])}if(!n)throw new Error(`Could not resolve commit "${e}"`);return{...n,data:{...n.data,files:r}}},Pmt=async()=>{let e=await ani();return Promise.all(e.map(async t=>cni(t.id||t.sha)))},lni=async()=>{if(sO.context.eventName==="pull_request"&&sO.context.payload.pull_request){let t=(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN);return(await t.paginate(t.rest.pulls.listFiles,{...sO.context.repo,pull_number:sO.context.payload.pull_request.number,per_page:100})).map(n=>n.filename).filter(Boolean)}return(await Pmt()).map(t=>t.data.files?t.data.files.map(r=>r.filename).filter(Boolean):[]).flat()},oO=async(e,t)=>{let{stdout:r}=await oni.execUtils.execvp("git",["diff","--name-only",...t?[t]:[]],{cwd:e.cwd,strict:!0}),n=r.split(/\r?\n/).filter(Boolean);return n.length>0?n:!t&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?lni():[]};var cQe=class extends uni.BaseCommand{static paths=[["files","changed","list"]];json=Su.Boolean("--json",!1);async execute(){let t=await Ani.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await dni.Project.find(t,this.context.cwd);if(!n)throw new gni.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await pni.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let l=await oO(r);for(let A of l)o.reportInfo(null,A),o.reportJson({location:A})})).exitCode()}};var fni={commands:[cQe]};var Cni=Nt(Bn(),1),vEr=Nt(no(),1),uQe=Nt(no(),1),BEr=Nt(no(),1);import{join as Qya}from"node:path";var lQe="RAIJIN_NODE_LOADER",Ini="--import",Vya="data:text/javascript,import%20%7B%20register%20%7D%20from%20%22node%3Amodule%22%3B",Pya=new Set(["--experimental-loader","--loader"]),Wya=e=>`data:text/javascript,${encodeURIComponent(['import { register } from "node:module";','import { pathToFileURL } from "node:url";',`register(${JSON.stringify(e)}, pathToFileURL("./"));`].join(" "))}`,Oya=(e,t,r)=>[e,t,r].filter(Boolean).join(" "),Mya=e=>e?.startsWith(Vya)??!1,Hya=e=>e?.includes(".pnp.loader.mjs")??!1,Yya=e=>{if(!e)return;let t=e.split(/\s+/).filter(Boolean),r=[];for(let n=0;n0?r.join(" "):void 0},Wmt=e=>{let t=e[lQe];if(!t)return;let r=Yya(e.NODE_OPTIONS);e.NODE_OPTIONS=Oya(r,Ini,Wya(t))};var Xya=process.platform==="win32"?"yarn.cmd":"yarn",Jya=process.platform==="win32"?"node.cmd":"node",Uya=process.platform==="win32"?["yarn.cmd","yarnpkg.cmd"]:["yarn","yarnpkg"],hni=e=>`'${e.replaceAll("'","'\\''")}'`,mni=(e,t)=>process.platform==="win32"?`@echo off\r "${e}" ${t.map(r=>`"${r.replaceAll('"','""')}"`).join(" ")} %*\r `:`#!/bin/sh @@ -2018,18 +2018,18 @@ exec ${hni(e)} ${t.map(hni).join(" ")} "$@" The same release step can be disabled from top-level package.json with tools.checks.release=false. `});changed=Su.Boolean("--changed",!1);noRelease=Su.Boolean("--no-release",!1);async execute(){let t=await $ni.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await eii.Project.find(t,this.context.cwd),n=Mmt(r);return(await qni.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await this.runCheck(r,r.cwd,["typecheck"],o)!==0||await this.runCheck(r,r.cwd,["lint"],o)!==0||(await Promise.all([this.runCheck(r,r.cwd,["test","unit"],o),this.runCheck(r,r.cwd,["test","integration"],o)])).some(A=>A!==0)||!this.noRelease&&n.enabled&&await this.runCheck(r,r.cwd,["release"],o)})).exitCode()}async runCheck(t,r,n,a){try{let l=this.changed&&(n[0]==="lint"||n[0]==="typecheck")&&!n.includes("--changed")?[...n,"--changed"]:n,A=await rii.xfs.mktempPromise(),{executable:f,env:I}=await iC({binFolder:A,project:t}),{code:C}=await tii.execUtils.pipevp(f,["checks",...l],{cwd:r,env:I,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return C!==0&&a.reportError(PEr.MessageName.UNNAMED,`Run check ${n.join(" ")} failed: ${C}`),C}catch(o){return a.reportError(PEr.MessageName.UNNAMED,`Run check ${n.join(" ")} error: ${o instanceof Error?o.message:o}`),1}}};var dii=Nt(Bn(),1),YEr=Nt(Bn(),1),QEr=Nt(Bn(),1),XEr=Nt(no(),1),pii=Nt(Bn(),1),fii=Nt(no(),1);import oba from"node:events";import{readFileSync as aba}from"node:fs";import{relative as WEr}from"node:path";import{join as cba}from"node:path";import{run as sii}from"node:test";import{tap as oii}from"node:test/reporters";var aii=Nt(uHe(),1);import{readFile as rba}from"node:fs/promises";var Qmt=class{static async load(t){return Promise.all(t.map(async r=>{let n=await rba(r,"utf8");return{file:r,source:n,tests:n.match(/test\(/gm)?.length||0}}))}};var nba="RAIJIN_TEST_EXEC_ARGV";var iba="@atls/code-runtime/runtime-exec-argv",sba=async()=>await import(iba);var nii=async e=>{let{createRuntimeExecArgv:t}=await sba();return t(e)},iii=(e=process.env[nba])=>{if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(r=>typeof r=="string"))return t}catch{return[]}return[]};var lba=1e3,aTe=(e,t)=>({type:e,data:t}),uba=e=>!e.file,gba=e=>e.includes(` not ok `)||/# (?:fail|cancelled) [1-9]\d*/.test(e),V8=class e extends oba{constructor(r){super();this.cwd=r;this.ignore=aii.default.default().add(this.getProjectIgnorePatterns())}ignore;async run(r,n,a,o=!1,l){let A=iii(),f=A.length>0?A:await nii(this.cwd),I={files:r,timeout:n,concurrency:a,watch:o,...f.length>0?{execArgv:f}:{}};if(l==="tap"){let X=sii(I),ae=X.compose(oii);return ae.pipe(process.stdout),this.collectTestsStream(X,ae,o)}let C=await Qmt.load(r);this.emit("start",{tests:C});let b=sii(I),E=b.compose(oii),N=X=>{this.emit("test:pass",X)},B=X=>{this.emit("test:fail",X)},F=X=>{this.emit("test:stdout",X)},Q=X=>{this.emit("test:stderr",X)};b.on("test:pass",N),b.on("test:fail",B),b.on("test:stdout",F),b.on("test:stderr",Q);try{return await this.collectTestsStream(b,E,o)}finally{this.emit("end"),b.off("test:pass",N),b.off("test:fail",B),b.off("test:stdout",F),b.off("test:stderr",Q)}}static async initialize(r){return new e(r)}async collectTestsStream(r,n,a=!1){let o=[],l="",A=setInterval(()=>{},lba);return new Promise((f,I)=>{let C=()=>{};function b(){C(),f(o)}function E(fe){o.push(aTe("test:pass",fe))}function N(fe){o.push(aTe("test:fail",fe))}function B(fe){o.push(aTe("test:stdout",fe))}function F(fe){o.push(aTe("test:stderr",fe))}function Q(fe){o.push(aTe("test:summary",fe)),!a&&uba(fe)&&b()}function X(fe){l+=fe.toString()}function ae(){gba(l)&&o.push(aTe("test:fail",{})),b()}function ne(){b()}function ce(fe){C(),I(fe)}C=()=>{clearInterval(A),r.off("test:pass",E),r.off("test:fail",N),r.off("test:stdout",B),r.off("test:stderr",F),r.off("test:summary",Q),r.off("end",ne),r.off("error",ce),n?.off("data",X),n?.off("end",ae),n?.off("error",ce)},r.on("test:pass",E),r.on("test:fail",N),r.on("test:stdout",B),r.on("test:stderr",F),r.on("test:summary",Q),r.once("end",ne),r.once("error",ce),n?.on("data",X),n?.once("end",ae),n?.once("error",ce)})}async unit(r,n){let o=(await this.collectTestFiles(r,"unit",n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,24e4,!0,n?.watch,n?.testReporter)}async integration(r,n){let o=(await this.collectTestFiles(r,"integration",n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,42e4,!1,n?.watch,n?.testReporter)}async general(r,n){let o=(await this.collectTestFiles(r,void 0,n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,42e4,!0,n?.watch,n?.testReporter)}async collectTestFiles(r,n,a){let o="*";return n!==void 0&&(o=n==="unit"?"!(integration)":"integration"),!a||a.length<1?b$([`**/${o}/*.test.{ts,tsx,js,jsx}`],{cwd:r,dot:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/.yarn/**"]}):b$(a.map(l=>this.isFilename(l)?`**/${o}/*${l}*.test.{ts,tsx,js,jsx}`:this.isRootPath(l)?l:`**/${l}`),{cwd:r,dot:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/.yarn/**"]})}isFilename(r){let n=r.includes("/")||r.includes("\\"),a=/\.(js|jsx|ts|tsx)$/.test(r);return!n&&!a}isRootPath(r){return r.startsWith("/")||r.startsWith("\\")}getProjectIgnorePatterns(){let r=aba(cba(this.cwd,"package.json"),"utf-8"),{testIgnorePatterns:n=[]}=JSON.parse(r);return n}};var Aii=Nt(el(),1);import{relative as Aba}from"node:path";var dba=1,pba="failure",lii=new Set(["test failed"]),fba=["Error","AssertionError","TypeError:","SyntaxError:","ReferenceError:","RangeError:"],MEr=e=>typeof e=="object"&&e!==null,OEr=e=>typeof e=="string"&&e.length>0?e:void 0,vhe=e=>MEr(e)?OEr(e.message):OEr(e),cii=e=>{if(MEr(e))return OEr(e.stack)},Xmt=e=>{if(!MEr(e)||e.cause===void 0)return e;let t=Xmt(e.cause),r=vhe(t);return r&&!lii.has(r)?t:e},HEr=e=>e===void 0||lii.has(e),Iba=e=>e.reduce((t,r)=>{if(r.type!=="test:stderr")return t;let{file:n,message:a}=r.data;return n&&a&&t.set(n,`${t.get(n)??""}${a}`),t},new Map),uii=e=>e?e.split(` -`).map(r=>r.trim()).filter(Boolean).find(r=>fba.some(n=>r.startsWith(n))):void 0,hba=e=>e.reduce((t,r)=>(r.file&&t.set(r.file,(t.get(r.file)??0)+1),t),new Map),mba=(e,t,r)=>{if(!t||r>1)return!1;let n=Xmt(e),a=vhe(n);return HEr(a)&&uii(t)!==void 0},Cba=(e,t)=>{let r=Xmt(e),n=vhe(r),a=uii(t);return a&&HEr(n)?a:n??vhe(e)??"Test failed"},_ba=(e,t)=>{let r=Xmt(e),n=vhe(r);return t&&HEr(n)?t.trim():cii(r)??vhe(r)??cii(e)??vhe(e)??"Test failed"},gii=(e,t,r=[])=>{let n=Iba(r),a=hba(e);return e.map(o=>{let l=o.file?n.get(o.file):void 0,A=o.file?a.get(o.file)??0:0,f=mba(o.details.error,l,A)?l:void 0,I=Cba(o.details.error,f),C=o.line??dba;return{path:o.file?Aba(t,o.file):t,start_line:C,end_line:C,annotation_level:pba,raw_details:_ba(o.details.error,f),title:I,message:I}})};var cTe=class extends Aii.BaseCommand{formatResults(t,r,n=[]){return gii(t,r,n)}};var hQe=class extends cTe{static paths=[["checks","test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(XEr.Filename.pnpCjs)&&t.includes(XEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd),n=await fii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await pii.execUtils.pipevp(a,["checks","test","integration"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","integration"]);let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd);return(await dii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Integration"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).integration(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Integration run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Iii=Nt(Bn(),1),JEr=Nt(Bn(),1),UEr=Nt(Bn(),1),KEr=Nt(no(),1),hii=Nt(Bn(),1),mii=Nt(no(),1);var mQe=class extends cTe{static paths=[["checks","test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(KEr.Filename.pnpCjs)&&t.includes(KEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd),n=await mii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await hii.execUtils.pipevp(a,["checks","test","unit"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","unit"]);let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd);return(await Iii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Unit"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).unit(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Unit run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Cii=Nt(el(),1),zEr=Nt(Bn(),1),qEr=Nt(Bn(),1),_ii=Nt(Bn(),1),Jmt=Nt(Bn(),1),$Er=Nt(no(),1),yii=Nt(Bn(),1),lTe=Nt(no(),1),e1r=Nt(no(),1),t1r=Nt(no(),1);$c();import{spawn as yba}from"node:child_process";import{resolve as bba}from"node:path";var jEr=5*60*1e3,CQe=class extends Cii.BaseCommand{static paths=[["checks","typecheck"]];changed=Su.Boolean("--changed",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes($Er.Filename.pnpCjs)&&t.includes($Er.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd),n=await lTe.xfs.mktempPromise(),a=["checks","typecheck",...this.changed?["--changed"]:[]],{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await yii.execUtils.pipevp(o,a,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd);return(await _ii.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{let o=new WM("TypeCheck");try{let{id:l}=await o.start();await a.startTimerPromise("TypeCheck",async()=>{try{let A=await this.getIncludes(r);if(this.changed&&A.length===0){a.reportInfo(Jmt.MessageName.UNNAMED,"No TypeScript files changed"),await o.complete(l,{title:"Successful",summary:"No TypeScript files changed",annotations:[]});return}a.reportInfo(Jmt.MessageName.UNNAMED,`TypeCheck targets: ${A.length}`);let f=await this.runTypecheck(r,A);f===0?await o.complete(l,{title:"Successful",summary:"All checks passed",annotations:[]}):(await o.failure({title:"TypeCheck run failed",summary:f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`},l),a.reportError(Jmt.MessageName.UNNAMED,f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`))}catch(A){await o.failure({title:"TypeCheck run failed",summary:A instanceof Error?A.message:A},l)}})}catch(l){await o.failure({title:"TypeCheck start failed",summary:l instanceof Error?l.message:l})}})).exitCode()}async getIncludes(t){if(this.changed){let r=(await oO(t)).filter(a=>/\.(cts|mts|ts|tsx)$/.test(a)),n=await Promise.all(r.map(async a=>lTe.xfs.existsPromise(e1r.npath.toPortablePath(bba(t.cwd,a)))));return r.filter((a,o)=>n[o])}if(await lTe.xfs.existsPromise(t1r.ppath.join(t.cwd,"tsconfig.json"))){let r=await lTe.xfs.readJsonPromise(t1r.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}async runTypecheck(t,r){let n=await lTe.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:t,env:{COMMAND_PROXY_EXECUTION:"true"}}),l;return new Promise((A,f)=>{let I=!1,C=yba(a,["typecheck",...r],{cwd:e1r.npath.fromPortablePath(t.cwd),env:o,stdio:["ignore","pipe","pipe"]});C.stdout.pipe(this.context.stdout,{end:!1}),C.stderr.pipe(this.context.stderr,{end:!1}),l=setTimeout(()=>{I=!0,C.kill("SIGTERM"),setTimeout(()=>{C.killed||C.kill("SIGKILL")},5e3).unref()},jEr),C.on("error",f),C.on("close",b=>{l&&clearTimeout(l),A(I?124:b??1)})})}};var bii={commands:[hQe,mQe,CQe,gQe,Hmt,Ymt]};var i1r={};sI(i1r,{beforeWorkspacePacking:()=>n1r,default:()=>Eii});var n1r=(e,t)=>{t.name==="@atls/yarn-cli"&&(t.dependencies=new Proxy({},{set:()=>!0}))};var Eii={hooks:{beforeWorkspacePacking:n1r}};var TBr={};sI(TBr,{default:()=>dhi});var mli=Nt(el(),1),Cli=Nt(Bn(),1),_li=Nt(Bn(),1);var Osi=Nt(wii(),1);var Oii=Nt(Pii(),1);function Wii(e){let t=[];return new Promise((r,n)=>e.on("data",a=>t.push(a.toString("utf-8"))).on("error",n).on("end",()=>r(t)))}async function Mii(e,t={}){return Wii((0,Oii.default)(e,{cwd:t.cwd}))}import Xba from"path";import yQe from"node:path";import Vba from"node:process";import Pba from"node:path";import Fuu,{promises as Hii}from"node:fs";import{fileURLToPath as Wba}from"node:url";var s1r=class{value;next;constructor(t){this.value=t}},_Qe=class{#e;#t;#n;constructor(){this.clear()}enqueue(t){let r=new s1r(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#n++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#n--,t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}};function Kmt(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new _Qe,r=0,n=()=>{r--,t.size>0&&t.dequeue()()},a=async(A,f,I)=>{r++;let C=(async()=>A(...I))();f(C);try{await C}catch{}n()},o=(A,f,I)=>{t.enqueue(a.bind(void 0,A,f,I)),(async()=>(await Promise.resolve(),r0&&t.dequeue()()))()},l=(A,...f)=>new Promise(I=>{o(A,I,f)});return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),l}var jmt=class extends Error{constructor(t){super(),this.value=t}},Zba=async(e,t)=>t(await e),Lba=async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new jmt(t[0]);return!1};async function o1r(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){let a=Kmt(r),o=[...e].map(A=>[A,a(Zba,A,t)]),l=Kmt(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(A=>l(Lba,A)))}catch(A){if(A instanceof jmt)return A.value;throw A}}var Yii={directory:"isDirectory",file:"isFile"};function Oba(e){if(!Object.hasOwnProperty.call(Yii,e))throw new Error(`Invalid type specified: ${e}`)}var Mba=(e,t)=>t[Yii[e]](),Hba=e=>e instanceof URL?Wba(e):e;async function a1r(e,{cwd:t=Vba.cwd(),type:r="file",allowSymlinks:n=!0,concurrency:a,preserveOrder:o}={}){Oba(r),t=Hba(t);let l=n?Hii.stat:Hii.lstat;return o1r(e,async A=>{try{let f=await l(Pba.resolve(t,A));return Mba(r,f)}catch{return!1}},{concurrency:a,preserveOrder:o})}Vfr();var Yba=Symbol("findUpStop");async function Qba(e,t={}){let r=yQe.resolve(mMe(t.cwd)??""),{root:n}=yQe.parse(r),a=yQe.resolve(r,mMe(t.stopAt??n)),o=t.limit??Number.POSITIVE_INFINITY,l=[e].flat(),A=async I=>{if(typeof e!="function")return a1r(l,I);let C=await e(I.cwd);return typeof C=="string"?a1r([C],I):C},f=[];for(;;){let I=await A({...t,cwd:r});if(I===Yba||(I&&f.push(yQe.resolve(r,I)),r===a||f.length>=o))break;r=yQe.dirname(r)}return f}async function c1r(e,t={}){return(await Qba(e,{...t,limit:1}))[0]}var Qii=Jba;async function Jba(e){let t=await Uba(e);return typeof t!="string"?t:Xba.join(t,"..")}async function Uba(e){let t=await c1r(".git",{cwd:e,type:"file"}),r=await c1r(".git",{cwd:e,type:"directory"});return t||r}import Kba from"fs/promises";import zmt from"path";import Xii from"fs/promises";async function Jii(e,t){if(typeof t=="string")return zmt.resolve(e,t);let r=zmt.join(e,".git");if((await Xii.lstat(r)).isDirectory())return zmt.join(e,".git/COMMIT_EDITMSG");let o=(await Xii.readFile(r,{encoding:"utf-8"})).replace("gitdir: ","").replace(` +`).map(r=>r.trim()).filter(Boolean).find(r=>fba.some(n=>r.startsWith(n))):void 0,hba=e=>e.reduce((t,r)=>(r.file&&t.set(r.file,(t.get(r.file)??0)+1),t),new Map),mba=(e,t,r)=>{if(!t||r>1)return!1;let n=Xmt(e),a=vhe(n);return HEr(a)&&uii(t)!==void 0},Cba=(e,t)=>{let r=Xmt(e),n=vhe(r),a=uii(t);return a&&HEr(n)?a:n??vhe(e)??"Test failed"},_ba=(e,t)=>{let r=Xmt(e),n=vhe(r);return t&&HEr(n)?t.trim():cii(r)??vhe(r)??cii(e)??vhe(e)??"Test failed"},gii=(e,t,r=[])=>{let n=Iba(r),a=hba(e);return e.map(o=>{let l=o.file?n.get(o.file):void 0,A=o.file?a.get(o.file)??0:0,f=mba(o.details.error,l,A)?l:void 0,I=Cba(o.details.error,f),C=o.line??dba;return{path:o.file?Aba(t,o.file):t,start_line:C,end_line:C,annotation_level:pba,raw_details:_ba(o.details.error,f),title:I,message:I}})};var cTe=class extends Aii.BaseCommand{formatResults(t,r,n=[]){return gii(t,r,n)}};var hQe=class extends cTe{static paths=[["checks","test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(XEr.Filename.pnpCjs)&&t.includes(XEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd),n=await fii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await pii.execUtils.pipevp(a,["checks","test","integration"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","integration"]);let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd);return(await dii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Integration"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).integration(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Integration run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Iii=Nt(Bn(),1),JEr=Nt(Bn(),1),UEr=Nt(Bn(),1),KEr=Nt(no(),1),hii=Nt(Bn(),1),mii=Nt(no(),1);var mQe=class extends cTe{static paths=[["checks","test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(KEr.Filename.pnpCjs)&&t.includes(KEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd),n=await mii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await hii.execUtils.pipevp(a,["checks","test","unit"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","unit"]);let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd);return(await Iii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Unit"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).unit(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Unit run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Cii=Nt(el(),1),zEr=Nt(Bn(),1),qEr=Nt(Bn(),1),_ii=Nt(Bn(),1),Jmt=Nt(Bn(),1),$Er=Nt(no(),1),yii=Nt(Bn(),1),lTe=Nt(no(),1),e1r=Nt(no(),1),t1r=Nt(no(),1);$c();import{spawn as yba}from"node:child_process";import{resolve as bba}from"node:path";var jEr=5*60*1e3,CQe=class extends Cii.BaseCommand{static paths=[["checks","typecheck"]];changed=Su.Boolean("--changed",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes($Er.Filename.pnpCjs)&&t.includes($Er.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd),n=await lTe.xfs.mktempPromise(),a=["checks","typecheck",...this.changed?["--changed"]:[]],{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await yii.execUtils.pipevp(o,a,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd);return(await _ii.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{let o=new WM("TypeCheck");try{let{id:l}=await o.start();await a.startTimerPromise("TypeCheck",async()=>{try{let A=await this.getIncludes(r);if(this.changed&&A.length===0){a.reportInfo(Jmt.MessageName.UNNAMED,"No TypeScript files changed"),await o.complete(l,{title:"Successful",summary:"No TypeScript files changed",annotations:[]});return}a.reportInfo(Jmt.MessageName.UNNAMED,`TypeCheck targets: ${A.length}`);let f=await this.runTypecheck(r,A);f===0?await o.complete(l,{title:"Successful",summary:"All checks passed",annotations:[]}):(await o.failure({title:"TypeCheck run failed",summary:f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`},l),a.reportError(Jmt.MessageName.UNNAMED,f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`))}catch(A){await o.failure({title:"TypeCheck run failed",summary:A instanceof Error?A.message:A},l)}})}catch(l){await o.failure({title:"TypeCheck start failed",summary:l instanceof Error?l.message:l})}})).exitCode()}async getIncludes(t){if(this.changed){let r=(await oO(t)).filter(a=>/\.(cts|mts|ts|tsx)$/.test(a)),n=await Promise.all(r.map(async a=>lTe.xfs.existsPromise(e1r.npath.toPortablePath(bba(t.cwd,a)))));return r.filter((a,o)=>n[o])}if(await lTe.xfs.existsPromise(t1r.ppath.join(t.cwd,"tsconfig.json"))){let r=await lTe.xfs.readJsonPromise(t1r.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}async runTypecheck(t,r){let n=await lTe.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:t,env:{COMMAND_PROXY_EXECUTION:"true"}}),l;return new Promise((A,f)=>{let I=!1,C=yba(a,["typecheck",...r],{cwd:e1r.npath.fromPortablePath(t.cwd),env:o,stdio:["ignore","pipe","pipe"]});C.stdout.pipe(this.context.stdout,{end:!1}),C.stderr.pipe(this.context.stderr,{end:!1}),l=setTimeout(()=>{I=!0,C.kill("SIGTERM"),setTimeout(()=>{C.killed||C.kill("SIGKILL")},5e3).unref()},jEr),C.on("error",f),C.on("close",b=>{l&&clearTimeout(l),A(I?124:b??1)})})}};var bii={commands:[hQe,mQe,CQe,gQe,Hmt,Ymt]};var i1r={};sI(i1r,{beforeWorkspacePacking:()=>n1r,default:()=>Eii});var n1r=(e,t)=>{t.name==="@atls/yarn-cli"&&(t.dependencies=new Proxy({},{set:()=>!0}))};var Eii={hooks:{beforeWorkspacePacking:n1r}};var TBr={};sI(TBr,{default:()=>dhi});var mli=Nt(el(),1),Cli=Nt(Bn(),1),_li=Nt(Bn(),1);var Osi=Nt(wii(),1);var Oii=Nt(Pii(),1);function Wii(e){let t=[];return new Promise((r,n)=>e.on("data",a=>t.push(a.toString("utf-8"))).on("error",n).on("end",()=>r(t)))}async function Mii(e,t={}){return Wii((0,Oii.default)(e,{cwd:t.cwd}))}import Xba from"path";import yQe from"node:path";import Vba from"node:process";import Pba from"node:path";import Zuu,{promises as Hii}from"node:fs";import{fileURLToPath as Wba}from"node:url";var s1r=class{value;next;constructor(t){this.value=t}},_Qe=class{#e;#t;#n;constructor(){this.clear()}enqueue(t){let r=new s1r(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#n++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#n--,t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}};function Kmt(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new _Qe,r=0,n=()=>{r--,t.size>0&&t.dequeue()()},a=async(A,f,I)=>{r++;let C=(async()=>A(...I))();f(C);try{await C}catch{}n()},o=(A,f,I)=>{t.enqueue(a.bind(void 0,A,f,I)),(async()=>(await Promise.resolve(),r0&&t.dequeue()()))()},l=(A,...f)=>new Promise(I=>{o(A,I,f)});return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),l}var jmt=class extends Error{constructor(t){super(),this.value=t}},Zba=async(e,t)=>t(await e),Lba=async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new jmt(t[0]);return!1};async function o1r(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){let a=Kmt(r),o=[...e].map(A=>[A,a(Zba,A,t)]),l=Kmt(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(A=>l(Lba,A)))}catch(A){if(A instanceof jmt)return A.value;throw A}}var Yii={directory:"isDirectory",file:"isFile"};function Oba(e){if(!Object.hasOwnProperty.call(Yii,e))throw new Error(`Invalid type specified: ${e}`)}var Mba=(e,t)=>t[Yii[e]](),Hba=e=>e instanceof URL?Wba(e):e;async function a1r(e,{cwd:t=Vba.cwd(),type:r="file",allowSymlinks:n=!0,concurrency:a,preserveOrder:o}={}){Oba(r),t=Hba(t);let l=n?Hii.stat:Hii.lstat;return o1r(e,async A=>{try{let f=await l(Pba.resolve(t,A));return Mba(r,f)}catch{return!1}},{concurrency:a,preserveOrder:o})}Vfr();var Yba=Symbol("findUpStop");async function Qba(e,t={}){let r=yQe.resolve(mMe(t.cwd)??""),{root:n}=yQe.parse(r),a=yQe.resolve(r,mMe(t.stopAt??n)),o=t.limit??Number.POSITIVE_INFINITY,l=[e].flat(),A=async I=>{if(typeof e!="function")return a1r(l,I);let C=await e(I.cwd);return typeof C=="string"?a1r([C],I):C},f=[];for(;;){let I=await A({...t,cwd:r});if(I===Yba||(I&&f.push(yQe.resolve(r,I)),r===a||f.length>=o))break;r=yQe.dirname(r)}return f}async function c1r(e,t={}){return(await Qba(e,{...t,limit:1}))[0]}var Qii=Jba;async function Jba(e){let t=await Uba(e);return typeof t!="string"?t:Xba.join(t,"..")}async function Uba(e){let t=await c1r(".git",{cwd:e,type:"file"}),r=await c1r(".git",{cwd:e,type:"directory"});return t||r}import Kba from"fs/promises";import zmt from"path";import Xii from"fs/promises";async function Jii(e,t){if(typeof t=="string")return zmt.resolve(e,t);let r=zmt.join(e,".git");if((await Xii.lstat(r)).isDirectory())return zmt.join(e,".git/COMMIT_EDITMSG");let o=(await Xii.readFile(r,{encoding:"utf-8"})).replace("gitdir: ","").replace(` `,"");return zmt.resolve(e,o,"COMMIT_EDITMSG")}async function Uii(e,t){let r=await Qii(e);if(typeof r!="string")throw new TypeError(`Could not find git root from ${e}`);let n=await Jii(r,t);return[`${(await Kba.readFile(n)).toString("utf-8")} `]}var Lsi=Nt(Lct(),1);import{Buffer as u1a}from"node:buffer";import g1a from"node:path";import x1r from"node:child_process";import ACt from"node:process";function l1r(e){let t=typeof e=="string"?` `:10,r=typeof e=="string"?"\r":13;return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e}import $mt from"node:process";import bQe from"node:path";import{fileURLToPath as Kii}from"node:url";function qmt(e={}){let{env:t=process.env,platform:r=process.platform}=e;return r!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"}var jba=({cwd:e=$mt.cwd(),path:t=$mt.env[qmt()],preferLocal:r=!0,execPath:n=$mt.execPath,addExecPath:a=!0}={})=>{let o=e instanceof URL?Kii(e):e,l=bQe.resolve(o),A=[];return r&&zba(A,l),a&&qba(A,n,l),[...A,t].join(bQe.delimiter)},zba=(e,t)=>{let r;for(;r!==t;)e.push(bQe.join(t,"node_modules/.bin")),r=t,t=bQe.resolve(t,"..")},qba=(e,t,r)=>{let n=t instanceof URL?Kii(t):t;e.push(bQe.resolve(r,n,".."))},jii=({env:e=$mt.env,...t}={})=>{e={...e};let r=qmt({env:e});return t.path=e[r],e[r]=jba(t),e};var $ba=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!eEa(a,o)&&n||Object.defineProperty(e,r,o)},eEa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},tEa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},rEa=(e,t)=>`/* Wrapped ${e}*/ -${t}`,nEa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),iEa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),sEa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=rEa.bind(null,n,t.toString());Object.defineProperty(a,"name",iEa),Object.defineProperty(e,"toString",{...nEa,value:a})};function u1r(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))$ba(e,t,a,r);return tEa(e,t),sEa(e,t,n),e}var eCt=new WeakMap,zii=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(eCt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return u1r(o,e),eCt.set(o,n),o};zii.callCount=e=>{if(!eCt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return eCt.get(e)};var qii=zii;import fEa from"node:process";import{constants as lEa}from"node:os";var $ii=()=>{let e=tsi-esi+1;return Array.from({length:e},oEa)},oEa=(e,t)=>({name:`SIGRT${t+1}`,number:esi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),esi=34,tsi=64;import{constants as aEa}from"node:os";var rsi=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var g1r=()=>{let e=$ii();return[...rsi,...e].map(cEa)},cEa=({name:e,number:t,description:r,action:n,forced:a=!1,standard:o})=>{let{signals:{[e]:l}}=aEa,A=l!==void 0;return{name:e,number:A?l:t,description:r,supported:A,action:n,forced:a,standard:o}};var uEa=()=>{let e=g1r();return Object.fromEntries(e.map(gEa))},gEa=({name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l})=>[e,{name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l}],nsi=uEa(),AEa=()=>{let e=g1r(),t=65,r=Array.from({length:t},(n,a)=>dEa(a,e));return Object.assign({},...r)},dEa=(e,t)=>{let r=pEa(e,t);if(r===void 0)return{};let{name:n,description:a,supported:o,action:l,forced:A,standard:f}=r;return{[e]:{name:n,number:e,description:a,supported:o,action:l,forced:A,standard:f}}},pEa=(e,t)=>{let r=t.find(({name:n})=>lEa.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},bgu=AEa();var IEa=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:a,exitCode:o,isCanceled:l})=>e?`timed out after ${t} milliseconds`:l?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",EQe=({stdout:e,stderr:t,all:r,error:n,signal:a,exitCode:o,command:l,escapedCommand:A,timedOut:f,isCanceled:I,killed:C,parsed:{options:{timeout:b,cwd:E=fEa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let N=a===void 0?void 0:nsi[a].description,B=n&&n.code,Q=`Command ${IEa({timedOut:f,timeout:b,errorCode:B,signal:a,signalDescription:N,exitCode:o,isCanceled:I})}: ${l}`,X=Object.prototype.toString.call(n)==="[object Error]",ae=X?`${Q} +${t}`,nEa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),iEa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),sEa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=rEa.bind(null,n,t.toString());Object.defineProperty(a,"name",iEa),Object.defineProperty(e,"toString",{...nEa,value:a})};function u1r(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))$ba(e,t,a,r);return tEa(e,t),sEa(e,t,n),e}var eCt=new WeakMap,zii=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(eCt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return u1r(o,e),eCt.set(o,n),o};zii.callCount=e=>{if(!eCt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return eCt.get(e)};var qii=zii;import fEa from"node:process";import{constants as lEa}from"node:os";var $ii=()=>{let e=tsi-esi+1;return Array.from({length:e},oEa)},oEa=(e,t)=>({name:`SIGRT${t+1}`,number:esi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),esi=34,tsi=64;import{constants as aEa}from"node:os";var rsi=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var g1r=()=>{let e=$ii();return[...rsi,...e].map(cEa)},cEa=({name:e,number:t,description:r,action:n,forced:a=!1,standard:o})=>{let{signals:{[e]:l}}=aEa,A=l!==void 0;return{name:e,number:A?l:t,description:r,supported:A,action:n,forced:a,standard:o}};var uEa=()=>{let e=g1r();return Object.fromEntries(e.map(gEa))},gEa=({name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l})=>[e,{name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l}],nsi=uEa(),AEa=()=>{let e=g1r(),t=65,r=Array.from({length:t},(n,a)=>dEa(a,e));return Object.assign({},...r)},dEa=(e,t)=>{let r=pEa(e,t);if(r===void 0)return{};let{name:n,description:a,supported:o,action:l,forced:A,standard:f}=r;return{[e]:{name:n,number:e,description:a,supported:o,action:l,forced:A,standard:f}}},pEa=(e,t)=>{let r=t.find(({name:n})=>lEa.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},Egu=AEa();var IEa=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:a,exitCode:o,isCanceled:l})=>e?`timed out after ${t} milliseconds`:l?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",EQe=({stdout:e,stderr:t,all:r,error:n,signal:a,exitCode:o,command:l,escapedCommand:A,timedOut:f,isCanceled:I,killed:C,parsed:{options:{timeout:b,cwd:E=fEa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let N=a===void 0?void 0:nsi[a].description,B=n&&n.code,Q=`Command ${IEa({timedOut:f,timeout:b,errorCode:B,signal:a,signalDescription:N,exitCode:o,isCanceled:I})}: ${l}`,X=Object.prototype.toString.call(n)==="[object Error]",ae=X?`${Q} ${n.message}`:Q,ne=[ae,t,e].filter(Boolean).join(` `);return X?(n.originalMessage=n.message,n.message=ne):n=new Error(ne),n.shortMessage=ae,n.command=l,n.escapedCommand=A,n.exitCode=o,n.signal=a,n.signalDescription=N,n.stdout=e,n.stderr=t,n.cwd=E,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!f,n.isCanceled=I,n.killed=C&&!f,n};var tCt=["stdin","stdout","stderr"],hEa=e=>tCt.some(t=>e[t]!==void 0),isi=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return tCt.map(n=>e[n]);if(hEa(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${tCt.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let r=Math.max(t.length,tCt.length);return Array.from({length:r},(n,a)=>t[a])};m1r();import _Ea from"node:os";var yEa=1e3*5,osi=(e,t="SIGTERM",r={})=>{let n=e(t);return bEa(e,t,r,n),n},bEa=(e,t,r,n)=>{if(!EEa(t,r,n))return;let a=vEa(r),o=setTimeout(()=>{e("SIGKILL")},a);o.unref&&o.unref()},EEa=(e,{forceKillAfterTimeout:t},r)=>SEa(e)&&t!==!1&&r,SEa=e=>e===_Ea.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",vEa=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return yEa;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},asi=(e,t)=>{e.kill()&&(t.isCanceled=!0)},BEa=(e,t,r)=>{e.kill(t),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},csi=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let a,o=new Promise((A,f)=>{a=setTimeout(()=>{BEa(e,r,f)},t)}),l=n.finally(()=>{clearTimeout(a)});return Promise.race([o,l])},lsi=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},usi=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let a=iCt(()=>{e.kill()});return n.finally(()=>{a()})};import{createWriteStream as wEa}from"node:fs";import{ChildProcess as TEa}from"node:child_process";function sCt(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function C1r(e){return sCt(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var REa=e=>e instanceof TEa&&typeof e.then=="function",_1r=(e,t,r)=>{if(typeof r=="string")return e[t].pipe(wEa(r)),e;if(C1r(r))return e[t].pipe(r),e;if(!REa(r))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!C1r(r.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r},gsi=e=>{e.stdout!==null&&(e.pipeStdout=_1r.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=_1r.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=_1r.bind(void 0,e,"all"))};import{createReadStream as UEa,readFileSync as KEa}from"node:fs";import{setTimeout as jEa}from"node:timers/promises";var SQe=async(e,{init:t,convertChunk:r,getSize:n,truncateChunk:a,addChunk:o,getFinalChunk:l,finalize:A},{maxBuffer:f=Number.POSITIVE_INFINITY}={})=>{if(!DEa(e))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let I=t();I.length=0;try{for await(let C of e){let b=kEa(C),E=r[b](C,I);psi({convertedChunk:E,state:I,getSize:n,truncateChunk:a,addChunk:o,maxBuffer:f})}return NEa({state:I,convertChunk:r,getSize:n,truncateChunk:a,addChunk:o,getFinalChunk:l,maxBuffer:f}),A(I)}catch(C){throw C.bufferedData=A(I),C}},NEa=({state:e,getSize:t,truncateChunk:r,addChunk:n,getFinalChunk:a,maxBuffer:o})=>{let l=a(e);l!==void 0&&psi({convertedChunk:l,state:e,getSize:t,truncateChunk:r,addChunk:n,maxBuffer:o})},psi=({convertedChunk:e,state:t,getSize:r,truncateChunk:n,addChunk:a,maxBuffer:o})=>{let l=r(e),A=t.length+l;if(A<=o){Asi(e,t,a,A);return}let f=n(e,o-t.length);throw f!==void 0&&Asi(f,t,a,o),new oCt},Asi=(e,t,r,n)=>{t.contents=r(e,t,n),t.length=n},DEa=e=>typeof e=="object"&&e!==null&&typeof e[Symbol.asyncIterator]=="function",kEa=e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let r=dsi.call(e);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&dsi.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:dsi}=Object.prototype,oCt=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var y1r=e=>e,b1r=()=>{},E1r=({contents:e})=>e,aCt=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},cCt=e=>e.length;async function S1r(e,t){return SQe(e,OEa,t)}var xEa=()=>({contents:new ArrayBuffer(0)}),GEa=e=>FEa.encode(e),FEa=new TextEncoder,fsi=e=>new Uint8Array(e),Isi=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),ZEa=(e,t)=>e.slice(0,t),LEa=(e,{contents:t,length:r},n)=>{let a=Csi()?PEa(t,n):VEa(t,n);return new Uint8Array(a).set(e,r),a},VEa=(e,t)=>{if(t<=e.byteLength)return e;let r=new ArrayBuffer(msi(t));return new Uint8Array(r).set(new Uint8Array(e),0),r},PEa=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let r=new ArrayBuffer(t,{maxByteLength:msi(t)});return new Uint8Array(r).set(new Uint8Array(e),0),r},msi=e=>hsi**Math.ceil(Math.log(e)/Math.log(hsi)),hsi=2,WEa=({contents:e,length:t})=>Csi()?e:e.slice(0,t),Csi=()=>"resize"in ArrayBuffer.prototype,OEa={init:xEa,convertChunk:{string:GEa,buffer:fsi,arrayBuffer:fsi,dataView:Isi,typedArray:Isi,others:aCt},getSize:cCt,truncateChunk:ZEa,addChunk:LEa,getFinalChunk:b1r,finalize:WEa};async function lCt(e,t){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return _si(await S1r(e,t))}catch(r){throw r.bufferedData!==void 0&&(r.bufferedData=_si(r.bufferedData)),r}}var _si=e=>globalThis.Buffer.from(e);async function v1r(e,t){return SQe(e,XEa,t)}var MEa=()=>({contents:"",textDecoder:new TextDecoder}),uCt=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),HEa=(e,{contents:t})=>t+e,YEa=(e,t)=>e.slice(0,t),QEa=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},XEa={init:MEa,convertChunk:{string:y1r,buffer:uCt,arrayBuffer:uCt,dataView:uCt,typedArray:uCt,others:aCt},getSize:cCt,truncateChunk:YEa,addChunk:HEa,getFinalChunk:QEa,finalize:E1r};var Esi=Nt(bsi(),1),Ssi=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},zEa=({input:e,inputFile:t})=>typeof t!="string"?e:(Ssi(e),KEa(t)),vsi=e=>{let t=zEa(e);if(sCt(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},qEa=({input:e,inputFile:t})=>typeof t!="string"?e:(Ssi(e),UEa(t)),Bsi=(e,t)=>{let r=qEa(t);r!==void 0&&(sCt(r)?r.pipe(e.stdin):e.stdin.end(r))},wsi=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=(0,Esi.default)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r},B1r=async(e,t)=>{if(!(!e||t===void 0)){await jEa(0),e.destroy();try{return await t}catch(r){return r.bufferedData}}},w1r=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(!(!e||!r))return t==="utf8"||t==="utf-8"?v1r(e,{maxBuffer:n}):t===null||t==="buffer"?lCt(e,{maxBuffer:n}):$Ea(e,n,t)},$Ea=async(e,t,r)=>(await lCt(e,{maxBuffer:t})).toString(r),Tsi=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:a,maxBuffer:o},l)=>{let A=w1r(e,{encoding:n,buffer:a,maxBuffer:o}),f=w1r(t,{encoding:n,buffer:a,maxBuffer:o}),I=w1r(r,{encoding:n,buffer:a,maxBuffer:o*2});try{return await Promise.all([l,A,f,I])}catch(C){return Promise.all([{error:C,signal:C.signal,timedOut:C.timedOut},B1r(e,A),B1r(t,f),B1r(r,I)])}};var e1a=(async()=>{})().constructor.prototype,t1a=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(e1a,e)]),T1r=(e,t)=>{for(let[r,n]of t1a){let a=typeof t=="function"?(...o)=>Reflect.apply(n.value,t(),o):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:a})}},Rsi=e=>new Promise((t,r)=>{e.on("exit",(n,a)=>{t({exitCode:n,signal:a})}),e.on("error",n=>{r(n)}),e.stdin&&e.stdin.on("error",n=>{r(n)})});import{Buffer as r1a}from"node:buffer";import{ChildProcess as n1a}from"node:child_process";var ksi=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],i1a=/^[\w.-]+$/,s1a=e=>typeof e!="string"||i1a.test(e)?e:`"${e.replaceAll('"','\\"')}"`,R1r=(e,t)=>ksi(e,t).join(" "),N1r=(e,t)=>ksi(e,t).map(r=>s1a(r)).join(" "),xsi=/ +/g,Gsi=e=>{let t=[];for(let r of e.trim().split(xsi)){let n=t.at(-1);n&&n.endsWith("\\")?t[t.length-1]=`${n.slice(0,-1)} ${r}`:t.push(r)}return t},Nsi=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof n1a)&&"stdout"in e){let r=typeof e.stdout;if(r==="string")return e.stdout;if(r1a.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${r}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},Dsi=(e,t,r)=>r||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],o1a=({templates:e,expressions:t,tokens:r,index:n,template:a})=>{let o=a??e.raw[n],l=o.split(xsi).filter(Boolean),A=Dsi(r,l,o.startsWith(" "));if(n===t.length)return A;let f=t[n],I=Array.isArray(f)?f.map(C=>Nsi(C)):[Nsi(f)];return Dsi(A,I,o.endsWith(" "))},D1r=(e,t)=>{let r=[];for(let[n,a]of e.entries())r=o1a({templates:e,expressions:t,tokens:r,index:n,template:a});return r};import{debuglog as a1a}from"node:util";import c1a from"node:process";var Fsi=a1a("execa").enabled,gCt=(e,t)=>String(e).padStart(t,"0"),l1a=()=>{let e=new Date;return`${gCt(e.getHours(),2)}:${gCt(e.getMinutes(),2)}:${gCt(e.getSeconds(),2)}.${gCt(e.getMilliseconds(),3)}`},k1r=(e,{verbose:t})=>{t&&c1a.stderr.write(`[${l1a()}] ${e} -`)};var A1a=1e3*1e3*100,d1a=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:a})=>{let o=t?{...ACt.env,...e}:e;return r?jii({env:o,cwd:n,execPath:a}):o},Vsi=(e,t,r={})=>{let n=Lsi.default._parse(e,t,r);return e=n.command,t=n.args,r=n.options,r={maxBuffer:A1a,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||ACt.cwd(),execPath:ACt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Fsi,...r},r.env=d1a(r),r.stdio=isi(r),ACt.platform==="win32"&&g1a.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},vQe=(e,t,r)=>typeof t!="string"&&!u1a.isBuffer(t)?r===void 0?void 0:"":e.stripFinalNewline?l1r(t):t;function j$(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options),lsi(n.options);let l;try{l=x1r.spawn(n.file,n.args,n.options)}catch(N){let B=new x1r.ChildProcess,F=Promise.reject(EQe({error:N,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return T1r(B,F),B}let A=Rsi(l),f=csi(l,n.options,A),I=usi(l,n.options,f),C={isCanceled:!1};l.kill=osi.bind(null,l.kill.bind(l)),l.cancel=asi.bind(null,l,C);let E=qii(async()=>{let[{error:N,exitCode:B,signal:F,timedOut:Q},X,ae,ne]=await Tsi(l,n.options,I),ce=vQe(n.options,X),fe=vQe(n.options,ae),ue=vQe(n.options,ne);if(N||B!==0||F!==null){let de=EQe({error:N,exitCode:B,signal:F,stdout:ce,stderr:fe,all:ue,command:a,escapedCommand:o,parsed:n,timedOut:Q,isCanceled:C.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:l.killed});if(!n.options.reject)return de;throw de}return{command:a,escapedCommand:o,exitCode:0,stdout:ce,stderr:fe,all:ue,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Bsi(l,n.options),l.all=wsi(l,n.options),gsi(l),T1r(l,E),l}function p1a(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options);let l=vsi(n.options),A;try{A=x1r.spawnSync(n.file,n.args,{...n.options,input:l})}catch(C){throw EQe({error:C,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let f=vQe(n.options,A.stdout,A.error),I=vQe(n.options,A.stderr,A.error);if(A.error||A.status!==0||A.signal!==null){let C=EQe({stdout:f,stderr:I,error:A.error,signal:A.signal,exitCode:A.status,command:a,escapedCommand:o,parsed:n,timedOut:A.error&&A.error.code==="ETIMEDOUT",isCanceled:!1,killed:A.signal!==null});if(!n.options.reject)return C;throw C}return{command:a,escapedCommand:o,exitCode:0,stdout:f,stderr:I,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var f1a=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},Zsi=(e={})=>({preferLocal:!0,...f1a(e),...e});function Psi(e){function t(r,...n){if(!Array.isArray(r))return Psi({...e,...r});let[a,...o]=D1r(r,n);return j$(a,o,Zsi(e))}return t.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=D1r(r,n);return p1a(a,o,Zsi(e))},t}var ZAu=Psi();function Wsi(e,t){let[r,...n]=Gsi(e);return j$(r,n,t)}async function dCt(e){let{cwd:t,fromLastTag:r,to:n,last:a,edit:o,gitLogArgs:l}=e,A=e.from;if(o)return Uii(t,o);if(a){let C=(await j$("git",["log","-1","--pretty=format:%B"],{cwd:t})).stdout;return C[0]=='"'&&C[C.length-1]=='"'&&(C=C.slice(1,-1)),[C]}if(!A&&r){let{stdout:I}=await j$("git",["describe","--abbrev=40","--always","--first-parent","--long","--tags"],{cwd:t});if(I.length===40)A=I;else{let C=I.lastIndexOf("-",I.length-43);A=I.slice(0,C)}}let f={from:A,to:n};return l&&(f={...(0,Osi.default)(l.split(" ")),from:A,to:n}),Mii(f,{cwd:t})}var pCt;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(pCt||(pCt={}));var Msi;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(Msi||(Msi={}));var Hsi=(e=0)=>t=>`\x1B[${t+e}m`,Ysi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Qsi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,w2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},qAu=Object.keys(w2.modifier),I1a=Object.keys(w2.color),h1a=Object.keys(w2.bgColor),$Au=[...I1a,...h1a];function m1a(){let e=new Map;for(let[t,r]of Object.entries(w2)){for(let[n,a]of Object.entries(r))w2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=w2[n],e.set(a[0],a[1]);Object.defineProperty(w2,t,{value:r,enumerable:!1})}return Object.defineProperty(w2,"codes",{value:e,enumerable:!1}),w2.color.close="\x1B[39m",w2.bgColor.close="\x1B[49m",w2.color.ansi=Hsi(),w2.color.ansi256=Ysi(),w2.color.ansi16m=Qsi(),w2.bgColor.ansi=Hsi(10),w2.bgColor.ansi256=Ysi(10),w2.bgColor.ansi16m=Qsi(10),Object.defineProperties(w2,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>w2.rgbToAnsi256(...w2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>w2.ansi256ToAnsi(w2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>w2.ansi256ToAnsi(w2.hexToAnsi256(t)),enumerable:!1}}),w2}var C1a=m1a(),OX=C1a;import G1r from"node:process";import _1a from"node:os";import Xsi from"node:tty";function OM(e,t=globalThis.Deno?globalThis.Deno.args:G1r.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function E1a(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=y1a();n!==void 0&&(fCt=n);let a=r?fCt:n;if(a===0)return 0;if(r){if(OM("color=16m")||OM("color=full")||OM("color=truecolor"))return 3;if(OM("color=256"))return 2}if("TF_BUILD"in DS&&"AGENT_NAME"in DS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(DS.TERM==="dumb")return o;if(G1r.platform==="win32"){let l=_1a.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in DS)return"GITHUB_ACTIONS"in DS||"GITEA_ACTIONS"in DS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in DS)||DS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in DS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(DS.TEAMCITY_VERSION)?1:0;if(DS.COLORTERM==="truecolor"||DS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in DS){let l=Number.parseInt((DS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(DS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(DS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(DS.TERM)||"COLORTERM"in DS?1:o}function Jsi(e,t={}){let r=E1a(e,{streamIsTTY:e&&e.isTTY,...t});return b1a(r)}var S1a={stdout:Jsi({isTTY:Xsi.isatty(1)}),stderr:Jsi({isTTY:Xsi.isatty(2)})},Usi=S1a;function Ksi(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.slice(o,n)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.slice(o),l}function jsi(e,t,r,n){let a=0,o="";do{let l=e[n-1]==="\r";o+=e.slice(a,l?n-1:n)+t+(l?`\r +`)};var A1a=1e3*1e3*100,d1a=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:a})=>{let o=t?{...ACt.env,...e}:e;return r?jii({env:o,cwd:n,execPath:a}):o},Vsi=(e,t,r={})=>{let n=Lsi.default._parse(e,t,r);return e=n.command,t=n.args,r=n.options,r={maxBuffer:A1a,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||ACt.cwd(),execPath:ACt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Fsi,...r},r.env=d1a(r),r.stdio=isi(r),ACt.platform==="win32"&&g1a.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},vQe=(e,t,r)=>typeof t!="string"&&!u1a.isBuffer(t)?r===void 0?void 0:"":e.stripFinalNewline?l1r(t):t;function j$(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options),lsi(n.options);let l;try{l=x1r.spawn(n.file,n.args,n.options)}catch(N){let B=new x1r.ChildProcess,F=Promise.reject(EQe({error:N,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return T1r(B,F),B}let A=Rsi(l),f=csi(l,n.options,A),I=usi(l,n.options,f),C={isCanceled:!1};l.kill=osi.bind(null,l.kill.bind(l)),l.cancel=asi.bind(null,l,C);let E=qii(async()=>{let[{error:N,exitCode:B,signal:F,timedOut:Q},X,ae,ne]=await Tsi(l,n.options,I),ce=vQe(n.options,X),fe=vQe(n.options,ae),ue=vQe(n.options,ne);if(N||B!==0||F!==null){let de=EQe({error:N,exitCode:B,signal:F,stdout:ce,stderr:fe,all:ue,command:a,escapedCommand:o,parsed:n,timedOut:Q,isCanceled:C.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:l.killed});if(!n.options.reject)return de;throw de}return{command:a,escapedCommand:o,exitCode:0,stdout:ce,stderr:fe,all:ue,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Bsi(l,n.options),l.all=wsi(l,n.options),gsi(l),T1r(l,E),l}function p1a(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options);let l=vsi(n.options),A;try{A=x1r.spawnSync(n.file,n.args,{...n.options,input:l})}catch(C){throw EQe({error:C,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let f=vQe(n.options,A.stdout,A.error),I=vQe(n.options,A.stderr,A.error);if(A.error||A.status!==0||A.signal!==null){let C=EQe({stdout:f,stderr:I,error:A.error,signal:A.signal,exitCode:A.status,command:a,escapedCommand:o,parsed:n,timedOut:A.error&&A.error.code==="ETIMEDOUT",isCanceled:!1,killed:A.signal!==null});if(!n.options.reject)return C;throw C}return{command:a,escapedCommand:o,exitCode:0,stdout:f,stderr:I,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var f1a=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},Zsi=(e={})=>({preferLocal:!0,...f1a(e),...e});function Psi(e){function t(r,...n){if(!Array.isArray(r))return Psi({...e,...r});let[a,...o]=D1r(r,n);return j$(a,o,Zsi(e))}return t.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=D1r(r,n);return p1a(a,o,Zsi(e))},t}var LAu=Psi();function Wsi(e,t){let[r,...n]=Gsi(e);return j$(r,n,t)}async function dCt(e){let{cwd:t,fromLastTag:r,to:n,last:a,edit:o,gitLogArgs:l}=e,A=e.from;if(o)return Uii(t,o);if(a){let C=(await j$("git",["log","-1","--pretty=format:%B"],{cwd:t})).stdout;return C[0]=='"'&&C[C.length-1]=='"'&&(C=C.slice(1,-1)),[C]}if(!A&&r){let{stdout:I}=await j$("git",["describe","--abbrev=40","--always","--first-parent","--long","--tags"],{cwd:t});if(I.length===40)A=I;else{let C=I.lastIndexOf("-",I.length-43);A=I.slice(0,C)}}let f={from:A,to:n};return l&&(f={...(0,Osi.default)(l.split(" ")),from:A,to:n}),Mii(f,{cwd:t})}var pCt;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(pCt||(pCt={}));var Msi;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(Msi||(Msi={}));var Hsi=(e=0)=>t=>`\x1B[${t+e}m`,Ysi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Qsi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,w2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},$Au=Object.keys(w2.modifier),I1a=Object.keys(w2.color),h1a=Object.keys(w2.bgColor),edu=[...I1a,...h1a];function m1a(){let e=new Map;for(let[t,r]of Object.entries(w2)){for(let[n,a]of Object.entries(r))w2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=w2[n],e.set(a[0],a[1]);Object.defineProperty(w2,t,{value:r,enumerable:!1})}return Object.defineProperty(w2,"codes",{value:e,enumerable:!1}),w2.color.close="\x1B[39m",w2.bgColor.close="\x1B[49m",w2.color.ansi=Hsi(),w2.color.ansi256=Ysi(),w2.color.ansi16m=Qsi(),w2.bgColor.ansi=Hsi(10),w2.bgColor.ansi256=Ysi(10),w2.bgColor.ansi16m=Qsi(10),Object.defineProperties(w2,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>w2.rgbToAnsi256(...w2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>w2.ansi256ToAnsi(w2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>w2.ansi256ToAnsi(w2.hexToAnsi256(t)),enumerable:!1}}),w2}var C1a=m1a(),OX=C1a;import G1r from"node:process";import _1a from"node:os";import Xsi from"node:tty";function OM(e,t=globalThis.Deno?globalThis.Deno.args:G1r.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function E1a(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=y1a();n!==void 0&&(fCt=n);let a=r?fCt:n;if(a===0)return 0;if(r){if(OM("color=16m")||OM("color=full")||OM("color=truecolor"))return 3;if(OM("color=256"))return 2}if("TF_BUILD"in DS&&"AGENT_NAME"in DS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(DS.TERM==="dumb")return o;if(G1r.platform==="win32"){let l=_1a.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in DS)return"GITHUB_ACTIONS"in DS||"GITEA_ACTIONS"in DS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in DS)||DS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in DS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(DS.TEAMCITY_VERSION)?1:0;if(DS.COLORTERM==="truecolor"||DS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in DS){let l=Number.parseInt((DS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(DS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(DS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(DS.TERM)||"COLORTERM"in DS?1:o}function Jsi(e,t={}){let r=E1a(e,{streamIsTTY:e&&e.isTTY,...t});return b1a(r)}var S1a={stdout:Jsi({isTTY:Xsi.isatty(1)}),stderr:Jsi({isTTY:Xsi.isatty(2)})},Usi=S1a;function Ksi(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.slice(o,n)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.slice(o),l}function jsi(e,t,r,n){let a=0,o="";do{let l=e[n-1]==="\r";o+=e.slice(a,l?n-1:n)+t+(l?`\r `:` `)+r,a=n+1,n=e.indexOf(` `,a)}while(n!==-1);return o+=e.slice(a),o}var{stdout:zsi,stderr:qsi}=Usi,F1r=Symbol("GENERATOR"),uTe=Symbol("STYLER"),BQe=Symbol("IS_EMPTY"),$si=["ansi","ansi","ansi256","ansi16m"],gTe=Object.create(null),v1a=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=zsi?zsi.level:0;e.level=t.level===void 0?r:t.level};var B1a=e=>{let t=(...r)=>r.join(" ");return v1a(t,e),Object.setPrototypeOf(t,wQe.prototype),t};function wQe(e){return B1a(e)}Object.setPrototypeOf(wQe.prototype,Function.prototype);for(let[e,t]of Object.entries(OX))gTe[e]={get(){let r=ICt(this,L1r(t.open,t.close,this[uTe]),this[BQe]);return Object.defineProperty(this,e,{value:r}),r}};gTe.visible={get(){let e=ICt(this,this[uTe],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Z1r=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?OX[r].ansi16m(...n):t==="ansi256"?OX[r].ansi256(OX.rgbToAnsi256(...n)):OX[r].ansi(OX.rgbToAnsi(...n)):e==="hex"?Z1r("rgb",t,r,...OX.hexToRgb(...n)):OX[r][e](...n),w1a=["rgb","hex","ansi256"];for(let e of w1a){gTe[e]={get(){let{level:r}=this;return function(...n){let a=L1r(Z1r(e,$si[r],"color",...n),OX.color.close,this[uTe]);return ICt(this,a,this[BQe])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);gTe[t]={get(){let{level:r}=this;return function(...n){let a=L1r(Z1r(e,$si[r],"bgColor",...n),OX.bgColor.close,this[uTe]);return ICt(this,a,this[BQe])}}}}var T1a=Object.defineProperties(()=>{},{...gTe,level:{enumerable:!0,get(){return this[F1r].level},set(e){this[F1r].level=e}}}),L1r=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},ICt=(e,t,r)=>{let n=(...a)=>R1a(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,T1a),n[F1r]=e,n[uTe]=t,n[BQe]=r,n},R1a=(e,t)=>{if(e.level<=0||!t)return e[BQe]?"":t;let r=e[uTe];if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Ksi(t,r.close,r.open),r=r.parent;let o=t.indexOf(` -`);return o!==-1&&(t=jsi(t,a,n,o)),n+t+a};Object.defineProperties(wQe.prototype,gTe);var N1a=wQe(),ldu=wQe({level:qsi?qsi.level:0});var fp=N1a;var D1a=[" ","\u26A0","\u2716"],k1a=["white","yellow","red"];function eoi(e={},t={}){let{results:r=[]}=e,n=o=>x1a(o,t),a=o=>G1a(o,t);return r.filter(o=>Array.isArray(o.warnings)||Array.isArray(o.errors)).map(o=>[...n(o),...a(o)]).reduce((o,l)=>Array.isArray(l)?[...o,...l]:[...o,l],[]).join(` +`);return o!==-1&&(t=jsi(t,a,n,o)),n+t+a};Object.defineProperties(wQe.prototype,gTe);var N1a=wQe(),udu=wQe({level:qsi?qsi.level:0});var fp=N1a;var D1a=[" ","\u26A0","\u2716"],k1a=["white","yellow","red"];function eoi(e={},t={}){let{results:r=[]}=e,n=o=>x1a(o,t),a=o=>G1a(o,t);return r.filter(o=>Array.isArray(o.warnings)||Array.isArray(o.errors)).map(o=>[...n(o),...a(o)]).reduce((o,l)=>Array.isArray(l)?[...o,...l]:[...o,l],[]).join(` `)}function x1a(e,t={}){let{color:r=!0}=t,{errors:n=[],warnings:a=[],input:o=""}=e;if(!o)return[""];let l="\u29D7",A=r?fp.gray(l):l,f=r?fp.bold(o):o,I=n.length>0||a.length>0;return t.verbose||I?[`${A} input: ${f}`]:[]}function G1a(e={},t={}){let{signs:r=D1a,colors:n=k1a,color:a=!0}=t,{errors:o=[],warnings:l=[]}=e,A=[...o,...l].map(X=>{let ae=r[X.level]||"",ne=n[X.level]||"white",ce=a?fp[ne](ae):ae,fe=a?fp.grey(`[${X.name}]`):`[${X.name}]`;return`${ce} ${X.message} ${fe}`}),f=F1a(e),I=Z1a(e),C=a?fp[I](f):f,b=o.length,E=l.length,N=A.length>0,B=t.verbose||N?`${C} found ${b} problems, ${E} warnings`:void 0,F=a&&typeof B=="string"?fp.bold(B):B,Q=N&&t.helpUrl?`\u24D8 Get help: ${t.helpUrl}`:void 0;return[...A,N?"":void 0,F,Q,N?"":void 0].filter(X=>typeof X=="string")}function F1a(e){return(e.errors||[]).length>0?"\u2716":(e.warnings||[]).length?"\u26A0":"\u2714"}function Z1a(e){return(e.errors||[]).length>0?"red":(e.warnings||[]).length?"yellow":"green"}import hTe from"util";var toi=Nt(UC(),1),L1a=e=>{let t=e.split(` `).shift();if(typeof t!="string")return!1;let r=t.replace(/^chore(\([^)]+\))?:/,"").trim();return toi.default.valid(r)!==null},yae=e=>e.test.bind(e),roi=[yae(/^((Merge pull request)|(Merge (.*?) into (.*?)|(Merge branch (.*?)))(?:\r?\n)*$)/m),yae(/^(Merge tag (.*?))(?:\r?\n)*$/m),yae(/^(R|r)evert (.*)/),yae(/^(amend|fixup|squash)!/),L1a,yae(/^(Merged (.*?)(in|into) (.*)|Merged PR (.*): (.*))/),yae(/^Merge remote-tracking branch(\s*)(.*)/),yae(/^Automatic merge(.*)/),yae(/^Auto-merged (.*?) into (.*)/)];function hCt(e="",t={}){let r=typeof t.ignores>"u"?[]:t.ignores;if(!Array.isArray(r))throw new Error(`ignores must be of type array, received ${r} of type ${typeof r}`);let n=r.filter(o=>typeof o!="function");if(n.length>0)throw new Error(`ignores must be array of type function, received items of type: ${n.map(o=>typeof o).join(", ")}`);return[...t.defaults===!1?[]:roi,...r].some(o=>o(e))}var Eoi=Nt(Aoi(),1),Soi=Nt(boi(),1);async function a2a(e,t=Eoi.sync,r){let o={...(await(0,Soi.default)()).parserOpts,fieldPattern:null,...r||{}},l=t(e,o);return l.raw=e,l}var voi=a2a;var e2r=Nt(joi(),1),Rci=Nt(Cai(),1),Nci=Nt(Mai(),1),t2r=Nt(nci(),1),Dci=Nt(Tci(),1);function SCt(e,t){switch(t){case"camel-case":return(0,e2r.default)(e);case"kebab-case":return(0,Rci.default)(e);case"snake-case":return(0,Nci.default)(e);case"pascal-case":return(0,t2r.default)((0,e2r.default)(e));case"start-case":return(0,Dci.default)(e);case"upper-case":case"uppercase":return e.toUpperCase();case"sentence-case":case"sentencecase":return(0,t2r.default)(e);case"lower-case":case"lowercase":case"lowerCase":return e.toLowerCase();default:throw new TypeError(`to-case: Unknown target case "${t}"`)}}var MX=qBa;function qBa(e="",t="lowercase"){let r=String(e).replace(/`.*?`|".*?"|'.*?'/g,"").trim(),n=SCt(r,t);return n===""||n.match(/^\d/)?!0:n===r}var TQe=(e,t=[])=>e===void 0||!Array.isArray(t)?!1:t.indexOf(e)>-1;var HZ=(e,t)=>typeof e=="string"&&e.length<=t;var RQe=(e,t)=>typeof e=="string"&&e.split(/\r?\n/).every(r=>HZ(r,t));var aO=(e,t)=>typeof e=="string"&&e.length>=t;var HX=e=>typeof e=="string"&&e.length>0;function Jf(e=[]){return e.filter(Boolean).join(" ")}var r2r=e=>e==="never",kci=(e,t="always",r=[])=>{let{body:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return r2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[r2r(t)?!o:o,Jf(["body must",r2r(t)?"not":null,`be ${l}`])]};var xci=(e,t="always")=>{let r=t==="never",n=HX(e.body||"");return[r?n:!n,Jf(["body",r?"may not":"must","be empty"])]};var Gci=(e,t="always",r=".")=>{let n=e.body;if(!n)return[!0];let a=t==="never",o=n[n.length-1]===r;return[a?!o:o,Jf(["body",a?"may not":"must","end with full stop"])]};function P8(e){return typeof e!="string"?[]:e.split(/(?:\r?\n)/)}var Fci=(e,t)=>{if(!e.body)return[!0];let r=t==="never",[n]=P8(e.raw).slice(1),a=n==="";return[r?!a:a,Jf(["body",r?"may not":"must","have leading blank line"])]};var Zci=(e,t=void 0,r=0)=>{let n=e.body;return n?[HZ(n,r),`body must not be longer than ${r} characters`]:[!0]};var Lci=(e,t=void 0,r=0)=>{let n=e.body;return n?[RQe(n,r),`body's lines must not be longer than ${r} characters`]:[!0]};var Vci=(e,t=void 0,r=0)=>e.body?[aO(e.body,r),`body must not be shorter than ${r} characters`]:[!0];var Pci=(e,t="always")=>{let r=t==="never",n=HX(e.footer||"");return[r?n:!n,Jf(["footer",r?"may not":"must","be empty"])]};var Wci=(e,t="always")=>{if(!e.footer)return[!0];let r=t==="never",n=P8(e.raw),a=P8(e.footer),o=n.indexOf(a[0]),[l]=n.slice(o-1),A=l==="";return[r?!A:A,Jf(["footer",r?"may not":"must","have leading blank line"])]};var Oci=(e,t=void 0,r=0)=>{let n=e.footer;return n?[HZ(n,r),`footer must not be longer than ${r} characters`]:[!0]};var Mci=(e,t=void 0,r=0)=>{let n=e.footer;return n?[RQe(n,r),`footer's lines must not be longer than ${r} characters`]:[!0]};var Hci=(e,t=void 0,r=0)=>e.footer?[aO(e.footer,r),`footer must not be shorter than ${r} characters`]:[!0];var n2r=e=>e==="never",Yci=(e,t="always",r=[])=>{let{header:n}=e;if(typeof n!="string"||!n.match(/^[a-z]/i))return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return n2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[n2r(t)?!o:o,Jf(["header must",n2r(t)?"not":null,`be ${l}`])]};var Qci=(e,t="always",r=".")=>{let{header:n}=e,a=t==="never",o=n?.[n.length-1]===r;return[a?!o:o,Jf(["header",a?"may not":"must","end with full stop"])]};var Xci=(e,t=void 0,r=0)=>[HZ(e.header,r),`header must not be longer than ${r} characters, current length is ${e.header?.length}`];var Jci=(e,t=void 0,r=0)=>[aO(e.header,r),`header must not be shorter than ${r} characters, current length is ${e.header?.length}`];var Uci=e=>{let{header:t}=e;if(!t)return[!0];let r=t!==t.trimStart(),n=t!==t.trimEnd();switch(!0){case(r&&n):return[!1,Jf(["header","must not be surrounded by whitespace"])];case r:return[!1,Jf(["header","must not start with whitespace"])];case n:return[!1,Jf(["header","must not end with whitespace"])];default:return[!0]}};var Kci=(e,t="never")=>{let r=t==="always",n=e.references.length>0;return[r?!n:n,Jf(["references",r?"must":"may not","be empty"])]};var i2r=e=>e==="never",jci=(e,t="always",r=[])=>{let{scope:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(I=>typeof I=="string"?{when:"always",case:I}:I),o=/\/|\\|, ?/g,l=n.split(o),A=a.some(I=>{let C=l.every(b=>o.test(b)||MX(b,I.case));return i2r(I.when)?!C:C}),f=a.map(I=>I.case).join(", ");return[i2r(t)?!A:A,Jf(["scope must",i2r(t)?"not":null,`be ${f}`])]};var zci=(e,t="never")=>{let r=t==="always",n=HX(e.scope||"");return[r?!n:n,Jf(["scope",r?"must":"may not","be empty"])]};var qci=({scope:e},t="always",r=[])=>{if(!e||!r.length)return[!0,""];let n=/\/|\\|, ?/g,a=e.split(n),o=["scope must",`be one of [${r.join(", ")}]`],l=f=>TQe(f,r),A;return t==="never"?(A=!a.some(l),o.splice(1,0,"not")):A=a.every(l),[A,Jf(o)]};var $ci=(e,t=void 0,r=0)=>{let n=e.scope;return n?[HZ(n,r),`scope must not be longer than ${r} characters`]:[!0]};var eli=(e,t=void 0,r=0)=>{let n=e.scope;return n?[aO(n,r),`scope must not be shorter than ${r} characters`]:[!0]};var tli=(e,t="always",r="")=>{let n=P8(e.raw).filter(A=>!A.startsWith("#")&&!!A),a=n[n.length-1],o=t==="never",l=a?a.startsWith(r):!1;return[o?!l:l,Jf(["message",o?"must not":"must","be signed off"])]};var $Ba=/^[\p{Ll}\p{Lu}\p{Lt}]/iu,s2r=e=>e==="never",rli=(e,t="always",r=[])=>{let{subject:n}=e;if(typeof n!="string"||!n.match($Ba))return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return s2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[s2r(t)?!o:o,Jf(["subject must",s2r(t)?"not":null,`be ${l}`])]};var nli=(e,t="always")=>{let r=t==="never",n=HX(e.subject||"");return[r?n:!n,Jf(["subject",r?"may not":"must","be empty"])]};var ili=(e,t="always",r=".")=>{let n=e.header?.indexOf(":")||0;if(n>0&&n===e.header.length-1)return[!0];let a=e.header,o=t==="never",l=a?.[a.length-1]===r;return a?.slice(-3)==="..."&&(l=!1),[o?!l:l,Jf(["subject",o?"may not":"must","end with full stop"])]};var sli=(e,t=void 0,r=0)=>{let n=e.subject;return n?[HZ(n,r),`subject must not be longer than ${r} characters`]:[!0]};var oli=(e,t=void 0,r=0)=>{let n=e.subject;return n?[aO(n,r),`subject must not be shorter than ${r} characters`]:[!0]};var ali=(e,t="always")=>{let r=e.header;if(!r)return[!0,""];let n=t==="never",a=/!:/.test(r);return[n?!a:a,Jf(["subject",n?"must not":"must","have an exclamation mark in the subject to identify a breaking change"])]};import{spawnSync as ewa}from"child_process";var cli=(e,t="always",r="")=>{let n=ewa("git",["interpret-trailers","--parse"],{input:e.raw||""}).stdout,a=P8(n.toString()).filter(A=>A.startsWith(r)).length,o=t==="never",l=a>0;return[o?!l:l,Jf(["message",o?"must not":"must","have `"+r+"` trailer"])]};var o2r=e=>e==="never",lli=(e,t="always",r=[])=>{let{type:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return o2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[o2r(t)?!o:o,Jf(["type must",o2r(t)?"not":null,`be ${l}`])]};var uli=(e,t="always")=>{let r=t==="never",n=HX(e.type||"");return[r?n:!n,Jf(["type",r?"may not":"must","be empty"])]};var gli=(e,t="always",r=[])=>{let{type:n}=e;if(!n)return[!0];let a=t==="never",o=TQe(n,r);return[a?!o:o,Jf(["type must",a?"not":null,`be one of [${r.join(", ")}]`])]};var Ali=(e,t=void 0,r=0)=>{let n=e.type;return n?[HZ(n,r),`type must not be longer than ${r} characters`]:[!0]};var dli=(e,t=void 0,r=0)=>{let n=e.type;return n?[aO(n,r),`type must not be shorter than ${r} characters`]:[!0]};var pli={"body-case":kci,"body-empty":xci,"body-full-stop":Gci,"body-leading-blank":Fci,"body-max-length":Zci,"body-max-line-length":Lci,"body-min-length":Vci,"footer-empty":Pci,"footer-leading-blank":Wci,"footer-max-length":Oci,"footer-max-line-length":Mci,"footer-min-length":Hci,"header-case":Yci,"header-full-stop":Qci,"header-max-length":Xci,"header-min-length":Jci,"header-trim":Uci,"references-empty":Kci,"scope-case":jci,"scope-empty":zci,"scope-enum":qci,"scope-max-length":$ci,"scope-min-length":eli,"signed-off-by":tli,"subject-case":rli,"subject-empty":nli,"subject-full-stop":ili,"subject-max-length":sli,"subject-min-length":oli,"subject-exclamation-mark":ali,"trailer-exists":cli,"type-case":lli,"type-empty":uli,"type-enum":gli,"type-max-length":Ali,"type-min-length":dli};var ITe;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(ITe||(ITe={}));var fli;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(fli||(fli={}));var Ili=({header:e,body:t,footer:r})=>{let n=e;return n=t?`${n} @@ -2037,10 +2037,10 @@ ${t}`:n,n=r?`${n} ${r}`:n,n||""};async function a2r(e,t,r){let n=r||{defaultIgnores:void 0,ignores:void 0},a=t||{};if(hCt(e,{defaults:n.defaultIgnores,ignores:n.ignores}))return{valid:!0,errors:[],warnings:[],input:e};let o=e===""?{header:null,body:null,footer:null}:await voi(e,void 0,n.parserOpts);if(o.header===null&&o.body===null&&o.footer===null)return{valid:!0,errors:[],warnings:[],input:e};let l=new Map(Object.entries(pli));n.plugins&&Object.values(n.plugins).forEach(B=>{B.rules&&Object.keys(B.rules).forEach(F=>l.set(F,B.rules[F]))});let A=Object.keys(a).filter(B=>typeof l.get(B)!="function");if(A.length>0){let B=[...l.keys()];throw new RangeError([`Found rules without implementation: ${A.join(", ")}.`,`Supported rules are: ${B.join(", ")}.`].join(` `))}let f=Object.entries(a).map(([B,F])=>{if(!Array.isArray(F))return new Error(`config for rule ${B} must be array, received ${hTe.inspect(F)} of type ${typeof F}`);let[Q]=F;if(Q===ITe.Disabled&&F.length===1)return null;let[,X]=F;return typeof Q!="number"||isNaN(Q)?new Error(`level for rule ${B} must be number, received ${hTe.inspect(Q)} of type ${typeof Q}`):F.length<2||F.length>3?new Error(`config for rule ${B} must be 2 or 3 items long, received ${hTe.inspect(F)} of length ${F.length}`):Q<0||Q>2?new RangeError(`level for rule ${B} must be between 0 and 2, received ${hTe.inspect(Q)}`):typeof X!="string"?new Error(`condition for rule ${B} must be string, received ${hTe.inspect(X)} of type ${typeof X}`):X!=="never"&&X!=="always"?new Error(`condition for rule ${B} must be "always" or "never", received ${hTe.inspect(X)}`):null}).filter(B=>B instanceof Error);if(f.length>0)throw new Error(f.map(B=>B.message).join(` -`));let I=Object.entries(a).filter(([,B])=>!!B&&B.length&&B[0]>0).map(async B=>{let[F,Q]=B,[X,ae,ne]=Q,ce=l.get(F);if(!ce)throw new Error(`Could not find rule implementation for ${F}`);let fe=ce,[ue,de]=await fe(o,ae,ne);return{level:X,valid:ue,name:F,message:de}}),C=(await Promise.all(I)).filter(B=>B!==null),b=C.filter(B=>B.level===ITe.Error&&!B.valid),E=C.filter(B=>B.level===ITe.Warning&&!B.valid);return{valid:b.length===0,errors:b,warnings:E,input:Ili(o)}}var c2r={back:{description:"Changes that affect backend code"},front:{description:"Changes that affect frontend code"},devops:{description:"Changes that affect devops code"},custom:{description:"Enter manually custom scope"}},NQe={feat:{description:"A new feature"},fix:{description:"Bug Fixes"},docs:{description:"Documentation only changes"},style:{description:"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"},refactor:{description:"A code change that neither fixes a bug nor adds a feature"},perf:{description:"A code change that improves performance"},test:{description:"Adding missing tests or correcting existing tests"},deps:{description:"Changes that affect external dependencies"},build:{description:"Changes that affect the build system"},ci:{description:"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)"},chore:{description:"Other changes that don't modify src or test files"},revert:{description:"Reverts a previous commit"}};var hli={"body-leading-blank":[1,"always"],"body-max-line-length":[2,"always",180],"footer-leading-blank":[1,"always"],"footer-max-line-length":[2,"always",100],"header-max-length":[2,"always",140],"subject-case":[2,"never",["sentence-case","start-case","pascal-case","upper-case"]],"subject-empty":[2,"never"],"subject-full-stop":[2,"never","."],"type-case":[2,"always","lower-case"],"type-empty":[2,"never"],"type-enum":[2,"always",Object.keys(NQe)],"scope-case":[2,"always","lower-case"],"scope-empty":[2,"never"]};var twa={headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w{7,40})\b/i,revertCorrespondence:["header","hash"]},rwa={parserOpts:twa},vCt=class{scopes;workspaceNames;constructor({scopes:t,workspaceNames:r}){this.scopes=t,this.workspaceNames=r}async lint(t){let r=this.prepareConfig(hli);return a2r(t,r,rwa)}format(t,r={helpUrl:"https://github.com/conventional-changelog/commitlint/#what-is-commitlint"}){return eoi(t,r)}prepareConfig(t){let r=[];this.scopes&&r.push(...this.scopes.filter(a=>a&&a!=="atls")),this.workspaceNames&&r.push(...this.workspaceNames.filter(a=>a));let n=["common","github",...r];return t["scope-enum"]=[pCt.Error,"always",n],t}};var BCt=class extends mli.BaseCommand{static paths=[["commit","message","lint"]];async execute(){let t=await Cli.Configuration.find(this.context.cwd,this.context.plugins),{project:{workspaces:r}}=await _li.Project.find(t,this.context.cwd),n=new Set(r.map(({manifest:I})=>I.name?.name??"")),a=new Set(r.map(({manifest:I})=>I.name?.scope??"")),o=new vCt({scopes:Array.from(a),workspaceNames:Array.from(n)}),l=await dCt({edit:!0}),A=await Promise.all(l.map(async I=>o.lint(I))),f=o.format({results:A});return f!==""&&this.context.stdout.write(f),A.some(I=>!I.valid)?1:0}};var lgi=Nt(el(),1),ugi=Nt(no(),1),ggi=Nt(Bli(),1);$c();var Agi=Nt(Rli(),1),dgi=Nt(Al(),1),pgi=Nt(Ec(),1),fgi=Nt(Ec(),1),$Ct=Nt(Dli(),1);var agi=Nt(Ec(),1),Bae=Nt(Ec(),1);var wTe=Nt(Al(),1),BTe=Nt(Al(),1),Hui=Nt(Ec(),1),G2r=Nt(Pui(),1);import Wui from"node:process";function D2r(){let{env:e}=Wui,{TERM:t,TERM_PROGRAM:r}=e;return Wui.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Oui={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Mui={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},fRa={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},IRa={...Oui,...Mui},hRa={...Oui,...fRa},mRa=D2r(),CRa=mRa?IRa:hRa,kI=CRa,lhu=Object.entries(Mui);var k2r=Nt(Al(),1),x2r=Nt(Al(),1),STe=Nt(Pc(),1),vTe=({label:e,value:t})=>(0,STe.jsxs)(x2r.Box,{children:[(0,STe.jsx)(x2r.Box,{width:12,children:(0,STe.jsx)(k2r.Text,{bold:!0,color:"#d7875f",children:t})}),(0,STe.jsx)(k2r.Text,{children:e})]});var cO=Nt(Pc(),1),_Ra=G2r.default.default||G2r.default,yRa=[{label:"Add a scope",value:"scope"},{label:"Resolves issues",value:"issues"},{label:"Introduces breaking changes",value:"breaking"},{label:"Add a long description",value:"body"},{label:"Skip ci/cd setups",value:"skipci"}],bRa=({isSelected:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{children:kI.circleFilled}):(0,cO.jsx)(wTe.Text,{children:" "})}),ERa=({isHighlighted:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{color:"cyanBright",children:kI.pointer}):(0,cO.jsx)(wTe.Text,{children:" "})}),Yui=({onSubmit:e})=>{let t=(0,Hui.useCallback)(r=>{e(r.reduce((n,a)=>({...n,[a.value]:!0}),{}))},[e]);return(0,cO.jsxs)(BTe.Box,{flexDirection:"column",children:[(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(wTe.Text,{bold:!0,color:"cyanBright",children:"Please select additional actions:"})}),(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(_Ra,{items:yRa,indicatorComponent:ERa,itemComponent:vTe,checkboxComponent:bRa,onSubmit:t})})]})};var F2r=Nt(Al(),1),TTe=Nt(Al(),1);var Sae=Nt(Ec(),1),XCt=Nt(Al(),1);function Qui({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A}){let[f,I]=(0,Sae.useState)({cursorOffset:(e||"").length,cursorWidth:0}),{cursorOffset:C,cursorWidth:b}=f;(0,Sae.useEffect)(()=>{I(Q=>{if(!r||!o)return Q;let X=e||"";return Q.cursorOffset>X.length-1?{cursorOffset:X.length,cursorWidth:0}:Q})},[e,r,o]);let E=a?b:0,N=n?n.repeat(e.length):e,B=N,F=t?fp.grey(t):void 0;if(o&&r){F=t.length>0?fp.inverse(t[0])+fp.grey(t.slice(1)):fp.inverse(" "),B=N.length>0?"":fp.inverse(" ");let Q=0;for(let X of N)B+=Q>=C-E&&Q<=C?fp.inverse(X):X,Q++;N.length>0&&C===N.length&&(B+=fp.inverse(" "))}return(0,XCt.useInput)((Q,X)=>{if(X.upArrow||X.downArrow||X.ctrl&&Q==="c"||X.tab||X.shift&&X.tab)return;if(X.return){A&&A(e);return}let ae=C,ne=e,ce=0;X.leftArrow?o&&ae--:X.rightArrow?o&&ae++:X.backspace||X.delete?C>0&&(ne=e.slice(0,C-1)+e.slice(C,e.length),ae--):(ne=e.slice(0,C)+Q+e.slice(C,e.length),ae+=Q.length,Q.length>1&&(ce=Q.length)),C<0&&(ae=0),C>e.length&&(ae=e.length),I({cursorOffset:ae,cursorWidth:ce}),ne!==e&&l(ne)},{isActive:r}),Sae.default.createElement(XCt.Text,null,t?N.length>0?B:F:B)}var JCt=Qui;function O8({initialValue:e="",...t}){let[r,n]=(0,Sae.useState)(e);return Sae.default.createElement(Qui,{...t,value:r,onChange:n})}var M8=Nt(Pc(),1),Xui=({onSubmit:e})=>(0,M8.jsxs)(TTe.Box,{flexDirection:"column",children:[(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(F2r.Text,{bold:!0,color:"cyanBright",children:"Please give a long description:"})}),(0,M8.jsxs)(TTe.Box,{children:[(0,M8.jsx)(TTe.Box,{marginRight:1,children:(0,M8.jsx)(F2r.Text,{color:"gray",children:"\u2192"})}),(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(O8,{onSubmit:e})})]})]});var Z2r=Nt(Al(),1),RTe=Nt(Al(),1);var H8=Nt(Pc(),1),Jui=({onSubmit:e})=>(0,H8.jsxs)(RTe.Box,{flexDirection:"column",children:[(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(Z2r.Text,{bold:!0,color:"cyanBright",children:"Describe the breaking changes:"})}),(0,H8.jsxs)(RTe.Box,{children:[(0,H8.jsx)(RTe.Box,{marginRight:1,children:(0,H8.jsx)(Z2r.Text,{color:"gray",children:"\u2192"})}),(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(O8,{onSubmit:e})})]})]});var L2r=Nt(Al(),1),NTe=Nt(Al(),1);var Y8=Nt(Pc(),1),Uui=({onSubmit:e})=>(0,Y8.jsxs)(NTe.Box,{flexDirection:"column",children:[(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(L2r.Text,{bold:!0,color:"cyanBright",children:'Add issue references (e.g. "fix #123, re #124".):'})}),(0,Y8.jsxs)(NTe.Box,{children:[(0,Y8.jsx)(NTe.Box,{marginRight:1,children:(0,Y8.jsx)(L2r.Text,{color:"gray",children:kI.arrowRight})}),(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(O8,{onSubmit:e})})]})]});var zCt=Nt(Al(),1),$$=Nt(Al(),1);var O2r=Nt(Ec(),1),M2r=Nt(Ec(),1),egi=Nt(Ec(),1);var UCt=Nt(Ec(),1),VQe=Nt(Al(),1);function SRa({isSelected:e=!1}){return UCt.default.createElement(VQe.Box,{marginRight:1},e?UCt.default.createElement(VQe.Text,{color:"blue"},kI.pointer):UCt.default.createElement(VQe.Text,null," "))}var V2r=SRa;var Kui=Nt(Ec(),1),jui=Nt(Al(),1);function vRa({isSelected:e=!1,label:t}){return Kui.createElement(jui.Text,{color:e?"blue":void 0},t)}var P2r=vRa;var oV=Nt(Ec(),1),zui=Nt(b2r(),1);function DTe(e,t){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);if(!Number.isSafeInteger(t))throw new TypeError(`The \`steps\` parameter must be an integer, got ${t}.`);let{length:r}=e;if(r===0)return[...e];let n=(t%r+r)%r;return n===0?[...e]:[...e.slice(-n),...e.slice(0,-n)]}var PQe=Nt(Al(),1);function BRa({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:n=V2r,itemComponent:a=P2r,limit:o,onSelect:l,onHighlight:A}){let f=typeof o=="number"&&e.length>o,I=f?Math.min(o,e.length):e.length,C=I-1,[b,E]=(0,oV.useState)(r>C?C-r:0),[N,B]=(0,oV.useState)(r?r>C?C:r:0),F=(0,oV.useRef)(e);(0,oV.useEffect)(()=>{(0,zui.default)(F.current.map(X=>X.value),e.map(X=>X.value))||(E(0),B(0)),F.current=e},[e]),(0,PQe.useInput)((0,oV.useCallback)((X,ae)=>{if(X==="k"||ae.upArrow){let ne=(f?I:e.length)-1,ce=N===0,fe=f?N:ne,ue=ce?b+1:b,de=ce?fe:N-1;E(ue),B(de);let be=f?DTe(e,ue).slice(0,I):e;typeof A=="function"&&A(be[de])}if(X==="j"||ae.downArrow){let ne=N===(f?I:e.length)-1,ce=f?N:0,fe=ne?b-1:b,ue=ne?ce:N+1;E(fe),B(ue);let de=f?DTe(e,fe).slice(0,I):e;typeof A=="function"&&A(de[ue])}if(ae.return){let ne=f?DTe(e,b).slice(0,I):e;typeof l=="function"&&l(ne[N])}},[f,I,b,N,e,l,A]),{isActive:t});let Q=f?DTe(e,b).slice(0,I):e;return oV.default.createElement(PQe.Box,{flexDirection:"column"},Q.map((X,ae)=>{let ne=ae===N;return oV.default.createElement(PQe.Box,{key:X.key??X.value},oV.default.createElement(n,{isSelected:ne}),oV.default.createElement(a,{...X,isSelected:ne}))}))}var WQe=BRa;var W2r=Nt(Al(),1),qui=Nt(Al(),1);var KCt=Nt(Pc(),1),jCt=({isSelected:e=!1})=>(0,KCt.jsx)(qui.Box,{marginRight:1,children:e?(0,KCt.jsx)(W2r.Text,{color:"cyanBright",children:kI.pointer}):(0,KCt.jsx)(W2r.Text,{children:" "})});var vG=Nt(Pc(),1),$ui=Object.keys(c2r).map(e=>({label:c2r[e].description,value:e})),tgi=({onSubmit:e})=>{let[t,r]=(0,O2r.useState)(!1),[n,a]=(0,O2r.useState)(""),o=(0,M2r.useMemo)(()=>n.length>0?$ui.filter(f=>f.label.toLowerCase().includes(n.toLowerCase())):$ui,[n]),l=(0,M2r.useMemo)(()=>o.length>0,[o]),A=(0,egi.useCallback)(f=>{f.value==="custom"?r(!0):e(f.value)},[r,e]);return t?(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Please state the scope of the change:"})}),(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{color:"gray",children:"\u2192"})}),(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(O8,{onSubmit:e})})]})]}):(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Type of scope:"})}),(0,vG.jsx)(JCt,{value:n,onChange:a})]}),!!l&&(0,vG.jsx)(WQe,{items:o,indicatorComponent:jCt,itemComponent:vTe,onSelect:A})]})};var H2r=Nt(Al(),1),kTe=Nt(Al(),1);var Q8=Nt(Pc(),1),rgi=({onSubmit:e})=>(0,Q8.jsxs)(kTe.Box,{flexDirection:"column",children:[(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(H2r.Text,{bold:!0,color:"cyanBright",children:"Write a short description (max 93) chars):"})}),(0,Q8.jsxs)(kTe.Box,{children:[(0,Q8.jsx)(kTe.Box,{marginRight:1,children:(0,Q8.jsx)(H2r.Text,{color:"gray",children:"\u2192"})}),(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(O8,{onSubmit:e})})]})]});var igi=Nt(Al(),1),qCt=Nt(Al(),1),sgi=Nt(Ec(),1),Y2r=Nt(Ec(),1);var vae=Nt(Pc(),1),ngi=Object.keys(NQe).map(e=>({label:NQe[e].description,value:e})),ogi=({onSubmit:e})=>{let[t,r]=(0,sgi.useState)(""),n=(0,Y2r.useMemo)(()=>t.length>0?ngi.filter(o=>o.label.toLowerCase().includes(t.toLowerCase())):ngi,[t]),a=(0,Y2r.useMemo)(()=>n.length>0,[n]);return(0,vae.jsxs)(qCt.Box,{flexDirection:"column",children:[(0,vae.jsxs)(qCt.Box,{children:[(0,vae.jsx)(qCt.Box,{marginRight:1,children:(0,vae.jsx)(igi.Text,{bold:!0,color:"cyanBright",children:"Type of commit:"})}),(0,vae.jsx)(JCt,{value:t,onChange:r})]}),!!a&&(0,vae.jsx)(WQe,{items:n,indicatorComponent:jCt,itemComponent:vTe,onSelect:o=>{e(o.value)}})]})};var eee=Nt(Pc(),1),wRa=({onSubmit:e,...t})=>((0,agi.useEffect)(()=>{e(t)},[t,e]),null),cgi=({onSubmit:e})=>{let[t,r]=(0,Bae.useState)(),[n,a]=(0,Bae.useState)(),[o,l]=(0,Bae.useState)(),[A,f]=(0,Bae.useState)(),[I,C]=(0,Bae.useState)(),[b,E]=(0,Bae.useState)(),[N,B]=(0,Bae.useState)();return t?o?N?N.scope&&!n?(0,eee.jsx)(tgi,{onSubmit:a}):N.issues&&!A?(0,eee.jsx)(Uui,{onSubmit:f}):N.body&&!I?(0,eee.jsx)(Xui,{onSubmit:C}):N.breaking&&!b?(0,eee.jsx)(Jui,{onSubmit:E}):(0,eee.jsx)(wRa,{type:t,scope:n,subject:o,issues:A,body:I,breaking:b,skipci:N.skipci,onSubmit:e}):(0,eee.jsx)(Yui,{onSubmit:B}):(0,eee.jsx)(rgi,{onSubmit:l}):(0,eee.jsx)(ogi,{onSubmit:r})};var Q2r=Nt(Pc(),1),TRa=({commit:e,useSubmit:t})=>{let{stdin:r}=(0,dgi.useStdin)();return t(e),(0,pgi.useEffect)(()=>{r?.emit("keypress","",{name:"return"})},[r]),null},RRa=({useSubmit:e})=>{let[t,r]=(0,fgi.useState)();return t?(0,Q2r.jsx)(TRa,{commit:t,useSubmit:e}):(0,Q2r.jsx)(cgi,{onSubmit:r})},e_t=class extends lgi.BaseCommand{static paths=[["commit","message"]];args=Su.Rest({required:0});async execute(){let[t,r]=this.args;if(r)return 0;if(!t)throw new Error("Commit edit message file required.");let n=(0,Agi.forceStdinTty)(),a=await(0,ggi.renderForm)(RRa,{},{stdin:process.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return a&&await ugi.xfs.writeFilePromise(t,this.formatCommit(a)),n&&process.stdin.destroy(),a?0:1}formatCommit(t){let r={trim:!0,cut:!1,newline:` +`));let I=Object.entries(a).filter(([,B])=>!!B&&B.length&&B[0]>0).map(async B=>{let[F,Q]=B,[X,ae,ne]=Q,ce=l.get(F);if(!ce)throw new Error(`Could not find rule implementation for ${F}`);let fe=ce,[ue,de]=await fe(o,ae,ne);return{level:X,valid:ue,name:F,message:de}}),C=(await Promise.all(I)).filter(B=>B!==null),b=C.filter(B=>B.level===ITe.Error&&!B.valid),E=C.filter(B=>B.level===ITe.Warning&&!B.valid);return{valid:b.length===0,errors:b,warnings:E,input:Ili(o)}}var c2r={back:{description:"Changes that affect backend code"},front:{description:"Changes that affect frontend code"},devops:{description:"Changes that affect devops code"},custom:{description:"Enter manually custom scope"}},NQe={feat:{description:"A new feature"},fix:{description:"Bug Fixes"},docs:{description:"Documentation only changes"},style:{description:"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"},refactor:{description:"A code change that neither fixes a bug nor adds a feature"},perf:{description:"A code change that improves performance"},test:{description:"Adding missing tests or correcting existing tests"},deps:{description:"Changes that affect external dependencies"},build:{description:"Changes that affect the build system"},ci:{description:"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)"},chore:{description:"Other changes that don't modify src or test files"},revert:{description:"Reverts a previous commit"}};var hli={"body-leading-blank":[1,"always"],"body-max-line-length":[2,"always",180],"footer-leading-blank":[1,"always"],"footer-max-line-length":[2,"always",100],"header-max-length":[2,"always",140],"subject-case":[2,"never",["sentence-case","start-case","pascal-case","upper-case"]],"subject-empty":[2,"never"],"subject-full-stop":[2,"never","."],"type-case":[2,"always","lower-case"],"type-empty":[2,"never"],"type-enum":[2,"always",Object.keys(NQe)],"scope-case":[2,"always","lower-case"],"scope-empty":[2,"never"]};var twa={headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w{7,40})\b/i,revertCorrespondence:["header","hash"]},rwa={parserOpts:twa},vCt=class{scopes;workspaceNames;constructor({scopes:t,workspaceNames:r}){this.scopes=t,this.workspaceNames=r}async lint(t){let r=this.prepareConfig(hli);return a2r(t,r,rwa)}format(t,r={helpUrl:"https://github.com/conventional-changelog/commitlint/#what-is-commitlint"}){return eoi(t,r)}prepareConfig(t){let r=[];this.scopes&&r.push(...this.scopes.filter(a=>a&&a!=="atls")),this.workspaceNames&&r.push(...this.workspaceNames.filter(a=>a));let n=["common","github",...r];return t["scope-enum"]=[pCt.Error,"always",n],t}};var BCt=class extends mli.BaseCommand{static paths=[["commit","message","lint"]];async execute(){let t=await Cli.Configuration.find(this.context.cwd,this.context.plugins),{project:{workspaces:r}}=await _li.Project.find(t,this.context.cwd),n=new Set(r.map(({manifest:I})=>I.name?.name??"")),a=new Set(r.map(({manifest:I})=>I.name?.scope??"")),o=new vCt({scopes:Array.from(a),workspaceNames:Array.from(n)}),l=await dCt({edit:!0}),A=await Promise.all(l.map(async I=>o.lint(I))),f=o.format({results:A});return f!==""&&this.context.stdout.write(f),A.some(I=>!I.valid)?1:0}};var lgi=Nt(el(),1),ugi=Nt(no(),1),ggi=Nt(Bli(),1);$c();var Agi=Nt(Rli(),1),dgi=Nt(Al(),1),pgi=Nt(Ec(),1),fgi=Nt(Ec(),1),$Ct=Nt(Dli(),1);var agi=Nt(Ec(),1),Bae=Nt(Ec(),1);var wTe=Nt(Al(),1),BTe=Nt(Al(),1),Hui=Nt(Ec(),1),G2r=Nt(Pui(),1);import Wui from"node:process";function D2r(){let{env:e}=Wui,{TERM:t,TERM_PROGRAM:r}=e;return Wui.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Oui={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Mui={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},fRa={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},IRa={...Oui,...Mui},hRa={...Oui,...fRa},mRa=D2r(),CRa=mRa?IRa:hRa,kI=CRa,uhu=Object.entries(Mui);var k2r=Nt(Al(),1),x2r=Nt(Al(),1),STe=Nt(Pc(),1),vTe=({label:e,value:t})=>(0,STe.jsxs)(x2r.Box,{children:[(0,STe.jsx)(x2r.Box,{width:12,children:(0,STe.jsx)(k2r.Text,{bold:!0,color:"#d7875f",children:t})}),(0,STe.jsx)(k2r.Text,{children:e})]});var cO=Nt(Pc(),1),_Ra=G2r.default.default||G2r.default,yRa=[{label:"Add a scope",value:"scope"},{label:"Resolves issues",value:"issues"},{label:"Introduces breaking changes",value:"breaking"},{label:"Add a long description",value:"body"},{label:"Skip ci/cd setups",value:"skipci"}],bRa=({isSelected:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{children:kI.circleFilled}):(0,cO.jsx)(wTe.Text,{children:" "})}),ERa=({isHighlighted:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{color:"cyanBright",children:kI.pointer}):(0,cO.jsx)(wTe.Text,{children:" "})}),Yui=({onSubmit:e})=>{let t=(0,Hui.useCallback)(r=>{e(r.reduce((n,a)=>({...n,[a.value]:!0}),{}))},[e]);return(0,cO.jsxs)(BTe.Box,{flexDirection:"column",children:[(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(wTe.Text,{bold:!0,color:"cyanBright",children:"Please select additional actions:"})}),(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(_Ra,{items:yRa,indicatorComponent:ERa,itemComponent:vTe,checkboxComponent:bRa,onSubmit:t})})]})};var F2r=Nt(Al(),1),TTe=Nt(Al(),1);var Sae=Nt(Ec(),1),XCt=Nt(Al(),1);function Qui({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A}){let[f,I]=(0,Sae.useState)({cursorOffset:(e||"").length,cursorWidth:0}),{cursorOffset:C,cursorWidth:b}=f;(0,Sae.useEffect)(()=>{I(Q=>{if(!r||!o)return Q;let X=e||"";return Q.cursorOffset>X.length-1?{cursorOffset:X.length,cursorWidth:0}:Q})},[e,r,o]);let E=a?b:0,N=n?n.repeat(e.length):e,B=N,F=t?fp.grey(t):void 0;if(o&&r){F=t.length>0?fp.inverse(t[0])+fp.grey(t.slice(1)):fp.inverse(" "),B=N.length>0?"":fp.inverse(" ");let Q=0;for(let X of N)B+=Q>=C-E&&Q<=C?fp.inverse(X):X,Q++;N.length>0&&C===N.length&&(B+=fp.inverse(" "))}return(0,XCt.useInput)((Q,X)=>{if(X.upArrow||X.downArrow||X.ctrl&&Q==="c"||X.tab||X.shift&&X.tab)return;if(X.return){A&&A(e);return}let ae=C,ne=e,ce=0;X.leftArrow?o&&ae--:X.rightArrow?o&&ae++:X.backspace||X.delete?C>0&&(ne=e.slice(0,C-1)+e.slice(C,e.length),ae--):(ne=e.slice(0,C)+Q+e.slice(C,e.length),ae+=Q.length,Q.length>1&&(ce=Q.length)),C<0&&(ae=0),C>e.length&&(ae=e.length),I({cursorOffset:ae,cursorWidth:ce}),ne!==e&&l(ne)},{isActive:r}),Sae.default.createElement(XCt.Text,null,t?N.length>0?B:F:B)}var JCt=Qui;function O8({initialValue:e="",...t}){let[r,n]=(0,Sae.useState)(e);return Sae.default.createElement(Qui,{...t,value:r,onChange:n})}var M8=Nt(Pc(),1),Xui=({onSubmit:e})=>(0,M8.jsxs)(TTe.Box,{flexDirection:"column",children:[(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(F2r.Text,{bold:!0,color:"cyanBright",children:"Please give a long description:"})}),(0,M8.jsxs)(TTe.Box,{children:[(0,M8.jsx)(TTe.Box,{marginRight:1,children:(0,M8.jsx)(F2r.Text,{color:"gray",children:"\u2192"})}),(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(O8,{onSubmit:e})})]})]});var Z2r=Nt(Al(),1),RTe=Nt(Al(),1);var H8=Nt(Pc(),1),Jui=({onSubmit:e})=>(0,H8.jsxs)(RTe.Box,{flexDirection:"column",children:[(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(Z2r.Text,{bold:!0,color:"cyanBright",children:"Describe the breaking changes:"})}),(0,H8.jsxs)(RTe.Box,{children:[(0,H8.jsx)(RTe.Box,{marginRight:1,children:(0,H8.jsx)(Z2r.Text,{color:"gray",children:"\u2192"})}),(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(O8,{onSubmit:e})})]})]});var L2r=Nt(Al(),1),NTe=Nt(Al(),1);var Y8=Nt(Pc(),1),Uui=({onSubmit:e})=>(0,Y8.jsxs)(NTe.Box,{flexDirection:"column",children:[(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(L2r.Text,{bold:!0,color:"cyanBright",children:'Add issue references (e.g. "fix #123, re #124".):'})}),(0,Y8.jsxs)(NTe.Box,{children:[(0,Y8.jsx)(NTe.Box,{marginRight:1,children:(0,Y8.jsx)(L2r.Text,{color:"gray",children:kI.arrowRight})}),(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(O8,{onSubmit:e})})]})]});var zCt=Nt(Al(),1),$$=Nt(Al(),1);var O2r=Nt(Ec(),1),M2r=Nt(Ec(),1),egi=Nt(Ec(),1);var UCt=Nt(Ec(),1),VQe=Nt(Al(),1);function SRa({isSelected:e=!1}){return UCt.default.createElement(VQe.Box,{marginRight:1},e?UCt.default.createElement(VQe.Text,{color:"blue"},kI.pointer):UCt.default.createElement(VQe.Text,null," "))}var V2r=SRa;var Kui=Nt(Ec(),1),jui=Nt(Al(),1);function vRa({isSelected:e=!1,label:t}){return Kui.createElement(jui.Text,{color:e?"blue":void 0},t)}var P2r=vRa;var oV=Nt(Ec(),1),zui=Nt(b2r(),1);function DTe(e,t){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);if(!Number.isSafeInteger(t))throw new TypeError(`The \`steps\` parameter must be an integer, got ${t}.`);let{length:r}=e;if(r===0)return[...e];let n=(t%r+r)%r;return n===0?[...e]:[...e.slice(-n),...e.slice(0,-n)]}var PQe=Nt(Al(),1);function BRa({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:n=V2r,itemComponent:a=P2r,limit:o,onSelect:l,onHighlight:A}){let f=typeof o=="number"&&e.length>o,I=f?Math.min(o,e.length):e.length,C=I-1,[b,E]=(0,oV.useState)(r>C?C-r:0),[N,B]=(0,oV.useState)(r?r>C?C:r:0),F=(0,oV.useRef)(e);(0,oV.useEffect)(()=>{(0,zui.default)(F.current.map(X=>X.value),e.map(X=>X.value))||(E(0),B(0)),F.current=e},[e]),(0,PQe.useInput)((0,oV.useCallback)((X,ae)=>{if(X==="k"||ae.upArrow){let ne=(f?I:e.length)-1,ce=N===0,fe=f?N:ne,ue=ce?b+1:b,de=ce?fe:N-1;E(ue),B(de);let be=f?DTe(e,ue).slice(0,I):e;typeof A=="function"&&A(be[de])}if(X==="j"||ae.downArrow){let ne=N===(f?I:e.length)-1,ce=f?N:0,fe=ne?b-1:b,ue=ne?ce:N+1;E(fe),B(ue);let de=f?DTe(e,fe).slice(0,I):e;typeof A=="function"&&A(de[ue])}if(ae.return){let ne=f?DTe(e,b).slice(0,I):e;typeof l=="function"&&l(ne[N])}},[f,I,b,N,e,l,A]),{isActive:t});let Q=f?DTe(e,b).slice(0,I):e;return oV.default.createElement(PQe.Box,{flexDirection:"column"},Q.map((X,ae)=>{let ne=ae===N;return oV.default.createElement(PQe.Box,{key:X.key??X.value},oV.default.createElement(n,{isSelected:ne}),oV.default.createElement(a,{...X,isSelected:ne}))}))}var WQe=BRa;var W2r=Nt(Al(),1),qui=Nt(Al(),1);var KCt=Nt(Pc(),1),jCt=({isSelected:e=!1})=>(0,KCt.jsx)(qui.Box,{marginRight:1,children:e?(0,KCt.jsx)(W2r.Text,{color:"cyanBright",children:kI.pointer}):(0,KCt.jsx)(W2r.Text,{children:" "})});var vG=Nt(Pc(),1),$ui=Object.keys(c2r).map(e=>({label:c2r[e].description,value:e})),tgi=({onSubmit:e})=>{let[t,r]=(0,O2r.useState)(!1),[n,a]=(0,O2r.useState)(""),o=(0,M2r.useMemo)(()=>n.length>0?$ui.filter(f=>f.label.toLowerCase().includes(n.toLowerCase())):$ui,[n]),l=(0,M2r.useMemo)(()=>o.length>0,[o]),A=(0,egi.useCallback)(f=>{f.value==="custom"?r(!0):e(f.value)},[r,e]);return t?(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Please state the scope of the change:"})}),(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{color:"gray",children:"\u2192"})}),(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(O8,{onSubmit:e})})]})]}):(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Type of scope:"})}),(0,vG.jsx)(JCt,{value:n,onChange:a})]}),!!l&&(0,vG.jsx)(WQe,{items:o,indicatorComponent:jCt,itemComponent:vTe,onSelect:A})]})};var H2r=Nt(Al(),1),kTe=Nt(Al(),1);var Q8=Nt(Pc(),1),rgi=({onSubmit:e})=>(0,Q8.jsxs)(kTe.Box,{flexDirection:"column",children:[(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(H2r.Text,{bold:!0,color:"cyanBright",children:"Write a short description (max 93) chars):"})}),(0,Q8.jsxs)(kTe.Box,{children:[(0,Q8.jsx)(kTe.Box,{marginRight:1,children:(0,Q8.jsx)(H2r.Text,{color:"gray",children:"\u2192"})}),(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(O8,{onSubmit:e})})]})]});var igi=Nt(Al(),1),qCt=Nt(Al(),1),sgi=Nt(Ec(),1),Y2r=Nt(Ec(),1);var vae=Nt(Pc(),1),ngi=Object.keys(NQe).map(e=>({label:NQe[e].description,value:e})),ogi=({onSubmit:e})=>{let[t,r]=(0,sgi.useState)(""),n=(0,Y2r.useMemo)(()=>t.length>0?ngi.filter(o=>o.label.toLowerCase().includes(t.toLowerCase())):ngi,[t]),a=(0,Y2r.useMemo)(()=>n.length>0,[n]);return(0,vae.jsxs)(qCt.Box,{flexDirection:"column",children:[(0,vae.jsxs)(qCt.Box,{children:[(0,vae.jsx)(qCt.Box,{marginRight:1,children:(0,vae.jsx)(igi.Text,{bold:!0,color:"cyanBright",children:"Type of commit:"})}),(0,vae.jsx)(JCt,{value:t,onChange:r})]}),!!a&&(0,vae.jsx)(WQe,{items:n,indicatorComponent:jCt,itemComponent:vTe,onSelect:o=>{e(o.value)}})]})};var eee=Nt(Pc(),1),wRa=({onSubmit:e,...t})=>((0,agi.useEffect)(()=>{e(t)},[t,e]),null),cgi=({onSubmit:e})=>{let[t,r]=(0,Bae.useState)(),[n,a]=(0,Bae.useState)(),[o,l]=(0,Bae.useState)(),[A,f]=(0,Bae.useState)(),[I,C]=(0,Bae.useState)(),[b,E]=(0,Bae.useState)(),[N,B]=(0,Bae.useState)();return t?o?N?N.scope&&!n?(0,eee.jsx)(tgi,{onSubmit:a}):N.issues&&!A?(0,eee.jsx)(Uui,{onSubmit:f}):N.body&&!I?(0,eee.jsx)(Xui,{onSubmit:C}):N.breaking&&!b?(0,eee.jsx)(Jui,{onSubmit:E}):(0,eee.jsx)(wRa,{type:t,scope:n,subject:o,issues:A,body:I,breaking:b,skipci:N.skipci,onSubmit:e}):(0,eee.jsx)(Yui,{onSubmit:B}):(0,eee.jsx)(rgi,{onSubmit:l}):(0,eee.jsx)(ogi,{onSubmit:r})};var Q2r=Nt(Pc(),1),TRa=({commit:e,useSubmit:t})=>{let{stdin:r}=(0,dgi.useStdin)();return t(e),(0,pgi.useEffect)(()=>{r?.emit("keypress","",{name:"return"})},[r]),null},RRa=({useSubmit:e})=>{let[t,r]=(0,fgi.useState)();return t?(0,Q2r.jsx)(TRa,{commit:t,useSubmit:e}):(0,Q2r.jsx)(cgi,{onSubmit:r})},e_t=class extends lgi.BaseCommand{static paths=[["commit","message"]];args=Su.Rest({required:0});async execute(){let[t,r]=this.args;if(r)return 0;if(!t)throw new Error("Commit edit message file required.");let n=(0,Agi.forceStdinTty)(),a=await(0,ggi.renderForm)(RRa,{},{stdin:process.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return a&&await ugi.xfs.writeFilePromise(t,this.formatCommit(a)),n&&process.stdin.destroy(),a?0:1}formatCommit(t){let r={trim:!0,cut:!1,newline:` `,indent:"",width:100},n=`${t.type}${t.scope?`(${t.scope})`:""}: ${t.subject}`;t.skipci&&(n+=" [skip ci]");let a=t.body?(0,$Ct.default)(t.body,r):!1,o=t.breaking?(0,$Ct.default)(`BREAKING CHANGE: ${t.breaking.trim().replace(/^BREAKING CHANGE: /,"")}`,r):!1,l=t.issues?(0,$Ct.default)(t.issues,r):!1;return[n,a,o,l].filter(Boolean).join(` -`)}};var Ahi=Nt(el(),1);$c();import{execSync as ghi}from"node:child_process";var lhi=Nt(uT(),1);var ygi=Nt(uT(),1);var jRa=(0,ygi.default)("lint-staged:execGit"),zRa=["-c","submodule.recurse=false"],qRa=[...zRa],QZ=async(e,t={})=>{jRa("Running git command",e);try{let{stdout:r}=await j$("git",qRa.concat(e),{...t,all:!0,cwd:t.cwd||process.cwd(),stdin:"ignore"});return r}catch({all:r}){throw new Error(r)}};import{inspect as HDa}from"node:util";var Sgi=Nt(Egi(),1);var vgi=Sgi.default;import*as o_t from"tty";var{env:wae={},argv:wgi=[],platform:tNa=""}=typeof process>"u"?{}:process,rNa="NO_COLOR"in wae||wgi.includes("--no-color"),nNa="FORCE_COLOR"in wae||wgi.includes("--color"),iNa=tNa==="win32",Tgi=wae.TERM==="dumb",sNa=o_t&&o_t.isatty&&o_t.isatty(1)&&wae.TERM&&!Tgi,oNa="CI"in wae&&("GITHUB_ACTIONS"in wae||"GITLAB_CI"in wae||"CIRCLECI"in wae),aNa=!rNa&&(nNa||iNa&&!Tgi||sNa||oNa),Rgi=(e,t,r,n,a=t.substring(0,e)+n,o=t.substring(e+r.length),l=o.indexOf(r))=>a+(l<0?o:Rgi(l,o,r,n)),cNa=(e,t,r,n,a)=>e<0?r+t+n:r+Rgi(e,t,n,a)+n,lNa=(e,t,r=e,n=e.length+1)=>a=>a||!(a===""||a===void 0)?cNa((""+a).indexOf(t,n),a,e,t,r):"",Sh=(e,t,r)=>lNa(`\x1B[${e}m`,`\x1B[${t}m`,r),Bgi={reset:Sh(0,0),bold:Sh(1,22,"\x1B[22m\x1B[1m"),dim:Sh(2,22,"\x1B[22m\x1B[2m"),italic:Sh(3,23),underline:Sh(4,24),inverse:Sh(7,27),hidden:Sh(8,28),strikethrough:Sh(9,29),black:Sh(30,39),red:Sh(31,39),green:Sh(32,39),yellow:Sh(33,39),blue:Sh(34,39),magenta:Sh(35,39),cyan:Sh(36,39),white:Sh(37,39),gray:Sh(90,39),bgBlack:Sh(40,49),bgRed:Sh(41,49),bgGreen:Sh(42,49),bgYellow:Sh(43,49),bgBlue:Sh(44,49),bgMagenta:Sh(45,49),bgCyan:Sh(46,49),bgWhite:Sh(47,49),blackBright:Sh(90,39),redBright:Sh(91,39),greenBright:Sh(92,39),yellowBright:Sh(93,39),blueBright:Sh(94,39),magentaBright:Sh(95,39),cyanBright:Sh(96,39),whiteBright:Sh(97,39),bgBlackBright:Sh(100,49),bgRedBright:Sh(101,49),bgGreenBright:Sh(102,49),bgYellowBright:Sh(103,49),bgBlueBright:Sh(104,49),bgMagentaBright:Sh(105,49),bgCyanBright:Sh(106,49),bgWhiteBright:Sh(107,49)},j2r=({useColor:e=aNa}={})=>e?Bgi:Object.keys(Bgi).reduce((t,r)=>({...t,[r]:String}),{}),{reset:ymu,bold:bmu,dim:Emu,italic:Smu,underline:vmu,inverse:Bmu,hidden:wmu,strikethrough:Tmu,black:Rmu,red:Nmu,green:Dmu,yellow:kmu,blue:xmu,magenta:Gmu,cyan:Fmu,white:Zmu,gray:Lmu,bgBlack:Vmu,bgRed:Pmu,bgGreen:Wmu,bgYellow:Omu,bgBlue:Mmu,bgMagenta:Hmu,bgCyan:Ymu,bgWhite:Qmu,blackBright:Xmu,redBright:Jmu,greenBright:Umu,yellowBright:Kmu,blueBright:jmu,magentaBright:zmu,cyanBright:qmu,whiteBright:$mu,bgBlackBright:eCu,bgRedBright:tCu,bgGreenBright:rCu,bgYellowBright:nCu,bgBlueBright:iCu,bgMagentaBright:sCu,bgCyanBright:oCu,bgWhiteBright:aCu}=j2r();var PAi=Nt(Dgi(),1);import{format as vDa}from"util";import{EOL as EAi}from"os";import{StringDecoder as BDa}from"string_decoder";import{EOL as m_t}from"os";import{Writable as wDa}from"stream";import{EOL as C_t}from"os";import{randomUUID as WDa}from"crypto";var yDa=Object.defineProperty,wp=(e,t)=>yDa(e,"name",{value:t,configurable:!0}),yAi="\x1B[",bAi={CURSOR_HIDE:yAi+"?25l",CURSOR_SHOW:yAi+"?25h"};var TAi=(e=>(e.WAITING="WAITING",e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.RETRY="RETRY",e.PAUSED="PAUSED",e.PROMPT="PROMPT",e.PROMPT_COMPLETED="PROMPT_COMPLETED",e.PROMPT_FAILED="PROMPT_FAILED",e))(TAi||{}),RAi=class{static{wp(this,"EventManager")}emitter=new vgi;emit(e,t){this.emitter.emit(e,t)}on(e,t){this.emitter.addListener(e,t)}once(e,t){this.emitter.once(e,t)}off(e,t){this.emitter.off(e,t)}complete(){this.emitter.removeAllListeners()}},h_u=class{static{wp(this,"BaseEventMap")}};function NAi(e){return!!e&&typeof e=="object"&&typeof e.subscribe=="function"}wp(NAi,"isObservable");function DAi(e){return!!e&&typeof e=="object"&&e.readable===!0&&typeof e.read=="function"&&typeof e.on=="function"}wp(DAi,"isReadable");function ySr(){return!!process.env.LISTR_FORCE_UNICODE||process.platform!=="win32"||!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"}wp(ySr,"isUnicodeSupported");var bDa="(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+",EDa=/\u0007/;function WTe(e){return String(e).replace(new RegExp(bDa,"gmi"),"").replace(new RegExp(EDa,"gmi"),"").trim()}wp(WTe,"cleanseAnsi");var X0=j2r();function fSr(e,t){return e.replace(/^(?!\s*$)/gm," ".repeat(t))}wp(fSr,"indent");var kAi={warning:"\u26A0",cross:"\u2716",arrowDown:"\u2193",tick:"\u2714",arrowRight:"\u2192",pointer:"\u276F",checkboxOn:"\u2612",arrowLeft:"\u2190",squareSmallFilled:"\u25FC",pointerSmall:"\u203A"},SDa={...kAi,warning:"\u203C",cross:"\xD7",tick:"\u221A",pointer:">",checkboxOn:"[\xD7]",squareSmallFilled:"\u25A0"},sb=ySr()?kAi:SDa;function PTe(e,...t){return vDa(String(e),...t)}wp(PTe,"splat");var __t={icon:{STARTED:sb.pointer,FAILED:sb.cross,SKIPPED:sb.arrowDown,COMPLETED:sb.tick,OUTPUT:sb.pointerSmall,TITLE:sb.arrowRight,RETRY:sb.warning,ROLLBACK:sb.arrowLeft,PAUSED:sb.squareSmallFilled},color:{STARTED:X0.yellow,FAILED:X0.red,SKIPPED:X0.yellow,COMPLETED:X0.green,RETRY:X0.yellowBright,ROLLBACK:X0.redBright,PAUSED:X0.yellowBright}},xAi=["RETRY","ROLLBACK","FAILED"],OTe=class{constructor(e){this.options=e,this.options={useIcons:!0,toStderr:[],...e??{}},this.options.fields??={},this.options.fields.prefix??=[],this.options.fields.suffix??=[],this.process=this.options.processOutput??new bSr}static{wp(this,"ListrLogger")}process;log(e,t,r){let n=this.format(e,t,r);if(this.options.toStderr.includes(e)){this.process.toStderr(n);return}this.process.toStdout(n)}toStdout(e,t,r=!0){this.process.toStdout(this.format(null,e,t),r)}toStderr(e,t,r=!0){this.process.toStderr(this.format(null,e,t),r)}wrap(e,t){return e&&this.applyFormat(`[${e}]`,t)}splat(...e){let t=e.shift()??"";return e.length===0?t:PTe(t,e)}suffix(e,...t){return t.filter(Boolean).forEach(r=>{if(e+=this.spacing(e),typeof r=="string")e+=this.wrap(r);else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e+=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format(...r.args)})}}),e}prefix(e,...t){return t.filter(Boolean).forEach(r=>{if(e=this.spacing(e)+e,typeof r=="string")e=this.wrap(r)+e;else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format()})+e}}),e}fields(e,t){return this.options?.fields?.prefix&&(e=this.prefix(e,...this.options.fields.prefix)),t?.prefix&&(e=this.prefix(e,...t.prefix)),t?.suffix&&(e=this.suffix(e,...t.suffix)),this.options?.fields?.suffix&&(e=this.suffix(e,...this.options.fields.suffix)),e}icon(e,t){if(!e)return null;t||=this.options.icon?.[e];let r=this.options.color?.[e];return t&&r&&(t=r(t)),t}format(e,t,r){return Array.isArray(t)||(t=[t]),t=this.splat(t.shift(),...t).toString().split(EAi).filter(n=>!n||n.trim()!=="").map(n=>this.style(e,this.fields(n,{prefix:Array.isArray(r?.prefix)?r.prefix:[r?.prefix],suffix:Array.isArray(r?.suffix)?r.suffix:[r?.suffix]}))).join(EAi),t}style(e,t){if(!e||!t)return t;let r=this.icon(e,!this.options.useIcons&&this.wrap(e));return r&&(t=r+" "+t),t}applyFormat(e,t){return t?.format?t.format(e):e}spacing(e){return typeof e>"u"||e.trim()===""?"":" "}},ISr=class{constructor(e){this.options=e}static{wp(this,"ProcessOutputBuffer")}buffer=[];decoder=new BDa;get all(){return this.buffer}get last(){return this.buffer.at(-1)}get length(){return this.buffer.length}write(e,...t){let r=t[t.length-1];return this.buffer.push({time:Date.now(),stream:this.options?.stream,entry:this.decoder.write(typeof e=="string"?Buffer.from(e,typeof t[0]=="string"?t[0]:void 0):Buffer.from(e))}),this.options?.limit&&(this.buffer=this.buffer.slice(-this.options.limit)),typeof r=="function"&&r(),!0}reset(){this.buffer=[]}},SAi=class{constructor(e){this.stream=e,this.method=e.write,this.buffer=new ISr({stream:e})}static{wp(this,"ProcessOutputStream")}method;buffer;get out(){return Object.assign({},this.stream,{write:this.write.bind(this)})}hijack(){this.stream.write=this.buffer.write.bind(this.buffer)}release(){this.stream.write=this.method;let e=[...this.buffer.all];return this.buffer.reset(),e}write(...e){return this.method.apply(this.stream,e)}},bSr=class{constructor(e,t,r){this.options=r,this.stream={stdout:new SAi(e??process.stdout),stderr:new SAi(t??process.stderr)},this.options={dump:["stdout","stderr"],leaveEmptyLine:!0,...r}}static{wp(this,"ProcessOutput")}stream;active;get stdout(){return this.stream.stdout.out}get stderr(){return this.stream.stderr.out}hijack(){if(this.active)throw new Error("ProcessOutput has been already hijacked!");this.stream.stdout.write(bAi.CURSOR_HIDE),Object.values(this.stream).forEach(e=>e.hijack()),this.active=!0}release(){let e=Object.entries(this.stream).map(([t,r])=>({name:t,buffer:r.release()})).filter(t=>this.options.dump.includes(t.name)).flatMap(t=>t.buffer).sort((t,r)=>t.time-r.time).map(t=>({...t,entry:WTe(t.entry)})).filter(t=>t.entry);e.length>0&&(this.options.leaveEmptyLine&&this.stdout.write(m_t),e.forEach(t=>{(t.stream??this.stdout).write(t.entry+m_t)})),this.stream.stdout.write(bAi.CURSOR_SHOW),this.active=!1}toStdout(e,t=!0){return t&&(e=e+m_t),this.stream.stdout.write(e)}toStderr(e,t=!0){return t&&(e=e+m_t),this.stream.stderr.write(e)}};function GAi(e){let t=new wDa;return t.rows=1/0,t.columns=1/0,t.write=r=>(e(r.toString()),!0),t}wp(GAi,"createWritable");var S_u=class{constructor(e,t){this.task=e,this.wrapper=t}static{wp(this,"ListrPromptAdapter")}state;reportStarted(){if(this.state=this.task.state,this.task.prompt)throw new OAi("There is already an active prompt attached to this task which may not be cleaned up properly.");this.task.prompt=this,this.task.state$="PROMPT"}reportFailed(){this.task.state$="PROMPT_FAILED",this.restoreState()}reportCompleted(){this.task.state$="PROMPT_COMPLETED",this.restoreState()}restoreState(){this.task.prompt=void 0,this.state&&(this.task.state=this.state)}},TDa=class{static{wp(this,"Spinner")}spinner=ySr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"];id;spinnerPosition=0;spin(){this.spinnerPosition=++this.spinnerPosition%this.spinner.length}fetch(){return this.spinner[this.spinnerPosition]}isRunning(){return!!this.id}start(e,t=100){this.id=setInterval(()=>{this.spin(),e&&e()},t)}stop(){clearInterval(this.id)}};var vAi={icon:{SKIPPED_WITH_COLLAPSE:sb.arrowDown,SKIPPED_WITHOUT_COLLAPSE:sb.warning,OUTPUT:sb.pointerSmall,OUTPUT_WITH_BOTTOMBAR:sb.pointerSmall,PENDING:sb.pointer,COMPLETED:sb.tick,COMPLETED_WITH_FAILED_SUBTASKS:sb.warning,COMPLETED_WITH_SISTER_TASKS_FAILED:sb.squareSmallFilled,RETRY:sb.warning,ROLLING_BACK:sb.warning,ROLLED_BACK:sb.arrowLeft,FAILED:sb.cross,FAILED_WITH_SUBTASKS:sb.pointer,WAITING:sb.squareSmallFilled,PAUSED:sb.squareSmallFilled},color:{SKIPPED_WITH_COLLAPSE:X0.yellow,SKIPPED_WITHOUT_COLLAPSE:X0.yellow,PENDING:X0.yellow,COMPLETED:X0.green,COMPLETED_WITH_FAILED_SUBTASKS:X0.yellow,COMPLETED_WITH_SISTER_TASKS_FAILED:X0.red,RETRY:X0.yellowBright,ROLLING_BACK:X0.redBright,ROLLED_BACK:X0.redBright,FAILED:X0.red,FAILED_WITH_SUBTASKS:X0.red,WAITING:X0.dim,PAUSED:X0.yellowBright}};function FAi(e){let t=Math.floor(e/1e3),r=Math.floor(t/60),n;return t===0&&r===0&&(n=`0.${Math.floor(e/100)}s`),t>0&&(n=`${t%60}s`),r>0&&(n=`${r}m${n}`),n}wp(FAi,"parseTimer");var ESr={condition:!0,field:FAi,format:wp(()=>X0.dim,"format")};function RDa(){let e=new Date;return String(e.getHours()).padStart(2,"0")+":"+String(e.getMinutes()).padStart(2,"0")+":"+String(e.getSeconds()).padStart(2,"0")}wp(RDa,"parseTimestamp");var NDa=class hSr{constructor(t,r,n){this.tasks=t,this.options=r,this.events=n,this.options={...hSr.rendererOptions,...this.options,icon:{...vAi.icon,...r?.icon??{}},color:{...vAi.color,...r?.color??{}}},this.spinner=this.options.spinner??new TDa,this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:[]}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color}static{wp(this,"DefaultRenderer")}static nonTTY=!1;static rendererOptions={indentation:2,clearOutput:!1,showSubtasks:!0,collapseSubtasks:!0,collapseSkips:!0,showSkipMessage:!0,suffixSkips:!1,collapseErrors:!0,showErrorMessage:!0,suffixRetries:!0,lazy:!1,removeEmptyLines:!0,formatOutput:"wrap",pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={outputBar:!0};prompt;activePrompt;spinner;logger;updater;truncate;wrap;buffer={output:new Map,bottom:new Map};cache={render:new Map,rendererOptions:new Map,rendererTaskOptions:new Map};async render(){let{createLogUpdate:t}=await Promise.resolve().then(()=>(dAi(),AAi)),{default:r}=await Promise.resolve().then(()=>(_Ai(),CAi)),{default:n}=await Promise.resolve().then(()=>(oSr(),aAi));this.updater=t(this.logger.process.stdout),this.truncate=r,this.wrap=n,this.logger.process.hijack(),this.options?.lazy||this.spinner.start(()=>{this.update()}),this.events.on("SHOUD_REFRESH_RENDER",()=>{this.update()})}update(){this.updater(this.create())}end(){this.spinner.stop(),this.updater.clear(),this.updater.done(),this.options.clearOutput||this.logger.process.toStdout(this.create({prompt:!1})),this.logger.process.release()}create(t){t={tasks:!0,bottomBar:!0,prompt:!0,...t};let r=[],n=this.renderer(this.tasks),a=this.renderBottomBar(),o=this.renderPrompt();return t.tasks&&n.length>0&&r.push(...n),t.bottomBar&&a.length>0&&(r.length>0&&r.push(""),r.push(...a)),t.prompt&&o.length>0&&(r.length>0&&r.push(""),r.push(...o)),r.join(C_t)}style(t,r=!1){let n=this.cache.rendererOptions.get(t.id);if(t.isSkipped()){if(r||n.collapseSkips)return this.logger.icon("SKIPPED_WITH_COLLAPSE");if(n.collapseSkips===!1)return this.logger.icon("SKIPPED_WITHOUT_COLLAPSE")}if(r)return this.shouldOutputToBottomBar(t)?this.logger.icon("OUTPUT_WITH_BOTTOMBAR"):this.logger.icon("OUTPUT");if(t.hasSubtasks()){if(t.isStarted()||t.isPrompt()&&n.showSubtasks!==!1&&!t.subtasks.every(a=>!a.hasTitle()))return this.logger.icon("PENDING");if(t.isCompleted()&&t.subtasks.some(a=>a.hasFailed()))return this.logger.icon("COMPLETED_WITH_FAILED_SUBTASKS");if(t.hasFailed())return this.logger.icon("FAILED_WITH_SUBTASKS")}return t.isStarted()||t.isPrompt()?this.logger.icon("PENDING",!this.options?.lazy&&this.spinner.fetch()):t.isCompleted()?this.logger.icon("COMPLETED"):t.isRetrying()?this.logger.icon("RETRY",!this.options?.lazy&&this.spinner.fetch()):t.isRollingBack()?this.logger.icon("ROLLING_BACK",!this.options?.lazy&&this.spinner.fetch()):t.hasRolledBack()?this.logger.icon("ROLLED_BACK"):t.hasFailed()?this.logger.icon("FAILED"):t.isPaused()?this.logger.icon("PAUSED"):this.logger.icon("WAITING")}format(t,r,n){if(t.trim()==="")return[];r&&(t=r+" "+t);let a,o=(process.stdout.columns??80)-n*this.options.indentation-2;switch(this.options.formatOutput){case"truncate":a=t.split(C_t).map((l,A)=>this.truncate(this.indent(l,A),o));break;case"wrap":a=this.wrap(t,o,{hard:!0}).split(C_t).map((l,A)=>this.indent(l,A));break;default:throw new BAi("Format option for the renderer is wrong.")}return this.options.removeEmptyLines&&(a=a.filter(Boolean)),a.map(l=>fSr(l,n*this.options.indentation))}shouldOutputToOutputBar(t){let r=this.cache.rendererTaskOptions.get(t.id).outputBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1}shouldOutputToBottomBar(t){let r=this.cache.rendererTaskOptions.get(t.id).bottomBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1||!t.hasTitle()}renderer(t,r=0){return t.flatMap(n=>{if(!n.isEnabled())return[];if(this.cache.render.has(n.id))return this.cache.render.get(n.id);this.calculate(n),this.setupBuffer(n);let a=this.cache.rendererOptions.get(n.id),o=this.cache.rendererTaskOptions.get(n.id),l=[];if(n.isPrompt()){if(this.activePrompt&&this.activePrompt!==n.id)throw new BAi("Only one prompt can be active at the given time, please re-evaluate your task design.");this.activePrompt||(n.on("PROMPT",A=>{let f=WTe(A);f&&(this.prompt=f)}),n.on("STATE",A=>{(A==="PROMPT_COMPLETED"||n.hasFinalized()||n.hasReset())&&(this.prompt=null,this.activePrompt=null,n.off("PROMPT"))}),this.activePrompt=n.id)}if(n.hasTitle()&&(t.some(A=>A.hasFailed())&&!n.hasFailed()&&n.options.exitOnError!==!1&&!(n.isCompleted()||n.isSkipped())?l.push(...this.format(n.title,this.logger.icon("COMPLETED_WITH_SISTER_TASKS_FAILED"),r)):n.hasFailed()&&a.collapseErrors?l.push(...this.format(!n.hasSubtasks()&&n.message.error&&a.showErrorMessage?n.message.error:n.title,this.style(n),r)):n.isSkipped()&&a.collapseSkips?l.push(...this.format(this.logger.suffix(n.message.skip&&a.showSkipMessage?n.message.skip:n.title,{field:"SKIPPED",condition:a.suffixSkips,format:wp(()=>X0.dim,"format")}),this.style(n),r)):n.isRetrying()?l.push(...this.format(this.logger.suffix(n.title,{field:`RETRY:${n.message.retry.count}`,format:wp(()=>X0.yellow,"format"),condition:a.suffixRetries}),this.style(n),r)):n.isCompleted()&&n.hasTitle()&&Lhe(o.timer?.condition,n.message.duration)?l.push(...this.format(this.logger.suffix(n?.title,{...o.timer,args:[n.message.duration]}),this.style(n),r)):n.isPaused()?l.push(...this.format(this.logger.suffix(n.title,{...a.pausedTimer,args:[n.message.paused-Date.now()]}),this.style(n),r)):l.push(...this.format(n.title,this.style(n),r))),(!n.hasSubtasks()||!a.showSubtasks)&&(n.hasFailed()&&a.collapseErrors===!1&&(a.showErrorMessage||!a.showSubtasks)?l.push(...this.dump(n,r,"FAILED")):n.isSkipped()&&a.collapseSkips===!1&&(a.showSkipMessage||!a.showSubtasks)&&l.push(...this.dump(n,r,"SKIPPED"))),(n.isPending()||o.persistentOutput)&&l.push(...this.renderOutputBar(n,r)),a.showSubtasks!==!1&&n.hasSubtasks()&&(n.isPending()||n.hasFinalized()&&!n.hasTitle()||n.isCompleted()&&a.collapseSubtasks===!1&&!n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!0)||n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!1)||n.subtasks.some(A=>A.hasFailed())||n.subtasks.some(A=>A.hasRolledBack()))){let A=n.hasTitle()?r+1:r,f=this.renderer(n.subtasks,A);l.push(...f)}return n.hasFinalized()&&(o.persistentOutput||(this.buffer.bottom.delete(n.id),this.buffer.output.delete(n.id))),n.isClosed()&&(this.cache.render.set(n.id,l),this.reset(n)),l})}renderOutputBar(t,r){let n=this.buffer.output.get(t.id);return n?n.all.flatMap(a=>this.dump(t,r,"OUTPUT",a.entry)):[]}renderBottomBar(){return this.buffer.bottom.size===0?[]:Array.from(this.buffer.bottom.values()).flatMap(t=>t.all).sort((t,r)=>t.time-r.time).map(t=>t.entry)}renderPrompt(){return this.prompt?[this.prompt]:[]}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...hSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}setupBuffer(t){if(this.buffer.bottom.has(t.id)||this.buffer.output.has(t.id))return;let r=this.cache.rendererTaskOptions.get(t.id);this.shouldOutputToBottomBar(t)&&!this.buffer.bottom.has(t.id)?(this.buffer.bottom.set(t.id,new ISr({limit:typeof r.bottomBar=="number"?r.bottomBar:1})),t.on("OUTPUT",n=>{let a=this.dump(t,-1,"OUTPUT",n);this.buffer.bottom.get(t.id).write(a.join(C_t))}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.bottom.delete(t.id);break}})):this.shouldOutputToOutputBar(t)&&!this.buffer.output.has(t.id)&&(this.buffer.output.set(t.id,new ISr({limit:typeof r.outputBar=="number"?r.outputBar:1})),t.on("OUTPUT",n=>{this.buffer.output.get(t.id).write(n)}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.output.delete(t.id);break}}))}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id),this.buffer.output.delete(t.id)}dump(t,r,n="OUTPUT",a){if(!a)switch(n){case"OUTPUT":a=t.output;break;case"SKIPPED":a=t.message.skip;break;case"FAILED":a=t.message.error;break}return t.hasTitle()&&n==="FAILED"&&a===t.title||typeof a!="string"?[]:(n==="OUTPUT"&&(a=WTe(a)),this.format(a,this.style(t,!0),r+1))}indent(t,r){return r>0?fSr(t.trim(),this.options.indentation):t.trim()}},DDa=class{constructor(e,t){this.tasks=e,this.options=t}static{wp(this,"SilentRenderer")}static nonTTY=!0;static rendererOptions;static rendererTaskOptions;render(){}end(){}},kDa=class mSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...mSr.rendererOptions,...r,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"SimpleRenderer")}static nonTTY=!0;static rendererOptions={pausedTimer:{...ESr,field:wp(t=>`PAUSED:${t}`,"field"),format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={};logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};end(){}render(){this.renderer(this.tasks)}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle())if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a?.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}else o==="PROMPT"?(this.logger.process.hijack(),r.on("PROMPT",l=>{this.logger.process.toStderr(l,!1)})):o==="PROMPT_COMPLETED"&&(r.off("PROMPT"),this.logger.process.release())}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("MESSAGE",o=>{if(o.error)this.logger.log("FAILED",r.title,{suffix:{field:`FAILED: ${o.error}`,format:wp(()=>X0.red,"format")}});else if(o.skip)this.logger.log("SKIPPED",r.title,{suffix:{field:`SKIPPED: ${o.skip}`,format:wp(()=>X0.yellow,"format")}});else if(o.rollback)this.logger.log("ROLLBACK",r.title,{suffix:{field:`ROLLBACK: ${o.rollback}`,format:wp(()=>X0.red,"format")}});else if(o.retry)this.logger.log("RETRY",r.title,{suffix:{field:`RETRY:${o.retry.count}`,format:wp(()=>X0.red,"format")}});else if(o.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...mSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},xDa=class{constructor(e){this.options=e}static{wp(this,"TestRendererSerializer")}serialize(e,t,r){return JSON.stringify(this.generate(e,t,r))}generate(e,t,r){let n={event:e,data:t};if(typeof this.options?.task!="boolean"){let a=Object.fromEntries(this.options.task.map(o=>{let l=r[o];return typeof l=="function"?[o,l.call(r)]:[o,l]}));Object.keys(r).length>0&&(n.task=a)}return n}},GDa=class ZAi{constructor(t,r){this.tasks=t,this.options=r,this.options={...ZAi.rendererOptions,...this.options},this.logger=this.options.logger??new OTe({useIcons:!1}),this.serializer=new xDa(this.options)}static{wp(this,"TestRenderer")}static nonTTY=!0;static rendererOptions={subtasks:!0,state:Object.values(TAi),output:!0,prompt:!0,title:!0,messages:["skip","error","retry","rollback","paused"],messagesToStderr:["error","rollback","retry"],task:["hasRolledBack","isRollingBack","isCompleted","isSkipped","hasFinalized","hasSubtasks","title","hasReset","hasTitle","isPrompt","isPaused","isPending","isSkipped","isStarted","hasFailed","isEnabled","isRetrying","path"]};static rendererTaskOptions;logger;serializer;render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.options.subtasks&&r.on("SUBTASK",n=>{this.renderer(n)}),this.options.state&&r.on("STATE",n=>{this.logger.toStdout(this.serializer.serialize("STATE",n,r))}),this.options.output&&r.on("OUTPUT",n=>{this.logger.toStdout(this.serializer.serialize("OUTPUT",n,r))}),this.options.prompt&&r.on("PROMPT",n=>{this.logger.toStdout(this.serializer.serialize("PROMPT",n,r))}),this.options.title&&r.on("TITLE",n=>{this.logger.toStdout(this.serializer.serialize("TITLE",n,r))}),r.on("MESSAGE",n=>{let a=Object.fromEntries(Object.entries(n).map(([o,l])=>{if(this.options.messages.includes(o))return[o,l]}).filter(Boolean));if(Object.keys(a).length>0){let o=this.serializer.serialize("MESSAGE",a,r);this.options.messagesToStderr.some(l=>Object.keys(a).includes(l))?this.logger.toStderr(o):this.logger.toStdout(o)}})})}},FDa=class CSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...CSr.rendererOptions,...this.options,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!1,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"VerboseRenderer")}static nonTTY=!0;static rendererOptions={logTitleChange:!1,pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions;logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle()){if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}}}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("PROMPT",o=>{let l=WTe(o);l&&this.logger.log("PROMPT",l)}),this.options?.logTitleChange!==!1&&r.on("TITLE",o=>{this.logger.log("TITLE",o)}),r.on("MESSAGE",o=>{if(o?.error)this.logger.log("FAILED",o.error);else if(o?.skip)this.logger.log("SKIPPED",o.skip);else if(o?.rollback)this.logger.log("ROLLBACK",o.rollback);else if(o?.retry)this.logger.log("RETRY",r.title,{suffix:o.retry.count.toString()});else if(o?.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...CSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},pSr={default:NDa,simple:kDa,verbose:FDa,test:GDa,silent:DDa};function LAi(e){return process.stdout.isTTY===!0||e.nonTTY===!0}wp(LAi,"isRendererSupported");function XQe(e){return typeof e=="string"?pSr[e]??pSr.default:typeof e=="function"?e:pSr.default}wp(XQe,"getRendererClass");function VAi(e){if(Lhe(e?.silentRendererCondition))return{renderer:XQe("silent"),selection:"SILENT"};let t={renderer:XQe(e.renderer),options:e.rendererOptions,selection:"PRIMARY"};return!LAi(t.renderer)||Lhe(e?.fallbackRendererCondition)?{renderer:XQe(e.fallbackRenderer),options:e.fallbackRendererOptions,selection:"SECONDARY"}:t}wp(VAi,"getRenderer");function Lhe(e,...t){return typeof e=="function"?e(...t):e}wp(Lhe,"assertFunctionOrSelf");var ZDa=(0,PAi.default)({circles:!0});function _Sr(e){return ZDa(e)}wp(_Sr,"cloneObject");var LDa=class{static{wp(this,"Concurrency")}concurrency;count;queue;constructor(e){this.concurrency=e.concurrency,this.count=0,this.queue=new Set}add(e){return this.count{let r=wp(()=>t(this.run(e)),"callback");this.queue.add(r)})}flush(){for(let e of this.queue){if(this.count>=this.concurrency)break;this.queue.delete(e),e()}}run(e){this.count++;let t=e(),r=wp(()=>{this.count--,this.flush()},"cleanup");return t.then(r,()=>{this.queue.clear()}),t}};function WAi(e){return new Promise(t=>{setTimeout(t,e)})}wp(WAi,"delay");var VDa=class extends Error{constructor(e,t,r){super(e.message),this.error=e,this.type=t,this.task=r,this.name="ListrError",this.path=r.path,r?.options.collectErrors==="full"&&(this.task=_Sr(r),this.ctx=_Sr(r.listr.ctx)),this.stack=e?.stack}static{wp(this,"ListrError")}path;ctx},BAi=class extends Error{static{wp(this,"ListrRendererError")}},OAi=class extends Error{static{wp(this,"PromptError")}},PDa=class{constructor(e){this.task=e}static{wp(this,"TaskWrapper")}get title(){return this.task.title}set title(e){e=Array.isArray(e)?e:[e],this.task.title$=PTe(e.shift(),...e)}get output(){return this.task.output}set output(e){e=Array.isArray(e)?e:[e],this.task.output$=PTe(e.shift(),...e)}set promptOutput(e){this.task.promptOutput$=e}newListr(e,t){let r;return typeof e=="function"?r=e(this):r=e,new y_t(r,t,this.task)}report(e,t){this.task.options.collectErrors!==!1&&this.task.listr.errors.push(new VDa(e,t,this.task)),this.task.message$={error:e.message??this.task?.title}}skip(e,...t){this.task.state$="SKIPPED",e&&(this.task.message$={skip:e?PTe(e,...t):this.task?.title})}isRetrying(){return this.task.isRetrying()?this.task.retry:{count:0}}prompt(e){return this.task.prompt?this.task.prompt:new e(this.task,this)}stdout(e){return GAi(t=>{switch(e){case"PROMPT":this.promptOutput=t;break;default:this.output=t}})}run(e){return this.task.run(e,this)}},ODa=class extends RAi{static{wp(this,"ListrTaskEventManager")}},MDa=class extends ODa{constructor(e,t,r,n,a){if(super(),this.listr=e,this.task=t,this.options=r,this.rendererOptions=n,this.rendererTaskOptions=a,t.title){let o=Array.isArray(t?.title)?t.title:[t.title];this.title=PTe(o.shift(),...o),this.initialTitle=this.title}this.taskFn=t.task,this.parent=e.parentTask}static{wp(this,"Task")}id=WDa();state="WAITING";subtasks;title;initialTitle;output;retry;message={};prompt;parent;enabled;taskFn;closed;set state$(e){if(this.state=e,this.emit("STATE",e),this.hasSubtasks()&&this.hasFailed())for(let t of this.subtasks)t.state==="STARTED"&&(t.state$="FAILED");this.listr.events.emit("SHOUD_REFRESH_RENDER")}set output$(e){this.output=e,this.emit("OUTPUT",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set promptOutput$(e){this.emit("PROMPT",e),WTe(e)&&this.listr.events.emit("SHOUD_REFRESH_RENDER")}set message$(e){this.message={...this.message,...e},this.emit("MESSAGE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set title$(e){this.title=e,this.emit("TITLE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}get path(){return[...this.listr.path,this.initialTitle]}async check(e){return this.state==="WAITING"&&(this.enabled=await Lhe(this.task?.enabled??!0,e),this.emit("ENABLED",this.enabled),this.listr.events.emit("SHOUD_REFRESH_RENDER")),this.enabled}hasSubtasks(){return this.subtasks?.length>0}hasFinalized(){return this.isCompleted()||this.hasFailed()||this.isSkipped()||this.hasRolledBack()}isPending(){return this.isStarted()||this.isPrompt()||this.hasReset()}isStarted(){return this.state==="STARTED"}isSkipped(){return this.state==="SKIPPED"}isCompleted(){return this.state==="COMPLETED"}hasFailed(){return this.state==="FAILED"}isRollingBack(){return this.state==="ROLLING_BACK"}hasRolledBack(){return this.state==="ROLLED_BACK"}isRetrying(){return this.state==="RETRY"}hasReset(){return this.state==="RETRY"||this.state==="ROLLING_BACK"}isEnabled(){return this.enabled}hasTitle(){return typeof this?.title=="string"}isPrompt(){return this.state==="PROMPT"||this.state==="PROMPT_COMPLETED"}isPaused(){return this.state==="PAUSED"}isClosed(){return this.closed}async pause(e){let t=this.state;this.state$="PAUSED",this.message$={paused:Date.now()+e},await WAi(e),this.state$=t,this.message$={paused:null}}async run(e,t){let r=wp(o=>(o instanceof y_t?(o.options={...this.options,...o.options},o.rendererClass=XQe("silent"),this.subtasks=o.tasks,o.errors=this.listr.errors,this.emit("SUBTASK",this.subtasks),o=o.run(e)):o instanceof Promise?o=o.then(r):DAi(o)?o=new Promise((l,A)=>{o.on("data",f=>{this.output$=f.toString()}),o.on("error",f=>A(f)),o.on("end",()=>l(null))}):NAi(o)&&(o=new Promise((l,A)=>{o.subscribe({next:wp(f=>{this.output$=f},"next"),error:A,complete:l})})),o),"handleResult"),n=Date.now();this.state$="STARTED";let a=await Lhe(this.task?.skip??!1,e);if(a){typeof a=="string"?this.message$={skip:a}:this.hasTitle()?this.message$={skip:this.title}:this.message$={skip:"Skipped task without a title."},this.state$="SKIPPED";return}try{let o=typeof this.task?.retry=="number"&&this.task.retry>0?this.task.retry+1:typeof this.task?.retry=="object"&&this.task.retry.tries>0?this.task.retry.tries+1:1,l=typeof this.task.retry=="object"&&this.task.retry.delay;for(let A=1;A<=o;A++)try{await r(this.taskFn(e,t));break}catch(f){if(A!==o)this.retry={count:A,error:f},this.message$={retry:this.retry},this.title$=this.initialTitle,this.output=void 0,t.report(f,"WILL_RETRY"),this.state$="RETRY",l&&await this.pause(l);else throw f}(this.isStarted()||this.isRetrying())&&(this.message$={duration:Date.now()-n},this.state$="COMPLETED")}catch(o){if(this.prompt instanceof OAi&&(o=this.prompt),this.task?.rollback){t.report(o,"WILL_ROLLBACK");try{this.state$="ROLLING_BACK",await this.task.rollback(e,t),this.message$={rollback:this.title},this.state$="ROLLED_BACK"}catch(l){throw this.state$="FAILED",t.report(l,"HAS_FAILED_TO_ROLLBACK"),this.close(),l}if(this.listr.options?.exitAfterRollback!==!1)throw this.close(),o}else{if(this.state$="FAILED",this.listr.options.exitOnError!==!1&&await Lhe(this.task?.exitOnError,e)!==!1)throw t.report(o,"HAS_FAILED"),this.close(),o;this.hasSubtasks()||t.report(o,"HAS_FAILED_WITHOUT_ERROR")}}finally{this.close()}}close(){this.emit("CLOSED"),this.listr.events.emit("SHOUD_REFRESH_RENDER"),this.complete()}},wAi=class extends RAi{static{wp(this,"ListrEventManager")}},y_t=class{constructor(e,t,r){this.task=e,this.options=t,this.parentTask=r,this.options={concurrent:!1,renderer:"default",fallbackRenderer:"simple",exitOnError:!0,exitAfterRollback:!0,collectErrors:!1,registerSignalListeners:!0,...this.parentTask?.options??{},...t},this.options.concurrent===!0?this.options.concurrent=1/0:typeof this.options.concurrent!="number"&&(this.options.concurrent=1),this.concurrency=new LDa({concurrency:this.options.concurrent}),r&&(this.path=[...r.listr.path,r.title],this.errors=r.listr.errors),this.parentTask?.listr.events instanceof wAi?this.events=this.parentTask.listr.events:this.events=new wAi;let n=VAi({renderer:this.options.renderer,rendererOptions:this.options.rendererOptions,fallbackRenderer:this.options.fallbackRenderer,fallbackRendererOptions:this.options.fallbackRendererOptions,fallbackRendererCondition:this.options?.fallbackRendererCondition,silentRendererCondition:this.options?.silentRendererCondition});this.rendererClass=n.renderer,this.rendererClassOptions=n.options,this.rendererSelection=n.selection,this.add(e??[]),this.options.registerSignalListeners&&(this.boundSignalHandler=this.signalHandler.bind(this),process.once("SIGINT",this.boundSignalHandler).setMaxListeners(0)),(this.options?.forceTTY||process.env.LISTR_FORCE_TTY)&&(process.stdout.isTTY=!0,process.stderr.isTTY=!0),this.options?.forceUnicode&&(process.env.LISTR_FORCE_UNICODE="1")}static{wp(this,"Listr")}tasks=[];errors=[];ctx;events;path=[];rendererClass;rendererClassOptions;rendererSelection;boundSignalHandler;concurrency;renderer;isRoot(){return!this.parentTask}isSubtask(){return!!this.parentTask}add(e){this.tasks.push(...this.generate(e))}async run(e){this.renderer||(this.renderer=new this.rendererClass(this.tasks,this.rendererClassOptions,this.events)),await this.renderer.render(),this.ctx=this.options?.ctx??e??{},await Promise.all(this.tasks.map(t=>t.check(this.ctx)));try{await Promise.all(this.tasks.map(t=>this.concurrency.add(()=>this.runTask(t)))),this.renderer.end(),this.removeSignalHandler()}catch(t){if(this.options.exitOnError!==!1)throw this.renderer.end(t),this.removeSignalHandler(),t}return this.ctx}generate(e){return e=Array.isArray(e)?e:[e],e.map(t=>{let r;return this.rendererSelection==="PRIMARY"?r=t.rendererOptions:this.rendererSelection==="SECONDARY"&&(r=t.fallbackRendererOptions),new MDa(this,t,this.options,this.rendererClassOptions,r)})}async runTask(e){if(await e.check(this.ctx))return new PDa(e).run(this.ctx)}signalHandler(){this.tasks?.forEach(async e=>{e.isPending()&&(e.state$="FAILED")}),this.isRoot()&&(this.renderer.end(new Error("Interrupted.")),process.exit(127))}removeSignalHandler(){this.boundSignalHandler&&process.removeListener("SIGINT",this.boundSignalHandler)}};var JQe=fp.blue(sb.arrowRight),HM=fp.redBright(sb.cross),MTe=fp.yellow(sb.warning);var UQe=(e,t,r)=>`${fp.redBright(`${HM} Validation Error:`)} +`)}};var Ahi=Nt(el(),1);$c();import{execSync as ghi}from"node:child_process";var lhi=Nt(uT(),1);var ygi=Nt(uT(),1);var jRa=(0,ygi.default)("lint-staged:execGit"),zRa=["-c","submodule.recurse=false"],qRa=[...zRa],QZ=async(e,t={})=>{jRa("Running git command",e);try{let{stdout:r}=await j$("git",qRa.concat(e),{...t,all:!0,cwd:t.cwd||process.cwd(),stdin:"ignore"});return r}catch({all:r}){throw new Error(r)}};import{inspect as HDa}from"node:util";var Sgi=Nt(Egi(),1);var vgi=Sgi.default;import*as o_t from"tty";var{env:wae={},argv:wgi=[],platform:tNa=""}=typeof process>"u"?{}:process,rNa="NO_COLOR"in wae||wgi.includes("--no-color"),nNa="FORCE_COLOR"in wae||wgi.includes("--color"),iNa=tNa==="win32",Tgi=wae.TERM==="dumb",sNa=o_t&&o_t.isatty&&o_t.isatty(1)&&wae.TERM&&!Tgi,oNa="CI"in wae&&("GITHUB_ACTIONS"in wae||"GITLAB_CI"in wae||"CIRCLECI"in wae),aNa=!rNa&&(nNa||iNa&&!Tgi||sNa||oNa),Rgi=(e,t,r,n,a=t.substring(0,e)+n,o=t.substring(e+r.length),l=o.indexOf(r))=>a+(l<0?o:Rgi(l,o,r,n)),cNa=(e,t,r,n,a)=>e<0?r+t+n:r+Rgi(e,t,n,a)+n,lNa=(e,t,r=e,n=e.length+1)=>a=>a||!(a===""||a===void 0)?cNa((""+a).indexOf(t,n),a,e,t,r):"",Sh=(e,t,r)=>lNa(`\x1B[${e}m`,`\x1B[${t}m`,r),Bgi={reset:Sh(0,0),bold:Sh(1,22,"\x1B[22m\x1B[1m"),dim:Sh(2,22,"\x1B[22m\x1B[2m"),italic:Sh(3,23),underline:Sh(4,24),inverse:Sh(7,27),hidden:Sh(8,28),strikethrough:Sh(9,29),black:Sh(30,39),red:Sh(31,39),green:Sh(32,39),yellow:Sh(33,39),blue:Sh(34,39),magenta:Sh(35,39),cyan:Sh(36,39),white:Sh(37,39),gray:Sh(90,39),bgBlack:Sh(40,49),bgRed:Sh(41,49),bgGreen:Sh(42,49),bgYellow:Sh(43,49),bgBlue:Sh(44,49),bgMagenta:Sh(45,49),bgCyan:Sh(46,49),bgWhite:Sh(47,49),blackBright:Sh(90,39),redBright:Sh(91,39),greenBright:Sh(92,39),yellowBright:Sh(93,39),blueBright:Sh(94,39),magentaBright:Sh(95,39),cyanBright:Sh(96,39),whiteBright:Sh(97,39),bgBlackBright:Sh(100,49),bgRedBright:Sh(101,49),bgGreenBright:Sh(102,49),bgYellowBright:Sh(103,49),bgBlueBright:Sh(104,49),bgMagentaBright:Sh(105,49),bgCyanBright:Sh(106,49),bgWhiteBright:Sh(107,49)},j2r=({useColor:e=aNa}={})=>e?Bgi:Object.keys(Bgi).reduce((t,r)=>({...t,[r]:String}),{}),{reset:bmu,bold:Emu,dim:Smu,italic:vmu,underline:Bmu,inverse:wmu,hidden:Tmu,strikethrough:Rmu,black:Nmu,red:Dmu,green:kmu,yellow:xmu,blue:Gmu,magenta:Fmu,cyan:Zmu,white:Lmu,gray:Vmu,bgBlack:Pmu,bgRed:Wmu,bgGreen:Omu,bgYellow:Mmu,bgBlue:Hmu,bgMagenta:Ymu,bgCyan:Qmu,bgWhite:Xmu,blackBright:Jmu,redBright:Umu,greenBright:Kmu,yellowBright:jmu,blueBright:zmu,magentaBright:qmu,cyanBright:$mu,whiteBright:eCu,bgBlackBright:tCu,bgRedBright:rCu,bgGreenBright:nCu,bgYellowBright:iCu,bgBlueBright:sCu,bgMagentaBright:oCu,bgCyanBright:aCu,bgWhiteBright:cCu}=j2r();var PAi=Nt(Dgi(),1);import{format as vDa}from"util";import{EOL as EAi}from"os";import{StringDecoder as BDa}from"string_decoder";import{EOL as m_t}from"os";import{Writable as wDa}from"stream";import{EOL as C_t}from"os";import{randomUUID as WDa}from"crypto";var yDa=Object.defineProperty,wp=(e,t)=>yDa(e,"name",{value:t,configurable:!0}),yAi="\x1B[",bAi={CURSOR_HIDE:yAi+"?25l",CURSOR_SHOW:yAi+"?25h"};var TAi=(e=>(e.WAITING="WAITING",e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.RETRY="RETRY",e.PAUSED="PAUSED",e.PROMPT="PROMPT",e.PROMPT_COMPLETED="PROMPT_COMPLETED",e.PROMPT_FAILED="PROMPT_FAILED",e))(TAi||{}),RAi=class{static{wp(this,"EventManager")}emitter=new vgi;emit(e,t){this.emitter.emit(e,t)}on(e,t){this.emitter.addListener(e,t)}once(e,t){this.emitter.once(e,t)}off(e,t){this.emitter.off(e,t)}complete(){this.emitter.removeAllListeners()}},m_u=class{static{wp(this,"BaseEventMap")}};function NAi(e){return!!e&&typeof e=="object"&&typeof e.subscribe=="function"}wp(NAi,"isObservable");function DAi(e){return!!e&&typeof e=="object"&&e.readable===!0&&typeof e.read=="function"&&typeof e.on=="function"}wp(DAi,"isReadable");function ySr(){return!!process.env.LISTR_FORCE_UNICODE||process.platform!=="win32"||!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"}wp(ySr,"isUnicodeSupported");var bDa="(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+",EDa=/\u0007/;function WTe(e){return String(e).replace(new RegExp(bDa,"gmi"),"").replace(new RegExp(EDa,"gmi"),"").trim()}wp(WTe,"cleanseAnsi");var X0=j2r();function fSr(e,t){return e.replace(/^(?!\s*$)/gm," ".repeat(t))}wp(fSr,"indent");var kAi={warning:"\u26A0",cross:"\u2716",arrowDown:"\u2193",tick:"\u2714",arrowRight:"\u2192",pointer:"\u276F",checkboxOn:"\u2612",arrowLeft:"\u2190",squareSmallFilled:"\u25FC",pointerSmall:"\u203A"},SDa={...kAi,warning:"\u203C",cross:"\xD7",tick:"\u221A",pointer:">",checkboxOn:"[\xD7]",squareSmallFilled:"\u25A0"},sb=ySr()?kAi:SDa;function PTe(e,...t){return vDa(String(e),...t)}wp(PTe,"splat");var __t={icon:{STARTED:sb.pointer,FAILED:sb.cross,SKIPPED:sb.arrowDown,COMPLETED:sb.tick,OUTPUT:sb.pointerSmall,TITLE:sb.arrowRight,RETRY:sb.warning,ROLLBACK:sb.arrowLeft,PAUSED:sb.squareSmallFilled},color:{STARTED:X0.yellow,FAILED:X0.red,SKIPPED:X0.yellow,COMPLETED:X0.green,RETRY:X0.yellowBright,ROLLBACK:X0.redBright,PAUSED:X0.yellowBright}},xAi=["RETRY","ROLLBACK","FAILED"],OTe=class{constructor(e){this.options=e,this.options={useIcons:!0,toStderr:[],...e??{}},this.options.fields??={},this.options.fields.prefix??=[],this.options.fields.suffix??=[],this.process=this.options.processOutput??new bSr}static{wp(this,"ListrLogger")}process;log(e,t,r){let n=this.format(e,t,r);if(this.options.toStderr.includes(e)){this.process.toStderr(n);return}this.process.toStdout(n)}toStdout(e,t,r=!0){this.process.toStdout(this.format(null,e,t),r)}toStderr(e,t,r=!0){this.process.toStderr(this.format(null,e,t),r)}wrap(e,t){return e&&this.applyFormat(`[${e}]`,t)}splat(...e){let t=e.shift()??"";return e.length===0?t:PTe(t,e)}suffix(e,...t){return t.filter(Boolean).forEach(r=>{if(e+=this.spacing(e),typeof r=="string")e+=this.wrap(r);else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e+=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format(...r.args)})}}),e}prefix(e,...t){return t.filter(Boolean).forEach(r=>{if(e=this.spacing(e)+e,typeof r=="string")e=this.wrap(r)+e;else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format()})+e}}),e}fields(e,t){return this.options?.fields?.prefix&&(e=this.prefix(e,...this.options.fields.prefix)),t?.prefix&&(e=this.prefix(e,...t.prefix)),t?.suffix&&(e=this.suffix(e,...t.suffix)),this.options?.fields?.suffix&&(e=this.suffix(e,...this.options.fields.suffix)),e}icon(e,t){if(!e)return null;t||=this.options.icon?.[e];let r=this.options.color?.[e];return t&&r&&(t=r(t)),t}format(e,t,r){return Array.isArray(t)||(t=[t]),t=this.splat(t.shift(),...t).toString().split(EAi).filter(n=>!n||n.trim()!=="").map(n=>this.style(e,this.fields(n,{prefix:Array.isArray(r?.prefix)?r.prefix:[r?.prefix],suffix:Array.isArray(r?.suffix)?r.suffix:[r?.suffix]}))).join(EAi),t}style(e,t){if(!e||!t)return t;let r=this.icon(e,!this.options.useIcons&&this.wrap(e));return r&&(t=r+" "+t),t}applyFormat(e,t){return t?.format?t.format(e):e}spacing(e){return typeof e>"u"||e.trim()===""?"":" "}},ISr=class{constructor(e){this.options=e}static{wp(this,"ProcessOutputBuffer")}buffer=[];decoder=new BDa;get all(){return this.buffer}get last(){return this.buffer.at(-1)}get length(){return this.buffer.length}write(e,...t){let r=t[t.length-1];return this.buffer.push({time:Date.now(),stream:this.options?.stream,entry:this.decoder.write(typeof e=="string"?Buffer.from(e,typeof t[0]=="string"?t[0]:void 0):Buffer.from(e))}),this.options?.limit&&(this.buffer=this.buffer.slice(-this.options.limit)),typeof r=="function"&&r(),!0}reset(){this.buffer=[]}},SAi=class{constructor(e){this.stream=e,this.method=e.write,this.buffer=new ISr({stream:e})}static{wp(this,"ProcessOutputStream")}method;buffer;get out(){return Object.assign({},this.stream,{write:this.write.bind(this)})}hijack(){this.stream.write=this.buffer.write.bind(this.buffer)}release(){this.stream.write=this.method;let e=[...this.buffer.all];return this.buffer.reset(),e}write(...e){return this.method.apply(this.stream,e)}},bSr=class{constructor(e,t,r){this.options=r,this.stream={stdout:new SAi(e??process.stdout),stderr:new SAi(t??process.stderr)},this.options={dump:["stdout","stderr"],leaveEmptyLine:!0,...r}}static{wp(this,"ProcessOutput")}stream;active;get stdout(){return this.stream.stdout.out}get stderr(){return this.stream.stderr.out}hijack(){if(this.active)throw new Error("ProcessOutput has been already hijacked!");this.stream.stdout.write(bAi.CURSOR_HIDE),Object.values(this.stream).forEach(e=>e.hijack()),this.active=!0}release(){let e=Object.entries(this.stream).map(([t,r])=>({name:t,buffer:r.release()})).filter(t=>this.options.dump.includes(t.name)).flatMap(t=>t.buffer).sort((t,r)=>t.time-r.time).map(t=>({...t,entry:WTe(t.entry)})).filter(t=>t.entry);e.length>0&&(this.options.leaveEmptyLine&&this.stdout.write(m_t),e.forEach(t=>{(t.stream??this.stdout).write(t.entry+m_t)})),this.stream.stdout.write(bAi.CURSOR_SHOW),this.active=!1}toStdout(e,t=!0){return t&&(e=e+m_t),this.stream.stdout.write(e)}toStderr(e,t=!0){return t&&(e=e+m_t),this.stream.stderr.write(e)}};function GAi(e){let t=new wDa;return t.rows=1/0,t.columns=1/0,t.write=r=>(e(r.toString()),!0),t}wp(GAi,"createWritable");var v_u=class{constructor(e,t){this.task=e,this.wrapper=t}static{wp(this,"ListrPromptAdapter")}state;reportStarted(){if(this.state=this.task.state,this.task.prompt)throw new OAi("There is already an active prompt attached to this task which may not be cleaned up properly.");this.task.prompt=this,this.task.state$="PROMPT"}reportFailed(){this.task.state$="PROMPT_FAILED",this.restoreState()}reportCompleted(){this.task.state$="PROMPT_COMPLETED",this.restoreState()}restoreState(){this.task.prompt=void 0,this.state&&(this.task.state=this.state)}},TDa=class{static{wp(this,"Spinner")}spinner=ySr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"];id;spinnerPosition=0;spin(){this.spinnerPosition=++this.spinnerPosition%this.spinner.length}fetch(){return this.spinner[this.spinnerPosition]}isRunning(){return!!this.id}start(e,t=100){this.id=setInterval(()=>{this.spin(),e&&e()},t)}stop(){clearInterval(this.id)}};var vAi={icon:{SKIPPED_WITH_COLLAPSE:sb.arrowDown,SKIPPED_WITHOUT_COLLAPSE:sb.warning,OUTPUT:sb.pointerSmall,OUTPUT_WITH_BOTTOMBAR:sb.pointerSmall,PENDING:sb.pointer,COMPLETED:sb.tick,COMPLETED_WITH_FAILED_SUBTASKS:sb.warning,COMPLETED_WITH_SISTER_TASKS_FAILED:sb.squareSmallFilled,RETRY:sb.warning,ROLLING_BACK:sb.warning,ROLLED_BACK:sb.arrowLeft,FAILED:sb.cross,FAILED_WITH_SUBTASKS:sb.pointer,WAITING:sb.squareSmallFilled,PAUSED:sb.squareSmallFilled},color:{SKIPPED_WITH_COLLAPSE:X0.yellow,SKIPPED_WITHOUT_COLLAPSE:X0.yellow,PENDING:X0.yellow,COMPLETED:X0.green,COMPLETED_WITH_FAILED_SUBTASKS:X0.yellow,COMPLETED_WITH_SISTER_TASKS_FAILED:X0.red,RETRY:X0.yellowBright,ROLLING_BACK:X0.redBright,ROLLED_BACK:X0.redBright,FAILED:X0.red,FAILED_WITH_SUBTASKS:X0.red,WAITING:X0.dim,PAUSED:X0.yellowBright}};function FAi(e){let t=Math.floor(e/1e3),r=Math.floor(t/60),n;return t===0&&r===0&&(n=`0.${Math.floor(e/100)}s`),t>0&&(n=`${t%60}s`),r>0&&(n=`${r}m${n}`),n}wp(FAi,"parseTimer");var ESr={condition:!0,field:FAi,format:wp(()=>X0.dim,"format")};function RDa(){let e=new Date;return String(e.getHours()).padStart(2,"0")+":"+String(e.getMinutes()).padStart(2,"0")+":"+String(e.getSeconds()).padStart(2,"0")}wp(RDa,"parseTimestamp");var NDa=class hSr{constructor(t,r,n){this.tasks=t,this.options=r,this.events=n,this.options={...hSr.rendererOptions,...this.options,icon:{...vAi.icon,...r?.icon??{}},color:{...vAi.color,...r?.color??{}}},this.spinner=this.options.spinner??new TDa,this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:[]}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color}static{wp(this,"DefaultRenderer")}static nonTTY=!1;static rendererOptions={indentation:2,clearOutput:!1,showSubtasks:!0,collapseSubtasks:!0,collapseSkips:!0,showSkipMessage:!0,suffixSkips:!1,collapseErrors:!0,showErrorMessage:!0,suffixRetries:!0,lazy:!1,removeEmptyLines:!0,formatOutput:"wrap",pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={outputBar:!0};prompt;activePrompt;spinner;logger;updater;truncate;wrap;buffer={output:new Map,bottom:new Map};cache={render:new Map,rendererOptions:new Map,rendererTaskOptions:new Map};async render(){let{createLogUpdate:t}=await Promise.resolve().then(()=>(dAi(),AAi)),{default:r}=await Promise.resolve().then(()=>(_Ai(),CAi)),{default:n}=await Promise.resolve().then(()=>(oSr(),aAi));this.updater=t(this.logger.process.stdout),this.truncate=r,this.wrap=n,this.logger.process.hijack(),this.options?.lazy||this.spinner.start(()=>{this.update()}),this.events.on("SHOUD_REFRESH_RENDER",()=>{this.update()})}update(){this.updater(this.create())}end(){this.spinner.stop(),this.updater.clear(),this.updater.done(),this.options.clearOutput||this.logger.process.toStdout(this.create({prompt:!1})),this.logger.process.release()}create(t){t={tasks:!0,bottomBar:!0,prompt:!0,...t};let r=[],n=this.renderer(this.tasks),a=this.renderBottomBar(),o=this.renderPrompt();return t.tasks&&n.length>0&&r.push(...n),t.bottomBar&&a.length>0&&(r.length>0&&r.push(""),r.push(...a)),t.prompt&&o.length>0&&(r.length>0&&r.push(""),r.push(...o)),r.join(C_t)}style(t,r=!1){let n=this.cache.rendererOptions.get(t.id);if(t.isSkipped()){if(r||n.collapseSkips)return this.logger.icon("SKIPPED_WITH_COLLAPSE");if(n.collapseSkips===!1)return this.logger.icon("SKIPPED_WITHOUT_COLLAPSE")}if(r)return this.shouldOutputToBottomBar(t)?this.logger.icon("OUTPUT_WITH_BOTTOMBAR"):this.logger.icon("OUTPUT");if(t.hasSubtasks()){if(t.isStarted()||t.isPrompt()&&n.showSubtasks!==!1&&!t.subtasks.every(a=>!a.hasTitle()))return this.logger.icon("PENDING");if(t.isCompleted()&&t.subtasks.some(a=>a.hasFailed()))return this.logger.icon("COMPLETED_WITH_FAILED_SUBTASKS");if(t.hasFailed())return this.logger.icon("FAILED_WITH_SUBTASKS")}return t.isStarted()||t.isPrompt()?this.logger.icon("PENDING",!this.options?.lazy&&this.spinner.fetch()):t.isCompleted()?this.logger.icon("COMPLETED"):t.isRetrying()?this.logger.icon("RETRY",!this.options?.lazy&&this.spinner.fetch()):t.isRollingBack()?this.logger.icon("ROLLING_BACK",!this.options?.lazy&&this.spinner.fetch()):t.hasRolledBack()?this.logger.icon("ROLLED_BACK"):t.hasFailed()?this.logger.icon("FAILED"):t.isPaused()?this.logger.icon("PAUSED"):this.logger.icon("WAITING")}format(t,r,n){if(t.trim()==="")return[];r&&(t=r+" "+t);let a,o=(process.stdout.columns??80)-n*this.options.indentation-2;switch(this.options.formatOutput){case"truncate":a=t.split(C_t).map((l,A)=>this.truncate(this.indent(l,A),o));break;case"wrap":a=this.wrap(t,o,{hard:!0}).split(C_t).map((l,A)=>this.indent(l,A));break;default:throw new BAi("Format option for the renderer is wrong.")}return this.options.removeEmptyLines&&(a=a.filter(Boolean)),a.map(l=>fSr(l,n*this.options.indentation))}shouldOutputToOutputBar(t){let r=this.cache.rendererTaskOptions.get(t.id).outputBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1}shouldOutputToBottomBar(t){let r=this.cache.rendererTaskOptions.get(t.id).bottomBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1||!t.hasTitle()}renderer(t,r=0){return t.flatMap(n=>{if(!n.isEnabled())return[];if(this.cache.render.has(n.id))return this.cache.render.get(n.id);this.calculate(n),this.setupBuffer(n);let a=this.cache.rendererOptions.get(n.id),o=this.cache.rendererTaskOptions.get(n.id),l=[];if(n.isPrompt()){if(this.activePrompt&&this.activePrompt!==n.id)throw new BAi("Only one prompt can be active at the given time, please re-evaluate your task design.");this.activePrompt||(n.on("PROMPT",A=>{let f=WTe(A);f&&(this.prompt=f)}),n.on("STATE",A=>{(A==="PROMPT_COMPLETED"||n.hasFinalized()||n.hasReset())&&(this.prompt=null,this.activePrompt=null,n.off("PROMPT"))}),this.activePrompt=n.id)}if(n.hasTitle()&&(t.some(A=>A.hasFailed())&&!n.hasFailed()&&n.options.exitOnError!==!1&&!(n.isCompleted()||n.isSkipped())?l.push(...this.format(n.title,this.logger.icon("COMPLETED_WITH_SISTER_TASKS_FAILED"),r)):n.hasFailed()&&a.collapseErrors?l.push(...this.format(!n.hasSubtasks()&&n.message.error&&a.showErrorMessage?n.message.error:n.title,this.style(n),r)):n.isSkipped()&&a.collapseSkips?l.push(...this.format(this.logger.suffix(n.message.skip&&a.showSkipMessage?n.message.skip:n.title,{field:"SKIPPED",condition:a.suffixSkips,format:wp(()=>X0.dim,"format")}),this.style(n),r)):n.isRetrying()?l.push(...this.format(this.logger.suffix(n.title,{field:`RETRY:${n.message.retry.count}`,format:wp(()=>X0.yellow,"format"),condition:a.suffixRetries}),this.style(n),r)):n.isCompleted()&&n.hasTitle()&&Lhe(o.timer?.condition,n.message.duration)?l.push(...this.format(this.logger.suffix(n?.title,{...o.timer,args:[n.message.duration]}),this.style(n),r)):n.isPaused()?l.push(...this.format(this.logger.suffix(n.title,{...a.pausedTimer,args:[n.message.paused-Date.now()]}),this.style(n),r)):l.push(...this.format(n.title,this.style(n),r))),(!n.hasSubtasks()||!a.showSubtasks)&&(n.hasFailed()&&a.collapseErrors===!1&&(a.showErrorMessage||!a.showSubtasks)?l.push(...this.dump(n,r,"FAILED")):n.isSkipped()&&a.collapseSkips===!1&&(a.showSkipMessage||!a.showSubtasks)&&l.push(...this.dump(n,r,"SKIPPED"))),(n.isPending()||o.persistentOutput)&&l.push(...this.renderOutputBar(n,r)),a.showSubtasks!==!1&&n.hasSubtasks()&&(n.isPending()||n.hasFinalized()&&!n.hasTitle()||n.isCompleted()&&a.collapseSubtasks===!1&&!n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!0)||n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!1)||n.subtasks.some(A=>A.hasFailed())||n.subtasks.some(A=>A.hasRolledBack()))){let A=n.hasTitle()?r+1:r,f=this.renderer(n.subtasks,A);l.push(...f)}return n.hasFinalized()&&(o.persistentOutput||(this.buffer.bottom.delete(n.id),this.buffer.output.delete(n.id))),n.isClosed()&&(this.cache.render.set(n.id,l),this.reset(n)),l})}renderOutputBar(t,r){let n=this.buffer.output.get(t.id);return n?n.all.flatMap(a=>this.dump(t,r,"OUTPUT",a.entry)):[]}renderBottomBar(){return this.buffer.bottom.size===0?[]:Array.from(this.buffer.bottom.values()).flatMap(t=>t.all).sort((t,r)=>t.time-r.time).map(t=>t.entry)}renderPrompt(){return this.prompt?[this.prompt]:[]}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...hSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}setupBuffer(t){if(this.buffer.bottom.has(t.id)||this.buffer.output.has(t.id))return;let r=this.cache.rendererTaskOptions.get(t.id);this.shouldOutputToBottomBar(t)&&!this.buffer.bottom.has(t.id)?(this.buffer.bottom.set(t.id,new ISr({limit:typeof r.bottomBar=="number"?r.bottomBar:1})),t.on("OUTPUT",n=>{let a=this.dump(t,-1,"OUTPUT",n);this.buffer.bottom.get(t.id).write(a.join(C_t))}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.bottom.delete(t.id);break}})):this.shouldOutputToOutputBar(t)&&!this.buffer.output.has(t.id)&&(this.buffer.output.set(t.id,new ISr({limit:typeof r.outputBar=="number"?r.outputBar:1})),t.on("OUTPUT",n=>{this.buffer.output.get(t.id).write(n)}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.output.delete(t.id);break}}))}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id),this.buffer.output.delete(t.id)}dump(t,r,n="OUTPUT",a){if(!a)switch(n){case"OUTPUT":a=t.output;break;case"SKIPPED":a=t.message.skip;break;case"FAILED":a=t.message.error;break}return t.hasTitle()&&n==="FAILED"&&a===t.title||typeof a!="string"?[]:(n==="OUTPUT"&&(a=WTe(a)),this.format(a,this.style(t,!0),r+1))}indent(t,r){return r>0?fSr(t.trim(),this.options.indentation):t.trim()}},DDa=class{constructor(e,t){this.tasks=e,this.options=t}static{wp(this,"SilentRenderer")}static nonTTY=!0;static rendererOptions;static rendererTaskOptions;render(){}end(){}},kDa=class mSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...mSr.rendererOptions,...r,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"SimpleRenderer")}static nonTTY=!0;static rendererOptions={pausedTimer:{...ESr,field:wp(t=>`PAUSED:${t}`,"field"),format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={};logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};end(){}render(){this.renderer(this.tasks)}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle())if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a?.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}else o==="PROMPT"?(this.logger.process.hijack(),r.on("PROMPT",l=>{this.logger.process.toStderr(l,!1)})):o==="PROMPT_COMPLETED"&&(r.off("PROMPT"),this.logger.process.release())}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("MESSAGE",o=>{if(o.error)this.logger.log("FAILED",r.title,{suffix:{field:`FAILED: ${o.error}`,format:wp(()=>X0.red,"format")}});else if(o.skip)this.logger.log("SKIPPED",r.title,{suffix:{field:`SKIPPED: ${o.skip}`,format:wp(()=>X0.yellow,"format")}});else if(o.rollback)this.logger.log("ROLLBACK",r.title,{suffix:{field:`ROLLBACK: ${o.rollback}`,format:wp(()=>X0.red,"format")}});else if(o.retry)this.logger.log("RETRY",r.title,{suffix:{field:`RETRY:${o.retry.count}`,format:wp(()=>X0.red,"format")}});else if(o.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...mSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},xDa=class{constructor(e){this.options=e}static{wp(this,"TestRendererSerializer")}serialize(e,t,r){return JSON.stringify(this.generate(e,t,r))}generate(e,t,r){let n={event:e,data:t};if(typeof this.options?.task!="boolean"){let a=Object.fromEntries(this.options.task.map(o=>{let l=r[o];return typeof l=="function"?[o,l.call(r)]:[o,l]}));Object.keys(r).length>0&&(n.task=a)}return n}},GDa=class ZAi{constructor(t,r){this.tasks=t,this.options=r,this.options={...ZAi.rendererOptions,...this.options},this.logger=this.options.logger??new OTe({useIcons:!1}),this.serializer=new xDa(this.options)}static{wp(this,"TestRenderer")}static nonTTY=!0;static rendererOptions={subtasks:!0,state:Object.values(TAi),output:!0,prompt:!0,title:!0,messages:["skip","error","retry","rollback","paused"],messagesToStderr:["error","rollback","retry"],task:["hasRolledBack","isRollingBack","isCompleted","isSkipped","hasFinalized","hasSubtasks","title","hasReset","hasTitle","isPrompt","isPaused","isPending","isSkipped","isStarted","hasFailed","isEnabled","isRetrying","path"]};static rendererTaskOptions;logger;serializer;render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.options.subtasks&&r.on("SUBTASK",n=>{this.renderer(n)}),this.options.state&&r.on("STATE",n=>{this.logger.toStdout(this.serializer.serialize("STATE",n,r))}),this.options.output&&r.on("OUTPUT",n=>{this.logger.toStdout(this.serializer.serialize("OUTPUT",n,r))}),this.options.prompt&&r.on("PROMPT",n=>{this.logger.toStdout(this.serializer.serialize("PROMPT",n,r))}),this.options.title&&r.on("TITLE",n=>{this.logger.toStdout(this.serializer.serialize("TITLE",n,r))}),r.on("MESSAGE",n=>{let a=Object.fromEntries(Object.entries(n).map(([o,l])=>{if(this.options.messages.includes(o))return[o,l]}).filter(Boolean));if(Object.keys(a).length>0){let o=this.serializer.serialize("MESSAGE",a,r);this.options.messagesToStderr.some(l=>Object.keys(a).includes(l))?this.logger.toStderr(o):this.logger.toStdout(o)}})})}},FDa=class CSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...CSr.rendererOptions,...this.options,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!1,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"VerboseRenderer")}static nonTTY=!0;static rendererOptions={logTitleChange:!1,pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions;logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle()){if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}}}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("PROMPT",o=>{let l=WTe(o);l&&this.logger.log("PROMPT",l)}),this.options?.logTitleChange!==!1&&r.on("TITLE",o=>{this.logger.log("TITLE",o)}),r.on("MESSAGE",o=>{if(o?.error)this.logger.log("FAILED",o.error);else if(o?.skip)this.logger.log("SKIPPED",o.skip);else if(o?.rollback)this.logger.log("ROLLBACK",o.rollback);else if(o?.retry)this.logger.log("RETRY",r.title,{suffix:o.retry.count.toString()});else if(o?.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...CSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},pSr={default:NDa,simple:kDa,verbose:FDa,test:GDa,silent:DDa};function LAi(e){return process.stdout.isTTY===!0||e.nonTTY===!0}wp(LAi,"isRendererSupported");function XQe(e){return typeof e=="string"?pSr[e]??pSr.default:typeof e=="function"?e:pSr.default}wp(XQe,"getRendererClass");function VAi(e){if(Lhe(e?.silentRendererCondition))return{renderer:XQe("silent"),selection:"SILENT"};let t={renderer:XQe(e.renderer),options:e.rendererOptions,selection:"PRIMARY"};return!LAi(t.renderer)||Lhe(e?.fallbackRendererCondition)?{renderer:XQe(e.fallbackRenderer),options:e.fallbackRendererOptions,selection:"SECONDARY"}:t}wp(VAi,"getRenderer");function Lhe(e,...t){return typeof e=="function"?e(...t):e}wp(Lhe,"assertFunctionOrSelf");var ZDa=(0,PAi.default)({circles:!0});function _Sr(e){return ZDa(e)}wp(_Sr,"cloneObject");var LDa=class{static{wp(this,"Concurrency")}concurrency;count;queue;constructor(e){this.concurrency=e.concurrency,this.count=0,this.queue=new Set}add(e){return this.count{let r=wp(()=>t(this.run(e)),"callback");this.queue.add(r)})}flush(){for(let e of this.queue){if(this.count>=this.concurrency)break;this.queue.delete(e),e()}}run(e){this.count++;let t=e(),r=wp(()=>{this.count--,this.flush()},"cleanup");return t.then(r,()=>{this.queue.clear()}),t}};function WAi(e){return new Promise(t=>{setTimeout(t,e)})}wp(WAi,"delay");var VDa=class extends Error{constructor(e,t,r){super(e.message),this.error=e,this.type=t,this.task=r,this.name="ListrError",this.path=r.path,r?.options.collectErrors==="full"&&(this.task=_Sr(r),this.ctx=_Sr(r.listr.ctx)),this.stack=e?.stack}static{wp(this,"ListrError")}path;ctx},BAi=class extends Error{static{wp(this,"ListrRendererError")}},OAi=class extends Error{static{wp(this,"PromptError")}},PDa=class{constructor(e){this.task=e}static{wp(this,"TaskWrapper")}get title(){return this.task.title}set title(e){e=Array.isArray(e)?e:[e],this.task.title$=PTe(e.shift(),...e)}get output(){return this.task.output}set output(e){e=Array.isArray(e)?e:[e],this.task.output$=PTe(e.shift(),...e)}set promptOutput(e){this.task.promptOutput$=e}newListr(e,t){let r;return typeof e=="function"?r=e(this):r=e,new y_t(r,t,this.task)}report(e,t){this.task.options.collectErrors!==!1&&this.task.listr.errors.push(new VDa(e,t,this.task)),this.task.message$={error:e.message??this.task?.title}}skip(e,...t){this.task.state$="SKIPPED",e&&(this.task.message$={skip:e?PTe(e,...t):this.task?.title})}isRetrying(){return this.task.isRetrying()?this.task.retry:{count:0}}prompt(e){return this.task.prompt?this.task.prompt:new e(this.task,this)}stdout(e){return GAi(t=>{switch(e){case"PROMPT":this.promptOutput=t;break;default:this.output=t}})}run(e){return this.task.run(e,this)}},ODa=class extends RAi{static{wp(this,"ListrTaskEventManager")}},MDa=class extends ODa{constructor(e,t,r,n,a){if(super(),this.listr=e,this.task=t,this.options=r,this.rendererOptions=n,this.rendererTaskOptions=a,t.title){let o=Array.isArray(t?.title)?t.title:[t.title];this.title=PTe(o.shift(),...o),this.initialTitle=this.title}this.taskFn=t.task,this.parent=e.parentTask}static{wp(this,"Task")}id=WDa();state="WAITING";subtasks;title;initialTitle;output;retry;message={};prompt;parent;enabled;taskFn;closed;set state$(e){if(this.state=e,this.emit("STATE",e),this.hasSubtasks()&&this.hasFailed())for(let t of this.subtasks)t.state==="STARTED"&&(t.state$="FAILED");this.listr.events.emit("SHOUD_REFRESH_RENDER")}set output$(e){this.output=e,this.emit("OUTPUT",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set promptOutput$(e){this.emit("PROMPT",e),WTe(e)&&this.listr.events.emit("SHOUD_REFRESH_RENDER")}set message$(e){this.message={...this.message,...e},this.emit("MESSAGE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set title$(e){this.title=e,this.emit("TITLE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}get path(){return[...this.listr.path,this.initialTitle]}async check(e){return this.state==="WAITING"&&(this.enabled=await Lhe(this.task?.enabled??!0,e),this.emit("ENABLED",this.enabled),this.listr.events.emit("SHOUD_REFRESH_RENDER")),this.enabled}hasSubtasks(){return this.subtasks?.length>0}hasFinalized(){return this.isCompleted()||this.hasFailed()||this.isSkipped()||this.hasRolledBack()}isPending(){return this.isStarted()||this.isPrompt()||this.hasReset()}isStarted(){return this.state==="STARTED"}isSkipped(){return this.state==="SKIPPED"}isCompleted(){return this.state==="COMPLETED"}hasFailed(){return this.state==="FAILED"}isRollingBack(){return this.state==="ROLLING_BACK"}hasRolledBack(){return this.state==="ROLLED_BACK"}isRetrying(){return this.state==="RETRY"}hasReset(){return this.state==="RETRY"||this.state==="ROLLING_BACK"}isEnabled(){return this.enabled}hasTitle(){return typeof this?.title=="string"}isPrompt(){return this.state==="PROMPT"||this.state==="PROMPT_COMPLETED"}isPaused(){return this.state==="PAUSED"}isClosed(){return this.closed}async pause(e){let t=this.state;this.state$="PAUSED",this.message$={paused:Date.now()+e},await WAi(e),this.state$=t,this.message$={paused:null}}async run(e,t){let r=wp(o=>(o instanceof y_t?(o.options={...this.options,...o.options},o.rendererClass=XQe("silent"),this.subtasks=o.tasks,o.errors=this.listr.errors,this.emit("SUBTASK",this.subtasks),o=o.run(e)):o instanceof Promise?o=o.then(r):DAi(o)?o=new Promise((l,A)=>{o.on("data",f=>{this.output$=f.toString()}),o.on("error",f=>A(f)),o.on("end",()=>l(null))}):NAi(o)&&(o=new Promise((l,A)=>{o.subscribe({next:wp(f=>{this.output$=f},"next"),error:A,complete:l})})),o),"handleResult"),n=Date.now();this.state$="STARTED";let a=await Lhe(this.task?.skip??!1,e);if(a){typeof a=="string"?this.message$={skip:a}:this.hasTitle()?this.message$={skip:this.title}:this.message$={skip:"Skipped task without a title."},this.state$="SKIPPED";return}try{let o=typeof this.task?.retry=="number"&&this.task.retry>0?this.task.retry+1:typeof this.task?.retry=="object"&&this.task.retry.tries>0?this.task.retry.tries+1:1,l=typeof this.task.retry=="object"&&this.task.retry.delay;for(let A=1;A<=o;A++)try{await r(this.taskFn(e,t));break}catch(f){if(A!==o)this.retry={count:A,error:f},this.message$={retry:this.retry},this.title$=this.initialTitle,this.output=void 0,t.report(f,"WILL_RETRY"),this.state$="RETRY",l&&await this.pause(l);else throw f}(this.isStarted()||this.isRetrying())&&(this.message$={duration:Date.now()-n},this.state$="COMPLETED")}catch(o){if(this.prompt instanceof OAi&&(o=this.prompt),this.task?.rollback){t.report(o,"WILL_ROLLBACK");try{this.state$="ROLLING_BACK",await this.task.rollback(e,t),this.message$={rollback:this.title},this.state$="ROLLED_BACK"}catch(l){throw this.state$="FAILED",t.report(l,"HAS_FAILED_TO_ROLLBACK"),this.close(),l}if(this.listr.options?.exitAfterRollback!==!1)throw this.close(),o}else{if(this.state$="FAILED",this.listr.options.exitOnError!==!1&&await Lhe(this.task?.exitOnError,e)!==!1)throw t.report(o,"HAS_FAILED"),this.close(),o;this.hasSubtasks()||t.report(o,"HAS_FAILED_WITHOUT_ERROR")}}finally{this.close()}}close(){this.emit("CLOSED"),this.listr.events.emit("SHOUD_REFRESH_RENDER"),this.complete()}},wAi=class extends RAi{static{wp(this,"ListrEventManager")}},y_t=class{constructor(e,t,r){this.task=e,this.options=t,this.parentTask=r,this.options={concurrent:!1,renderer:"default",fallbackRenderer:"simple",exitOnError:!0,exitAfterRollback:!0,collectErrors:!1,registerSignalListeners:!0,...this.parentTask?.options??{},...t},this.options.concurrent===!0?this.options.concurrent=1/0:typeof this.options.concurrent!="number"&&(this.options.concurrent=1),this.concurrency=new LDa({concurrency:this.options.concurrent}),r&&(this.path=[...r.listr.path,r.title],this.errors=r.listr.errors),this.parentTask?.listr.events instanceof wAi?this.events=this.parentTask.listr.events:this.events=new wAi;let n=VAi({renderer:this.options.renderer,rendererOptions:this.options.rendererOptions,fallbackRenderer:this.options.fallbackRenderer,fallbackRendererOptions:this.options.fallbackRendererOptions,fallbackRendererCondition:this.options?.fallbackRendererCondition,silentRendererCondition:this.options?.silentRendererCondition});this.rendererClass=n.renderer,this.rendererClassOptions=n.options,this.rendererSelection=n.selection,this.add(e??[]),this.options.registerSignalListeners&&(this.boundSignalHandler=this.signalHandler.bind(this),process.once("SIGINT",this.boundSignalHandler).setMaxListeners(0)),(this.options?.forceTTY||process.env.LISTR_FORCE_TTY)&&(process.stdout.isTTY=!0,process.stderr.isTTY=!0),this.options?.forceUnicode&&(process.env.LISTR_FORCE_UNICODE="1")}static{wp(this,"Listr")}tasks=[];errors=[];ctx;events;path=[];rendererClass;rendererClassOptions;rendererSelection;boundSignalHandler;concurrency;renderer;isRoot(){return!this.parentTask}isSubtask(){return!!this.parentTask}add(e){this.tasks.push(...this.generate(e))}async run(e){this.renderer||(this.renderer=new this.rendererClass(this.tasks,this.rendererClassOptions,this.events)),await this.renderer.render(),this.ctx=this.options?.ctx??e??{},await Promise.all(this.tasks.map(t=>t.check(this.ctx)));try{await Promise.all(this.tasks.map(t=>this.concurrency.add(()=>this.runTask(t)))),this.renderer.end(),this.removeSignalHandler()}catch(t){if(this.options.exitOnError!==!1)throw this.renderer.end(t),this.removeSignalHandler(),t}return this.ctx}generate(e){return e=Array.isArray(e)?e:[e],e.map(t=>{let r;return this.rendererSelection==="PRIMARY"?r=t.rendererOptions:this.rendererSelection==="SECONDARY"&&(r=t.fallbackRendererOptions),new MDa(this,t,this.options,this.rendererClassOptions,r)})}async runTask(e){if(await e.check(this.ctx))return new PDa(e).run(this.ctx)}signalHandler(){this.tasks?.forEach(async e=>{e.isPending()&&(e.state$="FAILED")}),this.isRoot()&&(this.renderer.end(new Error("Interrupted.")),process.exit(127))}removeSignalHandler(){this.boundSignalHandler&&process.removeListener("SIGINT",this.boundSignalHandler)}};var JQe=fp.blue(sb.arrowRight),HM=fp.redBright(sb.cross),MTe=fp.yellow(sb.warning);var UQe=(e,t,r)=>`${fp.redBright(`${HM} Validation Error:`)} Invalid value for '${fp.bold(e)}': ${fp.bold(HDa(r))} @@ -2063,7 +2063,7 @@ See https://github.com/okonet/lint-staged#command-line-flags`,qAi=` > git stash list stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0} -`,$_u=fp.redBright(`${HM} Failed to read config from stdin.`),edi=e=>fp.redBright(`${HM} Failed to read config from file "${e}".`),BSr=(e,t)=>`${fp.redBright(`${t} Failed to parse config from file "${e}".`)} +`,e0u=fp.redBright(`${HM} Failed to read config from stdin.`),edi=e=>fp.redBright(`${HM} Failed to read config from file "${e}".`),BSr=(e,t)=>`${fp.redBright(`${t} Failed to parse config from file "${e}".`)} ${t} @@ -2076,21 +2076,21 @@ ${HM} ${e} failed without output (${A}).`);r.quiet||r.output.push(f)}},Eka=async `);throw r.error(BSr(t,o)),new Error(o)}return BBr("Validated config from `%s`:",t),BBr(cLa(e,{compact:!1})),a},DXe=(e,t,r)=>{try{return lLa(e,t,r)}catch(n){throw r.error(BSr(t,n)),n}};var nee=(0,thi.default)("lint-staged:searchConfigs"),qIi=["ls-files","-z","--full-name","-t"],uLa=e=>B0t.includes(ehi.basename(e)),$Ii=e=>e.split("/").length,gLa=(e,t)=>$Ii(e)>$Ii(t)?-1:1,ALa=e=>t=>t.startsWith(wG(e)),rhi=async({configObject:e,configPath:t,cwd:r=process.cwd(),topLevelDir:n=r},a)=>{if(nee("Searching for configuration files..."),e)return nee("Using single direct configuration object..."),{"":DXe(e,"config object",a)};if(t){nee("Using single configuration path...");let{config:C,filepath:b}=await D0t({configPath:t},a);return C?{[t]:DXe(C,b,a)}:{}}let[o,l]=await Promise.all([QZ(qIi,{cwd:n}).then(jQe),QZ([...qIi,"--others","--exclude-standard"],{cwd:n}).then(jQe)]),A=[...o,...l].flatMap(C=>C.startsWith("S ")?[]:[C.replace(/^[HSMRCK?U] /,"")]).filter(uLa).map(C=>wG(ehi.join(n,C))).filter(ALa(r)).sort(gLa);nee("Found possible config files:",A);let f=A.reduce((C,b)=>Object.assign(C,{[b]:null}),{});await Promise.all(Object.keys(f).map(C=>D0t({configPath:C},a).then(({config:b,filepath:E})=>{b&&(C!==E&&nee('Config file "%s" resolved to "%s"',C,E),f[C]=DXe(b,E,a))})));let I=Object.entries(f).filter(([,C])=>!!C).reduce((C,[b,E])=>({...C,[b]:E}),{});if(!Object.keys(I).length){nee('Could not find config files inside "%s"',r);let{config:C,filepath:b}=await D0t({cwd:r},a);C?(nee('Found parent configuration file from "%s"',b),I[b]=DXe(C,b,a)):nee('Could not find parent configuration files from "%s"',r)}return nee("Found %d config files",Object.keys(I).length),I};var xXe=(0,nhi.default)("lint-staged:runAll"),k0t=e=>Object.assign(new Error("lint-staged failed"),{ctx:e}),ihi=async({allowEmpty:e=!1,concurrent:t=!0,configObject:r,configPath:n,cwd:a,debug:o=!1,diff:l,diffFilter:A,maxArgLength:f,quiet:I=!1,relative:C=!1,shell:b=!1,stash:E=l===void 0,hidePartiallyStaged:N=E,verbose:B=!1},F=console)=>{xXe("Running all linter scripts...");let Q=!!a;a=Q?kXe.resolve(a):process.cwd(),xXe("Using working directory `%s`",a);let X=R_t({quiet:I}),{topLevelDir:ae,gitConfigDir:ne}=await jdi(a);if(!ae)throw I||X.output.push(MAi),X.errors.add(Adi),k0t(X);let ce=await QZ(["log","-1"],{cwd:ae}).then(()=>!0).catch(()=>!1);X.shouldBackup=ce&&E,!X.shouldBackup&&!I&&F.warn(UAi(ce,l)),X.shouldHidePartiallyStaged=N,!X.shouldHidePartiallyStaged&&!I&&F.warn(KAi(ce&&E,l));let fe=await cdi({cwd:ae,diff:l,diffFilter:A});if(!fe)throw I||X.output.push(HAi),X.errors.add(xSr),k0t(X,xSr);if(xXe(`Loaded list of staged files in git: %O`,fe),fe.length===0)return I||X.output.push(XAi),X;let ue=await rhi({configObject:r,configPath:n,cwd:a,topLevelDir:ae},F),de=Object.keys(ue).length;if(de===0)throw X.errors.add(qQe),k0t(X,qQe);let be=await ydi({configs:ue,files:fe,singleConfigMode:r||n!==void 0}),Se=de>1,De=!1,k={ctx:X,exitOnError:!1,registerSignalListeners:!1,...adi({debug:o,quiet:I},F)},et=0,ct=[],Me=new Set;for(let[Yt,{config:Tr,files:Nr}]of Object.entries(be)){let er=Yt?wG(kXe.relative(a,Yt)):"Config object",vt=RSr({baseDir:ae,files:Nr,maxArgLength:f,relative:C}),xt=Se&&!Q?kXe.dirname(Yt):a,Zr=vt.length;Zr>1&&xXe("Chunked staged files from `%s` into %d part",Yt,Zr);for(let[qt,Xt]of vt.entries()){let lr=await Promise.all(sdi({config:Tr,cwd:xt,files:Xt,relative:C}).map(cr=>Udi({commands:cr.commands,cwd:xt,files:cr.fileList,topLevelDir:ae,shell:b,verbose:B}).then(Ar=>{cr.fileList.forEach(_n=>{let ke=kXe.isAbsolute(_n)?_n:wG(kXe.join(xt,_n));Me.add(ke)}),De=De||Ar.some(_n=>_n.command==="git add");let qr=cr.fileList.length;return{title:`${cr.pattern}${fp.dim(` \u2014 ${qr} ${qr===1?"file":"files"}`)}`,task:async(_n,ke)=>ke.newListr(Ar,{concurrent:!1,exitOnError:!0}),skip:()=>qr===0?`${cr.pattern}${fp.dim(" \u2014 no files")}`:!1}})));et+=lr.length,ct.push({title:`${er}${fp.dim(` \u2014 ${Xt.length} ${Xt.length>1?"files":"file"}`)}`+(Zr>1?fp.dim(` (chunk ${qt+1}/${Zr})...`):""),task:(cr,Ar)=>Ar.newListr(lr,{concurrent:t,exitOnError:!0}),skip:()=>X.errors.has(QX)?zAi:lr.every(cr=>cr.skip())?`${er}${fp.dim(" \u2014 no tasks to run")}`:!1})}}if(De&&!I&&F.warn(jAi),ct.every(Yt=>Yt.skip()))return I||X.output.push(JAi),X;let je=RSr({baseDir:a,files:Array.from(Me),maxArgLength:f,relative:!1}),St=new w_t({allowEmpty:e,gitConfigDir:ne,topLevelDir:ae,matchedFileChunks:je,diff:l,diffFilter:A}),At=new y_t([{title:"Preparing lint-staged...",task:Yt=>St.prepare(Yt)},{title:"Hiding unstaged changes to partially staged files...",task:Yt=>St.hideUnstagedChanges(Yt),enabled:PSr},{title:`Running tasks for ${l?"changed":"staged"} files...`,task:(Yt,Tr)=>Tr.newListr(ct,{concurrent:t}),skip:()=>ct.every(Yt=>Yt.skip())},{title:"Applying modifications from tasks...",task:Yt=>St.applyModifications(Yt),skip:Zdi},{title:"Restoring unstaged changes to partially staged files...",task:Yt=>St.restoreUnstagedChanges(Yt),enabled:PSr,skip:Ldi},{title:"Reverting to original state because of errors...",task:Yt=>St.restoreOriginalState(Yt),enabled:Vdi,skip:Pdi},{title:"Cleaning up temporary files...",task:Yt=>St.cleanup(Yt),enabled:Wdi,skip:Odi}],k);if(xXe("Set max event listeners to the number of tasks: %i",et),X.events.setMaxListeners(et),await At.run(),X.errors.size>0)throw k0t(X);return X};var ahi=Nt(uT(),1);import{constants as shi}from"node:fs";import ohi from"node:fs/promises";import dLa from"node:path";var x0t=(0,ahi.default)("lint-staged:validateOptions"),chi=async(e={},t)=>{if(x0t("Validating options..."),typeof e.cwd=="string")try{let r=dLa.resolve(e.cwd);await ohi.access(r,shi.F_OK)}catch(r){throw x0t("Failed to validate options: %o",e),t.error(vSr("cwd",e.cwd,r.message)),GSr}if(typeof e.shell=="string")try{await ohi.access(e.shell,shi.X_OK)}catch(r){throw x0t("Failed to validate options: %o",e),t.error(vSr("shell",e.shell,r.message)),GSr}x0t("Validated options: %o",e)};var wBr=(0,lhi.default)("lint-staged"),pLa=()=>{switch(process.platform){case"darwin":return 262144;case"win32":return 8191;default:return 131072}},fLa=async({allowEmpty:e=!1,concurrent:t=!0,config:r,configPath:n,cwd:a,debug:o=!1,diff:l,diffFilter:A,maxArgLength:f=pLa()/2,quiet:I=!1,relative:C=!1,shell:b=!1,stash:E=l===void 0,hidePartiallyStaged:N=E,verbose:B=!1}={},F=console)=>{let Q=await QZ(["version","--build-options"],{cwd:a});wBr("%s",Q);let X={allowEmpty:e,concurrent:t,configObject:r,configPath:n,cwd:a,debug:o,diff:l,diffFilter:A,maxArgLength:f,quiet:I,relative:C,shell:b,stash:E,hidePartiallyStaged:N,verbose:B};await chi(X,F),wBr("Unset GIT_LITERAL_PATHSPECS (was `%s`)",process.env.GIT_LITERAL_PATHSPECS),delete process.env.GIT_LITERAL_PATHSPECS;try{let ae=await ihi(X,F);return wBr("Tasks were executed successfully!"),wSr(ae,F),!0}catch(ae){if(ae?.ctx?.errors){let{ctx:ne}=ae;return ne.errors.has(qQe)?F.error(QAi):ne.errors.has(Rae)?F.warn(qAi):ne.errors.has(QX)&&!ne.errors.has(v_t)&&(F.error(Tae),ne.shouldBackup&&F.error($Ai)),wSr(ne,F),!1}throw ae}},uhi=fLa;var ILa=()=>{try{return ghi("git rev-parse --show-toplevel",{encoding:"utf-8"}).trim()}catch{return process.cwd()}},hLa=e=>JSON.stringify(e),mLa=()=>process.env.npm_execpath||process.argv[1]||"yarn",CLa=(e=mLa())=>{let t=r=>`${hLa(e)} ${r}`;return{"*.{yml,yaml,json,graphql,md}":t("format"),"*.{js,mjs,cjs,jsx,ts,tsx}":[t("format"),t("lint")],"*.{ts,tsx}":t("typecheck"),"*.{test,spec}.{ts,tsx}":t("test unit")}},G0t=class extends Ahi.BaseCommand{static paths=[["commit","staged"]];args=Su.Rest({required:0});async execute(){try{let t=8190;try{let n=parseInt(ghi("getconf ARG_MAX",{encoding:"utf-8"}),10);t=Math.floor(n*.5)}catch{}return await uhi({config:CLa(),cwd:ILa(),maxArgLength:t})?0:1}catch{return 1}}};var dhi={commands:[e_t,BCt,G0t]};var NBr={};sI(NBr,{SetVersionCommand:()=>GXe,default:()=>_hi});var mhi=Nt(el(),1),Chi=Nt(Bn(),1);$c();import{access as _La}from"node:fs/promises";import{writeFile as yLa}from"node:fs/promises";import{dirname as bLa}from"node:path";import{join as fhi}from"node:path";var ELa="package.json",SLa="yarn.lock",vLa="Package manifest was not found in current directory or its ancestors",phi="/unc/",BLa=/^\/([A-Za-z]:)(?=\/|$)/,wLa=/^([A-Za-z]:)(?=\/|$)/,TLa=e=>{if(!e.toLowerCase().startsWith(phi))return null;let[t,r,...n]=e.slice(phi.length).split("/");if(!t||!r)return null;let a=n.length>0?`/${n.join("/")}`:"";return[t,r,a]},RLa=e=>{if(!e.startsWith("\\\\")&&!e.startsWith("//"))return null;let[t,r,...n]=e.slice(2).replace(/\\/g,"/").split("/");if(!t||!r)return null;let a=n.length>0?`/${n.join("/")}`:"";return[t,r,a]},F0t=(e,t=process.platform)=>{if(t!=="win32")return e;let r=TLa(e);if(r){let[n,a,o]=r;return`\\\\${n}\\${a}${o.replace(/\//g,"\\")}`}return e.replace(BLa,"$1").replace(/\//g,"\\")},NLa=(e,t=process.platform)=>{if(t!=="win32")return e;let r=RLa(e);if(r){let[n,a,o]=r;return`/unc/${n}/${a}${o.replace(/\\/g,"/")}`}return e.replace(/\\/g,"/").replace(wLa,"/$1")},Ihi=async e=>{try{return await _La(e),!0}catch{return!1}},RBr=async e=>{let t=F0t(e);if(await Ihi(fhi(t,ELa)))return e;let r=NLa(bLa(t));if(r===e)throw new Error(vLa);return RBr(r)},hhi=async e=>{let t=fhi(F0t(e),SLa);await Ihi(t)||await yLa(t,"")};var GXe=class extends mhi.BaseCommand{static paths=[["set","version","atls"]];static usage=_C.Usage({description:"lock the Yarn version used by the project",details:"\n This command will get latest Atlantis bundle from [Atlantis Raijin repo](https://github.com/atls/raijin) and bump `@atls/code-runtime` dependency\n "});async execute(){let t=await RBr(this.context.cwd),r=process.cwd();await hhi(t);try{process.chdir(F0t(t));let n=["set","version"];n.push("https://raw.githubusercontent.com/atls/raijin/master/yarn/cli/dist/yarn.mjs");let a=await this.cli.run(n,{cwd:t}),o=["up","@atls/code-runtime"],l=await this.cli.run(o,{cwd:t}),A=await Chi.Configuration.find(t,this.context.plugins);return await A.triggerHook(f=>f.afterYarnVersionSet,A,{...this.context,cwd:t}),a||l}finally{process.chdir(r)}}};var _hi={commands:[GXe]};var nTr={};sI(nTr,{WorkspaceExportCommand:()=>l4e,default:()=>Y_i});var V_i=Nt(el(),1),P_i=Nt(el(),1),W_i=Nt(Bn(),1),O_i=Nt(Bn(),1),M_i=Nt(Bn(),1),H_i=Nt(Bn(),1);$c();var Z0t=Nt(no(),1),FXe=Nt(no(),1);var yhi=async(e,t,r)=>{let n=e.configuration.get("rcFilename"),a=FXe.ppath.join(e.cwd,n);await Z0t.xfs.existsPromise(a)&&(r.reportInfo(null,n),await Z0t.xfs.copyPromise(FXe.ppath.join(t,n),a,{overwrite:!0}))},bhi=async(e,t,r)=>{let n=e.configuration.get("yarnPath");if(!n)throw new Error("`yarnPath` is not set");let a=FXe.ppath.relative(e.cwd,n),o=FXe.ppath.join(t,a);r.reportInfo(null,a),await Z0t.xfs.copyPromise(o,n,{overwrite:!0})};var SRe={};sI(SRe,{IMAGE_PACK_NODE_LINKER:()=>rTr,pack:()=>FOa,resolveSupportedArchitectures:()=>L_i});var tTr=Nt(Bn(),1),D_i=Nt(Bn(),1),k_i=Nt(Bn(),1),x_i=Nt(no(),1),G_i=Nt(Bn(),1),F_i=Nt(no(),1),Z_i=Nt($he(),1);import{arch as R_i}from"node:os";var cCi=Nt(Bn(),1),lCi=Nt(Bn(),1),uCi=Nt(no(),1),gCi=Nt(no(),1),ACi=Nt(no(),1),hwr=Nt(Bn(),1),mwr=Nt(no(),1),dCi=Nt(no(),1),oyt=class e extends cCi.Cache{nodeLinker;parentCache;parentMirror=new Map;workspaceMutexes=new Map;static async find(t,r){let n=t.get("nodeLinker"),a=new e(t.get("cacheFolder"),{configuration:t,nodeLinker:n,parentCache:r});return await a.setup(),a}constructor(t,{configuration:r,nodeLinker:n,parentCache:a}){super(t,{configuration:r}),this.nodeLinker=n,this.parentCache=a}getLocatorMirrorPath(t){return this.parentMirror.get(hwr.structUtils.slugifyLocator(t))??null}async setup(){await super.setup();let t=await dCi.xfs.readdirPromise(this.parentCache.cwd,{withFileTypes:!0});for(let r of t){let n;r.isDirectory()||!(n=r.name.match(/^(.*)-[a-f\d]+\.zip$/i))||this.parentMirror.set(n[1],mwr.ppath.join(this.parentCache.cwd,r.name))}}async fetchPackageFromCache(t,r,{loader:n}){let a=new gCi.NodeFS,o=async()=>{let l=mwr.ppath.resolve(this.cwd,"../workspaces",hwr.structUtils.stringifyIdent(t)),f=(async()=>{if(!await a.existsPromise(l)){let C=await n();await a.copyPromise(l,ACi.PortablePath.root,{baseFs:C}),C.discardAndClose()}return l})();this.workspaceMutexes.set(t.locatorHash,f);try{return await f}finally{this.workspaceMutexes.delete(t.locatorHash)}};if(t.reference.startsWith(lCi.WorkspaceResolver.protocol)){for(let A;A=this.workspaceMutexes.get(t.locatorHash);)await A;let l=await o();return[new uCi.JailFS(l,{baseFs:a}),()=>{},null]}else return await super.fetchPackageFromCache(t,r,{loader:n})}};var b_i=Nt(Bn(),1),E_i=Nt(Bn(),1);var S_i=Nt(Bn(),1),zwr=Nt(no(),1),ame=Nt(no(),1),qwr=Nt($he(),1),ROa=Nt(f_i(),1);var Uwr=Nt(Bn(),1),myt=class{resolvers;constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Uwr.structUtils.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Uwr.structUtils.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};var h_i=Nt(Bn(),1),Cyt=Nt(Bn(),1),m_i=Nt(UC(),1),I_i=/^(?!v)[a-z0-9._-]+$/i,_yt=class{supportsDescriptor(t,r){return!!(h_i.semverUtils.validRange(t.range)||I_i.test(t.range))}supportsLocator(t,r){return!!(m_i.default.valid(t.reference)||I_i.test(t.reference))}shouldPersistResolution(t,r){return r.resolver.shouldPersistResolution(this.forwardLocator(t,r),r)}bindDescriptor(t,r,n){return n.resolver.bindDescriptor(this.forwardDescriptor(t,n),r,n)}getResolutionDependencies(t,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(t,r),r)}async getCandidates(t,r,n){return n.resolver.getCandidates(this.forwardDescriptor(t,n),r,n)}async getSatisfying(t,r,n,a){return a.resolver.getSatisfying(this.forwardDescriptor(t,a),r,n,a)}async resolve(t,r){let n=await r.resolver.resolve(this.forwardLocator(t,r),r);return Cyt.structUtils.renamePackage(n,t)}forwardDescriptor(t,r){return Cyt.structUtils.makeDescriptor(t,`${r.project.configuration.get("defaultProtocol")}${t.range}`)}forwardLocator(t,r){return Cyt.structUtils.makeLocator(t,`${r.project.configuration.get("defaultProtocol")}${t.reference}`)}};var yyt=class e{static protocol="virtual:";static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};var Kwr=Nt(Bn(),1),C_i=Nt(Bn(),1),__i=Nt(no(),1);var byt=class extends C_i.WorkspaceFetcher{constructor(r){super();this.originalProject=r}getLocalPath(r,n){return super.getLocalPath(r,this.rewriteOpts(r,n))}async fetch(r,n){if(r.reference.slice(Kwr.WorkspaceResolver.protocol.length)===".")return await super.fetch(r,n);let a=n.checksums.get(r.locatorHash)||null,[o,l]=await n.cache.fetchPackageFromCache(r,a,{loader:()=>this.packWorkspace(r)});return{packageFs:o,releaseFs:l,localPath:this.getLocalPath(r,n),prefixPath:__i.PortablePath.dot}}async packWorkspace(r){let n=this.originalProject.getWorkspaceByLocator(r);return await y_i(n,{compressionLevel:this.originalProject.configuration.get("compressionLevel"),stripComponents:1})}rewriteOpts(r,n){return r.reference.slice(Kwr.WorkspaceResolver.protocol.length)==="."?n:{...n,project:this.originalProject}}};var jwr=Nt(Bn(),1),Eyt=Nt(Bn(),1),Syt=class extends Eyt.WorkspaceResolver{constructor(r){super();this.originalProject=r}supportsDescriptor(r,n){return super.supportsDescriptor(r,this.rewriteOpts(r,n))}supportsLocator(r,n){return super.supportsLocator(r,this.rewriteOpts(r,n))}shouldPersistResolution(r,n){return super.shouldPersistResolution(r,this.rewriteOpts(r,n))}bindDescriptor(r,n,a){return super.bindDescriptor(r,n,this.rewriteOpts(r,a))}getResolutionDependencies(r,n){return super.getResolutionDependencies(r,this.rewriteOpts(r,n))}async getCandidates(r,n,a){return await super.getCandidates(r,n,this.rewriteOpts(r,a))}async getSatisfying(r,n,a){return await super.getSatisfying(r,n,this.rewriteOpts(r,a))}async resolve(r,n){let a=r.reference.slice(Eyt.WorkspaceResolver.protocol.length),{project:o}=this.rewriteOpts(r,n),l=o.getWorkspaceByCwd(a);return{...r,version:l.manifest.version||"0.0.0",languageName:"unknown",linkType:a==="."?jwr.LinkType.SOFT:jwr.LinkType.HARD,dependencies:l.manifest.dependencies,peerDependencies:l.manifest.peerDependencies,dependenciesMeta:l.manifest.dependenciesMeta,peerDependenciesMeta:l.manifest.peerDependenciesMeta,bin:l.manifest.bin}}rewriteOpts(r,n){return("descriptorHash"in r?r.range:r.reference).slice(Eyt.WorkspaceResolver.protocol.length)==="."?n:{...n,project:this.originalProject}}};var v_i=e=>{let t=[];for(let r of e.configuration.plugins.values())for(let n of r.fetchers||[])t.push(new n);return new E_i.MultiFetcher([new b_i.VirtualFetcher,new byt(e),...t])},B_i=e=>{let t=[];for(let r of e.configuration.plugins.values())for(let n of r.resolvers||[])t.push(new n);return new myt([new yyt,new Syt(e),new _yt,...t])};var w_i=async e=>{let t=await ame.xfs.mktempPromise(),r=await qwr.packUtils.genPackStream(e),n=zwr.ppath.join(t,"package.tgz"),a=ame.xfs.createWriteStream(n);return r.pipe(a),await new Promise(o=>{a.on("finish",o)}),ame.xfs.readFilePromise(n)},y_i=async(e,t)=>await ame.xfs.mktempPromise(async r=>{let n=await qwr.packUtils.genPackStream(e),a=zwr.ppath.join(r,"package.tgz"),o=ame.xfs.createWriteStream(a);n.pipe(o),await new Promise(A=>{o.on("finish",A)});let l=await ame.xfs.readFilePromise(a);return await S_i.tgzUtils.convertToZip(l,t)});var $wr=Nt(no(),1),eTr=Nt(no(),1),T_i=async e=>{let t=$wr.ppath.join(e,".yarn","releases");if(!await eTr.xfs.existsPromise(t))return;let r=(await eTr.xfs.readdirPromise(t)).sort().find(n=>n.endsWith(".cjs")||n.endsWith(".mjs"));if(r)return $wr.ppath.join(".yarn","releases",r)};var NOa="linux",DOa="glibc",rTr="pnp",kOa={386:"ia32",amd64:"x64",mips64le:"mips64el",ppc64le:"ppc64"},xOa={windows:"win32"},N_i=e=>{if(e)return kOa[e]??e},GOa=e=>xOa[e]??e,L_i=e=>{let[t,r]=e?.split("/").slice(0,2)??[],n=GOa(t||NOa);return new Map([["os",[n]],["cpu",[N_i(r)??N_i(R_i())??R_i()]],["libc",n==="linux"?[DOa]:[]]])},FOa=async(e,t,r,n,a,o={})=>{process.env.IMAGE_PACK=!0;let l=await k_i.Cache.find(e,{immutable:!0});await t.restoreInstallState(),await Z_i.packUtils.prepareForPack(r,{report:n},async()=>{r.manifest.devDependencies.clear();let A=new x_i.CwdFS(a),f=await w_i(r);await G_i.tgzUtils.extractArchiveTo(f,A,{stripComponents:1}),await yhi(t,a,n),t.configuration.get("yarnPath")&&await bhi(t,a,n);let I=tTr.Configuration.create(a,a,e.plugins);I.values.set("compressionLevel",t.configuration.get("compressionLevel")),I.values.set("enableGlobalCache",!1),I.values.set("enableMirror",!1),I.values.set("globalFolder",e.get("globalFolder")),I.values.set("nodeLinker",rTr),I.values.set("pnpEnableEsmLoader",e.get("pnpEnableEsmLoader")),o.platform&&I.values.set("supportedArchitectures",L_i(o.platform)),I.values.set("cacheFolder",F_i.ppath.join(a,".yarn/packages")),I.values.set("preferAggregateCacheInfo",!0),await tTr.Configuration.updateConfiguration(a,{cacheFolder:".yarn/packages",compressionLevel:I.get("compressionLevel"),enableGlobalCache:I.get("enableGlobalCache"),enableNetwork:I.get("enableNetwork"),enableMirror:I.get("enableMirror"),globalFolder:".yarn/berry",nodeLinker:rTr,yarnPath:await T_i(a)}),await I.getPackageExtensions();let{project:C,workspace:b}=await D_i.Project.find(I,a);if(!b)throw new Error("Workspace not found");b.manifest.dependencies=r.manifest.dependencies,b.manifest.resolutions=t.topLevelWorkspace.manifest.resolutions,b.manifest.devDependencies.clear(),await C.install({cache:await oyt.find(I,l),fetcher:v_i(t),resolver:B_i(t),persistProject:!0,report:n})})};var ZOa=Nt($he(),1);var l4e=class extends V_i.BaseCommand{static paths=[["export"]];destination=Su.String("-d,--destination",{required:!0});async execute(){let t=await W_i.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await O_i.Project.find(t,this.context.cwd);if(!n)throw new P_i.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await M_i.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await SRe.pack(t,r,n,o,this.destination),o.reportInfo(null,`Workspace ${n.manifest.name?H_i.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} exported to ${this.destination}`)})).exitCode()}};var Y_i={commands:[l4e]};var kkr={};sI(kkr,{FormatCommand:()=>tUe,default:()=>MNi});var VNi=Nt(el(),1),PNi=Nt(Bn(),1),WNi=Nt(Bn(),1);$c();var ONi=Nt(Al(),1);var xyt=Nt(Al(),1),i0i=Nt(Al(),1);var vyt=class{constructor(t){this.frames=t}get topFrame(){return this.frames.find(t=>t.file)}};var Q_i=Nt(Fpt(),1);var X_i=e=>{let t=e.split(` -`),r=process.cwd(),n=new Q_i.default({cwd:r}),a=t.reduce((o,l)=>{let A=n.parseLine(l.trim());return A&&o.push(A),o},[]);return new vyt(a)};var n0i=Nt(Al(),1),wRe=Nt(Al(),1);var Dyt=Nt(Ec(),1);var e0i=Nt(Al(),1),Ryt=Nt(Ec(),1);import{basename as POa}from"node:path";import{isAbsolute as WOa}from"node:path";import{relative as OOa}from"node:path";var sTr=Nt(Ec(),1),Tyt=Nt(Al(),1),lme=Nt(mTe(),1);var yy="\x1B[",u4e="\x1B]",vRe="\x07",Byt=";",J_i=process.env.TERM_PROGRAM==="Apple_Terminal",SC={};SC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?yy+(e+1)+"G":yy+(t+1)+";"+(e+1)+"H"};SC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=yy+-e+"D":e>0&&(r+=yy+e+"C"),t<0?r+=yy+-t+"A":t>0&&(r+=yy+t+"B"),r};SC.cursorUp=(e=1)=>yy+e+"A";SC.cursorDown=(e=1)=>yy+e+"B";SC.cursorForward=(e=1)=>yy+e+"C";SC.cursorBackward=(e=1)=>yy+e+"D";SC.cursorLeft=yy+"G";SC.cursorSavePosition=J_i?"\x1B7":yy+"s";SC.cursorRestorePosition=J_i?"\x1B8":yy+"u";SC.cursorGetPosition=yy+"6n";SC.cursorNextLine=yy+"E";SC.cursorPrevLine=yy+"F";SC.cursorHide=yy+"?25l";SC.cursorShow=yy+"?25h";SC.eraseLines=e=>{let t="";for(let r=0;r[u4e,"8",Byt,Byt,t,vRe,e,u4e,"8",Byt,Byt,vRe].join("");SC.image=(e,t={})=>{let r=`${u4e}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+vRe};SC.iTerm={setCwd:(e=process.cwd())=>`${u4e}50;CurrentDir=${e}${vRe}`,annotation:(e,t={})=>{let r=`${u4e}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+vRe}};var U_i=SC;var wyt=Nt(z_i(),1);function cme(e,t,{target:r="stdout",...n}={}){return wyt.default[r]?U_i.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}cme.isSupported=wyt.default.stdout;cme.stderr=(e,t,r={})=>cme(e,t,{target:"stderr",...r});cme.stderr.isSupported=wyt.default.stderr;var q_i=({children:e,url:t,fallback:r=!0})=>sTr.default.createElement(Tyt.Transform,{transform:n=>cme(n,t,{fallback:r})},sTr.default.createElement(Tyt.Text,null,e));q_i.propTypes={children:lme.default.oneOfType([lme.default.arrayOf(lme.default.node),lme.default.node]).isRequired,url:lme.default.string.isRequired,fallback:lme.default.bool};var $_i=q_i;var Nyt=Nt(Pc(),1),t0i=({url:e,cwd:t=process.cwd(),column:r=0,line:n=0})=>{let a=(0,Ryt.useMemo)(()=>{try{return new URL(e).pathname}catch{return e}},[e]),o=(0,Ryt.useMemo)(()=>WOa(a)?OOa(t,a):a,[a]),l=(0,Ryt.useMemo)(()=>o.includes("/node_modules/")?POa(o):o,[o]);return(0,Nyt.jsx)($_i,{url:e,children:(0,Nyt.jsxs)(e0i.Text,{color:"gray",children:[l,":",n,":",r]})})};import{readFileSync as MOa}from"node:fs";import{fileURLToPath as HOa}from"node:url";var r0i=e=>{if(e.sourceMap)return e.sourceMap.payload.sourcesContent[0];if(e.file)try{return MOa(e.file.startsWith("file:/")?HOa(new URL(e.file)):e.file,"utf-8")}catch{return null}return null};var ej=Nt(Pc(),1),kyt=({children:e,cwd:t})=>{let r=(0,Dyt.useMemo)(()=>X_i(e),[e]),n=(0,Dyt.useMemo)(()=>r.topFrame||r.frames.at(0),[r]),a=(0,Dyt.useMemo)(()=>n?r0i(n):null,[n]);return(0,ej.jsxs)(wRe.Box,{flexDirection:"column",flexGrow:1,children:[!!a&&!!r.topFrame?.line&&(0,ej.jsx)(wRe.Box,{marginBottom:1,children:(0,ej.jsx)(d8,{line:r.topFrame.line,column:r.topFrame.column,children:a})}),r.frames.map(o=>(0,ej.jsxs)(wRe.Box,{flexDirection:"row",children:[(0,ej.jsx)(wRe.Box,{flexBasis:"30%",children:(0,ej.jsx)(n0i.Text,{children:o.function})}),(0,ej.jsx)(wRe.Box,{flexBasis:"70%",justifyContent:"flex-end",children:!!o.file&&(0,ej.jsx)(t0i,{cwd:t,url:o.file,line:o.line,column:o.column})})]},OW()))]})};var zae=Nt(Pc(),1),YOa=({children:e})=>e?(0,zae.jsx)(xyt.Box,{marginBottom:1,children:(0,zae.jsx)(i0i.Text,{bold:!0,color:"red",children:e})}):null,Fk=({error:e,cwd:t})=>(0,zae.jsxs)(xyt.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,children:[(0,zae.jsx)(YOa,{children:e.message}),!!e.stack&&(0,zae.jsx)(xyt.Box,{children:(0,zae.jsx)(kyt,{cwd:t,children:e.stack})})]});var m4e=Nt(Al(),1),Y0i=Nt(Ec(),1),Q0i=Nt(Ec(),1);var aTr=Nt(Al(),1),cTr=Nt(Ec(),1);var A4e=Nt(Ec(),1),C3a=Nt(oTr(),1);var c0i={info:"blue",success:"green",error:"red",warning:"yellow"},i3a={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:c0i[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:c0i[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=kI.info),e==="success"&&(t=kI.tick),e==="error"&&(t=kI.cross),e==="warning"&&(t=kI.warning),{icon:t}}},l0i=i3a;var s3a={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},u0i=s3a;var o3a={styles:{input:({isFocused:e})=>({dimColor:!e})}},g0i=o3a;var a3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},A0i=a3a;var c3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},d0i=c3a;var l3a={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:kI.square,remainingCharacter:kI.squareLightShade})},p0i=l3a;var u3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},f0i=u3a;var g3a={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},I0i=g3a;var A3a={success:"green",error:"red",warning:"yellow",info:"blue"},d3a={success:kI.tick,error:kI.cross,warning:kI.warning,info:kI.info},p3a={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:A3a[e]}),message:()=>({})},config:({variant:e})=>({icon:d3a[e]})},h0i=p3a;var f3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:kI.line})},m0i=f3a;var I3a={styles:{value:()=>({})}},C0i=I3a;var h3a={styles:{value:()=>({})}},_0i=h3a;var m3a={styles:{value:()=>({})}},y0i=m3a;var _3a={components:{Alert:l0i,Badge:u0i,ConfirmInput:g0i,MultiSelect:A0i,OrderedList:d0i,ProgressBar:p0i,Select:f0i,Spinner:I0i,StatusMessage:h0i,UnorderedList:m0i,TextInput:C0i,EmailInput:_0i,PasswordInput:y0i}},y3a=(0,A4e.createContext)(_3a);var xS=e=>(0,A4e.useContext)(y3a).components[e];function RG({children:e,color:t="magenta"}){let{styles:r}=xS("Badge"),n=e;return typeof e=="string"&&(n=e.toUpperCase()),cTr.default.createElement(aTr.Text,{...r.container({color:t})}," ",cTr.default.createElement(aTr.Text,{...r.label()},n)," ")}var b3a=Nt(Ec(),1),b0i=Nt(Al(),1);var B0i=Nt(Al(),1),cee=Nt(Ec(),1);var p4e=Nt(Al(),1),RRe=Nt(Ec(),1);var E0i=Nt(Ec(),1);var d4e=kI.line;var Gyt=(0,E0i.createContext)({marker:d4e});function S0i({children:e}){let{marker:t}=(0,RRe.useContext)(Gyt),{styles:r}=xS("UnorderedList");return RRe.default.createElement(p4e.Box,{...r.listItem()},RRe.default.createElement(p4e.Text,{...r.marker()},t),RRe.default.createElement(p4e.Box,{...r.content()},e))}var v0i=Nt(Ec(),1),lTr=(0,v0i.createContext)({depth:0});function E3a({children:e}){let{depth:t}=(0,cee.useContext)(lTr),{styles:r,config:n}=xS("UnorderedList"),a=(0,cee.useMemo)(()=>({depth:t+1}),[t]),o=(0,cee.useMemo)(()=>{let{marker:l}=n();return typeof l=="string"?{marker:l}:Array.isArray(l)?{marker:l[t]??l.at(-1)??d4e}:{marker:d4e}},[n,t]);return cee.default.createElement(lTr.Provider,{value:a},cee.default.createElement(Gyt.Provider,{value:o},cee.default.createElement(B0i.Box,{...r.list()},e)))}E3a.Item=S0i;var w3a=Nt(Ec(),1),T0i=Nt(Al(),1);var S3a=Nt(Ec(),1),w0i=Nt(Al(),1);var f4e=Nt(Ec(),1);var B3a=Nt(Al(),1);var ume=Nt(Ec(),1),gme=Nt(Al(),1);function JM({value:e}){let[t,r]=(0,ume.useState)(0),[n,a]=(0,ume.useState)(null);if(n){let C=(0,gme.measureElement)(n);C.width!==t&&r(C.width)}let o=Math.min(100,Math.max(0,e)),l=Math.round(o/100*t),A=t-l,{styles:f,config:I}=xS("ProgressBar");return ume.default.createElement(gme.Box,{ref:a,...f.container()},l>0&&ume.default.createElement(gme.Text,{...f.completed()},I().completedCharacter.repeat(l)),A>0&&ume.default.createElement(gme.Text,{...f.remaining()},I().remainingCharacter.repeat(A)))}var N3a=Nt(Ec(),1),N0i=Nt(Al(),1);var T3a=Nt(Ec(),1),R0i=Nt(Al(),1);var I4e=Nt(Ec(),1);var R3a=Nt(Al(),1);var D3a=Nt(Ec(),1),k0i=Nt(Al(),1);var D0i=Nt(Ec(),1);var G3a=Nt(Ec(),1),F3a=Nt(Al(),1);var Fyt=Nt(Ec(),1);var k3a=Nt(Ec(),1),x3a=Nt(Al(),1);var Kvu=fp.inverse(" ");var F0i=Nt(Al(),1),jX=Nt(Ec(),1);var h4e=Nt(Al(),1),NRe=Nt(Ec(),1);var x0i=Nt(Ec(),1);var Zyt=(0,x0i.createContext)({marker:kI.line});function Lyt({children:e}){let{marker:t}=(0,NRe.useContext)(Zyt),{styles:r}=xS("OrderedList");return NRe.default.createElement(h4e.Box,{...r.listItem()},NRe.default.createElement(h4e.Text,{...r.marker()},t),NRe.default.createElement(h4e.Box,{...r.content()},e))}var G0i=Nt(Ec(),1),uTr=(0,G0i.createContext)({marker:""});function Z3a({children:e}){let{marker:t}=(0,jX.useContext)(uTr),{styles:r}=xS("OrderedList"),n=0;for(let o of jX.default.Children.toArray(e))!(0,jX.isValidElement)(o)||o.type!==Lyt||n++;let a=String(n).length;return jX.default.createElement(F0i.Box,{...r.list()},jX.default.Children.map(e,(o,l)=>{if(!(0,jX.isValidElement)(o)||o.type!==Lyt)return o;let A=`${String(l+1).padStart(a)}.`,f=`${t}${A}`;return jX.default.createElement(uTr.Provider,{value:{marker:f}},jX.default.createElement(Zyt.Provider,{value:{marker:f}},o))}))}Z3a.Item=Lyt;var P3a=Nt(Ec(),1),W3a=Nt(Al(),1);var gTr=Nt(Ec(),1);var L3a=Nt(Ec(),1),V3a=Nt(Al(),1);var _Bu=fp.inverse(" ");var O3a=Nt(Ec(),1),Z0i=Nt(Al(),1);var M3a=Nt(Ec(),1),L0i=Nt(Al(),1);var Q3a=Nt(Ec(),1),X3a=Nt(Al(),1);var Vyt=Nt(Ec(),1);var H3a=Nt(Ec(),1),Y3a=Nt(Al(),1);var WBu=fp.inverse(" ");var V0i=Nt(Ec(),1),ATr=Nt(Ec(),1),W0i=Nt(Pc(),1),P0i=({formatter:e})=>{let[t,r]=(0,ATr.useState)(0),[n,a]=(0,ATr.useState)(0);return(0,V0i.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("format:end",l),e.on("end",A),()=>{e.off("start",o),e.off("format:end",l),e.off("end",A)}},[e,t,r,a]),(0,W0i.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as O0i}from"node:path";var DRe=Nt(Al(),1),AO=Nt(Al(),1),M0i=Nt(Ec(),1),Pyt=Nt(Ec(),1);var GS=Nt(Pc(),1),J3a=({changed:e})=>e?(0,GS.jsx)(AO.Text,{color:"green",children:kI.tick}):(0,GS.jsx)(AO.Text,{color:"white",children:kI.circleDotted}),U3a=({changed:e,children:t})=>e?(0,GS.jsx)(AO.Text,{color:"white",children:t}):(0,GS.jsx)(AO.Text,{color:"gray",children:t}),H0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Pyt.useState)(void 0),[a,o]=(0,Pyt.useState)(0),[l,A]=(0,Pyt.useState)(0);return(0,M0i.useEffect)(()=>{let f=b=>{o(b.files.length)},I=b=>{n({changed:!1,file:O0i(e,b.file)})},C=b=>{n({changed:b.changed,file:O0i(e,b.file)}),b.changed&&A(E=>E+1)};return t.on("start",f),t.on("format:start",I),t.on("format:end",C),()=>{t.off("start",f),t.off("format:start",I),t.off("format:end",C)}},[t,n,o,A]),r?(0,GS.jsxs)(DRe.Box,{flexDirection:"row",width:"100%",children:[(0,GS.jsxs)(DRe.Box,{flexGrow:1,children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(U3a,{changed:r.changed,children:r.file})]}),(0,GS.jsx)(DRe.Box,{flexDirection:"row",children:(0,GS.jsxs)(DRe.Box,{children:[(0,GS.jsx)(J3a,{changed:r.changed}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"green",children:[l," Formatted"]}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"white",children:[a," Files"]}),(0,GS.jsx)(AO.Text,{children:" "})]})})]}):(0,GS.jsxs)(DRe.Box,{flexDirection:"row",children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(AO.Text,{color:"white",children:"Loading files..."})]})};var qae=Nt(Pc(),1),X0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Y0i.useState)(!1);return(0,Q0i.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,qae.jsx)(m4e.Box,{position:"relative",height:7,children:(0,qae.jsxs)(m4e.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,qae.jsx)(m4e.Box,{children:(0,qae.jsx)(H0i,{cwd:e,formatter:t})}),(0,qae.jsx)(m4e.Box,{marginTop:1,marginBottom:1,children:(0,qae.jsx)(P0i,{formatter:t})})]})})};import Lgc from"node:events";import{writeFile as Vgc}from"node:fs/promises";import{readFile as ZNi}from"node:fs/promises";import{relative as Pgc}from"node:path";import{join as Wgc}from"node:path";var FRe={};sI(FRe,{default:()=>cMa,parsers:()=>GRe});var K3a=Object.create,mTr=Object.defineProperty,j3a=Object.getOwnPropertyDescriptor,z3a=Object.getOwnPropertyNames,q3a=Object.getPrototypeOf,$3a=Object.prototype.hasOwnProperty,e5a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),t5a=(e,t)=>{for(var r in t)mTr(e,r,{get:t[r],enumerable:!0})},r5a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of z3a(t))!$3a.call(e,a)&&a!==r&&mTr(e,a,{get:()=>t[a],enumerable:!(n=j3a(t,a))||n.enumerable});return e},iyi=(e,t,r)=>(r=e!=null?K3a(q3a(e)):{},r5a(t||!e||!e.__esModule?mTr(r,"default",{value:e,enumerable:!0}):r,e)),syi=e5a(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(se,O){if(se==null)return{};var K={};for(var we in se)if({}.hasOwnProperty.call(se,we)){if(O.includes(we))continue;K[we]=se[we]}return K}var r=class{constructor(se,O,K){this.line=void 0,this.column=void 0,this.index=void 0,this.line=se,this.column=O,this.index=K}},n=class{constructor(se,O){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=se,this.end=O}};function a(se,O){let{line:K,column:we,index:gt}=se;return new r(K,we+O,gt+O)}var o="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",l={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:o},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:o}},A={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},f=se=>se.type==="UpdateExpression"?A.UpdateExpression[`${se.prefix}`]:A[se.type],I={AccessorIsGenerator:({kind:se})=>`A ${se}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:se})=>`Missing initializer in ${se} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:se})=>`\`${se}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:se})=>`'import.${se}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:se,exportName:O})=>`A string literal cannot be used as an exported binding without \`from\`. +`),r=process.cwd(),n=new Q_i.default({cwd:r}),a=t.reduce((o,l)=>{let A=n.parseLine(l.trim());return A&&o.push(A),o},[]);return new vyt(a)};var n0i=Nt(Al(),1),wRe=Nt(Al(),1);var Dyt=Nt(Ec(),1);var e0i=Nt(Al(),1),Ryt=Nt(Ec(),1);import{basename as POa}from"node:path";import{isAbsolute as WOa}from"node:path";import{relative as OOa}from"node:path";var sTr=Nt(Ec(),1),Tyt=Nt(Al(),1),lme=Nt(mTe(),1);var yy="\x1B[",u4e="\x1B]",vRe="\x07",Byt=";",J_i=process.env.TERM_PROGRAM==="Apple_Terminal",SC={};SC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?yy+(e+1)+"G":yy+(t+1)+";"+(e+1)+"H"};SC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=yy+-e+"D":e>0&&(r+=yy+e+"C"),t<0?r+=yy+-t+"A":t>0&&(r+=yy+t+"B"),r};SC.cursorUp=(e=1)=>yy+e+"A";SC.cursorDown=(e=1)=>yy+e+"B";SC.cursorForward=(e=1)=>yy+e+"C";SC.cursorBackward=(e=1)=>yy+e+"D";SC.cursorLeft=yy+"G";SC.cursorSavePosition=J_i?"\x1B7":yy+"s";SC.cursorRestorePosition=J_i?"\x1B8":yy+"u";SC.cursorGetPosition=yy+"6n";SC.cursorNextLine=yy+"E";SC.cursorPrevLine=yy+"F";SC.cursorHide=yy+"?25l";SC.cursorShow=yy+"?25h";SC.eraseLines=e=>{let t="";for(let r=0;r[u4e,"8",Byt,Byt,t,vRe,e,u4e,"8",Byt,Byt,vRe].join("");SC.image=(e,t={})=>{let r=`${u4e}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+vRe};SC.iTerm={setCwd:(e=process.cwd())=>`${u4e}50;CurrentDir=${e}${vRe}`,annotation:(e,t={})=>{let r=`${u4e}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+vRe}};var U_i=SC;var wyt=Nt(z_i(),1);function cme(e,t,{target:r="stdout",...n}={}){return wyt.default[r]?U_i.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}cme.isSupported=wyt.default.stdout;cme.stderr=(e,t,r={})=>cme(e,t,{target:"stderr",...r});cme.stderr.isSupported=wyt.default.stderr;var q_i=({children:e,url:t,fallback:r=!0})=>sTr.default.createElement(Tyt.Transform,{transform:n=>cme(n,t,{fallback:r})},sTr.default.createElement(Tyt.Text,null,e));q_i.propTypes={children:lme.default.oneOfType([lme.default.arrayOf(lme.default.node),lme.default.node]).isRequired,url:lme.default.string.isRequired,fallback:lme.default.bool};var $_i=q_i;var Nyt=Nt(Pc(),1),t0i=({url:e,cwd:t=process.cwd(),column:r=0,line:n=0})=>{let a=(0,Ryt.useMemo)(()=>{try{return new URL(e).pathname}catch{return e}},[e]),o=(0,Ryt.useMemo)(()=>WOa(a)?OOa(t,a):a,[a]),l=(0,Ryt.useMemo)(()=>o.includes("/node_modules/")?POa(o):o,[o]);return(0,Nyt.jsx)($_i,{url:e,children:(0,Nyt.jsxs)(e0i.Text,{color:"gray",children:[l,":",n,":",r]})})};import{readFileSync as MOa}from"node:fs";import{fileURLToPath as HOa}from"node:url";var r0i=e=>{if(e.sourceMap)return e.sourceMap.payload.sourcesContent[0];if(e.file)try{return MOa(e.file.startsWith("file:/")?HOa(new URL(e.file)):e.file,"utf-8")}catch{return null}return null};var ej=Nt(Pc(),1),kyt=({children:e,cwd:t})=>{let r=(0,Dyt.useMemo)(()=>X_i(e),[e]),n=(0,Dyt.useMemo)(()=>r.topFrame||r.frames.at(0),[r]),a=(0,Dyt.useMemo)(()=>n?r0i(n):null,[n]);return(0,ej.jsxs)(wRe.Box,{flexDirection:"column",flexGrow:1,children:[!!a&&!!r.topFrame?.line&&(0,ej.jsx)(wRe.Box,{marginBottom:1,children:(0,ej.jsx)(d8,{line:r.topFrame.line,column:r.topFrame.column,children:a})}),r.frames.map(o=>(0,ej.jsxs)(wRe.Box,{flexDirection:"row",children:[(0,ej.jsx)(wRe.Box,{flexBasis:"30%",children:(0,ej.jsx)(n0i.Text,{children:o.function})}),(0,ej.jsx)(wRe.Box,{flexBasis:"70%",justifyContent:"flex-end",children:!!o.file&&(0,ej.jsx)(t0i,{cwd:t,url:o.file,line:o.line,column:o.column})})]},OW()))]})};var zae=Nt(Pc(),1),YOa=({children:e})=>e?(0,zae.jsx)(xyt.Box,{marginBottom:1,children:(0,zae.jsx)(i0i.Text,{bold:!0,color:"red",children:e})}):null,Fk=({error:e,cwd:t})=>(0,zae.jsxs)(xyt.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,children:[(0,zae.jsx)(YOa,{children:e.message}),!!e.stack&&(0,zae.jsx)(xyt.Box,{children:(0,zae.jsx)(kyt,{cwd:t,children:e.stack})})]});var m4e=Nt(Al(),1),Y0i=Nt(Ec(),1),Q0i=Nt(Ec(),1);var aTr=Nt(Al(),1),cTr=Nt(Ec(),1);var A4e=Nt(Ec(),1),C3a=Nt(oTr(),1);var c0i={info:"blue",success:"green",error:"red",warning:"yellow"},i3a={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:c0i[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:c0i[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=kI.info),e==="success"&&(t=kI.tick),e==="error"&&(t=kI.cross),e==="warning"&&(t=kI.warning),{icon:t}}},l0i=i3a;var s3a={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},u0i=s3a;var o3a={styles:{input:({isFocused:e})=>({dimColor:!e})}},g0i=o3a;var a3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},A0i=a3a;var c3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},d0i=c3a;var l3a={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:kI.square,remainingCharacter:kI.squareLightShade})},p0i=l3a;var u3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},f0i=u3a;var g3a={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},I0i=g3a;var A3a={success:"green",error:"red",warning:"yellow",info:"blue"},d3a={success:kI.tick,error:kI.cross,warning:kI.warning,info:kI.info},p3a={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:A3a[e]}),message:()=>({})},config:({variant:e})=>({icon:d3a[e]})},h0i=p3a;var f3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:kI.line})},m0i=f3a;var I3a={styles:{value:()=>({})}},C0i=I3a;var h3a={styles:{value:()=>({})}},_0i=h3a;var m3a={styles:{value:()=>({})}},y0i=m3a;var _3a={components:{Alert:l0i,Badge:u0i,ConfirmInput:g0i,MultiSelect:A0i,OrderedList:d0i,ProgressBar:p0i,Select:f0i,Spinner:I0i,StatusMessage:h0i,UnorderedList:m0i,TextInput:C0i,EmailInput:_0i,PasswordInput:y0i}},y3a=(0,A4e.createContext)(_3a);var xS=e=>(0,A4e.useContext)(y3a).components[e];function RG({children:e,color:t="magenta"}){let{styles:r}=xS("Badge"),n=e;return typeof e=="string"&&(n=e.toUpperCase()),cTr.default.createElement(aTr.Text,{...r.container({color:t})}," ",cTr.default.createElement(aTr.Text,{...r.label()},n)," ")}var b3a=Nt(Ec(),1),b0i=Nt(Al(),1);var B0i=Nt(Al(),1),cee=Nt(Ec(),1);var p4e=Nt(Al(),1),RRe=Nt(Ec(),1);var E0i=Nt(Ec(),1);var d4e=kI.line;var Gyt=(0,E0i.createContext)({marker:d4e});function S0i({children:e}){let{marker:t}=(0,RRe.useContext)(Gyt),{styles:r}=xS("UnorderedList");return RRe.default.createElement(p4e.Box,{...r.listItem()},RRe.default.createElement(p4e.Text,{...r.marker()},t),RRe.default.createElement(p4e.Box,{...r.content()},e))}var v0i=Nt(Ec(),1),lTr=(0,v0i.createContext)({depth:0});function E3a({children:e}){let{depth:t}=(0,cee.useContext)(lTr),{styles:r,config:n}=xS("UnorderedList"),a=(0,cee.useMemo)(()=>({depth:t+1}),[t]),o=(0,cee.useMemo)(()=>{let{marker:l}=n();return typeof l=="string"?{marker:l}:Array.isArray(l)?{marker:l[t]??l.at(-1)??d4e}:{marker:d4e}},[n,t]);return cee.default.createElement(lTr.Provider,{value:a},cee.default.createElement(Gyt.Provider,{value:o},cee.default.createElement(B0i.Box,{...r.list()},e)))}E3a.Item=S0i;var w3a=Nt(Ec(),1),T0i=Nt(Al(),1);var S3a=Nt(Ec(),1),w0i=Nt(Al(),1);var f4e=Nt(Ec(),1);var B3a=Nt(Al(),1);var ume=Nt(Ec(),1),gme=Nt(Al(),1);function JM({value:e}){let[t,r]=(0,ume.useState)(0),[n,a]=(0,ume.useState)(null);if(n){let C=(0,gme.measureElement)(n);C.width!==t&&r(C.width)}let o=Math.min(100,Math.max(0,e)),l=Math.round(o/100*t),A=t-l,{styles:f,config:I}=xS("ProgressBar");return ume.default.createElement(gme.Box,{ref:a,...f.container()},l>0&&ume.default.createElement(gme.Text,{...f.completed()},I().completedCharacter.repeat(l)),A>0&&ume.default.createElement(gme.Text,{...f.remaining()},I().remainingCharacter.repeat(A)))}var N3a=Nt(Ec(),1),N0i=Nt(Al(),1);var T3a=Nt(Ec(),1),R0i=Nt(Al(),1);var I4e=Nt(Ec(),1);var R3a=Nt(Al(),1);var D3a=Nt(Ec(),1),k0i=Nt(Al(),1);var D0i=Nt(Ec(),1);var G3a=Nt(Ec(),1),F3a=Nt(Al(),1);var Fyt=Nt(Ec(),1);var k3a=Nt(Ec(),1),x3a=Nt(Al(),1);var jvu=fp.inverse(" ");var F0i=Nt(Al(),1),jX=Nt(Ec(),1);var h4e=Nt(Al(),1),NRe=Nt(Ec(),1);var x0i=Nt(Ec(),1);var Zyt=(0,x0i.createContext)({marker:kI.line});function Lyt({children:e}){let{marker:t}=(0,NRe.useContext)(Zyt),{styles:r}=xS("OrderedList");return NRe.default.createElement(h4e.Box,{...r.listItem()},NRe.default.createElement(h4e.Text,{...r.marker()},t),NRe.default.createElement(h4e.Box,{...r.content()},e))}var G0i=Nt(Ec(),1),uTr=(0,G0i.createContext)({marker:""});function Z3a({children:e}){let{marker:t}=(0,jX.useContext)(uTr),{styles:r}=xS("OrderedList"),n=0;for(let o of jX.default.Children.toArray(e))!(0,jX.isValidElement)(o)||o.type!==Lyt||n++;let a=String(n).length;return jX.default.createElement(F0i.Box,{...r.list()},jX.default.Children.map(e,(o,l)=>{if(!(0,jX.isValidElement)(o)||o.type!==Lyt)return o;let A=`${String(l+1).padStart(a)}.`,f=`${t}${A}`;return jX.default.createElement(uTr.Provider,{value:{marker:f}},jX.default.createElement(Zyt.Provider,{value:{marker:f}},o))}))}Z3a.Item=Lyt;var P3a=Nt(Ec(),1),W3a=Nt(Al(),1);var gTr=Nt(Ec(),1);var L3a=Nt(Ec(),1),V3a=Nt(Al(),1);var yBu=fp.inverse(" ");var O3a=Nt(Ec(),1),Z0i=Nt(Al(),1);var M3a=Nt(Ec(),1),L0i=Nt(Al(),1);var Q3a=Nt(Ec(),1),X3a=Nt(Al(),1);var Vyt=Nt(Ec(),1);var H3a=Nt(Ec(),1),Y3a=Nt(Al(),1);var OBu=fp.inverse(" ");var V0i=Nt(Ec(),1),ATr=Nt(Ec(),1),W0i=Nt(Pc(),1),P0i=({formatter:e})=>{let[t,r]=(0,ATr.useState)(0),[n,a]=(0,ATr.useState)(0);return(0,V0i.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("format:end",l),e.on("end",A),()=>{e.off("start",o),e.off("format:end",l),e.off("end",A)}},[e,t,r,a]),(0,W0i.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as O0i}from"node:path";var DRe=Nt(Al(),1),AO=Nt(Al(),1),M0i=Nt(Ec(),1),Pyt=Nt(Ec(),1);var GS=Nt(Pc(),1),J3a=({changed:e})=>e?(0,GS.jsx)(AO.Text,{color:"green",children:kI.tick}):(0,GS.jsx)(AO.Text,{color:"white",children:kI.circleDotted}),U3a=({changed:e,children:t})=>e?(0,GS.jsx)(AO.Text,{color:"white",children:t}):(0,GS.jsx)(AO.Text,{color:"gray",children:t}),H0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Pyt.useState)(void 0),[a,o]=(0,Pyt.useState)(0),[l,A]=(0,Pyt.useState)(0);return(0,M0i.useEffect)(()=>{let f=b=>{o(b.files.length)},I=b=>{n({changed:!1,file:O0i(e,b.file)})},C=b=>{n({changed:b.changed,file:O0i(e,b.file)}),b.changed&&A(E=>E+1)};return t.on("start",f),t.on("format:start",I),t.on("format:end",C),()=>{t.off("start",f),t.off("format:start",I),t.off("format:end",C)}},[t,n,o,A]),r?(0,GS.jsxs)(DRe.Box,{flexDirection:"row",width:"100%",children:[(0,GS.jsxs)(DRe.Box,{flexGrow:1,children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(U3a,{changed:r.changed,children:r.file})]}),(0,GS.jsx)(DRe.Box,{flexDirection:"row",children:(0,GS.jsxs)(DRe.Box,{children:[(0,GS.jsx)(J3a,{changed:r.changed}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"green",children:[l," Formatted"]}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"white",children:[a," Files"]}),(0,GS.jsx)(AO.Text,{children:" "})]})})]}):(0,GS.jsxs)(DRe.Box,{flexDirection:"row",children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(AO.Text,{color:"white",children:"Loading files..."})]})};var qae=Nt(Pc(),1),X0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Y0i.useState)(!1);return(0,Q0i.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,qae.jsx)(m4e.Box,{position:"relative",height:7,children:(0,qae.jsxs)(m4e.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,qae.jsx)(m4e.Box,{children:(0,qae.jsx)(H0i,{cwd:e,formatter:t})}),(0,qae.jsx)(m4e.Box,{marginTop:1,marginBottom:1,children:(0,qae.jsx)(P0i,{formatter:t})})]})})};import Lgc from"node:events";import{writeFile as Vgc}from"node:fs/promises";import{readFile as ZNi}from"node:fs/promises";import{relative as Pgc}from"node:path";import{join as Wgc}from"node:path";var FRe={};sI(FRe,{default:()=>cMa,parsers:()=>GRe});var K3a=Object.create,mTr=Object.defineProperty,j3a=Object.getOwnPropertyDescriptor,z3a=Object.getOwnPropertyNames,q3a=Object.getPrototypeOf,$3a=Object.prototype.hasOwnProperty,e5a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),t5a=(e,t)=>{for(var r in t)mTr(e,r,{get:t[r],enumerable:!0})},r5a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of z3a(t))!$3a.call(e,a)&&a!==r&&mTr(e,a,{get:()=>t[a],enumerable:!(n=j3a(t,a))||n.enumerable});return e},iyi=(e,t,r)=>(r=e!=null?K3a(q3a(e)):{},r5a(t||!e||!e.__esModule?mTr(r,"default",{value:e,enumerable:!0}):r,e)),syi=e5a(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(se,O){if(se==null)return{};var K={};for(var we in se)if({}.hasOwnProperty.call(se,we)){if(O.includes(we))continue;K[we]=se[we]}return K}var r=class{constructor(se,O,K){this.line=void 0,this.column=void 0,this.index=void 0,this.line=se,this.column=O,this.index=K}},n=class{constructor(se,O){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=se,this.end=O}};function a(se,O){let{line:K,column:we,index:gt}=se;return new r(K,we+O,gt+O)}var o="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",l={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:o},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:o}},A={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},f=se=>se.type==="UpdateExpression"?A.UpdateExpression[`${se.prefix}`]:A[se.type],I={AccessorIsGenerator:({kind:se})=>`A ${se}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:se})=>`Missing initializer in ${se} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:se})=>`\`${se}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:se})=>`'import.${se}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:se,exportName:O})=>`A string literal cannot be used as an exported binding without \`from\`. - Did you mean \`export { '${se}' as '${O}' } from 'some-module'\`?`,ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:({type:se})=>`'${se==="ForInStatement"?"for-in":"for-of"}' loop variable declaration may not have an initializer.`,ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:({type:se})=>`Unsyntactic ${se==="BreakStatement"?"break":"continue"}.`,IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.",ImportBindingIsString:({importName:se})=>`A string literal cannot be used as an imported binding. - Did you mean \`import { "${se}" as foo }\`?`,ImportCallArity:"`import()` requires exactly one or two arguments.",ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:({radix:se})=>`Expected number in radix ${se}.`,InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:({reservedWord:se})=>`Escape sequence in keyword ${se}.`,InvalidIdentifier:({identifierName:se})=>`Invalid identifier ${se}.`,InvalidLhs:({ancestor:se})=>`Invalid left-hand side in ${f(se)}.`,InvalidLhsBinding:({ancestor:se})=>`Binding invalid left-hand side in ${f(se)}.`,InvalidLhsOptionalChaining:({ancestor:se})=>`Invalid optional chaining in the left-hand side of ${f(se)}.`,InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:({unexpected:se})=>`Unexpected character '${se}'.`,InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:({identifierName:se})=>`Private name #${se} is not defined.`,InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:({labelName:se})=>`Label '${se}' is already declared.`,LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:({missingPlugin:se})=>`This experimental syntax requires enabling the parser plugin: ${se.map(O=>JSON.stringify(O)).join(", ")}.`,MissingOneOfPlugins:({missingPlugin:se})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${se.map(O=>JSON.stringify(O)).join(", ")}.`,MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:({key:se})=>`Duplicate key "${se}" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:se})=>`An export name cannot include a lone surrogate, found '\\u${se.toString(16)}'.`,ModuleExportUndefined:({localName:se})=>`Export '${se}' is not defined.`,MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:({identifierName:se})=>`Private names are only allowed in property accesses (\`obj.#${se}\`) or in \`in\` expressions (\`#${se} in obj\`).`,PrivateNameRedeclaration:({identifierName:se})=>`Duplicate private name #${se}.`,RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:({keyword:se})=>`Unexpected keyword '${se}'.`,UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:({reservedWord:se})=>`Unexpected reserved word '${se}'.`,UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:({expected:se,unexpected:O})=>`Unexpected token${O?` '${O}'.`:""}${se?`, expected "${se}"`:""}`,UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:({target:se,onlyValidPropertyName:O})=>`The only valid meta property for ${se} is ${se}.${O}.`,UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:({identifierName:se})=>`Identifier '${se}' has already been declared.`,YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},C={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:({referenceName:se})=>`Assigning to '${se}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:se})=>`Binding '${se}' in strict mode.`,StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."},b=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),E=Object.assign({PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:({token:se})=>`Invalid topic token ${se}. In order to use ${se} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${se}" }.`,PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:({type:se})=>`Hack-style pipe body cannot be an unparenthesized ${f({type:se})}; please wrap it in parentheses.`},{PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'}),N=["message"];function B(se,O,K){Object.defineProperty(se,O,{enumerable:!1,configurable:!0,value:K})}function F({toMessage:se,code:O,reasonCode:K,syntaxPlugin:we}){let gt=K==="MissingPlugin"||K==="MissingOneOfPlugins";{let sr={AccessorCannotDeclareThisParameter:"AccesorCannotDeclareThisParameter",AccessorCannotHaveTypeParameters:"AccesorCannotHaveTypeParameters",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",SetAccessorCannotHaveOptionalParameter:"SetAccesorCannotHaveOptionalParameter",SetAccessorCannotHaveRestParameter:"SetAccesorCannotHaveRestParameter",SetAccessorCannotHaveReturnType:"SetAccesorCannotHaveReturnType"};sr[K]&&(K=sr[K])}return function sr(Yr,Lr){let fi=new SyntaxError;return fi.code=O,fi.reasonCode=K,fi.loc=Yr,fi.pos=Yr.index,fi.syntaxPlugin=we,gt&&(fi.missingPlugin=Lr.missingPlugin),B(fi,"clone",function($n={}){var ra;let{line:kc,column:Nl,index:ca}=(ra=$n.loc)!=null?ra:Yr;return sr(new r(kc,Nl,ca),Object.assign({},Lr,$n.details))}),B(fi,"details",Lr),Object.defineProperty(fi,"message",{configurable:!0,get(){let $n=`${se(Lr)} (${Yr.line}:${Yr.column})`;return this.message=$n,$n},set($n){Object.defineProperty(this,"message",{value:$n,writable:!0})}}),fi}}function Q(se,O){if(Array.isArray(se))return we=>Q(we,se[0]);let K={};for(let we of Object.keys(se)){let gt=se[we],sr=typeof gt=="string"?{message:()=>gt}:typeof gt=="function"?{message:gt}:gt,{message:Yr}=sr,Lr=t(sr,N),fi=typeof Yr=="string"?()=>Yr:Yr;K[we]=F(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:we,toMessage:fi},O?{syntaxPlugin:O}:{},Lr))}return K}var X=Object.assign({},Q(l),Q(I),Q(C),Q`pipelineOperator`(E));function ae(){return{sourceType:"script",sourceFilename:void 0,startIndex:0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0}}function ne(se){let O=ae();if(se==null)return O;if(se.annexB!=null&&se.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");for(let K of Object.keys(O))se[K]!=null&&(O[K]=se[K]);if(O.startLine===1)se.startIndex==null&&O.startColumn>0?O.startIndex=O.startColumn:se.startColumn==null&&O.startIndex>0&&(O.startColumn=O.startIndex);else if((se.startColumn==null||se.startIndex==null)&&se.startIndex!=null)throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");return O}var{defineProperty:ce}=Object,fe=(se,O)=>{se&&ce(se,O,{enumerable:!1,value:se[O]})};function ue(se){return fe(se.loc.start,"index"),fe(se.loc.end,"index"),se}var de=se=>class extends se{parse(){let O=ue(super.parse());return this.optionFlags&128&&(O.tokens=O.tokens.map(ue)),O}parseRegExpLiteral({pattern:O,flags:K}){let we=null;try{we=new RegExp(O,K)}catch{}let gt=this.estreeParseLiteral(we);return gt.regex={pattern:O,flags:K},gt}parseBigIntLiteral(O){let K;try{K=BigInt(O)}catch{K=null}let we=this.estreeParseLiteral(K);return we.bigint=String(we.value||O),we}parseDecimalLiteral(O){let K=this.estreeParseLiteral(null);return K.decimal=String(K.value||O),K}estreeParseLiteral(O){return this.parseLiteral(O,"Literal")}parseStringLiteral(O){return this.estreeParseLiteral(O)}parseNumericLiteral(O){return this.estreeParseLiteral(O)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(O){return this.estreeParseLiteral(O)}directiveToStmt(O){let K=O.value;delete O.value,K.type="Literal",K.raw=K.extra.raw,K.value=K.extra.expressionValue;let we=O;return we.type="ExpressionStatement",we.expression=K,we.directive=K.extra.rawValue,delete K.extra,we}initFunction(O,K){super.initFunction(O,K),O.expression=!1}checkDeclaration(O){O!=null&&this.isObjectProperty(O)?this.checkDeclaration(O.value):super.checkDeclaration(O)}getObjectOrClassMethodParams(O){return O.value.params}isValidDirective(O){var K;return O.type==="ExpressionStatement"&&O.expression.type==="Literal"&&typeof O.expression.value=="string"&&!((K=O.expression.extra)!=null&&K.parenthesized)}parseBlockBody(O,K,we,gt,sr){super.parseBlockBody(O,K,we,gt,sr);let Yr=O.directives.map(Lr=>this.directiveToStmt(Lr));O.body=Yr.concat(O.body),delete O.directives}parsePrivateName(){let O=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(O):O}convertPrivateNameToPrivateIdentifier(O){let K=super.getPrivateNameSV(O);return O=O,delete O.id,O.name=K,O.type="PrivateIdentifier",O}isPrivateName(O){return this.getPluginOption("estree","classFeatures")?O.type==="PrivateIdentifier":super.isPrivateName(O)}getPrivateNameSV(O){return this.getPluginOption("estree","classFeatures")?O.name:super.getPrivateNameSV(O)}parseLiteral(O,K){let we=super.parseLiteral(O,K);return we.raw=we.extra.raw,delete we.extra,we}parseFunctionBody(O,K,we=!1){super.parseFunctionBody(O,K,we),O.expression=O.body.type!=="BlockStatement"}parseMethod(O,K,we,gt,sr,Yr,Lr=!1){let fi=this.startNode();fi.kind=O.kind,fi=super.parseMethod(fi,K,we,gt,sr,Yr,Lr),fi.type="FunctionExpression",delete fi.kind,O.value=fi;let{typeParameters:$n}=O;return $n&&(delete O.typeParameters,fi.typeParameters=$n,this.resetStartLocationFromNode(fi,$n)),Yr==="ClassPrivateMethod"&&(O.computed=!1),this.finishNode(O,"MethodDefinition")}nameIsConstructor(O){return O.type==="Literal"?O.value==="constructor":super.nameIsConstructor(O)}parseClassProperty(...O){let K=super.parseClassProperty(...O);return this.getPluginOption("estree","classFeatures")&&(K.type="PropertyDefinition"),K}parseClassPrivateProperty(...O){let K=super.parseClassPrivateProperty(...O);return this.getPluginOption("estree","classFeatures")&&(K.type="PropertyDefinition",K.computed=!1),K}parseObjectMethod(O,K,we,gt,sr){let Yr=super.parseObjectMethod(O,K,we,gt,sr);return Yr&&(Yr.type="Property",Yr.kind==="method"&&(Yr.kind="init"),Yr.shorthand=!1),Yr}parseObjectProperty(O,K,we,gt){let sr=super.parseObjectProperty(O,K,we,gt);return sr&&(sr.kind="init",sr.type="Property"),sr}isValidLVal(O,K,we){return O==="Property"?"value":super.isValidLVal(O,K,we)}isAssignable(O,K){return O!=null&&this.isObjectProperty(O)?this.isAssignable(O.value,K):super.isAssignable(O,K)}toAssignable(O,K=!1){if(O!=null&&this.isObjectProperty(O)){let{key:we,value:gt}=O;this.isPrivateName(we)&&this.classScope.usePrivateName(this.getPrivateNameSV(we),we.loc.start),this.toAssignable(gt,K)}else super.toAssignable(O,K)}toAssignableObjectExpressionProp(O,K,we){O.type==="Property"&&(O.kind==="get"||O.kind==="set")?this.raise(X.PatternHasAccessor,O.key):O.type==="Property"&&O.method?this.raise(X.PatternHasMethod,O.key):super.toAssignableObjectExpressionProp(O,K,we)}finishCallExpression(O,K){let we=super.finishCallExpression(O,K);if(we.callee.type==="Import"){var gt,sr;we.type="ImportExpression",we.source=we.arguments[0],we.options=(gt=we.arguments[1])!=null?gt:null,we.attributes=(sr=we.arguments[1])!=null?sr:null,delete we.arguments,delete we.callee}return we}toReferencedArguments(O){O.type!=="ImportExpression"&&super.toReferencedArguments(O)}parseExport(O,K){let we=this.state.lastTokStartLoc,gt=super.parseExport(O,K);switch(gt.type){case"ExportAllDeclaration":gt.exported=null;break;case"ExportNamedDeclaration":gt.specifiers.length===1&>.specifiers[0].type==="ExportNamespaceSpecifier"&&(gt.type="ExportAllDeclaration",gt.exported=gt.specifiers[0].exported,delete gt.specifiers);case"ExportDefaultDeclaration":{var sr;let{declaration:Yr}=gt;Yr?.type==="ClassDeclaration"&&((sr=Yr.decorators)==null?void 0:sr.length)>0&&Yr.start===gt.start&&this.resetStartLocation(gt,we)}break}return gt}parseSubscript(O,K,we,gt){let sr=super.parseSubscript(O,K,we,gt);if(gt.optionalChainMember){if((sr.type==="OptionalMemberExpression"||sr.type==="OptionalCallExpression")&&(sr.type=sr.type.substring(8)),gt.stop){let Yr=this.startNodeAtNode(sr);return Yr.expression=sr,this.finishNode(Yr,"ChainExpression")}}else(sr.type==="MemberExpression"||sr.type==="CallExpression")&&(sr.optional=!1);return sr}isOptionalMemberExpression(O){return O.type==="ChainExpression"?O.expression.type==="MemberExpression":super.isOptionalMemberExpression(O)}hasPropertyAsPrivateName(O){return O.type==="ChainExpression"&&(O=O.expression),super.hasPropertyAsPrivateName(O)}isObjectProperty(O){return O.type==="Property"&&O.kind==="init"&&!O.method}isObjectMethod(O){return O.type==="Property"&&(O.method||O.kind==="get"||O.kind==="set")}finishNodeAt(O,K,we){return ue(super.finishNodeAt(O,K,we))}resetStartLocation(O,K){super.resetStartLocation(O,K),ue(O)}resetEndLocation(O,K=this.state.lastTokEndLoc){super.resetEndLocation(O,K),ue(O)}},be=class{constructor(se,O){this.token=void 0,this.preserveSpace=void 0,this.token=se,this.preserveSpace=!!O}},Se={brace:new be("{"),j_oTag:new be("...",!0)};Se.template=new be("`",!0);var De=!0,k=!0,et=!0,ct=!0,Me=!0,je=!0,St=class{constructor(se,O={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=se,this.keyword=O.keyword,this.beforeExpr=!!O.beforeExpr,this.startsExpr=!!O.startsExpr,this.rightAssociative=!!O.rightAssociative,this.isLoop=!!O.isLoop,this.isAssign=!!O.isAssign,this.prefix=!!O.prefix,this.postfix=!!O.postfix,this.binop=O.binop!=null?O.binop:null,this.updateContext=null}},At=new Map;function Yt(se,O={}){O.keyword=se;let K=lr(se,O);return At.set(se,K),K}function Tr(se,O){return lr(se,{beforeExpr:De,binop:O})}var Nr=-1,er=[],vt=[],xt=[],Zr=[],qt=[],Xt=[];function lr(se,O={}){var K,we,gt,sr;return++Nr,vt.push(se),xt.push((K=O.binop)!=null?K:-1),Zr.push((we=O.beforeExpr)!=null?we:!1),qt.push((gt=O.startsExpr)!=null?gt:!1),Xt.push((sr=O.prefix)!=null?sr:!1),er.push(new St(se,O)),Nr}function cr(se,O={}){var K,we,gt,sr;return++Nr,At.set(se,Nr),vt.push(se),xt.push((K=O.binop)!=null?K:-1),Zr.push((we=O.beforeExpr)!=null?we:!1),qt.push((gt=O.startsExpr)!=null?gt:!1),Xt.push((sr=O.prefix)!=null?sr:!1),er.push(new St("name",O)),Nr}var Ar={bracketL:lr("[",{beforeExpr:De,startsExpr:k}),bracketHashL:lr("#[",{beforeExpr:De,startsExpr:k}),bracketBarL:lr("[|",{beforeExpr:De,startsExpr:k}),bracketR:lr("]"),bracketBarR:lr("|]"),braceL:lr("{",{beforeExpr:De,startsExpr:k}),braceBarL:lr("{|",{beforeExpr:De,startsExpr:k}),braceHashL:lr("#{",{beforeExpr:De,startsExpr:k}),braceR:lr("}"),braceBarR:lr("|}"),parenL:lr("(",{beforeExpr:De,startsExpr:k}),parenR:lr(")"),comma:lr(",",{beforeExpr:De}),semi:lr(";",{beforeExpr:De}),colon:lr(":",{beforeExpr:De}),doubleColon:lr("::",{beforeExpr:De}),dot:lr("."),question:lr("?",{beforeExpr:De}),questionDot:lr("?."),arrow:lr("=>",{beforeExpr:De}),template:lr("template"),ellipsis:lr("...",{beforeExpr:De}),backQuote:lr("`",{startsExpr:k}),dollarBraceL:lr("${",{beforeExpr:De,startsExpr:k}),templateTail:lr("...`",{startsExpr:k}),templateNonTail:lr("...${",{beforeExpr:De,startsExpr:k}),at:lr("@"),hash:lr("#",{startsExpr:k}),interpreterDirective:lr("#!..."),eq:lr("=",{beforeExpr:De,isAssign:ct}),assign:lr("_=",{beforeExpr:De,isAssign:ct}),slashAssign:lr("_=",{beforeExpr:De,isAssign:ct}),xorAssign:lr("_=",{beforeExpr:De,isAssign:ct}),moduloAssign:lr("_=",{beforeExpr:De,isAssign:ct}),incDec:lr("++/--",{prefix:Me,postfix:je,startsExpr:k}),bang:lr("!",{beforeExpr:De,prefix:Me,startsExpr:k}),tilde:lr("~",{beforeExpr:De,prefix:Me,startsExpr:k}),doubleCaret:lr("^^",{startsExpr:k}),doubleAt:lr("@@",{startsExpr:k}),pipeline:Tr("|>",0),nullishCoalescing:Tr("??",1),logicalOR:Tr("||",1),logicalAND:Tr("&&",2),bitwiseOR:Tr("|",3),bitwiseXOR:Tr("^",4),bitwiseAND:Tr("&",5),equality:Tr("==/!=/===/!==",6),lt:Tr("/<=/>=",7),gt:Tr("/<=/>=",7),relational:Tr("/<=/>=",7),bitShift:Tr("<>/>>>",8),bitShiftL:Tr("<>/>>>",8),bitShiftR:Tr("<>/>>>",8),plusMin:lr("+/-",{beforeExpr:De,binop:9,prefix:Me,startsExpr:k}),modulo:lr("%",{binop:10,startsExpr:k}),star:lr("*",{binop:10}),slash:Tr("/",10),exponent:lr("**",{beforeExpr:De,binop:11,rightAssociative:!0}),_in:Yt("in",{beforeExpr:De,binop:7}),_instanceof:Yt("instanceof",{beforeExpr:De,binop:7}),_break:Yt("break"),_case:Yt("case",{beforeExpr:De}),_catch:Yt("catch"),_continue:Yt("continue"),_debugger:Yt("debugger"),_default:Yt("default",{beforeExpr:De}),_else:Yt("else",{beforeExpr:De}),_finally:Yt("finally"),_function:Yt("function",{startsExpr:k}),_if:Yt("if"),_return:Yt("return",{beforeExpr:De}),_switch:Yt("switch"),_throw:Yt("throw",{beforeExpr:De,prefix:Me,startsExpr:k}),_try:Yt("try"),_var:Yt("var"),_const:Yt("const"),_with:Yt("with"),_new:Yt("new",{beforeExpr:De,startsExpr:k}),_this:Yt("this",{startsExpr:k}),_super:Yt("super",{startsExpr:k}),_class:Yt("class",{startsExpr:k}),_extends:Yt("extends",{beforeExpr:De}),_export:Yt("export"),_import:Yt("import",{startsExpr:k}),_null:Yt("null",{startsExpr:k}),_true:Yt("true",{startsExpr:k}),_false:Yt("false",{startsExpr:k}),_typeof:Yt("typeof",{beforeExpr:De,prefix:Me,startsExpr:k}),_void:Yt("void",{beforeExpr:De,prefix:Me,startsExpr:k}),_delete:Yt("delete",{beforeExpr:De,prefix:Me,startsExpr:k}),_do:Yt("do",{isLoop:et,beforeExpr:De}),_for:Yt("for",{isLoop:et}),_while:Yt("while",{isLoop:et}),_as:cr("as",{startsExpr:k}),_assert:cr("assert",{startsExpr:k}),_async:cr("async",{startsExpr:k}),_await:cr("await",{startsExpr:k}),_defer:cr("defer",{startsExpr:k}),_from:cr("from",{startsExpr:k}),_get:cr("get",{startsExpr:k}),_let:cr("let",{startsExpr:k}),_meta:cr("meta",{startsExpr:k}),_of:cr("of",{startsExpr:k}),_sent:cr("sent",{startsExpr:k}),_set:cr("set",{startsExpr:k}),_source:cr("source",{startsExpr:k}),_static:cr("static",{startsExpr:k}),_using:cr("using",{startsExpr:k}),_yield:cr("yield",{startsExpr:k}),_asserts:cr("asserts",{startsExpr:k}),_checks:cr("checks",{startsExpr:k}),_exports:cr("exports",{startsExpr:k}),_global:cr("global",{startsExpr:k}),_implements:cr("implements",{startsExpr:k}),_intrinsic:cr("intrinsic",{startsExpr:k}),_infer:cr("infer",{startsExpr:k}),_is:cr("is",{startsExpr:k}),_mixins:cr("mixins",{startsExpr:k}),_proto:cr("proto",{startsExpr:k}),_require:cr("require",{startsExpr:k}),_satisfies:cr("satisfies",{startsExpr:k}),_keyof:cr("keyof",{startsExpr:k}),_readonly:cr("readonly",{startsExpr:k}),_unique:cr("unique",{startsExpr:k}),_abstract:cr("abstract",{startsExpr:k}),_declare:cr("declare",{startsExpr:k}),_enum:cr("enum",{startsExpr:k}),_module:cr("module",{startsExpr:k}),_namespace:cr("namespace",{startsExpr:k}),_interface:cr("interface",{startsExpr:k}),_type:cr("type",{startsExpr:k}),_opaque:cr("opaque",{startsExpr:k}),name:lr("name",{startsExpr:k}),placeholder:lr("%%",{startsExpr:!0}),string:lr("string",{startsExpr:k}),num:lr("num",{startsExpr:k}),bigint:lr("bigint",{startsExpr:k}),decimal:lr("decimal",{startsExpr:k}),regexp:lr("regexp",{startsExpr:k}),privateName:lr("#name",{startsExpr:k}),eof:lr("eof"),jsxName:lr("jsxName"),jsxText:lr("jsxText",{beforeExpr:!0}),jsxTagStart:lr("jsxTagStart",{startsExpr:!0}),jsxTagEnd:lr("jsxTagEnd")};function qr(se){return se>=93&&se<=133}function _n(se){return se<=92}function ke(se){return se>=58&&se<=133}function jt(se){return se>=58&&se<=137}function Fn(se){return Zr[se]}function Nn(se){return qt[se]}function Hi(se){return se>=29&&se<=33}function po(se){return se>=129&&se<=131}function Vr(se){return se>=90&&se<=92}function xi(se){return se>=58&&se<=92}function io(se){return se>=39&&se<=59}function ga(se){return se===34}function Ya(se){return Xt[se]}function Gc(se){return se>=121&&se<=123}function cl(se){return se>=124&&se<=130}function Sc(se){return vt[se]}function Hr(se){return xt[se]}function Wr(se){return se===57}function Ft(se){return se>=24&&se<=25}function zr(se){return er[se]}er[8].updateContext=se=>{se.pop()},er[5].updateContext=er[7].updateContext=er[23].updateContext=se=>{se.push(Se.brace)},er[22].updateContext=se=>{se[se.length-1]===Se.template?se.pop():se.push(Se.template)},er[143].updateContext=se=>{se.push(Se.j_expr,Se.j_oTag)};var Rn="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",Or="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Qi=new RegExp("["+Rn+"]"),ps=new RegExp("["+Rn+Or+"]");Rn=Or=null;var yo=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],bo=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Qa(se,O){let K=65536;for(let we=0,gt=O.length;wese)return!1;if(K+=O[we+1],K>=se)return!0}return!1}function gc(se){return se<65?se===36:se<=90?!0:se<97?se===95:se<=122?!0:se<=65535?se>=170&&Qi.test(String.fromCharCode(se)):Qa(se,yo)}function Cg(se){return se<48?se===36:se<58?!0:se<65?!1:se<=90?!0:se<97?se===95:se<=122?!0:se<=65535?se>=170&&ps.test(String.fromCharCode(se)):Qa(se,yo)||Qa(se,bo)}var Nc={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},iA=new Set(Nc.keyword),ma=new Set(Nc.strict),vu=new Set(Nc.strictBind);function li(se,O){return O&&se==="await"||se==="enum"}function Ei(se,O){return li(se,O)||ma.has(se)}function Ps(se){return vu.has(se)}function Xa(se,O){return Ei(se,O)||Ps(se)}function ac(se){return iA.has(se)}function Yl(se,O,K){return se===64&&O===64&&gc(K)}var Wc=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Sg(se){return Wc.has(se)}var Ul=class{constructor(se){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=se}},Xu=class{constructor(se,O){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=se,this.inModule=O}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){let se=this.currentThisScopeFlags();return(se&64)>0&&(se&2)===0}get inStaticBlock(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&128)return!0;if(O&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(se){return new Ul(se)}enter(se){this.scopeStack.push(this.createScope(se))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(se){return!!(se.flags&130||!this.parser.inModule&&se.flags&1)}declareName(se,O,K){let we=this.currentScope();if(O&8||O&16){this.checkRedeclarationInScope(we,se,O,K);let gt=we.names.get(se)||0;O&16?gt=gt|4:(we.firstLexicalName||(we.firstLexicalName=se),gt=gt|2),we.names.set(se,gt),O&8&&this.maybeExportDefined(we,se)}else if(O&4)for(let gt=this.scopeStack.length-1;gt>=0&&(we=this.scopeStack[gt],this.checkRedeclarationInScope(we,se,O,K),we.names.set(se,(we.names.get(se)||0)|1),this.maybeExportDefined(we,se),!(we.flags&387));--gt);this.parser.inModule&&we.flags&1&&this.undefinedExports.delete(se)}maybeExportDefined(se,O){this.parser.inModule&&se.flags&1&&this.undefinedExports.delete(O)}checkRedeclarationInScope(se,O,K,we){this.isRedeclaredInScope(se,O,K)&&this.parser.raise(X.VarRedeclaration,we,{identifierName:O})}isRedeclaredInScope(se,O,K){if(!(K&1))return!1;if(K&8)return se.names.has(O);let we=se.names.get(O);return K&16?(we&2)>0||!this.treatFunctionsAsVarInScope(se)&&(we&1)>0:(we&2)>0&&!(se.flags&8&&se.firstLexicalName===O)||!this.treatFunctionsAsVarInScope(se)&&(we&4)>0}checkLocalExport(se){let{name:O}=se;this.scopeStack[0].names.has(O)||this.undefinedExports.set(O,se.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&387)return O}}currentThisScopeFlags(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&451&&!(O&4))return O}}},Da=class extends Ul{constructor(...se){super(...se),this.declareFunctions=new Set}},pu=class extends Xu{createScope(se){return new Da(se)}declareName(se,O,K){let we=this.currentScope();if(O&2048){this.checkRedeclarationInScope(we,se,O,K),this.maybeExportDefined(we,se),we.declareFunctions.add(se);return}super.declareName(se,O,K)}isRedeclaredInScope(se,O,K){if(super.isRedeclaredInScope(se,O,K))return!0;if(K&2048&&!se.declareFunctions.has(O)){let we=se.names.get(O);return(we&4)>0||(we&2)>0}return!1}checkLocalExport(se){this.scopeStack[0].declareFunctions.has(se.name)||super.checkLocalExport(se)}},_g=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}sourceToOffsetPos(se){return se+this.startIndex}offsetToSourcePos(se){return se-this.startIndex}hasPlugin(se){if(typeof se=="string")return this.plugins.has(se);{let[O,K]=se;if(!this.hasPlugin(O))return!1;let we=this.plugins.get(O);for(let gt of Object.keys(K))if(we?.[gt]!==K[gt])return!1;return!0}}getPluginOption(se,O){var K;return(K=this.plugins.get(se))==null?void 0:K[O]}};function mI(se,O){se.trailingComments===void 0?se.trailingComments=O:se.trailingComments.unshift(...O)}function Qh(se,O){se.leadingComments===void 0?se.leadingComments=O:se.leadingComments.unshift(...O)}function Ri(se,O){se.innerComments===void 0?se.innerComments=O:se.innerComments.unshift(...O)}function Do(se,O,K){let we=null,gt=O.length;for(;we===null&>>0;)we=O[--gt];we===null||we.start>K.start?Ri(se,K.comments):mI(we,K.comments)}var Wt=class extends _g{addComment(se){this.filename&&(se.loc.filename=this.filename);let{commentsLen:O}=this.state;this.comments.length!==O&&(this.comments.length=O),this.comments.push(se),this.state.commentsLen++}processComment(se){let{commentStack:O}=this.state,K=O.length;if(K===0)return;let we=K-1,gt=O[we];gt.start===se.end&&(gt.leadingNode=se,we--);let{start:sr}=se;for(;we>=0;we--){let Yr=O[we],Lr=Yr.end;if(Lr>sr)Yr.containingNode=se,this.finalizeComment(Yr),O.splice(we,1);else{Lr===sr&&(Yr.trailingNode=se);break}}}finalizeComment(se){let{comments:O}=se;if(se.leadingNode!==null||se.trailingNode!==null)se.leadingNode!==null&&mI(se.leadingNode,O),se.trailingNode!==null&&Qh(se.trailingNode,O);else{let{containingNode:K,start:we}=se;if(this.input.charCodeAt(this.offsetToSourcePos(we)-1)===44)switch(K.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":Do(K,K.properties,se);break;case"CallExpression":case"OptionalCallExpression":Do(K,K.arguments,se);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Do(K,K.params,se);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":Do(K,K.elements,se);break;case"ExportNamedDeclaration":case"ImportDeclaration":Do(K,K.specifiers,se);break;case"TSEnumDeclaration":Do(K,K.members,se);break;case"TSEnumBody":Do(K,K.members,se);break;default:Ri(K,O)}else Ri(K,O)}}finalizeRemainingComments(){let{commentStack:se}=this.state;for(let O=se.length-1;O>=0;O--)this.finalizeComment(se[O]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(se){let{commentStack:O}=this.state,{length:K}=O;if(K===0)return;let we=O[K-1];we.leadingNode===se&&(we.leadingNode=null)}resetPreviousIdentifierLeadingComments(se){let{commentStack:O}=this.state,{length:K}=O;K!==0&&(O[K-1].trailingNode===se?O[K-1].trailingNode=null:K>=2&&O[K-2].trailingNode===se&&(O[K-2].trailingNode=null))}takeSurroundingComments(se,O,K){let{commentStack:we}=this.state,gt=we.length;if(gt===0)return;let sr=gt-1;for(;sr>=0;sr--){let Yr=we[sr],Lr=Yr.end;if(Yr.start===K)Yr.leadingNode=se;else if(Lr===O)Yr.trailingNode=se;else if(Lr0}set strict(O){O?this.flags|=1:this.flags&=-2}init({strictMode:O,sourceType:K,startIndex:we,startLine:gt,startColumn:sr}){this.strict=O===!1?!1:O===!0?!0:K==="module",this.startIndex=we,this.curLine=gt,this.lineStart=-sr,this.startLoc=this.endLoc=new r(gt,sr,we)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(O){O?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(O){O?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(O){O?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(O){O?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(O){O?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(O){O?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(O){O?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(O){O?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(O){O?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(O){O?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(O){O?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(O){O?this.flags|=4096:this.flags&=-4097}curPosition(){return new r(this.curLine,this.pos-this.lineStart,this.pos+this.startIndex)}clone(){let O=new oyi;return O.flags=this.flags,O.startIndex=this.startIndex,O.curLine=this.curLine,O.lineStart=this.lineStart,O.startLoc=this.startLoc,O.endLoc=this.endLoc,O.errors=this.errors.slice(),O.potentialArrowAt=this.potentialArrowAt,O.noArrowAt=this.noArrowAt.slice(),O.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),O.topicContext=this.topicContext,O.labels=this.labels.slice(),O.commentsLen=this.commentsLen,O.commentStack=this.commentStack.slice(),O.pos=this.pos,O.type=this.type,O.value=this.value,O.start=this.start,O.end=this.end,O.lastTokEndLoc=this.lastTokEndLoc,O.lastTokStartLoc=this.lastTokStartLoc,O.context=this.context.slice(),O.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,O.strictErrors=this.strictErrors,O.tokensLength=this.tokensLength,O}},GA=function(se){return se>=48&&se<=57},$i={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},dl={bin:se=>se===48||se===49,oct:se=>se>=48&&se<=55,dec:se=>se>=48&&se<=57,hex:se=>se>=48&&se<=57||se>=65&&se<=70||se>=97&&se<=102};function Uf(se,O,K,we,gt,sr){let Yr=K,Lr=we,fi=gt,$n="",ra=null,kc=K,{length:Nl}=O;for(;;){if(K>=Nl){sr.unterminated(Yr,Lr,fi),$n+=O.slice(kc,K);break}let ca=O.charCodeAt(K);if(Kd(se,ca,O,K)){$n+=O.slice(kc,K);break}if(ca===92){$n+=O.slice(kc,K);let Bl=oA(O,K,we,gt,se==="template",sr);Bl.ch===null&&!ra?ra={pos:K,lineStart:we,curLine:gt}:$n+=Bl.ch,{pos:K,lineStart:we,curLine:gt}=Bl,kc=K}else ca===8232||ca===8233?(++K,++gt,we=K):ca===10||ca===13?se==="template"?($n+=O.slice(kc,K)+` `,++K,ca===13&&O.charCodeAt(K)===10&&++K,++gt,kc=we=K):sr.unterminated(Yr,Lr,fi):++K}return{pos:K,str:$n,firstInvalidLoc:ra,lineStart:we,curLine:gt,containsInvalid:!!ra}}function Kd(se,O,K,we){return se==="template"?O===96||O===36&&K.charCodeAt(we+1)===123:O===(se==="double"?34:39)}function oA(se,O,K,we,gt,sr){let Yr=!gt;O++;let Lr=$n=>({pos:O,ch:$n,lineStart:K,curLine:we}),fi=se.charCodeAt(O++);switch(fi){case 110:return Lr(` `);case 114:return Lr("\r");case 120:{let $n;return{code:$n,pos:O}=oo(se,O,K,we,2,!1,Yr,sr),Lr($n===null?null:String.fromCharCode($n))}case 117:{let $n;return{code:$n,pos:O}=cc(se,O,K,we,Yr,sr),Lr($n===null?null:String.fromCodePoint($n))}case 116:return Lr(" ");case 98:return Lr("\b");case 118:return Lr("\v");case 102:return Lr("\f");case 13:se.charCodeAt(O)===10&&++O;case 10:K=O,++we;case 8232:case 8233:return Lr("");case 56:case 57:if(gt)return Lr(null);sr.strictNumericEscape(O-1,K,we);default:if(fi>=48&&fi<=55){let $n=O-1,ra=/^[0-7]+/.exec(se.slice($n,O+2))[0],kc=parseInt(ra,8);kc>255&&(ra=ra.slice(0,-1),kc=parseInt(ra,8)),O+=ra.length-1;let Nl=se.charCodeAt(O);if(ra!=="0"||Nl===56||Nl===57){if(gt)return Lr(null);sr.strictNumericEscape($n,K,we)}return Lr(String.fromCharCode(kc))}return Lr(String.fromCharCode(fi))}}function oo(se,O,K,we,gt,sr,Yr,Lr){let fi=O,$n;return{n:$n,pos:O}=Ki(se,O,K,we,16,gt,sr,!1,Lr,!Yr),$n===null&&(Yr?Lr.invalidEscapeSequence(fi,K,we):O=fi-1),{code:$n,pos:O}}function Ki(se,O,K,we,gt,sr,Yr,Lr,fi,$n){let ra=O,kc=gt===16?$i.hex:$i.decBinOct,Nl=gt===16?dl.hex:gt===10?dl.dec:gt===8?dl.oct:dl.bin,ca=!1,Bl=0;for(let $g=0,SA=sr??1/0;$g=97?lp=lI-97+10:lI>=65?lp=lI-65+10:GA(lI)?lp=lI-48:lp=1/0,lp>=gt){if(lp<=9&&$n)return{n:null,pos:O};if(lp<=9&&fi.invalidDigit(O,K,we,gt))lp=0;else if(Yr)lp=0,ca=!0;else break}++O,Bl=Bl*gt+lp}return O===ra||sr!=null&&O-ra!==sr||ca?{n:null,pos:O}:{n:Bl,pos:O}}function cc(se,O,K,we,gt,sr){let Yr=se.charCodeAt(O),Lr;if(Yr===123){if(++O,{code:Lr,pos:O}=oo(se,O,K,we,se.indexOf("}",O)-O,!0,gt,sr),++O,Lr!==null&&Lr>1114111)if(gt)sr.invalidCodePoint(O,K,we);else return{code:null,pos:O}}else({code:Lr,pos:O}=oo(se,O,K,we,4,!1,gt,sr));return{code:Lr,pos:O}}function Xs(se,O,K){return new r(K,se-O,se)}var ws=new Set([103,109,115,105,121,117,100,118]),Gs=class{constructor(se){let O=se.startIndex||0;this.type=se.type,this.value=se.value,this.start=O+se.start,this.end=O+se.end,this.loc=new n(se.startLoc,se.endLoc)}},Ma=class extends Wt{constructor(se,O){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(K,we,gt,sr)=>this.optionFlags&1024?(this.raise(X.InvalidDigit,Xs(K,we,gt),{radix:sr}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(X.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(X.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(X.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(X.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(K,we,gt)=>{this.recordStrictModeErrors(X.StrictNumericEscape,Xs(K,we,gt))},unterminated:(K,we,gt)=>{throw this.raise(X.UnterminatedString,Xs(K-1,we,gt))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(X.StrictNumericEscape),unterminated:(K,we,gt)=>{throw this.raise(X.UnterminatedTemplate,Xs(K,we,gt))}}),this.state=new OA,this.state.init(se),this.input=O,this.length=O.length,this.comments=[],this.isLookahead=!1}pushToken(se){this.tokens.length=this.state.tokensLength,this.tokens.push(se),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.optionFlags&128&&this.pushToken(new Gs(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(se){return this.match(se)?(this.next(),!0):!1}match(se){return this.state.type===se}createLookaheadState(se){return{pos:se.pos,value:null,type:se.type,start:se.start,end:se.end,context:[this.curContext()],inType:se.inType,startLoc:se.startLoc,lastTokEndLoc:se.lastTokEndLoc,curLine:se.curLine,lineStart:se.lineStart,curPosition:se.curPosition}}lookahead(){let se=this.state;this.state=this.createLookaheadState(se),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let O=this.state;return this.state=se,O}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(se){return Yn.lastIndex=se,Yn.test(this.input)?Yn.lastIndex:se}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(se){return Ko.lastIndex=se,Ko.test(this.input)?Ko.lastIndex:se}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(se){let O=this.input.charCodeAt(se);if((O&64512)===55296&&++sethis.raise(O,K)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(140);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(se){let O;this.isLookahead||(O=this.state.curPosition());let K=this.state.pos,we=this.input.indexOf(se,K+2);if(we===-1)throw this.raise(X.UnterminatedComment,this.state.curPosition());for(this.state.pos=we+se.length,Ru.lastIndex=K+2;Ru.test(this.input)&&Ru.lastIndex<=we;)++this.state.curLine,this.state.lineStart=Ru.lastIndex;if(this.isLookahead)return;let gt={type:"CommentBlock",value:this.input.slice(K+2,we),start:this.sourceToOffsetPos(K),end:this.sourceToOffsetPos(we+se.length),loc:new n(O,this.state.curPosition())};return this.optionFlags&128&&this.pushToken(gt),gt}skipLineComment(se){let O=this.state.pos,K;this.isLookahead||(K=this.state.curPosition());let we=this.input.charCodeAt(this.state.pos+=se);if(this.state.posse)){let gt=this.skipLineComment(3);gt!==void 0&&(this.addComment(gt),O?.push(gt))}else break e}else if(K===60&&!this.inModule&&this.optionFlags&4096){let we=this.state.pos;if(this.input.charCodeAt(we+1)===33&&this.input.charCodeAt(we+2)===45&&this.input.charCodeAt(we+3)===45){let gt=this.skipLineComment(4);gt!==void 0&&(this.addComment(gt),O?.push(gt))}else break e}else break e}}if(O?.length>0){let K=this.state.pos,we={start:this.sourceToOffsetPos(se),end:this.sourceToOffsetPos(K),comments:O,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(we)}}finishToken(se,O){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let K=this.state.type;this.state.type=se,this.state.value=O,this.isLookahead||this.updateContext(K)}replaceToken(se){this.state.type=se,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let se=this.state.pos+1,O=this.codePointAtPos(se);if(O>=48&&O<=57)throw this.raise(X.UnexpectedDigitAfterHash,this.state.curPosition());if(O===123||O===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(O===123?X.RecordExpressionHashIncorrectStartSyntaxType:X.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,O===123?this.finishToken(7):this.finishToken(1)}else gc(O)?(++this.state.pos,this.finishToken(139,this.readWord1(O))):O===92?(++this.state.pos,this.finishToken(139,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let se=this.input.charCodeAt(this.state.pos+1);if(se>=48&&se<=57){this.readNumber(!0);return}se===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let se=this.input.charCodeAt(this.state.pos+1);if(se!==33)return!1;let O=this.state.pos;for(this.state.pos+=1;!Vs(se)&&++this.state.pos=48&&O<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(se){switch(se){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(X.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(X.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let O=this.input.charCodeAt(this.state.pos+1);if(O===120||O===88){this.readRadixNumber(16);return}if(O===111||O===79){this.readRadixNumber(8);return}if(O===98||O===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(se);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(se);return;case 124:case 38:this.readToken_pipe_amp(se);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(se);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(se);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(gc(se)){this.readWord(se);return}}throw this.raise(X.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(se)})}finishOp(se,O){let K=this.input.slice(this.state.pos,this.state.pos+O);this.state.pos+=O,this.finishToken(se,K)}readRegexp(){let se=this.state.startLoc,O=this.state.start+1,K,we,{pos:gt}=this.state;for(;;++gt){if(gt>=this.length)throw this.raise(X.UnterminatedRegExp,a(se,1));let fi=this.input.charCodeAt(gt);if(Vs(fi))throw this.raise(X.UnterminatedRegExp,a(se,1));if(K)K=!1;else{if(fi===91)we=!0;else if(fi===93&&we)we=!1;else if(fi===47&&!we)break;K=fi===92}}let sr=this.input.slice(O,gt);++gt;let Yr="",Lr=()=>a(se,gt+2-O);for(;gt=2&&this.input.charCodeAt(O)===48;if(Lr){let Nl=this.input.slice(O,this.state.pos);if(this.recordStrictModeErrors(X.StrictOctalLiteral,K),!this.state.strict){let ca=Nl.indexOf("_");ca>0&&this.raise(X.ZeroDigitNumericSeparator,a(K,ca))}Yr=Lr&&!/[89]/.test(Nl)}let fi=this.input.charCodeAt(this.state.pos);if(fi===46&&!Yr&&(++this.state.pos,this.readInt(10),we=!0,fi=this.input.charCodeAt(this.state.pos)),(fi===69||fi===101)&&!Yr&&(fi=this.input.charCodeAt(++this.state.pos),(fi===43||fi===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(X.InvalidOrMissingExponent,K),we=!0,sr=!0,fi=this.input.charCodeAt(this.state.pos)),fi===110&&((we||Lr)&&this.raise(X.InvalidBigIntLiteral,K),++this.state.pos,gt=!0),fi===109){this.expectPlugin("decimal",this.state.curPosition()),(sr||Lr)&&this.raise(X.InvalidDecimal,K),++this.state.pos;var $n=!0}if(gc(this.codePointAtPos(this.state.pos)))throw this.raise(X.NumberIdentifier,this.state.curPosition());let ra=this.input.slice(O,this.state.pos).replace(/[_mn]/g,"");if(gt){this.finishToken(136,ra);return}if($n){this.finishToken(137,ra);return}let kc=Yr?parseInt(ra,8):parseFloat(ra);this.finishToken(135,kc)}readCodePoint(se){let{code:O,pos:K}=cc(this.input,this.state.pos,this.state.lineStart,this.state.curLine,se,this.errorHandlers_readCodePoint);return this.state.pos=K,O}readString(se){let{str:O,pos:K,curLine:we,lineStart:gt}=Uf(se===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=K+1,this.state.lineStart=gt,this.state.curLine=we,this.finishToken(134,O)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let se=this.input[this.state.pos],{str:O,firstInvalidLoc:K,pos:we,curLine:gt,lineStart:sr}=Uf("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=we+1,this.state.lineStart=sr,this.state.curLine=gt,K&&(this.state.firstInvalidTemplateEscapePos=new r(K.curLine,K.pos-K.lineStart,this.sourceToOffsetPos(K.pos))),this.input.codePointAt(we)===96?this.finishToken(24,K?null:se+O+"`"):(this.state.pos++,this.finishToken(25,K?null:se+O+"${"))}recordStrictModeErrors(se,O){let K=O.index;this.state.strict&&!this.state.strictErrors.has(K)?this.raise(se,O):this.state.strictErrors.set(K,[se,O])}readWord1(se){this.state.containsEsc=!1;let O="",K=this.state.pos,we=this.state.pos;for(se!==void 0&&(this.state.pos+=se<=65535?1:2);this.state.pos=0;Yr--){let Lr=sr[Yr];if(Lr.loc.index===gt)return sr[Yr]=se(we,K);if(Lr.loc.indexthis.hasPlugin(O)))throw this.raise(X.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:se})}errorBuilder(se){return(O,K,we)=>{this.raise(se,Xs(O,K,we))}}},Dc=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},As=class{constructor(se){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=se}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new Dc)}exit(){let se=this.stack.pop(),O=this.current();for(let[K,we]of Array.from(se.undefinedPrivateNames))O?O.undefinedPrivateNames.has(K)||O.undefinedPrivateNames.set(K,we):this.parser.raise(X.InvalidPrivateFieldResolution,we,{identifierName:K})}declarePrivateName(se,O,K){let{privateNames:we,loneAccessors:gt,undefinedPrivateNames:sr}=this.current(),Yr=we.has(se);if(O&3){let Lr=Yr&>.get(se);if(Lr){let fi=Lr&4,$n=O&4,ra=Lr&3,kc=O&3;Yr=ra===kc||fi!==$n,Yr||gt.delete(se)}else Yr||gt.set(se,O)}Yr&&this.parser.raise(X.PrivateNameRedeclaration,K,{identifierName:se}),we.add(se),sr.delete(se)}usePrivateName(se,O){let K;for(K of this.stack)if(K.privateNames.has(se))return;K?K.undefinedPrivateNames.set(se,O):this.parser.raise(X.InvalidPrivateFieldResolution,O,{identifierName:se})}},Tf=class{constructor(se=0){this.type=se}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}},cm=class extends Tf{constructor(se){super(se),this.declarationErrors=new Map}recordDeclarationError(se,O){let K=O.index;this.declarationErrors.set(K,[se,O])}clearDeclarationError(se){this.declarationErrors.delete(se)}iterateErrors(se){this.declarationErrors.forEach(se)}},Fl=class{constructor(se){this.parser=void 0,this.stack=[new Tf],this.parser=se}enter(se){this.stack.push(se)}exit(){this.stack.pop()}recordParameterInitializerError(se,O){let K=O.loc.start,{stack:we}=this,gt=we.length-1,sr=we[gt];for(;!sr.isCertainlyParameterDeclaration();){if(sr.canBeArrowParameterDeclaration())sr.recordDeclarationError(se,K);else return;sr=we[--gt]}this.parser.raise(se,K)}recordArrowParameterBindingError(se,O){let{stack:K}=this,we=K[K.length-1],gt=O.loc.start;if(we.isCertainlyParameterDeclaration())this.parser.raise(se,gt);else if(we.canBeArrowParameterDeclaration())we.recordDeclarationError(se,gt);else return}recordAsyncArrowParametersError(se){let{stack:O}=this,K=O.length-1,we=O[K];for(;we.canBeArrowParameterDeclaration();)we.type===2&&we.recordDeclarationError(X.AwaitBindingIdentifier,se),we=O[--K]}validateAsPattern(){let{stack:se}=this,O=se[se.length-1];O.canBeArrowParameterDeclaration()&&O.iterateErrors(([K,we])=>{this.parser.raise(K,we);let gt=se.length-2,sr=se[gt];for(;sr.canBeArrowParameterDeclaration();)sr.clearDeclarationError(we.index),sr=se[--gt]})}};function rc(){return new Tf(3)}function sd(){return new cm(1)}function Om(){return new cm(2)}function il(){return new Tf}var FA=class{constructor(){this.stacks=[]}enter(se){this.stacks.push(se)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}};function ZA(se,O){return(se?2:0)|(O?1:0)}var El=class extends Ma{addExtra(se,O,K,we=!0){if(!se)return;let{extra:gt}=se;gt==null&&(gt={},se.extra=gt),we?gt[O]=K:Object.defineProperty(gt,O,{enumerable:we,value:K})}isContextual(se){return this.state.type===se&&!this.state.containsEsc}isUnparsedContextual(se,O){let K=se+O.length;if(this.input.slice(se,K)===O){let we=this.input.charCodeAt(K);return!(Cg(we)||(we&64512)===55296)}return!1}isLookaheadContextual(se){let O=this.nextTokenStart();return this.isUnparsedContextual(O,se)}eatContextual(se){return this.isContextual(se)?(this.next(),!0):!1}expectContextual(se,O){if(!this.eatContextual(se)){if(O!=null)throw this.raise(O,this.state.startLoc);this.unexpected(null,se)}}canInsertSemicolon(){return this.match(140)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return Ju(this.input,this.offsetToSourcePos(this.state.lastTokEndLoc.index),this.state.start)}hasFollowingLineBreak(){return Ju(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(se=!0){(se?this.isLineTerminator():this.eat(13))||this.raise(X.MissingSemicolon,this.state.lastTokEndLoc)}expect(se,O){this.eat(se)||this.unexpected(O,se)}tryParse(se,O=this.state.clone()){let K={node:null};try{let we=se((gt=null)=>{throw K.node=gt,K});if(this.state.errors.length>O.errors.length){let gt=this.state;return this.state=O,this.state.tokensLength=gt.tokensLength,{node:we,error:gt.errors[O.errors.length],thrown:!1,aborted:!1,failState:gt}}return{node:we,error:null,thrown:!1,aborted:!1,failState:null}}catch(we){let gt=this.state;if(this.state=O,we instanceof SyntaxError)return{node:null,error:we,thrown:!0,aborted:!1,failState:gt};if(we===K)return{node:K.node,error:null,thrown:!1,aborted:!0,failState:gt};throw we}}checkExpressionErrors(se,O){if(!se)return!1;let{shorthandAssignLoc:K,doubleProtoLoc:we,privateKeyLoc:gt,optionalParametersLoc:sr}=se,Yr=!!K||!!we||!!sr||!!gt;if(!O)return Yr;K!=null&&this.raise(X.InvalidCoverInitializedName,K),we!=null&&this.raise(X.DuplicateProto,we),gt!=null&&this.raise(X.UnexpectedPrivateField,gt),sr!=null&&this.unexpected(sr)}isLiteralPropertyName(){return jt(this.state.type)}isPrivateName(se){return se.type==="PrivateName"}getPrivateNameSV(se){return se.id.name}hasPropertyAsPrivateName(se){return(se.type==="MemberExpression"||se.type==="OptionalMemberExpression")&&this.isPrivateName(se.property)}isObjectProperty(se){return se.type==="ObjectProperty"}isObjectMethod(se){return se.type==="ObjectMethod"}initializeScopes(se=this.options.sourceType==="module"){let O=this.state.labels;this.state.labels=[];let K=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let we=this.inModule;this.inModule=se;let gt=this.scope,sr=this.getScopeHandler();this.scope=new sr(this,se);let Yr=this.prodParam;this.prodParam=new FA;let Lr=this.classScope;this.classScope=new As(this);let fi=this.expressionScope;return this.expressionScope=new Fl(this),()=>{this.state.labels=O,this.exportedIdentifiers=K,this.inModule=we,this.scope=gt,this.prodParam=Yr,this.classScope=Lr,this.expressionScope=fi}}enterInitialScopes(){let se=0;this.inModule&&(se|=2),this.scope.enter(1),this.prodParam.enter(se)}checkDestructuringPrivate(se){let{privateKeyLoc:O}=se;O!==null&&this.expectPlugin("destructuringPrivate",O)}},yg=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Mp=class{constructor(se,O,K){this.type="",this.start=O,this.end=0,this.loc=new n(K),se?.optionFlags&64&&(this.range=[O,0]),se!=null&&se.filename&&(this.loc.filename=se.filename)}},MA=Mp.prototype;MA.__clone=function(){let se=new Mp(void 0,this.start,this.loc.start),O=Object.keys(this);for(let K=0,we=O.length;K`Cannot overwrite reserved type ${se}.`,DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:({memberName:se,enumName:O})=>`Boolean enum members need to be initialized. Use either \`${se} = true,\` or \`${se} = false,\` in enum \`${O}\`.`,EnumDuplicateMemberName:({memberName:se,enumName:O})=>`Enum member names need to be unique, but the name \`${se}\` has already been used before in enum \`${O}\`.`,EnumInconsistentMemberValues:({enumName:se})=>`Enum \`${se}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:se,enumName:O})=>`Enum type \`${se}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${O}\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:se})=>`Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${se}\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:se,memberName:O,explicitType:K})=>`Enum \`${se}\` has type \`${K}\`, so the initializer of \`${O}\` needs to be a ${K} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:se,memberName:O})=>`Symbol enum members cannot be initialized. Use \`${O},\` in enum \`${se}\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:se,memberName:O})=>`The enum member initializer for \`${O}\` needs to be a literal (either a boolean, number, or string) in enum \`${se}\`.`,EnumInvalidMemberName:({enumName:se,memberName:O,suggestion:K})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${O}\`, consider using \`${K}\`, in enum \`${se}\`.`,EnumNumberMemberNotInitialized:({enumName:se,memberName:O})=>`Number enum members need to be initialized, e.g. \`${O} = 1\` in enum \`${se}\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:se})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \`${se}\`.`,GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:({reservedType:se})=>`Unexpected reserved type ${se}.`,UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.",UnsupportedDeclareExportKind:({unsupportedExportKind:se,suggestion:O})=>`\`declare export ${se}\` is not supported. Use \`${O}\` instead.`,UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function Wa(se){return se.type==="DeclareExportAllDeclaration"||se.type==="DeclareExportDeclaration"&&(!se.declaration||se.declaration.type!=="TypeAlias"&&se.declaration.type!=="InterfaceDeclaration")}function Ca(se){return se.importKind==="type"||se.importKind==="typeof"}var ld={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function Rp(se,O){let K=[],we=[];for(let gt=0;gtclass extends se{constructor(...O){super(...O),this.flowPragma=void 0}getScopeHandler(){return pu}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}finishToken(O,K){O!==134&&O!==13&&O!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(O,K)}addComment(O){if(this.flowPragma===void 0){let K=np.exec(O.value);if(K)if(K[1]==="flow")this.flowPragma="flow";else if(K[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}super.addComment(O)}flowParseTypeInitialiser(O){let K=this.state.inType;this.state.inType=!0,this.expect(O||14);let we=this.flowParseType();return this.state.inType=K,we}flowParsePredicate(){let O=this.startNode(),K=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>K.index+1&&this.raise(Fs.UnexpectedSpaceBetweenModuloChecks,K),this.eat(10)?(O.value=super.parseExpression(),this.expect(11),this.finishNode(O,"DeclaredPredicate")):this.finishNode(O,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){let O=this.state.inType;this.state.inType=!0,this.expect(14);let K=null,we=null;return this.match(54)?(this.state.inType=O,we=this.flowParsePredicate()):(K=this.flowParseType(),this.state.inType=O,this.match(54)&&(we=this.flowParsePredicate())),[K,we]}flowParseDeclareClass(O){return this.next(),this.flowParseInterfaceish(O,!0),this.finishNode(O,"DeclareClass")}flowParseDeclareFunction(O){this.next();let K=O.id=this.parseIdentifier(),we=this.startNode(),gt=this.startNode();this.match(47)?we.typeParameters=this.flowParseTypeParameterDeclaration():we.typeParameters=null,this.expect(10);let sr=this.flowParseFunctionTypeParams();return we.params=sr.params,we.rest=sr.rest,we.this=sr._this,this.expect(11),[we.returnType,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),gt.typeAnnotation=this.finishNode(we,"FunctionTypeAnnotation"),K.typeAnnotation=this.finishNode(gt,"TypeAnnotation"),this.resetEndLocation(K),this.semicolon(),this.scope.declareName(O.id.name,2048,O.id.loc.start),this.finishNode(O,"DeclareFunction")}flowParseDeclare(O,K){if(this.match(80))return this.flowParseDeclareClass(O);if(this.match(68))return this.flowParseDeclareFunction(O);if(this.match(74))return this.flowParseDeclareVariable(O);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(O):(K&&this.raise(Fs.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(O));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(O);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(O);if(this.isContextual(129))return this.flowParseDeclareInterface(O);if(this.match(82))return this.flowParseDeclareExportDeclaration(O,K);this.unexpected()}flowParseDeclareVariable(O){return this.next(),O.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(O.id.name,5,O.id.loc.start),this.semicolon(),this.finishNode(O,"DeclareVariable")}flowParseDeclareModule(O){this.scope.enter(0),this.match(134)?O.id=super.parseExprAtom():O.id=this.parseIdentifier();let K=O.body=this.startNode(),we=K.body=[];for(this.expect(5);!this.match(8);){let Yr=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(Fs.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(Yr)):(this.expectContextual(125,Fs.UnsupportedStatementInDeclareModule),Yr=this.flowParseDeclare(Yr,!0)),we.push(Yr)}this.scope.exit(),this.expect(8),this.finishNode(K,"BlockStatement");let gt=null,sr=!1;return we.forEach(Yr=>{Wa(Yr)?(gt==="CommonJS"&&this.raise(Fs.AmbiguousDeclareModuleKind,Yr),gt="ES"):Yr.type==="DeclareModuleExports"&&(sr&&this.raise(Fs.DuplicateDeclareModuleExports,Yr),gt==="ES"&&this.raise(Fs.AmbiguousDeclareModuleKind,Yr),gt="CommonJS",sr=!0)}),O.kind=gt||"CommonJS",this.finishNode(O,"DeclareModule")}flowParseDeclareExportDeclaration(O,K){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?O.declaration=this.flowParseDeclare(this.startNode()):(O.declaration=this.flowParseType(),this.semicolon()),O.default=!0,this.finishNode(O,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!K){let we=this.state.value;throw this.raise(Fs.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:we,suggestion:ld[we]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return O.declaration=this.flowParseDeclare(this.startNode()),O.default=!1,this.finishNode(O,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return O=this.parseExport(O,null),O.type==="ExportNamedDeclaration"&&(O.type="ExportDeclaration",O.default=!1,delete O.exportKind),O.type="Declare"+O.type,O;this.unexpected()}flowParseDeclareModuleExports(O){return this.next(),this.expectContextual(111),O.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(O,"DeclareModuleExports")}flowParseDeclareTypeAlias(O){this.next();let K=this.flowParseTypeAlias(O);return K.type="DeclareTypeAlias",K}flowParseDeclareOpaqueType(O){this.next();let K=this.flowParseOpaqueType(O,!0);return K.type="DeclareOpaqueType",K}flowParseDeclareInterface(O){return this.next(),this.flowParseInterfaceish(O,!1),this.finishNode(O,"DeclareInterface")}flowParseInterfaceish(O,K){if(O.id=this.flowParseRestrictedIdentifier(!K,!0),this.scope.declareName(O.id.name,K?17:8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.extends=[],this.eat(81))do O.extends.push(this.flowParseInterfaceExtends());while(!K&&this.eat(12));if(K){if(O.implements=[],O.mixins=[],this.eatContextual(117))do O.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do O.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}O.body=this.flowParseObjectType({allowStatic:K,allowExact:!1,allowSpread:!1,allowProto:K,allowInexact:!1})}flowParseInterfaceExtends(){let O=this.startNode();return O.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?O.typeParameters=this.flowParseTypeParameterInstantiation():O.typeParameters=null,this.finishNode(O,"InterfaceExtends")}flowParseInterface(O){return this.flowParseInterfaceish(O,!1),this.finishNode(O,"InterfaceDeclaration")}checkNotUnderscore(O){O==="_"&&this.raise(Fs.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(O,K,we){oa.has(O)&&this.raise(we?Fs.AssignReservedType:Fs.UnexpectedReservedType,K,{reservedType:O})}flowParseRestrictedIdentifier(O,K){return this.checkReservedType(this.state.value,this.state.startLoc,K),this.parseIdentifier(O)}flowParseTypeAlias(O){return O.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(O.id.name,8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(O,"TypeAlias")}flowParseOpaqueType(O,K){return this.expectContextual(130),O.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(O.id.name,8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.supertype=null,this.match(14)&&(O.supertype=this.flowParseTypeInitialiser(14)),O.impltype=null,K||(O.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(O,"OpaqueType")}flowParseTypeParameter(O=!1){let K=this.state.startLoc,we=this.startNode(),gt=this.flowParseVariance(),sr=this.flowParseTypeAnnotatableIdentifier();return we.name=sr.name,we.variance=gt,we.bound=sr.typeAnnotation,this.match(29)?(this.eat(29),we.default=this.flowParseType()):O&&this.raise(Fs.MissingTypeParamDefault,K),this.finishNode(we,"TypeParameter")}flowParseTypeParameterDeclaration(){let O=this.state.inType,K=this.startNode();K.params=[],this.state.inType=!0,this.match(47)||this.match(143)?this.next():this.unexpected();let we=!1;do{let gt=this.flowParseTypeParameter(we);K.params.push(gt),gt.default&&(we=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=O,this.finishNode(K,"TypeParameterDeclaration")}flowInTopLevelContext(O){if(this.curContext()!==Se.brace){let K=this.state.context;this.state.context=[K[0]];try{return O()}finally{this.state.context=K}}else return O()}flowParseTypeParameterInstantiationInExpression(){if(this.reScan_lt()===47)return this.flowParseTypeParameterInstantiation()}flowParseTypeParameterInstantiation(){let O=this.startNode(),K=this.state.inType;return this.state.inType=!0,O.params=[],this.flowInTopLevelContext(()=>{this.expect(47);let we=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)O.params.push(this.flowParseType()),this.match(48)||this.expect(12);this.state.noAnonFunctionType=we}),this.state.inType=K,!this.state.inType&&this.curContext()===Se.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(O,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){if(this.reScan_lt()!==47)return;let O=this.startNode(),K=this.state.inType;for(O.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)O.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=K,this.finishNode(O,"TypeParameterInstantiation")}flowParseInterfaceType(){let O=this.startNode();if(this.expectContextual(129),O.extends=[],this.eat(81))do O.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return O.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(O,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(135)||this.match(134)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(O,K,we){return O.static=K,this.lookahead().type===14?(O.id=this.flowParseObjectPropertyKey(),O.key=this.flowParseTypeInitialiser()):(O.id=null,O.key=this.flowParseType()),this.expect(3),O.value=this.flowParseTypeInitialiser(),O.variance=we,this.finishNode(O,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(O,K){return O.static=K,O.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(O.method=!0,O.optional=!1,O.value=this.flowParseObjectTypeMethodish(this.startNodeAt(O.loc.start))):(O.method=!1,this.eat(17)&&(O.optional=!0),O.value=this.flowParseTypeInitialiser()),this.finishNode(O,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(O){for(O.params=[],O.rest=null,O.typeParameters=null,O.this=null,this.match(47)&&(O.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(O.this=this.flowParseFunctionTypeParam(!0),O.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)O.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(O.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),O.returnType=this.flowParseTypeInitialiser(),this.finishNode(O,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(O,K){let we=this.startNode();return O.static=K,O.value=this.flowParseObjectTypeMethodish(we),this.finishNode(O,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:O,allowExact:K,allowSpread:we,allowProto:gt,allowInexact:sr}){let Yr=this.state.inType;this.state.inType=!0;let Lr=this.startNode();Lr.callProperties=[],Lr.properties=[],Lr.indexers=[],Lr.internalSlots=[];let fi,$n,ra=!1;for(K&&this.match(6)?(this.expect(6),fi=9,$n=!0):(this.expect(5),fi=8,$n=!1),Lr.exact=$n;!this.match(fi);){let Nl=!1,ca=null,Bl=null,$g=this.startNode();if(gt&&this.isContextual(118)){let lI=this.lookahead();lI.type!==14&&lI.type!==17&&(this.next(),ca=this.state.startLoc,O=!1)}if(O&&this.isContextual(106)){let lI=this.lookahead();lI.type!==14&&lI.type!==17&&(this.next(),Nl=!0)}let SA=this.flowParseVariance();if(this.eat(0))ca!=null&&this.unexpected(ca),this.eat(0)?(SA&&this.unexpected(SA.loc.start),Lr.internalSlots.push(this.flowParseObjectTypeInternalSlot($g,Nl))):Lr.indexers.push(this.flowParseObjectTypeIndexer($g,Nl,SA));else if(this.match(10)||this.match(47))ca!=null&&this.unexpected(ca),SA&&this.unexpected(SA.loc.start),Lr.callProperties.push(this.flowParseObjectTypeCallProperty($g,Nl));else{let lI="init";if(this.isContextual(99)||this.isContextual(104)){let Ib=this.lookahead();jt(Ib.type)&&(lI=this.state.value,this.next())}let lp=this.flowParseObjectTypeProperty($g,Nl,ca,SA,lI,we,sr??!$n);lp===null?(ra=!0,Bl=this.state.lastTokStartLoc):Lr.properties.push(lp)}this.flowObjectTypeSemicolon(),Bl&&!this.match(8)&&!this.match(9)&&this.raise(Fs.UnexpectedExplicitInexactInObject,Bl)}this.expect(fi),we&&(Lr.inexact=ra);let kc=this.finishNode(Lr,"ObjectTypeAnnotation");return this.state.inType=Yr,kc}flowParseObjectTypeProperty(O,K,we,gt,sr,Yr,Lr){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(Yr?Lr||this.raise(Fs.InexactInsideExact,this.state.lastTokStartLoc):this.raise(Fs.InexactInsideNonObject,this.state.lastTokStartLoc),gt&&this.raise(Fs.InexactVariance,gt),null):(Yr||this.raise(Fs.UnexpectedSpreadType,this.state.lastTokStartLoc),we!=null&&this.unexpected(we),gt&&this.raise(Fs.SpreadVariance,gt),O.argument=this.flowParseType(),this.finishNode(O,"ObjectTypeSpreadProperty"));{O.key=this.flowParseObjectPropertyKey(),O.static=K,O.proto=we!=null,O.kind=sr;let fi=!1;return this.match(47)||this.match(10)?(O.method=!0,we!=null&&this.unexpected(we),gt&&this.unexpected(gt.loc.start),O.value=this.flowParseObjectTypeMethodish(this.startNodeAt(O.loc.start)),(sr==="get"||sr==="set")&&this.flowCheckGetterSetterParams(O),!Yr&&O.key.name==="constructor"&&O.value.this&&this.raise(Fs.ThisParamBannedInConstructor,O.value.this)):(sr!=="init"&&this.unexpected(),O.method=!1,this.eat(17)&&(fi=!0),O.value=this.flowParseTypeInitialiser(),O.variance=gt),O.optional=fi,this.finishNode(O,"ObjectTypeProperty")}}flowCheckGetterSetterParams(O){let K=O.kind==="get"?0:1,we=O.value.params.length+(O.value.rest?1:0);O.value.this&&this.raise(O.kind==="get"?Fs.GetterMayNotHaveThisParam:Fs.SetterMayNotHaveThisParam,O.value.this),we!==K&&this.raise(O.kind==="get"?X.BadGetterArity:X.BadSetterArity,O),O.kind==="set"&&O.value.rest&&this.raise(X.BadSetterRestParameter,O)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(O,K){var we;(we=O)!=null||(O=this.state.startLoc);let gt=K||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let sr=this.startNodeAt(O);sr.qualification=gt,sr.id=this.flowParseRestrictedIdentifier(!0),gt=this.finishNode(sr,"QualifiedTypeIdentifier")}return gt}flowParseGenericType(O,K){let we=this.startNodeAt(O);return we.typeParameters=null,we.id=this.flowParseQualifiedTypeIdentifier(O,K),this.match(47)&&(we.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(we,"GenericTypeAnnotation")}flowParseTypeofType(){let O=this.startNode();return this.expect(87),O.argument=this.flowParsePrimaryType(),this.finishNode(O,"TypeofTypeAnnotation")}flowParseTupleType(){let O=this.startNode();for(O.types=[],this.expect(0);this.state.possuper.parseFunctionBody(O,!0,we));return}super.parseFunctionBody(O,!1,we)}parseFunctionBodyAndFinish(O,K,we=!1){if(this.match(14)){let gt=this.startNode();[gt.typeAnnotation,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),O.returnType=gt.typeAnnotation?this.finishNode(gt,"TypeAnnotation"):null}return super.parseFunctionBodyAndFinish(O,K,we)}parseStatementLike(O){if(this.state.strict&&this.isContextual(129)){let we=this.lookahead();if(ke(we.type)){let gt=this.startNode();return this.next(),this.flowParseInterface(gt)}}else if(this.isContextual(126)){let we=this.startNode();return this.next(),this.flowParseEnumDeclaration(we)}let K=super.parseStatementLike(O);return this.flowPragma===void 0&&!this.isValidDirective(K)&&(this.flowPragma=null),K}parseExpressionStatement(O,K,we){if(K.type==="Identifier"){if(K.name==="declare"){if(this.match(80)||qr(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(O)}else if(qr(this.state.type)){if(K.name==="interface")return this.flowParseInterface(O);if(K.name==="type")return this.flowParseTypeAlias(O);if(K.name==="opaque")return this.flowParseOpaqueType(O,!1)}}return super.parseExpressionStatement(O,K,we)}shouldParseExportDeclaration(){let{type:O}=this.state;return O===126||po(O)?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:O}=this.state;return O===126||po(O)?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.isContextual(126)){let O=this.startNode();return this.next(),this.flowParseEnumDeclaration(O)}return super.parseExportDefaultExpression()}parseConditional(O,K,we){if(!this.match(17))return O;if(this.state.maybeInArrowParameters){let kc=this.lookaheadCharCode();if(kc===44||kc===61||kc===58||kc===41)return this.setOptionalParametersError(we),O}this.expect(17);let gt=this.state.clone(),sr=this.state.noArrowAt,Yr=this.startNodeAt(K),{consequent:Lr,failed:fi}=this.tryParseConditionalConsequent(),[$n,ra]=this.getArrowLikeExpressions(Lr);if(fi||ra.length>0){let kc=[...sr];if(ra.length>0){this.state=gt,this.state.noArrowAt=kc;for(let Nl=0;Nl1&&this.raise(Fs.AmbiguousConditionalArrow,gt.startLoc),fi&&$n.length===1&&(this.state=gt,kc.push($n[0].start),this.state.noArrowAt=kc,{consequent:Lr,failed:fi}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(Lr,!0),this.state.noArrowAt=sr,this.expect(14),Yr.test=O,Yr.consequent=Lr,Yr.alternate=this.forwardNoArrowParamsConversionAt(Yr,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(Yr,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let O=this.parseMaybeAssignAllowIn(),K=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:O,failed:K}}getArrowLikeExpressions(O,K){let we=[O],gt=[];for(;we.length!==0;){let sr=we.pop();sr.type==="ArrowFunctionExpression"&&sr.body.type!=="BlockStatement"?(sr.typeParameters||!sr.returnType?this.finishArrowValidation(sr):gt.push(sr),we.push(sr.body)):sr.type==="ConditionalExpression"&&(we.push(sr.consequent),we.push(sr.alternate))}return K?(gt.forEach(sr=>this.finishArrowValidation(sr)),[gt,[]]):Rp(gt,sr=>sr.params.every(Yr=>this.isAssignable(Yr,!0)))}finishArrowValidation(O){var K;this.toAssignableList(O.params,(K=O.extra)==null?void 0:K.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(O,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(O,K){let we;return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start))?(this.state.noArrowParamsConversionAt.push(this.state.start),we=K(),this.state.noArrowParamsConversionAt.pop()):we=K(),we}parseParenItem(O,K){let we=super.parseParenItem(O,K);if(this.eat(17)&&(we.optional=!0,this.resetEndLocation(O)),this.match(14)){let gt=this.startNodeAt(K);return gt.expression=we,gt.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(gt,"TypeCastExpression")}return we}assertModuleNodeAllowed(O){O.type==="ImportDeclaration"&&(O.importKind==="type"||O.importKind==="typeof")||O.type==="ExportNamedDeclaration"&&O.exportKind==="type"||O.type==="ExportAllDeclaration"&&O.exportKind==="type"||super.assertModuleNodeAllowed(O)}parseExportDeclaration(O){if(this.isContextual(130)){O.exportKind="type";let K=this.startNode();return this.next(),this.match(5)?(O.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(O),null):this.flowParseTypeAlias(K)}else if(this.isContextual(131)){O.exportKind="type";let K=this.startNode();return this.next(),this.flowParseOpaqueType(K,!1)}else if(this.isContextual(129)){O.exportKind="type";let K=this.startNode();return this.next(),this.flowParseInterface(K)}else if(this.isContextual(126)){O.exportKind="value";let K=this.startNode();return this.next(),this.flowParseEnumDeclaration(K)}else return super.parseExportDeclaration(O)}eatExportStar(O){return super.eatExportStar(O)?!0:this.isContextual(130)&&this.lookahead().type===55?(O.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(O){let{startLoc:K}=this.state,we=super.maybeParseExportNamespaceSpecifier(O);return we&&O.exportKind==="type"&&this.unexpected(K),we}parseClassId(O,K,we){super.parseClassId(O,K,we),this.match(47)&&(O.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(O,K,we){let{startLoc:gt}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(O,K))return;K.declare=!0}super.parseClassMember(O,K,we),K.declare&&(K.type!=="ClassProperty"&&K.type!=="ClassPrivateProperty"&&K.type!=="PropertyDefinition"?this.raise(Fs.DeclareClassElement,gt):K.value&&this.raise(Fs.DeclareClassFieldInitializer,K.value))}isIterator(O){return O==="iterator"||O==="asyncIterator"}readIterator(){let O=super.readWord1(),K="@@"+O;(!this.isIterator(O)||!this.state.inType)&&this.raise(X.InvalidIdentifier,this.state.curPosition(),{identifierName:K}),this.finishToken(132,K)}getTokenFromCode(O){let K=this.input.charCodeAt(this.state.pos+1);O===123&&K===124?this.finishOp(6,2):this.state.inType&&(O===62||O===60)?this.finishOp(O===62?48:47,1):this.state.inType&&O===63?K===46?this.finishOp(18,2):this.finishOp(17,1):Yl(O,K,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(O)}isAssignable(O,K){return O.type==="TypeCastExpression"?this.isAssignable(O.expression,K):super.isAssignable(O,K)}toAssignable(O,K=!1){!K&&O.type==="AssignmentExpression"&&O.left.type==="TypeCastExpression"&&(O.left=this.typeCastToParameter(O.left)),super.toAssignable(O,K)}toAssignableList(O,K,we){for(let gt=0;gt1||!K)&&this.raise(Fs.TypeCastInPattern,sr.typeAnnotation)}return O}parseArrayLike(O,K,we,gt){let sr=super.parseArrayLike(O,K,we,gt);return K&&!this.state.maybeInArrowParameters&&this.toReferencedList(sr.elements),sr}isValidLVal(O,K,we){return O==="TypeCastExpression"||super.isValidLVal(O,K,we)}parseClassProperty(O){return this.match(14)&&(O.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(O)}parseClassPrivateProperty(O){return this.match(14)&&(O.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(O)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(O){return!this.match(14)&&super.isNonstaticConstructor(O)}pushClassMethod(O,K,we,gt,sr,Yr){if(K.variance&&this.unexpected(K.variance.loc.start),delete K.variance,this.match(47)&&(K.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(O,K,we,gt,sr,Yr),K.params&&sr){let Lr=K.params;Lr.length>0&&this.isThisParam(Lr[0])&&this.raise(Fs.ThisParamBannedInConstructor,K)}else if(K.type==="MethodDefinition"&&sr&&K.value.params){let Lr=K.value.params;Lr.length>0&&this.isThisParam(Lr[0])&&this.raise(Fs.ThisParamBannedInConstructor,K)}}pushClassPrivateMethod(O,K,we,gt){K.variance&&this.unexpected(K.variance.loc.start),delete K.variance,this.match(47)&&(K.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(O,K,we,gt)}parseClassSuper(O){if(super.parseClassSuper(O),O.superClass&&(this.match(47)||this.match(51))&&(O.superTypeParameters=this.flowParseTypeParameterInstantiationInExpression()),this.isContextual(113)){this.next();let K=O.implements=[];do{let we=this.startNode();we.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?we.typeParameters=this.flowParseTypeParameterInstantiation():we.typeParameters=null,K.push(this.finishNode(we,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(O){super.checkGetterSetterParams(O);let K=this.getObjectOrClassMethodParams(O);if(K.length>0){let we=K[0];this.isThisParam(we)&&O.kind==="get"?this.raise(Fs.GetterMayNotHaveThisParam,we):this.isThisParam(we)&&this.raise(Fs.SetterMayNotHaveThisParam,we)}}parsePropertyNamePrefixOperator(O){O.variance=this.flowParseVariance()}parseObjPropValue(O,K,we,gt,sr,Yr,Lr){O.variance&&this.unexpected(O.variance.loc.start),delete O.variance;let fi;this.match(47)&&!Yr&&(fi=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());let $n=super.parseObjPropValue(O,K,we,gt,sr,Yr,Lr);return fi&&(($n.value||$n).typeParameters=fi),$n}parseFunctionParamType(O){return this.eat(17)&&(O.type!=="Identifier"&&this.raise(Fs.PatternIsOptional,O),this.isThisParam(O)&&this.raise(Fs.ThisParamMayNotBeOptional,O),O.optional=!0),this.match(14)?O.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(O)&&this.raise(Fs.ThisParamAnnotationRequired,O),this.match(29)&&this.isThisParam(O)&&this.raise(Fs.ThisParamNoDefault,O),this.resetEndLocation(O),O}parseMaybeDefault(O,K){let we=super.parseMaybeDefault(O,K);return we.type==="AssignmentPattern"&&we.typeAnnotation&&we.right.startsuper.parseMaybeAssign(O,K),gt),!sr.error)return sr.node;let{context:fi}=this.state,$n=fi[fi.length-1];($n===Se.j_oTag||$n===Se.j_expr)&&fi.pop()}if((we=sr)!=null&&we.error||this.match(47)){var Yr,Lr;gt=gt||this.state.clone();let fi,$n=this.tryParse(kc=>{var Nl;fi=this.flowParseTypeParameterDeclaration();let ca=this.forwardNoArrowParamsConversionAt(fi,()=>{let $g=super.parseMaybeAssign(O,K);return this.resetStartLocationFromNode($g,fi),$g});(Nl=ca.extra)!=null&&Nl.parenthesized&&kc();let Bl=this.maybeUnwrapTypeCastExpression(ca);return Bl.type!=="ArrowFunctionExpression"&&kc(),Bl.typeParameters=fi,this.resetStartLocationFromNode(Bl,fi),ca},gt),ra=null;if($n.node&&this.maybeUnwrapTypeCastExpression($n.node).type==="ArrowFunctionExpression"){if(!$n.error&&!$n.aborted)return $n.node.async&&this.raise(Fs.UnexpectedTypeParameterBeforeAsyncArrowFunction,fi),$n.node;ra=$n.node}if((Yr=sr)!=null&&Yr.node)return this.state=sr.failState,sr.node;if(ra)return this.state=$n.failState,ra;throw(Lr=sr)!=null&&Lr.thrown?sr.error:$n.thrown?$n.error:this.raise(Fs.UnexpectedTokenAfterTypeParameter,fi)}return super.parseMaybeAssign(O,K)}parseArrow(O){if(this.match(14)){let K=this.tryParse(()=>{let we=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let gt=this.startNode();return[gt.typeAnnotation,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=we,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),gt});if(K.thrown)return null;K.error&&(this.state=K.failState),O.returnType=K.node.typeAnnotation?this.finishNode(K.node,"TypeAnnotation"):null}return super.parseArrow(O)}shouldParseArrow(O){return this.match(14)||super.shouldParseArrow(O)}setArrowFunctionParameters(O,K){this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start))?O.params=K:super.setArrowFunctionParameters(O,K)}checkParams(O,K,we,gt=!0){if(!(we&&this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start)))){for(let sr=0;sr0&&this.raise(Fs.ThisParamMustBeFirst,O.params[sr]);super.checkParams(O,K,we,gt)}}parseParenAndDistinguishExpression(O){return super.parseParenAndDistinguishExpression(O&&!this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)))}parseSubscripts(O,K,we){if(O.type==="Identifier"&&O.name==="async"&&this.state.noArrowAt.includes(K.index)){this.next();let gt=this.startNodeAt(K);gt.callee=O,gt.arguments=super.parseCallExpressionArguments(11),O=this.finishNode(gt,"CallExpression")}else if(O.type==="Identifier"&&O.name==="async"&&this.match(47)){let gt=this.state.clone(),sr=this.tryParse(Lr=>this.parseAsyncArrowWithTypeParameters(K)||Lr(),gt);if(!sr.error&&!sr.aborted)return sr.node;let Yr=this.tryParse(()=>super.parseSubscripts(O,K,we),gt);if(Yr.node&&!Yr.error)return Yr.node;if(sr.node)return this.state=sr.failState,sr.node;if(Yr.node)return this.state=Yr.failState,Yr.node;throw sr.error||Yr.error}return super.parseSubscripts(O,K,we)}parseSubscript(O,K,we,gt){if(this.match(18)&&this.isLookaheadToken_lt()){if(gt.optionalChainMember=!0,we)return gt.stop=!0,O;this.next();let sr=this.startNodeAt(K);return sr.callee=O,sr.typeArguments=this.flowParseTypeParameterInstantiationInExpression(),this.expect(10),sr.arguments=this.parseCallExpressionArguments(11),sr.optional=!0,this.finishCallExpression(sr,!0)}else if(!we&&this.shouldParseTypes()&&(this.match(47)||this.match(51))){let sr=this.startNodeAt(K);sr.callee=O;let Yr=this.tryParse(()=>(sr.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),sr.arguments=super.parseCallExpressionArguments(11),gt.optionalChainMember&&(sr.optional=!1),this.finishCallExpression(sr,gt.optionalChainMember)));if(Yr.node)return Yr.error&&(this.state=Yr.failState),Yr.node}return super.parseSubscript(O,K,we,gt)}parseNewCallee(O){super.parseNewCallee(O);let K=null;this.shouldParseTypes()&&this.match(47)&&(K=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),O.typeArguments=K}parseAsyncArrowWithTypeParameters(O){let K=this.startNodeAt(O);if(this.parseFunctionParams(K,!1),!!this.parseArrow(K))return super.parseArrowExpression(K,void 0,!0)}readToken_mult_modulo(O){let K=this.input.charCodeAt(this.state.pos+1);if(O===42&&K===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(O)}readToken_pipe_amp(O){let K=this.input.charCodeAt(this.state.pos+1);if(O===124&&K===125){this.finishOp(9,2);return}super.readToken_pipe_amp(O)}parseTopLevel(O,K){let we=super.parseTopLevel(O,K);return this.state.hasFlowComment&&this.raise(Fs.UnterminatedFlowComment,this.state.curPosition()),we}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(Fs.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();let O=this.skipFlowComment();O&&(this.state.pos+=O,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?"*-/":"*/")}skipFlowComment(){let{pos:O}=this.state,K=2;for(;[32,9].includes(this.input.charCodeAt(O+K));)K++;let we=this.input.charCodeAt(K+O),gt=this.input.charCodeAt(K+O+1);return we===58&>===58?K+2:this.input.slice(K+O,K+O+12)==="flow-include"?K+12:we===58&>!==58?K:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(X.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(O,{enumName:K,memberName:we}){this.raise(Fs.EnumBooleanMemberNotInitialized,O,{memberName:we,enumName:K})}flowEnumErrorInvalidMemberInitializer(O,K){return this.raise(K.explicitType?K.explicitType==="symbol"?Fs.EnumInvalidMemberInitializerSymbolType:Fs.EnumInvalidMemberInitializerPrimaryType:Fs.EnumInvalidMemberInitializerUnknownType,O,K)}flowEnumErrorNumberMemberNotInitialized(O,K){this.raise(Fs.EnumNumberMemberNotInitialized,O,K)}flowEnumErrorStringMemberInconsistentlyInitialized(O,K){this.raise(Fs.EnumStringMemberInconsistentlyInitialized,O,K)}flowEnumMemberInit(){let O=this.state.startLoc,K=()=>this.match(12)||this.match(8);switch(this.state.type){case 135:{let we=this.parseNumericLiteral(this.state.value);return K()?{type:"number",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}case 134:{let we=this.parseStringLiteral(this.state.value);return K()?{type:"string",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}case 85:case 86:{let we=this.parseBooleanLiteral(this.match(85));return K()?{type:"boolean",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}default:return{type:"invalid",loc:O}}}flowEnumMemberRaw(){let O=this.state.startLoc,K=this.parseIdentifier(!0),we=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:O};return{id:K,init:we}}flowEnumCheckExplicitTypeMismatch(O,K,we){let{explicitType:gt}=K;gt!==null&>!==we&&this.flowEnumErrorInvalidMemberInitializer(O,K)}flowEnumMembers({enumName:O,explicitType:K}){let we=new Set,gt={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},sr=!1;for(;!this.match(8);){if(this.eat(21)){sr=!0;break}let Yr=this.startNode(),{id:Lr,init:fi}=this.flowEnumMemberRaw(),$n=Lr.name;if($n==="")continue;/^[a-z]/.test($n)&&this.raise(Fs.EnumInvalidMemberName,Lr,{memberName:$n,suggestion:$n[0].toUpperCase()+$n.slice(1),enumName:O}),we.has($n)&&this.raise(Fs.EnumDuplicateMemberName,Lr,{memberName:$n,enumName:O}),we.add($n);let ra={enumName:O,explicitType:K,memberName:$n};switch(Yr.id=Lr,fi.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"boolean"),Yr.init=fi.value,gt.booleanMembers.push(this.finishNode(Yr,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"number"),Yr.init=fi.value,gt.numberMembers.push(this.finishNode(Yr,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"string"),Yr.init=fi.value,gt.stringMembers.push(this.finishNode(Yr,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(fi.loc,ra);case"none":switch(K){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(fi.loc,ra);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(fi.loc,ra);break;default:gt.defaultedMembers.push(this.finishNode(Yr,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:gt,hasUnknownMembers:sr}}flowEnumStringMembers(O,K,{enumName:we}){if(O.length===0)return K;if(K.length===0)return O;if(K.length>O.length){for(let gt of O)this.flowEnumErrorStringMemberInconsistentlyInitialized(gt,{enumName:we});return K}else{for(let gt of K)this.flowEnumErrorStringMemberInconsistentlyInitialized(gt,{enumName:we});return O}}flowEnumParseExplicitType({enumName:O}){if(!this.eatContextual(102))return null;if(!qr(this.state.type))throw this.raise(Fs.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:O});let{value:K}=this.state;return this.next(),K!=="boolean"&&K!=="number"&&K!=="string"&&K!=="symbol"&&this.raise(Fs.EnumInvalidExplicitType,this.state.startLoc,{enumName:O,invalidEnumType:K}),K}flowEnumBody(O,K){let we=K.name,gt=K.loc.start,sr=this.flowEnumParseExplicitType({enumName:we});this.expect(5);let{members:Yr,hasUnknownMembers:Lr}=this.flowEnumMembers({enumName:we,explicitType:sr});switch(O.hasUnknownMembers=Lr,sr){case"boolean":return O.explicitType=!0,O.members=Yr.booleanMembers,this.expect(8),this.finishNode(O,"EnumBooleanBody");case"number":return O.explicitType=!0,O.members=Yr.numberMembers,this.expect(8),this.finishNode(O,"EnumNumberBody");case"string":return O.explicitType=!0,O.members=this.flowEnumStringMembers(Yr.stringMembers,Yr.defaultedMembers,{enumName:we}),this.expect(8),this.finishNode(O,"EnumStringBody");case"symbol":return O.members=Yr.defaultedMembers,this.expect(8),this.finishNode(O,"EnumSymbolBody");default:{let fi=()=>(O.members=[],this.expect(8),this.finishNode(O,"EnumStringBody"));O.explicitType=!1;let $n=Yr.booleanMembers.length,ra=Yr.numberMembers.length,kc=Yr.stringMembers.length,Nl=Yr.defaultedMembers.length;if(!$n&&!ra&&!kc&&!Nl)return fi();if(!$n&&!ra)return O.members=this.flowEnumStringMembers(Yr.stringMembers,Yr.defaultedMembers,{enumName:we}),this.expect(8),this.finishNode(O,"EnumStringBody");if(!ra&&!kc&&$n>=Nl){for(let ca of Yr.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(ca.loc.start,{enumName:we,memberName:ca.id.name});return O.members=Yr.booleanMembers,this.expect(8),this.finishNode(O,"EnumBooleanBody")}else if(!$n&&!kc&&ra>=Nl){for(let ca of Yr.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(ca.loc.start,{enumName:we,memberName:ca.id.name});return O.members=Yr.numberMembers,this.expect(8),this.finishNode(O,"EnumNumberBody")}else return this.raise(Fs.EnumInconsistentMemberValues,gt,{enumName:we}),fi()}}}flowParseEnumDeclaration(O){let K=this.parseIdentifier();return O.id=K,O.body=this.flowEnumBody(this.startNode(),K),this.finishNode(O,"EnumDeclaration")}jsxParseOpeningElementAfterName(O){return this.shouldParseTypes()&&(this.match(47)||this.match(51))&&(O.typeArguments=this.flowParseTypeParameterInstantiationInExpression()),super.jsxParseOpeningElementAfterName(O)}isLookaheadToken_lt(){let O=this.nextTokenStart();if(this.input.charCodeAt(O)===60){let K=this.input.charCodeAt(O+1);return K!==60&&K!==61}return!1}reScan_lt_gt(){let{type:O}=this.state;O===47?(this.state.pos-=1,this.readToken_lt()):O===48&&(this.state.pos-=1,this.readToken_gt())}reScan_lt(){let{type:O}=this.state;return O===51?(this.state.pos-=2,this.finishOp(47,1),47):O}maybeUnwrapTypeCastExpression(O){return O.type==="TypeCastExpression"?O.expression:O}},df=Q`jsx`({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:({openingTagName:se})=>`Expected corresponding JSX closing tag for <${se}>.`,MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:({unexpected:se,HTMLEntity:O})=>`Unexpected token \`${se}\`. Did you mean \`${O}\` or \`{'${se}'}\`?`,UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?"});function Zs(se){return se?se.type==="JSXOpeningFragment"||se.type==="JSXClosingFragment":!1}function so(se){if(se.type==="JSXIdentifier")return se.name;if(se.type==="JSXNamespacedName")return se.namespace.name+":"+se.name.name;if(se.type==="JSXMemberExpression")return so(se.object)+"."+so(se.property);throw new Error("Node had unexpected type: "+se.type)}var Ea=se=>class extends se{jsxReadToken(){let O="",K=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(df.UnterminatedJsxContent,this.state.startLoc);let we=this.input.charCodeAt(this.state.pos);switch(we){case 60:case 123:if(this.state.pos===this.state.start){we===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(143)):super.getTokenFromCode(we);return}O+=this.input.slice(K,this.state.pos),this.finishToken(142,O);return;case 38:O+=this.input.slice(K,this.state.pos),O+=this.jsxReadEntity(),K=this.state.pos;break;case 62:case 125:default:Vs(we)?(O+=this.input.slice(K,this.state.pos),O+=this.jsxReadNewLine(!0),K=this.state.pos):++this.state.pos}}}jsxReadNewLine(O){let K=this.input.charCodeAt(this.state.pos),we;return++this.state.pos,K===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,we=O?` `:`\r `):we=String.fromCharCode(K),++this.state.curLine,this.state.lineStart=this.state.pos,we}jsxReadString(O){let K="",we=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(X.UnterminatedString,this.state.startLoc);let gt=this.input.charCodeAt(this.state.pos);if(gt===O)break;gt===38?(K+=this.input.slice(we,this.state.pos),K+=this.jsxReadEntity(),we=this.state.pos):Vs(gt)?(K+=this.input.slice(we,this.state.pos),K+=this.jsxReadNewLine(!1),we=this.state.pos):++this.state.pos}K+=this.input.slice(we,this.state.pos++),this.finishToken(134,K)}jsxReadEntity(){let O=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let K=10;this.codePointAtPos(this.state.pos)===120&&(K=16,++this.state.pos);let we=this.readInt(K,void 0,!1,"bail");if(we!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(we)}else{let K=0,we=!1;for(;K++<10&&this.state.pos1){for(let we=0;we0){if(K&256){let gt=!!(K&512),sr=(we&4)>0;return gt!==sr}return!0}return K&128&&(we&8)>0?se.names.get(O)&2?!!(K&1):!1:K&2&&(we&1)>0?!0:super.isRedeclaredInScope(se,O,K)}checkLocalExport(se){let{name:O}=se;if(this.hasImport(O))return;let K=this.scopeStack.length;for(let we=K-1;we>=0;we--){let gt=this.scopeStack[we].tsNames.get(O);if((gt&1)>0||(gt&16)>0)return}super.checkLocalExport(se)}},Wn=se=>se.type==="ParenthesizedExpression"?Wn(se.expression):se,di=class extends ls{toAssignable(se,O=!1){var K,we;let gt;switch((se.type==="ParenthesizedExpression"||(K=se.extra)!=null&&K.parenthesized)&&(gt=Wn(se),O?gt.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(X.InvalidParenthesizedAssignment,se):gt.type!=="MemberExpression"&&!this.isOptionalMemberExpression(gt)&&this.raise(X.InvalidParenthesizedAssignment,se):this.raise(X.InvalidParenthesizedAssignment,se)),se.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":se.type="ObjectPattern";for(let Yr=0,Lr=se.properties.length,fi=Lr-1;Yrwe.type!=="ObjectMethod"&&(gt===K||we.type!=="SpreadElement")&&this.isAssignable(we))}case"ObjectProperty":return this.isAssignable(se.value);case"SpreadElement":return this.isAssignable(se.argument);case"ArrayExpression":return se.elements.every(K=>K===null||this.isAssignable(K));case"AssignmentExpression":return se.operator==="=";case"ParenthesizedExpression":return this.isAssignable(se.expression);case"MemberExpression":case"OptionalMemberExpression":return!O;default:return!1}}toReferencedList(se,O){return se}toReferencedListDeep(se,O){this.toReferencedList(se,O);for(let K of se)K?.type==="ArrayExpression"&&this.toReferencedListDeep(K.elements)}parseSpread(se){let O=this.startNode();return this.next(),O.argument=this.parseMaybeAssignAllowIn(se,void 0),this.finishNode(O,"SpreadElement")}parseRestBinding(){let se=this.startNode();return this.next(),se.argument=this.parseBindingAtom(),this.finishNode(se,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{let se=this.startNode();return this.next(),se.elements=this.parseBindingList(3,93,1),this.finishNode(se,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(se,O,K){let we=K&1,gt=[],sr=!0;for(;!this.eat(se);)if(sr?sr=!1:this.expect(12),we&&this.match(12))gt.push(null);else{if(this.eat(se))break;if(this.match(21)){let Yr=this.parseRestBinding();if((this.hasPlugin("flow")||K&2)&&(Yr=this.parseFunctionParamType(Yr)),gt.push(Yr),!this.checkCommaAfterRest(O)){this.expect(se);break}}else{let Yr=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(X.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)Yr.push(this.parseDecorator());gt.push(this.parseAssignableListItem(K,Yr))}}return gt}parseBindingRestProperty(se){return this.next(),se.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(se,"RestElement")}parseBindingProperty(){let{type:se,startLoc:O}=this.state;if(se===21)return this.parseBindingRestProperty(this.startNode());let K=this.startNode();return se===139?(this.expectPlugin("destructuringPrivate",O),this.classScope.usePrivateName(this.state.value,O),K.key=this.parsePrivateName()):this.parsePropertyName(K),K.method=!1,this.parseObjPropValue(K,O,!1,!1,!0,!1)}parseAssignableListItem(se,O){let K=this.parseMaybeDefault();(this.hasPlugin("flow")||se&2)&&this.parseFunctionParamType(K);let we=this.parseMaybeDefault(K.loc.start,K);return O.length&&(K.decorators=O),we}parseFunctionParamType(se){return se}parseMaybeDefault(se,O){var K,we;if((K=se)!=null||(se=this.state.startLoc),O=(we=O)!=null?we:this.parseBindingAtom(),!this.eat(29))return O;let gt=this.startNodeAt(se);return gt.left=O,gt.right=this.parseMaybeAssignAllowIn(),this.finishNode(gt,"AssignmentPattern")}isValidLVal(se,O,K){switch(se){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1}isOptionalMemberExpression(se){return se.type==="OptionalMemberExpression"}checkLVal(se,O,K=64,we=!1,gt=!1,sr=!1){var Yr;let Lr=se.type;if(this.isObjectMethod(se))return;let fi=this.isOptionalMemberExpression(se);if(fi||Lr==="MemberExpression"){fi&&(this.expectPlugin("optionalChainingAssign",se.loc.start),O.type!=="AssignmentExpression"&&this.raise(X.InvalidLhsOptionalChaining,se,{ancestor:O})),K!==64&&this.raise(X.InvalidPropertyBindingPattern,se);return}if(Lr==="Identifier"){this.checkIdentifier(se,K,gt);let{name:Bl}=se;we&&(we.has(Bl)?this.raise(X.ParamDupe,se):we.add(Bl));return}let $n=this.isValidLVal(Lr,!(sr||(Yr=se.extra)!=null&&Yr.parenthesized)&&O.type==="AssignmentExpression",K);if($n===!0)return;if($n===!1){let Bl=K===64?X.InvalidLhs:X.InvalidLhsBinding;this.raise(Bl,se,{ancestor:O});return}let ra,kc;typeof $n=="string"?(ra=$n,kc=Lr==="ParenthesizedExpression"):[ra,kc]=$n;let Nl=Lr==="ArrayPattern"||Lr==="ObjectPattern"?{type:Lr}:O,ca=se[ra];if(Array.isArray(ca))for(let Bl of ca)Bl&&this.checkLVal(Bl,Nl,K,we,gt,kc);else ca&&this.checkLVal(ca,Nl,K,we,gt,kc)}checkIdentifier(se,O,K=!1){this.state.strict&&(K?Xa(se.name,this.inModule):Ps(se.name))&&(O===64?this.raise(X.StrictEvalArguments,se,{referenceName:se.name}):this.raise(X.StrictEvalArgumentsBinding,se,{bindingName:se.name})),O&8192&&se.name==="let"&&this.raise(X.LetInLexicalBinding,se),O&64||this.declareNameFromIdentifier(se,O)}declareNameFromIdentifier(se,O){this.scope.declareName(se.name,O,se.loc.start)}checkToRestConversion(se,O){switch(se.type){case"ParenthesizedExpression":this.checkToRestConversion(se.expression,O);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(O)break;default:this.raise(X.InvalidRestAssignmentPattern,se)}}checkCommaAfterRest(se){return this.match(12)?(this.raise(this.lookaheadCharCode()===se?X.RestTrailingComma:X.ElementAfterRest,this.state.startLoc),!0):!1}};function aa(se){if(se==null)throw new Error(`Unexpected ${se} value.`);return se}function Bo(se){if(!se)throw new Error("Assert fail")}var us=Q`typescript`({AbstractMethodHasImplementation:({methodName:se})=>`Method '${se}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:se})=>`Property '${se}' cannot have an initializer because it is marked abstract.`,AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",AccessorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccessorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:({kind:se})=>`'declare' is not allowed in ${se}ters.`,DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:({modifier:se})=>"Accessibility modifier already seen.",DuplicateModifier:({modifier:se})=>`Duplicate modifier: '${se}'.`,EmptyHeritageClauseType:({token:se})=>`'${se}' list cannot be empty.`,EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:({modifiers:se})=>`'${se[0]}' modifier cannot be used with '${se[1]}' modifier.`,IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:({modifier:se})=>`Index signatures cannot have an accessibility modifier ('${se}').`,IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:({modifier:se})=>`'${se}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:se})=>`'${se}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:se})=>`'${se}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:se})=>`'${se[0]}' modifier must precede '${se[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:({modifier:se})=>`Private elements cannot have an accessibility modifier ('${se}').`,ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccessorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccessorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccessorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:({typeParameterName:se})=>`Single type parameter ${se} should have a trailing comma. Example usage: <${se},>.`,StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:({type:se})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${se}.`});function Ql(se){switch(se){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function LA(se){return se==="private"||se==="public"||se==="protected"}function pf(se){return se==="in"||se==="out"}var ef=se=>class extends se{constructor(...O){super(...O),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:us.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:us.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:us.InvalidModifierOnTypeParameter})}getScopeHandler(){return Dr}tsIsIdentifier(){return qr(this.state.type)}tsTokenCanFollowModifier(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(139)||this.isLiteralPropertyName()}tsNextTokenOnSameLineAndCanFollowModifier(){return this.next(),this.hasPrecedingLineBreak()?!1:this.tsTokenCanFollowModifier()}tsNextTokenCanFollowModifier(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()}tsParseModifier(O,K){if(!qr(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;let we=this.state.value;if(O.includes(we)){if(K&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return we}}tsParseModifiers({allowedModifiers:O,disallowedModifiers:K,stopOnStartOfClassStaticBlock:we,errorTemplate:gt=us.InvalidModifierOnTypeMember},sr){let Yr=(fi,$n,ra,kc)=>{$n===ra&&sr[kc]&&this.raise(us.InvalidModifiersOrder,fi,{orderedModifiers:[ra,kc]})},Lr=(fi,$n,ra,kc)=>{(sr[ra]&&$n===kc||sr[kc]&&$n===ra)&&this.raise(us.IncompatibleModifiers,fi,{modifiers:[ra,kc]})};for(;;){let{startLoc:fi}=this.state,$n=this.tsParseModifier(O.concat(K??[]),we);if(!$n)break;LA($n)?sr.accessibility?this.raise(us.DuplicateAccessibilityModifier,fi,{modifier:$n}):(Yr(fi,$n,$n,"override"),Yr(fi,$n,$n,"static"),Yr(fi,$n,$n,"readonly"),sr.accessibility=$n):pf($n)?(sr[$n]&&this.raise(us.DuplicateModifier,fi,{modifier:$n}),sr[$n]=!0,Yr(fi,$n,"in","out")):(hasOwnProperty.call(sr,$n)?this.raise(us.DuplicateModifier,fi,{modifier:$n}):(Yr(fi,$n,"static","readonly"),Yr(fi,$n,"static","override"),Yr(fi,$n,"override","readonly"),Yr(fi,$n,"abstract","override"),Lr(fi,$n,"declare","override"),Lr(fi,$n,"static","abstract")),sr[$n]=!0),K!=null&&K.includes($n)&&this.raise(gt,fi,{modifier:$n})}}tsIsListTerminator(O){switch(O){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}}tsParseList(O,K){let we=[];for(;!this.tsIsListTerminator(O);)we.push(K());return we}tsParseDelimitedList(O,K,we){return aa(this.tsParseDelimitedListWorker(O,K,!0,we))}tsParseDelimitedListWorker(O,K,we,gt){let sr=[],Yr=-1;for(;!this.tsIsListTerminator(O);){Yr=-1;let Lr=K();if(Lr==null)return;if(sr.push(Lr),this.eat(12)){Yr=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(O))break;we&&this.expect(12);return}return gt&&(gt.value=Yr),sr}tsParseBracketedList(O,K,we,gt,sr){gt||(we?this.expect(0):this.expect(47));let Yr=this.tsParseDelimitedList(O,K,sr);return we?this.expect(3):this.expect(48),Yr}tsParseImportType(){let O=this.startNode();return this.expect(83),this.expect(10),this.match(134)?O.argument=this.parseStringLiteral(this.state.value):(this.raise(us.UnsupportedImportTypeArgument,this.state.startLoc),O.argument=super.parseExprAtom()),this.eat(12)&&!this.match(11)?(O.options=super.parseMaybeAssignAllowIn(),this.eat(12)):O.options=null,this.expect(11),this.eat(16)&&(O.qualifier=this.tsParseEntityName(3)),this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSImportType")}tsParseEntityName(O){let K;if(O&1&&this.match(78))if(O&2)K=this.parseIdentifier(!0);else{let we=this.startNode();this.next(),K=this.finishNode(we,"ThisExpression")}else K=this.parseIdentifier(!!(O&1));for(;this.eat(16);){let we=this.startNodeAtNode(K);we.left=K,we.right=this.parseIdentifier(!!(O&1)),K=this.finishNode(we,"TSQualifiedName")}return K}tsParseTypeReference(){let O=this.startNode();return O.typeName=this.tsParseEntityName(1),!this.hasPrecedingLineBreak()&&this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSTypeReference")}tsParseThisTypePredicate(O){this.next();let K=this.startNodeAtNode(O);return K.parameterName=O,K.typeAnnotation=this.tsParseTypeAnnotation(!1),K.asserts=!1,this.finishNode(K,"TSTypePredicate")}tsParseThisTypeNode(){let O=this.startNode();return this.next(),this.finishNode(O,"TSThisType")}tsParseTypeQuery(){let O=this.startNode();return this.expect(87),this.match(83)?O.exprName=this.tsParseImportType():O.exprName=this.tsParseEntityName(3),!this.hasPrecedingLineBreak()&&this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSTypeQuery")}tsParseTypeParameter(O){let K=this.startNode();return O(K),K.name=this.tsParseTypeParameterName(),K.constraint=this.tsEatThenParseType(81),K.default=this.tsEatThenParseType(29),this.finishNode(K,"TSTypeParameter")}tsTryParseTypeParameters(O){if(this.match(47))return this.tsParseTypeParameters(O)}tsParseTypeParameters(O){let K=this.startNode();this.match(47)||this.match(143)?this.next():this.unexpected();let we={value:-1};return K.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,O),!1,!0,we),K.params.length===0&&this.raise(us.EmptyTypeParameters,K),we.value!==-1&&this.addExtra(K,"trailingComma",we.value),this.finishNode(K,"TSTypeParameterDeclaration")}tsFillSignature(O,K){let we=O===19,gt="parameters",sr="typeAnnotation";K.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),K[gt]=this.tsParseBindingListForSignature(),we?K[sr]=this.tsParseTypeOrTypePredicateAnnotation(O):this.match(O)&&(K[sr]=this.tsParseTypeOrTypePredicateAnnotation(O))}tsParseBindingListForSignature(){let O=super.parseBindingList(11,41,2);for(let K of O){let{type:we}=K;(we==="AssignmentPattern"||we==="TSParameterProperty")&&this.raise(us.UnsupportedSignatureParameterKind,K,{type:we})}return O}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(O,K){return this.tsFillSignature(14,K),this.tsParseTypeMemberSemicolon(),this.finishNode(K,O)}tsIsUnambiguouslyIndexSignature(){return this.next(),qr(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(O){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let K=this.parseIdentifier();K.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(K),this.expect(3),O.parameters=[K];let we=this.tsTryParseTypeAnnotation();return we&&(O.typeAnnotation=we),this.tsParseTypeMemberSemicolon(),this.finishNode(O,"TSIndexSignature")}tsParsePropertyOrMethodSignature(O,K){this.eat(17)&&(O.optional=!0);let we=O;if(this.match(10)||this.match(47)){K&&this.raise(us.ReadonlyForMethodSignature,O);let gt=we;gt.kind&&this.match(47)&&this.raise(us.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,gt),this.tsParseTypeMemberSemicolon();let sr="parameters",Yr="typeAnnotation";if(gt.kind==="get")gt[sr].length>0&&(this.raise(X.BadGetterArity,this.state.curPosition()),this.isThisParam(gt[sr][0])&&this.raise(us.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if(gt.kind==="set"){if(gt[sr].length!==1)this.raise(X.BadSetterArity,this.state.curPosition());else{let Lr=gt[sr][0];this.isThisParam(Lr)&&this.raise(us.AccessorCannotDeclareThisParameter,this.state.curPosition()),Lr.type==="Identifier"&&Lr.optional&&this.raise(us.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),Lr.type==="RestElement"&&this.raise(us.SetAccessorCannotHaveRestParameter,this.state.curPosition())}gt[Yr]&&this.raise(us.SetAccessorCannotHaveReturnType,gt[Yr])}else gt.kind="method";return this.finishNode(gt,"TSMethodSignature")}else{let gt=we;K&&(gt.readonly=!0);let sr=this.tsTryParseTypeAnnotation();return sr&&(gt.typeAnnotation=sr),this.tsParseTypeMemberSemicolon(),this.finishNode(gt,"TSPropertySignature")}}tsParseTypeMember(){let O=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",O);if(this.match(77)){let we=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",O):(O.key=this.createIdentifier(we,"new"),this.tsParsePropertyOrMethodSignature(O,!1))}return this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},O),this.tsTryParseIndexSignature(O)||(super.parsePropertyName(O),!O.computed&&O.key.type==="Identifier"&&(O.key.name==="get"||O.key.name==="set")&&this.tsTokenCanFollowModifier()&&(O.kind=O.key.name,super.parsePropertyName(O)),this.tsParsePropertyOrMethodSignature(O,!!O.readonly))}tsParseTypeLiteral(){let O=this.startNode();return O.members=this.tsParseObjectTypeMembers(),this.finishNode(O,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);let O=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),O}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedType(){let O=this.startNode();this.expect(5),this.match(53)?(O.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(O.readonly=!0),this.expect(0);{let K=this.startNode();K.name=this.tsParseTypeParameterName(),K.constraint=this.tsExpectThenParseType(58),O.typeParameter=this.finishNode(K,"TSTypeParameter")}return O.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(O.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(O.optional=!0),O.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(O,"TSMappedType")}tsParseTupleType(){let O=this.startNode();O.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let K=!1;return O.elementTypes.forEach(we=>{let{type:gt}=we;K&>!=="TSRestType"&>!=="TSOptionalType"&&!(gt==="TSNamedTupleMember"&&we.optional)&&this.raise(us.OptionalTypeBeforeRequired,we),K||(K=gt==="TSNamedTupleMember"&&we.optional||gt==="TSOptionalType")}),this.finishNode(O,"TSTupleType")}tsParseTupleElementType(){let O=this.state.startLoc,K=this.eat(21),{startLoc:we}=this.state,gt,sr,Yr,Lr,fi=ke(this.state.type)?this.lookaheadCharCode():null;if(fi===58)gt=!0,Yr=!1,sr=this.parseIdentifier(!0),this.expect(14),Lr=this.tsParseType();else if(fi===63){Yr=!0;let $n=this.state.value,ra=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(gt=!0,sr=this.createIdentifier(this.startNodeAt(we),$n),this.expect(17),this.expect(14),Lr=this.tsParseType()):(gt=!1,Lr=ra,this.expect(17))}else Lr=this.tsParseType(),Yr=this.eat(17),gt=this.eat(14);if(gt){let $n;sr?($n=this.startNodeAt(we),$n.optional=Yr,$n.label=sr,$n.elementType=Lr,this.eat(17)&&($n.optional=!0,this.raise(us.TupleOptionalAfterType,this.state.lastTokStartLoc))):($n=this.startNodeAt(we),$n.optional=Yr,this.raise(us.InvalidTupleMemberLabel,Lr),$n.label=Lr,$n.elementType=this.tsParseType()),Lr=this.finishNode($n,"TSNamedTupleMember")}else if(Yr){let $n=this.startNodeAt(we);$n.typeAnnotation=Lr,Lr=this.finishNode($n,"TSOptionalType")}if(K){let $n=this.startNodeAt(O);$n.typeAnnotation=Lr,Lr=this.finishNode($n,"TSRestType")}return Lr}tsParseParenthesizedType(){let O=this.startNode();return this.expect(10),O.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(O,"TSParenthesizedType")}tsParseFunctionOrConstructorType(O,K){let we=this.startNode();return O==="TSConstructorType"&&(we.abstract=!!K,K&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,we)),this.finishNode(we,O)}tsParseLiteralTypeNode(){let O=this.startNode();switch(this.state.type){case 135:case 136:case 134:case 85:case 86:O.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(O,"TSLiteralType")}tsParseTemplateLiteralType(){{let O=this.startNode();return O.literal=super.parseTemplate(!1),this.finishNode(O,"TSLiteralType")}}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let O=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(O):O}tsParseNonArrayType(){switch(this.state.type){case 134:case 135:case 136:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){let O=this.startNode(),K=this.lookahead();return K.type!==135&&K.type!==136&&this.unexpected(),O.literal=this.parseMaybeUnary(),this.finishNode(O,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:O}=this.state;if(qr(O)||O===88||O===84){let K=O===88?"TSVoidKeyword":O===84?"TSNullKeyword":Ql(this.state.value);if(K!==void 0&&this.lookaheadCharCode()!==46){let we=this.startNode();return this.next(),this.finishNode(we,K)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let{startLoc:O}=this.state,K=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let we=this.startNodeAt(O);we.elementType=K,this.expect(3),K=this.finishNode(we,"TSArrayType")}else{let we=this.startNodeAt(O);we.objectType=K,we.indexType=this.tsParseType(),this.expect(3),K=this.finishNode(we,"TSIndexedAccessType")}return K}tsParseTypeOperator(){let O=this.startNode(),K=this.state.value;return this.next(),O.operator=K,O.typeAnnotation=this.tsParseTypeOperatorOrHigher(),K==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(O),this.finishNode(O,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(O){switch(O.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(us.UnexpectedReadonly,O)}}tsParseInferType(){let O=this.startNode();this.expectContextual(115);let K=this.startNode();return K.name=this.tsParseTypeParameterName(),K.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),O.typeParameter=this.finishNode(K,"TSTypeParameter"),this.finishNode(O,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){let O=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return O}}tsParseTypeOperatorOrHigher(){return Gc(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(O,K,we){let gt=this.startNode(),sr=this.eat(we),Yr=[];do Yr.push(K());while(this.eat(we));return Yr.length===1&&!sr?Yr[0]:(gt.types=Yr,this.finishNode(gt,O))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(qr(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:O}=this.state,K=O.length;try{return this.parseObjectLike(8,!0),O.length===K}catch{return!1}}if(this.match(0)){this.next();let{errors:O}=this.state,K=O.length;try{return super.parseBindingList(3,93,1),O.length===K}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(O){return this.tsInType(()=>{let K=this.startNode();this.expect(O);let we=this.startNode(),gt=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(gt&&this.match(78)){let Lr=this.tsParseThisTypeOrThisTypePredicate();return Lr.type==="TSThisType"?(we.parameterName=Lr,we.asserts=!0,we.typeAnnotation=null,Lr=this.finishNode(we,"TSTypePredicate")):(this.resetStartLocationFromNode(Lr,we),Lr.asserts=!0),K.typeAnnotation=Lr,this.finishNode(K,"TSTypeAnnotation")}let sr=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!sr)return gt?(we.parameterName=this.parseIdentifier(),we.asserts=gt,we.typeAnnotation=null,K.typeAnnotation=this.finishNode(we,"TSTypePredicate"),this.finishNode(K,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,K);let Yr=this.tsParseTypeAnnotation(!1);return we.parameterName=sr,we.typeAnnotation=Yr,we.asserts=gt,K.typeAnnotation=this.finishNode(we,"TSTypePredicate"),this.finishNode(K,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let O=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),O}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;let O=this.state.containsEsc;return this.next(),!qr(this.state.type)&&!this.match(78)?!1:(O&&this.raise(X.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(O=!0,K=this.startNode()){return this.tsInType(()=>{O&&this.expect(14),K.typeAnnotation=this.tsParseType()}),this.finishNode(K,"TSTypeAnnotation")}tsParseType(){Bo(this.state.inType);let O=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return O;let K=this.startNodeAtNode(O);return K.checkType=O,K.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),K.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),K.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(K,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(us.ReservedTypeAssertion,this.state.startLoc);let O=this.startNode();return O.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),O.expression=this.parseMaybeUnary(),this.finishNode(O,"TSTypeAssertion")}tsParseHeritageClause(O){let K=this.state.startLoc,we=this.tsParseDelimitedList("HeritageClauseElement",()=>{let gt=this.startNode();return gt.expression=this.tsParseEntityName(3),this.match(47)&&(gt.typeParameters=this.tsParseTypeArguments()),this.finishNode(gt,"TSExpressionWithTypeArguments")});return we.length||this.raise(us.EmptyHeritageClauseType,K,{token:O}),we}tsParseInterfaceDeclaration(O,K={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),K.declare&&(O.declare=!0),qr(this.state.type)?(O.id=this.parseIdentifier(),this.checkIdentifier(O.id,130)):(O.id=null,this.raise(us.MissingInterfaceName,this.state.startLoc)),O.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(O.extends=this.tsParseHeritageClause("extends"));let we=this.startNode();return we.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),O.body=this.finishNode(we,"TSInterfaceBody"),this.finishNode(O,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(O){return O.id=this.parseIdentifier(),this.checkIdentifier(O.id,2),O.typeAnnotation=this.tsInType(()=>{if(O.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){let K=this.startNode();return this.next(),this.finishNode(K,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(O,"TSTypeAliasDeclaration")}tsInTopLevelContext(O){if(this.curContext()!==Se.brace){let K=this.state.context;this.state.context=[K[0]];try{return O()}finally{this.state.context=K}}else return O()}tsInType(O){let K=this.state.inType;this.state.inType=!0;try{return O()}finally{this.state.inType=K}}tsInDisallowConditionalTypesContext(O){let K=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return O()}finally{this.state.inDisallowConditionalTypesContext=K}}tsInAllowConditionalTypesContext(O){let K=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return O()}finally{this.state.inDisallowConditionalTypesContext=K}}tsEatThenParseType(O){if(this.match(O))return this.tsNextThenParseType()}tsExpectThenParseType(O){return this.tsInType(()=>(this.expect(O),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){let O=this.startNode();return O.id=this.match(134)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(O.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(O,"TSEnumMember")}tsParseEnumDeclaration(O,K={}){return K.const&&(O.const=!0),K.declare&&(O.declare=!0),this.expectContextual(126),O.id=this.parseIdentifier(),this.checkIdentifier(O.id,O.const?8971:8459),this.expect(5),O.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(O,"TSEnumDeclaration")}tsParseEnumBody(){let O=this.startNode();return this.expect(5),O.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(O,"TSEnumBody")}tsParseModuleBlock(){let O=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(O.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(O,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(O,K=!1){if(O.id=this.parseIdentifier(),K||this.checkIdentifier(O.id,1024),this.eat(16)){let we=this.startNode();this.tsParseModuleOrNamespaceDeclaration(we,!0),O.body=we}else this.scope.enter(256),this.prodParam.enter(0),O.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(O,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(O){return this.isContextual(112)?(O.kind="global",O.global=!0,O.id=this.parseIdentifier()):this.match(134)?(O.kind="module",O.id=super.parseStringLiteral(this.state.value)):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),O.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(O,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(O,K,we){O.isExport=we||!1,O.id=K||this.parseIdentifier(),this.checkIdentifier(O.id,4096),this.expect(29);let gt=this.tsParseModuleReference();return O.importKind==="type"&>.type!=="TSExternalModuleReference"&&this.raise(us.ImportAliasHasImportType,gt),O.moduleReference=gt,this.semicolon(),this.finishNode(O,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(0)}tsParseExternalModuleReference(){let O=this.startNode();return this.expectContextual(119),this.expect(10),this.match(134)||this.unexpected(),O.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(O,"TSExternalModuleReference")}tsLookAhead(O){let K=this.state.clone(),we=O();return this.state=K,we}tsTryParseAndCatch(O){let K=this.tryParse(we=>O()||we());if(!(K.aborted||!K.node))return K.error&&(this.state=K.failState),K.node}tsTryParse(O){let K=this.state.clone(),we=O();if(we!==void 0&&we!==!1)return we;this.state=K}tsTryParseDeclare(O){if(this.isLineTerminator())return;let K=this.state.type,we;return this.isContextual(100)&&(K=74,we="let"),this.tsInAmbientContext(()=>{switch(K){case 68:return O.declare=!0,super.parseFunctionStatement(O,!1,!1);case 80:return O.declare=!0,this.parseClass(O,!0,!1);case 126:return this.tsParseEnumDeclaration(O,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(O);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual("enum")?(O.declare=!0,this.parseVarStatement(O,we||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(O,{const:!0,declare:!0}));case 129:{let gt=this.tsParseInterfaceDeclaration(O,{declare:!0});if(gt)return gt}default:if(qr(K))return this.tsParseDeclaration(O,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(O,K,we){switch(K.name){case"declare":{let gt=this.tsTryParseDeclare(O);return gt&&(gt.declare=!0),gt}case"global":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);let gt=O;return gt.kind="global",O.global=!0,gt.id=K,gt.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(gt,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(O,K.name,!1,we)}}tsParseDeclaration(O,K,we,gt){switch(K){case"abstract":if(this.tsCheckLineTerminator(we)&&(this.match(80)||qr(this.state.type)))return this.tsParseAbstractDeclaration(O,gt);break;case"module":if(this.tsCheckLineTerminator(we)){if(this.match(134))return this.tsParseAmbientExternalModuleDeclaration(O);if(qr(this.state.type))return O.kind="module",this.tsParseModuleOrNamespaceDeclaration(O)}break;case"namespace":if(this.tsCheckLineTerminator(we)&&qr(this.state.type))return O.kind="namespace",this.tsParseModuleOrNamespaceDeclaration(O);break;case"type":if(this.tsCheckLineTerminator(we)&&qr(this.state.type))return this.tsParseTypeAliasDeclaration(O);break}}tsCheckLineTerminator(O){return O?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(O){if(!this.match(47))return;let K=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let we=this.tsTryParseAndCatch(()=>{let gt=this.startNodeAt(O);return gt.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(gt),gt.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),gt});if(this.state.maybeInArrowParameters=K,!!we)return super.parseArrowExpression(we,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let O=this.startNode();return O.params=this.tsInType(()=>this.tsInTopLevelContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),O.params.length===0?this.raise(us.EmptyTypeArguments,O):!this.state.inType&&this.curContext()===Se.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(O,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return cl(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(O,K){let we=this.state.startLoc,gt={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},gt);let sr=gt.accessibility,Yr=gt.override,Lr=gt.readonly;!(O&4)&&(sr||Lr||Yr)&&this.raise(us.UnexpectedParameterModifier,we);let fi=this.parseMaybeDefault();O&2&&this.parseFunctionParamType(fi);let $n=this.parseMaybeDefault(fi.loc.start,fi);if(sr||Lr||Yr){let ra=this.startNodeAt(we);return K.length&&(ra.decorators=K),sr&&(ra.accessibility=sr),Lr&&(ra.readonly=Lr),Yr&&(ra.override=Yr),$n.type!=="Identifier"&&$n.type!=="AssignmentPattern"&&this.raise(us.UnsupportedParameterPropertyKind,ra),ra.parameter=$n,this.finishNode(ra,"TSParameterProperty")}return K.length&&(fi.decorators=K),$n}isSimpleParameter(O){return O.type==="TSParameterProperty"&&super.isSimpleParameter(O.parameter)||super.isSimpleParameter(O)}tsDisallowOptionalPattern(O){for(let K of O.params)K.type!=="Identifier"&&K.optional&&!this.state.isAmbientContext&&this.raise(us.PatternIsOptional,K)}setArrowFunctionParameters(O,K,we){super.setArrowFunctionParameters(O,K,we),this.tsDisallowOptionalPattern(O)}parseFunctionBodyAndFinish(O,K,we=!1){this.match(14)&&(O.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let gt=K==="FunctionDeclaration"?"TSDeclareFunction":K==="ClassMethod"||K==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return gt&&!this.match(5)&&this.isLineTerminator()?this.finishNode(O,gt):gt==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(us.DeclareFunctionHasImplementation,O),O.declare)?super.parseFunctionBodyAndFinish(O,gt,we):(this.tsDisallowOptionalPattern(O),super.parseFunctionBodyAndFinish(O,K,we))}registerFunctionStatementId(O){!O.body&&O.id?this.checkIdentifier(O.id,1024):super.registerFunctionStatementId(O)}tsCheckForInvalidTypeCasts(O){O.forEach(K=>{K?.type==="TSTypeCastExpression"&&this.raise(us.UnexpectedTypeAnnotation,K.typeAnnotation)})}toReferencedList(O,K){return this.tsCheckForInvalidTypeCasts(O),O}parseArrayLike(O,K,we,gt){let sr=super.parseArrayLike(O,K,we,gt);return sr.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(sr.elements),sr}parseSubscript(O,K,we,gt){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let Yr=this.startNodeAt(K);return Yr.expression=O,this.finishNode(Yr,"TSNonNullExpression")}let sr=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(we)return gt.stop=!0,O;gt.optionalChainMember=sr=!0,this.next()}if(this.match(47)||this.match(51)){let Yr,Lr=this.tsTryParseAndCatch(()=>{if(!we&&this.atPossibleAsyncArrow(O)){let kc=this.tsTryParseGenericAsyncArrowFunction(K);if(kc)return kc}let fi=this.tsParseTypeArgumentsInExpression();if(!fi)return;if(sr&&!this.match(10)){Yr=this.state.curPosition();return}if(Ft(this.state.type)){let kc=super.parseTaggedTemplateExpression(O,K,gt);return kc.typeParameters=fi,kc}if(!we&&this.eat(10)){let kc=this.startNodeAt(K);return kc.callee=O,kc.arguments=this.parseCallExpressionArguments(11),this.tsCheckForInvalidTypeCasts(kc.arguments),kc.typeParameters=fi,gt.optionalChainMember&&(kc.optional=sr),this.finishCallExpression(kc,gt.optionalChainMember)}let $n=this.state.type;if($n===48||$n===52||$n!==10&&Nn($n)&&!this.hasPrecedingLineBreak())return;let ra=this.startNodeAt(K);return ra.expression=O,ra.typeParameters=fi,this.finishNode(ra,"TSInstantiationExpression")});if(Yr&&this.unexpected(Yr,10),Lr)return Lr.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(us.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),Lr}return super.parseSubscript(O,K,we,gt)}parseNewCallee(O){var K;super.parseNewCallee(O);let{callee:we}=O;we.type==="TSInstantiationExpression"&&!((K=we.extra)!=null&&K.parenthesized)&&(O.typeParameters=we.typeParameters,O.callee=we.expression)}parseExprOp(O,K,we){let gt;if(Hr(58)>we&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(gt=this.isContextual(120)))){let sr=this.startNodeAt(K);return sr.expression=O,sr.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(gt&&this.raise(X.UnexpectedKeyword,this.state.startLoc,{keyword:"const"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(sr,gt?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(sr,K,we)}return super.parseExprOp(O,K,we)}checkReservedWord(O,K,we,gt){this.state.isAmbientContext||super.checkReservedWord(O,K,we,gt)}checkImportReflection(O){super.checkImportReflection(O),O.module&&O.importKind!=="value"&&this.raise(us.ImportReflectionHasImportType,O.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(O){if(super.isPotentialImportPhase(O))return!0;if(this.isContextual(130)){let K=this.lookaheadCharCode();return O?K===123||K===42:K!==61}return!O&&this.isContextual(87)}applyImportPhase(O,K,we,gt){super.applyImportPhase(O,K,we,gt),K?O.exportKind=we==="type"?"type":"value":O.importKind=we==="type"||we==="typeof"?we:"value"}parseImport(O){if(this.match(134))return O.importKind="value",super.parseImport(O);let K;if(qr(this.state.type)&&this.lookaheadCharCode()===61)return O.importKind="value",this.tsParseImportEqualsDeclaration(O);if(this.isContextual(130)){let we=this.parseMaybeImportPhase(O,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(O,we);K=super.parseImportSpecifiersAndAfter(O,we)}else K=super.parseImport(O);return K.importKind==="type"&&K.specifiers.length>1&&K.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(us.TypeImportCannotSpecifyDefaultAndNamed,K),K}parseExport(O,K){if(this.match(83)){let we=O;this.next();let gt=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?gt=this.parseMaybeImportPhase(we,!1):we.importKind="value",this.tsParseImportEqualsDeclaration(we,gt,!0)}else if(this.eat(29)){let we=O;return we.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(we,"TSExportAssignment")}else if(this.eatContextual(93)){let we=O;return this.expectContextual(128),we.id=this.parseIdentifier(),this.semicolon(),this.finishNode(we,"TSNamespaceExportDeclaration")}else return super.parseExport(O,K)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let O=this.startNode();return this.next(),O.abstract=!0,this.parseClass(O,!0,!0)}if(this.match(129)){let O=this.tsParseInterfaceDeclaration(this.startNode());if(O)return O}return super.parseExportDefaultExpression()}parseVarStatement(O,K,we=!1){let{isAmbientContext:gt}=this.state,sr=super.parseVarStatement(O,K,we||gt);if(!gt)return sr;for(let{id:Yr,init:Lr}of sr.declarations)Lr&&(K!=="const"||Yr.typeAnnotation?this.raise(us.InitializerNotAllowedInAmbientContext,Lr):_d(Lr,this.hasPlugin("estree"))||this.raise(us.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,Lr));return sr}parseStatementContent(O,K){if(this.match(75)&&this.isLookaheadContextual("enum")){let we=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(we,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){let we=this.tsParseInterfaceDeclaration(this.startNode());if(we)return we}return super.parseStatementContent(O,K)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(O,K){return K.some(we=>LA(we)?O.accessibility===we:!!O[we])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(O,K,we){let gt=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:gt,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:us.InvalidModifierOnTypeParameterPositions},K);let sr=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(K,gt)&&this.raise(us.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(O,K)):this.parseClassMemberWithIsStatic(O,K,we,!!K.static)};K.declare?this.tsInAmbientContext(sr):sr()}parseClassMemberWithIsStatic(O,K,we,gt){let sr=this.tsTryParseIndexSignature(K);if(sr){O.body.push(sr),K.abstract&&this.raise(us.IndexSignatureHasAbstract,K),K.accessibility&&this.raise(us.IndexSignatureHasAccessibility,K,{modifier:K.accessibility}),K.declare&&this.raise(us.IndexSignatureHasDeclare,K),K.override&&this.raise(us.IndexSignatureHasOverride,K);return}!this.state.inAbstractClass&&K.abstract&&this.raise(us.NonAbstractClassHasAbstractMethod,K),K.override&&(we.hadSuperClass||this.raise(us.OverrideNotInSubClass,K)),super.parseClassMemberWithIsStatic(O,K,we,gt)}parsePostMemberNameModifiers(O){this.eat(17)&&(O.optional=!0),O.readonly&&this.match(10)&&this.raise(us.ClassMethodHasReadonly,O),O.declare&&this.match(10)&&this.raise(us.ClassMethodHasDeclare,O)}parseExpressionStatement(O,K,we){return(K.type==="Identifier"?this.tsParseExpressionStatement(O,K,we):void 0)||super.parseExpressionStatement(O,K,we)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(O,K,we){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(O,K,we);let gt=this.tryParse(()=>super.parseConditional(O,K));return gt.node?(gt.error&&(this.state=gt.failState),gt.node):(gt.error&&super.setOptionalParametersError(we,gt.error),O)}parseParenItem(O,K){let we=super.parseParenItem(O,K);if(this.eat(17)&&(we.optional=!0,this.resetEndLocation(O)),this.match(14)){let gt=this.startNodeAt(K);return gt.expression=O,gt.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(gt,"TSTypeCastExpression")}return O}parseExportDeclaration(O){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(O));let K=this.state.startLoc,we=this.eatContextual(125);if(we&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(us.ExpectedAmbientAfterExportDeclare,this.state.startLoc);let gt=qr(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(O);return gt?((gt.type==="TSInterfaceDeclaration"||gt.type==="TSTypeAliasDeclaration"||we)&&(O.exportKind="type"),we&>.type!=="TSImportEqualsDeclaration"&&(this.resetStartLocation(gt,K),gt.declare=!0),gt):null}parseClassId(O,K,we,gt){if((!K||we)&&this.isContextual(113))return;super.parseClassId(O,K,we,O.declare?1024:8331);let sr=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);sr&&(O.typeParameters=sr)}parseClassPropertyAnnotation(O){O.optional||(this.eat(35)?O.definite=!0:this.eat(17)&&(O.optional=!0));let K=this.tsTryParseTypeAnnotation();K&&(O.typeAnnotation=K)}parseClassProperty(O){if(this.parseClassPropertyAnnotation(O),this.state.isAmbientContext&&!(O.readonly&&!O.typeAnnotation)&&this.match(29)&&this.raise(us.DeclareClassFieldHasInitializer,this.state.startLoc),O.abstract&&this.match(29)){let{key:K}=O;this.raise(us.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:K.type==="Identifier"&&!O.computed?K.name:`[${this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end))}]`})}return super.parseClassProperty(O)}parseClassPrivateProperty(O){return O.abstract&&this.raise(us.PrivateElementHasAbstract,O),O.accessibility&&this.raise(us.PrivateElementHasAccessibility,O,{modifier:O.accessibility}),this.parseClassPropertyAnnotation(O),super.parseClassPrivateProperty(O)}parseClassAccessorProperty(O){return this.parseClassPropertyAnnotation(O),O.optional&&this.raise(us.AccessorCannotBeOptional,O),super.parseClassAccessorProperty(O)}pushClassMethod(O,K,we,gt,sr,Yr){let Lr=this.tsTryParseTypeParameters(this.tsParseConstModifier);Lr&&sr&&this.raise(us.ConstructorHasTypeParameters,Lr);let{declare:fi=!1,kind:$n}=K;fi&&($n==="get"||$n==="set")&&this.raise(us.DeclareAccessor,K,{kind:$n}),Lr&&(K.typeParameters=Lr),super.pushClassMethod(O,K,we,gt,sr,Yr)}pushClassPrivateMethod(O,K,we,gt){let sr=this.tsTryParseTypeParameters(this.tsParseConstModifier);sr&&(K.typeParameters=sr),super.pushClassPrivateMethod(O,K,we,gt)}declareClassPrivateMethodInScope(O,K){O.type!=="TSDeclareMethod"&&(O.type==="MethodDefinition"&&!hasOwnProperty.call(O.value,"body")||super.declareClassPrivateMethodInScope(O,K))}parseClassSuper(O){super.parseClassSuper(O),O.superClass&&(this.match(47)||this.match(51))&&(O.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(O.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(O,K,we,gt,sr,Yr,Lr){let fi=this.tsTryParseTypeParameters(this.tsParseConstModifier);return fi&&(O.typeParameters=fi),super.parseObjPropValue(O,K,we,gt,sr,Yr,Lr)}parseFunctionParams(O,K){let we=this.tsTryParseTypeParameters(this.tsParseConstModifier);we&&(O.typeParameters=we),super.parseFunctionParams(O,K)}parseVarId(O,K){super.parseVarId(O,K),O.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(O.definite=!0);let we=this.tsTryParseTypeAnnotation();we&&(O.id.typeAnnotation=we,this.resetEndLocation(O.id))}parseAsyncArrowFromCallExpression(O,K){return this.match(14)&&(O.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(O,K)}parseMaybeAssign(O,K){var we,gt,sr,Yr,Lr;let fi,$n,ra;if(this.hasPlugin("jsx")&&(this.match(143)||this.match(47))){if(fi=this.state.clone(),$n=this.tryParse(()=>super.parseMaybeAssign(O,K),fi),!$n.error)return $n.node;let{context:ca}=this.state,Bl=ca[ca.length-1];(Bl===Se.j_oTag||Bl===Se.j_expr)&&ca.pop()}if(!((we=$n)!=null&&we.error)&&!this.match(47))return super.parseMaybeAssign(O,K);(!fi||fi===this.state)&&(fi=this.state.clone());let kc,Nl=this.tryParse(ca=>{var Bl,$g;kc=this.tsParseTypeParameters(this.tsParseConstModifier);let SA=super.parseMaybeAssign(O,K);return(SA.type!=="ArrowFunctionExpression"||(Bl=SA.extra)!=null&&Bl.parenthesized)&&ca(),(($g=kc)==null?void 0:$g.params.length)!==0&&this.resetStartLocationFromNode(SA,kc),SA.typeParameters=kc,SA},fi);if(!Nl.error&&!Nl.aborted)return kc&&this.reportReservedArrowTypeParam(kc),Nl.node;if(!$n&&(Bo(!this.hasPlugin("jsx")),ra=this.tryParse(()=>super.parseMaybeAssign(O,K),fi),!ra.error))return ra.node;if((gt=$n)!=null&>.node)return this.state=$n.failState,$n.node;if(Nl.node)return this.state=Nl.failState,kc&&this.reportReservedArrowTypeParam(kc),Nl.node;if((sr=ra)!=null&&sr.node)return this.state=ra.failState,ra.node;throw((Yr=$n)==null?void 0:Yr.error)||Nl.error||((Lr=ra)==null?void 0:Lr.error)}reportReservedArrowTypeParam(O){var K;O.params.length===1&&!O.params[0].constraint&&!((K=O.extra)!=null&&K.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(us.ReservedArrowTypeParam,O)}parseMaybeUnary(O,K){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(O,K)}parseArrow(O){if(this.match(14)){let K=this.tryParse(we=>{let gt=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&we(),gt});if(K.aborted)return;K.thrown||(K.error&&(this.state=K.failState),O.returnType=K.node)}return super.parseArrow(O)}parseFunctionParamType(O){this.eat(17)&&(O.optional=!0);let K=this.tsTryParseTypeAnnotation();return K&&(O.typeAnnotation=K),this.resetEndLocation(O),O}isAssignable(O,K){switch(O.type){case"TSTypeCastExpression":return this.isAssignable(O.expression,K);case"TSParameterProperty":return!0;default:return super.isAssignable(O,K)}}toAssignable(O,K=!1){switch(O.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(O,K);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":K?this.expressionScope.recordArrowParameterBindingError(us.UnexpectedTypeCastInParameter,O):this.raise(us.UnexpectedTypeCastInParameter,O),this.toAssignable(O.expression,K);break;case"AssignmentExpression":!K&&O.left.type==="TSTypeCastExpression"&&(O.left=this.typeCastToParameter(O.left));default:super.toAssignable(O,K)}}toAssignableParenthesizedExpression(O,K){switch(O.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(O.expression,K);break;default:super.toAssignable(O,K)}}checkToRestConversion(O,K){switch(O.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(O.expression,!1);break;default:super.checkToRestConversion(O,K)}}isValidLVal(O,K,we){switch(O){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(we!==64||!K)&&["expression",!0];default:return super.isValidLVal(O,K,we)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(O,K){if(this.match(47)||this.match(51)){let we=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let gt=super.parseMaybeDecoratorArguments(O,K);return gt.typeParameters=we,gt}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(O,K)}checkCommaAfterRest(O){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===O?(this.next(),!1):super.checkCommaAfterRest(O)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(O,K){let we=super.parseMaybeDefault(O,K);return we.type==="AssignmentPattern"&&we.typeAnnotation&&we.right.startthis.isAssignable(K,!0)):super.shouldParseArrow(O)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(O){if(this.match(47)||this.match(51)){let K=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());K&&(O.typeParameters=K)}return super.jsxParseOpeningElementAfterName(O)}getGetterSetterExpectedParamCount(O){let K=super.getGetterSetterExpectedParamCount(O),we=this.getObjectOrClassMethodParams(O)[0];return we&&this.isThisParam(we)?K+1:K}parseCatchClauseParam(){let O=super.parseCatchClauseParam(),K=this.tsTryParseTypeAnnotation();return K&&(O.typeAnnotation=K,this.resetEndLocation(O)),O}tsInAmbientContext(O){let{isAmbientContext:K,strict:we}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return O()}finally{this.state.isAmbientContext=K,this.state.strict=we}}parseClass(O,K,we){let gt=this.state.inAbstractClass;this.state.inAbstractClass=!!O.abstract;try{return super.parseClass(O,K,we)}finally{this.state.inAbstractClass=gt}}tsParseAbstractDeclaration(O,K){if(this.match(80))return O.abstract=!0,this.maybeTakeDecorators(K,this.parseClass(O,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return O.abstract=!0,this.raise(us.NonClassMethodPropertyHasAbstractModifer,O),this.tsParseInterfaceDeclaration(O)}else this.unexpected(null,80)}parseMethod(O,K,we,gt,sr,Yr,Lr){let fi=super.parseMethod(O,K,we,gt,sr,Yr,Lr);if(fi.abstract&&(this.hasPlugin("estree")?fi.value:fi).body){let{key:$n}=fi;this.raise(us.AbstractMethodHasImplementation,fi,{methodName:$n.type==="Identifier"&&!fi.computed?$n.name:`[${this.input.slice(this.offsetToSourcePos($n.start),this.offsetToSourcePos($n.end))}]`})}return fi}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(O,K,we,gt){return!K&>?(this.parseTypeOnlyImportExportSpecifier(O,!1,we),this.finishNode(O,"ExportSpecifier")):(O.exportKind="value",super.parseExportSpecifier(O,K,we,gt))}parseImportSpecifier(O,K,we,gt,sr){return!K&>?(this.parseTypeOnlyImportExportSpecifier(O,!0,we),this.finishNode(O,"ImportSpecifier")):(O.importKind="value",super.parseImportSpecifier(O,K,we,gt,we?4098:4096))}parseTypeOnlyImportExportSpecifier(O,K,we){let gt=K?"imported":"local",sr=K?"local":"exported",Yr=O[gt],Lr,fi=!1,$n=!0,ra=Yr.loc.start;if(this.isContextual(93)){let Nl=this.parseIdentifier();if(this.isContextual(93)){let ca=this.parseIdentifier();ke(this.state.type)?(fi=!0,Yr=Nl,Lr=K?this.parseIdentifier():this.parseModuleExportName(),$n=!1):(Lr=ca,$n=!1)}else ke(this.state.type)?($n=!1,Lr=K?this.parseIdentifier():this.parseModuleExportName()):(fi=!0,Yr=Nl)}else ke(this.state.type)&&(fi=!0,K?(Yr=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(Yr.name,Yr.loc.start,!0,!0)):Yr=this.parseModuleExportName());fi&&we&&this.raise(K?us.TypeModifierIsUsedInTypeImports:us.TypeModifierIsUsedInTypeExports,ra),O[gt]=Yr,O[sr]=Lr;let kc=K?"importKind":"exportKind";O[kc]=fi?"type":"value",$n&&this.eatContextual(93)&&(O[sr]=K?this.parseIdentifier():this.parseModuleExportName()),O[sr]||(O[sr]=Zt(O[gt])),K&&this.checkIdentifier(O[sr],fi?4098:4096)}};function ip(se){if(se.type!=="MemberExpression")return!1;let{computed:O,property:K}=se;return O&&K.type!=="StringLiteral"&&(K.type!=="TemplateLiteral"||K.expressions.length>0)?!1:YA(se.object)}function _d(se,O){var K;let{type:we}=se;if((K=se.extra)!=null&&K.parenthesized)return!1;if(O){if(we==="Literal"){let{value:gt}=se;if(typeof gt=="string"||typeof gt=="boolean")return!0}}else if(we==="StringLiteral"||we==="BooleanLiteral")return!0;return!!(j1(se,O)||pw(se,O)||we==="TemplateLiteral"&&se.expressions.length===0||ip(se))}function j1(se,O){return O?se.type==="Literal"&&(typeof se.value=="number"||"bigint"in se):se.type==="NumericLiteral"||se.type==="BigIntLiteral"}function pw(se,O){if(se.type==="UnaryExpression"){let{operator:K,argument:we}=se;if(K==="-"&&j1(we,O))return!0}return!1}function YA(se){return se.type==="Identifier"?!0:se.type!=="MemberExpression"||se.computed?!1:YA(se.object)}var Ac=Q`placeholders`({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."}),Nm=se=>class extends se{parsePlaceholder(O){if(this.match(133)){let K=this.startNode();return this.next(),this.assertNoSpace(),K.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(133),this.finishPlaceholder(K,O)}}finishPlaceholder(O,K){let we=O;return(!we.expectedNode||!we.type)&&(we=this.finishNode(we,"Placeholder")),we.expectedNode=K,we}getTokenFromCode(O){O===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(133,2):super.getTokenFromCode(O)}parseExprAtom(O){return this.parsePlaceholder("Expression")||super.parseExprAtom(O)}parseIdentifier(O){return this.parsePlaceholder("Identifier")||super.parseIdentifier(O)}checkReservedWord(O,K,we,gt){O!==void 0&&super.checkReservedWord(O,K,we,gt)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom()}isValidLVal(O,K,we){return O==="Placeholder"||super.isValidLVal(O,K,we)}toAssignable(O,K){O&&O.type==="Placeholder"&&O.expectedNode==="Expression"?O.expectedNode="Pattern":super.toAssignable(O,K)}chStartsBindingIdentifier(O,K){return!!(super.chStartsBindingIdentifier(O,K)||this.lookahead().type===133)}verifyBreakContinue(O,K){O.label&&O.label.type==="Placeholder"||super.verifyBreakContinue(O,K)}parseExpressionStatement(O,K){var we;if(K.type!=="Placeholder"||(we=K.extra)!=null&&we.parenthesized)return super.parseExpressionStatement(O,K);if(this.match(14)){let sr=O;return sr.label=this.finishPlaceholder(K,"Identifier"),this.next(),sr.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(sr,"LabeledStatement")}this.semicolon();let gt=O;return gt.name=K.name,this.finishPlaceholder(gt,"Statement")}parseBlock(O,K,we){return this.parsePlaceholder("BlockStatement")||super.parseBlock(O,K,we)}parseFunctionId(O){return this.parsePlaceholder("Identifier")||super.parseFunctionId(O)}parseClass(O,K,we){let gt=K?"ClassDeclaration":"ClassExpression";this.next();let sr=this.state.strict,Yr=this.parsePlaceholder("Identifier");if(Yr)if(this.match(81)||this.match(133)||this.match(5))O.id=Yr;else{if(we||!K)return O.id=null,O.body=this.finishPlaceholder(Yr,"ClassBody"),this.finishNode(O,gt);throw this.raise(Ac.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(O,K,we);return super.parseClassSuper(O),O.body=this.parsePlaceholder("ClassBody")||super.parseClassBody(!!O.superClass,sr),this.finishNode(O,gt)}parseExport(O,K){let we=this.parsePlaceholder("Identifier");if(!we)return super.parseExport(O,K);let gt=O;if(!this.isContextual(98)&&!this.match(12))return gt.specifiers=[],gt.source=null,gt.declaration=this.finishPlaceholder(we,"Declaration"),this.finishNode(gt,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");let sr=this.startNode();return sr.exported=we,gt.specifiers=[this.finishNode(sr,"ExportDefaultSpecifier")],super.parseExport(gt,K)}isExportDefaultSpecifier(){if(this.match(65)){let O=this.nextTokenStart();if(this.isUnparsedContextual(O,"from")&&this.input.startsWith(Sc(133),this.nextTokenStartSince(O+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(O,K){var we;return(we=O.specifiers)!=null&&we.length?!0:super.maybeParseExportDefaultSpecifier(O,K)}checkExport(O){let{specifiers:K}=O;K!=null&&K.length&&(O.specifiers=K.filter(we=>we.exported.type==="Placeholder")),super.checkExport(O),O.specifiers=K}parseImport(O){let K=this.parsePlaceholder("Identifier");if(!K)return super.parseImport(O);if(O.specifiers=[],!this.isContextual(98)&&!this.match(12))return O.source=this.finishPlaceholder(K,"StringLiteral"),this.semicolon(),this.finishNode(O,"ImportDeclaration");let we=this.startNodeAtNode(K);return we.local=K,O.specifiers.push(this.finishNode(we,"ImportDefaultSpecifier")),this.eat(12)&&(this.maybeParseStarImportSpecifier(O)||this.parseNamedImportSpecifiers(O)),this.expectContextual(98),O.source=this.parseImportSource(),this.semicolon(),this.finishNode(O,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource()}assertNoSpace(){this.state.start>this.offsetToSourcePos(this.state.lastTokEndLoc.index)&&this.raise(Ac.UnexpectedSpace,this.state.lastTokEndLoc)}},HS=se=>class extends se{parseV8Intrinsic(){if(this.match(54)){let O=this.state.startLoc,K=this.startNode();if(this.next(),qr(this.state.type)){let we=this.parseIdentifierName(),gt=this.createIdentifier(K,we);if(gt.type="V8IntrinsicIdentifier",this.match(10))return gt}this.unexpected(O)}}parseExprAtom(O){return this.parseV8Intrinsic()||super.parseExprAtom(O)}},jd=["minimal","fsharp","hack","smart"],dh=["^^","@@","^","%","#"];function Hp(se){if(se.has("decorators")){if(se.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");let K=se.get("decorators").decoratorsBeforeExport;if(K!=null&&typeof K!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");let we=se.get("decorators").allowCallParenthesized;if(we!=null&&typeof we!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(se.has("flow")&&se.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(se.has("placeholders")&&se.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(se.has("pipelineOperator")){var O;let K=se.get("pipelineOperator").proposal;if(!jd.includes(K)){let gt=jd.map(sr=>`"${sr}"`).join(", ");throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${gt}.`)}let we=((O=se.get("recordAndTuple"))==null?void 0:O.syntaxType)==="hash";if(K==="hack"){if(se.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(se.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");let gt=se.get("pipelineOperator").topicToken;if(!dh.includes(gt)){let sr=dh.map(Yr=>`"${Yr}"`).join(", ");throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${sr}.`)}if(gt==="#"&&we)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple",se.get("recordAndTuple")])}\`.`)}else if(K==="smart"&&we)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple",se.get("recordAndTuple")])}\`.`)}if(se.has("moduleAttributes")){if(se.has("deprecatedImportAssert")||se.has("importAssertions"))throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");if(se.get("moduleAttributes").version!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(se.has("importAssertions")&&se.has("deprecatedImportAssert"))throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");if(!se.has("deprecatedImportAssert")&&se.has("importAttributes")&&se.get("importAttributes").deprecatedAssertSyntax&&se.set("deprecatedImportAssert",{}),se.has("recordAndTuple")){let K=se.get("recordAndTuple").syntaxType;if(K!=null){let we=["hash","bar"];if(!we.includes(K))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+we.map(gt=>`'${gt}'`).join(", "))}}if(se.has("asyncDoExpressions")&&!se.has("doExpressions")){let K=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw K.missingPlugins="doExpressions",K}if(se.has("optionalChainingAssign")&&se.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}var uC={estree:de,jsx:Ea,flow:HA,typescript:ef,v8intrinsic:HS,placeholders:Nm},nE=Object.keys(uC),J_=class extends di{checkProto(se,O,K,we){if(se.type==="SpreadElement"||this.isObjectMethod(se)||se.computed||se.shorthand)return;let gt=se.key;if((gt.type==="Identifier"?gt.name:gt.value)==="__proto__"){if(O){this.raise(X.RecordNoProto,gt);return}K.used&&(we?we.doubleProtoLoc===null&&(we.doubleProtoLoc=gt.loc.start):this.raise(X.DuplicateProto,gt)),K.used=!0}}shouldExitDescending(se,O){return se.type==="ArrowFunctionExpression"&&this.offsetToSourcePos(se.start)===O}getExpression(){this.enterInitialScopes(),this.nextToken();let se=this.parseExpression();return this.match(140)||this.unexpected(),this.finalizeRemainingComments(),se.comments=this.comments,se.errors=this.state.errors,this.optionFlags&128&&(se.tokens=this.tokens),se}parseExpression(se,O){return se?this.disallowInAnd(()=>this.parseExpressionBase(O)):this.allowInAnd(()=>this.parseExpressionBase(O))}parseExpressionBase(se){let O=this.state.startLoc,K=this.parseMaybeAssign(se);if(this.match(12)){let we=this.startNodeAt(O);for(we.expressions=[K];this.eat(12);)we.expressions.push(this.parseMaybeAssign(se));return this.toReferencedList(we.expressions),this.finishNode(we,"SequenceExpression")}return K}parseMaybeAssignDisallowIn(se,O){return this.disallowInAnd(()=>this.parseMaybeAssign(se,O))}parseMaybeAssignAllowIn(se,O){return this.allowInAnd(()=>this.parseMaybeAssign(se,O))}setOptionalParametersError(se,O){var K;se.optionalParametersLoc=(K=O?.loc)!=null?K:this.state.startLoc}parseMaybeAssign(se,O){let K=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let Yr=this.parseYield();return O&&(Yr=O.call(this,Yr,K)),Yr}let we;se?we=!1:(se=new yg,we=!0);let{type:gt}=this.state;(gt===10||qr(gt))&&(this.state.potentialArrowAt=this.state.start);let sr=this.parseMaybeConditional(se);if(O&&(sr=O.call(this,sr,K)),Hi(this.state.type)){let Yr=this.startNodeAt(K),Lr=this.state.value;if(Yr.operator=Lr,this.match(29)){this.toAssignable(sr,!0),Yr.left=sr;let fi=K.index;se.doubleProtoLoc!=null&&se.doubleProtoLoc.index>=fi&&(se.doubleProtoLoc=null),se.shorthandAssignLoc!=null&&se.shorthandAssignLoc.index>=fi&&(se.shorthandAssignLoc=null),se.privateKeyLoc!=null&&se.privateKeyLoc.index>=fi&&(this.checkDestructuringPrivate(se),se.privateKeyLoc=null)}else Yr.left=sr;return this.next(),Yr.right=this.parseMaybeAssign(),this.checkLVal(sr,this.finishNode(Yr,"AssignmentExpression")),Yr}else we&&this.checkExpressionErrors(se,!0);return sr}parseMaybeConditional(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseExprOps(se);return this.shouldExitDescending(we,K)?we:this.parseConditional(we,O,se)}parseConditional(se,O,K){if(this.eat(17)){let we=this.startNodeAt(O);return we.test=se,we.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),we.alternate=this.parseMaybeAssign(),this.finishNode(we,"ConditionalExpression")}return se}parseMaybeUnaryOrPrivate(se){return this.match(139)?this.parsePrivateName():this.parseMaybeUnary(se)}parseExprOps(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseMaybeUnaryOrPrivate(se);return this.shouldExitDescending(we,K)?we:this.parseExprOp(we,O,-1)}parseExprOp(se,O,K){if(this.isPrivateName(se)){let gt=this.getPrivateNameSV(se);(K>=Hr(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(X.PrivateInExpectedIn,se,{identifierName:gt}),this.classScope.usePrivateName(gt,se.loc.start)}let we=this.state.type;if(io(we)&&(this.prodParam.hasIn||!this.match(58))){let gt=Hr(we);if(gt>K){if(we===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return se;this.checkPipelineAtInfixOperator(se,O)}let sr=this.startNodeAt(O);sr.left=se,sr.operator=this.state.value;let Yr=we===41||we===42,Lr=we===40;if(Lr&&(gt=Hr(42)),this.next(),we===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(X.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);sr.right=this.parseExprOpRightExpr(we,gt);let fi=this.finishNode(sr,Yr||Lr?"LogicalExpression":"BinaryExpression"),$n=this.state.type;if(Lr&&($n===41||$n===42)||Yr&&$n===40)throw this.raise(X.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(fi,O,K)}}return se}parseExprOpRightExpr(se,O){let K=this.state.startLoc;switch(se){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(O))}if(this.getPluginOption("pipelineOperator","proposal")==="smart")return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(X.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(se,O),K)});default:return this.parseExprOpBaseRightExpr(se,O)}}parseExprOpBaseRightExpr(se,O){let K=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),K,Wr(se)?O-1:O)}parseHackPipeBody(){var se;let{startLoc:O}=this.state,K=this.parseMaybeAssign();return b.has(K.type)&&!((se=K.extra)!=null&&se.parenthesized)&&this.raise(X.PipeUnparenthesizedBody,O,{type:K.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipeTopicUnused,O),K}checkExponentialAfterUnary(se){this.match(57)&&this.raise(X.UnexpectedTokenUnaryExponentiation,se.argument)}parseMaybeUnary(se,O){let K=this.state.startLoc,we=this.isContextual(96);if(we&&this.recordAwaitIfAllowed()){this.next();let Lr=this.parseAwait(K);return O||this.checkExponentialAfterUnary(Lr),Lr}let gt=this.match(34),sr=this.startNode();if(Ya(this.state.type)){sr.operator=this.state.value,sr.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");let Lr=this.match(89);if(this.next(),sr.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(se,!0),this.state.strict&&Lr){let fi=sr.argument;fi.type==="Identifier"?this.raise(X.StrictDelete,sr):this.hasPropertyAsPrivateName(fi)&&this.raise(X.DeletePrivateField,sr)}if(!gt)return O||this.checkExponentialAfterUnary(sr),this.finishNode(sr,"UnaryExpression")}let Yr=this.parseUpdate(sr,gt,se);if(we){let{type:Lr}=this.state;if((this.hasPlugin("v8intrinsic")?Nn(Lr):Nn(Lr)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(X.AwaitNotInAsyncContext,K),this.parseAwait(K)}return Yr}parseUpdate(se,O,K){if(O){let sr=se;return this.checkLVal(sr.argument,this.finishNode(sr,"UpdateExpression")),se}let we=this.state.startLoc,gt=this.parseExprSubscripts(K);if(this.checkExpressionErrors(K,!1))return gt;for(;ga(this.state.type)&&!this.canInsertSemicolon();){let sr=this.startNodeAt(we);sr.operator=this.state.value,sr.prefix=!1,sr.argument=gt,this.next(),this.checkLVal(gt,gt=this.finishNode(sr,"UpdateExpression"))}return gt}parseExprSubscripts(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseExprAtom(se);return this.shouldExitDescending(we,K)?we:this.parseSubscripts(we,O)}parseSubscripts(se,O,K){let we={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(se),stop:!1};do se=this.parseSubscript(se,O,K,we),we.maybeAsyncArrow=!1;while(!we.stop);return se}parseSubscript(se,O,K,we){let{type:gt}=this.state;if(!K&>===15)return this.parseBind(se,O,K,we);if(Ft(gt))return this.parseTaggedTemplateExpression(se,O,we);let sr=!1;if(gt===18){if(K&&(this.raise(X.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return we.stop=!0,se;we.optionalChainMember=sr=!0,this.next()}if(!K&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(se,O,we,sr);{let Yr=this.eat(0);return Yr||sr||this.eat(16)?this.parseMember(se,O,we,Yr,sr):(we.stop=!0,se)}}parseMember(se,O,K,we,gt){let sr=this.startNodeAt(O);return sr.object=se,sr.computed=we,we?(sr.property=this.parseExpression(),this.expect(3)):this.match(139)?(se.type==="Super"&&this.raise(X.SuperPrivateField,O),this.classScope.usePrivateName(this.state.value,this.state.startLoc),sr.property=this.parsePrivateName()):sr.property=this.parseIdentifier(!0),K.optionalChainMember?(sr.optional=gt,this.finishNode(sr,"OptionalMemberExpression")):this.finishNode(sr,"MemberExpression")}parseBind(se,O,K,we){let gt=this.startNodeAt(O);return gt.object=se,this.next(),gt.callee=this.parseNoCallExpr(),we.stop=!0,this.parseSubscripts(this.finishNode(gt,"BindExpression"),O,K)}parseCoverCallAndAsyncArrowHead(se,O,K,we){let gt=this.state.maybeInArrowParameters,sr=null;this.state.maybeInArrowParameters=!0,this.next();let Yr=this.startNodeAt(O);Yr.callee=se;let{maybeAsyncArrow:Lr,optionalChainMember:fi}=K;Lr&&(this.expressionScope.enter(Om()),sr=new yg),fi&&(Yr.optional=we),we?Yr.arguments=this.parseCallExpressionArguments(11):Yr.arguments=this.parseCallExpressionArguments(11,se.type!=="Super",Yr,sr);let $n=this.finishCallExpression(Yr,fi);return Lr&&this.shouldParseAsyncArrow()&&!we?(K.stop=!0,this.checkDestructuringPrivate(sr),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),$n=this.parseAsyncArrowFromCallExpression(this.startNodeAt(O),$n)):(Lr&&(this.checkExpressionErrors(sr,!0),this.expressionScope.exit()),this.toReferencedArguments($n)),this.state.maybeInArrowParameters=gt,$n}toReferencedArguments(se,O){this.toReferencedListDeep(se.arguments,O)}parseTaggedTemplateExpression(se,O,K){let we=this.startNodeAt(O);return we.tag=se,we.quasi=this.parseTemplate(!0),K.optionalChainMember&&this.raise(X.OptionalChainingNoTemplate,O),this.finishNode(we,"TaggedTemplateExpression")}atPossibleAsyncArrow(se){return se.type==="Identifier"&&se.name==="async"&&this.state.lastTokEndLoc.index===se.end&&!this.canInsertSemicolon()&&se.end-se.start===5&&this.offsetToSourcePos(se.start)===this.state.potentialArrowAt}finishCallExpression(se,O){if(se.callee.type==="Import")if(se.arguments.length===0||se.arguments.length>2)this.raise(X.ImportCallArity,se);else for(let K of se.arguments)K.type==="SpreadElement"&&this.raise(X.ImportCallSpreadArgument,K);return this.finishNode(se,O?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(se,O,K,we){let gt=[],sr=!0,Yr=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(se);){if(sr)sr=!1;else if(this.expect(12),this.match(se)){K&&this.addTrailingCommaExtraToNode(K),this.next();break}gt.push(this.parseExprListItem(!1,we,O))}return this.state.inFSharpPipelineDirectBody=Yr,gt}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(se,O){var K;return this.resetPreviousNodeTrailingComments(O),this.expect(19),this.parseArrowExpression(se,O.arguments,!0,(K=O.extra)==null?void 0:K.trailingCommaLoc),O.innerComments&&Ri(se,O.innerComments),O.callee.trailingComments&&Ri(se,O.callee.trailingComments),se}parseNoCallExpr(){let se=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),se,!0)}parseExprAtom(se){let O,K=null,{type:we}=this.state;switch(we){case 79:return this.parseSuper();case 83:return O=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(O):this.match(10)?this.optionFlags&256?this.parseImportCall(O):this.finishNode(O,"Import"):(this.raise(X.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(O,"Import"));case 78:return O=this.startNode(),this.next(),this.finishNode(O,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 135:return this.parseNumericLiteral(this.state.value);case 136:return this.parseBigIntLiteral(this.state.value);case 134:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let gt=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(gt)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,se);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,se);case 68:return this.parseFunctionOrFunctionSent();case 26:K=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(K,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{O=this.startNode(),this.next(),O.object=null;let gt=O.callee=this.parseNoCallExpr();if(gt.type==="MemberExpression")return this.finishNode(O,"BindExpression");throw this.raise(X.UnsupportedBind,gt)}case 139:return this.raise(X.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{let gt=this.getPluginOption("pipelineOperator","proposal");if(gt)return this.parseTopicReference(gt);this.unexpected();break}case 47:{let gt=this.input.codePointAt(this.nextTokenStart());gc(gt)||gt===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(we===137)return this.parseDecimalLiteral(this.state.value);if(qr(we)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();let gt=this.state.potentialArrowAt===this.state.start,sr=this.state.containsEsc,Yr=this.parseIdentifier();if(!sr&&Yr.name==="async"&&!this.canInsertSemicolon()){let{type:Lr}=this.state;if(Lr===68)return this.resetPreviousNodeTrailingComments(Yr),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(Yr));if(qr(Lr))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(Yr)):Yr;if(Lr===90)return this.resetPreviousNodeTrailingComments(Yr),this.parseDo(this.startNodeAtNode(Yr),!0)}return gt&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(Yr),[Yr],!1)):Yr}else this.unexpected()}}parseTopicReferenceThenEqualsSign(se,O){let K=this.getPluginOption("pipelineOperator","proposal");if(K)return this.state.type=se,this.state.value=O,this.state.pos--,this.state.end--,this.state.endLoc=a(this.state.endLoc,-1),this.parseTopicReference(K);this.unexpected()}parseTopicReference(se){let O=this.startNode(),K=this.state.startLoc,we=this.state.type;return this.next(),this.finishTopicReference(O,K,se,we)}finishTopicReference(se,O,K,we){if(this.testTopicReferenceConfiguration(K,O,we))return K==="hack"?(this.topicReferenceIsAllowedInCurrentContext()||this.raise(X.PipeTopicUnbound,O),this.registerTopicReference(),this.finishNode(se,"TopicReference")):(this.topicReferenceIsAllowedInCurrentContext()||this.raise(X.PrimaryTopicNotAllowed,O),this.registerTopicReference(),this.finishNode(se,"PipelinePrimaryTopicReference"));throw this.raise(X.PipeTopicUnconfiguredToken,O,{token:Sc(we)})}testTopicReferenceConfiguration(se,O,K){switch(se){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Sc(K)}]);case"smart":return K===27;default:throw this.raise(X.PipeTopicRequiresHackPipes,O)}}parseAsyncArrowUnaryFunction(se){this.prodParam.enter(ZA(!0,this.prodParam.hasYield));let O=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(X.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(se,O,!0)}parseDo(se,O){this.expectPlugin("doExpressions"),O&&this.expectPlugin("asyncDoExpressions"),se.async=O,this.next();let K=this.state.labels;return this.state.labels=[],O?(this.prodParam.enter(2),se.body=this.parseBlock(),this.prodParam.exit()):se.body=this.parseBlock(),this.state.labels=K,this.finishNode(se,"DoExpression")}parseSuper(){let se=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!(this.optionFlags&16)?this.raise(X.SuperNotAllowed,se):!this.scope.allowSuper&&!(this.optionFlags&16)&&this.raise(X.UnexpectedSuper,se),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(X.UnsupportedSuper,se),this.finishNode(se,"Super")}parsePrivateName(){let se=this.startNode(),O=this.startNodeAt(a(this.state.startLoc,1)),K=this.state.value;return this.next(),se.id=this.createIdentifier(O,K),this.finishNode(se,"PrivateName")}parseFunctionOrFunctionSent(){let se=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let O=this.createIdentifier(this.startNodeAtNode(se),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(se,O,"sent")}return this.parseFunction(se)}parseMetaProperty(se,O,K){se.meta=O;let we=this.state.containsEsc;return se.property=this.parseIdentifier(!0),(se.property.name!==K||we)&&this.raise(X.UnsupportedMetaProperty,se.property,{target:O.name,onlyValidPropertyName:K}),this.finishNode(se,"MetaProperty")}parseImportMetaProperty(se){let O=this.createIdentifier(this.startNodeAtNode(se),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(X.ImportMetaOutsideModule,O),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){let K=this.isContextual(105);if(this.expectPlugin(K?"sourcePhaseImports":"deferredImportEvaluation"),!(this.optionFlags&256))throw this.raise(X.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),se.phase=K?"source":"defer",this.parseImportCall(se)}return this.parseMetaProperty(se,O,"meta")}parseLiteralAtNode(se,O,K){return this.addExtra(K,"rawValue",se),this.addExtra(K,"raw",this.input.slice(this.offsetToSourcePos(K.start),this.state.end)),K.value=se,this.next(),this.finishNode(K,O)}parseLiteral(se,O){let K=this.startNode();return this.parseLiteralAtNode(se,O,K)}parseStringLiteral(se){return this.parseLiteral(se,"StringLiteral")}parseNumericLiteral(se){return this.parseLiteral(se,"NumericLiteral")}parseBigIntLiteral(se){return this.parseLiteral(se,"BigIntLiteral")}parseDecimalLiteral(se){return this.parseLiteral(se,"DecimalLiteral")}parseRegExpLiteral(se){let O=this.startNode();return this.addExtra(O,"raw",this.input.slice(this.offsetToSourcePos(O.start),this.state.end)),O.pattern=se.pattern,O.flags=se.flags,this.next(),this.finishNode(O,"RegExpLiteral")}parseBooleanLiteral(se){let O=this.startNode();return O.value=se,this.next(),this.finishNode(O,"BooleanLiteral")}parseNullLiteral(){let se=this.startNode();return this.next(),this.finishNode(se,"NullLiteral")}parseParenAndDistinguishExpression(se){let O=this.state.startLoc,K;this.next(),this.expressionScope.enter(sd());let we=this.state.maybeInArrowParameters,gt=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let sr=this.state.startLoc,Yr=[],Lr=new yg,fi=!0,$n,ra;for(;!this.match(11);){if(fi)fi=!1;else if(this.expect(12,Lr.optionalParametersLoc===null?null:Lr.optionalParametersLoc),this.match(11)){ra=this.state.startLoc;break}if(this.match(21)){let ca=this.state.startLoc;if($n=this.state.startLoc,Yr.push(this.parseParenItem(this.parseRestBinding(),ca)),!this.checkCommaAfterRest(41))break}else Yr.push(this.parseMaybeAssignAllowIn(Lr,this.parseParenItem))}let kc=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=we,this.state.inFSharpPipelineDirectBody=gt;let Nl=this.startNodeAt(O);return se&&this.shouldParseArrow(Yr)&&(Nl=this.parseArrow(Nl))?(this.checkDestructuringPrivate(Lr),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(Nl,Yr,!1),Nl):(this.expressionScope.exit(),Yr.length||this.unexpected(this.state.lastTokStartLoc),ra&&this.unexpected(ra),$n&&this.unexpected($n),this.checkExpressionErrors(Lr,!0),this.toReferencedListDeep(Yr,!0),Yr.length>1?(K=this.startNodeAt(sr),K.expressions=Yr,this.finishNode(K,"SequenceExpression"),this.resetEndLocation(K,kc)):K=Yr[0],this.wrapParenthesis(O,K))}wrapParenthesis(se,O){if(!(this.optionFlags&512))return this.addExtra(O,"parenthesized",!0),this.addExtra(O,"parenStart",se.index),this.takeSurroundingComments(O,se.index,this.state.lastTokEndLoc.index),O;let K=this.startNodeAt(se);return K.expression=O,this.finishNode(K,"ParenthesizedExpression")}shouldParseArrow(se){return!this.canInsertSemicolon()}parseArrow(se){if(this.eat(19))return se}parseParenItem(se,O){return se}parseNewOrNewTarget(){let se=this.startNode();if(this.next(),this.match(16)){let O=this.createIdentifier(this.startNodeAtNode(se),"new");this.next();let K=this.parseMetaProperty(se,O,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!(this.optionFlags&4)&&this.raise(X.UnexpectedNewTarget,K),K}return this.parseNew(se)}parseNew(se){if(this.parseNewCallee(se),this.eat(10)){let O=this.parseExprList(11);this.toReferencedList(O),se.arguments=O}else se.arguments=[];return this.finishNode(se,"NewExpression")}parseNewCallee(se){let O=this.match(83),K=this.parseNoCallExpr();se.callee=K,O&&(K.type==="Import"||K.type==="ImportExpression")&&this.raise(X.ImportCallNotNewExpression,K)}parseTemplateElement(se){let{start:O,startLoc:K,end:we,value:gt}=this.state,sr=O+1,Yr=this.startNodeAt(a(K,1));gt===null&&(se||this.raise(X.InvalidEscapeSequenceTemplate,a(this.state.firstInvalidTemplateEscapePos,1)));let Lr=this.match(24),fi=Lr?-1:-2,$n=we+fi;Yr.value={raw:this.input.slice(sr,$n).replace(/\r\n?/g,` -`),cooked:gt===null?null:gt.slice(1,fi)},Yr.tail=Lr,this.next();let ra=this.finishNode(Yr,"TemplateElement");return this.resetEndLocation(ra,a(this.state.lastTokEndLoc,fi)),ra}parseTemplate(se){let O=this.startNode(),K=this.parseTemplateElement(se),we=[K],gt=[];for(;!K.tail;)gt.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),we.push(K=this.parseTemplateElement(se));return O.expressions=gt,O.quasis=we,this.finishNode(O,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(se,O,K,we){K&&this.expectPlugin("recordAndTuple");let gt=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let sr=Object.create(null),Yr=!0,Lr=this.startNode();for(Lr.properties=[],this.next();!this.match(se);){if(Yr)Yr=!1;else if(this.expect(12),this.match(se)){this.addTrailingCommaExtraToNode(Lr);break}let $n;O?$n=this.parseBindingProperty():($n=this.parsePropertyDefinition(we),this.checkProto($n,K,sr,we)),K&&!this.isObjectProperty($n)&&$n.type!=="SpreadElement"&&this.raise(X.InvalidRecordProperty,$n),$n.shorthand&&this.addExtra($n,"shorthand",!0),Lr.properties.push($n)}this.next(),this.state.inFSharpPipelineDirectBody=gt;let fi="ObjectExpression";return O?fi="ObjectPattern":K&&(fi="RecordExpression"),this.finishNode(Lr,fi)}addTrailingCommaExtraToNode(se){this.addExtra(se,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(se,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(se){return!se.computed&&se.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(se){let O=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(X.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)O.push(this.parseDecorator());let K=this.startNode(),we=!1,gt=!1,sr;if(this.match(21))return O.length&&this.unexpected(),this.parseSpread();O.length&&(K.decorators=O,O=[]),K.method=!1,se&&(sr=this.state.startLoc);let Yr=this.eat(55);this.parsePropertyNamePrefixOperator(K);let Lr=this.state.containsEsc;if(this.parsePropertyName(K,se),!Yr&&!Lr&&this.maybeAsyncOrAccessorProp(K)){let{key:fi}=K,$n=fi.name;$n==="async"&&!this.hasPrecedingLineBreak()&&(we=!0,this.resetPreviousNodeTrailingComments(fi),Yr=this.eat(55),this.parsePropertyName(K)),($n==="get"||$n==="set")&&(gt=!0,this.resetPreviousNodeTrailingComments(fi),K.kind=$n,this.match(55)&&(Yr=!0,this.raise(X.AccessorIsGenerator,this.state.curPosition(),{kind:$n}),this.next()),this.parsePropertyName(K))}return this.parseObjPropValue(K,sr,Yr,we,!1,gt,se)}getGetterSetterExpectedParamCount(se){return se.kind==="get"?0:1}getObjectOrClassMethodParams(se){return se.params}checkGetterSetterParams(se){var O;let K=this.getGetterSetterExpectedParamCount(se),we=this.getObjectOrClassMethodParams(se);we.length!==K&&this.raise(se.kind==="get"?X.BadGetterArity:X.BadSetterArity,se),se.kind==="set"&&((O=we[we.length-1])==null?void 0:O.type)==="RestElement"&&this.raise(X.BadSetterRestParameter,se)}parseObjectMethod(se,O,K,we,gt){if(gt){let sr=this.parseMethod(se,O,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(sr),sr}if(K||O||this.match(10))return we&&this.unexpected(),se.kind="method",se.method=!0,this.parseMethod(se,O,K,!1,!1,"ObjectMethod")}parseObjectProperty(se,O,K,we){if(se.shorthand=!1,this.eat(14))return se.value=K?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(we),this.finishNode(se,"ObjectProperty");if(!se.computed&&se.key.type==="Identifier"){if(this.checkReservedWord(se.key.name,se.key.loc.start,!0,!1),K)se.value=this.parseMaybeDefault(O,Zt(se.key));else if(this.match(29)){let gt=this.state.startLoc;we!=null?we.shorthandAssignLoc===null&&(we.shorthandAssignLoc=gt):this.raise(X.InvalidCoverInitializedName,gt),se.value=this.parseMaybeDefault(O,Zt(se.key))}else se.value=Zt(se.key);return se.shorthand=!0,this.finishNode(se,"ObjectProperty")}}parseObjPropValue(se,O,K,we,gt,sr,Yr){let Lr=this.parseObjectMethod(se,K,we,gt,sr)||this.parseObjectProperty(se,O,gt,Yr);return Lr||this.unexpected(),Lr}parsePropertyName(se,O){if(this.eat(0))se.computed=!0,se.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:K,value:we}=this.state,gt;if(ke(K))gt=this.parseIdentifier(!0);else switch(K){case 135:gt=this.parseNumericLiteral(we);break;case 134:gt=this.parseStringLiteral(we);break;case 136:gt=this.parseBigIntLiteral(we);break;case 139:{let sr=this.state.startLoc;O!=null?O.privateKeyLoc===null&&(O.privateKeyLoc=sr):this.raise(X.UnexpectedPrivateField,sr),gt=this.parsePrivateName();break}default:if(K===137){gt=this.parseDecimalLiteral(we);break}this.unexpected()}se.key=gt,K!==139&&(se.computed=!1)}}initFunction(se,O){se.id=null,se.generator=!1,se.async=O}parseMethod(se,O,K,we,gt,sr,Yr=!1){this.initFunction(se,K),se.generator=O,this.scope.enter(18|(Yr?64:0)|(gt?32:0)),this.prodParam.enter(ZA(K,se.generator)),this.parseFunctionParams(se,we);let Lr=this.parseFunctionBodyAndFinish(se,sr,!0);return this.prodParam.exit(),this.scope.exit(),Lr}parseArrayLike(se,O,K,we){K&&this.expectPlugin("recordAndTuple");let gt=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let sr=this.startNode();return this.next(),sr.elements=this.parseExprList(se,!K,we,sr),this.state.inFSharpPipelineDirectBody=gt,this.finishNode(sr,K?"TupleExpression":"ArrayExpression")}parseArrowExpression(se,O,K,we){this.scope.enter(6);let gt=ZA(K,!1);!this.match(5)&&this.prodParam.hasIn&&(gt|=8),this.prodParam.enter(gt),this.initFunction(se,K);let sr=this.state.maybeInArrowParameters;return O&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(se,O,we)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(se,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=sr,this.finishNode(se,"ArrowFunctionExpression")}setArrowFunctionParameters(se,O,K){this.toAssignableList(O,K,!1),se.params=O}parseFunctionBodyAndFinish(se,O,K=!1){return this.parseFunctionBody(se,!1,K),this.finishNode(se,O)}parseFunctionBody(se,O,K=!1){let we=O&&!this.match(5);if(this.expressionScope.enter(il()),we)se.body=this.parseMaybeAssign(),this.checkParams(se,!1,O,!1);else{let gt=this.state.strict,sr=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),se.body=this.parseBlock(!0,!1,Yr=>{let Lr=!this.isSimpleParamList(se.params);Yr&&Lr&&this.raise(X.IllegalLanguageModeDirective,(se.kind==="method"||se.kind==="constructor")&&se.key?se.key.loc.end:se);let fi=!gt&&this.state.strict;this.checkParams(se,!this.state.strict&&!O&&!K&&!Lr,O,fi),this.state.strict&&se.id&&this.checkIdentifier(se.id,65,fi)}),this.prodParam.exit(),this.state.labels=sr}this.expressionScope.exit()}isSimpleParameter(se){return se.type==="Identifier"}isSimpleParamList(se){for(let O=0,K=se.length;O10||!Sg(se))){if(K&&ac(se)){this.raise(X.UnexpectedKeyword,O,{keyword:se});return}if((this.state.strict?we?Xa:Ei:li)(se,this.inModule)){this.raise(X.UnexpectedReservedWord,O,{reservedWord:se});return}else if(se==="yield"){if(this.prodParam.hasYield){this.raise(X.YieldBindingIdentifier,O);return}}else if(se==="await"){if(this.prodParam.hasAwait){this.raise(X.AwaitBindingIdentifier,O);return}if(this.scope.inStaticBlock){this.raise(X.AwaitBindingIdentifierInStaticBlock,O);return}this.expressionScope.recordAsyncArrowParametersError(O)}else if(se==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(X.ArgumentsInClass,O);return}}}recordAwaitIfAllowed(){let se=this.prodParam.hasAwait||this.optionFlags&1&&!this.scope.inFunction;return se&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),se}parseAwait(se){let O=this.startNodeAt(se);return this.expressionScope.recordParameterInitializerError(X.AwaitExpressionFormalParameter,O),this.eat(55)&&this.raise(X.ObsoleteAwaitStar,O),!this.scope.inFunction&&!(this.optionFlags&1)&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(O.argument=this.parseMaybeUnary(null,!0)),this.finishNode(O,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:se}=this.state;return se===53||se===10||se===0||Ft(se)||se===102&&!this.state.containsEsc||se===138||se===56||this.hasPlugin("v8intrinsic")&&se===54}parseYield(){let se=this.startNode();this.expressionScope.recordParameterInitializerError(X.YieldInParameter,se),this.next();let O=!1,K=null;if(!this.hasPrecedingLineBreak())switch(O=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!O)break;default:K=this.parseMaybeAssign()}return se.delegate=O,se.argument=K,this.finishNode(se,"YieldExpression")}parseImportCall(se){if(this.next(),se.source=this.parseMaybeAssignAllowIn(),se.options=null,this.eat(12)&&!this.match(11)&&(se.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&!this.match(11))){do this.parseMaybeAssignAllowIn();while(this.eat(12)&&!this.match(11));this.raise(X.ImportCallArity,se)}return this.expect(11),this.finishNode(se,"ImportExpression")}checkPipelineAtInfixOperator(se,O){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&se.type==="SequenceExpression"&&this.raise(X.PipelineHeadSequenceExpression,O)}parseSmartPipelineBodyInStyle(se,O){if(this.isSimpleReference(se)){let K=this.startNodeAt(O);return K.callee=se,this.finishNode(K,"PipelineBareFunction")}else{let K=this.startNodeAt(O);return this.checkSmartPipeTopicBodyEarlyErrors(O),K.expression=se,this.finishNode(K,"PipelineTopicExpression")}}isSimpleReference(se){switch(se.type){case"MemberExpression":return!se.computed&&this.isSimpleReference(se.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(se){if(this.match(19))throw this.raise(X.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipelineTopicUnused,se)}withTopicBindingContext(se){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}withSmartMixTopicForbiddingContext(se){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}else return se()}withSoloAwaitPermittingContext(se){let O=this.state.soloAwait;this.state.soloAwait=!0;try{return se()}finally{this.state.soloAwait=O}}allowInAnd(se){let O=this.prodParam.currentFlags();if(8&~O){this.prodParam.enter(O|8);try{return se()}finally{this.prodParam.exit()}}return se()}disallowInAnd(se){let O=this.prodParam.currentFlags();if(8&O){this.prodParam.enter(O&-9);try{return se()}finally{this.prodParam.exit()}}return se()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(se){let O=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let K=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let we=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),O,se);return this.state.inFSharpPipelineDirectBody=K,we}parseModuleExpression(){this.expectPlugin("moduleBlocks");let se=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);let O=this.startNodeAt(this.state.endLoc);this.next();let K=this.initializeScopes(!0);this.enterInitialScopes();try{se.body=this.parseProgram(O,8,"module")}finally{K()}return this.finishNode(se,"ModuleExpression")}parsePropertyNamePrefixOperator(se){}},q0={kind:1},XE={kind:2},TC=/[\uD800-\uDFFF]/u,t_=/in(?:stanceof)?/y;function cp(se,O,K){for(let we=0;we0)for(let[gt,sr]of Array.from(this.scope.undefinedExports))this.raise(X.ModuleExportUndefined,sr,{localName:gt});this.addExtra(se,"topLevelAwait",this.state.hasTopLevelAwait)}let we;return O===140?we=this.finishNode(se,"Program"):we=this.finishNodeAt(se,"Program",a(this.state.startLoc,-1)),we}stmtToDirective(se){let O=se;O.type="Directive",O.value=O.expression,delete O.expression;let K=O.value,we=K.value,gt=this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end)),sr=K.value=gt.slice(1,-1);return this.addExtra(K,"raw",gt),this.addExtra(K,"rawValue",sr),this.addExtra(K,"expressionValue",we),K.type="DirectiveLiteral",O}parseInterpreterDirective(){if(!this.match(28))return null;let se=this.startNode();return se.value=this.state.value,this.next(),this.finishNode(se,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(se,O){if(gc(se)){if(t_.lastIndex=O,t_.test(this.input)){let K=this.codePointAtPos(t_.lastIndex);if(!Cg(K)&&K!==92)return!1}return!0}else return se===92}chStartsBindingPattern(se){return se===91||se===123}hasFollowingBindingAtom(){let se=this.nextTokenStart(),O=this.codePointAtPos(se);return this.chStartsBindingPattern(O)||this.chStartsBindingIdentifier(O,se)}hasInLineFollowingBindingIdentifierOrBrace(){let se=this.nextTokenInLineStart(),O=this.codePointAtPos(se);return O===123||this.chStartsBindingIdentifier(O,se)}startsUsingForOf(){let{type:se,containsEsc:O}=this.lookahead();if(se===102&&!O)return!1;if(qr(se)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let se=this.nextTokenInLineStart();if(this.isUnparsedContextual(se,"using")){se=this.nextTokenInLineStartSince(se+5);let O=this.codePointAtPos(se);if(this.chStartsBindingIdentifier(O,se))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(se=!1){let O=0;return this.options.annexB&&!this.state.strict&&(O|=4,se&&(O|=8)),this.parseStatementLike(O)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(se){let O=null;return this.match(26)&&(O=this.parseDecorators(!0)),this.parseStatementContent(se,O)}parseStatementContent(se,O){let K=this.state.type,we=this.startNode(),gt=!!(se&2),sr=!!(se&4),Yr=se&1;switch(K){case 60:return this.parseBreakContinueStatement(we,!0);case 63:return this.parseBreakContinueStatement(we,!1);case 64:return this.parseDebuggerStatement(we);case 90:return this.parseDoWhileStatement(we);case 91:return this.parseForStatement(we);case 68:if(this.lookaheadCharCode()===46)break;return sr||this.raise(this.state.strict?X.StrictFunction:this.options.annexB?X.SloppyFunctionAnnexB:X.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(we,!1,!gt&&sr);case 80:return gt||this.unexpected(),this.parseClass(this.maybeTakeDecorators(O,we),!0);case 69:return this.parseIfStatement(we);case 70:return this.parseReturnStatement(we);case 71:return this.parseSwitchStatement(we);case 72:return this.parseThrowStatement(we);case 73:return this.parseTryStatement(we);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?gt||this.raise(X.UnexpectedLexicalDeclaration,we):this.raise(X.AwaitUsingNotInAsyncContext,we),this.next(),this.parseVarStatement(we,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(X.UnexpectedUsingDeclaration,this.state.startLoc):gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(we,"using");case 100:{if(this.state.containsEsc)break;let $n=this.nextTokenStart(),ra=this.codePointAtPos($n);if(ra!==91&&(!gt&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(ra,$n)&&ra!==123))break}case 75:gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{let $n=this.state.value;return this.parseVarStatement(we,$n)}case 92:return this.parseWhileStatement(we);case 76:return this.parseWithStatement(we);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(we);case 83:{let $n=this.lookaheadCharCode();if($n===40||$n===46)break}case 82:{!(this.optionFlags&8)&&!Yr&&this.raise(X.UnexpectedImportExport,this.state.startLoc),this.next();let $n;return K===83?($n=this.parseImport(we),$n.type==="ImportDeclaration"&&(!$n.importKind||$n.importKind==="value")&&(this.sawUnambiguousESM=!0)):($n=this.parseExport(we,O),($n.type==="ExportNamedDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportAllDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed($n),$n}default:if(this.isAsyncFunction())return gt||this.raise(X.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(we,!0,!gt&&sr)}let Lr=this.state.value,fi=this.parseExpression();return qr(K)&&fi.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(we,Lr,fi,se):this.parseExpressionStatement(we,fi,O)}assertModuleNodeAllowed(se){!(this.optionFlags&8)&&!this.inModule&&this.raise(X.ImportOutsideModule,se)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(se,O,K){if(se){var we;(we=O.decorators)!=null&&we.length?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(X.DecoratorsBeforeAfterExport,O.decorators[0]),O.decorators.unshift(...se)):O.decorators=se,this.resetStartLocationFromNode(O,se[0]),K&&this.resetStartLocationFromNode(K,O)}return O}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(se){let O=[];do O.push(this.parseDecorator());while(this.match(26));if(this.match(82))se||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(X.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(X.UnexpectedLeadingDecorator,this.state.startLoc);return O}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);let se=this.startNode();if(this.next(),this.hasPlugin("decorators")){let O=this.state.startLoc,K;if(this.match(10)){let we=this.state.startLoc;this.next(),K=this.parseExpression(),this.expect(11),K=this.wrapParenthesis(we,K);let gt=this.state.startLoc;se.expression=this.parseMaybeDecoratorArguments(K,we),this.getPluginOption("decorators","allowCallParenthesized")===!1&&se.expression!==K&&this.raise(X.DecoratorArgumentsOutsideParentheses,gt)}else{for(K=this.parseIdentifier(!1);this.eat(16);){let we=this.startNodeAt(O);we.object=K,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),we.property=this.parsePrivateName()):we.property=this.parseIdentifier(!0),we.computed=!1,K=this.finishNode(we,"MemberExpression")}se.expression=this.parseMaybeDecoratorArguments(K,O)}}else se.expression=this.parseExprSubscripts();return this.finishNode(se,"Decorator")}parseMaybeDecoratorArguments(se,O){if(this.eat(10)){let K=this.startNodeAt(O);return K.callee=se,K.arguments=this.parseCallExpressionArguments(11),this.toReferencedList(K.arguments),this.finishNode(K,"CallExpression")}return se}parseBreakContinueStatement(se,O){return this.next(),this.isLineTerminator()?se.label=null:(se.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(se,O),this.finishNode(se,O?"BreakStatement":"ContinueStatement")}verifyBreakContinue(se,O){let K;for(K=0;Kthis.parseStatement()),this.state.labels.pop(),this.expect(92),se.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(se,"DoWhileStatement")}parseForStatement(se){this.next(),this.state.labels.push(q0);let O=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(O=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return O!==null&&this.unexpected(O),this.parseFor(se,null);let K=this.isContextual(100);{let Lr=this.isContextual(96)&&this.startsAwaitUsing(),fi=Lr||this.isContextual(107)&&this.startsUsingForOf(),$n=K&&this.hasFollowingBindingAtom()||fi;if(this.match(74)||this.match(75)||$n){let ra=this.startNode(),kc;Lr?(kc="await using",this.recordAwaitIfAllowed()||this.raise(X.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):kc=this.state.value,this.next(),this.parseVar(ra,!0,kc);let Nl=this.finishNode(ra,"VariableDeclaration"),ca=this.match(58);return ca&&fi&&this.raise(X.ForInUsing,Nl),(ca||this.isContextual(102))&&Nl.declarations.length===1?this.parseForIn(se,Nl,O):(O!==null&&this.unexpected(O),this.parseFor(se,Nl))}}let we=this.isContextual(95),gt=new yg,sr=this.parseExpression(!0,gt),Yr=this.isContextual(102);if(Yr&&(K&&this.raise(X.ForOfLet,sr),O===null&&we&&sr.type==="Identifier"&&this.raise(X.ForOfAsync,sr)),Yr||this.match(58)){this.checkDestructuringPrivate(gt),this.toAssignable(sr,!0);let Lr=Yr?"ForOfStatement":"ForInStatement";return this.checkLVal(sr,{type:Lr}),this.parseForIn(se,sr,O)}else this.checkExpressionErrors(gt,!0);return O!==null&&this.unexpected(O),this.parseFor(se,sr)}parseFunctionStatement(se,O,K){return this.next(),this.parseFunction(se,1|(K?2:0)|(O?8:0))}parseIfStatement(se){return this.next(),se.test=this.parseHeaderExpression(),se.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),se.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(se,"IfStatement")}parseReturnStatement(se){return!this.prodParam.hasReturn&&!(this.optionFlags&2)&&this.raise(X.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?se.argument=null:(se.argument=this.parseExpression(),this.semicolon()),this.finishNode(se,"ReturnStatement")}parseSwitchStatement(se){this.next(),se.discriminant=this.parseHeaderExpression();let O=se.cases=[];this.expect(5),this.state.labels.push(XE),this.scope.enter(0);let K;for(let we;!this.match(8);)if(this.match(61)||this.match(65)){let gt=this.match(61);K&&this.finishNode(K,"SwitchCase"),O.push(K=this.startNode()),K.consequent=[],this.next(),gt?K.test=this.parseExpression():(we&&this.raise(X.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),we=!0,K.test=null),this.expect(14)}else K?K.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),K&&this.finishNode(K,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(se,"SwitchStatement")}parseThrowStatement(se){return this.next(),this.hasPrecedingLineBreak()&&this.raise(X.NewlineAfterThrow,this.state.lastTokEndLoc),se.argument=this.parseExpression(),this.semicolon(),this.finishNode(se,"ThrowStatement")}parseCatchClauseParam(){let se=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&se.type==="Identifier"?8:0),this.checkLVal(se,{type:"CatchClause"},9),se}parseTryStatement(se){if(this.next(),se.block=this.parseBlock(),se.handler=null,this.match(62)){let O=this.startNode();this.next(),this.match(10)?(this.expect(10),O.param=this.parseCatchClauseParam(),this.expect(11)):(O.param=null,this.scope.enter(0)),O.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),se.handler=this.finishNode(O,"CatchClause")}return se.finalizer=this.eat(67)?this.parseBlock():null,!se.handler&&!se.finalizer&&this.raise(X.NoCatchOrFinally,se),this.finishNode(se,"TryStatement")}parseVarStatement(se,O,K=!1){return this.next(),this.parseVar(se,!1,O,K),this.semicolon(),this.finishNode(se,"VariableDeclaration")}parseWhileStatement(se){return this.next(),se.test=this.parseHeaderExpression(),this.state.labels.push(q0),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(se,"WhileStatement")}parseWithStatement(se){return this.state.strict&&this.raise(X.StrictWith,this.state.startLoc),this.next(),se.object=this.parseHeaderExpression(),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(se,"WithStatement")}parseEmptyStatement(se){return this.next(),this.finishNode(se,"EmptyStatement")}parseLabeledStatement(se,O,K,we){for(let sr of this.state.labels)sr.name===O&&this.raise(X.LabelRedeclaration,K,{labelName:O});let gt=Vr(this.state.type)?1:this.match(71)?2:null;for(let sr=this.state.labels.length-1;sr>=0;sr--){let Yr=this.state.labels[sr];if(Yr.statementStart===se.start)Yr.statementStart=this.sourceToOffsetPos(this.state.start),Yr.kind=gt;else break}return this.state.labels.push({name:O,kind:gt,statementStart:this.sourceToOffsetPos(this.state.start)}),se.body=we&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),se.label=K,this.finishNode(se,"LabeledStatement")}parseExpressionStatement(se,O,K){return se.expression=O,this.semicolon(),this.finishNode(se,"ExpressionStatement")}parseBlock(se=!1,O=!0,K){let we=this.startNode();return se&&this.state.strictErrors.clear(),this.expect(5),O&&this.scope.enter(0),this.parseBlockBody(we,se,!1,8,K),O&&this.scope.exit(),this.finishNode(we,"BlockStatement")}isValidDirective(se){return se.type==="ExpressionStatement"&&se.expression.type==="StringLiteral"&&!se.expression.extra.parenthesized}parseBlockBody(se,O,K,we,gt){let sr=se.body=[],Yr=se.directives=[];this.parseBlockOrModuleBlockBody(sr,O?Yr:void 0,K,we,gt)}parseBlockOrModuleBlockBody(se,O,K,we,gt){let sr=this.state.strict,Yr=!1,Lr=!1;for(;!this.match(we);){let fi=K?this.parseModuleItem():this.parseStatementListItem();if(O&&!Lr){if(this.isValidDirective(fi)){let $n=this.stmtToDirective(fi);O.push($n),!Yr&&$n.value.value==="use strict"&&(Yr=!0,this.setStrict(!0));continue}Lr=!0,this.state.strictErrors.clear()}se.push(fi)}gt?.call(this,Yr),sr||this.setStrict(!1),this.next()}parseFor(se,O){return se.init=O,this.semicolon(!1),se.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),se.update=this.match(11)?null:this.parseExpression(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,"ForStatement")}parseForIn(se,O,K){let we=this.match(58);return this.next(),we?K!==null&&this.unexpected(K):se.await=K!==null,O.type==="VariableDeclaration"&&O.declarations[0].init!=null&&(!we||!this.options.annexB||this.state.strict||O.kind!=="var"||O.declarations[0].id.type!=="Identifier")&&this.raise(X.ForInOfLoopInitializer,O,{type:we?"ForInStatement":"ForOfStatement"}),O.type==="AssignmentPattern"&&this.raise(X.InvalidLhs,O,{ancestor:{type:"ForStatement"}}),se.left=O,se.right=we?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,we?"ForInStatement":"ForOfStatement")}parseVar(se,O,K,we=!1){let gt=se.declarations=[];for(se.kind=K;;){let sr=this.startNode();if(this.parseVarId(sr,K),sr.init=this.eat(29)?O?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,sr.init===null&&!we&&(sr.id.type!=="Identifier"&&!(O&&(this.match(58)||this.isContextual(102)))?this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(K==="const"||K==="using"||K==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:K})),gt.push(this.finishNode(sr,"VariableDeclarator")),!this.eat(12))break}return se}parseVarId(se,O){let K=this.parseBindingAtom();(O==="using"||O==="await using")&&(K.type==="ArrayPattern"||K.type==="ObjectPattern")&&this.raise(X.UsingDeclarationHasBindingPattern,K.loc.start),this.checkLVal(K,{type:"VariableDeclarator"},O==="var"?5:8201),se.id=K}parseAsyncFunctionExpression(se){return this.parseFunction(se,8)}parseFunction(se,O=0){let K=O&2,we=!!(O&1),gt=we&&!(O&4),sr=!!(O&8);this.initFunction(se,sr),this.match(55)&&(K&&this.raise(X.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),se.generator=!0),we&&(se.id=this.parseFunctionId(gt));let Yr=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(ZA(sr,se.generator)),we||(se.id=this.parseFunctionId()),this.parseFunctionParams(se,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(se,we?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),we&&!K&&this.registerFunctionStatementId(se),this.state.maybeInArrowParameters=Yr,se}parseFunctionId(se){return se||qr(this.state.type)?this.parseIdentifier():null}parseFunctionParams(se,O){this.expect(10),this.expressionScope.enter(rc()),se.params=this.parseBindingList(11,41,2|(O?4:0)),this.expressionScope.exit()}registerFunctionStatementId(se){se.id&&this.scope.declareName(se.id.name,!this.options.annexB||this.state.strict||se.generator||se.async?this.scope.treatFunctionsAsVar?5:8201:17,se.id.loc.start)}parseClass(se,O,K){this.next();let we=this.state.strict;return this.state.strict=!0,this.parseClassId(se,O,K),this.parseClassSuper(se),se.body=this.parseClassBody(!!se.superClass,we),this.finishNode(se,O?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(se){return se.type==="Identifier"&&se.name==="constructor"||se.type==="StringLiteral"&&se.value==="constructor"}isNonstaticConstructor(se){return!se.computed&&!se.static&&this.nameIsConstructor(se.key)}parseClassBody(se,O){this.classScope.enter();let K={hadConstructor:!1,hadSuperClass:se},we=[],gt=this.startNode();if(gt.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(we.length>0)throw this.raise(X.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){we.push(this.parseDecorator());continue}let sr=this.startNode();we.length&&(sr.decorators=we,this.resetStartLocationFromNode(sr,we[0]),we=[]),this.parseClassMember(gt,sr,K),sr.kind==="constructor"&&sr.decorators&&sr.decorators.length>0&&this.raise(X.DecoratorConstructor,sr)}}),this.state.strict=O,this.next(),we.length)throw this.raise(X.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(gt,"ClassBody")}parseClassMemberFromModifier(se,O){let K=this.parseIdentifier(!0);if(this.isClassMethod()){let we=O;return we.kind="method",we.computed=!1,we.key=K,we.static=!1,this.pushClassMethod(se,we,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let we=O;return we.computed=!1,we.key=K,we.static=!1,se.body.push(this.parseClassProperty(we)),!0}return this.resetPreviousNodeTrailingComments(K),!1}parseClassMember(se,O,K){let we=this.isContextual(106);if(we){if(this.parseClassMemberFromModifier(se,O))return;if(this.eat(5)){this.parseClassStaticBlock(se,O);return}}this.parseClassMemberWithIsStatic(se,O,K,we)}parseClassMemberWithIsStatic(se,O,K,we){let gt=O,sr=O,Yr=O,Lr=O,fi=O,$n=gt,ra=gt;if(O.static=we,this.parsePropertyNamePrefixOperator(O),this.eat(55)){$n.kind="method";let SA=this.match(139);if(this.parseClassElementName($n),SA){this.pushClassPrivateMethod(se,sr,!0,!1);return}this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsGenerator,gt.key),this.pushClassMethod(se,gt,!0,!1,!1,!1);return}let kc=!this.state.containsEsc&&qr(this.state.type),Nl=this.parseClassElementName(O),ca=kc?Nl.name:null,Bl=this.isPrivateName(Nl),$g=this.state.startLoc;if(this.parsePostMemberNameModifiers(ra),this.isClassMethod()){if($n.kind="method",Bl){this.pushClassPrivateMethod(se,sr,!1,!1);return}let SA=this.isNonstaticConstructor(gt),lI=!1;SA&&(gt.kind="constructor",K.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(X.DuplicateConstructor,Nl),SA&&this.hasPlugin("typescript")&&O.override&&this.raise(X.OverrideOnConstructor,Nl),K.hadConstructor=!0,lI=K.hadSuperClass),this.pushClassMethod(se,gt,!1,!1,SA,lI)}else if(this.isClassProperty())Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr);else if(ca==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(Nl);let SA=this.eat(55);ra.optional&&this.unexpected($g),$n.kind="method";let lI=this.match(139);this.parseClassElementName($n),this.parsePostMemberNameModifiers(ra),lI?this.pushClassPrivateMethod(se,sr,SA,!0):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAsync,gt.key),this.pushClassMethod(se,gt,SA,!0,!1,!1))}else if((ca==="get"||ca==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(Nl),$n.kind=ca;let SA=this.match(139);this.parseClassElementName(gt),SA?this.pushClassPrivateMethod(se,sr,!1,!1):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAccessor,gt.key),this.pushClassMethod(se,gt,!1,!1,!1,!1)),this.checkGetterSetterParams(gt)}else if(ca==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(Nl);let SA=this.match(139);this.parseClassElementName(Yr),this.pushClassAccessorProperty(se,fi,SA)}else this.isLineTerminator()?Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr):this.unexpected()}parseClassElementName(se){let{type:O,value:K}=this.state;if((O===132||O===134)&&se.static&&K==="prototype"&&this.raise(X.StaticPrototype,this.state.startLoc),O===139){K==="constructor"&&this.raise(X.ConstructorClassPrivateField,this.state.startLoc);let we=this.parsePrivateName();return se.key=we,we}return this.parsePropertyName(se),se.key}parseClassStaticBlock(se,O){var K;this.scope.enter(208);let we=this.state.labels;this.state.labels=[],this.prodParam.enter(0);let gt=O.body=[];this.parseBlockOrModuleBlockBody(gt,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=we,se.body.push(this.finishNode(O,"StaticBlock")),(K=O.decorators)!=null&&K.length&&this.raise(X.DecoratorStaticBlock,O)}pushClassProperty(se,O){!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key),se.body.push(this.parseClassProperty(O))}pushClassPrivateProperty(se,O){let K=this.parseClassPrivateProperty(O);se.body.push(K),this.classScope.declarePrivateName(this.getPrivateNameSV(K.key),0,K.key.loc.start)}pushClassAccessorProperty(se,O,K){!K&&!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key);let we=this.parseClassAccessorProperty(O);se.body.push(we),K&&this.classScope.declarePrivateName(this.getPrivateNameSV(we.key),0,we.key.loc.start)}pushClassMethod(se,O,K,we,gt,sr){se.body.push(this.parseMethod(O,K,we,gt,sr,"ClassMethod",!0))}pushClassPrivateMethod(se,O,K,we){let gt=this.parseMethod(O,K,we,!1,!1,"ClassPrivateMethod",!0);se.body.push(gt);let sr=gt.kind==="get"?gt.static?6:2:gt.kind==="set"?gt.static?5:1:0;this.declareClassPrivateMethodInScope(gt,sr)}declareClassPrivateMethodInScope(se,O){this.classScope.declarePrivateName(this.getPrivateNameSV(se.key),O,se.key.loc.start)}parsePostMemberNameModifiers(se){}parseClassPrivateProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassPrivateProperty")}parseClassProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassProperty")}parseClassAccessorProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassAccessorProperty")}parseInitializer(se){this.scope.enter(80),this.expressionScope.enter(il()),this.prodParam.enter(0),se.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(se,O,K,we=8331){if(qr(this.state.type))se.id=this.parseIdentifier(),O&&this.declareNameFromIdentifier(se.id,we);else if(K||!O)se.id=null;else throw this.raise(X.MissingClassName,this.state.startLoc)}parseClassSuper(se){se.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(se,O){let K=this.parseMaybeImportPhase(se,!0),we=this.maybeParseExportDefaultSpecifier(se,K),gt=!we||this.eat(12),sr=gt&&this.eatExportStar(se),Yr=sr&&this.maybeParseExportNamespaceSpecifier(se),Lr=gt&&(!Yr||this.eat(12)),fi=we||sr;if(sr&&!Yr){if(we&&this.unexpected(),O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.parseExportFrom(se,!0),this.finishNode(se,"ExportAllDeclaration")}let $n=this.maybeParseExportNamedSpecifiers(se);we&>&&!sr&&!$n&&this.unexpected(null,5),Yr&&Lr&&this.unexpected(null,98);let ra;if(fi||$n){if(ra=!1,O)throw this.raise(X.UnsupportedDecoratorExport,se);this.parseExportFrom(se,fi)}else ra=this.maybeParseExportDeclaration(se);if(fi||$n||ra){var kc;let Nl=se;if(this.checkExport(Nl,!0,!1,!!Nl.source),((kc=Nl.declaration)==null?void 0:kc.type)==="ClassDeclaration")this.maybeTakeDecorators(O,Nl.declaration,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.finishNode(Nl,"ExportNamedDeclaration")}if(this.eat(65)){let Nl=se,ca=this.parseExportDefaultExpression();if(Nl.declaration=ca,ca.type==="ClassDeclaration")this.maybeTakeDecorators(O,ca,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.checkExport(Nl,!0,!0),this.finishNode(Nl,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(se){return this.eat(55)}maybeParseExportDefaultSpecifier(se,O){if(O||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",O?.loc.start);let K=O||this.parseIdentifier(!0),we=this.startNodeAtNode(K);return we.exported=K,se.specifiers=[this.finishNode(we,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(se){if(this.isContextual(93)){var O,K;(K=(O=se).specifiers)!=null||(O.specifiers=[]);let we=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),we.exported=this.parseModuleExportName(),se.specifiers.push(this.finishNode(we,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(se){if(this.match(5)){let O=se;O.specifiers||(O.specifiers=[]);let K=O.exportKind==="type";return O.specifiers.push(...this.parseExportSpecifiers(K)),O.source=null,O.declaration=null,this.hasPlugin("importAssertions")&&(O.assertions=[]),!0}return!1}maybeParseExportDeclaration(se){return this.shouldParseExportDeclaration()?(se.specifiers=[],se.source=null,this.hasPlugin("importAssertions")&&(se.assertions=[]),se.declaration=this.parseExportDeclaration(se),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let se=this.nextTokenInLineStart();return this.isUnparsedContextual(se,"function")}parseExportDefaultExpression(){let se=this.startNode();if(this.match(68))return this.next(),this.parseFunction(se,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(se,13);if(this.match(80))return this.parseClass(se,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(X.UnsupportedDefaultExport,this.state.startLoc);let O=this.parseMaybeAssignAllowIn();return this.semicolon(),O}parseExportDeclaration(se){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){let{type:se}=this.state;if(qr(se)){if(se===95&&!this.state.containsEsc||se===100)return!1;if((se===130||se===129)&&!this.state.containsEsc){let{type:we}=this.lookahead();if(qr(we)&&we!==98||we===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let O=this.nextTokenStart(),K=this.isUnparsedContextual(O,"from");if(this.input.charCodeAt(O)===44||qr(this.state.type)&&K)return!0;if(this.match(65)&&K){let we=this.input.charCodeAt(this.nextTokenStartSince(O+4));return we===34||we===39}return!1}parseExportFrom(se,O){this.eatContextual(98)?(se.source=this.parseImportSource(),this.checkExport(se),this.maybeParseImportAttributes(se),this.checkJSONModuleImport(se)):O&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){let{type:se}=this.state;return se===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):se===74||se===75||se===68||se===80||this.isLet()||this.isAsyncFunction()}checkExport(se,O,K,we){if(O){var gt;if(K){if(this.checkDuplicateExports(se,"default"),this.hasPlugin("exportDefaultFrom")){var sr;let Yr=se.declaration;Yr.type==="Identifier"&&Yr.name==="from"&&Yr.end-Yr.start===4&&!((sr=Yr.extra)!=null&&sr.parenthesized)&&this.raise(X.ExportDefaultFromAsIdentifier,Yr)}}else if((gt=se.specifiers)!=null&>.length)for(let Yr of se.specifiers){let{exported:Lr}=Yr,fi=Lr.type==="Identifier"?Lr.name:Lr.value;if(this.checkDuplicateExports(Yr,fi),!we&&Yr.local){let{local:$n}=Yr;$n.type!=="Identifier"?this.raise(X.ExportBindingIsString,Yr,{localName:$n.value,exportName:fi}):(this.checkReservedWord($n.name,$n.loc.start,!0,!1),this.scope.checkLocalExport($n))}}else if(se.declaration){let Yr=se.declaration;if(Yr.type==="FunctionDeclaration"||Yr.type==="ClassDeclaration"){let{id:Lr}=Yr;if(!Lr)throw new Error("Assertion failure");this.checkDuplicateExports(se,Lr.name)}else if(Yr.type==="VariableDeclaration")for(let Lr of Yr.declarations)this.checkDeclaration(Lr.id)}}}checkDeclaration(se){if(se.type==="Identifier")this.checkDuplicateExports(se,se.name);else if(se.type==="ObjectPattern")for(let O of se.properties)this.checkDeclaration(O);else if(se.type==="ArrayPattern")for(let O of se.elements)O&&this.checkDeclaration(O);else se.type==="ObjectProperty"?this.checkDeclaration(se.value):se.type==="RestElement"?this.checkDeclaration(se.argument):se.type==="AssignmentPattern"&&this.checkDeclaration(se.left)}checkDuplicateExports(se,O){this.exportedIdentifiers.has(O)&&(O==="default"?this.raise(X.DuplicateDefaultExport,se):this.raise(X.DuplicateExport,se,{exportName:O})),this.exportedIdentifiers.add(O)}parseExportSpecifiers(se){let O=[],K=!0;for(this.expect(5);!this.eat(8);){if(K)K=!1;else if(this.expect(12),this.eat(8))break;let we=this.isContextual(130),gt=this.match(134),sr=this.startNode();sr.local=this.parseModuleExportName(),O.push(this.parseExportSpecifier(sr,gt,se,we))}return O}parseExportSpecifier(se,O,K,we){return this.eatContextual(93)?se.exported=this.parseModuleExportName():O?se.exported=yn(se.local):se.exported||(se.exported=Zt(se.local)),this.finishNode(se,"ExportSpecifier")}parseModuleExportName(){if(this.match(134)){let se=this.parseStringLiteral(this.state.value),O=TC.exec(se.value);return O&&this.raise(X.ModuleExportNameHasLoneSurrogate,se,{surrogateCharCode:O[0].charCodeAt(0)}),se}return this.parseIdentifier(!0)}isJSONModuleImport(se){return se.assertions!=null?se.assertions.some(({key:O,value:K})=>K.value==="json"&&(O.type==="Identifier"?O.name==="type":O.value==="type")):!1}checkImportReflection(se){let{specifiers:O}=se,K=O.length===1?O[0].type:null;if(se.phase==="source")K!=="ImportDefaultSpecifier"&&this.raise(X.SourcePhaseImportRequiresDefault,O[0].loc.start);else if(se.phase==="defer")K!=="ImportNamespaceSpecifier"&&this.raise(X.DeferImportRequiresNamespace,O[0].loc.start);else if(se.module){var we;K!=="ImportDefaultSpecifier"&&this.raise(X.ImportReflectionNotBinding,O[0].loc.start),((we=se.assertions)==null?void 0:we.length)>0&&this.raise(X.ImportReflectionHasAssertion,O[0].loc.start)}}checkJSONModuleImport(se){if(this.isJSONModuleImport(se)&&se.type!=="ExportAllDeclaration"){let{specifiers:O}=se;if(O!=null){let K=O.find(we=>{let gt;if(we.type==="ExportSpecifier"?gt=we.local:we.type==="ImportSpecifier"&&(gt=we.imported),gt!==void 0)return gt.type==="Identifier"?gt.name!=="default":gt.value!=="default"});K!==void 0&&this.raise(X.ImportJSONBindingNotDefault,K.loc.start)}}}isPotentialImportPhase(se){return se?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(se,O,K,we){O||(K==="module"?(this.expectPlugin("importReflection",we),se.module=!0):this.hasPlugin("importReflection")&&(se.module=!1),K==="source"?(this.expectPlugin("sourcePhaseImports",we),se.phase="source"):K==="defer"?(this.expectPlugin("deferredImportEvaluation",we),se.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(se.phase=null))}parseMaybeImportPhase(se,O){if(!this.isPotentialImportPhase(O))return this.applyImportPhase(se,O,null),null;let K=this.parseIdentifier(!0),{type:we}=this.state;return(ke(we)?we!==98||this.lookaheadCharCode()===102:we!==12)?(this.resetPreviousIdentifierLeadingComments(K),this.applyImportPhase(se,O,K.name,K.loc.start),null):(this.applyImportPhase(se,O,null),K)}isPrecedingIdImportPhase(se){let{type:O}=this.state;return qr(O)?O!==98||this.lookaheadCharCode()===102:O!==12}parseImport(se){return this.match(134)?this.parseImportSourceAndAttributes(se):this.parseImportSpecifiersAndAfter(se,this.parseMaybeImportPhase(se,!1))}parseImportSpecifiersAndAfter(se,O){se.specifiers=[];let K=!this.maybeParseDefaultImportSpecifier(se,O)||this.eat(12),we=K&&this.maybeParseStarImportSpecifier(se);return K&&!we&&this.parseNamedImportSpecifiers(se),this.expectContextual(98),this.parseImportSourceAndAttributes(se)}parseImportSourceAndAttributes(se){var O;return(O=se.specifiers)!=null||(se.specifiers=[]),se.source=this.parseImportSource(),this.maybeParseImportAttributes(se),this.checkImportReflection(se),this.checkJSONModuleImport(se),this.semicolon(),this.finishNode(se,"ImportDeclaration")}parseImportSource(){return this.match(134)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(se,O,K){O.local=this.parseIdentifier(),se.specifiers.push(this.finishImportSpecifier(O,K))}finishImportSpecifier(se,O,K=8201){return this.checkLVal(se.local,{type:O},K),this.finishNode(se,O)}parseImportAttributes(){this.expect(5);let se=[],O=new Set;do{if(this.match(8))break;let K=this.startNode(),we=this.state.value;if(O.has(we)&&this.raise(X.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:we}),O.add(we),this.match(134)?K.key=this.parseStringLiteral(we):K.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return this.expect(8),se}parseModuleAttributes(){let se=[],O=new Set;do{let K=this.startNode();if(K.key=this.parseIdentifier(!0),K.key.name!=="type"&&this.raise(X.ModuleAttributeDifferentFromType,K.key),O.has(K.key.name)&&this.raise(X.ModuleAttributesWithDuplicateKeys,K.key,{key:K.key.name}),O.add(K.key.name),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return se}maybeParseImportAttributes(se){let O;var K=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?O=this.parseModuleAttributes():O=this.parseImportAttributes(),K=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(!this.hasPlugin("deprecatedImportAssert")&&!this.hasPlugin("importAssertions")&&this.raise(X.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin("importAssertions")||this.addExtra(se,"deprecatedAssertSyntax",!0),this.next(),O=this.parseImportAttributes()):O=[];!K&&this.hasPlugin("importAssertions")?se.assertions=O:se.attributes=O}maybeParseDefaultImportSpecifier(se,O){if(O){let K=this.startNodeAtNode(O);return K.local=O,se.specifiers.push(this.finishImportSpecifier(K,"ImportDefaultSpecifier")),!0}else if(ke(this.state.type))return this.parseImportSpecifierLocal(se,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(se){if(this.match(55)){let O=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(se,O,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(se){let O=!0;for(this.expect(5);!this.eat(8);){if(O)O=!1;else{if(this.eat(14))throw this.raise(X.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}let K=this.startNode(),we=this.match(134),gt=this.isContextual(130);K.imported=this.parseModuleExportName();let sr=this.parseImportSpecifier(K,we,se.importKind==="type"||se.importKind==="typeof",gt,void 0);se.specifiers.push(sr)}}parseImportSpecifier(se,O,K,we,gt){if(this.eatContextual(93))se.local=this.parseIdentifier();else{let{imported:sr}=se;if(O)throw this.raise(X.ImportBindingIsString,se,{importName:sr.value});this.checkReservedWord(sr.name,se.loc.start,!0,!0),se.local||(se.local=Zt(sr))}return this.finishImportSpecifier(se,"ImportSpecifier",gt)}isThisParam(se){return se.type==="Identifier"&&se.name==="this"}},fb=class extends Mm{constructor(se,O,K){se=ne(se),super(se,O),this.options=se,this.initializeScopes(),this.plugins=K,this.filename=se.sourceFilename,this.startIndex=se.startIndex;let we=0;se.allowAwaitOutsideFunction&&(we|=1),se.allowReturnOutsideFunction&&(we|=2),se.allowImportExportEverywhere&&(we|=8),se.allowSuperOutsideMethod&&(we|=16),se.allowUndeclaredExports&&(we|=32),se.allowNewTargetOutsideFunction&&(we|=4),se.ranges&&(we|=64),se.tokens&&(we|=128),se.createImportExpressions&&(we|=256),se.createParenthesizedExpressions&&(we|=512),se.errorRecovery&&(we|=1024),se.attachComment&&(we|=2048),se.annexB&&(we|=4096),this.optionFlags=we}getScopeHandler(){return Xu}parse(){this.enterInitialScopes();let se=this.startNode(),O=this.startNode();return this.nextToken(),se.errors=null,this.parseTopLevel(se,O),se.errors=this.state.errors,se.comments.length=this.state.commentsLen,se}};function pe(se,O){var K;if(((K=O)==null?void 0:K.sourceType)==="unambiguous"){O=Object.assign({},O);try{O.sourceType="module";let we=_I(O,se),gt=we.parse();if(we.sawUnambiguousESM)return gt;if(we.ambiguousScriptDifferentAst)try{return O.sourceType="script",_I(O,se).parse()}catch{}else gt.program.sourceType="script";return gt}catch(we){try{return O.sourceType="script",_I(O,se).parse()}catch{}throw we}}else return _I(O,se).parse()}function lm(se,O){let K=_I(O,se);return K.options.strictMode&&(K.state.strict=!0),K.getExpression()}function Kf(se){let O={};for(let K of Object.keys(se))O[K]=zr(se[K]);return O}var CI=Kf(Ar);function _I(se,O){let K=fb,we=new Map;if(se!=null&&se.plugins){for(let gt of se.plugins){let sr,Yr;typeof gt=="string"?sr=gt:[sr,Yr]=gt,we.has(sr)||we.set(sr,Yr||{})}Hp(we),K=iE(we)}return new K(se,O,we)}var H2=new Map;function iE(se){let O=[];for(let gt of nE)se.has(gt)&&O.push(gt);let K=O.join("|"),we=H2.get(K);if(!we){we=fb;for(let gt of O)we=uC[gt](we);H2.set(K,we)}return we}e.parse=pe,e.parseExpression=lm,e.tokTypes=CI}),ayi={};t5a(ayi,{parsers:()=>GRe});var J0i=iyi(syi(),1);function Oyt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{let Lr=!this.isSimpleParamList(se.params);Yr&&Lr&&this.raise(X.IllegalLanguageModeDirective,(se.kind==="method"||se.kind==="constructor")&&se.key?se.key.loc.end:se);let fi=!gt&&this.state.strict;this.checkParams(se,!this.state.strict&&!O&&!K&&!Lr,O,fi),this.state.strict&&se.id&&this.checkIdentifier(se.id,65,fi)}),this.prodParam.exit(),this.state.labels=sr}this.expressionScope.exit()}isSimpleParameter(se){return se.type==="Identifier"}isSimpleParamList(se){for(let O=0,K=se.length;O10||!Sg(se))){if(K&&ac(se)){this.raise(X.UnexpectedKeyword,O,{keyword:se});return}if((this.state.strict?we?Xa:Ei:li)(se,this.inModule)){this.raise(X.UnexpectedReservedWord,O,{reservedWord:se});return}else if(se==="yield"){if(this.prodParam.hasYield){this.raise(X.YieldBindingIdentifier,O);return}}else if(se==="await"){if(this.prodParam.hasAwait){this.raise(X.AwaitBindingIdentifier,O);return}if(this.scope.inStaticBlock){this.raise(X.AwaitBindingIdentifierInStaticBlock,O);return}this.expressionScope.recordAsyncArrowParametersError(O)}else if(se==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(X.ArgumentsInClass,O);return}}}recordAwaitIfAllowed(){let se=this.prodParam.hasAwait||this.optionFlags&1&&!this.scope.inFunction;return se&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),se}parseAwait(se){let O=this.startNodeAt(se);return this.expressionScope.recordParameterInitializerError(X.AwaitExpressionFormalParameter,O),this.eat(55)&&this.raise(X.ObsoleteAwaitStar,O),!this.scope.inFunction&&!(this.optionFlags&1)&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(O.argument=this.parseMaybeUnary(null,!0)),this.finishNode(O,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:se}=this.state;return se===53||se===10||se===0||Ft(se)||se===102&&!this.state.containsEsc||se===138||se===56||this.hasPlugin("v8intrinsic")&&se===54}parseYield(){let se=this.startNode();this.expressionScope.recordParameterInitializerError(X.YieldInParameter,se),this.next();let O=!1,K=null;if(!this.hasPrecedingLineBreak())switch(O=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!O)break;default:K=this.parseMaybeAssign()}return se.delegate=O,se.argument=K,this.finishNode(se,"YieldExpression")}parseImportCall(se){if(this.next(),se.source=this.parseMaybeAssignAllowIn(),se.options=null,this.eat(12)&&!this.match(11)&&(se.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&!this.match(11))){do this.parseMaybeAssignAllowIn();while(this.eat(12)&&!this.match(11));this.raise(X.ImportCallArity,se)}return this.expect(11),this.finishNode(se,"ImportExpression")}checkPipelineAtInfixOperator(se,O){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&se.type==="SequenceExpression"&&this.raise(X.PipelineHeadSequenceExpression,O)}parseSmartPipelineBodyInStyle(se,O){if(this.isSimpleReference(se)){let K=this.startNodeAt(O);return K.callee=se,this.finishNode(K,"PipelineBareFunction")}else{let K=this.startNodeAt(O);return this.checkSmartPipeTopicBodyEarlyErrors(O),K.expression=se,this.finishNode(K,"PipelineTopicExpression")}}isSimpleReference(se){switch(se.type){case"MemberExpression":return!se.computed&&this.isSimpleReference(se.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(se){if(this.match(19))throw this.raise(X.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipelineTopicUnused,se)}withTopicBindingContext(se){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}withSmartMixTopicForbiddingContext(se){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}else return se()}withSoloAwaitPermittingContext(se){let O=this.state.soloAwait;this.state.soloAwait=!0;try{return se()}finally{this.state.soloAwait=O}}allowInAnd(se){let O=this.prodParam.currentFlags();if(8&~O){this.prodParam.enter(O|8);try{return se()}finally{this.prodParam.exit()}}return se()}disallowInAnd(se){let O=this.prodParam.currentFlags();if(8&O){this.prodParam.enter(O&-9);try{return se()}finally{this.prodParam.exit()}}return se()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(se){let O=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let K=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let we=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),O,se);return this.state.inFSharpPipelineDirectBody=K,we}parseModuleExpression(){this.expectPlugin("moduleBlocks");let se=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);let O=this.startNodeAt(this.state.endLoc);this.next();let K=this.initializeScopes(!0);this.enterInitialScopes();try{se.body=this.parseProgram(O,8,"module")}finally{K()}return this.finishNode(se,"ModuleExpression")}parsePropertyNamePrefixOperator(se){}},q0={kind:1},XE={kind:2},TC=/[\uD800-\uDFFF]/u,t_=/in(?:stanceof)?/y;function cp(se,O,K){for(let we=0;we0)for(let[gt,sr]of Array.from(this.scope.undefinedExports))this.raise(X.ModuleExportUndefined,sr,{localName:gt});this.addExtra(se,"topLevelAwait",this.state.hasTopLevelAwait)}let we;return O===140?we=this.finishNode(se,"Program"):we=this.finishNodeAt(se,"Program",a(this.state.startLoc,-1)),we}stmtToDirective(se){let O=se;O.type="Directive",O.value=O.expression,delete O.expression;let K=O.value,we=K.value,gt=this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end)),sr=K.value=gt.slice(1,-1);return this.addExtra(K,"raw",gt),this.addExtra(K,"rawValue",sr),this.addExtra(K,"expressionValue",we),K.type="DirectiveLiteral",O}parseInterpreterDirective(){if(!this.match(28))return null;let se=this.startNode();return se.value=this.state.value,this.next(),this.finishNode(se,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(se,O){if(gc(se)){if(t_.lastIndex=O,t_.test(this.input)){let K=this.codePointAtPos(t_.lastIndex);if(!Cg(K)&&K!==92)return!1}return!0}else return se===92}chStartsBindingPattern(se){return se===91||se===123}hasFollowingBindingAtom(){let se=this.nextTokenStart(),O=this.codePointAtPos(se);return this.chStartsBindingPattern(O)||this.chStartsBindingIdentifier(O,se)}hasInLineFollowingBindingIdentifierOrBrace(){let se=this.nextTokenInLineStart(),O=this.codePointAtPos(se);return O===123||this.chStartsBindingIdentifier(O,se)}startsUsingForOf(){let{type:se,containsEsc:O}=this.lookahead();if(se===102&&!O)return!1;if(qr(se)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let se=this.nextTokenInLineStart();if(this.isUnparsedContextual(se,"using")){se=this.nextTokenInLineStartSince(se+5);let O=this.codePointAtPos(se);if(this.chStartsBindingIdentifier(O,se))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(se=!1){let O=0;return this.options.annexB&&!this.state.strict&&(O|=4,se&&(O|=8)),this.parseStatementLike(O)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(se){let O=null;return this.match(26)&&(O=this.parseDecorators(!0)),this.parseStatementContent(se,O)}parseStatementContent(se,O){let K=this.state.type,we=this.startNode(),gt=!!(se&2),sr=!!(se&4),Yr=se&1;switch(K){case 60:return this.parseBreakContinueStatement(we,!0);case 63:return this.parseBreakContinueStatement(we,!1);case 64:return this.parseDebuggerStatement(we);case 90:return this.parseDoWhileStatement(we);case 91:return this.parseForStatement(we);case 68:if(this.lookaheadCharCode()===46)break;return sr||this.raise(this.state.strict?X.StrictFunction:this.options.annexB?X.SloppyFunctionAnnexB:X.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(we,!1,!gt&&sr);case 80:return gt||this.unexpected(),this.parseClass(this.maybeTakeDecorators(O,we),!0);case 69:return this.parseIfStatement(we);case 70:return this.parseReturnStatement(we);case 71:return this.parseSwitchStatement(we);case 72:return this.parseThrowStatement(we);case 73:return this.parseTryStatement(we);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?gt||this.raise(X.UnexpectedLexicalDeclaration,we):this.raise(X.AwaitUsingNotInAsyncContext,we),this.next(),this.parseVarStatement(we,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(X.UnexpectedUsingDeclaration,this.state.startLoc):gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(we,"using");case 100:{if(this.state.containsEsc)break;let $n=this.nextTokenStart(),ra=this.codePointAtPos($n);if(ra!==91&&(!gt&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(ra,$n)&&ra!==123))break}case 75:gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{let $n=this.state.value;return this.parseVarStatement(we,$n)}case 92:return this.parseWhileStatement(we);case 76:return this.parseWithStatement(we);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(we);case 83:{let $n=this.lookaheadCharCode();if($n===40||$n===46)break}case 82:{!(this.optionFlags&8)&&!Yr&&this.raise(X.UnexpectedImportExport,this.state.startLoc),this.next();let $n;return K===83?($n=this.parseImport(we),$n.type==="ImportDeclaration"&&(!$n.importKind||$n.importKind==="value")&&(this.sawUnambiguousESM=!0)):($n=this.parseExport(we,O),($n.type==="ExportNamedDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportAllDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed($n),$n}default:if(this.isAsyncFunction())return gt||this.raise(X.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(we,!0,!gt&&sr)}let Lr=this.state.value,fi=this.parseExpression();return qr(K)&&fi.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(we,Lr,fi,se):this.parseExpressionStatement(we,fi,O)}assertModuleNodeAllowed(se){!(this.optionFlags&8)&&!this.inModule&&this.raise(X.ImportOutsideModule,se)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(se,O,K){if(se){var we;(we=O.decorators)!=null&&we.length?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(X.DecoratorsBeforeAfterExport,O.decorators[0]),O.decorators.unshift(...se)):O.decorators=se,this.resetStartLocationFromNode(O,se[0]),K&&this.resetStartLocationFromNode(K,O)}return O}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(se){let O=[];do O.push(this.parseDecorator());while(this.match(26));if(this.match(82))se||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(X.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(X.UnexpectedLeadingDecorator,this.state.startLoc);return O}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);let se=this.startNode();if(this.next(),this.hasPlugin("decorators")){let O=this.state.startLoc,K;if(this.match(10)){let we=this.state.startLoc;this.next(),K=this.parseExpression(),this.expect(11),K=this.wrapParenthesis(we,K);let gt=this.state.startLoc;se.expression=this.parseMaybeDecoratorArguments(K,we),this.getPluginOption("decorators","allowCallParenthesized")===!1&&se.expression!==K&&this.raise(X.DecoratorArgumentsOutsideParentheses,gt)}else{for(K=this.parseIdentifier(!1);this.eat(16);){let we=this.startNodeAt(O);we.object=K,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),we.property=this.parsePrivateName()):we.property=this.parseIdentifier(!0),we.computed=!1,K=this.finishNode(we,"MemberExpression")}se.expression=this.parseMaybeDecoratorArguments(K,O)}}else se.expression=this.parseExprSubscripts();return this.finishNode(se,"Decorator")}parseMaybeDecoratorArguments(se,O){if(this.eat(10)){let K=this.startNodeAt(O);return K.callee=se,K.arguments=this.parseCallExpressionArguments(11),this.toReferencedList(K.arguments),this.finishNode(K,"CallExpression")}return se}parseBreakContinueStatement(se,O){return this.next(),this.isLineTerminator()?se.label=null:(se.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(se,O),this.finishNode(se,O?"BreakStatement":"ContinueStatement")}verifyBreakContinue(se,O){let K;for(K=0;Kthis.parseStatement()),this.state.labels.pop(),this.expect(92),se.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(se,"DoWhileStatement")}parseForStatement(se){this.next(),this.state.labels.push(q0);let O=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(O=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return O!==null&&this.unexpected(O),this.parseFor(se,null);let K=this.isContextual(100);{let Lr=this.isContextual(96)&&this.startsAwaitUsing(),fi=Lr||this.isContextual(107)&&this.startsUsingForOf(),$n=K&&this.hasFollowingBindingAtom()||fi;if(this.match(74)||this.match(75)||$n){let ra=this.startNode(),kc;Lr?(kc="await using",this.recordAwaitIfAllowed()||this.raise(X.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):kc=this.state.value,this.next(),this.parseVar(ra,!0,kc);let Nl=this.finishNode(ra,"VariableDeclaration"),ca=this.match(58);return ca&&fi&&this.raise(X.ForInUsing,Nl),(ca||this.isContextual(102))&&Nl.declarations.length===1?this.parseForIn(se,Nl,O):(O!==null&&this.unexpected(O),this.parseFor(se,Nl))}}let we=this.isContextual(95),gt=new yg,sr=this.parseExpression(!0,gt),Yr=this.isContextual(102);if(Yr&&(K&&this.raise(X.ForOfLet,sr),O===null&&we&&sr.type==="Identifier"&&this.raise(X.ForOfAsync,sr)),Yr||this.match(58)){this.checkDestructuringPrivate(gt),this.toAssignable(sr,!0);let Lr=Yr?"ForOfStatement":"ForInStatement";return this.checkLVal(sr,{type:Lr}),this.parseForIn(se,sr,O)}else this.checkExpressionErrors(gt,!0);return O!==null&&this.unexpected(O),this.parseFor(se,sr)}parseFunctionStatement(se,O,K){return this.next(),this.parseFunction(se,1|(K?2:0)|(O?8:0))}parseIfStatement(se){return this.next(),se.test=this.parseHeaderExpression(),se.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),se.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(se,"IfStatement")}parseReturnStatement(se){return!this.prodParam.hasReturn&&!(this.optionFlags&2)&&this.raise(X.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?se.argument=null:(se.argument=this.parseExpression(),this.semicolon()),this.finishNode(se,"ReturnStatement")}parseSwitchStatement(se){this.next(),se.discriminant=this.parseHeaderExpression();let O=se.cases=[];this.expect(5),this.state.labels.push(XE),this.scope.enter(0);let K;for(let we;!this.match(8);)if(this.match(61)||this.match(65)){let gt=this.match(61);K&&this.finishNode(K,"SwitchCase"),O.push(K=this.startNode()),K.consequent=[],this.next(),gt?K.test=this.parseExpression():(we&&this.raise(X.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),we=!0,K.test=null),this.expect(14)}else K?K.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),K&&this.finishNode(K,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(se,"SwitchStatement")}parseThrowStatement(se){return this.next(),this.hasPrecedingLineBreak()&&this.raise(X.NewlineAfterThrow,this.state.lastTokEndLoc),se.argument=this.parseExpression(),this.semicolon(),this.finishNode(se,"ThrowStatement")}parseCatchClauseParam(){let se=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&se.type==="Identifier"?8:0),this.checkLVal(se,{type:"CatchClause"},9),se}parseTryStatement(se){if(this.next(),se.block=this.parseBlock(),se.handler=null,this.match(62)){let O=this.startNode();this.next(),this.match(10)?(this.expect(10),O.param=this.parseCatchClauseParam(),this.expect(11)):(O.param=null,this.scope.enter(0)),O.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),se.handler=this.finishNode(O,"CatchClause")}return se.finalizer=this.eat(67)?this.parseBlock():null,!se.handler&&!se.finalizer&&this.raise(X.NoCatchOrFinally,se),this.finishNode(se,"TryStatement")}parseVarStatement(se,O,K=!1){return this.next(),this.parseVar(se,!1,O,K),this.semicolon(),this.finishNode(se,"VariableDeclaration")}parseWhileStatement(se){return this.next(),se.test=this.parseHeaderExpression(),this.state.labels.push(q0),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(se,"WhileStatement")}parseWithStatement(se){return this.state.strict&&this.raise(X.StrictWith,this.state.startLoc),this.next(),se.object=this.parseHeaderExpression(),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(se,"WithStatement")}parseEmptyStatement(se){return this.next(),this.finishNode(se,"EmptyStatement")}parseLabeledStatement(se,O,K,we){for(let sr of this.state.labels)sr.name===O&&this.raise(X.LabelRedeclaration,K,{labelName:O});let gt=Vr(this.state.type)?1:this.match(71)?2:null;for(let sr=this.state.labels.length-1;sr>=0;sr--){let Yr=this.state.labels[sr];if(Yr.statementStart===se.start)Yr.statementStart=this.sourceToOffsetPos(this.state.start),Yr.kind=gt;else break}return this.state.labels.push({name:O,kind:gt,statementStart:this.sourceToOffsetPos(this.state.start)}),se.body=we&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),se.label=K,this.finishNode(se,"LabeledStatement")}parseExpressionStatement(se,O,K){return se.expression=O,this.semicolon(),this.finishNode(se,"ExpressionStatement")}parseBlock(se=!1,O=!0,K){let we=this.startNode();return se&&this.state.strictErrors.clear(),this.expect(5),O&&this.scope.enter(0),this.parseBlockBody(we,se,!1,8,K),O&&this.scope.exit(),this.finishNode(we,"BlockStatement")}isValidDirective(se){return se.type==="ExpressionStatement"&&se.expression.type==="StringLiteral"&&!se.expression.extra.parenthesized}parseBlockBody(se,O,K,we,gt){let sr=se.body=[],Yr=se.directives=[];this.parseBlockOrModuleBlockBody(sr,O?Yr:void 0,K,we,gt)}parseBlockOrModuleBlockBody(se,O,K,we,gt){let sr=this.state.strict,Yr=!1,Lr=!1;for(;!this.match(we);){let fi=K?this.parseModuleItem():this.parseStatementListItem();if(O&&!Lr){if(this.isValidDirective(fi)){let $n=this.stmtToDirective(fi);O.push($n),!Yr&&$n.value.value==="use strict"&&(Yr=!0,this.setStrict(!0));continue}Lr=!0,this.state.strictErrors.clear()}se.push(fi)}gt?.call(this,Yr),sr||this.setStrict(!1),this.next()}parseFor(se,O){return se.init=O,this.semicolon(!1),se.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),se.update=this.match(11)?null:this.parseExpression(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,"ForStatement")}parseForIn(se,O,K){let we=this.match(58);return this.next(),we?K!==null&&this.unexpected(K):se.await=K!==null,O.type==="VariableDeclaration"&&O.declarations[0].init!=null&&(!we||!this.options.annexB||this.state.strict||O.kind!=="var"||O.declarations[0].id.type!=="Identifier")&&this.raise(X.ForInOfLoopInitializer,O,{type:we?"ForInStatement":"ForOfStatement"}),O.type==="AssignmentPattern"&&this.raise(X.InvalidLhs,O,{ancestor:{type:"ForStatement"}}),se.left=O,se.right=we?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,we?"ForInStatement":"ForOfStatement")}parseVar(se,O,K,we=!1){let gt=se.declarations=[];for(se.kind=K;;){let sr=this.startNode();if(this.parseVarId(sr,K),sr.init=this.eat(29)?O?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,sr.init===null&&!we&&(sr.id.type!=="Identifier"&&!(O&&(this.match(58)||this.isContextual(102)))?this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(K==="const"||K==="using"||K==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:K})),gt.push(this.finishNode(sr,"VariableDeclarator")),!this.eat(12))break}return se}parseVarId(se,O){let K=this.parseBindingAtom();(O==="using"||O==="await using")&&(K.type==="ArrayPattern"||K.type==="ObjectPattern")&&this.raise(X.UsingDeclarationHasBindingPattern,K.loc.start),this.checkLVal(K,{type:"VariableDeclarator"},O==="var"?5:8201),se.id=K}parseAsyncFunctionExpression(se){return this.parseFunction(se,8)}parseFunction(se,O=0){let K=O&2,we=!!(O&1),gt=we&&!(O&4),sr=!!(O&8);this.initFunction(se,sr),this.match(55)&&(K&&this.raise(X.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),se.generator=!0),we&&(se.id=this.parseFunctionId(gt));let Yr=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(ZA(sr,se.generator)),we||(se.id=this.parseFunctionId()),this.parseFunctionParams(se,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(se,we?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),we&&!K&&this.registerFunctionStatementId(se),this.state.maybeInArrowParameters=Yr,se}parseFunctionId(se){return se||qr(this.state.type)?this.parseIdentifier():null}parseFunctionParams(se,O){this.expect(10),this.expressionScope.enter(rc()),se.params=this.parseBindingList(11,41,2|(O?4:0)),this.expressionScope.exit()}registerFunctionStatementId(se){se.id&&this.scope.declareName(se.id.name,!this.options.annexB||this.state.strict||se.generator||se.async?this.scope.treatFunctionsAsVar?5:8201:17,se.id.loc.start)}parseClass(se,O,K){this.next();let we=this.state.strict;return this.state.strict=!0,this.parseClassId(se,O,K),this.parseClassSuper(se),se.body=this.parseClassBody(!!se.superClass,we),this.finishNode(se,O?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(se){return se.type==="Identifier"&&se.name==="constructor"||se.type==="StringLiteral"&&se.value==="constructor"}isNonstaticConstructor(se){return!se.computed&&!se.static&&this.nameIsConstructor(se.key)}parseClassBody(se,O){this.classScope.enter();let K={hadConstructor:!1,hadSuperClass:se},we=[],gt=this.startNode();if(gt.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(we.length>0)throw this.raise(X.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){we.push(this.parseDecorator());continue}let sr=this.startNode();we.length&&(sr.decorators=we,this.resetStartLocationFromNode(sr,we[0]),we=[]),this.parseClassMember(gt,sr,K),sr.kind==="constructor"&&sr.decorators&&sr.decorators.length>0&&this.raise(X.DecoratorConstructor,sr)}}),this.state.strict=O,this.next(),we.length)throw this.raise(X.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(gt,"ClassBody")}parseClassMemberFromModifier(se,O){let K=this.parseIdentifier(!0);if(this.isClassMethod()){let we=O;return we.kind="method",we.computed=!1,we.key=K,we.static=!1,this.pushClassMethod(se,we,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let we=O;return we.computed=!1,we.key=K,we.static=!1,se.body.push(this.parseClassProperty(we)),!0}return this.resetPreviousNodeTrailingComments(K),!1}parseClassMember(se,O,K){let we=this.isContextual(106);if(we){if(this.parseClassMemberFromModifier(se,O))return;if(this.eat(5)){this.parseClassStaticBlock(se,O);return}}this.parseClassMemberWithIsStatic(se,O,K,we)}parseClassMemberWithIsStatic(se,O,K,we){let gt=O,sr=O,Yr=O,Lr=O,fi=O,$n=gt,ra=gt;if(O.static=we,this.parsePropertyNamePrefixOperator(O),this.eat(55)){$n.kind="method";let SA=this.match(139);if(this.parseClassElementName($n),SA){this.pushClassPrivateMethod(se,sr,!0,!1);return}this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsGenerator,gt.key),this.pushClassMethod(se,gt,!0,!1,!1,!1);return}let kc=!this.state.containsEsc&&qr(this.state.type),Nl=this.parseClassElementName(O),ca=kc?Nl.name:null,Bl=this.isPrivateName(Nl),$g=this.state.startLoc;if(this.parsePostMemberNameModifiers(ra),this.isClassMethod()){if($n.kind="method",Bl){this.pushClassPrivateMethod(se,sr,!1,!1);return}let SA=this.isNonstaticConstructor(gt),lI=!1;SA&&(gt.kind="constructor",K.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(X.DuplicateConstructor,Nl),SA&&this.hasPlugin("typescript")&&O.override&&this.raise(X.OverrideOnConstructor,Nl),K.hadConstructor=!0,lI=K.hadSuperClass),this.pushClassMethod(se,gt,!1,!1,SA,lI)}else if(this.isClassProperty())Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr);else if(ca==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(Nl);let SA=this.eat(55);ra.optional&&this.unexpected($g),$n.kind="method";let lI=this.match(139);this.parseClassElementName($n),this.parsePostMemberNameModifiers(ra),lI?this.pushClassPrivateMethod(se,sr,SA,!0):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAsync,gt.key),this.pushClassMethod(se,gt,SA,!0,!1,!1))}else if((ca==="get"||ca==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(Nl),$n.kind=ca;let SA=this.match(139);this.parseClassElementName(gt),SA?this.pushClassPrivateMethod(se,sr,!1,!1):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAccessor,gt.key),this.pushClassMethod(se,gt,!1,!1,!1,!1)),this.checkGetterSetterParams(gt)}else if(ca==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(Nl);let SA=this.match(139);this.parseClassElementName(Yr),this.pushClassAccessorProperty(se,fi,SA)}else this.isLineTerminator()?Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr):this.unexpected()}parseClassElementName(se){let{type:O,value:K}=this.state;if((O===132||O===134)&&se.static&&K==="prototype"&&this.raise(X.StaticPrototype,this.state.startLoc),O===139){K==="constructor"&&this.raise(X.ConstructorClassPrivateField,this.state.startLoc);let we=this.parsePrivateName();return se.key=we,we}return this.parsePropertyName(se),se.key}parseClassStaticBlock(se,O){var K;this.scope.enter(208);let we=this.state.labels;this.state.labels=[],this.prodParam.enter(0);let gt=O.body=[];this.parseBlockOrModuleBlockBody(gt,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=we,se.body.push(this.finishNode(O,"StaticBlock")),(K=O.decorators)!=null&&K.length&&this.raise(X.DecoratorStaticBlock,O)}pushClassProperty(se,O){!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key),se.body.push(this.parseClassProperty(O))}pushClassPrivateProperty(se,O){let K=this.parseClassPrivateProperty(O);se.body.push(K),this.classScope.declarePrivateName(this.getPrivateNameSV(K.key),0,K.key.loc.start)}pushClassAccessorProperty(se,O,K){!K&&!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key);let we=this.parseClassAccessorProperty(O);se.body.push(we),K&&this.classScope.declarePrivateName(this.getPrivateNameSV(we.key),0,we.key.loc.start)}pushClassMethod(se,O,K,we,gt,sr){se.body.push(this.parseMethod(O,K,we,gt,sr,"ClassMethod",!0))}pushClassPrivateMethod(se,O,K,we){let gt=this.parseMethod(O,K,we,!1,!1,"ClassPrivateMethod",!0);se.body.push(gt);let sr=gt.kind==="get"?gt.static?6:2:gt.kind==="set"?gt.static?5:1:0;this.declareClassPrivateMethodInScope(gt,sr)}declareClassPrivateMethodInScope(se,O){this.classScope.declarePrivateName(this.getPrivateNameSV(se.key),O,se.key.loc.start)}parsePostMemberNameModifiers(se){}parseClassPrivateProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassPrivateProperty")}parseClassProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassProperty")}parseClassAccessorProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassAccessorProperty")}parseInitializer(se){this.scope.enter(80),this.expressionScope.enter(il()),this.prodParam.enter(0),se.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(se,O,K,we=8331){if(qr(this.state.type))se.id=this.parseIdentifier(),O&&this.declareNameFromIdentifier(se.id,we);else if(K||!O)se.id=null;else throw this.raise(X.MissingClassName,this.state.startLoc)}parseClassSuper(se){se.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(se,O){let K=this.parseMaybeImportPhase(se,!0),we=this.maybeParseExportDefaultSpecifier(se,K),gt=!we||this.eat(12),sr=gt&&this.eatExportStar(se),Yr=sr&&this.maybeParseExportNamespaceSpecifier(se),Lr=gt&&(!Yr||this.eat(12)),fi=we||sr;if(sr&&!Yr){if(we&&this.unexpected(),O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.parseExportFrom(se,!0),this.finishNode(se,"ExportAllDeclaration")}let $n=this.maybeParseExportNamedSpecifiers(se);we&>&&!sr&&!$n&&this.unexpected(null,5),Yr&&Lr&&this.unexpected(null,98);let ra;if(fi||$n){if(ra=!1,O)throw this.raise(X.UnsupportedDecoratorExport,se);this.parseExportFrom(se,fi)}else ra=this.maybeParseExportDeclaration(se);if(fi||$n||ra){var kc;let Nl=se;if(this.checkExport(Nl,!0,!1,!!Nl.source),((kc=Nl.declaration)==null?void 0:kc.type)==="ClassDeclaration")this.maybeTakeDecorators(O,Nl.declaration,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.finishNode(Nl,"ExportNamedDeclaration")}if(this.eat(65)){let Nl=se,ca=this.parseExportDefaultExpression();if(Nl.declaration=ca,ca.type==="ClassDeclaration")this.maybeTakeDecorators(O,ca,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.checkExport(Nl,!0,!0),this.finishNode(Nl,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(se){return this.eat(55)}maybeParseExportDefaultSpecifier(se,O){if(O||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",O?.loc.start);let K=O||this.parseIdentifier(!0),we=this.startNodeAtNode(K);return we.exported=K,se.specifiers=[this.finishNode(we,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(se){if(this.isContextual(93)){var O,K;(K=(O=se).specifiers)!=null||(O.specifiers=[]);let we=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),we.exported=this.parseModuleExportName(),se.specifiers.push(this.finishNode(we,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(se){if(this.match(5)){let O=se;O.specifiers||(O.specifiers=[]);let K=O.exportKind==="type";return O.specifiers.push(...this.parseExportSpecifiers(K)),O.source=null,O.declaration=null,this.hasPlugin("importAssertions")&&(O.assertions=[]),!0}return!1}maybeParseExportDeclaration(se){return this.shouldParseExportDeclaration()?(se.specifiers=[],se.source=null,this.hasPlugin("importAssertions")&&(se.assertions=[]),se.declaration=this.parseExportDeclaration(se),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let se=this.nextTokenInLineStart();return this.isUnparsedContextual(se,"function")}parseExportDefaultExpression(){let se=this.startNode();if(this.match(68))return this.next(),this.parseFunction(se,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(se,13);if(this.match(80))return this.parseClass(se,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(X.UnsupportedDefaultExport,this.state.startLoc);let O=this.parseMaybeAssignAllowIn();return this.semicolon(),O}parseExportDeclaration(se){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){let{type:se}=this.state;if(qr(se)){if(se===95&&!this.state.containsEsc||se===100)return!1;if((se===130||se===129)&&!this.state.containsEsc){let{type:we}=this.lookahead();if(qr(we)&&we!==98||we===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let O=this.nextTokenStart(),K=this.isUnparsedContextual(O,"from");if(this.input.charCodeAt(O)===44||qr(this.state.type)&&K)return!0;if(this.match(65)&&K){let we=this.input.charCodeAt(this.nextTokenStartSince(O+4));return we===34||we===39}return!1}parseExportFrom(se,O){this.eatContextual(98)?(se.source=this.parseImportSource(),this.checkExport(se),this.maybeParseImportAttributes(se),this.checkJSONModuleImport(se)):O&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){let{type:se}=this.state;return se===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):se===74||se===75||se===68||se===80||this.isLet()||this.isAsyncFunction()}checkExport(se,O,K,we){if(O){var gt;if(K){if(this.checkDuplicateExports(se,"default"),this.hasPlugin("exportDefaultFrom")){var sr;let Yr=se.declaration;Yr.type==="Identifier"&&Yr.name==="from"&&Yr.end-Yr.start===4&&!((sr=Yr.extra)!=null&&sr.parenthesized)&&this.raise(X.ExportDefaultFromAsIdentifier,Yr)}}else if((gt=se.specifiers)!=null&>.length)for(let Yr of se.specifiers){let{exported:Lr}=Yr,fi=Lr.type==="Identifier"?Lr.name:Lr.value;if(this.checkDuplicateExports(Yr,fi),!we&&Yr.local){let{local:$n}=Yr;$n.type!=="Identifier"?this.raise(X.ExportBindingIsString,Yr,{localName:$n.value,exportName:fi}):(this.checkReservedWord($n.name,$n.loc.start,!0,!1),this.scope.checkLocalExport($n))}}else if(se.declaration){let Yr=se.declaration;if(Yr.type==="FunctionDeclaration"||Yr.type==="ClassDeclaration"){let{id:Lr}=Yr;if(!Lr)throw new Error("Assertion failure");this.checkDuplicateExports(se,Lr.name)}else if(Yr.type==="VariableDeclaration")for(let Lr of Yr.declarations)this.checkDeclaration(Lr.id)}}}checkDeclaration(se){if(se.type==="Identifier")this.checkDuplicateExports(se,se.name);else if(se.type==="ObjectPattern")for(let O of se.properties)this.checkDeclaration(O);else if(se.type==="ArrayPattern")for(let O of se.elements)O&&this.checkDeclaration(O);else se.type==="ObjectProperty"?this.checkDeclaration(se.value):se.type==="RestElement"?this.checkDeclaration(se.argument):se.type==="AssignmentPattern"&&this.checkDeclaration(se.left)}checkDuplicateExports(se,O){this.exportedIdentifiers.has(O)&&(O==="default"?this.raise(X.DuplicateDefaultExport,se):this.raise(X.DuplicateExport,se,{exportName:O})),this.exportedIdentifiers.add(O)}parseExportSpecifiers(se){let O=[],K=!0;for(this.expect(5);!this.eat(8);){if(K)K=!1;else if(this.expect(12),this.eat(8))break;let we=this.isContextual(130),gt=this.match(134),sr=this.startNode();sr.local=this.parseModuleExportName(),O.push(this.parseExportSpecifier(sr,gt,se,we))}return O}parseExportSpecifier(se,O,K,we){return this.eatContextual(93)?se.exported=this.parseModuleExportName():O?se.exported=yn(se.local):se.exported||(se.exported=Zt(se.local)),this.finishNode(se,"ExportSpecifier")}parseModuleExportName(){if(this.match(134)){let se=this.parseStringLiteral(this.state.value),O=TC.exec(se.value);return O&&this.raise(X.ModuleExportNameHasLoneSurrogate,se,{surrogateCharCode:O[0].charCodeAt(0)}),se}return this.parseIdentifier(!0)}isJSONModuleImport(se){return se.assertions!=null?se.assertions.some(({key:O,value:K})=>K.value==="json"&&(O.type==="Identifier"?O.name==="type":O.value==="type")):!1}checkImportReflection(se){let{specifiers:O}=se,K=O.length===1?O[0].type:null;if(se.phase==="source")K!=="ImportDefaultSpecifier"&&this.raise(X.SourcePhaseImportRequiresDefault,O[0].loc.start);else if(se.phase==="defer")K!=="ImportNamespaceSpecifier"&&this.raise(X.DeferImportRequiresNamespace,O[0].loc.start);else if(se.module){var we;K!=="ImportDefaultSpecifier"&&this.raise(X.ImportReflectionNotBinding,O[0].loc.start),((we=se.assertions)==null?void 0:we.length)>0&&this.raise(X.ImportReflectionHasAssertion,O[0].loc.start)}}checkJSONModuleImport(se){if(this.isJSONModuleImport(se)&&se.type!=="ExportAllDeclaration"){let{specifiers:O}=se;if(O!=null){let K=O.find(we=>{let gt;if(we.type==="ExportSpecifier"?gt=we.local:we.type==="ImportSpecifier"&&(gt=we.imported),gt!==void 0)return gt.type==="Identifier"?gt.name!=="default":gt.value!=="default"});K!==void 0&&this.raise(X.ImportJSONBindingNotDefault,K.loc.start)}}}isPotentialImportPhase(se){return se?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(se,O,K,we){O||(K==="module"?(this.expectPlugin("importReflection",we),se.module=!0):this.hasPlugin("importReflection")&&(se.module=!1),K==="source"?(this.expectPlugin("sourcePhaseImports",we),se.phase="source"):K==="defer"?(this.expectPlugin("deferredImportEvaluation",we),se.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(se.phase=null))}parseMaybeImportPhase(se,O){if(!this.isPotentialImportPhase(O))return this.applyImportPhase(se,O,null),null;let K=this.parseIdentifier(!0),{type:we}=this.state;return(ke(we)?we!==98||this.lookaheadCharCode()===102:we!==12)?(this.resetPreviousIdentifierLeadingComments(K),this.applyImportPhase(se,O,K.name,K.loc.start),null):(this.applyImportPhase(se,O,null),K)}isPrecedingIdImportPhase(se){let{type:O}=this.state;return qr(O)?O!==98||this.lookaheadCharCode()===102:O!==12}parseImport(se){return this.match(134)?this.parseImportSourceAndAttributes(se):this.parseImportSpecifiersAndAfter(se,this.parseMaybeImportPhase(se,!1))}parseImportSpecifiersAndAfter(se,O){se.specifiers=[];let K=!this.maybeParseDefaultImportSpecifier(se,O)||this.eat(12),we=K&&this.maybeParseStarImportSpecifier(se);return K&&!we&&this.parseNamedImportSpecifiers(se),this.expectContextual(98),this.parseImportSourceAndAttributes(se)}parseImportSourceAndAttributes(se){var O;return(O=se.specifiers)!=null||(se.specifiers=[]),se.source=this.parseImportSource(),this.maybeParseImportAttributes(se),this.checkImportReflection(se),this.checkJSONModuleImport(se),this.semicolon(),this.finishNode(se,"ImportDeclaration")}parseImportSource(){return this.match(134)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(se,O,K){O.local=this.parseIdentifier(),se.specifiers.push(this.finishImportSpecifier(O,K))}finishImportSpecifier(se,O,K=8201){return this.checkLVal(se.local,{type:O},K),this.finishNode(se,O)}parseImportAttributes(){this.expect(5);let se=[],O=new Set;do{if(this.match(8))break;let K=this.startNode(),we=this.state.value;if(O.has(we)&&this.raise(X.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:we}),O.add(we),this.match(134)?K.key=this.parseStringLiteral(we):K.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return this.expect(8),se}parseModuleAttributes(){let se=[],O=new Set;do{let K=this.startNode();if(K.key=this.parseIdentifier(!0),K.key.name!=="type"&&this.raise(X.ModuleAttributeDifferentFromType,K.key),O.has(K.key.name)&&this.raise(X.ModuleAttributesWithDuplicateKeys,K.key,{key:K.key.name}),O.add(K.key.name),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return se}maybeParseImportAttributes(se){let O;var K=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?O=this.parseModuleAttributes():O=this.parseImportAttributes(),K=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(!this.hasPlugin("deprecatedImportAssert")&&!this.hasPlugin("importAssertions")&&this.raise(X.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin("importAssertions")||this.addExtra(se,"deprecatedAssertSyntax",!0),this.next(),O=this.parseImportAttributes()):O=[];!K&&this.hasPlugin("importAssertions")?se.assertions=O:se.attributes=O}maybeParseDefaultImportSpecifier(se,O){if(O){let K=this.startNodeAtNode(O);return K.local=O,se.specifiers.push(this.finishImportSpecifier(K,"ImportDefaultSpecifier")),!0}else if(ke(this.state.type))return this.parseImportSpecifierLocal(se,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(se){if(this.match(55)){let O=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(se,O,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(se){let O=!0;for(this.expect(5);!this.eat(8);){if(O)O=!1;else{if(this.eat(14))throw this.raise(X.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}let K=this.startNode(),we=this.match(134),gt=this.isContextual(130);K.imported=this.parseModuleExportName();let sr=this.parseImportSpecifier(K,we,se.importKind==="type"||se.importKind==="typeof",gt,void 0);se.specifiers.push(sr)}}parseImportSpecifier(se,O,K,we,gt){if(this.eatContextual(93))se.local=this.parseIdentifier();else{let{imported:sr}=se;if(O)throw this.raise(X.ImportBindingIsString,se,{importName:sr.value});this.checkReservedWord(sr.name,se.loc.start,!0,!0),se.local||(se.local=Zt(sr))}return this.finishImportSpecifier(se,"ImportSpecifier",gt)}isThisParam(se){return se.type==="Identifier"&&se.name==="this"}},fb=class extends Mm{constructor(se,O,K){se=ne(se),super(se,O),this.options=se,this.initializeScopes(),this.plugins=K,this.filename=se.sourceFilename,this.startIndex=se.startIndex;let we=0;se.allowAwaitOutsideFunction&&(we|=1),se.allowReturnOutsideFunction&&(we|=2),se.allowImportExportEverywhere&&(we|=8),se.allowSuperOutsideMethod&&(we|=16),se.allowUndeclaredExports&&(we|=32),se.allowNewTargetOutsideFunction&&(we|=4),se.ranges&&(we|=64),se.tokens&&(we|=128),se.createImportExpressions&&(we|=256),se.createParenthesizedExpressions&&(we|=512),se.errorRecovery&&(we|=1024),se.attachComment&&(we|=2048),se.annexB&&(we|=4096),this.optionFlags=we}getScopeHandler(){return Xu}parse(){this.enterInitialScopes();let se=this.startNode(),O=this.startNode();return this.nextToken(),se.errors=null,this.parseTopLevel(se,O),se.errors=this.state.errors,se.comments.length=this.state.commentsLen,se}};function pe(se,O){var K;if(((K=O)==null?void 0:K.sourceType)==="unambiguous"){O=Object.assign({},O);try{O.sourceType="module";let we=_I(O,se),gt=we.parse();if(we.sawUnambiguousESM)return gt;if(we.ambiguousScriptDifferentAst)try{return O.sourceType="script",_I(O,se).parse()}catch{}else gt.program.sourceType="script";return gt}catch(we){try{return O.sourceType="script",_I(O,se).parse()}catch{}throw we}}else return _I(O,se).parse()}function lm(se,O){let K=_I(O,se);return K.options.strictMode&&(K.state.strict=!0),K.getExpression()}function Kf(se){let O={};for(let K of Object.keys(se))O[K]=zr(se[K]);return O}var CI=Kf(Ar);function _I(se,O){let K=fb,we=new Map;if(se!=null&&se.plugins){for(let gt of se.plugins){let sr,Yr;typeof gt=="string"?sr=gt:[sr,Yr]=gt,we.has(sr)||we.set(sr,Yr||{})}Hp(we),K=iE(we)}return new K(se,O,we)}var H2=new Map;function iE(se){let O=[];for(let gt of nE)se.has(gt)&&O.push(gt);let K=O.join("|"),we=H2.get(K);if(!we){we=fb;for(let gt of O)we=uC[gt](we);H2.set(K,we)}return we}e.parse=pe,e.parseExpression=lm,e.tokTypes=CI}),ayi={};t5a(ayi,{parsers:()=>GRe});var J0i=iyi(syi(),1);function Oyt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0i=I5a;function h5a(e){return Array.isArray(e)&&e.length>0}var CTr=h5a;function tj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(tj(o),a):a}function Ame(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function m5a(e){let t=new Set(e);return r=>t.has(r?.type)}var C5a=m5a,_5a=C5a(["Block","CommentBlock","MultiLine"]),fTr=_5a;function y5a(e){let t=`*${e.value}*`.split(` `);return t.length>1&&t.every(r=>r.trimStart()[0]==="*")}var K0i=y5a;function b5a(e){return fTr(e)&&e.value[0]==="*"&&/@(?:type|satisfies)\b/u.test(e.value)}var E5a=b5a,C4e=null;function y4e(e){if(C4e!==null&&typeof C4e.property){let t=C4e;return C4e=y4e.prototype=null,t}return C4e=y4e.prototype=e??Object.create(null),new y4e}var S5a=10;for(let e=0;e<=S5a;e++)y4e();function v5a(e){return y4e(e)}function B5a(e,t="type"){v5a(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var w5a=B5a,T5a={ArrayExpression:["elements"],AssignmentExpression:["left","right"],BinaryExpression:["left","right"],InterpreterDirective:[],Directive:["value"],DirectiveLiteral:[],BlockStatement:["directives","body"],BreakStatement:["label"],CallExpression:["callee","arguments","typeParameters","typeArguments"],CatchClause:["param","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],File:["program"],ForInStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","typeParameters","params","predicate","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["typeAnnotation","decorators"],IfStatement:["test","consequent","alternate"],LabeledStatement:["label","body"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],NewExpression:["callee","arguments","typeParameters","typeArguments"],Program:["directives","body"],ObjectExpression:["properties"],ObjectMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectProperty:["key","value","decorators"],RestElement:["argument","typeAnnotation","decorators"],ReturnStatement:["argument"],SequenceExpression:["expressions"],ParenthesizedExpression:["expression"],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],AssignmentPattern:["left","right","decorators","typeAnnotation"],ArrayPattern:["elements","typeAnnotation","decorators"],ArrowFunctionExpression:["typeParameters","params","predicate","returnType","body"],ClassBody:["body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ExportAllDeclaration:["source","attributes","exported"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source","attributes"],ExportSpecifier:["local","exported"],ForOfStatement:["left","right","body"],ImportDeclaration:["specifiers","source","attributes"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],ImportExpression:["source","options"],MetaProperty:["meta","property"],ClassMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectPattern:["properties","typeAnnotation","decorators"],SpreadElement:["argument"],Super:[],TaggedTemplateExpression:["tag","typeParameters","quasi","typeArguments"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],YieldExpression:["argument"],AwaitExpression:["argument"],BigIntLiteral:[],ExportNamespaceSpecifier:["exported"],OptionalMemberExpression:["object","property"],OptionalCallExpression:["callee","arguments","typeParameters","typeArguments"],ClassProperty:["decorators","variance","key","typeAnnotation","value"],ClassAccessorProperty:["decorators","key","typeAnnotation","value"],ClassPrivateProperty:["decorators","variance","key","typeAnnotation","value"],ClassPrivateMethod:["decorators","key","typeParameters","params","returnType","body"],PrivateName:["id"],StaticBlock:["body"],AnyTypeAnnotation:[],ArrayTypeAnnotation:["elementType"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:["id","typeParameters"],DeclareClass:["id","typeParameters","extends","mixins","implements","body"],DeclareFunction:["id","predicate"],DeclareInterface:["id","typeParameters","extends","body"],DeclareModule:["id","body"],DeclareModuleExports:["typeAnnotation"],DeclareTypeAlias:["id","typeParameters","right"],DeclareOpaqueType:["id","typeParameters","supertype"],DeclareVariable:["id"],DeclareExportDeclaration:["declaration","specifiers","source","attributes"],DeclareExportAllDeclaration:["source","attributes"],DeclaredPredicate:["value"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:["typeParameters","this","params","rest","returnType"],FunctionTypeParam:["name","typeAnnotation"],GenericTypeAnnotation:["id","typeParameters"],InferredPredicate:[],InterfaceExtends:["id","typeParameters"],InterfaceDeclaration:["id","typeParameters","extends","body"],InterfaceTypeAnnotation:["extends","body"],IntersectionTypeAnnotation:["types"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:["typeAnnotation"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:["properties","indexers","callProperties","internalSlots"],ObjectTypeInternalSlot:["id","value"],ObjectTypeCallProperty:["value"],ObjectTypeIndexer:["variance","id","key","value"],ObjectTypeProperty:["key","value","variance"],ObjectTypeSpreadProperty:["argument"],OpaqueType:["id","typeParameters","supertype","impltype"],QualifiedTypeIdentifier:["qualification","id"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:["types","elementTypes"],TypeofTypeAnnotation:["argument","typeArguments"],TypeAlias:["id","typeParameters","right"],TypeAnnotation:["typeAnnotation"],TypeCastExpression:["expression","typeAnnotation"],TypeParameter:["bound","default","variance"],TypeParameterDeclaration:["params"],TypeParameterInstantiation:["params"],UnionTypeAnnotation:["types"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:["id","body"],EnumBooleanBody:["members"],EnumNumberBody:["members"],EnumStringBody:["members"],EnumSymbolBody:["members"],EnumBooleanMember:["id","init"],EnumNumberMember:["id","init"],EnumStringMember:["id","init"],EnumDefaultedMember:["id"],IndexedAccessType:["objectType","indexType"],OptionalIndexedAccessType:["objectType","indexType"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXSpreadChild:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","typeParameters","typeArguments","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:["object","callee"],ImportAttribute:["key","value"],Decorator:["expression"],DoExpression:["body"],ExportDefaultSpecifier:["exported"],RecordExpression:["properties"],TupleExpression:["elements"],ModuleExpression:["body"],TopicReference:[],PipelineTopicExpression:["expression"],PipelineBareFunction:["callee"],PipelinePrimaryTopicReference:[],TSParameterProperty:["parameter","decorators"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareMethod:["decorators","key","typeParameters","params","returnType"],TSQualifiedName:["left","right"],TSCallSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSPropertySignature:["key","typeAnnotation"],TSMethodSignature:["key","typeParameters","parameters","typeAnnotation","params","returnType"],TSIndexSignature:["parameters","typeAnnotation"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructorType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSTypeReference:["typeName","typeParameters","typeArguments"],TSTypePredicate:["parameterName","typeAnnotation"],TSTypeQuery:["exprName","typeParameters","typeArguments"],TSTypeLiteral:["members"],TSArrayType:["elementType"],TSTupleType:["elementTypes"],TSOptionalType:["typeAnnotation"],TSRestType:["typeAnnotation"],TSNamedTupleMember:["label","elementType"],TSUnionType:["types"],TSIntersectionType:["types"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSInferType:["typeParameter"],TSParenthesizedType:["typeAnnotation"],TSTypeOperator:["typeAnnotation"],TSIndexedAccessType:["objectType","indexType"],TSMappedType:["typeParameter","nameType","typeAnnotation"],TSTemplateLiteralType:["quasis","types"],TSLiteralType:["literal"],TSExpressionWithTypeArguments:["expression","typeParameters"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceBody:["body"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSInstantiationExpression:["expression","typeParameters","typeArguments"],TSAsExpression:["expression","typeAnnotation"],TSSatisfiesExpression:["expression","typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSEnumBody:["members"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSModuleDeclaration:["id","body"],TSModuleBlock:["body"],TSImportType:["argument","options","qualifier","typeParameters","typeArguments"],TSImportEqualsDeclaration:["id","moduleReference"],TSExternalModuleReference:["expression"],TSNonNullExpression:["expression"],TSExportAssignment:["expression"],TSNamespaceExportDeclaration:["id"],TSTypeAnnotation:["typeAnnotation"],TSTypeParameterInstantiation:["params"],TSTypeParameterDeclaration:["params"],TSTypeParameter:["constraint","default","name"],ChainExpression:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],Literal:[],MethodDefinition:["decorators","key","value"],PrivateIdentifier:[],Property:["key","value"],PropertyDefinition:["decorators","key","typeAnnotation","value","variance"],AccessorProperty:["decorators","key","typeAnnotation","value"],TSAbstractAccessorProperty:["decorators","key","typeAnnotation"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAsyncKeyword:[],TSClassImplements:["expression","typeArguments","typeParameters"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSExportKeyword:[],TSInterfaceHeritage:["expression","typeArguments","typeParameters"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],AsConstExpression:["expression"],AsExpression:["expression","typeAnnotation"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:["id","params","body","typeParameters","rendersType"],ComponentParameter:["name","local"],ComponentTypeAnnotation:["params","rest","typeParameters","rendersType"],ComponentTypeParameter:["name","typeAnnotation"],ConditionalTypeAnnotation:["checkType","extendsType","trueType","falseType"],DeclareComponent:["id","params","rest","typeParameters","rendersType"],DeclareEnum:["id","body"],DeclareHook:["id"],DeclareNamespace:["id","body"],EnumBigIntBody:["members"],EnumBigIntMember:["id","init"],HookDeclaration:["id","params","body","typeParameters","returnType"],HookTypeAnnotation:["params","returnType","rest","typeParameters"],InferTypeAnnotation:["typeParameter"],KeyofTypeAnnotation:["argument"],ObjectTypeMappedTypeProperty:["keyTparam","propType","sourceType","variance"],QualifiedTypeofIdentifier:["qualification","id"],TupleTypeLabeledElement:["label","elementType","variance"],TupleTypeSpreadElement:["label","typeAnnotation"],TypeOperator:["typeAnnotation"],TypePredicate:["parameterName","typeAnnotation","asserts"],NGRoot:["node"],NGPipeExpression:["left","right","arguments"],NGChainedExpression:["expressions"],NGEmptyExpression:[],NGMicrosyntax:["body"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:["expression","alias"],NGMicrosyntaxKeyedExpression:["key","expression"],NGMicrosyntaxLet:["key","value"],NGMicrosyntaxAs:["key","alias"],JsExpressionRoot:["node"],JsonRoot:["node"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:["typeAnnotation"],TSJSDocNonNullableType:["typeAnnotation"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:["expression","typeAnnotation"]},R5a=w5a(T5a),N5a=R5a;function ITr(e,t){if(!(e!==null&&typeof e=="object"))return e;if(Array.isArray(e)){for(let n=0;n{var l;(l=o.leadingComments)!=null&&l.some(E5a)&&a.add(tj(o))}),e=dTr(e,o=>{if(o.type==="ParenthesizedExpression"){let{expression:l}=o;if(l.type==="TypeCastExpression")return l.range=[...o.range],l;let A=tj(o);if(!a.has(A))return l.extra={...l.extra,parenthesized:!0},l}})}if(e=dTr(e,a=>{switch(a.type){case"LogicalExpression":if(lyi(a))return hTr(a);break;case"VariableDeclaration":{let o=U0i(!1,a.declarations,-1);o!=null&&o.init&&n[Ame(o)]!==";"&&(a.range=[tj(a),Ame(o)]);break}case"TSParenthesizedType":return a.typeAnnotation;case"TSTypeParameter":if(typeof a.name=="string"){let o=tj(a);a.name={type:"Identifier",name:a.name,range:[o,o+a.name.length]}}break;case"TopicReference":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case"TSUnionType":case"TSIntersectionType":if(a.types.length===1)return a.types[0];break}}),CTr(e.comments)){let a=U0i(!1,e.comments,-1);for(let o=e.comments.length-2;o>=0;o--){let l=e.comments[o];Ame(l)===tj(a)&&fTr(l)&&fTr(a)&&K0i(l)&&K0i(a)&&(e.comments.splice(o+1,1),l.value+="*//*"+a.value,l.range=[tj(l),Ame(a)]),a=l}}return e.type==="Program"&&(e.range=[0,n.length]),e}function lyi(e){return e.type==="LogicalExpression"&&e.right.type==="LogicalExpression"&&e.operator===e.right.operator}function hTr(e){return lyi(e)?hTr({type:"LogicalExpression",operator:e.operator,left:hTr({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[tj(e.left),Ame(e.right.left)]}),right:e.right.right,range:[tj(e),Ame(e)]}):e}var k5a=D5a;function x5a(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var uyi=x5a;function G5a(e){let{message:t,loc:{line:r,column:n},reasonCode:a}=e,o=e;(a==="MissingPlugin"||a==="MissingOneOfPlugins")&&(t="Unexpected token.",o=void 0);let l=` (${r}:${n})`;return t.endsWith(l)&&(t=t.slice(0,-l.length)),uyi(t,{loc:{start:{line:r,column:n+1}},cause:o})}var gyi=G5a,F5a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Wyt=F5a,Z5a=/\*\/$/,L5a=/^\/\*\*?/,V5a=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,P5a=/(^|\s+)\/\/([^\n\r]*)/g,j0i=/^(\r?\n)+/,W5a=/(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g,z0i=/(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g,O5a=/(\r?\n|^) *\* ?/g,M5a=[];function H5a(e){let t=e.match(V5a);return t?t[0].trimStart():""}function Y5a(e){let t=` -`;e=Wyt(!1,e.replace(L5a,"").replace(Z5a,""),O5a,"$1");let r="";for(;r!==e;)r=e,e=Wyt(!1,e,W5a,`${t}$1 $2${t}`);e=e.replace(j0i,"").trimEnd();let n=Object.create(null),a=Wyt(!1,e,z0i,"").replace(j0i,"").trimEnd(),o;for(;o=z0i.exec(e);){let l=Wyt(!1,o[2],P5a,"");if(typeof n[o[1]]=="string"||Array.isArray(n[o[1]])){let A=n[o[1]];n[o[1]]=[...M5a,...Array.isArray(A)?A:[A],l]}else n[o[1]]=l}return{comments:a,pragmas:n}}function Q5a(e){let t=cyi(e);t&&(e=e.slice(t.length+1));let r=H5a(e),{pragmas:n,comments:a}=Y5a(r);return{shebang:t,text:e,pragmas:n,comments:a}}function X5a(e){let{pragmas:t}=Q5a(e);return Object.prototype.hasOwnProperty.call(t,"prettier")||Object.prototype.hasOwnProperty.call(t,"format")}function J5a(e){return e=typeof e=="function"?{parse:e}:e,{astFormat:"estree",hasPragma:X5a,locStart:tj,locEnd:Ame,...e}}var _4e=J5a;function U5a(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(".cjs")||t.endsWith(".cts"))return"script";if(t.endsWith(".mjs")||t.endsWith(".mts"))return"module"}}var K5a=U5a;function j5a(e,t){let{type:r="JsExpressionRoot",rootMarker:n,text:a}=t,{tokens:o,comments:l}=e;return delete e.tokens,delete e.comments,{tokens:o,comments:l,type:r,node:e,range:[0,a.length],rootMarker:n}}var Ayi=j5a,xRe=e=>_4e(tMa(e)),z5a={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,createImportExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication","decorators","moduleBlocks","asyncDoExpressions","destructuringPrivate","decoratorAutoAccessors","explicitResourceManagement","sourcePhaseImports","deferredImportEvaluation",["optionalChainingAssign",{version:"2023-07"}],"recordAndTuple"],tokens:!0,ranges:!0},q0i="v8intrinsic",$0i=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"fsharp"}]],lee=(e,t=z5a)=>({...t,plugins:[...t.plugins,...e]}),q5a=/@(?:no)?flow\b/u;function $5a(e,t){var r;if((r=t.filepath)!=null&&r.endsWith(".js.flow"))return!0;let n=cyi(e);n&&(e=e.slice(n.length));let a=A5a(e,0);return a!==!1&&(e=e.slice(0,a)),q5a.test(e)}function eMa(e,t,r){let n=e(t,r),a=n.errors.find(o=>!rMa.has(o.reasonCode));if(a)throw a;return n}function tMa({isExpression:e=!1,optionsCombinations:t}){return(r,n={})=>{if((n.parser==="babel"||n.parser==="__babel_estree")&&$5a(r,n))return n.parser="babel-flow",pyi.parse(r,n);let a=t;(n.__babelSourceType??K5a(n))==="script"&&(a=a.map(f=>({...f,sourceType:"script"})));let o=/%[A-Z]/u.test(r);r.includes("|>")?a=(o?[...$0i,q0i]:$0i).flatMap(f=>a.map(I=>lee([f],I))):o&&(a=a.map(f=>lee([q0i],f)));let l=e?J0i.parseExpression:J0i.parse,A;try{A=p5a(a.map(f=>()=>eMa(l,r,f)))}catch({errors:[f]}){throw gyi(f)}return e&&(A=Ayi(A,{text:r,rootMarker:n.rootMarker})),k5a(A,{parser:"babel",text:r})}}var rMa=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","ForInOfLoopInitializer","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport","ImportAttributesUseAssert"]),dyi=[lee(["jsx"])],eyi=xRe({optionsCombinations:dyi}),tyi=xRe({optionsCombinations:[lee(["jsx","typescript"]),lee(["typescript"])]}),ryi=xRe({isExpression:!0,optionsCombinations:[lee(["jsx"])]}),nyi=xRe({isExpression:!0,optionsCombinations:[lee(["typescript"])]}),pyi=xRe({optionsCombinations:[lee(["jsx",["flow",{all:!0}],"flowComments"])]}),nMa=xRe({optionsCombinations:dyi.map(e=>lee(["estree"],e))}),iMa={babel:eyi,"babel-flow":pyi,"babel-ts":tyi,__js_expression:ryi,__ts_expression:nyi,__vue_expression:ryi,__vue_ts_expression:nyi,__vue_event_binding:eyi,__vue_ts_event_binding:tyi,__babel_estree:nMa},sMa=iyi(syi(),1);function fyi(e={}){let{allowComments:t=!0}=e;return function(r){let n;try{n=(0,sMa.parseExpression)(r,{tokens:!0,ranges:!0,attachComment:!1})}catch(a){throw gyi(a)}if(!t&&CTr(n.comments))throw $ae(n.comments[0],"Comment");return kRe(n),Ayi(n,{type:"JsonRoot",text:r})}}function $ae(e,t){let[r,n]=[e.loc.start,e.loc.end].map(({line:a,column:o})=>({line:a,column:o+1}));return uyi(`${t} is not allowed in JSON.`,{loc:{start:r,end:n}})}function kRe(e){switch(e.type){case"ArrayExpression":for(let t of e.elements)t!==null&&kRe(t);return;case"ObjectExpression":for(let t of e.properties)kRe(t);return;case"ObjectProperty":if(e.computed)throw $ae(e.key,"Computed key");if(e.shorthand)throw $ae(e.key,"Shorthand property");e.key.type!=="Identifier"&&kRe(e.key),kRe(e.value);return;case"UnaryExpression":{let{operator:t,argument:r}=e;if(t!=="+"&&t!=="-")throw $ae(e,`Operator '${e.operator}'`);if(r.type==="NumericLiteral"||r.type==="Identifier"&&(r.name==="Infinity"||r.name==="NaN"))return;throw $ae(r,`Operator '${t}' before '${r.type}'`)}case"Identifier":if(e.name!=="Infinity"&&e.name!=="NaN"&&e.name!=="undefined")throw $ae(e,`Identifier '${e.name}'`);return;case"TemplateLiteral":if(CTr(e.expressions))throw $ae(e.expressions[0],"'TemplateLiteral' with expression");for(let t of e.quasis)kRe(t);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw $ae(e,`'${e.type}'`)}}var pTr=fyi(),oMa={json:_4e({parse:pTr,hasPragma(){return!0}}),json5:_4e(pTr),jsonc:_4e(pTr),"json-stringify":_4e({parse:fyi({allowComments:!1}),astFormat:"estree-json"})},aMa=oMa,GRe={...iMa,...aMa},cMa=ayi;var vme={};sI(vme,{default:()=>mJa,languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var lMa=Object.defineProperty,Oyi=e=>{throw TypeError(e)},tbt=(e,t)=>{for(var r in t)lMa(e,r,{get:t[r],enumerable:!0})},Myi=(e,t,r)=>t.has(e)||Oyi("Cannot "+r),ece=(e,t,r)=>(Myi(e,t,"read from private field"),r?r.call(e):t.get(e)),uMa=(e,t,r)=>t.has(e)?Oyi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),gMa=(e,t,r,n)=>(Myi(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Hyi={};tbt(Hyi,{languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var AMa=[{linguistLanguageId:183,name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib",".wxs"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell","zx"],parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"]},{linguistLanguageId:183,name:"Flow",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:[],extensions:[".js.flow"],filenames:[],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"]},{linguistLanguageId:183,name:"JSX",type:"programming",tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0,aliases:void 0,extensions:[".jsx"],filenames:void 0,interpreters:void 0,parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],group:"JavaScript"},{linguistLanguageId:378,name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]},{linguistLanguageId:94901924,name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]}],Yyi={};tbt(Yyi,{canAttachComment:()=>mYa,embed:()=>sQa,experimentalFeatures:()=>lJa,getCommentChildNodes:()=>CYa,getVisitorKeys:()=>Uyi,handleComments:()=>fbi,insertPragma:()=>mQa,isBlockComment:()=>zM,isGap:()=>_Ya,massageAstNode:()=>hHa,print:()=>cJa,printComment:()=>ZHa,willPrintOwnComments:()=>Bbi});var dMa=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Zk=dMa,pMa=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0=pMa;function fMa(e){return e!==null&&typeof e=="object"}var IMa=fMa;function*hMa(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,a=o=>IMa(o)&&n(o);for(let o of r(e)){let l=e[o];if(Array.isArray(l))for(let A of l)a(A)&&(yield A);else a(l)&&(yield l)}}function*mMa(e,t){let r=[e];for(let n=0;n/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function yMa(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function bMa(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var EMa=e=>!(yMa(e)||bMa(e)),SMa=/[^\x20-\x7F]/u;function vMa(e){if(!e)return 0;if(!SMa.test(e))return e.length;e=e.replace(_Ma()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=EMa(n)?1:2)}return t}var WRe=vMa;function rbt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l_4e(tMa(e)),z5a={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,createImportExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication","decorators","moduleBlocks","asyncDoExpressions","destructuringPrivate","decoratorAutoAccessors","explicitResourceManagement","sourcePhaseImports","deferredImportEvaluation",["optionalChainingAssign",{version:"2023-07"}],"recordAndTuple"],tokens:!0,ranges:!0},q0i="v8intrinsic",$0i=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"fsharp"}]],lee=(e,t=z5a)=>({...t,plugins:[...t.plugins,...e]}),q5a=/@(?:no)?flow\b/u;function $5a(e,t){var r;if((r=t.filepath)!=null&&r.endsWith(".js.flow"))return!0;let n=cyi(e);n&&(e=e.slice(n.length));let a=A5a(e,0);return a!==!1&&(e=e.slice(0,a)),q5a.test(e)}function eMa(e,t,r){let n=e(t,r),a=n.errors.find(o=>!rMa.has(o.reasonCode));if(a)throw a;return n}function tMa({isExpression:e=!1,optionsCombinations:t}){return(r,n={})=>{if((n.parser==="babel"||n.parser==="__babel_estree")&&$5a(r,n))return n.parser="babel-flow",pyi.parse(r,n);let a=t;(n.__babelSourceType??K5a(n))==="script"&&(a=a.map(f=>({...f,sourceType:"script"})));let o=/%[A-Z]/u.test(r);r.includes("|>")?a=(o?[...$0i,q0i]:$0i).flatMap(f=>a.map(I=>lee([f],I))):o&&(a=a.map(f=>lee([q0i],f)));let l=e?J0i.parseExpression:J0i.parse,A;try{A=p5a(a.map(f=>()=>eMa(l,r,f)))}catch({errors:[f]}){throw gyi(f)}return e&&(A=Ayi(A,{text:r,rootMarker:n.rootMarker})),k5a(A,{parser:"babel",text:r})}}var rMa=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","ForInOfLoopInitializer","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport","ImportAttributesUseAssert"]),dyi=[lee(["jsx"])],eyi=xRe({optionsCombinations:dyi}),tyi=xRe({optionsCombinations:[lee(["jsx","typescript"]),lee(["typescript"])]}),ryi=xRe({isExpression:!0,optionsCombinations:[lee(["jsx"])]}),nyi=xRe({isExpression:!0,optionsCombinations:[lee(["typescript"])]}),pyi=xRe({optionsCombinations:[lee(["jsx",["flow",{all:!0}],"flowComments"])]}),nMa=xRe({optionsCombinations:dyi.map(e=>lee(["estree"],e))}),iMa={babel:eyi,"babel-flow":pyi,"babel-ts":tyi,__js_expression:ryi,__ts_expression:nyi,__vue_expression:ryi,__vue_ts_expression:nyi,__vue_event_binding:eyi,__vue_ts_event_binding:tyi,__babel_estree:nMa},sMa=iyi(syi(),1);function fyi(e={}){let{allowComments:t=!0}=e;return function(r){let n;try{n=(0,sMa.parseExpression)(r,{tokens:!0,ranges:!0,attachComment:!1})}catch(a){throw gyi(a)}if(!t&&CTr(n.comments))throw $ae(n.comments[0],"Comment");return kRe(n),Ayi(n,{type:"JsonRoot",text:r})}}function $ae(e,t){let[r,n]=[e.loc.start,e.loc.end].map(({line:a,column:o})=>({line:a,column:o+1}));return uyi(`${t} is not allowed in JSON.`,{loc:{start:r,end:n}})}function kRe(e){switch(e.type){case"ArrayExpression":for(let t of e.elements)t!==null&&kRe(t);return;case"ObjectExpression":for(let t of e.properties)kRe(t);return;case"ObjectProperty":if(e.computed)throw $ae(e.key,"Computed key");if(e.shorthand)throw $ae(e.key,"Shorthand property");e.key.type!=="Identifier"&&kRe(e.key),kRe(e.value);return;case"UnaryExpression":{let{operator:t,argument:r}=e;if(t!=="+"&&t!=="-")throw $ae(e,`Operator '${e.operator}'`);if(r.type==="NumericLiteral"||r.type==="Identifier"&&(r.name==="Infinity"||r.name==="NaN"))return;throw $ae(r,`Operator '${t}' before '${r.type}'`)}case"Identifier":if(e.name!=="Infinity"&&e.name!=="NaN"&&e.name!=="undefined")throw $ae(e,`Identifier '${e.name}'`);return;case"TemplateLiteral":if(CTr(e.expressions))throw $ae(e.expressions[0],"'TemplateLiteral' with expression");for(let t of e.quasis)kRe(t);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw $ae(e,`'${e.type}'`)}}var pTr=fyi(),oMa={json:_4e({parse:pTr,hasPragma(){return!0}}),json5:_4e(pTr),jsonc:_4e(pTr),"json-stringify":_4e({parse:fyi({allowComments:!1}),astFormat:"estree-json"})},aMa=oMa,GRe={...iMa,...aMa},cMa=ayi;var vme={};sI(vme,{default:()=>mJa,languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var lMa=Object.defineProperty,Oyi=e=>{throw TypeError(e)},tbt=(e,t)=>{for(var r in t)lMa(e,r,{get:t[r],enumerable:!0})},Myi=(e,t,r)=>t.has(e)||Oyi("Cannot "+r),ece=(e,t,r)=>(Myi(e,t,"read from private field"),r?r.call(e):t.get(e)),uMa=(e,t,r)=>t.has(e)?Oyi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),gMa=(e,t,r,n)=>(Myi(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Hyi={};tbt(Hyi,{languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var AMa=[{linguistLanguageId:183,name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib",".wxs"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell","zx"],parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"]},{linguistLanguageId:183,name:"Flow",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:[],extensions:[".js.flow"],filenames:[],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"]},{linguistLanguageId:183,name:"JSX",type:"programming",tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0,aliases:void 0,extensions:[".jsx"],filenames:void 0,interpreters:void 0,parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],group:"JavaScript"},{linguistLanguageId:378,name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]},{linguistLanguageId:94901924,name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]}],Yyi={};tbt(Yyi,{canAttachComment:()=>mYa,embed:()=>sQa,experimentalFeatures:()=>lJa,getCommentChildNodes:()=>CYa,getVisitorKeys:()=>Uyi,handleComments:()=>fbi,insertPragma:()=>mQa,isBlockComment:()=>zM,isGap:()=>_Ya,massageAstNode:()=>hHa,print:()=>cJa,printComment:()=>ZHa,willPrintOwnComments:()=>Bbi});var dMa=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Zk=dMa,pMa=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0=pMa;function fMa(e){return e!==null&&typeof e=="object"}var IMa=fMa;function*hMa(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,a=o=>IMa(o)&&n(o);for(let o of r(e)){let l=e[o];if(Array.isArray(l))for(let A of l)a(A)&&(yield A);else a(l)&&(yield l)}}function*mMa(e,t){let r=[e];for(let n=0;n/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function yMa(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function bMa(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var EMa=e=>!(yMa(e)||bMa(e)),SMa=/[^\x20-\x7F]/u;function vMa(e){if(!e)return 0;if(!SMa.test(e))return e.length;e=e.replace(_Ma()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=EMa(n)?1:2)}return t}var WRe=vMa;function rbt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l=f&&o(C)<=I&&l.add(C);return r.slice(f,I)}var _Qa=CQa;function WTr(e,t){var r,n,a,o,l,A,f,I,C;if(e.isRoot)return!1;let{node:b,key:E,parent:N}=e;if(t.__isInHtmlInterpolation&&!t.bracketSpacing&&SQa(b)&&S4e(e))return!0;if(yQa(b))return!1;if(b.type==="Identifier"){if((r=b.extra)!=null&&r.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/u.test(b.name)||E==="left"&&(b.name==="async"&&!N.await||b.name==="let")&&N.type==="ForOfStatement")return!0;if(b.name==="let"){let B=(n=e.findAncestor(F=>F.type==="ForOfStatement"))==null?void 0:n.left;if(B&&JZ(B,F=>F===b))return!0}if(E==="object"&&b.name==="let"&&N.type==="MemberExpression"&&N.computed&&!N.optional){let B=e.findAncestor(Q=>Q.type==="ExpressionStatement"||Q.type==="ForStatement"||Q.type==="ForInStatement"),F=B?B.type==="ExpressionStatement"?B.expression:B.type==="ForStatement"?B.init:B.left:void 0;if(F&&JZ(F,Q=>Q===b))return!0}if(E==="expression")switch(b.name){case"await":case"interface":case"module":case"using":case"yield":case"let":case"component":case"hook":case"type":{let B=e.findAncestor(F=>!nj(F));if(B!==N&&B.type==="ExpressionStatement")return!0}}return!1}if(b.type==="ObjectExpression"||b.type==="FunctionExpression"||b.type==="ClassExpression"||b.type==="DoExpression"){let B=(a=e.findAncestor(F=>F.type==="ExpressionStatement"))==null?void 0:a.expression;if(B&&JZ(B,F=>F===b))return!0}if(b.type==="ObjectExpression"){let B=(o=e.findAncestor(F=>F.type==="ArrowFunctionExpression"))==null?void 0:o.body;if(B&&B.type!=="SequenceExpression"&&B.type!=="AssignmentExpression"&&JZ(B,F=>F===b))return!0}switch(N.type){case"ParenthesizedExpression":return!1;case"ClassDeclaration":case"ClassExpression":if(E==="superClass"&&(b.type==="ArrowFunctionExpression"||b.type==="AssignmentExpression"||b.type==="AwaitExpression"||b.type==="BinaryExpression"||b.type==="ConditionalExpression"||b.type==="LogicalExpression"||b.type==="NewExpression"||b.type==="ObjectExpression"||b.type==="SequenceExpression"||b.type==="TaggedTemplateExpression"||b.type==="UnaryExpression"||b.type==="UpdateExpression"||b.type==="YieldExpression"||b.type==="TSNonNullExpression"||b.type==="ClassExpression"&&H_(b.decorators)))return!0;break;case"ExportDefaultDeclaration":return Zbi(e,t)||b.type==="SequenceExpression";case"Decorator":if(E==="expression"&&!BQa(b))return!0;break;case"TypeAnnotation":if(e.match(void 0,void 0,(B,F)=>F==="returnType"&&B.type==="ArrowFunctionExpression")&&EQa(b))return!0;break;case"BinaryExpression":if(E==="left"&&(N.operator==="in"||N.operator==="instanceof")&&b.type==="UnaryExpression")return!0;break;case"VariableDeclarator":if(E==="init"&&e.match(void 0,void 0,(B,F)=>F==="declarations"&&B.type==="VariableDeclaration",(B,F)=>F==="left"&&B.type==="ForInStatement"))return!0;break}switch(b.type){case"UpdateExpression":if(N.type==="UnaryExpression")return b.prefix&&(b.operator==="++"&&N.operator==="+"||b.operator==="--"&&N.operator==="-");case"UnaryExpression":switch(N.type){case"UnaryExpression":return b.operator===N.operator&&(b.operator==="+"||b.operator==="-");case"BindExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"TaggedTemplateExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"BinaryExpression":return E==="left"&&N.operator==="**";case"TSNonNullExpression":return!0;default:return!1}case"BinaryExpression":if(N.type==="UpdateExpression"||b.operator==="in"&&bQa(e))return!0;if(b.operator==="|>"&&(l=b.extra)!=null&&l.parenthesized){let B=e.grandparent;if(B.type==="BinaryExpression"&&B.operator==="|>")return!0}case"TSTypeAssertion":case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"LogicalExpression":switch(N.type){case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return!nj(b);case"ConditionalExpression":return nj(b)||eHa(b);case"CallExpression":case"NewExpression":case"OptionalCallExpression":return E==="callee";case"ClassExpression":case"ClassDeclaration":return E==="superClass";case"TSTypeAssertion":case"TaggedTemplateExpression":case"UnaryExpression":case"JSXSpreadAttribute":case"SpreadElement":case"BindExpression":case"AwaitExpression":case"TSNonNullExpression":case"UpdateExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"AssignmentExpression":case"AssignmentPattern":return E==="left"&&(b.type==="TSTypeAssertion"||nj(b));case"LogicalExpression":if(b.type==="LogicalExpression")return N.operator!==b.operator;case"BinaryExpression":{let{operator:B,type:F}=b;if(!B&&F!=="TSTypeAssertion")return!0;let Q=jyt(B),X=N.operator,ae=jyt(X);return ae>Q||E==="right"&&ae===Q||ae===Q&&!tRr(X,B)?!0:ae");default:return!1}case"TSFunctionType":if(e.match(B=>B.type==="TSFunctionType",(B,F)=>F==="typeAnnotation"&&B.type==="TSTypeAnnotation",(B,F)=>F==="returnType"&&B.type==="ArrowFunctionExpression"))return!0;case"TSConditionalType":case"TSConstructorType":case"ConditionalTypeAnnotation":if(E==="extendsType"&&oce(b)&&N.type===b.type||E==="checkType"&&oce(N))return!0;if(E==="extendsType"&&N.type==="TSConditionalType"){let{typeAnnotation:B}=b.returnType||b.typeAnnotation;if(B.type==="TSTypePredicate"&&B.typeAnnotation&&(B=B.typeAnnotation.typeAnnotation),B.type==="TSInferType"&&B.typeParameter.constraint)return!0}case"TSUnionType":case"TSIntersectionType":if((sce(N)||rRr(N))&&N.types.length>1&&(!b.types||b.types.length>1))return!0;case"TSInferType":if(b.type==="TSInferType"){if(N.type==="TSRestType")return!1;if(E==="types"&&(N.type==="TSUnionType"||N.type==="TSIntersectionType")&&b.typeParameter.type==="TSTypeParameter"&&b.typeParameter.constraint)return!0}case"TSTypeOperator":return N.type==="TSArrayType"||N.type==="TSOptionalType"||N.type==="TSRestType"||E==="objectType"&&N.type==="TSIndexedAccessType"||N.type==="TSTypeOperator"||N.type==="TSTypeAnnotation"&&e.grandparent.type.startsWith("TSJSDoc");case"TSTypeQuery":return E==="objectType"&&N.type==="TSIndexedAccessType"||E==="elementType"&&N.type==="TSArrayType";case"TypeOperator":return N.type==="ArrayTypeAnnotation"||N.type==="NullableTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType")||N.type==="TypeOperator";case"TypeofTypeAnnotation":return E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType")||E==="elementType"&&N.type==="ArrayTypeAnnotation";case"ArrayTypeAnnotation":return N.type==="NullableTypeAnnotation";case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return N.type==="TypeOperator"||N.type==="ArrayTypeAnnotation"||N.type==="NullableTypeAnnotation"||N.type==="IntersectionTypeAnnotation"||N.type==="UnionTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType");case"InferTypeAnnotation":case"NullableTypeAnnotation":return N.type==="ArrayTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType");case"ComponentTypeAnnotation":case"FunctionTypeAnnotation":{if(b.type==="ComponentTypeAnnotation"&&(b.rendersType===null||b.rendersType===void 0))return!1;if(e.match(void 0,(F,Q)=>Q==="typeAnnotation"&&F.type==="TypeAnnotation",(F,Q)=>Q==="returnType"&&F.type==="ArrowFunctionExpression")||e.match(void 0,(F,Q)=>Q==="typeAnnotation"&&F.type==="TypePredicate",(F,Q)=>Q==="typeAnnotation"&&F.type==="TypeAnnotation",(F,Q)=>Q==="returnType"&&F.type==="ArrowFunctionExpression"))return!0;let B=N.type==="NullableTypeAnnotation"?e.grandparent:N;return B.type==="UnionTypeAnnotation"||B.type==="IntersectionTypeAnnotation"||B.type==="ArrayTypeAnnotation"||E==="objectType"&&(B.type==="IndexedAccessType"||B.type==="OptionalIndexedAccessType")||E==="checkType"&&N.type==="ConditionalTypeAnnotation"||E==="extendsType"&&N.type==="ConditionalTypeAnnotation"&&((A=b.returnType)==null?void 0:A.type)==="InferTypeAnnotation"&&((f=b.returnType)==null?void 0:f.typeParameter.bound)||B.type==="NullableTypeAnnotation"||N.type==="FunctionTypeParam"&&N.name===null&&NG(b).some(F=>{var Q;return((Q=F.typeAnnotation)==null?void 0:Q.type)==="NullableTypeAnnotation"})}case"OptionalIndexedAccessType":return E==="objectType"&&N.type==="IndexedAccessType";case"StringLiteral":case"NumericLiteral":case"Literal":if(typeof b.value=="string"&&N.type==="ExpressionStatement"&&!N.directive){let B=e.grandparent;return B.type==="Program"||B.type==="BlockStatement"}return E==="object"&&N.type==="MemberExpression"&&typeof b.value=="number";case"AssignmentExpression":{let B=e.grandparent;return E==="body"&&N.type==="ArrowFunctionExpression"?!0:E==="key"&&(N.type==="ClassProperty"||N.type==="PropertyDefinition")&&N.computed||(E==="init"||E==="update")&&N.type==="ForStatement"?!1:N.type==="ExpressionStatement"?b.left.type==="ObjectPattern":!(E==="key"&&N.type==="TSPropertySignature"||N.type==="AssignmentExpression"||N.type==="SequenceExpression"&&B.type==="ForStatement"&&(B.init===N||B.update===N)||E==="value"&&N.type==="Property"&&B.type==="ObjectPattern"&&B.properties.includes(N)||N.type==="NGChainedExpression"||E==="node"&&N.type==="JsExpressionRoot")}case"ConditionalExpression":switch(N.type){case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"BinaryExpression":case"LogicalExpression":case"NGPipeExpression":case"ExportDefaultDeclaration":case"AwaitExpression":case"JSXSpreadAttribute":case"TSTypeAssertion":case"TypeCastExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"TSNonNullExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"ConditionalExpression":return t.experimentalTernaries?!1:E==="test";case"MemberExpression":case"OptionalMemberExpression":return E==="object";default:return!1}case"FunctionExpression":switch(N.type){case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"TaggedTemplateExpression":return!0;default:return!1}case"ArrowFunctionExpression":switch(N.type){case"BinaryExpression":return N.operator!=="|>"||((I=b.extra)==null?void 0:I.parenthesized);case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"TSNonNullExpression":case"BindExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"LogicalExpression":case"AwaitExpression":case"TSTypeAssertion":return!0;case"ConditionalExpression":return E==="test";default:return!1}case"ClassExpression":switch(N.type){case"NewExpression":return E==="callee";default:return!1}case"OptionalMemberExpression":case"OptionalCallExpression":case"CallExpression":case"MemberExpression":if(vQa(e))return!0;case"TaggedTemplateExpression":case"TSNonNullExpression":if(E==="callee"&&(N.type==="BindExpression"||N.type==="NewExpression")){let B=b;for(;B;)switch(B.type){case"CallExpression":case"OptionalCallExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":case"BindExpression":B=B.object;break;case"TaggedTemplateExpression":B=B.tag;break;case"TSNonNullExpression":B=B.expression;break;default:return!1}}return!1;case"BindExpression":return E==="callee"&&(N.type==="BindExpression"||N.type==="NewExpression")||E==="object"&&Yv(N);case"NGPipeExpression":return!(N.type==="NGRoot"||N.type==="NGMicrosyntaxExpression"||N.type==="ObjectProperty"&&!((C=b.extra)!=null&&C.parenthesized)||Vk(N)||E==="arguments"&&b_(N)||E==="right"&&N.type==="NGPipeExpression"||E==="property"&&N.type==="MemberExpression"||N.type==="AssignmentExpression");case"JSXFragment":case"JSXElement":return E==="callee"||E==="left"&&N.type==="BinaryExpression"&&N.operator==="<"||!Vk(N)&&N.type!=="ArrowFunctionExpression"&&N.type!=="AssignmentExpression"&&N.type!=="AssignmentPattern"&&N.type!=="BinaryExpression"&&N.type!=="NewExpression"&&N.type!=="ConditionalExpression"&&N.type!=="ExpressionStatement"&&N.type!=="JsExpressionRoot"&&N.type!=="JSXAttribute"&&N.type!=="JSXElement"&&N.type!=="JSXExpressionContainer"&&N.type!=="JSXFragment"&&N.type!=="LogicalExpression"&&!b_(N)&&!Iee(N)&&N.type!=="ReturnStatement"&&N.type!=="ThrowStatement"&&N.type!=="TypeCastExpression"&&N.type!=="VariableDeclarator"&&N.type!=="YieldExpression";case"TSInstantiationExpression":return E==="object"&&Yv(N)}return!1}var yQa=_0(["BlockStatement","BreakStatement","ComponentDeclaration","ClassBody","ClassDeclaration","ClassMethod","ClassProperty","PropertyDefinition","ClassPrivateProperty","ContinueStatement","DebuggerStatement","DeclareComponent","DeclareClass","DeclareExportAllDeclaration","DeclareExportDeclaration","DeclareFunction","DeclareHook","DeclareInterface","DeclareModule","DeclareModuleExports","DeclareNamespace","DeclareVariable","DeclareEnum","DoWhileStatement","EnumDeclaration","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExpressionStatement","ForInStatement","ForOfStatement","ForStatement","FunctionDeclaration","HookDeclaration","IfStatement","ImportDeclaration","InterfaceDeclaration","LabeledStatement","MethodDefinition","ReturnStatement","SwitchStatement","ThrowStatement","TryStatement","TSDeclareFunction","TSEnumDeclaration","TSImportEqualsDeclaration","TSInterfaceDeclaration","TSModuleDeclaration","TSNamespaceExportDeclaration","TypeAlias","VariableDeclaration","WhileStatement","WithStatement"]);function bQa(e){let t=0,{node:r}=e;for(;r;){let n=e.getParentNode(t++);if(n?.type==="ForStatement"&&n.init===r)return!0;r=n}return!1}function EQa(e){return DTr(e,t=>t.type==="ObjectTypeAnnotation"&&DTr(t,r=>r.type==="FunctionTypeAnnotation"))}function SQa(e){return e4(e)}function S4e(e){let{parent:t,key:r}=e;switch(t.type){case"NGPipeExpression":if(r==="arguments"&&e.isLast)return e.callParent(S4e);break;case"ObjectProperty":if(r==="value")return e.callParent(()=>e.key==="properties"&&e.isLast);break;case"BinaryExpression":case"LogicalExpression":if(r==="right")return e.callParent(S4e);break;case"ConditionalExpression":if(r==="alternate")return e.callParent(S4e);break;case"UnaryExpression":if(t.prefix)return e.callParent(S4e);break}return!1}function Zbi(e,t){let{node:r,parent:n}=e;return r.type==="FunctionExpression"||r.type==="ClassExpression"?n.type==="ExportDefaultDeclaration"||!WTr(e,t):!zTr(r)||n.type!=="ExportDefaultDeclaration"&&WTr(e,t)?!1:e.call(()=>Zbi(e,t),...zyi(r))}function vQa(e){return!!(e.match(void 0,(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(void 0,(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(void 0,(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&(t.type==="CallExpression"||t.type==="NewExpression"))||e.match(t=>t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression")||e.match(t=>t.type==="CallExpression"||t.type==="MemberExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression")&&(e.match(void 0,void 0,(t,r)=>r==="callee"&&(t.type==="CallExpression"&&!t.optional||t.type==="NewExpression")||r==="object"&&t.type==="MemberExpression"&&!t.optional)||e.match(void 0,void 0,(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression"))||e.match(t=>t.type==="CallExpression"||t.type==="MemberExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression"))}function OTr(e){return e.type==="Identifier"?!0:Yv(e)?!e.computed&&!e.optional&&e.property.type==="Identifier"&&OTr(e.object):!1}function BQa(e){return e.type==="ChainExpression"&&(e=e.expression),OTr(e)||b_(e)&&!e.optional&&OTr(e.callee)}var Eme=WTr;function wQa(e,t){let r=t-1;r=ORe(e,r,{backwards:!0}),r=MRe(e,r,{backwards:!0}),r=ORe(e,r,{backwards:!0});let n=MRe(e,r,{backwards:!0});return r!==n}var TQa=wQa,RQa=()=>!0;function ARr(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function NQa(e,t){var r;let n=e.node,a=[ARr(e,t)],{printer:o,originalText:l,locStart:A,locEnd:f}=t;if((r=o.isBlockComment)!=null&&r.call(o,n)){let C=dO(l,f(n))?dO(l,A(n),{backwards:!0})?xl:zg:" ";a.push(C)}else a.push(xl);let I=MRe(l,ORe(l,f(n)));return I!==!1&&dO(l,I)&&a.push(xl),a}function DQa(e,t,r){var n;let a=e.node,o=ARr(e,t),{printer:l,originalText:A,locStart:f}=t,I=(n=l.isBlockComment)==null?void 0:n.call(l,a);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||dO(A,f(a),{backwards:!0})){let C=TQa(A,f(a));return{doc:Eyi([xl,C?xl:"",o]),isBlock:I,hasLineSuffix:!0}}return!I||r!=null&&r.hasLineSuffix?{doc:[Eyi([" ",o]),aj],isBlock:I,hasLineSuffix:!0}:{doc:[" ",o],isBlock:I,hasLineSuffix:!1}}function N2(e,t,r={}){let{node:n}=e;if(!H_(n?.comments))return"";let{indent:a=!1,marker:o,filter:l=RQa}=r,A=[];if(e.each(({node:I})=>{I.leading||I.trailing||I.marker!==o||!l(I)||A.push(ARr(e,t))},"comments"),A.length===0)return"";let f=vC(xl,A);return a?Pl([xl,f]):f}function Lbi(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for("printedComments")];if((r.comments||[]).filter(A=>!n.has(A)).length===0)return{leading:"",trailing:""};let a=[],o=[],l;return e.each(()=>{let A=e.node;if(n!=null&&n.has(A))return;let{leading:f,trailing:I}=A;f?a.push(NQa(e,t)):I&&(l=DQa(e,t,l),o.push(l.doc))},"comments"),{leading:a,trailing:o}}function $X(e,t,r){let{leading:n,trailing:a}=Lbi(e,r);return!n&&!a?t:GTr(t,o=>[n,o,a])}var kQa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},jRe=kQa;function xQa(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var zX,GQa=class{constructor(e){uMa(this,zX),gMa(this,zX,new Set(e))}getLeadingWhitespaceCount(e){let t=ece(this,zX),r=0;for(let n=0;n=0&&t.has(e.charAt(n));n--)r++;return r}getLeadingWhitespace(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(0,t)}getTrailingWhitespace(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(e.length-t)}hasLeadingWhitespace(e){return ece(this,zX).has(e.charAt(0))}hasTrailingWhitespace(e){return ece(this,zX).has(U0(!1,e,-1))}trimStart(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(t)}trimEnd(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-t)}trim(e){return this.trimEnd(this.trimStart(e))}split(e,t=!1){let r=`[${xQa([...ece(this,zX)].join(""))}]+`,n=new RegExp(t?`(${r})`:r,"u");return e.split(n)}hasWhitespaceCharacter(e){let t=ece(this,zX);return Array.prototype.some.call(e,r=>t.has(r))}hasNonWhitespaceCharacter(e){let t=ece(this,zX);return Array.prototype.some.call(e,r=>!t.has(r))}isWhitespaceOnly(e){let t=ece(this,zX);return Array.prototype.every.call(e,r=>t.has(r))}};zX=new WeakMap;var FQa=GQa,Jyt=new FQa(` \r `),vTr=e=>e===""||e===zg||e===xl||e===bl;function ZQa(e,t,r){var n,a,o,l,A;let{node:f}=e;if(f.type==="JSXElement"&&zQa(f))return[r("openingElement"),r("closingElement")];let I=f.type==="JSXElement"?r("openingElement"):r("openingFragment"),C=f.type==="JSXElement"?r("closingElement"):r("closingFragment");if(f.children.length===1&&f.children[0].type==="JSXExpressionContainer"&&(f.children[0].expression.type==="TemplateLiteral"||f.children[0].expression.type==="TaggedTemplateExpression"))return[I,...e.map(r,"children"),C];f.children=f.children.map(be=>qQa(be)?{type:"JSXText",value:" ",raw:" "}:be);let b=f.children.some(nD),E=f.children.filter(be=>be.type==="JSXExpressionContainer").length>1,N=f.type==="JSXElement"&&f.openingElement.attributes.length>1,B=UZ(I)||b||N||E,F=e.parent.rootMarker==="mdx",Q=t.singleQuote?"{' '}":'{" "}',X=F?zg:lh([Q,bl]," "),ae=((a=(n=f.openingElement)==null?void 0:n.name)==null?void 0:a.name)==="fbt",ne=LQa(e,t,r,X,ae),ce=f.children.some(be=>N4e(be));for(let be=ne.length-2;be>=0;be--){let Se=ne[be]===""&&ne[be+1]==="",De=ne[be]===xl&&ne[be+1]===""&&ne[be+2]===xl,k=(ne[be]===bl||ne[be]===xl)&&ne[be+1]===""&&ne[be+2]===X,et=ne[be]===X&&ne[be+1]===""&&(ne[be+2]===bl||ne[be+2]===xl),ct=ne[be]===X&&ne[be+1]===""&&ne[be+2]===X,Me=ne[be]===bl&&ne[be+1]===""&&ne[be+2]===xl||ne[be]===xl&&ne[be+1]===""&&ne[be+2]===bl;De&&ce||Se||k||ct||Me?ne.splice(be,2):et&&ne.splice(be+1,2)}for(;ne.length>0&&vTr(U0(!1,ne,-1));)ne.pop();for(;ne.length>1&&vTr(ne[0])&&vTr(ne[1]);)ne.shift(),ne.shift();let fe=[""];for(let[be,Se]of ne.entries()){if(Se===X){if(be===1&&RHa(ne[be-1])){if(ne.length===2){fe.push([fe.pop(),Q]);continue}fe.push([Q,xl],"");continue}else if(be===ne.length-1){fe.push([fe.pop(),Q]);continue}else if(ne[be-1]===""&&ne[be-2]===xl){fe.push([fe.pop(),Q]);continue}}be%2===0?fe.push([fe.pop(),Se]):fe.push(Se,""),UZ(Se)&&(B=!0)}let ue=ce?Abi(fe):Ia(fe,{shouldBreak:!0});if(((o=t.cursorNode)==null?void 0:o.type)==="JSXText"&&f.children.includes(t.cursorNode)?ue=[Yyt,ue,Yyt]:((l=t.nodeBeforeCursor)==null?void 0:l.type)==="JSXText"&&f.children.includes(t.nodeBeforeCursor)?ue=[Yyt,ue]:((A=t.nodeAfterCursor)==null?void 0:A.type)==="JSXText"&&f.children.includes(t.nodeAfterCursor)&&(ue=[ue,Yyt]),F)return ue;let de=Ia([I,Pl([xl,ue]),xl,C]);return B?de:dme([Ia([I,...ne,C]),de])}function LQa(e,t,r,n,a){let o="",l=[o];function A(I){o=I,l.push([l.pop(),I])}function f(I){I!==""&&(o=I,l.push(I,""))}return e.each(({node:I,next:C})=>{if(I.type==="JSXText"){let b=UM(I);if(N4e(I)){let E=Jyt.split(b,!0);E[0]===""&&(E.shift(),/\n/u.test(E[0])?f(Ryi(a,E[1],I,C)):f(n),E.shift());let N;if(U0(!1,E,-1)===""&&(E.pop(),N=E.pop()),E.length===0)return;for(let[B,F]of E.entries())B%2===1?f(zg):A(F);N!==void 0?/\n/u.test(N)?f(Ryi(a,o,I,C)):f(n):f(Tyi(a,o,I,C))}else/\n/u.test(b)?b.match(/\n/gu).length>1&&f(xl):f(n)}else{let b=r();if(A(b),C&&N4e(C)){let E=Jyt.trim(UM(C)),[N]=Jyt.split(E);f(Tyi(a,N,I,C))}else f(xl)}},"children"),l}function Tyi(e,t,r,n){return e?"":r.type==="JSXElement"&&!r.closingElement||n?.type==="JSXElement"&&!n.closingElement?t.length===1?bl:xl:bl}function Ryi(e,t,r,n){return e?xl:t.length===1?r.type==="JSXElement"&&!r.closingElement||n?.type==="JSXElement"&&!n.closingElement?xl:bl:xl}var VQa=new Set(["ArrayExpression","TupleExpression","JSXAttribute","JSXElement","JSXExpressionContainer","JSXFragment","ExpressionStatement","CallExpression","OptionalCallExpression","ConditionalExpression","JsExpressionRoot"]);function PQa(e,t,r){let{parent:n}=e;if(VQa.has(n.type))return t;let a=e.match(void 0,l=>l.type==="ArrowFunctionExpression",b_,l=>l.type==="JSXExpressionContainer"),o=Eme(e,r);return Ia([o?"":lh("("),Pl([bl,t]),bl,o?"":lh(")")],{shouldBreak:a})}function WQa(e,t,r){let{node:n}=e,a=[];if(a.push(r("name")),n.value){let o;if(gV(n.value)){let l=UM(n.value),A=Zk(!1,Zk(!1,l.slice(1,-1),"'","'"),""",'"'),f=Xyi(A,t.jsxSingleQuote);A=f==='"'?Zk(!1,A,'"',"""):Zk(!1,A,"'","'"),o=e.call(()=>$X(e,pme(f+A+f),t),"value")}else o=r("value");a.push("=",o)}return a}function OQa(e,t,r){let{node:n}=e,a=(o,l)=>o.type==="JSXEmptyExpression"||!ig(o)&&(Vk(o)||e4(o)||o.type==="ArrowFunctionExpression"||o.type==="AwaitExpression"&&(a(o.argument,o)||o.argument.type==="JSXElement")||b_(o)||o.type==="ChainExpression"&&b_(o.expression)||o.type==="FunctionExpression"||o.type==="TemplateLiteral"||o.type==="TaggedTemplateExpression"||o.type==="DoExpression"||nD(l)&&(o.type==="ConditionalExpression"||gee(o)));return a(n.expression,e.parent)?Ia(["{",r("expression"),dee,"}"]):Ia(["{",Pl([bl,r("expression")]),bl,dee,"}"])}function MQa(e,t,r){var n,a;let{node:o}=e,l=ig(o.name)||ig(o.typeParameters)||ig(o.typeArguments);if(o.selfClosing&&o.attributes.length===0&&!l)return["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters")," />"];if(((n=o.attributes)==null?void 0:n.length)===1&&gV(o.attributes[0].value)&&!o.attributes[0].value.value.includes(` `)&&!l&&!ig(o.attributes[0]))return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters")," ",...e.map(r,"attributes"),o.selfClosing?" />":">"]);let A=(a=o.attributes)==null?void 0:a.some(I=>gV(I.value)&&I.value.value.includes(` -`)),f=t.singleAttributePerLine&&o.attributes.length>1?xl:zg;return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters"),Pl(e.map(()=>[f,r()],"attributes")),...HQa(o,t,l)],{shouldBreak:A})}function HQa(e,t,r){return e.selfClosing?[zg,"/>"]:YQa(e,t,r)?[">"]:[bl,">"]}function YQa(e,t,r){let n=e.attributes.length>0&&ig(U0(!1,e.attributes,-1),fA.Trailing);return e.attributes.length===0&&!r||(t.bracketSameLine||t.jsxBracketSameLine)&&(!r||e.attributes.length>0)&&!n}function QQa(e,t,r){let{node:n}=e,a=[];a.push(""),a}function XQa(e,t){let{node:r}=e,n=ig(r),a=ig(r,fA.Line),o=r.type==="JSXOpeningFragment";return[o?"<":""]}function JQa(e,t,r){let n=$X(e,ZQa(e,t,r),t);return PQa(e,n,t)}function UQa(e,t){let{node:r}=e,n=ig(r,fA.Line);return[N2(e,t,{indent:n}),n?xl:""]}function KQa(e,t,r){let{node:n}=e;return["{",e.call(({node:a})=>{let o=["...",r()];return!ig(a)||!Bbi(e)?o:[Pl([bl,$X(e,o,t)]),bl]},n.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function jQa(e,t,r){let{node:n}=e;if(n.type.startsWith("JSX"))switch(n.type){case"JSXAttribute":return WQa(e,t,r);case"JSXIdentifier":return n.name;case"JSXNamespacedName":return vC(":",[r("namespace"),r("name")]);case"JSXMemberExpression":return vC(".",[r("object"),r("property")]);case"JSXSpreadAttribute":case"JSXSpreadChild":return KQa(e,t,r);case"JSXExpressionContainer":return OQa(e,t,r);case"JSXFragment":case"JSXElement":return JQa(e,t,r);case"JSXOpeningElement":return MQa(e,t,r);case"JSXClosingElement":return QQa(e,t,r);case"JSXOpeningFragment":case"JSXClosingFragment":return XQa(e,t);case"JSXEmptyExpression":return UQa(e,t);case"JSXText":throw new Error("JSXText should be handled by JSXElement");default:throw new jRe(n,"JSX")}}function zQa(e){if(e.children.length===0)return!0;if(e.children.length>1)return!1;let t=e.children[0];return t.type==="JSXText"&&!N4e(t)}function N4e(e){return e.type==="JSXText"&&(Jyt.hasNonWhitespaceCharacter(UM(e))||!/\n/u.test(UM(e)))}function qQa(e){return e.type==="JSXExpressionContainer"&&gV(e.expression)&&e.expression.value===" "&&!ig(e.expression)}function $Qa(e){let{node:t,parent:r}=e;if(!nD(t)||!nD(r))return!1;let{index:n,siblings:a}=e,o;for(let l=n;l>0;l--){let A=a[l-1];if(!(A.type==="JSXText"&&!N4e(A))){o=A;break}}return o?.type==="JSXExpressionContainer"&&o.expression.type==="JSXEmptyExpression"&&obt(o.expression)}function eXa(e){return obt(e.node)||$Qa(e)}var Vbi=eXa,tXa=0;function Pbi(e,t,r){var n;let{node:a,parent:o,grandparent:l,key:A}=e,f=A!=="body"&&(o.type==="IfStatement"||o.type==="WhileStatement"||o.type==="SwitchStatement"||o.type==="DoWhileStatement"),I=a.operator==="|>"&&((n=e.root.extra)==null?void 0:n.__isUsingHackPipeline),C=MTr(e,r,t,!1,f);if(f)return C;if(I)return Ia(C);if(b_(o)&&o.callee===a||o.type==="UnaryExpression"||Yv(o)&&!o.computed)return Ia([Pl([bl,...C]),bl]);let b=o.type==="ReturnStatement"||o.type==="ThrowStatement"||o.type==="JSXExpressionContainer"&&l.type==="JSXAttribute"||a.operator!=="|"&&o.type==="JsExpressionRoot"||a.type!=="NGPipeExpression"&&(o.type==="NGRoot"&&t.parser==="__ng_binding"||o.type==="NGMicrosyntaxExpression"&&l.type==="NGMicrosyntax"&&l.body.length===1)||a===o.body&&o.type==="ArrowFunctionExpression"||a!==o.body&&o.type==="ForStatement"||o.type==="ConditionalExpression"&&l.type!=="ReturnStatement"&&l.type!=="ThrowStatement"&&!b_(l)||o.type==="TemplateLiteral",E=o.type==="AssignmentExpression"||o.type==="VariableDeclarator"||o.type==="ClassProperty"||o.type==="PropertyDefinition"||o.type==="TSAbstractPropertyDefinition"||o.type==="ClassPrivateProperty"||Iee(o),N=gee(a.left)&&tRr(a.operator,a.left.operator);if(b||D4e(a)&&!N||!D4e(a)&&E)return Ia(C);if(C.length===0)return"";let B=nD(a.right),F=C.findIndex(fe=>typeof fe!="string"&&!Array.isArray(fe)&&fe.type===KM),Q=C.slice(0,F===-1?1:F+1),X=C.slice(Q.length,B?-1:void 0),ae=Symbol("logicalChain-"+ ++tXa),ne=Ia([...Q,Pl(X)],{id:ae});if(!B)return ne;let ce=U0(!1,C,-1);return Ia([ne,abt(ce,{groupId:ae})])}function MTr(e,t,r,n,a){var o;let{node:l}=e;if(!gee(l))return[Ia(t())];let A=[];tRr(l.operator,l.left.operator)?A=e.call(Q=>MTr(Q,t,r,!0,a),"left"):A.push(Ia(t("left")));let f=D4e(l),I=(l.operator==="|>"||l.type==="NGPipeExpression"||rXa(e,r))&&!ice(r.originalText,l.right),C=!ig(l.right,fA.Leading,Ibi)&&ice(r.originalText,l.right),b=l.type==="NGPipeExpression"?"|":l.operator,E=l.type==="NGPipeExpression"&&l.arguments.length>0?Ia(Pl([bl,": ",vC([zg,": "],e.map(()=>oj(2,Ia(t())),"arguments"))])):"",N;if(f)N=[b," ",t("right"),E];else{let Q=b==="|>"&&((o=e.root.extra)!=null&&o.__isUsingHackPipeline)?e.call(X=>MTr(X,t,r,!0,a),"right"):t("right");if(r.experimentalOperatorPosition==="start"){let X="";if(C)switch(uce(Q)){case Aee:X=Q.splice(0,1)[0];break;case hee:X=Q.contents.splice(0,1)[0];break}N=[zg,X,b," ",Q,E]}else N=[I?zg:"",b,I?" ":zg,Q,E]}let{parent:B}=e,F=ig(l.left,fA.Trailing|fA.Line);if((F||!(a&&l.type==="LogicalExpression")&&B.type!==l.type&&l.left.type!==l.type&&l.right.type!==l.type)&&(N=Ia(N,{shouldBreak:F})),r.experimentalOperatorPosition==="start"?A.push(f||C?" ":"",N):A.push(I?"":" ",N),n&&ig(l)){let Q=iRr($X(e,A,r));return Q.type===cce?Q.parts:Array.isArray(Q)?Q:[Q]}return A}function D4e(e){return e.type!=="LogicalExpression"?!1:!!(e4(e.right)&&e.right.properties.length>0||Vk(e.right)&&e.right.elements.length>0||nD(e.right))}var Nyi=e=>e.type==="BinaryExpression"&&e.operator==="|";function rXa(e,t){return(t.parser==="__vue_expression"||t.parser==="__vue_ts_expression")&&Nyi(e.node)&&!e.hasAncestor(r=>!Nyi(r)&&r.type!=="JsExpressionRoot")}function nXa(e,t,r){let{node:n}=e;if(n.type.startsWith("NG"))switch(n.type){case"NGRoot":return[r("node"),ig(n.node)?" //"+PRe(n.node)[0].value.trimEnd():""];case"NGPipeExpression":return Pbi(e,t,r);case"NGChainedExpression":return Ia(vC([";",zg],e.map(()=>sXa(e)?r():["(",r(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGMicrosyntax":return e.map(()=>[e.isFirst?"":Dyi(e)?" ":[";",zg],r()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/iu.test(n.name)?n.name:JSON.stringify(n.name);case"NGMicrosyntaxExpression":return[r("expression"),n.alias===null?"":[" as ",r("alias")]];case"NGMicrosyntaxKeyedExpression":{let{index:a,parent:o}=e,l=Dyi(e)||(a===1&&(n.key.name==="then"||n.key.name==="else"||n.key.name==="as")||(a===2||a===3)&&(n.key.name==="else"&&o.body[a-1].type==="NGMicrosyntaxKeyedExpression"&&o.body[a-1].key.name==="then"||n.key.name==="track"))&&o.body[0].type==="NGMicrosyntaxExpression";return[r("key"),l?" ":": ",r("expression")]}case"NGMicrosyntaxLet":return["let ",r("key"),n.value===null?"":[" = ",r("value")]];case"NGMicrosyntaxAs":return[r("key")," as ",r("alias")];default:throw new jRe(n,"Angular")}}function Dyi({node:e,index:t}){return e.type==="NGMicrosyntaxKeyedExpression"&&e.key.name==="of"&&t===1}var iXa=_0(["CallExpression","OptionalCallExpression","AssignmentExpression"]);function sXa({node:e}){return DTr(e,iXa)}function Wbi(e,t,r){let{node:n}=e;return Ia([vC(zg,e.map(r,"decorators")),Obi(n,t)?xl:zg])}function oXa(e,t,r){return Mbi(e.node)?[vC(xl,e.map(r,"declaration","decorators")),xl]:""}function aXa(e,t,r){let{node:n,parent:a}=e,{decorators:o}=n;if(!H_(o)||Mbi(a)||Vbi(e))return"";let l=n.type==="ClassExpression"||n.type==="ClassDeclaration"||Obi(n,t);return[e.key==="declaration"&&$Ma(a)?xl:l?aj:"",vC(zg,e.map(r,"decorators")),zg]}function Obi(e,t){return e.decorators.some(r=>dO(t.originalText,BC(r)))}function Mbi(e){var t;if(e.type!=="ExportDefaultDeclaration"&&e.type!=="ExportNamedDeclaration"&&e.type!=="DeclareExportDeclaration")return!1;let r=(t=e.declaration)==null?void 0:t.decorators;return H_(r)&&nbt(e,r[0])}var $yt=class extends Error{name="ArgExpansionBailout"};function cXa(e,t,r){let{node:n}=e,a=qM(n);if(a.length===0)return["(",N2(e,t),")"];let o=a.length-1;if(gXa(a)){let b=["("];return zyt(e,(E,N)=>{b.push(r()),N!==o&&b.push(", ")}),b.push(")"),b}let l=!1,A=[];zyt(e,({node:b},E)=>{let N=r();E===o||(fee(b,t)?(l=!0,N=[N,",",xl,xl]):N=[N,",",zg]),A.push(N)});let f=!t.parser.startsWith("__ng_")&&n.type!=="ImportExpression"&&pee(t,"all")?",":"";function I(){return Ia(["(",Pl([zg,...A]),f,zg,")"],{shouldBreak:!0})}if(l||e.parent.type!=="Decorator"&&lHa(a))return I();if(uXa(a)){let b=A.slice(1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,0),{expandFirstArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])]:dme([["(",E,", ",...b,")"],["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])}if(lXa(a,A,t)){let b=A.slice(0,-1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,-1),{expandLastArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])]:dme([["(",...b,E,")"],["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])}let C=["(",Pl([bl,...A]),lh(f),bl,")"];return sbi(e)?C:Ia(C,{shouldBreak:A.some(UZ)||l})}function B4e(e,t=!1){return e4(e)&&(e.properties.length>0||ig(e))||Vk(e)&&(e.elements.length>0||ig(e))||e.type==="TSTypeAssertion"&&B4e(e.expression)||nj(e)&&B4e(e.expression)||e.type==="FunctionExpression"||e.type==="ArrowFunctionExpression"&&(!e.returnType||!e.returnType.typeAnnotation||e.returnType.typeAnnotation.type!=="TSTypeReference"||AXa(e.body))&&(e.body.type==="BlockStatement"||e.body.type==="ArrowFunctionExpression"&&B4e(e.body,!0)||e4(e.body)||Vk(e.body)||!t&&(b_(e.body)||e.body.type==="ConditionalExpression")||nD(e.body))||e.type==="DoExpression"||e.type==="ModuleExpression"}function lXa(e,t,r){var n,a;let o=U0(!1,e,-1);if(e.length===1){let A=U0(!1,t,-1);if((n=A.label)!=null&&n.embed&&((a=A.label)==null?void 0:a.hug)!==!1)return!0}let l=U0(!1,e,-2);return!ig(o,fA.Leading)&&!ig(o,fA.Trailing)&&B4e(o)&&(!l||l.type!==o.type)&&(e.length!==2||l.type!=="ArrowFunctionExpression"||!Vk(o))&&!(e.length>1&&pEi(o,r))}function uXa(e){if(e.length!==2)return!1;let[t,r]=e;return t.type==="ModuleExpression"&&dXa(r)?!0:!ig(t)&&(t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement")&&r.type!=="FunctionExpression"&&r.type!=="ArrowFunctionExpression"&&r.type!=="ConditionalExpression"&&Hbi(r)&&!B4e(r)}function Hbi(e){if(e.type==="ParenthesizedExpression")return Hbi(e.expression);if(nj(e)||e.type==="TypeCastExpression"){let{typeAnnotation:t}=e;if(t.type==="TypeAnnotation"&&(t=t.typeAnnotation),t.type==="TSArrayType"&&(t=t.elementType,t.type==="TSArrayType"&&(t=t.elementType)),t.type==="GenericTypeAnnotation"||t.type==="TSTypeReference"){let r=t.typeArguments??t.typeParameters;r?.params.length===1&&(t=r.params[0])}return $Tr(t)&&qX(e.expression,1)}return YRe(e)&&qM(e).length>1?!1:gee(e)?qX(e.left,1)&&qX(e.right,1):$yi(e)||qX(e)}function gXa(e){return e.length===2?kyi(e,0):e.length===3?e[0].type==="Identifier"&&kyi(e,1):!1}function kyi(e,t){let r=e[t],n=e[t+1];return r.type==="ArrowFunctionExpression"&&NG(r).length===0&&r.body.type==="BlockStatement"&&n.type==="ArrayExpression"&&!e.some(a=>ig(a))}function AXa(e){return e.type==="BlockStatement"&&(e.body.some(t=>t.type!=="EmptyStatement")||ig(e,fA.Dangling))}function dXa(e){return e.type==="ObjectExpression"&&e.properties.length===1&&Iee(e.properties[0])&&e.properties[0].key.type==="Identifier"&&e.properties[0].key.name==="type"&&gV(e.properties[0].value)&&e.properties[0].value.value==="module"}var HTr=cXa,pXa=e=>((e.type==="ChainExpression"||e.type==="TSNonNullExpression")&&(e=e.expression),b_(e)&&qM(e).length>0);function fXa(e,t,r){var n;let a=r("object"),o=Ybi(e,t,r),{node:l}=e,A=e.findAncestor(C=>!(Yv(C)||C.type==="TSNonNullExpression")),f=e.findAncestor(C=>!(C.type==="ChainExpression"||C.type==="TSNonNullExpression")),I=A&&(A.type==="NewExpression"||A.type==="BindExpression"||A.type==="AssignmentExpression"&&A.left.type!=="Identifier")||l.computed||l.object.type==="Identifier"&&l.property.type==="Identifier"&&!Yv(f)||(f.type==="AssignmentExpression"||f.type==="VariableDeclarator")&&(pXa(l.object)||((n=a.label)==null?void 0:n.memberChain));return k4e(a.label,[a,I?o:Ia(Pl([bl,o]))])}function Ybi(e,t,r){let n=r("property"),{node:a}=e,o=KZ(e);return a.computed?!a.property||uee(a.property)?[o,"[",n,"]"]:Ia([o,"[",Pl([bl,n]),bl,"]"]):[o,".",n]}function Qbi(e,t,r){if(e.node.type==="ChainExpression")return e.call(()=>Qbi(e,t,r),"expression");let{parent:n}=e,a=!n||n.type==="ExpressionStatement",o=[];function l(Me){let{originalText:je}=t,St=KRe(je,BC(Me));return je.charAt(St)===")"?St!==!1&&KTr(je,St+1):fee(Me,t)}function A(){let{node:Me}=e;if(Me.type==="ChainExpression")return e.call(A,"expression");if(b_(Me)&&(LRe(Me.callee)||b_(Me.callee))){let je=l(Me);o.unshift({node:Me,hasTrailingEmptyLine:je,printed:[$X(e,[KZ(e),fme(e,t,r),HTr(e,t,r)],t),je?xl:""]}),e.call(A,"callee")}else LRe(Me)?(o.unshift({node:Me,needsParens:Eme(e,t),printed:$X(e,Yv(Me)?Ybi(e,t,r):AEi(e,t,r),t)}),e.call(A,"object")):Me.type==="TSNonNullExpression"?(o.unshift({node:Me,printed:$X(e,"!",t)}),e.call(A,"expression")):o.unshift({node:Me,printed:r()})}let{node:f}=e;o.unshift({node:f,printed:[KZ(e),fme(e,t,r),HTr(e,t,r)]}),f.callee&&e.call(A,"callee");let I=[],C=[o[0]],b=1;for(;b0&&I.push(C);function N(Me){return/^[A-Z]|^[$_]+$/u.test(Me)}function B(Me){return Me.length<=t.tabWidth}function F(Me){var je;let St=(je=Me[1][0])==null?void 0:je.node.computed;if(Me[0].length===1){let Yt=Me[0][0].node;return Yt.type==="ThisExpression"||Yt.type==="Identifier"&&(N(Yt.name)||a&&B(Yt.name)||St)}let At=U0(!1,Me[0],-1).node;return Yv(At)&&At.property.type==="Identifier"&&(N(At.property.name)||St)}let Q=I.length>=2&&!ig(I[1][0].node)&&F(I);function X(Me){let je=Me.map(St=>St.printed);return Me.length>0&&U0(!1,Me,-1).needsParens?["(",...je,")"]:je}function ae(Me){return Me.length===0?"":Pl([xl,vC(xl,Me.map(X))])}let ne=I.map(X),ce=ne,fe=Q?3:2,ue=I.flat(),de=ue.slice(1,-1).some(Me=>ig(Me.node,fA.Leading))||ue.slice(0,-1).some(Me=>ig(Me.node,fA.Trailing))||I[fe]&&ig(I[fe][0].node,fA.Leading);if(I.length<=fe&&!de&&!I.some(Me=>U0(!1,Me,-1).hasTrailingEmptyLine))return sbi(e)?ce:Ia(ce);let be=U0(!1,I[Q?1:0],-1).node,Se=!b_(be)&&l(be),De=[X(I[0]),Q?I.slice(1,2).map(X):"",Se?xl:"",ae(I.slice(Q?2:1))],k=o.map(({node:Me})=>Me).filter(b_);function et(){let Me=U0(!1,U0(!1,I,-1),-1).node,je=U0(!1,ne,-1);return b_(Me)&&UZ(je)&&k.slice(0,-1).some(St=>St.arguments.some(T4e))}let ct;return de||k.length>2&&k.some(Me=>!Me.arguments.every(je=>qX(je)))||ne.slice(0,-1).some(UZ)||et()?ct=Ia(De):ct=[UZ(ce)||Se?aj:"",dme([ce,De])],k4e({memberChain:!0},ct)}var IXa=Qbi;function Xbi(e,t,r){var n;let{node:a}=e,o=a.type==="NewExpression",l=a.type==="ImportExpression",A=KZ(e),f=qM(a),I=f.length===1&&nbi(f[0],t.originalText);if(I||hXa(e)||sbt(a,e.parent)){let b=[];if(zyt(e,()=>{b.push(r())}),!(I&&(n=b[0].label)!=null&&n.embed))return[o?"new ":"",xyi(e,r),A,fme(e,t,r),"(",vC(", ",b),")"]}if(!l&&!o&&LRe(a.callee)&&!e.call(b=>Eme(b,t),"callee",...a.callee.type==="ChainExpression"?["expression"]:[]))return IXa(e,t,r);let C=[o?"new ":"",xyi(e,r),A,fme(e,t,r),HTr(e,t,r)];return l||b_(a.callee)?Ia(C):C}function xyi(e,t){let{node:r}=e;return r.type==="ImportExpression"?`import${r.phase?`.${r.phase}`:""}`:t("callee")}function hXa(e){let{node:t}=e;if(t.type!=="CallExpression"||t.optional||t.callee.type!=="Identifier")return!1;let r=qM(t);return t.callee.name==="require"?r.length===1&&gV(r[0])||r.length>1:t.callee.name==="define"&&e.parent.type==="ExpressionStatement"?r.length===1||r.length===2&&r[0].type==="ArrayExpression"||r.length===3&&gV(r[0])&&r[1].type==="ArrayExpression":!1}function x4e(e,t,r,n,a,o){let l=_Xa(e,t,r,n,o),A=o?r(o,{assignmentLayout:l}):"";switch(l){case"break-after-operator":return Ia([Ia(n),a,Ia(Pl([zg,A]))]);case"never-break-after-operator":return Ia([Ia(n),a," ",A]);case"fluid":{let f=Symbol("assignment");return Ia([Ia(n),a,Ia(Pl(zg),{id:f}),dee,abt(A,{groupId:f})])}case"break-lhs":return Ia([n,a," ",Ia(A)]);case"chain":return[Ia(n),a,zg,A];case"chain-tail":return[Ia(n),a,Pl([zg,A])];case"chain-tail-arrow-chain":return[Ia(n),a,A];case"only-left":return n}}function mXa(e,t,r){let{node:n}=e;return x4e(e,t,r,r("left"),[" ",n.operator],"right")}function CXa(e,t,r){return x4e(e,t,r,r("id")," =","init")}function _Xa(e,t,r,n,a){let{node:o}=e,l=o[a];if(!l)return"only-left";let A=!Uyt(l);if(e.match(Uyt,Jbi,C=>!A||C.type!=="ExpressionStatement"&&C.type!=="VariableDeclaration"))return A?l.type==="ArrowFunctionExpression"&&l.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!A&&Uyt(l.right)||ice(t.originalText,l))return"break-after-operator";if(o.type==="ImportAttribute"||l.type==="CallExpression"&&l.callee.name==="require"||t.parser==="json5"||t.parser==="jsonc"||t.parser==="json")return"never-break-after-operator";let f=THa(n);if(bXa(o)||BXa(o)||Ubi(o)&&f)return"break-lhs";let I=TXa(o,n,t);return e.call(()=>yXa(e,t,r,I),a)?"break-after-operator":EXa(o)?"break-lhs":!f&&(I||l.type==="TemplateLiteral"||l.type==="TaggedTemplateExpression"||l.type==="BooleanLiteral"||uee(l)||l.type==="ClassExpression")?"never-break-after-operator":"fluid"}function yXa(e,t,r,n){let a=e.node;if(gee(a)&&!D4e(a))return!0;switch(a.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"TSConditionalType":case"ConditionalTypeAnnotation":if(!t.experimentalTernaries&&!DXa(a))break;return!0;case"ConditionalExpression":{if(!t.experimentalTernaries){let{test:I}=a;return gee(I)&&!D4e(I)}let{consequent:A,alternate:f}=a;return A.type==="ConditionalExpression"||f.type==="ConditionalExpression"}case"ClassExpression":return H_(a.decorators)}if(n)return!1;let o=a,l=[];for(;;)if(o.type==="UnaryExpression"||o.type==="AwaitExpression"||o.type==="YieldExpression"&&o.argument!==null)o=o.argument,l.push("argument");else if(o.type==="TSNonNullExpression")o=o.expression,l.push("expression");else break;return!!(gV(o)||e.call(()=>Kbi(e,t,r),...l))}function bXa(e){if(Jbi(e)){let t=e.left||e.id;return t.type==="ObjectPattern"&&t.properties.length>2&&t.properties.some(r=>{var n;return Iee(r)&&(!r.shorthand||((n=r.value)==null?void 0:n.type)==="AssignmentPattern")})}return!1}function Uyt(e){return e.type==="AssignmentExpression"}function Jbi(e){return Uyt(e)||e.type==="VariableDeclarator"}function EXa(e){let t=vXa(e);if(H_(t)){let r=e.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(t.length>1&&t.some(n=>n[r]||n.default))return!0}return!1}var SXa=_0(["TSTypeAliasDeclaration","TypeAlias"]);function vXa(e){var t;if(SXa(e))return(t=e.typeParameters)==null?void 0:t.params}function BXa(e){if(e.type!=="VariableDeclarator")return!1;let{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;let r=Gyi(t.typeAnnotation);return H_(r)&&r.length>1&&r.some(n=>H_(Gyi(n))||n.type==="TSConditionalType")}function Ubi(e){var t;return e.type==="VariableDeclarator"&&((t=e.init)==null?void 0:t.type)==="ArrowFunctionExpression"}var wXa=_0(["TSTypeReference","GenericTypeAnnotation"]);function Gyi(e){var t;if(wXa(e))return(t=e.typeArguments??e.typeParameters)==null?void 0:t.params}function Kbi(e,t,r,n=!1){var a;let{node:o}=e,l=()=>Kbi(e,t,r,!0);if(o.type==="ChainExpression"||o.type==="TSNonNullExpression")return e.call(l,"expression");if(b_(o)){if((a=Xbi(e,t,r).label)!=null&&a.memberChain)return!1;let A=qM(o);return!(A.length===0||A.length===1&&eRr(A[0],t))||RXa(o,r)?!1:e.call(l,"callee")}return Yv(o)?e.call(l,"object"):n&&(o.type==="Identifier"||o.type==="ThisExpression")}function TXa(e,t,r){return Iee(e)?(t=iRr(t),typeof t=="string"&&WRe(t)1)return!0;if(r.length===1){let a=r[0];if(sce(a)||rRr(a)||a.type==="TSTypeLiteral"||a.type==="ObjectTypeAnnotation")return!0}let n=e.typeParameters?"typeParameters":"typeArguments";if(UZ(t(n)))return!0}return!1}function NXa(e){var t;return(t=e.typeParameters??e.typeArguments)==null?void 0:t.params}function DXa(e){function t(r){switch(r.type){case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"TSFunctionType":return!!r.typeParameters;case"TSTypeReference":return!!(r.typeArguments??r.typeParameters);default:return!1}}return t(e.checkType)||t(e.extendsType)}function Sme(e,t,r,n,a){let o=e.node,l=NG(o),A=a?fme(e,r,t):"";if(l.length===0)return[A,"(",N2(e,r,{filter:N=>t4(r.originalText,BC(N))===")"}),")"];let{parent:f}=e,I=sbt(f),C=jbi(o),b=[];if(fHa(e,(N,B)=>{let F=B===l.length-1;F&&o.rest&&b.push("..."),b.push(t()),!F&&(b.push(","),I||C?b.push(" "):fee(l[B],r)?b.push(xl,xl):b.push(zg))}),n&&!xXa(e)){if(UZ(A)||UZ(b))throw new $yt;return Ia([xTr(A),"(",xTr(b),")"])}let E=l.every(N=>!H_(N.decorators));return C&&E?[A,"(",...b,")"]:I?[A,"(",...b,")"]:(ebi(f)||nHa(f)||f.type==="TypeAlias"||f.type==="UnionTypeAnnotation"||f.type==="IntersectionTypeAnnotation"||f.type==="FunctionTypeAnnotation"&&f.returnType===o)&&l.length===1&&l[0].name===null&&o.this!==l[0]&&l[0].typeAnnotation&&o.typeParameters===null&&$Tr(l[0].typeAnnotation)&&!o.rest?r.arrowParens==="always"||o.type==="HookTypeAnnotation"?["(",...b,")"]:b:[A,"(",Pl([bl,...b]),lh(!pHa(o)&&pee(r,"all")?",":""),bl,")"]}function jbi(e){if(!e)return!1;let t=NG(e);if(t.length!==1)return!1;let[r]=t;return!ig(r)&&(r.type==="ObjectPattern"||r.type==="ArrayPattern"||r.type==="Identifier"&&r.typeAnnotation&&(r.typeAnnotation.type==="TypeAnnotation"||r.typeAnnotation.type==="TSTypeAnnotation")&&nce(r.typeAnnotation.typeAnnotation)||r.type==="FunctionTypeParam"&&nce(r.typeAnnotation)&&r!==e.rest||r.type==="AssignmentPattern"&&(r.left.type==="ObjectPattern"||r.left.type==="ArrayPattern")&&(r.right.type==="Identifier"||e4(r.right)&&r.right.properties.length===0||Vk(r.right)&&r.right.elements.length===0))}function kXa(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}function zRe(e,t){var r;let n=kXa(e);if(!n)return!1;let a=(r=e.typeParameters)==null?void 0:r.params;if(a){if(a.length>1)return!1;if(a.length===1){let o=a[0];if(o.constraint||o.default)return!1}}return NG(e).length===1&&(nce(n)||UZ(t))}function xXa(e){return e.match(t=>t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement",(t,r)=>{if(t.type==="CallExpression"&&r==="arguments"&&t.arguments.length===1&&t.callee.type==="CallExpression"){let n=t.callee.callee;return n.type==="Identifier"||n.type==="MemberExpression"&&!n.computed&&n.object.type==="Identifier"&&n.property.type==="Identifier"}return!1},(t,r)=>t.type==="VariableDeclarator"&&r==="init"||t.type==="ExportDefaultDeclaration"&&r==="declaration"||t.type==="TSExportAssignment"&&r==="expression"||t.type==="AssignmentExpression"&&r==="right"&&t.left.type==="MemberExpression"&&t.left.object.type==="Identifier"&&t.left.object.name==="module"&&t.left.property.type==="Identifier"&&t.left.property.name==="exports",t=>t.type!=="VariableDeclaration"||t.kind==="const"&&t.declarations.length===1)}function GXa(e){let t=NG(e);return t.length>1&&t.some(r=>r.type==="TSParameterProperty")}var FXa=_0(["VoidTypeAnnotation","TSVoidKeyword","NullLiteralTypeAnnotation","TSNullKeyword"]),ZXa=_0(["ObjectTypeAnnotation","TSTypeLiteral","GenericTypeAnnotation","TSTypeReference"]);function LXa(e){let{types:t}=e;if(t.some(n=>ig(n)))return!1;let r=t.find(n=>ZXa(n));return r?t.every(n=>n===r||FXa(n)):!1}function zbi(e){return $Tr(e)||nce(e)?!0:sce(e)?LXa(e):!1}function VXa(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e),"opaque type ",r("id"),r("typeParameters")];return a.supertype&&o.push(": ",r("supertype")),a.impltype&&o.push(" = ",r("impltype")),o.push(n),o}function qbi(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e)];o.push("type ",r("id"),r("typeParameters"));let l=a.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[x4e(e,t,r,o," =",l),n]}function $bi(e,t,r){let n=!1;return Ia(e.map(({isFirst:a,previous:o,node:l,index:A})=>{let f=r();if(a)return f;let I=nce(l),C=nce(o);return C&&I?[" & ",n?Pl(f):f]:!C&&!I?t.experimentalOperatorPosition==="start"?Pl([zg,"& ",f]):Pl([" &",zg,f]):(A>1&&(n=!0),[" & ",A>1?Pl(f):f])},"types"))}function eEi(e,t,r){let{node:n}=e,{parent:a}=e,o=a.type!=="TypeParameterInstantiation"&&(!oce(a)||!t.experimentalTernaries)&&a.type!=="TSTypeParameterInstantiation"&&a.type!=="GenericTypeAnnotation"&&a.type!=="TSTypeReference"&&a.type!=="TSTypeAssertion"&&a.type!=="TupleTypeAnnotation"&&a.type!=="TSTupleType"&&!(a.type==="FunctionTypeParam"&&!a.name&&e.grandparent.this!==a)&&!((a.type==="TypeAlias"||a.type==="VariableDeclarator"||a.type==="TSTypeAliasDeclaration")&&ice(t.originalText,n)),l=zbi(n),A=e.map(C=>{let b=r();return l||(b=oj(2,b)),$X(C,b,t)},"types");if(l)return vC(" | ",A);let f=o&&!ice(t.originalText,n),I=[lh([f?zg:"","| "]),vC([zg,"| "],A)];return Eme(e,t)?Ia([Pl(I),bl]):(a.type==="TupleTypeAnnotation"||a.type==="TSTupleType")&&a[a.type==="TupleTypeAnnotation"&&a.types?"types":"elementTypes"].length>1?Ia([Pl([lh(["(",bl]),I]),bl,lh(")")]):Ia(o?Pl(I):I)}function PXa(e){var t;let{node:r,parent:n}=e;return r.type==="FunctionTypeAnnotation"&&(ebi(n)||!((n.type==="ObjectTypeProperty"||n.type==="ObjectTypeInternalSlot")&&!n.variance&&!n.optional&&nbt(n,r)||n.type==="ObjectTypeCallProperty"||((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareFunction"))}function tEi(e,t,r){let{node:n}=e,a=[cbt(e)];(n.type==="TSConstructorType"||n.type==="TSConstructSignatureDeclaration")&&a.push("new ");let o=Sme(e,r,t,!1,!0),l=[];return n.type==="FunctionTypeAnnotation"?l.push(PXa(e)?" => ":": ",r("returnType")):l.push(Lk(e,r,n.returnType?"returnType":"typeAnnotation")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function rEi(e,t,r){return[r("objectType"),KZ(e),"[",r("indexType"),"]"]}function nEi(e,t,r){return["infer ",r("typeParameter")]}function Fyi(e,t,r){let{node:n}=e;return[n.postfix?"":r,Lk(e,t),n.postfix?r:""]}function iEi(e,t,r){let{node:n}=e;return["...",...n.type==="TupleTypeSpreadElement"&&n.label?[r("label"),": "]:[],r("typeAnnotation")]}function sEi(e,t,r){let{node:n}=e;return[n.variance?r("variance"):"",r("label"),n.optional?"?":"",": ",r("elementType")]}var WXa=new WeakSet;function Lk(e,t,r="typeAnnotation"){let{node:{[r]:n}}=e;if(!n)return"";let a=!1;if(n.type==="TSTypeAnnotation"||n.type==="TypeAnnotation"){let o=e.call(oEi,r);(o==="=>"||o===":"&&ig(n,fA.Leading))&&(a=!0),WXa.add(n)}return a?[" ",t(r)]:t(r)}var oEi=e=>e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>(r==="returnType"||r==="typeAnnotation")&&(t.type==="TSFunctionType"||t.type==="TSConstructorType"))?"=>":e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>r==="typeAnnotation"&&(t.type==="TSJSDocNullableType"||t.type==="TSJSDocNonNullableType"||t.type==="TSTypePredicate"))||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareFunction")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareHook")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="bound"&&t.type==="TypeParameter"&&t.usesExtendsBound)?"":":";function aEi(e,t,r){let n=oEi(e);return n?[n," ",r("typeAnnotation")]:r("typeAnnotation")}function cEi(e){return[e("elementType"),"[]"]}function lEi({node:e},t){let r=e.type==="TSTypeQuery"?"exprName":"argument",n=e.type==="TypeofTypeAnnotation"||e.typeArguments?"typeArguments":"typeParameters";return["typeof ",t(r),t(n)]}function uEi(e,t){let{node:r}=e;return[r.type==="TSTypePredicate"&&r.asserts?"asserts ":r.type==="TypePredicate"&&r.kind?`${r.kind} `:"",t("parameterName"),r.typeAnnotation?[" is ",Lk(e,t)]:""]}function KZ(e){let{node:t}=e;return!t.optional||t.type==="Identifier"&&t===e.parent.key?"":b_(t)||Yv(t)&&t.computed||t.type==="OptionalIndexedAccessType"?"?.":"?"}function gEi(e){return e.node.definite||e.match(void 0,(t,r)=>r==="id"&&t.type==="VariableDeclarator"&&t.definite)?"!":""}var OXa=new Set(["DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclareOpaqueType","DeclareTypeAlias","DeclareEnum","DeclareInterface"]);function AV(e){let{node:t}=e;return t.declare||OXa.has(t.type)&&e.parent.type!=="DeclareExportDeclaration"?"declare ":""}var MXa=new Set(["TSAbstractMethodDefinition","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function cbt({node:e}){return e.abstract||MXa.has(e.type)?"abstract ":""}function fme(e,t,r){let n=e.node;return n.typeArguments?r("typeArguments"):n.typeParameters?r("typeParameters"):""}function AEi(e,t,r){return["::",r("callee")]}function tce(e,t,r){return e.type==="EmptyStatement"?";":e.type==="BlockStatement"||r?[" ",t]:Pl([zg,t])}function dEi(e,t){return["...",t("argument"),Lk(e,t)]}function ebt(e){return e.accessibility?e.accessibility+" ":""}function HXa(e,t,r,n){let{node:a}=e,o=a.inexact?"...":"";return ig(a,fA.Dangling)?Ia([r,o,N2(e,t,{indent:!0}),bl,n]):[r,o,n]}function dRr(e,t,r){let{node:n}=e,a=[],o=n.type==="TupleExpression"?"#[":"[",l="]",A=n.type==="TupleTypeAnnotation"&&n.types?"types":n.type==="TSTupleType"||n.type==="TupleTypeAnnotation"?"elementTypes":"elements",f=n[A];if(f.length===0)a.push(HXa(e,t,o,l));else{let I=U0(!1,f,-1),C=I?.type!=="RestElement"&&!n.inexact,b=I===null,E=Symbol("array"),N=!t.__inJestEach&&f.length>1&&f.every((Q,X,ae)=>{let ne=Q?.type;if(!Vk(Q)&&!e4(Q))return!1;let ce=ae[X+1];if(ce&&ne!==ce.type)return!1;let fe=Vk(Q)?"elements":"properties";return Q[fe]&&Q[fe].length>1}),B=pEi(n,t),F=C?b?",":pee(t)?B?lh(",","",{groupId:E}):lh(","):"":"";a.push(Ia([o,Pl([bl,B?QXa(e,t,r,F):[YXa(e,t,A,n.inexact,r),F],N2(e,t)]),bl,l],{shouldBreak:N,id:E}))}return a.push(KZ(e),Lk(e,r)),a}function pEi(e,t){return Vk(e)&&e.elements.length>1&&e.elements.every(r=>r&&(uee(r)||qyi(r)&&!ig(r.argument))&&!ig(r,fA.Trailing|fA.Line,n=>!dO(t.originalText,ZS(n),{backwards:!0})))}function fEi({node:e},{originalText:t}){let r=a=>JTr(t,UTr(t,a)),n=a=>t[a]===","?a:n(r(a+1));return KTr(t,n(BC(e)))}function YXa(e,t,r,n,a){let o=[];return e.each(({node:l,isLast:A})=>{o.push(l?Ia(a()):""),(!A||n)&&o.push([",",zg,l&&fEi(e,t)?bl:""])},r),n&&o.push("..."),o}function QXa(e,t,r,n){let a=[];return e.each(({isLast:o,next:l})=>{a.push([r(),o?n:","]),o||a.push(fEi(e,t)?[xl,xl]:ig(l,fA.Leading|fA.Line)?xl:zg)},"elements"),Abi(a)}var XXa=/^[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/,JXa=e=>XXa.test(e),UXa=JXa;function KXa(e){return e.length===1?e:e.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/u,"$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/u,"$1").replace(/^([+-])?\./u,"$10.").replace(/(\.\d+?)0+(?=e|$)/u,"$1").replace(/\.(?=e|$)/u,"")}var QRe=KXa,Kyt=new WeakMap;function IEi(e){return/^(?:\d+|\d+\.\d+)$/u.test(e)}function Zyi(e,t){return t.parser==="json"||t.parser==="jsonc"||!gV(e.key)||HRe(UM(e.key),t).slice(1,-1)!==e.key.value?!1:!!(UXa(e.key.value)&&!(t.parser==="babel-ts"&&e.type==="ClassProperty"||t.parser==="typescript"&&e.type==="PropertyDefinition")||IEi(e.key.value)&&String(Number(e.key.value))===e.key.value&&e.type!=="ImportAttribute"&&(t.parser==="babel"||t.parser==="acorn"||t.parser==="espree"||t.parser==="meriyah"||t.parser==="__babel_estree"))}function jXa(e,t){let{key:r}=e.node;return(r.type==="Identifier"||uee(r)&&IEi(QRe(UM(r)))&&String(r.value)===QRe(UM(r))&&!(t.parser==="typescript"||t.parser==="babel-ts"))&&(t.parser==="json"||t.parser==="jsonc"||t.quoteProps==="consistent"&&Kyt.get(e.parent))}function G4e(e,t,r){let{node:n}=e;if(n.computed)return["[",r("key"),"]"];let{parent:a}=e,{key:o}=n;if(t.quoteProps==="consistent"&&!Kyt.has(a)){let l=e.siblings.some(A=>!A.computed&&gV(A.key)&&!Zyi(A,t));Kyt.set(a,l)}if(jXa(e,t)){let l=HRe(JSON.stringify(o.type==="Identifier"?o.name:o.value.toString()),t);return e.call(A=>$X(A,l,t),"key")}return Zyi(n,t)&&(t.quoteProps==="as-needed"||t.quoteProps==="consistent"&&!Kyt.get(a))?e.call(l=>$X(l,/^\d/u.test(o.value)?QRe(o.value):o.value,t),"key"):r("key")}function BTr(e,t,r){let{node:n}=e;return n.shorthand?r("value"):x4e(e,t,r,G4e(e,t,r),":","value")}var zXa=({node:e,key:t,parent:r})=>t==="value"&&e.type==="FunctionExpression"&&(r.type==="ObjectMethod"||r.type==="ClassMethod"||r.type==="ClassPrivateMethod"||r.type==="MethodDefinition"||r.type==="TSAbstractMethodDefinition"||r.type==="TSDeclareMethod"||r.type==="Property"&&ibt(r));function hEi(e,t,r,n){if(zXa(e))return pRr(e,r,t);let{node:a}=e,o=!1;if((a.type==="FunctionDeclaration"||a.type==="FunctionExpression")&&n!=null&&n.expandLastArg){let{parent:C}=e;b_(C)&&(qM(C).length>1||NG(a).every(b=>b.type==="Identifier"&&!b.typeAnnotation))&&(o=!0)}let l=[AV(e),a.async?"async ":"",`function${a.generator?"*":""} `,a.id?t("id"):""],A=Sme(e,t,r,o),f=lbt(e,t),I=zRe(a,f);return l.push(fme(e,r,t),Ia([I?Ia(A):A,f]),a.body?" ":"",t("body")),r.semi&&(a.declare||!a.body)&&l.push(";"),l}function YTr(e,t,r){let{node:n}=e,{kind:a}=n,o=n.value||n,l=[];return!a||a==="init"||a==="method"||a==="constructor"?o.async&&l.push("async "):(jTr.ok(a==="get"||a==="set"),l.push(a," ")),o.generator&&l.push("*"),l.push(G4e(e,t,r),n.optional||n.key.optional?"?":"",n===o?pRr(e,t,r):r("value")),l}function pRr(e,t,r){let{node:n}=e,a=Sme(e,r,t),o=lbt(e,r),l=GXa(n),A=zRe(n,o),f=[fme(e,t,r),Ia([l?Ia(a,{shouldBreak:!0}):A?Ia(a):a,o])];return n.body?f.push(" ",r("body")):f.push(t.semi?";":""),f}function qXa(e){let t=NG(e);return t.length===1&&!e.typeParameters&&!ig(e,fA.Dangling)&&t[0].type==="Identifier"&&!t[0].typeAnnotation&&!ig(t[0])&&!t[0].optional&&!e.predicate&&!e.returnType}function mEi(e,t){if(t.arrowParens==="always")return!1;if(t.arrowParens==="avoid"){let{node:r}=e;return qXa(r)}return!1}function lbt(e,t){let{node:r}=e,n=[Lk(e,t,"returnType")];return r.predicate&&n.push(t("predicate")),n}function CEi(e,t,r){let{node:n}=e,a=t.semi?";":"",o=[];if(n.argument){let f=r("argument");t4a(t,n.argument)?f=["(",Pl([xl,f]),xl,")"]:(gee(n.argument)||n.argument.type==="SequenceExpression"||t.experimentalTernaries&&n.argument.type==="ConditionalExpression"&&(n.argument.consequent.type==="ConditionalExpression"||n.argument.alternate.type==="ConditionalExpression"))&&(f=Ia([lh("("),Pl([bl,f]),bl,lh(")")])),o.push(" ",f)}let l=ig(n,fA.Dangling),A=a&&l&&ig(n,fA.Last|fA.Line);return A&&o.push(a),l&&o.push(" ",N2(e,t)),A||o.push(a),o}function $Xa(e,t,r){return["return",CEi(e,t,r)]}function e4a(e,t,r){return["throw",CEi(e,t,r)]}function t4a(e,t){if(ice(e.originalText,t)||ig(t,fA.Leading,r=>ace(e.originalText,ZS(r),BC(r)))&&!nD(t))return!0;if(zTr(t)){let r=t,n;for(;n=qMa(r);)if(r=n,ice(e.originalText,r))return!0}return!1}var wTr=new WeakMap;function _Ei(e){return wTr.has(e)||wTr.set(e,e.type==="ConditionalExpression"&&!JZ(e,t=>t.type==="ObjectExpression")),wTr.get(e)}var yEi=e=>e.type==="SequenceExpression";function r4a(e,t,r,n={}){let a=[],o,l=[],A=!1,f=!n.expandLastArg&&e.node.body.type==="ArrowFunctionExpression",I;(function X(){let{node:ae}=e,ne=n4a(e,t,r,n);if(a.length===0)a.push(ne);else{let{leading:ce,trailing:fe}=Lbi(e,t);a.push([ce,ne]),l.unshift(fe)}f&&(A||(A=ae.returnType&&NG(ae).length>0||ae.typeParameters||NG(ae).some(ce=>ce.type!=="Identifier"))),!f||ae.body.type!=="ArrowFunctionExpression"?(o=r("body",n),I=ae.body):e.call(X,"body")})();let C=!ice(t.originalText,I)&&(yEi(I)||i4a(I,o,t)||!A&&_Ei(I)),b=e.key==="callee"&&YRe(e.parent),E=Symbol("arrow-chain"),N=s4a(e,n,{signatureDocs:a,shouldBreak:A}),B=!1,F=!1,Q=!1;return f&&(b||n.assignmentLayout)&&(F=!0,Q=!ig(e.node,fA.Leading&fA.Line),B=n.assignmentLayout==="chain-tail-arrow-chain"||b&&!C),o=o4a(e,t,n,{bodyDoc:o,bodyComments:l,functionBody:I,shouldPutBodyOnSameLine:C}),Ia([Ia(F?Pl([Q?bl:"",N]):N,{shouldBreak:B,id:E})," =>",f?abt(o,{groupId:E}):Ia(o),f&&b?lh(bl,"",{groupId:E}):""])}function n4a(e,t,r,n){let{node:a}=e,o=[];if(a.async&&o.push("async "),mEi(e,t))o.push(r(["params",0]));else{let A=n.expandLastArg||n.expandFirstArg,f=lbt(e,r);if(A){if(UZ(f))throw new $yt;f=Ia(xTr(f))}o.push(Ia([Sme(e,r,t,A,!0),f]))}let l=N2(e,t,{filter(A){let f=KRe(t.originalText,BC(A));return f!==!1&&t.originalText.slice(f,f+2)==="=>"}});return l&&o.push(" ",l),o}function i4a(e,t,r){var n,a;return Vk(e)||e4(e)||e.type==="ArrowFunctionExpression"||e.type==="DoExpression"||e.type==="BlockStatement"||nD(e)||((n=t.label)==null?void 0:n.hug)!==!1&&(((a=t.label)==null?void 0:a.embed)||nbi(e,r.originalText))}function s4a(e,t,{signatureDocs:r,shouldBreak:n}){if(r.length===1)return r[0];let{parent:a,key:o}=e;return o!=="callee"&&YRe(a)||gee(a)?Ia([r[0]," =>",Pl([zg,vC([" =>",zg],r.slice(1))])],{shouldBreak:n}):o==="callee"&&YRe(a)||t.assignmentLayout?Ia(vC([" =>",zg],r),{shouldBreak:n}):Ia(Pl(vC([" =>",zg],r)),{shouldBreak:n})}function o4a(e,t,r,{bodyDoc:n,bodyComments:a,functionBody:o,shouldPutBodyOnSameLine:l}){let{node:A,parent:f}=e,I=r.expandLastArg&&pee(t,"all")?lh(","):"",C=(r.expandLastArg||f.type==="JSXExpressionContainer")&&!ig(A)?bl:"";return l&&_Ei(o)?[" ",Ia([lh("","("),Pl([bl,n]),lh("",")"),I,C]),a]:(yEi(o)&&(n=Ia(["(",Pl([bl,n]),bl,")"])),l?[" ",n,a]:[Pl([zg,n,a]),I,C])}var a4a=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let a=t[n];if(r(a,n,t))return a}}},c4a=a4a;function QTr(e,t,r,n){let{node:a}=e,o=[],l=c4a(!1,a[n],A=>A.type!=="EmptyStatement");return e.each(({node:A})=>{A.type!=="EmptyStatement"&&(o.push(r()),A!==l&&(o.push(xl),fee(A,t)&&o.push(xl)))},n),o}function bEi(e,t,r){let n=l4a(e,t,r),{node:a,parent:o}=e;if(a.type==="Program"&&o?.type!=="ModuleExpression")return n?[n,xl]:"";let l=[];if(a.type==="StaticBlock"&&l.push("static "),l.push("{"),n)l.push(Pl([xl,n]),xl);else{let A=e.grandparent;o.type==="ArrowFunctionExpression"||o.type==="FunctionExpression"||o.type==="FunctionDeclaration"||o.type==="ComponentDeclaration"||o.type==="HookDeclaration"||o.type==="ObjectMethod"||o.type==="ClassMethod"||o.type==="ClassPrivateMethod"||o.type==="ForStatement"||o.type==="WhileStatement"||o.type==="DoWhileStatement"||o.type==="DoExpression"||o.type==="ModuleExpression"||o.type==="CatchClause"&&!A.finalizer||o.type==="TSModuleDeclaration"||a.type==="StaticBlock"||l.push(xl)}return l.push("}"),l}function l4a(e,t,r){let{node:n}=e,a=H_(n.directives),o=n.body.some(f=>f.type!=="EmptyStatement"),l=ig(n,fA.Dangling);if(!a&&!o&&!l)return"";let A=[];return a&&(A.push(QTr(e,t,r,"directives")),(o||l)&&(A.push(xl),fee(U0(!1,n.directives,-1),t)&&A.push(xl))),o&&A.push(QTr(e,t,r,"body")),l&&A.push(N2(e,t)),A}function u4a(e){let t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}var EEi=u4a;function g4a(e){switch(e){case null:return"";case"PlusOptional":return"+?";case"MinusOptional":return"-?";case"Optional":return"?"}}function A4a(e,t,r){let{node:n}=e;return Ia([n.variance?r("variance"):"","[",Pl([r("keyTparam")," in ",r("sourceType")]),"]",g4a(n.optional),": ",r("propType")])}function SEi(e,t){return e==="+"||e==="-"?e+t:t}function d4a(e,t,r){let{node:n}=e,a=t.objectWrap==="preserve"&&ace(t.originalText,ZS(n),ZS(n.typeParameter));return Ia(["{",Pl([t.bracketSpacing?zg:bl,Ia([r("typeParameter"),n.optional?SEi(n.optional,"?"):"",n.typeAnnotation?": ":"",r("typeAnnotation")]),t.semi?lh(";"):""]),N2(e,t),t.bracketSpacing?zg:bl,"}"],{shouldBreak:a})}var fRr=EEi("typeParameters");function p4a(e,t,r){let{node:n}=e;return NG(n).length===1&&n.type.startsWith("TS")&&!n[r][0].constraint&&e.parent.type==="ArrowFunctionExpression"&&!(t.filepath&&/\.ts$/u.test(t.filepath))}function w4e(e,t,r,n){let{node:a}=e;if(!a[n])return"";if(!Array.isArray(a[n]))return r(n);let o=sbt(e.grandparent),l=e.match(f=>!(f[n].length===1&&nce(f[n][0])),void 0,(f,I)=>I==="typeAnnotation",f=>f.type==="Identifier",Ubi);if(a[n].length===0||!l&&(o||a[n].length===1&&(a[n][0].type==="NullableTypeAnnotation"||zbi(a[n][0]))))return["<",vC(", ",e.map(r,n)),f4a(e,t),">"];let A=a.type==="TSTypeParameterInstantiation"?"":p4a(e,t,n)?",":pee(t)?lh(","):"";return Ia(["<",Pl([bl,vC([",",zg],e.map(r,n))]),A,bl,">"],{id:fRr(a)})}function f4a(e,t){let{node:r}=e;if(!ig(r,fA.Dangling))return"";let n=!ig(r,fA.Line),a=N2(e,t,{indent:!n});return n?a:[a,xl]}function vEi(e,t,r){let{node:n,parent:a}=e,o=[n.const?"const ":""],l=n.type==="TSTypeParameter"?r("name"):n.name;if(a.type==="TSMappedType")return a.readonly&&o.push(SEi(a.readonly,"readonly")," "),o.push("[",l),n.constraint&&o.push(" in ",r("constraint")),a.nameType&&o.push(" as ",e.callParent(()=>r("nameType"))),o.push("]"),o;if(n.variance&&o.push(r("variance")),n.in&&o.push("in "),n.out&&o.push("out "),o.push(l),n.bound&&(n.usesExtendsBound&&o.push(" extends "),o.push(Lk(e,r,"bound"))),n.constraint){let A=Symbol("constraint");o.push(" extends",Ia(Pl(zg),{id:A}),dee,abt(r("constraint"),{groupId:A}))}return n.default&&o.push(" = ",r("default")),Ia(o)}var BEi=_0(["ClassProperty","PropertyDefinition","ClassPrivateProperty","ClassAccessorProperty","AccessorProperty","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function wEi(e,t,r){let{node:n}=e,a=[AV(e),cbt(e),"class"],o=ig(n.id,fA.Trailing)||ig(n.typeParameters,fA.Trailing)||ig(n.superClass)||H_(n.extends)||H_(n.mixins)||H_(n.implements),l=[],A=[];if(n.id&&l.push(" ",r("id")),l.push(r("typeParameters")),n.superClass){let C=[m4a(e,t,r),r(n.superTypeArguments?"superTypeArguments":"superTypeParameters")],b=e.call(E=>["extends ",$X(E,C,t)],"superClass");o?A.push(zg,Ia(b)):A.push(" ",b)}else A.push(TTr(e,t,r,"extends"));A.push(TTr(e,t,r,"mixins"),TTr(e,t,r,"implements"));let f;if(o){let C;REi(n)?C=[...l,Pl(A)]:C=Pl([...l,A]),f=TEi(n),a.push(Ia(C,{id:f}))}else a.push(...l,...A);let I=n.body;return o&&H_(I.body)?a.push(lh(xl," ",{groupId:f})):a.push(" "),a.push(r("body")),a}var TEi=EEi("heritageGroup");function I4a(e){return lh(xl,"",{groupId:TEi(e)})}function h4a(e){return["extends","mixins","implements"].reduce((t,r)=>t+(Array.isArray(e[r])?e[r].length:0),e.superClass?1:0)>1}function REi(e){return e.typeParameters&&!ig(e.typeParameters,fA.Trailing|fA.Line)&&!h4a(e)}function TTr(e,t,r,n){let{node:a}=e;if(!H_(a[n]))return"";let o=N2(e,t,{marker:n});return[REi(a)?lh(" ",zg,{groupId:fRr(a.typeParameters)}):zg,o,o&&xl,n,Ia(Pl([zg,vC([",",zg],e.map(r,n))]))]}function m4a(e,t,r){let n=r("superClass"),{parent:a}=e;return a.type==="AssignmentExpression"?Ia(lh(["(",Pl([bl,n]),bl,")"],n)):n}function NEi(e,t,r){let{node:n}=e,a=[];return H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),a.push(YTr(e,t,r)),a}function DEi(e,t,r){let{node:n}=e,a=[],o=t.semi?";":"";H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(AV(e),ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),n.readonly&&a.push("readonly "),n.variance&&a.push(r("variance")),(n.type==="ClassAccessorProperty"||n.type==="AccessorProperty"||n.type==="TSAbstractAccessorProperty")&&a.push("accessor "),a.push(G4e(e,t,r),KZ(e),gEi(e),Lk(e,r));let l=n.type==="TSAbstractPropertyDefinition"||n.type==="TSAbstractAccessorProperty";return[x4e(e,t,r,a," =",l?void 0:"value"),o]}function C4a(e,t,r){let{node:n}=e,a=[];return e.each(({node:o,next:l,isLast:A})=>{a.push(r()),!t.semi&&BEi(o)&&_4a(o,l)&&a.push(";"),A||(a.push(xl),fee(o,t)&&a.push(xl))},"body"),ig(n,fA.Dangling)&&a.push(N2(e,t)),["{",a.length>0?[Pl([xl,a]),xl]:"","}"]}function _4a(e,t){var r;let{type:n,name:a}=e.key;if(!e.computed&&n==="Identifier"&&(a==="static"||a==="get"||a==="set")&&!e.value&&!e.typeAnnotation)return!0;if(!t||t.static||t.accessibility||t.readonly)return!1;if(!t.computed){let o=(r=t.key)==null?void 0:r.name;if(o==="in"||o==="instanceof")return!0}if(BEi(t)&&t.variance&&!t.static&&!t.declare)return!0;switch(t.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return t.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((t.value?t.value.async:t.async)||t.kind==="get"||t.kind==="set")return!1;let o=t.value?t.value.generator:t.generator;return!!(t.computed||o)}case"TSIndexSignature":return!0}return!1}var y4a=_0(["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"]);function kEi(e){return y4a(e)?kEi(e.expression):e}var b4a=_0(["FunctionExpression","ArrowFunctionExpression"]);function E4a(e){return e.type==="MemberExpression"||e.type==="OptionalMemberExpression"||e.type==="Identifier"&&e.name!=="undefined"}function S4a(e,t){if(t.semi||GEi(e,t)||FEi(e,t))return!1;let{node:r,key:n,parent:a}=e;return!!(r.type==="ExpressionStatement"&&(n==="body"&&(a.type==="Program"||a.type==="BlockStatement"||a.type==="StaticBlock"||a.type==="TSModuleBlock")||n==="consequent"&&a.type==="SwitchCase")&&e.call(()=>xEi(e,t),"expression"))}function xEi(e,t){let{node:r}=e;switch(r.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":if(!mEi(e,t))return!0;break;case"UnaryExpression":{let{prefix:n,operator:a}=r;if(n&&(a==="+"||a==="-"))return!0;break}case"BindExpression":if(!r.object)return!0;break;case"Literal":if(r.regex)return!0;break;default:if(nD(r))return!0}return Eme(e,t)?!0:zTr(r)?e.call(()=>xEi(e,t),...zyi(r)):!1}function GEi({node:e,parent:t},r){return(r.parentParser==="markdown"||r.parentParser==="mdx")&&e.type==="ExpressionStatement"&&nD(e.expression)&&t.type==="Program"&&t.body.length===1}function FEi({node:e,parent:t},r){return(r.parser==="__vue_event_binding"||r.parser==="__vue_ts_event_binding")&&e.type==="ExpressionStatement"&&t.type==="Program"&&t.body.length===1}function v4a(e,t,r){let n=[r("expression")];if(FEi(e,t)){let a=kEi(e.node.expression);(b4a(a)||E4a(a))&&n.push(";")}else GEi(e,t)||t.semi&&n.push(";");return n}function B4a(e,t,r){if(t.__isVueBindings||t.__isVueForBindingLeft){let n=e.map(r,"program","body",0,"params");if(n.length===1)return n[0];let a=vC([",",zg],n);return t.__isVueForBindingLeft?["(",Pl([bl,Ia(a)]),bl,")"]:a}if(t.__isEmbeddedTypescriptGenericParameters){let n=e.map(r,"program","body",0,"typeParameters","params");return vC([",",zg],n)}}function w4a(e,t){let{node:r}=e;switch(r.type){case"RegExpLiteral":return Lyi(r);case"BigIntLiteral":return XTr(r.extra.raw);case"NumericLiteral":return QRe(r.extra.raw);case"StringLiteral":return pme(HRe(r.extra.raw,t));case"NullLiteral":return"null";case"BooleanLiteral":return String(r.value);case"DirectiveLiteral":return Vyi(r.extra.raw,t);case"Literal":{if(r.regex)return Lyi(r.regex);if(r.bigint)return XTr(r.raw);let{value:n}=r;return typeof n=="number"?QRe(r.raw):typeof n=="string"?T4a(e)?Vyi(r.raw,t):pme(HRe(r.raw,t)):String(n)}}}function T4a(e){if(e.key!=="expression")return;let{parent:t}=e;return t.type==="ExpressionStatement"&&t.directive}function XTr(e){return e.toLowerCase()}function Lyi({pattern:e,flags:t}){return t=[...t].sort().join(""),`/${e}/${t}`}function Vyi(e,t){let r=e.slice(1,-1);if(r.includes('"')||r.includes("'"))return e;let n=t.singleQuote?"'":'"';return n+r+n}function R4a(e,t,r){let n=e.originalText.slice(t,r);for(let a of e[Symbol.for("comments")]){let o=ZS(a);if(o>r)break;let l=BC(a);if(le.type==="ExportDefaultDeclaration"||e.type==="DeclareExportDeclaration"&&e.default;function VEi(e,t,r){let{node:n}=e,a=[oXa(e,t,r),AV(e),"export",LEi(n)?" default":""],{declaration:o,exported:l}=n;return ig(n,fA.Dangling)&&(a.push(" ",N2(e,t)),ibi(n)&&a.push(xl)),o?a.push(" ",r("declaration")):(a.push(x4a(n)),n.type==="ExportAllDeclaration"||n.type==="DeclareExportAllDeclaration"?(a.push(" *"),l&&a.push(" as ",r("exported"))):a.push(OEi(e,t,r)),a.push(WEi(e,t,r),HEi(e,t,r))),a.push(k4a(n,t)),a}var D4a=_0(["ClassDeclaration","ComponentDeclaration","FunctionDeclaration","TSInterfaceDeclaration","DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","HookDeclaration","TSDeclareFunction","EnumDeclaration"]);function k4a(e,t){return t.semi&&(!e.declaration||LEi(e)&&!D4a(e.declaration))?";":""}function IRr(e,t=!0){return e&&e!=="value"?`${t?" ":""}${e}${t?"":" "}`:""}function PEi(e,t){return IRr(e.importKind,t)}function x4a(e){return IRr(e.exportKind)}function WEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=[];return MEi(n,t)&&a.push(" from"),a.push(" ",r("source")),a}function OEi(e,t,r){let{node:n}=e;if(!MEi(n,t))return"";let a=[" "];if(H_(n.specifiers)){let o=[],l=[];e.each(()=>{let A=e.node.type;if(A==="ExportNamespaceSpecifier"||A==="ExportDefaultSpecifier"||A==="ImportNamespaceSpecifier"||A==="ImportDefaultSpecifier")o.push(r());else if(A==="ExportSpecifier"||A==="ImportSpecifier")l.push(r());else throw new jRe(n,"specifier")},"specifiers"),a.push(vC(", ",o)),l.length>0&&(o.length>0&&a.push(", "),l.length>1||o.length>0||n.specifiers.some(A=>ig(A))?a.push(Ia(["{",Pl([t.bracketSpacing?zg:bl,vC([",",zg],l)]),lh(pee(t)?",":""),t.bracketSpacing?zg:bl,"}"])):a.push(["{",t.bracketSpacing?" ":"",...l,t.bracketSpacing?" ":"","}"]))}else a.push("{}");return a}function MEi(e,t){return e.type!=="ImportDeclaration"||H_(e.specifiers)||e.importKind==="type"?!0:ZEi(t,ZS(e),ZS(e.source)).trimEnd().endsWith("from")}function G4a(e,t){var r,n;if((r=e.extra)!=null&&r.deprecatedAssertSyntax)return"assert";let a=ZEi(t,BC(e.source),(n=e.attributes)!=null&&n[0]?ZS(e.attributes[0]):BC(e)).trimStart();return a.startsWith("assert")?"assert":a.startsWith("with")||H_(e.attributes)?"with":void 0}function HEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=G4a(n,t);if(!a)return"";let o=[` ${a} {`];return H_(n.attributes)&&(t.bracketSpacing&&o.push(" "),o.push(vC(", ",e.map(r,"attributes"))),t.bracketSpacing&&o.push(" ")),o.push("}"),o}function F4a(e,t,r){let{node:n}=e,{type:a}=n,o=a.startsWith("Import"),l=o?"imported":"local",A=o?"local":"exported",f=n[l],I=n[A],C="",b="";return a==="ExportNamespaceSpecifier"||a==="ImportNamespaceSpecifier"?C="*":f&&(C=r(l)),I&&!Z4a(n)&&(b=r(A)),[IRr(a==="ImportSpecifier"?n.importKind:n.exportKind,!1),C,C&&b?" as ":"",b]}function Z4a(e){if(e.type!=="ImportSpecifier"&&e.type!=="ExportSpecifier")return!1;let{local:t,[e.type==="ImportSpecifier"?"imported":"exported"]:r}=e;if(t.type!==r.type||!PMa(t,r))return!1;if(gV(t))return t.value===r.value&&UM(t)===UM(r);switch(t.type){case"Identifier":return t.name===r.name;default:return!1}}function ubt(e,t,r){var n;let a=t.semi?";":"",{node:o}=e,l=o.type==="ObjectTypeAnnotation",A=o.type==="TSEnumDeclaration"||o.type==="EnumBooleanBody"||o.type==="EnumNumberBody"||o.type==="EnumBigIntBody"||o.type==="EnumStringBody"||o.type==="EnumSymbolBody",f=[o.type==="TSTypeLiteral"||A?"members":o.type==="TSInterfaceBody"?"body":"properties"];l&&f.push("indexers","callProperties","internalSlots");let I=f.flatMap(ue=>e.map(({node:de})=>({node:de,printed:r(),loc:ZS(de)}),ue));f.length>1&&I.sort((ue,de)=>ue.loc-de.loc);let{parent:C,key:b}=e,E=l&&b==="body"&&(C.type==="InterfaceDeclaration"||C.type==="DeclareInterface"||C.type==="DeclareClass"),N=o.type==="TSInterfaceBody"||A||E||o.type==="ObjectPattern"&&C.type!=="FunctionDeclaration"&&C.type!=="FunctionExpression"&&C.type!=="ArrowFunctionExpression"&&C.type!=="ObjectMethod"&&C.type!=="ClassMethod"&&C.type!=="ClassPrivateMethod"&&C.type!=="AssignmentPattern"&&C.type!=="CatchClause"&&o.properties.some(ue=>ue.value&&(ue.value.type==="ObjectPattern"||ue.value.type==="ArrayPattern"))||o.type!=="ObjectPattern"&&t.objectWrap==="preserve"&&I.length>0&&ace(t.originalText,ZS(o),I[0].loc),B=E?";":o.type==="TSInterfaceBody"||o.type==="TSTypeLiteral"?lh(a,";"):",",F=o.type==="RecordExpression"?"#{":o.exact?"{|":"{",Q=o.exact?"|}":"}",X=[],ae=I.map(ue=>{let de=[...X,Ia(ue.printed)];return X=[B,zg],(ue.node.type==="TSPropertySignature"||ue.node.type==="TSMethodSignature"||ue.node.type==="TSConstructSignatureDeclaration"||ue.node.type==="TSCallSignatureDeclaration")&&ig(ue.node,fA.PrettierIgnore)&&X.shift(),fee(ue.node,t)&&X.push(xl),de});if(o.inexact||o.hasUnknownMembers){let ue;if(ig(o,fA.Dangling)){let de=ig(o,fA.Line);ue=[N2(e,t),de||dO(t.originalText,BC(U0(!1,PRe(o),-1)))?xl:zg,"..."]}else ue=["..."];ae.push([...X,...ue])}let ne=(n=U0(!1,I,-1))==null?void 0:n.node,ce=!(o.inexact||o.hasUnknownMembers||ne&&(ne.type==="RestElement"||(ne.type==="TSPropertySignature"||ne.type==="TSCallSignatureDeclaration"||ne.type==="TSMethodSignature"||ne.type==="TSConstructSignatureDeclaration")&&ig(ne,fA.PrettierIgnore))),fe;if(ae.length===0){if(!ig(o,fA.Dangling))return[F,Q,Lk(e,r)];fe=Ia([F,N2(e,t,{indent:!0}),bl,Q,KZ(e),Lk(e,r)])}else fe=[E&&H_(o.properties)?I4a(C):"",F,Pl([t.bracketSpacing?zg:bl,...ae]),lh(ce&&(B!==","||pee(t))?B:""),t.bracketSpacing?zg:bl,Q,KZ(e),Lk(e,r)];return e.match(ue=>ue.type==="ObjectPattern"&&!H_(ue.decorators),RTr)||nce(o)&&(e.match(void 0,(ue,de)=>de==="typeAnnotation",(ue,de)=>de==="typeAnnotation",RTr)||e.match(void 0,(ue,de)=>ue.type==="FunctionTypeParam"&&de==="typeAnnotation",RTr))||!N&&e.match(ue=>ue.type==="ObjectPattern",ue=>ue.type==="AssignmentExpression"||ue.type==="VariableDeclarator")?fe:Ia(fe,{shouldBreak:N})}function RTr(e,t){return(t==="params"||t==="parameters"||t==="this"||t==="rest")&&jbi(e)}function L4a(e){let t=[e];for(let r=0;rE[Se]===n),B=E.type===n.type&&!N,F,Q,X=0;do Q=F||n,F=e.getParentNode(X),X++;while(F&&F.type===n.type&&A.every(Se=>F[Se]!==Q));let ae=F||E,ne=Q;if(a&&(nD(n[A[0]])||nD(f)||nD(I)||L4a(ne))){b=!0,B=!0;let Se=k=>[lh("("),Pl([bl,k]),bl,lh(")")],De=k=>k.type==="NullLiteral"||k.type==="Literal"&&k.value===null||k.type==="Identifier"&&k.name==="undefined";C.push(" ? ",De(f)?r(o):Se(r(o))," : ",I.type===n.type||De(I)?r(l):Se(r(l)))}else{let Se=k=>t.useTabs?Pl(r(k)):oj(2,r(k)),De=[zg,"? ",f.type===n.type?lh("","("):"",Se(o),f.type===n.type?lh("",")"):"",zg,": ",Se(l)];C.push(E.type!==n.type||E[l]===n||N?De:t.useTabs?gbi(Pl(De)):oj(Math.max(0,t.tabWidth-2),De))}let ce=[o,l,...A].some(Se=>ig(n[Se],De=>zM(De)&&ace(t.originalText,ZS(De),BC(De)))),fe=Se=>E===ae?Ia(Se,{shouldBreak:ce}):ce?[Se,aj]:Se,ue=!b&&(Yv(E)||E.type==="NGPipeExpression"&&E.left===n)&&!E.computed,de=W4a(e),be=fe([V4a(e,t,r),B?C:Pl(C),a&&ue&&!de?bl:""]);return N||de?Ia([Pl([bl,be]),bl]):be}function M4a(e,t){return(Yv(t)||t.type==="NGPipeExpression"&&t.left===e)&&!t.computed}function H4a(e,t,r,n){return[...e.map(a=>PRe(a)),PRe(t),PRe(r)].flat().some(a=>zM(a)&&ace(n.originalText,ZS(a),BC(a)))}var Y4a=new Map([["AssignmentExpression","right"],["VariableDeclarator","init"],["ReturnStatement","argument"],["ThrowStatement","argument"],["UnaryExpression","argument"],["YieldExpression","argument"],["AwaitExpression","argument"]]);function Q4a(e){let{node:t}=e;if(t.type!=="ConditionalExpression")return!1;let r,n=t;for(let a=0;!r;a++){let o=e.getParentNode(a);if(o.type==="ChainExpression"&&o.expression===n||b_(o)&&o.callee===n||Yv(o)&&o.object===n||o.type==="TSNonNullExpression"&&o.expression===n){n=o;continue}o.type==="NewExpression"&&o.callee===n||nj(o)&&o.expression===n?(r=e.getParentNode(a+1),n=o):r=o}return n===t?!1:r[Y4a.get(r.type)]===n}var NTr=e=>[lh("("),Pl([bl,e]),bl,lh(")")];function hRr(e,t,r,n){if(!t.experimentalTernaries)return O4a(e,t,r);let{node:a}=e,o=a.type==="ConditionalExpression",l=oce(a),A=o?"consequent":"trueType",f=o?"alternate":"falseType",I=o?["test"]:["checkType","extendsType"],C=a[A],b=a[f],E=I.map(ke=>a[ke]),{parent:N}=e,B=N.type===a.type,F=B&&I.some(ke=>N[ke]===a),Q=B&&N[f]===a,X=C.type===a.type,ae=b.type===a.type,ne=ae||Q,ce=t.tabWidth>2||t.useTabs,fe,ue,de=0;do ue=fe||a,fe=e.getParentNode(de),de++;while(fe&&fe.type===a.type&&I.every(ke=>fe[ke]!==ue));let be=fe||N,Se=n&&n.assignmentLayout&&n.assignmentLayout!=="break-after-operator"&&(N.type==="AssignmentExpression"||N.type==="VariableDeclarator"||N.type==="ClassProperty"||N.type==="PropertyDefinition"||N.type==="ClassPrivateProperty"||N.type==="ObjectProperty"||N.type==="Property"),De=(N.type==="ReturnStatement"||N.type==="ThrowStatement")&&!(X||ae),k=o&&be.type==="JSXExpressionContainer"&&e.grandparent.type!=="JSXAttribute",et=Q4a(e),ct=M4a(a,N),Me=l&&Eme(e,t),je=ce?t.useTabs?" ":" ".repeat(t.tabWidth-1):"",St=H4a(E,C,b,t)||X||ae,At=!ne&&!B&&!l&&(k?C.type==="NullLiteral"||C.type==="Literal"&&C.value===null:eRr(C,t)&&hyi(a.test,3)),Yt=ne||Q||l&&!B||B&&o&&hyi(a.test,1)||At,Tr=[];!X&&ig(C,fA.Dangling)&&e.call(ke=>{Tr.push(N2(ke,t),xl)},"consequent");let Nr=[];ig(a.test,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"test"),!ae&&ig(b,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"alternate"),ig(a,fA.Dangling)&&Nr.push(N2(e,t));let er=Symbol("test"),vt=Symbol("consequent"),xt=Symbol("test-and-consequent"),Zr=o?[NTr(r("test")),a.test.type==="ConditionalExpression"?aj:""]:[r("checkType")," ","extends"," ",oce(a.extendsType)||a.extendsType.type==="TSMappedType"?r("extendsType"):Ia(NTr(r("extendsType")))],qt=Ia([Zr," ?"],{id:er}),Xt=r(A),lr=Pl([X||k&&(nD(C)||B||ne)?xl:zg,Tr,Xt]),cr=Yt?Ia([qt,ne?lr:lh(lr,Ia(lr,{id:vt}),{groupId:er})],{id:xt}):[qt,lr],Ar=r(f),qr=At?lh(Ar,gbi(NTr(Ar)),{groupId:xt}):Ar,_n=[cr,Nr.length>0?[Pl([xl,Nr]),xl]:ae?xl:At?lh(zg," ",{groupId:xt}):zg,":",ae?" ":ce?Yt?lh(je,lh(ne||At?" ":je," "),{groupId:xt}):lh(je," "):" ",ae?qr:Ia([Pl(qr),k&&!At?bl:""]),ct&&!et?bl:"",St?aj:""];return Se&&!St?Ia(Pl([bl,Ia(_n)])):Se||De?Ia(Pl(_n)):et||l&&F?Ia([Pl([bl,_n]),Me?bl:""]):N===be?Ia(_n):_n}function X4a(e,t,r,n){let{node:a}=e;if(qTr(a))return w4a(e,t);let o=t.semi?";":"",l=[];switch(a.type){case"JsExpressionRoot":return r("node");case"JsonRoot":return[r("node"),xl];case"File":return B4a(e,t,r)??r("program");case"EmptyStatement":return"";case"ExpressionStatement":return v4a(e,t,r);case"ChainExpression":return r("expression");case"ParenthesizedExpression":return!ig(a.expression)&&(e4(a.expression)||Vk(a.expression))?["(",r("expression"),")"]:Ia(["(",Pl([bl,r("expression")]),bl,")"]);case"AssignmentExpression":return mXa(e,t,r);case"VariableDeclarator":return CXa(e,t,r);case"BinaryExpression":case"LogicalExpression":return Pbi(e,t,r);case"AssignmentPattern":return[r("left")," = ",r("right")];case"OptionalMemberExpression":case"MemberExpression":return fXa(e,t,r);case"MetaProperty":return[r("meta"),".",r("property")];case"BindExpression":return a.object&&l.push(r("object")),l.push(Ia(Pl([bl,AEi(e,t,r)]))),l;case"Identifier":return[a.name,KZ(e),gEi(e),Lk(e,r)];case"V8IntrinsicIdentifier":return["%",a.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadPropertyPattern":case"RestElement":return dEi(e,r);case"FunctionDeclaration":case"FunctionExpression":return hEi(e,r,t,n);case"ArrowFunctionExpression":return r4a(e,t,r,n);case"YieldExpression":return l.push("yield"),a.delegate&&l.push("*"),a.argument&&l.push(" ",r("argument")),l;case"AwaitExpression":if(l.push("await"),a.argument){l.push(" ",r("argument"));let{parent:A}=e;if(b_(A)&&A.callee===a||Yv(A)&&A.object===a){l=[Pl([bl,...l]),bl];let f=e.findAncestor(I=>I.type==="AwaitExpression"||I.type==="BlockStatement");if(f?.type!=="AwaitExpression"||!JZ(f.argument,I=>I===a))return Ia(l)}}return l;case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return VEi(e,t,r);case"ImportDeclaration":return N4a(e,t,r);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return F4a(e,t,r);case"ImportAttribute":return BTr(e,t,r);case"Program":case"BlockStatement":case"StaticBlock":return bEi(e,t,r);case"ClassBody":return C4a(e,t,r);case"ThrowStatement":return e4a(e,t,r);case"ReturnStatement":return $Xa(e,t,r);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return Xbi(e,t,r);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return ubt(e,t,r);case"Property":return ibt(a)?YTr(e,t,r):BTr(e,t,r);case"ObjectProperty":return BTr(e,t,r);case"ObjectMethod":return YTr(e,t,r);case"Decorator":return["@",r("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return dRr(e,t,r);case"SequenceExpression":{let{parent:A}=e;if(A.type==="ExpressionStatement"||A.type==="ForStatement"){let f=[];return e.each(({isFirst:I})=>{I?f.push(r()):f.push(",",Pl([zg,r()]))},"expressions"),Ia(f)}return Ia(vC([",",zg],e.map(r,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[r("value"),o];case"UnaryExpression":return l.push(a.operator),/[a-z]$/u.test(a.operator)&&l.push(" "),ig(a.argument)?l.push(Ia(["(",Pl([bl,r("argument")]),bl,")"])):l.push(r("argument")),l;case"UpdateExpression":return[a.prefix?a.operator:"",r("argument"),a.prefix?"":a.operator];case"ConditionalExpression":return hRr(e,t,r,n);case"VariableDeclaration":{let A=e.map(r,"declarations"),f=e.parent,I=f.type==="ForStatement"||f.type==="ForInStatement"||f.type==="ForOfStatement",C=a.declarations.some(E=>E.init),b;return A.length===1&&!ig(a.declarations[0])?b=A[0]:A.length>0&&(b=Pl(A[0])),l=[AV(e),a.kind,b?[" ",b]:"",Pl(A.slice(1).map(E=>[",",C&&!I?xl:zg,E]))],I&&f.body!==a||l.push(o),Ia(l)}case"WithStatement":return Ia(["with (",r("object"),")",tce(a.body,r("body"))]);case"IfStatement":{let A=tce(a.consequent,r("consequent")),f=Ia(["if (",Ia([Pl([bl,r("test")]),bl]),")",A]);if(l.push(f),a.alternate){let I=ig(a.consequent,fA.Trailing|fA.Line)||ibi(a),C=a.consequent.type==="BlockStatement"&&!I;l.push(C?" ":xl),ig(a,fA.Dangling)&&l.push(N2(e,t),I?xl:" "),l.push("else",Ia(tce(a.alternate,r("alternate"),a.alternate.type==="IfStatement")))}return l}case"ForStatement":{let A=tce(a.body,r("body")),f=N2(e,t),I=f?[f,bl]:"";return!a.init&&!a.test&&!a.update?[I,Ia(["for (;;)",A])]:[I,Ia(["for (",Ia([Pl([bl,r("init"),";",zg,r("test"),";",zg,r("update")]),bl]),")",A])]}case"WhileStatement":return Ia(["while (",Ia([Pl([bl,r("test")]),bl]),")",tce(a.body,r("body"))]);case"ForInStatement":return Ia(["for (",r("left")," in ",r("right"),")",tce(a.body,r("body"))]);case"ForOfStatement":return Ia(["for",a.await?" await":""," (",r("left")," of ",r("right"),")",tce(a.body,r("body"))]);case"DoWhileStatement":{let A=tce(a.body,r("body"));return l=[Ia(["do",A])],a.body.type==="BlockStatement"?l.push(" "):l.push(xl),l.push("while (",Ia([Pl([bl,r("test")]),bl]),")",o),l}case"DoExpression":return[a.async?"async ":"","do ",r("body")];case"BreakStatement":case"ContinueStatement":return l.push(a.type==="BreakStatement"?"break":"continue"),a.label&&l.push(" ",r("label")),l.push(o),l;case"LabeledStatement":return a.body.type==="EmptyStatement"?[r("label"),":;"]:[r("label"),": ",r("body")];case"TryStatement":return["try ",r("block"),a.handler?[" ",r("handler")]:"",a.finalizer?[" finally ",r("finalizer")]:""];case"CatchClause":if(a.param){let A=ig(a.param,I=>!zM(I)||I.leading&&dO(t.originalText,BC(I))||I.trailing&&dO(t.originalText,ZS(I),{backwards:!0})),f=r("param");return["catch ",A?["(",Pl([bl,f]),bl,") "]:["(",f,") "],r("body")]}return["catch ",r("body")];case"SwitchStatement":return[Ia(["switch (",Pl([bl,r("discriminant")]),bl,")"])," {",a.cases.length>0?Pl([xl,vC(xl,e.map(({node:A,isLast:f})=>[r(),!f&&fee(A,t)?xl:""],"cases"))]):"",xl,"}"];case"SwitchCase":{a.test?l.push("case ",r("test"),":"):l.push("default:"),ig(a,fA.Dangling)&&l.push(" ",N2(e,t));let A=a.consequent.filter(f=>f.type!=="EmptyStatement");if(A.length>0){let f=QTr(e,t,r,"consequent");l.push(A.length===1&&A[0].type==="BlockStatement"?[" ",f]:Pl([xl,f]))}return l}case"DebuggerStatement":return["debugger",o];case"ClassDeclaration":case"ClassExpression":return wEi(e,t,r);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return NEi(e,t,r);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":case"AccessorProperty":return DEi(e,t,r);case"TemplateElement":return pme(a.value.raw);case"TemplateLiteral":return Rbi(e,r,t);case"TaggedTemplateExpression":return TYa(e,r);case"PrivateIdentifier":return["#",a.name];case"PrivateName":return["#",r("id")];case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":return["module ",r("body")];case"InterpreterDirective":default:throw new jRe(a,"ESTree")}}function YEi(e,t,r){let{parent:n,node:a,key:o}=e,l=[r("expression")];switch(a.type){case"AsConstExpression":l.push(" as const");break;case"AsExpression":case"TSAsExpression":l.push(" as ",r("typeAnnotation"));break;case"SatisfiesExpression":case"TSSatisfiesExpression":l.push(" satisfies ",r("typeAnnotation"));break}return o==="callee"&&b_(n)||o==="object"&&Yv(n)?Ia([Pl([bl,...l]),bl]):l}function J4a(e,t,r){let{node:n}=e,a=[AV(e),"component"];n.id&&a.push(" ",r("id")),a.push(r("typeParameters"));let o=U4a(e,r,t);return n.rendersType?a.push(Ia([o," ",r("rendersType")])):a.push(Ia([o])),n.body&&a.push(" ",r("body")),t.semi&&n.type==="DeclareComponent"&&a.push(";"),a}function U4a(e,t,r){let{node:n}=e,a=n.params;if(n.rest&&(a=[...a,n.rest]),a.length===0)return["(",N2(e,r,{filter:l=>t4(r.originalText,BC(l))===")"}),")"];let o=[];return j4a(e,(l,A)=>{let f=A===a.length-1;f&&n.rest&&o.push("..."),o.push(t()),!f&&(o.push(","),fee(a[A],r)?o.push(xl,xl):o.push(zg))}),["(",Pl([bl,...o]),lh(pee(r,"all")&&!K4a(n,a)?",":""),bl,")"]}function K4a(e,t){var r;return e.rest||((r=U0(!1,t,-1))==null?void 0:r.type)==="RestElement"}function j4a(e,t){let{node:r}=e,n=0,a=o=>t(o,n++);e.each(a,"params"),r.rest&&e.call(a,"rest")}function z4a(e,t,r){let{node:n}=e;return n.shorthand?r("local"):[r("name")," as ",r("local")]}function q4a(e,t,r){let{node:n}=e,a=[];return n.name&&a.push(r("name"),n.optional?"?: ":": "),a.push(r("typeAnnotation")),a}function QEi(e,t,r){return ubt(e,r,t)}function XEi(e,t){let{node:r}=e,n=t("id");r.computed&&(n=["[",n,"]"]);let a="";return r.initializer&&(a=t("initializer")),r.init&&(a=t("init")),a?[n," = ",a]:n}function $4a(e,t,r){let{node:n}=e,a;if(n.type==="EnumSymbolBody"||n.explicitType)switch(n.type){case"EnumBooleanBody":a="boolean";break;case"EnumNumberBody":a="number";break;case"EnumBigIntBody":a="bigint";break;case"EnumStringBody":a="string";break;case"EnumSymbolBody":a="symbol";break}return[a?`of ${a} `:"",QEi(e,t,r)]}function JEi(e,t,r){let{node:n}=e;return[AV(e),n.const?"const ":"","enum ",t("id")," ",n.type==="TSEnumDeclaration"?QEi(e,t,r):t("body")]}function eJa(e,t,r){let{node:n}=e,a=["hook"];n.id&&a.push(" ",r("id"));let o=Sme(e,r,t,!1,!0),l=lbt(e,r),A=zRe(n,l);return a.push(Ia([A?Ia(o):o,l]),n.body?" ":"",r("body")),a}function tJa(e,t,r){let{node:n}=e,a=[AV(e),"hook"];return n.id&&a.push(" ",r("id")),t.semi&&a.push(";"),a}function Pyi(e){var t;let{node:r}=e;return r.type==="HookTypeAnnotation"&&((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareHook"}function rJa(e,t,r){let{node:n}=e,a=[];a.push(Pyi(e)?"":"hook ");let o=Sme(e,r,t,!1,!0),l=[];return l.push(Pyi(e)?": ":" => ",r("returnType")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function UEi(e,t,r){let{node:n}=e,a=[AV(e),"interface"],o=[],l=[];n.type!=="InterfaceTypeAnnotation"&&o.push(" ",r("id"),r("typeParameters"));let A=n.typeParameters&&!ig(n.typeParameters,fA.Trailing|fA.Line);return H_(n.extends)&&l.push(A?lh(" ",zg,{groupId:fRr(n.typeParameters)}):zg,"extends ",(n.extends.length===1?gHa:Pl)(vC([",",zg],e.map(r,"extends")))),ig(n.id,fA.Trailing)||H_(n.extends)?A?a.push(Ia([...o,Pl(l)])):a.push(Ia(Pl([...o,...l]))):a.push(...o,...l),a.push(" ",r("body")),Ia(a)}function nJa(e,t,r){let{node:n}=e;if(Kyi(n))return n.type.slice(0,-14).toLowerCase();let a=t.semi?";":"";switch(n.type){case"ComponentDeclaration":case"DeclareComponent":case"ComponentTypeAnnotation":return J4a(e,t,r);case"ComponentParameter":return z4a(e,t,r);case"ComponentTypeParameter":return q4a(e,t,r);case"HookDeclaration":return eJa(e,t,r);case"DeclareHook":return tJa(e,t,r);case"HookTypeAnnotation":return rJa(e,t,r);case"DeclareClass":return wEi(e,t,r);case"DeclareFunction":return[AV(e),"function ",r("id"),r("predicate"),a];case"DeclareModule":return["declare module ",r("id")," ",r("body")];case"DeclareModuleExports":return["declare module.exports",Lk(e,r),a];case"DeclareNamespace":return["declare namespace ",r("id")," ",r("body")];case"DeclareVariable":return[AV(e),n.kind??"var"," ",r("id"),a];case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return VEi(e,t,r);case"DeclareOpaqueType":case"OpaqueType":return VXa(e,t,r);case"DeclareTypeAlias":case"TypeAlias":return qbi(e,t,r);case"IntersectionTypeAnnotation":return $bi(e,t,r);case"UnionTypeAnnotation":return eEi(e,t,r);case"ConditionalTypeAnnotation":return hRr(e,t,r);case"InferTypeAnnotation":return nEi(e,t,r);case"FunctionTypeAnnotation":return tEi(e,t,r);case"TupleTypeAnnotation":return dRr(e,t,r);case"TupleTypeLabeledElement":return sEi(e,t,r);case"TupleTypeSpreadElement":return iEi(e,t,r);case"GenericTypeAnnotation":return[r("id"),w4e(e,t,r,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return rEi(e,t,r);case"TypeAnnotation":return aEi(e,t,r);case"TypeParameter":return vEi(e,t,r);case"TypeofTypeAnnotation":return lEi(e,r);case"ExistsTypeAnnotation":return"*";case"ArrayTypeAnnotation":return cEi(r);case"DeclareEnum":case"EnumDeclaration":return JEi(e,r,t);case"EnumBooleanBody":case"EnumNumberBody":case"EnumBigIntBody":case"EnumStringBody":case"EnumSymbolBody":return $4a(e,r,t);case"EnumBooleanMember":case"EnumNumberMember":case"EnumBigIntMember":case"EnumStringMember":case"EnumDefaultedMember":return XEi(e,r);case"FunctionTypeParam":{let o=n.name?r("name"):e.parent.this===n?"this":"";return[o,KZ(e),o?": ":"",r("typeAnnotation")]}case"DeclareInterface":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return UEi(e,t,r);case"ClassImplements":case"InterfaceExtends":return[r("id"),r("typeParameters")];case"NullableTypeAnnotation":return["?",r("typeAnnotation")];case"Variance":{let{kind:o}=n;return jTr.ok(o==="plus"||o==="minus"),o==="plus"?"+":"-"}case"KeyofTypeAnnotation":return["keyof ",r("argument")];case"ObjectTypeCallProperty":return[n.static?"static ":"",r("value")];case"ObjectTypeMappedTypeProperty":return A4a(e,t,r);case"ObjectTypeIndexer":return[n.static?"static ":"",n.variance?r("variance"):"","[",r("id"),n.id?": ":"",r("key"),"]: ",r("value")];case"ObjectTypeProperty":{let o="";return n.proto?o="proto ":n.static&&(o="static "),[o,n.kind!=="init"?n.kind+" ":"",n.variance?r("variance"):"",G4e(e,t,r),KZ(e),ibt(n)?"":": ",r("value")]}case"ObjectTypeAnnotation":return ubt(e,t,r);case"ObjectTypeInternalSlot":return[n.static?"static ":"","[[",r("id"),"]]",KZ(e),n.method?"":": ",r("value")];case"ObjectTypeSpreadProperty":return dEi(e,r);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[r("qualification"),".",r("id")];case"NullLiteralTypeAnnotation":return"null";case"BooleanLiteralTypeAnnotation":return String(n.value);case"StringLiteralTypeAnnotation":return pme(HRe(UM(n),t));case"NumberLiteralTypeAnnotation":return QRe(n.raw??n.extra.raw);case"BigIntLiteralTypeAnnotation":return XTr(n.raw??n.extra.raw);case"TypeCastExpression":return["(",r("expression"),Lk(e,r),")"];case"TypePredicate":return uEi(e,r);case"TypeOperator":return[n.operator," ",r("typeAnnotation")];case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w4e(e,t,r,"params");case"InferredPredicate":case"DeclaredPredicate":return[e.key==="predicate"&&e.parent.type!=="DeclareFunction"&&!e.parent.returnType?": ":" ","%checks",...n.type==="DeclaredPredicate"?["(",r("value"),")"]:[]];case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return YEi(e,t,r)}}function iJa(e,t,r){var n;let{node:a}=e;if(!a.type.startsWith("TS"))return;if(jyi(a))return a.type.slice(2,-7).toLowerCase();let o=t.semi?";":"",l=[];switch(a.type){case"TSThisType":return"this";case"TSTypeAssertion":{let A=!(Vk(a.expression)||e4(a.expression)),f=Ia(["<",Pl([bl,r("typeAnnotation")]),bl,">"]),I=[lh("("),Pl([bl,r("expression")]),bl,lh(")")];return A?dme([[f,r("expression")],[f,Ia(I,{shouldBreak:!0})],[f,r("expression")]]):Ia([f,r("expression")])}case"TSDeclareFunction":return hEi(e,r,t);case"TSExportAssignment":return["export = ",r("expression"),o];case"TSModuleBlock":return bEi(e,t,r);case"TSInterfaceBody":case"TSTypeLiteral":return ubt(e,t,r);case"TSTypeAliasDeclaration":return qbi(e,t,r);case"TSQualifiedName":return[r("left"),".",r("right")];case"TSAbstractMethodDefinition":case"TSDeclareMethod":return NEi(e,t,r);case"TSAbstractAccessorProperty":case"TSAbstractPropertyDefinition":return DEi(e,t,r);case"TSInterfaceHeritage":case"TSClassImplements":case"TSExpressionWithTypeArguments":case"TSInstantiationExpression":return[r("expression"),r(a.typeArguments?"typeArguments":"typeParameters")];case"TSTemplateLiteralType":return Rbi(e,r,t);case"TSNamedTupleMember":return sEi(e,t,r);case"TSRestType":return iEi(e,t,r);case"TSOptionalType":return[r("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return UEi(e,t,r);case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return w4e(e,t,r,"params");case"TSTypeParameter":return vEi(e,t,r);case"TSAsExpression":case"TSSatisfiesExpression":return YEi(e,t,r);case"TSArrayType":return cEi(r);case"TSPropertySignature":return[a.readonly?"readonly ":"",G4e(e,t,r),KZ(e),Lk(e,r)];case"TSParameterProperty":return[ebt(a),a.static?"static ":"",a.override?"override ":"",a.readonly?"readonly ":"",r("parameter")];case"TSTypeQuery":return lEi(e,r);case"TSIndexSignature":{let A=a.parameters.length>1?lh(pee(t)?",":""):"",f=Ia([Pl([bl,vC([", ",bl],e.map(r,"parameters"))]),A,bl]),I=e.parent.type==="ClassBody"&&e.key==="body";return[I&&a.static?"static ":"",a.readonly?"readonly ":"","[",a.parameters?f:"","]",Lk(e,r),I?o:""]}case"TSTypePredicate":return uEi(e,r);case"TSNonNullExpression":return[r("expression"),"!"];case"TSImportType":return["import(",r("argument"),")",a.qualifier?[".",r("qualifier")]:"",w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSLiteralType":return r("literal");case"TSIndexedAccessType":return rEi(e,t,r);case"TSTypeOperator":return[a.operator," ",r("typeAnnotation")];case"TSMappedType":return d4a(e,t,r);case"TSMethodSignature":{let A=a.kind&&a.kind!=="method"?`${a.kind} `:"";l.push(ebt(a),A,a.computed?"[":"",r("key"),a.computed?"]":"",KZ(e));let f=Sme(e,r,t,!1,!0),I=a.returnType?"returnType":"typeAnnotation",C=a[I],b=C?Lk(e,r,I):"",E=zRe(a,b);return l.push(E?Ia(f):f),C&&l.push(Ia(b)),Ia(l)}case"TSNamespaceExportDeclaration":return["export as namespace ",r("id"),t.semi?";":""];case"TSEnumDeclaration":return JEi(e,r,t);case"TSEnumMember":return XEi(e,r);case"TSImportEqualsDeclaration":return[a.isExport?"export ":"","import ",PEi(a,!1),r("id")," = ",r("moduleReference"),t.semi?";":""];case"TSExternalModuleReference":return["require(",r("expression"),")"];case"TSModuleDeclaration":{let{parent:A}=e,f=A.type==="TSModuleDeclaration",I=((n=a.body)==null?void 0:n.type)==="TSModuleDeclaration";return f?l.push("."):(l.push(AV(e)),a.kind!=="global"&&l.push(a.kind," ")),l.push(r("id")),I?l.push(r("body")):a.body?l.push(" ",Ia(r("body"))):l.push(o),l}case"TSConditionalType":return hRr(e,t,r);case"TSInferType":return nEi(e,t,r);case"TSIntersectionType":return $bi(e,t,r);case"TSUnionType":return eEi(e,t,r);case"TSFunctionType":case"TSCallSignatureDeclaration":case"TSConstructorType":case"TSConstructSignatureDeclaration":return tEi(e,t,r);case"TSTupleType":return dRr(e,t,r);case"TSTypeReference":return[r("typeName"),w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSTypeAnnotation":return aEi(e,t,r);case"TSEmptyBodyFunctionExpression":return pRr(e,t,r);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Fyi(e,r,"?");case"TSJSDocNonNullableType":return Fyi(e,r,"!");case"TSParenthesizedType":default:throw new jRe(a,"TypeScript")}}function sJa(e,t,r,n){if(Vbi(e))return _Qa(e,t);for(let a of[nXa,jQa,nJa,iJa,X4a]){let o=a(e,t,r,n);if(o!==void 0)return o}}var oJa=_0(["ClassMethod","ClassPrivateMethod","ClassProperty","ClassAccessorProperty","AccessorProperty","TSAbstractAccessorProperty","PropertyDefinition","TSAbstractPropertyDefinition","ClassPrivateProperty","MethodDefinition","TSAbstractMethodDefinition","TSDeclareMethod"]);function aJa(e,t,r,n){var a;e.isRoot&&((a=t.__onHtmlBindingRoot)==null||a.call(t,e.node,t));let o=sJa(e,t,r,n);if(!o)return"";let{node:l}=e;if(oJa(l))return o;let A=H_(l.decorators),f=aXa(e,t,r),I=l.type==="ClassExpression";if(A&&!I)return GTr(o,E=>Ia([f,E]));let C=Eme(e,t),b=S4a(e,t);return!f&&!C&&!b?o:GTr(o,E=>[b?";":"",C?"(":"",C&&I&&A?[Pl([zg,f,E]),zg]:[f,E],C?")":""])}var cJa=aJa,lJa={avoidAstMutation:!0},uJa=[{linguistLanguageId:174,name:"JSON.stringify",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"],parsers:["json-stringify"],vscodeLanguageIds:["json"]},{linguistLanguageId:174,name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","flake.lock","mcmod.info",".babelrc",".jscsrc",".jshintrc",".jslintrc",".swcrc"],parsers:["json"],vscodeLanguageIds:["json"]},{linguistLanguageId:423,name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".code-workspace",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[],parsers:["jsonc"],vscodeLanguageIds:["jsonc"]},{linguistLanguageId:175,name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",parsers:["json5"],vscodeLanguageIds:["json5"]}],KEi={};tbt(KEi,{getVisitorKeys:()=>pJa,massageAstNode:()=>jEi,print:()=>fJa});var gJa={JsonRoot:["node"],ArrayExpression:["elements"],ObjectExpression:["properties"],ObjectProperty:["key","value"],UnaryExpression:["argument"],NullLiteral:[],BooleanLiteral:[],StringLiteral:[],NumericLiteral:[],Identifier:[],TemplateLiteral:["quasis"],TemplateElement:[]},AJa=gJa,dJa=Jyi(AJa),pJa=dJa;function fJa(e,t,r){let{node:n}=e;switch(n.type){case"JsonRoot":return[r("node"),xl];case"ArrayExpression":{if(n.elements.length===0)return"[]";let a=e.map(()=>e.node===null?"null":r(),"elements");return["[",Pl([xl,vC([",",xl],a)]),xl,"]"]}case"ObjectExpression":return n.properties.length===0?"{}":["{",Pl([xl,vC([",",xl],e.map(r,"properties"))]),xl,"}"];case"ObjectProperty":return[r("key"),": ",r("value")];case"UnaryExpression":return[n.operator==="+"?"":n.operator,r("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return n.value?"true":"false";case"StringLiteral":return JSON.stringify(n.value);case"NumericLiteral":return Wyi(e)?JSON.stringify(String(n.value)):JSON.stringify(n.value);case"Identifier":return Wyi(e)?JSON.stringify(n.name):n.name;case"TemplateLiteral":return r(["quasis",0]);case"TemplateElement":return JSON.stringify(n.value.cooked);default:throw new jRe(n,"JSON")}}function Wyi(e){return e.key==="key"&&e.parent.type==="ObjectProperty"}var IJa=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function jEi(e,t){let{type:r}=e;if(r==="ObjectProperty"){let{key:n}=e;n.type==="Identifier"?t.key={type:"StringLiteral",value:n.name}:n.type==="NumericLiteral"&&(t.key={type:"StringLiteral",value:String(n.value)});return}if(r==="UnaryExpression"&&e.operator==="+")return t.argument;if(r==="ArrayExpression"){for(let[n,a]of e.elements.entries())a===null&&t.elements.splice(n,0,{type:"NullLiteral"});return}if(r==="TemplateLiteral")return{type:"StringLiteral",value:e.quasis[0].value.cooked}}jEi.ignoredProperties=IJa;var E4e={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},rce="JavaScript",hJa={arrowParens:{category:rce,type:"choice",default:"always",description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:E4e.bracketSameLine,objectWrap:E4e.objectWrap,bracketSpacing:E4e.bracketSpacing,jsxBracketSameLine:{category:rce,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{category:rce,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},experimentalOperatorPosition:{category:rce,type:"choice",default:"end",description:"Where to print operators when binary expressions wrap lines.",choices:[{value:"start",description:"Print operators at the start of new lines."},{value:"end",description:"Print operators at the end of previous lines."}]},experimentalTernaries:{category:rce,type:"boolean",default:!1,description:"Use curious ternaries, with the question mark after the condition.",oppositeDescription:"Default behavior of ternaries; keep question marks on the same line as the consequent."},singleQuote:E4e.singleQuote,jsxSingleQuote:{category:rce,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{category:rce,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{category:rce,type:"choice",default:"all",description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"all",description:"Trailing commas wherever possible (including function arguments)."},{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."}]},singleAttributePerLine:E4e.singleAttributePerLine},zEi=hJa,qRe={estree:Yyi,"estree-json":KEi},qEi=[...AMa,...uJa],mJa=Hyi;var W4e={};sI(W4e,{default:()=>YUa,languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var CJa=Object.defineProperty,n1i=(e,t)=>{for(var r in t)CJa(e,r,{get:t[r],enumerable:!0})},i1i={};n1i(i1i,{languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var _Ja=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},mRr=_Ja,yJa="indent",bJa="group",EJa="if-break",ERr="line",SJa="break-parent",s1i=()=>{},V4e=s1i,o1i=s1i;function pV(e){return V4e(e),{type:yJa,contents:e}}function $M(e,t={}){return V4e(e),o1i(t.expandedStates,!0),{type:bJa,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function lj(e,t="",r={}){return V4e(e),t!==""&&V4e(t),{type:EJa,breakContents:e,flatContents:t,groupId:r.groupId}}var vJa={type:SJa},BJa={type:ERr,hard:!0},eNe={type:ERr},Qv={type:ERr,soft:!0},AT=[BJa,vJa];function Wk(e,t){V4e(e),o1i(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l1?xl:zg;return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters"),Pl(e.map(()=>[f,r()],"attributes")),...HQa(o,t,l)],{shouldBreak:A})}function HQa(e,t,r){return e.selfClosing?[zg,"/>"]:YQa(e,t,r)?[">"]:[bl,">"]}function YQa(e,t,r){let n=e.attributes.length>0&&ig(U0(!1,e.attributes,-1),fA.Trailing);return e.attributes.length===0&&!r||(t.bracketSameLine||t.jsxBracketSameLine)&&(!r||e.attributes.length>0)&&!n}function QQa(e,t,r){let{node:n}=e,a=[];a.push(""),a}function XQa(e,t){let{node:r}=e,n=ig(r),a=ig(r,fA.Line),o=r.type==="JSXOpeningFragment";return[o?"<":""]}function JQa(e,t,r){let n=$X(e,ZQa(e,t,r),t);return PQa(e,n,t)}function UQa(e,t){let{node:r}=e,n=ig(r,fA.Line);return[N2(e,t,{indent:n}),n?xl:""]}function KQa(e,t,r){let{node:n}=e;return["{",e.call(({node:a})=>{let o=["...",r()];return!ig(a)||!Bbi(e)?o:[Pl([bl,$X(e,o,t)]),bl]},n.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function jQa(e,t,r){let{node:n}=e;if(n.type.startsWith("JSX"))switch(n.type){case"JSXAttribute":return WQa(e,t,r);case"JSXIdentifier":return n.name;case"JSXNamespacedName":return vC(":",[r("namespace"),r("name")]);case"JSXMemberExpression":return vC(".",[r("object"),r("property")]);case"JSXSpreadAttribute":case"JSXSpreadChild":return KQa(e,t,r);case"JSXExpressionContainer":return OQa(e,t,r);case"JSXFragment":case"JSXElement":return JQa(e,t,r);case"JSXOpeningElement":return MQa(e,t,r);case"JSXClosingElement":return QQa(e,t,r);case"JSXOpeningFragment":case"JSXClosingFragment":return XQa(e,t);case"JSXEmptyExpression":return UQa(e,t);case"JSXText":throw new Error("JSXText should be handled by JSXElement");default:throw new jRe(n,"JSX")}}function zQa(e){if(e.children.length===0)return!0;if(e.children.length>1)return!1;let t=e.children[0];return t.type==="JSXText"&&!N4e(t)}function N4e(e){return e.type==="JSXText"&&(Jyt.hasNonWhitespaceCharacter(UM(e))||!/\n/u.test(UM(e)))}function qQa(e){return e.type==="JSXExpressionContainer"&&gV(e.expression)&&e.expression.value===" "&&!ig(e.expression)}function $Qa(e){let{node:t,parent:r}=e;if(!nD(t)||!nD(r))return!1;let{index:n,siblings:a}=e,o;for(let l=n;l>0;l--){let A=a[l-1];if(!(A.type==="JSXText"&&!N4e(A))){o=A;break}}return o?.type==="JSXExpressionContainer"&&o.expression.type==="JSXEmptyExpression"&&obt(o.expression)}function eXa(e){return obt(e.node)||$Qa(e)}var Vbi=eXa,tXa=0;function Pbi(e,t,r){var n;let{node:a,parent:o,grandparent:l,key:A}=e,f=A!=="body"&&(o.type==="IfStatement"||o.type==="WhileStatement"||o.type==="SwitchStatement"||o.type==="DoWhileStatement"),I=a.operator==="|>"&&((n=e.root.extra)==null?void 0:n.__isUsingHackPipeline),C=MTr(e,r,t,!1,f);if(f)return C;if(I)return Ia(C);if(b_(o)&&o.callee===a||o.type==="UnaryExpression"||Yv(o)&&!o.computed)return Ia([Pl([bl,...C]),bl]);let b=o.type==="ReturnStatement"||o.type==="ThrowStatement"||o.type==="JSXExpressionContainer"&&l.type==="JSXAttribute"||a.operator!=="|"&&o.type==="JsExpressionRoot"||a.type!=="NGPipeExpression"&&(o.type==="NGRoot"&&t.parser==="__ng_binding"||o.type==="NGMicrosyntaxExpression"&&l.type==="NGMicrosyntax"&&l.body.length===1)||a===o.body&&o.type==="ArrowFunctionExpression"||a!==o.body&&o.type==="ForStatement"||o.type==="ConditionalExpression"&&l.type!=="ReturnStatement"&&l.type!=="ThrowStatement"&&!b_(l)||o.type==="TemplateLiteral",E=o.type==="AssignmentExpression"||o.type==="VariableDeclarator"||o.type==="ClassProperty"||o.type==="PropertyDefinition"||o.type==="TSAbstractPropertyDefinition"||o.type==="ClassPrivateProperty"||Iee(o),N=gee(a.left)&&tRr(a.operator,a.left.operator);if(b||D4e(a)&&!N||!D4e(a)&&E)return Ia(C);if(C.length===0)return"";let B=nD(a.right),F=C.findIndex(fe=>typeof fe!="string"&&!Array.isArray(fe)&&fe.type===KM),Q=C.slice(0,F===-1?1:F+1),X=C.slice(Q.length,B?-1:void 0),ae=Symbol("logicalChain-"+ ++tXa),ne=Ia([...Q,Pl(X)],{id:ae});if(!B)return ne;let ce=U0(!1,C,-1);return Ia([ne,abt(ce,{groupId:ae})])}function MTr(e,t,r,n,a){var o;let{node:l}=e;if(!gee(l))return[Ia(t())];let A=[];tRr(l.operator,l.left.operator)?A=e.call(Q=>MTr(Q,t,r,!0,a),"left"):A.push(Ia(t("left")));let f=D4e(l),I=(l.operator==="|>"||l.type==="NGPipeExpression"||rXa(e,r))&&!ice(r.originalText,l.right),C=!ig(l.right,fA.Leading,Ibi)&&ice(r.originalText,l.right),b=l.type==="NGPipeExpression"?"|":l.operator,E=l.type==="NGPipeExpression"&&l.arguments.length>0?Ia(Pl([bl,": ",vC([zg,": "],e.map(()=>oj(2,Ia(t())),"arguments"))])):"",N;if(f)N=[b," ",t("right"),E];else{let Q=b==="|>"&&((o=e.root.extra)!=null&&o.__isUsingHackPipeline)?e.call(X=>MTr(X,t,r,!0,a),"right"):t("right");if(r.experimentalOperatorPosition==="start"){let X="";if(C)switch(uce(Q)){case Aee:X=Q.splice(0,1)[0];break;case hee:X=Q.contents.splice(0,1)[0];break}N=[zg,X,b," ",Q,E]}else N=[I?zg:"",b,I?" ":zg,Q,E]}let{parent:B}=e,F=ig(l.left,fA.Trailing|fA.Line);if((F||!(a&&l.type==="LogicalExpression")&&B.type!==l.type&&l.left.type!==l.type&&l.right.type!==l.type)&&(N=Ia(N,{shouldBreak:F})),r.experimentalOperatorPosition==="start"?A.push(f||C?" ":"",N):A.push(I?"":" ",N),n&&ig(l)){let Q=iRr($X(e,A,r));return Q.type===cce?Q.parts:Array.isArray(Q)?Q:[Q]}return A}function D4e(e){return e.type!=="LogicalExpression"?!1:!!(e4(e.right)&&e.right.properties.length>0||Vk(e.right)&&e.right.elements.length>0||nD(e.right))}var Nyi=e=>e.type==="BinaryExpression"&&e.operator==="|";function rXa(e,t){return(t.parser==="__vue_expression"||t.parser==="__vue_ts_expression")&&Nyi(e.node)&&!e.hasAncestor(r=>!Nyi(r)&&r.type!=="JsExpressionRoot")}function nXa(e,t,r){let{node:n}=e;if(n.type.startsWith("NG"))switch(n.type){case"NGRoot":return[r("node"),ig(n.node)?" //"+PRe(n.node)[0].value.trimEnd():""];case"NGPipeExpression":return Pbi(e,t,r);case"NGChainedExpression":return Ia(vC([";",zg],e.map(()=>sXa(e)?r():["(",r(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGMicrosyntax":return e.map(()=>[e.isFirst?"":Dyi(e)?" ":[";",zg],r()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/iu.test(n.name)?n.name:JSON.stringify(n.name);case"NGMicrosyntaxExpression":return[r("expression"),n.alias===null?"":[" as ",r("alias")]];case"NGMicrosyntaxKeyedExpression":{let{index:a,parent:o}=e,l=Dyi(e)||(a===1&&(n.key.name==="then"||n.key.name==="else"||n.key.name==="as")||(a===2||a===3)&&(n.key.name==="else"&&o.body[a-1].type==="NGMicrosyntaxKeyedExpression"&&o.body[a-1].key.name==="then"||n.key.name==="track"))&&o.body[0].type==="NGMicrosyntaxExpression";return[r("key"),l?" ":": ",r("expression")]}case"NGMicrosyntaxLet":return["let ",r("key"),n.value===null?"":[" = ",r("value")]];case"NGMicrosyntaxAs":return[r("key")," as ",r("alias")];default:throw new jRe(n,"Angular")}}function Dyi({node:e,index:t}){return e.type==="NGMicrosyntaxKeyedExpression"&&e.key.name==="of"&&t===1}var iXa=_0(["CallExpression","OptionalCallExpression","AssignmentExpression"]);function sXa({node:e}){return DTr(e,iXa)}function Wbi(e,t,r){let{node:n}=e;return Ia([vC(zg,e.map(r,"decorators")),Obi(n,t)?xl:zg])}function oXa(e,t,r){return Mbi(e.node)?[vC(xl,e.map(r,"declaration","decorators")),xl]:""}function aXa(e,t,r){let{node:n,parent:a}=e,{decorators:o}=n;if(!H_(o)||Mbi(a)||Vbi(e))return"";let l=n.type==="ClassExpression"||n.type==="ClassDeclaration"||Obi(n,t);return[e.key==="declaration"&&$Ma(a)?xl:l?aj:"",vC(zg,e.map(r,"decorators")),zg]}function Obi(e,t){return e.decorators.some(r=>dO(t.originalText,BC(r)))}function Mbi(e){var t;if(e.type!=="ExportDefaultDeclaration"&&e.type!=="ExportNamedDeclaration"&&e.type!=="DeclareExportDeclaration")return!1;let r=(t=e.declaration)==null?void 0:t.decorators;return H_(r)&&nbt(e,r[0])}var $yt=class extends Error{name="ArgExpansionBailout"};function cXa(e,t,r){let{node:n}=e,a=qM(n);if(a.length===0)return["(",N2(e,t),")"];let o=a.length-1;if(gXa(a)){let b=["("];return zyt(e,(E,N)=>{b.push(r()),N!==o&&b.push(", ")}),b.push(")"),b}let l=!1,A=[];zyt(e,({node:b},E)=>{let N=r();E===o||(fee(b,t)?(l=!0,N=[N,",",xl,xl]):N=[N,",",zg]),A.push(N)});let f=!t.parser.startsWith("__ng_")&&n.type!=="ImportExpression"&&pee(t,"all")?",":"";function I(){return Ia(["(",Pl([zg,...A]),f,zg,")"],{shouldBreak:!0})}if(l||e.parent.type!=="Decorator"&&lHa(a))return I();if(uXa(a)){let b=A.slice(1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,0),{expandFirstArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])]:dme([["(",E,", ",...b,")"],["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])}if(lXa(a,A,t)){let b=A.slice(0,-1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,-1),{expandLastArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])]:dme([["(",...b,E,")"],["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])}let C=["(",Pl([bl,...A]),lh(f),bl,")"];return sbi(e)?C:Ia(C,{shouldBreak:A.some(UZ)||l})}function B4e(e,t=!1){return e4(e)&&(e.properties.length>0||ig(e))||Vk(e)&&(e.elements.length>0||ig(e))||e.type==="TSTypeAssertion"&&B4e(e.expression)||nj(e)&&B4e(e.expression)||e.type==="FunctionExpression"||e.type==="ArrowFunctionExpression"&&(!e.returnType||!e.returnType.typeAnnotation||e.returnType.typeAnnotation.type!=="TSTypeReference"||AXa(e.body))&&(e.body.type==="BlockStatement"||e.body.type==="ArrowFunctionExpression"&&B4e(e.body,!0)||e4(e.body)||Vk(e.body)||!t&&(b_(e.body)||e.body.type==="ConditionalExpression")||nD(e.body))||e.type==="DoExpression"||e.type==="ModuleExpression"}function lXa(e,t,r){var n,a;let o=U0(!1,e,-1);if(e.length===1){let A=U0(!1,t,-1);if((n=A.label)!=null&&n.embed&&((a=A.label)==null?void 0:a.hug)!==!1)return!0}let l=U0(!1,e,-2);return!ig(o,fA.Leading)&&!ig(o,fA.Trailing)&&B4e(o)&&(!l||l.type!==o.type)&&(e.length!==2||l.type!=="ArrowFunctionExpression"||!Vk(o))&&!(e.length>1&&pEi(o,r))}function uXa(e){if(e.length!==2)return!1;let[t,r]=e;return t.type==="ModuleExpression"&&dXa(r)?!0:!ig(t)&&(t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement")&&r.type!=="FunctionExpression"&&r.type!=="ArrowFunctionExpression"&&r.type!=="ConditionalExpression"&&Hbi(r)&&!B4e(r)}function Hbi(e){if(e.type==="ParenthesizedExpression")return Hbi(e.expression);if(nj(e)||e.type==="TypeCastExpression"){let{typeAnnotation:t}=e;if(t.type==="TypeAnnotation"&&(t=t.typeAnnotation),t.type==="TSArrayType"&&(t=t.elementType,t.type==="TSArrayType"&&(t=t.elementType)),t.type==="GenericTypeAnnotation"||t.type==="TSTypeReference"){let r=t.typeArguments??t.typeParameters;r?.params.length===1&&(t=r.params[0])}return $Tr(t)&&qX(e.expression,1)}return YRe(e)&&qM(e).length>1?!1:gee(e)?qX(e.left,1)&&qX(e.right,1):$yi(e)||qX(e)}function gXa(e){return e.length===2?kyi(e,0):e.length===3?e[0].type==="Identifier"&&kyi(e,1):!1}function kyi(e,t){let r=e[t],n=e[t+1];return r.type==="ArrowFunctionExpression"&&NG(r).length===0&&r.body.type==="BlockStatement"&&n.type==="ArrayExpression"&&!e.some(a=>ig(a))}function AXa(e){return e.type==="BlockStatement"&&(e.body.some(t=>t.type!=="EmptyStatement")||ig(e,fA.Dangling))}function dXa(e){return e.type==="ObjectExpression"&&e.properties.length===1&&Iee(e.properties[0])&&e.properties[0].key.type==="Identifier"&&e.properties[0].key.name==="type"&&gV(e.properties[0].value)&&e.properties[0].value.value==="module"}var HTr=cXa,pXa=e=>((e.type==="ChainExpression"||e.type==="TSNonNullExpression")&&(e=e.expression),b_(e)&&qM(e).length>0);function fXa(e,t,r){var n;let a=r("object"),o=Ybi(e,t,r),{node:l}=e,A=e.findAncestor(C=>!(Yv(C)||C.type==="TSNonNullExpression")),f=e.findAncestor(C=>!(C.type==="ChainExpression"||C.type==="TSNonNullExpression")),I=A&&(A.type==="NewExpression"||A.type==="BindExpression"||A.type==="AssignmentExpression"&&A.left.type!=="Identifier")||l.computed||l.object.type==="Identifier"&&l.property.type==="Identifier"&&!Yv(f)||(f.type==="AssignmentExpression"||f.type==="VariableDeclarator")&&(pXa(l.object)||((n=a.label)==null?void 0:n.memberChain));return k4e(a.label,[a,I?o:Ia(Pl([bl,o]))])}function Ybi(e,t,r){let n=r("property"),{node:a}=e,o=KZ(e);return a.computed?!a.property||uee(a.property)?[o,"[",n,"]"]:Ia([o,"[",Pl([bl,n]),bl,"]"]):[o,".",n]}function Qbi(e,t,r){if(e.node.type==="ChainExpression")return e.call(()=>Qbi(e,t,r),"expression");let{parent:n}=e,a=!n||n.type==="ExpressionStatement",o=[];function l(Me){let{originalText:je}=t,St=KRe(je,BC(Me));return je.charAt(St)===")"?St!==!1&&KTr(je,St+1):fee(Me,t)}function A(){let{node:Me}=e;if(Me.type==="ChainExpression")return e.call(A,"expression");if(b_(Me)&&(LRe(Me.callee)||b_(Me.callee))){let je=l(Me);o.unshift({node:Me,hasTrailingEmptyLine:je,printed:[$X(e,[KZ(e),fme(e,t,r),HTr(e,t,r)],t),je?xl:""]}),e.call(A,"callee")}else LRe(Me)?(o.unshift({node:Me,needsParens:Eme(e,t),printed:$X(e,Yv(Me)?Ybi(e,t,r):AEi(e,t,r),t)}),e.call(A,"object")):Me.type==="TSNonNullExpression"?(o.unshift({node:Me,printed:$X(e,"!",t)}),e.call(A,"expression")):o.unshift({node:Me,printed:r()})}let{node:f}=e;o.unshift({node:f,printed:[KZ(e),fme(e,t,r),HTr(e,t,r)]}),f.callee&&e.call(A,"callee");let I=[],C=[o[0]],b=1;for(;b0&&I.push(C);function N(Me){return/^[A-Z]|^[$_]+$/u.test(Me)}function B(Me){return Me.length<=t.tabWidth}function F(Me){var je;let St=(je=Me[1][0])==null?void 0:je.node.computed;if(Me[0].length===1){let Yt=Me[0][0].node;return Yt.type==="ThisExpression"||Yt.type==="Identifier"&&(N(Yt.name)||a&&B(Yt.name)||St)}let At=U0(!1,Me[0],-1).node;return Yv(At)&&At.property.type==="Identifier"&&(N(At.property.name)||St)}let Q=I.length>=2&&!ig(I[1][0].node)&&F(I);function X(Me){let je=Me.map(St=>St.printed);return Me.length>0&&U0(!1,Me,-1).needsParens?["(",...je,")"]:je}function ae(Me){return Me.length===0?"":Pl([xl,vC(xl,Me.map(X))])}let ne=I.map(X),ce=ne,fe=Q?3:2,ue=I.flat(),de=ue.slice(1,-1).some(Me=>ig(Me.node,fA.Leading))||ue.slice(0,-1).some(Me=>ig(Me.node,fA.Trailing))||I[fe]&&ig(I[fe][0].node,fA.Leading);if(I.length<=fe&&!de&&!I.some(Me=>U0(!1,Me,-1).hasTrailingEmptyLine))return sbi(e)?ce:Ia(ce);let be=U0(!1,I[Q?1:0],-1).node,Se=!b_(be)&&l(be),De=[X(I[0]),Q?I.slice(1,2).map(X):"",Se?xl:"",ae(I.slice(Q?2:1))],k=o.map(({node:Me})=>Me).filter(b_);function et(){let Me=U0(!1,U0(!1,I,-1),-1).node,je=U0(!1,ne,-1);return b_(Me)&&UZ(je)&&k.slice(0,-1).some(St=>St.arguments.some(T4e))}let ct;return de||k.length>2&&k.some(Me=>!Me.arguments.every(je=>qX(je)))||ne.slice(0,-1).some(UZ)||et()?ct=Ia(De):ct=[UZ(ce)||Se?aj:"",dme([ce,De])],k4e({memberChain:!0},ct)}var IXa=Qbi;function Xbi(e,t,r){var n;let{node:a}=e,o=a.type==="NewExpression",l=a.type==="ImportExpression",A=KZ(e),f=qM(a),I=f.length===1&&nbi(f[0],t.originalText);if(I||hXa(e)||sbt(a,e.parent)){let b=[];if(zyt(e,()=>{b.push(r())}),!(I&&(n=b[0].label)!=null&&n.embed))return[o?"new ":"",xyi(e,r),A,fme(e,t,r),"(",vC(", ",b),")"]}if(!l&&!o&&LRe(a.callee)&&!e.call(b=>Eme(b,t),"callee",...a.callee.type==="ChainExpression"?["expression"]:[]))return IXa(e,t,r);let C=[o?"new ":"",xyi(e,r),A,fme(e,t,r),HTr(e,t,r)];return l||b_(a.callee)?Ia(C):C}function xyi(e,t){let{node:r}=e;return r.type==="ImportExpression"?`import${r.phase?`.${r.phase}`:""}`:t("callee")}function hXa(e){let{node:t}=e;if(t.type!=="CallExpression"||t.optional||t.callee.type!=="Identifier")return!1;let r=qM(t);return t.callee.name==="require"?r.length===1&&gV(r[0])||r.length>1:t.callee.name==="define"&&e.parent.type==="ExpressionStatement"?r.length===1||r.length===2&&r[0].type==="ArrayExpression"||r.length===3&&gV(r[0])&&r[1].type==="ArrayExpression":!1}function x4e(e,t,r,n,a,o){let l=_Xa(e,t,r,n,o),A=o?r(o,{assignmentLayout:l}):"";switch(l){case"break-after-operator":return Ia([Ia(n),a,Ia(Pl([zg,A]))]);case"never-break-after-operator":return Ia([Ia(n),a," ",A]);case"fluid":{let f=Symbol("assignment");return Ia([Ia(n),a,Ia(Pl(zg),{id:f}),dee,abt(A,{groupId:f})])}case"break-lhs":return Ia([n,a," ",Ia(A)]);case"chain":return[Ia(n),a,zg,A];case"chain-tail":return[Ia(n),a,Pl([zg,A])];case"chain-tail-arrow-chain":return[Ia(n),a,A];case"only-left":return n}}function mXa(e,t,r){let{node:n}=e;return x4e(e,t,r,r("left"),[" ",n.operator],"right")}function CXa(e,t,r){return x4e(e,t,r,r("id")," =","init")}function _Xa(e,t,r,n,a){let{node:o}=e,l=o[a];if(!l)return"only-left";let A=!Uyt(l);if(e.match(Uyt,Jbi,C=>!A||C.type!=="ExpressionStatement"&&C.type!=="VariableDeclaration"))return A?l.type==="ArrowFunctionExpression"&&l.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!A&&Uyt(l.right)||ice(t.originalText,l))return"break-after-operator";if(o.type==="ImportAttribute"||l.type==="CallExpression"&&l.callee.name==="require"||t.parser==="json5"||t.parser==="jsonc"||t.parser==="json")return"never-break-after-operator";let f=THa(n);if(bXa(o)||BXa(o)||Ubi(o)&&f)return"break-lhs";let I=TXa(o,n,t);return e.call(()=>yXa(e,t,r,I),a)?"break-after-operator":EXa(o)?"break-lhs":!f&&(I||l.type==="TemplateLiteral"||l.type==="TaggedTemplateExpression"||l.type==="BooleanLiteral"||uee(l)||l.type==="ClassExpression")?"never-break-after-operator":"fluid"}function yXa(e,t,r,n){let a=e.node;if(gee(a)&&!D4e(a))return!0;switch(a.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"TSConditionalType":case"ConditionalTypeAnnotation":if(!t.experimentalTernaries&&!DXa(a))break;return!0;case"ConditionalExpression":{if(!t.experimentalTernaries){let{test:I}=a;return gee(I)&&!D4e(I)}let{consequent:A,alternate:f}=a;return A.type==="ConditionalExpression"||f.type==="ConditionalExpression"}case"ClassExpression":return H_(a.decorators)}if(n)return!1;let o=a,l=[];for(;;)if(o.type==="UnaryExpression"||o.type==="AwaitExpression"||o.type==="YieldExpression"&&o.argument!==null)o=o.argument,l.push("argument");else if(o.type==="TSNonNullExpression")o=o.expression,l.push("expression");else break;return!!(gV(o)||e.call(()=>Kbi(e,t,r),...l))}function bXa(e){if(Jbi(e)){let t=e.left||e.id;return t.type==="ObjectPattern"&&t.properties.length>2&&t.properties.some(r=>{var n;return Iee(r)&&(!r.shorthand||((n=r.value)==null?void 0:n.type)==="AssignmentPattern")})}return!1}function Uyt(e){return e.type==="AssignmentExpression"}function Jbi(e){return Uyt(e)||e.type==="VariableDeclarator"}function EXa(e){let t=vXa(e);if(H_(t)){let r=e.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(t.length>1&&t.some(n=>n[r]||n.default))return!0}return!1}var SXa=_0(["TSTypeAliasDeclaration","TypeAlias"]);function vXa(e){var t;if(SXa(e))return(t=e.typeParameters)==null?void 0:t.params}function BXa(e){if(e.type!=="VariableDeclarator")return!1;let{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;let r=Gyi(t.typeAnnotation);return H_(r)&&r.length>1&&r.some(n=>H_(Gyi(n))||n.type==="TSConditionalType")}function Ubi(e){var t;return e.type==="VariableDeclarator"&&((t=e.init)==null?void 0:t.type)==="ArrowFunctionExpression"}var wXa=_0(["TSTypeReference","GenericTypeAnnotation"]);function Gyi(e){var t;if(wXa(e))return(t=e.typeArguments??e.typeParameters)==null?void 0:t.params}function Kbi(e,t,r,n=!1){var a;let{node:o}=e,l=()=>Kbi(e,t,r,!0);if(o.type==="ChainExpression"||o.type==="TSNonNullExpression")return e.call(l,"expression");if(b_(o)){if((a=Xbi(e,t,r).label)!=null&&a.memberChain)return!1;let A=qM(o);return!(A.length===0||A.length===1&&eRr(A[0],t))||RXa(o,r)?!1:e.call(l,"callee")}return Yv(o)?e.call(l,"object"):n&&(o.type==="Identifier"||o.type==="ThisExpression")}function TXa(e,t,r){return Iee(e)?(t=iRr(t),typeof t=="string"&&WRe(t)1)return!0;if(r.length===1){let a=r[0];if(sce(a)||rRr(a)||a.type==="TSTypeLiteral"||a.type==="ObjectTypeAnnotation")return!0}let n=e.typeParameters?"typeParameters":"typeArguments";if(UZ(t(n)))return!0}return!1}function NXa(e){var t;return(t=e.typeParameters??e.typeArguments)==null?void 0:t.params}function DXa(e){function t(r){switch(r.type){case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"TSFunctionType":return!!r.typeParameters;case"TSTypeReference":return!!(r.typeArguments??r.typeParameters);default:return!1}}return t(e.checkType)||t(e.extendsType)}function Sme(e,t,r,n,a){let o=e.node,l=NG(o),A=a?fme(e,r,t):"";if(l.length===0)return[A,"(",N2(e,r,{filter:N=>t4(r.originalText,BC(N))===")"}),")"];let{parent:f}=e,I=sbt(f),C=jbi(o),b=[];if(fHa(e,(N,B)=>{let F=B===l.length-1;F&&o.rest&&b.push("..."),b.push(t()),!F&&(b.push(","),I||C?b.push(" "):fee(l[B],r)?b.push(xl,xl):b.push(zg))}),n&&!xXa(e)){if(UZ(A)||UZ(b))throw new $yt;return Ia([xTr(A),"(",xTr(b),")"])}let E=l.every(N=>!H_(N.decorators));return C&&E?[A,"(",...b,")"]:I?[A,"(",...b,")"]:(ebi(f)||nHa(f)||f.type==="TypeAlias"||f.type==="UnionTypeAnnotation"||f.type==="IntersectionTypeAnnotation"||f.type==="FunctionTypeAnnotation"&&f.returnType===o)&&l.length===1&&l[0].name===null&&o.this!==l[0]&&l[0].typeAnnotation&&o.typeParameters===null&&$Tr(l[0].typeAnnotation)&&!o.rest?r.arrowParens==="always"||o.type==="HookTypeAnnotation"?["(",...b,")"]:b:[A,"(",Pl([bl,...b]),lh(!pHa(o)&&pee(r,"all")?",":""),bl,")"]}function jbi(e){if(!e)return!1;let t=NG(e);if(t.length!==1)return!1;let[r]=t;return!ig(r)&&(r.type==="ObjectPattern"||r.type==="ArrayPattern"||r.type==="Identifier"&&r.typeAnnotation&&(r.typeAnnotation.type==="TypeAnnotation"||r.typeAnnotation.type==="TSTypeAnnotation")&&nce(r.typeAnnotation.typeAnnotation)||r.type==="FunctionTypeParam"&&nce(r.typeAnnotation)&&r!==e.rest||r.type==="AssignmentPattern"&&(r.left.type==="ObjectPattern"||r.left.type==="ArrayPattern")&&(r.right.type==="Identifier"||e4(r.right)&&r.right.properties.length===0||Vk(r.right)&&r.right.elements.length===0))}function kXa(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}function zRe(e,t){var r;let n=kXa(e);if(!n)return!1;let a=(r=e.typeParameters)==null?void 0:r.params;if(a){if(a.length>1)return!1;if(a.length===1){let o=a[0];if(o.constraint||o.default)return!1}}return NG(e).length===1&&(nce(n)||UZ(t))}function xXa(e){return e.match(t=>t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement",(t,r)=>{if(t.type==="CallExpression"&&r==="arguments"&&t.arguments.length===1&&t.callee.type==="CallExpression"){let n=t.callee.callee;return n.type==="Identifier"||n.type==="MemberExpression"&&!n.computed&&n.object.type==="Identifier"&&n.property.type==="Identifier"}return!1},(t,r)=>t.type==="VariableDeclarator"&&r==="init"||t.type==="ExportDefaultDeclaration"&&r==="declaration"||t.type==="TSExportAssignment"&&r==="expression"||t.type==="AssignmentExpression"&&r==="right"&&t.left.type==="MemberExpression"&&t.left.object.type==="Identifier"&&t.left.object.name==="module"&&t.left.property.type==="Identifier"&&t.left.property.name==="exports",t=>t.type!=="VariableDeclaration"||t.kind==="const"&&t.declarations.length===1)}function GXa(e){let t=NG(e);return t.length>1&&t.some(r=>r.type==="TSParameterProperty")}var FXa=_0(["VoidTypeAnnotation","TSVoidKeyword","NullLiteralTypeAnnotation","TSNullKeyword"]),ZXa=_0(["ObjectTypeAnnotation","TSTypeLiteral","GenericTypeAnnotation","TSTypeReference"]);function LXa(e){let{types:t}=e;if(t.some(n=>ig(n)))return!1;let r=t.find(n=>ZXa(n));return r?t.every(n=>n===r||FXa(n)):!1}function zbi(e){return $Tr(e)||nce(e)?!0:sce(e)?LXa(e):!1}function VXa(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e),"opaque type ",r("id"),r("typeParameters")];return a.supertype&&o.push(": ",r("supertype")),a.impltype&&o.push(" = ",r("impltype")),o.push(n),o}function qbi(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e)];o.push("type ",r("id"),r("typeParameters"));let l=a.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[x4e(e,t,r,o," =",l),n]}function $bi(e,t,r){let n=!1;return Ia(e.map(({isFirst:a,previous:o,node:l,index:A})=>{let f=r();if(a)return f;let I=nce(l),C=nce(o);return C&&I?[" & ",n?Pl(f):f]:!C&&!I?t.experimentalOperatorPosition==="start"?Pl([zg,"& ",f]):Pl([" &",zg,f]):(A>1&&(n=!0),[" & ",A>1?Pl(f):f])},"types"))}function eEi(e,t,r){let{node:n}=e,{parent:a}=e,o=a.type!=="TypeParameterInstantiation"&&(!oce(a)||!t.experimentalTernaries)&&a.type!=="TSTypeParameterInstantiation"&&a.type!=="GenericTypeAnnotation"&&a.type!=="TSTypeReference"&&a.type!=="TSTypeAssertion"&&a.type!=="TupleTypeAnnotation"&&a.type!=="TSTupleType"&&!(a.type==="FunctionTypeParam"&&!a.name&&e.grandparent.this!==a)&&!((a.type==="TypeAlias"||a.type==="VariableDeclarator"||a.type==="TSTypeAliasDeclaration")&&ice(t.originalText,n)),l=zbi(n),A=e.map(C=>{let b=r();return l||(b=oj(2,b)),$X(C,b,t)},"types");if(l)return vC(" | ",A);let f=o&&!ice(t.originalText,n),I=[lh([f?zg:"","| "]),vC([zg,"| "],A)];return Eme(e,t)?Ia([Pl(I),bl]):(a.type==="TupleTypeAnnotation"||a.type==="TSTupleType")&&a[a.type==="TupleTypeAnnotation"&&a.types?"types":"elementTypes"].length>1?Ia([Pl([lh(["(",bl]),I]),bl,lh(")")]):Ia(o?Pl(I):I)}function PXa(e){var t;let{node:r,parent:n}=e;return r.type==="FunctionTypeAnnotation"&&(ebi(n)||!((n.type==="ObjectTypeProperty"||n.type==="ObjectTypeInternalSlot")&&!n.variance&&!n.optional&&nbt(n,r)||n.type==="ObjectTypeCallProperty"||((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareFunction"))}function tEi(e,t,r){let{node:n}=e,a=[cbt(e)];(n.type==="TSConstructorType"||n.type==="TSConstructSignatureDeclaration")&&a.push("new ");let o=Sme(e,r,t,!1,!0),l=[];return n.type==="FunctionTypeAnnotation"?l.push(PXa(e)?" => ":": ",r("returnType")):l.push(Lk(e,r,n.returnType?"returnType":"typeAnnotation")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function rEi(e,t,r){return[r("objectType"),KZ(e),"[",r("indexType"),"]"]}function nEi(e,t,r){return["infer ",r("typeParameter")]}function Fyi(e,t,r){let{node:n}=e;return[n.postfix?"":r,Lk(e,t),n.postfix?r:""]}function iEi(e,t,r){let{node:n}=e;return["...",...n.type==="TupleTypeSpreadElement"&&n.label?[r("label"),": "]:[],r("typeAnnotation")]}function sEi(e,t,r){let{node:n}=e;return[n.variance?r("variance"):"",r("label"),n.optional?"?":"",": ",r("elementType")]}var WXa=new WeakSet;function Lk(e,t,r="typeAnnotation"){let{node:{[r]:n}}=e;if(!n)return"";let a=!1;if(n.type==="TSTypeAnnotation"||n.type==="TypeAnnotation"){let o=e.call(oEi,r);(o==="=>"||o===":"&&ig(n,fA.Leading))&&(a=!0),WXa.add(n)}return a?[" ",t(r)]:t(r)}var oEi=e=>e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>(r==="returnType"||r==="typeAnnotation")&&(t.type==="TSFunctionType"||t.type==="TSConstructorType"))?"=>":e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>r==="typeAnnotation"&&(t.type==="TSJSDocNullableType"||t.type==="TSJSDocNonNullableType"||t.type==="TSTypePredicate"))||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareFunction")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareHook")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="bound"&&t.type==="TypeParameter"&&t.usesExtendsBound)?"":":";function aEi(e,t,r){let n=oEi(e);return n?[n," ",r("typeAnnotation")]:r("typeAnnotation")}function cEi(e){return[e("elementType"),"[]"]}function lEi({node:e},t){let r=e.type==="TSTypeQuery"?"exprName":"argument",n=e.type==="TypeofTypeAnnotation"||e.typeArguments?"typeArguments":"typeParameters";return["typeof ",t(r),t(n)]}function uEi(e,t){let{node:r}=e;return[r.type==="TSTypePredicate"&&r.asserts?"asserts ":r.type==="TypePredicate"&&r.kind?`${r.kind} `:"",t("parameterName"),r.typeAnnotation?[" is ",Lk(e,t)]:""]}function KZ(e){let{node:t}=e;return!t.optional||t.type==="Identifier"&&t===e.parent.key?"":b_(t)||Yv(t)&&t.computed||t.type==="OptionalIndexedAccessType"?"?.":"?"}function gEi(e){return e.node.definite||e.match(void 0,(t,r)=>r==="id"&&t.type==="VariableDeclarator"&&t.definite)?"!":""}var OXa=new Set(["DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclareOpaqueType","DeclareTypeAlias","DeclareEnum","DeclareInterface"]);function AV(e){let{node:t}=e;return t.declare||OXa.has(t.type)&&e.parent.type!=="DeclareExportDeclaration"?"declare ":""}var MXa=new Set(["TSAbstractMethodDefinition","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function cbt({node:e}){return e.abstract||MXa.has(e.type)?"abstract ":""}function fme(e,t,r){let n=e.node;return n.typeArguments?r("typeArguments"):n.typeParameters?r("typeParameters"):""}function AEi(e,t,r){return["::",r("callee")]}function tce(e,t,r){return e.type==="EmptyStatement"?";":e.type==="BlockStatement"||r?[" ",t]:Pl([zg,t])}function dEi(e,t){return["...",t("argument"),Lk(e,t)]}function ebt(e){return e.accessibility?e.accessibility+" ":""}function HXa(e,t,r,n){let{node:a}=e,o=a.inexact?"...":"";return ig(a,fA.Dangling)?Ia([r,o,N2(e,t,{indent:!0}),bl,n]):[r,o,n]}function dRr(e,t,r){let{node:n}=e,a=[],o=n.type==="TupleExpression"?"#[":"[",l="]",A=n.type==="TupleTypeAnnotation"&&n.types?"types":n.type==="TSTupleType"||n.type==="TupleTypeAnnotation"?"elementTypes":"elements",f=n[A];if(f.length===0)a.push(HXa(e,t,o,l));else{let I=U0(!1,f,-1),C=I?.type!=="RestElement"&&!n.inexact,b=I===null,E=Symbol("array"),N=!t.__inJestEach&&f.length>1&&f.every((Q,X,ae)=>{let ne=Q?.type;if(!Vk(Q)&&!e4(Q))return!1;let ce=ae[X+1];if(ce&&ne!==ce.type)return!1;let fe=Vk(Q)?"elements":"properties";return Q[fe]&&Q[fe].length>1}),B=pEi(n,t),F=C?b?",":pee(t)?B?lh(",","",{groupId:E}):lh(","):"":"";a.push(Ia([o,Pl([bl,B?QXa(e,t,r,F):[YXa(e,t,A,n.inexact,r),F],N2(e,t)]),bl,l],{shouldBreak:N,id:E}))}return a.push(KZ(e),Lk(e,r)),a}function pEi(e,t){return Vk(e)&&e.elements.length>1&&e.elements.every(r=>r&&(uee(r)||qyi(r)&&!ig(r.argument))&&!ig(r,fA.Trailing|fA.Line,n=>!dO(t.originalText,ZS(n),{backwards:!0})))}function fEi({node:e},{originalText:t}){let r=a=>JTr(t,UTr(t,a)),n=a=>t[a]===","?a:n(r(a+1));return KTr(t,n(BC(e)))}function YXa(e,t,r,n,a){let o=[];return e.each(({node:l,isLast:A})=>{o.push(l?Ia(a()):""),(!A||n)&&o.push([",",zg,l&&fEi(e,t)?bl:""])},r),n&&o.push("..."),o}function QXa(e,t,r,n){let a=[];return e.each(({isLast:o,next:l})=>{a.push([r(),o?n:","]),o||a.push(fEi(e,t)?[xl,xl]:ig(l,fA.Leading|fA.Line)?xl:zg)},"elements"),Abi(a)}var XXa=/^[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/,JXa=e=>XXa.test(e),UXa=JXa;function KXa(e){return e.length===1?e:e.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/u,"$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/u,"$1").replace(/^([+-])?\./u,"$10.").replace(/(\.\d+?)0+(?=e|$)/u,"$1").replace(/\.(?=e|$)/u,"")}var QRe=KXa,Kyt=new WeakMap;function IEi(e){return/^(?:\d+|\d+\.\d+)$/u.test(e)}function Zyi(e,t){return t.parser==="json"||t.parser==="jsonc"||!gV(e.key)||HRe(UM(e.key),t).slice(1,-1)!==e.key.value?!1:!!(UXa(e.key.value)&&!(t.parser==="babel-ts"&&e.type==="ClassProperty"||t.parser==="typescript"&&e.type==="PropertyDefinition")||IEi(e.key.value)&&String(Number(e.key.value))===e.key.value&&e.type!=="ImportAttribute"&&(t.parser==="babel"||t.parser==="acorn"||t.parser==="espree"||t.parser==="meriyah"||t.parser==="__babel_estree"))}function jXa(e,t){let{key:r}=e.node;return(r.type==="Identifier"||uee(r)&&IEi(QRe(UM(r)))&&String(r.value)===QRe(UM(r))&&!(t.parser==="typescript"||t.parser==="babel-ts"))&&(t.parser==="json"||t.parser==="jsonc"||t.quoteProps==="consistent"&&Kyt.get(e.parent))}function G4e(e,t,r){let{node:n}=e;if(n.computed)return["[",r("key"),"]"];let{parent:a}=e,{key:o}=n;if(t.quoteProps==="consistent"&&!Kyt.has(a)){let l=e.siblings.some(A=>!A.computed&&gV(A.key)&&!Zyi(A,t));Kyt.set(a,l)}if(jXa(e,t)){let l=HRe(JSON.stringify(o.type==="Identifier"?o.name:o.value.toString()),t);return e.call(A=>$X(A,l,t),"key")}return Zyi(n,t)&&(t.quoteProps==="as-needed"||t.quoteProps==="consistent"&&!Kyt.get(a))?e.call(l=>$X(l,/^\d/u.test(o.value)?QRe(o.value):o.value,t),"key"):r("key")}function BTr(e,t,r){let{node:n}=e;return n.shorthand?r("value"):x4e(e,t,r,G4e(e,t,r),":","value")}var zXa=({node:e,key:t,parent:r})=>t==="value"&&e.type==="FunctionExpression"&&(r.type==="ObjectMethod"||r.type==="ClassMethod"||r.type==="ClassPrivateMethod"||r.type==="MethodDefinition"||r.type==="TSAbstractMethodDefinition"||r.type==="TSDeclareMethod"||r.type==="Property"&&ibt(r));function hEi(e,t,r,n){if(zXa(e))return pRr(e,r,t);let{node:a}=e,o=!1;if((a.type==="FunctionDeclaration"||a.type==="FunctionExpression")&&n!=null&&n.expandLastArg){let{parent:C}=e;b_(C)&&(qM(C).length>1||NG(a).every(b=>b.type==="Identifier"&&!b.typeAnnotation))&&(o=!0)}let l=[AV(e),a.async?"async ":"",`function${a.generator?"*":""} `,a.id?t("id"):""],A=Sme(e,t,r,o),f=lbt(e,t),I=zRe(a,f);return l.push(fme(e,r,t),Ia([I?Ia(A):A,f]),a.body?" ":"",t("body")),r.semi&&(a.declare||!a.body)&&l.push(";"),l}function YTr(e,t,r){let{node:n}=e,{kind:a}=n,o=n.value||n,l=[];return!a||a==="init"||a==="method"||a==="constructor"?o.async&&l.push("async "):(jTr.ok(a==="get"||a==="set"),l.push(a," ")),o.generator&&l.push("*"),l.push(G4e(e,t,r),n.optional||n.key.optional?"?":"",n===o?pRr(e,t,r):r("value")),l}function pRr(e,t,r){let{node:n}=e,a=Sme(e,r,t),o=lbt(e,r),l=GXa(n),A=zRe(n,o),f=[fme(e,t,r),Ia([l?Ia(a,{shouldBreak:!0}):A?Ia(a):a,o])];return n.body?f.push(" ",r("body")):f.push(t.semi?";":""),f}function qXa(e){let t=NG(e);return t.length===1&&!e.typeParameters&&!ig(e,fA.Dangling)&&t[0].type==="Identifier"&&!t[0].typeAnnotation&&!ig(t[0])&&!t[0].optional&&!e.predicate&&!e.returnType}function mEi(e,t){if(t.arrowParens==="always")return!1;if(t.arrowParens==="avoid"){let{node:r}=e;return qXa(r)}return!1}function lbt(e,t){let{node:r}=e,n=[Lk(e,t,"returnType")];return r.predicate&&n.push(t("predicate")),n}function CEi(e,t,r){let{node:n}=e,a=t.semi?";":"",o=[];if(n.argument){let f=r("argument");t4a(t,n.argument)?f=["(",Pl([xl,f]),xl,")"]:(gee(n.argument)||n.argument.type==="SequenceExpression"||t.experimentalTernaries&&n.argument.type==="ConditionalExpression"&&(n.argument.consequent.type==="ConditionalExpression"||n.argument.alternate.type==="ConditionalExpression"))&&(f=Ia([lh("("),Pl([bl,f]),bl,lh(")")])),o.push(" ",f)}let l=ig(n,fA.Dangling),A=a&&l&&ig(n,fA.Last|fA.Line);return A&&o.push(a),l&&o.push(" ",N2(e,t)),A||o.push(a),o}function $Xa(e,t,r){return["return",CEi(e,t,r)]}function e4a(e,t,r){return["throw",CEi(e,t,r)]}function t4a(e,t){if(ice(e.originalText,t)||ig(t,fA.Leading,r=>ace(e.originalText,ZS(r),BC(r)))&&!nD(t))return!0;if(zTr(t)){let r=t,n;for(;n=qMa(r);)if(r=n,ice(e.originalText,r))return!0}return!1}var wTr=new WeakMap;function _Ei(e){return wTr.has(e)||wTr.set(e,e.type==="ConditionalExpression"&&!JZ(e,t=>t.type==="ObjectExpression")),wTr.get(e)}var yEi=e=>e.type==="SequenceExpression";function r4a(e,t,r,n={}){let a=[],o,l=[],A=!1,f=!n.expandLastArg&&e.node.body.type==="ArrowFunctionExpression",I;(function X(){let{node:ae}=e,ne=n4a(e,t,r,n);if(a.length===0)a.push(ne);else{let{leading:ce,trailing:fe}=Lbi(e,t);a.push([ce,ne]),l.unshift(fe)}f&&(A||(A=ae.returnType&&NG(ae).length>0||ae.typeParameters||NG(ae).some(ce=>ce.type!=="Identifier"))),!f||ae.body.type!=="ArrowFunctionExpression"?(o=r("body",n),I=ae.body):e.call(X,"body")})();let C=!ice(t.originalText,I)&&(yEi(I)||i4a(I,o,t)||!A&&_Ei(I)),b=e.key==="callee"&&YRe(e.parent),E=Symbol("arrow-chain"),N=s4a(e,n,{signatureDocs:a,shouldBreak:A}),B=!1,F=!1,Q=!1;return f&&(b||n.assignmentLayout)&&(F=!0,Q=!ig(e.node,fA.Leading&fA.Line),B=n.assignmentLayout==="chain-tail-arrow-chain"||b&&!C),o=o4a(e,t,n,{bodyDoc:o,bodyComments:l,functionBody:I,shouldPutBodyOnSameLine:C}),Ia([Ia(F?Pl([Q?bl:"",N]):N,{shouldBreak:B,id:E})," =>",f?abt(o,{groupId:E}):Ia(o),f&&b?lh(bl,"",{groupId:E}):""])}function n4a(e,t,r,n){let{node:a}=e,o=[];if(a.async&&o.push("async "),mEi(e,t))o.push(r(["params",0]));else{let A=n.expandLastArg||n.expandFirstArg,f=lbt(e,r);if(A){if(UZ(f))throw new $yt;f=Ia(xTr(f))}o.push(Ia([Sme(e,r,t,A,!0),f]))}let l=N2(e,t,{filter(A){let f=KRe(t.originalText,BC(A));return f!==!1&&t.originalText.slice(f,f+2)==="=>"}});return l&&o.push(" ",l),o}function i4a(e,t,r){var n,a;return Vk(e)||e4(e)||e.type==="ArrowFunctionExpression"||e.type==="DoExpression"||e.type==="BlockStatement"||nD(e)||((n=t.label)==null?void 0:n.hug)!==!1&&(((a=t.label)==null?void 0:a.embed)||nbi(e,r.originalText))}function s4a(e,t,{signatureDocs:r,shouldBreak:n}){if(r.length===1)return r[0];let{parent:a,key:o}=e;return o!=="callee"&&YRe(a)||gee(a)?Ia([r[0]," =>",Pl([zg,vC([" =>",zg],r.slice(1))])],{shouldBreak:n}):o==="callee"&&YRe(a)||t.assignmentLayout?Ia(vC([" =>",zg],r),{shouldBreak:n}):Ia(Pl(vC([" =>",zg],r)),{shouldBreak:n})}function o4a(e,t,r,{bodyDoc:n,bodyComments:a,functionBody:o,shouldPutBodyOnSameLine:l}){let{node:A,parent:f}=e,I=r.expandLastArg&&pee(t,"all")?lh(","):"",C=(r.expandLastArg||f.type==="JSXExpressionContainer")&&!ig(A)?bl:"";return l&&_Ei(o)?[" ",Ia([lh("","("),Pl([bl,n]),lh("",")"),I,C]),a]:(yEi(o)&&(n=Ia(["(",Pl([bl,n]),bl,")"])),l?[" ",n,a]:[Pl([zg,n,a]),I,C])}var a4a=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let a=t[n];if(r(a,n,t))return a}}},c4a=a4a;function QTr(e,t,r,n){let{node:a}=e,o=[],l=c4a(!1,a[n],A=>A.type!=="EmptyStatement");return e.each(({node:A})=>{A.type!=="EmptyStatement"&&(o.push(r()),A!==l&&(o.push(xl),fee(A,t)&&o.push(xl)))},n),o}function bEi(e,t,r){let n=l4a(e,t,r),{node:a,parent:o}=e;if(a.type==="Program"&&o?.type!=="ModuleExpression")return n?[n,xl]:"";let l=[];if(a.type==="StaticBlock"&&l.push("static "),l.push("{"),n)l.push(Pl([xl,n]),xl);else{let A=e.grandparent;o.type==="ArrowFunctionExpression"||o.type==="FunctionExpression"||o.type==="FunctionDeclaration"||o.type==="ComponentDeclaration"||o.type==="HookDeclaration"||o.type==="ObjectMethod"||o.type==="ClassMethod"||o.type==="ClassPrivateMethod"||o.type==="ForStatement"||o.type==="WhileStatement"||o.type==="DoWhileStatement"||o.type==="DoExpression"||o.type==="ModuleExpression"||o.type==="CatchClause"&&!A.finalizer||o.type==="TSModuleDeclaration"||a.type==="StaticBlock"||l.push(xl)}return l.push("}"),l}function l4a(e,t,r){let{node:n}=e,a=H_(n.directives),o=n.body.some(f=>f.type!=="EmptyStatement"),l=ig(n,fA.Dangling);if(!a&&!o&&!l)return"";let A=[];return a&&(A.push(QTr(e,t,r,"directives")),(o||l)&&(A.push(xl),fee(U0(!1,n.directives,-1),t)&&A.push(xl))),o&&A.push(QTr(e,t,r,"body")),l&&A.push(N2(e,t)),A}function u4a(e){let t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}var EEi=u4a;function g4a(e){switch(e){case null:return"";case"PlusOptional":return"+?";case"MinusOptional":return"-?";case"Optional":return"?"}}function A4a(e,t,r){let{node:n}=e;return Ia([n.variance?r("variance"):"","[",Pl([r("keyTparam")," in ",r("sourceType")]),"]",g4a(n.optional),": ",r("propType")])}function SEi(e,t){return e==="+"||e==="-"?e+t:t}function d4a(e,t,r){let{node:n}=e,a=t.objectWrap==="preserve"&&ace(t.originalText,ZS(n),ZS(n.typeParameter));return Ia(["{",Pl([t.bracketSpacing?zg:bl,Ia([r("typeParameter"),n.optional?SEi(n.optional,"?"):"",n.typeAnnotation?": ":"",r("typeAnnotation")]),t.semi?lh(";"):""]),N2(e,t),t.bracketSpacing?zg:bl,"}"],{shouldBreak:a})}var fRr=EEi("typeParameters");function p4a(e,t,r){let{node:n}=e;return NG(n).length===1&&n.type.startsWith("TS")&&!n[r][0].constraint&&e.parent.type==="ArrowFunctionExpression"&&!(t.filepath&&/\.ts$/u.test(t.filepath))}function w4e(e,t,r,n){let{node:a}=e;if(!a[n])return"";if(!Array.isArray(a[n]))return r(n);let o=sbt(e.grandparent),l=e.match(f=>!(f[n].length===1&&nce(f[n][0])),void 0,(f,I)=>I==="typeAnnotation",f=>f.type==="Identifier",Ubi);if(a[n].length===0||!l&&(o||a[n].length===1&&(a[n][0].type==="NullableTypeAnnotation"||zbi(a[n][0]))))return["<",vC(", ",e.map(r,n)),f4a(e,t),">"];let A=a.type==="TSTypeParameterInstantiation"?"":p4a(e,t,n)?",":pee(t)?lh(","):"";return Ia(["<",Pl([bl,vC([",",zg],e.map(r,n))]),A,bl,">"],{id:fRr(a)})}function f4a(e,t){let{node:r}=e;if(!ig(r,fA.Dangling))return"";let n=!ig(r,fA.Line),a=N2(e,t,{indent:!n});return n?a:[a,xl]}function vEi(e,t,r){let{node:n,parent:a}=e,o=[n.const?"const ":""],l=n.type==="TSTypeParameter"?r("name"):n.name;if(a.type==="TSMappedType")return a.readonly&&o.push(SEi(a.readonly,"readonly")," "),o.push("[",l),n.constraint&&o.push(" in ",r("constraint")),a.nameType&&o.push(" as ",e.callParent(()=>r("nameType"))),o.push("]"),o;if(n.variance&&o.push(r("variance")),n.in&&o.push("in "),n.out&&o.push("out "),o.push(l),n.bound&&(n.usesExtendsBound&&o.push(" extends "),o.push(Lk(e,r,"bound"))),n.constraint){let A=Symbol("constraint");o.push(" extends",Ia(Pl(zg),{id:A}),dee,abt(r("constraint"),{groupId:A}))}return n.default&&o.push(" = ",r("default")),Ia(o)}var BEi=_0(["ClassProperty","PropertyDefinition","ClassPrivateProperty","ClassAccessorProperty","AccessorProperty","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function wEi(e,t,r){let{node:n}=e,a=[AV(e),cbt(e),"class"],o=ig(n.id,fA.Trailing)||ig(n.typeParameters,fA.Trailing)||ig(n.superClass)||H_(n.extends)||H_(n.mixins)||H_(n.implements),l=[],A=[];if(n.id&&l.push(" ",r("id")),l.push(r("typeParameters")),n.superClass){let C=[m4a(e,t,r),r(n.superTypeArguments?"superTypeArguments":"superTypeParameters")],b=e.call(E=>["extends ",$X(E,C,t)],"superClass");o?A.push(zg,Ia(b)):A.push(" ",b)}else A.push(TTr(e,t,r,"extends"));A.push(TTr(e,t,r,"mixins"),TTr(e,t,r,"implements"));let f;if(o){let C;REi(n)?C=[...l,Pl(A)]:C=Pl([...l,A]),f=TEi(n),a.push(Ia(C,{id:f}))}else a.push(...l,...A);let I=n.body;return o&&H_(I.body)?a.push(lh(xl," ",{groupId:f})):a.push(" "),a.push(r("body")),a}var TEi=EEi("heritageGroup");function I4a(e){return lh(xl,"",{groupId:TEi(e)})}function h4a(e){return["extends","mixins","implements"].reduce((t,r)=>t+(Array.isArray(e[r])?e[r].length:0),e.superClass?1:0)>1}function REi(e){return e.typeParameters&&!ig(e.typeParameters,fA.Trailing|fA.Line)&&!h4a(e)}function TTr(e,t,r,n){let{node:a}=e;if(!H_(a[n]))return"";let o=N2(e,t,{marker:n});return[REi(a)?lh(" ",zg,{groupId:fRr(a.typeParameters)}):zg,o,o&&xl,n,Ia(Pl([zg,vC([",",zg],e.map(r,n))]))]}function m4a(e,t,r){let n=r("superClass"),{parent:a}=e;return a.type==="AssignmentExpression"?Ia(lh(["(",Pl([bl,n]),bl,")"],n)):n}function NEi(e,t,r){let{node:n}=e,a=[];return H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),a.push(YTr(e,t,r)),a}function DEi(e,t,r){let{node:n}=e,a=[],o=t.semi?";":"";H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(AV(e),ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),n.readonly&&a.push("readonly "),n.variance&&a.push(r("variance")),(n.type==="ClassAccessorProperty"||n.type==="AccessorProperty"||n.type==="TSAbstractAccessorProperty")&&a.push("accessor "),a.push(G4e(e,t,r),KZ(e),gEi(e),Lk(e,r));let l=n.type==="TSAbstractPropertyDefinition"||n.type==="TSAbstractAccessorProperty";return[x4e(e,t,r,a," =",l?void 0:"value"),o]}function C4a(e,t,r){let{node:n}=e,a=[];return e.each(({node:o,next:l,isLast:A})=>{a.push(r()),!t.semi&&BEi(o)&&_4a(o,l)&&a.push(";"),A||(a.push(xl),fee(o,t)&&a.push(xl))},"body"),ig(n,fA.Dangling)&&a.push(N2(e,t)),["{",a.length>0?[Pl([xl,a]),xl]:"","}"]}function _4a(e,t){var r;let{type:n,name:a}=e.key;if(!e.computed&&n==="Identifier"&&(a==="static"||a==="get"||a==="set")&&!e.value&&!e.typeAnnotation)return!0;if(!t||t.static||t.accessibility||t.readonly)return!1;if(!t.computed){let o=(r=t.key)==null?void 0:r.name;if(o==="in"||o==="instanceof")return!0}if(BEi(t)&&t.variance&&!t.static&&!t.declare)return!0;switch(t.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return t.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((t.value?t.value.async:t.async)||t.kind==="get"||t.kind==="set")return!1;let o=t.value?t.value.generator:t.generator;return!!(t.computed||o)}case"TSIndexSignature":return!0}return!1}var y4a=_0(["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"]);function kEi(e){return y4a(e)?kEi(e.expression):e}var b4a=_0(["FunctionExpression","ArrowFunctionExpression"]);function E4a(e){return e.type==="MemberExpression"||e.type==="OptionalMemberExpression"||e.type==="Identifier"&&e.name!=="undefined"}function S4a(e,t){if(t.semi||GEi(e,t)||FEi(e,t))return!1;let{node:r,key:n,parent:a}=e;return!!(r.type==="ExpressionStatement"&&(n==="body"&&(a.type==="Program"||a.type==="BlockStatement"||a.type==="StaticBlock"||a.type==="TSModuleBlock")||n==="consequent"&&a.type==="SwitchCase")&&e.call(()=>xEi(e,t),"expression"))}function xEi(e,t){let{node:r}=e;switch(r.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":if(!mEi(e,t))return!0;break;case"UnaryExpression":{let{prefix:n,operator:a}=r;if(n&&(a==="+"||a==="-"))return!0;break}case"BindExpression":if(!r.object)return!0;break;case"Literal":if(r.regex)return!0;break;default:if(nD(r))return!0}return Eme(e,t)?!0:zTr(r)?e.call(()=>xEi(e,t),...zyi(r)):!1}function GEi({node:e,parent:t},r){return(r.parentParser==="markdown"||r.parentParser==="mdx")&&e.type==="ExpressionStatement"&&nD(e.expression)&&t.type==="Program"&&t.body.length===1}function FEi({node:e,parent:t},r){return(r.parser==="__vue_event_binding"||r.parser==="__vue_ts_event_binding")&&e.type==="ExpressionStatement"&&t.type==="Program"&&t.body.length===1}function v4a(e,t,r){let n=[r("expression")];if(FEi(e,t)){let a=kEi(e.node.expression);(b4a(a)||E4a(a))&&n.push(";")}else GEi(e,t)||t.semi&&n.push(";");return n}function B4a(e,t,r){if(t.__isVueBindings||t.__isVueForBindingLeft){let n=e.map(r,"program","body",0,"params");if(n.length===1)return n[0];let a=vC([",",zg],n);return t.__isVueForBindingLeft?["(",Pl([bl,Ia(a)]),bl,")"]:a}if(t.__isEmbeddedTypescriptGenericParameters){let n=e.map(r,"program","body",0,"typeParameters","params");return vC([",",zg],n)}}function w4a(e,t){let{node:r}=e;switch(r.type){case"RegExpLiteral":return Lyi(r);case"BigIntLiteral":return XTr(r.extra.raw);case"NumericLiteral":return QRe(r.extra.raw);case"StringLiteral":return pme(HRe(r.extra.raw,t));case"NullLiteral":return"null";case"BooleanLiteral":return String(r.value);case"DirectiveLiteral":return Vyi(r.extra.raw,t);case"Literal":{if(r.regex)return Lyi(r.regex);if(r.bigint)return XTr(r.raw);let{value:n}=r;return typeof n=="number"?QRe(r.raw):typeof n=="string"?T4a(e)?Vyi(r.raw,t):pme(HRe(r.raw,t)):String(n)}}}function T4a(e){if(e.key!=="expression")return;let{parent:t}=e;return t.type==="ExpressionStatement"&&t.directive}function XTr(e){return e.toLowerCase()}function Lyi({pattern:e,flags:t}){return t=[...t].sort().join(""),`/${e}/${t}`}function Vyi(e,t){let r=e.slice(1,-1);if(r.includes('"')||r.includes("'"))return e;let n=t.singleQuote?"'":'"';return n+r+n}function R4a(e,t,r){let n=e.originalText.slice(t,r);for(let a of e[Symbol.for("comments")]){let o=ZS(a);if(o>r)break;let l=BC(a);if(le.type==="ExportDefaultDeclaration"||e.type==="DeclareExportDeclaration"&&e.default;function VEi(e,t,r){let{node:n}=e,a=[oXa(e,t,r),AV(e),"export",LEi(n)?" default":""],{declaration:o,exported:l}=n;return ig(n,fA.Dangling)&&(a.push(" ",N2(e,t)),ibi(n)&&a.push(xl)),o?a.push(" ",r("declaration")):(a.push(x4a(n)),n.type==="ExportAllDeclaration"||n.type==="DeclareExportAllDeclaration"?(a.push(" *"),l&&a.push(" as ",r("exported"))):a.push(OEi(e,t,r)),a.push(WEi(e,t,r),HEi(e,t,r))),a.push(k4a(n,t)),a}var D4a=_0(["ClassDeclaration","ComponentDeclaration","FunctionDeclaration","TSInterfaceDeclaration","DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","HookDeclaration","TSDeclareFunction","EnumDeclaration"]);function k4a(e,t){return t.semi&&(!e.declaration||LEi(e)&&!D4a(e.declaration))?";":""}function IRr(e,t=!0){return e&&e!=="value"?`${t?" ":""}${e}${t?"":" "}`:""}function PEi(e,t){return IRr(e.importKind,t)}function x4a(e){return IRr(e.exportKind)}function WEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=[];return MEi(n,t)&&a.push(" from"),a.push(" ",r("source")),a}function OEi(e,t,r){let{node:n}=e;if(!MEi(n,t))return"";let a=[" "];if(H_(n.specifiers)){let o=[],l=[];e.each(()=>{let A=e.node.type;if(A==="ExportNamespaceSpecifier"||A==="ExportDefaultSpecifier"||A==="ImportNamespaceSpecifier"||A==="ImportDefaultSpecifier")o.push(r());else if(A==="ExportSpecifier"||A==="ImportSpecifier")l.push(r());else throw new jRe(n,"specifier")},"specifiers"),a.push(vC(", ",o)),l.length>0&&(o.length>0&&a.push(", "),l.length>1||o.length>0||n.specifiers.some(A=>ig(A))?a.push(Ia(["{",Pl([t.bracketSpacing?zg:bl,vC([",",zg],l)]),lh(pee(t)?",":""),t.bracketSpacing?zg:bl,"}"])):a.push(["{",t.bracketSpacing?" ":"",...l,t.bracketSpacing?" ":"","}"]))}else a.push("{}");return a}function MEi(e,t){return e.type!=="ImportDeclaration"||H_(e.specifiers)||e.importKind==="type"?!0:ZEi(t,ZS(e),ZS(e.source)).trimEnd().endsWith("from")}function G4a(e,t){var r,n;if((r=e.extra)!=null&&r.deprecatedAssertSyntax)return"assert";let a=ZEi(t,BC(e.source),(n=e.attributes)!=null&&n[0]?ZS(e.attributes[0]):BC(e)).trimStart();return a.startsWith("assert")?"assert":a.startsWith("with")||H_(e.attributes)?"with":void 0}function HEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=G4a(n,t);if(!a)return"";let o=[` ${a} {`];return H_(n.attributes)&&(t.bracketSpacing&&o.push(" "),o.push(vC(", ",e.map(r,"attributes"))),t.bracketSpacing&&o.push(" ")),o.push("}"),o}function F4a(e,t,r){let{node:n}=e,{type:a}=n,o=a.startsWith("Import"),l=o?"imported":"local",A=o?"local":"exported",f=n[l],I=n[A],C="",b="";return a==="ExportNamespaceSpecifier"||a==="ImportNamespaceSpecifier"?C="*":f&&(C=r(l)),I&&!Z4a(n)&&(b=r(A)),[IRr(a==="ImportSpecifier"?n.importKind:n.exportKind,!1),C,C&&b?" as ":"",b]}function Z4a(e){if(e.type!=="ImportSpecifier"&&e.type!=="ExportSpecifier")return!1;let{local:t,[e.type==="ImportSpecifier"?"imported":"exported"]:r}=e;if(t.type!==r.type||!PMa(t,r))return!1;if(gV(t))return t.value===r.value&&UM(t)===UM(r);switch(t.type){case"Identifier":return t.name===r.name;default:return!1}}function ubt(e,t,r){var n;let a=t.semi?";":"",{node:o}=e,l=o.type==="ObjectTypeAnnotation",A=o.type==="TSEnumDeclaration"||o.type==="EnumBooleanBody"||o.type==="EnumNumberBody"||o.type==="EnumBigIntBody"||o.type==="EnumStringBody"||o.type==="EnumSymbolBody",f=[o.type==="TSTypeLiteral"||A?"members":o.type==="TSInterfaceBody"?"body":"properties"];l&&f.push("indexers","callProperties","internalSlots");let I=f.flatMap(ue=>e.map(({node:de})=>({node:de,printed:r(),loc:ZS(de)}),ue));f.length>1&&I.sort((ue,de)=>ue.loc-de.loc);let{parent:C,key:b}=e,E=l&&b==="body"&&(C.type==="InterfaceDeclaration"||C.type==="DeclareInterface"||C.type==="DeclareClass"),N=o.type==="TSInterfaceBody"||A||E||o.type==="ObjectPattern"&&C.type!=="FunctionDeclaration"&&C.type!=="FunctionExpression"&&C.type!=="ArrowFunctionExpression"&&C.type!=="ObjectMethod"&&C.type!=="ClassMethod"&&C.type!=="ClassPrivateMethod"&&C.type!=="AssignmentPattern"&&C.type!=="CatchClause"&&o.properties.some(ue=>ue.value&&(ue.value.type==="ObjectPattern"||ue.value.type==="ArrayPattern"))||o.type!=="ObjectPattern"&&t.objectWrap==="preserve"&&I.length>0&&ace(t.originalText,ZS(o),I[0].loc),B=E?";":o.type==="TSInterfaceBody"||o.type==="TSTypeLiteral"?lh(a,";"):",",F=o.type==="RecordExpression"?"#{":o.exact?"{|":"{",Q=o.exact?"|}":"}",X=[],ae=I.map(ue=>{let de=[...X,Ia(ue.printed)];return X=[B,zg],(ue.node.type==="TSPropertySignature"||ue.node.type==="TSMethodSignature"||ue.node.type==="TSConstructSignatureDeclaration"||ue.node.type==="TSCallSignatureDeclaration")&&ig(ue.node,fA.PrettierIgnore)&&X.shift(),fee(ue.node,t)&&X.push(xl),de});if(o.inexact||o.hasUnknownMembers){let ue;if(ig(o,fA.Dangling)){let de=ig(o,fA.Line);ue=[N2(e,t),de||dO(t.originalText,BC(U0(!1,PRe(o),-1)))?xl:zg,"..."]}else ue=["..."];ae.push([...X,...ue])}let ne=(n=U0(!1,I,-1))==null?void 0:n.node,ce=!(o.inexact||o.hasUnknownMembers||ne&&(ne.type==="RestElement"||(ne.type==="TSPropertySignature"||ne.type==="TSCallSignatureDeclaration"||ne.type==="TSMethodSignature"||ne.type==="TSConstructSignatureDeclaration")&&ig(ne,fA.PrettierIgnore))),fe;if(ae.length===0){if(!ig(o,fA.Dangling))return[F,Q,Lk(e,r)];fe=Ia([F,N2(e,t,{indent:!0}),bl,Q,KZ(e),Lk(e,r)])}else fe=[E&&H_(o.properties)?I4a(C):"",F,Pl([t.bracketSpacing?zg:bl,...ae]),lh(ce&&(B!==","||pee(t))?B:""),t.bracketSpacing?zg:bl,Q,KZ(e),Lk(e,r)];return e.match(ue=>ue.type==="ObjectPattern"&&!H_(ue.decorators),RTr)||nce(o)&&(e.match(void 0,(ue,de)=>de==="typeAnnotation",(ue,de)=>de==="typeAnnotation",RTr)||e.match(void 0,(ue,de)=>ue.type==="FunctionTypeParam"&&de==="typeAnnotation",RTr))||!N&&e.match(ue=>ue.type==="ObjectPattern",ue=>ue.type==="AssignmentExpression"||ue.type==="VariableDeclarator")?fe:Ia(fe,{shouldBreak:N})}function RTr(e,t){return(t==="params"||t==="parameters"||t==="this"||t==="rest")&&jbi(e)}function L4a(e){let t=[e];for(let r=0;rE[Se]===n),B=E.type===n.type&&!N,F,Q,X=0;do Q=F||n,F=e.getParentNode(X),X++;while(F&&F.type===n.type&&A.every(Se=>F[Se]!==Q));let ae=F||E,ne=Q;if(a&&(nD(n[A[0]])||nD(f)||nD(I)||L4a(ne))){b=!0,B=!0;let Se=k=>[lh("("),Pl([bl,k]),bl,lh(")")],De=k=>k.type==="NullLiteral"||k.type==="Literal"&&k.value===null||k.type==="Identifier"&&k.name==="undefined";C.push(" ? ",De(f)?r(o):Se(r(o))," : ",I.type===n.type||De(I)?r(l):Se(r(l)))}else{let Se=k=>t.useTabs?Pl(r(k)):oj(2,r(k)),De=[zg,"? ",f.type===n.type?lh("","("):"",Se(o),f.type===n.type?lh("",")"):"",zg,": ",Se(l)];C.push(E.type!==n.type||E[l]===n||N?De:t.useTabs?gbi(Pl(De)):oj(Math.max(0,t.tabWidth-2),De))}let ce=[o,l,...A].some(Se=>ig(n[Se],De=>zM(De)&&ace(t.originalText,ZS(De),BC(De)))),fe=Se=>E===ae?Ia(Se,{shouldBreak:ce}):ce?[Se,aj]:Se,ue=!b&&(Yv(E)||E.type==="NGPipeExpression"&&E.left===n)&&!E.computed,de=W4a(e),be=fe([V4a(e,t,r),B?C:Pl(C),a&&ue&&!de?bl:""]);return N||de?Ia([Pl([bl,be]),bl]):be}function M4a(e,t){return(Yv(t)||t.type==="NGPipeExpression"&&t.left===e)&&!t.computed}function H4a(e,t,r,n){return[...e.map(a=>PRe(a)),PRe(t),PRe(r)].flat().some(a=>zM(a)&&ace(n.originalText,ZS(a),BC(a)))}var Y4a=new Map([["AssignmentExpression","right"],["VariableDeclarator","init"],["ReturnStatement","argument"],["ThrowStatement","argument"],["UnaryExpression","argument"],["YieldExpression","argument"],["AwaitExpression","argument"]]);function Q4a(e){let{node:t}=e;if(t.type!=="ConditionalExpression")return!1;let r,n=t;for(let a=0;!r;a++){let o=e.getParentNode(a);if(o.type==="ChainExpression"&&o.expression===n||b_(o)&&o.callee===n||Yv(o)&&o.object===n||o.type==="TSNonNullExpression"&&o.expression===n){n=o;continue}o.type==="NewExpression"&&o.callee===n||nj(o)&&o.expression===n?(r=e.getParentNode(a+1),n=o):r=o}return n===t?!1:r[Y4a.get(r.type)]===n}var NTr=e=>[lh("("),Pl([bl,e]),bl,lh(")")];function hRr(e,t,r,n){if(!t.experimentalTernaries)return O4a(e,t,r);let{node:a}=e,o=a.type==="ConditionalExpression",l=oce(a),A=o?"consequent":"trueType",f=o?"alternate":"falseType",I=o?["test"]:["checkType","extendsType"],C=a[A],b=a[f],E=I.map(ke=>a[ke]),{parent:N}=e,B=N.type===a.type,F=B&&I.some(ke=>N[ke]===a),Q=B&&N[f]===a,X=C.type===a.type,ae=b.type===a.type,ne=ae||Q,ce=t.tabWidth>2||t.useTabs,fe,ue,de=0;do ue=fe||a,fe=e.getParentNode(de),de++;while(fe&&fe.type===a.type&&I.every(ke=>fe[ke]!==ue));let be=fe||N,Se=n&&n.assignmentLayout&&n.assignmentLayout!=="break-after-operator"&&(N.type==="AssignmentExpression"||N.type==="VariableDeclarator"||N.type==="ClassProperty"||N.type==="PropertyDefinition"||N.type==="ClassPrivateProperty"||N.type==="ObjectProperty"||N.type==="Property"),De=(N.type==="ReturnStatement"||N.type==="ThrowStatement")&&!(X||ae),k=o&&be.type==="JSXExpressionContainer"&&e.grandparent.type!=="JSXAttribute",et=Q4a(e),ct=M4a(a,N),Me=l&&Eme(e,t),je=ce?t.useTabs?" ":" ".repeat(t.tabWidth-1):"",St=H4a(E,C,b,t)||X||ae,At=!ne&&!B&&!l&&(k?C.type==="NullLiteral"||C.type==="Literal"&&C.value===null:eRr(C,t)&&hyi(a.test,3)),Yt=ne||Q||l&&!B||B&&o&&hyi(a.test,1)||At,Tr=[];!X&&ig(C,fA.Dangling)&&e.call(ke=>{Tr.push(N2(ke,t),xl)},"consequent");let Nr=[];ig(a.test,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"test"),!ae&&ig(b,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"alternate"),ig(a,fA.Dangling)&&Nr.push(N2(e,t));let er=Symbol("test"),vt=Symbol("consequent"),xt=Symbol("test-and-consequent"),Zr=o?[NTr(r("test")),a.test.type==="ConditionalExpression"?aj:""]:[r("checkType")," ","extends"," ",oce(a.extendsType)||a.extendsType.type==="TSMappedType"?r("extendsType"):Ia(NTr(r("extendsType")))],qt=Ia([Zr," ?"],{id:er}),Xt=r(A),lr=Pl([X||k&&(nD(C)||B||ne)?xl:zg,Tr,Xt]),cr=Yt?Ia([qt,ne?lr:lh(lr,Ia(lr,{id:vt}),{groupId:er})],{id:xt}):[qt,lr],Ar=r(f),qr=At?lh(Ar,gbi(NTr(Ar)),{groupId:xt}):Ar,_n=[cr,Nr.length>0?[Pl([xl,Nr]),xl]:ae?xl:At?lh(zg," ",{groupId:xt}):zg,":",ae?" ":ce?Yt?lh(je,lh(ne||At?" ":je," "),{groupId:xt}):lh(je," "):" ",ae?qr:Ia([Pl(qr),k&&!At?bl:""]),ct&&!et?bl:"",St?aj:""];return Se&&!St?Ia(Pl([bl,Ia(_n)])):Se||De?Ia(Pl(_n)):et||l&&F?Ia([Pl([bl,_n]),Me?bl:""]):N===be?Ia(_n):_n}function X4a(e,t,r,n){let{node:a}=e;if(qTr(a))return w4a(e,t);let o=t.semi?";":"",l=[];switch(a.type){case"JsExpressionRoot":return r("node");case"JsonRoot":return[r("node"),xl];case"File":return B4a(e,t,r)??r("program");case"EmptyStatement":return"";case"ExpressionStatement":return v4a(e,t,r);case"ChainExpression":return r("expression");case"ParenthesizedExpression":return!ig(a.expression)&&(e4(a.expression)||Vk(a.expression))?["(",r("expression"),")"]:Ia(["(",Pl([bl,r("expression")]),bl,")"]);case"AssignmentExpression":return mXa(e,t,r);case"VariableDeclarator":return CXa(e,t,r);case"BinaryExpression":case"LogicalExpression":return Pbi(e,t,r);case"AssignmentPattern":return[r("left")," = ",r("right")];case"OptionalMemberExpression":case"MemberExpression":return fXa(e,t,r);case"MetaProperty":return[r("meta"),".",r("property")];case"BindExpression":return a.object&&l.push(r("object")),l.push(Ia(Pl([bl,AEi(e,t,r)]))),l;case"Identifier":return[a.name,KZ(e),gEi(e),Lk(e,r)];case"V8IntrinsicIdentifier":return["%",a.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadPropertyPattern":case"RestElement":return dEi(e,r);case"FunctionDeclaration":case"FunctionExpression":return hEi(e,r,t,n);case"ArrowFunctionExpression":return r4a(e,t,r,n);case"YieldExpression":return l.push("yield"),a.delegate&&l.push("*"),a.argument&&l.push(" ",r("argument")),l;case"AwaitExpression":if(l.push("await"),a.argument){l.push(" ",r("argument"));let{parent:A}=e;if(b_(A)&&A.callee===a||Yv(A)&&A.object===a){l=[Pl([bl,...l]),bl];let f=e.findAncestor(I=>I.type==="AwaitExpression"||I.type==="BlockStatement");if(f?.type!=="AwaitExpression"||!JZ(f.argument,I=>I===a))return Ia(l)}}return l;case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return VEi(e,t,r);case"ImportDeclaration":return N4a(e,t,r);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return F4a(e,t,r);case"ImportAttribute":return BTr(e,t,r);case"Program":case"BlockStatement":case"StaticBlock":return bEi(e,t,r);case"ClassBody":return C4a(e,t,r);case"ThrowStatement":return e4a(e,t,r);case"ReturnStatement":return $Xa(e,t,r);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return Xbi(e,t,r);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return ubt(e,t,r);case"Property":return ibt(a)?YTr(e,t,r):BTr(e,t,r);case"ObjectProperty":return BTr(e,t,r);case"ObjectMethod":return YTr(e,t,r);case"Decorator":return["@",r("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return dRr(e,t,r);case"SequenceExpression":{let{parent:A}=e;if(A.type==="ExpressionStatement"||A.type==="ForStatement"){let f=[];return e.each(({isFirst:I})=>{I?f.push(r()):f.push(",",Pl([zg,r()]))},"expressions"),Ia(f)}return Ia(vC([",",zg],e.map(r,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[r("value"),o];case"UnaryExpression":return l.push(a.operator),/[a-z]$/u.test(a.operator)&&l.push(" "),ig(a.argument)?l.push(Ia(["(",Pl([bl,r("argument")]),bl,")"])):l.push(r("argument")),l;case"UpdateExpression":return[a.prefix?a.operator:"",r("argument"),a.prefix?"":a.operator];case"ConditionalExpression":return hRr(e,t,r,n);case"VariableDeclaration":{let A=e.map(r,"declarations"),f=e.parent,I=f.type==="ForStatement"||f.type==="ForInStatement"||f.type==="ForOfStatement",C=a.declarations.some(E=>E.init),b;return A.length===1&&!ig(a.declarations[0])?b=A[0]:A.length>0&&(b=Pl(A[0])),l=[AV(e),a.kind,b?[" ",b]:"",Pl(A.slice(1).map(E=>[",",C&&!I?xl:zg,E]))],I&&f.body!==a||l.push(o),Ia(l)}case"WithStatement":return Ia(["with (",r("object"),")",tce(a.body,r("body"))]);case"IfStatement":{let A=tce(a.consequent,r("consequent")),f=Ia(["if (",Ia([Pl([bl,r("test")]),bl]),")",A]);if(l.push(f),a.alternate){let I=ig(a.consequent,fA.Trailing|fA.Line)||ibi(a),C=a.consequent.type==="BlockStatement"&&!I;l.push(C?" ":xl),ig(a,fA.Dangling)&&l.push(N2(e,t),I?xl:" "),l.push("else",Ia(tce(a.alternate,r("alternate"),a.alternate.type==="IfStatement")))}return l}case"ForStatement":{let A=tce(a.body,r("body")),f=N2(e,t),I=f?[f,bl]:"";return!a.init&&!a.test&&!a.update?[I,Ia(["for (;;)",A])]:[I,Ia(["for (",Ia([Pl([bl,r("init"),";",zg,r("test"),";",zg,r("update")]),bl]),")",A])]}case"WhileStatement":return Ia(["while (",Ia([Pl([bl,r("test")]),bl]),")",tce(a.body,r("body"))]);case"ForInStatement":return Ia(["for (",r("left")," in ",r("right"),")",tce(a.body,r("body"))]);case"ForOfStatement":return Ia(["for",a.await?" await":""," (",r("left")," of ",r("right"),")",tce(a.body,r("body"))]);case"DoWhileStatement":{let A=tce(a.body,r("body"));return l=[Ia(["do",A])],a.body.type==="BlockStatement"?l.push(" "):l.push(xl),l.push("while (",Ia([Pl([bl,r("test")]),bl]),")",o),l}case"DoExpression":return[a.async?"async ":"","do ",r("body")];case"BreakStatement":case"ContinueStatement":return l.push(a.type==="BreakStatement"?"break":"continue"),a.label&&l.push(" ",r("label")),l.push(o),l;case"LabeledStatement":return a.body.type==="EmptyStatement"?[r("label"),":;"]:[r("label"),": ",r("body")];case"TryStatement":return["try ",r("block"),a.handler?[" ",r("handler")]:"",a.finalizer?[" finally ",r("finalizer")]:""];case"CatchClause":if(a.param){let A=ig(a.param,I=>!zM(I)||I.leading&&dO(t.originalText,BC(I))||I.trailing&&dO(t.originalText,ZS(I),{backwards:!0})),f=r("param");return["catch ",A?["(",Pl([bl,f]),bl,") "]:["(",f,") "],r("body")]}return["catch ",r("body")];case"SwitchStatement":return[Ia(["switch (",Pl([bl,r("discriminant")]),bl,")"])," {",a.cases.length>0?Pl([xl,vC(xl,e.map(({node:A,isLast:f})=>[r(),!f&&fee(A,t)?xl:""],"cases"))]):"",xl,"}"];case"SwitchCase":{a.test?l.push("case ",r("test"),":"):l.push("default:"),ig(a,fA.Dangling)&&l.push(" ",N2(e,t));let A=a.consequent.filter(f=>f.type!=="EmptyStatement");if(A.length>0){let f=QTr(e,t,r,"consequent");l.push(A.length===1&&A[0].type==="BlockStatement"?[" ",f]:Pl([xl,f]))}return l}case"DebuggerStatement":return["debugger",o];case"ClassDeclaration":case"ClassExpression":return wEi(e,t,r);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return NEi(e,t,r);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":case"AccessorProperty":return DEi(e,t,r);case"TemplateElement":return pme(a.value.raw);case"TemplateLiteral":return Rbi(e,r,t);case"TaggedTemplateExpression":return TYa(e,r);case"PrivateIdentifier":return["#",a.name];case"PrivateName":return["#",r("id")];case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":return["module ",r("body")];case"InterpreterDirective":default:throw new jRe(a,"ESTree")}}function YEi(e,t,r){let{parent:n,node:a,key:o}=e,l=[r("expression")];switch(a.type){case"AsConstExpression":l.push(" as const");break;case"AsExpression":case"TSAsExpression":l.push(" as ",r("typeAnnotation"));break;case"SatisfiesExpression":case"TSSatisfiesExpression":l.push(" satisfies ",r("typeAnnotation"));break}return o==="callee"&&b_(n)||o==="object"&&Yv(n)?Ia([Pl([bl,...l]),bl]):l}function J4a(e,t,r){let{node:n}=e,a=[AV(e),"component"];n.id&&a.push(" ",r("id")),a.push(r("typeParameters"));let o=U4a(e,r,t);return n.rendersType?a.push(Ia([o," ",r("rendersType")])):a.push(Ia([o])),n.body&&a.push(" ",r("body")),t.semi&&n.type==="DeclareComponent"&&a.push(";"),a}function U4a(e,t,r){let{node:n}=e,a=n.params;if(n.rest&&(a=[...a,n.rest]),a.length===0)return["(",N2(e,r,{filter:l=>t4(r.originalText,BC(l))===")"}),")"];let o=[];return j4a(e,(l,A)=>{let f=A===a.length-1;f&&n.rest&&o.push("..."),o.push(t()),!f&&(o.push(","),fee(a[A],r)?o.push(xl,xl):o.push(zg))}),["(",Pl([bl,...o]),lh(pee(r,"all")&&!K4a(n,a)?",":""),bl,")"]}function K4a(e,t){var r;return e.rest||((r=U0(!1,t,-1))==null?void 0:r.type)==="RestElement"}function j4a(e,t){let{node:r}=e,n=0,a=o=>t(o,n++);e.each(a,"params"),r.rest&&e.call(a,"rest")}function z4a(e,t,r){let{node:n}=e;return n.shorthand?r("local"):[r("name")," as ",r("local")]}function q4a(e,t,r){let{node:n}=e,a=[];return n.name&&a.push(r("name"),n.optional?"?: ":": "),a.push(r("typeAnnotation")),a}function QEi(e,t,r){return ubt(e,r,t)}function XEi(e,t){let{node:r}=e,n=t("id");r.computed&&(n=["[",n,"]"]);let a="";return r.initializer&&(a=t("initializer")),r.init&&(a=t("init")),a?[n," = ",a]:n}function $4a(e,t,r){let{node:n}=e,a;if(n.type==="EnumSymbolBody"||n.explicitType)switch(n.type){case"EnumBooleanBody":a="boolean";break;case"EnumNumberBody":a="number";break;case"EnumBigIntBody":a="bigint";break;case"EnumStringBody":a="string";break;case"EnumSymbolBody":a="symbol";break}return[a?`of ${a} `:"",QEi(e,t,r)]}function JEi(e,t,r){let{node:n}=e;return[AV(e),n.const?"const ":"","enum ",t("id")," ",n.type==="TSEnumDeclaration"?QEi(e,t,r):t("body")]}function eJa(e,t,r){let{node:n}=e,a=["hook"];n.id&&a.push(" ",r("id"));let o=Sme(e,r,t,!1,!0),l=lbt(e,r),A=zRe(n,l);return a.push(Ia([A?Ia(o):o,l]),n.body?" ":"",r("body")),a}function tJa(e,t,r){let{node:n}=e,a=[AV(e),"hook"];return n.id&&a.push(" ",r("id")),t.semi&&a.push(";"),a}function Pyi(e){var t;let{node:r}=e;return r.type==="HookTypeAnnotation"&&((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareHook"}function rJa(e,t,r){let{node:n}=e,a=[];a.push(Pyi(e)?"":"hook ");let o=Sme(e,r,t,!1,!0),l=[];return l.push(Pyi(e)?": ":" => ",r("returnType")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function UEi(e,t,r){let{node:n}=e,a=[AV(e),"interface"],o=[],l=[];n.type!=="InterfaceTypeAnnotation"&&o.push(" ",r("id"),r("typeParameters"));let A=n.typeParameters&&!ig(n.typeParameters,fA.Trailing|fA.Line);return H_(n.extends)&&l.push(A?lh(" ",zg,{groupId:fRr(n.typeParameters)}):zg,"extends ",(n.extends.length===1?gHa:Pl)(vC([",",zg],e.map(r,"extends")))),ig(n.id,fA.Trailing)||H_(n.extends)?A?a.push(Ia([...o,Pl(l)])):a.push(Ia(Pl([...o,...l]))):a.push(...o,...l),a.push(" ",r("body")),Ia(a)}function nJa(e,t,r){let{node:n}=e;if(Kyi(n))return n.type.slice(0,-14).toLowerCase();let a=t.semi?";":"";switch(n.type){case"ComponentDeclaration":case"DeclareComponent":case"ComponentTypeAnnotation":return J4a(e,t,r);case"ComponentParameter":return z4a(e,t,r);case"ComponentTypeParameter":return q4a(e,t,r);case"HookDeclaration":return eJa(e,t,r);case"DeclareHook":return tJa(e,t,r);case"HookTypeAnnotation":return rJa(e,t,r);case"DeclareClass":return wEi(e,t,r);case"DeclareFunction":return[AV(e),"function ",r("id"),r("predicate"),a];case"DeclareModule":return["declare module ",r("id")," ",r("body")];case"DeclareModuleExports":return["declare module.exports",Lk(e,r),a];case"DeclareNamespace":return["declare namespace ",r("id")," ",r("body")];case"DeclareVariable":return[AV(e),n.kind??"var"," ",r("id"),a];case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return VEi(e,t,r);case"DeclareOpaqueType":case"OpaqueType":return VXa(e,t,r);case"DeclareTypeAlias":case"TypeAlias":return qbi(e,t,r);case"IntersectionTypeAnnotation":return $bi(e,t,r);case"UnionTypeAnnotation":return eEi(e,t,r);case"ConditionalTypeAnnotation":return hRr(e,t,r);case"InferTypeAnnotation":return nEi(e,t,r);case"FunctionTypeAnnotation":return tEi(e,t,r);case"TupleTypeAnnotation":return dRr(e,t,r);case"TupleTypeLabeledElement":return sEi(e,t,r);case"TupleTypeSpreadElement":return iEi(e,t,r);case"GenericTypeAnnotation":return[r("id"),w4e(e,t,r,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return rEi(e,t,r);case"TypeAnnotation":return aEi(e,t,r);case"TypeParameter":return vEi(e,t,r);case"TypeofTypeAnnotation":return lEi(e,r);case"ExistsTypeAnnotation":return"*";case"ArrayTypeAnnotation":return cEi(r);case"DeclareEnum":case"EnumDeclaration":return JEi(e,r,t);case"EnumBooleanBody":case"EnumNumberBody":case"EnumBigIntBody":case"EnumStringBody":case"EnumSymbolBody":return $4a(e,r,t);case"EnumBooleanMember":case"EnumNumberMember":case"EnumBigIntMember":case"EnumStringMember":case"EnumDefaultedMember":return XEi(e,r);case"FunctionTypeParam":{let o=n.name?r("name"):e.parent.this===n?"this":"";return[o,KZ(e),o?": ":"",r("typeAnnotation")]}case"DeclareInterface":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return UEi(e,t,r);case"ClassImplements":case"InterfaceExtends":return[r("id"),r("typeParameters")];case"NullableTypeAnnotation":return["?",r("typeAnnotation")];case"Variance":{let{kind:o}=n;return jTr.ok(o==="plus"||o==="minus"),o==="plus"?"+":"-"}case"KeyofTypeAnnotation":return["keyof ",r("argument")];case"ObjectTypeCallProperty":return[n.static?"static ":"",r("value")];case"ObjectTypeMappedTypeProperty":return A4a(e,t,r);case"ObjectTypeIndexer":return[n.static?"static ":"",n.variance?r("variance"):"","[",r("id"),n.id?": ":"",r("key"),"]: ",r("value")];case"ObjectTypeProperty":{let o="";return n.proto?o="proto ":n.static&&(o="static "),[o,n.kind!=="init"?n.kind+" ":"",n.variance?r("variance"):"",G4e(e,t,r),KZ(e),ibt(n)?"":": ",r("value")]}case"ObjectTypeAnnotation":return ubt(e,t,r);case"ObjectTypeInternalSlot":return[n.static?"static ":"","[[",r("id"),"]]",KZ(e),n.method?"":": ",r("value")];case"ObjectTypeSpreadProperty":return dEi(e,r);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[r("qualification"),".",r("id")];case"NullLiteralTypeAnnotation":return"null";case"BooleanLiteralTypeAnnotation":return String(n.value);case"StringLiteralTypeAnnotation":return pme(HRe(UM(n),t));case"NumberLiteralTypeAnnotation":return QRe(n.raw??n.extra.raw);case"BigIntLiteralTypeAnnotation":return XTr(n.raw??n.extra.raw);case"TypeCastExpression":return["(",r("expression"),Lk(e,r),")"];case"TypePredicate":return uEi(e,r);case"TypeOperator":return[n.operator," ",r("typeAnnotation")];case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w4e(e,t,r,"params");case"InferredPredicate":case"DeclaredPredicate":return[e.key==="predicate"&&e.parent.type!=="DeclareFunction"&&!e.parent.returnType?": ":" ","%checks",...n.type==="DeclaredPredicate"?["(",r("value"),")"]:[]];case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return YEi(e,t,r)}}function iJa(e,t,r){var n;let{node:a}=e;if(!a.type.startsWith("TS"))return;if(jyi(a))return a.type.slice(2,-7).toLowerCase();let o=t.semi?";":"",l=[];switch(a.type){case"TSThisType":return"this";case"TSTypeAssertion":{let A=!(Vk(a.expression)||e4(a.expression)),f=Ia(["<",Pl([bl,r("typeAnnotation")]),bl,">"]),I=[lh("("),Pl([bl,r("expression")]),bl,lh(")")];return A?dme([[f,r("expression")],[f,Ia(I,{shouldBreak:!0})],[f,r("expression")]]):Ia([f,r("expression")])}case"TSDeclareFunction":return hEi(e,r,t);case"TSExportAssignment":return["export = ",r("expression"),o];case"TSModuleBlock":return bEi(e,t,r);case"TSInterfaceBody":case"TSTypeLiteral":return ubt(e,t,r);case"TSTypeAliasDeclaration":return qbi(e,t,r);case"TSQualifiedName":return[r("left"),".",r("right")];case"TSAbstractMethodDefinition":case"TSDeclareMethod":return NEi(e,t,r);case"TSAbstractAccessorProperty":case"TSAbstractPropertyDefinition":return DEi(e,t,r);case"TSInterfaceHeritage":case"TSClassImplements":case"TSExpressionWithTypeArguments":case"TSInstantiationExpression":return[r("expression"),r(a.typeArguments?"typeArguments":"typeParameters")];case"TSTemplateLiteralType":return Rbi(e,r,t);case"TSNamedTupleMember":return sEi(e,t,r);case"TSRestType":return iEi(e,t,r);case"TSOptionalType":return[r("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return UEi(e,t,r);case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return w4e(e,t,r,"params");case"TSTypeParameter":return vEi(e,t,r);case"TSAsExpression":case"TSSatisfiesExpression":return YEi(e,t,r);case"TSArrayType":return cEi(r);case"TSPropertySignature":return[a.readonly?"readonly ":"",G4e(e,t,r),KZ(e),Lk(e,r)];case"TSParameterProperty":return[ebt(a),a.static?"static ":"",a.override?"override ":"",a.readonly?"readonly ":"",r("parameter")];case"TSTypeQuery":return lEi(e,r);case"TSIndexSignature":{let A=a.parameters.length>1?lh(pee(t)?",":""):"",f=Ia([Pl([bl,vC([", ",bl],e.map(r,"parameters"))]),A,bl]),I=e.parent.type==="ClassBody"&&e.key==="body";return[I&&a.static?"static ":"",a.readonly?"readonly ":"","[",a.parameters?f:"","]",Lk(e,r),I?o:""]}case"TSTypePredicate":return uEi(e,r);case"TSNonNullExpression":return[r("expression"),"!"];case"TSImportType":return["import(",r("argument"),")",a.qualifier?[".",r("qualifier")]:"",w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSLiteralType":return r("literal");case"TSIndexedAccessType":return rEi(e,t,r);case"TSTypeOperator":return[a.operator," ",r("typeAnnotation")];case"TSMappedType":return d4a(e,t,r);case"TSMethodSignature":{let A=a.kind&&a.kind!=="method"?`${a.kind} `:"";l.push(ebt(a),A,a.computed?"[":"",r("key"),a.computed?"]":"",KZ(e));let f=Sme(e,r,t,!1,!0),I=a.returnType?"returnType":"typeAnnotation",C=a[I],b=C?Lk(e,r,I):"",E=zRe(a,b);return l.push(E?Ia(f):f),C&&l.push(Ia(b)),Ia(l)}case"TSNamespaceExportDeclaration":return["export as namespace ",r("id"),t.semi?";":""];case"TSEnumDeclaration":return JEi(e,r,t);case"TSEnumMember":return XEi(e,r);case"TSImportEqualsDeclaration":return[a.isExport?"export ":"","import ",PEi(a,!1),r("id")," = ",r("moduleReference"),t.semi?";":""];case"TSExternalModuleReference":return["require(",r("expression"),")"];case"TSModuleDeclaration":{let{parent:A}=e,f=A.type==="TSModuleDeclaration",I=((n=a.body)==null?void 0:n.type)==="TSModuleDeclaration";return f?l.push("."):(l.push(AV(e)),a.kind!=="global"&&l.push(a.kind," ")),l.push(r("id")),I?l.push(r("body")):a.body?l.push(" ",Ia(r("body"))):l.push(o),l}case"TSConditionalType":return hRr(e,t,r);case"TSInferType":return nEi(e,t,r);case"TSIntersectionType":return $bi(e,t,r);case"TSUnionType":return eEi(e,t,r);case"TSFunctionType":case"TSCallSignatureDeclaration":case"TSConstructorType":case"TSConstructSignatureDeclaration":return tEi(e,t,r);case"TSTupleType":return dRr(e,t,r);case"TSTypeReference":return[r("typeName"),w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSTypeAnnotation":return aEi(e,t,r);case"TSEmptyBodyFunctionExpression":return pRr(e,t,r);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Fyi(e,r,"?");case"TSJSDocNonNullableType":return Fyi(e,r,"!");case"TSParenthesizedType":default:throw new jRe(a,"TypeScript")}}function sJa(e,t,r,n){if(Vbi(e))return _Qa(e,t);for(let a of[nXa,jQa,nJa,iJa,X4a]){let o=a(e,t,r,n);if(o!==void 0)return o}}var oJa=_0(["ClassMethod","ClassPrivateMethod","ClassProperty","ClassAccessorProperty","AccessorProperty","TSAbstractAccessorProperty","PropertyDefinition","TSAbstractPropertyDefinition","ClassPrivateProperty","MethodDefinition","TSAbstractMethodDefinition","TSDeclareMethod"]);function aJa(e,t,r,n){var a;e.isRoot&&((a=t.__onHtmlBindingRoot)==null||a.call(t,e.node,t));let o=sJa(e,t,r,n);if(!o)return"";let{node:l}=e;if(oJa(l))return o;let A=H_(l.decorators),f=aXa(e,t,r),I=l.type==="ClassExpression";if(A&&!I)return GTr(o,E=>Ia([f,E]));let C=Eme(e,t),b=S4a(e,t);return!f&&!C&&!b?o:GTr(o,E=>[b?";":"",C?"(":"",C&&I&&A?[Pl([zg,f,E]),zg]:[f,E],C?")":""])}var cJa=aJa,lJa={avoidAstMutation:!0},uJa=[{linguistLanguageId:174,name:"JSON.stringify",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"],parsers:["json-stringify"],vscodeLanguageIds:["json"]},{linguistLanguageId:174,name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","flake.lock","mcmod.info",".babelrc",".jscsrc",".jshintrc",".jslintrc",".swcrc"],parsers:["json"],vscodeLanguageIds:["json"]},{linguistLanguageId:423,name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".code-workspace",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[],parsers:["jsonc"],vscodeLanguageIds:["jsonc"]},{linguistLanguageId:175,name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",parsers:["json5"],vscodeLanguageIds:["json5"]}],KEi={};tbt(KEi,{getVisitorKeys:()=>pJa,massageAstNode:()=>jEi,print:()=>fJa});var gJa={JsonRoot:["node"],ArrayExpression:["elements"],ObjectExpression:["properties"],ObjectProperty:["key","value"],UnaryExpression:["argument"],NullLiteral:[],BooleanLiteral:[],StringLiteral:[],NumericLiteral:[],Identifier:[],TemplateLiteral:["quasis"],TemplateElement:[]},AJa=gJa,dJa=Jyi(AJa),pJa=dJa;function fJa(e,t,r){let{node:n}=e;switch(n.type){case"JsonRoot":return[r("node"),xl];case"ArrayExpression":{if(n.elements.length===0)return"[]";let a=e.map(()=>e.node===null?"null":r(),"elements");return["[",Pl([xl,vC([",",xl],a)]),xl,"]"]}case"ObjectExpression":return n.properties.length===0?"{}":["{",Pl([xl,vC([",",xl],e.map(r,"properties"))]),xl,"}"];case"ObjectProperty":return[r("key"),": ",r("value")];case"UnaryExpression":return[n.operator==="+"?"":n.operator,r("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return n.value?"true":"false";case"StringLiteral":return JSON.stringify(n.value);case"NumericLiteral":return Wyi(e)?JSON.stringify(String(n.value)):JSON.stringify(n.value);case"Identifier":return Wyi(e)?JSON.stringify(n.name):n.name;case"TemplateLiteral":return r(["quasis",0]);case"TemplateElement":return JSON.stringify(n.value.cooked);default:throw new jRe(n,"JSON")}}function Wyi(e){return e.key==="key"&&e.parent.type==="ObjectProperty"}var IJa=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function jEi(e,t){let{type:r}=e;if(r==="ObjectProperty"){let{key:n}=e;n.type==="Identifier"?t.key={type:"StringLiteral",value:n.name}:n.type==="NumericLiteral"&&(t.key={type:"StringLiteral",value:String(n.value)});return}if(r==="UnaryExpression"&&e.operator==="+")return t.argument;if(r==="ArrayExpression"){for(let[n,a]of e.elements.entries())a===null&&t.elements.splice(n,0,{type:"NullLiteral"});return}if(r==="TemplateLiteral")return{type:"StringLiteral",value:e.quasis[0].value.cooked}}jEi.ignoredProperties=IJa;var E4e={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},rce="JavaScript",hJa={arrowParens:{category:rce,type:"choice",default:"always",description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:E4e.bracketSameLine,objectWrap:E4e.objectWrap,bracketSpacing:E4e.bracketSpacing,jsxBracketSameLine:{category:rce,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{category:rce,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},experimentalOperatorPosition:{category:rce,type:"choice",default:"end",description:"Where to print operators when binary expressions wrap lines.",choices:[{value:"start",description:"Print operators at the start of new lines."},{value:"end",description:"Print operators at the end of previous lines."}]},experimentalTernaries:{category:rce,type:"boolean",default:!1,description:"Use curious ternaries, with the question mark after the condition.",oppositeDescription:"Default behavior of ternaries; keep question marks on the same line as the consequent."},singleQuote:E4e.singleQuote,jsxSingleQuote:{category:rce,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{category:rce,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{category:rce,type:"choice",default:"all",description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"all",description:"Trailing commas wherever possible (including function arguments)."},{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."}]},singleAttributePerLine:E4e.singleAttributePerLine},zEi=hJa,qRe={estree:Yyi,"estree-json":KEi},qEi=[...AMa,...uJa],mJa=Hyi;var W4e={};sI(W4e,{default:()=>YUa,languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var CJa=Object.defineProperty,n1i=(e,t)=>{for(var r in t)CJa(e,r,{get:t[r],enumerable:!0})},i1i={};n1i(i1i,{languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var _Ja=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},mRr=_Ja,yJa="indent",bJa="group",EJa="if-break",ERr="line",SJa="break-parent",s1i=()=>{},V4e=s1i,o1i=s1i;function pV(e){return V4e(e),{type:yJa,contents:e}}function $M(e,t={}){return V4e(e),o1i(t.expandedStates,!0),{type:bJa,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function lj(e,t="",r={}){return V4e(e),t!==""&&V4e(t),{type:EJa,breakContents:e,flatContents:t,groupId:r.groupId}}var vJa={type:SJa},BJa={type:ERr,hard:!0},eNe={type:ERr},Qv={type:ERr,soft:!0},AT=[BJa,vJa];function Wk(e,t){V4e(e),o1i(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l0}var l1i=VJa,PJa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},WJa=PJa,F4e=null;function L4e(e){if(F4e!==null&&typeof F4e.property){let t=F4e;return F4e=L4e.prototype=null,t}return F4e=L4e.prototype=e??Object.create(null),new L4e}var OJa=10;for(let e=0;e<=OJa;e++)L4e();function MJa(e){return L4e(e)}function HJa(e,t="type"){MJa(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var YJa=HJa,QJa=class{constructor(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},u1i=class{constructor(e,t,r,n,a,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},g1i={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},gTu=new Set(Object.keys(g1i)),$Re;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})($Re||($Re={}));var XJa=YJa(g1i,"kind"),JJa=XJa;function A1i(e){return e.loc.start}function d1i(e){return e.loc.end}function UJa(e){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/u.test(e)}function KJa(e){return`# @format +`||a==="\r"||a==="\u2028"||a==="\u2029")return t+1}return t}var c1i=RJa;function NJa(e,t,r={}){let n=a1i(e,r.backwards?t-1:t,r),a=c1i(e,n,r);return n!==a}var DJa=NJa;function kJa(e,t){if(t===!1)return!1;if(e.charAt(t)==="/"&&e.charAt(t+1)==="*"){for(let r=t+2;r0}var l1i=VJa,PJa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},WJa=PJa,F4e=null;function L4e(e){if(F4e!==null&&typeof F4e.property){let t=F4e;return F4e=L4e.prototype=null,t}return F4e=L4e.prototype=e??Object.create(null),new L4e}var OJa=10;for(let e=0;e<=OJa;e++)L4e();function MJa(e){return L4e(e)}function HJa(e,t="type"){MJa(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var YJa=HJa,QJa=class{constructor(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},u1i=class{constructor(e,t,r,n,a,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},g1i={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},ATu=new Set(Object.keys(g1i)),$Re;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})($Re||($Re={}));var XJa=YJa(g1i,"kind"),JJa=XJa;function A1i(e){return e.loc.start}function d1i(e){return e.loc.end}function UJa(e){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/u.test(e)}function KJa(e){return`# @format `+e}function jJa(e,t,r){let{node:n}=e;if(!n.description)return"";let a=[r("description")];return n.kind==="InputValueDefinition"&&!n.description.block?a.push(eNe):a.push(AT),a}var Cee=jJa;function zJa(e,t,r){let{node:n}=e;switch(n.kind){case"Document":return[...Wk(AT,cj(e,t,r,"definitions")),AT];case"OperationDefinition":{let a=t.originalText[A1i(n)]!=="{",o=!!n.name;return[a?n.operation:"",a&&o?[" ",r("name")]:"",a&&!o&&l1i(n.variableDefinitions)?" ":"",$Ei(e,r),jZ(e,r,n),!a&&!o?"":" ",r("selectionSet")]}case"FragmentDefinition":return["fragment ",r("name"),$Ei(e,r)," on ",r("typeCondition"),jZ(e,r,n)," ",r("selectionSet")];case"SelectionSet":return["{",pV([AT,Wk(AT,cj(e,t,r,"selections"))]),AT,"}"];case"Field":return $M([n.alias?[r("alias"),": "]:"",r("name"),n.arguments.length>0?$M(["(",pV([Qv,Wk([lj("",", "),Qv],cj(e,t,r,"arguments"))]),Qv,")"]):"",jZ(e,r,n),n.selectionSet?" ":"",r("selectionSet")]);case"Name":return n.value;case"StringValue":if(n.block){let a=mRr(!1,n.value,'"""',String.raw`\"""`).split(` `);return a.length===1&&(a[0]=a[0].trim()),a.every(o=>o==="")&&(a.length=0),Wk(AT,['"""',...a,'"""'])}return['"',mRr(!1,mRr(!1,n.value,/["\\]/gu,String.raw`\$&`),` @@ -2215,7 +2215,7 @@ ${t.content}`},j8a=new Set(["position","raw"]);function A2i(e,t,r){if((e.type=== `," "),A=V8a(l,"`"),f="`".repeat(A||1),I=l.startsWith("`")||l.endsWith("`")||/^[\n ]/u.test(l)&&/[\n ]$/u.test(l)&&/[^\n ]/u.test(l)?" ":"";return[f,I,l,I,f]}case"wikiLink":{let l="";return t.proseWrap==="preserve"?l=o.value:l=DG(!1,o.value,/[\t\n]+/gu," "),["[[",l,"]]"]}case"link":switch(t.originalText[o.position.start.offset]){case"<":{let l="mailto:";return["<",o.url.startsWith(l)&&t.originalText.slice(o.position.start.offset+1,o.position.start.offset+1+l.length)!==l?o.url.slice(l.length):o.url,">"]}case"[":return["[",fV(e,t,r),"](",vRr(o.url,")"),mbt(o.title,t),")"];default:return t.originalText.slice(o.position.start.offset,o.position.end.offset)}case"image":return["![",o.alt||"","](",vRr(o.url,")"),mbt(o.title,t),")"];case"blockquote":return["> ",wme("> ",fV(e,t,r))];case"heading":return["#".repeat(o.depth)+" ",fV(e,t,r)];case"code":{if(o.isIndented){let f=" ".repeat(4);return wme(f,[f,rNe(o.value,DR)])}let l=t.__inJsTemplate?"~":"`",A=l.repeat(Math.max(3,l2i(o.value,l)+1));return[A,o.lang||"",o.meta?" "+o.meta:"",DR,rNe(I2i(o,t.originalText),DR),DR,A]}case"html":{let{parent:l,isLast:A}=e,f=l.type==="root"&&A?o.value.trimEnd():o.value,I=/^$/su.test(f);return rNe(f,I?DR:_bt(TRr))}case"list":{let l=L1i(o,e.parent),A=aja(o,t);return fV(e,t,r,{processor(f){let I=b(),C=f.node;if(C.children.length===2&&C.children[1].type==="html"&&C.children[0].position.start.column!==C.children[1].position.start.column)return[I,Z1i(f,t,r,I)];return[I,wme(" ".repeat(I.length),Z1i(f,t,r,I))];function b(){let E=o.ordered?(f.isFirst?o.start:A?1:o.start+f.index)+(l%2===0?". ":") "):l%2===0?"- ":"* ";return(o.isAligned||o.hasIndentedCodeblock)&&o.ordered?zja(E,t):E}}})}case"thematicBreak":{let{ancestors:l}=e,A=l.findIndex(f=>f.type==="list");return A===-1?"---":L1i(l[A],l[A+1])%2===0?"***":"---"}case"linkReference":return["[",fV(e,t,r),"]",o.referenceType==="full"?BRr(o):o.referenceType==="collapsed"?"[]":""];case"imageReference":switch(o.referenceType){case"full":return["![",o.alt||"","]",BRr(o)];default:return["![",o.alt,"]",o.referenceType==="collapsed"?"[]":""]}case"definition":{let l=t.proseWrap==="always"?o2i:" ";return hbt([BRr(o),":",wRr([l,vRr(o.url),o.title===null?"":[l,mbt(o.title,t,!1)]])])}case"footnote":return["[^",fV(e,t,r),"]"];case"footnoteReference":return O1i(o);case"footnoteDefinition":{let l=o.children.length===1&&o.children[0].type==="paragraph"&&(t.proseWrap==="never"||t.proseWrap==="preserve"&&o.children[0].position.start.line===o.children[0].position.end.line);return[O1i(o),": ",l?fV(e,t,r):hbt([wme(" ".repeat(4),fV(e,t,r,{processor:({isFirst:A})=>A?hbt([a2i,r()]):r()}))])]}case"table":return Tja(e,t,r);case"tableCell":return fV(e,t,r);case"break":return/\s/u.test(t.originalText[o.position.start.offset])?[" ",_bt(TRr)]:["\\",DR];case"liquidNode":return rNe(o.value,DR);case"import":case"export":case"jsx":return o.value;case"esComment":return["{/* ",o.value," */}"];case"math":return["$$",DR,o.value?[rNe(o.value,DR),DR]:"","$$"];case"inlineMath":return t.originalText.slice(bbt(o),Ebt(o));case"tableRow":case"listItem":case"text":default:throw new M8a(o,"Markdown")}}function Z1i(e,t,r,n){let{node:a}=e,o=a.checked===null?"":a.checked?"[x] ":"[ ] ";return[o,fV(e,t,r,{processor({node:l,isFirst:A}){if(A&&l.type!=="list")return wme(" ".repeat(o.length),r());let f=" ".repeat(i6a(t.tabWidth-n.length,0,3));return[f,wme(f,r())]}})]}function zja(e,t){let r=n();return e+" ".repeat(r>=4?0:r);function n(){let a=e.length%t.tabWidth;return a===0?0:t.tabWidth-a}}function L1i(e,t){return qja(e,t,r=>r.ordered===e.ordered)}function qja(e,t,r){let n=-1;for(let a of t.children)if(a.type===e.type&&r(a)?n++:n=-1,a===e)return n}function $ja(e,t,r){let n=[],a=null,{children:o}=e.node;for(let[l,A]of o.entries())switch(MRr(A)){case"start":a===null&&(a={index:l,offset:A.position.end.offset});break;case"end":a!==null&&(n.push({start:a,end:{index:l,offset:A.position.start.offset}}),a=null);break;default:break}return fV(e,t,r,{processor({index:l}){if(n.length>0){let A=n[0];if(l===A.start.index)return[V1i(o[A.start.index]),t.originalText.slice(A.start.offset,A.end.offset),V1i(o[A.end.index])];if(A.start.index{let l=a(e);l!==!1&&(o.length>0&&e6a(e)&&(o.push(DR),(t6a(e,t)||W1i(e))&&o.push(DR),W1i(e)&&o.push(DR)),o.push(l))},"children"),o}function V1i(e){if(e.type==="html")return e.value;if(e.type==="paragraph"&&Array.isArray(e.children)&&e.children.length===1&&e.children[0].type==="esComment")return["{/* ",e.children[0].value," */}"]}function MRr(e){let t;if(e.type==="html")t=e.value.match(/^$/u);else{let r;e.type==="esComment"?r=e:e.type==="paragraph"&&e.children.length===1&&e.children[0].type==="esComment"&&(r=e.children[0]),r&&(t=r.value.match(/^prettier-ignore(?:-(start|end))?$/u))}return t?t[1]||"next":!1}function e6a({node:e,parent:t}){let r=d2i.has(e.type),n=e.type==="html"&&p2i.has(t.type);return!r&&!n}function P1i(e,t){return e.type==="listItem"&&(e.spread||t.originalText.charAt(e.position.end.offset-1)===` `)}function t6a({node:e,previous:t,parent:r},n){if(P1i(t,n))return!0;let a=t.type===e.type&&Kja.has(e.type),o=r.type==="listItem"&&!P1i(r,n),l=MRr(t)==="next",A=e.type==="html"&&t.type==="html"&&t.position.end.line+1===e.position.start.line,f=e.type==="html"&&r.type==="listItem"&&t.type==="paragraph"&&t.position.end.line+1===e.position.start.line;return!(a||o||l||A||f)}function W1i({node:e,previous:t}){let r=t.type==="list",n=e.type==="code"&&e.isIndented;return r&&n}function r6a(e){let t=e.findAncestor(r=>r.type==="linkReference"||r.type==="imageReference");return t&&(t.type!=="linkReference"||t.referenceType!=="full")}var n6a=(e,t)=>{for(let r of t)e=DG(!1,e,r,encodeURIComponent(r));return e};function vRr(e,t=[]){let r=[" ",...Array.isArray(t)?t:[t]];return new RegExp(r.map(n=>Bbt(n)).join("|"),"u").test(e)?`<${n6a(e,"<>")}>`:e}function mbt(e,t,r=!0){if(!e)return"";if(r)return" "+mbt(e,t,!1);if(e=DG(!1,e,/\\(?=["')])/gu,""),e.includes('"')&&e.includes("'")&&!e.includes(")"))return`(${e})`;let n=W8a(e,t.singleQuote);return e=DG(!1,e,"\\","\\\\"),e=DG(!1,e,n,`\\${n}`),`${n}${e}${n}`}function i6a(e,t,r){return Math.max(t,Math.min(e,r))}function s6a(e){return e.index>0&&MRr(e.previous)==="next"}function BRr(e){return`[${(0,S8a.default)(e.label)}]`}function O1i(e){return`[^${e.label}]`}var o6a={preprocess:Hja,print:jja,embed:lja,massageAstNode:z8a,hasPrettierIgnore:s6a,insertPragma:K8a,getVisitorKeys:hja},a6a=o6a,m2i=[{linguistLanguageId:222,name:"Markdown",type:"prose",color:"#083fa1",aliases:["md","pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".md",".livemd",".markdown",".mdown",".mdwn",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr","README"],tmScope:"text.md",parsers:["markdown"],vscodeLanguageIds:["markdown"]},{linguistLanguageId:222,name:"MDX",type:"prose",color:"#083fa1",aliases:["md","pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".mdx"],filenames:[],tmScope:"text.md",parsers:["mdx"],vscodeLanguageIds:["mdx"]}],M1i={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},c6a={proseWrap:M1i.proseWrap,singleQuote:M1i.singleQuote},C2i=c6a,HRr={};X1i(HRr,{markdown:()=>Y1i,mdx:()=>T6a,remark:()=>Y1i});var l6a=oNe($Ua(),1),u6a=oNe(rKa(),1),g6a=oNe(c8a(),1),A6a=oNe(y8a(),1),d6a=/^import\s/u,p6a=/^export\s/u,f6a=String.raw`[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)*|`,I6a=/|/u,h6a=/^\{\s*\/\*(.*)\*\/\s*\}/u,m6a=` -`,_2i=e=>d6a.test(e),kRr=e=>p6a.test(e),y2i=(e,t)=>{let r=t.indexOf(m6a),n=t.slice(0,r);if(kRr(n)||_2i(n))return e(n)({type:kRr(n)?"export":"import",value:n})},b2i=(e,t)=>{let r=h6a.exec(t);if(r)return e(r[0])({type:"esComment",value:r[1].trim()})};y2i.locator=e=>kRr(e)||_2i(e)?-1:1;b2i.locator=(e,t)=>e.indexOf("{",t);var C6a=function(){let{Parser:e}=this,{blockTokenizers:t,blockMethods:r,inlineTokenizers:n,inlineMethods:a}=e.prototype;t.esSyntax=y2i,n.esComment=b2i,r.splice(r.indexOf("paragraph"),0,"esSyntax"),a.splice(a.indexOf("text"),0,"esComment")},_6a=function(){let e=this.Parser.prototype;e.blockMethods=["frontMatter",...e.blockMethods],e.blockTokenizers.frontMatter=t;function t(r,n){let a=WRr(n);if(a.frontMatter)return r(a.frontMatter.raw)(a.frontMatter)}t.onlyAtStart=!0},y6a=_6a;function b6a(){return e=>dNe(e,(t,r,[n])=>t.type!=="html"||I6a.test(t.value)||p2i.has(n.type)?t:{...t,type:"jsx"})}var E6a=b6a,S6a=function(){let e=this.Parser.prototype,t=e.inlineMethods;t.splice(t.indexOf("text"),0,"liquid"),e.inlineTokenizers.liquid=r;function r(n,a){let o=a.match(/^(\{%.*?%\}|\{\{.*?\}\})/su);if(o)return n(o[0])({type:"liquidNode",value:o[0]})}r.locator=function(n,a){return n.indexOf("{",a)}},v6a=S6a,B6a=function(){let e="wikiLink",t=/^\[\[(?.+?)\]\]/su,r=this.Parser.prototype,n=r.inlineMethods;n.splice(n.indexOf("link"),0,e),r.inlineTokenizers.wikiLink=a;function a(o,l){let A=t.exec(l);if(A){let f=A.groups.linkContents.trim();return o(A[0])({type:e,value:f})}}a.locator=function(o,l){return o.indexOf("[",l)}},w6a=B6a;function E2i({isMDX:e}){return t=>{let r=(0,A6a.default)().use(g6a.default,{commonmark:!0,...e&&{blocks:[f6a]}}).use(l6a.default).use(y6a).use(u6a.default).use(e?C6a:H1i).use(v6a).use(e?E6a:H1i).use(w6a);return r.run(r.parse(t))}}function H1i(){}var S2i={astFormat:"mdast",hasPragma:U8a,locStart:bbt,locEnd:Ebt},Y1i={...S2i,parse:E2i({isMDX:!1})},T6a={...S2i,parse:E2i({isMDX:!0})},v2i={mdast:a6a},R6a=n2i;var Xme={};sI(Xme,{default:()=>Rnc,parsers:()=>Sce});var MSi=Object.defineProperty,HSi=e=>{throw TypeError(e)},N6a=(e,t,r)=>t in e?MSi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,YSi=(e,t)=>{for(var r in t)MSi(e,r,{get:t[r],enumerable:!0})},eJe=(e,t,r)=>N6a(e,typeof t!="symbol"?t+"":t,r),D6a=(e,t,r)=>t.has(e)||HSi("Cannot "+r),k6a=(e,t,r)=>t.has(e)?HSi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),fg=(e,t,r)=>(D6a(e,t,"access private method"),r),QSi={};YSi(QSi,{parsers:()=>Sce});var Sce={};YSi(Sce,{typescript:()=>Tnc});var x6a=()=>()=>{},TNr=x6a,G6a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ENe=G6a,F6a="5.7",x2=[],Z6a=new Map;function cJe(e){return e!==void 0?e.length:0}function hO(e,t){if(e!==void 0)for(let r=0;r0;return!1}function NNr(e,t){return t===void 0||t.length===0?e:e===void 0||e.length===0?t:[...e,...t]}function O6a(e,t,r=kNr){if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;ne?.at(t):(e,t)=>{if(e!==void 0&&(t=sNr(e,t),t>1),f=r(e[A],A);switch(n(f,t)){case-1:o=A+1;break;case 0:return A;case 1:l=A-1;break}}return~o}function K6a(e,t,r,n,a){if(e&&e.length>0){let o=e.length;if(o>0){let l=n===void 0||n<0?0:n,A=a===void 0||l+a>o-1?o-1:l+a,f;for(arguments.length<=2?(f=e[l],l++):f=r;l<=A;)f=t(f,e[l],l),l++;return f}}return r}var KSi=Object.prototype.hasOwnProperty;function fj(e,t){return KSi.call(e,t)}function j6a(e){let t=[];for(let r in e)KSi.call(e,r)&&t.push(r);return t}function z6a(){let e=new Map;return e.add=q6a,e.remove=$6a,e}function q6a(e,t){let r=this.get(e);return r!==void 0?r.push(t):this.set(e,r=[t]),r}function $6a(e,t){let r=this.get(e);r!==void 0&&(c7a(r,t),r.length||this.delete(e))}function Tee(e){return Array.isArray(e)}function QRr(e){return Tee(e)?e:[e]}function e7a(e,t){return e!==void 0&&t(e)?e:void 0}function Aj(e,t){return e!==void 0&&t(e)?e:Zo.fail(`Invalid cast. The supplied value ${e} did not pass the test '${Zo.getFunctionName(t)}'.`)}function NNe(e){}function t7a(){return!0}function VE(e){return e}function w2i(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function eH(e){let t=new Map;return r=>{let n=`${typeof r}:${r}`,a=t.get(n);return a===void 0&&!t.has(n)&&(a=e(r),t.set(n,a)),a}}function kNr(e,t){return e===t}function xNr(e,t){return e===t||e!==void 0&&t!==void 0&&e.toUpperCase()===t.toUpperCase()}function r7a(e,t){return kNr(e,t)}function n7a(e,t){return e===t?0:e===void 0?-1:t===void 0?1:er?A-r:1),C=Math.floor(t.length>r+A?r+A:t.length);a[0]=A;let b=A;for(let N=1;Nr)return;let E=n;n=a,a=E}let l=n[t.length];return l>r?void 0:l}function o7a(e,t,r){let n=e.length-t.length;return n>=0&&(r?xNr(e.slice(n),t):e.indexOf(t,n)===n)}function a7a(e,t){e[t]=e[e.length-1],e.pop()}function c7a(e,t){return l7a(e,r=>r===t)}function l7a(e,t){for(let r=0;r{let t=0;e.currentLogLevel=2,e.isDebugging=!1;function r(Ft){return e.currentLogLevel<=Ft}e.shouldLog=r;function n(Ft,zr){e.loggingHost&&r(Ft)&&e.loggingHost.log(Ft,zr)}function a(Ft){n(3,Ft)}e.log=a,(Ft=>{function zr(ps){n(1,ps)}Ft.error=zr;function Rn(ps){n(2,ps)}Ft.warn=Rn;function Or(ps){n(3,ps)}Ft.log=Or;function Qi(ps){n(4,ps)}Ft.trace=Qi})(a=e.log||(e.log={}));let o={};function l(){return t}e.getAssertionLevel=l;function A(Ft){let zr=t;if(t=Ft,Ft>zr)for(let Rn of j6a(o)){let Or=o[Rn];Or!==void 0&&e[Rn]!==Or.assertion&&Ft>=Or.level&&(e[Rn]=Or,o[Rn]=void 0)}}e.setAssertionLevel=A;function f(Ft){return t>=Ft}e.shouldAssert=f;function I(Ft,zr){return f(Ft)?!0:(o[zr]={level:Ft,assertion:e[zr]},e[zr]=NNe,!1)}function C(Ft,zr){debugger;let Rn=new Error(Ft?`Debug Failure. ${Ft}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Rn,zr||C),Rn}e.fail=C;function b(Ft,zr,Rn){return C(`${zr||"Unexpected node."}\r +`,_2i=e=>d6a.test(e),kRr=e=>p6a.test(e),y2i=(e,t)=>{let r=t.indexOf(m6a),n=t.slice(0,r);if(kRr(n)||_2i(n))return e(n)({type:kRr(n)?"export":"import",value:n})},b2i=(e,t)=>{let r=h6a.exec(t);if(r)return e(r[0])({type:"esComment",value:r[1].trim()})};y2i.locator=e=>kRr(e)||_2i(e)?-1:1;b2i.locator=(e,t)=>e.indexOf("{",t);var C6a=function(){let{Parser:e}=this,{blockTokenizers:t,blockMethods:r,inlineTokenizers:n,inlineMethods:a}=e.prototype;t.esSyntax=y2i,n.esComment=b2i,r.splice(r.indexOf("paragraph"),0,"esSyntax"),a.splice(a.indexOf("text"),0,"esComment")},_6a=function(){let e=this.Parser.prototype;e.blockMethods=["frontMatter",...e.blockMethods],e.blockTokenizers.frontMatter=t;function t(r,n){let a=WRr(n);if(a.frontMatter)return r(a.frontMatter.raw)(a.frontMatter)}t.onlyAtStart=!0},y6a=_6a;function b6a(){return e=>dNe(e,(t,r,[n])=>t.type!=="html"||I6a.test(t.value)||p2i.has(n.type)?t:{...t,type:"jsx"})}var E6a=b6a,S6a=function(){let e=this.Parser.prototype,t=e.inlineMethods;t.splice(t.indexOf("text"),0,"liquid"),e.inlineTokenizers.liquid=r;function r(n,a){let o=a.match(/^(\{%.*?%\}|\{\{.*?\}\})/su);if(o)return n(o[0])({type:"liquidNode",value:o[0]})}r.locator=function(n,a){return n.indexOf("{",a)}},v6a=S6a,B6a=function(){let e="wikiLink",t=/^\[\[(?.+?)\]\]/su,r=this.Parser.prototype,n=r.inlineMethods;n.splice(n.indexOf("link"),0,e),r.inlineTokenizers.wikiLink=a;function a(o,l){let A=t.exec(l);if(A){let f=A.groups.linkContents.trim();return o(A[0])({type:e,value:f})}}a.locator=function(o,l){return o.indexOf("[",l)}},w6a=B6a;function E2i({isMDX:e}){return t=>{let r=(0,A6a.default)().use(g6a.default,{commonmark:!0,...e&&{blocks:[f6a]}}).use(l6a.default).use(y6a).use(u6a.default).use(e?C6a:H1i).use(v6a).use(e?E6a:H1i).use(w6a);return r.run(r.parse(t))}}function H1i(){}var S2i={astFormat:"mdast",hasPragma:U8a,locStart:bbt,locEnd:Ebt},Y1i={...S2i,parse:E2i({isMDX:!1})},T6a={...S2i,parse:E2i({isMDX:!0})},v2i={mdast:a6a},R6a=n2i;var Xme={};sI(Xme,{default:()=>Rnc,parsers:()=>Sce});var MSi=Object.defineProperty,HSi=e=>{throw TypeError(e)},N6a=(e,t,r)=>t in e?MSi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,YSi=(e,t)=>{for(var r in t)MSi(e,r,{get:t[r],enumerable:!0})},eJe=(e,t,r)=>N6a(e,typeof t!="symbol"?t+"":t,r),D6a=(e,t,r)=>t.has(e)||HSi("Cannot "+r),k6a=(e,t,r)=>t.has(e)?HSi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),fg=(e,t,r)=>(D6a(e,t,"access private method"),r),QSi={};YSi(QSi,{parsers:()=>Sce});var Sce={};YSi(Sce,{typescript:()=>Tnc});var x6a=()=>()=>{},TNr=x6a,G6a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ENe=G6a,F6a="5.7",x2=[],Z6a=new Map;function cJe(e){return e!==void 0?e.length:0}function hO(e,t){if(e!==void 0)for(let r=0;r0;return!1}function NNr(e,t){return t===void 0||t.length===0?e:e===void 0||e.length===0?t:[...e,...t]}function O6a(e,t,r=kNr){if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;ne?.at(t):(e,t)=>{if(e!==void 0&&(t=sNr(e,t),t>1),f=r(e[A],A);switch(n(f,t)){case-1:o=A+1;break;case 0:return A;case 1:l=A-1;break}}return~o}function K6a(e,t,r,n,a){if(e&&e.length>0){let o=e.length;if(o>0){let l=n===void 0||n<0?0:n,A=a===void 0||l+a>o-1?o-1:l+a,f;for(arguments.length<=2?(f=e[l],l++):f=r;l<=A;)f=t(f,e[l],l),l++;return f}}return r}var KSi=Object.prototype.hasOwnProperty;function fj(e,t){return KSi.call(e,t)}function j6a(e){let t=[];for(let r in e)KSi.call(e,r)&&t.push(r);return t}function z6a(){let e=new Map;return e.add=q6a,e.remove=$6a,e}function q6a(e,t){let r=this.get(e);return r!==void 0?r.push(t):this.set(e,r=[t]),r}function $6a(e,t){let r=this.get(e);r!==void 0&&(c7a(r,t),r.length||this.delete(e))}function Tee(e){return Array.isArray(e)}function QRr(e){return Tee(e)?e:[e]}function e7a(e,t){return e!==void 0&&t(e)?e:void 0}function Aj(e,t){return e!==void 0&&t(e)?e:Zo.fail(`Invalid cast. The supplied value ${e} did not pass the test '${Zo.getFunctionName(t)}'.`)}function NNe(e){}function t7a(){return!0}function VE(e){return e}function w2i(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function eH(e){let t=new Map;return r=>{let n=`${typeof r}:${r}`,a=t.get(n);return a===void 0&&!t.has(n)&&(a=e(r),t.set(n,a)),a}}function kNr(e,t){return e===t}function xNr(e,t){return e===t||e!==void 0&&t!==void 0&&e.toUpperCase()===t.toUpperCase()}function r7a(e,t){return kNr(e,t)}function n7a(e,t){return e===t?0:e===void 0?-1:t===void 0?1:er?A-r:1),C=Math.floor(t.length>r+A?r+A:t.length);a[0]=A;let b=A;for(let N=1;Nr)return;let E=n;n=a,a=E}let l=n[t.length];return l>r?void 0:l}function o7a(e,t,r){let n=e.length-t.length;return n>=0&&(r?xNr(e.slice(n),t):e.indexOf(t,n)===n)}function a7a(e,t){e[t]=e[e.length-1],e.pop()}function c7a(e,t){return l7a(e,r=>r===t)}function l7a(e,t){for(let r=0;r{let t=0;e.currentLogLevel=2,e.isDebugging=!1;function r(Ft){return e.currentLogLevel<=Ft}e.shouldLog=r;function n(Ft,zr){e.loggingHost&&r(Ft)&&e.loggingHost.log(Ft,zr)}function a(Ft){n(3,Ft)}e.log=a,(Ft=>{function zr(ps){n(1,ps)}Ft.error=zr;function Rn(ps){n(2,ps)}Ft.warn=Rn;function Or(ps){n(3,ps)}Ft.log=Or;function Qi(ps){n(4,ps)}Ft.trace=Qi})(a=e.log||(e.log={}));let o={};function l(){return t}e.getAssertionLevel=l;function A(Ft){let zr=t;if(t=Ft,Ft>zr)for(let Rn of j6a(o)){let Or=o[Rn];Or!==void 0&&e[Rn]!==Or.assertion&&Ft>=Or.level&&(e[Rn]=Or,o[Rn]=void 0)}}e.setAssertionLevel=A;function f(Ft){return t>=Ft}e.shouldAssert=f;function I(Ft,zr){return f(Ft)?!0:(o[zr]={level:Ft,assertion:e[zr]},e[zr]=NNe,!1)}function C(Ft,zr){debugger;let Rn=new Error(Ft?`Debug Failure. ${Ft}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Rn,zr||C),Rn}e.fail=C;function b(Ft,zr,Rn){return C(`${zr||"Unexpected node."}\r Node ${Yt(Ft.kind)} was unexpected.`,Rn||b)}e.failBadSyntaxKind=b;function E(Ft,zr,Rn,Or){Ft||(zr=zr?`False expression: ${zr}`:"False expression.",Rn&&(zr+=`\r Verbose Debug Information: `+(typeof Rn=="string"?Rn:Rn())),C(zr,Or||E))}e.assert=E;function N(Ft,zr,Rn,Or,Qi){if(Ft!==zr){let ps=Rn?Or?`${Rn} ${Or}`:Rn:"";C(`Expected ${Ft} === ${zr}. ${ps}`,Qi||N)}}e.assertEqual=N;function B(Ft,zr,Rn,Or){Ft>=zr&&C(`Expected ${Ft} < ${zr}. ${Rn||""}`,Or||B)}e.assertLessThan=B;function F(Ft,zr,Rn){Ft>zr&&C(`Expected ${Ft} <= ${zr}`,Rn||F)}e.assertLessThanOrEqual=F;function Q(Ft,zr,Rn){Ft= ${zr}`,Rn||Q)}e.assertGreaterThanOrEqual=Q;function X(Ft,zr,Rn){Ft==null&&C(zr,Rn||X)}e.assertIsDefined=X;function ae(Ft,zr,Rn){return X(Ft,zr,Rn||ae),Ft}e.checkDefined=ae;function ne(Ft,zr,Rn){for(let Or of Ft)X(Or,zr,Rn||ne)}e.assertEachIsDefined=ne;function ce(Ft,zr,Rn){return ne(Ft,zr,Rn||ce),Ft}e.checkEachDefined=ce;function fe(Ft,zr="Illegal value:",Rn){let Or=typeof Ft=="object"&&fj(Ft,"kind")&&fj(Ft,"pos")?"SyntaxKind: "+Yt(Ft.kind):JSON.stringify(Ft);return C(`${zr} ${Or}`,Rn||fe)}e.assertNever=fe;function ue(Ft,zr,Rn,Or){I(1,"assertEachNode")&&E(zr===void 0||RNr(Ft,zr),Rn||"Unexpected node.",()=>`Node array did not pass test '${ct(zr)}'.`,Or||ue)}e.assertEachNode=ue;function de(Ft,zr,Rn,Or){I(1,"assertNode")&&E(Ft!==void 0&&(zr===void 0||zr(Ft)),Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} did not pass test '${ct(zr)}'.`,Or||de)}e.assertNode=de;function be(Ft,zr,Rn,Or){I(1,"assertNotNode")&&E(Ft===void 0||zr===void 0||!zr(Ft),Rn||"Unexpected node.",()=>`Node ${Yt(Ft.kind)} should not have passed test '${ct(zr)}'.`,Or||be)}e.assertNotNode=be;function Se(Ft,zr,Rn,Or){I(1,"assertOptionalNode")&&E(zr===void 0||Ft===void 0||zr(Ft),Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} did not pass test '${ct(zr)}'.`,Or||Se)}e.assertOptionalNode=Se;function De(Ft,zr,Rn,Or){I(1,"assertOptionalToken")&&E(zr===void 0||Ft===void 0||Ft.kind===zr,Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} was not a '${Yt(zr)}' token.`,Or||De)}e.assertOptionalToken=De;function k(Ft,zr,Rn){I(1,"assertMissingNode")&&E(Ft===void 0,zr||"Unexpected node.",()=>`Node ${Yt(Ft.kind)} was unexpected'.`,Rn||k)}e.assertMissingNode=k;function et(Ft){}e.type=et;function ct(Ft){if(typeof Ft!="function")return"";if(fj(Ft,"name"))return Ft.name;{let zr=Function.prototype.toString.call(Ft),Rn=/^function\s+([\w$]+)\s*\(/.exec(zr);return Rn?Rn[1]:""}}e.getFunctionName=ct;function Me(Ft){return`{ name: ${mJe(Ft.escapedName)}; flags: ${Xt(Ft.flags)}; declarations: ${iNr(Ft.declarations,zr=>Yt(zr.kind))} }`}e.formatSymbol=Me;function je(Ft=0,zr,Rn){let Or=At(zr);if(Ft===0)return Or.length>0&&Or[0][0]===0?Or[0][1]:"0";if(Rn){let Qi=[],ps=Ft;for(let[yo,bo]of Or){if(yo>Ft)break;yo!==0&&yo&Ft&&(Qi.push(bo),ps&=~yo)}if(ps===0)return Qi.join("|")}else for(let[Qi,ps]of Or)if(Qi===Ft)return ps;return Ft.toString()}e.formatEnum=je;let St=new Map;function At(Ft){let zr=St.get(Ft);if(zr)return zr;let Rn=[];for(let Qi in Ft){let ps=Ft[Qi];typeof ps=="number"&&Rn.push([ps,Qi])}let Or=Y6a(Rn,(Qi,ps)=>jSi(Qi[0],ps[0]));return St.set(Ft,Or),Or}function Yt(Ft){return je(Ft,Tp,!1)}e.formatSyntaxKind=Yt;function Tr(Ft){return je(Ft,svi,!1)}e.formatSnippetKind=Tr;function Nr(Ft){return je(Ft,Bee,!1)}e.formatScriptKind=Nr;function er(Ft){return je(Ft,IO,!0)}e.formatNodeFlags=er;function vt(Ft){return je(Ft,evi,!0)}e.formatNodeCheckFlags=vt;function xt(Ft){return je(Ft,zSi,!0)}e.formatModifierFlags=xt;function Zr(Ft){return je(Ft,ivi,!0)}e.formatTransformFlags=Zr;function qt(Ft){return je(Ft,ovi,!0)}e.formatEmitFlags=qt;function Xt(Ft){return je(Ft,$Si,!0)}e.formatSymbolFlags=Xt;function lr(Ft){return je(Ft,kG,!0)}e.formatTypeFlags=lr;function cr(Ft){return je(Ft,rvi,!0)}e.formatSignatureFlags=cr;function Ar(Ft){return je(Ft,tvi,!0)}e.formatObjectFlags=Ar;function qr(Ft){return je(Ft,aNr,!0)}e.formatFlowFlags=qr;function _n(Ft){return je(Ft,qSi,!0)}e.formatRelationComparisonResult=_n;function ke(Ft){return je(Ft,CheckMode,!0)}e.formatCheckMode=ke;function jt(Ft){return je(Ft,SignatureCheckMode,!0)}e.formatSignatureCheckMode=jt;function Fn(Ft){return je(Ft,TypeFacts,!0)}e.formatTypeFacts=Fn;let Nn=!1,Hi;function po(Ft){"__debugFlowFlags"in Ft||Object.defineProperties(Ft,{__tsDebuggerDisplay:{value(){let zr=this.flags&2?"FlowStart":this.flags&4?"FlowBranchLabel":this.flags&8?"FlowLoopLabel":this.flags&16?"FlowAssignment":this.flags&32?"FlowTrueCondition":this.flags&64?"FlowFalseCondition":this.flags&128?"FlowSwitchClause":this.flags&256?"FlowArrayMutation":this.flags&512?"FlowCall":this.flags&1024?"FlowReduceLabel":this.flags&1?"FlowUnreachable":"UnknownFlow",Rn=this.flags&-2048;return`${zr}${Rn?` (${qr(Rn)})`:""}`}},__debugFlowFlags:{get(){return je(this.flags,aNr,!0)}},__debugToString:{value(){return Wr(this)}}})}function Vr(Ft){return Nn&&(typeof Object.setPrototypeOf=="function"?(Hi||(Hi=Object.create(Object.prototype),po(Hi)),Object.setPrototypeOf(Ft,Hi)):po(Ft)),Ft}e.attachFlowNodeDebugInfo=Vr;let xi;function io(Ft){"__tsDebuggerDisplay"in Ft||Object.defineProperties(Ft,{__tsDebuggerDisplay:{value(zr){return zr=String(zr).replace(/(?:,[\s\w]+:[^,]+)+\]$/,"]"),`NodeArray ${zr}`}}})}function ga(Ft){Nn&&(typeof Object.setPrototypeOf=="function"?(xi||(xi=Object.create(Array.prototype),io(xi)),Object.setPrototypeOf(Ft,xi)):io(Ft))}e.attachNodeArrayDebugInfo=ga;function Ya(){if(Nn)return;let Ft=new WeakMap,zr=new WeakMap;Object.defineProperties(k2.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){let Or=this.flags&33554432?"TransientSymbol":"Symbol",Qi=this.flags&-33554433;return`${Or} '${uNr(this)}'${Qi?` (${Xt(Qi)})`:""}`}},__debugFlags:{get(){return Xt(this.flags)}}}),Object.defineProperties(k2.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){let Or=this.flags&67359327?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:""}`:this.flags&98304?"NullableType":this.flags&384?`LiteralType ${JSON.stringify(this.value)}`:this.flags&2048?`LiteralType ${this.value.negative?"-":""}${this.value.base10Value}n`:this.flags&8192?"UniqueESSymbolType":this.flags&32?"EnumType":this.flags&1048576?"UnionType":this.flags&2097152?"IntersectionType":this.flags&4194304?"IndexType":this.flags&8388608?"IndexedAccessType":this.flags&16777216?"ConditionalType":this.flags&33554432?"SubstitutionType":this.flags&262144?"TypeParameter":this.flags&524288?this.objectFlags&3?"InterfaceType":this.objectFlags&4?"TypeReference":this.objectFlags&8?"TupleType":this.objectFlags&16?"AnonymousType":this.objectFlags&32?"MappedType":this.objectFlags&1024?"ReverseMappedType":this.objectFlags&256?"EvolvingArrayType":"ObjectType":"Type",Qi=this.flags&524288?this.objectFlags&-1344:0;return`${Or}${this.symbol?` '${uNr(this.symbol)}'`:""}${Qi?` (${Ar(Qi)})`:""}`}},__debugFlags:{get(){return lr(this.flags)}},__debugObjectFlags:{get(){return this.flags&524288?Ar(this.objectFlags):""}},__debugTypeToString:{value(){let Or=Ft.get(this);return Or===void 0&&(Or=this.checker.typeToString(this),Ft.set(this,Or)),Or}}}),Object.defineProperties(k2.getSignatureConstructor().prototype,{__debugFlags:{get(){return cr(this.flags)}},__debugSignatureToString:{value(){var Or;return(Or=this.checker)==null?void 0:Or.signatureToString(this)}}});let Rn=[k2.getNodeConstructor(),k2.getIdentifierConstructor(),k2.getTokenConstructor(),k2.getSourceFileConstructor()];for(let Or of Rn)fj(Or.prototype,"__debugKind")||Object.defineProperties(Or.prototype,{__tsDebuggerDisplay:{value(){return`${vNe(this)?"GeneratedIdentifier":$C(this)?`Identifier '${yV(this)}'`:Yme(this)?`PrivateIdentifier '${yV(this)}'`:tEt(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+"...")}`:kNe(this)?`NumericLiteral ${this.text}`:v$a(this)?`BigIntLiteral ${this.text}n`:eBi(this)?"TypeParameterDeclaration":Ubt(this)?"ParameterDeclaration":tBi(this)?"ConstructorDeclaration":hNr(this)?"GetAccessorDeclaration":jbt(this)?"SetAccessorDeclaration":x$a(this)?"CallSignatureDeclaration":G$a(this)?"ConstructSignatureDeclaration":rBi(this)?"IndexSignatureDeclaration":F$a(this)?"TypePredicateNode":nBi(this)?"TypeReferenceNode":iBi(this)?"FunctionTypeNode":sBi(this)?"ConstructorTypeNode":Z$a(this)?"TypeQueryNode":L$a(this)?"TypeLiteralNode":V$a(this)?"ArrayTypeNode":P$a(this)?"TupleTypeNode":O$a(this)?"OptionalTypeNode":M$a(this)?"RestTypeNode":H$a(this)?"UnionTypeNode":Y$a(this)?"IntersectionTypeNode":Q$a(this)?"ConditionalTypeNode":X$a(this)?"InferTypeNode":J$a(this)?"ParenthesizedTypeNode":U$a(this)?"ThisTypeNode":K$a(this)?"TypeOperatorNode":j$a(this)?"IndexedAccessTypeNode":z$a(this)?"MappedTypeNode":q$a(this)?"LiteralTypeNode":W$a(this)?"NamedTupleMember":$$a(this)?"ImportTypeNode":Yt(this.kind)}${this.flags?` (${er(this.flags)})`:""}`}},__debugKind:{get(){return Yt(this.kind)}},__debugNodeFlags:{get(){return er(this.flags)}},__debugModifierFlags:{get(){return xt(Fqa(this))}},__debugTransformFlags:{get(){return Zr(this.transformFlags)}},__debugIsParseTreeNode:{get(){return Qbt(this)}},__debugEmitFlags:{get(){return qt(RNe(this))}},__debugGetText:{value(Qi){if(CNe(this))return"";let ps=zr.get(this);if(ps===void 0){let yo=z7a(this),bo=yo&&bce(yo);ps=bo?M2i(bo,yo,Qi):"",zr.set(this,ps)}return ps}}});Nn=!0}e.enableDebugInfo=Ya;function Gc(Ft){let zr=Ft&7,Rn=zr===0?"in out":zr===3?"[bivariant]":zr===2?"in":zr===1?"out":zr===4?"[independent]":"";return Ft&8?Rn+=" (unmeasurable)":Ft&16&&(Rn+=" (unreliable)"),Rn}e.formatVariance=Gc;class cl{__debugToString(){var zr;switch(this.kind){case 3:return((zr=this.debugInfo)==null?void 0:zr.call(this))||"(function mapper)";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return B2i(this.sources,this.targets||iNr(this.sources,()=>"any"),(Rn,Or)=>`${Rn.__debugTypeToString()} -> ${typeof Or=="string"?Or:Or.__debugTypeToString()}`).join(", ");case 2:return B2i(this.sources,this.targets,(Rn,Or)=>`${Rn.__debugTypeToString()} -> ${Or().__debugTypeToString()}`).join(", ");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split(` `).join(` @@ -2225,13 +2225,13 @@ m2: ${this.mapper2.__debugToString().split(` `)}`;default:return fe(this)}}}e.DebugTypeMapper=cl;function Sc(Ft){return e.isDebugging?Object.setPrototypeOf(Ft,cl.prototype):Ft}e.attachDebugPrototypeIfDebug=Sc;function Hr(Ft){return console.log(Wr(Ft))}e.printControlFlowGraph=Hr;function Wr(Ft){let zr=-1;function Rn(Wt){return Wt.id||(Wt.id=zr,zr--),Wt.id}let Or;(Wt=>{Wt.lr="\u2500",Wt.ud="\u2502",Wt.dr="\u256D",Wt.dl="\u256E",Wt.ul="\u256F",Wt.ur="\u2570",Wt.udr="\u251C",Wt.udl="\u2524",Wt.dlr="\u252C",Wt.ulr="\u2534",Wt.udlr="\u256B"})(Or||(Or={}));let Qi;(Wt=>{Wt[Wt.None=0]="None",Wt[Wt.Up=1]="Up",Wt[Wt.Down=2]="Down",Wt[Wt.Left=4]="Left",Wt[Wt.Right=8]="Right",Wt[Wt.UpDown=3]="UpDown",Wt[Wt.LeftRight=12]="LeftRight",Wt[Wt.UpLeft=5]="UpLeft",Wt[Wt.UpRight=9]="UpRight",Wt[Wt.DownLeft=6]="DownLeft",Wt[Wt.DownRight=10]="DownRight",Wt[Wt.UpDownLeft=7]="UpDownLeft",Wt[Wt.UpDownRight=11]="UpDownRight",Wt[Wt.UpLeftRight=13]="UpLeftRight",Wt[Wt.DownLeftRight=14]="DownLeftRight",Wt[Wt.UpDownLeftRight=15]="UpDownLeftRight",Wt[Wt.NoChildren=16]="NoChildren"})(Qi||(Qi={}));let ps=2032,yo=882,bo=Object.create(null),Qa=[],gc=[],Cg=ac(Ft,new Set);for(let Wt of Qa)Wt.text=_g(Wt.flowNode,Wt.circular),Wc(Wt);let Nc=Sg(Cg),iA=Ul(Nc);return Xu(Cg,0),mI();function ma(Wt){return!!(Wt.flags&128)}function vu(Wt){return!!(Wt.flags&12)&&!!Wt.antecedent}function li(Wt){return!!(Wt.flags&ps)}function Ei(Wt){return!!(Wt.flags&yo)}function Ps(Wt){let Hu=[];for(let Ru of Wt.edges)Ru.source===Wt&&Hu.push(Ru.target);return Hu}function Xa(Wt){let Hu=[];for(let Ru of Wt.edges)Ru.target===Wt&&Hu.push(Ru.source);return Hu}function ac(Wt,Hu){let Ru=Rn(Wt),Vs=bo[Ru];if(Vs&&Hu.has(Wt))return Vs.circular=!0,Vs={id:-1,flowNode:Wt,edges:[],text:"",lane:-1,endLane:-1,level:-1,circular:"circularity"},Qa.push(Vs),Vs;if(Hu.add(Wt),!Vs)if(bo[Ru]=Vs={id:Ru,flowNode:Wt,edges:[],text:"",lane:-1,endLane:-1,level:-1,circular:!1},Qa.push(Vs),vu(Wt))for(let Ju of Wt.antecedent)Yl(Vs,Ju,Hu);else li(Wt)&&Yl(Vs,Wt.antecedent,Hu);return Hu.delete(Wt),Vs}function Yl(Wt,Hu,Ru){let Vs=ac(Hu,Ru),Ju={source:Wt,target:Vs};gc.push(Ju),Wt.edges.push(Ju),Vs.edges.push(Ju)}function Wc(Wt){if(Wt.level!==-1)return Wt.level;let Hu=0;for(let Ru of Xa(Wt))Hu=Math.max(Hu,Wc(Ru)+1);return Wt.level=Hu}function Sg(Wt){let Hu=0;for(let Ru of Ps(Wt))Hu=Math.max(Hu,Sg(Ru));return Hu+1}function Ul(Wt){let Hu=Ri(Array(Wt),0);for(let Ru of Qa)Hu[Ru.level]=Math.max(Hu[Ru.level],Ru.text.length);return Hu}function Xu(Wt,Hu){if(Wt.lane===-1){Wt.lane=Hu,Wt.endLane=Hu;let Ru=Ps(Wt);for(let Vs=0;Vs0&&Hu++;let Ju=Ru[Vs];Xu(Ju,Hu),Ju.endLane>Wt.endLane&&(Hu=Ju.endLane)}Wt.endLane=Hu}}function Da(Wt){if(Wt&2)return"Start";if(Wt&4)return"Branch";if(Wt&8)return"Loop";if(Wt&16)return"Assignment";if(Wt&32)return"True";if(Wt&64)return"False";if(Wt&128)return"SwitchClause";if(Wt&256)return"ArrayMutation";if(Wt&512)return"Call";if(Wt&1024)return"ReduceLabel";if(Wt&1)return"Unreachable";throw new Error}function pu(Wt){let Hu=bce(Wt);return M2i(Hu,Wt,!1)}function _g(Wt,Hu){let Ru=Da(Wt.flags);if(Hu&&(Ru=`${Ru}#${Rn(Wt)}`),ma(Wt)){let Vs=[],{switchStatement:Ju,clauseStart:Yn,clauseEnd:Ko}=Wt.node;for(let Eg=Yn;EgKo.lane)+1,Ru=Ri(Array(Hu),""),Vs=iA.map(()=>Array(Hu)),Ju=iA.map(()=>Ri(Array(Hu),0));for(let Ko of Qa){Vs[Ko.level][Ko.lane]=Ko;let Eg=Ps(Ko);for(let GA=0;GA0&&(dl|=1),GA0&&(dl|=1),GA0?Ju[Ko-1][Eg]:0,GA=Eg>0?Ju[Ko][Eg-1]:0,$i=Ju[Ko][Eg];$i||(OA&8&&($i|=12),GA&2&&($i|=3),Ju[Ko][Eg]=$i)}for(let Ko=0;Ko0?Wt.repeat(Hu):"";let Ru="";for(;Ru.length{},u7a=()=>{},Fbt,Tp=(e=>(e[e.Unknown=0]="Unknown",e[e.EndOfFileToken=1]="EndOfFileToken",e[e.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",e[e.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",e[e.NewLineTrivia=4]="NewLineTrivia",e[e.WhitespaceTrivia=5]="WhitespaceTrivia",e[e.ShebangTrivia=6]="ShebangTrivia",e[e.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",e[e.NonTextFileMarkerTrivia=8]="NonTextFileMarkerTrivia",e[e.NumericLiteral=9]="NumericLiteral",e[e.BigIntLiteral=10]="BigIntLiteral",e[e.StringLiteral=11]="StringLiteral",e[e.JsxText=12]="JsxText",e[e.JsxTextAllWhiteSpaces=13]="JsxTextAllWhiteSpaces",e[e.RegularExpressionLiteral=14]="RegularExpressionLiteral",e[e.NoSubstitutionTemplateLiteral=15]="NoSubstitutionTemplateLiteral",e[e.TemplateHead=16]="TemplateHead",e[e.TemplateMiddle=17]="TemplateMiddle",e[e.TemplateTail=18]="TemplateTail",e[e.OpenBraceToken=19]="OpenBraceToken",e[e.CloseBraceToken=20]="CloseBraceToken",e[e.OpenParenToken=21]="OpenParenToken",e[e.CloseParenToken=22]="CloseParenToken",e[e.OpenBracketToken=23]="OpenBracketToken",e[e.CloseBracketToken=24]="CloseBracketToken",e[e.DotToken=25]="DotToken",e[e.DotDotDotToken=26]="DotDotDotToken",e[e.SemicolonToken=27]="SemicolonToken",e[e.CommaToken=28]="CommaToken",e[e.QuestionDotToken=29]="QuestionDotToken",e[e.LessThanToken=30]="LessThanToken",e[e.LessThanSlashToken=31]="LessThanSlashToken",e[e.GreaterThanToken=32]="GreaterThanToken",e[e.LessThanEqualsToken=33]="LessThanEqualsToken",e[e.GreaterThanEqualsToken=34]="GreaterThanEqualsToken",e[e.EqualsEqualsToken=35]="EqualsEqualsToken",e[e.ExclamationEqualsToken=36]="ExclamationEqualsToken",e[e.EqualsEqualsEqualsToken=37]="EqualsEqualsEqualsToken",e[e.ExclamationEqualsEqualsToken=38]="ExclamationEqualsEqualsToken",e[e.EqualsGreaterThanToken=39]="EqualsGreaterThanToken",e[e.PlusToken=40]="PlusToken",e[e.MinusToken=41]="MinusToken",e[e.AsteriskToken=42]="AsteriskToken",e[e.AsteriskAsteriskToken=43]="AsteriskAsteriskToken",e[e.SlashToken=44]="SlashToken",e[e.PercentToken=45]="PercentToken",e[e.PlusPlusToken=46]="PlusPlusToken",e[e.MinusMinusToken=47]="MinusMinusToken",e[e.LessThanLessThanToken=48]="LessThanLessThanToken",e[e.GreaterThanGreaterThanToken=49]="GreaterThanGreaterThanToken",e[e.GreaterThanGreaterThanGreaterThanToken=50]="GreaterThanGreaterThanGreaterThanToken",e[e.AmpersandToken=51]="AmpersandToken",e[e.BarToken=52]="BarToken",e[e.CaretToken=53]="CaretToken",e[e.ExclamationToken=54]="ExclamationToken",e[e.TildeToken=55]="TildeToken",e[e.AmpersandAmpersandToken=56]="AmpersandAmpersandToken",e[e.BarBarToken=57]="BarBarToken",e[e.QuestionToken=58]="QuestionToken",e[e.ColonToken=59]="ColonToken",e[e.AtToken=60]="AtToken",e[e.QuestionQuestionToken=61]="QuestionQuestionToken",e[e.BacktickToken=62]="BacktickToken",e[e.HashToken=63]="HashToken",e[e.EqualsToken=64]="EqualsToken",e[e.PlusEqualsToken=65]="PlusEqualsToken",e[e.MinusEqualsToken=66]="MinusEqualsToken",e[e.AsteriskEqualsToken=67]="AsteriskEqualsToken",e[e.AsteriskAsteriskEqualsToken=68]="AsteriskAsteriskEqualsToken",e[e.SlashEqualsToken=69]="SlashEqualsToken",e[e.PercentEqualsToken=70]="PercentEqualsToken",e[e.LessThanLessThanEqualsToken=71]="LessThanLessThanEqualsToken",e[e.GreaterThanGreaterThanEqualsToken=72]="GreaterThanGreaterThanEqualsToken",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]="GreaterThanGreaterThanGreaterThanEqualsToken",e[e.AmpersandEqualsToken=74]="AmpersandEqualsToken",e[e.BarEqualsToken=75]="BarEqualsToken",e[e.BarBarEqualsToken=76]="BarBarEqualsToken",e[e.AmpersandAmpersandEqualsToken=77]="AmpersandAmpersandEqualsToken",e[e.QuestionQuestionEqualsToken=78]="QuestionQuestionEqualsToken",e[e.CaretEqualsToken=79]="CaretEqualsToken",e[e.Identifier=80]="Identifier",e[e.PrivateIdentifier=81]="PrivateIdentifier",e[e.JSDocCommentTextToken=82]="JSDocCommentTextToken",e[e.BreakKeyword=83]="BreakKeyword",e[e.CaseKeyword=84]="CaseKeyword",e[e.CatchKeyword=85]="CatchKeyword",e[e.ClassKeyword=86]="ClassKeyword",e[e.ConstKeyword=87]="ConstKeyword",e[e.ContinueKeyword=88]="ContinueKeyword",e[e.DebuggerKeyword=89]="DebuggerKeyword",e[e.DefaultKeyword=90]="DefaultKeyword",e[e.DeleteKeyword=91]="DeleteKeyword",e[e.DoKeyword=92]="DoKeyword",e[e.ElseKeyword=93]="ElseKeyword",e[e.EnumKeyword=94]="EnumKeyword",e[e.ExportKeyword=95]="ExportKeyword",e[e.ExtendsKeyword=96]="ExtendsKeyword",e[e.FalseKeyword=97]="FalseKeyword",e[e.FinallyKeyword=98]="FinallyKeyword",e[e.ForKeyword=99]="ForKeyword",e[e.FunctionKeyword=100]="FunctionKeyword",e[e.IfKeyword=101]="IfKeyword",e[e.ImportKeyword=102]="ImportKeyword",e[e.InKeyword=103]="InKeyword",e[e.InstanceOfKeyword=104]="InstanceOfKeyword",e[e.NewKeyword=105]="NewKeyword",e[e.NullKeyword=106]="NullKeyword",e[e.ReturnKeyword=107]="ReturnKeyword",e[e.SuperKeyword=108]="SuperKeyword",e[e.SwitchKeyword=109]="SwitchKeyword",e[e.ThisKeyword=110]="ThisKeyword",e[e.ThrowKeyword=111]="ThrowKeyword",e[e.TrueKeyword=112]="TrueKeyword",e[e.TryKeyword=113]="TryKeyword",e[e.TypeOfKeyword=114]="TypeOfKeyword",e[e.VarKeyword=115]="VarKeyword",e[e.VoidKeyword=116]="VoidKeyword",e[e.WhileKeyword=117]="WhileKeyword",e[e.WithKeyword=118]="WithKeyword",e[e.ImplementsKeyword=119]="ImplementsKeyword",e[e.InterfaceKeyword=120]="InterfaceKeyword",e[e.LetKeyword=121]="LetKeyword",e[e.PackageKeyword=122]="PackageKeyword",e[e.PrivateKeyword=123]="PrivateKeyword",e[e.ProtectedKeyword=124]="ProtectedKeyword",e[e.PublicKeyword=125]="PublicKeyword",e[e.StaticKeyword=126]="StaticKeyword",e[e.YieldKeyword=127]="YieldKeyword",e[e.AbstractKeyword=128]="AbstractKeyword",e[e.AccessorKeyword=129]="AccessorKeyword",e[e.AsKeyword=130]="AsKeyword",e[e.AssertsKeyword=131]="AssertsKeyword",e[e.AssertKeyword=132]="AssertKeyword",e[e.AnyKeyword=133]="AnyKeyword",e[e.AsyncKeyword=134]="AsyncKeyword",e[e.AwaitKeyword=135]="AwaitKeyword",e[e.BooleanKeyword=136]="BooleanKeyword",e[e.ConstructorKeyword=137]="ConstructorKeyword",e[e.DeclareKeyword=138]="DeclareKeyword",e[e.GetKeyword=139]="GetKeyword",e[e.InferKeyword=140]="InferKeyword",e[e.IntrinsicKeyword=141]="IntrinsicKeyword",e[e.IsKeyword=142]="IsKeyword",e[e.KeyOfKeyword=143]="KeyOfKeyword",e[e.ModuleKeyword=144]="ModuleKeyword",e[e.NamespaceKeyword=145]="NamespaceKeyword",e[e.NeverKeyword=146]="NeverKeyword",e[e.OutKeyword=147]="OutKeyword",e[e.ReadonlyKeyword=148]="ReadonlyKeyword",e[e.RequireKeyword=149]="RequireKeyword",e[e.NumberKeyword=150]="NumberKeyword",e[e.ObjectKeyword=151]="ObjectKeyword",e[e.SatisfiesKeyword=152]="SatisfiesKeyword",e[e.SetKeyword=153]="SetKeyword",e[e.StringKeyword=154]="StringKeyword",e[e.SymbolKeyword=155]="SymbolKeyword",e[e.TypeKeyword=156]="TypeKeyword",e[e.UndefinedKeyword=157]="UndefinedKeyword",e[e.UniqueKeyword=158]="UniqueKeyword",e[e.UnknownKeyword=159]="UnknownKeyword",e[e.UsingKeyword=160]="UsingKeyword",e[e.FromKeyword=161]="FromKeyword",e[e.GlobalKeyword=162]="GlobalKeyword",e[e.BigIntKeyword=163]="BigIntKeyword",e[e.OverrideKeyword=164]="OverrideKeyword",e[e.OfKeyword=165]="OfKeyword",e[e.QualifiedName=166]="QualifiedName",e[e.ComputedPropertyName=167]="ComputedPropertyName",e[e.TypeParameter=168]="TypeParameter",e[e.Parameter=169]="Parameter",e[e.Decorator=170]="Decorator",e[e.PropertySignature=171]="PropertySignature",e[e.PropertyDeclaration=172]="PropertyDeclaration",e[e.MethodSignature=173]="MethodSignature",e[e.MethodDeclaration=174]="MethodDeclaration",e[e.ClassStaticBlockDeclaration=175]="ClassStaticBlockDeclaration",e[e.Constructor=176]="Constructor",e[e.GetAccessor=177]="GetAccessor",e[e.SetAccessor=178]="SetAccessor",e[e.CallSignature=179]="CallSignature",e[e.ConstructSignature=180]="ConstructSignature",e[e.IndexSignature=181]="IndexSignature",e[e.TypePredicate=182]="TypePredicate",e[e.TypeReference=183]="TypeReference",e[e.FunctionType=184]="FunctionType",e[e.ConstructorType=185]="ConstructorType",e[e.TypeQuery=186]="TypeQuery",e[e.TypeLiteral=187]="TypeLiteral",e[e.ArrayType=188]="ArrayType",e[e.TupleType=189]="TupleType",e[e.OptionalType=190]="OptionalType",e[e.RestType=191]="RestType",e[e.UnionType=192]="UnionType",e[e.IntersectionType=193]="IntersectionType",e[e.ConditionalType=194]="ConditionalType",e[e.InferType=195]="InferType",e[e.ParenthesizedType=196]="ParenthesizedType",e[e.ThisType=197]="ThisType",e[e.TypeOperator=198]="TypeOperator",e[e.IndexedAccessType=199]="IndexedAccessType",e[e.MappedType=200]="MappedType",e[e.LiteralType=201]="LiteralType",e[e.NamedTupleMember=202]="NamedTupleMember",e[e.TemplateLiteralType=203]="TemplateLiteralType",e[e.TemplateLiteralTypeSpan=204]="TemplateLiteralTypeSpan",e[e.ImportType=205]="ImportType",e[e.ObjectBindingPattern=206]="ObjectBindingPattern",e[e.ArrayBindingPattern=207]="ArrayBindingPattern",e[e.BindingElement=208]="BindingElement",e[e.ArrayLiteralExpression=209]="ArrayLiteralExpression",e[e.ObjectLiteralExpression=210]="ObjectLiteralExpression",e[e.PropertyAccessExpression=211]="PropertyAccessExpression",e[e.ElementAccessExpression=212]="ElementAccessExpression",e[e.CallExpression=213]="CallExpression",e[e.NewExpression=214]="NewExpression",e[e.TaggedTemplateExpression=215]="TaggedTemplateExpression",e[e.TypeAssertionExpression=216]="TypeAssertionExpression",e[e.ParenthesizedExpression=217]="ParenthesizedExpression",e[e.FunctionExpression=218]="FunctionExpression",e[e.ArrowFunction=219]="ArrowFunction",e[e.DeleteExpression=220]="DeleteExpression",e[e.TypeOfExpression=221]="TypeOfExpression",e[e.VoidExpression=222]="VoidExpression",e[e.AwaitExpression=223]="AwaitExpression",e[e.PrefixUnaryExpression=224]="PrefixUnaryExpression",e[e.PostfixUnaryExpression=225]="PostfixUnaryExpression",e[e.BinaryExpression=226]="BinaryExpression",e[e.ConditionalExpression=227]="ConditionalExpression",e[e.TemplateExpression=228]="TemplateExpression",e[e.YieldExpression=229]="YieldExpression",e[e.SpreadElement=230]="SpreadElement",e[e.ClassExpression=231]="ClassExpression",e[e.OmittedExpression=232]="OmittedExpression",e[e.ExpressionWithTypeArguments=233]="ExpressionWithTypeArguments",e[e.AsExpression=234]="AsExpression",e[e.NonNullExpression=235]="NonNullExpression",e[e.MetaProperty=236]="MetaProperty",e[e.SyntheticExpression=237]="SyntheticExpression",e[e.SatisfiesExpression=238]="SatisfiesExpression",e[e.TemplateSpan=239]="TemplateSpan",e[e.SemicolonClassElement=240]="SemicolonClassElement",e[e.Block=241]="Block",e[e.EmptyStatement=242]="EmptyStatement",e[e.VariableStatement=243]="VariableStatement",e[e.ExpressionStatement=244]="ExpressionStatement",e[e.IfStatement=245]="IfStatement",e[e.DoStatement=246]="DoStatement",e[e.WhileStatement=247]="WhileStatement",e[e.ForStatement=248]="ForStatement",e[e.ForInStatement=249]="ForInStatement",e[e.ForOfStatement=250]="ForOfStatement",e[e.ContinueStatement=251]="ContinueStatement",e[e.BreakStatement=252]="BreakStatement",e[e.ReturnStatement=253]="ReturnStatement",e[e.WithStatement=254]="WithStatement",e[e.SwitchStatement=255]="SwitchStatement",e[e.LabeledStatement=256]="LabeledStatement",e[e.ThrowStatement=257]="ThrowStatement",e[e.TryStatement=258]="TryStatement",e[e.DebuggerStatement=259]="DebuggerStatement",e[e.VariableDeclaration=260]="VariableDeclaration",e[e.VariableDeclarationList=261]="VariableDeclarationList",e[e.FunctionDeclaration=262]="FunctionDeclaration",e[e.ClassDeclaration=263]="ClassDeclaration",e[e.InterfaceDeclaration=264]="InterfaceDeclaration",e[e.TypeAliasDeclaration=265]="TypeAliasDeclaration",e[e.EnumDeclaration=266]="EnumDeclaration",e[e.ModuleDeclaration=267]="ModuleDeclaration",e[e.ModuleBlock=268]="ModuleBlock",e[e.CaseBlock=269]="CaseBlock",e[e.NamespaceExportDeclaration=270]="NamespaceExportDeclaration",e[e.ImportEqualsDeclaration=271]="ImportEqualsDeclaration",e[e.ImportDeclaration=272]="ImportDeclaration",e[e.ImportClause=273]="ImportClause",e[e.NamespaceImport=274]="NamespaceImport",e[e.NamedImports=275]="NamedImports",e[e.ImportSpecifier=276]="ImportSpecifier",e[e.ExportAssignment=277]="ExportAssignment",e[e.ExportDeclaration=278]="ExportDeclaration",e[e.NamedExports=279]="NamedExports",e[e.NamespaceExport=280]="NamespaceExport",e[e.ExportSpecifier=281]="ExportSpecifier",e[e.MissingDeclaration=282]="MissingDeclaration",e[e.ExternalModuleReference=283]="ExternalModuleReference",e[e.JsxElement=284]="JsxElement",e[e.JsxSelfClosingElement=285]="JsxSelfClosingElement",e[e.JsxOpeningElement=286]="JsxOpeningElement",e[e.JsxClosingElement=287]="JsxClosingElement",e[e.JsxFragment=288]="JsxFragment",e[e.JsxOpeningFragment=289]="JsxOpeningFragment",e[e.JsxClosingFragment=290]="JsxClosingFragment",e[e.JsxAttribute=291]="JsxAttribute",e[e.JsxAttributes=292]="JsxAttributes",e[e.JsxSpreadAttribute=293]="JsxSpreadAttribute",e[e.JsxExpression=294]="JsxExpression",e[e.JsxNamespacedName=295]="JsxNamespacedName",e[e.CaseClause=296]="CaseClause",e[e.DefaultClause=297]="DefaultClause",e[e.HeritageClause=298]="HeritageClause",e[e.CatchClause=299]="CatchClause",e[e.ImportAttributes=300]="ImportAttributes",e[e.ImportAttribute=301]="ImportAttribute",e[e.AssertClause=300]="AssertClause",e[e.AssertEntry=301]="AssertEntry",e[e.ImportTypeAssertionContainer=302]="ImportTypeAssertionContainer",e[e.PropertyAssignment=303]="PropertyAssignment",e[e.ShorthandPropertyAssignment=304]="ShorthandPropertyAssignment",e[e.SpreadAssignment=305]="SpreadAssignment",e[e.EnumMember=306]="EnumMember",e[e.SourceFile=307]="SourceFile",e[e.Bundle=308]="Bundle",e[e.JSDocTypeExpression=309]="JSDocTypeExpression",e[e.JSDocNameReference=310]="JSDocNameReference",e[e.JSDocMemberName=311]="JSDocMemberName",e[e.JSDocAllType=312]="JSDocAllType",e[e.JSDocUnknownType=313]="JSDocUnknownType",e[e.JSDocNullableType=314]="JSDocNullableType",e[e.JSDocNonNullableType=315]="JSDocNonNullableType",e[e.JSDocOptionalType=316]="JSDocOptionalType",e[e.JSDocFunctionType=317]="JSDocFunctionType",e[e.JSDocVariadicType=318]="JSDocVariadicType",e[e.JSDocNamepathType=319]="JSDocNamepathType",e[e.JSDoc=320]="JSDoc",e[e.JSDocComment=320]="JSDocComment",e[e.JSDocText=321]="JSDocText",e[e.JSDocTypeLiteral=322]="JSDocTypeLiteral",e[e.JSDocSignature=323]="JSDocSignature",e[e.JSDocLink=324]="JSDocLink",e[e.JSDocLinkCode=325]="JSDocLinkCode",e[e.JSDocLinkPlain=326]="JSDocLinkPlain",e[e.JSDocTag=327]="JSDocTag",e[e.JSDocAugmentsTag=328]="JSDocAugmentsTag",e[e.JSDocImplementsTag=329]="JSDocImplementsTag",e[e.JSDocAuthorTag=330]="JSDocAuthorTag",e[e.JSDocDeprecatedTag=331]="JSDocDeprecatedTag",e[e.JSDocClassTag=332]="JSDocClassTag",e[e.JSDocPublicTag=333]="JSDocPublicTag",e[e.JSDocPrivateTag=334]="JSDocPrivateTag",e[e.JSDocProtectedTag=335]="JSDocProtectedTag",e[e.JSDocReadonlyTag=336]="JSDocReadonlyTag",e[e.JSDocOverrideTag=337]="JSDocOverrideTag",e[e.JSDocCallbackTag=338]="JSDocCallbackTag",e[e.JSDocOverloadTag=339]="JSDocOverloadTag",e[e.JSDocEnumTag=340]="JSDocEnumTag",e[e.JSDocParameterTag=341]="JSDocParameterTag",e[e.JSDocReturnTag=342]="JSDocReturnTag",e[e.JSDocThisTag=343]="JSDocThisTag",e[e.JSDocTypeTag=344]="JSDocTypeTag",e[e.JSDocTemplateTag=345]="JSDocTemplateTag",e[e.JSDocTypedefTag=346]="JSDocTypedefTag",e[e.JSDocSeeTag=347]="JSDocSeeTag",e[e.JSDocPropertyTag=348]="JSDocPropertyTag",e[e.JSDocThrowsTag=349]="JSDocThrowsTag",e[e.JSDocSatisfiesTag=350]="JSDocSatisfiesTag",e[e.JSDocImportTag=351]="JSDocImportTag",e[e.SyntaxList=352]="SyntaxList",e[e.NotEmittedStatement=353]="NotEmittedStatement",e[e.NotEmittedTypeElement=354]="NotEmittedTypeElement",e[e.PartiallyEmittedExpression=355]="PartiallyEmittedExpression",e[e.CommaListExpression=356]="CommaListExpression",e[e.SyntheticReferenceExpression=357]="SyntheticReferenceExpression",e[e.Count=358]="Count",e[e.FirstAssignment=64]="FirstAssignment",e[e.LastAssignment=79]="LastAssignment",e[e.FirstCompoundAssignment=65]="FirstCompoundAssignment",e[e.LastCompoundAssignment=79]="LastCompoundAssignment",e[e.FirstReservedWord=83]="FirstReservedWord",e[e.LastReservedWord=118]="LastReservedWord",e[e.FirstKeyword=83]="FirstKeyword",e[e.LastKeyword=165]="LastKeyword",e[e.FirstFutureReservedWord=119]="FirstFutureReservedWord",e[e.LastFutureReservedWord=127]="LastFutureReservedWord",e[e.FirstTypeNode=182]="FirstTypeNode",e[e.LastTypeNode=205]="LastTypeNode",e[e.FirstPunctuation=19]="FirstPunctuation",e[e.LastPunctuation=79]="LastPunctuation",e[e.FirstToken=0]="FirstToken",e[e.LastToken=165]="LastToken",e[e.FirstTriviaToken=2]="FirstTriviaToken",e[e.LastTriviaToken=7]="LastTriviaToken",e[e.FirstLiteralToken=9]="FirstLiteralToken",e[e.LastLiteralToken=15]="LastLiteralToken",e[e.FirstTemplateToken=15]="FirstTemplateToken",e[e.LastTemplateToken=18]="LastTemplateToken",e[e.FirstBinaryOperator=30]="FirstBinaryOperator",e[e.LastBinaryOperator=79]="LastBinaryOperator",e[e.FirstStatement=243]="FirstStatement",e[e.LastStatement=259]="LastStatement",e[e.FirstNode=166]="FirstNode",e[e.FirstJSDocNode=309]="FirstJSDocNode",e[e.LastJSDocNode=351]="LastJSDocNode",e[e.FirstJSDocTagNode=327]="FirstJSDocTagNode",e[e.LastJSDocTagNode=351]="LastJSDocTagNode",e[e.FirstContextualKeyword=128]="FirstContextualKeyword",e[e.LastContextualKeyword=165]="LastContextualKeyword",e))(Tp||{}),IO=(e=>(e[e.None=0]="None",e[e.Let=1]="Let",e[e.Const=2]="Const",e[e.Using=4]="Using",e[e.AwaitUsing=6]="AwaitUsing",e[e.NestedNamespace=8]="NestedNamespace",e[e.Synthesized=16]="Synthesized",e[e.Namespace=32]="Namespace",e[e.OptionalChain=64]="OptionalChain",e[e.ExportContext=128]="ExportContext",e[e.ContainsThis=256]="ContainsThis",e[e.HasImplicitReturn=512]="HasImplicitReturn",e[e.HasExplicitReturn=1024]="HasExplicitReturn",e[e.GlobalAugmentation=2048]="GlobalAugmentation",e[e.HasAsyncFunctions=4096]="HasAsyncFunctions",e[e.DisallowInContext=8192]="DisallowInContext",e[e.YieldContext=16384]="YieldContext",e[e.DecoratorContext=32768]="DecoratorContext",e[e.AwaitContext=65536]="AwaitContext",e[e.DisallowConditionalTypesContext=131072]="DisallowConditionalTypesContext",e[e.ThisNodeHasError=262144]="ThisNodeHasError",e[e.JavaScriptFile=524288]="JavaScriptFile",e[e.ThisNodeOrAnySubNodesHasError=1048576]="ThisNodeOrAnySubNodesHasError",e[e.HasAggregatedChildData=2097152]="HasAggregatedChildData",e[e.PossiblyContainsDynamicImport=4194304]="PossiblyContainsDynamicImport",e[e.PossiblyContainsImportMeta=8388608]="PossiblyContainsImportMeta",e[e.JSDoc=16777216]="JSDoc",e[e.Ambient=33554432]="Ambient",e[e.InWithStatement=67108864]="InWithStatement",e[e.JsonFile=134217728]="JsonFile",e[e.TypeCached=268435456]="TypeCached",e[e.Deprecated=536870912]="Deprecated",e[e.BlockScoped=7]="BlockScoped",e[e.Constant=6]="Constant",e[e.ReachabilityCheckFlags=1536]="ReachabilityCheckFlags",e[e.ReachabilityAndEmitFlags=5632]="ReachabilityAndEmitFlags",e[e.ContextFlags=101441536]="ContextFlags",e[e.TypeExcludesFlags=81920]="TypeExcludesFlags",e[e.PermanentlySetIncrementalFlags=12582912]="PermanentlySetIncrementalFlags",e[e.IdentifierHasExtendedUnicodeEscape=256]="IdentifierHasExtendedUnicodeEscape",e[e.IdentifierIsInJSDocNamespace=4096]="IdentifierIsInJSDocNamespace",e))(IO||{}),zSi=(e=>(e[e.None=0]="None",e[e.Public=1]="Public",e[e.Private=2]="Private",e[e.Protected=4]="Protected",e[e.Readonly=8]="Readonly",e[e.Override=16]="Override",e[e.Export=32]="Export",e[e.Abstract=64]="Abstract",e[e.Ambient=128]="Ambient",e[e.Static=256]="Static",e[e.Accessor=512]="Accessor",e[e.Async=1024]="Async",e[e.Default=2048]="Default",e[e.Const=4096]="Const",e[e.In=8192]="In",e[e.Out=16384]="Out",e[e.Decorator=32768]="Decorator",e[e.Deprecated=65536]="Deprecated",e[e.JSDocPublic=8388608]="JSDocPublic",e[e.JSDocPrivate=16777216]="JSDocPrivate",e[e.JSDocProtected=33554432]="JSDocProtected",e[e.JSDocReadonly=67108864]="JSDocReadonly",e[e.JSDocOverride=134217728]="JSDocOverride",e[e.SyntacticOrJSDocModifiers=31]="SyntacticOrJSDocModifiers",e[e.SyntacticOnlyModifiers=65504]="SyntacticOnlyModifiers",e[e.SyntacticModifiers=65535]="SyntacticModifiers",e[e.JSDocCacheOnlyModifiers=260046848]="JSDocCacheOnlyModifiers",e[e.JSDocOnlyModifiers=65536]="JSDocOnlyModifiers",e[e.NonCacheOnlyModifiers=131071]="NonCacheOnlyModifiers",e[e.HasComputedJSDocModifiers=268435456]="HasComputedJSDocModifiers",e[e.HasComputedFlags=536870912]="HasComputedFlags",e[e.AccessibilityModifier=7]="AccessibilityModifier",e[e.ParameterPropertyModifier=31]="ParameterPropertyModifier",e[e.NonPublicAccessibilityModifier=6]="NonPublicAccessibilityModifier",e[e.TypeScriptModifier=28895]="TypeScriptModifier",e[e.ExportDefault=2080]="ExportDefault",e[e.All=131071]="All",e[e.Modifier=98303]="Modifier",e))(zSi||{}),qSi=(e=>(e[e.None=0]="None",e[e.Succeeded=1]="Succeeded",e[e.Failed=2]="Failed",e[e.ReportsUnmeasurable=8]="ReportsUnmeasurable",e[e.ReportsUnreliable=16]="ReportsUnreliable",e[e.ReportsMask=24]="ReportsMask",e[e.ComplexityOverflow=32]="ComplexityOverflow",e[e.StackDepthOverflow=64]="StackDepthOverflow",e[e.Overflow=96]="Overflow",e))(qSi||{}),aNr=(e=>(e[e.Unreachable=1]="Unreachable",e[e.Start=2]="Start",e[e.BranchLabel=4]="BranchLabel",e[e.LoopLabel=8]="LoopLabel",e[e.Assignment=16]="Assignment",e[e.TrueCondition=32]="TrueCondition",e[e.FalseCondition=64]="FalseCondition",e[e.SwitchClause=128]="SwitchClause",e[e.ArrayMutation=256]="ArrayMutation",e[e.Call=512]="Call",e[e.ReduceLabel=1024]="ReduceLabel",e[e.Referenced=2048]="Referenced",e[e.Shared=4096]="Shared",e[e.Label=12]="Label",e[e.Condition=96]="Condition",e))(aNr||{}),$Si=(e=>(e[e.None=0]="None",e[e.FunctionScopedVariable=1]="FunctionScopedVariable",e[e.BlockScopedVariable=2]="BlockScopedVariable",e[e.Property=4]="Property",e[e.EnumMember=8]="EnumMember",e[e.Function=16]="Function",e[e.Class=32]="Class",e[e.Interface=64]="Interface",e[e.ConstEnum=128]="ConstEnum",e[e.RegularEnum=256]="RegularEnum",e[e.ValueModule=512]="ValueModule",e[e.NamespaceModule=1024]="NamespaceModule",e[e.TypeLiteral=2048]="TypeLiteral",e[e.ObjectLiteral=4096]="ObjectLiteral",e[e.Method=8192]="Method",e[e.Constructor=16384]="Constructor",e[e.GetAccessor=32768]="GetAccessor",e[e.SetAccessor=65536]="SetAccessor",e[e.Signature=131072]="Signature",e[e.TypeParameter=262144]="TypeParameter",e[e.TypeAlias=524288]="TypeAlias",e[e.ExportValue=1048576]="ExportValue",e[e.Alias=2097152]="Alias",e[e.Prototype=4194304]="Prototype",e[e.ExportStar=8388608]="ExportStar",e[e.Optional=16777216]="Optional",e[e.Transient=33554432]="Transient",e[e.Assignment=67108864]="Assignment",e[e.ModuleExports=134217728]="ModuleExports",e[e.All=-1]="All",e[e.Enum=384]="Enum",e[e.Variable=3]="Variable",e[e.Value=111551]="Value",e[e.Type=788968]="Type",e[e.Namespace=1920]="Namespace",e[e.Module=1536]="Module",e[e.Accessor=98304]="Accessor",e[e.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",e[e.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",e[e.ParameterExcludes=111551]="ParameterExcludes",e[e.PropertyExcludes=0]="PropertyExcludes",e[e.EnumMemberExcludes=900095]="EnumMemberExcludes",e[e.FunctionExcludes=110991]="FunctionExcludes",e[e.ClassExcludes=899503]="ClassExcludes",e[e.InterfaceExcludes=788872]="InterfaceExcludes",e[e.RegularEnumExcludes=899327]="RegularEnumExcludes",e[e.ConstEnumExcludes=899967]="ConstEnumExcludes",e[e.ValueModuleExcludes=110735]="ValueModuleExcludes",e[e.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",e[e.MethodExcludes=103359]="MethodExcludes",e[e.GetAccessorExcludes=46015]="GetAccessorExcludes",e[e.SetAccessorExcludes=78783]="SetAccessorExcludes",e[e.AccessorExcludes=13247]="AccessorExcludes",e[e.TypeParameterExcludes=526824]="TypeParameterExcludes",e[e.TypeAliasExcludes=788968]="TypeAliasExcludes",e[e.AliasExcludes=2097152]="AliasExcludes",e[e.ModuleMember=2623475]="ModuleMember",e[e.ExportHasLocal=944]="ExportHasLocal",e[e.BlockScoped=418]="BlockScoped",e[e.PropertyOrAccessor=98308]="PropertyOrAccessor",e[e.ClassMember=106500]="ClassMember",e[e.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",e[e.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",e[e.Classifiable=2885600]="Classifiable",e[e.LateBindingContainer=6256]="LateBindingContainer",e))($Si||{}),evi=(e=>(e[e.None=0]="None",e[e.TypeChecked=1]="TypeChecked",e[e.LexicalThis=2]="LexicalThis",e[e.CaptureThis=4]="CaptureThis",e[e.CaptureNewTarget=8]="CaptureNewTarget",e[e.SuperInstance=16]="SuperInstance",e[e.SuperStatic=32]="SuperStatic",e[e.ContextChecked=64]="ContextChecked",e[e.MethodWithSuperPropertyAccessInAsync=128]="MethodWithSuperPropertyAccessInAsync",e[e.MethodWithSuperPropertyAssignmentInAsync=256]="MethodWithSuperPropertyAssignmentInAsync",e[e.CaptureArguments=512]="CaptureArguments",e[e.EnumValuesComputed=1024]="EnumValuesComputed",e[e.LexicalModuleMergesWithClass=2048]="LexicalModuleMergesWithClass",e[e.LoopWithCapturedBlockScopedBinding=4096]="LoopWithCapturedBlockScopedBinding",e[e.ContainsCapturedBlockScopeBinding=8192]="ContainsCapturedBlockScopeBinding",e[e.CapturedBlockScopedBinding=16384]="CapturedBlockScopedBinding",e[e.BlockScopedBindingInLoop=32768]="BlockScopedBindingInLoop",e[e.NeedsLoopOutParameter=65536]="NeedsLoopOutParameter",e[e.AssignmentsMarked=131072]="AssignmentsMarked",e[e.ContainsConstructorReference=262144]="ContainsConstructorReference",e[e.ConstructorReference=536870912]="ConstructorReference",e[e.ContainsClassWithPrivateIdentifiers=1048576]="ContainsClassWithPrivateIdentifiers",e[e.ContainsSuperPropertyInStaticInitializer=2097152]="ContainsSuperPropertyInStaticInitializer",e[e.InCheckIdentifier=4194304]="InCheckIdentifier",e[e.PartiallyTypeChecked=8388608]="PartiallyTypeChecked",e[e.LazyFlags=539358128]="LazyFlags",e))(evi||{}),kG=(e=>(e[e.Any=1]="Any",e[e.Unknown=2]="Unknown",e[e.String=4]="String",e[e.Number=8]="Number",e[e.Boolean=16]="Boolean",e[e.Enum=32]="Enum",e[e.BigInt=64]="BigInt",e[e.StringLiteral=128]="StringLiteral",e[e.NumberLiteral=256]="NumberLiteral",e[e.BooleanLiteral=512]="BooleanLiteral",e[e.EnumLiteral=1024]="EnumLiteral",e[e.BigIntLiteral=2048]="BigIntLiteral",e[e.ESSymbol=4096]="ESSymbol",e[e.UniqueESSymbol=8192]="UniqueESSymbol",e[e.Void=16384]="Void",e[e.Undefined=32768]="Undefined",e[e.Null=65536]="Null",e[e.Never=131072]="Never",e[e.TypeParameter=262144]="TypeParameter",e[e.Object=524288]="Object",e[e.Union=1048576]="Union",e[e.Intersection=2097152]="Intersection",e[e.Index=4194304]="Index",e[e.IndexedAccess=8388608]="IndexedAccess",e[e.Conditional=16777216]="Conditional",e[e.Substitution=33554432]="Substitution",e[e.NonPrimitive=67108864]="NonPrimitive",e[e.TemplateLiteral=134217728]="TemplateLiteral",e[e.StringMapping=268435456]="StringMapping",e[e.Reserved1=536870912]="Reserved1",e[e.Reserved2=1073741824]="Reserved2",e[e.AnyOrUnknown=3]="AnyOrUnknown",e[e.Nullable=98304]="Nullable",e[e.Literal=2944]="Literal",e[e.Unit=109472]="Unit",e[e.Freshable=2976]="Freshable",e[e.StringOrNumberLiteral=384]="StringOrNumberLiteral",e[e.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",e[e.DefinitelyFalsy=117632]="DefinitelyFalsy",e[e.PossiblyFalsy=117724]="PossiblyFalsy",e[e.Intrinsic=67359327]="Intrinsic",e[e.StringLike=402653316]="StringLike",e[e.NumberLike=296]="NumberLike",e[e.BigIntLike=2112]="BigIntLike",e[e.BooleanLike=528]="BooleanLike",e[e.EnumLike=1056]="EnumLike",e[e.ESSymbolLike=12288]="ESSymbolLike",e[e.VoidLike=49152]="VoidLike",e[e.Primitive=402784252]="Primitive",e[e.DefinitelyNonNullable=470302716]="DefinitelyNonNullable",e[e.DisjointDomains=469892092]="DisjointDomains",e[e.UnionOrIntersection=3145728]="UnionOrIntersection",e[e.StructuredType=3670016]="StructuredType",e[e.TypeVariable=8650752]="TypeVariable",e[e.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",e[e.InstantiablePrimitive=406847488]="InstantiablePrimitive",e[e.Instantiable=465829888]="Instantiable",e[e.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",e[e.ObjectFlagsType=3899393]="ObjectFlagsType",e[e.Simplifiable=25165824]="Simplifiable",e[e.Singleton=67358815]="Singleton",e[e.Narrowable=536624127]="Narrowable",e[e.IncludesMask=473694207]="IncludesMask",e[e.IncludesMissingType=262144]="IncludesMissingType",e[e.IncludesNonWideningType=4194304]="IncludesNonWideningType",e[e.IncludesWildcard=8388608]="IncludesWildcard",e[e.IncludesEmptyObject=16777216]="IncludesEmptyObject",e[e.IncludesInstantiable=33554432]="IncludesInstantiable",e[e.IncludesConstrainedTypeVariable=536870912]="IncludesConstrainedTypeVariable",e[e.IncludesError=1073741824]="IncludesError",e[e.NotPrimitiveUnion=36323331]="NotPrimitiveUnion",e))(kG||{}),tvi=(e=>(e[e.None=0]="None",e[e.Class=1]="Class",e[e.Interface=2]="Interface",e[e.Reference=4]="Reference",e[e.Tuple=8]="Tuple",e[e.Anonymous=16]="Anonymous",e[e.Mapped=32]="Mapped",e[e.Instantiated=64]="Instantiated",e[e.ObjectLiteral=128]="ObjectLiteral",e[e.EvolvingArray=256]="EvolvingArray",e[e.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",e[e.ReverseMapped=1024]="ReverseMapped",e[e.JsxAttributes=2048]="JsxAttributes",e[e.JSLiteral=4096]="JSLiteral",e[e.FreshLiteral=8192]="FreshLiteral",e[e.ArrayLiteral=16384]="ArrayLiteral",e[e.PrimitiveUnion=32768]="PrimitiveUnion",e[e.ContainsWideningType=65536]="ContainsWideningType",e[e.ContainsObjectOrArrayLiteral=131072]="ContainsObjectOrArrayLiteral",e[e.NonInferrableType=262144]="NonInferrableType",e[e.CouldContainTypeVariablesComputed=524288]="CouldContainTypeVariablesComputed",e[e.CouldContainTypeVariables=1048576]="CouldContainTypeVariables",e[e.ClassOrInterface=3]="ClassOrInterface",e[e.RequiresWidening=196608]="RequiresWidening",e[e.PropagatingFlags=458752]="PropagatingFlags",e[e.InstantiatedMapped=96]="InstantiatedMapped",e[e.ObjectTypeKindMask=1343]="ObjectTypeKindMask",e[e.ContainsSpread=2097152]="ContainsSpread",e[e.ObjectRestType=4194304]="ObjectRestType",e[e.InstantiationExpressionType=8388608]="InstantiationExpressionType",e[e.SingleSignatureType=134217728]="SingleSignatureType",e[e.IsClassInstanceClone=16777216]="IsClassInstanceClone",e[e.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",e[e.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",e[e.IsGenericTypeComputed=2097152]="IsGenericTypeComputed",e[e.IsGenericObjectType=4194304]="IsGenericObjectType",e[e.IsGenericIndexType=8388608]="IsGenericIndexType",e[e.IsGenericType=12582912]="IsGenericType",e[e.ContainsIntersections=16777216]="ContainsIntersections",e[e.IsUnknownLikeUnionComputed=33554432]="IsUnknownLikeUnionComputed",e[e.IsUnknownLikeUnion=67108864]="IsUnknownLikeUnion",e[e.IsNeverIntersectionComputed=16777216]="IsNeverIntersectionComputed",e[e.IsNeverIntersection=33554432]="IsNeverIntersection",e[e.IsConstrainedTypeVariable=67108864]="IsConstrainedTypeVariable",e))(tvi||{}),rvi=(e=>(e[e.None=0]="None",e[e.HasRestParameter=1]="HasRestParameter",e[e.HasLiteralTypes=2]="HasLiteralTypes",e[e.Abstract=4]="Abstract",e[e.IsInnerCallChain=8]="IsInnerCallChain",e[e.IsOuterCallChain=16]="IsOuterCallChain",e[e.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",e[e.IsNonInferrable=64]="IsNonInferrable",e[e.IsSignatureCandidateForOverloadFailure=128]="IsSignatureCandidateForOverloadFailure",e[e.PropagatingFlags=167]="PropagatingFlags",e[e.CallChainFlags=24]="CallChainFlags",e))(rvi||{}),Bee=(e=>(e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX",e[e.External=5]="External",e[e.JSON=6]="JSON",e[e.Deferred=7]="Deferred",e))(Bee||{}),GNr=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ES2021=8]="ES2021",e[e.ES2022=9]="ES2022",e[e.ES2023=10]="ES2023",e[e.ES2024=11]="ES2024",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(GNr||{}),nvi=(e=>(e[e.Standard=0]="Standard",e[e.JSX=1]="JSX",e))(nvi||{}),tH=(e=>(e.Ts=".ts",e.Tsx=".tsx",e.Dts=".d.ts",e.Js=".js",e.Jsx=".jsx",e.Json=".json",e.TsBuildInfo=".tsbuildinfo",e.Mjs=".mjs",e.Mts=".mts",e.Dmts=".d.mts",e.Cjs=".cjs",e.Cts=".cts",e.Dcts=".d.cts",e))(tH||{}),ivi=(e=>(e[e.None=0]="None",e[e.ContainsTypeScript=1]="ContainsTypeScript",e[e.ContainsJsx=2]="ContainsJsx",e[e.ContainsESNext=4]="ContainsESNext",e[e.ContainsES2022=8]="ContainsES2022",e[e.ContainsES2021=16]="ContainsES2021",e[e.ContainsES2020=32]="ContainsES2020",e[e.ContainsES2019=64]="ContainsES2019",e[e.ContainsES2018=128]="ContainsES2018",e[e.ContainsES2017=256]="ContainsES2017",e[e.ContainsES2016=512]="ContainsES2016",e[e.ContainsES2015=1024]="ContainsES2015",e[e.ContainsGenerator=2048]="ContainsGenerator",e[e.ContainsDestructuringAssignment=4096]="ContainsDestructuringAssignment",e[e.ContainsTypeScriptClassSyntax=8192]="ContainsTypeScriptClassSyntax",e[e.ContainsLexicalThis=16384]="ContainsLexicalThis",e[e.ContainsRestOrSpread=32768]="ContainsRestOrSpread",e[e.ContainsObjectRestOrSpread=65536]="ContainsObjectRestOrSpread",e[e.ContainsComputedPropertyName=131072]="ContainsComputedPropertyName",e[e.ContainsBlockScopedBinding=262144]="ContainsBlockScopedBinding",e[e.ContainsBindingPattern=524288]="ContainsBindingPattern",e[e.ContainsYield=1048576]="ContainsYield",e[e.ContainsAwait=2097152]="ContainsAwait",e[e.ContainsHoistedDeclarationOrCompletion=4194304]="ContainsHoistedDeclarationOrCompletion",e[e.ContainsDynamicImport=8388608]="ContainsDynamicImport",e[e.ContainsClassFields=16777216]="ContainsClassFields",e[e.ContainsDecorators=33554432]="ContainsDecorators",e[e.ContainsPossibleTopLevelAwait=67108864]="ContainsPossibleTopLevelAwait",e[e.ContainsLexicalSuper=134217728]="ContainsLexicalSuper",e[e.ContainsUpdateExpressionForIdentifier=268435456]="ContainsUpdateExpressionForIdentifier",e[e.ContainsPrivateIdentifierInExpression=536870912]="ContainsPrivateIdentifierInExpression",e[e.HasComputedFlags=-2147483648]="HasComputedFlags",e[e.AssertTypeScript=1]="AssertTypeScript",e[e.AssertJsx=2]="AssertJsx",e[e.AssertESNext=4]="AssertESNext",e[e.AssertES2022=8]="AssertES2022",e[e.AssertES2021=16]="AssertES2021",e[e.AssertES2020=32]="AssertES2020",e[e.AssertES2019=64]="AssertES2019",e[e.AssertES2018=128]="AssertES2018",e[e.AssertES2017=256]="AssertES2017",e[e.AssertES2016=512]="AssertES2016",e[e.AssertES2015=1024]="AssertES2015",e[e.AssertGenerator=2048]="AssertGenerator",e[e.AssertDestructuringAssignment=4096]="AssertDestructuringAssignment",e[e.OuterExpressionExcludes=-2147483648]="OuterExpressionExcludes",e[e.PropertyAccessExcludes=-2147483648]="PropertyAccessExcludes",e[e.NodeExcludes=-2147483648]="NodeExcludes",e[e.ArrowFunctionExcludes=-2072174592]="ArrowFunctionExcludes",e[e.FunctionExcludes=-1937940480]="FunctionExcludes",e[e.ConstructorExcludes=-1937948672]="ConstructorExcludes",e[e.MethodOrAccessorExcludes=-2005057536]="MethodOrAccessorExcludes",e[e.PropertyExcludes=-2013249536]="PropertyExcludes",e[e.ClassExcludes=-2147344384]="ClassExcludes",e[e.ModuleExcludes=-1941676032]="ModuleExcludes",e[e.TypeExcludes=-2]="TypeExcludes",e[e.ObjectLiteralExcludes=-2147278848]="ObjectLiteralExcludes",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]="ArrayLiteralOrCallOrNewExcludes",e[e.VariableDeclarationListExcludes=-2146893824]="VariableDeclarationListExcludes",e[e.ParameterExcludes=-2147483648]="ParameterExcludes",e[e.CatchClauseExcludes=-2147418112]="CatchClauseExcludes",e[e.BindingPatternExcludes=-2147450880]="BindingPatternExcludes",e[e.ContainsLexicalThisOrSuper=134234112]="ContainsLexicalThisOrSuper",e[e.PropertyNamePropagatingFlags=134234112]="PropertyNamePropagatingFlags",e))(ivi||{}),svi=(e=>(e[e.TabStop=0]="TabStop",e[e.Placeholder=1]="Placeholder",e[e.Choice=2]="Choice",e[e.Variable=3]="Variable",e))(svi||{}),ovi=(e=>(e[e.None=0]="None",e[e.SingleLine=1]="SingleLine",e[e.MultiLine=2]="MultiLine",e[e.AdviseOnEmitNode=4]="AdviseOnEmitNode",e[e.NoSubstitution=8]="NoSubstitution",e[e.CapturesThis=16]="CapturesThis",e[e.NoLeadingSourceMap=32]="NoLeadingSourceMap",e[e.NoTrailingSourceMap=64]="NoTrailingSourceMap",e[e.NoSourceMap=96]="NoSourceMap",e[e.NoNestedSourceMaps=128]="NoNestedSourceMaps",e[e.NoTokenLeadingSourceMaps=256]="NoTokenLeadingSourceMaps",e[e.NoTokenTrailingSourceMaps=512]="NoTokenTrailingSourceMaps",e[e.NoTokenSourceMaps=768]="NoTokenSourceMaps",e[e.NoLeadingComments=1024]="NoLeadingComments",e[e.NoTrailingComments=2048]="NoTrailingComments",e[e.NoComments=3072]="NoComments",e[e.NoNestedComments=4096]="NoNestedComments",e[e.HelperName=8192]="HelperName",e[e.ExportName=16384]="ExportName",e[e.LocalName=32768]="LocalName",e[e.InternalName=65536]="InternalName",e[e.Indented=131072]="Indented",e[e.NoIndentation=262144]="NoIndentation",e[e.AsyncFunctionBody=524288]="AsyncFunctionBody",e[e.ReuseTempVariableScope=1048576]="ReuseTempVariableScope",e[e.CustomPrologue=2097152]="CustomPrologue",e[e.NoHoisting=4194304]="NoHoisting",e[e.Iterator=8388608]="Iterator",e[e.NoAsciiEscaping=16777216]="NoAsciiEscaping",e))(ovi||{}),tJe={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99},avi={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0},{name:"resolution-mode",optional:!0},{name:"preserve",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}},uJe=(e=>(e[e.ParseAll=0]="ParseAll",e[e.ParseNone=1]="ParseNone",e[e.ParseForTypeErrors=2]="ParseForTypeErrors",e[e.ParseForTypeInfo=3]="ParseForTypeInfo",e))(uJe||{}),Hme="/",g7a="\\",R2i="://",A7a=/\\/g;function d7a(e){return e===47||e===92}function p7a(e,t){return e.length>t.length&&o7a(e,t)}function FNr(e){return e.length>0&&d7a(e.charCodeAt(e.length-1))}function N2i(e){return e>=97&&e<=122||e>=65&&e<=90}function f7a(e,t){let r=e.charCodeAt(t);if(r===58)return t+1;if(r===37&&e.charCodeAt(t+1)===51){let n=e.charCodeAt(t+2);if(n===97||n===65)return t+3}return-1}function I7a(e){if(!e)return 0;let t=e.charCodeAt(0);if(t===47||t===92){if(e.charCodeAt(1)!==t)return 1;let n=e.indexOf(t===47?Hme:g7a,2);return n<0?e.length:n+1}if(N2i(t)&&e.charCodeAt(1)===58){let n=e.charCodeAt(2);if(n===47||n===92)return 3;if(e.length===2)return 2}let r=e.indexOf(R2i);if(r!==-1){let n=r+R2i.length,a=e.indexOf(Hme,n);if(a!==-1){let o=e.slice(0,r),l=e.slice(n,a);if(o==="file"&&(l===""||l==="localhost")&&N2i(e.charCodeAt(a+1))){let A=f7a(e,a+2);if(A!==-1){if(e.charCodeAt(A)===47)return~(A+1);if(A===e.length)return~A}}return~(a+1)}return~e.length}return 0}function Mbt(e){let t=I7a(e);return t<0?~t:t}function cvi(e,t,r){if(e=Hbt(e),Mbt(e)===e.length)return"";e=uvi(e);let n=e.slice(Math.max(Mbt(e),e.lastIndexOf(Hme)+1)),a=t!==void 0&&r!==void 0?lvi(n,t,r):void 0;return a?n.slice(0,n.length-a.length):n}function D2i(e,t,r){if(Obt(t,".")||(t="."+t),e.length>=t.length&&e.charCodeAt(e.length-t.length)===46){let n=e.slice(e.length-t.length);if(r(n,t))return n}}function h7a(e,t,r){if(typeof t=="string")return D2i(e,t,r)||"";for(let n of t){let a=D2i(e,n,r);if(a)return a}return""}function lvi(e,t,r){if(t)return h7a(uvi(e),t,r?xNr:r7a);let n=cvi(e),a=n.lastIndexOf(".");return a>=0?n.substring(a):""}function m7a(e,t){let r=e.substring(0,t),n=e.substring(t).split(Hme);return n.length&&!Vme(n)&&n.pop(),[r,...n]}function C7a(e,t=""){return e=b7a(t,e),m7a(e,Mbt(e))}function _7a(e,t){return e.length===0?"":(e[0]&&ZNr(e[0]))+e.slice(1,t).join(Hme)}function Hbt(e){return e.includes("\\")?e.replace(A7a,Hme):e}function y7a(e){if(!oD(e))return[];let t=[e[0]];for(let r=1;r1){if(t[t.length-1]!==".."){t.pop();continue}}else if(t[0])continue}t.push(n)}}return t}function b7a(e,...t){e&&(e=Hbt(e));for(let r of t)r&&(r=Hbt(r),!e||Mbt(r)!==0?e=r:e=ZNr(e)+r);return e}function E7a(e){if(e=Hbt(e),!k2i.test(e))return e;let t=e.replace(/\/\.\//g,"/").replace(/^\.\//,"");if(t!==e&&(e=t,!k2i.test(e)))return e;let r=_7a(y7a(C7a(e)));return r&&FNr(e)?ZNr(r):r}function uvi(e){return FNr(e)?e.substr(0,e.length-1):e}function ZNr(e){return FNr(e)?e:e+Hme}var k2i=/\/\/|(?:^|\/)\.\.?(?:$|\/)/;function $(e,t,r,n,a,o,l){return{code:e,category:t,key:r,message:n,reportsUnnecessary:a,elidedInCompatabilityPyramid:o,reportsDeprecated:l}}var ts={Unterminated_string_literal:$(1002,1,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:$(1003,1,"Identifier_expected_1003","Identifier expected."),_0_expected:$(1005,1,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:$(1006,1,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:$(1007,1,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:$(1009,1,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:$(1010,1,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:$(1011,1,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:$(1012,1,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:$(1013,1,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:$(1014,1,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:$(1015,1,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:$(1016,1,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:$(1017,1,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:$(1018,1,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:$(1019,1,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:$(1020,1,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:$(1021,1,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:$(1022,1,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:$(1024,1,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:$(1025,1,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:$(1028,1,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:$(1029,1,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:$(1030,1,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:$(1031,1,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:$(1034,1,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:$(1035,1,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:$(1036,1,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:$(1038,1,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:$(1039,1,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:$(1040,1,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:$(1042,1,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:$(1044,1,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:$(1046,1,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:$(1047,1,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:$(1048,1,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:$(1049,1,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:$(1051,1,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:$(1052,1,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:$(1053,1,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:$(1054,1,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:$(1055,1,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055","Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:$(1056,1,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1058,1,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:$(1059,1,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:$(1060,1,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:$(1061,1,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:$(1062,1,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:$(1063,1,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:$(1064,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:$(1065,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065","The return type of an async function or method must be the global Promise type."),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:$(1066,1,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:$(1068,1,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:$(1069,1,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:$(1070,1,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:$(1071,1,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:$(1079,1,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:$(1084,1,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),_0_modifier_cannot_appear_on_a_constructor_declaration:$(1089,1,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:$(1090,1,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:$(1091,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:$(1092,1,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:$(1093,1,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:$(1094,1,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:$(1095,1,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:$(1096,1,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:$(1097,1,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:$(1098,1,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:$(1099,1,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:$(1100,1,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:$(1101,1,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:$(1102,1,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1103,1,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:$(1104,1,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:$(1105,1,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:$(1106,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:$(1107,1,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:$(1108,1,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:$(1109,1,"Expression_expected_1109","Expression expected."),Type_expected:$(1110,1,"Type_expected_1110","Type expected."),Private_field_0_must_be_declared_in_an_enclosing_class:$(1111,1,"Private_field_0_must_be_declared_in_an_enclosing_class_1111","Private field '{0}' must be declared in an enclosing class."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:$(1113,1,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:$(1114,1,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:$(1115,1,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:$(1116,1,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name:$(1117,1,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:$(1118,1,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:$(1119,1,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:$(1120,1,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_Use_the_syntax_0:$(1121,1,"Octal_literals_are_not_allowed_Use_the_syntax_0_1121","Octal literals are not allowed. Use the syntax '{0}'."),Variable_declaration_list_cannot_be_empty:$(1123,1,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:$(1124,1,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:$(1125,1,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:$(1126,1,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:$(1127,1,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:$(1128,1,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:$(1129,1,"Statement_expected_1129","Statement expected."),case_or_default_expected:$(1130,1,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:$(1131,1,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:$(1132,1,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:$(1134,1,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:$(1135,1,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:$(1136,1,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:$(1137,1,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:$(1138,1,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:$(1139,1,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:$(1140,1,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:$(1141,1,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:$(1142,1,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:$(1144,1,"or_expected_1144","'{' or ';' expected."),or_JSX_element_expected:$(1145,1,"or_JSX_element_expected_1145","'{' or JSX element expected."),Declaration_expected:$(1146,1,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:$(1147,1,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:$(1148,1,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:$(1149,1,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),_0_declarations_must_be_initialized:$(1155,1,"_0_declarations_must_be_initialized_1155","'{0}' declarations must be initialized."),_0_declarations_can_only_be_declared_inside_a_block:$(1156,1,"_0_declarations_can_only_be_declared_inside_a_block_1156","'{0}' declarations can only be declared inside a block."),Unterminated_template_literal:$(1160,1,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:$(1161,1,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:$(1162,1,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:$(1163,1,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:$(1164,1,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1165,1,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:$(1166,1,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1168,1,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1169,1,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1170,1,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:$(1171,1,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:$(1172,1,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:$(1173,1,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:$(1174,1,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:$(1175,1,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:$(1176,1,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:$(1177,1,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:$(1178,1,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:$(1179,1,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:$(1180,1,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:$(1181,1,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:$(1182,1,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:$(1183,1,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:$(1184,1,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:$(1185,1,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:$(1186,1,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:$(1187,1,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:$(1188,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:$(1189,1,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:$(1190,1,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:$(1191,1,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:$(1192,1,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:$(1193,1,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:$(1194,1,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:$(1195,1,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:$(1196,1,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:$(1197,1,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:$(1198,1,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:$(1199,1,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:$(1200,1,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:$(1202,1,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:$(1203,1,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:$(1205,1,"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205","Re-exporting a type when '{0}' is enabled requires using 'export type'."),Decorators_are_not_valid_here:$(1206,1,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:$(1207,1,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:$(1209,1,"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209","Invalid optional chain from new expression. Did you mean to call '{0}()'?"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:$(1210,1,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:$(1211,1,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:$(1212,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:$(1213,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:$(1214,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:$(1215,1,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:$(1216,1,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:$(1218,1,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Generators_are_not_allowed_in_an_ambient_context:$(1221,1,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:$(1222,1,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:$(1223,1,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:$(1224,1,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:$(1225,1,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:$(1226,1,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:$(1227,1,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:$(1228,1,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:$(1229,1,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:$(1230,1,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1231,1,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1232,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1233,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:$(1234,1,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:$(1235,1,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:$(1236,1,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:$(1237,1,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:$(1238,1,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:$(1239,1,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:$(1240,1,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:$(1241,1,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:$(1242,1,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:$(1243,1,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:$(1244,1,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:$(1245,1,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:$(1246,1,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:$(1247,1,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:$(1248,1,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:$(1249,1,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:$(1250,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:$(1251,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:$(1252,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode."),Abstract_properties_can_only_appear_within_an_abstract_class:$(1253,1,"Abstract_properties_can_only_appear_within_an_abstract_class_1253","Abstract properties can only appear within an abstract class."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:$(1254,1,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:$(1255,1,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:$(1257,1,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1258,1,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:$(1259,1,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:$(1260,1,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:$(1261,1,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:$(1262,1,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:$(1263,1,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:$(1264,1,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:$(1265,1,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:$(1266,1,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:$(1267,1,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:$(1268,1,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:$(1269,1,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269","Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),Decorator_function_return_type_0_is_not_assignable_to_type_1:$(1270,1,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:$(1271,1,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:$(1272,1,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:$(1273,1,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:$(1274,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),accessor_modifier_can_only_appear_on_a_property_declaration:$(1275,1,"accessor_modifier_can_only_appear_on_a_property_declaration_1275","'accessor' modifier can only appear on a property declaration."),An_accessor_property_cannot_be_declared_optional:$(1276,1,"An_accessor_property_cannot_be_declared_optional_1276","An 'accessor' property cannot be declared optional."),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:$(1277,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277","'{0}' modifier can only appear on a type parameter of a function, method or class"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:$(1278,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278","The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:$(1279,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279","The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:$(1280,1,"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280","Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:$(1281,1,"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281","Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1282,1,"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282","An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1283,1,"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283","An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1284,1,"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284","An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1285,1,"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285","An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1286,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286","ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1287,1,"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287","A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:$(1288,1,"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288","An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1289,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1290,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1291,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1292,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:$(1293,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293","ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'."),with_statements_are_not_allowed_in_an_async_function_block:$(1300,1,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1308,1,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:$(1309,1,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:$(1312,1,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:$(1313,1,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:$(1314,1,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:$(1315,1,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:$(1316,1,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:$(1317,1,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:$(1318,1,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:$(1319,1,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1320,1,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1321,1,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1322,1,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:$(1323,1,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodenext_or_preserve:$(1324,1,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodene_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'nodenext', or 'preserve'."),Argument_of_dynamic_import_cannot_be_spread_element:$(1325,1,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:$(1326,1,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),String_literal_with_double_quotes_expected:$(1327,1,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:$(1328,1,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:$(1329,1,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:$(1330,1,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:$(1331,1,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:$(1332,1,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:$(1333,1,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:$(1334,1,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:$(1335,1,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:$(1337,1,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:$(1338,1,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:$(1339,1,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:$(1340,1,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Class_constructor_may_not_be_an_accessor:$(1341,1,"Class_constructor_may_not_be_an_accessor_1341","Class constructor may not be an accessor."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:$(1343,1,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),A_label_is_not_allowed_here:$(1344,1,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:$(1345,1,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:$(1346,1,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:$(1347,1,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:$(1348,1,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:$(1349,1,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:$(1350,3,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:$(1351,1,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:$(1352,1,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:$(1353,1,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:$(1354,1,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:$(1355,1,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:$(1356,1,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:$(1357,1,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:$(1358,1,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:$(1359,1,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Type_0_does_not_satisfy_the_expected_type_1:$(1360,1,"Type_0_does_not_satisfy_the_expected_type_1_1360","Type '{0}' does not satisfy the expected type '{1}'."),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:$(1361,1,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:$(1362,1,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:$(1363,1,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:$(1364,3,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:$(1365,3,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:$(1366,3,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:$(1367,3,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Class_constructor_may_not_be_a_generator:$(1368,1,"Class_constructor_may_not_be_a_generator_1368","Class constructor may not be a generator."),Did_you_mean_0:$(1369,3,"Did_you_mean_0_1369","Did you mean '{0}'?"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1375,1,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:$(1376,3,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:$(1377,3,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1378,1,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:$(1379,1,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:$(1380,1,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:$(1381,1,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:$(1382,1,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1385,1,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1386,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1387,1,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1388,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:$(1389,1,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),_0_is_not_allowed_as_a_parameter_name:$(1390,1,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),An_import_alias_cannot_use_import_type:$(1392,1,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:$(1393,3,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:$(1394,3,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:$(1395,3,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:$(1396,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:$(1397,3,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:$(1398,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:$(1399,3,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:$(1400,3,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:$(1401,3,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:$(1402,3,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:$(1403,3,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:$(1404,3,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:$(1405,3,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:$(1406,3,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:$(1407,3,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:$(1408,3,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:$(1409,3,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:$(1410,3,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:$(1411,3,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:$(1412,3,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:$(1413,3,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:$(1414,3,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:$(1415,3,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:$(1416,3,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:$(1417,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:$(1418,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:$(1419,3,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:$(1420,3,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:$(1421,3,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:$(1422,3,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:$(1423,3,"File_is_library_specified_here_1423","File is library specified here."),Default_library:$(1424,3,"Default_library_1424","Default library"),Default_library_for_target_0:$(1425,3,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:$(1426,3,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:$(1427,3,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:$(1428,3,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:$(1429,3,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:$(1430,3,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1431,1,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1432,1,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:$(1433,1,"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433","Neither decorators nor modifiers may be applied to 'this' parameters."),Unexpected_keyword_or_identifier:$(1434,1,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:$(1435,1,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:$(1436,1,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:$(1437,1,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:$(1438,1,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:$(1439,1,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:$(1440,1,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:$(1441,1,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:$(1442,1,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:$(1443,1,"Module_declaration_names_may_only_use_or_quoted_strings_1443",`Module declaration names may only use ' or " quoted strings.`),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:$(1448,1,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:$(1449,3,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:$(1450,3,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional set of attributes as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:$(1451,1,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),resolution_mode_should_be_either_require_or_import:$(1453,1,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:$(1454,1,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:$(1455,1,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1456,1,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:$(1457,3,"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457","Matched by default include pattern '**/*'"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:$(1458,3,"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458",`File is ECMAScript module because '{0}' has field "type" with value "module"`),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:$(1459,3,"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459",`File is CommonJS module because '{0}' has field "type" whose value is not "module"`),File_is_CommonJS_module_because_0_does_not_have_field_type:$(1460,3,"File_is_CommonJS_module_because_0_does_not_have_field_type_1460",`File is CommonJS module because '{0}' does not have field "type"`),File_is_CommonJS_module_because_package_json_was_not_found:$(1461,3,"File_is_CommonJS_module_because_package_json_was_not_found_1461","File is CommonJS module because 'package.json' was not found"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:$(1463,1,"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463","'resolution-mode' is the only valid key for type import attributes."),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1464,1,"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464","Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:$(1470,1,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:$(1471,1,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),catch_or_finally_expected:$(1472,1,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1473,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1474,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:$(1475,3,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:$(1476,3,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:$(1477,1,"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477","An instantiation expression cannot be followed by a property access."),Identifier_or_string_literal_expected:$(1478,1,"Identifier_or_string_literal_expected_1478","Identifier or string literal expected."),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:$(1479,1,"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479",`The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:$(1480,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480",'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:$(1481,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481",`To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:$(1482,3,"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482",'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:$(1483,3,"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483",'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1484,1,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484","'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1485,1,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),Decorator_used_before_export_here:$(1486,1,"Decorator_used_before_export_here_1486","Decorator used before 'export' here."),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:$(1487,1,"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487","Octal escape sequences are not allowed. Use the syntax '{0}'."),Escape_sequence_0_is_not_allowed:$(1488,1,"Escape_sequence_0_is_not_allowed_1488","Escape sequence '{0}' is not allowed."),Decimals_with_leading_zeros_are_not_allowed:$(1489,1,"Decimals_with_leading_zeros_are_not_allowed_1489","Decimals with leading zeros are not allowed."),File_appears_to_be_binary:$(1490,1,"File_appears_to_be_binary_1490","File appears to be binary."),_0_modifier_cannot_appear_on_a_using_declaration:$(1491,1,"_0_modifier_cannot_appear_on_a_using_declaration_1491","'{0}' modifier cannot appear on a 'using' declaration."),_0_declarations_may_not_have_binding_patterns:$(1492,1,"_0_declarations_may_not_have_binding_patterns_1492","'{0}' declarations may not have binding patterns."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:$(1493,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493","The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:$(1494,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494","The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),_0_modifier_cannot_appear_on_an_await_using_declaration:$(1495,1,"_0_modifier_cannot_appear_on_an_await_using_declaration_1495","'{0}' modifier cannot appear on an 'await using' declaration."),Identifier_string_literal_or_number_literal_expected:$(1496,1,"Identifier_string_literal_or_number_literal_expected_1496","Identifier, string literal, or number literal expected."),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:$(1497,1,"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497","Expression must be enclosed in parentheses to be used as a decorator."),Invalid_syntax_in_decorator:$(1498,1,"Invalid_syntax_in_decorator_1498","Invalid syntax in decorator."),Unknown_regular_expression_flag:$(1499,1,"Unknown_regular_expression_flag_1499","Unknown regular expression flag."),Duplicate_regular_expression_flag:$(1500,1,"Duplicate_regular_expression_flag_1500","Duplicate regular expression flag."),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:$(1501,1,"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501","This regular expression flag is only available when targeting '{0}' or later."),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:$(1502,1,"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502","The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:$(1503,1,"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503","Named capturing groups are only available when targeting 'ES2018' or later."),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:$(1504,1,"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504","Subpattern flags must be present when there is a minus sign."),Incomplete_quantifier_Digit_expected:$(1505,1,"Incomplete_quantifier_Digit_expected_1505","Incomplete quantifier. Digit expected."),Numbers_out_of_order_in_quantifier:$(1506,1,"Numbers_out_of_order_in_quantifier_1506","Numbers out of order in quantifier."),There_is_nothing_available_for_repetition:$(1507,1,"There_is_nothing_available_for_repetition_1507","There is nothing available for repetition."),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:$(1508,1,"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508","Unexpected '{0}'. Did you mean to escape it with backslash?"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:$(1509,1,"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509","This regular expression flag cannot be toggled within a subpattern."),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:$(1510,1,"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510","'\\k' must be followed by a capturing group name enclosed in angle brackets."),q_is_only_available_inside_character_class:$(1511,1,"q_is_only_available_inside_character_class_1511","'\\q' is only available inside character class."),c_must_be_followed_by_an_ASCII_letter:$(1512,1,"c_must_be_followed_by_an_ASCII_letter_1512","'\\c' must be followed by an ASCII letter."),Undetermined_character_escape:$(1513,1,"Undetermined_character_escape_1513","Undetermined character escape."),Expected_a_capturing_group_name:$(1514,1,"Expected_a_capturing_group_name_1514","Expected a capturing group name."),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:$(1515,1,"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515","Named capturing groups with the same name must be mutually exclusive to each other."),A_character_class_range_must_not_be_bounded_by_another_character_class:$(1516,1,"A_character_class_range_must_not_be_bounded_by_another_character_class_1516","A character class range must not be bounded by another character class."),Range_out_of_order_in_character_class:$(1517,1,"Range_out_of_order_in_character_class_1517","Range out of order in character class."),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:$(1518,1,"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518","Anything that would possibly match more than a single character is invalid inside a negated character class."),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:$(1519,1,"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519","Operators must not be mixed within a character class. Wrap it in a nested class instead."),Expected_a_class_set_operand:$(1520,1,"Expected_a_class_set_operand_1520","Expected a class set operand."),q_must_be_followed_by_string_alternatives_enclosed_in_braces:$(1521,1,"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521","'\\q' must be followed by string alternatives enclosed in braces."),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:$(1522,1,"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522","A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),Expected_a_Unicode_property_name:$(1523,1,"Expected_a_Unicode_property_name_1523","Expected a Unicode property name."),Unknown_Unicode_property_name:$(1524,1,"Unknown_Unicode_property_name_1524","Unknown Unicode property name."),Expected_a_Unicode_property_value:$(1525,1,"Expected_a_Unicode_property_value_1525","Expected a Unicode property value."),Unknown_Unicode_property_value:$(1526,1,"Unknown_Unicode_property_value_1526","Unknown Unicode property value."),Expected_a_Unicode_property_name_or_value:$(1527,1,"Expected_a_Unicode_property_name_or_value_1527","Expected a Unicode property name or value."),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:$(1528,1,"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528","Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),Unknown_Unicode_property_name_or_value:$(1529,1,"Unknown_Unicode_property_name_or_value_1529","Unknown Unicode property name or value."),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1530,1,"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530","Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:$(1531,1,"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531","'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),There_is_no_capturing_group_named_0_in_this_regular_expression:$(1532,1,"There_is_no_capturing_group_named_0_in_this_regular_expression_1532","There is no capturing group named '{0}' in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:$(1533,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533","This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:$(1534,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534","This backreference refers to a group that does not exist. There are no capturing groups in this regular expression."),This_character_cannot_be_escaped_in_a_regular_expression:$(1535,1,"This_character_cannot_be_escaped_in_a_regular_expression_1535","This character cannot be escaped in a regular expression."),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:$(1536,1,"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536","Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead."),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:$(1537,1,"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537","Decimal escape sequences and backreferences are not allowed in a character class."),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1538,1,"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538","Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),A_bigint_literal_cannot_be_used_as_a_property_name:$(1539,1,"A_bigint_literal_cannot_be_used_as_a_property_name_1539","A 'bigint' literal cannot be used as a property name."),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:$(1540,2,"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540","A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1541,1,"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541","Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1542,1,"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542","Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:$(1543,1,"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543",`Importing a JSON file into an ECMAScript module requires a 'type: "json"' import attribute when 'module' is set to '{0}'.`),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:$(1544,1,"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544","Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),The_types_of_0_are_incompatible_between_these_types:$(2200,1,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:$(2201,1,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:$(2202,1,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:$(2203,1,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2204,1,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2205,1,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:$(2206,1,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:$(2207,1,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),This_type_parameter_might_need_an_extends_0_constraint:$(2208,1,"This_type_parameter_might_need_an_extends_0_constraint_2208","This type parameter might need an `extends {0}` constraint."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2209,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2210,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),Add_extends_constraint:$(2211,3,"Add_extends_constraint_2211","Add `extends` constraint."),Add_extends_constraint_to_all_type_parameters:$(2212,3,"Add_extends_constraint_to_all_type_parameters_2212","Add `extends` constraint to all type parameters"),Duplicate_identifier_0:$(2300,1,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2301,1,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:$(2302,1,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:$(2303,1,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:$(2304,1,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:$(2305,1,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:$(2306,1,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:$(2307,1,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:$(2308,1,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:$(2309,1,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:$(2310,1,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:$(2311,1,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2312,1,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:$(2313,1,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:$(2314,1,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:$(2315,1,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:$(2316,1,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:$(2317,1,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:$(2318,1,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:$(2319,1,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:$(2320,1,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:$(2321,1,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:$(2322,1,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:$(2323,1,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:$(2324,1,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:$(2325,1,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:$(2326,1,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:$(2327,1,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:$(2328,1,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:$(2329,1,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:$(2330,1,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:$(2331,1,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:$(2332,1,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_a_static_property_initializer:$(2334,1,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:$(2335,1,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:$(2336,1,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:$(2337,1,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:$(2338,1,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:$(2339,1,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:$(2340,1,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:$(2341,1,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:$(2343,1,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:$(2344,1,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:$(2345,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Untyped_function_calls_may_not_accept_type_arguments:$(2347,1,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:$(2348,1,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:$(2349,1,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:$(2350,1,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:$(2351,1,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:$(2352,1,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:$(2353,1,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:$(2354,1,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:$(2355,1,"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:$(2356,1,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:$(2357,1,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:$(2358,1,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:$(2359,1,"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359","The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2362,1,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2363,1,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:$(2364,1,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:$(2365,1,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:$(2366,1,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:$(2367,1,"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367","This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),Type_parameter_name_cannot_be_0:$(2368,1,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:$(2369,1,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:$(2370,1,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:$(2371,1,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:$(2372,1,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:$(2373,1,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:$(2374,1,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2375,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2376,1,"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:$(2377,1,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:$(2378,1,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2379,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),Overload_signatures_must_all_be_exported_or_non_exported:$(2383,1,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:$(2384,1,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:$(2385,1,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:$(2386,1,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:$(2387,1,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:$(2388,1,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:$(2389,1,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:$(2390,1,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:$(2391,1,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:$(2392,1,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:$(2393,1,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:$(2394,1,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:$(2395,1,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:$(2396,1,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:$(2397,1,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:$(2398,1,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:$(2399,1,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:$(2400,1,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2401,1,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:$(2402,1,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:$(2403,1,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:$(2404,1,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:$(2405,1,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:$(2406,1,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:$(2407,1,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:$(2408,1,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:$(2409,1,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:$(2410,1,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:$(2412,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:$(2411,1,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:$(2413,1,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:$(2414,1,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:$(2415,1,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:$(2416,1,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:$(2417,1,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:$(2418,1,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:$(2419,1,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:$(2420,1,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2422,1,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:$(2423,1,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:$(2425,1,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:$(2426,1,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:$(2427,1,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:$(2428,1,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:$(2430,1,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:$(2431,1,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:$(2432,1,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:$(2433,1,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:$(2434,1,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:$(2435,1,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:$(2436,1,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:$(2437,1,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:$(2438,1,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:$(2439,1,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:$(2440,1,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:$(2441,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:$(2442,1,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:$(2443,1,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:$(2444,1,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:$(2445,1,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:$(2446,1,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:$(2447,1,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:$(2448,1,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:$(2449,1,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:$(2450,1,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:$(2451,1,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:$(2452,1,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),Variable_0_is_used_before_being_assigned:$(2454,1,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_alias_0_circularly_references_itself:$(2456,1,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:$(2457,1,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:$(2458,1,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:$(2459,1,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:$(2460,1,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:$(2461,1,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:$(2462,1,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:$(2463,1,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:$(2464,1,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:$(2465,1,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:$(2466,1,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:$(2467,1,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:$(2468,1,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:$(2469,1,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:$(2472,1,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:$(2473,1,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_must_be_constant_expressions:$(2474,1,"const_enum_member_initializers_must_be_constant_expressions_2474","const enum member initializers must be constant expressions."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:$(2475,1,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:$(2476,1,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:$(2477,1,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:$(2478,1,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:$(2480,1,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:$(2481,1,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:$(2483,1,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:$(2484,1,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:$(2487,1,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2488,1,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:$(2489,1,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:$(2490,1,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:$(2491,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:$(2492,1,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:$(2493,1,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:$(2494,1,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:$(2495,1,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:$(2496,1,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496","The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:$(2497,1,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:$(2498,1,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2499,1,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2500,1,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:$(2501,1,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:$(2502,1,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:$(2503,1,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:$(2504,1,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:$(2505,1,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:$(2506,1,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:$(2507,1,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:$(2508,1,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2509,1,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:$(2510,1,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:$(2511,1,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:$(2512,1,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:$(2513,1,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),A_tuple_type_cannot_be_indexed_with_a_negative_value:$(2514,1,"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514","A tuple type cannot be indexed with a negative value."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:$(2515,1,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:$(2516,1,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:$(2517,1,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:$(2518,1,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:$(2519,1,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:$(2520,1,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:$(2522,1,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522","The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:$(2523,1,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:$(2524,1,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:$(2526,1,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:$(2527,1,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:$(2528,1,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:$(2529,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:$(2530,1,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:$(2531,1,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:$(2532,1,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:$(2533,1,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:$(2534,1,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Type_0_cannot_be_used_to_index_type_1:$(2536,1,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:$(2537,1,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:$(2538,1,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:$(2539,1,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:$(2540,1,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),Index_signature_in_type_0_only_permits_reading:$(2542,1,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:$(2543,1,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:$(2544,1,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:$(2545,1,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:$(2547,1,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2548,1,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2549,1,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:$(2550,1,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:$(2551,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:$(2552,1,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:$(2553,1,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:$(2554,1,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:$(2555,1,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:$(2556,1,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:$(2558,1,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:$(2559,1,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:$(2560,1,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:$(2561,1,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:$(2562,1,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:$(2563,1,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:$(2564,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:$(2565,1,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:$(2566,1,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:$(2567,1,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:$(2568,1,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Could_not_find_name_0_Did_you_mean_1:$(2570,1,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:$(2571,1,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),A_rest_element_type_must_be_an_array_type:$(2574,1,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:$(2575,1,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:$(2576,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:$(2577,1,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:$(2578,1,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:$(2580,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:$(2581,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:$(2582,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:$(2583,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:$(2584,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:$(2585,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Cannot_assign_to_0_because_it_is_a_constant:$(2588,1,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:$(2589,1,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:$(2590,1,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:$(2591,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:$(2592,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:$(2593,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:$(2594,1,"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594","This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:$(2595,1,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2596,1,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:$(2597,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2598,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:$(2602,1,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:$(2603,1,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:$(2604,1,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:$(2606,1,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:$(2607,1,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:$(2608,1,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:$(2609,1,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:$(2610,1,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:$(2611,1,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:$(2612,1,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:$(2613,1,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:$(2614,1,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:$(2615,1,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:$(2616,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2617,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:$(2618,1,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:$(2619,1,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:$(2620,1,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:$(2621,1,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:$(2623,1,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:$(2624,1,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:$(2625,1,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:$(2626,1,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:$(2627,1,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:$(2628,1,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:$(2629,1,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:$(2630,1,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:$(2631,1,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:$(2632,1,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:$(2633,1,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:$(2634,1,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:$(2635,1,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:$(2636,1,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:$(2637,1,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:$(2638,1,"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638","Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),React_components_cannot_include_JSX_namespace_names:$(2639,1,"React_components_cannot_include_JSX_namespace_names_2639","React components cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:$(2649,1,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:$(2650,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650","Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:$(2651,1,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:$(2652,1,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:$(2653,1,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:$(2654,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:$(2655,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:$(2656,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656","Non-abstract class expression is missing implementations for the following members of '{0}': {1}."),JSX_expressions_must_have_one_parent_element:$(2657,1,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:$(2658,1,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:$(2659,1,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:$(2660,1,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:$(2661,1,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:$(2662,1,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:$(2663,1,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:$(2664,1,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:$(2665,1,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:$(2666,1,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:$(2667,1,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:$(2668,1,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:$(2669,1,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:$(2670,1,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:$(2671,1,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:$(2672,1,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:$(2673,1,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:$(2674,1,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:$(2675,1,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:$(2676,1,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:$(2677,1,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:$(2678,1,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:$(2679,1,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:$(2680,1,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:$(2681,1,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:$(2683,1,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:$(2684,1,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:$(2685,1,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:$(2686,1,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:$(2687,1,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:$(2688,1,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:$(2689,1,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:$(2690,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:$(2692,1,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:$(2693,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:$(2694,1,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:$(2695,1,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:$(2696,1,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2697,1,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:$(2698,1,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:$(2699,1,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:$(2700,1,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:$(2701,1,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:$(2702,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:$(2703,1,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:$(2704,1,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2705,1,"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705","An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:$(2706,1,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:$(2707,1,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:$(2708,1,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:$(2709,1,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:$(2710,1,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2711,1,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2712,1,"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712","A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:$(2713,1,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:$(2714,1,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:$(2715,1,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:$(2716,1,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:$(2717,1,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:$(2718,1,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:$(2719,1,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:$(2720,1,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:$(2721,1,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:$(2722,1,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:$(2723,1,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:$(2724,1,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:$(2725,1,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:$(2726,1,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:$(2727,1,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:$(2728,3,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:$(2729,1,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:$(2730,1,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:$(2731,1,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:$(2732,1,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:$(2733,1,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:$(2734,1,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:$(2735,1,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:$(2736,1,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:$(2737,1,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:$(2738,3,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:$(2739,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:$(2740,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:$(2741,1,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:$(2742,1,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:$(2743,1,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:$(2744,1,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:$(2745,1,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:$(2746,1,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:$(2747,1,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_0_is_enabled:$(2748,1,"Cannot_access_ambient_const_enums_when_0_is_enabled_2748","Cannot access ambient const enums when '{0}' is enabled."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:$(2749,1,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:$(2750,1,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:$(2751,1,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:$(2752,1,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:$(2753,1,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:$(2754,1,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:$(2755,1,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:$(2756,1,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:$(2757,1,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2758,1,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:$(2759,1,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:$(2760,1,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:$(2761,1,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2762,1,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:$(2763,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:$(2764,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:$(2765,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:$(2766,1,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:$(2767,1,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:$(2768,1,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:$(2769,1,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:$(2770,1,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:$(2771,1,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:$(2772,1,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:$(2773,1,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:$(2774,1,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:$(2775,1,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:$(2776,1,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:$(2777,1,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:$(2778,1,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:$(2779,1,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:$(2780,1,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:$(2781,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:$(2782,3,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:$(2783,1,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:$(2784,1,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:$(2785,1,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:$(2786,1,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:$(2787,1,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:$(2788,1,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:$(2789,1,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:$(2790,1,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:$(2791,1,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:$(2792,1,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:$(2793,1,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:$(2794,1,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:$(2795,1,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:$(2796,1,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:$(2797,1,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:$(2798,1,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:$(2799,1,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:$(2800,1,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:$(2801,1,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:$(2802,1,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:$(2803,1,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:$(2804,1,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Private_accessor_was_defined_without_a_getter:$(2806,1,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:$(2807,1,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:$(2808,1,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:$(2809,1,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:$(2810,1,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),Initializer_for_property_0:$(2811,1,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:$(2812,1,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:$(2813,1,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:$(2814,1,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers:$(2815,1,"arguments_cannot_be_referenced_in_property_initializers_2815","'arguments' cannot be referenced in property initializers."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:$(2816,1,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:$(2817,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:$(2818,1,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:$(2819,1,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:$(2820,1,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2821,1,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2821","Import assertions are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:$(2822,1,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2823,1,"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2823","Import attributes are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Cannot_find_namespace_0_Did_you_mean_1:$(2833,1,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:$(2834,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:$(2835,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2836,1,"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836","Import assertions are not allowed on statements that compile to CommonJS 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:$(2837,1,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:$(2838,1,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:$(2839,1,"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839","This condition will always return '{0}' since JavaScript compares objects by reference, not value."),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:$(2840,1,"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840","An interface cannot extend a primitive type like '{0}'. It can only extend other named object types."),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:$(2842,1,"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842","'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:$(2843,1,"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843","We can only write a type for '{0}' by adding a type for the entire parameter here."),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2844,1,"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844","Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),This_condition_will_always_return_0:$(2845,1,"This_condition_will_always_return_0_2845","This condition will always return '{0}'."),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:$(2846,1,"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846","A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:$(2848,1,"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848","The right-hand side of an 'instanceof' expression must not be an instantiation expression."),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:$(2849,1,"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849","Target signature provides too few arguments. Expected {0} or more, but got {1}."),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:$(2850,1,"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850","The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:$(2851,1,"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851","The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(2852,1,"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852","'await using' statements are only allowed within async functions and at the top levels of modules."),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(2853,1,"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853","'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(2854,1,"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854","Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:$(2855,1,"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855","Class field '{0}' defined by the parent class is not accessible in the child class via super."),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2856,1,"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856","Import attributes are not allowed on statements that compile to CommonJS 'require' calls."),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:$(2857,1,"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857","Import attributes cannot be used with type-only imports or exports."),Import_attribute_values_must_be_string_literal_expressions:$(2858,1,"Import_attribute_values_must_be_string_literal_expressions_2858","Import attribute values must be string literal expressions."),Excessive_complexity_comparing_types_0_and_1:$(2859,1,"Excessive_complexity_comparing_types_0_and_1_2859","Excessive complexity comparing types '{0}' and '{1}'."),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:$(2860,1,"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860","The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:$(2861,1,"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861","An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),Type_0_is_generic_and_can_only_be_indexed_for_reading:$(2862,1,"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862","Type '{0}' is generic and can only be indexed for reading."),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:$(2863,1,"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863","A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:$(2864,1,"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864","A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2865,1,"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865","Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2866,1,"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866","Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:$(2867,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:$(2868,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig."),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:$(2869,1,"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869","Right operand of ?? is unreachable because the left operand is never nullish."),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:$(2870,1,"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870","This binary expression is never nullish. Are you missing parentheses?"),This_expression_is_always_nullish:$(2871,1,"This_expression_is_always_nullish_2871","This expression is always nullish."),This_kind_of_expression_is_always_truthy:$(2872,1,"This_kind_of_expression_is_always_truthy_2872","This kind of expression is always truthy."),This_kind_of_expression_is_always_falsy:$(2873,1,"This_kind_of_expression_is_always_falsy_2873","This kind of expression is always falsy."),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:$(2874,1,"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874","This JSX tag requires '{0}' to be in scope, but it could not be found."),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:$(2875,1,"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875","This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed."),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:$(2876,1,"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to "{0}".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:$(2877,1,"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877","This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path."),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:$(2878,1,"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878","This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files."),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:$(2879,1,"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879","Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),Import_declaration_0_is_using_private_name_1:$(4e3,1,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:$(4002,1,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:$(4004,1,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4006,1,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4008,1,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4010,1,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4012,1,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4014,1,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4016,1,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4019,1,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4020,1,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:$(4021,1,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:$(4022,1,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4023,1,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:$(4024,1,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:$(4025,1,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4026,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4027,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:$(4028,1,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4029,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4030,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:$(4031,1,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4032,1,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:$(4033,1,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4034,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4035,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4036,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4037,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4038,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4039,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4040,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4041,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4042,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4043,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4044,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:$(4045,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4046,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:$(4047,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4048,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:$(4049,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4050,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4051,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:$(4052,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4053,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4054,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:$(4055,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4056,1,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:$(4057,1,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4058,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:$(4059,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:$(4060,1,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4061,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4062,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:$(4063,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4064,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4065,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4066,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4067,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4068,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4069,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4070,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4071,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4072,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4073,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4074,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4075,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4076,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:$(4077,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4078,1,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:$(4081,1,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:$(4082,1,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:$(4083,1,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:$(4084,1,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:$(4085,1,"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085","Extends clause for inferred type '{0}' has or is using private name '{1}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4091,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:$(4092,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:$(4094,1,"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094","Property '{0}' of exported anonymous class type may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4095,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4096,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:$(4097,1,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4098,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4099,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:$(4100,1,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4101,1,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:$(4102,1,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:$(4103,1,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:$(4104,1,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:$(4105,1,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:$(4106,1,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:$(4107,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4108,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:$(4109,1,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:$(4110,1,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:$(4111,1,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:$(4112,1,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:$(4113,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:$(4114,1,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:$(4115,1,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:$(4116,1,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4117,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:$(4118,1,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4119,1,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4120,1,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:$(4121,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:$(4122,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4123,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:$(4124,1,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:$(4125,1,"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125","Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given."),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:$(4126,1,"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126","One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value."),The_current_host_does_not_support_the_0_option:$(5001,1,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:$(5009,1,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5010,1,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:$(5012,1,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Unknown_compiler_option_0:$(5023,1,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:$(5024,1,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:$(5025,1,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:$(5033,1,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:$(5042,1,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:$(5047,1,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:$(5051,1,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:$(5052,1,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:$(5053,1,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:$(5054,1,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:$(5055,1,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:$(5056,1,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:$(5057,1,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:$(5058,1,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:$(5059,1,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:$(5061,1,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:$(5062,1,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:$(5063,1,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:$(5064,1,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5065,1,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:$(5066,1,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:$(5067,1,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:$(5068,1,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:$(5069,1,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:$(5070,1,"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070","Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:$(5071,1,"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071","Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'."),Unknown_build_option_0:$(5072,1,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:$(5073,1,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:$(5074,1,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:$(5075,1,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:$(5076,1,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:$(5077,1,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:$(5078,1,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:$(5079,1,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:$(5080,1,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:$(5081,1,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:$(5082,1,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:$(5083,1,"Cannot_read_file_0_5083","Cannot read file '{0}'."),A_tuple_member_cannot_be_both_optional_and_rest:$(5085,1,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:$(5086,1,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:$(5087,1,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:$(5088,1,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:$(5089,1,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:$(5090,1,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:$(5091,1,"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),The_root_value_of_a_0_file_must_be_an_object:$(5092,1,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:$(5093,1,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:$(5094,1,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:$(5095,1,"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095","Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:$(5096,1,"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096","Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:$(5097,1,"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097","An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:$(5098,1,"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098","Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:$(5101,1,"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101",`Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),Option_0_has_been_removed_Please_remove_it_from_your_configuration:$(5102,1,"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102","Option '{0}' has been removed. Please remove it from your configuration."),Invalid_value_for_ignoreDeprecations:$(5103,1,"Invalid_value_for_ignoreDeprecations_5103","Invalid value for '--ignoreDeprecations'."),Option_0_is_redundant_and_cannot_be_specified_with_option_1:$(5104,1,"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104","Option '{0}' is redundant and cannot be specified with option '{1}'."),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:$(5105,1,"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105","Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),Use_0_instead:$(5106,3,"Use_0_instead_5106","Use '{0}' instead."),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:$(5107,1,"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107",`Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:$(5108,1,"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108","Option '{0}={1}' has been removed. Please remove it from your configuration."),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:$(5109,1,"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109","Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:$(5110,1,"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110","Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:$(6e3,3,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:$(6001,3,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:$(6002,3,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:$(6004,3,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:$(6005,3,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:$(6006,3,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:$(6007,3,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:$(6008,3,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:$(6009,3,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:$(6010,3,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:$(6011,3,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:$(6012,3,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:$(6013,3,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:$(6014,3,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:$(6015,3,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:$(6016,3,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:$(6017,3,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:$(6019,3,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:$(6020,3,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:$(6023,3,"Syntax_Colon_0_6023","Syntax: {0}"),options:$(6024,3,"options_6024","options"),file:$(6025,3,"file_6025","file"),Examples_Colon_0:$(6026,3,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:$(6027,3,"Options_Colon_6027","Options:"),Version_0:$(6029,3,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:$(6030,3,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:$(6031,3,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:$(6032,3,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:$(6034,3,"KIND_6034","KIND"),FILE:$(6035,3,"FILE_6035","FILE"),VERSION:$(6036,3,"VERSION_6036","VERSION"),LOCATION:$(6037,3,"LOCATION_6037","LOCATION"),DIRECTORY:$(6038,3,"DIRECTORY_6038","DIRECTORY"),STRATEGY:$(6039,3,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:$(6040,3,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Errors_Files:$(6041,3,"Errors_Files_6041","Errors Files"),Generates_corresponding_map_file:$(6043,3,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:$(6044,1,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:$(6045,1,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:$(6046,1,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:$(6048,1,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unable_to_open_file_0:$(6050,1,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:$(6051,1,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:$(6052,3,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:$(6053,1,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:$(6054,1,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:$(6055,3,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:$(6056,3,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:$(6058,3,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:$(6059,1,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:$(6060,3,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:$(6061,3,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:$(6064,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:$(6065,3,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:$(6066,3,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:$(6070,3,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:$(6071,3,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:$(6072,3,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:$(6073,3,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:$(6074,3,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:$(6075,3,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:$(6076,3,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:$(6077,3,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:$(6078,3,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:$(6079,3,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:$(6080,3,"Specify_JSX_code_generation_6080","Specify JSX code generation."),Only_amd_and_system_modules_are_supported_alongside_0:$(6082,1,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:$(6083,3,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:$(6084,3,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:$(6085,3,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:$(6086,3,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:$(6087,3,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:$(6088,3,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:$(6089,3,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:$(6090,3,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:$(6091,3,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:$(6092,3,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:$(6093,3,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:$(6094,3,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:$(6095,3,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095","Loading module as file / folder, candidate module location '{0}', target file types: {1}."),File_0_does_not_exist:$(6096,3,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exists_use_it_as_a_name_resolution_result:$(6097,3,"File_0_exists_use_it_as_a_name_resolution_result_6097","File '{0}' exists - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:$(6098,3,"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098","Loading module '{0}' from 'node_modules' folder, target file types: {1}."),Found_package_json_at_0:$(6099,3,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:$(6100,3,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:$(6101,3,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:$(6102,3,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:$(6104,3,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:$(6105,3,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:$(6106,3,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:$(6107,3,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:$(6108,3,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:$(6109,3,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:$(6110,3,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:$(6111,3,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:$(6112,3,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:$(6113,3,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:$(6114,1,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:$(6115,3,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:$(6116,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:$(6119,3,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:$(6120,3,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:$(6121,3,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:$(6122,3,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:$(6123,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:$(6124,3,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:$(6125,3,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:$(6126,3,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:$(6127,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:$(6128,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:$(6130,3,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:$(6131,1,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:$(6132,3,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:$(6133,1,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:$(6134,3,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:$(6135,3,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:$(6136,3,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:$(6137,1,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:$(6138,1,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:$(6139,3,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:$(6140,1,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:$(6141,3,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:$(6142,1,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:$(6144,3,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:$(6146,3,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:$(6147,3,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:$(6148,3,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:$(6149,3,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:$(6150,3,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:$(6151,3,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:$(6152,3,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:$(6153,3,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:$(6154,3,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:$(6155,3,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:$(6156,3,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:$(6157,3,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:$(6158,3,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:$(6159,3,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:$(6160,3,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:$(6161,3,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:$(6162,3,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:$(6163,3,"The_character_set_of_the_input_files_6163","The character set of the input files."),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:$(6164,3,"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164","Skipping module '{0}' that looks like an absolute URI, target file types: {1}."),Do_not_truncate_error_messages:$(6165,3,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:$(6166,3,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:$(6167,3,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:$(6168,3,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:$(6169,3,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:$(6170,3,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:$(6171,3,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:$(6179,3,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'."),Enable_all_strict_type_checking_options:$(6180,3,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),Scoped_package_detected_looking_in_0:$(6182,3,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6183,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6184,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:$(6186,3,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:$(6187,3,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:$(6188,1,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:$(6189,1,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:$(6191,3,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:$(6192,1,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:$(6193,3,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:$(6194,3,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:$(6195,3,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:$(6196,1,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:$(6197,3,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:$(6198,1,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:$(6199,1,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:$(6200,1,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:$(6201,3,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:$(6202,1,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:$(6203,3,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:$(6204,3,"and_here_6204","and here."),All_type_parameters_are_unused:$(6205,1,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:$(6206,3,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:$(6207,3,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:$(6208,3,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:$(6209,3,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:$(6210,3,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:$(6211,3,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:$(6212,3,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:$(6213,3,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:$(6214,3,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:$(6215,3,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:$(6216,3,"Found_1_error_6216","Found 1 error."),Found_0_errors:$(6217,3,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:$(6218,3,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:$(6219,3,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:$(6220,3,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:$(6221,3,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:$(6222,3,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:$(6223,3,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:$(6224,3,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:$(6225,3,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:$(6226,3,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:$(6227,3,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:$(6229,1,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:$(6230,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:$(6231,1,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:$(6232,1,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:$(6233,1,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:$(6234,1,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:$(6235,3,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:$(6236,1,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:$(6237,3,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:$(6238,1,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:$(6239,3,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:$(6240,3,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:$(6241,3,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:$(6242,3,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:$(6243,3,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:$(6244,3,"Modules_6244","Modules"),File_Management:$(6245,3,"File_Management_6245","File Management"),Emit:$(6246,3,"Emit_6246","Emit"),JavaScript_Support:$(6247,3,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:$(6248,3,"Type_Checking_6248","Type Checking"),Editor_Support:$(6249,3,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:$(6250,3,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:$(6251,3,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:$(6252,3,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:$(6253,3,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:$(6254,3,"Language_and_Environment_6254","Language and Environment"),Projects:$(6255,3,"Projects_6255","Projects"),Output_Formatting:$(6256,3,"Output_Formatting_6256","Output Formatting"),Completeness:$(6257,3,"Completeness_6257","Completeness"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:$(6258,1,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_0:$(6259,3,"Found_1_error_in_0_6259","Found 1 error in {0}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:$(6260,3,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:$(6261,3,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),File_name_0_has_a_1_extension_looking_up_2_instead:$(6262,3,"File_name_0_has_a_1_extension_looking_up_2_instead_6262","File name '{0}' has a '{1}' extension - looking up '{2}' instead."),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:$(6263,1,"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263","Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:$(6264,3,"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264","Enable importing files with any extension, provided a declaration file is present."),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:$(6265,3,"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265","Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."),Option_0_can_only_be_specified_on_command_line:$(6266,1,"Option_0_can_only_be_specified_on_command_line_6266","Option '{0}' can only be specified on command line."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:$(6270,3,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6271,3,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:$(6272,3,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:$(6273,3,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:$(6274,3,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:$(6275,3,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6276,3,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:$(6277,3,"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277","Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:$(6278,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278",`There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:$(6279,3,"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279","Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:$(6280,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280","There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),package_json_has_a_peerDependencies_field:$(6281,3,"package_json_has_a_peerDependencies_field_6281","'package.json' has a 'peerDependencies' field."),Found_peerDependency_0_with_1_version:$(6282,3,"Found_peerDependency_0_with_1_version_6282","Found peerDependency '{0}' with '{1}' version."),Failed_to_find_peerDependency_0:$(6283,3,"Failed_to_find_peerDependency_0_6283","Failed to find peerDependency '{0}'."),Enable_project_compilation:$(6302,3,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:$(6304,1,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:$(6305,1,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:$(6306,1,"Referenced_project_0_must_have_setting_composite_Colon_true_6306",`Referenced project '{0}' must have setting "composite": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:$(6307,1,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Referenced_project_0_may_not_disable_emit:$(6310,1,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:$(6350,3,"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350","Project '{0}' is out of date because output '{1}' is older than input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:$(6351,3,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:$(6352,3,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:$(6353,3,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:$(6354,3,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:$(6355,3,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:$(6356,3,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:$(6357,3,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:$(6358,3,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:$(6359,3,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),Project_0_is_up_to_date:$(6361,3,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:$(6362,3,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:$(6363,3,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:$(6364,3,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:$(6365,3,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects."),Show_what_would_be_built_or_deleted_if_specified_with_clean:$(6367,3,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:$(6369,1,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:$(6370,1,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:$(6371,3,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:$(6374,3,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:$(6377,1,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Composite_projects_may_not_disable_incremental_compilation:$(6379,1,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:$(6380,3,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:$(6381,3,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:$(6382,3,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:$(6383,3,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6384,3,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:$(6385,2,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:$(6386,3,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:$(6387,2,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:$(6388,3,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:$(6389,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6390,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6391,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:$(6392,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6393,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6394,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6395,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6396,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6397,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6398,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:$(6399,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399","Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:$(6400,3,"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400","Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:$(6401,3,"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401","Project '{0}' is out of date because there was error reading file '{1}'"),Resolving_in_0_mode_with_conditions_1:$(6402,3,"Resolving_in_0_mode_with_conditions_1_6402","Resolving in {0} mode with conditions {1}."),Matched_0_condition_1:$(6403,3,"Matched_0_condition_1_6403","Matched '{0}' condition '{1}'."),Using_0_subpath_1_with_target_2:$(6404,3,"Using_0_subpath_1_with_target_2_6404","Using '{0}' subpath '{1}' with target '{2}'."),Saw_non_matching_condition_0:$(6405,3,"Saw_non_matching_condition_0_6405","Saw non-matching condition '{0}'."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:$(6406,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406","Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:$(6407,3,"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407","Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),Use_the_package_json_exports_field_when_resolving_package_imports:$(6408,3,"Use_the_package_json_exports_field_when_resolving_package_imports_6408","Use the package.json 'exports' field when resolving package imports."),Use_the_package_json_imports_field_when_resolving_imports:$(6409,3,"Use_the_package_json_imports_field_when_resolving_imports_6409","Use the package.json 'imports' field when resolving imports."),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:$(6410,3,"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410","Conditions to set in addition to the resolver-specific defaults when resolving imports."),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:$(6411,3,"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411","`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:$(6412,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412","Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),Entering_conditional_exports:$(6413,3,"Entering_conditional_exports_6413","Entering conditional exports."),Resolved_under_condition_0:$(6414,3,"Resolved_under_condition_0_6414","Resolved under condition '{0}'."),Failed_to_resolve_under_condition_0:$(6415,3,"Failed_to_resolve_under_condition_0_6415","Failed to resolve under condition '{0}'."),Exiting_conditional_exports:$(6416,3,"Exiting_conditional_exports_6416","Exiting conditional exports."),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:$(6417,3,"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417","Searching all ancestor node_modules directories for preferred extensions: {0}."),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:$(6418,3,"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418","Searching all ancestor node_modules directories for fallback extensions: {0}."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:$(6419,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419","Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors."),Project_0_is_out_of_date_because_1:$(6420,3,"Project_0_is_out_of_date_because_1_6420","Project '{0}' is out of date because {1}."),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:$(6421,3,"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421","Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:$(6500,3,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:$(6501,3,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:$(6502,3,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:$(6503,3,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:$(6504,1,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:$(6505,3,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:$(6506,3,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:$(6600,3,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:$(6601,3,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:$(6602,3,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:$(6603,3,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:$(6604,3,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:$(6605,3,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6606,3,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:$(6607,3,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:$(6608,3,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:$(6609,3,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:$(6611,3,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:$(6612,3,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:$(6613,3,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:$(6614,3,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:$(6615,3,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:$(6616,3,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:$(6617,3,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:$(6618,3,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:$(6619,3,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:$(6620,3,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects."),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:$(6621,3,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:$(6622,3,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Only_output_d_ts_files_and_not_JavaScript_files:$(6623,3,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:$(6624,3,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:$(6625,3,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:$(6626,3,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),Filters_results_from_the_include_option:$(6627,3,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:$(6628,3,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:$(6629,3,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_legacy_experimental_decorators:$(6630,3,"Enable_experimental_support_for_legacy_experimental_decorators_6630","Enable experimental support for legacy experimental decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:$(6631,3,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:$(6632,3,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:$(6633,3,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:$(6634,3,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:$(6635,3,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:$(6636,3,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date."),Ensure_that_casing_is_correct_in_imports:$(6637,3,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:$(6638,3,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:$(6639,3,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Skip_building_downstream_projects_on_error_in_upstream_project:$(6640,3,"Skip_building_downstream_projects_on_error_in_upstream_project_6640","Skip building downstream projects on error in upstream project."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:$(6641,3,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:$(6642,3,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:$(6643,3,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:$(6644,3,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:$(6645,3,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:$(6646,3,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:$(6647,3,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:$(6648,3,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:$(6649,3,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:$(6650,3,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:$(6651,3,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:$(6652,3,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:$(6653,3,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:$(6654,3,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:$(6655,3,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:$(6656,3,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),Specify_what_module_code_is_generated:$(6657,3,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:$(6658,3,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:$(6659,3,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:$(6660,3,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:$(6661,3,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like '__extends' in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:$(6662,3,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:$(6663,3,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:$(6664,3,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:$(6665,3,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied 'any' type."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:$(6666,3,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:$(6667,3,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:$(6668,3,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when 'this' is given the type 'any'."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:$(6669,3,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:$(6670,3,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:$(6671,3,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type."),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:$(6672,3,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:$(6673,3,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:$(6674,3,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add 'undefined' to a type when accessed using an index."),Enable_error_reporting_when_local_variables_aren_t_read:$(6675,3,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:$(6676,3,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read."),Deprecated_setting_Use_outFile_instead:$(6677,3,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use 'outFile' instead."),Specify_an_output_folder_for_all_emitted_files:$(6678,3,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:$(6679,3,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:$(6680,3,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:$(6681,3,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:$(6682,3,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing 'const enum' declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:$(6683,3,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:$(6684,3,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode."),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:$(6685,3,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read."),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:$(6686,3,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:$(6687,3,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:$(6688,3,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:$(6689,3,"Enable_importing_json_files_6689","Enable importing .json files."),Specify_the_root_folder_within_your_source_files:$(6690,3,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:$(6691,3,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:$(6692,3,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:$(6693,3,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:$(6694,3,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:$(6695,3,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:$(6697,3,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:$(6698,3,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:$(6699,3,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account 'null' and 'undefined'."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:$(6700,3,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:$(6701,3,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have '@internal' in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:$(6702,3,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:$(6703,3,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:$(6704,3,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:$(6705,3,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:$(6706,3,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the 'moduleResolution' process."),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:$(6707,3,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),Specify_options_for_automatic_acquisition_of_declaration_files:$(6709,3,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:$(6710,3,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like './node_modules/@types'."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:$(6711,3,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:$(6712,3,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:$(6713,3,"Enable_verbose_logging_6713","Enable verbose logging."),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:$(6714,3,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:$(6715,3,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:$(6717,3,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:$(6718,3,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types."),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:$(6719,3,"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719","Require sufficient annotation on exports so other tools can trivially generate declaration files."),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:$(6720,3,"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720","Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'."),Default_catch_clause_variables_as_unknown_instead_of_any:$(6803,3,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default catch clause variables as 'unknown' instead of 'any'."),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:$(6804,3,"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804","Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:$(6805,3,"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805","Disable full type checking (only critical parse and emit errors will be reported)."),Check_side_effect_imports:$(6806,3,"Check_side_effect_imports_6806","Check side effect imports."),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:$(6807,1,"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807","This operation can be simplified. This shift is identical to `{0} {1} {2}`."),one_of_Colon:$(6900,3,"one_of_Colon_6900","one of:"),one_or_more_Colon:$(6901,3,"one_or_more_Colon_6901","one or more:"),type_Colon:$(6902,3,"type_Colon_6902","type:"),default_Colon:$(6903,3,"default_Colon_6903","default:"),module_system_or_esModuleInterop:$(6904,3,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:$(6905,3,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:$(6906,3,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:$(6907,3,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:$(6908,3,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:$(6909,3,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:$(69010,3,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:$(6911,3,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:$(6912,3,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:$(6913,3,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:$(6914,3,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:$(6915,3,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:$(6916,3,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:$(6917,3,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:$(6918,3,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:$(6919,3,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:$(6920,3,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:$(6921,3,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:$(6922,3,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:$(6923,3,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:$(6924,3,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:$(6925,3,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:$(6926,3,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:$(6927,3,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:$(6928,3,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:$(6929,3,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),true_for_ES2022_and_above_including_ESNext:$(6930,3,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:$(6931,1,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),Variable_0_implicitly_has_an_1_type:$(7005,1,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:$(7006,1,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:$(7008,1,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:$(7009,1,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:$(7010,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7011,1,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:$(7012,1,"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012","This overload implicitly returns the type '{0}' because it lacks a return type annotation."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7013,1,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7014,1,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:$(7015,1,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:$(7016,1,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:$(7017,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:$(7018,1,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:$(7019,1,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7020,1,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:$(7022,1,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7023,1,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7024,1,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:$(7025,1,"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025","Generator implicitly has yield type '{0}'. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:$(7026,1,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:$(7027,1,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:$(7028,1,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:$(7029,1,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:$(7030,1,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:$(7031,1,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:$(7032,1,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:$(7033,1,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:$(7034,1,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:$(7035,1,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:$(7036,1,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:$(7037,3,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:$(7038,3,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:$(7039,1,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:$(7040,1,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:$(7041,1,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:$(7042,1,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7043,2,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7044,2,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7045,2,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:$(7046,2,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:$(7047,2,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:$(7048,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:$(7049,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:$(7050,2,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:$(7051,1,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:$(7052,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:$(7053,1,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:$(7054,1,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:$(7055,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:$(7056,1,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:$(7057,1,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:$(7058,1,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:$(7059,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:$(7060,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:$(7061,1,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),You_cannot_rename_this_element:$(8e3,1,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:$(8001,1,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:$(8002,1,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:$(8003,1,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:$(8004,1,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:$(8005,1,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:$(8006,1,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:$(8008,1,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:$(8009,1,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:$(8010,1,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:$(8011,1,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:$(8012,1,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:$(8013,1,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:$(8016,1,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Signature_declarations_can_only_be_used_in_TypeScript_files:$(8017,1,"Signature_declarations_can_only_be_used_in_TypeScript_files_8017","Signature declarations can only be used in TypeScript files."),Report_errors_in_js_files:$(8019,3,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:$(8020,1,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:$(8021,1,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:$(8022,1,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:$(8023,1,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:$(8024,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:$(8025,1,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:$(8026,1,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:$(8027,1,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:$(8028,1,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:$(8029,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:$(8030,1,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:$(8031,1,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:$(8032,1,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:$(8033,1,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:$(8034,1,"The_tag_was_first_specified_here_8034","The tag was first specified here."),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:$(8035,1,"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035","You cannot rename elements that are defined in a 'node_modules' folder."),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:$(8036,1,"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036","You cannot rename elements that are defined in another 'node_modules' folder."),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:$(8037,1,"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037","Type satisfaction expressions can only be used in TypeScript files."),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:$(8038,1,"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038","Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:$(8039,1,"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039","A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:$(9005,1,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:$(9006,1,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9007,1,"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007","Function must have an explicit return type annotation with --isolatedDeclarations."),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9008,1,"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008","Method must have an explicit return type annotation with --isolatedDeclarations."),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9009,1,"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009","At least one accessor must have an explicit type annotation with --isolatedDeclarations."),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9010,1,"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010","Variable must have an explicit type annotation with --isolatedDeclarations."),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9011,1,"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011","Parameter must have an explicit type annotation with --isolatedDeclarations."),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9012,1,"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012","Property must have an explicit type annotation with --isolatedDeclarations."),Expression_type_can_t_be_inferred_with_isolatedDeclarations:$(9013,1,"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013","Expression type can't be inferred with --isolatedDeclarations."),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:$(9014,1,"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014","Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:$(9015,1,"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015","Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:$(9016,1,"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016","Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:$(9017,1,"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017","Only const arrays can be inferred with --isolatedDeclarations."),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:$(9018,1,"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018","Arrays with spread elements can't inferred with --isolatedDeclarations."),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:$(9019,1,"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019","Binding elements can't be exported directly with --isolatedDeclarations."),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:$(9020,1,"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020","Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:$(9021,1,"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021","Extends clause can't contain an expression with --isolatedDeclarations."),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:$(9022,1,"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022","Inference from class expressions is not supported with --isolatedDeclarations."),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:$(9023,1,"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023","Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:$(9025,1,"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025","Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations."),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:$(9026,1,"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026","Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),Add_a_type_annotation_to_the_variable_0:$(9027,1,"Add_a_type_annotation_to_the_variable_0_9027","Add a type annotation to the variable {0}."),Add_a_type_annotation_to_the_parameter_0:$(9028,1,"Add_a_type_annotation_to_the_parameter_0_9028","Add a type annotation to the parameter {0}."),Add_a_type_annotation_to_the_property_0:$(9029,1,"Add_a_type_annotation_to_the_property_0_9029","Add a type annotation to the property {0}."),Add_a_return_type_to_the_function_expression:$(9030,1,"Add_a_return_type_to_the_function_expression_9030","Add a return type to the function expression."),Add_a_return_type_to_the_function_declaration:$(9031,1,"Add_a_return_type_to_the_function_declaration_9031","Add a return type to the function declaration."),Add_a_return_type_to_the_get_accessor_declaration:$(9032,1,"Add_a_return_type_to_the_get_accessor_declaration_9032","Add a return type to the get accessor declaration."),Add_a_type_to_parameter_of_the_set_accessor_declaration:$(9033,1,"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033","Add a type to parameter of the set accessor declaration."),Add_a_return_type_to_the_method:$(9034,1,"Add_a_return_type_to_the_method_9034","Add a return type to the method"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:$(9035,1,"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035","Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:$(9036,1,"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036","Move the expression in default export to a variable and add a type annotation to it."),Default_exports_can_t_be_inferred_with_isolatedDeclarations:$(9037,1,"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037","Default exports can't be inferred with --isolatedDeclarations."),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:$(9038,1,"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038","Computed property names on class or object literals cannot be inferred with --isolatedDeclarations."),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:$(9039,1,"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039","Type containing private name '{0}' can't be used with --isolatedDeclarations."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:$(17e3,1,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:$(17001,1,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:$(17002,1,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:$(17004,1,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:$(17005,1,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17006,1,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17007,1,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:$(17008,1,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:$(17009,1,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:$(17010,1,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:$(17011,1,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:$(17012,1,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:$(17013,1,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:$(17014,1,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:$(17015,1,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:$(17016,1,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:$(17017,1,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:$(17018,1,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17019,1,"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019","'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17020,1,"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020","'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),Unicode_escape_sequence_cannot_appear_here:$(17021,1,"Unicode_escape_sequence_cannot_appear_here_17021","Unicode escape sequence cannot appear here."),Circularity_detected_while_resolving_configuration_Colon_0:$(18e3,1,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),The_files_list_in_config_file_0_is_empty:$(18002,1,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:$(18003,1,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:$(80001,2,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES module."),This_constructor_function_may_be_converted_to_a_class_declaration:$(80002,2,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:$(80003,2,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:$(80004,2,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:$(80005,2,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:$(80006,2,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:$(80007,2,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:$(80008,2,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),JSDoc_typedef_may_be_converted_to_TypeScript_type:$(80009,2,"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009","JSDoc typedef may be converted to TypeScript type."),JSDoc_typedefs_may_be_converted_to_TypeScript_types:$(80010,2,"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010","JSDoc typedefs may be converted to TypeScript types."),Add_missing_super_call:$(90001,3,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:$(90002,3,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:$(90003,3,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:$(90004,3,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:$(90005,3,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:$(90006,3,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:$(90007,3,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:$(90008,3,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:$(90010,3,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:$(90011,3,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:$(90012,3,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_1:$(90013,3,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:$(90014,3,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Declare_property_0:$(90016,3,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:$(90017,3,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:$(90018,3,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:$(90019,3,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:$(90020,3,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:$(90021,3,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:$(90022,3,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:$(90023,3,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:$(90024,3,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:$(90025,3,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:$(90026,3,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:$(90027,3,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:$(90028,3,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:$(90029,3,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:$(90030,3,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:$(90031,3,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Add_parameter_name:$(90034,3,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:$(90035,3,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:$(90036,3,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:$(90037,3,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:$(90038,3,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:$(90039,3,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:$(90041,3,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:$(90053,3,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Includes_imports_of_types_referenced_by_0:$(90054,3,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:$(90055,3,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:$(90056,3,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:$(90057,3,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:$(90058,3,"Update_import_from_0_90058",'Update import from "{0}"'),Export_0_from_module_1:$(90059,3,"Export_0_from_module_1_90059","Export '{0}' from module '{1}'"),Export_all_referenced_locals:$(90060,3,"Export_all_referenced_locals_90060","Export all referenced locals"),Update_modifiers_of_0:$(90061,3,"Update_modifiers_of_0_90061","Update modifiers of '{0}'"),Add_annotation_of_type_0:$(90062,3,"Add_annotation_of_type_0_90062","Add annotation of type '{0}'"),Add_return_type_0:$(90063,3,"Add_return_type_0_90063","Add return type '{0}'"),Extract_base_class_to_variable:$(90064,3,"Extract_base_class_to_variable_90064","Extract base class to variable"),Extract_default_export_to_variable:$(90065,3,"Extract_default_export_to_variable_90065","Extract default export to variable"),Extract_binding_expressions_to_variable:$(90066,3,"Extract_binding_expressions_to_variable_90066","Extract binding expressions to variable"),Add_all_missing_type_annotations:$(90067,3,"Add_all_missing_type_annotations_90067","Add all missing type annotations"),Add_satisfies_and_an_inline_type_assertion_with_0:$(90068,3,"Add_satisfies_and_an_inline_type_assertion_with_0_90068","Add satisfies and an inline type assertion with '{0}'"),Extract_to_variable_and_replace_with_0_as_typeof_0:$(90069,3,"Extract_to_variable_and_replace_with_0_as_typeof_0_90069","Extract to variable and replace with '{0} as typeof {0}'"),Mark_array_literal_as_const:$(90070,3,"Mark_array_literal_as_const_90070","Mark array literal as const"),Annotate_types_of_properties_expando_function_in_a_namespace:$(90071,3,"Annotate_types_of_properties_expando_function_in_a_namespace_90071","Annotate types of properties expando function in a namespace"),Convert_function_to_an_ES2015_class:$(95001,3,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_0_to_1_in_0:$(95003,3,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:$(95004,3,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:$(95005,3,"Extract_function_95005","Extract function"),Extract_constant:$(95006,3,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:$(95007,3,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:$(95008,3,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:$(95009,3,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Infer_type_of_0_from_usage:$(95011,3,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:$(95012,3,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:$(95013,3,"Convert_to_default_import_95013","Convert to default import"),Install_0:$(95014,3,"Install_0_95014","Install '{0}'"),Replace_import_with_0:$(95015,3,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:$(95016,3,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES_module:$(95017,3,"Convert_to_ES_module_95017","Convert to ES module"),Add_undefined_type_to_property_0:$(95018,3,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:$(95019,3,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:$(95020,3,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:$(95021,3,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:$(95022,3,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:$(95023,3,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:$(95024,3,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:$(95025,3,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:$(95026,3,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:$(95027,3,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:$(95028,3,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:$(95029,3,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:$(95030,3,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:$(95031,3,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:$(95032,3,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:$(95033,3,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:$(95034,3,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:$(95035,3,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:$(95036,3,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:$(95037,3,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:$(95038,3,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:$(95039,3,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:$(95040,3,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:$(95041,3,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:$(95042,3,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:$(95043,3,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:$(95044,3,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:$(95045,3,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:$(95046,3,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:$(95047,3,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:$(95048,3,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:$(95049,3,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:$(95050,3,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:$(95051,3,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:$(95052,3,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:$(95053,3,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:$(95054,3,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:$(95055,3,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:$(95056,3,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:$(95057,3,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:$(95058,3,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:$(95059,3,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:$(95060,3,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:$(95061,3,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:$(95062,3,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:$(95063,3,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:$(95064,3,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:$(95065,3,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:$(95066,3,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:$(95067,3,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:$(95068,3,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:$(95069,3,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:$(95070,3,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:$(95071,3,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:$(95072,3,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:$(95073,3,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:$(95074,3,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:$(95075,3,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:$(95077,3,"Extract_type_95077","Extract type"),Extract_to_type_alias:$(95078,3,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:$(95079,3,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:$(95080,3,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:$(95081,3,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:$(95082,3,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:$(95083,3,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:$(95084,3,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:$(95085,3,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:$(95086,3,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:$(95087,3,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:$(95088,3,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:$(95089,3,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:$(95090,3,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:$(95091,3,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:$(95092,3,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:$(95093,3,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:$(95094,3,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:$(95095,3,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:$(95096,3,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:$(95097,3,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:$(95098,3,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:$(95099,3,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:$(95100,3,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:$(95101,3,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Convert_all_const_to_let:$(95102,3,"Convert_all_const_to_let_95102","Convert all 'const' to 'let'"),Convert_function_expression_0_to_arrow_function:$(95105,3,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:$(95106,3,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:$(95107,3,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:$(95108,3,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:$(95109,3,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:$(95110,3,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig to read more about this file"),Add_a_return_statement:$(95111,3,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:$(95112,3,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:$(95113,3,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:$(95114,3,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:$(95115,3,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:$(95116,3,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:$(95117,3,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:$(95118,3,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:$(95119,3,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:$(95120,3,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:$(95121,3,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:$(95122,3,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:$(95123,3,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:$(95124,3,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:$(95125,3,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:$(95126,3,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:$(95127,3,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:$(95128,3,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:$(95129,3,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:$(95130,3,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:$(95131,3,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:$(95132,3,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:$(95133,3,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:$(95134,3,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:$(95135,3,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:$(95136,3,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:$(95137,3,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:$(95138,3,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:$(95139,3,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:$(95140,3,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:$(95141,3,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:$(95142,3,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:$(95143,3,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:$(95144,3,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:$(95145,3,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:$(95146,3,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:$(95147,3,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:$(95148,3,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:$(95149,3,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:$(95150,3,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:$(95151,3,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:$(95152,3,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:$(95153,3,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenations_and_string_literals:$(95154,3,"Can_only_convert_string_concatenations_and_string_literals_95154","Can only convert string concatenations and string literals"),Selection_is_not_a_valid_statement_or_statements:$(95155,3,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:$(95156,3,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:$(95157,3,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:$(95158,3,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:$(95159,3,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:$(95160,3,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:$(95161,3,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:$(95162,3,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:$(95163,3,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:$(95164,3,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:$(95165,3,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:$(95166,3,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:$(95167,3,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:$(95168,3,"Add_all_missing_attributes_95168","Add all missing attributes"),Add_undefined_to_optional_property_type:$(95169,3,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:$(95170,3,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:$(95171,3,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:$(95172,3,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:$(95173,3,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),Use_0:$(95174,3,"Use_0_95174","Use `{0}`."),Use_Number_isNaN_in_all_conditions:$(95175,3,"Use_Number_isNaN_in_all_conditions_95175","Use `Number.isNaN` in all conditions."),Convert_typedef_to_TypeScript_type:$(95176,3,"Convert_typedef_to_TypeScript_type_95176","Convert typedef to TypeScript type."),Convert_all_typedef_to_TypeScript_types:$(95177,3,"Convert_all_typedef_to_TypeScript_types_95177","Convert all typedef to TypeScript types."),Move_to_file:$(95178,3,"Move_to_file_95178","Move to file"),Cannot_move_to_file_selected_file_is_invalid:$(95179,3,"Cannot_move_to_file_selected_file_is_invalid_95179","Cannot move to file, selected file is invalid"),Use_import_type:$(95180,3,"Use_import_type_95180","Use 'import type'"),Use_type_0:$(95181,3,"Use_type_0_95181","Use 'type {0}'"),Fix_all_with_type_only_imports:$(95182,3,"Fix_all_with_type_only_imports_95182","Fix all with type-only imports"),Cannot_move_statements_to_the_selected_file:$(95183,3,"Cannot_move_statements_to_the_selected_file_95183","Cannot move statements to the selected file"),Inline_variable:$(95184,3,"Inline_variable_95184","Inline variable"),Could_not_find_variable_to_inline:$(95185,3,"Could_not_find_variable_to_inline_95185","Could not find variable to inline."),Variables_with_multiple_declarations_cannot_be_inlined:$(95186,3,"Variables_with_multiple_declarations_cannot_be_inlined_95186","Variables with multiple declarations cannot be inlined."),Add_missing_comma_for_object_member_completion_0:$(95187,3,"Add_missing_comma_for_object_member_completion_0_95187","Add missing comma for object member completion '{0}'."),Add_missing_parameter_to_0:$(95188,3,"Add_missing_parameter_to_0_95188","Add missing parameter to '{0}'"),Add_missing_parameters_to_0:$(95189,3,"Add_missing_parameters_to_0_95189","Add missing parameters to '{0}'"),Add_all_missing_parameters:$(95190,3,"Add_all_missing_parameters_95190","Add all missing parameters"),Add_optional_parameter_to_0:$(95191,3,"Add_optional_parameter_to_0_95191","Add optional parameter to '{0}'"),Add_optional_parameters_to_0:$(95192,3,"Add_optional_parameters_to_0_95192","Add optional parameters to '{0}'"),Add_all_optional_parameters:$(95193,3,"Add_all_optional_parameters_95193","Add all optional parameters"),Wrap_in_parentheses:$(95194,3,"Wrap_in_parentheses_95194","Wrap in parentheses"),Wrap_all_invalid_decorator_expressions_in_parentheses:$(95195,3,"Wrap_all_invalid_decorator_expressions_in_parentheses_95195","Wrap all invalid decorator expressions in parentheses"),Add_resolution_mode_import_attribute:$(95196,3,"Add_resolution_mode_import_attribute_95196","Add 'resolution-mode' import attribute"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:$(95197,3,"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197","Add 'resolution-mode' import attribute to all type-only imports that need it"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:$(18004,1,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:$(18006,1,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:$(18007,1,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:$(18009,1,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:$(18010,1,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:$(18011,1,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:$(18012,1,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:$(18013,1,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:$(18014,1,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:$(18015,1,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:$(18016,1,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:$(18017,1,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:$(18018,1,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:$(18019,1,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:$(18024,1,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:$(18026,1,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:$(18027,1,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18028,1,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:$(18029,1,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:$(18030,1,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:$(18031,1,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:$(18032,1,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:$(18033,1,"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033","Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:$(18034,3,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:$(18035,1,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:$(18036,1,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),await_expression_cannot_be_used_inside_a_class_static_block:$(18037,1,"await_expression_cannot_be_used_inside_a_class_static_block_18037","'await' expression cannot be used inside a class static block."),for_await_loops_cannot_be_used_inside_a_class_static_block:$(18038,1,"for_await_loops_cannot_be_used_inside_a_class_static_block_18038","'for await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:$(18039,1,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:$(18041,1,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block."),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:$(18042,1,"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042","'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),Types_cannot_appear_in_export_declarations_in_JavaScript_files:$(18043,1,"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043","Types cannot appear in export declarations in JavaScript files."),_0_is_automatically_exported_here:$(18044,3,"_0_is_automatically_exported_here_18044","'{0}' is automatically exported here."),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18045,1,"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045","Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),_0_is_of_type_unknown:$(18046,1,"_0_is_of_type_unknown_18046","'{0}' is of type 'unknown'."),_0_is_possibly_null:$(18047,1,"_0_is_possibly_null_18047","'{0}' is possibly 'null'."),_0_is_possibly_undefined:$(18048,1,"_0_is_possibly_undefined_18048","'{0}' is possibly 'undefined'."),_0_is_possibly_null_or_undefined:$(18049,1,"_0_is_possibly_null_or_undefined_18049","'{0}' is possibly 'null' or 'undefined'."),The_value_0_cannot_be_used_here:$(18050,1,"The_value_0_cannot_be_used_here_18050","The value '{0}' cannot be used here."),Compiler_option_0_cannot_be_given_an_empty_string:$(18051,1,"Compiler_option_0_cannot_be_given_an_empty_string_18051","Compiler option '{0}' cannot be given an empty string."),Its_type_0_is_not_a_valid_JSX_element_type:$(18053,1,"Its_type_0_is_not_a_valid_JSX_element_type_18053","Its type '{0}' is not a valid JSX element type."),await_using_statements_cannot_be_used_inside_a_class_static_block:$(18054,1,"await_using_statements_cannot_be_used_inside_a_class_static_block_18054","'await using' statements cannot be used inside a class static block."),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:$(18055,1,"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055","'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled."),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:$(18056,1,"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056","Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled."),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:$(18057,1,"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057","String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.")};function H1(e){return e>=80}function S7a(e){return e===32||H1(e)}var LNr={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},v7a=new Map(Object.entries(LNr)),gvi=new Map(Object.entries({...LNr,"{":19,"}":20,"(":21,")":22,"[":23,"]":24,".":25,"...":26,";":27,",":28,"<":30,">":32,"<=":33,">=":34,"==":35,"!=":36,"===":37,"!==":38,"=>":39,"+":40,"-":41,"**":43,"*":42,"/":44,"%":45,"++":46,"--":47,"<<":48,">":49,">>>":50,"&":51,"|":52,"^":53,"!":54,"~":55,"&&":56,"||":57,"?":58,"??":61,"?.":29,":":59,"=":64,"+=":65,"-=":66,"*=":67,"**=":68,"/=":69,"%=":70,"<<=":71,">>=":72,">>>=":73,"&=":74,"|=":75,"^=":79,"||=":76,"&&=":77,"??=":78,"@":60,"#":63,"`":62})),Avi=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),B7a=new Map([[1,tJe.RegularExpressionFlagsHasIndices],[16,tJe.RegularExpressionFlagsDotAll],[32,tJe.RegularExpressionFlagsUnicode],[64,tJe.RegularExpressionFlagsUnicodeSets],[128,tJe.RegularExpressionFlagsSticky]]),w7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],T7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],R7a=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],N7a=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],D7a=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,k7a=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/,x7a=/@(?:see|link)/i;function Ybt(e,t){if(e=2?Ybt(e,R7a):Ybt(e,w7a)}function F7a(e,t){return t>=2?Ybt(e,N7a):Ybt(e,T7a)}function dvi(e){let t=[];return e.forEach((r,n)=>{t[r]=n}),t}var Z7a=dvi(gvi);function by(e){return Z7a[e]}function pvi(e){return gvi.get(e)}var ETu=dvi(Avi);function x2i(e){return Avi.get(e)}function fvi(e){let t=[],r=0,n=0;for(;r127&&CV(a)&&(t.push(n),n=r);break}}return t.push(n),t}function L7a(e,t,r,n,a){(t<0||t>=e.length)&&(a?t=t<0?0:t>=e.length?e.length-1:t:Zo.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${n!==void 0?O6a(e,fvi(n)):"unknown"}`));let o=e[t]+r;return a?o>e[t+1]?e[t+1]:typeof n=="string"&&o>n.length?n.length:o:(t=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function CV(e){return e===10||e===13||e===8232||e===8233}function mce(e){return e>=48&&e<=57}function XRr(e){return mce(e)||e>=65&&e<=70||e>=97&&e<=102}function VNr(e){return e>=65&&e<=90||e>=97&&e<=122}function hvi(e){return VNr(e)||mce(e)||e===95}function JRr(e){return e>=48&&e<=55}function dj(e,t,r,n,a){if(bJe(t))return t;let o=!1;for(;;){let l=e.charCodeAt(t);switch(l){case 13:e.charCodeAt(t+1)===10&&t++;case 10:if(t++,r)return t;o=!!a;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(n)break;if(e.charCodeAt(t+1)===47){for(t+=2;t127&&BNe(l)){t++;continue}break}return t}}var Zbt=7;function Gme(e,t){if(Zo.assert(t>=0),t===0||CV(e.charCodeAt(t-1))){let r=e.charCodeAt(t);if(t+Zbt=0&&r127&&BNe(B)){b&&CV(B)&&(C=!0),r++;continue}break e}}return b&&(N=a(A,f,I,C,o,N)),N}function W7a(e,t,r,n){return $bt(!1,e,t,!1,r,n)}function O7a(e,t,r,n){return $bt(!1,e,t,!0,r,n)}function M7a(e,t,r,n,a){return $bt(!0,e,t,!1,r,n,a)}function H7a(e,t,r,n,a){return $bt(!0,e,t,!0,r,n,a)}function _vi(e,t,r,n,a,o=[]){return o.push({kind:r,pos:e,end:t,hasTrailingNewLine:n}),o}function lNr(e,t){return M7a(e,t,_vi,void 0,void 0)}function Y7a(e,t){return H7a(e,t,_vi,void 0,void 0)}function yvi(e){let t=PNr.exec(e);if(t)return t[0]}function i4(e,t){return VNr(e)||e===36||e===95||e>127&&G7a(e,t)}function See(e,t,r){return hvi(e)||e===36||(r===1?e===45||e===58:!1)||e>127&&F7a(e,t)}function Q7a(e,t,r){let n=Fme(e,0);if(!i4(n,t))return!1;for(let a=xR(n);aC,getStartPos:()=>C,getTokenEnd:()=>f,getTextPos:()=>f,getToken:()=>E,getTokenStart:()=>b,getTokenPos:()=>b,getTokenText:()=>A.substring(b,f),getTokenValue:()=>N,hasUnicodeEscape:()=>(B&1024)!==0,hasExtendedUnicodeEscape:()=>(B&8)!==0,hasPrecedingLineBreak:()=>(B&1)!==0,hasPrecedingJSDocComment:()=>(B&2)!==0,hasPrecedingJSDocLeadingAsterisks:()=>(B&32768)!==0,isIdentifier:()=>E===80||E>118,isReservedWord:()=>E>=83&&E<=118,isUnterminated:()=>(B&4)!==0,getCommentDirectives:()=>F,getNumericLiteralFlags:()=>B&25584,getTokenFlags:()=>B,reScanGreaterToken:qr,reScanAsteriskEqualsToken:_n,reScanSlashToken:ke,reScanTemplateToken:po,reScanTemplateHeadOrNoSubstitutionTemplate:Vr,scanJsxIdentifier:cl,scanJsxAttributeValue:Sc,reScanJsxAttributeValue:Hr,reScanJsxToken:xi,reScanLessThanToken:io,reScanHashToken:ga,reScanQuestionToken:Ya,reScanInvalidIdentifier:cr,scanJsxToken:Gc,scanJsDocToken:Ft,scanJSDocCommentTextToken:Wr,scan:Xt,getText:ps,clearCommentDirectives:yo,setText:bo,setScriptTarget:gc,setLanguageVariant:Cg,setScriptKind:Nc,setJSDocParsingMode:iA,setOnError:Qa,resetTokenState:ma,setTextPos:ma,setSkipJsDocLeadingAsterisks:vu,tryScan:Qi,lookAhead:Or,scanRange:Rn};return Zo.isDebugging&&Object.defineProperty(ne,"__debugShowCurrentPositionInText",{get:()=>{let li=ne.getText();return li.slice(0,ne.getTokenFullStart())+"\u2551"+li.slice(ne.getTokenFullStart())}}),ne;function ce(li){return Fme(A,li)}function fe(li){return li>=0&&li=0&&li=65&&Wc<=70)Wc+=32;else if(!(Wc>=48&&Wc<=57||Wc>=97&&Wc<=102))break;Xa.push(Wc),f++,Yl=!1}return Xa.length=I){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}let ac=ue(f);if(ac===Ei){Ps+=A.substring(Xa,f),f++;break}if(ac===92&&!li){Ps+=A.substring(Xa,f),Ps+=Yt(3),Xa=f;continue}if((ac===10||ac===13)&&!li){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}f++}return Ps}function At(li){let Ei=ue(f)===96;f++;let Ps=f,Xa="",ac;for(;;){if(f>=I){Xa+=A.substring(Ps,f),B|=4,be(ts.Unterminated_template_literal),ac=Ei?15:18;break}let Yl=ue(f);if(Yl===96){Xa+=A.substring(Ps,f),f++,ac=Ei?15:18;break}if(Yl===36&&f+10?Wt.repeat(Hu):"";let Ru="";for(;Ru.length{},u7a=()=>{},Fbt,Tp=(e=>(e[e.Unknown=0]="Unknown",e[e.EndOfFileToken=1]="EndOfFileToken",e[e.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",e[e.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",e[e.NewLineTrivia=4]="NewLineTrivia",e[e.WhitespaceTrivia=5]="WhitespaceTrivia",e[e.ShebangTrivia=6]="ShebangTrivia",e[e.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",e[e.NonTextFileMarkerTrivia=8]="NonTextFileMarkerTrivia",e[e.NumericLiteral=9]="NumericLiteral",e[e.BigIntLiteral=10]="BigIntLiteral",e[e.StringLiteral=11]="StringLiteral",e[e.JsxText=12]="JsxText",e[e.JsxTextAllWhiteSpaces=13]="JsxTextAllWhiteSpaces",e[e.RegularExpressionLiteral=14]="RegularExpressionLiteral",e[e.NoSubstitutionTemplateLiteral=15]="NoSubstitutionTemplateLiteral",e[e.TemplateHead=16]="TemplateHead",e[e.TemplateMiddle=17]="TemplateMiddle",e[e.TemplateTail=18]="TemplateTail",e[e.OpenBraceToken=19]="OpenBraceToken",e[e.CloseBraceToken=20]="CloseBraceToken",e[e.OpenParenToken=21]="OpenParenToken",e[e.CloseParenToken=22]="CloseParenToken",e[e.OpenBracketToken=23]="OpenBracketToken",e[e.CloseBracketToken=24]="CloseBracketToken",e[e.DotToken=25]="DotToken",e[e.DotDotDotToken=26]="DotDotDotToken",e[e.SemicolonToken=27]="SemicolonToken",e[e.CommaToken=28]="CommaToken",e[e.QuestionDotToken=29]="QuestionDotToken",e[e.LessThanToken=30]="LessThanToken",e[e.LessThanSlashToken=31]="LessThanSlashToken",e[e.GreaterThanToken=32]="GreaterThanToken",e[e.LessThanEqualsToken=33]="LessThanEqualsToken",e[e.GreaterThanEqualsToken=34]="GreaterThanEqualsToken",e[e.EqualsEqualsToken=35]="EqualsEqualsToken",e[e.ExclamationEqualsToken=36]="ExclamationEqualsToken",e[e.EqualsEqualsEqualsToken=37]="EqualsEqualsEqualsToken",e[e.ExclamationEqualsEqualsToken=38]="ExclamationEqualsEqualsToken",e[e.EqualsGreaterThanToken=39]="EqualsGreaterThanToken",e[e.PlusToken=40]="PlusToken",e[e.MinusToken=41]="MinusToken",e[e.AsteriskToken=42]="AsteriskToken",e[e.AsteriskAsteriskToken=43]="AsteriskAsteriskToken",e[e.SlashToken=44]="SlashToken",e[e.PercentToken=45]="PercentToken",e[e.PlusPlusToken=46]="PlusPlusToken",e[e.MinusMinusToken=47]="MinusMinusToken",e[e.LessThanLessThanToken=48]="LessThanLessThanToken",e[e.GreaterThanGreaterThanToken=49]="GreaterThanGreaterThanToken",e[e.GreaterThanGreaterThanGreaterThanToken=50]="GreaterThanGreaterThanGreaterThanToken",e[e.AmpersandToken=51]="AmpersandToken",e[e.BarToken=52]="BarToken",e[e.CaretToken=53]="CaretToken",e[e.ExclamationToken=54]="ExclamationToken",e[e.TildeToken=55]="TildeToken",e[e.AmpersandAmpersandToken=56]="AmpersandAmpersandToken",e[e.BarBarToken=57]="BarBarToken",e[e.QuestionToken=58]="QuestionToken",e[e.ColonToken=59]="ColonToken",e[e.AtToken=60]="AtToken",e[e.QuestionQuestionToken=61]="QuestionQuestionToken",e[e.BacktickToken=62]="BacktickToken",e[e.HashToken=63]="HashToken",e[e.EqualsToken=64]="EqualsToken",e[e.PlusEqualsToken=65]="PlusEqualsToken",e[e.MinusEqualsToken=66]="MinusEqualsToken",e[e.AsteriskEqualsToken=67]="AsteriskEqualsToken",e[e.AsteriskAsteriskEqualsToken=68]="AsteriskAsteriskEqualsToken",e[e.SlashEqualsToken=69]="SlashEqualsToken",e[e.PercentEqualsToken=70]="PercentEqualsToken",e[e.LessThanLessThanEqualsToken=71]="LessThanLessThanEqualsToken",e[e.GreaterThanGreaterThanEqualsToken=72]="GreaterThanGreaterThanEqualsToken",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]="GreaterThanGreaterThanGreaterThanEqualsToken",e[e.AmpersandEqualsToken=74]="AmpersandEqualsToken",e[e.BarEqualsToken=75]="BarEqualsToken",e[e.BarBarEqualsToken=76]="BarBarEqualsToken",e[e.AmpersandAmpersandEqualsToken=77]="AmpersandAmpersandEqualsToken",e[e.QuestionQuestionEqualsToken=78]="QuestionQuestionEqualsToken",e[e.CaretEqualsToken=79]="CaretEqualsToken",e[e.Identifier=80]="Identifier",e[e.PrivateIdentifier=81]="PrivateIdentifier",e[e.JSDocCommentTextToken=82]="JSDocCommentTextToken",e[e.BreakKeyword=83]="BreakKeyword",e[e.CaseKeyword=84]="CaseKeyword",e[e.CatchKeyword=85]="CatchKeyword",e[e.ClassKeyword=86]="ClassKeyword",e[e.ConstKeyword=87]="ConstKeyword",e[e.ContinueKeyword=88]="ContinueKeyword",e[e.DebuggerKeyword=89]="DebuggerKeyword",e[e.DefaultKeyword=90]="DefaultKeyword",e[e.DeleteKeyword=91]="DeleteKeyword",e[e.DoKeyword=92]="DoKeyword",e[e.ElseKeyword=93]="ElseKeyword",e[e.EnumKeyword=94]="EnumKeyword",e[e.ExportKeyword=95]="ExportKeyword",e[e.ExtendsKeyword=96]="ExtendsKeyword",e[e.FalseKeyword=97]="FalseKeyword",e[e.FinallyKeyword=98]="FinallyKeyword",e[e.ForKeyword=99]="ForKeyword",e[e.FunctionKeyword=100]="FunctionKeyword",e[e.IfKeyword=101]="IfKeyword",e[e.ImportKeyword=102]="ImportKeyword",e[e.InKeyword=103]="InKeyword",e[e.InstanceOfKeyword=104]="InstanceOfKeyword",e[e.NewKeyword=105]="NewKeyword",e[e.NullKeyword=106]="NullKeyword",e[e.ReturnKeyword=107]="ReturnKeyword",e[e.SuperKeyword=108]="SuperKeyword",e[e.SwitchKeyword=109]="SwitchKeyword",e[e.ThisKeyword=110]="ThisKeyword",e[e.ThrowKeyword=111]="ThrowKeyword",e[e.TrueKeyword=112]="TrueKeyword",e[e.TryKeyword=113]="TryKeyword",e[e.TypeOfKeyword=114]="TypeOfKeyword",e[e.VarKeyword=115]="VarKeyword",e[e.VoidKeyword=116]="VoidKeyword",e[e.WhileKeyword=117]="WhileKeyword",e[e.WithKeyword=118]="WithKeyword",e[e.ImplementsKeyword=119]="ImplementsKeyword",e[e.InterfaceKeyword=120]="InterfaceKeyword",e[e.LetKeyword=121]="LetKeyword",e[e.PackageKeyword=122]="PackageKeyword",e[e.PrivateKeyword=123]="PrivateKeyword",e[e.ProtectedKeyword=124]="ProtectedKeyword",e[e.PublicKeyword=125]="PublicKeyword",e[e.StaticKeyword=126]="StaticKeyword",e[e.YieldKeyword=127]="YieldKeyword",e[e.AbstractKeyword=128]="AbstractKeyword",e[e.AccessorKeyword=129]="AccessorKeyword",e[e.AsKeyword=130]="AsKeyword",e[e.AssertsKeyword=131]="AssertsKeyword",e[e.AssertKeyword=132]="AssertKeyword",e[e.AnyKeyword=133]="AnyKeyword",e[e.AsyncKeyword=134]="AsyncKeyword",e[e.AwaitKeyword=135]="AwaitKeyword",e[e.BooleanKeyword=136]="BooleanKeyword",e[e.ConstructorKeyword=137]="ConstructorKeyword",e[e.DeclareKeyword=138]="DeclareKeyword",e[e.GetKeyword=139]="GetKeyword",e[e.InferKeyword=140]="InferKeyword",e[e.IntrinsicKeyword=141]="IntrinsicKeyword",e[e.IsKeyword=142]="IsKeyword",e[e.KeyOfKeyword=143]="KeyOfKeyword",e[e.ModuleKeyword=144]="ModuleKeyword",e[e.NamespaceKeyword=145]="NamespaceKeyword",e[e.NeverKeyword=146]="NeverKeyword",e[e.OutKeyword=147]="OutKeyword",e[e.ReadonlyKeyword=148]="ReadonlyKeyword",e[e.RequireKeyword=149]="RequireKeyword",e[e.NumberKeyword=150]="NumberKeyword",e[e.ObjectKeyword=151]="ObjectKeyword",e[e.SatisfiesKeyword=152]="SatisfiesKeyword",e[e.SetKeyword=153]="SetKeyword",e[e.StringKeyword=154]="StringKeyword",e[e.SymbolKeyword=155]="SymbolKeyword",e[e.TypeKeyword=156]="TypeKeyword",e[e.UndefinedKeyword=157]="UndefinedKeyword",e[e.UniqueKeyword=158]="UniqueKeyword",e[e.UnknownKeyword=159]="UnknownKeyword",e[e.UsingKeyword=160]="UsingKeyword",e[e.FromKeyword=161]="FromKeyword",e[e.GlobalKeyword=162]="GlobalKeyword",e[e.BigIntKeyword=163]="BigIntKeyword",e[e.OverrideKeyword=164]="OverrideKeyword",e[e.OfKeyword=165]="OfKeyword",e[e.QualifiedName=166]="QualifiedName",e[e.ComputedPropertyName=167]="ComputedPropertyName",e[e.TypeParameter=168]="TypeParameter",e[e.Parameter=169]="Parameter",e[e.Decorator=170]="Decorator",e[e.PropertySignature=171]="PropertySignature",e[e.PropertyDeclaration=172]="PropertyDeclaration",e[e.MethodSignature=173]="MethodSignature",e[e.MethodDeclaration=174]="MethodDeclaration",e[e.ClassStaticBlockDeclaration=175]="ClassStaticBlockDeclaration",e[e.Constructor=176]="Constructor",e[e.GetAccessor=177]="GetAccessor",e[e.SetAccessor=178]="SetAccessor",e[e.CallSignature=179]="CallSignature",e[e.ConstructSignature=180]="ConstructSignature",e[e.IndexSignature=181]="IndexSignature",e[e.TypePredicate=182]="TypePredicate",e[e.TypeReference=183]="TypeReference",e[e.FunctionType=184]="FunctionType",e[e.ConstructorType=185]="ConstructorType",e[e.TypeQuery=186]="TypeQuery",e[e.TypeLiteral=187]="TypeLiteral",e[e.ArrayType=188]="ArrayType",e[e.TupleType=189]="TupleType",e[e.OptionalType=190]="OptionalType",e[e.RestType=191]="RestType",e[e.UnionType=192]="UnionType",e[e.IntersectionType=193]="IntersectionType",e[e.ConditionalType=194]="ConditionalType",e[e.InferType=195]="InferType",e[e.ParenthesizedType=196]="ParenthesizedType",e[e.ThisType=197]="ThisType",e[e.TypeOperator=198]="TypeOperator",e[e.IndexedAccessType=199]="IndexedAccessType",e[e.MappedType=200]="MappedType",e[e.LiteralType=201]="LiteralType",e[e.NamedTupleMember=202]="NamedTupleMember",e[e.TemplateLiteralType=203]="TemplateLiteralType",e[e.TemplateLiteralTypeSpan=204]="TemplateLiteralTypeSpan",e[e.ImportType=205]="ImportType",e[e.ObjectBindingPattern=206]="ObjectBindingPattern",e[e.ArrayBindingPattern=207]="ArrayBindingPattern",e[e.BindingElement=208]="BindingElement",e[e.ArrayLiteralExpression=209]="ArrayLiteralExpression",e[e.ObjectLiteralExpression=210]="ObjectLiteralExpression",e[e.PropertyAccessExpression=211]="PropertyAccessExpression",e[e.ElementAccessExpression=212]="ElementAccessExpression",e[e.CallExpression=213]="CallExpression",e[e.NewExpression=214]="NewExpression",e[e.TaggedTemplateExpression=215]="TaggedTemplateExpression",e[e.TypeAssertionExpression=216]="TypeAssertionExpression",e[e.ParenthesizedExpression=217]="ParenthesizedExpression",e[e.FunctionExpression=218]="FunctionExpression",e[e.ArrowFunction=219]="ArrowFunction",e[e.DeleteExpression=220]="DeleteExpression",e[e.TypeOfExpression=221]="TypeOfExpression",e[e.VoidExpression=222]="VoidExpression",e[e.AwaitExpression=223]="AwaitExpression",e[e.PrefixUnaryExpression=224]="PrefixUnaryExpression",e[e.PostfixUnaryExpression=225]="PostfixUnaryExpression",e[e.BinaryExpression=226]="BinaryExpression",e[e.ConditionalExpression=227]="ConditionalExpression",e[e.TemplateExpression=228]="TemplateExpression",e[e.YieldExpression=229]="YieldExpression",e[e.SpreadElement=230]="SpreadElement",e[e.ClassExpression=231]="ClassExpression",e[e.OmittedExpression=232]="OmittedExpression",e[e.ExpressionWithTypeArguments=233]="ExpressionWithTypeArguments",e[e.AsExpression=234]="AsExpression",e[e.NonNullExpression=235]="NonNullExpression",e[e.MetaProperty=236]="MetaProperty",e[e.SyntheticExpression=237]="SyntheticExpression",e[e.SatisfiesExpression=238]="SatisfiesExpression",e[e.TemplateSpan=239]="TemplateSpan",e[e.SemicolonClassElement=240]="SemicolonClassElement",e[e.Block=241]="Block",e[e.EmptyStatement=242]="EmptyStatement",e[e.VariableStatement=243]="VariableStatement",e[e.ExpressionStatement=244]="ExpressionStatement",e[e.IfStatement=245]="IfStatement",e[e.DoStatement=246]="DoStatement",e[e.WhileStatement=247]="WhileStatement",e[e.ForStatement=248]="ForStatement",e[e.ForInStatement=249]="ForInStatement",e[e.ForOfStatement=250]="ForOfStatement",e[e.ContinueStatement=251]="ContinueStatement",e[e.BreakStatement=252]="BreakStatement",e[e.ReturnStatement=253]="ReturnStatement",e[e.WithStatement=254]="WithStatement",e[e.SwitchStatement=255]="SwitchStatement",e[e.LabeledStatement=256]="LabeledStatement",e[e.ThrowStatement=257]="ThrowStatement",e[e.TryStatement=258]="TryStatement",e[e.DebuggerStatement=259]="DebuggerStatement",e[e.VariableDeclaration=260]="VariableDeclaration",e[e.VariableDeclarationList=261]="VariableDeclarationList",e[e.FunctionDeclaration=262]="FunctionDeclaration",e[e.ClassDeclaration=263]="ClassDeclaration",e[e.InterfaceDeclaration=264]="InterfaceDeclaration",e[e.TypeAliasDeclaration=265]="TypeAliasDeclaration",e[e.EnumDeclaration=266]="EnumDeclaration",e[e.ModuleDeclaration=267]="ModuleDeclaration",e[e.ModuleBlock=268]="ModuleBlock",e[e.CaseBlock=269]="CaseBlock",e[e.NamespaceExportDeclaration=270]="NamespaceExportDeclaration",e[e.ImportEqualsDeclaration=271]="ImportEqualsDeclaration",e[e.ImportDeclaration=272]="ImportDeclaration",e[e.ImportClause=273]="ImportClause",e[e.NamespaceImport=274]="NamespaceImport",e[e.NamedImports=275]="NamedImports",e[e.ImportSpecifier=276]="ImportSpecifier",e[e.ExportAssignment=277]="ExportAssignment",e[e.ExportDeclaration=278]="ExportDeclaration",e[e.NamedExports=279]="NamedExports",e[e.NamespaceExport=280]="NamespaceExport",e[e.ExportSpecifier=281]="ExportSpecifier",e[e.MissingDeclaration=282]="MissingDeclaration",e[e.ExternalModuleReference=283]="ExternalModuleReference",e[e.JsxElement=284]="JsxElement",e[e.JsxSelfClosingElement=285]="JsxSelfClosingElement",e[e.JsxOpeningElement=286]="JsxOpeningElement",e[e.JsxClosingElement=287]="JsxClosingElement",e[e.JsxFragment=288]="JsxFragment",e[e.JsxOpeningFragment=289]="JsxOpeningFragment",e[e.JsxClosingFragment=290]="JsxClosingFragment",e[e.JsxAttribute=291]="JsxAttribute",e[e.JsxAttributes=292]="JsxAttributes",e[e.JsxSpreadAttribute=293]="JsxSpreadAttribute",e[e.JsxExpression=294]="JsxExpression",e[e.JsxNamespacedName=295]="JsxNamespacedName",e[e.CaseClause=296]="CaseClause",e[e.DefaultClause=297]="DefaultClause",e[e.HeritageClause=298]="HeritageClause",e[e.CatchClause=299]="CatchClause",e[e.ImportAttributes=300]="ImportAttributes",e[e.ImportAttribute=301]="ImportAttribute",e[e.AssertClause=300]="AssertClause",e[e.AssertEntry=301]="AssertEntry",e[e.ImportTypeAssertionContainer=302]="ImportTypeAssertionContainer",e[e.PropertyAssignment=303]="PropertyAssignment",e[e.ShorthandPropertyAssignment=304]="ShorthandPropertyAssignment",e[e.SpreadAssignment=305]="SpreadAssignment",e[e.EnumMember=306]="EnumMember",e[e.SourceFile=307]="SourceFile",e[e.Bundle=308]="Bundle",e[e.JSDocTypeExpression=309]="JSDocTypeExpression",e[e.JSDocNameReference=310]="JSDocNameReference",e[e.JSDocMemberName=311]="JSDocMemberName",e[e.JSDocAllType=312]="JSDocAllType",e[e.JSDocUnknownType=313]="JSDocUnknownType",e[e.JSDocNullableType=314]="JSDocNullableType",e[e.JSDocNonNullableType=315]="JSDocNonNullableType",e[e.JSDocOptionalType=316]="JSDocOptionalType",e[e.JSDocFunctionType=317]="JSDocFunctionType",e[e.JSDocVariadicType=318]="JSDocVariadicType",e[e.JSDocNamepathType=319]="JSDocNamepathType",e[e.JSDoc=320]="JSDoc",e[e.JSDocComment=320]="JSDocComment",e[e.JSDocText=321]="JSDocText",e[e.JSDocTypeLiteral=322]="JSDocTypeLiteral",e[e.JSDocSignature=323]="JSDocSignature",e[e.JSDocLink=324]="JSDocLink",e[e.JSDocLinkCode=325]="JSDocLinkCode",e[e.JSDocLinkPlain=326]="JSDocLinkPlain",e[e.JSDocTag=327]="JSDocTag",e[e.JSDocAugmentsTag=328]="JSDocAugmentsTag",e[e.JSDocImplementsTag=329]="JSDocImplementsTag",e[e.JSDocAuthorTag=330]="JSDocAuthorTag",e[e.JSDocDeprecatedTag=331]="JSDocDeprecatedTag",e[e.JSDocClassTag=332]="JSDocClassTag",e[e.JSDocPublicTag=333]="JSDocPublicTag",e[e.JSDocPrivateTag=334]="JSDocPrivateTag",e[e.JSDocProtectedTag=335]="JSDocProtectedTag",e[e.JSDocReadonlyTag=336]="JSDocReadonlyTag",e[e.JSDocOverrideTag=337]="JSDocOverrideTag",e[e.JSDocCallbackTag=338]="JSDocCallbackTag",e[e.JSDocOverloadTag=339]="JSDocOverloadTag",e[e.JSDocEnumTag=340]="JSDocEnumTag",e[e.JSDocParameterTag=341]="JSDocParameterTag",e[e.JSDocReturnTag=342]="JSDocReturnTag",e[e.JSDocThisTag=343]="JSDocThisTag",e[e.JSDocTypeTag=344]="JSDocTypeTag",e[e.JSDocTemplateTag=345]="JSDocTemplateTag",e[e.JSDocTypedefTag=346]="JSDocTypedefTag",e[e.JSDocSeeTag=347]="JSDocSeeTag",e[e.JSDocPropertyTag=348]="JSDocPropertyTag",e[e.JSDocThrowsTag=349]="JSDocThrowsTag",e[e.JSDocSatisfiesTag=350]="JSDocSatisfiesTag",e[e.JSDocImportTag=351]="JSDocImportTag",e[e.SyntaxList=352]="SyntaxList",e[e.NotEmittedStatement=353]="NotEmittedStatement",e[e.NotEmittedTypeElement=354]="NotEmittedTypeElement",e[e.PartiallyEmittedExpression=355]="PartiallyEmittedExpression",e[e.CommaListExpression=356]="CommaListExpression",e[e.SyntheticReferenceExpression=357]="SyntheticReferenceExpression",e[e.Count=358]="Count",e[e.FirstAssignment=64]="FirstAssignment",e[e.LastAssignment=79]="LastAssignment",e[e.FirstCompoundAssignment=65]="FirstCompoundAssignment",e[e.LastCompoundAssignment=79]="LastCompoundAssignment",e[e.FirstReservedWord=83]="FirstReservedWord",e[e.LastReservedWord=118]="LastReservedWord",e[e.FirstKeyword=83]="FirstKeyword",e[e.LastKeyword=165]="LastKeyword",e[e.FirstFutureReservedWord=119]="FirstFutureReservedWord",e[e.LastFutureReservedWord=127]="LastFutureReservedWord",e[e.FirstTypeNode=182]="FirstTypeNode",e[e.LastTypeNode=205]="LastTypeNode",e[e.FirstPunctuation=19]="FirstPunctuation",e[e.LastPunctuation=79]="LastPunctuation",e[e.FirstToken=0]="FirstToken",e[e.LastToken=165]="LastToken",e[e.FirstTriviaToken=2]="FirstTriviaToken",e[e.LastTriviaToken=7]="LastTriviaToken",e[e.FirstLiteralToken=9]="FirstLiteralToken",e[e.LastLiteralToken=15]="LastLiteralToken",e[e.FirstTemplateToken=15]="FirstTemplateToken",e[e.LastTemplateToken=18]="LastTemplateToken",e[e.FirstBinaryOperator=30]="FirstBinaryOperator",e[e.LastBinaryOperator=79]="LastBinaryOperator",e[e.FirstStatement=243]="FirstStatement",e[e.LastStatement=259]="LastStatement",e[e.FirstNode=166]="FirstNode",e[e.FirstJSDocNode=309]="FirstJSDocNode",e[e.LastJSDocNode=351]="LastJSDocNode",e[e.FirstJSDocTagNode=327]="FirstJSDocTagNode",e[e.LastJSDocTagNode=351]="LastJSDocTagNode",e[e.FirstContextualKeyword=128]="FirstContextualKeyword",e[e.LastContextualKeyword=165]="LastContextualKeyword",e))(Tp||{}),IO=(e=>(e[e.None=0]="None",e[e.Let=1]="Let",e[e.Const=2]="Const",e[e.Using=4]="Using",e[e.AwaitUsing=6]="AwaitUsing",e[e.NestedNamespace=8]="NestedNamespace",e[e.Synthesized=16]="Synthesized",e[e.Namespace=32]="Namespace",e[e.OptionalChain=64]="OptionalChain",e[e.ExportContext=128]="ExportContext",e[e.ContainsThis=256]="ContainsThis",e[e.HasImplicitReturn=512]="HasImplicitReturn",e[e.HasExplicitReturn=1024]="HasExplicitReturn",e[e.GlobalAugmentation=2048]="GlobalAugmentation",e[e.HasAsyncFunctions=4096]="HasAsyncFunctions",e[e.DisallowInContext=8192]="DisallowInContext",e[e.YieldContext=16384]="YieldContext",e[e.DecoratorContext=32768]="DecoratorContext",e[e.AwaitContext=65536]="AwaitContext",e[e.DisallowConditionalTypesContext=131072]="DisallowConditionalTypesContext",e[e.ThisNodeHasError=262144]="ThisNodeHasError",e[e.JavaScriptFile=524288]="JavaScriptFile",e[e.ThisNodeOrAnySubNodesHasError=1048576]="ThisNodeOrAnySubNodesHasError",e[e.HasAggregatedChildData=2097152]="HasAggregatedChildData",e[e.PossiblyContainsDynamicImport=4194304]="PossiblyContainsDynamicImport",e[e.PossiblyContainsImportMeta=8388608]="PossiblyContainsImportMeta",e[e.JSDoc=16777216]="JSDoc",e[e.Ambient=33554432]="Ambient",e[e.InWithStatement=67108864]="InWithStatement",e[e.JsonFile=134217728]="JsonFile",e[e.TypeCached=268435456]="TypeCached",e[e.Deprecated=536870912]="Deprecated",e[e.BlockScoped=7]="BlockScoped",e[e.Constant=6]="Constant",e[e.ReachabilityCheckFlags=1536]="ReachabilityCheckFlags",e[e.ReachabilityAndEmitFlags=5632]="ReachabilityAndEmitFlags",e[e.ContextFlags=101441536]="ContextFlags",e[e.TypeExcludesFlags=81920]="TypeExcludesFlags",e[e.PermanentlySetIncrementalFlags=12582912]="PermanentlySetIncrementalFlags",e[e.IdentifierHasExtendedUnicodeEscape=256]="IdentifierHasExtendedUnicodeEscape",e[e.IdentifierIsInJSDocNamespace=4096]="IdentifierIsInJSDocNamespace",e))(IO||{}),zSi=(e=>(e[e.None=0]="None",e[e.Public=1]="Public",e[e.Private=2]="Private",e[e.Protected=4]="Protected",e[e.Readonly=8]="Readonly",e[e.Override=16]="Override",e[e.Export=32]="Export",e[e.Abstract=64]="Abstract",e[e.Ambient=128]="Ambient",e[e.Static=256]="Static",e[e.Accessor=512]="Accessor",e[e.Async=1024]="Async",e[e.Default=2048]="Default",e[e.Const=4096]="Const",e[e.In=8192]="In",e[e.Out=16384]="Out",e[e.Decorator=32768]="Decorator",e[e.Deprecated=65536]="Deprecated",e[e.JSDocPublic=8388608]="JSDocPublic",e[e.JSDocPrivate=16777216]="JSDocPrivate",e[e.JSDocProtected=33554432]="JSDocProtected",e[e.JSDocReadonly=67108864]="JSDocReadonly",e[e.JSDocOverride=134217728]="JSDocOverride",e[e.SyntacticOrJSDocModifiers=31]="SyntacticOrJSDocModifiers",e[e.SyntacticOnlyModifiers=65504]="SyntacticOnlyModifiers",e[e.SyntacticModifiers=65535]="SyntacticModifiers",e[e.JSDocCacheOnlyModifiers=260046848]="JSDocCacheOnlyModifiers",e[e.JSDocOnlyModifiers=65536]="JSDocOnlyModifiers",e[e.NonCacheOnlyModifiers=131071]="NonCacheOnlyModifiers",e[e.HasComputedJSDocModifiers=268435456]="HasComputedJSDocModifiers",e[e.HasComputedFlags=536870912]="HasComputedFlags",e[e.AccessibilityModifier=7]="AccessibilityModifier",e[e.ParameterPropertyModifier=31]="ParameterPropertyModifier",e[e.NonPublicAccessibilityModifier=6]="NonPublicAccessibilityModifier",e[e.TypeScriptModifier=28895]="TypeScriptModifier",e[e.ExportDefault=2080]="ExportDefault",e[e.All=131071]="All",e[e.Modifier=98303]="Modifier",e))(zSi||{}),qSi=(e=>(e[e.None=0]="None",e[e.Succeeded=1]="Succeeded",e[e.Failed=2]="Failed",e[e.ReportsUnmeasurable=8]="ReportsUnmeasurable",e[e.ReportsUnreliable=16]="ReportsUnreliable",e[e.ReportsMask=24]="ReportsMask",e[e.ComplexityOverflow=32]="ComplexityOverflow",e[e.StackDepthOverflow=64]="StackDepthOverflow",e[e.Overflow=96]="Overflow",e))(qSi||{}),aNr=(e=>(e[e.Unreachable=1]="Unreachable",e[e.Start=2]="Start",e[e.BranchLabel=4]="BranchLabel",e[e.LoopLabel=8]="LoopLabel",e[e.Assignment=16]="Assignment",e[e.TrueCondition=32]="TrueCondition",e[e.FalseCondition=64]="FalseCondition",e[e.SwitchClause=128]="SwitchClause",e[e.ArrayMutation=256]="ArrayMutation",e[e.Call=512]="Call",e[e.ReduceLabel=1024]="ReduceLabel",e[e.Referenced=2048]="Referenced",e[e.Shared=4096]="Shared",e[e.Label=12]="Label",e[e.Condition=96]="Condition",e))(aNr||{}),$Si=(e=>(e[e.None=0]="None",e[e.FunctionScopedVariable=1]="FunctionScopedVariable",e[e.BlockScopedVariable=2]="BlockScopedVariable",e[e.Property=4]="Property",e[e.EnumMember=8]="EnumMember",e[e.Function=16]="Function",e[e.Class=32]="Class",e[e.Interface=64]="Interface",e[e.ConstEnum=128]="ConstEnum",e[e.RegularEnum=256]="RegularEnum",e[e.ValueModule=512]="ValueModule",e[e.NamespaceModule=1024]="NamespaceModule",e[e.TypeLiteral=2048]="TypeLiteral",e[e.ObjectLiteral=4096]="ObjectLiteral",e[e.Method=8192]="Method",e[e.Constructor=16384]="Constructor",e[e.GetAccessor=32768]="GetAccessor",e[e.SetAccessor=65536]="SetAccessor",e[e.Signature=131072]="Signature",e[e.TypeParameter=262144]="TypeParameter",e[e.TypeAlias=524288]="TypeAlias",e[e.ExportValue=1048576]="ExportValue",e[e.Alias=2097152]="Alias",e[e.Prototype=4194304]="Prototype",e[e.ExportStar=8388608]="ExportStar",e[e.Optional=16777216]="Optional",e[e.Transient=33554432]="Transient",e[e.Assignment=67108864]="Assignment",e[e.ModuleExports=134217728]="ModuleExports",e[e.All=-1]="All",e[e.Enum=384]="Enum",e[e.Variable=3]="Variable",e[e.Value=111551]="Value",e[e.Type=788968]="Type",e[e.Namespace=1920]="Namespace",e[e.Module=1536]="Module",e[e.Accessor=98304]="Accessor",e[e.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",e[e.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",e[e.ParameterExcludes=111551]="ParameterExcludes",e[e.PropertyExcludes=0]="PropertyExcludes",e[e.EnumMemberExcludes=900095]="EnumMemberExcludes",e[e.FunctionExcludes=110991]="FunctionExcludes",e[e.ClassExcludes=899503]="ClassExcludes",e[e.InterfaceExcludes=788872]="InterfaceExcludes",e[e.RegularEnumExcludes=899327]="RegularEnumExcludes",e[e.ConstEnumExcludes=899967]="ConstEnumExcludes",e[e.ValueModuleExcludes=110735]="ValueModuleExcludes",e[e.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",e[e.MethodExcludes=103359]="MethodExcludes",e[e.GetAccessorExcludes=46015]="GetAccessorExcludes",e[e.SetAccessorExcludes=78783]="SetAccessorExcludes",e[e.AccessorExcludes=13247]="AccessorExcludes",e[e.TypeParameterExcludes=526824]="TypeParameterExcludes",e[e.TypeAliasExcludes=788968]="TypeAliasExcludes",e[e.AliasExcludes=2097152]="AliasExcludes",e[e.ModuleMember=2623475]="ModuleMember",e[e.ExportHasLocal=944]="ExportHasLocal",e[e.BlockScoped=418]="BlockScoped",e[e.PropertyOrAccessor=98308]="PropertyOrAccessor",e[e.ClassMember=106500]="ClassMember",e[e.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",e[e.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",e[e.Classifiable=2885600]="Classifiable",e[e.LateBindingContainer=6256]="LateBindingContainer",e))($Si||{}),evi=(e=>(e[e.None=0]="None",e[e.TypeChecked=1]="TypeChecked",e[e.LexicalThis=2]="LexicalThis",e[e.CaptureThis=4]="CaptureThis",e[e.CaptureNewTarget=8]="CaptureNewTarget",e[e.SuperInstance=16]="SuperInstance",e[e.SuperStatic=32]="SuperStatic",e[e.ContextChecked=64]="ContextChecked",e[e.MethodWithSuperPropertyAccessInAsync=128]="MethodWithSuperPropertyAccessInAsync",e[e.MethodWithSuperPropertyAssignmentInAsync=256]="MethodWithSuperPropertyAssignmentInAsync",e[e.CaptureArguments=512]="CaptureArguments",e[e.EnumValuesComputed=1024]="EnumValuesComputed",e[e.LexicalModuleMergesWithClass=2048]="LexicalModuleMergesWithClass",e[e.LoopWithCapturedBlockScopedBinding=4096]="LoopWithCapturedBlockScopedBinding",e[e.ContainsCapturedBlockScopeBinding=8192]="ContainsCapturedBlockScopeBinding",e[e.CapturedBlockScopedBinding=16384]="CapturedBlockScopedBinding",e[e.BlockScopedBindingInLoop=32768]="BlockScopedBindingInLoop",e[e.NeedsLoopOutParameter=65536]="NeedsLoopOutParameter",e[e.AssignmentsMarked=131072]="AssignmentsMarked",e[e.ContainsConstructorReference=262144]="ContainsConstructorReference",e[e.ConstructorReference=536870912]="ConstructorReference",e[e.ContainsClassWithPrivateIdentifiers=1048576]="ContainsClassWithPrivateIdentifiers",e[e.ContainsSuperPropertyInStaticInitializer=2097152]="ContainsSuperPropertyInStaticInitializer",e[e.InCheckIdentifier=4194304]="InCheckIdentifier",e[e.PartiallyTypeChecked=8388608]="PartiallyTypeChecked",e[e.LazyFlags=539358128]="LazyFlags",e))(evi||{}),kG=(e=>(e[e.Any=1]="Any",e[e.Unknown=2]="Unknown",e[e.String=4]="String",e[e.Number=8]="Number",e[e.Boolean=16]="Boolean",e[e.Enum=32]="Enum",e[e.BigInt=64]="BigInt",e[e.StringLiteral=128]="StringLiteral",e[e.NumberLiteral=256]="NumberLiteral",e[e.BooleanLiteral=512]="BooleanLiteral",e[e.EnumLiteral=1024]="EnumLiteral",e[e.BigIntLiteral=2048]="BigIntLiteral",e[e.ESSymbol=4096]="ESSymbol",e[e.UniqueESSymbol=8192]="UniqueESSymbol",e[e.Void=16384]="Void",e[e.Undefined=32768]="Undefined",e[e.Null=65536]="Null",e[e.Never=131072]="Never",e[e.TypeParameter=262144]="TypeParameter",e[e.Object=524288]="Object",e[e.Union=1048576]="Union",e[e.Intersection=2097152]="Intersection",e[e.Index=4194304]="Index",e[e.IndexedAccess=8388608]="IndexedAccess",e[e.Conditional=16777216]="Conditional",e[e.Substitution=33554432]="Substitution",e[e.NonPrimitive=67108864]="NonPrimitive",e[e.TemplateLiteral=134217728]="TemplateLiteral",e[e.StringMapping=268435456]="StringMapping",e[e.Reserved1=536870912]="Reserved1",e[e.Reserved2=1073741824]="Reserved2",e[e.AnyOrUnknown=3]="AnyOrUnknown",e[e.Nullable=98304]="Nullable",e[e.Literal=2944]="Literal",e[e.Unit=109472]="Unit",e[e.Freshable=2976]="Freshable",e[e.StringOrNumberLiteral=384]="StringOrNumberLiteral",e[e.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",e[e.DefinitelyFalsy=117632]="DefinitelyFalsy",e[e.PossiblyFalsy=117724]="PossiblyFalsy",e[e.Intrinsic=67359327]="Intrinsic",e[e.StringLike=402653316]="StringLike",e[e.NumberLike=296]="NumberLike",e[e.BigIntLike=2112]="BigIntLike",e[e.BooleanLike=528]="BooleanLike",e[e.EnumLike=1056]="EnumLike",e[e.ESSymbolLike=12288]="ESSymbolLike",e[e.VoidLike=49152]="VoidLike",e[e.Primitive=402784252]="Primitive",e[e.DefinitelyNonNullable=470302716]="DefinitelyNonNullable",e[e.DisjointDomains=469892092]="DisjointDomains",e[e.UnionOrIntersection=3145728]="UnionOrIntersection",e[e.StructuredType=3670016]="StructuredType",e[e.TypeVariable=8650752]="TypeVariable",e[e.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",e[e.InstantiablePrimitive=406847488]="InstantiablePrimitive",e[e.Instantiable=465829888]="Instantiable",e[e.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",e[e.ObjectFlagsType=3899393]="ObjectFlagsType",e[e.Simplifiable=25165824]="Simplifiable",e[e.Singleton=67358815]="Singleton",e[e.Narrowable=536624127]="Narrowable",e[e.IncludesMask=473694207]="IncludesMask",e[e.IncludesMissingType=262144]="IncludesMissingType",e[e.IncludesNonWideningType=4194304]="IncludesNonWideningType",e[e.IncludesWildcard=8388608]="IncludesWildcard",e[e.IncludesEmptyObject=16777216]="IncludesEmptyObject",e[e.IncludesInstantiable=33554432]="IncludesInstantiable",e[e.IncludesConstrainedTypeVariable=536870912]="IncludesConstrainedTypeVariable",e[e.IncludesError=1073741824]="IncludesError",e[e.NotPrimitiveUnion=36323331]="NotPrimitiveUnion",e))(kG||{}),tvi=(e=>(e[e.None=0]="None",e[e.Class=1]="Class",e[e.Interface=2]="Interface",e[e.Reference=4]="Reference",e[e.Tuple=8]="Tuple",e[e.Anonymous=16]="Anonymous",e[e.Mapped=32]="Mapped",e[e.Instantiated=64]="Instantiated",e[e.ObjectLiteral=128]="ObjectLiteral",e[e.EvolvingArray=256]="EvolvingArray",e[e.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",e[e.ReverseMapped=1024]="ReverseMapped",e[e.JsxAttributes=2048]="JsxAttributes",e[e.JSLiteral=4096]="JSLiteral",e[e.FreshLiteral=8192]="FreshLiteral",e[e.ArrayLiteral=16384]="ArrayLiteral",e[e.PrimitiveUnion=32768]="PrimitiveUnion",e[e.ContainsWideningType=65536]="ContainsWideningType",e[e.ContainsObjectOrArrayLiteral=131072]="ContainsObjectOrArrayLiteral",e[e.NonInferrableType=262144]="NonInferrableType",e[e.CouldContainTypeVariablesComputed=524288]="CouldContainTypeVariablesComputed",e[e.CouldContainTypeVariables=1048576]="CouldContainTypeVariables",e[e.ClassOrInterface=3]="ClassOrInterface",e[e.RequiresWidening=196608]="RequiresWidening",e[e.PropagatingFlags=458752]="PropagatingFlags",e[e.InstantiatedMapped=96]="InstantiatedMapped",e[e.ObjectTypeKindMask=1343]="ObjectTypeKindMask",e[e.ContainsSpread=2097152]="ContainsSpread",e[e.ObjectRestType=4194304]="ObjectRestType",e[e.InstantiationExpressionType=8388608]="InstantiationExpressionType",e[e.SingleSignatureType=134217728]="SingleSignatureType",e[e.IsClassInstanceClone=16777216]="IsClassInstanceClone",e[e.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",e[e.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",e[e.IsGenericTypeComputed=2097152]="IsGenericTypeComputed",e[e.IsGenericObjectType=4194304]="IsGenericObjectType",e[e.IsGenericIndexType=8388608]="IsGenericIndexType",e[e.IsGenericType=12582912]="IsGenericType",e[e.ContainsIntersections=16777216]="ContainsIntersections",e[e.IsUnknownLikeUnionComputed=33554432]="IsUnknownLikeUnionComputed",e[e.IsUnknownLikeUnion=67108864]="IsUnknownLikeUnion",e[e.IsNeverIntersectionComputed=16777216]="IsNeverIntersectionComputed",e[e.IsNeverIntersection=33554432]="IsNeverIntersection",e[e.IsConstrainedTypeVariable=67108864]="IsConstrainedTypeVariable",e))(tvi||{}),rvi=(e=>(e[e.None=0]="None",e[e.HasRestParameter=1]="HasRestParameter",e[e.HasLiteralTypes=2]="HasLiteralTypes",e[e.Abstract=4]="Abstract",e[e.IsInnerCallChain=8]="IsInnerCallChain",e[e.IsOuterCallChain=16]="IsOuterCallChain",e[e.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",e[e.IsNonInferrable=64]="IsNonInferrable",e[e.IsSignatureCandidateForOverloadFailure=128]="IsSignatureCandidateForOverloadFailure",e[e.PropagatingFlags=167]="PropagatingFlags",e[e.CallChainFlags=24]="CallChainFlags",e))(rvi||{}),Bee=(e=>(e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX",e[e.External=5]="External",e[e.JSON=6]="JSON",e[e.Deferred=7]="Deferred",e))(Bee||{}),GNr=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ES2021=8]="ES2021",e[e.ES2022=9]="ES2022",e[e.ES2023=10]="ES2023",e[e.ES2024=11]="ES2024",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(GNr||{}),nvi=(e=>(e[e.Standard=0]="Standard",e[e.JSX=1]="JSX",e))(nvi||{}),tH=(e=>(e.Ts=".ts",e.Tsx=".tsx",e.Dts=".d.ts",e.Js=".js",e.Jsx=".jsx",e.Json=".json",e.TsBuildInfo=".tsbuildinfo",e.Mjs=".mjs",e.Mts=".mts",e.Dmts=".d.mts",e.Cjs=".cjs",e.Cts=".cts",e.Dcts=".d.cts",e))(tH||{}),ivi=(e=>(e[e.None=0]="None",e[e.ContainsTypeScript=1]="ContainsTypeScript",e[e.ContainsJsx=2]="ContainsJsx",e[e.ContainsESNext=4]="ContainsESNext",e[e.ContainsES2022=8]="ContainsES2022",e[e.ContainsES2021=16]="ContainsES2021",e[e.ContainsES2020=32]="ContainsES2020",e[e.ContainsES2019=64]="ContainsES2019",e[e.ContainsES2018=128]="ContainsES2018",e[e.ContainsES2017=256]="ContainsES2017",e[e.ContainsES2016=512]="ContainsES2016",e[e.ContainsES2015=1024]="ContainsES2015",e[e.ContainsGenerator=2048]="ContainsGenerator",e[e.ContainsDestructuringAssignment=4096]="ContainsDestructuringAssignment",e[e.ContainsTypeScriptClassSyntax=8192]="ContainsTypeScriptClassSyntax",e[e.ContainsLexicalThis=16384]="ContainsLexicalThis",e[e.ContainsRestOrSpread=32768]="ContainsRestOrSpread",e[e.ContainsObjectRestOrSpread=65536]="ContainsObjectRestOrSpread",e[e.ContainsComputedPropertyName=131072]="ContainsComputedPropertyName",e[e.ContainsBlockScopedBinding=262144]="ContainsBlockScopedBinding",e[e.ContainsBindingPattern=524288]="ContainsBindingPattern",e[e.ContainsYield=1048576]="ContainsYield",e[e.ContainsAwait=2097152]="ContainsAwait",e[e.ContainsHoistedDeclarationOrCompletion=4194304]="ContainsHoistedDeclarationOrCompletion",e[e.ContainsDynamicImport=8388608]="ContainsDynamicImport",e[e.ContainsClassFields=16777216]="ContainsClassFields",e[e.ContainsDecorators=33554432]="ContainsDecorators",e[e.ContainsPossibleTopLevelAwait=67108864]="ContainsPossibleTopLevelAwait",e[e.ContainsLexicalSuper=134217728]="ContainsLexicalSuper",e[e.ContainsUpdateExpressionForIdentifier=268435456]="ContainsUpdateExpressionForIdentifier",e[e.ContainsPrivateIdentifierInExpression=536870912]="ContainsPrivateIdentifierInExpression",e[e.HasComputedFlags=-2147483648]="HasComputedFlags",e[e.AssertTypeScript=1]="AssertTypeScript",e[e.AssertJsx=2]="AssertJsx",e[e.AssertESNext=4]="AssertESNext",e[e.AssertES2022=8]="AssertES2022",e[e.AssertES2021=16]="AssertES2021",e[e.AssertES2020=32]="AssertES2020",e[e.AssertES2019=64]="AssertES2019",e[e.AssertES2018=128]="AssertES2018",e[e.AssertES2017=256]="AssertES2017",e[e.AssertES2016=512]="AssertES2016",e[e.AssertES2015=1024]="AssertES2015",e[e.AssertGenerator=2048]="AssertGenerator",e[e.AssertDestructuringAssignment=4096]="AssertDestructuringAssignment",e[e.OuterExpressionExcludes=-2147483648]="OuterExpressionExcludes",e[e.PropertyAccessExcludes=-2147483648]="PropertyAccessExcludes",e[e.NodeExcludes=-2147483648]="NodeExcludes",e[e.ArrowFunctionExcludes=-2072174592]="ArrowFunctionExcludes",e[e.FunctionExcludes=-1937940480]="FunctionExcludes",e[e.ConstructorExcludes=-1937948672]="ConstructorExcludes",e[e.MethodOrAccessorExcludes=-2005057536]="MethodOrAccessorExcludes",e[e.PropertyExcludes=-2013249536]="PropertyExcludes",e[e.ClassExcludes=-2147344384]="ClassExcludes",e[e.ModuleExcludes=-1941676032]="ModuleExcludes",e[e.TypeExcludes=-2]="TypeExcludes",e[e.ObjectLiteralExcludes=-2147278848]="ObjectLiteralExcludes",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]="ArrayLiteralOrCallOrNewExcludes",e[e.VariableDeclarationListExcludes=-2146893824]="VariableDeclarationListExcludes",e[e.ParameterExcludes=-2147483648]="ParameterExcludes",e[e.CatchClauseExcludes=-2147418112]="CatchClauseExcludes",e[e.BindingPatternExcludes=-2147450880]="BindingPatternExcludes",e[e.ContainsLexicalThisOrSuper=134234112]="ContainsLexicalThisOrSuper",e[e.PropertyNamePropagatingFlags=134234112]="PropertyNamePropagatingFlags",e))(ivi||{}),svi=(e=>(e[e.TabStop=0]="TabStop",e[e.Placeholder=1]="Placeholder",e[e.Choice=2]="Choice",e[e.Variable=3]="Variable",e))(svi||{}),ovi=(e=>(e[e.None=0]="None",e[e.SingleLine=1]="SingleLine",e[e.MultiLine=2]="MultiLine",e[e.AdviseOnEmitNode=4]="AdviseOnEmitNode",e[e.NoSubstitution=8]="NoSubstitution",e[e.CapturesThis=16]="CapturesThis",e[e.NoLeadingSourceMap=32]="NoLeadingSourceMap",e[e.NoTrailingSourceMap=64]="NoTrailingSourceMap",e[e.NoSourceMap=96]="NoSourceMap",e[e.NoNestedSourceMaps=128]="NoNestedSourceMaps",e[e.NoTokenLeadingSourceMaps=256]="NoTokenLeadingSourceMaps",e[e.NoTokenTrailingSourceMaps=512]="NoTokenTrailingSourceMaps",e[e.NoTokenSourceMaps=768]="NoTokenSourceMaps",e[e.NoLeadingComments=1024]="NoLeadingComments",e[e.NoTrailingComments=2048]="NoTrailingComments",e[e.NoComments=3072]="NoComments",e[e.NoNestedComments=4096]="NoNestedComments",e[e.HelperName=8192]="HelperName",e[e.ExportName=16384]="ExportName",e[e.LocalName=32768]="LocalName",e[e.InternalName=65536]="InternalName",e[e.Indented=131072]="Indented",e[e.NoIndentation=262144]="NoIndentation",e[e.AsyncFunctionBody=524288]="AsyncFunctionBody",e[e.ReuseTempVariableScope=1048576]="ReuseTempVariableScope",e[e.CustomPrologue=2097152]="CustomPrologue",e[e.NoHoisting=4194304]="NoHoisting",e[e.Iterator=8388608]="Iterator",e[e.NoAsciiEscaping=16777216]="NoAsciiEscaping",e))(ovi||{}),tJe={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99},avi={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0},{name:"resolution-mode",optional:!0},{name:"preserve",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}},uJe=(e=>(e[e.ParseAll=0]="ParseAll",e[e.ParseNone=1]="ParseNone",e[e.ParseForTypeErrors=2]="ParseForTypeErrors",e[e.ParseForTypeInfo=3]="ParseForTypeInfo",e))(uJe||{}),Hme="/",g7a="\\",R2i="://",A7a=/\\/g;function d7a(e){return e===47||e===92}function p7a(e,t){return e.length>t.length&&o7a(e,t)}function FNr(e){return e.length>0&&d7a(e.charCodeAt(e.length-1))}function N2i(e){return e>=97&&e<=122||e>=65&&e<=90}function f7a(e,t){let r=e.charCodeAt(t);if(r===58)return t+1;if(r===37&&e.charCodeAt(t+1)===51){let n=e.charCodeAt(t+2);if(n===97||n===65)return t+3}return-1}function I7a(e){if(!e)return 0;let t=e.charCodeAt(0);if(t===47||t===92){if(e.charCodeAt(1)!==t)return 1;let n=e.indexOf(t===47?Hme:g7a,2);return n<0?e.length:n+1}if(N2i(t)&&e.charCodeAt(1)===58){let n=e.charCodeAt(2);if(n===47||n===92)return 3;if(e.length===2)return 2}let r=e.indexOf(R2i);if(r!==-1){let n=r+R2i.length,a=e.indexOf(Hme,n);if(a!==-1){let o=e.slice(0,r),l=e.slice(n,a);if(o==="file"&&(l===""||l==="localhost")&&N2i(e.charCodeAt(a+1))){let A=f7a(e,a+2);if(A!==-1){if(e.charCodeAt(A)===47)return~(A+1);if(A===e.length)return~A}}return~(a+1)}return~e.length}return 0}function Mbt(e){let t=I7a(e);return t<0?~t:t}function cvi(e,t,r){if(e=Hbt(e),Mbt(e)===e.length)return"";e=uvi(e);let n=e.slice(Math.max(Mbt(e),e.lastIndexOf(Hme)+1)),a=t!==void 0&&r!==void 0?lvi(n,t,r):void 0;return a?n.slice(0,n.length-a.length):n}function D2i(e,t,r){if(Obt(t,".")||(t="."+t),e.length>=t.length&&e.charCodeAt(e.length-t.length)===46){let n=e.slice(e.length-t.length);if(r(n,t))return n}}function h7a(e,t,r){if(typeof t=="string")return D2i(e,t,r)||"";for(let n of t){let a=D2i(e,n,r);if(a)return a}return""}function lvi(e,t,r){if(t)return h7a(uvi(e),t,r?xNr:r7a);let n=cvi(e),a=n.lastIndexOf(".");return a>=0?n.substring(a):""}function m7a(e,t){let r=e.substring(0,t),n=e.substring(t).split(Hme);return n.length&&!Vme(n)&&n.pop(),[r,...n]}function C7a(e,t=""){return e=b7a(t,e),m7a(e,Mbt(e))}function _7a(e,t){return e.length===0?"":(e[0]&&ZNr(e[0]))+e.slice(1,t).join(Hme)}function Hbt(e){return e.includes("\\")?e.replace(A7a,Hme):e}function y7a(e){if(!oD(e))return[];let t=[e[0]];for(let r=1;r1){if(t[t.length-1]!==".."){t.pop();continue}}else if(t[0])continue}t.push(n)}}return t}function b7a(e,...t){e&&(e=Hbt(e));for(let r of t)r&&(r=Hbt(r),!e||Mbt(r)!==0?e=r:e=ZNr(e)+r);return e}function E7a(e){if(e=Hbt(e),!k2i.test(e))return e;let t=e.replace(/\/\.\//g,"/").replace(/^\.\//,"");if(t!==e&&(e=t,!k2i.test(e)))return e;let r=_7a(y7a(C7a(e)));return r&&FNr(e)?ZNr(r):r}function uvi(e){return FNr(e)?e.substr(0,e.length-1):e}function ZNr(e){return FNr(e)?e:e+Hme}var k2i=/\/\/|(?:^|\/)\.\.?(?:$|\/)/;function $(e,t,r,n,a,o,l){return{code:e,category:t,key:r,message:n,reportsUnnecessary:a,elidedInCompatabilityPyramid:o,reportsDeprecated:l}}var ts={Unterminated_string_literal:$(1002,1,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:$(1003,1,"Identifier_expected_1003","Identifier expected."),_0_expected:$(1005,1,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:$(1006,1,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:$(1007,1,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:$(1009,1,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:$(1010,1,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:$(1011,1,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:$(1012,1,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:$(1013,1,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:$(1014,1,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:$(1015,1,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:$(1016,1,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:$(1017,1,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:$(1018,1,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:$(1019,1,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:$(1020,1,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:$(1021,1,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:$(1022,1,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:$(1024,1,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:$(1025,1,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:$(1028,1,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:$(1029,1,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:$(1030,1,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:$(1031,1,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:$(1034,1,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:$(1035,1,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:$(1036,1,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:$(1038,1,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:$(1039,1,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:$(1040,1,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:$(1042,1,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:$(1044,1,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:$(1046,1,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:$(1047,1,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:$(1048,1,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:$(1049,1,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:$(1051,1,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:$(1052,1,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:$(1053,1,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:$(1054,1,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:$(1055,1,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055","Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:$(1056,1,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1058,1,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:$(1059,1,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:$(1060,1,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:$(1061,1,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:$(1062,1,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:$(1063,1,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:$(1064,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:$(1065,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065","The return type of an async function or method must be the global Promise type."),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:$(1066,1,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:$(1068,1,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:$(1069,1,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:$(1070,1,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:$(1071,1,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:$(1079,1,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:$(1084,1,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),_0_modifier_cannot_appear_on_a_constructor_declaration:$(1089,1,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:$(1090,1,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:$(1091,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:$(1092,1,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:$(1093,1,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:$(1094,1,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:$(1095,1,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:$(1096,1,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:$(1097,1,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:$(1098,1,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:$(1099,1,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:$(1100,1,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:$(1101,1,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:$(1102,1,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1103,1,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:$(1104,1,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:$(1105,1,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:$(1106,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:$(1107,1,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:$(1108,1,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:$(1109,1,"Expression_expected_1109","Expression expected."),Type_expected:$(1110,1,"Type_expected_1110","Type expected."),Private_field_0_must_be_declared_in_an_enclosing_class:$(1111,1,"Private_field_0_must_be_declared_in_an_enclosing_class_1111","Private field '{0}' must be declared in an enclosing class."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:$(1113,1,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:$(1114,1,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:$(1115,1,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:$(1116,1,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name:$(1117,1,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:$(1118,1,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:$(1119,1,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:$(1120,1,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_Use_the_syntax_0:$(1121,1,"Octal_literals_are_not_allowed_Use_the_syntax_0_1121","Octal literals are not allowed. Use the syntax '{0}'."),Variable_declaration_list_cannot_be_empty:$(1123,1,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:$(1124,1,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:$(1125,1,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:$(1126,1,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:$(1127,1,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:$(1128,1,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:$(1129,1,"Statement_expected_1129","Statement expected."),case_or_default_expected:$(1130,1,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:$(1131,1,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:$(1132,1,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:$(1134,1,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:$(1135,1,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:$(1136,1,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:$(1137,1,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:$(1138,1,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:$(1139,1,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:$(1140,1,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:$(1141,1,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:$(1142,1,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:$(1144,1,"or_expected_1144","'{' or ';' expected."),or_JSX_element_expected:$(1145,1,"or_JSX_element_expected_1145","'{' or JSX element expected."),Declaration_expected:$(1146,1,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:$(1147,1,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:$(1148,1,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:$(1149,1,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),_0_declarations_must_be_initialized:$(1155,1,"_0_declarations_must_be_initialized_1155","'{0}' declarations must be initialized."),_0_declarations_can_only_be_declared_inside_a_block:$(1156,1,"_0_declarations_can_only_be_declared_inside_a_block_1156","'{0}' declarations can only be declared inside a block."),Unterminated_template_literal:$(1160,1,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:$(1161,1,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:$(1162,1,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:$(1163,1,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:$(1164,1,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1165,1,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:$(1166,1,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1168,1,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1169,1,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1170,1,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:$(1171,1,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:$(1172,1,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:$(1173,1,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:$(1174,1,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:$(1175,1,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:$(1176,1,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:$(1177,1,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:$(1178,1,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:$(1179,1,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:$(1180,1,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:$(1181,1,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:$(1182,1,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:$(1183,1,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:$(1184,1,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:$(1185,1,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:$(1186,1,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:$(1187,1,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:$(1188,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:$(1189,1,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:$(1190,1,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:$(1191,1,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:$(1192,1,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:$(1193,1,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:$(1194,1,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:$(1195,1,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:$(1196,1,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:$(1197,1,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:$(1198,1,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:$(1199,1,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:$(1200,1,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:$(1202,1,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:$(1203,1,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:$(1205,1,"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205","Re-exporting a type when '{0}' is enabled requires using 'export type'."),Decorators_are_not_valid_here:$(1206,1,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:$(1207,1,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:$(1209,1,"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209","Invalid optional chain from new expression. Did you mean to call '{0}()'?"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:$(1210,1,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:$(1211,1,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:$(1212,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:$(1213,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:$(1214,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:$(1215,1,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:$(1216,1,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:$(1218,1,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Generators_are_not_allowed_in_an_ambient_context:$(1221,1,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:$(1222,1,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:$(1223,1,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:$(1224,1,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:$(1225,1,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:$(1226,1,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:$(1227,1,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:$(1228,1,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:$(1229,1,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:$(1230,1,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1231,1,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1232,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1233,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:$(1234,1,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:$(1235,1,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:$(1236,1,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:$(1237,1,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:$(1238,1,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:$(1239,1,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:$(1240,1,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:$(1241,1,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:$(1242,1,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:$(1243,1,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:$(1244,1,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:$(1245,1,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:$(1246,1,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:$(1247,1,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:$(1248,1,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:$(1249,1,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:$(1250,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:$(1251,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:$(1252,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode."),Abstract_properties_can_only_appear_within_an_abstract_class:$(1253,1,"Abstract_properties_can_only_appear_within_an_abstract_class_1253","Abstract properties can only appear within an abstract class."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:$(1254,1,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:$(1255,1,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:$(1257,1,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1258,1,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:$(1259,1,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:$(1260,1,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:$(1261,1,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:$(1262,1,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:$(1263,1,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:$(1264,1,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:$(1265,1,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:$(1266,1,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:$(1267,1,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:$(1268,1,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:$(1269,1,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269","Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),Decorator_function_return_type_0_is_not_assignable_to_type_1:$(1270,1,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:$(1271,1,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:$(1272,1,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:$(1273,1,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:$(1274,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),accessor_modifier_can_only_appear_on_a_property_declaration:$(1275,1,"accessor_modifier_can_only_appear_on_a_property_declaration_1275","'accessor' modifier can only appear on a property declaration."),An_accessor_property_cannot_be_declared_optional:$(1276,1,"An_accessor_property_cannot_be_declared_optional_1276","An 'accessor' property cannot be declared optional."),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:$(1277,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277","'{0}' modifier can only appear on a type parameter of a function, method or class"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:$(1278,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278","The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:$(1279,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279","The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:$(1280,1,"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280","Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:$(1281,1,"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281","Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1282,1,"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282","An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1283,1,"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283","An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1284,1,"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284","An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1285,1,"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285","An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1286,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286","ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1287,1,"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287","A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:$(1288,1,"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288","An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1289,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1290,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1291,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1292,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:$(1293,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293","ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'."),with_statements_are_not_allowed_in_an_async_function_block:$(1300,1,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1308,1,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:$(1309,1,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:$(1312,1,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:$(1313,1,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:$(1314,1,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:$(1315,1,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:$(1316,1,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:$(1317,1,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:$(1318,1,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:$(1319,1,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1320,1,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1321,1,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1322,1,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:$(1323,1,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodenext_or_preserve:$(1324,1,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodene_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'nodenext', or 'preserve'."),Argument_of_dynamic_import_cannot_be_spread_element:$(1325,1,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:$(1326,1,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),String_literal_with_double_quotes_expected:$(1327,1,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:$(1328,1,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:$(1329,1,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:$(1330,1,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:$(1331,1,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:$(1332,1,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:$(1333,1,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:$(1334,1,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:$(1335,1,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:$(1337,1,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:$(1338,1,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:$(1339,1,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:$(1340,1,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Class_constructor_may_not_be_an_accessor:$(1341,1,"Class_constructor_may_not_be_an_accessor_1341","Class constructor may not be an accessor."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:$(1343,1,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),A_label_is_not_allowed_here:$(1344,1,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:$(1345,1,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:$(1346,1,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:$(1347,1,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:$(1348,1,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:$(1349,1,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:$(1350,3,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:$(1351,1,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:$(1352,1,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:$(1353,1,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:$(1354,1,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:$(1355,1,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:$(1356,1,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:$(1357,1,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:$(1358,1,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:$(1359,1,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Type_0_does_not_satisfy_the_expected_type_1:$(1360,1,"Type_0_does_not_satisfy_the_expected_type_1_1360","Type '{0}' does not satisfy the expected type '{1}'."),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:$(1361,1,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:$(1362,1,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:$(1363,1,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:$(1364,3,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:$(1365,3,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:$(1366,3,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:$(1367,3,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Class_constructor_may_not_be_a_generator:$(1368,1,"Class_constructor_may_not_be_a_generator_1368","Class constructor may not be a generator."),Did_you_mean_0:$(1369,3,"Did_you_mean_0_1369","Did you mean '{0}'?"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1375,1,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:$(1376,3,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:$(1377,3,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1378,1,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:$(1379,1,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:$(1380,1,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:$(1381,1,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:$(1382,1,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1385,1,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1386,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1387,1,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1388,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:$(1389,1,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),_0_is_not_allowed_as_a_parameter_name:$(1390,1,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),An_import_alias_cannot_use_import_type:$(1392,1,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:$(1393,3,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:$(1394,3,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:$(1395,3,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:$(1396,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:$(1397,3,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:$(1398,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:$(1399,3,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:$(1400,3,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:$(1401,3,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:$(1402,3,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:$(1403,3,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:$(1404,3,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:$(1405,3,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:$(1406,3,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:$(1407,3,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:$(1408,3,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:$(1409,3,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:$(1410,3,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:$(1411,3,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:$(1412,3,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:$(1413,3,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:$(1414,3,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:$(1415,3,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:$(1416,3,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:$(1417,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:$(1418,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:$(1419,3,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:$(1420,3,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:$(1421,3,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:$(1422,3,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:$(1423,3,"File_is_library_specified_here_1423","File is library specified here."),Default_library:$(1424,3,"Default_library_1424","Default library"),Default_library_for_target_0:$(1425,3,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:$(1426,3,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:$(1427,3,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:$(1428,3,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:$(1429,3,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:$(1430,3,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1431,1,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1432,1,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:$(1433,1,"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433","Neither decorators nor modifiers may be applied to 'this' parameters."),Unexpected_keyword_or_identifier:$(1434,1,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:$(1435,1,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:$(1436,1,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:$(1437,1,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:$(1438,1,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:$(1439,1,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:$(1440,1,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:$(1441,1,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:$(1442,1,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:$(1443,1,"Module_declaration_names_may_only_use_or_quoted_strings_1443",`Module declaration names may only use ' or " quoted strings.`),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:$(1448,1,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:$(1449,3,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:$(1450,3,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional set of attributes as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:$(1451,1,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),resolution_mode_should_be_either_require_or_import:$(1453,1,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:$(1454,1,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:$(1455,1,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1456,1,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:$(1457,3,"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457","Matched by default include pattern '**/*'"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:$(1458,3,"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458",`File is ECMAScript module because '{0}' has field "type" with value "module"`),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:$(1459,3,"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459",`File is CommonJS module because '{0}' has field "type" whose value is not "module"`),File_is_CommonJS_module_because_0_does_not_have_field_type:$(1460,3,"File_is_CommonJS_module_because_0_does_not_have_field_type_1460",`File is CommonJS module because '{0}' does not have field "type"`),File_is_CommonJS_module_because_package_json_was_not_found:$(1461,3,"File_is_CommonJS_module_because_package_json_was_not_found_1461","File is CommonJS module because 'package.json' was not found"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:$(1463,1,"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463","'resolution-mode' is the only valid key for type import attributes."),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1464,1,"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464","Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:$(1470,1,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:$(1471,1,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),catch_or_finally_expected:$(1472,1,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1473,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1474,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:$(1475,3,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:$(1476,3,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:$(1477,1,"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477","An instantiation expression cannot be followed by a property access."),Identifier_or_string_literal_expected:$(1478,1,"Identifier_or_string_literal_expected_1478","Identifier or string literal expected."),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:$(1479,1,"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479",`The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:$(1480,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480",'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:$(1481,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481",`To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:$(1482,3,"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482",'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:$(1483,3,"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483",'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1484,1,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484","'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1485,1,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),Decorator_used_before_export_here:$(1486,1,"Decorator_used_before_export_here_1486","Decorator used before 'export' here."),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:$(1487,1,"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487","Octal escape sequences are not allowed. Use the syntax '{0}'."),Escape_sequence_0_is_not_allowed:$(1488,1,"Escape_sequence_0_is_not_allowed_1488","Escape sequence '{0}' is not allowed."),Decimals_with_leading_zeros_are_not_allowed:$(1489,1,"Decimals_with_leading_zeros_are_not_allowed_1489","Decimals with leading zeros are not allowed."),File_appears_to_be_binary:$(1490,1,"File_appears_to_be_binary_1490","File appears to be binary."),_0_modifier_cannot_appear_on_a_using_declaration:$(1491,1,"_0_modifier_cannot_appear_on_a_using_declaration_1491","'{0}' modifier cannot appear on a 'using' declaration."),_0_declarations_may_not_have_binding_patterns:$(1492,1,"_0_declarations_may_not_have_binding_patterns_1492","'{0}' declarations may not have binding patterns."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:$(1493,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493","The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:$(1494,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494","The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),_0_modifier_cannot_appear_on_an_await_using_declaration:$(1495,1,"_0_modifier_cannot_appear_on_an_await_using_declaration_1495","'{0}' modifier cannot appear on an 'await using' declaration."),Identifier_string_literal_or_number_literal_expected:$(1496,1,"Identifier_string_literal_or_number_literal_expected_1496","Identifier, string literal, or number literal expected."),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:$(1497,1,"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497","Expression must be enclosed in parentheses to be used as a decorator."),Invalid_syntax_in_decorator:$(1498,1,"Invalid_syntax_in_decorator_1498","Invalid syntax in decorator."),Unknown_regular_expression_flag:$(1499,1,"Unknown_regular_expression_flag_1499","Unknown regular expression flag."),Duplicate_regular_expression_flag:$(1500,1,"Duplicate_regular_expression_flag_1500","Duplicate regular expression flag."),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:$(1501,1,"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501","This regular expression flag is only available when targeting '{0}' or later."),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:$(1502,1,"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502","The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:$(1503,1,"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503","Named capturing groups are only available when targeting 'ES2018' or later."),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:$(1504,1,"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504","Subpattern flags must be present when there is a minus sign."),Incomplete_quantifier_Digit_expected:$(1505,1,"Incomplete_quantifier_Digit_expected_1505","Incomplete quantifier. Digit expected."),Numbers_out_of_order_in_quantifier:$(1506,1,"Numbers_out_of_order_in_quantifier_1506","Numbers out of order in quantifier."),There_is_nothing_available_for_repetition:$(1507,1,"There_is_nothing_available_for_repetition_1507","There is nothing available for repetition."),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:$(1508,1,"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508","Unexpected '{0}'. Did you mean to escape it with backslash?"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:$(1509,1,"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509","This regular expression flag cannot be toggled within a subpattern."),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:$(1510,1,"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510","'\\k' must be followed by a capturing group name enclosed in angle brackets."),q_is_only_available_inside_character_class:$(1511,1,"q_is_only_available_inside_character_class_1511","'\\q' is only available inside character class."),c_must_be_followed_by_an_ASCII_letter:$(1512,1,"c_must_be_followed_by_an_ASCII_letter_1512","'\\c' must be followed by an ASCII letter."),Undetermined_character_escape:$(1513,1,"Undetermined_character_escape_1513","Undetermined character escape."),Expected_a_capturing_group_name:$(1514,1,"Expected_a_capturing_group_name_1514","Expected a capturing group name."),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:$(1515,1,"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515","Named capturing groups with the same name must be mutually exclusive to each other."),A_character_class_range_must_not_be_bounded_by_another_character_class:$(1516,1,"A_character_class_range_must_not_be_bounded_by_another_character_class_1516","A character class range must not be bounded by another character class."),Range_out_of_order_in_character_class:$(1517,1,"Range_out_of_order_in_character_class_1517","Range out of order in character class."),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:$(1518,1,"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518","Anything that would possibly match more than a single character is invalid inside a negated character class."),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:$(1519,1,"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519","Operators must not be mixed within a character class. Wrap it in a nested class instead."),Expected_a_class_set_operand:$(1520,1,"Expected_a_class_set_operand_1520","Expected a class set operand."),q_must_be_followed_by_string_alternatives_enclosed_in_braces:$(1521,1,"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521","'\\q' must be followed by string alternatives enclosed in braces."),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:$(1522,1,"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522","A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),Expected_a_Unicode_property_name:$(1523,1,"Expected_a_Unicode_property_name_1523","Expected a Unicode property name."),Unknown_Unicode_property_name:$(1524,1,"Unknown_Unicode_property_name_1524","Unknown Unicode property name."),Expected_a_Unicode_property_value:$(1525,1,"Expected_a_Unicode_property_value_1525","Expected a Unicode property value."),Unknown_Unicode_property_value:$(1526,1,"Unknown_Unicode_property_value_1526","Unknown Unicode property value."),Expected_a_Unicode_property_name_or_value:$(1527,1,"Expected_a_Unicode_property_name_or_value_1527","Expected a Unicode property name or value."),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:$(1528,1,"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528","Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),Unknown_Unicode_property_name_or_value:$(1529,1,"Unknown_Unicode_property_name_or_value_1529","Unknown Unicode property name or value."),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1530,1,"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530","Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:$(1531,1,"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531","'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),There_is_no_capturing_group_named_0_in_this_regular_expression:$(1532,1,"There_is_no_capturing_group_named_0_in_this_regular_expression_1532","There is no capturing group named '{0}' in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:$(1533,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533","This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:$(1534,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534","This backreference refers to a group that does not exist. There are no capturing groups in this regular expression."),This_character_cannot_be_escaped_in_a_regular_expression:$(1535,1,"This_character_cannot_be_escaped_in_a_regular_expression_1535","This character cannot be escaped in a regular expression."),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:$(1536,1,"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536","Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead."),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:$(1537,1,"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537","Decimal escape sequences and backreferences are not allowed in a character class."),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1538,1,"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538","Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),A_bigint_literal_cannot_be_used_as_a_property_name:$(1539,1,"A_bigint_literal_cannot_be_used_as_a_property_name_1539","A 'bigint' literal cannot be used as a property name."),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:$(1540,2,"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540","A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1541,1,"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541","Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1542,1,"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542","Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:$(1543,1,"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543",`Importing a JSON file into an ECMAScript module requires a 'type: "json"' import attribute when 'module' is set to '{0}'.`),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:$(1544,1,"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544","Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),The_types_of_0_are_incompatible_between_these_types:$(2200,1,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:$(2201,1,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:$(2202,1,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:$(2203,1,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2204,1,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2205,1,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:$(2206,1,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:$(2207,1,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),This_type_parameter_might_need_an_extends_0_constraint:$(2208,1,"This_type_parameter_might_need_an_extends_0_constraint_2208","This type parameter might need an `extends {0}` constraint."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2209,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2210,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),Add_extends_constraint:$(2211,3,"Add_extends_constraint_2211","Add `extends` constraint."),Add_extends_constraint_to_all_type_parameters:$(2212,3,"Add_extends_constraint_to_all_type_parameters_2212","Add `extends` constraint to all type parameters"),Duplicate_identifier_0:$(2300,1,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2301,1,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:$(2302,1,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:$(2303,1,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:$(2304,1,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:$(2305,1,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:$(2306,1,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:$(2307,1,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:$(2308,1,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:$(2309,1,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:$(2310,1,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:$(2311,1,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2312,1,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:$(2313,1,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:$(2314,1,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:$(2315,1,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:$(2316,1,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:$(2317,1,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:$(2318,1,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:$(2319,1,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:$(2320,1,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:$(2321,1,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:$(2322,1,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:$(2323,1,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:$(2324,1,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:$(2325,1,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:$(2326,1,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:$(2327,1,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:$(2328,1,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:$(2329,1,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:$(2330,1,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:$(2331,1,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:$(2332,1,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_a_static_property_initializer:$(2334,1,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:$(2335,1,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:$(2336,1,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:$(2337,1,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:$(2338,1,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:$(2339,1,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:$(2340,1,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:$(2341,1,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:$(2343,1,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:$(2344,1,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:$(2345,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Untyped_function_calls_may_not_accept_type_arguments:$(2347,1,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:$(2348,1,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:$(2349,1,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:$(2350,1,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:$(2351,1,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:$(2352,1,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:$(2353,1,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:$(2354,1,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:$(2355,1,"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:$(2356,1,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:$(2357,1,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:$(2358,1,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:$(2359,1,"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359","The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2362,1,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2363,1,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:$(2364,1,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:$(2365,1,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:$(2366,1,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:$(2367,1,"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367","This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),Type_parameter_name_cannot_be_0:$(2368,1,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:$(2369,1,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:$(2370,1,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:$(2371,1,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:$(2372,1,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:$(2373,1,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:$(2374,1,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2375,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2376,1,"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:$(2377,1,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:$(2378,1,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2379,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),Overload_signatures_must_all_be_exported_or_non_exported:$(2383,1,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:$(2384,1,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:$(2385,1,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:$(2386,1,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:$(2387,1,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:$(2388,1,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:$(2389,1,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:$(2390,1,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:$(2391,1,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:$(2392,1,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:$(2393,1,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:$(2394,1,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:$(2395,1,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:$(2396,1,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:$(2397,1,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:$(2398,1,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:$(2399,1,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:$(2400,1,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2401,1,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:$(2402,1,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:$(2403,1,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:$(2404,1,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:$(2405,1,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:$(2406,1,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:$(2407,1,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:$(2408,1,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:$(2409,1,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:$(2410,1,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:$(2412,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:$(2411,1,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:$(2413,1,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:$(2414,1,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:$(2415,1,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:$(2416,1,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:$(2417,1,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:$(2418,1,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:$(2419,1,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:$(2420,1,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2422,1,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:$(2423,1,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:$(2425,1,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:$(2426,1,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:$(2427,1,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:$(2428,1,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:$(2430,1,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:$(2431,1,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:$(2432,1,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:$(2433,1,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:$(2434,1,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:$(2435,1,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:$(2436,1,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:$(2437,1,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:$(2438,1,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:$(2439,1,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:$(2440,1,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:$(2441,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:$(2442,1,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:$(2443,1,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:$(2444,1,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:$(2445,1,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:$(2446,1,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:$(2447,1,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:$(2448,1,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:$(2449,1,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:$(2450,1,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:$(2451,1,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:$(2452,1,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),Variable_0_is_used_before_being_assigned:$(2454,1,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_alias_0_circularly_references_itself:$(2456,1,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:$(2457,1,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:$(2458,1,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:$(2459,1,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:$(2460,1,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:$(2461,1,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:$(2462,1,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:$(2463,1,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:$(2464,1,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:$(2465,1,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:$(2466,1,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:$(2467,1,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:$(2468,1,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:$(2469,1,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:$(2472,1,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:$(2473,1,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_must_be_constant_expressions:$(2474,1,"const_enum_member_initializers_must_be_constant_expressions_2474","const enum member initializers must be constant expressions."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:$(2475,1,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:$(2476,1,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:$(2477,1,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:$(2478,1,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:$(2480,1,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:$(2481,1,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:$(2483,1,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:$(2484,1,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:$(2487,1,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2488,1,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:$(2489,1,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:$(2490,1,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:$(2491,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:$(2492,1,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:$(2493,1,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:$(2494,1,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:$(2495,1,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:$(2496,1,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496","The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:$(2497,1,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:$(2498,1,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2499,1,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2500,1,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:$(2501,1,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:$(2502,1,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:$(2503,1,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:$(2504,1,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:$(2505,1,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:$(2506,1,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:$(2507,1,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:$(2508,1,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2509,1,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:$(2510,1,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:$(2511,1,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:$(2512,1,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:$(2513,1,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),A_tuple_type_cannot_be_indexed_with_a_negative_value:$(2514,1,"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514","A tuple type cannot be indexed with a negative value."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:$(2515,1,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:$(2516,1,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:$(2517,1,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:$(2518,1,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:$(2519,1,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:$(2520,1,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:$(2522,1,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522","The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:$(2523,1,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:$(2524,1,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:$(2526,1,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:$(2527,1,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:$(2528,1,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:$(2529,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:$(2530,1,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:$(2531,1,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:$(2532,1,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:$(2533,1,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:$(2534,1,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Type_0_cannot_be_used_to_index_type_1:$(2536,1,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:$(2537,1,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:$(2538,1,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:$(2539,1,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:$(2540,1,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),Index_signature_in_type_0_only_permits_reading:$(2542,1,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:$(2543,1,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:$(2544,1,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:$(2545,1,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:$(2547,1,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2548,1,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2549,1,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:$(2550,1,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:$(2551,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:$(2552,1,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:$(2553,1,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:$(2554,1,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:$(2555,1,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:$(2556,1,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:$(2558,1,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:$(2559,1,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:$(2560,1,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:$(2561,1,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:$(2562,1,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:$(2563,1,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:$(2564,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:$(2565,1,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:$(2566,1,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:$(2567,1,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:$(2568,1,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Could_not_find_name_0_Did_you_mean_1:$(2570,1,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:$(2571,1,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),A_rest_element_type_must_be_an_array_type:$(2574,1,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:$(2575,1,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:$(2576,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:$(2577,1,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:$(2578,1,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:$(2580,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:$(2581,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:$(2582,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:$(2583,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:$(2584,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:$(2585,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Cannot_assign_to_0_because_it_is_a_constant:$(2588,1,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:$(2589,1,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:$(2590,1,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:$(2591,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:$(2592,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:$(2593,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:$(2594,1,"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594","This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:$(2595,1,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2596,1,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:$(2597,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2598,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:$(2602,1,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:$(2603,1,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:$(2604,1,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:$(2606,1,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:$(2607,1,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:$(2608,1,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:$(2609,1,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:$(2610,1,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:$(2611,1,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:$(2612,1,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:$(2613,1,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:$(2614,1,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:$(2615,1,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:$(2616,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2617,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:$(2618,1,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:$(2619,1,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:$(2620,1,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:$(2621,1,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:$(2623,1,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:$(2624,1,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:$(2625,1,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:$(2626,1,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:$(2627,1,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:$(2628,1,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:$(2629,1,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:$(2630,1,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:$(2631,1,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:$(2632,1,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:$(2633,1,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:$(2634,1,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:$(2635,1,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:$(2636,1,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:$(2637,1,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:$(2638,1,"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638","Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),React_components_cannot_include_JSX_namespace_names:$(2639,1,"React_components_cannot_include_JSX_namespace_names_2639","React components cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:$(2649,1,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:$(2650,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650","Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:$(2651,1,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:$(2652,1,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:$(2653,1,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:$(2654,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:$(2655,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:$(2656,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656","Non-abstract class expression is missing implementations for the following members of '{0}': {1}."),JSX_expressions_must_have_one_parent_element:$(2657,1,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:$(2658,1,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:$(2659,1,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:$(2660,1,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:$(2661,1,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:$(2662,1,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:$(2663,1,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:$(2664,1,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:$(2665,1,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:$(2666,1,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:$(2667,1,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:$(2668,1,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:$(2669,1,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:$(2670,1,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:$(2671,1,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:$(2672,1,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:$(2673,1,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:$(2674,1,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:$(2675,1,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:$(2676,1,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:$(2677,1,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:$(2678,1,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:$(2679,1,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:$(2680,1,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:$(2681,1,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:$(2683,1,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:$(2684,1,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:$(2685,1,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:$(2686,1,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:$(2687,1,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:$(2688,1,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:$(2689,1,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:$(2690,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:$(2692,1,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:$(2693,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:$(2694,1,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:$(2695,1,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:$(2696,1,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2697,1,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:$(2698,1,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:$(2699,1,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:$(2700,1,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:$(2701,1,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:$(2702,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:$(2703,1,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:$(2704,1,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2705,1,"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705","An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:$(2706,1,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:$(2707,1,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:$(2708,1,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:$(2709,1,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:$(2710,1,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2711,1,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2712,1,"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712","A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:$(2713,1,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:$(2714,1,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:$(2715,1,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:$(2716,1,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:$(2717,1,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:$(2718,1,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:$(2719,1,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:$(2720,1,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:$(2721,1,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:$(2722,1,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:$(2723,1,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:$(2724,1,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:$(2725,1,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:$(2726,1,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:$(2727,1,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:$(2728,3,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:$(2729,1,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:$(2730,1,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:$(2731,1,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:$(2732,1,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:$(2733,1,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:$(2734,1,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:$(2735,1,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:$(2736,1,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:$(2737,1,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:$(2738,3,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:$(2739,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:$(2740,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:$(2741,1,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:$(2742,1,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:$(2743,1,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:$(2744,1,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:$(2745,1,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:$(2746,1,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:$(2747,1,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_0_is_enabled:$(2748,1,"Cannot_access_ambient_const_enums_when_0_is_enabled_2748","Cannot access ambient const enums when '{0}' is enabled."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:$(2749,1,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:$(2750,1,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:$(2751,1,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:$(2752,1,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:$(2753,1,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:$(2754,1,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:$(2755,1,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:$(2756,1,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:$(2757,1,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2758,1,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:$(2759,1,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:$(2760,1,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:$(2761,1,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2762,1,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:$(2763,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:$(2764,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:$(2765,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:$(2766,1,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:$(2767,1,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:$(2768,1,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:$(2769,1,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:$(2770,1,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:$(2771,1,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:$(2772,1,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:$(2773,1,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:$(2774,1,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:$(2775,1,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:$(2776,1,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:$(2777,1,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:$(2778,1,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:$(2779,1,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:$(2780,1,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:$(2781,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:$(2782,3,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:$(2783,1,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:$(2784,1,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:$(2785,1,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:$(2786,1,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:$(2787,1,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:$(2788,1,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:$(2789,1,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:$(2790,1,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:$(2791,1,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:$(2792,1,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:$(2793,1,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:$(2794,1,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:$(2795,1,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:$(2796,1,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:$(2797,1,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:$(2798,1,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:$(2799,1,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:$(2800,1,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:$(2801,1,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:$(2802,1,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:$(2803,1,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:$(2804,1,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Private_accessor_was_defined_without_a_getter:$(2806,1,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:$(2807,1,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:$(2808,1,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:$(2809,1,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:$(2810,1,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),Initializer_for_property_0:$(2811,1,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:$(2812,1,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:$(2813,1,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:$(2814,1,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers:$(2815,1,"arguments_cannot_be_referenced_in_property_initializers_2815","'arguments' cannot be referenced in property initializers."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:$(2816,1,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:$(2817,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:$(2818,1,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:$(2819,1,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:$(2820,1,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2821,1,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2821","Import assertions are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:$(2822,1,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2823,1,"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2823","Import attributes are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Cannot_find_namespace_0_Did_you_mean_1:$(2833,1,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:$(2834,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:$(2835,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2836,1,"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836","Import assertions are not allowed on statements that compile to CommonJS 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:$(2837,1,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:$(2838,1,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:$(2839,1,"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839","This condition will always return '{0}' since JavaScript compares objects by reference, not value."),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:$(2840,1,"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840","An interface cannot extend a primitive type like '{0}'. It can only extend other named object types."),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:$(2842,1,"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842","'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:$(2843,1,"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843","We can only write a type for '{0}' by adding a type for the entire parameter here."),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2844,1,"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844","Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),This_condition_will_always_return_0:$(2845,1,"This_condition_will_always_return_0_2845","This condition will always return '{0}'."),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:$(2846,1,"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846","A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:$(2848,1,"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848","The right-hand side of an 'instanceof' expression must not be an instantiation expression."),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:$(2849,1,"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849","Target signature provides too few arguments. Expected {0} or more, but got {1}."),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:$(2850,1,"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850","The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:$(2851,1,"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851","The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(2852,1,"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852","'await using' statements are only allowed within async functions and at the top levels of modules."),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(2853,1,"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853","'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(2854,1,"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854","Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:$(2855,1,"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855","Class field '{0}' defined by the parent class is not accessible in the child class via super."),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2856,1,"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856","Import attributes are not allowed on statements that compile to CommonJS 'require' calls."),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:$(2857,1,"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857","Import attributes cannot be used with type-only imports or exports."),Import_attribute_values_must_be_string_literal_expressions:$(2858,1,"Import_attribute_values_must_be_string_literal_expressions_2858","Import attribute values must be string literal expressions."),Excessive_complexity_comparing_types_0_and_1:$(2859,1,"Excessive_complexity_comparing_types_0_and_1_2859","Excessive complexity comparing types '{0}' and '{1}'."),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:$(2860,1,"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860","The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:$(2861,1,"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861","An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),Type_0_is_generic_and_can_only_be_indexed_for_reading:$(2862,1,"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862","Type '{0}' is generic and can only be indexed for reading."),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:$(2863,1,"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863","A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:$(2864,1,"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864","A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2865,1,"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865","Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2866,1,"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866","Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:$(2867,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:$(2868,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig."),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:$(2869,1,"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869","Right operand of ?? is unreachable because the left operand is never nullish."),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:$(2870,1,"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870","This binary expression is never nullish. Are you missing parentheses?"),This_expression_is_always_nullish:$(2871,1,"This_expression_is_always_nullish_2871","This expression is always nullish."),This_kind_of_expression_is_always_truthy:$(2872,1,"This_kind_of_expression_is_always_truthy_2872","This kind of expression is always truthy."),This_kind_of_expression_is_always_falsy:$(2873,1,"This_kind_of_expression_is_always_falsy_2873","This kind of expression is always falsy."),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:$(2874,1,"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874","This JSX tag requires '{0}' to be in scope, but it could not be found."),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:$(2875,1,"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875","This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed."),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:$(2876,1,"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to "{0}".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:$(2877,1,"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877","This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path."),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:$(2878,1,"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878","This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files."),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:$(2879,1,"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879","Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),Import_declaration_0_is_using_private_name_1:$(4e3,1,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:$(4002,1,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:$(4004,1,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4006,1,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4008,1,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4010,1,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4012,1,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4014,1,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4016,1,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4019,1,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4020,1,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:$(4021,1,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:$(4022,1,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4023,1,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:$(4024,1,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:$(4025,1,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4026,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4027,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:$(4028,1,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4029,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4030,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:$(4031,1,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4032,1,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:$(4033,1,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4034,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4035,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4036,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4037,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4038,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4039,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4040,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4041,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4042,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4043,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4044,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:$(4045,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4046,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:$(4047,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4048,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:$(4049,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4050,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4051,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:$(4052,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4053,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4054,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:$(4055,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4056,1,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:$(4057,1,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4058,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:$(4059,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:$(4060,1,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4061,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4062,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:$(4063,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4064,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4065,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4066,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4067,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4068,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4069,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4070,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4071,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4072,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4073,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4074,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4075,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4076,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:$(4077,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4078,1,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:$(4081,1,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:$(4082,1,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:$(4083,1,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:$(4084,1,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:$(4085,1,"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085","Extends clause for inferred type '{0}' has or is using private name '{1}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4091,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:$(4092,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:$(4094,1,"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094","Property '{0}' of exported anonymous class type may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4095,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4096,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:$(4097,1,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4098,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4099,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:$(4100,1,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4101,1,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:$(4102,1,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:$(4103,1,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:$(4104,1,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:$(4105,1,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:$(4106,1,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:$(4107,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4108,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:$(4109,1,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:$(4110,1,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:$(4111,1,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:$(4112,1,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:$(4113,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:$(4114,1,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:$(4115,1,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:$(4116,1,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4117,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:$(4118,1,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4119,1,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4120,1,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:$(4121,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:$(4122,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4123,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:$(4124,1,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:$(4125,1,"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125","Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given."),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:$(4126,1,"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126","One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value."),The_current_host_does_not_support_the_0_option:$(5001,1,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:$(5009,1,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5010,1,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:$(5012,1,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Unknown_compiler_option_0:$(5023,1,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:$(5024,1,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:$(5025,1,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:$(5033,1,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:$(5042,1,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:$(5047,1,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:$(5051,1,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:$(5052,1,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:$(5053,1,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:$(5054,1,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:$(5055,1,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:$(5056,1,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:$(5057,1,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:$(5058,1,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:$(5059,1,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:$(5061,1,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:$(5062,1,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:$(5063,1,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:$(5064,1,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5065,1,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:$(5066,1,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:$(5067,1,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:$(5068,1,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:$(5069,1,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:$(5070,1,"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070","Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:$(5071,1,"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071","Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'."),Unknown_build_option_0:$(5072,1,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:$(5073,1,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:$(5074,1,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:$(5075,1,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:$(5076,1,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:$(5077,1,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:$(5078,1,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:$(5079,1,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:$(5080,1,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:$(5081,1,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:$(5082,1,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:$(5083,1,"Cannot_read_file_0_5083","Cannot read file '{0}'."),A_tuple_member_cannot_be_both_optional_and_rest:$(5085,1,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:$(5086,1,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:$(5087,1,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:$(5088,1,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:$(5089,1,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:$(5090,1,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:$(5091,1,"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),The_root_value_of_a_0_file_must_be_an_object:$(5092,1,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:$(5093,1,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:$(5094,1,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:$(5095,1,"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095","Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:$(5096,1,"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096","Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:$(5097,1,"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097","An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:$(5098,1,"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098","Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:$(5101,1,"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101",`Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),Option_0_has_been_removed_Please_remove_it_from_your_configuration:$(5102,1,"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102","Option '{0}' has been removed. Please remove it from your configuration."),Invalid_value_for_ignoreDeprecations:$(5103,1,"Invalid_value_for_ignoreDeprecations_5103","Invalid value for '--ignoreDeprecations'."),Option_0_is_redundant_and_cannot_be_specified_with_option_1:$(5104,1,"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104","Option '{0}' is redundant and cannot be specified with option '{1}'."),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:$(5105,1,"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105","Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),Use_0_instead:$(5106,3,"Use_0_instead_5106","Use '{0}' instead."),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:$(5107,1,"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107",`Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:$(5108,1,"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108","Option '{0}={1}' has been removed. Please remove it from your configuration."),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:$(5109,1,"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109","Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:$(5110,1,"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110","Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:$(6e3,3,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:$(6001,3,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:$(6002,3,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:$(6004,3,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:$(6005,3,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:$(6006,3,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:$(6007,3,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:$(6008,3,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:$(6009,3,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:$(6010,3,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:$(6011,3,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:$(6012,3,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:$(6013,3,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:$(6014,3,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:$(6015,3,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:$(6016,3,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:$(6017,3,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:$(6019,3,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:$(6020,3,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:$(6023,3,"Syntax_Colon_0_6023","Syntax: {0}"),options:$(6024,3,"options_6024","options"),file:$(6025,3,"file_6025","file"),Examples_Colon_0:$(6026,3,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:$(6027,3,"Options_Colon_6027","Options:"),Version_0:$(6029,3,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:$(6030,3,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:$(6031,3,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:$(6032,3,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:$(6034,3,"KIND_6034","KIND"),FILE:$(6035,3,"FILE_6035","FILE"),VERSION:$(6036,3,"VERSION_6036","VERSION"),LOCATION:$(6037,3,"LOCATION_6037","LOCATION"),DIRECTORY:$(6038,3,"DIRECTORY_6038","DIRECTORY"),STRATEGY:$(6039,3,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:$(6040,3,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Errors_Files:$(6041,3,"Errors_Files_6041","Errors Files"),Generates_corresponding_map_file:$(6043,3,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:$(6044,1,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:$(6045,1,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:$(6046,1,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:$(6048,1,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unable_to_open_file_0:$(6050,1,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:$(6051,1,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:$(6052,3,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:$(6053,1,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:$(6054,1,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:$(6055,3,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:$(6056,3,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:$(6058,3,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:$(6059,1,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:$(6060,3,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:$(6061,3,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:$(6064,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:$(6065,3,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:$(6066,3,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:$(6070,3,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:$(6071,3,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:$(6072,3,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:$(6073,3,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:$(6074,3,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:$(6075,3,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:$(6076,3,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:$(6077,3,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:$(6078,3,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:$(6079,3,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:$(6080,3,"Specify_JSX_code_generation_6080","Specify JSX code generation."),Only_amd_and_system_modules_are_supported_alongside_0:$(6082,1,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:$(6083,3,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:$(6084,3,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:$(6085,3,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:$(6086,3,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:$(6087,3,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:$(6088,3,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:$(6089,3,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:$(6090,3,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:$(6091,3,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:$(6092,3,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:$(6093,3,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:$(6094,3,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:$(6095,3,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095","Loading module as file / folder, candidate module location '{0}', target file types: {1}."),File_0_does_not_exist:$(6096,3,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exists_use_it_as_a_name_resolution_result:$(6097,3,"File_0_exists_use_it_as_a_name_resolution_result_6097","File '{0}' exists - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:$(6098,3,"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098","Loading module '{0}' from 'node_modules' folder, target file types: {1}."),Found_package_json_at_0:$(6099,3,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:$(6100,3,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:$(6101,3,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:$(6102,3,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:$(6104,3,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:$(6105,3,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:$(6106,3,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:$(6107,3,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:$(6108,3,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:$(6109,3,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:$(6110,3,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:$(6111,3,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:$(6112,3,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:$(6113,3,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:$(6114,1,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:$(6115,3,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:$(6116,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:$(6119,3,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:$(6120,3,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:$(6121,3,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:$(6122,3,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:$(6123,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:$(6124,3,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:$(6125,3,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:$(6126,3,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:$(6127,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:$(6128,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:$(6130,3,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:$(6131,1,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:$(6132,3,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:$(6133,1,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:$(6134,3,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:$(6135,3,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:$(6136,3,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:$(6137,1,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:$(6138,1,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:$(6139,3,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:$(6140,1,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:$(6141,3,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:$(6142,1,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:$(6144,3,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:$(6146,3,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:$(6147,3,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:$(6148,3,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:$(6149,3,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:$(6150,3,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:$(6151,3,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:$(6152,3,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:$(6153,3,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:$(6154,3,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:$(6155,3,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:$(6156,3,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:$(6157,3,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:$(6158,3,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:$(6159,3,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:$(6160,3,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:$(6161,3,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:$(6162,3,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:$(6163,3,"The_character_set_of_the_input_files_6163","The character set of the input files."),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:$(6164,3,"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164","Skipping module '{0}' that looks like an absolute URI, target file types: {1}."),Do_not_truncate_error_messages:$(6165,3,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:$(6166,3,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:$(6167,3,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:$(6168,3,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:$(6169,3,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:$(6170,3,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:$(6171,3,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:$(6179,3,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'."),Enable_all_strict_type_checking_options:$(6180,3,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),Scoped_package_detected_looking_in_0:$(6182,3,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6183,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6184,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:$(6186,3,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:$(6187,3,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:$(6188,1,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:$(6189,1,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:$(6191,3,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:$(6192,1,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:$(6193,3,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:$(6194,3,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:$(6195,3,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:$(6196,1,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:$(6197,3,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:$(6198,1,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:$(6199,1,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:$(6200,1,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:$(6201,3,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:$(6202,1,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:$(6203,3,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:$(6204,3,"and_here_6204","and here."),All_type_parameters_are_unused:$(6205,1,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:$(6206,3,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:$(6207,3,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:$(6208,3,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:$(6209,3,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:$(6210,3,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:$(6211,3,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:$(6212,3,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:$(6213,3,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:$(6214,3,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:$(6215,3,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:$(6216,3,"Found_1_error_6216","Found 1 error."),Found_0_errors:$(6217,3,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:$(6218,3,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:$(6219,3,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:$(6220,3,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:$(6221,3,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:$(6222,3,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:$(6223,3,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:$(6224,3,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:$(6225,3,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:$(6226,3,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:$(6227,3,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:$(6229,1,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:$(6230,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:$(6231,1,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:$(6232,1,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:$(6233,1,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:$(6234,1,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:$(6235,3,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:$(6236,1,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:$(6237,3,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:$(6238,1,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:$(6239,3,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:$(6240,3,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:$(6241,3,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:$(6242,3,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:$(6243,3,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:$(6244,3,"Modules_6244","Modules"),File_Management:$(6245,3,"File_Management_6245","File Management"),Emit:$(6246,3,"Emit_6246","Emit"),JavaScript_Support:$(6247,3,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:$(6248,3,"Type_Checking_6248","Type Checking"),Editor_Support:$(6249,3,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:$(6250,3,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:$(6251,3,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:$(6252,3,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:$(6253,3,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:$(6254,3,"Language_and_Environment_6254","Language and Environment"),Projects:$(6255,3,"Projects_6255","Projects"),Output_Formatting:$(6256,3,"Output_Formatting_6256","Output Formatting"),Completeness:$(6257,3,"Completeness_6257","Completeness"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:$(6258,1,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_0:$(6259,3,"Found_1_error_in_0_6259","Found 1 error in {0}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:$(6260,3,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:$(6261,3,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),File_name_0_has_a_1_extension_looking_up_2_instead:$(6262,3,"File_name_0_has_a_1_extension_looking_up_2_instead_6262","File name '{0}' has a '{1}' extension - looking up '{2}' instead."),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:$(6263,1,"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263","Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:$(6264,3,"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264","Enable importing files with any extension, provided a declaration file is present."),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:$(6265,3,"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265","Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."),Option_0_can_only_be_specified_on_command_line:$(6266,1,"Option_0_can_only_be_specified_on_command_line_6266","Option '{0}' can only be specified on command line."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:$(6270,3,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6271,3,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:$(6272,3,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:$(6273,3,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:$(6274,3,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:$(6275,3,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6276,3,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:$(6277,3,"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277","Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:$(6278,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278",`There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:$(6279,3,"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279","Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:$(6280,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280","There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),package_json_has_a_peerDependencies_field:$(6281,3,"package_json_has_a_peerDependencies_field_6281","'package.json' has a 'peerDependencies' field."),Found_peerDependency_0_with_1_version:$(6282,3,"Found_peerDependency_0_with_1_version_6282","Found peerDependency '{0}' with '{1}' version."),Failed_to_find_peerDependency_0:$(6283,3,"Failed_to_find_peerDependency_0_6283","Failed to find peerDependency '{0}'."),Enable_project_compilation:$(6302,3,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:$(6304,1,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:$(6305,1,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:$(6306,1,"Referenced_project_0_must_have_setting_composite_Colon_true_6306",`Referenced project '{0}' must have setting "composite": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:$(6307,1,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Referenced_project_0_may_not_disable_emit:$(6310,1,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:$(6350,3,"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350","Project '{0}' is out of date because output '{1}' is older than input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:$(6351,3,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:$(6352,3,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:$(6353,3,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:$(6354,3,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:$(6355,3,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:$(6356,3,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:$(6357,3,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:$(6358,3,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:$(6359,3,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),Project_0_is_up_to_date:$(6361,3,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:$(6362,3,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:$(6363,3,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:$(6364,3,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:$(6365,3,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects."),Show_what_would_be_built_or_deleted_if_specified_with_clean:$(6367,3,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:$(6369,1,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:$(6370,1,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:$(6371,3,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:$(6374,3,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:$(6377,1,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Composite_projects_may_not_disable_incremental_compilation:$(6379,1,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:$(6380,3,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:$(6381,3,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:$(6382,3,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:$(6383,3,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6384,3,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:$(6385,2,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:$(6386,3,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:$(6387,2,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:$(6388,3,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:$(6389,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6390,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6391,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:$(6392,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6393,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6394,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6395,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6396,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6397,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6398,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:$(6399,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399","Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:$(6400,3,"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400","Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:$(6401,3,"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401","Project '{0}' is out of date because there was error reading file '{1}'"),Resolving_in_0_mode_with_conditions_1:$(6402,3,"Resolving_in_0_mode_with_conditions_1_6402","Resolving in {0} mode with conditions {1}."),Matched_0_condition_1:$(6403,3,"Matched_0_condition_1_6403","Matched '{0}' condition '{1}'."),Using_0_subpath_1_with_target_2:$(6404,3,"Using_0_subpath_1_with_target_2_6404","Using '{0}' subpath '{1}' with target '{2}'."),Saw_non_matching_condition_0:$(6405,3,"Saw_non_matching_condition_0_6405","Saw non-matching condition '{0}'."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:$(6406,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406","Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:$(6407,3,"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407","Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),Use_the_package_json_exports_field_when_resolving_package_imports:$(6408,3,"Use_the_package_json_exports_field_when_resolving_package_imports_6408","Use the package.json 'exports' field when resolving package imports."),Use_the_package_json_imports_field_when_resolving_imports:$(6409,3,"Use_the_package_json_imports_field_when_resolving_imports_6409","Use the package.json 'imports' field when resolving imports."),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:$(6410,3,"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410","Conditions to set in addition to the resolver-specific defaults when resolving imports."),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:$(6411,3,"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411","`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:$(6412,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412","Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),Entering_conditional_exports:$(6413,3,"Entering_conditional_exports_6413","Entering conditional exports."),Resolved_under_condition_0:$(6414,3,"Resolved_under_condition_0_6414","Resolved under condition '{0}'."),Failed_to_resolve_under_condition_0:$(6415,3,"Failed_to_resolve_under_condition_0_6415","Failed to resolve under condition '{0}'."),Exiting_conditional_exports:$(6416,3,"Exiting_conditional_exports_6416","Exiting conditional exports."),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:$(6417,3,"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417","Searching all ancestor node_modules directories for preferred extensions: {0}."),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:$(6418,3,"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418","Searching all ancestor node_modules directories for fallback extensions: {0}."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:$(6419,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419","Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors."),Project_0_is_out_of_date_because_1:$(6420,3,"Project_0_is_out_of_date_because_1_6420","Project '{0}' is out of date because {1}."),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:$(6421,3,"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421","Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:$(6500,3,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:$(6501,3,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:$(6502,3,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:$(6503,3,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:$(6504,1,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:$(6505,3,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:$(6506,3,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:$(6600,3,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:$(6601,3,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:$(6602,3,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:$(6603,3,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:$(6604,3,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:$(6605,3,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6606,3,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:$(6607,3,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:$(6608,3,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:$(6609,3,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:$(6611,3,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:$(6612,3,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:$(6613,3,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:$(6614,3,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:$(6615,3,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:$(6616,3,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:$(6617,3,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:$(6618,3,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:$(6619,3,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:$(6620,3,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects."),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:$(6621,3,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:$(6622,3,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Only_output_d_ts_files_and_not_JavaScript_files:$(6623,3,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:$(6624,3,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:$(6625,3,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:$(6626,3,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),Filters_results_from_the_include_option:$(6627,3,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:$(6628,3,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:$(6629,3,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_legacy_experimental_decorators:$(6630,3,"Enable_experimental_support_for_legacy_experimental_decorators_6630","Enable experimental support for legacy experimental decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:$(6631,3,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:$(6632,3,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:$(6633,3,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:$(6634,3,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:$(6635,3,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:$(6636,3,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date."),Ensure_that_casing_is_correct_in_imports:$(6637,3,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:$(6638,3,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:$(6639,3,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Skip_building_downstream_projects_on_error_in_upstream_project:$(6640,3,"Skip_building_downstream_projects_on_error_in_upstream_project_6640","Skip building downstream projects on error in upstream project."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:$(6641,3,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:$(6642,3,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:$(6643,3,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:$(6644,3,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:$(6645,3,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:$(6646,3,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:$(6647,3,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:$(6648,3,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:$(6649,3,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:$(6650,3,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:$(6651,3,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:$(6652,3,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:$(6653,3,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:$(6654,3,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:$(6655,3,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:$(6656,3,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),Specify_what_module_code_is_generated:$(6657,3,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:$(6658,3,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:$(6659,3,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:$(6660,3,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:$(6661,3,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like '__extends' in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:$(6662,3,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:$(6663,3,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:$(6664,3,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:$(6665,3,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied 'any' type."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:$(6666,3,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:$(6667,3,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:$(6668,3,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when 'this' is given the type 'any'."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:$(6669,3,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:$(6670,3,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:$(6671,3,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type."),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:$(6672,3,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:$(6673,3,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:$(6674,3,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add 'undefined' to a type when accessed using an index."),Enable_error_reporting_when_local_variables_aren_t_read:$(6675,3,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:$(6676,3,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read."),Deprecated_setting_Use_outFile_instead:$(6677,3,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use 'outFile' instead."),Specify_an_output_folder_for_all_emitted_files:$(6678,3,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:$(6679,3,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:$(6680,3,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:$(6681,3,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:$(6682,3,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing 'const enum' declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:$(6683,3,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:$(6684,3,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode."),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:$(6685,3,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read."),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:$(6686,3,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:$(6687,3,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:$(6688,3,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:$(6689,3,"Enable_importing_json_files_6689","Enable importing .json files."),Specify_the_root_folder_within_your_source_files:$(6690,3,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:$(6691,3,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:$(6692,3,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:$(6693,3,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:$(6694,3,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:$(6695,3,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:$(6697,3,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:$(6698,3,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:$(6699,3,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account 'null' and 'undefined'."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:$(6700,3,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:$(6701,3,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have '@internal' in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:$(6702,3,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:$(6703,3,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:$(6704,3,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:$(6705,3,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:$(6706,3,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the 'moduleResolution' process."),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:$(6707,3,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),Specify_options_for_automatic_acquisition_of_declaration_files:$(6709,3,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:$(6710,3,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like './node_modules/@types'."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:$(6711,3,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:$(6712,3,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:$(6713,3,"Enable_verbose_logging_6713","Enable verbose logging."),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:$(6714,3,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:$(6715,3,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:$(6717,3,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:$(6718,3,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types."),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:$(6719,3,"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719","Require sufficient annotation on exports so other tools can trivially generate declaration files."),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:$(6720,3,"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720","Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'."),Default_catch_clause_variables_as_unknown_instead_of_any:$(6803,3,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default catch clause variables as 'unknown' instead of 'any'."),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:$(6804,3,"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804","Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:$(6805,3,"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805","Disable full type checking (only critical parse and emit errors will be reported)."),Check_side_effect_imports:$(6806,3,"Check_side_effect_imports_6806","Check side effect imports."),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:$(6807,1,"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807","This operation can be simplified. This shift is identical to `{0} {1} {2}`."),one_of_Colon:$(6900,3,"one_of_Colon_6900","one of:"),one_or_more_Colon:$(6901,3,"one_or_more_Colon_6901","one or more:"),type_Colon:$(6902,3,"type_Colon_6902","type:"),default_Colon:$(6903,3,"default_Colon_6903","default:"),module_system_or_esModuleInterop:$(6904,3,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:$(6905,3,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:$(6906,3,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:$(6907,3,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:$(6908,3,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:$(6909,3,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:$(69010,3,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:$(6911,3,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:$(6912,3,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:$(6913,3,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:$(6914,3,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:$(6915,3,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:$(6916,3,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:$(6917,3,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:$(6918,3,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:$(6919,3,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:$(6920,3,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:$(6921,3,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:$(6922,3,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:$(6923,3,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:$(6924,3,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:$(6925,3,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:$(6926,3,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:$(6927,3,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:$(6928,3,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:$(6929,3,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),true_for_ES2022_and_above_including_ESNext:$(6930,3,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:$(6931,1,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),Variable_0_implicitly_has_an_1_type:$(7005,1,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:$(7006,1,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:$(7008,1,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:$(7009,1,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:$(7010,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7011,1,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:$(7012,1,"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012","This overload implicitly returns the type '{0}' because it lacks a return type annotation."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7013,1,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7014,1,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:$(7015,1,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:$(7016,1,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:$(7017,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:$(7018,1,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:$(7019,1,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7020,1,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:$(7022,1,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7023,1,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7024,1,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:$(7025,1,"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025","Generator implicitly has yield type '{0}'. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:$(7026,1,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:$(7027,1,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:$(7028,1,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:$(7029,1,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:$(7030,1,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:$(7031,1,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:$(7032,1,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:$(7033,1,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:$(7034,1,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:$(7035,1,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:$(7036,1,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:$(7037,3,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:$(7038,3,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:$(7039,1,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:$(7040,1,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:$(7041,1,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:$(7042,1,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7043,2,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7044,2,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7045,2,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:$(7046,2,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:$(7047,2,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:$(7048,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:$(7049,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:$(7050,2,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:$(7051,1,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:$(7052,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:$(7053,1,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:$(7054,1,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:$(7055,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:$(7056,1,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:$(7057,1,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:$(7058,1,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:$(7059,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:$(7060,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:$(7061,1,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),You_cannot_rename_this_element:$(8e3,1,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:$(8001,1,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:$(8002,1,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:$(8003,1,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:$(8004,1,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:$(8005,1,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:$(8006,1,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:$(8008,1,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:$(8009,1,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:$(8010,1,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:$(8011,1,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:$(8012,1,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:$(8013,1,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:$(8016,1,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Signature_declarations_can_only_be_used_in_TypeScript_files:$(8017,1,"Signature_declarations_can_only_be_used_in_TypeScript_files_8017","Signature declarations can only be used in TypeScript files."),Report_errors_in_js_files:$(8019,3,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:$(8020,1,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:$(8021,1,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:$(8022,1,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:$(8023,1,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:$(8024,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:$(8025,1,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:$(8026,1,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:$(8027,1,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:$(8028,1,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:$(8029,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:$(8030,1,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:$(8031,1,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:$(8032,1,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:$(8033,1,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:$(8034,1,"The_tag_was_first_specified_here_8034","The tag was first specified here."),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:$(8035,1,"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035","You cannot rename elements that are defined in a 'node_modules' folder."),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:$(8036,1,"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036","You cannot rename elements that are defined in another 'node_modules' folder."),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:$(8037,1,"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037","Type satisfaction expressions can only be used in TypeScript files."),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:$(8038,1,"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038","Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:$(8039,1,"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039","A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:$(9005,1,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:$(9006,1,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9007,1,"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007","Function must have an explicit return type annotation with --isolatedDeclarations."),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9008,1,"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008","Method must have an explicit return type annotation with --isolatedDeclarations."),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9009,1,"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009","At least one accessor must have an explicit type annotation with --isolatedDeclarations."),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9010,1,"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010","Variable must have an explicit type annotation with --isolatedDeclarations."),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9011,1,"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011","Parameter must have an explicit type annotation with --isolatedDeclarations."),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9012,1,"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012","Property must have an explicit type annotation with --isolatedDeclarations."),Expression_type_can_t_be_inferred_with_isolatedDeclarations:$(9013,1,"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013","Expression type can't be inferred with --isolatedDeclarations."),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:$(9014,1,"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014","Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:$(9015,1,"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015","Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:$(9016,1,"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016","Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:$(9017,1,"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017","Only const arrays can be inferred with --isolatedDeclarations."),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:$(9018,1,"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018","Arrays with spread elements can't inferred with --isolatedDeclarations."),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:$(9019,1,"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019","Binding elements can't be exported directly with --isolatedDeclarations."),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:$(9020,1,"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020","Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:$(9021,1,"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021","Extends clause can't contain an expression with --isolatedDeclarations."),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:$(9022,1,"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022","Inference from class expressions is not supported with --isolatedDeclarations."),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:$(9023,1,"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023","Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:$(9025,1,"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025","Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations."),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:$(9026,1,"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026","Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),Add_a_type_annotation_to_the_variable_0:$(9027,1,"Add_a_type_annotation_to_the_variable_0_9027","Add a type annotation to the variable {0}."),Add_a_type_annotation_to_the_parameter_0:$(9028,1,"Add_a_type_annotation_to_the_parameter_0_9028","Add a type annotation to the parameter {0}."),Add_a_type_annotation_to_the_property_0:$(9029,1,"Add_a_type_annotation_to_the_property_0_9029","Add a type annotation to the property {0}."),Add_a_return_type_to_the_function_expression:$(9030,1,"Add_a_return_type_to_the_function_expression_9030","Add a return type to the function expression."),Add_a_return_type_to_the_function_declaration:$(9031,1,"Add_a_return_type_to_the_function_declaration_9031","Add a return type to the function declaration."),Add_a_return_type_to_the_get_accessor_declaration:$(9032,1,"Add_a_return_type_to_the_get_accessor_declaration_9032","Add a return type to the get accessor declaration."),Add_a_type_to_parameter_of_the_set_accessor_declaration:$(9033,1,"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033","Add a type to parameter of the set accessor declaration."),Add_a_return_type_to_the_method:$(9034,1,"Add_a_return_type_to_the_method_9034","Add a return type to the method"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:$(9035,1,"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035","Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:$(9036,1,"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036","Move the expression in default export to a variable and add a type annotation to it."),Default_exports_can_t_be_inferred_with_isolatedDeclarations:$(9037,1,"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037","Default exports can't be inferred with --isolatedDeclarations."),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:$(9038,1,"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038","Computed property names on class or object literals cannot be inferred with --isolatedDeclarations."),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:$(9039,1,"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039","Type containing private name '{0}' can't be used with --isolatedDeclarations."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:$(17e3,1,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:$(17001,1,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:$(17002,1,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:$(17004,1,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:$(17005,1,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17006,1,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17007,1,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:$(17008,1,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:$(17009,1,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:$(17010,1,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:$(17011,1,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:$(17012,1,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:$(17013,1,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:$(17014,1,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:$(17015,1,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:$(17016,1,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:$(17017,1,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:$(17018,1,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17019,1,"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019","'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17020,1,"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020","'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),Unicode_escape_sequence_cannot_appear_here:$(17021,1,"Unicode_escape_sequence_cannot_appear_here_17021","Unicode escape sequence cannot appear here."),Circularity_detected_while_resolving_configuration_Colon_0:$(18e3,1,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),The_files_list_in_config_file_0_is_empty:$(18002,1,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:$(18003,1,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:$(80001,2,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES module."),This_constructor_function_may_be_converted_to_a_class_declaration:$(80002,2,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:$(80003,2,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:$(80004,2,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:$(80005,2,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:$(80006,2,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:$(80007,2,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:$(80008,2,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),JSDoc_typedef_may_be_converted_to_TypeScript_type:$(80009,2,"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009","JSDoc typedef may be converted to TypeScript type."),JSDoc_typedefs_may_be_converted_to_TypeScript_types:$(80010,2,"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010","JSDoc typedefs may be converted to TypeScript types."),Add_missing_super_call:$(90001,3,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:$(90002,3,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:$(90003,3,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:$(90004,3,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:$(90005,3,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:$(90006,3,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:$(90007,3,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:$(90008,3,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:$(90010,3,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:$(90011,3,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:$(90012,3,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_1:$(90013,3,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:$(90014,3,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Declare_property_0:$(90016,3,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:$(90017,3,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:$(90018,3,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:$(90019,3,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:$(90020,3,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:$(90021,3,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:$(90022,3,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:$(90023,3,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:$(90024,3,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:$(90025,3,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:$(90026,3,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:$(90027,3,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:$(90028,3,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:$(90029,3,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:$(90030,3,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:$(90031,3,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Add_parameter_name:$(90034,3,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:$(90035,3,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:$(90036,3,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:$(90037,3,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:$(90038,3,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:$(90039,3,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:$(90041,3,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:$(90053,3,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Includes_imports_of_types_referenced_by_0:$(90054,3,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:$(90055,3,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:$(90056,3,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:$(90057,3,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:$(90058,3,"Update_import_from_0_90058",'Update import from "{0}"'),Export_0_from_module_1:$(90059,3,"Export_0_from_module_1_90059","Export '{0}' from module '{1}'"),Export_all_referenced_locals:$(90060,3,"Export_all_referenced_locals_90060","Export all referenced locals"),Update_modifiers_of_0:$(90061,3,"Update_modifiers_of_0_90061","Update modifiers of '{0}'"),Add_annotation_of_type_0:$(90062,3,"Add_annotation_of_type_0_90062","Add annotation of type '{0}'"),Add_return_type_0:$(90063,3,"Add_return_type_0_90063","Add return type '{0}'"),Extract_base_class_to_variable:$(90064,3,"Extract_base_class_to_variable_90064","Extract base class to variable"),Extract_default_export_to_variable:$(90065,3,"Extract_default_export_to_variable_90065","Extract default export to variable"),Extract_binding_expressions_to_variable:$(90066,3,"Extract_binding_expressions_to_variable_90066","Extract binding expressions to variable"),Add_all_missing_type_annotations:$(90067,3,"Add_all_missing_type_annotations_90067","Add all missing type annotations"),Add_satisfies_and_an_inline_type_assertion_with_0:$(90068,3,"Add_satisfies_and_an_inline_type_assertion_with_0_90068","Add satisfies and an inline type assertion with '{0}'"),Extract_to_variable_and_replace_with_0_as_typeof_0:$(90069,3,"Extract_to_variable_and_replace_with_0_as_typeof_0_90069","Extract to variable and replace with '{0} as typeof {0}'"),Mark_array_literal_as_const:$(90070,3,"Mark_array_literal_as_const_90070","Mark array literal as const"),Annotate_types_of_properties_expando_function_in_a_namespace:$(90071,3,"Annotate_types_of_properties_expando_function_in_a_namespace_90071","Annotate types of properties expando function in a namespace"),Convert_function_to_an_ES2015_class:$(95001,3,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_0_to_1_in_0:$(95003,3,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:$(95004,3,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:$(95005,3,"Extract_function_95005","Extract function"),Extract_constant:$(95006,3,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:$(95007,3,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:$(95008,3,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:$(95009,3,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Infer_type_of_0_from_usage:$(95011,3,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:$(95012,3,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:$(95013,3,"Convert_to_default_import_95013","Convert to default import"),Install_0:$(95014,3,"Install_0_95014","Install '{0}'"),Replace_import_with_0:$(95015,3,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:$(95016,3,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES_module:$(95017,3,"Convert_to_ES_module_95017","Convert to ES module"),Add_undefined_type_to_property_0:$(95018,3,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:$(95019,3,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:$(95020,3,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:$(95021,3,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:$(95022,3,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:$(95023,3,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:$(95024,3,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:$(95025,3,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:$(95026,3,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:$(95027,3,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:$(95028,3,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:$(95029,3,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:$(95030,3,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:$(95031,3,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:$(95032,3,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:$(95033,3,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:$(95034,3,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:$(95035,3,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:$(95036,3,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:$(95037,3,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:$(95038,3,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:$(95039,3,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:$(95040,3,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:$(95041,3,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:$(95042,3,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:$(95043,3,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:$(95044,3,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:$(95045,3,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:$(95046,3,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:$(95047,3,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:$(95048,3,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:$(95049,3,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:$(95050,3,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:$(95051,3,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:$(95052,3,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:$(95053,3,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:$(95054,3,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:$(95055,3,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:$(95056,3,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:$(95057,3,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:$(95058,3,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:$(95059,3,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:$(95060,3,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:$(95061,3,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:$(95062,3,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:$(95063,3,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:$(95064,3,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:$(95065,3,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:$(95066,3,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:$(95067,3,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:$(95068,3,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:$(95069,3,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:$(95070,3,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:$(95071,3,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:$(95072,3,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:$(95073,3,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:$(95074,3,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:$(95075,3,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:$(95077,3,"Extract_type_95077","Extract type"),Extract_to_type_alias:$(95078,3,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:$(95079,3,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:$(95080,3,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:$(95081,3,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:$(95082,3,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:$(95083,3,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:$(95084,3,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:$(95085,3,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:$(95086,3,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:$(95087,3,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:$(95088,3,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:$(95089,3,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:$(95090,3,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:$(95091,3,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:$(95092,3,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:$(95093,3,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:$(95094,3,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:$(95095,3,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:$(95096,3,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:$(95097,3,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:$(95098,3,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:$(95099,3,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:$(95100,3,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:$(95101,3,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Convert_all_const_to_let:$(95102,3,"Convert_all_const_to_let_95102","Convert all 'const' to 'let'"),Convert_function_expression_0_to_arrow_function:$(95105,3,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:$(95106,3,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:$(95107,3,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:$(95108,3,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:$(95109,3,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:$(95110,3,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig to read more about this file"),Add_a_return_statement:$(95111,3,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:$(95112,3,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:$(95113,3,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:$(95114,3,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:$(95115,3,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:$(95116,3,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:$(95117,3,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:$(95118,3,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:$(95119,3,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:$(95120,3,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:$(95121,3,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:$(95122,3,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:$(95123,3,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:$(95124,3,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:$(95125,3,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:$(95126,3,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:$(95127,3,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:$(95128,3,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:$(95129,3,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:$(95130,3,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:$(95131,3,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:$(95132,3,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:$(95133,3,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:$(95134,3,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:$(95135,3,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:$(95136,3,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:$(95137,3,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:$(95138,3,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:$(95139,3,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:$(95140,3,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:$(95141,3,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:$(95142,3,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:$(95143,3,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:$(95144,3,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:$(95145,3,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:$(95146,3,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:$(95147,3,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:$(95148,3,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:$(95149,3,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:$(95150,3,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:$(95151,3,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:$(95152,3,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:$(95153,3,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenations_and_string_literals:$(95154,3,"Can_only_convert_string_concatenations_and_string_literals_95154","Can only convert string concatenations and string literals"),Selection_is_not_a_valid_statement_or_statements:$(95155,3,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:$(95156,3,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:$(95157,3,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:$(95158,3,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:$(95159,3,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:$(95160,3,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:$(95161,3,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:$(95162,3,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:$(95163,3,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:$(95164,3,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:$(95165,3,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:$(95166,3,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:$(95167,3,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:$(95168,3,"Add_all_missing_attributes_95168","Add all missing attributes"),Add_undefined_to_optional_property_type:$(95169,3,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:$(95170,3,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:$(95171,3,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:$(95172,3,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:$(95173,3,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),Use_0:$(95174,3,"Use_0_95174","Use `{0}`."),Use_Number_isNaN_in_all_conditions:$(95175,3,"Use_Number_isNaN_in_all_conditions_95175","Use `Number.isNaN` in all conditions."),Convert_typedef_to_TypeScript_type:$(95176,3,"Convert_typedef_to_TypeScript_type_95176","Convert typedef to TypeScript type."),Convert_all_typedef_to_TypeScript_types:$(95177,3,"Convert_all_typedef_to_TypeScript_types_95177","Convert all typedef to TypeScript types."),Move_to_file:$(95178,3,"Move_to_file_95178","Move to file"),Cannot_move_to_file_selected_file_is_invalid:$(95179,3,"Cannot_move_to_file_selected_file_is_invalid_95179","Cannot move to file, selected file is invalid"),Use_import_type:$(95180,3,"Use_import_type_95180","Use 'import type'"),Use_type_0:$(95181,3,"Use_type_0_95181","Use 'type {0}'"),Fix_all_with_type_only_imports:$(95182,3,"Fix_all_with_type_only_imports_95182","Fix all with type-only imports"),Cannot_move_statements_to_the_selected_file:$(95183,3,"Cannot_move_statements_to_the_selected_file_95183","Cannot move statements to the selected file"),Inline_variable:$(95184,3,"Inline_variable_95184","Inline variable"),Could_not_find_variable_to_inline:$(95185,3,"Could_not_find_variable_to_inline_95185","Could not find variable to inline."),Variables_with_multiple_declarations_cannot_be_inlined:$(95186,3,"Variables_with_multiple_declarations_cannot_be_inlined_95186","Variables with multiple declarations cannot be inlined."),Add_missing_comma_for_object_member_completion_0:$(95187,3,"Add_missing_comma_for_object_member_completion_0_95187","Add missing comma for object member completion '{0}'."),Add_missing_parameter_to_0:$(95188,3,"Add_missing_parameter_to_0_95188","Add missing parameter to '{0}'"),Add_missing_parameters_to_0:$(95189,3,"Add_missing_parameters_to_0_95189","Add missing parameters to '{0}'"),Add_all_missing_parameters:$(95190,3,"Add_all_missing_parameters_95190","Add all missing parameters"),Add_optional_parameter_to_0:$(95191,3,"Add_optional_parameter_to_0_95191","Add optional parameter to '{0}'"),Add_optional_parameters_to_0:$(95192,3,"Add_optional_parameters_to_0_95192","Add optional parameters to '{0}'"),Add_all_optional_parameters:$(95193,3,"Add_all_optional_parameters_95193","Add all optional parameters"),Wrap_in_parentheses:$(95194,3,"Wrap_in_parentheses_95194","Wrap in parentheses"),Wrap_all_invalid_decorator_expressions_in_parentheses:$(95195,3,"Wrap_all_invalid_decorator_expressions_in_parentheses_95195","Wrap all invalid decorator expressions in parentheses"),Add_resolution_mode_import_attribute:$(95196,3,"Add_resolution_mode_import_attribute_95196","Add 'resolution-mode' import attribute"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:$(95197,3,"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197","Add 'resolution-mode' import attribute to all type-only imports that need it"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:$(18004,1,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:$(18006,1,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:$(18007,1,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:$(18009,1,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:$(18010,1,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:$(18011,1,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:$(18012,1,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:$(18013,1,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:$(18014,1,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:$(18015,1,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:$(18016,1,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:$(18017,1,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:$(18018,1,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:$(18019,1,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:$(18024,1,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:$(18026,1,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:$(18027,1,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18028,1,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:$(18029,1,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:$(18030,1,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:$(18031,1,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:$(18032,1,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:$(18033,1,"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033","Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:$(18034,3,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:$(18035,1,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:$(18036,1,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),await_expression_cannot_be_used_inside_a_class_static_block:$(18037,1,"await_expression_cannot_be_used_inside_a_class_static_block_18037","'await' expression cannot be used inside a class static block."),for_await_loops_cannot_be_used_inside_a_class_static_block:$(18038,1,"for_await_loops_cannot_be_used_inside_a_class_static_block_18038","'for await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:$(18039,1,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:$(18041,1,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block."),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:$(18042,1,"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042","'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),Types_cannot_appear_in_export_declarations_in_JavaScript_files:$(18043,1,"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043","Types cannot appear in export declarations in JavaScript files."),_0_is_automatically_exported_here:$(18044,3,"_0_is_automatically_exported_here_18044","'{0}' is automatically exported here."),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18045,1,"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045","Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),_0_is_of_type_unknown:$(18046,1,"_0_is_of_type_unknown_18046","'{0}' is of type 'unknown'."),_0_is_possibly_null:$(18047,1,"_0_is_possibly_null_18047","'{0}' is possibly 'null'."),_0_is_possibly_undefined:$(18048,1,"_0_is_possibly_undefined_18048","'{0}' is possibly 'undefined'."),_0_is_possibly_null_or_undefined:$(18049,1,"_0_is_possibly_null_or_undefined_18049","'{0}' is possibly 'null' or 'undefined'."),The_value_0_cannot_be_used_here:$(18050,1,"The_value_0_cannot_be_used_here_18050","The value '{0}' cannot be used here."),Compiler_option_0_cannot_be_given_an_empty_string:$(18051,1,"Compiler_option_0_cannot_be_given_an_empty_string_18051","Compiler option '{0}' cannot be given an empty string."),Its_type_0_is_not_a_valid_JSX_element_type:$(18053,1,"Its_type_0_is_not_a_valid_JSX_element_type_18053","Its type '{0}' is not a valid JSX element type."),await_using_statements_cannot_be_used_inside_a_class_static_block:$(18054,1,"await_using_statements_cannot_be_used_inside_a_class_static_block_18054","'await using' statements cannot be used inside a class static block."),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:$(18055,1,"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055","'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled."),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:$(18056,1,"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056","Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled."),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:$(18057,1,"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057","String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.")};function H1(e){return e>=80}function S7a(e){return e===32||H1(e)}var LNr={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},v7a=new Map(Object.entries(LNr)),gvi=new Map(Object.entries({...LNr,"{":19,"}":20,"(":21,")":22,"[":23,"]":24,".":25,"...":26,";":27,",":28,"<":30,">":32,"<=":33,">=":34,"==":35,"!=":36,"===":37,"!==":38,"=>":39,"+":40,"-":41,"**":43,"*":42,"/":44,"%":45,"++":46,"--":47,"<<":48,">":49,">>>":50,"&":51,"|":52,"^":53,"!":54,"~":55,"&&":56,"||":57,"?":58,"??":61,"?.":29,":":59,"=":64,"+=":65,"-=":66,"*=":67,"**=":68,"/=":69,"%=":70,"<<=":71,">>=":72,">>>=":73,"&=":74,"|=":75,"^=":79,"||=":76,"&&=":77,"??=":78,"@":60,"#":63,"`":62})),Avi=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),B7a=new Map([[1,tJe.RegularExpressionFlagsHasIndices],[16,tJe.RegularExpressionFlagsDotAll],[32,tJe.RegularExpressionFlagsUnicode],[64,tJe.RegularExpressionFlagsUnicodeSets],[128,tJe.RegularExpressionFlagsSticky]]),w7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],T7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],R7a=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],N7a=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],D7a=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,k7a=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/,x7a=/@(?:see|link)/i;function Ybt(e,t){if(e=2?Ybt(e,R7a):Ybt(e,w7a)}function F7a(e,t){return t>=2?Ybt(e,N7a):Ybt(e,T7a)}function dvi(e){let t=[];return e.forEach((r,n)=>{t[r]=n}),t}var Z7a=dvi(gvi);function by(e){return Z7a[e]}function pvi(e){return gvi.get(e)}var STu=dvi(Avi);function x2i(e){return Avi.get(e)}function fvi(e){let t=[],r=0,n=0;for(;r127&&CV(a)&&(t.push(n),n=r);break}}return t.push(n),t}function L7a(e,t,r,n,a){(t<0||t>=e.length)&&(a?t=t<0?0:t>=e.length?e.length-1:t:Zo.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${n!==void 0?O6a(e,fvi(n)):"unknown"}`));let o=e[t]+r;return a?o>e[t+1]?e[t+1]:typeof n=="string"&&o>n.length?n.length:o:(t=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function CV(e){return e===10||e===13||e===8232||e===8233}function mce(e){return e>=48&&e<=57}function XRr(e){return mce(e)||e>=65&&e<=70||e>=97&&e<=102}function VNr(e){return e>=65&&e<=90||e>=97&&e<=122}function hvi(e){return VNr(e)||mce(e)||e===95}function JRr(e){return e>=48&&e<=55}function dj(e,t,r,n,a){if(bJe(t))return t;let o=!1;for(;;){let l=e.charCodeAt(t);switch(l){case 13:e.charCodeAt(t+1)===10&&t++;case 10:if(t++,r)return t;o=!!a;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(n)break;if(e.charCodeAt(t+1)===47){for(t+=2;t127&&BNe(l)){t++;continue}break}return t}}var Zbt=7;function Gme(e,t){if(Zo.assert(t>=0),t===0||CV(e.charCodeAt(t-1))){let r=e.charCodeAt(t);if(t+Zbt=0&&r127&&BNe(B)){b&&CV(B)&&(C=!0),r++;continue}break e}}return b&&(N=a(A,f,I,C,o,N)),N}function W7a(e,t,r,n){return $bt(!1,e,t,!1,r,n)}function O7a(e,t,r,n){return $bt(!1,e,t,!0,r,n)}function M7a(e,t,r,n,a){return $bt(!0,e,t,!1,r,n,a)}function H7a(e,t,r,n,a){return $bt(!0,e,t,!0,r,n,a)}function _vi(e,t,r,n,a,o=[]){return o.push({kind:r,pos:e,end:t,hasTrailingNewLine:n}),o}function lNr(e,t){return M7a(e,t,_vi,void 0,void 0)}function Y7a(e,t){return H7a(e,t,_vi,void 0,void 0)}function yvi(e){let t=PNr.exec(e);if(t)return t[0]}function i4(e,t){return VNr(e)||e===36||e===95||e>127&&G7a(e,t)}function See(e,t,r){return hvi(e)||e===36||(r===1?e===45||e===58:!1)||e>127&&F7a(e,t)}function Q7a(e,t,r){let n=Fme(e,0);if(!i4(n,t))return!1;for(let a=xR(n);aC,getStartPos:()=>C,getTokenEnd:()=>f,getTextPos:()=>f,getToken:()=>E,getTokenStart:()=>b,getTokenPos:()=>b,getTokenText:()=>A.substring(b,f),getTokenValue:()=>N,hasUnicodeEscape:()=>(B&1024)!==0,hasExtendedUnicodeEscape:()=>(B&8)!==0,hasPrecedingLineBreak:()=>(B&1)!==0,hasPrecedingJSDocComment:()=>(B&2)!==0,hasPrecedingJSDocLeadingAsterisks:()=>(B&32768)!==0,isIdentifier:()=>E===80||E>118,isReservedWord:()=>E>=83&&E<=118,isUnterminated:()=>(B&4)!==0,getCommentDirectives:()=>F,getNumericLiteralFlags:()=>B&25584,getTokenFlags:()=>B,reScanGreaterToken:qr,reScanAsteriskEqualsToken:_n,reScanSlashToken:ke,reScanTemplateToken:po,reScanTemplateHeadOrNoSubstitutionTemplate:Vr,scanJsxIdentifier:cl,scanJsxAttributeValue:Sc,reScanJsxAttributeValue:Hr,reScanJsxToken:xi,reScanLessThanToken:io,reScanHashToken:ga,reScanQuestionToken:Ya,reScanInvalidIdentifier:cr,scanJsxToken:Gc,scanJsDocToken:Ft,scanJSDocCommentTextToken:Wr,scan:Xt,getText:ps,clearCommentDirectives:yo,setText:bo,setScriptTarget:gc,setLanguageVariant:Cg,setScriptKind:Nc,setJSDocParsingMode:iA,setOnError:Qa,resetTokenState:ma,setTextPos:ma,setSkipJsDocLeadingAsterisks:vu,tryScan:Qi,lookAhead:Or,scanRange:Rn};return Zo.isDebugging&&Object.defineProperty(ne,"__debugShowCurrentPositionInText",{get:()=>{let li=ne.getText();return li.slice(0,ne.getTokenFullStart())+"\u2551"+li.slice(ne.getTokenFullStart())}}),ne;function ce(li){return Fme(A,li)}function fe(li){return li>=0&&li=0&&li=65&&Wc<=70)Wc+=32;else if(!(Wc>=48&&Wc<=57||Wc>=97&&Wc<=102))break;Xa.push(Wc),f++,Yl=!1}return Xa.length=I){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}let ac=ue(f);if(ac===Ei){Ps+=A.substring(Xa,f),f++;break}if(ac===92&&!li){Ps+=A.substring(Xa,f),Ps+=Yt(3),Xa=f;continue}if((ac===10||ac===13)&&!li){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}f++}return Ps}function At(li){let Ei=ue(f)===96;f++;let Ps=f,Xa="",ac;for(;;){if(f>=I){Xa+=A.substring(Ps,f),B|=4,be(ts.Unterminated_template_literal),ac=Ei?15:18;break}let Yl=ue(f);if(Yl===96){Xa+=A.substring(Ps,f),f++,ac=Ei?15:18;break}if(Yl===36&&f+1=I)return be(ts.Unexpected_end_of_text),"";let Ps=ue(f);switch(f++,Ps){case 48:if(f>=I||!mce(ue(f)))return"\0";case 49:case 50:case 51:f=55296&&Xa<=56319&&f+6=56320&&Sg<=57343)return f=Wc,ac+String.fromCharCode(Sg)}return ac;case 120:for(;f1114111&&(li&&be(ts.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,Ps,f-Ps),Yl=!0),f>=I?(li&&be(ts.Unexpected_end_of_text),Yl=!0):ue(f)===125?f++:(li&&be(ts.Unterminated_Unicode_escape_sequence),Yl=!0),Yl?(B|=2048,A.substring(Ei,f)):(B|=8,G2i(ac))}function Nr(){if(f+5=0&&See(Ps,e)){li+=Tr(!0),Ei=f;continue}if(Ps=Nr(),!(Ps>=0&&See(Ps,e)))break;B|=1024,li+=A.substring(Ei,f),li+=G2i(Ps),f+=6,Ei=f}else break}return li+=A.substring(Ei,f),li}function xt(){let li=N.length;if(li>=2&&li<=12){let Ei=N.charCodeAt(0);if(Ei>=97&&Ei<=122){let Ps=v7a.get(N);if(Ps!==void 0)return E=Ps}}return E=80}function Zr(li){let Ei="",Ps=!1,Xa=!1;for(;;){let ac=ue(f);if(ac===95){B|=512,Ps?(Ps=!1,Xa=!0):be(Xa?ts.Multiple_consecutive_numeric_separators_are_not_permitted:ts.Numeric_separators_are_not_allowed_here,f,1),f++;continue}if(Ps=!0,!mce(ac)||ac-48>=li)break;Ei+=A[f],f++,Xa=!1}return ue(f-1)===95&&be(ts.Numeric_separators_are_not_allowed_here,f-1,1),Ei}function qt(){return ue(f)===110?(N+="n",B&384&&(N=a$a(N)+"n"),f++,10):(N=""+(B&128?parseInt(N.slice(2),2):B&256?parseInt(N.slice(2),8):+N),9)}function Xt(){for(C=f,B=0;;){if(b=f,f>=I)return E=1;let li=ce(f);if(f===0&&li===35&&mvi(A,f)){if(f=Cvi(A,f),t)continue;return E=6}switch(li){case 10:case 13:if(B|=1,t){f++;continue}else return li===13&&f+1=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(be(ts.Invalid_character),f++,E=0);case 35:if(f!==0&&A[f+1]==="!")return be(ts.can_only_be_used_at_the_start_of_a_file,f,2),f++,E=0;let Xa=ce(f+1);if(Xa===92){f++;let Wc=er();if(Wc>=0&&i4(Wc,e))return N="#"+Tr(!0)+vt(),E=81;let Sg=Nr();if(Sg>=0&&i4(Sg,e))return f+=6,B|=1024,N="#"+String.fromCharCode(Sg)+vt(),E=81;f--}return i4(Xa,e)?(f++,Ar(Xa,e)):(N="#",be(ts.Invalid_character,f++,xR(li))),E=81;case 65533:return be(ts.File_appears_to_be_binary,0,0),f=I,E=8;default:let ac=Ar(li,e);if(ac)return E=ac;if(gJe(li)){f+=xR(li);continue}else if(CV(li)){B|=1,f+=xR(li);continue}let Yl=xR(li);return be(ts.Invalid_character,f,Yl),f+=Yl,E=0}}}function lr(){switch(ae){case 0:return!0;case 1:return!1}return X!==3&&X!==4?!0:ae===3?!1:x7a.test(A.slice(C,f))}function cr(){Zo.assert(E===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),f=b=C,B=0;let li=ce(f),Ei=Ar(li,99);return Ei?E=Ei:(f+=xR(li),E)}function Ar(li,Ei){let Ps=li;if(i4(Ps,Ei)){for(f+=xR(Ps);f=I)return E=1;let Ei=ue(f);if(Ei===60)return ue(f+1)===47?(f+=2,E=31):(f++,E=30);if(Ei===123)return f++,E=19;let Ps=0;for(;f0)break;BNe(Ei)||(Ps=f)}f++}return N=A.substring(C,f),Ps===-1?13:12}function cl(){if(H1(E)){for(;f=I)return E=1;for(let Ei=ue(f);f=0&&gJe(ue(f-1))&&!(f+1=I)return E=1;let li=ce(f);switch(f+=xR(li),li){case 9:case 11:case 12:case 32:for(;f=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(f++,E=0)}if(i4(li,e)){let Ei=li;for(;f=0),f=li,C=li,b=li,E=0,N=void 0,B=0}function vu(li){Q+=li?1:-1}}function Fme(e,t){return e.codePointAt(t)}function xR(e){return e>=65536?2:e===-1?0:1}function X7a(e){if(Zo.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);let t=Math.floor((e-65536)/1024)+55296,r=(e-65536)%1024+56320;return String.fromCharCode(t,r)}var J7a=String.fromCodePoint?e=>String.fromCodePoint(e):X7a;function G2i(e){return J7a(e)}var F2i=new Map(Object.entries({General_Category:"General_Category",gc:"General_Category",Script:"Script",sc:"Script",Script_Extensions:"Script_Extensions",scx:"Script_Extensions"})),Z2i=new Set(["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","EComp","Emoji_Modifier","EMod","Emoji_Modifier_Base","EBase","Emoji_Presentation","EPres","Extended_Pictographic","ExtPict","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"]),L2i=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"]),SNe={General_Category:new Set(["C","Other","Cc","Control","cntrl","Cf","Format","Cn","Unassigned","Co","Private_Use","Cs","Surrogate","L","Letter","LC","Cased_Letter","Ll","Lowercase_Letter","Lm","Modifier_Letter","Lo","Other_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter","M","Mark","Combining_Mark","Mc","Spacing_Mark","Me","Enclosing_Mark","Mn","Nonspacing_Mark","N","Number","Nd","Decimal_Number","digit","Nl","Letter_Number","No","Other_Number","P","Punctuation","punct","Pc","Connector_Punctuation","Pd","Dash_Punctuation","Pe","Close_Punctuation","Pf","Final_Punctuation","Pi","Initial_Punctuation","Po","Other_Punctuation","Ps","Open_Punctuation","S","Symbol","Sc","Currency_Symbol","Sk","Modifier_Symbol","Sm","Math_Symbol","So","Other_Symbol","Z","Separator","Zl","Line_Separator","Zp","Paragraph_Separator","Zs","Space_Separator"]),Script:new Set(["Adlm","Adlam","Aghb","Caucasian_Albanian","Ahom","Arab","Arabic","Armi","Imperial_Aramaic","Armn","Armenian","Avst","Avestan","Bali","Balinese","Bamu","Bamum","Bass","Bassa_Vah","Batk","Batak","Beng","Bengali","Bhks","Bhaiksuki","Bopo","Bopomofo","Brah","Brahmi","Brai","Braille","Bugi","Buginese","Buhd","Buhid","Cakm","Chakma","Cans","Canadian_Aboriginal","Cari","Carian","Cham","Cher","Cherokee","Chrs","Chorasmian","Copt","Coptic","Qaac","Cpmn","Cypro_Minoan","Cprt","Cypriot","Cyrl","Cyrillic","Deva","Devanagari","Diak","Dives_Akuru","Dogr","Dogra","Dsrt","Deseret","Dupl","Duployan","Egyp","Egyptian_Hieroglyphs","Elba","Elbasan","Elym","Elymaic","Ethi","Ethiopic","Geor","Georgian","Glag","Glagolitic","Gong","Gunjala_Gondi","Gonm","Masaram_Gondi","Goth","Gothic","Gran","Grantha","Grek","Greek","Gujr","Gujarati","Guru","Gurmukhi","Hang","Hangul","Hani","Han","Hano","Hanunoo","Hatr","Hatran","Hebr","Hebrew","Hira","Hiragana","Hluw","Anatolian_Hieroglyphs","Hmng","Pahawh_Hmong","Hmnp","Nyiakeng_Puachue_Hmong","Hrkt","Katakana_Or_Hiragana","Hung","Old_Hungarian","Ital","Old_Italic","Java","Javanese","Kali","Kayah_Li","Kana","Katakana","Kawi","Khar","Kharoshthi","Khmr","Khmer","Khoj","Khojki","Kits","Khitan_Small_Script","Knda","Kannada","Kthi","Kaithi","Lana","Tai_Tham","Laoo","Lao","Latn","Latin","Lepc","Lepcha","Limb","Limbu","Lina","Linear_A","Linb","Linear_B","Lisu","Lyci","Lycian","Lydi","Lydian","Mahj","Mahajani","Maka","Makasar","Mand","Mandaic","Mani","Manichaean","Marc","Marchen","Medf","Medefaidrin","Mend","Mende_Kikakui","Merc","Meroitic_Cursive","Mero","Meroitic_Hieroglyphs","Mlym","Malayalam","Modi","Mong","Mongolian","Mroo","Mro","Mtei","Meetei_Mayek","Mult","Multani","Mymr","Myanmar","Nagm","Nag_Mundari","Nand","Nandinagari","Narb","Old_North_Arabian","Nbat","Nabataean","Newa","Nkoo","Nko","Nshu","Nushu","Ogam","Ogham","Olck","Ol_Chiki","Orkh","Old_Turkic","Orya","Oriya","Osge","Osage","Osma","Osmanya","Ougr","Old_Uyghur","Palm","Palmyrene","Pauc","Pau_Cin_Hau","Perm","Old_Permic","Phag","Phags_Pa","Phli","Inscriptional_Pahlavi","Phlp","Psalter_Pahlavi","Phnx","Phoenician","Plrd","Miao","Prti","Inscriptional_Parthian","Rjng","Rejang","Rohg","Hanifi_Rohingya","Runr","Runic","Samr","Samaritan","Sarb","Old_South_Arabian","Saur","Saurashtra","Sgnw","SignWriting","Shaw","Shavian","Shrd","Sharada","Sidd","Siddham","Sind","Khudawadi","Sinh","Sinhala","Sogd","Sogdian","Sogo","Old_Sogdian","Sora","Sora_Sompeng","Soyo","Soyombo","Sund","Sundanese","Sylo","Syloti_Nagri","Syrc","Syriac","Tagb","Tagbanwa","Takr","Takri","Tale","Tai_Le","Talu","New_Tai_Lue","Taml","Tamil","Tang","Tangut","Tavt","Tai_Viet","Telu","Telugu","Tfng","Tifinagh","Tglg","Tagalog","Thaa","Thaana","Thai","Tibt","Tibetan","Tirh","Tirhuta","Tnsa","Tangsa","Toto","Ugar","Ugaritic","Vaii","Vai","Vith","Vithkuqi","Wara","Warang_Citi","Wcho","Wancho","Xpeo","Old_Persian","Xsux","Cuneiform","Yezi","Yezidi","Yiii","Yi","Zanb","Zanabazar_Square","Zinh","Inherited","Qaai","Zyyy","Common","Zzzz","Unknown"]),Script_Extensions:void 0};SNe.Script_Extensions=SNe.Script;function gj(e){return e.start+e.length}function U7a(e){return e.length===0}function ONr(e,t){if(e<0)throw new Error("start < 0");if(t<0)throw new Error("length < 0");return{start:e,length:t}}function K7a(e,t){return ONr(e,t-e)}function rJe(e){return ONr(e.span.start,e.newLength)}function j7a(e){return U7a(e.span)&&e.newLength===0}function bvi(e,t){if(t<0)throw new Error("newLength < 0");return{span:e,newLength:t}}var STu=bvi(ONr(0,0),0);function Evi(e,t){for(;e;){let r=t(e);if(r==="quit")return;if(r)return e;e=e.parent}}function Qbt(e){return(e.flags&16)===0}function z7a(e,t){if(e===void 0||Qbt(e))return e;for(e=e.original;e;){if(Qbt(e))return!t||t(e)?e:void 0;e=e.original}}function mNe(e){return e.length>=2&&e.charCodeAt(0)===95&&e.charCodeAt(1)===95?"_"+e:e}function mJe(e){let t=e;return t.length>=3&&t.charCodeAt(0)===95&&t.charCodeAt(1)===95&&t.charCodeAt(2)===95?t.substr(1):t}function yV(e){return mJe(e.escapedText)}function Svi(e){let t=pvi(e.escapedText);return t?e7a(t,Cce):void 0}function uNr(e){return e.valueDeclaration&&bza(e.valueDeclaration)?yV(e.valueDeclaration.name):mJe(e.escapedName)}function vvi(e){let t=e.parent.parent;if(t){if(W2i(t))return Tbt(t);switch(t.kind){case 243:if(t.declarationList&&t.declarationList.declarations[0])return Tbt(t.declarationList.declarations[0]);break;case 244:let r=t.expression;switch(r.kind===226&&r.operatorToken.kind===64&&(r=r.left),r.kind){case 211:return r.name;case 212:let n=r.argumentExpression;if($C(n))return n}break;case 217:return Tbt(t.expression);case 256:{if(W2i(t.statement)||Fza(t.statement))return Tbt(t.statement);break}}}}function Tbt(e){let t=Bvi(e);return t&&$C(t)?t:void 0}function q7a(e){return e.name||vvi(e)}function $7a(e){return!!e.name}function MNr(e){switch(e.kind){case 80:return e;case 348:case 341:{let{name:r}=e;if(r.kind===166)return r.right;break}case 213:case 226:{let r=e;switch(JNr(r)){case 1:case 4:case 5:case 3:return UNr(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}}case 346:return q7a(e);case 340:return vvi(e);case 277:{let{expression:r}=e;return $C(r)?r:void 0}case 212:let t=e;if(Mvi(t))return t.argumentExpression}return e.name}function Bvi(e){if(e!==void 0)return MNr(e)||(cBi(e)||lBi(e)||mNr(e)?eza(e):void 0)}function eza(e){if(e.parent){if(hec(e.parent)||eec(e.parent))return e.parent.name;if(DNe(e.parent)&&e===e.parent.right){if($C(e.parent.left))return e.parent.left;if(Uvi(e.parent.left))return UNr(e.parent.left)}else if(gBi(e.parent)&&$C(e.parent.name))return e.parent.name}else return}function tza(e){if(Rqa(e))return wee(e.modifiers,tDr)}function rza(e){if(vJe(e,98303))return wee(e.modifiers,vza)}function wvi(e,t){if(e.name)if($C(e.name)){let r=e.name.escapedText;return CJe(e.parent,t).filter(n=>rSi(n)&&$C(n.name)&&n.name.escapedText===r)}else{let r=e.parent.parameters.indexOf(e);Zo.assert(r>-1,"Parameters should always be in their parents' parameter list");let n=CJe(e.parent,t).filter(rSi);if(rkec(n)&&n.typeParameters.some(a=>a.name.escapedText===r))}function sza(e){return Tvi(e,!1)}function oza(e){return Tvi(e,!0)}function aza(e){return vce(e,Eec)}function cza(e){return Iza(e,xec)}function lza(e){return vce(e,Sec,!0)}function uza(e){return vce(e,vec,!0)}function gza(e){return vce(e,Bec,!0)}function Aza(e){return vce(e,wec,!0)}function dza(e){return vce(e,Tec,!0)}function pza(e){return vce(e,Nec,!0)}function fza(e){let t=vce(e,iDr);if(t&&t.typeExpression&&t.typeExpression.type)return t}function CJe(e,t){var r;if(!KNr(e))return x2;let n=(r=e.jsDoc)==null?void 0:r.jsDocCache;if(n===void 0||t){let a=dqa(e,t);Zo.assert(a.length<2||a[0]!==a[1]),n=USi(a,o=>_Bi(o)?o.tags:o),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=n)}return n}function Rvi(e){return CJe(e,!1)}function vce(e,t,r){return XSi(CJe(e,r),t)}function Iza(e,t){return Rvi(e).filter(t)}function gNr(e){return e.kind===80||e.kind===81}function hza(e){return Bce(e)&&!!(e.flags&64)}function mza(e){return BJe(e)&&!!(e.flags&64)}function V2i(e){return aBi(e)&&!!(e.flags&64)}function HNr(e){return sDr(e,8)}function Cza(e){return Vbt(e)&&!!(e.flags&64)}function YNr(e){return e>=166}function Nvi(e){return e>=0&&e<=165}function _za(e){return Nvi(e.kind)}function _ce(e){return fj(e,"pos")&&fj(e,"end")}function yza(e){return 9<=e&&e<=15}function P2i(e){return 15<=e&&e<=18}function vNe(e){var t;return $C(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function Dvi(e){var t;return Yme(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function bza(e){return(Kbt(e)||Tza(e))&&Yme(e.name)}function vee(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function Eza(e){return!!(Xvi(e)&31)}function Sza(e){return Eza(e)||e===126||e===164||e===129}function vza(e){return vee(e.kind)}function kvi(e){let t=e.kind;return t===80||t===81||t===11||t===9||t===167}function xvi(e){return!!e&&wza(e.kind)}function Bza(e){switch(e){case 262:case 174:case 176:case 177:case 178:case 218:case 219:return!0;default:return!1}}function wza(e){switch(e){case 173:case 179:case 323:case 180:case 181:case 184:case 317:case 185:return!0;default:return Bza(e)}}function wNe(e){return e&&(e.kind===263||e.kind===231)}function Tza(e){switch(e.kind){case 174:case 177:case 178:return!0;default:return!1}}function Rza(e){let t=e.kind;return t===303||t===304||t===305||t===174||t===177||t===178}function Nza(e){return Wqa(e.kind)}function Dza(e){if(e){let t=e.kind;return t===207||t===206}return!1}function kza(e){let t=e.kind;return t===209||t===210}function xza(e){switch(e.kind){case 260:case 169:case 208:return!0}return!1}function TNe(e){return Gvi(HNr(e).kind)}function Gvi(e){switch(e){case 211:case 212:case 214:case 213:case 284:case 285:case 288:case 215:case 209:case 217:case 210:case 231:case 218:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 228:case 97:case 106:case 110:case 112:case 108:case 235:case 233:case 236:case 102:case 282:return!0;default:return!1}}function Gza(e){return Fvi(HNr(e).kind)}function Fvi(e){switch(e){case 224:case 225:case 220:case 221:case 222:case 223:case 216:return!0;default:return Gvi(e)}}function Fza(e){return Zza(HNr(e).kind)}function Zza(e){switch(e){case 227:case 229:case 219:case 226:case 230:case 234:case 232:case 356:case 355:case 238:return!0;default:return Fvi(e)}}function Lza(e){return e===219||e===208||e===263||e===231||e===175||e===176||e===266||e===306||e===281||e===262||e===218||e===177||e===273||e===271||e===276||e===264||e===291||e===174||e===173||e===267||e===270||e===274||e===280||e===169||e===303||e===172||e===171||e===178||e===304||e===265||e===168||e===260||e===346||e===338||e===348||e===202}function Zvi(e){return e===262||e===282||e===263||e===264||e===265||e===266||e===267||e===272||e===271||e===278||e===277||e===270}function Lvi(e){return e===252||e===251||e===259||e===246||e===244||e===242||e===249||e===250||e===248||e===245||e===256||e===253||e===255||e===257||e===258||e===243||e===247||e===254||e===353}function W2i(e){return e.kind===168?e.parent&&e.parent.kind!==345||Qme(e):Lza(e.kind)}function Vza(e){let t=e.kind;return Lvi(t)||Zvi(t)||Pza(e)}function Pza(e){return e.kind!==241||e.parent!==void 0&&(e.parent.kind===258||e.parent.kind===299)?!1:!eqa(e)}function Wza(e){let t=e.kind;return Lvi(t)||Zvi(t)||t===241}function Vvi(e){return e.kind>=309&&e.kind<=351}function Oza(e){return e.kind===320||e.kind===319||e.kind===321||Yza(e)||Mza(e)||bec(e)||yBi(e)}function Mza(e){return e.kind>=327&&e.kind<=351}function Rbt(e){return e.kind===178}function Nbt(e){return e.kind===177}function Pme(e){if(!KNr(e))return!1;let{jsDoc:t}=e;return!!t&&t.length>0}function Hza(e){return!!e.initializer}function QNr(e){return e.kind===11||e.kind===15}function Yza(e){return e.kind===324||e.kind===325||e.kind===326}function O2i(e){return(e.flags&33554432)!==0}var vTu=Qza();function Qza(){var e="";let t=r=>e+=r;return{getText:()=>e,write:t,rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:(r,n)=>t(r),writeTrailingSemicolon:t,writeComment:t,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&BNe(e.charCodeAt(e.length-1)),writeLine:()=>e+=" ",increaseIndent:NNe,decreaseIndent:NNe,clear:()=>e=""}}function Xza(e,t){let r=e.entries();for(let[n,a]of r){let o=t(a,n);if(o)return o}}function Jza(e){return e.end-e.pos}function Pvi(e){return Uza(e),(e.flags&1048576)!==0}function Uza(e){e.flags&2097152||((e.flags&262144||Ok(e,Pvi))&&(e.flags|=1048576),e.flags|=2097152)}function bce(e){for(;e&&e.kind!==307;)e=e.parent;return e}function Wme(e){return e===void 0?!0:e.pos===e.end&&e.pos>=0&&e.kind!==1}function ANr(e){return!Wme(e)}function Xbt(e,t,r){if(Wme(e))return e.pos;if(Vvi(e)||e.kind===12)return dj((t??bce(e)).text,e.pos,!1,!0);if(r&&Pme(e))return Xbt(e.jsDoc[0],t);if(e.kind===352){t??(t=bce(e));let n=DNr(bBi(e,t));if(n)return Xbt(n,t,r)}return dj((t??bce(e)).text,e.pos,!1,!1,tqa(e))}function M2i(e,t,r=!1){return AJe(e.text,t,r)}function Kza(e){return!!Evi(e,Cec)}function AJe(e,t,r=!1){if(Wme(t))return"";let n=e.substring(r?t.pos:dj(e,t.pos),t.end);return Kza(t)&&(n=n.split(/\r\n|\n|\r/).map(a=>a.replace(/^\s*\*/,"").trimStart()).join(` -`)),n}function RNe(e){let t=e.emitNode;return t&&t.flags||0}function jza(e,t,r){Zo.assertGreaterThanOrEqual(t,0),Zo.assertGreaterThanOrEqual(r,0),Zo.assertLessThanOrEqual(t,e.length),Zo.assertLessThanOrEqual(t+r,e.length)}function Lbt(e){return e.kind===244&&e.expression.kind===11}function XNr(e){return!!(RNe(e)&2097152)}function H2i(e){return XNr(e)&&ABi(e)}function zza(e){return $C(e.name)&&!e.initializer}function Y2i(e){return XNr(e)&&rEt(e)&&RNr(e.declarationList.declarations,zza)}function qza(e,t){let r=e.kind===169||e.kind===168||e.kind===218||e.kind===219||e.kind===217||e.kind===260||e.kind===281?NNr(Y7a(t,e.pos),lNr(t,e.pos)):lNr(t,e.pos);return wee(r,n=>n.end<=e.end&&t.charCodeAt(n.pos+1)===42&&t.charCodeAt(n.pos+2)===42&&t.charCodeAt(n.pos+3)!==47)}function $za(e){if(e)switch(e.kind){case 208:case 306:case 169:case 303:case 172:case 171:case 304:case 260:return!0}return!1}function eqa(e){return e&&e.kind===241&&xvi(e.parent)}function Q2i(e){let t=e.kind;return(t===211||t===212)&&e.expression.kind===108}function Qme(e){return!!e&&!!(e.flags&524288)}function tqa(e){return!!e&&!!(e.flags&16777216)}function rqa(e){for(;Jbt(e,!0);)e=e.right;return e}function nqa(e){return $C(e)&&e.escapedText==="exports"}function iqa(e){return $C(e)&&e.escapedText==="module"}function Wvi(e){return(Bce(e)||Ovi(e))&&iqa(e.expression)&&yJe(e)==="exports"}function JNr(e){let t=oqa(e);return t===5||Qme(e)?t:0}function sqa(e){return cJe(e.arguments)===3&&Bce(e.expression)&&$C(e.expression.expression)&&yV(e.expression.expression)==="Object"&&yV(e.expression.name)==="defineProperty"&&eEt(e.arguments[1])&&_Je(e.arguments[0],!0)}function Ovi(e){return BJe(e)&&eEt(e.argumentExpression)}function SJe(e,t){return Bce(e)&&(!t&&e.expression.kind===110||$C(e.name)&&_Je(e.expression,!0))||Mvi(e,t)}function Mvi(e,t){return Ovi(e)&&(!t&&e.expression.kind===110||qNr(e.expression)||SJe(e.expression,!0))}function _Je(e,t){return qNr(e)||SJe(e,t)}function oqa(e){if(aBi(e)){if(!sqa(e))return 0;let t=e.arguments[0];return nqa(t)||Wvi(t)?8:SJe(t)&&yJe(t)==="prototype"?9:7}return e.operatorToken.kind!==64||!Uvi(e.left)||aqa(rqa(e))?0:_Je(e.left.expression,!0)&&yJe(e.left)==="prototype"&&oBi(lqa(e))?6:cqa(e.left)}function aqa(e){return nec(e)&&kNe(e.expression)&&e.expression.text==="0"}function UNr(e){if(Bce(e))return e.name;let t=jNr(e.argumentExpression);return kNe(t)||QNr(t)?t:e}function yJe(e){let t=UNr(e);if(t){if($C(t))return t.escapedText;if(QNr(t)||kNe(t))return mNe(t.text)}}function cqa(e){if(e.expression.kind===110)return 4;if(Wvi(e))return 2;if(_Je(e.expression,!0)){if(Vqa(e.expression))return 3;let t=e;for(;!$C(t.expression);)t=t.expression;let r=t.expression;if((r.escapedText==="exports"||r.escapedText==="module"&&yJe(t)==="exports")&&SJe(e))return 1;if(_Je(e,!0)||BJe(e)&&Eqa(e))return 5}return 0}function lqa(e){for(;DNe(e.right);)e=e.right;return e.right}function uqa(e){return uBi(e)&&DNe(e.expression)&&JNr(e.expression)!==0&&DNe(e.expression.right)&&(e.expression.right.operatorToken.kind===57||e.expression.right.operatorToken.kind===61)?e.expression.right.right:void 0}function gqa(e){switch(e.kind){case 243:let t=dNr(e);return t&&t.initializer;case 172:return e.initializer;case 303:return e.initializer}}function dNr(e){return rEt(e)?DNr(e.declarationList.declarations):void 0}function Aqa(e){return EJe(e)&&e.body&&e.body.kind===267?e.body:void 0}function KNr(e){switch(e.kind){case 219:case 226:case 241:case 252:case 179:case 296:case 263:case 231:case 175:case 176:case 185:case 180:case 251:case 259:case 246:case 212:case 242:case 1:case 266:case 306:case 277:case 278:case 281:case 244:case 249:case 250:case 248:case 262:case 218:case 184:case 177:case 80:case 245:case 272:case 271:case 181:case 264:case 317:case 323:case 256:case 174:case 173:case 267:case 202:case 270:case 210:case 169:case 217:case 211:case 303:case 172:case 171:case 253:case 240:case 178:case 304:case 305:case 255:case 257:case 258:case 265:case 168:case 260:case 243:case 247:case 254:return!0;default:return!1}}function dqa(e,t){let r;$za(e)&&Hza(e)&&Pme(e.initializer)&&(r=_V(r,X2i(e,e.initializer.jsDoc)));let n=e;for(;n&&n.parent;){if(Pme(n)&&(r=_V(r,X2i(e,n.jsDoc))),n.kind===169){r=_V(r,(t?iza:nza)(n));break}if(n.kind===168){r=_V(r,(t?oza:sza)(n));break}n=fqa(n)}return r||x2}function X2i(e,t){let r=Q6a(t);return USi(t,n=>{if(n===r){let a=wee(n.tags,o=>pqa(e,o));return n.tags===a?[n]:a}else return wee(n.tags,Rec)})}function pqa(e,t){return!(iDr(t)||Gec(t))||!t.parent||!_Bi(t.parent)||!rDr(t.parent.parent)||t.parent.parent===e}function fqa(e){let t=e.parent;if(t.kind===303||t.kind===277||t.kind===172||t.kind===244&&e.kind===211||t.kind===253||Aqa(t)||Jbt(e))return t;if(t.parent&&(dNr(t.parent)===e||Jbt(t)))return t.parent;if(t.parent&&t.parent.parent&&(dNr(t.parent.parent)||gqa(t.parent.parent)===e||uqa(t.parent.parent)))return t.parent.parent}function jNr(e,t){return sDr(e,t?-2147483647:1)}function Iqa(e){let t=hqa(e);if(t&&Qme(e)){let r=aza(e);if(r)return r.class}return t}function hqa(e){let t=zNr(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function mqa(e){if(Qme(e))return cza(e).map(t=>t.class);{let t=zNr(e.heritageClauses,119);return t?.types}}function Cqa(e){return nDr(e)?_qa(e)||x2:wNe(e)&&NNr(oNr(Iqa(e)),mqa(e))||x2}function _qa(e){let t=zNr(e.heritageClauses,96);return t?t.types:void 0}function zNr(e,t){if(e){for(let r of e)if(r.token===t)return r}}function Cce(e){return 83<=e&&e<=165}function yqa(e){return 19<=e&&e<=79}function URr(e){return Cce(e)||yqa(e)}function eEt(e){return QNr(e)||kNe(e)}function bqa(e){return iec(e)&&(e.operator===40||e.operator===41)&&kNe(e.operand)}function Eqa(e){if(!(e.kind===167||e.kind===212))return!1;let t=BJe(e)?jNr(e.argumentExpression):e.expression;return!eEt(t)&&!bqa(t)}function Sqa(e){return gNr(e)?yV(e):CBi(e)?d$a(e):e.text}function CNe(e){return bJe(e.pos)||bJe(e.end)}function KRr(e){switch(e){case 61:return 4;case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function jRr(e){return!!((e.templateFlags||0)&2048)}function vqa(e){return e&&!!(B$a(e)?jRr(e):jRr(e.head)||oD(e.templateSpans,t=>jRr(t.literal)))}var BTu=new Map(Object.entries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"})),wTu=new Map(Object.entries({'"':""","'":"'"}));function Bqa(e){return!!e&&e.kind===80&&wqa(e)}function wqa(e){return e.escapedText==="this"}function vJe(e,t){return!!Nqa(e,t)}function Tqa(e){return vJe(e,256)}function Rqa(e){return vJe(e,32768)}function Nqa(e,t){return kqa(e)&t}function Dqa(e,t,r){return e.kind>=0&&e.kind<=165?0:(e.modifierFlagsCache&536870912||(e.modifierFlagsCache=Qvi(e)|536870912),r||t&&Qme(e)?(!(e.modifierFlagsCache&268435456)&&e.parent&&(e.modifierFlagsCache|=Hvi(e)|268435456),Yvi(e.modifierFlagsCache)):xqa(e.modifierFlagsCache))}function kqa(e){return Dqa(e,!1)}function Hvi(e){let t=0;return e.parent&&!Ubt(e)&&(Qme(e)&&(lza(e)&&(t|=8388608),uza(e)&&(t|=16777216),gza(e)&&(t|=33554432),Aza(e)&&(t|=67108864),dza(e)&&(t|=134217728)),pza(e)&&(t|=65536)),t}function xqa(e){return e&65535}function Yvi(e){return e&131071|(e&260046848)>>>23}function Gqa(e){return Yvi(Hvi(e))}function Fqa(e){return Qvi(e)|Gqa(e)}function Qvi(e){let t=oDr(e)?fO(e.modifiers):0;return(e.flags&8||e.kind===80&&e.flags&4096)&&(t|=32),t}function fO(e){let t=0;if(e)for(let r of e)t|=Xvi(r.kind);return t}function Xvi(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 170:return 32768}return 0}function Zqa(e){return e===76||e===77||e===78}function Jvi(e){return e>=64&&e<=79}function Jbt(e,t){return DNe(e)&&(t?e.operatorToken.kind===64:Jvi(e.operatorToken.kind))&&TNe(e.left)}function qNr(e){return e.kind===80||Lqa(e)}function Lqa(e){return Bce(e)&&$C(e.name)&&qNr(e.expression)}function Vqa(e){return SJe(e)&&yJe(e)==="prototype"}function zRr(e){return e.flags&3899393?e.objectFlags:0}function Pqa(e){let t;return Ok(e,r=>{ANr(r)&&(t=r)},r=>{for(let n=r.length-1;n>=0;n--)if(ANr(r[n])){t=r[n];break}}),t}function Wqa(e){return e>=182&&e<=205||e===133||e===159||e===150||e===163||e===151||e===136||e===154||e===155||e===116||e===157||e===146||e===141||e===233||e===312||e===313||e===314||e===315||e===316||e===317||e===318}function Uvi(e){return e.kind===211||e.kind===212}function Oqa(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function Mqa(e,t){this.flags=t,(Zo.isDebugging||Fbt)&&(this.checker=e)}function Hqa(e,t){this.flags=t,Zo.isDebugging&&(this.checker=e)}function qRr(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Yqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function Qqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Xqa(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}var k2={getNodeConstructor:()=>qRr,getTokenConstructor:()=>Yqa,getIdentifierConstructor:()=>Qqa,getPrivateIdentifierConstructor:()=>qRr,getSourceFileConstructor:()=>qRr,getSymbolConstructor:()=>Oqa,getTypeConstructor:()=>Mqa,getSignatureConstructor:()=>Hqa,getSourceMapSourceConstructor:()=>Xqa},Jqa=[];function Uqa(e){Object.assign(k2,e),hO(Jqa,t=>t(k2))}function Kqa(e,t){return e.replace(/\{(\d+)\}/g,(r,n)=>""+Zo.checkDefined(t[+n]))}var J2i;function jqa(e){return J2i&&J2i[e.key]||e.message}function pNe(e,t,r,n,a,...o){r+n>t.length&&(n=t.length-r),jza(t,r,n);let l=jqa(a);return oD(o)&&(l=Kqa(l,o)),{file:void 0,start:r,length:n,messageText:l,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary,fileName:e}}function zqa(e){return e.file===void 0&&e.start!==void 0&&e.length!==void 0&&typeof e.fileName=="string"}function Kvi(e,t){let r=t.fileName||"",n=t.text.length;Zo.assertEqual(e.fileName,r),Zo.assertLessThanOrEqual(e.start,n),Zo.assertLessThanOrEqual(e.start+e.length,n);let a={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){a.relatedInformation=[];for(let o of e.relatedInformation)zqa(o)&&o.fileName===r?(Zo.assertLessThanOrEqual(o.start,n),Zo.assertLessThanOrEqual(o.start+o.length,n),a.relatedInformation.push(Kvi(o,t))):a.relatedInformation.push(o)}return a}function Nme(e,t){let r=[];for(let n of e)r.push(Kvi(n,t));return r}function U2i(e){return e===4||e===2||e===1||e===6?1:0}var y0={allowImportingTsExtensions:{dependencies:["rewriteRelativeImportExtensions"],computeValue:e=>!!(e.allowImportingTsExtensions||e.rewriteRelativeImportExtensions)},target:{dependencies:["module"],computeValue:e=>(e.target===0?void 0:e.target)??(e.module===100&&9||e.module===199&&99||1)},module:{dependencies:["target"],computeValue:e=>typeof e.module=="number"?e.module:y0.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:["module","target"],computeValue:e=>{let t=e.moduleResolution;if(t===void 0)switch(y0.module.computeValue(e)){case 1:t=2;break;case 100:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1;break}return t}},moduleDetection:{dependencies:["module","target"],computeValue:e=>e.moduleDetection||(y0.module.computeValue(e)===100||y0.module.computeValue(e)===199?3:2)},isolatedModules:{dependencies:["verbatimModuleSyntax"],computeValue:e=>!!(e.isolatedModules||e.verbatimModuleSyntax)},esModuleInterop:{dependencies:["module","target"],computeValue:e=>{if(e.esModuleInterop!==void 0)return e.esModuleInterop;switch(y0.module.computeValue(e)){case 100:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:["module","target","moduleResolution"],computeValue:e=>e.allowSyntheticDefaultImports!==void 0?e.allowSyntheticDefaultImports:y0.esModuleInterop.computeValue(e)||y0.module.computeValue(e)===4||y0.moduleResolution.computeValue(e)===100},resolvePackageJsonExports:{dependencies:["moduleResolution"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:["moduleResolution","resolvePackageJsonExports"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:["moduleResolution","module","target"],computeValue:e=>e.resolveJsonModule!==void 0?e.resolveJsonModule:y0.moduleResolution.computeValue(e)===100},declaration:{dependencies:["composite"],computeValue:e=>!!(e.declaration||e.composite)},preserveConstEnums:{dependencies:["isolatedModules","verbatimModuleSyntax"],computeValue:e=>!!(e.preserveConstEnums||y0.isolatedModules.computeValue(e))},incremental:{dependencies:["composite"],computeValue:e=>!!(e.incremental||e.composite)},declarationMap:{dependencies:["declaration","composite"],computeValue:e=>!!(e.declarationMap&&y0.declaration.computeValue(e))},allowJs:{dependencies:["checkJs"],computeValue:e=>e.allowJs===void 0?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:["target","module"],computeValue:e=>e.useDefineForClassFields===void 0?y0.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitAny")},noImplicitThis:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitThis")},strictNullChecks:{dependencies:["strict"],computeValue:e=>Eee(e,"strictNullChecks")},strictFunctionTypes:{dependencies:["strict"],computeValue:e=>Eee(e,"strictFunctionTypes")},strictBindCallApply:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBindCallApply")},strictPropertyInitialization:{dependencies:["strict"],computeValue:e=>Eee(e,"strictPropertyInitialization")},strictBuiltinIteratorReturn:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBuiltinIteratorReturn")},alwaysStrict:{dependencies:["strict"],computeValue:e=>Eee(e,"alwaysStrict")},useUnknownInCatchVariables:{dependencies:["strict"],computeValue:e=>Eee(e,"useUnknownInCatchVariables")}},TTu=y0.allowImportingTsExtensions.computeValue,RTu=y0.target.computeValue,NTu=y0.module.computeValue,DTu=y0.moduleResolution.computeValue,kTu=y0.moduleDetection.computeValue,xTu=y0.isolatedModules.computeValue,GTu=y0.esModuleInterop.computeValue,FTu=y0.allowSyntheticDefaultImports.computeValue,ZTu=y0.resolvePackageJsonExports.computeValue,LTu=y0.resolvePackageJsonImports.computeValue,VTu=y0.resolveJsonModule.computeValue,PTu=y0.declaration.computeValue,WTu=y0.preserveConstEnums.computeValue,OTu=y0.incremental.computeValue,MTu=y0.declarationMap.computeValue,HTu=y0.allowJs.computeValue,YTu=y0.useDefineForClassFields.computeValue;function K2i(e){return e>=3&&e<=99||e===100}function Eee(e,t){return e[t]===void 0?!!e.strict:!!e[t]}function qqa(e){return Xza(targetOptionDeclaration.type,(t,r)=>t===e?r:void 0)}var $qa=["node_modules","bower_components","jspm_packages"],jvi=`(?!(${$qa.join("|")})(/|$))`,e$a={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,e$a.singleAsteriskRegexFragment)},t$a={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,t$a.singleAsteriskRegexFragment)};function zvi(e,t){return e==="*"?t:e==="?"?"[^/]":"\\"+e}function r$a(e,t){return t||n$a(e)||3}function n$a(e){switch(e.substr(e.lastIndexOf(".")).toLowerCase()){case".js":case".cjs":case".mjs":return 1;case".jsx":return 2;case".ts":case".cts":case".mts":return 3;case".tsx":return 4;case".json":return 6;default:return 0}}var qvi=[[".ts",".tsx",".d.ts"],[".cts",".d.cts"],[".mts",".d.mts"]],QTu=JSi(qvi),XTu=[...qvi,[".json"]],i$a=[[".js",".jsx"],[".mjs"],[".cjs"]],JTu=JSi(i$a),s$a=[[".ts",".tsx",".d.ts",".js",".jsx"],[".cts",".d.cts",".cjs"],[".mts",".d.mts",".mjs"]],UTu=[...s$a,[".json"]],o$a=[".d.ts",".d.cts",".d.mts"];function bJe(e){return!(e>=0)}function Dbt(e,...t){return t.length&&(e.relatedInformation||(e.relatedInformation=[]),Zo.assert(e.relatedInformation!==x2,"Diagnostic had empty array singleton for related info, but is still being constructed!"),e.relatedInformation.push(...t)),e}function a$a(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:let I=e.length-1,C=0;for(;e.charCodeAt(C)===48;)C++;return e.slice(C,I)||"0"}let r=2,n=e.length-1,a=(n-r)*t,o=new Uint16Array((a>>>4)+(a&15?1:0));for(let I=n-1,C=0;I>=r;I--,C+=t){let b=C>>>4,E=e.charCodeAt(I),N=(E<=57?E-48:10+E-(E<=70?65:97))<<(C&15);o[b]|=N;let B=N>>>16;B&&(o[b+1]|=B)}let l="",A=o.length-1,f=!0;for(;f;){let I=0;f=!1;for(let C=A;C>=0;C--){let b=I<<16|o[C],E=b/10|0;o[C]=E,I=b-E*10,E&&!f&&(A=C,f=!0)}l=I+l}return l}function c$a({negative:e,base10Value:t}){return(e&&t!=="0"?"-":"")+t}function pNr(e,t){return e.pos=t,e}function l$a(e,t){return e.end=t,e}function Ece(e,t,r){return l$a(pNr(e,t),r)}function j2i(e,t,r){return Ece(e,t,t+r)}function $Nr(e,t){return e&&t&&(e.parent=t),e}function u$a(e,t){if(!e)return e;return vSi(e,Vvi(e)?r:a),e;function r(o,l){if(t&&o.parent===l)return"skip";$Nr(o,l)}function n(o){if(Pme(o))for(let l of o.jsDoc)r(l,o),vSi(l,r)}function a(o,l){return r(o,l)||n(o)}}function g$a(e){return!!(e.flags&262144&&e.isThisType)}function A$a(e){var t;return((t=getSnippetElement(e))==null?void 0:t.kind)===0}function d$a(e){return`${yV(e.namespace)}:${yV(e.name)}`}var KTu=String.prototype.replace,fNr=["assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","inspector/promises","module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","test/mock_loader","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"],jTu=new Set(fNr),p$a=new Set(["node:sea","node:sqlite","node:test","node:test/reporters"]),zTu=new Set([...fNr,...fNr.map(e=>`node:${e}`),...p$a]);function f$a(){let e,t,r,n,a;return{createBaseSourceFileNode:o,createBaseIdentifierNode:l,createBasePrivateIdentifierNode:A,createBaseTokenNode:f,createBaseNode:I};function o(C){return new(a||(a=k2.getSourceFileConstructor()))(C,-1,-1)}function l(C){return new(r||(r=k2.getIdentifierConstructor()))(C,-1,-1)}function A(C){return new(n||(n=k2.getPrivateIdentifierConstructor()))(C,-1,-1)}function f(C){return new(t||(t=k2.getTokenConstructor()))(C,-1,-1)}function I(C){return new(e||(e=k2.getNodeConstructor()))(C,-1,-1)}}var I$a={getParenthesizeLeftSideOfBinaryForOperator:e=>VE,getParenthesizeRightSideOfBinaryForOperator:e=>VE,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,r)=>r,parenthesizeExpressionOfComputedPropertyName:VE,parenthesizeConditionOfConditionalExpression:VE,parenthesizeBranchOfConditionalExpression:VE,parenthesizeExpressionOfExportDefault:VE,parenthesizeExpressionOfNew:e=>Aj(e,TNe),parenthesizeLeftSideOfAccess:e=>Aj(e,TNe),parenthesizeOperandOfPostfixUnary:e=>Aj(e,TNe),parenthesizeOperandOfPrefixUnary:e=>Aj(e,Gza),parenthesizeExpressionsOfCommaDelimitedList:e=>Aj(e,_ce),parenthesizeExpressionForDisallowedComma:VE,parenthesizeExpressionOfExpressionStatement:VE,parenthesizeConciseBodyOfArrowFunction:VE,parenthesizeCheckTypeOfConditionalType:VE,parenthesizeExtendsTypeOfConditionalType:VE,parenthesizeConstituentTypesOfUnionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfUnionType:VE,parenthesizeConstituentTypesOfIntersectionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfIntersectionType:VE,parenthesizeOperandOfTypeOperator:VE,parenthesizeOperandOfReadonlyTypeOperator:VE,parenthesizeNonArrayTypeOfPostfixType:VE,parenthesizeElementTypesOfTupleType:e=>Aj(e,_ce),parenthesizeElementTypeOfTupleType:VE,parenthesizeTypeOfOptionalType:VE,parenthesizeTypeArguments:e=>e&&Aj(e,_ce),parenthesizeLeadingTypeArgument:VE},kbt=0,h$a=[];function eDr(e,t){let r=e&8?VE:b$a,n=w2i(()=>e&1?I$a:createParenthesizerRules(X)),a=w2i(()=>e&2?nullNodeConverters:createNodeConverters(X)),o=eH(z=>(ye,Ve)=>gt(ye,z,Ve)),l=eH(z=>ye=>se(z,ye)),A=eH(z=>ye=>K(ye,z)),f=eH(z=>()=>ND(z)),I=eH(z=>ye=>q_(z,ye)),C=eH(z=>(ye,Ve)=>UR(z,ye,Ve)),b=eH(z=>(ye,Ve)=>DD(z,ye,Ve)),E=eH(z=>(ye,Ve)=>kD(z,ye,Ve)),N=eH(z=>(ye,Ve)=>Mo(z,ye,Ve)),B=eH(z=>(ye,Ve,Ct)=>gp(z,ye,Ve,Ct)),F=eH(z=>(ye,Ve,Ct)=>lF(z,ye,Ve,Ct)),Q=eH(z=>(ye,Ve,Ct,wr)=>uF(z,ye,Ve,Ct,wr)),X={get parenthesizer(){return n()},get converters(){return a()},baseFactory:t,flags:e,createNodeArray:ae,createNumericLiteral:ue,createBigIntLiteral:de,createStringLiteral:Se,createStringLiteralFromNode:De,createRegularExpressionLiteral:k,createLiteralLikeNode:et,createIdentifier:je,createTempVariable:St,createLoopVariable:At,createUniqueName:Yt,getGeneratedNameForNode:Tr,createPrivateIdentifier:er,createUniquePrivateName:xt,getGeneratedPrivateNameForNode:Zr,createToken:Xt,createSuper:lr,createThis:cr,createNull:Ar,createTrue:qr,createFalse:_n,createModifier:ke,createModifiersFromModifierFlags:jt,createQualifiedName:Fn,updateQualifiedName:Nn,createComputedPropertyName:Hi,updateComputedPropertyName:po,createTypeParameterDeclaration:Vr,updateTypeParameterDeclaration:xi,createParameterDeclaration:io,updateParameterDeclaration:ga,createDecorator:Ya,updateDecorator:Gc,createPropertySignature:cl,updatePropertySignature:Sc,createPropertyDeclaration:Wr,updatePropertyDeclaration:Ft,createMethodSignature:zr,updateMethodSignature:Rn,createMethodDeclaration:Or,updateMethodDeclaration:Qi,createConstructorDeclaration:gc,updateConstructorDeclaration:Cg,createGetAccessorDeclaration:iA,updateGetAccessorDeclaration:ma,createSetAccessorDeclaration:li,updateSetAccessorDeclaration:Ei,createCallSignature:Xa,updateCallSignature:ac,createConstructSignature:Yl,updateConstructSignature:Wc,createIndexSignature:Sg,updateIndexSignature:Ul,createClassStaticBlockDeclaration:yo,updateClassStaticBlockDeclaration:bo,createTemplateLiteralTypeSpan:Xu,updateTemplateLiteralTypeSpan:Da,createKeywordTypeNode:pu,createTypePredicateNode:_g,updateTypePredicateNode:mI,createTypeReferenceNode:Qh,updateTypeReferenceNode:Ri,createFunctionTypeNode:Do,updateFunctionTypeNode:Wt,createConstructorTypeNode:Ru,updateConstructorTypeNode:Yn,createTypeQueryNode:OA,updateTypeQueryNode:GA,createTypeLiteralNode:$i,updateTypeLiteralNode:dl,createArrayTypeNode:Uf,updateArrayTypeNode:Kd,createTupleTypeNode:oA,updateTupleTypeNode:oo,createNamedTupleMember:Ki,updateNamedTupleMember:cc,createOptionalTypeNode:Xs,updateOptionalTypeNode:ws,createRestTypeNode:Gs,updateRestTypeNode:Ma,createUnionTypeNode:Tf,updateUnionTypeNode:cm,createIntersectionTypeNode:Fl,updateIntersectionTypeNode:rc,createConditionalTypeNode:sd,updateConditionalTypeNode:Om,createInferTypeNode:il,updateInferTypeNode:FA,createImportTypeNode:yg,updateImportTypeNode:Mp,createParenthesizedType:MA,updateParenthesizedType:Er,createThisTypeNode:Zt,createTypeOperatorNode:yn,updateTypeOperatorNode:ls,createIndexedAccessTypeNode:oa,updateIndexedAccessTypeNode:Fs,createMappedTypeNode:Wa,updateMappedTypeNode:Ca,createLiteralTypeNode:ld,updateLiteralTypeNode:Rp,createTemplateLiteralType:ZA,updateTemplateLiteralType:El,createObjectBindingPattern:np,updateObjectBindingPattern:HA,createArrayBindingPattern:df,updateArrayBindingPattern:Zs,createBindingElement:so,updateBindingElement:Ea,createArrayLiteralExpression:Ml,updateArrayLiteralExpression:Dr,createObjectLiteralExpression:Wn,updateObjectLiteralExpression:di,createPropertyAccessExpression:e&4?(z,ye)=>setEmitFlags(Bo(z,ye),262144):Bo,updatePropertyAccessExpression:us,createPropertyAccessChain:e&4?(z,ye,Ve)=>setEmitFlags(Ql(z,ye,Ve),262144):Ql,updatePropertyAccessChain:LA,createElementAccessExpression:ef,updateElementAccessExpression:ip,createElementAccessChain:_d,updateElementAccessChain:j1,createCallExpression:YA,updateCallExpression:Ac,createCallChain:Nm,updateCallChain:HS,createNewExpression:jd,updateNewExpression:dh,createTaggedTemplateExpression:Hp,updateTaggedTemplateExpression:uC,createTypeAssertion:nE,updateTypeAssertion:J_,createParenthesizedExpression:q0,updateParenthesizedExpression:XE,createFunctionExpression:TC,updateFunctionExpression:t_,createArrowFunction:cp,updateArrowFunction:Mm,createDeleteExpression:fb,updateDeleteExpression:pe,createTypeOfExpression:lm,updateTypeOfExpression:Kf,createVoidExpression:CI,updateVoidExpression:_I,createAwaitExpression:H2,updateAwaitExpression:iE,createPrefixUnaryExpression:se,updatePrefixUnaryExpression:O,createPostfixUnaryExpression:K,updatePostfixUnaryExpression:we,createBinaryExpression:gt,updateBinaryExpression:Yr,createConditionalExpression:Lr,updateConditionalExpression:fi,createTemplateExpression:$n,updateTemplateExpression:ra,createTemplateHead:SA,createTemplateMiddle:lI,createTemplateTail:lp,createNoSubstitutionTemplateLiteral:Ib,createTemplateLiteralLikeNode:$g,createYieldExpression:Na,updateYieldExpression:wd,createSpreadElement:z1,updateSpreadElement:T_,createClassExpression:RC,updateClassExpression:Hm,createOmittedExpression:YS,createExpressionWithTypeArguments:Fg,updateExpressionWithTypeArguments:hb,createAsExpression:gC,updateAsExpression:NC,createNonNullExpression:Y2,updateNonNullExpression:U_,createSatisfiesExpression:DC,updateSatisfiesExpression:kC,createNonNullChain:qI,updateNonNullChain:ph,createMetaProperty:vA,updateMetaProperty:Td,createTemplateSpan:Mc,updateTemplateSpan:Pf,createSemicolonClassElement:sE,createBlock:eA,updateBlock:QS,createVariableStatement:XS,updateVariableStatement:um,createEmptyStatement:gm,createExpressionStatement:cs,updateExpressionStatement:na,createIfStatement:ko,updateIfStatement:ki,createDoStatement:Kl,updateDoStatement:fd,createWhileStatement:jf,updateWhileStatement:Ld,createForStatement:AC,updateForStatement:JE,createForInStatement:Ym,updateForInStatement:vy,createForOfStatement:K_,updateForOfStatement:od,createContinueStatement:UE,updateContinueStatement:KE,createBreakStatement:Yp,updateBreakStatement:JS,createReturnStatement:By,updateReturnStatement:$0,createWithStatement:fw,updateWithStatement:Q2,createSwitchStatement:xc,updateSwitchStatement:ut,createLabeledStatement:ar,updateLabeledStatement:Jr,createThrowStatement:Gn,updateThrowStatement:Ts,createTryStatement:Qo,updateTryStatement:vg,createDebuggerStatement:Ng,createVariableDeclaration:Rf,updateVariableDeclaration:uI,createVariableDeclarationList:Th,updateVariableDeclarationList:oE,createFunctionDeclaration:TT,updateFunctionDeclaration:sB,createClassDeclaration:wy,updateClassDeclaration:jE,createInterfaceDeclaration:j_,updateInterfaceDeclaration:NT,createTypeAliasDeclaration:tf,updateTypeAliasDeclaration:Ty,createEnumDeclaration:US,updateEnumDeclaration:$I,createModuleDeclaration:BA,updateModuleDeclaration:$A,createModuleBlock:Qm,updateModuleBlock:zf,createCaseBlock:mb,updateCaseBlock:R_,createNamespaceExportDeclaration:Cb,updateNamespaceExportDeclaration:Ry,createImportEqualsDeclaration:_b,updateImportEqualsDeclaration:z_,createImportDeclaration:zE,updateImportDeclaration:oB,createImportClause:DT,updateImportClause:aB,createAssertClause:jS,updateAssertClause:XR,createAssertEntry:zS,updateAssertEntry:qE,createImportTypeAssertionContainer:X2,updateImportTypeAssertionContainer:kT,createImportAttributes:pn,updateImportAttributes:q1,createImportAttribute:J2,updateImportAttribute:ey,createNamespaceImport:up,updateNamespaceImport:Iw,createNamespaceExport:cB,updateNamespaceExport:RD,createNamedImports:Rd,updateNamedImports:JR,createImportSpecifier:ty,updateImportSpecifier:cF,createExportAssignment:$1,updateExportAssignment:$E,createExportDeclaration:N_,updateExportDeclaration:e1,createNamedExports:ry,updateNamedExports:xT,createExportSpecifier:yb,updateExportSpecifier:r_,createMissingDeclaration:Rh,createExternalModuleReference:bb,updateExternalModuleReference:lB,get createJSDocAllType(){return f(312)},get createJSDocUnknownType(){return f(313)},get createJSDocNonNullableType(){return b(315)},get updateJSDocNonNullableType(){return E(315)},get createJSDocNullableType(){return b(314)},get updateJSDocNullableType(){return E(314)},get createJSDocOptionalType(){return I(316)},get updateJSDocOptionalType(){return C(316)},get createJSDocVariadicType(){return I(318)},get updateJSDocVariadicType(){return C(318)},get createJSDocNamepathType(){return I(319)},get updateJSDocNamepathType(){return C(319)},createJSDocFunctionType:lc,updateJSDocFunctionType:fh,createJSDocTypeLiteral:rf,updateJSDocTypeLiteral:yI,createJSDocTypeExpression:aE,updateJSDocTypeExpression:qS,createJSDocSignature:Qp,updateJSDocSignature:uB,createJSDocTemplateTag:r1,updateJSDocTemplateTag:gB,createJSDocTypedefTag:hw,updateJSDocTypedefTag:GT,createJSDocParameterTag:b0,updateJSDocParameterTag:ia,createJSDocPropertyTag:e2,updateJSDocPropertyTag:yd,createJSDocCallbackTag:bI,updateJSDocCallbackTag:ag,createJSDocOverloadTag:Eb,updateJSDocOverloadTag:n1,createJSDocAugmentsTag:U2,updateJSDocAugmentsTag:e0,createJSDocImplementsTag:n_,updateJSDocImplementsTag:Wf,createJSDocSeeTag:Xp,updateJSDocSeeTag:cE,createJSDocImportTag:Dp,updateJSDocImportTag:t2,createJSDocNameReference:lE,updateJSDocNameReference:Ip,createJSDocMemberName:Xh,updateJSDocMemberName:E0,createJSDocLink:aA,updateJSDocLink:fu,createJSDocLinkCode:Jp,updateJSDocLinkCode:dC,createJSDocLinkPlain:uE,updateJSDocLinkPlain:eh,get createJSDocTypeTag(){return F(344)},get updateJSDocTypeTag(){return Q(344)},get createJSDocReturnTag(){return F(342)},get updateJSDocReturnTag(){return Q(342)},get createJSDocThisTag(){return F(343)},get updateJSDocThisTag(){return Q(343)},get createJSDocAuthorTag(){return N(330)},get updateJSDocAuthorTag(){return B(330)},get createJSDocClassTag(){return N(332)},get updateJSDocClassTag(){return B(332)},get createJSDocPublicTag(){return N(333)},get updateJSDocPublicTag(){return B(333)},get createJSDocPrivateTag(){return N(334)},get updateJSDocPrivateTag(){return B(334)},get createJSDocProtectedTag(){return N(335)},get updateJSDocProtectedTag(){return B(335)},get createJSDocReadonlyTag(){return N(336)},get updateJSDocReadonlyTag(){return B(336)},get createJSDocOverrideTag(){return N(337)},get updateJSDocOverrideTag(){return B(337)},get createJSDocDeprecatedTag(){return N(331)},get updateJSDocDeprecatedTag(){return B(331)},get createJSDocThrowsTag(){return F(349)},get updateJSDocThrowsTag(){return Q(349)},get createJSDocSatisfiesTag(){return F(350)},get updateJSDocSatisfiesTag(){return Q(350)},createJSDocEnumTag:Np,updateJSDocEnumTag:Dm,createJSDocUnknownTag:gE,updateJSDocUnknownTag:FT,createJSDocText:Ro,updateJSDocText:AE,createJSDocComment:AB,updateJSDocComment:Xc,createJsxElement:iu,updateJsxElement:dE,createJsxSelfClosingElement:yL,updateJsxSelfClosingElement:KR,createJsxOpeningElement:Ou,updateJsxOpeningElement:ny,createJsxClosingElement:hp,updateJsxClosingElement:Am,createJsxFragment:K2,createJsxText:dB,updateJsxText:ZT,createJsxOpeningFragment:Cx,createJsxJsxClosingFragment:pB,updateJsxFragment:i_,createJsxAttribute:qf,updateJsxAttribute:Jh,createJsxAttributes:$S,updateJsxAttributes:Sb,createJsxSpreadAttribute:mp,updateJsxSpreadAttribute:r2,createJsxExpression:i1,updateJsxExpression:Of,createJsxNamespacedName:pE,updateJsxNamespacedName:Vd,createCaseClause:j,updateCaseClause:Z,createDefaultClause:Id,updateDefaultClause:fB,createHeritageClause:ev,updateHeritageClause:Ny,createCatchClause:vb,updateCatchClause:xD,createPropertyAssignment:IB,updatePropertyAssignment:Bb,createShorthandPropertyAssignment:gF,updateShorthandPropertyAssignment:x,createSpreadAssignment:te,updateSpreadAssignment:Re,createEnumMember:Le,updateEnumMember:ft,createSourceFile:dr,updateSourceFile:Ho,createRedirectedSourceFile:Ur,createBundle:Wg,updateBundle:cA,createSyntheticExpression:th,createSyntaxList:xn,createNotEmittedStatement:rn,createNotEmittedTypeElement:ec,createPartiallyEmittedExpression:Ci,updatePartiallyEmittedExpression:Po,createCommaListExpression:dc,updateCommaListExpression:Iu,createSyntheticReferenceExpression:Cl,updateSyntheticReferenceExpression:wl,cloneNode:tv,get createComma(){return o(28)},get createAssignment(){return o(64)},get createLogicalOr(){return o(57)},get createLogicalAnd(){return o(56)},get createBitwiseOr(){return o(52)},get createBitwiseXor(){return o(53)},get createBitwiseAnd(){return o(51)},get createStrictEquality(){return o(37)},get createStrictInequality(){return o(38)},get createEquality(){return o(35)},get createInequality(){return o(36)},get createLessThan(){return o(30)},get createLessThanEquals(){return o(33)},get createGreaterThan(){return o(32)},get createGreaterThanEquals(){return o(34)},get createLeftShift(){return o(48)},get createRightShift(){return o(49)},get createUnsignedRightShift(){return o(50)},get createAdd(){return o(40)},get createSubtract(){return o(41)},get createMultiply(){return o(42)},get createDivide(){return o(44)},get createModulo(){return o(45)},get createExponent(){return o(43)},get createPrefixPlus(){return l(40)},get createPrefixMinus(){return l(41)},get createPrefixIncrement(){return l(46)},get createPrefixDecrement(){return l(47)},get createBitwiseNot(){return l(55)},get createLogicalNot(){return l(54)},get createPostfixIncrement(){return A(46)},get createPostfixDecrement(){return A(47)},createImmediatelyInvokedFunctionExpression:Yu,createImmediatelyInvokedArrowFunction:qO,createVoidZero:hB,createExportDefault:mw,createExternalModuleExport:AF,createTypeCheck:$O,createIsNotTypeCheck:iY,createMethodCall:LT,createGlobalMethodCall:ff,createFunctionBindCall:GD,createFunctionCallCall:dF,createFunctionApplyCall:EL,createArraySliceCall:FD,createArrayConcatCall:fE,createObjectDefinePropertyCall:n2,createObjectGetOwnPropertyDescriptorCall:mB,createReflectGetCall:bd,createReflectSetCall:s1,createPropertyDescriptor:wb,createCallBinding:aY,createAssignmentTargetWrapper:tt,inlineExpressions:Jt,getInternalName:Xr,getLocalName:ui,getExportName:Is,getDeclarationName:Hs,getNamespaceMemberName:Rs,getExternalModuleOrNamespaceExportName:ja,restoreOuterExpressions:sY,restoreEnclosingLabel:oY,createUseStrictPrologue:Nd,copyPrologue:ho,copyStandardPrologue:ed,copyCustomPrologue:Og,ensureUseStrict:Nh,liftToBlock:o1,mergeLexicalEnvironment:q2,replaceModifiers:IE,replaceDecoratorsAndModifiers:zR,replacePropertyName:e3};return hO(h$a,z=>z(X)),X;function ae(z,ye){if(z===void 0||z===x2)z=[];else if(_ce(z)){if(ye===void 0||z.hasTrailingComma===ye)return z.transformFlags===void 0&&q2i(z),Zo.attachNodeArrayDebugInfo(z),z;let wr=z.slice();return wr.pos=z.pos,wr.end=z.end,wr.hasTrailingComma=ye,wr.transformFlags=z.transformFlags,Zo.attachNodeArrayDebugInfo(wr),wr}let Ve=z.length,Ct=Ve>=1&&Ve<=4?z.slice():z;return Ct.pos=-1,Ct.end=-1,Ct.hasTrailingComma=!!ye,Ct.transformFlags=0,q2i(Ct),Zo.attachNodeArrayDebugInfo(Ct),Ct}function ne(z){return t.createBaseNode(z)}function ce(z){let ye=ne(z);return ye.symbol=void 0,ye.localSymbol=void 0,ye}function fe(z,ye){return z!==ye&&(z.typeArguments=ye.typeArguments),Eo(z,ye)}function ue(z,ye=0){let Ve=typeof z=="number"?z+"":z;Zo.assert(Ve.charCodeAt(0)!==45,"Negative numbers should be created in combination with createPrefixUnaryExpression");let Ct=ce(9);return Ct.text=Ve,Ct.numericLiteralFlags=ye,ye&384&&(Ct.transformFlags|=1024),Ct}function de(z){let ye=qt(10);return ye.text=typeof z=="string"?z:c$a(z)+"n",ye.transformFlags|=32,ye}function be(z,ye){let Ve=ce(11);return Ve.text=z,Ve.singleQuote=ye,Ve}function Se(z,ye,Ve){let Ct=be(z,ye);return Ct.hasExtendedUnicodeEscape=Ve,Ve&&(Ct.transformFlags|=1024),Ct}function De(z){let ye=be(Sqa(z),void 0);return ye.textSourceNode=z,ye}function k(z){let ye=qt(14);return ye.text=z,ye}function et(z,ye){switch(z){case 9:return ue(ye,0);case 10:return de(ye);case 11:return Se(ye,void 0);case 12:return dB(ye,!1);case 13:return dB(ye,!0);case 14:return k(ye);case 15:return $g(z,ye,void 0,0)}}function ct(z){let ye=t.createBaseIdentifierNode(80);return ye.escapedText=z,ye.jsDoc=void 0,ye.flowNode=void 0,ye.symbol=void 0,ye}function Me(z,ye,Ve,Ct){let wr=ct(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function je(z,ye,Ve){ye===void 0&&z&&(ye=pvi(z)),ye===80&&(ye=void 0);let Ct=ct(mNe(z));return Ve&&(Ct.flags|=256),Ct.escapedText==="await"&&(Ct.transformFlags|=67108864),Ct.flags&256&&(Ct.transformFlags|=1024),Ct}function St(z,ye,Ve,Ct){let wr=1;ye&&(wr|=8);let ai=Me("",wr,Ve,Ct);return z&&z(ai),ai}function At(z){let ye=2;return z&&(ye|=8),Me("",ye,void 0,void 0)}function Yt(z,ye=0,Ve,Ct){return Zo.assert(!(ye&7),"Argument out of range: flags"),Zo.assert((ye&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Me(z,3|ye,Ve,Ct)}function Tr(z,ye=0,Ve,Ct){Zo.assert(!(ye&7),"Argument out of range: flags");let wr=z?gNr(z)?CNr(!1,Ve,z,Ct,yV):`generated@${getNodeId(z)}`:"";(Ve||Ct)&&(ye|=16);let ai=Me(wr,4|ye,Ve,Ct);return ai.original=z,ai}function Nr(z){let ye=t.createBasePrivateIdentifierNode(81);return ye.escapedText=z,ye.transformFlags|=16777216,ye}function er(z){return Obt(z,"#")||Zo.fail("First character of private identifier must be #: "+z),Nr(mNe(z))}function vt(z,ye,Ve,Ct){let wr=Nr(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function xt(z,ye,Ve){z&&!Obt(z,"#")&&Zo.fail("First character of private identifier must be #: "+z);let Ct=8|(z?3:1);return vt(z??"",Ct,ye,Ve)}function Zr(z,ye,Ve){let Ct=gNr(z)?CNr(!0,ye,z,Ve,yV):`#generated@${getNodeId(z)}`,wr=vt(Ct,4|(ye||Ve?16:0),ye,Ve);return wr.original=z,wr}function qt(z){return t.createBaseTokenNode(z)}function Xt(z){Zo.assert(z>=0&&z<=165,"Invalid token"),Zo.assert(z<=15||z>=18,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),Zo.assert(z<=9||z>=15,"Invalid token. Use 'createLiteralLikeNode' to create literals."),Zo.assert(z!==80,"Invalid token. Use 'createIdentifier' to create identifiers");let ye=qt(z),Ve=0;switch(z){case 134:Ve=384;break;case 160:Ve=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:Ve=1;break;case 108:Ve=134218752,ye.flowNode=void 0;break;case 126:Ve=1024;break;case 129:Ve=16777216;break;case 110:Ve=16384,ye.flowNode=void 0;break}return Ve&&(ye.transformFlags|=Ve),ye}function lr(){return Xt(108)}function cr(){return Xt(110)}function Ar(){return Xt(106)}function qr(){return Xt(112)}function _n(){return Xt(97)}function ke(z){return Xt(z)}function jt(z){let ye=[];return z&32&&ye.push(ke(95)),z&128&&ye.push(ke(138)),z&2048&&ye.push(ke(90)),z&4096&&ye.push(ke(87)),z&1&&ye.push(ke(125)),z&2&&ye.push(ke(123)),z&4&&ye.push(ke(124)),z&64&&ye.push(ke(128)),z&256&&ye.push(ke(126)),z&16&&ye.push(ke(164)),z&8&&ye.push(ke(148)),z&512&&ye.push(ke(129)),z&1024&&ye.push(ke(134)),z&8192&&ye.push(ke(103)),z&16384&&ye.push(ke(147)),ye.length?ye:void 0}function Fn(z,ye){let Ve=ne(166);return Ve.left=z,Ve.right=EI(ye),Ve.transformFlags|=$o(Ve.left)|_Ne(Ve.right),Ve.flowNode=void 0,Ve}function Nn(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Fn(ye,Ve),z):z}function Hi(z){let ye=ne(167);return ye.expression=n().parenthesizeExpressionOfComputedPropertyName(z),ye.transformFlags|=$o(ye.expression)|1024|131072,ye}function po(z,ye){return z.expression!==ye?Eo(Hi(ye),z):z}function Vr(z,ye,Ve,Ct){let wr=ce(168);return wr.modifiers=IA(z),wr.name=EI(ye),wr.constraint=Ve,wr.default=Ct,wr.transformFlags=1,wr.expression=void 0,wr.jsDoc=void 0,wr}function xi(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.constraint!==Ct||z.default!==wr?Eo(Vr(ye,Ve,Ct,wr),z):z}function io(z,ye,Ve,Ct,wr,ai){let Lo=ce(169);return Lo.modifiers=IA(z),Lo.dotDotDotToken=ye,Lo.name=EI(Ve),Lo.questionToken=Ct,Lo.type=wr,Lo.initializer=wA(ai),Bqa(Lo.name)?Lo.transformFlags=1:Lo.transformFlags=qA(Lo.modifiers)|$o(Lo.dotDotDotToken)|pO(Lo.name)|$o(Lo.questionToken)|$o(Lo.initializer)|(Lo.questionToken??Lo.type?1:0)|(Lo.dotDotDotToken??Lo.initializer?1024:0)|(fO(Lo.modifiers)&31?8192:0),Lo.jsDoc=void 0,Lo}function ga(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.dotDotDotToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.type!==ai||z.initializer!==Lo?Eo(io(ye,Ve,Ct,wr,ai,Lo),z):z}function Ya(z){let ye=ne(170);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1|8192|33554432,ye}function Gc(z,ye){return z.expression!==ye?Eo(Ya(ye),z):z}function cl(z,ye,Ve,Ct){let wr=ce(171);return wr.modifiers=IA(z),wr.name=EI(ye),wr.type=Ct,wr.questionToken=Ve,wr.transformFlags=1,wr.initializer=void 0,wr.jsDoc=void 0,wr}function Sc(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Hr(cl(ye,Ve,Ct,wr),z):z}function Hr(z,ye){return z!==ye&&(z.initializer=ye.initializer),Eo(z,ye)}function Wr(z,ye,Ve,Ct,wr){let ai=ce(172);ai.modifiers=IA(z),ai.name=EI(ye),ai.questionToken=Ve&&eSi(Ve)?Ve:void 0,ai.exclamationToken=Ve&&$2i(Ve)?Ve:void 0,ai.type=Ct,ai.initializer=wA(wr);let Lo=ai.flags&33554432||fO(ai.modifiers)&128;return ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|$o(ai.initializer)|(Lo||ai.questionToken||ai.exclamationToken||ai.type?1:0)|($vi(ai.name)||fO(ai.modifiers)&256&&ai.initializer?8192:0)|16777216,ai.jsDoc=void 0,ai}function Ft(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==(Ct!==void 0&&eSi(Ct)?Ct:void 0)||z.exclamationToken!==(Ct!==void 0&&$2i(Ct)?Ct:void 0)||z.type!==wr||z.initializer!==ai?Eo(Wr(ye,Ve,Ct,wr,ai),z):z}function zr(z,ye,Ve,Ct,wr,ai){let Lo=ce(173);return Lo.modifiers=IA(z),Lo.name=EI(ye),Lo.questionToken=Ve,Lo.typeParameters=IA(Ct),Lo.parameters=IA(wr),Lo.type=ai,Lo.transformFlags=1,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.typeArguments=void 0,Lo}function Rn(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo?fe(zr(ye,Ve,Ct,wr,ai,Lo),z):z}function Or(z,ye,Ve,Ct,wr,ai,Lo,Hc){let ad=ce(174);if(ad.modifiers=IA(z),ad.asteriskToken=ye,ad.name=EI(Ve),ad.questionToken=Ct,ad.exclamationToken=void 0,ad.typeParameters=IA(wr),ad.parameters=ae(ai),ad.type=Lo,ad.body=Hc,!ad.body)ad.transformFlags=1;else{let dm=fO(ad.modifiers)&1024,rv=!!ad.asteriskToken,nv=dm&&rv;ad.transformFlags=qA(ad.modifiers)|$o(ad.asteriskToken)|pO(ad.name)|$o(ad.questionToken)|qA(ad.typeParameters)|qA(ad.parameters)|$o(ad.type)|$o(ad.body)&-67108865|(nv?128:dm?256:rv?2048:0)|(ad.questionToken||ad.typeParameters||ad.type?1:0)|1024}return ad.typeArguments=void 0,ad.jsDoc=void 0,ad.locals=void 0,ad.nextContainer=void 0,ad.flowNode=void 0,ad.endFlowNode=void 0,ad.returnFlowNode=void 0,ad}function Qi(z,ye,Ve,Ct,wr,ai,Lo,Hc,ad){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.typeParameters!==ai||z.parameters!==Lo||z.type!==Hc||z.body!==ad?ps(Or(ye,Ve,Ct,wr,ai,Lo,Hc,ad),z):z}function ps(z,ye){return z!==ye&&(z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function yo(z){let ye=ce(175);return ye.body=z,ye.transformFlags=$o(z)|16777216,ye.modifiers=void 0,ye.jsDoc=void 0,ye.locals=void 0,ye.nextContainer=void 0,ye.endFlowNode=void 0,ye.returnFlowNode=void 0,ye}function bo(z,ye){return z.body!==ye?Qa(yo(ye),z):z}function Qa(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function gc(z,ye,Ve){let Ct=ce(176);return Ct.modifiers=IA(z),Ct.parameters=ae(ye),Ct.body=Ve,Ct.body?Ct.transformFlags=qA(Ct.modifiers)|qA(Ct.parameters)|$o(Ct.body)&-67108865|1024:Ct.transformFlags=1,Ct.typeParameters=void 0,Ct.type=void 0,Ct.typeArguments=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.returnFlowNode=void 0,Ct}function Cg(z,ye,Ve,Ct){return z.modifiers!==ye||z.parameters!==Ve||z.body!==Ct?Nc(gc(ye,Ve,Ct),z):z}function Nc(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function iA(z,ye,Ve,Ct,wr){let ai=ce(177);return ai.modifiers=IA(z),ai.name=EI(ye),ai.parameters=ae(Ve),ai.type=Ct,ai.body=wr,ai.body?ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|qA(ai.parameters)|$o(ai.type)|$o(ai.body)&-67108865|(ai.type?1:0):ai.transformFlags=1,ai.typeArguments=void 0,ai.typeParameters=void 0,ai.jsDoc=void 0,ai.locals=void 0,ai.nextContainer=void 0,ai.flowNode=void 0,ai.endFlowNode=void 0,ai.returnFlowNode=void 0,ai}function ma(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.type!==wr||z.body!==ai?vu(iA(ye,Ve,Ct,wr,ai),z):z}function vu(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters),fe(z,ye)}function li(z,ye,Ve,Ct){let wr=ce(178);return wr.modifiers=IA(z),wr.name=EI(ye),wr.parameters=ae(Ve),wr.body=Ct,wr.body?wr.transformFlags=qA(wr.modifiers)|pO(wr.name)|qA(wr.parameters)|$o(wr.body)&-67108865|(wr.type?1:0):wr.transformFlags=1,wr.typeArguments=void 0,wr.typeParameters=void 0,wr.type=void 0,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr.endFlowNode=void 0,wr.returnFlowNode=void 0,wr}function Ei(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.body!==wr?Ps(li(ye,Ve,Ct,wr),z):z}function Ps(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function Xa(z,ye,Ve){let Ct=ce(179);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function ac(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Xa(ye,Ve,Ct),z):z}function Yl(z,ye,Ve){let Ct=ce(180);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wc(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Yl(ye,Ve,Ct),z):z}function Sg(z,ye,Ve){let Ct=ce(181);return Ct.modifiers=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Ul(z,ye,Ve,Ct){return z.parameters!==Ve||z.type!==Ct||z.modifiers!==ye?fe(Sg(ye,Ve,Ct),z):z}function Xu(z,ye){let Ve=ne(204);return Ve.type=z,Ve.literal=ye,Ve.transformFlags=1,Ve}function Da(z,ye,Ve){return z.type!==ye||z.literal!==Ve?Eo(Xu(ye,Ve),z):z}function pu(z){return Xt(z)}function _g(z,ye,Ve){let Ct=ne(182);return Ct.assertsModifier=z,Ct.parameterName=EI(ye),Ct.type=Ve,Ct.transformFlags=1,Ct}function mI(z,ye,Ve,Ct){return z.assertsModifier!==ye||z.parameterName!==Ve||z.type!==Ct?Eo(_g(ye,Ve,Ct),z):z}function Qh(z,ye){let Ve=ne(183);return Ve.typeName=EI(z),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ae(ye)),Ve.transformFlags=1,Ve}function Ri(z,ye,Ve){return z.typeName!==ye||z.typeArguments!==Ve?Eo(Qh(ye,Ve),z):z}function Do(z,ye,Ve){let Ct=ce(184);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.modifiers=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wt(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Hu(Do(ye,Ve,Ct),z):z}function Hu(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),fe(z,ye)}function Ru(...z){return z.length===4?Vs(...z):z.length===3?Ju(...z):Zo.fail("Incorrect number of arguments specified.")}function Vs(z,ye,Ve,Ct){let wr=ce(185);return wr.modifiers=IA(z),wr.typeParameters=IA(ye),wr.parameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.typeArguments=void 0,wr}function Ju(z,ye,Ve){return Vs(void 0,z,ye,Ve)}function Yn(...z){return z.length===5?Ko(...z):z.length===4?Eg(...z):Zo.fail("Incorrect number of arguments specified.")}function Ko(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr?fe(Ru(ye,Ve,Ct,wr),z):z}function Eg(z,ye,Ve,Ct){return Ko(z,z.modifiers,ye,Ve,Ct)}function OA(z,ye){let Ve=ne(186);return Ve.exprName=z,Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags=1,Ve}function GA(z,ye,Ve){return z.exprName!==ye||z.typeArguments!==Ve?Eo(OA(ye,Ve),z):z}function $i(z){let ye=ce(187);return ye.members=ae(z),ye.transformFlags=1,ye}function dl(z,ye){return z.members!==ye?Eo($i(ye),z):z}function Uf(z){let ye=ne(188);return ye.elementType=n().parenthesizeNonArrayTypeOfPostfixType(z),ye.transformFlags=1,ye}function Kd(z,ye){return z.elementType!==ye?Eo(Uf(ye),z):z}function oA(z){let ye=ne(189);return ye.elements=ae(n().parenthesizeElementTypesOfTupleType(z)),ye.transformFlags=1,ye}function oo(z,ye){return z.elements!==ye?Eo(oA(ye),z):z}function Ki(z,ye,Ve,Ct){let wr=ce(202);return wr.dotDotDotToken=z,wr.name=ye,wr.questionToken=Ve,wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr}function cc(z,ye,Ve,Ct,wr){return z.dotDotDotToken!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Eo(Ki(ye,Ve,Ct,wr),z):z}function Xs(z){let ye=ne(190);return ye.type=n().parenthesizeTypeOfOptionalType(z),ye.transformFlags=1,ye}function ws(z,ye){return z.type!==ye?Eo(Xs(ye),z):z}function Gs(z){let ye=ne(191);return ye.type=z,ye.transformFlags=1,ye}function Ma(z,ye){return z.type!==ye?Eo(Gs(ye),z):z}function Dc(z,ye,Ve){let Ct=ne(z);return Ct.types=X.createNodeArray(Ve(ye)),Ct.transformFlags=1,Ct}function As(z,ye,Ve){return z.types!==ye?Eo(Dc(z.kind,ye,Ve),z):z}function Tf(z){return Dc(192,z,n().parenthesizeConstituentTypesOfUnionType)}function cm(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfUnionType)}function Fl(z){return Dc(193,z,n().parenthesizeConstituentTypesOfIntersectionType)}function rc(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfIntersectionType)}function sd(z,ye,Ve,Ct){let wr=ne(194);return wr.checkType=n().parenthesizeCheckTypeOfConditionalType(z),wr.extendsType=n().parenthesizeExtendsTypeOfConditionalType(ye),wr.trueType=Ve,wr.falseType=Ct,wr.transformFlags=1,wr.locals=void 0,wr.nextContainer=void 0,wr}function Om(z,ye,Ve,Ct,wr){return z.checkType!==ye||z.extendsType!==Ve||z.trueType!==Ct||z.falseType!==wr?Eo(sd(ye,Ve,Ct,wr),z):z}function il(z){let ye=ne(195);return ye.typeParameter=z,ye.transformFlags=1,ye}function FA(z,ye){return z.typeParameter!==ye?Eo(il(ye),z):z}function ZA(z,ye){let Ve=ne(203);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags=1,Ve}function El(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo(ZA(ye,Ve),z):z}function yg(z,ye,Ve,Ct,wr=!1){let ai=ne(205);return ai.argument=z,ai.attributes=ye,ai.assertions&&ai.assertions.assertClause&&ai.attributes&&(ai.assertions.assertClause=ai.attributes),ai.qualifier=Ve,ai.typeArguments=Ct&&n().parenthesizeTypeArguments(Ct),ai.isTypeOf=wr,ai.transformFlags=1,ai}function Mp(z,ye,Ve,Ct,wr,ai=z.isTypeOf){return z.argument!==ye||z.attributes!==Ve||z.qualifier!==Ct||z.typeArguments!==wr||z.isTypeOf!==ai?Eo(yg(ye,Ve,Ct,wr,ai),z):z}function MA(z){let ye=ne(196);return ye.type=z,ye.transformFlags=1,ye}function Er(z,ye){return z.type!==ye?Eo(MA(ye),z):z}function Zt(){let z=ne(197);return z.transformFlags=1,z}function yn(z,ye){let Ve=ne(198);return Ve.operator=z,Ve.type=z===148?n().parenthesizeOperandOfReadonlyTypeOperator(ye):n().parenthesizeOperandOfTypeOperator(ye),Ve.transformFlags=1,Ve}function ls(z,ye){return z.type!==ye?Eo(yn(z.operator,ye),z):z}function oa(z,ye){let Ve=ne(199);return Ve.objectType=n().parenthesizeNonArrayTypeOfPostfixType(z),Ve.indexType=ye,Ve.transformFlags=1,Ve}function Fs(z,ye,Ve){return z.objectType!==ye||z.indexType!==Ve?Eo(oa(ye,Ve),z):z}function Wa(z,ye,Ve,Ct,wr,ai){let Lo=ce(200);return Lo.readonlyToken=z,Lo.typeParameter=ye,Lo.nameType=Ve,Lo.questionToken=Ct,Lo.type=wr,Lo.members=ai&&ae(ai),Lo.transformFlags=1,Lo.locals=void 0,Lo.nextContainer=void 0,Lo}function Ca(z,ye,Ve,Ct,wr,ai,Lo){return z.readonlyToken!==ye||z.typeParameter!==Ve||z.nameType!==Ct||z.questionToken!==wr||z.type!==ai||z.members!==Lo?Eo(Wa(ye,Ve,Ct,wr,ai,Lo),z):z}function ld(z){let ye=ne(201);return ye.literal=z,ye.transformFlags=1,ye}function Rp(z,ye){return z.literal!==ye?Eo(ld(ye),z):z}function np(z){let ye=ne(206);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye.transformFlags&32768&&(ye.transformFlags|=65664),ye}function HA(z,ye){return z.elements!==ye?Eo(np(ye),z):z}function df(z){let ye=ne(207);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye}function Zs(z,ye){return z.elements!==ye?Eo(df(ye),z):z}function so(z,ye,Ve,Ct){let wr=ce(208);return wr.dotDotDotToken=z,wr.propertyName=EI(ye),wr.name=EI(Ve),wr.initializer=wA(Ct),wr.transformFlags|=$o(wr.dotDotDotToken)|pO(wr.propertyName)|pO(wr.name)|$o(wr.initializer)|(wr.dotDotDotToken?32768:0)|1024,wr.flowNode=void 0,wr}function Ea(z,ye,Ve,Ct,wr){return z.propertyName!==Ve||z.dotDotDotToken!==ye||z.name!==Ct||z.initializer!==wr?Eo(so(ye,Ve,Ct,wr),z):z}function Ml(z,ye){let Ve=ne(209),Ct=z&&Vme(z),wr=ae(z,Ct&&oec(Ct)?!0:void 0);return Ve.elements=n().parenthesizeExpressionsOfCommaDelimitedList(wr),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.elements),Ve}function Dr(z,ye){return z.elements!==ye?Eo(Ml(ye,z.multiLine),z):z}function Wn(z,ye){let Ve=ce(210);return Ve.properties=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.properties),Ve.jsDoc=void 0,Ve}function di(z,ye){return z.properties!==ye?Eo(Wn(ye,z.multiLine),z):z}function aa(z,ye,Ve){let Ct=ce(211);return Ct.expression=z,Ct.questionDotToken=ye,Ct.name=Ve,Ct.transformFlags=$o(Ct.expression)|$o(Ct.questionDotToken)|($C(Ct.name)?_Ne(Ct.name):$o(Ct.name)|536870912),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function Bo(z,ye){let Ve=aa(n().parenthesizeLeftSideOfAccess(z,!1),void 0,EI(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function us(z,ye,Ve){return hza(z)?LA(z,ye,z.questionDotToken,Aj(Ve,$C)):z.expression!==ye||z.name!==Ve?Eo(Bo(ye,Ve),z):z}function Ql(z,ye,Ve){let Ct=aa(n().parenthesizeLeftSideOfAccess(z,!0),ye,EI(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function LA(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.name!==Ct?Eo(Ql(ye,Ve,Ct),z):z}function pf(z,ye,Ve){let Ct=ce(212);return Ct.expression=z,Ct.questionDotToken=ye,Ct.argumentExpression=Ve,Ct.transformFlags|=$o(Ct.expression)|$o(Ct.questionDotToken)|$o(Ct.argumentExpression),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ef(z,ye){let Ve=pf(n().parenthesizeLeftSideOfAccess(z,!1),void 0,zd(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function ip(z,ye,Ve){return mza(z)?j1(z,ye,z.questionDotToken,Ve):z.expression!==ye||z.argumentExpression!==Ve?Eo(ef(ye,Ve),z):z}function _d(z,ye,Ve){let Ct=pf(n().parenthesizeLeftSideOfAccess(z,!0),ye,zd(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function j1(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.argumentExpression!==Ct?Eo(_d(ye,Ve,Ct),z):z}function pw(z,ye,Ve,Ct){let wr=ce(213);return wr.expression=z,wr.questionDotToken=ye,wr.typeArguments=Ve,wr.arguments=Ct,wr.transformFlags|=$o(wr.expression)|$o(wr.questionDotToken)|qA(wr.typeArguments)|qA(wr.arguments),wr.typeArguments&&(wr.transformFlags|=1),Q2i(wr.expression)&&(wr.transformFlags|=16384),wr}function YA(z,ye,Ve){let Ct=pw(n().parenthesizeLeftSideOfAccess(z,!1),void 0,IA(ye),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ve)));return R$a(Ct.expression)&&(Ct.transformFlags|=8388608),Ct}function Ac(z,ye,Ve,Ct){return V2i(z)?HS(z,ye,z.questionDotToken,Ve,Ct):z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(YA(ye,Ve,Ct),z):z}function Nm(z,ye,Ve,Ct){let wr=pw(n().parenthesizeLeftSideOfAccess(z,!0),ye,IA(Ve),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ct)));return wr.flags|=64,wr.transformFlags|=32,wr}function HS(z,ye,Ve,Ct,wr){return Zo.assert(!!(z.flags&64),"Cannot update a CallExpression using updateCallChain. Use updateCall instead."),z.expression!==ye||z.questionDotToken!==Ve||z.typeArguments!==Ct||z.arguments!==wr?Eo(Nm(ye,Ve,Ct,wr),z):z}function jd(z,ye,Ve){let Ct=ce(214);return Ct.expression=n().parenthesizeExpressionOfNew(z),Ct.typeArguments=IA(ye),Ct.arguments=Ve?n().parenthesizeExpressionsOfCommaDelimitedList(Ve):void 0,Ct.transformFlags|=$o(Ct.expression)|qA(Ct.typeArguments)|qA(Ct.arguments)|32,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function dh(z,ye,Ve,Ct){return z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(jd(ye,Ve,Ct),z):z}function Hp(z,ye,Ve){let Ct=ne(215);return Ct.tag=n().parenthesizeLeftSideOfAccess(z,!1),Ct.typeArguments=IA(ye),Ct.template=Ve,Ct.transformFlags|=$o(Ct.tag)|qA(Ct.typeArguments)|$o(Ct.template)|1024,Ct.typeArguments&&(Ct.transformFlags|=1),vqa(Ct.template)&&(Ct.transformFlags|=128),Ct}function uC(z,ye,Ve,Ct){return z.tag!==ye||z.typeArguments!==Ve||z.template!==Ct?Eo(Hp(ye,Ve,Ct),z):z}function nE(z,ye){let Ve=ne(216);return Ve.expression=n().parenthesizeOperandOfPrefixUnary(ye),Ve.type=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function J_(z,ye,Ve){return z.type!==ye||z.expression!==Ve?Eo(nE(ye,Ve),z):z}function q0(z){let ye=ne(217);return ye.expression=z,ye.transformFlags=$o(ye.expression),ye.jsDoc=void 0,ye}function XE(z,ye){return z.expression!==ye?Eo(q0(ye),z):z}function TC(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(218);Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo;let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;return Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304,Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.flowNode=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function t_(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.name!==Ct||z.modifiers!==ye||z.asteriskToken!==Ve||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?fe(TC(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function cp(z,ye,Ve,Ct,wr,ai){let Lo=ce(219);Lo.modifiers=IA(z),Lo.typeParameters=IA(ye),Lo.parameters=ae(Ve),Lo.type=Ct,Lo.equalsGreaterThanToken=wr??Xt(39),Lo.body=n().parenthesizeConciseBodyOfArrowFunction(ai);let Hc=fO(Lo.modifiers)&1024;return Lo.transformFlags=qA(Lo.modifiers)|qA(Lo.typeParameters)|qA(Lo.parameters)|$o(Lo.type)|$o(Lo.equalsGreaterThanToken)|$o(Lo.body)&-67108865|(Lo.typeParameters||Lo.type?1:0)|(Hc?16640:0)|1024,Lo.typeArguments=void 0,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.flowNode=void 0,Lo.endFlowNode=void 0,Lo.returnFlowNode=void 0,Lo}function Mm(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr||z.equalsGreaterThanToken!==ai||z.body!==Lo?fe(cp(ye,Ve,Ct,wr,ai,Lo),z):z}function fb(z){let ye=ne(220);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function pe(z,ye){return z.expression!==ye?Eo(fb(ye),z):z}function lm(z){let ye=ne(221);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function Kf(z,ye){return z.expression!==ye?Eo(lm(ye),z):z}function CI(z){let ye=ne(222);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function _I(z,ye){return z.expression!==ye?Eo(CI(ye),z):z}function H2(z){let ye=ne(223);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression)|256|128|2097152,ye}function iE(z,ye){return z.expression!==ye?Eo(H2(ye),z):z}function se(z,ye){let Ve=ne(224);return Ve.operator=z,Ve.operand=n().parenthesizeOperandOfPrefixUnary(ye),Ve.transformFlags|=$o(Ve.operand),(z===46||z===47)&&$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function O(z,ye){return z.operand!==ye?Eo(se(z.operator,ye),z):z}function K(z,ye){let Ve=ne(225);return Ve.operator=ye,Ve.operand=n().parenthesizeOperandOfPostfixUnary(z),Ve.transformFlags|=$o(Ve.operand),$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function we(z,ye){return z.operand!==ye?Eo(K(ye,z.operator),z):z}function gt(z,ye,Ve){let Ct=ce(226),wr=qR(ye),ai=wr.kind;return Ct.left=n().parenthesizeLeftSideOfBinary(ai,z),Ct.operatorToken=wr,Ct.right=n().parenthesizeRightSideOfBinary(ai,Ct.left,Ve),Ct.transformFlags|=$o(Ct.left)|$o(Ct.operatorToken)|$o(Ct.right),ai===61?Ct.transformFlags|=32:ai===64?oBi(Ct.left)?Ct.transformFlags|=5248|sr(Ct.left):tec(Ct.left)&&(Ct.transformFlags|=5120|sr(Ct.left)):ai===43||ai===68?Ct.transformFlags|=512:Zqa(ai)&&(Ct.transformFlags|=16),ai===103&&Yme(Ct.left)&&(Ct.transformFlags|=536870912),Ct.jsDoc=void 0,Ct}function sr(z){return SBi(z)?65536:0}function Yr(z,ye,Ve,Ct){return z.left!==ye||z.operatorToken!==Ve||z.right!==Ct?Eo(gt(ye,Ve,Ct),z):z}function Lr(z,ye,Ve,Ct,wr){let ai=ne(227);return ai.condition=n().parenthesizeConditionOfConditionalExpression(z),ai.questionToken=ye??Xt(58),ai.whenTrue=n().parenthesizeBranchOfConditionalExpression(Ve),ai.colonToken=Ct??Xt(59),ai.whenFalse=n().parenthesizeBranchOfConditionalExpression(wr),ai.transformFlags|=$o(ai.condition)|$o(ai.questionToken)|$o(ai.whenTrue)|$o(ai.colonToken)|$o(ai.whenFalse),ai}function fi(z,ye,Ve,Ct,wr,ai){return z.condition!==ye||z.questionToken!==Ve||z.whenTrue!==Ct||z.colonToken!==wr||z.whenFalse!==ai?Eo(Lr(ye,Ve,Ct,wr,ai),z):z}function $n(z,ye){let Ve=ne(228);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags|=$o(Ve.head)|qA(Ve.templateSpans)|1024,Ve}function ra(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo($n(ye,Ve),z):z}function kc(z,ye,Ve,Ct=0){Zo.assert(!(Ct&-7177),"Unsupported template flags.");let wr;if(Ve!==void 0&&Ve!==ye&&(wr=m$a(z,Ve),typeof wr=="object"))return Zo.fail("Invalid raw text");if(ye===void 0){if(wr===void 0)return Zo.fail("Arguments 'text' and 'rawText' may not both be undefined.");ye=wr}else wr!==void 0&&Zo.assert(ye===wr,"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");return ye}function Nl(z){let ye=1024;return z&&(ye|=128),ye}function ca(z,ye,Ve,Ct){let wr=qt(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function Bl(z,ye,Ve,Ct){let wr=ce(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function $g(z,ye,Ve,Ct){return z===15?Bl(z,ye,Ve,Ct):ca(z,ye,Ve,Ct)}function SA(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(16,z,ye,Ve)}function lI(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(17,z,ye,Ve)}function lp(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(18,z,ye,Ve)}function Ib(z,ye,Ve){return z=kc(16,z,ye,Ve),Bl(15,z,ye,Ve)}function Na(z,ye){Zo.assert(!z||!!ye,"A `YieldExpression` with an asteriskToken must have an expression.");let Ve=ne(229);return Ve.expression=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.asteriskToken=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.asteriskToken)|1024|128|1048576,Ve}function wd(z,ye,Ve){return z.expression!==Ve||z.asteriskToken!==ye?Eo(Na(ye,Ve),z):z}function z1(z){let ye=ne(230);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|1024|32768,ye}function T_(z,ye){return z.expression!==ye?Eo(z1(ye),z):z}function RC(z,ye,Ve,Ct,wr){let ai=ce(231);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.jsDoc=void 0,ai}function Hm(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(RC(ye,Ve,Ct,wr,ai),z):z}function YS(){return ne(232)}function Fg(z,ye){let Ve=ne(233);return Ve.expression=n().parenthesizeLeftSideOfAccess(z,!1),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.typeArguments)|1024,Ve}function hb(z,ye,Ve){return z.expression!==ye||z.typeArguments!==Ve?Eo(Fg(ye,Ve),z):z}function gC(z,ye){let Ve=ne(234);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function NC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(gC(ye,Ve),z):z}function Y2(z){let ye=ne(235);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1,ye}function U_(z,ye){return Cza(z)?ph(z,ye):z.expression!==ye?Eo(Y2(ye),z):z}function DC(z,ye){let Ve=ne(238);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function kC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(DC(ye,Ve),z):z}function qI(z){let ye=ne(235);return ye.flags|=64,ye.expression=n().parenthesizeLeftSideOfAccess(z,!0),ye.transformFlags|=$o(ye.expression)|1,ye}function ph(z,ye){return Zo.assert(!!(z.flags&64),"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."),z.expression!==ye?Eo(qI(ye),z):z}function vA(z,ye){let Ve=ne(236);switch(Ve.keywordToken=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.name),z){case 105:Ve.transformFlags|=1024;break;case 102:Ve.transformFlags|=32;break;default:return Zo.assertNever(z)}return Ve.flowNode=void 0,Ve}function Td(z,ye){return z.name!==ye?Eo(vA(z.keywordToken,ye),z):z}function Mc(z,ye){let Ve=ne(239);return Ve.expression=z,Ve.literal=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.literal)|1024,Ve}function Pf(z,ye,Ve){return z.expression!==ye||z.literal!==Ve?Eo(Mc(ye,Ve),z):z}function sE(){let z=ne(240);return z.transformFlags|=1024,z}function eA(z,ye){let Ve=ne(241);return Ve.statements=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.statements),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function QS(z,ye){return z.statements!==ye?Eo(eA(ye,z.multiLine),z):z}function XS(z,ye){let Ve=ne(243);return Ve.modifiers=IA(z),Ve.declarationList=Tee(ye)?Th(ye):ye,Ve.transformFlags|=qA(Ve.modifiers)|$o(Ve.declarationList),fO(Ve.modifiers)&128&&(Ve.transformFlags=1),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function um(z,ye,Ve){return z.modifiers!==ye||z.declarationList!==Ve?Eo(XS(ye,Ve),z):z}function gm(){let z=ne(242);return z.jsDoc=void 0,z}function cs(z){let ye=ne(244);return ye.expression=n().parenthesizeExpressionOfExpressionStatement(z),ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function na(z,ye){return z.expression!==ye?Eo(cs(ye),z):z}function ko(z,ye,Ve){let Ct=ne(245);return Ct.expression=z,Ct.thenStatement=sy(ye),Ct.elseStatement=sy(Ve),Ct.transformFlags|=$o(Ct.expression)|$o(Ct.thenStatement)|$o(Ct.elseStatement),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ki(z,ye,Ve,Ct){return z.expression!==ye||z.thenStatement!==Ve||z.elseStatement!==Ct?Eo(ko(ye,Ve,Ct),z):z}function Kl(z,ye){let Ve=ne(246);return Ve.statement=sy(z),Ve.expression=ye,Ve.transformFlags|=$o(Ve.statement)|$o(Ve.expression),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function fd(z,ye,Ve){return z.statement!==ye||z.expression!==Ve?Eo(Kl(ye,Ve),z):z}function jf(z,ye){let Ve=ne(247);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Ld(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(jf(ye,Ve),z):z}function AC(z,ye,Ve,Ct){let wr=ne(248);return wr.initializer=z,wr.condition=ye,wr.incrementor=Ve,wr.statement=sy(Ct),wr.transformFlags|=$o(wr.initializer)|$o(wr.condition)|$o(wr.incrementor)|$o(wr.statement),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function JE(z,ye,Ve,Ct,wr){return z.initializer!==ye||z.condition!==Ve||z.incrementor!==Ct||z.statement!==wr?Eo(AC(ye,Ve,Ct,wr),z):z}function Ym(z,ye,Ve){let Ct=ne(249);return Ct.initializer=z,Ct.expression=ye,Ct.statement=sy(Ve),Ct.transformFlags|=$o(Ct.initializer)|$o(Ct.expression)|$o(Ct.statement),Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.flowNode=void 0,Ct}function vy(z,ye,Ve,Ct){return z.initializer!==ye||z.expression!==Ve||z.statement!==Ct?Eo(Ym(ye,Ve,Ct),z):z}function K_(z,ye,Ve,Ct){let wr=ne(250);return wr.awaitModifier=z,wr.initializer=ye,wr.expression=n().parenthesizeExpressionForDisallowedComma(Ve),wr.statement=sy(Ct),wr.transformFlags|=$o(wr.awaitModifier)|$o(wr.initializer)|$o(wr.expression)|$o(wr.statement)|1024,z&&(wr.transformFlags|=128),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function od(z,ye,Ve,Ct,wr){return z.awaitModifier!==ye||z.initializer!==Ve||z.expression!==Ct||z.statement!==wr?Eo(K_(ye,Ve,Ct,wr),z):z}function UE(z){let ye=ne(251);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function KE(z,ye){return z.label!==ye?Eo(UE(ye),z):z}function Yp(z){let ye=ne(252);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function JS(z,ye){return z.label!==ye?Eo(Yp(ye),z):z}function By(z){let ye=ne(253);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|128|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function $0(z,ye){return z.expression!==ye?Eo(By(ye),z):z}function fw(z,ye){let Ve=ne(254);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Q2(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(fw(ye,Ve),z):z}function xc(z,ye){let Ve=ne(255);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.caseBlock=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.caseBlock),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve.possiblyExhaustive=!1,Ve}function ut(z,ye,Ve){return z.expression!==ye||z.caseBlock!==Ve?Eo(xc(ye,Ve),z):z}function ar(z,ye){let Ve=ne(256);return Ve.label=EI(z),Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.label)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Jr(z,ye,Ve){return z.label!==ye||z.statement!==Ve?Eo(ar(ye,Ve),z):z}function Gn(z){let ye=ne(257);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function Ts(z,ye){return z.expression!==ye?Eo(Gn(ye),z):z}function Qo(z,ye,Ve){let Ct=ne(258);return Ct.tryBlock=z,Ct.catchClause=ye,Ct.finallyBlock=Ve,Ct.transformFlags|=$o(Ct.tryBlock)|$o(Ct.catchClause)|$o(Ct.finallyBlock),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function vg(z,ye,Ve,Ct){return z.tryBlock!==ye||z.catchClause!==Ve||z.finallyBlock!==Ct?Eo(Qo(ye,Ve,Ct),z):z}function Ng(){let z=ne(259);return z.jsDoc=void 0,z.flowNode=void 0,z}function Rf(z,ye,Ve,Ct){let wr=ce(260);return wr.name=EI(z),wr.exclamationToken=ye,wr.type=Ve,wr.initializer=wA(Ct),wr.transformFlags|=pO(wr.name)|$o(wr.initializer)|(wr.exclamationToken??wr.type?1:0),wr.jsDoc=void 0,wr}function uI(z,ye,Ve,Ct,wr){return z.name!==ye||z.type!==Ct||z.exclamationToken!==Ve||z.initializer!==wr?Eo(Rf(ye,Ve,Ct,wr),z):z}function Th(z,ye=0){let Ve=ne(261);return Ve.flags|=ye&7,Ve.declarations=ae(z),Ve.transformFlags|=qA(Ve.declarations)|4194304,ye&7&&(Ve.transformFlags|=263168),ye&4&&(Ve.transformFlags|=4),Ve}function oE(z,ye){return z.declarations!==ye?Eo(Th(ye,z.flags),z):z}function TT(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(262);if(Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo,!Hc.body||fO(Hc.modifiers)&128)Hc.transformFlags=1;else{let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304}return Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function sB(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?RT(TT(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function RT(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),fe(z,ye)}function wy(z,ye,Ve,Ct,wr){let ai=ce(263);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),fO(ai.modifiers)&128?ai.transformFlags=1:(ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.transformFlags&8192&&(ai.transformFlags|=1)),ai.jsDoc=void 0,ai}function jE(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(wy(ye,Ve,Ct,wr,ai),z):z}function j_(z,ye,Ve,Ct,wr){let ai=ce(264);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags=1,ai.jsDoc=void 0,ai}function NT(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(j_(ye,Ve,Ct,wr,ai),z):z}function tf(z,ye,Ve,Ct){let wr=ce(265);return wr.modifiers=IA(z),wr.name=EI(ye),wr.typeParameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function Ty(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.type!==wr?Eo(tf(ye,Ve,Ct,wr),z):z}function US(z,ye,Ve){let Ct=ce(266);return Ct.modifiers=IA(z),Ct.name=EI(ye),Ct.members=ae(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.name)|qA(Ct.members)|1,Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $I(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.members!==Ct?Eo(US(ye,Ve,Ct),z):z}function BA(z,ye,Ve,Ct=0){let wr=ce(267);return wr.modifiers=IA(z),wr.flags|=Ct&2088,wr.name=ye,wr.body=Ve,fO(wr.modifiers)&128?wr.transformFlags=1:wr.transformFlags|=qA(wr.modifiers)|$o(wr.name)|$o(wr.body)|1,wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function $A(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.body!==Ct?Eo(BA(ye,Ve,Ct,z.flags),z):z}function Qm(z){let ye=ne(268);return ye.statements=ae(z),ye.transformFlags|=qA(ye.statements),ye.jsDoc=void 0,ye}function zf(z,ye){return z.statements!==ye?Eo(Qm(ye),z):z}function mb(z){let ye=ne(269);return ye.clauses=ae(z),ye.transformFlags|=qA(ye.clauses),ye.locals=void 0,ye.nextContainer=void 0,ye}function R_(z,ye){return z.clauses!==ye?Eo(mb(ye),z):z}function Cb(z){let ye=ce(270);return ye.name=EI(z),ye.transformFlags|=_Ne(ye.name)|1,ye.modifiers=void 0,ye.jsDoc=void 0,ye}function Ry(z,ye){return z.name!==ye?KS(Cb(ye),z):z}function KS(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function _b(z,ye,Ve,Ct){let wr=ce(271);return wr.modifiers=IA(z),wr.name=EI(Ve),wr.isTypeOnly=ye,wr.moduleReference=Ct,wr.transformFlags|=qA(wr.modifiers)|_Ne(wr.name)|$o(wr.moduleReference),mBi(wr.moduleReference)||(wr.transformFlags|=1),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function z_(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.name!==Ct||z.moduleReference!==wr?Eo(_b(ye,Ve,Ct,wr),z):z}function zE(z,ye,Ve,Ct){let wr=ne(272);return wr.modifiers=IA(z),wr.importClause=ye,wr.moduleSpecifier=Ve,wr.attributes=wr.assertClause=Ct,wr.transformFlags|=$o(wr.importClause)|$o(wr.moduleSpecifier),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function oB(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(zE(ye,Ve,Ct,wr),z):z}function DT(z,ye,Ve){let Ct=ce(273);return Ct.isTypeOnly=z,Ct.name=ye,Ct.namedBindings=Ve,Ct.transformFlags|=$o(Ct.name)|$o(Ct.namedBindings),z&&(Ct.transformFlags|=1),Ct.transformFlags&=-67108865,Ct}function aB(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.name!==Ve||z.namedBindings!==Ct?Eo(DT(ye,Ve,Ct),z):z}function jS(z,ye){let Ve=ne(300);return Ve.elements=ae(z),Ve.multiLine=ye,Ve.token=132,Ve.transformFlags|=4,Ve}function XR(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(jS(ye,Ve),z):z}function zS(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function qE(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(zS(ye,Ve),z):z}function X2(z,ye){let Ve=ne(302);return Ve.assertClause=z,Ve.multiLine=ye,Ve}function kT(z,ye,Ve){return z.assertClause!==ye||z.multiLine!==Ve?Eo(X2(ye,Ve),z):z}function pn(z,ye,Ve){let Ct=ne(300);return Ct.token=Ve??118,Ct.elements=ae(z),Ct.multiLine=ye,Ct.transformFlags|=4,Ct}function q1(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(pn(ye,Ve,z.token),z):z}function J2(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function ey(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(J2(ye,Ve),z):z}function up(z){let ye=ce(274);return ye.name=z,ye.transformFlags|=$o(ye.name),ye.transformFlags&=-67108865,ye}function Iw(z,ye){return z.name!==ye?Eo(up(ye),z):z}function cB(z){let ye=ce(280);return ye.name=z,ye.transformFlags|=$o(ye.name)|32,ye.transformFlags&=-67108865,ye}function RD(z,ye){return z.name!==ye?Eo(cB(ye),z):z}function Rd(z){let ye=ne(275);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function JR(z,ye){return z.elements!==ye?Eo(Rd(ye),z):z}function ty(z,ye,Ve){let Ct=ce(276);return Ct.isTypeOnly=z,Ct.propertyName=ye,Ct.name=Ve,Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct}function cF(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(ty(ye,Ve,Ct),z):z}function $1(z,ye,Ve){let Ct=ce(277);return Ct.modifiers=IA(z),Ct.isExportEquals=ye,Ct.expression=ye?n().parenthesizeRightSideOfBinary(64,void 0,Ve):n().parenthesizeExpressionOfExportDefault(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.expression),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $E(z,ye,Ve){return z.modifiers!==ye||z.expression!==Ve?Eo($1(ye,z.isExportEquals,Ve),z):z}function N_(z,ye,Ve,Ct,wr){let ai=ce(278);return ai.modifiers=IA(z),ai.isTypeOnly=ye,ai.exportClause=Ve,ai.moduleSpecifier=Ct,ai.attributes=ai.assertClause=wr,ai.transformFlags|=qA(ai.modifiers)|$o(ai.exportClause)|$o(ai.moduleSpecifier),ai.transformFlags&=-67108865,ai.jsDoc=void 0,ai}function e1(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.exportClause!==Ct||z.moduleSpecifier!==wr||z.attributes!==ai?t1(N_(ye,Ve,Ct,wr,ai),z):z}function t1(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),Eo(z,ye)}function ry(z){let ye=ne(279);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function xT(z,ye){return z.elements!==ye?Eo(ry(ye),z):z}function yb(z,ye,Ve){let Ct=ne(281);return Ct.isTypeOnly=z,Ct.propertyName=EI(ye),Ct.name=EI(Ve),Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function r_(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(yb(ye,Ve,Ct),z):z}function Rh(){let z=ce(282);return z.jsDoc=void 0,z}function bb(z){let ye=ne(283);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.transformFlags&=-67108865,ye}function lB(z,ye){return z.expression!==ye?Eo(bb(ye),z):z}function ND(z){return ne(z)}function DD(z,ye,Ve=!1){let Ct=q_(z,Ve?ye&&n().parenthesizeNonArrayTypeOfPostfixType(ye):ye);return Ct.postfix=Ve,Ct}function q_(z,ye){let Ve=ne(z);return Ve.type=ye,Ve}function kD(z,ye,Ve){return ye.type!==Ve?Eo(DD(z,Ve,ye.postfix),ye):ye}function UR(z,ye,Ve){return ye.type!==Ve?Eo(q_(z,Ve),ye):ye}function lc(z,ye){let Ve=ce(317);return Ve.parameters=IA(z),Ve.type=ye,Ve.transformFlags=qA(Ve.parameters)|(Ve.type?1:0),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve.typeArguments=void 0,Ve}function fh(z,ye,Ve){return z.parameters!==ye||z.type!==Ve?Eo(lc(ye,Ve),z):z}function rf(z,ye=!1){let Ve=ce(322);return Ve.jsDocPropertyTags=IA(z),Ve.isArrayType=ye,Ve}function yI(z,ye,Ve){return z.jsDocPropertyTags!==ye||z.isArrayType!==Ve?Eo(rf(ye,Ve),z):z}function aE(z){let ye=ne(309);return ye.type=z,ye}function qS(z,ye){return z.type!==ye?Eo(aE(ye),z):z}function Qp(z,ye,Ve){let Ct=ce(323);return Ct.typeParameters=IA(z),Ct.parameters=ae(ye),Ct.type=Ve,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function uB(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Eo(Qp(ye,Ve,Ct),z):z}function Ih(z){let ye=xbt(z.kind);return z.tagName.escapedText===mNe(ye)?z.tagName:je(ye)}function xC(z,ye,Ve){let Ct=ne(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function $_(z,ye,Ve){let Ct=ce(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function r1(z,ye,Ve,Ct){let wr=xC(345,z??je("template"),Ct);return wr.constraint=ye,wr.typeParameters=ae(Ve),wr}function gB(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.constraint!==Ve||z.typeParameters!==Ct||z.comment!==wr?Eo(r1(ye,Ve,Ct,wr),z):z}function hw(z,ye,Ve,Ct){let wr=$_(346,z??je("typedef"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function GT(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(hw(ye,Ve,Ct,wr),z):z}function b0(z,ye,Ve,Ct,wr,ai){let Lo=$_(341,z??je("param"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function ia(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(b0(ye,Ve,Ct,wr,ai,Lo),z):z}function e2(z,ye,Ve,Ct,wr,ai){let Lo=$_(348,z??je("prop"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function yd(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(e2(ye,Ve,Ct,wr,ai,Lo),z):z}function bI(z,ye,Ve,Ct){let wr=$_(338,z??je("callback"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function ag(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(bI(ye,Ve,Ct,wr),z):z}function Eb(z,ye,Ve){let Ct=xC(339,z??je("overload"),Ve);return Ct.typeExpression=ye,Ct}function n1(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Eb(ye,Ve,Ct),z):z}function U2(z,ye,Ve){let Ct=xC(328,z??je("augments"),Ve);return Ct.class=ye,Ct}function e0(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(U2(ye,Ve,Ct),z):z}function n_(z,ye,Ve){let Ct=xC(329,z??je("implements"),Ve);return Ct.class=ye,Ct}function Xp(z,ye,Ve){let Ct=xC(347,z??je("see"),Ve);return Ct.name=ye,Ct}function cE(z,ye,Ve,Ct){return z.tagName!==ye||z.name!==Ve||z.comment!==Ct?Eo(Xp(ye,Ve,Ct),z):z}function lE(z){let ye=ne(310);return ye.name=z,ye}function Ip(z,ye){return z.name!==ye?Eo(lE(ye),z):z}function Xh(z,ye){let Ve=ne(311);return Ve.left=z,Ve.right=ye,Ve.transformFlags|=$o(Ve.left)|$o(Ve.right),Ve}function E0(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Xh(ye,Ve),z):z}function aA(z,ye){let Ve=ne(324);return Ve.name=z,Ve.text=ye,Ve}function fu(z,ye,Ve){return z.name!==ye?Eo(aA(ye,Ve),z):z}function Jp(z,ye){let Ve=ne(325);return Ve.name=z,Ve.text=ye,Ve}function dC(z,ye,Ve){return z.name!==ye?Eo(Jp(ye,Ve),z):z}function uE(z,ye){let Ve=ne(326);return Ve.name=z,Ve.text=ye,Ve}function eh(z,ye,Ve){return z.name!==ye?Eo(uE(ye,Ve),z):z}function Wf(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(n_(ye,Ve,Ct),z):z}function Mo(z,ye,Ve){return xC(z,ye??je(xbt(z)),Ve)}function gp(z,ye,Ve=Ih(ye),Ct){return ye.tagName!==Ve||ye.comment!==Ct?Eo(Mo(z,Ve,Ct),ye):ye}function lF(z,ye,Ve,Ct){let wr=xC(z,ye??je(xbt(z)),Ct);return wr.typeExpression=Ve,wr}function uF(z,ye,Ve=Ih(ye),Ct,wr){return ye.tagName!==Ve||ye.typeExpression!==Ct||ye.comment!==wr?Eo(lF(z,Ve,Ct,wr),ye):ye}function gE(z,ye){return xC(327,z,ye)}function FT(z,ye,Ve){return z.tagName!==ye||z.comment!==Ve?Eo(gE(ye,Ve),z):z}function Np(z,ye,Ve){let Ct=$_(340,z??je(xbt(340)),Ve);return Ct.typeExpression=ye,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function Dm(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Np(ye,Ve,Ct),z):z}function Dp(z,ye,Ve,Ct,wr){let ai=xC(351,z??je("import"),wr);return ai.importClause=ye,ai.moduleSpecifier=Ve,ai.attributes=Ct,ai.comment=wr,ai}function t2(z,ye,Ve,Ct,wr,ai){return z.tagName!==ye||z.comment!==ai||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(Dp(ye,Ve,Ct,wr,ai),z):z}function Ro(z){let ye=ne(321);return ye.text=z,ye}function AE(z,ye){return z.text!==ye?Eo(Ro(ye),z):z}function AB(z,ye){let Ve=ne(320);return Ve.comment=z,Ve.tags=IA(ye),Ve}function Xc(z,ye,Ve){return z.comment!==ye||z.tags!==Ve?Eo(AB(ye,Ve),z):z}function iu(z,ye,Ve){let Ct=ne(284);return Ct.openingElement=z,Ct.children=ae(ye),Ct.closingElement=Ve,Ct.transformFlags|=$o(Ct.openingElement)|qA(Ct.children)|$o(Ct.closingElement)|2,Ct}function dE(z,ye,Ve,Ct){return z.openingElement!==ye||z.children!==Ve||z.closingElement!==Ct?Eo(iu(ye,Ve,Ct),z):z}function yL(z,ye,Ve){let Ct=ne(285);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function KR(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(yL(ye,Ve,Ct),z):z}function Ou(z,ye,Ve){let Ct=ne(286);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,ye&&(Ct.transformFlags|=1),Ct}function ny(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(Ou(ye,Ve,Ct),z):z}function hp(z){let ye=ne(287);return ye.tagName=z,ye.transformFlags|=$o(ye.tagName)|2,ye}function Am(z,ye){return z.tagName!==ye?Eo(hp(ye),z):z}function K2(z,ye,Ve){let Ct=ne(288);return Ct.openingFragment=z,Ct.children=ae(ye),Ct.closingFragment=Ve,Ct.transformFlags|=$o(Ct.openingFragment)|qA(Ct.children)|$o(Ct.closingFragment)|2,Ct}function i_(z,ye,Ve,Ct){return z.openingFragment!==ye||z.children!==Ve||z.closingFragment!==Ct?Eo(K2(ye,Ve,Ct),z):z}function dB(z,ye){let Ve=ne(12);return Ve.text=z,Ve.containsOnlyTriviaWhiteSpaces=!!ye,Ve.transformFlags|=2,Ve}function ZT(z,ye,Ve){return z.text!==ye||z.containsOnlyTriviaWhiteSpaces!==Ve?Eo(dB(ye,Ve),z):z}function Cx(){let z=ne(289);return z.transformFlags|=2,z}function pB(){let z=ne(290);return z.transformFlags|=2,z}function qf(z,ye){let Ve=ce(291);return Ve.name=z,Ve.initializer=ye,Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|2,Ve}function Jh(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(qf(ye,Ve),z):z}function $S(z){let ye=ce(292);return ye.properties=ae(z),ye.transformFlags|=qA(ye.properties)|2,ye}function Sb(z,ye){return z.properties!==ye?Eo($S(ye),z):z}function mp(z){let ye=ne(293);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|2,ye}function r2(z,ye){return z.expression!==ye?Eo(mp(ye),z):z}function i1(z,ye){let Ve=ne(294);return Ve.dotDotDotToken=z,Ve.expression=ye,Ve.transformFlags|=$o(Ve.dotDotDotToken)|$o(Ve.expression)|2,Ve}function Of(z,ye){return z.expression!==ye?Eo(i1(z.dotDotDotToken,ye),z):z}function pE(z,ye){let Ve=ne(295);return Ve.namespace=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.namespace)|$o(Ve.name)|2,Ve}function Vd(z,ye,Ve){return z.namespace!==ye||z.name!==Ve?Eo(pE(ye,Ve),z):z}function j(z,ye){let Ve=ne(296);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.statements=ae(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.statements),Ve.jsDoc=void 0,Ve}function Z(z,ye,Ve){return z.expression!==ye||z.statements!==Ve?Eo(j(ye,Ve),z):z}function Id(z){let ye=ne(297);return ye.statements=ae(z),ye.transformFlags=qA(ye.statements),ye}function fB(z,ye){return z.statements!==ye?Eo(Id(ye),z):z}function ev(z,ye){let Ve=ne(298);switch(Ve.token=z,Ve.types=ae(ye),Ve.transformFlags|=qA(Ve.types),z){case 96:Ve.transformFlags|=1024;break;case 119:Ve.transformFlags|=1;break;default:return Zo.assertNever(z)}return Ve}function Ny(z,ye){return z.types!==ye?Eo(ev(z.token,ye),z):z}function vb(z,ye){let Ve=ne(299);return Ve.variableDeclaration=$2(z),Ve.block=ye,Ve.transformFlags|=$o(Ve.variableDeclaration)|$o(Ve.block)|(z?0:64),Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function xD(z,ye,Ve){return z.variableDeclaration!==ye||z.block!==Ve?Eo(vb(ye,Ve),z):z}function IB(z,ye){let Ve=ce(303);return Ve.name=EI(z),Ve.initializer=n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=pO(Ve.name)|$o(Ve.initializer),Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function Bb(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?bL(IB(ye,Ve),z):z}function bL(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function gF(z,ye){let Ve=ce(304);return Ve.name=EI(z),Ve.objectAssignmentInitializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=_Ne(Ve.name)|$o(Ve.objectAssignmentInitializer)|1024,Ve.equalsToken=void 0,Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function x(z,ye,Ve){return z.name!==ye||z.objectAssignmentInitializer!==Ve?L(gF(ye,Ve),z):z}function L(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken,z.equalsToken=ye.equalsToken),Eo(z,ye)}function te(z){let ye=ce(305);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|128|65536,ye.jsDoc=void 0,ye}function Re(z,ye){return z.expression!==ye?Eo(te(ye),z):z}function Le(z,ye){let Ve=ce(306);return Ve.name=EI(z),Ve.initializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|1,Ve.jsDoc=void 0,Ve}function ft(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(Le(ye,Ve),z):z}function dr(z,ye,Ve){let Ct=t.createBaseSourceFileNode(307);return Ct.statements=ae(z),Ct.endOfFileToken=ye,Ct.flags|=Ve,Ct.text="",Ct.fileName="",Ct.path="",Ct.resolvedPath="",Ct.originalFileName="",Ct.languageVersion=1,Ct.languageVariant=0,Ct.scriptKind=0,Ct.isDeclarationFile=!1,Ct.hasNoDefaultLib=!1,Ct.transformFlags|=qA(Ct.statements)|$o(Ct.endOfFileToken),Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.nodeCount=0,Ct.identifierCount=0,Ct.symbolCount=0,Ct.parseDiagnostics=void 0,Ct.bindDiagnostics=void 0,Ct.bindSuggestionDiagnostics=void 0,Ct.lineMap=void 0,Ct.externalModuleIndicator=void 0,Ct.setExternalModuleIndicator=void 0,Ct.pragmas=void 0,Ct.checkJsDirective=void 0,Ct.referencedFiles=void 0,Ct.typeReferenceDirectives=void 0,Ct.libReferenceDirectives=void 0,Ct.amdDependencies=void 0,Ct.commentDirectives=void 0,Ct.identifiers=void 0,Ct.packageJsonLocations=void 0,Ct.packageJsonScope=void 0,Ct.imports=void 0,Ct.moduleAugmentations=void 0,Ct.ambientModuleNames=void 0,Ct.classifiableNames=void 0,Ct.impliedNodeFormat=void 0,Ct}function Ur(z){let ye=Object.create(z.redirectTarget);return Object.defineProperties(ye,{id:{get(){return this.redirectInfo.redirectTarget.id},set(Ve){this.redirectInfo.redirectTarget.id=Ve}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(Ve){this.redirectInfo.redirectTarget.symbol=Ve}}}),ye.redirectInfo=z,ye}function mi(z){let ye=Ur(z.redirectInfo);return ye.flags|=z.flags&-17,ye.fileName=z.fileName,ye.path=z.path,ye.resolvedPath=z.resolvedPath,ye.originalFileName=z.originalFileName,ye.packageJsonLocations=z.packageJsonLocations,ye.packageJsonScope=z.packageJsonScope,ye.emitNode=void 0,ye}function Vi(z){let ye=t.createBaseSourceFileNode(307);ye.flags|=z.flags&-17;for(let Ve in z)if(!(fj(ye,Ve)||!fj(z,Ve))){if(Ve==="emitNode"){ye.emitNode=void 0;continue}ye[Ve]=z[Ve]}return ye}function Ta(z){let ye=z.redirectInfo?mi(z):Vi(z);return r(ye,z),ye}function Sl(z,ye,Ve,Ct,wr,ai,Lo){let Hc=Ta(z);return Hc.statements=ae(ye),Hc.isDeclarationFile=Ve,Hc.referencedFiles=Ct,Hc.typeReferenceDirectives=wr,Hc.hasNoDefaultLib=ai,Hc.libReferenceDirectives=Lo,Hc.transformFlags=qA(Hc.statements)|$o(Hc.endOfFileToken),Hc}function Ho(z,ye,Ve=z.isDeclarationFile,Ct=z.referencedFiles,wr=z.typeReferenceDirectives,ai=z.hasNoDefaultLib,Lo=z.libReferenceDirectives){return z.statements!==ye||z.isDeclarationFile!==Ve||z.referencedFiles!==Ct||z.typeReferenceDirectives!==wr||z.hasNoDefaultLib!==ai||z.libReferenceDirectives!==Lo?Eo(Sl(z,ye,Ve,Ct,wr,ai,Lo),z):z}function Wg(z){let ye=ne(308);return ye.sourceFiles=z,ye.syntheticFileReferences=void 0,ye.syntheticTypeReferences=void 0,ye.syntheticLibReferences=void 0,ye.hasNoDefaultLib=void 0,ye}function cA(z,ye){return z.sourceFiles!==ye?Eo(Wg(ye),z):z}function th(z,ye=!1,Ve){let Ct=ne(237);return Ct.type=z,Ct.isSpread=ye,Ct.tupleNameSource=Ve,Ct}function xn(z){let ye=ne(352);return ye._children=z,ye}function rn(z){let ye=ne(353);return ye.original=z,zZ(ye,z),ye}function Ci(z,ye){let Ve=ne(355);return Ve.expression=z,Ve.original=ye,Ve.transformFlags|=$o(Ve.expression)|1,zZ(Ve,ye),Ve}function Po(z,ye){return z.expression!==ye?Eo(Ci(ye,z.original),z):z}function ec(){return ne(354)}function Ra(z){if(CNe(z)&&!Qbt(z)&&!z.original&&!z.emitNode&&!z.id){if(lec(z))return z.elements;if(DNe(z)&&w$a(z.operatorToken))return[z.left,z.right]}return z}function dc(z){let ye=ne(356);return ye.elements=ae(P6a(z,Ra)),ye.transformFlags|=qA(ye.elements),ye}function Iu(z,ye){return z.elements!==ye?Eo(dc(ye),z):z}function Cl(z,ye){let Ve=ne(357);return Ve.expression=z,Ve.thisArg=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.thisArg),Ve}function wl(z,ye,Ve){return z.expression!==ye||z.thisArg!==Ve?Eo(Cl(ye,Ve),z):z}function $f(z){let ye=ct(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function j2(z){let ye=ct(z.escapedText);ye.flags|=z.flags&-17,ye.jsDoc=z.jsDoc,ye.flowNode=z.flowNode,ye.symbol=z.symbol,ye.transformFlags=z.transformFlags,r(ye,z);let Ve=getIdentifierTypeArguments(z);return Ve&&setIdentifierTypeArguments(ye,Ve),ye}function _x(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function z2(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),ye}function tv(z){if(z===void 0)return z;if(mec(z))return Ta(z);if(vNe(z))return $f(z);if($C(z))return j2(z);if(Dvi(z))return _x(z);if(Yme(z))return z2(z);let ye=YNr(z.kind)?t.createBaseNode(z.kind):t.createBaseTokenNode(z.kind);ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z);for(let Ve in z)fj(ye,Ve)||!fj(z,Ve)||(ye[Ve]=z[Ve]);return ye}function Yu(z,ye,Ve){return YA(TC(void 0,void 0,void 0,void 0,ye?[ye]:[],void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function qO(z,ye,Ve){return YA(cp(void 0,void 0,ye?[ye]:[],void 0,void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function hB(){return CI(ue("0"))}function mw(z){return $1(void 0,!1,z)}function AF(z){return N_(void 0,!1,ry([yb(!1,void 0,z)]))}function $O(z,ye){return ye==="null"?X.createStrictEquality(z,Ar()):ye==="undefined"?X.createStrictEquality(z,hB()):X.createStrictEquality(lm(z),Se(ye))}function iY(z,ye){return ye==="null"?X.createStrictInequality(z,Ar()):ye==="undefined"?X.createStrictInequality(z,hB()):X.createStrictInequality(lm(z),Se(ye))}function LT(z,ye,Ve){return V2i(z)?Nm(Ql(z,void 0,ye),void 0,void 0,Ve):YA(Bo(z,ye),void 0,Ve)}function GD(z,ye,Ve){return LT(z,"bind",[ye,...Ve])}function dF(z,ye,Ve){return LT(z,"call",[ye,...Ve])}function EL(z,ye,Ve){return LT(z,"apply",[ye,Ve])}function ff(z,ye,Ve){return LT(je(z),ye,Ve)}function FD(z,ye){return LT(z,"slice",ye===void 0?[]:[zd(ye)])}function fE(z,ye){return LT(z,"concat",ye)}function n2(z,ye,Ve){return ff("Object","defineProperty",[z,zd(ye),Ve])}function mB(z,ye){return ff("Object","getOwnPropertyDescriptor",[z,zd(ye)])}function bd(z,ye,Ve){return ff("Reflect","get",Ve?[z,ye,Ve]:[z,ye])}function s1(z,ye,Ve,Ct){return ff("Reflect","set",Ct?[z,ye,Ve,Ct]:[z,ye,Ve])}function Uh(z,ye,Ve){return Ve?(z.push(IB(ye,Ve)),!0):!1}function wb(z,ye){let Ve=[];Uh(Ve,"enumerable",zd(z.enumerable)),Uh(Ve,"configurable",zd(z.configurable));let Ct=Uh(Ve,"writable",zd(z.writable));Ct=Uh(Ve,"value",z.value)||Ct;let wr=Uh(Ve,"get",z.get);return wr=Uh(Ve,"set",z.set)||wr,Zo.assert(!(Ct&&wr),"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."),Wn(Ve,!ye)}function Uu(z,ye){switch(z.kind){case 217:return XE(z,ye);case 216:return J_(z,z.type,ye);case 234:return NC(z,ye,z.type);case 238:return kC(z,ye,z.type);case 235:return U_(z,ye);case 233:return hb(z,ye,z.typeArguments);case 355:return Po(z,ye)}}function iy(z){return rDr(z)&&CNe(z)&&CNe(getSourceMapRange(z))&&CNe(getCommentRange(z))&&!oD(getSyntheticLeadingComments(z))&&!oD(getSyntheticTrailingComments(z))}function sY(z,ye,Ve=31){return z&&EBi(z,Ve)&&!iy(z)?Uu(z,sY(z.expression,ye)):ye}function oY(z,ye,Ve){if(!ye)return z;let Ct=Jr(ye,ye.label,uec(ye.statement)?oY(z,ye.statement):z);return Ve&&Ve(ye),Ct}function jR(z,ye){let Ve=jNr(z);switch(Ve.kind){case 80:return ye;case 110:case 9:case 10:case 11:return!1;case 209:return Ve.elements.length!==0;case 210:return Ve.properties.length>0;default:return!0}}function aY(z,ye,Ve,Ct=!1){let wr=sDr(z,31),ai,Lo;return Q2i(wr)?(ai=cr(),Lo=wr):$Rr(wr)?(ai=cr(),Lo=Ve!==void 0&&Ve<2?zZ(je("_super"),wr):wr):RNe(wr)&8192?(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(wr,!1)):Bce(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=Bo(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.name),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):BJe(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=ef(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.argumentExpression),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(z,!1)),{target:Lo,thisArg:ai}}function tt(z,ye){return Bo(q0(Wn([li(void 0,"value",[io(void 0,void 0,z,void 0,void 0,void 0)],eA([cs(ye)]))])),"value")}function Jt(z){return z.length>10?dc(z):K6a(z,X.createComma)}function kr(z,ye,Ve,Ct=0,wr){let ai=wr?z&&MNr(z):Bvi(z);if(ai&&$C(ai)&&!vNe(ai)){let Lo=$Nr(zZ(tv(ai),ai),ai.parent);return Ct|=RNe(ai),Ve||(Ct|=96),ye||(Ct|=3072),Ct&&setEmitFlags(Lo,Ct),Lo}return Tr(z)}function Xr(z,ye,Ve){return kr(z,ye,Ve,98304)}function ui(z,ye,Ve,Ct){return kr(z,ye,Ve,32768,Ct)}function Is(z,ye,Ve){return kr(z,ye,Ve,16384)}function Hs(z,ye,Ve){return kr(z,ye,Ve)}function Rs(z,ye,Ve,Ct){let wr=Bo(z,CNe(ye)?ye:tv(ye));zZ(wr,ye);let ai=0;return Ct||(ai|=96),Ve||(ai|=3072),ai&&setEmitFlags(wr,ai),wr}function ja(z,ye,Ve,Ct){return z&&vJe(ye,32)?Rs(z,kr(ye),Ve,Ct):Is(ye,Ve,Ct)}function ho(z,ye,Ve,Ct){let wr=ed(z,ye,0,Ve);return Og(z,ye,wr,Ct)}function sl(z){return tEt(z.expression)&&z.expression.text==="use strict"}function Nd(){return Wec(cs(Se("use strict")))}function ed(z,ye,Ve=0,Ct){Zo.assert(ye.length===0,"Prologue directives should be at the first statement in the target statements array");let wr=!1,ai=z.length;for(;VeHc&&dm.splice(wr,0,...ye.slice(Hc,ad)),Hc>Lo&&dm.splice(Ct,0,...ye.slice(Lo,Hc)),Lo>ai&&dm.splice(Ve,0,...ye.slice(ai,Lo)),ai>0)if(Ve===0)dm.splice(0,0,...ye.slice(0,ai));else{let rv=new Map;for(let nv=0;nv=0;nv--){let yx=ye[nv];rv.has(yx.expression.text)||dm.unshift(yx)}}return _ce(z)?zZ(ae(dm,z.hasTrailingComma),z):z}function IE(z,ye){let Ve;return typeof ye=="number"?Ve=jt(ye):Ve=ye,eBi(z)?xi(z,Ve,z.name,z.constraint,z.default):Ubt(z)?ga(z,Ve,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):sBi(z)?Ko(z,Ve,z.typeParameters,z.parameters,z.type):D$a(z)?Sc(z,Ve,z.name,z.questionToken,z.type):Kbt(z)?Ft(z,Ve,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):k$a(z)?Rn(z,Ve,z.name,z.questionToken,z.typeParameters,z.parameters,z.type):INr(z)?Qi(z,Ve,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):tBi(z)?Cg(z,Ve,z.parameters,z.body):hNr(z)?ma(z,Ve,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,Ve,z.name,z.parameters,z.body):rBi(z)?Ul(z,Ve,z.parameters,z.type):cBi(z)?t_(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):lBi(z)?Mm(z,Ve,z.typeParameters,z.parameters,z.type,z.equalsGreaterThanToken,z.body):mNr(z)?Hm(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):rEt(z)?um(z,Ve,z.declarationList):ABi(z)?sB(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):zbt(z)?jE(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):nDr(z)?NT(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):dBi(z)?Ty(z,Ve,z.name,z.typeParameters,z.type):Aec(z)?$I(z,Ve,z.name,z.members):EJe(z)?$A(z,Ve,z.name,z.body):pBi(z)?z_(z,Ve,z.isTypeOnly,z.name,z.moduleReference):fBi(z)?oB(z,Ve,z.importClause,z.moduleSpecifier,z.attributes):IBi(z)?$E(z,Ve,z.expression):hBi(z)?e1(z,Ve,z.isTypeOnly,z.exportClause,z.moduleSpecifier,z.attributes):Zo.assertNever(z)}function zR(z,ye){return Ubt(z)?ga(z,ye,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):Kbt(z)?Ft(z,ye,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):INr(z)?Qi(z,ye,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):hNr(z)?ma(z,ye,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,ye,z.name,z.parameters,z.body):mNr(z)?Hm(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):zbt(z)?jE(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):Zo.assertNever(z)}function e3(z,ye){switch(z.kind){case 177:return ma(z,z.modifiers,ye,z.parameters,z.type,z.body);case 178:return Ei(z,z.modifiers,ye,z.parameters,z.body);case 174:return Qi(z,z.modifiers,z.asteriskToken,ye,z.questionToken,z.typeParameters,z.parameters,z.type,z.body);case 173:return Rn(z,z.modifiers,ye,z.questionToken,z.typeParameters,z.parameters,z.type);case 172:return Ft(z,z.modifiers,ye,z.questionToken??z.exclamationToken,z.type,z.initializer);case 171:return Sc(z,z.modifiers,ye,z.questionToken,z.type);case 303:return Bb(z,ye,z.initializer)}}function IA(z){return z?ae(z):void 0}function EI(z){return typeof z=="string"?je(z):z}function zd(z){return typeof z=="string"?Se(z):typeof z=="number"?ue(z):typeof z=="boolean"?z?qr():_n():z}function wA(z){return z&&n().parenthesizeExpressionForDisallowedComma(z)}function qR(z){return typeof z=="number"?Xt(z):z}function sy(z){return z&&pec(z)?zZ(r(gm(),z),z):z}function $2(z){return typeof z=="string"||z&&!gBi(z)?Rf(z,void 0,void 0,void 0):z}function Eo(z,ye){return z!==ye&&(r(z,ye),zZ(z,ye)),z}}function xbt(e){switch(e){case 344:return"type";case 342:return"returns";case 343:return"this";case 340:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 345:return"template";case 346:return"typedef";case 341:return"param";case 348:return"prop";case 338:return"callback";case 339:return"overload";case 328:return"augments";case 329:return"implements";case 351:return"import";default:return Zo.fail(`Unsupported kind: ${Zo.formatSyntaxKind(e)}`)}}var hV,z2i={};function m$a(e,t){switch(hV||(hV=WNr(99,!1,0)),e){case 15:hV.setText("`"+t+"`");break;case 16:hV.setText("`"+t+"${");break;case 17:hV.setText("}"+t+"${");break;case 18:hV.setText("}"+t+"`");break}let r=hV.scan();if(r===20&&(r=hV.reScanTemplateToken(!1)),hV.isUnterminated())return hV.setText(void 0),z2i;let n;switch(r){case 15:case 16:case 17:case 18:n=hV.getTokenValue();break}return n===void 0||hV.scan()!==1?(hV.setText(void 0),z2i):(hV.setText(void 0),n)}function pO(e){return e&&$C(e)?_Ne(e):$o(e)}function _Ne(e){return $o(e)&-67108865}function C$a(e,t){return t|e.transformFlags&134234112}function $o(e){if(!e)return 0;let t=e.transformFlags&~_$a(e.kind);return $7a(e)&&kvi(e.name)?C$a(e.name,t):t}function qA(e){return e?e.transformFlags:0}function q2i(e){let t=0;for(let r of e)t|=$o(r);e.transformFlags=t}function _$a(e){if(e>=182&&e<=205)return-2;switch(e){case 213:case 214:case 209:return-2147450880;case 267:return-1941676032;case 169:return-2147483648;case 219:return-2072174592;case 218:case 262:return-1937940480;case 261:return-2146893824;case 263:case 231:return-2147344384;case 176:return-1937948672;case 172:return-2013249536;case 174:case 177:case 178:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 168:case 171:case 173:case 179:case 180:case 181:case 264:case 265:return-2;case 210:return-2147278848;case 299:return-2147418112;case 206:case 207:return-2147450880;case 216:case 238:case 234:case 355:case 217:case 108:return-2147483648;case 211:case 212:return-2147483648;default:return-2147483648}}var nJe=f$a();function iJe(e){return e.flags|=16,e}var y$a={createBaseSourceFileNode:e=>iJe(nJe.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>iJe(nJe.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>iJe(nJe.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>iJe(nJe.createBaseTokenNode(e)),createBaseNode:e=>iJe(nJe.createBaseNode(e))},qTu=eDr(4,y$a);function b$a(e,t){if(e.original!==t&&(e.original=t,t)){let r=t.emitNode;r&&(e.emitNode=E$a(r,e.emitNode))}return e}function E$a(e,t){let{flags:r,internalFlags:n,leadingComments:a,trailingComments:o,commentRange:l,sourceMapRange:A,tokenSourceMapRanges:f,constantValue:I,helpers:C,startsOnNewLine:b,snippetElement:E,classThis:N,assignedName:B}=e;if(t||(t={}),r&&(t.flags=r),n&&(t.internalFlags=n&-9),a&&(t.leadingComments=_V(a.slice(),t.leadingComments)),o&&(t.trailingComments=_V(o.slice(),t.trailingComments)),l&&(t.commentRange=l),A&&(t.sourceMapRange=A),f&&(t.tokenSourceMapRanges=S$a(f,t.tokenSourceMapRanges)),I!==void 0&&(t.constantValue=I),C)for(let F of C)t.helpers=H6a(t.helpers,F);return b!==void 0&&(t.startsOnNewLine=b),E!==void 0&&(t.snippetElement=E),N&&(t.classThis=N),B&&(t.assignedName=B),t}function S$a(e,t){t||(t=[]);for(let r in e)t[r]=e[r];return t}function kNe(e){return e.kind===9}function v$a(e){return e.kind===10}function tEt(e){return e.kind===11}function B$a(e){return e.kind===15}function w$a(e){return e.kind===28}function $2i(e){return e.kind===54}function eSi(e){return e.kind===58}function $C(e){return e.kind===80}function Yme(e){return e.kind===81}function T$a(e){return e.kind===95}function Gbt(e){return e.kind===134}function $Rr(e){return e.kind===108}function R$a(e){return e.kind===102}function N$a(e){return e.kind===166}function $vi(e){return e.kind===167}function eBi(e){return e.kind===168}function Ubt(e){return e.kind===169}function tDr(e){return e.kind===170}function D$a(e){return e.kind===171}function Kbt(e){return e.kind===172}function k$a(e){return e.kind===173}function INr(e){return e.kind===174}function tBi(e){return e.kind===176}function hNr(e){return e.kind===177}function jbt(e){return e.kind===178}function x$a(e){return e.kind===179}function G$a(e){return e.kind===180}function rBi(e){return e.kind===181}function F$a(e){return e.kind===182}function nBi(e){return e.kind===183}function iBi(e){return e.kind===184}function sBi(e){return e.kind===185}function Z$a(e){return e.kind===186}function L$a(e){return e.kind===187}function V$a(e){return e.kind===188}function P$a(e){return e.kind===189}function W$a(e){return e.kind===202}function O$a(e){return e.kind===190}function M$a(e){return e.kind===191}function H$a(e){return e.kind===192}function Y$a(e){return e.kind===193}function Q$a(e){return e.kind===194}function X$a(e){return e.kind===195}function J$a(e){return e.kind===196}function U$a(e){return e.kind===197}function K$a(e){return e.kind===198}function j$a(e){return e.kind===199}function z$a(e){return e.kind===200}function q$a(e){return e.kind===201}function $$a(e){return e.kind===205}function eec(e){return e.kind===208}function tec(e){return e.kind===209}function oBi(e){return e.kind===210}function Bce(e){return e.kind===211}function BJe(e){return e.kind===212}function aBi(e){return e.kind===213}function rec(e){return e.kind===215}function rDr(e){return e.kind===217}function cBi(e){return e.kind===218}function lBi(e){return e.kind===219}function nec(e){return e.kind===222}function iec(e){return e.kind===224}function DNe(e){return e.kind===226}function sec(e){return e.kind===230}function mNr(e){return e.kind===231}function oec(e){return e.kind===232}function aec(e){return e.kind===233}function Vbt(e){return e.kind===235}function cec(e){return e.kind===236}function lec(e){return e.kind===356}function rEt(e){return e.kind===243}function uBi(e){return e.kind===244}function uec(e){return e.kind===256}function gBi(e){return e.kind===260}function gec(e){return e.kind===261}function ABi(e){return e.kind===262}function zbt(e){return e.kind===263}function nDr(e){return e.kind===264}function dBi(e){return e.kind===265}function Aec(e){return e.kind===266}function EJe(e){return e.kind===267}function pBi(e){return e.kind===271}function fBi(e){return e.kind===272}function IBi(e){return e.kind===277}function hBi(e){return e.kind===278}function dec(e){return e.kind===279}function pec(e){return e.kind===353}function mBi(e){return e.kind===283}function tSi(e){return e.kind===286}function fec(e){return e.kind===289}function CBi(e){return e.kind===295}function Iec(e){return e.kind===297}function hec(e){return e.kind===303}function mec(e){return e.kind===307}function Cec(e){return e.kind===309}function _ec(e){return e.kind===314}function yec(e){return e.kind===317}function _Bi(e){return e.kind===320}function bec(e){return e.kind===322}function yBi(e){return e.kind===323}function Eec(e){return e.kind===328}function Sec(e){return e.kind===333}function vec(e){return e.kind===334}function Bec(e){return e.kind===335}function wec(e){return e.kind===336}function Tec(e){return e.kind===337}function Rec(e){return e.kind===339}function Nec(e){return e.kind===331}function rSi(e){return e.kind===341}function Dec(e){return e.kind===342}function iDr(e){return e.kind===344}function kec(e){return e.kind===345}function xec(e){return e.kind===329}function Gec(e){return e.kind===350}var Ome=new WeakMap;function bBi(e,t){var r;let n=e.kind;return YNr(n)?n===352?e._children:(r=Ome.get(t))==null?void 0:r.get(e):x2}function Fec(e,t,r){e.kind===352&&Zo.fail("Should not need to re-set the children of a SyntaxList.");let n=Ome.get(t);return n===void 0&&(n=new WeakMap,Ome.set(t,n)),n.set(e,r),r}function nSi(e,t){var r;e.kind===352&&Zo.fail("Did not expect to unset the children of a SyntaxList."),(r=Ome.get(t))==null||r.delete(e)}function Zec(e,t){let r=Ome.get(e);r!==void 0&&(Ome.delete(e),Ome.set(t,r))}function iSi(e){return(RNe(e)&32768)!==0}function Lec(e){return tEt(e.expression)&&e.expression.text==="use strict"}function Vec(e){for(let t of e)if(Lbt(t)){if(Lec(t))return t}else break}function Pec(e){return rDr(e)&&Qme(e)&&!!fza(e)}function EBi(e,t=31){switch(e.kind){case 217:return t&-2147483648&&Pec(e)?!1:(t&1)!==0;case 216:case 234:case 238:return(t&2)!==0;case 233:return(t&16)!==0;case 235:return(t&4)!==0;case 355:return(t&8)!==0}return!1}function sDr(e,t=31){for(;EBi(e,t);)e=e.expression;return e}function Wec(e){return setStartsOnNewLine(e,!0)}function dJe(e){if(xza(e))return e.name;if(Rza(e)){switch(e.kind){case 303:return dJe(e.initializer);case 304:return e.name;case 305:return dJe(e.expression)}return}return Jbt(e,!0)?dJe(e.left):sec(e)?dJe(e.expression):e}function Oec(e){switch(e.kind){case 206:case 207:case 209:return e.elements;case 210:return e.properties}}function sSi(e){if(e){let t=e;for(;;){if($C(t)||!t.body)return $C(t)?t:t.name;t=t.body}}}var oSi;(e=>{function t(C,b,E,N,B,F,Q){let X=b>0?B[b-1]:void 0;return Zo.assertEqual(E[b],t),B[b]=C.onEnter(N[b],X,Q),E[b]=A(C,t),b}e.enter=t;function r(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],r),Zo.assertIsDefined(C.onLeft),E[b]=A(C,r);let X=C.onLeft(N[b].left,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.left=r;function n(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],n),Zo.assertIsDefined(C.onOperator),E[b]=A(C,n),C.onOperator(N[b].operatorToken,B[b],N[b]),b}e.operator=n;function a(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],a),Zo.assertIsDefined(C.onRight),E[b]=A(C,a);let X=C.onRight(N[b].right,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.right=a;function o(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],o),E[b]=A(C,o);let X=C.onExit(N[b],B[b]);if(b>0){if(b--,C.foldState){let ae=E[b]===o?"right":"left";B[b]=C.foldState(B[b],X,ae)}}else F.value=X;return b}e.exit=o;function l(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],l),b}e.done=l;function A(C,b){switch(b){case t:if(C.onLeft)return r;case r:if(C.onOperator)return n;case n:if(C.onRight)return a;case a:return o;case o:return l;case l:return l;default:Zo.fail("Invalid state")}}e.nextState=A;function f(C,b,E,N,B){return C++,b[C]=t,E[C]=B,N[C]=void 0,C}function I(C,b,E){if(Zo.shouldAssert(2))for(;C>=0;)Zo.assert(b[C]!==E,"Circular traversal detected."),C--}})(oSi||(oSi={}));function aSi(e,t){return typeof e=="object"?CNr(!1,e.prefix,e.node,e.suffix,t):typeof e=="string"?e.length>0&&e.charCodeAt(0)===35?e.slice(1):e:""}function Mec(e,t){return typeof e=="string"?e:Hec(e,Zo.checkDefined(t))}function Hec(e,t){return Dvi(e)?t(e).slice(1):vNe(e)?t(e):Yme(e)?e.escapedText.slice(1):yV(e)}function CNr(e,t,r,n,a){return t=aSi(t,a),n=aSi(n,a),r=Mec(r,a),`${e?"#":""}${t}${r}${n}`}function SBi(e){if(e.transformFlags&65536)return!0;if(e.transformFlags&128)for(let t of Oec(e)){let r=dJe(t);if(r&&kza(r)&&(r.transformFlags&65536||r.transformFlags&128&&SBi(r)))return!0}return!1}function zZ(e,t){return t?Ece(e,t.pos,t.end):e}function oDr(e){let t=e.kind;return t===168||t===169||t===171||t===172||t===173||t===174||t===176||t===177||t===178||t===181||t===185||t===218||t===219||t===231||t===243||t===262||t===263||t===264||t===265||t===266||t===267||t===271||t===272||t===277||t===278}function Yec(e){let t=e.kind;return t===169||t===172||t===174||t===177||t===178||t===231||t===263}var cSi,lSi,uSi,gSi,ASi,Qec={createBaseSourceFileNode:e=>new(ASi||(ASi=k2.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(uSi||(uSi=k2.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(gSi||(gSi=k2.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(lSi||(lSi=k2.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(cSi||(cSi=k2.getNodeConstructor()))(e,-1,-1)},$Tu=eDr(1,Qec);function wi(e,t){return t&&e(t)}function al(e,t,r){if(r){if(t)return t(r);for(let n of r){let a=e(n);if(a)return a}}}function Xec(e,t){return e.charCodeAt(t+1)===42&&e.charCodeAt(t+2)===42&&e.charCodeAt(t+3)!==47}function Jec(e){return hO(e.statements,Uec)||Kec(e)}function Uec(e){return oDr(e)&&jec(e,95)||pBi(e)&&mBi(e.moduleReference)||fBi(e)||IBi(e)||hBi(e)?e:void 0}function Kec(e){return e.flags&8388608?vBi(e):void 0}function vBi(e){return zec(e)?e:Ok(e,vBi)}function jec(e,t){return oD(e.modifiers,r=>r.kind===t)}function zec(e){return cec(e)&&e.keywordToken===102&&e.name.escapedText==="meta"}var qec={166:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},168:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.constraint)||wi(t,e.default)||wi(t,e.expression)},304:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.equalsToken)||wi(t,e.objectAssignmentInitializer)},305:function(e,t,r){return wi(t,e.expression)},169:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},172:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},171:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},303:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.initializer)},260:function(e,t,r){return wi(t,e.name)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},208:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.propertyName)||wi(t,e.name)||wi(t,e.initializer)},181:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},185:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},184:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},179:dSi,180:dSi,174:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},173:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},176:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},177:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},178:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},262:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},218:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},219:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.equalsGreaterThanToken)||wi(t,e.body)},175:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.body)},183:function(e,t,r){return wi(t,e.typeName)||al(t,r,e.typeArguments)},182:function(e,t,r){return wi(t,e.assertsModifier)||wi(t,e.parameterName)||wi(t,e.type)},186:function(e,t,r){return wi(t,e.exprName)||al(t,r,e.typeArguments)},187:function(e,t,r){return al(t,r,e.members)},188:function(e,t,r){return wi(t,e.elementType)},189:function(e,t,r){return al(t,r,e.elements)},192:pSi,193:pSi,194:function(e,t,r){return wi(t,e.checkType)||wi(t,e.extendsType)||wi(t,e.trueType)||wi(t,e.falseType)},195:function(e,t,r){return wi(t,e.typeParameter)},205:function(e,t,r){return wi(t,e.argument)||wi(t,e.attributes)||wi(t,e.qualifier)||al(t,r,e.typeArguments)},302:function(e,t,r){return wi(t,e.assertClause)},196:fSi,198:fSi,199:function(e,t,r){return wi(t,e.objectType)||wi(t,e.indexType)},200:function(e,t,r){return wi(t,e.readonlyToken)||wi(t,e.typeParameter)||wi(t,e.nameType)||wi(t,e.questionToken)||wi(t,e.type)||al(t,r,e.members)},201:function(e,t,r){return wi(t,e.literal)},202:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)},206:ISi,207:ISi,209:function(e,t,r){return al(t,r,e.elements)},210:function(e,t,r){return al(t,r,e.properties)},211:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.name)},212:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.argumentExpression)},213:hSi,214:hSi,215:function(e,t,r){return wi(t,e.tag)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||wi(t,e.template)},216:function(e,t,r){return wi(t,e.type)||wi(t,e.expression)},217:function(e,t,r){return wi(t,e.expression)},220:function(e,t,r){return wi(t,e.expression)},221:function(e,t,r){return wi(t,e.expression)},222:function(e,t,r){return wi(t,e.expression)},224:function(e,t,r){return wi(t,e.operand)},229:function(e,t,r){return wi(t,e.asteriskToken)||wi(t,e.expression)},223:function(e,t,r){return wi(t,e.expression)},225:function(e,t,r){return wi(t,e.operand)},226:function(e,t,r){return wi(t,e.left)||wi(t,e.operatorToken)||wi(t,e.right)},234:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},235:function(e,t,r){return wi(t,e.expression)},238:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},236:function(e,t,r){return wi(t,e.name)},227:function(e,t,r){return wi(t,e.condition)||wi(t,e.questionToken)||wi(t,e.whenTrue)||wi(t,e.colonToken)||wi(t,e.whenFalse)},230:function(e,t,r){return wi(t,e.expression)},241:mSi,268:mSi,307:function(e,t,r){return al(t,r,e.statements)||wi(t,e.endOfFileToken)},243:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.declarationList)},261:function(e,t,r){return al(t,r,e.declarations)},244:function(e,t,r){return wi(t,e.expression)},245:function(e,t,r){return wi(t,e.expression)||wi(t,e.thenStatement)||wi(t,e.elseStatement)},246:function(e,t,r){return wi(t,e.statement)||wi(t,e.expression)},247:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},248:function(e,t,r){return wi(t,e.initializer)||wi(t,e.condition)||wi(t,e.incrementor)||wi(t,e.statement)},249:function(e,t,r){return wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},250:function(e,t,r){return wi(t,e.awaitModifier)||wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},251:CSi,252:CSi,253:function(e,t,r){return wi(t,e.expression)},254:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},255:function(e,t,r){return wi(t,e.expression)||wi(t,e.caseBlock)},269:function(e,t,r){return al(t,r,e.clauses)},296:function(e,t,r){return wi(t,e.expression)||al(t,r,e.statements)},297:function(e,t,r){return al(t,r,e.statements)},256:function(e,t,r){return wi(t,e.label)||wi(t,e.statement)},257:function(e,t,r){return wi(t,e.expression)},258:function(e,t,r){return wi(t,e.tryBlock)||wi(t,e.catchClause)||wi(t,e.finallyBlock)},299:function(e,t,r){return wi(t,e.variableDeclaration)||wi(t,e.block)},170:function(e,t,r){return wi(t,e.expression)},263:_Si,231:_Si,264:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)},265:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||wi(t,e.type)},266:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.members)},306:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},267:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.body)},271:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.moduleReference)},272:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},273:function(e,t,r){return wi(t,e.name)||wi(t,e.namedBindings)},300:function(e,t,r){return al(t,r,e.elements)},301:function(e,t,r){return wi(t,e.name)||wi(t,e.value)},270:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)},274:function(e,t,r){return wi(t,e.name)},280:function(e,t,r){return wi(t,e.name)},275:ySi,279:ySi,278:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.exportClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},276:bSi,281:bSi,277:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.expression)},228:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},239:function(e,t,r){return wi(t,e.expression)||wi(t,e.literal)},203:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},204:function(e,t,r){return wi(t,e.type)||wi(t,e.literal)},167:function(e,t,r){return wi(t,e.expression)},298:function(e,t,r){return al(t,r,e.types)},233:function(e,t,r){return wi(t,e.expression)||al(t,r,e.typeArguments)},283:function(e,t,r){return wi(t,e.expression)},282:function(e,t,r){return al(t,r,e.modifiers)},356:function(e,t,r){return al(t,r,e.elements)},284:function(e,t,r){return wi(t,e.openingElement)||al(t,r,e.children)||wi(t,e.closingElement)},288:function(e,t,r){return wi(t,e.openingFragment)||al(t,r,e.children)||wi(t,e.closingFragment)},285:ESi,286:ESi,292:function(e,t,r){return al(t,r,e.properties)},291:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},293:function(e,t,r){return wi(t,e.expression)},294:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.expression)},287:function(e,t,r){return wi(t,e.tagName)},295:function(e,t,r){return wi(t,e.namespace)||wi(t,e.name)},190:Dme,191:Dme,309:Dme,315:Dme,314:Dme,316:Dme,318:Dme,317:function(e,t,r){return al(t,r,e.parameters)||wi(t,e.type)},320:function(e,t,r){return(typeof e.comment=="string"?void 0:al(t,r,e.comment))||al(t,r,e.tags)},347:function(e,t,r){return wi(t,e.tagName)||wi(t,e.name)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},310:function(e,t,r){return wi(t,e.name)},311:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},341:SSi,348:SSi,330:function(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},329:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},328:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},345:function(e,t,r){return wi(t,e.tagName)||wi(t,e.constraint)||al(t,r,e.typeParameters)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},346:function(e,t,r){return wi(t,e.tagName)||(e.typeExpression&&e.typeExpression.kind===309?wi(t,e.typeExpression)||wi(t,e.fullName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)):wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)))},338:function(e,t,r){return wi(t,e.tagName)||wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},342:kme,344:kme,343:kme,340:kme,350:kme,349:kme,339:kme,323:function(e,t,r){return hO(e.typeParameters,t)||hO(e.parameters,t)||wi(t,e.type)},324:eNr,325:eNr,326:eNr,322:function(e,t,r){return hO(e.jsDocPropertyTags,t)},327:Ice,332:Ice,333:Ice,334:Ice,335:Ice,336:Ice,331:Ice,337:Ice,351:$ec,355:etc};function dSi(e,t,r){return al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)}function pSi(e,t,r){return al(t,r,e.types)}function fSi(e,t,r){return wi(t,e.type)}function ISi(e,t,r){return al(t,r,e.elements)}function hSi(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||al(t,r,e.arguments)}function mSi(e,t,r){return al(t,r,e.statements)}function CSi(e,t,r){return wi(t,e.label)}function _Si(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)}function ySi(e,t,r){return al(t,r,e.elements)}function bSi(e,t,r){return wi(t,e.propertyName)||wi(t,e.name)}function ESi(e,t,r){return wi(t,e.tagName)||al(t,r,e.typeArguments)||wi(t,e.attributes)}function Dme(e,t,r){return wi(t,e.type)}function SSi(e,t,r){return wi(t,e.tagName)||(e.isNameFirst?wi(t,e.name)||wi(t,e.typeExpression):wi(t,e.typeExpression)||wi(t,e.name))||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function kme(e,t,r){return wi(t,e.tagName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function eNr(e,t,r){return wi(t,e.name)}function Ice(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function $ec(e,t,r){return wi(t,e.tagName)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function etc(e,t,r){return wi(t,e.expression)}function Ok(e,t,r){if(e===void 0||e.kind<=165)return;let n=qec[e.kind];return n===void 0?void 0:n(e,t,r)}function vSi(e,t,r){let n=BSi(e),a=[];for(;a.length=0;--A)n.push(o[A]),a.push(l)}else{let A=t(o,l);if(A){if(A==="skip")continue;return A}if(o.kind>=166)for(let f of BSi(o))n.push(f),a.push(o)}}}function BSi(e){let t=[];return Ok(e,r,r),t;function r(n){t.unshift(n)}}function BBi(e){e.externalModuleIndicator=Jec(e)}function ttc(e,t,r,n=!1,a){var o,l;(o=Fbt)==null||o.push(Fbt.Phase.Parse,"createSourceFile",{path:e},!0),T2i("beforeParse");let A,{languageVersion:f,setExternalModuleIndicator:I,impliedNodeFormat:C,jsDocParsingMode:b}=typeof r=="object"?r:{languageVersion:r};if(f===100)A=Mme.parseSourceFile(e,t,f,void 0,n,6,NNe,b);else{let E=C===void 0?I:N=>(N.impliedNodeFormat=C,(I||BBi)(N));A=Mme.parseSourceFile(e,t,f,void 0,n,a,E,b)}return T2i("afterParse"),u7a("Parse","beforeParse","afterParse"),(l=Fbt)==null||l.pop(),A}function rtc(e){return e.externalModuleIndicator!==void 0}function ntc(e,t,r,n=!1){let a=qbt.updateSourceFile(e,t,r,n);return a.flags|=e.flags&12582912,a}var Mme;(e=>{var t=WNr(99,!0),r=40960,n,a,o,l,A;function f(tt){return _n++,tt}var I={createBaseSourceFileNode:tt=>f(new A(tt,0,0)),createBaseIdentifierNode:tt=>f(new o(tt,0,0)),createBasePrivateIdentifierNode:tt=>f(new l(tt,0,0)),createBaseTokenNode:tt=>f(new a(tt,0,0)),createBaseNode:tt=>f(new n(tt,0,0))},C=eDr(11,I),{createNodeArray:b,createNumericLiteral:E,createStringLiteral:N,createLiteralLikeNode:B,createIdentifier:F,createPrivateIdentifier:Q,createToken:X,createArrayLiteralExpression:ae,createObjectLiteralExpression:ne,createPropertyAccessExpression:ce,createPropertyAccessChain:fe,createElementAccessExpression:ue,createElementAccessChain:de,createCallExpression:be,createCallChain:Se,createNewExpression:De,createParenthesizedExpression:k,createBlock:et,createVariableStatement:ct,createExpressionStatement:Me,createIfStatement:je,createWhileStatement:St,createForStatement:At,createForOfStatement:Yt,createVariableDeclaration:Tr,createVariableDeclarationList:Nr}=C,er,vt,xt,Zr,qt,Xt,lr,cr,Ar,qr,_n,ke,jt,Fn,Nn,Hi,po=!0,Vr=!1;function xi(tt,Jt,kr,Xr,ui=!1,Is,Hs,Rs=0){var ja;if(Is=r$a(tt,Is),Is===6){let sl=ga(tt,Jt,kr,Xr,ui);return convertToJson(sl,(ja=sl.statements[0])==null?void 0:ja.expression,sl.parseDiagnostics,!1,void 0),sl.referencedFiles=x2,sl.typeReferenceDirectives=x2,sl.libReferenceDirectives=x2,sl.amdDependencies=x2,sl.hasNoDefaultLib=!1,sl.pragmas=Z6a,sl}Ya(tt,Jt,kr,Xr,Is,Rs);let ho=cl(kr,ui,Is,Hs||BBi,Rs);return Gc(),ho}e.parseSourceFile=xi;function io(tt,Jt){Ya("",tt,Jt,void 0,1,0),Vs();let kr=se(!0),Xr=Wt()===1&&!lr.length;return Gc(),Xr?kr:void 0}e.parseIsolatedEntityName=io;function ga(tt,Jt,kr=2,Xr,ui=!1){Ya(tt,Jt,kr,Xr,6,0),vt=Hi,Vs();let Is=Ri(),Hs,Rs;if(Wt()===1)Hs=Er([],Is,Is),Rs=ZA();else{let sl;for(;Wt()!==1;){let Og;switch(Wt()){case 23:Og=ag();break;case 112:case 97:case 106:Og=ZA();break;case 41:oo(()=>Vs()===9&&Vs()!==59)?Og=ey():Og=n1();break;case 9:case 11:if(oo(()=>Vs()!==59)){Og=ra();break}default:Og=n1();break}sl&&Tee(sl)?sl.push(Og):sl?sl=[sl,Og]:(sl=Og,Wt()!==1&&Da(ts.Unexpected_token))}let Nd=Tee(sl)?Zt(ae(sl),Is):Zo.checkDefined(sl),ed=Me(Nd);Zt(ed,Is),Hs=Er([ed],Is),Rs=il(1,ts.Unexpected_token)}let ja=zr(tt,2,6,!1,Hs,Rs,vt,NNe);ui&&Ft(ja),ja.nodeCount=_n,ja.identifierCount=jt,ja.identifiers=ke,ja.parseDiagnostics=Nme(lr,ja),cr&&(ja.jsDocDiagnostics=Nme(cr,ja));let ho=ja;return Gc(),ho}e.parseJsonText=ga;function Ya(tt,Jt,kr,Xr,ui,Is){switch(n=k2.getNodeConstructor(),a=k2.getTokenConstructor(),o=k2.getIdentifierConstructor(),l=k2.getPrivateIdentifierConstructor(),A=k2.getSourceFileConstructor(),er=E7a(tt),xt=Jt,Zr=kr,Ar=Xr,qt=ui,Xt=U2i(ui),lr=[],Fn=0,ke=new Map,jt=0,_n=0,vt=0,po=!0,qt){case 1:case 2:Hi=524288;break;case 6:Hi=134742016;break;default:Hi=0;break}Vr=!1,t.setText(xt),t.setOnError(Qh),t.setScriptTarget(Zr),t.setLanguageVariant(Xt),t.setScriptKind(qt),t.setJSDocParsingMode(Is)}function Gc(){t.clearCommentDirectives(),t.setText(""),t.setOnError(void 0),t.setScriptKind(0),t.setJSDocParsingMode(0),xt=void 0,Zr=void 0,Ar=void 0,qt=void 0,Xt=void 0,vt=0,lr=void 0,cr=void 0,Fn=0,ke=void 0,Nn=void 0,po=!0}function cl(tt,Jt,kr,Xr,ui){let Is=otc(er);Is&&(Hi|=33554432),vt=Hi,Vs();let Hs=jd(0,Am);Zo.assert(Wt()===1);let Rs=Do(),ja=Hr(ZA(),Rs),ho=zr(er,tt,kr,Is,Hs,ja,vt,Xr);return ltc(ho,xt),utc(ho,sl),ho.commentDirectives=t.getCommentDirectives(),ho.nodeCount=_n,ho.identifierCount=jt,ho.identifiers=ke,ho.parseDiagnostics=Nme(lr,ho),ho.jsDocParsingMode=ui,cr&&(ho.jsDocDiagnostics=Nme(cr,ho)),Jt&&Ft(ho),ho;function sl(Nd,ed,Og){lr.push(pNe(er,xt,Nd,ed,Og))}}let Sc=!1;function Hr(tt,Jt){if(!Jt)return tt;Zo.assert(!tt.jsDoc);let kr=W6a(qza(tt,xt),Xr=>aY.parseJSDocComment(tt,Xr.pos,Xr.end-Xr.pos));return kr.length&&(tt.jsDoc=kr),Sc&&(Sc=!1,tt.flags|=536870912),tt}function Wr(tt){let Jt=Ar,kr=qbt.createSyntaxCursor(tt);Ar={currentNode:sl};let Xr=[],ui=lr;lr=[];let Is=0,Hs=ja(tt.statements,0);for(;Hs!==-1;){let Nd=tt.statements[Is],ed=tt.statements[Hs];_V(Xr,tt.statements,Is,Hs),Is=ho(tt.statements,Hs);let Og=YRr(ui,o1=>o1.start>=Nd.pos),Nh=Og>=0?YRr(ui,o1=>o1.start>=ed.pos,Og):-1;Og>=0&&_V(lr,ui,Og,Nh>=0?Nh:void 0),oA(()=>{let o1=Hi;for(Hi|=65536,t.resetTokenState(ed.pos),Vs();Wt()!==1;){let Tb=t.getTokenFullStart(),q2=dh(0,Am);if(Xr.push(q2),Tb===t.getTokenFullStart()&&Vs(),Is>=0){let IE=tt.statements[Is];if(q2.end===IE.pos)break;q2.end>IE.pos&&(Is=ho(tt.statements,Is+1))}}Hi=o1},2),Hs=Is>=0?ja(tt.statements,Is):-1}if(Is>=0){let Nd=tt.statements[Is];_V(Xr,tt.statements,Is);let ed=YRr(ui,Og=>Og.start>=Nd.pos);ed>=0&&_V(lr,ui,ed)}return Ar=Jt,C.updateSourceFile(tt,zZ(b(Xr),tt.statements));function Rs(Nd){return!(Nd.flags&65536)&&!!(Nd.transformFlags&67108864)}function ja(Nd,ed){for(let Og=ed;Og118}function Xs(){return Wt()===80?!0:Wt()===127&&Yl()||Wt()===135&&Xu()?!1:Wt()>118}function ws(tt,Jt,kr=!0){return Wt()===tt?(kr&&Vs(),!0):(Jt?Da(Jt):Da(ts._0_expected,by(tt)),!1)}let Gs=Object.keys(LNr).filter(tt=>tt.length>2);function Ma(tt){if(rec(tt)){_g(dj(xt,tt.template.pos),tt.template.end,ts.Module_declaration_names_may_only_use_or_quoted_strings);return}let Jt=$C(tt)?yV(tt):void 0;if(!Jt||!Q7a(Jt,Zr)){Da(ts._0_expected,by(27));return}let kr=dj(xt,tt.pos);switch(Jt){case"const":case"let":case"var":_g(kr,tt.end,ts.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":Dc(ts.Interface_name_cannot_be_0,ts.Interface_must_be_given_a_name,19);return;case"is":_g(kr,t.getTokenStart(),ts.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":Dc(ts.Namespace_name_cannot_be_0,ts.Namespace_must_be_given_a_name,19);return;case"type":Dc(ts.Type_alias_name_cannot_be_0,ts.Type_alias_must_be_given_a_name,64);return}let Xr=lJe(Jt,Gs,VE)??As(Jt);if(Xr){_g(kr,tt.end,ts.Unknown_keyword_or_identifier_Did_you_mean_0,Xr);return}Wt()!==0&&_g(kr,tt.end,ts.Unexpected_keyword_or_identifier)}function Dc(tt,Jt,kr){Wt()===kr?Da(Jt):Da(tt,t.getTokenValue())}function As(tt){for(let Jt of Gs)if(tt.length>Jt.length+2&&Obt(tt,Jt))return`${Jt} ${tt.slice(Jt.length)}`}function Tf(tt,Jt,kr){if(Wt()===60&&!t.hasPrecedingLineBreak()){Da(ts.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(Wt()===21){Da(ts.Cannot_start_a_function_call_in_a_type_annotation),Vs();return}if(Jt&&!yg()){kr?Da(ts._0_expected,by(27)):Da(ts.Expected_for_property_initializer);return}if(!Mp()){if(kr){Da(ts._0_expected,by(27));return}Ma(tt)}}function cm(tt){return Wt()===tt?(Ju(),!0):(Zo.assert(URr(tt)),Da(ts._0_expected,by(tt)),!1)}function Fl(tt,Jt,kr,Xr){if(Wt()===Jt){Vs();return}let ui=Da(ts._0_expected,by(Jt));kr&&ui&&Dbt(ui,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,by(tt),by(Jt)))}function rc(tt){return Wt()===tt?(Vs(),!0):!1}function sd(tt){if(Wt()===tt)return ZA()}function Om(tt){if(Wt()===tt)return El()}function il(tt,Jt,kr){return sd(tt)||yn(tt,!1,Jt||ts._0_expected,kr||by(tt))}function FA(tt){return Om(tt)||(Zo.assert(URr(tt)),yn(tt,!1,ts._0_expected,by(tt)))}function ZA(){let tt=Ri(),Jt=Wt();return Vs(),Zt(X(Jt),tt)}function El(){let tt=Ri(),Jt=Wt();return Ju(),Zt(X(Jt),tt)}function yg(){return Wt()===27?!0:Wt()===20||Wt()===1||t.hasPrecedingLineBreak()}function Mp(){return yg()?(Wt()===27&&Vs(),!0):!1}function MA(){return Mp()||ws(27)}function Er(tt,Jt,kr,Xr){let ui=b(tt,Xr);return Ece(ui,Jt,kr??t.getTokenFullStart()),ui}function Zt(tt,Jt,kr){return Ece(tt,Jt,kr??t.getTokenFullStart()),Hi&&(tt.flags|=Hi),Vr&&(Vr=!1,tt.flags|=262144),tt}function yn(tt,Jt,kr,...Xr){Jt?pu(t.getTokenFullStart(),0,kr,...Xr):kr&&Da(kr,...Xr);let ui=Ri(),Is=tt===80?F("",void 0):P2i(tt)?C.createTemplateLiteralLikeNode(tt,"","",void 0):tt===9?E("",void 0):tt===11?N("",void 0):tt===282?C.createMissingDeclaration():X(tt);return Zt(Is,ui)}function ls(tt){let Jt=ke.get(tt);return Jt===void 0&&ke.set(tt,Jt=tt),Jt}function oa(tt,Jt,kr){if(tt){jt++;let Rs=t.hasPrecedingJSDocLeadingAsterisks()?t.getTokenStart():Ri(),ja=Wt(),ho=ls(t.getTokenValue()),sl=t.hasExtendedUnicodeEscape();return Hu(),Zt(F(ho,ja,sl),Rs)}if(Wt()===81)return Da(kr||ts.Private_identifiers_are_not_allowed_outside_class_bodies),oa(!0);if(Wt()===0&&t.tryScan(()=>t.reScanInvalidIdentifier()===80))return oa(!0);jt++;let Xr=Wt()===1,ui=t.isReservedWord(),Is=t.getTokenText(),Hs=ui?ts.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:ts.Identifier_expected;return yn(80,Xr,Jt||Hs,Is)}function Fs(tt){return oa(cc(),void 0,tt)}function Wa(tt,Jt){return oa(Xs(),tt,Jt)}function Ca(tt){return oa(H1(Wt()),tt)}function ld(){return(t.hasUnicodeEscape()||t.hasExtendedUnicodeEscape())&&Da(ts.Unicode_escape_sequence_cannot_appear_here),oa(H1(Wt()))}function Rp(){return H1(Wt())||Wt()===11||Wt()===9||Wt()===10}function np(){return H1(Wt())||Wt()===11}function HA(tt){if(Wt()===11||Wt()===9||Wt()===10){let Jt=ra();return Jt.text=ls(Jt.text),Jt}return tt&&Wt()===23?Zs():Wt()===81?so():Ca()}function df(){return HA(!0)}function Zs(){let tt=Ri();ws(23);let Jt=gc($A);return ws(24),Zt(C.createComputedPropertyName(Jt),tt)}function so(){let tt=Ri(),Jt=Q(ls(t.getTokenValue()));return Vs(),Zt(Jt,tt)}function Ea(tt){return Wt()===tt&&Ki(Dr)}function Ml(){return Vs(),t.hasPrecedingLineBreak()?!1:Bo()}function Dr(){switch(Wt()){case 87:return Vs()===94;case 95:return Vs(),Wt()===90?oo(Ql):Wt()===156?oo(di):Wn();case 90:return Ql();case 126:return Vs(),Bo();case 139:case 153:return Vs(),us();default:return Ml()}}function Wn(){return Wt()===60||Wt()!==42&&Wt()!==130&&Wt()!==19&&Bo()}function di(){return Vs(),Wn()}function aa(){return vee(Wt())&&Ki(Dr)}function Bo(){return Wt()===23||Wt()===19||Wt()===42||Wt()===26||Rp()}function us(){return Wt()===23||Rp()}function Ql(){return Vs(),Wt()===86||Wt()===100||Wt()===120||Wt()===60||Wt()===128&&oo(Dp)||Wt()===134&&oo(t2)}function LA(tt,Jt){if(Hp(tt))return!0;switch(tt){case 0:case 1:case 3:return!(Wt()===27&&Jt)&&Xc();case 2:return Wt()===84||Wt()===90;case 4:return oo(gm);case 5:return oo(bL)||Wt()===27&&!Jt;case 6:return Wt()===23||Rp();case 12:switch(Wt()){case 23:case 42:case 26:case 25:return!0;default:return Rp()}case 18:return Rp();case 9:return Wt()===23||Wt()===26||Rp();case 24:return np();case 7:return Wt()===19?oo(pf):Jt?Xs()&&!j1():US()&&!j1();case 8:return i1();case 10:return Wt()===28||Wt()===26||i1();case 19:return Wt()===103||Wt()===87||Xs();case 15:switch(Wt()){case 28:case 25:return!0}case 11:return Wt()===26||$I();case 16:return NC(!1);case 17:return NC(!0);case 20:case 21:return Wt()===28||ut();case 22:return rn();case 23:return Wt()===161&&oo(Cx)?!1:Wt()===11?!0:H1(Wt());case 13:return H1(Wt())||Wt()===19;case 14:return!0;case 25:return!0;case 26:return Zo.fail("ParsingContext.Count used as a context");default:Zo.assertNever(tt,"Non-exhaustive case in 'isListElement'.")}}function pf(){if(Zo.assert(Wt()===19),Vs()===20){let tt=Vs();return tt===28||tt===19||tt===96||tt===119}return!0}function ef(){return Vs(),Xs()}function ip(){return Vs(),H1(Wt())}function _d(){return Vs(),S7a(Wt())}function j1(){return Wt()===119||Wt()===96?oo(pw):!1}function pw(){return Vs(),$I()}function YA(){return Vs(),ut()}function Ac(tt){if(Wt()===1)return!0;switch(tt){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return Wt()===20;case 3:return Wt()===20||Wt()===84||Wt()===90;case 7:return Wt()===19||Wt()===96||Wt()===119;case 8:return Nm();case 19:return Wt()===32||Wt()===21||Wt()===19||Wt()===96||Wt()===119;case 11:return Wt()===22||Wt()===27;case 15:case 21:case 10:return Wt()===24;case 17:case 16:case 18:return Wt()===22||Wt()===24;case 20:return Wt()!==28;case 22:return Wt()===19||Wt()===20;case 13:return Wt()===32||Wt()===44;case 14:return Wt()===30&&oo(tv);default:return!1}}function Nm(){return!!(yg()||qE(Wt())||Wt()===39)}function HS(){Zo.assert(Fn,"Missing parsing context");for(let tt=0;tt<26;tt++)if(Fn&1<=0)}function CI(tt){return tt===6?ts.An_enum_member_name_must_be_followed_by_a_or:void 0}function _I(){let tt=Er([],Ri());return tt.isMissingList=!0,tt}function H2(tt){return!!tt.isMissingList}function iE(tt,Jt,kr,Xr){if(ws(kr)){let ui=Kf(tt,Jt);return ws(Xr),ui}return _I()}function se(tt,Jt){let kr=Ri(),Xr=tt?Ca(Jt):Wa(Jt);for(;rc(25)&&Wt()!==30;)Xr=Zt(C.createQualifiedName(Xr,K(tt,!1,!0)),kr);return Xr}function O(tt,Jt){return Zt(C.createQualifiedName(tt,Jt),tt.pos)}function K(tt,Jt,kr){if(t.hasPrecedingLineBreak()&&H1(Wt())&&oo(Dm))return yn(80,!0,ts.Identifier_expected);if(Wt()===81){let Xr=so();return Jt?Xr:yn(80,!0,ts.Identifier_expected)}return tt?kr?Ca():ld():Wa()}function we(tt){let Jt=Ri(),kr=[],Xr;do Xr=$n(tt),kr.push(Xr);while(Xr.literal.kind===17);return Er(kr,Jt)}function gt(tt){let Jt=Ri();return Zt(C.createTemplateExpression(kc(tt),we(tt)),Jt)}function sr(){let tt=Ri();return Zt(C.createTemplateLiteralType(kc(!1),Yr()),tt)}function Yr(){let tt=Ri(),Jt=[],kr;do kr=Lr(),Jt.push(kr);while(kr.literal.kind===17);return Er(Jt,tt)}function Lr(){let tt=Ri();return Zt(C.createTemplateLiteralTypeSpan(tf(),fi(!1)),tt)}function fi(tt){return Wt()===20?(OA(tt),Nl()):il(18,ts._0_expected,by(20))}function $n(tt){let Jt=Ri();return Zt(C.createTemplateSpan(gc($A),fi(tt)),Jt)}function ra(){return Bl(Wt())}function kc(tt){!tt&&t.getTokenFlags()&26656&&OA(!1);let Jt=Bl(Wt());return Zo.assert(Jt.kind===16,"Template head has wrong token kind"),Jt}function Nl(){let tt=Bl(Wt());return Zo.assert(tt.kind===17||tt.kind===18,"Template fragment has wrong token kind"),tt}function ca(tt){let Jt=tt===15||tt===18,kr=t.getTokenText();return kr.substring(1,kr.length-(t.isUnterminated()?0:Jt?1:2))}function Bl(tt){let Jt=Ri(),kr=P2i(tt)?C.createTemplateLiteralLikeNode(tt,t.getTokenValue(),ca(tt),t.getTokenFlags()&7176):tt===9?E(t.getTokenValue(),t.getNumericLiteralFlags()):tt===11?N(t.getTokenValue(),void 0,t.hasExtendedUnicodeEscape()):yza(tt)?B(tt,t.getTokenValue()):Zo.fail();return t.hasExtendedUnicodeEscape()&&(kr.hasExtendedUnicodeEscape=!0),t.isUnterminated()&&(kr.isUnterminated=!0),Vs(),Zt(kr,Jt)}function $g(){return se(!0,ts.Type_expected)}function SA(){if(!t.hasPrecedingLineBreak()&&GA()===30)return iE(20,tf,30,32)}function lI(){let tt=Ri();return Zt(C.createTypeReferenceNode($g(),SA()),tt)}function lp(tt){switch(tt.kind){case 183:return Wme(tt.typeName);case 184:case 185:{let{parameters:Jt,type:kr}=tt;return H2(Jt)||lp(kr)}case 196:return lp(tt.type);default:return!1}}function Ib(tt){return Vs(),Zt(C.createTypePredicateNode(void 0,tt,tf()),tt.pos)}function Na(){let tt=Ri();return Vs(),Zt(C.createThisTypeNode(),tt)}function wd(){let tt=Ri();return Vs(),Zt(C.createJSDocAllType(),tt)}function z1(){let tt=Ri();return Vs(),Zt(C.createJSDocNonNullableType(xc(),!1),tt)}function T_(){let tt=Ri();return Vs(),Wt()===28||Wt()===20||Wt()===22||Wt()===32||Wt()===64||Wt()===52?Zt(C.createJSDocUnknownType(),tt):Zt(C.createJSDocNullableType(tf(),!1),tt)}function RC(){let tt=Ri(),Jt=Do();if(Ki(_x)){let kr=Mc(36),Xr=ph(59,!1);return Hr(Zt(C.createJSDocFunctionType(kr,Xr),tt),Jt)}return Zt(C.createTypeReferenceNode(Ca(),void 0),tt)}function Hm(){let tt=Ri(),Jt;return(Wt()===110||Wt()===105)&&(Jt=Ca(),ws(59)),Zt(C.createParameterDeclaration(void 0,void 0,Jt,void 0,YS(),void 0),tt)}function YS(){t.setSkipJsDocLeadingAsterisks(!0);let tt=Ri();if(rc(144)){let Xr=C.createJSDocNamepathType(void 0);e:for(;;)switch(Wt()){case 20:case 1:case 28:case 5:break e;default:Ju()}return t.setSkipJsDocLeadingAsterisks(!1),Zt(Xr,tt)}let Jt=rc(26),kr=jE();return t.setSkipJsDocLeadingAsterisks(!1),Jt&&(kr=Zt(C.createJSDocVariadicType(kr),tt)),Wt()===64?(Vs(),Zt(C.createJSDocOptionalType(kr),tt)):kr}function Fg(){let tt=Ri();ws(114);let Jt=se(!0),kr=t.hasPrecedingLineBreak()?void 0:xn();return Zt(C.createTypeQueryNode(Jt,kr),tt)}function hb(){let tt=Ri(),Jt=Le(!1,!0),kr=Wa(),Xr,ui;rc(96)&&(ut()||!$I()?Xr=tf():ui=JR());let Is=rc(64)?tf():void 0,Hs=C.createTypeParameterDeclaration(Jt,kr,Xr,Is);return Hs.expression=ui,Zt(Hs,tt)}function gC(){if(Wt()===30)return iE(19,hb,30,32)}function NC(tt){return Wt()===26||i1()||vee(Wt())||Wt()===60||ut(!tt)}function Y2(tt){let Jt=Of(ts.Private_identifiers_cannot_be_used_as_parameters);return Jza(Jt)===0&&!oD(tt)&&vee(Wt())&&Vs(),Jt}function U_(){return cc()||Wt()===23||Wt()===19}function DC(tt){return qI(tt)}function kC(tt){return qI(tt,!1)}function qI(tt,Jt=!0){let kr=Ri(),Xr=Do(),ui=tt?li(()=>Le(!0)):Ei(()=>Le(!0));if(Wt()===110){let ja=C.createParameterDeclaration(ui,void 0,oa(!0),void 0,Ty(),void 0),ho=DNr(ui);return ho&&mI(ho,ts.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),Hr(Zt(ja,kr),Xr)}let Is=po;po=!1;let Hs=sd(26);if(!Jt&&!U_())return;let Rs=Hr(Zt(C.createParameterDeclaration(ui,Hs,Y2(ui),sd(58),Ty(),Qm()),kr),Xr);return po=Is,Rs}function ph(tt,Jt){if(vA(tt,Jt))return Nc(jE)}function vA(tt,Jt){return tt===39?(ws(tt),!0):rc(59)?!0:Jt&&Wt()===39?(Da(ts._0_expected,by(59)),Vs(),!0):!1}function Td(tt,Jt){let kr=Yl(),Xr=Xu();Qi(!!(tt&1)),yo(!!(tt&2));let ui=tt&32?Kf(17,Hm):Kf(16,()=>Jt?DC(Xr):kC(Xr));return Qi(kr),yo(Xr),ui}function Mc(tt){if(!ws(21))return _I();let Jt=Td(tt,!0);return ws(22),Jt}function Pf(){rc(28)||MA()}function sE(tt){let Jt=Ri(),kr=Do();tt===180&&ws(105);let Xr=gC(),ui=Mc(4),Is=ph(59,!0);Pf();let Hs=tt===179?C.createCallSignature(Xr,ui,Is):C.createConstructSignature(Xr,ui,Is);return Hr(Zt(Hs,Jt),kr)}function eA(){return Wt()===23&&oo(QS)}function QS(){if(Vs(),Wt()===26||Wt()===24)return!0;if(vee(Wt())){if(Vs(),Xs())return!0}else if(Xs())Vs();else return!1;return Wt()===59||Wt()===28?!0:Wt()!==58?!1:(Vs(),Wt()===59||Wt()===28||Wt()===24)}function XS(tt,Jt,kr){let Xr=iE(16,()=>DC(!1),23,24),ui=Ty();Pf();let Is=C.createIndexSignature(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function um(tt,Jt,kr){let Xr=df(),ui=sd(58),Is;if(Wt()===21||Wt()===30){let Hs=gC(),Rs=Mc(4),ja=ph(59,!0);Is=C.createMethodSignature(kr,Xr,ui,Hs,Rs,ja)}else{let Hs=Ty();Is=C.createPropertySignature(kr,Xr,ui,Hs),Wt()===64&&(Is.initializer=Qm())}return Pf(),Hr(Zt(Is,tt),Jt)}function gm(){if(Wt()===21||Wt()===30||Wt()===139||Wt()===153)return!0;let tt=!1;for(;vee(Wt());)tt=!0,Vs();return Wt()===23?!0:(Rp()&&(tt=!0,Vs()),tt?Wt()===21||Wt()===30||Wt()===58||Wt()===59||Wt()===28||yg():!1)}function cs(){if(Wt()===21||Wt()===30)return sE(179);if(Wt()===105&&oo(na))return sE(180);let tt=Ri(),Jt=Do(),kr=Le(!1);return Ea(139)?Bb(tt,Jt,kr,177,4):Ea(153)?Bb(tt,Jt,kr,178,4):eA()?XS(tt,Jt,kr):um(tt,Jt,kr)}function na(){return Vs(),Wt()===21||Wt()===30}function ko(){return Vs()===25}function ki(){switch(Vs()){case 21:case 30:case 25:return!0}return!1}function Kl(){let tt=Ri();return Zt(C.createTypeLiteralNode(fd()),tt)}function fd(){let tt;return ws(19)?(tt=jd(4,cs),ws(20)):tt=_I(),tt}function jf(){return Vs(),Wt()===40||Wt()===41?Vs()===148:(Wt()===148&&Vs(),Wt()===23&&ef()&&Vs()===103)}function Ld(){let tt=Ri(),Jt=Ca();ws(103);let kr=tf();return Zt(C.createTypeParameterDeclaration(void 0,Jt,kr,void 0),tt)}function AC(){let tt=Ri();ws(19);let Jt;(Wt()===148||Wt()===40||Wt()===41)&&(Jt=ZA(),Jt.kind!==148&&ws(148)),ws(23);let kr=Ld(),Xr=rc(130)?tf():void 0;ws(24);let ui;(Wt()===58||Wt()===40||Wt()===41)&&(ui=ZA(),ui.kind!==58&&ws(58));let Is=Ty();MA();let Hs=jd(4,cs);return ws(20),Zt(C.createMappedTypeNode(Jt,kr,Xr,ui,Is,Hs),tt)}function JE(){let tt=Ri();if(rc(26))return Zt(C.createRestTypeNode(tf()),tt);let Jt=tf();if(_ec(Jt)&&Jt.pos===Jt.type.pos){let kr=C.createOptionalTypeNode(Jt.type);return zZ(kr,Jt),kr.flags=Jt.flags,kr}return Jt}function Ym(){return Vs()===59||Wt()===58&&Vs()===59}function vy(){return Wt()===26?H1(Vs())&&Ym():H1(Wt())&&Ym()}function K_(){if(oo(vy)){let tt=Ri(),Jt=Do(),kr=sd(26),Xr=Ca(),ui=sd(58);ws(59);let Is=JE(),Hs=C.createNamedTupleMember(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}return JE()}function od(){let tt=Ri();return Zt(C.createTupleTypeNode(iE(21,K_,23,24)),tt)}function UE(){let tt=Ri();ws(21);let Jt=tf();return ws(22),Zt(C.createParenthesizedType(Jt),tt)}function KE(){let tt;if(Wt()===128){let Jt=Ri();Vs();let kr=Zt(X(128),Jt);tt=Er([kr],Jt)}return tt}function Yp(){let tt=Ri(),Jt=Do(),kr=KE(),Xr=rc(105);Zo.assert(!kr||Xr,"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");let ui=gC(),Is=Mc(4),Hs=ph(39,!1),Rs=Xr?C.createConstructorTypeNode(kr,ui,Is,Hs):C.createFunctionTypeNode(ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function JS(){let tt=ZA();return Wt()===25?void 0:tt}function By(tt){let Jt=Ri();tt&&Vs();let kr=Wt()===112||Wt()===97||Wt()===106?ZA():Bl(Wt());return tt&&(kr=Zt(C.createPrefixUnaryExpression(41,kr),Jt)),Zt(C.createLiteralTypeNode(kr),Jt)}function $0(){return Vs(),Wt()===102}function fw(){vt|=4194304;let tt=Ri(),Jt=rc(114);ws(102),ws(21);let kr=tf(),Xr;if(rc(28)){let Hs=t.getTokenStart();ws(19);let Rs=Wt();if(Rs===118||Rs===132?Vs():Da(ts._0_expected,by(118)),ws(59),Xr=$O(Rs,!0),!ws(20)){let ja=Vme(lr);ja&&ja.code===ts._0_expected.code&&Dbt(ja,pNe(er,xt,Hs,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}}ws(22);let ui=rc(25)?$g():void 0,Is=SA();return Zt(C.createImportTypeNode(kr,Xr,ui,Is,Jt),tt)}function Q2(){return Vs(),Wt()===9||Wt()===10}function xc(){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return Ki(JS)||lI();case 67:t.reScanAsteriskEqualsToken();case 42:return wd();case 61:t.reScanQuestionToken();case 58:return T_();case 100:return RC();case 54:return z1();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return By();case 41:return oo(Q2)?By(!0):lI();case 116:return ZA();case 110:{let tt=Na();return Wt()===142&&!t.hasPrecedingLineBreak()?Ib(tt):tt}case 114:return oo($0)?fw():Fg();case 19:return oo(jf)?AC():Kl();case 23:return od();case 21:return UE();case 102:return fw();case 131:return oo(Dm)?NT():lI();case 16:return sr();default:return lI()}}function ut(tt){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!tt;case 41:return!tt&&oo(Q2);case 21:return!tt&&oo(ar);default:return Xs()}}function ar(){return Vs(),Wt()===22||NC(!1)||ut()}function Jr(){let tt=Ri(),Jt=xc();for(;!t.hasPrecedingLineBreak();)switch(Wt()){case 54:Vs(),Jt=Zt(C.createJSDocNonNullableType(Jt,!0),tt);break;case 58:if(oo(YA))return Jt;Vs(),Jt=Zt(C.createJSDocNullableType(Jt,!0),tt);break;case 23:if(ws(23),ut()){let kr=tf();ws(24),Jt=Zt(C.createIndexedAccessTypeNode(Jt,kr),tt)}else ws(24),Jt=Zt(C.createArrayTypeNode(Jt),tt);break;default:return Jt}return Jt}function Gn(tt){let Jt=Ri();return ws(tt),Zt(C.createTypeOperatorNode(tt,Ng()),Jt)}function Ts(){if(rc(96)){let tt=iA(tf);if(Sg()||Wt()!==58)return tt}}function Qo(){let tt=Ri(),Jt=Wa(),kr=Ki(Ts),Xr=C.createTypeParameterDeclaration(void 0,Jt,kr);return Zt(Xr,tt)}function vg(){let tt=Ri();return ws(140),Zt(C.createInferTypeNode(Qo()),tt)}function Ng(){let tt=Wt();switch(tt){case 143:case 158:case 148:return Gn(tt);case 140:return vg()}return Nc(Jr)}function Rf(tt){if(sB()){let Jt=Yp(),kr;return iBi(Jt)?kr=tt?ts.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:kr=tt?ts.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,mI(Jt,kr),Jt}}function uI(tt,Jt,kr){let Xr=Ri(),ui=tt===52,Is=rc(tt),Hs=Is&&Rf(ui)||Jt();if(Wt()===tt||Is){let Rs=[Hs];for(;rc(tt);)Rs.push(Rf(ui)||Jt());Hs=Zt(kr(Er(Rs,Xr)),Xr)}return Hs}function Th(){return uI(51,Ng,C.createIntersectionTypeNode)}function oE(){return uI(52,Th,C.createUnionTypeNode)}function TT(){return Vs(),Wt()===105}function sB(){return Wt()===30||Wt()===21&&oo(wy)?!0:Wt()===105||Wt()===128&&oo(TT)}function RT(){if(vee(Wt())&&Le(!1),Xs()||Wt()===110)return Vs(),!0;if(Wt()===23||Wt()===19){let tt=lr.length;return Of(),tt===lr.length}return!1}function wy(){return Vs(),!!(Wt()===22||Wt()===26||RT()&&(Wt()===59||Wt()===28||Wt()===58||Wt()===64||Wt()===22&&(Vs(),Wt()===39)))}function jE(){let tt=Ri(),Jt=Xs()&&Ki(j_),kr=tf();return Jt?Zt(C.createTypePredicateNode(void 0,Jt,kr),tt):kr}function j_(){let tt=Wa();if(Wt()===142&&!t.hasPrecedingLineBreak())return Vs(),tt}function NT(){let tt=Ri(),Jt=il(131),kr=Wt()===110?Na():Wa(),Xr=rc(142)?tf():void 0;return Zt(C.createTypePredicateNode(Jt,kr,Xr),tt)}function tf(){if(Hi&81920)return bo(81920,tf);if(sB())return Yp();let tt=Ri(),Jt=oE();if(!Sg()&&!t.hasPrecedingLineBreak()&&rc(96)){let kr=iA(tf);ws(58);let Xr=Nc(tf);ws(59);let ui=Nc(tf);return Zt(C.createConditionalTypeNode(Jt,kr,Xr,ui),tt)}return Jt}function Ty(){return rc(59)?tf():void 0}function US(){switch(Wt()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return oo(ki);default:return Xs()}}function $I(){if(US())return!0;switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return kT()?!0:Xs()}}function BA(){return Wt()!==19&&Wt()!==100&&Wt()!==86&&Wt()!==60&&$I()}function $A(){let tt=Ul();tt&&ps(!1);let Jt=Ri(),kr=zf(!0),Xr;for(;Xr=sd(28);)kr=q1(kr,Xr,zf(!0),Jt);return tt&&ps(!0),kr}function Qm(){return rc(64)?zf(!0):void 0}function zf(tt){if(mb())return Cb();let Jt=KS(tt)||oB(tt);if(Jt)return Jt;let kr=Ri(),Xr=Do(),ui=zS(0);return ui.kind===80&&Wt()===39?Ry(kr,ui,tt,Xr,void 0):TNe(ui)&&Jvi(Ko())?q1(ui,ZA(),zf(tt),kr):XR(ui,kr,tt)}function mb(){return Wt()===127?Yl()?!0:oo(Ro):!1}function R_(){return Vs(),!t.hasPrecedingLineBreak()&&Xs()}function Cb(){let tt=Ri();return Vs(),!t.hasPrecedingLineBreak()&&(Wt()===42||$I())?Zt(C.createYieldExpression(sd(42),zf(!0)),tt):Zt(C.createYieldExpression(void 0,void 0),tt)}function Ry(tt,Jt,kr,Xr,ui){Zo.assert(Wt()===39,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");let Is=C.createParameterDeclaration(void 0,void 0,Jt,void 0,void 0,void 0);Zt(Is,Jt.pos);let Hs=Er([Is],Is.pos,Is.end),Rs=il(39),ja=jS(!!ui,kr),ho=C.createArrowFunction(ui,void 0,Hs,void 0,Rs,ja);return Hr(Zt(ho,tt),Xr)}function KS(tt){let Jt=_b();if(Jt!==0)return Jt===1?aB(!0,!0):Ki(()=>zE(tt))}function _b(){return Wt()===21||Wt()===30||Wt()===134?oo(z_):Wt()===39?1:0}function z_(){if(Wt()===134&&(Vs(),t.hasPrecedingLineBreak()||Wt()!==21&&Wt()!==30))return 0;let tt=Wt(),Jt=Vs();if(tt===21){if(Jt===22)switch(Vs()){case 39:case 59:case 19:return 1;default:return 0}if(Jt===23||Jt===19)return 2;if(Jt===26)return 1;if(vee(Jt)&&Jt!==134&&oo(ef))return Vs()===130?0:1;if(!Xs()&&Jt!==110)return 0;switch(Vs()){case 59:return 1;case 58:return Vs(),Wt()===59||Wt()===28||Wt()===64||Wt()===22?1:0;case 28:case 64:case 22:return 2}return 0}else return Zo.assert(tt===30),!Xs()&&Wt()!==87?0:Xt===1?oo(()=>{rc(87);let kr=Vs();if(kr===96)switch(Vs()){case 64:case 32:case 44:return!1;default:return!0}else if(kr===28||kr===64)return!0;return!1})?1:0:2}function zE(tt){let Jt=t.getTokenStart();if(Nn!=null&&Nn.has(Jt))return;let kr=aB(!1,tt);return kr||(Nn||(Nn=new Set)).add(Jt),kr}function oB(tt){if(Wt()===134&&oo(DT)===1){let Jt=Ri(),kr=Do(),Xr=ft(),ui=zS(0);return Ry(Jt,ui,tt,kr,Xr)}}function DT(){if(Wt()===134){if(Vs(),t.hasPrecedingLineBreak()||Wt()===39)return 0;let tt=zS(0);if(!t.hasPrecedingLineBreak()&&tt.kind===80&&Wt()===39)return 1}return 0}function aB(tt,Jt){let kr=Ri(),Xr=Do(),ui=ft(),Is=oD(ui,Gbt)?2:0,Hs=gC(),Rs;if(ws(21)){if(tt)Rs=Td(Is,tt);else{let Tb=Td(Is,tt);if(!Tb)return;Rs=Tb}if(!ws(22)&&!tt)return}else{if(!tt)return;Rs=_I()}let ja=Wt()===59,ho=ph(59,!1);if(ho&&!tt&&lp(ho))return;let sl=ho;for(;sl?.kind===196;)sl=sl.type;let Nd=sl&&yec(sl);if(!tt&&Wt()!==39&&(Nd||Wt()!==19))return;let ed=Wt(),Og=il(39),Nh=ed===39||ed===19?jS(oD(ui,Gbt),Jt):Wa();if(!Jt&&ja&&Wt()!==59)return;let o1=C.createArrowFunction(ui,Hs,Rs,ho,Og,Nh);return Hr(Zt(o1,kr),Xr)}function jS(tt,Jt){if(Wt()===19)return cE(tt?2:0);if(Wt()!==27&&Wt()!==100&&Wt()!==86&&Xc()&&!BA())return cE(16|(tt?2:0));let kr=po;po=!1;let Xr=tt?li(()=>zf(Jt)):Ei(()=>zf(Jt));return po=kr,Xr}function XR(tt,Jt,kr){let Xr=sd(58);if(!Xr)return tt;let ui;return Zt(C.createConditionalExpression(tt,Xr,bo(r,()=>zf(!1)),ui=il(59),ANr(ui)?zf(kr):yn(80,!1,ts._0_expected,by(59))),Jt)}function zS(tt){let Jt=Ri(),kr=JR();return X2(tt,kr,Jt)}function qE(tt){return tt===103||tt===165}function X2(tt,Jt,kr){for(;;){Ko();let Xr=KRr(Wt());if(!(Wt()===43?Xr>=tt:Xr>tt)||Wt()===103&&Wc())break;if(Wt()===130||Wt()===152){if(t.hasPrecedingLineBreak())break;{let ui=Wt();Vs(),Jt=ui===152?pn(Jt,tf()):J2(Jt,tf())}}else Jt=q1(Jt,ZA(),zS(Xr),kr)}return Jt}function kT(){return Wc()&&Wt()===103?!1:KRr(Wt())>0}function pn(tt,Jt){return Zt(C.createSatisfiesExpression(tt,Jt),tt.pos)}function q1(tt,Jt,kr,Xr){return Zt(C.createBinaryExpression(tt,Jt,kr),Xr)}function J2(tt,Jt){return Zt(C.createAsExpression(tt,Jt),tt.pos)}function ey(){let tt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru(ty)),tt)}function up(){let tt=Ri();return Zt(C.createDeleteExpression(Ru(ty)),tt)}function Iw(){let tt=Ri();return Zt(C.createTypeOfExpression(Ru(ty)),tt)}function cB(){let tt=Ri();return Zt(C.createVoidExpression(Ru(ty)),tt)}function RD(){return Wt()===135?Xu()?!0:oo(Ro):!1}function Rd(){let tt=Ri();return Zt(C.createAwaitExpression(Ru(ty)),tt)}function JR(){if(cF()){let kr=Ri(),Xr=$1();return Wt()===43?X2(KRr(Wt()),Xr,kr):Xr}let tt=Wt(),Jt=ty();if(Wt()===43){let kr=dj(xt,Jt.pos),{end:Xr}=Jt;Jt.kind===216?_g(kr,Xr,ts.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(Zo.assert(URr(tt)),_g(kr,Xr,ts.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,by(tt)))}return Jt}function ty(){switch(Wt()){case 40:case 41:case 55:case 54:return ey();case 91:return up();case 114:return Iw();case 116:return cB();case 30:return Xt===1?t1(!0,void 0,void 0,!0):rf();case 135:if(RD())return Rd();default:return $1()}}function cF(){switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(Xt!==1)return!1;default:return!0}}function $1(){if(Wt()===46||Wt()===47){let Jt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru($E)),Jt)}else if(Xt===1&&Wt()===30&&oo(_d))return t1(!0);let tt=$E();if(Zo.assert(TNe(tt)),(Wt()===46||Wt()===47)&&!t.hasPrecedingLineBreak()){let Jt=Wt();return Vs(),Zt(C.createPostfixUnaryExpression(tt,Jt),tt.pos)}return tt}function $E(){let tt=Ri(),Jt;return Wt()===102?oo(na)?(vt|=4194304,Jt=ZA()):oo(ko)?(Vs(),Vs(),Jt=Zt(C.createMetaProperty(102,Ca()),tt),vt|=8388608):Jt=N_():Jt=Wt()===108?e1():N_(),r1(tt,Jt)}function N_(){let tt=Ri(),Jt=b0();return Ih(tt,Jt,!0)}function e1(){let tt=Ri(),Jt=ZA();if(Wt()===30){let kr=Ri(),Xr=Ki(hw);Xr!==void 0&&(_g(kr,Ri(),ts.super_may_not_use_type_arguments),xC()||(Jt=C.createExpressionWithTypeArguments(Jt,Xr)))}return Wt()===21||Wt()===25||Wt()===23?Jt:(il(25,ts.super_must_be_followed_by_an_argument_list_or_member_access),Zt(ce(Jt,K(!0,!0,!0)),tt))}function t1(tt,Jt,kr,Xr=!1){let ui=Ri(),Is=Rh(tt),Hs;if(Is.kind===286){let Rs=yb(Is),ja,ho=Rs[Rs.length-1];if(ho?.kind===284&&!hce(ho.openingElement.tagName,ho.closingElement.tagName)&&hce(Is.tagName,ho.closingElement.tagName)){let sl=ho.children.end,Nd=Zt(C.createJsxElement(ho.openingElement,ho.children,Zt(C.createJsxClosingElement(Zt(F(""),sl,sl)),sl,sl)),ho.openingElement.pos,sl);Rs=Er([...Rs.slice(0,Rs.length-1),Nd],Rs.pos,sl),ja=ho.closingElement}else ja=lc(Is,tt),hce(Is.tagName,ja.tagName)||(kr&&tSi(kr)&&hce(ja.tagName,kr.tagName)?mI(Is.tagName,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,Is.tagName)):mI(ja.tagName,ts.Expected_corresponding_JSX_closing_tag_for_0,AJe(xt,Is.tagName)));Hs=Zt(C.createJsxElement(Is,Rs,ja),ui)}else Is.kind===289?Hs=Zt(C.createJsxFragment(Is,yb(Is),fh(tt)),ui):(Zo.assert(Is.kind===285),Hs=Is);if(!Xr&&tt&&Wt()===30){let Rs=typeof Jt>"u"?Hs.pos:Jt,ja=Ki(()=>t1(!0,Rs));if(ja){let ho=yn(28,!1);return j2i(ho,ja.pos,0),_g(dj(xt,Rs),ja.end,ts.JSX_expressions_must_have_one_parent_element),Zt(C.createBinaryExpression(Hs,ho,ja),ui)}}return Hs}function ry(){let tt=Ri(),Jt=C.createJsxText(t.getTokenValue(),qr===13);return qr=t.scanJsxToken(),Zt(Jt,tt)}function xT(tt,Jt){switch(Jt){case 1:if(fec(tt))mI(tt,ts.JSX_fragment_has_no_corresponding_closing_tag);else{let kr=tt.tagName,Xr=Math.min(dj(xt,kr.pos),kr.end);_g(Xr,kr.end,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,tt.tagName))}return;case 31:case 7:return;case 12:case 13:return ry();case 19:return ND(!1);case 30:return t1(!1,void 0,tt);default:return Zo.assertNever(Jt)}}function yb(tt){let Jt=[],kr=Ri(),Xr=Fn;for(Fn|=16384;;){let ui=xT(tt,qr=t.reScanJsxToken());if(!ui||(Jt.push(ui),tSi(tt)&&ui?.kind===284&&!hce(ui.openingElement.tagName,ui.closingElement.tagName)&&hce(tt.tagName,ui.closingElement.tagName)))break}return Fn=Xr,Er(Jt,kr)}function r_(){let tt=Ri();return Zt(C.createJsxAttributes(jd(13,DD)),tt)}function Rh(tt){let Jt=Ri();if(ws(30),Wt()===32)return Uf(),Zt(C.createJsxOpeningFragment(),Jt);let kr=bb(),Xr=Hi&524288?void 0:xn(),ui=r_(),Is;return Wt()===32?(Uf(),Is=C.createJsxOpeningElement(kr,Xr,ui)):(ws(44),ws(32,void 0,!1)&&(tt?Vs():Uf()),Is=C.createJsxSelfClosingElement(kr,Xr,ui)),Zt(Is,Jt)}function bb(){let tt=Ri(),Jt=lB();if(CBi(Jt))return Jt;let kr=Jt;for(;rc(25);)kr=Zt(ce(kr,K(!0,!1,!1)),tt);return kr}function lB(){let tt=Ri();dl();let Jt=Wt()===110,kr=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(kr,ld()),tt)):Jt?Zt(C.createToken(110),tt):kr}function ND(tt){let Jt=Ri();if(!ws(19))return;let kr,Xr;return Wt()!==20&&(tt||(kr=sd(26)),Xr=$A()),tt?ws(20):ws(20,void 0,!1)&&Uf(),Zt(C.createJsxExpression(kr,Xr),Jt)}function DD(){if(Wt()===19)return UR();let tt=Ri();return Zt(C.createJsxAttribute(kD(),q_()),tt)}function q_(){if(Wt()===64){if(Kd()===11)return ra();if(Wt()===19)return ND(!0);if(Wt()===30)return t1(!0);Da(ts.or_JSX_element_expected)}}function kD(){let tt=Ri();dl();let Jt=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(Jt,ld()),tt)):Jt}function UR(){let tt=Ri();ws(19),ws(26);let Jt=$A();return ws(20),Zt(C.createJsxSpreadAttribute(Jt),tt)}function lc(tt,Jt){let kr=Ri();ws(31);let Xr=bb();return ws(32,void 0,!1)&&(Jt||!hce(tt.tagName,Xr)?Vs():Uf()),Zt(C.createJsxClosingElement(Xr),kr)}function fh(tt){let Jt=Ri();return ws(31),ws(32,ts.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(tt?Vs():Uf()),Zt(C.createJsxJsxClosingFragment(),Jt)}function rf(){Zo.assert(Xt!==1,"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");let tt=Ri();ws(30);let Jt=tf();ws(32);let kr=ty();return Zt(C.createTypeAssertion(Jt,kr),tt)}function yI(){return Vs(),H1(Wt())||Wt()===23||xC()}function aE(){return Wt()===29&&oo(yI)}function qS(tt){if(tt.flags&64)return!0;if(Vbt(tt)){let Jt=tt.expression;for(;Vbt(Jt)&&!(Jt.flags&64);)Jt=Jt.expression;if(Jt.flags&64){for(;Vbt(tt);)tt.flags|=64,tt=tt.expression;return!0}}return!1}function Qp(tt,Jt,kr){let Xr=K(!0,!0,!0),ui=kr||qS(Jt),Is=ui?fe(Jt,kr,Xr):ce(Jt,Xr);if(ui&&Yme(Is.name)&&mI(Is.name,ts.An_optional_chain_cannot_contain_private_identifiers),aec(Jt)&&Jt.typeArguments){let Hs=Jt.typeArguments.pos-1,Rs=dj(xt,Jt.typeArguments.end)+1;_g(Hs,Rs,ts.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return Zt(Is,tt)}function uB(tt,Jt,kr){let Xr;if(Wt()===24)Xr=yn(80,!0,ts.An_element_access_expression_should_take_an_argument);else{let Is=gc($A);eEt(Is)&&(Is.text=ls(Is.text)),Xr=Is}ws(24);let ui=kr||qS(Jt)?de(Jt,kr,Xr):ue(Jt,Xr);return Zt(ui,tt)}function Ih(tt,Jt,kr){for(;;){let Xr,ui=!1;if(kr&&aE()?(Xr=il(29),ui=H1(Wt())):ui=rc(25),ui){Jt=Qp(tt,Jt,Xr);continue}if((Xr||!Ul())&&rc(23)){Jt=uB(tt,Jt,Xr);continue}if(xC()){Jt=!Xr&&Jt.kind===233?$_(tt,Jt.expression,Xr,Jt.typeArguments):$_(tt,Jt,Xr,void 0);continue}if(!Xr){if(Wt()===54&&!t.hasPrecedingLineBreak()){Vs(),Jt=Zt(C.createNonNullExpression(Jt),tt);continue}let Is=Ki(hw);if(Is){Jt=Zt(C.createExpressionWithTypeArguments(Jt,Is),tt);continue}}return Jt}}function xC(){return Wt()===15||Wt()===16}function $_(tt,Jt,kr,Xr){let ui=C.createTaggedTemplateExpression(Jt,Xr,Wt()===15?(OA(!0),ra()):gt(!0));return(kr||Jt.flags&64)&&(ui.flags|=64),ui.questionDotToken=kr,Zt(ui,tt)}function r1(tt,Jt){for(;;){Jt=Ih(tt,Jt,!0);let kr,Xr=sd(29);if(Xr&&(kr=Ki(hw),xC())){Jt=$_(tt,Jt,Xr,kr);continue}if(kr||Wt()===21){!Xr&&Jt.kind===233&&(kr=Jt.typeArguments,Jt=Jt.expression);let ui=gB(),Is=Xr||qS(Jt)?Se(Jt,Xr,kr,ui):be(Jt,kr,ui);Jt=Zt(Is,tt);continue}if(Xr){let ui=yn(80,!1,ts.Identifier_expected);Jt=Zt(fe(Jt,Xr,ui),tt)}break}return Jt}function gB(){ws(21);let tt=Kf(11,bI);return ws(22),tt}function hw(){if(Hi&524288||GA()!==30)return;Vs();let tt=Kf(20,tf);if(Ko()===32)return Vs(),tt&>()?tt:void 0}function GT(){switch(Wt()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return t.hasPrecedingLineBreak()||kT()||!$I()}function b0(){switch(Wt()){case 15:t.getTokenFlags()&26656&&OA(!1);case 9:case 10:case 11:return ra();case 110:case 108:case 106:case 112:case 97:return ZA();case 21:return ia();case 23:return ag();case 19:return n1();case 134:if(!oo(t2))break;return U2();case 60:return Ur();case 86:return mi();case 100:return U2();case 105:return n_();case 44:case 69:if(Eg()===14)return ra();break;case 16:return gt(!1);case 81:return so()}return Wa(ts.Expression_expected)}function ia(){let tt=Ri(),Jt=Do();ws(21);let kr=gc($A);return ws(22),Hr(Zt(k(kr),tt),Jt)}function e2(){let tt=Ri();ws(26);let Jt=zf(!0);return Zt(C.createSpreadElement(Jt),tt)}function yd(){return Wt()===26?e2():Wt()===28?Zt(C.createOmittedExpression(),Ri()):zf(!0)}function bI(){return bo(r,yd)}function ag(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(23),Xr=t.hasPrecedingLineBreak(),ui=Kf(15,yd);return Fl(23,24,kr,Jt),Zt(ae(ui,Xr),tt)}function Eb(){let tt=Ri(),Jt=Do();if(sd(26)){let ho=zf(!0);return Hr(Zt(C.createSpreadAssignment(ho),tt),Jt)}let kr=Le(!0);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);let Xr=sd(42),ui=Xs(),Is=df(),Hs=sd(58),Rs=sd(54);if(Xr||Wt()===21||Wt()===30)return vb(tt,Jt,kr,Xr,Is,Hs,Rs);let ja;if(ui&&Wt()!==59){let ho=sd(64),sl=ho?gc(()=>zf(!0)):void 0;ja=C.createShorthandPropertyAssignment(Is,sl),ja.equalsToken=ho}else{ws(59);let ho=gc(()=>zf(!0));ja=C.createPropertyAssignment(Is,ho)}return ja.modifiers=kr,ja.questionToken=Hs,ja.exclamationToken=Rs,Hr(Zt(ja,tt),Jt)}function n1(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(19),Xr=t.hasPrecedingLineBreak(),ui=Kf(12,Eb,!0);return Fl(19,20,kr,Jt),Zt(ne(ui,Xr),tt)}function U2(){let tt=Ul();ps(!1);let Jt=Ri(),kr=Do(),Xr=Le(!1);ws(100);let ui=sd(42),Is=ui?1:0,Hs=oD(Xr,Gbt)?2:0,Rs=Is&&Hs?Ps(e0):Is?ma(e0):Hs?li(e0):e0(),ja=gC(),ho=Mc(Is|Hs),sl=ph(59,!1),Nd=cE(Is|Hs);ps(tt);let ed=C.createFunctionExpression(Xr,ui,Rs,ja,ho,sl,Nd);return Hr(Zt(ed,Jt),kr)}function e0(){return cc()?Fs():void 0}function n_(){let tt=Ri();if(ws(105),rc(25)){let Is=Ca();return Zt(C.createMetaProperty(105,Is),tt)}let Jt=Ri(),kr=Ih(Jt,b0(),!1),Xr;kr.kind===233&&(Xr=kr.typeArguments,kr=kr.expression),Wt()===29&&Da(ts.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,AJe(xt,kr));let ui=Wt()===21?gB():void 0;return Zt(De(kr,Xr,ui),tt)}function Xp(tt,Jt){let kr=Ri(),Xr=Do(),ui=t.getTokenStart(),Is=ws(19,Jt);if(Is||tt){let Hs=t.hasPrecedingLineBreak(),Rs=jd(1,Am);Fl(19,20,Is,ui);let ja=Hr(Zt(et(Rs,Hs),kr),Xr);return Wt()===64&&(Da(ts.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),Vs()),ja}else{let Hs=_I();return Hr(Zt(et(Hs,void 0),kr),Xr)}}function cE(tt,Jt){let kr=Yl();Qi(!!(tt&1));let Xr=Xu();yo(!!(tt&2));let ui=po;po=!1;let Is=Ul();Is&&ps(!1);let Hs=Xp(!!(tt&16),Jt);return Is&&ps(!0),po=ui,Qi(kr),yo(Xr),Hs}function lE(){let tt=Ri(),Jt=Do();return ws(27),Hr(Zt(C.createEmptyStatement(),tt),Jt)}function Ip(){let tt=Ri(),Jt=Do();ws(101);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am(),Hs=rc(93)?Am():void 0;return Hr(Zt(je(ui,Is,Hs),tt),Jt)}function Xh(){let tt=Ri(),Jt=Do();ws(92);let kr=Am();ws(117);let Xr=t.getTokenStart(),ui=ws(21),Is=gc($A);return Fl(21,22,ui,Xr),rc(27),Hr(Zt(C.createDoStatement(kr,Is),tt),Jt)}function E0(){let tt=Ri(),Jt=Do();ws(117);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am();return Hr(Zt(St(ui,Is),tt),Jt)}function aA(){let tt=Ri(),Jt=Do();ws(99);let kr=sd(135);ws(21);let Xr;Wt()!==27&&(Wt()===115||Wt()===121||Wt()===87||Wt()===160&&oo(yL)||Wt()===135&&oo(ny)?Xr=j(!0):Xr=Cg($A));let ui;if(kr?ws(165):rc(165)){let Is=gc(()=>zf(!0));ws(22),ui=Yt(kr,Xr,Is,Am())}else if(rc(103)){let Is=gc($A);ws(22),ui=C.createForInStatement(Xr,Is,Am())}else{ws(27);let Is=Wt()!==27&&Wt()!==22?gc($A):void 0;ws(27);let Hs=Wt()!==22?gc($A):void 0;ws(22),ui=At(Xr,Is,Hs,Am())}return Hr(Zt(ui,tt),Jt)}function fu(tt){let Jt=Ri(),kr=Do();ws(tt===252?83:88);let Xr=yg()?void 0:Wa();MA();let ui=tt===252?C.createBreakStatement(Xr):C.createContinueStatement(Xr);return Hr(Zt(ui,Jt),kr)}function Jp(){let tt=Ri(),Jt=Do();ws(107);let kr=yg()?void 0:gc($A);return MA(),Hr(Zt(C.createReturnStatement(kr),tt),Jt)}function dC(){let tt=Ri(),Jt=Do();ws(118);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Qa(67108864,Am);return Hr(Zt(C.createWithStatement(ui,Is),tt),Jt)}function uE(){let tt=Ri(),Jt=Do();ws(84);let kr=gc($A);ws(59);let Xr=jd(3,Am);return Hr(Zt(C.createCaseClause(kr,Xr),tt),Jt)}function eh(){let tt=Ri();ws(90),ws(59);let Jt=jd(3,Am);return Zt(C.createDefaultClause(Jt),tt)}function Wf(){return Wt()===84?uE():eh()}function Mo(){let tt=Ri();ws(19);let Jt=jd(2,Wf);return ws(20),Zt(C.createCaseBlock(Jt),tt)}function gp(){let tt=Ri(),Jt=Do();ws(109),ws(21);let kr=gc($A);ws(22);let Xr=Mo();return Hr(Zt(C.createSwitchStatement(kr,Xr),tt),Jt)}function lF(){let tt=Ri(),Jt=Do();ws(111);let kr=t.hasPrecedingLineBreak()?void 0:gc($A);return kr===void 0&&(jt++,kr=Zt(F(""),Ri())),Mp()||Ma(kr),Hr(Zt(C.createThrowStatement(kr),tt),Jt)}function uF(){let tt=Ri(),Jt=Do();ws(113);let kr=Xp(!1),Xr=Wt()===85?gE():void 0,ui;return(!Xr||Wt()===98)&&(ws(98,ts.catch_or_finally_expected),ui=Xp(!1)),Hr(Zt(C.createTryStatement(kr,Xr,ui),tt),Jt)}function gE(){let tt=Ri();ws(85);let Jt;rc(21)?(Jt=Vd(),ws(22)):Jt=void 0;let kr=Xp(!1);return Zt(C.createCatchClause(Jt,kr),tt)}function FT(){let tt=Ri(),Jt=Do();return ws(89),MA(),Hr(Zt(C.createDebuggerStatement(),tt),Jt)}function Np(){let tt=Ri(),Jt=Do(),kr,Xr=Wt()===21,ui=gc($A);return $C(ui)&&rc(59)?kr=C.createLabeledStatement(ui,Am()):(Mp()||Ma(ui),kr=Me(ui),Xr&&(Jt=!1)),Hr(Zt(kr,tt),Jt)}function Dm(){return Vs(),H1(Wt())&&!t.hasPrecedingLineBreak()}function Dp(){return Vs(),Wt()===86&&!t.hasPrecedingLineBreak()}function t2(){return Vs(),Wt()===100&&!t.hasPrecedingLineBreak()}function Ro(){return Vs(),(H1(Wt())||Wt()===9||Wt()===10||Wt()===11)&&!t.hasPrecedingLineBreak()}function AE(){for(;;)switch(Wt()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return Ou();case 135:return hp();case 120:case 156:return R_();case 144:case 145:return qf();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:let tt=Wt();if(Vs(),t.hasPrecedingLineBreak())return!1;if(tt===138&&Wt()===156)return!0;continue;case 162:return Vs(),Wt()===19||Wt()===80||Wt()===95;case 102:return Vs(),Wt()===11||Wt()===42||Wt()===19||H1(Wt());case 95:let Jt=Vs();if(Jt===156&&(Jt=oo(Vs)),Jt===64||Jt===42||Jt===19||Jt===90||Jt===130||Jt===60)return!0;continue;case 126:Vs();continue;default:return!1}}function AB(){return oo(AE)}function Xc(){switch(Wt()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:return!0;case 102:return AB()||oo(ki);case 87:case 95:return AB();case 134:case 138:case 120:case 144:case 145:case 156:case 162:return!0;case 129:case 125:case 123:case 124:case 126:case 148:return AB()||!oo(Dm);default:return $I()}}function iu(){return Vs(),cc()||Wt()===19||Wt()===23}function dE(){return oo(iu)}function yL(){return KR(!0)}function KR(tt){return Vs(),tt&&Wt()===165?!1:(cc()||Wt()===19)&&!t.hasPrecedingLineBreak()}function Ou(){return oo(KR)}function ny(tt){return Vs()===160?KR(tt):!1}function hp(){return oo(ny)}function Am(){switch(Wt()){case 27:return lE();case 19:return Xp(!1);case 115:return Id(Ri(),Do(),void 0);case 121:if(dE())return Id(Ri(),Do(),void 0);break;case 135:if(hp())return Id(Ri(),Do(),void 0);break;case 160:if(Ou())return Id(Ri(),Do(),void 0);break;case 100:return fB(Ri(),Do(),void 0);case 86:return Vi(Ri(),Do(),void 0);case 101:return Ip();case 92:return Xh();case 117:return E0();case 99:return aA();case 88:return fu(251);case 83:return fu(252);case 107:return Jp();case 118:return dC();case 109:return gp();case 111:return lF();case 113:case 85:case 98:return uF();case 89:return FT();case 60:return i_();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(AB())return i_();break}return Np()}function K2(tt){return tt.kind===138}function i_(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(oD(kr,K2)){let Xr=dB(tt);if(Xr)return Xr;for(let ui of kr)ui.flags|=33554432;return Qa(33554432,()=>ZT(tt,Jt,kr))}else return ZT(tt,Jt,kr)}function dB(tt){return Qa(33554432,()=>{let Jt=Hp(Fn,tt);if(Jt)return uC(Jt)})}function ZT(tt,Jt,kr){switch(Wt()){case 115:case 121:case 87:case 160:case 135:return Id(tt,Jt,kr);case 100:return fB(tt,Jt,kr);case 86:return Vi(tt,Jt,kr);case 120:return Po(tt,Jt,kr);case 156:return ec(tt,Jt,kr);case 94:return dc(tt,Jt,kr);case 162:case 144:case 145:return $f(tt,Jt,kr);case 102:return qO(tt,Jt,kr);case 95:switch(Vs(),Wt()){case 90:case 64:return sY(tt,Jt,kr);case 130:return Yu(tt,Jt,kr);default:return iy(tt,Jt,kr)}default:if(kr){let Xr=yn(282,!0,ts.Declaration_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}return}}function Cx(){return Vs()===11}function pB(){return Vs(),Wt()===161||Wt()===64}function qf(){return Vs(),!t.hasPrecedingLineBreak()&&(Xs()||Wt()===11)}function Jh(tt,Jt){if(Wt()!==19){if(tt&4){Pf();return}if(yg()){MA();return}}return cE(tt,Jt)}function $S(){let tt=Ri();if(Wt()===28)return Zt(C.createOmittedExpression(),tt);let Jt=sd(26),kr=Of(),Xr=Qm();return Zt(C.createBindingElement(Jt,void 0,kr,Xr),tt)}function Sb(){let tt=Ri(),Jt=sd(26),kr=cc(),Xr=df(),ui;kr&&Wt()!==59?(ui=Xr,Xr=void 0):(ws(59),ui=Of());let Is=Qm();return Zt(C.createBindingElement(Jt,Xr,ui,Is),tt)}function mp(){let tt=Ri();ws(19);let Jt=gc(()=>Kf(9,Sb));return ws(20),Zt(C.createObjectBindingPattern(Jt),tt)}function r2(){let tt=Ri();ws(23);let Jt=gc(()=>Kf(10,$S));return ws(24),Zt(C.createArrayBindingPattern(Jt),tt)}function i1(){return Wt()===19||Wt()===23||Wt()===81||cc()}function Of(tt){return Wt()===23?r2():Wt()===19?mp():Fs(tt)}function pE(){return Vd(!0)}function Vd(tt){let Jt=Ri(),kr=Do(),Xr=Of(ts.Private_identifiers_are_not_allowed_in_variable_declarations),ui;tt&&Xr.kind===80&&Wt()===54&&!t.hasPrecedingLineBreak()&&(ui=ZA());let Is=Ty(),Hs=qE(Wt())?void 0:Qm(),Rs=Tr(Xr,ui,Is,Hs);return Hr(Zt(Rs,Jt),kr)}function j(tt){let Jt=Ri(),kr=0;switch(Wt()){case 115:break;case 121:kr|=1;break;case 87:kr|=2;break;case 160:kr|=4;break;case 135:Zo.assert(hp()),kr|=6,Vs();break;default:Zo.fail()}Vs();let Xr;if(Wt()===165&&oo(Z))Xr=_I();else{let ui=Wc();Or(tt),Xr=Kf(8,tt?Vd:pE),Or(ui)}return Zt(Nr(Xr,kr),Jt)}function Z(){return ef()&&Vs()===22}function Id(tt,Jt,kr){let Xr=j(!1);MA();let ui=ct(kr,Xr);return Hr(Zt(ui,tt),Jt)}function fB(tt,Jt,kr){let Xr=Xu(),ui=fO(kr);ws(100);let Is=sd(42),Hs=ui&2048?e0():Fs(),Rs=Is?1:0,ja=ui&1024?2:0,ho=gC();ui&32&&yo(!0);let sl=Mc(Rs|ja),Nd=ph(59,!1),ed=Jh(Rs|ja,ts.or_expected);yo(Xr);let Og=C.createFunctionDeclaration(kr,Is,Hs,ho,sl,Nd,ed);return Hr(Zt(Og,tt),Jt)}function ev(){if(Wt()===137)return ws(137);if(Wt()===11&&oo(Vs)===21)return Ki(()=>{let tt=ra();return tt.text==="constructor"?tt:void 0})}function Ny(tt,Jt,kr){return Ki(()=>{if(ev()){let Xr=gC(),ui=Mc(0),Is=ph(59,!1),Hs=Jh(0,ts.or_expected),Rs=C.createConstructorDeclaration(kr,ui,Hs);return Rs.typeParameters=Xr,Rs.type=Is,Hr(Zt(Rs,tt),Jt)}})}function vb(tt,Jt,kr,Xr,ui,Is,Hs,Rs){let ja=Xr?1:0,ho=oD(kr,Gbt)?2:0,sl=gC(),Nd=Mc(ja|ho),ed=ph(59,!1),Og=Jh(ja|ho,Rs),Nh=C.createMethodDeclaration(kr,Xr,ui,Is,sl,Nd,ed,Og);return Nh.exclamationToken=Hs,Hr(Zt(Nh,tt),Jt)}function xD(tt,Jt,kr,Xr,ui){let Is=!ui&&!t.hasPrecedingLineBreak()?sd(54):void 0,Hs=Ty(),Rs=bo(90112,Qm);Tf(Xr,Hs,Rs);let ja=C.createPropertyDeclaration(kr,Xr,ui||Is,Hs,Rs);return Hr(Zt(ja,tt),Jt)}function IB(tt,Jt,kr){let Xr=sd(42),ui=df(),Is=sd(58);return Xr||Wt()===21||Wt()===30?vb(tt,Jt,kr,Xr,ui,Is,void 0,ts.or_expected):xD(tt,Jt,kr,ui,Is)}function Bb(tt,Jt,kr,Xr,ui){let Is=df(),Hs=gC(),Rs=Mc(0),ja=ph(59,!1),ho=Jh(ui),sl=Xr===177?C.createGetAccessorDeclaration(kr,Is,Rs,ja,ho):C.createSetAccessorDeclaration(kr,Is,Rs,ho);return sl.typeParameters=Hs,jbt(sl)&&(sl.type=ja),Hr(Zt(sl,tt),Jt)}function bL(){let tt;if(Wt()===60)return!0;for(;vee(Wt());){if(tt=Wt(),Sza(tt))return!0;Vs()}if(Wt()===42||(Rp()&&(tt=Wt(),Vs()),Wt()===23))return!0;if(tt!==void 0){if(!Cce(tt)||tt===153||tt===139)return!0;switch(Wt()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return yg()}}return!1}function gF(tt,Jt,kr){il(126);let Xr=x(),ui=Hr(Zt(C.createClassStaticBlockDeclaration(Xr),tt),Jt);return ui.modifiers=kr,ui}function x(){let tt=Yl(),Jt=Xu();Qi(!1),yo(!0);let kr=Xp(!1);return Qi(tt),yo(Jt),kr}function L(){if(Xu()&&Wt()===135){let tt=Ri(),Jt=Wa(ts.Expression_expected);Vs();let kr=Ih(tt,Jt,!0);return r1(tt,kr)}return $E()}function te(){let tt=Ri();if(!rc(60))return;let Jt=vu(L);return Zt(C.createDecorator(Jt),tt)}function Re(tt,Jt,kr){let Xr=Ri(),ui=Wt();if(Wt()===87&&Jt){if(!Ki(Ml))return}else if(kr&&Wt()===126&&oo(z2)||tt&&Wt()===126||!aa())return;return Zt(X(ui),Xr)}function Le(tt,Jt,kr){let Xr=Ri(),ui,Is,Hs,Rs=!1,ja=!1,ho=!1;if(tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is);for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs),ja=!0;if(ja&&tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is),ho=!0;if(ho)for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs);return ui&&Er(ui,Xr)}function ft(){let tt;if(Wt()===134){let Jt=Ri();Vs();let kr=Zt(X(134),Jt);tt=Er([kr],Jt)}return tt}function dr(){let tt=Ri(),Jt=Do();if(Wt()===27)return Vs(),Hr(Zt(C.createSemicolonClassElement(),tt),Jt);let kr=Le(!0,!0,!0);if(Wt()===126&&oo(z2))return gF(tt,Jt,kr);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);if(Wt()===137||Wt()===11){let Xr=Ny(tt,Jt,kr);if(Xr)return Xr}if(eA())return XS(tt,Jt,kr);if(H1(Wt())||Wt()===11||Wt()===9||Wt()===10||Wt()===42||Wt()===23)if(oD(kr,K2)){for(let Xr of kr)Xr.flags|=33554432;return Qa(33554432,()=>IB(tt,Jt,kr))}else return IB(tt,Jt,kr);if(kr){let Xr=yn(80,!0,ts.Declaration_expected);return xD(tt,Jt,kr,Xr,void 0)}return Zo.fail("Should not have attempted to parse class member declaration.")}function Ur(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(Wt()===86)return Ta(tt,Jt,kr,231);let Xr=yn(282,!0,ts.Expression_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}function mi(){return Ta(Ri(),Do(),void 0,231)}function Vi(tt,Jt,kr){return Ta(tt,Jt,kr,263)}function Ta(tt,Jt,kr,Xr){let ui=Xu();ws(86);let Is=Sl(),Hs=gC();oD(kr,T$a)&&yo(!0);let Rs=Wg(),ja;ws(19)?(ja=Ci(),ws(20)):ja=_I(),yo(ui);let ho=Xr===263?C.createClassDeclaration(kr,Is,Hs,Rs,ja):C.createClassExpression(kr,Is,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function Sl(){return cc()&&!Ho()?oa(cc()):void 0}function Ho(){return Wt()===119&&oo(ip)}function Wg(){if(rn())return jd(22,cA)}function cA(){let tt=Ri(),Jt=Wt();Zo.assert(Jt===96||Jt===119),Vs();let kr=Kf(7,th);return Zt(C.createHeritageClause(Jt,kr),tt)}function th(){let tt=Ri(),Jt=$E();if(Jt.kind===233)return Jt;let kr=xn();return Zt(C.createExpressionWithTypeArguments(Jt,kr),tt)}function xn(){return Wt()===30?iE(20,tf,30,32):void 0}function rn(){return Wt()===96||Wt()===119}function Ci(){return jd(5,dr)}function Po(tt,Jt,kr){ws(120);let Xr=Wa(),ui=gC(),Is=Wg(),Hs=fd(),Rs=C.createInterfaceDeclaration(kr,Xr,ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function ec(tt,Jt,kr){ws(156),t.hasPrecedingLineBreak()&&Da(ts.Line_break_not_permitted_here);let Xr=Wa(),ui=gC();ws(64);let Is=Wt()===141&&Ki(JS)||tf();MA();let Hs=C.createTypeAliasDeclaration(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}function Ra(){let tt=Ri(),Jt=Do(),kr=df(),Xr=gc(Qm);return Hr(Zt(C.createEnumMember(kr,Xr),tt),Jt)}function dc(tt,Jt,kr){ws(94);let Xr=Wa(),ui;ws(19)?(ui=Xa(()=>Kf(6,Ra)),ws(20)):ui=_I();let Is=C.createEnumDeclaration(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function Iu(){let tt=Ri(),Jt;return ws(19)?(Jt=jd(1,Am),ws(20)):Jt=_I(),Zt(C.createModuleBlock(Jt),tt)}function Cl(tt,Jt,kr,Xr){let ui=Xr&32,Is=Xr&8?Ca():Wa(),Hs=rc(25)?Cl(Ri(),!1,void 0,8|ui):Iu(),Rs=C.createModuleDeclaration(kr,Is,Hs,Xr);return Hr(Zt(Rs,tt),Jt)}function wl(tt,Jt,kr){let Xr=0,ui;Wt()===162?(ui=Wa(),Xr|=2048):(ui=ra(),ui.text=ls(ui.text));let Is;Wt()===19?Is=Iu():MA();let Hs=C.createModuleDeclaration(kr,ui,Is,Xr);return Hr(Zt(Hs,tt),Jt)}function $f(tt,Jt,kr){let Xr=0;if(Wt()===162)return wl(tt,Jt,kr);if(rc(145))Xr|=32;else if(ws(144),Wt()===11)return wl(tt,Jt,kr);return Cl(tt,Jt,kr,Xr)}function j2(){return Wt()===149&&oo(_x)}function _x(){return Vs()===21}function z2(){return Vs()===19}function tv(){return Vs()===44}function Yu(tt,Jt,kr){ws(130),ws(145);let Xr=Wa();MA();let ui=C.createNamespaceExportDeclaration(Xr);return ui.modifiers=kr,Hr(Zt(ui,tt),Jt)}function qO(tt,Jt,kr){ws(102);let Xr=t.getTokenFullStart(),ui;Xs()&&(ui=Wa());let Is=!1;if(ui?.escapedText==="type"&&(Wt()!==161||Xs()&&oo(pB))&&(Xs()||iY())&&(Is=!0,ui=Xs()?Wa():void 0),ui&&!LT())return GD(tt,Jt,kr,ui,Is);let Hs=hB(ui,Xr,Is),Rs=FD(),ja=mw();MA();let ho=C.createImportDeclaration(kr,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function hB(tt,Jt,kr,Xr=!1){let ui;return(tt||Wt()===42||Wt()===19)&&(ui=dF(tt,Jt,kr,Xr),ws(161)),ui}function mw(){let tt=Wt();if((tt===118||tt===132)&&!t.hasPrecedingLineBreak())return $O(tt)}function AF(){let tt=Ri(),Jt=H1(Wt())?Ca():Bl(11);ws(59);let kr=zf(!0);return Zt(C.createImportAttribute(Jt,kr),tt)}function $O(tt,Jt){let kr=Ri();Jt||ws(tt);let Xr=t.getTokenStart();if(ws(19)){let ui=t.hasPrecedingLineBreak(),Is=Kf(24,AF,!0);if(!ws(20)){let Hs=Vme(lr);Hs&&Hs.code===ts._0_expected.code&&Dbt(Hs,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Zt(C.createImportAttributes(Is,ui,tt),kr)}else{let ui=Er([],Ri(),void 0,!1);return Zt(C.createImportAttributes(ui,!1,tt),kr)}}function iY(){return Wt()===42||Wt()===19}function LT(){return Wt()===28||Wt()===161}function GD(tt,Jt,kr,Xr,ui){ws(64);let Is=EL();MA();let Hs=C.createImportEqualsDeclaration(kr,ui,Xr,Is);return Hr(Zt(Hs,tt),Jt)}function dF(tt,Jt,kr,Xr){let ui;return(!tt||rc(28))&&(Xr&&t.setSkipJsDocLeadingAsterisks(!0),ui=Wt()===42?fE():bd(275),Xr&&t.setSkipJsDocLeadingAsterisks(!1)),Zt(C.createImportClause(kr,tt,ui),Jt)}function EL(){return j2()?ff():se(!1)}function ff(){let tt=Ri();ws(149),ws(21);let Jt=FD();return ws(22),Zt(C.createExternalModuleReference(Jt),tt)}function FD(){if(Wt()===11){let tt=ra();return tt.text=ls(tt.text),tt}else return $A()}function fE(){let tt=Ri();ws(42),ws(130);let Jt=Wa();return Zt(C.createNamespaceImport(Jt),tt)}function n2(){return H1(Wt())||Wt()===11}function mB(tt){return Wt()===11?ra():tt()}function bd(tt){let Jt=Ri(),kr=tt===275?C.createNamedImports(iE(23,Uh,19,20)):C.createNamedExports(iE(23,s1,19,20));return Zt(kr,Jt)}function s1(){let tt=Do();return Hr(wb(281),tt)}function Uh(){return wb(276)}function wb(tt){let Jt=Ri(),kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Is=!1,Hs,Rs=!0,ja=mB(Ca);if(ja.kind===80&&ja.escapedText==="type")if(Wt()===130){let Nd=Ca();if(Wt()===130){let ed=Ca();n2()?(Is=!0,Hs=Nd,ja=mB(sl),Rs=!1):(Hs=ja,ja=ed,Rs=!1)}else n2()?(Hs=ja,Rs=!1,ja=mB(sl)):(Is=!0,ja=Nd)}else n2()&&(Is=!0,ja=mB(sl));Rs&&Wt()===130&&(Hs=ja,ws(130),ja=mB(sl)),tt===276&&(ja.kind!==80?(_g(dj(xt,ja.pos),ja.end,ts.Identifier_expected),ja=Ece(yn(80,!1),ja.pos,ja.pos)):kr&&_g(Xr,ui,ts.Identifier_expected));let ho=tt===276?C.createImportSpecifier(Is,Hs,ja):C.createExportSpecifier(Is,Hs,ja);return Zt(ho,Jt);function sl(){return kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Ca()}}function Uu(tt){return Zt(C.createNamespaceExport(mB(Ca)),tt)}function iy(tt,Jt,kr){let Xr=Xu();yo(!0);let ui,Is,Hs,Rs=rc(156),ja=Ri();rc(42)?(rc(130)&&(ui=Uu(ja)),ws(161),Is=FD()):(ui=bd(279),(Wt()===161||Wt()===11&&!t.hasPrecedingLineBreak())&&(ws(161),Is=FD()));let ho=Wt();Is&&(ho===118||ho===132)&&!t.hasPrecedingLineBreak()&&(Hs=$O(ho)),MA(),yo(Xr);let sl=C.createExportDeclaration(kr,Rs,ui,Is,Hs);return Hr(Zt(sl,tt),Jt)}function sY(tt,Jt,kr){let Xr=Xu();yo(!0);let ui;rc(64)?ui=!0:ws(90);let Is=zf(!0);MA(),yo(Xr);let Hs=C.createExportAssignment(kr,ui,Is);return Hr(Zt(Hs,tt),Jt)}let oY;(tt=>{tt[tt.SourceElements=0]="SourceElements",tt[tt.BlockStatements=1]="BlockStatements",tt[tt.SwitchClauses=2]="SwitchClauses",tt[tt.SwitchClauseStatements=3]="SwitchClauseStatements",tt[tt.TypeMembers=4]="TypeMembers",tt[tt.ClassMembers=5]="ClassMembers",tt[tt.EnumMembers=6]="EnumMembers",tt[tt.HeritageClauseElement=7]="HeritageClauseElement",tt[tt.VariableDeclarations=8]="VariableDeclarations",tt[tt.ObjectBindingElements=9]="ObjectBindingElements",tt[tt.ArrayBindingElements=10]="ArrayBindingElements",tt[tt.ArgumentExpressions=11]="ArgumentExpressions",tt[tt.ObjectLiteralMembers=12]="ObjectLiteralMembers",tt[tt.JsxAttributes=13]="JsxAttributes",tt[tt.JsxChildren=14]="JsxChildren",tt[tt.ArrayLiteralMembers=15]="ArrayLiteralMembers",tt[tt.Parameters=16]="Parameters",tt[tt.JSDocParameters=17]="JSDocParameters",tt[tt.RestProperties=18]="RestProperties",tt[tt.TypeParameters=19]="TypeParameters",tt[tt.TypeArguments=20]="TypeArguments",tt[tt.TupleElementTypes=21]="TupleElementTypes",tt[tt.HeritageClauses=22]="HeritageClauses",tt[tt.ImportOrExportSpecifiers=23]="ImportOrExportSpecifiers",tt[tt.ImportAttributes=24]="ImportAttributes",tt[tt.JSDocComment=25]="JSDocComment",tt[tt.Count=26]="Count"})(oY||(oY={}));let jR;(tt=>{tt[tt.False=0]="False",tt[tt.True=1]="True",tt[tt.Unknown=2]="Unknown"})(jR||(jR={}));let aY;(tt=>{function Jt(ho,sl,Nd){Ya("file.js",ho,99,void 0,1,0),t.setText(ho,sl,Nd),qr=t.scan();let ed=kr(),Og=zr("file.js",99,1,!1,[],X(1),0,NNe),Nh=Nme(lr,Og);return cr&&(Og.jsDocDiagnostics=Nme(cr,Og)),Gc(),ed?{jsDocTypeExpression:ed,diagnostics:Nh}:void 0}tt.parseJSDocTypeExpressionForTests=Jt;function kr(ho){let sl=Ri(),Nd=(ho?rc:ws)(19),ed=Qa(16777216,YS);(!ho||Nd)&&cm(20);let Og=C.createJSDocTypeExpression(ed);return Ft(Og),Zt(Og,sl)}tt.parseJSDocTypeExpression=kr;function Xr(){let ho=Ri(),sl=rc(19),Nd=Ri(),ed=se(!1);for(;Wt()===81;)$i(),Ju(),ed=Zt(C.createJSDocMemberName(ed,Wa()),Nd);sl&&cm(20);let Og=C.createJSDocNameReference(ed);return Ft(Og),Zt(Og,ho)}tt.parseJSDocNameReference=Xr;function ui(ho,sl,Nd){Ya("",ho,99,void 0,1,0);let ed=Qa(16777216,()=>ja(sl,Nd)),Og=Nme(lr,{languageVariant:0,text:ho});return Gc(),ed?{jsDoc:ed,diagnostics:Og}:void 0}tt.parseIsolatedJSDocComment=ui;function Is(ho,sl,Nd){let ed=qr,Og=lr.length,Nh=Vr,o1=Qa(16777216,()=>ja(sl,Nd));return $Nr(o1,ho),Hi&524288&&(cr||(cr=[]),_V(cr,lr,Og)),qr=ed,lr.length=Og,Vr=Nh,o1}tt.parseJSDocComment=Is;let Hs;(ho=>{ho[ho.BeginningOfLine=0]="BeginningOfLine",ho[ho.SawAsterisk=1]="SawAsterisk",ho[ho.SavingComments=2]="SavingComments",ho[ho.SavingBackticks=3]="SavingBackticks"})(Hs||(Hs={}));let Rs;(ho=>{ho[ho.Property=1]="Property",ho[ho.Parameter=2]="Parameter",ho[ho.CallbackParameter=4]="CallbackParameter"})(Rs||(Rs={}));function ja(ho=0,sl){let Nd=xt,ed=sl===void 0?Nd.length:ho+sl;if(sl=ed-ho,Zo.assert(ho>=0),Zo.assert(ho<=ed),Zo.assert(ed<=Nd.length),!Xec(Nd,ho))return;let Og,Nh,o1,Tb,q2,IE=[],zR=[],e3=Fn;Fn|=1<<25;let IA=t.scanRange(ho+3,sl-5,EI);return Fn=e3,IA;function EI(){let Es=1,Aa,ha=ho-(Nd.lastIndexOf(` +`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:if(f=55296&&Xa<=56319&&f+6=56320&&Sg<=57343)return f=Wc,ac+String.fromCharCode(Sg)}return ac;case 120:for(;f1114111&&(li&&be(ts.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,Ps,f-Ps),Yl=!0),f>=I?(li&&be(ts.Unexpected_end_of_text),Yl=!0):ue(f)===125?f++:(li&&be(ts.Unterminated_Unicode_escape_sequence),Yl=!0),Yl?(B|=2048,A.substring(Ei,f)):(B|=8,G2i(ac))}function Nr(){if(f+5=0&&See(Ps,e)){li+=Tr(!0),Ei=f;continue}if(Ps=Nr(),!(Ps>=0&&See(Ps,e)))break;B|=1024,li+=A.substring(Ei,f),li+=G2i(Ps),f+=6,Ei=f}else break}return li+=A.substring(Ei,f),li}function xt(){let li=N.length;if(li>=2&&li<=12){let Ei=N.charCodeAt(0);if(Ei>=97&&Ei<=122){let Ps=v7a.get(N);if(Ps!==void 0)return E=Ps}}return E=80}function Zr(li){let Ei="",Ps=!1,Xa=!1;for(;;){let ac=ue(f);if(ac===95){B|=512,Ps?(Ps=!1,Xa=!0):be(Xa?ts.Multiple_consecutive_numeric_separators_are_not_permitted:ts.Numeric_separators_are_not_allowed_here,f,1),f++;continue}if(Ps=!0,!mce(ac)||ac-48>=li)break;Ei+=A[f],f++,Xa=!1}return ue(f-1)===95&&be(ts.Numeric_separators_are_not_allowed_here,f-1,1),Ei}function qt(){return ue(f)===110?(N+="n",B&384&&(N=a$a(N)+"n"),f++,10):(N=""+(B&128?parseInt(N.slice(2),2):B&256?parseInt(N.slice(2),8):+N),9)}function Xt(){for(C=f,B=0;;){if(b=f,f>=I)return E=1;let li=ce(f);if(f===0&&li===35&&mvi(A,f)){if(f=Cvi(A,f),t)continue;return E=6}switch(li){case 10:case 13:if(B|=1,t){f++;continue}else return li===13&&f+1=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(be(ts.Invalid_character),f++,E=0);case 35:if(f!==0&&A[f+1]==="!")return be(ts.can_only_be_used_at_the_start_of_a_file,f,2),f++,E=0;let Xa=ce(f+1);if(Xa===92){f++;let Wc=er();if(Wc>=0&&i4(Wc,e))return N="#"+Tr(!0)+vt(),E=81;let Sg=Nr();if(Sg>=0&&i4(Sg,e))return f+=6,B|=1024,N="#"+String.fromCharCode(Sg)+vt(),E=81;f--}return i4(Xa,e)?(f++,Ar(Xa,e)):(N="#",be(ts.Invalid_character,f++,xR(li))),E=81;case 65533:return be(ts.File_appears_to_be_binary,0,0),f=I,E=8;default:let ac=Ar(li,e);if(ac)return E=ac;if(gJe(li)){f+=xR(li);continue}else if(CV(li)){B|=1,f+=xR(li);continue}let Yl=xR(li);return be(ts.Invalid_character,f,Yl),f+=Yl,E=0}}}function lr(){switch(ae){case 0:return!0;case 1:return!1}return X!==3&&X!==4?!0:ae===3?!1:x7a.test(A.slice(C,f))}function cr(){Zo.assert(E===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),f=b=C,B=0;let li=ce(f),Ei=Ar(li,99);return Ei?E=Ei:(f+=xR(li),E)}function Ar(li,Ei){let Ps=li;if(i4(Ps,Ei)){for(f+=xR(Ps);f=I)return E=1;let Ei=ue(f);if(Ei===60)return ue(f+1)===47?(f+=2,E=31):(f++,E=30);if(Ei===123)return f++,E=19;let Ps=0;for(;f0)break;BNe(Ei)||(Ps=f)}f++}return N=A.substring(C,f),Ps===-1?13:12}function cl(){if(H1(E)){for(;f=I)return E=1;for(let Ei=ue(f);f=0&&gJe(ue(f-1))&&!(f+1=I)return E=1;let li=ce(f);switch(f+=xR(li),li){case 9:case 11:case 12:case 32:for(;f=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(f++,E=0)}if(i4(li,e)){let Ei=li;for(;f=0),f=li,C=li,b=li,E=0,N=void 0,B=0}function vu(li){Q+=li?1:-1}}function Fme(e,t){return e.codePointAt(t)}function xR(e){return e>=65536?2:e===-1?0:1}function X7a(e){if(Zo.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);let t=Math.floor((e-65536)/1024)+55296,r=(e-65536)%1024+56320;return String.fromCharCode(t,r)}var J7a=String.fromCodePoint?e=>String.fromCodePoint(e):X7a;function G2i(e){return J7a(e)}var F2i=new Map(Object.entries({General_Category:"General_Category",gc:"General_Category",Script:"Script",sc:"Script",Script_Extensions:"Script_Extensions",scx:"Script_Extensions"})),Z2i=new Set(["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","EComp","Emoji_Modifier","EMod","Emoji_Modifier_Base","EBase","Emoji_Presentation","EPres","Extended_Pictographic","ExtPict","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"]),L2i=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"]),SNe={General_Category:new Set(["C","Other","Cc","Control","cntrl","Cf","Format","Cn","Unassigned","Co","Private_Use","Cs","Surrogate","L","Letter","LC","Cased_Letter","Ll","Lowercase_Letter","Lm","Modifier_Letter","Lo","Other_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter","M","Mark","Combining_Mark","Mc","Spacing_Mark","Me","Enclosing_Mark","Mn","Nonspacing_Mark","N","Number","Nd","Decimal_Number","digit","Nl","Letter_Number","No","Other_Number","P","Punctuation","punct","Pc","Connector_Punctuation","Pd","Dash_Punctuation","Pe","Close_Punctuation","Pf","Final_Punctuation","Pi","Initial_Punctuation","Po","Other_Punctuation","Ps","Open_Punctuation","S","Symbol","Sc","Currency_Symbol","Sk","Modifier_Symbol","Sm","Math_Symbol","So","Other_Symbol","Z","Separator","Zl","Line_Separator","Zp","Paragraph_Separator","Zs","Space_Separator"]),Script:new Set(["Adlm","Adlam","Aghb","Caucasian_Albanian","Ahom","Arab","Arabic","Armi","Imperial_Aramaic","Armn","Armenian","Avst","Avestan","Bali","Balinese","Bamu","Bamum","Bass","Bassa_Vah","Batk","Batak","Beng","Bengali","Bhks","Bhaiksuki","Bopo","Bopomofo","Brah","Brahmi","Brai","Braille","Bugi","Buginese","Buhd","Buhid","Cakm","Chakma","Cans","Canadian_Aboriginal","Cari","Carian","Cham","Cher","Cherokee","Chrs","Chorasmian","Copt","Coptic","Qaac","Cpmn","Cypro_Minoan","Cprt","Cypriot","Cyrl","Cyrillic","Deva","Devanagari","Diak","Dives_Akuru","Dogr","Dogra","Dsrt","Deseret","Dupl","Duployan","Egyp","Egyptian_Hieroglyphs","Elba","Elbasan","Elym","Elymaic","Ethi","Ethiopic","Geor","Georgian","Glag","Glagolitic","Gong","Gunjala_Gondi","Gonm","Masaram_Gondi","Goth","Gothic","Gran","Grantha","Grek","Greek","Gujr","Gujarati","Guru","Gurmukhi","Hang","Hangul","Hani","Han","Hano","Hanunoo","Hatr","Hatran","Hebr","Hebrew","Hira","Hiragana","Hluw","Anatolian_Hieroglyphs","Hmng","Pahawh_Hmong","Hmnp","Nyiakeng_Puachue_Hmong","Hrkt","Katakana_Or_Hiragana","Hung","Old_Hungarian","Ital","Old_Italic","Java","Javanese","Kali","Kayah_Li","Kana","Katakana","Kawi","Khar","Kharoshthi","Khmr","Khmer","Khoj","Khojki","Kits","Khitan_Small_Script","Knda","Kannada","Kthi","Kaithi","Lana","Tai_Tham","Laoo","Lao","Latn","Latin","Lepc","Lepcha","Limb","Limbu","Lina","Linear_A","Linb","Linear_B","Lisu","Lyci","Lycian","Lydi","Lydian","Mahj","Mahajani","Maka","Makasar","Mand","Mandaic","Mani","Manichaean","Marc","Marchen","Medf","Medefaidrin","Mend","Mende_Kikakui","Merc","Meroitic_Cursive","Mero","Meroitic_Hieroglyphs","Mlym","Malayalam","Modi","Mong","Mongolian","Mroo","Mro","Mtei","Meetei_Mayek","Mult","Multani","Mymr","Myanmar","Nagm","Nag_Mundari","Nand","Nandinagari","Narb","Old_North_Arabian","Nbat","Nabataean","Newa","Nkoo","Nko","Nshu","Nushu","Ogam","Ogham","Olck","Ol_Chiki","Orkh","Old_Turkic","Orya","Oriya","Osge","Osage","Osma","Osmanya","Ougr","Old_Uyghur","Palm","Palmyrene","Pauc","Pau_Cin_Hau","Perm","Old_Permic","Phag","Phags_Pa","Phli","Inscriptional_Pahlavi","Phlp","Psalter_Pahlavi","Phnx","Phoenician","Plrd","Miao","Prti","Inscriptional_Parthian","Rjng","Rejang","Rohg","Hanifi_Rohingya","Runr","Runic","Samr","Samaritan","Sarb","Old_South_Arabian","Saur","Saurashtra","Sgnw","SignWriting","Shaw","Shavian","Shrd","Sharada","Sidd","Siddham","Sind","Khudawadi","Sinh","Sinhala","Sogd","Sogdian","Sogo","Old_Sogdian","Sora","Sora_Sompeng","Soyo","Soyombo","Sund","Sundanese","Sylo","Syloti_Nagri","Syrc","Syriac","Tagb","Tagbanwa","Takr","Takri","Tale","Tai_Le","Talu","New_Tai_Lue","Taml","Tamil","Tang","Tangut","Tavt","Tai_Viet","Telu","Telugu","Tfng","Tifinagh","Tglg","Tagalog","Thaa","Thaana","Thai","Tibt","Tibetan","Tirh","Tirhuta","Tnsa","Tangsa","Toto","Ugar","Ugaritic","Vaii","Vai","Vith","Vithkuqi","Wara","Warang_Citi","Wcho","Wancho","Xpeo","Old_Persian","Xsux","Cuneiform","Yezi","Yezidi","Yiii","Yi","Zanb","Zanabazar_Square","Zinh","Inherited","Qaai","Zyyy","Common","Zzzz","Unknown"]),Script_Extensions:void 0};SNe.Script_Extensions=SNe.Script;function gj(e){return e.start+e.length}function U7a(e){return e.length===0}function ONr(e,t){if(e<0)throw new Error("start < 0");if(t<0)throw new Error("length < 0");return{start:e,length:t}}function K7a(e,t){return ONr(e,t-e)}function rJe(e){return ONr(e.span.start,e.newLength)}function j7a(e){return U7a(e.span)&&e.newLength===0}function bvi(e,t){if(t<0)throw new Error("newLength < 0");return{span:e,newLength:t}}var vTu=bvi(ONr(0,0),0);function Evi(e,t){for(;e;){let r=t(e);if(r==="quit")return;if(r)return e;e=e.parent}}function Qbt(e){return(e.flags&16)===0}function z7a(e,t){if(e===void 0||Qbt(e))return e;for(e=e.original;e;){if(Qbt(e))return!t||t(e)?e:void 0;e=e.original}}function mNe(e){return e.length>=2&&e.charCodeAt(0)===95&&e.charCodeAt(1)===95?"_"+e:e}function mJe(e){let t=e;return t.length>=3&&t.charCodeAt(0)===95&&t.charCodeAt(1)===95&&t.charCodeAt(2)===95?t.substr(1):t}function yV(e){return mJe(e.escapedText)}function Svi(e){let t=pvi(e.escapedText);return t?e7a(t,Cce):void 0}function uNr(e){return e.valueDeclaration&&bza(e.valueDeclaration)?yV(e.valueDeclaration.name):mJe(e.escapedName)}function vvi(e){let t=e.parent.parent;if(t){if(W2i(t))return Tbt(t);switch(t.kind){case 243:if(t.declarationList&&t.declarationList.declarations[0])return Tbt(t.declarationList.declarations[0]);break;case 244:let r=t.expression;switch(r.kind===226&&r.operatorToken.kind===64&&(r=r.left),r.kind){case 211:return r.name;case 212:let n=r.argumentExpression;if($C(n))return n}break;case 217:return Tbt(t.expression);case 256:{if(W2i(t.statement)||Fza(t.statement))return Tbt(t.statement);break}}}}function Tbt(e){let t=Bvi(e);return t&&$C(t)?t:void 0}function q7a(e){return e.name||vvi(e)}function $7a(e){return!!e.name}function MNr(e){switch(e.kind){case 80:return e;case 348:case 341:{let{name:r}=e;if(r.kind===166)return r.right;break}case 213:case 226:{let r=e;switch(JNr(r)){case 1:case 4:case 5:case 3:return UNr(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}}case 346:return q7a(e);case 340:return vvi(e);case 277:{let{expression:r}=e;return $C(r)?r:void 0}case 212:let t=e;if(Mvi(t))return t.argumentExpression}return e.name}function Bvi(e){if(e!==void 0)return MNr(e)||(cBi(e)||lBi(e)||mNr(e)?eza(e):void 0)}function eza(e){if(e.parent){if(hec(e.parent)||eec(e.parent))return e.parent.name;if(DNe(e.parent)&&e===e.parent.right){if($C(e.parent.left))return e.parent.left;if(Uvi(e.parent.left))return UNr(e.parent.left)}else if(gBi(e.parent)&&$C(e.parent.name))return e.parent.name}else return}function tza(e){if(Rqa(e))return wee(e.modifiers,tDr)}function rza(e){if(vJe(e,98303))return wee(e.modifiers,vza)}function wvi(e,t){if(e.name)if($C(e.name)){let r=e.name.escapedText;return CJe(e.parent,t).filter(n=>rSi(n)&&$C(n.name)&&n.name.escapedText===r)}else{let r=e.parent.parameters.indexOf(e);Zo.assert(r>-1,"Parameters should always be in their parents' parameter list");let n=CJe(e.parent,t).filter(rSi);if(rkec(n)&&n.typeParameters.some(a=>a.name.escapedText===r))}function sza(e){return Tvi(e,!1)}function oza(e){return Tvi(e,!0)}function aza(e){return vce(e,Eec)}function cza(e){return Iza(e,xec)}function lza(e){return vce(e,Sec,!0)}function uza(e){return vce(e,vec,!0)}function gza(e){return vce(e,Bec,!0)}function Aza(e){return vce(e,wec,!0)}function dza(e){return vce(e,Tec,!0)}function pza(e){return vce(e,Nec,!0)}function fza(e){let t=vce(e,iDr);if(t&&t.typeExpression&&t.typeExpression.type)return t}function CJe(e,t){var r;if(!KNr(e))return x2;let n=(r=e.jsDoc)==null?void 0:r.jsDocCache;if(n===void 0||t){let a=dqa(e,t);Zo.assert(a.length<2||a[0]!==a[1]),n=USi(a,o=>_Bi(o)?o.tags:o),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=n)}return n}function Rvi(e){return CJe(e,!1)}function vce(e,t,r){return XSi(CJe(e,r),t)}function Iza(e,t){return Rvi(e).filter(t)}function gNr(e){return e.kind===80||e.kind===81}function hza(e){return Bce(e)&&!!(e.flags&64)}function mza(e){return BJe(e)&&!!(e.flags&64)}function V2i(e){return aBi(e)&&!!(e.flags&64)}function HNr(e){return sDr(e,8)}function Cza(e){return Vbt(e)&&!!(e.flags&64)}function YNr(e){return e>=166}function Nvi(e){return e>=0&&e<=165}function _za(e){return Nvi(e.kind)}function _ce(e){return fj(e,"pos")&&fj(e,"end")}function yza(e){return 9<=e&&e<=15}function P2i(e){return 15<=e&&e<=18}function vNe(e){var t;return $C(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function Dvi(e){var t;return Yme(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function bza(e){return(Kbt(e)||Tza(e))&&Yme(e.name)}function vee(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function Eza(e){return!!(Xvi(e)&31)}function Sza(e){return Eza(e)||e===126||e===164||e===129}function vza(e){return vee(e.kind)}function kvi(e){let t=e.kind;return t===80||t===81||t===11||t===9||t===167}function xvi(e){return!!e&&wza(e.kind)}function Bza(e){switch(e){case 262:case 174:case 176:case 177:case 178:case 218:case 219:return!0;default:return!1}}function wza(e){switch(e){case 173:case 179:case 323:case 180:case 181:case 184:case 317:case 185:return!0;default:return Bza(e)}}function wNe(e){return e&&(e.kind===263||e.kind===231)}function Tza(e){switch(e.kind){case 174:case 177:case 178:return!0;default:return!1}}function Rza(e){let t=e.kind;return t===303||t===304||t===305||t===174||t===177||t===178}function Nza(e){return Wqa(e.kind)}function Dza(e){if(e){let t=e.kind;return t===207||t===206}return!1}function kza(e){let t=e.kind;return t===209||t===210}function xza(e){switch(e.kind){case 260:case 169:case 208:return!0}return!1}function TNe(e){return Gvi(HNr(e).kind)}function Gvi(e){switch(e){case 211:case 212:case 214:case 213:case 284:case 285:case 288:case 215:case 209:case 217:case 210:case 231:case 218:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 228:case 97:case 106:case 110:case 112:case 108:case 235:case 233:case 236:case 102:case 282:return!0;default:return!1}}function Gza(e){return Fvi(HNr(e).kind)}function Fvi(e){switch(e){case 224:case 225:case 220:case 221:case 222:case 223:case 216:return!0;default:return Gvi(e)}}function Fza(e){return Zza(HNr(e).kind)}function Zza(e){switch(e){case 227:case 229:case 219:case 226:case 230:case 234:case 232:case 356:case 355:case 238:return!0;default:return Fvi(e)}}function Lza(e){return e===219||e===208||e===263||e===231||e===175||e===176||e===266||e===306||e===281||e===262||e===218||e===177||e===273||e===271||e===276||e===264||e===291||e===174||e===173||e===267||e===270||e===274||e===280||e===169||e===303||e===172||e===171||e===178||e===304||e===265||e===168||e===260||e===346||e===338||e===348||e===202}function Zvi(e){return e===262||e===282||e===263||e===264||e===265||e===266||e===267||e===272||e===271||e===278||e===277||e===270}function Lvi(e){return e===252||e===251||e===259||e===246||e===244||e===242||e===249||e===250||e===248||e===245||e===256||e===253||e===255||e===257||e===258||e===243||e===247||e===254||e===353}function W2i(e){return e.kind===168?e.parent&&e.parent.kind!==345||Qme(e):Lza(e.kind)}function Vza(e){let t=e.kind;return Lvi(t)||Zvi(t)||Pza(e)}function Pza(e){return e.kind!==241||e.parent!==void 0&&(e.parent.kind===258||e.parent.kind===299)?!1:!eqa(e)}function Wza(e){let t=e.kind;return Lvi(t)||Zvi(t)||t===241}function Vvi(e){return e.kind>=309&&e.kind<=351}function Oza(e){return e.kind===320||e.kind===319||e.kind===321||Yza(e)||Mza(e)||bec(e)||yBi(e)}function Mza(e){return e.kind>=327&&e.kind<=351}function Rbt(e){return e.kind===178}function Nbt(e){return e.kind===177}function Pme(e){if(!KNr(e))return!1;let{jsDoc:t}=e;return!!t&&t.length>0}function Hza(e){return!!e.initializer}function QNr(e){return e.kind===11||e.kind===15}function Yza(e){return e.kind===324||e.kind===325||e.kind===326}function O2i(e){return(e.flags&33554432)!==0}var BTu=Qza();function Qza(){var e="";let t=r=>e+=r;return{getText:()=>e,write:t,rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:(r,n)=>t(r),writeTrailingSemicolon:t,writeComment:t,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&BNe(e.charCodeAt(e.length-1)),writeLine:()=>e+=" ",increaseIndent:NNe,decreaseIndent:NNe,clear:()=>e=""}}function Xza(e,t){let r=e.entries();for(let[n,a]of r){let o=t(a,n);if(o)return o}}function Jza(e){return e.end-e.pos}function Pvi(e){return Uza(e),(e.flags&1048576)!==0}function Uza(e){e.flags&2097152||((e.flags&262144||Ok(e,Pvi))&&(e.flags|=1048576),e.flags|=2097152)}function bce(e){for(;e&&e.kind!==307;)e=e.parent;return e}function Wme(e){return e===void 0?!0:e.pos===e.end&&e.pos>=0&&e.kind!==1}function ANr(e){return!Wme(e)}function Xbt(e,t,r){if(Wme(e))return e.pos;if(Vvi(e)||e.kind===12)return dj((t??bce(e)).text,e.pos,!1,!0);if(r&&Pme(e))return Xbt(e.jsDoc[0],t);if(e.kind===352){t??(t=bce(e));let n=DNr(bBi(e,t));if(n)return Xbt(n,t,r)}return dj((t??bce(e)).text,e.pos,!1,!1,tqa(e))}function M2i(e,t,r=!1){return AJe(e.text,t,r)}function Kza(e){return!!Evi(e,Cec)}function AJe(e,t,r=!1){if(Wme(t))return"";let n=e.substring(r?t.pos:dj(e,t.pos),t.end);return Kza(t)&&(n=n.split(/\r\n|\n|\r/).map(a=>a.replace(/^\s*\*/,"").trimStart()).join(` +`)),n}function RNe(e){let t=e.emitNode;return t&&t.flags||0}function jza(e,t,r){Zo.assertGreaterThanOrEqual(t,0),Zo.assertGreaterThanOrEqual(r,0),Zo.assertLessThanOrEqual(t,e.length),Zo.assertLessThanOrEqual(t+r,e.length)}function Lbt(e){return e.kind===244&&e.expression.kind===11}function XNr(e){return!!(RNe(e)&2097152)}function H2i(e){return XNr(e)&&ABi(e)}function zza(e){return $C(e.name)&&!e.initializer}function Y2i(e){return XNr(e)&&rEt(e)&&RNr(e.declarationList.declarations,zza)}function qza(e,t){let r=e.kind===169||e.kind===168||e.kind===218||e.kind===219||e.kind===217||e.kind===260||e.kind===281?NNr(Y7a(t,e.pos),lNr(t,e.pos)):lNr(t,e.pos);return wee(r,n=>n.end<=e.end&&t.charCodeAt(n.pos+1)===42&&t.charCodeAt(n.pos+2)===42&&t.charCodeAt(n.pos+3)!==47)}function $za(e){if(e)switch(e.kind){case 208:case 306:case 169:case 303:case 172:case 171:case 304:case 260:return!0}return!1}function eqa(e){return e&&e.kind===241&&xvi(e.parent)}function Q2i(e){let t=e.kind;return(t===211||t===212)&&e.expression.kind===108}function Qme(e){return!!e&&!!(e.flags&524288)}function tqa(e){return!!e&&!!(e.flags&16777216)}function rqa(e){for(;Jbt(e,!0);)e=e.right;return e}function nqa(e){return $C(e)&&e.escapedText==="exports"}function iqa(e){return $C(e)&&e.escapedText==="module"}function Wvi(e){return(Bce(e)||Ovi(e))&&iqa(e.expression)&&yJe(e)==="exports"}function JNr(e){let t=oqa(e);return t===5||Qme(e)?t:0}function sqa(e){return cJe(e.arguments)===3&&Bce(e.expression)&&$C(e.expression.expression)&&yV(e.expression.expression)==="Object"&&yV(e.expression.name)==="defineProperty"&&eEt(e.arguments[1])&&_Je(e.arguments[0],!0)}function Ovi(e){return BJe(e)&&eEt(e.argumentExpression)}function SJe(e,t){return Bce(e)&&(!t&&e.expression.kind===110||$C(e.name)&&_Je(e.expression,!0))||Mvi(e,t)}function Mvi(e,t){return Ovi(e)&&(!t&&e.expression.kind===110||qNr(e.expression)||SJe(e.expression,!0))}function _Je(e,t){return qNr(e)||SJe(e,t)}function oqa(e){if(aBi(e)){if(!sqa(e))return 0;let t=e.arguments[0];return nqa(t)||Wvi(t)?8:SJe(t)&&yJe(t)==="prototype"?9:7}return e.operatorToken.kind!==64||!Uvi(e.left)||aqa(rqa(e))?0:_Je(e.left.expression,!0)&&yJe(e.left)==="prototype"&&oBi(lqa(e))?6:cqa(e.left)}function aqa(e){return nec(e)&&kNe(e.expression)&&e.expression.text==="0"}function UNr(e){if(Bce(e))return e.name;let t=jNr(e.argumentExpression);return kNe(t)||QNr(t)?t:e}function yJe(e){let t=UNr(e);if(t){if($C(t))return t.escapedText;if(QNr(t)||kNe(t))return mNe(t.text)}}function cqa(e){if(e.expression.kind===110)return 4;if(Wvi(e))return 2;if(_Je(e.expression,!0)){if(Vqa(e.expression))return 3;let t=e;for(;!$C(t.expression);)t=t.expression;let r=t.expression;if((r.escapedText==="exports"||r.escapedText==="module"&&yJe(t)==="exports")&&SJe(e))return 1;if(_Je(e,!0)||BJe(e)&&Eqa(e))return 5}return 0}function lqa(e){for(;DNe(e.right);)e=e.right;return e.right}function uqa(e){return uBi(e)&&DNe(e.expression)&&JNr(e.expression)!==0&&DNe(e.expression.right)&&(e.expression.right.operatorToken.kind===57||e.expression.right.operatorToken.kind===61)?e.expression.right.right:void 0}function gqa(e){switch(e.kind){case 243:let t=dNr(e);return t&&t.initializer;case 172:return e.initializer;case 303:return e.initializer}}function dNr(e){return rEt(e)?DNr(e.declarationList.declarations):void 0}function Aqa(e){return EJe(e)&&e.body&&e.body.kind===267?e.body:void 0}function KNr(e){switch(e.kind){case 219:case 226:case 241:case 252:case 179:case 296:case 263:case 231:case 175:case 176:case 185:case 180:case 251:case 259:case 246:case 212:case 242:case 1:case 266:case 306:case 277:case 278:case 281:case 244:case 249:case 250:case 248:case 262:case 218:case 184:case 177:case 80:case 245:case 272:case 271:case 181:case 264:case 317:case 323:case 256:case 174:case 173:case 267:case 202:case 270:case 210:case 169:case 217:case 211:case 303:case 172:case 171:case 253:case 240:case 178:case 304:case 305:case 255:case 257:case 258:case 265:case 168:case 260:case 243:case 247:case 254:return!0;default:return!1}}function dqa(e,t){let r;$za(e)&&Hza(e)&&Pme(e.initializer)&&(r=_V(r,X2i(e,e.initializer.jsDoc)));let n=e;for(;n&&n.parent;){if(Pme(n)&&(r=_V(r,X2i(e,n.jsDoc))),n.kind===169){r=_V(r,(t?iza:nza)(n));break}if(n.kind===168){r=_V(r,(t?oza:sza)(n));break}n=fqa(n)}return r||x2}function X2i(e,t){let r=Q6a(t);return USi(t,n=>{if(n===r){let a=wee(n.tags,o=>pqa(e,o));return n.tags===a?[n]:a}else return wee(n.tags,Rec)})}function pqa(e,t){return!(iDr(t)||Gec(t))||!t.parent||!_Bi(t.parent)||!rDr(t.parent.parent)||t.parent.parent===e}function fqa(e){let t=e.parent;if(t.kind===303||t.kind===277||t.kind===172||t.kind===244&&e.kind===211||t.kind===253||Aqa(t)||Jbt(e))return t;if(t.parent&&(dNr(t.parent)===e||Jbt(t)))return t.parent;if(t.parent&&t.parent.parent&&(dNr(t.parent.parent)||gqa(t.parent.parent)===e||uqa(t.parent.parent)))return t.parent.parent}function jNr(e,t){return sDr(e,t?-2147483647:1)}function Iqa(e){let t=hqa(e);if(t&&Qme(e)){let r=aza(e);if(r)return r.class}return t}function hqa(e){let t=zNr(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function mqa(e){if(Qme(e))return cza(e).map(t=>t.class);{let t=zNr(e.heritageClauses,119);return t?.types}}function Cqa(e){return nDr(e)?_qa(e)||x2:wNe(e)&&NNr(oNr(Iqa(e)),mqa(e))||x2}function _qa(e){let t=zNr(e.heritageClauses,96);return t?t.types:void 0}function zNr(e,t){if(e){for(let r of e)if(r.token===t)return r}}function Cce(e){return 83<=e&&e<=165}function yqa(e){return 19<=e&&e<=79}function URr(e){return Cce(e)||yqa(e)}function eEt(e){return QNr(e)||kNe(e)}function bqa(e){return iec(e)&&(e.operator===40||e.operator===41)&&kNe(e.operand)}function Eqa(e){if(!(e.kind===167||e.kind===212))return!1;let t=BJe(e)?jNr(e.argumentExpression):e.expression;return!eEt(t)&&!bqa(t)}function Sqa(e){return gNr(e)?yV(e):CBi(e)?d$a(e):e.text}function CNe(e){return bJe(e.pos)||bJe(e.end)}function KRr(e){switch(e){case 61:return 4;case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function jRr(e){return!!((e.templateFlags||0)&2048)}function vqa(e){return e&&!!(B$a(e)?jRr(e):jRr(e.head)||oD(e.templateSpans,t=>jRr(t.literal)))}var wTu=new Map(Object.entries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"})),TTu=new Map(Object.entries({'"':""","'":"'"}));function Bqa(e){return!!e&&e.kind===80&&wqa(e)}function wqa(e){return e.escapedText==="this"}function vJe(e,t){return!!Nqa(e,t)}function Tqa(e){return vJe(e,256)}function Rqa(e){return vJe(e,32768)}function Nqa(e,t){return kqa(e)&t}function Dqa(e,t,r){return e.kind>=0&&e.kind<=165?0:(e.modifierFlagsCache&536870912||(e.modifierFlagsCache=Qvi(e)|536870912),r||t&&Qme(e)?(!(e.modifierFlagsCache&268435456)&&e.parent&&(e.modifierFlagsCache|=Hvi(e)|268435456),Yvi(e.modifierFlagsCache)):xqa(e.modifierFlagsCache))}function kqa(e){return Dqa(e,!1)}function Hvi(e){let t=0;return e.parent&&!Ubt(e)&&(Qme(e)&&(lza(e)&&(t|=8388608),uza(e)&&(t|=16777216),gza(e)&&(t|=33554432),Aza(e)&&(t|=67108864),dza(e)&&(t|=134217728)),pza(e)&&(t|=65536)),t}function xqa(e){return e&65535}function Yvi(e){return e&131071|(e&260046848)>>>23}function Gqa(e){return Yvi(Hvi(e))}function Fqa(e){return Qvi(e)|Gqa(e)}function Qvi(e){let t=oDr(e)?fO(e.modifiers):0;return(e.flags&8||e.kind===80&&e.flags&4096)&&(t|=32),t}function fO(e){let t=0;if(e)for(let r of e)t|=Xvi(r.kind);return t}function Xvi(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 170:return 32768}return 0}function Zqa(e){return e===76||e===77||e===78}function Jvi(e){return e>=64&&e<=79}function Jbt(e,t){return DNe(e)&&(t?e.operatorToken.kind===64:Jvi(e.operatorToken.kind))&&TNe(e.left)}function qNr(e){return e.kind===80||Lqa(e)}function Lqa(e){return Bce(e)&&$C(e.name)&&qNr(e.expression)}function Vqa(e){return SJe(e)&&yJe(e)==="prototype"}function zRr(e){return e.flags&3899393?e.objectFlags:0}function Pqa(e){let t;return Ok(e,r=>{ANr(r)&&(t=r)},r=>{for(let n=r.length-1;n>=0;n--)if(ANr(r[n])){t=r[n];break}}),t}function Wqa(e){return e>=182&&e<=205||e===133||e===159||e===150||e===163||e===151||e===136||e===154||e===155||e===116||e===157||e===146||e===141||e===233||e===312||e===313||e===314||e===315||e===316||e===317||e===318}function Uvi(e){return e.kind===211||e.kind===212}function Oqa(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function Mqa(e,t){this.flags=t,(Zo.isDebugging||Fbt)&&(this.checker=e)}function Hqa(e,t){this.flags=t,Zo.isDebugging&&(this.checker=e)}function qRr(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Yqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function Qqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Xqa(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}var k2={getNodeConstructor:()=>qRr,getTokenConstructor:()=>Yqa,getIdentifierConstructor:()=>Qqa,getPrivateIdentifierConstructor:()=>qRr,getSourceFileConstructor:()=>qRr,getSymbolConstructor:()=>Oqa,getTypeConstructor:()=>Mqa,getSignatureConstructor:()=>Hqa,getSourceMapSourceConstructor:()=>Xqa},Jqa=[];function Uqa(e){Object.assign(k2,e),hO(Jqa,t=>t(k2))}function Kqa(e,t){return e.replace(/\{(\d+)\}/g,(r,n)=>""+Zo.checkDefined(t[+n]))}var J2i;function jqa(e){return J2i&&J2i[e.key]||e.message}function pNe(e,t,r,n,a,...o){r+n>t.length&&(n=t.length-r),jza(t,r,n);let l=jqa(a);return oD(o)&&(l=Kqa(l,o)),{file:void 0,start:r,length:n,messageText:l,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary,fileName:e}}function zqa(e){return e.file===void 0&&e.start!==void 0&&e.length!==void 0&&typeof e.fileName=="string"}function Kvi(e,t){let r=t.fileName||"",n=t.text.length;Zo.assertEqual(e.fileName,r),Zo.assertLessThanOrEqual(e.start,n),Zo.assertLessThanOrEqual(e.start+e.length,n);let a={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){a.relatedInformation=[];for(let o of e.relatedInformation)zqa(o)&&o.fileName===r?(Zo.assertLessThanOrEqual(o.start,n),Zo.assertLessThanOrEqual(o.start+o.length,n),a.relatedInformation.push(Kvi(o,t))):a.relatedInformation.push(o)}return a}function Nme(e,t){let r=[];for(let n of e)r.push(Kvi(n,t));return r}function U2i(e){return e===4||e===2||e===1||e===6?1:0}var y0={allowImportingTsExtensions:{dependencies:["rewriteRelativeImportExtensions"],computeValue:e=>!!(e.allowImportingTsExtensions||e.rewriteRelativeImportExtensions)},target:{dependencies:["module"],computeValue:e=>(e.target===0?void 0:e.target)??(e.module===100&&9||e.module===199&&99||1)},module:{dependencies:["target"],computeValue:e=>typeof e.module=="number"?e.module:y0.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:["module","target"],computeValue:e=>{let t=e.moduleResolution;if(t===void 0)switch(y0.module.computeValue(e)){case 1:t=2;break;case 100:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1;break}return t}},moduleDetection:{dependencies:["module","target"],computeValue:e=>e.moduleDetection||(y0.module.computeValue(e)===100||y0.module.computeValue(e)===199?3:2)},isolatedModules:{dependencies:["verbatimModuleSyntax"],computeValue:e=>!!(e.isolatedModules||e.verbatimModuleSyntax)},esModuleInterop:{dependencies:["module","target"],computeValue:e=>{if(e.esModuleInterop!==void 0)return e.esModuleInterop;switch(y0.module.computeValue(e)){case 100:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:["module","target","moduleResolution"],computeValue:e=>e.allowSyntheticDefaultImports!==void 0?e.allowSyntheticDefaultImports:y0.esModuleInterop.computeValue(e)||y0.module.computeValue(e)===4||y0.moduleResolution.computeValue(e)===100},resolvePackageJsonExports:{dependencies:["moduleResolution"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:["moduleResolution","resolvePackageJsonExports"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:["moduleResolution","module","target"],computeValue:e=>e.resolveJsonModule!==void 0?e.resolveJsonModule:y0.moduleResolution.computeValue(e)===100},declaration:{dependencies:["composite"],computeValue:e=>!!(e.declaration||e.composite)},preserveConstEnums:{dependencies:["isolatedModules","verbatimModuleSyntax"],computeValue:e=>!!(e.preserveConstEnums||y0.isolatedModules.computeValue(e))},incremental:{dependencies:["composite"],computeValue:e=>!!(e.incremental||e.composite)},declarationMap:{dependencies:["declaration","composite"],computeValue:e=>!!(e.declarationMap&&y0.declaration.computeValue(e))},allowJs:{dependencies:["checkJs"],computeValue:e=>e.allowJs===void 0?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:["target","module"],computeValue:e=>e.useDefineForClassFields===void 0?y0.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitAny")},noImplicitThis:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitThis")},strictNullChecks:{dependencies:["strict"],computeValue:e=>Eee(e,"strictNullChecks")},strictFunctionTypes:{dependencies:["strict"],computeValue:e=>Eee(e,"strictFunctionTypes")},strictBindCallApply:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBindCallApply")},strictPropertyInitialization:{dependencies:["strict"],computeValue:e=>Eee(e,"strictPropertyInitialization")},strictBuiltinIteratorReturn:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBuiltinIteratorReturn")},alwaysStrict:{dependencies:["strict"],computeValue:e=>Eee(e,"alwaysStrict")},useUnknownInCatchVariables:{dependencies:["strict"],computeValue:e=>Eee(e,"useUnknownInCatchVariables")}},RTu=y0.allowImportingTsExtensions.computeValue,NTu=y0.target.computeValue,DTu=y0.module.computeValue,kTu=y0.moduleResolution.computeValue,xTu=y0.moduleDetection.computeValue,GTu=y0.isolatedModules.computeValue,FTu=y0.esModuleInterop.computeValue,ZTu=y0.allowSyntheticDefaultImports.computeValue,LTu=y0.resolvePackageJsonExports.computeValue,VTu=y0.resolvePackageJsonImports.computeValue,PTu=y0.resolveJsonModule.computeValue,WTu=y0.declaration.computeValue,OTu=y0.preserveConstEnums.computeValue,MTu=y0.incremental.computeValue,HTu=y0.declarationMap.computeValue,YTu=y0.allowJs.computeValue,QTu=y0.useDefineForClassFields.computeValue;function K2i(e){return e>=3&&e<=99||e===100}function Eee(e,t){return e[t]===void 0?!!e.strict:!!e[t]}function qqa(e){return Xza(targetOptionDeclaration.type,(t,r)=>t===e?r:void 0)}var $qa=["node_modules","bower_components","jspm_packages"],jvi=`(?!(${$qa.join("|")})(/|$))`,e$a={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,e$a.singleAsteriskRegexFragment)},t$a={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,t$a.singleAsteriskRegexFragment)};function zvi(e,t){return e==="*"?t:e==="?"?"[^/]":"\\"+e}function r$a(e,t){return t||n$a(e)||3}function n$a(e){switch(e.substr(e.lastIndexOf(".")).toLowerCase()){case".js":case".cjs":case".mjs":return 1;case".jsx":return 2;case".ts":case".cts":case".mts":return 3;case".tsx":return 4;case".json":return 6;default:return 0}}var qvi=[[".ts",".tsx",".d.ts"],[".cts",".d.cts"],[".mts",".d.mts"]],XTu=JSi(qvi),JTu=[...qvi,[".json"]],i$a=[[".js",".jsx"],[".mjs"],[".cjs"]],UTu=JSi(i$a),s$a=[[".ts",".tsx",".d.ts",".js",".jsx"],[".cts",".d.cts",".cjs"],[".mts",".d.mts",".mjs"]],KTu=[...s$a,[".json"]],o$a=[".d.ts",".d.cts",".d.mts"];function bJe(e){return!(e>=0)}function Dbt(e,...t){return t.length&&(e.relatedInformation||(e.relatedInformation=[]),Zo.assert(e.relatedInformation!==x2,"Diagnostic had empty array singleton for related info, but is still being constructed!"),e.relatedInformation.push(...t)),e}function a$a(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:let I=e.length-1,C=0;for(;e.charCodeAt(C)===48;)C++;return e.slice(C,I)||"0"}let r=2,n=e.length-1,a=(n-r)*t,o=new Uint16Array((a>>>4)+(a&15?1:0));for(let I=n-1,C=0;I>=r;I--,C+=t){let b=C>>>4,E=e.charCodeAt(I),N=(E<=57?E-48:10+E-(E<=70?65:97))<<(C&15);o[b]|=N;let B=N>>>16;B&&(o[b+1]|=B)}let l="",A=o.length-1,f=!0;for(;f;){let I=0;f=!1;for(let C=A;C>=0;C--){let b=I<<16|o[C],E=b/10|0;o[C]=E,I=b-E*10,E&&!f&&(A=C,f=!0)}l=I+l}return l}function c$a({negative:e,base10Value:t}){return(e&&t!=="0"?"-":"")+t}function pNr(e,t){return e.pos=t,e}function l$a(e,t){return e.end=t,e}function Ece(e,t,r){return l$a(pNr(e,t),r)}function j2i(e,t,r){return Ece(e,t,t+r)}function $Nr(e,t){return e&&t&&(e.parent=t),e}function u$a(e,t){if(!e)return e;return vSi(e,Vvi(e)?r:a),e;function r(o,l){if(t&&o.parent===l)return"skip";$Nr(o,l)}function n(o){if(Pme(o))for(let l of o.jsDoc)r(l,o),vSi(l,r)}function a(o,l){return r(o,l)||n(o)}}function g$a(e){return!!(e.flags&262144&&e.isThisType)}function A$a(e){var t;return((t=getSnippetElement(e))==null?void 0:t.kind)===0}function d$a(e){return`${yV(e.namespace)}:${yV(e.name)}`}var jTu=String.prototype.replace,fNr=["assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","inspector/promises","module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","test/mock_loader","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"],zTu=new Set(fNr),p$a=new Set(["node:sea","node:sqlite","node:test","node:test/reporters"]),qTu=new Set([...fNr,...fNr.map(e=>`node:${e}`),...p$a]);function f$a(){let e,t,r,n,a;return{createBaseSourceFileNode:o,createBaseIdentifierNode:l,createBasePrivateIdentifierNode:A,createBaseTokenNode:f,createBaseNode:I};function o(C){return new(a||(a=k2.getSourceFileConstructor()))(C,-1,-1)}function l(C){return new(r||(r=k2.getIdentifierConstructor()))(C,-1,-1)}function A(C){return new(n||(n=k2.getPrivateIdentifierConstructor()))(C,-1,-1)}function f(C){return new(t||(t=k2.getTokenConstructor()))(C,-1,-1)}function I(C){return new(e||(e=k2.getNodeConstructor()))(C,-1,-1)}}var I$a={getParenthesizeLeftSideOfBinaryForOperator:e=>VE,getParenthesizeRightSideOfBinaryForOperator:e=>VE,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,r)=>r,parenthesizeExpressionOfComputedPropertyName:VE,parenthesizeConditionOfConditionalExpression:VE,parenthesizeBranchOfConditionalExpression:VE,parenthesizeExpressionOfExportDefault:VE,parenthesizeExpressionOfNew:e=>Aj(e,TNe),parenthesizeLeftSideOfAccess:e=>Aj(e,TNe),parenthesizeOperandOfPostfixUnary:e=>Aj(e,TNe),parenthesizeOperandOfPrefixUnary:e=>Aj(e,Gza),parenthesizeExpressionsOfCommaDelimitedList:e=>Aj(e,_ce),parenthesizeExpressionForDisallowedComma:VE,parenthesizeExpressionOfExpressionStatement:VE,parenthesizeConciseBodyOfArrowFunction:VE,parenthesizeCheckTypeOfConditionalType:VE,parenthesizeExtendsTypeOfConditionalType:VE,parenthesizeConstituentTypesOfUnionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfUnionType:VE,parenthesizeConstituentTypesOfIntersectionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfIntersectionType:VE,parenthesizeOperandOfTypeOperator:VE,parenthesizeOperandOfReadonlyTypeOperator:VE,parenthesizeNonArrayTypeOfPostfixType:VE,parenthesizeElementTypesOfTupleType:e=>Aj(e,_ce),parenthesizeElementTypeOfTupleType:VE,parenthesizeTypeOfOptionalType:VE,parenthesizeTypeArguments:e=>e&&Aj(e,_ce),parenthesizeLeadingTypeArgument:VE},kbt=0,h$a=[];function eDr(e,t){let r=e&8?VE:b$a,n=w2i(()=>e&1?I$a:createParenthesizerRules(X)),a=w2i(()=>e&2?nullNodeConverters:createNodeConverters(X)),o=eH(z=>(ye,Ve)=>gt(ye,z,Ve)),l=eH(z=>ye=>se(z,ye)),A=eH(z=>ye=>K(ye,z)),f=eH(z=>()=>ND(z)),I=eH(z=>ye=>q_(z,ye)),C=eH(z=>(ye,Ve)=>UR(z,ye,Ve)),b=eH(z=>(ye,Ve)=>DD(z,ye,Ve)),E=eH(z=>(ye,Ve)=>kD(z,ye,Ve)),N=eH(z=>(ye,Ve)=>Mo(z,ye,Ve)),B=eH(z=>(ye,Ve,Ct)=>gp(z,ye,Ve,Ct)),F=eH(z=>(ye,Ve,Ct)=>lF(z,ye,Ve,Ct)),Q=eH(z=>(ye,Ve,Ct,wr)=>uF(z,ye,Ve,Ct,wr)),X={get parenthesizer(){return n()},get converters(){return a()},baseFactory:t,flags:e,createNodeArray:ae,createNumericLiteral:ue,createBigIntLiteral:de,createStringLiteral:Se,createStringLiteralFromNode:De,createRegularExpressionLiteral:k,createLiteralLikeNode:et,createIdentifier:je,createTempVariable:St,createLoopVariable:At,createUniqueName:Yt,getGeneratedNameForNode:Tr,createPrivateIdentifier:er,createUniquePrivateName:xt,getGeneratedPrivateNameForNode:Zr,createToken:Xt,createSuper:lr,createThis:cr,createNull:Ar,createTrue:qr,createFalse:_n,createModifier:ke,createModifiersFromModifierFlags:jt,createQualifiedName:Fn,updateQualifiedName:Nn,createComputedPropertyName:Hi,updateComputedPropertyName:po,createTypeParameterDeclaration:Vr,updateTypeParameterDeclaration:xi,createParameterDeclaration:io,updateParameterDeclaration:ga,createDecorator:Ya,updateDecorator:Gc,createPropertySignature:cl,updatePropertySignature:Sc,createPropertyDeclaration:Wr,updatePropertyDeclaration:Ft,createMethodSignature:zr,updateMethodSignature:Rn,createMethodDeclaration:Or,updateMethodDeclaration:Qi,createConstructorDeclaration:gc,updateConstructorDeclaration:Cg,createGetAccessorDeclaration:iA,updateGetAccessorDeclaration:ma,createSetAccessorDeclaration:li,updateSetAccessorDeclaration:Ei,createCallSignature:Xa,updateCallSignature:ac,createConstructSignature:Yl,updateConstructSignature:Wc,createIndexSignature:Sg,updateIndexSignature:Ul,createClassStaticBlockDeclaration:yo,updateClassStaticBlockDeclaration:bo,createTemplateLiteralTypeSpan:Xu,updateTemplateLiteralTypeSpan:Da,createKeywordTypeNode:pu,createTypePredicateNode:_g,updateTypePredicateNode:mI,createTypeReferenceNode:Qh,updateTypeReferenceNode:Ri,createFunctionTypeNode:Do,updateFunctionTypeNode:Wt,createConstructorTypeNode:Ru,updateConstructorTypeNode:Yn,createTypeQueryNode:OA,updateTypeQueryNode:GA,createTypeLiteralNode:$i,updateTypeLiteralNode:dl,createArrayTypeNode:Uf,updateArrayTypeNode:Kd,createTupleTypeNode:oA,updateTupleTypeNode:oo,createNamedTupleMember:Ki,updateNamedTupleMember:cc,createOptionalTypeNode:Xs,updateOptionalTypeNode:ws,createRestTypeNode:Gs,updateRestTypeNode:Ma,createUnionTypeNode:Tf,updateUnionTypeNode:cm,createIntersectionTypeNode:Fl,updateIntersectionTypeNode:rc,createConditionalTypeNode:sd,updateConditionalTypeNode:Om,createInferTypeNode:il,updateInferTypeNode:FA,createImportTypeNode:yg,updateImportTypeNode:Mp,createParenthesizedType:MA,updateParenthesizedType:Er,createThisTypeNode:Zt,createTypeOperatorNode:yn,updateTypeOperatorNode:ls,createIndexedAccessTypeNode:oa,updateIndexedAccessTypeNode:Fs,createMappedTypeNode:Wa,updateMappedTypeNode:Ca,createLiteralTypeNode:ld,updateLiteralTypeNode:Rp,createTemplateLiteralType:ZA,updateTemplateLiteralType:El,createObjectBindingPattern:np,updateObjectBindingPattern:HA,createArrayBindingPattern:df,updateArrayBindingPattern:Zs,createBindingElement:so,updateBindingElement:Ea,createArrayLiteralExpression:Ml,updateArrayLiteralExpression:Dr,createObjectLiteralExpression:Wn,updateObjectLiteralExpression:di,createPropertyAccessExpression:e&4?(z,ye)=>setEmitFlags(Bo(z,ye),262144):Bo,updatePropertyAccessExpression:us,createPropertyAccessChain:e&4?(z,ye,Ve)=>setEmitFlags(Ql(z,ye,Ve),262144):Ql,updatePropertyAccessChain:LA,createElementAccessExpression:ef,updateElementAccessExpression:ip,createElementAccessChain:_d,updateElementAccessChain:j1,createCallExpression:YA,updateCallExpression:Ac,createCallChain:Nm,updateCallChain:HS,createNewExpression:jd,updateNewExpression:dh,createTaggedTemplateExpression:Hp,updateTaggedTemplateExpression:uC,createTypeAssertion:nE,updateTypeAssertion:J_,createParenthesizedExpression:q0,updateParenthesizedExpression:XE,createFunctionExpression:TC,updateFunctionExpression:t_,createArrowFunction:cp,updateArrowFunction:Mm,createDeleteExpression:fb,updateDeleteExpression:pe,createTypeOfExpression:lm,updateTypeOfExpression:Kf,createVoidExpression:CI,updateVoidExpression:_I,createAwaitExpression:H2,updateAwaitExpression:iE,createPrefixUnaryExpression:se,updatePrefixUnaryExpression:O,createPostfixUnaryExpression:K,updatePostfixUnaryExpression:we,createBinaryExpression:gt,updateBinaryExpression:Yr,createConditionalExpression:Lr,updateConditionalExpression:fi,createTemplateExpression:$n,updateTemplateExpression:ra,createTemplateHead:SA,createTemplateMiddle:lI,createTemplateTail:lp,createNoSubstitutionTemplateLiteral:Ib,createTemplateLiteralLikeNode:$g,createYieldExpression:Na,updateYieldExpression:wd,createSpreadElement:z1,updateSpreadElement:T_,createClassExpression:RC,updateClassExpression:Hm,createOmittedExpression:YS,createExpressionWithTypeArguments:Fg,updateExpressionWithTypeArguments:hb,createAsExpression:gC,updateAsExpression:NC,createNonNullExpression:Y2,updateNonNullExpression:U_,createSatisfiesExpression:DC,updateSatisfiesExpression:kC,createNonNullChain:qI,updateNonNullChain:ph,createMetaProperty:vA,updateMetaProperty:Td,createTemplateSpan:Mc,updateTemplateSpan:Pf,createSemicolonClassElement:sE,createBlock:eA,updateBlock:QS,createVariableStatement:XS,updateVariableStatement:um,createEmptyStatement:gm,createExpressionStatement:cs,updateExpressionStatement:na,createIfStatement:ko,updateIfStatement:ki,createDoStatement:Kl,updateDoStatement:fd,createWhileStatement:jf,updateWhileStatement:Ld,createForStatement:AC,updateForStatement:JE,createForInStatement:Ym,updateForInStatement:vy,createForOfStatement:K_,updateForOfStatement:od,createContinueStatement:UE,updateContinueStatement:KE,createBreakStatement:Yp,updateBreakStatement:JS,createReturnStatement:By,updateReturnStatement:$0,createWithStatement:fw,updateWithStatement:Q2,createSwitchStatement:xc,updateSwitchStatement:ut,createLabeledStatement:ar,updateLabeledStatement:Jr,createThrowStatement:Gn,updateThrowStatement:Ts,createTryStatement:Qo,updateTryStatement:vg,createDebuggerStatement:Ng,createVariableDeclaration:Rf,updateVariableDeclaration:uI,createVariableDeclarationList:Th,updateVariableDeclarationList:oE,createFunctionDeclaration:TT,updateFunctionDeclaration:sB,createClassDeclaration:wy,updateClassDeclaration:jE,createInterfaceDeclaration:j_,updateInterfaceDeclaration:NT,createTypeAliasDeclaration:tf,updateTypeAliasDeclaration:Ty,createEnumDeclaration:US,updateEnumDeclaration:$I,createModuleDeclaration:BA,updateModuleDeclaration:$A,createModuleBlock:Qm,updateModuleBlock:zf,createCaseBlock:mb,updateCaseBlock:R_,createNamespaceExportDeclaration:Cb,updateNamespaceExportDeclaration:Ry,createImportEqualsDeclaration:_b,updateImportEqualsDeclaration:z_,createImportDeclaration:zE,updateImportDeclaration:oB,createImportClause:DT,updateImportClause:aB,createAssertClause:jS,updateAssertClause:XR,createAssertEntry:zS,updateAssertEntry:qE,createImportTypeAssertionContainer:X2,updateImportTypeAssertionContainer:kT,createImportAttributes:pn,updateImportAttributes:q1,createImportAttribute:J2,updateImportAttribute:ey,createNamespaceImport:up,updateNamespaceImport:Iw,createNamespaceExport:cB,updateNamespaceExport:RD,createNamedImports:Rd,updateNamedImports:JR,createImportSpecifier:ty,updateImportSpecifier:cF,createExportAssignment:$1,updateExportAssignment:$E,createExportDeclaration:N_,updateExportDeclaration:e1,createNamedExports:ry,updateNamedExports:xT,createExportSpecifier:yb,updateExportSpecifier:r_,createMissingDeclaration:Rh,createExternalModuleReference:bb,updateExternalModuleReference:lB,get createJSDocAllType(){return f(312)},get createJSDocUnknownType(){return f(313)},get createJSDocNonNullableType(){return b(315)},get updateJSDocNonNullableType(){return E(315)},get createJSDocNullableType(){return b(314)},get updateJSDocNullableType(){return E(314)},get createJSDocOptionalType(){return I(316)},get updateJSDocOptionalType(){return C(316)},get createJSDocVariadicType(){return I(318)},get updateJSDocVariadicType(){return C(318)},get createJSDocNamepathType(){return I(319)},get updateJSDocNamepathType(){return C(319)},createJSDocFunctionType:lc,updateJSDocFunctionType:fh,createJSDocTypeLiteral:rf,updateJSDocTypeLiteral:yI,createJSDocTypeExpression:aE,updateJSDocTypeExpression:qS,createJSDocSignature:Qp,updateJSDocSignature:uB,createJSDocTemplateTag:r1,updateJSDocTemplateTag:gB,createJSDocTypedefTag:hw,updateJSDocTypedefTag:GT,createJSDocParameterTag:b0,updateJSDocParameterTag:ia,createJSDocPropertyTag:e2,updateJSDocPropertyTag:yd,createJSDocCallbackTag:bI,updateJSDocCallbackTag:ag,createJSDocOverloadTag:Eb,updateJSDocOverloadTag:n1,createJSDocAugmentsTag:U2,updateJSDocAugmentsTag:e0,createJSDocImplementsTag:n_,updateJSDocImplementsTag:Wf,createJSDocSeeTag:Xp,updateJSDocSeeTag:cE,createJSDocImportTag:Dp,updateJSDocImportTag:t2,createJSDocNameReference:lE,updateJSDocNameReference:Ip,createJSDocMemberName:Xh,updateJSDocMemberName:E0,createJSDocLink:aA,updateJSDocLink:fu,createJSDocLinkCode:Jp,updateJSDocLinkCode:dC,createJSDocLinkPlain:uE,updateJSDocLinkPlain:eh,get createJSDocTypeTag(){return F(344)},get updateJSDocTypeTag(){return Q(344)},get createJSDocReturnTag(){return F(342)},get updateJSDocReturnTag(){return Q(342)},get createJSDocThisTag(){return F(343)},get updateJSDocThisTag(){return Q(343)},get createJSDocAuthorTag(){return N(330)},get updateJSDocAuthorTag(){return B(330)},get createJSDocClassTag(){return N(332)},get updateJSDocClassTag(){return B(332)},get createJSDocPublicTag(){return N(333)},get updateJSDocPublicTag(){return B(333)},get createJSDocPrivateTag(){return N(334)},get updateJSDocPrivateTag(){return B(334)},get createJSDocProtectedTag(){return N(335)},get updateJSDocProtectedTag(){return B(335)},get createJSDocReadonlyTag(){return N(336)},get updateJSDocReadonlyTag(){return B(336)},get createJSDocOverrideTag(){return N(337)},get updateJSDocOverrideTag(){return B(337)},get createJSDocDeprecatedTag(){return N(331)},get updateJSDocDeprecatedTag(){return B(331)},get createJSDocThrowsTag(){return F(349)},get updateJSDocThrowsTag(){return Q(349)},get createJSDocSatisfiesTag(){return F(350)},get updateJSDocSatisfiesTag(){return Q(350)},createJSDocEnumTag:Np,updateJSDocEnumTag:Dm,createJSDocUnknownTag:gE,updateJSDocUnknownTag:FT,createJSDocText:Ro,updateJSDocText:AE,createJSDocComment:AB,updateJSDocComment:Xc,createJsxElement:iu,updateJsxElement:dE,createJsxSelfClosingElement:yL,updateJsxSelfClosingElement:KR,createJsxOpeningElement:Ou,updateJsxOpeningElement:ny,createJsxClosingElement:hp,updateJsxClosingElement:Am,createJsxFragment:K2,createJsxText:dB,updateJsxText:ZT,createJsxOpeningFragment:Cx,createJsxJsxClosingFragment:pB,updateJsxFragment:i_,createJsxAttribute:qf,updateJsxAttribute:Jh,createJsxAttributes:$S,updateJsxAttributes:Sb,createJsxSpreadAttribute:mp,updateJsxSpreadAttribute:r2,createJsxExpression:i1,updateJsxExpression:Of,createJsxNamespacedName:pE,updateJsxNamespacedName:Vd,createCaseClause:j,updateCaseClause:Z,createDefaultClause:Id,updateDefaultClause:fB,createHeritageClause:ev,updateHeritageClause:Ny,createCatchClause:vb,updateCatchClause:xD,createPropertyAssignment:IB,updatePropertyAssignment:Bb,createShorthandPropertyAssignment:gF,updateShorthandPropertyAssignment:x,createSpreadAssignment:te,updateSpreadAssignment:Re,createEnumMember:Le,updateEnumMember:ft,createSourceFile:dr,updateSourceFile:Ho,createRedirectedSourceFile:Ur,createBundle:Wg,updateBundle:cA,createSyntheticExpression:th,createSyntaxList:xn,createNotEmittedStatement:rn,createNotEmittedTypeElement:ec,createPartiallyEmittedExpression:Ci,updatePartiallyEmittedExpression:Po,createCommaListExpression:dc,updateCommaListExpression:Iu,createSyntheticReferenceExpression:Cl,updateSyntheticReferenceExpression:wl,cloneNode:tv,get createComma(){return o(28)},get createAssignment(){return o(64)},get createLogicalOr(){return o(57)},get createLogicalAnd(){return o(56)},get createBitwiseOr(){return o(52)},get createBitwiseXor(){return o(53)},get createBitwiseAnd(){return o(51)},get createStrictEquality(){return o(37)},get createStrictInequality(){return o(38)},get createEquality(){return o(35)},get createInequality(){return o(36)},get createLessThan(){return o(30)},get createLessThanEquals(){return o(33)},get createGreaterThan(){return o(32)},get createGreaterThanEquals(){return o(34)},get createLeftShift(){return o(48)},get createRightShift(){return o(49)},get createUnsignedRightShift(){return o(50)},get createAdd(){return o(40)},get createSubtract(){return o(41)},get createMultiply(){return o(42)},get createDivide(){return o(44)},get createModulo(){return o(45)},get createExponent(){return o(43)},get createPrefixPlus(){return l(40)},get createPrefixMinus(){return l(41)},get createPrefixIncrement(){return l(46)},get createPrefixDecrement(){return l(47)},get createBitwiseNot(){return l(55)},get createLogicalNot(){return l(54)},get createPostfixIncrement(){return A(46)},get createPostfixDecrement(){return A(47)},createImmediatelyInvokedFunctionExpression:Yu,createImmediatelyInvokedArrowFunction:qO,createVoidZero:hB,createExportDefault:mw,createExternalModuleExport:AF,createTypeCheck:$O,createIsNotTypeCheck:iY,createMethodCall:LT,createGlobalMethodCall:ff,createFunctionBindCall:GD,createFunctionCallCall:dF,createFunctionApplyCall:EL,createArraySliceCall:FD,createArrayConcatCall:fE,createObjectDefinePropertyCall:n2,createObjectGetOwnPropertyDescriptorCall:mB,createReflectGetCall:bd,createReflectSetCall:s1,createPropertyDescriptor:wb,createCallBinding:aY,createAssignmentTargetWrapper:tt,inlineExpressions:Jt,getInternalName:Xr,getLocalName:ui,getExportName:Is,getDeclarationName:Hs,getNamespaceMemberName:Rs,getExternalModuleOrNamespaceExportName:ja,restoreOuterExpressions:sY,restoreEnclosingLabel:oY,createUseStrictPrologue:Nd,copyPrologue:ho,copyStandardPrologue:ed,copyCustomPrologue:Og,ensureUseStrict:Nh,liftToBlock:o1,mergeLexicalEnvironment:q2,replaceModifiers:IE,replaceDecoratorsAndModifiers:zR,replacePropertyName:e3};return hO(h$a,z=>z(X)),X;function ae(z,ye){if(z===void 0||z===x2)z=[];else if(_ce(z)){if(ye===void 0||z.hasTrailingComma===ye)return z.transformFlags===void 0&&q2i(z),Zo.attachNodeArrayDebugInfo(z),z;let wr=z.slice();return wr.pos=z.pos,wr.end=z.end,wr.hasTrailingComma=ye,wr.transformFlags=z.transformFlags,Zo.attachNodeArrayDebugInfo(wr),wr}let Ve=z.length,Ct=Ve>=1&&Ve<=4?z.slice():z;return Ct.pos=-1,Ct.end=-1,Ct.hasTrailingComma=!!ye,Ct.transformFlags=0,q2i(Ct),Zo.attachNodeArrayDebugInfo(Ct),Ct}function ne(z){return t.createBaseNode(z)}function ce(z){let ye=ne(z);return ye.symbol=void 0,ye.localSymbol=void 0,ye}function fe(z,ye){return z!==ye&&(z.typeArguments=ye.typeArguments),Eo(z,ye)}function ue(z,ye=0){let Ve=typeof z=="number"?z+"":z;Zo.assert(Ve.charCodeAt(0)!==45,"Negative numbers should be created in combination with createPrefixUnaryExpression");let Ct=ce(9);return Ct.text=Ve,Ct.numericLiteralFlags=ye,ye&384&&(Ct.transformFlags|=1024),Ct}function de(z){let ye=qt(10);return ye.text=typeof z=="string"?z:c$a(z)+"n",ye.transformFlags|=32,ye}function be(z,ye){let Ve=ce(11);return Ve.text=z,Ve.singleQuote=ye,Ve}function Se(z,ye,Ve){let Ct=be(z,ye);return Ct.hasExtendedUnicodeEscape=Ve,Ve&&(Ct.transformFlags|=1024),Ct}function De(z){let ye=be(Sqa(z),void 0);return ye.textSourceNode=z,ye}function k(z){let ye=qt(14);return ye.text=z,ye}function et(z,ye){switch(z){case 9:return ue(ye,0);case 10:return de(ye);case 11:return Se(ye,void 0);case 12:return dB(ye,!1);case 13:return dB(ye,!0);case 14:return k(ye);case 15:return $g(z,ye,void 0,0)}}function ct(z){let ye=t.createBaseIdentifierNode(80);return ye.escapedText=z,ye.jsDoc=void 0,ye.flowNode=void 0,ye.symbol=void 0,ye}function Me(z,ye,Ve,Ct){let wr=ct(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function je(z,ye,Ve){ye===void 0&&z&&(ye=pvi(z)),ye===80&&(ye=void 0);let Ct=ct(mNe(z));return Ve&&(Ct.flags|=256),Ct.escapedText==="await"&&(Ct.transformFlags|=67108864),Ct.flags&256&&(Ct.transformFlags|=1024),Ct}function St(z,ye,Ve,Ct){let wr=1;ye&&(wr|=8);let ai=Me("",wr,Ve,Ct);return z&&z(ai),ai}function At(z){let ye=2;return z&&(ye|=8),Me("",ye,void 0,void 0)}function Yt(z,ye=0,Ve,Ct){return Zo.assert(!(ye&7),"Argument out of range: flags"),Zo.assert((ye&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Me(z,3|ye,Ve,Ct)}function Tr(z,ye=0,Ve,Ct){Zo.assert(!(ye&7),"Argument out of range: flags");let wr=z?gNr(z)?CNr(!1,Ve,z,Ct,yV):`generated@${getNodeId(z)}`:"";(Ve||Ct)&&(ye|=16);let ai=Me(wr,4|ye,Ve,Ct);return ai.original=z,ai}function Nr(z){let ye=t.createBasePrivateIdentifierNode(81);return ye.escapedText=z,ye.transformFlags|=16777216,ye}function er(z){return Obt(z,"#")||Zo.fail("First character of private identifier must be #: "+z),Nr(mNe(z))}function vt(z,ye,Ve,Ct){let wr=Nr(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function xt(z,ye,Ve){z&&!Obt(z,"#")&&Zo.fail("First character of private identifier must be #: "+z);let Ct=8|(z?3:1);return vt(z??"",Ct,ye,Ve)}function Zr(z,ye,Ve){let Ct=gNr(z)?CNr(!0,ye,z,Ve,yV):`#generated@${getNodeId(z)}`,wr=vt(Ct,4|(ye||Ve?16:0),ye,Ve);return wr.original=z,wr}function qt(z){return t.createBaseTokenNode(z)}function Xt(z){Zo.assert(z>=0&&z<=165,"Invalid token"),Zo.assert(z<=15||z>=18,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),Zo.assert(z<=9||z>=15,"Invalid token. Use 'createLiteralLikeNode' to create literals."),Zo.assert(z!==80,"Invalid token. Use 'createIdentifier' to create identifiers");let ye=qt(z),Ve=0;switch(z){case 134:Ve=384;break;case 160:Ve=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:Ve=1;break;case 108:Ve=134218752,ye.flowNode=void 0;break;case 126:Ve=1024;break;case 129:Ve=16777216;break;case 110:Ve=16384,ye.flowNode=void 0;break}return Ve&&(ye.transformFlags|=Ve),ye}function lr(){return Xt(108)}function cr(){return Xt(110)}function Ar(){return Xt(106)}function qr(){return Xt(112)}function _n(){return Xt(97)}function ke(z){return Xt(z)}function jt(z){let ye=[];return z&32&&ye.push(ke(95)),z&128&&ye.push(ke(138)),z&2048&&ye.push(ke(90)),z&4096&&ye.push(ke(87)),z&1&&ye.push(ke(125)),z&2&&ye.push(ke(123)),z&4&&ye.push(ke(124)),z&64&&ye.push(ke(128)),z&256&&ye.push(ke(126)),z&16&&ye.push(ke(164)),z&8&&ye.push(ke(148)),z&512&&ye.push(ke(129)),z&1024&&ye.push(ke(134)),z&8192&&ye.push(ke(103)),z&16384&&ye.push(ke(147)),ye.length?ye:void 0}function Fn(z,ye){let Ve=ne(166);return Ve.left=z,Ve.right=EI(ye),Ve.transformFlags|=$o(Ve.left)|_Ne(Ve.right),Ve.flowNode=void 0,Ve}function Nn(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Fn(ye,Ve),z):z}function Hi(z){let ye=ne(167);return ye.expression=n().parenthesizeExpressionOfComputedPropertyName(z),ye.transformFlags|=$o(ye.expression)|1024|131072,ye}function po(z,ye){return z.expression!==ye?Eo(Hi(ye),z):z}function Vr(z,ye,Ve,Ct){let wr=ce(168);return wr.modifiers=IA(z),wr.name=EI(ye),wr.constraint=Ve,wr.default=Ct,wr.transformFlags=1,wr.expression=void 0,wr.jsDoc=void 0,wr}function xi(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.constraint!==Ct||z.default!==wr?Eo(Vr(ye,Ve,Ct,wr),z):z}function io(z,ye,Ve,Ct,wr,ai){let Lo=ce(169);return Lo.modifiers=IA(z),Lo.dotDotDotToken=ye,Lo.name=EI(Ve),Lo.questionToken=Ct,Lo.type=wr,Lo.initializer=wA(ai),Bqa(Lo.name)?Lo.transformFlags=1:Lo.transformFlags=qA(Lo.modifiers)|$o(Lo.dotDotDotToken)|pO(Lo.name)|$o(Lo.questionToken)|$o(Lo.initializer)|(Lo.questionToken??Lo.type?1:0)|(Lo.dotDotDotToken??Lo.initializer?1024:0)|(fO(Lo.modifiers)&31?8192:0),Lo.jsDoc=void 0,Lo}function ga(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.dotDotDotToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.type!==ai||z.initializer!==Lo?Eo(io(ye,Ve,Ct,wr,ai,Lo),z):z}function Ya(z){let ye=ne(170);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1|8192|33554432,ye}function Gc(z,ye){return z.expression!==ye?Eo(Ya(ye),z):z}function cl(z,ye,Ve,Ct){let wr=ce(171);return wr.modifiers=IA(z),wr.name=EI(ye),wr.type=Ct,wr.questionToken=Ve,wr.transformFlags=1,wr.initializer=void 0,wr.jsDoc=void 0,wr}function Sc(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Hr(cl(ye,Ve,Ct,wr),z):z}function Hr(z,ye){return z!==ye&&(z.initializer=ye.initializer),Eo(z,ye)}function Wr(z,ye,Ve,Ct,wr){let ai=ce(172);ai.modifiers=IA(z),ai.name=EI(ye),ai.questionToken=Ve&&eSi(Ve)?Ve:void 0,ai.exclamationToken=Ve&&$2i(Ve)?Ve:void 0,ai.type=Ct,ai.initializer=wA(wr);let Lo=ai.flags&33554432||fO(ai.modifiers)&128;return ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|$o(ai.initializer)|(Lo||ai.questionToken||ai.exclamationToken||ai.type?1:0)|($vi(ai.name)||fO(ai.modifiers)&256&&ai.initializer?8192:0)|16777216,ai.jsDoc=void 0,ai}function Ft(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==(Ct!==void 0&&eSi(Ct)?Ct:void 0)||z.exclamationToken!==(Ct!==void 0&&$2i(Ct)?Ct:void 0)||z.type!==wr||z.initializer!==ai?Eo(Wr(ye,Ve,Ct,wr,ai),z):z}function zr(z,ye,Ve,Ct,wr,ai){let Lo=ce(173);return Lo.modifiers=IA(z),Lo.name=EI(ye),Lo.questionToken=Ve,Lo.typeParameters=IA(Ct),Lo.parameters=IA(wr),Lo.type=ai,Lo.transformFlags=1,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.typeArguments=void 0,Lo}function Rn(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo?fe(zr(ye,Ve,Ct,wr,ai,Lo),z):z}function Or(z,ye,Ve,Ct,wr,ai,Lo,Hc){let ad=ce(174);if(ad.modifiers=IA(z),ad.asteriskToken=ye,ad.name=EI(Ve),ad.questionToken=Ct,ad.exclamationToken=void 0,ad.typeParameters=IA(wr),ad.parameters=ae(ai),ad.type=Lo,ad.body=Hc,!ad.body)ad.transformFlags=1;else{let dm=fO(ad.modifiers)&1024,rv=!!ad.asteriskToken,nv=dm&&rv;ad.transformFlags=qA(ad.modifiers)|$o(ad.asteriskToken)|pO(ad.name)|$o(ad.questionToken)|qA(ad.typeParameters)|qA(ad.parameters)|$o(ad.type)|$o(ad.body)&-67108865|(nv?128:dm?256:rv?2048:0)|(ad.questionToken||ad.typeParameters||ad.type?1:0)|1024}return ad.typeArguments=void 0,ad.jsDoc=void 0,ad.locals=void 0,ad.nextContainer=void 0,ad.flowNode=void 0,ad.endFlowNode=void 0,ad.returnFlowNode=void 0,ad}function Qi(z,ye,Ve,Ct,wr,ai,Lo,Hc,ad){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.typeParameters!==ai||z.parameters!==Lo||z.type!==Hc||z.body!==ad?ps(Or(ye,Ve,Ct,wr,ai,Lo,Hc,ad),z):z}function ps(z,ye){return z!==ye&&(z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function yo(z){let ye=ce(175);return ye.body=z,ye.transformFlags=$o(z)|16777216,ye.modifiers=void 0,ye.jsDoc=void 0,ye.locals=void 0,ye.nextContainer=void 0,ye.endFlowNode=void 0,ye.returnFlowNode=void 0,ye}function bo(z,ye){return z.body!==ye?Qa(yo(ye),z):z}function Qa(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function gc(z,ye,Ve){let Ct=ce(176);return Ct.modifiers=IA(z),Ct.parameters=ae(ye),Ct.body=Ve,Ct.body?Ct.transformFlags=qA(Ct.modifiers)|qA(Ct.parameters)|$o(Ct.body)&-67108865|1024:Ct.transformFlags=1,Ct.typeParameters=void 0,Ct.type=void 0,Ct.typeArguments=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.returnFlowNode=void 0,Ct}function Cg(z,ye,Ve,Ct){return z.modifiers!==ye||z.parameters!==Ve||z.body!==Ct?Nc(gc(ye,Ve,Ct),z):z}function Nc(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function iA(z,ye,Ve,Ct,wr){let ai=ce(177);return ai.modifiers=IA(z),ai.name=EI(ye),ai.parameters=ae(Ve),ai.type=Ct,ai.body=wr,ai.body?ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|qA(ai.parameters)|$o(ai.type)|$o(ai.body)&-67108865|(ai.type?1:0):ai.transformFlags=1,ai.typeArguments=void 0,ai.typeParameters=void 0,ai.jsDoc=void 0,ai.locals=void 0,ai.nextContainer=void 0,ai.flowNode=void 0,ai.endFlowNode=void 0,ai.returnFlowNode=void 0,ai}function ma(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.type!==wr||z.body!==ai?vu(iA(ye,Ve,Ct,wr,ai),z):z}function vu(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters),fe(z,ye)}function li(z,ye,Ve,Ct){let wr=ce(178);return wr.modifiers=IA(z),wr.name=EI(ye),wr.parameters=ae(Ve),wr.body=Ct,wr.body?wr.transformFlags=qA(wr.modifiers)|pO(wr.name)|qA(wr.parameters)|$o(wr.body)&-67108865|(wr.type?1:0):wr.transformFlags=1,wr.typeArguments=void 0,wr.typeParameters=void 0,wr.type=void 0,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr.endFlowNode=void 0,wr.returnFlowNode=void 0,wr}function Ei(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.body!==wr?Ps(li(ye,Ve,Ct,wr),z):z}function Ps(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function Xa(z,ye,Ve){let Ct=ce(179);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function ac(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Xa(ye,Ve,Ct),z):z}function Yl(z,ye,Ve){let Ct=ce(180);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wc(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Yl(ye,Ve,Ct),z):z}function Sg(z,ye,Ve){let Ct=ce(181);return Ct.modifiers=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Ul(z,ye,Ve,Ct){return z.parameters!==Ve||z.type!==Ct||z.modifiers!==ye?fe(Sg(ye,Ve,Ct),z):z}function Xu(z,ye){let Ve=ne(204);return Ve.type=z,Ve.literal=ye,Ve.transformFlags=1,Ve}function Da(z,ye,Ve){return z.type!==ye||z.literal!==Ve?Eo(Xu(ye,Ve),z):z}function pu(z){return Xt(z)}function _g(z,ye,Ve){let Ct=ne(182);return Ct.assertsModifier=z,Ct.parameterName=EI(ye),Ct.type=Ve,Ct.transformFlags=1,Ct}function mI(z,ye,Ve,Ct){return z.assertsModifier!==ye||z.parameterName!==Ve||z.type!==Ct?Eo(_g(ye,Ve,Ct),z):z}function Qh(z,ye){let Ve=ne(183);return Ve.typeName=EI(z),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ae(ye)),Ve.transformFlags=1,Ve}function Ri(z,ye,Ve){return z.typeName!==ye||z.typeArguments!==Ve?Eo(Qh(ye,Ve),z):z}function Do(z,ye,Ve){let Ct=ce(184);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.modifiers=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wt(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Hu(Do(ye,Ve,Ct),z):z}function Hu(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),fe(z,ye)}function Ru(...z){return z.length===4?Vs(...z):z.length===3?Ju(...z):Zo.fail("Incorrect number of arguments specified.")}function Vs(z,ye,Ve,Ct){let wr=ce(185);return wr.modifiers=IA(z),wr.typeParameters=IA(ye),wr.parameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.typeArguments=void 0,wr}function Ju(z,ye,Ve){return Vs(void 0,z,ye,Ve)}function Yn(...z){return z.length===5?Ko(...z):z.length===4?Eg(...z):Zo.fail("Incorrect number of arguments specified.")}function Ko(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr?fe(Ru(ye,Ve,Ct,wr),z):z}function Eg(z,ye,Ve,Ct){return Ko(z,z.modifiers,ye,Ve,Ct)}function OA(z,ye){let Ve=ne(186);return Ve.exprName=z,Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags=1,Ve}function GA(z,ye,Ve){return z.exprName!==ye||z.typeArguments!==Ve?Eo(OA(ye,Ve),z):z}function $i(z){let ye=ce(187);return ye.members=ae(z),ye.transformFlags=1,ye}function dl(z,ye){return z.members!==ye?Eo($i(ye),z):z}function Uf(z){let ye=ne(188);return ye.elementType=n().parenthesizeNonArrayTypeOfPostfixType(z),ye.transformFlags=1,ye}function Kd(z,ye){return z.elementType!==ye?Eo(Uf(ye),z):z}function oA(z){let ye=ne(189);return ye.elements=ae(n().parenthesizeElementTypesOfTupleType(z)),ye.transformFlags=1,ye}function oo(z,ye){return z.elements!==ye?Eo(oA(ye),z):z}function Ki(z,ye,Ve,Ct){let wr=ce(202);return wr.dotDotDotToken=z,wr.name=ye,wr.questionToken=Ve,wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr}function cc(z,ye,Ve,Ct,wr){return z.dotDotDotToken!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Eo(Ki(ye,Ve,Ct,wr),z):z}function Xs(z){let ye=ne(190);return ye.type=n().parenthesizeTypeOfOptionalType(z),ye.transformFlags=1,ye}function ws(z,ye){return z.type!==ye?Eo(Xs(ye),z):z}function Gs(z){let ye=ne(191);return ye.type=z,ye.transformFlags=1,ye}function Ma(z,ye){return z.type!==ye?Eo(Gs(ye),z):z}function Dc(z,ye,Ve){let Ct=ne(z);return Ct.types=X.createNodeArray(Ve(ye)),Ct.transformFlags=1,Ct}function As(z,ye,Ve){return z.types!==ye?Eo(Dc(z.kind,ye,Ve),z):z}function Tf(z){return Dc(192,z,n().parenthesizeConstituentTypesOfUnionType)}function cm(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfUnionType)}function Fl(z){return Dc(193,z,n().parenthesizeConstituentTypesOfIntersectionType)}function rc(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfIntersectionType)}function sd(z,ye,Ve,Ct){let wr=ne(194);return wr.checkType=n().parenthesizeCheckTypeOfConditionalType(z),wr.extendsType=n().parenthesizeExtendsTypeOfConditionalType(ye),wr.trueType=Ve,wr.falseType=Ct,wr.transformFlags=1,wr.locals=void 0,wr.nextContainer=void 0,wr}function Om(z,ye,Ve,Ct,wr){return z.checkType!==ye||z.extendsType!==Ve||z.trueType!==Ct||z.falseType!==wr?Eo(sd(ye,Ve,Ct,wr),z):z}function il(z){let ye=ne(195);return ye.typeParameter=z,ye.transformFlags=1,ye}function FA(z,ye){return z.typeParameter!==ye?Eo(il(ye),z):z}function ZA(z,ye){let Ve=ne(203);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags=1,Ve}function El(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo(ZA(ye,Ve),z):z}function yg(z,ye,Ve,Ct,wr=!1){let ai=ne(205);return ai.argument=z,ai.attributes=ye,ai.assertions&&ai.assertions.assertClause&&ai.attributes&&(ai.assertions.assertClause=ai.attributes),ai.qualifier=Ve,ai.typeArguments=Ct&&n().parenthesizeTypeArguments(Ct),ai.isTypeOf=wr,ai.transformFlags=1,ai}function Mp(z,ye,Ve,Ct,wr,ai=z.isTypeOf){return z.argument!==ye||z.attributes!==Ve||z.qualifier!==Ct||z.typeArguments!==wr||z.isTypeOf!==ai?Eo(yg(ye,Ve,Ct,wr,ai),z):z}function MA(z){let ye=ne(196);return ye.type=z,ye.transformFlags=1,ye}function Er(z,ye){return z.type!==ye?Eo(MA(ye),z):z}function Zt(){let z=ne(197);return z.transformFlags=1,z}function yn(z,ye){let Ve=ne(198);return Ve.operator=z,Ve.type=z===148?n().parenthesizeOperandOfReadonlyTypeOperator(ye):n().parenthesizeOperandOfTypeOperator(ye),Ve.transformFlags=1,Ve}function ls(z,ye){return z.type!==ye?Eo(yn(z.operator,ye),z):z}function oa(z,ye){let Ve=ne(199);return Ve.objectType=n().parenthesizeNonArrayTypeOfPostfixType(z),Ve.indexType=ye,Ve.transformFlags=1,Ve}function Fs(z,ye,Ve){return z.objectType!==ye||z.indexType!==Ve?Eo(oa(ye,Ve),z):z}function Wa(z,ye,Ve,Ct,wr,ai){let Lo=ce(200);return Lo.readonlyToken=z,Lo.typeParameter=ye,Lo.nameType=Ve,Lo.questionToken=Ct,Lo.type=wr,Lo.members=ai&&ae(ai),Lo.transformFlags=1,Lo.locals=void 0,Lo.nextContainer=void 0,Lo}function Ca(z,ye,Ve,Ct,wr,ai,Lo){return z.readonlyToken!==ye||z.typeParameter!==Ve||z.nameType!==Ct||z.questionToken!==wr||z.type!==ai||z.members!==Lo?Eo(Wa(ye,Ve,Ct,wr,ai,Lo),z):z}function ld(z){let ye=ne(201);return ye.literal=z,ye.transformFlags=1,ye}function Rp(z,ye){return z.literal!==ye?Eo(ld(ye),z):z}function np(z){let ye=ne(206);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye.transformFlags&32768&&(ye.transformFlags|=65664),ye}function HA(z,ye){return z.elements!==ye?Eo(np(ye),z):z}function df(z){let ye=ne(207);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye}function Zs(z,ye){return z.elements!==ye?Eo(df(ye),z):z}function so(z,ye,Ve,Ct){let wr=ce(208);return wr.dotDotDotToken=z,wr.propertyName=EI(ye),wr.name=EI(Ve),wr.initializer=wA(Ct),wr.transformFlags|=$o(wr.dotDotDotToken)|pO(wr.propertyName)|pO(wr.name)|$o(wr.initializer)|(wr.dotDotDotToken?32768:0)|1024,wr.flowNode=void 0,wr}function Ea(z,ye,Ve,Ct,wr){return z.propertyName!==Ve||z.dotDotDotToken!==ye||z.name!==Ct||z.initializer!==wr?Eo(so(ye,Ve,Ct,wr),z):z}function Ml(z,ye){let Ve=ne(209),Ct=z&&Vme(z),wr=ae(z,Ct&&oec(Ct)?!0:void 0);return Ve.elements=n().parenthesizeExpressionsOfCommaDelimitedList(wr),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.elements),Ve}function Dr(z,ye){return z.elements!==ye?Eo(Ml(ye,z.multiLine),z):z}function Wn(z,ye){let Ve=ce(210);return Ve.properties=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.properties),Ve.jsDoc=void 0,Ve}function di(z,ye){return z.properties!==ye?Eo(Wn(ye,z.multiLine),z):z}function aa(z,ye,Ve){let Ct=ce(211);return Ct.expression=z,Ct.questionDotToken=ye,Ct.name=Ve,Ct.transformFlags=$o(Ct.expression)|$o(Ct.questionDotToken)|($C(Ct.name)?_Ne(Ct.name):$o(Ct.name)|536870912),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function Bo(z,ye){let Ve=aa(n().parenthesizeLeftSideOfAccess(z,!1),void 0,EI(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function us(z,ye,Ve){return hza(z)?LA(z,ye,z.questionDotToken,Aj(Ve,$C)):z.expression!==ye||z.name!==Ve?Eo(Bo(ye,Ve),z):z}function Ql(z,ye,Ve){let Ct=aa(n().parenthesizeLeftSideOfAccess(z,!0),ye,EI(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function LA(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.name!==Ct?Eo(Ql(ye,Ve,Ct),z):z}function pf(z,ye,Ve){let Ct=ce(212);return Ct.expression=z,Ct.questionDotToken=ye,Ct.argumentExpression=Ve,Ct.transformFlags|=$o(Ct.expression)|$o(Ct.questionDotToken)|$o(Ct.argumentExpression),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ef(z,ye){let Ve=pf(n().parenthesizeLeftSideOfAccess(z,!1),void 0,zd(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function ip(z,ye,Ve){return mza(z)?j1(z,ye,z.questionDotToken,Ve):z.expression!==ye||z.argumentExpression!==Ve?Eo(ef(ye,Ve),z):z}function _d(z,ye,Ve){let Ct=pf(n().parenthesizeLeftSideOfAccess(z,!0),ye,zd(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function j1(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.argumentExpression!==Ct?Eo(_d(ye,Ve,Ct),z):z}function pw(z,ye,Ve,Ct){let wr=ce(213);return wr.expression=z,wr.questionDotToken=ye,wr.typeArguments=Ve,wr.arguments=Ct,wr.transformFlags|=$o(wr.expression)|$o(wr.questionDotToken)|qA(wr.typeArguments)|qA(wr.arguments),wr.typeArguments&&(wr.transformFlags|=1),Q2i(wr.expression)&&(wr.transformFlags|=16384),wr}function YA(z,ye,Ve){let Ct=pw(n().parenthesizeLeftSideOfAccess(z,!1),void 0,IA(ye),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ve)));return R$a(Ct.expression)&&(Ct.transformFlags|=8388608),Ct}function Ac(z,ye,Ve,Ct){return V2i(z)?HS(z,ye,z.questionDotToken,Ve,Ct):z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(YA(ye,Ve,Ct),z):z}function Nm(z,ye,Ve,Ct){let wr=pw(n().parenthesizeLeftSideOfAccess(z,!0),ye,IA(Ve),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ct)));return wr.flags|=64,wr.transformFlags|=32,wr}function HS(z,ye,Ve,Ct,wr){return Zo.assert(!!(z.flags&64),"Cannot update a CallExpression using updateCallChain. Use updateCall instead."),z.expression!==ye||z.questionDotToken!==Ve||z.typeArguments!==Ct||z.arguments!==wr?Eo(Nm(ye,Ve,Ct,wr),z):z}function jd(z,ye,Ve){let Ct=ce(214);return Ct.expression=n().parenthesizeExpressionOfNew(z),Ct.typeArguments=IA(ye),Ct.arguments=Ve?n().parenthesizeExpressionsOfCommaDelimitedList(Ve):void 0,Ct.transformFlags|=$o(Ct.expression)|qA(Ct.typeArguments)|qA(Ct.arguments)|32,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function dh(z,ye,Ve,Ct){return z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(jd(ye,Ve,Ct),z):z}function Hp(z,ye,Ve){let Ct=ne(215);return Ct.tag=n().parenthesizeLeftSideOfAccess(z,!1),Ct.typeArguments=IA(ye),Ct.template=Ve,Ct.transformFlags|=$o(Ct.tag)|qA(Ct.typeArguments)|$o(Ct.template)|1024,Ct.typeArguments&&(Ct.transformFlags|=1),vqa(Ct.template)&&(Ct.transformFlags|=128),Ct}function uC(z,ye,Ve,Ct){return z.tag!==ye||z.typeArguments!==Ve||z.template!==Ct?Eo(Hp(ye,Ve,Ct),z):z}function nE(z,ye){let Ve=ne(216);return Ve.expression=n().parenthesizeOperandOfPrefixUnary(ye),Ve.type=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function J_(z,ye,Ve){return z.type!==ye||z.expression!==Ve?Eo(nE(ye,Ve),z):z}function q0(z){let ye=ne(217);return ye.expression=z,ye.transformFlags=$o(ye.expression),ye.jsDoc=void 0,ye}function XE(z,ye){return z.expression!==ye?Eo(q0(ye),z):z}function TC(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(218);Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo;let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;return Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304,Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.flowNode=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function t_(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.name!==Ct||z.modifiers!==ye||z.asteriskToken!==Ve||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?fe(TC(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function cp(z,ye,Ve,Ct,wr,ai){let Lo=ce(219);Lo.modifiers=IA(z),Lo.typeParameters=IA(ye),Lo.parameters=ae(Ve),Lo.type=Ct,Lo.equalsGreaterThanToken=wr??Xt(39),Lo.body=n().parenthesizeConciseBodyOfArrowFunction(ai);let Hc=fO(Lo.modifiers)&1024;return Lo.transformFlags=qA(Lo.modifiers)|qA(Lo.typeParameters)|qA(Lo.parameters)|$o(Lo.type)|$o(Lo.equalsGreaterThanToken)|$o(Lo.body)&-67108865|(Lo.typeParameters||Lo.type?1:0)|(Hc?16640:0)|1024,Lo.typeArguments=void 0,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.flowNode=void 0,Lo.endFlowNode=void 0,Lo.returnFlowNode=void 0,Lo}function Mm(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr||z.equalsGreaterThanToken!==ai||z.body!==Lo?fe(cp(ye,Ve,Ct,wr,ai,Lo),z):z}function fb(z){let ye=ne(220);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function pe(z,ye){return z.expression!==ye?Eo(fb(ye),z):z}function lm(z){let ye=ne(221);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function Kf(z,ye){return z.expression!==ye?Eo(lm(ye),z):z}function CI(z){let ye=ne(222);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function _I(z,ye){return z.expression!==ye?Eo(CI(ye),z):z}function H2(z){let ye=ne(223);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression)|256|128|2097152,ye}function iE(z,ye){return z.expression!==ye?Eo(H2(ye),z):z}function se(z,ye){let Ve=ne(224);return Ve.operator=z,Ve.operand=n().parenthesizeOperandOfPrefixUnary(ye),Ve.transformFlags|=$o(Ve.operand),(z===46||z===47)&&$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function O(z,ye){return z.operand!==ye?Eo(se(z.operator,ye),z):z}function K(z,ye){let Ve=ne(225);return Ve.operator=ye,Ve.operand=n().parenthesizeOperandOfPostfixUnary(z),Ve.transformFlags|=$o(Ve.operand),$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function we(z,ye){return z.operand!==ye?Eo(K(ye,z.operator),z):z}function gt(z,ye,Ve){let Ct=ce(226),wr=qR(ye),ai=wr.kind;return Ct.left=n().parenthesizeLeftSideOfBinary(ai,z),Ct.operatorToken=wr,Ct.right=n().parenthesizeRightSideOfBinary(ai,Ct.left,Ve),Ct.transformFlags|=$o(Ct.left)|$o(Ct.operatorToken)|$o(Ct.right),ai===61?Ct.transformFlags|=32:ai===64?oBi(Ct.left)?Ct.transformFlags|=5248|sr(Ct.left):tec(Ct.left)&&(Ct.transformFlags|=5120|sr(Ct.left)):ai===43||ai===68?Ct.transformFlags|=512:Zqa(ai)&&(Ct.transformFlags|=16),ai===103&&Yme(Ct.left)&&(Ct.transformFlags|=536870912),Ct.jsDoc=void 0,Ct}function sr(z){return SBi(z)?65536:0}function Yr(z,ye,Ve,Ct){return z.left!==ye||z.operatorToken!==Ve||z.right!==Ct?Eo(gt(ye,Ve,Ct),z):z}function Lr(z,ye,Ve,Ct,wr){let ai=ne(227);return ai.condition=n().parenthesizeConditionOfConditionalExpression(z),ai.questionToken=ye??Xt(58),ai.whenTrue=n().parenthesizeBranchOfConditionalExpression(Ve),ai.colonToken=Ct??Xt(59),ai.whenFalse=n().parenthesizeBranchOfConditionalExpression(wr),ai.transformFlags|=$o(ai.condition)|$o(ai.questionToken)|$o(ai.whenTrue)|$o(ai.colonToken)|$o(ai.whenFalse),ai}function fi(z,ye,Ve,Ct,wr,ai){return z.condition!==ye||z.questionToken!==Ve||z.whenTrue!==Ct||z.colonToken!==wr||z.whenFalse!==ai?Eo(Lr(ye,Ve,Ct,wr,ai),z):z}function $n(z,ye){let Ve=ne(228);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags|=$o(Ve.head)|qA(Ve.templateSpans)|1024,Ve}function ra(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo($n(ye,Ve),z):z}function kc(z,ye,Ve,Ct=0){Zo.assert(!(Ct&-7177),"Unsupported template flags.");let wr;if(Ve!==void 0&&Ve!==ye&&(wr=m$a(z,Ve),typeof wr=="object"))return Zo.fail("Invalid raw text");if(ye===void 0){if(wr===void 0)return Zo.fail("Arguments 'text' and 'rawText' may not both be undefined.");ye=wr}else wr!==void 0&&Zo.assert(ye===wr,"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");return ye}function Nl(z){let ye=1024;return z&&(ye|=128),ye}function ca(z,ye,Ve,Ct){let wr=qt(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function Bl(z,ye,Ve,Ct){let wr=ce(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function $g(z,ye,Ve,Ct){return z===15?Bl(z,ye,Ve,Ct):ca(z,ye,Ve,Ct)}function SA(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(16,z,ye,Ve)}function lI(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(17,z,ye,Ve)}function lp(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(18,z,ye,Ve)}function Ib(z,ye,Ve){return z=kc(16,z,ye,Ve),Bl(15,z,ye,Ve)}function Na(z,ye){Zo.assert(!z||!!ye,"A `YieldExpression` with an asteriskToken must have an expression.");let Ve=ne(229);return Ve.expression=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.asteriskToken=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.asteriskToken)|1024|128|1048576,Ve}function wd(z,ye,Ve){return z.expression!==Ve||z.asteriskToken!==ye?Eo(Na(ye,Ve),z):z}function z1(z){let ye=ne(230);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|1024|32768,ye}function T_(z,ye){return z.expression!==ye?Eo(z1(ye),z):z}function RC(z,ye,Ve,Ct,wr){let ai=ce(231);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.jsDoc=void 0,ai}function Hm(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(RC(ye,Ve,Ct,wr,ai),z):z}function YS(){return ne(232)}function Fg(z,ye){let Ve=ne(233);return Ve.expression=n().parenthesizeLeftSideOfAccess(z,!1),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.typeArguments)|1024,Ve}function hb(z,ye,Ve){return z.expression!==ye||z.typeArguments!==Ve?Eo(Fg(ye,Ve),z):z}function gC(z,ye){let Ve=ne(234);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function NC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(gC(ye,Ve),z):z}function Y2(z){let ye=ne(235);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1,ye}function U_(z,ye){return Cza(z)?ph(z,ye):z.expression!==ye?Eo(Y2(ye),z):z}function DC(z,ye){let Ve=ne(238);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function kC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(DC(ye,Ve),z):z}function qI(z){let ye=ne(235);return ye.flags|=64,ye.expression=n().parenthesizeLeftSideOfAccess(z,!0),ye.transformFlags|=$o(ye.expression)|1,ye}function ph(z,ye){return Zo.assert(!!(z.flags&64),"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."),z.expression!==ye?Eo(qI(ye),z):z}function vA(z,ye){let Ve=ne(236);switch(Ve.keywordToken=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.name),z){case 105:Ve.transformFlags|=1024;break;case 102:Ve.transformFlags|=32;break;default:return Zo.assertNever(z)}return Ve.flowNode=void 0,Ve}function Td(z,ye){return z.name!==ye?Eo(vA(z.keywordToken,ye),z):z}function Mc(z,ye){let Ve=ne(239);return Ve.expression=z,Ve.literal=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.literal)|1024,Ve}function Pf(z,ye,Ve){return z.expression!==ye||z.literal!==Ve?Eo(Mc(ye,Ve),z):z}function sE(){let z=ne(240);return z.transformFlags|=1024,z}function eA(z,ye){let Ve=ne(241);return Ve.statements=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.statements),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function QS(z,ye){return z.statements!==ye?Eo(eA(ye,z.multiLine),z):z}function XS(z,ye){let Ve=ne(243);return Ve.modifiers=IA(z),Ve.declarationList=Tee(ye)?Th(ye):ye,Ve.transformFlags|=qA(Ve.modifiers)|$o(Ve.declarationList),fO(Ve.modifiers)&128&&(Ve.transformFlags=1),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function um(z,ye,Ve){return z.modifiers!==ye||z.declarationList!==Ve?Eo(XS(ye,Ve),z):z}function gm(){let z=ne(242);return z.jsDoc=void 0,z}function cs(z){let ye=ne(244);return ye.expression=n().parenthesizeExpressionOfExpressionStatement(z),ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function na(z,ye){return z.expression!==ye?Eo(cs(ye),z):z}function ko(z,ye,Ve){let Ct=ne(245);return Ct.expression=z,Ct.thenStatement=sy(ye),Ct.elseStatement=sy(Ve),Ct.transformFlags|=$o(Ct.expression)|$o(Ct.thenStatement)|$o(Ct.elseStatement),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ki(z,ye,Ve,Ct){return z.expression!==ye||z.thenStatement!==Ve||z.elseStatement!==Ct?Eo(ko(ye,Ve,Ct),z):z}function Kl(z,ye){let Ve=ne(246);return Ve.statement=sy(z),Ve.expression=ye,Ve.transformFlags|=$o(Ve.statement)|$o(Ve.expression),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function fd(z,ye,Ve){return z.statement!==ye||z.expression!==Ve?Eo(Kl(ye,Ve),z):z}function jf(z,ye){let Ve=ne(247);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Ld(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(jf(ye,Ve),z):z}function AC(z,ye,Ve,Ct){let wr=ne(248);return wr.initializer=z,wr.condition=ye,wr.incrementor=Ve,wr.statement=sy(Ct),wr.transformFlags|=$o(wr.initializer)|$o(wr.condition)|$o(wr.incrementor)|$o(wr.statement),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function JE(z,ye,Ve,Ct,wr){return z.initializer!==ye||z.condition!==Ve||z.incrementor!==Ct||z.statement!==wr?Eo(AC(ye,Ve,Ct,wr),z):z}function Ym(z,ye,Ve){let Ct=ne(249);return Ct.initializer=z,Ct.expression=ye,Ct.statement=sy(Ve),Ct.transformFlags|=$o(Ct.initializer)|$o(Ct.expression)|$o(Ct.statement),Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.flowNode=void 0,Ct}function vy(z,ye,Ve,Ct){return z.initializer!==ye||z.expression!==Ve||z.statement!==Ct?Eo(Ym(ye,Ve,Ct),z):z}function K_(z,ye,Ve,Ct){let wr=ne(250);return wr.awaitModifier=z,wr.initializer=ye,wr.expression=n().parenthesizeExpressionForDisallowedComma(Ve),wr.statement=sy(Ct),wr.transformFlags|=$o(wr.awaitModifier)|$o(wr.initializer)|$o(wr.expression)|$o(wr.statement)|1024,z&&(wr.transformFlags|=128),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function od(z,ye,Ve,Ct,wr){return z.awaitModifier!==ye||z.initializer!==Ve||z.expression!==Ct||z.statement!==wr?Eo(K_(ye,Ve,Ct,wr),z):z}function UE(z){let ye=ne(251);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function KE(z,ye){return z.label!==ye?Eo(UE(ye),z):z}function Yp(z){let ye=ne(252);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function JS(z,ye){return z.label!==ye?Eo(Yp(ye),z):z}function By(z){let ye=ne(253);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|128|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function $0(z,ye){return z.expression!==ye?Eo(By(ye),z):z}function fw(z,ye){let Ve=ne(254);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Q2(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(fw(ye,Ve),z):z}function xc(z,ye){let Ve=ne(255);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.caseBlock=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.caseBlock),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve.possiblyExhaustive=!1,Ve}function ut(z,ye,Ve){return z.expression!==ye||z.caseBlock!==Ve?Eo(xc(ye,Ve),z):z}function ar(z,ye){let Ve=ne(256);return Ve.label=EI(z),Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.label)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Jr(z,ye,Ve){return z.label!==ye||z.statement!==Ve?Eo(ar(ye,Ve),z):z}function Gn(z){let ye=ne(257);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function Ts(z,ye){return z.expression!==ye?Eo(Gn(ye),z):z}function Qo(z,ye,Ve){let Ct=ne(258);return Ct.tryBlock=z,Ct.catchClause=ye,Ct.finallyBlock=Ve,Ct.transformFlags|=$o(Ct.tryBlock)|$o(Ct.catchClause)|$o(Ct.finallyBlock),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function vg(z,ye,Ve,Ct){return z.tryBlock!==ye||z.catchClause!==Ve||z.finallyBlock!==Ct?Eo(Qo(ye,Ve,Ct),z):z}function Ng(){let z=ne(259);return z.jsDoc=void 0,z.flowNode=void 0,z}function Rf(z,ye,Ve,Ct){let wr=ce(260);return wr.name=EI(z),wr.exclamationToken=ye,wr.type=Ve,wr.initializer=wA(Ct),wr.transformFlags|=pO(wr.name)|$o(wr.initializer)|(wr.exclamationToken??wr.type?1:0),wr.jsDoc=void 0,wr}function uI(z,ye,Ve,Ct,wr){return z.name!==ye||z.type!==Ct||z.exclamationToken!==Ve||z.initializer!==wr?Eo(Rf(ye,Ve,Ct,wr),z):z}function Th(z,ye=0){let Ve=ne(261);return Ve.flags|=ye&7,Ve.declarations=ae(z),Ve.transformFlags|=qA(Ve.declarations)|4194304,ye&7&&(Ve.transformFlags|=263168),ye&4&&(Ve.transformFlags|=4),Ve}function oE(z,ye){return z.declarations!==ye?Eo(Th(ye,z.flags),z):z}function TT(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(262);if(Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo,!Hc.body||fO(Hc.modifiers)&128)Hc.transformFlags=1;else{let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304}return Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function sB(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?RT(TT(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function RT(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),fe(z,ye)}function wy(z,ye,Ve,Ct,wr){let ai=ce(263);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),fO(ai.modifiers)&128?ai.transformFlags=1:(ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.transformFlags&8192&&(ai.transformFlags|=1)),ai.jsDoc=void 0,ai}function jE(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(wy(ye,Ve,Ct,wr,ai),z):z}function j_(z,ye,Ve,Ct,wr){let ai=ce(264);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags=1,ai.jsDoc=void 0,ai}function NT(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(j_(ye,Ve,Ct,wr,ai),z):z}function tf(z,ye,Ve,Ct){let wr=ce(265);return wr.modifiers=IA(z),wr.name=EI(ye),wr.typeParameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function Ty(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.type!==wr?Eo(tf(ye,Ve,Ct,wr),z):z}function US(z,ye,Ve){let Ct=ce(266);return Ct.modifiers=IA(z),Ct.name=EI(ye),Ct.members=ae(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.name)|qA(Ct.members)|1,Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $I(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.members!==Ct?Eo(US(ye,Ve,Ct),z):z}function BA(z,ye,Ve,Ct=0){let wr=ce(267);return wr.modifiers=IA(z),wr.flags|=Ct&2088,wr.name=ye,wr.body=Ve,fO(wr.modifiers)&128?wr.transformFlags=1:wr.transformFlags|=qA(wr.modifiers)|$o(wr.name)|$o(wr.body)|1,wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function $A(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.body!==Ct?Eo(BA(ye,Ve,Ct,z.flags),z):z}function Qm(z){let ye=ne(268);return ye.statements=ae(z),ye.transformFlags|=qA(ye.statements),ye.jsDoc=void 0,ye}function zf(z,ye){return z.statements!==ye?Eo(Qm(ye),z):z}function mb(z){let ye=ne(269);return ye.clauses=ae(z),ye.transformFlags|=qA(ye.clauses),ye.locals=void 0,ye.nextContainer=void 0,ye}function R_(z,ye){return z.clauses!==ye?Eo(mb(ye),z):z}function Cb(z){let ye=ce(270);return ye.name=EI(z),ye.transformFlags|=_Ne(ye.name)|1,ye.modifiers=void 0,ye.jsDoc=void 0,ye}function Ry(z,ye){return z.name!==ye?KS(Cb(ye),z):z}function KS(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function _b(z,ye,Ve,Ct){let wr=ce(271);return wr.modifiers=IA(z),wr.name=EI(Ve),wr.isTypeOnly=ye,wr.moduleReference=Ct,wr.transformFlags|=qA(wr.modifiers)|_Ne(wr.name)|$o(wr.moduleReference),mBi(wr.moduleReference)||(wr.transformFlags|=1),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function z_(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.name!==Ct||z.moduleReference!==wr?Eo(_b(ye,Ve,Ct,wr),z):z}function zE(z,ye,Ve,Ct){let wr=ne(272);return wr.modifiers=IA(z),wr.importClause=ye,wr.moduleSpecifier=Ve,wr.attributes=wr.assertClause=Ct,wr.transformFlags|=$o(wr.importClause)|$o(wr.moduleSpecifier),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function oB(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(zE(ye,Ve,Ct,wr),z):z}function DT(z,ye,Ve){let Ct=ce(273);return Ct.isTypeOnly=z,Ct.name=ye,Ct.namedBindings=Ve,Ct.transformFlags|=$o(Ct.name)|$o(Ct.namedBindings),z&&(Ct.transformFlags|=1),Ct.transformFlags&=-67108865,Ct}function aB(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.name!==Ve||z.namedBindings!==Ct?Eo(DT(ye,Ve,Ct),z):z}function jS(z,ye){let Ve=ne(300);return Ve.elements=ae(z),Ve.multiLine=ye,Ve.token=132,Ve.transformFlags|=4,Ve}function XR(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(jS(ye,Ve),z):z}function zS(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function qE(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(zS(ye,Ve),z):z}function X2(z,ye){let Ve=ne(302);return Ve.assertClause=z,Ve.multiLine=ye,Ve}function kT(z,ye,Ve){return z.assertClause!==ye||z.multiLine!==Ve?Eo(X2(ye,Ve),z):z}function pn(z,ye,Ve){let Ct=ne(300);return Ct.token=Ve??118,Ct.elements=ae(z),Ct.multiLine=ye,Ct.transformFlags|=4,Ct}function q1(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(pn(ye,Ve,z.token),z):z}function J2(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function ey(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(J2(ye,Ve),z):z}function up(z){let ye=ce(274);return ye.name=z,ye.transformFlags|=$o(ye.name),ye.transformFlags&=-67108865,ye}function Iw(z,ye){return z.name!==ye?Eo(up(ye),z):z}function cB(z){let ye=ce(280);return ye.name=z,ye.transformFlags|=$o(ye.name)|32,ye.transformFlags&=-67108865,ye}function RD(z,ye){return z.name!==ye?Eo(cB(ye),z):z}function Rd(z){let ye=ne(275);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function JR(z,ye){return z.elements!==ye?Eo(Rd(ye),z):z}function ty(z,ye,Ve){let Ct=ce(276);return Ct.isTypeOnly=z,Ct.propertyName=ye,Ct.name=Ve,Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct}function cF(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(ty(ye,Ve,Ct),z):z}function $1(z,ye,Ve){let Ct=ce(277);return Ct.modifiers=IA(z),Ct.isExportEquals=ye,Ct.expression=ye?n().parenthesizeRightSideOfBinary(64,void 0,Ve):n().parenthesizeExpressionOfExportDefault(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.expression),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $E(z,ye,Ve){return z.modifiers!==ye||z.expression!==Ve?Eo($1(ye,z.isExportEquals,Ve),z):z}function N_(z,ye,Ve,Ct,wr){let ai=ce(278);return ai.modifiers=IA(z),ai.isTypeOnly=ye,ai.exportClause=Ve,ai.moduleSpecifier=Ct,ai.attributes=ai.assertClause=wr,ai.transformFlags|=qA(ai.modifiers)|$o(ai.exportClause)|$o(ai.moduleSpecifier),ai.transformFlags&=-67108865,ai.jsDoc=void 0,ai}function e1(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.exportClause!==Ct||z.moduleSpecifier!==wr||z.attributes!==ai?t1(N_(ye,Ve,Ct,wr,ai),z):z}function t1(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),Eo(z,ye)}function ry(z){let ye=ne(279);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function xT(z,ye){return z.elements!==ye?Eo(ry(ye),z):z}function yb(z,ye,Ve){let Ct=ne(281);return Ct.isTypeOnly=z,Ct.propertyName=EI(ye),Ct.name=EI(Ve),Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function r_(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(yb(ye,Ve,Ct),z):z}function Rh(){let z=ce(282);return z.jsDoc=void 0,z}function bb(z){let ye=ne(283);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.transformFlags&=-67108865,ye}function lB(z,ye){return z.expression!==ye?Eo(bb(ye),z):z}function ND(z){return ne(z)}function DD(z,ye,Ve=!1){let Ct=q_(z,Ve?ye&&n().parenthesizeNonArrayTypeOfPostfixType(ye):ye);return Ct.postfix=Ve,Ct}function q_(z,ye){let Ve=ne(z);return Ve.type=ye,Ve}function kD(z,ye,Ve){return ye.type!==Ve?Eo(DD(z,Ve,ye.postfix),ye):ye}function UR(z,ye,Ve){return ye.type!==Ve?Eo(q_(z,Ve),ye):ye}function lc(z,ye){let Ve=ce(317);return Ve.parameters=IA(z),Ve.type=ye,Ve.transformFlags=qA(Ve.parameters)|(Ve.type?1:0),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve.typeArguments=void 0,Ve}function fh(z,ye,Ve){return z.parameters!==ye||z.type!==Ve?Eo(lc(ye,Ve),z):z}function rf(z,ye=!1){let Ve=ce(322);return Ve.jsDocPropertyTags=IA(z),Ve.isArrayType=ye,Ve}function yI(z,ye,Ve){return z.jsDocPropertyTags!==ye||z.isArrayType!==Ve?Eo(rf(ye,Ve),z):z}function aE(z){let ye=ne(309);return ye.type=z,ye}function qS(z,ye){return z.type!==ye?Eo(aE(ye),z):z}function Qp(z,ye,Ve){let Ct=ce(323);return Ct.typeParameters=IA(z),Ct.parameters=ae(ye),Ct.type=Ve,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function uB(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Eo(Qp(ye,Ve,Ct),z):z}function Ih(z){let ye=xbt(z.kind);return z.tagName.escapedText===mNe(ye)?z.tagName:je(ye)}function xC(z,ye,Ve){let Ct=ne(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function $_(z,ye,Ve){let Ct=ce(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function r1(z,ye,Ve,Ct){let wr=xC(345,z??je("template"),Ct);return wr.constraint=ye,wr.typeParameters=ae(Ve),wr}function gB(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.constraint!==Ve||z.typeParameters!==Ct||z.comment!==wr?Eo(r1(ye,Ve,Ct,wr),z):z}function hw(z,ye,Ve,Ct){let wr=$_(346,z??je("typedef"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function GT(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(hw(ye,Ve,Ct,wr),z):z}function b0(z,ye,Ve,Ct,wr,ai){let Lo=$_(341,z??je("param"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function ia(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(b0(ye,Ve,Ct,wr,ai,Lo),z):z}function e2(z,ye,Ve,Ct,wr,ai){let Lo=$_(348,z??je("prop"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function yd(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(e2(ye,Ve,Ct,wr,ai,Lo),z):z}function bI(z,ye,Ve,Ct){let wr=$_(338,z??je("callback"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function ag(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(bI(ye,Ve,Ct,wr),z):z}function Eb(z,ye,Ve){let Ct=xC(339,z??je("overload"),Ve);return Ct.typeExpression=ye,Ct}function n1(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Eb(ye,Ve,Ct),z):z}function U2(z,ye,Ve){let Ct=xC(328,z??je("augments"),Ve);return Ct.class=ye,Ct}function e0(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(U2(ye,Ve,Ct),z):z}function n_(z,ye,Ve){let Ct=xC(329,z??je("implements"),Ve);return Ct.class=ye,Ct}function Xp(z,ye,Ve){let Ct=xC(347,z??je("see"),Ve);return Ct.name=ye,Ct}function cE(z,ye,Ve,Ct){return z.tagName!==ye||z.name!==Ve||z.comment!==Ct?Eo(Xp(ye,Ve,Ct),z):z}function lE(z){let ye=ne(310);return ye.name=z,ye}function Ip(z,ye){return z.name!==ye?Eo(lE(ye),z):z}function Xh(z,ye){let Ve=ne(311);return Ve.left=z,Ve.right=ye,Ve.transformFlags|=$o(Ve.left)|$o(Ve.right),Ve}function E0(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Xh(ye,Ve),z):z}function aA(z,ye){let Ve=ne(324);return Ve.name=z,Ve.text=ye,Ve}function fu(z,ye,Ve){return z.name!==ye?Eo(aA(ye,Ve),z):z}function Jp(z,ye){let Ve=ne(325);return Ve.name=z,Ve.text=ye,Ve}function dC(z,ye,Ve){return z.name!==ye?Eo(Jp(ye,Ve),z):z}function uE(z,ye){let Ve=ne(326);return Ve.name=z,Ve.text=ye,Ve}function eh(z,ye,Ve){return z.name!==ye?Eo(uE(ye,Ve),z):z}function Wf(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(n_(ye,Ve,Ct),z):z}function Mo(z,ye,Ve){return xC(z,ye??je(xbt(z)),Ve)}function gp(z,ye,Ve=Ih(ye),Ct){return ye.tagName!==Ve||ye.comment!==Ct?Eo(Mo(z,Ve,Ct),ye):ye}function lF(z,ye,Ve,Ct){let wr=xC(z,ye??je(xbt(z)),Ct);return wr.typeExpression=Ve,wr}function uF(z,ye,Ve=Ih(ye),Ct,wr){return ye.tagName!==Ve||ye.typeExpression!==Ct||ye.comment!==wr?Eo(lF(z,Ve,Ct,wr),ye):ye}function gE(z,ye){return xC(327,z,ye)}function FT(z,ye,Ve){return z.tagName!==ye||z.comment!==Ve?Eo(gE(ye,Ve),z):z}function Np(z,ye,Ve){let Ct=$_(340,z??je(xbt(340)),Ve);return Ct.typeExpression=ye,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function Dm(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Np(ye,Ve,Ct),z):z}function Dp(z,ye,Ve,Ct,wr){let ai=xC(351,z??je("import"),wr);return ai.importClause=ye,ai.moduleSpecifier=Ve,ai.attributes=Ct,ai.comment=wr,ai}function t2(z,ye,Ve,Ct,wr,ai){return z.tagName!==ye||z.comment!==ai||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(Dp(ye,Ve,Ct,wr,ai),z):z}function Ro(z){let ye=ne(321);return ye.text=z,ye}function AE(z,ye){return z.text!==ye?Eo(Ro(ye),z):z}function AB(z,ye){let Ve=ne(320);return Ve.comment=z,Ve.tags=IA(ye),Ve}function Xc(z,ye,Ve){return z.comment!==ye||z.tags!==Ve?Eo(AB(ye,Ve),z):z}function iu(z,ye,Ve){let Ct=ne(284);return Ct.openingElement=z,Ct.children=ae(ye),Ct.closingElement=Ve,Ct.transformFlags|=$o(Ct.openingElement)|qA(Ct.children)|$o(Ct.closingElement)|2,Ct}function dE(z,ye,Ve,Ct){return z.openingElement!==ye||z.children!==Ve||z.closingElement!==Ct?Eo(iu(ye,Ve,Ct),z):z}function yL(z,ye,Ve){let Ct=ne(285);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function KR(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(yL(ye,Ve,Ct),z):z}function Ou(z,ye,Ve){let Ct=ne(286);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,ye&&(Ct.transformFlags|=1),Ct}function ny(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(Ou(ye,Ve,Ct),z):z}function hp(z){let ye=ne(287);return ye.tagName=z,ye.transformFlags|=$o(ye.tagName)|2,ye}function Am(z,ye){return z.tagName!==ye?Eo(hp(ye),z):z}function K2(z,ye,Ve){let Ct=ne(288);return Ct.openingFragment=z,Ct.children=ae(ye),Ct.closingFragment=Ve,Ct.transformFlags|=$o(Ct.openingFragment)|qA(Ct.children)|$o(Ct.closingFragment)|2,Ct}function i_(z,ye,Ve,Ct){return z.openingFragment!==ye||z.children!==Ve||z.closingFragment!==Ct?Eo(K2(ye,Ve,Ct),z):z}function dB(z,ye){let Ve=ne(12);return Ve.text=z,Ve.containsOnlyTriviaWhiteSpaces=!!ye,Ve.transformFlags|=2,Ve}function ZT(z,ye,Ve){return z.text!==ye||z.containsOnlyTriviaWhiteSpaces!==Ve?Eo(dB(ye,Ve),z):z}function Cx(){let z=ne(289);return z.transformFlags|=2,z}function pB(){let z=ne(290);return z.transformFlags|=2,z}function qf(z,ye){let Ve=ce(291);return Ve.name=z,Ve.initializer=ye,Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|2,Ve}function Jh(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(qf(ye,Ve),z):z}function $S(z){let ye=ce(292);return ye.properties=ae(z),ye.transformFlags|=qA(ye.properties)|2,ye}function Sb(z,ye){return z.properties!==ye?Eo($S(ye),z):z}function mp(z){let ye=ne(293);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|2,ye}function r2(z,ye){return z.expression!==ye?Eo(mp(ye),z):z}function i1(z,ye){let Ve=ne(294);return Ve.dotDotDotToken=z,Ve.expression=ye,Ve.transformFlags|=$o(Ve.dotDotDotToken)|$o(Ve.expression)|2,Ve}function Of(z,ye){return z.expression!==ye?Eo(i1(z.dotDotDotToken,ye),z):z}function pE(z,ye){let Ve=ne(295);return Ve.namespace=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.namespace)|$o(Ve.name)|2,Ve}function Vd(z,ye,Ve){return z.namespace!==ye||z.name!==Ve?Eo(pE(ye,Ve),z):z}function j(z,ye){let Ve=ne(296);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.statements=ae(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.statements),Ve.jsDoc=void 0,Ve}function Z(z,ye,Ve){return z.expression!==ye||z.statements!==Ve?Eo(j(ye,Ve),z):z}function Id(z){let ye=ne(297);return ye.statements=ae(z),ye.transformFlags=qA(ye.statements),ye}function fB(z,ye){return z.statements!==ye?Eo(Id(ye),z):z}function ev(z,ye){let Ve=ne(298);switch(Ve.token=z,Ve.types=ae(ye),Ve.transformFlags|=qA(Ve.types),z){case 96:Ve.transformFlags|=1024;break;case 119:Ve.transformFlags|=1;break;default:return Zo.assertNever(z)}return Ve}function Ny(z,ye){return z.types!==ye?Eo(ev(z.token,ye),z):z}function vb(z,ye){let Ve=ne(299);return Ve.variableDeclaration=$2(z),Ve.block=ye,Ve.transformFlags|=$o(Ve.variableDeclaration)|$o(Ve.block)|(z?0:64),Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function xD(z,ye,Ve){return z.variableDeclaration!==ye||z.block!==Ve?Eo(vb(ye,Ve),z):z}function IB(z,ye){let Ve=ce(303);return Ve.name=EI(z),Ve.initializer=n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=pO(Ve.name)|$o(Ve.initializer),Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function Bb(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?bL(IB(ye,Ve),z):z}function bL(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function gF(z,ye){let Ve=ce(304);return Ve.name=EI(z),Ve.objectAssignmentInitializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=_Ne(Ve.name)|$o(Ve.objectAssignmentInitializer)|1024,Ve.equalsToken=void 0,Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function x(z,ye,Ve){return z.name!==ye||z.objectAssignmentInitializer!==Ve?L(gF(ye,Ve),z):z}function L(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken,z.equalsToken=ye.equalsToken),Eo(z,ye)}function te(z){let ye=ce(305);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|128|65536,ye.jsDoc=void 0,ye}function Re(z,ye){return z.expression!==ye?Eo(te(ye),z):z}function Le(z,ye){let Ve=ce(306);return Ve.name=EI(z),Ve.initializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|1,Ve.jsDoc=void 0,Ve}function ft(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(Le(ye,Ve),z):z}function dr(z,ye,Ve){let Ct=t.createBaseSourceFileNode(307);return Ct.statements=ae(z),Ct.endOfFileToken=ye,Ct.flags|=Ve,Ct.text="",Ct.fileName="",Ct.path="",Ct.resolvedPath="",Ct.originalFileName="",Ct.languageVersion=1,Ct.languageVariant=0,Ct.scriptKind=0,Ct.isDeclarationFile=!1,Ct.hasNoDefaultLib=!1,Ct.transformFlags|=qA(Ct.statements)|$o(Ct.endOfFileToken),Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.nodeCount=0,Ct.identifierCount=0,Ct.symbolCount=0,Ct.parseDiagnostics=void 0,Ct.bindDiagnostics=void 0,Ct.bindSuggestionDiagnostics=void 0,Ct.lineMap=void 0,Ct.externalModuleIndicator=void 0,Ct.setExternalModuleIndicator=void 0,Ct.pragmas=void 0,Ct.checkJsDirective=void 0,Ct.referencedFiles=void 0,Ct.typeReferenceDirectives=void 0,Ct.libReferenceDirectives=void 0,Ct.amdDependencies=void 0,Ct.commentDirectives=void 0,Ct.identifiers=void 0,Ct.packageJsonLocations=void 0,Ct.packageJsonScope=void 0,Ct.imports=void 0,Ct.moduleAugmentations=void 0,Ct.ambientModuleNames=void 0,Ct.classifiableNames=void 0,Ct.impliedNodeFormat=void 0,Ct}function Ur(z){let ye=Object.create(z.redirectTarget);return Object.defineProperties(ye,{id:{get(){return this.redirectInfo.redirectTarget.id},set(Ve){this.redirectInfo.redirectTarget.id=Ve}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(Ve){this.redirectInfo.redirectTarget.symbol=Ve}}}),ye.redirectInfo=z,ye}function mi(z){let ye=Ur(z.redirectInfo);return ye.flags|=z.flags&-17,ye.fileName=z.fileName,ye.path=z.path,ye.resolvedPath=z.resolvedPath,ye.originalFileName=z.originalFileName,ye.packageJsonLocations=z.packageJsonLocations,ye.packageJsonScope=z.packageJsonScope,ye.emitNode=void 0,ye}function Vi(z){let ye=t.createBaseSourceFileNode(307);ye.flags|=z.flags&-17;for(let Ve in z)if(!(fj(ye,Ve)||!fj(z,Ve))){if(Ve==="emitNode"){ye.emitNode=void 0;continue}ye[Ve]=z[Ve]}return ye}function Ta(z){let ye=z.redirectInfo?mi(z):Vi(z);return r(ye,z),ye}function Sl(z,ye,Ve,Ct,wr,ai,Lo){let Hc=Ta(z);return Hc.statements=ae(ye),Hc.isDeclarationFile=Ve,Hc.referencedFiles=Ct,Hc.typeReferenceDirectives=wr,Hc.hasNoDefaultLib=ai,Hc.libReferenceDirectives=Lo,Hc.transformFlags=qA(Hc.statements)|$o(Hc.endOfFileToken),Hc}function Ho(z,ye,Ve=z.isDeclarationFile,Ct=z.referencedFiles,wr=z.typeReferenceDirectives,ai=z.hasNoDefaultLib,Lo=z.libReferenceDirectives){return z.statements!==ye||z.isDeclarationFile!==Ve||z.referencedFiles!==Ct||z.typeReferenceDirectives!==wr||z.hasNoDefaultLib!==ai||z.libReferenceDirectives!==Lo?Eo(Sl(z,ye,Ve,Ct,wr,ai,Lo),z):z}function Wg(z){let ye=ne(308);return ye.sourceFiles=z,ye.syntheticFileReferences=void 0,ye.syntheticTypeReferences=void 0,ye.syntheticLibReferences=void 0,ye.hasNoDefaultLib=void 0,ye}function cA(z,ye){return z.sourceFiles!==ye?Eo(Wg(ye),z):z}function th(z,ye=!1,Ve){let Ct=ne(237);return Ct.type=z,Ct.isSpread=ye,Ct.tupleNameSource=Ve,Ct}function xn(z){let ye=ne(352);return ye._children=z,ye}function rn(z){let ye=ne(353);return ye.original=z,zZ(ye,z),ye}function Ci(z,ye){let Ve=ne(355);return Ve.expression=z,Ve.original=ye,Ve.transformFlags|=$o(Ve.expression)|1,zZ(Ve,ye),Ve}function Po(z,ye){return z.expression!==ye?Eo(Ci(ye,z.original),z):z}function ec(){return ne(354)}function Ra(z){if(CNe(z)&&!Qbt(z)&&!z.original&&!z.emitNode&&!z.id){if(lec(z))return z.elements;if(DNe(z)&&w$a(z.operatorToken))return[z.left,z.right]}return z}function dc(z){let ye=ne(356);return ye.elements=ae(P6a(z,Ra)),ye.transformFlags|=qA(ye.elements),ye}function Iu(z,ye){return z.elements!==ye?Eo(dc(ye),z):z}function Cl(z,ye){let Ve=ne(357);return Ve.expression=z,Ve.thisArg=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.thisArg),Ve}function wl(z,ye,Ve){return z.expression!==ye||z.thisArg!==Ve?Eo(Cl(ye,Ve),z):z}function $f(z){let ye=ct(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function j2(z){let ye=ct(z.escapedText);ye.flags|=z.flags&-17,ye.jsDoc=z.jsDoc,ye.flowNode=z.flowNode,ye.symbol=z.symbol,ye.transformFlags=z.transformFlags,r(ye,z);let Ve=getIdentifierTypeArguments(z);return Ve&&setIdentifierTypeArguments(ye,Ve),ye}function _x(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function z2(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),ye}function tv(z){if(z===void 0)return z;if(mec(z))return Ta(z);if(vNe(z))return $f(z);if($C(z))return j2(z);if(Dvi(z))return _x(z);if(Yme(z))return z2(z);let ye=YNr(z.kind)?t.createBaseNode(z.kind):t.createBaseTokenNode(z.kind);ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z);for(let Ve in z)fj(ye,Ve)||!fj(z,Ve)||(ye[Ve]=z[Ve]);return ye}function Yu(z,ye,Ve){return YA(TC(void 0,void 0,void 0,void 0,ye?[ye]:[],void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function qO(z,ye,Ve){return YA(cp(void 0,void 0,ye?[ye]:[],void 0,void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function hB(){return CI(ue("0"))}function mw(z){return $1(void 0,!1,z)}function AF(z){return N_(void 0,!1,ry([yb(!1,void 0,z)]))}function $O(z,ye){return ye==="null"?X.createStrictEquality(z,Ar()):ye==="undefined"?X.createStrictEquality(z,hB()):X.createStrictEquality(lm(z),Se(ye))}function iY(z,ye){return ye==="null"?X.createStrictInequality(z,Ar()):ye==="undefined"?X.createStrictInequality(z,hB()):X.createStrictInequality(lm(z),Se(ye))}function LT(z,ye,Ve){return V2i(z)?Nm(Ql(z,void 0,ye),void 0,void 0,Ve):YA(Bo(z,ye),void 0,Ve)}function GD(z,ye,Ve){return LT(z,"bind",[ye,...Ve])}function dF(z,ye,Ve){return LT(z,"call",[ye,...Ve])}function EL(z,ye,Ve){return LT(z,"apply",[ye,Ve])}function ff(z,ye,Ve){return LT(je(z),ye,Ve)}function FD(z,ye){return LT(z,"slice",ye===void 0?[]:[zd(ye)])}function fE(z,ye){return LT(z,"concat",ye)}function n2(z,ye,Ve){return ff("Object","defineProperty",[z,zd(ye),Ve])}function mB(z,ye){return ff("Object","getOwnPropertyDescriptor",[z,zd(ye)])}function bd(z,ye,Ve){return ff("Reflect","get",Ve?[z,ye,Ve]:[z,ye])}function s1(z,ye,Ve,Ct){return ff("Reflect","set",Ct?[z,ye,Ve,Ct]:[z,ye,Ve])}function Uh(z,ye,Ve){return Ve?(z.push(IB(ye,Ve)),!0):!1}function wb(z,ye){let Ve=[];Uh(Ve,"enumerable",zd(z.enumerable)),Uh(Ve,"configurable",zd(z.configurable));let Ct=Uh(Ve,"writable",zd(z.writable));Ct=Uh(Ve,"value",z.value)||Ct;let wr=Uh(Ve,"get",z.get);return wr=Uh(Ve,"set",z.set)||wr,Zo.assert(!(Ct&&wr),"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."),Wn(Ve,!ye)}function Uu(z,ye){switch(z.kind){case 217:return XE(z,ye);case 216:return J_(z,z.type,ye);case 234:return NC(z,ye,z.type);case 238:return kC(z,ye,z.type);case 235:return U_(z,ye);case 233:return hb(z,ye,z.typeArguments);case 355:return Po(z,ye)}}function iy(z){return rDr(z)&&CNe(z)&&CNe(getSourceMapRange(z))&&CNe(getCommentRange(z))&&!oD(getSyntheticLeadingComments(z))&&!oD(getSyntheticTrailingComments(z))}function sY(z,ye,Ve=31){return z&&EBi(z,Ve)&&!iy(z)?Uu(z,sY(z.expression,ye)):ye}function oY(z,ye,Ve){if(!ye)return z;let Ct=Jr(ye,ye.label,uec(ye.statement)?oY(z,ye.statement):z);return Ve&&Ve(ye),Ct}function jR(z,ye){let Ve=jNr(z);switch(Ve.kind){case 80:return ye;case 110:case 9:case 10:case 11:return!1;case 209:return Ve.elements.length!==0;case 210:return Ve.properties.length>0;default:return!0}}function aY(z,ye,Ve,Ct=!1){let wr=sDr(z,31),ai,Lo;return Q2i(wr)?(ai=cr(),Lo=wr):$Rr(wr)?(ai=cr(),Lo=Ve!==void 0&&Ve<2?zZ(je("_super"),wr):wr):RNe(wr)&8192?(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(wr,!1)):Bce(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=Bo(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.name),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):BJe(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=ef(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.argumentExpression),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(z,!1)),{target:Lo,thisArg:ai}}function tt(z,ye){return Bo(q0(Wn([li(void 0,"value",[io(void 0,void 0,z,void 0,void 0,void 0)],eA([cs(ye)]))])),"value")}function Jt(z){return z.length>10?dc(z):K6a(z,X.createComma)}function kr(z,ye,Ve,Ct=0,wr){let ai=wr?z&&MNr(z):Bvi(z);if(ai&&$C(ai)&&!vNe(ai)){let Lo=$Nr(zZ(tv(ai),ai),ai.parent);return Ct|=RNe(ai),Ve||(Ct|=96),ye||(Ct|=3072),Ct&&setEmitFlags(Lo,Ct),Lo}return Tr(z)}function Xr(z,ye,Ve){return kr(z,ye,Ve,98304)}function ui(z,ye,Ve,Ct){return kr(z,ye,Ve,32768,Ct)}function Is(z,ye,Ve){return kr(z,ye,Ve,16384)}function Hs(z,ye,Ve){return kr(z,ye,Ve)}function Rs(z,ye,Ve,Ct){let wr=Bo(z,CNe(ye)?ye:tv(ye));zZ(wr,ye);let ai=0;return Ct||(ai|=96),Ve||(ai|=3072),ai&&setEmitFlags(wr,ai),wr}function ja(z,ye,Ve,Ct){return z&&vJe(ye,32)?Rs(z,kr(ye),Ve,Ct):Is(ye,Ve,Ct)}function ho(z,ye,Ve,Ct){let wr=ed(z,ye,0,Ve);return Og(z,ye,wr,Ct)}function sl(z){return tEt(z.expression)&&z.expression.text==="use strict"}function Nd(){return Wec(cs(Se("use strict")))}function ed(z,ye,Ve=0,Ct){Zo.assert(ye.length===0,"Prologue directives should be at the first statement in the target statements array");let wr=!1,ai=z.length;for(;VeHc&&dm.splice(wr,0,...ye.slice(Hc,ad)),Hc>Lo&&dm.splice(Ct,0,...ye.slice(Lo,Hc)),Lo>ai&&dm.splice(Ve,0,...ye.slice(ai,Lo)),ai>0)if(Ve===0)dm.splice(0,0,...ye.slice(0,ai));else{let rv=new Map;for(let nv=0;nv=0;nv--){let yx=ye[nv];rv.has(yx.expression.text)||dm.unshift(yx)}}return _ce(z)?zZ(ae(dm,z.hasTrailingComma),z):z}function IE(z,ye){let Ve;return typeof ye=="number"?Ve=jt(ye):Ve=ye,eBi(z)?xi(z,Ve,z.name,z.constraint,z.default):Ubt(z)?ga(z,Ve,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):sBi(z)?Ko(z,Ve,z.typeParameters,z.parameters,z.type):D$a(z)?Sc(z,Ve,z.name,z.questionToken,z.type):Kbt(z)?Ft(z,Ve,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):k$a(z)?Rn(z,Ve,z.name,z.questionToken,z.typeParameters,z.parameters,z.type):INr(z)?Qi(z,Ve,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):tBi(z)?Cg(z,Ve,z.parameters,z.body):hNr(z)?ma(z,Ve,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,Ve,z.name,z.parameters,z.body):rBi(z)?Ul(z,Ve,z.parameters,z.type):cBi(z)?t_(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):lBi(z)?Mm(z,Ve,z.typeParameters,z.parameters,z.type,z.equalsGreaterThanToken,z.body):mNr(z)?Hm(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):rEt(z)?um(z,Ve,z.declarationList):ABi(z)?sB(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):zbt(z)?jE(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):nDr(z)?NT(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):dBi(z)?Ty(z,Ve,z.name,z.typeParameters,z.type):Aec(z)?$I(z,Ve,z.name,z.members):EJe(z)?$A(z,Ve,z.name,z.body):pBi(z)?z_(z,Ve,z.isTypeOnly,z.name,z.moduleReference):fBi(z)?oB(z,Ve,z.importClause,z.moduleSpecifier,z.attributes):IBi(z)?$E(z,Ve,z.expression):hBi(z)?e1(z,Ve,z.isTypeOnly,z.exportClause,z.moduleSpecifier,z.attributes):Zo.assertNever(z)}function zR(z,ye){return Ubt(z)?ga(z,ye,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):Kbt(z)?Ft(z,ye,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):INr(z)?Qi(z,ye,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):hNr(z)?ma(z,ye,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,ye,z.name,z.parameters,z.body):mNr(z)?Hm(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):zbt(z)?jE(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):Zo.assertNever(z)}function e3(z,ye){switch(z.kind){case 177:return ma(z,z.modifiers,ye,z.parameters,z.type,z.body);case 178:return Ei(z,z.modifiers,ye,z.parameters,z.body);case 174:return Qi(z,z.modifiers,z.asteriskToken,ye,z.questionToken,z.typeParameters,z.parameters,z.type,z.body);case 173:return Rn(z,z.modifiers,ye,z.questionToken,z.typeParameters,z.parameters,z.type);case 172:return Ft(z,z.modifiers,ye,z.questionToken??z.exclamationToken,z.type,z.initializer);case 171:return Sc(z,z.modifiers,ye,z.questionToken,z.type);case 303:return Bb(z,ye,z.initializer)}}function IA(z){return z?ae(z):void 0}function EI(z){return typeof z=="string"?je(z):z}function zd(z){return typeof z=="string"?Se(z):typeof z=="number"?ue(z):typeof z=="boolean"?z?qr():_n():z}function wA(z){return z&&n().parenthesizeExpressionForDisallowedComma(z)}function qR(z){return typeof z=="number"?Xt(z):z}function sy(z){return z&&pec(z)?zZ(r(gm(),z),z):z}function $2(z){return typeof z=="string"||z&&!gBi(z)?Rf(z,void 0,void 0,void 0):z}function Eo(z,ye){return z!==ye&&(r(z,ye),zZ(z,ye)),z}}function xbt(e){switch(e){case 344:return"type";case 342:return"returns";case 343:return"this";case 340:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 345:return"template";case 346:return"typedef";case 341:return"param";case 348:return"prop";case 338:return"callback";case 339:return"overload";case 328:return"augments";case 329:return"implements";case 351:return"import";default:return Zo.fail(`Unsupported kind: ${Zo.formatSyntaxKind(e)}`)}}var hV,z2i={};function m$a(e,t){switch(hV||(hV=WNr(99,!1,0)),e){case 15:hV.setText("`"+t+"`");break;case 16:hV.setText("`"+t+"${");break;case 17:hV.setText("}"+t+"${");break;case 18:hV.setText("}"+t+"`");break}let r=hV.scan();if(r===20&&(r=hV.reScanTemplateToken(!1)),hV.isUnterminated())return hV.setText(void 0),z2i;let n;switch(r){case 15:case 16:case 17:case 18:n=hV.getTokenValue();break}return n===void 0||hV.scan()!==1?(hV.setText(void 0),z2i):(hV.setText(void 0),n)}function pO(e){return e&&$C(e)?_Ne(e):$o(e)}function _Ne(e){return $o(e)&-67108865}function C$a(e,t){return t|e.transformFlags&134234112}function $o(e){if(!e)return 0;let t=e.transformFlags&~_$a(e.kind);return $7a(e)&&kvi(e.name)?C$a(e.name,t):t}function qA(e){return e?e.transformFlags:0}function q2i(e){let t=0;for(let r of e)t|=$o(r);e.transformFlags=t}function _$a(e){if(e>=182&&e<=205)return-2;switch(e){case 213:case 214:case 209:return-2147450880;case 267:return-1941676032;case 169:return-2147483648;case 219:return-2072174592;case 218:case 262:return-1937940480;case 261:return-2146893824;case 263:case 231:return-2147344384;case 176:return-1937948672;case 172:return-2013249536;case 174:case 177:case 178:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 168:case 171:case 173:case 179:case 180:case 181:case 264:case 265:return-2;case 210:return-2147278848;case 299:return-2147418112;case 206:case 207:return-2147450880;case 216:case 238:case 234:case 355:case 217:case 108:return-2147483648;case 211:case 212:return-2147483648;default:return-2147483648}}var nJe=f$a();function iJe(e){return e.flags|=16,e}var y$a={createBaseSourceFileNode:e=>iJe(nJe.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>iJe(nJe.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>iJe(nJe.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>iJe(nJe.createBaseTokenNode(e)),createBaseNode:e=>iJe(nJe.createBaseNode(e))},$Tu=eDr(4,y$a);function b$a(e,t){if(e.original!==t&&(e.original=t,t)){let r=t.emitNode;r&&(e.emitNode=E$a(r,e.emitNode))}return e}function E$a(e,t){let{flags:r,internalFlags:n,leadingComments:a,trailingComments:o,commentRange:l,sourceMapRange:A,tokenSourceMapRanges:f,constantValue:I,helpers:C,startsOnNewLine:b,snippetElement:E,classThis:N,assignedName:B}=e;if(t||(t={}),r&&(t.flags=r),n&&(t.internalFlags=n&-9),a&&(t.leadingComments=_V(a.slice(),t.leadingComments)),o&&(t.trailingComments=_V(o.slice(),t.trailingComments)),l&&(t.commentRange=l),A&&(t.sourceMapRange=A),f&&(t.tokenSourceMapRanges=S$a(f,t.tokenSourceMapRanges)),I!==void 0&&(t.constantValue=I),C)for(let F of C)t.helpers=H6a(t.helpers,F);return b!==void 0&&(t.startsOnNewLine=b),E!==void 0&&(t.snippetElement=E),N&&(t.classThis=N),B&&(t.assignedName=B),t}function S$a(e,t){t||(t=[]);for(let r in e)t[r]=e[r];return t}function kNe(e){return e.kind===9}function v$a(e){return e.kind===10}function tEt(e){return e.kind===11}function B$a(e){return e.kind===15}function w$a(e){return e.kind===28}function $2i(e){return e.kind===54}function eSi(e){return e.kind===58}function $C(e){return e.kind===80}function Yme(e){return e.kind===81}function T$a(e){return e.kind===95}function Gbt(e){return e.kind===134}function $Rr(e){return e.kind===108}function R$a(e){return e.kind===102}function N$a(e){return e.kind===166}function $vi(e){return e.kind===167}function eBi(e){return e.kind===168}function Ubt(e){return e.kind===169}function tDr(e){return e.kind===170}function D$a(e){return e.kind===171}function Kbt(e){return e.kind===172}function k$a(e){return e.kind===173}function INr(e){return e.kind===174}function tBi(e){return e.kind===176}function hNr(e){return e.kind===177}function jbt(e){return e.kind===178}function x$a(e){return e.kind===179}function G$a(e){return e.kind===180}function rBi(e){return e.kind===181}function F$a(e){return e.kind===182}function nBi(e){return e.kind===183}function iBi(e){return e.kind===184}function sBi(e){return e.kind===185}function Z$a(e){return e.kind===186}function L$a(e){return e.kind===187}function V$a(e){return e.kind===188}function P$a(e){return e.kind===189}function W$a(e){return e.kind===202}function O$a(e){return e.kind===190}function M$a(e){return e.kind===191}function H$a(e){return e.kind===192}function Y$a(e){return e.kind===193}function Q$a(e){return e.kind===194}function X$a(e){return e.kind===195}function J$a(e){return e.kind===196}function U$a(e){return e.kind===197}function K$a(e){return e.kind===198}function j$a(e){return e.kind===199}function z$a(e){return e.kind===200}function q$a(e){return e.kind===201}function $$a(e){return e.kind===205}function eec(e){return e.kind===208}function tec(e){return e.kind===209}function oBi(e){return e.kind===210}function Bce(e){return e.kind===211}function BJe(e){return e.kind===212}function aBi(e){return e.kind===213}function rec(e){return e.kind===215}function rDr(e){return e.kind===217}function cBi(e){return e.kind===218}function lBi(e){return e.kind===219}function nec(e){return e.kind===222}function iec(e){return e.kind===224}function DNe(e){return e.kind===226}function sec(e){return e.kind===230}function mNr(e){return e.kind===231}function oec(e){return e.kind===232}function aec(e){return e.kind===233}function Vbt(e){return e.kind===235}function cec(e){return e.kind===236}function lec(e){return e.kind===356}function rEt(e){return e.kind===243}function uBi(e){return e.kind===244}function uec(e){return e.kind===256}function gBi(e){return e.kind===260}function gec(e){return e.kind===261}function ABi(e){return e.kind===262}function zbt(e){return e.kind===263}function nDr(e){return e.kind===264}function dBi(e){return e.kind===265}function Aec(e){return e.kind===266}function EJe(e){return e.kind===267}function pBi(e){return e.kind===271}function fBi(e){return e.kind===272}function IBi(e){return e.kind===277}function hBi(e){return e.kind===278}function dec(e){return e.kind===279}function pec(e){return e.kind===353}function mBi(e){return e.kind===283}function tSi(e){return e.kind===286}function fec(e){return e.kind===289}function CBi(e){return e.kind===295}function Iec(e){return e.kind===297}function hec(e){return e.kind===303}function mec(e){return e.kind===307}function Cec(e){return e.kind===309}function _ec(e){return e.kind===314}function yec(e){return e.kind===317}function _Bi(e){return e.kind===320}function bec(e){return e.kind===322}function yBi(e){return e.kind===323}function Eec(e){return e.kind===328}function Sec(e){return e.kind===333}function vec(e){return e.kind===334}function Bec(e){return e.kind===335}function wec(e){return e.kind===336}function Tec(e){return e.kind===337}function Rec(e){return e.kind===339}function Nec(e){return e.kind===331}function rSi(e){return e.kind===341}function Dec(e){return e.kind===342}function iDr(e){return e.kind===344}function kec(e){return e.kind===345}function xec(e){return e.kind===329}function Gec(e){return e.kind===350}var Ome=new WeakMap;function bBi(e,t){var r;let n=e.kind;return YNr(n)?n===352?e._children:(r=Ome.get(t))==null?void 0:r.get(e):x2}function Fec(e,t,r){e.kind===352&&Zo.fail("Should not need to re-set the children of a SyntaxList.");let n=Ome.get(t);return n===void 0&&(n=new WeakMap,Ome.set(t,n)),n.set(e,r),r}function nSi(e,t){var r;e.kind===352&&Zo.fail("Did not expect to unset the children of a SyntaxList."),(r=Ome.get(t))==null||r.delete(e)}function Zec(e,t){let r=Ome.get(e);r!==void 0&&(Ome.delete(e),Ome.set(t,r))}function iSi(e){return(RNe(e)&32768)!==0}function Lec(e){return tEt(e.expression)&&e.expression.text==="use strict"}function Vec(e){for(let t of e)if(Lbt(t)){if(Lec(t))return t}else break}function Pec(e){return rDr(e)&&Qme(e)&&!!fza(e)}function EBi(e,t=31){switch(e.kind){case 217:return t&-2147483648&&Pec(e)?!1:(t&1)!==0;case 216:case 234:case 238:return(t&2)!==0;case 233:return(t&16)!==0;case 235:return(t&4)!==0;case 355:return(t&8)!==0}return!1}function sDr(e,t=31){for(;EBi(e,t);)e=e.expression;return e}function Wec(e){return setStartsOnNewLine(e,!0)}function dJe(e){if(xza(e))return e.name;if(Rza(e)){switch(e.kind){case 303:return dJe(e.initializer);case 304:return e.name;case 305:return dJe(e.expression)}return}return Jbt(e,!0)?dJe(e.left):sec(e)?dJe(e.expression):e}function Oec(e){switch(e.kind){case 206:case 207:case 209:return e.elements;case 210:return e.properties}}function sSi(e){if(e){let t=e;for(;;){if($C(t)||!t.body)return $C(t)?t:t.name;t=t.body}}}var oSi;(e=>{function t(C,b,E,N,B,F,Q){let X=b>0?B[b-1]:void 0;return Zo.assertEqual(E[b],t),B[b]=C.onEnter(N[b],X,Q),E[b]=A(C,t),b}e.enter=t;function r(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],r),Zo.assertIsDefined(C.onLeft),E[b]=A(C,r);let X=C.onLeft(N[b].left,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.left=r;function n(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],n),Zo.assertIsDefined(C.onOperator),E[b]=A(C,n),C.onOperator(N[b].operatorToken,B[b],N[b]),b}e.operator=n;function a(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],a),Zo.assertIsDefined(C.onRight),E[b]=A(C,a);let X=C.onRight(N[b].right,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.right=a;function o(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],o),E[b]=A(C,o);let X=C.onExit(N[b],B[b]);if(b>0){if(b--,C.foldState){let ae=E[b]===o?"right":"left";B[b]=C.foldState(B[b],X,ae)}}else F.value=X;return b}e.exit=o;function l(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],l),b}e.done=l;function A(C,b){switch(b){case t:if(C.onLeft)return r;case r:if(C.onOperator)return n;case n:if(C.onRight)return a;case a:return o;case o:return l;case l:return l;default:Zo.fail("Invalid state")}}e.nextState=A;function f(C,b,E,N,B){return C++,b[C]=t,E[C]=B,N[C]=void 0,C}function I(C,b,E){if(Zo.shouldAssert(2))for(;C>=0;)Zo.assert(b[C]!==E,"Circular traversal detected."),C--}})(oSi||(oSi={}));function aSi(e,t){return typeof e=="object"?CNr(!1,e.prefix,e.node,e.suffix,t):typeof e=="string"?e.length>0&&e.charCodeAt(0)===35?e.slice(1):e:""}function Mec(e,t){return typeof e=="string"?e:Hec(e,Zo.checkDefined(t))}function Hec(e,t){return Dvi(e)?t(e).slice(1):vNe(e)?t(e):Yme(e)?e.escapedText.slice(1):yV(e)}function CNr(e,t,r,n,a){return t=aSi(t,a),n=aSi(n,a),r=Mec(r,a),`${e?"#":""}${t}${r}${n}`}function SBi(e){if(e.transformFlags&65536)return!0;if(e.transformFlags&128)for(let t of Oec(e)){let r=dJe(t);if(r&&kza(r)&&(r.transformFlags&65536||r.transformFlags&128&&SBi(r)))return!0}return!1}function zZ(e,t){return t?Ece(e,t.pos,t.end):e}function oDr(e){let t=e.kind;return t===168||t===169||t===171||t===172||t===173||t===174||t===176||t===177||t===178||t===181||t===185||t===218||t===219||t===231||t===243||t===262||t===263||t===264||t===265||t===266||t===267||t===271||t===272||t===277||t===278}function Yec(e){let t=e.kind;return t===169||t===172||t===174||t===177||t===178||t===231||t===263}var cSi,lSi,uSi,gSi,ASi,Qec={createBaseSourceFileNode:e=>new(ASi||(ASi=k2.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(uSi||(uSi=k2.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(gSi||(gSi=k2.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(lSi||(lSi=k2.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(cSi||(cSi=k2.getNodeConstructor()))(e,-1,-1)},eRu=eDr(1,Qec);function wi(e,t){return t&&e(t)}function al(e,t,r){if(r){if(t)return t(r);for(let n of r){let a=e(n);if(a)return a}}}function Xec(e,t){return e.charCodeAt(t+1)===42&&e.charCodeAt(t+2)===42&&e.charCodeAt(t+3)!==47}function Jec(e){return hO(e.statements,Uec)||Kec(e)}function Uec(e){return oDr(e)&&jec(e,95)||pBi(e)&&mBi(e.moduleReference)||fBi(e)||IBi(e)||hBi(e)?e:void 0}function Kec(e){return e.flags&8388608?vBi(e):void 0}function vBi(e){return zec(e)?e:Ok(e,vBi)}function jec(e,t){return oD(e.modifiers,r=>r.kind===t)}function zec(e){return cec(e)&&e.keywordToken===102&&e.name.escapedText==="meta"}var qec={166:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},168:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.constraint)||wi(t,e.default)||wi(t,e.expression)},304:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.equalsToken)||wi(t,e.objectAssignmentInitializer)},305:function(e,t,r){return wi(t,e.expression)},169:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},172:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},171:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},303:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.initializer)},260:function(e,t,r){return wi(t,e.name)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},208:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.propertyName)||wi(t,e.name)||wi(t,e.initializer)},181:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},185:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},184:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},179:dSi,180:dSi,174:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},173:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},176:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},177:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},178:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},262:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},218:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},219:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.equalsGreaterThanToken)||wi(t,e.body)},175:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.body)},183:function(e,t,r){return wi(t,e.typeName)||al(t,r,e.typeArguments)},182:function(e,t,r){return wi(t,e.assertsModifier)||wi(t,e.parameterName)||wi(t,e.type)},186:function(e,t,r){return wi(t,e.exprName)||al(t,r,e.typeArguments)},187:function(e,t,r){return al(t,r,e.members)},188:function(e,t,r){return wi(t,e.elementType)},189:function(e,t,r){return al(t,r,e.elements)},192:pSi,193:pSi,194:function(e,t,r){return wi(t,e.checkType)||wi(t,e.extendsType)||wi(t,e.trueType)||wi(t,e.falseType)},195:function(e,t,r){return wi(t,e.typeParameter)},205:function(e,t,r){return wi(t,e.argument)||wi(t,e.attributes)||wi(t,e.qualifier)||al(t,r,e.typeArguments)},302:function(e,t,r){return wi(t,e.assertClause)},196:fSi,198:fSi,199:function(e,t,r){return wi(t,e.objectType)||wi(t,e.indexType)},200:function(e,t,r){return wi(t,e.readonlyToken)||wi(t,e.typeParameter)||wi(t,e.nameType)||wi(t,e.questionToken)||wi(t,e.type)||al(t,r,e.members)},201:function(e,t,r){return wi(t,e.literal)},202:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)},206:ISi,207:ISi,209:function(e,t,r){return al(t,r,e.elements)},210:function(e,t,r){return al(t,r,e.properties)},211:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.name)},212:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.argumentExpression)},213:hSi,214:hSi,215:function(e,t,r){return wi(t,e.tag)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||wi(t,e.template)},216:function(e,t,r){return wi(t,e.type)||wi(t,e.expression)},217:function(e,t,r){return wi(t,e.expression)},220:function(e,t,r){return wi(t,e.expression)},221:function(e,t,r){return wi(t,e.expression)},222:function(e,t,r){return wi(t,e.expression)},224:function(e,t,r){return wi(t,e.operand)},229:function(e,t,r){return wi(t,e.asteriskToken)||wi(t,e.expression)},223:function(e,t,r){return wi(t,e.expression)},225:function(e,t,r){return wi(t,e.operand)},226:function(e,t,r){return wi(t,e.left)||wi(t,e.operatorToken)||wi(t,e.right)},234:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},235:function(e,t,r){return wi(t,e.expression)},238:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},236:function(e,t,r){return wi(t,e.name)},227:function(e,t,r){return wi(t,e.condition)||wi(t,e.questionToken)||wi(t,e.whenTrue)||wi(t,e.colonToken)||wi(t,e.whenFalse)},230:function(e,t,r){return wi(t,e.expression)},241:mSi,268:mSi,307:function(e,t,r){return al(t,r,e.statements)||wi(t,e.endOfFileToken)},243:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.declarationList)},261:function(e,t,r){return al(t,r,e.declarations)},244:function(e,t,r){return wi(t,e.expression)},245:function(e,t,r){return wi(t,e.expression)||wi(t,e.thenStatement)||wi(t,e.elseStatement)},246:function(e,t,r){return wi(t,e.statement)||wi(t,e.expression)},247:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},248:function(e,t,r){return wi(t,e.initializer)||wi(t,e.condition)||wi(t,e.incrementor)||wi(t,e.statement)},249:function(e,t,r){return wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},250:function(e,t,r){return wi(t,e.awaitModifier)||wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},251:CSi,252:CSi,253:function(e,t,r){return wi(t,e.expression)},254:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},255:function(e,t,r){return wi(t,e.expression)||wi(t,e.caseBlock)},269:function(e,t,r){return al(t,r,e.clauses)},296:function(e,t,r){return wi(t,e.expression)||al(t,r,e.statements)},297:function(e,t,r){return al(t,r,e.statements)},256:function(e,t,r){return wi(t,e.label)||wi(t,e.statement)},257:function(e,t,r){return wi(t,e.expression)},258:function(e,t,r){return wi(t,e.tryBlock)||wi(t,e.catchClause)||wi(t,e.finallyBlock)},299:function(e,t,r){return wi(t,e.variableDeclaration)||wi(t,e.block)},170:function(e,t,r){return wi(t,e.expression)},263:_Si,231:_Si,264:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)},265:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||wi(t,e.type)},266:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.members)},306:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},267:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.body)},271:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.moduleReference)},272:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},273:function(e,t,r){return wi(t,e.name)||wi(t,e.namedBindings)},300:function(e,t,r){return al(t,r,e.elements)},301:function(e,t,r){return wi(t,e.name)||wi(t,e.value)},270:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)},274:function(e,t,r){return wi(t,e.name)},280:function(e,t,r){return wi(t,e.name)},275:ySi,279:ySi,278:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.exportClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},276:bSi,281:bSi,277:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.expression)},228:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},239:function(e,t,r){return wi(t,e.expression)||wi(t,e.literal)},203:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},204:function(e,t,r){return wi(t,e.type)||wi(t,e.literal)},167:function(e,t,r){return wi(t,e.expression)},298:function(e,t,r){return al(t,r,e.types)},233:function(e,t,r){return wi(t,e.expression)||al(t,r,e.typeArguments)},283:function(e,t,r){return wi(t,e.expression)},282:function(e,t,r){return al(t,r,e.modifiers)},356:function(e,t,r){return al(t,r,e.elements)},284:function(e,t,r){return wi(t,e.openingElement)||al(t,r,e.children)||wi(t,e.closingElement)},288:function(e,t,r){return wi(t,e.openingFragment)||al(t,r,e.children)||wi(t,e.closingFragment)},285:ESi,286:ESi,292:function(e,t,r){return al(t,r,e.properties)},291:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},293:function(e,t,r){return wi(t,e.expression)},294:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.expression)},287:function(e,t,r){return wi(t,e.tagName)},295:function(e,t,r){return wi(t,e.namespace)||wi(t,e.name)},190:Dme,191:Dme,309:Dme,315:Dme,314:Dme,316:Dme,318:Dme,317:function(e,t,r){return al(t,r,e.parameters)||wi(t,e.type)},320:function(e,t,r){return(typeof e.comment=="string"?void 0:al(t,r,e.comment))||al(t,r,e.tags)},347:function(e,t,r){return wi(t,e.tagName)||wi(t,e.name)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},310:function(e,t,r){return wi(t,e.name)},311:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},341:SSi,348:SSi,330:function(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},329:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},328:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},345:function(e,t,r){return wi(t,e.tagName)||wi(t,e.constraint)||al(t,r,e.typeParameters)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},346:function(e,t,r){return wi(t,e.tagName)||(e.typeExpression&&e.typeExpression.kind===309?wi(t,e.typeExpression)||wi(t,e.fullName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)):wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)))},338:function(e,t,r){return wi(t,e.tagName)||wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},342:kme,344:kme,343:kme,340:kme,350:kme,349:kme,339:kme,323:function(e,t,r){return hO(e.typeParameters,t)||hO(e.parameters,t)||wi(t,e.type)},324:eNr,325:eNr,326:eNr,322:function(e,t,r){return hO(e.jsDocPropertyTags,t)},327:Ice,332:Ice,333:Ice,334:Ice,335:Ice,336:Ice,331:Ice,337:Ice,351:$ec,355:etc};function dSi(e,t,r){return al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)}function pSi(e,t,r){return al(t,r,e.types)}function fSi(e,t,r){return wi(t,e.type)}function ISi(e,t,r){return al(t,r,e.elements)}function hSi(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||al(t,r,e.arguments)}function mSi(e,t,r){return al(t,r,e.statements)}function CSi(e,t,r){return wi(t,e.label)}function _Si(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)}function ySi(e,t,r){return al(t,r,e.elements)}function bSi(e,t,r){return wi(t,e.propertyName)||wi(t,e.name)}function ESi(e,t,r){return wi(t,e.tagName)||al(t,r,e.typeArguments)||wi(t,e.attributes)}function Dme(e,t,r){return wi(t,e.type)}function SSi(e,t,r){return wi(t,e.tagName)||(e.isNameFirst?wi(t,e.name)||wi(t,e.typeExpression):wi(t,e.typeExpression)||wi(t,e.name))||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function kme(e,t,r){return wi(t,e.tagName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function eNr(e,t,r){return wi(t,e.name)}function Ice(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function $ec(e,t,r){return wi(t,e.tagName)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function etc(e,t,r){return wi(t,e.expression)}function Ok(e,t,r){if(e===void 0||e.kind<=165)return;let n=qec[e.kind];return n===void 0?void 0:n(e,t,r)}function vSi(e,t,r){let n=BSi(e),a=[];for(;a.length=0;--A)n.push(o[A]),a.push(l)}else{let A=t(o,l);if(A){if(A==="skip")continue;return A}if(o.kind>=166)for(let f of BSi(o))n.push(f),a.push(o)}}}function BSi(e){let t=[];return Ok(e,r,r),t;function r(n){t.unshift(n)}}function BBi(e){e.externalModuleIndicator=Jec(e)}function ttc(e,t,r,n=!1,a){var o,l;(o=Fbt)==null||o.push(Fbt.Phase.Parse,"createSourceFile",{path:e},!0),T2i("beforeParse");let A,{languageVersion:f,setExternalModuleIndicator:I,impliedNodeFormat:C,jsDocParsingMode:b}=typeof r=="object"?r:{languageVersion:r};if(f===100)A=Mme.parseSourceFile(e,t,f,void 0,n,6,NNe,b);else{let E=C===void 0?I:N=>(N.impliedNodeFormat=C,(I||BBi)(N));A=Mme.parseSourceFile(e,t,f,void 0,n,a,E,b)}return T2i("afterParse"),u7a("Parse","beforeParse","afterParse"),(l=Fbt)==null||l.pop(),A}function rtc(e){return e.externalModuleIndicator!==void 0}function ntc(e,t,r,n=!1){let a=qbt.updateSourceFile(e,t,r,n);return a.flags|=e.flags&12582912,a}var Mme;(e=>{var t=WNr(99,!0),r=40960,n,a,o,l,A;function f(tt){return _n++,tt}var I={createBaseSourceFileNode:tt=>f(new A(tt,0,0)),createBaseIdentifierNode:tt=>f(new o(tt,0,0)),createBasePrivateIdentifierNode:tt=>f(new l(tt,0,0)),createBaseTokenNode:tt=>f(new a(tt,0,0)),createBaseNode:tt=>f(new n(tt,0,0))},C=eDr(11,I),{createNodeArray:b,createNumericLiteral:E,createStringLiteral:N,createLiteralLikeNode:B,createIdentifier:F,createPrivateIdentifier:Q,createToken:X,createArrayLiteralExpression:ae,createObjectLiteralExpression:ne,createPropertyAccessExpression:ce,createPropertyAccessChain:fe,createElementAccessExpression:ue,createElementAccessChain:de,createCallExpression:be,createCallChain:Se,createNewExpression:De,createParenthesizedExpression:k,createBlock:et,createVariableStatement:ct,createExpressionStatement:Me,createIfStatement:je,createWhileStatement:St,createForStatement:At,createForOfStatement:Yt,createVariableDeclaration:Tr,createVariableDeclarationList:Nr}=C,er,vt,xt,Zr,qt,Xt,lr,cr,Ar,qr,_n,ke,jt,Fn,Nn,Hi,po=!0,Vr=!1;function xi(tt,Jt,kr,Xr,ui=!1,Is,Hs,Rs=0){var ja;if(Is=r$a(tt,Is),Is===6){let sl=ga(tt,Jt,kr,Xr,ui);return convertToJson(sl,(ja=sl.statements[0])==null?void 0:ja.expression,sl.parseDiagnostics,!1,void 0),sl.referencedFiles=x2,sl.typeReferenceDirectives=x2,sl.libReferenceDirectives=x2,sl.amdDependencies=x2,sl.hasNoDefaultLib=!1,sl.pragmas=Z6a,sl}Ya(tt,Jt,kr,Xr,Is,Rs);let ho=cl(kr,ui,Is,Hs||BBi,Rs);return Gc(),ho}e.parseSourceFile=xi;function io(tt,Jt){Ya("",tt,Jt,void 0,1,0),Vs();let kr=se(!0),Xr=Wt()===1&&!lr.length;return Gc(),Xr?kr:void 0}e.parseIsolatedEntityName=io;function ga(tt,Jt,kr=2,Xr,ui=!1){Ya(tt,Jt,kr,Xr,6,0),vt=Hi,Vs();let Is=Ri(),Hs,Rs;if(Wt()===1)Hs=Er([],Is,Is),Rs=ZA();else{let sl;for(;Wt()!==1;){let Og;switch(Wt()){case 23:Og=ag();break;case 112:case 97:case 106:Og=ZA();break;case 41:oo(()=>Vs()===9&&Vs()!==59)?Og=ey():Og=n1();break;case 9:case 11:if(oo(()=>Vs()!==59)){Og=ra();break}default:Og=n1();break}sl&&Tee(sl)?sl.push(Og):sl?sl=[sl,Og]:(sl=Og,Wt()!==1&&Da(ts.Unexpected_token))}let Nd=Tee(sl)?Zt(ae(sl),Is):Zo.checkDefined(sl),ed=Me(Nd);Zt(ed,Is),Hs=Er([ed],Is),Rs=il(1,ts.Unexpected_token)}let ja=zr(tt,2,6,!1,Hs,Rs,vt,NNe);ui&&Ft(ja),ja.nodeCount=_n,ja.identifierCount=jt,ja.identifiers=ke,ja.parseDiagnostics=Nme(lr,ja),cr&&(ja.jsDocDiagnostics=Nme(cr,ja));let ho=ja;return Gc(),ho}e.parseJsonText=ga;function Ya(tt,Jt,kr,Xr,ui,Is){switch(n=k2.getNodeConstructor(),a=k2.getTokenConstructor(),o=k2.getIdentifierConstructor(),l=k2.getPrivateIdentifierConstructor(),A=k2.getSourceFileConstructor(),er=E7a(tt),xt=Jt,Zr=kr,Ar=Xr,qt=ui,Xt=U2i(ui),lr=[],Fn=0,ke=new Map,jt=0,_n=0,vt=0,po=!0,qt){case 1:case 2:Hi=524288;break;case 6:Hi=134742016;break;default:Hi=0;break}Vr=!1,t.setText(xt),t.setOnError(Qh),t.setScriptTarget(Zr),t.setLanguageVariant(Xt),t.setScriptKind(qt),t.setJSDocParsingMode(Is)}function Gc(){t.clearCommentDirectives(),t.setText(""),t.setOnError(void 0),t.setScriptKind(0),t.setJSDocParsingMode(0),xt=void 0,Zr=void 0,Ar=void 0,qt=void 0,Xt=void 0,vt=0,lr=void 0,cr=void 0,Fn=0,ke=void 0,Nn=void 0,po=!0}function cl(tt,Jt,kr,Xr,ui){let Is=otc(er);Is&&(Hi|=33554432),vt=Hi,Vs();let Hs=jd(0,Am);Zo.assert(Wt()===1);let Rs=Do(),ja=Hr(ZA(),Rs),ho=zr(er,tt,kr,Is,Hs,ja,vt,Xr);return ltc(ho,xt),utc(ho,sl),ho.commentDirectives=t.getCommentDirectives(),ho.nodeCount=_n,ho.identifierCount=jt,ho.identifiers=ke,ho.parseDiagnostics=Nme(lr,ho),ho.jsDocParsingMode=ui,cr&&(ho.jsDocDiagnostics=Nme(cr,ho)),Jt&&Ft(ho),ho;function sl(Nd,ed,Og){lr.push(pNe(er,xt,Nd,ed,Og))}}let Sc=!1;function Hr(tt,Jt){if(!Jt)return tt;Zo.assert(!tt.jsDoc);let kr=W6a(qza(tt,xt),Xr=>aY.parseJSDocComment(tt,Xr.pos,Xr.end-Xr.pos));return kr.length&&(tt.jsDoc=kr),Sc&&(Sc=!1,tt.flags|=536870912),tt}function Wr(tt){let Jt=Ar,kr=qbt.createSyntaxCursor(tt);Ar={currentNode:sl};let Xr=[],ui=lr;lr=[];let Is=0,Hs=ja(tt.statements,0);for(;Hs!==-1;){let Nd=tt.statements[Is],ed=tt.statements[Hs];_V(Xr,tt.statements,Is,Hs),Is=ho(tt.statements,Hs);let Og=YRr(ui,o1=>o1.start>=Nd.pos),Nh=Og>=0?YRr(ui,o1=>o1.start>=ed.pos,Og):-1;Og>=0&&_V(lr,ui,Og,Nh>=0?Nh:void 0),oA(()=>{let o1=Hi;for(Hi|=65536,t.resetTokenState(ed.pos),Vs();Wt()!==1;){let Tb=t.getTokenFullStart(),q2=dh(0,Am);if(Xr.push(q2),Tb===t.getTokenFullStart()&&Vs(),Is>=0){let IE=tt.statements[Is];if(q2.end===IE.pos)break;q2.end>IE.pos&&(Is=ho(tt.statements,Is+1))}}Hi=o1},2),Hs=Is>=0?ja(tt.statements,Is):-1}if(Is>=0){let Nd=tt.statements[Is];_V(Xr,tt.statements,Is);let ed=YRr(ui,Og=>Og.start>=Nd.pos);ed>=0&&_V(lr,ui,ed)}return Ar=Jt,C.updateSourceFile(tt,zZ(b(Xr),tt.statements));function Rs(Nd){return!(Nd.flags&65536)&&!!(Nd.transformFlags&67108864)}function ja(Nd,ed){for(let Og=ed;Og118}function Xs(){return Wt()===80?!0:Wt()===127&&Yl()||Wt()===135&&Xu()?!1:Wt()>118}function ws(tt,Jt,kr=!0){return Wt()===tt?(kr&&Vs(),!0):(Jt?Da(Jt):Da(ts._0_expected,by(tt)),!1)}let Gs=Object.keys(LNr).filter(tt=>tt.length>2);function Ma(tt){if(rec(tt)){_g(dj(xt,tt.template.pos),tt.template.end,ts.Module_declaration_names_may_only_use_or_quoted_strings);return}let Jt=$C(tt)?yV(tt):void 0;if(!Jt||!Q7a(Jt,Zr)){Da(ts._0_expected,by(27));return}let kr=dj(xt,tt.pos);switch(Jt){case"const":case"let":case"var":_g(kr,tt.end,ts.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":Dc(ts.Interface_name_cannot_be_0,ts.Interface_must_be_given_a_name,19);return;case"is":_g(kr,t.getTokenStart(),ts.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":Dc(ts.Namespace_name_cannot_be_0,ts.Namespace_must_be_given_a_name,19);return;case"type":Dc(ts.Type_alias_name_cannot_be_0,ts.Type_alias_must_be_given_a_name,64);return}let Xr=lJe(Jt,Gs,VE)??As(Jt);if(Xr){_g(kr,tt.end,ts.Unknown_keyword_or_identifier_Did_you_mean_0,Xr);return}Wt()!==0&&_g(kr,tt.end,ts.Unexpected_keyword_or_identifier)}function Dc(tt,Jt,kr){Wt()===kr?Da(Jt):Da(tt,t.getTokenValue())}function As(tt){for(let Jt of Gs)if(tt.length>Jt.length+2&&Obt(tt,Jt))return`${Jt} ${tt.slice(Jt.length)}`}function Tf(tt,Jt,kr){if(Wt()===60&&!t.hasPrecedingLineBreak()){Da(ts.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(Wt()===21){Da(ts.Cannot_start_a_function_call_in_a_type_annotation),Vs();return}if(Jt&&!yg()){kr?Da(ts._0_expected,by(27)):Da(ts.Expected_for_property_initializer);return}if(!Mp()){if(kr){Da(ts._0_expected,by(27));return}Ma(tt)}}function cm(tt){return Wt()===tt?(Ju(),!0):(Zo.assert(URr(tt)),Da(ts._0_expected,by(tt)),!1)}function Fl(tt,Jt,kr,Xr){if(Wt()===Jt){Vs();return}let ui=Da(ts._0_expected,by(Jt));kr&&ui&&Dbt(ui,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,by(tt),by(Jt)))}function rc(tt){return Wt()===tt?(Vs(),!0):!1}function sd(tt){if(Wt()===tt)return ZA()}function Om(tt){if(Wt()===tt)return El()}function il(tt,Jt,kr){return sd(tt)||yn(tt,!1,Jt||ts._0_expected,kr||by(tt))}function FA(tt){return Om(tt)||(Zo.assert(URr(tt)),yn(tt,!1,ts._0_expected,by(tt)))}function ZA(){let tt=Ri(),Jt=Wt();return Vs(),Zt(X(Jt),tt)}function El(){let tt=Ri(),Jt=Wt();return Ju(),Zt(X(Jt),tt)}function yg(){return Wt()===27?!0:Wt()===20||Wt()===1||t.hasPrecedingLineBreak()}function Mp(){return yg()?(Wt()===27&&Vs(),!0):!1}function MA(){return Mp()||ws(27)}function Er(tt,Jt,kr,Xr){let ui=b(tt,Xr);return Ece(ui,Jt,kr??t.getTokenFullStart()),ui}function Zt(tt,Jt,kr){return Ece(tt,Jt,kr??t.getTokenFullStart()),Hi&&(tt.flags|=Hi),Vr&&(Vr=!1,tt.flags|=262144),tt}function yn(tt,Jt,kr,...Xr){Jt?pu(t.getTokenFullStart(),0,kr,...Xr):kr&&Da(kr,...Xr);let ui=Ri(),Is=tt===80?F("",void 0):P2i(tt)?C.createTemplateLiteralLikeNode(tt,"","",void 0):tt===9?E("",void 0):tt===11?N("",void 0):tt===282?C.createMissingDeclaration():X(tt);return Zt(Is,ui)}function ls(tt){let Jt=ke.get(tt);return Jt===void 0&&ke.set(tt,Jt=tt),Jt}function oa(tt,Jt,kr){if(tt){jt++;let Rs=t.hasPrecedingJSDocLeadingAsterisks()?t.getTokenStart():Ri(),ja=Wt(),ho=ls(t.getTokenValue()),sl=t.hasExtendedUnicodeEscape();return Hu(),Zt(F(ho,ja,sl),Rs)}if(Wt()===81)return Da(kr||ts.Private_identifiers_are_not_allowed_outside_class_bodies),oa(!0);if(Wt()===0&&t.tryScan(()=>t.reScanInvalidIdentifier()===80))return oa(!0);jt++;let Xr=Wt()===1,ui=t.isReservedWord(),Is=t.getTokenText(),Hs=ui?ts.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:ts.Identifier_expected;return yn(80,Xr,Jt||Hs,Is)}function Fs(tt){return oa(cc(),void 0,tt)}function Wa(tt,Jt){return oa(Xs(),tt,Jt)}function Ca(tt){return oa(H1(Wt()),tt)}function ld(){return(t.hasUnicodeEscape()||t.hasExtendedUnicodeEscape())&&Da(ts.Unicode_escape_sequence_cannot_appear_here),oa(H1(Wt()))}function Rp(){return H1(Wt())||Wt()===11||Wt()===9||Wt()===10}function np(){return H1(Wt())||Wt()===11}function HA(tt){if(Wt()===11||Wt()===9||Wt()===10){let Jt=ra();return Jt.text=ls(Jt.text),Jt}return tt&&Wt()===23?Zs():Wt()===81?so():Ca()}function df(){return HA(!0)}function Zs(){let tt=Ri();ws(23);let Jt=gc($A);return ws(24),Zt(C.createComputedPropertyName(Jt),tt)}function so(){let tt=Ri(),Jt=Q(ls(t.getTokenValue()));return Vs(),Zt(Jt,tt)}function Ea(tt){return Wt()===tt&&Ki(Dr)}function Ml(){return Vs(),t.hasPrecedingLineBreak()?!1:Bo()}function Dr(){switch(Wt()){case 87:return Vs()===94;case 95:return Vs(),Wt()===90?oo(Ql):Wt()===156?oo(di):Wn();case 90:return Ql();case 126:return Vs(),Bo();case 139:case 153:return Vs(),us();default:return Ml()}}function Wn(){return Wt()===60||Wt()!==42&&Wt()!==130&&Wt()!==19&&Bo()}function di(){return Vs(),Wn()}function aa(){return vee(Wt())&&Ki(Dr)}function Bo(){return Wt()===23||Wt()===19||Wt()===42||Wt()===26||Rp()}function us(){return Wt()===23||Rp()}function Ql(){return Vs(),Wt()===86||Wt()===100||Wt()===120||Wt()===60||Wt()===128&&oo(Dp)||Wt()===134&&oo(t2)}function LA(tt,Jt){if(Hp(tt))return!0;switch(tt){case 0:case 1:case 3:return!(Wt()===27&&Jt)&&Xc();case 2:return Wt()===84||Wt()===90;case 4:return oo(gm);case 5:return oo(bL)||Wt()===27&&!Jt;case 6:return Wt()===23||Rp();case 12:switch(Wt()){case 23:case 42:case 26:case 25:return!0;default:return Rp()}case 18:return Rp();case 9:return Wt()===23||Wt()===26||Rp();case 24:return np();case 7:return Wt()===19?oo(pf):Jt?Xs()&&!j1():US()&&!j1();case 8:return i1();case 10:return Wt()===28||Wt()===26||i1();case 19:return Wt()===103||Wt()===87||Xs();case 15:switch(Wt()){case 28:case 25:return!0}case 11:return Wt()===26||$I();case 16:return NC(!1);case 17:return NC(!0);case 20:case 21:return Wt()===28||ut();case 22:return rn();case 23:return Wt()===161&&oo(Cx)?!1:Wt()===11?!0:H1(Wt());case 13:return H1(Wt())||Wt()===19;case 14:return!0;case 25:return!0;case 26:return Zo.fail("ParsingContext.Count used as a context");default:Zo.assertNever(tt,"Non-exhaustive case in 'isListElement'.")}}function pf(){if(Zo.assert(Wt()===19),Vs()===20){let tt=Vs();return tt===28||tt===19||tt===96||tt===119}return!0}function ef(){return Vs(),Xs()}function ip(){return Vs(),H1(Wt())}function _d(){return Vs(),S7a(Wt())}function j1(){return Wt()===119||Wt()===96?oo(pw):!1}function pw(){return Vs(),$I()}function YA(){return Vs(),ut()}function Ac(tt){if(Wt()===1)return!0;switch(tt){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return Wt()===20;case 3:return Wt()===20||Wt()===84||Wt()===90;case 7:return Wt()===19||Wt()===96||Wt()===119;case 8:return Nm();case 19:return Wt()===32||Wt()===21||Wt()===19||Wt()===96||Wt()===119;case 11:return Wt()===22||Wt()===27;case 15:case 21:case 10:return Wt()===24;case 17:case 16:case 18:return Wt()===22||Wt()===24;case 20:return Wt()!==28;case 22:return Wt()===19||Wt()===20;case 13:return Wt()===32||Wt()===44;case 14:return Wt()===30&&oo(tv);default:return!1}}function Nm(){return!!(yg()||qE(Wt())||Wt()===39)}function HS(){Zo.assert(Fn,"Missing parsing context");for(let tt=0;tt<26;tt++)if(Fn&1<=0)}function CI(tt){return tt===6?ts.An_enum_member_name_must_be_followed_by_a_or:void 0}function _I(){let tt=Er([],Ri());return tt.isMissingList=!0,tt}function H2(tt){return!!tt.isMissingList}function iE(tt,Jt,kr,Xr){if(ws(kr)){let ui=Kf(tt,Jt);return ws(Xr),ui}return _I()}function se(tt,Jt){let kr=Ri(),Xr=tt?Ca(Jt):Wa(Jt);for(;rc(25)&&Wt()!==30;)Xr=Zt(C.createQualifiedName(Xr,K(tt,!1,!0)),kr);return Xr}function O(tt,Jt){return Zt(C.createQualifiedName(tt,Jt),tt.pos)}function K(tt,Jt,kr){if(t.hasPrecedingLineBreak()&&H1(Wt())&&oo(Dm))return yn(80,!0,ts.Identifier_expected);if(Wt()===81){let Xr=so();return Jt?Xr:yn(80,!0,ts.Identifier_expected)}return tt?kr?Ca():ld():Wa()}function we(tt){let Jt=Ri(),kr=[],Xr;do Xr=$n(tt),kr.push(Xr);while(Xr.literal.kind===17);return Er(kr,Jt)}function gt(tt){let Jt=Ri();return Zt(C.createTemplateExpression(kc(tt),we(tt)),Jt)}function sr(){let tt=Ri();return Zt(C.createTemplateLiteralType(kc(!1),Yr()),tt)}function Yr(){let tt=Ri(),Jt=[],kr;do kr=Lr(),Jt.push(kr);while(kr.literal.kind===17);return Er(Jt,tt)}function Lr(){let tt=Ri();return Zt(C.createTemplateLiteralTypeSpan(tf(),fi(!1)),tt)}function fi(tt){return Wt()===20?(OA(tt),Nl()):il(18,ts._0_expected,by(20))}function $n(tt){let Jt=Ri();return Zt(C.createTemplateSpan(gc($A),fi(tt)),Jt)}function ra(){return Bl(Wt())}function kc(tt){!tt&&t.getTokenFlags()&26656&&OA(!1);let Jt=Bl(Wt());return Zo.assert(Jt.kind===16,"Template head has wrong token kind"),Jt}function Nl(){let tt=Bl(Wt());return Zo.assert(tt.kind===17||tt.kind===18,"Template fragment has wrong token kind"),tt}function ca(tt){let Jt=tt===15||tt===18,kr=t.getTokenText();return kr.substring(1,kr.length-(t.isUnterminated()?0:Jt?1:2))}function Bl(tt){let Jt=Ri(),kr=P2i(tt)?C.createTemplateLiteralLikeNode(tt,t.getTokenValue(),ca(tt),t.getTokenFlags()&7176):tt===9?E(t.getTokenValue(),t.getNumericLiteralFlags()):tt===11?N(t.getTokenValue(),void 0,t.hasExtendedUnicodeEscape()):yza(tt)?B(tt,t.getTokenValue()):Zo.fail();return t.hasExtendedUnicodeEscape()&&(kr.hasExtendedUnicodeEscape=!0),t.isUnterminated()&&(kr.isUnterminated=!0),Vs(),Zt(kr,Jt)}function $g(){return se(!0,ts.Type_expected)}function SA(){if(!t.hasPrecedingLineBreak()&&GA()===30)return iE(20,tf,30,32)}function lI(){let tt=Ri();return Zt(C.createTypeReferenceNode($g(),SA()),tt)}function lp(tt){switch(tt.kind){case 183:return Wme(tt.typeName);case 184:case 185:{let{parameters:Jt,type:kr}=tt;return H2(Jt)||lp(kr)}case 196:return lp(tt.type);default:return!1}}function Ib(tt){return Vs(),Zt(C.createTypePredicateNode(void 0,tt,tf()),tt.pos)}function Na(){let tt=Ri();return Vs(),Zt(C.createThisTypeNode(),tt)}function wd(){let tt=Ri();return Vs(),Zt(C.createJSDocAllType(),tt)}function z1(){let tt=Ri();return Vs(),Zt(C.createJSDocNonNullableType(xc(),!1),tt)}function T_(){let tt=Ri();return Vs(),Wt()===28||Wt()===20||Wt()===22||Wt()===32||Wt()===64||Wt()===52?Zt(C.createJSDocUnknownType(),tt):Zt(C.createJSDocNullableType(tf(),!1),tt)}function RC(){let tt=Ri(),Jt=Do();if(Ki(_x)){let kr=Mc(36),Xr=ph(59,!1);return Hr(Zt(C.createJSDocFunctionType(kr,Xr),tt),Jt)}return Zt(C.createTypeReferenceNode(Ca(),void 0),tt)}function Hm(){let tt=Ri(),Jt;return(Wt()===110||Wt()===105)&&(Jt=Ca(),ws(59)),Zt(C.createParameterDeclaration(void 0,void 0,Jt,void 0,YS(),void 0),tt)}function YS(){t.setSkipJsDocLeadingAsterisks(!0);let tt=Ri();if(rc(144)){let Xr=C.createJSDocNamepathType(void 0);e:for(;;)switch(Wt()){case 20:case 1:case 28:case 5:break e;default:Ju()}return t.setSkipJsDocLeadingAsterisks(!1),Zt(Xr,tt)}let Jt=rc(26),kr=jE();return t.setSkipJsDocLeadingAsterisks(!1),Jt&&(kr=Zt(C.createJSDocVariadicType(kr),tt)),Wt()===64?(Vs(),Zt(C.createJSDocOptionalType(kr),tt)):kr}function Fg(){let tt=Ri();ws(114);let Jt=se(!0),kr=t.hasPrecedingLineBreak()?void 0:xn();return Zt(C.createTypeQueryNode(Jt,kr),tt)}function hb(){let tt=Ri(),Jt=Le(!1,!0),kr=Wa(),Xr,ui;rc(96)&&(ut()||!$I()?Xr=tf():ui=JR());let Is=rc(64)?tf():void 0,Hs=C.createTypeParameterDeclaration(Jt,kr,Xr,Is);return Hs.expression=ui,Zt(Hs,tt)}function gC(){if(Wt()===30)return iE(19,hb,30,32)}function NC(tt){return Wt()===26||i1()||vee(Wt())||Wt()===60||ut(!tt)}function Y2(tt){let Jt=Of(ts.Private_identifiers_cannot_be_used_as_parameters);return Jza(Jt)===0&&!oD(tt)&&vee(Wt())&&Vs(),Jt}function U_(){return cc()||Wt()===23||Wt()===19}function DC(tt){return qI(tt)}function kC(tt){return qI(tt,!1)}function qI(tt,Jt=!0){let kr=Ri(),Xr=Do(),ui=tt?li(()=>Le(!0)):Ei(()=>Le(!0));if(Wt()===110){let ja=C.createParameterDeclaration(ui,void 0,oa(!0),void 0,Ty(),void 0),ho=DNr(ui);return ho&&mI(ho,ts.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),Hr(Zt(ja,kr),Xr)}let Is=po;po=!1;let Hs=sd(26);if(!Jt&&!U_())return;let Rs=Hr(Zt(C.createParameterDeclaration(ui,Hs,Y2(ui),sd(58),Ty(),Qm()),kr),Xr);return po=Is,Rs}function ph(tt,Jt){if(vA(tt,Jt))return Nc(jE)}function vA(tt,Jt){return tt===39?(ws(tt),!0):rc(59)?!0:Jt&&Wt()===39?(Da(ts._0_expected,by(59)),Vs(),!0):!1}function Td(tt,Jt){let kr=Yl(),Xr=Xu();Qi(!!(tt&1)),yo(!!(tt&2));let ui=tt&32?Kf(17,Hm):Kf(16,()=>Jt?DC(Xr):kC(Xr));return Qi(kr),yo(Xr),ui}function Mc(tt){if(!ws(21))return _I();let Jt=Td(tt,!0);return ws(22),Jt}function Pf(){rc(28)||MA()}function sE(tt){let Jt=Ri(),kr=Do();tt===180&&ws(105);let Xr=gC(),ui=Mc(4),Is=ph(59,!0);Pf();let Hs=tt===179?C.createCallSignature(Xr,ui,Is):C.createConstructSignature(Xr,ui,Is);return Hr(Zt(Hs,Jt),kr)}function eA(){return Wt()===23&&oo(QS)}function QS(){if(Vs(),Wt()===26||Wt()===24)return!0;if(vee(Wt())){if(Vs(),Xs())return!0}else if(Xs())Vs();else return!1;return Wt()===59||Wt()===28?!0:Wt()!==58?!1:(Vs(),Wt()===59||Wt()===28||Wt()===24)}function XS(tt,Jt,kr){let Xr=iE(16,()=>DC(!1),23,24),ui=Ty();Pf();let Is=C.createIndexSignature(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function um(tt,Jt,kr){let Xr=df(),ui=sd(58),Is;if(Wt()===21||Wt()===30){let Hs=gC(),Rs=Mc(4),ja=ph(59,!0);Is=C.createMethodSignature(kr,Xr,ui,Hs,Rs,ja)}else{let Hs=Ty();Is=C.createPropertySignature(kr,Xr,ui,Hs),Wt()===64&&(Is.initializer=Qm())}return Pf(),Hr(Zt(Is,tt),Jt)}function gm(){if(Wt()===21||Wt()===30||Wt()===139||Wt()===153)return!0;let tt=!1;for(;vee(Wt());)tt=!0,Vs();return Wt()===23?!0:(Rp()&&(tt=!0,Vs()),tt?Wt()===21||Wt()===30||Wt()===58||Wt()===59||Wt()===28||yg():!1)}function cs(){if(Wt()===21||Wt()===30)return sE(179);if(Wt()===105&&oo(na))return sE(180);let tt=Ri(),Jt=Do(),kr=Le(!1);return Ea(139)?Bb(tt,Jt,kr,177,4):Ea(153)?Bb(tt,Jt,kr,178,4):eA()?XS(tt,Jt,kr):um(tt,Jt,kr)}function na(){return Vs(),Wt()===21||Wt()===30}function ko(){return Vs()===25}function ki(){switch(Vs()){case 21:case 30:case 25:return!0}return!1}function Kl(){let tt=Ri();return Zt(C.createTypeLiteralNode(fd()),tt)}function fd(){let tt;return ws(19)?(tt=jd(4,cs),ws(20)):tt=_I(),tt}function jf(){return Vs(),Wt()===40||Wt()===41?Vs()===148:(Wt()===148&&Vs(),Wt()===23&&ef()&&Vs()===103)}function Ld(){let tt=Ri(),Jt=Ca();ws(103);let kr=tf();return Zt(C.createTypeParameterDeclaration(void 0,Jt,kr,void 0),tt)}function AC(){let tt=Ri();ws(19);let Jt;(Wt()===148||Wt()===40||Wt()===41)&&(Jt=ZA(),Jt.kind!==148&&ws(148)),ws(23);let kr=Ld(),Xr=rc(130)?tf():void 0;ws(24);let ui;(Wt()===58||Wt()===40||Wt()===41)&&(ui=ZA(),ui.kind!==58&&ws(58));let Is=Ty();MA();let Hs=jd(4,cs);return ws(20),Zt(C.createMappedTypeNode(Jt,kr,Xr,ui,Is,Hs),tt)}function JE(){let tt=Ri();if(rc(26))return Zt(C.createRestTypeNode(tf()),tt);let Jt=tf();if(_ec(Jt)&&Jt.pos===Jt.type.pos){let kr=C.createOptionalTypeNode(Jt.type);return zZ(kr,Jt),kr.flags=Jt.flags,kr}return Jt}function Ym(){return Vs()===59||Wt()===58&&Vs()===59}function vy(){return Wt()===26?H1(Vs())&&Ym():H1(Wt())&&Ym()}function K_(){if(oo(vy)){let tt=Ri(),Jt=Do(),kr=sd(26),Xr=Ca(),ui=sd(58);ws(59);let Is=JE(),Hs=C.createNamedTupleMember(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}return JE()}function od(){let tt=Ri();return Zt(C.createTupleTypeNode(iE(21,K_,23,24)),tt)}function UE(){let tt=Ri();ws(21);let Jt=tf();return ws(22),Zt(C.createParenthesizedType(Jt),tt)}function KE(){let tt;if(Wt()===128){let Jt=Ri();Vs();let kr=Zt(X(128),Jt);tt=Er([kr],Jt)}return tt}function Yp(){let tt=Ri(),Jt=Do(),kr=KE(),Xr=rc(105);Zo.assert(!kr||Xr,"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");let ui=gC(),Is=Mc(4),Hs=ph(39,!1),Rs=Xr?C.createConstructorTypeNode(kr,ui,Is,Hs):C.createFunctionTypeNode(ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function JS(){let tt=ZA();return Wt()===25?void 0:tt}function By(tt){let Jt=Ri();tt&&Vs();let kr=Wt()===112||Wt()===97||Wt()===106?ZA():Bl(Wt());return tt&&(kr=Zt(C.createPrefixUnaryExpression(41,kr),Jt)),Zt(C.createLiteralTypeNode(kr),Jt)}function $0(){return Vs(),Wt()===102}function fw(){vt|=4194304;let tt=Ri(),Jt=rc(114);ws(102),ws(21);let kr=tf(),Xr;if(rc(28)){let Hs=t.getTokenStart();ws(19);let Rs=Wt();if(Rs===118||Rs===132?Vs():Da(ts._0_expected,by(118)),ws(59),Xr=$O(Rs,!0),!ws(20)){let ja=Vme(lr);ja&&ja.code===ts._0_expected.code&&Dbt(ja,pNe(er,xt,Hs,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}}ws(22);let ui=rc(25)?$g():void 0,Is=SA();return Zt(C.createImportTypeNode(kr,Xr,ui,Is,Jt),tt)}function Q2(){return Vs(),Wt()===9||Wt()===10}function xc(){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return Ki(JS)||lI();case 67:t.reScanAsteriskEqualsToken();case 42:return wd();case 61:t.reScanQuestionToken();case 58:return T_();case 100:return RC();case 54:return z1();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return By();case 41:return oo(Q2)?By(!0):lI();case 116:return ZA();case 110:{let tt=Na();return Wt()===142&&!t.hasPrecedingLineBreak()?Ib(tt):tt}case 114:return oo($0)?fw():Fg();case 19:return oo(jf)?AC():Kl();case 23:return od();case 21:return UE();case 102:return fw();case 131:return oo(Dm)?NT():lI();case 16:return sr();default:return lI()}}function ut(tt){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!tt;case 41:return!tt&&oo(Q2);case 21:return!tt&&oo(ar);default:return Xs()}}function ar(){return Vs(),Wt()===22||NC(!1)||ut()}function Jr(){let tt=Ri(),Jt=xc();for(;!t.hasPrecedingLineBreak();)switch(Wt()){case 54:Vs(),Jt=Zt(C.createJSDocNonNullableType(Jt,!0),tt);break;case 58:if(oo(YA))return Jt;Vs(),Jt=Zt(C.createJSDocNullableType(Jt,!0),tt);break;case 23:if(ws(23),ut()){let kr=tf();ws(24),Jt=Zt(C.createIndexedAccessTypeNode(Jt,kr),tt)}else ws(24),Jt=Zt(C.createArrayTypeNode(Jt),tt);break;default:return Jt}return Jt}function Gn(tt){let Jt=Ri();return ws(tt),Zt(C.createTypeOperatorNode(tt,Ng()),Jt)}function Ts(){if(rc(96)){let tt=iA(tf);if(Sg()||Wt()!==58)return tt}}function Qo(){let tt=Ri(),Jt=Wa(),kr=Ki(Ts),Xr=C.createTypeParameterDeclaration(void 0,Jt,kr);return Zt(Xr,tt)}function vg(){let tt=Ri();return ws(140),Zt(C.createInferTypeNode(Qo()),tt)}function Ng(){let tt=Wt();switch(tt){case 143:case 158:case 148:return Gn(tt);case 140:return vg()}return Nc(Jr)}function Rf(tt){if(sB()){let Jt=Yp(),kr;return iBi(Jt)?kr=tt?ts.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:kr=tt?ts.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,mI(Jt,kr),Jt}}function uI(tt,Jt,kr){let Xr=Ri(),ui=tt===52,Is=rc(tt),Hs=Is&&Rf(ui)||Jt();if(Wt()===tt||Is){let Rs=[Hs];for(;rc(tt);)Rs.push(Rf(ui)||Jt());Hs=Zt(kr(Er(Rs,Xr)),Xr)}return Hs}function Th(){return uI(51,Ng,C.createIntersectionTypeNode)}function oE(){return uI(52,Th,C.createUnionTypeNode)}function TT(){return Vs(),Wt()===105}function sB(){return Wt()===30||Wt()===21&&oo(wy)?!0:Wt()===105||Wt()===128&&oo(TT)}function RT(){if(vee(Wt())&&Le(!1),Xs()||Wt()===110)return Vs(),!0;if(Wt()===23||Wt()===19){let tt=lr.length;return Of(),tt===lr.length}return!1}function wy(){return Vs(),!!(Wt()===22||Wt()===26||RT()&&(Wt()===59||Wt()===28||Wt()===58||Wt()===64||Wt()===22&&(Vs(),Wt()===39)))}function jE(){let tt=Ri(),Jt=Xs()&&Ki(j_),kr=tf();return Jt?Zt(C.createTypePredicateNode(void 0,Jt,kr),tt):kr}function j_(){let tt=Wa();if(Wt()===142&&!t.hasPrecedingLineBreak())return Vs(),tt}function NT(){let tt=Ri(),Jt=il(131),kr=Wt()===110?Na():Wa(),Xr=rc(142)?tf():void 0;return Zt(C.createTypePredicateNode(Jt,kr,Xr),tt)}function tf(){if(Hi&81920)return bo(81920,tf);if(sB())return Yp();let tt=Ri(),Jt=oE();if(!Sg()&&!t.hasPrecedingLineBreak()&&rc(96)){let kr=iA(tf);ws(58);let Xr=Nc(tf);ws(59);let ui=Nc(tf);return Zt(C.createConditionalTypeNode(Jt,kr,Xr,ui),tt)}return Jt}function Ty(){return rc(59)?tf():void 0}function US(){switch(Wt()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return oo(ki);default:return Xs()}}function $I(){if(US())return!0;switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return kT()?!0:Xs()}}function BA(){return Wt()!==19&&Wt()!==100&&Wt()!==86&&Wt()!==60&&$I()}function $A(){let tt=Ul();tt&&ps(!1);let Jt=Ri(),kr=zf(!0),Xr;for(;Xr=sd(28);)kr=q1(kr,Xr,zf(!0),Jt);return tt&&ps(!0),kr}function Qm(){return rc(64)?zf(!0):void 0}function zf(tt){if(mb())return Cb();let Jt=KS(tt)||oB(tt);if(Jt)return Jt;let kr=Ri(),Xr=Do(),ui=zS(0);return ui.kind===80&&Wt()===39?Ry(kr,ui,tt,Xr,void 0):TNe(ui)&&Jvi(Ko())?q1(ui,ZA(),zf(tt),kr):XR(ui,kr,tt)}function mb(){return Wt()===127?Yl()?!0:oo(Ro):!1}function R_(){return Vs(),!t.hasPrecedingLineBreak()&&Xs()}function Cb(){let tt=Ri();return Vs(),!t.hasPrecedingLineBreak()&&(Wt()===42||$I())?Zt(C.createYieldExpression(sd(42),zf(!0)),tt):Zt(C.createYieldExpression(void 0,void 0),tt)}function Ry(tt,Jt,kr,Xr,ui){Zo.assert(Wt()===39,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");let Is=C.createParameterDeclaration(void 0,void 0,Jt,void 0,void 0,void 0);Zt(Is,Jt.pos);let Hs=Er([Is],Is.pos,Is.end),Rs=il(39),ja=jS(!!ui,kr),ho=C.createArrowFunction(ui,void 0,Hs,void 0,Rs,ja);return Hr(Zt(ho,tt),Xr)}function KS(tt){let Jt=_b();if(Jt!==0)return Jt===1?aB(!0,!0):Ki(()=>zE(tt))}function _b(){return Wt()===21||Wt()===30||Wt()===134?oo(z_):Wt()===39?1:0}function z_(){if(Wt()===134&&(Vs(),t.hasPrecedingLineBreak()||Wt()!==21&&Wt()!==30))return 0;let tt=Wt(),Jt=Vs();if(tt===21){if(Jt===22)switch(Vs()){case 39:case 59:case 19:return 1;default:return 0}if(Jt===23||Jt===19)return 2;if(Jt===26)return 1;if(vee(Jt)&&Jt!==134&&oo(ef))return Vs()===130?0:1;if(!Xs()&&Jt!==110)return 0;switch(Vs()){case 59:return 1;case 58:return Vs(),Wt()===59||Wt()===28||Wt()===64||Wt()===22?1:0;case 28:case 64:case 22:return 2}return 0}else return Zo.assert(tt===30),!Xs()&&Wt()!==87?0:Xt===1?oo(()=>{rc(87);let kr=Vs();if(kr===96)switch(Vs()){case 64:case 32:case 44:return!1;default:return!0}else if(kr===28||kr===64)return!0;return!1})?1:0:2}function zE(tt){let Jt=t.getTokenStart();if(Nn!=null&&Nn.has(Jt))return;let kr=aB(!1,tt);return kr||(Nn||(Nn=new Set)).add(Jt),kr}function oB(tt){if(Wt()===134&&oo(DT)===1){let Jt=Ri(),kr=Do(),Xr=ft(),ui=zS(0);return Ry(Jt,ui,tt,kr,Xr)}}function DT(){if(Wt()===134){if(Vs(),t.hasPrecedingLineBreak()||Wt()===39)return 0;let tt=zS(0);if(!t.hasPrecedingLineBreak()&&tt.kind===80&&Wt()===39)return 1}return 0}function aB(tt,Jt){let kr=Ri(),Xr=Do(),ui=ft(),Is=oD(ui,Gbt)?2:0,Hs=gC(),Rs;if(ws(21)){if(tt)Rs=Td(Is,tt);else{let Tb=Td(Is,tt);if(!Tb)return;Rs=Tb}if(!ws(22)&&!tt)return}else{if(!tt)return;Rs=_I()}let ja=Wt()===59,ho=ph(59,!1);if(ho&&!tt&&lp(ho))return;let sl=ho;for(;sl?.kind===196;)sl=sl.type;let Nd=sl&&yec(sl);if(!tt&&Wt()!==39&&(Nd||Wt()!==19))return;let ed=Wt(),Og=il(39),Nh=ed===39||ed===19?jS(oD(ui,Gbt),Jt):Wa();if(!Jt&&ja&&Wt()!==59)return;let o1=C.createArrowFunction(ui,Hs,Rs,ho,Og,Nh);return Hr(Zt(o1,kr),Xr)}function jS(tt,Jt){if(Wt()===19)return cE(tt?2:0);if(Wt()!==27&&Wt()!==100&&Wt()!==86&&Xc()&&!BA())return cE(16|(tt?2:0));let kr=po;po=!1;let Xr=tt?li(()=>zf(Jt)):Ei(()=>zf(Jt));return po=kr,Xr}function XR(tt,Jt,kr){let Xr=sd(58);if(!Xr)return tt;let ui;return Zt(C.createConditionalExpression(tt,Xr,bo(r,()=>zf(!1)),ui=il(59),ANr(ui)?zf(kr):yn(80,!1,ts._0_expected,by(59))),Jt)}function zS(tt){let Jt=Ri(),kr=JR();return X2(tt,kr,Jt)}function qE(tt){return tt===103||tt===165}function X2(tt,Jt,kr){for(;;){Ko();let Xr=KRr(Wt());if(!(Wt()===43?Xr>=tt:Xr>tt)||Wt()===103&&Wc())break;if(Wt()===130||Wt()===152){if(t.hasPrecedingLineBreak())break;{let ui=Wt();Vs(),Jt=ui===152?pn(Jt,tf()):J2(Jt,tf())}}else Jt=q1(Jt,ZA(),zS(Xr),kr)}return Jt}function kT(){return Wc()&&Wt()===103?!1:KRr(Wt())>0}function pn(tt,Jt){return Zt(C.createSatisfiesExpression(tt,Jt),tt.pos)}function q1(tt,Jt,kr,Xr){return Zt(C.createBinaryExpression(tt,Jt,kr),Xr)}function J2(tt,Jt){return Zt(C.createAsExpression(tt,Jt),tt.pos)}function ey(){let tt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru(ty)),tt)}function up(){let tt=Ri();return Zt(C.createDeleteExpression(Ru(ty)),tt)}function Iw(){let tt=Ri();return Zt(C.createTypeOfExpression(Ru(ty)),tt)}function cB(){let tt=Ri();return Zt(C.createVoidExpression(Ru(ty)),tt)}function RD(){return Wt()===135?Xu()?!0:oo(Ro):!1}function Rd(){let tt=Ri();return Zt(C.createAwaitExpression(Ru(ty)),tt)}function JR(){if(cF()){let kr=Ri(),Xr=$1();return Wt()===43?X2(KRr(Wt()),Xr,kr):Xr}let tt=Wt(),Jt=ty();if(Wt()===43){let kr=dj(xt,Jt.pos),{end:Xr}=Jt;Jt.kind===216?_g(kr,Xr,ts.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(Zo.assert(URr(tt)),_g(kr,Xr,ts.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,by(tt)))}return Jt}function ty(){switch(Wt()){case 40:case 41:case 55:case 54:return ey();case 91:return up();case 114:return Iw();case 116:return cB();case 30:return Xt===1?t1(!0,void 0,void 0,!0):rf();case 135:if(RD())return Rd();default:return $1()}}function cF(){switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(Xt!==1)return!1;default:return!0}}function $1(){if(Wt()===46||Wt()===47){let Jt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru($E)),Jt)}else if(Xt===1&&Wt()===30&&oo(_d))return t1(!0);let tt=$E();if(Zo.assert(TNe(tt)),(Wt()===46||Wt()===47)&&!t.hasPrecedingLineBreak()){let Jt=Wt();return Vs(),Zt(C.createPostfixUnaryExpression(tt,Jt),tt.pos)}return tt}function $E(){let tt=Ri(),Jt;return Wt()===102?oo(na)?(vt|=4194304,Jt=ZA()):oo(ko)?(Vs(),Vs(),Jt=Zt(C.createMetaProperty(102,Ca()),tt),vt|=8388608):Jt=N_():Jt=Wt()===108?e1():N_(),r1(tt,Jt)}function N_(){let tt=Ri(),Jt=b0();return Ih(tt,Jt,!0)}function e1(){let tt=Ri(),Jt=ZA();if(Wt()===30){let kr=Ri(),Xr=Ki(hw);Xr!==void 0&&(_g(kr,Ri(),ts.super_may_not_use_type_arguments),xC()||(Jt=C.createExpressionWithTypeArguments(Jt,Xr)))}return Wt()===21||Wt()===25||Wt()===23?Jt:(il(25,ts.super_must_be_followed_by_an_argument_list_or_member_access),Zt(ce(Jt,K(!0,!0,!0)),tt))}function t1(tt,Jt,kr,Xr=!1){let ui=Ri(),Is=Rh(tt),Hs;if(Is.kind===286){let Rs=yb(Is),ja,ho=Rs[Rs.length-1];if(ho?.kind===284&&!hce(ho.openingElement.tagName,ho.closingElement.tagName)&&hce(Is.tagName,ho.closingElement.tagName)){let sl=ho.children.end,Nd=Zt(C.createJsxElement(ho.openingElement,ho.children,Zt(C.createJsxClosingElement(Zt(F(""),sl,sl)),sl,sl)),ho.openingElement.pos,sl);Rs=Er([...Rs.slice(0,Rs.length-1),Nd],Rs.pos,sl),ja=ho.closingElement}else ja=lc(Is,tt),hce(Is.tagName,ja.tagName)||(kr&&tSi(kr)&&hce(ja.tagName,kr.tagName)?mI(Is.tagName,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,Is.tagName)):mI(ja.tagName,ts.Expected_corresponding_JSX_closing_tag_for_0,AJe(xt,Is.tagName)));Hs=Zt(C.createJsxElement(Is,Rs,ja),ui)}else Is.kind===289?Hs=Zt(C.createJsxFragment(Is,yb(Is),fh(tt)),ui):(Zo.assert(Is.kind===285),Hs=Is);if(!Xr&&tt&&Wt()===30){let Rs=typeof Jt>"u"?Hs.pos:Jt,ja=Ki(()=>t1(!0,Rs));if(ja){let ho=yn(28,!1);return j2i(ho,ja.pos,0),_g(dj(xt,Rs),ja.end,ts.JSX_expressions_must_have_one_parent_element),Zt(C.createBinaryExpression(Hs,ho,ja),ui)}}return Hs}function ry(){let tt=Ri(),Jt=C.createJsxText(t.getTokenValue(),qr===13);return qr=t.scanJsxToken(),Zt(Jt,tt)}function xT(tt,Jt){switch(Jt){case 1:if(fec(tt))mI(tt,ts.JSX_fragment_has_no_corresponding_closing_tag);else{let kr=tt.tagName,Xr=Math.min(dj(xt,kr.pos),kr.end);_g(Xr,kr.end,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,tt.tagName))}return;case 31:case 7:return;case 12:case 13:return ry();case 19:return ND(!1);case 30:return t1(!1,void 0,tt);default:return Zo.assertNever(Jt)}}function yb(tt){let Jt=[],kr=Ri(),Xr=Fn;for(Fn|=16384;;){let ui=xT(tt,qr=t.reScanJsxToken());if(!ui||(Jt.push(ui),tSi(tt)&&ui?.kind===284&&!hce(ui.openingElement.tagName,ui.closingElement.tagName)&&hce(tt.tagName,ui.closingElement.tagName)))break}return Fn=Xr,Er(Jt,kr)}function r_(){let tt=Ri();return Zt(C.createJsxAttributes(jd(13,DD)),tt)}function Rh(tt){let Jt=Ri();if(ws(30),Wt()===32)return Uf(),Zt(C.createJsxOpeningFragment(),Jt);let kr=bb(),Xr=Hi&524288?void 0:xn(),ui=r_(),Is;return Wt()===32?(Uf(),Is=C.createJsxOpeningElement(kr,Xr,ui)):(ws(44),ws(32,void 0,!1)&&(tt?Vs():Uf()),Is=C.createJsxSelfClosingElement(kr,Xr,ui)),Zt(Is,Jt)}function bb(){let tt=Ri(),Jt=lB();if(CBi(Jt))return Jt;let kr=Jt;for(;rc(25);)kr=Zt(ce(kr,K(!0,!1,!1)),tt);return kr}function lB(){let tt=Ri();dl();let Jt=Wt()===110,kr=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(kr,ld()),tt)):Jt?Zt(C.createToken(110),tt):kr}function ND(tt){let Jt=Ri();if(!ws(19))return;let kr,Xr;return Wt()!==20&&(tt||(kr=sd(26)),Xr=$A()),tt?ws(20):ws(20,void 0,!1)&&Uf(),Zt(C.createJsxExpression(kr,Xr),Jt)}function DD(){if(Wt()===19)return UR();let tt=Ri();return Zt(C.createJsxAttribute(kD(),q_()),tt)}function q_(){if(Wt()===64){if(Kd()===11)return ra();if(Wt()===19)return ND(!0);if(Wt()===30)return t1(!0);Da(ts.or_JSX_element_expected)}}function kD(){let tt=Ri();dl();let Jt=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(Jt,ld()),tt)):Jt}function UR(){let tt=Ri();ws(19),ws(26);let Jt=$A();return ws(20),Zt(C.createJsxSpreadAttribute(Jt),tt)}function lc(tt,Jt){let kr=Ri();ws(31);let Xr=bb();return ws(32,void 0,!1)&&(Jt||!hce(tt.tagName,Xr)?Vs():Uf()),Zt(C.createJsxClosingElement(Xr),kr)}function fh(tt){let Jt=Ri();return ws(31),ws(32,ts.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(tt?Vs():Uf()),Zt(C.createJsxJsxClosingFragment(),Jt)}function rf(){Zo.assert(Xt!==1,"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");let tt=Ri();ws(30);let Jt=tf();ws(32);let kr=ty();return Zt(C.createTypeAssertion(Jt,kr),tt)}function yI(){return Vs(),H1(Wt())||Wt()===23||xC()}function aE(){return Wt()===29&&oo(yI)}function qS(tt){if(tt.flags&64)return!0;if(Vbt(tt)){let Jt=tt.expression;for(;Vbt(Jt)&&!(Jt.flags&64);)Jt=Jt.expression;if(Jt.flags&64){for(;Vbt(tt);)tt.flags|=64,tt=tt.expression;return!0}}return!1}function Qp(tt,Jt,kr){let Xr=K(!0,!0,!0),ui=kr||qS(Jt),Is=ui?fe(Jt,kr,Xr):ce(Jt,Xr);if(ui&&Yme(Is.name)&&mI(Is.name,ts.An_optional_chain_cannot_contain_private_identifiers),aec(Jt)&&Jt.typeArguments){let Hs=Jt.typeArguments.pos-1,Rs=dj(xt,Jt.typeArguments.end)+1;_g(Hs,Rs,ts.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return Zt(Is,tt)}function uB(tt,Jt,kr){let Xr;if(Wt()===24)Xr=yn(80,!0,ts.An_element_access_expression_should_take_an_argument);else{let Is=gc($A);eEt(Is)&&(Is.text=ls(Is.text)),Xr=Is}ws(24);let ui=kr||qS(Jt)?de(Jt,kr,Xr):ue(Jt,Xr);return Zt(ui,tt)}function Ih(tt,Jt,kr){for(;;){let Xr,ui=!1;if(kr&&aE()?(Xr=il(29),ui=H1(Wt())):ui=rc(25),ui){Jt=Qp(tt,Jt,Xr);continue}if((Xr||!Ul())&&rc(23)){Jt=uB(tt,Jt,Xr);continue}if(xC()){Jt=!Xr&&Jt.kind===233?$_(tt,Jt.expression,Xr,Jt.typeArguments):$_(tt,Jt,Xr,void 0);continue}if(!Xr){if(Wt()===54&&!t.hasPrecedingLineBreak()){Vs(),Jt=Zt(C.createNonNullExpression(Jt),tt);continue}let Is=Ki(hw);if(Is){Jt=Zt(C.createExpressionWithTypeArguments(Jt,Is),tt);continue}}return Jt}}function xC(){return Wt()===15||Wt()===16}function $_(tt,Jt,kr,Xr){let ui=C.createTaggedTemplateExpression(Jt,Xr,Wt()===15?(OA(!0),ra()):gt(!0));return(kr||Jt.flags&64)&&(ui.flags|=64),ui.questionDotToken=kr,Zt(ui,tt)}function r1(tt,Jt){for(;;){Jt=Ih(tt,Jt,!0);let kr,Xr=sd(29);if(Xr&&(kr=Ki(hw),xC())){Jt=$_(tt,Jt,Xr,kr);continue}if(kr||Wt()===21){!Xr&&Jt.kind===233&&(kr=Jt.typeArguments,Jt=Jt.expression);let ui=gB(),Is=Xr||qS(Jt)?Se(Jt,Xr,kr,ui):be(Jt,kr,ui);Jt=Zt(Is,tt);continue}if(Xr){let ui=yn(80,!1,ts.Identifier_expected);Jt=Zt(fe(Jt,Xr,ui),tt)}break}return Jt}function gB(){ws(21);let tt=Kf(11,bI);return ws(22),tt}function hw(){if(Hi&524288||GA()!==30)return;Vs();let tt=Kf(20,tf);if(Ko()===32)return Vs(),tt&>()?tt:void 0}function GT(){switch(Wt()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return t.hasPrecedingLineBreak()||kT()||!$I()}function b0(){switch(Wt()){case 15:t.getTokenFlags()&26656&&OA(!1);case 9:case 10:case 11:return ra();case 110:case 108:case 106:case 112:case 97:return ZA();case 21:return ia();case 23:return ag();case 19:return n1();case 134:if(!oo(t2))break;return U2();case 60:return Ur();case 86:return mi();case 100:return U2();case 105:return n_();case 44:case 69:if(Eg()===14)return ra();break;case 16:return gt(!1);case 81:return so()}return Wa(ts.Expression_expected)}function ia(){let tt=Ri(),Jt=Do();ws(21);let kr=gc($A);return ws(22),Hr(Zt(k(kr),tt),Jt)}function e2(){let tt=Ri();ws(26);let Jt=zf(!0);return Zt(C.createSpreadElement(Jt),tt)}function yd(){return Wt()===26?e2():Wt()===28?Zt(C.createOmittedExpression(),Ri()):zf(!0)}function bI(){return bo(r,yd)}function ag(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(23),Xr=t.hasPrecedingLineBreak(),ui=Kf(15,yd);return Fl(23,24,kr,Jt),Zt(ae(ui,Xr),tt)}function Eb(){let tt=Ri(),Jt=Do();if(sd(26)){let ho=zf(!0);return Hr(Zt(C.createSpreadAssignment(ho),tt),Jt)}let kr=Le(!0);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);let Xr=sd(42),ui=Xs(),Is=df(),Hs=sd(58),Rs=sd(54);if(Xr||Wt()===21||Wt()===30)return vb(tt,Jt,kr,Xr,Is,Hs,Rs);let ja;if(ui&&Wt()!==59){let ho=sd(64),sl=ho?gc(()=>zf(!0)):void 0;ja=C.createShorthandPropertyAssignment(Is,sl),ja.equalsToken=ho}else{ws(59);let ho=gc(()=>zf(!0));ja=C.createPropertyAssignment(Is,ho)}return ja.modifiers=kr,ja.questionToken=Hs,ja.exclamationToken=Rs,Hr(Zt(ja,tt),Jt)}function n1(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(19),Xr=t.hasPrecedingLineBreak(),ui=Kf(12,Eb,!0);return Fl(19,20,kr,Jt),Zt(ne(ui,Xr),tt)}function U2(){let tt=Ul();ps(!1);let Jt=Ri(),kr=Do(),Xr=Le(!1);ws(100);let ui=sd(42),Is=ui?1:0,Hs=oD(Xr,Gbt)?2:0,Rs=Is&&Hs?Ps(e0):Is?ma(e0):Hs?li(e0):e0(),ja=gC(),ho=Mc(Is|Hs),sl=ph(59,!1),Nd=cE(Is|Hs);ps(tt);let ed=C.createFunctionExpression(Xr,ui,Rs,ja,ho,sl,Nd);return Hr(Zt(ed,Jt),kr)}function e0(){return cc()?Fs():void 0}function n_(){let tt=Ri();if(ws(105),rc(25)){let Is=Ca();return Zt(C.createMetaProperty(105,Is),tt)}let Jt=Ri(),kr=Ih(Jt,b0(),!1),Xr;kr.kind===233&&(Xr=kr.typeArguments,kr=kr.expression),Wt()===29&&Da(ts.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,AJe(xt,kr));let ui=Wt()===21?gB():void 0;return Zt(De(kr,Xr,ui),tt)}function Xp(tt,Jt){let kr=Ri(),Xr=Do(),ui=t.getTokenStart(),Is=ws(19,Jt);if(Is||tt){let Hs=t.hasPrecedingLineBreak(),Rs=jd(1,Am);Fl(19,20,Is,ui);let ja=Hr(Zt(et(Rs,Hs),kr),Xr);return Wt()===64&&(Da(ts.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),Vs()),ja}else{let Hs=_I();return Hr(Zt(et(Hs,void 0),kr),Xr)}}function cE(tt,Jt){let kr=Yl();Qi(!!(tt&1));let Xr=Xu();yo(!!(tt&2));let ui=po;po=!1;let Is=Ul();Is&&ps(!1);let Hs=Xp(!!(tt&16),Jt);return Is&&ps(!0),po=ui,Qi(kr),yo(Xr),Hs}function lE(){let tt=Ri(),Jt=Do();return ws(27),Hr(Zt(C.createEmptyStatement(),tt),Jt)}function Ip(){let tt=Ri(),Jt=Do();ws(101);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am(),Hs=rc(93)?Am():void 0;return Hr(Zt(je(ui,Is,Hs),tt),Jt)}function Xh(){let tt=Ri(),Jt=Do();ws(92);let kr=Am();ws(117);let Xr=t.getTokenStart(),ui=ws(21),Is=gc($A);return Fl(21,22,ui,Xr),rc(27),Hr(Zt(C.createDoStatement(kr,Is),tt),Jt)}function E0(){let tt=Ri(),Jt=Do();ws(117);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am();return Hr(Zt(St(ui,Is),tt),Jt)}function aA(){let tt=Ri(),Jt=Do();ws(99);let kr=sd(135);ws(21);let Xr;Wt()!==27&&(Wt()===115||Wt()===121||Wt()===87||Wt()===160&&oo(yL)||Wt()===135&&oo(ny)?Xr=j(!0):Xr=Cg($A));let ui;if(kr?ws(165):rc(165)){let Is=gc(()=>zf(!0));ws(22),ui=Yt(kr,Xr,Is,Am())}else if(rc(103)){let Is=gc($A);ws(22),ui=C.createForInStatement(Xr,Is,Am())}else{ws(27);let Is=Wt()!==27&&Wt()!==22?gc($A):void 0;ws(27);let Hs=Wt()!==22?gc($A):void 0;ws(22),ui=At(Xr,Is,Hs,Am())}return Hr(Zt(ui,tt),Jt)}function fu(tt){let Jt=Ri(),kr=Do();ws(tt===252?83:88);let Xr=yg()?void 0:Wa();MA();let ui=tt===252?C.createBreakStatement(Xr):C.createContinueStatement(Xr);return Hr(Zt(ui,Jt),kr)}function Jp(){let tt=Ri(),Jt=Do();ws(107);let kr=yg()?void 0:gc($A);return MA(),Hr(Zt(C.createReturnStatement(kr),tt),Jt)}function dC(){let tt=Ri(),Jt=Do();ws(118);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Qa(67108864,Am);return Hr(Zt(C.createWithStatement(ui,Is),tt),Jt)}function uE(){let tt=Ri(),Jt=Do();ws(84);let kr=gc($A);ws(59);let Xr=jd(3,Am);return Hr(Zt(C.createCaseClause(kr,Xr),tt),Jt)}function eh(){let tt=Ri();ws(90),ws(59);let Jt=jd(3,Am);return Zt(C.createDefaultClause(Jt),tt)}function Wf(){return Wt()===84?uE():eh()}function Mo(){let tt=Ri();ws(19);let Jt=jd(2,Wf);return ws(20),Zt(C.createCaseBlock(Jt),tt)}function gp(){let tt=Ri(),Jt=Do();ws(109),ws(21);let kr=gc($A);ws(22);let Xr=Mo();return Hr(Zt(C.createSwitchStatement(kr,Xr),tt),Jt)}function lF(){let tt=Ri(),Jt=Do();ws(111);let kr=t.hasPrecedingLineBreak()?void 0:gc($A);return kr===void 0&&(jt++,kr=Zt(F(""),Ri())),Mp()||Ma(kr),Hr(Zt(C.createThrowStatement(kr),tt),Jt)}function uF(){let tt=Ri(),Jt=Do();ws(113);let kr=Xp(!1),Xr=Wt()===85?gE():void 0,ui;return(!Xr||Wt()===98)&&(ws(98,ts.catch_or_finally_expected),ui=Xp(!1)),Hr(Zt(C.createTryStatement(kr,Xr,ui),tt),Jt)}function gE(){let tt=Ri();ws(85);let Jt;rc(21)?(Jt=Vd(),ws(22)):Jt=void 0;let kr=Xp(!1);return Zt(C.createCatchClause(Jt,kr),tt)}function FT(){let tt=Ri(),Jt=Do();return ws(89),MA(),Hr(Zt(C.createDebuggerStatement(),tt),Jt)}function Np(){let tt=Ri(),Jt=Do(),kr,Xr=Wt()===21,ui=gc($A);return $C(ui)&&rc(59)?kr=C.createLabeledStatement(ui,Am()):(Mp()||Ma(ui),kr=Me(ui),Xr&&(Jt=!1)),Hr(Zt(kr,tt),Jt)}function Dm(){return Vs(),H1(Wt())&&!t.hasPrecedingLineBreak()}function Dp(){return Vs(),Wt()===86&&!t.hasPrecedingLineBreak()}function t2(){return Vs(),Wt()===100&&!t.hasPrecedingLineBreak()}function Ro(){return Vs(),(H1(Wt())||Wt()===9||Wt()===10||Wt()===11)&&!t.hasPrecedingLineBreak()}function AE(){for(;;)switch(Wt()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return Ou();case 135:return hp();case 120:case 156:return R_();case 144:case 145:return qf();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:let tt=Wt();if(Vs(),t.hasPrecedingLineBreak())return!1;if(tt===138&&Wt()===156)return!0;continue;case 162:return Vs(),Wt()===19||Wt()===80||Wt()===95;case 102:return Vs(),Wt()===11||Wt()===42||Wt()===19||H1(Wt());case 95:let Jt=Vs();if(Jt===156&&(Jt=oo(Vs)),Jt===64||Jt===42||Jt===19||Jt===90||Jt===130||Jt===60)return!0;continue;case 126:Vs();continue;default:return!1}}function AB(){return oo(AE)}function Xc(){switch(Wt()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:return!0;case 102:return AB()||oo(ki);case 87:case 95:return AB();case 134:case 138:case 120:case 144:case 145:case 156:case 162:return!0;case 129:case 125:case 123:case 124:case 126:case 148:return AB()||!oo(Dm);default:return $I()}}function iu(){return Vs(),cc()||Wt()===19||Wt()===23}function dE(){return oo(iu)}function yL(){return KR(!0)}function KR(tt){return Vs(),tt&&Wt()===165?!1:(cc()||Wt()===19)&&!t.hasPrecedingLineBreak()}function Ou(){return oo(KR)}function ny(tt){return Vs()===160?KR(tt):!1}function hp(){return oo(ny)}function Am(){switch(Wt()){case 27:return lE();case 19:return Xp(!1);case 115:return Id(Ri(),Do(),void 0);case 121:if(dE())return Id(Ri(),Do(),void 0);break;case 135:if(hp())return Id(Ri(),Do(),void 0);break;case 160:if(Ou())return Id(Ri(),Do(),void 0);break;case 100:return fB(Ri(),Do(),void 0);case 86:return Vi(Ri(),Do(),void 0);case 101:return Ip();case 92:return Xh();case 117:return E0();case 99:return aA();case 88:return fu(251);case 83:return fu(252);case 107:return Jp();case 118:return dC();case 109:return gp();case 111:return lF();case 113:case 85:case 98:return uF();case 89:return FT();case 60:return i_();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(AB())return i_();break}return Np()}function K2(tt){return tt.kind===138}function i_(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(oD(kr,K2)){let Xr=dB(tt);if(Xr)return Xr;for(let ui of kr)ui.flags|=33554432;return Qa(33554432,()=>ZT(tt,Jt,kr))}else return ZT(tt,Jt,kr)}function dB(tt){return Qa(33554432,()=>{let Jt=Hp(Fn,tt);if(Jt)return uC(Jt)})}function ZT(tt,Jt,kr){switch(Wt()){case 115:case 121:case 87:case 160:case 135:return Id(tt,Jt,kr);case 100:return fB(tt,Jt,kr);case 86:return Vi(tt,Jt,kr);case 120:return Po(tt,Jt,kr);case 156:return ec(tt,Jt,kr);case 94:return dc(tt,Jt,kr);case 162:case 144:case 145:return $f(tt,Jt,kr);case 102:return qO(tt,Jt,kr);case 95:switch(Vs(),Wt()){case 90:case 64:return sY(tt,Jt,kr);case 130:return Yu(tt,Jt,kr);default:return iy(tt,Jt,kr)}default:if(kr){let Xr=yn(282,!0,ts.Declaration_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}return}}function Cx(){return Vs()===11}function pB(){return Vs(),Wt()===161||Wt()===64}function qf(){return Vs(),!t.hasPrecedingLineBreak()&&(Xs()||Wt()===11)}function Jh(tt,Jt){if(Wt()!==19){if(tt&4){Pf();return}if(yg()){MA();return}}return cE(tt,Jt)}function $S(){let tt=Ri();if(Wt()===28)return Zt(C.createOmittedExpression(),tt);let Jt=sd(26),kr=Of(),Xr=Qm();return Zt(C.createBindingElement(Jt,void 0,kr,Xr),tt)}function Sb(){let tt=Ri(),Jt=sd(26),kr=cc(),Xr=df(),ui;kr&&Wt()!==59?(ui=Xr,Xr=void 0):(ws(59),ui=Of());let Is=Qm();return Zt(C.createBindingElement(Jt,Xr,ui,Is),tt)}function mp(){let tt=Ri();ws(19);let Jt=gc(()=>Kf(9,Sb));return ws(20),Zt(C.createObjectBindingPattern(Jt),tt)}function r2(){let tt=Ri();ws(23);let Jt=gc(()=>Kf(10,$S));return ws(24),Zt(C.createArrayBindingPattern(Jt),tt)}function i1(){return Wt()===19||Wt()===23||Wt()===81||cc()}function Of(tt){return Wt()===23?r2():Wt()===19?mp():Fs(tt)}function pE(){return Vd(!0)}function Vd(tt){let Jt=Ri(),kr=Do(),Xr=Of(ts.Private_identifiers_are_not_allowed_in_variable_declarations),ui;tt&&Xr.kind===80&&Wt()===54&&!t.hasPrecedingLineBreak()&&(ui=ZA());let Is=Ty(),Hs=qE(Wt())?void 0:Qm(),Rs=Tr(Xr,ui,Is,Hs);return Hr(Zt(Rs,Jt),kr)}function j(tt){let Jt=Ri(),kr=0;switch(Wt()){case 115:break;case 121:kr|=1;break;case 87:kr|=2;break;case 160:kr|=4;break;case 135:Zo.assert(hp()),kr|=6,Vs();break;default:Zo.fail()}Vs();let Xr;if(Wt()===165&&oo(Z))Xr=_I();else{let ui=Wc();Or(tt),Xr=Kf(8,tt?Vd:pE),Or(ui)}return Zt(Nr(Xr,kr),Jt)}function Z(){return ef()&&Vs()===22}function Id(tt,Jt,kr){let Xr=j(!1);MA();let ui=ct(kr,Xr);return Hr(Zt(ui,tt),Jt)}function fB(tt,Jt,kr){let Xr=Xu(),ui=fO(kr);ws(100);let Is=sd(42),Hs=ui&2048?e0():Fs(),Rs=Is?1:0,ja=ui&1024?2:0,ho=gC();ui&32&&yo(!0);let sl=Mc(Rs|ja),Nd=ph(59,!1),ed=Jh(Rs|ja,ts.or_expected);yo(Xr);let Og=C.createFunctionDeclaration(kr,Is,Hs,ho,sl,Nd,ed);return Hr(Zt(Og,tt),Jt)}function ev(){if(Wt()===137)return ws(137);if(Wt()===11&&oo(Vs)===21)return Ki(()=>{let tt=ra();return tt.text==="constructor"?tt:void 0})}function Ny(tt,Jt,kr){return Ki(()=>{if(ev()){let Xr=gC(),ui=Mc(0),Is=ph(59,!1),Hs=Jh(0,ts.or_expected),Rs=C.createConstructorDeclaration(kr,ui,Hs);return Rs.typeParameters=Xr,Rs.type=Is,Hr(Zt(Rs,tt),Jt)}})}function vb(tt,Jt,kr,Xr,ui,Is,Hs,Rs){let ja=Xr?1:0,ho=oD(kr,Gbt)?2:0,sl=gC(),Nd=Mc(ja|ho),ed=ph(59,!1),Og=Jh(ja|ho,Rs),Nh=C.createMethodDeclaration(kr,Xr,ui,Is,sl,Nd,ed,Og);return Nh.exclamationToken=Hs,Hr(Zt(Nh,tt),Jt)}function xD(tt,Jt,kr,Xr,ui){let Is=!ui&&!t.hasPrecedingLineBreak()?sd(54):void 0,Hs=Ty(),Rs=bo(90112,Qm);Tf(Xr,Hs,Rs);let ja=C.createPropertyDeclaration(kr,Xr,ui||Is,Hs,Rs);return Hr(Zt(ja,tt),Jt)}function IB(tt,Jt,kr){let Xr=sd(42),ui=df(),Is=sd(58);return Xr||Wt()===21||Wt()===30?vb(tt,Jt,kr,Xr,ui,Is,void 0,ts.or_expected):xD(tt,Jt,kr,ui,Is)}function Bb(tt,Jt,kr,Xr,ui){let Is=df(),Hs=gC(),Rs=Mc(0),ja=ph(59,!1),ho=Jh(ui),sl=Xr===177?C.createGetAccessorDeclaration(kr,Is,Rs,ja,ho):C.createSetAccessorDeclaration(kr,Is,Rs,ho);return sl.typeParameters=Hs,jbt(sl)&&(sl.type=ja),Hr(Zt(sl,tt),Jt)}function bL(){let tt;if(Wt()===60)return!0;for(;vee(Wt());){if(tt=Wt(),Sza(tt))return!0;Vs()}if(Wt()===42||(Rp()&&(tt=Wt(),Vs()),Wt()===23))return!0;if(tt!==void 0){if(!Cce(tt)||tt===153||tt===139)return!0;switch(Wt()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return yg()}}return!1}function gF(tt,Jt,kr){il(126);let Xr=x(),ui=Hr(Zt(C.createClassStaticBlockDeclaration(Xr),tt),Jt);return ui.modifiers=kr,ui}function x(){let tt=Yl(),Jt=Xu();Qi(!1),yo(!0);let kr=Xp(!1);return Qi(tt),yo(Jt),kr}function L(){if(Xu()&&Wt()===135){let tt=Ri(),Jt=Wa(ts.Expression_expected);Vs();let kr=Ih(tt,Jt,!0);return r1(tt,kr)}return $E()}function te(){let tt=Ri();if(!rc(60))return;let Jt=vu(L);return Zt(C.createDecorator(Jt),tt)}function Re(tt,Jt,kr){let Xr=Ri(),ui=Wt();if(Wt()===87&&Jt){if(!Ki(Ml))return}else if(kr&&Wt()===126&&oo(z2)||tt&&Wt()===126||!aa())return;return Zt(X(ui),Xr)}function Le(tt,Jt,kr){let Xr=Ri(),ui,Is,Hs,Rs=!1,ja=!1,ho=!1;if(tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is);for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs),ja=!0;if(ja&&tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is),ho=!0;if(ho)for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs);return ui&&Er(ui,Xr)}function ft(){let tt;if(Wt()===134){let Jt=Ri();Vs();let kr=Zt(X(134),Jt);tt=Er([kr],Jt)}return tt}function dr(){let tt=Ri(),Jt=Do();if(Wt()===27)return Vs(),Hr(Zt(C.createSemicolonClassElement(),tt),Jt);let kr=Le(!0,!0,!0);if(Wt()===126&&oo(z2))return gF(tt,Jt,kr);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);if(Wt()===137||Wt()===11){let Xr=Ny(tt,Jt,kr);if(Xr)return Xr}if(eA())return XS(tt,Jt,kr);if(H1(Wt())||Wt()===11||Wt()===9||Wt()===10||Wt()===42||Wt()===23)if(oD(kr,K2)){for(let Xr of kr)Xr.flags|=33554432;return Qa(33554432,()=>IB(tt,Jt,kr))}else return IB(tt,Jt,kr);if(kr){let Xr=yn(80,!0,ts.Declaration_expected);return xD(tt,Jt,kr,Xr,void 0)}return Zo.fail("Should not have attempted to parse class member declaration.")}function Ur(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(Wt()===86)return Ta(tt,Jt,kr,231);let Xr=yn(282,!0,ts.Expression_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}function mi(){return Ta(Ri(),Do(),void 0,231)}function Vi(tt,Jt,kr){return Ta(tt,Jt,kr,263)}function Ta(tt,Jt,kr,Xr){let ui=Xu();ws(86);let Is=Sl(),Hs=gC();oD(kr,T$a)&&yo(!0);let Rs=Wg(),ja;ws(19)?(ja=Ci(),ws(20)):ja=_I(),yo(ui);let ho=Xr===263?C.createClassDeclaration(kr,Is,Hs,Rs,ja):C.createClassExpression(kr,Is,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function Sl(){return cc()&&!Ho()?oa(cc()):void 0}function Ho(){return Wt()===119&&oo(ip)}function Wg(){if(rn())return jd(22,cA)}function cA(){let tt=Ri(),Jt=Wt();Zo.assert(Jt===96||Jt===119),Vs();let kr=Kf(7,th);return Zt(C.createHeritageClause(Jt,kr),tt)}function th(){let tt=Ri(),Jt=$E();if(Jt.kind===233)return Jt;let kr=xn();return Zt(C.createExpressionWithTypeArguments(Jt,kr),tt)}function xn(){return Wt()===30?iE(20,tf,30,32):void 0}function rn(){return Wt()===96||Wt()===119}function Ci(){return jd(5,dr)}function Po(tt,Jt,kr){ws(120);let Xr=Wa(),ui=gC(),Is=Wg(),Hs=fd(),Rs=C.createInterfaceDeclaration(kr,Xr,ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function ec(tt,Jt,kr){ws(156),t.hasPrecedingLineBreak()&&Da(ts.Line_break_not_permitted_here);let Xr=Wa(),ui=gC();ws(64);let Is=Wt()===141&&Ki(JS)||tf();MA();let Hs=C.createTypeAliasDeclaration(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}function Ra(){let tt=Ri(),Jt=Do(),kr=df(),Xr=gc(Qm);return Hr(Zt(C.createEnumMember(kr,Xr),tt),Jt)}function dc(tt,Jt,kr){ws(94);let Xr=Wa(),ui;ws(19)?(ui=Xa(()=>Kf(6,Ra)),ws(20)):ui=_I();let Is=C.createEnumDeclaration(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function Iu(){let tt=Ri(),Jt;return ws(19)?(Jt=jd(1,Am),ws(20)):Jt=_I(),Zt(C.createModuleBlock(Jt),tt)}function Cl(tt,Jt,kr,Xr){let ui=Xr&32,Is=Xr&8?Ca():Wa(),Hs=rc(25)?Cl(Ri(),!1,void 0,8|ui):Iu(),Rs=C.createModuleDeclaration(kr,Is,Hs,Xr);return Hr(Zt(Rs,tt),Jt)}function wl(tt,Jt,kr){let Xr=0,ui;Wt()===162?(ui=Wa(),Xr|=2048):(ui=ra(),ui.text=ls(ui.text));let Is;Wt()===19?Is=Iu():MA();let Hs=C.createModuleDeclaration(kr,ui,Is,Xr);return Hr(Zt(Hs,tt),Jt)}function $f(tt,Jt,kr){let Xr=0;if(Wt()===162)return wl(tt,Jt,kr);if(rc(145))Xr|=32;else if(ws(144),Wt()===11)return wl(tt,Jt,kr);return Cl(tt,Jt,kr,Xr)}function j2(){return Wt()===149&&oo(_x)}function _x(){return Vs()===21}function z2(){return Vs()===19}function tv(){return Vs()===44}function Yu(tt,Jt,kr){ws(130),ws(145);let Xr=Wa();MA();let ui=C.createNamespaceExportDeclaration(Xr);return ui.modifiers=kr,Hr(Zt(ui,tt),Jt)}function qO(tt,Jt,kr){ws(102);let Xr=t.getTokenFullStart(),ui;Xs()&&(ui=Wa());let Is=!1;if(ui?.escapedText==="type"&&(Wt()!==161||Xs()&&oo(pB))&&(Xs()||iY())&&(Is=!0,ui=Xs()?Wa():void 0),ui&&!LT())return GD(tt,Jt,kr,ui,Is);let Hs=hB(ui,Xr,Is),Rs=FD(),ja=mw();MA();let ho=C.createImportDeclaration(kr,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function hB(tt,Jt,kr,Xr=!1){let ui;return(tt||Wt()===42||Wt()===19)&&(ui=dF(tt,Jt,kr,Xr),ws(161)),ui}function mw(){let tt=Wt();if((tt===118||tt===132)&&!t.hasPrecedingLineBreak())return $O(tt)}function AF(){let tt=Ri(),Jt=H1(Wt())?Ca():Bl(11);ws(59);let kr=zf(!0);return Zt(C.createImportAttribute(Jt,kr),tt)}function $O(tt,Jt){let kr=Ri();Jt||ws(tt);let Xr=t.getTokenStart();if(ws(19)){let ui=t.hasPrecedingLineBreak(),Is=Kf(24,AF,!0);if(!ws(20)){let Hs=Vme(lr);Hs&&Hs.code===ts._0_expected.code&&Dbt(Hs,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Zt(C.createImportAttributes(Is,ui,tt),kr)}else{let ui=Er([],Ri(),void 0,!1);return Zt(C.createImportAttributes(ui,!1,tt),kr)}}function iY(){return Wt()===42||Wt()===19}function LT(){return Wt()===28||Wt()===161}function GD(tt,Jt,kr,Xr,ui){ws(64);let Is=EL();MA();let Hs=C.createImportEqualsDeclaration(kr,ui,Xr,Is);return Hr(Zt(Hs,tt),Jt)}function dF(tt,Jt,kr,Xr){let ui;return(!tt||rc(28))&&(Xr&&t.setSkipJsDocLeadingAsterisks(!0),ui=Wt()===42?fE():bd(275),Xr&&t.setSkipJsDocLeadingAsterisks(!1)),Zt(C.createImportClause(kr,tt,ui),Jt)}function EL(){return j2()?ff():se(!1)}function ff(){let tt=Ri();ws(149),ws(21);let Jt=FD();return ws(22),Zt(C.createExternalModuleReference(Jt),tt)}function FD(){if(Wt()===11){let tt=ra();return tt.text=ls(tt.text),tt}else return $A()}function fE(){let tt=Ri();ws(42),ws(130);let Jt=Wa();return Zt(C.createNamespaceImport(Jt),tt)}function n2(){return H1(Wt())||Wt()===11}function mB(tt){return Wt()===11?ra():tt()}function bd(tt){let Jt=Ri(),kr=tt===275?C.createNamedImports(iE(23,Uh,19,20)):C.createNamedExports(iE(23,s1,19,20));return Zt(kr,Jt)}function s1(){let tt=Do();return Hr(wb(281),tt)}function Uh(){return wb(276)}function wb(tt){let Jt=Ri(),kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Is=!1,Hs,Rs=!0,ja=mB(Ca);if(ja.kind===80&&ja.escapedText==="type")if(Wt()===130){let Nd=Ca();if(Wt()===130){let ed=Ca();n2()?(Is=!0,Hs=Nd,ja=mB(sl),Rs=!1):(Hs=ja,ja=ed,Rs=!1)}else n2()?(Hs=ja,Rs=!1,ja=mB(sl)):(Is=!0,ja=Nd)}else n2()&&(Is=!0,ja=mB(sl));Rs&&Wt()===130&&(Hs=ja,ws(130),ja=mB(sl)),tt===276&&(ja.kind!==80?(_g(dj(xt,ja.pos),ja.end,ts.Identifier_expected),ja=Ece(yn(80,!1),ja.pos,ja.pos)):kr&&_g(Xr,ui,ts.Identifier_expected));let ho=tt===276?C.createImportSpecifier(Is,Hs,ja):C.createExportSpecifier(Is,Hs,ja);return Zt(ho,Jt);function sl(){return kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Ca()}}function Uu(tt){return Zt(C.createNamespaceExport(mB(Ca)),tt)}function iy(tt,Jt,kr){let Xr=Xu();yo(!0);let ui,Is,Hs,Rs=rc(156),ja=Ri();rc(42)?(rc(130)&&(ui=Uu(ja)),ws(161),Is=FD()):(ui=bd(279),(Wt()===161||Wt()===11&&!t.hasPrecedingLineBreak())&&(ws(161),Is=FD()));let ho=Wt();Is&&(ho===118||ho===132)&&!t.hasPrecedingLineBreak()&&(Hs=$O(ho)),MA(),yo(Xr);let sl=C.createExportDeclaration(kr,Rs,ui,Is,Hs);return Hr(Zt(sl,tt),Jt)}function sY(tt,Jt,kr){let Xr=Xu();yo(!0);let ui;rc(64)?ui=!0:ws(90);let Is=zf(!0);MA(),yo(Xr);let Hs=C.createExportAssignment(kr,ui,Is);return Hr(Zt(Hs,tt),Jt)}let oY;(tt=>{tt[tt.SourceElements=0]="SourceElements",tt[tt.BlockStatements=1]="BlockStatements",tt[tt.SwitchClauses=2]="SwitchClauses",tt[tt.SwitchClauseStatements=3]="SwitchClauseStatements",tt[tt.TypeMembers=4]="TypeMembers",tt[tt.ClassMembers=5]="ClassMembers",tt[tt.EnumMembers=6]="EnumMembers",tt[tt.HeritageClauseElement=7]="HeritageClauseElement",tt[tt.VariableDeclarations=8]="VariableDeclarations",tt[tt.ObjectBindingElements=9]="ObjectBindingElements",tt[tt.ArrayBindingElements=10]="ArrayBindingElements",tt[tt.ArgumentExpressions=11]="ArgumentExpressions",tt[tt.ObjectLiteralMembers=12]="ObjectLiteralMembers",tt[tt.JsxAttributes=13]="JsxAttributes",tt[tt.JsxChildren=14]="JsxChildren",tt[tt.ArrayLiteralMembers=15]="ArrayLiteralMembers",tt[tt.Parameters=16]="Parameters",tt[tt.JSDocParameters=17]="JSDocParameters",tt[tt.RestProperties=18]="RestProperties",tt[tt.TypeParameters=19]="TypeParameters",tt[tt.TypeArguments=20]="TypeArguments",tt[tt.TupleElementTypes=21]="TupleElementTypes",tt[tt.HeritageClauses=22]="HeritageClauses",tt[tt.ImportOrExportSpecifiers=23]="ImportOrExportSpecifiers",tt[tt.ImportAttributes=24]="ImportAttributes",tt[tt.JSDocComment=25]="JSDocComment",tt[tt.Count=26]="Count"})(oY||(oY={}));let jR;(tt=>{tt[tt.False=0]="False",tt[tt.True=1]="True",tt[tt.Unknown=2]="Unknown"})(jR||(jR={}));let aY;(tt=>{function Jt(ho,sl,Nd){Ya("file.js",ho,99,void 0,1,0),t.setText(ho,sl,Nd),qr=t.scan();let ed=kr(),Og=zr("file.js",99,1,!1,[],X(1),0,NNe),Nh=Nme(lr,Og);return cr&&(Og.jsDocDiagnostics=Nme(cr,Og)),Gc(),ed?{jsDocTypeExpression:ed,diagnostics:Nh}:void 0}tt.parseJSDocTypeExpressionForTests=Jt;function kr(ho){let sl=Ri(),Nd=(ho?rc:ws)(19),ed=Qa(16777216,YS);(!ho||Nd)&&cm(20);let Og=C.createJSDocTypeExpression(ed);return Ft(Og),Zt(Og,sl)}tt.parseJSDocTypeExpression=kr;function Xr(){let ho=Ri(),sl=rc(19),Nd=Ri(),ed=se(!1);for(;Wt()===81;)$i(),Ju(),ed=Zt(C.createJSDocMemberName(ed,Wa()),Nd);sl&&cm(20);let Og=C.createJSDocNameReference(ed);return Ft(Og),Zt(Og,ho)}tt.parseJSDocNameReference=Xr;function ui(ho,sl,Nd){Ya("",ho,99,void 0,1,0);let ed=Qa(16777216,()=>ja(sl,Nd)),Og=Nme(lr,{languageVariant:0,text:ho});return Gc(),ed?{jsDoc:ed,diagnostics:Og}:void 0}tt.parseIsolatedJSDocComment=ui;function Is(ho,sl,Nd){let ed=qr,Og=lr.length,Nh=Vr,o1=Qa(16777216,()=>ja(sl,Nd));return $Nr(o1,ho),Hi&524288&&(cr||(cr=[]),_V(cr,lr,Og)),qr=ed,lr.length=Og,Vr=Nh,o1}tt.parseJSDocComment=Is;let Hs;(ho=>{ho[ho.BeginningOfLine=0]="BeginningOfLine",ho[ho.SawAsterisk=1]="SawAsterisk",ho[ho.SavingComments=2]="SavingComments",ho[ho.SavingBackticks=3]="SavingBackticks"})(Hs||(Hs={}));let Rs;(ho=>{ho[ho.Property=1]="Property",ho[ho.Parameter=2]="Parameter",ho[ho.CallbackParameter=4]="CallbackParameter"})(Rs||(Rs={}));function ja(ho=0,sl){let Nd=xt,ed=sl===void 0?Nd.length:ho+sl;if(sl=ed-ho,Zo.assert(ho>=0),Zo.assert(ho<=ed),Zo.assert(ed<=Nd.length),!Xec(Nd,ho))return;let Og,Nh,o1,Tb,q2,IE=[],zR=[],e3=Fn;Fn|=1<<25;let IA=t.scanRange(ho+3,sl-5,EI);return Fn=e3,IA;function EI(){let Es=1,Aa,ha=ho-(Nd.lastIndexOf(` `,ho)+1)+4;function Ua(Pd){Aa||(Aa=ha),IE.push(Pd),ha+=Pd.length}for(Ju();bx(5););bx(4)&&(Es=0,ha=0);e:for(;;){switch(Wt()){case 60:wA(IE),q2||(q2=Ri()),Hc(Eo(ha)),Es=0,Aa=void 0;break;case 4:IE.push(t.getTokenText()),Es=0,ha=0;break;case 42:let Pd=t.getTokenText();Es===1?(Es=2,Ua(Pd)):(Zo.assert(Es===0),Es=1,ha+=Pd.length);break;case 5:Zo.assert(Es!==2,"whitespace shouldn't come from the scanner while saving top-level comment text");let Kh=t.getTokenText();Aa!==void 0&&ha+Kh.length>Aa&&IE.push(Kh.slice(Aa-ha)),ha+=Kh.length;break;case 1:break e;case 82:Es=2,Ua(t.getTokenValue());break;case 19:Es=2;let i2=t.getTokenFullStart(),a1=t.getTokenEnd()-1,Nb=Ve(a1);if(Nb){Tb||zd(IE),zR.push(Zt(C.createJSDocText(IE.join("")),Tb??ho,i2)),zR.push(Nb),IE=[],Tb=t.getTokenEnd();break}default:Es=2,Ua(t.getTokenText());break}Es===2?Yn(!1):Ju()}let wc=IE.join("").trimEnd();zR.length&&wc.length&&zR.push(Zt(C.createJSDocText(wc),Tb??ho,q2)),zR.length&&Og&&Zo.assertIsDefined(q2,"having parsed tags implies that the end of the comment span should be set");let hA=Og&&Er(Og,Nh,o1);return Zt(C.createJSDocComment(zR.length?Er(zR,ho,q2):wc.length?wc:void 0,hA),ho,ed)}function zd(Es){for(;Es.length&&(Es[0]===` `||Es[0]==="\r");)Es.shift()}function wA(Es){for(;Es.length;){let Aa=Es[Es.length-1].trimEnd();if(Aa==="")Es.pop();else if(Aa.lengthKh&&(Ua.push(sv.slice(Kh-Es)),Pd=2),Es+=sv.length;break;case 19:Pd=2;let oP=t.getTokenFullStart(),fF=t.getTokenEnd()-1,ov=Ve(fF);ov?(wc.push(Zt(C.createJSDocText(Ua.join("")),hA??ha,oP)),wc.push(ov),Ua=[],hA=t.getTokenEnd()):i2(t.getTokenText());break;case 62:Pd===3?Pd=2:Pd=3,i2(t.getTokenText());break;case 82:Pd!==3&&(Pd=2),i2(t.getTokenValue());break;case 42:if(Pd===0){Pd=1,Es+=1;break}default:Pd!==3&&(Pd=2),i2(t.getTokenText());break}Pd===2||Pd===3?a1=Yn(Pd===3):a1=Ju()}zd(Ua);let Nb=Ua.join("").trimEnd();if(wc.length)return Nb.length&&wc.push(Zt(C.createJSDocText(Nb),hA??ha)),Er(wc,ha,t.getTokenEnd());if(Nb.length)return Nb}function Ve(Es){let Aa=Ki(wr);if(!Aa)return;Ju(),sy();let ha=Ct(),Ua=[];for(;Wt()!==20&&Wt()!==4&&Wt()!==1;)Ua.push(t.getTokenText()),Ju();let wc=Aa==="link"?C.createJSDocLink:Aa==="linkcode"?C.createJSDocLinkCode:C.createJSDocLinkPlain;return Zt(wc(ha,Ua.join("")),Es,t.getTokenEnd())}function Ct(){if(H1(Wt())){let Es=Ri(),Aa=Ca();for(;rc(25);)Aa=Zt(C.createQualifiedName(Aa,Wt()===81?yn(80,!1):Ca()),Es);for(;Wt()===81;)$i(),Ju(),Aa=Zt(C.createJSDocMemberName(Aa,Wa()),Es);return Aa}}function wr(){if($2(),Wt()===19&&Ju()===60&&H1(Ju())){let Es=t.getTokenValue();if(ai(Es))return Es}}function ai(Es){return Es==="link"||Es==="linkcode"||Es==="linkplain"}function Lo(Es,Aa,ha,Ua){return Zt(C.createJSDocUnknownTag(Aa,z(Es,Ri(),ha,Ua)),Es)}function Hc(Es){Es&&(Og?Og.push(Es):(Og=[Es],Nh=Es.pos),o1=Es.end)}function ad(){return $2(),Wt()===19?kr():void 0}function dm(){let Es=bx(23);Es&&sy();let Aa=bx(62),ha=_re();return Aa&&FA(62),Es&&(sy(),sd(64)&&$A(),ws(24)),{name:ha,isBracketed:Es}}function rv(Es){switch(Es.kind){case 151:return!0;case 188:return rv(Es.elementType);default:return nBi(Es)&&$C(Es.typeName)&&Es.typeName.escapedText==="Object"&&!Es.typeArguments}}function nv(Es,Aa,ha,Ua){let wc=ad(),hA=!wc;$2();let{name:Pd,isBracketed:Kh}=dm(),i2=$2();hA&&!oo(wr)&&(wc=ad());let a1=z(Es,Ri(),Ua,i2),Nb=yx(wc,Pd,ha,Ua);Nb&&(wc=Nb,hA=!0);let sv=ha===1?C.createJSDocPropertyTag(Aa,Pd,Kh,wc,hA,a1):C.createJSDocParameterTag(Aa,Pd,Kh,wc,hA,a1);return Zt(sv,Es)}function yx(Es,Aa,ha,Ua){if(Es&&rv(Es.type)){let wc=Ri(),hA,Pd;for(;hA=Ki(()=>r3(ha,Ua,Aa));)hA.kind===341||hA.kind===348?Pd=mV(Pd,hA):hA.kind===345&&mI(hA.tagName,ts.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);if(Pd){let Kh=Zt(C.createJSDocTypeLiteral(Pd,Es.type.kind===188),wc);return Zt(C.createJSDocTypeExpression(Kh),wc)}}}function Dd(Es,Aa,ha,Ua){oD(Og,Dec)&&_g(Aa.pos,t.getTokenStart(),ts._0_tag_already_specified,mJe(Aa.escapedText));let wc=ad();return Zt(C.createJSDocReturnTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function ji(Es,Aa,ha,Ua){oD(Og,iDr)&&_g(Aa.pos,t.getTokenStart(),ts._0_tag_already_specified,mJe(Aa.escapedText));let wc=kr(!0),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocTypeTag(Aa,wc,hA),Es)}function SL(Es,Aa,ha,Ua){let wc=Wt()===23||oo(()=>Ju()===60&&H1(Ju())&&ai(t.getTokenValue()))?void 0:Xr(),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocSeeTag(Aa,wc,hA),Es)}function $l(Es,Aa,ha,Ua){let wc=ad(),hA=z(Es,Ri(),ha,Ua);return Zt(C.createJSDocThrowsTag(Aa,wc,hA),Es)}function Ap(Es,Aa,ha,Ua){let wc=Ri(),hA=Bc(),Pd=t.getTokenFullStart(),Kh=z(Es,Pd,ha,Ua);Kh||(Pd=t.getTokenFullStart());let i2=typeof Kh!="string"?Er(NNr([Zt(hA,wc,Pd)],Kh),wc):hA.text+Kh;return Zt(C.createJSDocAuthorTag(Aa,i2),Es)}function Bc(){let Es=[],Aa=!1,ha=t.getToken();for(;ha!==1&&ha!==4;){if(ha===30)Aa=!0;else{if(ha===60&&!Aa)break;if(ha===32&&Aa){Es.push(t.getTokenText()),t.resetTokenState(t.getTokenEnd());break}}Es.push(t.getTokenText()),ha=Ju()}return C.createJSDocText(Es.join(""))}function Vo(Es,Aa,ha,Ua){let wc=cY();return Zt(C.createJSDocImplementsTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function iv(Es,Aa,ha,Ua){let wc=cY();return Zt(C.createJSDocAugmentsTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function nf(Es,Aa,ha,Ua){let wc=kr(!1),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocSatisfiesTag(Aa,wc,hA),Es)}function J6(Es,Aa,ha,Ua){let wc=t.getTokenFullStart(),hA;Xs()&&(hA=Wa());let Pd=hB(hA,wc,!0,!0),Kh=FD(),i2=mw(),a1=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocImportTag(Aa,Pd,Kh,i2,a1),Es)}function cY(){let Es=rc(19),Aa=Ri(),ha=t3();t.setSkipJsDocLeadingAsterisks(!0);let Ua=xn();t.setSkipJsDocLeadingAsterisks(!1);let wc=C.createExpressionWithTypeArguments(ha,Ua),hA=Zt(wc,Aa);return Es&&ws(20),hA}function t3(){let Es=Ri(),Aa=Ex();for(;rc(25);){let ha=Ex();Aa=Zt(ce(Aa,ha),Es)}return Aa}function pF(Es,Aa,ha,Ua,wc){return Zt(Aa(ha,z(Es,Ri(),Ua,wc)),Es)}function rh(Es,Aa,ha,Ua){let wc=kr(!0);return sy(),Zt(C.createJSDocThisTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function Cw(Es,Aa,ha,Ua){let wc=kr(!0);return sy(),Zt(C.createJSDocEnumTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function Il(Es,Aa,ha,Ua){let wc=ad();$2();let hA=CB();sy();let Pd=ye(ha),Kh;if(!wc||rv(wc.type)){let a1,Nb,sv,oP=!1;for(;(a1=Ki(()=>lY(ha)))&&a1.kind!==345;)if(oP=!0,a1.kind===344)if(Nb){let fF=Da(ts.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);fF&&Dbt(fF,pNe(er,xt,0,0,ts.The_tag_was_first_specified_here));break}else Nb=a1;else sv=mV(sv,a1);if(oP){let fF=wc&&wc.type.kind===188,ov=C.createJSDocTypeLiteral(sv,fF);wc=Nb&&Nb.typeExpression&&!rv(Nb.typeExpression.type)?Nb.typeExpression:Zt(ov,Es),Kh=wc.end}}Kh=Kh||Pd!==void 0?Ri():(hA??wc??Aa).end,Pd||(Pd=z(Es,Kh,ha,Ua));let i2=C.createJSDocTypedefTag(Aa,wc,hA,Pd);return Zt(i2,Es,Kh)}function CB(Es){let Aa=t.getTokenStart();if(!H1(Wt()))return;let ha=Ex();if(rc(25)){let Ua=CB(!0),wc=C.createModuleDeclaration(void 0,ha,Ua,Es?8:void 0);return Zt(wc,Aa)}return Es&&(ha.flags|=4096),ha}function Rb(Es){let Aa=Ri(),ha,Ua;for(;ha=Ki(()=>r3(4,Es));){if(ha.kind===345){mI(ha.tagName,ts.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);break}Ua=mV(Ua,ha)}return Er(Ua||[],Aa)}function $R(Es,Aa){let ha=Rb(Aa),Ua=Ki(()=>{if(bx(60)){let wc=Eo(Aa);if(wc&&wc.kind===342)return wc}});return Zt(C.createJSDocSignature(void 0,ha,Ua),Es)}function Cre(Es,Aa,ha,Ua){let wc=CB();sy();let hA=ye(ha),Pd=$R(Es,ha);hA||(hA=z(Es,Ri(),ha,Ua));let Kh=hA!==void 0?Ri():Pd.end;return Zt(C.createJSDocCallbackTag(Aa,Pd,wc,hA),Es,Kh)}function vL(Es,Aa,ha,Ua){sy();let wc=ye(ha),hA=$R(Es,ha);wc||(wc=z(Es,Ri(),ha,Ua));let Pd=wc!==void 0?Ri():hA.end;return Zt(C.createJSDocOverloadTag(Aa,hA,wc),Es,Pd)}function uJ(Es,Aa){for(;!$C(Es)||!$C(Aa);)if(!$C(Es)&&!$C(Aa)&&Es.right.escapedText===Aa.right.escapedText)Es=Es.left,Aa=Aa.left;else return!1;return Es.escapedText===Aa.escapedText}function lY(Es){return r3(1,Es)}function r3(Es,Aa,ha){let Ua=!0,wc=!1;for(;;)switch(Ju()){case 60:if(Ua){let hA=U6(Es,Aa);return hA&&(hA.kind===341||hA.kind===348)&&ha&&($C(hA.name)||!uJ(ha,hA.name.left))?!1:hA}wc=!1;break;case 4:Ua=!0,wc=!1;break;case 42:wc&&(Ua=!1),wc=!0;break;case 80:Ua=!1;break;case 1:return!1}}function U6(Es,Aa){Zo.assert(Wt()===60);let ha=t.getTokenFullStart();Ju();let Ua=Ex(),wc=$2(),hA;switch(Ua.escapedText){case"type":return Es===1&&ji(ha,Ua);case"prop":case"property":hA=1;break;case"arg":case"argument":case"param":hA=6;break;case"template":return uY(ha,Ua,Aa,wc);case"this":return rh(ha,Ua,Aa,wc);default:return!1}return Es&hA?nv(ha,Ua,Es,Aa):!1}function gJ(){let Es=Ri(),Aa=bx(23);Aa&&sy();let ha=Le(!1,!0),Ua=Ex(ts.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),wc;if(Aa&&(sy(),ws(64),wc=Qa(16777216,YS),ws(24)),!Wme(Ua))return Zt(C.createTypeParameterDeclaration(ha,Ua,void 0,wc),Es)}function K6(){let Es=Ri(),Aa=[];do{sy();let ha=gJ();ha!==void 0&&Aa.push(ha),$2()}while(bx(28));return Er(Aa,Es)}function uY(Es,Aa,ha,Ua){let wc=Wt()===19?kr():void 0,hA=K6();return Zt(C.createJSDocTemplateTag(Aa,wc,hA,z(Es,Ri(),ha,Ua)),Es)}function bx(Es){return Wt()===Es?(Ju(),!0):!1}function _re(){let Es=Ex();for(rc(23)&&ws(24);rc(25);){let Aa=Ex();rc(23)&&ws(24),Es=O(Es,Aa)}return Es}function Ex(Es){if(!H1(Wt()))return yn(80,!Es,Es||ts.Identifier_expected);jt++;let Aa=t.getTokenStart(),ha=t.getTokenEnd(),Ua=Wt(),wc=ls(t.getTokenValue()),hA=Zt(F(wc,Ua),Aa,ha);return Ju(),hA}}})(aY=e.JSDocParser||(e.JSDocParser={}))})(Mme||(Mme={}));var wSi=new WeakSet;function itc(e){wSi.has(e)&&Zo.fail("Source file has already been incrementally parsed"),wSi.add(e)}var wBi=new WeakSet;function stc(e){return wBi.has(e)}function _Nr(e){wBi.add(e)}var qbt;(e=>{function t(N,B,F,Q){if(Q=Q||Zo.shouldAssert(2),C(N,B,F,Q),j7a(F))return N;if(N.statements.length===0)return Mme.parseSourceFile(N.fileName,B,N.languageVersion,void 0,!0,N.scriptKind,N.setExternalModuleIndicator,N.jsDocParsingMode);itc(N),Mme.fixupParentReferences(N);let X=N.text,ae=b(N),ne=f(N,F);C(N,B,ne,Q),Zo.assert(ne.span.start<=F.span.start),Zo.assert(gj(ne.span)===gj(F.span)),Zo.assert(gj(rJe(ne))===gj(rJe(F)));let ce=rJe(ne).length-ne.span.length;A(N,ne.span.start,gj(ne.span),gj(rJe(ne)),ce,X,B,Q);let fe=Mme.parseSourceFile(N.fileName,B,N.languageVersion,ae,!0,N.scriptKind,N.setExternalModuleIndicator,N.jsDocParsingMode);return fe.commentDirectives=r(N.commentDirectives,fe.commentDirectives,ne.span.start,gj(ne.span),ce,X,B,Q),fe.impliedNodeFormat=N.impliedNodeFormat,Zec(N,fe),fe}e.updateSourceFile=t;function r(N,B,F,Q,X,ae,ne,ce){if(!N)return B;let fe,ue=!1;for(let be of N){let{range:Se,type:De}=be;if(Se.endQ){de();let k={range:{pos:Se.pos+X,end:Se.end+X},type:De};fe=mV(fe,k),ce&&Zo.assert(ae.substring(Se.pos,Se.end)===ne.substring(k.range.pos,k.range.end))}}return de(),fe;function de(){ue||(ue=!0,fe?B&&fe.push(...B):fe=B)}}function n(N,B,F,Q,X,ae,ne){F?fe(N):ce(N);return;function ce(ue){let de="";if(ne&&a(ue)&&(de=X.substring(ue.pos,ue.end)),nSi(ue,B),Ece(ue,ue.pos+Q,ue.end+Q),ne&&a(ue)&&Zo.assert(de===ae.substring(ue.pos,ue.end)),Ok(ue,ce,fe),Pme(ue))for(let be of ue.jsDoc)ce(be);l(ue,ne)}function fe(ue){Ece(ue,ue.pos+Q,ue.end+Q);for(let de of ue)ce(de)}}function a(N){switch(N.kind){case 11:case 9:case 80:return!0}return!1}function o(N,B,F,Q,X){Zo.assert(N.end>=B,"Adjusting an element that was entirely before the change range"),Zo.assert(N.pos<=F,"Adjusting an element that was entirely after the change range"),Zo.assert(N.pos<=N.end);let ae=Math.min(N.pos,Q),ne=N.end>=F?N.end+X:Math.min(N.end,Q);if(Zo.assert(ae<=ne),N.parent){let ce=N.parent;Zo.assertGreaterThanOrEqual(ae,ce.pos),Zo.assertLessThanOrEqual(ne,ce.end)}Ece(N,ae,ne)}function l(N,B){if(B){let F=N.pos,Q=X=>{Zo.assert(X.pos>=F),F=X.end};if(Pme(N))for(let X of N.jsDoc)Q(X);Ok(N,Q),Zo.assert(F<=N.end)}}function A(N,B,F,Q,X,ae,ne,ce){fe(N);return;function fe(de){if(Zo.assert(de.pos<=de.end),de.pos>F){n(de,N,!1,X,ae,ne,ce);return}let be=de.end;if(be>=B){if(_Nr(de),nSi(de,N),o(de,B,F,Q,X),Ok(de,fe,ue),Pme(de))for(let Se of de.jsDoc)fe(Se);l(de,ce);return}Zo.assert(beF){n(de,N,!0,X,ae,ne,ce);return}let be=de.end;if(be>=B){_Nr(de),o(de,B,F,Q,X);for(let Se of de)fe(Se);return}Zo.assert(be0&&ae<=1;ae++){let ne=I(N,F);Zo.assert(ne.pos<=F);let ce=ne.pos;F=Math.max(0,ce-1)}let Q=K7a(F,gj(B.span)),X=B.newLength+(B.span.start-F);return bvi(Q,X)}function I(N,B){let F=N,Q;if(Ok(N,ae),Q){let ne=X(Q);ne.pos>F.pos&&(F=ne)}return F;function X(ne){for(;;){let ce=Pqa(ne);if(ce)ne=ce;else return ne}}function ae(ne){if(!Wme(ne))if(ne.pos<=B){if(ne.pos>=F.pos&&(F=ne),BB),!0}}function C(N,B,F,Q){let X=N.text;if(F&&(Zo.assert(X.length-F.span.length+F.newLength===B.length),Q||Zo.shouldAssert(3))){let ae=X.substr(0,F.span.start),ne=B.substr(0,F.span.start);Zo.assert(ae===ne);let ce=X.substring(gj(F.span),X.length),fe=B.substring(gj(rJe(F)),B.length);Zo.assert(ce===fe)}}function b(N){let B=N.statements,F=0;Zo.assert(F=ue.pos&&ne=ue.pos&&ne{N[N.Value=-1]="Value"})(E||(E={}))})(qbt||(qbt={}));function otc(e){return atc(e)!==void 0}function atc(e){let t=lvi(e,o$a,!1);if(t)return t;if(p7a(e,".ts")){let r=cvi(e),n=r.lastIndexOf(".d.");if(n>=0)return r.substring(n)}}function ctc(e,t,r,n){if(e){if(e==="import")return 99;if(e==="require")return 1;n(t,r-t,ts.resolution_mode_should_be_either_require_or_import)}}function ltc(e,t){let r=[];for(let n of lNr(t,0)||x2){let a=t.substring(n.pos,n.end);ptc(r,n,a)}e.pragmas=new Map;for(let n of r){if(e.pragmas.has(n.name)){let a=e.pragmas.get(n.name);a instanceof Array?a.push(n.args):e.pragmas.set(n.name,[a,n.args]);continue}e.pragmas.set(n.name,n.args)}}function utc(e,t){e.checkJsDirective=void 0,e.referencedFiles=[],e.typeReferenceDirectives=[],e.libReferenceDirectives=[],e.amdDependencies=[],e.hasNoDefaultLib=!1,e.pragmas.forEach((r,n)=>{switch(n){case"reference":{let a=e.referencedFiles,o=e.typeReferenceDirectives,l=e.libReferenceDirectives;hO(QRr(r),A=>{let{types:f,lib:I,path:C,["resolution-mode"]:b,preserve:E}=A.arguments,N=E==="true"?!0:void 0;if(A.arguments["no-default-lib"]==="true")e.hasNoDefaultLib=!0;else if(f){let B=ctc(b,f.pos,f.end,t);o.push({pos:f.pos,end:f.end,fileName:f.value,...B?{resolutionMode:B}:{},...N?{preserve:N}:{}})}else I?l.push({pos:I.pos,end:I.end,fileName:I.value,...N?{preserve:N}:{}}):C?a.push({pos:C.pos,end:C.end,fileName:C.value,...N?{preserve:N}:{}}):t(A.range.pos,A.range.end-A.range.pos,ts.Invalid_reference_directive_syntax)});break}case"amd-dependency":{e.amdDependencies=iNr(QRr(r),a=>({name:a.arguments.name,path:a.arguments.path}));break}case"amd-module":{if(r instanceof Array)for(let a of r)e.moduleName&&t(a.range.pos,a.range.end-a.range.pos,ts.An_AMD_module_cannot_have_multiple_name_assignments),e.moduleName=a.arguments.name;else e.moduleName=r.arguments.name;break}case"ts-nocheck":case"ts-check":{hO(QRr(r),a=>{(!e.checkJsDirective||a.range.pos>e.checkJsDirective.pos)&&(e.checkJsDirective={enabled:n==="ts-check",end:a.range.end,pos:a.range.pos})});break}case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:Zo.fail("Unhandled pragma kind")}})}var tNr=new Map;function gtc(e){if(tNr.has(e))return tNr.get(e);let t=new RegExp(`(\\s${e}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`,"im");return tNr.set(e,t),t}var Atc=/^\/\/\/\s*<(\S+)\s.*?\/>/m,dtc=/^\/\/\/?\s*@([^\s:]+)((?:[^\S\r\n]|:).*)?$/m;function ptc(e,t,r){let n=t.kind===2&&Atc.exec(r);if(n){let o=n[1].toLowerCase(),l=avi[o];if(!l||!(l.kind&1))return;if(l.args){let A={};for(let f of l.args){let I=gtc(f.name).exec(r);if(!I&&!f.optional)return;if(I){let C=I[2]||I[3];if(f.captureSpan){let b=t.pos+I.index+I[1].length+1;A[f.name]={value:C,pos:b,end:b+C.length}}else A[f.name]=C}}e.push({name:o,args:{arguments:A,range:t}})}else e.push({name:o,args:{arguments:{},range:t}});return}let a=t.kind===2&&dtc.exec(r);if(a)return TSi(e,t,2,a);if(t.kind===3){let o=/@(\S+)(\s+(?:\S.*)?)?$/gm,l;for(;l=o.exec(r);)TSi(e,t,4,l)}}function TSi(e,t,r,n){if(!n)return;let a=n[1].toLowerCase(),o=avi[a];if(!o||!(o.kind&r))return;let l=n[2],A=ftc(o,l);A!=="fail"&&e.push({name:a,args:{arguments:A,range:t}})}function ftc(e,t){if(!t)return{};if(!e.args)return{};let r=t.trim().split(/\s+/),n={};for(let a=0;an.kind<309||n.kind>351);return r.kind<166?r:r.getFirstToken(e)}getLastToken(e){this.assertHasRealPosition();let t=this.getChildren(e),r=Vme(t);if(r)return r.kind<166?r:r.getLastToken(e)}forEachChild(e,t){return Ok(this,e,t)}};function Itc(e,t){let r=[];if(Oza(e))return e.forEachChild(l=>{r.push(l)}),r;fJe.setText((t||e.getSourceFile()).text);let n=e.pos,a=l=>{IJe(r,n,l.pos,e),r.push(l),n=l.end},o=l=>{IJe(r,n,l.pos,e),r.push(htc(l,e)),n=l.end};return hO(e.jsDoc,a),n=e.pos,e.forEachChild(a,o),IJe(r,n,e.end,e),fJe.setText(void 0),r}function IJe(e,t,r,n){for(fJe.resetTokenState(t);tt.tagName.text==="inheritDoc"||t.tagName.text==="inheritdoc")}function Pbt(e,t){if(!e)return x2;let r=ts_JsDoc_exports.getJsDocTagsFromDeclarations(e,t);if(t&&(r.length===0||e.some(kBi))){let n=new Set;for(let a of e){let o=xBi(t,a,l=>{var A;if(!n.has(l))return n.add(l),a.kind===177||a.kind===178?l.getContextualJsDocTags(a,t):((A=l.declarations)==null?void 0:A.length)===1?l.getJsDocTags(t):void 0});o&&(r=[...o,...r])}}return r}function pJe(e,t){if(!e)return x2;let r=ts_JsDoc_exports.getJsDocCommentsFromDeclarations(e,t);if(t&&(r.length===0||e.some(kBi))){let n=new Set;for(let a of e){let o=xBi(t,a,l=>{if(!n.has(l))return n.add(l),a.kind===177||a.kind===178?l.getContextualDocumentationComment(a,t):l.getDocumentationComment(t)});o&&(r=r.length===0?o.slice():o.concat(lineBreakPart(),r))}}return r}function xBi(e,t,r){var n;let a=((n=t.parent)==null?void 0:n.kind)===176?t.parent.parent:t.parent;if(!a)return;let o=Tqa(t);return L6a(Cqa(a),l=>{let A=e.getTypeAtLocation(l),f=o&&A.symbol?e.getTypeOfSymbol(A.symbol):A,I=e.getPropertyOfType(f,t.symbol.name);return I?r(I):void 0})}var ytc=class extends aDr{constructor(e,t,r){super(e,t,r)}update(e,t){return ntc(this,e,t)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}getLineStarts(){return cNr(this)}getPositionOfLineAndCharacter(e,t,r){return L7a(cNr(this),e,t,this.text,r)}getLineEndOfPosition(e){let{line:t}=this.getLineAndCharacterOfPosition(e),r=this.getLineStarts(),n;t+1>=r.length&&(n=this.getEnd()),n||(n=r[t+1]-1);let a=this.getFullText();return a[n]===` -`&&a[n-1]==="\r"?n-1:n}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){let e=z6a();return this.forEachChild(a),e;function t(o){let l=n(o);l&&e.add(l,o)}function r(o){let l=e.get(o);return l||e.set(o,l=[]),l}function n(o){let l=MNr(o);return l&&($vi(l)&&Bce(l.expression)?l.expression.name.text:kvi(l)?getNameFromPropertyName(l):void 0)}function a(o){switch(o.kind){case 262:case 218:case 174:case 173:let l=o,A=n(l);if(A){let C=r(A),b=Vme(C);b&&l.parent===b.parent&&l.symbol===b.symbol?l.body&&!b.body&&(C[C.length-1]=l):C.push(l)}Ok(o,a);break;case 263:case 231:case 264:case 265:case 266:case 267:case 271:case 281:case 276:case 273:case 274:case 177:case 178:case 187:t(o),Ok(o,a);break;case 169:if(!vJe(o,31))break;case 260:case 208:{let C=o;if(Dza(C.name)){Ok(C.name,a);break}C.initializer&&a(C.initializer)}case 306:case 172:case 171:t(o);break;case 278:let f=o;f.exportClause&&(dec(f.exportClause)?hO(f.exportClause.elements,a):a(f.exportClause.name));break;case 272:let I=o.importClause;I&&(I.name&&t(I.name),I.namedBindings&&(I.namedBindings.kind===274?t(I.namedBindings):hO(I.namedBindings.elements,a)));break;case 226:JNr(o)!==0&&t(o);default:Ok(o,a)}}}},btc=class{constructor(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}};function Etc(){return{getNodeConstructor:()=>aDr,getTokenConstructor:()=>RBi,getIdentifierConstructor:()=>NBi,getPrivateIdentifierConstructor:()=>DBi,getSourceFileConstructor:()=>ytc,getSymbolConstructor:()=>mtc,getTypeConstructor:()=>Ctc,getSignatureConstructor:()=>_tc,getSourceMapSourceConstructor:()=>btc}}var Stc=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints","getSupportedCodeFixes","getPasteEdits"],eRu=[...Stc,"getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors","preparePasteEditsForFile"];Uqa(Etc());var GBi=new Proxy({},{get:()=>!0}),FBi=GBi["4.8"];function Ij(e,t=!1){var r;if(e!=null){if(FBi){if(t||oDr(e)){let n=rza(e);return n?[...n]:void 0}return}return(r=e.modifiers)==null?void 0:r.filter(n=>!tDr(n))}}function yNe(e,t=!1){var r;if(e!=null){if(FBi){if(t||Yec(e)){let n=tza(e);return n?[...n]:void 0}return}return(r=e.decorators)==null?void 0:r.filter(tDr)}}var vtc={},ZBi=new Proxy({},{get:(e,t)=>t}),Btc=ZBi,wtc=ZBi,hs=Btc,sD=wtc,LBi=GBi["5.0"],au=Tp,Ttc=new Set([au.AmpersandAmpersandToken,au.BarBarToken,au.QuestionQuestionToken]),Rtc=new Set([Tp.AmpersandAmpersandEqualsToken,Tp.AmpersandEqualsToken,Tp.AsteriskAsteriskEqualsToken,Tp.AsteriskEqualsToken,Tp.BarBarEqualsToken,Tp.BarEqualsToken,Tp.CaretEqualsToken,Tp.EqualsToken,Tp.GreaterThanGreaterThanEqualsToken,Tp.GreaterThanGreaterThanGreaterThanEqualsToken,Tp.LessThanLessThanEqualsToken,Tp.MinusEqualsToken,Tp.PercentEqualsToken,Tp.PlusEqualsToken,Tp.QuestionQuestionEqualsToken,Tp.SlashEqualsToken]),Ntc=new Set([au.AmpersandAmpersandToken,au.AmpersandToken,au.AsteriskAsteriskToken,au.AsteriskToken,au.BarBarToken,au.BarToken,au.CaretToken,au.EqualsEqualsEqualsToken,au.EqualsEqualsToken,au.ExclamationEqualsEqualsToken,au.ExclamationEqualsToken,au.GreaterThanEqualsToken,au.GreaterThanGreaterThanGreaterThanToken,au.GreaterThanGreaterThanToken,au.GreaterThanToken,au.InKeyword,au.InstanceOfKeyword,au.LessThanEqualsToken,au.LessThanLessThanToken,au.LessThanToken,au.MinusToken,au.PercentToken,au.PlusToken,au.SlashToken]);function Dtc(e){return Rtc.has(e.kind)}function ktc(e){return Ttc.has(e.kind)}function xtc(e){return Ntc.has(e.kind)}function yce(e){return by(e)}function Gtc(e){return e.kind!==au.SemicolonClassElement}function vh(e,t){let r=Ij(t);return r?.some(n=>n.kind===e)===!0}function Ftc(e){let t=Ij(e);return t==null?null:t[t.length-1]??null}function Ztc(e){return e.kind===au.CommaToken}function Ltc(e){return e.kind===au.SingleLineCommentTrivia||e.kind===au.MultiLineCommentTrivia}function Vtc(e){return e.kind===au.JSDocComment}function Ptc(e){if(Dtc(e))return{type:hs.AssignmentExpression,operator:yce(e.kind)};if(ktc(e))return{type:hs.LogicalExpression,operator:yce(e.kind)};if(xtc(e))return{type:hs.BinaryExpression,operator:yce(e.kind)};throw new Error(`Unexpected binary operator ${by(e.kind)}`)}function Wbt(e,t){let r=t.getLineAndCharacterOfPosition(e);return{column:r.character,line:r.line+1}}function Zme(e,t){let[r,n]=e.map(a=>Wbt(a,t));return{end:n,start:r}}function Wtc(e){if(e.kind===Tp.Block)switch(e.parent.kind){case Tp.Constructor:case Tp.GetAccessor:case Tp.SetAccessor:case Tp.ArrowFunction:case Tp.FunctionExpression:case Tp.FunctionDeclaration:case Tp.MethodDeclaration:return!0;default:return!1}return!0}function sJe(e,t){return[e.getStart(t),e.getEnd()]}function Otc(e){return e.kind>=au.FirstToken&&e.kind<=au.LastToken}function VBi(e){return e.kind>=au.JsxElement&&e.kind<=au.JsxAttribute}function yNr(e){return e.flags&IO.Let?"let":(e.flags&IO.AwaitUsing)===IO.AwaitUsing?"await using":e.flags&IO.Const?"const":e.flags&IO.Using?"using":"var"}function xme(e){let t=Ij(e);if(t!=null)for(let r of t)switch(r.kind){case au.PublicKeyword:return"public";case au.ProtectedKeyword:return"protected";case au.PrivateKeyword:return"private";default:break}}function fNe(e,t,r){return n(t);function n(a){return _za(a)&&a.pos===e.end?a:ztc(a.getChildren(r),o=>(o.pos<=e.pos&&o.end>e.end||o.pos===e.end)&&jtc(o,r)?n(o):void 0)}}function Mtc(e,t){let r=e;for(;r;){if(t(r))return r;r=r.parent}}function Htc(e){return!!Mtc(e,VBi)}function RSi(e){return ENe(!1,e,/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,t=>{let r=t.slice(1,-1);if(r[0]==="#"){let n=r[1]==="x"?parseInt(r.slice(2),16):parseInt(r.slice(1),10);return n>1114111?t:String.fromCodePoint(n)}return vtc[r]||t})}function INe(e){return e.kind===au.ComputedPropertyName}function NSi(e){return!!e.questionToken}function PBi(e){return e.type===hs.ChainExpression}function Ytc(e,t){return PBi(t)&&e.expression.kind!==Tp.ParenthesizedExpression}function Qtc(e){let t;if(LBi&&e.kind===au.Identifier?t=Svi(e):"originalKeywordKind"in e&&(t=e.originalKeywordKind),t)return t===au.NullKeyword?sD.Null:t>=au.FirstFutureReservedWord&&t<=au.LastKeyword?sD.Identifier:sD.Keyword;if(e.kind>=au.FirstKeyword&&e.kind<=au.LastFutureReservedWord)return e.kind===au.FalseKeyword||e.kind===au.TrueKeyword?sD.Boolean:sD.Keyword;if(e.kind>=au.FirstPunctuation&&e.kind<=au.LastPunctuation)return sD.Punctuator;if(e.kind>=au.NoSubstitutionTemplateLiteral&&e.kind<=au.TemplateTail)return sD.Template;switch(e.kind){case au.NumericLiteral:return sD.Numeric;case au.JsxText:return sD.JSXText;case au.StringLiteral:return e.parent.kind===au.JsxAttribute||e.parent.kind===au.JsxElement?sD.JSXText:sD.String;case au.RegularExpressionLiteral:return sD.RegularExpression;case au.Identifier:case au.ConstructorKeyword:case au.GetKeyword:case au.SetKeyword:default:}return e.kind===au.Identifier&&(VBi(e.parent)||e.parent.kind===au.PropertyAccessExpression&&Htc(e))?sD.JSXIdentifier:sD.Identifier}function Xtc(e,t){let r=e.kind===au.JsxText?e.getFullStart():e.getStart(t),n=e.getEnd(),a=t.text.slice(r,n),o=Qtc(e),l=[r,n],A=Zme(l,t);return o===sD.RegularExpression?{type:o,loc:A,range:l,regex:{flags:a.slice(a.lastIndexOf("/")+1),pattern:a.slice(1,a.lastIndexOf("/"))},value:a}:{type:o,loc:A,range:l,value:a}}function Jtc(e){let t=[];function r(n){Ltc(n)||Vtc(n)||(Otc(n)&&n.kind!==au.EndOfFileToken?t.push(Xtc(n,e)):n.getChildren(e).forEach(r))}return r(e),t}var Utc=class extends Error{fileName;location;constructor(e,t,r){super(e),this.fileName=t,this.location=r,Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:new.target.name})}get index(){return this.location.start.offset}get lineNumber(){return this.location.start.line}get column(){return this.location.start.column}};function WBi(e,t,r,n=r){let[a,o]=[r,n].map(l=>{let{character:A,line:f}=t.getLineAndCharacterOfPosition(l);return{column:A,line:f+1,offset:l}});return new Utc(e,t.fileName,{end:o,start:a})}function Ktc(e){var t;return!!("illegalDecorators"in e&&(t=e.illegalDecorators)!=null&&t.length)}function jtc(e,t){return e.kind===au.EndOfFileToken?!!e.jsDoc:e.getWidth(t)!==0}function ztc(e,t){if(e!==void 0)for(let r=0;r=0&&e.kind!==au.EndOfFileToken}function DSi(e){return!erc(e)}function trc(e){return Evi(e.parent,xvi)}function rrc(e){return vh(au.AbstractKeyword,e)}function nrc(e){if(e.parameters.length&&!yBi(e)){let t=e.parameters[0];if(irc(t))return t}return null}function irc(e){return OBi(e.name)}function src(e){switch(e.kind){case au.ClassDeclaration:return!0;case au.ClassExpression:return!0;case au.PropertyDeclaration:{let{parent:t}=e;return!!(zbt(t)||wNe(t)&&!rrc(e))}case au.GetAccessor:case au.SetAccessor:case au.MethodDeclaration:{let{parent:t}=e;return!!e.body&&(zbt(t)||wNe(t))}case au.Parameter:{let{parent:t}=e,r=t.parent;return!!t&&"body"in t&&!!t.body&&(t.kind===au.Constructor||t.kind===au.MethodDeclaration||t.kind===au.SetAccessor)&&nrc(t)!==e&&!!r&&r.kind===au.ClassDeclaration}}return!1}function lDr(e){switch(e.kind){case au.Identifier:return!0;case au.PropertyAccessExpression:case au.ElementAccessExpression:return!(e.flags&IO.OptionalChain);case au.ParenthesizedExpression:case au.TypeAssertionExpression:case au.AsExpression:case au.SatisfiesExpression:case au.ExpressionWithTypeArguments:case au.NonNullExpression:return lDr(e.expression);default:return!1}}function orc(e){let t=Ij(e),r=e;for(;(!t||t.length===0)&&EJe(r.parent);){let n=Ij(r.parent);n!=null&&n.length&&(t=n),r=r.parent}return t}var On=Tp;function arc(e){return WBi("message"in e&&e.message||e.messageText,e.file,e.start)}var sg,bNr,MBi,$p,kR,bNe,ENr,crc=class{constructor(e,t){k6a(this,sg),eJe(this,"allowPattern",!1),eJe(this,"ast"),eJe(this,"esTreeNodeToTSNodeMap",new WeakMap),eJe(this,"options"),eJe(this,"tsNodeToESTreeNodeMap",new WeakMap),this.ast=e,this.options={...t}}assertModuleSpecifier(e,t){var r;!t&&e.moduleSpecifier==null&&fg(this,sg,kR).call(this,e,"Module specifier must be a string literal."),e.moduleSpecifier&&((r=e.moduleSpecifier)==null?void 0:r.kind)!==On.StringLiteral&&fg(this,sg,kR).call(this,e.moduleSpecifier,"Module specifier must be a string literal.")}convertBindingNameWithTypeAnnotation(e,t,r){let n=this.convertPattern(e);return t&&(n.typeAnnotation=this.convertTypeAnnotation(t,r),this.fixParentLocation(n,n.typeAnnotation.range)),n}convertBodyExpressions(e,t){let r=Wtc(t);return e.map(n=>{let a=this.convertChild(n);if(r){if(a!=null&&a.expression&&uBi(n)&&tEt(n.expression)){let o=a.expression.raw;return a.directive=o.slice(1,-1),a}r=!1}return a}).filter(n=>n)}convertChainExpression(e,t){let{child:r,isOptional:n}=e.type===hs.MemberExpression?{child:e.object,isOptional:e.optional}:e.type===hs.CallExpression?{child:e.callee,isOptional:e.optional}:{child:e.expression,isOptional:!1},a=Ytc(t,r);if(!a&&!n)return e;if(a&&PBi(r)){let o=r.expression;e.type===hs.MemberExpression?e.object=o:e.type===hs.CallExpression?e.callee=o:e.expression=o}return this.createNode(t,{type:hs.ChainExpression,expression:e})}convertChild(e,t){return this.converter(e,t,!1)}convertPattern(e,t){return this.converter(e,t,!0)}convertTypeAnnotation(e,t){let r=t?.kind===On.FunctionType||t?.kind===On.ConstructorType?2:1,n=[e.getFullStart()-r,e.end],a=Zme(n,this.ast);return{type:hs.TSTypeAnnotation,loc:a,range:n,typeAnnotation:this.convertChild(e)}}convertTypeArgumentsToTypeParameterInstantiation(e,t){let r=fNe(e,this.ast,this.ast);return this.createNode(t,{type:hs.TSTypeParameterInstantiation,range:[e.pos-1,r.end],params:e.map(n=>this.convertChild(n))})}convertTSTypeParametersToTypeParametersDeclaration(e){let t=fNe(e,this.ast,this.ast),r=[e.pos-1,t.end];return{type:hs.TSTypeParameterDeclaration,loc:Zme(r,this.ast),range:r,params:e.map(n=>this.convertChild(n))}}convertParameters(e){return e!=null&&e.length?e.map(t=>{var r;let n=this.convertChild(t);return n.decorators=((r=yNe(t))==null?void 0:r.map(a=>this.convertChild(a)))??[],n}):[]}converter(e,t,r){if(!e)return null;fg(this,sg,MBi).call(this,e);let n=this.allowPattern;r!=null&&(this.allowPattern=r);let a=this.convertNode(e,t??e.parent);return this.registerTSNodeInNodeMap(e,a),this.allowPattern=n,a}convertImportAttributes(e){return e==null?[]:e.elements.map(t=>this.convertChild(t))}convertJSXIdentifier(e){let t=this.createNode(e,{type:hs.JSXIdentifier,name:e.getText()});return this.registerTSNodeInNodeMap(e,t),t}convertJSXNamespaceOrIdentifier(e){if(e.kind===Tp.JsxNamespacedName){let n=this.createNode(e,{type:hs.JSXNamespacedName,name:this.createNode(e.name,{type:hs.JSXIdentifier,name:e.name.text}),namespace:this.createNode(e.namespace,{type:hs.JSXIdentifier,name:e.namespace.text})});return this.registerTSNodeInNodeMap(e,n),n}let t=e.getText(),r=t.indexOf(":");if(r>0){let n=sJe(e,this.ast),a=this.createNode(e,{type:hs.JSXNamespacedName,range:n,name:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0]+r+1,n[1]],name:t.slice(r+1)}),namespace:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0],n[0]+r],name:t.slice(0,r)})});return this.registerTSNodeInNodeMap(e,a),a}return this.convertJSXIdentifier(e)}convertJSXTagName(e,t){let r;switch(e.kind){case On.PropertyAccessExpression:e.name.kind===On.PrivateIdentifier&&fg(this,sg,$p).call(this,e.name,"Non-private identifier expected."),r=this.createNode(e,{type:hs.JSXMemberExpression,object:this.convertJSXTagName(e.expression,t),property:this.convertJSXIdentifier(e.name)});break;case On.ThisKeyword:case On.Identifier:default:return this.convertJSXNamespaceOrIdentifier(e)}return this.registerTSNodeInNodeMap(e,r),r}convertMethodSignature(e){return this.createNode(e,{type:hs.TSMethodSignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),kind:(()=>{switch(e.kind){case On.GetAccessor:return"get";case On.SetAccessor:return"set";case On.MethodSignature:return"method"}})(),optional:NSi(e),params:this.convertParameters(e.parameters),readonly:vh(On.ReadonlyKeyword,e),returnType:e.type&&this.convertTypeAnnotation(e.type,e),static:vh(On.StaticKeyword,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}fixParentLocation(e,t){t[0]e.range[1]&&(e.range[1]=t[1],e.loc.end=Wbt(e.range[1],this.ast))}convertNode(e,t){var r,n,a,o,l,A,f,I;switch(e.kind){case On.SourceFile:return this.createNode(e,{type:hs.Program,range:[e.getStart(this.ast),e.endOfFileToken.end],body:this.convertBodyExpressions(e.statements,e),comments:void 0,sourceType:e.externalModuleIndicator?"module":"script",tokens:void 0});case On.Block:return this.createNode(e,{type:hs.BlockStatement,body:this.convertBodyExpressions(e.statements,e)});case On.Identifier:return $tc(e)?this.createNode(e,{type:hs.ThisExpression}):this.createNode(e,{type:hs.Identifier,decorators:[],name:e.text,optional:!1,typeAnnotation:void 0});case On.PrivateIdentifier:return this.createNode(e,{type:hs.PrivateIdentifier,name:e.text.slice(1)});case On.WithStatement:return this.createNode(e,{type:hs.WithStatement,body:this.convertChild(e.statement),object:this.convertChild(e.expression)});case On.ReturnStatement:return this.createNode(e,{type:hs.ReturnStatement,argument:this.convertChild(e.expression)});case On.LabeledStatement:return this.createNode(e,{type:hs.LabeledStatement,body:this.convertChild(e.statement),label:this.convertChild(e.label)});case On.ContinueStatement:return this.createNode(e,{type:hs.ContinueStatement,label:this.convertChild(e.label)});case On.BreakStatement:return this.createNode(e,{type:hs.BreakStatement,label:this.convertChild(e.label)});case On.IfStatement:return this.createNode(e,{type:hs.IfStatement,alternate:this.convertChild(e.elseStatement),consequent:this.convertChild(e.thenStatement),test:this.convertChild(e.expression)});case On.SwitchStatement:return e.caseBlock.clauses.filter(C=>C.kind===On.DefaultClause).length>1&&fg(this,sg,$p).call(this,e,"A 'default' clause cannot appear more than once in a 'switch' statement."),this.createNode(e,{type:hs.SwitchStatement,cases:e.caseBlock.clauses.map(C=>this.convertChild(C)),discriminant:this.convertChild(e.expression)});case On.CaseClause:case On.DefaultClause:return this.createNode(e,{type:hs.SwitchCase,consequent:e.statements.map(C=>this.convertChild(C)),test:e.kind===On.CaseClause?this.convertChild(e.expression):null});case On.ThrowStatement:return e.expression.end===e.expression.pos&&fg(this,sg,kR).call(this,e,"A throw statement must throw an expression."),this.createNode(e,{type:hs.ThrowStatement,argument:this.convertChild(e.expression)});case On.TryStatement:return this.createNode(e,{type:hs.TryStatement,block:this.convertChild(e.tryBlock),finalizer:this.convertChild(e.finallyBlock),handler:this.convertChild(e.catchClause)});case On.CatchClause:return(r=e.variableDeclaration)!=null&&r.initializer&&fg(this,sg,$p).call(this,e.variableDeclaration.initializer,"Catch clause variable cannot have an initializer."),this.createNode(e,{type:hs.CatchClause,body:this.convertChild(e.block),param:e.variableDeclaration?this.convertBindingNameWithTypeAnnotation(e.variableDeclaration.name,e.variableDeclaration.type):null});case On.WhileStatement:return this.createNode(e,{type:hs.WhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.DoStatement:return this.createNode(e,{type:hs.DoWhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.ForStatement:return this.createNode(e,{type:hs.ForStatement,body:this.convertChild(e.statement),init:this.convertChild(e.initializer),test:this.convertChild(e.condition),update:this.convertChild(e.incrementor)});case On.ForInStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForInStatement,body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.ForOfStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForOfStatement,await:!!(e.awaitModifier&&e.awaitModifier.kind===On.AwaitKeyword),body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.FunctionDeclaration:{let C=vh(On.DeclareKeyword,e),b=vh(On.AsyncKeyword,e),E=!!e.asteriskToken;C?e.body?fg(this,sg,$p).call(this,e,"An implementation cannot be declared in ambient contexts."):b?fg(this,sg,$p).call(this,e,"'async' modifier cannot be used in an ambient context."):E&&fg(this,sg,$p).call(this,e,"Generators are not allowed in an ambient context."):!e.body&&E&&fg(this,sg,$p).call(this,e,"A function signature cannot be declared as a generator.");let N=this.createNode(e,{type:e.body?hs.FunctionDeclaration:hs.TSDeclareFunction,async:b,body:this.convertChild(e.body)||void 0,declare:C,expression:!1,generator:E,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,N)}case On.VariableDeclaration:{let C=!!e.exclamationToken,b=this.convertChild(e.initializer),E=this.convertBindingNameWithTypeAnnotation(e.name,e.type,e);return C&&(b?fg(this,sg,$p).call(this,e,"Declarations with initializers cannot also have definite assignment assertions."):(E.type!==hs.Identifier||!E.typeAnnotation)&&fg(this,sg,$p).call(this,e,"Declarations with definite assignment assertions must also have type annotations.")),this.createNode(e,{type:hs.VariableDeclarator,definite:C,id:E,init:b})}case On.VariableStatement:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarationList.declarations.map(b=>this.convertChild(b)),declare:vh(On.DeclareKeyword,e),kind:yNr(e.declarationList)});return C.declarations.length||fg(this,sg,kR).call(this,e,"A variable declaration list must have at least one variable declarator."),(C.kind==="using"||C.kind==="await using")&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init==null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations must be initialized.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),(C.declare||["await using","const","using"].includes(C.kind))&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].definite&&fg(this,sg,$p).call(this,b,"A definite assignment assertion '!' is not permitted in this context.")}),C.declare&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init&&(["let","var"].includes(C.kind)||C.declarations[E].id.typeAnnotation)&&fg(this,sg,$p).call(this,b,"Initializers are not permitted in ambient contexts.")}),this.fixExports(e,C)}case On.VariableDeclarationList:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarations.map(b=>this.convertChild(b)),declare:!1,kind:yNr(e)});return(C.kind==="using"||C.kind==="await using")&&e.declarations.forEach((b,E)=>{C.declarations[E].init!=null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations may not be initialized in for statement.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),C}case On.ExpressionStatement:return this.createNode(e,{type:hs.ExpressionStatement,directive:void 0,expression:this.convertChild(e.expression)});case On.ThisKeyword:return this.createNode(e,{type:hs.ThisExpression});case On.ArrayLiteralExpression:return this.allowPattern?this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0}):this.createNode(e,{type:hs.ArrayExpression,elements:e.elements.map(C=>this.convertChild(C))});case On.ObjectLiteralExpression:{if(this.allowPattern)return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.properties.map(b=>this.convertPattern(b)),typeAnnotation:void 0});let C=[];for(let b of e.properties)(b.kind===On.GetAccessor||b.kind===On.SetAccessor||b.kind===On.MethodDeclaration)&&!b.body&&fg(this,sg,kR).call(this,b.end-1,"'{' expected."),C.push(this.convertChild(b));return this.createNode(e,{type:hs.ObjectExpression,properties:C})}case On.PropertyAssignment:{let{exclamationToken:C,questionToken:b}=e;return b&&fg(this,sg,$p).call(this,b,"A property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A property assignment cannot have an exclamation token."),this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!1,value:this.converter(e.initializer,e,this.allowPattern)})}case On.ShorthandPropertyAssignment:{let{exclamationToken:C,modifiers:b,questionToken:E}=e;return b&&fg(this,sg,$p).call(this,b[0],"A shorthand property assignment cannot have modifiers."),E&&fg(this,sg,$p).call(this,E,"A shorthand property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A shorthand property assignment cannot have an exclamation token."),e.objectAssignmentInitializer?this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.name),optional:!1,right:this.convertChild(e.objectAssignmentInitializer),typeAnnotation:void 0})}):this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.convertChild(e.name)})}case On.ComputedPropertyName:return this.convertChild(e.expression);case On.PropertyDeclaration:{let C=vh(On.AbstractKeyword,e);C&&e.initializer&&fg(this,sg,$p).call(this,e.initializer,"Abstract property cannot have an initializer.");let b=vh(On.AccessorKeyword,e),E=b?C?hs.TSAbstractAccessorProperty:hs.AccessorProperty:C?hs.TSAbstractPropertyDefinition:hs.PropertyDefinition,N=this.convertChild(e.name);return this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),declare:vh(On.DeclareKeyword,e),decorators:((n=yNe(e))==null?void 0:n.map(B=>this.convertChild(B)))??[],definite:!!e.exclamationToken,key:N,optional:(N.type===hs.Literal||e.name.kind===On.Identifier||e.name.kind===On.ComputedPropertyName||e.name.kind===On.PrivateIdentifier)&&!!e.questionToken,override:vh(On.OverrideKeyword,e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e),value:C?null:this.convertChild(e.initializer)})}case On.GetAccessor:case On.SetAccessor:if(e.parent.kind===On.InterfaceDeclaration||e.parent.kind===On.TypeLiteral)return this.convertMethodSignature(e);case On.MethodDeclaration:{let C=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:null,params:[],returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});C.typeParameters&&this.fixParentLocation(C,C.typeParameters.range);let b;if(t.kind===On.ObjectLiteralExpression)C.params=e.parameters.map(E=>this.convertChild(E)),b=this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:e.kind===On.MethodDeclaration,optional:!!e.questionToken,shorthand:!1,value:C});else{C.params=this.convertParameters(e.parameters);let E=vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition;b=this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),decorators:((a=yNe(e))==null?void 0:a.map(N=>this.convertChild(N)))??[],key:this.convertChild(e.name),kind:"method",optional:!!e.questionToken,override:vh(On.OverrideKeyword,e),static:vh(On.StaticKeyword,e),value:C})}return e.kind===On.GetAccessor?b.kind="get":e.kind===On.SetAccessor?b.kind="set":!b.static&&e.name.kind===On.StringLiteral&&e.name.text==="constructor"&&b.type!==hs.Property&&(b.kind="constructor"),b}case On.Constructor:{let C=Ftc(e),b=(C&&fNe(C,e,this.ast))??e.getFirstToken(),E=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:!1,body:this.convertChild(e.body),declare:!1,expression:!1,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});E.typeParameters&&this.fixParentLocation(E,E.typeParameters.range);let N=this.createNode(e,{type:hs.Identifier,range:[b.getStart(this.ast),b.end],decorators:[],name:"constructor",optional:!1,typeAnnotation:void 0}),B=vh(On.StaticKeyword,e);return this.createNode(e,{type:vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition,accessibility:xme(e),computed:!1,decorators:[],key:N,kind:B?"method":"constructor",optional:!1,override:!1,static:B,value:E})}case On.FunctionExpression:return this.createNode(e,{type:hs.FunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.SuperKeyword:return this.createNode(e,{type:hs.Super});case On.ArrayBindingPattern:return this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0});case On.OmittedExpression:return null;case On.ObjectBindingPattern:return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.elements.map(C=>this.convertPattern(C)),typeAnnotation:void 0});case On.BindingElement:{if(t.kind===On.ArrayBindingPattern){let b=this.convertChild(e.name,t);return e.initializer?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:b,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}):e.dotDotDotToken?this.createNode(e,{type:hs.RestElement,argument:b,decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):b}let C;return e.dotDotDotToken?C=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.propertyName??e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):C=this.createNode(e,{type:hs.Property,computed:!!(e.propertyName&&e.propertyName.kind===On.ComputedPropertyName),key:this.convertChild(e.propertyName??e.name),kind:"init",method:!1,optional:!1,shorthand:!e.propertyName,value:this.convertChild(e.name)}),e.initializer&&(C.value=this.createNode(e,{type:hs.AssignmentPattern,range:[e.name.getStart(this.ast),e.initializer.end],decorators:[],left:this.convertChild(e.name),optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0})),C}case On.ArrowFunction:return this.createNode(e,{type:hs.ArrowFunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),expression:e.body.kind!==On.Block,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.YieldExpression:return this.createNode(e,{type:hs.YieldExpression,argument:this.convertChild(e.expression),delegate:!!e.asteriskToken});case On.AwaitExpression:return this.createNode(e,{type:hs.AwaitExpression,argument:this.convertChild(e.expression)});case On.NoSubstitutionTemplateLiteral:return this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.createNode(e,{type:hs.TemplateElement,tail:!0,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-1)}})]});case On.TemplateExpression:{let C=this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.convertChild(e.head)]});return e.templateSpans.forEach(b=>{C.expressions.push(this.convertChild(b.expression)),C.quasis.push(this.convertChild(b.literal))}),C}case On.TaggedTemplateExpression:return this.createNode(e,{type:hs.TaggedTemplateExpression,quasi:this.convertChild(e.template),tag:this.convertChild(e.tag),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.TemplateHead:case On.TemplateMiddle:case On.TemplateTail:{let C=e.kind===On.TemplateTail;return this.createNode(e,{type:hs.TemplateElement,tail:C,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-(C?1:2))}})}case On.SpreadAssignment:case On.SpreadElement:return this.allowPattern?this.createNode(e,{type:hs.RestElement,argument:this.convertPattern(e.expression),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):this.createNode(e,{type:hs.SpreadElement,argument:this.convertChild(e.expression)});case On.Parameter:{let C,b;return e.dotDotDotToken?C=b=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):e.initializer?(C=this.convertChild(e.name),b=this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:C,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}),Ij(e)&&(b.range[0]=C.range[0],b.loc=Zme(b.range,this.ast))):C=b=this.convertChild(e.name,t),e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),this.fixParentLocation(C,C.typeAnnotation.range)),e.questionToken&&(e.questionToken.end>C.range[1]&&(C.range[1]=e.questionToken.end,C.loc.end=Wbt(C.range[1],this.ast)),C.optional=!0),Ij(e)?this.createNode(e,{type:hs.TSParameterProperty,accessibility:xme(e),decorators:[],override:vh(On.OverrideKeyword,e),parameter:b,readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e)}):b}case On.ClassDeclaration:!e.name&&(!vh(Tp.ExportKeyword,e)||!vh(Tp.DefaultKeyword,e))&&fg(this,sg,kR).call(this,e,"A class declaration without the 'default' modifier must have a name.");case On.ClassExpression:{let C=e.heritageClauses??[],b=e.kind===On.ClassDeclaration?hs.ClassDeclaration:hs.ClassExpression,E,N;for(let F of C){let{token:Q,types:X}=F;X.length===0&&fg(this,sg,kR).call(this,F,`'${by(Q)}' list cannot be empty.`),Q===On.ExtendsKeyword?(E&&fg(this,sg,kR).call(this,F,"'extends' clause already seen."),N&&fg(this,sg,kR).call(this,F,"'extends' clause must precede 'implements' clause."),X.length>1&&fg(this,sg,kR).call(this,X[1],"Classes can only extend a single class."),E??(E=F)):Q===On.ImplementsKeyword&&(N&&fg(this,sg,kR).call(this,F,"'implements' clause already seen."),N??(N=F))}let B=this.createNode(e,{type:b,abstract:vh(On.AbstractKeyword,e),body:this.createNode(e,{type:hs.ClassBody,range:[e.members.pos-1,e.end],body:e.members.filter(Gtc).map(F=>this.convertChild(F))}),declare:vh(On.DeclareKeyword,e),decorators:((o=yNe(e))==null?void 0:o.map(F=>this.convertChild(F)))??[],id:this.convertChild(e.name),implements:N?.types.map(F=>this.convertChild(F))??[],superClass:E!=null&&E.types[0]?this.convertChild(E.types[0].expression):null,superTypeArguments:void 0,typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return(l=E?.types[0])!=null&&l.typeArguments&&(B.superTypeArguments=this.convertTypeArgumentsToTypeParameterInstantiation(E.types[0].typeArguments,E.types[0])),this.fixExports(e,B)}case On.ModuleBlock:return this.createNode(e,{type:hs.TSModuleBlock,body:this.convertBodyExpressions(e.statements,e)});case On.ImportDeclaration:{this.assertModuleSpecifier(e,!1);let C=this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),importKind:"value",source:this.convertChild(e.moduleSpecifier),specifiers:[]},"assertions","attributes",!0));if(e.importClause&&(e.importClause.isTypeOnly&&(C.importKind="type"),e.importClause.name&&C.specifiers.push(this.convertChild(e.importClause)),e.importClause.namedBindings))switch(e.importClause.namedBindings.kind){case On.NamespaceImport:C.specifiers.push(this.convertChild(e.importClause.namedBindings));break;case On.NamedImports:C.specifiers.push(...e.importClause.namedBindings.elements.map(b=>this.convertChild(b)));break}return C}case On.NamespaceImport:return this.createNode(e,{type:hs.ImportNamespaceSpecifier,local:this.convertChild(e.name)});case On.ImportSpecifier:return this.createNode(e,{type:hs.ImportSpecifier,imported:this.convertChild(e.propertyName??e.name),importKind:e.isTypeOnly?"type":"value",local:this.convertChild(e.name)});case On.ImportClause:{let C=this.convertChild(e.name);return this.createNode(e,{type:hs.ImportDefaultSpecifier,range:C.range,local:C})}case On.ExportDeclaration:return((A=e.exportClause)==null?void 0:A.kind)===On.NamedExports?(this.assertModuleSpecifier(e,!0),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),declaration:null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier),specifiers:e.exportClause.elements.map(C=>this.convertChild(C,e))},"assertions","attributes",!0))):(this.assertModuleSpecifier(e,!1),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportAllDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),exported:((f=e.exportClause)==null?void 0:f.kind)===On.NamespaceExport?this.convertChild(e.exportClause.name):null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier)},"assertions","attributes",!0)));case On.ExportSpecifier:{let C=e.propertyName??e.name;return C.kind===On.StringLiteral&&t.kind===On.ExportDeclaration&&((I=t.moduleSpecifier)==null?void 0:I.kind)!==On.StringLiteral&&fg(this,sg,$p).call(this,C,"A string literal cannot be used as a local exported binding without `from`."),this.createNode(e,{type:hs.ExportSpecifier,exported:this.convertChild(e.name),exportKind:e.isTypeOnly?"type":"value",local:this.convertChild(C)})}case On.ExportAssignment:return e.isExportEquals?this.createNode(e,{type:hs.TSExportAssignment,expression:this.convertChild(e.expression)}):this.createNode(e,{type:hs.ExportDefaultDeclaration,declaration:this.convertChild(e.expression),exportKind:"value"});case On.PrefixUnaryExpression:case On.PostfixUnaryExpression:{let C=yce(e.operator);return C==="++"||C==="--"?(lDr(e.operand)||fg(this,sg,kR).call(this,e.operand,"Invalid left-hand side expression in unary operation"),this.createNode(e,{type:hs.UpdateExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})):this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})}case On.DeleteExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"delete",prefix:!0});case On.VoidExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"void",prefix:!0});case On.TypeOfExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"typeof",prefix:!0});case On.TypeOperator:return this.createNode(e,{type:hs.TSTypeOperator,operator:yce(e.operator),typeAnnotation:this.convertChild(e.type)});case On.BinaryExpression:{if(Ztc(e.operatorToken)){let b=this.createNode(e,{type:hs.SequenceExpression,expressions:[]}),E=this.convertChild(e.left);return E.type===hs.SequenceExpression&&e.left.kind!==On.ParenthesizedExpression?b.expressions.push(...E.expressions):b.expressions.push(E),b.expressions.push(this.convertChild(e.right)),b}let C=Ptc(e.operatorToken);return this.allowPattern&&C.type===hs.AssignmentExpression?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.left,e),optional:!1,right:this.convertChild(e.right),typeAnnotation:void 0}):this.createNode(e,{...C,left:this.converter(e.left,e,C.type===hs.AssignmentExpression),right:this.convertChild(e.right)})}case On.PropertyAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.name),E=this.createNode(e,{type:hs.MemberExpression,computed:!1,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.ElementAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.argumentExpression),E=this.createNode(e,{type:hs.MemberExpression,computed:!0,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.CallExpression:{if(e.expression.kind===On.ImportKeyword)return e.arguments.length!==1&&e.arguments.length!==2&&fg(this,sg,kR).call(this,e.arguments[2]??e,"Dynamic import requires exactly one or two arguments."),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportExpression,options:e.arguments[1]?this.convertChild(e.arguments[1]):null,source:this.convertChild(e.arguments[0])},"attributes","options",!0));let C=this.convertChild(e.expression),b=e.arguments.map(B=>this.convertChild(B)),E=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),N=this.createNode(e,{type:hs.CallExpression,arguments:b,callee:C,optional:e.questionDotToken!=null,typeArguments:E});return this.convertChainExpression(N,e)}case On.NewExpression:{let C=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e);return this.createNode(e,{type:hs.NewExpression,arguments:e.arguments?e.arguments.map(b=>this.convertChild(b)):[],callee:this.convertChild(e.expression),typeArguments:C})}case On.ConditionalExpression:return this.createNode(e,{type:hs.ConditionalExpression,alternate:this.convertChild(e.whenFalse),consequent:this.convertChild(e.whenTrue),test:this.convertChild(e.condition)});case On.MetaProperty:return this.createNode(e,{type:hs.MetaProperty,meta:this.createNode(e.getFirstToken(),{type:hs.Identifier,decorators:[],name:yce(e.keywordToken),optional:!1,typeAnnotation:void 0}),property:this.convertChild(e.name)});case On.Decorator:return this.createNode(e,{type:hs.Decorator,expression:this.convertChild(e.expression)});case On.StringLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:t.kind===On.JsxAttribute?RSi(e.text):e.text});case On.NumericLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:Number(e.text)});case On.BigIntLiteral:{let C=sJe(e,this.ast),b=this.ast.text.slice(C[0],C[1]),E=ENe(!1,b.slice(0,-1),"_",""),N=typeof BigInt<"u"?BigInt(E):null;return this.createNode(e,{type:hs.Literal,range:C,bigint:N==null?E:String(N),raw:b,value:N})}case On.RegularExpressionLiteral:{let C=e.text.slice(1,e.text.lastIndexOf("/")),b=e.text.slice(e.text.lastIndexOf("/")+1),E=null;try{E=new RegExp(C,b)}catch{}return this.createNode(e,{type:hs.Literal,raw:e.text,regex:{flags:b,pattern:C},value:E})}case On.TrueKeyword:return this.createNode(e,{type:hs.Literal,raw:"true",value:!0});case On.FalseKeyword:return this.createNode(e,{type:hs.Literal,raw:"false",value:!1});case On.NullKeyword:return this.createNode(e,{type:hs.Literal,raw:"null",value:null});case On.EmptyStatement:return this.createNode(e,{type:hs.EmptyStatement});case On.DebuggerStatement:return this.createNode(e,{type:hs.DebuggerStatement});case On.JsxElement:return this.createNode(e,{type:hs.JSXElement,children:e.children.map(C=>this.convertChild(C)),closingElement:this.convertChild(e.closingElement),openingElement:this.convertChild(e.openingElement)});case On.JsxFragment:return this.createNode(e,{type:hs.JSXFragment,children:e.children.map(C=>this.convertChild(C)),closingFragment:this.convertChild(e.closingFragment),openingFragment:this.convertChild(e.openingFragment)});case On.JsxSelfClosingElement:return this.createNode(e,{type:hs.JSXElement,children:[],closingElement:null,openingElement:this.createNode(e,{type:hs.JSXOpeningElement,range:sJe(e,this.ast),attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!0,typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):void 0})});case On.JsxOpeningElement:return this.createNode(e,{type:hs.JSXOpeningElement,attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!1,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.JsxClosingElement:return this.createNode(e,{type:hs.JSXClosingElement,name:this.convertJSXTagName(e.tagName,e)});case On.JsxOpeningFragment:return this.createNode(e,{type:hs.JSXOpeningFragment});case On.JsxClosingFragment:return this.createNode(e,{type:hs.JSXClosingFragment});case On.JsxExpression:{let C=e.expression?this.convertChild(e.expression):this.createNode(e,{type:hs.JSXEmptyExpression,range:[e.getStart(this.ast)+1,e.getEnd()-1]});return e.dotDotDotToken?this.createNode(e,{type:hs.JSXSpreadChild,expression:C}):this.createNode(e,{type:hs.JSXExpressionContainer,expression:C})}case On.JsxAttribute:return this.createNode(e,{type:hs.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(e.name),value:this.convertChild(e.initializer)});case On.JsxText:{let C=e.getFullStart(),b=e.getEnd(),E=this.ast.text.slice(C,b);return this.createNode(e,{type:hs.JSXText,range:[C,b],raw:E,value:RSi(E)})}case On.JsxSpreadAttribute:return this.createNode(e,{type:hs.JSXSpreadAttribute,argument:this.convertChild(e.expression)});case On.QualifiedName:return this.createNode(e,{type:hs.TSQualifiedName,left:this.convertChild(e.left),right:this.convertChild(e.right)});case On.TypeReference:return this.createNode(e,{type:hs.TSTypeReference,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),typeName:this.convertChild(e.typeName)});case On.TypeParameter:return this.createNode(e,{type:hs.TSTypeParameter,const:vh(On.ConstKeyword,e),constraint:e.constraint&&this.convertChild(e.constraint),default:e.default?this.convertChild(e.default):void 0,in:vh(On.InKeyword,e),name:this.convertChild(e.name),out:vh(On.OutKeyword,e)});case On.ThisType:return this.createNode(e,{type:hs.TSThisType});case On.AnyKeyword:case On.BigIntKeyword:case On.BooleanKeyword:case On.NeverKeyword:case On.NumberKeyword:case On.ObjectKeyword:case On.StringKeyword:case On.SymbolKeyword:case On.UnknownKeyword:case On.VoidKeyword:case On.UndefinedKeyword:case On.IntrinsicKeyword:return this.createNode(e,{type:hs[`TS${On[e.kind]}`]});case On.NonNullExpression:{let C=this.createNode(e,{type:hs.TSNonNullExpression,expression:this.convertChild(e.expression)});return this.convertChainExpression(C,e)}case On.TypeLiteral:return this.createNode(e,{type:hs.TSTypeLiteral,members:e.members.map(C=>this.convertChild(C))});case On.ArrayType:return this.createNode(e,{type:hs.TSArrayType,elementType:this.convertChild(e.elementType)});case On.IndexedAccessType:return this.createNode(e,{type:hs.TSIndexedAccessType,indexType:this.convertChild(e.indexType),objectType:this.convertChild(e.objectType)});case On.ConditionalType:return this.createNode(e,{type:hs.TSConditionalType,checkType:this.convertChild(e.checkType),extendsType:this.convertChild(e.extendsType),falseType:this.convertChild(e.falseType),trueType:this.convertChild(e.trueType)});case On.TypeQuery:return this.createNode(e,{type:hs.TSTypeQuery,exprName:this.convertChild(e.exprName),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.MappedType:return e.members&&e.members.length>0&&fg(this,sg,kR).call(this,e.members[0],"A mapped type may not declare properties or methods."),this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSMappedType,constraint:this.convertChild(e.typeParameter.constraint),key:this.convertChild(e.typeParameter.name),nameType:this.convertChild(e.nameType)??null,optional:e.questionToken&&(e.questionToken.kind===On.QuestionToken||yce(e.questionToken.kind)),readonly:e.readonlyToken&&(e.readonlyToken.kind===On.ReadonlyKeyword||yce(e.readonlyToken.kind)),typeAnnotation:e.type&&this.convertChild(e.type)},"typeParameter","'constraint' and 'key'",this.convertChild(e.typeParameter)));case On.ParenthesizedExpression:return this.convertChild(e.expression,t);case On.TypeAliasDeclaration:{let C=this.createNode(e,{type:hs.TSTypeAliasDeclaration,declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name),typeAnnotation:this.convertChild(e.type),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,C)}case On.MethodSignature:return this.convertMethodSignature(e);case On.PropertySignature:{let{initializer:C}=e;return C&&fg(this,sg,$p).call(this,C,"A property signature cannot have an initializer."),this.createNode(e,{type:hs.TSPropertySignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),optional:NSi(e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)})}case On.IndexSignature:return this.createNode(e,{type:hs.TSIndexSignature,accessibility:xme(e),parameters:e.parameters.map(C=>this.convertChild(C)),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)});case On.ConstructorType:return this.createNode(e,{type:hs.TSConstructorType,abstract:vh(On.AbstractKeyword,e),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.FunctionType:{let{modifiers:C}=e;C&&fg(this,sg,$p).call(this,C[0],"A function type cannot have modifiers.")}case On.ConstructSignature:case On.CallSignature:{let C=e.kind===On.ConstructSignature?hs.TSConstructSignatureDeclaration:e.kind===On.CallSignature?hs.TSCallSignatureDeclaration:hs.TSFunctionType;return this.createNode(e,{type:C,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}case On.ExpressionWithTypeArguments:{let C=t.kind,b=C===On.InterfaceDeclaration?hs.TSInterfaceHeritage:C===On.HeritageClause?hs.TSClassImplements:hs.TSInstantiationExpression;return this.createNode(e,{type:b,expression:this.convertChild(e.expression),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)})}case On.InterfaceDeclaration:{let C=e.heritageClauses??[],b=[];for(let N of C){N.token!==On.ExtendsKeyword&&fg(this,sg,$p).call(this,N,N.token===On.ImplementsKeyword?"Interface declaration cannot have 'implements' clause.":"Unexpected token.");for(let B of N.types)b.push(this.convertChild(B,e))}let E=this.createNode(e,{type:hs.TSInterfaceDeclaration,body:this.createNode(e,{type:hs.TSInterfaceBody,range:[e.members.pos-1,e.end],body:e.members.map(N=>this.convertChild(N))}),declare:vh(On.DeclareKeyword,e),extends:b,id:this.convertChild(e.name),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,E)}case On.TypePredicate:{let C=this.createNode(e,{type:hs.TSTypePredicate,asserts:e.assertsModifier!=null,parameterName:this.convertChild(e.parameterName),typeAnnotation:null});return e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),C.typeAnnotation.loc=C.typeAnnotation.typeAnnotation.loc,C.typeAnnotation.range=C.typeAnnotation.typeAnnotation.range),C}case On.ImportType:{let C=sJe(e,this.ast);if(e.isTypeOf){let E=fNe(e.getFirstToken(),e,this.ast);C[0]=E.getStart(this.ast)}let b=this.createNode(e,{type:hs.TSImportType,range:C,argument:this.convertChild(e.argument),attributes:this.convertImportAttributes(e.attributes),qualifier:this.convertChild(e.qualifier),typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null});return e.isTypeOf?this.createNode(e,{type:hs.TSTypeQuery,exprName:b,typeArguments:void 0}):b}case On.EnumDeclaration:{let C=e.members.map(E=>this.convertChild(E)),b=this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSEnumDeclaration,body:this.createNode(e,{type:hs.TSEnumBody,range:[e.members.pos-1,e.end],members:C}),const:vh(On.ConstKeyword,e),declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name)},"members","'body.members'",e.members.map(E=>this.convertChild(E))));return this.fixExports(e,b)}case On.EnumMember:return this.createNode(e,{type:hs.TSEnumMember,computed:e.name.kind===Tp.ComputedPropertyName,id:this.convertChild(e.name),initializer:e.initializer&&this.convertChild(e.initializer)});case On.ModuleDeclaration:{let C=vh(On.DeclareKeyword,e),b=this.createNode(e,{type:hs.TSModuleDeclaration,...(()=>{if(e.flags&IO.GlobalAugmentation){let N=this.convertChild(e.name),B=this.convertChild(e.body);return(B==null||B.type===hs.TSModuleDeclaration)&&fg(this,sg,kR).call(this,e.body??e,"Expected a valid module body"),N.type!==hs.Identifier&&fg(this,sg,kR).call(this,e.name,"global module augmentation must have an Identifier id"),{body:B,declare:!1,global:!1,id:N,kind:"global"}}if(!(e.flags&IO.Namespace)){let N=this.convertChild(e.body);return{kind:"module",...N!=null?{body:N}:{},declare:!1,global:!1,id:this.convertChild(e.name)}}e.body==null&&fg(this,sg,kR).call(this,e,"Expected a module body"),e.name.kind!==Tp.Identifier&&fg(this,sg,kR).call(this,e.name,"`namespace`s must have an Identifier id");let E=this.createNode(e.name,{type:hs.Identifier,range:[e.name.getStart(this.ast),e.name.getEnd()],decorators:[],name:e.name.text,optional:!1,typeAnnotation:void 0});for(;e.body&&EJe(e.body)&&e.body.name;){e=e.body,C||(C=vh(On.DeclareKeyword,e));let N=e.name,B=this.createNode(N,{type:hs.Identifier,range:[N.getStart(this.ast),N.getEnd()],decorators:[],name:N.text,optional:!1,typeAnnotation:void 0});E=this.createNode(N,{type:hs.TSQualifiedName,range:[E.range[0],B.range[1]],left:E,right:B})}return{body:this.convertChild(e.body),declare:!1,global:!1,id:E,kind:"namespace"}})()});return b.declare=C,e.flags&IO.GlobalAugmentation&&(b.global=!0),this.fixExports(e,b)}case On.ParenthesizedType:return this.convertChild(e.type);case On.UnionType:return this.createNode(e,{type:hs.TSUnionType,types:e.types.map(C=>this.convertChild(C))});case On.IntersectionType:return this.createNode(e,{type:hs.TSIntersectionType,types:e.types.map(C=>this.convertChild(C))});case On.AsExpression:return this.createNode(e,{type:hs.TSAsExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.InferType:return this.createNode(e,{type:hs.TSInferType,typeParameter:this.convertChild(e.typeParameter)});case On.LiteralType:return e.literal.kind===On.NullKeyword?this.createNode(e.literal,{type:hs.TSNullKeyword}):this.createNode(e,{type:hs.TSLiteralType,literal:this.convertChild(e.literal)});case On.TypeAssertionExpression:return this.createNode(e,{type:hs.TSTypeAssertion,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.ImportEqualsDeclaration:return this.fixExports(e,this.createNode(e,{type:hs.TSImportEqualsDeclaration,id:this.convertChild(e.name),importKind:e.isTypeOnly?"type":"value",moduleReference:this.convertChild(e.moduleReference)}));case On.ExternalModuleReference:return e.expression.kind!==On.StringLiteral&&fg(this,sg,$p).call(this,e.expression,"String literal expected."),this.createNode(e,{type:hs.TSExternalModuleReference,expression:this.convertChild(e.expression)});case On.NamespaceExportDeclaration:return this.createNode(e,{type:hs.TSNamespaceExportDeclaration,id:this.convertChild(e.name)});case On.AbstractKeyword:return this.createNode(e,{type:hs.TSAbstractKeyword});case On.TupleType:{let C=e.elements.map(b=>this.convertChild(b));return this.createNode(e,{type:hs.TSTupleType,elementTypes:C})}case On.NamedTupleMember:{let C=this.createNode(e,{type:hs.TSNamedTupleMember,elementType:this.convertChild(e.type,e),label:this.convertChild(e.name,e),optional:e.questionToken!=null});return e.dotDotDotToken?(C.range[0]=C.label.range[0],C.loc.start=C.label.loc.start,this.createNode(e,{type:hs.TSRestType,typeAnnotation:C})):C}case On.OptionalType:return this.createNode(e,{type:hs.TSOptionalType,typeAnnotation:this.convertChild(e.type)});case On.RestType:return this.createNode(e,{type:hs.TSRestType,typeAnnotation:this.convertChild(e.type)});case On.TemplateLiteralType:{let C=this.createNode(e,{type:hs.TSTemplateLiteralType,quasis:[this.convertChild(e.head)],types:[]});return e.templateSpans.forEach(b=>{C.types.push(this.convertChild(b.type)),C.quasis.push(this.convertChild(b.literal))}),C}case On.ClassStaticBlockDeclaration:return this.createNode(e,{type:hs.StaticBlock,body:this.convertBodyExpressions(e.body.statements,e)});case On.AssertEntry:case On.ImportAttribute:return this.createNode(e,{type:hs.ImportAttribute,key:this.convertChild(e.name),value:this.convertChild(e.value)});case On.SatisfiesExpression:return this.createNode(e,{type:hs.TSSatisfiesExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});default:return this.deeplyCopy(e)}}createNode(e,t){let r=t;return r.range??(r.range=sJe(e,this.ast)),r.loc??(r.loc=Zme(r.range,this.ast)),r&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(r,e),r}convertProgram(){return this.converter(this.ast)}deeplyCopy(e){e.kind===Tp.JSDocFunctionType&&fg(this,sg,$p).call(this,e,"JSDoc types can only be used inside documentation comments.");let t=`TS${On[e.kind]}`;if(this.options.errorOnUnknownASTType&&!hs[t])throw new Error(`Unknown AST_NODE_TYPE: "${t}"`);let r=this.createNode(e,{type:t});"type"in e&&(r.typeAnnotation=e.type&&"kind"in e.type&&Nza(e.type)?this.convertTypeAnnotation(e.type,e):null),"typeArguments"in e&&(r.typeArguments=e.typeArguments&&"pos"in e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null),"typeParameters"in e&&(r.typeParameters=e.typeParameters&&"pos"in e.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters):null);let n=yNe(e);n!=null&&n.length&&(r.decorators=n.map(o=>this.convertChild(o)));let a=new Set(["_children","decorators","end","flags","heritageClauses","illegalDecorators","jsDoc","kind","locals","localSymbol","modifierFlagsCache","modifiers","nextContainer","parent","pos","symbol","transformFlags","type","typeArguments","typeParameters"]);return Object.entries(e).filter(([o])=>!a.has(o)).forEach(([o,l])=>{Array.isArray(l)?r[o]=l.map(A=>this.convertChild(A)):l&&typeof l=="object"&&l.kind?r[o]=this.convertChild(l):r[o]=l}),r}fixExports(e,t){let r=EJe(e)&&e.flags&IO.Namespace?orc(e):Ij(e);if(r?.[0].kind===On.ExportKeyword){this.registerTSNodeInNodeMap(e,t);let n=r[0],a=r[1],o=a?.kind===On.DefaultKeyword,l=o?fNe(a,this.ast,this.ast):fNe(n,this.ast,this.ast);if(t.range[0]=l.getStart(this.ast),t.loc=Zme(t.range,this.ast),o)return this.createNode(e,{type:hs.ExportDefaultDeclaration,range:[n.getStart(this.ast),t.range[1]],declaration:t,exportKind:"value"});let A=t.type===hs.TSInterfaceDeclaration||t.type===hs.TSTypeAliasDeclaration,f="declare"in t&&t.declare;return this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,range:[n.getStart(this.ast),t.range[1]],attributes:[],declaration:t,exportKind:A||f?"type":"value",source:null,specifiers:[]},"assertions","attributes",!0))}return t}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}registerTSNodeInNodeMap(e,t){t&&this.options.shouldPreserveNodeMaps&&!this.tsNodeToESTreeNodeMap.has(e)&&this.tsNodeToESTreeNodeMap.set(e,t)}};sg=new WeakSet,bNr=function(e,t){let r=t===Tp.ForInStatement?"for...in":"for...of";if(gec(e)){e.declarations.length!==1&&fg(this,sg,$p).call(this,e,`Only a single variable declaration is allowed in a '${r}' statement.`);let n=e.declarations[0];n.initializer?fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have an initializer.`):n.type&&fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have a type annotation.`),t===Tp.ForInStatement&&e.flags&IO.Using&&fg(this,sg,$p).call(this,e,"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.")}else!lDr(e)&&e.kind!==Tp.ObjectLiteralExpression&&e.kind!==Tp.ArrayLiteralExpression&&fg(this,sg,$p).call(this,e,`The left-hand side of a '${r}' statement must be a variable or a property access.`)},MBi=function(e){if(!this.options.allowInvalidAST){Ktc(e)&&fg(this,sg,$p).call(this,e.illegalDecorators[0],"Decorators are not valid here.");for(let t of yNe(e,!0)??[])src(e)||(INr(e)&&!DSi(e.body)?fg(this,sg,$p).call(this,t,"A decorator can only decorate a method implementation, not an overload."):fg(this,sg,$p).call(this,t,"Decorators are not valid here."));for(let t of Ij(e,!0)??[]){if(t.kind!==On.ReadonlyKeyword&&((e.kind===On.PropertySignature||e.kind===On.MethodSignature)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type member`),e.kind===On.IndexSignature&&(t.kind!==On.StaticKeyword||!wNe(e.parent))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on an index signature`)),t.kind!==On.InKeyword&&t.kind!==On.OutKeyword&&t.kind!==On.ConstKeyword&&e.kind===On.TypeParameter&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type parameter`),(t.kind===On.InKeyword||t.kind===On.OutKeyword)&&(e.kind!==On.TypeParameter||!(nDr(e.parent)||wNe(e.parent)||dBi(e.parent)))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`),t.kind===On.ReadonlyKeyword&&e.kind!==On.PropertyDeclaration&&e.kind!==On.PropertySignature&&e.kind!==On.IndexSignature&&e.kind!==On.Parameter&&fg(this,sg,$p).call(this,t,"'readonly' modifier can only appear on a property declaration or index signature."),t.kind===On.DeclareKeyword&&wNe(e.parent)&&!Kbt(e)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on class elements of this kind.`),t.kind===On.DeclareKeyword&&rEt(e)){let r=yNr(e.declarationList);(r==="using"||r==="await using")&&fg(this,sg,$p).call(this,t,`'declare' modifier cannot appear on a '${r}' declaration.`)}if(t.kind===On.AbstractKeyword&&e.kind!==On.ClassDeclaration&&e.kind!==On.ConstructorType&&e.kind!==On.MethodDeclaration&&e.kind!==On.PropertyDeclaration&&e.kind!==On.GetAccessor&&e.kind!==On.SetAccessor&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a class, method, or property declaration.`),(t.kind===On.StaticKeyword||t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)&&(e.parent.kind===On.ModuleBlock||e.parent.kind===On.SourceFile)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a module or namespace element.`),t.kind===On.AccessorKeyword&&e.kind!==On.PropertyDeclaration&&fg(this,sg,$p).call(this,t,"'accessor' modifier can only appear on a property declaration."),t.kind===On.AsyncKeyword&&e.kind!==On.MethodDeclaration&&e.kind!==On.FunctionDeclaration&&e.kind!==On.FunctionExpression&&e.kind!==On.ArrowFunction&&fg(this,sg,$p).call(this,t,"'async' modifier cannot be used here."),e.kind===On.Parameter&&(t.kind===On.StaticKeyword||t.kind===On.ExportKeyword||t.kind===On.DeclareKeyword||t.kind===On.AsyncKeyword)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a parameter.`),t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)for(let r of Ij(e)??[])r!==t&&(r.kind===On.PublicKeyword||r.kind===On.ProtectedKeyword||r.kind===On.PrivateKeyword)&&fg(this,sg,$p).call(this,r,"Accessibility modifier already seen.");if(e.kind===On.Parameter&&(t.kind===On.PublicKeyword||t.kind===On.PrivateKeyword||t.kind===On.ProtectedKeyword||t.kind===On.ReadonlyKeyword||t.kind===On.OverrideKeyword)){let r=trc(e);r.kind===On.Constructor&&DSi(r.body)||fg(this,sg,$p).call(this,t,"A parameter property is only allowed in a constructor implementation.")}}}},$p=function(e,t){let r,n;throw typeof e=="number"?r=n=e:(r=e.getStart(this.ast),n=e.getEnd()),WBi(t,this.ast,r,n)},kR=function(e,t){this.options.allowInvalidAST||fg(this,sg,$p).call(this,e,t)},bNe=function(e,t,r,n=!1){let a=n;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>e[r]:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use '${r}' instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),e[r]),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e},ENr=function(e,t,r,n){let a=!1;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>n:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use ${r} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),n),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e};function lrc(e,t,r=e.getSourceFile()){let n=[];for(;;){if(Nvi(e.kind))t(e);else{let a=e.getChildren(r);if(a.length===1){e=a[0];continue}for(let o=a.length-1;o>=0;--o)n.push(a[o])}if(n.length===0)break;e=n.pop()}}function urc(e,t,r=e.getSourceFile()){let n=r.text,a=r.languageVariant!==nvi.JSX;return lrc(e,l=>{if(l.pos!==l.end&&(l.kind!==Tp.JsxText&&W7a(n,l.pos===0?(yvi(n)??"").length:l.pos,o),a||grc(l)))return O7a(n,l.end,o)},r);function o(l,A,f){t(n,{end:A,kind:f,pos:l})}}function grc(e){switch(e.kind){case Tp.CloseBraceToken:return e.parent.kind!==Tp.JsxExpression||!rNr(e.parent.parent);case Tp.GreaterThanToken:switch(e.parent.kind){case Tp.JsxClosingElement:case Tp.JsxClosingFragment:return!rNr(e.parent.parent.parent);case Tp.JsxOpeningElement:return e.end!==e.parent.end;case Tp.JsxOpeningFragment:return!1;case Tp.JsxSelfClosingElement:return e.end!==e.parent.end||!rNr(e.parent.parent)}}return!0}function rNr(e){return e.kind===Tp.JsxElement||e.kind===Tp.JsxFragment}var[tRu,rRu]=F6a.split(".").map(e=>Number.parseInt(e,10)),nRu=kG.Intrinsic??kG.Any|kG.Unknown|kG.String|kG.Number|kG.BigInt|kG.Boolean|kG.BooleanLiteral|kG.ESSymbol|kG.Void|kG.Undefined|kG.Null|kG.Never|kG.NonPrimitive;function Arc(e,t){let r=[];return urc(e,(n,a)=>{let o=a.kind===Tp.SingleLineCommentTrivia?sD.Line:sD.Block,l=[a.pos,a.end],A=Zme(l,e),f=l[0]+2,I=a.kind===Tp.SingleLineCommentTrivia?l[1]-f:l[1]-f-2;r.push({type:o,loc:A,range:l,value:t.slice(f,f+I)})},e),r}var drc=()=>{};function prc(e,t,r){let{parseDiagnostics:n}=e;if(n.length)throw arc(n[0]);let a=new crc(e,{allowInvalidAST:t.allowInvalidAST,errorOnUnknownASTType:t.errorOnUnknownASTType,shouldPreserveNodeMaps:r,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings}),o=a.convertProgram();return(!t.range||!t.loc)&&drc(o,{enter:l=>{t.range||delete l.range,t.loc||delete l.loc}}),t.tokens&&(o.tokens=Jtc(e)),t.comment&&(o.comments=Arc(e,t.codeFullText)),{astMaps:a.getASTMaps(),estree:o}}function HBi(e){if(typeof e!="object"||e==null)return!1;let t=e;return t.kind===Tp.SourceFile&&typeof t.getFullText=="function"}var frc=function(e){return e&&e.__esModule?e:{default:e}},Irc=frc({extname:e=>"."+e.split(".").pop()});function hrc(e,t){switch(Irc.default.extname(e).toLowerCase()){case tH.Cjs:case tH.Js:case tH.Mjs:return Bee.JS;case tH.Cts:case tH.Mts:case tH.Ts:return Bee.TS;case tH.Json:return Bee.JSON;case tH.Jsx:return Bee.JSX;case tH.Tsx:return Bee.TSX;default:return t?Bee.TSX:Bee.TS}}var mrc={default:TNr},Crc=(0,mrc.default)("typescript-eslint:typescript-estree:create-program:createSourceFile");function _rc(e){return Crc("Getting AST without type information in %s mode for: %s",e.jsx?"TSX":"TS",e.filePath),HBi(e.code)?e.code:ttc(e.filePath,e.codeFullText,{jsDocParsingMode:e.jsDocParsingMode,languageVersion:GNr.Latest,setExternalModuleIndicator:e.setExternalModuleIndicator},!0,hrc(e.filePath,e.jsx))}var yrc=()=>{},brc=e=>e,Erc=class{},Src=()=>!1,vrc=()=>{},Brc=function(e){return e&&e.__esModule?e:{default:e}},SNr={default:TNr},wrc=Brc({extname:e=>"."+e.split(".").pop()}),Trc=(0,SNr.default)("typescript-eslint:typescript-estree:parseSettings:createParseSettings"),kSi,xSi=null,GSi,FSi,ZSi,LSi,oJe={ParseAll:(GSi=uJe)==null?void 0:GSi.ParseAll,ParseForTypeErrors:(FSi=uJe)==null?void 0:FSi.ParseForTypeErrors,ParseForTypeInfo:(ZSi=uJe)==null?void 0:ZSi.ParseForTypeInfo,ParseNone:(LSi=uJe)==null?void 0:LSi.ParseNone};function Rrc(e,t={}){var r;let n=Nrc(e),a=Src(t),o=typeof t.tsconfigRootDir=="string"?t.tsconfigRootDir:"/prettier-security-dirname-placeholder",l=typeof t.loggerFn=="function",A=brc(typeof t.filePath=="string"&&t.filePath!==""?t.filePath:Drc(t.jsx),o),f=wrc.default.extname(A).toLowerCase(),I=(()=>{switch(t.jsDocParsingMode){case"all":return oJe.ParseAll;case"none":return oJe.ParseNone;case"type-info":return oJe.ParseForTypeInfo;default:return oJe.ParseAll}})(),C={loc:t.loc===!0,range:t.range===!0,allowInvalidAST:t.allowInvalidAST===!0,code:e,codeFullText:n,comment:t.comment===!0,comments:[],debugLevel:t.debugLevel===!0?new Set(["typescript-eslint"]):Array.isArray(t.debugLevel)?new Set(t.debugLevel):new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:t.errorOnUnknownASTType===!0,extraFileExtensions:Array.isArray(t.extraFileExtensions)&&t.extraFileExtensions.every(b=>typeof b=="string")?t.extraFileExtensions:[],filePath:A,jsDocParsingMode:I,jsx:t.jsx===!0,log:typeof t.loggerFn=="function"?t.loggerFn:t.loggerFn===!1?()=>{}:console.log,preserveNodeMaps:t.preserveNodeMaps!==!1,programs:Array.isArray(t.programs)?t.programs:null,projects:new Map,projectService:t.projectService||t.project&&t.projectService!==!1&&(void 0).env.TYPESCRIPT_ESLINT_PROJECT_SERVICE==="true"?xSi??(xSi=yrc(t.projectService,I,o)):void 0,setExternalModuleIndicator:t.sourceType==="module"||t.sourceType==null&&f===tH.Mjs||t.sourceType==null&&f===tH.Mts?b=>{b.externalModuleIndicator=!0}:void 0,singleRun:a,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings??!0,tokens:t.tokens===!0?[]:null,tsconfigMatchCache:kSi??(kSi=new Erc(a?"Infinity":((r=t.cacheLifetime)==null?void 0:r.glob)??void 0)),tsconfigRootDir:o};if(C.debugLevel.size>0){let b=[];C.debugLevel.has("typescript-eslint")&&b.push("typescript-eslint:*"),(C.debugLevel.has("eslint")||SNr.default.enabled("eslint:*,-eslint:code-path"))&&b.push("eslint:*,-eslint:code-path"),SNr.default.enable(b.join(","))}if(Array.isArray(t.programs)){if(!t.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");Trc("parserOptions.programs was provided, so parserOptions.project will be ignored.")}return!C.programs&&!C.projectService&&(C.projects=new Map),t.jsDocParsingMode==null&&C.projects.size===0&&C.programs==null&&C.projectService==null&&(C.jsDocParsingMode=oJe.ParseNone),vrc(C,l),C}function Nrc(e){return HBi(e)?e.getFullText(e):typeof e=="string"?e:String(e)}function Drc(e){return e?"estree.tsx":"estree.ts"}var krc={default:TNr},iRu=(0,krc.default)("typescript-eslint:typescript-estree:parser");function xrc(e,t){let{ast:r}=Grc(e,t,!1);return r}function Grc(e,t,r){let n=Rrc(e,t);if(t!=null&&t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');let a=_rc(n),{astMaps:o,estree:l}=prc(a,n,r);return{ast:l,esTreeNodeToTSNodeMap:o.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:o.tsNodeToESTreeNodeMap}}function Frc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var Zrc=Frc;function Lrc(e){let t=[];for(let r of e)try{return r()}catch(n){t.push(n)}throw Object.assign(new Error("All combinations failed"),{errors:t})}var Vrc=Lrc,Prc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},VSi=Prc;function Wrc(e){return Array.isArray(e)&&e.length>0}var Orc=Wrc;function pj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(pj(o),a):a}function Lme(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function Mrc(e){let t=new Set(e);return r=>t.has(r?.type)}var Hrc=Mrc,Yrc=Hrc(["Block","CommentBlock","MultiLine"]),vNr=Yrc;function Qrc(e){let t=`*${e.value}*`.split(` +`&&a[n-1]==="\r"?n-1:n}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){let e=z6a();return this.forEachChild(a),e;function t(o){let l=n(o);l&&e.add(l,o)}function r(o){let l=e.get(o);return l||e.set(o,l=[]),l}function n(o){let l=MNr(o);return l&&($vi(l)&&Bce(l.expression)?l.expression.name.text:kvi(l)?getNameFromPropertyName(l):void 0)}function a(o){switch(o.kind){case 262:case 218:case 174:case 173:let l=o,A=n(l);if(A){let C=r(A),b=Vme(C);b&&l.parent===b.parent&&l.symbol===b.symbol?l.body&&!b.body&&(C[C.length-1]=l):C.push(l)}Ok(o,a);break;case 263:case 231:case 264:case 265:case 266:case 267:case 271:case 281:case 276:case 273:case 274:case 177:case 178:case 187:t(o),Ok(o,a);break;case 169:if(!vJe(o,31))break;case 260:case 208:{let C=o;if(Dza(C.name)){Ok(C.name,a);break}C.initializer&&a(C.initializer)}case 306:case 172:case 171:t(o);break;case 278:let f=o;f.exportClause&&(dec(f.exportClause)?hO(f.exportClause.elements,a):a(f.exportClause.name));break;case 272:let I=o.importClause;I&&(I.name&&t(I.name),I.namedBindings&&(I.namedBindings.kind===274?t(I.namedBindings):hO(I.namedBindings.elements,a)));break;case 226:JNr(o)!==0&&t(o);default:Ok(o,a)}}}},btc=class{constructor(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}};function Etc(){return{getNodeConstructor:()=>aDr,getTokenConstructor:()=>RBi,getIdentifierConstructor:()=>NBi,getPrivateIdentifierConstructor:()=>DBi,getSourceFileConstructor:()=>ytc,getSymbolConstructor:()=>mtc,getTypeConstructor:()=>Ctc,getSignatureConstructor:()=>_tc,getSourceMapSourceConstructor:()=>btc}}var Stc=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints","getSupportedCodeFixes","getPasteEdits"],tRu=[...Stc,"getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors","preparePasteEditsForFile"];Uqa(Etc());var GBi=new Proxy({},{get:()=>!0}),FBi=GBi["4.8"];function Ij(e,t=!1){var r;if(e!=null){if(FBi){if(t||oDr(e)){let n=rza(e);return n?[...n]:void 0}return}return(r=e.modifiers)==null?void 0:r.filter(n=>!tDr(n))}}function yNe(e,t=!1){var r;if(e!=null){if(FBi){if(t||Yec(e)){let n=tza(e);return n?[...n]:void 0}return}return(r=e.decorators)==null?void 0:r.filter(tDr)}}var vtc={},ZBi=new Proxy({},{get:(e,t)=>t}),Btc=ZBi,wtc=ZBi,hs=Btc,sD=wtc,LBi=GBi["5.0"],au=Tp,Ttc=new Set([au.AmpersandAmpersandToken,au.BarBarToken,au.QuestionQuestionToken]),Rtc=new Set([Tp.AmpersandAmpersandEqualsToken,Tp.AmpersandEqualsToken,Tp.AsteriskAsteriskEqualsToken,Tp.AsteriskEqualsToken,Tp.BarBarEqualsToken,Tp.BarEqualsToken,Tp.CaretEqualsToken,Tp.EqualsToken,Tp.GreaterThanGreaterThanEqualsToken,Tp.GreaterThanGreaterThanGreaterThanEqualsToken,Tp.LessThanLessThanEqualsToken,Tp.MinusEqualsToken,Tp.PercentEqualsToken,Tp.PlusEqualsToken,Tp.QuestionQuestionEqualsToken,Tp.SlashEqualsToken]),Ntc=new Set([au.AmpersandAmpersandToken,au.AmpersandToken,au.AsteriskAsteriskToken,au.AsteriskToken,au.BarBarToken,au.BarToken,au.CaretToken,au.EqualsEqualsEqualsToken,au.EqualsEqualsToken,au.ExclamationEqualsEqualsToken,au.ExclamationEqualsToken,au.GreaterThanEqualsToken,au.GreaterThanGreaterThanGreaterThanToken,au.GreaterThanGreaterThanToken,au.GreaterThanToken,au.InKeyword,au.InstanceOfKeyword,au.LessThanEqualsToken,au.LessThanLessThanToken,au.LessThanToken,au.MinusToken,au.PercentToken,au.PlusToken,au.SlashToken]);function Dtc(e){return Rtc.has(e.kind)}function ktc(e){return Ttc.has(e.kind)}function xtc(e){return Ntc.has(e.kind)}function yce(e){return by(e)}function Gtc(e){return e.kind!==au.SemicolonClassElement}function vh(e,t){let r=Ij(t);return r?.some(n=>n.kind===e)===!0}function Ftc(e){let t=Ij(e);return t==null?null:t[t.length-1]??null}function Ztc(e){return e.kind===au.CommaToken}function Ltc(e){return e.kind===au.SingleLineCommentTrivia||e.kind===au.MultiLineCommentTrivia}function Vtc(e){return e.kind===au.JSDocComment}function Ptc(e){if(Dtc(e))return{type:hs.AssignmentExpression,operator:yce(e.kind)};if(ktc(e))return{type:hs.LogicalExpression,operator:yce(e.kind)};if(xtc(e))return{type:hs.BinaryExpression,operator:yce(e.kind)};throw new Error(`Unexpected binary operator ${by(e.kind)}`)}function Wbt(e,t){let r=t.getLineAndCharacterOfPosition(e);return{column:r.character,line:r.line+1}}function Zme(e,t){let[r,n]=e.map(a=>Wbt(a,t));return{end:n,start:r}}function Wtc(e){if(e.kind===Tp.Block)switch(e.parent.kind){case Tp.Constructor:case Tp.GetAccessor:case Tp.SetAccessor:case Tp.ArrowFunction:case Tp.FunctionExpression:case Tp.FunctionDeclaration:case Tp.MethodDeclaration:return!0;default:return!1}return!0}function sJe(e,t){return[e.getStart(t),e.getEnd()]}function Otc(e){return e.kind>=au.FirstToken&&e.kind<=au.LastToken}function VBi(e){return e.kind>=au.JsxElement&&e.kind<=au.JsxAttribute}function yNr(e){return e.flags&IO.Let?"let":(e.flags&IO.AwaitUsing)===IO.AwaitUsing?"await using":e.flags&IO.Const?"const":e.flags&IO.Using?"using":"var"}function xme(e){let t=Ij(e);if(t!=null)for(let r of t)switch(r.kind){case au.PublicKeyword:return"public";case au.ProtectedKeyword:return"protected";case au.PrivateKeyword:return"private";default:break}}function fNe(e,t,r){return n(t);function n(a){return _za(a)&&a.pos===e.end?a:ztc(a.getChildren(r),o=>(o.pos<=e.pos&&o.end>e.end||o.pos===e.end)&&jtc(o,r)?n(o):void 0)}}function Mtc(e,t){let r=e;for(;r;){if(t(r))return r;r=r.parent}}function Htc(e){return!!Mtc(e,VBi)}function RSi(e){return ENe(!1,e,/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,t=>{let r=t.slice(1,-1);if(r[0]==="#"){let n=r[1]==="x"?parseInt(r.slice(2),16):parseInt(r.slice(1),10);return n>1114111?t:String.fromCodePoint(n)}return vtc[r]||t})}function INe(e){return e.kind===au.ComputedPropertyName}function NSi(e){return!!e.questionToken}function PBi(e){return e.type===hs.ChainExpression}function Ytc(e,t){return PBi(t)&&e.expression.kind!==Tp.ParenthesizedExpression}function Qtc(e){let t;if(LBi&&e.kind===au.Identifier?t=Svi(e):"originalKeywordKind"in e&&(t=e.originalKeywordKind),t)return t===au.NullKeyword?sD.Null:t>=au.FirstFutureReservedWord&&t<=au.LastKeyword?sD.Identifier:sD.Keyword;if(e.kind>=au.FirstKeyword&&e.kind<=au.LastFutureReservedWord)return e.kind===au.FalseKeyword||e.kind===au.TrueKeyword?sD.Boolean:sD.Keyword;if(e.kind>=au.FirstPunctuation&&e.kind<=au.LastPunctuation)return sD.Punctuator;if(e.kind>=au.NoSubstitutionTemplateLiteral&&e.kind<=au.TemplateTail)return sD.Template;switch(e.kind){case au.NumericLiteral:return sD.Numeric;case au.JsxText:return sD.JSXText;case au.StringLiteral:return e.parent.kind===au.JsxAttribute||e.parent.kind===au.JsxElement?sD.JSXText:sD.String;case au.RegularExpressionLiteral:return sD.RegularExpression;case au.Identifier:case au.ConstructorKeyword:case au.GetKeyword:case au.SetKeyword:default:}return e.kind===au.Identifier&&(VBi(e.parent)||e.parent.kind===au.PropertyAccessExpression&&Htc(e))?sD.JSXIdentifier:sD.Identifier}function Xtc(e,t){let r=e.kind===au.JsxText?e.getFullStart():e.getStart(t),n=e.getEnd(),a=t.text.slice(r,n),o=Qtc(e),l=[r,n],A=Zme(l,t);return o===sD.RegularExpression?{type:o,loc:A,range:l,regex:{flags:a.slice(a.lastIndexOf("/")+1),pattern:a.slice(1,a.lastIndexOf("/"))},value:a}:{type:o,loc:A,range:l,value:a}}function Jtc(e){let t=[];function r(n){Ltc(n)||Vtc(n)||(Otc(n)&&n.kind!==au.EndOfFileToken?t.push(Xtc(n,e)):n.getChildren(e).forEach(r))}return r(e),t}var Utc=class extends Error{fileName;location;constructor(e,t,r){super(e),this.fileName=t,this.location=r,Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:new.target.name})}get index(){return this.location.start.offset}get lineNumber(){return this.location.start.line}get column(){return this.location.start.column}};function WBi(e,t,r,n=r){let[a,o]=[r,n].map(l=>{let{character:A,line:f}=t.getLineAndCharacterOfPosition(l);return{column:A,line:f+1,offset:l}});return new Utc(e,t.fileName,{end:o,start:a})}function Ktc(e){var t;return!!("illegalDecorators"in e&&(t=e.illegalDecorators)!=null&&t.length)}function jtc(e,t){return e.kind===au.EndOfFileToken?!!e.jsDoc:e.getWidth(t)!==0}function ztc(e,t){if(e!==void 0)for(let r=0;r=0&&e.kind!==au.EndOfFileToken}function DSi(e){return!erc(e)}function trc(e){return Evi(e.parent,xvi)}function rrc(e){return vh(au.AbstractKeyword,e)}function nrc(e){if(e.parameters.length&&!yBi(e)){let t=e.parameters[0];if(irc(t))return t}return null}function irc(e){return OBi(e.name)}function src(e){switch(e.kind){case au.ClassDeclaration:return!0;case au.ClassExpression:return!0;case au.PropertyDeclaration:{let{parent:t}=e;return!!(zbt(t)||wNe(t)&&!rrc(e))}case au.GetAccessor:case au.SetAccessor:case au.MethodDeclaration:{let{parent:t}=e;return!!e.body&&(zbt(t)||wNe(t))}case au.Parameter:{let{parent:t}=e,r=t.parent;return!!t&&"body"in t&&!!t.body&&(t.kind===au.Constructor||t.kind===au.MethodDeclaration||t.kind===au.SetAccessor)&&nrc(t)!==e&&!!r&&r.kind===au.ClassDeclaration}}return!1}function lDr(e){switch(e.kind){case au.Identifier:return!0;case au.PropertyAccessExpression:case au.ElementAccessExpression:return!(e.flags&IO.OptionalChain);case au.ParenthesizedExpression:case au.TypeAssertionExpression:case au.AsExpression:case au.SatisfiesExpression:case au.ExpressionWithTypeArguments:case au.NonNullExpression:return lDr(e.expression);default:return!1}}function orc(e){let t=Ij(e),r=e;for(;(!t||t.length===0)&&EJe(r.parent);){let n=Ij(r.parent);n!=null&&n.length&&(t=n),r=r.parent}return t}var On=Tp;function arc(e){return WBi("message"in e&&e.message||e.messageText,e.file,e.start)}var sg,bNr,MBi,$p,kR,bNe,ENr,crc=class{constructor(e,t){k6a(this,sg),eJe(this,"allowPattern",!1),eJe(this,"ast"),eJe(this,"esTreeNodeToTSNodeMap",new WeakMap),eJe(this,"options"),eJe(this,"tsNodeToESTreeNodeMap",new WeakMap),this.ast=e,this.options={...t}}assertModuleSpecifier(e,t){var r;!t&&e.moduleSpecifier==null&&fg(this,sg,kR).call(this,e,"Module specifier must be a string literal."),e.moduleSpecifier&&((r=e.moduleSpecifier)==null?void 0:r.kind)!==On.StringLiteral&&fg(this,sg,kR).call(this,e.moduleSpecifier,"Module specifier must be a string literal.")}convertBindingNameWithTypeAnnotation(e,t,r){let n=this.convertPattern(e);return t&&(n.typeAnnotation=this.convertTypeAnnotation(t,r),this.fixParentLocation(n,n.typeAnnotation.range)),n}convertBodyExpressions(e,t){let r=Wtc(t);return e.map(n=>{let a=this.convertChild(n);if(r){if(a!=null&&a.expression&&uBi(n)&&tEt(n.expression)){let o=a.expression.raw;return a.directive=o.slice(1,-1),a}r=!1}return a}).filter(n=>n)}convertChainExpression(e,t){let{child:r,isOptional:n}=e.type===hs.MemberExpression?{child:e.object,isOptional:e.optional}:e.type===hs.CallExpression?{child:e.callee,isOptional:e.optional}:{child:e.expression,isOptional:!1},a=Ytc(t,r);if(!a&&!n)return e;if(a&&PBi(r)){let o=r.expression;e.type===hs.MemberExpression?e.object=o:e.type===hs.CallExpression?e.callee=o:e.expression=o}return this.createNode(t,{type:hs.ChainExpression,expression:e})}convertChild(e,t){return this.converter(e,t,!1)}convertPattern(e,t){return this.converter(e,t,!0)}convertTypeAnnotation(e,t){let r=t?.kind===On.FunctionType||t?.kind===On.ConstructorType?2:1,n=[e.getFullStart()-r,e.end],a=Zme(n,this.ast);return{type:hs.TSTypeAnnotation,loc:a,range:n,typeAnnotation:this.convertChild(e)}}convertTypeArgumentsToTypeParameterInstantiation(e,t){let r=fNe(e,this.ast,this.ast);return this.createNode(t,{type:hs.TSTypeParameterInstantiation,range:[e.pos-1,r.end],params:e.map(n=>this.convertChild(n))})}convertTSTypeParametersToTypeParametersDeclaration(e){let t=fNe(e,this.ast,this.ast),r=[e.pos-1,t.end];return{type:hs.TSTypeParameterDeclaration,loc:Zme(r,this.ast),range:r,params:e.map(n=>this.convertChild(n))}}convertParameters(e){return e!=null&&e.length?e.map(t=>{var r;let n=this.convertChild(t);return n.decorators=((r=yNe(t))==null?void 0:r.map(a=>this.convertChild(a)))??[],n}):[]}converter(e,t,r){if(!e)return null;fg(this,sg,MBi).call(this,e);let n=this.allowPattern;r!=null&&(this.allowPattern=r);let a=this.convertNode(e,t??e.parent);return this.registerTSNodeInNodeMap(e,a),this.allowPattern=n,a}convertImportAttributes(e){return e==null?[]:e.elements.map(t=>this.convertChild(t))}convertJSXIdentifier(e){let t=this.createNode(e,{type:hs.JSXIdentifier,name:e.getText()});return this.registerTSNodeInNodeMap(e,t),t}convertJSXNamespaceOrIdentifier(e){if(e.kind===Tp.JsxNamespacedName){let n=this.createNode(e,{type:hs.JSXNamespacedName,name:this.createNode(e.name,{type:hs.JSXIdentifier,name:e.name.text}),namespace:this.createNode(e.namespace,{type:hs.JSXIdentifier,name:e.namespace.text})});return this.registerTSNodeInNodeMap(e,n),n}let t=e.getText(),r=t.indexOf(":");if(r>0){let n=sJe(e,this.ast),a=this.createNode(e,{type:hs.JSXNamespacedName,range:n,name:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0]+r+1,n[1]],name:t.slice(r+1)}),namespace:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0],n[0]+r],name:t.slice(0,r)})});return this.registerTSNodeInNodeMap(e,a),a}return this.convertJSXIdentifier(e)}convertJSXTagName(e,t){let r;switch(e.kind){case On.PropertyAccessExpression:e.name.kind===On.PrivateIdentifier&&fg(this,sg,$p).call(this,e.name,"Non-private identifier expected."),r=this.createNode(e,{type:hs.JSXMemberExpression,object:this.convertJSXTagName(e.expression,t),property:this.convertJSXIdentifier(e.name)});break;case On.ThisKeyword:case On.Identifier:default:return this.convertJSXNamespaceOrIdentifier(e)}return this.registerTSNodeInNodeMap(e,r),r}convertMethodSignature(e){return this.createNode(e,{type:hs.TSMethodSignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),kind:(()=>{switch(e.kind){case On.GetAccessor:return"get";case On.SetAccessor:return"set";case On.MethodSignature:return"method"}})(),optional:NSi(e),params:this.convertParameters(e.parameters),readonly:vh(On.ReadonlyKeyword,e),returnType:e.type&&this.convertTypeAnnotation(e.type,e),static:vh(On.StaticKeyword,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}fixParentLocation(e,t){t[0]e.range[1]&&(e.range[1]=t[1],e.loc.end=Wbt(e.range[1],this.ast))}convertNode(e,t){var r,n,a,o,l,A,f,I;switch(e.kind){case On.SourceFile:return this.createNode(e,{type:hs.Program,range:[e.getStart(this.ast),e.endOfFileToken.end],body:this.convertBodyExpressions(e.statements,e),comments:void 0,sourceType:e.externalModuleIndicator?"module":"script",tokens:void 0});case On.Block:return this.createNode(e,{type:hs.BlockStatement,body:this.convertBodyExpressions(e.statements,e)});case On.Identifier:return $tc(e)?this.createNode(e,{type:hs.ThisExpression}):this.createNode(e,{type:hs.Identifier,decorators:[],name:e.text,optional:!1,typeAnnotation:void 0});case On.PrivateIdentifier:return this.createNode(e,{type:hs.PrivateIdentifier,name:e.text.slice(1)});case On.WithStatement:return this.createNode(e,{type:hs.WithStatement,body:this.convertChild(e.statement),object:this.convertChild(e.expression)});case On.ReturnStatement:return this.createNode(e,{type:hs.ReturnStatement,argument:this.convertChild(e.expression)});case On.LabeledStatement:return this.createNode(e,{type:hs.LabeledStatement,body:this.convertChild(e.statement),label:this.convertChild(e.label)});case On.ContinueStatement:return this.createNode(e,{type:hs.ContinueStatement,label:this.convertChild(e.label)});case On.BreakStatement:return this.createNode(e,{type:hs.BreakStatement,label:this.convertChild(e.label)});case On.IfStatement:return this.createNode(e,{type:hs.IfStatement,alternate:this.convertChild(e.elseStatement),consequent:this.convertChild(e.thenStatement),test:this.convertChild(e.expression)});case On.SwitchStatement:return e.caseBlock.clauses.filter(C=>C.kind===On.DefaultClause).length>1&&fg(this,sg,$p).call(this,e,"A 'default' clause cannot appear more than once in a 'switch' statement."),this.createNode(e,{type:hs.SwitchStatement,cases:e.caseBlock.clauses.map(C=>this.convertChild(C)),discriminant:this.convertChild(e.expression)});case On.CaseClause:case On.DefaultClause:return this.createNode(e,{type:hs.SwitchCase,consequent:e.statements.map(C=>this.convertChild(C)),test:e.kind===On.CaseClause?this.convertChild(e.expression):null});case On.ThrowStatement:return e.expression.end===e.expression.pos&&fg(this,sg,kR).call(this,e,"A throw statement must throw an expression."),this.createNode(e,{type:hs.ThrowStatement,argument:this.convertChild(e.expression)});case On.TryStatement:return this.createNode(e,{type:hs.TryStatement,block:this.convertChild(e.tryBlock),finalizer:this.convertChild(e.finallyBlock),handler:this.convertChild(e.catchClause)});case On.CatchClause:return(r=e.variableDeclaration)!=null&&r.initializer&&fg(this,sg,$p).call(this,e.variableDeclaration.initializer,"Catch clause variable cannot have an initializer."),this.createNode(e,{type:hs.CatchClause,body:this.convertChild(e.block),param:e.variableDeclaration?this.convertBindingNameWithTypeAnnotation(e.variableDeclaration.name,e.variableDeclaration.type):null});case On.WhileStatement:return this.createNode(e,{type:hs.WhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.DoStatement:return this.createNode(e,{type:hs.DoWhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.ForStatement:return this.createNode(e,{type:hs.ForStatement,body:this.convertChild(e.statement),init:this.convertChild(e.initializer),test:this.convertChild(e.condition),update:this.convertChild(e.incrementor)});case On.ForInStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForInStatement,body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.ForOfStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForOfStatement,await:!!(e.awaitModifier&&e.awaitModifier.kind===On.AwaitKeyword),body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.FunctionDeclaration:{let C=vh(On.DeclareKeyword,e),b=vh(On.AsyncKeyword,e),E=!!e.asteriskToken;C?e.body?fg(this,sg,$p).call(this,e,"An implementation cannot be declared in ambient contexts."):b?fg(this,sg,$p).call(this,e,"'async' modifier cannot be used in an ambient context."):E&&fg(this,sg,$p).call(this,e,"Generators are not allowed in an ambient context."):!e.body&&E&&fg(this,sg,$p).call(this,e,"A function signature cannot be declared as a generator.");let N=this.createNode(e,{type:e.body?hs.FunctionDeclaration:hs.TSDeclareFunction,async:b,body:this.convertChild(e.body)||void 0,declare:C,expression:!1,generator:E,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,N)}case On.VariableDeclaration:{let C=!!e.exclamationToken,b=this.convertChild(e.initializer),E=this.convertBindingNameWithTypeAnnotation(e.name,e.type,e);return C&&(b?fg(this,sg,$p).call(this,e,"Declarations with initializers cannot also have definite assignment assertions."):(E.type!==hs.Identifier||!E.typeAnnotation)&&fg(this,sg,$p).call(this,e,"Declarations with definite assignment assertions must also have type annotations.")),this.createNode(e,{type:hs.VariableDeclarator,definite:C,id:E,init:b})}case On.VariableStatement:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarationList.declarations.map(b=>this.convertChild(b)),declare:vh(On.DeclareKeyword,e),kind:yNr(e.declarationList)});return C.declarations.length||fg(this,sg,kR).call(this,e,"A variable declaration list must have at least one variable declarator."),(C.kind==="using"||C.kind==="await using")&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init==null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations must be initialized.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),(C.declare||["await using","const","using"].includes(C.kind))&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].definite&&fg(this,sg,$p).call(this,b,"A definite assignment assertion '!' is not permitted in this context.")}),C.declare&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init&&(["let","var"].includes(C.kind)||C.declarations[E].id.typeAnnotation)&&fg(this,sg,$p).call(this,b,"Initializers are not permitted in ambient contexts.")}),this.fixExports(e,C)}case On.VariableDeclarationList:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarations.map(b=>this.convertChild(b)),declare:!1,kind:yNr(e)});return(C.kind==="using"||C.kind==="await using")&&e.declarations.forEach((b,E)=>{C.declarations[E].init!=null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations may not be initialized in for statement.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),C}case On.ExpressionStatement:return this.createNode(e,{type:hs.ExpressionStatement,directive:void 0,expression:this.convertChild(e.expression)});case On.ThisKeyword:return this.createNode(e,{type:hs.ThisExpression});case On.ArrayLiteralExpression:return this.allowPattern?this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0}):this.createNode(e,{type:hs.ArrayExpression,elements:e.elements.map(C=>this.convertChild(C))});case On.ObjectLiteralExpression:{if(this.allowPattern)return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.properties.map(b=>this.convertPattern(b)),typeAnnotation:void 0});let C=[];for(let b of e.properties)(b.kind===On.GetAccessor||b.kind===On.SetAccessor||b.kind===On.MethodDeclaration)&&!b.body&&fg(this,sg,kR).call(this,b.end-1,"'{' expected."),C.push(this.convertChild(b));return this.createNode(e,{type:hs.ObjectExpression,properties:C})}case On.PropertyAssignment:{let{exclamationToken:C,questionToken:b}=e;return b&&fg(this,sg,$p).call(this,b,"A property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A property assignment cannot have an exclamation token."),this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!1,value:this.converter(e.initializer,e,this.allowPattern)})}case On.ShorthandPropertyAssignment:{let{exclamationToken:C,modifiers:b,questionToken:E}=e;return b&&fg(this,sg,$p).call(this,b[0],"A shorthand property assignment cannot have modifiers."),E&&fg(this,sg,$p).call(this,E,"A shorthand property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A shorthand property assignment cannot have an exclamation token."),e.objectAssignmentInitializer?this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.name),optional:!1,right:this.convertChild(e.objectAssignmentInitializer),typeAnnotation:void 0})}):this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.convertChild(e.name)})}case On.ComputedPropertyName:return this.convertChild(e.expression);case On.PropertyDeclaration:{let C=vh(On.AbstractKeyword,e);C&&e.initializer&&fg(this,sg,$p).call(this,e.initializer,"Abstract property cannot have an initializer.");let b=vh(On.AccessorKeyword,e),E=b?C?hs.TSAbstractAccessorProperty:hs.AccessorProperty:C?hs.TSAbstractPropertyDefinition:hs.PropertyDefinition,N=this.convertChild(e.name);return this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),declare:vh(On.DeclareKeyword,e),decorators:((n=yNe(e))==null?void 0:n.map(B=>this.convertChild(B)))??[],definite:!!e.exclamationToken,key:N,optional:(N.type===hs.Literal||e.name.kind===On.Identifier||e.name.kind===On.ComputedPropertyName||e.name.kind===On.PrivateIdentifier)&&!!e.questionToken,override:vh(On.OverrideKeyword,e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e),value:C?null:this.convertChild(e.initializer)})}case On.GetAccessor:case On.SetAccessor:if(e.parent.kind===On.InterfaceDeclaration||e.parent.kind===On.TypeLiteral)return this.convertMethodSignature(e);case On.MethodDeclaration:{let C=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:null,params:[],returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});C.typeParameters&&this.fixParentLocation(C,C.typeParameters.range);let b;if(t.kind===On.ObjectLiteralExpression)C.params=e.parameters.map(E=>this.convertChild(E)),b=this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:e.kind===On.MethodDeclaration,optional:!!e.questionToken,shorthand:!1,value:C});else{C.params=this.convertParameters(e.parameters);let E=vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition;b=this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),decorators:((a=yNe(e))==null?void 0:a.map(N=>this.convertChild(N)))??[],key:this.convertChild(e.name),kind:"method",optional:!!e.questionToken,override:vh(On.OverrideKeyword,e),static:vh(On.StaticKeyword,e),value:C})}return e.kind===On.GetAccessor?b.kind="get":e.kind===On.SetAccessor?b.kind="set":!b.static&&e.name.kind===On.StringLiteral&&e.name.text==="constructor"&&b.type!==hs.Property&&(b.kind="constructor"),b}case On.Constructor:{let C=Ftc(e),b=(C&&fNe(C,e,this.ast))??e.getFirstToken(),E=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:!1,body:this.convertChild(e.body),declare:!1,expression:!1,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});E.typeParameters&&this.fixParentLocation(E,E.typeParameters.range);let N=this.createNode(e,{type:hs.Identifier,range:[b.getStart(this.ast),b.end],decorators:[],name:"constructor",optional:!1,typeAnnotation:void 0}),B=vh(On.StaticKeyword,e);return this.createNode(e,{type:vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition,accessibility:xme(e),computed:!1,decorators:[],key:N,kind:B?"method":"constructor",optional:!1,override:!1,static:B,value:E})}case On.FunctionExpression:return this.createNode(e,{type:hs.FunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.SuperKeyword:return this.createNode(e,{type:hs.Super});case On.ArrayBindingPattern:return this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0});case On.OmittedExpression:return null;case On.ObjectBindingPattern:return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.elements.map(C=>this.convertPattern(C)),typeAnnotation:void 0});case On.BindingElement:{if(t.kind===On.ArrayBindingPattern){let b=this.convertChild(e.name,t);return e.initializer?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:b,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}):e.dotDotDotToken?this.createNode(e,{type:hs.RestElement,argument:b,decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):b}let C;return e.dotDotDotToken?C=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.propertyName??e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):C=this.createNode(e,{type:hs.Property,computed:!!(e.propertyName&&e.propertyName.kind===On.ComputedPropertyName),key:this.convertChild(e.propertyName??e.name),kind:"init",method:!1,optional:!1,shorthand:!e.propertyName,value:this.convertChild(e.name)}),e.initializer&&(C.value=this.createNode(e,{type:hs.AssignmentPattern,range:[e.name.getStart(this.ast),e.initializer.end],decorators:[],left:this.convertChild(e.name),optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0})),C}case On.ArrowFunction:return this.createNode(e,{type:hs.ArrowFunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),expression:e.body.kind!==On.Block,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.YieldExpression:return this.createNode(e,{type:hs.YieldExpression,argument:this.convertChild(e.expression),delegate:!!e.asteriskToken});case On.AwaitExpression:return this.createNode(e,{type:hs.AwaitExpression,argument:this.convertChild(e.expression)});case On.NoSubstitutionTemplateLiteral:return this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.createNode(e,{type:hs.TemplateElement,tail:!0,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-1)}})]});case On.TemplateExpression:{let C=this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.convertChild(e.head)]});return e.templateSpans.forEach(b=>{C.expressions.push(this.convertChild(b.expression)),C.quasis.push(this.convertChild(b.literal))}),C}case On.TaggedTemplateExpression:return this.createNode(e,{type:hs.TaggedTemplateExpression,quasi:this.convertChild(e.template),tag:this.convertChild(e.tag),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.TemplateHead:case On.TemplateMiddle:case On.TemplateTail:{let C=e.kind===On.TemplateTail;return this.createNode(e,{type:hs.TemplateElement,tail:C,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-(C?1:2))}})}case On.SpreadAssignment:case On.SpreadElement:return this.allowPattern?this.createNode(e,{type:hs.RestElement,argument:this.convertPattern(e.expression),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):this.createNode(e,{type:hs.SpreadElement,argument:this.convertChild(e.expression)});case On.Parameter:{let C,b;return e.dotDotDotToken?C=b=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):e.initializer?(C=this.convertChild(e.name),b=this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:C,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}),Ij(e)&&(b.range[0]=C.range[0],b.loc=Zme(b.range,this.ast))):C=b=this.convertChild(e.name,t),e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),this.fixParentLocation(C,C.typeAnnotation.range)),e.questionToken&&(e.questionToken.end>C.range[1]&&(C.range[1]=e.questionToken.end,C.loc.end=Wbt(C.range[1],this.ast)),C.optional=!0),Ij(e)?this.createNode(e,{type:hs.TSParameterProperty,accessibility:xme(e),decorators:[],override:vh(On.OverrideKeyword,e),parameter:b,readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e)}):b}case On.ClassDeclaration:!e.name&&(!vh(Tp.ExportKeyword,e)||!vh(Tp.DefaultKeyword,e))&&fg(this,sg,kR).call(this,e,"A class declaration without the 'default' modifier must have a name.");case On.ClassExpression:{let C=e.heritageClauses??[],b=e.kind===On.ClassDeclaration?hs.ClassDeclaration:hs.ClassExpression,E,N;for(let F of C){let{token:Q,types:X}=F;X.length===0&&fg(this,sg,kR).call(this,F,`'${by(Q)}' list cannot be empty.`),Q===On.ExtendsKeyword?(E&&fg(this,sg,kR).call(this,F,"'extends' clause already seen."),N&&fg(this,sg,kR).call(this,F,"'extends' clause must precede 'implements' clause."),X.length>1&&fg(this,sg,kR).call(this,X[1],"Classes can only extend a single class."),E??(E=F)):Q===On.ImplementsKeyword&&(N&&fg(this,sg,kR).call(this,F,"'implements' clause already seen."),N??(N=F))}let B=this.createNode(e,{type:b,abstract:vh(On.AbstractKeyword,e),body:this.createNode(e,{type:hs.ClassBody,range:[e.members.pos-1,e.end],body:e.members.filter(Gtc).map(F=>this.convertChild(F))}),declare:vh(On.DeclareKeyword,e),decorators:((o=yNe(e))==null?void 0:o.map(F=>this.convertChild(F)))??[],id:this.convertChild(e.name),implements:N?.types.map(F=>this.convertChild(F))??[],superClass:E!=null&&E.types[0]?this.convertChild(E.types[0].expression):null,superTypeArguments:void 0,typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return(l=E?.types[0])!=null&&l.typeArguments&&(B.superTypeArguments=this.convertTypeArgumentsToTypeParameterInstantiation(E.types[0].typeArguments,E.types[0])),this.fixExports(e,B)}case On.ModuleBlock:return this.createNode(e,{type:hs.TSModuleBlock,body:this.convertBodyExpressions(e.statements,e)});case On.ImportDeclaration:{this.assertModuleSpecifier(e,!1);let C=this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),importKind:"value",source:this.convertChild(e.moduleSpecifier),specifiers:[]},"assertions","attributes",!0));if(e.importClause&&(e.importClause.isTypeOnly&&(C.importKind="type"),e.importClause.name&&C.specifiers.push(this.convertChild(e.importClause)),e.importClause.namedBindings))switch(e.importClause.namedBindings.kind){case On.NamespaceImport:C.specifiers.push(this.convertChild(e.importClause.namedBindings));break;case On.NamedImports:C.specifiers.push(...e.importClause.namedBindings.elements.map(b=>this.convertChild(b)));break}return C}case On.NamespaceImport:return this.createNode(e,{type:hs.ImportNamespaceSpecifier,local:this.convertChild(e.name)});case On.ImportSpecifier:return this.createNode(e,{type:hs.ImportSpecifier,imported:this.convertChild(e.propertyName??e.name),importKind:e.isTypeOnly?"type":"value",local:this.convertChild(e.name)});case On.ImportClause:{let C=this.convertChild(e.name);return this.createNode(e,{type:hs.ImportDefaultSpecifier,range:C.range,local:C})}case On.ExportDeclaration:return((A=e.exportClause)==null?void 0:A.kind)===On.NamedExports?(this.assertModuleSpecifier(e,!0),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),declaration:null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier),specifiers:e.exportClause.elements.map(C=>this.convertChild(C,e))},"assertions","attributes",!0))):(this.assertModuleSpecifier(e,!1),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportAllDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),exported:((f=e.exportClause)==null?void 0:f.kind)===On.NamespaceExport?this.convertChild(e.exportClause.name):null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier)},"assertions","attributes",!0)));case On.ExportSpecifier:{let C=e.propertyName??e.name;return C.kind===On.StringLiteral&&t.kind===On.ExportDeclaration&&((I=t.moduleSpecifier)==null?void 0:I.kind)!==On.StringLiteral&&fg(this,sg,$p).call(this,C,"A string literal cannot be used as a local exported binding without `from`."),this.createNode(e,{type:hs.ExportSpecifier,exported:this.convertChild(e.name),exportKind:e.isTypeOnly?"type":"value",local:this.convertChild(C)})}case On.ExportAssignment:return e.isExportEquals?this.createNode(e,{type:hs.TSExportAssignment,expression:this.convertChild(e.expression)}):this.createNode(e,{type:hs.ExportDefaultDeclaration,declaration:this.convertChild(e.expression),exportKind:"value"});case On.PrefixUnaryExpression:case On.PostfixUnaryExpression:{let C=yce(e.operator);return C==="++"||C==="--"?(lDr(e.operand)||fg(this,sg,kR).call(this,e.operand,"Invalid left-hand side expression in unary operation"),this.createNode(e,{type:hs.UpdateExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})):this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})}case On.DeleteExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"delete",prefix:!0});case On.VoidExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"void",prefix:!0});case On.TypeOfExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"typeof",prefix:!0});case On.TypeOperator:return this.createNode(e,{type:hs.TSTypeOperator,operator:yce(e.operator),typeAnnotation:this.convertChild(e.type)});case On.BinaryExpression:{if(Ztc(e.operatorToken)){let b=this.createNode(e,{type:hs.SequenceExpression,expressions:[]}),E=this.convertChild(e.left);return E.type===hs.SequenceExpression&&e.left.kind!==On.ParenthesizedExpression?b.expressions.push(...E.expressions):b.expressions.push(E),b.expressions.push(this.convertChild(e.right)),b}let C=Ptc(e.operatorToken);return this.allowPattern&&C.type===hs.AssignmentExpression?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.left,e),optional:!1,right:this.convertChild(e.right),typeAnnotation:void 0}):this.createNode(e,{...C,left:this.converter(e.left,e,C.type===hs.AssignmentExpression),right:this.convertChild(e.right)})}case On.PropertyAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.name),E=this.createNode(e,{type:hs.MemberExpression,computed:!1,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.ElementAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.argumentExpression),E=this.createNode(e,{type:hs.MemberExpression,computed:!0,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.CallExpression:{if(e.expression.kind===On.ImportKeyword)return e.arguments.length!==1&&e.arguments.length!==2&&fg(this,sg,kR).call(this,e.arguments[2]??e,"Dynamic import requires exactly one or two arguments."),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportExpression,options:e.arguments[1]?this.convertChild(e.arguments[1]):null,source:this.convertChild(e.arguments[0])},"attributes","options",!0));let C=this.convertChild(e.expression),b=e.arguments.map(B=>this.convertChild(B)),E=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),N=this.createNode(e,{type:hs.CallExpression,arguments:b,callee:C,optional:e.questionDotToken!=null,typeArguments:E});return this.convertChainExpression(N,e)}case On.NewExpression:{let C=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e);return this.createNode(e,{type:hs.NewExpression,arguments:e.arguments?e.arguments.map(b=>this.convertChild(b)):[],callee:this.convertChild(e.expression),typeArguments:C})}case On.ConditionalExpression:return this.createNode(e,{type:hs.ConditionalExpression,alternate:this.convertChild(e.whenFalse),consequent:this.convertChild(e.whenTrue),test:this.convertChild(e.condition)});case On.MetaProperty:return this.createNode(e,{type:hs.MetaProperty,meta:this.createNode(e.getFirstToken(),{type:hs.Identifier,decorators:[],name:yce(e.keywordToken),optional:!1,typeAnnotation:void 0}),property:this.convertChild(e.name)});case On.Decorator:return this.createNode(e,{type:hs.Decorator,expression:this.convertChild(e.expression)});case On.StringLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:t.kind===On.JsxAttribute?RSi(e.text):e.text});case On.NumericLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:Number(e.text)});case On.BigIntLiteral:{let C=sJe(e,this.ast),b=this.ast.text.slice(C[0],C[1]),E=ENe(!1,b.slice(0,-1),"_",""),N=typeof BigInt<"u"?BigInt(E):null;return this.createNode(e,{type:hs.Literal,range:C,bigint:N==null?E:String(N),raw:b,value:N})}case On.RegularExpressionLiteral:{let C=e.text.slice(1,e.text.lastIndexOf("/")),b=e.text.slice(e.text.lastIndexOf("/")+1),E=null;try{E=new RegExp(C,b)}catch{}return this.createNode(e,{type:hs.Literal,raw:e.text,regex:{flags:b,pattern:C},value:E})}case On.TrueKeyword:return this.createNode(e,{type:hs.Literal,raw:"true",value:!0});case On.FalseKeyword:return this.createNode(e,{type:hs.Literal,raw:"false",value:!1});case On.NullKeyword:return this.createNode(e,{type:hs.Literal,raw:"null",value:null});case On.EmptyStatement:return this.createNode(e,{type:hs.EmptyStatement});case On.DebuggerStatement:return this.createNode(e,{type:hs.DebuggerStatement});case On.JsxElement:return this.createNode(e,{type:hs.JSXElement,children:e.children.map(C=>this.convertChild(C)),closingElement:this.convertChild(e.closingElement),openingElement:this.convertChild(e.openingElement)});case On.JsxFragment:return this.createNode(e,{type:hs.JSXFragment,children:e.children.map(C=>this.convertChild(C)),closingFragment:this.convertChild(e.closingFragment),openingFragment:this.convertChild(e.openingFragment)});case On.JsxSelfClosingElement:return this.createNode(e,{type:hs.JSXElement,children:[],closingElement:null,openingElement:this.createNode(e,{type:hs.JSXOpeningElement,range:sJe(e,this.ast),attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!0,typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):void 0})});case On.JsxOpeningElement:return this.createNode(e,{type:hs.JSXOpeningElement,attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!1,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.JsxClosingElement:return this.createNode(e,{type:hs.JSXClosingElement,name:this.convertJSXTagName(e.tagName,e)});case On.JsxOpeningFragment:return this.createNode(e,{type:hs.JSXOpeningFragment});case On.JsxClosingFragment:return this.createNode(e,{type:hs.JSXClosingFragment});case On.JsxExpression:{let C=e.expression?this.convertChild(e.expression):this.createNode(e,{type:hs.JSXEmptyExpression,range:[e.getStart(this.ast)+1,e.getEnd()-1]});return e.dotDotDotToken?this.createNode(e,{type:hs.JSXSpreadChild,expression:C}):this.createNode(e,{type:hs.JSXExpressionContainer,expression:C})}case On.JsxAttribute:return this.createNode(e,{type:hs.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(e.name),value:this.convertChild(e.initializer)});case On.JsxText:{let C=e.getFullStart(),b=e.getEnd(),E=this.ast.text.slice(C,b);return this.createNode(e,{type:hs.JSXText,range:[C,b],raw:E,value:RSi(E)})}case On.JsxSpreadAttribute:return this.createNode(e,{type:hs.JSXSpreadAttribute,argument:this.convertChild(e.expression)});case On.QualifiedName:return this.createNode(e,{type:hs.TSQualifiedName,left:this.convertChild(e.left),right:this.convertChild(e.right)});case On.TypeReference:return this.createNode(e,{type:hs.TSTypeReference,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),typeName:this.convertChild(e.typeName)});case On.TypeParameter:return this.createNode(e,{type:hs.TSTypeParameter,const:vh(On.ConstKeyword,e),constraint:e.constraint&&this.convertChild(e.constraint),default:e.default?this.convertChild(e.default):void 0,in:vh(On.InKeyword,e),name:this.convertChild(e.name),out:vh(On.OutKeyword,e)});case On.ThisType:return this.createNode(e,{type:hs.TSThisType});case On.AnyKeyword:case On.BigIntKeyword:case On.BooleanKeyword:case On.NeverKeyword:case On.NumberKeyword:case On.ObjectKeyword:case On.StringKeyword:case On.SymbolKeyword:case On.UnknownKeyword:case On.VoidKeyword:case On.UndefinedKeyword:case On.IntrinsicKeyword:return this.createNode(e,{type:hs[`TS${On[e.kind]}`]});case On.NonNullExpression:{let C=this.createNode(e,{type:hs.TSNonNullExpression,expression:this.convertChild(e.expression)});return this.convertChainExpression(C,e)}case On.TypeLiteral:return this.createNode(e,{type:hs.TSTypeLiteral,members:e.members.map(C=>this.convertChild(C))});case On.ArrayType:return this.createNode(e,{type:hs.TSArrayType,elementType:this.convertChild(e.elementType)});case On.IndexedAccessType:return this.createNode(e,{type:hs.TSIndexedAccessType,indexType:this.convertChild(e.indexType),objectType:this.convertChild(e.objectType)});case On.ConditionalType:return this.createNode(e,{type:hs.TSConditionalType,checkType:this.convertChild(e.checkType),extendsType:this.convertChild(e.extendsType),falseType:this.convertChild(e.falseType),trueType:this.convertChild(e.trueType)});case On.TypeQuery:return this.createNode(e,{type:hs.TSTypeQuery,exprName:this.convertChild(e.exprName),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.MappedType:return e.members&&e.members.length>0&&fg(this,sg,kR).call(this,e.members[0],"A mapped type may not declare properties or methods."),this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSMappedType,constraint:this.convertChild(e.typeParameter.constraint),key:this.convertChild(e.typeParameter.name),nameType:this.convertChild(e.nameType)??null,optional:e.questionToken&&(e.questionToken.kind===On.QuestionToken||yce(e.questionToken.kind)),readonly:e.readonlyToken&&(e.readonlyToken.kind===On.ReadonlyKeyword||yce(e.readonlyToken.kind)),typeAnnotation:e.type&&this.convertChild(e.type)},"typeParameter","'constraint' and 'key'",this.convertChild(e.typeParameter)));case On.ParenthesizedExpression:return this.convertChild(e.expression,t);case On.TypeAliasDeclaration:{let C=this.createNode(e,{type:hs.TSTypeAliasDeclaration,declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name),typeAnnotation:this.convertChild(e.type),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,C)}case On.MethodSignature:return this.convertMethodSignature(e);case On.PropertySignature:{let{initializer:C}=e;return C&&fg(this,sg,$p).call(this,C,"A property signature cannot have an initializer."),this.createNode(e,{type:hs.TSPropertySignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),optional:NSi(e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)})}case On.IndexSignature:return this.createNode(e,{type:hs.TSIndexSignature,accessibility:xme(e),parameters:e.parameters.map(C=>this.convertChild(C)),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)});case On.ConstructorType:return this.createNode(e,{type:hs.TSConstructorType,abstract:vh(On.AbstractKeyword,e),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.FunctionType:{let{modifiers:C}=e;C&&fg(this,sg,$p).call(this,C[0],"A function type cannot have modifiers.")}case On.ConstructSignature:case On.CallSignature:{let C=e.kind===On.ConstructSignature?hs.TSConstructSignatureDeclaration:e.kind===On.CallSignature?hs.TSCallSignatureDeclaration:hs.TSFunctionType;return this.createNode(e,{type:C,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}case On.ExpressionWithTypeArguments:{let C=t.kind,b=C===On.InterfaceDeclaration?hs.TSInterfaceHeritage:C===On.HeritageClause?hs.TSClassImplements:hs.TSInstantiationExpression;return this.createNode(e,{type:b,expression:this.convertChild(e.expression),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)})}case On.InterfaceDeclaration:{let C=e.heritageClauses??[],b=[];for(let N of C){N.token!==On.ExtendsKeyword&&fg(this,sg,$p).call(this,N,N.token===On.ImplementsKeyword?"Interface declaration cannot have 'implements' clause.":"Unexpected token.");for(let B of N.types)b.push(this.convertChild(B,e))}let E=this.createNode(e,{type:hs.TSInterfaceDeclaration,body:this.createNode(e,{type:hs.TSInterfaceBody,range:[e.members.pos-1,e.end],body:e.members.map(N=>this.convertChild(N))}),declare:vh(On.DeclareKeyword,e),extends:b,id:this.convertChild(e.name),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,E)}case On.TypePredicate:{let C=this.createNode(e,{type:hs.TSTypePredicate,asserts:e.assertsModifier!=null,parameterName:this.convertChild(e.parameterName),typeAnnotation:null});return e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),C.typeAnnotation.loc=C.typeAnnotation.typeAnnotation.loc,C.typeAnnotation.range=C.typeAnnotation.typeAnnotation.range),C}case On.ImportType:{let C=sJe(e,this.ast);if(e.isTypeOf){let E=fNe(e.getFirstToken(),e,this.ast);C[0]=E.getStart(this.ast)}let b=this.createNode(e,{type:hs.TSImportType,range:C,argument:this.convertChild(e.argument),attributes:this.convertImportAttributes(e.attributes),qualifier:this.convertChild(e.qualifier),typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null});return e.isTypeOf?this.createNode(e,{type:hs.TSTypeQuery,exprName:b,typeArguments:void 0}):b}case On.EnumDeclaration:{let C=e.members.map(E=>this.convertChild(E)),b=this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSEnumDeclaration,body:this.createNode(e,{type:hs.TSEnumBody,range:[e.members.pos-1,e.end],members:C}),const:vh(On.ConstKeyword,e),declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name)},"members","'body.members'",e.members.map(E=>this.convertChild(E))));return this.fixExports(e,b)}case On.EnumMember:return this.createNode(e,{type:hs.TSEnumMember,computed:e.name.kind===Tp.ComputedPropertyName,id:this.convertChild(e.name),initializer:e.initializer&&this.convertChild(e.initializer)});case On.ModuleDeclaration:{let C=vh(On.DeclareKeyword,e),b=this.createNode(e,{type:hs.TSModuleDeclaration,...(()=>{if(e.flags&IO.GlobalAugmentation){let N=this.convertChild(e.name),B=this.convertChild(e.body);return(B==null||B.type===hs.TSModuleDeclaration)&&fg(this,sg,kR).call(this,e.body??e,"Expected a valid module body"),N.type!==hs.Identifier&&fg(this,sg,kR).call(this,e.name,"global module augmentation must have an Identifier id"),{body:B,declare:!1,global:!1,id:N,kind:"global"}}if(!(e.flags&IO.Namespace)){let N=this.convertChild(e.body);return{kind:"module",...N!=null?{body:N}:{},declare:!1,global:!1,id:this.convertChild(e.name)}}e.body==null&&fg(this,sg,kR).call(this,e,"Expected a module body"),e.name.kind!==Tp.Identifier&&fg(this,sg,kR).call(this,e.name,"`namespace`s must have an Identifier id");let E=this.createNode(e.name,{type:hs.Identifier,range:[e.name.getStart(this.ast),e.name.getEnd()],decorators:[],name:e.name.text,optional:!1,typeAnnotation:void 0});for(;e.body&&EJe(e.body)&&e.body.name;){e=e.body,C||(C=vh(On.DeclareKeyword,e));let N=e.name,B=this.createNode(N,{type:hs.Identifier,range:[N.getStart(this.ast),N.getEnd()],decorators:[],name:N.text,optional:!1,typeAnnotation:void 0});E=this.createNode(N,{type:hs.TSQualifiedName,range:[E.range[0],B.range[1]],left:E,right:B})}return{body:this.convertChild(e.body),declare:!1,global:!1,id:E,kind:"namespace"}})()});return b.declare=C,e.flags&IO.GlobalAugmentation&&(b.global=!0),this.fixExports(e,b)}case On.ParenthesizedType:return this.convertChild(e.type);case On.UnionType:return this.createNode(e,{type:hs.TSUnionType,types:e.types.map(C=>this.convertChild(C))});case On.IntersectionType:return this.createNode(e,{type:hs.TSIntersectionType,types:e.types.map(C=>this.convertChild(C))});case On.AsExpression:return this.createNode(e,{type:hs.TSAsExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.InferType:return this.createNode(e,{type:hs.TSInferType,typeParameter:this.convertChild(e.typeParameter)});case On.LiteralType:return e.literal.kind===On.NullKeyword?this.createNode(e.literal,{type:hs.TSNullKeyword}):this.createNode(e,{type:hs.TSLiteralType,literal:this.convertChild(e.literal)});case On.TypeAssertionExpression:return this.createNode(e,{type:hs.TSTypeAssertion,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.ImportEqualsDeclaration:return this.fixExports(e,this.createNode(e,{type:hs.TSImportEqualsDeclaration,id:this.convertChild(e.name),importKind:e.isTypeOnly?"type":"value",moduleReference:this.convertChild(e.moduleReference)}));case On.ExternalModuleReference:return e.expression.kind!==On.StringLiteral&&fg(this,sg,$p).call(this,e.expression,"String literal expected."),this.createNode(e,{type:hs.TSExternalModuleReference,expression:this.convertChild(e.expression)});case On.NamespaceExportDeclaration:return this.createNode(e,{type:hs.TSNamespaceExportDeclaration,id:this.convertChild(e.name)});case On.AbstractKeyword:return this.createNode(e,{type:hs.TSAbstractKeyword});case On.TupleType:{let C=e.elements.map(b=>this.convertChild(b));return this.createNode(e,{type:hs.TSTupleType,elementTypes:C})}case On.NamedTupleMember:{let C=this.createNode(e,{type:hs.TSNamedTupleMember,elementType:this.convertChild(e.type,e),label:this.convertChild(e.name,e),optional:e.questionToken!=null});return e.dotDotDotToken?(C.range[0]=C.label.range[0],C.loc.start=C.label.loc.start,this.createNode(e,{type:hs.TSRestType,typeAnnotation:C})):C}case On.OptionalType:return this.createNode(e,{type:hs.TSOptionalType,typeAnnotation:this.convertChild(e.type)});case On.RestType:return this.createNode(e,{type:hs.TSRestType,typeAnnotation:this.convertChild(e.type)});case On.TemplateLiteralType:{let C=this.createNode(e,{type:hs.TSTemplateLiteralType,quasis:[this.convertChild(e.head)],types:[]});return e.templateSpans.forEach(b=>{C.types.push(this.convertChild(b.type)),C.quasis.push(this.convertChild(b.literal))}),C}case On.ClassStaticBlockDeclaration:return this.createNode(e,{type:hs.StaticBlock,body:this.convertBodyExpressions(e.body.statements,e)});case On.AssertEntry:case On.ImportAttribute:return this.createNode(e,{type:hs.ImportAttribute,key:this.convertChild(e.name),value:this.convertChild(e.value)});case On.SatisfiesExpression:return this.createNode(e,{type:hs.TSSatisfiesExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});default:return this.deeplyCopy(e)}}createNode(e,t){let r=t;return r.range??(r.range=sJe(e,this.ast)),r.loc??(r.loc=Zme(r.range,this.ast)),r&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(r,e),r}convertProgram(){return this.converter(this.ast)}deeplyCopy(e){e.kind===Tp.JSDocFunctionType&&fg(this,sg,$p).call(this,e,"JSDoc types can only be used inside documentation comments.");let t=`TS${On[e.kind]}`;if(this.options.errorOnUnknownASTType&&!hs[t])throw new Error(`Unknown AST_NODE_TYPE: "${t}"`);let r=this.createNode(e,{type:t});"type"in e&&(r.typeAnnotation=e.type&&"kind"in e.type&&Nza(e.type)?this.convertTypeAnnotation(e.type,e):null),"typeArguments"in e&&(r.typeArguments=e.typeArguments&&"pos"in e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null),"typeParameters"in e&&(r.typeParameters=e.typeParameters&&"pos"in e.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters):null);let n=yNe(e);n!=null&&n.length&&(r.decorators=n.map(o=>this.convertChild(o)));let a=new Set(["_children","decorators","end","flags","heritageClauses","illegalDecorators","jsDoc","kind","locals","localSymbol","modifierFlagsCache","modifiers","nextContainer","parent","pos","symbol","transformFlags","type","typeArguments","typeParameters"]);return Object.entries(e).filter(([o])=>!a.has(o)).forEach(([o,l])=>{Array.isArray(l)?r[o]=l.map(A=>this.convertChild(A)):l&&typeof l=="object"&&l.kind?r[o]=this.convertChild(l):r[o]=l}),r}fixExports(e,t){let r=EJe(e)&&e.flags&IO.Namespace?orc(e):Ij(e);if(r?.[0].kind===On.ExportKeyword){this.registerTSNodeInNodeMap(e,t);let n=r[0],a=r[1],o=a?.kind===On.DefaultKeyword,l=o?fNe(a,this.ast,this.ast):fNe(n,this.ast,this.ast);if(t.range[0]=l.getStart(this.ast),t.loc=Zme(t.range,this.ast),o)return this.createNode(e,{type:hs.ExportDefaultDeclaration,range:[n.getStart(this.ast),t.range[1]],declaration:t,exportKind:"value"});let A=t.type===hs.TSInterfaceDeclaration||t.type===hs.TSTypeAliasDeclaration,f="declare"in t&&t.declare;return this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,range:[n.getStart(this.ast),t.range[1]],attributes:[],declaration:t,exportKind:A||f?"type":"value",source:null,specifiers:[]},"assertions","attributes",!0))}return t}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}registerTSNodeInNodeMap(e,t){t&&this.options.shouldPreserveNodeMaps&&!this.tsNodeToESTreeNodeMap.has(e)&&this.tsNodeToESTreeNodeMap.set(e,t)}};sg=new WeakSet,bNr=function(e,t){let r=t===Tp.ForInStatement?"for...in":"for...of";if(gec(e)){e.declarations.length!==1&&fg(this,sg,$p).call(this,e,`Only a single variable declaration is allowed in a '${r}' statement.`);let n=e.declarations[0];n.initializer?fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have an initializer.`):n.type&&fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have a type annotation.`),t===Tp.ForInStatement&&e.flags&IO.Using&&fg(this,sg,$p).call(this,e,"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.")}else!lDr(e)&&e.kind!==Tp.ObjectLiteralExpression&&e.kind!==Tp.ArrayLiteralExpression&&fg(this,sg,$p).call(this,e,`The left-hand side of a '${r}' statement must be a variable or a property access.`)},MBi=function(e){if(!this.options.allowInvalidAST){Ktc(e)&&fg(this,sg,$p).call(this,e.illegalDecorators[0],"Decorators are not valid here.");for(let t of yNe(e,!0)??[])src(e)||(INr(e)&&!DSi(e.body)?fg(this,sg,$p).call(this,t,"A decorator can only decorate a method implementation, not an overload."):fg(this,sg,$p).call(this,t,"Decorators are not valid here."));for(let t of Ij(e,!0)??[]){if(t.kind!==On.ReadonlyKeyword&&((e.kind===On.PropertySignature||e.kind===On.MethodSignature)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type member`),e.kind===On.IndexSignature&&(t.kind!==On.StaticKeyword||!wNe(e.parent))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on an index signature`)),t.kind!==On.InKeyword&&t.kind!==On.OutKeyword&&t.kind!==On.ConstKeyword&&e.kind===On.TypeParameter&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type parameter`),(t.kind===On.InKeyword||t.kind===On.OutKeyword)&&(e.kind!==On.TypeParameter||!(nDr(e.parent)||wNe(e.parent)||dBi(e.parent)))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`),t.kind===On.ReadonlyKeyword&&e.kind!==On.PropertyDeclaration&&e.kind!==On.PropertySignature&&e.kind!==On.IndexSignature&&e.kind!==On.Parameter&&fg(this,sg,$p).call(this,t,"'readonly' modifier can only appear on a property declaration or index signature."),t.kind===On.DeclareKeyword&&wNe(e.parent)&&!Kbt(e)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on class elements of this kind.`),t.kind===On.DeclareKeyword&&rEt(e)){let r=yNr(e.declarationList);(r==="using"||r==="await using")&&fg(this,sg,$p).call(this,t,`'declare' modifier cannot appear on a '${r}' declaration.`)}if(t.kind===On.AbstractKeyword&&e.kind!==On.ClassDeclaration&&e.kind!==On.ConstructorType&&e.kind!==On.MethodDeclaration&&e.kind!==On.PropertyDeclaration&&e.kind!==On.GetAccessor&&e.kind!==On.SetAccessor&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a class, method, or property declaration.`),(t.kind===On.StaticKeyword||t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)&&(e.parent.kind===On.ModuleBlock||e.parent.kind===On.SourceFile)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a module or namespace element.`),t.kind===On.AccessorKeyword&&e.kind!==On.PropertyDeclaration&&fg(this,sg,$p).call(this,t,"'accessor' modifier can only appear on a property declaration."),t.kind===On.AsyncKeyword&&e.kind!==On.MethodDeclaration&&e.kind!==On.FunctionDeclaration&&e.kind!==On.FunctionExpression&&e.kind!==On.ArrowFunction&&fg(this,sg,$p).call(this,t,"'async' modifier cannot be used here."),e.kind===On.Parameter&&(t.kind===On.StaticKeyword||t.kind===On.ExportKeyword||t.kind===On.DeclareKeyword||t.kind===On.AsyncKeyword)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a parameter.`),t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)for(let r of Ij(e)??[])r!==t&&(r.kind===On.PublicKeyword||r.kind===On.ProtectedKeyword||r.kind===On.PrivateKeyword)&&fg(this,sg,$p).call(this,r,"Accessibility modifier already seen.");if(e.kind===On.Parameter&&(t.kind===On.PublicKeyword||t.kind===On.PrivateKeyword||t.kind===On.ProtectedKeyword||t.kind===On.ReadonlyKeyword||t.kind===On.OverrideKeyword)){let r=trc(e);r.kind===On.Constructor&&DSi(r.body)||fg(this,sg,$p).call(this,t,"A parameter property is only allowed in a constructor implementation.")}}}},$p=function(e,t){let r,n;throw typeof e=="number"?r=n=e:(r=e.getStart(this.ast),n=e.getEnd()),WBi(t,this.ast,r,n)},kR=function(e,t){this.options.allowInvalidAST||fg(this,sg,$p).call(this,e,t)},bNe=function(e,t,r,n=!1){let a=n;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>e[r]:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use '${r}' instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),e[r]),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e},ENr=function(e,t,r,n){let a=!1;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>n:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use ${r} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),n),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e};function lrc(e,t,r=e.getSourceFile()){let n=[];for(;;){if(Nvi(e.kind))t(e);else{let a=e.getChildren(r);if(a.length===1){e=a[0];continue}for(let o=a.length-1;o>=0;--o)n.push(a[o])}if(n.length===0)break;e=n.pop()}}function urc(e,t,r=e.getSourceFile()){let n=r.text,a=r.languageVariant!==nvi.JSX;return lrc(e,l=>{if(l.pos!==l.end&&(l.kind!==Tp.JsxText&&W7a(n,l.pos===0?(yvi(n)??"").length:l.pos,o),a||grc(l)))return O7a(n,l.end,o)},r);function o(l,A,f){t(n,{end:A,kind:f,pos:l})}}function grc(e){switch(e.kind){case Tp.CloseBraceToken:return e.parent.kind!==Tp.JsxExpression||!rNr(e.parent.parent);case Tp.GreaterThanToken:switch(e.parent.kind){case Tp.JsxClosingElement:case Tp.JsxClosingFragment:return!rNr(e.parent.parent.parent);case Tp.JsxOpeningElement:return e.end!==e.parent.end;case Tp.JsxOpeningFragment:return!1;case Tp.JsxSelfClosingElement:return e.end!==e.parent.end||!rNr(e.parent.parent)}}return!0}function rNr(e){return e.kind===Tp.JsxElement||e.kind===Tp.JsxFragment}var[rRu,nRu]=F6a.split(".").map(e=>Number.parseInt(e,10)),iRu=kG.Intrinsic??kG.Any|kG.Unknown|kG.String|kG.Number|kG.BigInt|kG.Boolean|kG.BooleanLiteral|kG.ESSymbol|kG.Void|kG.Undefined|kG.Null|kG.Never|kG.NonPrimitive;function Arc(e,t){let r=[];return urc(e,(n,a)=>{let o=a.kind===Tp.SingleLineCommentTrivia?sD.Line:sD.Block,l=[a.pos,a.end],A=Zme(l,e),f=l[0]+2,I=a.kind===Tp.SingleLineCommentTrivia?l[1]-f:l[1]-f-2;r.push({type:o,loc:A,range:l,value:t.slice(f,f+I)})},e),r}var drc=()=>{};function prc(e,t,r){let{parseDiagnostics:n}=e;if(n.length)throw arc(n[0]);let a=new crc(e,{allowInvalidAST:t.allowInvalidAST,errorOnUnknownASTType:t.errorOnUnknownASTType,shouldPreserveNodeMaps:r,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings}),o=a.convertProgram();return(!t.range||!t.loc)&&drc(o,{enter:l=>{t.range||delete l.range,t.loc||delete l.loc}}),t.tokens&&(o.tokens=Jtc(e)),t.comment&&(o.comments=Arc(e,t.codeFullText)),{astMaps:a.getASTMaps(),estree:o}}function HBi(e){if(typeof e!="object"||e==null)return!1;let t=e;return t.kind===Tp.SourceFile&&typeof t.getFullText=="function"}var frc=function(e){return e&&e.__esModule?e:{default:e}},Irc=frc({extname:e=>"."+e.split(".").pop()});function hrc(e,t){switch(Irc.default.extname(e).toLowerCase()){case tH.Cjs:case tH.Js:case tH.Mjs:return Bee.JS;case tH.Cts:case tH.Mts:case tH.Ts:return Bee.TS;case tH.Json:return Bee.JSON;case tH.Jsx:return Bee.JSX;case tH.Tsx:return Bee.TSX;default:return t?Bee.TSX:Bee.TS}}var mrc={default:TNr},Crc=(0,mrc.default)("typescript-eslint:typescript-estree:create-program:createSourceFile");function _rc(e){return Crc("Getting AST without type information in %s mode for: %s",e.jsx?"TSX":"TS",e.filePath),HBi(e.code)?e.code:ttc(e.filePath,e.codeFullText,{jsDocParsingMode:e.jsDocParsingMode,languageVersion:GNr.Latest,setExternalModuleIndicator:e.setExternalModuleIndicator},!0,hrc(e.filePath,e.jsx))}var yrc=()=>{},brc=e=>e,Erc=class{},Src=()=>!1,vrc=()=>{},Brc=function(e){return e&&e.__esModule?e:{default:e}},SNr={default:TNr},wrc=Brc({extname:e=>"."+e.split(".").pop()}),Trc=(0,SNr.default)("typescript-eslint:typescript-estree:parseSettings:createParseSettings"),kSi,xSi=null,GSi,FSi,ZSi,LSi,oJe={ParseAll:(GSi=uJe)==null?void 0:GSi.ParseAll,ParseForTypeErrors:(FSi=uJe)==null?void 0:FSi.ParseForTypeErrors,ParseForTypeInfo:(ZSi=uJe)==null?void 0:ZSi.ParseForTypeInfo,ParseNone:(LSi=uJe)==null?void 0:LSi.ParseNone};function Rrc(e,t={}){var r;let n=Nrc(e),a=Src(t),o=typeof t.tsconfigRootDir=="string"?t.tsconfigRootDir:"/prettier-security-dirname-placeholder",l=typeof t.loggerFn=="function",A=brc(typeof t.filePath=="string"&&t.filePath!==""?t.filePath:Drc(t.jsx),o),f=wrc.default.extname(A).toLowerCase(),I=(()=>{switch(t.jsDocParsingMode){case"all":return oJe.ParseAll;case"none":return oJe.ParseNone;case"type-info":return oJe.ParseForTypeInfo;default:return oJe.ParseAll}})(),C={loc:t.loc===!0,range:t.range===!0,allowInvalidAST:t.allowInvalidAST===!0,code:e,codeFullText:n,comment:t.comment===!0,comments:[],debugLevel:t.debugLevel===!0?new Set(["typescript-eslint"]):Array.isArray(t.debugLevel)?new Set(t.debugLevel):new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:t.errorOnUnknownASTType===!0,extraFileExtensions:Array.isArray(t.extraFileExtensions)&&t.extraFileExtensions.every(b=>typeof b=="string")?t.extraFileExtensions:[],filePath:A,jsDocParsingMode:I,jsx:t.jsx===!0,log:typeof t.loggerFn=="function"?t.loggerFn:t.loggerFn===!1?()=>{}:console.log,preserveNodeMaps:t.preserveNodeMaps!==!1,programs:Array.isArray(t.programs)?t.programs:null,projects:new Map,projectService:t.projectService||t.project&&t.projectService!==!1&&(void 0).env.TYPESCRIPT_ESLINT_PROJECT_SERVICE==="true"?xSi??(xSi=yrc(t.projectService,I,o)):void 0,setExternalModuleIndicator:t.sourceType==="module"||t.sourceType==null&&f===tH.Mjs||t.sourceType==null&&f===tH.Mts?b=>{b.externalModuleIndicator=!0}:void 0,singleRun:a,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings??!0,tokens:t.tokens===!0?[]:null,tsconfigMatchCache:kSi??(kSi=new Erc(a?"Infinity":((r=t.cacheLifetime)==null?void 0:r.glob)??void 0)),tsconfigRootDir:o};if(C.debugLevel.size>0){let b=[];C.debugLevel.has("typescript-eslint")&&b.push("typescript-eslint:*"),(C.debugLevel.has("eslint")||SNr.default.enabled("eslint:*,-eslint:code-path"))&&b.push("eslint:*,-eslint:code-path"),SNr.default.enable(b.join(","))}if(Array.isArray(t.programs)){if(!t.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");Trc("parserOptions.programs was provided, so parserOptions.project will be ignored.")}return!C.programs&&!C.projectService&&(C.projects=new Map),t.jsDocParsingMode==null&&C.projects.size===0&&C.programs==null&&C.projectService==null&&(C.jsDocParsingMode=oJe.ParseNone),vrc(C,l),C}function Nrc(e){return HBi(e)?e.getFullText(e):typeof e=="string"?e:String(e)}function Drc(e){return e?"estree.tsx":"estree.ts"}var krc={default:TNr},sRu=(0,krc.default)("typescript-eslint:typescript-estree:parser");function xrc(e,t){let{ast:r}=Grc(e,t,!1);return r}function Grc(e,t,r){let n=Rrc(e,t);if(t!=null&&t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');let a=_rc(n),{astMaps:o,estree:l}=prc(a,n,r);return{ast:l,esTreeNodeToTSNodeMap:o.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:o.tsNodeToESTreeNodeMap}}function Frc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var Zrc=Frc;function Lrc(e){let t=[];for(let r of e)try{return r()}catch(n){t.push(n)}throw Object.assign(new Error("All combinations failed"),{errors:t})}var Vrc=Lrc,Prc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},VSi=Prc;function Wrc(e){return Array.isArray(e)&&e.length>0}var Orc=Wrc;function pj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(pj(o),a):a}function Lme(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function Mrc(e){let t=new Set(e);return r=>t.has(r?.type)}var Hrc=Mrc,Yrc=Hrc(["Block","CommentBlock","MultiLine"]),vNr=Yrc;function Qrc(e){let t=`*${e.value}*`.split(` `);return t.length>1&&t.every(r=>r.trimStart()[0]==="*")}var PSi=Qrc;function Xrc(e){return vNr(e)&&e.value[0]==="*"&&/@(?:type|satisfies)\b/u.test(e.value)}var Jrc=Xrc,aJe=null;function hJe(e){if(aJe!==null&&typeof aJe.property){let t=aJe;return aJe=hJe.prototype=null,t}return aJe=hJe.prototype=e??Object.create(null),new hJe}var Urc=10;for(let e=0;e<=Urc;e++)hJe();function Krc(e){return hJe(e)}function jrc(e,t="type"){Krc(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var zrc=jrc,qrc={ArrayExpression:["elements"],AssignmentExpression:["left","right"],BinaryExpression:["left","right"],InterpreterDirective:[],Directive:["value"],DirectiveLiteral:[],BlockStatement:["directives","body"],BreakStatement:["label"],CallExpression:["callee","arguments","typeParameters","typeArguments"],CatchClause:["param","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],File:["program"],ForInStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","typeParameters","params","predicate","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["typeAnnotation","decorators"],IfStatement:["test","consequent","alternate"],LabeledStatement:["label","body"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],NewExpression:["callee","arguments","typeParameters","typeArguments"],Program:["directives","body"],ObjectExpression:["properties"],ObjectMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectProperty:["key","value","decorators"],RestElement:["argument","typeAnnotation","decorators"],ReturnStatement:["argument"],SequenceExpression:["expressions"],ParenthesizedExpression:["expression"],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],AssignmentPattern:["left","right","decorators","typeAnnotation"],ArrayPattern:["elements","typeAnnotation","decorators"],ArrowFunctionExpression:["typeParameters","params","predicate","returnType","body"],ClassBody:["body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ExportAllDeclaration:["source","attributes","exported"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source","attributes"],ExportSpecifier:["local","exported"],ForOfStatement:["left","right","body"],ImportDeclaration:["specifiers","source","attributes"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],ImportExpression:["source","options"],MetaProperty:["meta","property"],ClassMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectPattern:["properties","typeAnnotation","decorators"],SpreadElement:["argument"],Super:[],TaggedTemplateExpression:["tag","typeParameters","quasi","typeArguments"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],YieldExpression:["argument"],AwaitExpression:["argument"],BigIntLiteral:[],ExportNamespaceSpecifier:["exported"],OptionalMemberExpression:["object","property"],OptionalCallExpression:["callee","arguments","typeParameters","typeArguments"],ClassProperty:["decorators","variance","key","typeAnnotation","value"],ClassAccessorProperty:["decorators","key","typeAnnotation","value"],ClassPrivateProperty:["decorators","variance","key","typeAnnotation","value"],ClassPrivateMethod:["decorators","key","typeParameters","params","returnType","body"],PrivateName:["id"],StaticBlock:["body"],AnyTypeAnnotation:[],ArrayTypeAnnotation:["elementType"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:["id","typeParameters"],DeclareClass:["id","typeParameters","extends","mixins","implements","body"],DeclareFunction:["id","predicate"],DeclareInterface:["id","typeParameters","extends","body"],DeclareModule:["id","body"],DeclareModuleExports:["typeAnnotation"],DeclareTypeAlias:["id","typeParameters","right"],DeclareOpaqueType:["id","typeParameters","supertype"],DeclareVariable:["id"],DeclareExportDeclaration:["declaration","specifiers","source","attributes"],DeclareExportAllDeclaration:["source","attributes"],DeclaredPredicate:["value"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:["typeParameters","this","params","rest","returnType"],FunctionTypeParam:["name","typeAnnotation"],GenericTypeAnnotation:["id","typeParameters"],InferredPredicate:[],InterfaceExtends:["id","typeParameters"],InterfaceDeclaration:["id","typeParameters","extends","body"],InterfaceTypeAnnotation:["extends","body"],IntersectionTypeAnnotation:["types"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:["typeAnnotation"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:["properties","indexers","callProperties","internalSlots"],ObjectTypeInternalSlot:["id","value"],ObjectTypeCallProperty:["value"],ObjectTypeIndexer:["variance","id","key","value"],ObjectTypeProperty:["key","value","variance"],ObjectTypeSpreadProperty:["argument"],OpaqueType:["id","typeParameters","supertype","impltype"],QualifiedTypeIdentifier:["qualification","id"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:["types","elementTypes"],TypeofTypeAnnotation:["argument","typeArguments"],TypeAlias:["id","typeParameters","right"],TypeAnnotation:["typeAnnotation"],TypeCastExpression:["expression","typeAnnotation"],TypeParameter:["bound","default","variance"],TypeParameterDeclaration:["params"],TypeParameterInstantiation:["params"],UnionTypeAnnotation:["types"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:["id","body"],EnumBooleanBody:["members"],EnumNumberBody:["members"],EnumStringBody:["members"],EnumSymbolBody:["members"],EnumBooleanMember:["id","init"],EnumNumberMember:["id","init"],EnumStringMember:["id","init"],EnumDefaultedMember:["id"],IndexedAccessType:["objectType","indexType"],OptionalIndexedAccessType:["objectType","indexType"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXSpreadChild:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","typeParameters","typeArguments","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:["object","callee"],ImportAttribute:["key","value"],Decorator:["expression"],DoExpression:["body"],ExportDefaultSpecifier:["exported"],RecordExpression:["properties"],TupleExpression:["elements"],ModuleExpression:["body"],TopicReference:[],PipelineTopicExpression:["expression"],PipelineBareFunction:["callee"],PipelinePrimaryTopicReference:[],TSParameterProperty:["parameter","decorators"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareMethod:["decorators","key","typeParameters","params","returnType"],TSQualifiedName:["left","right"],TSCallSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSPropertySignature:["key","typeAnnotation"],TSMethodSignature:["key","typeParameters","parameters","typeAnnotation","params","returnType"],TSIndexSignature:["parameters","typeAnnotation"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructorType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSTypeReference:["typeName","typeParameters","typeArguments"],TSTypePredicate:["parameterName","typeAnnotation"],TSTypeQuery:["exprName","typeParameters","typeArguments"],TSTypeLiteral:["members"],TSArrayType:["elementType"],TSTupleType:["elementTypes"],TSOptionalType:["typeAnnotation"],TSRestType:["typeAnnotation"],TSNamedTupleMember:["label","elementType"],TSUnionType:["types"],TSIntersectionType:["types"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSInferType:["typeParameter"],TSParenthesizedType:["typeAnnotation"],TSTypeOperator:["typeAnnotation"],TSIndexedAccessType:["objectType","indexType"],TSMappedType:["typeParameter","nameType","typeAnnotation"],TSTemplateLiteralType:["quasis","types"],TSLiteralType:["literal"],TSExpressionWithTypeArguments:["expression","typeParameters"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceBody:["body"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSInstantiationExpression:["expression","typeParameters","typeArguments"],TSAsExpression:["expression","typeAnnotation"],TSSatisfiesExpression:["expression","typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSEnumBody:["members"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSModuleDeclaration:["id","body"],TSModuleBlock:["body"],TSImportType:["argument","options","qualifier","typeParameters","typeArguments"],TSImportEqualsDeclaration:["id","moduleReference"],TSExternalModuleReference:["expression"],TSNonNullExpression:["expression"],TSExportAssignment:["expression"],TSNamespaceExportDeclaration:["id"],TSTypeAnnotation:["typeAnnotation"],TSTypeParameterInstantiation:["params"],TSTypeParameterDeclaration:["params"],TSTypeParameter:["constraint","default","name"],ChainExpression:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],Literal:[],MethodDefinition:["decorators","key","value"],PrivateIdentifier:[],Property:["key","value"],PropertyDefinition:["decorators","key","typeAnnotation","value","variance"],AccessorProperty:["decorators","key","typeAnnotation","value"],TSAbstractAccessorProperty:["decorators","key","typeAnnotation"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAsyncKeyword:[],TSClassImplements:["expression","typeArguments","typeParameters"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSExportKeyword:[],TSInterfaceHeritage:["expression","typeArguments","typeParameters"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],AsConstExpression:["expression"],AsExpression:["expression","typeAnnotation"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:["id","params","body","typeParameters","rendersType"],ComponentParameter:["name","local"],ComponentTypeAnnotation:["params","rest","typeParameters","rendersType"],ComponentTypeParameter:["name","typeAnnotation"],ConditionalTypeAnnotation:["checkType","extendsType","trueType","falseType"],DeclareComponent:["id","params","rest","typeParameters","rendersType"],DeclareEnum:["id","body"],DeclareHook:["id"],DeclareNamespace:["id","body"],EnumBigIntBody:["members"],EnumBigIntMember:["id","init"],HookDeclaration:["id","params","body","typeParameters","returnType"],HookTypeAnnotation:["params","returnType","rest","typeParameters"],InferTypeAnnotation:["typeParameter"],KeyofTypeAnnotation:["argument"],ObjectTypeMappedTypeProperty:["keyTparam","propType","sourceType","variance"],QualifiedTypeofIdentifier:["qualification","id"],TupleTypeLabeledElement:["label","elementType","variance"],TupleTypeSpreadElement:["label","typeAnnotation"],TypeOperator:["typeAnnotation"],TypePredicate:["parameterName","typeAnnotation","asserts"],NGRoot:["node"],NGPipeExpression:["left","right","arguments"],NGChainedExpression:["expressions"],NGEmptyExpression:[],NGMicrosyntax:["body"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:["expression","alias"],NGMicrosyntaxKeyedExpression:["key","expression"],NGMicrosyntaxLet:["key","value"],NGMicrosyntaxAs:["key","alias"],JsExpressionRoot:["node"],JsonRoot:["node"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:["typeAnnotation"],TSJSDocNonNullableType:["typeAnnotation"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:["expression","typeAnnotation"]},$rc=zrc(qrc),enc=$rc;function BNr(e,t){if(!(e!==null&&typeof e=="object"))return e;if(Array.isArray(e)){for(let n=0;n{var l;(l=o.leadingComments)!=null&&l.some(Jrc)&&a.add(pj(o))}),e=nNr(e,o=>{if(o.type==="ParenthesizedExpression"){let{expression:l}=o;if(l.type==="TypeCastExpression")return l.range=[...o.range],l;let A=pj(o);if(!a.has(A))return l.extra={...l.extra,parenthesized:!0},l}})}if(e=nNr(e,a=>{switch(a.type){case"LogicalExpression":if(YBi(a))return wNr(a);break;case"VariableDeclaration":{let o=VSi(!1,a.declarations,-1);o!=null&&o.init&&n[Lme(o)]!==";"&&(a.range=[pj(a),Lme(o)]);break}case"TSParenthesizedType":return a.typeAnnotation;case"TSTypeParameter":if(typeof a.name=="string"){let o=pj(a);a.name={type:"Identifier",name:a.name,range:[o,o+a.name.length]}}break;case"TopicReference":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case"TSUnionType":case"TSIntersectionType":if(a.types.length===1)return a.types[0];break}}),Orc(e.comments)){let a=VSi(!1,e.comments,-1);for(let o=e.comments.length-2;o>=0;o--){let l=e.comments[o];Lme(l)===pj(a)&&vNr(l)&&vNr(a)&&PSi(l)&&PSi(a)&&(e.comments.splice(o+1,1),l.value+="*//*"+a.value,l.range=[pj(l),Lme(a)]),a=l}}return e.type==="Program"&&(e.range=[0,n.length]),e}function YBi(e){return e.type==="LogicalExpression"&&e.right.type==="LogicalExpression"&&e.operator===e.right.operator}function wNr(e){return YBi(e)?wNr({type:"LogicalExpression",operator:e.operator,left:wNr({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[pj(e.left),Lme(e.right.left)]}),right:e.right.right,range:[pj(e),Lme(e)]}):e}var rnc=tnc,nnc=/\*\/$/,inc=/^\/\*\*?/,snc=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,onc=/(^|\s+)\/\/([^\n\r]*)/g,WSi=/^(\r?\n)+/,anc=/(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g,OSi=/(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g,cnc=/(\r?\n|^) *\* ?/g,lnc=[];function unc(e){let t=e.match(snc);return t?t[0].trimStart():""}function gnc(e){let t=` `;e=ENe(!1,e.replace(inc,"").replace(nnc,""),cnc,"$1");let r="";for(;r!==e;)r=e,e=ENe(!1,e,anc,`${t}$1 $2${t}`);e=e.replace(WSi,"").trimEnd();let n=Object.create(null),a=ENe(!1,e,OSi,"").replace(WSi,"").trimEnd(),o;for(;o=OSi.exec(e);){let l=ENe(!1,o[2],onc,"");if(typeof n[o[1]]=="string"||Array.isArray(n[o[1]])){let A=n[o[1]];n[o[1]]=[...lnc,...Array.isArray(A)?A:[A],l]}else n[o[1]]=l}return{comments:a,pragmas:n}}function Anc(e){if(!e.startsWith("#!"))return"";let t=e.indexOf(` `);return t===-1?e:e.slice(0,t)}var dnc=Anc;function pnc(e){let t=dnc(e);t&&(e=e.slice(t.length+1));let r=unc(e),{pragmas:n,comments:a}=gnc(r);return{shebang:t,text:e,pragmas:n,comments:a}}function fnc(e){let{pragmas:t}=pnc(e);return Object.prototype.hasOwnProperty.call(t,"prettier")||Object.prototype.hasOwnProperty.call(t,"format")}function Inc(e){return e=typeof e=="function"?{parse:e}:e,{astFormat:"estree",hasPragma:fnc,locStart:pj,locEnd:Lme,...e}}var hnc=Inc;function mnc(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(".cjs")||t.endsWith(".cts"))return"script";if(t.endsWith(".mjs")||t.endsWith(".mts"))return"module"}}var Cnc=mnc;function _nc(e){return e.charAt(0)==="#"&&e.charAt(1)==="!"?"//"+e.slice(2):e}var ync=_nc,bnc={loc:!0,range:!0,comment:!0,tokens:!0,loggerFn:!1,project:!1,jsDocParsingMode:"none",suppressDeprecatedPropertyWarnings:!0};function Enc(e){if(!(e!=null&&e.location))return e;let{message:t,location:{start:r,end:n}}=e;return Zrc(t,{loc:{start:{line:r.line,column:r.column+1},end:{line:n.line,column:n.column+1}},cause:e})}var Snc=e=>/\.(?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$/iu.test(e);function vnc(e,t){let r=t?.filepath,n=[{...bnc,filePath:r}],a=Cnc(t);if(a?n=n.map(l=>({...l,sourceType:a})):n=["module","script"].flatMap(l=>n.map(A=>({...A,sourceType:l}))),r&&Snc(r))return n;let o=wnc(e);return[o,!o].flatMap(l=>n.map(A=>({...A,jsx:l})))}function Bnc(e,t={}){let r=ync(e),n=vnc(e,t),a;try{a=Vrc(n.map(o=>()=>xrc(r,o)))}catch({errors:[o]}){throw Enc(o)}return rnc(a,{text:e})}function wnc(e){return new RegExp(["(?:^[^\"'`]*)"].join(""),"mu").test(e)}var Tnc=hnc(Bnc),Rnc=QSi;var GJe={};sI(GJe,{default:()=>coc,languages:()=>Vwi,options:()=>Pwi,parsers:()=>xDr,printers:()=>$wi});var Nnc=Object.create,SDr=Object.defineProperty,Dnc=Object.getOwnPropertyDescriptor,knc=Object.getOwnPropertyNames,xnc=Object.getPrototypeOf,Gnc=Object.prototype.hasOwnProperty,Dee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rwi=(e,t)=>{for(var r in t)SDr(e,r,{get:t[r],enumerable:!0})},Fnc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of knc(t))!Gnc.call(e,a)&&a!==r&&SDr(e,a,{get:()=>t[a],enumerable:!(n=Dnc(t,a))||n.enumerable});return e},nwi=(e,t,r)=>(r=e!=null?Nnc(xnc(e)):{},Fnc(t||!e||!e.__esModule?SDr(r,"default",{value:e,enumerable:!0}):r,e)),Kme=Dee(e=>{"use strict";var t={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},r={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},n="tag:yaml.org,2002:",a={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function o(ne){let ce=[0],fe=ne.indexOf(` @@ -2383,7 +2383,7 @@ ${De.commentBefore}`:Se}ce.comment=ue.after.join(` `}};t._defineProperty(ne,"defaults",l),e.Document=ne,e.defaultOptions=a,e.scalarOptions=o}),Vnc=Dee(e=>{"use strict";var t=Znc(),r=Lnc(),n=Awi(),a=Kme(),o=lwi();DJe();function l(N,B=!0,F){F===void 0&&typeof B=="string"&&(F=B,B=!0);let Q=Object.assign({},r.Document.defaults[r.defaultOptions.version],r.defaultOptions);return new n.Schema(Q).createNode(N,B,F)}var A=class extends r.Document{constructor(N){super(Object.assign({},r.defaultOptions,N))}};function f(N,B){let F=[],Q;for(let X of t.parse(N)){let ae=new A(B);ae.parse(X,Q),F.push(ae),Q=ae}return F}function I(N,B){let F=t.parse(N),Q=new A(B).parse(F[0]);if(F.length>1){let X="Source contains multiple documents; please use YAML.parseAllDocuments()";Q.errors.unshift(new a.YAMLSemanticError(F[1],X))}return Q}function C(N,B){let F=I(N,B);if(F.warnings.forEach(Q=>o.warn(Q)),F.errors.length>0)throw F.errors[0];return F.toJSON()}function b(N,B){let F=new A(B);return F.contents=N,String(F)}var E={createNode:l,defaultOptions:r.defaultOptions,Document:A,parse:C,parseAllDocuments:f,parseCST:t.parse,parseDocument:I,scalarOptions:r.scalarOptions,stringify:b};e.YAML=E}),Pnc=Dee((e,t)=>{t.exports=Vnc().YAML}),Wnc=Dee(e=>{"use strict";var t=DJe(),r=Kme();e.findPair=t.findPair,e.parseMap=t.resolveMap,e.parseSeq=t.resolveSeq,e.stringifyNumber=t.stringifyNumber,e.stringifyString=t.stringifyString,e.toJSON=t.toJSON,e.Type=r.Type,e.YAMLError=r.YAMLError,e.YAMLReferenceError=r.YAMLReferenceError,e.YAMLSemanticError=r.YAMLSemanticError,e.YAMLSyntaxError=r.YAMLSyntaxError,e.YAMLWarning=r.YAMLWarning}),fwi={};rwi(fwi,{languages:()=>Vwi,options:()=>Pwi,parsers:()=>xDr,printers:()=>$wi});var Onc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},uDr=Onc,Iwi="string",hwi="array",mwi="cursor",Cwi="indent",vDr="align",_wi="trim",BDr="group",wDr="fill",TDr="if-break",ywi="indent-if-break",RDr="line-suffix",bwi="line-suffix-boundary",ZNe="line",Ewi="label",NDr="break-parent",Swi=new Set([mwi,Cwi,vDr,_wi,BDr,wDr,TDr,ywi,RDr,bwi,ZNe,Ewi,NDr]),Mnc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},nH=Mnc;function Hnc(e){if(typeof e=="string")return Iwi;if(Array.isArray(e))return hwi;if(!e)return;let{type:t}=e;if(Swi.has(t))return t}var vwi=Hnc,Ync=e=>new Intl.ListFormat("en-US",{type:"disjunction"}).format(e);function Qnc(e){let t=e===null?"null":typeof e;if(t!=="string"&&t!=="object")return`Unexpected doc '${t}', Expected it to be 'string' or 'object'.`;if(vwi(e))throw new Error("doc is valid.");let r=Object.prototype.toString.call(e);if(r!=="[object Object]")return`Unexpected doc '${r}'.`;let n=Ync([...Swi].map(a=>`'${a}'`));return`Unexpected doc.type '${e.type}'. Expected it to be ${n}.`}var Xnc=class extends Error{name="InvalidDocError";constructor(e){super(Qnc(e)),this.doc=e}},Jnc=Xnc;function Unc(e,t){if(typeof e=="string")return t(e);let r=new Map;return n(e);function n(o){if(r.has(o))return r.get(o);let l=a(o);return r.set(o,l),l}function a(o){switch(vwi(o)){case hwi:return t(o.map(n));case wDr:return t({...o,parts:o.parts.map(n)});case TDr:return t({...o,breakContents:n(o.breakContents),flatContents:n(o.flatContents)});case BDr:{let{expandedStates:l,contents:A}=o;return l?(l=l.map(n),A=l[0]):A=n(A),t({...o,contents:A,expandedStates:l})}case vDr:case Cwi:case ywi:case Ewi:case RDr:return t({...o,contents:n(o.contents)});case Iwi:case mwi:case _wi:case bwi:case ZNe:case NDr:return t(o);default:throw new Jnc(o)}}}function Knc(e,t=CDr){return Unc(e,r=>typeof r=="string"?bV(t,r.split(` -`)):r)}var DDr=()=>{},FNe=DDr,Bwi=DDr,jnc=DDr;function uEt(e,t){return FNe(t),{type:vDr,contents:t,n:e}}function oEt(e,t={}){return FNe(e),Bwi(t.expandedStates,!0),{type:BDr,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function QBi(e){return uEt(Number.NEGATIVE_INFINITY,e)}function znc(e){return uEt({type:"root"},e)}function qnc(e){return uEt(-1,e)}function XBi(e,t){return oEt(e[0],{...t,expandedStates:e})}function wwi(e){return jnc(e),{type:wDr,parts:e}}function mDr(e,t="",r={}){return FNe(e),t!==""&&FNe(t),{type:TDr,breakContents:e,flatContents:t,groupId:r.groupId}}function $nc(e){return FNe(e),{type:RDr,contents:e}}var kDr={type:NDr},eic={type:ZNe,hard:!0},tic={type:ZNe,hard:!0,literal:!0},kJe={type:ZNe},Twi={type:ZNe,soft:!0},Y_=[eic,kDr],CDr=[tic,kDr];function bV(e,t){FNe(e),Bwi(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{},FNe=DDr,Bwi=DDr,jnc=DDr;function uEt(e,t){return FNe(t),{type:vDr,contents:t,n:e}}function oEt(e,t={}){return FNe(e),Bwi(t.expandedStates,!0),{type:BDr,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function QBi(e){return uEt(Number.NEGATIVE_INFINITY,e)}function znc(e){return uEt({type:"root"},e)}function qnc(e){return uEt(-1,e)}function XBi(e,t){return oEt(e[0],{...t,expandedStates:e})}function wwi(e){return jnc(e),{type:wDr,parts:e}}function mDr(e,t="",r={}){return FNe(e),t!==""&&FNe(t),{type:TDr,breakContents:e,flatContents:t,groupId:r.groupId}}function $nc(e){return FNe(e),{type:RDr,contents:e}}var kDr={type:NDr},eic={type:ZNe,hard:!0},tic={type:ZNe,hard:!0,literal:!0},kJe={type:ZNe},Twi={type:ZNe,soft:!0},Y_=[eic,kDr],CDr=[tic,kDr];function bV(e,t){FNe(e),Bwi(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l0}var xJe=_ic;function N `).map((a,o,l)=>o===0&&o===l.length-1?a:o!==0&&o!==l.length-1?a.trim():o===0?a.trimEnd():a.trimStart());return r.proseWrap==="preserve"?n.map(a=>a.length===0?[]:[a]):n.map(a=>a.length===0?[]:xwi(a)).reduce((a,o,l)=>l!==0&&n[l-1].length>0&&o.length>0&&!(e==="quoteDouble"&&nH(!1,nH(!1,a,-1),-1).endsWith("\\"))?[...a.slice(0,-1),[...nH(!1,a,-1),...o]]:[...a,o],[]).map(a=>r.proseWrap==="never"?[a.join(" ")]:a)}function vic(e,{parentIndent:t,isLastDescendant:r,options:n}){let a=e.position.start.line===e.position.end.line?"":n.originalText.slice(e.position.start.offset,e.position.end.offset).match(/^[^\n]*\n(.*)$/su)[1],o;if(e.indent===null){let f=a.match(/^(? *)[^\n\r ]/mu);o=f?f.groups.leadingSpace.length:Number.POSITIVE_INFINITY}else o=e.indent-1+t;let l=a.split(` `).map(f=>f.slice(o));if(n.proseWrap==="preserve"||e.type==="blockLiteral")return A(l.map(f=>f.length===0?[]:[f]));return A(l.map(f=>f.length===0?[]:xwi(f)).reduce((f,I,C)=>C!==0&&l[C-1].length>0&&I.length>0&&!/^\s/u.test(I[0])&&!/^\s|\s$/u.test(nH(!1,f,-1))?[...f.slice(0,-1),[...nH(!1,f,-1),...I]]:[...f,I],[]).map(f=>f.reduce((I,C)=>I.length>0&&/\s$/u.test(nH(!1,I,-1))?[...I.slice(0,-1),nH(!1,I,-1)+" "+C]:[...I,C],[])).map(f=>n.proseWrap==="never"?[f.join(" ")]:f));function A(f){if(e.chomping==="keep")return nH(!1,f,-1).length===0?f.slice(0,-1):f;let I=0;for(let C=f.length-1;C>=0&&f[C].length===0;C--)I++;return I===0?f:I>=2&&!r?f.slice(0,-(I-1)):f.slice(0,-I)}}function yDr(e){if(!e)return!0;switch(e.type){case"plain":case"quoteDouble":case"quoteSingle":case"alias":case"flowMapping":case"flowSequence":return!0;default:return!1}}var gDr=new WeakMap;function Gwi(e,t){let{node:r,root:n}=e,a;return gDr.has(n)?a=gDr.get(n):(a=new Set,gDr.set(n,a)),!a.has(r.position.end.line)&&(a.add(r.position.end.line),yic(r,t)&&!Fwi(e.parent))?Twi:""}function Fwi(e){return o4(e)&&!Nee(e,["documentHead","documentBody","flowMapping","flowSequence"])}function rH(e,t){return uEt(" ".repeat(e),t)}function Bic(e,t,r){let{node:n}=e,a=e.ancestors.filter(I=>I.type==="sequence"||I.type==="mapping").length,o=Dwi(e),l=[n.type==="blockFolded"?">":"|"];n.indent!==null&&l.push(n.indent.toString()),n.chomping!=="clip"&&l.push(n.chomping==="keep"?"+":"-"),kwi(n)&&l.push(" ",t("indicatorComment"));let A=vic(n,{parentIndent:a,isLastDescendant:o,options:r}),f=[];for(let[I,C]of A.entries())I===0&&f.push(Y_),f.push(wwi(bV(kJe,C))),I!==A.length-1?f.push(C.length===0?Y_:znc(CDr)):n.chomping==="keep"&&o&&f.push(QBi(C.length===0?Y_:CDr));return n.indent===null?l.push(qnc(rH(r.tabWidth,f))):l.push(QBi(rH(n.indent-1+a,f))),l}var wic=Bic;function jBi(e,t,r){let{node:n}=e,a=n.type==="flowMapping",o=a?"{":"[",l=a?"}":"]",A=Twi;a&&n.children.length>0&&r.bracketSpacing&&(A=kJe);let f=nH(!1,n.children,-1),I=f?.type==="flowMappingItem"&&cEt(f.key)&&cEt(f.value);return[o,rH(r.tabWidth,[A,Tic(e,t,r),r.trailingComma==="none"?"":mDr(","),o4(n)?[Y_,bV(Y_,e.map(t,"endComments"))]:""]),I?"":A,l]}function Tic(e,t,r){return e.map(({isLast:n,node:a,next:o})=>[t(),n?"":[",",kJe,a.position.start.line!==o.position.start.line?Gwi(e,r.originalText):""]],"children")}function Ric(e,t,r){var n;let{node:a,parent:o}=e,{key:l,value:A}=a,f=cEt(l),I=cEt(A);if(f&&I)return": ";let C=t("key"),b=Nic(a)?" ":"";if(I)return a.type==="flowMappingItem"&&o.type==="flowMapping"?C:a.type==="mappingItem"&&ADr(l.content,r)&&!s4(l.content)&&((n=o.tag)==null?void 0:n.value)!=="tag:yaml.org,2002:set"?[C,b,":"]:["? ",rH(2,C)];let E=t("value");if(f)return[": ",rH(2,E)];if(wce(A)||!yDr(l.content))return["? ",rH(2,C),Y_,...e.map(()=>[t(),Y_],"value","leadingComments"),": ",rH(2,E)];if(Dic(l.content)&&!wce(l.content)&&!xNe(l.content)&&!s4(l.content)&&!o4(l)&&!wce(A.content)&&!xNe(A.content)&&!o4(A)&&ADr(A.content,r))return[C,b,": ",E];let N=Symbol("mappingKey"),B=oEt([mDr("? "),oEt(rH(2,C),{id:N})]),F=[Y_,": ",rH(2,E)],Q=[b,":"];wce(A.content)||o4(A)&&A.content&&!Nee(A.content,["mapping","sequence"])||o.type==="mapping"&&s4(l.content)&&yDr(A.content)||Nee(A.content,["mapping","sequence"])&&A.content.tag===null&&A.content.anchor===null?Q.push(Y_):A.content?Q.push(kJe):s4(A)&&Q.push(" "),Q.push(E);let X=rH(r.tabWidth,Q);return ADr(l.content,r)&&!wce(l.content)&&!xNe(l.content)&&!o4(l)?XBi([[C,X]]):XBi([[B,mDr(F,X,{groupId:N})]])}function ADr(e,t){if(!e)return!0;switch(e.type){case"plain":case"quoteSingle":case"quoteDouble":break;case"alias":return!0;default:return!1}if(t.proseWrap==="preserve")return e.position.start.line===e.position.end.line;if(/\\$/mu.test(t.originalText.slice(e.position.start.offset,e.position.end.offset)))return!1;switch(t.proseWrap){case"never":return!e.value.includes(` `);case"always":return!/[\n ]/u.test(e.value);default:return!1}}function Nic(e){var t;return((t=e.key.content)==null?void 0:t.type)==="alias"}function Dic(e){if(!e)return!0;switch(e.type){case"plain":case"quoteDouble":case"quoteSingle":return e.position.start.line===e.position.end.line;case"alias":return!0;default:return!1}}var kic=Ric;function xic(e){return Nwi(e,Gic)}function Gic(e){switch(e.type){case"document":TJe(e,"head",()=>e.children[0]),TJe(e,"body",()=>e.children[1]);break;case"documentBody":case"sequenceItem":case"flowSequenceItem":case"mappingKey":case"mappingValue":TJe(e,"content",()=>e.children[0]);break;case"mappingItem":case"flowMappingItem":TJe(e,"key",()=>e.children[0]),TJe(e,"value",()=>e.children[1]);break}return e}var Fic=xic;function Zic(e,t,r){let{node:n}=e,a=[];n.type!=="mappingValue"&&wce(n)&&a.push([bV(Y_,e.map(r,"leadingComments")),Y_]);let{tag:o,anchor:l}=n;o&&a.push(r("tag")),o&&l&&a.push(" "),l&&a.push(r("anchor"));let A="";return Nee(n,["mapping","sequence","comment","directive","mappingItem","sequenceItem"])&&!Dwi(e)&&(A=Gwi(e,t.originalText)),(o||l)&&(Nee(n,["sequence","mapping"])&&!xNe(n)?a.push(Y_):a.push(" ")),xNe(n)&&a.push([n.middleComments.length===1?"":Y_,bV(Y_,e.map(r,"middleComments")),Y_]),bic(e)?a.push(Knc(t.originalText.slice(n.position.start.offset,n.position.end.offset).trimEnd())):a.push(oEt(Lic(e,t,r))),s4(n)&&!Nee(n,["document","documentHead"])&&a.push($nc([n.type==="mappingValue"&&!n.content?"":" ",e.parent.type==="mappingKey"&&e.getParentNode(2).type==="mapping"&&yDr(n)?"":kDr,r("trailingComment")])),Fwi(n)&&a.push(rH(n.type==="sequenceItem"?2:0,[Y_,bV(Y_,e.map(({node:f})=>[iic(t.originalText,aEt(f))?Y_:"",r()],"endComments"))])),a.push(A),a}function Lic(e,t,r){let{node:n}=e;switch(n.type){case"root":{let a=[];e.each(({node:l,next:A,isFirst:f})=>{f||a.push(Y_),a.push(r()),Zwi(l,A)?(a.push(Y_,"..."),s4(l)&&a.push(" ",r("trailingComment"))):A&&!s4(A.head)&&a.push(Y_,"---")},"children");let o=_Dr(n);return(!Nee(o,["blockLiteral","blockFolded"])||o.chomping!=="keep")&&a.push(Y_),a}case"document":{let a=[];return Pic(e,t)==="head"&&((n.head.children.length>0||n.head.endComments.length>0)&&a.push(r("head")),s4(n.head)?a.push(["---"," ",r(["head","trailingComment"])]):a.push("---")),Vic(n)&&a.push(r("body")),bV(Y_,a)}case"documentHead":return bV(Y_,[...e.map(r,"children"),...e.map(r,"endComments")]);case"documentBody":{let{children:a,endComments:o}=n,l="";if(a.length>0&&o.length>0){let A=_Dr(n);Nee(A,["blockFolded","blockLiteral"])?A.chomping!=="keep"&&(l=[Y_,Y_]):l=Y_}return[bV(Y_,e.map(r,"children")),l,bV(Y_,e.map(r,"endComments"))]}case"directive":return["%",bV(" ",[n.name,...n.parameters])];case"comment":return["#",n.value];case"alias":return["*",n.value];case"tag":return t.originalText.slice(n.position.start.offset,n.position.end.offset);case"anchor":return["&",n.value];case"plain":return RJe(n.type,t.originalText.slice(n.position.start.offset,n.position.end.offset),t);case"quoteDouble":case"quoteSingle":{let a="'",o='"',l=t.originalText.slice(n.position.start.offset+1,n.position.end.offset-1);if(n.type==="quoteSingle"&&l.includes("\\")||n.type==="quoteDouble"&&/\\[^"]/u.test(l)){let f=n.type==="quoteDouble"?o:a;return[f,RJe(n.type,l,t),f]}if(l.includes(o))return[a,RJe(n.type,n.type==="quoteDouble"?uDr(!1,uDr(!1,l,String.raw`\"`,o),"'",a.repeat(2)):l,t),a];if(l.includes(a))return[o,RJe(n.type,n.type==="quoteSingle"?uDr(!1,l,"''",a):l,t),o];let A=t.singleQuote?a:o;return[A,RJe(n.type,l,t),A]}case"blockFolded":case"blockLiteral":return wic(e,r,t);case"mapping":case"sequence":return bV(Y_,e.map(r,"children"));case"sequenceItem":return["- ",rH(2,n.content?r("content"):"")];case"mappingKey":case"mappingValue":return n.content?r("content"):"";case"mappingItem":case"flowMappingItem":return kic(e,r,t);case"flowMapping":return jBi(e,r,t);case"flowSequence":return jBi(e,r,t);case"flowSequenceItem":return r("content");default:throw new oic(n,"YAML")}}function Vic(e){return e.body.children.length>0||o4(e.body)}function Zwi(e,t){return s4(e)||t&&(t.head.children.length>0||o4(t.head))}function Pic(e,t){let r=e.node;if(e.isFirst&&/---(?:\s|$)/u.test(t.originalText.slice(aEt(r),aEt(r)+4))||r.head.children.length>0||o4(r.head)||s4(r.head))return"head";let n=e.next;return Zwi(r,n)?!1:n?"root":!1}function RJe(e,t,r){let n=Sic(e,t,r);return bV(Y_,n.map(a=>wwi(bV(kJe,a))))}function Lwi(e,t){if(Nee(e))switch(e.type){case"comment":if(hic(e.value))return null;break;case"quoteDouble":case"quoteSingle":t.type="quote";break}}Lwi.ignoredProperties=new Set(["position"]);var Wic={preprocess:Fic,embed:aic,print:Zic,massageAstNode:Lwi,insertPragma:Cic,getVisitorKeys:fic},Oic=Wic,Vwi=[{linguistLanguageId:407,name:"YAML",type:"data",color:"#cb171e",tmScope:"source.yaml",aliases:["yml"],extensions:[".yml",".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".gemrc","CITATION.cff","glide.lock",".prettierrc",".stylelintrc",".lintstagedrc"],aceMode:"yaml",codemirrorMode:"yaml",codemirrorMimeType:"text/x-yaml",parsers:["yaml"],vscodeLanguageIds:["yaml","ansible","dockercompose","github-actions-workflow","home-assistant"]}],dDr={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},Mic={bracketSpacing:dDr.bracketSpacing,singleQuote:dDr.singleQuote,proseWrap:dDr.proseWrap},Pwi=Mic,xDr={};rwi(xDr,{yaml:()=>aoc});var nEt=` -`,zBi="\r",Hic=function(){function e(t){this.length=t.length;for(var r=[0],n=0;nthis.length)return null;for(var r=0,n=this.offsets;n[r+1]<=t;)r++;var a=t-n[r];return{line:r,column:a}},e.prototype.indexForLocation=function(t){var r=t.line,n=t.column;return r<0||r>=this.offsets.length||n<0||n>this.lengthOfLine(r)?null:this.offsets[r]+n},e.prototype.lengthOfLine=function(t){var r=this.offsets[t],n=t===this.offsets.length-1?this.length:this.offsets[t+1];return n-r},e}();function mO(e,t=null){"children"in e&&e.children.forEach(r=>mO(r,e)),"anchor"in e&&e.anchor&&mO(e.anchor,e),"tag"in e&&e.tag&&mO(e.tag,e),"leadingComments"in e&&e.leadingComments.forEach(r=>mO(r,e)),"middleComments"in e&&e.middleComments.forEach(r=>mO(r,e)),"indicatorComment"in e&&e.indicatorComment&&mO(e.indicatorComment,e),"trailingComment"in e&&e.trailingComment&&mO(e.trailingComment,e),"endComments"in e&&e.endComments.forEach(r=>mO(r,e)),Object.defineProperty(e,"_parent",{value:t,enumerable:!1})}function lEt(e){return`${e.line}:${e.column}`}function Yic(e){mO(e);let t=Qic(e),r=e.children.slice();e.comments.sort((n,a)=>n.position.start.offset-a.position.end.offset).filter(n=>!n._parent).forEach(n=>{for(;r.length>1&&n.position.start.line>r[0].position.end.line;)r.shift();Xic(n,t,r[0])})}function Qic(e){let t=Array.from(new Array(e.position.end.line),()=>({}));for(let r of e.comments)t[r.position.start.line-1].comment=r;return Wwi(t,e),t}function Wwi(e,t){if(t.position.start.offset!==t.position.end.offset){if("leadingComments"in t){let{start:r}=t.position,{leadingAttachableNode:n}=e[r.line-1];(!n||r.column1&&t.type!=="document"&&t.type!=="documentHead"){let{end:r}=t.position,{trailingAttachableNode:n}=e[r.line-1];(!n||r.column>=n.position.end.column)&&(e[r.line-1].trailingAttachableNode=t)}if(t.type!=="root"&&t.type!=="document"&&t.type!=="documentHead"&&t.type!=="documentBody"){let{start:r,end:n}=t.position,a=[n.line].concat(r.line===n.line?[]:r.line);for(let o of a){let l=e[o-1].trailingNode;(!l||n.column>=l.position.end.column)&&(e[o-1].trailingNode=t)}}"children"in t&&t.children.forEach(r=>{Wwi(e,r)})}}function Xic(e,t,r){let n=e.position.start.line,{trailingAttachableNode:a}=t[n-1];if(a){if(a.trailingComment)throw new Error(`Unexpected multiple trailing comment at ${lEt(e.position.start)}`);mO(e,a),a.trailingComment=e;return}for(let l=n;l>=r.position.start.line;l--){let{trailingNode:A}=t[l-1],f;if(A)f=A;else if(l!==n&&t[l-1].comment)f=t[l-1].comment._parent;else continue;if((f.type==="sequence"||f.type==="mapping")&&(f=f.children[0]),f.type==="mappingItem"){let[I,C]=f.children;f=Owi(I)?I:C}for(;;){if(Jic(f,e)){mO(e,f),f.endComments.push(e);return}if(!f._parent)break;f=f._parent}break}for(let l=n+1;l<=r.position.end.line;l++){let{leadingAttachableNode:A}=t[l-1];if(A){mO(e,A),A.leadingComments.push(e);return}}let o=r.children[1];mO(e,o),o.endComments.push(e)}function Jic(e,t){if(e.position.start.offsett.position.end.offset)switch(e.type){case"flowMapping":case"flowSequence":return e.children.length===0||t.position.start.line>e.children[e.children.length-1].position.end.line}if(t.position.end.offsete.position.start.column;case"mappingKey":case"mappingValue":return t.position.start.column>e._parent.position.start.column&&(e.children.length===0||e.children.length===1&&e.children[0].type!=="blockFolded"&&e.children[0].type!=="blockLiteral")&&(e.type==="mappingValue"||Owi(e));default:return!1}}function Owi(e){return e.position.start!==e.position.end&&(e.children.length===0||e.position.start.offset!==e.children[0].position.start.offset)}function nw(e,t){return{type:e,position:t}}function Uic(e,t,r){return{...nw("root",e),children:t,comments:r}}function sEt(e){switch(e.type){case"DOCUMENT":for(let t=e.contents.length-1;t>=0;t--)e.contents[t].type==="BLANK_LINE"?e.contents.splice(t,1):sEt(e.contents[t]);for(let t=e.directives.length-1;t>=0;t--)e.directives[t].type==="BLANK_LINE"&&e.directives.splice(t,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];"char"in r||(r.type==="BLANK_LINE"?e.items.splice(t,1):sEt(r))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":e.node&&sEt(e.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error(`Unexpected node type ${JSON.stringify(e.type)}`)}}function LNe(){return{leadingComments:[]}}function AEt(e=null){return{trailingComment:e}}function jme(){return{...LNe(),...AEt()}}function Kic(e,t,r){return{...nw("alias",e),...jme(),...t,value:r}}function jic(e,t){let r=e.cstNode;return Kic(t.transformRange({origStart:r.valueRange.origStart-1,origEnd:r.valueRange.origEnd}),t.transformContent(e),r.rawValue)}function zic(e){return{...e,type:"blockFolded"}}function qic(e,t,r,n,a,o){return{...nw("blockValue",e),...LNe(),...t,chomping:r,indent:n,value:a,indicatorComment:o}}var GNe;(function(e){e.Tag="!",e.Anchor="&",e.Comment="#"})(GNe||(GNe={}));function $ic(e,t){return{...nw("anchor",e),value:t}}function GDr(e,t){return{...nw("comment",e),value:t}}function esc(e,t,r){return{anchor:t,tag:e,middleComments:r}}function tsc(e,t){return{...nw("tag",e),value:t}}function Mwi(e,t,r=()=>!1){let n=e.cstNode,a=[],o=null,l=null,A=null;for(let f of n.props){let I=t.text[f.origStart];switch(I){case GNe.Tag:o=o||f,l=tsc(t.transformRange(f),e.tag);break;case GNe.Anchor:o=o||f,A=$ic(t.transformRange(f),n.anchor);break;case GNe.Comment:{let C=GDr(t.transformRange(f),t.text.slice(f.origStart+1,f.origEnd));t.comments.push(C),!r(C)&&o&&o.origEnd<=f.origStart&&f.origEnd<=n.valueRange.origStart&&a.push(C);break}default:throw new Error(`Unexpected leading character ${JSON.stringify(I)}`)}}return esc(l,A,a)}var bDr;(function(e){e.CLIP="clip",e.STRIP="strip",e.KEEP="keep"})(bDr||(bDr={}));function Hwi(e,t){let r=e.cstNode,n=1,a=r.chomping==="CLIP"?0:1,o=r.header.origEnd-r.header.origStart-n-a!==0,l=t.transformRange({origStart:r.header.origStart,origEnd:r.valueRange.origEnd}),A=null,f=Mwi(e,t,I=>{if(!(l.start.offset=0;f--){let I=e.contents[f];if(I.type==="COMMENT"){let C=t.transformNode(I);r&&r.line===C.position.start.line?l.unshift(C):A?n.unshift(C):C.position.start.offset>=e.valueRange.origEnd?o.unshift(C):n.unshift(C)}else A=!0}if(o.length>1)throw new Error(`Unexpected multiple document trailing comments at ${lEt(o[1].position.start)}`);if(l.length>1)throw new Error(`Unexpected multiple documentHead trailing comments at ${lEt(l[1].position.start)}`);return{comments:n,endComments:a,documentTrailingComment:Tce(o)||null,documentHeadTrailingComment:Tce(l)||null}}function Asc(e,t,r){let n=Ywi(r.text.slice(e.valueRange.origEnd),/^\.\.\./),a=n===-1?e.valueRange.origEnd:Math.max(0,e.valueRange.origEnd-1);r.text[a-1]==="\r"&&a--;let o=r.transformRange({origStart:t!==null?t.position.start.offset:a,origEnd:a}),l=n===-1?o.end:r.transformOffset(e.valueRange.origEnd+3);return{position:o,documentEndPoint:l}}function dsc(e,t,r,n){return{...nw("documentHead",e),...zme(r),...AEt(n),children:t}}function psc(e,t){let r=e.cstNode,{directives:n,comments:a,endComments:o}=fsc(r,t),{position:l,endMarkerPoint:A}=Isc(r,n,t);return t.comments.push(...a,...o),{createDocumentHeadWithTrailingComment:f=>(f&&t.comments.push(f),dsc(l,n,o,f)),documentHeadEndMarkerPoint:A}}function fsc(e,t){let r=[],n=[],a=[],o=!1;for(let l=e.directives.length-1;l>=0;l--){let A=t.transformNode(e.directives[l]);A.type==="comment"?o?n.unshift(A):a.unshift(A):(o=!0,r.unshift(A))}return{directives:r,comments:n,endComments:a}}function Isc(e,t,r){let n=Ywi(r.text.slice(0,e.valueRange.origStart),/---\s*$/);n>0&&!/[\r\n]/.test(r.text[n-1])&&(n=-1);let a=n===-1?{origStart:e.valueRange.origStart,origEnd:e.valueRange.origStart}:{origStart:n,origEnd:n+3};return t.length!==0&&(a.origStart=t[0].position.start.offset),{position:r.transformRange(a),endMarkerPoint:n===-1?null:r.transformOffset(n)}}function hsc(e,t){let{createDocumentHeadWithTrailingComment:r,documentHeadEndMarkerPoint:n}=psc(e,t),{documentBody:a,documentEndPoint:o,documentTrailingComment:l,documentHeadTrailingComment:A}=usc(e,t,n),f=r(A);return l&&t.comments.push(l),csc(Ume(f.position.start,o),f,a,l)}function Qwi(e,t,r){return{...nw("flowCollection",e),...jme(),...zme(),...t,children:r}}function msc(e,t,r){return{...Qwi(e,t,r),type:"flowMapping"}}function Xwi(e,t,r){return{...nw("flowMappingItem",e),...LNe(),children:[t,r]}}function dEt(e,t){let r=[];for(let n of e)n&&"type"in n&&n.type==="COMMENT"?t.comments.push(t.transformNode(n)):r.push(n);return r}function Jwi(e){let[t,r]=["?",":"].map(n=>{let a=e.find(o=>"char"in o&&o.char===n);return a?{origStart:a.origOffset,origEnd:a.origOffset+1}:null});return{additionalKeyRange:t,additionalValueRange:r}}function Uwi(e,t){let r=t;return n=>e.slice(r,r=n)}function Kwi(e){let t=[],r=Uwi(e,1),n=!1;for(let a=1;a{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}),o=r[0],l=Tce(r);return msc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function _sc(e,t,r){return{...Qwi(e,t,r),type:"flowSequence"}}function ysc(e,t){return{...nw("flowSequenceItem",e),children:[t]}}function bsc(e,t){let r=dEt(e.cstNode.items,t),n=Kwi(r),a=e.items.map((A,f)=>{if(A.type!=="PAIR"){let I=t.transformNode(A);return ysc(Ume(I.position.start,I.position.end),I)}else{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}}),o=r[0],l=Tce(r);return _sc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function Esc(e,t,r){return{...nw("mapping",e),...LNe(),...t,children:r}}function Ssc(e,t,r){return{...nw("mappingItem",e),...LNe(),children:[t,r]}}function vsc(e,t){let r=e.cstNode;r.items.filter(l=>l.type==="MAP_KEY"||l.type==="MAP_VALUE").forEach(l=>FDr(l,t));let n=dEt(r.items,t),a=Bsc(n),o=e.items.map((l,A)=>{let f=a[A],[I,C]=f[0].type==="MAP_VALUE"?[null,f[0].range]:[f[0].range,f.length===1?null:f[1].range];return ZDr(l,t,Ssc,I,C)});return Esc(Ume(o[0].position.start,Tce(o).position.end),t.transformContent(e),o)}function Bsc(e){let t=[],r=Uwi(e,0),n=!1;for(let a=0;a=0;n--)if(r.test(e[n]))return n;return-1}function Rsc(e,t){let r=e.cstNode;return wsc(t.transformRange({origStart:r.valueRange.origStart,origEnd:Tsc(t.text,r.valueRange.origEnd-1,/\S/)+1}),t.transformContent(e),r.strValue)}function Nsc(e){return{...e,type:"quoteDouble"}}function Dsc(e,t,r){return{...nw("quoteValue",e),...t,...jme(),value:r}}function jwi(e,t){let r=e.cstNode;return Dsc(t.transformRange(r.valueRange),t.transformContent(e),r.strValue)}function ksc(e,t){return Nsc(jwi(e,t))}function xsc(e){return{...e,type:"quoteSingle"}}function Gsc(e,t){return xsc(jwi(e,t))}function Fsc(e,t,r){return{...nw("sequence",e),...LNe(),...zme(),...t,children:r}}function Zsc(e,t){return{...nw("sequenceItem",e),...jme(),...zme(),children:t?[t]:[]}}function Lsc(e,t){let r=dEt(e.cstNode.items,t).map((n,a)=>{FDr(n,t);let o=t.transformNode(e.items[a]);return Zsc(Ume(t.transformOffset(n.valueRange.origStart),o===null?t.transformOffset(n.valueRange.origStart+1):o.position.end),o)});return Fsc(Ume(r[0].position.start,Tce(r).position.end),t.transformContent(e),r)}function Vsc(e,t){if(e===null||e.type===void 0&&e.value===null)return null;switch(e.type){case"ALIAS":return jic(e,t);case"BLOCK_FOLDED":return rsc(e,t);case"BLOCK_LITERAL":return isc(e,t);case"COMMENT":return ssc(e,t);case"DIRECTIVE":return asc(e,t);case"DOCUMENT":return hsc(e,t);case"FLOW_MAP":return Csc(e,t);case"FLOW_SEQ":return bsc(e,t);case"MAP":return vsc(e,t);case"PLAIN":return Rsc(e,t);case"QUOTE_DOUBLE":return ksc(e,t);case"QUOTE_SINGLE":return Gsc(e,t);case"SEQ":return Lsc(e,t);default:throw new Error(`Unexpected node type ${e.type}`)}}function Psc(e,t,r){let n=new SyntaxError(e);return n.name="YAMLSyntaxError",n.source=t,n.position=r,n}function Wsc(e,t){let r=e.source.range||e.source.valueRange;return Psc(e.message,t.text,t.transformRange(r))}function Osc(e,t,r){return{offset:e,line:t,column:r}}function Msc(e,t){e<0?e=0:e>t.text.length&&(e=t.text.length);let r=t.locator.locationForIndex(e);return Osc(e,r.line+1,r.column+1)}function Hsc(e,t){return Ume(t.transformOffset(e.origStart),t.transformOffset(e.origEnd))}function Ysc(e){if(!e.setOrigRanges()){let t=r=>{if(Qsc(r))return r.origStart=r.start,r.origEnd=r.end,!0;if(Xsc(r))return r.origOffset=r.offset,!0};e.forEach(r=>EDr(r,t))}}function EDr(e,t){if(!(!e||typeof e!="object")&&t(e)!==!0)for(let r of Object.keys(e)){if(r==="context"||r==="error")continue;let n=e[r];Array.isArray(n)?n.forEach(a=>EDr(a,t)):EDr(n,t)}}function Qsc(e){return typeof e.start=="number"}function Xsc(e){return typeof e.offset=="number"}function zwi(e){if("children"in e){if(e.children.length===1){let t=e.children[0];if(t.type==="plain"&&t.tag===null&&t.anchor===null&&t.value==="")return e.children.splice(0,1),e}e.children.forEach(zwi)}return e}function twi(e,t,r,n){let a=t(e);return o=>{n(a,o)&&r(e,a=o)}}function qwi(e){if(e===null||!("children"in e))return;let t=e.children;if(t.forEach(qwi),e.type==="document"){let[o,l]=e.children;o.position.start.offset===o.position.end.offset?o.position.start=o.position.end=l.position.start:l.position.start.offset===l.position.end.offset&&(l.position.start=l.position.end=o.position.end)}let r=twi(e.position,Jsc,Usc,zsc),n=twi(e.position,Ksc,jsc,qsc);"endComments"in e&&e.endComments.length!==0&&(r(e.endComments[0].position.start),n(Tce(e.endComments).position.end));let a=t.filter(o=>o!==null);if(a.length!==0){let o=a[0],l=Tce(a);r(o.position.start),n(l.position.end),"leadingComments"in o&&o.leadingComments.length!==0&&r(o.leadingComments[0].position.start),"tag"in o&&o.tag&&r(o.tag.position.start),"anchor"in o&&o.anchor&&r(o.anchor.position.start),"trailingComment"in l&&l.trailingComment&&n(l.trailingComment.position.end)}}function Jsc(e){return e.start}function Usc(e,t){e.start=t}function Ksc(e){return e.end}function jsc(e,t){e.end=t}function zsc(e,t){return t.offsete.offset}var $sc=nwi(Pnc(),1),iH=nwi(Wnc(),1),yRu=iH.default.findPair,bRu=iH.default.toJSON,ERu=iH.default.parseMap,SRu=iH.default.parseSeq,vRu=iH.default.stringifyNumber,BRu=iH.default.stringifyString,wRu=iH.default.Type,TRu=iH.default.YAMLError,RRu=iH.default.YAMLReferenceError,eoc=iH.default.YAMLSemanticError,NRu=iH.default.YAMLSyntaxError,DRu=iH.default.YAMLWarning,{Document:toc,parseCST:roc}=$sc.default;function noc(e){let t=roc(e);Ysc(t);let r=t.map(A=>new toc({merge:!1,keepCstNodes:!0}).parse(A)),n=new Hic(e),a=[],o={text:e,locator:n,comments:a,transformOffset:A=>Msc(A,o),transformRange:A=>Hsc(A,o),transformNode:A=>Vsc(A,o),transformContent:A=>Mwi(A,o)};for(let A of r)for(let f of A.errors)if(!(f instanceof eoc&&f.message==='Map keys must be unique; "<<" is repeated'))throw Wsc(f,o);r.forEach(A=>sEt(A.cstNode));let l=Uic(o.transformRange({origStart:0,origEnd:o.text.length}),r.map(o.transformNode),a);return Yic(l),qwi(l),zwi(l),l}function ioc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var soc=ioc;function ooc(e){try{let t=noc(e);return delete t.comments,t}catch(t){throw t!=null&&t.position?soc(t.message,{loc:t.position,cause:t}):t}}var aoc={astFormat:"yaml",parse:ooc,hasPragma:mic,locStart:aEt,locEnd:Iic},$wi={yaml:Oic},coc=fwi;var loc=Object.create,tkr=Object.defineProperty,uoc=Object.getOwnPropertyDescriptor,goc=Object.getOwnPropertyNames,Aoc=Object.getPrototypeOf,doc=Object.prototype.hasOwnProperty,DTi=e=>{throw TypeError(e)},kTi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rkr=(e,t)=>{for(var r in t)tkr(e,r,{get:t[r],enumerable:!0})},poc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of goc(t))!doc.call(e,a)&&a!==r&&tkr(e,a,{get:()=>t[a],enumerable:!(n=uoc(t,a))||n.enumerable});return e},EEt=(e,t,r)=>(r=e!=null?loc(Aoc(e)):{},poc(t||!e||!e.__esModule?tkr(r,"default",{value:e,enumerable:!0}):r,e)),foc=(e,t,r)=>t.has(e)||DTi("Cannot "+r),Ioc=(e,t,r)=>t.has(e)?DTi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),FJe=(e,t,r)=>(foc(e,t,"access private method"),r),nkr=kTi((e,t)=>{"use strict";var r=new Proxy(String,{get:()=>r});t.exports=r}),hoc=kTi(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(){return new Proxy({},{get:()=>o=>o})}var r=/\r\n|[\n\r\u2028\u2029]/;function n(o,l,A){let f=Object.assign({column:0,line:-1},o.start),I=Object.assign({},f,o.end),{linesAbove:C=2,linesBelow:b=3}=A||{},E=f.line,N=f.column,B=I.line,F=I.column,Q=Math.max(E-(C+1),0),X=Math.min(l.length,B+b);E===-1&&(Q=0),B===-1&&(X=l.length);let ae=B-E,ne={};if(ae)for(let ce=0;ce<=ae;ce++){let fe=ce+E;if(!N)ne[fe]=!0;else if(ce===0){let ue=l[fe-1].length;ne[fe]=[N,ue-N+1]}else if(ce===ae)ne[fe]=[0,F];else{let ue=l[fe-ce].length;ne[fe]=[0,ue]}}else N===F?N?ne[E]=[N,0]:ne[E]=!0:ne[E]=[N,F-N];return{start:Q,end:X,markerLines:ne}}function a(o,l,A={}){let f=t(!1),I=o.split(r),{start:C,end:b,markerLines:E}=n(l,I,A),N=l.start&&typeof l.start.column=="number",B=String(b).length,F=o.split(r,b).slice(C,b).map((Q,X)=>{let ae=C+1+X,ne=` ${` ${ae}`.slice(-B)} |`,ce=E[ae],fe=!E[ae+1];if(ce){let ue="";if(Array.isArray(ce)){let de=Q.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` +`,zBi="\r",Hic=function(){function e(t){this.length=t.length;for(var r=[0],n=0;nthis.length)return null;for(var r=0,n=this.offsets;n[r+1]<=t;)r++;var a=t-n[r];return{line:r,column:a}},e.prototype.indexForLocation=function(t){var r=t.line,n=t.column;return r<0||r>=this.offsets.length||n<0||n>this.lengthOfLine(r)?null:this.offsets[r]+n},e.prototype.lengthOfLine=function(t){var r=this.offsets[t],n=t===this.offsets.length-1?this.length:this.offsets[t+1];return n-r},e}();function mO(e,t=null){"children"in e&&e.children.forEach(r=>mO(r,e)),"anchor"in e&&e.anchor&&mO(e.anchor,e),"tag"in e&&e.tag&&mO(e.tag,e),"leadingComments"in e&&e.leadingComments.forEach(r=>mO(r,e)),"middleComments"in e&&e.middleComments.forEach(r=>mO(r,e)),"indicatorComment"in e&&e.indicatorComment&&mO(e.indicatorComment,e),"trailingComment"in e&&e.trailingComment&&mO(e.trailingComment,e),"endComments"in e&&e.endComments.forEach(r=>mO(r,e)),Object.defineProperty(e,"_parent",{value:t,enumerable:!1})}function lEt(e){return`${e.line}:${e.column}`}function Yic(e){mO(e);let t=Qic(e),r=e.children.slice();e.comments.sort((n,a)=>n.position.start.offset-a.position.end.offset).filter(n=>!n._parent).forEach(n=>{for(;r.length>1&&n.position.start.line>r[0].position.end.line;)r.shift();Xic(n,t,r[0])})}function Qic(e){let t=Array.from(new Array(e.position.end.line),()=>({}));for(let r of e.comments)t[r.position.start.line-1].comment=r;return Wwi(t,e),t}function Wwi(e,t){if(t.position.start.offset!==t.position.end.offset){if("leadingComments"in t){let{start:r}=t.position,{leadingAttachableNode:n}=e[r.line-1];(!n||r.column1&&t.type!=="document"&&t.type!=="documentHead"){let{end:r}=t.position,{trailingAttachableNode:n}=e[r.line-1];(!n||r.column>=n.position.end.column)&&(e[r.line-1].trailingAttachableNode=t)}if(t.type!=="root"&&t.type!=="document"&&t.type!=="documentHead"&&t.type!=="documentBody"){let{start:r,end:n}=t.position,a=[n.line].concat(r.line===n.line?[]:r.line);for(let o of a){let l=e[o-1].trailingNode;(!l||n.column>=l.position.end.column)&&(e[o-1].trailingNode=t)}}"children"in t&&t.children.forEach(r=>{Wwi(e,r)})}}function Xic(e,t,r){let n=e.position.start.line,{trailingAttachableNode:a}=t[n-1];if(a){if(a.trailingComment)throw new Error(`Unexpected multiple trailing comment at ${lEt(e.position.start)}`);mO(e,a),a.trailingComment=e;return}for(let l=n;l>=r.position.start.line;l--){let{trailingNode:A}=t[l-1],f;if(A)f=A;else if(l!==n&&t[l-1].comment)f=t[l-1].comment._parent;else continue;if((f.type==="sequence"||f.type==="mapping")&&(f=f.children[0]),f.type==="mappingItem"){let[I,C]=f.children;f=Owi(I)?I:C}for(;;){if(Jic(f,e)){mO(e,f),f.endComments.push(e);return}if(!f._parent)break;f=f._parent}break}for(let l=n+1;l<=r.position.end.line;l++){let{leadingAttachableNode:A}=t[l-1];if(A){mO(e,A),A.leadingComments.push(e);return}}let o=r.children[1];mO(e,o),o.endComments.push(e)}function Jic(e,t){if(e.position.start.offsett.position.end.offset)switch(e.type){case"flowMapping":case"flowSequence":return e.children.length===0||t.position.start.line>e.children[e.children.length-1].position.end.line}if(t.position.end.offsete.position.start.column;case"mappingKey":case"mappingValue":return t.position.start.column>e._parent.position.start.column&&(e.children.length===0||e.children.length===1&&e.children[0].type!=="blockFolded"&&e.children[0].type!=="blockLiteral")&&(e.type==="mappingValue"||Owi(e));default:return!1}}function Owi(e){return e.position.start!==e.position.end&&(e.children.length===0||e.position.start.offset!==e.children[0].position.start.offset)}function nw(e,t){return{type:e,position:t}}function Uic(e,t,r){return{...nw("root",e),children:t,comments:r}}function sEt(e){switch(e.type){case"DOCUMENT":for(let t=e.contents.length-1;t>=0;t--)e.contents[t].type==="BLANK_LINE"?e.contents.splice(t,1):sEt(e.contents[t]);for(let t=e.directives.length-1;t>=0;t--)e.directives[t].type==="BLANK_LINE"&&e.directives.splice(t,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];"char"in r||(r.type==="BLANK_LINE"?e.items.splice(t,1):sEt(r))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":e.node&&sEt(e.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error(`Unexpected node type ${JSON.stringify(e.type)}`)}}function LNe(){return{leadingComments:[]}}function AEt(e=null){return{trailingComment:e}}function jme(){return{...LNe(),...AEt()}}function Kic(e,t,r){return{...nw("alias",e),...jme(),...t,value:r}}function jic(e,t){let r=e.cstNode;return Kic(t.transformRange({origStart:r.valueRange.origStart-1,origEnd:r.valueRange.origEnd}),t.transformContent(e),r.rawValue)}function zic(e){return{...e,type:"blockFolded"}}function qic(e,t,r,n,a,o){return{...nw("blockValue",e),...LNe(),...t,chomping:r,indent:n,value:a,indicatorComment:o}}var GNe;(function(e){e.Tag="!",e.Anchor="&",e.Comment="#"})(GNe||(GNe={}));function $ic(e,t){return{...nw("anchor",e),value:t}}function GDr(e,t){return{...nw("comment",e),value:t}}function esc(e,t,r){return{anchor:t,tag:e,middleComments:r}}function tsc(e,t){return{...nw("tag",e),value:t}}function Mwi(e,t,r=()=>!1){let n=e.cstNode,a=[],o=null,l=null,A=null;for(let f of n.props){let I=t.text[f.origStart];switch(I){case GNe.Tag:o=o||f,l=tsc(t.transformRange(f),e.tag);break;case GNe.Anchor:o=o||f,A=$ic(t.transformRange(f),n.anchor);break;case GNe.Comment:{let C=GDr(t.transformRange(f),t.text.slice(f.origStart+1,f.origEnd));t.comments.push(C),!r(C)&&o&&o.origEnd<=f.origStart&&f.origEnd<=n.valueRange.origStart&&a.push(C);break}default:throw new Error(`Unexpected leading character ${JSON.stringify(I)}`)}}return esc(l,A,a)}var bDr;(function(e){e.CLIP="clip",e.STRIP="strip",e.KEEP="keep"})(bDr||(bDr={}));function Hwi(e,t){let r=e.cstNode,n=1,a=r.chomping==="CLIP"?0:1,o=r.header.origEnd-r.header.origStart-n-a!==0,l=t.transformRange({origStart:r.header.origStart,origEnd:r.valueRange.origEnd}),A=null,f=Mwi(e,t,I=>{if(!(l.start.offset=0;f--){let I=e.contents[f];if(I.type==="COMMENT"){let C=t.transformNode(I);r&&r.line===C.position.start.line?l.unshift(C):A?n.unshift(C):C.position.start.offset>=e.valueRange.origEnd?o.unshift(C):n.unshift(C)}else A=!0}if(o.length>1)throw new Error(`Unexpected multiple document trailing comments at ${lEt(o[1].position.start)}`);if(l.length>1)throw new Error(`Unexpected multiple documentHead trailing comments at ${lEt(l[1].position.start)}`);return{comments:n,endComments:a,documentTrailingComment:Tce(o)||null,documentHeadTrailingComment:Tce(l)||null}}function Asc(e,t,r){let n=Ywi(r.text.slice(e.valueRange.origEnd),/^\.\.\./),a=n===-1?e.valueRange.origEnd:Math.max(0,e.valueRange.origEnd-1);r.text[a-1]==="\r"&&a--;let o=r.transformRange({origStart:t!==null?t.position.start.offset:a,origEnd:a}),l=n===-1?o.end:r.transformOffset(e.valueRange.origEnd+3);return{position:o,documentEndPoint:l}}function dsc(e,t,r,n){return{...nw("documentHead",e),...zme(r),...AEt(n),children:t}}function psc(e,t){let r=e.cstNode,{directives:n,comments:a,endComments:o}=fsc(r,t),{position:l,endMarkerPoint:A}=Isc(r,n,t);return t.comments.push(...a,...o),{createDocumentHeadWithTrailingComment:f=>(f&&t.comments.push(f),dsc(l,n,o,f)),documentHeadEndMarkerPoint:A}}function fsc(e,t){let r=[],n=[],a=[],o=!1;for(let l=e.directives.length-1;l>=0;l--){let A=t.transformNode(e.directives[l]);A.type==="comment"?o?n.unshift(A):a.unshift(A):(o=!0,r.unshift(A))}return{directives:r,comments:n,endComments:a}}function Isc(e,t,r){let n=Ywi(r.text.slice(0,e.valueRange.origStart),/---\s*$/);n>0&&!/[\r\n]/.test(r.text[n-1])&&(n=-1);let a=n===-1?{origStart:e.valueRange.origStart,origEnd:e.valueRange.origStart}:{origStart:n,origEnd:n+3};return t.length!==0&&(a.origStart=t[0].position.start.offset),{position:r.transformRange(a),endMarkerPoint:n===-1?null:r.transformOffset(n)}}function hsc(e,t){let{createDocumentHeadWithTrailingComment:r,documentHeadEndMarkerPoint:n}=psc(e,t),{documentBody:a,documentEndPoint:o,documentTrailingComment:l,documentHeadTrailingComment:A}=usc(e,t,n),f=r(A);return l&&t.comments.push(l),csc(Ume(f.position.start,o),f,a,l)}function Qwi(e,t,r){return{...nw("flowCollection",e),...jme(),...zme(),...t,children:r}}function msc(e,t,r){return{...Qwi(e,t,r),type:"flowMapping"}}function Xwi(e,t,r){return{...nw("flowMappingItem",e),...LNe(),children:[t,r]}}function dEt(e,t){let r=[];for(let n of e)n&&"type"in n&&n.type==="COMMENT"?t.comments.push(t.transformNode(n)):r.push(n);return r}function Jwi(e){let[t,r]=["?",":"].map(n=>{let a=e.find(o=>"char"in o&&o.char===n);return a?{origStart:a.origOffset,origEnd:a.origOffset+1}:null});return{additionalKeyRange:t,additionalValueRange:r}}function Uwi(e,t){let r=t;return n=>e.slice(r,r=n)}function Kwi(e){let t=[],r=Uwi(e,1),n=!1;for(let a=1;a{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}),o=r[0],l=Tce(r);return msc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function _sc(e,t,r){return{...Qwi(e,t,r),type:"flowSequence"}}function ysc(e,t){return{...nw("flowSequenceItem",e),children:[t]}}function bsc(e,t){let r=dEt(e.cstNode.items,t),n=Kwi(r),a=e.items.map((A,f)=>{if(A.type!=="PAIR"){let I=t.transformNode(A);return ysc(Ume(I.position.start,I.position.end),I)}else{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}}),o=r[0],l=Tce(r);return _sc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function Esc(e,t,r){return{...nw("mapping",e),...LNe(),...t,children:r}}function Ssc(e,t,r){return{...nw("mappingItem",e),...LNe(),children:[t,r]}}function vsc(e,t){let r=e.cstNode;r.items.filter(l=>l.type==="MAP_KEY"||l.type==="MAP_VALUE").forEach(l=>FDr(l,t));let n=dEt(r.items,t),a=Bsc(n),o=e.items.map((l,A)=>{let f=a[A],[I,C]=f[0].type==="MAP_VALUE"?[null,f[0].range]:[f[0].range,f.length===1?null:f[1].range];return ZDr(l,t,Ssc,I,C)});return Esc(Ume(o[0].position.start,Tce(o).position.end),t.transformContent(e),o)}function Bsc(e){let t=[],r=Uwi(e,0),n=!1;for(let a=0;a=0;n--)if(r.test(e[n]))return n;return-1}function Rsc(e,t){let r=e.cstNode;return wsc(t.transformRange({origStart:r.valueRange.origStart,origEnd:Tsc(t.text,r.valueRange.origEnd-1,/\S/)+1}),t.transformContent(e),r.strValue)}function Nsc(e){return{...e,type:"quoteDouble"}}function Dsc(e,t,r){return{...nw("quoteValue",e),...t,...jme(),value:r}}function jwi(e,t){let r=e.cstNode;return Dsc(t.transformRange(r.valueRange),t.transformContent(e),r.strValue)}function ksc(e,t){return Nsc(jwi(e,t))}function xsc(e){return{...e,type:"quoteSingle"}}function Gsc(e,t){return xsc(jwi(e,t))}function Fsc(e,t,r){return{...nw("sequence",e),...LNe(),...zme(),...t,children:r}}function Zsc(e,t){return{...nw("sequenceItem",e),...jme(),...zme(),children:t?[t]:[]}}function Lsc(e,t){let r=dEt(e.cstNode.items,t).map((n,a)=>{FDr(n,t);let o=t.transformNode(e.items[a]);return Zsc(Ume(t.transformOffset(n.valueRange.origStart),o===null?t.transformOffset(n.valueRange.origStart+1):o.position.end),o)});return Fsc(Ume(r[0].position.start,Tce(r).position.end),t.transformContent(e),r)}function Vsc(e,t){if(e===null||e.type===void 0&&e.value===null)return null;switch(e.type){case"ALIAS":return jic(e,t);case"BLOCK_FOLDED":return rsc(e,t);case"BLOCK_LITERAL":return isc(e,t);case"COMMENT":return ssc(e,t);case"DIRECTIVE":return asc(e,t);case"DOCUMENT":return hsc(e,t);case"FLOW_MAP":return Csc(e,t);case"FLOW_SEQ":return bsc(e,t);case"MAP":return vsc(e,t);case"PLAIN":return Rsc(e,t);case"QUOTE_DOUBLE":return ksc(e,t);case"QUOTE_SINGLE":return Gsc(e,t);case"SEQ":return Lsc(e,t);default:throw new Error(`Unexpected node type ${e.type}`)}}function Psc(e,t,r){let n=new SyntaxError(e);return n.name="YAMLSyntaxError",n.source=t,n.position=r,n}function Wsc(e,t){let r=e.source.range||e.source.valueRange;return Psc(e.message,t.text,t.transformRange(r))}function Osc(e,t,r){return{offset:e,line:t,column:r}}function Msc(e,t){e<0?e=0:e>t.text.length&&(e=t.text.length);let r=t.locator.locationForIndex(e);return Osc(e,r.line+1,r.column+1)}function Hsc(e,t){return Ume(t.transformOffset(e.origStart),t.transformOffset(e.origEnd))}function Ysc(e){if(!e.setOrigRanges()){let t=r=>{if(Qsc(r))return r.origStart=r.start,r.origEnd=r.end,!0;if(Xsc(r))return r.origOffset=r.offset,!0};e.forEach(r=>EDr(r,t))}}function EDr(e,t){if(!(!e||typeof e!="object")&&t(e)!==!0)for(let r of Object.keys(e)){if(r==="context"||r==="error")continue;let n=e[r];Array.isArray(n)?n.forEach(a=>EDr(a,t)):EDr(n,t)}}function Qsc(e){return typeof e.start=="number"}function Xsc(e){return typeof e.offset=="number"}function zwi(e){if("children"in e){if(e.children.length===1){let t=e.children[0];if(t.type==="plain"&&t.tag===null&&t.anchor===null&&t.value==="")return e.children.splice(0,1),e}e.children.forEach(zwi)}return e}function twi(e,t,r,n){let a=t(e);return o=>{n(a,o)&&r(e,a=o)}}function qwi(e){if(e===null||!("children"in e))return;let t=e.children;if(t.forEach(qwi),e.type==="document"){let[o,l]=e.children;o.position.start.offset===o.position.end.offset?o.position.start=o.position.end=l.position.start:l.position.start.offset===l.position.end.offset&&(l.position.start=l.position.end=o.position.end)}let r=twi(e.position,Jsc,Usc,zsc),n=twi(e.position,Ksc,jsc,qsc);"endComments"in e&&e.endComments.length!==0&&(r(e.endComments[0].position.start),n(Tce(e.endComments).position.end));let a=t.filter(o=>o!==null);if(a.length!==0){let o=a[0],l=Tce(a);r(o.position.start),n(l.position.end),"leadingComments"in o&&o.leadingComments.length!==0&&r(o.leadingComments[0].position.start),"tag"in o&&o.tag&&r(o.tag.position.start),"anchor"in o&&o.anchor&&r(o.anchor.position.start),"trailingComment"in l&&l.trailingComment&&n(l.trailingComment.position.end)}}function Jsc(e){return e.start}function Usc(e,t){e.start=t}function Ksc(e){return e.end}function jsc(e,t){e.end=t}function zsc(e,t){return t.offsete.offset}var $sc=nwi(Pnc(),1),iH=nwi(Wnc(),1),bRu=iH.default.findPair,ERu=iH.default.toJSON,SRu=iH.default.parseMap,vRu=iH.default.parseSeq,BRu=iH.default.stringifyNumber,wRu=iH.default.stringifyString,TRu=iH.default.Type,RRu=iH.default.YAMLError,NRu=iH.default.YAMLReferenceError,eoc=iH.default.YAMLSemanticError,DRu=iH.default.YAMLSyntaxError,kRu=iH.default.YAMLWarning,{Document:toc,parseCST:roc}=$sc.default;function noc(e){let t=roc(e);Ysc(t);let r=t.map(A=>new toc({merge:!1,keepCstNodes:!0}).parse(A)),n=new Hic(e),a=[],o={text:e,locator:n,comments:a,transformOffset:A=>Msc(A,o),transformRange:A=>Hsc(A,o),transformNode:A=>Vsc(A,o),transformContent:A=>Mwi(A,o)};for(let A of r)for(let f of A.errors)if(!(f instanceof eoc&&f.message==='Map keys must be unique; "<<" is repeated'))throw Wsc(f,o);r.forEach(A=>sEt(A.cstNode));let l=Uic(o.transformRange({origStart:0,origEnd:o.text.length}),r.map(o.transformNode),a);return Yic(l),qwi(l),zwi(l),l}function ioc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var soc=ioc;function ooc(e){try{let t=noc(e);return delete t.comments,t}catch(t){throw t!=null&&t.position?soc(t.message,{loc:t.position,cause:t}):t}}var aoc={astFormat:"yaml",parse:ooc,hasPragma:mic,locStart:aEt,locEnd:Iic},$wi={yaml:Oic},coc=fwi;var loc=Object.create,tkr=Object.defineProperty,uoc=Object.getOwnPropertyDescriptor,goc=Object.getOwnPropertyNames,Aoc=Object.getPrototypeOf,doc=Object.prototype.hasOwnProperty,DTi=e=>{throw TypeError(e)},kTi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rkr=(e,t)=>{for(var r in t)tkr(e,r,{get:t[r],enumerable:!0})},poc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of goc(t))!doc.call(e,a)&&a!==r&&tkr(e,a,{get:()=>t[a],enumerable:!(n=uoc(t,a))||n.enumerable});return e},EEt=(e,t,r)=>(r=e!=null?loc(Aoc(e)):{},poc(t||!e||!e.__esModule?tkr(r,"default",{value:e,enumerable:!0}):r,e)),foc=(e,t,r)=>t.has(e)||DTi("Cannot "+r),Ioc=(e,t,r)=>t.has(e)?DTi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),FJe=(e,t,r)=>(foc(e,t,"access private method"),r),nkr=kTi((e,t)=>{"use strict";var r=new Proxy(String,{get:()=>r});t.exports=r}),hoc=kTi(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(){return new Proxy({},{get:()=>o=>o})}var r=/\r\n|[\n\r\u2028\u2029]/;function n(o,l,A){let f=Object.assign({column:0,line:-1},o.start),I=Object.assign({},f,o.end),{linesAbove:C=2,linesBelow:b=3}=A||{},E=f.line,N=f.column,B=I.line,F=I.column,Q=Math.max(E-(C+1),0),X=Math.min(l.length,B+b);E===-1&&(Q=0),B===-1&&(X=l.length);let ae=B-E,ne={};if(ae)for(let ce=0;ce<=ae;ce++){let fe=ce+E;if(!N)ne[fe]=!0;else if(ce===0){let ue=l[fe-1].length;ne[fe]=[N,ue-N+1]}else if(ce===ae)ne[fe]=[0,F];else{let ue=l[fe-ce].length;ne[fe]=[0,ue]}}else N===F?N?ne[E]=[N,0]:ne[E]=!0:ne[E]=[N,F-N];return{start:Q,end:X,markerLines:ne}}function a(o,l,A={}){let f=t(!1),I=o.split(r),{start:C,end:b,markerLines:E}=n(l,I,A),N=l.start&&typeof l.start.column=="number",B=String(b).length,F=o.split(r,b).slice(C,b).map((Q,X)=>{let ae=C+1+X,ne=` ${` ${ae}`.slice(-B)} |`,ce=E[ae],fe=!E[ae+1];if(ce){let ue="";if(Array.isArray(ce)){let de=Q.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` `,f.gutter(ne.replace(/\d/g," "))," ",de,f.marker("^").repeat(be)].join(""),fe&&A.message&&(ue+=" "+f.message(A.message))}return[f.marker(">"),f.gutter(ne),Q.length>0?` ${Q}`:"",ue].join("")}else return` ${f.gutter(ne)}${Q.length>0?` ${Q}`:""}`}).join(` `);return A.message&&!N&&(F=`${" ".repeat(B+1)}${A.message} -${F}`),F}e.codeFrameColumns=a}),moc={};rkr(moc,{__debug:()=>Blc,check:()=>Slc,doc:()=>pRi,format:()=>kEt,formatWithCursor:()=>IRi,getSupportInfo:()=>vlc,util:()=>fRi,version:()=>qcc});var Coc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},SEt=Coc;function a4(){}a4.prototype={diff:function(e,t){var r,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=n.callback;typeof n=="function"&&(a=n,n={});var o=this;function l(ne){return ne=o.postProcess(ne,n),a?(setTimeout(function(){a(ne)},0),!0):ne}e=this.castInput(e,n),t=this.castInput(t,n),e=this.removeEmpty(this.tokenize(e,n)),t=this.removeEmpty(this.tokenize(t,n));var A=t.length,f=e.length,I=1,C=A+f;n.maxEditLength!=null&&(C=Math.min(C,n.maxEditLength));var b=(r=n.timeout)!==null&&r!==void 0?r:1/0,E=Date.now()+b,N=[{oldPos:-1,lastComponent:void 0}],B=this.extractCommon(N[0],t,e,0,n);if(N[0].oldPos+1>=f&&B+1>=A)return l(eTi(o,N[0].lastComponent,t,e,o.useLongestToken));var F=-1/0,Q=1/0;function X(){for(var ne=Math.max(F,-I);ne<=Math.min(Q,I);ne+=2){var ce=void 0,fe=N[ne-1],ue=N[ne+1];fe&&(N[ne-1]=void 0);var de=!1;if(ue){var be=ue.oldPos-ne;de=ue&&0<=be&&be=f&&B+1>=A)return l(eTi(o,ce.lastComponent,t,e,o.useLongestToken));N[ne]=ce,ce.oldPos+1>=f&&(Q=Math.min(Q,ne-1)),B+1>=A&&(F=Math.max(F,ne+1))}I++}if(a)(function ne(){setTimeout(function(){if(I>C||Date.now()>E)return a();X()||ne()},0)})();else for(;I<=C&&Date.now()<=E;){var ae=X();if(ae)return ae}},addToPath:function(e,t,r,n,a){var o=e.lastComponent;return o&&!a.oneChangePerToken&&o.added===t&&o.removed===r?{oldPos:e.oldPos+n,lastComponent:{count:o.count+1,added:t,removed:r,previousComponent:o.previousComponent}}:{oldPos:e.oldPos+n,lastComponent:{count:1,added:t,removed:r,previousComponent:o}}},extractCommon:function(e,t,r,n,a){for(var o=t.length,l=r.length,A=e.oldPos,f=A-n,I=0;f+1N.length?F:N}),b.value=e.join(E)}else b.value=e.join(r.slice(I,I+b.count));I+=b.count,b.added||(C+=b.count)}}return o}var qRu=new a4;function tTi(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[l]!=t[o];)o=a[o];t[l]==t[o]&&o++}o=0;for(var A=r;A0&&e[A]!=t[o];)o=a[o];e[A]==t[o]&&o++}return o}var _Et="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",yoc=new RegExp("[".concat(_Et,"]+|\\s+|[^").concat(_Et,"]"),"ug"),vEt=new a4;vEt.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};vEt.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(o){return o.segment})}else r=e.match(yoc)||[];var n=[],a=null;return r.forEach(function(o){/\s/.test(o)?a==null?n.push(o):n.push(n.pop()+o):/\s/.test(a)?n[n.length-1]==a?n.push(n.pop()+o):n.push(a+o):n.push(o),a=o}),n};vEt.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};vEt.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,a=null;return e.forEach(function(o){o.added?n=o:o.removed?a=o:((n||a)&&iTi(r,a,n,o),r=o,n=null,a=null)}),(n||a)&&iTi(r,a,n,null),e};function iTi(e,t,r,n){if(t&&r){var a=t.value.match(/^\s*/)[0],o=t.value.match(/\s*$/)[0],l=r.value.match(/^\s*/)[0],A=r.value.match(/\s*$/)[0];if(e){var f=tTi(a,l);e.value=YDr(e.value,l,f),t.value=ZJe(t.value,f),r.value=ZJe(r.value,f)}if(n){var I=rTi(o,A);n.value=HDr(n.value,A,I),t.value=pEt(t.value,I),r.value=pEt(r.value,I)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var C=n.value.match(/^\s*/)[0],b=t.value.match(/^\s*/)[0],E=t.value.match(/\s*$/)[0],N=tTi(C,b);t.value=ZJe(t.value,N);var B=rTi(ZJe(C,N),E);t.value=pEt(t.value,B),n.value=HDr(n.value,C,B),e.value=YDr(e.value,C,C.slice(0,C.length-B.length))}else if(n){var F=n.value.match(/^\s*/)[0],Q=t.value.match(/\s*$/)[0],X=nTi(Q,F);t.value=pEt(t.value,X)}else if(e){var ae=e.value.match(/\s*$/)[0],ne=t.value.match(/^\s*/)[0],ce=nTi(ae,ne);t.value=ZJe(t.value,ce)}}var boc=new a4;boc.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(_Et,"]+|[^\\S\\n\\r]+|[^").concat(_Et,"]"),"ug");return e.match(t)||[]};var ikr=new a4;ikr.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` +${F}`),F}e.codeFrameColumns=a}),moc={};rkr(moc,{__debug:()=>Blc,check:()=>Slc,doc:()=>pRi,format:()=>kEt,formatWithCursor:()=>IRi,getSupportInfo:()=>vlc,util:()=>fRi,version:()=>qcc});var Coc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},SEt=Coc;function a4(){}a4.prototype={diff:function(e,t){var r,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=n.callback;typeof n=="function"&&(a=n,n={});var o=this;function l(ne){return ne=o.postProcess(ne,n),a?(setTimeout(function(){a(ne)},0),!0):ne}e=this.castInput(e,n),t=this.castInput(t,n),e=this.removeEmpty(this.tokenize(e,n)),t=this.removeEmpty(this.tokenize(t,n));var A=t.length,f=e.length,I=1,C=A+f;n.maxEditLength!=null&&(C=Math.min(C,n.maxEditLength));var b=(r=n.timeout)!==null&&r!==void 0?r:1/0,E=Date.now()+b,N=[{oldPos:-1,lastComponent:void 0}],B=this.extractCommon(N[0],t,e,0,n);if(N[0].oldPos+1>=f&&B+1>=A)return l(eTi(o,N[0].lastComponent,t,e,o.useLongestToken));var F=-1/0,Q=1/0;function X(){for(var ne=Math.max(F,-I);ne<=Math.min(Q,I);ne+=2){var ce=void 0,fe=N[ne-1],ue=N[ne+1];fe&&(N[ne-1]=void 0);var de=!1;if(ue){var be=ue.oldPos-ne;de=ue&&0<=be&&be=f&&B+1>=A)return l(eTi(o,ce.lastComponent,t,e,o.useLongestToken));N[ne]=ce,ce.oldPos+1>=f&&(Q=Math.min(Q,ne-1)),B+1>=A&&(F=Math.max(F,ne+1))}I++}if(a)(function ne(){setTimeout(function(){if(I>C||Date.now()>E)return a();X()||ne()},0)})();else for(;I<=C&&Date.now()<=E;){var ae=X();if(ae)return ae}},addToPath:function(e,t,r,n,a){var o=e.lastComponent;return o&&!a.oneChangePerToken&&o.added===t&&o.removed===r?{oldPos:e.oldPos+n,lastComponent:{count:o.count+1,added:t,removed:r,previousComponent:o.previousComponent}}:{oldPos:e.oldPos+n,lastComponent:{count:1,added:t,removed:r,previousComponent:o}}},extractCommon:function(e,t,r,n,a){for(var o=t.length,l=r.length,A=e.oldPos,f=A-n,I=0;f+1N.length?F:N}),b.value=e.join(E)}else b.value=e.join(r.slice(I,I+b.count));I+=b.count,b.added||(C+=b.count)}}return o}var $Ru=new a4;function tTi(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[l]!=t[o];)o=a[o];t[l]==t[o]&&o++}o=0;for(var A=r;A0&&e[A]!=t[o];)o=a[o];e[A]==t[o]&&o++}return o}var _Et="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",yoc=new RegExp("[".concat(_Et,"]+|\\s+|[^").concat(_Et,"]"),"ug"),vEt=new a4;vEt.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};vEt.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(o){return o.segment})}else r=e.match(yoc)||[];var n=[],a=null;return r.forEach(function(o){/\s/.test(o)?a==null?n.push(o):n.push(n.pop()+o):/\s/.test(a)?n[n.length-1]==a?n.push(n.pop()+o):n.push(a+o):n.push(o),a=o}),n};vEt.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};vEt.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,a=null;return e.forEach(function(o){o.added?n=o:o.removed?a=o:((n||a)&&iTi(r,a,n,o),r=o,n=null,a=null)}),(n||a)&&iTi(r,a,n,null),e};function iTi(e,t,r,n){if(t&&r){var a=t.value.match(/^\s*/)[0],o=t.value.match(/\s*$/)[0],l=r.value.match(/^\s*/)[0],A=r.value.match(/\s*$/)[0];if(e){var f=tTi(a,l);e.value=YDr(e.value,l,f),t.value=ZJe(t.value,f),r.value=ZJe(r.value,f)}if(n){var I=rTi(o,A);n.value=HDr(n.value,A,I),t.value=pEt(t.value,I),r.value=pEt(r.value,I)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var C=n.value.match(/^\s*/)[0],b=t.value.match(/^\s*/)[0],E=t.value.match(/\s*$/)[0],N=tTi(C,b);t.value=ZJe(t.value,N);var B=rTi(ZJe(C,N),E);t.value=pEt(t.value,B),n.value=HDr(n.value,C,B),e.value=YDr(e.value,C,C.slice(0,C.length-B.length))}else if(n){var F=n.value.match(/^\s*/)[0],Q=t.value.match(/\s*$/)[0],X=nTi(Q,F);t.value=pEt(t.value,X)}else if(e){var ae=e.value.match(/\s*$/)[0],ne=t.value.match(/^\s*/)[0],ce=nTi(ae,ne);t.value=ZJe(t.value,ce)}}var boc=new a4;boc.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(_Et,"]+|[^\\S\\n\\r]+|[^").concat(_Et,"]"),"ug");return e.match(t)||[]};var ikr=new a4;ikr.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` `));var r=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var a=0;a({_:{"schema-version":_Ac,id:e,name:e,version:"0.0.1"},io:{buildpacks:{exclude:await edc(n,a),builder:t,build:{env:r}}}});var Ykr=Nt(Bn(),1);import{platform as tdc}from"node:os";import{arch as rdc}from"node:os";var wDi="0.40.4",UNe=async(e,t,r)=>{let{code:n}=await Ykr.execUtils.pipevp(e,t,{...r,end:Ykr.execUtils.EndStrategy.ErrorCode});if(n!==0)throw new Error(`Command "${[e,...t].join(" ")}" failed with exit code ${n}`)},TDi=async({context:e,cwd:t})=>{let r;try{await UNe("pack",["--version"],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),r=!0}catch{r=!1}if(!r){console.log("Buildpack CLI (pack) is not installed. Installing it...");let n=`https://github.com/buildpacks/pack/releases/download/v${wDi}/pack-v${wDi}-`,a=tdc(),o=rdc();switch(a){case"linux":n+="linux.tgz";break;case"darwin":o==="arm64"?n+="macos-arm64.tgz":n+="macos.tgz";break;default:break}let l=`${t??e.cwd}/pack.tgz`;await UNe("curl",["-sSL","-o",l,n],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),await UNe("tar",["-C","/usr/local/bin/","--no-same-owner","-xzv",l],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),console.log("Buildpack CLI (pack) has been installed.")}};var DDi=async({workspace:e,registry:t,publish:r,tagPolicy:n,builder:a,buildpack:o,platform:l,require:A,cwd:f},I)=>{let C=f??I.cwd,b=e.replace("@","").replace(/\//g,"-"),E=`${t}${b}`,N=await YNi(n),B=[{name:"WORKSPACE",value:e},{name:"CNB_USER_ID",value:"1001"}];A&&A.length>0&&B.push({name:"BP_REQUIRE",value:A.join(",")});let F=await BDi({repo:b,builder:a,envs:B,cwd:C,platform:l}),Q=NDi.ppath.join(await Qkr.xfs.mktempPromise(),"project.toml");await Qkr.xfs.writeFilePromise(Q,(0,RDi.stringify)(F)),console.debug("project.toml",ndc(Q,"utf8"));let X=["build","--trust-builder",`${E}:${N}`,"--descriptor",Q,"--buildpack",o,"--tag",`${E}:latest`,"--creation-time","now","--clear-cache","--verbose"];return r&&X.push("--publish"),l&&X.push("--platform",l),console.debug("Packing with args:",X),await TDi({cwd:f,context:I}),await UNe("pack",["config","experimental","true"],{cwd:C,env:process.env,stdin:I.stdin,stdout:I.stdout,stderr:I.stderr}),await UNe("pack",X,{cwd:C,env:process.env,stdin:I.stdin,stdout:I.stdout,stderr:I.stderr}),{images:[`${E}:${N}`,`${E}:latest`],tags:[N,"latest"],workspace:e}};import{arch as idc}from"node:os";var sdc="24",odc="0.1.3",adc="atlantislab/builder-base",cdc="ghcr.io/atls/buildpack-yarn-workspace-start",ldc="linux",kDi=()=>`${ldc}/${idc()}`,xDi=({buildpack:e,buildpackImage:t,buildpackVersion:r})=>e||`${t??cdc}:${r??odc}`,GDi=({builder:e,builderImage:t,builderTag:r})=>e||`${t??adc}:${r??sdc}`;var iUe=class extends FDi.BaseCommand{static paths=[["image","pack"]];registry=Su.String("-r,--registry","");tagPolicy=Su.String("-t,--tag-policy","revision");publish=Su.Boolean("-p,--publish",!1);platform=Su.String("--platform");async execute(){let t=await ZDi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await LDi.Project.find(t,this.context.cwd),n=r.getWorkspaceByFilePath(this.context.cwd);return(await VDi.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{if(!this.isWorkspaceAllowedForBundle(n)){o.reportInfo(null,`Workspace ${n.manifest.name?Xkr.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} not allowed for package.`);return}let l=await PDi.xfs.mktempPromise();o.reportInfo(null,`Package workspace ${n.manifest.name?Xkr.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} to ${l}`);let A=udc(gdc(this.context.cwd,"package.json"),"utf-8"),{packConfiguration:f={}}=JSON.parse(A),{require:I}=f;await SRe.pack(t,r,n,o,l,{platform:this.platform??kDi()}),await DDi({workspace:n.manifest.raw.name,registry:this.registry,publish:this.publish,tagPolicy:this.tagPolicy,buildpack:xDi(f),builder:GDi(f),platform:this.platform,require:I,cwd:l},this.context)})).exitCode()}isWorkspaceAllowedForBundle(t){let{scripts:r,name:n}=t.manifest,a=r.get("build");return["actl service build","actl renderer build","build-storybook","storybook build","next build","builder build library","app service build","app renderer build","service build","renderer build","strapi build","astro build"].some(l=>a?.includes(l))&&!!n}};var WDi={commands:[iUe]};var rxr={};sI(rxr,{LibraryBuildCommand:()=>oUe,default:()=>Cki});var Aki=Nt(el(),1),dki=Nt(Bn(),1),pki=Nt(Bn(),1),txr=Nt(no(),1),fki=Nt(Bn(),1),Iki=Nt(no(),1);$c();var hki=Nt(Al(),1);import{rm as fdc}from"node:fs/promises";import{join as gki}from"node:path";var $kr=Nt(Al(),1),gCe=Nt(Al(),1),exr=Nt(Ec(),1),jDi=Nt(KDi(),1);import{isAbsolute as Adc}from"node:path";import{relative as ddc}from"node:path";var Hk=Nt(Pc(),1),KEt=({messageText:e,start:t,file:r,code:n,cwd:a=process.cwd()})=>{let o=(0,exr.useMemo)(()=>r?Adc(r.fileName)?ddc(a,r.fileName):r.fileName:null,[r]),l=(0,exr.useMemo)(()=>r&&t?r.getLineAndCharacterOfPosition(t):null,[r,t]);return(0,Hk.jsxs)(gCe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingY:1,width:"100%",children:[!!o&&(0,Hk.jsxs)(gCe.Box,{flexDirection:"row",children:[(0,Hk.jsx)(gCe.Box,{marginBottom:1,paddingX:2,flexGrow:1,children:(0,Hk.jsx)(A8,{line:l?l.line+1:1,column:l?.character,children:o})}),(0,Hk.jsx)(gCe.Box,{paddingX:2,children:(0,Hk.jsxs)($kr.Text,{bold:!0,color:"red",children:["TS",n]})})]}),(0,Hk.jsx)(J9,{offset:2}),!!r?.text&&!!l&&(0,Hk.jsxs)(Hk.Fragment,{children:[(0,Hk.jsx)(gCe.Box,{children:(0,Hk.jsx)(d8,{line:l.line+1,column:l.character,children:r.text})}),(0,Hk.jsx)(J9,{offset:2})]}),(0,Hk.jsx)(gCe.Box,{marginTop:1,paddingX:2,children:(0,Hk.jsx)($kr.Text,{color:"white",children:(0,jDi.flattenDiagnosticMessageText)(e,` `)})})]})};var sUe=Nt(Al(),1),ski=Nt(Ec(),1),oki=Nt(Ec(),1);var zDi=Nt(Ec(),1),qDi=Nt(Ec(),1),$Di=Nt(Ec(),1),tki=Nt(Pc(),1),eki=({typescript:e})=>{let[t,r]=(0,qDi.useState)(10),n=(0,$Di.useRef)();return(0,zDi.useEffect)(()=>{n.current=setInterval(()=>{r(o=>o+10)},100);let a=()=>{setTimeout(()=>{r(100),n.current&&clearInterval(n.current)},600)};return e.on("end",a),()=>{e.off("end",a),n.current&&clearInterval(n.current)}},[e,n,r]),(0,tki.jsx)(JM,{value:t/100*100})};var jNe=Nt(Al(),1),Oee=Nt(Al(),1),rki=Nt(Ec(),1),nki=Nt(Ec(),1);var Yk=Nt(Pc(),1),iki=({typescript:e})=>{let[t,r]=(0,nki.useState)(0);return(0,rki.useEffect)(()=>{let n=a=>{r(a.files.length)};return e.on("start",n),()=>{e.off("start",n)}},[e,r]),t===0?(0,Yk.jsxs)(jNe.Box,{flexDirection:"row",children:[(0,Yk.jsx)(RG,{color:"cyan",children:"TypeScript:"}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsx)(Oee.Text,{color:"white",children:"Loading files..."})]}):(0,Yk.jsxs)(jNe.Box,{flexDirection:"row",width:"100%",children:[(0,Yk.jsxs)(jNe.Box,{flexGrow:1,children:[(0,Yk.jsx)(RG,{color:"cyan",children:"TypeScript:"}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsx)(Oee.Text,{color:"white",children:"Processing..."})]}),(0,Yk.jsx)(jNe.Box,{flexDirection:"row",children:(0,Yk.jsxs)(jNe.Box,{children:[(0,Yk.jsx)(Oee.Text,{color:"green",children:kI.tick}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsxs)(Oee.Text,{color:"white",children:[t," Files"]}),(0,Yk.jsx)(Oee.Text,{children:" "})]})})]})};var Fce=Nt(Pc(),1),jEt=({typescript:e})=>{let[t,r]=(0,ski.useState)(!1);return(0,oki.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1e3)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Fce.jsx)(sUe.Box,{position:"relative",height:7,children:(0,Fce.jsxs)(sUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Fce.jsx)(sUe.Box,{children:(0,Fce.jsx)(iki,{typescript:e})}),(0,Fce.jsx)(sUe.Box,{marginTop:1,marginBottom:1,children:(0,Fce.jsx)(eki,{typescript:e})})]})})};import pdc from"node:events";import{readFileSync as cki}from"node:fs";import{createRequire as lki}from"node:module";import{join as uki}from"node:path";var bj={compilerOptions:{lib:["dom","dom.iterable","esnext"],declaration:!1,emitDecoratorMetadata:!0,experimentalDecorators:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,importHelpers:!1,isolatedModules:!1,moduleResolution:"NodeNext",noFallthroughCasesInSwitch:!0,noImplicitAny:!0,noImplicitReturns:!0,noImplicitThis:!0,noUnusedLocals:!1,noUnusedParameters:!1,pretty:!0,removeComments:!0,resolveJsonModule:!0,strict:!0,strictPropertyInitialization:!1,sourceMap:!1,module:"NodeNext",target:"es2022",jsx:"react-jsx",outDir:"./dist"},exclude:["**/*/next-env.d.ts","integration","node_modules","src/**/*.spec.ts","src/**/*.test.ts","src/**/*.story.ts","src/**/*.stories.ts","**/*/dist/**/*.ts","**/*/dist/**/*.d.ts","integration/**/*.test.ts",".idea"]};var aki=e=>t=>{let r=n=>{let{moduleSpecifier:a}=n;if(a&&e.isStringLiteral(a)){if(e.isImportDeclaration(n)&&a.text.endsWith(".jsx"))return t.factory.updateImportDeclaration(n,n.modifiers,n.importClause,t.factory.createStringLiteral(a.text.replace(".jsx",".js")),n.assertClause);if(e.isExportDeclaration(n))return t.factory.updateExportDeclaration(n,n.modifiers,n.isTypeOnly,n.exportClause,t.factory.createStringLiteral(a.text.replace(".jsx",".js")),n.assertClause)}return e.visitEachChild(n,r,t)};return n=>e.visitNode(n,r)};var zNe=class e extends pdc{constructor(r,n){super();this.ts=r;this.cwd=n}static async initialize(r){let a=lki(import.meta.url).resolve("@atls/code-runtime/package.json"),l=lki(a)("typescript");return new e(l,r)}async check(r=[]){return this.run(r)}async build(r=[],n={}){return this.run(r,n,!1)}async run(r=[],n={},a=!0){let o=this.getProjectIgnorePatterns(),l=this.getLibCheckOption(),A={...bj,compilerOptions:{...bj.compilerOptions,...n,skipLibCheck:l},include:r,exclude:[...bj.exclude,...o]},{fileNames:f,options:I,errors:C}=this.ts.parseJsonConfigFileContent(A,this.ts.sys,this.cwd);if(C.length>0)return this.emit("start",{files:[]}),this.emit("end",{diagnostics:C}),C;this.emit("start",{files:f});let b=this.ts.createProgram(f,{...I,noEmit:a}),E=Q=>X=>(this.emit("build:start",{file:X.fileName}),X),N=Q=>X=>(this.emit("build:end",{file:X.fileName}),X),B=b.emit(void 0,void 0,void 0,void 0,{before:[E],after:[N,aki(this.ts)]}),F=this.filterDiagnostics(this.ts.getPreEmitDiagnostics(b).concat(B.diagnostics));return this.emit("end",{diagnostics:F}),F}filterDiagnostics(r){return r.filter(n=>n.code!==2209).filter(n=>!(n.code===1479&&n.file?.fileName.includes("/.yarn/"))).filter(n=>!(n.code===2834&&n.file?.fileName.includes("/.yarn/"))).filter(n=>!(n.code===7016&&n.file?.fileName.includes("/lexical/"))).filter(n=>!(n.code===6133&&n.file?.fileName.includes("/@yarnpkg/libui/"))).filter(n=>!([2315,2411,2304,7006,7016].includes(n.code)&&n.file?.fileName.includes("/@strapi/"))).filter(n=>!([2688,2307,2503].includes(n.code)&&n.file?.fileName.includes("/pkg-tests-core/"))).filter(n=>!([2307].includes(n.code)&&n.file?.fileName.includes("/@nestjs/testing/")))}getProjectIgnorePatterns(){let r=cki(uki(this.cwd,"package.json"),"utf-8"),{typecheckIgnorePatterns:n=[]}=JSON.parse(r);return n}getLibCheckOption(){let r=cki(uki(this.cwd,"package.json"),"utf-8"),{typecheckSkipLibCheck:n=!1}=JSON.parse(r);return n}};var zEt=Nt(Pc(),1),oUe=class extends Aki.BaseCommand{static paths=[["library","build"]];target=Su.String("-t,--target","./dist");async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(txr.Filename.pnpCjs)&&t.includes(txr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await dki.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await pki.Project.find(t,this.context.cwd),n=[];this.target&&(n.push("-t"),n.push(this.target));let a=await Iki.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await fki.execUtils.pipevp(o,["library","build",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){await this.cleanTarget();let t=await zNe.initialize(this.context.cwd),{clear:r}=(0,hki.render)((0,zEt.jsx)(jEt,{typescript:t}));try{let n=await t.build([gki(this.context.cwd,"./src")],{outDir:gki(this.context.cwd,this.target),declaration:!0});return n.forEach(a=>{xE((0,zEt.jsx)(KEt,{...a})).split(` `).forEach(l=>{console.log(l)})}),n.length===0?0:1}catch(n){return xE((0,zEt.jsx)(Fk,{error:n})).split(` -`).forEach(a=>{console.error(a)}),1}finally{r()}}async cleanTarget(){try{await fdc(this.target,{recursive:!0,force:!0})}catch{}}};var mki=(e,t)=>{t.publishConfig&&t.publishConfig.exports&&(t.exports=t.publishConfig.exports)};var Cki={hooks:{beforeWorkspacePacking:mki},commands:[oUe]};var lxr={};sI(lxr,{LintCommand:()=>lUe,default:()=>Lki});var xki=Nt(el(),1),oxr=Nt(Bn(),1),axr=Nt(Bn(),1),cxr=Nt(no(),1),Gki=Nt(Bn(),1),Fki=Nt(no(),1);$c();var Zki=Nt(Al(),1);var cUe=Nt(Al(),1),Bki=Nt(Ec(),1),wki=Nt(Ec(),1);var _ki=Nt(Ec(),1),nxr=Nt(Ec(),1),bki=Nt(Pc(),1),yki=({linter:e})=>{let[t,r]=(0,nxr.useState)(0),[n,a]=(0,nxr.useState)(0);return(0,_ki.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("lint:end",l),e.on("end",A),()=>{e.off("start",o),e.off("lint:end",l),e.off("end",A)}},[e,t,r,a]),(0,bki.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as Eki}from"node:path";var qNe=Nt(Al(),1),Qk=Nt(Al(),1),Ski=Nt(Ec(),1),aUe=Nt(Ec(),1);var jb=Nt(Pc(),1),Idc=({state:e})=>e==="warning"?(0,jb.jsx)(Qk.Text,{color:"yellow",children:kI.warning}):e==="error"?(0,jb.jsx)(Qk.Text,{color:"red",children:kI.cross}):e==="success"?(0,jb.jsx)(Qk.Text,{color:"green",children:kI.tick}):(0,jb.jsx)(Qk.Text,{color:"white",children:kI.circleDotted}),hdc=({state:e,children:t})=>e==="in-progress"?(0,jb.jsx)(Qk.Text,{color:"gray",children:t}):(0,jb.jsx)(Qk.Text,{color:"white",children:t}),vki=({cwd:e,linter:t})=>{let[r,n]=(0,aUe.useState)(void 0),[a,o]=(0,aUe.useState)(0),[l,A]=(0,aUe.useState)(0),[f,I]=(0,aUe.useState)(0);return(0,Ski.useEffect)(()=>{let C=N=>{o(N.files.length)},b=N=>{n({state:"in-progress",file:Eki(e,N.file)})},E=({result:N})=>{let B="success";N.warningCount>0&&(I(F=>F+N.warningCount),B="warning"),N.errorCount>0&&(A(F=>F+N.errorCount),B="error"),n({state:B,file:Eki(e,N.filePath)})};return t.on("start",C),t.on("lint:start",b),t.on("lint:end",E),()=>{t.off("start",C),t.off("lint:start",b),t.off("lint:end",E)}},[t,n,o,A,I]),r?(0,jb.jsxs)(qNe.Box,{flexDirection:"row",width:"100%",children:[(0,jb.jsxs)(qNe.Box,{flexGrow:1,children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(hdc,{state:r.state,children:r.file})]}),(0,jb.jsx)(qNe.Box,{flexDirection:"row",children:(0,jb.jsxs)(qNe.Box,{children:[(0,jb.jsx)(Idc,{state:r.state}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"yellow",children:[f," Warnings"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"red",children:[l," Errors"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"white",children:[a," Files"]}),(0,jb.jsx)(Qk.Text,{children:" "})]})})]}):(0,jb.jsxs)(qNe.Box,{flexDirection:"row",children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(Qk.Text,{color:"white",children:"Loading files..."})]})};var Zce=Nt(Pc(),1),Tki=({cwd:e,linter:t})=>{let[r,n]=(0,Bki.useState)(!1);return(0,wki.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,Zce.jsx)(cUe.Box,{position:"relative",height:7,children:(0,Zce.jsxs)(cUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Zce.jsx)(cUe.Box,{children:(0,Zce.jsx)(vki,{cwd:e,linter:t})}),(0,Zce.jsx)(cUe.Box,{marginTop:1,marginBottom:1,children:(0,Zce.jsx)(yki,{linter:t})})]})})};var ixr=Nt(Al(),1),Lce=Nt(Al(),1);var lD=Nt(Pc(),1),Rki=({filePath:e,message:t,source:r})=>(0,lD.jsxs)(Lce.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,lD.jsxs)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,lD.jsx)(Lce.Box,{flexDirection:"row",flexGrow:1,children:(0,lD.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsxs)(ixr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(J9,{offset:2})}),!!r&&(0,lD.jsxs)(lD.Fragment,{children:[(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,lD.jsx)(J9,{offset:2})]}),(0,lD.jsx)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,lD.jsxs)(ixr.Text,{color:"white",children:[" ",t.message]})})]});var Nki=Nt(Al(),1);import{isAbsolute as mdc}from"node:path";import{relative as Cdc}from"node:path";var Dki=Nt(Ec(),1);var sxr=Nt(Pc(),1),kki=({filePath:e,source:t,messages:r,cwd:n=process.cwd()})=>{let a=(0,Dki.useMemo)(()=>mdc(e)?Cdc(n,e):e,[e]);return r.length===0?null:(0,sxr.jsx)(Nki.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,sxr.jsx)(Rki,{filePath:a,message:o,source:t},OW()))})};var qEt=Nt(Pc(),1),lUe=class extends xki.BaseCommand{static paths=[["lint"]];fix=Su.Boolean("--fix");files=Su.Rest({required:0});cache=Su.Boolean("--cache",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(cxr.Filename.pnpCjs)&&t.includes(cxr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await Fki.xfs.mktempPromise(),a=[];this.fix&&a.push("--fix"),this.cache&&a.push("--cache");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await Gki.execUtils.pipevp(o,["lint",...a,...this.files],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await CBe.initialize(r.cwd,this.context.cwd),{clear:a}=(0,Zki.render)((0,qEt.jsx)(Tki,{cwd:r.cwd,linter:n}));n.on("lint:end",({result:o})=>{o.messages.length>0&&xE((0,qEt.jsx)(kki,{...o})).split(` +`).forEach(a=>{console.error(a)}),1}finally{r()}}async cleanTarget(){try{await fdc(this.target,{recursive:!0,force:!0})}catch{}}};var Idc=(e,t)=>{t&&(t.exports&&(e.exports=t.exports),t.main&&(e.main=t.main),t.types&&(e.types=t.types),t.typings&&(e.typings=t.typings))},mki=(e,t)=>{let r=e.manifest.private;Idc(t,r?t.raijin?.pack:t.publishConfig),delete t.raijin};var Cki={hooks:{beforeWorkspacePacking:mki},commands:[oUe]};var lxr={};sI(lxr,{LintCommand:()=>lUe,default:()=>Lki});var xki=Nt(el(),1),oxr=Nt(Bn(),1),axr=Nt(Bn(),1),cxr=Nt(no(),1),Gki=Nt(Bn(),1),Fki=Nt(no(),1);$c();var Zki=Nt(Al(),1);var cUe=Nt(Al(),1),Bki=Nt(Ec(),1),wki=Nt(Ec(),1);var _ki=Nt(Ec(),1),nxr=Nt(Ec(),1),bki=Nt(Pc(),1),yki=({linter:e})=>{let[t,r]=(0,nxr.useState)(0),[n,a]=(0,nxr.useState)(0);return(0,_ki.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("lint:end",l),e.on("end",A),()=>{e.off("start",o),e.off("lint:end",l),e.off("end",A)}},[e,t,r,a]),(0,bki.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as Eki}from"node:path";var qNe=Nt(Al(),1),Qk=Nt(Al(),1),Ski=Nt(Ec(),1),aUe=Nt(Ec(),1);var jb=Nt(Pc(),1),hdc=({state:e})=>e==="warning"?(0,jb.jsx)(Qk.Text,{color:"yellow",children:kI.warning}):e==="error"?(0,jb.jsx)(Qk.Text,{color:"red",children:kI.cross}):e==="success"?(0,jb.jsx)(Qk.Text,{color:"green",children:kI.tick}):(0,jb.jsx)(Qk.Text,{color:"white",children:kI.circleDotted}),mdc=({state:e,children:t})=>e==="in-progress"?(0,jb.jsx)(Qk.Text,{color:"gray",children:t}):(0,jb.jsx)(Qk.Text,{color:"white",children:t}),vki=({cwd:e,linter:t})=>{let[r,n]=(0,aUe.useState)(void 0),[a,o]=(0,aUe.useState)(0),[l,A]=(0,aUe.useState)(0),[f,I]=(0,aUe.useState)(0);return(0,Ski.useEffect)(()=>{let C=N=>{o(N.files.length)},b=N=>{n({state:"in-progress",file:Eki(e,N.file)})},E=({result:N})=>{let B="success";N.warningCount>0&&(I(F=>F+N.warningCount),B="warning"),N.errorCount>0&&(A(F=>F+N.errorCount),B="error"),n({state:B,file:Eki(e,N.filePath)})};return t.on("start",C),t.on("lint:start",b),t.on("lint:end",E),()=>{t.off("start",C),t.off("lint:start",b),t.off("lint:end",E)}},[t,n,o,A,I]),r?(0,jb.jsxs)(qNe.Box,{flexDirection:"row",width:"100%",children:[(0,jb.jsxs)(qNe.Box,{flexGrow:1,children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(mdc,{state:r.state,children:r.file})]}),(0,jb.jsx)(qNe.Box,{flexDirection:"row",children:(0,jb.jsxs)(qNe.Box,{children:[(0,jb.jsx)(hdc,{state:r.state}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"yellow",children:[f," Warnings"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"red",children:[l," Errors"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"white",children:[a," Files"]}),(0,jb.jsx)(Qk.Text,{children:" "})]})})]}):(0,jb.jsxs)(qNe.Box,{flexDirection:"row",children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(Qk.Text,{color:"white",children:"Loading files..."})]})};var Zce=Nt(Pc(),1),Tki=({cwd:e,linter:t})=>{let[r,n]=(0,Bki.useState)(!1);return(0,wki.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,Zce.jsx)(cUe.Box,{position:"relative",height:7,children:(0,Zce.jsxs)(cUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Zce.jsx)(cUe.Box,{children:(0,Zce.jsx)(vki,{cwd:e,linter:t})}),(0,Zce.jsx)(cUe.Box,{marginTop:1,marginBottom:1,children:(0,Zce.jsx)(yki,{linter:t})})]})})};var ixr=Nt(Al(),1),Lce=Nt(Al(),1);var lD=Nt(Pc(),1),Rki=({filePath:e,message:t,source:r})=>(0,lD.jsxs)(Lce.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,lD.jsxs)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,lD.jsx)(Lce.Box,{flexDirection:"row",flexGrow:1,children:(0,lD.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsxs)(ixr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(J9,{offset:2})}),!!r&&(0,lD.jsxs)(lD.Fragment,{children:[(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,lD.jsx)(J9,{offset:2})]}),(0,lD.jsx)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,lD.jsxs)(ixr.Text,{color:"white",children:[" ",t.message]})})]});var Nki=Nt(Al(),1);import{isAbsolute as Cdc}from"node:path";import{relative as _dc}from"node:path";var Dki=Nt(Ec(),1);var sxr=Nt(Pc(),1),kki=({filePath:e,source:t,messages:r,cwd:n=process.cwd()})=>{let a=(0,Dki.useMemo)(()=>Cdc(e)?_dc(n,e):e,[e]);return r.length===0?null:(0,sxr.jsx)(Nki.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,sxr.jsx)(Rki,{filePath:a,message:o,source:t},OW()))})};var qEt=Nt(Pc(),1),lUe=class extends xki.BaseCommand{static paths=[["lint"]];fix=Su.Boolean("--fix");files=Su.Rest({required:0});cache=Su.Boolean("--cache",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(cxr.Filename.pnpCjs)&&t.includes(cxr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await Fki.xfs.mktempPromise(),a=[];this.fix&&a.push("--fix"),this.cache&&a.push("--cache");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await Gki.execUtils.pipevp(o,["lint",...a,...this.files],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await CBe.initialize(r.cwd,this.context.cwd),{clear:a}=(0,Zki.render)((0,qEt.jsx)(Tki,{cwd:r.cwd,linter:n}));n.on("lint:end",({result:o})=>{o.messages.length>0&&xE((0,qEt.jsx)(kki,{...o})).split(` `).forEach(A=>{console.log(A)})});try{return(await n.lint(this.files,{fix:this.fix,cache:this.cache})).find(l=>l.messages.length>0)?1:0}catch(o){return o instanceof Error?xE((0,qEt.jsx)(Fk,{error:o})).split(` -`).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var Lki={commands:[lUe]};var MGr={};sI(MGr,{default:()=>pZi});var uxi=Nt(el(),1),gxi=Nt(el(),1),Axi=Nt(Bn(),1),dxi=Nt(Bn(),1),pxi=Nt(Bn(),1);import AUe from"node:assert/strict";import{execSync as opc}from"node:child_process";function Vce(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}function $Et(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((a,o)=>$Et.bind(null,e,o,a,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((a,o)=>o.hook.bind(null,a,n),r)():r(n))}function Vki(e,t,r,n){let a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,l)=>Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))),t==="after"&&(n=(o,l)=>{let A;return Promise.resolve().then(o.bind(null,l)).then(f=>(A=f,a(A,l))).then(()=>A)}),t==="error"&&(n=(o,l)=>Promise.resolve().then(o.bind(null,l)).catch(A=>a(A,l))),e.registry[r].push({hook:n,orig:a})}function Pki(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(a=>a.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Wki=Function.bind,Oki=Wki.bind(Wki);function Mki(e,t,r){let n=Oki(Pki,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(a=>{let o=r?[t,a,r]:[t,a];e[a]=e.api[a]=Oki(Vki,null).apply(null,o)})}function _dc(){let e=Symbol("Singular"),t={registry:{}},r=$Et.bind(null,t,e);return Mki(r,t,e),r}function ydc(){let e={registry:{}},t=$Et.bind(null,e);return Mki(t,e),t}var Hki={Singular:_dc,Collection:ydc};var bdc="0.0.0-development",Edc=`octokit-endpoint.js/${bdc} ${Vce()}`,Sdc={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Edc},mediaType:{format:""}};function vdc(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function Bdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Xki(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{Bdc(t[n])?n in e?r[n]=Xki(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Yki(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gxr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=vdc(r.headers),Yki(r),Yki(r.headers);let n=Xki(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function wdc(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var Tdc=/\{[^}]+\}/g;function Rdc(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Ndc(e){let t=e.match(Tdc);return t?t.map(Rdc).reduce((r,n)=>r.concat(n),[]):[]}function Qki(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Jki(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function eDe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function uUe(e,t,r){return t=e==="+"||e==="#"?Jki(t):eDe(t),r?eDe(r)+"="+t:t}function $Ne(e){return e!=null}function uxr(e){return e===";"||e==="&"||e==="?"}function Ddc(e,t,r,n){var a=e[r],o=[];if($Ne(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(uUe(t,a,uxr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter($Ne).forEach(function(l){o.push(uUe(t,l,uxr(t)?r:""))}):Object.keys(a).forEach(function(l){$Ne(a[l])&&o.push(uUe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter($Ne).forEach(function(A){l.push(uUe(t,A))}):Object.keys(a).forEach(function(A){$Ne(a[A])&&(l.push(eDe(A)),l.push(uUe(t,a[A].toString())))}),uxr(t)?o.push(eDe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?$Ne(a)&&o.push(eDe(r)):a===""&&(t==="&"||t==="?")?o.push(eDe(r)+"="):a===""&&o.push("");return o}function kdc(e){return{expand:xdc.bind(null,e)}}function xdc(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(Ddc(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return Jki(o)}),e==="/"?e:e.replace(/\/$/,"")}function Uki(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=Qki(e,["method","baseUrl","url","headers","request","mediaType"]),l=Ndc(r);r=kdc(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=Qki(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=wdc(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function Gdc(e,t,r){return Uki(gxr(e,t,r))}function Kki(e,t){let r=gxr(e,t),n=Gdc.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Kki.bind(null,r),merge:gxr.bind(null,r),parse:Uki})}var jki=Kki(null,Sdc);var ACe=class extends Error{name;status;request;response;constructor(t,r,n){super(t),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0),"response"in n&&(this.response=n.response);let a=Object.assign({},n.request);n.request.headers.authorization&&(a.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a}};var Fdc="0.0.0-development",Zdc={headers:{"user-agent":`octokit-request.js/${Fdc} ${Vce()}`}};function Ldc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function zki(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,a=Ldc(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([b,E])=>[b,String(E)])),l;try{l=await t(e.url,{method:e.method,body:a,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(b){let E="Unknown Error";if(b instanceof Error){if(b.name==="AbortError")throw b.status=500,b;E=b.message,b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause))}let N=new ACe(E,500,{request:e});throw N.cause=b,N}let A=l.status,f=l.url,I={};for(let[b,E]of l.headers)I[b]=E;let C={url:f,status:A,headers:I,data:""};if("deprecation"in I){let b=I.link&&I.link.match(/<([^>]+)>; rel="deprecation"/),E=b&&b.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${I.sunset}${E?`. See ${E}`:""}`)}if(A===204||A===205)return C;if(e.method==="HEAD"){if(A<400)return C;throw new ACe(l.statusText,A,{response:C,request:e})}if(A===304)throw C.data=await Axr(l),new ACe("Not modified",A,{response:C,request:e});if(A>=400)throw C.data=await Axr(l),new ACe(Vdc(C.data),A,{response:C,request:e});return C.data=n?await Axr(l):l.body,C}async function Axr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():e.arrayBuffer()}function Vdc(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(r=>JSON.stringify(r)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dxr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return zki(r.parse(l));let A=(f,I)=>zki(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:dxr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:dxr.bind(null,r)})}var gUe=dxr(jki,Zdc);var Pdc="0.0.0-development";function Wdc(e){return`Request failed due to following response errors: +`).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var Lki={commands:[lUe]};var MGr={};sI(MGr,{default:()=>pZi});var uxi=Nt(el(),1),gxi=Nt(el(),1),Axi=Nt(Bn(),1),dxi=Nt(Bn(),1),pxi=Nt(Bn(),1);import AUe from"node:assert/strict";import{execSync as apc}from"node:child_process";function Vce(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}function $Et(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((a,o)=>$Et.bind(null,e,o,a,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((a,o)=>o.hook.bind(null,a,n),r)():r(n))}function Vki(e,t,r,n){let a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,l)=>Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))),t==="after"&&(n=(o,l)=>{let A;return Promise.resolve().then(o.bind(null,l)).then(f=>(A=f,a(A,l))).then(()=>A)}),t==="error"&&(n=(o,l)=>Promise.resolve().then(o.bind(null,l)).catch(A=>a(A,l))),e.registry[r].push({hook:n,orig:a})}function Pki(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(a=>a.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Wki=Function.bind,Oki=Wki.bind(Wki);function Mki(e,t,r){let n=Oki(Pki,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(a=>{let o=r?[t,a,r]:[t,a];e[a]=e.api[a]=Oki(Vki,null).apply(null,o)})}function ydc(){let e=Symbol("Singular"),t={registry:{}},r=$Et.bind(null,t,e);return Mki(r,t,e),r}function bdc(){let e={registry:{}},t=$Et.bind(null,e);return Mki(t,e),t}var Hki={Singular:ydc,Collection:bdc};var Edc="0.0.0-development",Sdc=`octokit-endpoint.js/${Edc} ${Vce()}`,vdc={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Sdc},mediaType:{format:""}};function Bdc(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function wdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Xki(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{wdc(t[n])?n in e?r[n]=Xki(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Yki(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gxr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=Bdc(r.headers),Yki(r),Yki(r.headers);let n=Xki(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function Tdc(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var Rdc=/\{[^}]+\}/g;function Ndc(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Ddc(e){let t=e.match(Rdc);return t?t.map(Ndc).reduce((r,n)=>r.concat(n),[]):[]}function Qki(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Jki(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function eDe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function uUe(e,t,r){return t=e==="+"||e==="#"?Jki(t):eDe(t),r?eDe(r)+"="+t:t}function $Ne(e){return e!=null}function uxr(e){return e===";"||e==="&"||e==="?"}function kdc(e,t,r,n){var a=e[r],o=[];if($Ne(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(uUe(t,a,uxr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter($Ne).forEach(function(l){o.push(uUe(t,l,uxr(t)?r:""))}):Object.keys(a).forEach(function(l){$Ne(a[l])&&o.push(uUe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter($Ne).forEach(function(A){l.push(uUe(t,A))}):Object.keys(a).forEach(function(A){$Ne(a[A])&&(l.push(eDe(A)),l.push(uUe(t,a[A].toString())))}),uxr(t)?o.push(eDe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?$Ne(a)&&o.push(eDe(r)):a===""&&(t==="&"||t==="?")?o.push(eDe(r)+"="):a===""&&o.push("");return o}function xdc(e){return{expand:Gdc.bind(null,e)}}function Gdc(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(kdc(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return Jki(o)}),e==="/"?e:e.replace(/\/$/,"")}function Uki(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=Qki(e,["method","baseUrl","url","headers","request","mediaType"]),l=Ddc(r);r=xdc(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=Qki(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=Tdc(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function Fdc(e,t,r){return Uki(gxr(e,t,r))}function Kki(e,t){let r=gxr(e,t),n=Fdc.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Kki.bind(null,r),merge:gxr.bind(null,r),parse:Uki})}var jki=Kki(null,vdc);var ACe=class extends Error{name;status;request;response;constructor(t,r,n){super(t),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0),"response"in n&&(this.response=n.response);let a=Object.assign({},n.request);n.request.headers.authorization&&(a.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a}};var Zdc="0.0.0-development",Ldc={headers:{"user-agent":`octokit-request.js/${Zdc} ${Vce()}`}};function Vdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function zki(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,a=Vdc(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([b,E])=>[b,String(E)])),l;try{l=await t(e.url,{method:e.method,body:a,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(b){let E="Unknown Error";if(b instanceof Error){if(b.name==="AbortError")throw b.status=500,b;E=b.message,b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause))}let N=new ACe(E,500,{request:e});throw N.cause=b,N}let A=l.status,f=l.url,I={};for(let[b,E]of l.headers)I[b]=E;let C={url:f,status:A,headers:I,data:""};if("deprecation"in I){let b=I.link&&I.link.match(/<([^>]+)>; rel="deprecation"/),E=b&&b.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${I.sunset}${E?`. See ${E}`:""}`)}if(A===204||A===205)return C;if(e.method==="HEAD"){if(A<400)return C;throw new ACe(l.statusText,A,{response:C,request:e})}if(A===304)throw C.data=await Axr(l),new ACe("Not modified",A,{response:C,request:e});if(A>=400)throw C.data=await Axr(l),new ACe(Pdc(C.data),A,{response:C,request:e});return C.data=n?await Axr(l):l.body,C}async function Axr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():e.arrayBuffer()}function Pdc(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(r=>JSON.stringify(r)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dxr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return zki(r.parse(l));let A=(f,I)=>zki(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:dxr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:dxr.bind(null,r)})}var gUe=dxr(jki,Ldc);var Wdc="0.0.0-development";function Odc(e){return`Request failed due to following response errors: `+e.errors.map(t=>` - ${t.message}`).join(` -`)}var Odc=class extends Error{constructor(e,t,r){super(Wdc(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},Mdc=["method","baseUrl","url","headers","request","query","mediaType"],Hdc=["query","method","url"],qki=/\/api\/v3\/?$/;function Ydc(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(Hdc.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>Mdc.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return qki.test(o)&&(a.url=o.replace(qki,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Odc(a,A,l.data)}return l.data.data})}function pxr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>Ydc(r,a,o),{defaults:pxr.bind(null,r),endpoint:r.endpoint})}var cFu=pxr(gUe,{headers:{"user-agent":`octokit-graphql.js/${Pdc} ${Vce()}`},method:"POST",url:"/graphql"});function $ki(e){return pxr(e,{method:"POST",url:"/graphql"})}var Qdc=/^v1\./,Xdc=/^ghs_/,Jdc=/^ghu_/;async function Udc(e){let t=e.split(/\./).length===3,r=Qdc.test(e)||Xdc.test(e),n=Jdc.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function Kdc(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function jdc(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=Kdc(e),t(a)}var e1t=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(Udc.bind(null,t),{hook:jdc.bind(null,t)})};var fxr="6.1.2";var exi=()=>{},zdc=console.warn.bind(console),qdc=console.error.bind(console),txi=`octokit-core.js/${fxr} ${Vce()}`,t1t=class{static VERSION=fxr;static defaults(t){return class extends this{constructor(...n){let a=n[0]||{};if(typeof t=="function"){super(t(a));return}super(Object.assign({},t,a,a.userAgent&&t.userAgent?{userAgent:`${a.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(a=>!r.includes(a)))}}constructor(t={}){let r=new Hki.Collection,n={baseUrl:gUe.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${txi}`:txi,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=gUe.defaults(n),this.graphql=$ki(this.request).defaults(n),this.log=Object.assign({debug:exi,info:exi,warn:zdc,error:qdc},t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...l}=t,A=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:l},t.auth));r.wrap("request",A.hook),this.auth=A}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=e1t(t.auth);r.wrap("request",o.hook),this.auth=o}let a=this.constructor;for(let o=0;o{e.log.debug("request",r);let n=Date.now(),a=e.request.endpoint.parse(r),o=a.url.replace(r.baseUrl,"");return t(r).then(l=>{let A=l.headers["x-github-request-id"];return e.log.info(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l}).catch(l=>{let A=l.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l})})}Ixr.VERSION=rxi;var $dc="0.0.0-development";function epc(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function hxr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=epc(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function nxi(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),ixi(e,[],hxr(e,t,r)[Symbol.asyncIterator](),n)}function ixi(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:ixi(e,t,r,n)})}var vFu=Object.assign(nxi,{iterator:hxr});function mxr(e){return{paginate:Object.assign(nxi.bind(null,e),{iterator:hxr.bind(null,e)})}}mxr.VERSION=$dc;var Cxr="13.2.6";var tpc={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},sxi=tpc;var dCe=new Map;for(let[e,t]of Object.entries(sxi))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);dCe.has(e)||dCe.set(e,new Map),dCe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var rpc={has({scope:e},t){return dCe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...dCe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=dCe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=npc(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function _xr(e){let t={};for(let r of dCe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},rpc);return t}function npc(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function ipc(e){return{rest:_xr(e)}}ipc.VERSION=Cxr;function yxr(e){let t=_xr(e);return{...t,rest:t}}yxr.VERSION=Cxr;var oxi="21.0.2";var axi=t1t.plugin(Ixr,yxr,mxr).defaults({userAgent:`octokit-rest.js/${oxi}`});var cxi=function(){if(!process.env.GITHUB_ACTION)throw new Error("[@octokit/auth-action] `GITHUB_ACTION` environment variable is not set. @octokit/auth-action is meant to be used in GitHub Actions only.");let t=[process.env.GITHUB_TOKEN,process.env.INPUT_GITHUB_TOKEN,process.env.INPUT_TOKEN].filter(Boolean);if(t.length===0)throw new Error("[@octokit/auth-action] `GITHUB_TOKEN` variable is not set. It must be set on either `env:` or `with:`. See https://github.com/octokit/auth-action.js#createactionauth");if(t.length>1)throw new Error("[@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth");let r=t.pop();return e1t(r)};var r1t=class{client;constructor(t){this.client=new axi({auth:t.token,authStrategy:cxi})}async create(t){let{owner:r,repo:n,tag_name:a,name:o,make_latest:l,draft:A,body:f}=t;return(await this.client.repos.createRelease({owner:r,repo:n,tag_name:a,draft:A,make_latest:l?"true":"false",name:o,body:f})).status}};import spc from"node:assert/strict";var lxi=e=>{console.debug("Repository URL:",e);let t=e.match(/github\.com[/:](.+?)\/(.+?)(?:\.git|$)/);spc.ok(t,"URL does not match pattern");let[,r,n]=t;return{organization:r,repository:n}};var apc=422,cpc='"resource":"Release"',lpc='"code":"already_exists"',upc='"field":"tag_name"',gpc=e=>{let t=e;return t.status===apc&&typeof t.message=="string"&&t.message.includes(cpc)&&t.message.includes(lpc)&&t.message.includes(upc)},n1t=class extends uxi.BaseCommand{static paths=[["release","create"]];async execute(){let t=await Axi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await pxi.Project.find(t,this.context.cwd);if(!n)throw new gxi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dxi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Creating release",async()=>{let l=process.env.GITHUB_TOKEN;AUe.ok(l,"GitHub Token is missing");let A="",f=n.manifest.name?.scope;f&&(A+=`@${f}/`);let I=n.manifest.name?.name;AUe.ok(I,"Missing workspace name");let{version:C}=n.manifest;AUe.ok(C,"Missing version"),A+=`${I}`;let E=await new qve().generate({packageName:A,version:C,path:this.context.cwd}),N=new r1t({token:l}),B,F;try{({repository:F,organization:B}=lxi(opc("git remote get-url origin",{encoding:"utf-8"})))}catch{[B,F]=process.env.GITHUB_REPOSITORY?.split("/")??["",""]}AUe.ok(B,"Could not get url of the repo"),AUe.ok(F,"Could not get url of the repo");let Q=`${A}@${C}`;try{await N.create({draft:!1,make_latest:!0,name:Q,tag_name:Q,body:E,owner:B,repo:F})}catch(X){if(gpc(X)){o.reportInfo(null,`Release ${Q} already exists; skipping`);return}throw X}})})).exitCode()}};var qFi=Nt(el(),1),$Fi=Nt(el(),1),eZi=Nt(Bn(),1),tZi=Nt(Bn(),1),rZi=Nt(Bn(),1),WGr=Nt(no(),1),OGr=Nt(no(),1);$c();$c();var gDe=Nt(Bn(),1),OFi=Nt(Bn(),1),FGr=Nt(no(),1),xGr=Nt(no(),1),MFi=Nt(TW(),1),HFi=Nt(TGr(),1);var nmc="feat",imc=": ",smc="(",omc=")",FFi="!",amc=".",cmc=["BREAKING CHANGE:","BREAKING CHANGE ","BREAKING-CHANGE:","BREAKING-CHANGE "],lmc=/^(?:[A-Za-z0-9-]+|BREAKING CHANGE)(?:: | #).+/,RGr={patch:0,minor:1,major:2},NGr=e=>Object.hasOwn(RGr,e),VFi=(e,t)=>RGr[t]>RGr[e]?t:e,kGr=(e,t)=>e===void 0?t:NGr(e)?VFi(e,t):e,G1t=(e,t)=>e===void 0?t:NGr(e)?NGr(t)?kGr(e,t):t:e,DGr=e=>e.relativeCwd===amc,PFi=(e,t)=>e===t.relativeCwd||e.startsWith(`${t.relativeCwd}/`),umc=(e,t)=>e.relativeCwd===t.relativeCwd,gmc=(e,t)=>umc(e,t)?!1:DGr(e)?!DGr(t):t.relativeCwd.startsWith(`${e.relativeCwd}/`),ZFi=(e,t,r)=>r.some(n=>gmc(t,n)&&PFi(e,n)),Amc=(e,t,r)=>(DGr(t)||PFi(e,t))&&!ZFi(e,t,r),dmc=e=>e.length>0&&[...e].every(t=>t>="a"&&t<="z"),LFi=e=>e.trim().length===0,pmc=e=>lmc.test(e),fmc=e=>{let t=e.split(` -`).map(a=>a.replace("\r",""));for(;t.length>0&&LFi(t[t.length-1]);)t.pop();let r=t.length;for(;r>0&&!LFi(t[r-1]);)r-=1;if(r===0||r===t.length)return[];let n=t.slice(r);return pmc(n[0])?n:[]},Imc=e=>fmc(e).some(t=>cmc.some(r=>t.startsWith(r))),hmc=e=>{let t=e.indexOf(imc);if(t<1)return;let r=e.slice(0,t),n=r.endsWith(FFi);n&&(r=r.slice(0,-FFi.length));let a=r.indexOf(smc);if(a>=0){if(!r.endsWith(omc))return;r=r.slice(0,a)}if(dmc(r))return{type:r,breaking:n}},mmc=e=>{let[t=""]=e.split(` -`,1),r=hmc(t.replace("\r",""));if(r)return r.breaking||Imc(e)?"major":r.type===nmc?"minor":"patch"},WFi=(e,t,r=e)=>{let n=new Map;for(let a of t){let o=mmc(a.message);if(o)for(let l of e){if(!a.files.some(f=>Amc(f,l,r)))continue;let A=n.get(l.ident);n.set(l.ident,{workspace:l,strategy:A?VFi(A.strategy,o):o})}}return[...n.values()].sort((a,o)=>a.workspace.relativeCwd.localeCompare(o.workspace.relativeCwd))};var Cmc="origin/HEAD",_mc="HEAD",ymc=`${Cmc}..${_mc}`,bmc="ENOENT",YFi="decline",GGr=2,Emc=e=>e==="release"||e==="decline",Smc=(e,t)=>typeof e=="object"&&e!==null&&"code"in e&&e.code===t,QFi=e=>e.manifest.name?OFi.structUtils.stringifyIdent(e.manifest.name):void 0,XFi=e=>e.relativeCwd!=="."&&!!e.manifest.version&&!!QFi(e),ZGr=e=>{let t=QFi(e);if(!(!t||!XFi(e)))return{ident:t,relativeCwd:e.relativeCwd}},vmc=e=>({relativeCwd:e.relativeCwd}),Bmc=e=>[e.filename,e.previous_filename].filter(t=>!!t),JFi=e=>({message:e.data.commit.message,files:[...new Set((e.data.files??[]).flatMap(Bmc))]}),wmc=async()=>(await Pmt()).map(JFi),Tmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--reverse",t],{cwd:e.cwd,strict:!0});return r.split(/\r?\n/).filter(Boolean)},Rmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["show","--format=%B","--no-patch","--max-count=1",t],{cwd:e.cwd,strict:!0});return r},Nmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--parents","-n","1",t],{cwd:e.cwd,strict:!0}),[,...n]=r.trim().split(" ").filter(Boolean);return n},UFi=(e,t)=>e.find(r=>!t.has(r))??e[0],Dmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["diff-tree","--no-commit-id","--name-only","-r","--root","--no-renames","-z",t],{cwd:e.cwd,strict:!0});return r.split("\0").map(n=>n.trim()).filter(Boolean)},kmc=async(e,t,r)=>{let n=UFi(await Nmc(e,t),r);if(!n)return Dmc(e,t);let{stdout:a}=await gDe.execUtils.execvp("git",["diff","--name-only","--no-renames","-z",n,t],{cwd:e.cwd,strict:!0});return[...new Set(a.split("\0").map(o=>o.trim()).filter(Boolean))]},xmc=async(e,t,r)=>({message:await Rmc(e,t),files:await kmc(e,t,r)}),Gmc=async(e,t)=>{let r=await Tmc(e,t),n=new Set(r);return Promise.all(r.map(async a=>xmc(e,a,n)))},LGr=async(e,t)=>t===void 0&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?wmc():Gmc(e,t??ymc),KFi=e=>{let t=(0,MFi.parseSyml)(e),r=new Map;for(let n of t.declined??[])typeof n=="string"&&r.set(n,G1t(r.get(n),YFi));for(let[n,a]of Object.entries(t.releases??{}))typeof a=="string"&&r.set(n,G1t(r.get(n),a));return r},VGr=async e=>{let t=e.get("deferredVersionFolder"),r=new Map,n;try{n=await xGr.xfs.readdirPromise(t)}catch(a){if(Smc(a,bmc))return r;throw a}for(let a of n){if(!a.endsWith(".yml"))continue;let o=FGr.ppath.join(t,a),l=await xGr.xfs.readFilePromise(o,"utf8"),A=KFi(l);for(let[f,I]of A)r.set(f,G1t(r.get(f),I))}return r},Fmc=async e=>{let t=await VGr(e);return new Set([...t.entries()].filter(([,r])=>r===YFi).map(([r])=>r))},Zmc=(e,t)=>{let r=FGr.ppath.resolve(e.cwd,t.workspace.relativeCwd),n=e.workspacesByCwd.get(r);if(!n)throw new Error(`Could not resolve release workspace "${t.workspace.ident}"`);return{ident:t.workspace.ident,relativeCwd:t.workspace.relativeCwd,decision:t.decision,private:n.manifest.private}},Lmc=e=>{let t=ZGr(e),{version:r}=e.manifest;if(!(!t||!r))return{workspace:t,decision:"decline"}},Vmc=(e,t,r)=>{for(let n of e.workspaces){let a=Lmc(n);!a||!r.has(a.workspace.ident)||t.has(a.workspace.ident)||t.set(a.workspace.ident,a)}},Pmc=async(e,t=new Set)=>{let r=await HFi.versionUtils.resolveVersionFiles(e),n=new Map;for(let[a,o]of r){let l=ZGr(a);!l||!o||n.set(l.ident,{workspace:l,decision:"release"})}return Vmc(e,n,t),n},Wmc=(e,t,r)=>{for(let n of t)if(!r.has(n.workspace.ident))throw new Error(`Release plan requires deferred target version for "${n.workspace.ident}". Run \`yarn release version defer\` before \`yarn release plan create\`.`);return{schemaVersion:GGr,workspaces:[...r.values()].sort((n,a)=>n.workspace.relativeCwd.localeCompare(a.workspace.relativeCwd)).map(n=>Zmc(e,n))}},PGr=(e,t)=>{let r=e.workspaces.map(ZGr).filter(a=>!!a),n=e.workspaces.map(vmc);return WFi(r,t,n)},jFi=async(e,t,r)=>{let n=await LGr(e,r),a=PGr(e,n),o=await Fmc(t),l=await Pmc(e,o);return Wmc(e,a,l)},Omc=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.ident=="string"&&typeof t.relativeCwd=="string"&&Emc(t.decision)&&typeof t.private=="boolean"},zFi=e=>{let t=JSON.parse(e);if(t.schemaVersion!==GGr||!Array.isArray(t.workspaces)||!t.workspaces.every(Omc))throw new Error("Invalid release plan");return{schemaVersion:GGr,workspaces:t.workspaces}};var F1t=class extends qFi.BaseCommand{static paths=[["release","plan","create"]];static usage=_C.Usage({description:"create a Raijin release workspace selection",details:` +`)}var Mdc=class extends Error{constructor(e,t,r){super(Odc(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},Hdc=["method","baseUrl","url","headers","request","query","mediaType"],Ydc=["query","method","url"],qki=/\/api\/v3\/?$/;function Qdc(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(Ydc.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>Hdc.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return qki.test(o)&&(a.url=o.replace(qki,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Mdc(a,A,l.data)}return l.data.data})}function pxr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>Qdc(r,a,o),{defaults:pxr.bind(null,r),endpoint:r.endpoint})}var lFu=pxr(gUe,{headers:{"user-agent":`octokit-graphql.js/${Wdc} ${Vce()}`},method:"POST",url:"/graphql"});function $ki(e){return pxr(e,{method:"POST",url:"/graphql"})}var Xdc=/^v1\./,Jdc=/^ghs_/,Udc=/^ghu_/;async function Kdc(e){let t=e.split(/\./).length===3,r=Xdc.test(e)||Jdc.test(e),n=Udc.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function jdc(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function zdc(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=jdc(e),t(a)}var e1t=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(Kdc.bind(null,t),{hook:zdc.bind(null,t)})};var fxr="6.1.2";var exi=()=>{},qdc=console.warn.bind(console),$dc=console.error.bind(console),txi=`octokit-core.js/${fxr} ${Vce()}`,t1t=class{static VERSION=fxr;static defaults(t){return class extends this{constructor(...n){let a=n[0]||{};if(typeof t=="function"){super(t(a));return}super(Object.assign({},t,a,a.userAgent&&t.userAgent?{userAgent:`${a.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(a=>!r.includes(a)))}}constructor(t={}){let r=new Hki.Collection,n={baseUrl:gUe.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${txi}`:txi,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=gUe.defaults(n),this.graphql=$ki(this.request).defaults(n),this.log=Object.assign({debug:exi,info:exi,warn:qdc,error:$dc},t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...l}=t,A=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:l},t.auth));r.wrap("request",A.hook),this.auth=A}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=e1t(t.auth);r.wrap("request",o.hook),this.auth=o}let a=this.constructor;for(let o=0;o{e.log.debug("request",r);let n=Date.now(),a=e.request.endpoint.parse(r),o=a.url.replace(r.baseUrl,"");return t(r).then(l=>{let A=l.headers["x-github-request-id"];return e.log.info(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l}).catch(l=>{let A=l.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l})})}Ixr.VERSION=rxi;var epc="0.0.0-development";function tpc(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function hxr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=tpc(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function nxi(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),ixi(e,[],hxr(e,t,r)[Symbol.asyncIterator](),n)}function ixi(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:ixi(e,t,r,n)})}var BFu=Object.assign(nxi,{iterator:hxr});function mxr(e){return{paginate:Object.assign(nxi.bind(null,e),{iterator:hxr.bind(null,e)})}}mxr.VERSION=epc;var Cxr="13.2.6";var rpc={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},sxi=rpc;var dCe=new Map;for(let[e,t]of Object.entries(sxi))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);dCe.has(e)||dCe.set(e,new Map),dCe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var npc={has({scope:e},t){return dCe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...dCe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=dCe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=ipc(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function _xr(e){let t={};for(let r of dCe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},npc);return t}function ipc(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function spc(e){return{rest:_xr(e)}}spc.VERSION=Cxr;function yxr(e){let t=_xr(e);return{...t,rest:t}}yxr.VERSION=Cxr;var oxi="21.0.2";var axi=t1t.plugin(Ixr,yxr,mxr).defaults({userAgent:`octokit-rest.js/${oxi}`});var cxi=function(){if(!process.env.GITHUB_ACTION)throw new Error("[@octokit/auth-action] `GITHUB_ACTION` environment variable is not set. @octokit/auth-action is meant to be used in GitHub Actions only.");let t=[process.env.GITHUB_TOKEN,process.env.INPUT_GITHUB_TOKEN,process.env.INPUT_TOKEN].filter(Boolean);if(t.length===0)throw new Error("[@octokit/auth-action] `GITHUB_TOKEN` variable is not set. It must be set on either `env:` or `with:`. See https://github.com/octokit/auth-action.js#createactionauth");if(t.length>1)throw new Error("[@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth");let r=t.pop();return e1t(r)};var r1t=class{client;constructor(t){this.client=new axi({auth:t.token,authStrategy:cxi})}async create(t){let{owner:r,repo:n,tag_name:a,name:o,make_latest:l,draft:A,body:f}=t;return(await this.client.repos.createRelease({owner:r,repo:n,tag_name:a,draft:A,make_latest:l?"true":"false",name:o,body:f})).status}};import opc from"node:assert/strict";var lxi=e=>{console.debug("Repository URL:",e);let t=e.match(/github\.com[/:](.+?)\/(.+?)(?:\.git|$)/);opc.ok(t,"URL does not match pattern");let[,r,n]=t;return{organization:r,repository:n}};var cpc=422,lpc='"resource":"Release"',upc='"code":"already_exists"',gpc='"field":"tag_name"',Apc=e=>{let t=e;return t.status===cpc&&typeof t.message=="string"&&t.message.includes(lpc)&&t.message.includes(upc)&&t.message.includes(gpc)},n1t=class extends uxi.BaseCommand{static paths=[["release","create"]];async execute(){let t=await Axi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await pxi.Project.find(t,this.context.cwd);if(!n)throw new gxi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dxi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Creating release",async()=>{let l=process.env.GITHUB_TOKEN;AUe.ok(l,"GitHub Token is missing");let A="",f=n.manifest.name?.scope;f&&(A+=`@${f}/`);let I=n.manifest.name?.name;AUe.ok(I,"Missing workspace name");let{version:C}=n.manifest;AUe.ok(C,"Missing version"),A+=`${I}`;let E=await new qve().generate({packageName:A,version:C,path:this.context.cwd}),N=new r1t({token:l}),B,F;try{({repository:F,organization:B}=lxi(apc("git remote get-url origin",{encoding:"utf-8"})))}catch{[B,F]=process.env.GITHUB_REPOSITORY?.split("/")??["",""]}AUe.ok(B,"Could not get url of the repo"),AUe.ok(F,"Could not get url of the repo");let Q=`${A}@${C}`;try{await N.create({draft:!1,make_latest:!0,name:Q,tag_name:Q,body:E,owner:B,repo:F})}catch(X){if(Apc(X)){o.reportInfo(null,`Release ${Q} already exists; skipping`);return}throw X}})})).exitCode()}};var qFi=Nt(el(),1),$Fi=Nt(el(),1),eZi=Nt(Bn(),1),tZi=Nt(Bn(),1),rZi=Nt(Bn(),1),WGr=Nt(no(),1),OGr=Nt(no(),1);$c();$c();var gDe=Nt(Bn(),1),OFi=Nt(Bn(),1),FGr=Nt(no(),1),xGr=Nt(no(),1),MFi=Nt(TW(),1),HFi=Nt(TGr(),1);var imc="feat",smc=": ",omc="(",amc=")",FFi="!",cmc=".",lmc=["BREAKING CHANGE:","BREAKING CHANGE ","BREAKING-CHANGE:","BREAKING-CHANGE "],umc=/^(?:[A-Za-z0-9-]+|BREAKING CHANGE)(?:: | #).+/,RGr={patch:0,minor:1,major:2},NGr=e=>Object.hasOwn(RGr,e),VFi=(e,t)=>RGr[t]>RGr[e]?t:e,kGr=(e,t)=>e===void 0?t:NGr(e)?VFi(e,t):e,G1t=(e,t)=>e===void 0?t:NGr(e)?NGr(t)?kGr(e,t):t:e,DGr=e=>e.relativeCwd===cmc,PFi=(e,t)=>e===t.relativeCwd||e.startsWith(`${t.relativeCwd}/`),gmc=(e,t)=>e.relativeCwd===t.relativeCwd,Amc=(e,t)=>gmc(e,t)?!1:DGr(e)?!DGr(t):t.relativeCwd.startsWith(`${e.relativeCwd}/`),ZFi=(e,t,r)=>r.some(n=>Amc(t,n)&&PFi(e,n)),dmc=(e,t,r)=>(DGr(t)||PFi(e,t))&&!ZFi(e,t,r),pmc=e=>e.length>0&&[...e].every(t=>t>="a"&&t<="z"),LFi=e=>e.trim().length===0,fmc=e=>umc.test(e),Imc=e=>{let t=e.split(` +`).map(a=>a.replace("\r",""));for(;t.length>0&&LFi(t[t.length-1]);)t.pop();let r=t.length;for(;r>0&&!LFi(t[r-1]);)r-=1;if(r===0||r===t.length)return[];let n=t.slice(r);return fmc(n[0])?n:[]},hmc=e=>Imc(e).some(t=>lmc.some(r=>t.startsWith(r))),mmc=e=>{let t=e.indexOf(smc);if(t<1)return;let r=e.slice(0,t),n=r.endsWith(FFi);n&&(r=r.slice(0,-FFi.length));let a=r.indexOf(omc);if(a>=0){if(!r.endsWith(amc))return;r=r.slice(0,a)}if(pmc(r))return{type:r,breaking:n}},Cmc=e=>{let[t=""]=e.split(` +`,1),r=mmc(t.replace("\r",""));if(r)return r.breaking||hmc(e)?"major":r.type===imc?"minor":"patch"},WFi=(e,t,r=e)=>{let n=new Map;for(let a of t){let o=Cmc(a.message);if(o)for(let l of e){if(!a.files.some(f=>dmc(f,l,r)))continue;let A=n.get(l.ident);n.set(l.ident,{workspace:l,strategy:A?VFi(A.strategy,o):o})}}return[...n.values()].sort((a,o)=>a.workspace.relativeCwd.localeCompare(o.workspace.relativeCwd))};var _mc="origin/HEAD",ymc="HEAD",bmc=`${_mc}..${ymc}`,Emc="ENOENT",YFi="decline",GGr=2,Smc=e=>e==="release"||e==="decline",vmc=(e,t)=>typeof e=="object"&&e!==null&&"code"in e&&e.code===t,QFi=e=>e.manifest.name?OFi.structUtils.stringifyIdent(e.manifest.name):void 0,XFi=e=>e.relativeCwd!=="."&&!!e.manifest.version&&!!QFi(e),ZGr=e=>{let t=QFi(e);if(!(!t||!XFi(e)))return{ident:t,relativeCwd:e.relativeCwd}},Bmc=e=>({relativeCwd:e.relativeCwd}),wmc=e=>[e.filename,e.previous_filename].filter(t=>!!t),JFi=e=>({message:e.data.commit.message,files:[...new Set((e.data.files??[]).flatMap(wmc))]}),Tmc=async()=>(await Pmt()).map(JFi),Rmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--reverse",t],{cwd:e.cwd,strict:!0});return r.split(/\r?\n/).filter(Boolean)},Nmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["show","--format=%B","--no-patch","--max-count=1",t],{cwd:e.cwd,strict:!0});return r},Dmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--parents","-n","1",t],{cwd:e.cwd,strict:!0}),[,...n]=r.trim().split(" ").filter(Boolean);return n},UFi=(e,t)=>e.find(r=>!t.has(r))??e[0],kmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["diff-tree","--no-commit-id","--name-only","-r","--root","--no-renames","-z",t],{cwd:e.cwd,strict:!0});return r.split("\0").map(n=>n.trim()).filter(Boolean)},xmc=async(e,t,r)=>{let n=UFi(await Dmc(e,t),r);if(!n)return kmc(e,t);let{stdout:a}=await gDe.execUtils.execvp("git",["diff","--name-only","--no-renames","-z",n,t],{cwd:e.cwd,strict:!0});return[...new Set(a.split("\0").map(o=>o.trim()).filter(Boolean))]},Gmc=async(e,t,r)=>({message:await Nmc(e,t),files:await xmc(e,t,r)}),Fmc=async(e,t)=>{let r=await Rmc(e,t),n=new Set(r);return Promise.all(r.map(async a=>Gmc(e,a,n)))},LGr=async(e,t)=>t===void 0&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?Tmc():Fmc(e,t??bmc),KFi=e=>{let t=(0,MFi.parseSyml)(e),r=new Map;for(let n of t.declined??[])typeof n=="string"&&r.set(n,G1t(r.get(n),YFi));for(let[n,a]of Object.entries(t.releases??{}))typeof a=="string"&&r.set(n,G1t(r.get(n),a));return r},VGr=async e=>{let t=e.get("deferredVersionFolder"),r=new Map,n;try{n=await xGr.xfs.readdirPromise(t)}catch(a){if(vmc(a,Emc))return r;throw a}for(let a of n){if(!a.endsWith(".yml"))continue;let o=FGr.ppath.join(t,a),l=await xGr.xfs.readFilePromise(o,"utf8"),A=KFi(l);for(let[f,I]of A)r.set(f,G1t(r.get(f),I))}return r},Zmc=async e=>{let t=await VGr(e);return new Set([...t.entries()].filter(([,r])=>r===YFi).map(([r])=>r))},Lmc=(e,t)=>{let r=FGr.ppath.resolve(e.cwd,t.workspace.relativeCwd),n=e.workspacesByCwd.get(r);if(!n)throw new Error(`Could not resolve release workspace "${t.workspace.ident}"`);return{ident:t.workspace.ident,relativeCwd:t.workspace.relativeCwd,decision:t.decision,private:n.manifest.private}},Vmc=e=>{let t=ZGr(e),{version:r}=e.manifest;if(!(!t||!r))return{workspace:t,decision:"decline"}},Pmc=(e,t,r)=>{for(let n of e.workspaces){let a=Vmc(n);!a||!r.has(a.workspace.ident)||t.has(a.workspace.ident)||t.set(a.workspace.ident,a)}},Wmc=async(e,t=new Set)=>{let r=await HFi.versionUtils.resolveVersionFiles(e),n=new Map;for(let[a,o]of r){let l=ZGr(a);!l||!o||n.set(l.ident,{workspace:l,decision:"release"})}return Pmc(e,n,t),n},Omc=(e,t,r)=>{for(let n of t)if(!r.has(n.workspace.ident))throw new Error(`Release plan requires deferred target version for "${n.workspace.ident}". Run \`yarn release version defer\` before \`yarn release plan create\`.`);return{schemaVersion:GGr,workspaces:[...r.values()].sort((n,a)=>n.workspace.relativeCwd.localeCompare(a.workspace.relativeCwd)).map(n=>Lmc(e,n))}},PGr=(e,t)=>{let r=e.workspaces.map(ZGr).filter(a=>!!a),n=e.workspaces.map(Bmc);return WFi(r,t,n)},jFi=async(e,t,r)=>{let n=await LGr(e,r),a=PGr(e,n),o=await Zmc(t),l=await Wmc(e,o);return Omc(e,a,l)},Mmc=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.ident=="string"&&typeof t.relativeCwd=="string"&&Smc(t.decision)&&typeof t.private=="boolean"},zFi=e=>{let t=JSON.parse(e);if(t.schemaVersion!==GGr||!Array.isArray(t.workspaces)||!t.workspaces.every(Mmc))throw new Error("Invalid release plan");return{schemaVersion:GGr,workspaces:t.workspaces}};var F1t=class extends qFi.BaseCommand{static paths=[["release","plan","create"]];static usage=_C.Usage({description:"create a Raijin release workspace selection",details:` The release selection records the fixed workspace set once, so later publish stages can route the same workspaces without recalculating changed workspaces. Target package versions remain owned by Yarn deferred versioning and are only validated here. Run it after yarn release version defer and before yarn version apply --all. `});output=Su.String("-o,--output");since=Su.String("--since");async execute(){let t=await eZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await tZi.Project.find(t,this.context.cwd);if(!n)throw new $Fi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=await jFi(r,t,this.since),o=`${JSON.stringify(a,null,2)} -`;if(!this.output)return this.context.stdout.write(o),0;let l=WGr.ppath.resolve(r.cwd,this.output);return(await rZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async f=>{await OGr.xfs.mkdirpPromise(WGr.ppath.dirname(l)),await OGr.xfs.writeFilePromise(l,o),f.reportInfo(null,`Release plan written to ${this.output}`)})).exitCode()}};var nZi=Nt(el(),1),iZi=Nt(el(),1),sZi=Nt(Bn(),1),oZi=Nt(Bn(),1),aZi=Nt(no(),1),cZi=Nt(no(),1);$c();$c();var Mmc=".raijin/release-plan.json",Hmc=(e,t)=>{let r=e.workspaces.filter(a=>a.decision!=="decline");if(r.length===0)return[];let n=["workspaces","foreach"];for(let a of r)n.push("--include",a.ident);return n.push("--all"),t.exclude&&n.push("--exclude",t.exclude),t.verbose&&n.push("--verbose"),t.parallel&&n.push("--parallel"),t.interlaced&&n.push("--interlaced"),t.publicOnly&&n.push("--no-private"),t.topological&&n.push("--topological"),t.topologicalDev&&n.push("--topological-dev"),t.jobs&&n.push("--jobs",t.jobs),n},Z1t=class extends nZi.BaseCommand{static paths=[["release","plan","foreach"]];static usage=_C.Usage({description:"run a command for workspaces listed in a Raijin release plan",details:` +`;if(!this.output)return this.context.stdout.write(o),0;let l=WGr.ppath.resolve(r.cwd,this.output);return(await rZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async f=>{await OGr.xfs.mkdirpPromise(WGr.ppath.dirname(l)),await OGr.xfs.writeFilePromise(l,o),f.reportInfo(null,`Release plan written to ${this.output}`)})).exitCode()}};var nZi=Nt(el(),1),iZi=Nt(el(),1),sZi=Nt(Bn(),1),oZi=Nt(Bn(),1),aZi=Nt(no(),1),cZi=Nt(no(),1);$c();$c();var Hmc=".raijin/release-plan.json",Ymc=(e,t)=>{let r=e.workspaces.filter(a=>a.decision!=="decline");if(r.length===0)return[];let n=["workspaces","foreach"];for(let a of r)n.push("--include",a.ident);return n.push("--all"),t.exclude&&n.push("--exclude",t.exclude),t.verbose&&n.push("--verbose"),t.parallel&&n.push("--parallel"),t.interlaced&&n.push("--interlaced"),t.publicOnly&&n.push("--no-private"),t.topological&&n.push("--topological"),t.topologicalDev&&n.push("--topological-dev"),t.jobs&&n.push("--jobs",t.jobs),n},Z1t=class extends nZi.BaseCommand{static paths=[["release","plan","foreach"]];static usage=_C.Usage({description:"run a command for workspaces listed in a Raijin release plan",details:` This command routes the fixed release workspace selection through Yarn workspaces foreach. Empty plans are no-ops, never broad workspace execution. - `});plan=Su.String("--plan",Mmc);exclude=Su.String("--exclude","");verbose=Su.Boolean("-v,--verbose",!1);parallel=Su.Boolean("-p,--parallel",!1);interlaced=Su.Boolean("-i,--interlaced",!1);publicOnly=Su.Boolean("--no-private",!1);topological=Su.Boolean("-t,--topological",!1);topologicalDev=Su.Boolean("--topological-dev",!1);jobs=Su.String("-j,--jobs");commandName=Su.String();args=Su.Proxy();async execute(){let t=await sZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oZi.Project.find(t,this.context.cwd);if(!n)throw new iZi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=aZi.ppath.resolve(r.cwd,this.plan),o=zFi(await cZi.xfs.readFilePromise(a,"utf8")),l=Hmc(o,{exclude:this.exclude,verbose:this.verbose,parallel:this.parallel,interlaced:this.interlaced,publicOnly:this.publicOnly,topological:this.topological,topologicalDev:this.topologicalDev,jobs:this.jobs});return l.length===0?0:this.cli.run([...l,this.commandName,...this.args],{cwd:r.cwd})}};var lZi=Nt(el(),1),uZi=Nt(el(),1),gZi=Nt(Bn(),1),AZi=Nt(Bn(),1),dZi=Nt(Bn(),1);$c();var L1t=class extends lZi.BaseCommand{static paths=[["release","version","defer"]];since=Su.String("--since");dryRun=Su.Boolean("--dry-run",!1);async execute(){let t=await gZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await AZi.Project.find(t,this.context.cwd);if(!n)throw new uZi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{let l=await LGr(r,this.since),A=PGr(r,l);if(!A.length){o.reportInfo(null,"No released workspaces need deferred version records");return}let f=await VGr(t);for(let{workspace:I,strategy:C}of A){let b=kGr(f.get(I.ident),C);if(o.reportInfo(null,`Deferring ${I.ident} as ${b}`),this.dryRun)continue;if(await this.cli.run(["workspace",I.ident,"version",b,"--deferred"],{cwd:r.cwd})>0)throw new Error(`Failed to defer ${I.ident} as ${b}`)}})).exitCode()}};var pZi={commands:[n1t,F1t,Z1t,L1t]};var MFr={};sI(MFr,{RendererBuildCommand:()=>$Ue,RendererDevCommand:()=>cKe,default:()=>Q9i});var VZi=Nt(el(),1),PZi=Nt(Bn(),1),WZi=Nt(Bn(),1),OZi=Nt(Bn(),1),jGr=Nt(Bn(),1),zGr=Nt(Bn(),1),MZi=Nt(Bn(),1),Jee=Nt(no(),1),uH=Nt(no(),1);import{PassThrough as LZi}from"node:stream";var HGr=Nt(Bn(),1),QGr=Nt(no(),1),ADe=Nt(no(),1),bCe=Nt(no(),1);import{pathToFileURL as SZi}from"node:url";var fZi="/dist/compiled/conf/index.js",IZi="/dist/compiled/webpack/bundle5.js",hZi="/dist/build/next-config-ts/require-hook.js",mZi="/node_modules/next/",CZi="/dist/server/dev/require-cache.js",_Zi="/dist/build/webpack-config.js";var Ymc="next-compiled-conf-require-cache-loader.mjs",Qmc=new Set(["--experimental-loader","--loader"]),Xmc="RAIJIN_NODE_LOADER",XGr="dist",JGr=".next",YGr="package.json",Jmc=".pnp.loader.mjs",yZi="public",qUe="src",bZi="npm:",Umc=/(?:^|@)npm:([^#@]+)/,vZi=16,Kmc=[[XGr],[qUe,JGr],[qUe,YGr]],jmc=[[XGr,YGr],[qUe,JGr,YGr]],zmc=[[qUe,JGr]],qmc=e=>e?.includes(".pnp.loader.mjs")??!1,EZi=` + `});plan=Su.String("--plan",Hmc);exclude=Su.String("--exclude","");verbose=Su.Boolean("-v,--verbose",!1);parallel=Su.Boolean("-p,--parallel",!1);interlaced=Su.Boolean("-i,--interlaced",!1);publicOnly=Su.Boolean("--no-private",!1);topological=Su.Boolean("-t,--topological",!1);topologicalDev=Su.Boolean("--topological-dev",!1);jobs=Su.String("-j,--jobs");commandName=Su.String();args=Su.Proxy();async execute(){let t=await sZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oZi.Project.find(t,this.context.cwd);if(!n)throw new iZi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=aZi.ppath.resolve(r.cwd,this.plan),o=zFi(await cZi.xfs.readFilePromise(a,"utf8")),l=Ymc(o,{exclude:this.exclude,verbose:this.verbose,parallel:this.parallel,interlaced:this.interlaced,publicOnly:this.publicOnly,topological:this.topological,topologicalDev:this.topologicalDev,jobs:this.jobs});return l.length===0?0:this.cli.run([...l,this.commandName,...this.args],{cwd:r.cwd})}};var lZi=Nt(el(),1),uZi=Nt(el(),1),gZi=Nt(Bn(),1),AZi=Nt(Bn(),1),dZi=Nt(Bn(),1);$c();var L1t=class extends lZi.BaseCommand{static paths=[["release","version","defer"]];since=Su.String("--since");dryRun=Su.Boolean("--dry-run",!1);async execute(){let t=await gZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await AZi.Project.find(t,this.context.cwd);if(!n)throw new uZi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{let l=await LGr(r,this.since),A=PGr(r,l);if(!A.length){o.reportInfo(null,"No released workspaces need deferred version records");return}let f=await VGr(t);for(let{workspace:I,strategy:C}of A){let b=kGr(f.get(I.ident),C);if(o.reportInfo(null,`Deferring ${I.ident} as ${b}`),this.dryRun)continue;if(await this.cli.run(["workspace",I.ident,"version",b,"--deferred"],{cwd:r.cwd})>0)throw new Error(`Failed to defer ${I.ident} as ${b}`)}})).exitCode()}};var pZi={commands:[n1t,F1t,Z1t,L1t]};var MFr={};sI(MFr,{RendererBuildCommand:()=>$Ue,RendererDevCommand:()=>cKe,default:()=>Q9i});var VZi=Nt(el(),1),PZi=Nt(Bn(),1),WZi=Nt(Bn(),1),OZi=Nt(Bn(),1),jGr=Nt(Bn(),1),zGr=Nt(Bn(),1),MZi=Nt(Bn(),1),Jee=Nt(no(),1),uH=Nt(no(),1);import{PassThrough as LZi}from"node:stream";var HGr=Nt(Bn(),1),QGr=Nt(no(),1),ADe=Nt(no(),1),bCe=Nt(no(),1);import{pathToFileURL as SZi}from"node:url";var fZi="/dist/compiled/conf/index.js",IZi="/dist/compiled/webpack/bundle5.js",hZi="/dist/build/next-config-ts/require-hook.js",mZi="/node_modules/next/",CZi="/dist/server/dev/require-cache.js",_Zi="/dist/build/webpack-config.js";var Qmc="next-compiled-conf-require-cache-loader.mjs",Xmc=new Set(["--experimental-loader","--loader"]),Jmc="RAIJIN_NODE_LOADER",XGr="dist",JGr=".next",YGr="package.json",Umc=".pnp.loader.mjs",yZi="public",qUe="src",bZi="npm:",Kmc=/(?:^|@)npm:([^#@]+)/,vZi=16,jmc=[[XGr],[qUe,JGr],[qUe,YGr]],zmc=[[XGr,YGr],[qUe,JGr,YGr]],qmc=[[qUe,JGr]],$mc=e=>e?.includes(".pnp.loader.mjs")??!1,EZi=` const pnpLoader = {} const NEXT_PACKAGE_PATH = ${JSON.stringify(mZi)} @@ -2600,42 +2600,42 @@ export async function load(url, context, nextLoad) { return result } -`.trimStart(),$mc=e=>e?EZi.replace("const pnpLoader = {}",`import * as pnpLoader from ${JSON.stringify(e)}`):EZi,BZi=e=>{if(!e)return null;let[t]=e.split("."),r=Number.parseInt(t,10);return Number.isNaN(r)?null:r},eCc=(e,t)=>ADe.ppath.join(e,...t),UGr=async(e,t)=>{await Promise.all(t.map(async r=>{let n=eCc(e,r);await bCe.xfs.existsPromise(n)&&await bCe.xfs.removePromise(n)}))},wZi=async e=>{await UGr(e,Kmc)},TZi=async e=>{await UGr(e,jmc)},RZi=async e=>{await UGr(e,zmc)},NZi=async e=>{let t=ADe.ppath.join(e,qUe,yZi);await bCe.xfs.existsPromise(t)&&await bCe.xfs.copyPromise(ADe.ppath.join(e,XGr,yZi),t)},DZi=(e,t)=>({...e,NEXT_TELEMETRY_DISABLED:"1",[Xmc]:t}),KGr=e=>{if(!e)return{nodeOptions:e,loader:void 0};let t=e.split(/\s+/).filter(Boolean);for(let r=0;r0?I.join(" "):void 0,loader:A}}return{nodeOptions:e,loader:void 0}},kZi=async(e,t)=>{let r=ADe.ppath.join(e,Jmc);return await bCe.xfs.existsPromise(r)?SZi(QGr.npath.fromPortablePath(r)).href:KGr(t).loader},tCc=e=>{let t=BZi(e);if(t!==null&&te.startsWith(bZi)?e.slice(bZi.length):decodeURIComponent(e).match(Umc)?.[1]??e,xZi=e=>{let t=HGr.structUtils.isVirtualLocator(e)?HGr.structUtils.devirtualizeLocator(e):e;return rCc(t.reference)},GZi=(e,t="next")=>{let r=BZi(e),n=["node",t,"build"];return tCc(e),r!==null&&r>=vZi&&n.push("--webpack"),n.push("src"),n},FZi=e=>{if(e!==0)throw new Error(`Renderer build failed with exit code ${e}`)},ZZi=async(e,t)=>{let r=ADe.ppath.join(e,Ymc);return await bCe.xfs.writeFilePromise(r,$mc(t)),SZi(QGr.npath.fromPortablePath(r)).href};var $Ue=class extends VZi.BaseCommand{static paths=[["renderer","build"]];async execute(){let t=await PZi.Configuration.find(this.context.cwd,this.context.plugins);await wZi(this.context.cwd);let{project:r,workspace:n}=await WZi.Project.find(t,this.context.cwd);if(!n)throw new Error("Renderer build must be executed from a workspace");let a=n.cwd;return await r.restoreInstallState(),(await OZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Renderer build",async()=>{let A=new LZi,f=new LZi;A.on("data",I=>{I.toString().split(` +`.trimStart(),eCc=e=>e?EZi.replace("const pnpLoader = {}",`import * as pnpLoader from ${JSON.stringify(e)}`):EZi,BZi=e=>{if(!e)return null;let[t]=e.split("."),r=Number.parseInt(t,10);return Number.isNaN(r)?null:r},tCc=(e,t)=>ADe.ppath.join(e,...t),UGr=async(e,t)=>{await Promise.all(t.map(async r=>{let n=tCc(e,r);await bCe.xfs.existsPromise(n)&&await bCe.xfs.removePromise(n)}))},wZi=async e=>{await UGr(e,jmc)},TZi=async e=>{await UGr(e,zmc)},RZi=async e=>{await UGr(e,qmc)},NZi=async e=>{let t=ADe.ppath.join(e,qUe,yZi);await bCe.xfs.existsPromise(t)&&await bCe.xfs.copyPromise(ADe.ppath.join(e,XGr,yZi),t)},DZi=(e,t)=>({...e,NEXT_TELEMETRY_DISABLED:"1",[Jmc]:t}),KGr=e=>{if(!e)return{nodeOptions:e,loader:void 0};let t=e.split(/\s+/).filter(Boolean);for(let r=0;r0?I.join(" "):void 0,loader:A}}return{nodeOptions:e,loader:void 0}},kZi=async(e,t)=>{let r=ADe.ppath.join(e,Umc);return await bCe.xfs.existsPromise(r)?SZi(QGr.npath.fromPortablePath(r)).href:KGr(t).loader},rCc=e=>{let t=BZi(e);if(t!==null&&te.startsWith(bZi)?e.slice(bZi.length):decodeURIComponent(e).match(Kmc)?.[1]??e,xZi=e=>{let t=HGr.structUtils.isVirtualLocator(e)?HGr.structUtils.devirtualizeLocator(e):e;return nCc(t.reference)},GZi=(e,t="next")=>{let r=BZi(e),n=["node",t,"build"];return rCc(e),r!==null&&r>=vZi&&n.push("--webpack"),n.push("src"),n},FZi=e=>{if(e!==0)throw new Error(`Renderer build failed with exit code ${e}`)},ZZi=async(e,t)=>{let r=ADe.ppath.join(e,Qmc);return await bCe.xfs.writeFilePromise(r,eCc(t)),SZi(QGr.npath.fromPortablePath(r)).href};var $Ue=class extends VZi.BaseCommand{static paths=[["renderer","build"]];async execute(){let t=await PZi.Configuration.find(this.context.cwd,this.context.plugins);await wZi(this.context.cwd);let{project:r,workspace:n}=await WZi.Project.find(t,this.context.cwd);if(!n)throw new Error("Renderer build must be executed from a workspace");let a=n.cwd;return await r.restoreInstallState(),(await OZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Renderer build",async()=>{let A=new LZi,f=new LZi;A.on("data",I=>{I.toString().split(` `).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),f.on("data",I=>{I.toString().split(` -`).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),await Jee.xfs.writeJsonPromise(uH.ppath.join(a,"src/package.json"),{type:"module"});try{let I=await Jee.xfs.mktempPromise(),C={binFolder:I,locator:n.anchoredLocator,project:r},b=await iC(C),{nodeOptions:E}=KGr(b.env.NODE_OPTIONS),N=await kZi(r.cwd,b.env.NODE_OPTIONS),F=(await MZi.scriptUtils.getWorkspaceAccessibleBinaries(n)).get("next");if(!F)throw new Error("Renderer build requires Next.js 16 or newer");let[Q,X]=F,ae=xZi(Q),ne=await ZZi(I,N),{executable:ce,env:fe}=await iC({...C,env:{NODE_OPTIONS:E},nodeLoader:ne}),{code:ue}=await zGr.execUtils.pipevp(ce,GZi(ae,X),{end:zGr.execUtils.EndStrategy.ErrorCode,cwd:a,stdin:this.context.stdin,stdout:A,stderr:f,env:DZi(fe,ne)});FZi(ue)}finally{await Jee.xfs.removePromise(uH.ppath.join(a,"src/package.json"))}}),await l.startTimerPromise("Copy standalone files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist"),uH.ppath.join(a,"src/.next/standalone",a.replace(`${t.projectCwd||""}/`,""),"src"))}),await l.startTimerPromise("Clean workspace manifests",async()=>{await TZi(a)}),await l.startTimerPromise("Copy static files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/static"),uH.ppath.join(a,"src/.next/static"))}),await l.startTimerPromise("Copy public assets",async()=>{await NZi(a)}),await l.startTimerPromise("Copy edge chunks files",async()=>{await Jee.xfs.existsPromise(uH.ppath.join(a,"src/.next/server/edge-chunks"))&&await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/server/edge-chunks"),uH.ppath.join(a,"src/.next/server/edge-chunks"))}),await l.startTimerPromise("Move server start files",async()=>{await Jee.xfs.movePromise(uH.ppath.join(a,"dist/server.js"),uH.ppath.join(a,"dist/index.js"))}),await l.startTimerPromise("Clean source build artifacts",async()=>{await RZi(a)})})).exitCode()}};var W9i=Nt(el(),1),O9i=Nt(Bn(),1),M9i=Nt(Bn(),1),t2t=Nt(no(),1),aKe=Nt(no(),1);$c();var H9i=Nt(sLi(),1),Y9i=Nt(P9i(),1);var cKe=class extends W9i.BaseCommand{static paths=[["renderer","dev"]];tunnel=Su.Boolean("--tunnel");https=Su.Boolean("--https");#e;async runTunnel(t,r){this.#e&&this.#e.close(),this.#e=await(0,Y9i.default)({host:t,port:r}),console.log("your url is: %s",this.#e.url)}startTunnel(t,r=3e3){this.runTunnel(t,r),process.stdin.on("data",n=>{n.toString().trim()==="rs"&&this.runTunnel(t,r)})}async execute(){let t=await O9i.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await M9i.Project.find(t,this.context.cwd),n=["next","dev","src"];if(this.https){if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.key")))throw new Error("Https key not found");if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.crt")))throw new Error("Https cert not found");n.push("--experimental-https"),n.push("--experimental-https-key",aKe.ppath.join(r.cwd,".config/certs/local/dev.key")),n.push("--experimental-https-cert",aKe.ppath.join(r.cwd,".config/certs/local/dev.crt"))}let a=await t2t.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r});if((0,H9i.default)(o,n,{stdio:"inherit",cwd:this.context.cwd,env:l}),this.tunnel){let A=r.getWorkspaceByCwd(this.context.cwd),{tunnel:f}=A.manifest.raw.tools||{};if(!f?.host)throw new Error("Tunnel host not configured");this.startTunnel(f.host,f.port)}}};var Q9i={commands:[$Ue,cKe]};var hVr={};sI(hVr,{AbstractServiceCommand:()=>qCe,ServiceBuildCommand:()=>YKe,ServiceDevCommand:()=>QKe,default:()=>rKi});var QUi=Nt(Bn(),1),XUi=Nt(Bn(),1),pVr=Nt(no(),1),JUi=Nt(Bn(),1),UUi=Nt(no(),1),KUi=Nt(Al(),1);var lKe=Nt(Al(),1),$9i=Nt(Ec(),1),eVi=Nt(Ec(),1);var X9i=Nt(Ec(),1),J9i=Nt(Ec(),1),K9i=Nt(Pc(),1),U9i=({service:e})=>{let[t,r]=(0,J9i.useState)(0);return(0,X9i.useEffect)(()=>{let n=({percent:a})=>{r(a)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,K9i.jsx)(JM,{value:t})};var HFr=Nt(Al(),1),YFr=Nt(Al(),1),j9i=Nt(Ec(),1),z9i=Nt(Ec(),1),wCe=Nt(Pc(),1),q9i=({service:e})=>{let[t,r]=(0,z9i.useState)("");return(0,j9i.useEffect)(()=>{let n=a=>{r(a.message)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,wCe.jsx)(HFr.Box,{flexDirection:"row",width:"100%",children:(0,wCe.jsxs)(HFr.Box,{flexGrow:1,children:[(0,wCe.jsx)(RG,{color:"cyan",children:"Service:"}),(0,wCe.jsx)(YFr.Text,{children:" "}),(0,wCe.jsx)(YFr.Text,{color:"white",children:t})]})})};var Pce=Nt(Pc(),1),r2t=({service:e})=>{let[t,r]=(0,$9i.useState)(!1);return(0,eVi.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Pce.jsx)(lKe.Box,{position:"relative",height:7,children:(0,Pce.jsxs)(lKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Pce.jsx)(lKe.Box,{children:(0,Pce.jsx)(q9i,{service:e})}),(0,Pce.jsx)(lKe.Box,{marginTop:1,marginBottom:1,children:(0,Pce.jsx)(U9i,{service:e})})]})})};var s0c="@atls/code-runtime/runtime-exec-argv",o0c=async()=>await import(s0c);var tVi=async e=>{let{createRuntimeExecArgv:t}=await o0c();return t(e)};import{readFile as b0c}from"node:fs/promises";import{writeFile as E0c}from"node:fs/promises";import{mkdtemp as S0c}from"node:fs/promises";import{tmpdir as v0c}from"node:os";import{join as gKe}from"node:path";import{readFile as l0c}from"node:fs/promises";import{join as u0c}from"node:path";import{readFile as a0c}from"node:fs/promises";import{join as c0c}from"node:path";var n2t=class{static async find(t){try{let{tools:r={}}=JSON.parse(await a0c(c0c(t,"package.json"),"utf-8"));return r}catch{return{}}}};var i2t=class{constructor(t){this.cwd=t}#e=[];#t=[];async loadPackageJson(){try{return JSON.parse(await l0c(u0c(this.cwd,"package.json"),"utf-8"))}catch{return{}}}async loadDependencies(){let{dependencies:t={}}=await this.loadPackageJson();return Object.keys(t)}async loadExternals(){let{service:t}=await n2t.find(this.cwd);return t?.externals||[]}async build(){return this.#e=await this.loadExternals(),this.#t=await this.loadDependencies(),this.externals}externals=({request:t},r)=>{t&&this.#t.includes(t)?r(void 0,t,"module"):t&&this.#e.includes(t)?r(void 0,t,"import"):r()}};import{existsSync as rVi}from"node:fs";import{readFileSync as g0c}from"node:fs";import{dirname as nVi}from"node:path";import{join as iVi}from"node:path";var s2t=new Map,uKe="/node_modules/",sVi="package.json",oVi="OptionalImportIgnorePlugin",A0c=e=>e?.some(t=>t.optional===!0)??!1,d0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a]=n;if(!a)return null;let o=a.startsWith("@")?2:1,l=n.slice(0,o);return l.length!==o||l.some(A=>!A)?null:`${t.slice(0,r+uKe.length)}${l.join("/")}`},p0c=e=>{if(e.startsWith(".")||e.startsWith("/"))return null;let[t,r]=e.split("/");return t?t.startsWith("@")?r?`${t}/${r}`:null:t:null},f0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a,o]=n;return a?a.startsWith("@")?o?`${a}/${o}`:null:a:null},I0c=e=>{let t=d0c(e);if(t){let n=iVi(t,sVi);if(rVi(n))return n}let r=e;for(;r!==nVi(r);){let n=iVi(r,sVi);if(rVi(n))return n;r=nVi(r)}return null},h0c=e=>{if(s2t.has(e))return s2t.get(e)??null;try{let t=JSON.parse(g0c(e,"utf-8"));return s2t.set(e,t),t}catch{return s2t.set(e,null),null}},m0c=(e,t)=>e.peerDependenciesMeta?.[t]?.optional===!0||!!e.optionalDependencies?.[t],C0c=(e,t,r=!1)=>{let n=p0c(e);if(!n||!f0c(t))return!1;let a=I0c(t);if(!a)return!1;let o=h0c(a);return o?r||m0c(o,n):!1},_0c=async(e,t,r)=>new Promise(n=>{e.resolve({},r,t,{},(a,o)=>{n(!a&&!!o)})}),y0c=async(e,t,r,n=!1)=>C0c(e,t,n)?!await _0c(r,e,t):!1,aVi=e=>({apply:t=>{t.hooks.normalModuleFactory.tap(oVi,r=>{r.hooks.beforeResolve.tapAsync(oVi,(n,a)=>{if(n.request.endsWith(".js.map")){a(null,!1);return}let o=r.getResolver("normal",{...n.resolveOptions??{},dependencyType:n.dependencyType});y0c(n.request,n.context,o,A0c(n.dependencies)).then(l=>{a(null,l?!1:void 0)}).catch(l=>{a(l)})})})}});var o2t=class{constructor(t,r,n){this.webpack=t;this.loaders=r;this.cwd=n}async build(t="production",r=[]){let n=gKe(await S0c(gKe(v0c(),"code-service-")),"tsconfig.json");await E0c(n,'{"include":["**/*"]}');let a=await this.getWorkspaceType(),l=["webpack/hot/poll?100",await new i2t(this.cwd).build()],A=this.createPlugins(t,r,a==="module");return{mode:t,bail:t==="production",target:"node",optimization:{minimize:!1},experiments:{outputModule:a==="module"},plugins:A,entry:{index:gKe(this.cwd,"src/index"),...t==="development"&&{hot:"webpack/hot/poll?100"}},node:{__dirname:!0,__filename:!1},output:{path:gKe(this.cwd,"dist"),filename:"[name].js",library:{type:a},chunkFormat:t==="development"?"commonjs":a,module:a==="module",clean:!1,assetModuleFilename:"assets/[name][ext]"},resolve:{extensionAlias:{".js":[".tsx",".ts",".js"],".jsx":[".tsx",".ts",".js"],".cjs":[".cjs",".cts"],".mjs":[".mjs",".mts"]},extensions:[".tsx",".ts",".js"],alias:{"class-transformer/storage":"class-transformer/cjs/storage"}},externals:l,externalsType:t==="production"?a==="module"?"import":"commonjs":"commonjs2",externalsPresets:{node:!0},devtool:t==="production"?"source-map":"eval-cheap-module-source-map",module:{rules:[{test:/(^.?|\.[^d]|[^.]d|[^.][^d])\.tsx?$/,use:{loader:this.loaders.tsLoader,options:{transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:n}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset/resource"},{test:/\.(png|svg|jpg|jpeg|gif)$/i,type:"asset/resource"},{test:/\.(md)$/i,type:"asset/resource"},{test:/\.node$/,use:this.loaders.nodeLoader}]}}}async getWorkspaceType(){try{let t=await b0c(gKe(this.cwd,"package.json"),"utf-8"),{type:r="commonjs"}=JSON.parse(t);return r}catch{return"module"}}createPlugins(t,r,n){let a=[aVi(t),...r];return n&&a.push(new this.webpack.BannerPlugin({banner:`import { createRequire } from 'node:module' +`).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),await Jee.xfs.writeJsonPromise(uH.ppath.join(a,"src/package.json"),{type:"module"});try{let I=await Jee.xfs.mktempPromise(),C={binFolder:I,locator:n.anchoredLocator,project:r},b=await iC(C),{nodeOptions:E}=KGr(b.env.NODE_OPTIONS),N=await kZi(r.cwd,b.env.NODE_OPTIONS),F=(await MZi.scriptUtils.getWorkspaceAccessibleBinaries(n)).get("next");if(!F)throw new Error("Renderer build requires Next.js 16 or newer");let[Q,X]=F,ae=xZi(Q),ne=await ZZi(I,N),{executable:ce,env:fe}=await iC({...C,env:{NODE_OPTIONS:E},nodeLoader:ne}),{code:ue}=await zGr.execUtils.pipevp(ce,GZi(ae,X),{end:zGr.execUtils.EndStrategy.ErrorCode,cwd:a,stdin:this.context.stdin,stdout:A,stderr:f,env:DZi(fe,ne)});FZi(ue)}finally{await Jee.xfs.removePromise(uH.ppath.join(a,"src/package.json"))}}),await l.startTimerPromise("Copy standalone files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist"),uH.ppath.join(a,"src/.next/standalone",a.replace(`${t.projectCwd||""}/`,""),"src"))}),await l.startTimerPromise("Clean workspace manifests",async()=>{await TZi(a)}),await l.startTimerPromise("Copy static files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/static"),uH.ppath.join(a,"src/.next/static"))}),await l.startTimerPromise("Copy public assets",async()=>{await NZi(a)}),await l.startTimerPromise("Copy edge chunks files",async()=>{await Jee.xfs.existsPromise(uH.ppath.join(a,"src/.next/server/edge-chunks"))&&await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/server/edge-chunks"),uH.ppath.join(a,"src/.next/server/edge-chunks"))}),await l.startTimerPromise("Move server start files",async()=>{await Jee.xfs.movePromise(uH.ppath.join(a,"dist/server.js"),uH.ppath.join(a,"dist/index.js"))}),await l.startTimerPromise("Clean source build artifacts",async()=>{await RZi(a)})})).exitCode()}};var W9i=Nt(el(),1),O9i=Nt(Bn(),1),M9i=Nt(Bn(),1),t2t=Nt(no(),1),aKe=Nt(no(),1);$c();var H9i=Nt(sLi(),1),Y9i=Nt(P9i(),1);var cKe=class extends W9i.BaseCommand{static paths=[["renderer","dev"]];tunnel=Su.Boolean("--tunnel");https=Su.Boolean("--https");#e;async runTunnel(t,r){this.#e&&this.#e.close(),this.#e=await(0,Y9i.default)({host:t,port:r}),console.log("your url is: %s",this.#e.url)}startTunnel(t,r=3e3){this.runTunnel(t,r),process.stdin.on("data",n=>{n.toString().trim()==="rs"&&this.runTunnel(t,r)})}async execute(){let t=await O9i.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await M9i.Project.find(t,this.context.cwd),n=["next","dev","src"];if(this.https){if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.key")))throw new Error("Https key not found");if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.crt")))throw new Error("Https cert not found");n.push("--experimental-https"),n.push("--experimental-https-key",aKe.ppath.join(r.cwd,".config/certs/local/dev.key")),n.push("--experimental-https-cert",aKe.ppath.join(r.cwd,".config/certs/local/dev.crt"))}let a=await t2t.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r});if((0,H9i.default)(o,n,{stdio:"inherit",cwd:this.context.cwd,env:l}),this.tunnel){let A=r.getWorkspaceByCwd(this.context.cwd),{tunnel:f}=A.manifest.raw.tools||{};if(!f?.host)throw new Error("Tunnel host not configured");this.startTunnel(f.host,f.port)}}};var Q9i={commands:[$Ue,cKe]};var hVr={};sI(hVr,{AbstractServiceCommand:()=>qCe,ServiceBuildCommand:()=>YKe,ServiceDevCommand:()=>QKe,default:()=>rKi});var QUi=Nt(Bn(),1),XUi=Nt(Bn(),1),pVr=Nt(no(),1),JUi=Nt(Bn(),1),UUi=Nt(no(),1),KUi=Nt(Al(),1);var lKe=Nt(Al(),1),$9i=Nt(Ec(),1),eVi=Nt(Ec(),1);var X9i=Nt(Ec(),1),J9i=Nt(Ec(),1),K9i=Nt(Pc(),1),U9i=({service:e})=>{let[t,r]=(0,J9i.useState)(0);return(0,X9i.useEffect)(()=>{let n=({percent:a})=>{r(a)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,K9i.jsx)(JM,{value:t})};var HFr=Nt(Al(),1),YFr=Nt(Al(),1),j9i=Nt(Ec(),1),z9i=Nt(Ec(),1),wCe=Nt(Pc(),1),q9i=({service:e})=>{let[t,r]=(0,z9i.useState)("");return(0,j9i.useEffect)(()=>{let n=a=>{r(a.message)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,wCe.jsx)(HFr.Box,{flexDirection:"row",width:"100%",children:(0,wCe.jsxs)(HFr.Box,{flexGrow:1,children:[(0,wCe.jsx)(RG,{color:"cyan",children:"Service:"}),(0,wCe.jsx)(YFr.Text,{children:" "}),(0,wCe.jsx)(YFr.Text,{color:"white",children:t})]})})};var Pce=Nt(Pc(),1),r2t=({service:e})=>{let[t,r]=(0,$9i.useState)(!1);return(0,eVi.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Pce.jsx)(lKe.Box,{position:"relative",height:7,children:(0,Pce.jsxs)(lKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Pce.jsx)(lKe.Box,{children:(0,Pce.jsx)(q9i,{service:e})}),(0,Pce.jsx)(lKe.Box,{marginTop:1,marginBottom:1,children:(0,Pce.jsx)(U9i,{service:e})})]})})};var o0c="@atls/code-runtime/runtime-exec-argv",a0c=async()=>await import(o0c);var tVi=async e=>{let{createRuntimeExecArgv:t}=await a0c();return t(e)};import{readFile as E0c}from"node:fs/promises";import{writeFile as S0c}from"node:fs/promises";import{mkdtemp as v0c}from"node:fs/promises";import{tmpdir as B0c}from"node:os";import{join as gKe}from"node:path";import{readFile as u0c}from"node:fs/promises";import{join as g0c}from"node:path";import{readFile as c0c}from"node:fs/promises";import{join as l0c}from"node:path";var n2t=class{static async find(t){try{let{tools:r={}}=JSON.parse(await c0c(l0c(t,"package.json"),"utf-8"));return r}catch{return{}}}};var i2t=class{constructor(t){this.cwd=t}#e=[];#t=[];async loadPackageJson(){try{return JSON.parse(await u0c(g0c(this.cwd,"package.json"),"utf-8"))}catch{return{}}}async loadDependencies(){let{dependencies:t={}}=await this.loadPackageJson();return Object.keys(t)}async loadExternals(){let{service:t}=await n2t.find(this.cwd);return t?.externals||[]}async build(){return this.#e=await this.loadExternals(),this.#t=await this.loadDependencies(),this.externals}externals=({request:t},r)=>{t&&this.#t.includes(t)?r(void 0,t,"module"):t&&this.#e.includes(t)?r(void 0,t,"import"):r()}};import{existsSync as rVi}from"node:fs";import{readFileSync as A0c}from"node:fs";import{dirname as nVi}from"node:path";import{join as iVi}from"node:path";var s2t=new Map,uKe="/node_modules/",sVi="package.json",oVi="OptionalImportIgnorePlugin",d0c=e=>e?.some(t=>t.optional===!0)??!1,p0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a]=n;if(!a)return null;let o=a.startsWith("@")?2:1,l=n.slice(0,o);return l.length!==o||l.some(A=>!A)?null:`${t.slice(0,r+uKe.length)}${l.join("/")}`},f0c=e=>{if(e.startsWith(".")||e.startsWith("/"))return null;let[t,r]=e.split("/");return t?t.startsWith("@")?r?`${t}/${r}`:null:t:null},I0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a,o]=n;return a?a.startsWith("@")?o?`${a}/${o}`:null:a:null},h0c=e=>{let t=p0c(e);if(t){let n=iVi(t,sVi);if(rVi(n))return n}let r=e;for(;r!==nVi(r);){let n=iVi(r,sVi);if(rVi(n))return n;r=nVi(r)}return null},m0c=e=>{if(s2t.has(e))return s2t.get(e)??null;try{let t=JSON.parse(A0c(e,"utf-8"));return s2t.set(e,t),t}catch{return s2t.set(e,null),null}},C0c=(e,t)=>e.peerDependenciesMeta?.[t]?.optional===!0||!!e.optionalDependencies?.[t],_0c=(e,t,r=!1)=>{let n=f0c(e);if(!n||!I0c(t))return!1;let a=h0c(t);if(!a)return!1;let o=m0c(a);return o?r||C0c(o,n):!1},y0c=async(e,t,r)=>new Promise(n=>{e.resolve({},r,t,{},(a,o)=>{n(!a&&!!o)})}),b0c=async(e,t,r,n=!1)=>_0c(e,t,n)?!await y0c(r,e,t):!1,aVi=e=>({apply:t=>{t.hooks.normalModuleFactory.tap(oVi,r=>{r.hooks.beforeResolve.tapAsync(oVi,(n,a)=>{if(n.request.endsWith(".js.map")){a(null,!1);return}let o=r.getResolver("normal",{...n.resolveOptions??{},dependencyType:n.dependencyType});b0c(n.request,n.context,o,d0c(n.dependencies)).then(l=>{a(null,l?!1:void 0)}).catch(l=>{a(l)})})})}});var o2t=class{constructor(t,r,n){this.webpack=t;this.loaders=r;this.cwd=n}async build(t="production",r=[]){let n=gKe(await v0c(gKe(B0c(),"code-service-")),"tsconfig.json");await S0c(n,'{"include":["**/*"]}');let a=await this.getWorkspaceType(),l=["webpack/hot/poll?100",await new i2t(this.cwd).build()],A=this.createPlugins(t,r,a==="module");return{mode:t,bail:t==="production",target:"node",optimization:{minimize:!1},experiments:{outputModule:a==="module"},plugins:A,entry:{index:gKe(this.cwd,"src/index"),...t==="development"&&{hot:"webpack/hot/poll?100"}},node:{__dirname:!0,__filename:!1},output:{path:gKe(this.cwd,"dist"),filename:"[name].js",library:{type:a},chunkFormat:t==="development"?"commonjs":a,module:a==="module",clean:!1,assetModuleFilename:"assets/[name][ext]"},resolve:{extensionAlias:{".js":[".tsx",".ts",".js"],".jsx":[".tsx",".ts",".js"],".cjs":[".cjs",".cts"],".mjs":[".mjs",".mts"]},extensions:[".tsx",".ts",".js"],alias:{"class-transformer/storage":"class-transformer/cjs/storage"}},externals:l,externalsType:t==="production"?a==="module"?"import":"commonjs":"commonjs2",externalsPresets:{node:!0},devtool:t==="production"?"source-map":"eval-cheap-module-source-map",module:{rules:[{test:/(^.?|\.[^d]|[^.]d|[^.][^d])\.tsx?$/,use:{loader:this.loaders.tsLoader,options:{transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:n}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset/resource"},{test:/\.(png|svg|jpg|jpeg|gif)$/i,type:"asset/resource"},{test:/\.(md)$/i,type:"asset/resource"},{test:/\.node$/,use:this.loaders.nodeLoader}]}}}async getWorkspaceType(){try{let t=await E0c(gKe(this.cwd,"package.json"),"utf-8"),{type:r="commonjs"}=JSON.parse(t);return r}catch{return"module"}}createPlugins(t,r,n){let a=[aVi(t),...r];return n&&a.push(new this.webpack.BannerPlugin({banner:`import { createRequire } from 'node:module' import { fileURLToPath } from 'node:url' const require = createRequire(import.meta.url) const __filename = fileURLToPath(import.meta.url) -`,raw:!0})),t==="development"&&a.push(new this.webpack.HotModuleReplacementPlugin),a}};import YFc from"node:events";import{PassThrough as QFc}from"node:stream";var y4=Nt(bDe(),1);var LLr="@namespace";var vJi=Nt(bDe(),1),BJi=Nt(xKe(),1),wJi=Nt(xKe(),1),Bvt=Nt(bDe(),1);var sJi=Nt(E9r(),1),oJi=Nt(xKe(),1),Cvt=class extends oJi.ConsoleLogRecordExporter{export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));process.stdout.write(`${a} -`)}r?.({code:sJi.ExportResultCode.SUCCESS})}};var EJi=Nt(E9r(),1),SJi=Nt(xKe(),1);var w9r=Nt(fJi(),1),T9r=Nt(yJi(),1);import{isMainThread as ZFc}from"node:worker_threads";var LFc=w9r.default.default||w9r.default;function Evt(){}function VFc(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",()=>{e.end()})):e.flushSync())}var bJi=()=>{let e=new LFc({fd:process.stdout.fd||1});e.on("error",t),ZFc&&(T9r.default.register(e,VFc),e.on("close",()=>{T9r.default.unregister(e)}));function t(r){if(r.code==="EPIPE"){e.write=Evt,e.end=Evt,e.flushSync=Evt,e.destroy=Evt;return}e.removeListener("error",t),e.emit("error",r)}return e};var PFc=function(e,t,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(e,r):a?a.value=r:t.set(e,r),r},WFc=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Svt,vvt=class extends SJi.ConsoleLogRecordExporter{constructor(){super(),Svt.set(this,void 0),PFc(this,Svt,bJi(),"f")}export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));WFc(this,Svt,"f").write(`${a} -`)}r?.({code:EJi.ExportResultCode.SUCCESS})}};Svt=new WeakMap;var wvt=class e{static getLoggerProvider(){if(!e.initialized&&Bvt.logs.getLoggerProvider()instanceof vJi.NoopLoggerProvider){let t=new BJi.LoggerProvider;t.addLogRecordProcessor(new wJi.SimpleLogRecordProcessor(process.env.JEST_WORKER_ID?new Cvt:new vvt)),Bvt.logs.setGlobalLoggerProvider(t),e.initialized=!0}return Bvt.logs.getLoggerProvider()}};wvt.initialized=!1;var R9r=Nt(bDe(),1),vMu=Object.keys(R9r.SeverityNumber).reduce((e,t)=>({...e,[R9r.SeverityNumber[t]]:t}),{});import{fork as OFc}from"node:child_process";import{join as MFc}from"node:path";var Tvt=class{constructor(t={}){this.options=t}info(t){this.options.stdout&&this.options.stdout.write(Buffer.from(JSON.stringify({body:t,severityNumber:9,attributes:{"@namespace":"webpack:start-server"}})))}error(t){this.options.stderr&&this.options.stderr.write(Buffer.from(JSON.stringify({body:t.message,severityNumber:17,attributes:{"@namespace":"webpack:start-server","@stack":t.stack}})))}};var HFc=({execArgv:e},t=process.execArgv)=>({silent:!0,...e?{execArgv:[...t,...e]}:{}}),Rvt=class{options;entryFile=null;worker=null;initialized=!1;logger;constructor(t={}){this.logger=new Tvt(t),this.options=t}apply(t){t.hooks.afterEmit.tapAsync({name:"StartServerPlugin"},this.afterEmit)}afterEmit=(t,r)=>{this.initialized?(this.worker?.connected&&this.worker.pid&&process.kill(this.worker.pid),this.startServer(t,r)):(this.initialized=!0,r())};startServer=(t,r)=>{this.logger.info("Starting server...");let{path:n}=t.compiler.options.output;n&&(this.entryFile=MFc(n,"index.js"),this.runWorker(this.entryFile,a=>{this.worker=a,r()}))};runWorker(t,r){let n=OFc(t,[],HFc(this.options));this.options.stdout&&n.stdout?.pipe(this.options.stdout,{end:!1}),this.options.stderr&&n.stderr?.pipe(this.options.stderr,{end:!1}),setTimeout(()=>{r(n)},0)}};var MDe=class e extends YFc{constructor(r,n,a){super();this.webpack=r;this.config=n;this.execArgv=a}static async initialize(r){let{webpack:n,tsLoaderPath:a,nodeLoaderPath:o,protoLoaderPath:l}=await import("@atls/code-runtime/webpack"),A=new o2t(n,{nodeLoader:o,tsLoader:a,protoLoader:l},r);return new e(n,A,await tVi(r))}async build(){let r=this.webpack(await this.config.build("production",[new this.webpack.ProgressPlugin((n,a)=>{this.emit("build:progress",{percent:n*100,message:a})})]));return new Promise((n,a)=>{r.run((o,l)=>{if(this.emit("end",{error:o,stats:l}),o)o.message?n([o]):a(o);else if(l){let{errors:A=[],warnings:f=[]}=l.toJson();n([...A.map(I=>({record:I,severityNumber:y4.SeverityNumber.ERROR})),...f.map(I=>({record:I,severityNumber:y4.SeverityNumber.WARN}))])}else n([])})})}async watch(r){let n=new QFc;return n.on("data",a=>{a.toString().split(/\r?\n/).filter(Boolean).forEach(o=>{try{r(JSON.parse(o))}catch{r({severityNumber:y4.SeverityNumber.INFO,body:o})}})}),this.webpack(await this.config.build("development",[new Rvt({stdout:n,stderr:n,execArgv:this.execArgv}),new this.webpack.ProgressPlugin((a,o)=>{this.emit("build:progress",{percent:a*100,message:o})})])).watch({},(a,o)=>{if(this.emit("end",{error:a,stats:o}),a)r(a);else if(o){let{errors:l=[],warnings:A=[]}=o.toJson();A.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.WARN})}),l.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.ERROR})})}})}};var YUi=Nt(el(),1);$c();var TJi=Nt(Al(),1),NJi=Nt(Pc(),1),RJi=({children:e})=>e?(0,NJi.jsx)(TJi.Text,{children:e}):null;var x9r=Nt(Al(),1);var G9r=Nt(Ec(),1);var XFc=(e,t)=>(e=e.replace(/((?r.toLowerCase()),e.replace(/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,(r,n,a)=>n+t+a.toLowerCase()));function N9r(e,{separator:t="_",preserveConsecutiveUppercase:r=!1}={}){if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("The `text` and `separator` arguments should be of type `string`");if(e.length<2)return r?e:e.toLowerCase();let n=`$1${t}$2`,a=e.replace(/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,n);return r?XFc(a,t):a.replace(/(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,n).toLowerCase()}var kJi=Nt(DJi(),1),F9r=Nt(Pc(),1),xJi=({children:e})=>{let t=(0,G9r.useMemo)(()=>typeof e=="string"?N9r(e,{separator:"-"}):e,[e]),r=(0,G9r.useMemo)(()=>t&&typeof t=="string"?(0,kJi.default)(t.split(":")[0]).color:"#d75f00",[t]);return t?Array.isArray(t)?t.map(n=>(0,F9r.jsx)(x9r.Text,{color:r,children:n},OW())):(0,F9r.jsx)(x9r.Text,{color:r,children:t}):null};var JDe=Nt(Al(),1);var WUi=Nt(OJi(),1);var O9r="@mikro-orm-sql",M9r="@mikro-orm-params";var tZc;tZc=new WeakMap;var Zj=Nt(Al(),1),Vvt=Nt(Al(),1);var kUi=Nt(HJi(),1),_Ui=Object.defineProperty,rZc=Object.defineProperties,nZc=Object.getOwnPropertyDescriptors,Zvt=Object.getOwnPropertySymbols,yUi=Object.prototype.hasOwnProperty,bUi=Object.prototype.propertyIsEnumerable,YJi=(e,t,r)=>t in e?_Ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qk=(e,t)=>{for(var r in t||(t={}))yUi.call(t,r)&&YJi(e,r,t[r]);if(Zvt)for(var r of Zvt(t))bUi.call(t,r)&&YJi(e,r,t[r]);return e},tL=(e,t)=>rZc(e,nZc(t)),iZc=(e,t)=>{var r={};for(var n in e)yUi.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Zvt)for(var n of Zvt(e))t.indexOf(n)<0&&bUi.call(e,n)&&(r[n]=e[n]);return r},sZc=(e,t)=>{for(var r in t)_Ui(e,r,{get:t[r],enumerable:!0})},EUi={};sZc(EUi,{bigquery:()=>EZc,db2:()=>ZZc,db2i:()=>QZc,hive:()=>eLc,mariadb:()=>lLc,mysql:()=>mLc,n1ql:()=>ZLc,plsql:()=>QLc,postgresql:()=>t9c,redshift:()=>u9c,singlestoredb:()=>gVc,snowflake:()=>_Vc,spark:()=>C9c,sql:()=>V9c,sqlite:()=>R9c,tidb:()=>wLc,transactsql:()=>rVc,trino:()=>J9c});var oc=e=>e.flatMap(oZc),oZc=e=>xvt(cZc(e)).map(aZc),aZc=e=>e.replace(/ +/g," ").trim(),cZc=e=>({type:"mandatory_block",items:AVr(e,0)[0]}),AVr=(e,t,r)=>{let n=[];for(;e[t];){let[a,o]=lZc(e,t);if(n.push(a),t=o,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(r!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(r)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},lZc=(e,t)=>{let r=[];for(;;){let[n,a]=uZc(e,t);if(n)r.push(n),t=a;else break}return r.length===1?[r[0],t]:[{type:"concatenation",items:r},t]},uZc=(e,t)=>{if(e[t]==="{")return gZc(e,t+1);if(e[t]==="[")return AZc(e,t+1);{let r="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)r+=e[t],t++;return[r,t]}},gZc=(e,t)=>{let[r,n]=AVr(e,t,"}");return[{type:"mandatory_block",items:r},n]},AZc=(e,t)=>{let[r,n]=AVr(e,t,"]");return[{type:"optional_block",items:r},n]},xvt=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(xvt).reduce(dZc,[""]);if(e.type==="mandatory_block")return e.items.flatMap(xvt);if(e.type==="optional_block")return["",...e.items.flatMap(xvt)];throw new Error(`Unknown node type: ${e}`)},dZc=(e,t)=>{let r=[];for(let n of e)for(let a of t)r.push(n+a);return r},SUi=(e=>(e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_PHRASE="RESERVED_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF",e))(SUi||{}),vUi=e=>({type:"EOF",raw:"\xABEOF\xBB",text:"\xABEOF\xBB",start:e}),XDe=vUi(1/0),YDe=e=>t=>t.type===e.type&&t.text===e.text,jCe={ARRAY:YDe({text:"ARRAY",type:"RESERVED_DATA_TYPE"}),BY:YDe({text:"BY",type:"RESERVED_KEYWORD"}),SET:YDe({text:"SET",type:"RESERVED_CLAUSE"}),STRUCT:YDe({text:"STRUCT",type:"RESERVED_DATA_TYPE"}),WINDOW:YDe({text:"WINDOW",type:"RESERVED_CLAUSE"}),VALUES:YDe({text:"VALUES",type:"RESERVED_CLAUSE"})},BUi=e=>e==="RESERVED_DATA_TYPE"||e==="RESERVED_KEYWORD"||e==="RESERVED_FUNCTION_NAME"||e==="RESERVED_PHRASE"||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="ARRAY_KEYWORD"||e==="CASE"||e==="END"||e==="WHEN"||e==="ELSE"||e==="THEN"||e==="LIMIT"||e==="BETWEEN"||e==="AND"||e==="OR"||e==="XOR",pZc=e=>e==="AND"||e==="OR"||e==="XOR",fZc=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],IZc=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],hZc=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],mZc=oc(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),CZc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),QJi=oc(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),H9r=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),_Zc=oc(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),yZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),bZc=oc(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),EZc={name:"bigquery",tokenizerOptions:{reservedSelect:mZc,reservedClauses:[...CZc,...H9r,...QJi],reservedSetOperations:_Zc,reservedJoins:yZc,reservedPhrases:bZc,reservedKeywords:IZc,reservedDataTypes:hZc,reservedFunctionNames:fZc,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:SZc},formatOptions:{onelineClauses:[...QJi,...H9r],tabularOnelineClauses:H9r}};function SZc(e){return vZc(BZc(e))}function vZc(e){let t=XDe;return e.map(r=>r.text==="OFFSET"&&t.text==="["?(t=r,tL(qk({},r),{type:"RESERVED_FUNCTION_NAME"})):(t=r,r))}function BZc(e){var t;let r=[];for(let n=0;nt=>t.type==="IDENTIFIER"||t.type==="COMMA"?t[e]+" ":t[e];function wZc(e,t){let r=0;for(let n=t;n"?r--:a.text===">>"&&(r-=2),r===0)return n}return e.length-1}var TZc=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],RZc=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],NZc=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],DZc=oc(["SELECT [ALL | DISTINCT]"]),kZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),JJi=oc(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),Y9r=oc(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),xZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),GZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),FZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),ZZc={name:"db2",tokenizerOptions:{reservedSelect:DZc,reservedClauses:[...kZc,...JJi,...Y9r],reservedSetOperations:xZc,reservedJoins:GZc,reservedPhrases:FZc,reservedKeywords:RZc,reservedDataTypes:NZc,reservedFunctionNames:TZc,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","\xAC=","\xAC>","\xAC<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...JJi,...Y9r],tabularOnelineClauses:Y9r}},LZc=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],VZc=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],PZc=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],WZc=oc(["SELECT [ALL | DISTINCT]"]),OZc=oc(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),UJi=oc(["CREATE [OR REPLACE] TABLE"]),Q9r=oc(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),MZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),HZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),YZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),QZc={name:"db2i",tokenizerOptions:{reservedSelect:WZc,reservedClauses:[...OZc,...UJi,...Q9r],reservedSetOperations:MZc,reservedJoins:HZc,reservedPhrases:YZc,reservedKeywords:VZc,reservedDataTypes:PZc,reservedFunctionNames:LZc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","\xAC=","\xAC>","\xAC<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...UJi,...Q9r],tabularOnelineClauses:Q9r}},XZc=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],JZc=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],UZc=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],KZc=oc(["SELECT [ALL | DISTINCT]"]),jZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),KJi=oc(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),X9r=oc(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),zZc=oc(["UNION [ALL | DISTINCT]"]),qZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),$Zc=oc(["{ROWS | RANGE} BETWEEN"]),eLc={name:"hive",tokenizerOptions:{reservedSelect:KZc,reservedClauses:[...jZc,...KJi,...X9r],reservedSetOperations:zZc,reservedJoins:qZc,reservedPhrases:$Zc,reservedKeywords:JZc,reservedDataTypes:UZc,reservedFunctionNames:XZc,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...KJi,...X9r],tabularOnelineClauses:X9r}};function Lvt(e){return e.map((t,r)=>{let n=e[r+1]||XDe;if(jCe.SET(t)&&n.text==="(")return tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"});let a=e[r-1]||XDe;return jCe.VALUES(t)&&a.text==="="?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t})}var tLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],rLc=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],nLc=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],iLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),sLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),jJi=oc(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),J9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),oLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),aLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),cLc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),lLc={name:"mariadb",tokenizerOptions:{reservedSelect:iLc,reservedClauses:[...sLc,...jJi,...J9r],reservedSetOperations:oLc,reservedJoins:aLc,reservedPhrases:cLc,supportsXor:!0,reservedKeywords:tLc,reservedDataTypes:rLc,reservedFunctionNames:nLc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...jJi,...J9r],tabularOnelineClauses:J9r}},uLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],gLc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],ALc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],dLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),pLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),zJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),U9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),fLc=oc(["UNION [ALL | DISTINCT]"]),ILc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),hLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),mLc={name:"mysql",tokenizerOptions:{reservedSelect:dLc,reservedClauses:[...pLc,...zJi,...U9r],reservedSetOperations:fLc,reservedJoins:ILc,reservedPhrases:hLc,supportsXor:!0,reservedKeywords:uLc,reservedDataTypes:gLc,reservedFunctionNames:ALc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...zJi,...U9r],tabularOnelineClauses:U9r}},CLc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],_Lc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],yLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],bLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),ELc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),qJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),K9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),SLc=oc(["UNION [ALL | DISTINCT]"]),vLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),BLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),wLc={name:"tidb",tokenizerOptions:{reservedSelect:bLc,reservedClauses:[...ELc,...qJi,...K9r],reservedSetOperations:SLc,reservedJoins:vLc,reservedPhrases:BLc,supportsXor:!0,reservedKeywords:CLc,reservedDataTypes:_Lc,reservedFunctionNames:yLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...qJi,...K9r],tabularOnelineClauses:K9r}},TLc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],RLc=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],NLc=[],DLc=oc(["SELECT [ALL | DISTINCT]"]),kLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),$Ji=oc(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),xLc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),GLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),FLc=oc(["{ROWS | RANGE | GROUPS} BETWEEN"]),ZLc={name:"n1ql",tokenizerOptions:{reservedSelect:DLc,reservedClauses:[...kLc,...$Ji],reservedSetOperations:xLc,reservedJoins:GLc,reservedPhrases:FLc,supportsXor:!0,reservedKeywords:RLc,reservedDataTypes:NLc,reservedFunctionNames:TLc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:$Ji}},LLc=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],VLc=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],PLc=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],WLc=oc(["SELECT [ALL | DISTINCT | UNIQUE]"]),OLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),eUi=oc(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),j9r=oc(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),MLc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),HLc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),YLc=oc(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),QLc={name:"plsql",tokenizerOptions:{reservedSelect:WLc,reservedClauses:[...OLc,...eUi,...j9r],reservedSetOperations:MLc,reservedJoins:HLc,reservedPhrases:YLc,supportsXor:!0,reservedKeywords:LLc,reservedDataTypes:VLc,reservedFunctionNames:PLc,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},paramChars:{},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:XLc},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...eUi,...j9r],tabularOnelineClauses:j9r}};function XLc(e){let t=XDe;return e.map(r=>jCe.SET(r)&&jCe.BY(t)?tL(qk({},r),{type:"RESERVED_KEYWORD"}):(BUi(r.type)&&(t=r),r))}var JLc=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","UUID","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],ULc=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],KLc=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","VARCHAR","XML","ZONE"],jLc=oc(["SELECT [ALL | DISTINCT]"]),zLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),tUi=oc(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),z9r=oc(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE FUNCTION","CREATE GROUP","CREATE INDEX","CREATE LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE RULE","CREATE SCHEMA","CREATE SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE TRANSFORM","CREATE TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),qLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),$Lc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),e9c=oc(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE","IS [NOT] DISTINCT FROM"]),t9c={name:"postgresql",tokenizerOptions:{reservedSelect:jLc,reservedClauses:[...zLc,...tUi,...z9r],reservedSetOperations:qLc,reservedJoins:$Lc,reservedPhrases:e9c,reservedKeywords:ULc,reservedDataTypes:KLc,reservedFunctionNames:JLc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":"]},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...tUi,...z9r],tabularOnelineClauses:z9r}},r9c=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],n9c=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],i9c=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],s9c=oc(["SELECT [ALL | DISTINCT]"]),o9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),rUi=oc(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),q9r=oc(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),a9c=oc(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),c9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),l9c=oc(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),u9c={name:"redshift",tokenizerOptions:{reservedSelect:s9c,reservedClauses:[...o9c,...rUi,...q9r],reservedSetOperations:a9c,reservedJoins:c9c,reservedPhrases:l9c,reservedKeywords:n9c,reservedDataTypes:i9c,reservedFunctionNames:r9c,stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...rUi,...q9r],tabularOnelineClauses:q9r}},g9c=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],A9c=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],d9c=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],p9c=oc(["SELECT [ALL | DISTINCT]"]),f9c=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),nUi=oc(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),$9r=oc(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),I9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),h9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),m9c=oc(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),C9c={name:"spark",tokenizerOptions:{reservedSelect:p9c,reservedClauses:[...f9c,...nUi,...$9r],reservedSetOperations:I9c,reservedJoins:h9c,reservedPhrases:m9c,supportsXor:!0,reservedKeywords:g9c,reservedDataTypes:A9c,reservedFunctionNames:d9c,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:_9c},formatOptions:{onelineClauses:[...nUi,...$9r],tabularOnelineClauses:$9r}};function _9c(e){return e.map((t,r)=>{let n=e[r-1]||XDe,a=e[r+1]||XDe;return jCe.WINDOW(t)&&a.type==="OPEN_PAREN"?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t.text==="ITEMS"&&t.type==="RESERVED_KEYWORD"&&!(n.text==="COLLECTION"&&a.text==="TERMINATED")?tL(qk({},t),{type:"IDENTIFIER",text:t.raw}):t})}var y9c=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],b9c=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","GROUPS","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],E9c=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],S9c=oc(["SELECT [ALL | DISTINCT]"]),v9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET"]),iUi=oc(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),eVr=oc(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),B9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),w9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),T9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN"]),R9c={name:"sqlite",tokenizerOptions:{reservedSelect:S9c,reservedClauses:[...v9c,...iUi,...eVr],reservedSetOperations:B9c,reservedJoins:w9c,reservedPhrases:T9c,reservedKeywords:b9c,reservedDataTypes:E9c,reservedFunctionNames:y9c,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...iUi,...eVr],tabularOnelineClauses:eVr}},N9c=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],D9c=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],k9c=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],x9c=oc(["SELECT [ALL | DISTINCT]"]),G9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),sUi=oc(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),tVr=oc(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),F9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),Z9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),L9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),V9c={name:"sql",tokenizerOptions:{reservedSelect:x9c,reservedClauses:[...G9c,...sUi,...tVr],reservedSetOperations:F9c,reservedJoins:Z9c,reservedPhrases:L9c,reservedKeywords:D9c,reservedDataTypes:k9c,reservedFunctionNames:N9c,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...sUi,...tVr],tabularOnelineClauses:tVr}},P9c=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],W9c=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],O9c=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],M9c=oc(["SELECT [ALL | DISTINCT]"]),H9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),oUi=oc(["CREATE TABLE [IF NOT EXISTS]"]),rVr=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),Y9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),Q9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),X9c=oc(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),J9c={name:"trino",tokenizerOptions:{reservedSelect:M9c,reservedClauses:[...H9c,...oUi,...rVr],reservedSetOperations:Y9c,reservedJoins:Q9c,reservedPhrases:X9c,reservedKeywords:W9c,reservedDataTypes:O9c,reservedFunctionNames:P9c,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...oUi,...rVr],tabularOnelineClauses:rVr}},U9c=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],K9c=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","ABSOLUTE","ACTION","ADA","ALLOCATE","ARE","ASSERTION","AT","AVG","BIT_LENGTH","BOTH","CASCADED","CAST","CATALOG","CHARACTER_LENGTH","CHAR_LENGTH","COLLATION","CONNECT","CONNECTION","CONSTRAINTS","CORRESPONDING","COUNT","DAY","DEFERRABLE","DEFERRED","DESCRIBE","DESCRIPTOR","DIAGNOSTICS","DISCONNECT","DOMAIN","END-EXEC","EXCEPTION","EXTRACT","FALSE","FIRST","FORTRAN","FOUND","GET","GLOBAL","GO","HOUR","IMMEDIATE","INCLUDE","INDICATOR","INITIALLY","INPUT","INSENSITIVE","INTERVAL","ISOLATION","LANGUAGE","LAST","LEADING","LEVEL","LOCAL","LOWER","MATCH","MAX","MIN","MINUTE","MODULE","MONTH","NAMES","NATURAL","NEXT","NO","NONE","OCTET_LENGTH","ONLY","OUTPUT","OVERLAPS","PAD","PARTIAL","PASCAL","POSITION","PREPARE","PRESERVE","PRIOR","PRIVILEGES","RELATIVE","ROWS","SCROLL","SECOND","SECTION","SESSION","SIZE","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","SUBSTRING","SUM","TEMPORARY","TIMEZONE_HOUR","TIMEZONE_MINUTE","TRAILING","TRANSLATE","TRANSLATION","TRIM","TRUE","UNKNOWN","UPPER","USAGE","VALUE","WHENEVER","WORK","WRITE","YEAR","ZONE"],j9c=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],z9c=oc(["SELECT [ALL | DISTINCT]"]),q9c=oc(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET","CREATE [OR ALTER] {PROC | PROCEDURE}"]),aUi=oc(["CREATE TABLE"]),nVr=oc(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLLATE","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","FUNCTION","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION FUNCTION","PARTITION SCHEME","PROCEDURE","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),$9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),eVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),tVc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),rVc={name:"transactsql",tokenizerOptions:{reservedSelect:z9c,reservedClauses:[...q9c,...aUi,...nVr],reservedSetOperations:$9c,reservedJoins:eVc,reservedPhrases:tVc,reservedKeywords:K9c,reservedDataTypes:j9c,reservedFunctionNames:U9c,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]}],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...aUi,...nVr],tabularOnelineClauses:nVr}},nVc=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],iVc=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],sVc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],oVc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),aVc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),cUi=oc(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),iVr=oc(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),cVc=oc(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),lVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),uVc=oc(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),gVc={name:"singlestoredb",tokenizerOptions:{reservedSelect:oVc,reservedClauses:[...aVc,...cUi,...iVr],reservedSetOperations:cVc,reservedJoins:lVc,reservedPhrases:uVc,reservedKeywords:nVc,reservedDataTypes:iVc,reservedFunctionNames:sVc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:Lvt},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...cUi,...iVr],tabularOnelineClauses:iVr}},AVc=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER \u2014 Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],dVc=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],pVc=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],fVc=oc(["SELECT [ALL | DISTINCT]"]),IVc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),lUi=oc(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),sVr=oc(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),hVc=oc(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),mVc=oc(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),CVc=oc(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),_Vc={name:"snowflake",tokenizerOptions:{reservedSelect:fVc,reservedClauses:[...IVc,...lUi,...sVr],reservedSetOperations:hVc,reservedJoins:mVc,reservedPhrases:CVc,reservedKeywords:dVc,reservedDataTypes:pVc,reservedFunctionNames:AVc,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":="],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...lUi,...sVr],tabularOnelineClauses:sVr}},MKe=e=>e[e.length-1],wUi=e=>e.sort((t,r)=>r.length-t.length||t.localeCompare(r)),Gvt=e=>e.replace(/\s+/gu," "),oVr=e=>/\n/.test(e),b4=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),uUi=/\s+/uy,zCe=e=>new RegExp(`(?:${e})`,"uy"),yVc=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),bVc=e=>e+"(?:-"+e+")*",EVc=({prefixes:e,requirePrefix:t})=>`(?:${e.map(yVc).join("|")}${t?"":"|"})`,SVc=e=>new RegExp(`(?:${e.map(b4).join("|")}).*?(?=\r +`,raw:!0})),t==="development"&&a.push(new this.webpack.HotModuleReplacementPlugin),a}};import QFc from"node:events";import{PassThrough as XFc}from"node:stream";var y4=Nt(bDe(),1);var LLr="@namespace";var vJi=Nt(bDe(),1),BJi=Nt(xKe(),1),wJi=Nt(xKe(),1),Bvt=Nt(bDe(),1);var sJi=Nt(E9r(),1),oJi=Nt(xKe(),1),Cvt=class extends oJi.ConsoleLogRecordExporter{export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));process.stdout.write(`${a} +`)}r?.({code:sJi.ExportResultCode.SUCCESS})}};var EJi=Nt(E9r(),1),SJi=Nt(xKe(),1);var w9r=Nt(fJi(),1),T9r=Nt(yJi(),1);import{isMainThread as LFc}from"node:worker_threads";var VFc=w9r.default.default||w9r.default;function Evt(){}function PFc(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",()=>{e.end()})):e.flushSync())}var bJi=()=>{let e=new VFc({fd:process.stdout.fd||1});e.on("error",t),LFc&&(T9r.default.register(e,PFc),e.on("close",()=>{T9r.default.unregister(e)}));function t(r){if(r.code==="EPIPE"){e.write=Evt,e.end=Evt,e.flushSync=Evt,e.destroy=Evt;return}e.removeListener("error",t),e.emit("error",r)}return e};var WFc=function(e,t,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(e,r):a?a.value=r:t.set(e,r),r},OFc=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Svt,vvt=class extends SJi.ConsoleLogRecordExporter{constructor(){super(),Svt.set(this,void 0),WFc(this,Svt,bJi(),"f")}export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));OFc(this,Svt,"f").write(`${a} +`)}r?.({code:EJi.ExportResultCode.SUCCESS})}};Svt=new WeakMap;var wvt=class e{static getLoggerProvider(){if(!e.initialized&&Bvt.logs.getLoggerProvider()instanceof vJi.NoopLoggerProvider){let t=new BJi.LoggerProvider;t.addLogRecordProcessor(new wJi.SimpleLogRecordProcessor(process.env.JEST_WORKER_ID?new Cvt:new vvt)),Bvt.logs.setGlobalLoggerProvider(t),e.initialized=!0}return Bvt.logs.getLoggerProvider()}};wvt.initialized=!1;var R9r=Nt(bDe(),1),BMu=Object.keys(R9r.SeverityNumber).reduce((e,t)=>({...e,[R9r.SeverityNumber[t]]:t}),{});import{fork as MFc}from"node:child_process";import{join as HFc}from"node:path";var Tvt=class{constructor(t={}){this.options=t}info(t){this.options.stdout&&this.options.stdout.write(Buffer.from(JSON.stringify({body:t,severityNumber:9,attributes:{"@namespace":"webpack:start-server"}})))}error(t){this.options.stderr&&this.options.stderr.write(Buffer.from(JSON.stringify({body:t.message,severityNumber:17,attributes:{"@namespace":"webpack:start-server","@stack":t.stack}})))}};var YFc=({execArgv:e},t=process.execArgv)=>({silent:!0,...e?{execArgv:[...t,...e]}:{}}),Rvt=class{options;entryFile=null;worker=null;initialized=!1;logger;constructor(t={}){this.logger=new Tvt(t),this.options=t}apply(t){t.hooks.afterEmit.tapAsync({name:"StartServerPlugin"},this.afterEmit)}afterEmit=(t,r)=>{this.initialized?(this.worker?.connected&&this.worker.pid&&process.kill(this.worker.pid),this.startServer(t,r)):(this.initialized=!0,r())};startServer=(t,r)=>{this.logger.info("Starting server...");let{path:n}=t.compiler.options.output;n&&(this.entryFile=HFc(n,"index.js"),this.runWorker(this.entryFile,a=>{this.worker=a,r()}))};runWorker(t,r){let n=MFc(t,[],YFc(this.options));this.options.stdout&&n.stdout?.pipe(this.options.stdout,{end:!1}),this.options.stderr&&n.stderr?.pipe(this.options.stderr,{end:!1}),setTimeout(()=>{r(n)},0)}};var MDe=class e extends QFc{constructor(r,n,a){super();this.webpack=r;this.config=n;this.execArgv=a}static async initialize(r){let{webpack:n,tsLoaderPath:a,nodeLoaderPath:o,protoLoaderPath:l}=await import("@atls/code-runtime/webpack"),A=new o2t(n,{nodeLoader:o,tsLoader:a,protoLoader:l},r);return new e(n,A,await tVi(r))}async build(){let r=this.webpack(await this.config.build("production",[new this.webpack.ProgressPlugin((n,a)=>{this.emit("build:progress",{percent:n*100,message:a})})]));return new Promise((n,a)=>{r.run((o,l)=>{if(this.emit("end",{error:o,stats:l}),o)o.message?n([o]):a(o);else if(l){let{errors:A=[],warnings:f=[]}=l.toJson();n([...A.map(I=>({record:I,severityNumber:y4.SeverityNumber.ERROR})),...f.map(I=>({record:I,severityNumber:y4.SeverityNumber.WARN}))])}else n([])})})}async watch(r){let n=new XFc;return n.on("data",a=>{a.toString().split(/\r?\n/).filter(Boolean).forEach(o=>{try{r(JSON.parse(o))}catch{r({severityNumber:y4.SeverityNumber.INFO,body:o})}})}),this.webpack(await this.config.build("development",[new Rvt({stdout:n,stderr:n,execArgv:this.execArgv}),new this.webpack.ProgressPlugin((a,o)=>{this.emit("build:progress",{percent:a*100,message:o})})])).watch({},(a,o)=>{if(this.emit("end",{error:a,stats:o}),a)r(a);else if(o){let{errors:l=[],warnings:A=[]}=o.toJson();A.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.WARN})}),l.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.ERROR})})}})}};var YUi=Nt(el(),1);$c();var TJi=Nt(Al(),1),NJi=Nt(Pc(),1),RJi=({children:e})=>e?(0,NJi.jsx)(TJi.Text,{children:e}):null;var x9r=Nt(Al(),1);var G9r=Nt(Ec(),1);var JFc=(e,t)=>(e=e.replace(/((?r.toLowerCase()),e.replace(/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,(r,n,a)=>n+t+a.toLowerCase()));function N9r(e,{separator:t="_",preserveConsecutiveUppercase:r=!1}={}){if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("The `text` and `separator` arguments should be of type `string`");if(e.length<2)return r?e:e.toLowerCase();let n=`$1${t}$2`,a=e.replace(/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,n);return r?JFc(a,t):a.replace(/(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,n).toLowerCase()}var kJi=Nt(DJi(),1),F9r=Nt(Pc(),1),xJi=({children:e})=>{let t=(0,G9r.useMemo)(()=>typeof e=="string"?N9r(e,{separator:"-"}):e,[e]),r=(0,G9r.useMemo)(()=>t&&typeof t=="string"?(0,kJi.default)(t.split(":")[0]).color:"#d75f00",[t]);return t?Array.isArray(t)?t.map(n=>(0,F9r.jsx)(x9r.Text,{color:r,children:n},OW())):(0,F9r.jsx)(x9r.Text,{color:r,children:t}):null};var JDe=Nt(Al(),1);var WUi=Nt(OJi(),1);var O9r="@mikro-orm-sql",M9r="@mikro-orm-params";var rZc;rZc=new WeakMap;var Zj=Nt(Al(),1),Vvt=Nt(Al(),1);var kUi=Nt(HJi(),1),_Ui=Object.defineProperty,nZc=Object.defineProperties,iZc=Object.getOwnPropertyDescriptors,Zvt=Object.getOwnPropertySymbols,yUi=Object.prototype.hasOwnProperty,bUi=Object.prototype.propertyIsEnumerable,YJi=(e,t,r)=>t in e?_Ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qk=(e,t)=>{for(var r in t||(t={}))yUi.call(t,r)&&YJi(e,r,t[r]);if(Zvt)for(var r of Zvt(t))bUi.call(t,r)&&YJi(e,r,t[r]);return e},tL=(e,t)=>nZc(e,iZc(t)),sZc=(e,t)=>{var r={};for(var n in e)yUi.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Zvt)for(var n of Zvt(e))t.indexOf(n)<0&&bUi.call(e,n)&&(r[n]=e[n]);return r},oZc=(e,t)=>{for(var r in t)_Ui(e,r,{get:t[r],enumerable:!0})},EUi={};oZc(EUi,{bigquery:()=>SZc,db2:()=>LZc,db2i:()=>XZc,hive:()=>tLc,mariadb:()=>uLc,mysql:()=>CLc,n1ql:()=>LLc,plsql:()=>XLc,postgresql:()=>r9c,redshift:()=>g9c,singlestoredb:()=>AVc,snowflake:()=>yVc,spark:()=>_9c,sql:()=>P9c,sqlite:()=>N9c,tidb:()=>TLc,transactsql:()=>nVc,trino:()=>U9c});var oc=e=>e.flatMap(aZc),aZc=e=>xvt(lZc(e)).map(cZc),cZc=e=>e.replace(/ +/g," ").trim(),lZc=e=>({type:"mandatory_block",items:AVr(e,0)[0]}),AVr=(e,t,r)=>{let n=[];for(;e[t];){let[a,o]=uZc(e,t);if(n.push(a),t=o,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(r!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(r)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},uZc=(e,t)=>{let r=[];for(;;){let[n,a]=gZc(e,t);if(n)r.push(n),t=a;else break}return r.length===1?[r[0],t]:[{type:"concatenation",items:r},t]},gZc=(e,t)=>{if(e[t]==="{")return AZc(e,t+1);if(e[t]==="[")return dZc(e,t+1);{let r="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)r+=e[t],t++;return[r,t]}},AZc=(e,t)=>{let[r,n]=AVr(e,t,"}");return[{type:"mandatory_block",items:r},n]},dZc=(e,t)=>{let[r,n]=AVr(e,t,"]");return[{type:"optional_block",items:r},n]},xvt=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(xvt).reduce(pZc,[""]);if(e.type==="mandatory_block")return e.items.flatMap(xvt);if(e.type==="optional_block")return["",...e.items.flatMap(xvt)];throw new Error(`Unknown node type: ${e}`)},pZc=(e,t)=>{let r=[];for(let n of e)for(let a of t)r.push(n+a);return r},SUi=(e=>(e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_PHRASE="RESERVED_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF",e))(SUi||{}),vUi=e=>({type:"EOF",raw:"\xABEOF\xBB",text:"\xABEOF\xBB",start:e}),XDe=vUi(1/0),YDe=e=>t=>t.type===e.type&&t.text===e.text,jCe={ARRAY:YDe({text:"ARRAY",type:"RESERVED_DATA_TYPE"}),BY:YDe({text:"BY",type:"RESERVED_KEYWORD"}),SET:YDe({text:"SET",type:"RESERVED_CLAUSE"}),STRUCT:YDe({text:"STRUCT",type:"RESERVED_DATA_TYPE"}),WINDOW:YDe({text:"WINDOW",type:"RESERVED_CLAUSE"}),VALUES:YDe({text:"VALUES",type:"RESERVED_CLAUSE"})},BUi=e=>e==="RESERVED_DATA_TYPE"||e==="RESERVED_KEYWORD"||e==="RESERVED_FUNCTION_NAME"||e==="RESERVED_PHRASE"||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="ARRAY_KEYWORD"||e==="CASE"||e==="END"||e==="WHEN"||e==="ELSE"||e==="THEN"||e==="LIMIT"||e==="BETWEEN"||e==="AND"||e==="OR"||e==="XOR",fZc=e=>e==="AND"||e==="OR"||e==="XOR",IZc=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],hZc=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],mZc=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],CZc=oc(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),_Zc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),QJi=oc(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),H9r=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),yZc=oc(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),bZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),EZc=oc(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),SZc={name:"bigquery",tokenizerOptions:{reservedSelect:CZc,reservedClauses:[..._Zc,...H9r,...QJi],reservedSetOperations:yZc,reservedJoins:bZc,reservedPhrases:EZc,reservedKeywords:hZc,reservedDataTypes:mZc,reservedFunctionNames:IZc,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:vZc},formatOptions:{onelineClauses:[...QJi,...H9r],tabularOnelineClauses:H9r}};function vZc(e){return BZc(wZc(e))}function BZc(e){let t=XDe;return e.map(r=>r.text==="OFFSET"&&t.text==="["?(t=r,tL(qk({},r),{type:"RESERVED_FUNCTION_NAME"})):(t=r,r))}function wZc(e){var t;let r=[];for(let n=0;nt=>t.type==="IDENTIFIER"||t.type==="COMMA"?t[e]+" ":t[e];function TZc(e,t){let r=0;for(let n=t;n"?r--:a.text===">>"&&(r-=2),r===0)return n}return e.length-1}var RZc=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],NZc=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],DZc=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],kZc=oc(["SELECT [ALL | DISTINCT]"]),xZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),JJi=oc(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),Y9r=oc(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),GZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),FZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),ZZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),LZc={name:"db2",tokenizerOptions:{reservedSelect:kZc,reservedClauses:[...xZc,...JJi,...Y9r],reservedSetOperations:GZc,reservedJoins:FZc,reservedPhrases:ZZc,reservedKeywords:NZc,reservedDataTypes:DZc,reservedFunctionNames:RZc,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","\xAC=","\xAC>","\xAC<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...JJi,...Y9r],tabularOnelineClauses:Y9r}},VZc=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],PZc=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],WZc=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],OZc=oc(["SELECT [ALL | DISTINCT]"]),MZc=oc(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),UJi=oc(["CREATE [OR REPLACE] TABLE"]),Q9r=oc(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),HZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),YZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),QZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),XZc={name:"db2i",tokenizerOptions:{reservedSelect:OZc,reservedClauses:[...MZc,...UJi,...Q9r],reservedSetOperations:HZc,reservedJoins:YZc,reservedPhrases:QZc,reservedKeywords:PZc,reservedDataTypes:WZc,reservedFunctionNames:VZc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","\xAC=","\xAC>","\xAC<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...UJi,...Q9r],tabularOnelineClauses:Q9r}},JZc=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],UZc=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],KZc=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],jZc=oc(["SELECT [ALL | DISTINCT]"]),zZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),KJi=oc(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),X9r=oc(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),qZc=oc(["UNION [ALL | DISTINCT]"]),$Zc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),eLc=oc(["{ROWS | RANGE} BETWEEN"]),tLc={name:"hive",tokenizerOptions:{reservedSelect:jZc,reservedClauses:[...zZc,...KJi,...X9r],reservedSetOperations:qZc,reservedJoins:$Zc,reservedPhrases:eLc,reservedKeywords:UZc,reservedDataTypes:KZc,reservedFunctionNames:JZc,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...KJi,...X9r],tabularOnelineClauses:X9r}};function Lvt(e){return e.map((t,r)=>{let n=e[r+1]||XDe;if(jCe.SET(t)&&n.text==="(")return tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"});let a=e[r-1]||XDe;return jCe.VALUES(t)&&a.text==="="?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t})}var rLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],nLc=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],iLc=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],sLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),oLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),jJi=oc(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),J9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),aLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),cLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),lLc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),uLc={name:"mariadb",tokenizerOptions:{reservedSelect:sLc,reservedClauses:[...oLc,...jJi,...J9r],reservedSetOperations:aLc,reservedJoins:cLc,reservedPhrases:lLc,supportsXor:!0,reservedKeywords:rLc,reservedDataTypes:nLc,reservedFunctionNames:iLc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...jJi,...J9r],tabularOnelineClauses:J9r}},gLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],ALc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],dLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],pLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),fLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),zJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),U9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),ILc=oc(["UNION [ALL | DISTINCT]"]),hLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),mLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),CLc={name:"mysql",tokenizerOptions:{reservedSelect:pLc,reservedClauses:[...fLc,...zJi,...U9r],reservedSetOperations:ILc,reservedJoins:hLc,reservedPhrases:mLc,supportsXor:!0,reservedKeywords:gLc,reservedDataTypes:ALc,reservedFunctionNames:dLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...zJi,...U9r],tabularOnelineClauses:U9r}},_Lc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],yLc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],bLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],ELc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),SLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),qJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),K9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),vLc=oc(["UNION [ALL | DISTINCT]"]),BLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),wLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),TLc={name:"tidb",tokenizerOptions:{reservedSelect:ELc,reservedClauses:[...SLc,...qJi,...K9r],reservedSetOperations:vLc,reservedJoins:BLc,reservedPhrases:wLc,supportsXor:!0,reservedKeywords:_Lc,reservedDataTypes:yLc,reservedFunctionNames:bLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...qJi,...K9r],tabularOnelineClauses:K9r}},RLc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],NLc=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],DLc=[],kLc=oc(["SELECT [ALL | DISTINCT]"]),xLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),$Ji=oc(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),GLc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),FLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),ZLc=oc(["{ROWS | RANGE | GROUPS} BETWEEN"]),LLc={name:"n1ql",tokenizerOptions:{reservedSelect:kLc,reservedClauses:[...xLc,...$Ji],reservedSetOperations:GLc,reservedJoins:FLc,reservedPhrases:ZLc,supportsXor:!0,reservedKeywords:NLc,reservedDataTypes:DLc,reservedFunctionNames:RLc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:$Ji}},VLc=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],PLc=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],WLc=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],OLc=oc(["SELECT [ALL | DISTINCT | UNIQUE]"]),MLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),eUi=oc(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),j9r=oc(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),HLc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),YLc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),QLc=oc(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),XLc={name:"plsql",tokenizerOptions:{reservedSelect:OLc,reservedClauses:[...MLc,...eUi,...j9r],reservedSetOperations:HLc,reservedJoins:YLc,reservedPhrases:QLc,supportsXor:!0,reservedKeywords:VLc,reservedDataTypes:PLc,reservedFunctionNames:WLc,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},paramChars:{},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:JLc},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...eUi,...j9r],tabularOnelineClauses:j9r}};function JLc(e){let t=XDe;return e.map(r=>jCe.SET(r)&&jCe.BY(t)?tL(qk({},r),{type:"RESERVED_KEYWORD"}):(BUi(r.type)&&(t=r),r))}var ULc=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","UUID","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],KLc=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],jLc=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","VARCHAR","XML","ZONE"],zLc=oc(["SELECT [ALL | DISTINCT]"]),qLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),tUi=oc(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),z9r=oc(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE FUNCTION","CREATE GROUP","CREATE INDEX","CREATE LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE RULE","CREATE SCHEMA","CREATE SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE TRANSFORM","CREATE TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),$Lc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),e9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),t9c=oc(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE","IS [NOT] DISTINCT FROM"]),r9c={name:"postgresql",tokenizerOptions:{reservedSelect:zLc,reservedClauses:[...qLc,...tUi,...z9r],reservedSetOperations:$Lc,reservedJoins:e9c,reservedPhrases:t9c,reservedKeywords:KLc,reservedDataTypes:jLc,reservedFunctionNames:ULc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":"]},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...tUi,...z9r],tabularOnelineClauses:z9r}},n9c=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],i9c=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],s9c=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],o9c=oc(["SELECT [ALL | DISTINCT]"]),a9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),rUi=oc(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),q9r=oc(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),c9c=oc(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),l9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),u9c=oc(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),g9c={name:"redshift",tokenizerOptions:{reservedSelect:o9c,reservedClauses:[...a9c,...rUi,...q9r],reservedSetOperations:c9c,reservedJoins:l9c,reservedPhrases:u9c,reservedKeywords:i9c,reservedDataTypes:s9c,reservedFunctionNames:n9c,stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...rUi,...q9r],tabularOnelineClauses:q9r}},A9c=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],d9c=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],p9c=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],f9c=oc(["SELECT [ALL | DISTINCT]"]),I9c=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),nUi=oc(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),$9r=oc(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),h9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),m9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),C9c=oc(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),_9c={name:"spark",tokenizerOptions:{reservedSelect:f9c,reservedClauses:[...I9c,...nUi,...$9r],reservedSetOperations:h9c,reservedJoins:m9c,reservedPhrases:C9c,supportsXor:!0,reservedKeywords:A9c,reservedDataTypes:d9c,reservedFunctionNames:p9c,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:y9c},formatOptions:{onelineClauses:[...nUi,...$9r],tabularOnelineClauses:$9r}};function y9c(e){return e.map((t,r)=>{let n=e[r-1]||XDe,a=e[r+1]||XDe;return jCe.WINDOW(t)&&a.type==="OPEN_PAREN"?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t.text==="ITEMS"&&t.type==="RESERVED_KEYWORD"&&!(n.text==="COLLECTION"&&a.text==="TERMINATED")?tL(qk({},t),{type:"IDENTIFIER",text:t.raw}):t})}var b9c=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],E9c=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","GROUPS","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],S9c=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],v9c=oc(["SELECT [ALL | DISTINCT]"]),B9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET"]),iUi=oc(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),eVr=oc(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),w9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),T9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),R9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN"]),N9c={name:"sqlite",tokenizerOptions:{reservedSelect:v9c,reservedClauses:[...B9c,...iUi,...eVr],reservedSetOperations:w9c,reservedJoins:T9c,reservedPhrases:R9c,reservedKeywords:E9c,reservedDataTypes:S9c,reservedFunctionNames:b9c,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...iUi,...eVr],tabularOnelineClauses:eVr}},D9c=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],k9c=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],x9c=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],G9c=oc(["SELECT [ALL | DISTINCT]"]),F9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),sUi=oc(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),tVr=oc(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),Z9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),L9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),V9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),P9c={name:"sql",tokenizerOptions:{reservedSelect:G9c,reservedClauses:[...F9c,...sUi,...tVr],reservedSetOperations:Z9c,reservedJoins:L9c,reservedPhrases:V9c,reservedKeywords:k9c,reservedDataTypes:x9c,reservedFunctionNames:D9c,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...sUi,...tVr],tabularOnelineClauses:tVr}},W9c=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],O9c=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],M9c=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],H9c=oc(["SELECT [ALL | DISTINCT]"]),Y9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),oUi=oc(["CREATE TABLE [IF NOT EXISTS]"]),rVr=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),Q9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),X9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),J9c=oc(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),U9c={name:"trino",tokenizerOptions:{reservedSelect:H9c,reservedClauses:[...Y9c,...oUi,...rVr],reservedSetOperations:Q9c,reservedJoins:X9c,reservedPhrases:J9c,reservedKeywords:O9c,reservedDataTypes:M9c,reservedFunctionNames:W9c,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...oUi,...rVr],tabularOnelineClauses:rVr}},K9c=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],j9c=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","ABSOLUTE","ACTION","ADA","ALLOCATE","ARE","ASSERTION","AT","AVG","BIT_LENGTH","BOTH","CASCADED","CAST","CATALOG","CHARACTER_LENGTH","CHAR_LENGTH","COLLATION","CONNECT","CONNECTION","CONSTRAINTS","CORRESPONDING","COUNT","DAY","DEFERRABLE","DEFERRED","DESCRIBE","DESCRIPTOR","DIAGNOSTICS","DISCONNECT","DOMAIN","END-EXEC","EXCEPTION","EXTRACT","FALSE","FIRST","FORTRAN","FOUND","GET","GLOBAL","GO","HOUR","IMMEDIATE","INCLUDE","INDICATOR","INITIALLY","INPUT","INSENSITIVE","INTERVAL","ISOLATION","LANGUAGE","LAST","LEADING","LEVEL","LOCAL","LOWER","MATCH","MAX","MIN","MINUTE","MODULE","MONTH","NAMES","NATURAL","NEXT","NO","NONE","OCTET_LENGTH","ONLY","OUTPUT","OVERLAPS","PAD","PARTIAL","PASCAL","POSITION","PREPARE","PRESERVE","PRIOR","PRIVILEGES","RELATIVE","ROWS","SCROLL","SECOND","SECTION","SESSION","SIZE","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","SUBSTRING","SUM","TEMPORARY","TIMEZONE_HOUR","TIMEZONE_MINUTE","TRAILING","TRANSLATE","TRANSLATION","TRIM","TRUE","UNKNOWN","UPPER","USAGE","VALUE","WHENEVER","WORK","WRITE","YEAR","ZONE"],z9c=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],q9c=oc(["SELECT [ALL | DISTINCT]"]),$9c=oc(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET","CREATE [OR ALTER] {PROC | PROCEDURE}"]),aUi=oc(["CREATE TABLE"]),nVr=oc(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLLATE","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","FUNCTION","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION FUNCTION","PARTITION SCHEME","PROCEDURE","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),eVc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),tVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),rVc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),nVc={name:"transactsql",tokenizerOptions:{reservedSelect:q9c,reservedClauses:[...$9c,...aUi,...nVr],reservedSetOperations:eVc,reservedJoins:tVc,reservedPhrases:rVc,reservedKeywords:j9c,reservedDataTypes:z9c,reservedFunctionNames:K9c,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]}],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...aUi,...nVr],tabularOnelineClauses:nVr}},iVc=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],sVc=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],oVc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],aVc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),cVc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),cUi=oc(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),iVr=oc(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),lVc=oc(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),uVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),gVc=oc(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),AVc={name:"singlestoredb",tokenizerOptions:{reservedSelect:aVc,reservedClauses:[...cVc,...cUi,...iVr],reservedSetOperations:lVc,reservedJoins:uVc,reservedPhrases:gVc,reservedKeywords:iVc,reservedDataTypes:sVc,reservedFunctionNames:oVc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:Lvt},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...cUi,...iVr],tabularOnelineClauses:iVr}},dVc=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER \u2014 Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],pVc=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],fVc=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],IVc=oc(["SELECT [ALL | DISTINCT]"]),hVc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),lUi=oc(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),sVr=oc(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),mVc=oc(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),CVc=oc(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),_Vc=oc(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),yVc={name:"snowflake",tokenizerOptions:{reservedSelect:IVc,reservedClauses:[...hVc,...lUi,...sVr],reservedSetOperations:mVc,reservedJoins:CVc,reservedPhrases:_Vc,reservedKeywords:pVc,reservedDataTypes:fVc,reservedFunctionNames:dVc,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":="],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...lUi,...sVr],tabularOnelineClauses:sVr}},MKe=e=>e[e.length-1],wUi=e=>e.sort((t,r)=>r.length-t.length||t.localeCompare(r)),Gvt=e=>e.replace(/\s+/gu," "),oVr=e=>/\n/.test(e),b4=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),uUi=/\s+/uy,zCe=e=>new RegExp(`(?:${e})`,"uy"),bVc=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),EVc=e=>e+"(?:-"+e+")*",SVc=({prefixes:e,requirePrefix:t})=>`(?:${e.map(bVc).join("|")}${t?"":"|"})`,vVc=e=>new RegExp(`(?:${e.map(b4).join("|")}).*?(?=\r |\r| -|$)`,"uy"),gUi=(e,t=[])=>{let r=e==="open"?0:1,n=["()",...t].map(a=>a[r]);return zCe(n.map(b4).join("|"))},AUi=e=>zCe(`${wUi(e).map(b4).join("|")}`),vVc=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",$ce=(e,t={})=>{if(e.length===0)return/^\b$/u;let r=vVc(t),n=wUi(e).map(b4).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${r}\\b`,"iuy")},aVr=(e,t)=>{if(!e.length)return;let r=e.map(b4).join("|");return zCe(`(?:${r})(?:${t})`)},BVc=()=>{let e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",r=Object.entries(e).map(([l,A])=>t.replace(/{left}/g,b4(l)).replace(/{right}/g,b4(A))),n=b4(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${r.join("|")})'`},dUi={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":BVc()},TUi=e=>typeof e=="string"?dUi[e]:"regex"in e?e.regex:EVc(e)+dUi[e.quote],wVc=e=>zCe(e.map(t=>"regex"in t?t.regex:TUi(t)).join("|")),RUi=e=>e.map(TUi).join("|"),pUi=e=>zCe(RUi(e)),TVc=(e={})=>zCe(NUi(e)),NUi=({first:e,rest:t,dashes:r,allowFirstCharNumber:n}={})=>{let a="\\p{Alphabetic}\\p{Mark}_",o="\\p{Decimal_Number}",l=b4(e??""),A=b4(t??""),f=n?`[${a}${o}${l}][${a}${o}${A}]*`:`[${a}${l}][${a}${o}${A}]*`;return r?bVc(f):f};function DUi(e,t){let r=e.slice(0,t).split(/\n/);return{line:r.length,col:r[r.length-1].length+1}}var RVc=class{constructor(e,t){this.rules=e,this.dialectName=t,this.input="",this.index=0}tokenize(e){this.input=e,this.index=0;let t=[],r;for(;this.index{let r=e==="open"?0:1,n=["()",...t].map(a=>a[r]);return zCe(n.map(b4).join("|"))},AUi=e=>zCe(`${wUi(e).map(b4).join("|")}`),BVc=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",$ce=(e,t={})=>{if(e.length===0)return/^\b$/u;let r=BVc(t),n=wUi(e).map(b4).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${r}\\b`,"iuy")},aVr=(e,t)=>{if(!e.length)return;let r=e.map(b4).join("|");return zCe(`(?:${r})(?:${t})`)},wVc=()=>{let e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",r=Object.entries(e).map(([l,A])=>t.replace(/{left}/g,b4(l)).replace(/{right}/g,b4(A))),n=b4(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${r.join("|")})'`},dUi={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":wVc()},TUi=e=>typeof e=="string"?dUi[e]:"regex"in e?e.regex:SVc(e)+dUi[e.quote],TVc=e=>zCe(e.map(t=>"regex"in t?t.regex:TUi(t)).join("|")),RUi=e=>e.map(TUi).join("|"),pUi=e=>zCe(RUi(e)),RVc=(e={})=>zCe(NUi(e)),NUi=({first:e,rest:t,dashes:r,allowFirstCharNumber:n}={})=>{let a="\\p{Alphabetic}\\p{Mark}_",o="\\p{Decimal_Number}",l=b4(e??""),A=b4(t??""),f=n?`[${a}${o}${l}][${a}${o}${A}]*`:`[${a}${l}][${a}${o}${A}]*`;return r?EVc(f):f};function DUi(e,t){let r=e.slice(0,t).split(/\n/);return{line:r.length,col:r[r.length-1].length+1}}var NVc=class{constructor(e,t){this.rules=e,this.dialectName=t,this.input="",this.index=0}tokenize(e){this.input=e,this.index=0;let t=[],r;for(;this.index0;)if(r=this.matchSection(fUi,e))t+=r,n++;else if(r=this.matchSection(DVc,e))t+=r,n--;else if(r=this.matchSection(NVc,e))t+=r;else return null;return[t]}matchSection(e,t){e.lastIndex=this.lastIndex;let r=e.exec(t);return r&&(this.lastIndex+=r[0].length),r?r[0]:null}},xVc=class{constructor(e,t){this.cfg=e,this.dialectName=t,this.rulesBeforeParams=this.buildRulesBeforeParams(e),this.rulesAfterParams=this.buildRulesAfterParams(e)}tokenize(e,t){let r=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,t),...this.rulesAfterParams],n=new RVc(r,this.dialectName).tokenize(e);return this.cfg.postProcess?this.cfg.postProcess(n):n}buildRulesBeforeParams(e){var t,r;return this.validRules([{type:"BLOCK_COMMENT",regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:"BLOCK_COMMENT",regex:e.nestedBlockComments?new kVc:/(\/\*[^]*?\*\/)/uy},{type:"LINE_COMMENT",regex:SVc((t=e.lineCommentTypes)!=null?t:["--"])},{type:"QUOTED_IDENTIFIER",regex:pUi(e.identTypes)},{type:"NUMBER",regex:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:"RESERVED_PHRASE",regex:$ce((r=e.reservedPhrases)!=null?r:[],e.identChars),text:dD},{type:"CASE",regex:/CASE\b/iuy,text:dD},{type:"END",regex:/END\b/iuy,text:dD},{type:"BETWEEN",regex:/BETWEEN\b/iuy,text:dD},{type:"LIMIT",regex:e.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:dD},{type:"RESERVED_CLAUSE",regex:$ce(e.reservedClauses,e.identChars),text:dD},{type:"RESERVED_SELECT",regex:$ce(e.reservedSelect,e.identChars),text:dD},{type:"RESERVED_SET_OPERATION",regex:$ce(e.reservedSetOperations,e.identChars),text:dD},{type:"WHEN",regex:/WHEN\b/iuy,text:dD},{type:"ELSE",regex:/ELSE\b/iuy,text:dD},{type:"THEN",regex:/THEN\b/iuy,text:dD},{type:"RESERVED_JOIN",regex:$ce(e.reservedJoins,e.identChars),text:dD},{type:"AND",regex:/AND\b/iuy,text:dD},{type:"OR",regex:/OR\b/iuy,text:dD},{type:"XOR",regex:e.supportsXor?/XOR\b/iuy:void 0,text:dD},{type:"RESERVED_FUNCTION_NAME",regex:$ce(e.reservedFunctionNames,e.identChars),text:dD},{type:"RESERVED_DATA_TYPE",regex:$ce(e.reservedDataTypes,e.identChars),text:dD},{type:"RESERVED_KEYWORD",regex:$ce(e.reservedKeywords,e.identChars),text:dD}])}buildRulesAfterParams(e){var t,r;return this.validRules([{type:"VARIABLE",regex:e.variableTypes?wVc(e.variableTypes):void 0},{type:"STRING",regex:pUi(e.stringTypes)},{type:"IDENTIFIER",regex:TVc(e.identChars)},{type:"DELIMITER",regex:/[;]/uy},{type:"COMMA",regex:/[,]/y},{type:"OPEN_PAREN",regex:gUi("open",e.extraParens)},{type:"CLOSE_PAREN",regex:gUi("close",e.extraParens)},{type:"OPERATOR",regex:AUi(["+","-","/",">","<","=","<>","<=",">=","!=",...(t=e.operators)!=null?t:[]])},{type:"ASTERISK",regex:/[*]/uy},{type:"PROPERTY_ACCESS_OPERATOR",regex:AUi([".",...(r=e.propertyAccessOperators)!=null?r:[]])}])}buildParamRules(e,t){var r,n,a,o,l;let A={named:t?.named||((r=e.paramTypes)==null?void 0:r.named)||[],quoted:t?.quoted||((n=e.paramTypes)==null?void 0:n.quoted)||[],numbered:t?.numbered||((a=e.paramTypes)==null?void 0:a.numbered)||[],positional:typeof t?.positional=="boolean"?t.positional:(o=e.paramTypes)==null?void 0:o.positional,custom:t?.custom||((l=e.paramTypes)==null?void 0:l.custom)||[]};return this.validRules([{type:"NAMED_PARAMETER",regex:aVr(A.named,NUi(e.paramChars||e.identChars)),key:f=>f.slice(1)},{type:"QUOTED_PARAMETER",regex:aVr(A.quoted,RUi(e.identTypes)),key:f=>(({tokenKey:I,quoteChar:C})=>I.replace(new RegExp(b4("\\"+C),"gu"),C))({tokenKey:f.slice(2,-1),quoteChar:f.slice(-1)})},{type:"NUMBERED_PARAMETER",regex:aVr(A.numbered,"[0-9]+"),key:f=>f.slice(1)},{type:"POSITIONAL_PARAMETER",regex:A.positional?/[?]/y:void 0},...A.custom.map(f=>{var I;return{type:"CUSTOM_PARAMETER",regex:zCe(f.regex),key:(I=f.key)!=null?I:C=>C}})])}validRules(e){return e.filter(t=>!!t.regex)}},dD=e=>Gvt(e.toUpperCase()),IUi=new Map,GVc=e=>{let t=IUi.get(e);return t||(t=FVc(e),IUi.set(e,t)),t},FVc=e=>({tokenizer:new xVc(e.tokenizerOptions,e.name),formatOptions:ZVc(e.formatOptions)}),ZVc=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(r=>[r,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!=null?t:e.onelineClauses).map(r=>[r,!0]))}};function LVc(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function QDe(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}var VVc=class{constructor(e){this.params=e,this.index=0}get({key:e,text:t}){return this.params?e?this.params[e]:this.params[this.index++]:t}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(e){this.index=e}};function PVc(e){return e.map(WVc).map(OVc).map(MVc).map(HVc).map(YVc)}var WVc=(e,t,r)=>{if(BUi(e.type)){let n=QVc(r,t);if(n&&n.type==="PROPERTY_ACCESS_OPERATOR")return tL(qk({},e),{type:"IDENTIFIER",text:e.raw})}return e},OVc=(e,t,r)=>{if(e.type==="RESERVED_FUNCTION_NAME"){let n=HKe(r,t);if(!n||!xUi(n))return tL(qk({},e),{type:"RESERVED_KEYWORD"})}return e},MVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&xUi(n))return tL(qk({},e),{type:"RESERVED_PARAMETERIZED_DATA_TYPE"})}return e},HVc=(e,t,r)=>{if(e.type==="IDENTIFIER"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_IDENTIFIER"})}return e},YVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_KEYWORD"})}return e},QVc=(e,t)=>HKe(e,t,-1),HKe=(e,t,r=1)=>{let n=1;for(;e[t+n*r]&&XVc(e[t+n*r]);)n++;return e[t+n*r]},xUi=e=>e.type==="OPEN_PAREN"&&e.text==="(",GUi=e=>e.type==="OPEN_PAREN"&&e.text==="[",XVc=e=>e.type==="BLOCK_COMMENT"||e.type==="LINE_COMMENT",FUi=class{constructor(e){this.tokenize=e,this.index=0,this.tokens=[],this.input=""}reset(e,t){this.input=e,this.index=0,this.tokens=this.tokenize(e)}next(){return this.tokens[this.index++]}save(){}formatError(e){let{line:t,col:r}=DUi(this.input,e.start);return`Parse error at token: ${e.text} at line ${t} column ${r}`}has(e){return e in SUi}};function cVr(e){return e[0]}var wf=new FUi(e=>[]),KCe=([[e]])=>e,pD=e=>({type:"keyword",tokenType:e.type,text:e.text,raw:e.raw}),hUi=e=>({type:"data_type",text:e.text,raw:e.raw}),fD=(e,{leading:t,trailing:r})=>(t?.length&&(e=tL(qk({},e),{leadingComments:t})),r?.length&&(e=tL(qk({},e),{trailingComments:r})),e),JVc=(e,{leading:t,trailing:r})=>{if(t?.length){let[n,...a]=e;e=[fD(n,{leading:t}),...a]}if(r?.length){let n=e.slice(0,-1),a=e[e.length-1];e=[...n,fD(a,{trailing:r})]}return e},UVc={Lexer:wf,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{let t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[wf.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[wf.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:"statement",children:e,hasSemicolon:t.type==="DELIMITER"})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:KCe},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:cVr},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[wf.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,r,n])=>{if(n){let[a,o]=n;return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),offset:r,count:o}}else return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),count:r}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,r]])=>({type:"clause",nameKw:pD(e),children:[t,...r]})},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:"clause",nameKw:pD(e),children:[]})},{name:"all_columns_asterisk",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:"all_columns_asterisk"})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[wf.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:"clause",nameKw:pD(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[wf.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:"set_operation",nameKw:pD(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:cVr},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>fD(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:KCe},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:KCe},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:KCe},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:KCe},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:KCe},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:KCe},{name:"array_subscript",symbols:[wf.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD({type:"identifier",quoted:!1,text:e.text},{trailing:t}),parenthesis:r})},{name:"array_subscript",symbols:[wf.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"function_call",symbols:[wf.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,r])=>({type:"function_call",nameKw:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",wf.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,r,n,[a]])=>({type:"property_access",object:fD(e,{trailing:t}),operator:r.text,property:fD(a,{leading:n})})},{name:"between_predicate",symbols:[wf.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",wf.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,r,n,a,o,l])=>({type:"between_predicate",betweenKw:pD(e),expr1:JVc(r,{leading:t,trailing:n}),andKw:pD(a),expr2:[fD(l,{leading:o})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:cVr},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[wf.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",wf.has("END")?{type:"END"}:END],postprocess:([e,t,r,n,a])=>({type:"case_expression",caseKw:fD(pD(e),{trailing:t}),endKw:pD(a),expr:r||[],clauses:n})},{name:"case_clause",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",wf.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,r,n,a,o])=>({type:"case_when",whenKw:fD(pD(e),{trailing:t}),thenKw:fD(pD(n),{trailing:a}),condition:r,result:o})},{name:"case_clause",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,r])=>({type:"case_else",elseKw:fD(pD(e),{trailing:t}),result:r})},{name:"comma$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:"comma"})},{name:"asterisk$subexpression$1",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"operator$subexpression$1",symbols:[wf.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"identifier$subexpression$1",symbols:[wf.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:"identifier",quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[wf.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:"parameter",key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[wf.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[wf.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:"literal",text:e.text})},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_PHRASE")?{type:"RESERVED_PHRASE"}:RESERVED_PHRASE]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"data_type$subexpression$1",symbols:[wf.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>hUi(e)},{name:"data_type",symbols:[wf.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,r])=>({type:"parameterized_data_type",dataType:fD(hUi(e),{trailing:t}),parenthesis:r})},{name:"logic_operator$subexpression$1",symbols:[wf.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[wf.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[wf.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"other_keyword$subexpression$1",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[wf.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[wf.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:"line_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:"block_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:"disable_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},KVc=UVc,{Parser:jVc,Grammar:zVc}=kUi.default;function qVc(e){let t={},r=new FUi(a=>[...PVc(e.tokenize(a,t)),vUi(a.length)]),n=new jVc(zVc.fromCompiled(KVc),{lexer:r});return{parse:(a,o)=>{t=o;let{results:l}=n.feed(a);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar -${JSON.stringify(l,void 0,2)}`)}}}var ZUi=class{constructor(e){this.indentation=e,this.items=[]}add(...e){for(let t of e)switch(t){case 0:this.items.push(0);break;case 1:this.trimHorizontalWhitespace();break;case 2:this.trimWhitespace();break;case 3:this.trimHorizontalWhitespace(),this.addNewline(3);break;case 4:this.trimHorizontalWhitespace(),this.addNewline(4);break;case 5:this.addIndentation();break;case 6:this.items.push(6);break;default:this.items.push(t)}}trimHorizontalWhitespace(){for(;$Vc(MKe(this.items));)this.items.pop()}trimWhitespace(){for(;ePc(MKe(this.items));)this.items.pop()}addNewline(e){if(this.items.length>0)switch(MKe(this.items)){case 3:this.items.pop(),this.items.push(e);break;case 4:break;default:this.items.push(e);break}}addIndentation(){for(let e=0;ethis.itemToString(e)).join("")}getLayoutItems(){return this.items}itemToString(e){switch(e){case 0:return" ";case 3:case 4:return` -`;case 6:return this.indentation.getSingleIndent();default:return e}}},$Vc=e=>e===0||e===6,ePc=e=>e===0||e===6||e===3;function mUi(e,t){if(t==="standard")return e;let r=[];return e.length>=10&&e.includes(" ")&&([e,...r]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...r].join(" ")}function CUi(e){return pZc(e)||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="LIMIT"}var lVr="top-level",tPc="block-level",LUi=class{constructor(e){this.indent=e,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(lVr)}increaseBlockLevel(){this.indentTypes.push(tPc)}decreaseTopLevel(){this.indentTypes.length>0&&MKe(this.indentTypes)===lVr&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===lVr;);}},rPc=class extends ZUi{constructor(e){super(new LUi("")),this.expressionWidth=e,this.length=0,this.trailingSpace=!1}add(...e){if(e.forEach(t=>this.addToLength(t)),this.length>this.expressionWidth)throw new uVr;super.add(...e)}addToLength(e){if(typeof e=="string")this.length+=e.length,this.trailingSpace=!1;else{if(e===4||e===3)throw new uVr;e===5||e===6||e===0?this.trailingSpace||(this.length++,this.trailingSpace=!0):(e===2||e===1)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}},uVr=class extends Error{},nPc=class gVr{constructor({cfg:t,dialectCfg:r,params:n,layout:a,inline:o=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=r,this.inline=o,this.params=n,this.layout=a}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let r;switch(t.array.type){case"data_type":r=this.showDataType(t.array);break;case"keyword":r=this.showKw(t.array);break;default:r=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(r)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(1,t.operator),this.formatNode(t.property)}formatParenthesis(t){let r=this.formatInlineExpression(t.children);r?(this.layout.add(t.openParen),this.layout.add(...r.getLayoutItems()),this.layout.add(1,t.closeParen,0)):(this.layout.add(t.openParen,3),QDe(this.cfg)?(this.layout.add(5),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(3,5,t.closeParen,0))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),0),this.layout=this.formatSubExpression(t.expr1),this.layout.add(1,0,this.showNonTabularKw(t.andKw),0),this.layout=this.formatSubExpression(t.expr2),this.layout.add(0)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(3,5),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(3,5),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(3,5),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):QDe(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return QDe(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.indentation.increaseTopLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.add(5),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(3,5,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),QDe(this.cfg)?this.layout.add(0):this.layout.add(3,5),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(1,",",0),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",0)}formatLiteral(t){this.layout.add(t.text,0)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),0)}formatParameter(t){this.layout.add(this.params.get(t),0)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(1,t):t===":"?this.layout.add(1,t,0):this.layout.add(t,0)}formatComma(t){this.inline?this.layout.add(1,",",0):this.layout.add(1,",",3,5)}withComments(t,r){this.formatComments(t.leadingComments),r(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(r=>{r.type==="line_comment"?this.formatLineComment(r):this.formatBlockComment(r)})}formatLineComment(t){oVr(t.precedingWhitespace||"")?this.layout.add(3,5,t.text,4,5):this.layout.getLayoutItems().length>0?this.layout.add(2,0,t.text,4,5):this.layout.add(t.text,4,5)}formatBlockComment(t){t.type==="block_comment"&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(r=>{this.layout.add(3,5,r)}),this.layout.add(3,5)):this.layout.add(t.text,0)}isMultilineBlockComment(t){return oVr(t.text)||oVr(t.precedingWhitespace||"")}isDocComment(t){let r=t.split(/\n/);return/^\/\*\*?$/.test(r[0])&&r.slice(1,r.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(MKe(r))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(r=>/^\s*\*/.test(r)?" "+r.replace(/^\s*/,""):r):t.split(/\n/).map(r=>r.replace(/^\s*/,""))}formatSubExpression(t){return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){let r=this.params.getPositionalParameterIndex();try{return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new rPc(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof uVr){this.params.setPositionalParameterIndex(r);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case"RESERVED_JOIN":return this.formatJoin(t);case"AND":case"OR":case"XOR":return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0)}formatKeyword(t){this.layout.add(this.showKw(t),0)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0):this.layout.add(this.showKw(t),3,5)}formatDataType(t){this.layout.add(this.showDataType(t),0)}showKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}},iPc=class{constructor(e,t){this.dialect=e,this.cfg=t,this.params=new VVc(this.cfg.params)}format(e){let t=this.parse(e);return this.formatAst(t).trimEnd()}parse(e){return qVc(this.dialect.tokenizer).parse(e,this.cfg.paramTypes||{})}formatAst(e){return e.map(t=>this.formatStatement(t)).join(` -`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new nPc({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new ZUi(new LUi(LVc(this.cfg)))}).format(e.children);return e.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?t.add(3,";"):t.add(2,";")),t.toString()}},Fvt=class extends Error{};function sPc(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new Fvt(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new Fvt(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!oPc(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!aPc(e.paramTypes))throw new Fvt("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function oPc(e){return(e instanceof Array?e:Object.values(e)).every(r=>typeof r=="string")}function aPc(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var VUi={bigquery:"bigquery",db2:"db2",db2i:"db2i",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},cPc=Object.keys(VUi),lPc={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},PUi=(e,t={})=>{if(typeof t.language=="string"&&!cPc.includes(t.language))throw new Fvt(`Unsupported SQL dialect: ${t.language}`);let r=VUi[t.language||"sql"];return uPc(e,tL(qk({},t),{dialect:EUi[r]}))},uPc=(e,t)=>{var r=t,{dialect:n}=r,a=iZc(r,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);let o=sPc(qk(qk({},lPc),a));return new iPc(GVc(n),o).format(e)};var YG=Nt(Pc(),1),gPc=({children:e})=>e?(0,YG.jsxs)(Vvt.Box,{paddingLeft:4,children:[(0,YG.jsx)(Zj.Text,{children:"SQL:"}),(0,YG.jsx)(Zj.Text,{children:" "}),(0,YG.jsx)(Zj.Text,{children:new WUi.SqlHighlighter().highlight(PUi(e,{language:"postgresql"}))})]}):null,APc=({children:e})=>{if(e&&Array.isArray(e)&&e.length>0){let t=e.reduce((r,n,a)=>(r.push((0,YG.jsx)(Zj.Text,{color:"yellow",children:n},OW())),ae?(0,YG.jsxs)(Vvt.Box,{marginTop:1,flexDirection:"column",children:[(0,YG.jsx)(gPc,{children:e[O9r]}),(0,YG.jsx)(APc,{children:e[M9r]})]}):null;var MUi=Nt(Al(),1);var dVr=Nt(Pc(),1),HUi=({children:e})=>e?(0,dVr.jsx)(MUi.Box,{paddingBottom:1,marginTop:1,children:(0,dVr.jsx)(kyt,{children:e})}):null;var E4=Nt(Pc(),1),Pvt=({namespace:e,body:t,stack:r,attributes:n={}})=>(0,E4.jsxs)(JDe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:[(0,E4.jsx)(JDe.Box,{flexDirection:"row",children:(0,E4.jsxs)(JDe.Box,{flexGrow:1,children:[(0,E4.jsx)(JDe.Box,{paddingRight:1,children:(0,E4.jsx)(xJi,{children:e||n[LLr]})}),(0,E4.jsx)(JDe.Box,{children:(0,E4.jsx)(RJi,{children:t})})]})}),(0,E4.jsx)(HUi,{children:r||n["@stack"]}),(0,E4.jsx)(OUi,{children:n})]});var Wvt=Nt(Pc(),1),qCe=class extends YUi.BaseCommand{showWarnings=Su.Boolean("-w,--show-warnings",!1);renderLogRecord(t){t instanceof Error?xE((0,Wvt.jsx)(Fk,{error:t})).split(` +If possible, please select a more specific dialect (like sqlite, postgresql, etc).`:`SQL dialect used: "${this.dialectName}".`}getWhitespace(){uUi.lastIndex=this.index;let e=uUi.exec(this.input);if(e)return this.index+=e[0].length,e[0]}getNextToken(){for(let e of this.rules){let t=this.match(e);if(t)return t}}match(e){e.regex.lastIndex=this.index;let t=e.regex.exec(this.input);if(t){let r=t[0],n={type:e.type,raw:r,text:e.text?e.text(r):r,start:this.index};return e.key&&(n.key=e.key(r)),this.index+=r.length,n}}},fUi=/\/\*/uy,DVc=/[\s\S]/uy,kVc=/\*\//uy,xVc=class{constructor(){this.lastIndex=0}exec(e){let t="",r,n=0;if(r=this.matchSection(fUi,e))t+=r,n++;else return null;for(;n>0;)if(r=this.matchSection(fUi,e))t+=r,n++;else if(r=this.matchSection(kVc,e))t+=r,n--;else if(r=this.matchSection(DVc,e))t+=r;else return null;return[t]}matchSection(e,t){e.lastIndex=this.lastIndex;let r=e.exec(t);return r&&(this.lastIndex+=r[0].length),r?r[0]:null}},GVc=class{constructor(e,t){this.cfg=e,this.dialectName=t,this.rulesBeforeParams=this.buildRulesBeforeParams(e),this.rulesAfterParams=this.buildRulesAfterParams(e)}tokenize(e,t){let r=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,t),...this.rulesAfterParams],n=new NVc(r,this.dialectName).tokenize(e);return this.cfg.postProcess?this.cfg.postProcess(n):n}buildRulesBeforeParams(e){var t,r;return this.validRules([{type:"BLOCK_COMMENT",regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:"BLOCK_COMMENT",regex:e.nestedBlockComments?new xVc:/(\/\*[^]*?\*\/)/uy},{type:"LINE_COMMENT",regex:vVc((t=e.lineCommentTypes)!=null?t:["--"])},{type:"QUOTED_IDENTIFIER",regex:pUi(e.identTypes)},{type:"NUMBER",regex:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:"RESERVED_PHRASE",regex:$ce((r=e.reservedPhrases)!=null?r:[],e.identChars),text:dD},{type:"CASE",regex:/CASE\b/iuy,text:dD},{type:"END",regex:/END\b/iuy,text:dD},{type:"BETWEEN",regex:/BETWEEN\b/iuy,text:dD},{type:"LIMIT",regex:e.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:dD},{type:"RESERVED_CLAUSE",regex:$ce(e.reservedClauses,e.identChars),text:dD},{type:"RESERVED_SELECT",regex:$ce(e.reservedSelect,e.identChars),text:dD},{type:"RESERVED_SET_OPERATION",regex:$ce(e.reservedSetOperations,e.identChars),text:dD},{type:"WHEN",regex:/WHEN\b/iuy,text:dD},{type:"ELSE",regex:/ELSE\b/iuy,text:dD},{type:"THEN",regex:/THEN\b/iuy,text:dD},{type:"RESERVED_JOIN",regex:$ce(e.reservedJoins,e.identChars),text:dD},{type:"AND",regex:/AND\b/iuy,text:dD},{type:"OR",regex:/OR\b/iuy,text:dD},{type:"XOR",regex:e.supportsXor?/XOR\b/iuy:void 0,text:dD},{type:"RESERVED_FUNCTION_NAME",regex:$ce(e.reservedFunctionNames,e.identChars),text:dD},{type:"RESERVED_DATA_TYPE",regex:$ce(e.reservedDataTypes,e.identChars),text:dD},{type:"RESERVED_KEYWORD",regex:$ce(e.reservedKeywords,e.identChars),text:dD}])}buildRulesAfterParams(e){var t,r;return this.validRules([{type:"VARIABLE",regex:e.variableTypes?TVc(e.variableTypes):void 0},{type:"STRING",regex:pUi(e.stringTypes)},{type:"IDENTIFIER",regex:RVc(e.identChars)},{type:"DELIMITER",regex:/[;]/uy},{type:"COMMA",regex:/[,]/y},{type:"OPEN_PAREN",regex:gUi("open",e.extraParens)},{type:"CLOSE_PAREN",regex:gUi("close",e.extraParens)},{type:"OPERATOR",regex:AUi(["+","-","/",">","<","=","<>","<=",">=","!=",...(t=e.operators)!=null?t:[]])},{type:"ASTERISK",regex:/[*]/uy},{type:"PROPERTY_ACCESS_OPERATOR",regex:AUi([".",...(r=e.propertyAccessOperators)!=null?r:[]])}])}buildParamRules(e,t){var r,n,a,o,l;let A={named:t?.named||((r=e.paramTypes)==null?void 0:r.named)||[],quoted:t?.quoted||((n=e.paramTypes)==null?void 0:n.quoted)||[],numbered:t?.numbered||((a=e.paramTypes)==null?void 0:a.numbered)||[],positional:typeof t?.positional=="boolean"?t.positional:(o=e.paramTypes)==null?void 0:o.positional,custom:t?.custom||((l=e.paramTypes)==null?void 0:l.custom)||[]};return this.validRules([{type:"NAMED_PARAMETER",regex:aVr(A.named,NUi(e.paramChars||e.identChars)),key:f=>f.slice(1)},{type:"QUOTED_PARAMETER",regex:aVr(A.quoted,RUi(e.identTypes)),key:f=>(({tokenKey:I,quoteChar:C})=>I.replace(new RegExp(b4("\\"+C),"gu"),C))({tokenKey:f.slice(2,-1),quoteChar:f.slice(-1)})},{type:"NUMBERED_PARAMETER",regex:aVr(A.numbered,"[0-9]+"),key:f=>f.slice(1)},{type:"POSITIONAL_PARAMETER",regex:A.positional?/[?]/y:void 0},...A.custom.map(f=>{var I;return{type:"CUSTOM_PARAMETER",regex:zCe(f.regex),key:(I=f.key)!=null?I:C=>C}})])}validRules(e){return e.filter(t=>!!t.regex)}},dD=e=>Gvt(e.toUpperCase()),IUi=new Map,FVc=e=>{let t=IUi.get(e);return t||(t=ZVc(e),IUi.set(e,t)),t},ZVc=e=>({tokenizer:new GVc(e.tokenizerOptions,e.name),formatOptions:LVc(e.formatOptions)}),LVc=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(r=>[r,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!=null?t:e.onelineClauses).map(r=>[r,!0]))}};function VVc(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function QDe(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}var PVc=class{constructor(e){this.params=e,this.index=0}get({key:e,text:t}){return this.params?e?this.params[e]:this.params[this.index++]:t}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(e){this.index=e}};function WVc(e){return e.map(OVc).map(MVc).map(HVc).map(YVc).map(QVc)}var OVc=(e,t,r)=>{if(BUi(e.type)){let n=XVc(r,t);if(n&&n.type==="PROPERTY_ACCESS_OPERATOR")return tL(qk({},e),{type:"IDENTIFIER",text:e.raw})}return e},MVc=(e,t,r)=>{if(e.type==="RESERVED_FUNCTION_NAME"){let n=HKe(r,t);if(!n||!xUi(n))return tL(qk({},e),{type:"RESERVED_KEYWORD"})}return e},HVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&xUi(n))return tL(qk({},e),{type:"RESERVED_PARAMETERIZED_DATA_TYPE"})}return e},YVc=(e,t,r)=>{if(e.type==="IDENTIFIER"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_IDENTIFIER"})}return e},QVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_KEYWORD"})}return e},XVc=(e,t)=>HKe(e,t,-1),HKe=(e,t,r=1)=>{let n=1;for(;e[t+n*r]&&JVc(e[t+n*r]);)n++;return e[t+n*r]},xUi=e=>e.type==="OPEN_PAREN"&&e.text==="(",GUi=e=>e.type==="OPEN_PAREN"&&e.text==="[",JVc=e=>e.type==="BLOCK_COMMENT"||e.type==="LINE_COMMENT",FUi=class{constructor(e){this.tokenize=e,this.index=0,this.tokens=[],this.input=""}reset(e,t){this.input=e,this.index=0,this.tokens=this.tokenize(e)}next(){return this.tokens[this.index++]}save(){}formatError(e){let{line:t,col:r}=DUi(this.input,e.start);return`Parse error at token: ${e.text} at line ${t} column ${r}`}has(e){return e in SUi}};function cVr(e){return e[0]}var wf=new FUi(e=>[]),KCe=([[e]])=>e,pD=e=>({type:"keyword",tokenType:e.type,text:e.text,raw:e.raw}),hUi=e=>({type:"data_type",text:e.text,raw:e.raw}),fD=(e,{leading:t,trailing:r})=>(t?.length&&(e=tL(qk({},e),{leadingComments:t})),r?.length&&(e=tL(qk({},e),{trailingComments:r})),e),UVc=(e,{leading:t,trailing:r})=>{if(t?.length){let[n,...a]=e;e=[fD(n,{leading:t}),...a]}if(r?.length){let n=e.slice(0,-1),a=e[e.length-1];e=[...n,fD(a,{trailing:r})]}return e},KVc={Lexer:wf,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{let t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[wf.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[wf.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:"statement",children:e,hasSemicolon:t.type==="DELIMITER"})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:KCe},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:cVr},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[wf.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,r,n])=>{if(n){let[a,o]=n;return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),offset:r,count:o}}else return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),count:r}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,r]])=>({type:"clause",nameKw:pD(e),children:[t,...r]})},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:"clause",nameKw:pD(e),children:[]})},{name:"all_columns_asterisk",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:"all_columns_asterisk"})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[wf.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:"clause",nameKw:pD(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[wf.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:"set_operation",nameKw:pD(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:cVr},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>fD(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:KCe},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:KCe},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:KCe},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:KCe},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:KCe},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:KCe},{name:"array_subscript",symbols:[wf.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD({type:"identifier",quoted:!1,text:e.text},{trailing:t}),parenthesis:r})},{name:"array_subscript",symbols:[wf.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"function_call",symbols:[wf.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,r])=>({type:"function_call",nameKw:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",wf.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,r,n,[a]])=>({type:"property_access",object:fD(e,{trailing:t}),operator:r.text,property:fD(a,{leading:n})})},{name:"between_predicate",symbols:[wf.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",wf.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,r,n,a,o,l])=>({type:"between_predicate",betweenKw:pD(e),expr1:UVc(r,{leading:t,trailing:n}),andKw:pD(a),expr2:[fD(l,{leading:o})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:cVr},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[wf.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",wf.has("END")?{type:"END"}:END],postprocess:([e,t,r,n,a])=>({type:"case_expression",caseKw:fD(pD(e),{trailing:t}),endKw:pD(a),expr:r||[],clauses:n})},{name:"case_clause",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",wf.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,r,n,a,o])=>({type:"case_when",whenKw:fD(pD(e),{trailing:t}),thenKw:fD(pD(n),{trailing:a}),condition:r,result:o})},{name:"case_clause",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,r])=>({type:"case_else",elseKw:fD(pD(e),{trailing:t}),result:r})},{name:"comma$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:"comma"})},{name:"asterisk$subexpression$1",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"operator$subexpression$1",symbols:[wf.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"identifier$subexpression$1",symbols:[wf.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:"identifier",quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[wf.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:"parameter",key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[wf.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[wf.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:"literal",text:e.text})},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_PHRASE")?{type:"RESERVED_PHRASE"}:RESERVED_PHRASE]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"data_type$subexpression$1",symbols:[wf.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>hUi(e)},{name:"data_type",symbols:[wf.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,r])=>({type:"parameterized_data_type",dataType:fD(hUi(e),{trailing:t}),parenthesis:r})},{name:"logic_operator$subexpression$1",symbols:[wf.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[wf.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[wf.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"other_keyword$subexpression$1",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[wf.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[wf.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:"line_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:"block_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:"disable_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},jVc=KVc,{Parser:zVc,Grammar:qVc}=kUi.default;function $Vc(e){let t={},r=new FUi(a=>[...WVc(e.tokenize(a,t)),vUi(a.length)]),n=new zVc(qVc.fromCompiled(jVc),{lexer:r});return{parse:(a,o)=>{t=o;let{results:l}=n.feed(a);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar +${JSON.stringify(l,void 0,2)}`)}}}var ZUi=class{constructor(e){this.indentation=e,this.items=[]}add(...e){for(let t of e)switch(t){case 0:this.items.push(0);break;case 1:this.trimHorizontalWhitespace();break;case 2:this.trimWhitespace();break;case 3:this.trimHorizontalWhitespace(),this.addNewline(3);break;case 4:this.trimHorizontalWhitespace(),this.addNewline(4);break;case 5:this.addIndentation();break;case 6:this.items.push(6);break;default:this.items.push(t)}}trimHorizontalWhitespace(){for(;ePc(MKe(this.items));)this.items.pop()}trimWhitespace(){for(;tPc(MKe(this.items));)this.items.pop()}addNewline(e){if(this.items.length>0)switch(MKe(this.items)){case 3:this.items.pop(),this.items.push(e);break;case 4:break;default:this.items.push(e);break}}addIndentation(){for(let e=0;ethis.itemToString(e)).join("")}getLayoutItems(){return this.items}itemToString(e){switch(e){case 0:return" ";case 3:case 4:return` +`;case 6:return this.indentation.getSingleIndent();default:return e}}},ePc=e=>e===0||e===6,tPc=e=>e===0||e===6||e===3;function mUi(e,t){if(t==="standard")return e;let r=[];return e.length>=10&&e.includes(" ")&&([e,...r]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...r].join(" ")}function CUi(e){return fZc(e)||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="LIMIT"}var lVr="top-level",rPc="block-level",LUi=class{constructor(e){this.indent=e,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(lVr)}increaseBlockLevel(){this.indentTypes.push(rPc)}decreaseTopLevel(){this.indentTypes.length>0&&MKe(this.indentTypes)===lVr&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===lVr;);}},nPc=class extends ZUi{constructor(e){super(new LUi("")),this.expressionWidth=e,this.length=0,this.trailingSpace=!1}add(...e){if(e.forEach(t=>this.addToLength(t)),this.length>this.expressionWidth)throw new uVr;super.add(...e)}addToLength(e){if(typeof e=="string")this.length+=e.length,this.trailingSpace=!1;else{if(e===4||e===3)throw new uVr;e===5||e===6||e===0?this.trailingSpace||(this.length++,this.trailingSpace=!0):(e===2||e===1)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}},uVr=class extends Error{},iPc=class gVr{constructor({cfg:t,dialectCfg:r,params:n,layout:a,inline:o=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=r,this.inline=o,this.params=n,this.layout=a}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let r;switch(t.array.type){case"data_type":r=this.showDataType(t.array);break;case"keyword":r=this.showKw(t.array);break;default:r=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(r)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(1,t.operator),this.formatNode(t.property)}formatParenthesis(t){let r=this.formatInlineExpression(t.children);r?(this.layout.add(t.openParen),this.layout.add(...r.getLayoutItems()),this.layout.add(1,t.closeParen,0)):(this.layout.add(t.openParen,3),QDe(this.cfg)?(this.layout.add(5),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(3,5,t.closeParen,0))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),0),this.layout=this.formatSubExpression(t.expr1),this.layout.add(1,0,this.showNonTabularKw(t.andKw),0),this.layout=this.formatSubExpression(t.expr2),this.layout.add(0)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(3,5),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(3,5),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(3,5),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):QDe(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return QDe(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.indentation.increaseTopLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.add(5),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(3,5,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),QDe(this.cfg)?this.layout.add(0):this.layout.add(3,5),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(1,",",0),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",0)}formatLiteral(t){this.layout.add(t.text,0)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),0)}formatParameter(t){this.layout.add(this.params.get(t),0)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(1,t):t===":"?this.layout.add(1,t,0):this.layout.add(t,0)}formatComma(t){this.inline?this.layout.add(1,",",0):this.layout.add(1,",",3,5)}withComments(t,r){this.formatComments(t.leadingComments),r(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(r=>{r.type==="line_comment"?this.formatLineComment(r):this.formatBlockComment(r)})}formatLineComment(t){oVr(t.precedingWhitespace||"")?this.layout.add(3,5,t.text,4,5):this.layout.getLayoutItems().length>0?this.layout.add(2,0,t.text,4,5):this.layout.add(t.text,4,5)}formatBlockComment(t){t.type==="block_comment"&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(r=>{this.layout.add(3,5,r)}),this.layout.add(3,5)):this.layout.add(t.text,0)}isMultilineBlockComment(t){return oVr(t.text)||oVr(t.precedingWhitespace||"")}isDocComment(t){let r=t.split(/\n/);return/^\/\*\*?$/.test(r[0])&&r.slice(1,r.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(MKe(r))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(r=>/^\s*\*/.test(r)?" "+r.replace(/^\s*/,""):r):t.split(/\n/).map(r=>r.replace(/^\s*/,""))}formatSubExpression(t){return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){let r=this.params.getPositionalParameterIndex();try{return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new nPc(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof uVr){this.params.setPositionalParameterIndex(r);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case"RESERVED_JOIN":return this.formatJoin(t);case"AND":case"OR":case"XOR":return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0)}formatKeyword(t){this.layout.add(this.showKw(t),0)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0):this.layout.add(this.showKw(t),3,5)}formatDataType(t){this.layout.add(this.showDataType(t),0)}showKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}},sPc=class{constructor(e,t){this.dialect=e,this.cfg=t,this.params=new PVc(this.cfg.params)}format(e){let t=this.parse(e);return this.formatAst(t).trimEnd()}parse(e){return $Vc(this.dialect.tokenizer).parse(e,this.cfg.paramTypes||{})}formatAst(e){return e.map(t=>this.formatStatement(t)).join(` +`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new iPc({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new ZUi(new LUi(VVc(this.cfg)))}).format(e.children);return e.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?t.add(3,";"):t.add(2,";")),t.toString()}},Fvt=class extends Error{};function oPc(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new Fvt(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new Fvt(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!aPc(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!cPc(e.paramTypes))throw new Fvt("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function aPc(e){return(e instanceof Array?e:Object.values(e)).every(r=>typeof r=="string")}function cPc(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var VUi={bigquery:"bigquery",db2:"db2",db2i:"db2i",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},lPc=Object.keys(VUi),uPc={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},PUi=(e,t={})=>{if(typeof t.language=="string"&&!lPc.includes(t.language))throw new Fvt(`Unsupported SQL dialect: ${t.language}`);let r=VUi[t.language||"sql"];return gPc(e,tL(qk({},t),{dialect:EUi[r]}))},gPc=(e,t)=>{var r=t,{dialect:n}=r,a=sZc(r,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);let o=oPc(qk(qk({},uPc),a));return new sPc(FVc(n),o).format(e)};var YG=Nt(Pc(),1),APc=({children:e})=>e?(0,YG.jsxs)(Vvt.Box,{paddingLeft:4,children:[(0,YG.jsx)(Zj.Text,{children:"SQL:"}),(0,YG.jsx)(Zj.Text,{children:" "}),(0,YG.jsx)(Zj.Text,{children:new WUi.SqlHighlighter().highlight(PUi(e,{language:"postgresql"}))})]}):null,dPc=({children:e})=>{if(e&&Array.isArray(e)&&e.length>0){let t=e.reduce((r,n,a)=>(r.push((0,YG.jsx)(Zj.Text,{color:"yellow",children:n},OW())),ae?(0,YG.jsxs)(Vvt.Box,{marginTop:1,flexDirection:"column",children:[(0,YG.jsx)(APc,{children:e[O9r]}),(0,YG.jsx)(dPc,{children:e[M9r]})]}):null;var MUi=Nt(Al(),1);var dVr=Nt(Pc(),1),HUi=({children:e})=>e?(0,dVr.jsx)(MUi.Box,{paddingBottom:1,marginTop:1,children:(0,dVr.jsx)(kyt,{children:e})}):null;var E4=Nt(Pc(),1),Pvt=({namespace:e,body:t,stack:r,attributes:n={}})=>(0,E4.jsxs)(JDe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:[(0,E4.jsx)(JDe.Box,{flexDirection:"row",children:(0,E4.jsxs)(JDe.Box,{flexGrow:1,children:[(0,E4.jsx)(JDe.Box,{paddingRight:1,children:(0,E4.jsx)(xJi,{children:e||n[LLr]})}),(0,E4.jsx)(JDe.Box,{children:(0,E4.jsx)(RJi,{children:t})})]})}),(0,E4.jsx)(HUi,{children:r||n["@stack"]}),(0,E4.jsx)(OUi,{children:n})]});var Wvt=Nt(Pc(),1),qCe=class extends YUi.BaseCommand{showWarnings=Su.Boolean("-w,--show-warnings",!1);renderLogRecord(t){t instanceof Error?xE((0,Wvt.jsx)(Fk,{error:t})).split(` `).forEach(r=>{console.log(r)}):"severityNumber"in t&&"record"in t?xE((0,Wvt.jsx)(Fk,{error:t.record})).split(` `).forEach(r=>{t.severityNumber===y4.SeverityNumber.WARN?this.showWarnings&&console.log(r):console.log(r)}):"severityNumber"in t?xE((0,Wvt.jsx)(Pvt,{...t})).split(` `).forEach(r=>{t.severityNumber<=y4.SeverityNumber.INFO?console.log(r):t.severityNumber<=y4.SeverityNumber.WARN?this.showWarnings&&console.log(r):console.log(r)}):console.log(`Unknown record type: ${JSON.stringify(t)}`)}};var fVr=Nt(Pc(),1),YKe=class extends qCe{static paths=[["service","build"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(pVr.Filename.pnpCjs)&&t.includes(pVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await QUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await XUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await UUi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await JUi.execUtils.pipevp(o,["service","build",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,KUi.render)((0,fVr.jsx)(r2t,{service:t}));try{return(await t.build()).forEach(a=>{this.renderLogRecord(a)}),0}catch(n){return n instanceof Error?xE((0,fVr.jsx)(Fk,{error:n})).split(` -`).forEach(a=>{console.error(a)}):console.error(n),1}finally{r()}}};var jUi=Nt(Bn(),1),zUi=Nt(Bn(),1),IVr=Nt(no(),1),qUi=Nt(Bn(),1),$Ui=Nt(no(),1),eKi=Nt(Al(),1);var tKi=Nt(Pc(),1),QKe=class extends qCe{static paths=[["service","dev"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(IVr.Filename.pnpCjs)&&t.includes(IVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await jUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await $Ui.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await qUi.execUtils.pipevp(o,["service","dev",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,eKi.render)((0,tKi.jsx)(r2t,{service:t}));try{return await t.watch(n=>{this.renderLogRecord(n)}),0}catch(n){return console.error(n),1}finally{r()}}};var rKi={commands:[YKe,QKe]};var vVr={};sI(vVr,{AbstractTestCommand:()=>zee,TestIntegrationCommand:()=>UKe,TestUnitCommand:()=>KKe,default:()=>EKi});var bVr=Nt(no(),1);var hKi=Nt(el(),1),_Vr=Nt(Bn(),1),yVr=Nt(Bn(),1),mKi=Nt(Bn(),1),CKi=Nt(no(),1);$c();$c();var _Ki=Nt(Al(),1);CZ();import{readFileSync as pPc}from"node:fs";import{relative as IKi}from"node:path";var nKi=Nt(Al(),1),XKe=Nt(Al(),1);var iKi=Nt(Ec(),1);var pH=Nt(Pc(),1),sKi=({file:e,messages:t=[]})=>{let r=(0,iKi.useMemo)(()=>t.map(n=>n.endsWith(` -`)?n.replace(/\n$/,""):n).filter(Boolean),[t]);return(0,pH.jsxs)(XKe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",children:[!!e&&(0,pH.jsx)(XKe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,pH.jsx)(A8,{children:e})}),r.length>0&&(0,pH.jsxs)(pH.Fragment,{children:[(0,pH.jsx)(J9,{offset:2}),(0,pH.jsx)(XKe.Box,{flexDirection:"column",marginBottom:1,marginTop:1,marginX:2,children:r.map(n=>(0,pH.jsx)(XKe.Box,{children:(0,pH.jsx)(nKi.Text,{children:n})},OW()))})]})]})};var mVr=Nt(Al(),1),UDe=Nt(Al(),1);var BO=Nt(Pc(),1),oKi=({details:e,source:t,file:r,line:n,column:a})=>r&&t?(0,BO.jsxs)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(A8,{line:n,column:a,children:r})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,children:(0,BO.jsx)(d8,{line:n??1,column:a??1,children:t})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(mVr.Text,{color:"white",children:e.error.message})})]}):(0,BO.jsx)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:(0,BO.jsx)(mVr.Text,{children:e.error.message})});var JKe=Nt(Al(),1),dKi=Nt(Ec(),1),pKi=Nt(Ec(),1);var aKi=Nt(Ec(),1),CVr=Nt(Ec(),1),lKi=Nt(Pc(),1),cKi=({tester:e})=>{let[t,r]=(0,CVr.useState)(0),[n,a]=(0,CVr.useState)(0);return(0,aKi.useEffect)(()=>{let o=f=>{r(f.tests.reduce((I,C)=>I+C.tests+1,0))},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("test:pass",l),e.on("test:fail",l),e.on("end",A),()=>{e.off("start",o),e.off("test:pass",l),e.off("test:fail",l),e.off("end",A)}},[e,t,r,a]),(0,lKi.jsx)(JM,{value:t>0&&n>0?n/t*100:0})};import{relative as uKi}from"node:path";var KDe=Nt(Al(),1),$k=Nt(Al(),1),gKi=Nt(Ec(),1),jDe=Nt(Ec(),1);var ME=Nt(Pc(),1),dPc=({state:e})=>e==="fail"?(0,ME.jsx)($k.Text,{color:"red",children:kI.cross}):e==="pass"?(0,ME.jsx)($k.Text,{color:"green",children:kI.tick}):(0,ME.jsx)($k.Text,{color:"white",children:kI.circleDotted}),AKi=({cwd:e,tester:t})=>{let[r,n]=(0,jDe.useState)(void 0),[a,o]=(0,jDe.useState)(void 0),[l,A]=(0,jDe.useState)(0),[f,I]=(0,jDe.useState)(0),[C,b]=(0,jDe.useState)(0);return(0,gKi.useEffect)(()=>{let E=F=>{A(F.tests.reduce((Q,X)=>Q+X.tests,0)),n(F.tests)},N=F=>{I(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"pass"})},B=F=>{b(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"fail"})};return t.on("start",E),t.on("test:pass",N),t.on("test:fail",B),()=>{t.off("start",E),t.off("test:pass",N),t.off("test:fail",B)}},[t,A,I,b,o]),r?(0,ME.jsxs)(KDe.Box,{flexDirection:"row",width:"100%",children:[(0,ME.jsxs)(KDe.Box,{flexGrow:1,children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),!!a&&(0,ME.jsx)($k.Text,{color:"white",children:a.file})]}),(0,ME.jsx)(KDe.Box,{flexDirection:"row",children:(0,ME.jsxs)(KDe.Box,{children:[(0,ME.jsx)(dPc,{state:a?.state}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"green",children:[f," Pass"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"red",children:[C," Fail"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"white",children:[l," Total"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"gray",children:[r.length||0," Files"]}),(0,ME.jsx)($k.Text,{children:" "})]})})]}):(0,ME.jsxs)(KDe.Box,{flexDirection:"row",children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsx)($k.Text,{color:"white",children:"Loading..."})]})};var ele=Nt(Pc(),1),fKi=({cwd:e,tester:t})=>{let[r,n]=(0,dKi.useState)(!1);return(0,pKi.useEffect)(()=>{let a,o=()=>{a=setTimeout(()=>{n(!0)},1e3)};return t.on("end",o),()=>{a&&clearTimeout(a),t.off("end",o)}},[n]),r?null:(0,ele.jsx)(JKe.Box,{position:"relative",height:7,children:(0,ele.jsxs)(JKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ele.jsx)(JKe.Box,{children:(0,ele.jsx)(AKi,{cwd:e,tester:t})}),(0,ele.jsx)(JKe.Box,{marginTop:1,marginBottom:1,children:(0,ele.jsx)(cKi,{tester:t})})]})})};var zDe=Nt(Pc(),1),zee=class extends hKi.BaseCommand{static usage=_C.Usage({description:"Run tests",details:` +`).forEach(a=>{console.error(a)}):console.error(n),1}finally{r()}}};var jUi=Nt(Bn(),1),zUi=Nt(Bn(),1),IVr=Nt(no(),1),qUi=Nt(Bn(),1),$Ui=Nt(no(),1),eKi=Nt(Al(),1);var tKi=Nt(Pc(),1),QKe=class extends qCe{static paths=[["service","dev"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(IVr.Filename.pnpCjs)&&t.includes(IVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await jUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await $Ui.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await qUi.execUtils.pipevp(o,["service","dev",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,eKi.render)((0,tKi.jsx)(r2t,{service:t}));try{return await t.watch(n=>{this.renderLogRecord(n)}),0}catch(n){return console.error(n),1}finally{r()}}};var rKi={commands:[YKe,QKe]};var vVr={};sI(vVr,{AbstractTestCommand:()=>zee,TestIntegrationCommand:()=>UKe,TestUnitCommand:()=>KKe,default:()=>EKi});var bVr=Nt(no(),1);var hKi=Nt(el(),1),_Vr=Nt(Bn(),1),yVr=Nt(Bn(),1),mKi=Nt(Bn(),1),CKi=Nt(no(),1);$c();$c();var _Ki=Nt(Al(),1);CZ();import{readFileSync as fPc}from"node:fs";import{relative as IKi}from"node:path";var nKi=Nt(Al(),1),XKe=Nt(Al(),1);var iKi=Nt(Ec(),1);var pH=Nt(Pc(),1),sKi=({file:e,messages:t=[]})=>{let r=(0,iKi.useMemo)(()=>t.map(n=>n.endsWith(` +`)?n.replace(/\n$/,""):n).filter(Boolean),[t]);return(0,pH.jsxs)(XKe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",children:[!!e&&(0,pH.jsx)(XKe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,pH.jsx)(A8,{children:e})}),r.length>0&&(0,pH.jsxs)(pH.Fragment,{children:[(0,pH.jsx)(J9,{offset:2}),(0,pH.jsx)(XKe.Box,{flexDirection:"column",marginBottom:1,marginTop:1,marginX:2,children:r.map(n=>(0,pH.jsx)(XKe.Box,{children:(0,pH.jsx)(nKi.Text,{children:n})},OW()))})]})]})};var mVr=Nt(Al(),1),UDe=Nt(Al(),1);var BO=Nt(Pc(),1),oKi=({details:e,source:t,file:r,line:n,column:a})=>r&&t?(0,BO.jsxs)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(A8,{line:n,column:a,children:r})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,children:(0,BO.jsx)(d8,{line:n??1,column:a??1,children:t})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(mVr.Text,{color:"white",children:e.error.message})})]}):(0,BO.jsx)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:(0,BO.jsx)(mVr.Text,{children:e.error.message})});var JKe=Nt(Al(),1),dKi=Nt(Ec(),1),pKi=Nt(Ec(),1);var aKi=Nt(Ec(),1),CVr=Nt(Ec(),1),lKi=Nt(Pc(),1),cKi=({tester:e})=>{let[t,r]=(0,CVr.useState)(0),[n,a]=(0,CVr.useState)(0);return(0,aKi.useEffect)(()=>{let o=f=>{r(f.tests.reduce((I,C)=>I+C.tests+1,0))},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("test:pass",l),e.on("test:fail",l),e.on("end",A),()=>{e.off("start",o),e.off("test:pass",l),e.off("test:fail",l),e.off("end",A)}},[e,t,r,a]),(0,lKi.jsx)(JM,{value:t>0&&n>0?n/t*100:0})};import{relative as uKi}from"node:path";var KDe=Nt(Al(),1),$k=Nt(Al(),1),gKi=Nt(Ec(),1),jDe=Nt(Ec(),1);var ME=Nt(Pc(),1),pPc=({state:e})=>e==="fail"?(0,ME.jsx)($k.Text,{color:"red",children:kI.cross}):e==="pass"?(0,ME.jsx)($k.Text,{color:"green",children:kI.tick}):(0,ME.jsx)($k.Text,{color:"white",children:kI.circleDotted}),AKi=({cwd:e,tester:t})=>{let[r,n]=(0,jDe.useState)(void 0),[a,o]=(0,jDe.useState)(void 0),[l,A]=(0,jDe.useState)(0),[f,I]=(0,jDe.useState)(0),[C,b]=(0,jDe.useState)(0);return(0,gKi.useEffect)(()=>{let E=F=>{A(F.tests.reduce((Q,X)=>Q+X.tests,0)),n(F.tests)},N=F=>{I(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"pass"})},B=F=>{b(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"fail"})};return t.on("start",E),t.on("test:pass",N),t.on("test:fail",B),()=>{t.off("start",E),t.off("test:pass",N),t.off("test:fail",B)}},[t,A,I,b,o]),r?(0,ME.jsxs)(KDe.Box,{flexDirection:"row",width:"100%",children:[(0,ME.jsxs)(KDe.Box,{flexGrow:1,children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),!!a&&(0,ME.jsx)($k.Text,{color:"white",children:a.file})]}),(0,ME.jsx)(KDe.Box,{flexDirection:"row",children:(0,ME.jsxs)(KDe.Box,{children:[(0,ME.jsx)(pPc,{state:a?.state}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"green",children:[f," Pass"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"red",children:[C," Fail"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"white",children:[l," Total"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"gray",children:[r.length||0," Files"]}),(0,ME.jsx)($k.Text,{children:" "})]})})]}):(0,ME.jsxs)(KDe.Box,{flexDirection:"row",children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsx)($k.Text,{color:"white",children:"Loading..."})]})};var ele=Nt(Pc(),1),fKi=({cwd:e,tester:t})=>{let[r,n]=(0,dKi.useState)(!1);return(0,pKi.useEffect)(()=>{let a,o=()=>{a=setTimeout(()=>{n(!0)},1e3)};return t.on("end",o),()=>{a&&clearTimeout(a),t.off("end",o)}},[n]),r?null:(0,ele.jsx)(JKe.Box,{position:"relative",height:7,children:(0,ele.jsxs)(JKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ele.jsx)(JKe.Box,{children:(0,ele.jsx)(AKi,{cwd:e,tester:t})}),(0,ele.jsx)(JKe.Box,{marginTop:1,marginBottom:1,children:(0,ele.jsx)(cKi,{tester:t})})]})})};var zDe=Nt(Pc(),1),zee=class extends hKi.BaseCommand{static usage=_C.Usage({description:"Run tests",details:` Run either integration or unit tests with Node.js built-in test runner. Integration tests are defined by placing *.test.[j|t]sx? in 'integration' folder anywhere. Unit tests are all *.test.[j|t]sx? except in 'integration' folder. - `,examples:[["Run all unit tests","yarn test unit"],["Run all integration tests","yarn test integration"],["Run all integration tests which file names include 'menu'","yarn test integration menu"],["Run all unit tests in watch mode - reloading after any change in file","yarn test unit -w"]]});target=Su.String("-t,--target");watch=Su.Boolean("-w,--watch",!1);files=Su.Rest({required:0});testReporter=Su.String("--test-reporter",{validator:ajt(["tap"])});std=new Map;bufferedStdTimeout;async executeProxy(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:a}=await yVr.Project.find(r,this.context.cwd),o=[];this.files.length&&o.push(this.files.join(" ")),this.watch&&o.push("-w"),a&&(o.push("-t"),o.push(this.context.cwd)),this.testReporter&&o.push(`--test-reporter=${this.testReporter}`);let l=await CKi.xfs.mktempPromise(),{executable:A,env:f}=await iC({binFolder:l,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}});f.NODE_OPTIONS?.includes("--no-warnings")||(f.NODE_OPTIONS=`${f.NODE_OPTIONS??""} --no-warnings=DeprecationWarning`);let{code:I}=await mKi.execUtils.pipevp(A,["test",t??"",...o],{cwd:n.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:f});return I}async executeRegular(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await yVr.Project.find(r,this.context.cwd),a=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},o=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},l=C=>{let b=C.file?pPc(C.file,"utf8"):void 0;xE((0,zDe.jsx)(oKi,{details:C.details,source:b,file:C.file?IKi(n.cwd,C.file):void 0,column:C.column,line:C.line})).split(` + `,examples:[["Run all unit tests","yarn test unit"],["Run all integration tests","yarn test integration"],["Run all integration tests which file names include 'menu'","yarn test integration menu"],["Run all unit tests in watch mode - reloading after any change in file","yarn test unit -w"]]});target=Su.String("-t,--target");watch=Su.Boolean("-w,--watch",!1);files=Su.Rest({required:0});testReporter=Su.String("--test-reporter",{validator:ajt(["tap"])});std=new Map;bufferedStdTimeout;async executeProxy(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:a}=await yVr.Project.find(r,this.context.cwd),o=[];this.files.length&&o.push(this.files.join(" ")),this.watch&&o.push("-w"),a&&(o.push("-t"),o.push(this.context.cwd)),this.testReporter&&o.push(`--test-reporter=${this.testReporter}`);let l=await CKi.xfs.mktempPromise(),{executable:A,env:f}=await iC({binFolder:l,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}});f.NODE_OPTIONS?.includes("--no-warnings")||(f.NODE_OPTIONS=`${f.NODE_OPTIONS??""} --no-warnings=DeprecationWarning`);let{code:I}=await mKi.execUtils.pipevp(A,["test",t??"",...o],{cwd:n.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:f});return I}async executeRegular(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await yVr.Project.find(r,this.context.cwd),a=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},o=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},l=C=>{let b=C.file?fPc(C.file,"utf8"):void 0;xE((0,zDe.jsx)(oKi,{details:C.details,source:b,file:C.file?IKi(n.cwd,C.file):void 0,column:C.column,line:C.line})).split(` `).forEach(E=>{console.error(E)})},A=await V8.initialize(this.context.cwd);if(this.testReporter==="tap")return(t==="integration"?await A.integration(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter}):await A.unit(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).find(b=>b.type==="test:fail")?1:0;A.on("test:stdout",a),A.on("test:stderr",o),A.on("test:fail",l);let{clear:f,unmount:I}=(0,_Ki.render)((0,zDe.jsx)(fKi,{cwd:n.cwd,tester:A}));try{return(t==="integration"?await A.integration(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter}):await A.unit(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).find(b=>b.type==="test:fail")?1:0}catch(C){return C instanceof Error?xE((0,zDe.jsx)(Fk,{error:C})).split(` `).forEach(b=>{console.error(b)}):console.error(C),1}finally{this.flushBufferedStd(),A.off("test:stdout",a),A.off("test:stderr",o),A.off("test:fail",l),I(),f()}}bufferedStd(t,r){if(this.std.keys().next().value)if(this.std.has(t.file))this.std.get(t.file)?.push(t.message),this.bufferedStdTimeout&&clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=setTimeout(()=>{let n=this.std.keys().next().value;r({file:n,messages:this.std.get(n)??[]}),this.std.delete(n)},100);else{let n=this.std.keys().next().value;r({file:n,messages:this.std.get(n)??[]}),this.std.delete(n),this.std.set(t.file,[t.message])}else this.std.set(t.file,[t.message])}renderStdBuffer({file:t,messages:r}){let n=r.map(l=>l.split(` -`).filter(Boolean)).flat(),{logRecords:a,raw:o}=n.reduce((l,A)=>{try{let f=JSON.parse(A);return{...l,logRecords:[...l.logRecords,f]}}catch{return{...l,raw:[...l.raw,A]}}},{logRecords:[],raw:[]});a.forEach(l=>{console.log(xE((0,zDe.jsx)(Pvt,{...l})))}),o.length>0&&console.log(xE((0,zDe.jsx)(sKi,{file:t?IKi(process.cwd(),t):void 0,messages:o})))}flushBufferedStd(){this.bufferedStdTimeout&&(clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=void 0),this.std.forEach((t,r)=>{this.renderStdBuffer({file:r,messages:t})}),this.std.clear()}};var UKe=class extends zee{static paths=[["test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(bVr.Filename.pnpCjs)&&t.includes(bVr.Filename.pnpEsmLoader)?this.executeRegular("integration"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("integration"):this.executeProxy("integration")}};var EVr=Nt(no(),1);var KKe=class extends zee{static paths=[["test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(EVr.Filename.pnpCjs)&&t.includes(EVr.Filename.pnpEsmLoader)?this.executeRegular("unit"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("unit"):this.executeProxy("unit")}};var yKi=Nt(Bn(),1),bKi=Nt(Bn(),1),SVr=Nt(no(),1);var Ovt=class extends zee{static paths=[["test"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(SVr.Filename.pnpCjs)&&t.includes(SVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeRegular(){let t=await yKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await bKi.Project.find(t,this.context.cwd),n=await V8.initialize(this.context.cwd);try{return(await n.general(this.target??r.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).some(o=>o.type==="test:fail")?1:0}catch(a){return console.error(a),1}}};var EKi={commands:[UKe,KKe,Ovt]};var GVr={};sI(GVr,{default:()=>MKi});var RKi=Nt(Bn(),1),NKi=Nt(Bn(),1),DKi=Nt(Bn(),1),wVr=Nt(no(),1),TVr=Nt(Bn(),1),rle=Nt(UC(),1);var SKi=Nt(el(),1),vKi=Nt(Bn(),1),BKi=Nt(Bn(),1),BVr=Nt(no(),1),wKi=Nt(Bn(),1),TKi=Nt(no(),1);$c();var tle=class extends SKi.BaseCommand{static usage=_C.Usage({description:"Update tools",details:"\n Update tools such as `tsconfig`, `typescript` version, `@atls/code-runtime` version\n ",examples:[["Update tsconfig","yarn tools tsconfig"],["Update runtime","yarn tools runtime"],["Update typescript version","yarn tools typescript"],["Update all","yarn tools sync"]]});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(BVr.Filename.pnpCjs)&&t.includes(BVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(t=["tools","sync"]){let r=await vKi.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await BKi.Project.find(r,this.context.cwd),a=await TKi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await wKi.execUtils.pipevp(o,t,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){return 0}};var Mvt=class extends tle{static paths=[["tools","sync","typescript"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(wVr.Filename.pnpCjs)&&t.includes(wVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","typescript"])}async executeRegular(){let t=await RKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await NKi.Project.find(t,this.context.cwd),n=(await import("@atls/code-runtime/package.json",{with:{type:"json"}})).default;return(await DKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Tools sync typescript version",async()=>{if(r.topLevelWorkspace.manifest.raw.devDependencies){let l=TVr.structUtils.parseIdent("typescript"),A=Array.from(r.topLevelWorkspace.manifest.devDependencies.values()).find(f=>f.scope===l.scope&&f.name===l.name);A||(A=TVr.structUtils.makeDescriptor(l,n.dependencies.typescript)),rle.default.valid(rle.default.coerce(A.range))&&rle.default.valid(rle.default.coerce(n.dependencies.typescript))&&(rle.default.eq(rle.default.coerce(A.range)||"",rle.default.coerce(n.dependencies.typescript)||"")||(A.range=n.dependencies.typescript)),r.topLevelWorkspace.manifest.devDependencies.set(A.identHash,A),await r.persist()}})})).exitCode()}};var kKi=Nt(Bn(),1),xKi=Nt(Bn(),1),GKi=Nt(Bn(),1),RVr=Nt(no(),1),jKe=Nt(no(),1),NVr=Nt(no(),1),DVr=Nt(oTr(),1);import fPc from"node:assert";var IPc=(e,t,r)=>{let n=e.slice();return t.forEach((a,o)=>{typeof n[o]>"u"?n[o]=r?.cloneUnlessOtherwiseSpecified(a,r):r?.isMergeableObject(a)?n[o]=(0,DVr.default)(e[o],a,r):e.includes(a)||n.push(a)}),n},hPc=e=>e.endsWith("/**/*")?e:!e.endsWith("/**/*")&&e.endsWith("/*")?e.replace("/*","/**/*"):e,Hvt=class extends tle{static paths=[["tools","sync","tsconfig"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(RVr.Filename.pnpCjs)&&t.includes(RVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","tsconfig"])}async executeRegular(){let t=await kKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await xKi.Project.find(t,this.context.cwd);return(await GKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{await a.startTimerPromise("Tools sync typescript config",async()=>{let o=NVr.ppath.join(r.topLevelWorkspace.cwd,"tsconfig.json"),l=await jKe.xfs.existsPromise(o)?await jKe.xfs.readJsonPromise(o):{compilerOptions:{}};await jKe.xfs.writeFilePromise(NVr.ppath.join(r.topLevelWorkspace.cwd,"project.types.d.ts"),`/// -`);let A=(0,DVr.default)(l,{compilerOptions:bj.compilerOptions},{arrayMerge:IPc}),f=(r.topLevelWorkspace.manifest.raw.workspaces||[]).map(hPc),I={...A,include:Array.from(new Set(["project.types.d.ts",...A.include,...f]))};try{fPc.deepEqual(l,I)}catch{await jKe.xfs.writeJsonPromise(o,I)}})})).exitCode()}};var mPc=[["tools","sync","typescript"],["tools","sync","tsconfig"],["install"]],Yvt=class extends tle{static paths=[["tools","sync"]];async executeRegular(){for(let t of mPc){let r=await this.cli.run(t);if(r!==0)return r}return 0}};var FKi=Nt(Bn(),1),kVr=Nt(Bn(),1),ZKi=Nt(no(),1);var LKi=async(e,t)=>{let{project:r}=await FKi.Project.find(e,t.cwd),n=await ZKi.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r});await kVr.execUtils.pipevp(a,["tools","sync"],{cwd:t.cwd,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,end:kVr.execUtils.EndStrategy.ErrorCode,env:o})};var qDe=Nt(no(),1),nle=Nt(no(),1);import{spawnSync as CPc}from"node:child_process";var xVr=e=>`${e}`,_Pc=()=>xVr("yarn commit staged"),VKi=e=>CPc("git",e,{encoding:"utf-8"}),PKi=async e=>{if(process.env.GITHUB_ACTIONS){console.log("AFTER INSTALL HOOK: Execution in GitHub Action");return}if(process.env.IMAGE_PACK||VKi(["--version"]).error?.code==="ENOENT")return;let r=qDe.ppath.join(e.cwd,".config/husky"),n=qDe.ppath.join(r,"_");await nle.xfs.existsPromise(n)&&await nle.xfs.removePromise(r),await nle.xfs.existsPromise(r)||await nle.xfs.mkdirPromise(r,{recursive:!0}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"commit-msg"),xVr("yarn commit message lint"),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"pre-commit"),_Pc(),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"prepare-commit-msg"),xVr("yarn commit message $@"),{mode:493});let{error:a}=VKi(["config","core.hooksPath",r]);if(a)throw a};var WKi=Nt(no(),1);var OKi=async(e,t,r)=>{Wmt(t);let n=wEr(e);if(!n)return;let a=WKi.npath.fromPortablePath(n);await Promise.all([...t[lQe]?[r("node",process.execPath)]:[],r("run",process.execPath,[a,"run"]),r("yarn",process.execPath,[a]),r("yarnpkg",process.execPath,[a]),r("node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])])};var MKi={hooks:{afterAllInstalled:PKi,afterYarnVersionSet:LKi,setupScriptEnvironment:OKi},commands:[Yvt,Mvt,Hvt]};var PVr={};sI(PVr,{TypeCheckCommand:()=>zKe,default:()=>XKi});var HKi=Nt(el(),1),FVr=Nt(Bn(),1),ZVr=Nt(Bn(),1),LVr=Nt(no(),1),YKi=Nt(Bn(),1),VVr=Nt(no(),1),Qvt=Nt(no(),1);$c();var QKi=Nt(Al(),1);var Xvt=Nt(Pc(),1),zKe=class extends HKi.BaseCommand{static paths=[["typecheck"]];args=Su.Rest({required:0});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(LVr.Filename.pnpCjs)&&t.includes(LVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await Qvt.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await YKi.execUtils.pipevp(a,["typecheck",...this.args],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await zNe.initialize(r.cwd),{clear:a}=(0,QKi.render)((0,Xvt.jsx)(jEt,{typescript:n}));try{let o=await n.check(await this.getIncludes(r));return o.forEach(l=>{xE((0,Xvt.jsx)(KEt,{...l})).split(` +`).filter(Boolean)).flat(),{logRecords:a,raw:o}=n.reduce((l,A)=>{try{let f=JSON.parse(A);return{...l,logRecords:[...l.logRecords,f]}}catch{return{...l,raw:[...l.raw,A]}}},{logRecords:[],raw:[]});a.forEach(l=>{console.log(xE((0,zDe.jsx)(Pvt,{...l})))}),o.length>0&&console.log(xE((0,zDe.jsx)(sKi,{file:t?IKi(process.cwd(),t):void 0,messages:o})))}flushBufferedStd(){this.bufferedStdTimeout&&(clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=void 0),this.std.forEach((t,r)=>{this.renderStdBuffer({file:r,messages:t})}),this.std.clear()}};var UKe=class extends zee{static paths=[["test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(bVr.Filename.pnpCjs)&&t.includes(bVr.Filename.pnpEsmLoader)?this.executeRegular("integration"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("integration"):this.executeProxy("integration")}};var EVr=Nt(no(),1);var KKe=class extends zee{static paths=[["test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(EVr.Filename.pnpCjs)&&t.includes(EVr.Filename.pnpEsmLoader)?this.executeRegular("unit"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("unit"):this.executeProxy("unit")}};var yKi=Nt(Bn(),1),bKi=Nt(Bn(),1),SVr=Nt(no(),1);var Ovt=class extends zee{static paths=[["test"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(SVr.Filename.pnpCjs)&&t.includes(SVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeRegular(){let t=await yKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await bKi.Project.find(t,this.context.cwd),n=await V8.initialize(this.context.cwd);try{return(await n.general(this.target??r.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).some(o=>o.type==="test:fail")?1:0}catch(a){return console.error(a),1}}};var EKi={commands:[UKe,KKe,Ovt]};var GVr={};sI(GVr,{default:()=>MKi});var RKi=Nt(Bn(),1),NKi=Nt(Bn(),1),DKi=Nt(Bn(),1),wVr=Nt(no(),1),TVr=Nt(Bn(),1),rle=Nt(UC(),1);var SKi=Nt(el(),1),vKi=Nt(Bn(),1),BKi=Nt(Bn(),1),BVr=Nt(no(),1),wKi=Nt(Bn(),1),TKi=Nt(no(),1);$c();var tle=class extends SKi.BaseCommand{static usage=_C.Usage({description:"Update tools",details:"\n Update tools such as `tsconfig`, `typescript` version, `@atls/code-runtime` version\n ",examples:[["Update tsconfig","yarn tools tsconfig"],["Update runtime","yarn tools runtime"],["Update typescript version","yarn tools typescript"],["Update all","yarn tools sync"]]});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(BVr.Filename.pnpCjs)&&t.includes(BVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(t=["tools","sync"]){let r=await vKi.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await BKi.Project.find(r,this.context.cwd),a=await TKi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await wKi.execUtils.pipevp(o,t,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){return 0}};var Mvt=class extends tle{static paths=[["tools","sync","typescript"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(wVr.Filename.pnpCjs)&&t.includes(wVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","typescript"])}async executeRegular(){let t=await RKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await NKi.Project.find(t,this.context.cwd),n=(await import("@atls/code-runtime/package.json",{with:{type:"json"}})).default;return(await DKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Tools sync typescript version",async()=>{if(r.topLevelWorkspace.manifest.raw.devDependencies){let l=TVr.structUtils.parseIdent("typescript"),A=Array.from(r.topLevelWorkspace.manifest.devDependencies.values()).find(f=>f.scope===l.scope&&f.name===l.name);A||(A=TVr.structUtils.makeDescriptor(l,n.dependencies.typescript)),rle.default.valid(rle.default.coerce(A.range))&&rle.default.valid(rle.default.coerce(n.dependencies.typescript))&&(rle.default.eq(rle.default.coerce(A.range)||"",rle.default.coerce(n.dependencies.typescript)||"")||(A.range=n.dependencies.typescript)),r.topLevelWorkspace.manifest.devDependencies.set(A.identHash,A),await r.persist()}})})).exitCode()}};var kKi=Nt(Bn(),1),xKi=Nt(Bn(),1),GKi=Nt(Bn(),1),RVr=Nt(no(),1),jKe=Nt(no(),1),NVr=Nt(no(),1),DVr=Nt(oTr(),1);import IPc from"node:assert";var hPc=(e,t,r)=>{let n=e.slice();return t.forEach((a,o)=>{typeof n[o]>"u"?n[o]=r?.cloneUnlessOtherwiseSpecified(a,r):r?.isMergeableObject(a)?n[o]=(0,DVr.default)(e[o],a,r):e.includes(a)||n.push(a)}),n},mPc=e=>e.endsWith("/**/*")?e:!e.endsWith("/**/*")&&e.endsWith("/*")?e.replace("/*","/**/*"):e,Hvt=class extends tle{static paths=[["tools","sync","tsconfig"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(RVr.Filename.pnpCjs)&&t.includes(RVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","tsconfig"])}async executeRegular(){let t=await kKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await xKi.Project.find(t,this.context.cwd);return(await GKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{await a.startTimerPromise("Tools sync typescript config",async()=>{let o=NVr.ppath.join(r.topLevelWorkspace.cwd,"tsconfig.json"),l=await jKe.xfs.existsPromise(o)?await jKe.xfs.readJsonPromise(o):{compilerOptions:{}};await jKe.xfs.writeFilePromise(NVr.ppath.join(r.topLevelWorkspace.cwd,"project.types.d.ts"),`/// +`);let A=(0,DVr.default)(l,{compilerOptions:bj.compilerOptions},{arrayMerge:hPc}),f=(r.topLevelWorkspace.manifest.raw.workspaces||[]).map(mPc),I={...A,include:Array.from(new Set(["project.types.d.ts",...A.include,...f]))};try{IPc.deepEqual(l,I)}catch{await jKe.xfs.writeJsonPromise(o,I)}})})).exitCode()}};var CPc=[["tools","sync","typescript"],["tools","sync","tsconfig"],["install"]],Yvt=class extends tle{static paths=[["tools","sync"]];async executeRegular(){for(let t of CPc){let r=await this.cli.run(t);if(r!==0)return r}return 0}};var FKi=Nt(Bn(),1),kVr=Nt(Bn(),1),ZKi=Nt(no(),1);var LKi=async(e,t)=>{let{project:r}=await FKi.Project.find(e,t.cwd),n=await ZKi.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r});await kVr.execUtils.pipevp(a,["tools","sync"],{cwd:t.cwd,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,end:kVr.execUtils.EndStrategy.ErrorCode,env:o})};var qDe=Nt(no(),1),nle=Nt(no(),1);import{spawnSync as _Pc}from"node:child_process";var xVr=e=>`${e}`,yPc=()=>xVr("yarn commit staged"),VKi=e=>_Pc("git",e,{encoding:"utf-8"}),PKi=async e=>{if(process.env.GITHUB_ACTIONS){console.log("AFTER INSTALL HOOK: Execution in GitHub Action");return}if(process.env.IMAGE_PACK||VKi(["--version"]).error?.code==="ENOENT")return;let r=qDe.ppath.join(e.cwd,".config/husky"),n=qDe.ppath.join(r,"_");await nle.xfs.existsPromise(n)&&await nle.xfs.removePromise(r),await nle.xfs.existsPromise(r)||await nle.xfs.mkdirPromise(r,{recursive:!0}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"commit-msg"),xVr("yarn commit message lint"),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"pre-commit"),yPc(),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"prepare-commit-msg"),xVr("yarn commit message $@"),{mode:493});let{error:a}=VKi(["config","core.hooksPath",r]);if(a)throw a};var WKi=Nt(no(),1);var OKi=async(e,t,r)=>{Wmt(t);let n=wEr(e);if(!n)return;let a=WKi.npath.fromPortablePath(n);await Promise.all([...t[lQe]?[r("node",process.execPath)]:[],r("run",process.execPath,[a,"run"]),r("yarn",process.execPath,[a]),r("yarnpkg",process.execPath,[a]),r("node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])])};var MKi={hooks:{afterAllInstalled:PKi,afterYarnVersionSet:LKi,setupScriptEnvironment:OKi},commands:[Yvt,Mvt,Hvt]};var PVr={};sI(PVr,{TypeCheckCommand:()=>zKe,default:()=>XKi});var HKi=Nt(el(),1),FVr=Nt(Bn(),1),ZVr=Nt(Bn(),1),LVr=Nt(no(),1),YKi=Nt(Bn(),1),VVr=Nt(no(),1),Qvt=Nt(no(),1);$c();var QKi=Nt(Al(),1);var Xvt=Nt(Pc(),1),zKe=class extends HKi.BaseCommand{static paths=[["typecheck"]];args=Su.Rest({required:0});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(LVr.Filename.pnpCjs)&&t.includes(LVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await Qvt.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await YKi.execUtils.pipevp(a,["typecheck",...this.args],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await zNe.initialize(r.cwd),{clear:a}=(0,QKi.render)((0,Xvt.jsx)(jEt,{typescript:n}));try{let o=await n.check(await this.getIncludes(r));return o.forEach(l=>{xE((0,Xvt.jsx)(KEt,{...l})).split(` `).forEach(A=>{console.log(A)})}),o.length===0?0:1}catch(o){return xE((0,Xvt.jsx)(Fk,{error:o})).split(` -`).forEach(l=>{console.error(l)}),1}finally{a()}}async getIncludes(t){if(this.args.length>0)return this.args;if(await Qvt.xfs.existsPromise(VVr.ppath.join(t.cwd,"tsconfig.json"))){let r=await Qvt.xfs.readJsonPromise(VVr.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}};var XKi={commands:[zKe]};var rPr={};sI(rPr,{UiIconsGenerateCommand:()=>t8e,default:()=>oji});var rji=Nt(el(),1),qVr=Nt(Bn(),1),$Vr=Nt(Bn(),1),ePr=Nt(no(),1),nji=Nt(Bn(),1),iji=Nt(no(),1);$c();import{join as tji}from"node:path";import{relative as YWc}from"node:path";var sji=Nt(Al(),1);var qKe=Nt(Al(),1),e8i=Nt(Ec(),1),t8i=Nt(Ec(),1);var JKi=Nt(Ec(),1),UKi=Nt(Ec(),1),jKi=Nt(Pc(),1),KKi=({icons:e})=>{let[t,r]=(0,UKi.useState)(0);return(0,JKi.useEffect)(()=>{let n=()=>{r(33)},a=()=>{r(66)},o=()=>{r(100)};return e.on("read:end",n),e.on("transform:end",a),e.on("save:end",o),()=>{e.off("read:end",n),e.off("transform:end",a),e.off("save:end",o)}},[e,r]),(0,jKi.jsx)(JM,{value:t})};var Jvt=Nt(Al(),1),Uvt=Nt(Al(),1),zKi=Nt(Ec(),1),qKi=Nt(Ec(),1);var qee=Nt(Pc(),1),$Ki=({icons:e})=>{let[t,r]=(0,qKi.useState)("Initilization...");return(0,zKi.useEffect)(()=>{let n=()=>{r("Reading files...")},a=()=>{r("Transforming files...")},o=()=>{r("Saving files...")};return e.on("read:start",n),e.on("transform:start",a),e.on("save:start",o),()=>{e.off("read:start",n),e.off("transform:start",a),e.off("save:start",o)}},[e,r]),(0,qee.jsxs)(Jvt.Box,{flexDirection:"row",width:"100%",children:[(0,qee.jsxs)(Jvt.Box,{flexGrow:1,children:[(0,qee.jsx)(RG,{color:"cyan",children:"Icons:"}),(0,qee.jsx)(Uvt.Text,{children:" "}),(0,qee.jsx)(Uvt.Text,{color:"white",children:t})]}),(0,qee.jsx)(Jvt.Box,{flexDirection:"row",children:(0,qee.jsx)(Uvt.Text,{color:"green",children:kI.tick})})]})};var ile=Nt(Pc(),1),r8i=({icons:e})=>{let[t,r]=(0,e8i.useState)(!1);return(0,t8i.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("save:end",n),()=>{e.off("save:end",n)}},[r]),t?null:(0,ile.jsx)(qKe.Box,{position:"relative",height:7,children:(0,ile.jsxs)(qKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ile.jsx)(qKe.Box,{children:(0,ile.jsx)($Ki,{icons:e})}),(0,ile.jsx)(qKe.Box,{marginTop:1,marginBottom:1,children:(0,ile.jsx)(KKi,{icons:e})})]})})};import LWc from"node:events";import{access as VWc}from"node:fs/promises";import{mkdtemp as PWc}from"node:fs/promises";import{readFile as WWc}from"node:fs/promises";import{readdir as OWc}from"node:fs/promises";import{writeFile as q8i}from"node:fs/promises";import{mkdir as MWc}from"node:fs/promises";import{tmpdir as HWc}from"node:os";import{join as $ee}from"node:path";import{basename as $8i}from"node:path";import{extname as eji}from"node:path";var yPc=/[\p{Lu}]/u,bPc=/[\p{Ll}]/u,n8i=/^[\p{Lu}](?![\p{Lu}])/gu,o8i=/([\p{Alpha}\p{N}_]|$)/u,WVr=/[_.\- ]+/,EPc=new RegExp("^"+WVr.source),i8i=new RegExp(WVr.source+o8i.source,"gu"),s8i=new RegExp("\\d+"+o8i.source,"gu"),SPc=(e,t,r,n)=>{let a=!1,o=!1,l=!1,A=!1;for(let f=0;f2?e[f-3]==="-":!0,a&&yPc.test(I)?(e=e.slice(0,f)+"-"+e.slice(f),a=!1,l=o,o=!0,f++):o&&l&&bPc.test(I)&&(!A||n)?(e=e.slice(0,f-1)+"-"+e.slice(f-1),l=o,o=!1,a=!0):(a=t(I)===I&&r(I)!==I,l=o,o=r(I)===I&&t(I)!==I)}return e},vPc=(e,t)=>(n8i.lastIndex=0,e.replaceAll(n8i,r=>t(r))),BPc=(e,t)=>(i8i.lastIndex=0,s8i.lastIndex=0,e.replaceAll(s8i,(r,n,a)=>["_","-"].includes(e.charAt(a+r.length))?r:t(r)).replaceAll(i8i,(r,n)=>t(n)));function OVr(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?WVr.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=SPc(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(EPc,""),e=t.preserveConsecutiveUppercase?vPc(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),BPc(e,n))}var z8i=Nt(j8i(),1);import{writeFile as GWc}from"node:fs/promises";import{mkdtemp as FWc}from"node:fs/promises";import{tmpdir as ZWc}from"node:os";import{join as aBt}from"node:path";var cBt=class{constructor(t,r,n){this.loaders=t;this.cwd=r;this.target=n}async build(){let t=new z8i.default;return await this.applyCommon(t),await this.applyModules(t),t.toConfig()}async applyCommon(t){t.mode("development").bail(!1).target("async-node").optimization.minimize(!1),t.entry("replacements").add(aBt(this.cwd,"replacements")),t.entry("template").add(aBt(this.cwd,"template")),t.output.path(this.target).filename("[name].mjs"),t.output.library({type:"module"}),t.output.chunkFormat("module"),t.output.module(!0),t.resolve.extensions.add(".tsx").add(".ts").add(".js"),t.resolve.extensionAlias.set(".js",[".js",".ts"]).set(".jsx",[".jsx",".tsx"]).set(".cjs",[".cjs",".cts"]).set(".mjs",[".mjs",".mts"]),t.externalsType("import"),t.externalsPresets({node:!0}),t.experiments({outputModule:!0})}async applyModules(t){let r=aBt(await FWc(aBt(ZWc(),"tools-icons-")),"tsconfig.json");await GWc(r,'{"include":["**/*"]}'),t.module.rule("ts").test(/.tsx?$/).use("ts").loader(this.loaders.tsLoader).options({transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:r})}};var lBt=class e extends LWc{constructor(r,n,a,o){super();this.svgr=r;this.webpack=n;this.loaders=a;this.cwd=o}static async initialize(r){let{transform:n,jsx:a}=await import("@atls/code-runtime/svgr"),{webpack:o,tsLoaderPath:l}=await import("@atls/code-runtime/webpack");return new e({transform:n,jsx:a},o,{tsLoader:l},r)}async generate(r={}){await this.save(await this.transform(await this.read($ee(this.cwd,"icons")),r))}async compileReplacementsAndTemplate(){let r=await PWc($ee(HWc(),"tools-icons-")),n=this.webpack(await new cBt(this.loaders,this.cwd,r).build());return await new Promise((a,o)=>{n.run(l=>{l&&o(l),a([])})}),{replacements:(await import($ee(r,"replacements.mjs"))).default,template:(await import($ee(r,"template.mjs"))).default}}async read(r){this.emit("read:start");let n=await OWc(r),a=await Promise.all(n.filter(o=>o.endsWith(".svg")).map(async o=>({source:await WWc($ee(r,o),"utf8"),component:OVr($8i(o,eji(o)),{pascalCase:!0}),name:$8i(o,eji(o)),path:$ee(r,o),file:o})));return this.emit("read:end"),a}async transform(r,n){this.emit("transform:start");let{replacements:a,template:o}=await this.compileReplacementsAndTemplate(),l=await Promise.all(r.map(async A=>{let f=await this.svgr.transform(A.source,{...n,icon:!0,template:o,typescript:!0,expandProps:!0,replaceAttrValues:a[`${A.component}Icon`]??{}},{componentName:`${A.component}Icon`,caller:{name:"@atls/code-icons",defaultPlugins:[this.svgr.jsx]}});return{...A,output:f}}));return this.emit("transform:end"),l}async save(r){this.emit("save:start");let n=$ee(this.cwd,"src");try{await VWc(n)}catch{await MWc(n,{recursive:!0})}await Promise.all(r.map(async a=>q8i($ee(n,`${a.name}.icon.tsx`),a.output))),await q8i($ee(n,"index.ts"),r.map(a=>`export * from './${a.name}.icon.jsx'`).join(` -`)),this.emit("save:end")}};var tPr=Nt(Pc(),1),t8e=class extends rji.BaseCommand{static paths=[["ui","icons","generate"]];native=Su.Boolean("-n, --native",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(ePr.Filename.pnpCjs)&&t.includes(ePr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await iji.xfs.mktempPromise(),a=[];this.native&&a.push("--native");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await nji.execUtils.pipevp(o,["ui","icons","generate",...a],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await lBt.initialize(this.context.cwd),{clear:a}=(0,sji.render)((0,tPr.jsx)(r8i,{icons:n}));try{await n.generate({native:this.native});let o=(await b$("*.tsx",{cwd:tji(this.context.cwd,"src")})).map(l=>tji(YWc(r.cwd,this.context.cwd),"src",l));return await this.cli.run(["format",...o],{cwd:r.cwd}),await this.cli.run(["lint","--fix",...o],{cwd:r.cwd}),0}catch(o){return o instanceof Error?xE((0,tPr.jsx)(Fk,{error:o})).split(` +`).forEach(l=>{console.error(l)}),1}finally{a()}}async getIncludes(t){if(this.args.length>0)return this.args;if(await Qvt.xfs.existsPromise(VVr.ppath.join(t.cwd,"tsconfig.json"))){let r=await Qvt.xfs.readJsonPromise(VVr.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}};var XKi={commands:[zKe]};var rPr={};sI(rPr,{UiIconsGenerateCommand:()=>t8e,default:()=>oji});var rji=Nt(el(),1),qVr=Nt(Bn(),1),$Vr=Nt(Bn(),1),ePr=Nt(no(),1),nji=Nt(Bn(),1),iji=Nt(no(),1);$c();import{join as tji}from"node:path";import{relative as QWc}from"node:path";var sji=Nt(Al(),1);var qKe=Nt(Al(),1),e8i=Nt(Ec(),1),t8i=Nt(Ec(),1);var JKi=Nt(Ec(),1),UKi=Nt(Ec(),1),jKi=Nt(Pc(),1),KKi=({icons:e})=>{let[t,r]=(0,UKi.useState)(0);return(0,JKi.useEffect)(()=>{let n=()=>{r(33)},a=()=>{r(66)},o=()=>{r(100)};return e.on("read:end",n),e.on("transform:end",a),e.on("save:end",o),()=>{e.off("read:end",n),e.off("transform:end",a),e.off("save:end",o)}},[e,r]),(0,jKi.jsx)(JM,{value:t})};var Jvt=Nt(Al(),1),Uvt=Nt(Al(),1),zKi=Nt(Ec(),1),qKi=Nt(Ec(),1);var qee=Nt(Pc(),1),$Ki=({icons:e})=>{let[t,r]=(0,qKi.useState)("Initilization...");return(0,zKi.useEffect)(()=>{let n=()=>{r("Reading files...")},a=()=>{r("Transforming files...")},o=()=>{r("Saving files...")};return e.on("read:start",n),e.on("transform:start",a),e.on("save:start",o),()=>{e.off("read:start",n),e.off("transform:start",a),e.off("save:start",o)}},[e,r]),(0,qee.jsxs)(Jvt.Box,{flexDirection:"row",width:"100%",children:[(0,qee.jsxs)(Jvt.Box,{flexGrow:1,children:[(0,qee.jsx)(RG,{color:"cyan",children:"Icons:"}),(0,qee.jsx)(Uvt.Text,{children:" "}),(0,qee.jsx)(Uvt.Text,{color:"white",children:t})]}),(0,qee.jsx)(Jvt.Box,{flexDirection:"row",children:(0,qee.jsx)(Uvt.Text,{color:"green",children:kI.tick})})]})};var ile=Nt(Pc(),1),r8i=({icons:e})=>{let[t,r]=(0,e8i.useState)(!1);return(0,t8i.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("save:end",n),()=>{e.off("save:end",n)}},[r]),t?null:(0,ile.jsx)(qKe.Box,{position:"relative",height:7,children:(0,ile.jsxs)(qKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ile.jsx)(qKe.Box,{children:(0,ile.jsx)($Ki,{icons:e})}),(0,ile.jsx)(qKe.Box,{marginTop:1,marginBottom:1,children:(0,ile.jsx)(KKi,{icons:e})})]})})};import VWc from"node:events";import{access as PWc}from"node:fs/promises";import{mkdtemp as WWc}from"node:fs/promises";import{readFile as OWc}from"node:fs/promises";import{readdir as MWc}from"node:fs/promises";import{writeFile as q8i}from"node:fs/promises";import{mkdir as HWc}from"node:fs/promises";import{tmpdir as YWc}from"node:os";import{join as $ee}from"node:path";import{basename as $8i}from"node:path";import{extname as eji}from"node:path";var bPc=/[\p{Lu}]/u,EPc=/[\p{Ll}]/u,n8i=/^[\p{Lu}](?![\p{Lu}])/gu,o8i=/([\p{Alpha}\p{N}_]|$)/u,WVr=/[_.\- ]+/,SPc=new RegExp("^"+WVr.source),i8i=new RegExp(WVr.source+o8i.source,"gu"),s8i=new RegExp("\\d+"+o8i.source,"gu"),vPc=(e,t,r,n)=>{let a=!1,o=!1,l=!1,A=!1;for(let f=0;f2?e[f-3]==="-":!0,a&&bPc.test(I)?(e=e.slice(0,f)+"-"+e.slice(f),a=!1,l=o,o=!0,f++):o&&l&&EPc.test(I)&&(!A||n)?(e=e.slice(0,f-1)+"-"+e.slice(f-1),l=o,o=!1,a=!0):(a=t(I)===I&&r(I)!==I,l=o,o=r(I)===I&&t(I)!==I)}return e},BPc=(e,t)=>(n8i.lastIndex=0,e.replaceAll(n8i,r=>t(r))),wPc=(e,t)=>(i8i.lastIndex=0,s8i.lastIndex=0,e.replaceAll(s8i,(r,n,a)=>["_","-"].includes(e.charAt(a+r.length))?r:t(r)).replaceAll(i8i,(r,n)=>t(n)));function OVr(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?WVr.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=vPc(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(SPc,""),e=t.preserveConsecutiveUppercase?BPc(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),wPc(e,n))}var z8i=Nt(j8i(),1);import{writeFile as FWc}from"node:fs/promises";import{mkdtemp as ZWc}from"node:fs/promises";import{tmpdir as LWc}from"node:os";import{join as aBt}from"node:path";var cBt=class{constructor(t,r,n){this.loaders=t;this.cwd=r;this.target=n}async build(){let t=new z8i.default;return await this.applyCommon(t),await this.applyModules(t),t.toConfig()}async applyCommon(t){t.mode("development").bail(!1).target("async-node").optimization.minimize(!1),t.entry("replacements").add(aBt(this.cwd,"replacements")),t.entry("template").add(aBt(this.cwd,"template")),t.output.path(this.target).filename("[name].mjs"),t.output.library({type:"module"}),t.output.chunkFormat("module"),t.output.module(!0),t.resolve.extensions.add(".tsx").add(".ts").add(".js"),t.resolve.extensionAlias.set(".js",[".js",".ts"]).set(".jsx",[".jsx",".tsx"]).set(".cjs",[".cjs",".cts"]).set(".mjs",[".mjs",".mts"]),t.externalsType("import"),t.externalsPresets({node:!0}),t.experiments({outputModule:!0})}async applyModules(t){let r=aBt(await ZWc(aBt(LWc(),"tools-icons-")),"tsconfig.json");await FWc(r,'{"include":["**/*"]}'),t.module.rule("ts").test(/.tsx?$/).use("ts").loader(this.loaders.tsLoader).options({transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:r})}};var lBt=class e extends VWc{constructor(r,n,a,o){super();this.svgr=r;this.webpack=n;this.loaders=a;this.cwd=o}static async initialize(r){let{transform:n,jsx:a}=await import("@atls/code-runtime/svgr"),{webpack:o,tsLoaderPath:l}=await import("@atls/code-runtime/webpack");return new e({transform:n,jsx:a},o,{tsLoader:l},r)}async generate(r={}){await this.save(await this.transform(await this.read($ee(this.cwd,"icons")),r))}async compileReplacementsAndTemplate(){let r=await WWc($ee(YWc(),"tools-icons-")),n=this.webpack(await new cBt(this.loaders,this.cwd,r).build());return await new Promise((a,o)=>{n.run(l=>{l&&o(l),a([])})}),{replacements:(await import($ee(r,"replacements.mjs"))).default,template:(await import($ee(r,"template.mjs"))).default}}async read(r){this.emit("read:start");let n=await MWc(r),a=await Promise.all(n.filter(o=>o.endsWith(".svg")).map(async o=>({source:await OWc($ee(r,o),"utf8"),component:OVr($8i(o,eji(o)),{pascalCase:!0}),name:$8i(o,eji(o)),path:$ee(r,o),file:o})));return this.emit("read:end"),a}async transform(r,n){this.emit("transform:start");let{replacements:a,template:o}=await this.compileReplacementsAndTemplate(),l=await Promise.all(r.map(async A=>{let f=await this.svgr.transform(A.source,{...n,icon:!0,template:o,typescript:!0,expandProps:!0,replaceAttrValues:a[`${A.component}Icon`]??{}},{componentName:`${A.component}Icon`,caller:{name:"@atls/code-icons",defaultPlugins:[this.svgr.jsx]}});return{...A,output:f}}));return this.emit("transform:end"),l}async save(r){this.emit("save:start");let n=$ee(this.cwd,"src");try{await PWc(n)}catch{await HWc(n,{recursive:!0})}await Promise.all(r.map(async a=>q8i($ee(n,`${a.name}.icon.tsx`),a.output))),await q8i($ee(n,"index.ts"),r.map(a=>`export * from './${a.name}.icon.jsx'`).join(` +`)),this.emit("save:end")}};var tPr=Nt(Pc(),1),t8e=class extends rji.BaseCommand{static paths=[["ui","icons","generate"]];native=Su.Boolean("-n, --native",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(ePr.Filename.pnpCjs)&&t.includes(ePr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await iji.xfs.mktempPromise(),a=[];this.native&&a.push("--native");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await nji.execUtils.pipevp(o,["ui","icons","generate",...a],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await lBt.initialize(this.context.cwd),{clear:a}=(0,sji.render)((0,tPr.jsx)(r8i,{icons:n}));try{await n.generate({native:this.native});let o=(await b$("*.tsx",{cwd:tji(this.context.cwd,"src")})).map(l=>tji(QWc(r.cwd,this.context.cwd),"src",l));return await this.cli.run(["format",...o],{cwd:r.cwd}),await this.cli.run(["lint","--fix",...o],{cwd:r.cwd}),0}catch(o){return o instanceof Error?xE((0,tPr.jsx)(Fk,{error:o})).split(` `).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var oji={commands:[t8e]};var fYr={};sI(fYr,{default:()=>his});var pis=Nt(el(),1),fis=Nt(Bn(),1),Iis=Nt(Bn(),1);$c();var aji=(e,t)=>({stdout:e.context.stdout,configuration:t});var gis=Nt(no(),1),Ais=Nt(no(),1);var sis=Nt(Dxe(),1),ois=Nt(nis(),1);var iis=e=>{let t=e.path;switch(e.kind){case"error":console.error(`ERROR! ${t} ${e.description==="alreadyExist"?"already exists":"does not exist"}.`);break;case"update":console.debug(`UPDATE ${t} (${e.content.length} bytes)`);break;case"create":console.debug(`CREATE ${t} (${e.content.length} bytes)`);break;case"delete":console.debug(`DELETE ${t}`);break;case"rename":console.debug(`RENAME ${t} => ${e.to}`);break}};var ais=async(e,t,r)=>{let o=!0,l=new ois.NodeWorkflow(process.cwd(),{force:!1,dryRun:!1,resolvePaths:[process.cwd(),import.meta.dirname],packageManager:"yarn"});l.reporter.subscribe(A=>{o=!1,iis(A)});try{return await l.execute({collection:r,schematic:e,options:t,allowPrivate:!0,debug:!0}).toPromise(),o&&console.info("Nothing to be done."),0}catch(A){return A instanceof sis.UnsuccessfulWorkflowExecution?console.debug("The Schematic workflow failed. See above."):A instanceof Error?console.debug(`An error occured: -${A.stack}`):console.debug(`Error: ${A instanceof Error?A.message:A}`),1}};var pYr=Nt(no(),1);import{mkdir as pAl}from"node:fs/promises";var dAl="dmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTsKdmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKdmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwp2YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczsKdmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKdmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHsKICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0czsKfTsKdmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7CiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpCiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwp9Owp2YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4gewogIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSAib2JqZWN0IiB8fCB0eXBlb2YgZnJvbSA9PT0gImZ1bmN0aW9uIikgewogICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKQogICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KQogICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTsKICB9CiAgcmV0dXJuIHRvOwp9Owp2YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKAogIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU00KICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLQogIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuICJfX2VzTW9kdWxlIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXQKICAvLyAiZGVmYXVsdCIgdG8gdGhlIENvbW1vbkpTICJtb2R1bGUuZXhwb3J0cyIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS4KICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgImRlZmF1bHQiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsCiAgbW9kCikpOwp2YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNKc29uT2JqZWN0ID0gaXNKc29uT2JqZWN0OwogICAgZXhwb3J0czIuaXNKc29uQXJyYXkgPSBpc0pzb25BcnJheTsKICAgIGZ1bmN0aW9uIGlzSnNvbk9iamVjdCh2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSnNvbkFycmF5KHZhbHVlKSB7CiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3V0aWxpdHkuanMKdmFyIHJlcXVpcmVfdXRpbGl0eSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdXRpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0VHlwZXNPZlNjaGVtYSA9IGdldFR5cGVzT2ZTY2hlbWE7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciBhbGxUeXBlcyA9IFsic3RyaW5nIiwgImludGVnZXIiLCAibnVtYmVyIiwgIm9iamVjdCIsICJhcnJheSIsICJib29sZWFuIiwgIm51bGwiXTsKICAgIGZ1bmN0aW9uIGdldFR5cGVzT2ZTY2hlbWEoc2NoZW1hMikgewogICAgICBpZiAoIXNjaGVtYTIpIHsKICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBuZXcgU2V0KGFsbFR5cGVzKTsKICAgICAgfQogICAgICBsZXQgcG90ZW50aWFsczsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnR5cGUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtzY2hlbWEyLnR5cGVdKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIudHlwZSkpIHsKICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChzY2hlbWEyLnR5cGUpOwogICAgICB9IGVsc2UgaWYgKCgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShzY2hlbWEyLmVudW0pKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCB2IG9mIHNjaGVtYTIuZW51bSkgewogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdikgewogICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBwb3RlbnRpYWxzLmFkZCh0eXBlb2Ygdik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsKICAgICAgICAgICAgICAgIHBvdGVudGlhbHMuYWRkKCJhcnJheSIpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodiA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm51bGwiKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm9iamVjdCIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoYWxsVHlwZXMpOwogICAgICB9CiAgICAgIGlmICgoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIubm90KSkgewogICAgICAgIGNvbnN0IG5vdFR5cGVzID0gZ2V0VHlwZXNPZlNjaGVtYShzY2hlbWEyLm5vdCk7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoWy4uLnBvdGVudGlhbHNdLmZpbHRlcigocCkgPT4gIW5vdFR5cGVzLmhhcyhwKSkpOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIuYWxsT2YpKSB7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbGxPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChbLi4udHlwZXNdLmZpbHRlcigodCkgPT4gcG90ZW50aWFscy5oYXModCkpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5vbmVPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5vbmVPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5hbnlPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbnlPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIucHJvcGVydGllcykgewogICAgICAgIHBvdGVudGlhbHMuYWRkKCJvYmplY3QiKTsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zKSB7CiAgICAgICAgcG90ZW50aWFscy5hZGQoImFycmF5Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvdGVudGlhbHM7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzCnZhciByZXF1aXJlX3RyYW5zZm9ybXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3RyYW5zZm9ybXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFkZFVuZGVmaW5lZERlZmF1bHRzID0gYWRkVW5kZWZpbmVkRGVmYXVsdHM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciB1dGlsaXR5XzEgPSByZXF1aXJlX3V0aWxpdHkoKTsKICAgIGZ1bmN0aW9uIGFkZFVuZGVmaW5lZERlZmF1bHRzKHZhbHVlLCBfcG9pbnRlciwgc2NoZW1hMikgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIiB8fCBzY2hlbWEyID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgdmFsdWUgPz89IHNjaGVtYTIuZGVmYXVsdDsKICAgICAgY29uc3QgdHlwZXMgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHNjaGVtYTIpOwogICAgICBpZiAodHlwZXMuc2l6ZSA9PT0gMCkgewogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBsZXQgdHlwZTI7CiAgICAgIGlmICh0eXBlcy5zaXplID09PSAxKSB7CiAgICAgICAgdHlwZTIgPSBBcnJheS5mcm9tKHR5cGVzKVswXTsKICAgICAgfSBlbHNlIGlmICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygiYXJyYXkiKSAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAiYXJyYXkiOwogICAgICB9IGVsc2UgaWYgKHNjaGVtYTIucHJvcGVydGllcyAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAib2JqZWN0IjsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zICYmIHR5cGVzLmhhcygiYXJyYXkiKSkgewogICAgICAgIHR5cGUyID0gImFycmF5IjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlID09IHZvaWQgMCA/IFtdIDogdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAib2JqZWN0IikgewogICAgICAgIGxldCBuZXdWYWx1ZTsKICAgICAgICBpZiAodmFsdWUgPT0gdm9pZCAwKSB7CiAgICAgICAgICBuZXdWYWx1ZSA9IHt9OwogICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIucHJvcGVydGllcykpIHsKICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIHNjaGVtYU9iamVjdF0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hMi5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgaWYgKHByb3BOYW1lID09PSAiJHNjaGVtYSIgfHwgISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkoc2NoZW1hT2JqZWN0KSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IG5ld1ZhbHVlW3Byb3BOYW1lXTsKICAgICAgICAgIGlmICh2YWx1ZTIgPT09IHZvaWQgMCkgewogICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBzY2hlbWFPYmplY3QuZGVmYXVsdDsKICAgICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5U2NoZW1hcyA9IHNjaGVtYU9iamVjdC5vbmVPZiB8fCBzY2hlbWFPYmplY3QuYW55T2Y7CiAgICAgICAgICAgIGNvbnN0IGFsbFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh2YWx1ZTIpOwogICAgICAgICAgICBjb25zdCBhZGp1c3RlZFNjaGVtYSA9ICgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShwcm9wZXJ0eVNjaGVtYXMpICYmIHByb3BlcnR5U2NoZW1hcy5maW5kKChzKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNvbnN0IHNjaGVtYVR5cGUgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHMpOwogICAgICAgICAgICAgIGlmIChzY2hlbWFUeXBlLnNpemUgPT09IDEgJiYgc2NoZW1hVHlwZS5oYXMoIm9iamVjdCIpICYmICgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkocy5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHMucHJvcGVydGllcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gYWxsUHJvcGVydGllcy5ldmVyeSgoa2V5KSA9PiBwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoYWRqdXN0ZWRTY2hlbWEgJiYgKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KShhZGp1c3RlZFNjaGVtYSkpIHsKICAgICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBhZGRVbmRlZmluZWREZWZhdWx0cyh2YWx1ZTIsIF9wb2ludGVyLCBhZGp1c3RlZFNjaGVtYSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOwogICAgICB9CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvcG9pbnRlci5qcwp2YXIgcmVxdWlyZV9wb2ludGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9wb2ludGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWlsZEpzb25Qb2ludGVyID0gYnVpbGRKc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLmpvaW5Kc29uUG9pbnRlciA9IGpvaW5Kc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLnBhcnNlSnNvblBvaW50ZXIgPSBwYXJzZUpzb25Qb2ludGVyOwogICAgZnVuY3Rpb24gYnVpbGRKc29uUG9pbnRlcihmcmFnbWVudHMpIHsKICAgICAgcmV0dXJuICIvIiArIGZyYWdtZW50cy5tYXAoKGYpID0+IHsKICAgICAgICByZXR1cm4gZi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgICB9KS5qb2luKCIvIik7CiAgICB9CiAgICBmdW5jdGlvbiBqb2luSnNvblBvaW50ZXIocm9vdCwgLi4ub3RoZXJzKSB7CiAgICAgIGlmIChyb290ID09ICIvIikgewogICAgICAgIHJldHVybiBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJvb3QgKyBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICB9CiAgICBmdW5jdGlvbiBwYXJzZUpzb25Qb2ludGVyKHBvaW50ZXIpIHsKICAgICAgaWYgKHBvaW50ZXIgPT09ICIiKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICAgIGlmIChwb2ludGVyLmNoYXJBdCgwKSAhPT0gIi8iKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwb2ludGVyOiAiICsgcG9pbnRlcik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvaW50ZXIuc3Vic3RyaW5nKDEpLnNwbGl0KC9cLy8pLm1hcCgoc3RyMikgPT4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+IikpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMKdmFyIHJlcXVpcmVfY29kZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBleHBvcnRzMi5zYWZlU3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuYWRkQ29kZUFyZyA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5uaWwgPSBleHBvcnRzMi5fQ29kZSA9IGV4cG9ydHMyLk5hbWUgPSBleHBvcnRzMi5JREVOVElGSUVSID0gZXhwb3J0czIuX0NvZGVPck5hbWUgPSB2b2lkIDA7CiAgICB2YXIgX0NvZGVPck5hbWUgPSBjbGFzcyB7CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGVPck5hbWUgPSBfQ29kZU9yTmFtZTsKICAgIGV4cG9ydHMyLklERU5USUZJRVIgPSAvXlthLXokX11bYS16JF8wLTldKiQvaTsKICAgIHZhciBOYW1lID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIGlmICghZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KHMpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiBuYW1lIG11c3QgYmUgYSB2YWxpZCBpZGVudGlmaWVyIik7CiAgICAgICAgdGhpcy5zdHIgPSBzOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0cjsKICAgICAgfQogICAgICBlbXB0eVN0cigpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB7IFt0aGlzLnN0cl06IDEgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5hbWUgPSBOYW1lOwogICAgdmFyIF9Db2RlID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvZGUpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuX2l0ZW1zID0gdHlwZW9mIGNvZGUgPT09ICJzdHJpbmciID8gW2NvZGVdIDogY29kZTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHI7CiAgICAgIH0KICAgICAgZW1wdHlTdHIoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA+IDEpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zWzBdOwogICAgICAgIHJldHVybiBpdGVtID09PSAiIiB8fCBpdGVtID09PSAnIiInOwogICAgICB9CiAgICAgIGdldCBzdHIoKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9zdHIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuX3N0ciA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgocywgYykgPT4gYCR7c30ke2N9YCwgIiIpOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuX25hbWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLl9uYW1lcyA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgobmFtZXMsIGMpID0+IHsKICAgICAgICAgIGlmIChjIGluc3RhbmNlb2YgTmFtZSkKICAgICAgICAgICAgbmFtZXNbYy5zdHJdID0gKG5hbWVzW2Muc3RyXSB8fCAwKSArIDE7CiAgICAgICAgICByZXR1cm4gbmFtZXM7CiAgICAgICAgfSwge30pOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGUgPSBfQ29kZTsKICAgIGV4cG9ydHMyLm5pbCA9IG5ldyBfQ29kZSgiIik7CiAgICBmdW5jdGlvbiBfKHN0cnMsIC4uLmFyZ3MpIHsKICAgICAgY29uc3QgY29kZSA9IFtzdHJzWzBdXTsKICAgICAgbGV0IGkgPSAwOwogICAgICB3aGlsZSAoaSA8IGFyZ3MubGVuZ3RoKSB7CiAgICAgICAgYWRkQ29kZUFyZyhjb2RlLCBhcmdzW2ldKTsKICAgICAgICBjb2RlLnB1c2goc3Ryc1srK2ldKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IF9Db2RlKGNvZGUpOwogICAgfQogICAgZXhwb3J0czIuXyA9IF87CiAgICB2YXIgcGx1cyA9IG5ldyBfQ29kZSgiKyIpOwogICAgZnVuY3Rpb24gc3RyMihzdHJzLCAuLi5hcmdzKSB7CiAgICAgIGNvbnN0IGV4cHIgPSBbc2FmZVN0cmluZ2lmeShzdHJzWzBdKV07CiAgICAgIGxldCBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBhcmdzLmxlbmd0aCkgewogICAgICAgIGV4cHIucHVzaChwbHVzKTsKICAgICAgICBhZGRDb2RlQXJnKGV4cHIsIGFyZ3NbaV0pOwogICAgICAgIGV4cHIucHVzaChwbHVzLCBzYWZlU3RyaW5naWZ5KHN0cnNbKytpXSkpOwogICAgICB9CiAgICAgIG9wdGltaXplKGV4cHIpOwogICAgICByZXR1cm4gbmV3IF9Db2RlKGV4cHIpOwogICAgfQogICAgZXhwb3J0czIuc3RyID0gc3RyMjsKICAgIGZ1bmN0aW9uIGFkZENvZGVBcmcoY29kZSwgYXJnKSB7CiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBfQ29kZSkKICAgICAgICBjb2RlLnB1c2goLi4uYXJnLl9pdGVtcyk7CiAgICAgIGVsc2UgaWYgKGFyZyBpbnN0YW5jZW9mIE5hbWUpCiAgICAgICAgY29kZS5wdXNoKGFyZyk7CiAgICAgIGVsc2UKICAgICAgICBjb2RlLnB1c2goaW50ZXJwb2xhdGUoYXJnKSk7CiAgICB9CiAgICBleHBvcnRzMi5hZGRDb2RlQXJnID0gYWRkQ29kZUFyZzsKICAgIGZ1bmN0aW9uIG9wdGltaXplKGV4cHIpIHsKICAgICAgbGV0IGkgPSAxOwogICAgICB3aGlsZSAoaSA8IGV4cHIubGVuZ3RoIC0gMSkgewogICAgICAgIGlmIChleHByW2ldID09PSBwbHVzKSB7CiAgICAgICAgICBjb25zdCByZXMgPSBtZXJnZUV4cHJJdGVtcyhleHByW2kgLSAxXSwgZXhwcltpICsgMV0pOwogICAgICAgICAgaWYgKHJlcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIGV4cHIuc3BsaWNlKGkgLSAxLCAzLCByZXMpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGV4cHJbaSsrXSA9ICIrIjsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZUV4cHJJdGVtcyhhLCBiKSB7CiAgICAgIGlmIChiID09PSAnIiInKQogICAgICAgIHJldHVybiBhOwogICAgICBpZiAoYSA9PT0gJyIiJykKICAgICAgICByZXR1cm4gYjsKICAgICAgaWYgKHR5cGVvZiBhID09ICJzdHJpbmciKSB7CiAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBOYW1lIHx8IGFbYS5sZW5ndGggLSAxXSAhPT0gJyInKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICh0eXBlb2YgYiAhPSAic3RyaW5nIikKICAgICAgICAgIHJldHVybiBgJHthLnNsaWNlKDAsIC0xKX0ke2J9ImA7CiAgICAgICAgaWYgKGJbMF0gPT09ICciJykKICAgICAgICAgIHJldHVybiBhLnNsaWNlKDAsIC0xKSArIGIuc2xpY2UoMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgYiA9PSAic3RyaW5nIiAmJiBiWzBdID09PSAnIicgJiYgIShhIGluc3RhbmNlb2YgTmFtZSkpCiAgICAgICAgcmV0dXJuIGAiJHthfSR7Yi5zbGljZSgxKX1gOwogICAgICByZXR1cm47CiAgICB9CiAgICBmdW5jdGlvbiBzdHJDb25jYXQoYzEsIGMyKSB7CiAgICAgIHJldHVybiBjMi5lbXB0eVN0cigpID8gYzEgOiBjMS5lbXB0eVN0cigpID8gYzIgOiBzdHIyYCR7YzF9JHtjMn1gOwogICAgfQogICAgZXhwb3J0czIuc3RyQ29uY2F0ID0gc3RyQ29uY2F0OwogICAgZnVuY3Rpb24gaW50ZXJwb2xhdGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gIm51bWJlciIgfHwgdHlwZW9mIHggPT0gImJvb2xlYW4iIHx8IHggPT09IG51bGwgPyB4IDogc2FmZVN0cmluZ2lmeShBcnJheS5pc0FycmF5KHgpID8geC5qb2luKCIsIikgOiB4KTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmluZ2lmeSh4KSB7CiAgICAgIHJldHVybiBuZXcgX0NvZGUoc2FmZVN0cmluZ2lmeSh4KSk7CiAgICB9CiAgICBleHBvcnRzMi5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBzYWZlU3RyaW5naWZ5KHgpIHsKICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogICAgfQogICAgZXhwb3J0czIuc2FmZVN0cmluZ2lmeSA9IHNhZmVTdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBnZXRQcm9wZXJ0eShrZXkpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBrZXkgPT0gInN0cmluZyIgJiYgZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KGtleSkgPyBuZXcgX0NvZGUoYC4ke2tleX1gKSA6IF9gWyR7a2V5fV1gOwogICAgfQogICAgZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBnZXRQcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGdldEVzbUV4cG9ydE5hbWUoa2V5KSB7CiAgICAgIGlmICh0eXBlb2Yga2V5ID09ICJzdHJpbmciICYmIGV4cG9ydHMyLklERU5USUZJRVIudGVzdChrZXkpKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfQ29kZShgJHtrZXl9YCk7CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBpbnZhbGlkIGV4cG9ydCBuYW1lOiAke2tleX0sIHVzZSBleHBsaWNpdCAkaWQgbmFtZSBtYXBwaW5nYCk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZ2V0RXNtRXhwb3J0TmFtZTsKICAgIGZ1bmN0aW9uIHJlZ2V4cENvZGUocngpIHsKICAgICAgcmV0dXJuIG5ldyBfQ29kZShyeC50b1N0cmluZygpKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSByZWdleHBDb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL3Njb3BlLmpzCnZhciByZXF1aXJlX3Njb3BlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vc2NvcGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlZhbHVlU2NvcGUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IGV4cG9ydHMyLlNjb3BlID0gZXhwb3J0czIudmFyS2luZHMgPSBleHBvcnRzMi5Vc2VkVmFsdWVTdGF0ZSA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBWYWx1ZUVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUpIHsKICAgICAgICBzdXBlcihgQ29kZUdlbjogImNvZGUiIGZvciAke25hbWV9IG5vdCBkZWZpbmVkYCk7CiAgICAgICAgdGhpcy52YWx1ZSA9IG5hbWUudmFsdWU7CiAgICAgIH0KICAgIH07CiAgICB2YXIgVXNlZFZhbHVlU3RhdGU7CiAgICAoZnVuY3Rpb24oVXNlZFZhbHVlU3RhdGUyKSB7CiAgICAgIFVzZWRWYWx1ZVN0YXRlMltVc2VkVmFsdWVTdGF0ZTJbIlN0YXJ0ZWQiXSA9IDBdID0gIlN0YXJ0ZWQiOwogICAgICBVc2VkVmFsdWVTdGF0ZTJbVXNlZFZhbHVlU3RhdGUyWyJDb21wbGV0ZWQiXSA9IDFdID0gIkNvbXBsZXRlZCI7CiAgICB9KShVc2VkVmFsdWVTdGF0ZSB8fCAoZXhwb3J0czIuVXNlZFZhbHVlU3RhdGUgPSBVc2VkVmFsdWVTdGF0ZSA9IHt9KSk7CiAgICBleHBvcnRzMi52YXJLaW5kcyA9IHsKICAgICAgY29uc3Q6IG5ldyBjb2RlXzEuTmFtZSgiY29uc3QiKSwKICAgICAgbGV0OiBuZXcgY29kZV8xLk5hbWUoImxldCIpLAogICAgICB2YXI6IG5ldyBjb2RlXzEuTmFtZSgidmFyIikKICAgIH07CiAgICB2YXIgU2NvcGUgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKHsgcHJlZml4ZXMsIHBhcmVudCB9ID0ge30pIHsKICAgICAgICB0aGlzLl9uYW1lcyA9IHt9OwogICAgICAgIHRoaXMuX3ByZWZpeGVzID0gcHJlZml4ZXM7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50OwogICAgICB9CiAgICAgIHRvTmFtZShuYW1lT3JQcmVmaXgpIHsKICAgICAgICByZXR1cm4gbmFtZU9yUHJlZml4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBuYW1lT3JQcmVmaXggOiB0aGlzLm5hbWUobmFtZU9yUHJlZml4KTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgY29kZV8xLk5hbWUodGhpcy5fbmV3TmFtZShwcmVmaXgpKTsKICAgICAgfQogICAgICBfbmV3TmFtZShwcmVmaXgpIHsKICAgICAgICBjb25zdCBuZyA9IHRoaXMuX25hbWVzW3ByZWZpeF0gfHwgdGhpcy5fbmFtZUdyb3VwKHByZWZpeCk7CiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke25nLmluZGV4Kyt9YDsKICAgICAgfQogICAgICBfbmFtZUdyb3VwKHByZWZpeCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCgoX2IgPSAoX2EgPSB0aGlzLl9wYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5fcHJlZml4ZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oYXMocHJlZml4KSkgfHwgdGhpcy5fcHJlZml4ZXMgJiYgIXRoaXMuX3ByZWZpeGVzLmhhcyhwcmVmaXgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IHByZWZpeCAiJHtwcmVmaXh9IiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlYCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9uYW1lc1twcmVmaXhdID0geyBwcmVmaXgsIGluZGV4OiAwIH07CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZSA9IFNjb3BlOwogICAgdmFyIFZhbHVlU2NvcGVOYW1lID0gY2xhc3MgZXh0ZW5kcyBjb2RlXzEuTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHByZWZpeCwgbmFtZVN0cikgewogICAgICAgIHN1cGVyKG5hbWVTdHIpOwogICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OwogICAgICB9CiAgICAgIHNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5LCBpdGVtSW5kZXggfSkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLnNjb3BlUGF0aCA9ICgwLCBjb2RlXzEuXylgLiR7bmV3IGNvZGVfMS5OYW1lKHByb3BlcnR5KX1bJHtpdGVtSW5kZXh9XWA7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IFZhbHVlU2NvcGVOYW1lOwogICAgdmFyIGxpbmUgPSAoMCwgY29kZV8xLl8pYFxuYDsKICAgIHZhciBWYWx1ZVNjb3BlID0gY2xhc3MgZXh0ZW5kcyBTY29wZSB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMpIHsKICAgICAgICBzdXBlcihvcHRzKTsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9zY29wZSA9IG9wdHMuc2NvcGU7CiAgICAgICAgdGhpcy5vcHRzID0geyAuLi5vcHRzLCBfbjogb3B0cy5saW5lcyA/IGxpbmUgOiBjb2RlXzEubmlsIH07CiAgICAgIH0KICAgICAgZ2V0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9zY29wZTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgVmFsdWVTY29wZU5hbWUocHJlZml4LCB0aGlzLl9uZXdOYW1lKHByZWZpeCkpOwogICAgICB9CiAgICAgIHZhbHVlKG5hbWVPclByZWZpeCwgdmFsdWUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHZhbHVlLnJlZiA9PT0gdm9pZCAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiByZWYgbXVzdCBiZSBwYXNzZWQgaW4gdmFsdWUiKTsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy50b05hbWUobmFtZU9yUHJlZml4KTsKICAgICAgICBjb25zdCB7IHByZWZpeCB9ID0gbmFtZTsKICAgICAgICBjb25zdCB2YWx1ZUtleSA9IChfYSA9IHZhbHVlLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsdWUucmVmOwogICAgICAgIGxldCB2cyA9IHRoaXMuX3ZhbHVlc1twcmVmaXhdOwogICAgICAgIGlmICh2cykgewogICAgICAgICAgY29uc3QgX25hbWUgPSB2cy5nZXQodmFsdWVLZXkpOwogICAgICAgICAgaWYgKF9uYW1lKQogICAgICAgICAgICByZXR1cm4gX25hbWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZzID0gdGhpcy5fdmFsdWVzW3ByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIH0KICAgICAgICB2cy5zZXQodmFsdWVLZXksIG5hbWUpOwogICAgICAgIGNvbnN0IHMgPSB0aGlzLl9zY29wZVtwcmVmaXhdIHx8ICh0aGlzLl9zY29wZVtwcmVmaXhdID0gW10pOwogICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHMubGVuZ3RoOwogICAgICAgIHNbaXRlbUluZGV4XSA9IHZhbHVlLnJlZjsKICAgICAgICBuYW1lLnNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5OiBwcmVmaXgsIGl0ZW1JbmRleCB9KTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICBnZXRWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgY29uc3QgdnMgPSB0aGlzLl92YWx1ZXNbcHJlZml4XTsKICAgICAgICBpZiAoIXZzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHJldHVybiB2cy5nZXQoa2V5T3JSZWYpOwogICAgICB9CiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUsIHZhbHVlcyA9IHRoaXMuX3ZhbHVlcykgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUuc2NvcGVQYXRoID09PSB2b2lkIDApCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29kZUdlbjogbmFtZSAiJHtuYW1lfSIgaGFzIG5vIHZhbHVlYCk7CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVfMS5fKWAke3Njb3BlTmFtZX0ke25hbWUuc2NvcGVQYXRofWA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc2NvcGVDb2RlKHZhbHVlcyA9IHRoaXMuX3ZhbHVlcywgdXNlZFZhbHVlcywgZ2V0Q29kZSkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUudmFsdWUgPT09IHZvaWQgMCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke25hbWV9IiBoYXMgbm8gdmFsdWVgKTsKICAgICAgICAgIHJldHVybiBuYW1lLnZhbHVlLmNvZGU7CiAgICAgICAgfSwgdXNlZFZhbHVlcywgZ2V0Q29kZSk7CiAgICAgIH0KICAgICAgX3JlZHVjZVZhbHVlcyh2YWx1ZXMsIHZhbHVlQ29kZSwgdXNlZFZhbHVlcyA9IHt9LCBnZXRDb2RlKSB7CiAgICAgICAgbGV0IGNvZGUgPSBjb2RlXzEubmlsOwogICAgICAgIGZvciAoY29uc3QgcHJlZml4IGluIHZhbHVlcykgewogICAgICAgICAgY29uc3QgdnMgPSB2YWx1ZXNbcHJlZml4XTsKICAgICAgICAgIGlmICghdnMpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgY29uc3QgbmFtZVNldCA9IHVzZWRWYWx1ZXNbcHJlZml4XSA9IHVzZWRWYWx1ZXNbcHJlZml4XSB8fCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgICAgdnMuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAobmFtZVNldC5oYXMobmFtZSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBuYW1lU2V0LnNldChuYW1lLCBVc2VkVmFsdWVTdGF0ZS5TdGFydGVkKTsKICAgICAgICAgICAgbGV0IGMgPSB2YWx1ZUNvZGUobmFtZSk7CiAgICAgICAgICAgIGlmIChjKSB7CiAgICAgICAgICAgICAgY29uc3QgZGVmID0gdGhpcy5vcHRzLmVzNSA/IGV4cG9ydHMyLnZhcktpbmRzLnZhciA6IGV4cG9ydHMyLnZhcktpbmRzLmNvbnN0OwogICAgICAgICAgICAgIGNvZGUgPSAoMCwgY29kZV8xLl8pYCR7Y29kZX0ke2RlZn0gJHtuYW1lfSA9ICR7Y307JHt0aGlzLm9wdHMuX259YDsKICAgICAgICAgICAgfSBlbHNlIGlmIChjID0gZ2V0Q29kZSA9PT0gbnVsbCB8fCBnZXRDb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnZXRDb2RlKG5hbWUpKSB7CiAgICAgICAgICAgICAgY29kZSA9ICgwLCBjb2RlXzEuXylgJHtjb2RlfSR7Y30ke3RoaXMub3B0cy5fbn1gOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93IG5ldyBWYWx1ZUVycm9yKG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hbWVTZXQuc2V0KG5hbWUsIFVzZWRWYWx1ZVN0YXRlLkNvbXBsZXRlZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvZGU7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlID0gVmFsdWVTY29wZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvY29kZWdlbi9pbmRleC5qcwp2YXIgcmVxdWlyZV9jb2RlZ2VuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9yID0gZXhwb3J0czIuYW5kID0gZXhwb3J0czIubm90ID0gZXhwb3J0czIuQ29kZUdlbiA9IGV4cG9ydHMyLm9wZXJhdG9ycyA9IGV4cG9ydHMyLnZhcktpbmRzID0gZXhwb3J0czIuVmFsdWVTY29wZU5hbWUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlID0gZXhwb3J0czIuU2NvcGUgPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIucmVnZXhwQ29kZSA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLmdldFByb3BlcnR5ID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBzY29wZV8xID0gcmVxdWlyZV9zY29wZSgpOwogICAgdmFyIGNvZGVfMiA9IHJlcXVpcmVfY29kZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyQ29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLnN0ckNvbmNhdDsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdldFByb3BlcnR5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLmdldFByb3BlcnR5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ2lmeSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHJpbmdpZnk7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVnZXhwQ29kZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5yZWdleHBDb2RlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIuTmFtZTsKICAgIH0gfSk7CiAgICB2YXIgc2NvcGVfMiA9IHJlcXVpcmVfc2NvcGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5TY29wZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWx1ZVNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZhbHVlU2NvcGVOYW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ2YXJLaW5kcyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjb3BlXzIudmFyS2luZHM7CiAgICB9IH0pOwogICAgZXhwb3J0czIub3BlcmF0b3JzID0gewogICAgICBHVDogbmV3IGNvZGVfMS5fQ29kZSgiPiIpLAogICAgICBHVEU6IG5ldyBjb2RlXzEuX0NvZGUoIj49IiksCiAgICAgIExUOiBuZXcgY29kZV8xLl9Db2RlKCI8IiksCiAgICAgIExURTogbmV3IGNvZGVfMS5fQ29kZSgiPD0iKSwKICAgICAgRVE6IG5ldyBjb2RlXzEuX0NvZGUoIj09PSIpLAogICAgICBORVE6IG5ldyBjb2RlXzEuX0NvZGUoIiE9PSIpLAogICAgICBOT1Q6IG5ldyBjb2RlXzEuX0NvZGUoIiEiKSwKICAgICAgT1I6IG5ldyBjb2RlXzEuX0NvZGUoInx8IiksCiAgICAgIEFORDogbmV3IGNvZGVfMS5fQ29kZSgiJiYiKSwKICAgICAgQUREOiBuZXcgY29kZV8xLl9Db2RlKCIrIikKICAgIH07CiAgICB2YXIgTm9kZSA9IGNsYXNzIHsKICAgICAgb3B0aW1pemVOb2RlcygpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKF9uYW1lcywgX2NvbnN0YW50cykgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgdmFyIERlZiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKHZhcktpbmQsIG5hbWUsIHJocykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucmhzID0gcmhzOwogICAgICB9CiAgICAgIHJlbmRlcih7IGVzNSwgX24gfSkgewogICAgICAgIGNvbnN0IHZhcktpbmQgPSBlczUgPyBzY29wZV8xLnZhcktpbmRzLnZhciA6IHRoaXMudmFyS2luZDsKICAgICAgICBjb25zdCByaHMgPSB0aGlzLnJocyA9PT0gdm9pZCAwID8gIiIgOiBgID0gJHt0aGlzLnJoc31gOwogICAgICAgIHJldHVybiBgJHt2YXJLaW5kfSAke3RoaXMubmFtZX0ke3Joc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghbmFtZXNbdGhpcy5uYW1lLnN0cl0pCiAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKHRoaXMucmhzKQogICAgICAgICAgdGhpcy5yaHMgPSBvcHRpbWl6ZUV4cHIodGhpcy5yaHMsIG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5yaHMgaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyB0aGlzLnJocy5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5saHMgPSBsaHM7CiAgICAgICAgdGhpcy5yaHMgPSByaHM7CiAgICAgICAgdGhpcy5zaWRlRWZmZWN0cyA9IHNpZGVFZmZlY3RzOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYCR7dGhpcy5saHN9ID0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICh0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lICYmICFuYW1lc1t0aGlzLmxocy5zdHJdICYmICF0aGlzLnNpZGVFZmZlY3RzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMucmhzID0gb3B0aW1pemVFeHByKHRoaXMucmhzLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSB0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lID8ge30gOiB7IC4uLnRoaXMubGhzLm5hbWVzIH07CiAgICAgICAgcmV0dXJuIGFkZEV4cHJOYW1lcyhuYW1lcywgdGhpcy5yaHMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbk9wID0gY2xhc3MgZXh0ZW5kcyBBc3NpZ24gewogICAgICBjb25zdHJ1Y3RvcihsaHMsIG9wLCByaHMsIHNpZGVFZmZlY3RzKSB7CiAgICAgICAgc3VwZXIobGhzLCByaHMsIHNpZGVFZmZlY3RzKTsKICAgICAgICB0aGlzLm9wID0gb3A7CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxoc30gJHt0aGlzLm9wfT0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICB9OwogICAgdmFyIExhYmVsID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IobGFiZWwpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDsKICAgICAgICB0aGlzLm5hbWVzID0ge307CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfTpgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgQnJlYWsgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihsYWJlbCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICAgIHRoaXMubmFtZXMgPSB7fTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsID8gYCAke3RoaXMubGFiZWx9YCA6ICIiOwogICAgICAgIHJldHVybiBgYnJlYWske2xhYmVsfTtgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgVGhyb3cgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYHRocm93ICR7dGhpcy5lcnJvcn07YCArIF9uOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5lcnJvci5uYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBBbnlDb2RlID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IoY29kZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5jb2RlID0gY29kZTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX07YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX1gID8gdGhpcyA6IHZvaWQgMDsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpIHsKICAgICAgICB0aGlzLmNvZGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5jb2RlLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29kZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZU9yTmFtZSA/IHRoaXMuY29kZS5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIFBhcmVudE5vZGUgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3Rvcihub2RlcyA9IFtdKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5vZGVzID0gbm9kZXM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5ub2Rlcy5yZWR1Y2UoKGNvZGUsIG4pID0+IGNvZGUgKyBuLnJlbmRlcihvcHRzKSwgIiIpOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV0ub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobikpCiAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxLCAuLi5uKTsKICAgICAgICAgIGVsc2UgaWYgKG4pCiAgICAgICAgICAgIG5vZGVzW2ldID0gbjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV07CiAgICAgICAgICBpZiAobi5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHN1YnRyYWN0TmFtZXMobmFtZXMsIG4ubmFtZXMpOwogICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLm5vZGVzLnJlZHVjZSgobmFtZXMsIG4pID0+IGFkZE5hbWVzKG5hbWVzLCBuLm5hbWVzKSwge30pOwogICAgICB9CiAgICB9OwogICAgdmFyIEJsb2NrTm9kZSA9IGNsYXNzIGV4dGVuZHMgUGFyZW50Tm9kZSB7CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgcmV0dXJuICJ7IiArIG9wdHMuX24gKyBzdXBlci5yZW5kZXIob3B0cykgKyAifSIgKyBvcHRzLl9uOwogICAgICB9CiAgICB9OwogICAgdmFyIFJvb3QgPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgfTsKICAgIHZhciBFbHNlID0gY2xhc3MgZXh0ZW5kcyBCbG9ja05vZGUgewogICAgfTsKICAgIEVsc2Uua2luZCA9ICJlbHNlIjsKICAgIHZhciBJZiA9IGNsYXNzIF9JZiBleHRlbmRzIEJsb2NrTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvbmRpdGlvbiwgbm9kZXMpIHsKICAgICAgICBzdXBlcihub2Rlcyk7CiAgICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9IGBpZigke3RoaXMuY29uZGl0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmVsc2UpCiAgICAgICAgICBjb2RlICs9ICJlbHNlICIgKyB0aGlzLmVsc2UucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgc3VwZXIub3B0aW1pemVOb2RlcygpOwogICAgICAgIGNvbnN0IGNvbmQgPSB0aGlzLmNvbmRpdGlvbjsKICAgICAgICBpZiAoY29uZCA9PT0gdHJ1ZSkKICAgICAgICAgIHJldHVybiB0aGlzLm5vZGVzOwogICAgICAgIGxldCBlID0gdGhpcy5lbHNlOwogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBjb25zdCBucyA9IGUub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgZSA9IHRoaXMuZWxzZSA9IEFycmF5LmlzQXJyYXkobnMpID8gbmV3IEVsc2UobnMpIDogbnM7CiAgICAgICAgfQogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBpZiAoY29uZCA9PT0gZmFsc2UpCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgX0lmID8gZSA6IGUubm9kZXM7CiAgICAgICAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgcmV0dXJuIG5ldyBfSWYobm90KGNvbmQpLCBlIGluc3RhbmNlb2YgX0lmID8gW2VdIDogZS5ub2Rlcyk7CiAgICAgICAgfQogICAgICAgIGlmIChjb25kID09PSBmYWxzZSB8fCAhdGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLmVsc2UgPSAoX2EgPSB0aGlzLmVsc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIGlmICghKHN1cGVyLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgfHwgdGhpcy5lbHNlKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLmNvbmRpdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgYWRkRXhwck5hbWVzKG5hbWVzLCB0aGlzLmNvbmRpdGlvbik7CiAgICAgICAgaWYgKHRoaXMuZWxzZSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmVsc2UubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIElmLmtpbmQgPSAiaWYiOwogICAgdmFyIEZvciA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgIH07CiAgICBGb3Iua2luZCA9ICJmb3IiOwogICAgdmFyIEZvckxvb3AgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGl0ZXJhdGlvbikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5pdGVyYXRpb24gPSBpdGVyYXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMuaXRlcmF0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghc3VwZXIub3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLml0ZXJhdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLml0ZXJhdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYXRpb24ubmFtZXMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvclJhbmdlID0gY2xhc3MgZXh0ZW5kcyBGb3IgewogICAgICBjb25zdHJ1Y3Rvcih2YXJLaW5kLCBuYW1lLCBmcm9tLCB0bykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgdGhpcy50byA9IHRvOwogICAgICB9CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgY29uc3QgdmFyS2luZCA9IG9wdHMuZXM1ID8gc2NvcGVfMS52YXJLaW5kcy52YXIgOiB0aGlzLnZhcktpbmQ7CiAgICAgICAgY29uc3QgeyBuYW1lLCBmcm9tLCB0byB9ID0gdGhpczsKICAgICAgICByZXR1cm4gYGZvcigke3ZhcktpbmR9ICR7bmFtZX09JHtmcm9tfTsgJHtuYW1lfTwke3RvfTsgJHtuYW1lfSsrKWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gYWRkRXhwck5hbWVzKHN1cGVyLm5hbWVzLCB0aGlzLmZyb20pOwogICAgICAgIHJldHVybiBhZGRFeHByTmFtZXMobmFtZXMsIHRoaXMudG8pOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvckl0ZXIgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGxvb3AsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmxvb3AgPSBsb29wOwogICAgICAgIHRoaXMudmFyS2luZCA9IHZhcktpbmQ7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLml0ZXJhYmxlID0gaXRlcmFibGU7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMudmFyS2luZH0gJHt0aGlzLm5hbWV9ICR7dGhpcy5sb29wfSAke3RoaXMuaXRlcmFibGV9KWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgaWYgKCFzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMuaXRlcmFibGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5pdGVyYWJsZSwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYWJsZS5uYW1lcyk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgRnVuYyA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgYXJncywgYXN5bmMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5hcmdzID0gYXJnczsKICAgICAgICB0aGlzLmFzeW5jID0gYXN5bmM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBjb25zdCBfYXN5bmMgPSB0aGlzLmFzeW5jID8gImFzeW5jICIgOiAiIjsKICAgICAgICByZXR1cm4gYCR7X2FzeW5jfWZ1bmN0aW9uICR7dGhpcy5uYW1lfSgke3RoaXMuYXJnc30pYCArIHN1cGVyLnJlbmRlcihvcHRzKTsKICAgICAgfQogICAgfTsKICAgIEZ1bmMua2luZCA9ICJmdW5jIjsKICAgIHZhciBSZXR1cm4gPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiAicmV0dXJuICIgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgIH07CiAgICBSZXR1cm4ua2luZCA9ICJyZXR1cm4iOwogICAgdmFyIFRyeSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9ICJ0cnkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmNhdGNoKQogICAgICAgICAgY29kZSArPSB0aGlzLmNhdGNoLnJlbmRlcihvcHRzKTsKICAgICAgICBpZiAodGhpcy5maW5hbGx5KQogICAgICAgICAgY29kZSArPSB0aGlzLmZpbmFsbHkucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgKF9hID0gdGhpcy5jYXRjaCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplTm9kZXMoKTsKICAgICAgICAoX2IgPSB0aGlzLmZpbmFsbHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYSA9IHRoaXMuY2F0Y2gpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYiA9IHRoaXMuZmluYWxseSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgaWYgKHRoaXMuY2F0Y2gpCiAgICAgICAgICBhZGROYW1lcyhuYW1lcywgdGhpcy5jYXRjaC5uYW1lcyk7CiAgICAgICAgaWYgKHRoaXMuZmluYWxseSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmZpbmFsbHkubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBDYXRjaCA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IoZXJyb3IpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKICAgICAgfQogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiBgY2F0Y2goJHt0aGlzLmVycm9yfSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgQ2F0Y2gua2luZCA9ICJjYXRjaCI7CiAgICB2YXIgRmluYWxseSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gImZpbmFsbHkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgRmluYWxseS5raW5kID0gImZpbmFsbHkiOwogICAgdmFyIENvZGVHZW4gPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGV4dFNjb3BlLCBvcHRzID0ge30pIHsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9ibG9ja1N0YXJ0cyA9IFtdOwogICAgICAgIHRoaXMuX2NvbnN0YW50cyA9IHt9OwogICAgICAgIHRoaXMub3B0cyA9IHsgLi4ub3B0cywgX246IG9wdHMubGluZXMgPyAiXG4iIDogIiIgfTsKICAgICAgICB0aGlzLl9leHRTY29wZSA9IGV4dFNjb3BlOwogICAgICAgIHRoaXMuX3Njb3BlID0gbmV3IHNjb3BlXzEuU2NvcGUoeyBwYXJlbnQ6IGV4dFNjb3BlIH0pOwogICAgICAgIHRoaXMuX25vZGVzID0gW25ldyBSb290KCldOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnJlbmRlcih0aGlzLm9wdHMpOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgdW5pcXVlIG5hbWUgaW4gdGhlIGludGVybmFsIHNjb3BlCiAgICAgIG5hbWUocHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Njb3BlLm5hbWUocHJlZml4KTsKICAgICAgfQogICAgICAvLyByZXNlcnZlcyB1bmlxdWUgbmFtZSBpbiB0aGUgZXh0ZXJuYWwgc2NvcGUKICAgICAgc2NvcGVOYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiB0aGlzLl9leHRTY29wZS5uYW1lKHByZWZpeCk7CiAgICAgIH0KICAgICAgLy8gcmVzZXJ2ZXMgdW5pcXVlIG5hbWUgaW4gdGhlIGV4dGVybmFsIHNjb3BlIGFuZCBhc3NpZ25zIHZhbHVlIHRvIGl0CiAgICAgIHNjb3BlVmFsdWUocHJlZml4T3JOYW1lLCB2YWx1ZSkgewogICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9leHRTY29wZS52YWx1ZShwcmVmaXhPck5hbWUsIHZhbHVlKTsKICAgICAgICBjb25zdCB2cyA9IHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gfHwgKHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKTsKICAgICAgICB2cy5hZGQobmFtZSk7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgIH0KICAgICAgZ2V0U2NvcGVWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLmdldFZhbHVlKHByZWZpeCwga2V5T3JSZWYpOwogICAgICB9CiAgICAgIC8vIHJldHVybiBjb2RlIHRoYXQgYXNzaWducyB2YWx1ZXMgaW4gdGhlIGV4dGVybmFsIHNjb3BlIHRvIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkKICAgICAgLy8gKHNhbWUgbmFtZXMgdGhhdCB3ZXJlIHJldHVybmVkIGJ5IGdlbi5zY29wZU5hbWUgb3IgZ2VuLnNjb3BlVmFsdWUpCiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXh0U2NvcGUuc2NvcGVSZWZzKHNjb3BlTmFtZSwgdGhpcy5fdmFsdWVzKTsKICAgICAgfQogICAgICBzY29wZUNvZGUoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLnNjb3BlQ29kZSh0aGlzLl92YWx1ZXMpOwogICAgICB9CiAgICAgIF9kZWYodmFyS2luZCwgbmFtZU9yUHJlZml4LCByaHMsIGNvbnN0YW50KSB7CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIGlmIChyaHMgIT09IHZvaWQgMCAmJiBjb25zdGFudCkKICAgICAgICAgIHRoaXMuX2NvbnN0YW50c1tuYW1lLnN0cl0gPSByaHM7CiAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IERlZih2YXJLaW5kLCBuYW1lLCByaHMpKTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICAvLyBgY29uc3RgIGRlY2xhcmF0aW9uIChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgY29uc3QobmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWYoc2NvcGVfMS52YXJLaW5kcy5jb25zdCwgbmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCk7CiAgICAgIH0KICAgICAgLy8gYGxldGAgZGVjbGFyYXRpb24gd2l0aCBvcHRpb25hbCBhc3NpZ25tZW50IChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgbGV0KG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMubGV0LCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBgdmFyYCBkZWNsYXJhdGlvbiB3aXRoIG9wdGlvbmFsIGFzc2lnbm1lbnQKICAgICAgdmFyKG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMudmFyLCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBhc3NpZ25tZW50IGNvZGUKICAgICAgYXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykpOwogICAgICB9CiAgICAgIC8vIGArPWAgY29kZQogICAgICBhZGQobGhzLCByaHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IEFzc2lnbk9wKGxocywgZXhwb3J0czIub3BlcmF0b3JzLkFERCwgcmhzKSk7CiAgICAgIH0KICAgICAgLy8gYXBwZW5kcyBwYXNzZWQgU2FmZUV4cHIgdG8gY29kZSBvciBleGVjdXRlcyBCbG9jawogICAgICBjb2RlKGMpIHsKICAgICAgICBpZiAodHlwZW9mIGMgPT0gImZ1bmN0aW9uIikKICAgICAgICAgIGMoKTsKICAgICAgICBlbHNlIGlmIChjICE9PSBjb2RlXzEubmlsKQogICAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IEFueUNvZGUoYykpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgY29kZSBmb3Igb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSBwYXNzZWQgYXJndW1lbnQgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMKICAgICAgb2JqZWN0KC4uLmtleVZhbHVlcykgewogICAgICAgIGNvbnN0IGNvZGUgPSBbInsiXTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBrZXlWYWx1ZXMpIHsKICAgICAgICAgIGlmIChjb2RlLmxlbmd0aCA+IDEpCiAgICAgICAgICAgIGNvZGUucHVzaCgiLCIpOwogICAgICAgICAgY29kZS5wdXNoKGtleSk7CiAgICAgICAgICBpZiAoa2V5ICE9PSB2YWx1ZSB8fCB0aGlzLm9wdHMuZXM1KSB7CiAgICAgICAgICAgIGNvZGUucHVzaCgiOiIpOwogICAgICAgICAgICAoMCwgY29kZV8xLmFkZENvZGVBcmcpKGNvZGUsIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29kZS5wdXNoKCJ9Iik7CiAgICAgICAgcmV0dXJuIG5ldyBjb2RlXzEuX0NvZGUoY29kZSk7CiAgICAgIH0KICAgICAgLy8gYGlmYCBjbGF1c2UgKG9yIHN0YXRlbWVudCBpZiBgdGhlbkJvZHlgIGFuZCwgb3B0aW9uYWxseSwgYGVsc2VCb2R5YCBhcmUgcGFzc2VkKQogICAgICBpZihjb25kaXRpb24sIHRoZW5Cb2R5LCBlbHNlQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShuZXcgSWYoY29uZGl0aW9uKSk7CiAgICAgICAgaWYgKHRoZW5Cb2R5ICYmIGVsc2VCb2R5KSB7CiAgICAgICAgICB0aGlzLmNvZGUodGhlbkJvZHkpLmVsc2UoKS5jb2RlKGVsc2VCb2R5KS5lbmRJZigpOwogICAgICAgIH0gZWxzZSBpZiAodGhlbkJvZHkpIHsKICAgICAgICAgIHRoaXMuY29kZSh0aGVuQm9keSkuZW5kSWYoKTsKICAgICAgICB9IGVsc2UgaWYgKGVsc2VCb2R5KSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJlbHNlIiBib2R5IHdpdGhvdXQgInRoZW4iIGJvZHknKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLy8gYGVsc2UgaWZgIGNsYXVzZSAtIGludmFsaWQgd2l0aG91dCBgaWZgIG9yIGFmdGVyIGBlbHNlYCBjbGF1c2VzCiAgICAgIGVsc2VJZihjb25kaXRpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IElmKGNvbmRpdGlvbikpOwogICAgICB9CiAgICAgIC8vIGBlbHNlYCBjbGF1c2UgLSBvbmx5IHZhbGlkIGFmdGVyIGBpZmAgb3IgYGVsc2UgaWZgIGNsYXVzZXMKICAgICAgZWxzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IEVsc2UoKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBpZmAgc3RhdGVtZW50IChuZWVkZWQgaWYgZ2VuLmlmIHdhcyB1c2VkIG9ubHkgd2l0aCBjb25kaXRpb24pCiAgICAgIGVuZElmKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoSWYsIEVsc2UpOwogICAgICB9CiAgICAgIF9mb3Iobm9kZSwgZm9yQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICBpZiAoZm9yQm9keSkKICAgICAgICAgIHRoaXMuY29kZShmb3JCb2R5KS5lbmRGb3IoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBhIGdlbmVyaWMgYGZvcmAgY2xhdXNlIChvciBzdGF0ZW1lbnQgaWYgYGZvckJvZHlgIGlzIHBhc3NlZCkKICAgICAgZm9yKGl0ZXJhdGlvbiwgZm9yQm9keSkgewogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckxvb3AoaXRlcmF0aW9uKSwgZm9yQm9keSk7CiAgICAgIH0KICAgICAgLy8gYGZvcmAgc3RhdGVtZW50IGZvciBhIHJhbmdlIG9mIHZhbHVlcwogICAgICBmb3JSYW5nZShuYW1lT3JQcmVmaXgsIGZyb20sIHRvLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5sZXQpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcihuZXcgRm9yUmFuZ2UodmFyS2luZCwgbmFtZSwgZnJvbSwgdG8pLCAoKSA9PiBmb3JCb2R5KG5hbWUpKTsKICAgICAgfQogICAgICAvLyBgZm9yLW9mYCBzdGF0ZW1lbnQgKGluIGVzNSBtb2RlIHJlcGxhY2Ugd2l0aCBhIG5vcm1hbCBmb3IgbG9vcCkKICAgICAgZm9yT2YobmFtZU9yUHJlZml4LCBpdGVyYWJsZSwgZm9yQm9keSwgdmFyS2luZCA9IHNjb3BlXzEudmFyS2luZHMuY29uc3QpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgaWYgKHRoaXMub3B0cy5lczUpIHsKICAgICAgICAgIGNvbnN0IGFyciA9IGl0ZXJhYmxlIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBpdGVyYWJsZSA6IHRoaXMudmFyKCJfYXJyIiwgaXRlcmFibGUpOwogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yUmFuZ2UoIl9pIiwgMCwgKDAsIGNvZGVfMS5fKWAke2Fycn0ubGVuZ3RoYCwgKGkpID0+IHsKICAgICAgICAgICAgdGhpcy52YXIobmFtZSwgKDAsIGNvZGVfMS5fKWAke2Fycn1bJHtpfV1gKTsKICAgICAgICAgICAgZm9yQm9keShuYW1lKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fZm9yKG5ldyBGb3JJdGVyKCJvZiIsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gYGZvci1pbmAgc3RhdGVtZW50LgogICAgICAvLyBXaXRoIG9wdGlvbiBgb3duUHJvcGVydGllc2AgcmVwbGFjZWQgd2l0aCBhIGBmb3Itb2ZgIGxvb3AgZm9yIG9iamVjdCBrZXlzCiAgICAgIGZvckluKG5hbWVPclByZWZpeCwgb2JqLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5jb25zdCkgewogICAgICAgIGlmICh0aGlzLm9wdHMub3duUHJvcGVydGllcykgewogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yT2YobmFtZU9yUHJlZml4LCAoMCwgY29kZV8xLl8pYE9iamVjdC5rZXlzKCR7b2JqfSlgLCBmb3JCb2R5KTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckl0ZXIoImluIiwgdmFyS2luZCwgbmFtZSwgb2JqKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBmb3JgIGxvb3AKICAgICAgZW5kRm9yKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRm9yKTsKICAgICAgfQogICAgICAvLyBgbGFiZWxgIHN0YXRlbWVudAogICAgICBsYWJlbChsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgTGFiZWwobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgYnJlYWtgIHN0YXRlbWVudAogICAgICBicmVhayhsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQnJlYWsobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgcmV0dXJuYCBzdGF0ZW1lbnQKICAgICAgcmV0dXJuKHZhbHVlKSB7CiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBSZXR1cm4oKTsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobm9kZSk7CiAgICAgICAgdGhpcy5jb2RlKHZhbHVlKTsKICAgICAgICBpZiAobm9kZS5ub2Rlcy5sZW5ndGggIT09IDEpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJyZXR1cm4iIHNob3VsZCBoYXZlIG9uZSBub2RlJyk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2VuZEJsb2NrTm9kZShSZXR1cm4pOwogICAgICB9CiAgICAgIC8vIGB0cnlgIHN0YXRlbWVudAogICAgICB0cnkodHJ5Qm9keSwgY2F0Y2hDb2RlLCBmaW5hbGx5Q29kZSkgewogICAgICAgIGlmICghY2F0Y2hDb2RlICYmICFmaW5hbGx5Q29kZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInRyeSIgd2l0aG91dCAiY2F0Y2giIGFuZCAiZmluYWxseSInKTsKICAgICAgICBjb25zdCBub2RlID0gbmV3IFRyeSgpOwogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICB0aGlzLmNvZGUodHJ5Qm9keSk7CiAgICAgICAgaWYgKGNhdGNoQ29kZSkgewogICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5hbWUoImUiKTsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5jYXRjaCA9IG5ldyBDYXRjaChlcnJvcik7CiAgICAgICAgICBjYXRjaENvZGUoZXJyb3IpOwogICAgICAgIH0KICAgICAgICBpZiAoZmluYWxseUNvZGUpIHsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5maW5hbGx5ID0gbmV3IEZpbmFsbHkoKTsKICAgICAgICAgIHRoaXMuY29kZShmaW5hbGx5Q29kZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoQ2F0Y2gsIEZpbmFsbHkpOwogICAgICB9CiAgICAgIC8vIGB0aHJvd2Agc3RhdGVtZW50CiAgICAgIHRocm93KGVycm9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBUaHJvdyhlcnJvcikpOwogICAgICB9CiAgICAgIC8vIHN0YXJ0IHNlbGYtYmFsYW5jaW5nIGJsb2NrCiAgICAgIGJsb2NrKGJvZHksIG5vZGVDb3VudCkgewogICAgICAgIHRoaXMuX2Jsb2NrU3RhcnRzLnB1c2godGhpcy5fbm9kZXMubGVuZ3RoKTsKICAgICAgICBpZiAoYm9keSkKICAgICAgICAgIHRoaXMuY29kZShib2R5KS5lbmRCbG9jayhub2RlQ291bnQpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIGVuZCB0aGUgY3VycmVudCBzZWxmLWJhbGFuY2luZyBibG9jawogICAgICBlbmRCbG9jayhub2RlQ291bnQpIHsKICAgICAgICBjb25zdCBsZW4gPSB0aGlzLl9ibG9ja1N0YXJ0cy5wb3AoKTsKICAgICAgICBpZiAobGVuID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvZGVHZW46IG5vdCBpbiBzZWxmLWJhbGFuY2luZyBibG9jayIpOwogICAgICAgIGNvbnN0IHRvQ2xvc2UgPSB0aGlzLl9ub2Rlcy5sZW5ndGggLSBsZW47CiAgICAgICAgaWYgKHRvQ2xvc2UgPCAwIHx8IG5vZGVDb3VudCAhPT0gdm9pZCAwICYmIHRvQ2xvc2UgIT09IG5vZGVDb3VudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiB3cm9uZyBudW1iZXIgb2Ygbm9kZXM6ICR7dG9DbG9zZX0gdnMgJHtub2RlQ291bnR9IGV4cGVjdGVkYCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX25vZGVzLmxlbmd0aCA9IGxlbjsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBgZnVuY3Rpb25gIGhlYWRpbmcgKG9yIGRlZmluaXRpb24gaWYgZnVuY0JvZHkgaXMgcGFzc2VkKQogICAgICBmdW5jKG5hbWUsIGFyZ3MgPSBjb2RlXzEubmlsLCBhc3luYywgZnVuY0JvZHkpIHsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobmV3IEZ1bmMobmFtZSwgYXJncywgYXN5bmMpKTsKICAgICAgICBpZiAoZnVuY0JvZHkpCiAgICAgICAgICB0aGlzLmNvZGUoZnVuY0JvZHkpLmVuZEZ1bmMoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBlbmQgZnVuY3Rpb24gZGVmaW5pdGlvbgogICAgICBlbmRGdW5jKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRnVuYyk7CiAgICAgIH0KICAgICAgb3B0aW1pemUobiA9IDEpIHsKICAgICAgICB3aGlsZSAobi0tID4gMCkgewogICAgICAgICAgdGhpcy5fcm9vdC5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgICB0aGlzLl9yb290Lm9wdGltaXplTmFtZXModGhpcy5fcm9vdC5uYW1lcywgdGhpcy5fY29uc3RhbnRzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2xlYWZOb2RlKG5vZGUpIHsKICAgICAgICB0aGlzLl9jdXJyTm9kZS5ub2Rlcy5wdXNoKG5vZGUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF9ibG9ja05vZGUobm9kZSkgewogICAgICAgIHRoaXMuX2N1cnJOb2RlLm5vZGVzLnB1c2gobm9kZSk7CiAgICAgICAgdGhpcy5fbm9kZXMucHVzaChub2RlKTsKICAgICAgfQogICAgICBfZW5kQmxvY2tOb2RlKE4xLCBOMikgewogICAgICAgIGNvbnN0IG4gPSB0aGlzLl9jdXJyTm9kZTsKICAgICAgICBpZiAobiBpbnN0YW5jZW9mIE4xIHx8IE4yICYmIG4gaW5zdGFuY2VvZiBOMikgewogICAgICAgICAgdGhpcy5fbm9kZXMucG9wKCk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBub3QgaW4gYmxvY2sgIiR7TjIgPyBgJHtOMS5raW5kfS8ke04yLmtpbmR9YCA6IE4xLmtpbmR9ImApOwogICAgICB9CiAgICAgIF9lbHNlTm9kZShub2RlKSB7CiAgICAgICAgY29uc3QgbiA9IHRoaXMuX2N1cnJOb2RlOwogICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBJZikpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogImVsc2UiIHdpdGhvdXQgImlmIicpOwogICAgICAgIH0KICAgICAgICB0aGlzLl9jdXJyTm9kZSA9IG4uZWxzZSA9IG5vZGU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IF9yb290KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc1swXTsKICAgICAgfQogICAgICBnZXQgX2N1cnJOb2RlKCkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgcmV0dXJuIG5zW25zLmxlbmd0aCAtIDFdOwogICAgICB9CiAgICAgIHNldCBfY3Vyck5vZGUobm9kZSkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgbnNbbnMubGVuZ3RoIC0gMV0gPSBub2RlOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29kZUdlbiA9IENvZGVHZW47CiAgICBmdW5jdGlvbiBhZGROYW1lcyhuYW1lcywgZnJvbSkgewogICAgICBmb3IgKGNvbnN0IG4gaW4gZnJvbSkKICAgICAgICBuYW1lc1tuXSA9IChuYW1lc1tuXSB8fCAwKSArIChmcm9tW25dIHx8IDApOwogICAgICByZXR1cm4gbmFtZXM7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFeHByTmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgcmV0dXJuIGZyb20gaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyBhZGROYW1lcyhuYW1lcywgZnJvbS5uYW1lcykgOiBuYW1lczsKICAgIH0KICAgIGZ1bmN0aW9uIG9wdGltaXplRXhwcihleHByLCBuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgIGlmIChleHByIGluc3RhbmNlb2YgY29kZV8xLk5hbWUpCiAgICAgICAgcmV0dXJuIHJlcGxhY2VOYW1lKGV4cHIpOwogICAgICBpZiAoIWNhbk9wdGltaXplKGV4cHIpKQogICAgICAgIHJldHVybiBleHByOwogICAgICByZXR1cm4gbmV3IGNvZGVfMS5fQ29kZShleHByLl9pdGVtcy5yZWR1Y2UoKGl0ZW1zLCBjKSA9PiB7CiAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBjb2RlXzEuTmFtZSkKICAgICAgICAgIGMgPSByZXBsYWNlTmFtZShjKTsKICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSkKICAgICAgICAgIGl0ZW1zLnB1c2goLi4uYy5faXRlbXMpOwogICAgICAgIGVsc2UKICAgICAgICAgIGl0ZW1zLnB1c2goYyk7CiAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICB9LCBbXSkpOwogICAgICBmdW5jdGlvbiByZXBsYWNlTmFtZShuKSB7CiAgICAgICAgY29uc3QgYyA9IGNvbnN0YW50c1tuLnN0cl07CiAgICAgICAgaWYgKGMgPT09IHZvaWQgMCB8fCBuYW1lc1tuLnN0cl0gIT09IDEpCiAgICAgICAgICByZXR1cm4gbjsKICAgICAgICBkZWxldGUgbmFtZXNbbi5zdHJdOwogICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbk9wdGltaXplKGUpIHsKICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSAmJiBlLl9pdGVtcy5zb21lKChjKSA9PiBjIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgJiYgbmFtZXNbYy5zdHJdID09PSAxICYmIGNvbnN0YW50c1tjLnN0cl0gIT09IHZvaWQgMCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHN1YnRyYWN0TmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgZm9yIChjb25zdCBuIGluIGZyb20pCiAgICAgICAgbmFtZXNbbl0gPSAobmFtZXNbbl0gfHwgMCkgLSAoZnJvbVtuXSB8fCAwKTsKICAgIH0KICAgIGZ1bmN0aW9uIG5vdCh4KSB7CiAgICAgIHJldHVybiB0eXBlb2YgeCA9PSAiYm9vbGVhbiIgfHwgdHlwZW9mIHggPT0gIm51bWJlciIgfHwgeCA9PT0gbnVsbCA/ICF4IDogKDAsIGNvZGVfMS5fKWAhJHtwYXIoeCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLm5vdCA9IG5vdDsKICAgIHZhciBhbmRDb2RlID0gbWFwcGVuZChleHBvcnRzMi5vcGVyYXRvcnMuQU5EKTsKICAgIGZ1bmN0aW9uIGFuZCguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShhbmRDb2RlKTsKICAgIH0KICAgIGV4cG9ydHMyLmFuZCA9IGFuZDsKICAgIHZhciBvckNvZGUgPSBtYXBwZW5kKGV4cG9ydHMyLm9wZXJhdG9ycy5PUik7CiAgICBmdW5jdGlvbiBvciguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShvckNvZGUpOwogICAgfQogICAgZXhwb3J0czIub3IgPSBvcjsKICAgIGZ1bmN0aW9uIG1hcHBlbmQob3ApIHsKICAgICAgcmV0dXJuICh4LCB5KSA9PiB4ID09PSBjb2RlXzEubmlsID8geSA6IHkgPT09IGNvZGVfMS5uaWwgPyB4IDogKDAsIGNvZGVfMS5fKWAke3Bhcih4KX0gJHtvcH0gJHtwYXIoeSl9YDsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcih4KSB7CiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyB4IDogKDAsIGNvZGVfMS5fKWAoJHt4fSlgOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS91dGlsLmpzCnZhciByZXF1aXJlX3V0aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdXRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gZXhwb3J0czIuZ2V0RXJyb3JQYXRoID0gZXhwb3J0czIuVHlwZSA9IGV4cG9ydHMyLnVzZUZ1bmMgPSBleHBvcnRzMi5zZXRFdmFsdWF0ZWQgPSBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV4cG9ydHMyLm1lcmdlRXZhbHVhdGVkID0gZXhwb3J0czIuZWFjaEl0ZW0gPSBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBleHBvcnRzMi5lc2NhcGVGcmFnbWVudCA9IGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSBleHBvcnRzMi5zY2hlbWFSZWZPclZhbCA9IGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzQnV0UmVmID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXMgPSBleHBvcnRzMi5jaGVja1Vua25vd25SdWxlcyA9IGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gZXhwb3J0czIudG9IYXNoID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZSgpOwogICAgZnVuY3Rpb24gdG9IYXNoKGFycikgewogICAgICBjb25zdCBoYXNoID0ge307CiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpCiAgICAgICAgaGFzaFtpdGVtXSA9IHRydWU7CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogICAgZXhwb3J0czIudG9IYXNoID0gdG9IYXNoOwogICAgZnVuY3Rpb24gYWx3YXlzVmFsaWRTY2hlbWEoaXQsIHNjaGVtYTIpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gc2NoZW1hMjsKICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYTIpLmxlbmd0aCA9PT0gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2hlY2tVbmtub3duUnVsZXMoaXQsIHNjaGVtYTIpOwogICAgICByZXR1cm4gIXNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIGl0LnNlbGYuUlVMRVMuYWxsKTsKICAgIH0KICAgIGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gYWx3YXlzVmFsaWRTY2hlbWE7CiAgICBmdW5jdGlvbiBjaGVja1Vua25vd25SdWxlcyhpdCwgc2NoZW1hMiA9IGl0LnNjaGVtYSkgewogICAgICBjb25zdCB7IG9wdHMsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgaWYgKCFvcHRzLnN0cmljdFNjaGVtYSkKICAgICAgICByZXR1cm47CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgcnVsZXMgPSBzZWxmMi5SVUxFUy5rZXl3b3JkczsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmICghcnVsZXNba2V5XSkKICAgICAgICAgIGNoZWNrU3RyaWN0TW9kZShpdCwgYHVua25vd24ga2V5d29yZDogIiR7a2V5fSJgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tVbmtub3duUnVsZXMgPSBjaGVja1Vua25vd25SdWxlczsKICAgIGZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIHJ1bGVzKSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgcmV0dXJuICFzY2hlbWEyOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKQogICAgICAgIGlmIChydWxlc1trZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzID0gc2NoZW1hSGFzUnVsZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFIYXNSdWxlc0J1dFJlZihzY2hlbWEyLCBSVUxFUykgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybiAhc2NoZW1hMjsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikKICAgICAgICBpZiAoa2V5ICE9PSAiJHJlZiIgJiYgUlVMRVMuYWxsW2tleV0pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNCdXRSZWYgPSBzY2hlbWFIYXNSdWxlc0J1dFJlZjsKICAgIGZ1bmN0aW9uIHNjaGVtYVJlZk9yVmFsKHsgdG9wU2NoZW1hUmVmLCBzY2hlbWFQYXRoIH0sIHNjaGVtYTIsIGtleXdvcmQsICRkYXRhKSB7CiAgICAgIGlmICghJGRhdGEpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gIm51bWJlciIgfHwgdHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgICAgcmV0dXJuIHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciKQogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtzY2hlbWEyfWA7CiAgICAgIH0KICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHt0b3BTY2hlbWFSZWZ9JHtzY2hlbWFQYXRofSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoa2V5d29yZCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYVJlZk9yVmFsID0gc2NoZW1hUmVmT3JWYWw7CiAgICBmdW5jdGlvbiB1bmVzY2FwZUZyYWdtZW50KHN0cjIpIHsKICAgICAgcmV0dXJuIHVuZXNjYXBlSnNvblBvaW50ZXIoZGVjb2RlVVJJQ29tcG9uZW50KHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSB1bmVzY2FwZUZyYWdtZW50OwogICAgZnVuY3Rpb24gZXNjYXBlRnJhZ21lbnQoc3RyMikgewogICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVzY2FwZUpzb25Qb2ludGVyKHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmVzY2FwZUZyYWdtZW50ID0gZXNjYXBlRnJhZ21lbnQ7CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUG9pbnRlcihzdHIyKSB7CiAgICAgIGlmICh0eXBlb2Ygc3RyMiA9PSAibnVtYmVyIikKICAgICAgICByZXR1cm4gYCR7c3RyMn1gOwogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgfQogICAgZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBlc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXIoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+Iik7CiAgICB9CiAgICBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gdW5lc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIGVhY2hJdGVtKHhzLCBmKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHhzKSkgewogICAgICAgIGZvciAoY29uc3QgeCBvZiB4cykKICAgICAgICAgIGYoeCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZih4cyk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVhY2hJdGVtID0gZWFjaEl0ZW07CiAgICBmdW5jdGlvbiBtYWtlTWVyZ2VFdmFsdWF0ZWQoeyBtZXJnZU5hbWVzLCBtZXJnZVRvTmFtZSwgbWVyZ2VWYWx1ZXMsIHJlc3VsdFRvTmFtZSB9KSB7CiAgICAgIHJldHVybiAoZ2VuLCBmcm9tLCB0bywgdG9OYW1lKSA9PiB7CiAgICAgICAgY29uc3QgcmVzID0gdG8gPT09IHZvaWQgMCA/IGZyb20gOiB0byBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKGZyb20gaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IG1lcmdlTmFtZXMoZ2VuLCBmcm9tLCB0bykgOiBtZXJnZVRvTmFtZShnZW4sIGZyb20sIHRvKSwgdG8pIDogZnJvbSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKG1lcmdlVG9OYW1lKGdlbiwgdG8sIGZyb20pLCBmcm9tKSA6IG1lcmdlVmFsdWVzKGZyb20sIHRvKTsKICAgICAgICByZXR1cm4gdG9OYW1lID09PSBjb2RlZ2VuXzEuTmFtZSAmJiAhKHJlcyBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSA/IHJlc3VsdFRvTmFtZShnZW4sIHJlcykgOiByZXM7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUV2YWx1YXRlZCA9IHsKICAgICAgcHJvcHM6IG1ha2VNZXJnZUV2YWx1YXRlZCh7CiAgICAgICAgbWVyZ2VOYW1lczogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlICYmICR7ZnJvbX0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZnJvbX0gPT09IHRydWVgLCAoKSA9PiBnZW4uYXNzaWduKHRvLCB0cnVlKSwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke3RvfSB8fCB7fWApLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QuYXNzaWduKCR7dG99LCAke2Zyb219KWApKTsKICAgICAgICB9KSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gewogICAgICAgICAgaWYgKGZyb20gPT09IHRydWUpIHsKICAgICAgICAgICAgZ2VuLmFzc2lnbih0bywgdHJ1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uYXNzaWduKHRvLCAoMCwgY29kZWdlbl8xLl8pYCR7dG99IHx8IHt9YCk7CiAgICAgICAgICAgIHNldEV2YWx1YXRlZChnZW4sIHRvLCBmcm9tKTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IHsgLi4uZnJvbSwgLi4udG8gfSwKICAgICAgICByZXN1bHRUb05hbWU6IGV2YWx1YXRlZFByb3BzVG9OYW1lCiAgICAgIH0pLAogICAgICBpdGVtczogbWFrZU1lcmdlRXZhbHVhdGVkKHsKICAgICAgICBtZXJnZU5hbWVzOiAoZ2VuLCBmcm9tLCB0bykgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHt0b30gIT09IHRydWUgJiYgJHtmcm9tfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke2Zyb219ID09PSB0cnVlID8gdHJ1ZSA6ICR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgZnJvbSA9PT0gdHJ1ZSA/IHRydWUgOiAoMCwgY29kZWdlbl8xLl8pYCR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IE1hdGgubWF4KGZyb20sIHRvKSwKICAgICAgICByZXN1bHRUb05hbWU6IChnZW4sIGl0ZW1zKSA9PiBnZW4udmFyKCJpdGVtcyIsIGl0ZW1zKQogICAgICB9KQogICAgfTsKICAgIGZ1bmN0aW9uIGV2YWx1YXRlZFByb3BzVG9OYW1lKGdlbiwgcHMpIHsKICAgICAgaWYgKHBzID09PSB0cnVlKQogICAgICAgIHJldHVybiBnZW4udmFyKCJwcm9wcyIsIHRydWUpOwogICAgICBjb25zdCBwcm9wcyA9IGdlbi52YXIoInByb3BzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICBpZiAocHMgIT09IHZvaWQgMCkKICAgICAgICBzZXRFdmFsdWF0ZWQoZ2VuLCBwcm9wcywgcHMpOwogICAgICByZXR1cm4gcHJvcHM7CiAgICB9CiAgICBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV2YWx1YXRlZFByb3BzVG9OYW1lOwogICAgZnVuY3Rpb24gc2V0RXZhbHVhdGVkKGdlbiwgcHJvcHMsIHBzKSB7CiAgICAgIE9iamVjdC5rZXlzKHBzKS5mb3JFYWNoKChwKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wc30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHApfWAsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNldEV2YWx1YXRlZCA9IHNldEV2YWx1YXRlZDsKICAgIHZhciBzbmlwcGV0cyA9IHt9OwogICAgZnVuY3Rpb24gdXNlRnVuYyhnZW4sIGYpIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIHJlZjogZiwKICAgICAgICBjb2RlOiBzbmlwcGV0c1tmLmNvZGVdIHx8IChzbmlwcGV0c1tmLmNvZGVdID0gbmV3IGNvZGVfMS5fQ29kZShmLmNvZGUpKQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzZUZ1bmMgPSB1c2VGdW5jOwogICAgdmFyIFR5cGU7CiAgICAoZnVuY3Rpb24oVHlwZTIpIHsKICAgICAgVHlwZTJbVHlwZTJbIk51bSJdID0gMF0gPSAiTnVtIjsKICAgICAgVHlwZTJbVHlwZTJbIlN0ciJdID0gMV0gPSAiU3RyIjsKICAgIH0pKFR5cGUgfHwgKGV4cG9ydHMyLlR5cGUgPSBUeXBlID0ge30pKTsKICAgIGZ1bmN0aW9uIGdldEVycm9yUGF0aChkYXRhUHJvcCwgZGF0YVByb3BUeXBlLCBqc1Byb3BlcnR5U3ludGF4KSB7CiAgICAgIGlmIChkYXRhUHJvcCBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSB7CiAgICAgICAgY29uc3QgaXNOdW1iZXIgPSBkYXRhUHJvcFR5cGUgPT09IFR5cGUuTnVtOwogICAgICAgIHJldHVybiBqc1Byb3BlcnR5U3ludGF4ID8gaXNOdW1iZXIgPyAoMCwgY29kZWdlbl8xLl8pYCJbIiArICR7ZGF0YVByb3B9ICsgIl0iYCA6ICgwLCBjb2RlZ2VuXzEuXylgIlsnIiArICR7ZGF0YVByb3B9ICsgIiddImAgOiBpc051bWJlciA/ICgwLCBjb2RlZ2VuXzEuXylgIi8iICsgJHtkYXRhUHJvcH1gIDogKDAsIGNvZGVnZW5fMS5fKWAiLyIgKyAke2RhdGFQcm9wfS5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1xcLy9nLCAifjEiKWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGpzUHJvcGVydHlTeW50YXggPyAoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCkudG9TdHJpbmcoKSA6ICIvIiArIGVzY2FwZUpzb25Qb2ludGVyKGRhdGFQcm9wKTsKICAgIH0KICAgIGV4cG9ydHMyLmdldEVycm9yUGF0aCA9IGdldEVycm9yUGF0aDsKICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0TW9kZShpdCwgbXNnLCBtb2RlID0gaXQub3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgaWYgKCFtb2RlKQogICAgICAgIHJldHVybjsKICAgICAgbXNnID0gYHN0cmljdCBtb2RlOiAke21zZ31gOwogICAgICBpZiAobW9kZSA9PT0gdHJ1ZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKICAgICAgaXQuc2VsZi5sb2dnZXIud2Fybihtc2cpOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gY2hlY2tTdHJpY3RNb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcwp2YXIgcmVxdWlyZV9uYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzID0gewogICAgICAvLyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGFyZ3VtZW50cwogICAgICBkYXRhOiBuZXcgY29kZWdlbl8xLk5hbWUoImRhdGEiKSwKICAgICAgLy8gZGF0YSBwYXNzZWQgdG8gdmFsaWRhdGlvbiBmdW5jdGlvbgogICAgICAvLyBhcmdzIHBhc3NlZCBmcm9tIHJlZmVyZW5jaW5nIHNjaGVtYQogICAgICB2YWxDeHQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgidmFsQ3h0IiksCiAgICAgIC8vIHZhbGlkYXRpb24vZGF0YSBjb250ZXh0IC0gc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBpdCBpcyBkZXN0cnVjdHVyZWQgdG8gdGhlIG5hbWVzIGJlbG93CiAgICAgIGluc3RhbmNlUGF0aDogbmV3IGNvZGVnZW5fMS5OYW1lKCJpbnN0YW5jZVBhdGgiKSwKICAgICAgcGFyZW50RGF0YTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhIiksCiAgICAgIHBhcmVudERhdGFQcm9wZXJ0eTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhUHJvcGVydHkiKSwKICAgICAgcm9vdERhdGE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicm9vdERhdGEiKSwKICAgICAgLy8gcm9vdCBkYXRhIC0gc2FtZSBhcyB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIGZpcnN0L3RvcCB2YWxpZGF0aW9uIGZ1bmN0aW9uCiAgICAgIGR5bmFtaWNBbmNob3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoImR5bmFtaWNBbmNob3JzIiksCiAgICAgIC8vIHVzZWQgdG8gc3VwcG9ydCByZWN1cnNpdmVSZWYgYW5kIGR5bmFtaWNSZWYKICAgICAgLy8gZnVuY3Rpb24gc2NvcGVkIHZhcmlhYmxlcwogICAgICB2RXJyb3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoInZFcnJvcnMiKSwKICAgICAgLy8gbnVsbCBvciBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9ycwogICAgICBlcnJvcnM6IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZXJyb3JzIiksCiAgICAgIC8vIGNvdW50ZXIgb2YgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgdGhpczogbmV3IGNvZGVnZW5fMS5OYW1lKCJ0aGlzIiksCiAgICAgIC8vICJnbG9iYWxzIgogICAgICBzZWxmOiBuZXcgY29kZWdlbl8xLk5hbWUoInNlbGYiKSwKICAgICAgc2NvcGU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NvcGUiKSwKICAgICAgLy8gSlREIHNlcmlhbGl6ZS9wYXJzZSBuYW1lIGZvciBKU09OIHN0cmluZyBhbmQgcG9zaXRpb24KICAgICAganNvbjogbmV3IGNvZGVnZW5fMS5OYW1lKCJqc29uIiksCiAgICAgIGpzb25Qb3M6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBvcyIpLAogICAgICBqc29uTGVuOiBuZXcgY29kZWdlbl8xLk5hbWUoImpzb25MZW4iKSwKICAgICAganNvblBhcnQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBhcnQiKQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBuYW1lczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvZXJyb3JzLmpzCnZhciByZXF1aXJlX2Vycm9ycyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9lcnJvcnMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4cG9ydHMyLnJlc2V0RXJyb3JzQ291bnQgPSBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gZXhwb3J0czIucmVwb3J0RXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgZXhwb3J0czIua2V5d29yZEVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IHBhc3MgIiR7a2V5d29yZH0iIGtleXdvcmQgdmFsaWRhdGlvbmAKICAgIH07CiAgICBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsga2V5d29yZCwgc2NoZW1hVHlwZSB9KSA9PiBzY2hlbWFUeXBlID8gKDAsIGNvZGVnZW5fMS5zdHIpYCIke2tleXdvcmR9IiBrZXl3b3JkIG11c3QgYmUgJHtzY2hlbWFUeXBlfSAoJGRhdGEpYCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAiJHtrZXl3b3JkfSIga2V5d29yZCBpcyBpbnZhbGlkICgkZGF0YSlgCiAgICB9OwogICAgZnVuY3Rpb24gcmVwb3J0RXJyb3IoY3h0LCBlcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciwgZXJyb3JQYXRocywgb3ZlcnJpZGVBbGxFcnJvcnMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBpZiAob3ZlcnJpZGVBbGxFcnJvcnMgIT09IG51bGwgJiYgb3ZlcnJpZGVBbGxFcnJvcnMgIT09IHZvaWQgMCA/IG92ZXJyaWRlQWxsRXJyb3JzIDogY29tcG9zaXRlUnVsZSB8fCBhbGxFcnJvcnMpIHsKICAgICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuRXJyb3JzKGl0LCAoMCwgY29kZWdlbl8xLl8pYFske2Vyck9ian1dYCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydEVycm9yID0gcmVwb3J0RXJyb3I7CiAgICBmdW5jdGlvbiByZXBvcnRFeHRyYUVycm9yKGN4dCwgZXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkRXJyb3IsIGVycm9yUGF0aHMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIGlmICghKGNvbXBvc2l0ZVJ1bGUgfHwgYWxsRXJyb3JzKSkgewogICAgICAgIHJldHVybkVycm9ycyhpdCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gcmVwb3J0RXh0cmFFcnJvcjsKICAgIGZ1bmN0aW9uIHJlc2V0RXJyb3JzQ291bnQoZ2VuLCBlcnJzQ291bnQpIHsKICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCBlcnJzQ291bnQpOwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfSAhPT0gbnVsbGAsICgpID0+IGdlbi5pZihlcnJzQ291bnQsICgpID0+IGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfS5sZW5ndGhgLCBlcnJzQ291bnQpLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCBudWxsKSkpOwogICAgfQogICAgZXhwb3J0czIucmVzZXRFcnJvcnNDb3VudCA9IHJlc2V0RXJyb3JzQ291bnQ7CiAgICBmdW5jdGlvbiBleHRlbmRFcnJvcnMoeyBnZW4sIGtleXdvcmQsIHNjaGVtYVZhbHVlLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0pIHsKICAgICAgaWYgKGVycnNDb3VudCA9PT0gdm9pZCAwKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5uYW1lKCJlcnIiKTsKICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgZXJyc0NvdW50LCBuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoaSkgPT4gewogICAgICAgIGdlbi5jb25zdChlcnIsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc31bJHtpfV1gKTsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uaW5zdGFuY2VQYXRoID09PSB1bmRlZmluZWRgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtlcnJ9Lmluc3RhbmNlUGF0aGAsICgwLCBjb2RlZ2VuXzEuc3RyQ29uY2F0KShuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCBpdC5lcnJvclBhdGgpKSk7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5zY2hlbWFQYXRoYCwgKDAsIGNvZGVnZW5fMS5zdHIpYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWApOwogICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHsKICAgICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uc2NoZW1hYCwgc2NoZW1hVmFsdWUpOwogICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5kYXRhYCwgZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4dGVuZEVycm9yczsKICAgIGZ1bmN0aW9uIGFkZEVycm9yKGdlbiwgZXJyT2JqKSB7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5jb25zdCgiZXJyIiwgZXJyT2JqKTsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGxgLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYFske2Vycn1dYCksICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ucHVzaCgke2Vycn0pYCk7CiAgICAgIGdlbi5jb2RlKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSsrYCk7CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5FcnJvcnMoaXQsIGVycnMpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSwgc2NoZW1hRW52IH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4udGhyb3coKDAsIGNvZGVnZW5fMS5fKWBuZXcgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KCR7ZXJyc30pYCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBlcnJzKTsKICAgICAgICBnZW4ucmV0dXJuKGZhbHNlKTsKICAgICAgfQogICAgfQogICAgdmFyIEUgPSB7CiAgICAgIGtleXdvcmQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgia2V5d29yZCIpLAogICAgICBzY2hlbWFQYXRoOiBuZXcgY29kZWdlbl8xLk5hbWUoInNjaGVtYVBhdGgiKSwKICAgICAgLy8gYWxzbyB1c2VkIGluIEpURCBlcnJvcnMKICAgICAgcGFyYW1zOiBuZXcgY29kZWdlbl8xLk5hbWUoInBhcmFtcyIpLAogICAgICBwcm9wZXJ0eU5hbWU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicHJvcGVydHlOYW1lIiksCiAgICAgIG1lc3NhZ2U6IG5ldyBjb2RlZ2VuXzEuTmFtZSgibWVzc2FnZSIpLAogICAgICBzY2hlbWE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NoZW1hIiksCiAgICAgIHBhcmVudFNjaGVtYTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnRTY2hlbWEiKQogICAgfTsKICAgIGZ1bmN0aW9uIGVycm9yT2JqZWN0Q29kZShjeHQsIGVycm9yLCBlcnJvclBhdGhzKSB7CiAgICAgIGNvbnN0IHsgY3JlYXRlRXJyb3JzIH0gPSBjeHQuaXQ7CiAgICAgIGlmIChjcmVhdGVFcnJvcnMgPT09IGZhbHNlKQogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYHt9YDsKICAgICAgcmV0dXJuIGVycm9yT2JqZWN0KGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JPYmplY3QoY3h0LCBlcnJvciwgZXJyb3JQYXRocyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBrZXlWYWx1ZXMgPSBbCiAgICAgICAgZXJyb3JJbnN0YW5jZVBhdGgoaXQsIGVycm9yUGF0aHMpLAogICAgICAgIGVycm9yU2NoZW1hUGF0aChjeHQsIGVycm9yUGF0aHMpCiAgICAgIF07CiAgICAgIGV4dHJhRXJyb3JQcm9wcyhjeHQsIGVycm9yLCBrZXlWYWx1ZXMpOwogICAgICByZXR1cm4gZ2VuLm9iamVjdCguLi5rZXlWYWx1ZXMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JJbnN0YW5jZVBhdGgoeyBlcnJvclBhdGggfSwgeyBpbnN0YW5jZVBhdGggfSkgewogICAgICBjb25zdCBpbnN0UGF0aCA9IGluc3RhbmNlUGF0aCA/ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShpbnN0YW5jZVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YCA6IGVycm9yUGF0aDsKICAgICAgcmV0dXJuIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgaW5zdFBhdGgpXTsKICAgIH0KICAgIGZ1bmN0aW9uIGVycm9yU2NoZW1hUGF0aCh7IGtleXdvcmQsIGl0OiB7IGVyclNjaGVtYVBhdGggfSB9LCB7IHNjaGVtYVBhdGgsIHBhcmVudFNjaGVtYSB9KSB7CiAgICAgIGxldCBzY2hQYXRoID0gcGFyZW50U2NoZW1hID8gZXJyU2NoZW1hUGF0aCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2VyclNjaGVtYVBhdGh9LyR7a2V5d29yZH1gOwogICAgICBpZiAoc2NoZW1hUGF0aCkgewogICAgICAgIHNjaFBhdGggPSAoMCwgY29kZWdlbl8xLnN0cilgJHtzY2hQYXRofSR7KDAsIHV0aWxfMS5nZXRFcnJvclBhdGgpKHNjaGVtYVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YDsKICAgICAgfQogICAgICByZXR1cm4gW0Uuc2NoZW1hUGF0aCwgc2NoUGF0aF07CiAgICB9CiAgICBmdW5jdGlvbiBleHRyYUVycm9yUHJvcHMoY3h0LCB7IHBhcmFtcywgbWVzc2FnZSB9LCBrZXlWYWx1ZXMpIHsKICAgICAgY29uc3QgeyBrZXl3b3JkLCBkYXRhLCBzY2hlbWFWYWx1ZSwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgeyBvcHRzLCBwcm9wZXJ0eU5hbWUsIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCB9ID0gaXQ7CiAgICAgIGtleVZhbHVlcy5wdXNoKFtFLmtleXdvcmQsIGtleXdvcmRdLCBbRS5wYXJhbXMsIHR5cGVvZiBwYXJhbXMgPT0gImZ1bmN0aW9uIiA/IHBhcmFtcyhjeHQpIDogcGFyYW1zIHx8ICgwLCBjb2RlZ2VuXzEuXylge31gXSk7CiAgICAgIGlmIChvcHRzLm1lc3NhZ2VzKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UubWVzc2FnZSwgdHlwZW9mIG1lc3NhZ2UgPT0gImZ1bmN0aW9uIiA/IG1lc3NhZ2UoY3h0KSA6IG1lc3NhZ2VdKTsKICAgICAgfQogICAgICBpZiAob3B0cy52ZXJib3NlKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0Uuc2NoZW1hLCBzY2hlbWFWYWx1ZV0sIFtFLnBhcmVudFNjaGVtYSwgKDAsIGNvZGVnZW5fMS5fKWAke3RvcFNjaGVtYVJlZn0ke3NjaGVtYVBhdGh9YF0sIFtuYW1lc18xLmRlZmF1bHQuZGF0YSwgZGF0YV0pOwogICAgICB9CiAgICAgIGlmIChwcm9wZXJ0eU5hbWUpCiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UucHJvcGVydHlOYW1lLCBwcm9wZXJ0eU5hbWVdKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYm9vbFNjaGVtYS5qcwp2YXIgcmVxdWlyZV9ib29sU2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2Jvb2xTY2hlbWEuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gZXhwb3J0czIudG9wQm9vbE9yRW1wdHlTY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgZXJyb3JzXzEgPSByZXF1aXJlX2Vycm9ycygpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgYm9vbEVycm9yID0gewogICAgICBtZXNzYWdlOiAiYm9vbGVhbiBzY2hlbWEgaXMgZmFsc2UiCiAgICB9OwogICAgZnVuY3Rpb24gdG9wQm9vbE9yRW1wdHlTY2hlbWEoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgdmFsaWRhdGVOYW1lIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCwgZmFsc2UpOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmIHNjaGVtYTIuJGFzeW5jID09PSB0cnVlKSB7CiAgICAgICAgZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBudWxsKTsKICAgICAgICBnZW4ucmV0dXJuKHRydWUpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi50b3BCb29sT3JFbXB0eVNjaGVtYSA9IHRvcEJvb2xPckVtcHR5U2NoZW1hOwogICAgZnVuY3Rpb24gYm9vbE9yRW1wdHlTY2hlbWEoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICBnZW4udmFyKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gYm9vbE9yRW1wdHlTY2hlbWE7CiAgICBmdW5jdGlvbiBmYWxzZVNjaGVtYUVycm9yKGl0LCBvdmVycmlkZUFsbEVycm9ycykgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSB9ID0gaXQ7CiAgICAgIGNvbnN0IGN4dCA9IHsKICAgICAgICBnZW4sCiAgICAgICAga2V5d29yZDogImZhbHNlIHNjaGVtYSIsCiAgICAgICAgZGF0YSwKICAgICAgICBzY2hlbWE6IGZhbHNlLAogICAgICAgIHNjaGVtYUNvZGU6IGZhbHNlLAogICAgICAgIHNjaGVtYVZhbHVlOiBmYWxzZSwKICAgICAgICBwYXJhbXM6IHt9LAogICAgICAgIGl0CiAgICAgIH07CiAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikoY3h0LCBib29sRXJyb3IsIHZvaWQgMCwgb3ZlcnJpZGVBbGxFcnJvcnMpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcwp2YXIgcmVxdWlyZV9ydWxlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0UnVsZXMgPSBleHBvcnRzMi5pc0pTT05UeXBlID0gdm9pZCAwOwogICAgdmFyIF9qc29uVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiaW50ZWdlciIsICJib29sZWFuIiwgIm51bGwiLCAib2JqZWN0IiwgImFycmF5Il07CiAgICB2YXIganNvblR5cGVzID0gbmV3IFNldChfanNvblR5cGVzKTsKICAgIGZ1bmN0aW9uIGlzSlNPTlR5cGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gInN0cmluZyIgJiYganNvblR5cGVzLmhhcyh4KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSlNPTlR5cGUgPSBpc0pTT05UeXBlOwogICAgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7CiAgICAgIGNvbnN0IGdyb3VwcyA9IHsKICAgICAgICBudW1iZXI6IHsgdHlwZTogIm51bWJlciIsIHJ1bGVzOiBbXSB9LAogICAgICAgIHN0cmluZzogeyB0eXBlOiAic3RyaW5nIiwgcnVsZXM6IFtdIH0sCiAgICAgICAgYXJyYXk6IHsgdHlwZTogImFycmF5IiwgcnVsZXM6IFtdIH0sCiAgICAgICAgb2JqZWN0OiB7IHR5cGU6ICJvYmplY3QiLCBydWxlczogW10gfQogICAgICB9OwogICAgICByZXR1cm4gewogICAgICAgIHR5cGVzOiB7IC4uLmdyb3VwcywgaW50ZWdlcjogdHJ1ZSwgYm9vbGVhbjogdHJ1ZSwgbnVsbDogdHJ1ZSB9LAogICAgICAgIHJ1bGVzOiBbeyBydWxlczogW10gfSwgZ3JvdXBzLm51bWJlciwgZ3JvdXBzLnN0cmluZywgZ3JvdXBzLmFycmF5LCBncm91cHMub2JqZWN0XSwKICAgICAgICBwb3N0OiB7IHJ1bGVzOiBbXSB9LAogICAgICAgIGFsbDoge30sCiAgICAgICAga2V5d29yZHM6IHt9CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5nZXRSdWxlcyA9IGdldFJ1bGVzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9hcHBsaWNhYmlsaXR5LmpzCnZhciByZXF1aXJlX2FwcGxpY2FiaWxpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYXBwbGljYWJpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNGb3JUeXBlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXNGb3JUeXBlKHsgc2NoZW1hOiBzY2hlbWEyLCBzZWxmOiBzZWxmMiB9LCB0eXBlMikgewogICAgICBjb25zdCBncm91cCA9IHNlbGYyLlJVTEVTLnR5cGVzW3R5cGUyXTsKICAgICAgcmV0dXJuIGdyb3VwICYmIGdyb3VwICE9PSB0cnVlICYmIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzRm9yVHlwZSA9IHNjaGVtYUhhc1J1bGVzRm9yVHlwZTsKICAgIGZ1bmN0aW9uIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKSB7CiAgICAgIHJldHVybiBncm91cC5ydWxlcy5zb21lKChydWxlKSA9PiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gc2hvdWxkVXNlR3JvdXA7CiAgICBmdW5jdGlvbiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpIHsKICAgICAgdmFyIF9hOwogICAgICByZXR1cm4gc2NoZW1hMltydWxlLmtleXdvcmRdICE9PSB2b2lkIDAgfHwgKChfYSA9IHJ1bGUuZGVmaW5pdGlvbi5pbXBsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc29tZSgoa3dkKSA9PiBzY2hlbWEyW2t3ZF0gIT09IHZvaWQgMCkpOwogICAgfQogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IHNob3VsZFVzZVJ1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzCnZhciByZXF1aXJlX2RhdGFUeXBlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSBleHBvcnRzMi5jaGVja0RhdGFUeXBlcyA9IGV4cG9ydHMyLmNoZWNrRGF0YVR5cGUgPSBleHBvcnRzMi5jb2VyY2VBbmRDaGVja0RhdGFUeXBlID0gZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZXhwb3J0czIuZ2V0U2NoZW1hVHlwZXMgPSBleHBvcnRzMi5EYXRhVHlwZSA9IHZvaWQgMDsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGFwcGxpY2FiaWxpdHlfMSA9IHJlcXVpcmVfYXBwbGljYWJpbGl0eSgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBEYXRhVHlwZTsKICAgIChmdW5jdGlvbihEYXRhVHlwZTIpIHsKICAgICAgRGF0YVR5cGUyW0RhdGFUeXBlMlsiQ29ycmVjdCJdID0gMF0gPSAiQ29ycmVjdCI7CiAgICAgIERhdGFUeXBlMltEYXRhVHlwZTJbIldyb25nIl0gPSAxXSA9ICJXcm9uZyI7CiAgICB9KShEYXRhVHlwZSB8fCAoZXhwb3J0czIuRGF0YVR5cGUgPSBEYXRhVHlwZSA9IHt9KSk7CiAgICBmdW5jdGlvbiBnZXRTY2hlbWFUeXBlcyhzY2hlbWEyKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gZ2V0SlNPTlR5cGVzKHNjaGVtYTIudHlwZSk7CiAgICAgIGNvbnN0IGhhc051bGwgPSB0eXBlcy5pbmNsdWRlcygibnVsbCIpOwogICAgICBpZiAoaGFzTnVsbCkgewogICAgICAgIGlmIChzY2hlbWEyLm51bGxhYmxlID09PSBmYWxzZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZTogbnVsbCBjb250cmFkaWN0cyBudWxsYWJsZTogZmFsc2UiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoIXR5cGVzLmxlbmd0aCAmJiBzY2hlbWEyLm51bGxhYmxlICE9PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignIm51bGxhYmxlIiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0ICJ0eXBlIicpOwogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1hMi5udWxsYWJsZSA9PT0gdHJ1ZSkKICAgICAgICAgIHR5cGVzLnB1c2goIm51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gdHlwZXM7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTY2hlbWFUeXBlcyA9IGdldFNjaGVtYVR5cGVzOwogICAgZnVuY3Rpb24gZ2V0SlNPTlR5cGVzKHRzKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheSh0cykgPyB0cyA6IHRzID8gW3RzXSA6IFtdOwogICAgICBpZiAodHlwZXMuZXZlcnkocnVsZXNfMS5pc0pTT05UeXBlKSkKICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBtdXN0IGJlIEpTT05UeXBlIG9yIEpTT05UeXBlW106ICIgKyB0eXBlcy5qb2luKCIsIikpOwogICAgfQogICAgZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZ2V0SlNPTlR5cGVzOwogICAgZnVuY3Rpb24gY29lcmNlQW5kQ2hlY2tEYXRhVHlwZShpdCwgdHlwZXMpIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBjb2VyY2VUbyA9IGNvZXJjZVRvVHlwZXModHlwZXMsIG9wdHMuY29lcmNlVHlwZXMpOwogICAgICBjb25zdCBjaGVja1R5cGVzID0gdHlwZXMubGVuZ3RoID4gMCAmJiAhKGNvZXJjZVRvLmxlbmd0aCA9PT0gMCAmJiB0eXBlcy5sZW5ndGggPT09IDEgJiYgKDAsIGFwcGxpY2FiaWxpdHlfMS5zY2hlbWFIYXNSdWxlc0ZvclR5cGUpKGl0LCB0eXBlc1swXSkpOwogICAgICBpZiAoY2hlY2tUeXBlcykgewogICAgICAgIGNvbnN0IHdyb25nVHlwZSA9IGNoZWNrRGF0YVR5cGVzKHR5cGVzLCBkYXRhLCBvcHRzLnN0cmljdE51bWJlcnMsIERhdGFUeXBlLldyb25nKTsKICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoKSA9PiB7CiAgICAgICAgICBpZiAoY29lcmNlVG8ubGVuZ3RoKQogICAgICAgICAgICBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoaXQpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBjaGVja1R5cGVzOwogICAgfQogICAgZXhwb3J0czIuY29lcmNlQW5kQ2hlY2tEYXRhVHlwZSA9IGNvZXJjZUFuZENoZWNrRGF0YVR5cGU7CiAgICB2YXIgQ09FUkNJQkxFID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWyJzdHJpbmciLCAibnVtYmVyIiwgImludGVnZXIiLCAiYm9vbGVhbiIsICJudWxsIl0pOwogICAgZnVuY3Rpb24gY29lcmNlVG9UeXBlcyh0eXBlcywgY29lcmNlVHlwZXMpIHsKICAgICAgcmV0dXJuIGNvZXJjZVR5cGVzID8gdHlwZXMuZmlsdGVyKCh0KSA9PiBDT0VSQ0lCTEUuaGFzKHQpIHx8IGNvZXJjZVR5cGVzID09PSAiYXJyYXkiICYmIHQgPT09ICJhcnJheSIpIDogW107CiAgICB9CiAgICBmdW5jdGlvbiBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBkYXRhVHlwZSA9IGdlbi5sZXQoImRhdGFUeXBlIiwgKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfWApOwogICAgICBjb25zdCBjb2VyY2VkID0gZ2VuLmxldCgiY29lcmNlZCIsICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgIGlmIChvcHRzLmNvZXJjZVR5cGVzID09PSAiYXJyYXkiKSB7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSgke2RhdGF9KSAmJiAke2RhdGF9Lmxlbmd0aCA9PSAxYCwgKCkgPT4gZ2VuLmFzc2lnbihkYXRhLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX1bMF1gKS5hc3NpZ24oZGF0YVR5cGUsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7ZGF0YX1gKS5pZihjaGVja0RhdGFUeXBlcyh0eXBlcywgZGF0YSwgb3B0cy5zdHJpY3ROdW1iZXJzKSwgKCkgPT4gZ2VuLmFzc2lnbihjb2VyY2VkLCBkYXRhKSkpOwogICAgICB9CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGApOwogICAgICBmb3IgKGNvbnN0IHQgb2YgY29lcmNlVG8pIHsKICAgICAgICBpZiAoQ09FUkNJQkxFLmhhcyh0KSB8fCB0ID09PSAiYXJyYXkiICYmIG9wdHMuY29lcmNlVHlwZXMgPT09ICJhcnJheSIpIHsKICAgICAgICAgIGNvZXJjZVNwZWNpZmljVHlwZSh0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZ2VuLmVsc2UoKTsKICAgICAgcmVwb3J0VHlwZUVycm9yKGl0KTsKICAgICAgZ2VuLmVuZElmKCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICBnZW4uYXNzaWduKGRhdGEsIGNvZXJjZWQpOwogICAgICAgIGFzc2lnblBhcmVudERhdGEoaXQsIGNvZXJjZWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY29lcmNlU3BlY2lmaWNUeXBlKHQpIHsKICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGFUeXBlfSA9PSAibnVtYmVyIiB8fCAke2RhdGFUeXBlfSA9PSAiYm9vbGVhbiJgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWAiIiArICR7ZGF0YX1gKS5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSBudWxsYCkuYXNzaWduKGNvZXJjZWQsICgwLCBjb2RlZ2VuXzEuXylgIiJgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09ICJib29sZWFuIiB8fCAke2RhdGF9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7ZGF0YVR5cGV9ID09ICJzdHJpbmciICYmICR7ZGF0YX0gJiYgJHtkYXRhfSA9PSArJHtkYXRhfSlgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWArJHtkYXRhfWApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbAogICAgICAgICAgICAgIHx8ICgke2RhdGFUeXBlfSA9PT0gInN0cmluZyIgJiYgJHtkYXRhfSAmJiAke2RhdGF9ID09ICske2RhdGF9ICYmICEoJHtkYXRhfSAlIDEpKWApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYCske2RhdGF9YCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSA9PT0gImZhbHNlIiB8fCAke2RhdGF9ID09PSAwIHx8ICR7ZGF0YX0gPT09IG51bGxgKS5hc3NpZ24oY29lcmNlZCwgZmFsc2UpLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICJ0cnVlIiB8fCAke2RhdGF9ID09PSAxYCkuYXNzaWduKGNvZXJjZWQsIHRydWUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICIiIHx8ICR7ZGF0YX0gPT09IDAgfHwgJHtkYXRhfSA9PT0gZmFsc2VgKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbihjb2VyY2VkLCBudWxsKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT09ICJzdHJpbmciIHx8ICR7ZGF0YVR5cGV9ID09PSAibnVtYmVyIgogICAgICAgICAgICAgIHx8ICR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbGApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYFske2RhdGF9XWApOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYXNzaWduUGFyZW50RGF0YSh7IGdlbiwgcGFyZW50RGF0YSwgcGFyZW50RGF0YVByb3BlcnR5IH0sIGV4cHIpIHsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtwYXJlbnREYXRhfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cGFyZW50RGF0YX1bJHtwYXJlbnREYXRhUHJvcGVydHl9XWAsIGV4cHIpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGUsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QgPSBEYXRhVHlwZS5Db3JyZWN0KSB7CiAgICAgIGNvbnN0IEVRID0gY29ycmVjdCA9PT0gRGF0YVR5cGUuQ29ycmVjdCA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuRVEgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLk5FUTsKICAgICAgbGV0IGNvbmQ7CiAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gJHtFUX0gbnVsbGA7CiAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSAmJiB0eXBlb2YgJHtkYXRhfSA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgIGNvbmQgPSBudW1Db25kKCgwLCBjb2RlZ2VuXzEuXylgISgke2RhdGF9ICUgMSkgJiYgIWlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY29uZCA9IG51bUNvbmQoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAke0VRfSAke2RhdGFUeXBlfWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvcnJlY3QgPT09IERhdGFUeXBlLkNvcnJlY3QgPyBjb25kIDogKDAsIGNvZGVnZW5fMS5ub3QpKGNvbmQpOwogICAgICBmdW5jdGlvbiBudW1Db25kKF9jb25kID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLmFuZCkoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSA9PSAibnVtYmVyImAsIF9jb25kLCBzdHJpY3ROdW1zID8gKDAsIGNvZGVnZW5fMS5fKWBpc0Zpbml0ZSgke2RhdGF9KWAgOiBjb2RlZ2VuXzEubmlsKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZSA9IGNoZWNrRGF0YVR5cGU7CiAgICBmdW5jdGlvbiBjaGVja0RhdGFUeXBlcyhkYXRhVHlwZXMsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpIHsKICAgICAgaWYgKGRhdGFUeXBlcy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gY2hlY2tEYXRhVHlwZShkYXRhVHlwZXNbMF0sIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpOwogICAgICB9CiAgICAgIGxldCBjb25kOwogICAgICBjb25zdCB0eXBlcyA9ICgwLCB1dGlsXzEudG9IYXNoKShkYXRhVHlwZXMpOwogICAgICBpZiAodHlwZXMuYXJyYXkgJiYgdHlwZXMub2JqZWN0KSB7CiAgICAgICAgY29uc3Qgbm90T2JqID0gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAhPSAib2JqZWN0ImA7CiAgICAgICAgY29uZCA9IHR5cGVzLm51bGwgPyBub3RPYmogOiAoMCwgY29kZWdlbl8xLl8pYCEke2RhdGF9IHx8ICR7bm90T2JqfWA7CiAgICAgICAgZGVsZXRlIHR5cGVzLm51bGw7CiAgICAgICAgZGVsZXRlIHR5cGVzLmFycmF5OwogICAgICAgIGRlbGV0ZSB0eXBlcy5vYmplY3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uZCA9IGNvZGVnZW5fMS5uaWw7CiAgICAgIH0KICAgICAgaWYgKHR5cGVzLm51bWJlcikKICAgICAgICBkZWxldGUgdHlwZXMuaW50ZWdlcjsKICAgICAgZm9yIChjb25zdCB0IGluIHR5cGVzKQogICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLmFuZCkoY29uZCwgY2hlY2tEYXRhVHlwZSh0LCBkYXRhLCBzdHJpY3ROdW1zLCBjb3JyZWN0KSk7CiAgICAgIHJldHVybiBjb25kOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZXMgPSBjaGVja0RhdGFUeXBlczsKICAgIHZhciB0eXBlRXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYTogc2NoZW1hMiB9KSA9PiBgbXVzdCBiZSAke3NjaGVtYTJ9YCwKICAgICAgcGFyYW1zOiAoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYVZhbHVlIH0pID0+IHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciID8gKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWEyfX1gIDogKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWFWYWx1ZX19YAogICAgfTsKICAgIGZ1bmN0aW9uIHJlcG9ydFR5cGVFcnJvcihpdCkgewogICAgICBjb25zdCBjeHQgPSBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KTsKICAgICAgKDAsIGVycm9yc18xLnJlcG9ydEVycm9yKShjeHQsIHR5cGVFcnJvcik7CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSByZXBvcnRUeXBlRXJyb3I7CiAgICBmdW5jdGlvbiBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBjb25zdCBzY2hlbWFDb2RlID0gKDAsIHV0aWxfMS5zY2hlbWFSZWZPclZhbCkoaXQsIHNjaGVtYTIsICJ0eXBlIik7CiAgICAgIHJldHVybiB7CiAgICAgICAgZ2VuLAogICAgICAgIGtleXdvcmQ6ICJ0eXBlIiwKICAgICAgICBkYXRhLAogICAgICAgIHNjaGVtYTogc2NoZW1hMi50eXBlLAogICAgICAgIHNjaGVtYUNvZGUsCiAgICAgICAgc2NoZW1hVmFsdWU6IHNjaGVtYUNvZGUsCiAgICAgICAgcGFyZW50U2NoZW1hOiBzY2hlbWEyLAogICAgICAgIHBhcmFtczoge30sCiAgICAgICAgaXQKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMKdmFyIHJlcXVpcmVfZGVmYXVsdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFzc2lnbkRlZmF1bHRzID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdHMoaXQsIHR5KSB7CiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgaXRlbXMgfSA9IGl0LnNjaGVtYTsKICAgICAgaWYgKHR5ID09PSAib2JqZWN0IiAmJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcGVydGllcykgewogICAgICAgICAgYXNzaWduRGVmYXVsdChpdCwga2V5LCBwcm9wZXJ0aWVzW2tleV0uZGVmYXVsdCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHR5ID09PSAiYXJyYXkiICYmIEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgaXRlbXMuZm9yRWFjaCgoc2NoLCBpKSA9PiBhc3NpZ25EZWZhdWx0KGl0LCBpLCBzY2guZGVmYXVsdCkpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hc3NpZ25EZWZhdWx0cyA9IGFzc2lnbkRlZmF1bHRzOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdChpdCwgcHJvcCwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBjb21wb3NpdGVSdWxlLCBkYXRhLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgY2hpbGREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wKX1gOwogICAgICBpZiAoY29tcG9zaXRlUnVsZSkgewogICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYGRlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICR7Y2hpbGREYXRhfWApOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NoaWxkRGF0YX0gPT09IHVuZGVmaW5lZGA7CiAgICAgIGlmIChvcHRzLnVzZURlZmF1bHRzID09PSAiZW1wdHkiKSB7CiAgICAgICAgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NvbmRpdGlvbn0gfHwgJHtjaGlsZERhdGF9ID09PSBudWxsIHx8ICR7Y2hpbGREYXRhfSA9PT0gIiJgOwogICAgICB9CiAgICAgIGdlbi5pZihjb25kaXRpb24sICgwLCBjb2RlZ2VuXzEuXylgJHtjaGlsZERhdGF9ID0gJHsoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkoZGVmYXVsdFZhbHVlKX1gKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb2RlLmpzCnZhciByZXF1aXJlX2NvZGUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29kZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVVbmlvbiA9IGV4cG9ydHMyLnZhbGlkYXRlQXJyYXkgPSBleHBvcnRzMi51c2VQYXR0ZXJuID0gZXhwb3J0czIuY2FsbFZhbGlkYXRlQ29kZSA9IGV4cG9ydHMyLnNjaGVtYVByb3BlcnRpZXMgPSBleHBvcnRzMi5hbGxTY2hlbWFQcm9wZXJ0aWVzID0gZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IGV4cG9ydHMyLnByb3BlcnR5SW5EYXRhID0gZXhwb3J0czIuaXNPd25Qcm9wZXJ0eSA9IGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gZXhwb3J0czIucmVwb3J0TWlzc2luZ1Byb3AgPSBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gY2hlY2tSZXBvcnRNaXNzaW5nUHJvcChjeHQsIHByb3ApIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGdlbi5pZihub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gewogICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6ICgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wfWAgfSwgdHJ1ZSk7CiAgICAgICAgY3h0LmVycm9yKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IGNoZWNrUmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBjaGVja01pc3NpbmdQcm9wKHsgZ2VuLCBkYXRhLCBpdDogeyBvcHRzIH0gfSwgcHJvcGVydGllcywgbWlzc2luZykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5vcikoLi4ucHJvcGVydGllcy5tYXAoKHByb3ApID0+ICgwLCBjb2RlZ2VuXzEuYW5kKShub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKDAsIGNvZGVnZW5fMS5fKWAke21pc3Npbmd9ID0gJHtwcm9wfWApKSk7CiAgICB9CiAgICBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gY2hlY2tNaXNzaW5nUHJvcDsKICAgIGZ1bmN0aW9uIHJlcG9ydE1pc3NpbmdQcm9wKGN4dCwgbWlzc2luZykgewogICAgICBjeHQuc2V0UGFyYW1zKHsgbWlzc2luZ1Byb3BlcnR5OiBtaXNzaW5nIH0sIHRydWUpOwogICAgICBjeHQuZXJyb3IoKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydE1pc3NpbmdQcm9wID0gcmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBoYXNQcm9wRnVuYyhnZW4pIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QKICAgICAgICByZWY6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5YAogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gaGFzUHJvcEZ1bmM7CiAgICBmdW5jdGlvbiBpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpIHsKICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtoYXNQcm9wRnVuYyhnZW4pfS5jYWxsKCR7ZGF0YX0sICR7cHJvcGVydHl9KWA7CiAgICB9CiAgICBleHBvcnRzMi5pc093blByb3BlcnR5ID0gaXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIHByb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcGVydHksIG93blByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkocHJvcGVydHkpfSAhPT0gdW5kZWZpbmVkYDsKICAgICAgcmV0dXJuIG93blByb3BlcnRpZXMgPyAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpfWAgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIucHJvcGVydHlJbkRhdGEgPSBwcm9wZXJ0eUluRGF0YTsKICAgIGZ1bmN0aW9uIG5vUHJvcGVydHlJbkRhdGEoZ2VuLCBkYXRhLCBwcm9wZXJ0eSwgb3duUHJvcGVydGllcykgewogICAgICBjb25zdCBjb25kID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wZXJ0eSl9ID09PSB1bmRlZmluZWRgOwogICAgICByZXR1cm4gb3duUHJvcGVydGllcyA/ICgwLCBjb2RlZ2VuXzEub3IpKGNvbmQsICgwLCBjb2RlZ2VuXzEubm90KShpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpKSkgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IG5vUHJvcGVydHlJbkRhdGE7CiAgICBmdW5jdGlvbiBhbGxTY2hlbWFQcm9wZXJ0aWVzKHNjaGVtYU1hcCkgewogICAgICByZXR1cm4gc2NoZW1hTWFwID8gT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+IHAgIT09ICJfX3Byb3RvX18iKSA6IFtdOwogICAgfQogICAgZXhwb3J0czIuYWxsU2NoZW1hUHJvcGVydGllcyA9IGFsbFNjaGVtYVByb3BlcnRpZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFQcm9wZXJ0aWVzKGl0LCBzY2hlbWFNYXApIHsKICAgICAgcmV0dXJuIGFsbFNjaGVtYVByb3BlcnRpZXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+ICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hTWFwW3BdKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlbWFQcm9wZXJ0aWVzID0gc2NoZW1hUHJvcGVydGllczsKICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZUNvZGUoeyBzY2hlbWFDb2RlLCBkYXRhLCBpdDogeyBnZW4sIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCwgZXJyb3JQYXRoIH0sIGl0IH0sIGZ1bmMsIGNvbnRleHQsIHBhc3NTY2hlbWEpIHsKICAgICAgY29uc3QgZGF0YUFuZFNjaGVtYSA9IHBhc3NTY2hlbWEgPyAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0sICR7ZGF0YX0sICR7dG9wU2NoZW1hUmVmfSR7c2NoZW1hUGF0aH1gIDogZGF0YTsKICAgICAgY29uc3QgdmFsQ3h0ID0gWwogICAgICAgIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgZXJyb3JQYXRoKV0sCiAgICAgICAgW25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhLCBpdC5wYXJlbnREYXRhXSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgaXQucGFyZW50RGF0YVByb3BlcnR5XSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhLCBuYW1lc18xLmRlZmF1bHQucm9vdERhdGFdCiAgICAgIF07CiAgICAgIGlmIChpdC5vcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgdmFsQ3h0LnB1c2goW25hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgbmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzXSk7CiAgICAgIGNvbnN0IGFyZ3MgPSAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YUFuZFNjaGVtYX0sICR7Z2VuLm9iamVjdCguLi52YWxDeHQpfWA7CiAgICAgIHJldHVybiBjb250ZXh0ICE9PSBjb2RlZ2VuXzEubmlsID8gKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9LmNhbGwoJHtjb250ZXh0fSwgJHthcmdzfSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9KCR7YXJnc30pYDsKICAgIH0KICAgIGV4cG9ydHMyLmNhbGxWYWxpZGF0ZUNvZGUgPSBjYWxsVmFsaWRhdGVDb2RlOwogICAgdmFyIG5ld1JlZ0V4cCA9ICgwLCBjb2RlZ2VuXzEuXylgbmV3IFJlZ0V4cGA7CiAgICBmdW5jdGlvbiB1c2VQYXR0ZXJuKHsgZ2VuLCBpdDogeyBvcHRzIH0gfSwgcGF0dGVybikgewogICAgICBjb25zdCB1ID0gb3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgIGNvbnN0IHsgcmVnRXhwIH0gPSBvcHRzLmNvZGU7CiAgICAgIGNvbnN0IHJ4ID0gcmVnRXhwKHBhdHRlcm4sIHUpOwogICAgICByZXR1cm4gZ2VuLnNjb3BlVmFsdWUoInBhdHRlcm4iLCB7CiAgICAgICAga2V5OiByeC50b1N0cmluZygpLAogICAgICAgIHJlZjogcngsCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWAke3JlZ0V4cC5jb2RlID09PSAibmV3IFJlZ0V4cCIgPyBuZXdSZWdFeHAgOiAoMCwgdXRpbF8yLnVzZUZ1bmMpKGdlbiwgcmVnRXhwKX0oJHtwYXR0ZXJufSwgJHt1fSlgCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudXNlUGF0dGVybiA9IHVzZVBhdHRlcm47CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUFycmF5KGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgaWYgKGl0LmFsbEVycm9ycykgewogICAgICAgIGNvbnN0IHZhbGlkQXJyID0gZ2VuLmxldCgidmFsaWQiLCB0cnVlKTsKICAgICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5hc3NpZ24odmFsaWRBcnIsIGZhbHNlKSk7CiAgICAgICAgcmV0dXJuIHZhbGlkQXJyOwogICAgICB9CiAgICAgIGdlbi52YXIodmFsaWQsIHRydWUpOwogICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5icmVhaygpKTsKICAgICAgcmV0dXJuIHZhbGlkOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUl0ZW1zKG5vdFZhbGlkKSB7CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQsCiAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLk51bQogICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksIG5vdFZhbGlkKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVBcnJheSA9IHZhbGlkYXRlQXJyYXk7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaW9uKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgY29uc3QgYWx3YXlzVmFsaWQgPSBzY2hlbWEyLnNvbWUoKHNjaCkgPT4gKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpOwogICAgICBpZiAoYWx3YXlzVmFsaWQgJiYgIWl0Lm9wdHMudW5ldmFsdWF0ZWQpCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHNjaGVtYTIuZm9yRWFjaCgoX3NjaCwgaSkgPT4gewogICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAga2V5d29yZCwKICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHt2YWxpZH0gfHwgJHtzY2hWYWxpZH1gKTsKICAgICAgICBjb25zdCBtZXJnZWQgPSBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHNjaFZhbGlkKTsKICAgICAgICBpZiAoIW1lcmdlZCkKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpKTsKICAgICAgfSkpOwogICAgICBjeHQucmVzdWx0KHZhbGlkLCAoKSA9PiBjeHQucmVzZXQoKSwgKCkgPT4gY3h0LmVycm9yKHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlVW5pb24gPSB2YWxpZGF0ZVVuaW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9rZXl3b3JkLmpzCnZhciByZXF1aXJlX2tleXdvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUva2V5d29yZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVLZXl3b3JkVXNhZ2UgPSBleHBvcnRzMi52YWxpZFNjaGVtYVR5cGUgPSBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIG1hY3JvS2V5d29yZENvZGUoY3h0LCBkZWYpIHsKICAgICAgY29uc3QgeyBnZW4sIGtleXdvcmQsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBtYWNyb1NjaGVtYSA9IGRlZi5tYWNyby5jYWxsKGl0LnNlbGYsIHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpOwogICAgICBjb25zdCBzY2hlbWFSZWYgPSB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgbWFjcm9TY2hlbWEpOwogICAgICBpZiAoaXQub3B0cy52YWxpZGF0ZVNjaGVtYSAhPT0gZmFsc2UpCiAgICAgICAgaXQuc2VsZi52YWxpZGF0ZVNjaGVtYShtYWNyb1NjaGVtYSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgIGN4dC5zdWJzY2hlbWEoewogICAgICAgIHNjaGVtYTogbWFjcm9TY2hlbWEsCiAgICAgICAgc2NoZW1hUGF0aDogY29kZWdlbl8xLm5pbCwKICAgICAgICBlcnJTY2hlbWFQYXRoOiBgJHtpdC5lcnJTY2hlbWFQYXRofS8ke2tleXdvcmR9YCwKICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaGVtYVJlZiwKICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgIH0sIHZhbGlkKTsKICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICB9CiAgICBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gbWFjcm9LZXl3b3JkQ29kZTsKICAgIGZ1bmN0aW9uIGZ1bmNLZXl3b3JkQ29kZShjeHQsIGRlZikgewogICAgICB2YXIgX2E7CiAgICAgIGNvbnN0IHsgZ2VuLCBrZXl3b3JkLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgJGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGNoZWNrQXN5bmNLZXl3b3JkKGl0LCBkZWYpOwogICAgICBjb25zdCB2YWxpZGF0ZSA9ICEkZGF0YSAmJiBkZWYuY29tcGlsZSA/IGRlZi5jb21waWxlLmNhbGwoaXQuc2VsZiwgc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCkgOiBkZWYudmFsaWRhdGU7CiAgICAgIGNvbnN0IHZhbGlkYXRlUmVmID0gdXNlS2V5d29yZChnZW4sIGtleXdvcmQsIHZhbGlkYXRlKTsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgdmFsaWRhdGVLZXl3b3JkKTsKICAgICAgY3h0Lm9rKChfYSA9IGRlZi52YWxpZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsaWQpOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUtleXdvcmQoKSB7CiAgICAgICAgaWYgKGRlZi5lcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICBhc3NpZ25WYWxpZCgpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBydWxlRXJycyA9IGRlZi5hc3luYyA/IHZhbGlkYXRlQXN5bmMoKSA6IHZhbGlkYXRlU3luYygpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gYWRkRXJycyhjeHQsIHJ1bGVFcnJzKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlQXN5bmMoKSB7CiAgICAgICAgY29uc3QgcnVsZUVycnMgPSBnZW4ubGV0KCJydWxlRXJycyIsIG51bGwpOwogICAgICAgIGdlbi50cnkoKCkgPT4gYXNzaWduVmFsaWQoKDAsIGNvZGVnZW5fMS5fKWBhd2FpdCBgKSwgKGUpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZX0gaW5zdGFuY2VvZiAke2l0LlZhbGlkYXRpb25FcnJvcn1gLCAoKSA9PiBnZW4uYXNzaWduKHJ1bGVFcnJzLCAoMCwgY29kZWdlbl8xLl8pYCR7ZX0uZXJyb3JzYCksICgpID0+IGdlbi50aHJvdyhlKSkpOwogICAgICAgIHJldHVybiBydWxlRXJyczsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZVN5bmMoKSB7CiAgICAgICAgY29uc3QgdmFsaWRhdGVFcnJzID0gKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlUmVmfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWRhdGVFcnJzLCBudWxsKTsKICAgICAgICBhc3NpZ25WYWxpZChjb2RlZ2VuXzEubmlsKTsKICAgICAgICByZXR1cm4gdmFsaWRhdGVFcnJzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFzc2lnblZhbGlkKF9hd2FpdCA9IGRlZi5hc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgYXdhaXQgYCA6IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBjb25zdCBwYXNzQ3h0ID0gaXQub3B0cy5wYXNzQ29udGV4dCA/IG5hbWVzXzEuZGVmYXVsdC50aGlzIDogbmFtZXNfMS5kZWZhdWx0LnNlbGY7CiAgICAgICAgY29uc3QgcGFzc1NjaGVtYSA9ICEoImNvbXBpbGUiIGluIGRlZiAmJiAhJGRhdGEgfHwgZGVmLnNjaGVtYSA9PT0gZmFsc2UpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHtfYXdhaXR9JHsoMCwgY29kZV8xLmNhbGxWYWxpZGF0ZUNvZGUpKGN4dCwgdmFsaWRhdGVSZWYsIHBhc3NDeHQsIHBhc3NTY2hlbWEpfWAsIGRlZi5tb2RpZnlpbmcpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcG9ydEVycnMoZXJyb3JzKSB7CiAgICAgICAgdmFyIF9hMjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKChfYTIgPSBkZWYudmFsaWQpICE9PSBudWxsICYmIF9hMiAhPT0gdm9pZCAwID8gX2EyIDogdmFsaWQpLCBlcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBmdW5jS2V5d29yZENvZGU7CiAgICBmdW5jdGlvbiBtb2RpZnlEYXRhKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwgaXQgfSA9IGN4dDsKICAgICAgZ2VuLmlmKGl0LnBhcmVudERhdGEsICgpID0+IGdlbi5hc3NpZ24oZGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LnBhcmVudERhdGF9WyR7aXQucGFyZW50RGF0YVByb3BlcnR5fV1gKSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFcnJzKGN4dCwgZXJycykgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWBBcnJheS5pc0FycmF5KCR7ZXJyc30pYCwgKCkgPT4gewogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCkuYXNzaWduKG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ubGVuZ3RoYCk7CiAgICAgICAgKDAsIGVycm9yc18xLmV4dGVuZEVycm9ycykoY3h0KTsKICAgICAgfSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY0tleXdvcmQoeyBzY2hlbWFFbnYgfSwgZGVmKSB7CiAgICAgIGlmIChkZWYuYXN5bmMgJiYgIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhc3luYyBrZXl3b3JkIGluIHN5bmMgc2NoZW1hIik7CiAgICB9CiAgICBmdW5jdGlvbiB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgcmVzdWx0KSB7CiAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGtleXdvcmQgIiR7a2V5d29yZH0iIGZhaWxlZCB0byBjb21waWxlYCk7CiAgICAgIHJldHVybiBnZW4uc2NvcGVWYWx1ZSgia2V5d29yZCIsIHR5cGVvZiByZXN1bHQgPT0gImZ1bmN0aW9uIiA/IHsgcmVmOiByZXN1bHQgfSA6IHsgcmVmOiByZXN1bHQsIGNvZGU6ICgwLCBjb2RlZ2VuXzEuc3RyaW5naWZ5KShyZXN1bHQpIH0pOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRTY2hlbWFUeXBlKHNjaGVtYTIsIHNjaGVtYVR5cGUsIGFsbG93VW5kZWZpbmVkID0gZmFsc2UpIHsKICAgICAgcmV0dXJuICFzY2hlbWFUeXBlLmxlbmd0aCB8fCBzY2hlbWFUeXBlLnNvbWUoKHN0KSA9PiBzdCA9PT0gImFycmF5IiA/IEFycmF5LmlzQXJyYXkoc2NoZW1hMikgOiBzdCA9PT0gIm9iamVjdCIgPyBzY2hlbWEyICYmIHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHNjaGVtYTIpIDogdHlwZW9mIHNjaGVtYTIgPT0gc3QgfHwgYWxsb3dVbmRlZmluZWQgJiYgdHlwZW9mIHNjaGVtYTIgPT0gInVuZGVmaW5lZCIpOwogICAgfQogICAgZXhwb3J0czIudmFsaWRTY2hlbWFUeXBlID0gdmFsaWRTY2hlbWFUeXBlOwogICAgZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkVXNhZ2UoeyBzY2hlbWE6IHNjaGVtYTIsIG9wdHMsIHNlbGY6IHNlbGYyLCBlcnJTY2hlbWFQYXRoIH0sIGRlZiwga2V5d29yZCkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShkZWYua2V5d29yZCkgPyAhZGVmLmtleXdvcmQuaW5jbHVkZXMoa2V5d29yZCkgOiBkZWYua2V5d29yZCAhPT0ga2V5d29yZCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIH0KICAgICAgY29uc3QgZGVwcyA9IGRlZi5kZXBlbmRlbmNpZXM7CiAgICAgIGlmIChkZXBzID09PSBudWxsIHx8IGRlcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlcHMuc29tZSgoa3dkKSA9PiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYTIsIGt3ZCkpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJlbnQgc2NoZW1hIG11c3QgaGF2ZSBkZXBlbmRlbmNpZXMgb2YgJHtrZXl3b3JkfTogJHtkZXBzLmpvaW4oIiwiKX1gKTsKICAgICAgfQogICAgICBpZiAoZGVmLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgY29uc3QgdmFsaWQgPSBkZWYudmFsaWRhdGVTY2hlbWEoc2NoZW1hMltrZXl3b3JkXSk7CiAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgY29uc3QgbXNnID0gYGtleXdvcmQgIiR7a2V5d29yZH0iIHZhbHVlIGlzIGludmFsaWQgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSI6IGAgKyBzZWxmMi5lcnJvcnNUZXh0KGRlZi52YWxpZGF0ZVNjaGVtYS5lcnJvcnMpOwogICAgICAgICAgaWYgKG9wdHMudmFsaWRhdGVTY2hlbWEgPT09ICJsb2ciKQogICAgICAgICAgICBzZWxmMi5sb2dnZXIuZXJyb3IobXNnKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi52YWxpZGF0ZUtleXdvcmRVc2FnZSA9IHZhbGlkYXRlS2V5d29yZFVzYWdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9zdWJzY2hlbWEuanMKdmFyIHJlcXVpcmVfc3Vic2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL3N1YnNjaGVtYS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4cG9ydHMyLmV4dGVuZFN1YnNjaGVtYURhdGEgPSBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICBmdW5jdGlvbiBnZXRTdWJzY2hlbWEoaXQsIHsga2V5d29yZCwgc2NoZW1hUHJvcCwgc2NoZW1hOiBzY2hlbWEyLCBzY2hlbWFQYXRoLCBlcnJTY2hlbWFQYXRoLCB0b3BTY2hlbWFSZWYgfSkgewogICAgICBpZiAoa2V5d29yZCAhPT0gdm9pZCAwICYmIHNjaGVtYTIgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAia2V5d29yZCIgYW5kICJzY2hlbWEiIHBhc3NlZCwgb25seSBvbmUgYWxsb3dlZCcpOwogICAgICB9CiAgICAgIGlmIChrZXl3b3JkICE9PSB2b2lkIDApIHsKICAgICAgICBjb25zdCBzY2ggPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgcmV0dXJuIHNjaGVtYVByb3AgPT09IHZvaWQgMCA/IHsKICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgc2NoZW1hUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAke2l0LnNjaGVtYVBhdGh9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShrZXl3b3JkKX1gLAogICAgICAgICAgZXJyU2NoZW1hUGF0aDogYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWAKICAgICAgICB9IDogewogICAgICAgICAgc2NoZW1hOiBzY2hbc2NoZW1hUHJvcF0sCiAgICAgICAgICBzY2hlbWFQYXRoOiAoMCwgY29kZWdlbl8xLl8pYCR7aXQuc2NoZW1hUGF0aH0keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKGtleXdvcmQpfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoc2NoZW1hUHJvcCl9YCwKICAgICAgICAgIGVyclNjaGVtYVBhdGg6IGAke2l0LmVyclNjaGVtYVBhdGh9LyR7a2V5d29yZH0vJHsoMCwgdXRpbF8xLmVzY2FwZUZyYWdtZW50KShzY2hlbWFQcm9wKX1gCiAgICAgICAgfTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHNjaGVtYVBhdGggPT09IHZvaWQgMCB8fCBlcnJTY2hlbWFQYXRoID09PSB2b2lkIDAgfHwgdG9wU2NoZW1hUmVmID09PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignInNjaGVtYVBhdGgiLCAiZXJyU2NoZW1hUGF0aCIgYW5kICJ0b3BTY2hlbWFSZWYiIGFyZSByZXF1aXJlZCB3aXRoICJzY2hlbWEiJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzY2hlbWE6IHNjaGVtYTIsCiAgICAgICAgICBzY2hlbWFQYXRoLAogICAgICAgICAgdG9wU2NoZW1hUmVmLAogICAgICAgICAgZXJyU2NoZW1hUGF0aAogICAgICAgIH07CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKCdlaXRoZXIgImtleXdvcmQiIG9yICJzY2hlbWEiIG11c3QgYmUgcGFzc2VkJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSBnZXRTdWJzY2hlbWE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFEYXRhKHN1YnNjaGVtYSwgaXQsIHsgZGF0YVByb3AsIGRhdGFQcm9wVHlwZTogZHBUeXBlLCBkYXRhLCBkYXRhVHlwZXMsIHByb3BlcnR5TmFtZSB9KSB7CiAgICAgIGlmIChkYXRhICE9PSB2b2lkIDAgJiYgZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAiZGF0YSIgYW5kICJkYXRhUHJvcCIgcGFzc2VkLCBvbmx5IG9uZSBhbGxvd2VkJyk7CiAgICAgIH0KICAgICAgY29uc3QgeyBnZW4gfSA9IGl0OwogICAgICBpZiAoZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHsgZXJyb3JQYXRoLCBkYXRhUGF0aEFyciwgb3B0cyB9ID0gaXQ7CiAgICAgICAgY29uc3QgbmV4dERhdGEgPSBnZW4ubGV0KCJkYXRhIiwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LmRhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCl9YCwgdHJ1ZSk7CiAgICAgICAgZGF0YUNvbnRleHRQcm9wcyhuZXh0RGF0YSk7CiAgICAgICAgc3Vic2NoZW1hLmVycm9yUGF0aCA9ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShkYXRhUHJvcCwgZHBUeXBlLCBvcHRzLmpzUHJvcGVydHlTeW50YXgpfWA7CiAgICAgICAgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eSA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhUHJvcH1gOwogICAgICAgIHN1YnNjaGVtYS5kYXRhUGF0aEFyciA9IFsuLi5kYXRhUGF0aEFyciwgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eV07CiAgICAgIH0KICAgICAgaWYgKGRhdGEgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IG5leHREYXRhID0gZGF0YSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gZGF0YSA6IGdlbi5sZXQoImRhdGEiLCBkYXRhLCB0cnVlKTsKICAgICAgICBkYXRhQ29udGV4dFByb3BzKG5leHREYXRhKTsKICAgICAgICBpZiAocHJvcGVydHlOYW1lICE9PSB2b2lkIDApCiAgICAgICAgICBzdWJzY2hlbWEucHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICB9CiAgICAgIGlmIChkYXRhVHlwZXMpCiAgICAgICAgc3Vic2NoZW1hLmRhdGFUeXBlcyA9IGRhdGFUeXBlczsKICAgICAgZnVuY3Rpb24gZGF0YUNvbnRleHRQcm9wcyhfbmV4dERhdGEpIHsKICAgICAgICBzdWJzY2hlbWEuZGF0YSA9IF9uZXh0RGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMTsKICAgICAgICBzdWJzY2hlbWEuZGF0YVR5cGVzID0gW107CiAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHN1YnNjaGVtYS5wYXJlbnREYXRhID0gaXQuZGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YU5hbWVzID0gWy4uLml0LmRhdGFOYW1lcywgX25leHREYXRhXTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hRGF0YSA9IGV4dGVuZFN1YnNjaGVtYURhdGE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFNb2RlKHN1YnNjaGVtYSwgeyBqdGREaXNjcmltaW5hdG9yLCBqdGRNZXRhZGF0YSwgY29tcG9zaXRlUnVsZSwgY3JlYXRlRXJyb3JzLCBhbGxFcnJvcnMgfSkgewogICAgICBpZiAoY29tcG9zaXRlUnVsZSAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jb21wb3NpdGVSdWxlID0gY29tcG9zaXRlUnVsZTsKICAgICAgaWYgKGNyZWF0ZUVycm9ycyAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jcmVhdGVFcnJvcnMgPSBjcmVhdGVFcnJvcnM7CiAgICAgIGlmIChhbGxFcnJvcnMgIT09IHZvaWQgMCkKICAgICAgICBzdWJzY2hlbWEuYWxsRXJyb3JzID0gYWxsRXJyb3JzOwogICAgICBzdWJzY2hlbWEuanRkRGlzY3JpbWluYXRvciA9IGp0ZERpc2NyaW1pbmF0b3I7CiAgICAgIHN1YnNjaGVtYS5qdGRNZXRhZGF0YSA9IGp0ZE1ldGFkYXRhOwogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4dGVuZFN1YnNjaGVtYU1vZGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtZGVlcC1lcXVhbC1ucG0tMy4xLjMtNzkwZWRjZmNmNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcwp2YXIgcmVxdWlyZV9mYXN0X2RlZXBfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC1kZWVwLWVxdWFsLW5wbS0zLjEuMy03OTBlZGNmY2Y1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikgewogICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7CiAgICAgIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT0gIm9iamVjdCIgJiYgdHlwZW9mIGIgPT0gIm9iamVjdCIpIHsKICAgICAgICBpZiAoYS5jb25zdHJ1Y3RvciAhPT0gYi5jb25zdHJ1Y3RvcikgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBsZW5ndGgsIGksIGtleXM7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICAgIGxlbmd0aCA9IGEubGVuZ3RoOwogICAgICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFnczsKICAgICAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7CiAgICAgICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTsKICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7CiAgICAgICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkgewogICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07CiAgICAgICAgICBpZiAoIWVxdWFsKGFba2V5XSwgYltrZXldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbi1zY2hlbWEtdHJhdmVyc2UtbnBtLTEuMC4wLWZiMzY4NGY0ZjAtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS10cmF2ZXJzZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9qc29uX3NjaGVtYV90cmF2ZXJzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uLXNjaGVtYS10cmF2ZXJzZS1ucG0tMS4wLjAtZmIzNjg0ZjRmMC0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLXRyYXZlcnNlL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHRyYXZlcnNlID0gbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc2NoZW1hMiwgb3B0cywgY2IpIHsKICAgICAgaWYgKHR5cGVvZiBvcHRzID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjYiA9IG9wdHM7CiAgICAgICAgb3B0cyA9IHt9OwogICAgICB9CiAgICAgIGNiID0gb3B0cy5jYiB8fCBjYjsKICAgICAgdmFyIHByZSA9IHR5cGVvZiBjYiA9PSAiZnVuY3Rpb24iID8gY2IgOiBjYi5wcmUgfHwgZnVuY3Rpb24oKSB7CiAgICAgIH07CiAgICAgIHZhciBwb3N0ID0gY2IucG9zdCB8fCBmdW5jdGlvbigpIHsKICAgICAgfTsKICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwgIiIsIHNjaGVtYTIpOwogICAgfTsKICAgIHRyYXZlcnNlLmtleXdvcmRzID0gewogICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgIGl0ZW1zOiB0cnVlLAogICAgICBjb250YWluczogdHJ1ZSwKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgIHByb3BlcnR5TmFtZXM6IHRydWUsCiAgICAgIG5vdDogdHJ1ZSwKICAgICAgaWY6IHRydWUsCiAgICAgIHRoZW46IHRydWUsCiAgICAgIGVsc2U6IHRydWUKICAgIH07CiAgICB0cmF2ZXJzZS5hcnJheUtleXdvcmRzID0gewogICAgICBpdGVtczogdHJ1ZSwKICAgICAgYWxsT2Y6IHRydWUsCiAgICAgIGFueU9mOiB0cnVlLAogICAgICBvbmVPZjogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnByb3BzS2V5d29yZHMgPSB7CiAgICAgICRkZWZzOiB0cnVlLAogICAgICBkZWZpbml0aW9uczogdHJ1ZSwKICAgICAgcHJvcGVydGllczogdHJ1ZSwKICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgIGRlcGVuZGVuY2llczogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnNraXBLZXl3b3JkcyA9IHsKICAgICAgZGVmYXVsdDogdHJ1ZSwKICAgICAgZW51bTogdHJ1ZSwKICAgICAgY29uc3Q6IHRydWUsCiAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICBtYXhpbXVtOiB0cnVlLAogICAgICBtaW5pbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNYXhpbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNaW5pbXVtOiB0cnVlLAogICAgICBtdWx0aXBsZU9mOiB0cnVlLAogICAgICBtYXhMZW5ndGg6IHRydWUsCiAgICAgIG1pbkxlbmd0aDogdHJ1ZSwKICAgICAgcGF0dGVybjogdHJ1ZSwKICAgICAgZm9ybWF0OiB0cnVlLAogICAgICBtYXhJdGVtczogdHJ1ZSwKICAgICAgbWluSXRlbXM6IHRydWUsCiAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLAogICAgICBtYXhQcm9wZXJ0aWVzOiB0cnVlLAogICAgICBtaW5Qcm9wZXJ0aWVzOiB0cnVlCiAgICB9OwogICAgZnVuY3Rpb24gX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCkgewogICAgICBpZiAoc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEyKSkgewogICAgICAgIHByZShzY2hlbWEyLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hMikgewogICAgICAgICAgdmFyIHNjaCA9IHNjaGVtYTJba2V5XTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgaWYgKGtleSBpbiB0cmF2ZXJzZS5hcnJheUtleXdvcmRzKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbaV0sIGpzb25QdHIgKyAiLyIgKyBrZXkgKyAiLyIgKyBpLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIsIGkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5wcm9wc0tleXdvcmRzKSB7CiAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gc2NoKQogICAgICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW3Byb3BdLCBqc29uUHRyICsgIi8iICsga2V5ICsgIi8iICsgZXNjYXBlSnNvblB0cihwcm9wKSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEyLCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gdHJhdmVyc2Uua2V5d29yZHMgfHwgb3B0cy5hbGxLZXlzICYmICEoa2V5IGluIHRyYXZlcnNlLnNraXBLZXl3b3JkcykpIHsKICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoLCBqc29uUHRyICsgIi8iICsga2V5LCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwb3N0KHNjaGVtYTIsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUHRyKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZSgvfi9nLCAifjAiKS5yZXBsYWNlKC9cLy9nLCAifjEiKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVzb2x2ZS5qcwp2YXIgcmVxdWlyZV9yZXNvbHZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3Jlc29sdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmdldFNjaGVtYVJlZnMgPSBleHBvcnRzMi5yZXNvbHZlVXJsID0gZXhwb3J0czIubm9ybWFsaXplSWQgPSBleHBvcnRzMi5fZ2V0RnVsbFBhdGggPSBleHBvcnRzMi5nZXRGdWxsUGF0aCA9IGV4cG9ydHMyLmlubGluZVJlZiA9IHZvaWQgMDsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICB2YXIgdHJhdmVyc2UgPSByZXF1aXJlX2pzb25fc2NoZW1hX3RyYXZlcnNlKCk7CiAgICB2YXIgU0lNUExFX0lOTElORUQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJ0eXBlIiwKICAgICAgImZvcm1hdCIsCiAgICAgICJwYXR0ZXJuIiwKICAgICAgIm1heExlbmd0aCIsCiAgICAgICJtaW5MZW5ndGgiLAogICAgICAibWF4UHJvcGVydGllcyIsCiAgICAgICJtaW5Qcm9wZXJ0aWVzIiwKICAgICAgIm1heEl0ZW1zIiwKICAgICAgIm1pbkl0ZW1zIiwKICAgICAgIm1heGltdW0iLAogICAgICAibWluaW11bSIsCiAgICAgICJ1bmlxdWVJdGVtcyIsCiAgICAgICJtdWx0aXBsZU9mIiwKICAgICAgInJlcXVpcmVkIiwKICAgICAgImVudW0iLAogICAgICAiY29uc3QiCiAgICBdKTsKICAgIGZ1bmN0aW9uIGlubGluZVJlZihzY2hlbWEyLCBsaW1pdCA9IHRydWUpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgaWYgKGxpbWl0ID09PSB0cnVlKQogICAgICAgIHJldHVybiAhaGFzUmVmKHNjaGVtYTIpOwogICAgICBpZiAoIWxpbWl0KQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIGNvdW50S2V5cyhzY2hlbWEyKSA8PSBsaW1pdDsKICAgIH0KICAgIGV4cG9ydHMyLmlubGluZVJlZiA9IGlubGluZVJlZjsKICAgIHZhciBSRUZfS0VZV09SRFMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICIkcmVmIiwKICAgICAgIiRyZWN1cnNpdmVSZWYiLAogICAgICAiJHJlY3Vyc2l2ZUFuY2hvciIsCiAgICAgICIkZHluYW1pY1JlZiIsCiAgICAgICIkZHluYW1pY0FuY2hvciIKICAgIF0pOwogICAgZnVuY3Rpb24gaGFzUmVmKHNjaGVtYTIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmIChSRUZfS0VZV09SRFMuaGFzKGtleSkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2tleV07CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoKSAmJiBzY2guc29tZShoYXNSZWYpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIgJiYgaGFzUmVmKHNjaCkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmdW5jdGlvbiBjb3VudEtleXMoc2NoZW1hMikgewogICAgICBsZXQgY291bnQgPSAwOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIiRyZWYiKQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICAgIGNvdW50Kys7CiAgICAgICAgaWYgKFNJTVBMRV9JTkxJTkVELmhhcyhrZXkpKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyW2tleV0gPT0gIm9iamVjdCIpIHsKICAgICAgICAgICgwLCB1dGlsXzEuZWFjaEl0ZW0pKHNjaGVtYTJba2V5XSwgKHNjaCkgPT4gY291bnQgKz0gY291bnRLZXlzKHNjaCkpOwogICAgICAgIH0KICAgICAgICBpZiAoY291bnQgPT09IEluZmluaXR5KQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICB9CiAgICAgIHJldHVybiBjb3VudDsKICAgIH0KICAgIGZ1bmN0aW9uIGdldEZ1bGxQYXRoKHJlc29sdmVyLCBpZCA9ICIiLCBub3JtYWxpemUpIHsKICAgICAgaWYgKG5vcm1hbGl6ZSAhPT0gZmFsc2UpCiAgICAgICAgaWQgPSBub3JtYWxpemVJZChpZCk7CiAgICAgIGNvbnN0IHAgPSByZXNvbHZlci5wYXJzZShpZCk7CiAgICAgIHJldHVybiBfZ2V0RnVsbFBhdGgocmVzb2x2ZXIsIHApOwogICAgfQogICAgZXhwb3J0czIuZ2V0RnVsbFBhdGggPSBnZXRGdWxsUGF0aDsKICAgIGZ1bmN0aW9uIF9nZXRGdWxsUGF0aChyZXNvbHZlciwgcCkgewogICAgICBjb25zdCBzZXJpYWxpemVkID0gcmVzb2x2ZXIuc2VyaWFsaXplKHApOwogICAgICByZXR1cm4gc2VyaWFsaXplZC5zcGxpdCgiIyIpWzBdICsgIiMiOwogICAgfQogICAgZXhwb3J0czIuX2dldEZ1bGxQYXRoID0gX2dldEZ1bGxQYXRoOwogICAgdmFyIFRSQUlMSU5HX1NMQVNIX0hBU0ggPSAvI1wvPyQvOwogICAgZnVuY3Rpb24gbm9ybWFsaXplSWQoaWQpIHsKICAgICAgcmV0dXJuIGlkID8gaWQucmVwbGFjZShUUkFJTElOR19TTEFTSF9IQVNILCAiIikgOiAiIjsKICAgIH0KICAgIGV4cG9ydHMyLm5vcm1hbGl6ZUlkID0gbm9ybWFsaXplSWQ7CiAgICBmdW5jdGlvbiByZXNvbHZlVXJsKHJlc29sdmVyLCBiYXNlSWQsIGlkKSB7CiAgICAgIGlkID0gbm9ybWFsaXplSWQoaWQpOwogICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShiYXNlSWQsIGlkKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlc29sdmVVcmwgPSByZXNvbHZlVXJsOwogICAgdmFyIEFOQ0hPUiA9IC9eW2Etel9dWy1hLXowLTkuX10qJC9pOwogICAgZnVuY3Rpb24gZ2V0U2NoZW1hUmVmcyhzY2hlbWEyLCBiYXNlSWQpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4ge307CiAgICAgIGNvbnN0IHsgc2NoZW1hSWQsIHVyaVJlc29sdmVyIH0gPSB0aGlzLm9wdHM7CiAgICAgIGNvbnN0IHNjaElkID0gbm9ybWFsaXplSWQoc2NoZW1hMltzY2hlbWFJZF0gfHwgYmFzZUlkKTsKICAgICAgY29uc3QgYmFzZUlkcyA9IHsgIiI6IHNjaElkIH07CiAgICAgIGNvbnN0IHBhdGhQcmVmaXggPSBnZXRGdWxsUGF0aCh1cmlSZXNvbHZlciwgc2NoSWQsIGZhbHNlKTsKICAgICAgY29uc3QgbG9jYWxSZWZzID0ge307CiAgICAgIGNvbnN0IHNjaGVtYVJlZnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB0cmF2ZXJzZShzY2hlbWEyLCB7IGFsbEtleXM6IHRydWUgfSwgKHNjaCwganNvblB0ciwgXywgcGFyZW50SnNvblB0cikgPT4gewogICAgICAgIGlmIChwYXJlbnRKc29uUHRyID09PSB2b2lkIDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoUHJlZml4ICsganNvblB0cjsKICAgICAgICBsZXQgaW5uZXJCYXNlSWQgPSBiYXNlSWRzW3BhcmVudEpzb25QdHJdOwogICAgICAgIGlmICh0eXBlb2Ygc2NoW3NjaGVtYUlkXSA9PSAic3RyaW5nIikKICAgICAgICAgIGlubmVyQmFzZUlkID0gYWRkUmVmLmNhbGwodGhpcywgc2NoW3NjaGVtYUlkXSk7CiAgICAgICAgYWRkQW5jaG9yLmNhbGwodGhpcywgc2NoLiRhbmNob3IpOwogICAgICAgIGFkZEFuY2hvci5jYWxsKHRoaXMsIHNjaC4kZHluYW1pY0FuY2hvcik7CiAgICAgICAgYmFzZUlkc1tqc29uUHRyXSA9IGlubmVyQmFzZUlkOwogICAgICAgIGZ1bmN0aW9uIGFkZFJlZihyZWYpIHsKICAgICAgICAgIGNvbnN0IF9yZXNvbHZlID0gdGhpcy5vcHRzLnVyaVJlc29sdmVyLnJlc29sdmU7CiAgICAgICAgICByZWYgPSBub3JtYWxpemVJZChpbm5lckJhc2VJZCA/IF9yZXNvbHZlKGlubmVyQmFzZUlkLCByZWYpIDogcmVmKTsKICAgICAgICAgIGlmIChzY2hlbWFSZWZzLmhhcyhyZWYpKQogICAgICAgICAgICB0aHJvdyBhbWJpZ3VvcyhyZWYpOwogICAgICAgICAgc2NoZW1hUmVmcy5hZGQocmVmKTsKICAgICAgICAgIGxldCBzY2hPclJlZiA9IHRoaXMucmVmc1tyZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAic3RyaW5nIikKICAgICAgICAgICAgc2NoT3JSZWYgPSB0aGlzLnJlZnNbc2NoT3JSZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAib2JqZWN0IikgewogICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgc2NoT3JSZWYuc2NoZW1hLCByZWYpOwogICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG5vcm1hbGl6ZUlkKGZ1bGxQYXRoKSkgewogICAgICAgICAgICBpZiAocmVmWzBdID09PSAiIyIpIHsKICAgICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgbG9jYWxSZWZzW3JlZl0sIHJlZik7CiAgICAgICAgICAgICAgbG9jYWxSZWZzW3JlZl0gPSBzY2g7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy5yZWZzW3JlZl0gPSBmdWxsUGF0aDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlZjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkQW5jaG9yKGFuY2hvcikgewogICAgICAgICAgaWYgKHR5cGVvZiBhbmNob3IgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKCFBTkNIT1IudGVzdChhbmNob3IpKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhbmNob3IgIiR7YW5jaG9yfSJgKTsKICAgICAgICAgICAgYWRkUmVmLmNhbGwodGhpcywgYCMke2FuY2hvcn1gKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gbG9jYWxSZWZzOwogICAgICBmdW5jdGlvbiBjaGVja0FtYmlndW9zUmVmKHNjaDEsIHNjaDIsIHJlZikgewogICAgICAgIGlmIChzY2gyICE9PSB2b2lkIDAgJiYgIWVxdWFsKHNjaDEsIHNjaDIpKQogICAgICAgICAgdGhyb3cgYW1iaWd1b3MocmVmKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhbWJpZ3VvcyhyZWYpIHsKICAgICAgICByZXR1cm4gbmV3IEVycm9yKGByZWZlcmVuY2UgIiR7cmVmfSIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWFgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0U2NoZW1hUmVmcyA9IGdldFNjaGVtYVJlZnM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzCnZhciByZXF1aXJlX3ZhbGlkYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5nZXREYXRhID0gZXhwb3J0czIuS2V5d29yZEN4dCA9IGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdm9pZCAwOwogICAgdmFyIGJvb2xTY2hlbWFfMSA9IHJlcXVpcmVfYm9vbFNjaGVtYSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgYXBwbGljYWJpbGl0eV8xID0gcmVxdWlyZV9hcHBsaWNhYmlsaXR5KCk7CiAgICB2YXIgZGF0YVR5cGVfMiA9IHJlcXVpcmVfZGF0YVR5cGUoKTsKICAgIHZhciBkZWZhdWx0c18xID0gcmVxdWlyZV9kZWZhdWx0cygpOwogICAgdmFyIGtleXdvcmRfMSA9IHJlcXVpcmVfa2V5d29yZCgpOwogICAgdmFyIHN1YnNjaGVtYV8xID0gcmVxdWlyZV9zdWJzY2hlbWEoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25Db2RlKGl0KSB7CiAgICAgIGlmIChpc1NjaGVtYU9iaihpdCkpIHsKICAgICAgICBjaGVja0tleXdvcmRzKGl0KTsKICAgICAgICBpZiAoc2NoZW1hQ3h0SGFzUnVsZXMoaXQpKSB7CiAgICAgICAgICB0b3BTY2hlbWFPYmpDb2RlKGl0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFsaWRhdGVGdW5jdGlvbihpdCwgKCkgPT4gKDAsIGJvb2xTY2hlbWFfMS50b3BCb29sT3JFbXB0eVNjaGVtYSkoaXQpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdmFsaWRhdGVGdW5jdGlvbkNvZGU7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uKHsgZ2VuLCB2YWxpZGF0ZU5hbWUsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hRW52LCBvcHRzIH0sIGJvZHkpIHsKICAgICAgaWYgKG9wdHMuY29kZS5lczUpIHsKICAgICAgICBnZW4uZnVuYyh2YWxpZGF0ZU5hbWUsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCJ1c2Ugc3RyaWN0IjsgJHtmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpfWApOwogICAgICAgICAgZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKTsKICAgICAgICAgIGdlbi5jb2RlKGJvZHkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5mdW5jKHZhbGlkYXRlTmFtZSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5kYXRhfSwgJHtkZXN0cnVjdHVyZVZhbEN4dChvcHRzKX1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiBnZW4uY29kZShmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpKS5jb2RlKGJvZHkpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHQob3B0cykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB7JHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofT0iIiwgJHtuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX0sICR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfT0ke25hbWVzXzEuZGVmYXVsdC5kYXRhfSR7b3B0cy5keW5hbWljUmVmID8gKDAsIGNvZGVnZW5fMS5fKWAsICR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfT17fWAgOiBjb2RlZ2VuXzEubmlsfX09e31gOwogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKSB7CiAgICAgIGdlbi5pZihuYW1lc18xLmRlZmF1bHQudmFsQ3h0LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH0uJHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGEsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudmFsQ3h0fS4ke25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhfWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX1gKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfWApOwogICAgICAgIGlmIChvcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfWApOwogICAgICB9LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCIiYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucm9vdERhdGEsIG5hbWVzXzEuZGVmYXVsdC5kYXRhKTsKICAgICAgICBpZiAob3B0cy5keW5hbWljUmVmKQogICAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuZHluYW1pY0FuY2hvcnMsICgwLCBjb2RlZ2VuXzEuXylge31gKTsKICAgICAgfSk7CiAgICB9CiAgICBmdW5jdGlvbiB0b3BTY2hlbWFPYmpDb2RlKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzLCBnZW4gfSA9IGl0OwogICAgICB2YWxpZGF0ZUZ1bmN0aW9uKGl0LCAoKSA9PiB7CiAgICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgJiYgc2NoZW1hMi4kY29tbWVudCkKICAgICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgICBjaGVja05vRGVmYXVsdChpdCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQudkVycm9ycywgbnVsbCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAwKTsKICAgICAgICBpZiAob3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJlc2V0RXZhbHVhdGVkKGl0KTsKICAgICAgICB0eXBlQW5kS2V5d29yZHMoaXQpOwogICAgICAgIHJldHVyblJlc3VsdHMoaXQpOwogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZnVuY3Rpb24gcmVzZXRFdmFsdWF0ZWQoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSB9ID0gaXQ7CiAgICAgIGl0LmV2YWx1YXRlZCA9IGdlbi5jb25zdCgiZXZhbHVhdGVkIiwgKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXZhbHVhdGVkYCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljUHJvcHNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9LnByb3BzYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljSXRlbXNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9Lml0ZW1zYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICB9CiAgICBmdW5jdGlvbiBmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpIHsKICAgICAgY29uc3Qgc2NoSWQgPSB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiBzY2hlbWEyW29wdHMuc2NoZW1hSWRdOwogICAgICByZXR1cm4gc2NoSWQgJiYgKG9wdHMuY29kZS5zb3VyY2UgfHwgb3B0cy5jb2RlLnByb2Nlc3MpID8gKDAsIGNvZGVnZW5fMS5fKWAvKiMgc291cmNlVVJMPSR7c2NoSWR9ICovYCA6IGNvZGVnZW5fMS5uaWw7CiAgICB9CiAgICBmdW5jdGlvbiBzdWJzY2hlbWFDb2RlKGl0LCB2YWxpZCkgewogICAgICBpZiAoaXNTY2hlbWFPYmooaXQpKSB7CiAgICAgICAgY2hlY2tLZXl3b3JkcyhpdCk7CiAgICAgICAgaWYgKHNjaGVtYUN4dEhhc1J1bGVzKGl0KSkgewogICAgICAgICAgc3ViU2NoZW1hT2JqQ29kZShpdCwgdmFsaWQpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgICAoMCwgYm9vbFNjaGVtYV8xLmJvb2xPckVtcHR5U2NoZW1hKShpdCwgdmFsaWQpOwogICAgfQogICAgZnVuY3Rpb24gc2NoZW1hQ3h0SGFzUnVsZXMoeyBzY2hlbWE6IHNjaGVtYTIsIHNlbGY6IHNlbGYyIH0pIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gIXNjaGVtYTI7CiAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYTIpCiAgICAgICAgaWYgKHNlbGYyLlJVTEVTLmFsbFtrZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU2NoZW1hT2JqKGl0KSB7CiAgICAgIHJldHVybiB0eXBlb2YgaXQuc2NoZW1hICE9ICJib29sZWFuIjsKICAgIH0KICAgIGZ1bmN0aW9uIHN1YlNjaGVtYU9iakNvZGUoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBnZW4sIG9wdHMgfSA9IGl0OwogICAgICBpZiAob3B0cy4kY29tbWVudCAmJiBzY2hlbWEyLiRjb21tZW50KQogICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgdXBkYXRlQ29udGV4dChpdCk7CiAgICAgIGNoZWNrQXN5bmNTY2hlbWEoaXQpOwogICAgICBjb25zdCBlcnJzQ291bnQgPSBnZW4uY29uc3QoIl9lcnJzIiwgbmFtZXNfMS5kZWZhdWx0LmVycm9ycyk7CiAgICAgIHR5cGVBbmRLZXl3b3JkcyhpdCwgZXJyc0NvdW50KTsKICAgICAgZ2VuLnZhcih2YWxpZCwgKDAsIGNvZGVnZW5fMS5fKWAke2VycnNDb3VudH0gPT09ICR7bmFtZXNfMS5kZWZhdWx0LmVycm9yc31gKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZHMoaXQpIHsKICAgICAgKDAsIHV0aWxfMS5jaGVja1Vua25vd25SdWxlcykoaXQpOwogICAgICBjaGVja1JlZnNBbmRLZXl3b3JkcyhpdCk7CiAgICB9CiAgICBmdW5jdGlvbiB0eXBlQW5kS2V5d29yZHMoaXQsIGVycnNDb3VudCkgewogICAgICBpZiAoaXQub3B0cy5qdGQpCiAgICAgICAgcmV0dXJuIHNjaGVtYUtleXdvcmRzKGl0LCBbXSwgZmFsc2UsIGVycnNDb3VudCk7CiAgICAgIGNvbnN0IHR5cGVzID0gKDAsIGRhdGFUeXBlXzEuZ2V0U2NoZW1hVHlwZXMpKGl0LnNjaGVtYSk7CiAgICAgIGNvbnN0IGNoZWNrZWRUeXBlcyA9ICgwLCBkYXRhVHlwZV8xLmNvZXJjZUFuZENoZWNrRGF0YVR5cGUpKGl0LCB0eXBlcyk7CiAgICAgIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgIWNoZWNrZWRUeXBlcywgZXJyc0NvdW50KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrUmVmc0FuZEtleXdvcmRzKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgIGlmIChzY2hlbWEyLiRyZWYgJiYgb3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgJiYgKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgc2VsZjIuUlVMRVMpKSB7CiAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4oYCRyZWY6IGtleXdvcmRzIGlnbm9yZWQgaW4gc2NoZW1hIGF0IHBhdGggIiR7ZXJyU2NoZW1hUGF0aH0iYCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrTm9EZWZhdWx0KGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIuZGVmYXVsdCAhPT0gdm9pZCAwICYmIG9wdHMudXNlRGVmYXVsdHMgJiYgb3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICJkZWZhdWx0IGlzIGlnbm9yZWQgaW4gdGhlIHNjaGVtYSByb290Iik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHQoaXQpIHsKICAgICAgY29uc3Qgc2NoSWQgPSBpdC5zY2hlbWFbaXQub3B0cy5zY2hlbWFJZF07CiAgICAgIGlmIChzY2hJZCkKICAgICAgICBpdC5iYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGl0LmJhc2VJZCwgc2NoSWQpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY1NjaGVtYShpdCkgewogICAgICBpZiAoaXQuc2NoZW1hLiRhc3luYyAmJiAhaXQuc2NoZW1hRW52LiRhc3luYykKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIHNjaGVtYSBpbiBzeW5jIHNjaGVtYSIpOwogICAgfQogICAgZnVuY3Rpb24gY29tbWVudEtleXdvcmQoeyBnZW4sIHNjaGVtYUVudiwgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzIH0pIHsKICAgICAgY29uc3QgbXNnID0gc2NoZW1hMi4kY29tbWVudDsKICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgPT09IHRydWUpIHsKICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnNlbGZ9LmxvZ2dlci5sb2coJHttc2d9KWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLiRjb21tZW50ID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjb25zdCBzY2hlbWFQYXRoID0gKDAsIGNvZGVnZW5fMS5zdHIpYCR7ZXJyU2NoZW1hUGF0aH0vJGNvbW1lbnRgOwogICAgICAgIGNvbnN0IHJvb3ROYW1lID0gZ2VuLnNjb3BlVmFsdWUoInJvb3QiLCB7IHJlZjogc2NoZW1hRW52LnJvb3QgfSk7CiAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5zZWxmfS5vcHRzLiRjb21tZW50KCR7bXNnfSwgJHtzY2hlbWFQYXRofSwgJHtyb290TmFtZX0uc2NoZW1hKWApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5SZXN1bHRzKGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFFbnYsIHZhbGlkYXRlTmFtZSwgVmFsaWRhdGlvbkVycm9yLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5lcnJvcnN9ID09PSAwYCwgKCkgPT4gZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSksICgpID0+IGdlbi50aHJvdygoMCwgY29kZWdlbl8xLl8pYG5ldyAke1ZhbGlkYXRpb25FcnJvcn0oJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30pYCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXJyb3JzYCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICAgIGlmIChvcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgYXNzaWduRXZhbHVhdGVkKGl0KTsKICAgICAgICBnZW4ucmV0dXJuKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gMGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhc3NpZ25FdmFsdWF0ZWQoeyBnZW4sIGV2YWx1YXRlZCwgcHJvcHMsIGl0ZW1zIH0pIHsKICAgICAgaWYgKHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5wcm9wc2AsIHByb3BzKTsKICAgICAgaWYgKGl0ZW1zIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5pdGVtc2AsIGl0ZW1zKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgdHlwZUVycm9ycywgZXJyc0NvdW50KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGFsbEVycm9ycywgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICBjb25zdCB7IFJVTEVTIH0gPSBzZWxmMjsKICAgICAgaWYgKHNjaGVtYTIuJHJlZiAmJiAob3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgfHwgISgwLCB1dGlsXzEuc2NoZW1hSGFzUnVsZXNCdXRSZWYpKHNjaGVtYTIsIFJVTEVTKSkpIHsKICAgICAgICBnZW4uYmxvY2soKCkgPT4ga2V5d29yZENvZGUoaXQsICIkcmVmIiwgUlVMRVMuYWxsLiRyZWYuZGVmaW5pdGlvbikpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoIW9wdHMuanRkKQogICAgICAgIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIFJVTEVTLnJ1bGVzKQogICAgICAgICAgZ3JvdXBLZXl3b3Jkcyhncm91cCk7CiAgICAgICAgZ3JvdXBLZXl3b3JkcyhSVUxFUy5wb3N0KTsKICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGdyb3VwS2V5d29yZHMoZ3JvdXApIHsKICAgICAgICBpZiAoISgwLCBhcHBsaWNhYmlsaXR5XzEuc2hvdWxkVXNlR3JvdXApKHNjaGVtYTIsIGdyb3VwKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBpZiAoZ3JvdXAudHlwZSkgewogICAgICAgICAgZ2VuLmlmKCgwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGUpKGdyb3VwLnR5cGUsIGRhdGEsIG9wdHMuc3RyaWN0TnVtYmVycykpOwogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgICBpZiAodHlwZXMubGVuZ3RoID09PSAxICYmIHR5cGVzWzBdID09PSBncm91cC50eXBlICYmIHR5cGVFcnJvcnMpIHsKICAgICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICAgICAgKDAsIGRhdGFUeXBlXzIucmVwb3J0VHlwZUVycm9yKShpdCk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgfQogICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gJHtlcnJzQ291bnQgfHwgMH1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBvcHRzOiB7IHVzZURlZmF1bHRzIH0gfSA9IGl0OwogICAgICBpZiAodXNlRGVmYXVsdHMpCiAgICAgICAgKDAsIGRlZmF1bHRzXzEuYXNzaWduRGVmYXVsdHMpKGl0LCBncm91cC50eXBlKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgZ3JvdXAucnVsZXMpIHsKICAgICAgICAgIGlmICgoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKHNjaGVtYTIsIHJ1bGUpKSB7CiAgICAgICAgICAgIGtleXdvcmRDb2RlKGl0LCBydWxlLmtleXdvcmQsIHJ1bGUuZGVmaW5pdGlvbiwgZ3JvdXAudHlwZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmIChpdC5zY2hlbWFFbnYubWV0YSB8fCAhaXQub3B0cy5zdHJpY3RUeXBlcykKICAgICAgICByZXR1cm47CiAgICAgIGNoZWNrQ29udGV4dFR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGlmICghaXQub3B0cy5hbGxvd1VuaW9uVHlwZXMpCiAgICAgICAgY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGNoZWNrS2V5d29yZFR5cGVzKGl0LCBpdC5kYXRhVHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tDb250ZXh0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmICghdHlwZXMubGVuZ3RoKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKCFpdC5kYXRhVHlwZXMubGVuZ3RoKSB7CiAgICAgICAgaXQuZGF0YVR5cGVzID0gdHlwZXM7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHR5cGVzLmZvckVhY2goKHQpID0+IHsKICAgICAgICBpZiAoIWluY2x1ZGVzVHlwZShpdC5kYXRhVHlwZXMsIHQpKSB7CiAgICAgICAgICBzdHJpY3RUeXBlc0Vycm9yKGl0LCBgdHlwZSAiJHt0fSIgbm90IGFsbG93ZWQgYnkgY29udGV4dCAiJHtpdC5kYXRhVHlwZXMuam9pbigiLCIpfSJgKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBuYXJyb3dTY2hlbWFUeXBlcyhpdCwgdHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0cykgewogICAgICBpZiAodHMubGVuZ3RoID4gMSAmJiAhKHRzLmxlbmd0aCA9PT0gMiAmJiB0cy5pbmNsdWRlcygibnVsbCIpKSkgewogICAgICAgIHN0cmljdFR5cGVzRXJyb3IoaXQsICJ1c2UgYWxsb3dVbmlvblR5cGVzIHRvIGFsbG93IHVuaW9uIHR5cGUga2V5d29yZCIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBjaGVja0tleXdvcmRUeXBlcyhpdCwgdHMpIHsKICAgICAgY29uc3QgcnVsZXMgPSBpdC5zZWxmLlJVTEVTLmFsbDsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIHJ1bGVzKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHJ1bGVzW2tleXdvcmRdOwogICAgICAgIGlmICh0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiAmJiAoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKGl0LnNjaGVtYSwgcnVsZSkpIHsKICAgICAgICAgIGNvbnN0IHsgdHlwZTogdHlwZTIgfSA9IHJ1bGUuZGVmaW5pdGlvbjsKICAgICAgICAgIGlmICh0eXBlMi5sZW5ndGggJiYgIXR5cGUyLnNvbWUoKHQpID0+IGhhc0FwcGxpY2FibGVUeXBlKHRzLCB0KSkpIHsKICAgICAgICAgICAgc3RyaWN0VHlwZXNFcnJvcihpdCwgYG1pc3NpbmcgdHlwZSAiJHt0eXBlMi5qb2luKCIsIil9IiBmb3Iga2V5d29yZCAiJHtrZXl3b3JkfSJgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGhhc0FwcGxpY2FibGVUeXBlKHNjaFRzLCBrd2RUKSB7CiAgICAgIHJldHVybiBzY2hUcy5pbmNsdWRlcyhrd2RUKSB8fCBrd2RUID09PSAibnVtYmVyIiAmJiBzY2hUcy5pbmNsdWRlcygiaW50ZWdlciIpOwogICAgfQogICAgZnVuY3Rpb24gaW5jbHVkZXNUeXBlKHRzLCB0KSB7CiAgICAgIHJldHVybiB0cy5pbmNsdWRlcyh0KSB8fCB0ID09PSAiaW50ZWdlciIgJiYgdHMuaW5jbHVkZXMoIm51bWJlciIpOwogICAgfQogICAgZnVuY3Rpb24gbmFycm93U2NoZW1hVHlwZXMoaXQsIHdpdGhUeXBlcykgewogICAgICBjb25zdCB0cyA9IFtdOwogICAgICBmb3IgKGNvbnN0IHQgb2YgaXQuZGF0YVR5cGVzKSB7CiAgICAgICAgaWYgKGluY2x1ZGVzVHlwZSh3aXRoVHlwZXMsIHQpKQogICAgICAgICAgdHMucHVzaCh0KTsKICAgICAgICBlbHNlIGlmICh3aXRoVHlwZXMuaW5jbHVkZXMoImludGVnZXIiKSAmJiB0ID09PSAibnVtYmVyIikKICAgICAgICAgIHRzLnB1c2goImludGVnZXIiKTsKICAgICAgfQogICAgICBpdC5kYXRhVHlwZXMgPSB0czsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmljdFR5cGVzRXJyb3IoaXQsIG1zZykgewogICAgICBjb25zdCBzY2hlbWFQYXRoID0gaXQuc2NoZW1hRW52LmJhc2VJZCArIGl0LmVyclNjaGVtYVBhdGg7CiAgICAgIG1zZyArPSBgIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0VHlwZXMpYDsKICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBtc2csIGl0Lm9wdHMuc3RyaWN0VHlwZXMpOwogICAgfQogICAgdmFyIEtleXdvcmRDeHQgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGl0LCBkZWYsIGtleXdvcmQpIHsKICAgICAgICAoMCwga2V5d29yZF8xLnZhbGlkYXRlS2V5d29yZFVzYWdlKShpdCwgZGVmLCBrZXl3b3JkKTsKICAgICAgICB0aGlzLmdlbiA9IGl0LmdlbjsKICAgICAgICB0aGlzLmFsbEVycm9ycyA9IGl0LmFsbEVycm9yczsKICAgICAgICB0aGlzLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgIHRoaXMuZGF0YSA9IGl0LmRhdGE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgdGhpcy4kZGF0YSA9IGRlZi4kZGF0YSAmJiBpdC5vcHRzLiRkYXRhICYmIHRoaXMuc2NoZW1hICYmIHRoaXMuc2NoZW1hLiRkYXRhOwogICAgICAgIHRoaXMuc2NoZW1hVmFsdWUgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgdGhpcy5zY2hlbWEsIGtleXdvcmQsIHRoaXMuJGRhdGEpOwogICAgICAgIHRoaXMuc2NoZW1hVHlwZSA9IGRlZi5zY2hlbWFUeXBlOwogICAgICAgIHRoaXMucGFyZW50U2NoZW1hID0gaXQuc2NoZW1hOwogICAgICAgIHRoaXMucGFyYW1zID0ge307CiAgICAgICAgdGhpcy5pdCA9IGl0OwogICAgICAgIHRoaXMuZGVmID0gZGVmOwogICAgICAgIGlmICh0aGlzLiRkYXRhKSB7CiAgICAgICAgICB0aGlzLnNjaGVtYUNvZGUgPSBpdC5nZW4uY29uc3QoInZTY2hlbWEiLCBnZXREYXRhKHRoaXMuJGRhdGEsIGl0KSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc2NoZW1hQ29kZSA9IHRoaXMuc2NoZW1hVmFsdWU7CiAgICAgICAgICBpZiAoISgwLCBrZXl3b3JkXzEudmFsaWRTY2hlbWFUeXBlKSh0aGlzLnNjaGVtYSwgZGVmLnNjaGVtYVR5cGUsIGRlZi5hbGxvd1VuZGVmaW5lZCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2tleXdvcmR9IHZhbHVlIG11c3QgYmUgJHtKU09OLnN0cmluZ2lmeShkZWYuc2NoZW1hVHlwZSl9YCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgiY29kZSIgaW4gZGVmID8gZGVmLnRyYWNrRXJyb3JzIDogZGVmLmVycm9ycyAhPT0gZmFsc2UpIHsKICAgICAgICAgIHRoaXMuZXJyc0NvdW50ID0gaXQuZ2VuLmNvbnN0KCJfZXJycyIsIG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXN1bHQoY29uZGl0aW9uLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKSB7CiAgICAgICAgdGhpcy5mYWlsUmVzdWx0KCgwLCBjb2RlZ2VuXzEubm90KShjb25kaXRpb24pLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsUmVzdWx0KGNvbmRpdGlvbiwgc3VjY2Vzc0FjdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZ2VuLmlmKGNvbmRpdGlvbik7CiAgICAgICAgaWYgKGZhaWxBY3Rpb24pCiAgICAgICAgICBmYWlsQWN0aW9uKCk7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgIGlmIChzdWNjZXNzQWN0aW9uKSB7CiAgICAgICAgICB0aGlzLmdlbi5lbHNlKCk7CiAgICAgICAgICBzdWNjZXNzQWN0aW9uKCk7CiAgICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICAgIHRoaXMuZ2VuLmVuZElmKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICh0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uZW5kSWYoKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5nZW4uZWxzZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBwYXNzKGNvbmRpdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZmFpbFJlc3VsdCgoMCwgY29kZWdlbl8xLm5vdCkoY29uZGl0aW9uKSwgdm9pZCAwLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsKGNvbmRpdGlvbikgewogICAgICAgIGlmIChjb25kaXRpb24gPT09IHZvaWQgMCkgewogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgICAgaWYgKCF0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uaWYoZmFsc2UpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLmdlbi5pZihjb25kaXRpb24pOwogICAgICAgIHRoaXMuZXJyb3IoKTsKICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICB0aGlzLmdlbi5lbmRJZigpOwogICAgICAgIGVsc2UKICAgICAgICAgIHRoaXMuZ2VuLmVsc2UoKTsKICAgICAgfQogICAgICBmYWlsJGRhdGEoY29uZGl0aW9uKSB7CiAgICAgICAgaWYgKCF0aGlzLiRkYXRhKQogICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbChjb25kaXRpb24pOwogICAgICAgIGNvbnN0IHsgc2NoZW1hQ29kZSB9ID0gdGhpczsKICAgICAgICB0aGlzLmZhaWwoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ICE9PSB1bmRlZmluZWQgJiYgKCR7KDAsIGNvZGVnZW5fMS5vcikodGhpcy5pbnZhbGlkJGRhdGEoKSwgY29uZGl0aW9uKX0pYCk7CiAgICAgIH0KICAgICAgZXJyb3IoYXBwZW5kLCBlcnJvclBhcmFtcywgZXJyb3JQYXRocykgewogICAgICAgIGlmIChlcnJvclBhcmFtcykgewogICAgICAgICAgdGhpcy5zZXRQYXJhbXMoZXJyb3JQYXJhbXMpOwogICAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgICAgIHRoaXMuc2V0UGFyYW1zKHt9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICBfZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKSB7CiAgICAgICAgOwogICAgICAgIChhcHBlbmQgPyBlcnJvcnNfMS5yZXBvcnRFeHRyYUVycm9yIDogZXJyb3JzXzEucmVwb3J0RXJyb3IpKHRoaXMsIHRoaXMuZGVmLmVycm9yLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICAkZGF0YUVycm9yKCkgewogICAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikodGhpcywgdGhpcy5kZWYuJGRhdGFFcnJvciB8fCBlcnJvcnNfMS5rZXl3b3JkJERhdGFFcnJvcik7CiAgICAgIH0KICAgICAgcmVzZXQoKSB7CiAgICAgICAgaWYgKHRoaXMuZXJyc0NvdW50ID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZCAidHJhY2tFcnJvcnMiIHRvIGtleXdvcmQgZGVmaW5pdGlvbicpOwogICAgICAgICgwLCBlcnJvcnNfMS5yZXNldEVycm9yc0NvdW50KSh0aGlzLmdlbiwgdGhpcy5lcnJzQ291bnQpOwogICAgICB9CiAgICAgIG9rKGNvbmQpIHsKICAgICAgICBpZiAoIXRoaXMuYWxsRXJyb3JzKQogICAgICAgICAgdGhpcy5nZW4uaWYoY29uZCk7CiAgICAgIH0KICAgICAgc2V0UGFyYW1zKG9iaiwgYXNzaWduKSB7CiAgICAgICAgaWYgKGFzc2lnbikKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wYXJhbXMsIG9iaik7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5wYXJhbXMgPSBvYmo7CiAgICAgIH0KICAgICAgYmxvY2skZGF0YSh2YWxpZCwgY29kZUJsb2NrLCAkZGF0YVZhbGlkID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHRoaXMuZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICAgIHRoaXMuY2hlY2skZGF0YSh2YWxpZCwgJGRhdGFWYWxpZCk7CiAgICAgICAgICBjb2RlQmxvY2soKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBjaGVjayRkYXRhKHZhbGlkID0gY29kZWdlbl8xLm5pbCwgJGRhdGFWYWxpZCA9IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBpZiAoIXRoaXMuJGRhdGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYUNvZGUsIHNjaGVtYVR5cGUsIGRlZiB9ID0gdGhpczsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5vcikoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ID09PSB1bmRlZmluZWRgLCAkZGF0YVZhbGlkKSk7CiAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgaWYgKHNjaGVtYVR5cGUubGVuZ3RoIHx8IGRlZi52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgICAgZ2VuLmVsc2VJZih0aGlzLmludmFsaWQkZGF0YSgpKTsKICAgICAgICAgIHRoaXMuJGRhdGFFcnJvcigpOwogICAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGdlbi5lbHNlKCk7CiAgICAgIH0KICAgICAgaW52YWxpZCRkYXRhKCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFDb2RlLCBzY2hlbWFUeXBlLCBkZWYsIGl0IH0gPSB0aGlzOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm9yKSh3cm9uZyREYXRhVHlwZSgpLCBpbnZhbGlkJERhdGFTY2hlbWEoKSk7CiAgICAgICAgZnVuY3Rpb24gd3JvbmckRGF0YVR5cGUoKSB7CiAgICAgICAgICBpZiAoc2NoZW1hVHlwZS5sZW5ndGgpIHsKICAgICAgICAgICAgaWYgKCEoc2NoZW1hQ29kZSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSkKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgICBjb25zdCBzdCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkgPyBzY2hlbWFUeXBlIDogW3NjaGVtYVR5cGVdOwogICAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWAkeygwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGVzKShzdCwgc2NoZW1hQ29kZSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCBkYXRhVHlwZV8yLkRhdGFUeXBlLldyb25nKX1gOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGludmFsaWQkRGF0YVNjaGVtYSgpIHsKICAgICAgICAgIGlmIChkZWYudmFsaWRhdGVTY2hlbWEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVTY2hlbWFSZWYgPSBnZW4uc2NvcGVWYWx1ZSgidmFsaWRhdGUkZGF0YSIsIHsgcmVmOiBkZWYudmFsaWRhdGVTY2hlbWEgfSk7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCEke3ZhbGlkYXRlU2NoZW1hUmVmfSgke3NjaGVtYUNvZGV9KWA7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29kZWdlbl8xLm5pbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgc3Vic2NoZW1hKGFwcGwsIHZhbGlkKSB7CiAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gKDAsIHN1YnNjaGVtYV8xLmdldFN1YnNjaGVtYSkodGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYURhdGEpKHN1YnNjaGVtYSwgdGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYU1vZGUpKHN1YnNjaGVtYSwgYXBwbCk7CiAgICAgICAgY29uc3QgbmV4dENvbnRleHQgPSB7IC4uLnRoaXMuaXQsIC4uLnN1YnNjaGVtYSwgaXRlbXM6IHZvaWQgMCwgcHJvcHM6IHZvaWQgMCB9OwogICAgICAgIHN1YnNjaGVtYUNvZGUobmV4dENvbnRleHQsIHZhbGlkKTsKICAgICAgICByZXR1cm4gbmV4dENvbnRleHQ7CiAgICAgIH0KICAgICAgbWVyZ2VFdmFsdWF0ZWQoc2NoZW1hQ3h0LCB0b05hbWUpIHsKICAgICAgICBjb25zdCB7IGl0LCBnZW4gfSA9IHRoaXM7CiAgICAgICAgaWYgKCFpdC5vcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChpdC5wcm9wcyAhPT0gdHJ1ZSAmJiBzY2hlbWFDeHQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBzY2hlbWFDeHQucHJvcHMsIGl0LnByb3BzLCB0b05hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoaXQuaXRlbXMgIT09IHRydWUgJiYgc2NoZW1hQ3h0Lml0ZW1zICE9PSB2b2lkIDApIHsKICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoZW1hQ3h0Lml0ZW1zLCBpdC5pdGVtcywgdG9OYW1lKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hlbWFDeHQsIHZhbGlkKSB7CiAgICAgICAgY29uc3QgeyBpdCwgZ2VuIH0gPSB0aGlzOwogICAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIChpdC5wcm9wcyAhPT0gdHJ1ZSB8fCBpdC5pdGVtcyAhPT0gdHJ1ZSkpIHsKICAgICAgICAgIGdlbi5pZih2YWxpZCwgKCkgPT4gdGhpcy5tZXJnZUV2YWx1YXRlZChzY2hlbWFDeHQsIGNvZGVnZW5fMS5OYW1lKSk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gS2V5d29yZEN4dDsKICAgIGZ1bmN0aW9uIGtleXdvcmRDb2RlKGl0LCBrZXl3b3JkLCBkZWYsIHJ1bGVUeXBlKSB7CiAgICAgIGNvbnN0IGN4dCA9IG5ldyBLZXl3b3JkQ3h0KGl0LCBkZWYsIGtleXdvcmQpOwogICAgICBpZiAoImNvZGUiIGluIGRlZikgewogICAgICAgIGRlZi5jb2RlKGN4dCwgcnVsZVR5cGUpOwogICAgICB9IGVsc2UgaWYgKGN4dC4kZGF0YSAmJiBkZWYudmFsaWRhdGUpIHsKICAgICAgICAoMCwga2V5d29yZF8xLmZ1bmNLZXl3b3JkQ29kZSkoY3h0LCBkZWYpOwogICAgICB9IGVsc2UgaWYgKCJtYWNybyIgaW4gZGVmKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5tYWNyb0tleXdvcmRDb2RlKShjeHQsIGRlZik7CiAgICAgIH0gZWxzZSBpZiAoZGVmLmNvbXBpbGUgfHwgZGVmLnZhbGlkYXRlKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5mdW5jS2V5d29yZENvZGUpKGN4dCwgZGVmKTsKICAgICAgfQogICAgfQogICAgdmFyIEpTT05fUE9JTlRFUiA9IC9eXC8oPzpbXn5dfH4wfH4xKSokLzsKICAgIHZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXihbMC05XSspKCN8XC8oPzpbXn5dfH4wfH4xKSopPyQvOwogICAgZnVuY3Rpb24gZ2V0RGF0YSgkZGF0YSwgeyBkYXRhTGV2ZWwsIGRhdGFOYW1lcywgZGF0YVBhdGhBcnIgfSkgewogICAgICBsZXQganNvblBvaW50ZXI7CiAgICAgIGxldCBkYXRhOwogICAgICBpZiAoJGRhdGEgPT09ICIiKQogICAgICAgIHJldHVybiBuYW1lc18xLmRlZmF1bHQucm9vdERhdGE7CiAgICAgIGlmICgkZGF0YVswXSA9PT0gIi8iKSB7CiAgICAgICAgaWYgKCFKU09OX1BPSU5URVIudGVzdCgkZGF0YSkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSlNPTi1wb2ludGVyOiAkeyRkYXRhfWApOwogICAgICAgIGpzb25Qb2ludGVyID0gJGRhdGE7CiAgICAgICAgZGF0YSA9IG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gUkVMQVRJVkVfSlNPTl9QT0lOVEVSLmV4ZWMoJGRhdGEpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKU09OLXBvaW50ZXI6ICR7JGRhdGF9YCk7CiAgICAgICAgY29uc3QgdXAgPSArbWF0Y2hlc1sxXTsKICAgICAgICBqc29uUG9pbnRlciA9IG1hdGNoZXNbMl07CiAgICAgICAgaWYgKGpzb25Qb2ludGVyID09PSAiIyIpIHsKICAgICAgICAgIGlmICh1cCA+PSBkYXRhTGV2ZWwpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1zZygicHJvcGVydHkvaW5kZXgiLCB1cCkpOwogICAgICAgICAgcmV0dXJuIGRhdGFQYXRoQXJyW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICB9CiAgICAgICAgaWYgKHVwID4gZGF0YUxldmVsKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTXNnKCJkYXRhIiwgdXApKTsKICAgICAgICBkYXRhID0gZGF0YU5hbWVzW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICBpZiAoIWpzb25Qb2ludGVyKQogICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgIH0KICAgICAgbGV0IGV4cHIgPSBkYXRhOwogICAgICBjb25zdCBzZWdtZW50cyA9IGpzb25Qb2ludGVyLnNwbGl0KCIvIik7CiAgICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBzZWdtZW50cykgewogICAgICAgIGlmIChzZWdtZW50KSB7CiAgICAgICAgICBkYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KSgoMCwgdXRpbF8xLnVuZXNjYXBlSnNvblBvaW50ZXIpKHNlZ21lbnQpKX1gOwogICAgICAgICAgZXhwciA9ICgwLCBjb2RlZ2VuXzEuXylgJHtleHByfSAmJiAke2RhdGF9YDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGV4cHI7CiAgICAgIGZ1bmN0aW9uIGVycm9yTXNnKHBvaW50ZXJUeXBlLCB1cCkgewogICAgICAgIHJldHVybiBgQ2Fubm90IGFjY2VzcyAke3BvaW50ZXJUeXBlfSAke3VwfSBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJHtkYXRhTGV2ZWx9YDsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0RGF0YSA9IGdldERhdGE7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3ZhbGlkYXRpb25fZXJyb3IuanMKdmFyIHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgVmFsaWRhdGlvbkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKGVycm9ycykgewogICAgICAgIHN1cGVyKCJ2YWxpZGF0aW9uIGZhaWxlZCIpOwogICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzOwogICAgICAgIHRoaXMuYWp2ID0gdGhpcy52YWxpZGF0aW9uID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBWYWxpZGF0aW9uRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3JlZl9lcnJvci5qcwp2YXIgcmVxdWlyZV9yZWZfZXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVmX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgTWlzc2luZ1JlZkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKHJlc29sdmVyLCBiYXNlSWQsIHJlZiwgbXNnKSB7CiAgICAgICAgc3VwZXIobXNnIHx8IGBjYW4ndCByZXNvbHZlIHJlZmVyZW5jZSAke3JlZn0gZnJvbSBpZCAke2Jhc2VJZH1gKTsKICAgICAgICB0aGlzLm1pc3NpbmdSZWYgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHJlc29sdmVyLCBiYXNlSWQsIHJlZik7CiAgICAgICAgdGhpcy5taXNzaW5nU2NoZW1hID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkocmVzb2x2ZXIsIHRoaXMubWlzc2luZ1JlZikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IE1pc3NpbmdSZWZFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvaW5kZXguanMKdmFyIHJlcXVpcmVfY29tcGlsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGV4cG9ydHMyLnJlc29sdmVSZWYgPSBleHBvcnRzMi5jb21waWxlU2NoZW1hID0gZXhwb3J0czIuU2NoZW1hRW52ID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIHZhciBTY2hlbWFFbnYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGVudikgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLnJlZnMgPSB7fTsKICAgICAgICB0aGlzLmR5bmFtaWNBbmNob3JzID0ge307CiAgICAgICAgbGV0IHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBlbnYuc2NoZW1hID09ICJvYmplY3QiKQogICAgICAgICAgc2NoZW1hMiA9IGVudi5zY2hlbWE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBlbnYuc2NoZW1hOwogICAgICAgIHRoaXMuc2NoZW1hSWQgPSBlbnYuc2NoZW1hSWQ7CiAgICAgICAgdGhpcy5yb290ID0gZW52LnJvb3QgfHwgdGhpczsKICAgICAgICB0aGlzLmJhc2VJZCA9IChfYSA9IGVudi5iYXNlSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICgwLCByZXNvbHZlXzEubm9ybWFsaXplSWQpKHNjaGVtYTIgPT09IG51bGwgfHwgc2NoZW1hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hMltlbnYuc2NoZW1hSWQgfHwgIiRpZCJdKTsKICAgICAgICB0aGlzLnNjaGVtYVBhdGggPSBlbnYuc2NoZW1hUGF0aDsKICAgICAgICB0aGlzLmxvY2FsUmVmcyA9IGVudi5sb2NhbFJlZnM7CiAgICAgICAgdGhpcy5tZXRhID0gZW52Lm1ldGE7CiAgICAgICAgdGhpcy4kYXN5bmMgPSBzY2hlbWEyID09PSBudWxsIHx8IHNjaGVtYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYTIuJGFzeW5jOwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hRW52ID0gU2NoZW1hRW52OwogICAgZnVuY3Rpb24gY29tcGlsZVNjaGVtYShzY2gpIHsKICAgICAgY29uc3QgX3NjaCA9IGdldENvbXBpbGluZ1NjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICAgIGlmIChfc2NoKQogICAgICAgIHJldHVybiBfc2NoOwogICAgICBjb25zdCByb290SWQgPSAoMCwgcmVzb2x2ZV8xLmdldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHNjaC5yb290LmJhc2VJZCk7CiAgICAgIGNvbnN0IHsgZXM1LCBsaW5lcyB9ID0gdGhpcy5vcHRzLmNvZGU7CiAgICAgIGNvbnN0IHsgb3duUHJvcGVydGllcyB9ID0gdGhpcy5vcHRzOwogICAgICBjb25zdCBnZW4gPSBuZXcgY29kZWdlbl8xLkNvZGVHZW4odGhpcy5zY29wZSwgeyBlczUsIGxpbmVzLCBvd25Qcm9wZXJ0aWVzIH0pOwogICAgICBsZXQgX1ZhbGlkYXRpb25FcnJvcjsKICAgICAgaWYgKHNjaC4kYXN5bmMpIHsKICAgICAgICBfVmFsaWRhdGlvbkVycm9yID0gZ2VuLnNjb3BlVmFsdWUoIkVycm9yIiwgewogICAgICAgICAgcmVmOiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdCwKICAgICAgICAgIGNvZGU6ICgwLCBjb2RlZ2VuXzEuXylgcmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yIikuZGVmYXVsdGAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZGF0ZU5hbWUgPSBnZW4uc2NvcGVOYW1lKCJ2YWxpZGF0ZSIpOwogICAgICBzY2gudmFsaWRhdGVOYW1lID0gdmFsaWRhdGVOYW1lOwogICAgICBjb25zdCBzY2hlbWFDeHQgPSB7CiAgICAgICAgZ2VuLAogICAgICAgIGFsbEVycm9yczogdGhpcy5vcHRzLmFsbEVycm9ycywKICAgICAgICBkYXRhOiBuYW1lc18xLmRlZmF1bHQuZGF0YSwKICAgICAgICBwYXJlbnREYXRhOiBuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwKICAgICAgICBwYXJlbnREYXRhUHJvcGVydHk6IG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksCiAgICAgICAgZGF0YU5hbWVzOiBbbmFtZXNfMS5kZWZhdWx0LmRhdGFdLAogICAgICAgIGRhdGFQYXRoQXJyOiBbY29kZWdlbl8xLm5pbF0sCiAgICAgICAgLy8gVE9ETyBjYW4gaXRzIGxlbmd0aCBiZSB1c2VkIGFzIGRhdGFMZXZlbCBpZiBuaWwgaXMgcmVtb3ZlZD8KICAgICAgICBkYXRhTGV2ZWw6IDAsCiAgICAgICAgZGF0YVR5cGVzOiBbXSwKICAgICAgICBkZWZpbmVkUHJvcGVydGllczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwKICAgICAgICB0b3BTY2hlbWFSZWY6IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCB0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUgPyB7IHJlZjogc2NoLnNjaGVtYSwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaC5zY2hlbWEpIH0gOiB7IHJlZjogc2NoLnNjaGVtYSB9KSwKICAgICAgICB2YWxpZGF0ZU5hbWUsCiAgICAgICAgVmFsaWRhdGlvbkVycm9yOiBfVmFsaWRhdGlvbkVycm9yLAogICAgICAgIHNjaGVtYTogc2NoLnNjaGVtYSwKICAgICAgICBzY2hlbWFFbnY6IHNjaCwKICAgICAgICByb290SWQsCiAgICAgICAgYmFzZUlkOiBzY2guYmFzZUlkIHx8IHJvb3RJZCwKICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgIGVyclNjaGVtYVBhdGg6IHNjaC5zY2hlbWFQYXRoIHx8ICh0aGlzLm9wdHMuanRkID8gIiIgOiAiIyIpLAogICAgICAgIGVycm9yUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAiImAsCiAgICAgICAgb3B0czogdGhpcy5vcHRzLAogICAgICAgIHNlbGY6IHRoaXMKICAgICAgfTsKICAgICAgbGV0IHNvdXJjZUNvZGU7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fY29tcGlsYXRpb25zLmFkZChzY2gpOwogICAgICAgICgwLCB2YWxpZGF0ZV8xLnZhbGlkYXRlRnVuY3Rpb25Db2RlKShzY2hlbWFDeHQpOwogICAgICAgIGdlbi5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7CiAgICAgICAgY29uc3QgdmFsaWRhdGVDb2RlID0gZ2VuLnRvU3RyaW5nKCk7CiAgICAgICAgc291cmNlQ29kZSA9IGAke2dlbi5zY29wZVJlZnMobmFtZXNfMS5kZWZhdWx0LnNjb3BlKX1yZXR1cm4gJHt2YWxpZGF0ZUNvZGV9YDsKICAgICAgICBpZiAodGhpcy5vcHRzLmNvZGUucHJvY2VzcykKICAgICAgICAgIHNvdXJjZUNvZGUgPSB0aGlzLm9wdHMuY29kZS5wcm9jZXNzKHNvdXJjZUNvZGUsIHNjaCk7CiAgICAgICAgY29uc3QgbWFrZVZhbGlkYXRlID0gbmV3IEZ1bmN0aW9uKGAke25hbWVzXzEuZGVmYXVsdC5zZWxmfWAsIGAke25hbWVzXzEuZGVmYXVsdC5zY29wZX1gLCBzb3VyY2VDb2RlKTsKICAgICAgICBjb25zdCB2YWxpZGF0ZSA9IG1ha2VWYWxpZGF0ZSh0aGlzLCB0aGlzLnNjb3BlLmdldCgpKTsKICAgICAgICB0aGlzLnNjb3BlLnZhbHVlKHZhbGlkYXRlTmFtZSwgeyByZWY6IHZhbGlkYXRlIH0pOwogICAgICAgIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7CiAgICAgICAgdmFsaWRhdGUuc2NoZW1hID0gc2NoLnNjaGVtYTsKICAgICAgICB2YWxpZGF0ZS5zY2hlbWFFbnYgPSBzY2g7CiAgICAgICAgaWYgKHNjaC4kYXN5bmMpCiAgICAgICAgICB2YWxpZGF0ZS4kYXN5bmMgPSB0cnVlOwogICAgICAgIGlmICh0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUpIHsKICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZSA9IHsgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZUNvZGUsIHNjb3BlVmFsdWVzOiBnZW4uX3ZhbHVlcyB9OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vcHRzLnVuZXZhbHVhdGVkKSB7CiAgICAgICAgICBjb25zdCB7IHByb3BzLCBpdGVtcyB9ID0gc2NoZW1hQ3h0OwogICAgICAgICAgdmFsaWRhdGUuZXZhbHVhdGVkID0gewogICAgICAgICAgICBwcm9wczogcHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IHByb3BzLAogICAgICAgICAgICBpdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IGl0ZW1zLAogICAgICAgICAgICBkeW5hbWljUHJvcHM6IHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUsCiAgICAgICAgICAgIGR5bmFtaWNJdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0ZS5zb3VyY2UpCiAgICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZS5ldmFsdWF0ZWQgPSAoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkodmFsaWRhdGUuZXZhbHVhdGVkKTsKICAgICAgICB9CiAgICAgICAgc2NoLnZhbGlkYXRlID0gdmFsaWRhdGU7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGRlbGV0ZSBzY2gudmFsaWRhdGU7CiAgICAgICAgZGVsZXRlIHNjaC52YWxpZGF0ZU5hbWU7CiAgICAgICAgaWYgKHNvdXJjZUNvZGUpCiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigiRXJyb3IgY29tcGlsaW5nIHNjaGVtYSwgZnVuY3Rpb24gY29kZToiLCBzb3VyY2VDb2RlKTsKICAgICAgICB0aHJvdyBlOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucy5kZWxldGUoc2NoKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY29tcGlsZVNjaGVtYSA9IGNvbXBpbGVTY2hlbWE7CiAgICBmdW5jdGlvbiByZXNvbHZlUmVmKHJvb3QsIGJhc2VJZCwgcmVmKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgcmVmKTsKICAgICAgY29uc3Qgc2NoT3JGdW5jID0gcm9vdC5yZWZzW3JlZl07CiAgICAgIGlmIChzY2hPckZ1bmMpCiAgICAgICAgcmV0dXJuIHNjaE9yRnVuYzsKICAgICAgbGV0IF9zY2ggPSByZXNvbHZlLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHNjaGVtYTIgPSAoX2EgPSByb290LmxvY2FsUmVmcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3JlZl07CiAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGlmIChzY2hlbWEyKQogICAgICAgICAgX3NjaCA9IG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkKICAgICAgICByZXR1cm47CiAgICAgIHJldHVybiByb290LnJlZnNbcmVmXSA9IGlubGluZU9yQ29tcGlsZS5jYWxsKHRoaXMsIF9zY2gpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVJlZiA9IHJlc29sdmVSZWY7CiAgICBmdW5jdGlvbiBpbmxpbmVPckNvbXBpbGUoc2NoKSB7CiAgICAgIGlmICgoMCwgcmVzb2x2ZV8xLmlubGluZVJlZikoc2NoLnNjaGVtYSwgdGhpcy5vcHRzLmlubGluZVJlZnMpKQogICAgICAgIHJldHVybiBzY2guc2NoZW1hOwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gc2NoIDogY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRDb21waWxpbmdTY2hlbWEoc2NoRW52KSB7CiAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHRoaXMuX2NvbXBpbGF0aW9ucykgewogICAgICAgIGlmIChzYW1lU2NoZW1hRW52KHNjaCwgc2NoRW52KSkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGdldENvbXBpbGluZ1NjaGVtYTsKICAgIGZ1bmN0aW9uIHNhbWVTY2hlbWFFbnYoczEsIHMyKSB7CiAgICAgIHJldHVybiBzMS5zY2hlbWEgPT09IHMyLnNjaGVtYSAmJiBzMS5yb290ID09PSBzMi5yb290ICYmIHMxLmJhc2VJZCA9PT0gczIuYmFzZUlkOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShyb290LCByZWYpIHsKICAgICAgbGV0IHNjaDsKICAgICAgd2hpbGUgKHR5cGVvZiAoc2NoID0gdGhpcy5yZWZzW3JlZl0pID09ICJzdHJpbmciKQogICAgICAgIHJlZiA9IHNjaDsKICAgICAgcmV0dXJuIHNjaCB8fCB0aGlzLnNjaGVtYXNbcmVmXSB8fCByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEocm9vdCwgcmVmKSB7CiAgICAgIGNvbnN0IHAgPSB0aGlzLm9wdHMudXJpUmVzb2x2ZXIucGFyc2UocmVmKTsKICAgICAgY29uc3QgcmVmUGF0aCA9ICgwLCByZXNvbHZlXzEuX2dldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHApOwogICAgICBsZXQgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLCByb290LmJhc2VJZCwgdm9pZCAwKTsKICAgICAgaWYgKE9iamVjdC5rZXlzKHJvb3Quc2NoZW1hKS5sZW5ndGggPiAwICYmIHJlZlBhdGggPT09IGJhc2VJZCkgewogICAgICAgIHJldHVybiBnZXRKc29uUG9pbnRlci5jYWxsKHRoaXMsIHAsIHJvb3QpOwogICAgICB9CiAgICAgIGNvbnN0IGlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmUGF0aCk7CiAgICAgIGNvbnN0IHNjaE9yUmVmID0gdGhpcy5yZWZzW2lkXSB8fCB0aGlzLnNjaGVtYXNbaWRdOwogICAgICBpZiAodHlwZW9mIHNjaE9yUmVmID09ICJzdHJpbmciKSB7CiAgICAgICAgY29uc3Qgc2NoID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHNjaE9yUmVmKTsKICAgICAgICBpZiAodHlwZW9mIChzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2guc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoKTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIChzY2hPclJlZiA9PT0gbnVsbCB8fCBzY2hPclJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoT3JSZWYuc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgcmV0dXJuOwogICAgICBpZiAoIXNjaE9yUmVmLnZhbGlkYXRlKQogICAgICAgIGNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2hPclJlZik7CiAgICAgIGlmIChpZCA9PT0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmKSkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyIH0gPSBzY2hPclJlZjsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgY29uc3Qgc2NoSWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICBpZiAoc2NoSWQpCiAgICAgICAgICBiYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHRoaXMub3B0cy51cmlSZXNvbHZlciwgYmFzZUlkLCBzY2hJZCk7CiAgICAgICAgcmV0dXJuIG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoT3JSZWYpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IHJlc29sdmVTY2hlbWE7CiAgICB2YXIgUFJFVkVOVF9TQ09QRV9DSEFOR0UgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJwcm9wZXJ0aWVzIiwKICAgICAgInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgImVudW0iLAogICAgICAiZGVwZW5kZW5jaWVzIiwKICAgICAgImRlZmluaXRpb25zIgogICAgXSk7CiAgICBmdW5jdGlvbiBnZXRKc29uUG9pbnRlcihwYXJzZWRSZWYsIHsgYmFzZUlkLCBzY2hlbWE6IHNjaGVtYTIsIHJvb3QgfSkgewogICAgICB2YXIgX2E7CiAgICAgIGlmICgoKF9hID0gcGFyc2VkUmVmLmZyYWdtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF0pICE9PSAiLyIpCiAgICAgICAgcmV0dXJuOwogICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFyc2VkUmVmLmZyYWdtZW50LnNsaWNlKDEpLnNwbGl0KCIvIikpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIikKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBwYXJ0U2NoZW1hID0gc2NoZW1hMlsoMCwgdXRpbF8xLnVuZXNjYXBlRnJhZ21lbnQpKHBhcnQpXTsKICAgICAgICBpZiAocGFydFNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHNjaGVtYTIgPSBwYXJ0U2NoZW1hOwogICAgICAgIGNvbnN0IHNjaElkID0gdHlwZW9mIHNjaGVtYTIgPT09ICJvYmplY3QiICYmIHNjaGVtYTJbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICBpZiAoIVBSRVZFTlRfU0NPUEVfQ0hBTkdFLmhhcyhwYXJ0KSAmJiBzY2hJZCkgewogICAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoSWQpOwogICAgICAgIH0KICAgICAgfQogICAgICBsZXQgZW52OwogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgIT0gImJvb2xlYW4iICYmIHNjaGVtYTIuJHJlZiAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgdGhpcy5SVUxFUykpIHsKICAgICAgICBjb25zdCAkcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoZW1hMi4kcmVmKTsKICAgICAgICBlbnYgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgJHJlZik7CiAgICAgIH0KICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICBlbnYgPSBlbnYgfHwgbmV3IFNjaGVtYUVudih7IHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hSWQsIHJvb3QsIGJhc2VJZCB9KTsKICAgICAgaWYgKGVudi5zY2hlbWEgIT09IGVudi5yb290LnNjaGVtYSkKICAgICAgICByZXR1cm4gZW52OwogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24KdmFyIHJlcXVpcmVfZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRpZDogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIyIsCiAgICAgIGRlc2NyaXB0aW9uOiAiTWV0YS1zY2hlbWEgZm9yICRkYXRhIHJlZmVyZW5jZSAoSlNPTiBBbnlTY2hlbWEgZXh0ZW5zaW9uIHByb3Bvc2FsKSIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICByZXF1aXJlZDogWyIkZGF0YSJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGRhdGE6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgYW55T2Y6IFt7IGZvcm1hdDogInJlbGF0aXZlLWpzb24tcG9pbnRlciIgfSwgeyBmb3JtYXQ6ICJqc29uLXBvaW50ZXIiIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzCnZhciByZXF1aXJlX3Njb3BlZENoYXJzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEhFWCA9IHsKICAgICAgMDogMCwKICAgICAgMTogMSwKICAgICAgMjogMiwKICAgICAgMzogMywKICAgICAgNDogNCwKICAgICAgNTogNSwKICAgICAgNjogNiwKICAgICAgNzogNywKICAgICAgODogOCwKICAgICAgOTogOSwKICAgICAgYTogMTAsCiAgICAgIEE6IDEwLAogICAgICBiOiAxMSwKICAgICAgQjogMTEsCiAgICAgIGM6IDEyLAogICAgICBDOiAxMiwKICAgICAgZDogMTMsCiAgICAgIEQ6IDEzLAogICAgICBlOiAxNCwKICAgICAgRTogMTQsCiAgICAgIGY6IDE1LAogICAgICBGOiAxNQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgSEVYCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC11cmktbnBtLTMuMC4zLTA4NzQwNzI2MjUtMTAuemlwL25vZGVfbW9kdWxlcy9mYXN0LXVyaS9saWIvdXRpbHMuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBIRVggfSA9IHJlcXVpcmVfc2NvcGVkQ2hhcnMoKTsKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUlQdjQoaG9zdCkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICIuIikgPCAzKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY0OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkL3UpIHx8IFtdOwogICAgICBjb25zdCBbYWRkcmVzc10gPSBtYXRjaGVzOwogICAgICBpZiAoYWRkcmVzcykgewogICAgICAgIHJldHVybiB7IGhvc3Q6IHN0cmlwTGVhZGluZ1plcm9zKGFkZHJlc3MsICIuIiksIGlzSVBWNDogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNDogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGlucHV0LCBrZWVwWmVybyA9IGZhbHNlKSB7CiAgICAgIGxldCBhY2MgPSAiIjsKICAgICAgbGV0IHN0cmlwID0gdHJ1ZTsKICAgICAgZm9yIChjb25zdCBjIG9mIGlucHV0KSB7CiAgICAgICAgaWYgKEhFWFtjXSA9PT0gdm9pZCAwKSByZXR1cm4gdm9pZCAwOwogICAgICAgIGlmIChjICE9PSAiMCIgJiYgc3RyaXAgPT09IHRydWUpIHN0cmlwID0gZmFsc2U7CiAgICAgICAgaWYgKCFzdHJpcCkgYWNjICs9IGM7CiAgICAgIH0KICAgICAgaWYgKGtlZXBaZXJvICYmIGFjYy5sZW5ndGggPT09IDApIGFjYyA9ICIwIjsKICAgICAgcmV0dXJuIGFjYzsKICAgIH0KICAgIGZ1bmN0aW9uIGdldElQVjYoaW5wdXQpIHsKICAgICAgbGV0IHRva2VuQ291bnQgPSAwOwogICAgICBjb25zdCBvdXRwdXQgPSB7IGVycm9yOiBmYWxzZSwgYWRkcmVzczogIiIsIHpvbmU6ICIiIH07CiAgICAgIGNvbnN0IGFkZHJlc3MgPSBbXTsKICAgICAgY29uc3QgYnVmZmVyID0gW107CiAgICAgIGxldCBpc1pvbmUgPSBmYWxzZTsKICAgICAgbGV0IGVuZGlwdjZFbmNvdW50ZXJlZCA9IGZhbHNlOwogICAgICBsZXQgZW5kSXB2NiA9IGZhbHNlOwogICAgICBmdW5jdGlvbiBjb25zdW1lKCkgewogICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7CiAgICAgICAgICBpZiAoaXNab25lID09PSBmYWxzZSkgewogICAgICAgICAgICBjb25zdCBoZXggPSBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQoYnVmZmVyKTsKICAgICAgICAgICAgaWYgKGhleCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgYWRkcmVzcy5wdXNoKGhleCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgb3V0cHV0LmVycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3Vyc29yID0gaW5wdXRbaV07CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIlsiIHx8IGN1cnNvciA9PT0gIl0iKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIjoiKSB7CiAgICAgICAgICBpZiAoZW5kaXB2NkVuY291bnRlcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgIGVuZElwdjYgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFjb25zdW1lKCkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICB0b2tlbkNvdW50Kys7CiAgICAgICAgICBhZGRyZXNzLnB1c2goIjoiKTsKICAgICAgICAgIGlmICh0b2tlbkNvdW50ID4gNykgewogICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChpIC0gMSA+PSAwICYmIGlucHV0W2kgLSAxXSA9PT0gIjoiKSB7CiAgICAgICAgICAgIGVuZGlwdjZFbmNvdW50ZXJlZCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciA9PT0gIiUiKSB7CiAgICAgICAgICBpZiAoIWNvbnN1bWUoKSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlzWm9uZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKGN1cnNvcik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICBpZiAoaXNab25lKSB7CiAgICAgICAgICBvdXRwdXQuem9uZSA9IGJ1ZmZlci5qb2luKCIiKTsKICAgICAgICB9IGVsc2UgaWYgKGVuZElwdjYpIHsKICAgICAgICAgIGFkZHJlc3MucHVzaChidWZmZXIuam9pbigiIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhZGRyZXNzLnB1c2goc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGJ1ZmZlcikpOwogICAgICAgIH0KICAgICAgfQogICAgICBvdXRwdXQuYWRkcmVzcyA9IGFkZHJlc3Muam9pbigiIik7CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVJUHY2KGhvc3QsIG9wdHMgPSB7fSkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICI6IikgPCAyKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY2OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IGlwdjYgPSBnZXRJUFY2KGhvc3QpOwogICAgICBpZiAoIWlwdjYuZXJyb3IpIHsKICAgICAgICBsZXQgbmV3SG9zdCA9IGlwdjYuYWRkcmVzczsKICAgICAgICBsZXQgZXNjYXBlZEhvc3QgPSBpcHY2LmFkZHJlc3M7CiAgICAgICAgaWYgKGlwdjYuem9uZSkgewogICAgICAgICAgbmV3SG9zdCArPSAiJSIgKyBpcHY2LnpvbmU7CiAgICAgICAgICBlc2NhcGVkSG9zdCArPSAiJTI1IiArIGlwdjYuem9uZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgaG9zdDogbmV3SG9zdCwgZXNjYXBlZEhvc3QsIGlzSVBWNjogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNjogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaXBMZWFkaW5nWmVyb3Moc3RyMiwgdG9rZW4pIHsKICAgICAgbGV0IG91dCA9ICIiOwogICAgICBsZXQgc2tpcCA9IHRydWU7CiAgICAgIGNvbnN0IGwgPSBzdHIyLmxlbmd0aDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gc3RyMltpXTsKICAgICAgICBpZiAoYyA9PT0gIjAiICYmIHNraXApIHsKICAgICAgICAgIGlmIChpICsgMSA8PSBsICYmIHN0cjJbaSArIDFdID09PSB0b2tlbiB8fCBpICsgMSA9PT0gbCkgewogICAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoYyA9PT0gdG9rZW4pIHsKICAgICAgICAgICAgc2tpcCA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBza2lwID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbmRUb2tlbihzdHIyLCB0b2tlbikgewogICAgICBsZXQgaW5kID0gMDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHN0cjJbaV0gPT09IHRva2VuKSBpbmQrKzsKICAgICAgfQogICAgICByZXR1cm4gaW5kOwogICAgfQogICAgdmFyIFJEUzEgPSAvXlwuXC4/XC8vdTsKICAgIHZhciBSRFMyID0gL15cL1wuKD86XC98JCkvdTsKICAgIHZhciBSRFMzID0gL15cL1wuXC4oPzpcL3wkKS91OwogICAgdmFyIFJEUzUgPSAvXlwvPyg/Oi58XG4pKj8oPz1cL3wkKS91OwogICAgZnVuY3Rpb24gcmVtb3ZlRG90U2VnbWVudHMoaW5wdXQpIHsKICAgICAgY29uc3Qgb3V0cHV0ID0gW107CiAgICAgIHdoaWxlIChpbnB1dC5sZW5ndGgpIHsKICAgICAgICBpZiAoaW5wdXQubWF0Y2goUkRTMSkpIHsKICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMxLCAiIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMyKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzIsICIvIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMzKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzMsICIvIik7CiAgICAgICAgICBvdXRwdXQucG9wKCk7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gIi4iIHx8IGlucHV0ID09PSAiLi4iKSB7CiAgICAgICAgICBpbnB1dCA9ICIiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBpbSA9IGlucHV0Lm1hdGNoKFJEUzUpOwogICAgICAgICAgaWYgKGltKSB7CiAgICAgICAgICAgIGNvbnN0IHMgPSBpbVswXTsKICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZShzLmxlbmd0aCk7CiAgICAgICAgICAgIG91dHB1dC5wdXNoKHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGRvdCBzZWdtZW50IGNvbmRpdGlvbiIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gb3V0cHV0LmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgZXNjKSB7CiAgICAgIGNvbnN0IGZ1bmMgPSBlc2MgIT09IHRydWUgPyBlc2NhcGUgOiB1bmVzY2FwZTsKICAgICAgaWYgKGNvbXBvbmVudHMuc2NoZW1lICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnNjaGVtZSA9IGZ1bmMoY29tcG9uZW50cy5zY2hlbWUpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnVzZXJpbmZvICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnVzZXJpbmZvID0gZnVuYyhjb21wb25lbnRzLnVzZXJpbmZvKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5ob3N0ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLmhvc3QgPSBmdW5jKGNvbXBvbmVudHMuaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZnVuYyhjb21wb25lbnRzLnBhdGgpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnF1ZXJ5ID0gZnVuYyhjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5mcmFnbWVudCA9IGZ1bmMoY29tcG9uZW50cy5mcmFnbWVudCk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiByZWNvbXBvc2VBdXRob3JpdHkoY29tcG9uZW50cywgb3B0aW9ucykgewogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgaWYgKGNvbXBvbmVudHMudXNlcmluZm8gIT09IHZvaWQgMCkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMudXNlcmluZm8pOwogICAgICAgIHVyaVRva2Vucy5wdXNoKCJAIik7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgbGV0IGhvc3QgPSB1bmVzY2FwZShjb21wb25lbnRzLmhvc3QpOwogICAgICAgIGNvbnN0IGlwVjRyZXMgPSBub3JtYWxpemVJUHY0KGhvc3QpOwogICAgICAgIGlmIChpcFY0cmVzLmlzSVBWNCkgewogICAgICAgICAgaG9zdCA9IGlwVjRyZXMuaG9zdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3QgaXBWNnJlcyA9IG5vcm1hbGl6ZUlQdjYoaXBWNHJlcy5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICBpZiAoaXBWNnJlcy5pc0lQVjYgPT09IHRydWUpIHsKICAgICAgICAgICAgaG9zdCA9IGBbJHtpcFY2cmVzLmVzY2FwZWRIb3N0fV1gOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaG9zdCA9IGNvbXBvbmVudHMuaG9zdDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXJpVG9rZW5zLnB1c2goaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJudW1iZXIiIHx8IHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIjoiKTsKICAgICAgICB1cmlUb2tlbnMucHVzaChTdHJpbmcoY29tcG9uZW50cy5wb3J0KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaVRva2Vucy5sZW5ndGggPyB1cmlUb2tlbnMuam9pbigiIikgOiB2b2lkIDA7CiAgICB9CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgIHJlY29tcG9zZUF1dGhvcml0eSwKICAgICAgbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcsCiAgICAgIHJlbW92ZURvdFNlZ21lbnRzLAogICAgICBub3JtYWxpemVJUHY0LAogICAgICBub3JtYWxpemVJUHY2LAogICAgICBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3NjaGVtZXMuanMKdmFyIHJlcXVpcmVfc2NoZW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi9zY2hlbWVzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVVSURfUkVHID0gL15bXGRhLWZdezh9XGItW1xkYS1mXXs0fVxiLVtcZGEtZl17NH1cYi1bXGRhLWZdezR9XGItW1xkYS1mXXsxMn0kL2l1OwogICAgdmFyIFVSTl9SRUcgPSAvKFtcZGEtel1bXGRcLWEtel17MCwzMX0pOigoPzpbXHchJCcoKSorLFwtLjo7PUBdfCVbXGRhLWZdezJ9KSspL2l1OwogICAgZnVuY3Rpb24gaXNTZWN1cmUod3NDb21wb25lbnRzKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iID8gd3NDb21wb25lbnRzLnNlY3VyZSA6IFN0cmluZyh3c0NvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAid3NzIjsKICAgIH0KICAgIGZ1bmN0aW9uIGh0dHBQYXJzZShjb21wb25lbnRzKSB7CiAgICAgIGlmICghY29tcG9uZW50cy5ob3N0KSB7CiAgICAgICAgY29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgIkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LiI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBodHRwU2VyaWFsaXplKGNvbXBvbmVudHMpIHsKICAgICAgY29uc3Qgc2VjdXJlID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAiaHR0cHMiOwogICAgICBpZiAoY29tcG9uZW50cy5wb3J0ID09PSAoc2VjdXJlID8gNDQzIDogODApIHx8IGNvbXBvbmVudHMucG9ydCA9PT0gIiIpIHsKICAgICAgICBjb21wb25lbnRzLnBvcnQgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKCFjb21wb25lbnRzLnBhdGgpIHsKICAgICAgICBjb21wb25lbnRzLnBhdGggPSAiLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB3c1BhcnNlKHdzQ29tcG9uZW50cykgewogICAgICB3c0NvbXBvbmVudHMuc2VjdXJlID0gaXNTZWN1cmUod3NDb21wb25lbnRzKTsKICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9ICh3c0NvbXBvbmVudHMucGF0aCB8fCAiLyIpICsgKHdzQ29tcG9uZW50cy5xdWVyeSA/ICI/IiArIHdzQ29tcG9uZW50cy5xdWVyeSA6ICIiKTsKICAgICAgd3NDb21wb25lbnRzLnBhdGggPSB2b2lkIDA7CiAgICAgIHdzQ29tcG9uZW50cy5xdWVyeSA9IHZvaWQgMDsKICAgICAgcmV0dXJuIHdzQ29tcG9uZW50czsKICAgIH0KICAgIGZ1bmN0aW9uIHdzU2VyaWFsaXplKHdzQ29tcG9uZW50cykgewogICAgICBpZiAod3NDb21wb25lbnRzLnBvcnQgPT09IChpc1NlY3VyZSh3c0NvbXBvbmVudHMpID8gNDQzIDogODApIHx8IHdzQ29tcG9uZW50cy5wb3J0ID09PSAiIikgewogICAgICAgIHdzQ29tcG9uZW50cy5wb3J0ID0gdm9pZCAwOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgd3NDb21wb25lbnRzLnNjaGVtZSA9IHdzQ29tcG9uZW50cy5zZWN1cmUgPyAid3NzIiA6ICJ3cyI7CiAgICAgICAgd3NDb21wb25lbnRzLnNlY3VyZSA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAod3NDb21wb25lbnRzLnJlc291cmNlTmFtZSkgewogICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lLnNwbGl0KCI/Iik7CiAgICAgICAgd3NDb21wb25lbnRzLnBhdGggPSBwYXRoICYmIHBhdGggIT09ICIvIiA/IHBhdGggOiB2b2lkIDA7CiAgICAgICAgd3NDb21wb25lbnRzLnF1ZXJ5ID0gcXVlcnk7CiAgICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9IHZvaWQgMDsKICAgICAgfQogICAgICB3c0NvbXBvbmVudHMuZnJhZ21lbnQgPSB2b2lkIDA7CiAgICAgIHJldHVybiB3c0NvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm5QYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSB7CiAgICAgIGlmICghdXJuQ29tcG9uZW50cy5wYXRoKSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9ICJVUk4gY2FuIG5vdCBiZSBwYXJzZWQiOwogICAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSB1cm5Db21wb25lbnRzLnBhdGgubWF0Y2goVVJOX1JFRyk7CiAgICAgIGlmIChtYXRjaGVzKSB7CiAgICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uaWQgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSBtYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCB1cm5Db21wb25lbnRzLm5pZH1gOwogICAgICAgIGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTW3VyblNjaGVtZV07CiAgICAgICAgdXJuQ29tcG9uZW50cy5wYXRoID0gdm9pZCAwOwogICAgICAgIGlmIChzY2hlbWVIYW5kbGVyKSB7CiAgICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5wYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9IHVybkNvbXBvbmVudHMuZXJyb3IgfHwgIlVSTiBjYW4gbm90IGJlIHBhcnNlZC4iOwogICAgICB9CiAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJuU2VyaWFsaXplKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgIGNvbnN0IG5pZCA9IHVybkNvbXBvbmVudHMubmlkLnRvTG93ZXJDYXNlKCk7CiAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCBuaWR9YDsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbdXJuU2NoZW1lXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIpIHsKICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5zZXJpYWxpemUodXJuQ29tcG9uZW50cywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgY29uc3QgdXJpQ29tcG9uZW50cyA9IHVybkNvbXBvbmVudHM7CiAgICAgIGNvbnN0IG5zcyA9IHVybkNvbXBvbmVudHMubnNzOwogICAgICB1cmlDb21wb25lbnRzLnBhdGggPSBgJHtuaWQgfHwgb3B0aW9ucy5uaWR9OiR7bnNzfWA7CiAgICAgIG9wdGlvbnMuc2tpcEVzY2FwZSA9IHRydWU7CiAgICAgIHJldHVybiB1cmlDb21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJudXVpZFBhcnNlKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3QgdXVpZENvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzOwogICAgICB1dWlkQ29tcG9uZW50cy51dWlkID0gdXVpZENvbXBvbmVudHMubnNzOwogICAgICB1dWlkQ29tcG9uZW50cy5uc3MgPSB2b2lkIDA7CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiAoIXV1aWRDb21wb25lbnRzLnV1aWQgfHwgIVVVSURfUkVHLnRlc3QodXVpZENvbXBvbmVudHMudXVpZCkpKSB7CiAgICAgICAgdXVpZENvbXBvbmVudHMuZXJyb3IgPSB1dWlkQ29tcG9uZW50cy5lcnJvciB8fCAiVVVJRCBpcyBub3QgdmFsaWQuIjsKICAgICAgfQogICAgICByZXR1cm4gdXVpZENvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm51dWlkU2VyaWFsaXplKHV1aWRDb21wb25lbnRzKSB7CiAgICAgIGNvbnN0IHVybkNvbXBvbmVudHMgPSB1dWlkQ29tcG9uZW50czsKICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSAodXVpZENvbXBvbmVudHMudXVpZCB8fCAiIikudG9Mb3dlckNhc2UoKTsKICAgICAgcmV0dXJuIHVybkNvbXBvbmVudHM7CiAgICB9CiAgICB2YXIgaHR0cCA9IHsKICAgICAgc2NoZW1lOiAiaHR0cCIsCiAgICAgIGRvbWFpbkhvc3Q6IHRydWUsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciBodHRwcyA9IHsKICAgICAgc2NoZW1lOiAiaHR0cHMiLAogICAgICBkb21haW5Ib3N0OiBodHRwLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3cyA9IHsKICAgICAgc2NoZW1lOiAid3MiLAogICAgICBkb21haW5Ib3N0OiB0cnVlLAogICAgICBwYXJzZTogd3NQYXJzZSwKICAgICAgc2VyaWFsaXplOiB3c1NlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3c3MgPSB7CiAgICAgIHNjaGVtZTogIndzcyIsCiAgICAgIGRvbWFpbkhvc3Q6IHdzLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiB3cy5wYXJzZSwKICAgICAgc2VyaWFsaXplOiB3cy5zZXJpYWxpemUKICAgIH07CiAgICB2YXIgdXJuID0gewogICAgICBzY2hlbWU6ICJ1cm4iLAogICAgICBwYXJzZTogdXJuUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogdXJuU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIHVybnV1aWQgPSB7CiAgICAgIHNjaGVtZTogInVybjp1dWlkIiwKICAgICAgcGFyc2U6IHVybnV1aWRQYXJzZSwKICAgICAgc2VyaWFsaXplOiB1cm51dWlkU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIFNDSEVNRVMgPSB7CiAgICAgIGh0dHAsCiAgICAgIGh0dHBzLAogICAgICB3cywKICAgICAgd3NzLAogICAgICB1cm4sCiAgICAgICJ1cm46dXVpZCI6IHVybnV1aWQKICAgIH07CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBTQ0hFTUVTOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2luZGV4LmpzCnZhciByZXF1aXJlX2Zhc3RfdXJpID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBub3JtYWxpemVJUHY2LCBub3JtYWxpemVJUHY0LCByZW1vdmVEb3RTZWdtZW50cywgcmVjb21wb3NlQXV0aG9yaXR5LCBub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyB9ID0gcmVxdWlyZV91dGlsczIoKTsKICAgIHZhciBTQ0hFTUVTID0gcmVxdWlyZV9zY2hlbWVzKCk7CiAgICBmdW5jdGlvbiBub3JtYWxpemUodXJpLCBvcHRpb25zKSB7CiAgICAgIGlmICh0eXBlb2YgdXJpID09PSAic3RyaW5nIikgewogICAgICAgIHVyaSA9IHNlcmlhbGl6ZShwYXJzZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpID09PSAib2JqZWN0IikgewogICAgICAgIHVyaSA9IHBhcnNlKHNlcmlhbGl6ZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXR1cm4gdXJpOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShiYXNlVVJJLCByZWxhdGl2ZVVSSSwgb3B0aW9ucykgewogICAgICBjb25zdCBzY2hlbWVsZXNzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBzY2hlbWU6ICJudWxsIiB9LCBvcHRpb25zKTsKICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlQ29tcG9uZW50cyhwYXJzZShiYXNlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHBhcnNlKHJlbGF0aXZlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHNjaGVtZWxlc3NPcHRpb25zLCB0cnVlKTsKICAgICAgcmV0dXJuIHNlcmlhbGl6ZShyZXNvbHZlZCwgeyAuLi5zY2hlbWVsZXNzT3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRzKGJhc2UsIHJlbGF0aXZlLCBvcHRpb25zLCBza2lwTm9ybWFsaXphdGlvbikgewogICAgICBjb25zdCB0YXJnZXQgPSB7fTsKICAgICAgaWYgKCFza2lwTm9ybWFsaXphdGlvbikgewogICAgICAgIGJhc2UgPSBwYXJzZShzZXJpYWxpemUoYmFzZSwgb3B0aW9ucyksIG9wdGlvbnMpOwogICAgICAgIHJlbGF0aXZlID0gcGFyc2Uoc2VyaWFsaXplKHJlbGF0aXZlLCBvcHRpb25zKSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiByZWxhdGl2ZS5zY2hlbWUpIHsKICAgICAgICB0YXJnZXQuc2NoZW1lID0gcmVsYXRpdmUuc2NoZW1lOwogICAgICAgIHRhcmdldC51c2VyaW5mbyA9IHJlbGF0aXZlLnVzZXJpbmZvOwogICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICB0YXJnZXQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7CiAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoIHx8ICIiKTsKICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocmVsYXRpdmUudXNlcmluZm8gIT09IHZvaWQgMCB8fCByZWxhdGl2ZS5ob3N0ICE9PSB2b2lkIDAgfHwgcmVsYXRpdmUucG9ydCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbzsKICAgICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICAgIHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDsKICAgICAgICAgIHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCAiIik7CiAgICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFyZWxhdGl2ZS5wYXRoKSB7CiAgICAgICAgICAgIHRhcmdldC5wYXRoID0gYmFzZS5wYXRoOwogICAgICAgICAgICBpZiAocmVsYXRpdmUucXVlcnkgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IGJhc2UucXVlcnk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChyZWxhdGl2ZS5wYXRoLmNoYXJBdCgwKSA9PT0gIi8iKSB7CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAoKGJhc2UudXNlcmluZm8gIT09IHZvaWQgMCB8fCBiYXNlLmhvc3QgIT09IHZvaWQgMCB8fCBiYXNlLnBvcnQgIT09IHZvaWQgMCkgJiYgIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSAiLyIgKyByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQucGF0aCA9IGJhc2UucGF0aC5zbGljZSgwLCBiYXNlLnBhdGgubGFzdEluZGV4T2YoIi8iKSArIDEpICsgcmVsYXRpdmUucGF0aDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyh0YXJnZXQucGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7CiAgICAgICAgICB9CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSBiYXNlLnVzZXJpbmZvOwogICAgICAgICAgdGFyZ2V0Lmhvc3QgPSBiYXNlLmhvc3Q7CiAgICAgICAgICB0YXJnZXQucG9ydCA9IGJhc2UucG9ydDsKICAgICAgICB9CiAgICAgICAgdGFyZ2V0LnNjaGVtZSA9IGJhc2Uuc2NoZW1lOwogICAgICB9CiAgICAgIHRhcmdldC5mcmFnbWVudCA9IHJlbGF0aXZlLmZyYWdtZW50OwogICAgICByZXR1cm4gdGFyZ2V0OwogICAgfQogICAgZnVuY3Rpb24gZXF1YWwodXJpQSwgdXJpQiwgb3B0aW9ucykgewogICAgICBpZiAodHlwZW9mIHVyaUEgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpQSA9IHVuZXNjYXBlKHVyaUEpOwogICAgICAgIHVyaUEgPSBzZXJpYWxpemUobm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcocGFyc2UodXJpQSwgb3B0aW9ucyksIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHVyaUEgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdXJpQSA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyh1cmlBLCB0cnVlKSwgeyAuLi5vcHRpb25zLCBza2lwRXNjYXBlOiB0cnVlIH0pOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgdXJpQiA9PT0gInN0cmluZyIpIHsKICAgICAgICB1cmlCID0gdW5lc2NhcGUodXJpQik7CiAgICAgICAgdXJpQiA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyhwYXJzZSh1cmlCLCBvcHRpb25zKSwgdHJ1ZSksIHsgLi4ub3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpQiA9PT0gIm9iamVjdCIpIHsKICAgICAgICB1cmlCID0gc2VyaWFsaXplKG5vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKHVyaUIsIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaUEudG9Mb3dlckNhc2UoKSA9PT0gdXJpQi50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gc2VyaWFsaXplKGNtcHRzLCBvcHRzKSB7CiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7CiAgICAgICAgaG9zdDogY21wdHMuaG9zdCwKICAgICAgICBzY2hlbWU6IGNtcHRzLnNjaGVtZSwKICAgICAgICB1c2VyaW5mbzogY21wdHMudXNlcmluZm8sCiAgICAgICAgcG9ydDogY21wdHMucG9ydCwKICAgICAgICBwYXRoOiBjbXB0cy5wYXRoLAogICAgICAgIHF1ZXJ5OiBjbXB0cy5xdWVyeSwKICAgICAgICBuaWQ6IGNtcHRzLm5pZCwKICAgICAgICBuc3M6IGNtcHRzLm5zcywKICAgICAgICB1dWlkOiBjbXB0cy51dWlkLAogICAgICAgIGZyYWdtZW50OiBjbXB0cy5mcmFnbWVudCwKICAgICAgICByZWZlcmVuY2U6IGNtcHRzLnJlZmVyZW5jZSwKICAgICAgICByZXNvdXJjZU5hbWU6IGNtcHRzLnJlc291cmNlTmFtZSwKICAgICAgICBzZWN1cmU6IGNtcHRzLnNlY3VyZSwKICAgICAgICBlcnJvcjogIiIKICAgICAgfTsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbKG9wdGlvbnMuc2NoZW1lIHx8IGNvbXBvbmVudHMuc2NoZW1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5zZXJpYWxpemUpIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKGNvbXBvbmVudHMsIG9wdGlvbnMpOwogICAgICBpZiAoY29tcG9uZW50cy5wYXRoICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoIW9wdGlvbnMuc2tpcEVzY2FwZSkgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZXNjYXBlKGNvbXBvbmVudHMucGF0aCk7CiAgICAgICAgICBpZiAoY29tcG9uZW50cy5zY2hlbWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBjb21wb25lbnRzLnBhdGggPSBjb21wb25lbnRzLnBhdGguc3BsaXQoIiUzQSIpLmpvaW4oIjoiKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gdW5lc2NhcGUoY29tcG9uZW50cy5wYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IiAmJiBjb21wb25lbnRzLnNjaGVtZSkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuc2NoZW1lLCAiOiIpOwogICAgICB9CiAgICAgIGNvbnN0IGF1dGhvcml0eSA9IHJlY29tcG9zZUF1dGhvcml0eShjb21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgaWYgKGF1dGhvcml0eSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IikgewogICAgICAgICAgdXJpVG9rZW5zLnB1c2goIi8vIik7CiAgICAgICAgfQogICAgICAgIHVyaVRva2Vucy5wdXNoKGF1dGhvcml0eSk7CiAgICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnBhdGguY2hhckF0KDApICE9PSAiLyIpIHsKICAgICAgICAgIHVyaVRva2Vucy5wdXNoKCIvIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnBhdGggIT09IHZvaWQgMCkgewogICAgICAgIGxldCBzID0gY29tcG9uZW50cy5wYXRoOwogICAgICAgIGlmICghb3B0aW9ucy5hYnNvbHV0ZVBhdGggJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLmFic29sdXRlUGF0aCkpIHsKICAgICAgICAgIHMgPSByZW1vdmVEb3RTZWdtZW50cyhzKTsKICAgICAgICB9CiAgICAgICAgaWYgKGF1dGhvcml0eSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBzID0gcy5yZXBsYWNlKC9eXC9cLy91LCAiLyUyRiIpOwogICAgICAgIH0KICAgICAgICB1cmlUb2tlbnMucHVzaChzKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIj8iLCBjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIiMiLCBjb21wb25lbnRzLmZyYWdtZW50KTsKICAgICAgfQogICAgICByZXR1cm4gdXJpVG9rZW5zLmpvaW4oIiIpOwogICAgfQogICAgdmFyIGhleExvb2tVcCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyNyB9LCAodiwgaykgPT4gL1teISIkJicoKSorLFwtLjs9X2BhLXp7fX5dL3UudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGspKSk7CiAgICBmdW5jdGlvbiBub25TaW1wbGVEb21haW4odmFsdWUpIHsKICAgICAgbGV0IGNvZGUgPSAwOwogICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTsKICAgICAgICBpZiAoY29kZSA+IDEyNiB8fCBoZXhMb29rVXBbY29kZV0pIHsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB2YXIgVVJJX1BBUlNFID0gL14oPzooW14jLzo/XSspOik/KD86XC9cLygoPzooW14jLz9AXSopQCk/KFxbW14jLz9cXV0rXF18W14jLzo/XSopKD86OihcZCopKT8pKT8oW14jP10qKSg/Olw/KFteI10qKSk/KD86IygoPzoufFtcblxyXSkqKSk/L3U7CiAgICBmdW5jdGlvbiBwYXJzZSh1cmksIG9wdHMpIHsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCBwYXJzZWQgPSB7CiAgICAgICAgc2NoZW1lOiB2b2lkIDAsCiAgICAgICAgdXNlcmluZm86IHZvaWQgMCwKICAgICAgICBob3N0OiAiIiwKICAgICAgICBwb3J0OiB2b2lkIDAsCiAgICAgICAgcGF0aDogIiIsCiAgICAgICAgcXVlcnk6IHZvaWQgMCwKICAgICAgICBmcmFnbWVudDogdm9pZCAwCiAgICAgIH07CiAgICAgIGNvbnN0IGdvdEVuY29kaW5nID0gdXJpLmluZGV4T2YoIiUiKSAhPT0gLTE7CiAgICAgIGxldCBpc0lQID0gZmFsc2U7CiAgICAgIGlmIChvcHRpb25zLnJlZmVyZW5jZSA9PT0gInN1ZmZpeCIpIHVyaSA9IChvcHRpb25zLnNjaGVtZSA/IG9wdGlvbnMuc2NoZW1lICsgIjoiIDogIiIpICsgIi8vIiArIHVyaTsKICAgICAgY29uc3QgbWF0Y2hlcyA9IHVyaS5tYXRjaChVUklfUEFSU0UpOwogICAgICBpZiAobWF0Y2hlcykgewogICAgICAgIHBhcnNlZC5zY2hlbWUgPSBtYXRjaGVzWzFdOwogICAgICAgIHBhcnNlZC51c2VyaW5mbyA9IG1hdGNoZXNbM107CiAgICAgICAgcGFyc2VkLmhvc3QgPSBtYXRjaGVzWzRdOwogICAgICAgIHBhcnNlZC5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApOwogICAgICAgIHBhcnNlZC5wYXRoID0gbWF0Y2hlc1s2XSB8fCAiIjsKICAgICAgICBwYXJzZWQucXVlcnkgPSBtYXRjaGVzWzddOwogICAgICAgIHBhcnNlZC5mcmFnbWVudCA9IG1hdGNoZXNbOF07CiAgICAgICAgaWYgKGlzTmFOKHBhcnNlZC5wb3J0KSkgewogICAgICAgICAgcGFyc2VkLnBvcnQgPSBtYXRjaGVzWzVdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyc2VkLmhvc3QpIHsKICAgICAgICAgIGNvbnN0IGlwdjRyZXN1bHQgPSBub3JtYWxpemVJUHY0KHBhcnNlZC5ob3N0KTsKICAgICAgICAgIGlmIChpcHY0cmVzdWx0LmlzSVBWNCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY29uc3QgaXB2NnJlc3VsdCA9IG5vcm1hbGl6ZUlQdjYoaXB2NHJlc3VsdC5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NnJlc3VsdC5ob3N0LnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlzSVAgPSBpcHY2cmVzdWx0LmlzSVBWNjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NHJlc3VsdC5ob3N0OwogICAgICAgICAgICBpc0lQID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5zY2hlbWUgPT09IHZvaWQgMCAmJiBwYXJzZWQudXNlcmluZm8gPT09IHZvaWQgMCAmJiBwYXJzZWQuaG9zdCA9PT0gdm9pZCAwICYmIHBhcnNlZC5wb3J0ID09PSB2b2lkIDAgJiYgIXBhcnNlZC5wYXRoICYmIHBhcnNlZC5xdWVyeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInNhbWUtZG9jdW1lbnQiOwogICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnNjaGVtZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInJlbGF0aXZlIjsKICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC5mcmFnbWVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gImFic29sdXRlIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcGFyc2VkLnJlZmVyZW5jZSA9ICJ1cmkiOwogICAgICAgIH0KICAgICAgICBpZiAob3B0aW9ucy5yZWZlcmVuY2UgJiYgb3B0aW9ucy5yZWZlcmVuY2UgIT09ICJzdWZmaXgiICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBwYXJzZWQucmVmZXJlbmNlKSB7CiAgICAgICAgICBwYXJzZWQuZXJyb3IgPSBwYXJzZWQuZXJyb3IgfHwgIlVSSSBpcyBub3QgYSAiICsgb3B0aW9ucy5yZWZlcmVuY2UgKyAiIHJlZmVyZW5jZS4iOwogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgcGFyc2VkLnNjaGVtZSB8fCAiIikudG9Mb3dlckNhc2UoKV07CiAgICAgICAgaWYgKCFvcHRpb25zLnVuaWNvZGVTdXBwb3J0ICYmICghc2NoZW1lSGFuZGxlciB8fCAhc2NoZW1lSGFuZGxlci51bmljb2RlU3VwcG9ydCkpIHsKICAgICAgICAgIGlmIChwYXJzZWQuaG9zdCAmJiAob3B0aW9ucy5kb21haW5Ib3N0IHx8IHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSAmJiBpc0lQID09PSBmYWxzZSAmJiBub25TaW1wbGVEb21haW4ocGFyc2VkLmhvc3QpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcGFyc2VkLmhvc3QgPSBVUkwuZG9tYWluVG9BU0NJSShwYXJzZWQuaG9zdC50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIEFTQ0lJOiAiICsgZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNjaGVtZUhhbmRsZXIgfHwgc2NoZW1lSGFuZGxlciAmJiAhc2NoZW1lSGFuZGxlci5za2lwTm9ybWFsaXplKSB7CiAgICAgICAgICBpZiAoZ290RW5jb2RpbmcgJiYgcGFyc2VkLnNjaGVtZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5zY2hlbWUgPSB1bmVzY2FwZShwYXJzZWQuc2NoZW1lKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChnb3RFbmNvZGluZyAmJiBwYXJzZWQuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gdW5lc2NhcGUocGFyc2VkLmhvc3QpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhcnNlZC5wYXRoICE9PSB2b2lkIDAgJiYgcGFyc2VkLnBhdGgubGVuZ3RoKSB7CiAgICAgICAgICAgIHBhcnNlZC5wYXRoID0gZXNjYXBlKHVuZXNjYXBlKHBhcnNlZC5wYXRoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGFyc2VkLmZyYWdtZW50ICE9PSB2b2lkIDAgJiYgcGFyc2VkLmZyYWdtZW50Lmxlbmd0aCkgewogICAgICAgICAgICBwYXJzZWQuZnJhZ21lbnQgPSBlbmNvZGVVUkkoZGVjb2RlVVJJQ29tcG9uZW50KHBhcnNlZC5mcmFnbWVudCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLnBhcnNlKSB7CiAgICAgICAgICBzY2hlbWVIYW5kbGVyLnBhcnNlKHBhcnNlZCwgb3B0aW9ucyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiVVJJIGNhbiBub3QgYmUgcGFyc2VkLiI7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhcnNlZDsKICAgIH0KICAgIHZhciBmYXN0VXJpID0gewogICAgICBTQ0hFTUVTLAogICAgICBub3JtYWxpemUsCiAgICAgIHJlc29sdmUsCiAgICAgIHJlc29sdmVDb21wb25lbnRzLAogICAgICBlcXVhbCwKICAgICAgc2VyaWFsaXplLAogICAgICBwYXJzZQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZGVmYXVsdCA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZmFzdFVyaSA9IGZhc3RVcmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3VyaS5qcwp2YXIgcmVxdWlyZV91cmkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdXJpLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXJpID0gcmVxdWlyZV9mYXN0X3VyaSgpOwogICAgdXJpLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91cmkiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB1cmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvcmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvZGVHZW4gPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IGV4cG9ydHMyLktleXdvcmRDeHQgPSB2b2lkIDA7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIktleXdvcmRDeHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0ZV8xLktleXdvcmRDeHQ7CiAgICB9IH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyaW5naWZ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cmluZ2lmeTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb2RlR2VuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLkNvZGVHZW47CiAgICB9IH0pOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIHJlZl9lcnJvcl8xID0gcmVxdWlyZV9yZWZfZXJyb3IoKTsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIGNvZGVnZW5fMiA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgJGRhdGFSZWZTY2hlbWEgPSByZXF1aXJlX2RhdGEoKTsKICAgIHZhciB1cmlfMSA9IHJlcXVpcmVfdXJpKCk7CiAgICB2YXIgZGVmYXVsdFJlZ0V4cCA9IChzdHIyLCBmbGFncykgPT4gbmV3IFJlZ0V4cChzdHIyLCBmbGFncyk7CiAgICBkZWZhdWx0UmVnRXhwLmNvZGUgPSAibmV3IFJlZ0V4cCI7CiAgICB2YXIgTUVUQV9JR05PUkVfT1BUSU9OUyA9IFsicmVtb3ZlQWRkaXRpb25hbCIsICJ1c2VEZWZhdWx0cyIsICJjb2VyY2VUeXBlcyJdOwogICAgdmFyIEVYVF9TQ09QRV9OQU1FUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFsKICAgICAgInZhbGlkYXRlIiwKICAgICAgInNlcmlhbGl6ZSIsCiAgICAgICJwYXJzZSIsCiAgICAgICJ3cmFwcGVyIiwKICAgICAgInJvb3QiLAogICAgICAic2NoZW1hIiwKICAgICAgImtleXdvcmQiLAogICAgICAicGF0dGVybiIsCiAgICAgICJmb3JtYXRzIiwKICAgICAgInZhbGlkYXRlJGRhdGEiLAogICAgICAiZnVuYyIsCiAgICAgICJvYmoiLAogICAgICAiRXJyb3IiCiAgICBdKTsKICAgIHZhciByZW1vdmVkT3B0aW9ucyA9IHsKICAgICAgZXJyb3JEYXRhUGF0aDogIiIsCiAgICAgIGZvcm1hdDogImB2YWxpZGF0ZUZvcm1hdHM6IGZhbHNlYCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG51bGxhYmxlOiAnIm51bGxhYmxlIiBrZXl3b3JkIGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0LicsCiAgICAgIGpzb25Qb2ludGVyczogIkRlcHJlY2F0ZWQganNQcm9wZXJ0eVN5bnRheCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIGV4dGVuZFJlZnM6ICJEZXByZWNhdGVkIGlnbm9yZUtleXdvcmRzV2l0aFJlZiBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG1pc3NpbmdSZWZzOiAiUGFzcyBlbXB0eSBzY2hlbWEgd2l0aCAkaWQgdGhhdCBzaG91bGQgYmUgaWdub3JlZCB0byBhanYuYWRkU2NoZW1hLiIsCiAgICAgIHByb2Nlc3NDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3Byb2Nlc3M6IChjb2RlLCBzY2hlbWFFbnY6IG9iamVjdCkgPT4gc3RyaW5nfWAiLAogICAgICBzb3VyY2VDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3NvdXJjZTogdHJ1ZX1gIiwKICAgICAgc3RyaWN0RGVmYXVsdHM6ICJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLAogICAgICBzdHJpY3RLZXl3b3JkczogIkl0IGlzIGRlZmF1bHQgbm93LCBzZWUgb3B0aW9uIGBzdHJpY3RgLiIsCiAgICAgIHVuaXF1ZUl0ZW1zOiAnInVuaXF1ZUl0ZW1zIiBrZXl3b3JkIGlzIGFsd2F5cyB2YWxpZGF0ZWQuJywKICAgICAgdW5rbm93bkZvcm1hdHM6ICJEaXNhYmxlIHN0cmljdCBtb2RlIG9yIHBhc3MgYHRydWVgIHRvIGBhanYuYWRkRm9ybWF0YCAob3IgYGZvcm1hdHNgIG9wdGlvbikuIiwKICAgICAgY2FjaGU6ICJNYXAgaXMgdXNlZCBhcyBjYWNoZSwgc2NoZW1hIG9iamVjdCBhcyBrZXkuIiwKICAgICAgc2VyaWFsaXplOiAiTWFwIGlzIHVzZWQgYXMgY2FjaGUsIHNjaGVtYSBvYmplY3QgYXMga2V5LiIsCiAgICAgIGFqdkVycm9yczogIkl0IGlzIGRlZmF1bHQgbm93LiIKICAgIH07CiAgICB2YXIgZGVwcmVjYXRlZE9wdGlvbnMgPSB7CiAgICAgIGlnbm9yZUtleXdvcmRzV2l0aFJlZjogIiIsCiAgICAgIGpzUHJvcGVydHlTeW50YXg6ICIiLAogICAgICB1bmljb2RlOiAnIm1pbkxlbmd0aCIvIm1heExlbmd0aCIgYWNjb3VudCBmb3IgdW5pY29kZSBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuJwogICAgfTsKICAgIHZhciBNQVhfRVhQUkVTU0lPTiA9IDIwMDsKICAgIGZ1bmN0aW9uIHJlcXVpcmVkT3B0aW9ucyhvKSB7CiAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3MsIF90LCBfdSwgX3YsIF93LCBfeCwgX3ksIF96LCBfMDsKICAgICAgY29uc3QgcyA9IG8uc3RyaWN0OwogICAgICBjb25zdCBfb3B0eiA9IChfYSA9IG8uY29kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplOwogICAgICBjb25zdCBvcHRpbWl6ZSA9IF9vcHR6ID09PSB0cnVlIHx8IF9vcHR6ID09PSB2b2lkIDAgPyAxIDogX29wdHogfHwgMDsKICAgICAgY29uc3QgcmVnRXhwID0gKF9jID0gKF9iID0gby5jb2RlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVnRXhwKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBkZWZhdWx0UmVnRXhwOwogICAgICBjb25zdCB1cmlSZXNvbHZlciA9IChfZCA9IG8udXJpUmVzb2x2ZXIpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHVyaV8xLmRlZmF1bHQ7CiAgICAgIHJldHVybiB7CiAgICAgICAgc3RyaWN0U2NoZW1hOiAoX2YgPSAoX2UgPSBvLnN0cmljdFNjaGVtYSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogcykgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogdHJ1ZSwKICAgICAgICBzdHJpY3ROdW1iZXJzOiAoX2ggPSAoX2cgPSBvLnN0cmljdE51bWJlcnMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHMpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHRydWUsCiAgICAgICAgc3RyaWN0VHlwZXM6IChfayA9IChfaiA9IG8uc3RyaWN0VHlwZXMpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IHMpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6ICJsb2ciLAogICAgICAgIHN0cmljdFR1cGxlczogKF9tID0gKF9sID0gby5zdHJpY3RUdXBsZXMpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6IHMpICE9PSBudWxsICYmIF9tICE9PSB2b2lkIDAgPyBfbSA6ICJsb2ciLAogICAgICAgIHN0cmljdFJlcXVpcmVkOiAoX3AgPSAoX28gPSBvLnN0cmljdFJlcXVpcmVkKSAhPT0gbnVsbCAmJiBfbyAhPT0gdm9pZCAwID8gX28gOiBzKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiBmYWxzZSwKICAgICAgICBjb2RlOiBvLmNvZGUgPyB7IC4uLm8uY29kZSwgb3B0aW1pemUsIHJlZ0V4cCB9IDogeyBvcHRpbWl6ZSwgcmVnRXhwIH0sCiAgICAgICAgbG9vcFJlcXVpcmVkOiAoX3EgPSBvLmxvb3BSZXF1aXJlZCkgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogTUFYX0VYUFJFU1NJT04sCiAgICAgICAgbG9vcEVudW06IChfciA9IG8ubG9vcEVudW0pICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6IE1BWF9FWFBSRVNTSU9OLAogICAgICAgIG1ldGE6IChfcyA9IG8ubWV0YSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogdHJ1ZSwKICAgICAgICBtZXNzYWdlczogKF90ID0gby5tZXNzYWdlcykgIT09IG51bGwgJiYgX3QgIT09IHZvaWQgMCA/IF90IDogdHJ1ZSwKICAgICAgICBpbmxpbmVSZWZzOiAoX3UgPSBvLmlubGluZVJlZnMpICE9PSBudWxsICYmIF91ICE9PSB2b2lkIDAgPyBfdSA6IHRydWUsCiAgICAgICAgc2NoZW1hSWQ6IChfdiA9IG8uc2NoZW1hSWQpICE9PSBudWxsICYmIF92ICE9PSB2b2lkIDAgPyBfdiA6ICIkaWQiLAogICAgICAgIGFkZFVzZWRTY2hlbWE6IChfdyA9IG8uYWRkVXNlZFNjaGVtYSkgIT09IG51bGwgJiYgX3cgIT09IHZvaWQgMCA/IF93IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZVNjaGVtYTogKF94ID0gby52YWxpZGF0ZVNjaGVtYSkgIT09IG51bGwgJiYgX3ggIT09IHZvaWQgMCA/IF94IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZUZvcm1hdHM6IChfeSA9IG8udmFsaWRhdGVGb3JtYXRzKSAhPT0gbnVsbCAmJiBfeSAhPT0gdm9pZCAwID8gX3kgOiB0cnVlLAogICAgICAgIHVuaWNvZGVSZWdFeHA6IChfeiA9IG8udW5pY29kZVJlZ0V4cCkgIT09IG51bGwgJiYgX3ogIT09IHZvaWQgMCA/IF96IDogdHJ1ZSwKICAgICAgICBpbnQzMnJhbmdlOiAoXzAgPSBvLmludDMycmFuZ2UpICE9PSBudWxsICYmIF8wICE9PSB2b2lkIDAgPyBfMCA6IHRydWUsCiAgICAgICAgdXJpUmVzb2x2ZXIKICAgICAgfTsKICAgIH0KICAgIHZhciBBanYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkgewogICAgICAgIHRoaXMuc2NoZW1hcyA9IHt9OwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICAgIHRoaXMuZm9ybWF0cyA9IHt9OwogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgdGhpcy5fbG9hZGluZyA9IHt9OwogICAgICAgIHRoaXMuX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBvcHRzID0gdGhpcy5vcHRzID0geyAuLi5vcHRzLCAuLi5yZXF1aXJlZE9wdGlvbnMob3B0cykgfTsKICAgICAgICBjb25zdCB7IGVzNSwgbGluZXMgfSA9IHRoaXMub3B0cy5jb2RlOwogICAgICAgIHRoaXMuc2NvcGUgPSBuZXcgY29kZWdlbl8yLlZhbHVlU2NvcGUoeyBzY29wZToge30sIHByZWZpeGVzOiBFWFRfU0NPUEVfTkFNRVMsIGVzNSwgbGluZXMgfSk7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIob3B0cy5sb2dnZXIpOwogICAgICAgIGNvbnN0IGZvcm1hdE9wdCA9IG9wdHMudmFsaWRhdGVGb3JtYXRzOwogICAgICAgIG9wdHMudmFsaWRhdGVGb3JtYXRzID0gZmFsc2U7CiAgICAgICAgdGhpcy5SVUxFUyA9ICgwLCBydWxlc18xLmdldFJ1bGVzKSgpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIHJlbW92ZWRPcHRpb25zLCBvcHRzLCAiTk9UIFNVUFBPUlRFRCIpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIGRlcHJlY2F0ZWRPcHRpb25zLCBvcHRzLCAiREVQUkVDQVRFRCIsICJ3YXJuIik7CiAgICAgICAgdGhpcy5fbWV0YU9wdHMgPSBnZXRNZXRhU2NoZW1hT3B0aW9ucy5jYWxsKHRoaXMpOwogICAgICAgIGlmIChvcHRzLmZvcm1hdHMpCiAgICAgICAgICBhZGRJbml0aWFsRm9ybWF0cy5jYWxsKHRoaXMpOwogICAgICAgIHRoaXMuX2FkZFZvY2FidWxhcmllcygpOwogICAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhU2NoZW1hKCk7CiAgICAgICAgaWYgKG9wdHMua2V5d29yZHMpCiAgICAgICAgICBhZGRJbml0aWFsS2V5d29yZHMuY2FsbCh0aGlzLCBvcHRzLmtleXdvcmRzKTsKICAgICAgICBpZiAodHlwZW9mIG9wdHMubWV0YSA9PSAib2JqZWN0IikKICAgICAgICAgIHRoaXMuYWRkTWV0YVNjaGVtYShvcHRzLm1ldGEpOwogICAgICAgIGFkZEluaXRpYWxTY2hlbWFzLmNhbGwodGhpcyk7CiAgICAgICAgb3B0cy52YWxpZGF0ZUZvcm1hdHMgPSBmb3JtYXRPcHQ7CiAgICAgIH0KICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICB0aGlzLmFkZEtleXdvcmQoIiRhc3luYyIpOwogICAgICB9CiAgICAgIF9hZGREZWZhdWx0TWV0YVNjaGVtYSgpIHsKICAgICAgICBjb25zdCB7ICRkYXRhLCBtZXRhLCBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGxldCBfZGF0YVJlZlNjaGVtYSA9ICRkYXRhUmVmU2NoZW1hOwogICAgICAgIGlmIChzY2hlbWFJZCA9PT0gImlkIikgewogICAgICAgICAgX2RhdGFSZWZTY2hlbWEgPSB7IC4uLiRkYXRhUmVmU2NoZW1hIH07CiAgICAgICAgICBfZGF0YVJlZlNjaGVtYS5pZCA9IF9kYXRhUmVmU2NoZW1hLiRpZDsKICAgICAgICAgIGRlbGV0ZSBfZGF0YVJlZlNjaGVtYS4kaWQ7CiAgICAgICAgfQogICAgICAgIGlmIChtZXRhICYmICRkYXRhKQogICAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKF9kYXRhUmVmU2NoZW1hLCBfZGF0YVJlZlNjaGVtYVtzY2hlbWFJZF0sIGZhbHNlKTsKICAgICAgfQogICAgICBkZWZhdWx0TWV0YSgpIHsKICAgICAgICBjb25zdCB7IG1ldGEsIHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHR5cGVvZiBtZXRhID09ICJvYmplY3QiID8gbWV0YVtzY2hlbWFJZF0gfHwgbWV0YSA6IHZvaWQgMDsKICAgICAgfQogICAgICB2YWxpZGF0ZShzY2hlbWFLZXlSZWYsIGRhdGEpIHsKICAgICAgICBsZXQgdjsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYUtleVJlZiA9PSAic3RyaW5nIikgewogICAgICAgICAgdiA9IHRoaXMuZ2V0U2NoZW1hKHNjaGVtYUtleVJlZik7CiAgICAgICAgICBpZiAoIXYpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gc2NoZW1hIHdpdGgga2V5IG9yIHJlZiAiJHtzY2hlbWFLZXlSZWZ9ImApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2ID0gdGhpcy5jb21waWxlKHNjaGVtYUtleVJlZik7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gdihkYXRhKTsKICAgICAgICBpZiAoISgiJGFzeW5jIiBpbiB2KSkKICAgICAgICAgIHRoaXMuZXJyb3JzID0gdi5lcnJvcnM7CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIGNvbXBpbGUoc2NoZW1hMiwgX21ldGEpIHsKICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEpOwogICAgICAgIHJldHVybiBzY2gudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZVNjaGVtYUVudihzY2gpOwogICAgICB9CiAgICAgIGNvbXBpbGVBc3luYyhzY2hlbWEyLCBtZXRhKSB7CiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMubG9hZFNjaGVtYSAhPSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB7IGxvYWRTY2hlbWEgfSA9IHRoaXMub3B0czsKICAgICAgICByZXR1cm4gcnVuQ29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoZW1hMiwgbWV0YSk7CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuQ29tcGlsZUFzeW5jKF9zY2hlbWEsIF9tZXRhKSB7CiAgICAgICAgICBhd2FpdCBsb2FkTWV0YVNjaGVtYS5jYWxsKHRoaXMsIF9zY2hlbWEuJHNjaGVtYSk7CiAgICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoX3NjaGVtYSwgX21ldGEpOwogICAgICAgICAgcmV0dXJuIHNjaC52YWxpZGF0ZSB8fCBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1ldGFTY2hlbWEoJHJlZikgewogICAgICAgICAgaWYgKCRyZWYgJiYgIXRoaXMuZ2V0U2NoZW1hKCRyZWYpKSB7CiAgICAgICAgICAgIGF3YWl0IHJ1bkNvbXBpbGVBc3luYy5jYWxsKHRoaXMsIHsgJHJlZiB9LCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gX2NvbXBpbGVBc3luYyhzY2gpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21waWxlU2NoZW1hRW52KHNjaCk7CiAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiByZWZfZXJyb3JfMS5kZWZhdWx0KSkKICAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgICBjaGVja0xvYWRlZC5jYWxsKHRoaXMsIGUpOwogICAgICAgICAgICBhd2FpdCBsb2FkTWlzc2luZ1NjaGVtYS5jYWxsKHRoaXMsIGUubWlzc2luZ1NjaGVtYSk7CiAgICAgICAgICAgIHJldHVybiBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gY2hlY2tMb2FkZWQoeyBtaXNzaW5nU2NoZW1hOiByZWYsIG1pc3NpbmdSZWYgfSkgewogICAgICAgICAgaWYgKHRoaXMucmVmc1tyZWZdKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQW55U2NoZW1hICR7cmVmfSBpcyBsb2FkZWQgYnV0ICR7bWlzc2luZ1JlZn0gY2Fubm90IGJlIHJlc29sdmVkYCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRNaXNzaW5nU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgX3NjaGVtYSA9IGF3YWl0IF9sb2FkU2NoZW1hLmNhbGwodGhpcywgcmVmKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIGF3YWl0IGxvYWRNZXRhU2NoZW1hLmNhbGwodGhpcywgX3NjaGVtYS4kc2NoZW1hKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKF9zY2hlbWEsIHJlZiwgbWV0YSk7CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIF9sb2FkU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgcCA9IHRoaXMuX2xvYWRpbmdbcmVmXTsKICAgICAgICAgIGlmIChwKQogICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAodGhpcy5fbG9hZGluZ1tyZWZdID0gbG9hZFNjaGVtYShyZWYpKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sb2FkaW5nW3JlZl07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIEFkZHMgc2NoZW1hIHRvIHRoZSBpbnN0YW5jZQogICAgICBhZGRTY2hlbWEoc2NoZW1hMiwga2V5LCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMikpIHsKICAgICAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHNjaGVtYTIpCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaCwgdm9pZCAwLCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBsZXQgaWQ7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgICAgaWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICAgIGlmIChpZCAhPT0gdm9pZCAwICYmIHR5cGVvZiBpZCAhPSAic3RyaW5nIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSAke3NjaGVtYUlkfSBtdXN0IGJlIHN0cmluZ2ApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBrZXkgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXkgfHwgaWQpOwogICAgICAgIHRoaXMuX2NoZWNrVW5pcXVlKGtleSk7CiAgICAgICAgdGhpcy5zY2hlbWFzW2tleV0gPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEsIGtleSwgX3ZhbGlkYXRlU2NoZW1hLCB0cnVlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBBZGQgc2NoZW1hIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIG90aGVyIHNjaGVtYXMKICAgICAgLy8gb3B0aW9ucyBpbiBNRVRBX0lHTk9SRV9PUFRJT05TIGFyZSBhbHdheSBzZXQgdG8gZmFsc2UKICAgICAgYWRkTWV0YVNjaGVtYShzY2hlbWEyLCBrZXksIF92YWxpZGF0ZVNjaGVtYSA9IHRoaXMub3B0cy52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaGVtYTIsIGtleSwgdHJ1ZSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyAgVmFsaWRhdGUgc2NoZW1hIGFnYWluc3QgaXRzIG1ldGEtc2NoZW1hCiAgICAgIHZhbGlkYXRlU2NoZW1hKHNjaGVtYTIsIHRocm93T3JMb2dFcnJvcikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgJHNjaGVtYTsKICAgICAgICAkc2NoZW1hID0gc2NoZW1hMi4kc2NoZW1hOwogICAgICAgIGlmICgkc2NoZW1hICE9PSB2b2lkIDAgJiYgdHlwZW9mICRzY2hlbWEgIT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiJHNjaGVtYSBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgfQogICAgICAgICRzY2hlbWEgPSAkc2NoZW1hIHx8IHRoaXMub3B0cy5kZWZhdWx0TWV0YSB8fCB0aGlzLmRlZmF1bHRNZXRhKCk7CiAgICAgICAgaWYgKCEkc2NoZW1hKSB7CiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCJtZXRhLXNjaGVtYSBub3QgYXZhaWxhYmxlIik7CiAgICAgICAgICB0aGlzLmVycm9ycyA9IG51bGw7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCRzY2hlbWEsIHNjaGVtYTIpOwogICAgICAgIGlmICghdmFsaWQgJiYgdGhyb3dPckxvZ0Vycm9yKSB7CiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gInNjaGVtYSBpcyBpbnZhbGlkOiAiICsgdGhpcy5lcnJvcnNUZXh0KCk7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hID09PSAibG9nIikKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIC8vIEdldCBjb21waWxlZCBzY2hlbWEgYnkgYGtleWAgb3IgYHJlZmAuCiAgICAgIC8vIChga2V5YCB0aGF0IHdhcyBwYXNzZWQgdG8gYGFkZFNjaGVtYWAgb3IgZnVsbCBzY2hlbWEgcmVmZXJlbmNlIC0gYHNjaGVtYS4kaWRgIG9yIHJlc29sdmVkIGlkKQogICAgICBnZXRTY2hlbWEoa2V5UmVmKSB7CiAgICAgICAgbGV0IHNjaDsKICAgICAgICB3aGlsZSAodHlwZW9mIChzY2ggPSBnZXRTY2hFbnYuY2FsbCh0aGlzLCBrZXlSZWYpKSA9PSAic3RyaW5nIikKICAgICAgICAgIGtleVJlZiA9IHNjaDsKICAgICAgICBpZiAoc2NoID09PSB2b2lkIDApIHsKICAgICAgICAgIGNvbnN0IHsgc2NoZW1hSWQgfSA9IHRoaXMub3B0czsKICAgICAgICAgIGNvbnN0IHJvb3QgPSBuZXcgY29tcGlsZV8xLlNjaGVtYUVudih7IHNjaGVtYToge30sIHNjaGVtYUlkIH0pOwogICAgICAgICAgc2NoID0gY29tcGlsZV8xLnJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCBrZXlSZWYpOwogICAgICAgICAgaWYgKCFzY2gpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIHRoaXMucmVmc1trZXlSZWZdID0gc2NoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGVTY2hlbWFFbnYoc2NoKTsKICAgICAgfQogICAgICAvLyBSZW1vdmUgY2FjaGVkIHNjaGVtYShzKS4KICAgICAgLy8gSWYgbm8gcGFyYW1ldGVyIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyBidXQgbWV0YS1zY2hlbWFzIGFyZSByZW1vdmVkLgogICAgICAvLyBJZiBSZWdFeHAgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIHdpdGgga2V5L2lkIG1hdGNoaW5nIHBhdHRlcm4gYnV0IG1ldGEtc2NoZW1hcyBhcmUgcmVtb3ZlZC4KICAgICAgLy8gRXZlbiBpZiBzY2hlbWEgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBzY2hlbWFzIGl0IHN0aWxsIGNhbiBiZSByZW1vdmVkIGFzIG90aGVyIHNjaGVtYXMgaGF2ZSBsb2NhbCByZWZlcmVuY2VzLgogICAgICByZW1vdmVTY2hlbWEoc2NoZW1hS2V5UmVmKSB7CiAgICAgICAgaWYgKHNjaGVtYUtleVJlZiBpbnN0YW5jZW9mIFJlZ0V4cCkgewogICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMsIHNjaGVtYUtleVJlZik7CiAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxTY2hlbWFzKHRoaXMucmVmcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFLZXlSZWYpIHsKICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFsbFNjaGVtYXModGhpcy5zY2hlbWFzKTsKICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnJlZnMpOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIGNhc2UgInN0cmluZyI6IHsKICAgICAgICAgICAgY29uc3Qgc2NoID0gZ2V0U2NoRW52LmNhbGwodGhpcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICBkZWxldGUgdGhpcy5zY2hlbWFzW3NjaGVtYUtleVJlZl07CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlZnNbc2NoZW1hS2V5UmVmXTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NoZW1hS2V5UmVmOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVLZXkpOwogICAgICAgICAgICBsZXQgaWQgPSBzY2hlbWFLZXlSZWZbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICAgICAgaWYgKGlkKSB7CiAgICAgICAgICAgICAgaWQgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShpZCk7CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2NoZW1hc1tpZF07CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVmc1tpZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdi5yZW1vdmVTY2hlbWE6IGludmFsaWQgcGFyYW1ldGVyIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIGFkZCAidm9jYWJ1bGFyeSIgLSBhIGNvbGxlY3Rpb24gb2Yga2V5d29yZHMKICAgICAgYWRkVm9jYWJ1bGFyeShkZWZpbml0aW9ucykgewogICAgICAgIGZvciAoY29uc3QgZGVmIG9mIGRlZmluaXRpb25zKQogICAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYWRkS2V5d29yZChrd2RPckRlZiwgZGVmKSB7CiAgICAgICAgbGV0IGtleXdvcmQ7CiAgICAgICAgaWYgKHR5cGVvZiBrd2RPckRlZiA9PSAic3RyaW5nIikgewogICAgICAgICAga2V5d29yZCA9IGt3ZE9yRGVmOwogICAgICAgICAgaWYgKHR5cGVvZiBkZWYgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybigidGhlc2UgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCwgc2VlIGRvY3MgZm9yIGFkZEtleXdvcmQiKTsKICAgICAgICAgICAgZGVmLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGt3ZE9yRGVmID09ICJvYmplY3QiICYmIGRlZiA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWYgPSBrd2RPckRlZjsKICAgICAgICAgIGtleXdvcmQgPSBkZWYua2V5d29yZDsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXdvcmQpICYmICFrZXl3b3JkLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFkZEtleXdvcmRzOiBrZXl3b3JkIG11c3QgYmUgc3RyaW5nIG9yIG5vbi1lbXB0eSBhcnJheSIpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYWRkS2V5d29yZHMgcGFyYW1ldGVycyIpOwogICAgICAgIH0KICAgICAgICBjaGVja0tleXdvcmQuY2FsbCh0aGlzLCBrZXl3b3JkLCBkZWYpOwogICAgICAgIGlmICghZGVmKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCAoa3dkKSA9PiBhZGRSdWxlLmNhbGwodGhpcywga3dkKSk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAga2V5d29yZE1ldGFzY2hlbWEuY2FsbCh0aGlzLCBkZWYpOwogICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB7CiAgICAgICAgICAuLi5kZWYsCiAgICAgICAgICB0eXBlOiAoMCwgZGF0YVR5cGVfMS5nZXRKU09OVHlwZXMpKGRlZi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmLnNjaGVtYVR5cGUpCiAgICAgICAgfTsKICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCBkZWZpbml0aW9uLnR5cGUubGVuZ3RoID09PSAwID8gKGspID0+IGFkZFJ1bGUuY2FsbCh0aGlzLCBrLCBkZWZpbml0aW9uKSA6IChrKSA9PiBkZWZpbml0aW9uLnR5cGUuZm9yRWFjaCgodCkgPT4gYWRkUnVsZS5jYWxsKHRoaXMsIGssIGRlZmluaXRpb24sIHQpKSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0S2V5d29yZChrZXl3b3JkKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMuUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIHJldHVybiB0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiA/IHJ1bGUuZGVmaW5pdGlvbiA6ICEhcnVsZTsKICAgICAgfQogICAgICAvLyBSZW1vdmUga2V5d29yZAogICAgICByZW1vdmVLZXl3b3JkKGtleXdvcmQpIHsKICAgICAgICBjb25zdCB7IFJVTEVTIH0gPSB0aGlzOwogICAgICAgIGRlbGV0ZSBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXTsKICAgICAgICBkZWxldGUgUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgUlVMRVMucnVsZXMpIHsKICAgICAgICAgIGNvbnN0IGkgPSBncm91cC5ydWxlcy5maW5kSW5kZXgoKHJ1bGUpID0+IHJ1bGUua2V5d29yZCA9PT0ga2V5d29yZCk7CiAgICAgICAgICBpZiAoaSA+PSAwKQogICAgICAgICAgICBncm91cC5ydWxlcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIEFkZCBmb3JtYXQKICAgICAgYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCkgewogICAgICAgIGlmICh0eXBlb2YgZm9ybWF0ID09ICJzdHJpbmciKQogICAgICAgICAgZm9ybWF0ID0gbmV3IFJlZ0V4cChmb3JtYXQpOwogICAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZvcm1hdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBlcnJvcnNUZXh0KGVycm9ycyA9IHRoaXMuZXJyb3JzLCB7IHNlcGFyYXRvciA9ICIsICIsIGRhdGFWYXIgPSAiZGF0YSIgfSA9IHt9KSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybiAiTm8gZXJyb3JzIjsKICAgICAgICByZXR1cm4gZXJyb3JzLm1hcCgoZSkgPT4gYCR7ZGF0YVZhcn0ke2UuaW5zdGFuY2VQYXRofSAke2UubWVzc2FnZX1gKS5yZWR1Y2UoKHRleHQsIG1zZykgPT4gdGV4dCArIHNlcGFyYXRvciArIG1zZyk7CiAgICAgIH0KICAgICAgJGRhdGFNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIGtleXdvcmRzSnNvblBvaW50ZXJzKSB7CiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLlJVTEVTLmFsbDsKICAgICAgICBtZXRhU2NoZW1hID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtZXRhU2NoZW1hKSk7CiAgICAgICAgZm9yIChjb25zdCBqc29uUG9pbnRlciBvZiBrZXl3b3Jkc0pzb25Qb2ludGVycykgewogICAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBqc29uUG9pbnRlci5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgbGV0IGtleXdvcmRzID0gbWV0YVNjaGVtYTsKICAgICAgICAgIGZvciAoY29uc3Qgc2VnIG9mIHNlZ21lbnRzKQogICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzW3NlZ107CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBydWxlcykgewogICAgICAgICAgICBjb25zdCBydWxlID0gcnVsZXNba2V5XTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlICE9ICJvYmplY3QiKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjb25zdCB7ICRkYXRhIH0gPSBydWxlLmRlZmluaXRpb247CiAgICAgICAgICAgIGNvbnN0IHNjaGVtYTIgPSBrZXl3b3Jkc1trZXldOwogICAgICAgICAgICBpZiAoJGRhdGEgJiYgc2NoZW1hMikKICAgICAgICAgICAgICBrZXl3b3Jkc1trZXldID0gc2NoZW1hT3JEYXRhKHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWV0YVNjaGVtYTsKICAgICAgfQogICAgICBfcmVtb3ZlQWxsU2NoZW1hcyhzY2hlbWFzLCByZWdleCkgewogICAgICAgIGZvciAoY29uc3Qga2V5UmVmIGluIHNjaGVtYXMpIHsKICAgICAgICAgIGNvbnN0IHNjaCA9IHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgIGlmICghcmVnZXggfHwgcmVnZXgudGVzdChrZXlSZWYpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2ggJiYgIXNjaC5tZXRhKSB7CiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFzW2tleVJlZl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX2FkZFNjaGVtYShzY2hlbWEyLCBtZXRhLCBiYXNlSWQsIHZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hLCBhZGRTY2hlbWEgPSB0aGlzLm9wdHMuYWRkVXNlZFNjaGVtYSkgewogICAgICAgIGxldCBpZDsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiKSB7CiAgICAgICAgICBpZCA9IHNjaGVtYTJbc2NoZW1hSWRdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLmp0ZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3QiKTsKICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyICE9ICJib29sZWFuIikKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3Qgb3IgYm9vbGVhbiIpOwogICAgICAgIH0KICAgICAgICBsZXQgc2NoID0gdGhpcy5fY2FjaGUuZ2V0KHNjaGVtYTIpOwogICAgICAgIGlmIChzY2ggIT09IHZvaWQgMCkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoaWQgfHwgYmFzZUlkKTsKICAgICAgICBjb25zdCBsb2NhbFJlZnMgPSByZXNvbHZlXzEuZ2V0U2NoZW1hUmVmcy5jYWxsKHRoaXMsIHNjaGVtYTIsIGJhc2VJZCk7CiAgICAgICAgc2NoID0gbmV3IGNvbXBpbGVfMS5TY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCBtZXRhLCBiYXNlSWQsIGxvY2FsUmVmcyB9KTsKICAgICAgICB0aGlzLl9jYWNoZS5zZXQoc2NoLnNjaGVtYSwgc2NoKTsKICAgICAgICBpZiAoYWRkU2NoZW1hICYmICFiYXNlSWQuc3RhcnRzV2l0aCgiIyIpKSB7CiAgICAgICAgICBpZiAoYmFzZUlkKQogICAgICAgICAgICB0aGlzLl9jaGVja1VuaXF1ZShiYXNlSWQpOwogICAgICAgICAgdGhpcy5yZWZzW2Jhc2VJZF0gPSBzY2g7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZGF0ZVNjaGVtYSkKICAgICAgICAgIHRoaXMudmFsaWRhdGVTY2hlbWEoc2NoZW1hMiwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfQogICAgICBfY2hlY2tVbmlxdWUoaWQpIHsKICAgICAgICBpZiAodGhpcy5zY2hlbWFzW2lkXSB8fCB0aGlzLnJlZnNbaWRdKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSB3aXRoIGtleSBvciBpZCAiJHtpZH0iIGFscmVhZHkgZXhpc3RzYCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIF9jb21waWxlU2NoZW1hRW52KHNjaCkgewogICAgICAgIGlmIChzY2gubWV0YSkKICAgICAgICAgIHRoaXMuX2NvbXBpbGVNZXRhU2NoZW1hKHNjaCk7CiAgICAgICAgZWxzZQogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIGlmICghc2NoLnZhbGlkYXRlKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlOwogICAgICB9CiAgICAgIF9jb21waWxlTWV0YVNjaGVtYShzY2gpIHsKICAgICAgICBjb25zdCBjdXJyZW50T3B0cyA9IHRoaXMub3B0czsKICAgICAgICB0aGlzLm9wdHMgPSB0aGlzLl9tZXRhT3B0czsKICAgICAgICB0cnkgewogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLm9wdHMgPSBjdXJyZW50T3B0czsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBBanYuVmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGlvbl9lcnJvcl8xLmRlZmF1bHQ7CiAgICBBanYuTWlzc2luZ1JlZkVycm9yID0gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBBanY7CiAgICBmdW5jdGlvbiBjaGVja09wdGlvbnMoY2hlY2tPcHRzLCBvcHRpb25zLCBtc2csIGxvZyA9ICJlcnJvciIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2hlY2tPcHRzKSB7CiAgICAgICAgY29uc3Qgb3B0ID0ga2V5OwogICAgICAgIGlmIChvcHQgaW4gb3B0aW9ucykKICAgICAgICAgIHRoaXMubG9nZ2VyW2xvZ10oYCR7bXNnfTogb3B0aW9uICR7a2V5fS4gJHtjaGVja09wdHNbb3B0XX1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZ2V0U2NoRW52KGtleVJlZikgewogICAgICBrZXlSZWYgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXlSZWYpOwogICAgICByZXR1cm4gdGhpcy5zY2hlbWFzW2tleVJlZl0gfHwgdGhpcy5yZWZzW2tleVJlZl07CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsU2NoZW1hcygpIHsKICAgICAgY29uc3Qgb3B0c1NjaGVtYXMgPSB0aGlzLm9wdHMuc2NoZW1hczsKICAgICAgaWYgKCFvcHRzU2NoZW1hcykKICAgICAgICByZXR1cm47CiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdHNTY2hlbWFzKSkKICAgICAgICB0aGlzLmFkZFNjaGVtYShvcHRzU2NoZW1hcyk7CiAgICAgIGVsc2UKICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRzU2NoZW1hcykKICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKG9wdHNTY2hlbWFzW2tleV0sIGtleSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsRm9ybWF0cygpIHsKICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMub3B0cy5mb3JtYXRzKSB7CiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5vcHRzLmZvcm1hdHNbbmFtZV07CiAgICAgICAgaWYgKGZvcm1hdCkKICAgICAgICAgIHRoaXMuYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGFkZEluaXRpYWxLZXl3b3JkcyhkZWZzKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlZnMpKSB7CiAgICAgICAgdGhpcy5hZGRWb2NhYnVsYXJ5KGRlZnMpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmxvZ2dlci53YXJuKCJrZXl3b3JkcyBvcHRpb24gYXMgbWFwIGlzIGRlcHJlY2F0ZWQsIHBhc3MgYXJyYXkiKTsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIGRlZnMpIHsKICAgICAgICBjb25zdCBkZWYgPSBkZWZzW2tleXdvcmRdOwogICAgICAgIGlmICghZGVmLmtleXdvcmQpCiAgICAgICAgICBkZWYua2V5d29yZCA9IGtleXdvcmQ7CiAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGdldE1ldGFTY2hlbWFPcHRpb25zKCkgewogICAgICBjb25zdCBtZXRhT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CiAgICAgIGZvciAoY29uc3Qgb3B0IG9mIE1FVEFfSUdOT1JFX09QVElPTlMpCiAgICAgICAgZGVsZXRlIG1ldGFPcHRzW29wdF07CiAgICAgIHJldHVybiBtZXRhT3B0czsKICAgIH0KICAgIHZhciBub0xvZ3MgPSB7IGxvZygpIHsKICAgIH0sIHdhcm4oKSB7CiAgICB9LCBlcnJvcigpIHsKICAgIH0gfTsKICAgIGZ1bmN0aW9uIGdldExvZ2dlcihsb2dnZXIpIHsKICAgICAgaWYgKGxvZ2dlciA9PT0gZmFsc2UpCiAgICAgICAgcmV0dXJuIG5vTG9nczsKICAgICAgaWYgKGxvZ2dlciA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybiBjb25zb2xlOwogICAgICBpZiAobG9nZ2VyLmxvZyAmJiBsb2dnZXIud2FybiAmJiBsb2dnZXIuZXJyb3IpCiAgICAgICAgcmV0dXJuIGxvZ2dlcjsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2dnZXIgbXVzdCBpbXBsZW1lbnQgbG9nLCB3YXJuIGFuZCBlcnJvciBtZXRob2RzIik7CiAgICB9CiAgICB2YXIgS0VZV09SRF9OQU1FID0gL15bYS16XyRdW2EtejAtOV8kOi1dKiQvaTsKICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZChrZXl3b3JkLCBkZWYpIHsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgKDAsIHV0aWxfMS5lYWNoSXRlbSkoa2V5d29yZCwgKGt3ZCkgPT4gewogICAgICAgIGlmIChSVUxFUy5rZXl3b3Jkc1trd2RdKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXl3b3JkICR7a3dkfSBpcyBhbHJlYWR5IGRlZmluZWRgKTsKICAgICAgICBpZiAoIUtFWVdPUkRfTkFNRS50ZXN0KGt3ZCkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtrd2R9IGhhcyBpbnZhbGlkIG5hbWVgKTsKICAgICAgfSk7CiAgICAgIGlmICghZGVmKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiAhKCJjb2RlIiBpbiBkZWYgfHwgInZhbGlkYXRlIiBpbiBkZWYpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCckZGF0YSBrZXl3b3JkIG11c3QgaGF2ZSAiY29kZSIgb3IgInZhbGlkYXRlIiBmdW5jdGlvbicpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhZGRSdWxlKGtleXdvcmQsIGRlZmluaXRpb24sIGRhdGFUeXBlKSB7CiAgICAgIHZhciBfYTsKICAgICAgY29uc3QgcG9zdCA9IGRlZmluaXRpb24gPT09IG51bGwgfHwgZGVmaW5pdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmaW5pdGlvbi5wb3N0OwogICAgICBpZiAoZGF0YVR5cGUgJiYgcG9zdCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgd2l0aCAicG9zdCIgZmxhZyBjYW5ub3QgaGF2ZSAidHlwZSInKTsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgbGV0IHJ1bGVHcm91cCA9IHBvc3QgPyBSVUxFUy5wb3N0IDogUlVMRVMucnVsZXMuZmluZCgoeyB0eXBlOiB0IH0pID0+IHQgPT09IGRhdGFUeXBlKTsKICAgICAgaWYgKCFydWxlR3JvdXApIHsKICAgICAgICBydWxlR3JvdXAgPSB7IHR5cGU6IGRhdGFUeXBlLCBydWxlczogW10gfTsKICAgICAgICBSVUxFUy5ydWxlcy5wdXNoKHJ1bGVHcm91cCk7CiAgICAgIH0KICAgICAgUlVMRVMua2V5d29yZHNba2V5d29yZF0gPSB0cnVlOwogICAgICBpZiAoIWRlZmluaXRpb24pCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBydWxlID0gewogICAgICAgIGtleXdvcmQsCiAgICAgICAgZGVmaW5pdGlvbjogewogICAgICAgICAgLi4uZGVmaW5pdGlvbiwKICAgICAgICAgIHR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi5zY2hlbWFUeXBlKQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKGRlZmluaXRpb24uYmVmb3JlKQogICAgICAgIGFkZEJlZm9yZVJ1bGUuY2FsbCh0aGlzLCBydWxlR3JvdXAsIHJ1bGUsIGRlZmluaXRpb24uYmVmb3JlKTsKICAgICAgZWxzZQogICAgICAgIHJ1bGVHcm91cC5ydWxlcy5wdXNoKHJ1bGUpOwogICAgICBSVUxFUy5hbGxba2V5d29yZF0gPSBydWxlOwogICAgICAoX2EgPSBkZWZpbml0aW9uLmltcGxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb3JFYWNoKChrd2QpID0+IHRoaXMuYWRkS2V5d29yZChrd2QpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFkZEJlZm9yZVJ1bGUocnVsZUdyb3VwLCBydWxlLCBiZWZvcmUpIHsKICAgICAgY29uc3QgaSA9IHJ1bGVHcm91cC5ydWxlcy5maW5kSW5kZXgoKF9ydWxlKSA9PiBfcnVsZS5rZXl3b3JkID09PSBiZWZvcmUpOwogICAgICBpZiAoaSA+PSAwKSB7CiAgICAgICAgcnVsZUdyb3VwLnJ1bGVzLnNwbGljZShpLCAwLCBydWxlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBydWxlR3JvdXAucnVsZXMucHVzaChydWxlKTsKICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBydWxlICR7YmVmb3JlfSBpcyBub3QgZGVmaW5lZGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBrZXl3b3JkTWV0YXNjaGVtYShkZWYpIHsKICAgICAgbGV0IHsgbWV0YVNjaGVtYSB9ID0gZGVmOwogICAgICBpZiAobWV0YVNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiB0aGlzLm9wdHMuJGRhdGEpCiAgICAgICAgbWV0YVNjaGVtYSA9IHNjaGVtYU9yRGF0YShtZXRhU2NoZW1hKTsKICAgICAgZGVmLnZhbGlkYXRlU2NoZW1hID0gdGhpcy5jb21waWxlKG1ldGFTY2hlbWEsIHRydWUpOwogICAgfQogICAgdmFyICRkYXRhUmVmID0gewogICAgICAkcmVmOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jIgogICAgfTsKICAgIGZ1bmN0aW9uIHNjaGVtYU9yRGF0YShzY2hlbWEyKSB7CiAgICAgIHJldHVybiB7IGFueU9mOiBbc2NoZW1hMiwgJGRhdGFSZWZdIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pZC5qcwp2YXIgcmVxdWlyZV9pZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvaWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZCIsCiAgICAgIGNvZGUoKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOT1QgU1VQUE9SVEVEOiBrZXl3b3JkICJpZCIsIHVzZSAiJGlkIiBmb3Igc2NoZW1hIElEJyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzCnZhciByZXF1aXJlX3JlZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYWxsUmVmID0gZXhwb3J0czIuZ2V0VmFsaWRhdGUgPSB2b2lkIDA7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIiRyZWYiLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiAkcmVmLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgYmFzZUlkLCBzY2hlbWFFbnY6IGVudiwgdmFsaWRhdGVOYW1lLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgICAgY29uc3QgeyByb290IH0gPSBlbnY7CiAgICAgICAgaWYgKCgkcmVmID09PSAiIyIgfHwgJHJlZiA9PT0gIiMvIikgJiYgYmFzZUlkID09PSByb290LmJhc2VJZCkKICAgICAgICAgIHJldHVybiBjYWxsUm9vdFJlZigpOwogICAgICAgIGNvbnN0IHNjaE9yRW52ID0gY29tcGlsZV8xLnJlc29sdmVSZWYuY2FsbChzZWxmMiwgcm9vdCwgYmFzZUlkLCAkcmVmKTsKICAgICAgICBpZiAoc2NoT3JFbnYgPT09IHZvaWQgMCkKICAgICAgICAgIHRocm93IG5ldyByZWZfZXJyb3JfMS5kZWZhdWx0KGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgJHJlZik7CiAgICAgICAgaWYgKHNjaE9yRW52IGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgIHJldHVybiBjYWxsVmFsaWRhdGUoc2NoT3JFbnYpOwogICAgICAgIHJldHVybiBpbmxpbmVSZWZTY2hlbWEoc2NoT3JFbnYpOwogICAgICAgIGZ1bmN0aW9uIGNhbGxSb290UmVmKCkgewogICAgICAgICAgaWYgKGVudiA9PT0gcm9vdCkKICAgICAgICAgICAgcmV0dXJuIGNhbGxSZWYoY3h0LCB2YWxpZGF0ZU5hbWUsIGVudiwgZW52LiRhc3luYyk7CiAgICAgICAgICBjb25zdCByb290TmFtZSA9IGdlbi5zY29wZVZhbHVlKCJyb290IiwgeyByZWY6IHJvb3QgfSk7CiAgICAgICAgICByZXR1cm4gY2FsbFJlZihjeHQsICgwLCBjb2RlZ2VuXzEuXylgJHtyb290TmFtZX0udmFsaWRhdGVgLCByb290LCByb290LiRhc3luYyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZShzY2gpIHsKICAgICAgICAgIGNvbnN0IHYgPSBnZXRWYWxpZGF0ZShjeHQsIHNjaCk7CiAgICAgICAgICBjYWxsUmVmKGN4dCwgdiwgc2NoLCBzY2guJGFzeW5jKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaW5saW5lUmVmU2NoZW1hKHNjaCkgewogICAgICAgICAgY29uc3Qgc2NoTmFtZSA9IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCBvcHRzLmNvZGUuc291cmNlID09PSB0cnVlID8geyByZWY6IHNjaCwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaCkgfSA6IHsgcmVmOiBzY2ggfSk7CiAgICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgICAgY29uc3Qgc2NoQ3h0ID0gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgICBkYXRhVHlwZXM6IFtdLAogICAgICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaE5hbWUsCiAgICAgICAgICAgIGVyclNjaGVtYVBhdGg6ICRyZWYKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQpOwogICAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0ZShjeHQsIHNjaCkgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gZ2VuLnNjb3BlVmFsdWUoInZhbGlkYXRlIiwgeyByZWY6IHNjaC52YWxpZGF0ZSB9KSA6ICgwLCBjb2RlZ2VuXzEuXylgJHtnZW4uc2NvcGVWYWx1ZSgid3JhcHBlciIsIHsgcmVmOiBzY2ggfSl9LnZhbGlkYXRlYDsKICAgIH0KICAgIGV4cG9ydHMyLmdldFZhbGlkYXRlID0gZ2V0VmFsaWRhdGU7CiAgICBmdW5jdGlvbiBjYWxsUmVmKGN4dCwgdiwgc2NoLCAkYXN5bmMpIHsKICAgICAgY29uc3QgeyBnZW4sIGl0IH0gPSBjeHQ7CiAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBzY2hlbWFFbnY6IGVudiwgb3B0cyB9ID0gaXQ7CiAgICAgIGNvbnN0IHBhc3NDeHQgPSBvcHRzLnBhc3NDb250ZXh0ID8gbmFtZXNfMS5kZWZhdWx0LnRoaXMgOiBjb2RlZ2VuXzEubmlsOwogICAgICBpZiAoJGFzeW5jKQogICAgICAgIGNhbGxBc3luY1JlZigpOwogICAgICBlbHNlCiAgICAgICAgY2FsbFN5bmNSZWYoKTsKICAgICAgZnVuY3Rpb24gY2FsbEFzeW5jUmVmKCkgewogICAgICAgIGlmICghZW52LiRhc3luYykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIHJlZmVyZW5jZWQgYnkgc3luYyBzY2hlbWEiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIik7CiAgICAgICAgZ2VuLnRyeSgoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7KDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpfWApOwogICAgICAgICAgYWRkRXZhbHVhdGVkRnJvbSh2KTsKICAgICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICB9LCAoZSkgPT4gewogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgISgke2V9IGluc3RhbmNlb2YgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KWAsICgpID0+IGdlbi50aHJvdyhlKSk7CiAgICAgICAgICBhZGRFcnJvcnNGcm9tKGUpOwogICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKTsKICAgICAgICB9KTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbGxTeW5jUmVmKCkgewogICAgICAgIGN4dC5yZXN1bHQoKDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpLCAoKSA9PiBhZGRFdmFsdWF0ZWRGcm9tKHYpLCAoKSA9PiBhZGRFcnJvcnNGcm9tKHYpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRFcnJvcnNGcm9tKHNvdXJjZSkgewogICAgICAgIGNvbnN0IGVycnMgPSAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCk7CiAgICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZFcnJvcnN9Lmxlbmd0aGApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkZEV2YWx1YXRlZEZyb20oc291cmNlKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmICghaXQub3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBzY2hFdmFsdWF0ZWQgPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gudmFsaWRhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ldmFsdWF0ZWQ7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY1Byb3BzKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgc2NoRXZhbHVhdGVkLnByb3BzLCBpdC5wcm9wcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZ2VuLnZhcigicHJvcHMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQucHJvcHNgKTsKICAgICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBwcm9wcywgaXQucHJvcHMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGl0Lml0ZW1zICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY0l0ZW1zKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQuaXRlbXMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoRXZhbHVhdGVkLml0ZW1zLCBpdC5pdGVtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2VuLnZhcigiaXRlbXMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQuaXRlbXNgKTsKICAgICAgICAgICAgaXQuaXRlbXMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQuaXRlbXMoZ2VuLCBpdGVtcywgaXQuaXRlbXMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmNhbGxSZWYgPSBjYWxsUmVmOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb3JlL2luZGV4LmpzCnZhciByZXF1aXJlX2NvcmUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGlkXzEgPSByZXF1aXJlX2lkKCk7CiAgICB2YXIgcmVmXzEgPSByZXF1aXJlX3JlZigpOwogICAgdmFyIGNvcmUyID0gWwogICAgICAiJHNjaGVtYSIsCiAgICAgICIkaWQiLAogICAgICAiJGRlZnMiLAogICAgICAiJHZvY2FidWxhcnkiLAogICAgICB7IGtleXdvcmQ6ICIkY29tbWVudCIgfSwKICAgICAgImRlZmluaXRpb25zIiwKICAgICAgaWRfMS5kZWZhdWx0LAogICAgICByZWZfMS5kZWZhdWx0CiAgICBdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGNvcmUyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXROdW1iZXIuanMKdmFyIHJlcXVpcmVfbGltaXROdW1iZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0TnVtYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgb3BzID0gY29kZWdlbl8xLm9wZXJhdG9yczsKICAgIHZhciBLV0RzID0gewogICAgICBtYXhpbXVtOiB7IG9rU3RyOiAiPD0iLCBvazogb3BzLkxURSwgZmFpbDogb3BzLkdUIH0sCiAgICAgIG1pbmltdW06IHsgb2tTdHI6ICI+PSIsIG9rOiBvcHMuR1RFLCBmYWlsOiBvcHMuTFQgfSwKICAgICAgZXhjbHVzaXZlTWF4aW11bTogeyBva1N0cjogIjwiLCBvazogb3BzLkxULCBmYWlsOiBvcHMuR1RFIH0sCiAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsgb2tTdHI6ICI+Iiwgb2s6IG9wcy5HVCwgZmFpbDogb3BzLkxURSB9CiAgICB9OwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkLCBzY2hlbWFDb2RlIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IGJlICR7S1dEc1trZXl3b3JkXS5va1N0cn0gJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtjb21wYXJpc29uOiAke0tXRHNba2V5d29yZF0ub2tTdHJ9LCBsaW1pdDogJHtzY2hlbWFDb2RlfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ICR7S1dEc1trZXl3b3JkXS5mYWlsfSAke3NjaGVtYUNvZGV9IHx8IGlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbXVsdGlwbGVPZi5qcwp2YXIgcmVxdWlyZV9tdWx0aXBsZU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9tdWx0aXBsZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgYmUgbXVsdGlwbGUgb2YgJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHttdWx0aXBsZU9mOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibXVsdGlwbGVPZiIsCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHByZWMgPSBpdC5vcHRzLm11bHRpcGxlT2ZQcmVjaXNpb247CiAgICAgICAgY29uc3QgcmVzID0gZ2VuLmxldCgicmVzIik7CiAgICAgICAgY29uc3QgaW52YWxpZCA9IHByZWMgPyAoMCwgY29kZWdlbl8xLl8pYE1hdGguYWJzKE1hdGgucm91bmQoJHtyZXN9KSAtICR7cmVzfSkgPiAxZS0ke3ByZWN9YCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtyZXN9ICE9PSBwYXJzZUludCgke3Jlc30pYDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgKCR7c2NoZW1hQ29kZX0gPT09IDAgfHwgKCR7cmVzfSA9ICR7ZGF0YX0vJHtzY2hlbWFDb2RlfSwgJHtpbnZhbGlkfSkpYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoLmpzCnZhciByZXF1aXJlX3VjczJsZW5ndGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdWNzMmxlbmd0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZnVuY3Rpb24gdWNzMmxlbmd0aChzdHIyKSB7CiAgICAgIGNvbnN0IGxlbiA9IHN0cjIubGVuZ3RoOwogICAgICBsZXQgbGVuZ3RoID0gMDsKICAgICAgbGV0IHBvcyA9IDA7CiAgICAgIGxldCB2YWx1ZTsKICAgICAgd2hpbGUgKHBvcyA8IGxlbikgewogICAgICAgIGxlbmd0aCsrOwogICAgICAgIHZhbHVlID0gc3RyMi5jaGFyQ29kZUF0KHBvcysrKTsKICAgICAgICBpZiAodmFsdWUgPj0gNTUyOTYgJiYgdmFsdWUgPD0gNTYzMTkgJiYgcG9zIDwgbGVuKSB7CiAgICAgICAgICB2YWx1ZSA9IHN0cjIuY2hhckNvZGVBdChwb3MpOwogICAgICAgICAgaWYgKCh2YWx1ZSAmIDY0NTEyKSA9PT0gNTYzMjApCiAgICAgICAgICAgIHBvcysrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbGVuZ3RoOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IHVjczJsZW5ndGg7CiAgICB1Y3MybGVuZ3RoLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoIikuZGVmYXVsdCc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdExlbmd0aC5qcwp2YXIgcmVxdWlyZV9saW1pdExlbmd0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXRMZW5ndGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciB1Y3MybGVuZ3RoXzEgPSByZXF1aXJlX3VjczJsZW5ndGgoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IGNoYXJhY3RlcnNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4TGVuZ3RoIiwgIm1pbkxlbmd0aCJdLAogICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3Qgb3AgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuR1QgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLkxUOwogICAgICAgIGNvbnN0IGxlbiA9IGl0Lm9wdHMudW5pY29kZSA9PT0gZmFsc2UgPyAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgdXRpbF8xLnVzZUZ1bmMpKGN4dC5nZW4sIHVjczJsZW5ndGhfMS5kZWZhdWx0KX0oJHtkYXRhfSlgOwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBtYXRjaCBwYXR0ZXJuICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtwYXR0ZXJuOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicGF0dGVybiIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB1ID0gaXQub3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgICAgY29uc3QgcmVnRXhwID0gJGRhdGEgPyAoMCwgY29kZWdlbl8xLl8pYChuZXcgUmVnRXhwKCR7c2NoZW1hQ29kZX0sICR7dX0pKWAgOiAoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgc2NoZW1hMik7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEke3JlZ0V4cH0udGVzdCgke2RhdGF9KWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9saW1pdFByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSB7CiAgICAgICAgY29uc3QgY29tcCA9IGtleXdvcmQgPT09ICJtYXhQcm9wZXJ0aWVzIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IHByb3BlcnRpZXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4UHJvcGVydGllcyIsICJtaW5Qcm9wZXJ0aWVzIl0sCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGNvbnN0IG9wID0ga2V5d29yZCA9PT0gIm1heFByb3BlcnRpZXMiID8gY29kZWdlbl8xLm9wZXJhdG9ycy5HVCA6IGNvZGVnZW5fMS5vcGVyYXRvcnMuTFQ7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYE9iamVjdC5rZXlzKCR7ZGF0YX0pLmxlbmd0aCAke29wfSAke3NjaGVtYUNvZGV9YCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcmVxdWlyZWQuanMKdmFyIHJlcXVpcmVfcmVxdWlyZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3JlcXVpcmVkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5IH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSAnJHttaXNzaW5nUHJvcGVydHl9J2AsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge21pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicmVxdWlyZWQiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGRhdGEsICRkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cyB9ID0gaXQ7CiAgICAgICAgaWYgKCEkZGF0YSAmJiBzY2hlbWEyLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gb3B0cy5sb29wUmVxdWlyZWQ7CiAgICAgICAgaWYgKGl0LmFsbEVycm9ycykKICAgICAgICAgIGFsbEVycm9yc01vZGUoKTsKICAgICAgICBlbHNlCiAgICAgICAgICBleGl0T25FcnJvck1vZGUoKTsKICAgICAgICBpZiAob3B0cy5zdHJpY3RSZXF1aXJlZCkgewogICAgICAgICAgY29uc3QgcHJvcHMgPSBjeHQucGFyZW50U2NoZW1hLnByb3BlcnRpZXM7CiAgICAgICAgICBjb25zdCB7IGRlZmluZWRQcm9wZXJ0aWVzIH0gPSBjeHQuaXQ7CiAgICAgICAgICBmb3IgKGNvbnN0IHJlcXVpcmVkS2V5IG9mIHNjaGVtYTIpIHsKICAgICAgICAgICAgaWYgKChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHNbcmVxdWlyZWRLZXldKSA9PT0gdm9pZCAwICYmICFkZWZpbmVkUHJvcGVydGllcy5oYXMocmVxdWlyZWRLZXkpKSB7CiAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hUGF0aCA9IGl0LnNjaGVtYUVudi5iYXNlSWQgKyBpdC5lcnJTY2hlbWFQYXRoOwogICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGByZXF1aXJlZCBwcm9wZXJ0eSAiJHtyZXF1aXJlZEtleX0iIGlzIG5vdCBkZWZpbmVkIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0UmVxdWlyZWQpYDsKICAgICAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgaXQub3B0cy5zdHJpY3RSZXF1aXJlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWxsRXJyb3JzTW9kZSgpIHsKICAgICAgICAgIGlmICh1c2VMb29wIHx8ICRkYXRhKSB7CiAgICAgICAgICAgIGN4dC5ibG9jayRkYXRhKGNvZGVnZW5fMS5uaWwsIGxvb3BBbGxSZXF1aXJlZCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hMikgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBleGl0T25FcnJvck1vZGUoKSB7CiAgICAgICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICAgICAgaWYgKHVzZUxvb3AgfHwgJGRhdGEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIHRydWUpOwogICAgICAgICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgKCkgPT4gbG9vcFVudGlsTWlzc2luZyhtaXNzaW5nLCB2YWxpZCkpOwogICAgICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBzY2hlbWEyLCBtaXNzaW5nKSk7CiAgICAgICAgICAgICgwLCBjb2RlXzEucmVwb3J0TWlzc2luZ1Byb3ApKGN4dCwgbWlzc2luZyk7CiAgICAgICAgICAgIGdlbi5lbHNlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BBbGxSZXF1aXJlZCgpIHsKICAgICAgICAgIGdlbi5mb3JPZigicHJvcCIsIHNjaGVtYUNvZGUsIChwcm9wKSA9PiB7CiAgICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IHByb3AgfSk7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLm5vUHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BVbnRpbE1pc3NpbmcobWlzc2luZywgdmFsaWQpIHsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IG1pc3NpbmcgfSk7CiAgICAgICAgICBnZW4uZm9yT2YobWlzc2luZywgc2NoZW1hQ29kZSwgKCkgPT4gewogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCAoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIG1pc3NpbmcsIG9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIGNvZGVnZW5fMS5uaWwpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdEl0ZW1zLmpzCnZhciByZXF1aXJlX2xpbWl0SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0SXRlbXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4SXRlbXMiID8gIm1vcmUiIDogImZld2VyIjsKICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgTk9UIGhhdmUgJHtjb21wfSB0aGFuICR7c2NoZW1hQ29kZX0gaXRlbXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4SXRlbXMiLCAibWluSXRlbXMiXSwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUgfSA9IGN4dDsKICAgICAgICBjb25zdCBvcCA9IGtleXdvcmQgPT09ICJtYXhJdGVtcyIgPyBjb2RlZ2VuXzEub3BlcmF0b3JzLkdUIDogY29kZWdlbl8xLm9wZXJhdG9ycy5MVDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMKdmFyIHJlcXVpcmVfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICBlcXVhbC5jb2RlID0gJ3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvZXF1YWwiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBlcXVhbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3VuaXF1ZUl0ZW1zLmpzCnZhciByZXF1aXJlX3VuaXF1ZUl0ZW1zID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi91bmlxdWVJdGVtcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGksIGogfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBkdXBsaWNhdGUgaXRlbXMgKGl0ZW1zICMjICR7an0gYW5kICR7aX0gYXJlIGlkZW50aWNhbClgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBpLCBqIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7aTogJHtpfSwgajogJHtqfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInVuaXF1ZUl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogImJvb2xlYW4iLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmICFzY2hlbWEyKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLmxldCgidmFsaWQiKTsKICAgICAgICBjb25zdCBpdGVtVHlwZXMgPSBwYXJlbnRTY2hlbWEuaXRlbXMgPyAoMCwgZGF0YVR5cGVfMS5nZXRTY2hlbWFUeXBlcykocGFyZW50U2NoZW1hLml0ZW1zKSA6IFtdOwogICAgICAgIGN4dC5ibG9jayRkYXRhKHZhbGlkLCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zLCAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gPT09IGZhbHNlYCk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKCkgewogICAgICAgICAgY29uc3QgaSA9IGdlbi5sZXQoImkiLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgICBjb25zdCBqID0gZ2VuLmxldCgiaiIpOwogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGksIGogfSk7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aX0gPiAxYCwgKCkgPT4gKGNhbk9wdGltaXplKCkgPyBsb29wTiA6IGxvb3BOMikoaSwgaikpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjYW5PcHRpbWl6ZSgpIHsKICAgICAgICAgIHJldHVybiBpdGVtVHlwZXMubGVuZ3RoID4gMCAmJiAhaXRlbVR5cGVzLnNvbWUoKHQpID0+IHQgPT09ICJvYmplY3QiIHx8IHQgPT09ICJhcnJheSIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsb29wTihpLCBqKSB7CiAgICAgICAgICBjb25zdCBpdGVtID0gZ2VuLm5hbWUoIml0ZW0iKTsKICAgICAgICAgIGNvbnN0IHdyb25nVHlwZSA9ICgwLCBkYXRhVHlwZV8xLmNoZWNrRGF0YVR5cGVzKShpdGVtVHlwZXMsIGl0ZW0sIGl0Lm9wdHMuc3RyaWN0TnVtYmVycywgZGF0YVR5cGVfMS5EYXRhVHlwZS5Xcm9uZyk7CiAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2VuLmNvbnN0KCJpbmRpY2VzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICAgICAgZ2VuLmZvcigoMCwgY29kZWdlbl8xLl8pYDske2l9LS07YCwgKCkgPT4gewogICAgICAgICAgICBnZW4ubGV0KGl0ZW0sICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfVske2l9XWApOwogICAgICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoMCwgY29kZWdlbl8xLl8pYGNvbnRpbnVlYCk7CiAgICAgICAgICAgIGlmIChpdGVtVHlwZXMubGVuZ3RoID4gMSkKICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtpdGVtfSA9PSAic3RyaW5nImAsICgwLCBjb2RlZ2VuXzEuXylgJHtpdGVtfSArPSAiXyJgKTsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7aW5kaWNlc31bJHtpdGVtfV0gPT0gIm51bWJlciJgLCAoKSA9PiB7CiAgICAgICAgICAgICAgZ2VuLmFzc2lnbihqLCAoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV1gKTsKICAgICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsoKTsKICAgICAgICAgICAgfSkuY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV0gPSAke2l9YCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbG9vcE4yKGksIGopIHsKICAgICAgICAgIGNvbnN0IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgICAgY29uc3Qgb3V0ZXIgPSBnZW4ubmFtZSgib3V0ZXIiKTsKICAgICAgICAgIGdlbi5sYWJlbChvdXRlcikuZm9yKCgwLCBjb2RlZ2VuXzEuXylgOyR7aX0tLTtgLCAoKSA9PiBnZW4uZm9yKCgwLCBjb2RlZ2VuXzEuXylgJHtqfSA9ICR7aX07ICR7an0tLTtgLCAoKSA9PiBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2VxbH0oJHtkYXRhfVske2l9XSwgJHtkYXRhfVske2p9XSlgLCAoKSA9PiB7CiAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsob3V0ZXIpOwogICAgICAgICAgfSkpKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vY29uc3QuanMKdmFyIHJlcXVpcmVfY29uc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2NvbnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gY29uc3RhbnQiLAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWxsb3dlZFZhbHVlOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiY29uc3QiLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWFDb2RlLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGN4dDsKICAgICAgICBpZiAoJGRhdGEgfHwgc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IikgewogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEkeygwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpfSgke2RhdGF9LCAke3NjaGVtYUNvZGV9KWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjeHQuZmFpbCgoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hMn0gIT09ICR7ZGF0YX1gKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vZW51bS5qcwp2YXIgcmVxdWlyZV9lbnVtID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9lbnVtLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gb25lIG9mIHRoZSBhbGxvd2VkIHZhbHVlcyIsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHthbGxvd2VkVmFsdWVzOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZW51bSIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmIHNjaGVtYTIubGVuZ3RoID09PSAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJlbnVtIG11c3QgaGF2ZSBub24tZW1wdHkgYXJyYXkiKTsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gaXQub3B0cy5sb29wRW51bTsKICAgICAgICBsZXQgZXFsOwogICAgICAgIGNvbnN0IGdldEVxbCA9ICgpID0+IGVxbCAhPT0gbnVsbCAmJiBlcWwgIT09IHZvaWQgMCA/IGVxbCA6IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgIGxldCB2YWxpZDsKICAgICAgICBpZiAodXNlTG9vcCB8fCAkZGF0YSkgewogICAgICAgICAgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICAgICAgY3h0LmJsb2NrJGRhdGEodmFsaWQsIGxvb3BFbnVtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgY29uc3QgdlNjaGVtYSA9IGdlbi5jb25zdCgidlNjaGVtYSIsIHNjaGVtYUNvZGUpOwogICAgICAgICAgdmFsaWQgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5zY2hlbWEyLm1hcCgoX3gsIGkpID0+IGVxdWFsQ29kZSh2U2NoZW1hLCBpKSkpOwogICAgICAgIH0KICAgICAgICBjeHQucGFzcyh2YWxpZCk7CiAgICAgICAgZnVuY3Rpb24gbG9vcEVudW0oKSB7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICBnZW4uZm9yT2YoInYiLCBzY2hlbWFDb2RlLCAodikgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2fSlgLCAoKSA9PiBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKS5icmVhaygpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGVxdWFsQ29kZSh2U2NoZW1hLCBpKSB7CiAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2ldOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2ggPT09ICJvYmplY3QiICYmIHNjaCAhPT0gbnVsbCA/ICgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2U2NoZW1hfVske2l9XSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSAke3NjaH1gOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcwp2YXIgcmVxdWlyZV92YWxpZGF0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGxpbWl0TnVtYmVyXzEgPSByZXF1aXJlX2xpbWl0TnVtYmVyKCk7CiAgICB2YXIgbXVsdGlwbGVPZl8xID0gcmVxdWlyZV9tdWx0aXBsZU9mKCk7CiAgICB2YXIgbGltaXRMZW5ndGhfMSA9IHJlcXVpcmVfbGltaXRMZW5ndGgoKTsKICAgIHZhciBwYXR0ZXJuXzEgPSByZXF1aXJlX3BhdHRlcm4oKTsKICAgIHZhciBsaW1pdFByb3BlcnRpZXNfMSA9IHJlcXVpcmVfbGltaXRQcm9wZXJ0aWVzKCk7CiAgICB2YXIgcmVxdWlyZWRfMSA9IHJlcXVpcmVfcmVxdWlyZWQoKTsKICAgIHZhciBsaW1pdEl0ZW1zXzEgPSByZXF1aXJlX2xpbWl0SXRlbXMoKTsKICAgIHZhciB1bmlxdWVJdGVtc18xID0gcmVxdWlyZV91bmlxdWVJdGVtcygpOwogICAgdmFyIGNvbnN0XzEgPSByZXF1aXJlX2NvbnN0KCk7CiAgICB2YXIgZW51bV8xID0gcmVxdWlyZV9lbnVtKCk7CiAgICB2YXIgdmFsaWRhdGlvbiA9IFsKICAgICAgLy8gbnVtYmVyCiAgICAgIGxpbWl0TnVtYmVyXzEuZGVmYXVsdCwKICAgICAgbXVsdGlwbGVPZl8xLmRlZmF1bHQsCiAgICAgIC8vIHN0cmluZwogICAgICBsaW1pdExlbmd0aF8xLmRlZmF1bHQsCiAgICAgIHBhdHRlcm5fMS5kZWZhdWx0LAogICAgICAvLyBvYmplY3QKICAgICAgbGltaXRQcm9wZXJ0aWVzXzEuZGVmYXVsdCwKICAgICAgcmVxdWlyZWRfMS5kZWZhdWx0LAogICAgICAvLyBhcnJheQogICAgICBsaW1pdEl0ZW1zXzEuZGVmYXVsdCwKICAgICAgdW5pcXVlSXRlbXNfMS5kZWZhdWx0LAogICAgICAvLyBhbnkKICAgICAgeyBrZXl3b3JkOiAidHlwZSIsIHNjaGVtYVR5cGU6IFsic3RyaW5nIiwgImFycmF5Il0gfSwKICAgICAgeyBrZXl3b3JkOiAibnVsbGFibGUiLCBzY2hlbWFUeXBlOiAiYm9vbGVhbiIgfSwKICAgICAgY29uc3RfMS5kZWZhdWx0LAogICAgICBlbnVtXzEuZGVmYXVsdAogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB2YWxpZGF0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzCnZhciByZXF1aXJlX2FkZGl0aW9uYWxJdGVtcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGxlbiB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlIG1vcmUgdGhhbiAke2xlbn0gaXRlbXNgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtsaW1pdDogJHtsZW59fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbEl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJib29sZWFuIiwgIm9iamVjdCJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICciYWRkaXRpb25hbEl0ZW1zIiBpcyBpZ25vcmVkIHdoZW4gIml0ZW1zIiBpcyBub3QgYW4gYXJyYXkgb2Ygc2NoZW1hcycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyhjeHQsIGl0ZW1zKTsKICAgICAgfQogICAgfTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zKGN4dCwgaXRlbXMpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IGxlbjogaXRlbXMubGVuZ3RoIH0pOwogICAgICAgIGN4dC5wYXNzKCgwLCBjb2RlZ2VuXzEuXylgJHtsZW59IDw9ICR7aXRlbXMubGVuZ3RofWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi52YXIoInZhbGlkIiwgKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPD0gJHtpdGVtcy5sZW5ndGh9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHZhbGlkYXRlSXRlbXModmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXModmFsaWQpIHsKICAgICAgICBnZW4uZm9yUmFuZ2UoImkiLCBpdGVtcy5sZW5ndGgsIGxlbiwgKGkpID0+IHsKICAgICAgICAgIGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkLCBkYXRhUHJvcDogaSwgZGF0YVByb3BUeXBlOiB1dGlsXzEuVHlwZS5OdW0gfSwgdmFsaWQpOwogICAgICAgICAgaWYgKCFpdC5hbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zID0gdmFsaWRhdGVBZGRpdGlvbmFsSXRlbXM7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaXRlbXMuanMKdmFyIHJlcXVpcmVfaXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVR1cGxlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImFycmF5IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuIHZhbGlkYXRlVHVwbGUoY3h0LCAiYWRkaXRpb25hbEl0ZW1zIiwgc2NoZW1hMik7CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVR1cGxlKGN4dCwgZXh0cmFJdGVtcywgc2NoQXJyID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgcGFyZW50U2NoZW1hLCBkYXRhLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBjaGVja1N0cmljdFR1cGxlKHBhcmVudFNjaGVtYSk7CiAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIHNjaEFyci5sZW5ndGggJiYgaXQuaXRlbXMgIT09IHRydWUpIHsKICAgICAgICBpdC5pdGVtcyA9IHV0aWxfMS5tZXJnZUV2YWx1YXRlZC5pdGVtcyhnZW4sIHNjaEFyci5sZW5ndGgsIGl0Lml0ZW1zKTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgc2NoQXJyLmZvckVhY2goKHNjaCwgaSkgPT4gewogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPiAke2l9YCwgKCkgPT4gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkLAogICAgICAgICAgc2NoZW1hUHJvcDogaSwKICAgICAgICAgIGRhdGFQcm9wOiBpCiAgICAgICAgfSwgdmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY2hlY2tTdHJpY3RUdXBsZShzY2gpIHsKICAgICAgICBjb25zdCB7IG9wdHMsIGVyclNjaGVtYVBhdGggfSA9IGl0OwogICAgICAgIGNvbnN0IGwgPSBzY2hBcnIubGVuZ3RoOwogICAgICAgIGNvbnN0IGZ1bGxUdXBsZSA9IGwgPT09IHNjaC5taW5JdGVtcyAmJiAobCA9PT0gc2NoLm1heEl0ZW1zIHx8IHNjaFtleHRyYUl0ZW1zXSA9PT0gZmFsc2UpOwogICAgICAgIGlmIChvcHRzLnN0cmljdFR1cGxlcyAmJiAhZnVsbFR1cGxlKSB7CiAgICAgICAgICBjb25zdCBtc2cgPSBgIiR7a2V5d29yZH0iIGlzICR7bH0tdHVwbGUsIGJ1dCBtaW5JdGVtcyBvciBtYXhJdGVtcy8ke2V4dHJhSXRlbXN9IGFyZSBub3Qgc3BlY2lmaWVkIG9yIGRpZmZlcmVudCBhdCBwYXRoICIke2VyclNjaGVtYVBhdGh9ImA7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgb3B0cy5zdHJpY3RUdXBsZXMpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVUdXBsZSA9IHZhbGlkYXRlVHVwbGU7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJlZml4SXRlbXMuanMKdmFyIHJlcXVpcmVfcHJlZml4SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3ByZWZpeEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgaXRlbXNfMSA9IHJlcXVpcmVfaXRlbXMoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJwcmVmaXhJdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsiYXJyYXkiXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlOiAoY3h0KSA9PiAoMCwgaXRlbXNfMS52YWxpZGF0ZVR1cGxlKShjeHQsICJpdGVtcyIpCiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcwp2YXIgcmVxdWlyZV9pdGVtczIwMjAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtsZW59IGl0ZW1zYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbGVuIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7bGVufX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIml0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBwcmVmaXhJdGVtcyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGl0Lml0ZW1zID0gdHJ1ZTsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChwcmVmaXhJdGVtcykKICAgICAgICAgICgwLCBhZGRpdGlvbmFsSXRlbXNfMS52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcykoY3h0LCBwcmVmaXhJdGVtcyk7CiAgICAgICAgZWxzZQogICAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvY29udGFpbnMuanMKdmFyIHJlcXVpcmVfY29udGFpbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2NvbnRhaW5zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBtaW4sIG1heCB9IH0pID0+IG1heCA9PT0gdm9pZCAwID8gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgY29udGFpbiBhdCBsZWFzdCAke21pbn0gdmFsaWQgaXRlbShzKWAgOiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7bWlufSBhbmQgbm8gbW9yZSB0aGFuICR7bWF4fSB2YWxpZCBpdGVtKHMpYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbWluLCBtYXggfSB9KSA9PiBtYXggPT09IHZvaWQgMCA/ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn19YCA6ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn0sIG1heENvbnRhaW5zOiAke21heH19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJjb250YWlucyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGxldCBtaW47CiAgICAgICAgbGV0IG1heDsKICAgICAgICBjb25zdCB7IG1pbkNvbnRhaW5zLCBtYXhDb250YWlucyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGlmIChpdC5vcHRzLm5leHQpIHsKICAgICAgICAgIG1pbiA9IG1pbkNvbnRhaW5zID09PSB2b2lkIDAgPyAxIDogbWluQ29udGFpbnM7CiAgICAgICAgICBtYXggPSBtYXhDb250YWluczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWluID0gMTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IG1pbiwgbWF4IH0pOwogICAgICAgIGlmIChtYXggPT09IHZvaWQgMCAmJiBtaW4gPT09IDApIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPT0gMCB3aXRob3V0ICJtYXhDb250YWlucyI6ICJjb250YWlucyIga2V5d29yZCBpZ25vcmVkYCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChtYXggIT09IHZvaWQgMCAmJiBtaW4gPiBtYXgpIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPiAibWF4Q29udGFpbnMiIGlzIGFsd2F5cyBpbnZhbGlkYCk7CiAgICAgICAgICBjeHQuZmFpbCgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICBsZXQgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtsZW59ID49ICR7bWlufWA7CiAgICAgICAgICBpZiAobWF4ICE9PSB2b2lkIDApCiAgICAgICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtsZW59IDw9ICR7bWF4fWA7CiAgICAgICAgICBjeHQucGFzcyhjb25kKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKG1heCA9PT0gdm9pZCAwICYmIG1pbiA9PT0gMSkgewogICAgICAgICAgdmFsaWRhdGVJdGVtcyh2YWxpZCwgKCkgPT4gZ2VuLmlmKHZhbGlkLCAoKSA9PiBnZW4uYnJlYWsoKSkpOwogICAgICAgIH0gZWxzZSBpZiAobWluID09PSAwKSB7CiAgICAgICAgICBnZW4ubGV0KHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGlmIChtYXggIT09IHZvaWQgMCkKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggPiAwYCwgdmFsaWRhdGVJdGVtc1dpdGhDb3VudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5sZXQodmFsaWQsIGZhbHNlKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKTsKICAgICAgICB9CiAgICAgICAgY3h0LnJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKSB7CiAgICAgICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgICAgIGNvbnN0IGNvdW50ID0gZ2VuLmxldCgiY291bnQiLCAwKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXMoc2NoVmFsaWQsICgpID0+IGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gY2hlY2tMaW1pdHMoY291bnQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXMoX3ZhbGlkLCBibG9jaykgewogICAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICBrZXl3b3JkOiAiY29udGFpbnMiLAogICAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICAgIGRhdGFQcm9wVHlwZTogdXRpbF8xLlR5cGUuTnVtLAogICAgICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUKICAgICAgICAgICAgfSwgX3ZhbGlkKTsKICAgICAgICAgICAgYmxvY2soKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja0xpbWl0cyhjb3VudCkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSsrYCk7CiAgICAgICAgICBpZiAobWF4ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtjb3VudH0gPj0gJHttaW59YCwgKCkgPT4gZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSkuYnJlYWsoKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSA+ICR7bWF4fWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5icmVhaygpKTsKICAgICAgICAgICAgaWYgKG1pbiA9PT0gMSkKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y291bnR9ID49ICR7bWlufWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIHRydWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzCnZhciByZXF1aXJlX2RlcGVuZGVuY2llcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVNjaGVtYURlcHMgPSBleHBvcnRzMi52YWxpZGF0ZVByb3BlcnR5RGVwcyA9IGV4cG9ydHMyLmVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIGV4cG9ydHMyLmVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgcHJvcGVydHksIGRlcHNDb3VudCwgZGVwcyB9IH0pID0+IHsKICAgICAgICBjb25zdCBwcm9wZXJ0eV9pZXMgPSBkZXBzQ291bnQgPT09IDEgPyAicHJvcGVydHkiIDogInByb3BlcnRpZXMiOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBoYXZlICR7cHJvcGVydHlfaWVzfSAke2RlcHN9IHdoZW4gcHJvcGVydHkgJHtwcm9wZXJ0eX0gaXMgcHJlc2VudGA7CiAgICAgIH0sCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IHByb3BlcnR5LCBkZXBzQ291bnQsIGRlcHMsIG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Byb3BlcnR5OiAke3Byb3BlcnR5fSwKICAgIG1pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9LAogICAgZGVwc0NvdW50OiAke2RlcHNDb3VudH0sCiAgICBkZXBzOiAke2RlcHN9fWAKICAgICAgLy8gVE9ETyBjaGFuZ2UgdG8gcmVmZXJlbmNlCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogImRlcGVuZGVuY2llcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3I6IGV4cG9ydHMyLmVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IFtwcm9wRGVwcywgc2NoRGVwc10gPSBzcGxpdERlcGVuZGVuY2llcyhjeHQpOwogICAgICAgIHZhbGlkYXRlUHJvcGVydHlEZXBzKGN4dCwgcHJvcERlcHMpOwogICAgICAgIHZhbGlkYXRlU2NoZW1hRGVwcyhjeHQsIHNjaERlcHMpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gc3BsaXREZXBlbmRlbmNpZXMoeyBzY2hlbWE6IHNjaGVtYTIgfSkgewogICAgICBjb25zdCBwcm9wZXJ0eURlcHMgPSB7fTsKICAgICAgY29uc3Qgc2NoZW1hRGVwcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIl9fcHJvdG9fXyIpCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBkZXBzID0gQXJyYXkuaXNBcnJheShzY2hlbWEyW2tleV0pID8gcHJvcGVydHlEZXBzIDogc2NoZW1hRGVwczsKICAgICAgICBkZXBzW2tleV0gPSBzY2hlbWEyW2tleV07CiAgICAgIH0KICAgICAgcmV0dXJuIFtwcm9wZXJ0eURlcHMsIHNjaGVtYURlcHNdOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eURlcHMoY3h0LCBwcm9wZXJ0eURlcHMgPSBjeHQuc2NoZW1hKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICBpZiAoT2JqZWN0LmtleXMocHJvcGVydHlEZXBzKS5sZW5ndGggPT09IDApCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcGVydHlEZXBzKSB7CiAgICAgICAgY29uc3QgZGVwcyA9IHByb3BlcnR5RGVwc1twcm9wXTsKICAgICAgICBpZiAoZGVwcy5sZW5ndGggPT09IDApCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBoYXNQcm9wZXJ0eSA9ICgwLCBjb2RlXzEucHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKTsKICAgICAgICBjeHQuc2V0UGFyYW1zKHsKICAgICAgICAgIHByb3BlcnR5OiBwcm9wLAogICAgICAgICAgZGVwc0NvdW50OiBkZXBzLmxlbmd0aCwKICAgICAgICAgIGRlcHM6IGRlcHMuam9pbigiLCAiKQogICAgICAgIH0pOwogICAgICAgIGlmIChpdC5hbGxFcnJvcnMpIHsKICAgICAgICAgIGdlbi5pZihoYXNQcm9wZXJ0eSwgKCkgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcFByb3Agb2YgZGVwcykgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBkZXBQcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aGFzUHJvcGVydHl9ICYmICgkeygwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBkZXBzLCBtaXNzaW5nKX0pYCk7CiAgICAgICAgICAoMCwgY29kZV8xLnJlcG9ydE1pc3NpbmdQcm9wKShjeHQsIG1pc3NpbmcpOwogICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlUHJvcGVydHlEZXBzID0gdmFsaWRhdGVQcm9wZXJ0eURlcHM7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVNjaGVtYURlcHMoY3h0LCBzY2hlbWFEZXBzID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgZm9yIChjb25zdCBwcm9wIGluIHNjaGVtYURlcHMpIHsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYURlcHNbcHJvcF0pKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgZ2VuLmlmKAogICAgICAgICAgKDAsIGNvZGVfMS5wcm9wZXJ0eUluRGF0YSkoZ2VuLCBkYXRhLCBwcm9wLCBpdC5vcHRzLm93blByb3BlcnRpZXMpLAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZCwgc2NoZW1hUHJvcDogcHJvcCB9LCB2YWxpZCk7CiAgICAgICAgICAgIGN4dC5tZXJnZVZhbGlkRXZhbHVhdGVkKHNjaEN4dCwgdmFsaWQpOwogICAgICAgICAgfSwKICAgICAgICAgICgpID0+IGdlbi52YXIodmFsaWQsIHRydWUpCiAgICAgICAgICAvLyBUT0RPIHZhcgogICAgICAgICk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVTY2hlbWFEZXBzID0gdmFsaWRhdGVTY2hlbWFEZXBzOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnR5TmFtZXMuanMKdmFyIHJlcXVpcmVfcHJvcGVydHlOYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJvcGVydHlOYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAicHJvcGVydHkgbmFtZSBtdXN0IGJlIHZhbGlkIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7cHJvcGVydHlOYW1lOiAke3BhcmFtcy5wcm9wZXJ0eU5hbWV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicHJvcGVydHlOYW1lcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiBbIm9iamVjdCIsICJib29sZWFuIl0sCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCgwLCB1dGlsXzEuYWx3YXlzVmFsaWRTY2hlbWEpKGl0LCBzY2hlbWEyKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIGdlbi5mb3JJbigia2V5IiwgZGF0YSwgKGtleSkgPT4gewogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IHByb3BlcnR5TmFtZToga2V5IH0pOwogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0eU5hbWVzIiwKICAgICAgICAgICAgZGF0YToga2V5LAogICAgICAgICAgICBkYXRhVHlwZXM6IFsic3RyaW5nIl0sCiAgICAgICAgICAgIHByb3BlcnR5TmFtZToga2V5LAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICB9LCB2YWxpZCk7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICBjeHQuZXJyb3IodHJ1ZSk7CiAgICAgICAgICAgIGlmICghaXQuYWxsRXJyb3JzKQogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hZGRpdGlvbmFsUHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbFByb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUyKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgbmFtZXNfMSA9IHJlcXVpcmVfbmFtZXMoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWRkaXRpb25hbFByb3BlcnR5OiAke3BhcmFtcy5hZGRpdGlvbmFsUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICB0eXBlOiBbIm9iamVjdCJdLAogICAgICBzY2hlbWFUeXBlOiBbImJvb2xlYW4iLCAib2JqZWN0Il0sCiAgICAgIGFsbG93VW5kZWZpbmVkOiB0cnVlLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFlcnJzQ291bnQpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBvcHRzIH0gPSBpdDsKICAgICAgICBpdC5wcm9wcyA9IHRydWU7CiAgICAgICAgaWYgKG9wdHMucmVtb3ZlQWRkaXRpb25hbCAhPT0gImFsbCIgJiYgKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHByb3BzID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShwYXJlbnRTY2hlbWEucHJvcGVydGllcyk7CiAgICAgICAgY29uc3QgcGF0UHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHBhcmVudFNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyk7CiAgICAgICAgY2hlY2tBZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgICAgIGN4dC5vaygoMCwgY29kZWdlbl8xLl8pYCR7ZXJyc0NvdW50fSA9PT0gJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfWApOwogICAgICAgIGZ1bmN0aW9uIGNoZWNrQWRkaXRpb25hbFByb3BlcnRpZXMoKSB7CiAgICAgICAgICBnZW4uZm9ySW4oImtleSIsIGRhdGEsIChrZXkpID0+IHsKICAgICAgICAgICAgaWYgKCFwcm9wcy5sZW5ndGggJiYgIXBhdFByb3BzLmxlbmd0aCkKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydHlDb2RlKGtleSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBnZW4uaWYoaXNBZGRpdGlvbmFsKGtleSksICgpID0+IGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaXNBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgbGV0IGRlZmluZWRQcm9wOwogICAgICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDgpIHsKICAgICAgICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgcGFyZW50U2NoZW1hLnByb3BlcnRpZXMsICJwcm9wZXJ0aWVzIik7CiAgICAgICAgICAgIGRlZmluZWRQcm9wID0gKDAsIGNvZGVfMS5pc093blByb3BlcnR5KShnZW4sIHByb3BzU2NoZW1hLCBrZXkpOwogICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5sZW5ndGgpIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5wcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl9ID09PSAke3B9YCkpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSBjb2RlZ2VuXzEubmlsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhdFByb3BzLmxlbmd0aCkgewogICAgICAgICAgICBkZWZpbmVkUHJvcCA9ICgwLCBjb2RlZ2VuXzEub3IpKGRlZmluZWRQcm9wLCAuLi5wYXRQcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgcCl9LnRlc3QoJHtrZXl9KWApKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm5vdCkoZGVmaW5lZFByb3ApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBkZWxldGVBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBkZWxldGUgJHtkYXRhfVske2tleX1dYCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSB7CiAgICAgICAgICBpZiAob3B0cy5yZW1vdmVBZGRpdGlvbmFsID09PSAiYWxsIiB8fCBvcHRzLnJlbW92ZUFkZGl0aW9uYWwgJiYgc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGFkZGl0aW9uYWxQcm9wZXJ0eToga2V5IH0pOwogICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgICAgZ2VuLmJyZWFrKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICAgIGlmIChvcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJmYWlsaW5nIikgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHsKICAgICAgICAgICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkKTsKICAgICAgICAgICAgICBpZiAoIWFsbEVycm9ycykKICAgICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlBZGRpdGlvbmFsU2NoZW1hKGtleSwgdmFsaWQsIGVycm9ycykgewogICAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gewogICAgICAgICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLlN0cgogICAgICAgICAgfTsKICAgICAgICAgIGlmIChlcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3Vic2NoZW1hLCB7CiAgICAgICAgICAgICAgY29tcG9zaXRlUnVsZTogdHJ1ZSwKICAgICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICAgIGFsbEVycm9yczogZmFsc2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjeHQuc3Vic2NoZW1hKHN1YnNjaGVtYSwgdmFsaWQpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9wcm9wZXJ0aWVzLmpzCnZhciByZXF1aXJlX3Byb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInByb3BlcnRpZXMiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogIm9iamVjdCIsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChpdC5vcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJhbGwiICYmIHBhcmVudFNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQuY29kZShuZXcgdmFsaWRhdGVfMS5LZXl3b3JkQ3h0KGl0LCBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQsICJhZGRpdGlvbmFsUHJvcGVydGllcyIpKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWxsUHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHNjaGVtYTIpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykgewogICAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMuYWRkKHByb3ApOwogICAgICAgIH0KICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBhbGxQcm9wcy5sZW5ndGggJiYgaXQucHJvcHMgIT09IHRydWUpIHsKICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgKDAsIHV0aWxfMS50b0hhc2gpKGFsbFByb3BzKSwgaXQucHJvcHMpOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gYWxsUHJvcHMuZmlsdGVyKChwKSA9PiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTJbcF0pKTsKICAgICAgICBpZiAocHJvcGVydGllcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykgewogICAgICAgICAgaWYgKGhhc0RlZmF1bHQocHJvcCkpIHsKICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eVNjaGVtYShwcm9wKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIHByb3AsIGl0Lm9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBhcHBseVByb3BlcnR5U2NoZW1hKHByb3ApOwogICAgICAgICAgICBpZiAoIWl0LmFsbEVycm9ycykKICAgICAgICAgICAgICBnZW4uZWxzZSgpLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgIGdlbi5lbmRJZigpOwogICAgICAgICAgfQogICAgICAgICAgY3h0Lml0LmRlZmluZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhc0RlZmF1bHQocHJvcCkgewogICAgICAgICAgcmV0dXJuIGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgc2NoZW1hMltwcm9wXS5kZWZhdWx0ICE9PSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFwcGx5UHJvcGVydHlTY2hlbWEocHJvcCkgewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0aWVzIiwKICAgICAgICAgICAgc2NoZW1hUHJvcDogcHJvcCwKICAgICAgICAgICAgZGF0YVByb3A6IHByb3AKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcGF0dGVyblByb3BlcnRpZXMuanMKdmFyIHJlcXVpcmVfcGF0dGVyblByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3BhdHRlcm5Qcm9wZXJ0aWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgIHNjaGVtYVR5cGU6ICJvYmplY3QiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB7IG9wdHMgfSA9IGl0OwogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShzY2hlbWEyKTsKICAgICAgICBjb25zdCBhbHdheXNWYWxpZFBhdHRlcm5zID0gcGF0dGVybnMuZmlsdGVyKChwKSA9PiAoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMltwXSkpOwogICAgICAgIGlmIChwYXR0ZXJucy5sZW5ndGggPT09IDAgfHwgYWx3YXlzVmFsaWRQYXR0ZXJucy5sZW5ndGggPT09IHBhdHRlcm5zLmxlbmd0aCAmJiAoIWl0Lm9wdHMudW5ldmFsdWF0ZWQgfHwgaXQucHJvcHMgPT09IHRydWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNoZWNrUHJvcGVydGllcyA9IG9wdHMuc3RyaWN0U2NoZW1hICYmICFvcHRzLmFsbG93TWF0Y2hpbmdQcm9wZXJ0aWVzICYmIHBhcmVudFNjaGVtYS5wcm9wZXJ0aWVzOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlICYmICEoaXQucHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSkpIHsKICAgICAgICAgIGl0LnByb3BzID0gKDAsIHV0aWxfMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSkoZ2VuLCBpdC5wcm9wcyk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHsgcHJvcHMgfSA9IGl0OwogICAgICAgIHZhbGlkYXRlUGF0dGVyblByb3BlcnRpZXMoKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVBhdHRlcm5Qcm9wZXJ0aWVzKCkgewogICAgICAgICAgZm9yIChjb25zdCBwYXQgb2YgcGF0dGVybnMpIHsKICAgICAgICAgICAgaWYgKGNoZWNrUHJvcGVydGllcykKICAgICAgICAgICAgICBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpOwogICAgICAgICAgICBpZiAoaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgICAgZ2VuLmlmKHZhbGlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpIHsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGVja1Byb3BlcnRpZXMpIHsKICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAocGF0KS50ZXN0KHByb3ApKSB7CiAgICAgICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgcHJvcGVydHkgJHtwcm9wfSBtYXRjaGVzIHBhdHRlcm4gJHtwYXR9ICh1c2UgYWxsb3dNYXRjaGluZ1Byb3BlcnRpZXMpYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCkgewogICAgICAgICAgZ2VuLmZvckluKCJrZXkiLCBkYXRhLCAoa2V5KSA9PiB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7KDAsIGNvZGVfMS51c2VQYXR0ZXJuKShjeHQsIHBhdCl9LnRlc3QoJHtrZXl9KWAsICgpID0+IHsKICAgICAgICAgICAgICBjb25zdCBhbHdheXNWYWxpZCA9IGFsd2F5c1ZhbGlkUGF0dGVybnMuaW5jbHVkZXMocGF0KTsKICAgICAgICAgICAgICBpZiAoIWFsd2F5c1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgICAgICAgICAgICAgc2NoZW1hUHJvcDogcGF0LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMi5UeXBlLlN0cgogICAgICAgICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBwcm9wcyAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cHJvcHN9WyR7a2V5fV1gLCB0cnVlKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhbHdheXNWYWxpZCAmJiAhaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gZ2VuLmJyZWFrKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzCnZhciByZXF1aXJlX25vdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICAgIGN4dC5mYWlsKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUsCiAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgYWxsRXJyb3JzOiBmYWxzZQogICAgICAgIH0sIHZhbGlkKTsKICAgICAgICBjeHQuZmFpbFJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCksICgpID0+IGN4dC5lcnJvcigpKTsKICAgICAgfSwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgTk9UIGJlIHZhbGlkIiB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FueU9mLmpzCnZhciByZXF1aXJlX2FueU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hbnlPZi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJhbnlPZiIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgIHRyYWNrRXJyb3JzOiB0cnVlLAogICAgICBjb2RlOiBjb2RlXzEudmFsaWRhdGVVbmlvbiwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgbWF0Y2ggYSBzY2hlbWEgaW4gYW55T2YiIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivb25lT2YuanMKdmFyIHJlcXVpcmVfb25lT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL29uZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICJtdXN0IG1hdGNoIGV4YWN0bHkgb25lIHNjaGVtYSBpbiBvbmVPZiIsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Bhc3NpbmdTY2hlbWFzOiAke3BhcmFtcy5wYXNzaW5nfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGlmIChpdC5vcHRzLmRpc2NyaW1pbmF0b3IgJiYgcGFyZW50U2NoZW1hLmRpc2NyaW1pbmF0b3IpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3Qgc2NoQXJyID0gc2NoZW1hMjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICAgIGNvbnN0IHBhc3NpbmcgPSBnZW4ubGV0KCJwYXNzaW5nIiwgbnVsbCk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IHBhc3NpbmcgfSk7CiAgICAgICAgZ2VuLmJsb2NrKHZhbGlkYXRlT25lT2YpOwogICAgICAgIGN4dC5yZXN1bHQodmFsaWQsICgpID0+IGN4dC5yZXNldCgpLCAoKSA9PiBjeHQuZXJyb3IodHJ1ZSkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlT25lT2YoKSB7CiAgICAgICAgICBzY2hBcnIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICAgIGxldCBzY2hDeHQ7CiAgICAgICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkgewogICAgICAgICAgICAgIGdlbi52YXIoc2NoVmFsaWQsIHRydWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7c2NoVmFsaWR9ICYmICR7dmFsaWR9YCkuYXNzaWduKHZhbGlkLCBmYWxzZSkuYXNzaWduKHBhc3NpbmcsICgwLCBjb2RlZ2VuXzEuXylgWyR7cGFzc2luZ30sICR7aX1dYCkuZWxzZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gewogICAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIHRydWUpOwogICAgICAgICAgICAgIGdlbi5hc3NpZ24ocGFzc2luZywgaSk7CiAgICAgICAgICAgICAgaWYgKHNjaEN4dCkKICAgICAgICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWxsT2YuanMKdmFyIHJlcXVpcmVfYWxsT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FsbE9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWxsT2YiLAogICAgICBzY2hlbWFUeXBlOiAiYXJyYXkiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIHNjaGVtYTIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkOiAiYWxsT2YiLCBzY2hlbWFQcm9wOiBpIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9pZi5qcwp2YXIgcmVxdWlyZV9pZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaWYuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IG1hdGNoICIke3BhcmFtcy5pZkNsYXVzZX0iIHNjaGVtYWAsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge2ZhaWxpbmdLZXl3b3JkOiAke3BhcmFtcy5pZkNsYXVzZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZiIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS50aGVuID09PSB2b2lkIDAgJiYgcGFyZW50U2NoZW1hLmVsc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCAnImlmIiB3aXRob3V0ICJ0aGVuIiBhbmQgImVsc2UiIGlzIGlnbm9yZWQnKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaGFzVGhlbiA9IGhhc1NjaGVtYShpdCwgInRoZW4iKTsKICAgICAgICBjb25zdCBoYXNFbHNlID0gaGFzU2NoZW1hKGl0LCAiZWxzZSIpOwogICAgICAgIGlmICghaGFzVGhlbiAmJiAhaGFzRWxzZSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgdHJ1ZSk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgdmFsaWRhdGVJZigpOwogICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgIGlmIChoYXNUaGVuICYmIGhhc0Vsc2UpIHsKICAgICAgICAgIGNvbnN0IGlmQ2xhdXNlID0gZ2VuLmxldCgiaWZDbGF1c2UiKTsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBpZkNsYXVzZSB9KTsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iLCBpZkNsYXVzZSksIHZhbGlkYXRlQ2xhdXNlKCJlbHNlIiwgaWZDbGF1c2UpKTsKICAgICAgICB9IGVsc2UgaWYgKGhhc1RoZW4pIHsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkoc2NoVmFsaWQpLCB2YWxpZGF0ZUNsYXVzZSgiZWxzZSIpKTsKICAgICAgICB9CiAgICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVJZigpIHsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICBrZXl3b3JkOiAiaWYiLAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlLAogICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICBhbGxFcnJvcnM6IGZhbHNlCiAgICAgICAgICB9LCBzY2hWYWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVDbGF1c2Uoa2V5d29yZCwgaWZDbGF1c2UpIHsKICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkIH0sIHNjaFZhbGlkKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgc2NoVmFsaWQpOwogICAgICAgICAgICBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHZhbGlkKTsKICAgICAgICAgICAgaWYgKGlmQ2xhdXNlKQogICAgICAgICAgICAgIGdlbi5hc3NpZ24oaWZDbGF1c2UsICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl3b3JkfWApOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGlmQ2xhdXNlOiBrZXl3b3JkIH0pOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBoYXNTY2hlbWEoaXQsIGtleXdvcmQpIHsKICAgICAgY29uc3Qgc2NoZW1hMiA9IGl0LnNjaGVtYVtrZXl3b3JkXTsKICAgICAgcmV0dXJuIHNjaGVtYTIgIT09IHZvaWQgMCAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3RoZW5FbHNlLmpzCnZhciByZXF1aXJlX3RoZW5FbHNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci90aGVuRWxzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogWyJ0aGVuIiwgImVsc2UiXSwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBjb2RlKHsga2V5d29yZCwgcGFyZW50U2NoZW1hLCBpdCB9KSB7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS5pZiA9PT0gdm9pZCAwKQogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgIiR7a2V5d29yZH0iIHdpdGhvdXQgImlmIiBpcyBpZ25vcmVkYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMKdmFyIHJlcXVpcmVfYXBwbGljYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgcHJlZml4SXRlbXNfMSA9IHJlcXVpcmVfcHJlZml4SXRlbXMoKTsKICAgIHZhciBpdGVtc18xID0gcmVxdWlyZV9pdGVtcygpOwogICAgdmFyIGl0ZW1zMjAyMF8xID0gcmVxdWlyZV9pdGVtczIwMjAoKTsKICAgIHZhciBjb250YWluc18xID0gcmVxdWlyZV9jb250YWlucygpOwogICAgdmFyIGRlcGVuZGVuY2llc18xID0gcmVxdWlyZV9kZXBlbmRlbmNpZXMoKTsKICAgIHZhciBwcm9wZXJ0eU5hbWVzXzEgPSByZXF1aXJlX3Byb3BlcnR5TmFtZXMoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIHByb3BlcnRpZXNfMSA9IHJlcXVpcmVfcHJvcGVydGllcygpOwogICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzXzEgPSByZXF1aXJlX3BhdHRlcm5Qcm9wZXJ0aWVzKCk7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdCgpOwogICAgdmFyIGFueU9mXzEgPSByZXF1aXJlX2FueU9mKCk7CiAgICB2YXIgb25lT2ZfMSA9IHJlcXVpcmVfb25lT2YoKTsKICAgIHZhciBhbGxPZl8xID0gcmVxdWlyZV9hbGxPZigpOwogICAgdmFyIGlmXzEgPSByZXF1aXJlX2lmKCk7CiAgICB2YXIgdGhlbkVsc2VfMSA9IHJlcXVpcmVfdGhlbkVsc2UoKTsKICAgIGZ1bmN0aW9uIGdldEFwcGxpY2F0b3IoZHJhZnQyMDIwID0gZmFsc2UpIHsKICAgICAgY29uc3QgYXBwbGljYXRvciA9IFsKICAgICAgICAvLyBhbnkKICAgICAgICBub3RfMS5kZWZhdWx0LAogICAgICAgIGFueU9mXzEuZGVmYXVsdCwKICAgICAgICBvbmVPZl8xLmRlZmF1bHQsCiAgICAgICAgYWxsT2ZfMS5kZWZhdWx0LAogICAgICAgIGlmXzEuZGVmYXVsdCwKICAgICAgICB0aGVuRWxzZV8xLmRlZmF1bHQsCiAgICAgICAgLy8gb2JqZWN0CiAgICAgICAgcHJvcGVydHlOYW1lc18xLmRlZmF1bHQsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNfMS5kZWZhdWx0LAogICAgICAgIGRlcGVuZGVuY2llc18xLmRlZmF1bHQsCiAgICAgICAgcHJvcGVydGllc18xLmRlZmF1bHQsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXNfMS5kZWZhdWx0CiAgICAgIF07CiAgICAgIGlmIChkcmFmdDIwMjApCiAgICAgICAgYXBwbGljYXRvci5wdXNoKHByZWZpeEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXMyMDIwXzEuZGVmYXVsdCk7CiAgICAgIGVsc2UKICAgICAgICBhcHBsaWNhdG9yLnB1c2goYWRkaXRpb25hbEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXNfMS5kZWZhdWx0KTsKICAgICAgYXBwbGljYXRvci5wdXNoKGNvbnRhaW5zXzEuZGVmYXVsdCk7CiAgICAgIHJldHVybiBhcHBsaWNhdG9yOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGdldEFwcGxpY2F0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvZm9ybWF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgbWF0Y2ggZm9ybWF0ICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtmb3JtYXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJmb3JtYXQiLAogICAgICB0eXBlOiBbIm51bWJlciIsICJzdHJpbmciXSwKICAgICAgc2NoZW1hVHlwZTogInN0cmluZyIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQsIHJ1bGVUeXBlKSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBvcHRzLCBlcnJTY2hlbWFQYXRoLCBzY2hlbWFFbnYsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgICBpZiAoIW9wdHMudmFsaWRhdGVGb3JtYXRzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICgkZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZkRlZiA9IGdlbi5jb25zdCgiZkRlZiIsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRzfVske3NjaGVtYUNvZGV9XWApOwogICAgICAgICAgY29uc3QgZlR5cGUgPSBnZW4ubGV0KCJmVHlwZSIpOwogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZ2VuLmxldCgiZm9ybWF0Iik7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtmRGVmfSA9PSAib2JqZWN0IiAmJiAhKCR7ZkRlZn0gaW5zdGFuY2VvZiBSZWdFeHApYCwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAke2ZEZWZ9LnR5cGUgfHwgInN0cmluZyJgKS5hc3NpZ24oZm9ybWF0LCAoMCwgY29kZWdlbl8xLl8pYCR7ZkRlZn0udmFsaWRhdGVgKSwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAic3RyaW5nImApLmFzc2lnbihmb3JtYXQsIGZEZWYpKTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5vcikodW5rbm93bkZtdCgpLCBpbnZhbGlkRm10KCkpKTsKICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25GbXQoKSB7CiAgICAgICAgICAgIGlmIChvcHRzLnN0cmljdFNjaGVtYSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gJiYgISR7Zm9ybWF0fWA7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBpbnZhbGlkRm10KCkgewogICAgICAgICAgICBjb25zdCBjYWxsRm9ybWF0ID0gc2NoZW1hRW52LiRhc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgKCR7ZkRlZn0uYXN5bmMgPyBhd2FpdCAke2Zvcm1hdH0oJHtkYXRhfSkgOiAke2Zvcm1hdH0oJHtkYXRhfSkpYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmb3JtYXR9KCR7ZGF0YX0pYDsKICAgICAgICAgICAgY29uc3QgdmFsaWREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAodHlwZW9mICR7Zm9ybWF0fSA9PSAiZnVuY3Rpb24iID8gJHtjYWxsRm9ybWF0fSA6ICR7Zm9ybWF0fS50ZXN0KCR7ZGF0YX0pKWA7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7Zm9ybWF0fSAmJiAke2Zvcm1hdH0gIT09IHRydWUgJiYgJHtmVHlwZX0gPT09ICR7cnVsZVR5cGV9ICYmICEke3ZhbGlkRGF0YX1gOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdCgpIHsKICAgICAgICAgIGNvbnN0IGZvcm1hdERlZiA9IHNlbGYyLmZvcm1hdHNbc2NoZW1hMl07CiAgICAgICAgICBpZiAoIWZvcm1hdERlZikgewogICAgICAgICAgICB1bmtub3duRm9ybWF0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmb3JtYXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IFtmbXRUeXBlLCBmb3JtYXQsIGZtdFJlZl0gPSBnZXRGb3JtYXQoZm9ybWF0RGVmKTsKICAgICAgICAgIGlmIChmbXRUeXBlID09PSBydWxlVHlwZSkKICAgICAgICAgICAgY3h0LnBhc3ModmFsaWRDb25kaXRpb24oKSk7CiAgICAgICAgICBmdW5jdGlvbiB1bmtub3duRm9ybWF0KCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RTY2hlbWEgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4odW5rbm93bk1zZygpKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHVua25vd25Nc2coKSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25Nc2coKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duIGZvcm1hdCAiJHtzY2hlbWEyfSIgaWdub3JlZCBpbiBzY2hlbWEgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSJgOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBnZXRGb3JtYXQoZm10RGVmKSB7CiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBmbXREZWYgaW5zdGFuY2VvZiBSZWdFeHAgPyAoMCwgY29kZWdlbl8xLnJlZ2V4cENvZGUpKGZtdERlZikgOiBvcHRzLmNvZGUuZm9ybWF0cyA/ICgwLCBjb2RlZ2VuXzEuXylgJHtvcHRzLmNvZGUuZm9ybWF0c30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHNjaGVtYTIpfWAgOiB2b2lkIDA7CiAgICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgeyBrZXk6IHNjaGVtYTIsIHJlZjogZm10RGVmLCBjb2RlIH0pOwogICAgICAgICAgICBpZiAodHlwZW9mIGZtdERlZiA9PSAib2JqZWN0IiAmJiAhKGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCkpIHsKICAgICAgICAgICAgICByZXR1cm4gW2ZtdERlZi50eXBlIHx8ICJzdHJpbmciLCBmbXREZWYudmFsaWRhdGUsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LnZhbGlkYXRlYF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFsic3RyaW5nIiwgZm10RGVmLCBmbXRdOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdmFsaWRDb25kaXRpb24oKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybWF0RGVmID09ICJvYmplY3QiICYmICEoZm9ybWF0RGVmIGluc3RhbmNlb2YgUmVnRXhwKSAmJiBmb3JtYXREZWYuYXN5bmMpIHsKICAgICAgICAgICAgICBpZiAoIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIGZvcm1hdCBpbiBzeW5jIHNjaGVtYSIpOwogICAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7Zm10UmVmfSgke2RhdGF9KWA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBmb3JtYXQgPT0gImZ1bmN0aW9uIiA/ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9KCR7ZGF0YX0pYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9LnRlc3QoJHtkYXRhfSlgOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2luZGV4LmpzCnZhciByZXF1aXJlX2Zvcm1hdDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBmb3JtYXRfMSA9IHJlcXVpcmVfZm9ybWF0KCk7CiAgICB2YXIgZm9ybWF0ID0gW2Zvcm1hdF8xLmRlZmF1bHRdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9tZXRhZGF0YS5qcwp2YXIgcmVxdWlyZV9tZXRhZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL21ldGFkYXRhLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb250ZW50Vm9jYWJ1bGFyeSA9IGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IFsKICAgICAgInRpdGxlIiwKICAgICAgImRlc2NyaXB0aW9uIiwKICAgICAgImRlZmF1bHQiLAogICAgICAiZGVwcmVjYXRlZCIsCiAgICAgICJyZWFkT25seSIsCiAgICAgICJ3cml0ZU9ubHkiLAogICAgICAiZXhhbXBsZXMiCiAgICBdOwogICAgZXhwb3J0czIuY29udGVudFZvY2FidWxhcnkgPSBbCiAgICAgICJjb250ZW50TWVkaWFUeXBlIiwKICAgICAgImNvbnRlbnRFbmNvZGluZyIsCiAgICAgICJjb250ZW50U2NoZW1hIgogICAgXTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kcmFmdDcuanMKdmFyIHJlcXVpcmVfZHJhZnQ3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZHJhZnQ3LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9jb3JlMigpOwogICAgdmFyIHZhbGlkYXRpb25fMSA9IHJlcXVpcmVfdmFsaWRhdGlvbigpOwogICAgdmFyIGFwcGxpY2F0b3JfMSA9IHJlcXVpcmVfYXBwbGljYXRvcigpOwogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQyKCk7CiAgICB2YXIgbWV0YWRhdGFfMSA9IHJlcXVpcmVfbWV0YWRhdGEoKTsKICAgIHZhciBkcmFmdDdWb2NhYnVsYXJpZXMgPSBbCiAgICAgIGNvcmVfMS5kZWZhdWx0LAogICAgICB2YWxpZGF0aW9uXzEuZGVmYXVsdCwKICAgICAgKDAsIGFwcGxpY2F0b3JfMS5kZWZhdWx0KSgpLAogICAgICBmb3JtYXRfMS5kZWZhdWx0LAogICAgICBtZXRhZGF0YV8xLm1ldGFkYXRhVm9jYWJ1bGFyeSwKICAgICAgbWV0YWRhdGFfMS5jb250ZW50Vm9jYWJ1bGFyeQogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkcmFmdDdWb2NhYnVsYXJpZXM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZGlzY3JpbWluYXRvci90eXBlcy5qcwp2YXIgcmVxdWlyZV90eXBlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2Rpc2NyaW1pbmF0b3IvdHlwZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRpc2NyRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgRGlzY3JFcnJvcjsKICAgIChmdW5jdGlvbihEaXNjckVycm9yMikgewogICAgICBEaXNjckVycm9yMlsiVGFnIl0gPSAidGFnIjsKICAgICAgRGlzY3JFcnJvcjJbIk1hcHBpbmciXSA9ICJtYXBwaW5nIjsKICAgIH0pKERpc2NyRXJyb3IgfHwgKGV4cG9ydHMyLkRpc2NyRXJyb3IgPSBEaXNjckVycm9yID0ge30pKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc2NyaW1pbmF0b3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdHlwZXNfMSA9IHJlcXVpcmVfdHlwZXMoKTsKICAgIHZhciBjb21waWxlXzEgPSByZXF1aXJlX2NvbXBpbGUoKTsKICAgIHZhciByZWZfZXJyb3JfMSA9IHJlcXVpcmVfcmVmX2Vycm9yKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWdOYW1lIH0gfSkgPT4gZGlzY3JFcnJvciA9PT0gdHlwZXNfMS5EaXNjckVycm9yLlRhZyA/IGB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgc3RyaW5nYCA6IGB2YWx1ZSBvZiB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgaW4gb25lT2ZgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWcsIHRhZ05hbWUgfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtlcnJvcjogJHtkaXNjckVycm9yfSwgdGFnOiAke3RhZ05hbWV9LCB0YWdWYWx1ZTogJHt0YWd9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZGlzY3JpbWluYXRvciIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb25lT2YgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIWl0Lm9wdHMuZGlzY3JpbWluYXRvcikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBkaXNjcmltaW5hdG9yIG9wdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB0YWdOYW1lID0gc2NoZW1hMi5wcm9wZXJ0eU5hbWU7CiAgICAgICAgaWYgKHR5cGVvZiB0YWdOYW1lICE9ICJzdHJpbmciKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBwcm9wZXJ0eU5hbWUiKTsKICAgICAgICBpZiAoc2NoZW1hMi5tYXBwaW5nKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiBtYXBwaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICBpZiAoIW9uZU9mKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBvbmVPZiBrZXl3b3JkIik7CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIGZhbHNlKTsKICAgICAgICBjb25zdCB0YWcgPSBnZW4uY29uc3QoInRhZyIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkodGFnTmFtZSl9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7dGFnfSA9PSAic3RyaW5nImAsICgpID0+IHZhbGlkYXRlTWFwcGluZygpLCAoKSA9PiBjeHQuZXJyb3IoZmFsc2UsIHsgZGlzY3JFcnJvcjogdHlwZXNfMS5EaXNjckVycm9yLlRhZywgdGFnLCB0YWdOYW1lIH0pKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlTWFwcGluZygpIHsKICAgICAgICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRNYXBwaW5nKCk7CiAgICAgICAgICBnZW4uaWYoZmFsc2UpOwogICAgICAgICAgZm9yIChjb25zdCB0YWdWYWx1ZSBpbiBtYXBwaW5nKSB7CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke3RhZ30gPT09ICR7dGFnVmFsdWV9YCk7CiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGFwcGx5VGFnU2NoZW1hKG1hcHBpbmdbdGFnVmFsdWVdKSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZWxzZSgpOwogICAgICAgICAgY3h0LmVycm9yKGZhbHNlLCB7IGRpc2NyRXJyb3I6IHR5cGVzXzEuRGlzY3JFcnJvci5NYXBwaW5nLCB0YWcsIHRhZ05hbWUgfSk7CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlUYWdTY2hlbWEoc2NoZW1hUHJvcCkgewogICAgICAgICAgY29uc3QgX3ZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZDogIm9uZU9mIiwgc2NoZW1hUHJvcCB9LCBfdmFsaWQpOwogICAgICAgICAgY3h0Lm1lcmdlRXZhbHVhdGVkKHNjaEN4dCwgY29kZWdlbl8xLk5hbWUpOwogICAgICAgICAgcmV0dXJuIF92YWxpZDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0TWFwcGluZygpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIGNvbnN0IG9uZU9mTWFwcGluZyA9IHt9OwogICAgICAgICAgY29uc3QgdG9wUmVxdWlyZWQgPSBoYXNSZXF1aXJlZChwYXJlbnRTY2hlbWEpOwogICAgICAgICAgbGV0IHRhZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lT2YubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IHNjaCA9IG9uZU9mW2ldOwogICAgICAgICAgICBpZiAoKHNjaCA9PT0gbnVsbCB8fCBzY2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaC4kcmVmKSAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoLCBpdC5zZWxmLlJVTEVTKSkgewogICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHNjaC4kcmVmOwogICAgICAgICAgICAgIHNjaCA9IGNvbXBpbGVfMS5yZXNvbHZlUmVmLmNhbGwoaXQuc2VsZiwgaXQuc2NoZW1hRW52LnJvb3QsIGl0LmJhc2VJZCwgcmVmKTsKICAgICAgICAgICAgICBpZiAoc2NoIGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgICAgICAgIHNjaCA9IHNjaC5zY2hlbWE7CiAgICAgICAgICAgICAgaWYgKHNjaCA9PT0gdm9pZCAwKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHJlZl9lcnJvcl8xLmRlZmF1bHQoaXQub3B0cy51cmlSZXNvbHZlciwgaXQuYmFzZUlkLCByZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHByb3BTY2ggPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gucHJvcGVydGllcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3RhZ05hbWVdOwogICAgICAgICAgICBpZiAodHlwZW9mIHByb3BTY2ggIT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6IG9uZU9mIHN1YnNjaGVtYXMgKG9yIHJlZmVyZW5jZWQgc2NoZW1hcykgbXVzdCBoYXZlICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFnUmVxdWlyZWQgPSB0YWdSZXF1aXJlZCAmJiAodG9wUmVxdWlyZWQgfHwgaGFzUmVxdWlyZWQoc2NoKSk7CiAgICAgICAgICAgIGFkZE1hcHBpbmdzKHByb3BTY2gsIGkpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCF0YWdSZXF1aXJlZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgbXVzdCBiZSByZXF1aXJlZGApOwogICAgICAgICAgcmV0dXJuIG9uZU9mTWFwcGluZzsKICAgICAgICAgIGZ1bmN0aW9uIGhhc1JlcXVpcmVkKHsgcmVxdWlyZWQgfSkgewogICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXF1aXJlZCkgJiYgcmVxdWlyZWQuaW5jbHVkZXModGFnTmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5ncyhzY2gsIGkpIHsKICAgICAgICAgICAgaWYgKHNjaC5jb25zdCkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmcoc2NoLmNvbnN0LCBpKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2guZW51bSkgewogICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnVmFsdWUgb2Ygc2NoLmVudW0pIHsKICAgICAgICAgICAgICAgIGFkZE1hcHBpbmcodGFnVmFsdWUsIGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6ICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iIG11c3QgaGF2ZSAiY29uc3QiIG9yICJlbnVtImApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5nKHRhZ1ZhbHVlLCBpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFnVmFsdWUgIT0gInN0cmluZyIgfHwgdGFnVmFsdWUgaW4gb25lT2ZNYXBwaW5nKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgdmFsdWVzIG11c3QgYmUgdW5pcXVlIHN0cmluZ3NgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvbmVPZk1hcHBpbmdbdGFnVmFsdWVdID0gaTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uCnZhciByZXF1aXJlX2pzb25fc2NoZW1hX2RyYWZ0XzA3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9yZWZzL2pzb24tc2NoZW1hLWRyYWZ0LTA3Lmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRzY2hlbWE6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICAkaWQ6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICB0aXRsZTogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICAgZGVmaW5pdGlvbnM6IHsKICAgICAgICBzY2hlbWFBcnJheTogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIG1pbkl0ZW1zOiAxLAogICAgICAgICAgaXRlbXM6IHsgJHJlZjogIiMiIH0KICAgICAgICB9LAogICAgICAgIG5vbk5lZ2F0aXZlSW50ZWdlcjogewogICAgICAgICAgdHlwZTogImludGVnZXIiLAogICAgICAgICAgbWluaW11bTogMAogICAgICAgIH0sCiAgICAgICAgbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDA6IHsKICAgICAgICAgIGFsbE9mOiBbeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sIHsgZGVmYXVsdDogMCB9XQogICAgICAgIH0sCiAgICAgICAgc2ltcGxlVHlwZXM6IHsKICAgICAgICAgIGVudW06IFsiYXJyYXkiLCAiYm9vbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciXQogICAgICAgIH0sCiAgICAgICAgc3RyaW5nQXJyYXk6IHsKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICBpdGVtczogeyB0eXBlOiAic3RyaW5nIiB9LAogICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsCiAgICAgICAgICBkZWZhdWx0OiBbXQogICAgICAgIH0KICAgICAgfSwKICAgICAgdHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGlkOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaS1yZWZlcmVuY2UiCiAgICAgICAgfSwKICAgICAgICAkc2NoZW1hOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaSIKICAgICAgICB9LAogICAgICAgICRyZWY6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgZm9ybWF0OiAidXJpLXJlZmVyZW5jZSIKICAgICAgICB9LAogICAgICAgICRjb21tZW50OiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICB9LAogICAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgICAgcmVhZE9ubHk6IHsKICAgICAgICAgIHR5cGU6ICJib29sZWFuIiwKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICBleGFtcGxlczogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBtdWx0aXBsZU9mOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIiwKICAgICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IDAKICAgICAgICB9LAogICAgICAgIG1heGltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBleGNsdXNpdmVNYXhpbXVtOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIgogICAgICAgIH0sCiAgICAgICAgbWluaW11bTogewogICAgICAgICAgdHlwZTogIm51bWJlciIKICAgICAgICB9LAogICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBtYXhMZW5ndGg6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkxlbmd0aDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICBwYXR0ZXJuOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInJlZ2V4IgogICAgICAgIH0sCiAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBhbnlPZjogW3sgJHJlZjogIiMiIH0sIHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXkiIH1dLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgbWF4SXRlbXM6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkl0ZW1zOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIiB9LAogICAgICAgIHVuaXF1ZUl0ZW1zOiB7CiAgICAgICAgICB0eXBlOiAiYm9vbGVhbiIsCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgY29udGFpbnM6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgbWF4UHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sCiAgICAgICAgbWluUHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICByZXF1aXJlZDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheSIgfSwKICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBkZWZpbml0aW9uczogewogICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgZGVmYXVsdDoge30KICAgICAgICB9LAogICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgcHJvcGVydHlOYW1lczogeyBmb3JtYXQ6ICJyZWdleCIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBkZXBlbmRlbmNpZXM6IHsKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsKICAgICAgICAgICAgYW55T2Y6IFt7ICRyZWY6ICIjIiB9LCB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9XQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcHJvcGVydHlOYW1lczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBjb25zdDogdHJ1ZSwKICAgICAgICBlbnVtOiB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB0eXBlOiB7CiAgICAgICAgICBhbnlPZjogWwogICAgICAgICAgICB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzIiB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgICAgICBpdGVtczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyIgfSwKICAgICAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICBmb3JtYXQ6IHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICBjb250ZW50TWVkaWFUeXBlOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgY29udGVudEVuY29kaW5nOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgaWY6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgdGhlbjogeyAkcmVmOiAiIyIgfSwKICAgICAgICBlbHNlOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGFsbE9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIGFueU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG9uZU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG5vdDogeyAkcmVmOiAiIyIgfQogICAgICB9LAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzCnZhciByZXF1aXJlX2FqdiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5NaXNzaW5nUmVmRXJyb3IgPSBleHBvcnRzMi5WYWxpZGF0aW9uRXJyb3IgPSBleHBvcnRzMi5Db2RlR2VuID0gZXhwb3J0czIuTmFtZSA9IGV4cG9ydHMyLm5pbCA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gZXhwb3J0czIuQWp2ID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZSgpOwogICAgdmFyIGRyYWZ0N18xID0gcmVxdWlyZV9kcmFmdDcoKTsKICAgIHZhciBkaXNjcmltaW5hdG9yXzEgPSByZXF1aXJlX2Rpc2NyaW1pbmF0b3IoKTsKICAgIHZhciBkcmFmdDdNZXRhU2NoZW1hID0gcmVxdWlyZV9qc29uX3NjaGVtYV9kcmFmdF8wNygpOwogICAgdmFyIE1FVEFfU1VQUE9SVF9EQVRBID0gWyIvcHJvcGVydGllcyJdOwogICAgdmFyIE1FVEFfU0NIRU1BX0lEID0gImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIjsKICAgIHZhciBBanYgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5kZWZhdWx0IHsKICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICBzdXBlci5fYWRkVm9jYWJ1bGFyaWVzKCk7CiAgICAgICAgZHJhZnQ3XzEuZGVmYXVsdC5mb3JFYWNoKCh2KSA9PiB0aGlzLmFkZFZvY2FidWxhcnkodikpOwogICAgICAgIGlmICh0aGlzLm9wdHMuZGlzY3JpbWluYXRvcikKICAgICAgICAgIHRoaXMuYWRkS2V5d29yZChkaXNjcmltaW5hdG9yXzEuZGVmYXVsdCk7CiAgICAgIH0KICAgICAgX2FkZERlZmF1bHRNZXRhU2NoZW1hKCkgewogICAgICAgIHN1cGVyLl9hZGREZWZhdWx0TWV0YVNjaGVtYSgpOwogICAgICAgIGlmICghdGhpcy5vcHRzLm1ldGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgbWV0YVNjaGVtYSA9IHRoaXMub3B0cy4kZGF0YSA/IHRoaXMuJGRhdGFNZXRhU2NoZW1hKGRyYWZ0N01ldGFTY2hlbWEsIE1FVEFfU1VQUE9SVF9EQVRBKSA6IGRyYWZ0N01ldGFTY2hlbWE7CiAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU0NIRU1BX0lELCBmYWxzZSk7CiAgICAgICAgdGhpcy5yZWZzWyJodHRwOi8vanNvbi1zY2hlbWEub3JnL3NjaGVtYSJdID0gTUVUQV9TQ0hFTUFfSUQ7CiAgICAgIH0KICAgICAgZGVmYXVsdE1ldGEoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHN1cGVyLmRlZmF1bHRNZXRhKCkgfHwgKHRoaXMuZ2V0U2NoZW1hKE1FVEFfU0NIRU1BX0lEKSA/IE1FVEFfU0NIRU1BX0lEIDogdm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkFqdiA9IEFqdjsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gQWp2OwogICAgbW9kdWxlMi5leHBvcnRzLkFqdiA9IEFqdjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IEFqdjsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiS2V5d29yZEN4dCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHZhbGlkYXRlXzEuS2V5d29yZEN4dDsKICAgIH0gfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLl87CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzdHJpbmdpZnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuc3RyaW5naWZ5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm5pbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTmFtZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5OYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkNvZGVHZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuQ29kZUdlbjsKICAgIH0gfSk7CiAgICB2YXIgdmFsaWRhdGlvbl9lcnJvcl8xID0gcmVxdWlyZV92YWxpZGF0aW9uX2Vycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWxpZGF0aW9uRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTWlzc2luZ1JlZkVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9mb3JtYXRzLmpzCnZhciByZXF1aXJlX2Zvcm1hdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2Zvcm1hdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gZXhwb3J0czIuZmFzdEZvcm1hdHMgPSBleHBvcnRzMi5mdWxsRm9ybWF0cyA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGZtdERlZih2YWxpZGF0ZSwgY29tcGFyZSkgewogICAgICByZXR1cm4geyB2YWxpZGF0ZSwgY29tcGFyZSB9OwogICAgfQogICAgZXhwb3J0czIuZnVsbEZvcm1hdHMgPSB7CiAgICAgIC8vIGRhdGU6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjYKICAgICAgZGF0ZTogZm10RGVmKGRhdGUsIGNvbXBhcmVEYXRlKSwKICAgICAgLy8gZGF0ZS10aW1lOiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42CiAgICAgIHRpbWU6IGZtdERlZihnZXRUaW1lKHRydWUpLCBjb21wYXJlVGltZSksCiAgICAgICJkYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUodHJ1ZSksIGNvbXBhcmVEYXRlVGltZSksCiAgICAgICJpc28tdGltZSI6IGZtdERlZihnZXRUaW1lKCksIGNvbXBhcmVJc29UaW1lKSwKICAgICAgImlzby1kYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUoKSwgY29tcGFyZUlzb0RhdGVUaW1lKSwKICAgICAgLy8gZHVyYXRpb246IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I2FwcGVuZGl4LUEKICAgICAgZHVyYXRpb246IC9eUCg/ISQpKChcZCtZKT8oXGQrTSk/KFxkK0QpPyhUKD89XGQpKFxkK0gpPyhcZCtNKT8oXGQrUyk/KT98KFxkK1cpPykkLywKICAgICAgdXJpLAogICAgICAidXJpLXJlZmVyZW5jZSI6IC9eKD86W2Etel1bYS16MC05K1wtLl0qOik/KD86XC8/XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFsoPzooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7Nn18OjooPzpbMC05YS1mXXsxLDR9Oil7NX18KD86WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7NH18KD86KD86WzAtOWEtZl17MSw0fTopezAsMX1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXszfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwyfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezJ9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDN9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9OnwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw0fVswLTlhLWZdezEsNH0pPzo6KSg/OlswLTlhLWZdezEsNH06WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pXC4pezN9KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1wuW2EtejAtOVwtLl9+ISQmJygpKissOz06XSspXF18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPyl8KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFwvKD86KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopPyg/Olw/KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/JC9pLAogICAgICAvLyB1cmktdGVtcGxhdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwCiAgICAgICJ1cmktdGVtcGxhdGUiOiAvXig/Oig/OlteXHgwMC1ceDIwIic8PiVcXF5ge3x9XXwlWzAtOWEtZl17Mn0pfFx7WysjLi87PyY9LCFAfF0/KD86W2EtejAtOV9dfCVbMC05YS1mXXsyfSkrKD86OlsxLTldWzAtOV17MCwzfXxcKik/KD86LCg/OlthLXowLTlfXXwlWzAtOWEtZl17Mn0pKyg/OjpbMS05XVswLTldezAsM318XCopPykqXH0pKiQvaSwKICAgICAgLy8gRm9yIHRoZSBzb3VyY2U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0CiAgICAgIC8vIEZvciB0ZXN0IGNhc2VzOiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXgKICAgICAgdXJsOiAvXig/Omh0dHBzP3xmdHApOlwvXC8oPzpcUysoPzo6XFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XC5cZHsxLDN9KXszfSkoPyEoPzoxNjlcLjI1NHwxOTJcLjE2OCkoPzpcLlxkezEsM30pezJ9KSg/ITE3MlwuKD86MVs2LTldfDJcZHwzWzAtMV0pKD86XC5cZHsxLDN9KXsyfSkoPzpbMS05XVxkP3wxXGRcZHwyWzAxXVxkfDIyWzAtM10pKD86XC4oPzoxP1xkezEsMn18MlswLTRdXGR8MjVbMC01XSkpezJ9KD86XC4oPzpbMS05XVxkP3wxXGRcZHwyWzAtNF1cZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSstKSpbYS16MC05XHV7MDBhMX0tXHV7ZmZmZn1dKykoPzpcLig/OlthLXowLTlcdXswMGExfS1cdXtmZmZmfV0rLSkqW2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSspKig/OlwuKD86W2Etelx1ezAwYTF9LVx1e2ZmZmZ9XXsyLH0pKSkoPzo6XGR7Miw1fSk/KD86XC9bXlxzXSopPyQvaXUsCiAgICAgIGVtYWlsOiAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT8kL2ksCiAgICAgIGhvc3RuYW1lOiAvXig/PS57MSwyNTN9XC4/JClbYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8oPzpcLlthLXowLTldKD86Wy0wLTlhLXpdezAsNjF9WzAtOWEtel0pPykqXC4/JC9pLAogICAgICAvLyBvcHRpbWl6ZWQgaHR0cHM6Ly93d3cuc2FmYXJpYm9va3NvbmxpbmUuY29tL2xpYnJhcnkvdmlldy9yZWd1bGFyLWV4cHJlc3Npb25zLWNvb2tib29rLzk3ODA1OTY4MDI4MzcvY2gwN3MxNi5odG1sCiAgICAgIGlwdjQ6IC9eKD86KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSQvLAogICAgICBpcHY2OiAvXigoKFswLTlhLWZdezEsNH06KXs3fShbMC05YS1mXXsxLDR9fDopKXwoKFswLTlhLWZdezEsNH06KXs2fSg6WzAtOWEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezV9KCgoOlswLTlhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezR9KCgoOlswLTlhLWZdezEsNH0pezEsM30pfCgoOlswLTlhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlhLWZdezEsNH06KXszfSgoKDpbMC05YS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05YS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOWEtZl17MSw0fTopezJ9KCgoOlswLTlhLWZdezEsNH0pezEsNX0pfCgoOlswLTlhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05YS1mXXsxLDR9Oil7MX0oKCg6WzAtOWEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOWEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoOigoKDpbMC05YS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05YS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpKSQvaSwKICAgICAgcmVnZXgsCiAgICAgIC8vIHV1aWQ6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjIKICAgICAgdXVpZDogL14oPzp1cm46dXVpZDopP1swLTlhLWZdezh9LSg/OlswLTlhLWZdezR9LSl7M31bMC05YS1mXXsxMn0kL2ksCiAgICAgIC8vIEpTT04tcG9pbnRlcjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDEKICAgICAgLy8gdXJpIGZyYWdtZW50OiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNhcHBlbmRpeC1BCiAgICAgICJqc29uLXBvaW50ZXIiOiAvXig/OlwvKD86W15+L118fjB8fjEpKikqJC8sCiAgICAgICJqc29uLXBvaW50ZXItdXJpLWZyYWdtZW50IjogL14jKD86XC8oPzpbYS16MC05X1wtLiEkJicoKSorLDs6PUBdfCVbMC05YS1mXXsyfXx+MHx+MSkqKSokL2ksCiAgICAgIC8vIHJlbGF0aXZlIEpTT04tcG9pbnRlcjogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbHVmZi1yZWxhdGl2ZS1qc29uLXBvaW50ZXItMDAKICAgICAgInJlbGF0aXZlLWpzb24tcG9pbnRlciI6IC9eKD86MHxbMS05XVswLTldKikoPzojfCg/OlwvKD86W15+L118fjB8fjEpKikqKSQvLAogICAgICAvLyB0aGUgZm9sbG93aW5nIGZvcm1hdHMgYXJlIHVzZWQgYnkgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4wI2RhdGEtdHlwZXMKICAgICAgLy8gYnl0ZTogaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbG1vdGEvaXMtYmFzZTY0CiAgICAgIGJ5dGUsCiAgICAgIC8vIHNpZ25lZCAzMiBiaXQgaW50ZWdlcgogICAgICBpbnQzMjogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlSW50MzIgfSwKICAgICAgLy8gc2lnbmVkIDY0IGJpdCBpbnRlZ2VyCiAgICAgIGludDY0OiB7IHR5cGU6ICJudW1iZXIiLCB2YWxpZGF0ZTogdmFsaWRhdGVJbnQ2NCB9LAogICAgICAvLyBDLXR5cGUgZmxvYXQKICAgICAgZmxvYXQ6IHsgdHlwZTogIm51bWJlciIsIHZhbGlkYXRlOiB2YWxpZGF0ZU51bWJlciB9LAogICAgICAvLyBDLXR5cGUgZG91YmxlCiAgICAgIGRvdWJsZTogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlTnVtYmVyIH0sCiAgICAgIC8vIGhpbnQgdG8gdGhlIFVJIHRvIGhpZGUgaW5wdXQgc3RyaW5ncwogICAgICBwYXNzd29yZDogdHJ1ZSwKICAgICAgLy8gdW5jaGVja2VkIHN0cmluZyBwYXlsb2FkCiAgICAgIGJpbmFyeTogdHJ1ZQogICAgfTsKICAgIGV4cG9ydHMyLmZhc3RGb3JtYXRzID0gewogICAgICAuLi5leHBvcnRzMi5mdWxsRm9ybWF0cywKICAgICAgZGF0ZTogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkJC8sIGNvbXBhcmVEYXRlKSwKICAgICAgdGltZTogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPykkL2ksIGNvbXBhcmVUaW1lKSwKICAgICAgImRhdGUtdGltZSI6IGZtdERlZigvXlxkXGRcZFxkLVswLTFdXGQtWzAtM11cZHQoPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KSQvaSwgY29tcGFyZURhdGVUaW1lKSwKICAgICAgImlzby10aW1lIjogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPyk/JC9pLCBjb21wYXJlSXNvVGltZSksCiAgICAgICJpc28tZGF0ZS10aW1lIjogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkW3Rcc10oPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KT8kL2ksIGNvbXBhcmVJc29EYXRlVGltZSksCiAgICAgIC8vIHVyaTogaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9pcy1teS1qc29uLXZhbGlkL2Jsb2IvbWFzdGVyL2Zvcm1hdHMuanMKICAgICAgdXJpOiAvXig/OlthLXpdW2EtejAtOStcLS5dKjopKD86XC8/XC8pP1teXHNdKiQvaSwKICAgICAgInVyaS1yZWZlcmVuY2UiOiAvXig/Oig/OlthLXpdW2EtejAtOStcLS5dKjopP1wvP1wvKT8oPzpbXlxcXHMjXVteXHMjXSopPyg/OiNbXlxcXHNdKik/JC9pLAogICAgICAvLyBlbWFpbCAoc291cmNlcyBmcm9tIGpzZW4gdmFsaWRhdG9yKToKICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDEzMjMvdXNpbmctYS1yZWd1bGFyLWV4cHJlc3Npb24tdG8tdmFsaWRhdGUtYW4tZW1haWwtYWRkcmVzcyNhbnN3ZXItODgyOTM2MwogICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3ZhbGlkLWUtbWFpbC1hZGRyZXNzIChzZWFyY2ggZm9yICd3aWxmdWwgdmlvbGF0aW9uJykKICAgICAgZW1haWw6IC9eW2EtejAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XC5bYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8pKiQvaQogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gT2JqZWN0LmtleXMoZXhwb3J0czIuZnVsbEZvcm1hdHMpOwogICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7CiAgICAgIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTsKICAgIH0KICAgIHZhciBEQVRFID0gL14oXGRcZFxkXGQpLShcZFxkKS0oXGRcZCkkLzsKICAgIHZhciBEQVlTID0gWzAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwogICAgZnVuY3Rpb24gZGF0ZShzdHIyKSB7CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBEQVRFLmV4ZWMoc3RyMik7CiAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGNvbnN0IHllYXIgPSArbWF0Y2hlc1sxXTsKICAgICAgY29uc3QgbW9udGggPSArbWF0Y2hlc1syXTsKICAgICAgY29uc3QgZGF5ID0gK21hdGNoZXNbM107CiAgICAgIHJldHVybiBtb250aCA+PSAxICYmIG1vbnRoIDw9IDEyICYmIGRheSA+PSAxICYmIGRheSA8PSAobW9udGggPT09IDIgJiYgaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogREFZU1ttb250aF0pOwogICAgfQogICAgZnVuY3Rpb24gY29tcGFyZURhdGUoZDEsIGQyKSB7CiAgICAgIGlmICghKGQxICYmIGQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBpZiAoZDEgPiBkMikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKGQxIDwgZDIpCiAgICAgICAgcmV0dXJuIC0xOwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIHZhciBUSU1FID0gL14oXGRcZCk6KFxkXGQpOihcZFxkKD86XC5cZCspPykoenwoWystXSkoXGRcZCkoPzo6PyhcZFxkKSk/KT8kL2k7CiAgICBmdW5jdGlvbiBnZXRUaW1lKHN0cmljdFRpbWVab25lKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiB0aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gVElNRS5leGVjKHN0cjIpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICBjb25zdCBociA9ICttYXRjaGVzWzFdOwogICAgICAgIGNvbnN0IG1pbiA9ICttYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHNlYyA9ICttYXRjaGVzWzNdOwogICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hlc1s0XTsKICAgICAgICBjb25zdCB0elNpZ24gPSBtYXRjaGVzWzVdID09PSAiLSIgPyAtMSA6IDE7CiAgICAgICAgY29uc3QgdHpIID0gKyhtYXRjaGVzWzZdIHx8IDApOwogICAgICAgIGNvbnN0IHR6TSA9ICsobWF0Y2hlc1s3XSB8fCAwKTsKICAgICAgICBpZiAodHpIID4gMjMgfHwgdHpNID4gNTkgfHwgc3RyaWN0VGltZVpvbmUgJiYgIXR6KQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChociA8PSAyMyAmJiBtaW4gPD0gNTkgJiYgc2VjIDwgNjApCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCB1dGNNaW4gPSBtaW4gLSB0ek0gKiB0elNpZ247CiAgICAgICAgY29uc3QgdXRjSHIgPSBociAtIHR6SCAqIHR6U2lnbiAtICh1dGNNaW4gPCAwID8gMSA6IDApOwogICAgICAgIHJldHVybiAodXRjSHIgPT09IDIzIHx8IHV0Y0hyID09PSAtMSkgJiYgKHV0Y01pbiA9PT0gNTkgfHwgdXRjTWluID09PSAtMSkgJiYgc2VjIDwgNjE7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlVGltZShzMSwgczIpIHsKICAgICAgaWYgKCEoczEgJiYgczIpKQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIGNvbnN0IHQxID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczEpKS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IHQyID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczIpKS52YWx1ZU9mKCk7CiAgICAgIGlmICghKHQxICYmIHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICByZXR1cm4gdDEgLSB0MjsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVJc29UaW1lKHQxLCB0MikgewogICAgICBpZiAoISh0MSAmJiB0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgYTEgPSBUSU1FLmV4ZWModDEpOwogICAgICBjb25zdCBhMiA9IFRJTUUuZXhlYyh0Mik7CiAgICAgIGlmICghKGExICYmIGEyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB0MSA9IGExWzFdICsgYTFbMl0gKyBhMVszXTsKICAgICAgdDIgPSBhMlsxXSArIGEyWzJdICsgYTJbM107CiAgICAgIGlmICh0MSA+IHQyKQogICAgICAgIHJldHVybiAxOwogICAgICBpZiAodDEgPCB0MikKICAgICAgICByZXR1cm4gLTE7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgdmFyIERBVEVfVElNRV9TRVBBUkFUT1IgPSAvdHxccy9pOwogICAgZnVuY3Rpb24gZ2V0RGF0ZVRpbWUoc3RyaWN0VGltZVpvbmUpIHsKICAgICAgY29uc3QgdGltZSA9IGdldFRpbWUoc3RyaWN0VGltZVpvbmUpOwogICAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZV90aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBkYXRlVGltZSA9IHN0cjIuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgICAgcmV0dXJuIGRhdGVUaW1lLmxlbmd0aCA9PT0gMiAmJiBkYXRlKGRhdGVUaW1lWzBdKSAmJiB0aW1lKGRhdGVUaW1lWzFdKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVEYXRlVGltZShkdDEsIGR0MikgewogICAgICBpZiAoIShkdDEgJiYgZHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGR0MSkudmFsdWVPZigpOwogICAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGR0MikudmFsdWVPZigpOwogICAgICBpZiAoIShkMSAmJiBkMikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIGQxIC0gZDI7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlSXNvRGF0ZVRpbWUoZHQxLCBkdDIpIHsKICAgICAgaWYgKCEoZHQxICYmIGR0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgW2QxLCB0MV0gPSBkdDEuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgIGNvbnN0IFtkMiwgdDJdID0gZHQyLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpOwogICAgICBjb25zdCByZXMgPSBjb21wYXJlRGF0ZShkMSwgZDIpOwogICAgICBpZiAocmVzID09PSB2b2lkIDApCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIHJlcyB8fCBjb21wYXJlVGltZSh0MSwgdDIpOwogICAgfQogICAgdmFyIE5PVF9VUklfRlJBR01FTlQgPSAvXC98Oi87CiAgICB2YXIgVVJJID0gL14oPzpbYS16XVthLXowLTkrXC0uXSo6KSg/OlwvP1wvKD86KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPykpfCg/Oig/OlswLTlhLWZdezEsNH06KXswLDV9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDZ9WzAtOWEtZl17MSw0fSk/OjopfFtWdl1bMC05YS1mXStcLlthLXowLTlcLS5ffiEkJicoKSorLDs9Ol0rKVxdfCg/Oig/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPylcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pfCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSp8XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqKSg/Olw/KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyQvaTsKICAgIGZ1bmN0aW9uIHVyaShzdHIyKSB7CiAgICAgIHJldHVybiBOT1RfVVJJX0ZSQUdNRU5ULnRlc3Qoc3RyMikgJiYgVVJJLnRlc3Qoc3RyMik7CiAgICB9CiAgICB2YXIgQllURSA9IC9eKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kL2dtOwogICAgZnVuY3Rpb24gYnl0ZShzdHIyKSB7CiAgICAgIEJZVEUubGFzdEluZGV4ID0gMDsKICAgICAgcmV0dXJuIEJZVEUudGVzdChzdHIyKTsKICAgIH0KICAgIHZhciBNSU5fSU5UMzIgPSAtKDIgKiogMzEpOwogICAgdmFyIE1BWF9JTlQzMiA9IDIgKiogMzEgLSAxOwogICAgZnVuY3Rpb24gdmFsaWRhdGVJbnQzMih2YWx1ZSkgewogICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPD0gTUFYX0lOVDMyICYmIHZhbHVlID49IE1JTl9JTlQzMjsKICAgIH0KICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW50NjQodmFsdWUpIHsKICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgdmFyIFpfQU5DSE9SID0gL1teXFxdXFxaLzsKICAgIGZ1bmN0aW9uIHJlZ2V4KHN0cjIpIHsKICAgICAgaWYgKFpfQU5DSE9SLnRlc3Qoc3RyMikpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAoc3RyMik7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2xpbWl0LmpzCnZhciByZXF1aXJlX2xpbWl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9saW1pdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZm9ybWF0TGltaXREZWZpbml0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gcmVxdWlyZV9hanYoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBvcHMgPSBjb2RlZ2VuXzEub3BlcmF0b3JzOwogICAgdmFyIEtXRHMgPSB7CiAgICAgIGZvcm1hdE1heGltdW06IHsgb2tTdHI6ICI8PSIsIG9rOiBvcHMuTFRFLCBmYWlsOiBvcHMuR1QgfSwKICAgICAgZm9ybWF0TWluaW11bTogeyBva1N0cjogIj49Iiwgb2s6IG9wcy5HVEUsIGZhaWw6IG9wcy5MVCB9LAogICAgICBmb3JtYXRFeGNsdXNpdmVNYXhpbXVtOiB7IG9rU3RyOiAiPCIsIG9rOiBvcHMuTFQsIGZhaWw6IG9wcy5HVEUgfSwKICAgICAgZm9ybWF0RXhjbHVzaXZlTWluaW11bTogeyBva1N0cjogIj4iLCBvazogb3BzLkdULCBmYWlsOiBvcHMuTFRFIH0KICAgIH07CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYHNob3VsZCBiZSAke0tXRHNba2V5d29yZF0ub2tTdHJ9ICR7c2NoZW1hQ29kZX1gLAogICAgICBwYXJhbXM6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7Y29tcGFyaXNvbjogJHtLV0RzW2tleXdvcmRdLm9rU3RyfSwgbGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdExpbWl0RGVmaW5pdGlvbiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICAgIGlmICghb3B0cy52YWxpZGF0ZUZvcm1hdHMpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZkN4dCA9IG5ldyBhanZfMS5LZXl3b3JkQ3h0KGl0LCBzZWxmMi5SVUxFUy5hbGwuZm9ybWF0LmRlZmluaXRpb24sICJmb3JtYXQiKTsKICAgICAgICBpZiAoZkN4dC4kZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZm10ID0gZ2VuLmNvbnN0KCJmbXQiLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10c31bJHtmQ3h0LnNjaGVtYUNvZGV9XWApOwogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLm9yKSgoMCwgY29kZWdlbl8xLl8pYHR5cGVvZiAke2ZtdH0gIT0gIm9iamVjdCJgLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10fSBpbnN0YW5jZW9mIFJlZ0V4cGAsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7Zm10fS5jb21wYXJlICE9ICJmdW5jdGlvbiJgLCBjb21wYXJlQ29kZShmbXQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRm9ybWF0KCkgewogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZkN4dC5zY2hlbWE7CiAgICAgICAgICBjb25zdCBmbXREZWYgPSBzZWxmMi5mb3JtYXRzW2Zvcm1hdF07CiAgICAgICAgICBpZiAoIWZtdERlZiB8fCBmbXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGlmICh0eXBlb2YgZm10RGVmICE9ICJvYmplY3QiIHx8IGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCB8fCB0eXBlb2YgZm10RGVmLmNvbXBhcmUgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCIke2tleXdvcmR9IjogZm9ybWF0ICIke2Zvcm1hdH0iIGRvZXMgbm90IGRlZmluZSAiY29tcGFyZSIgZnVuY3Rpb25gKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgewogICAgICAgICAgICBrZXk6IGZvcm1hdCwKICAgICAgICAgICAgcmVmOiBmbXREZWYsCiAgICAgICAgICAgIGNvZGU6IG9wdHMuY29kZS5mb3JtYXRzID8gKDAsIGNvZGVnZW5fMS5fKWAke29wdHMuY29kZS5mb3JtYXRzfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoZm9ybWF0KX1gIDogdm9pZCAwCiAgICAgICAgICB9KTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoY29tcGFyZUNvZGUoZm10KSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVDb2RlKGZtdCkgewogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LmNvbXBhcmUoJHtkYXRhfSwgJHtzY2hlbWFDb2RlfSkgJHtLV0RzW2tleXdvcmRdLmZhaWx9IDBgOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVwZW5kZW5jaWVzOiBbImZvcm1hdCJdCiAgICB9OwogICAgdmFyIGZvcm1hdExpbWl0UGx1Z2luID0gKGFqdikgPT4gewogICAgICBhanYuYWRkS2V5d29yZChleHBvcnRzMi5mb3JtYXRMaW1pdERlZmluaXRpb24pOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBmb3JtYXRMaW1pdFBsdWdpbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgZm9ybWF0c18xID0gcmVxdWlyZV9mb3JtYXRzKCk7CiAgICB2YXIgbGltaXRfMSA9IHJlcXVpcmVfbGltaXQoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBmdWxsTmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZnVsbEZvcm1hdHMiKTsKICAgIHZhciBmYXN0TmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZmFzdEZvcm1hdHMiKTsKICAgIHZhciBmb3JtYXRzUGx1Z2luID0gKGFqdiwgb3B0cyA9IHsga2V5d29yZHM6IHRydWUgfSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkgewogICAgICAgIGFkZEZvcm1hdHMoYWp2LCBvcHRzLCBmb3JtYXRzXzEuZnVsbEZvcm1hdHMsIGZ1bGxOYW1lKTsKICAgICAgICByZXR1cm4gYWp2OwogICAgICB9CiAgICAgIGNvbnN0IFtmb3JtYXRzLCBleHBvcnROYW1lXSA9IG9wdHMubW9kZSA9PT0gImZhc3QiID8gW2Zvcm1hdHNfMS5mYXN0Rm9ybWF0cywgZmFzdE5hbWVdIDogW2Zvcm1hdHNfMS5mdWxsRm9ybWF0cywgZnVsbE5hbWVdOwogICAgICBjb25zdCBsaXN0ID0gb3B0cy5mb3JtYXRzIHx8IGZvcm1hdHNfMS5mb3JtYXROYW1lczsKICAgICAgYWRkRm9ybWF0cyhhanYsIGxpc3QsIGZvcm1hdHMsIGV4cG9ydE5hbWUpOwogICAgICBpZiAob3B0cy5rZXl3b3JkcykKICAgICAgICAoMCwgbGltaXRfMS5kZWZhdWx0KShhanYpOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGZvcm1hdHNQbHVnaW4uZ2V0ID0gKG5hbWUsIG1vZGUgPSAiZnVsbCIpID0+IHsKICAgICAgY29uc3QgZm9ybWF0cyA9IG1vZGUgPT09ICJmYXN0IiA/IGZvcm1hdHNfMS5mYXN0Rm9ybWF0cyA6IGZvcm1hdHNfMS5mdWxsRm9ybWF0czsKICAgICAgY29uc3QgZiA9IGZvcm1hdHNbbmFtZV07CiAgICAgIGlmICghZikKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZm9ybWF0ICIke25hbWV9ImApOwogICAgICByZXR1cm4gZjsKICAgIH07CiAgICBmdW5jdGlvbiBhZGRGb3JtYXRzKGFqdiwgbGlzdCwgZnMsIGV4cG9ydE5hbWUpIHsKICAgICAgdmFyIF9hOwogICAgICB2YXIgX2I7CiAgICAgIChfYSA9IChfYiA9IGFqdi5vcHRzLmNvZGUpLmZvcm1hdHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IF9iLmZvcm1hdHMgPSAoMCwgY29kZWdlbl8xLl8pYHJlcXVpcmUoImFqdi1mb3JtYXRzL2Rpc3QvZm9ybWF0cyIpLiR7ZXhwb3J0TmFtZX1gOwogICAgICBmb3IgKGNvbnN0IGYgb2YgbGlzdCkKICAgICAgICBhanYuYWRkRm9ybWF0KGYsIGZzW2ZdKTsKICAgIH0KICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gZm9ybWF0c1BsdWdpbjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdHNQbHVnaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcwp2YXIgcmVxdWlyZV9pc0Z1bmN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNGdW5jdGlvbiA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIjsKICAgIH0KICAgIGV4cG9ydHMyLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMKdmFyIHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUVycm9yQ2xhc3MgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBjcmVhdGVFcnJvckNsYXNzKGNyZWF0ZUltcGwpIHsKICAgICAgdmFyIF9zdXBlciA9IGZ1bmN0aW9uKGluc3RhbmNlKSB7CiAgICAgICAgRXJyb3IuY2FsbChpbnN0YW5jZSk7CiAgICAgICAgaW5zdGFuY2Uuc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjazsKICAgICAgfTsKICAgICAgdmFyIGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpOwogICAgICBjdG9yRnVuYy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CiAgICAgIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jOwogICAgICByZXR1cm4gY3RvckZ1bmM7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVFcnJvckNsYXNzID0gY3JlYXRlRXJyb3JDbGFzczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzCnZhciByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VbnN1YnNjcmlwdGlvbkVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVW5zdWJzY3JpcHRpb25FcnJvckltcGwoZXJyb3JzKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9ycyA/IGVycm9ycy5sZW5ndGggKyAiIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4iICsgZXJyb3JzLm1hcChmdW5jdGlvbihlcnIsIGkpIHsKICAgICAgICAgIHJldHVybiBpICsgMSArICIpICIgKyBlcnIudG9TdHJpbmcoKTsKICAgICAgICB9KS5qb2luKCJcbiAgIikgOiAiIjsKICAgICAgICB0aGlzLm5hbWUgPSAiVW5zdWJzY3JpcHRpb25FcnJvciI7CiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcnJSZW1vdmUuanMKdmFyIHJlcXVpcmVfYXJyUmVtb3ZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBhcnJSZW1vdmUoYXJyLCBpdGVtKSB7CiAgICAgIGlmIChhcnIpIHsKICAgICAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTsKICAgICAgICAwIDw9IGluZGV4ICYmIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSBhcnJSZW1vdmU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmlwdGlvbi5qcwp2YXIgcmVxdWlyZV9TdWJzY3JpcHRpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1N1YnNjcmlwdGlvbiA9IGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBVbnN1YnNjcmlwdGlvbkVycm9yXzEgPSByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFN1YnNjcmlwdGlvbjIoaW5pdGlhbFRlYXJkb3duKSB7CiAgICAgICAgdGhpcy5pbml0aWFsVGVhcmRvd24gPSBpbml0aWFsVGVhcmRvd247CiAgICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBudWxsOwogICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsOwogICAgICB9CiAgICAgIFN1YnNjcmlwdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgdmFyIGVycm9yczsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTsKICAgICAgICAgIGlmIChfcGFyZW50YWdlKSB7CiAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7CiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9wYXJlbnRhZ2VfMSA9IF9fdmFsdWVzKF9wYXJlbnRhZ2UpLCBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCk7ICFfcGFyZW50YWdlXzFfMS5kb25lOyBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudF8xID0gX3BhcmVudGFnZV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgICAgIHBhcmVudF8xLnJlbW92ZSh0aGlzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgaWYgKF9wYXJlbnRhZ2VfMV8xICYmICFfcGFyZW50YWdlXzFfMS5kb25lICYmIChfYSA9IF9wYXJlbnRhZ2VfMS5yZXR1cm4pKSBfYS5jYWxsKF9wYXJlbnRhZ2VfMSk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgaW5pdGlhbEZpbmFsaXplciA9IHRoaXMuaW5pdGlhbFRlYXJkb3duOwogICAgICAgICAgaWYgKGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGluaXRpYWxGaW5hbGl6ZXIpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaW5pdGlhbEZpbmFsaXplcigpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgZXJyb3JzID0gZSBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yID8gZS5lcnJvcnMgOiBbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBfZmluYWxpemVycyA9IHRoaXMuX2ZpbmFsaXplcnM7CiAgICAgICAgICBpZiAoX2ZpbmFsaXplcnMpIHsKICAgICAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2ZpbmFsaXplcnNfMSA9IF9fdmFsdWVzKF9maW5hbGl6ZXJzKSwgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCk7ICFfZmluYWxpemVyc18xXzEuZG9uZTsgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgIHZhciBmaW5hbGl6ZXIgPSBfZmluYWxpemVyc18xXzEudmFsdWU7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBleGVjRmluYWxpemVyKGZpbmFsaXplcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDogW107CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcikgewogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGVycm9ycykpLCBfX3JlYWQoZXJyLmVycm9ycykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMl8xKSB7CiAgICAgICAgICAgICAgZV8yID0geyBlcnJvcjogZV8yXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzXzFfMSAmJiAhX2ZpbmFsaXplcnNfMV8xLmRvbmUgJiYgKF9iID0gX2ZpbmFsaXplcnNfMS5yZXR1cm4pKSBfYi5jYWxsKF9maW5hbGl6ZXJzXzEpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8yKSB0aHJvdyBlXzIuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHRlYXJkb3duICYmIHRlYXJkb3duICE9PSB0aGlzKSB7CiAgICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24yKSB7CiAgICAgICAgICAgICAgaWYgKHRlYXJkb3duLmNsb3NlZCB8fCB0ZWFyZG93bi5faGFzUGFyZW50KHRoaXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRlYXJkb3duLl9hZGRQYXJlbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKHRoaXMuX2ZpbmFsaXplcnMgPSAoX2EgPSB0aGlzLl9maW5hbGl6ZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSkucHVzaCh0ZWFyZG93bik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5faGFzUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgcmV0dXJuIF9wYXJlbnRhZ2UgPT09IHBhcmVudCB8fCBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpICYmIF9wYXJlbnRhZ2UuaW5jbHVkZXMocGFyZW50KTsKICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuX2FkZFBhcmVudCA9IGZ1bmN0aW9uKHBhcmVudCkgewogICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlOwogICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgPyAoX3BhcmVudGFnZS5wdXNoKHBhcmVudCksIF9wYXJlbnRhZ2UpIDogX3BhcmVudGFnZSA/IFtfcGFyZW50YWdlLCBwYXJlbnRdIDogcGFyZW50OwogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgaWYgKF9wYXJlbnRhZ2UgPT09IHBhcmVudCkgewogICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkpIHsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShfcGFyZW50YWdlLCBwYXJlbnQpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2ZpbmFsaXplcnMgPSB0aGlzLl9maW5hbGl6ZXJzOwogICAgICAgIF9maW5hbGl6ZXJzICYmIGFyclJlbW92ZV8xLmFyclJlbW92ZShfZmluYWxpemVycywgdGVhcmRvd24pOwogICAgICAgIGlmICh0ZWFyZG93biBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbjIpIHsKICAgICAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLkVNUFRZID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVtcHR5ID0gbmV3IFN1YnNjcmlwdGlvbjIoKTsKICAgICAgICBlbXB0eS5jbG9zZWQgPSB0cnVlOwogICAgICAgIHJldHVybiBlbXB0eTsKICAgICAgfSgpOwogICAgICByZXR1cm4gU3Vic2NyaXB0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjsKICAgIGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IFN1YnNjcmlwdGlvbi5FTVBUWTsKICAgIGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fCB2YWx1ZSAmJiAiY2xvc2VkIiBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih2YWx1ZS5yZW1vdmUpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmFkZCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpOwogICAgfQogICAgZXhwb3J0czIuaXNTdWJzY3JpcHRpb24gPSBpc1N1YnNjcmlwdGlvbjsKICAgIGZ1bmN0aW9uIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKSB7CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihmaW5hbGl6ZXIpKSB7CiAgICAgICAgZmluYWxpemVyKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZmluYWxpemVyLnVuc3Vic2NyaWJlKCk7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvY29uZmlnLmpzCnZhciByZXF1aXJlX2NvbmZpZyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9jb25maWcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHsKICAgICAgb25VbmhhbmRsZWRFcnJvcjogbnVsbCwKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiBudWxsLAogICAgICBQcm9taXNlOiB2b2lkIDAsCiAgICAgIHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6IGZhbHNlLAogICAgICB1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6IGZhbHNlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzCnZhciByZXF1aXJlX3RpbWVvdXRQcm92aWRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB2b2lkIDA7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB7CiAgICAgIHNldFRpbWVvdXQ6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRUaW1lb3V0KSB7CiAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0VGltZW91dC5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW2hhbmRsZXIsIHRpbWVvdXRdLCBfX3JlYWQoYXJncykpKTsKICAgICAgfSwKICAgICAgY2xlYXJUaW1lb3V0OiBmdW5jdGlvbihoYW5kbGUpIHsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFyVGltZW91dCkgfHwgY2xlYXJUaW1lb3V0KShoYW5kbGUpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yLmpzCnZhciByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvbmZpZ18xID0gcmVxdWlyZV9jb25maWcoKTsKICAgIHZhciB0aW1lb3V0UHJvdmlkZXJfMSA9IHJlcXVpcmVfdGltZW91dFByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiByZXBvcnRVbmhhbmRsZWRFcnJvcihlcnIpIHsKICAgICAgdGltZW91dFByb3ZpZGVyXzEudGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9uVW5oYW5kbGVkRXJyb3IgPSBjb25maWdfMS5jb25maWcub25VbmhhbmRsZWRFcnJvcjsKICAgICAgICBpZiAob25VbmhhbmRsZWRFcnJvcikgewogICAgICAgICAgb25VbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gcmVwb3J0VW5oYW5kbGVkRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcwp2YXIgcmVxdWlyZV9ub29wID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm9vcCA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIG5vb3AoKSB7CiAgICB9CiAgICBleHBvcnRzMi5ub29wID0gbm9vcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uRmFjdG9yaWVzLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbkZhY3RvcmllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb25GYWN0b3JpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZU5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLm5leHROb3RpZmljYXRpb24gPSBleHBvcnRzMi5lcnJvck5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCJDIiwgdm9pZCAwLCB2b2lkIDApOwogICAgfSgpOwogICAgZnVuY3Rpb24gZXJyb3JOb3RpZmljYXRpb24oZXJyb3IpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiRSIsIHZvaWQgMCwgZXJyb3IpOwogICAgfQogICAgZXhwb3J0czIuZXJyb3JOb3RpZmljYXRpb24gPSBlcnJvck5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG5leHROb3RpZmljYXRpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiTiIsIHZhbHVlLCB2b2lkIDApOwogICAgfQogICAgZXhwb3J0czIubmV4dE5vdGlmaWNhdGlvbiA9IG5leHROb3RpZmljYXRpb247CiAgICBmdW5jdGlvbiBjcmVhdGVOb3RpZmljYXRpb24oa2luZCwgdmFsdWUsIGVycm9yKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAga2luZCwKICAgICAgICB2YWx1ZSwKICAgICAgICBlcnJvcgogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlTm90aWZpY2F0aW9uID0gY3JlYXRlTm90aWZpY2F0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2Vycm9yQ29udGV4dC5qcwp2YXIgcmVxdWlyZV9lcnJvckNvbnRleHQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9lcnJvckNvbnRleHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNhcHR1cmVFcnJvciA9IGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IHZvaWQgMDsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgY29udGV4dCA9IG51bGw7CiAgICBmdW5jdGlvbiBlcnJvckNvbnRleHQoY2IpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKSB7CiAgICAgICAgdmFyIGlzUm9vdCA9ICFjb250ZXh0OwogICAgICAgIGlmIChpc1Jvb3QpIHsKICAgICAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgY2IoKTsKICAgICAgICBpZiAoaXNSb290KSB7CiAgICAgICAgICB2YXIgX2EgPSBjb250ZXh0LCBlcnJvclRocm93biA9IF9hLmVycm9yVGhyb3duLCBlcnJvciA9IF9hLmVycm9yOwogICAgICAgICAgY29udGV4dCA9IG51bGw7CiAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHsKICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNiKCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IGVycm9yQ29udGV4dDsKICAgIGZ1bmN0aW9uIGNhcHR1cmVFcnJvcihlcnIpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nICYmIGNvbnRleHQpIHsKICAgICAgICBjb250ZXh0LmVycm9yVGhyb3duID0gdHJ1ZTsKICAgICAgICBjb250ZXh0LmVycm9yID0gZXJyOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5jYXB0dXJlRXJyb3IgPSBjYXB0dXJlRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfU3Vic2NyaWJlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TdWJzY3JpYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkVNUFRZX09CU0VSVkVSID0gZXhwb3J0czIuU2FmZVN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgcmVwb3J0VW5oYW5kbGVkRXJyb3JfMSA9IHJlcXVpcmVfcmVwb3J0VW5oYW5kbGVkRXJyb3IoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBOb3RpZmljYXRpb25GYWN0b3JpZXNfMSA9IHJlcXVpcmVfTm90aWZpY2F0aW9uRmFjdG9yaWVzKCk7CiAgICB2YXIgdGltZW91dFByb3ZpZGVyXzEgPSByZXF1aXJlX3RpbWVvdXRQcm92aWRlcigpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJzY3JpYmVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3Vic2NyaWJlcjIoZGVzdGluYXRpb24pIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLmlzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgIGlmIChkZXN0aW5hdGlvbikgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsKICAgICAgICAgIGlmIChTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkKF90aGlzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFN1YnNjcmliZXIyLmNyZWF0ZSA9IGZ1bmN0aW9uKG5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHJldHVybiBuZXcgU2FmZVN1YnNjcmliZXIobmV4dCwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25GYWN0b3JpZXNfMS5uZXh0Tm90aWZpY2F0aW9uKHZhbHVlKSwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX25leHQodmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLmVycm9yTm90aWZpY2F0aW9uKGVyciksIHRoaXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLl9lcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLkNPTVBMRVRFX05PVElGSUNBVElPTiwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMuX2NvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpYmVyMi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbnVsbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5uZXh0KHZhbHVlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gU3Vic2NyaWJlcjI7CiAgICB9KFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbik7CiAgICBleHBvcnRzMi5TdWJzY3JpYmVyID0gU3Vic2NyaWJlcjsKICAgIHZhciBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kOwogICAgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykgewogICAgICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7CiAgICB9CiAgICB2YXIgQ29uc3VtZXJPYnNlcnZlciA9IGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBDb25zdW1lck9ic2VydmVyMihwYXJ0aWFsT2JzZXJ2ZXIpIHsKICAgICAgICB0aGlzLnBhcnRpYWxPYnNlcnZlciA9IHBhcnRpYWxPYnNlcnZlcjsKICAgICAgfQogICAgICBDb25zdW1lck9ic2VydmVyMi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIubmV4dCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIENvbnN1bWVyT2JzZXJ2ZXIyOwogICAgfSgpOwogICAgdmFyIFNhZmVTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTYWZlU3Vic2NyaWJlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFNhZmVTdWJzY3JpYmVyMihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgIW9ic2VydmVyT3JOZXh0KSB7CiAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7CiAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0ICE9PSBudWxsICYmIG9ic2VydmVyT3JOZXh0ICE9PSB2b2lkIDAgPyBvYnNlcnZlck9yTmV4dCA6IHZvaWQgMCwKICAgICAgICAgICAgZXJyb3I6IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IHZvaWQgMCwKICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlICE9PSBudWxsICYmIGNvbXBsZXRlICE9PSB2b2lkIDAgPyBjb21wbGV0ZSA6IHZvaWQgMAogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGNvbnRleHRfMTsKICAgICAgICAgIGlmIChfdGhpcyAmJiBjb25maWdfMS5jb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHRfMSA9IE9iamVjdC5jcmVhdGUob2JzZXJ2ZXJPck5leHQpOwogICAgICAgICAgICBjb250ZXh0XzEudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyID0gewogICAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0Lm5leHQgJiYgYmluZChvYnNlcnZlck9yTmV4dC5uZXh0LCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGVycm9yOiBvYnNlcnZlck9yTmV4dC5lcnJvciAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmVycm9yLCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0XzEpCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBuZXcgQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICByZXR1cm4gU2FmZVN1YnNjcmliZXIyOwogICAgfShTdWJzY3JpYmVyKTsKICAgIGV4cG9ydHMyLlNhZmVTdWJzY3JpYmVyID0gU2FmZVN1YnNjcmliZXI7CiAgICBmdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcikgewogICAgICBpZiAoY29uZmlnXzEuY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHsKICAgICAgICBlcnJvckNvbnRleHRfMS5jYXB0dXJlRXJyb3IoZXJyb3IpOwogICAgICB9IGVsc2UgewogICAgICAgIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycikgewogICAgICB0aHJvdyBlcnI7CiAgICB9CiAgICBmdW5jdGlvbiBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcikgewogICAgICB2YXIgb25TdG9wcGVkTm90aWZpY2F0aW9uID0gY29uZmlnXzEuY29uZmlnLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjsKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uICYmIHRpbWVvdXRQcm92aWRlcl8xLnRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBvblN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUiA9IHsKICAgICAgY2xvc2VkOiB0cnVlLAogICAgICBuZXh0OiBub29wXzEubm9vcCwKICAgICAgZXJyb3I6IGRlZmF1bHRFcnJvckhhbmRsZXIsCiAgICAgIGNvbXBsZXRlOiBub29wXzEubm9vcAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL29ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfb2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgIkBAb2JzZXJ2YWJsZSI7CiAgICB9KCk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaWRlbnRpdHkuanMKdmFyIHJlcXVpcmVfaWRlbnRpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWRlbnRpdHkgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBpZGVudGl0eSh4KSB7CiAgICAgIHJldHVybiB4OwogICAgfQogICAgZXhwb3J0czIuaWRlbnRpdHkgPSBpZGVudGl0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzCnZhciByZXF1aXJlX3BpcGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5waXBlRnJvbUFycmF5ID0gZXhwb3J0czIucGlwZSA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcGlwZSgpIHsKICAgICAgdmFyIGZucyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGZuc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBwaXBlRnJvbUFycmF5KGZucyk7CiAgICB9CiAgICBleHBvcnRzMi5waXBlID0gcGlwZTsKICAgIGZ1bmN0aW9uIHBpcGVGcm9tQXJyYXkoZm5zKSB7CiAgICAgIGlmIChmbnMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZm5zWzBdOwogICAgICB9CiAgICAgIHJldHVybiBmdW5jdGlvbiBwaXBlZChpbnB1dCkgewogICAgICAgIHJldHVybiBmbnMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGZuKSB7CiAgICAgICAgICByZXR1cm4gZm4ocHJldik7CiAgICAgICAgfSwgaW5wdXQpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIucGlwZUZyb21BcnJheSA9IHBpcGVGcm9tQXJyYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9PYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBvYnNlcnZhYmxlXzEgPSByZXF1aXJlX29ic2VydmFibGUoKTsKICAgIHZhciBwaXBlXzEgPSByZXF1aXJlX3BpcGUoKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXJyb3JDb250ZXh0XzEgPSByZXF1aXJlX2Vycm9yQ29udGV4dCgpOwogICAgdmFyIE9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gT2JzZXJ2YWJsZTIoc3Vic2NyaWJlKSB7CiAgICAgICAgaWYgKHN1YnNjcmliZSkgewogICAgICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlOwogICAgICAgIH0KICAgICAgfQogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUubGlmdCA9IGZ1bmN0aW9uKG9wZXJhdG9yKSB7CiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTIoKTsKICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7CiAgICAgICAgb2JzZXJ2YWJsZS5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24ob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBpc1N1YnNjcmliZXIob2JzZXJ2ZXJPck5leHQpID8gb2JzZXJ2ZXJPck5leHQgOiBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUpOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYSA9IF90aGlzLCBvcGVyYXRvciA9IF9hLm9wZXJhdG9yLCBzb3VyY2UgPSBfYS5zb3VyY2U7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChvcGVyYXRvciA/IG9wZXJhdG9yLmNhbGwoc3Vic2NyaWJlciwgc291cmNlKSA6IHNvdXJjZSA/IF90aGlzLl9zdWJzY3JpYmUoc3Vic2NyaWJlcikgOiBfdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzaW5rKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiB0aGlzLl9zdWJzY3JpYmUoc2luayk7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBzaW5rLmVycm9yKGVycik7CiAgICAgICAgfQogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKG5leHQsIHByb21pc2VDdG9yKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTsKICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKHsKICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvcGVyYXRpb25zID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIG9wZXJhdGlvbnNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHBpcGVfMS5waXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUudG9Qcm9taXNlID0gZnVuY3Rpb24ocHJvbWlzZUN0b3IpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpOwogICAgICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoZnVuY3Rpb24oeCkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUgPSB4OwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh2YWx1ZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIuY3JlYXRlID0gZnVuY3Rpb24oc3Vic2NyaWJlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlMihzdWJzY3JpYmUpOwogICAgICB9OwogICAgICByZXR1cm4gT2JzZXJ2YWJsZTI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gT2JzZXJ2YWJsZTsKICAgIGZ1bmN0aW9uIGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmV0dXJuIChfYSA9IHByb21pc2VDdG9yICE9PSBudWxsICYmIHByb21pc2VDdG9yICE9PSB2b2lkIDAgPyBwcm9taXNlQ3RvciA6IGNvbmZpZ18xLmNvbmZpZy5Qcm9taXNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBQcm9taXNlOwogICAgfQogICAgZnVuY3Rpb24gaXNPYnNlcnZlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUubmV4dCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuZXJyb3IpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmNvbXBsZXRlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU3Vic2NyaWJlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBTdWJzY3JpYmVyXzEuU3Vic2NyaWJlciB8fCBpc09ic2VydmVyKHZhbHVlKSAmJiBTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbih2YWx1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcwp2YXIgcmVxdWlyZV9saWZ0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub3BlcmF0ZSA9IGV4cG9ydHMyLmhhc0xpZnQgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBoYXNMaWZ0KHNvdXJjZSkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmxpZnQpOwogICAgfQogICAgZXhwb3J0czIuaGFzTGlmdCA9IGhhc0xpZnQ7CiAgICBmdW5jdGlvbiBvcGVyYXRlKGluaXQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIGlmIChoYXNMaWZ0KHNvdXJjZSkpIHsKICAgICAgICAgIHJldHVybiBzb3VyY2UubGlmdChmdW5jdGlvbihsaWZ0ZWRTb3VyY2UpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICByZXR1cm4gaW5pdChsaWZ0ZWRTb3VyY2UsIHRoaXMpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICB0aGlzLmVycm9yKGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub3BlcmF0ZSA9IG9wZXJhdGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gZXhwb3J0czIuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpIHsKICAgICAgcmV0dXJuIG5ldyBPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSk7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXI7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhPcGVyYXRvclN1YnNjcmliZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBPcGVyYXRvclN1YnNjcmliZXIyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUsIHNob3VsZFVuc3Vic2NyaWJlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZGVzdGluYXRpb24pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMub25GaW5hbGl6ZSA9IG9uRmluYWxpemU7CiAgICAgICAgX3RoaXMuc2hvdWxkVW5zdWJzY3JpYmUgPSBzaG91bGRVbnN1YnNjcmliZTsKICAgICAgICBfdGhpcy5fbmV4dCA9IG9uTmV4dCA/IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBvbk5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX25leHQ7CiAgICAgICAgX3RoaXMuX2Vycm9yID0gb25FcnJvciA/IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyMikgewogICAgICAgICAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnIyKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9IDogX3N1cGVyLnByb3RvdHlwZS5fZXJyb3I7CiAgICAgICAgX3RoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZSA/IGZ1bmN0aW9uKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25Db21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX2NvbXBsZXRlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPcGVyYXRvclN1YnNjcmliZXIyLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmUgfHwgdGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKSB7CiAgICAgICAgICB2YXIgY2xvc2VkXzEgPSB0aGlzLmNsb3NlZDsKICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTsKICAgICAgICAgICFjbG9zZWRfMSAmJiAoKF9hID0gdGhpcy5vbkZpbmFsaXplKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKSk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gT3BlcmF0b3JTdWJzY3JpYmVyMjsKICAgIH0oU3Vic2NyaWJlcl8xLlN1YnNjcmliZXIpOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmVmQ291bnQuanMKdmFyIHJlcXVpcmVfcmVmQ291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZkNvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZWZDb3VudCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiByZWZDb3VudCgpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBzb3VyY2UuX3JlZkNvdW50Kys7CiAgICAgICAgdmFyIHJlZkNvdW50ZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UuX3JlZkNvdW50IDw9IDAgfHwgMCA8IC0tc291cmNlLl9yZWZDb3VudCkgewogICAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNoYXJlZENvbm5lY3Rpb24gPSBzb3VyY2UuX2Nvbm5lY3Rpb247CiAgICAgICAgICB2YXIgY29ubiA9IGNvbm5lY3Rpb247CiAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgIGlmIChzaGFyZWRDb25uZWN0aW9uICYmICghY29ubiB8fCBzaGFyZWRDb25uZWN0aW9uID09PSBjb25uKSkgewogICAgICAgICAgICBzaGFyZWRDb25uZWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShyZWZDb3VudGVyKTsKICAgICAgICBpZiAoIXJlZkNvdW50ZXIuY2xvc2VkKSB7CiAgICAgICAgICBjb25uZWN0aW9uID0gc291cmNlLmNvbm5lY3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVmQ291bnQgPSByZWZDb3VudDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvQ29ubmVjdGFibGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgcmVmQ291bnRfMSA9IHJlcXVpcmVfcmVmQ291bnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhDb25uZWN0YWJsZU9ic2VydmFibGUyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBDb25uZWN0YWJsZU9ic2VydmFibGUyKHNvdXJjZSwgc3ViamVjdEZhY3RvcnkpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICBfdGhpcy5zdWJqZWN0RmFjdG9yeSA9IHN1YmplY3RGYWN0b3J5OwogICAgICAgIF90aGlzLl9zdWJqZWN0ID0gbnVsbDsKICAgICAgICBfdGhpcy5fcmVmQ291bnQgPSAwOwogICAgICAgIF90aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBpZiAobGlmdF8xLmhhc0xpZnQoc291cmNlKSkgewogICAgICAgICAgX3RoaXMubGlmdCA9IHNvdXJjZS5saWZ0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBDb25uZWN0YWJsZU9ic2VydmFibGUyLnByb3RvdHlwZS5nZXRTdWJqZWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSB0aGlzLl9zdWJqZWN0OwogICAgICAgIGlmICghc3ViamVjdCB8fCBzdWJqZWN0LmlzU3RvcHBlZCkgewogICAgICAgICAgdGhpcy5fc3ViamVjdCA9IHRoaXMuc3ViamVjdEZhY3RvcnkoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7CiAgICAgIH07CiAgICAgIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90ZWFyZG93biA9IGZ1bmN0aW9uKCkgewogICAgICAgIHRoaXMuX3JlZkNvdW50ID0gMDsKICAgICAgICB2YXIgX2Nvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIHRoaXMuX3N1YmplY3QgPSB0aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBfY29ubmVjdGlvbiA9PT0gbnVsbCB8fCBfY29ubmVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Nvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIGNvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIGlmICghY29ubmVjdGlvbikgewogICAgICAgICAgY29ubmVjdGlvbiA9IHRoaXMuX2Nvbm5lY3Rpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgc3ViamVjdF8xID0gdGhpcy5nZXRTdWJqZWN0KCk7CiAgICAgICAgICBjb25uZWN0aW9uLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YmplY3RfMSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICAgIHN1YmplY3RfMS5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIF90aGlzLl90ZWFyZG93bigpOwogICAgICAgICAgICBzdWJqZWN0XzEuZXJyb3IoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICB9KSkpOwogICAgICAgICAgaWYgKGNvbm5lY3Rpb24uY2xvc2VkKSB7CiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24gPSBudWxsOwogICAgICAgICAgICBjb25uZWN0aW9uID0gU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uLkVNUFRZOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUucmVmQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gcmVmQ291bnRfMS5yZWZDb3VudCgpKHRoaXMpOwogICAgICB9OwogICAgICByZXR1cm4gQ29ubmVjdGFibGVPYnNlcnZhYmxlMjsKICAgIH0oT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpOwogICAgZXhwb3J0czIuQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gQ29ubmVjdGFibGVPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIucGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLnBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIuZGVsZWdhdGUgfHwgcGVyZm9ybWFuY2UpLm5vdygpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIgPSB7CiAgICAgIHNjaGVkdWxlOiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgIHZhciByZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lOwogICAgICAgIHZhciBjYW5jZWwgPSBjYW5jZWxBbmltYXRpb25GcmFtZTsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSkgewogICAgICAgICAgcmVxdWVzdCA9IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZTsKICAgICAgICAgIGNhbmNlbCA9IGRlbGVnYXRlLmNhbmNlbEFuaW1hdGlvbkZyYW1lOwogICAgICAgIH0KICAgICAgICB2YXIgaGFuZGxlID0gcmVxdWVzdChmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICBjYW5jZWwgPSB2b2lkIDA7CiAgICAgICAgICBjYWxsYmFjayh0aW1lc3RhbXAyKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBjYW5jZWwgPT09IG51bGwgfHwgY2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYW5jZWwoaGFuZGxlKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZSkgfHwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIHJldHVybiAoKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5jYW5jZWxBbmltYXRpb25GcmFtZSkgfHwgY2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZG9tL2FuaW1hdGlvbkZyYW1lcy5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9kb20vYW5pbWF0aW9uRnJhbWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXModGltZXN0YW1wUHJvdmlkZXIpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcFByb3ZpZGVyID8gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSh0aW1lc3RhbXBQcm92aWRlcikgOiBERUZBVUxUX0FOSU1BVElPTl9GUkFNRVM7CiAgICB9CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSBhbmltYXRpb25GcmFtZXM7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXNGYWN0b3J5KHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBwcm92aWRlciA9IHRpbWVzdGFtcFByb3ZpZGVyIHx8IHBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXJfMS5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIHZhciBzdGFydCA9IHByb3ZpZGVyLm5vdygpOwogICAgICAgIHZhciBpZCA9IDA7CiAgICAgICAgdmFyIHJ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBpZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICAgICAgaWQgPSAwOwogICAgICAgICAgICAgIHZhciBub3cgPSBwcm92aWRlci5ub3coKTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoewogICAgICAgICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXBQcm92aWRlciA/IG5vdyA6IHRpbWVzdGFtcDIsCiAgICAgICAgICAgICAgICBlbGFwc2VkOiBub3cgLSBzdGFydAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJ1bigpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHJ1bigpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChpZCkgewogICAgICAgICAgICBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEuYW5pbWF0aW9uRnJhbWVQcm92aWRlci5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICB2YXIgREVGQVVMVF9BTklNQVRJT05fRlJBTUVTID0gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSgpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLmpzCnZhciByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCgpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk9iamVjdFVuc3Vic2NyaWJlZEVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAib2JqZWN0IHVuc3Vic2NyaWJlZCI7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9TdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5vbnltb3VzU3ViamVjdCA9IGV4cG9ydHMyLlN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uXzEgPSByZXF1aXJlX1N1YnNjcmlwdGlvbigpOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJqZWN0MiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSBbXTsKICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5oYXNFcnJvciA9IGZhbHNlOwogICAgICAgIF90aGlzLnRocm93bkVycm9yID0gbnVsbDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgU3ViamVjdDIucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbihvcGVyYXRvcikgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFub255bW91c1N1YmplY3QodGhpcywgdGhpcyk7CiAgICAgICAgc3ViamVjdC5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBzdWJqZWN0OwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcl8xLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBlcnJvckNvbnRleHRfMS5lcnJvckNvbnRleHQoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHsKICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gQXJyYXkuZnJvbShfdGhpcy5vYnNlcnZlcnMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyhfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkgewogICAgICAgICAgICAgICAgdmFyIG9ic2VydmVyID0gX2MudmFsdWU7CiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgZXJyb3JDb250ZXh0XzEuZXJyb3JDb250ZXh0KGZ1bmN0aW9uKCkgewogICAgICAgICAgX3RoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICAgIGlmICghX3RoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICAgIF90aGlzLmhhc0Vycm9yID0gX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBlcnI7CiAgICAgICAgICAgIHZhciBvYnNlcnZlcnMgPSBfdGhpcy5vYnNlcnZlcnM7CiAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzOwogICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkgewogICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ViamVjdDIucHJvdG90eXBlLCAib2JzZXJ2ZWQiLCB7CiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vYnNlcnZlcnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpID4gMDsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLCBzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcik7CiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaGFzRXJyb3IgPSBfYS5oYXNFcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBvYnNlcnZlcnMgPSBfYS5vYnNlcnZlcnM7CiAgICAgICAgaWYgKGhhc0Vycm9yIHx8IGlzU3RvcHBlZCkgewogICAgICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgICB9CiAgICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBvYnNlcnZlcnMucHVzaChzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKG9ic2VydmVycywgc3Vic2NyaWJlcik7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQ7CiAgICAgICAgaWYgKGhhc0Vycm9yKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRocm93bkVycm9yKTsKICAgICAgICB9IGVsc2UgaWYgKGlzU3RvcHBlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLmFzT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKCk7CiAgICAgICAgb2JzZXJ2YWJsZS5zb3VyY2UgPSB0aGlzOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5jcmVhdGUgPSBmdW5jdGlvbihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBBbm9ueW1vdXNTdWJqZWN0KGRlc3RpbmF0aW9uLCBzb3VyY2UpOwogICAgICB9OwogICAgICByZXR1cm4gU3ViamVjdDI7CiAgICB9KE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKTsKICAgIGV4cG9ydHMyLlN1YmplY3QgPSBTdWJqZWN0OwogICAgdmFyIEFub255bW91c1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFub255bW91c1N1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbm9ueW1vdXNTdWJqZWN0MihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5leHQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIEFub255bW91c1N1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZXJyKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29tcGxldGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5zb3VyY2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgfTsKICAgICAgcmV0dXJuIEFub255bW91c1N1YmplY3QyOwogICAgfShTdWJqZWN0KTsKICAgIGV4cG9ydHMyLkFub255bW91c1N1YmplY3QgPSBBbm9ueW1vdXNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QuanMKdmFyIHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgQmVoYXZpb3JTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhCZWhhdmlvclN1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBCZWhhdmlvclN1YmplY3QyKF92YWx1ZSkgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gX3ZhbHVlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUsICJ2YWx1ZSIsIHsKICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gX3N1cGVyLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7CiAgICAgICAgIXN1YnNjcmlwdGlvbi5jbG9zZWQgJiYgc3Vic2NyaWJlci5uZXh0KHRoaXMuX3ZhbHVlKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBCZWhhdmlvclN1YmplY3QyLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIF92YWx1ZSA9IF9hLl92YWx1ZTsKICAgICAgICBpZiAoaGFzRXJyb3IpIHsKICAgICAgICAgIHRocm93IHRocm93bkVycm9yOwogICAgICAgIH0KICAgICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgcmV0dXJuIF92YWx1ZTsKICAgICAgfTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcywgdGhpcy5fdmFsdWUgPSB2YWx1ZSk7CiAgICAgIH07CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3QyOwogICAgfShTdWJqZWN0XzEuU3ViamVjdCk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBCZWhhdmlvclN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBEYXRlKS5ub3coKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdC5qcwp2YXIgcmVxdWlyZV9SZXBsYXlTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1JlcGxheVN1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgUmVwbGF5U3ViamVjdCA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoUmVwbGF5U3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFJlcGxheVN1YmplY3QyKF9idWZmZXJTaXplLCBfd2luZG93VGltZSwgX3RpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgICAgaWYgKF9idWZmZXJTaXplID09PSB2b2lkIDApIHsKICAgICAgICAgIF9idWZmZXJTaXplID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIGlmIChfd2luZG93VGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBfd2luZG93VGltZSA9IEluZmluaXR5OwogICAgICAgIH0KICAgICAgICBpZiAoX3RpbWVzdGFtcFByb3ZpZGVyID09PSB2b2lkIDApIHsKICAgICAgICAgIF90aW1lc3RhbXBQcm92aWRlciA9IGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xLmRhdGVUaW1lc3RhbXBQcm92aWRlcjsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5fYnVmZmVyU2l6ZSA9IF9idWZmZXJTaXplOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gX3dpbmRvd1RpbWU7CiAgICAgICAgX3RoaXMuX3RpbWVzdGFtcFByb3ZpZGVyID0gX3RpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIF90aGlzLl9idWZmZXIgPSBbXTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gdHJ1ZTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gX3dpbmRvd1RpbWUgPT09IEluZmluaXR5OwogICAgICAgIF90aGlzLl9idWZmZXJTaXplID0gTWF0aC5tYXgoMSwgX2J1ZmZlclNpemUpOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gTWF0aC5tYXgoMSwgX3dpbmRvd1RpbWUpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfYnVmZmVyID0gX2EuX2J1ZmZlciwgX2luZmluaXRlVGltZVdpbmRvdyA9IF9hLl9pbmZpbml0ZVRpbWVXaW5kb3csIF90aW1lc3RhbXBQcm92aWRlciA9IF9hLl90aW1lc3RhbXBQcm92aWRlciwgX3dpbmRvd1RpbWUgPSBfYS5fd2luZG93VGltZTsKICAgICAgICBpZiAoIWlzU3RvcHBlZCkgewogICAgICAgICAgX2J1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICFfaW5maW5pdGVUaW1lV2luZG93ICYmIF9idWZmZXIucHVzaChfdGltZXN0YW1wUHJvdmlkZXIubm93KCkgKyBfd2luZG93VGltZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3RyaW1CdWZmZXIoKTsKICAgICAgICBfc3VwZXIucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIFJlcGxheVN1YmplY3QyLnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICB0aGlzLl90cmltQnVmZmVyKCk7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICAgIHZhciBfYSA9IHRoaXMsIF9pbmZpbml0ZVRpbWVXaW5kb3cgPSBfYS5faW5maW5pdGVUaW1lV2luZG93LCBfYnVmZmVyID0gX2EuX2J1ZmZlcjsKICAgICAgICB2YXIgY29weSA9IF9idWZmZXIuc2xpY2UoKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHkubGVuZ3RoICYmICFzdWJzY3JpYmVyLmNsb3NlZDsgaSArPSBfaW5maW5pdGVUaW1lV2luZG93ID8gMSA6IDIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb3B5W2ldKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUuX3RyaW1CdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBfYnVmZmVyU2l6ZSA9IF9hLl9idWZmZXJTaXplLCBfdGltZXN0YW1wUHJvdmlkZXIgPSBfYS5fdGltZXN0YW1wUHJvdmlkZXIsIF9idWZmZXIgPSBfYS5fYnVmZmVyLCBfaW5maW5pdGVUaW1lV2luZG93ID0gX2EuX2luZmluaXRlVGltZVdpbmRvdzsKICAgICAgICB2YXIgYWRqdXN0ZWRCdWZmZXJTaXplID0gKF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikgKiBfYnVmZmVyU2l6ZTsKICAgICAgICBfYnVmZmVyU2l6ZSA8IEluZmluaXR5ICYmIGFkanVzdGVkQnVmZmVyU2l6ZSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXIuc3BsaWNlKDAsIF9idWZmZXIubGVuZ3RoIC0gYWRqdXN0ZWRCdWZmZXJTaXplKTsKICAgICAgICBpZiAoIV9pbmZpbml0ZVRpbWVXaW5kb3cpIHsKICAgICAgICAgIHZhciBub3cgPSBfdGltZXN0YW1wUHJvdmlkZXIubm93KCk7CiAgICAgICAgICB2YXIgbGFzdCA9IDA7CiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXJbaV0gPD0gbm93OyBpICs9IDIpIHsKICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgICB9CiAgICAgICAgICBsYXN0ICYmIF9idWZmZXIuc3BsaWNlKDAsIGxhc3QgKyAxKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBSZXBsYXlTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IFJlcGxheVN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0FzeW5jU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9Bc3luY1N1YmplY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvQXN5bmNTdWJqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBBc3luY1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFzeW5jU3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gbnVsbDsKICAgICAgICBfdGhpcy5faGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICBfdGhpcy5faXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCBfaGFzVmFsdWUgPSBfYS5faGFzVmFsdWUsIF92YWx1ZSA9IF9hLl92YWx1ZSwgdGhyb3duRXJyb3IgPSBfYS50aHJvd25FcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aHJvd25FcnJvcik7CiAgICAgICAgfSBlbHNlIGlmIChpc1N0b3BwZWQgfHwgX2lzQ29tcGxldGUpIHsKICAgICAgICAgIF9oYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLm5leHQoX3ZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHsKICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgICB0aGlzLl9oYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIF9oYXNWYWx1ZSA9IF9hLl9oYXNWYWx1ZSwgX3ZhbHVlID0gX2EuX3ZhbHVlLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmICghX2lzQ29tcGxldGUpIHsKICAgICAgICAgIHRoaXMuX2lzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgX2hhc1ZhbHVlICYmIF9zdXBlci5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsIF92YWx1ZSk7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuQXN5bmNTdWJqZWN0ID0gQXN5bmNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzCnZhciByZXF1aXJlX0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFjdGlvbiA9IHZvaWQgMDsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIHJldHVybiBBY3Rpb24yOwogICAgfShTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24pOwogICAgZXhwb3J0czIuQWN0aW9uID0gQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW50ZXJ2YWxQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9pbnRlcnZhbFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9pbnRlcnZhbFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIuaW50ZXJ2YWxQcm92aWRlciA9IHsKICAgICAgc2V0SW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuc2V0SW50ZXJ2YWwpIHsKICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGNsZWFySW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmludGVydmFsUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW50ZXJ2YWwpIHx8IGNsZWFySW50ZXJ2YWwpKGhhbmRsZSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi5qcwp2YXIgcmVxdWlyZV9Bc3luY0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQWN0aW9uXzEgPSByZXF1aXJlX0FjdGlvbigpOwogICAgdmFyIGludGVydmFsUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW50ZXJ2YWxQcm92aWRlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBBc3luY0FjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQXN5bmNBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBc3luY0FjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOwogICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7CiAgICAgICAgdmFyIHNjaGVkdWxlciA9IHRoaXMuc2NoZWR1bGVyOwogICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMucGVuZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5OwogICAgICAgIHRoaXMuaWQgPSAoX2EgPSB0aGlzLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgdGhpcy5pZCwgZGVsYXkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBfaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLnNldEludGVydmFsKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdGhpcyksIGRlbGF5KTsKICAgICAgfTsKICAgICAgQXN5bmNBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKF9zY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsICYmIHRoaXMuZGVsYXkgPT09IGRlbGF5ICYmIHRoaXMucGVuZGluZyA9PT0gZmFsc2UpIHsKICAgICAgICAgIHJldHVybiBpZDsKICAgICAgICB9CiAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKICAgICAgICAgIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLmNsZWFySW50ZXJ2YWwoaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nID09PSBmYWxzZSAmJiB0aGlzLmlkICE9IG51bGwpIHsKICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLCB0aGlzLmlkLCBudWxsKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuX2V4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgX2RlbGF5KSB7CiAgICAgICAgdmFyIGVycm9yZWQgPSBmYWxzZTsKICAgICAgICB2YXIgZXJyb3JWYWx1ZTsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy53b3JrKHN0YXRlKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgIGVycm9yVmFsdWUgPSBlID8gZSA6IG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpOwogICAgICAgIH0KICAgICAgICBpZiAoZXJyb3JlZCkgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgICAgcmV0dXJuIGVycm9yVmFsdWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkgewogICAgICAgICAgdmFyIF9hID0gdGhpcywgaWQgPSBfYS5pZCwgc2NoZWR1bGVyID0gX2Euc2NoZWR1bGVyOwogICAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGw7CiAgICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTsKICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5kZWxheSA9IG51bGw7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNBY3Rpb24yOwogICAgfShBY3Rpb25fMS5BY3Rpb24pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSBBc3luY0FjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9JbW1lZGlhdGUuanMKdmFyIHJlcXVpcmVfSW1tZWRpYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvSW1tZWRpYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UZXN0VG9vbHMgPSBleHBvcnRzMi5JbW1lZGlhdGUgPSB2b2lkIDA7CiAgICB2YXIgbmV4dEhhbmRsZSA9IDE7CiAgICB2YXIgcmVzb2x2ZWQ7CiAgICB2YXIgYWN0aXZlSGFuZGxlcyA9IHt9OwogICAgZnVuY3Rpb24gZmluZEFuZENsZWFySGFuZGxlKGhhbmRsZSkgewogICAgICBpZiAoaGFuZGxlIGluIGFjdGl2ZUhhbmRsZXMpIHsKICAgICAgICBkZWxldGUgYWN0aXZlSGFuZGxlc1toYW5kbGVdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLkltbWVkaWF0ZSA9IHsKICAgICAgc2V0SW1tZWRpYXRlOiBmdW5jdGlvbihjYikgewogICAgICAgIHZhciBoYW5kbGUgPSBuZXh0SGFuZGxlKys7CiAgICAgICAgYWN0aXZlSGFuZGxlc1toYW5kbGVdID0gdHJ1ZTsKICAgICAgICBpZiAoIXJlc29sdmVkKSB7CiAgICAgICAgICByZXNvbHZlZCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIH0KICAgICAgICByZXNvbHZlZC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpICYmIGNiKCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGhhbmRsZTsKICAgICAgfSwKICAgICAgY2xlYXJJbW1lZGlhdGU6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGVzdFRvb2xzID0gewogICAgICBwZW5kaW5nOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoYWN0aXZlSGFuZGxlcykubGVuZ3RoOwogICAgICB9CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW1tZWRpYXRlUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2ltbWVkaWF0ZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbW1lZGlhdGVQcm92aWRlciA9IHZvaWQgMDsKICAgIHZhciBJbW1lZGlhdGVfMSA9IHJlcXVpcmVfSW1tZWRpYXRlKCk7CiAgICB2YXIgc2V0SW1tZWRpYXRlID0gSW1tZWRpYXRlXzEuSW1tZWRpYXRlLnNldEltbWVkaWF0ZTsKICAgIHZhciBjbGVhckltbWVkaWF0ZSA9IEltbWVkaWF0ZV8xLkltbWVkaWF0ZS5jbGVhckltbWVkaWF0ZTsKICAgIGV4cG9ydHMyLmltbWVkaWF0ZVByb3ZpZGVyID0gewogICAgICBzZXRJbW1lZGlhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnNldEltbWVkaWF0ZSkgfHwgc2V0SW1tZWRpYXRlKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjbGVhckltbWVkaWF0ZTogZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW1tZWRpYXRlKSB8fCBjbGVhckltbWVkaWF0ZSkoaGFuZGxlKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzYXBBY3Rpb24uanMKdmFyIHJlcXVpcmVfQXNhcEFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcEFjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgaW1tZWRpYXRlUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIoKTsKICAgIHZhciBBc2FwQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcEFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXNhcEFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT09IG51bGwgJiYgZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgc2NoZWR1bGVyLmFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLl9zY2hlZHVsZWQgfHwgKHNjaGVkdWxlci5fc2NoZWR1bGVkID0gaW1tZWRpYXRlUHJvdmlkZXJfMS5pbW1lZGlhdGVQcm92aWRlci5zZXRJbW1lZGlhdGUoc2NoZWR1bGVyLmZsdXNoLmJpbmQoc2NoZWR1bGVyLCB2b2lkIDApKSk7CiAgICAgIH07CiAgICAgIEFzYXBBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsID8gZGVsYXkgPiAwIDogdGhpcy5kZWxheSA+IDApIHsKICAgICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcywgc2NoZWR1bGVyLCBpZCwgZGVsYXkpOwogICAgICAgIH0KICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGlmIChpZCAhPSBudWxsICYmICgoX2EgPSBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pZCkgIT09IGlkKSB7CiAgICAgICAgICBpbW1lZGlhdGVQcm92aWRlcl8xLmltbWVkaWF0ZVByb3ZpZGVyLmNsZWFySW1tZWRpYXRlKGlkKTsKICAgICAgICAgIGlmIChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9PT0gaWQpIHsKICAgICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gQXNhcEFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgU2NoZWR1bGVyID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3Rvciwgbm93KSB7CiAgICAgICAgaWYgKG5vdyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBub3cgPSBTY2hlZHVsZXIyLm5vdzsKICAgICAgICB9CiAgICAgICAgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yID0gc2NoZWR1bGVyQWN0aW9uQ3RvcjsKICAgICAgICB0aGlzLm5vdyA9IG5vdzsKICAgICAgfQogICAgICBTY2hlZHVsZXIyLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uKHdvcmssIGRlbGF5LCBzdGF0ZSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yKHRoaXMsIHdvcmspLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgIH07CiAgICAgIFNjaGVkdWxlcjIubm93ID0gZGF0ZVRpbWVzdGFtcFByb3ZpZGVyXzEuZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLm5vdzsKICAgICAgcmV0dXJuIFNjaGVkdWxlcjI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5TY2hlZHVsZXIgPSBTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY1NjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc3luY1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgU2NoZWR1bGVyXzEgPSByZXF1aXJlX1NjaGVkdWxlcigpOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc3luY1NjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU2NoZWR1bGVyMihTY2hlZHVsZXJBY3Rpb24sIG5vdykgewogICAgICAgIGlmIChub3cgPT09IHZvaWQgMCkgewogICAgICAgICAgbm93ID0gU2NoZWR1bGVyXzEuU2NoZWR1bGVyLm5vdzsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgU2NoZWR1bGVyQWN0aW9uLCBub3cpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuYWN0aW9ucyA9IFtdOwogICAgICAgIF90aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXN5bmNTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHsKICAgICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKTsKICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgIHdoaWxlIChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc3luY1NjaGVkdWxlcjI7CiAgICB9KFNjaGVkdWxlcl8xLlNjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc3luY1NjaGVkdWxlciA9IEFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcFNjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc2FwU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc2FwU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBBc2FwU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcFNjaGVkdWxlcjIoKSB7CiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFzYXBTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwU2NoZWR1bGVyMjsKICAgIH0oQXN5bmNTY2hlZHVsZXJfMS5Bc3luY1NjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc2FwU2NoZWR1bGVyID0gQXNhcFNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzYXAuanMKdmFyIHJlcXVpcmVfYXNhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXNhcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLmFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXNhcEFjdGlvbl8xID0gcmVxdWlyZV9Bc2FwQWN0aW9uKCk7CiAgICB2YXIgQXNhcFNjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc2FwU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gbmV3IEFzYXBTY2hlZHVsZXJfMS5Bc2FwU2NoZWR1bGVyKEFzYXBBY3Rpb25fMS5Bc2FwQWN0aW9uKTsKICAgIGV4cG9ydHMyLmFzYXAgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXN5bmMuanMKdmFyIHJlcXVpcmVfYXN5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIoQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVBY3Rpb24uanMKdmFyIHJlcXVpcmVfUXVldWVBY3Rpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgUXVldWVBY3Rpb24gPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlciwgd29yaykgfHwgdGhpczsKICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7CiAgICAgICAgX3RoaXMud29yayA9IHdvcms7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTsKICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7CiAgICAgICAgdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIHJldHVybiBkZWxheSA+IDAgfHwgdGhpcy5jbG9zZWQgPyBfc3VwZXIucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpIDogdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICB9OwogICAgICBRdWV1ZUFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCAmJiBkZWxheSA+IDAgfHwgZGVsYXkgPT0gbnVsbCAmJiB0aGlzLmRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5mbHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gMDsKICAgICAgfTsKICAgICAgcmV0dXJuIFF1ZXVlQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5RdWV1ZUFjdGlvbiA9IFF1ZXVlQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfUXVldWVTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FzeW5jU2NoZWR1bGVyKCk7CiAgICB2YXIgUXVldWVTY2hlZHVsZXIgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVTY2hlZHVsZXIyKCkgewogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsKICAgICAgfQogICAgICByZXR1cm4gUXVldWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gUXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZS5qcwp2YXIgcmVxdWlyZV9xdWV1ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcXVldWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgUXVldWVBY3Rpb25fMSA9IHJlcXVpcmVfUXVldWVBY3Rpb24oKTsKICAgIHZhciBRdWV1ZVNjaGVkdWxlcl8xID0gcmVxdWlyZV9RdWV1ZVNjaGVkdWxlcigpOwogICAgZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBuZXcgUXVldWVTY2hlZHVsZXJfMS5RdWV1ZVNjaGVkdWxlcihRdWV1ZUFjdGlvbl8xLlF1ZXVlQWN0aW9uKTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZUFjdGlvbi5qcwp2YXIgcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQW5pbWF0aW9uRnJhbWVBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEgPSByZXF1aXJlX2FuaW1hdGlvbkZyYW1lUHJvdmlkZXIoKTsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQW5pbWF0aW9uRnJhbWVBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbmltYXRpb25GcmFtZUFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVBY3Rpb24yLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKGRlbGF5ICE9PSBudWxsICYmIGRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5hY3Rpb25zLnB1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlci5fc2NoZWR1bGVkIHx8IChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZXIuZmx1c2godm9pZCAwKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICAgIEFuaW1hdGlvbkZyYW1lQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCA/IGRlbGF5ID4gMCA6IHRoaXMuZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICBpZiAoaWQgIT0gbnVsbCAmJiAoKF9hID0gYWN0aW9uc1thY3Rpb25zLmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpICE9PSBpZCkgewogICAgICAgICAgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZUFjdGlvbjI7CiAgICB9KEFzeW5jQWN0aW9uXzEuQXN5bmNBY3Rpb24pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSBBbmltYXRpb25GcmFtZUFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBc3luY1NjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc3luY1NjaGVkdWxlcigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBbmltYXRpb25GcmFtZVNjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyMigpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjI7CiAgICB9KEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIpOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgPSBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FuaW1hdGlvbkZyYW1lLmpzCnZhciByZXF1aXJlX2FuaW1hdGlvbkZyYW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbl8xID0gcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IG5ldyBBbmltYXRpb25GcmFtZVNjaGVkdWxlcl8xLkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKEFuaW1hdGlvbkZyYW1lQWN0aW9uXzEuQW5pbWF0aW9uRnJhbWVBY3Rpb24pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1ZpcnR1YWxUaW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9WaXJ0dWFsVGltZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBWaXJ0dWFsVGltZVNjaGVkdWxlciA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbFRpbWVTY2hlZHVsZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBWaXJ0dWFsVGltZVNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3RvciwgbWF4RnJhbWVzKSB7CiAgICAgICAgaWYgKHNjaGVkdWxlckFjdGlvbkN0b3IgPT09IHZvaWQgMCkgewogICAgICAgICAgc2NoZWR1bGVyQWN0aW9uQ3RvciA9IFZpcnR1YWxBY3Rpb247CiAgICAgICAgfQogICAgICAgIGlmIChtYXhGcmFtZXMgPT09IHZvaWQgMCkgewogICAgICAgICAgbWF4RnJhbWVzID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlckFjdGlvbkN0b3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIF90aGlzLmZyYW1lOwogICAgICAgIH0pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMubWF4RnJhbWVzID0gbWF4RnJhbWVzOwogICAgICAgIF90aGlzLmZyYW1lID0gMDsKICAgICAgICBfdGhpcy5pbmRleCA9IC0xOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBWaXJ0dWFsVGltZVNjaGVkdWxlcjIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgYWN0aW9ucyA9IF9hLmFjdGlvbnMsIG1heEZyYW1lcyA9IF9hLm1heEZyYW1lczsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdmFyIGFjdGlvbjsKICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5kZWxheSA8PSBtYXhGcmFtZXMpIHsKICAgICAgICAgIGFjdGlvbnMuc2hpZnQoKTsKICAgICAgICAgIHRoaXMuZnJhbWUgPSBhY3Rpb24uZGVsYXk7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgd2hpbGUgKGFjdGlvbiA9IGFjdGlvbnMuc2hpZnQoKSkgewogICAgICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbFRpbWVTY2hlZHVsZXIyLmZyYW1lVGltZUZhY3RvciA9IDEwOwogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxUaW1lU2NoZWR1bGVyID0gVmlydHVhbFRpbWVTY2hlZHVsZXI7CiAgICB2YXIgVmlydHVhbEFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbEFjdGlvbjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFZpcnR1YWxBY3Rpb24yKHNjaGVkdWxlciwgd29yaywgaW5kZXgpIHsKICAgICAgICBpZiAoaW5kZXggPT09IHZvaWQgMCkgewogICAgICAgICAgaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggKz0gMTsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5pbmRleCA9IGluZGV4OwogICAgICAgIF90aGlzLmFjdGl2ZSA9IHRydWU7CiAgICAgICAgX3RoaXMuaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggPSBpbmRleDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgVmlydHVhbEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShkZWxheSkpIHsKICAgICAgICAgIGlmICghdGhpcy5pZCkgewogICAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGFjdGlvbiA9IG5ldyBWaXJ0dWFsQWN0aW9uMih0aGlzLnNjaGVkdWxlciwgdGhpcy53b3JrKTsKICAgICAgICAgIHRoaXMuYWRkKGFjdGlvbik7CiAgICAgICAgICByZXR1cm4gYWN0aW9uLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24uRU1QVFk7CiAgICAgICAgfQogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBzY2hlZHVsZXIuZnJhbWUgKyBkZWxheTsKICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICBhY3Rpb25zLnNvcnQoVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMpOwogICAgICAgIHJldHVybiAxOwogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIFZpcnR1YWxBY3Rpb24yLnByb3RvdHlwZS5fZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMgPSBmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgaWYgKGEuZGVsYXkgPT09IGIuZGVsYXkpIHsKICAgICAgICAgIGlmIChhLmluZGV4ID09PSBiLmluZGV4KSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkgewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGEuZGVsYXkgPiBiLmRlbGF5KSB7CiAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIFZpcnR1YWxBY3Rpb24yOwogICAgfShBc3luY0FjdGlvbl8xLkFzeW5jQWN0aW9uKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxBY3Rpb24gPSBWaXJ0dWFsQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZW1wdHkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuRU1QVFkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBleHBvcnRzMi5FTVBUWSA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICB9KTsKICAgIGZ1bmN0aW9uIGVtcHR5KHNjaGVkdWxlcikgewogICAgICByZXR1cm4gc2NoZWR1bGVyID8gZW1wdHlTY2hlZHVsZWQoc2NoZWR1bGVyKSA6IGV4cG9ydHMyLkVNUFRZOwogICAgfQogICAgZXhwb3J0czIuZW1wdHkgPSBlbXB0eTsKICAgIGZ1bmN0aW9uIGVtcHR5U2NoZWR1bGVkKHNjaGVkdWxlcikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfaXNTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1NjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1NjaGVkdWxlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuc2NoZWR1bGUpOwogICAgfQogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSBpc1NjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzCnZhciByZXF1aXJlX2FyZ3MgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wb3BOdW1iZXIgPSBleHBvcnRzMi5wb3BTY2hlZHVsZXIgPSBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgZnVuY3Rpb24gbGFzdChhcnIpIHsKICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07CiAgICB9CiAgICBmdW5jdGlvbiBwb3BSZXN1bHRTZWxlY3RvcihhcmdzKSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihsYXN0KGFyZ3MpKSA/IGFyZ3MucG9wKCkgOiB2b2lkIDA7CiAgICB9CiAgICBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHBvcFJlc3VsdFNlbGVjdG9yOwogICAgZnVuY3Rpb24gcG9wU2NoZWR1bGVyKGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIobGFzdChhcmdzKSkgPyBhcmdzLnBvcCgpIDogdm9pZCAwOwogICAgfQogICAgZXhwb3J0czIucG9wU2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyOwogICAgZnVuY3Rpb24gcG9wTnVtYmVyKGFyZ3MsIGRlZmF1bHRWYWx1ZSkgewogICAgICByZXR1cm4gdHlwZW9mIGxhc3QoYXJncykgPT09ICJudW1iZXIiID8gYXJncy5wb3AoKSA6IGRlZmF1bHRWYWx1ZTsKICAgIH0KICAgIGV4cG9ydHMyLnBvcE51bWJlciA9IHBvcE51bWJlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FycmF5TGlrZS5qcwp2YXIgcmVxdWlyZV9pc0FycmF5TGlrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXJyYXlMaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0FycmF5TGlrZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmlzQXJyYXlMaWtlID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geCAmJiB0eXBlb2YgeC5sZW5ndGggPT09ICJudW1iZXIiICYmIHR5cGVvZiB4ICE9PSAiZnVuY3Rpb24iOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1Byb21pc2UuanMKdmFyIHJlcXVpcmVfaXNQcm9taXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNQcm9taXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1Byb21pc2UodmFsdWUpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS50aGVuKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzUHJvbWlzZSA9IGlzUHJvbWlzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX2lzSW50ZXJvcE9ic2VydmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0ludGVyb3BPYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oaW5wdXRbb2JzZXJ2YWJsZV8xLm9ic2VydmFibGVdKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSW50ZXJvcE9ic2VydmFibGUgPSBpc0ludGVyb3BPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXN5bmNJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FzeW5jSXRlcmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzQXN5bmNJdGVyYWJsZSA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZShvYmopIHsKICAgICAgcmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ialtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNBc3luY0l0ZXJhYmxlID0gaXNBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dVbm9ic2VydmFibGVFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpIHsKICAgICAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiICsgKGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgPyAiYW4gaW52YWxpZCBvYmplY3QiIDogIiciICsgaW5wdXQgKyAiJyIpICsgIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgPSBjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL2l0ZXJhdG9yLmpzCnZhciByZXF1aXJlX2l0ZXJhdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3N5bWJvbC9pdGVyYXRvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXRlcmF0b3IgPSBleHBvcnRzMi5nZXRTeW1ib2xJdGVyYXRvciA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGdldFN5bWJvbEl0ZXJhdG9yKCkgewogICAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gImZ1bmN0aW9uIiB8fCAhU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgcmV0dXJuICJAQGl0ZXJhdG9yIjsKICAgICAgfQogICAgICByZXR1cm4gU3ltYm9sLml0ZXJhdG9yOwogICAgfQogICAgZXhwb3J0czIuZ2V0U3ltYm9sSXRlcmF0b3IgPSBnZXRTeW1ib2xJdGVyYXRvcjsKICAgIGV4cG9ydHMyLml0ZXJhdG9yID0gZ2V0U3ltYm9sSXRlcmF0b3IoKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX2lzSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0l0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc0l0ZXJhYmxlKGlucHV0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpbnB1dCA9PT0gbnVsbCB8fCBpbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNJdGVyYWJsZSA9IGlzSXRlcmFibGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1JlYWRhYmxlU3RyZWFtTGlrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZ2VuZXJhdG9yIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIGJvZHkpIHsKICAgICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07CiAgICAgICAgcmV0dXJuIHRbMV07CiAgICAgIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7CiAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSksIGc7CiAgICAgIGZ1bmN0aW9uIHZlcmIobikgewogICAgICAgIHJldHVybiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gc3RlcChbbiwgdl0pOwogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5WyJyZXR1cm4iXSA6IG9wWzBdID8geVsidGhyb3ciXSB8fCAoKHQgPSB5WyJyZXR1cm4iXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7CiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07CiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgeSA9IG9wWzFdOwogICAgICAgICAgICAgIG9wID0gWzBdOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgb3AgPSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsKICAgICAgICAgICAgICAgIF8gPSAwOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgb3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSBvcFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzFdOwogICAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsyXTsKICAgICAgICAgICAgICAgIF8ub3BzLnB1c2gob3ApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBvcCA9IFs2LCBlXTsKICAgICAgICAgIHkgPSAwOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBmID0gdCA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOwogICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07CiAgICAgIH0KICAgIH07CiAgICB2YXIgX19hd2FpdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXQgfHwgZnVuY3Rpb24odikgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTsKICAgIH07CiAgICB2YXIgX19hc3luY0dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXN5bmNHZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7CiAgICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdOwogICAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKCJuZXh0IiksIHZlcmIoInRocm93IiksIHZlcmIoInJldHVybiIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LCBpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7CiAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN0ZXAoZ1tuXSh2KSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgc2V0dGxlKHFbMF1bM10sIGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKHIpIHsKICAgICAgICByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7CiAgICAgICAgcmVzdW1lKCJuZXh0IiwgdmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgewogICAgICAgIHJlc3VtZSgidGhyb3ciLCB2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsKICAgICAgICBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOwogICAgICB9CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1JlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBfX2FzeW5jR2VuZXJhdG9yKHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xKCkgewogICAgICAgIHZhciByZWFkZXIsIF9hLCB2YWx1ZSwgZG9uZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2IpIHsKICAgICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF9iLnRyeXMucHVzaChbMSwgLCA5LCAxMF0pOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMjsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGlmIChmYWxzZSkgcmV0dXJuIFszLCA4XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQocmVhZGVyLnJlYWQoKSldOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICAgIGlmICghZG9uZSkgcmV0dXJuIFszLCA1XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodm9pZCAwKV07CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICByZXR1cm4gWzIsIF9iLnNlbnQoKV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodmFsdWUpXTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHJldHVybiBbNCwgX2Iuc2VudCgpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDJdOwogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMF07CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciA9IHJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3I7CiAgICBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtTGlrZShvYmopIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9iai5nZXRSZWFkZXIpOwogICAgfQogICAgZXhwb3J0czIuaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBpc1JlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbm5lckZyb20uanMKdmFyIHJlcXVpcmVfaW5uZXJGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW5uZXJGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fYXdhaXRlciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXRlciB8fCBmdW5jdGlvbih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHsKICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7CiAgICAgICAgICByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsKICAgICAgICB9CiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOwogICAgICB9KTsKICAgIH07CiAgICB2YXIgX19nZW5lcmF0b3IgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2dlbmVyYXRvciB8fCBmdW5jdGlvbih0aGlzQXJnLCBib2R5KSB7CiAgICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOwogICAgICAgIHJldHVybiB0WzFdOwogICAgICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnOwogICAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgInRocm93IjogdmVyYigxKSwgInJldHVybiI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0pLCBnOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24odikgewogICAgICAgICAgcmV0dXJuIHN0ZXAoW24sIHZdKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHsKICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpOwogICAgICAgIHdoaWxlIChfKSB0cnkgewogICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVsicmV0dXJuIl0gOiBvcFswXSA/IHlbInRocm93Il0gfHwgKCh0ID0geVsicmV0dXJuIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0OwogICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgc3dpdGNoIChvcFswXSkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9OwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHkgPSBvcFsxXTsKICAgICAgICAgICAgICBvcCA9IFswXTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIG9wID0gXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7CiAgICAgICAgICAgICAgICBfID0gMDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gb3BbMV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsxXTsKICAgICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMl07CiAgICAgICAgICAgICAgICBfLm9wcy5wdXNoKG9wKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgb3AgPSBbNiwgZV07CiAgICAgICAgICB5ID0gMDsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgZiA9IHQgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsKICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9OwogICAgICB9CiAgICB9OwogICAgdmFyIF9fYXN5bmNWYWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2FzeW5jVmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7CiAgICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09ICJmdW5jdGlvbiIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoIm5leHQiKSwgdmVyYigidGhyb3ciKSwgdmVyYigicmV0dXJuIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sIGkpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpW25dID0gb1tuXSAmJiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgIHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7CiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odjIpIHsKICAgICAgICAgIHJlc29sdmUoeyB2YWx1ZTogdjIsIGRvbmU6IGQgfSk7CiAgICAgICAgfSwgcmVqZWN0KTsKICAgICAgfQogICAgfTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZXhwb3J0czIuZnJvbUl0ZXJhYmxlID0gZXhwb3J0czIuZnJvbVByb21pc2UgPSBleHBvcnRzMi5mcm9tQXJyYXlMaWtlID0gZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZXhwb3J0czIuaW5uZXJGcm9tID0gdm9pZCAwOwogICAgdmFyIGlzQXJyYXlMaWtlXzEgPSByZXF1aXJlX2lzQXJyYXlMaWtlKCk7CiAgICB2YXIgaXNQcm9taXNlXzEgPSByZXF1aXJlX2lzUHJvbWlzZSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc0l0ZXJhYmxlXzEgPSByZXF1aXJlX2lzSXRlcmFibGUoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEgPSByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yKCk7CiAgICB2YXIgb2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9vYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBpbm5lckZyb20oaW5wdXQpIHsKICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpIHsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICBpZiAoaXNJbnRlcm9wT2JzZXJ2YWJsZV8xLmlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUludGVyb3BPYnNlcnZhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUFycmF5TGlrZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1Byb21pc2VfMS5pc1Byb21pc2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNBc3luY0l0ZXJhYmxlXzEuaXNBc3luY0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSXRlcmFibGVfMS5pc0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21JdGVyYWJsZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLmlzUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21SZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgfQogICAgICB0aHJvdyB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpOwogICAgfQogICAgZXhwb3J0czIuaW5uZXJGcm9tID0gaW5uZXJGcm9tOwogICAgZnVuY3Rpb24gZnJvbUludGVyb3BPYnNlcnZhYmxlKG9iaikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb2JzID0gb2JqW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSgpOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnMuc3Vic2NyaWJlKSkgewogICAgICAgICAgcmV0dXJuIG9icy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZnJvbUludGVyb3BPYnNlcnZhYmxlOwogICAgZnVuY3Rpb24gZnJvbUFycmF5TGlrZShhcnJheSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aCAmJiAhc3Vic2NyaWJlci5jbG9zZWQ7IGkrKykgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGFycmF5W2ldKTsKICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21BcnJheUxpa2UgPSBmcm9tQXJyYXlMaWtlOwogICAgZnVuY3Rpb24gZnJvbVByb21pc2UocHJvbWlzZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9KS50aGVuKG51bGwsIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Qcm9taXNlID0gZnJvbVByb21pc2U7CiAgICBmdW5jdGlvbiBmcm9tSXRlcmFibGUoaXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZvciAodmFyIGl0ZXJhYmxlXzEgPSBfX3ZhbHVlcyhpdGVyYWJsZSksIGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpOyAhaXRlcmFibGVfMV8xLmRvbmU7IGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpKSB7CiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZXJhYmxlXzFfMS52YWx1ZTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChpdGVyYWJsZV8xXzEgJiYgIWl0ZXJhYmxlXzFfMS5kb25lICYmIChfYSA9IGl0ZXJhYmxlXzEucmV0dXJuKSkgX2EuY2FsbChpdGVyYWJsZV8xKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21JdGVyYWJsZSA9IGZyb21JdGVyYWJsZTsKICAgIGZ1bmN0aW9uIGZyb21Bc3luY0l0ZXJhYmxlKGFzeW5jSXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZnJvbUFzeW5jSXRlcmFibGU7CiAgICBmdW5jdGlvbiBmcm9tUmVhZGFibGVTdHJlYW1MaWtlKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBmcm9tQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IocmVhZGFibGVTdHJlYW0pKTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21SZWFkYWJsZVN0cmVhbUxpa2UgPSBmcm9tUmVhZGFibGVTdHJlYW1MaWtlOwogICAgZnVuY3Rpb24gcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikgewogICAgICB2YXIgYXN5bmNJdGVyYWJsZV8xLCBhc3luY0l0ZXJhYmxlXzFfMTsKICAgICAgdmFyIGVfMiwgX2E7CiAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB2YWx1ZSwgZV8yXzE7CiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uKF9iKSB7CiAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfYi50cnlzLnB1c2goWzAsIDUsIDYsIDExXSk7CiAgICAgICAgICAgICAgYXN5bmNJdGVyYWJsZV8xID0gX19hc3luY1ZhbHVlcyhhc3luY0l0ZXJhYmxlKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDE7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gWzQsIGFzeW5jSXRlcmFibGVfMS5uZXh0KCldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgPSBfYi5zZW50KCksICFhc3luY0l0ZXJhYmxlXzFfMS5kb25lKSkgcmV0dXJuIFszLCA0XTsKICAgICAgICAgICAgICB2YWx1ZSA9IGFzeW5jSXRlcmFibGVfMV8xLnZhbHVlOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWzJdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfYi5sYWJlbCA9IDM7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBlXzJfMSA9IF9iLnNlbnQoKTsKICAgICAgICAgICAgICBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OwogICAgICAgICAgICAgIHJldHVybiBbMywgMTFdOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX2IudHJ5cy5wdXNoKFs2LCAsIDksIDEwXSk7CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgJiYgIWFzeW5jSXRlcmFibGVfMV8xLmRvbmUgJiYgKF9hID0gYXN5bmNJdGVyYWJsZV8xLnJldHVybikpKSByZXR1cm4gWzMsIDhdOwogICAgICAgICAgICAgIHJldHVybiBbNCwgX2EuY2FsbChhc3luY0l0ZXJhYmxlXzEpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDg7CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDEwXTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbN107CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2V4ZWN1dGVTY2hlZHVsZS5qcwp2YXIgcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9leGVjdXRlU2NoZWR1bGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4ZWN1dGVTY2hlZHVsZSA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGV4ZWN1dGVTY2hlZHVsZShwYXJlbnRTdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgd29yaywgZGVsYXksIHJlcGVhdDIpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHJlcGVhdDIgPT09IHZvaWQgMCkgewogICAgICAgIHJlcGVhdDIgPSBmYWxzZTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVTdWJzY3JpcHRpb24gPSBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgd29yaygpOwogICAgICAgIGlmIChyZXBlYXQyKSB7CiAgICAgICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2NoZWR1bGUobnVsbCwgZGVsYXkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgIH0KICAgICAgfSwgZGVsYXkpOwogICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHNjaGVkdWxlU3Vic2NyaXB0aW9uKTsKICAgICAgaWYgKCFyZXBlYXQyKSB7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlU3Vic2NyaXB0aW9uOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5leGVjdXRlU2NoZWR1bGUgPSBleGVjdXRlU2NoZWR1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMKdmFyIHJlcXVpcmVfb2JzZXJ2ZU9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVPbiA9IHZvaWQgMDsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gb2JzZXJ2ZU9uKHNjaGVkdWxlciwgZGVsYXkpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlT24gPSBvYnNlcnZlT247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbi5qcwp2YXIgcmVxdWlyZV9zdWJzY3JpYmVPbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3Vic2NyaWJlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN1YnNjcmliZU9uID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3Vic2NyaWJlT24oc2NoZWR1bGVyLCBkZWxheSkgewogICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgIGRlbGF5ID0gMDsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfSwgZGVsYXkpKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zdWJzY3JpYmVPbiA9IHN1YnNjcmliZU9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZU9ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIG9ic2VydmVPbl8xID0gcmVxdWlyZV9vYnNlcnZlT24oKTsKICAgIHZhciBzdWJzY3JpYmVPbl8xID0gcmVxdWlyZV9zdWJzY3JpYmVPbigpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVPYnNlcnZhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCkucGlwZShzdWJzY3JpYmVPbl8xLnN1YnNjcmliZU9uKHNjaGVkdWxlciksIG9ic2VydmVPbl8xLm9ic2VydmVPbihzY2hlZHVsZXIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlT2JzZXJ2YWJsZSA9IHNjaGVkdWxlT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZVByb21pc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVQcm9taXNlID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20oaW5wdXQpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlZHVsZVByb21pc2UgPSBzY2hlZHVsZVByb21pc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUFycmF5LmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlQXJyYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaSA9PT0gaW5wdXQubGVuZ3RoKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpbnB1dFtpKytdKTsKICAgICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSBzY2hlZHVsZUFycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUl0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUl0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpdGVyYXRvcjsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGl0ZXJhdG9yID0gaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0oKTsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgdmFyIGRvbmU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX2EgPSBpdGVyYXRvci5uZXh0KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkb25lKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIDAsIHRydWUpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpdGVyYXRvciA9PT0gbnVsbCB8fCBpdGVyYXRvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlcmF0b3IucmV0dXJuKSAmJiBpdGVyYXRvci5yZXR1cm4oKTsKICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlSXRlcmFibGUgPSBzY2hlZHVsZUl0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUFzeW5jSXRlcmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVBc3luY0l0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKCFpbnB1dCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpdGVyYXRvciA9IGlucHV0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOwogICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0LnZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMCwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVBc3luY0l0ZXJhYmxlID0gc2NoZWR1bGVBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSA9IHZvaWQgMDsKICAgIHZhciBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMSA9IHJlcXVpcmVfc2NoZWR1bGVBc3luY0l0ZXJhYmxlKCk7CiAgICB2YXIgaXNSZWFkYWJsZVN0cmVhbUxpa2VfMSA9IHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UoKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlQXN5bmNJdGVyYWJsZV8xLnNjaGVkdWxlQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IoaW5wdXQpLCBzY2hlZHVsZXIpOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVkID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZU9ic2VydmFibGUoKTsKICAgIHZhciBzY2hlZHVsZVByb21pc2VfMSA9IHJlcXVpcmVfc2NoZWR1bGVQcm9taXNlKCk7CiAgICB2YXIgc2NoZWR1bGVBcnJheV8xID0gcmVxdWlyZV9zY2hlZHVsZUFycmF5KCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICB2YXIgc2NoZWR1bGVBc3luY0l0ZXJhYmxlXzEgPSByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzUHJvbWlzZV8xID0gcmVxdWlyZV9pc1Byb21pc2UoKTsKICAgIHZhciBpc0FycmF5TGlrZV8xID0gcmVxdWlyZV9pc0FycmF5TGlrZSgpOwogICAgdmFyIGlzSXRlcmFibGVfMSA9IHJlcXVpcmVfaXNJdGVyYWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlXzEgPSByZXF1aXJlX3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZWQoaW5wdXQsIHNjaGVkdWxlcikgewogICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgIGlmIChpc0ludGVyb3BPYnNlcnZhYmxlXzEuaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZU9ic2VydmFibGVfMS5zY2hlZHVsZU9ic2VydmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0FycmF5TGlrZV8xLmlzQXJyYXlMaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlQXJyYXlfMS5zY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNQcm9taXNlXzEuaXNQcm9taXNlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlUHJvbWlzZV8xLnNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXN5bmNJdGVyYWJsZV8xLmlzQXN5bmNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMS5zY2hlZHVsZUFzeW5jSXRlcmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0l0ZXJhYmxlXzEuaXNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUl0ZXJhYmxlXzEuc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUmVhZGFibGVTdHJlYW1MaWtlXzEuaXNSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2VfMS5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhyb3cgdGhyb3dVbm9ic2VydmFibGVFcnJvcl8xLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlZCA9IHNjaGVkdWxlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzCnZhciByZXF1aXJlX2Zyb20gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlZF8xID0gcmVxdWlyZV9zY2hlZHVsZWQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBmcm9tKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlciA/IHNjaGVkdWxlZF8xLnNjaGVkdWxlZChpbnB1dCwgc2NoZWR1bGVyKSA6IGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tID0gZnJvbTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZi5qcwp2YXIgcmVxdWlyZV9vZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5vZiA9IHZvaWQgMDsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG9mKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKGFyZ3MsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5vZiA9IG9mOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiB0aHJvd0Vycm9yMihlcnJvck9yRXJyb3JGYWN0b3J5LCBzY2hlZHVsZXIpIHsKICAgICAgdmFyIGVycm9yRmFjdG9yeSA9IGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGVycm9yT3JFcnJvckZhY3RvcnkpID8gZXJyb3JPckVycm9yRmFjdG9yeSA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBlcnJvck9yRXJyb3JGYWN0b3J5OwogICAgICB9OwogICAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnJvckZhY3RvcnkoKSk7CiAgICAgIH07CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoc2NoZWR1bGVyID8gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoaW5pdCwgMCwgc3Vic2NyaWJlcik7CiAgICAgIH0gOiBpbml0KTsKICAgIH0KICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB0aHJvd0Vycm9yMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVOb3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgb2ZfMSA9IHJlcXVpcmVfb2YoKTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBOb3RpZmljYXRpb25LaW5kOwogICAgKGZ1bmN0aW9uKE5vdGlmaWNhdGlvbktpbmQyKSB7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJORVhUIl0gPSAiTiI7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJFUlJPUiJdID0gIkUiOwogICAgICBOb3RpZmljYXRpb25LaW5kMlsiQ09NUExFVEUiXSA9ICJDIjsKICAgIH0pKE5vdGlmaWNhdGlvbktpbmQgPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kIHx8IChleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0ge30pKTsKICAgIHZhciBOb3RpZmljYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uMihraW5kLCB2YWx1ZSwgZXJyb3IpIHsKICAgICAgICB0aGlzLmtpbmQgPSBraW5kOwogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IGtpbmQgPT09ICJOIjsKICAgICAgfQogICAgICBOb3RpZmljYXRpb24yLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24ob2JzZXJ2ZXIpIHsKICAgICAgICByZXR1cm4gb2JzZXJ2ZU5vdGlmaWNhdGlvbih0aGlzLCBvYnNlcnZlcik7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmRvID0gZnVuY3Rpb24obmV4dEhhbmRsZXIsIGVycm9ySGFuZGxlciwgY29tcGxldGVIYW5kbGVyKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgcmV0dXJuIGtpbmQgPT09ICJOIiA/IG5leHRIYW5kbGVyID09PSBudWxsIHx8IG5leHRIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0SGFuZGxlcih2YWx1ZSkgOiBraW5kID09PSAiRSIgPyBlcnJvckhhbmRsZXIgPT09IG51bGwgfHwgZXJyb3JIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckhhbmRsZXIoZXJyb3IpIDogY29tcGxldGVIYW5kbGVyID09PSBudWxsIHx8IGNvbXBsZXRlSGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcGxldGVIYW5kbGVyKCk7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKG5leHRPck9ic2VydmVyLCBlcnJvciwgY29tcGxldGUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKChfYSA9IG5leHRPck9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmV4dCkgPyB0aGlzLm9ic2VydmUobmV4dE9yT2JzZXJ2ZXIpIDogdGhpcy5kbyhuZXh0T3JPYnNlcnZlciwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgTm90aWZpY2F0aW9uMi5wcm90b3R5cGUudG9PYnNlcnZhYmxlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgdmFyIHJlc3VsdCA9IGtpbmQgPT09ICJOIiA/IG9mXzEub2YodmFsdWUpIDoga2luZCA9PT0gIkUiID8gdGhyb3dFcnJvcl8xLnRocm93RXJyb3IoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgfSkgOiBraW5kID09PSAiQyIgPyBlbXB0eV8xLkVNUFRZIDogMDsKICAgICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiICsga2luZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY3JlYXRlTmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJOIiwgdmFsdWUpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJFIiwgdm9pZCAwLCBlcnIpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb247CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uMigiQyIpOwogICAgICByZXR1cm4gTm90aWZpY2F0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG9ic2VydmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBvYnNlcnZlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIF9kID0gbm90aWZpY2F0aW9uLCBraW5kID0gX2Qua2luZCwgdmFsdWUgPSBfZC52YWx1ZSwgZXJyb3IgPSBfZC5lcnJvcjsKICAgICAgaWYgKHR5cGVvZiBraW5kICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOwogICAgICB9CiAgICAgIGtpbmQgPT09ICJOIiA/IChfYSA9IG9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9ic2VydmVyLCB2YWx1ZSkgOiBraW5kID09PSAiRSIgPyAoX2IgPSBvYnNlcnZlci5lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob2JzZXJ2ZXIsIGVycm9yKSA6IChfYyA9IG9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvYnNlcnZlcik7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlTm90aWZpY2F0aW9uID0gb2JzZXJ2ZU5vdGlmaWNhdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfaXNPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc09ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc09ic2VydmFibGUob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiAob2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUgfHwgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob2JqLmxpZnQpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iai5zdWJzY3JpYmUpKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzT2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzCnZhciByZXF1aXJlX0VtcHR5RXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuRW1wdHlFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gRW1wdHlFcnJvckltcGwoKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubmFtZSA9ICJFbXB0eUVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2xhc3RWYWx1ZUZyb20uanMKdmFyIHJlcXVpcmVfbGFzdFZhbHVlRnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9sYXN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0VmFsdWVGcm9tID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgZnVuY3Rpb24gbGFzdFZhbHVlRnJvbShzb3VyY2UsIGNvbmZpZykgewogICAgICB2YXIgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gIm9iamVjdCI7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICB2YXIgX2hhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIF92YWx1ZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHsKICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIF92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICBfaGFzVmFsdWUgPSB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChfaGFzVmFsdWUpIHsKICAgICAgICAgICAgICByZXNvbHZlKF92YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ29uZmlnKSB7CiAgICAgICAgICAgICAgcmVzb2x2ZShjb25maWcuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZWplY3QobmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubGFzdFZhbHVlRnJvbSA9IGxhc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzCnZhciByZXF1aXJlX2ZpcnN0VmFsdWVGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBTdWJzY3JpYmVyXzEgPSByZXF1aXJlX1N1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGZpcnN0VmFsdWVGcm9tKHNvdXJjZSwgY29uZmlnKSB7CiAgICAgIHZhciBoYXNDb25maWcgPSB0eXBlb2YgY29uZmlnID09PSAib2JqZWN0IjsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBzdWJzY3JpYmVyID0gbmV3IFN1YnNjcmliZXJfMS5TYWZlU3Vic2NyaWJlcih7CiAgICAgICAgICBuZXh0OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChoYXNDb25maWcpIHsKICAgICAgICAgICAgICByZXNvbHZlKGNvbmZpZy5kZWZhdWx0VmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlamVjdChuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpcnN0VmFsdWVGcm9tID0gZmlyc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IuanMKdmFyIHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICBleHBvcnRzMi5Bcmd1bWVudE91dE9mUmFuZ2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsKCkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9ICJhcmd1bWVudCBvdXQgb2YgcmFuZ2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcwp2YXIgcmVxdWlyZV9Ob3RGb3VuZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTm90Rm91bmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjcmVhdGVFcnJvckNsYXNzXzEgPSByZXF1aXJlX2NyZWF0ZUVycm9yQ2xhc3MoKTsKICAgIGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE5vdEZvdW5kRXJyb3JJbXBsKG1lc3NhZ2UpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk5vdEZvdW5kRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzCnZhciByZXF1aXJlX1NlcXVlbmNlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TZXF1ZW5jZUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuU2VxdWVuY2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gU2VxdWVuY2VFcnJvckltcGwobWVzc2FnZSkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiU2VxdWVuY2VFcnJvciI7CiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKICAgICAgfTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzRGF0ZS5qcwp2YXIgcmVxdWlyZV9pc0RhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0RhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzVmFsaWREYXRlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUpOwogICAgfQogICAgZXhwb3J0czIuaXNWYWxpZERhdGUgPSBpc1ZhbGlkRGF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQuanMKdmFyIHJlcXVpcmVfdGltZW91dCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGV4ZWN1dGVTY2hlZHVsZV8xID0gcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUoKTsKICAgIGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVGltZW91dEVycm9ySW1wbChpbmZvKSB7CiAgICAgICAgaWYgKGluZm8gPT09IHZvaWQgMCkgewogICAgICAgICAgaW5mbyA9IG51bGw7CiAgICAgICAgfQogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAiVGltZW91dCBoYXMgb2NjdXJyZWQiOwogICAgICAgIHRoaXMubmFtZSA9ICJUaW1lb3V0RXJyb3IiOwogICAgICAgIHRoaXMuaW5mbyA9IGluZm87CiAgICAgIH07CiAgICB9KTsKICAgIGZ1bmN0aW9uIHRpbWVvdXQoY29uZmlnLCBzY2hlZHVsZXJBcmcpIHsKICAgICAgdmFyIF9hID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoY29uZmlnKSA/IHsgZmlyc3Q6IGNvbmZpZyB9IDogdHlwZW9mIGNvbmZpZyA9PT0gIm51bWJlciIgPyB7IGVhY2g6IGNvbmZpZyB9IDogY29uZmlnLCBmaXJzdCA9IF9hLmZpcnN0LCBlYWNoID0gX2EuZWFjaCwgX2IgPSBfYS53aXRoLCBfd2l0aCA9IF9iID09PSB2b2lkIDAgPyB0aW1lb3V0RXJyb3JGYWN0b3J5IDogX2IsIF9jID0gX2Euc2NoZWR1bGVyLCBzY2hlZHVsZXIgPSBfYyA9PT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnICE9PSBudWxsICYmIHNjaGVkdWxlckFyZyAhPT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlciA6IF9jLCBfZCA9IF9hLm1ldGEsIG1ldGEgPSBfZCA9PT0gdm9pZCAwID8gbnVsbCA6IF9kOwogICAgICBpZiAoZmlyc3QgPT0gbnVsbCAmJiBlYWNoID09IG51bGwpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb3JpZ2luYWxTb3VyY2VTdWJzY3JpcHRpb247CiAgICAgICAgdmFyIHRpbWVyU3Vic2NyaXB0aW9uOwogICAgICAgIHZhciBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICB2YXIgc3RhcnRUaW1lciA9IGZ1bmN0aW9uKGRlbGF5KSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9IGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIG9yaWdpbmFsU291cmNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKF93aXRoKHsKICAgICAgICAgICAgICAgIG1ldGEsCiAgICAgICAgICAgICAgICBsYXN0VmFsdWUsCiAgICAgICAgICAgICAgICBzZWVuCiAgICAgICAgICAgICAgfSkpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBkZWxheSk7CiAgICAgICAgfTsKICAgICAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9PT0gbnVsbCB8fCB0aW1lclN1YnNjcmlwdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNlZW4rKzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChsYXN0VmFsdWUgPSB2YWx1ZSk7CiAgICAgICAgICBlYWNoID4gMCAmJiBzdGFydFRpbWVyKGVhY2gpOwogICAgICAgIH0sIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghKHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi5jbG9zZWQpKSB7CiAgICAgICAgICAgIHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgICAgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgICAgIXNlZW4gJiYgc3RhcnRUaW1lcihmaXJzdCAhPSBudWxsID8gdHlwZW9mIGZpcnN0ID09PSAibnVtYmVyIiA/IGZpcnN0IDogK2ZpcnN0IC0gc2NoZWR1bGVyLm5vdygpIDogZWFjaCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dCA9IHRpbWVvdXQ7CiAgICBmdW5jdGlvbiB0aW1lb3V0RXJyb3JGYWN0b3J5KGluZm8pIHsKICAgICAgdGhyb3cgbmV3IGV4cG9ydHMyLlRpbWVvdXRFcnJvcihpbmZvKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcwp2YXIgcmVxdWlyZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWFwID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hcDIocHJvamVjdCwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tYXAgPSBtYXAyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMKdmFyIHJlcXVpcmVfbWFwT25lT3JNYW55QXJncyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcE9uZU9yTWFueUFyZ3MgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OwogICAgZnVuY3Rpb24gY2FsbE9yQXBwbHkoZm4sIGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzQXJyYXkoYXJncykgPyBmbi5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpIDogZm4oYXJncyk7CiAgICB9CiAgICBmdW5jdGlvbiBtYXBPbmVPck1hbnlBcmdzKGZuKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oYXJncykgewogICAgICAgIHJldHVybiBjYWxsT3JBcHBseShmbiwgYXJncyk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWFwT25lT3JNYW55QXJncyA9IG1hcE9uZU9yTWFueUFyZ3M7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZENhbGxiYWNrSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX2JpbmRDYWxsYmFja0ludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFja0ludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlzU2NoZWR1bGVyXzEgPSByZXF1aXJlX2lzU2NoZWR1bGVyKCk7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgQXN5bmNTdWJqZWN0XzEgPSByZXF1aXJlX0FzeW5jU3ViamVjdCgpOwogICAgZnVuY3Rpb24gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHJlc3VsdFNlbGVjdG9yLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3IpKSB7CiAgICAgICAgICBzY2hlZHVsZXIgPSByZXN1bHRTZWxlY3RvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHNjaGVkdWxlcikuYXBwbHkodGhpcywgYXJncykucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMpLmFwcGx5KHRoaXMsIGFyZ3MpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHZhciB1bmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICAgIHZhciBzdWJzID0gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgICBpZiAodW5pbml0aWFsaXplZCkgewogICAgICAgICAgICB1bmluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgICAgICAgIHZhciBpc0FzeW5jXzEgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIGlzQ29tcGxldGVfMSA9IGZhbHNlOwogICAgICAgICAgICBjYWxsYmFja0Z1bmMuYXBwbHkoX3RoaXMsIF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSwgWwogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pMisrKSB7CiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbX2kyXSA9IGFyZ3VtZW50c1tfaTJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGlzTm9kZVN0eWxlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXN1bHRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgxIDwgcmVzdWx0cy5sZW5ndGggPyByZXN1bHRzIDogcmVzdWx0c1swXSk7CiAgICAgICAgICAgICAgICBpc0NvbXBsZXRlXzEgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKGlzQXN5bmNfMSkgewogICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKSk7CiAgICAgICAgICAgIGlmIChpc0NvbXBsZXRlXzEpIHsKICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNBc3luY18xID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzdWJzOwogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gYmluZENhbGxiYWNrSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kQ2FsbGJhY2sgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9iaW5kQ2FsbGJhY2suanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJpbmRDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soY2FsbGJhY2tGdW5jLCByZXN1bHRTZWxlY3Rvciwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMS5iaW5kQ2FsbGJhY2tJbnRlcm5hbHMoZmFsc2UsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kQ2FsbGJhY2sgPSBiaW5kQ2FsbGJhY2s7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kTm9kZUNhbGxiYWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZE5vZGVDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrKGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcikgewogICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzXzEuYmluZENhbGxiYWNrSW50ZXJuYWxzKHRydWUsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gYmluZE5vZGVDYWxsYmFjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzQXJnQXJyYXlPck9iamVjdC5qcwp2YXIgcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2FyZ3NBcmdBcnJheU9yT2JqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcmdzQXJnQXJyYXlPck9iamVjdCA9IHZvaWQgMDsKICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTsKICAgIHZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKICAgIHZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7CiAgICB2YXIgZ2V0S2V5cyA9IE9iamVjdC5rZXlzOwogICAgZnVuY3Rpb24gYXJnc0FyZ0FycmF5T3JPYmplY3QoYXJncykgewogICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHsKICAgICAgICB2YXIgZmlyc3RfMSA9IGFyZ3NbMF07CiAgICAgICAgaWYgKGlzQXJyYXkoZmlyc3RfMSkpIHsKICAgICAgICAgIHJldHVybiB7IGFyZ3M6IGZpcnN0XzEsIGtleXM6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUE9KTyhmaXJzdF8xKSkgewogICAgICAgICAgdmFyIGtleXMgPSBnZXRLZXlzKGZpcnN0XzEpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgYXJnczoga2V5cy5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0XzFba2V5XTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGtleXMKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGFyZ3MsIGtleXM6IG51bGwgfTsKICAgIH0KICAgIGV4cG9ydHMyLmFyZ3NBcmdBcnJheU9yT2JqZWN0ID0gYXJnc0FyZ0FycmF5T3JPYmplY3Q7CiAgICBmdW5jdGlvbiBpc1BPSk8ob2JqKSB7CiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gIm9iamVjdCIgJiYgZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gb2JqZWN0UHJvdG87CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvY3JlYXRlT2JqZWN0LmpzCnZhciByZXF1aXJlX2NyZWF0ZU9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZU9iamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0KGtleXMsIHZhbHVlcykgewogICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXksIGkpIHsKICAgICAgICByZXR1cm4gcmVzdWx0W2tleV0gPSB2YWx1ZXNbaV0sIHJlc3VsdDsKICAgICAgfSwge30pOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gY3JlYXRlT2JqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3RJbml0ID0gZXhwb3J0czIuY29tYmluZUxhdGVzdCA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIHJlc3VsdFNlbGVjdG9yID0gYXJnc18xLnBvcFJlc3VsdFNlbGVjdG9yKGFyZ3MpOwogICAgICB2YXIgX2EgPSBhcmdzQXJnQXJyYXlPck9iamVjdF8xLmFyZ3NBcmdBcnJheU9yT2JqZWN0KGFyZ3MpLCBvYnNlcnZhYmxlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKFtdLCBzY2hlZHVsZXIpOwogICAgICB9CiAgICAgIHZhciByZXN1bHQgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwga2V5cyA/IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIHJldHVybiBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKTsKICAgICAgfSA6IGlkZW50aXR5XzEuaWRlbnRpdHkpKTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBjb21iaW5lTGF0ZXN0OwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwgdmFsdWVUcmFuc2Zvcm0pIHsKICAgICAgaWYgKHZhbHVlVHJhbnNmb3JtID09PSB2b2lkIDApIHsKICAgICAgICB2YWx1ZVRyYW5zZm9ybSA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBtYXliZVNjaGVkdWxlKHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgbGVuZ3RoID0gb2JzZXJ2YWJsZXMubGVuZ3RoOwogICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgICAgdmFyIGFjdGl2ZSA9IGxlbmd0aDsKICAgICAgICAgIHZhciByZW1haW5pbmdGaXJzdFZhbHVlcyA9IGxlbmd0aDsKICAgICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oaTIpIHsKICAgICAgICAgICAgbWF5YmVTY2hlZHVsZShzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBmcm9tXzEuZnJvbShvYnNlcnZhYmxlc1tpMl0sIHNjaGVkdWxlcik7CiAgICAgICAgICAgICAgdmFyIGhhc0ZpcnN0VmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFsdWVzW2kyXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgaWYgKCFoYXNGaXJzdFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgICAgICByZW1haW5pbmdGaXJzdFZhbHVlcy0tOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdGaXJzdFZhbHVlcykgewogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWVUcmFuc2Zvcm0odmFsdWVzLnNsaWNlKCkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmICghLS1hY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfSwgc3Vic2NyaWJlcik7CiAgICAgICAgICB9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgICAgfQogICAgICAgIH0sIHN1YnNjcmliZXIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEluaXQgPSBjb21iaW5lTGF0ZXN0SW5pdDsKICAgIGZ1bmN0aW9uIG1heWJlU2NoZWR1bGUoc2NoZWR1bGVyLCBleGVjdXRlLCBzdWJzY3JpcHRpb24pIHsKICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgZXhlY3V0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXhlY3V0ZSgpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUludGVybmFscy5qcwp2YXIgcmVxdWlyZV9tZXJnZUludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VJbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gbWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCBvbkJlZm9yZU5leHQsIGV4cGFuZCwgaW5uZXJTdWJTY2hlZHVsZXIsIGFkZGl0aW9uYWxGaW5hbGl6ZXIpIHsKICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICB2YXIgYWN0aXZlID0gMDsKICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoaXNDb21wbGV0ZSAmJiAhYnVmZmVyLmxlbmd0aCAmJiAhYWN0aXZlKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICB2YXIgb3V0ZXJOZXh0ID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gYWN0aXZlIDwgY29uY3VycmVudCA/IGRvSW5uZXJTdWIodmFsdWUpIDogYnVmZmVyLnB1c2godmFsdWUpOwogICAgICB9OwogICAgICB2YXIgZG9Jbm5lclN1YiA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgZXhwYW5kICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgYWN0aXZlKys7CiAgICAgICAgdmFyIGlubmVyQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdCh2YWx1ZSwgaW5kZXgrKykpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oaW5uZXJWYWx1ZSkgewogICAgICAgICAgb25CZWZvcmVOZXh0ID09PSBudWxsIHx8IG9uQmVmb3JlTmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CZWZvcmVOZXh0KGlubmVyVmFsdWUpOwogICAgICAgICAgaWYgKGV4cGFuZCkgewogICAgICAgICAgICBvdXRlck5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpbm5lckNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICB9LCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKGlubmVyQ29tcGxldGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBhY3RpdmUtLTsKICAgICAgICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIGJ1ZmZlcmVkVmFsdWUgPSBidWZmZXIuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmIChpbm5lclN1YlNjaGVkdWxlcikgewogICAgICAgICAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgaW5uZXJTdWJTY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0lubmVyU3ViKGJ1ZmZlcmVkVmFsdWUpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGRvSW5uZXJTdWIoYnVmZmVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB3aGlsZSAoYnVmZmVyLmxlbmd0aCAmJiBhY3RpdmUgPCBjb25jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBfbG9vcF8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9OwogICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBvdXRlck5leHQsIGZ1bmN0aW9uKCkgewogICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgYWRkaXRpb25hbEZpbmFsaXplciA9PT0gbnVsbCB8fCBhZGRpdGlvbmFsRmluYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhZGRpdGlvbmFsRmluYWxpemVyKCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUludGVybmFscyA9IG1lcmdlSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXAuanMKdmFyIHJlcXVpcmVfbWVyZ2VNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5tZXJnZU1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG1lcmdlSW50ZXJuYWxzXzEgPSByZXF1aXJlX21lcmdlSW50ZXJuYWxzKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtZXJnZU1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbihiLCBpaSkgewogICAgICAgICAgICByZXR1cm4gcmVzdWx0U2VsZWN0b3IoYSwgYiwgaSwgaWkpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpKTsKICAgICAgICB9LCBjb25jdXJyZW50KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gbWVyZ2VJbnRlcm5hbHNfMS5tZXJnZUludGVybmFscyhzb3VyY2UsIHN1YnNjcmliZXIsIHByb2plY3QsIGNvbmN1cnJlbnQpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlTWFwID0gbWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUFsbC5qcwp2YXIgcmVxdWlyZV9tZXJnZUFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIG1lcmdlQWxsKGNvbmN1cnJlbnQpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChpZGVudGl0eV8xLmlkZW50aXR5LCBjb25jdXJyZW50KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gbWVyZ2VBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMKdmFyIHJlcXVpcmVfY29uY2F0QWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgZnVuY3Rpb24gY29uY2F0QWxsKCkgewogICAgICByZXR1cm4gbWVyZ2VBbGxfMS5tZXJnZUFsbCgxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IGNvbmNhdEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsKCkoZnJvbV8xLmZyb20oYXJncywgYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29uY2F0ID0gY29uY2F0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RlZmVyLmpzCnZhciByZXF1aXJlX2RlZmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZGVmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZmVyID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGRlZmVyKG9ic2VydmFibGVGYWN0b3J5KSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvYnNlcnZhYmxlRmFjdG9yeSgpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmZXIgPSBkZWZlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25uZWN0YWJsZS5qcwp2YXIgcmVxdWlyZV9jb25uZWN0YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Nvbm5lY3RhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25uZWN0YWJsZSA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgdmFyIERFRkFVTFRfQ09ORklHID0gewogICAgICBjb25uZWN0b3I6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgfSwKICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IHRydWUKICAgIH07CiAgICBmdW5jdGlvbiBjb25uZWN0YWJsZShzb3VyY2UsIGNvbmZpZykgewogICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsKICAgICAgICBjb25maWcgPSBERUZBVUxUX0NPTkZJRzsKICAgICAgfQogICAgICB2YXIgY29ubmVjdGlvbiA9IG51bGw7CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yLCBfYSA9IGNvbmZpZy5yZXNldE9uRGlzY29ubmVjdCwgcmVzZXRPbkRpc2Nvbm5lY3QgPSBfYSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9hOwogICAgICB2YXIgc3ViamVjdCA9IGNvbm5lY3RvcigpOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgICByZXN1bHQuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICghY29ubmVjdGlvbiB8fCBjb25uZWN0aW9uLmNsb3NlZCkgewogICAgICAgICAgY29ubmVjdGlvbiA9IGRlZmVyXzEuZGVmZXIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgICB9KS5zdWJzY3JpYmUoc3ViamVjdCk7CiAgICAgICAgICBpZiAocmVzZXRPbkRpc2Nvbm5lY3QpIHsKICAgICAgICAgICAgY29ubmVjdGlvbi5hZGQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb25uZWN0aW9uOwogICAgICB9OwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdGFibGUgPSBjb25uZWN0YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mb3JrSm9pbi5qcwp2YXIgcmVxdWlyZV9mb3JrSm9pbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2ZvcmtKb2luLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mb3JrSm9pbiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgZnVuY3Rpb24gZm9ya0pvaW4oKSB7CiAgICAgIHZhciBhcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciByZXN1bHRTZWxlY3RvciA9IGFyZ3NfMS5wb3BSZXN1bHRTZWxlY3RvcihhcmdzKTsKICAgICAgdmFyIF9hID0gYXJnc0FyZ0FycmF5T3JPYmplY3RfMS5hcmdzQXJnQXJyYXlPck9iamVjdChhcmdzKSwgc291cmNlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7CiAgICAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgIHZhciByZW1haW5pbmdDb21wbGV0aW9ucyA9IGxlbmd0aDsKICAgICAgICB2YXIgcmVtYWluaW5nRW1pc3Npb25zID0gbGVuZ3RoOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzW3NvdXJjZUluZGV4Ml0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgICByZW1haW5pbmdFbWlzc2lvbnMtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YWx1ZXNbc291cmNlSW5kZXgyXSA9IHZhbHVlOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiByZW1haW5pbmdDb21wbGV0aW9ucy0tOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdDb21wbGV0aW9ucyB8fCAhaGFzVmFsdWUpIHsKICAgICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0VtaXNzaW9ucykgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGtleXMgPyBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKSA6IHZhbHVlcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgc291cmNlSW5kZXggPSAwOyBzb3VyY2VJbmRleCA8IGxlbmd0aDsgc291cmNlSW5kZXgrKykgewogICAgICAgICAgX2xvb3BfMShzb3VyY2VJbmRleCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmZvcmtKb2luID0gZm9ya0pvaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50LmpzCnZhciByZXF1aXJlX2Zyb21FdmVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tRXZlbnQgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNBcnJheUxpa2VfMSA9IHJlcXVpcmVfaXNBcnJheUxpa2UoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyA9IFsiYWRkTGlzdGVuZXIiLCAicmVtb3ZlTGlzdGVuZXIiXTsKICAgIHZhciBldmVudFRhcmdldE1ldGhvZHMgPSBbImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciJdOwogICAgdmFyIGpxdWVyeU1ldGhvZHMgPSBbIm9uIiwgIm9mZiJdOwogICAgZnVuY3Rpb24gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zLCByZXN1bHRTZWxlY3RvcikgewogICAgICBpZiAoaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob3B0aW9ucykpIHsKICAgICAgICByZXN1bHRTZWxlY3RvciA9IG9wdGlvbnM7CiAgICAgICAgb3B0aW9ucyA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAocmVzdWx0U2VsZWN0b3IpIHsKICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zKS5waXBlKG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHJlc3VsdFNlbGVjdG9yKSk7CiAgICAgIH0KICAgICAgdmFyIF9hID0gX19yZWFkKGlzRXZlbnRUYXJnZXQodGFyZ2V0KSA/IGV2ZW50VGFyZ2V0TWV0aG9kcy5tYXAoZnVuY3Rpb24obWV0aG9kTmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbihoYW5kbGVyKSB7CiAgICAgICAgICByZXR1cm4gdGFyZ2V0W21ldGhvZE5hbWVdKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7CiAgICAgICAgfTsKICAgICAgfSkgOiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpID8gbm9kZUV2ZW50RW1pdHRlck1ldGhvZHMubWFwKHRvQ29tbW9uSGFuZGxlclJlZ2lzdHJ5KHRhcmdldCwgZXZlbnROYW1lKSkgOiBpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyKHRhcmdldCkgPyBqcXVlcnlNZXRob2RzLm1hcCh0b0NvbW1vbkhhbmRsZXJSZWdpc3RyeSh0YXJnZXQsIGV2ZW50TmFtZSkpIDogW10sIDIpLCBhZGQgPSBfYVswXSwgcmVtb3ZlID0gX2FbMV07CiAgICAgIGlmICghYWRkKSB7CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UodGFyZ2V0KSkgewogICAgICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24oc3ViVGFyZ2V0KSB7CiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoc3ViVGFyZ2V0LCBldmVudE5hbWUsIG9wdGlvbnMpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHRhcmdldCkpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoIWFkZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5uZXh0KDEgPCBhcmdzLmxlbmd0aCA/IGFyZ3MgOiBhcmdzWzBdKTsKICAgICAgICB9OwogICAgICAgIGFkZChoYW5kbGVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlKGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUV2ZW50ID0gZnJvbUV2ZW50OwogICAgZnVuY3Rpb24gdG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oaGFuZGxlcikgewogICAgICAgICAgcmV0dXJuIHRhcmdldFttZXRob2ROYW1lXShldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRMaXN0ZW5lcikgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odGFyZ2V0LnJlbW92ZUxpc3RlbmVyKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQub24pICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5vZmYpOwogICAgfQogICAgZnVuY3Rpb24gaXNFdmVudFRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcwp2YXIgcmVxdWlyZV9mcm9tRXZlbnRQYXR0ZXJuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIGZ1bmN0aW9uIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlciwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlcikucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICB9CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZSA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgICAgZVtfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIubmV4dChlLmxlbmd0aCA9PT0gMSA/IGVbMF0gOiBlKTsKICAgICAgICB9OwogICAgICAgIHZhciByZXRWYWx1ZSA9IGFkZEhhbmRsZXIoaGFuZGxlcik7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlbW92ZUhhbmRsZXIpID8gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlSGFuZGxlcihoYW5kbGVyLCByZXRWYWx1ZSk7CiAgICAgICAgfSA6IHZvaWQgMDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tRXZlbnRQYXR0ZXJuID0gZnJvbUV2ZW50UGF0dGVybjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9nZW5lcmF0ZS5qcwp2YXIgcmVxdWlyZV9nZW5lcmF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2dlbmVyYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZ2VuZXJhdG9yID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19nZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgYm9keSkgewogICAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsKICAgICAgICByZXR1cm4gdFsxXTsKICAgICAgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZzsKICAgICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksICJ0aHJvdyI6IHZlcmIoMSksICJyZXR1cm4iOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9KSwgZzsKICAgICAgZnVuY3Rpb24gdmVyYihuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBzdGVwKFtuLCB2XSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKG9wKSB7CiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTsKICAgICAgICB3aGlsZSAoXykgdHJ5IHsKICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTsKICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICB5ID0gb3BbMV07CiAgICAgICAgICAgICAgb3AgPSBbMF07CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvcCA9IF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgewogICAgICAgICAgICAgICAgXyA9IDA7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCBvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IG9wWzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMV07CiAgICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzJdOwogICAgICAgICAgICAgICAgXy5vcHMucHVzaChvcCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIG9wID0gWzYsIGVdOwogICAgICAgICAgeSA9IDA7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGYgPSB0ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07CiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgICAgfQogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSB2b2lkIDA7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGRlZmVyXzEgPSByZXF1aXJlX2RlZmVyKCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZShpbml0aWFsU3RhdGVPck9wdGlvbnMsIGNvbmRpdGlvbiwgaXRlcmF0ZSwgcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlciwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciByZXN1bHRTZWxlY3RvcjsKICAgICAgdmFyIGluaXRpYWxTdGF0ZTsKICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgICAgICBfYSA9IGluaXRpYWxTdGF0ZU9yT3B0aW9ucywgaW5pdGlhbFN0YXRlID0gX2EuaW5pdGlhbFN0YXRlLCBjb25kaXRpb24gPSBfYS5jb25kaXRpb24sIGl0ZXJhdGUgPSBfYS5pdGVyYXRlLCBfYiA9IF9hLnJlc3VsdFNlbGVjdG9yLCByZXN1bHRTZWxlY3RvciA9IF9iID09PSB2b2lkIDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogX2IsIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVPck9wdGlvbnM7CiAgICAgICAgaWYgKCFyZXN1bHRTZWxlY3Rvck9yU2NoZWR1bGVyIHx8IGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gaWRlbnRpdHlfMS5pZGVudGl0eTsKICAgICAgICAgIHNjaGVkdWxlciA9IHJlc3VsdFNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2VuKCkgewogICAgICAgIHZhciBzdGF0ZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2EyKSB7CiAgICAgICAgICBzd2l0Y2ggKF9hMi5sYWJlbCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgc3RhdGUgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgICAgICAgX2EyLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGlmICghKCFjb25kaXRpb24gfHwgY29uZGl0aW9uKHN0YXRlKSkpIHJldHVybiBbMywgNF07CiAgICAgICAgICAgICAgcmV0dXJuIFs0LCByZXN1bHRTZWxlY3RvcihzdGF0ZSldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX2EyLnNlbnQoKTsKICAgICAgICAgICAgICBfYTIubGFiZWwgPSAzOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgc3RhdGUgPSBpdGVyYXRlKHN0YXRlKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFsyXTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZGVmZXJfMS5kZWZlcihzY2hlZHVsZXIgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVJdGVyYWJsZV8xLnNjaGVkdWxlSXRlcmFibGUoZ2VuKCksIHNjaGVkdWxlcik7CiAgICAgIH0gOiBnZW4pOwogICAgfQogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSBnZW5lcmF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9paWYuanMKdmFyIHJlcXVpcmVfaWlmID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaWlmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5paWYgPSB2b2lkIDA7CiAgICB2YXIgZGVmZXJfMSA9IHJlcXVpcmVfZGVmZXIoKTsKICAgIGZ1bmN0aW9uIGlpZihjb25kaXRpb24sIHRydWVSZXN1bHQsIGZhbHNlUmVzdWx0KSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBjb25kaXRpb24oKSA/IHRydWVSZXN1bHQgOiBmYWxzZVJlc3VsdDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5paWYgPSBpaWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdGltZXIuanMKdmFyIHJlcXVpcmVfdGltZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aW1lci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXIgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIGZ1bmN0aW9uIHRpbWVyKGR1ZVRpbWUsIGludGVydmFsT3JTY2hlZHVsZXIsIHNjaGVkdWxlcikgewogICAgICBpZiAoZHVlVGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZHVlVGltZSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luYzsKICAgICAgfQogICAgICB2YXIgaW50ZXJ2YWxEdXJhdGlvbiA9IC0xOwogICAgICBpZiAoaW50ZXJ2YWxPclNjaGVkdWxlciAhPSBudWxsKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIoaW50ZXJ2YWxPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHNjaGVkdWxlciA9IGludGVydmFsT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGludGVydmFsRHVyYXRpb24gPSBpbnRlcnZhbE9yU2NoZWR1bGVyOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgZHVlID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoZHVlVGltZSkgPyArZHVlVGltZSAtIHNjaGVkdWxlci5ub3coKSA6IGR1ZVRpbWU7CiAgICAgICAgaWYgKGR1ZSA8IDApIHsKICAgICAgICAgIGR1ZSA9IDA7CiAgICAgICAgfQogICAgICAgIHZhciBuID0gMDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobisrKTsKICAgICAgICAgICAgaWYgKDAgPD0gaW50ZXJ2YWxEdXJhdGlvbikgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUodm9pZCAwLCBpbnRlcnZhbER1cmF0aW9uKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBkdWUpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRpbWVyID0gdGltZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfaW50ZXJ2YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbnRlcnZhbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaW50ZXJ2YWwgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gaW50ZXJ2YWwocGVyaW9kLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHBlcmlvZCA9PT0gdm9pZCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICBpZiAoc2NoZWR1bGVyID09PSB2b2lkIDApIHsKICAgICAgICBzY2hlZHVsZXIgPSBhc3luY18xLmFzeW5jU2NoZWR1bGVyOwogICAgICB9CiAgICAgIGlmIChwZXJpb2QgPCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICByZXR1cm4gdGltZXJfMS50aW1lcihwZXJpb2QsIHBlcmlvZCwgc2NoZWR1bGVyKTsKICAgIH0KICAgIGV4cG9ydHMyLmludGVydmFsID0gaW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VBbGxfMSA9IHJlcXVpcmVfbWVyZ2VBbGwoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG1lcmdlMigpIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIoYXJncyk7CiAgICAgIHZhciBjb25jdXJyZW50ID0gYXJnc18xLnBvcE51bWJlcihhcmdzLCBJbmZpbml0eSk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnczsKICAgICAgcmV0dXJuICFzb3VyY2VzLmxlbmd0aCA/IGVtcHR5XzEuRU1QVFkgOiBzb3VyY2VzLmxlbmd0aCA9PT0gMSA/IGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzWzBdKSA6IG1lcmdlQWxsXzEubWVyZ2VBbGwoY29uY3VycmVudCkoZnJvbV8xLmZyb20oc291cmNlcywgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9uZXZlci5qcwp2YXIgcmVxdWlyZV9uZXZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL25ldmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLk5FVkVSID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZXhwb3J0czIuTkVWRVIgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUobm9vcF8xLm5vb3ApOwogICAgZnVuY3Rpb24gbmV2ZXIoKSB7CiAgICAgIHJldHVybiBleHBvcnRzMi5ORVZFUjsKICAgIH0KICAgIGV4cG9ydHMyLm5ldmVyID0gbmV2ZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJnc09yQXJnQXJyYXkuanMKdmFyIHJlcXVpcmVfYXJnc09yQXJnQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzT3JBcmdBcnJheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXJnc09yQXJnQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7CiAgICBmdW5jdGlvbiBhcmdzT3JBcmdBcnJheShhcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KGFyZ3NbMF0pID8gYXJnc1swXSA6IGFyZ3M7CiAgICB9CiAgICBleHBvcnRzMi5hcmdzT3JBcmdBcnJheSA9IGFyZ3NPckFyZ0FycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29uRXJyb3JSZXN1bWVOZXh0LmpzCnZhciByZXF1aXJlX29uRXJyb3JSZXN1bWVOZXh0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvb25FcnJvclJlc3VtZU5leHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0KCkgewogICAgICB2YXIgc291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIHNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgbmV4dFNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc291cmNlSW5kZXggPSAwOwogICAgICAgIHZhciBzdWJzY3JpYmVOZXh0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc291cmNlSW5kZXggPCBuZXh0U291cmNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIG5leHRTb3VyY2UgPSB2b2lkIDA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgbmV4dFNvdXJjZSA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShuZXh0U291cmNlc1tzb3VyY2VJbmRleCsrXSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgIHN1YnNjcmliZU5leHQoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG5ldyBPcGVyYXRvclN1YnNjcmliZXJfMS5PcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBub29wXzEubm9vcCwgbm9vcF8xLm5vb3ApOwogICAgICAgICAgICBuZXh0U291cmNlLnN1YnNjcmliZShpbm5lclN1YnNjcmliZXIpOwogICAgICAgICAgICBpbm5lclN1YnNjcmliZXIuYWRkKHN1YnNjcmliZU5leHQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlTmV4dCgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gb25FcnJvclJlc3VtZU5leHQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFpcnMuanMKdmFyIHJlcXVpcmVfcGFpcnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYWlycy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGFpcnMgPSB2b2lkIDA7CiAgICB2YXIgZnJvbV8xID0gcmVxdWlyZV9mcm9tKCk7CiAgICBmdW5jdGlvbiBwYWlyczIob2JqLCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKE9iamVjdC5lbnRyaWVzKG9iaiksIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5wYWlycyA9IHBhaXJzMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9ub3QuanMKdmFyIHJlcXVpcmVfbm90MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL25vdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm90ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gbm90KHByZWQsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAgIHJldHVybiAhcHJlZC5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5ub3QgPSBub3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMKdmFyIHJlcXVpcmVfZmlsdGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbHRlciA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaWx0ZXIocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gcHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4KyspICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbHRlciA9IGZpbHRlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYXJ0aXRpb24uanMKdmFyIHJlcXVpcmVfcGFydGl0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFydGl0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSB2b2lkIDA7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdDIoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gcGFydGl0aW9uKHNvdXJjZSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBbZmlsdGVyXzEuZmlsdGVyKHByZWRpY2F0ZSwgdGhpc0FyZykoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZSkpLCBmaWx0ZXJfMS5maWx0ZXIobm90XzEubm90KHByZWRpY2F0ZSwgdGhpc0FyZykpKGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpKV07CiAgICB9CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcwp2YXIgcmVxdWlyZV9yYWNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFjZUluaXQgPSBleHBvcnRzMi5yYWNlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJhY2UoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gc291cmNlcy5sZW5ndGggPT09IDEgPyBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1swXSkgOiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUocmFjZUluaXQoc291cmNlcykpOwogICAgfQogICAgZXhwb3J0czIucmFjZSA9IHJhY2U7CiAgICBmdW5jdGlvbiByYWNlSW5pdChzb3VyY2VzKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbnMgPSBbXTsKICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKGkyKSB7CiAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZXNbaTJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCBzdWJzY3JpcHRpb25zLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgICAgICBzICE9PSBpMiAmJiBzdWJzY3JpcHRpb25zW3NdLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9KSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IHN1YnNjcmlwdGlvbnMgJiYgIXN1YnNjcmliZXIuY2xvc2VkICYmIGkgPCBzb3VyY2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnJhY2VJbml0ID0gcmFjZUluaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFuZ2UuanMKdmFyIHJlcXVpcmVfcmFuZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9yYW5nZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFuZ2UgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBjb3VudCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChjb3VudCA9PSBudWxsKSB7CiAgICAgICAgY291bnQgPSBzdGFydDsKICAgICAgICBzdGFydCA9IDA7CiAgICAgIH0KICAgICAgaWYgKGNvdW50IDw9IDApIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfQogICAgICB2YXIgZW5kID0gY291bnQgKyBzdGFydDsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShzY2hlZHVsZXIgPyBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIG4gPSBzdGFydDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG4gPCBlbmQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSA6IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbiA9IHN0YXJ0OwogICAgICAgIHdoaWxlIChuIDwgZW5kICYmICFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgfQogICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5yYW5nZSA9IHJhbmdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nLmpzCnZhciByZXF1aXJlX3VzaW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdXNpbmcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnVzaW5nID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgZnVuY3Rpb24gdXNpbmcocmVzb3VyY2VGYWN0b3J5LCBvYnNlcnZhYmxlRmFjdG9yeSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgcmVzb3VyY2UgPSByZXNvdXJjZUZhY3RvcnkoKTsKICAgICAgICB2YXIgcmVzdWx0ID0gb2JzZXJ2YWJsZUZhY3RvcnkocmVzb3VyY2UpOwogICAgICAgIHZhciBzb3VyY2UgPSByZXN1bHQgPyBpbm5lckZyb21fMS5pbm5lckZyb20ocmVzdWx0KSA6IGVtcHR5XzEuRU1QVFk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAgICAgICAgcmVzb3VyY2UudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzaW5nID0gdXNpbmc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvemlwLmpzCnZhciByZXF1aXJlX3ppcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3ppcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuemlwID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgZnVuY3Rpb24gemlwKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKTsKICAgICAgcmV0dXJuIHNvdXJjZXMubGVuZ3RoID8gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IHNvdXJjZXMubWFwKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0pOwogICAgICAgIHZhciBjb21wbGV0ZWQgPSBzb3VyY2VzLm1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBjb21wbGV0ZWQgPSBudWxsOwogICAgICAgIH0pOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1tzb3VyY2VJbmRleDJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGJ1ZmZlcnNbc291cmNlSW5kZXgyXS5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuZXZlcnkoZnVuY3Rpb24oYnVmZmVyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7CiAgICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJ1ZmZlcnMubWFwKGZ1bmN0aW9uKGJ1ZmZlcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5zaGlmdCgpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHRTZWxlY3RvciA/IHJlc3VsdFNlbGVjdG9yLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHJlc3VsdCkpKSA6IHJlc3VsdCk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuc29tZShmdW5jdGlvbihidWZmZXIsIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhYnVmZmVyLmxlbmd0aCAmJiBjb21wbGV0ZWRbaV07CiAgICAgICAgICAgICAgfSkpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb21wbGV0ZWRbc291cmNlSW5kZXgyXSA9IHRydWU7CiAgICAgICAgICAgICFidWZmZXJzW3NvdXJjZUluZGV4Ml0ubGVuZ3RoICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHNvdXJjZUluZGV4ID0gMDsgIXN1YnNjcmliZXIuY2xvc2VkICYmIHNvdXJjZUluZGV4IDwgc291cmNlcy5sZW5ndGg7IHNvdXJjZUluZGV4KyspIHsKICAgICAgICAgIF9sb29wXzEoc291cmNlSW5kZXgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXJzID0gY29tcGxldGVkID0gbnVsbDsKICAgICAgICB9OwogICAgICB9KSA6IGVtcHR5XzEuRU1QVFk7CiAgICB9CiAgICBleHBvcnRzMi56aXAgPSB6aXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3R5cGVzLmpzCnZhciByZXF1aXJlX3R5cGVzMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC90eXBlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYXVkaXQuanMKdmFyIHJlcXVpcmVfYXVkaXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hdWRpdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gYXVkaXQoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICB2YXIgZW5kRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGlmICghZHVyYXRpb25TdWJzY3JpYmVyKSB7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmREdXJhdGlvbiwgY2xlYW51cER1cmF0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICghaGFzVmFsdWUgfHwgIWR1cmF0aW9uU3Vic2NyaWJlciB8fCBkdXJhdGlvblN1YnNjcmliZXIuY2xvc2VkKSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmF1ZGl0ID0gYXVkaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMKdmFyIHJlcXVpcmVfYXVkaXRUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmF1ZGl0VGltZSA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGF1ZGl0VGltZShkdXJhdGlvbiwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuYXVkaXRUaW1lID0gYXVkaXRUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXIgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcihjbG9zaW5nTm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjdXJyZW50QnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBjdXJyZW50QnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGN1cnJlbnRCdWZmZXIpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ05vdGlmaWVyKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGIgPSBjdXJyZW50QnVmZmVyOwogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IFtdOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGIpOwogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXIgPSBidWZmZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudC5qcwp2YXIgcmVxdWlyZV9idWZmZXJDb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyQ291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX192YWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3ZhbHVlcyB8fCBmdW5jdGlvbihvKSB7CiAgICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwOwogICAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTsKICAgICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07CiAgICAgICAgfQogICAgICB9OwogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyAiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iIDogIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICBmdW5jdGlvbiBidWZmZXJDb3VudChidWZmZXJTaXplLCBzdGFydEJ1ZmZlckV2ZXJ5KSB7CiAgICAgIGlmIChzdGFydEJ1ZmZlckV2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gbnVsbDsKICAgICAgfQogICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gc3RhcnRCdWZmZXJFdmVyeSAhPT0gbnVsbCAmJiBzdGFydEJ1ZmZlckV2ZXJ5ICE9PSB2b2lkIDAgPyBzdGFydEJ1ZmZlckV2ZXJ5IDogYnVmZmVyU2l6ZTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJzID0gW107CiAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgICB2YXIgdG9FbWl0ID0gbnVsbDsKICAgICAgICAgIGlmIChjb3VudCsrICUgc3RhcnRCdWZmZXJFdmVyeSA9PT0gMCkgewogICAgICAgICAgICBidWZmZXJzLnB1c2goW10pOwogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18xID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKTsgIWJ1ZmZlcnNfMV8xLmRvbmU7IGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdG9FbWl0ID0gdG9FbWl0ICE9PSBudWxsICYmIHRvRW1pdCAhPT0gdm9pZCAwID8gdG9FbWl0IDogW107CiAgICAgICAgICAgICAgICB0b0VtaXQucHVzaChidWZmZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9FbWl0KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdG9FbWl0XzEgPSBfX3ZhbHVlcyh0b0VtaXQpLCB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpOyAhdG9FbWl0XzFfMS5kb25lOyB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gdG9FbWl0XzFfMS52YWx1ZTsKICAgICAgICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJzLCBidWZmZXIpOwogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlXzJfMSkgewogICAgICAgICAgICAgIGVfMiA9IHsgZXJyb3I6IGVfMl8xIH07CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh0b0VtaXRfMV8xICYmICF0b0VtaXRfMV8xLmRvbmUgJiYgKF9iID0gdG9FbWl0XzEucmV0dXJuKSkgX2IuY2FsbCh0b0VtaXRfMSk7CiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzMsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18yID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKTsgIWJ1ZmZlcnNfMl8xLmRvbmU7IGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzJfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoYnVmZmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8zXzEpIHsKICAgICAgICAgICAgZV8zID0geyBlcnJvcjogZV8zXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMl8xICYmICFidWZmZXJzXzJfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMi5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMik7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMykgdGhyb3cgZV8zLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJDb3VudCA9IGJ1ZmZlckNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyVGltZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gYnVmZmVyVGltZShidWZmZXJUaW1lU3BhbikgewogICAgICB2YXIgX2EsIF9iOwogICAgICB2YXIgb3RoZXJBcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgb3RoZXJBcmdzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBzY2hlZHVsZXIgPSAoX2EgPSBhcmdzXzEucG9wU2NoZWR1bGVyKG90aGVyQXJncykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIHZhciBidWZmZXJDcmVhdGlvbkludGVydmFsID0gKF9iID0gb3RoZXJBcmdzWzBdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsOwogICAgICB2YXIgbWF4QnVmZmVyU2l6ZSA9IG90aGVyQXJnc1sxXSB8fCBJbmZpbml0eTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJSZWNvcmRzID0gW107CiAgICAgICAgdmFyIHJlc3RhcnRPbkVtaXQgPSBmYWxzZTsKICAgICAgICB2YXIgZW1pdCA9IGZ1bmN0aW9uKHJlY29yZCkgewogICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXIsIHN1YnMgPSByZWNvcmQuc3ViczsKICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJSZWNvcmRzLCByZWNvcmQpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICByZXN0YXJ0T25FbWl0ICYmIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgfTsKICAgICAgICB2YXIgc3RhcnRCdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChidWZmZXJSZWNvcmRzKSB7CiAgICAgICAgICAgIHZhciBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbigpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChzdWJzKTsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgIHN1YnMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnVmZmVyUmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVtaXQocmVjb3JkXzEpOwogICAgICAgICAgICB9LCBidWZmZXJUaW1lU3Bhbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBpZiAoYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCAhPT0gbnVsbCAmJiBidWZmZXJDcmVhdGlvbkludGVydmFsID49IDApIHsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIHN0YXJ0QnVmZmVyLCBidWZmZXJDcmVhdGlvbkludGVydmFsLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVzdGFydE9uRW1pdCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgdmFyIGJ1ZmZlclRpbWVTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTI7CiAgICAgICAgICB2YXIgcmVjb3Jkc0NvcHkgPSBidWZmZXJSZWNvcmRzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciByZWNvcmRzQ29weV8xID0gX192YWx1ZXMocmVjb3Jkc0NvcHkpLCByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKTsgIXJlY29yZHNDb3B5XzFfMS5kb25lOyByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzQ29weV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXI7CiAgICAgICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgICAgICAgIG1heEJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCAmJiBlbWl0KHJlY29yZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmIChyZWNvcmRzQ29weV8xXzEgJiYgIXJlY29yZHNDb3B5XzFfMS5kb25lICYmIChfYTIgPSByZWNvcmRzQ29weV8xLnJldHVybikpIF9hMi5jYWxsKHJlY29yZHNDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKGJ1ZmZlclJlY29yZHMgPT09IG51bGwgfHwgYnVmZmVyUmVjb3JkcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnVmZmVyUmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlclJlY29yZHMuc2hpZnQoKS5idWZmZXIpOwogICAgICAgICAgfQogICAgICAgICAgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IG51bGwgfHwgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1ZmZlclRpbWVTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXJSZWNvcmRzID0gbnVsbDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGJ1ZmZlclRpbWVTdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gYnVmZmVyVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlclRvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IFtdOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciBidWZmZXIgPSBbXTsKICAgICAgICAgIGJ1ZmZlcnMucHVzaChidWZmZXIpOwogICAgICAgICAgdmFyIGNsb3NpbmdTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgZW1pdEJ1ZmZlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUoYnVmZmVycywgYnVmZmVyKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH07CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaXB0aW9uLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZW1pdEJ1ZmZlciwgbm9vcF8xLm5vb3ApKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciBidWZmZXJzXzEgPSBfX3ZhbHVlcyhidWZmZXJzKSwgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpOyAhYnVmZmVyc18xXzEuZG9uZTsgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IGJ1ZmZlcnNfMV8xLnZhbHVlOwogICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoYnVmZmVycy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChidWZmZXJzLnNoaWZ0KCkpOwogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUb2dnbGUgPSBidWZmZXJUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJXaGVuLmpzCnZhciByZXF1aXJlX2J1ZmZlcldoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcldoZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gbnVsbDsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXIgPSBudWxsOwogICAgICAgIHZhciBvcGVuQnVmZmVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBjbG9zaW5nU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xvc2luZ1N1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBiID0gYnVmZmVyOwogICAgICAgICAgYnVmZmVyID0gW107CiAgICAgICAgICBiICYmIHN1YnNjcmliZXIubmV4dChiKTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShjbG9zaW5nU2VsZWN0b3IoKSkuc3Vic2NyaWJlKGNsb3NpbmdTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG9wZW5CdWZmZXIsIG5vb3BfMS5ub29wKSk7CiAgICAgICAgfTsKICAgICAgICBvcGVuQnVmZmVyKCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPT09IG51bGwgfHwgYnVmZmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgJiYgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPSBjbG9zaW5nU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSBidWZmZXJXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY2F0Y2hFcnJvci5qcwp2YXIgcmVxdWlyZV9jYXRjaEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jYXRjaEVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYXRjaEVycm9yID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiBjYXRjaEVycm9yKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWIgPSBudWxsOwogICAgICAgIHZhciBzeW5jVW5zdWIgPSBmYWxzZTsKICAgICAgICB2YXIgaGFuZGxlZFJlc3VsdDsKICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIGhhbmRsZWRSZXN1bHQgPSBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZXJyLCBjYXRjaEVycm9yKHNlbGVjdG9yKShzb3VyY2UpKSk7CiAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN5bmNVbnN1YiA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIGlmIChzeW5jVW5zdWIpIHsKICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2F0Y2hFcnJvciA9IGNhdGNoRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zY2FuSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX3NjYW5JbnRlcm5hbHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW5JbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjYW5JbnRlcm5hbHMgPSB2b2lkIDA7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgaGFzU2VlZCwgZW1pdE9uTmV4dCwgZW1pdEJlZm9yZUNvbXBsZXRlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaGFzU3RhdGUgPSBoYXNTZWVkOwogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGkgPSBpbmRleCsrOwogICAgICAgICAgc3RhdGUgPSBoYXNTdGF0ZSA/IGFjY3VtdWxhdG9yKHN0YXRlLCB2YWx1ZSwgaSkgOiAoaGFzU3RhdGUgPSB0cnVlLCB2YWx1ZSk7CiAgICAgICAgICBlbWl0T25OZXh0ICYmIHN1YnNjcmliZXIubmV4dChzdGF0ZSk7CiAgICAgICAgfSwgZW1pdEJlZm9yZUNvbXBsZXRlICYmIGZ1bmN0aW9uKCkgewogICAgICAgICAgaGFzU3RhdGUgJiYgc3Vic2NyaWJlci5uZXh0KHN0YXRlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5zY2FuSW50ZXJuYWxzID0gc2NhbkludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcwp2YXIgcmVxdWlyZV9yZWR1Y2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVkdWNlID0gdm9pZCAwOwogICAgdmFyIHNjYW5JbnRlcm5hbHNfMSA9IHJlcXVpcmVfc2NhbkludGVybmFscygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gcmVkdWNlKGFjY3VtdWxhdG9yLCBzZWVkKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShzY2FuSW50ZXJuYWxzXzEuc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCBmYWxzZSwgdHJ1ZSkpOwogICAgfQogICAgZXhwb3J0czIucmVkdWNlID0gcmVkdWNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdG9BcnJheS5qcwp2YXIgcmVxdWlyZV90b0FycmF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90b0FycmF5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50b0FycmF5ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBhcnJSZWR1Y2VyID0gZnVuY3Rpb24oYXJyLCB2YWx1ZSkgewogICAgICByZXR1cm4gYXJyLnB1c2godmFsdWUpLCBhcnI7CiAgICB9OwogICAgZnVuY3Rpb24gdG9BcnJheTIoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZWR1Y2VfMS5yZWR1Y2UoYXJyUmVkdWNlciwgW10pKHNvdXJjZSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRvQXJyYXkgPSB0b0FycmF5MjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2pvaW5BbGxJbnRlcm5hbHMuanMKdmFyIHJlcXVpcmVfam9pbkFsbEludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvam9pbkFsbEludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuam9pbkFsbEludGVybmFscyA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIG1hcE9uZU9yTWFueUFyZ3NfMSA9IHJlcXVpcmVfbWFwT25lT3JNYW55QXJncygpOwogICAgdmFyIHBpcGVfMSA9IHJlcXVpcmVfcGlwZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgZnVuY3Rpb24gam9pbkFsbEludGVybmFscyhqb2luRm4sIHByb2plY3QpIHsKICAgICAgcmV0dXJuIHBpcGVfMS5waXBlKHRvQXJyYXlfMTIudG9BcnJheSgpLCBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKHNvdXJjZXMpIHsKICAgICAgICByZXR1cm4gam9pbkZuKHNvdXJjZXMpOwogICAgICB9KSwgcHJvamVjdCA/IG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHByb2plY3QpIDogaWRlbnRpdHlfMS5pZGVudGl0eSk7CiAgICB9CiAgICBleHBvcnRzMi5qb2luQWxsSW50ZXJuYWxzID0gam9pbkFsbEludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdEFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUxhdGVzdEFsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IHZvaWQgMDsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIHZhciBqb2luQWxsSW50ZXJuYWxzXzEgPSByZXF1aXJlX2pvaW5BbGxJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QsIHByb2plY3QpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IGNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lQWxsLmpzCnZhciByZXF1aXJlX2NvbWJpbmVBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVBbGwgPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdEFsbF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0QWxsKCk7CiAgICBleHBvcnRzMi5jb21iaW5lQWxsID0gY29tYmluZUxhdGVzdEFsbF8xLmNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gdm9pZCAwOwogICAgdmFyIGNvbWJpbmVMYXRlc3RfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHJldHVybiByZXN1bHRTZWxlY3RvciA/IHBpcGVfMS5waXBlKGNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSwgbWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbWJpbmVMYXRlc3RfMS5jb21iaW5lTGF0ZXN0SW5pdChfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKSkpKShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gY29tYmluZUxhdGVzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RXaXRoLmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3RXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0V2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0MigpOwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJTb3VyY2VzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBjb21iaW5lTGF0ZXN0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcwp2YXIgcmVxdWlyZV9jb25jYXRNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBjb25jYXRNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSA/IG1lcmdlTWFwXzEubWVyZ2VNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IsIDEpIDogbWVyZ2VNYXBfMS5tZXJnZU1hcChwcm9qZWN0LCAxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcCA9IGNvbmNhdE1hcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcFRvLmpzCnZhciByZXF1aXJlX2NvbmNhdE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0TWFwXzEgPSByZXF1aXJlX2NvbmNhdE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gY29uY2F0TWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gY29uY2F0TWFwXzEuY29uY2F0TWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IGNvbmNhdE1hcF8xLmNvbmNhdE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gY29uY2F0TWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbmNhdEFsbF8xLmNvbmNhdEFsbCgpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb25jYXQgPSBjb25jYXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRXaXRoLmpzCnZhciByZXF1aXJlX2NvbmNhdFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdDIoKTsKICAgIGZ1bmN0aW9uIGNvbmNhdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSBjb25jYXRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMKdmFyIHJlcXVpcmVfZnJvbVN1YnNjcmliYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZyb21TdWJzY3JpYmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBmcm9tU3Vic2NyaWJhYmxlKHN1YnNjcmliYWJsZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJhYmxlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU3Vic2NyaWJhYmxlID0gZnJvbVN1YnNjcmliYWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QuanMKdmFyIHJlcXVpcmVfY29ubmVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29ubmVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29ubmVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgZnJvbVN1YnNjcmliYWJsZV8xID0gcmVxdWlyZV9mcm9tU3Vic2NyaWJhYmxlKCk7CiAgICB2YXIgREVGQVVMVF9DT05GSUcgPSB7CiAgICAgIGNvbm5lY3RvcjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gY29ubmVjdChzZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIGlmIChjb25maWcgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZyA9IERFRkFVTFRfQ09ORklHOwogICAgICB9CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZnJvbVN1YnNjcmliYWJsZV8xLmZyb21TdWJzY3JpYmFibGUoc3ViamVjdCkpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc291cmNlLnN1YnNjcmliZShzdWJqZWN0KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdCA9IGNvbm5lY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb3VudC5qcwp2YXIgcmVxdWlyZV9jb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvdW50ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIGZ1bmN0aW9uIGNvdW50KHByZWRpY2F0ZSkgewogICAgICByZXR1cm4gcmVkdWNlXzEucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB2YWx1ZSwgaSkgewogICAgICAgIHJldHVybiAhcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaSkgPyB0b3RhbCArIDEgOiB0b3RhbDsKICAgICAgfSwgMCk7CiAgICB9CiAgICBleHBvcnRzMi5jb3VudCA9IGNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2UuanMKdmFyIHJlcXVpcmVfZGVib3VuY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVib3VuY2UoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGVtaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZHVyYXRpb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbWl0LCBub29wXzEubm9vcCk7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb25TZWxlY3Rvcih2YWx1ZSkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXIpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IGRlYm91bmNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzCnZhciByZXF1aXJlX2RlYm91bmNlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWJvdW5jZVRpbWUoZHVlVGltZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFRpbWUgPSBudWxsOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSBudWxsOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUoKSB7CiAgICAgICAgICB2YXIgdGFyZ2V0VGltZSA9IGxhc3RUaW1lICsgZHVlVGltZTsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gdGhpcy5zY2hlZHVsZSh2b2lkIDAsIHRhcmdldFRpbWUgLSBub3cpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgZW1pdCgpOwogICAgICAgIH0KICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7CiAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTsKICAgICAgICAgIGlmICghYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVib3VuY2VUaW1lID0gZGVib3VuY2VUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVmYXVsdElmRW1wdHkuanMKdmFyIHJlcXVpcmVfZGVmYXVsdElmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlZmF1bHRJZkVtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWZhdWx0SWZFbXB0eShkZWZhdWx0VmFsdWUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGVmYXVsdFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdElmRW1wdHkgPSBkZWZhdWx0SWZFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2UuanMKdmFyIHJlcXVpcmVfdGFrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZSA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2UoY291bnQpIHsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgaWYgKCsrc2VlbiA8PSBjb3VudCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICBpZiAoY291bnQgPD0gc2VlbikgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlID0gdGFrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzLmpzCnZhciByZXF1aXJlX2lnbm9yZUVsZW1lbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pZ25vcmVFbGVtZW50cy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZnVuY3Rpb24gaWdub3JlRWxlbWVudHMoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlnbm9yZUVsZW1lbnRzID0gaWdub3JlRWxlbWVudHM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXBUby5qcwp2YXIgcmVxdWlyZV9tYXBUbyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcFRvID0gdm9pZCAwOwogICAgdmFyIG1hcF8xID0gcmVxdWlyZV9tYXAoKTsKICAgIGZ1bmN0aW9uIG1hcFRvKHZhbHVlKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hcFRvID0gbWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMKdmFyIHJlcXVpcmVfZGVsYXlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBjb25jYXRfMSA9IHJlcXVpcmVfY29uY2F0KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgaWdub3JlRWxlbWVudHNfMSA9IHJlcXVpcmVfaWdub3JlRWxlbWVudHMoKTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVsYXlXaGVuKGRlbGF5RHVyYXRpb25TZWxlY3Rvciwgc3Vic2NyaXB0aW9uRGVsYXkpIHsKICAgICAgaWYgKHN1YnNjcmlwdGlvbkRlbGF5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIGNvbmNhdF8xLmNvbmNhdChzdWJzY3JpcHRpb25EZWxheS5waXBlKHRha2VfMS50YWtlKDEpLCBpZ25vcmVFbGVtZW50c18xLmlnbm9yZUVsZW1lbnRzKCkpLCBzb3VyY2UucGlwZShkZWxheVdoZW4oZGVsYXlEdXJhdGlvblNlbGVjdG9yKSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShkZWxheUR1cmF0aW9uU2VsZWN0b3IodmFsdWUsIGluZGV4KSkucGlwZSh0YWtlXzEudGFrZSgxKSwgbWFwVG9fMS5tYXBUbyh2YWx1ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IGRlbGF5V2hlbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5LmpzCnZhciByZXF1aXJlX2RlbGF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVsYXkgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGRlbGF5KGR1ZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uID0gdGltZXJfMS50aW1lcihkdWUsIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGR1cmF0aW9uOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5ID0gZGVsYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZW1hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX2RlbWF0ZXJpYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbWF0ZXJpYWxpemUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGRlbWF0ZXJpYWxpemUoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihub3RpZmljYXRpb24pIHsKICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25fMS5vYnNlcnZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcik7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSBkZW1hdGVyaWFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3QuanMKdmFyIHJlcXVpcmVfZGlzdGluY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGlzdGluY3Qoa2V5U2VsZWN0b3IsIGZsdXNoZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBkaXN0aW5jdEtleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIga2V5ID0ga2V5U2VsZWN0b3IgPyBrZXlTZWxlY3Rvcih2YWx1ZSkgOiB2YWx1ZTsKICAgICAgICAgIGlmICghZGlzdGluY3RLZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgIGRpc3RpbmN0S2V5cy5hZGQoa2V5KTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgICAgZmx1c2hlcyAmJiBpbm5lckZyb21fMS5pbm5lckZyb20oZmx1c2hlcykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBkaXN0aW5jdEtleXMuY2xlYXIoKTsKICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0ID0gZGlzdGluY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZC5qcwp2YXIgcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbENoYW5nZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gdm9pZCAwOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQoY29tcGFyYXRvciwga2V5U2VsZWN0b3IpIHsKICAgICAgaWYgKGtleVNlbGVjdG9yID09PSB2b2lkIDApIHsKICAgICAgICBrZXlTZWxlY3RvciA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgIT09IG51bGwgJiYgY29tcGFyYXRvciAhPT0gdm9pZCAwID8gY29tcGFyYXRvciA6IGRlZmF1bHRDb21wYXJlOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXZpb3VzS2V5OwogICAgICAgIHZhciBmaXJzdCA9IHRydWU7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBjdXJyZW50S2V5ID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgaWYgKGZpcnN0IHx8ICFjb21wYXJhdG9yKHByZXZpb3VzS2V5LCBjdXJyZW50S2V5KSkgewogICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICBwcmV2aW91c0tleSA9IGN1cnJlbnRLZXk7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ7CiAgICBmdW5jdGlvbiBkZWZhdWx0Q29tcGFyZShhLCBiKSB7CiAgICAgIHJldHVybiBhID09PSBiOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbEtleUNoYW5nZWQuanMKdmFyIHJlcXVpcmVfZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IHZvaWQgMDsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoa2V5LCBjb21wYXJlKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkKGZ1bmN0aW9uKHgsIHkpIHsKICAgICAgICByZXR1cm4gY29tcGFyZSA/IGNvbXBhcmUoeFtrZXldLCB5W2tleV0pIDogeFtrZXldID09PSB5W2tleV07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcwp2YXIgcmVxdWlyZV90aHJvd0lmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRocm93SWZFbXB0eShlcnJvckZhY3RvcnkpIHsKICAgICAgaWYgKGVycm9yRmFjdG9yeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZXJyb3JGYWN0b3J5ID0gZGVmYXVsdEVycm9yRmFjdG9yeTsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaGFzVmFsdWUgPyBzdWJzY3JpYmVyLmNvbXBsZXRlKCkgOiBzdWJzY3JpYmVyLmVycm9yKGVycm9yRmFjdG9yeSgpKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdGhyb3dJZkVtcHR5OwogICAgZnVuY3Rpb24gZGVmYXVsdEVycm9yRmFjdG9yeSgpIHsKICAgICAgcmV0dXJuIG5ldyBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcigpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzCnZhciByZXF1aXJlX2VsZW1lbnRBdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSB2b2lkIDA7CiAgICB2YXIgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JfMSA9IHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGhyb3dJZkVtcHR5XzEgPSByZXF1aXJlX3Rocm93SWZFbXB0eSgpOwogICAgdmFyIGRlZmF1bHRJZkVtcHR5XzEgPSByZXF1aXJlX2RlZmF1bHRJZkVtcHR5KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICBmdW5jdGlvbiBlbGVtZW50QXQoaW5kZXgsIGRlZmF1bHRWYWx1ZSkgewogICAgICBpZiAoaW5kZXggPCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgfQogICAgICB2YXIgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcl8xLmZpbHRlcihmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICByZXR1cm4gaSA9PT0gaW5kZXg7CiAgICAgICAgfSksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSBlbGVtZW50QXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9lbmRXaXRoLmpzCnZhciByZXF1aXJlX2VuZFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2VuZFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVuZFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIG9mXzEgPSByZXF1aXJlX29mKCk7CiAgICBmdW5jdGlvbiBlbmRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25jYXRfMS5jb25jYXQoc291cmNlLCBvZl8xLm9mLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbmRXaXRoID0gZW5kV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5LmpzCnZhciByZXF1aXJlX2V2ZXJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9ldmVyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXZlcnkgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZXZlcnkocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpZiAoIXByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCsrLCBzb3VyY2UpKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXZlcnkgPSBldmVyeTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RNYXAuanMKdmFyIHJlcXVpcmVfZXhoYXVzdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGV4aGF1c3RNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgICByZXR1cm4gaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpLnBpcGUobWFwXzEubWFwKGZ1bmN0aW9uKGIsIGlpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yKGEsIGIsIGksIGlpKTsKICAgICAgICAgICAgfSkpOwogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgdmFyIGlubmVyU3ViID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKG91dGVyVmFsdWUpIHsKICAgICAgICAgIGlmICghaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdChvdXRlclZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKGlubmVyU3ViKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgIWlubmVyU3ViICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IGV4aGF1c3RNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsLmpzCnZhciByZXF1aXJlX2V4aGF1c3RBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSB2b2lkIDA7CiAgICB2YXIgZXhoYXVzdE1hcF8xID0gcmVxdWlyZV9leGhhdXN0TWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RBbGwoKSB7CiAgICAgIHJldHVybiBleGhhdXN0TWFwXzEuZXhoYXVzdE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSBleGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdC5qcwp2YXIgcmVxdWlyZV9leGhhdXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leGhhdXN0ID0gdm9pZCAwOwogICAgdmFyIGV4aGF1c3RBbGxfMSA9IHJlcXVpcmVfZXhoYXVzdEFsbCgpOwogICAgZXhwb3J0czIuZXhoYXVzdCA9IGV4aGF1c3RBbGxfMS5leGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzCnZhciByZXF1aXJlX2V4cGFuZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leHBhbmQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbWVyZ2VJbnRlcm5hbHNfMSA9IHJlcXVpcmVfbWVyZ2VJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGV4cGFuZChwcm9qZWN0LCBjb25jdXJyZW50LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICBjb25jdXJyZW50ID0gKGNvbmN1cnJlbnQgfHwgMCkgPCAxID8gSW5maW5pdHkgOiBjb25jdXJyZW50OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCB2b2lkIDAsIHRydWUsIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhwYW5kID0gZXhwYW5kOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUuanMKdmFyIHJlcXVpcmVfZmluYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpbmFsaXplLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIGZ1bmN0aW9uIGZpbmFsaXplKGNhbGxiYWNrKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgc3Vic2NyaWJlci5hZGQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IGZpbmFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZC5qcwp2YXIgcmVxdWlyZV9maW5kID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVGaW5kID0gZXhwb3J0czIuZmluZCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaW5kKHByZWRpY2F0ZSwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsICJ2YWx1ZSIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbmQgPSBmaW5kOwogICAgZnVuY3Rpb24gY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsIGVtaXQpIHsKICAgICAgdmFyIGZpbmRJbmRleCA9IGVtaXQgPT09ICJpbmRleCI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgaSA9IGluZGV4Kys7CiAgICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGksIHNvdXJjZSkpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZpbmRJbmRleCA/IGkgOiB2YWx1ZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyAtMSA6IHZvaWQgMCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlRmluZCA9IGNyZWF0ZUZpbmQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMKdmFyIHJlcXVpcmVfZmluZEluZGV4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbmRJbmRleCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBmaW5kXzEgPSByZXF1aXJlX2ZpbmQoKTsKICAgIGZ1bmN0aW9uIGZpbmRJbmRleChwcmVkaWNhdGUsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZpbmRfMS5jcmVhdGVGaW5kKHByZWRpY2F0ZSwgdGhpc0FyZywgImluZGV4IikpOwogICAgfQogICAgZXhwb3J0czIuZmluZEluZGV4ID0gZmluZEluZGV4OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QuanMKdmFyIHJlcXVpcmVfZmlyc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpcnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdCA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgZGVmYXVsdElmRW1wdHlfMSA9IHJlcXVpcmVfZGVmYXVsdElmRW1wdHkoKTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGZpcnN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuZmlyc3QgPSBmaXJzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2dyb3VwQnkuanMKdmFyIHJlcXVpcmVfZ3JvdXBCeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZ3JvdXBCeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ3JvdXBCeSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZ3JvdXBCeShrZXlTZWxlY3RvciwgZWxlbWVudE9yT3B0aW9ucywgZHVyYXRpb24sIGNvbm5lY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgaWYgKCFlbGVtZW50T3JPcHRpb25zIHx8IHR5cGVvZiBlbGVtZW50T3JPcHRpb25zID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9uczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZHVyYXRpb24gPSBlbGVtZW50T3JPcHRpb25zLmR1cmF0aW9uLCBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9ucy5lbGVtZW50LCBjb25uZWN0b3IgPSBlbGVtZW50T3JPcHRpb25zLmNvbm5lY3RvcjsKICAgICAgICB9CiAgICAgICAgdmFyIGdyb3VwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgdmFyIG5vdGlmeSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBncm91cHMuZm9yRWFjaChjYik7CiAgICAgICAgICBjYihzdWJzY3JpYmVyKTsKICAgICAgICB9OwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIG5vdGlmeShmdW5jdGlvbihjb25zdW1lcikgewogICAgICAgICAgICByZXR1cm4gY29uc3VtZXIuZXJyb3IoZXJyKTsKICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGFjdGl2ZUdyb3VwcyA9IDA7CiAgICAgICAgdmFyIHRlYXJkb3duQXR0ZW1wdGVkID0gZmFsc2U7CiAgICAgICAgdmFyIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyID0gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcl8xLk9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGtleV8xID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgICB2YXIgZ3JvdXBfMSA9IGdyb3Vwcy5nZXQoa2V5XzEpOwogICAgICAgICAgICBpZiAoIWdyb3VwXzEpIHsKICAgICAgICAgICAgICBncm91cHMuc2V0KGtleV8xLCBncm91cF8xID0gY29ubmVjdG9yID8gY29ubmVjdG9yKCkgOiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgICAgICAgdmFyIGdyb3VwZWQgPSBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXlfMSwgZ3JvdXBfMSk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGdyb3VwZWQpOwogICAgICAgICAgICAgIGlmIChkdXJhdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGdyb3VwXzEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBncm91cF8xLmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkdXJhdGlvblN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBzLmRlbGV0ZShrZXlfMSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb24oZ3JvdXBlZCkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXJfMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBncm91cF8xLm5leHQoZWxlbWVudCA/IGVsZW1lbnQodmFsdWUpIDogdmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbm90aWZ5KGZ1bmN0aW9uKGNvbnN1bWVyKSB7CiAgICAgICAgICAgIHJldHVybiBjb25zdW1lci5jb21wbGV0ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGdyb3Vwcy5jbGVhcigpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgdGVhcmRvd25BdHRlbXB0ZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGFjdGl2ZUdyb3VwcyA9PT0gMDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyKTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXksIGdyb3VwU3ViamVjdCkgewogICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihncm91cFN1YnNjcmliZXIpIHsKICAgICAgICAgICAgYWN0aXZlR3JvdXBzKys7CiAgICAgICAgICAgIHZhciBpbm5lclN1YiA9IGdyb3VwU3ViamVjdC5zdWJzY3JpYmUoZ3JvdXBTdWJzY3JpYmVyKTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgLS1hY3RpdmVHcm91cHMgPT09IDAgJiYgdGVhcmRvd25BdHRlbXB0ZWQgJiYgZ3JvdXBCeVNvdXJjZVN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmVzdWx0LmtleSA9IGtleTsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmdyb3VwQnkgPSBncm91cEJ5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eS5qcwp2YXIgcmVxdWlyZV9pc0VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pc0VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0VtcHR5ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGlzRW1wdHkoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJ1ZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzRW1wdHkgPSBpc0VtcHR5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZUxhc3QuanMKdmFyIHJlcXVpcmVfdGFrZUxhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2VMYXN0KGNvdW50KSB7CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgIGNvdW50IDwgYnVmZmVyLmxlbmd0aCAmJiBidWZmZXIuc2hpZnQoKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzEsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyXzEgPSBfX3ZhbHVlcyhidWZmZXIpLCBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpOyAhYnVmZmVyXzFfMS5kb25lOyBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYnVmZmVyXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICBlXzEgPSB7IGVycm9yOiBlXzFfMSB9OwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoYnVmZmVyXzFfMSAmJiAhYnVmZmVyXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcl8xLnJldHVybikpIF9hLmNhbGwoYnVmZmVyXzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHRha2VMYXN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbGFzdC5qcwp2YXIgcmVxdWlyZV9sYXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9sYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIHZhciB0YWtlTGFzdF8xID0gcmVxdWlyZV90YWtlTGFzdCgpOwogICAgdmFyIHRocm93SWZFbXB0eV8xID0gcmVxdWlyZV90aHJvd0lmRW1wdHkoKTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiBsYXN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VMYXN0XzEudGFrZUxhc3QoMSksIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5XzEuZGVmYXVsdElmRW1wdHkoZGVmYXVsdFZhbHVlKSA6IHRocm93SWZFbXB0eV8xLnRocm93SWZFbXB0eShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5sYXN0ID0gbGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX21hdGVyaWFsaXplID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hdGVyaWFsaXplKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlTmV4dCh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbi5jcmVhdGVDb21wbGV0ZSgpKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlRXJyb3IoZXJyKSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hdGVyaWFsaXplID0gbWF0ZXJpYWxpemU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMKdmFyIHJlcXVpcmVfbWF4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1heCA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtYXgoY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpID4gMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4ID4geSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1heCA9IG1heDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAuanMKdmFyIHJlcXVpcmVfZmxhdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmxhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IG1lcmdlTWFwXzEubWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcFRvLmpzCnZhciByZXF1aXJlX21lcmdlTWFwVG8gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VNYXBfMSA9IHJlcXVpcmVfbWVyZ2VNYXAoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIG1lcmdlTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgICAgfSwgcmVzdWx0U2VsZWN0b3IsIGNvbmN1cnJlbnQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIGNvbmN1cnJlbnQpOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VNYXBUbyA9IG1lcmdlTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMKdmFyIHJlcXVpcmVfbWVyZ2VTY2FuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlU2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBtZXJnZUludGVybmFsc18xID0gcmVxdWlyZV9tZXJnZUludGVybmFscygpOwogICAgZnVuY3Rpb24gbWVyZ2VTY2FuKGFjY3VtdWxhdG9yLCBzZWVkLCBjb25jdXJyZW50KSB7CiAgICAgIGlmIChjb25jdXJyZW50ID09PSB2b2lkIDApIHsKICAgICAgICBjb25jdXJyZW50ID0gSW5maW5pdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcihzdGF0ZSwgdmFsdWUsIGluZGV4KTsKICAgICAgICB9LCBjb25jdXJyZW50LCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3RhdGUgPSB2YWx1ZTsKICAgICAgICB9LCBmYWxzZSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdGF0ZSA9IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VTY2FuID0gbWVyZ2VTY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgYXJnc09yQXJnQXJyYXlfMSA9IHJlcXVpcmVfYXJnc09yQXJnQXJyYXkoKTsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gbWVyZ2UyKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIGNvbmN1cnJlbnQgPSBhcmdzXzEucG9wTnVtYmVyKGFyZ3MsIEluZmluaXR5KTsKICAgICAgYXJncyA9IGFyZ3NPckFyZ0FycmF5XzEuYXJnc09yQXJnQXJyYXkoYXJncyk7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBtZXJnZUFsbF8xLm1lcmdlQWxsKGNvbmN1cnJlbnQpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcwp2YXIgcmVxdWlyZV9tZXJnZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gdm9pZCAwOwogICAgdmFyIG1lcmdlXzEgPSByZXF1aXJlX21lcmdlMigpOwogICAgZnVuY3Rpb24gbWVyZ2VXaXRoMigpIHsKICAgICAgdmFyIG90aGVyU291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIG90aGVyU291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMKdmFyIHJlcXVpcmVfbWluID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1pbiA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtaW4oY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpIDwgMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4IDwgeSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1pbiA9IG1pbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcwp2YXIgcmVxdWlyZV9tdWx0aWNhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubXVsdGljYXN0ID0gdm9pZCAwOwogICAgdmFyIENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9Db25uZWN0YWJsZU9ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIGZ1bmN0aW9uIG11bHRpY2FzdChzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSwgc2VsZWN0b3IpIHsKICAgICAgdmFyIHN1YmplY3RGYWN0b3J5ID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc3ViamVjdE9yU3ViamVjdEZhY3RvcnkpID8gc3ViamVjdE9yU3ViamVjdEZhY3RvcnkgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc3ViamVjdE9yU3ViamVjdEZhY3Rvcnk7CiAgICAgIH07CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihzZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gY29ubmVjdF8xLmNvbm5lY3Qoc2VsZWN0b3IsIHsKICAgICAgICAgIGNvbm5lY3Rvcjogc3ViamVjdEZhY3RvcnkKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGUoc291cmNlLCBzdWJqZWN0RmFjdG9yeSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tdWx0aWNhc3QgPSBtdWx0aWNhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMKdmFyIHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHRXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgb25FcnJvclJlc3VtZU5leHRfMSA9IHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHQoKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0V2l0aCgpIHsKICAgICAgdmFyIHNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBzb3VyY2VzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIG5leHRTb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShzb3VyY2VzKTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbc291cmNlXSwgX19yZWFkKG5leHRTb3VyY2VzKSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gb25FcnJvclJlc3VtZU5leHRXaXRoOwogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHQgPSBvbkVycm9yUmVzdW1lTmV4dFdpdGg7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wYWlyd2lzZS5qcwp2YXIgcmVxdWlyZV9wYWlyd2lzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcGFpcndpc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhaXJ3aXNlID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHBhaXJ3aXNlKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXY7CiAgICAgICAgdmFyIGhhc1ByZXYgPSBmYWxzZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIHAgPSBwcmV2OwogICAgICAgICAgcHJldiA9IHZhbHVlOwogICAgICAgICAgaGFzUHJldiAmJiBzdWJzY3JpYmVyLm5leHQoW3AsIHZhbHVlXSk7CiAgICAgICAgICBoYXNQcmV2ID0gdHJ1ZTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGFpcndpc2UgPSBwYWlyd2lzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3BsdWNrLmpzCnZhciByZXF1aXJlX3BsdWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wbHVjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGx1Y2sgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgZnVuY3Rpb24gcGx1Y2soKSB7CiAgICAgIHZhciBwcm9wZXJ0aWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgcHJvcGVydGllc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBsZW5ndGggPSBwcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgaWYgKGxlbmd0aCA9PT0gMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigibGlzdCBvZiBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBlbXB0eS4iKTsKICAgICAgfQogICAgICByZXR1cm4gbWFwXzEubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICB2YXIgY3VycmVudFByb3AgPSB4OwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBwID0gY3VycmVudFByb3AgPT09IG51bGwgfHwgY3VycmVudFByb3AgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRQcm9wW3Byb3BlcnRpZXNbaV1dOwogICAgICAgICAgaWYgKHR5cGVvZiBwICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBjdXJyZW50UHJvcCA9IHA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY3VycmVudFByb3A7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGx1Y2sgPSBwbHVjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2guanMKdmFyIHJlcXVpcmVfcHVibGlzaCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBtdWx0aWNhc3RfMSA9IHJlcXVpcmVfbXVsdGljYXN0KCk7CiAgICB2YXIgY29ubmVjdF8xID0gcmVxdWlyZV9jb25uZWN0KCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBzZWxlY3RvciA/IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdChzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfSA6IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBtdWx0aWNhc3RfMS5tdWx0aWNhc3QobmV3IFN1YmplY3RfMS5TdWJqZWN0KCkpKHNvdXJjZSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoID0gcHVibGlzaDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaEJlaGF2aW9yID0gdm9pZCAwOwogICAgdmFyIEJlaGF2aW9yU3ViamVjdF8xID0gcmVxdWlyZV9CZWhhdmlvclN1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoQmVoYXZpb3IoaW5pdGlhbFZhbHVlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICB2YXIgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3QoaW5pdGlhbFZhbHVlKTsKICAgICAgICByZXR1cm4gbmV3IENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZShzb3VyY2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YmplY3Q7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoQmVoYXZpb3IgPSBwdWJsaXNoQmVoYXZpb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoTGFzdC5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoTGFzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaExhc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU3ViamVjdF8xID0gcmVxdWlyZV9Bc3luY1N1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoTGFzdCgpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlXzEuQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gc3ViamVjdDsKICAgICAgICB9KTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gcHVibGlzaExhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoUmVwbGF5LmpzCnZhciByZXF1aXJlX3B1Ymxpc2hSZXBsYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSB2b2lkIDA7CiAgICB2YXIgUmVwbGF5U3ViamVjdF8xID0gcmVxdWlyZV9SZXBsYXlTdWJqZWN0KCk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gcHVibGlzaFJlcGxheShidWZmZXJTaXplLCB3aW5kb3dUaW1lLCBzZWxlY3Rvck9yU2NoZWR1bGVyLCB0aW1lc3RhbXBQcm92aWRlcikgewogICAgICBpZiAoc2VsZWN0b3JPclNjaGVkdWxlciAmJiAhaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICB0aW1lc3RhbXBQcm92aWRlciA9IHNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIHNlbGVjdG9yID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikgPyBzZWxlY3Rvck9yU2NoZWR1bGVyIDogdm9pZCAwOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG11bHRpY2FzdF8xLm11bHRpY2FzdChuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIpLCBzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBwdWJsaXNoUmVwbGF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmFjZVdpdGguanMKdmFyIHJlcXVpcmVfcmFjZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JhY2VXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yYWNlV2l0aCA9IHZvaWQgMDsKICAgIHZhciByYWNlXzEgPSByZXF1aXJlX3JhY2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcmFjZVdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gIW90aGVyU291cmNlcy5sZW5ndGggPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmFjZV8xLnJhY2VJbml0KF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChvdGhlclNvdXJjZXMpKSkoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmFjZVdpdGggPSByYWNlV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcwp2YXIgcmVxdWlyZV9yZXBlYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVwZWF0ID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gcmVwZWF0Mihjb3VudE9yQ29uZmlnKSB7CiAgICAgIHZhciBfYTsKICAgICAgdmFyIGNvdW50ID0gSW5maW5pdHk7CiAgICAgIHZhciBkZWxheTsKICAgICAgaWYgKGNvdW50T3JDb25maWcgIT0gbnVsbCkgewogICAgICAgIGlmICh0eXBlb2YgY291bnRPckNvbmZpZyA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIF9hID0gY291bnRPckNvbmZpZy5jb3VudCwgY291bnQgPSBfYSA9PT0gdm9pZCAwID8gSW5maW5pdHkgOiBfYSwgZGVsYXkgPSBjb3VudE9yQ29uZmlnLmRlbGF5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb3VudCA9IGNvdW50T3JDb25maWc7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc29GYXIgPSAwOwogICAgICAgIHZhciBzb3VyY2VTdWI7CiAgICAgICAgdmFyIHJlc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzb3VyY2VTdWIgPT09IG51bGwgfHwgc291cmNlU3ViID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNvdXJjZVN1YiA9IG51bGw7CiAgICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCkgewogICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoc29GYXIpKTsKICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIG5vdGlmaWVyU3Vic2NyaWJlcl8xLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlVG9Tb3VyY2UoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG5vdGlmaWVyLnN1YnNjcmliZShub3RpZmllclN1YnNjcmliZXJfMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZVRvU291cmNlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBzb3VyY2VTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoKytzb0ZhciA8IGNvdW50KSB7CiAgICAgICAgICAgICAgaWYgKHNvdXJjZVN1YikgewogICAgICAgICAgICAgICAgcmVzdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Vuc3ViKSB7CiAgICAgICAgICAgIHJlc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdCA9IHJlcGVhdDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuLmpzCnZhciByZXF1aXJlX3JlcGVhdFdoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdFdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJlcGVhdFdoZW4obm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbm5lclN1YjsKICAgICAgICB2YXIgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgdmFyIGNvbXBsZXRpb25zJDsKICAgICAgICB2YXIgaXNOb3RpZmllckNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc01haW5Db21wbGV0ZSAmJiBpc05vdGlmaWVyQ29tcGxldGUgJiYgKHN1YnNjcmliZXIuY29tcGxldGUoKSwgdHJ1ZSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2V0Q29tcGxldGlvblN1YmplY3QgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghY29tcGxldGlvbnMkKSB7CiAgICAgICAgICAgIGNvbXBsZXRpb25zJCA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIoY29tcGxldGlvbnMkKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZUZvclJlcGVhdFdoZW4oKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Jlc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlzTm90aWZpZXJDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29tcGxldGlvbnMkOwogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJlcGVhdFdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgIWNoZWNrQ29tcGxldGUoKSAmJiBnZXRDb21wbGV0aW9uU3ViamVjdCgpLm5leHQoKTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIGlmIChzeW5jUmVzdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBzeW5jUmVzdWIgPSBmYWxzZTsKICAgICAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSByZXBlYXRXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnkuanMKdmFyIHJlcXVpcmVfcmV0cnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JldHJ5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXRyeSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHJldHJ5KGNvbmZpZ09yQ291bnQpIHsKICAgICAgaWYgKGNvbmZpZ09yQ291bnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZ09yQ291bnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICB2YXIgY29uZmlnOwogICAgICBpZiAoY29uZmlnT3JDb3VudCAmJiB0eXBlb2YgY29uZmlnT3JDb3VudCA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25maWcgPSBjb25maWdPckNvdW50OwogICAgICB9IGVsc2UgewogICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgIGNvdW50OiBjb25maWdPckNvdW50CiAgICAgICAgfTsKICAgICAgfQogICAgICB2YXIgX2EgPSBjb25maWcuY291bnQsIGNvdW50ID0gX2EgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2EsIGRlbGF5ID0gY29uZmlnLmRlbGF5LCBfYiA9IGNvbmZpZy5yZXNldE9uU3VjY2VzcywgcmVzZXRPblN1Y2Nlc3MgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYjsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHNvRmFyID0gMDsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJldHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChyZXNldE9uU3VjY2VzcykgewogICAgICAgICAgICAgIHNvRmFyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgaWYgKHNvRmFyKysgPCBjb3VudCkgewogICAgICAgICAgICAgIHZhciByZXN1Yl8xID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChkZWxheSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoZXJyLCBzb0ZhcikpOwogICAgICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBub3RpZmllclN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBub3RpZmllci5zdWJzY3JpYmUobm90aWZpZXJTdWJzY3JpYmVyXzEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgICAgaWYgKHN5bmNVbnN1YikgewogICAgICAgICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpOwogICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5KCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJldHJ5ID0gcmV0cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMKdmFyIHJlcXVpcmVfcmV0cnlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJldHJ5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gcmV0cnlXaGVuKG5vdGlmaWVyKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN5bmNSZXN1YiA9IGZhbHNlOwogICAgICAgIHZhciBlcnJvcnMkOwogICAgICAgIHZhciBzdWJzY3JpYmVGb3JSZXRyeVdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlubmVyU3ViID0gc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpZiAoIWVycm9ycyQpIHsKICAgICAgICAgICAgICBlcnJvcnMkID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKG5vdGlmaWVyKGVycm9ycyQpKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyU3ViID8gc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCkgOiBzeW5jUmVzdWIgPSB0cnVlOwogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZXJyb3JzJCkgewogICAgICAgICAgICAgIGVycm9ycyQubmV4dChlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Jlc3ViKSB7CiAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGlubmVyU3ViID0gbnVsbDsKICAgICAgICAgICAgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmV0cnlXaGVuID0gcmV0cnlXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzCnZhciByZXF1aXJlX3NhbXBsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNhbXBsZShub3RpZmllcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIHZhbHVlID0gbGFzdFZhbHVlOwogICAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2FtcGxlID0gc2FtcGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlVGltZS5qcwp2YXIgcmVxdWlyZV9zYW1wbGVUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgc2FtcGxlXzEgPSByZXF1aXJlX3NhbXBsZSgpOwogICAgdmFyIGludGVydmFsXzEgPSByZXF1aXJlX2ludGVydmFsKCk7CiAgICBmdW5jdGlvbiBzYW1wbGVUaW1lKHBlcmlvZCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZShpbnRlcnZhbF8xLmludGVydmFsKHBlcmlvZCwgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gc2FtcGxlVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBzY2FuSW50ZXJuYWxzXzEgPSByZXF1aXJlX3NjYW5JbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIHNjYW4oYWNjdW11bGF0b3IsIHNlZWQpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKHNjYW5JbnRlcm5hbHNfMS5zY2FuSW50ZXJuYWxzKGFjY3VtdWxhdG9yLCBzZWVkLCBhcmd1bWVudHMubGVuZ3RoID49IDIsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjYW4gPSBzY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2VxdWVuY2VFcXVhbC5qcwp2YXIgcmVxdWlyZV9zZXF1ZW5jZUVxdWFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zZXF1ZW5jZUVxdWFsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zZXF1ZW5jZUVxdWFsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBzZXF1ZW5jZUVxdWFsKGNvbXBhcmVUbywgY29tcGFyYXRvcikgewogICAgICBpZiAoY29tcGFyYXRvciA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29tcGFyYXRvciA9IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgIHJldHVybiBhID09PSBiOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBiU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oaXNFcXVhbCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGlzRXF1YWwpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIGNyZWF0ZVN1YnNjcmliZXIgPSBmdW5jdGlvbihzZWxmU3RhdGUsIG90aGVyU3RhdGUpIHsKICAgICAgICAgIHZhciBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihhKSB7CiAgICAgICAgICAgIHZhciBidWZmZXIgPSBvdGhlclN0YXRlLmJ1ZmZlciwgY29tcGxldGUgPSBvdGhlclN0YXRlLmNvbXBsZXRlOwogICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGNvbXBsZXRlID8gZW1pdChmYWxzZSkgOiBzZWxmU3RhdGUuYnVmZmVyLnB1c2goYSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIWNvbXBhcmF0b3IoYSwgYnVmZmVyLnNoaWZ0KCkpICYmIGVtaXQoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZlN0YXRlLmNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgdmFyIGNvbXBsZXRlID0gb3RoZXJTdGF0ZS5jb21wbGV0ZSwgYnVmZmVyID0gb3RoZXJTdGF0ZS5idWZmZXI7CiAgICAgICAgICAgIGNvbXBsZXRlICYmIGVtaXQoYnVmZmVyLmxlbmd0aCA9PT0gMCk7CiAgICAgICAgICAgIHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSBudWxsIHx8IHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gc2VxdWVuY2VFcXVhbFN1YnNjcmliZXI7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZVN1YnNjcmliZXIoYVN0YXRlLCBiU3RhdGUpKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY29tcGFyZVRvKS5zdWJzY3JpYmUoY3JlYXRlU3Vic2NyaWJlcihiU3RhdGUsIGFTdGF0ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNlcXVlbmNlRXF1YWwgPSBzZXF1ZW5jZUVxdWFsOwogICAgZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgYnVmZmVyOiBbXSwKICAgICAgICBjb21wbGV0ZTogZmFsc2UKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlLmpzCnZhciByZXF1aXJlX3NoYXJlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hhcmUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc2hhcmUob3B0aW9ucykgewogICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIHZhciBfYSA9IG9wdGlvbnMuY29ubmVjdG9yLCBjb25uZWN0b3IgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9IDogX2EsIF9iID0gb3B0aW9ucy5yZXNldE9uRXJyb3IsIHJlc2V0T25FcnJvciA9IF9iID09PSB2b2lkIDAgPyB0cnVlIDogX2IsIF9jID0gb3B0aW9ucy5yZXNldE9uQ29tcGxldGUsIHJlc2V0T25Db21wbGV0ZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gb3B0aW9ucy5yZXNldE9uUmVmQ291bnRaZXJvLCByZXNldE9uUmVmQ291bnRaZXJvID0gX2QgPT09IHZvaWQgMCA/IHRydWUgOiBfZDsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHdyYXBwZXJTb3VyY2UpIHsKICAgICAgICB2YXIgY29ubmVjdGlvbjsKICAgICAgICB2YXIgcmVzZXRDb25uZWN0aW9uOwogICAgICAgIHZhciBzdWJqZWN0OwogICAgICAgIHZhciByZWZDb3VudCA9IDA7CiAgICAgICAgdmFyIGhhc0NvbXBsZXRlZCA9IGZhbHNlOwogICAgICAgIHZhciBoYXNFcnJvcmVkID0gZmFsc2U7CiAgICAgICAgdmFyIGNhbmNlbFJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXNldENvbm5lY3Rpb24gPT09IG51bGwgfHwgcmVzZXRDb25uZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldENvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IHZvaWQgMDsKICAgICAgICB9OwogICAgICAgIHZhciByZXNldCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgIGNvbm5lY3Rpb24gPSBzdWJqZWN0ID0gdm9pZCAwOwogICAgICAgICAgaGFzQ29tcGxldGVkID0gaGFzRXJyb3JlZCA9IGZhbHNlOwogICAgICAgIH07CiAgICAgICAgdmFyIHJlc2V0QW5kVW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBjb25uID0gY29ubmVjdGlvbjsKICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICBjb25uID09PSBudWxsIHx8IGNvbm4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbm4udW5zdWJzY3JpYmUoKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICAgIHJlZkNvdW50Kys7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yZWQgJiYgIWhhc0NvbXBsZXRlZCkgewogICAgICAgICAgICBjYW5jZWxSZXNldCgpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlc3QgPSBzdWJqZWN0ID0gc3ViamVjdCAhPT0gbnVsbCAmJiBzdWJqZWN0ICE9PSB2b2lkIDAgPyBzdWJqZWN0IDogY29ubmVjdG9yKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmVmQ291bnQtLTsKICAgICAgICAgICAgaWYgKHJlZkNvdW50ID09PSAwICYmICFoYXNFcnJvcmVkICYmICFoYXNDb21wbGV0ZWQpIHsKICAgICAgICAgICAgICByZXNldENvbm5lY3Rpb24gPSBoYW5kbGVSZXNldChyZXNldEFuZFVuc3Vic2NyaWJlLCByZXNldE9uUmVmQ291bnRaZXJvKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBkZXN0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIGlmICghY29ubmVjdGlvbiAmJiByZWZDb3VudCA+IDApIHsKICAgICAgICAgICAgY29ubmVjdGlvbiA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIGhhc0Vycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uRXJyb3IsIGVycik7CiAgICAgICAgICAgICAgICBkZXN0LmVycm9yKGVycik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBoYXNDb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uQ29tcGxldGUpOwogICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpLnN1YnNjcmliZShjb25uZWN0aW9uKTsKICAgICAgICAgIH0KICAgICAgICB9KSh3cmFwcGVyU291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnNoYXJlID0gc2hhcmU7CiAgICBmdW5jdGlvbiBoYW5kbGVSZXNldChyZXNldCwgb24pIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gdHJ1ZSkgewogICAgICAgIHJlc2V0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gZmFsc2UpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIG9uU3Vic2NyaWJlciA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICByZXNldCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20ob24uYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSkuc3Vic2NyaWJlKG9uU3Vic2NyaWJlcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheS5qcwp2YXIgcmVxdWlyZV9zaGFyZVJlcGxheSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2hhcmVSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNoYXJlUmVwbGF5ID0gdm9pZCAwOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgdmFyIHNoYXJlXzEgPSByZXF1aXJlX3NoYXJlKCk7CiAgICBmdW5jdGlvbiBzaGFyZVJlcGxheShjb25maWdPckJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHNjaGVkdWxlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIGJ1ZmZlclNpemU7CiAgICAgIHZhciByZWZDb3VudCA9IGZhbHNlOwogICAgICBpZiAoY29uZmlnT3JCdWZmZXJTaXplICYmIHR5cGVvZiBjb25maWdPckJ1ZmZlclNpemUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgX2EgPSBjb25maWdPckJ1ZmZlclNpemUuYnVmZmVyU2l6ZSwgYnVmZmVyU2l6ZSA9IF9hID09PSB2b2lkIDAgPyBJbmZpbml0eSA6IF9hLCBfYiA9IGNvbmZpZ09yQnVmZmVyU2l6ZS53aW5kb3dUaW1lLCB3aW5kb3dUaW1lID0gX2IgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2IsIF9jID0gY29uZmlnT3JCdWZmZXJTaXplLnJlZkNvdW50LCByZWZDb3VudCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBzY2hlZHVsZXIgPSBjb25maWdPckJ1ZmZlclNpemUuc2NoZWR1bGVyOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZmZlclNpemUgPSBjb25maWdPckJ1ZmZlclNpemUgIT09IG51bGwgJiYgY29uZmlnT3JCdWZmZXJTaXplICE9PSB2b2lkIDAgPyBjb25maWdPckJ1ZmZlclNpemUgOiBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZSh7CiAgICAgICAgY29ubmVjdG9yOiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKTsKICAgICAgICB9LAogICAgICAgIHJlc2V0T25FcnJvcjogdHJ1ZSwKICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLAogICAgICAgIHJlc2V0T25SZWZDb3VudFplcm86IHJlZkNvdW50CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2hhcmVSZXBsYXkgPSBzaGFyZVJlcGxheTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcwp2YXIgcmVxdWlyZV9zaW5nbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2luZ2xlID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgdmFyIE5vdEZvdW5kRXJyb3JfMSA9IHJlcXVpcmVfTm90Rm91bmRFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNpbmdsZShwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHZhciBzaW5nbGVWYWx1ZTsKICAgICAgICB2YXIgc2VlblZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc2VlblZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKywgc291cmNlKSkgewogICAgICAgICAgICBoYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLmVycm9yKG5ldyBTZXF1ZW5jZUVycm9yXzEuU2VxdWVuY2VFcnJvcigiVG9vIG1hbnkgbWF0Y2hpbmcgdmFsdWVzIikpOwogICAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICAgIHNpbmdsZVZhbHVlID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHNpbmdsZVZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihzZWVuVmFsdWUgPyBuZXcgTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3IoIk5vIG1hdGNoaW5nIHZhbHVlcyIpIDogbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zaW5nbGUgPSBzaW5nbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwLmpzCnZhciByZXF1aXJlX3NraXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXAgPSB2b2lkIDA7CiAgICB2YXIgZmlsdGVyXzEgPSByZXF1aXJlX2ZpbHRlcigpOwogICAgZnVuY3Rpb24gc2tpcChjb3VudCkgewogICAgICByZXR1cm4gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKF8sIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGNvdW50IDw9IGluZGV4OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNraXAgPSBza2lwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcExhc3QuanMKdmFyIHJlcXVpcmVfc2tpcExhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5za2lwTGFzdCA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNraXBMYXN0KHNraXBDb3VudCkgewogICAgICByZXR1cm4gc2tpcENvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHJpbmcgPSBuZXcgQXJyYXkoc2tpcENvdW50KTsKICAgICAgICB2YXIgc2VlbiA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gc2VlbisrOwogICAgICAgICAgaWYgKHZhbHVlSW5kZXggPCBza2lwQ291bnQpIHsKICAgICAgICAgICAgcmluZ1t2YWx1ZUluZGV4XSA9IHZhbHVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGluZGV4ID0gdmFsdWVJbmRleCAlIHNraXBDb3VudDsKICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gcmluZ1tpbmRleF07CiAgICAgICAgICAgIHJpbmdbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChvbGRWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJpbmcgPSBudWxsOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcExhc3QgPSBza2lwTGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcwp2YXIgcmVxdWlyZV9za2lwVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2tpcFVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiBza2lwVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB0YWtpbmcgPSBmYWxzZTsKICAgICAgICB2YXIgc2tpcFN1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBza2lwU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBza2lwU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2tpcFN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRha2luZyA9IHRydWU7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKHNraXBTdWJzY3JpYmVyKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRha2luZyAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5za2lwVW50aWwgPSBza2lwVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMKdmFyIHJlcXVpcmVfc2tpcFdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXBXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBza2lwV2hpbGUocHJlZGljYXRlKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgdGFraW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuICh0YWtpbmcgfHwgKHRha2luZyA9ICFwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspKSkgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcFdoaWxlID0gc2tpcFdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzCnZhciByZXF1aXJlX3N0YXJ0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdGFydFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3RhcnRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIodmFsdWVzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIChzY2hlZHVsZXIgPyBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UsIHNjaGVkdWxlcikgOiBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc3RhcnRXaXRoID0gc3RhcnRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaE1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBjaGVja0NvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaXNDb21wbGV0ZSAmJiAhaW5uZXJTdWJzY3JpYmVyICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpbm5lclN1YnNjcmliZXIgPT09IG51bGwgfHwgaW5uZXJTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbm5lclN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBpbm5lckluZGV4ID0gMDsKICAgICAgICAgIHZhciBvdXRlckluZGV4ID0gaW5kZXgrKzsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShwcm9qZWN0KHZhbHVlLCBvdXRlckluZGV4KSkuc3Vic2NyaWJlKGlubmVyU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihpbm5lclZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQocmVzdWx0U2VsZWN0b3IgPyByZXN1bHRTZWxlY3Rvcih2YWx1ZSwgaW5uZXJWYWx1ZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCsrKSA6IGlubmVyVmFsdWUpOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSBzd2l0Y2hNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMKdmFyIHJlcXVpcmVfc3dpdGNoQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHZvaWQgMDsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaEFsbCgpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcF8xLnN3aXRjaE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHN3aXRjaEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc3dpdGNoTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gc3dpdGNoTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gc3dpdGNoTWFwXzEuc3dpdGNoTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IHN3aXRjaE1hcF8xLnN3aXRjaE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gc3dpdGNoTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuLmpzCnZhciByZXF1aXJlX3N3aXRjaFNjYW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaFNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaFNjYW4gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3dpdGNoU2NhbihhY2N1bXVsYXRvciwgc2VlZCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN0YXRlID0gc2VlZDsKICAgICAgICBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCk7CiAgICAgICAgfSwgZnVuY3Rpb24oXywgaW5uZXJWYWx1ZSkgewogICAgICAgICAgcmV0dXJuIHN0YXRlID0gaW5uZXJWYWx1ZSwgaW5uZXJWYWx1ZTsKICAgICAgICB9KShzb3VyY2UpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGF0ZSA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hTY2FuID0gc3dpdGNoU2NhbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcwp2YXIgcmVxdWlyZV90YWtlVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZVVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiB0YWtlVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICAhc3Vic2NyaWJlci5jbG9zZWQgJiYgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlVW50aWwgPSB0YWtlVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMKdmFyIHJlcXVpcmVfdGFrZVdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRha2VXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB0YWtlV2hpbGUocHJlZGljYXRlLCBpbmNsdXNpdmUpIHsKICAgICAgaWYgKGluY2x1c2l2ZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgaW5jbHVzaXZlID0gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspOwogICAgICAgICAgKHJlc3VsdCB8fCBpbmNsdXNpdmUpICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAhcmVzdWx0ICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGFrZVdoaWxlID0gdGFrZVdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzCnZhciByZXF1aXJlX3RhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YXAgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiB0YXAob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICB2YXIgdGFwT2JzZXJ2ZXIgPSBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgZXJyb3IgfHwgY29tcGxldGUgPyB7IG5leHQ6IG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUgfSA6IG9ic2VydmVyT3JOZXh0OwogICAgICByZXR1cm4gdGFwT2JzZXJ2ZXIgPyBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgKF9hID0gdGFwT2JzZXJ2ZXIuc3Vic2NyaWJlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgdmFyIGlzVW5zdWIgPSB0cnVlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIHZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgaXNVbnN1YiA9IGZhbHNlOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hMi5jYWxsKHRhcE9ic2VydmVyKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHZhciBfYTI7CiAgICAgICAgICBpc1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICAoX2EyID0gdGFwT2JzZXJ2ZXIuZXJyb3IpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyLCBfYjsKICAgICAgICAgIGlmIChpc1Vuc3ViKSB7CiAgICAgICAgICAgIChfYTIgPSB0YXBPYnNlcnZlci51bnN1YnNjcmliZSkgPT09IG51bGwgfHwgX2EyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYTIuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgICB9CiAgICAgICAgICAoX2IgPSB0YXBPYnNlcnZlci5maW5hbGl6ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGFwT2JzZXJ2ZXIpOwogICAgICAgIH0pKTsKICAgICAgfSkgOiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfQogICAgZXhwb3J0czIudGFwID0gdGFwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGUuanMKdmFyIHJlcXVpcmVfdGhyb3R0bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gdGhyb3R0bGUoZHVyYXRpb25TZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSBjb25maWcgIT09IG51bGwgJiYgY29uZmlnICE9PSB2b2lkIDAgPyBjb25maWcgOiB7fSwgX2IgPSBfYS5sZWFkaW5nLCBsZWFkaW5nID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBfYS50cmFpbGluZywgdHJhaWxpbmcgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYzsKICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICB2YXIgc2VuZFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBlbmRUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0aHJvdHRsZWQgPT09IG51bGwgfHwgdGhyb3R0bGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aHJvdHRsZWQudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRocm90dGxlZCA9IG51bGw7CiAgICAgICAgICBpZiAodHJhaWxpbmcpIHsKICAgICAgICAgICAgc2VuZCgpOwogICAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwVGhyb3R0bGluZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0VGhyb3R0bGUgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRocm90dGxlZCA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmRUaHJvdHRsaW5nLCBjbGVhbnVwVGhyb3R0bGluZykpOwogICAgICAgIH07CiAgICAgICAgdmFyIHNlbmQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBzZW5kVmFsdWU7CiAgICAgICAgICAgIHNlbmRWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICFpc0NvbXBsZXRlICYmIHN0YXJ0VGhyb3R0bGUodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHNlbmRWYWx1ZSA9IHZhbHVlOwogICAgICAgICAgISh0aHJvdHRsZWQgJiYgIXRocm90dGxlZC5jbG9zZWQpICYmIChsZWFkaW5nID8gc2VuZCgpIDogc3RhcnRUaHJvdHRsZSh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaXNDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAhKHRyYWlsaW5nICYmIGhhc1ZhbHVlICYmIHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHRocm90dGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzCnZhciByZXF1aXJlX3Rocm90dGxlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aHJvdHRsZV8xID0gcmVxdWlyZV90aHJvdHRsZSgpOwogICAgdmFyIHRpbWVyXzEgPSByZXF1aXJlX3RpbWVyKCk7CiAgICBmdW5jdGlvbiB0aHJvdHRsZVRpbWUoZHVyYXRpb24sIHNjaGVkdWxlciwgY29uZmlnKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uJCA9IHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiB0aHJvdHRsZV8xLnRocm90dGxlKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkdXJhdGlvbiQ7CiAgICAgIH0sIGNvbmZpZyk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB0aHJvdHRsZVRpbWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfdGltZUludGVydmFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRpbWVJbnRlcnZhbChzY2hlZHVsZXIpIHsKICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGxhc3QgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICB2YXIgaW50ZXJ2YWwgPSBub3cgLSBsYXN0OwogICAgICAgICAgbGFzdCA9IG5vdzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuZXcgVGltZUludGVydmFsKHZhbHVlLCBpbnRlcnZhbCkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aW1lSW50ZXJ2YWwgPSB0aW1lSW50ZXJ2YWw7CiAgICB2YXIgVGltZUludGVydmFsID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBUaW1lSW50ZXJ2YWwyKHZhbHVlLCBpbnRlcnZhbCkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7CiAgICAgIH0KICAgICAgcmV0dXJuIFRpbWVJbnRlcnZhbDI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5UaW1lSW50ZXJ2YWwgPSBUaW1lSW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lb3V0V2l0aC5qcwp2YXIgcmVxdWlyZV90aW1lb3V0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgaXNEYXRlXzEgPSByZXF1aXJlX2lzRGF0ZSgpOwogICAgdmFyIHRpbWVvdXRfMSA9IHJlcXVpcmVfdGltZW91dCgpOwogICAgZnVuY3Rpb24gdGltZW91dFdpdGgoZHVlLCB3aXRoT2JzZXJ2YWJsZSwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBmaXJzdDsKICAgICAgdmFyIGVhY2g7CiAgICAgIHZhciBfd2l0aDsKICAgICAgc2NoZWR1bGVyID0gc2NoZWR1bGVyICE9PSBudWxsICYmIHNjaGVkdWxlciAhPT0gdm9pZCAwID8gc2NoZWR1bGVyIDogYXN5bmNfMS5hc3luYzsKICAgICAgaWYgKGlzRGF0ZV8xLmlzVmFsaWREYXRlKGR1ZSkpIHsKICAgICAgICBmaXJzdCA9IGR1ZTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVlID09PSAibnVtYmVyIikgewogICAgICAgIGVhY2ggPSBkdWU7CiAgICAgIH0KICAgICAgaWYgKHdpdGhPYnNlcnZhYmxlKSB7CiAgICAgICAgX3dpdGggPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB3aXRoT2JzZXJ2YWJsZTsKICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG9ic2VydmFibGUgcHJvdmlkZWQgdG8gc3dpdGNoIHRvIik7CiAgICAgIH0KICAgICAgaWYgKGZpcnN0ID09IG51bGwgJiYgZWFjaCA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gdGltZW91dCBwcm92aWRlZC4iKTsKICAgICAgfQogICAgICByZXR1cm4gdGltZW91dF8xLnRpbWVvdXQoewogICAgICAgIGZpcnN0LAogICAgICAgIGVhY2gsCiAgICAgICAgc2NoZWR1bGVyLAogICAgICAgIHdpdGg6IF93aXRoCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dFdpdGggPSB0aW1lb3V0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcwp2YXIgcmVxdWlyZV90aW1lc3RhbXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXN0YW1wID0gdm9pZCAwOwogICAgdmFyIGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9kYXRlVGltZXN0YW1wUHJvdmlkZXIoKTsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICBmdW5jdGlvbiB0aW1lc3RhbXAyKHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIGlmICh0aW1lc3RhbXBQcm92aWRlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMS5kYXRlVGltZXN0YW1wUHJvdmlkZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB7IHZhbHVlLCB0aW1lc3RhbXA6IHRpbWVzdGFtcFByb3ZpZGVyLm5vdygpIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZXN0YW1wID0gdGltZXN0YW1wMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcwp2YXIgcmVxdWlyZV93aW5kb3cgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93ID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiB3aW5kb3cyKHdpbmRvd0JvdW5kYXJpZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB3aW5kb3dTdWJqZWN0ID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93U3ViamVjdCA9PT0gbnVsbCB8fCB3aW5kb3dTdWJqZWN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3dTdWJqZWN0Lm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIGVycm9ySGFuZGxlcikpOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbSh3aW5kb3dCb3VuZGFyaWVzKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3AsIGVycm9ySGFuZGxlcikpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QgPT09IG51bGwgfHwgd2luZG93U3ViamVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93U3ViamVjdC51bnN1YnNjcmliZSgpOwogICAgICAgICAgd2luZG93U3ViamVjdCA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3cgPSB3aW5kb3cyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93Q291bnQuanMKdmFyIHJlcXVpcmVfd2luZG93Q291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd0NvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi53aW5kb3dDb3VudCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dDb3VudCh3aW5kb3dTaXplLCBzdGFydFdpbmRvd0V2ZXJ5KSB7CiAgICAgIGlmIChzdGFydFdpbmRvd0V2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydFdpbmRvd0V2ZXJ5ID0gMDsKICAgICAgfQogICAgICB2YXIgc3RhcnRFdmVyeSA9IHN0YXJ0V2luZG93RXZlcnkgPiAwID8gc3RhcnRXaW5kb3dFdmVyeSA6IHdpbmRvd1NpemU7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtuZXcgU3ViamVjdF8xLlN1YmplY3QoKV07CiAgICAgICAgdmFyIHN0YXJ0cyA9IFtdOwogICAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd3NbMF0uYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAodmFyIHdpbmRvd3NfMSA9IF9fdmFsdWVzKHdpbmRvd3MpLCB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCk7ICF3aW5kb3dzXzFfMS5kb25lOyB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICB2YXIgd2luZG93XzEgPSB3aW5kb3dzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NfMV8xICYmICF3aW5kb3dzXzFfMS5kb25lICYmIChfYSA9IHdpbmRvd3NfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYyA9IGNvdW50IC0gd2luZG93U2l6ZSArIDE7CiAgICAgICAgICBpZiAoYyA+PSAwICYmIGMgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCsrY291bnQgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMiA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93XzIpOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQod2luZG93XzIuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKHdpbmRvd3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdoaWxlICh3aW5kb3dzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgd2luZG93cy5zaGlmdCgpLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGFydHMgPSBudWxsOwogICAgICAgICAgd2luZG93cyA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpbmRvd0NvdW50ID0gd2luZG93Q291bnQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUaW1lLmpzCnZhciByZXF1aXJlX3dpbmRvd1RpbWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1RpbWUgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dUaW1lKHdpbmRvd1RpbWVTcGFuKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciBvdGhlckFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlckFyZ3NbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IChfYSA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIob3RoZXJBcmdzKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgdmFyIHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgPSAoX2IgPSBvdGhlckFyZ3NbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7CiAgICAgIHZhciBtYXhXaW5kb3dTaXplID0gb3RoZXJBcmdzWzFdIHx8IEluZmluaXR5OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHdpbmRvd1JlY29yZHMgPSBbXTsKICAgICAgICB2YXIgcmVzdGFydE9uQ2xvc2UgPSBmYWxzZTsKICAgICAgICB2YXIgY2xvc2VXaW5kb3cgPSBmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gcmVjb3JkLndpbmRvdywgc3VicyA9IHJlY29yZC5zdWJzOwogICAgICAgICAgd2luZG93Mi5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vicy51bnN1YnNjcmliZSgpOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKHdpbmRvd1JlY29yZHMsIHJlY29yZCk7CiAgICAgICAgICByZXN0YXJ0T25DbG9zZSAmJiBzdGFydFdpbmRvdygpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0V2luZG93ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93UmVjb3JkcykgewogICAgICAgICAgICB2YXIgc3VicyA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoc3Vicyk7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgd2luZG93OiB3aW5kb3dfMSwKICAgICAgICAgICAgICBzdWJzLAogICAgICAgICAgICAgIHNlZW46IDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93UmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd18xLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGNsb3NlV2luZG93KHJlY29yZF8xKTsKICAgICAgICAgICAgfSwgd2luZG93VGltZVNwYW4pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaWYgKHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgd2luZG93Q3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7CiAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBzdGFydFdpbmRvdywgd2luZG93Q3JlYXRpb25JbnRlcnZhbCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3RhcnRPbkNsb3NlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3RhcnRXaW5kb3coKTsKICAgICAgICB2YXIgbG9vcCA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93UmVjb3Jkcy5zbGljZSgpLmZvckVhY2goY2IpOwogICAgICAgIH07CiAgICAgICAgdmFyIHRlcm1pbmF0ZSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBsb29wKGZ1bmN0aW9uKF9hMikgewogICAgICAgICAgICB2YXIgd2luZG93MiA9IF9hMi53aW5kb3c7CiAgICAgICAgICAgIHJldHVybiBjYih3aW5kb3cyKTsKICAgICAgICAgIH0pOwogICAgICAgICAgY2Ioc3Vic2NyaWJlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbG9vcChmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgICAgcmVjb3JkLndpbmRvdy5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgbWF4V2luZG93U2l6ZSA8PSArK3JlY29yZC5zZWVuICYmIGNsb3NlV2luZG93KHJlY29yZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmNvbXBsZXRlKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmVycm9yKGVycik7CiAgICAgICAgICB9KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93UmVjb3JkcyA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUaW1lID0gd2luZG93VGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcwp2YXIgcmVxdWlyZV93aW5kb3dUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93VG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1RvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtdOwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93Mik7CiAgICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgIHZhciBjbG9zZVdpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUod2luZG93cywgd2luZG93Mik7CiAgICAgICAgICAgIHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgICAgY2xvc2luZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24uYWRkKGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGNsb3NlV2luZG93LCBub29wXzEubm9vcCwgaGFuZGxlRXJyb3IpKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB2YXIgd2luZG93c0NvcHkgPSB3aW5kb3dzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciB3aW5kb3dzQ29weV8xID0gX192YWx1ZXMod2luZG93c0NvcHkpLCB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKTsgIXdpbmRvd3NDb3B5XzFfMS5kb25lOyB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IHdpbmRvd3NDb3B5XzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NDb3B5XzFfMSAmJiAhd2luZG93c0NvcHlfMV8xLmRvbmUgJiYgKF9hID0gd2luZG93c0NvcHlfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBoYW5kbGVFcnJvciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoMCA8IHdpbmRvd3MubGVuZ3RoKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUb2dnbGUgPSB3aW5kb3dUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dXaGVuLmpzCnZhciByZXF1aXJlX3dpbmRvd1doZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1doZW4gPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1doZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93MjsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXI7CiAgICAgICAgdmFyIGhhbmRsZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICB3aW5kb3cyLmVycm9yKGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfTsKICAgICAgICB2YXIgb3BlbldpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID09PSBudWxsIHx8IHdpbmRvdzIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgIHdpbmRvdzIgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKCkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoY2xvc2luZ1N1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgb3BlbldpbmRvdywgb3BlbldpbmRvdywgaGFuZGxlRXJyb3IpKTsKICAgICAgICB9OwogICAgICAgIG9wZW5XaW5kb3coKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHdpbmRvdzIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aW5kb3cyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIud2luZG93V2hlbiA9IHdpbmRvd1doZW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aXRoTGF0ZXN0RnJvbS5qcwp2YXIgcmVxdWlyZV93aXRoTGF0ZXN0RnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2l0aExhdGVzdEZyb20uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIGZ1bmN0aW9uIHdpdGhMYXRlc3RGcm9tKCkgewogICAgICB2YXIgaW5wdXRzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgaW5wdXRzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHByb2plY3QgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoaW5wdXRzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBsZW4gPSBpbnB1dHMubGVuZ3RoOwogICAgICAgIHZhciBvdGhlclZhbHVlcyA9IG5ldyBBcnJheShsZW4pOwogICAgICAgIHZhciBoYXNWYWx1ZSA9IGlucHV0cy5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHJlYWR5ID0gZmFsc2U7CiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbihpMikgewogICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKGlucHV0c1tpMl0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgb3RoZXJWYWx1ZXNbaTJdID0gdmFsdWU7CiAgICAgICAgICAgIGlmICghcmVhZHkgJiYgIWhhc1ZhbHVlW2kyXSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlW2kyXSA9IHRydWU7CiAgICAgICAgICAgICAgKHJlYWR5ID0gaGFzVmFsdWUuZXZlcnkoaWRlbnRpdHlfMS5pZGVudGl0eSkpICYmIChoYXNWYWx1ZSA9IG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgX2xvb3BfMShpKTsKICAgICAgICB9CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmIChyZWFkeSkgewogICAgICAgICAgICB2YXIgdmFsdWVzID0gX19zcHJlYWRBcnJheShbdmFsdWVdLCBfX3JlYWQob3RoZXJWYWx1ZXMpKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QgPyBwcm9qZWN0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSA6IHZhbHVlcyk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gd2l0aExhdGVzdEZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMKdmFyIHJlcXVpcmVfemlwQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcEFsbCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgam9pbkFsbEludGVybmFsc18xID0gcmVxdWlyZV9qb2luQWxsSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiB6aXBBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoemlwXzEuemlwLCBwcm9qZWN0KTsKICAgIH0KICAgIGV4cG9ydHMyLnppcEFsbCA9IHppcEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3ppcC5qcwp2YXIgcmVxdWlyZV96aXAyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiB6aXAoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoc291cmNlcykpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuemlwID0gemlwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvemlwV2l0aC5qcwp2YXIgcmVxdWlyZV96aXBXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi56aXBXaXRoID0gdm9pZCAwOwogICAgdmFyIHppcF8xID0gcmVxdWlyZV96aXAyKCk7CiAgICBmdW5jdGlvbiB6aXBXaXRoKCkgewogICAgICB2YXIgb3RoZXJJbnB1dHMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlcklucHV0c1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJJbnB1dHMpKSk7CiAgICB9CiAgICBleHBvcnRzMi56aXBXaXRoID0gemlwV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW5kZXguanMKdmFyIHJlcXVpcmVfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBtW2tdOwogICAgICB9IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbCA9IGV4cG9ydHMyLmlpZiA9IGV4cG9ydHMyLmdlbmVyYXRlID0gZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IGV4cG9ydHMyLmZyb21FdmVudCA9IGV4cG9ydHMyLmZyb20gPSBleHBvcnRzMi5mb3JrSm9pbiA9IGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuZGVmZXIgPSBleHBvcnRzMi5jb25uZWN0YWJsZSA9IGV4cG9ydHMyLmNvbmNhdCA9IGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gZXhwb3J0czIuYmluZENhbGxiYWNrID0gZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGV4cG9ydHMyLlNlcXVlbmNlRXJyb3IgPSBleHBvcnRzMi5PYmplY3RVbnN1YnNjcmliZWRFcnJvciA9IGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBleHBvcnRzMi5FbXB0eUVycm9yID0gZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IGV4cG9ydHMyLmxhc3RWYWx1ZUZyb20gPSBleHBvcnRzMi5pc09ic2VydmFibGUgPSBleHBvcnRzMi5pZGVudGl0eSA9IGV4cG9ydHMyLm5vb3AgPSBleHBvcnRzMi5waXBlID0gZXhwb3J0czIuTm90aWZpY2F0aW9uS2luZCA9IGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLlN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpcHRpb24gPSBleHBvcnRzMi5TY2hlZHVsZXIgPSBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBleHBvcnRzMi5xdWV1ZSA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gZXhwb3J0czIuYXN5bmMgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IGV4cG9ydHMyLlJlcGxheVN1YmplY3QgPSBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBleHBvcnRzMi5TdWJqZWN0ID0gZXhwb3J0czIuYW5pbWF0aW9uRnJhbWVzID0gZXhwb3J0czIub2JzZXJ2YWJsZSA9IGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IGV4cG9ydHMyLk9ic2VydmFibGUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi5maWx0ZXIgPSBleHBvcnRzMi5leHBhbmQgPSBleHBvcnRzMi5leGhhdXN0TWFwID0gZXhwb3J0czIuZXhoYXVzdEFsbCA9IGV4cG9ydHMyLmV4aGF1c3QgPSBleHBvcnRzMi5ldmVyeSA9IGV4cG9ydHMyLmVuZFdpdGggPSBleHBvcnRzMi5lbGVtZW50QXQgPSBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZXhwb3J0czIuZGlzdGluY3QgPSBleHBvcnRzMi5kZW1hdGVyaWFsaXplID0gZXhwb3J0czIuZGVsYXlXaGVuID0gZXhwb3J0czIuZGVsYXkgPSBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IGV4cG9ydHMyLmRlYm91bmNlVGltZSA9IGV4cG9ydHMyLmRlYm91bmNlID0gZXhwb3J0czIuY291bnQgPSBleHBvcnRzMi5jb25uZWN0ID0gZXhwb3J0czIuY29uY2F0V2l0aCA9IGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gZXhwb3J0czIuY29uY2F0TWFwID0gZXhwb3J0czIuY29uY2F0QWxsID0gZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBleHBvcnRzMi5jb21iaW5lTGF0ZXN0QWxsID0gZXhwb3J0czIuY29tYmluZUFsbCA9IGV4cG9ydHMyLmNhdGNoRXJyb3IgPSBleHBvcnRzMi5idWZmZXJXaGVuID0gZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gZXhwb3J0czIuYnVmZmVyVGltZSA9IGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gZXhwb3J0czIuYnVmZmVyID0gZXhwb3J0czIuYXVkaXRUaW1lID0gZXhwb3J0czIuYXVkaXQgPSBleHBvcnRzMi5jb25maWcgPSBleHBvcnRzMi5ORVZFUiA9IGV4cG9ydHMyLkVNUFRZID0gZXhwb3J0czIuc2NoZWR1bGVkID0gZXhwb3J0czIuemlwID0gZXhwb3J0czIudXNpbmcgPSBleHBvcnRzMi50aW1lciA9IGV4cG9ydHMyLnRocm93RXJyb3IgPSBleHBvcnRzMi5yYW5nZSA9IGV4cG9ydHMyLnJhY2UgPSBleHBvcnRzMi5wYXJ0aXRpb24gPSBleHBvcnRzMi5wYWlycyA9IGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub2YgPSBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLm1lcmdlID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3dpdGNoTWFwID0gZXhwb3J0czIuc3dpdGNoQWxsID0gZXhwb3J0czIuc3Vic2NyaWJlT24gPSBleHBvcnRzMi5zdGFydFdpdGggPSBleHBvcnRzMi5za2lwV2hpbGUgPSBleHBvcnRzMi5za2lwVW50aWwgPSBleHBvcnRzMi5za2lwTGFzdCA9IGV4cG9ydHMyLnNraXAgPSBleHBvcnRzMi5zaW5nbGUgPSBleHBvcnRzMi5zaGFyZVJlcGxheSA9IGV4cG9ydHMyLnNoYXJlID0gZXhwb3J0czIuc2VxdWVuY2VFcXVhbCA9IGV4cG9ydHMyLnNjYW4gPSBleHBvcnRzMi5zYW1wbGVUaW1lID0gZXhwb3J0czIuc2FtcGxlID0gZXhwb3J0czIucmVmQ291bnQgPSBleHBvcnRzMi5yZXRyeVdoZW4gPSBleHBvcnRzMi5yZXRyeSA9IGV4cG9ydHMyLnJlcGVhdFdoZW4gPSBleHBvcnRzMi5yZXBlYXQgPSBleHBvcnRzMi5yZWR1Y2UgPSBleHBvcnRzMi5yYWNlV2l0aCA9IGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBleHBvcnRzMi5wdWJsaXNoTGFzdCA9IGV4cG9ydHMyLnB1Ymxpc2hCZWhhdmlvciA9IGV4cG9ydHMyLnB1Ymxpc2ggPSBleHBvcnRzMi5wbHVjayA9IGV4cG9ydHMyLnBhaXJ3aXNlID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gZXhwb3J0czIub2JzZXJ2ZU9uID0gZXhwb3J0czIubXVsdGljYXN0ID0gZXhwb3J0czIubWluID0gZXhwb3J0czIubWVyZ2VXaXRoID0gZXhwb3J0czIubWVyZ2VTY2FuID0gZXhwb3J0czIubWVyZ2VNYXBUbyA9IGV4cG9ydHMyLm1lcmdlTWFwID0gZXhwb3J0czIuZmxhdE1hcCA9IGV4cG9ydHMyLm1lcmdlQWxsID0gZXhwb3J0czIubWF4ID0gZXhwb3J0czIubWF0ZXJpYWxpemUgPSBleHBvcnRzMi5tYXBUbyA9IGV4cG9ydHMyLm1hcCA9IGV4cG9ydHMyLmxhc3QgPSBleHBvcnRzMi5pc0VtcHR5ID0gZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSBleHBvcnRzMi5ncm91cEJ5ID0gZXhwb3J0czIuZmlyc3QgPSBleHBvcnRzMi5maW5kSW5kZXggPSBleHBvcnRzMi5maW5kID0gZXhwb3J0czIuZmluYWxpemUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi56aXBXaXRoID0gZXhwb3J0czIuemlwQWxsID0gZXhwb3J0czIud2l0aExhdGVzdEZyb20gPSBleHBvcnRzMi53aW5kb3dXaGVuID0gZXhwb3J0czIud2luZG93VG9nZ2xlID0gZXhwb3J0czIud2luZG93VGltZSA9IGV4cG9ydHMyLndpbmRvd0NvdW50ID0gZXhwb3J0czIud2luZG93ID0gZXhwb3J0czIudG9BcnJheSA9IGV4cG9ydHMyLnRpbWVzdGFtcCA9IGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRocm93SWZFbXB0eSA9IGV4cG9ydHMyLnRocm90dGxlVGltZSA9IGV4cG9ydHMyLnRocm90dGxlID0gZXhwb3J0czIudGFwID0gZXhwb3J0czIudGFrZVdoaWxlID0gZXhwb3J0czIudGFrZVVudGlsID0gZXhwb3J0czIudGFrZUxhc3QgPSBleHBvcnRzMi50YWtlID0gZXhwb3J0czIuc3dpdGNoU2NhbiA9IGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiT2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9ic2VydmFibGVfMS5PYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb25uZWN0YWJsZU9ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9ic2VydmFibGVfMS5vYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZXNfMSA9IHJlcXVpcmVfYW5pbWF0aW9uRnJhbWVzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhbmltYXRpb25GcmFtZXMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZXNfMS5hbmltYXRpb25GcmFtZXM7CiAgICB9IH0pOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YmplY3RfMS5TdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBCZWhhdmlvclN1YmplY3RfMSA9IHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJCZWhhdmlvclN1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiUmVwbGF5U3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFJlcGxheVN1YmplY3RfMS5SZXBsYXlTdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBBc3luY1N1YmplY3RfMSA9IHJlcXVpcmVfQXN5bmNTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJBc3luY1N1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBc3luY1N1YmplY3RfMS5Bc3luY1N1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIGFzYXBfMSA9IHJlcXVpcmVfYXNhcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYXNhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzYXBfMS5hc2FwOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzYXBTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhc2FwXzEuYXNhcFNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzeW5jIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYXN5bmNfMS5hc3luYzsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhc3luY1NjaGVkdWxlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIHF1ZXVlXzEgPSByZXF1aXJlX3F1ZXVlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJxdWV1ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHF1ZXVlXzEucXVldWU7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicXVldWVTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBxdWV1ZV8xLnF1ZXVlU2NoZWR1bGVyOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZV8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYW5pbWF0aW9uRnJhbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZV8xLmFuaW1hdGlvbkZyYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYW5pbWF0aW9uRnJhbWVfMS5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgVmlydHVhbFRpbWVTY2hlZHVsZXJfMSA9IHJlcXVpcmVfVmlydHVhbFRpbWVTY2hlZHVsZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsVGltZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWaXJ0dWFsQWN0aW9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsQWN0aW9uOwogICAgfSB9KTsKICAgIHZhciBTY2hlZHVsZXJfMSA9IHJlcXVpcmVfU2NoZWR1bGVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBTY2hlZHVsZXJfMS5TY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlN1YnNjcmlwdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbjsKICAgIH0gfSk7CiAgICB2YXIgU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9TdWJzY3JpYmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTdWJzY3JpYmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gU3Vic2NyaWJlcl8xLlN1YnNjcmliZXI7CiAgICB9IH0pOwogICAgdmFyIE5vdGlmaWNhdGlvbl8xID0gcmVxdWlyZV9Ob3RpZmljYXRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5vdGlmaWNhdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RpZmljYXRpb25LaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90aWZpY2F0aW9uXzEuTm90aWZpY2F0aW9uS2luZDsKICAgIH0gfSk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwaXBlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGlwZV8xLnBpcGU7CiAgICB9IH0pOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibm9vcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5vb3BfMS5ub29wOwogICAgfSB9KTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWRlbnRpdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfSB9KTsKICAgIHZhciBpc09ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpc09ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpc09ic2VydmFibGVfMS5pc09ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIGxhc3RWYWx1ZUZyb21fMSA9IHJlcXVpcmVfbGFzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibGFzdFZhbHVlRnJvbSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb21fMS5sYXN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBmaXJzdFZhbHVlRnJvbV8xID0gcmVxdWlyZV9maXJzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmlyc3RWYWx1ZUZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbV8xLmZpcnN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xID0gcmVxdWlyZV9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xLkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yOwogICAgfSB9KTsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkVtcHR5RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgTm90Rm91bmRFcnJvcl8xID0gcmVxdWlyZV9Ob3RGb3VuZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RGb3VuZEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU2VxdWVuY2VFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFNlcXVlbmNlRXJyb3JfMS5TZXF1ZW5jZUVycm9yOwogICAgfSB9KTsKICAgIHZhciB0aW1lb3V0XzEgPSByZXF1aXJlX3RpbWVvdXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlRpbWVvdXRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRfMS5UaW1lb3V0RXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFVuc3Vic2NyaXB0aW9uRXJyb3JfMSA9IHJlcXVpcmVfVW5zdWJzY3JpcHRpb25FcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiVW5zdWJzY3JpcHRpb25FcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yOwogICAgfSB9KTsKICAgIHZhciBiaW5kQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJiaW5kQ2FsbGJhY2siLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tfMS5iaW5kQ2FsbGJhY2s7CiAgICB9IH0pOwogICAgdmFyIGJpbmROb2RlQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZE5vZGVDYWxsYmFjaygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYmluZE5vZGVDYWxsYmFjayIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGJpbmROb2RlQ2FsbGJhY2tfMS5iaW5kTm9kZUNhbGxiYWNrOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0XzEuY29tYmluZUxhdGVzdDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0OwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0YWJsZV8xID0gcmVxdWlyZV9jb25uZWN0YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29ubmVjdGFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0YWJsZV8xLmNvbm5lY3RhYmxlOwogICAgfSB9KTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyOwogICAgfSB9KTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbXB0eV8xLmVtcHR5OwogICAgfSB9KTsKICAgIHZhciBmb3JrSm9pbl8xID0gcmVxdWlyZV9mb3JrSm9pbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZm9ya0pvaW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmb3JrSm9pbl8xLmZvcmtKb2luOwogICAgfSB9KTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tXzEuZnJvbTsKICAgIH0gfSk7CiAgICB2YXIgZnJvbUV2ZW50XzEgPSByZXF1aXJlX2Zyb21FdmVudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZnJvbUV2ZW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZnJvbUV2ZW50XzEuZnJvbUV2ZW50OwogICAgfSB9KTsKICAgIHZhciBmcm9tRXZlbnRQYXR0ZXJuXzEgPSByZXF1aXJlX2Zyb21FdmVudFBhdHRlcm4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb21FdmVudFBhdHRlcm4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tRXZlbnRQYXR0ZXJuXzEuZnJvbUV2ZW50UGF0dGVybjsKICAgIH0gfSk7CiAgICB2YXIgZ2VuZXJhdGVfMSA9IHJlcXVpcmVfZ2VuZXJhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdlbmVyYXRlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ2VuZXJhdGVfMS5nZW5lcmF0ZTsKICAgIH0gfSk7CiAgICB2YXIgaWlmXzEgPSByZXF1aXJlX2lpZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWlmIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaWlmXzEuaWlmOwogICAgfSB9KTsKICAgIHZhciBpbnRlcnZhbF8xID0gcmVxdWlyZV9pbnRlcnZhbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaW50ZXJ2YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpbnRlcnZhbF8xLmludGVydmFsOwogICAgfSB9KTsKICAgIHZhciBtZXJnZV8xID0gcmVxdWlyZV9tZXJnZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlOwogICAgfSB9KTsKICAgIHZhciBuZXZlcl8xID0gcmVxdWlyZV9uZXZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibmV2ZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBuZXZlcl8xLm5ldmVyOwogICAgfSB9KTsKICAgIHZhciBvZl8xID0gcmVxdWlyZV9vZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2YiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvZl8xLm9mOwogICAgfSB9KTsKICAgIHZhciBvbkVycm9yUmVzdW1lTmV4dF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib25FcnJvclJlc3VtZU5leHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0OwogICAgfSB9KTsKICAgIHZhciBwYWlyc18xID0gcmVxdWlyZV9wYWlycygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGFpcnMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYWlyc18xLnBhaXJzOwogICAgfSB9KTsKICAgIHZhciBwYXJ0aXRpb25fMSA9IHJlcXVpcmVfcGFydGl0aW9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwYXJ0aXRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYXJ0aXRpb25fMS5wYXJ0aXRpb247CiAgICB9IH0pOwogICAgdmFyIHJhY2VfMSA9IHJlcXVpcmVfcmFjZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VfMS5yYWNlOwogICAgfSB9KTsKICAgIHZhciByYW5nZV8xID0gcmVxdWlyZV9yYW5nZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFuZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByYW5nZV8xLnJhbmdlOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm93RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0Vycm9yXzEudGhyb3dFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZXJfMS50aW1lcjsKICAgIH0gfSk7CiAgICB2YXIgdXNpbmdfMSA9IHJlcXVpcmVfdXNpbmcoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInVzaW5nIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdXNpbmdfMS51c2luZzsKICAgIH0gfSk7CiAgICB2YXIgemlwXzEgPSByZXF1aXJlX3ppcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwXzEuemlwOwogICAgfSB9KTsKICAgIHZhciBzY2hlZHVsZWRfMSA9IHJlcXVpcmVfc2NoZWR1bGVkKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzY2hlZHVsZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzY2hlZHVsZWRfMS5zY2hlZHVsZWQ7CiAgICB9IH0pOwogICAgdmFyIGVtcHR5XzIgPSByZXF1aXJlX2VtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJFTVBUWSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVtcHR5XzIuRU1QVFk7CiAgICB9IH0pOwogICAgdmFyIG5ldmVyXzIgPSByZXF1aXJlX25ldmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJORVZFUiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5ldmVyXzIuTkVWRVI7CiAgICB9IH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHlwZXMyKCksIGV4cG9ydHMyKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25maWciLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25maWdfMS5jb25maWc7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhdWRpdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQ7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0VGltZV8xID0gcmVxdWlyZV9hdWRpdFRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImF1ZGl0VGltZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0VGltZV8xLmF1ZGl0VGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyXzEgPSByZXF1aXJlX2J1ZmZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyXzEuYnVmZmVyOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJDb3VudF8xID0gcmVxdWlyZV9idWZmZXJDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyQ291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJDb3VudF8xLmJ1ZmZlckNvdW50OwogICAgfSB9KTsKICAgIHZhciBidWZmZXJUaW1lXzEgPSByZXF1aXJlX2J1ZmZlclRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlclRpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJUaW1lXzEuYnVmZmVyVGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyVG9nZ2xlXzEgPSByZXF1aXJlX2J1ZmZlclRvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyVG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyVG9nZ2xlXzEuYnVmZmVyVG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJXaGVuXzEgPSByZXF1aXJlX2J1ZmZlcldoZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlcldoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJXaGVuXzEuYnVmZmVyV2hlbjsKICAgIH0gfSk7CiAgICB2YXIgY2F0Y2hFcnJvcl8xID0gcmVxdWlyZV9jYXRjaEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjYXRjaEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY2F0Y2hFcnJvcl8xLmNhdGNoRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIGNvbWJpbmVBbGxfMSA9IHJlcXVpcmVfY29tYmluZUFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29tYmluZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbWJpbmVBbGxfMS5jb21iaW5lQWxsOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0QWxsXzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3RBbGwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RBbGwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0QWxsXzEuY29tYmluZUxhdGVzdEFsbDsKICAgIH0gfSk7CiAgICB2YXIgY29tYmluZUxhdGVzdFdpdGhfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RXaXRoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29tYmluZUxhdGVzdFdpdGhfMS5jb21iaW5lTGF0ZXN0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsOwogICAgfSB9KTsKICAgIHZhciBjb25jYXRNYXBfMSA9IHJlcXVpcmVfY29uY2F0TWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25jYXRNYXBfMS5jb25jYXRNYXA7CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdE1hcFRvXzEgPSByZXF1aXJlX2NvbmNhdE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdE1hcFRvXzEuY29uY2F0TWFwVG87CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdFdpdGhfMSA9IHJlcXVpcmVfY29uY2F0V2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdFdpdGhfMS5jb25jYXRXaXRoOwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbm5lY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdDsKICAgIH0gfSk7CiAgICB2YXIgY291bnRfMSA9IHJlcXVpcmVfY291bnQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvdW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY291bnRfMS5jb3VudDsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VfMSA9IHJlcXVpcmVfZGVib3VuY2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImRlYm91bmNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VfMS5kZWJvdW5jZTsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VUaW1lXzEgPSByZXF1aXJlX2RlYm91bmNlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVib3VuY2VUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VUaW1lXzEuZGVib3VuY2VUaW1lOwogICAgfSB9KTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmYXVsdElmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5OwogICAgfSB9KTsKICAgIHZhciBkZWxheV8xID0gcmVxdWlyZV9kZWxheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVsYXkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheV8xLmRlbGF5OwogICAgfSB9KTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJkZWxheVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW47CiAgICB9IH0pOwogICAgdmFyIGRlbWF0ZXJpYWxpemVfMSA9IHJlcXVpcmVfZGVtYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVtYXRlcmlhbGl6ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGRlbWF0ZXJpYWxpemVfMS5kZW1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdF8xID0gcmVxdWlyZV9kaXN0aW5jdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdF8xLmRpc3RpbmN0OwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbENoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbEtleUNoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xLmRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBlbGVtZW50QXRfMSA9IHJlcXVpcmVfZWxlbWVudEF0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJlbGVtZW50QXQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbGVtZW50QXRfMS5lbGVtZW50QXQ7CiAgICB9IH0pOwogICAgdmFyIGVuZFdpdGhfMSA9IHJlcXVpcmVfZW5kV2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW5kV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVuZFdpdGhfMS5lbmRXaXRoOwogICAgfSB9KTsKICAgIHZhciBldmVyeV8xID0gcmVxdWlyZV9ldmVyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXZlcnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBldmVyeV8xLmV2ZXJ5OwogICAgfSB9KTsKICAgIHZhciBleGhhdXN0XzEgPSByZXF1aXJlX2V4aGF1c3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImV4aGF1c3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGhhdXN0XzEuZXhoYXVzdDsKICAgIH0gfSk7CiAgICB2YXIgZXhoYXVzdEFsbF8xID0gcmVxdWlyZV9leGhhdXN0QWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleGhhdXN0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZXhoYXVzdEFsbF8xLmV4aGF1c3RBbGw7CiAgICB9IH0pOwogICAgdmFyIGV4aGF1c3RNYXBfMSA9IHJlcXVpcmVfZXhoYXVzdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXhoYXVzdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGV4aGF1c3RNYXBfMS5leGhhdXN0TWFwOwogICAgfSB9KTsKICAgIHZhciBleHBhbmRfMSA9IHJlcXVpcmVfZXhwYW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleHBhbmQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleHBhbmRfMS5leHBhbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbHRlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbHRlcl8xLmZpbHRlcjsKICAgIH0gfSk7CiAgICB2YXIgZmluYWxpemVfMSA9IHJlcXVpcmVfZmluYWxpemUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmFsaXplIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluYWxpemVfMS5maW5hbGl6ZTsKICAgIH0gfSk7CiAgICB2YXIgZmluZF8xID0gcmVxdWlyZV9maW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJmaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluZF8xLmZpbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbmRJbmRleF8xID0gcmVxdWlyZV9maW5kSW5kZXgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmRJbmRleCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbmRJbmRleF8xLmZpbmRJbmRleDsKICAgIH0gfSk7CiAgICB2YXIgZmlyc3RfMSA9IHJlcXVpcmVfZmlyc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpcnN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmlyc3RfMS5maXJzdDsKICAgIH0gfSk7CiAgICB2YXIgZ3JvdXBCeV8xID0gcmVxdWlyZV9ncm91cEJ5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJncm91cEJ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ3JvdXBCeV8xLmdyb3VwQnk7CiAgICB9IH0pOwogICAgdmFyIGlnbm9yZUVsZW1lbnRzXzEgPSByZXF1aXJlX2lnbm9yZUVsZW1lbnRzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpZ25vcmVFbGVtZW50cyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlnbm9yZUVsZW1lbnRzXzEuaWdub3JlRWxlbWVudHM7CiAgICB9IH0pOwogICAgdmFyIGlzRW1wdHlfMSA9IHJlcXVpcmVfaXNFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaXNFbXB0eSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlzRW1wdHlfMS5pc0VtcHR5OwogICAgfSB9KTsKICAgIHZhciBsYXN0XzEgPSByZXF1aXJlX2xhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImxhc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBsYXN0XzEubGFzdDsKICAgIH0gfSk7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWFwXzEubWFwOwogICAgfSB9KTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXBUb18xLm1hcFRvOwogICAgfSB9KTsKICAgIHZhciBtYXRlcmlhbGl6ZV8xID0gcmVxdWlyZV9tYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWF0ZXJpYWxpemUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXRlcmlhbGl6ZV8xLm1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBtYXhfMSA9IHJlcXVpcmVfbWF4KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtYXgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXhfMS5tYXg7CiAgICB9IH0pOwogICAgdmFyIG1lcmdlQWxsXzEgPSByZXF1aXJlX21lcmdlQWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lcmdlQWxsXzEubWVyZ2VBbGw7CiAgICB9IH0pOwogICAgdmFyIGZsYXRNYXBfMSA9IHJlcXVpcmVfZmxhdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmxhdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZsYXRNYXBfMS5mbGF0TWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcFRvXzEgPSByZXF1aXJlX21lcmdlTWFwVG8oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1lcmdlTWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcFRvXzEubWVyZ2VNYXBUbzsKICAgIH0gfSk7CiAgICB2YXIgbWVyZ2VTY2FuXzEgPSByZXF1aXJlX21lcmdlU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VTY2FuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWVyZ2VTY2FuXzEubWVyZ2VTY2FuOwogICAgfSB9KTsKICAgIHZhciBtZXJnZVdpdGhfMSA9IHJlcXVpcmVfbWVyZ2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZVdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZVdpdGhfMS5tZXJnZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIG1pbl8xID0gcmVxdWlyZV9taW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1pbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1pbl8xLm1pbjsKICAgIH0gfSk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibXVsdGljYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbXVsdGljYXN0XzEubXVsdGljYXN0OwogICAgfSB9KTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJvYnNlcnZlT24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvYnNlcnZlT25fMS5vYnNlcnZlT247CiAgICB9IH0pOwogICAgdmFyIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm9uRXJyb3JSZXN1bWVOZXh0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xLm9uRXJyb3JSZXN1bWVOZXh0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgcGFpcndpc2VfMSA9IHJlcXVpcmVfcGFpcndpc2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBhaXJ3aXNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGFpcndpc2VfMS5wYWlyd2lzZTsKICAgIH0gfSk7CiAgICB2YXIgcGx1Y2tfMSA9IHJlcXVpcmVfcGx1Y2soKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBsdWNrIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGx1Y2tfMS5wbHVjazsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaF8xID0gcmVxdWlyZV9wdWJsaXNoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaF8xLnB1Ymxpc2g7CiAgICB9IH0pOwogICAgdmFyIHB1Ymxpc2hCZWhhdmlvcl8xID0gcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hCZWhhdmlvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHB1Ymxpc2hCZWhhdmlvcl8xLnB1Ymxpc2hCZWhhdmlvcjsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaExhc3RfMSA9IHJlcXVpcmVfcHVibGlzaExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaExhc3RfMS5wdWJsaXNoTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaFJlcGxheV8xID0gcmVxdWlyZV9wdWJsaXNoUmVwbGF5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaFJlcGxheV8xLnB1Ymxpc2hSZXBsYXk7CiAgICB9IH0pOwogICAgdmFyIHJhY2VXaXRoXzEgPSByZXF1aXJlX3JhY2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyYWNlV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VXaXRoXzEucmFjZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlZHVjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZTsKICAgIH0gfSk7CiAgICB2YXIgcmVwZWF0XzEyID0gcmVxdWlyZV9yZXBlYXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlcGVhdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdF8xMi5yZXBlYXQ7CiAgICB9IH0pOwogICAgdmFyIHJlcGVhdFdoZW5fMSA9IHJlcXVpcmVfcmVwZWF0V2hlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVwZWF0V2hlbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdFdoZW5fMS5yZXBlYXRXaGVuOwogICAgfSB9KTsKICAgIHZhciByZXRyeV8xID0gcmVxdWlyZV9yZXRyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmV0cnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeV8xLnJldHJ5OwogICAgfSB9KTsKICAgIHZhciByZXRyeVdoZW5fMSA9IHJlcXVpcmVfcmV0cnlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZXRyeVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeVdoZW5fMS5yZXRyeVdoZW47CiAgICB9IH0pOwogICAgdmFyIHJlZkNvdW50XzEgPSByZXF1aXJlX3JlZkNvdW50KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZWZDb3VudCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZkNvdW50XzEucmVmQ291bnQ7CiAgICB9IH0pOwogICAgdmFyIHNhbXBsZV8xID0gcmVxdWlyZV9zYW1wbGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNhbXBsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZTsKICAgIH0gfSk7CiAgICB2YXIgc2FtcGxlVGltZV8xID0gcmVxdWlyZV9zYW1wbGVUaW1lKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzYW1wbGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2FtcGxlVGltZV8xLnNhbXBsZVRpbWU7CiAgICB9IH0pOwogICAgdmFyIHNjYW5fMSA9IHJlcXVpcmVfc2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjYW5fMS5zY2FuOwogICAgfSB9KTsKICAgIHZhciBzZXF1ZW5jZUVxdWFsXzEgPSByZXF1aXJlX3NlcXVlbmNlRXF1YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNlcXVlbmNlRXF1YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzZXF1ZW5jZUVxdWFsXzEuc2VxdWVuY2VFcXVhbDsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVfMSA9IHJlcXVpcmVfc2hhcmUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZTsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVSZXBsYXlfMSA9IHJlcXVpcmVfc2hhcmVSZXBsYXkoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVSZXBsYXlfMS5zaGFyZVJlcGxheTsKICAgIH0gfSk7CiAgICB2YXIgc2luZ2xlXzEgPSByZXF1aXJlX3NpbmdsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2luZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2luZ2xlXzEuc2luZ2xlOwogICAgfSB9KTsKICAgIHZhciBza2lwXzEgPSByZXF1aXJlX3NraXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwXzEuc2tpcDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcExhc3RfMSA9IHJlcXVpcmVfc2tpcExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXBMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcExhc3RfMS5za2lwTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcFVudGlsXzEgPSByZXF1aXJlX3NraXBVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2tpcFVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcFVudGlsXzEuc2tpcFVudGlsOwogICAgfSB9KTsKICAgIHZhciBza2lwV2hpbGVfMSA9IHJlcXVpcmVfc2tpcFdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJza2lwV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwV2hpbGVfMS5za2lwV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHN0YXJ0V2l0aF8xID0gcmVxdWlyZV9zdGFydFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0YXJ0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN0YXJ0V2l0aF8xLnN0YXJ0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN1YnNjcmliZU9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbjsKICAgIH0gfSk7CiAgICB2YXIgc3dpdGNoQWxsXzEgPSByZXF1aXJlX3N3aXRjaEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3dpdGNoQWxsXzEuc3dpdGNoQWxsOwogICAgfSB9KTsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXA7CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaE1hcFRvXzEgPSByZXF1aXJlX3N3aXRjaE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcFRvXzEuc3dpdGNoTWFwVG87CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaFNjYW5fMSA9IHJlcXVpcmVfc3dpdGNoU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoU2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaFNjYW5fMS5zd2l0Y2hTY2FuOwogICAgfSB9KTsKICAgIHZhciB0YWtlXzEgPSByZXF1aXJlX3Rha2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlXzEudGFrZTsKICAgIH0gfSk7CiAgICB2YXIgdGFrZUxhc3RfMSA9IHJlcXVpcmVfdGFrZUxhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2VMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZUxhc3RfMS50YWtlTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgdGFrZVVudGlsXzEgPSByZXF1aXJlX3Rha2VVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGFrZVVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZVVudGlsXzEudGFrZVVudGlsOwogICAgfSB9KTsKICAgIHZhciB0YWtlV2hpbGVfMSA9IHJlcXVpcmVfdGFrZVdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0YWtlV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlV2hpbGVfMS50YWtlV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHRhcF8xID0gcmVxdWlyZV90YXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRhcF8xLnRhcDsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVfMSA9IHJlcXVpcmVfdGhyb3R0bGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm90dGxlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVfMS50aHJvdHRsZTsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVUaW1lXzEgPSByZXF1aXJlX3Rocm90dGxlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGhyb3R0bGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVUaW1lXzEudGhyb3R0bGVUaW1lOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aHJvd0lmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHk7CiAgICB9IH0pOwogICAgdmFyIHRpbWVJbnRlcnZhbF8xID0gcmVxdWlyZV90aW1lSW50ZXJ2YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVJbnRlcnZhbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVJbnRlcnZhbF8xLnRpbWVJbnRlcnZhbDsKICAgIH0gfSk7CiAgICB2YXIgdGltZW91dF8yID0gcmVxdWlyZV90aW1lb3V0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZW91dF8yLnRpbWVvdXQ7CiAgICB9IH0pOwogICAgdmFyIHRpbWVvdXRXaXRoXzEgPSByZXF1aXJlX3RpbWVvdXRXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRXaXRoXzEudGltZW91dFdpdGg7CiAgICB9IH0pOwogICAgdmFyIHRpbWVzdGFtcF8xID0gcmVxdWlyZV90aW1lc3RhbXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVzdGFtcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcF8xLnRpbWVzdGFtcDsKICAgIH0gfSk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidG9BcnJheSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRvQXJyYXlfMTIudG9BcnJheTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93XzEgPSByZXF1aXJlX3dpbmRvdygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93XzEud2luZG93OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dDb3VudF8xID0gcmVxdWlyZV93aW5kb3dDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93Q291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dDb3VudF8xLndpbmRvd0NvdW50OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dUaW1lXzEgPSByZXF1aXJlX3dpbmRvd1RpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1RpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dUaW1lXzEud2luZG93VGltZTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93VG9nZ2xlXzEgPSByZXF1aXJlX3dpbmRvd1RvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93VG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93VG9nZ2xlXzEud2luZG93VG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dXaGVuXzEgPSByZXF1aXJlX3dpbmRvd1doZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1doZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dXaGVuXzEud2luZG93V2hlbjsKICAgIH0gfSk7CiAgICB2YXIgd2l0aExhdGVzdEZyb21fMSA9IHJlcXVpcmVfd2l0aExhdGVzdEZyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpdGhMYXRlc3RGcm9tIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2l0aExhdGVzdEZyb21fMS53aXRoTGF0ZXN0RnJvbTsKICAgIH0gfSk7CiAgICB2YXIgemlwQWxsXzEgPSByZXF1aXJlX3ppcEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwQWxsXzEuemlwQWxsOwogICAgfSB9KTsKICAgIHZhciB6aXBXaXRoXzEgPSByZXF1aXJlX3ppcFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInppcFdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB6aXBXaXRoXzEuemlwV2l0aDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlBhdGhJc0ZpbGVFeGNlcHRpb24gPSBleHBvcnRzMi5QYXRoSXNEaXJlY3RvcnlFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVua25vd25FeGNlcHRpb24gPSBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIEJhc2VFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIEVycm9yIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICIiKSB7CiAgICAgICAgc3VwZXIobWVzc2FnZSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gQmFzZUV4Y2VwdGlvbjsKICAgIHZhciBVbmtub3duRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSkgewogICAgICAgIHN1cGVyKG1lc3NhZ2UpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkV4Y2VwdGlvbiA9IFVua25vd25FeGNlcHRpb247CiAgICB2YXIgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBhbHJlYWR5IGV4aXN0LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbiA9IEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb247CiAgICB2YXIgUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGRpcmVjdG9yeS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbiA9IFBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbjsKICAgIHZhciBQYXRoSXNGaWxlRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGZpbGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoSXNGaWxlRXhjZXB0aW9uID0gUGF0aElzRmlsZUV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xpdGVyYWxzLmpzCnZhciByZXF1aXJlX2xpdGVyYWxzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9saXRlcmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub25lTGluZSA9IG9uZUxpbmU7CiAgICBleHBvcnRzMi5pbmRlbnRCeSA9IGluZGVudEJ5OwogICAgZXhwb3J0czIuc3RyaXBJbmRlbnQgPSBzdHJpcEluZGVudDsKICAgIGV4cG9ydHMyLnN0cmlwSW5kZW50cyA9IHN0cmlwSW5kZW50czsKICAgIGV4cG9ydHMyLnRyaW1OZXdsaW5lcyA9IHRyaW1OZXdsaW5lczsKICAgIGZ1bmN0aW9uIG9uZUxpbmUoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkrL2dtLCAiICIpLnRyaW0oKTsKICAgIH0KICAgIGZ1bmN0aW9uIGluZGVudEJ5KGluZGVudGF0aW9ucykgewogICAgICBsZXQgaSA9ICIiOwogICAgICB3aGlsZSAoaW5kZW50YXRpb25zLS0pIHsKICAgICAgICBpICs9ICIgIjsKICAgICAgfQogICAgICByZXR1cm4gKHN0cmluZ3MzLCAuLi52YWx1ZXMpID0+IHsKICAgICAgICByZXR1cm4gaSArIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpLnJlcGxhY2UoL1xuL2csICJcbiIgKyBpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgY29uc3QgZW5kUmVzdWx0ID0gU3RyaW5nLnJhdyhzdHJpbmdzMywgLi4udmFsdWVzKTsKICAgICAgY29uc3QgbWF0Y2ggPSBlbmRSZXN1bHQubWF0Y2goL15bIFx0XSooPz1cUykvZ20pOwogICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gZW5kUmVzdWx0OwogICAgICB9CiAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgubWluKC4uLm1hdGNoLm1hcCgoZWwpID0+IGVsLmxlbmd0aCkpOwogICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCJeWyBcXHRdeyIgKyBpbmRlbnQgKyAifSIsICJnbSIpOwogICAgICByZXR1cm4gKGluZGVudCA+IDAgPyBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICIiKSA6IGVuZFJlc3VsdCkudHJpbSgpOwogICAgfQogICAgZnVuY3Rpb24gc3RyaXBJbmRlbnRzKHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgcmV0dXJuIFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykuc3BsaXQoIlxuIikubWFwKChsaW5lKSA9PiBsaW5lLnRyaW0oKSkuam9pbigiXG4iKS50cmltKCk7CiAgICB9CiAgICBmdW5jdGlvbiB0cmltTmV3bGluZXMoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoL14oPzpccj9cbikrLywgIiIpLnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkkLywgIiIpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvc3RyaW5ncy5qcwp2YXIgcmVxdWlyZV9zdHJpbmdzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9zdHJpbmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWNhbWVsaXplID0gZGVjYW1lbGl6ZTsKICAgIGV4cG9ydHMyLmRhc2hlcml6ZSA9IGRhc2hlcml6ZTsKICAgIGV4cG9ydHMyLmNhbWVsaXplID0gY2FtZWxpemU7CiAgICBleHBvcnRzMi5jbGFzc2lmeSA9IGNsYXNzaWZ5OwogICAgZXhwb3J0czIudW5kZXJzY29yZSA9IHVuZGVyc2NvcmU7CiAgICBleHBvcnRzMi5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTsKICAgIGV4cG9ydHMyLmxldmVuc2h0ZWluID0gbGV2ZW5zaHRlaW47CiAgICB2YXIgU1RSSU5HX0RBU0hFUklaRV9SRUdFWFAgPSAvWyBfXS9nOwogICAgdmFyIFNUUklOR19ERUNBTUVMSVpFX1JFR0VYUCA9IC8oW2EtelxkXSkoW0EtWl0pL2c7CiAgICB2YXIgU1RSSU5HX0NBTUVMSVpFX1JFR0VYUCA9IC8oLXxffFwufFxzKSsoLik/L2c7CiAgICB2YXIgU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEgPSAvKFthLXpcZF0pKFtBLVpdKykvZzsKICAgIHZhciBTVFJJTkdfVU5ERVJTQ09SRV9SRUdFWFBfMiA9IC8tfFxzKy9nOwogICAgZnVuY3Rpb24gZGVjYW1lbGl6ZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX0RFQ0FNRUxJWkVfUkVHRVhQLCAiJDFfJDIiKS50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gZGFzaGVyaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIGRlY2FtZWxpemUoc3RyMikucmVwbGFjZShTVFJJTkdfREFTSEVSSVpFX1JFR0VYUCwgIi0iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZShTVFJJTkdfQ0FNRUxJWkVfUkVHRVhQLCAoX21hdGNoLCBfc2VwYXJhdG9yLCBjaHIpID0+IHsKICAgICAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAiIjsKICAgICAgfSkucmVwbGFjZSgvXihbQS1aXSkvLCAobWF0Y2gpID0+IG1hdGNoLnRvTG93ZXJDYXNlKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2xhc3NpZnkoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5zcGxpdCgiLiIpLm1hcCgocGFydCkgPT4gY2FwaXRhbGl6ZShjYW1lbGl6ZShwYXJ0KSkpLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gdW5kZXJzY29yZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEsICIkMV8kMiIpLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzIsICJfIikudG9Mb3dlckNhc2UoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cjIuc2xpY2UoMSk7CiAgICB9CiAgICBmdW5jdGlvbiBsZXZlbnNodGVpbihhLCBiKSB7CiAgICAgIGlmIChhLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGIubGVuZ3RoOwogICAgICB9CiAgICAgIGlmIChiLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGEubGVuZ3RoOwogICAgICB9CiAgICAgIGNvbnN0IG1hdHJpeCA9IFtdOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWF0cml4W2ldID0gW2ldOwogICAgICB9CiAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGEubGVuZ3RoOyBqKyspIHsKICAgICAgICBtYXRyaXhbMF1bal0gPSBqOwogICAgICB9CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGIubGVuZ3RoOyBpKyspIHsKICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBhLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICBpZiAoYi5jaGFyQXQoaSAtIDEpID09IGEuY2hhckF0KGogLSAxKSkgewogICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbaSAtIDFdW2ogLSAxXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IE1hdGgubWluKAogICAgICAgICAgICAgIG1hdHJpeFtpIC0gMV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24KICAgICAgICAgICAgICBtYXRyaXhbaV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBpbnNlcnRpb24KICAgICAgICAgICAgICBtYXRyaXhbaSAtIDFdW2pdICsgMQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbWF0cml4W2IubGVuZ3RoXVthLmxlbmd0aF07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMKdmFyIHJlcXVpcmVfb2JqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZXBDb3B5ID0gZGVlcENvcHk7CiAgICB2YXIgY29weVN5bWJvbCA9IFN5bWJvbCgpOwogICAgZnVuY3Rpb24gZGVlcENvcHkodmFsdWUpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgobykgPT4gZGVlcENvcHkobykpOwogICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25zdCB2YWx1ZUNhc3RlZCA9IHZhbHVlOwogICAgICAgIGlmICh2YWx1ZUNhc3RlZFtjb3B5U3ltYm9sXSkgewogICAgICAgICAgcmV0dXJuIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWVDYXN0ZWRbInRvSlNPTiJdKSB7CiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZUNhc3RlZFsidG9KU09OIl0oKSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZUNhc3RlZCkpOwogICAgICAgIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdID0gY29weTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZUNhc3RlZCkpIHsKICAgICAgICAgIGNvcHlba2V5XSA9IGRlZXBDb3B5KHZhbHVlQ2FzdGVkW2tleV0pOwogICAgICAgIH0KICAgICAgICBkZWxldGUgdmFsdWVDYXN0ZWRbY29weVN5bWJvbF07CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMKdmFyIHJlcXVpcmVfYmFzZTY0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgaW50VG9DaGFyTWFwID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLnNwbGl0KCIiKTsKICAgIGV4cG9ydHMyLmVuY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkgewogICAgICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTsKICAgICAgfQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJNdXN0IGJlIGJldHdlZW4gMCBhbmQgNjM6ICIgKyBudW1iZXIpOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2Jhc2U2NC12bHEuanMKdmFyIHJlcXVpcmVfYmFzZTY0X3ZscSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYmFzZTY0LXZscS5qcyIoZXhwb3J0czIpIHsKICAgIHZhciBiYXNlNjQgPSByZXF1aXJlX2Jhc2U2NCgpOwogICAgdmFyIFZMUV9CQVNFX1NISUZUID0gNTsKICAgIHZhciBWTFFfQkFTRSA9IDEgPDwgVkxRX0JBU0VfU0hJRlQ7CiAgICB2YXIgVkxRX0JBU0VfTUFTSyA9IFZMUV9CQVNFIC0gMTsKICAgIHZhciBWTFFfQ09OVElOVUFUSU9OX0JJVCA9IFZMUV9CQVNFOwogICAgZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7CiAgICAgIHJldHVybiBhVmFsdWUgPCAwID8gKC1hVmFsdWUgPDwgMSkgKyAxIDogKGFWYWx1ZSA8PCAxKSArIDA7CiAgICB9CiAgICBleHBvcnRzMi5lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZW5jb2RlKGFWYWx1ZSkgewogICAgICBsZXQgZW5jb2RlZCA9ICIiOwogICAgICBsZXQgZGlnaXQ7CiAgICAgIGxldCB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpOwogICAgICBkbyB7CiAgICAgICAgZGlnaXQgPSB2bHEgJiBWTFFfQkFTRV9NQVNLOwogICAgICAgIHZscSA+Pj49IFZMUV9CQVNFX1NISUZUOwogICAgICAgIGlmICh2bHEgPiAwKSB7CiAgICAgICAgICBkaWdpdCB8PSBWTFFfQ09OVElOVUFUSU9OX0JJVDsKICAgICAgICB9CiAgICAgICAgZW5jb2RlZCArPSBiYXNlNjQuZW5jb2RlKGRpZ2l0KTsKICAgICAgfSB3aGlsZSAodmxxID4gMCk7CiAgICAgIHJldHVybiBlbmNvZGVkOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMKdmFyIHJlcXVpcmVfdXRpbDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMiKGV4cG9ydHMyKSB7CiAgICBmdW5jdGlvbiBnZXRBcmcoYUFyZ3MsIGFOYW1lLCBhRGVmYXVsdFZhbHVlKSB7CiAgICAgIGlmIChhTmFtZSBpbiBhQXJncykgewogICAgICAgIHJldHVybiBhQXJnc1thTmFtZV07CiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykgewogICAgICAgIHJldHVybiBhRGVmYXVsdFZhbHVlOwogICAgICB9CiAgICAgIHRocm93IG5ldyBFcnJvcignIicgKyBhTmFtZSArICciIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRBcmcgPSBnZXRBcmc7CiAgICB2YXIgdXJsUmVnZXhwID0gL14oPzooW1x3K1wtLl0rKTopP1wvXC8oPzooXHcrOlx3KylAKT8oW1x3Li1dKikoPzo6KFxkKykpPyguKikkLzsKICAgIHZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXCwuKyQvOwogICAgZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkgewogICAgICBjb25zdCBtYXRjaCA9IGFVcmwubWF0Y2godXJsUmVnZXhwKTsKICAgICAgaWYgKCFtYXRjaCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgc2NoZW1lOiBtYXRjaFsxXSwKICAgICAgICBhdXRoOiBtYXRjaFsyXSwKICAgICAgICBob3N0OiBtYXRjaFszXSwKICAgICAgICBwb3J0OiBtYXRjaFs0XSwKICAgICAgICBwYXRoOiBtYXRjaFs1XQogICAgICB9OwogICAgfQogICAgZXhwb3J0czIudXJsUGFyc2UgPSB1cmxQYXJzZTsKICAgIGZ1bmN0aW9uIHVybEdlbmVyYXRlKGFQYXJzZWRVcmwpIHsKICAgICAgbGV0IHVybDMgPSAiIjsKICAgICAgaWYgKGFQYXJzZWRVcmwuc2NoZW1lKSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLnNjaGVtZSArICI6IjsKICAgICAgfQogICAgICB1cmwzICs9ICIvLyI7CiAgICAgIGlmIChhUGFyc2VkVXJsLmF1dGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwuYXV0aCArICJAIjsKICAgICAgfQogICAgICBpZiAoYVBhcnNlZFVybC5ob3N0KSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLmhvc3Q7CiAgICAgIH0KICAgICAgaWYgKGFQYXJzZWRVcmwucG9ydCkgewogICAgICAgIHVybDMgKz0gIjoiICsgYVBhcnNlZFVybC5wb3J0OwogICAgICB9CiAgICAgIGlmIChhUGFyc2VkVXJsLnBhdGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwucGF0aDsKICAgICAgfQogICAgICByZXR1cm4gdXJsMzsKICAgIH0KICAgIGV4cG9ydHMyLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7CiAgICB2YXIgTUFYX0NBQ0hFRF9JTlBVVFMgPSAzMjsKICAgIGZ1bmN0aW9uIGxydU1lbW9pemUoZikgewogICAgICBjb25zdCBjYWNoZSA9IFtdOwogICAgICByZXR1cm4gZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhY2hlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoY2FjaGVbaV0uaW5wdXQgPT09IGlucHV0KSB7CiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBjYWNoZVswXTsKICAgICAgICAgICAgY2FjaGVbMF0gPSBjYWNoZVtpXTsKICAgICAgICAgICAgY2FjaGVbaV0gPSB0ZW1wOwogICAgICAgICAgICByZXR1cm4gY2FjaGVbMF0ucmVzdWx0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCByZXN1bHQgPSBmKGlucHV0KTsKICAgICAgICBjYWNoZS51bnNoaWZ0KHsKICAgICAgICAgIGlucHV0LAogICAgICAgICAgcmVzdWx0CiAgICAgICAgfSk7CiAgICAgICAgaWYgKGNhY2hlLmxlbmd0aCA+IE1BWF9DQUNIRURfSU5QVVRTKSB7CiAgICAgICAgICBjYWNoZS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0KICAgIHZhciBub3JtYWxpemUgPSBscnVNZW1vaXplKGZ1bmN0aW9uIG5vcm1hbGl6ZTIoYVBhdGgpIHsKICAgICAgbGV0IHBhdGggPSBhUGF0aDsKICAgICAgY29uc3QgdXJsMyA9IHVybFBhcnNlKGFQYXRoKTsKICAgICAgaWYgKHVybDMpIHsKICAgICAgICBpZiAoIXVybDMucGF0aCkgewogICAgICAgICAgcmV0dXJuIGFQYXRoOwogICAgICAgIH0KICAgICAgICBwYXRoID0gdXJsMy5wYXRoOwogICAgICB9CiAgICAgIGNvbnN0IGlzQWJzb2x1dGUgPSBleHBvcnRzMi5pc0Fic29sdXRlKHBhdGgpOwogICAgICBjb25zdCBwYXJ0cyA9IFtdOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgaSA9IDA7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgc3RhcnQgPSBpOwogICAgICAgIGkgPSBwYXRoLmluZGV4T2YoIi8iLCBzdGFydCk7CiAgICAgICAgaWYgKGkgPT09IC0xKSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQsIGkpKTsKICAgICAgICAgIHdoaWxlIChpIDwgcGF0aC5sZW5ndGggJiYgcGF0aFtpXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgbGV0IHVwID0gMDsKICAgICAgZm9yIChpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb25zdCBwYXJ0ID0gcGFydHNbaV07CiAgICAgICAgaWYgKHBhcnQgPT09ICIuIikgewogICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwogICAgICAgIH0gZWxzZSBpZiAocGFydCA9PT0gIi4uIikgewogICAgICAgICAgdXArKzsKICAgICAgICB9IGVsc2UgaWYgKHVwID4gMCkgewogICAgICAgICAgaWYgKHBhcnQgPT09ICIiKSB7CiAgICAgICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApOwogICAgICAgICAgICB1cCA9IDA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7CiAgICAgICAgICAgIHVwLS07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHBhdGggPSBwYXJ0cy5qb2luKCIvIik7CiAgICAgIGlmIChwYXRoID09PSAiIikgewogICAgICAgIHBhdGggPSBpc0Fic29sdXRlID8gIi8iIDogIi4iOwogICAgICB9CiAgICAgIGlmICh1cmwzKSB7CiAgICAgICAgdXJsMy5wYXRoID0gcGF0aDsKICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUodXJsMyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGg7CiAgICB9KTsKICAgIGV4cG9ydHMyLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTsKICAgIGZ1bmN0aW9uIGpvaW4yKGFSb290LCBhUGF0aCkgewogICAgICBpZiAoYVJvb3QgPT09ICIiKSB7CiAgICAgICAgYVJvb3QgPSAiLiI7CiAgICAgIH0KICAgICAgaWYgKGFQYXRoID09PSAiIikgewogICAgICAgIGFQYXRoID0gIi4iOwogICAgICB9CiAgICAgIGNvbnN0IGFQYXRoVXJsID0gdXJsUGFyc2UoYVBhdGgpOwogICAgICBjb25zdCBhUm9vdFVybCA9IHVybFBhcnNlKGFSb290KTsKICAgICAgaWYgKGFSb290VXJsKSB7CiAgICAgICAgYVJvb3QgPSBhUm9vdFVybC5wYXRoIHx8ICIvIjsKICAgICAgfQogICAgICBpZiAoYVBhdGhVcmwgJiYgIWFQYXRoVXJsLnNjaGVtZSkgewogICAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgICAgYVBhdGhVcmwuc2NoZW1lID0gYVJvb3RVcmwuc2NoZW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUoYVBhdGhVcmwpOwogICAgICB9CiAgICAgIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkgewogICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgfQogICAgICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHsKICAgICAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICBjb25zdCBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiA/IGFQYXRoIDogbm9ybWFsaXplKGFSb290LnJlcGxhY2UoL1wvKyQvLCAiIikgKyAiLyIgKyBhUGF0aCk7CiAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgIGFSb290VXJsLnBhdGggPSBqb2luZWQ7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICByZXR1cm4gam9pbmVkOwogICAgfQogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uKGFQYXRoKSB7CiAgICAgIHJldHVybiBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiB8fCB1cmxSZWdleHAudGVzdChhUGF0aCk7CiAgICB9OwogICAgZnVuY3Rpb24gcmVsYXRpdmUoYVJvb3QsIGFQYXRoKSB7CiAgICAgIGlmIChhUm9vdCA9PT0gIiIpIHsKICAgICAgICBhUm9vdCA9ICIuIjsKICAgICAgfQogICAgICBhUm9vdCA9IGFSb290LnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgbGV0IGxldmVsID0gMDsKICAgICAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAiLyIpICE9PSAwKSB7CiAgICAgICAgY29uc3QgaW5kZXggPSBhUm9vdC5sYXN0SW5kZXhPZigiLyIpOwogICAgICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgICB9CiAgICAgICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7CiAgICAgICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXC9dKzpcLyk/XC8qJC8pKSB7CiAgICAgICAgICByZXR1cm4gYVBhdGg7CiAgICAgICAgfQogICAgICAgICsrbGV2ZWw7CiAgICAgIH0KICAgICAgcmV0dXJuIEFycmF5KGxldmVsICsgMSkuam9pbigiLi4vIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7CiAgICB9CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgdmFyIHN1cHBvcnRzTnVsbFByb3RvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IG9iaiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICByZXR1cm4gISgiX19wcm90b19fIiBpbiBvYmopOwogICAgfSgpOwogICAgZnVuY3Rpb24gaWRlbnRpdHkocykgewogICAgICByZXR1cm4gczsKICAgIH0KICAgIGZ1bmN0aW9uIHRvU2V0U3RyaW5nKGFTdHIpIHsKICAgICAgaWYgKGlzUHJvdG9TdHJpbmcoYVN0cikpIHsKICAgICAgICByZXR1cm4gIiQiICsgYVN0cjsKICAgICAgfQogICAgICByZXR1cm4gYVN0cjsKICAgIH0KICAgIGV4cG9ydHMyLnRvU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IHRvU2V0U3RyaW5nOwogICAgZnVuY3Rpb24gZnJvbVNldFN0cmluZyhhU3RyKSB7CiAgICAgIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7CiAgICAgICAgcmV0dXJuIGFTdHIuc2xpY2UoMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFTdHI7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IGZyb21TZXRTdHJpbmc7CiAgICBmdW5jdGlvbiBpc1Byb3RvU3RyaW5nKHMpIHsKICAgICAgaWYgKCFzKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0IGxlbmd0aCA9IHMubGVuZ3RoOwogICAgICBpZiAobGVuZ3RoIDwgOSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBpZiAocy5jaGFyQ29kZUF0KGxlbmd0aCAtIDEpICE9PSA5NSB8fCBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMikgIT09IDk1IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSAzKSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA0KSAhPT0gMTE2IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA2KSAhPT0gMTE0IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA3KSAhPT0gMTEyIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgfHwgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gbGVuZ3RoIC0gMTA7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgaWYgKHMuY2hhckNvZGVBdChpKSAhPT0gMzYpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyhtYXBwaW5nQSwgbWFwcGluZ0IsIG9ubHlDb21wYXJlT3JpZ2luYWwpIHsKICAgICAgbGV0IGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICByZXR1cm4gc3RyY21wKG1hcHBpbmdBLm5hbWUsIG1hcHBpbmdCLm5hbWUpOwogICAgfQogICAgZXhwb3J0czIuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMgPSBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9uczsKICAgIGZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQ7CiAgICBmdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7CiAgICAgIGlmIChhU3RyMSA9PT0gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMDsKICAgICAgfQogICAgICBpZiAoYVN0cjEgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBpZiAoYVN0cjIgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgaWYgKGFTdHIxID4gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQ7CiAgICBmdW5jdGlvbiBwYXJzZVNvdXJjZU1hcElucHV0KHN0cjIpIHsKICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyMi5yZXBsYWNlKC9eXCldfSdbXlxuXSpcbi8sICIiKSk7CiAgICB9CiAgICBleHBvcnRzMi5wYXJzZVNvdXJjZU1hcElucHV0ID0gcGFyc2VTb3VyY2VNYXBJbnB1dDsKICAgIGZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpIHsKICAgICAgc291cmNlVVJMID0gc291cmNlVVJMIHx8ICIiOwogICAgICBpZiAoc291cmNlUm9vdCkgewogICAgICAgIGlmIChzb3VyY2VSb290W3NvdXJjZVJvb3QubGVuZ3RoIC0gMV0gIT09ICIvIiAmJiBzb3VyY2VVUkxbMF0gIT09ICIvIikgewogICAgICAgICAgc291cmNlUm9vdCArPSAiLyI7CiAgICAgICAgfQogICAgICAgIHNvdXJjZVVSTCA9IHNvdXJjZVJvb3QgKyBzb3VyY2VVUkw7CiAgICAgIH0KICAgICAgaWYgKHNvdXJjZU1hcFVSTCkgewogICAgICAgIGNvbnN0IHBhcnNlZCA9IHVybFBhcnNlKHNvdXJjZU1hcFVSTCk7CiAgICAgICAgaWYgKCFwYXJzZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic291cmNlTWFwVVJMIGNvdWxkIG5vdCBiZSBwYXJzZWQiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5wYXRoKSB7CiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlZC5wYXRoLmxhc3RJbmRleE9mKCIvIik7CiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgICBwYXJzZWQucGF0aCA9IHBhcnNlZC5wYXRoLnN1YnN0cmluZygwLCBpbmRleCArIDEpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzb3VyY2VVUkwgPSBqb2luMih1cmxHZW5lcmF0ZShwYXJzZWQpLCBzb3VyY2VVUkwpOwogICAgICB9CiAgICAgIHJldHVybiBub3JtYWxpemUoc291cmNlVVJMKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXB1dGVTb3VyY2VVUkwgPSBjb21wdXRlU291cmNlVVJMOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzCnZhciByZXF1aXJlX2FycmF5X3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzIihleHBvcnRzMikgewogICAgdmFyIEFycmF5U2V0ID0gY2xhc3MgX0FycmF5U2V0IHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5fYXJyYXkgPSBbXTsKICAgICAgICB0aGlzLl9zZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS4KICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tQXJyYXkoYUFycmF5LCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3Qgc2V0MiA9IG5ldyBfQXJyYXlTZXQoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYUFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBzZXQyLmFkZChhQXJyYXlbaV0sIGFBbGxvd0R1cGxpY2F0ZXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0MjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW4KICAgICAgICogYWRkZWQsIHRoYW4gdGhvc2UgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHNpemUuCiAgICAgICAqCiAgICAgICAqIEByZXR1cm5zIE51bWJlcgogICAgICAgKi8KICAgICAgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fc2V0LnNpemU7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoaXMgc2V0LgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGFkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmhhcyhhU3RyKTsKICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9hcnJheS5sZW5ndGg7CiAgICAgICAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgICB0aGlzLl9hcnJheS5wdXNoKGFTdHIpOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7CiAgICAgICAgICB0aGlzLl9zZXQuc2V0KGFTdHIsIGlkeCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJcyB0aGUgZ2l2ZW4gc3RyaW5nIGEgbWVtYmVyIG9mIHRoaXMgc2V0PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGhhcyhhU3RyKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGluZGV4T2YoYVN0cikgewogICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7CiAgICAgICAgaWYgKGlkeCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gaWR4OwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVN0ciArICciIGlzIG5vdCBpbiB0aGUgc2V0LicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXaGF0IGlzIHRoZSBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleD8KICAgICAgICoKICAgICAgICogQHBhcmFtIE51bWJlciBhSWR4CiAgICAgICAqLwogICAgICBhdChhSWR4KSB7CiAgICAgICAgaWYgKGFJZHggPj0gMCAmJiBhSWR4IDwgdGhpcy5fYXJyYXkubGVuZ3RoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYXJyYXlbYUlkeF07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBFcnJvcigiTm8gZWxlbWVudCBpbmRleGVkIGJ5ICIgKyBhSWR4KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgKHdoaWNoIGhhcyB0aGUgcHJvcGVyIGluZGljZXMKICAgICAgICogaW5kaWNhdGVkIGJ5IGluZGV4T2YpLiBOb3RlIHRoYXQgdGhpcyBpcyBhIGNvcHkgb2YgdGhlIGludGVybmFsIGFycmF5IHVzZWQKICAgICAgICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS4KICAgICAgICovCiAgICAgIHRvQXJyYXkoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5LnNsaWNlKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BcnJheVNldCA9IEFycmF5U2V0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzCnZhciByZXF1aXJlX21hcHBpbmdfbGlzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzIihleHBvcnRzMikgewogICAgdmFyIHV0aWwgPSByZXF1aXJlX3V0aWwyKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKG1hcHBpbmdBLCBtYXBwaW5nQikgewogICAgICBjb25zdCBsaW5lQSA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmU7CiAgICAgIGNvbnN0IGxpbmVCID0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTsKICAgICAgY29uc3QgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjsKICAgICAgY29uc3QgY29sdW1uQiA9IG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjsKICAgICAgcmV0dXJuIGxpbmVCID4gbGluZUEgfHwgbGluZUIgPT0gbGluZUEgJiYgY29sdW1uQiA+PSBjb2x1bW5BIHx8IHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCKSA8PSAwOwogICAgfQogICAgdmFyIE1hcHBpbmdMaXN0ID0gY2xhc3MgewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLl9hcnJheSA9IFtdOwogICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgdGhpcy5fbGFzdCA9IHsgZ2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMCB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJdGVyYXRlIHRocm91Z2ggaW50ZXJuYWwgaXRlbXMuIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBzYW1lIGFyZ3VtZW50cyB0aGF0CiAgICAgICAqIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgdGFrZXMuCiAgICAgICAqCiAgICAgICAqIE5PVEU6IFRoZSBvcmRlciBvZiB0aGUgbWFwcGluZ3MgaXMgTk9UIGd1YXJhbnRlZWQuCiAgICAgICAqLwogICAgICB1bnNvcnRlZEZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZykgewogICAgICAgIHRoaXMuX2FycmF5LmZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc291cmNlIG1hcHBpbmcuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmcKICAgICAgICovCiAgICAgIGFkZChhTWFwcGluZykgewogICAgICAgIGlmIChnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKHRoaXMuX2xhc3QsIGFNYXBwaW5nKSkgewogICAgICAgICAgdGhpcy5fbGFzdCA9IGFNYXBwaW5nOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBmbGF0LCBzb3J0ZWQgYXJyYXkgb2YgbWFwcGluZ3MuIFRoZSBtYXBwaW5ncyBhcmUgc29ydGVkIGJ5CiAgICAgICAqIGdlbmVyYXRlZCBwb3NpdGlvbi4KICAgICAgICoKICAgICAgICogV0FSTklORzogVGhpcyBtZXRob2QgcmV0dXJucyBpbnRlcm5hbCBkYXRhIHdpdGhvdXQgY29weWluZywgZm9yCiAgICAgICAqIHBlcmZvcm1hbmNlLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgTk9UIGJlIG11dGF0ZWQsIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcwogICAgICAgKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93bgogICAgICAgKiBjb3B5LgogICAgICAgKi8KICAgICAgdG9BcnJheSgpIHsKICAgICAgICBpZiAoIXRoaXMuX3NvcnRlZCkgewogICAgICAgICAgdGhpcy5fYXJyYXkuc29ydCh1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKTsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9hcnJheTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcwp2YXIgcmVxdWlyZV9zb3VyY2VfbWFwX2dlbmVyYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1nZW5lcmF0b3IuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgYmFzZTY0VkxRID0gcmVxdWlyZV9iYXNlNjRfdmxxKCk7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBBcnJheVNldCA9IHJlcXVpcmVfYXJyYXlfc2V0KCkuQXJyYXlTZXQ7CiAgICB2YXIgTWFwcGluZ0xpc3QgPSByZXF1aXJlX21hcHBpbmdfbGlzdCgpLk1hcHBpbmdMaXN0OwogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IGNsYXNzIF9Tb3VyY2VNYXBHZW5lcmF0b3IgewogICAgICBjb25zdHJ1Y3RvcihhQXJncykgewogICAgICAgIGlmICghYUFyZ3MpIHsKICAgICAgICAgIGFBcmdzID0ge307CiAgICAgICAgfQogICAgICAgIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgImZpbGUiLCBudWxsKTsKICAgICAgICB0aGlzLl9zb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2VSb290IiwgbnVsbCk7CiAgICAgICAgdGhpcy5fc2tpcFZhbGlkYXRpb24gPSB1dGlsLmdldEFyZyhhQXJncywgInNraXBWYWxpZGF0aW9uIiwgZmFsc2UpOwogICAgICAgIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICB0aGlzLl9uYW1lcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgIHRoaXMuX21hcHBpbmdzID0gbmV3IE1hcHBpbmdMaXN0KCk7CiAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lcgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAuCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHsKICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZVJvb3Q7CiAgICAgICAgY29uc3QgZ2VuZXJhdG9yID0gbmV3IF9Tb3VyY2VNYXBHZW5lcmF0b3IoewogICAgICAgICAgZmlsZTogYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUsCiAgICAgICAgICBzb3VyY2VSb290CiAgICAgICAgfSk7CiAgICAgICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGNvbnN0IG5ld01hcHBpbmcgPSB7CiAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkgewogICAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmV3TWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG5ld01hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXdNYXBwaW5nLm9yaWdpbmFsID0gewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGdlbmVyYXRvci5hZGRNYXBwaW5nKG5ld01hcHBpbmcpOwogICAgICAgIH0pOwogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgbGV0IHNvdXJjZVJlbGF0aXZlID0gc291cmNlRmlsZTsKICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9PSBudWxsKSB7CiAgICAgICAgICAgIHNvdXJjZVJlbGF0aXZlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZ2VuZXJhdG9yLl9zb3VyY2VzLmhhcyhzb3VyY2VSZWxhdGl2ZSkpIHsKICAgICAgICAgICAgZ2VuZXJhdG9yLl9zb3VyY2VzLmFkZChzb3VyY2VSZWxhdGl2ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7CiAgICAgICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7CiAgICAgICAgICAgIGdlbmVyYXRvci5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBnZW5lcmF0b3I7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHNpbmdsZSBtYXBwaW5nIGZyb20gb3JpZ2luYWwgc291cmNlIGxpbmUgYW5kIGNvbHVtbiB0byB0aGUgZ2VuZXJhdGVkCiAgICAgICAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBmb3IgdGhpcyBzb3VyY2UgbWFwIGJlaW5nIGNyZWF0ZWQuIFRoZSBtYXBwaW5nCiAgICAgICAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBnZW5lcmF0ZWQ6IEFuIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIChyZWxhdGl2ZSB0byB0aGUgc291cmNlUm9vdCkuCiAgICAgICAqICAgLSBuYW1lOiBBbiBvcHRpb25hbCBvcmlnaW5hbCB0b2tlbiBuYW1lIGZvciB0aGlzIG1hcHBpbmcuCiAgICAgICAqLwogICAgICBhZGRNYXBwaW5nKGFBcmdzKSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJnZW5lcmF0ZWQiKTsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAib3JpZ2luYWwiLCBudWxsKTsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICBsZXQgbmFtZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibmFtZSIsIG51bGwpOwogICAgICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHsKICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKICAgICAgICAgIHNvdXJjZSA9IFN0cmluZyhzb3VyY2UpOwogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKICAgICAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSk7CiAgICAgICAgICBpZiAoIXRoaXMuX25hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbiwKICAgICAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLAogICAgICAgICAgc291cmNlLAogICAgICAgICAgbmFtZQogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTZXQgdGhlIHNvdXJjZSBjb250ZW50IGZvciBhIHNvdXJjZSBmaWxlLgogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICBsZXQgc291cmNlID0gYVNvdXJjZUZpbGU7CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZVJvb3QgIT0gbnVsbCkgewogICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLl9zb3VyY2VSb290LCBzb3VyY2UpOwogICAgICAgIH0KICAgICAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhzb3VyY2UpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV07CiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fc291cmNlc0NvbnRlbnRzKS5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlCiAgICAgICAqIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkLiBFYWNoIG1hcHBpbmcgdG8gdGhlIHN1cHBsaWVkIHNvdXJjZSBmaWxlIGlzCiAgICAgICAqIHJld3JpdHRlbiB1c2luZyB0aGUgc3VwcGxpZWQgc291cmNlIG1hcC4gTm90ZTogVGhlIHJlc29sdXRpb24gZm9yIHRoZQogICAgICAgKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBzb3VyY2UgbWFwIHRvIGJlIGFwcGxpZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS4KICAgICAgICogICAgICAgIElmIG9taXR0ZWQsIFNvdXJjZU1hcENvbnN1bWVyJ3MgZmlsZSBwcm9wZXJ0eSB3aWxsIGJlIHVzZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwUGF0aCBPcHRpb25hbC4gVGhlIGRpcm5hbWUgb2YgdGhlIHBhdGggdG8gdGhlIHNvdXJjZSBtYXAKICAgICAgICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuCiAgICAgICAqICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBuZWVkZWQgd2hlbiB0aGUgdHdvIHNvdXJjZSBtYXBzIGFyZW4ndCBpbiB0aGUgc2FtZQogICAgICAgKiAgICAgICAgZGlyZWN0b3J5LCBhbmQgdGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZCBjb250YWlucyByZWxhdGl2ZSBzb3VyY2UKICAgICAgICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuCiAgICAgICAqICAgICAgICByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKi8KICAgICAgYXBwbHlTb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyLCBhU291cmNlRmlsZSwgYVNvdXJjZU1hcFBhdGgpIHsKICAgICAgICBsZXQgc291cmNlRmlsZSA9IGFTb3VyY2VGaWxlOwogICAgICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7CiAgICAgICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYFNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCBvciB0aGUgc291cmNlIG1hcCdzICJmaWxlIiBwcm9wZXJ0eS4gQm90aCB3ZXJlIG9taXR0ZWQuYAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlRmlsZSA9IGFTb3VyY2VNYXBDb25zdW1lci5maWxlOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDsKICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBzb3VyY2VGaWxlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3U291cmNlcyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKS5sZW5ndGggPiAwID8gbmV3IEFycmF5U2V0KCkgOiB0aGlzLl9zb3VyY2VzOwogICAgICAgIGNvbnN0IG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7CiAgICAgICAgdGhpcy5fbWFwcGluZ3MudW5zb3J0ZWRGb3JFYWNoKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gYVNvdXJjZU1hcENvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3IoewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7CiAgICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTsKICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWwuY29sdW1uOwogICAgICAgICAgICAgIGlmIChvcmlnaW5hbC5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcubmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBtYXBwaW5nLnNvdXJjZTsKICAgICAgICAgIGlmIChzb3VyY2UgIT0gbnVsbCAmJiAhbmV3U291cmNlcy5oYXMoc291cmNlKSkgewogICAgICAgICAgICBuZXdTb3VyY2VzLmFkZChzb3VyY2UpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbmFtZSA9IG1hcHBpbmcubmFtZTsKICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgIW5ld05hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICBuZXdOYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgdGhpcyk7CiAgICAgICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7CiAgICAgICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lczsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNyY0ZpbGUpIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzcmNGaWxlKTsKICAgICAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICBzcmNGaWxlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBzcmNGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc3JjRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc3JjRmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zZXRTb3VyY2VDb250ZW50KHNyY0ZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YToKICAgICAgICoKICAgICAgICogICAxLiBKdXN0IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uCiAgICAgICAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgMy4gR2VuZXJhdGVkIGFuZCBvcmlnaW5hbCBwb3NpdGlvbiwgb3JpZ2luYWwgc291cmNlLCBhcyB3ZWxsIGFzIGEgbmFtZQogICAgICAgKiAgICAgIHRva2VuLgogICAgICAgKgogICAgICAgKiBUbyBtYWludGFpbiBjb25zaXN0ZW5jeSwgd2UgdmFsaWRhdGUgdGhhdCBhbnkgbmV3IG1hcHBpbmcgYmVpbmcgYWRkZWQgZmFsbHMKICAgICAgICogaW4gdG8gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuCiAgICAgICAqLwogICAgICBfdmFsaWRhdGVNYXBwaW5nKGFHZW5lcmF0ZWQsIGFPcmlnaW5hbCwgYVNvdXJjZSwgYU5hbWUpIHsKICAgICAgICBpZiAoYU9yaWdpbmFsICYmIHR5cGVvZiBhT3JpZ2luYWwubGluZSAhPT0gIm51bWJlciIgJiYgdHlwZW9mIGFPcmlnaW5hbC5jb2x1bW4gIT09ICJudW1iZXIiKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICJvcmlnaW5hbC5saW5lIGFuZCBvcmlnaW5hbC5jb2x1bW4gYXJlIG5vdCBudW1iZXJzIC0tIHlvdSBwcm9iYWJseSBtZWFudCB0byBvbWl0IHRoZSBvcmlnaW5hbCBtYXBwaW5nIGVudGlyZWx5IGFuZCBvbmx5IG1hcCB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9uLiBJZiBzbywgcGFzcyBudWxsIGZvciB0aGUgb3JpZ2luYWwgbWFwcGluZyBpbnN0ZWFkIG9mIGFuIG9iamVjdCB3aXRoIGVtcHR5IG9yIG51bGwgdmFsdWVzLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwICYmICFhT3JpZ2luYWwgJiYgIWFTb3VyY2UgJiYgIWFOYW1lKSB7CiAgICAgICAgfSBlbHNlIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYU9yaWdpbmFsICYmICJsaW5lIiBpbiBhT3JpZ2luYWwgJiYgImNvbHVtbiIgaW4gYU9yaWdpbmFsICYmIGFHZW5lcmF0ZWQubGluZSA+IDAgJiYgYUdlbmVyYXRlZC5jb2x1bW4gPj0gMCAmJiBhT3JpZ2luYWwubGluZSA+IDAgJiYgYU9yaWdpbmFsLmNvbHVtbiA+PSAwICYmIGFTb3VyY2UpIHsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hcHBpbmc6ICIgKyBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCwKICAgICAgICAgICAgc291cmNlOiBhU291cmNlLAogICAgICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLAogICAgICAgICAgICBuYW1lOiBhTmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogU2VyaWFsaXplIHRoZSBhY2N1bXVsYXRlZCBtYXBwaW5ncyBpbiB0byB0aGUgc3RyZWFtIG9mIGJhc2UgNjQgVkxRcwogICAgICAgKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LgogICAgICAgKi8KICAgICAgX3NlcmlhbGl6ZU1hcHBpbmdzKCkgewogICAgICAgIGxldCBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzR2VuZXJhdGVkTGluZSA9IDE7CiAgICAgICAgbGV0IHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSAwOwogICAgICAgIGxldCBwcmV2aW91c09yaWdpbmFsTGluZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzTmFtZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzU291cmNlID0gMDsKICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CiAgICAgICAgbGV0IG5leHQ7CiAgICAgICAgbGV0IG1hcHBpbmc7CiAgICAgICAgbGV0IG5hbWVJZHg7CiAgICAgICAgbGV0IHNvdXJjZUlkeDsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIG1hcHBpbmcgPSBtYXBwaW5nc1tpXTsKICAgICAgICAgIG5leHQgPSAiIjsKICAgICAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgICAgIHdoaWxlIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIG5leHQgKz0gIjsiOwogICAgICAgICAgICAgIHByZXZpb3VzR2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgIGlmICghdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nLCBtYXBwaW5nc1tpIC0gMV0pKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCArPSAiLCI7CiAgICAgICAgICB9CiAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlSWR4ID0gdGhpcy5fc291cmNlcy5pbmRleE9mKG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKHNvdXJjZUlkeCAtIHByZXZpb3VzU291cmNlKTsKICAgICAgICAgICAgcHJldmlvdXNTb3VyY2UgPSBzb3VyY2VJZHg7CiAgICAgICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDEgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7CiAgICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxOwogICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbENvbHVtbiAtIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4pOwogICAgICAgICAgICBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmFtZUlkeCA9IHRoaXMuX25hbWVzLmluZGV4T2YobWFwcGluZy5uYW1lKTsKICAgICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobmFtZUlkeCAtIHByZXZpb3VzTmFtZSk7CiAgICAgICAgICAgICAgcHJldmlvdXNOYW1lID0gbmFtZUlkeDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9IG5leHQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgX2dlbmVyYXRlU291cmNlc0NvbnRlbnQoYVNvdXJjZXMsIGFTb3VyY2VSb290KSB7CiAgICAgICAgcmV0dXJuIGFTb3VyY2VzLm1hcChmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICAgIGlmICghdGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFTb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZShhU291cmNlUm9vdCwgc291cmNlKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTsKICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV0gOiBudWxsOwogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBFeHRlcm5hbGl6ZSB0aGUgc291cmNlIG1hcC4KICAgICAgICovCiAgICAgIHRvSlNPTigpIHsKICAgICAgICBjb25zdCBtYXAyID0gewogICAgICAgICAgdmVyc2lvbjogdGhpcy5fdmVyc2lvbiwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLAogICAgICAgICAgbmFtZXM6IHRoaXMuX25hbWVzLnRvQXJyYXkoKSwKICAgICAgICAgIG1hcHBpbmdzOiB0aGlzLl9zZXJpYWxpemVNYXBwaW5ncygpCiAgICAgICAgfTsKICAgICAgICBpZiAodGhpcy5fZmlsZSAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLmZpbGUgPSB0aGlzLl9maWxlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZVJvb3QgPSB0aGlzLl9zb3VyY2VSb290OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZXNDb250ZW50ID0gdGhpcy5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChtYXAyLnNvdXJjZXMsIG1hcDIuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZW5kZXIgdGhlIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkIHRvIGEgc3RyaW5nLgogICAgICAgKi8KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBHZW5lcmF0b3IgPSBTb3VyY2VNYXBHZW5lcmF0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iaW5hcnktc2VhcmNoLmpzCnZhciByZXF1aXJlX2JpbmFyeV9zZWFyY2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2JpbmFyeS1zZWFyY2guanMiKGV4cG9ydHMyKSB7CiAgICBleHBvcnRzMi5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBleHBvcnRzMi5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBmdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7CiAgICAgIGNvbnN0IG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7CiAgICAgIGNvbnN0IGNtcCA9IGFDb21wYXJlKGFOZWVkbGUsIGFIYXlzdGFja1ttaWRdLCB0cnVlKTsKICAgICAgaWYgKGNtcCA9PT0gMCkgewogICAgICAgIHJldHVybiBtaWQ7CiAgICAgIH0gZWxzZSBpZiAoY21wID4gMCkgewogICAgICAgIGlmIChhSGlnaCAtIG1pZCA+IDEpIHsKICAgICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2gobWlkLCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpOwogICAgICAgIH0KICAgICAgICBpZiAoYUJpYXMgPT0gZXhwb3J0czIuTEVBU1RfVVBQRVJfQk9VTkQpIHsKICAgICAgICAgIHJldHVybiBhSGlnaCA8IGFIYXlzdGFjay5sZW5ndGggPyBhSGlnaCA6IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbWlkOwogICAgICB9CiAgICAgIGlmIChtaWQgLSBhTG93ID4gMSkgewogICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7CiAgICAgIH0KICAgICAgaWYgKGFCaWFzID09IGV4cG9ydHMyLkxFQVNUX1VQUEVSX0JPVU5EKSB7CiAgICAgICAgcmV0dXJuIG1pZDsKICAgICAgfQogICAgICByZXR1cm4gYUxvdyA8IDAgPyAtMSA6IGFMb3c7CiAgICB9CiAgICBleHBvcnRzMi5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHsKICAgICAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgbGV0IGluZGV4ID0gcmVjdXJzaXZlU2VhcmNoKAogICAgICAgIC0xLAogICAgICAgIGFIYXlzdGFjay5sZW5ndGgsCiAgICAgICAgYU5lZWRsZSwKICAgICAgICBhSGF5c3RhY2ssCiAgICAgICAgYUNvbXBhcmUsCiAgICAgICAgYUJpYXMgfHwgZXhwb3J0czIuR1JFQVRFU1RfTE9XRVJfQk9VTkQKICAgICAgKTsKICAgICAgaWYgKGluZGV4IDwgMCkgewogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICB3aGlsZSAoaW5kZXggLSAxID49IDApIHsKICAgICAgICBpZiAoYUNvbXBhcmUoYUhheXN0YWNrW2luZGV4XSwgYUhheXN0YWNrW2luZGV4IC0gMV0sIHRydWUpICE9PSAwKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLS1pbmRleDsKICAgICAgfQogICAgICByZXR1cm4gaW5kZXg7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzCnZhciByZXF1aXJlX3JlYWRfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGlzQnJvd3NlckVudmlyb25tZW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzID09PSB3aW5kb3c7CiAgICB9LmNhbGwoKTsKICAgIGlmIChpc0Jyb3dzZXJFbnZpcm9ubWVudCkgewogICAgICBsZXQgbWFwcGluZ3NXYXNtID0gbnVsbDsKICAgICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gcmVhZFdhc20oKSB7CiAgICAgICAgaWYgKHR5cGVvZiBtYXBwaW5nc1dhc20gPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gZmV0Y2gobWFwcGluZ3NXYXNtKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChtYXBwaW5nc1dhc20gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYXBwaW5nc1dhc20pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIllvdSBtdXN0IHByb3ZpZGUgdGhlIHN0cmluZyBVUkwgb3IgQXJyYXlCdWZmZXIgY29udGVudHMgb2YgbGliL21hcHBpbmdzLndhc20gYnkgY2FsbGluZyBTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKHsgJ2xpYi9tYXBwaW5ncy53YXNtJzogLi4uIH0pIGJlZm9yZSB1c2luZyBTb3VyY2VNYXBDb25zdW1lciIpOwogICAgICB9OwogICAgICBtb2R1bGUyLmV4cG9ydHMuaW5pdGlhbGl6ZSA9IChpbnB1dCkgPT4gbWFwcGluZ3NXYXNtID0gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICBjb25zdCBmcyA9IHJlcXVpcmUoImZzIik7CiAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCJwYXRoIik7CiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlYWRXYXNtKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICBjb25zdCB3YXNtUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICJtYXBwaW5ncy53YXNtIik7CiAgICAgICAgICBmcy5yZWFkRmlsZSh3YXNtUGF0aCwgbnVsbCwgKGVycm9yLCBkYXRhKSA9PiB7CiAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgIHJlamVjdChlcnJvcik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc29sdmUoZGF0YS5idWZmZXIpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIG1vZHVsZTIuZXhwb3J0cy5pbml0aWFsaXplID0gKF8pID0+IHsKICAgICAgICBjb25zb2xlLmRlYnVnKCJTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplIGlzIGEgbm8tb3Agd2hlbiBydW5uaW5nIGluIG5vZGUuanMiKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3dhc20uanMKdmFyIHJlcXVpcmVfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvd2FzbS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICBmdW5jdGlvbiBNYXBwaW5nKCkgewogICAgICB0aGlzLmdlbmVyYXRlZExpbmUgPSAwOwogICAgICB0aGlzLmdlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgIHRoaXMubGFzdEdlbmVyYXRlZENvbHVtbiA9IG51bGw7CiAgICAgIHRoaXMuc291cmNlID0gbnVsbDsKICAgICAgdGhpcy5vcmlnaW5hbExpbmUgPSBudWxsOwogICAgICB0aGlzLm9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgdGhpcy5uYW1lID0gbnVsbDsKICAgIH0KICAgIHZhciBjYWNoZWRXYXNtID0gbnVsbDsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHdhc20oKSB7CiAgICAgIGlmIChjYWNoZWRXYXNtKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlZFdhc207CiAgICAgIH0KICAgICAgY29uc3QgY2FsbGJhY2tTdGFjayA9IFtdOwogICAgICBjYWNoZWRXYXNtID0gcmVhZFdhc20oKS50aGVuKChidWZmZXIpID0+IHsKICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnVmZmVyLCB7CiAgICAgICAgICBlbnY6IHsKICAgICAgICAgICAgbWFwcGluZ19jYWxsYmFjayhnZW5lcmF0ZWRMaW5lLCBnZW5lcmF0ZWRDb2x1bW4sIGhhc0xhc3RHZW5lcmF0ZWRDb2x1bW4sIGxhc3RHZW5lcmF0ZWRDb2x1bW4sIGhhc09yaWdpbmFsLCBzb3VyY2UsIG9yaWdpbmFsTGluZSwgb3JpZ2luYWxDb2x1bW4sIGhhc05hbWUsIG5hbWUpIHsKICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBnZW5lcmF0ZWRMaW5lICsgMTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IGdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgICAgICBpZiAoaGFzTGFzdEdlbmVyYXRlZENvbHVtbikgewogICAgICAgICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbGFzdEdlbmVyYXRlZENvbHVtbiAtIDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChoYXNPcmlnaW5hbCkgewogICAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsTGluZSArIDE7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWxDb2x1bW47CiAgICAgICAgICAgICAgICBpZiAoaGFzTmFtZSkgewogICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYWxsYmFja1N0YWNrW2NhbGxiYWNrU3RhY2subGVuZ3RoIC0gMV0obWFwcGluZyk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2FsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImFsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfZ2VuZXJhdGVkX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImdlbmVyYXRlZF9sb2NhdGlvbl9mb3IiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2dlbmVyYXRlZF9sb2NhdGlvbl9mb3IoKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJnZW5lcmF0ZWRfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X29yaWdpbmFsX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoIm9yaWdpbmFsX2xvY2F0aW9uX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfb3JpZ2luYWxfbG9jYXRpb25fZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgib3JpZ2luYWxfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzdGFydF9zb3J0X2J5X29yaWdpbmFsX2xvY2F0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgic29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoInNvcnRfYnlfb3JpZ2luYWxfbG9jYXRpb24iKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KS50aGVuKChXYXNtKSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGV4cG9ydHM6IFdhc20uaW5zdGFuY2UuZXhwb3J0cywKICAgICAgICAgIHdpdGhNYXBwaW5nQ2FsbGJhY2s6IChtYXBwaW5nQ2FsbGJhY2ssIGYpID0+IHsKICAgICAgICAgICAgY2FsbGJhY2tTdGFjay5wdXNoKG1hcHBpbmdDYWxsYmFjayk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZigpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGNhbGxiYWNrU3RhY2sucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KS50aGVuKG51bGwsIChlKSA9PiB7CiAgICAgICAgY2FjaGVkV2FzbSA9IG51bGw7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfSk7CiAgICAgIHJldHVybiBjYWNoZWRXYXNtOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1tYXAtY29uc3VtZXIuanMKdmFyIHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIoZXhwb3J0czIpIHsKICAgIHZhciB1dGlsID0gcmVxdWlyZV91dGlsMigpOwogICAgdmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmVfYmluYXJ5X3NlYXJjaCgpOwogICAgdmFyIEFycmF5U2V0ID0gcmVxdWlyZV9hcnJheV9zZXQoKS5BcnJheVNldDsKICAgIHZhciBiYXNlNjRWTFEgPSByZXF1aXJlX2Jhc2U2NF92bHEoKTsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICB2YXIgd2FzbSA9IHJlcXVpcmVfd2FzbSgpOwogICAgdmFyIElOVEVSTkFMID0gU3ltYm9sKCJzbWNJbnRlcm5hbCIpOwogICAgdmFyIFNvdXJjZU1hcENvbnN1bWVyID0gY2xhc3MgX1NvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIGlmIChhU291cmNlTWFwID09IElOVEVSTkFMKSB7CiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX2ZhY3RvcnkoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIH0KICAgICAgc3RhdGljIGluaXRpYWxpemUob3B0cykgewogICAgICAgIHJlYWRXYXNtLmluaXRpYWxpemUob3B0c1sibGliL21hcHBpbmdzLndhc20iXSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBfZmFjdG9yeUJTTShhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29uc3RydWN0IGEgbmV3IGBTb3VyY2VNYXBDb25zdW1lcmAgZnJvbSBgcmF3U291cmNlTWFwYCBhbmQgYHNvdXJjZU1hcFVybGAKICAgICAgICogKHNlZSB0aGUgYFNvdXJjZU1hcENvbnN1bWVyYCBjb25zdHJ1Y3RvciBmb3IgZGV0YWlscy4gVGhlbiwgaW52b2tlIHRoZSBgYXN5bmMKICAgICAgICogZnVuY3Rpb24gZihTb3VyY2VNYXBDb25zdW1lcikgLT4gVGAgd2l0aCB0aGUgbmV3bHkgY29uc3RydWN0ZWQgY29uc3VtZXIsIHdhaXQKICAgICAgICogZm9yIGBmYCB0byBjb21wbGV0ZSwgY2FsbCBgZGVzdHJveWAgb24gdGhlIGNvbnN1bWVyLCBhbmQgcmV0dXJuIGBmYCdzIHJldHVybgogICAgICAgKiB2YWx1ZS4KICAgICAgICoKICAgICAgICogWW91IG11c3Qgbm90IHVzZSB0aGUgY29uc3VtZXIgYWZ0ZXIgYGZgIGNvbXBsZXRlcyEKICAgICAgICoKICAgICAgICogQnkgdXNpbmcgYHdpdGhgLCB5b3UgZG8gbm90IGhhdmUgdG8gcmVtZW1iZXIgdG8gbWFudWFsbHkgY2FsbCBgZGVzdHJveWAgb24KICAgICAgICogdGhlIGNvbnN1bWVyLCBzaW5jZSBpdCB3aWxsIGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IG9uY2UgYGZgIGNvbXBsZXRlcy4KICAgICAgICoKICAgICAgICogYGBganMKICAgICAgICogY29uc3QgeFNxdWFyZWQgPSBhd2FpdCBTb3VyY2VNYXBDb25zdW1lci53aXRoKAogICAgICAgKiAgIG15UmF3U291cmNlTWFwLAogICAgICAgKiAgIG51bGwsCiAgICAgICAqICAgYXN5bmMgZnVuY3Rpb24gKGNvbnN1bWVyKSB7CiAgICAgICAqICAgICAvLyBVc2UgYGNvbnN1bWVyYCBpbnNpZGUgaGVyZSBhbmQgZG9uJ3Qgd29ycnkgYWJvdXQgcmVtZW1iZXJpbmcKICAgICAgICogICAgIC8vIHRvIGNhbGwgYGRlc3Ryb3lgLgogICAgICAgKgogICAgICAgKiAgICAgY29uc3QgeCA9IGF3YWl0IHdoYXRldmVyKGNvbnN1bWVyKTsKICAgICAgICogICAgIHJldHVybiB4ICogeDsKICAgICAgICogICB9CiAgICAgICAqICk7CiAgICAgICAqCiAgICAgICAqIC8vIFlvdSBtYXkgbm90IHVzZSB0aGF0IGBjb25zdW1lcmAgYW55bW9yZSBvdXQgaGVyZTsgaXQgaGFzCiAgICAgICAqIC8vIGJlZW4gZGVzdHJveWVkLiBCdXQgeW91IGNhbiB1c2UgYHhTcXVhcmVkYC4KICAgICAgICogY29uc29sZS5sb2coeFNxdWFyZWQpOwogICAgICAgKiBgYGAKICAgICAgICovCiAgICAgIHN0YXRpYyBhc3luYyB3aXRoKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsLCBmKSB7CiAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBuZXcgX1NvdXJjZU1hcENvbnN1bWVyKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsKTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGF3YWl0IGYoY29uc3VtZXIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjb25zdW1lci5kZXN0cm95KCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5CiAgICAgICAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZAogICAgICAgKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLgogICAgICAgKi8KICAgICAgX3BhcnNlTWFwcGluZ3MoYVN0ciwgYVNvdXJjZVJvb3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgX3BhcnNlTWFwcGluZ3MiKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogSXRlcmF0ZSBvdmVyIGVhY2ggbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIHNvdXJjZS9saW5lL2NvbHVtbiBhbmQgYQogICAgICAgKiBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gaW4gdGhpcyBzb3VyY2UgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gRnVuY3Rpb24gYUNhbGxiYWNrCiAgICAgICAqICAgICAgICBUaGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2l0aCBlYWNoIG1hcHBpbmcuCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHQKICAgICAgICogICAgICAgIE9wdGlvbmFsLiBJZiBzcGVjaWZpZWQsIHRoaXMgb2JqZWN0IHdpbGwgYmUgdGhlIHZhbHVlIG9mIGB0aGlzYCBldmVyeQogICAgICAgKiAgICAgICAgdGltZSB0aGF0IGBhQ2FsbGJhY2tgIGlzIGNhbGxlZC4KICAgICAgICogQHBhcmFtIGFPcmRlcgogICAgICAgKiAgICAgICAgRWl0aGVyIGBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVJgIG9yCiAgICAgICAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVJgLiBTcGVjaWZpZXMgd2hldGhlciB5b3Ugd2FudCB0bwogICAgICAgKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW4KICAgICAgICogICAgICAgIG9yZGVyIG9yIHRoZSBvcmlnaW5hbCdzIHNvdXJjZS9saW5lL2NvbHVtbiBvcmRlciwgcmVzcGVjdGl2ZWx5LiBEZWZhdWx0cyB0bwogICAgICAgKiAgICAgICAgYFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUmAuCiAgICAgICAqLwogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZWFjaE1hcHBpbmciKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwcm92aWRlZC4gSWYgbm8gY29sdW1uIGlzIHByb3ZpZGVkLCByZXR1cm5zIGFsbCBtYXBwaW5ncwogICAgICAgKiBjb3JyZXNwb25kaW5nIHRvIGEgZWl0aGVyIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yIG9yIHRoZSBuZXh0CiAgICAgICAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3MKICAgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbGluZSBhbmQgZWl0aGVyIHRoZSBjb2x1bW4gd2UgYXJlIHNlYXJjaGluZyBmb3IKICAgICAgICogb3IgdGhlIG5leHQgY2xvc2VzdCBjb2x1bW4gdGhhdCBoYXMgYW55IG9mZnNldHMuCiAgICAgICAqCiAgICAgICAqIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICoKICAgICAgICogYW5kIGFuIGFycmF5IG9mIG9iamVjdHMgaXMgcmV0dXJuZWQsIGVhY2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgIFRoZSBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqLwogICAgICBhbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yIik7CiAgICAgIH0KICAgICAgZGVzdHJveSgpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZGVzdHJveSIpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl92ZXJzaW9uID0gMzsKICAgIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUiA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUiA9IDI7CiAgICBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyOwogICAgdmFyIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBfQmFzaWNTb3VyY2VNYXBDb25zdW1lciBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBsZXQgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZXMiKTsKICAgICAgICAgIGNvbnN0IG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibmFtZXMiLCBbXSk7CiAgICAgICAgICBsZXQgc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZVJvb3QiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IHNvdXJjZXNDb250ZW50ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAic291cmNlc0NvbnRlbnQiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibWFwcGluZ3MiKTsKICAgICAgICAgIGNvbnN0IGZpbGUgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJmaWxlIiwgbnVsbCk7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZVJvb3QpIHsKICAgICAgICAgICAgc291cmNlUm9vdCA9IHV0aWwubm9ybWFsaXplKHNvdXJjZVJvb3QpOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlcyA9IHNvdXJjZXMubWFwKFN0cmluZykubWFwKHV0aWwubm9ybWFsaXplKS5tYXAoZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKSA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKSA6IHNvdXJjZTsKICAgICAgICAgIH0pOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpOwogICAgICAgICAgdGhhdC5fc291cmNlcyA9IEFycmF5U2V0LmZyb21BcnJheShzb3VyY2VzLCB0cnVlKTsKICAgICAgICAgIHRoYXQuX2Fic29sdXRlU291cmNlcyA9IHRoYXQuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIHRoYXQuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7CiAgICAgICAgICB0aGF0LnNvdXJjZXNDb250ZW50ID0gc291cmNlc0NvbnRlbnQ7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICAgICAgdGhhdC5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDsKICAgICAgICAgIHRoYXQuZmlsZSA9IGZpbGU7CiAgICAgICAgICB0aGF0Ll9jb21wdXRlZENvbHVtblNwYW5zID0gZmFsc2U7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5nc1B0ciA9IDA7CiAgICAgICAgICB0aGF0Ll93YXNtID0gbnVsbDsKICAgICAgICAgIHJldHVybiB3YXNtKCkudGhlbigodykgPT4gewogICAgICAgICAgICB0aGF0Ll93YXNtID0gdzsKICAgICAgICAgICAgcmV0dXJuIHRoYXQ7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHRoZSBpbmRleCBvZiBhIHNvdXJjZS4gIFJldHVybnMgLTEgaWYgbm90CiAgICAgICAqIGZvdW5kLgogICAgICAgKi8KICAgICAgX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKSB7CiAgICAgICAgbGV0IHJlbGF0aXZlU291cmNlID0gYVNvdXJjZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZXMuaGFzKHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMuaW5kZXhPZihyZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYWJzb2x1dGVTb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICBpZiAodGhpcy5fYWJzb2x1dGVTb3VyY2VzW2ldID09IGFTb3VyY2UpIHsKICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU291cmNlTWFwR2VuZXJhdG9yIGFTb3VyY2VNYXAKICAgICAgICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC4KICAgICAgICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMCiAgICAgICAqICAgICAgICBUaGUgVVJMIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIGNhbiBiZSBmb3VuZCAob3B0aW9uYWwpCiAgICAgICAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXIKICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgICByZXR1cm4gbmV3IF9CYXNpY1NvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgZ2V0IHNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpOwogICAgICB9CiAgICAgIF9nZXRNYXBwaW5nc1B0cigpIHsKICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3NQdHIgPT09IDApIHsKICAgICAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1B0cjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3Qgc2l6ZSA9IGFTdHIubGVuZ3RoOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLmFsbG9jYXRlX21hcHBpbmdzKHNpemUpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fd2FzbS5leHBvcnRzLm1lbW9yeS5idWZmZXIsIG1hcHBpbmdzQnVmUHRyLCBzaXplKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgbWFwcGluZ3NCdWZbaV0gPSBhU3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1hcHBpbmdzUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLnBhcnNlX21hcHBpbmdzKG1hcHBpbmdzQnVmUHRyKTsKICAgICAgICBpZiAoIW1hcHBpbmdzUHRyKSB7CiAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuX3dhc20uZXhwb3J0cy5nZXRfbGFzdF9lcnJvcigpOwogICAgICAgICAgbGV0IG1zZyA9IGBFcnJvciBwYXJzaW5nIG1hcHBpbmdzIChjb2RlICR7ZXJyb3J9KTogYDsKICAgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG5lZ2F0aXZlIGxpbmUsIGNvbHVtbiwgc291cmNlIGluZGV4LCBvciBuYW1lIGluZGV4IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG51bWJlciBsYXJnZXIgdGhhbiAyKiozMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBtc2cgKz0gInJlYWNoZWQgRU9GIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBtc2cgKz0gImludmFsaWQgYmFzZSA2NCBjaGFyYWN0ZXIgd2hpbGUgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgbXNnICs9ICJ1bmtub3duIGVycm9yIGNvZGUiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzUHRyID0gbWFwcGluZ3NQdHI7CiAgICAgIH0KICAgICAgZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7CiAgICAgICAgY29uc3QgY29udGV4dCA9IGFDb250ZXh0IHx8IG51bGw7CiAgICAgICAgY29uc3Qgb3JkZXIgPSBhT3JkZXIgfHwgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOwogICAgICAgIGNvbnN0IHNvdXJjZVJvb3QgPSB0aGlzLnNvdXJjZVJvb3Q7CiAgICAgICAgdGhpcy5fd2FzbS53aXRoTWFwcGluZ0NhbGxiYWNrKAogICAgICAgICAgKG1hcHBpbmcpID0+IHsKICAgICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwuY29tcHV0ZVNvdXJjZVVSTChzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSB0aGlzLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBhQ2FsbGJhY2suY2FsbChjb250ZXh0LCBtYXBwaW5nKTsKICAgICAgICAgIH0sCiAgICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUjoKICAgICAgICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5ieV9nZW5lcmF0ZWRfbG9jYXRpb24odGhpcy5fZ2V0TWFwcGluZ3NQdHIoKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSOgogICAgICAgICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmJ5X29yaWdpbmFsX2xvY2F0aW9uKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICApOwogICAgICB9CiAgICAgIGFsbEdlbmVyYXRlZFBvc2l0aW9uc0ZvcihhQXJncykgewogICAgICAgIGxldCBzb3VyY2UgPSB1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gYUFyZ3MuY29sdW1uIHx8IDA7CiAgICAgICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7CiAgICAgICAgaWYgKHNvdXJjZSA8IDApIHsKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAob3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBtYXBwaW5ncyA9IFtdOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygKICAgICAgICAgIChtKSA9PiB7CiAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbS5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRDb2x1bW5TcGFucyAmJiBsYXN0Q29sdW1uID09PSBudWxsKSB7CiAgICAgICAgICAgICAgbGFzdENvbHVtbiA9IEluZmluaXR5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1hcHBpbmdzLnB1c2goewogICAgICAgICAgICAgIGxpbmU6IG0uZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG0uZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICB0aGlzLl93YXNtLmV4cG9ydHMuYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKAogICAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgICAgc291cmNlLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZSAtIDEsCiAgICAgICAgICAgICAgImNvbHVtbiIgaW4gYUFyZ3MsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW4KICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHJldHVybiBtYXBwaW5nczsKICAgICAgfQogICAgICBkZXN0cm95KCkgewogICAgICAgIGlmICh0aGlzLl9tYXBwaW5nc1B0ciAhPT0gMCkgewogICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmZyZWVfbWFwcGluZ3ModGhpcy5fbWFwcGluZ3NQdHIpOwogICAgICAgICAgdGhpcy5fbWFwcGluZ3NQdHIgPSAwOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tcHV0ZSB0aGUgbGFzdCBjb2x1bW4gZm9yIGVhY2ggZ2VuZXJhdGVkIG1hcHBpbmcuIFRoZSBsYXN0IGNvbHVtbiBpcwogICAgICAgKiBpbmNsdXNpdmUuCiAgICAgICAqLwogICAgICBjb21wdXRlQ29sdW1uU3BhbnMoKSB7CiAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmNvbXB1dGVfY29sdW1uX3NwYW5zKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgIHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMgPSB0cnVlOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWQKICAgICAgICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0CiAgICAgICAqIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLgogICAgICAgKi8KICAgICAgb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykgewogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIpCiAgICAgICAgfTsKICAgICAgICBpZiAobmVlZGxlLmdlbmVyYXRlZExpbmUgPCAxKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxpbmUgbnVtYmVycyBtdXN0IGJlID49IDEiKTsKICAgICAgICB9CiAgICAgICAgaWYgKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5vcmlnaW5hbF9sb2NhdGlvbl9mb3IoCiAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgIG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLmdlbmVyYXRlZENvbHVtbiwKICAgICAgICAgICAgYmlhcwogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgICBpZiAobWFwcGluZykgewogICAgICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHsKICAgICAgICAgICAgbGV0IHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTsKICAgICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAibmFtZSIsIG51bGwpOwogICAgICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxMaW5lIiwgbnVsbCksCiAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxDb2x1bW4iLCBudWxsKSwKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzb3VyY2U6IG51bGwsCiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgbmFtZTogbnVsbAogICAgICAgIH07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZQogICAgICAgKiBtYXAsIGZhbHNlIG90aGVyd2lzZS4KICAgICAgICovCiAgICAgIGhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiYgIXRoaXMuc291cmNlc0NvbnRlbnQuc29tZShmdW5jdGlvbihzYykgewogICAgICAgICAgcmV0dXJuIHNjID09IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KGFTb3VyY2UpOwogICAgICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFtpbmRleF07CiAgICAgICAgfQogICAgICAgIGxldCByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7CiAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGxldCB1cmwzOwogICAgICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCAmJiAodXJsMyA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHsKICAgICAgICAgIGNvbnN0IGZpbGVVcmlBYnNQYXRoID0gcmVsYXRpdmVTb3VyY2UucmVwbGFjZSgvXmZpbGU6XC9cLy8sICIiKTsKICAgICAgICAgIGlmICh1cmwzLnNjaGVtZSA9PSAiZmlsZSIgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCghdXJsMy5wYXRoIHx8IHVybDMucGF0aCA9PSAiLyIpICYmIHRoaXMuX3NvdXJjZXMuaGFzKCIvIiArIHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoIi8iICsgcmVsYXRpdmVTb3VyY2UpXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgcmVsYXRpdmVTb3VyY2UgKyAnIiBpcyBub3QgaW4gdGhlIFNvdXJjZU1hcC4nKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoCiAgICAgICAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlcgogICAgICAgKiAgICAgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZQogICAgICAgKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKi8KICAgICAgZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKTsKICAgICAgICBzb3VyY2UgPSB0aGlzLl9maW5kU291cmNlSW5kZXgoc291cmNlKTsKICAgICAgICBpZiAoc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAiY29sdW1uIikKICAgICAgICB9OwogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxMaW5lIDwgMSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJMaW5lIG51bWJlcnMgbXVzdCBiZSA+PSAxIik7CiAgICAgICAgfQogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5nZW5lcmF0ZWRfbG9jYXRpb25fZm9yKAogICAgICAgICAgICB0aGlzLl9nZXRNYXBwaW5nc1B0cigpLAogICAgICAgICAgICBuZWVkbGUuc291cmNlLAogICAgICAgICAgICBuZWVkbGUub3JpZ2luYWxMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLm9yaWdpbmFsQ29sdW1uLAogICAgICAgICAgICBiaWFzCiAgICAgICAgICApOwogICAgICAgIH0pOwogICAgICAgIGlmIChtYXBwaW5nKSB7CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHsKICAgICAgICAgICAgbGV0IGxhc3RDb2x1bW4gPSBtYXBwaW5nLmxhc3RHZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICBsYXN0Q29sdW1uID0gSW5maW5pdHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgImdlbmVyYXRlZENvbHVtbiIsIG51bGwpLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxpbmU6IG51bGwsCiAgICAgICAgICBjb2x1bW46IG51bGwsCiAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgfTsKICAgIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7CiAgICBleHBvcnRzMi5CYXNpY1NvdXJjZU1hcENvbnN1bWVyID0gQmFzaWNTb3VyY2VNYXBDb25zdW1lcjsKICAgIHZhciBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNlY3Rpb25zIik7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgdGhhdC5fc291cmNlcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICAgIHRoYXQuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gbnVsbDsKICAgICAgICAgIGxldCBsYXN0T2Zmc2V0ID0gewogICAgICAgICAgICBsaW5lOiAtMSwKICAgICAgICAgICAgY29sdW1uOiAwCiAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zLm1hcCgocykgPT4gewogICAgICAgICAgICBpZiAocy51cmwpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1cHBvcnQgZm9yIHVybCBmaWVsZCBpbiBzZWN0aW9ucyBub3QgaW1wbGVtZW50ZWQuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgIm9mZnNldCIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAibGluZSIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICJjb2x1bW4iKTsKICAgICAgICAgICAgaWYgKG9mZnNldExpbmUgPCBsYXN0T2Zmc2V0LmxpbmUgfHwgb2Zmc2V0TGluZSA9PT0gbGFzdE9mZnNldC5saW5lICYmIG9mZnNldENvbHVtbiA8IGxhc3RPZmZzZXQuY29sdW1uKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWN0aW9uIG9mZnNldHMgbXVzdCBiZSBvcmRlcmVkIGFuZCBub24tb3ZlcmxhcHBpbmcuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldDsKICAgICAgICAgICAgY29uc3QgY29ucyA9IG5ldyBTb3VyY2VNYXBDb25zdW1lcih1dGlsLmdldEFyZyhzLCAibWFwIiksIGFTb3VyY2VNYXBVUkwpOwogICAgICAgICAgICByZXR1cm4gY29ucy50aGVuKChjb25zdW1lcikgPT4gewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHsKICAgICAgICAgICAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW4KICAgICAgICAgICAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLAogICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjb25zdW1lcgogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkpLnRoZW4oKHMpID0+IHsKICAgICAgICAgICAgdGhhdC5fc2VjdGlvbnMgPSBzOwogICAgICAgICAgICByZXR1cm4gdGhhdDsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlCiAgICAgIC8vIHBhcnNlZCBtYXBwaW5nIGNvb3JkaW5hdGVzIGZyb20gdGhlIHNvdXJjZSBtYXAncyAibWFwcGluZ3MiIGF0dHJpYnV0ZS4gVGhleQogICAgICAvLyBhcmUgbGF6aWx5IGluc3RhbnRpYXRlZCwgYWNjZXNzZWQgdmlhIHRoZSBgX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzCiAgICAgIC8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaAogICAgICAvLyB0aGVzZSBob29wcyBiZWNhdXNlIHRoZXJlIGNhbiBiZSBtYW55IHRob3VzYW5kcyBvZiBtYXBwaW5ncywgYW5kIHBhcnNpbmcKICAgICAgLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LgogICAgICAvLwogICAgICAvLyBFYWNoIG9iamVjdCBpbiB0aGUgYXJyYXlzIGlzIG9mIHRoZSBmb3JtOgogICAgICAvLwogICAgICAvLyAgICAgewogICAgICAvLyAgICAgICBnZW5lcmF0ZWRMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLAogICAgICAvLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSwKICAgICAgLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpcwogICAgICAvLyAgICAgICAgICAgICAgIGNodW5rIG9mIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdAogICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsQ29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlIHRoYXQKICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2YKICAgICAgLy8gICAgICAgICAgICAgY29kZS4KICAgICAgLy8gICAgIH0KICAgICAgLy8KICAgICAgLy8gQWxsIHByb3BlcnRpZXMgZXhjZXB0IGZvciBgZ2VuZXJhdGVkTGluZWAgYW5kIGBnZW5lcmF0ZWRDb2x1bW5gIGNhbiBiZQogICAgICAvLyBgbnVsbGAuCiAgICAgIC8vCiAgICAgIC8vIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMuCiAgICAgIC8vCiAgICAgIC8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLgogICAgICBnZXQgX2dlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7CiAgICAgICAgICB0aGlzLl9zb3J0R2VuZXJhdGVkTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nczsKICAgICAgfQogICAgICBnZXQgX29yaWdpbmFsTWFwcGluZ3MoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncykgewogICAgICAgICAgdGhpcy5fc29ydE9yaWdpbmFsTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzOwogICAgICB9CiAgICAgIGdldCBfZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCgpIHsKICAgICAgICBpZiAoIXRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzVW5zb3J0ZWQ7CiAgICAgIH0KICAgICAgZ2V0IF9vcmlnaW5hbE1hcHBpbmdzVW5zb3J0ZWQoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgfQogICAgICBfc29ydEdlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpOwogICAgICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICB9CiAgICAgIF9zb3J0T3JpZ2luYWxNYXBwaW5ncygpIHsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMpOwogICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gbWFwcGluZ3M7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFRoZSBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMuCiAgICAgICAqLwogICAgICBnZXQgc291cmNlcygpIHsKICAgICAgICBjb25zdCBzb3VyY2VzID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzW2pdKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNvdXJjZXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZAogICAgICAgKiBzb3VyY2UncyBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zIHByb3ZpZGVkLiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3QKICAgICAgICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIKICAgICAgICogICAgIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC4KICAgICAgICovCiAgICAgIG9yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgImxpbmUiKSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICJjb2x1bW4iKQogICAgICAgIH07CiAgICAgICAgY29uc3Qgc2VjdGlvbkluZGV4ID0gYmluYXJ5U2VhcmNoLnNlYXJjaCgKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX3NlY3Rpb25zLAogICAgICAgICAgZnVuY3Rpb24oYU5lZWRsZSwgc2VjdGlvbjIpIHsKICAgICAgICAgICAgY29uc3QgY21wID0gYU5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbjIuZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmU7CiAgICAgICAgICAgIGlmIChjbXApIHsKICAgICAgICAgICAgICByZXR1cm4gY21wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhTmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIHNlY3Rpb24yLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTsKICAgICAgICBpZiAoIXNlY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZTogbnVsbCwKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBuYW1lOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25zdW1lci5vcmlnaW5hbFBvc2l0aW9uRm9yKHsKICAgICAgICAgIGxpbmU6IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgIGNvbHVtbjogbmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBuZWVkbGUuZ2VuZXJhdGVkTGluZSA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDEgOiAwKSwKICAgICAgICAgIGJpYXM6IGFBcmdzLmJpYXMKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlCiAgICAgICAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgICAgKi8KICAgICAgaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25zLmV2ZXJ5KGZ1bmN0aW9uKHMpIHsKICAgICAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgdHJ1ZSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICByZXR1cm4gY29udGVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVNvdXJjZSArICciIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLAogICAgICAgKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGgKICAgICAgICogdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLgogICAgICAgKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICovCiAgICAgIGdlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuX2ZpbmRTb3VyY2VJbmRleCh1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpKSA9PT0gLTEpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpOwogICAgICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHsKICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICsgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZFBvc2l0aW9uLmNvbHVtbiArIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkTWFwcGluZ3MgPSB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IFtdOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTWFwcGluZ3MgPSB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgY29uc3Qgc2VjdGlvbk1hcHBpbmdzID0gW107CiAgICAgICAgICBzZWN0aW9uLmNvbnN1bWVyLmVhY2hNYXBwaW5nKChtKSA9PiBzZWN0aW9uTWFwcGluZ3MucHVzaChtKSk7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25NYXBwaW5ncy5sZW5ndGg7IGorKykgewogICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdOwogICAgICAgICAgICBsZXQgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCwgbnVsbCwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7CiAgICAgICAgICAgIGxldCBuYW1lID0gbnVsbDsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkgewogICAgICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWRNYXBwaW5nID0gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUgKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLAogICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW4sCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICB9OwogICAgICAgICAgICBnZW5lcmF0ZWRNYXBwaW5ncy5wdXNoKGFkanVzdGVkTWFwcGluZyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRqdXN0ZWRNYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICBvcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICBjb25zdCBjb250ZXh0ID0gYUNvbnRleHQgfHwgbnVsbDsKICAgICAgICBjb25zdCBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7CiAgICAgICAgbGV0IG1hcHBpbmdzOwogICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOgogICAgICAgICAgICBtYXBwaW5ncyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6CiAgICAgICAgICAgIG1hcHBpbmdzID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gb3JkZXIgb2YgaXRlcmF0aW9uLiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290OwogICAgICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbihtYXBwaW5nKSB7CiAgICAgICAgICBsZXQgc291cmNlID0gbnVsbDsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lLAogICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICBvcmlnaW5hbExpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgbmFtZTogbWFwcGluZy5uYW1lID09PSBudWxsID8gbnVsbCA6IHRoaXMuX25hbWVzLmF0KG1hcHBpbmcubmFtZSkKICAgICAgICAgIH07CiAgICAgICAgfSwgdGhpcykuZm9yRWFjaChhQ2FsbGJhY2ssIGNvbnRleHQpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBGaW5kIHRoZSBtYXBwaW5nIHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBoeXBvdGhldGljYWwgIm5lZWRsZSIgbWFwcGluZyB0aGF0CiAgICAgICAqIHdlIGFyZSBzZWFyY2hpbmcgZm9yIGluIHRoZSBnaXZlbiAiaGF5c3RhY2siIG9mIG1hcHBpbmdzLgogICAgICAgKi8KICAgICAgX2ZpbmRNYXBwaW5nKGFOZWVkbGUsIGFNYXBwaW5ncywgYUxpbmVOYW1lLCBhQ29sdW1uTmFtZSwgYUNvbXBhcmF0b3IsIGFCaWFzKSB7CiAgICAgICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAiICsgYU5lZWRsZVthTGluZU5hbWVdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAiICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoLnNlYXJjaChhTmVlZGxlLCBhTWFwcGluZ3MsIGFDb21wYXJhdG9yLCBhQmlhcyk7CiAgICAgIH0KICAgICAgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7CiAgICAgICAgY29uc3QgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIHNvdXJjZTogdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKSwKICAgICAgICAgIG9yaWdpbmFsTGluZTogbGluZSwKICAgICAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIsIDApCiAgICAgICAgfTsKICAgICAgICBuZWVkbGUuc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KG5lZWRsZS5zb3VyY2UpOwogICAgICAgIGlmIChuZWVkbGUuc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsQ29sdW1uIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2x1bW4gbnVtYmVycyBtdXN0IGJlID49IDAiKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBbXTsKICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZygKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsCiAgICAgICAgICAib3JpZ2luYWxMaW5lIiwKICAgICAgICAgICJvcmlnaW5hbENvbHVtbiIsCiAgICAgICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLAogICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5ECiAgICAgICAgKTsKICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgbGV0IG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTsKICAgICAgICAgIGlmIChhQXJncy5jb2x1bW4gPT09IHZvaWQgMCkgewogICAgICAgICAgICBjb25zdCBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IG9yaWdpbmFsTGluZSkgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiYgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9PSBvcmlnaW5hbENvbHVtbikgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcHBpbmdzOwogICAgICB9CiAgICAgIGRlc3Ryb3koKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuZGVzdHJveSgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciA9IEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcjsKICAgIGZ1bmN0aW9uIF9mYWN0b3J5KGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gInN0cmluZyIpIHsKICAgICAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7CiAgICAgIH0KICAgICAgY29uc3QgY29uc3VtZXIgPSBzb3VyY2VNYXAuc2VjdGlvbnMgIT0gbnVsbCA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKSA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uc3VtZXIpOwogICAgfQogICAgZnVuY3Rpb24gX2ZhY3RvcnlCU00oYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICByZXR1cm4gQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW5vZGUuanMKdmFyIHJlcXVpcmVfc291cmNlX25vZGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1ub2RlLmpzIihleHBvcnRzMikgewogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBSRUdFWF9ORVdMSU5FID0gLyhccj9cbikvOwogICAgdmFyIE5FV0xJTkVfQ09ERSA9IDEwOwogICAgdmFyIGlzU291cmNlTm9kZSA9ICIkJCRpc1NvdXJjZU5vZGUkJCQiOwogICAgdmFyIFNvdXJjZU5vZGUgPSBjbGFzcyBfU291cmNlTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGFMaW5lLCBhQ29sdW1uLCBhU291cmNlLCBhQ2h1bmtzLCBhTmFtZSkgewogICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzID0ge307CiAgICAgICAgdGhpcy5saW5lID0gYUxpbmUgPT0gbnVsbCA/IG51bGwgOiBhTGluZTsKICAgICAgICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uOwogICAgICAgIHRoaXMuc291cmNlID0gYVNvdXJjZSA9PSBudWxsID8gbnVsbCA6IGFTb3VyY2U7CiAgICAgICAgdGhpcy5uYW1lID0gYU5hbWUgPT0gbnVsbCA/IG51bGwgOiBhTmFtZTsKICAgICAgICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlOwogICAgICAgIGlmIChhQ2h1bmtzICE9IG51bGwpIHRoaXMuYWRkKGFDaHVua3MpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUdlbmVyYXRlZENvZGUgVGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhUmVsYXRpdmVQYXRoIE9wdGlvbmFsLiBUaGUgcGF0aCB0aGF0IHJlbGF0aXZlIHNvdXJjZXMgaW4gdGhlCiAgICAgICAqICAgICAgICBTb3VyY2VNYXBDb25zdW1lciBzaG91bGQgYmUgcmVsYXRpdmUgdG8uCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgX1NvdXJjZU5vZGUoKTsKICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGFHZW5lcmF0ZWRDb2RlLnNwbGl0KFJFR0VYX05FV0xJTkUpOwogICAgICAgIGxldCByZW1haW5pbmdMaW5lc0luZGV4ID0gMDsKICAgICAgICBjb25zdCBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjb25zdCBsaW5lQ29udGVudHMgPSBnZXROZXh0TGluZSgpOwogICAgICAgICAgY29uc3QgbmV3TGluZSA9IGdldE5leHRMaW5lKCkgfHwgIiI7CiAgICAgICAgICByZXR1cm4gbGluZUNvbnRlbnRzICsgbmV3TGluZTsKICAgICAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkgewogICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXgrK10gOiB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBsZXQgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDsKICAgICAgICBsZXQgbGFzdE1hcHBpbmcgPSBudWxsOwogICAgICAgIGxldCBuZXh0TGluZTsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuZWFjaE1hcHBpbmcoZnVuY3Rpb24obWFwcGluZykgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgICAgY29uc3QgY29kZSA9IG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiAtIGxhc3RHZW5lcmF0ZWRDb2x1bW4pOwogICAgICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gbGFzdEdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgY29kZSk7CiAgICAgICAgICAgICAgbGFzdE1hcHBpbmcgPSBtYXBwaW5nOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7CiAgICAgICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7CiAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgIG5vZGUuYWRkKG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbikpOwogICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSA9IG5leHRMaW5lLnN1YnN0cihtYXBwaW5nLmdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZzsKICAgICAgICB9LCB0aGlzKTsKICAgICAgICBpZiAocmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCkgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nKSB7CiAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUuYWRkKHJlbWFpbmluZ0xpbmVzLnNwbGljZShyZW1haW5pbmdMaW5lc0luZGV4KS5qb2luKCIiKSk7CiAgICAgICAgfQogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgY29uc3QgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgZnVuY3Rpb24gYWRkTWFwcGluZ1dpdGhDb2RlKG1hcHBpbmcsIGNvZGUpIHsKICAgICAgICAgIGlmIChtYXBwaW5nID09PSBudWxsIHx8IG1hcHBpbmcuc291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgbm9kZS5hZGQoY29kZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBhUmVsYXRpdmVQYXRoID8gdXRpbC5qb2luKGFSZWxhdGl2ZVBhdGgsIG1hcHBpbmcuc291cmNlKSA6IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBub2RlLmFkZChuZXcgX1NvdXJjZU5vZGUoCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICAgICAgY29kZSwKICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUKICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBjaHVuayBvZiBnZW5lcmF0ZWQgSlMgdG8gdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgYWRkKGFDaHVuaykgewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHsKICAgICAgICAgIGFDaHVuay5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgICAgIHRoaXMuYWRkKGNodW5rKTsKICAgICAgICAgIH0sIHRoaXMpOwogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIGlmIChhQ2h1bmspIHsKICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCBhIFNvdXJjZU5vZGUsIHN0cmluZywgb3IgYW4gYXJyYXkgb2YgU291cmNlTm9kZXMgYW5kIHN0cmluZ3MuIEdvdCAiICsgYUNodW5rCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgcHJlcGVuZChhQ2h1bmspIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gYUNodW5rLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChhQ2h1bmspOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgIiArIGFDaHVuawogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdhbGsgb3ZlciB0aGUgdHJlZSBvZiBKUyBzbmlwcGV0cyBpbiB0aGlzIG5vZGUgYW5kIGl0cyBjaGlsZHJlbi4gVGhlCiAgICAgICAqIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggc25pcHBldCBvZiBKUyBhbmQgaXMgcGFzc2VkIHRoYXQKICAgICAgICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uCiAgICAgICAqLwogICAgICB3YWxrKGFGbikgewogICAgICAgIGxldCBjaHVuazsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgY2h1bmsgPSB0aGlzLmNoaWxkcmVuW2ldOwogICAgICAgICAgaWYgKGNodW5rW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgICAgY2h1bmsud2FsayhhRm4pOwogICAgICAgICAgfSBlbHNlIGlmIChjaHVuayAhPT0gIiIpIHsKICAgICAgICAgICAgYUZuKGNodW5rLCB7CiAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsCiAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbiwKICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW4KICAgICAgICogZWFjaCBvZiBgdGhpcy5jaGlsZHJlbmAuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuCiAgICAgICAqLwogICAgICBqb2luKGFTZXApIHsKICAgICAgICBsZXQgbmV3Q2hpbGRyZW47CiAgICAgICAgbGV0IGk7CiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgaWYgKGxlbiA+IDApIHsKICAgICAgICAgIG5ld0NoaWxkcmVuID0gW107CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7CiAgICAgICAgICB9CiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5baV0pOwogICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ2FsbCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2Ugb24gdGhlIHZlcnkgcmlnaHQtbW9zdCBzb3VyY2Ugc25pcHBldC4gVXNlZnVsCiAgICAgICAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhUGF0dGVybiBUaGUgcGF0dGVybiB0byByZXBsYWNlLgogICAgICAgKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguCiAgICAgICAqLwogICAgICByZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGFzdENoaWxkW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgIGxhc3RDaGlsZC5yZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAic3RyaW5nIikgewogICAgICAgICAgdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdID0gbGFzdENoaWxkLnJlcGxhY2UoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgiIi5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yCiAgICAgICAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFTb3VyY2VGaWxlIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUKICAgICAgICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZQogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoYVNvdXJjZUZpbGUpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgU291cmNlTm9kZXMuIFRoZSB3YWxraW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaAogICAgICAgKiBzb3VyY2UgZmlsZSBjb250ZW50IGFuZCBpcyBwYXNzZWQgdGhlIGZpbGVuYW1lIGFuZCBzb3VyY2UgY29udGVudC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFGbiBUaGUgdHJhdmVyc2FsIGZ1bmN0aW9uLgogICAgICAgKi8KICAgICAgd2Fsa1NvdXJjZUNvbnRlbnRzKGFGbikgewogICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBpZiAodGhpcy5jaGlsZHJlbltpXVtpc1NvdXJjZU5vZGVdKSB7CiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0ud2Fsa1NvdXJjZUNvbnRlbnRzKGFGbik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNvdXJjZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNvdXJjZUNvbnRlbnRzKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gc291cmNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgYUZuKHV0aWwuZnJvbVNldFN0cmluZyhzb3VyY2VzW2ldKSwgdGhpcy5zb3VyY2VDb250ZW50c1tzb3VyY2VzW2ldXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlLiBXYWxrcyBvdmVyIHRoZSB0cmVlCiAgICAgICAqIGFuZCBjb25jYXRlbmF0ZXMgYWxsIHRoZSB2YXJpb3VzIHNuaXBwZXRzIHRvZ2V0aGVyIHRvIG9uZSBzdHJpbmcuCiAgICAgICAqLwogICAgICB0b1N0cmluZygpIHsKICAgICAgICBsZXQgc3RyMiA9ICIiOwogICAgICAgIHRoaXMud2FsayhmdW5jdGlvbihjaHVuaykgewogICAgICAgICAgc3RyMiArPSBjaHVuazsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc291cmNlIG5vZGUgYWxvbmcgd2l0aCBhIHNvdXJjZQogICAgICAgKiBtYXAuCiAgICAgICAqLwogICAgICB0b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHsKICAgICAgICBjb25zdCBnZW5lcmF0ZWQgPSB7CiAgICAgICAgICBjb2RlOiAiIiwKICAgICAgICAgIGxpbmU6IDEsCiAgICAgICAgICBjb2x1bW46IDAKICAgICAgICB9OwogICAgICAgIGNvbnN0IG1hcDIgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTsKICAgICAgICBsZXQgc291cmNlTWFwcGluZ0FjdGl2ZSA9IGZhbHNlOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsTmFtZSA9IG51bGw7CiAgICAgICAgdGhpcy53YWxrKGZ1bmN0aW9uKGNodW5rLCBvcmlnaW5hbCkgewogICAgICAgICAgZ2VuZXJhdGVkLmNvZGUgKz0gY2h1bms7CiAgICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZSB8fCBsYXN0T3JpZ2luYWxMaW5lICE9PSBvcmlnaW5hbC5saW5lIHx8IGxhc3RPcmlnaW5hbENvbHVtbiAhPT0gb3JpZ2luYWwuY29sdW1uIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHsKICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsCiAgICAgICAgICAgICAgICBvcmlnaW5hbDogewogICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtbgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgIG1hcDIuYWRkTWFwcGluZyh7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7CiAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAobGV0IGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykgewogICAgICAgICAgICBpZiAoY2h1bmsuY2hhckNvZGVBdChpZHgpID09PSBORVdMSU5FX0NPREUpIHsKICAgICAgICAgICAgICBnZW5lcmF0ZWQubGluZSsrOwogICAgICAgICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwOwogICAgICAgICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgICBzb3VyY2U6IG9yaWdpbmFsLnNvdXJjZSwKICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6IHsKICAgICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogb3JpZ2luYWwuY29sdW1uCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBuYW1lOiBvcmlnaW5hbC5uYW1lCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkLmNvbHVtbisrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24oc291cmNlRmlsZSwgc291cmNlQ29udGVudCkgewogICAgICAgICAgbWFwMi5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGNvZGU6IGdlbmVyYXRlZC5jb2RlLCBtYXA6IG1hcDIgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9zb3VyY2UtbWFwLmpzCnZhciByZXF1aXJlX3NvdXJjZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvc291cmNlLW1hcC5qcyIoZXhwb3J0czIpIHsKICAgIGV4cG9ydHMyLlNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lcigpLlNvdXJjZU1hcENvbnN1bWVyOwogICAgZXhwb3J0czIuU291cmNlTm9kZSA9IHJlcXVpcmVfc291cmNlX25vZGUoKS5Tb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanMKdmFyIHJlcXVpcmVfdGVtcGxhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3RlbXBsYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50ZW1wbGF0ZVBhcnNlciA9IHRlbXBsYXRlUGFyc2VyOwogICAgZXhwb3J0czIudGVtcGxhdGUgPSB0ZW1wbGF0ZTM7CiAgICB2YXIgc291cmNlX21hcF8xID0gcmVxdWlyZV9zb3VyY2VfbWFwKCk7CiAgICB2YXIga0ludGVycG9sYXRlUmUgPSAvPCU9KFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0NvbW1lbnRSZSA9IC88JSMoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrRXNjYXBlUmUgPSAvPCUtKFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0V2YWx1YXRlUmUgPSAvPCUoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrSHRtbEVzY2FwZXMgPSB7CiAgICAgICImIjogIiZhbXA7IiwKICAgICAgIjwiOiAiJmx0OyIsCiAgICAgICI+IjogIiZndDsiLAogICAgICAnIic6ICImcXVvdDsiLAogICAgICAiJyI6ICImIzM5OyIsCiAgICAgICJgIjogIiYjOTY7IgogICAgfTsKICAgIHZhciByZVVuZXNjYXBlZEh0bWwgPSBuZXcgUmVnRXhwKGBbJHtPYmplY3Qua2V5cyhrSHRtbEVzY2FwZXMpLmpvaW4oIiIpfV1gLCAiZyIpOwogICAgZnVuY3Rpb24gX3Bvc2l0aW9uRm9yKGNvbnRlbnQsIG9mZnNldCkgewogICAgICBsZXQgbGluZSA9IDE7CiAgICAgIGxldCBjb2x1bW4gPSAwOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9mZnNldCAtIDE7IGkrKykgewogICAgICAgIGlmIChjb250ZW50W2ldID09ICJcbiIpIHsKICAgICAgICAgIGxpbmUrKzsKICAgICAgICAgIGNvbHVtbiA9IDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbHVtbisrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGxpbmUsCiAgICAgICAgY29sdW1uCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZVBhcnNlcihzb3VyY2VUZXh0LCBmaWxlTmFtZSkgewogICAgICBjb25zdCBjaGlsZHJlbiA9IFtdOwogICAgICBjb25zdCByZUV4cHJlc3Npb25zID0gW2tFc2NhcGVSZSwga0NvbW1lbnRSZSwga0ludGVycG9sYXRlUmUsIGtFdmFsdWF0ZVJlXTsKICAgICAgY29uc3QgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKHJlRXhwcmVzc2lvbnMubWFwKCh4KSA9PiB4LnNvdXJjZSkuam9pbigifCIpICsgInwkIiwgImciKTsKICAgICAgY29uc3QgcGFyc2VkID0gc291cmNlVGV4dC5zcGxpdChyZURlbGltaXRlcnMpOwogICAgICBsZXQgb2Zmc2V0ID0gMDsKICAgICAgbGV0IHN0YXJ0ID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCk7CiAgICAgIGxldCBlbmQ7CiAgICAgIGNvbnN0IGluY3JlbWVudCA9IHJlRXhwcmVzc2lvbnMubGVuZ3RoICsgMTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJzZWQubGVuZ3RoOyBpICs9IGluY3JlbWVudCkgewogICAgICAgIGNvbnN0IFtjb250ZW50LCBlc2NhcGUyLCBjb21tZW50LCBpbnRlcnBvbGF0ZSwgZXZhbHVhdGVdID0gcGFyc2VkLnNsaWNlKGksIGkgKyBpbmNyZW1lbnQpOwogICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29udGVudC5sZW5ndGgpOwogICAgICAgICAgb2Zmc2V0ICs9IGNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJjb250ZW50IiwgY29udGVudCwgc3RhcnQsIGVuZCB9KTsKICAgICAgICAgIHN0YXJ0ID0gZW5kOwogICAgICAgIH0KICAgICAgICBpZiAoZXNjYXBlMikgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGVzY2FwZTIubGVuZ3RoICsgNSk7CiAgICAgICAgICBvZmZzZXQgKz0gZXNjYXBlMi5sZW5ndGggKyA1OwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJlc2NhcGUiLCBleHByZXNzaW9uOiBlc2NhcGUyLCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChjb21tZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29tbWVudC5sZW5ndGggKyA1KTsKICAgICAgICAgIG9mZnNldCArPSBjb21tZW50Lmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImNvbW1lbnQiLCB0ZXh0OiBjb21tZW50LCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChpbnRlcnBvbGF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGludGVycG9sYXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGludGVycG9sYXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAga2luZDogImludGVycG9sYXRlIiwKICAgICAgICAgICAgZXhwcmVzc2lvbjogaW50ZXJwb2xhdGUsCiAgICAgICAgICAgIHN0YXJ0LAogICAgICAgICAgICBlbmQKICAgICAgICAgIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChldmFsdWF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGV2YWx1YXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGV2YWx1YXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImV2YWx1YXRlIiwgZXhwcmVzc2lvbjogZXZhbHVhdGUsIHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICBzdGFydCA9IGVuZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHsKICAgICAgICBmaWxlTmFtZSwKICAgICAgICBjb250ZW50OiBzb3VyY2VUZXh0LAogICAgICAgIGNoaWxkcmVuCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZUZhc3QoYXN0LCBvcHRpb25zKSB7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gIm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSIgOiAiIjsKICAgICAgY29uc3QgcmVIdG1sRXNjYXBlID0gcmVVbmVzY2FwZWRIdG1sLnNvdXJjZS5yZXBsYWNlKC9bJ10vZywgIlxcXFxcXCciKTsKICAgICAgcmV0dXJuIGAKICAgIHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewogICAgICBvYmogfHwgKG9iaiA9IHt9KTsKICAgICAgbGV0IF9fdDsKICAgICAgbGV0IF9fcCA9ICcnOwogICAgICBjb25zdCBfX2VzY2FwZXMgPSAke0pTT04uc3RyaW5naWZ5KGtIdG1sRXNjYXBlcyl9OwogICAgICBjb25zdCBfX2VzY2FwZXNyZSA9IG5ldyBSZWdFeHAoJyR7cmVIdG1sRXNjYXBlfScsICdnJyk7CgogICAgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgcmV0dXJuIHMgPyBzLnJlcGxhY2UoX19lc2NhcGVzcmUsIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gX19lc2NhcGVzW2tleV07IH0pIDogJyc7CiAgICAgIH07CiAgICAgIHdpdGggKG9iaikgewogICAgICAgICR7YXN0LmNoaWxkcmVuLm1hcCgobm9kZSkgPT4gewogICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7CiAgICAgICAgICBjYXNlICJjb250ZW50IjoKICAgICAgICAgICAgcmV0dXJuIGBfX3AgKz0gJHtKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpfTtgOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSAoKF9fdCA9ICgke25vZGUuZXhwcmVzc2lvbn0pKSA9PSBudWxsKSA/ICcnIDogX190O2A7CiAgICAgICAgICBjYXNlICJlc2NhcGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSBfX2UoJHtub2RlLmV4cHJlc3Npb259KTtgOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICByZXR1cm4gbm9kZS5leHByZXNzaW9uOwogICAgICAgIH0KICAgICAgfSkuam9pbigiXG4iKX0KICAgICAgfQoKICAgICAgcmV0dXJuIF9fcDsKICAgIH07CiAgYDsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc291cmNlVXJsID0gYXN0LmZpbGVOYW1lOwogICAgICBjb25zdCBtb2R1bGUzID0gb3B0aW9ucyAmJiBvcHRpb25zLm1vZHVsZSA/ICJtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0iIDogIiI7CiAgICAgIGNvbnN0IHJlSHRtbEVzY2FwZSA9IHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UucmVwbGFjZSgvWyddL2csICJcXFxcXFwnIik7CiAgICAgIGNvbnN0IHByZWFtYmxlID0gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKDEsIDAsIHNvdXJjZVVybCwgIiIpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoMSwgMCwgc291cmNlVXJsLCBbCiAgICAgICAgYHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewpgLAogICAgICAgICIgIG9iaiB8fCAob2JqID0ge30pO1xuIiwKICAgICAgICAiICBsZXQgX190O1xuIiwKICAgICAgICAnICBsZXQgX19wID0gIiI7XG4nLAogICAgICAgIGAgIGNvbnN0IF9fZXNjYXBlcyA9ICR7SlNPTi5zdHJpbmdpZnkoa0h0bWxFc2NhcGVzKX07CmAsCiAgICAgICAgYCAgY29uc3QgX19lc2NhcGVzcmUgPSBuZXcgUmVnRXhwKCcke3JlSHRtbEVzY2FwZX0nLCAnZycpOwpgLAogICAgICAgIGAKYCwKICAgICAgICBgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7IGAsCiAgICAgICAgYCAgICByZXR1cm4gcyA/IHMucmVwbGFjZShfX2VzY2FwZXNyZSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiBfX2VzY2FwZXNba2V5XTsgfSkgOiAnJztgLAogICAgICAgIGAgIH07CmAsCiAgICAgICAgYCAgd2l0aCAob2JqKSB7CmAKICAgICAgXSkpOwogICAgICBjb25zdCBlbmQgPSBhc3QuY2hpbGRyZW4ubGVuZ3RoID8gYXN0LmNoaWxkcmVuW2FzdC5jaGlsZHJlbi5sZW5ndGggLSAxXS5lbmQgOiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9OwogICAgICBjb25zdCBub2RlcyA9IGFzdC5jaGlsZHJlbi5yZWR1Y2UoKGNodW5rLCBub2RlKSA9PiB7CiAgICAgICAgbGV0IGNvZGUyID0gIiI7CiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHsKICAgICAgICAgIGNhc2UgImNvbnRlbnQiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wID0gX19wIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5jb250ZW50LnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCAiXG4gICAgKyAiICsgSlNPTi5zdHJpbmdpZnkobGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIjtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wICs9ICgoX190ID0gIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5leHByZXNzaW9uLnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCBsaW5lICsgKGkgPT0gYXJyLmxlbmd0aCAtIDEgPyAiIiA6ICJcbiIpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5lbmQubGluZSwgbm9kZS5lbmQuY29sdW1uLCBzb3VyY2VVcmwsICcpID09IG51bGwgPyAiIiA6IF9fdCk7XG4nKQogICAgICAgICAgICBdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImVzY2FwZSI6CiAgICAgICAgICAgIGNvZGUyID0gWwogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUsIG5vZGUuc3RhcnQuY29sdW1uLCBzb3VyY2VVcmwsICJfX3AgKz0gX19lKCIpLAogICAgICAgICAgICAgIC4uLm5vZGUuZXhwcmVzc2lvbi5zcGxpdCgiXG4iKS5tYXAoKGxpbmUsIGksIGFycikgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUgKyBpLCBpID09IDAgPyBub2RlLnN0YXJ0LmNvbHVtbiA6IDAsIHNvdXJjZVVybCwgbGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuZW5kLmxpbmUsIG5vZGUuZW5kLmNvbHVtbiwgc291cmNlVXJsLCAiKTtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICAuLi5ub2RlLmV4cHJlc3Npb24uc3BsaXQoIlxuIikubWFwKChsaW5lLCBpLCBhcnIpID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lICsgaSwgaSA9PSAwID8gbm9kZS5zdGFydC5jb2x1bW4gOiAwLCBzb3VyY2VVcmwsIGxpbmUgKyAoaSA9PSBhcnIubGVuZ3RoIC0gMSA/ICIiIDogIlxuIikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIlxuIikKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjaHVuay5hZGQobmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSwgbm9kZS5zdGFydC5jb2x1bW4sIHNvdXJjZVVybCwgY29kZTIpKTsKICAgICAgfSwgcHJlYW1ibGUpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoZW5kLmxpbmUsIGVuZC5jb2x1bW4sIHNvdXJjZVVybCwgWyIgIH07XG4iLCAiXG4iLCAiICByZXR1cm4gX19wO1xuIiwgIn1cbiJdKSk7CiAgICAgIGNvbnN0IGNvZGUgPSBub2Rlcy50b1N0cmluZ1dpdGhTb3VyY2VNYXAoewogICAgICAgIGZpbGU6IHNvdXJjZVVybCwKICAgICAgICBzb3VyY2VSb290OiBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlUm9vdCB8fCAiLiIKICAgICAgfSk7CiAgICAgIGNvZGUubWFwLnNldFNvdXJjZUNvbnRlbnQoc291cmNlVXJsLCBhc3QuY29udGVudCk7CiAgICAgIHJldHVybiBjb2RlLmNvZGUgKyAiXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIgKyBCdWZmZXIuZnJvbShjb2RlLm1hcC50b1N0cmluZygpKS50b1N0cmluZygiYmFzZTY0Iik7CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZTMoY29udGVudCwgb3B0aW9ucykgewogICAgICBjb25zdCBzb3VyY2VVcmwgPSBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlVVJMIHx8ICJlanMiOwogICAgICBjb25zdCBhc3QgPSB0ZW1wbGF0ZVBhcnNlcihjb250ZW50LCBzb3VyY2VVcmwpOwogICAgICBsZXQgc291cmNlOwogICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNvdXJjZU1hcCkgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpOwogICAgICB9IGVsc2UgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlRmFzdChhc3QsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGNvbnN0IGZuID0gRnVuY3Rpb24oIm1vZHVsZSIsIHNvdXJjZSk7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gb3B0aW9ucy5tb2R1bGUgPT09IHRydWUgPyB7IGV4cG9ydHM6IHt9IH0gOiBvcHRpb25zLm1vZHVsZSA6IG51bGw7CiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKG1vZHVsZTMpOwogICAgICByZXN1bHQuc291cmNlID0gc291cmNlOwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzCnZhciByZXF1aXJlX3BhcnRpYWxseV9vcmRlcmVkX3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXJ0aWFsbHlPcmRlcmVkU2V0ID0gZXhwb3J0czIuQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb24gPSBleHBvcnRzMi5EZXBlbmRlbmN5Tm90Rm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJPbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBpcyBub3QgcGFydCBvZiB0aGUgc2V0LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uID0gRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uOwogICAgdmFyIENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBleGNlcHRpb25fMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoIkNpcmN1bGFyIGRlcGVuZGVuY2llcyBmb3VuZC4iKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb247CiAgICB2YXIgUGFydGlhbGx5T3JkZXJlZFNldCA9IGNsYXNzIHsKICAgICAgX2l0ZW1zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2NoZWNrQ2lyY3VsYXJEZXBlbmRlbmNpZXMoaXRlbSwgZGVwcykgewogICAgICAgIGlmIChkZXBzLmhhcyhpdGVtKSkgewogICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGRlcHMuZm9yRWFjaCgoZGVwKSA9PiB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIHRoaXMuX2l0ZW1zLmdldChkZXApIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpKTsKICAgICAgfQogICAgICBjbGVhcigpIHsKICAgICAgICB0aGlzLl9pdGVtcy5jbGVhcigpOwogICAgICB9CiAgICAgIGhhcyhpdGVtKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmhhcyhpdGVtKTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2l6ZTsKICAgICAgfQogICAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHsKICAgICAgICBmb3IgKGNvbnN0IHggb2YgdGhpcykgewogICAgICAgICAgY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsIHgsIHgsIHRoaXMpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBbdix2XSBwYWlycyBmb3IgZXZlcnkgdmFsdWUgYHZgIGluIHRoZSBzZXQuCiAgICAgICAqLwogICAgICAqZW50cmllcygpIHsKICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcykgewogICAgICAgICAgeWllbGQgW2l0ZW0sIGl0ZW1dOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogRGVzcGl0ZSBpdHMgbmFtZSwgcmV0dXJucyBhbiBpdGVyYWJsZSBvZiB0aGUgdmFsdWVzIGluIHRoZSBzZXQsCiAgICAgICAqLwogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICAgKi8KICAgICAgdmFsdWVzKCkgewogICAgICAgIHJldHVybiB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKICAgICAgfQogICAgICBhZGQoaXRlbSwgZGVwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXBzKSkgewogICAgICAgICAgZGVwcyA9IG5ldyBTZXQoZGVwcyk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pdGVtcy5oYXMoaXRlbSkpIHsKICAgICAgICAgIGNvbnN0IGl0ZW1EZXBzID0gdGhpcy5faXRlbXMuZ2V0KGl0ZW0pIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgICBsZXQgZXF1YWwgPSB0cnVlOwogICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykgewogICAgICAgICAgICBpZiAoIWl0ZW1EZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGVxdWFsKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGl0ZW1EZXBzKSB7CiAgICAgICAgICAgICAgaWYgKCFkZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXF1YWwpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKICAgICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGRlcCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbigpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIGRlcHMpOwogICAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtLCBuZXcgU2V0KGRlcHMpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBkZWxldGUoaXRlbSkgewogICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGl0ZW0pKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHRoaXMuX2l0ZW1zLmZvckVhY2goKHZhbHVlKSA9PiB2YWx1ZS5kZWxldGUoaXRlbSkpOwogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgIH0KICAgICAgKltTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgTWFwKHRoaXMuX2l0ZW1zKTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBjb3B5LmVudHJpZXMoKSkgewogICAgICAgICAgY29weS5zZXQoa2V5LCBuZXcgU2V0KHZhbHVlKSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChjb3B5LnNpemUgPiAwKSB7CiAgICAgICAgICBjb25zdCBydW4gPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgW2l0ZW0sIGRlcHNdIG9mIGNvcHkuZW50cmllcygpKSB7CiAgICAgICAgICAgIGlmIChkZXBzLnNpemUgPT0gMCkgewogICAgICAgICAgICAgIHJ1bi5wdXNoKGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcnVuKSB7CiAgICAgICAgICAgIGNvcHkuZm9yRWFjaCgocykgPT4gcy5kZWxldGUoaXRlbSkpOwogICAgICAgICAgICBjb3B5LmRlbGV0ZShpdGVtKTsKICAgICAgICAgICAgeWllbGQgaXRlbTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChydW4ubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkgewogICAgICAgIHJldHVybiAiU2V0IjsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhcnRpYWxseU9yZGVyZWRTZXQgPSBQYXJ0aWFsbHlPcmRlcmVkU2V0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanMKdmFyIHJlcXVpcmVfcHJpb3JpdHlfcXVldWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3ByaW9yaXR5LXF1ZXVlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Qcmlvcml0eVF1ZXVlID0gdm9pZCAwOwogICAgdmFyIFByaW9yaXR5UXVldWUgPSBjbGFzcyB7CiAgICAgIF9jb21wYXJhdG9yOwogICAgICBfaXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2NvbXBhcmF0b3IpIHsKICAgICAgICB0aGlzLl9jb21wYXJhdG9yID0gX2NvbXBhcmF0b3I7CiAgICAgIH0KICAgICAgY2xlYXIoKSB7CiAgICAgICAgdGhpcy5faXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgfQogICAgICBwdXNoKGl0ZW0pIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2l0ZW1zLmZpbmRJbmRleCgoZXhpc3RpbmcpID0+IHRoaXMuX2NvbXBhcmF0b3IoaXRlbSwgZXhpc3RpbmcpIDw9IDApOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnB1c2goaXRlbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnNwbGljZShpbmRleCwgMCwgaXRlbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHBvcCgpIHsKICAgICAgICBpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc3BsaWNlKDAsIDEpWzBdOwogICAgICB9CiAgICAgIHBlZWsoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zWzBdOwogICAgICB9CiAgICAgIGdldCBzaXplKCkgewogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7CiAgICAgIH0KICAgICAgdG9BcnJheSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaW9yaXR5UXVldWUgPSBQcmlvcml0eVF1ZXVlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGFuZy5qcwp2YXIgcmVxdWlyZV9sYW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9sYW5nLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSBpc1Byb21pc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2Uob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICJmdW5jdGlvbiI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9pbmRleC5qcwp2YXIgcmVxdWlyZV91dGlsczMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIudGFncyA9IHZvaWQgMDsKICAgIHZhciB0YWdzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfbGl0ZXJhbHMoKSk7CiAgICBleHBvcnRzMi50YWdzID0gdGFnczsKICAgIHZhciBzdHJpbmdzMyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX3N0cmluZ3MoKSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gc3RyaW5nczM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9vYmplY3QoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcGFydGlhbGx5X29yZGVyZWRfc2V0KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3ByaW9yaXR5X3F1ZXVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2xhbmcoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdmlzaXRvci5qcwp2YXIgcmVxdWlyZV92aXNpdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52aXNpdEpzb24gPSB2aXNpdEpzb247CiAgICBleHBvcnRzMi52aXNpdEpzb25TY2hlbWEgPSB2aXNpdEpzb25TY2hlbWE7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBwb2ludGVyXzEgPSByZXF1aXJlX3BvaW50ZXIoKTsKICAgIGZ1bmN0aW9uIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiAhPT0gIm9iamVjdCIgfHwgc2NoZW1hMiA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgfHwgc2NoZW1hMi50eXBlID09ICJvYmplY3QiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgJiYgdHlwZW9mIHNjaGVtYTIucHJvcGVydGllc1trZXldID09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gc2NoZW1hMi5wcm9wZXJ0aWVzW2tleV07CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMi5hZGRpdGlvbmFsUHJvcGVydGllcyA9PSAib2JqZWN0IikgewogICAgICAgICAgcmV0dXJuIHNjaGVtYTIuYWRkaXRpb25hbFByb3BlcnRpZXM7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiIHx8IHNjaGVtYTIudHlwZSA9PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiID8gc2NoZW1hMi5pdGVtcyA6IHZvaWQgMDsKICAgICAgfQogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogICAgZnVuY3Rpb24gX3Zpc2l0SnNvblJlY3Vyc2l2ZShqc29uMiwgdmlzaXRvciwgcHRyLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCkgewogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSB8fCBzY2hlbWEyID09PSBmYWxzZSkgewogICAgICAgIHNjaGVtYTIgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIgJiYgc2NoZW1hMi5oYXNPd25Qcm9wZXJ0eSgiJHJlZiIpICYmIHR5cGVvZiBzY2hlbWEyWyIkcmVmIl0gPT0gInN0cmluZyIpIHsKICAgICAgICBpZiAocmVmUmVzb2x2ZXIpIHsKICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVmUmVzb2x2ZXIoc2NoZW1hMlsiJHJlZiJdLCBjb250ZXh0KTsKICAgICAgICAgIHNjaGVtYTIgPSByZXNvbHZlZC5zY2hlbWE7CiAgICAgICAgICBjb250ZXh0ID0gcmVzb2x2ZWQuY29udGV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdG9yKGpzb24yLCBwdHIsIHNjaGVtYTIsIHJvb3QpOwogICAgICByZXR1cm4gKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKSh2YWx1ZSkgPyB2YWx1ZSA6ICgwLCByeGpzXzEub2YpKHZhbHVlKSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHZhbHVlMikgPT4gewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMikpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKSh2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKGl0ZW0sIGkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoaXRlbSwgdmlzaXRvciwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKHB0ciwgIiIgKyBpKSwgX2dldE9iamVjdFN1YlNjaGVtYShzY2hlbWEyLCAiIiArIGkpLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCB8fCB2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS50YXApKCh4KSA9PiB2YWx1ZTJbaV0gPSB4KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlMiA9PSAib2JqZWN0IiAmJiB2YWx1ZTIgIT09IG51bGwpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZTIpKS5waXBlKCgwLCByeGpzXzEubWVyZ2VNYXApKChrZXkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUodmFsdWUyW2tleV0sIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShwdHIsIGtleSksIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSwgcmVmUmVzb2x2ZXIsIGNvbnRleHQsIHJvb3QgfHwgdmFsdWUyKS5waXBlKCgwLCByeGpzXzEudGFwKSgoeCkgPT4gewogICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlMiwga2V5KTsKICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLndyaXRhYmxlICYmIHZhbHVlMltrZXldICE9PSB4KSB7CiAgICAgICAgICAgICAgICB2YWx1ZTJba2V5XSA9IHg7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodmFsdWUyKTsKICAgICAgICB9CiAgICAgIH0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHZpc2l0SnNvbihqc29uMiwgdmlzaXRvciwgc2NoZW1hMiwgcmVmUmVzb2x2ZXIsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoanNvbjIsIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiB2aXNpdEpzb25TY2hlbWEoc2NoZW1hMiwgdmlzaXRvcikgewogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UgfHwgc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBrZXl3b3JkcyA9IHsKICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgY29udGFpbnM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcHJvcGVydHlOYW1lczogdHJ1ZSwKICAgICAgICBub3Q6IHRydWUKICAgICAgfTsKICAgICAgY29uc3QgYXJyYXlLZXl3b3JkcyA9IHsKICAgICAgICBpdGVtczogdHJ1ZSwKICAgICAgICBhbGxPZjogdHJ1ZSwKICAgICAgICBhbnlPZjogdHJ1ZSwKICAgICAgICBvbmVPZjogdHJ1ZQogICAgICB9OwogICAgICBjb25zdCBwcm9wc0tleXdvcmRzID0gewogICAgICAgIGRlZmluaXRpb25zOiB0cnVlLAogICAgICAgIHByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgZGVwZW5kZW5jaWVzOiB0cnVlLAogICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgIH07CiAgICAgIGZ1bmN0aW9uIF90cmF2ZXJzZShzY2hlbWEzLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KSB7CiAgICAgICAgaWYgKHNjaGVtYTMgJiYgdHlwZW9mIHNjaGVtYTMgPT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkoc2NoZW1hMykpIHsKICAgICAgICAgIHZpc2l0b3Ioc2NoZW1hMywganNvblB0ciwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzY2hlbWEzKSkgewogICAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEzW2tleV07CiAgICAgICAgICAgIGlmIChrZXkgaW4gcHJvcHNLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHNjaCkpIHsKICAgICAgICAgICAgICAgICAgX3RyYXZlcnNlKHNjaFtwcm9wXSwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKGpzb25QdHIsIGtleSwgcHJvcCksIHJvb3RTY2hlbWEsIHNjaGVtYTMsIHByb3ApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4ga2V5d29yZHMpIHsKICAgICAgICAgICAgICBfdHJhdmVyc2Uoc2NoLCAoMCwgcG9pbnRlcl8xLmpvaW5Kc29uUG9pbnRlcikoanNvblB0ciwga2V5KSwgcm9vdFNjaGVtYSwgc2NoZW1hMywga2V5KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gYXJyYXlLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2NoLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2gpKSB7CiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX3RyYXZlcnNlKHNjaGVtYTIsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3JlZ2lzdHJ5LmpzCnZhciByZXF1aXJlX3JlZ2lzdHJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Db3JlU2NoZW1hUmVnaXN0cnkgPSBleHBvcnRzMi5TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmVfYWp2KCkpOwogICAgdmFyIGFqdl9mb3JtYXRzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9kaXN0KCkpOwogICAgdmFyIGh0dHAgPSBfX2ltcG9ydFN0YXIocmVxdWlyZSgiaHR0cCIpKTsKICAgIHZhciBodHRwcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJodHRwcyIpKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFVybCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJ1cmwiKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzMygpOwogICAgdmFyIHV0aWxzXzIgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgdXRpbGl0eV8xID0gcmVxdWlyZV91dGlsaXR5KCk7CiAgICB2YXIgdmlzaXRvcl8xID0gcmVxdWlyZV92aXNpdG9yKCk7CiAgICB2YXIgU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IGNsYXNzIF9TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGVycm9yczsKICAgICAgY29uc3RydWN0b3IoZXJyb3JzLCBiYXNlTWVzc2FnZSA9ICJTY2hlbWEgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczoiKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgc3VwZXIoIlNjaGVtYSB2YWxpZGF0aW9uIGZhaWxlZC4iKTsKICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gX1NjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uY3JlYXRlTWVzc2FnZXMoZXJyb3JzKTsKICAgICAgICBzdXBlcihgJHtiYXNlTWVzc2FnZX0KICAke21lc3NhZ2VzLmpvaW4oIlxuICAiKX1gKTsKICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKICAgICAgfQogICAgICBzdGF0aWMgY3JlYXRlTWVzc2FnZXMoZXJyb3JzKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGVycm9ycy5tYXAoKGVycikgPT4gewogICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgRGF0YSBwYXRoICR7SlNPTi5zdHJpbmdpZnkoZXJyLmluc3RhbmNlUGF0aCl9ICR7ZXJyLm1lc3NhZ2V9YDsKICAgICAgICAgIGlmIChlcnIucGFyYW1zKSB7CiAgICAgICAgICAgIHN3aXRjaCAoZXJyLmtleXdvcmQpIHsKICAgICAgICAgICAgICBjYXNlICJhZGRpdGlvbmFsUHJvcGVydGllcyI6CiAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGAoJHtlcnIucGFyYW1zLmFkZGl0aW9uYWxQcm9wZXJ0eX0pYDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImVudW0iOgogICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgLiBBbGxvd2VkIHZhbHVlcyBhcmU6ICR7ZXJyLnBhcmFtcy5hbGxvd2VkVmFsdWVzPy5tYXAoKHYpID0+IGAiJHt2fSJgKS5qb2luKCIsICIpfWA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1lc3NhZ2UgKyAiLiI7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb247CiAgICB2YXIgQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gY2xhc3MgX0NvcmVTY2hlbWFSZWdpc3RyeSB7CiAgICAgIF9hanY7CiAgICAgIF91cmlDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF91cmlIYW5kbGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIF9wcmUgPSBuZXcgdXRpbHNfMS5QYXJ0aWFsbHlPcmRlcmVkU2V0KCk7CiAgICAgIF9wb3N0ID0gbmV3IHV0aWxzXzEuUGFydGlhbGx5T3JkZXJlZFNldCgpOwogICAgICBfY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbzsKICAgICAgX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSBmYWxzZTsKICAgICAgX3Byb21wdFByb3ZpZGVyOwogICAgICBfc291cmNlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoZm9ybWF0cyA9IFtdKSB7CiAgICAgICAgdGhpcy5fYWp2ID0gbmV3IGFqdl8xLmRlZmF1bHQoewogICAgICAgICAgc3RyaWN0OiBmYWxzZSwKICAgICAgICAgIGxvYWRTY2hlbWE6ICh1cmkpID0+IHRoaXMuX2ZldGNoKHVyaSksCiAgICAgICAgICBwYXNzQ29udGV4dDogdHJ1ZQogICAgICAgIH0pOwogICAgICAgICgwLCBhanZfZm9ybWF0c18xLmRlZmF1bHQpKHRoaXMuX2Fqdik7CiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgewogICAgICAgICAgdGhpcy5hZGRGb3JtYXQoZm9ybWF0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXN5bmMgX2ZldGNoKHVyaSkgewogICAgICAgIGNvbnN0IG1heWJlU2NoZW1hID0gdGhpcy5fdXJpQ2FjaGUuZ2V0KHVyaSk7CiAgICAgICAgaWYgKG1heWJlU2NoZW1hKSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTY2hlbWE7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl91cmlIYW5kbGVycykgewogICAgICAgICAgbGV0IGhhbmRsZXJSZXN1bHQgPSBoYW5kbGVyKHVyaSk7CiAgICAgICAgICBpZiAoaGFuZGxlclJlc3VsdCA9PT0gbnVsbCB8fCBoYW5kbGVyUmVzdWx0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKGhhbmRsZXJSZXN1bHQpKSB7CiAgICAgICAgICAgIGhhbmRsZXJSZXN1bHQgPSAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhhbmRsZXJSZXN1bHQpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBoYW5kbGVyUmVzdWx0OwogICAgICAgICAgdGhpcy5fdXJpQ2FjaGUuc2V0KHVyaSwgdmFsdWUpOwogICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgY29uc3QgdXJsMyA9IG5ldyBVcmwuVVJMKHVyaSk7CiAgICAgICAgICBjb25zdCBjbGllbnQgPSB1cmwzLnByb3RvY29sID09PSAiaHR0cHM6IiA/IGh0dHBzIDogaHR0cDsKICAgICAgICAgIGNsaWVudC5nZXQodXJsMywgKHJlcykgPT4gewogICAgICAgICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID49IDMwMCkgewogICAgICAgICAgICAgIHJlcy5yZXN1bWUoKTsKICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZC4gU3RhdHVzIENvZGU6ICR7cmVzLnN0YXR1c0NvZGV9YCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcy5zZXRFbmNvZGluZygidXRmOCIpOwogICAgICAgICAgICAgIGxldCBkYXRhID0gIiI7CiAgICAgICAgICAgICAgcmVzLm9uKCJkYXRhIiwgKGNodW5rKSA9PiB7CiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJlcy5vbigiZW5kIiwgKCkgPT4gewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QganNvbjIgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgICAgICAgICAgICAgICB0aGlzLl91cmlDYWNoZS5zZXQodXJpLCBqc29uMik7CiAgICAgICAgICAgICAgICAgIHJlc29sdmUoanNvbjIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgdHJhbnNmb3JtYXRpb24gc3RlcCBiZWZvcmUgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uCiAgICAgICAqIEBwYXJhbSB7SnNvblZpc2l0b3J9IHZpc2l0b3IgVGhlIHZpc2l0b3IgdG8gdHJhbnNmb3JtIGV2ZXJ5IHZhbHVlLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yW119IGRlcHMgQSBsaXN0IG9mIG90aGVyIHZpc2l0b3JzIHRvIHJ1biBiZWZvcmUuCiAgICAgICAqLwogICAgICBhZGRQcmVUcmFuc2Zvcm0odmlzaXRvciwgZGVwcykgewogICAgICAgIHRoaXMuX3ByZS5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHRyYW5zZm9ybWF0aW9uIHN0ZXAgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uIFRoZSBKU09OIHdpbGwgbm90IGJlIHZhbGlkYXRlZAogICAgICAgKiBhZnRlciB0aGUgUE9TVCwgc28gaWYgdHJhbnNmb3JtYXRpb25zIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBTY2hlbWEgaXQgd2lsbCBub3QgcmVzdWx0CiAgICAgICAqIGluIGFuIGVycm9yLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yfSB2aXNpdG9yIFRoZSB2aXNpdG9yIHRvIHRyYW5zZm9ybSBldmVyeSB2YWx1ZS4KICAgICAgICogQHBhcmFtIHtKc29uVmlzaXRvcltdfSBkZXBzIEEgbGlzdCBvZiBvdGhlciB2aXNpdG9ycyB0byBydW4gYmVmb3JlLgogICAgICAgKi8KICAgICAgYWRkUG9zdFRyYW5zZm9ybSh2aXNpdG9yLCBkZXBzKSB7CiAgICAgICAgdGhpcy5fcG9zdC5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgX3Jlc29sdmVyKHJlZiwgdmFsaWRhdGUpIHsKICAgICAgICBpZiAoIXZhbGlkYXRlIHx8ICFyZWYpIHsKICAgICAgICAgIHJldHVybiB7fTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgc2NoZW1hMiA9IHZhbGlkYXRlLnNjaGVtYUVudi5yb290LnNjaGVtYTsKICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IiA/IHNjaGVtYTIuJGlkIDogbnVsbDsKICAgICAgICBsZXQgZnVsbFJlZmVyZW5jZSA9IHJlZjsKICAgICAgICBpZiAodHlwZW9mIGlkID09PSAic3RyaW5nIikgewogICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IFVybC5yZXNvbHZlKGlkLCByZWYpOwogICAgICAgICAgaWYgKHJlZi5zdGFydHNXaXRoKCIjIikpIHsKICAgICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IGlkICsgZnVsbFJlZmVyZW5jZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgcmVzb2x2ZWRTY2hlbWEgPSB0aGlzLl9hanYuZ2V0U2NoZW1hKGZ1bGxSZWZlcmVuY2UpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjb250ZXh0OiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hRW52LnZhbGlkYXRlLAogICAgICAgICAgc2NoZW1hOiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogRmxhdHRlbiB0aGUgU2NoZW1hLCByZXNvbHZpbmcgYW5kIHJlcGxhY2luZyBhbGwgdGhlIHJlZnMuIE1ha2VzIGl0IGludG8gYSBzeW5jaHJvbm91cyBzY2hlbWEKICAgICAgICogdGhhdCBpcyBhbHNvIGVhc2llciB0byB0cmF2ZXJzZS4gRG9lcyBub3QgY2FjaGUgdGhlIHJlc3VsdC4KICAgICAgICoKICAgICAgICogUHJvZHVjaW5nIGEgZmxhdHRlbiBzY2hlbWEgZG9jdW1lbnQgZG9lcyBub3QgaW4gYWxsIGNhc2VzIHByb2R1Y2UgYSBzY2hlbWEgd2l0aCBpZGVudGljYWwgYmVoYXZpb3IgdG8gdGhlIG9yaWdpbmFsLgogICAgICAgKiBTZWU6IGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5hcHBlbmRpeC5CLjIKICAgICAgICoKICAgICAgICogQHBhcmFtIHNjaGVtYSBUaGUgc2NoZW1hIG9yIFVSSSB0byBmbGF0dGVuLgogICAgICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIG9mIHRoZSBmbGF0dGVuZWQgc2NoZW1hIG9iamVjdC4KICAgICAgICogQHByaXZhdGUgc2luY2UgMTEuMiB3aXRob3V0IHJlcGxhY2VtZW50LgogICAgICAgKi8KICAgICAgYXN5bmMgXHUwMjc1ZmxhdHRlbihzY2hlbWEyKSB7CiAgICAgICAgdGhpcy5fYWp2LnJlbW92ZVNjaGVtYShzY2hlbWEyKTsKICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fYWp2LmNvbXBpbGVBc3luYyhzY2hlbWEyKTsKICAgICAgICBjb25zdCBzZWxmMiA9IHRoaXM7CiAgICAgICAgZnVuY3Rpb24gdmlzaXRvcihjdXJyZW50LCBwb2ludGVyLCBwYXJlbnRTY2hlbWEsIGluZGV4KSB7CiAgICAgICAgICBpZiAoY3VycmVudCAmJiBwYXJlbnRTY2hlbWEgJiYgaW5kZXggJiYgKDAsIHV0aWxzXzIuaXNKc29uT2JqZWN0KShjdXJyZW50KSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwgIiRyZWYiKSAmJiB0eXBlb2YgY3VycmVudFsiJHJlZiJdID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gc2VsZjIuX3Jlc29sdmVyKGN1cnJlbnRbIiRyZWYiXSwgdmFsaWRhdGUpOwogICAgICAgICAgICBpZiAocmVzb2x2ZWQuc2NoZW1hKSB7CiAgICAgICAgICAgICAgcGFyZW50U2NoZW1hW2luZGV4XSA9IHJlc29sdmVkLnNjaGVtYTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWFDb3B5ID0gKDAsIHV0aWxzXzEuZGVlcENvcHkpKHZhbGlkYXRlLnNjaGVtYSk7CiAgICAgICAgKDAsIHZpc2l0b3JfMS52aXNpdEpzb25TY2hlbWEpKHNjaGVtYUNvcHksIHZpc2l0b3IpOwogICAgICAgIHJldHVybiBzY2hlbWFDb3B5OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDb21waWxlIGFuZCByZXR1cm4gYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgU2NoZW1hLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gc2NoZW1hIFRoZSBzY2hlbWEgdG8gdmFsaWRhdGUuIElmIGEgc3RyaW5nLCB3aWxsIGZldGNoIHRoZSBzY2hlbWEgYmVmb3JlIGNvbXBpbGluZyBpdAogICAgICAgKiAodXNpbmcgc2NoZW1hIGFzIGEgVVJJKS4KICAgICAgICovCiAgICAgIGFzeW5jIGNvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fY29tcGlsZShzY2hlbWEyKTsKICAgICAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXN5bmMgX2NvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEpID0+ICh7IHN1Y2Nlc3M6IHNjaGVtYTIsIGRhdGEgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNjaGVtYUluZm8gPSB7CiAgICAgICAgICBzbWFydERlZmF1bHRSZWNvcmQ6IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksCiAgICAgICAgICBwcm9tcHREZWZpbml0aW9uczogW10KICAgICAgICB9OwogICAgICAgIHRoaXMuX2Fqdi5yZW1vdmVTY2hlbWEoc2NoZW1hMik7CiAgICAgICAgbGV0IHZhbGlkYXRvcjsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5fY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbyA9IHNjaGVtYUluZm87CiAgICAgICAgICB2YWxpZGF0b3IgPSB0aGlzLl9hanYuY29tcGlsZShzY2hlbWEyKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgYWp2XzEuZGVmYXVsdC5NaXNzaW5nUmVmRXJyb3IpKSB7CiAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICB9CiAgICAgICAgICB2YWxpZGF0b3IgPSBhd2FpdCB0aGlzLl9hanYuY29tcGlsZUFzeW5jKHNjaGVtYTIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEsIG9wdGlvbnMpID0+IHsKICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25PcHRpb25zID0gewogICAgICAgICAgICB3aXRoUHJvbXB0czogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQb3N0VHJhbnNmb3JtczogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQcmVUcmFuc2Zvcm1zOiB0cnVlLAogICAgICAgICAgICAuLi5vcHRpb25zCiAgICAgICAgICB9OwogICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkNvbnRleHQgPSB7CiAgICAgICAgICAgIHByb21wdEZpZWxkc1dpdGhWYWx1ZTogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy5hcHBseVByZVRyYW5zZm9ybXMpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB2aXNpdG9yIG9mIHRoaXMuX3ByZS52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlTbWFydERlZmF1bHRzKGRhdGEsIHNjaGVtYUluZm8uc21hcnREZWZhdWx0UmVjb3JkKTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy53aXRoUHJvbXB0cykgewogICAgICAgICAgICBjb25zdCB2aXNpdG9yID0gKHZhbHVlLCBwb2ludGVyKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5hZGQocG9pbnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHZpc2l0b3JfMS52aXNpdEpzb24pKGRhdGEsIHZpc2l0b3IsIHNjaGVtYTIsIHRoaXMuX3Jlc29sdmVyLmJpbmQodGhpcyksIHZhbGlkYXRvcikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gc2NoZW1hSW5mby5wcm9tcHREZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIXZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5oYXMoZGVmLmlkKSk7CiAgICAgICAgICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlQcm9tcHRzKGRhdGEsIGRlZmluaXRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHZhbGlkYXRvci5jYWxsKHZhbGlkYXRpb25Db250ZXh0LCBkYXRhKTsKICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzcywgZXJyb3JzOiB2YWxpZGF0b3IuZXJyb3JzID8/IFtdIH07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIGFqdl8xLmRlZmF1bHQuVmFsaWRhdGlvbkVycm9yKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3IuZXJyb3JzIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodmFsaWRhdGlvbk9wdGlvbnMuYXBwbHlQb3N0VHJhbnNmb3JtcykgewogICAgICAgICAgICBmb3IgKGNvbnN0IHZpc2l0b3Igb2YgdGhpcy5fcG9zdC52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogdHJ1ZSB9OwogICAgICAgIH07CiAgICAgIH0KICAgICAgYWRkRm9ybWF0KGZvcm1hdCkgewogICAgICAgIHRoaXMuX2Fqdi5hZGRGb3JtYXQoZm9ybWF0Lm5hbWUsIGZvcm1hdC5mb3JtYXR0ZXIpOwogICAgICB9CiAgICAgIGFkZFNtYXJ0RGVmYXVsdFByb3ZpZGVyKHNvdXJjZSwgcHJvdmlkZXIpIHsKICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc291cmNlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fc291cmNlTWFwLnNldChzb3VyY2UsIHByb3ZpZGVyKTsKICAgICAgICBpZiAoIXRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQpIHsKICAgICAgICAgIHRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSB0cnVlOwogICAgICAgICAgdGhpcy5fYWp2LmFkZEtleXdvcmQoewogICAgICAgICAgICBrZXl3b3JkOiAiJGRlZmF1bHQiLAogICAgICAgICAgICBlcnJvcnM6IGZhbHNlLAogICAgICAgICAgICB2YWxpZDogdHJ1ZSwKICAgICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIF9wYXJlbnRTY2hlbWEsIGl0KSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICAgIGlmIChjb21waWxhdGlvblNjaGVtSW5mbyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gdGhpcy5ub3JtYWxpemVEYXRhUGF0aEFycihpdCk7CiAgICAgICAgICAgICAgY29tcGlsYXRpb25TY2hlbUluZm8uc21hcnREZWZhdWx0UmVjb3JkLnNldChKU09OLnN0cmluZ2lmeShwYXRoQXJyYXkpLCBzY2hlbWEyKTsKICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICIkc291cmNlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyIkc291cmNlIl0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlZ2lzdGVyVXJpSGFuZGxlcihoYW5kbGVyKSB7CiAgICAgICAgdGhpcy5fdXJpSGFuZGxlcnMuYWRkKGhhbmRsZXIpOwogICAgICB9CiAgICAgIHVzZVByb21wdFByb3ZpZGVyKHByb3ZpZGVyKSB7CiAgICAgICAgY29uc3QgaXNTZXR1cCA9ICEhdGhpcy5fcHJvbXB0UHJvdmlkZXI7CiAgICAgICAgdGhpcy5fcHJvbXB0UHJvdmlkZXIgPSBwcm92aWRlcjsKICAgICAgICBpZiAoaXNTZXR1cCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1wcm9tcHQiLAogICAgICAgICAgZXJyb3JzOiBmYWxzZSwKICAgICAgICAgIHZhbGlkOiB0cnVlLAogICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpID0+IHsKICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICBpZiAoIWNvbXBpbGF0aW9uU2NoZW1JbmZvKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgcGF0aCA9ICIvIiArIHRoaXMubm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpLmpvaW4oIi8iKTsKICAgICAgICAgICAgbGV0IHR5cGUyOwogICAgICAgICAgICBsZXQgaXRlbXM7CiAgICAgICAgICAgIGxldCBtZXNzYWdlOwogICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMi5tZXNzYWdlOwogICAgICAgICAgICAgIHR5cGUyID0gc2NoZW1hMi50eXBlOwogICAgICAgICAgICAgIGl0ZW1zID0gc2NoZW1hMi5pdGVtczsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVR5cGVzID0gKDAsIHV0aWxpdHlfMS5nZXRUeXBlc09mU2NoZW1hKShwYXJlbnRTY2hlbWEpOwogICAgICAgICAgICBpZiAoIXR5cGUyKSB7CiAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VHlwZXMuc2l6ZSA9PT0gMSAmJiBwcm9wZXJ0eVR5cGVzLmhhcygiYm9vbGVhbiIpKSB7CiAgICAgICAgICAgICAgICB0eXBlMiA9ICJjb25maXJtYXRpb24iOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZW51bSkpIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImxpc3QiOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpICYmIHBhcmVudFNjaGVtYS5pdGVtcyAmJiBBcnJheS5pc0FycmF5KHBhcmVudFNjaGVtYS5pdGVtcy5lbnVtKSkgewogICAgICAgICAgICAgICAgdHlwZTIgPSAibGlzdCI7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImlucHV0IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG11bHRpc2VsZWN0OwogICAgICAgICAgICBpZiAodHlwZTIgPT09ICJsaXN0IikgewogICAgICAgICAgICAgIG11bHRpc2VsZWN0ID0gc2NoZW1hMi5tdWx0aXNlbGVjdCA9PT0gdm9pZCAwID8gcHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpIDogc2NoZW1hMi5tdWx0aXNlbGVjdDsKICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0gbXVsdGlzZWxlY3QgPyBwYXJlbnRTY2hlbWEuaXRlbXMgJiYgcGFyZW50U2NoZW1hLml0ZW1zLmVudW0gOiBwYXJlbnRTY2hlbWEuZW51bTsKICAgICAgICAgICAgICBpZiAoIWl0ZW1zICYmIEFycmF5LmlzQXJyYXkoZW51bVZhbHVlcykpIHsKICAgICAgICAgICAgICAgIGl0ZW1zID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGVudW1WYWx1ZXMpIHsKICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBsYWJlbDogdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUgfSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgICBpZDogcGF0aCwKICAgICAgICAgICAgICB0eXBlOiB0eXBlMiwKICAgICAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgICAgIHJhdzogc2NoZW1hMiwKICAgICAgICAgICAgICBpdGVtcywKICAgICAgICAgICAgICBtdWx0aXNlbGVjdCwKICAgICAgICAgICAgICBwcm9wZXJ0eVR5cGVzLAogICAgICAgICAgICAgIGRlZmF1bHQ6IHR5cGVvZiBwYXJlbnRTY2hlbWEuZGVmYXVsdCA9PSAib2JqZWN0IiAmJiBwYXJlbnRTY2hlbWEuZGVmYXVsdCAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZGVmYXVsdCkgPyB2b2lkIDAgOiBwYXJlbnRTY2hlbWEuZGVmYXVsdCwKICAgICAgICAgICAgICBhc3luYyB2YWxpZGF0b3IoZGF0YSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaXQuc2VsZi52YWxpZGF0ZShwYXJlbnRTY2hlbWEsIGRhdGEpOwogICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC5zZWxmLmVycm9ycz8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0LnNlbGYuZXJyb3JzWzBdLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gZTsKICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsaWRhdGlvbkVycm9yLmVycm9ycykgJiYgdmFsaWRhdGlvbkVycm9yLmVycm9ycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9yLmVycm9yc1swXS5tZXNzYWdlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBjb21waWxhdGlvblNjaGVtSW5mby5wcm9tcHREZWZpbml0aW9ucy5wdXNoKGRlZmluaXRpb24pOwogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMgJiYgdGhpcy5wcm9tcHRGaWVsZHNXaXRoVmFsdWUpIHsKICAgICAgICAgICAgICAgIHRoaXMucHJvbXB0RmllbGRzV2l0aFZhbHVlLmFkZChwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICBvbmVPZjogWwogICAgICAgICAgICAgIHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgICAgICAgICByZXF1aXJlZDogWyJtZXNzYWdlIl0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBhc3luYyBfYXBwbHlQcm9tcHRzKGRhdGEsIHByb21wdHMpIHsKICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMuX3Byb21wdFByb3ZpZGVyOwogICAgICAgIGlmICghcHJvdmlkZXIpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHJ4anNfMS5mcm9tKShwcm92aWRlcihwcm9tcHRzKSkpOwogICAgICAgIGZvciAoY29uc3QgcGF0aCBpbiBhbnN3ZXJzKSB7CiAgICAgICAgICBjb25zdCBwYXRoRnJhZ21lbnRzID0gcGF0aC5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIHBhdGhGcmFnbWVudHMsIGFuc3dlcnNbcGF0aF0sIG51bGwsIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN0YXRpYyBfc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUsIHBhcmVudCA9IG51bGwsIHBhcmVudFByb3BlcnR5LCBmb3JjZSkgewogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFnbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50c1tpbmRleF07CiAgICAgICAgICBpZiAoL15pXGQrJC8udGVzdChmcmFnbWVudCkpIHsKICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGV0IGRhdGFJbmRleCA9IDA7IGRhdGFJbmRleCA8IGRhdGEubGVuZ3RoOyBkYXRhSW5kZXgrKykgewogICAgICAgICAgICAgIF9Db3JlU2NoZW1hUmVnaXN0cnkuX3NldChkYXRhW2RhdGFJbmRleF0sIGZyYWdtZW50cy5zbGljZShpbmRleCArIDEpLCB2YWx1ZSwgZGF0YSwgYCR7ZGF0YUluZGV4fWApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZGF0YSAmJiBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50UHJvcGVydHkpIHsKICAgICAgICAgICAgZGF0YSA9IHBhcmVudFtwYXJlbnRQcm9wZXJ0eV0gPSB7fTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcmVudCA9IGRhdGE7CiAgICAgICAgICBwYXJlbnRQcm9wZXJ0eSA9IGZyYWdtZW50OwogICAgICAgICAgZGF0YSA9IGRhdGFbZnJhZ21lbnRdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudFByb3BlcnR5ICYmIChmb3JjZSB8fCBwYXJlbnRbcGFyZW50UHJvcGVydHldID09PSB2b2lkIDApKSB7CiAgICAgICAgICBwYXJlbnRbcGFyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzeW5jIF9hcHBseVNtYXJ0RGVmYXVsdHMoZGF0YSwgc21hcnREZWZhdWx0cykgewogICAgICAgIGZvciAoY29uc3QgW3BvaW50ZXIsIHNjaGVtYTJdIG9mIHNtYXJ0RGVmYXVsdHMuZW50cmllcygpKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBKU09OLnBhcnNlKHBvaW50ZXIpOwogICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5fc291cmNlTWFwLmdldChzY2hlbWEyLiRzb3VyY2UpOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2Uoc2NoZW1hMik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKHZhbHVlKSkgewogICAgICAgICAgICB2YWx1ZSA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkodmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICB1c2VYRGVwcmVjYXRlZFByb3ZpZGVyKG9uVXNhZ2UpIHsKICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1kZXByZWNhdGVkIiwKICAgICAgICAgIHZhbGlkYXRlOiAoc2NoZW1hMiwgX2RhdGEsIF9wYXJlbnRTY2hlbWEsIGRhdGFDeHQpID0+IHsKICAgICAgICAgICAgaWYgKHNjaGVtYTIpIHsKICAgICAgICAgICAgICBvblVzYWdlKGBPcHRpb24gIiR7ZGF0YUN4dD8ucGFyZW50RGF0YVByb3BlcnR5fSIgaXMgZGVwcmVjYXRlZCR7dHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIgPyAiOiAiICsgc2NoZW1hMiA6ICIuIn1gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcnM6IGZhbHNlCiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpIHsKICAgICAgICByZXR1cm4gaXQuZGF0YVBhdGhBcnIuc2xpY2UoMSwgaXQuZGF0YUxldmVsICsgMSkubWFwKChwKSA9PiB0eXBlb2YgcCA9PT0gIm51bWJlciIgPyBwIDogcC5zdHIucmVwbGFjZSgvIi9nLCAiIikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gQ29yZVNjaGVtYVJlZ2lzdHJ5OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzCnZhciByZXF1aXJlX3NjaGVtYSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0pzb25TY2hlbWEgPSBpc0pzb25TY2hlbWE7CiAgICBleHBvcnRzMi5tZXJnZVNjaGVtYXMgPSBtZXJnZVNjaGVtYXM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIGZ1bmN0aW9uIGlzSnNvblNjaGVtYSh2YWx1ZSkgewogICAgICByZXR1cm4gKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gbWVyZ2VTY2hlbWFzKC4uLnNjaGVtYXMpIHsKICAgICAgcmV0dXJuIHNjaGVtYXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7CiAgICAgICAgaWYgKGN1cnIgPT09IHZvaWQgMCkgewogICAgICAgICAgcmV0dXJuIHByZXY7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2ID09PSBmYWxzZSB8fCBjdXJyID09PSBmYWxzZSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAocHJldiA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIGN1cnI7CiAgICAgICAgfSBlbHNlIGlmIChjdXJyID09PSB0cnVlKSB7CiAgICAgICAgICByZXR1cm4gcHJldjsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJldi5hbGxPZikpIHsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnIuYWxsT2YpKSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgY3Vycl0gfTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3Vyci5hbGxPZikpIHsKICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbcHJldiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHsgLi4ucHJldiwgYWxsT2Y6IFtwcmV2LCBjdXJyXSB9OwogICAgICAgIH0KICAgICAgfSwgdHJ1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcwp2YXIgcmVxdWlyZV9zY2hlbWEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudHJhbnNmb3JtcyA9IHZvaWQgMDsKICAgIHZhciB0cmFuc2Zvcm1zID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtcygpKTsKICAgIGV4cG9ydHMyLnRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1zOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BvaW50ZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmVnaXN0cnkoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Zpc2l0b3IoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdXRpbGl0eSgpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL2luZGV4LmpzCnZhciByZXF1aXJlX2pzb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHZvaWQgMDsKICAgIHZhciBzY2hlbWEyID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hMigpKTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHNjaGVtYTI7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlscygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbG9nZ2VyLmpzCnZhciByZXF1aXJlX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgTG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyByeGpzXzEuT2JzZXJ2YWJsZSB7CiAgICAgIG5hbWU7CiAgICAgIHBhcmVudDsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX21ldGFkYXRhOwogICAgICBfb2JzID0gcnhqc18xLkVNUFRZOwogICAgICBfc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgZ2V0IF9vYnNlcnZhYmxlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnM7CiAgICAgIH0KICAgICAgc2V0IF9vYnNlcnZhYmxlKHYpIHsKICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fb2JzID0gdjsKICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKGVycm9yKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCkgewogICAgICAgICAgICAgIHRoaXMucGFyZW50Ll9zdWJqZWN0LmVycm9yKGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIGNvbnN0IHBhdGggPSBbXTsKICAgICAgICBsZXQgcCA9IHBhcmVudDsKICAgICAgICB3aGlsZSAocCkgewogICAgICAgICAgcGF0aC5wdXNoKHAubmFtZSk7CiAgICAgICAgICBwID0gcC5wYXJlbnQ7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21ldGFkYXRhID0geyBuYW1lLCBwYXRoIH07CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRoaXMuX3N1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50Ll9zdWJqZWN0KSB7CiAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5zdWJzY3JpYmUodm9pZCAwLCB2b2lkIDAsICgpID0+IHRoaXMuY29tcGxldGUoKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKG5hbWUpID0+IHRoaXMuY3JlYXRlQ2hpbGQobmFtZSksCiAgICAgICAgICBsb2c6IChsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEpID0+IHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nKGxldmVsLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgICAgICB9LAogICAgICAgICAgZGVidWc6IChtZXNzYWdlLCBtZXRhZGF0YSkgPT4gdGhpcy5kZWJ1ZyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBpbmZvOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICB3YXJuOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMud2FybihtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBlcnJvcjogKG1lc3NhZ2UsIG1ldGFkYXRhKSA9PiB0aGlzLmVycm9yKG1lc3NhZ2UsIG1ldGFkYXRhKSwKICAgICAgICAgIGZhdGFsOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuZmF0YWwobWVzc2FnZSwgbWV0YWRhdGEpCiAgICAgICAgfTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKG5hbWUsIHRoaXMpOwogICAgICB9CiAgICAgIGNvbXBsZXRlKCkgewogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgfQogICAgICBsb2cobGV2ZWwsIG1lc3NhZ2UsIG1ldGFkYXRhID0ge30pIHsKICAgICAgICBjb25zdCBlbnRyeSA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLCB0aGlzLl9tZXRhZGF0YSwgewogICAgICAgICAgbGV2ZWwsCiAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgdGltZXN0YW1wOiArRGF0ZS5ub3coKQogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgbmV4dChlbnRyeSkgewogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgZGVidWcobWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygiZGVidWciLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgIH0KICAgICAgaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJpbmZvIiwgbWVzc2FnZSwgbWV0YWRhdGEpOwogICAgICB9CiAgICAgIHdhcm4obWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygid2FybiIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBlcnJvcihtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJlcnJvciIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBmYXRhbChtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJmYXRhbCIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gYDxMb2dnZXIoJHt0aGlzLm5hbWV9KT5gOwogICAgICB9CiAgICAgIGxpZnQob3BlcmF0b3IpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2YWJsZS5saWZ0KG9wZXJhdG9yKTsKICAgICAgfQogICAgICBzdWJzY3JpYmUoX29ic2VydmVyT3JOZXh0LCBfZXJyb3IsIF9jb21wbGV0ZSkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZhYmxlLnN1YnNjcmliZS5hcHBseSgKICAgICAgICAgIHRoaXMuX29ic2VydmFibGUsCiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zCiAgICAgICAgICBhcmd1bWVudHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZvckVhY2gobmV4dCwgcHJvbWlzZUN0b3IgPSBQcm9taXNlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX29ic2VydmFibGUuZm9yRWFjaChuZXh0LCBwcm9taXNlQ3Rvcik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Mb2dnZXIgPSBMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZW50LmpzCnZhciByZXF1aXJlX2luZGVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIGluZGVudGF0aW9uTWFwID0ge307CiAgICB2YXIgSW5kZW50TG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyBsb2dnZXJfMS5Mb2dnZXIgewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsLCBpbmRlbnRhdGlvbiA9ICIgICIpIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSB8fCBbIiJdOwogICAgICAgIGNvbnN0IGluZGVudE1hcCA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gdGhpcy5fb2JzZXJ2YWJsZS5waXBlKCgwLCByeGpzXzEubWFwKSgoZW50cnkpID0+IHsKICAgICAgICAgIGNvbnN0IGwgPSBlbnRyeS5wYXRoLmZpbHRlcigoeCkgPT4gISF4KS5sZW5ndGg7CiAgICAgICAgICBpZiAobCA+PSBpbmRlbnRNYXAubGVuZ3RoKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50ID0gaW5kZW50TWFwW2luZGVudE1hcC5sZW5ndGggLSAxXTsKICAgICAgICAgICAgd2hpbGUgKGwgPj0gaW5kZW50TWFwLmxlbmd0aCkgewogICAgICAgICAgICAgIGN1cnJlbnQgKz0gaW5kZW50YXRpb247CiAgICAgICAgICAgICAgaW5kZW50TWFwLnB1c2goY3VycmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVudHJ5Lm1lc3NhZ2UgPSBpbmRlbnRNYXBbbF0gKyBlbnRyeS5tZXNzYWdlLnNwbGl0KC9cbi8pLmpvaW4oIlxuIiArIGluZGVudE1hcFtsXSk7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gSW5kZW50TG9nZ2VyOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzCnZhciByZXF1aXJlX2xldmVsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbGV2ZWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkxldmVsQ2FwTG9nZ2VyID0gZXhwb3J0czIuTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgPSB2b2lkIDA7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIExldmVsVHJhbnNmb3JtTG9nZ2VyID0gY2xhc3MgX0xldmVsVHJhbnNmb3JtTG9nZ2VyIGV4dGVuZHMgbG9nZ2VyXzEuTG9nZ2VyIHsKICAgICAgbmFtZTsKICAgICAgcGFyZW50OwogICAgICBsZXZlbFRyYW5zZm9ybTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxUcmFuc2Zvcm0pIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbFRyYW5zZm9ybSA9IGxldmVsVHJhbnNmb3JtOwogICAgICB9CiAgICAgIGxvZyhsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiBzdXBlci5sb2codGhpcy5sZXZlbFRyYW5zZm9ybShsZXZlbCksIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIobmFtZSwgdGhpcywgdGhpcy5sZXZlbFRyYW5zZm9ybSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5MZXZlbFRyYW5zZm9ybUxvZ2dlciA9IExldmVsVHJhbnNmb3JtTG9nZ2VyOwogICAgdmFyIExldmVsQ2FwTG9nZ2VyID0gY2xhc3MgX0xldmVsQ2FwTG9nZ2VyIGV4dGVuZHMgTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgewogICAgICBuYW1lOwogICAgICBwYXJlbnQ7CiAgICAgIGxldmVsQ2FwOwogICAgICBzdGF0aWMgbGV2ZWxNYXAgPSB7CiAgICAgICAgZGVidWc6IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJkZWJ1ZyIsIHdhcm46ICJkZWJ1ZyIsIGVycm9yOiAiZGVidWciLCBmYXRhbDogImRlYnVnIiB9LAogICAgICAgIGluZm86IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJpbmZvIiwgd2FybjogImluZm8iLCBlcnJvcjogImluZm8iLCBmYXRhbDogImluZm8iIH0sCiAgICAgICAgd2FybjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAid2FybiIsIGZhdGFsOiAid2FybiIgfSwKICAgICAgICBlcnJvcjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAiZXJyb3IiLCBmYXRhbDogImVycm9yIiB9LAogICAgICAgIGZhdGFsOiB7IGRlYnVnOiAiZGVidWciLCBpbmZvOiAiaW5mbyIsIHdhcm46ICJ3YXJuIiwgZXJyb3I6ICJlcnJvciIsIGZhdGFsOiAiZmF0YWwiIH0KICAgICAgfTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxDYXApIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQsIChsZXZlbCkgPT4gewogICAgICAgICAgcmV0dXJuIF9MZXZlbENhcExvZ2dlci5sZXZlbE1hcFtsZXZlbENhcF1bbGV2ZWxdIHx8IGxldmVsOwogICAgICAgIH0pOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbENhcCA9IGxldmVsQ2FwOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGV2ZWxDYXBMb2dnZXIgPSBMZXZlbENhcExvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9udWxsLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV9udWxsX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL251bGwtbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIE51bGxMb2dnZXIgPSBjbGFzcyBfTnVsbExvZ2dlciBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKHBhcmVudCA9IG51bGwpIHsKICAgICAgICBzdXBlcigiIiwgcGFyZW50KTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKCkgPT4gbmV3IF9OdWxsTG9nZ2VyKHRoaXMpLAogICAgICAgICAgbG9nKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGRlYnVnKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGluZm8oKSB7CiAgICAgICAgICB9LAogICAgICAgICAgd2FybigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBmYXRhbCgpIHsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbExvZ2dlciA9IE51bGxMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV90cmFuc2Zvcm1fbG9nZ2VyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJhbnNmb3JtTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIGxvZ2dlcl8xID0gcmVxdWlyZV9sb2dnZXIoKTsKICAgIHZhciBUcmFuc2Zvcm1Mb2dnZXIgPSBjbGFzcyBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIHRyYW5zZm9ybSwgcGFyZW50ID0gbnVsbCkgewogICAgICAgIHN1cGVyKG5hbWUsIHBhcmVudCk7CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRyYW5zZm9ybSh0aGlzLl9vYnNlcnZhYmxlKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRyYW5zZm9ybUxvZ2dlciA9IFRyYW5zZm9ybUxvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9pbmRleC5qcwp2YXIgcmVxdWlyZV9sb2dnZXIyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2luZGVudCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sZXZlbCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbnVsbF9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtX2xvZ2dlcigpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvZGVmaW5pdGlvbnMuanMKdmFyIHJlcXVpcmVfZGVmaW5pdGlvbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgRGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyB7CiAgICAgIF9saXN0ZW5lcjsKICAgICAgX21hcDsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgX2xpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5fbGlzdGVuZXIgPSBfbGlzdGVuZXI7CiAgICAgICAgdGhpcy5fbWFwID0gbmV3IE1hcChpbml0aWFsICYmIE9iamVjdC5lbnRyaWVzKGluaXRpYWwpKTsKICAgICAgfQogICAgICBkZWxldGUoa2V5KSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbWFwLmRlbGV0ZShrZXkpOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2b2lkIDAsIHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIHNldChrZXksIHZhbHVlKSB7CiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdmFsdWUgIT09IHRoaXMuZ2V0KGtleSk7CiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSkgewogICAgICAgICAgdGhpcy5fbWFwLnNldChrZXksIHZhbHVlKTsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2YWx1ZSwgdGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZykgewogICAgICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBjYWxsYmFja2ZuKHZhbHVlLCBrZXksIHRoaXMpLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5nZXQoa2V5KTsKICAgICAgfQogICAgICBoYXMoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5oYXMoa2V5KTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnNpemU7CiAgICAgIH0KICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcFtTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgICAgZW50cmllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKTsKICAgICAgfQogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9tYXAua2V5cygpOwogICAgICB9CiAgICAgIHZhbHVlcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gaXNKc29uVmFsdWUodmFsdWUpIHsKICAgICAgY29uc3QgdmlzaXRlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHZpc2l0ZWQuYWRkKHZhbHVlKTsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZSkpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYgdmlzaXRlZC5oYXMocHJvcGVydHkpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFpc0pzb25WYWx1ZShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIHZhciBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJQcm9qZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMuIik7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShkZWZpbml0aW9uLm5hbWUpOwogICAgICAgIGNvbnN0IHByb2plY3QgPSB7CiAgICAgICAgICByb290OiBkZWZpbml0aW9uLnJvb3QsCiAgICAgICAgICBwcmVmaXg6IGRlZmluaXRpb24ucHJlZml4LAogICAgICAgICAgc291cmNlUm9vdDogZGVmaW5pdGlvbi5zb3VyY2VSb290LAogICAgICAgICAgdGFyZ2V0czogbmV3IFRhcmdldERlZmluaXRpb25Db2xsZWN0aW9uKCksCiAgICAgICAgICBleHRlbnNpb25zOiB7fQogICAgICAgIH07CiAgICAgICAgaWYgKGRlZmluaXRpb24udGFyZ2V0cykgewogICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdGFyZ2V0XSBvZiBPYmplY3QuZW50cmllcyhkZWZpbml0aW9uLnRhcmdldHMpKSB7CiAgICAgICAgICAgIGlmICh0YXJnZXQpIHsKICAgICAgICAgICAgICBwcm9qZWN0LnRhcmdldHMuc2V0KG5hbWUsIHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRlZmluaXRpb24pKSB7CiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgICBjYXNlICJzb3VyY2VSb290IjoKICAgICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKGlzSnNvblZhbHVlKHZhbHVlKSkgewogICAgICAgICAgICAgICAgcHJvamVjdC5leHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCIke25hbWV9IiBtdXN0IGJlIGEgSlNPTiB2YWx1ZS5gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyLnNldChkZWZpbml0aW9uLm5hbWUsIHByb2plY3QpOwogICAgICAgIHJldHVybiBwcm9qZWN0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIgfHwgIS9eKD86QFx3W1x3Li1dKlwvKT9cd1tcdy4tXSokLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlByb2plY3QgbmFtZSBtdXN0IGJlIGEgdmFsaWQgbnBtIHBhY2thZ2UgbmFtZS4iKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb247CiAgICB2YXIgVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXJnZXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fdmFsaWRhdGVOYW1lKGRlZmluaXRpb24ubmFtZSk7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gewogICAgICAgICAgYnVpbGRlcjogZGVmaW5pdGlvbi5idWlsZGVyLAogICAgICAgICAgb3B0aW9uczogZGVmaW5pdGlvbi5vcHRpb25zLAogICAgICAgICAgY29uZmlndXJhdGlvbnM6IGRlZmluaXRpb24uY29uZmlndXJhdGlvbnMsCiAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogZGVmaW5pdGlvbi5kZWZhdWx0Q29uZmlndXJhdGlvbgogICAgICAgIH07CiAgICAgICAgc3VwZXIuc2V0KGRlZmluaXRpb24ubmFtZSwgdGFyZ2V0KTsKICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlRhcmdldCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBUYXJnZXREZWZpbml0aW9uQ29sbGVjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvcGF0aC5qcwp2YXIgcmVxdWlyZV9wYXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL3BhdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhdGggPSBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSBleHBvcnRzMi5QYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRQYXRoRXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3BsaXQgPSBzcGxpdDsKICAgIGV4cG9ydHMyLmV4dG5hbWUgPSBleHRuYW1lOwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSBiYXNlbmFtZTsKICAgIGV4cG9ydHMyLmRpcm5hbWUgPSBkaXJuYW1lOwogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGU7CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgZXhwb3J0czIucmVzb2x2ZSA9IHJlc29sdmU7CiAgICBleHBvcnRzMi5mcmFnbWVudCA9IGZyYWdtZW50OwogICAgZXhwb3J0czIucmVzZXROb3JtYWxpemVDYWNoZSA9IHJlc2V0Tm9ybWFsaXplQ2FjaGU7CiAgICBleHBvcnRzMi5ub3JtYWxpemUgPSBub3JtYWxpemU7CiAgICBleHBvcnRzMi5ub0NhY2hlTm9ybWFsaXplID0gbm9DYWNoZU5vcm1hbGl6ZTsKICAgIGV4cG9ydHMyLmFzV2luZG93c1BhdGggPSBhc1dpbmRvd3NQYXRoOwogICAgZXhwb3J0czIuYXNQb3NpeFBhdGggPSBhc1Bvc2l4UGF0aDsKICAgIGV4cG9ydHMyLmdldFN5c3RlbVBhdGggPSBnZXRTeXN0ZW1QYXRoOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBJbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IGlzIGludmFsaWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IEludmFsaWRQYXRoRXhjZXB0aW9uOwogICAgdmFyIFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IG11c3QgYmUgYWJzb2x1dGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb24gPSBQYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb247CiAgICB2YXIgUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoMikgewogICAgICAgIHN1cGVyKGBQYXRoICR7SlNPTi5zdHJpbmdpZnkocGF0aDIpfSBjYW5ub3QgYmUgbWFkZSBhIGZyYWdtZW50LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbjsKICAgIGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSAiLyI7CiAgICBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXA7CiAgICBmdW5jdGlvbiBzcGxpdChwYXRoMikgewogICAgICBjb25zdCBmcmFnbWVudHMgPSBwYXRoMi5zcGxpdChleHBvcnRzMi5Ob3JtYWxpemVkU2VwKS5tYXAoKHgpID0+IGZyYWdtZW50KHgpKTsKICAgICAgaWYgKGZyYWdtZW50c1tmcmFnbWVudHMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgZnJhZ21lbnRzLnBvcCgpOwogICAgICB9CiAgICAgIHJldHVybiBmcmFnbWVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBleHRuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShwYXRoMik7CiAgICAgIGNvbnN0IGkgPSBiYXNlLmxhc3RJbmRleE9mKCIuIik7CiAgICAgIGlmIChpIDwgMSkgewogICAgICAgIHJldHVybiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYmFzZS5zbGljZShpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYmFzZW5hbWUocGF0aDIpIHsKICAgICAgY29uc3QgaSA9IHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICBpZiAoaSA9PSAtMSkgewogICAgICAgIHJldHVybiBmcmFnbWVudChwYXRoMik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZyYWdtZW50KHBhdGgyLnNsaWNlKHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApICsgMSkpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkaXJuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGluZGV4ID0gcGF0aDIubGFzdEluZGV4T2YoZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0KICAgICAgY29uc3QgZW5kSW5kZXggPSBpbmRleCA9PT0gMCA/IDEgOiBpbmRleDsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoMi5zbGljZSgwLCBlbmRJbmRleCkpOwogICAgfQogICAgZnVuY3Rpb24gam9pbjIocDEsIC4uLm90aGVycykgewogICAgICBpZiAob3RoZXJzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplKChwMSA/IHAxICsgZXhwb3J0czIuTm9ybWFsaXplZFNlcCA6ICIiKSArIG90aGVycy5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcDE7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGlzQWJzb2x1dGUocCkgewogICAgICByZXR1cm4gcC5zdGFydHNXaXRoKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgfQogICAgZnVuY3Rpb24gcmVsYXRpdmUoZnJvbSwgdG8pIHsKICAgICAgaWYgKCFpc0Fic29sdXRlKGZyb20pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbihmcm9tKTsKICAgICAgfQogICAgICBpZiAoIWlzQWJzb2x1dGUodG8pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbih0byk7CiAgICAgIH0KICAgICAgbGV0IHA7CiAgICAgIGlmIChmcm9tID09IHRvKSB7CiAgICAgICAgcCA9ICIiOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHNwbGl0RnJvbSA9IHNwbGl0KGZyb20pOwogICAgICAgIGNvbnN0IHNwbGl0VG8gPSBzcGxpdCh0byk7CiAgICAgICAgd2hpbGUgKHNwbGl0RnJvbS5sZW5ndGggPiAwICYmIHNwbGl0VG8ubGVuZ3RoID4gMCAmJiBzcGxpdEZyb21bMF0gPT0gc3BsaXRUb1swXSkgewogICAgICAgICAgc3BsaXRGcm9tLnNoaWZ0KCk7CiAgICAgICAgICBzcGxpdFRvLnNoaWZ0KCk7CiAgICAgICAgfQogICAgICAgIGlmIChzcGxpdEZyb20ubGVuZ3RoID09IDApIHsKICAgICAgICAgIHAgPSBzcGxpdFRvLmpvaW4oZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHAgPSBzcGxpdEZyb20ubWFwKCgpID0+ICIuLiIpLmNvbmNhdChzcGxpdFRvKS5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbm9ybWFsaXplKHApOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShwMSwgcDIpIHsKICAgICAgaWYgKGlzQWJzb2x1dGUocDIpKSB7CiAgICAgICAgcmV0dXJuIHAyOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBqb2luMihwMSwgcDIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBmcmFnbWVudChwYXRoMikgewogICAgICBpZiAocGF0aDIuaW5kZXhPZihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKSAhPSAtMSkgewogICAgICAgIHRocm93IG5ldyBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbihwYXRoMik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGgyOwogICAgfQogICAgdmFyIG5vcm1hbGl6ZWRDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICBmdW5jdGlvbiByZXNldE5vcm1hbGl6ZUNhY2hlKCkgewogICAgICBub3JtYWxpemVkQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGxldCBtYXliZVBhdGggPSBub3JtYWxpemVkQ2FjaGUuZ2V0KHBhdGgyKTsKICAgICAgaWYgKCFtYXliZVBhdGgpIHsKICAgICAgICBtYXliZVBhdGggPSBub0NhY2hlTm9ybWFsaXplKHBhdGgyKTsKICAgICAgICBub3JtYWxpemVkQ2FjaGUuc2V0KHBhdGgyLCBtYXliZVBhdGgpOwogICAgICB9CiAgICAgIHJldHVybiBtYXliZVBhdGg7CiAgICB9CiAgICBmdW5jdGlvbiBub0NhY2hlTm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGlmIChwYXRoMiA9PSAiIiB8fCBwYXRoMiA9PSAiLiIpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0gZWxzZSBpZiAocGF0aDIgPT0gZXhwb3J0czIuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICByZXR1cm4gZXhwb3J0czIuTm9ybWFsaXplZFJvb3Q7CiAgICAgIH0KICAgICAgY29uc3Qgb3JpZ2luYWwgPSBwYXRoMjsKICAgICAgaWYgKHBhdGgyLm1hdGNoKC9eW0EtWl06Wy9cXF0vaSkpIHsKICAgICAgICBwYXRoMiA9ICJcXCIgKyBwYXRoMlswXS50b1VwcGVyQ2FzZSgpICsgIlxcIiArIHBhdGgyLnNsaWNlKDMpOwogICAgICB9CiAgICAgIGNvbnN0IHAgPSBwYXRoMi5zcGxpdCgvWy9cXF0vZyk7CiAgICAgIGxldCByZWxhdGl2ZTIgPSBmYWxzZTsKICAgICAgbGV0IGkgPSAxOwogICAgICBpZiAocFswXSAhPSAiIikgewogICAgICAgIHAudW5zaGlmdCgiLiIpOwogICAgICAgIHJlbGF0aXZlMiA9IHRydWU7CiAgICAgIH0KICAgICAgd2hpbGUgKGkgPCBwLmxlbmd0aCkgewogICAgICAgIGlmIChwW2ldID09ICIuIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChwW2ldID09ICIuLiIpIHsKICAgICAgICAgIGlmIChpIDwgMiAmJiAhcmVsYXRpdmUyKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGF0aEV4Y2VwdGlvbihvcmlnaW5hbCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPj0gMiAmJiBwW2kgLSAxXSAhPSAiLi4iKSB7CiAgICAgICAgICAgIHAuc3BsaWNlKGkgLSAxLCAyKTsKICAgICAgICAgICAgaS0tOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocFtpXSA9PSAiIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHAubGVuZ3RoID09IDEpIHsKICAgICAgICByZXR1cm4gcFswXSA9PSAiIiA/IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgOiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocFswXSA9PSAiLiIpIHsKICAgICAgICAgIHAuc2hpZnQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHAuam9pbihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKTsKICAgICAgfQogICAgfQogICAgdmFyIHBhdGggPSAoc3RyaW5nczMsIC4uLnZhbHVlcykgPT4gewogICAgICByZXR1cm4gbm9ybWFsaXplKFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykpOwogICAgfTsKICAgIGV4cG9ydHMyLnBhdGggPSBwYXRoOwogICAgZnVuY3Rpb24gYXNXaW5kb3dzUGF0aChwYXRoMikgewogICAgICBjb25zdCBkcml2ZSA9IHBhdGgyLm1hdGNoKC9eXC8oXHcpKD86XC8oLiopKT8kLyk7CiAgICAgIGlmIChkcml2ZSkgewogICAgICAgIGNvbnN0IHN1YlBhdGggPSBkcml2ZVsyXSA/IGRyaXZlWzJdLnJlcGxhY2UoL1wvL2csICJcXCIpIDogIiI7CiAgICAgICAgcmV0dXJuIGAke2RyaXZlWzFdfTpcXCR7c3ViUGF0aH1gOwogICAgICB9CiAgICAgIHJldHVybiBwYXRoMi5yZXBsYWNlKC9cLy9nLCAiXFwiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzUG9zaXhQYXRoKHBhdGgyKSB7CiAgICAgIHJldHVybiBwYXRoMjsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFN5c3RlbVBhdGgocGF0aDIpIHsKICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0uc3RhcnRzV2l0aCgid2luMzIiKSkgewogICAgICAgIHJldHVybiBhc1dpbmRvd3NQYXRoKHBhdGgyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYXNQb3NpeFBhdGgocGF0aDIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlcjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9idWZmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0cmluZ1RvRmlsZUJ1ZmZlciA9IHN0cmluZ1RvRmlsZUJ1ZmZlcjsKICAgIGV4cG9ydHMyLmZpbGVCdWZmZXJUb1N0cmluZyA9IGZpbGVCdWZmZXJUb1N0cmluZzsKICAgIHZhciBub2RlX3V0aWxfMSA9IHJlcXVpcmUoIm5vZGU6dXRpbCIpOwogICAgZnVuY3Rpb24gc3RyaW5nVG9GaWxlQnVmZmVyKHN0cjIpIHsKICAgICAgcmV0dXJuIG5ldyBub2RlX3V0aWxfMS5UZXh0RW5jb2RlcigpLmVuY29kZShzdHIyKS5idWZmZXI7CiAgICB9CiAgICBmdW5jdGlvbiBmaWxlQnVmZmVyVG9TdHJpbmcoZmlsZUJ1ZmZlcikgewogICAgICBpZiAoZmlsZUJ1ZmZlci50b1N0cmluZy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZmlsZUJ1ZmZlci50b1N0cmluZygidXRmLTgiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IG5vZGVfdXRpbF8xLlRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShuZXcgVWludDhBcnJheShmaWxlQnVmZmVyKSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzCnZhciByZXF1aXJlX2ludGVyZmFjZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RXYXRjaEV2ZW50VHlwZSA9IHZvaWQgMDsKICAgIHZhciBIb3N0V2F0Y2hFdmVudFR5cGU7CiAgICAoZnVuY3Rpb24oSG9zdFdhdGNoRXZlbnRUeXBlMikgewogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNoYW5nZWQiXSA9IDBdID0gIkNoYW5nZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNyZWF0ZWQiXSA9IDFdID0gIkNyZWF0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkRlbGV0ZWQiXSA9IDJdID0gIkRlbGV0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIlJlbmFtZWQiXSA9IDNdID0gIlJlbmFtZWQiOwogICAgfSkoSG9zdFdhdGNoRXZlbnRUeXBlIHx8IChleHBvcnRzMi5Ib3N0V2F0Y2hFdmVudFR5cGUgPSBIb3N0V2F0Y2hFdmVudFR5cGUgPSB7fSkpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L21lbW9yeS5qcwp2YXIgcmVxdWlyZV9tZW1vcnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9tZW1vcnkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNpbXBsZU1lbW9yeUhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBleGNlcHRpb25fMSA9IHJlcXVpcmVfZXhjZXB0aW9uKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTIoKTsKICAgIHZhciBTaW1wbGVNZW1vcnlIb3N0ID0gY2xhc3MgewogICAgICBfY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfd2F0Y2hlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfbmV3RGlyU3RhdHMoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluc3BlY3QoKSB7CiAgICAgICAgICAgIHJldHVybiAiPERpcmVjdG9yeT4iOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRmlsZSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBzaXplOiAwLAogICAgICAgICAgYXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgY3RpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgbXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgYmlydGh0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQ6IG51bGwKICAgICAgICB9OwogICAgICB9CiAgICAgIF9uZXdGaWxlU3RhdHMoY29udGVudCwgb2xkU3RhdHMpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaW5zcGVjdCgpIHsKICAgICAgICAgICAgcmV0dXJuIGA8RmlsZSBzaXplKCR7Y29udGVudC5ieXRlTGVuZ3RofSk+YDsKICAgICAgICAgIH0sCiAgICAgICAgICBpc0ZpbGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9LAogICAgICAgICAgc2l6ZTogY29udGVudC5ieXRlTGVuZ3RoLAogICAgICAgICAgYXRpbWU6IG9sZFN0YXRzID8gb2xkU3RhdHMuYXRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGN0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIG10aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGJpcnRodGltZTogb2xkU3RhdHMgPyBvbGRTdGF0cy5iaXJ0aHRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQKICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuX2NhY2hlLnNldCgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKSwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgIH0KICAgICAgX3RvQWJzb2x1dGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcGF0aF8xLmlzQWJzb2x1dGUpKHBhdGgpID8gcGF0aCA6ICgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfdXBkYXRlV2F0Y2hlcnMocGF0aCwgdHlwZTIpIHsKICAgICAgICBjb25zdCB0aW1lID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7CiAgICAgICAgbGV0IGN1cnJlbnRQYXRoID0gcGF0aDsKICAgICAgICBsZXQgcGFyZW50ID0gbnVsbDsKICAgICAgICBpZiAodGhpcy5fd2F0Y2hlcnMuc2l6ZSA9PSAwKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1heWJlV2F0Y2hlciA9IHRoaXMuX3dhdGNoZXJzLmdldChjdXJyZW50UGF0aCk7CiAgICAgICAgaWYgKG1heWJlV2F0Y2hlcikgewogICAgICAgICAgbWF5YmVXYXRjaGVyLmZvckVhY2goKHdhdGNoZXIpID0+IHsKICAgICAgICAgICAgY29uc3QgW29wdGlvbnMsIHN1YmplY3RdID0gd2F0Y2hlcjsKICAgICAgICAgICAgc3ViamVjdC5uZXh0KHsgcGF0aCwgdGltZSwgdHlwZTogdHlwZTIgfSk7CiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wZXJzaXN0ZW50ICYmIHR5cGUyID09IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKSB7CiAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHRoaXMuX3dhdGNoZXJzLmRlbGV0ZShjdXJyZW50UGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBkbyB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IHBhcmVudCAhPT0gbnVsbCA/IHBhcmVudCA6IGN1cnJlbnRQYXRoOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhdGhfMS5kaXJuYW1lKShjdXJyZW50UGF0aCk7CiAgICAgICAgICBjb25zdCBtYXliZVdhdGNoZXIyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KGN1cnJlbnRQYXRoKTsKICAgICAgICAgIGlmIChtYXliZVdhdGNoZXIyKSB7CiAgICAgICAgICAgIG1heWJlV2F0Y2hlcjIuZm9yRWFjaCgod2F0Y2hlcikgPT4gewogICAgICAgICAgICAgIGNvbnN0IFtvcHRpb25zLCBzdWJqZWN0XSA9IHdhdGNoZXI7CiAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLnJlY3Vyc2l2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBzdWJqZWN0Lm5leHQoeyBwYXRoLCB0aW1lLCB0eXBlOiB0eXBlMiB9KTsKICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMucGVyc2lzdGVudCAmJiB0eXBlMiA9PSBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZCkgewogICAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgdGhpcy5fd2F0Y2hlcnMuZGVsZXRlKGN1cnJlbnRQYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKHBhcmVudCAhPSBjdXJyZW50UGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaXN0IG9mIHByb3RlY3RlZCBtZXRob2RzIHRoYXQgZ2l2ZSBkaXJlY3QgYWNjZXNzIG91dHNpZGUgdGhlIG9ic2VydmFibGVzIHRvIHRoZSBjYWNoZQogICAgICAgKiBhbmQgaW50ZXJuYWwgc3RhdGVzLgogICAgICAgKi8KICAgICAgX3dyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl9jYWNoZS5nZXQocGF0aCk7CiAgICAgICAgaWYgKG9sZCAmJiBvbGQuaXNEaXJlY3RvcnkoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gKDAsIHBhdGhfMS5zcGxpdCkocGF0aCk7CiAgICAgICAgbGV0IGN1cnIgPSAoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGZyIG9mIGZyYWdtZW50cykgewogICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChmcik7CiAgICAgICAgICBpZiAobWF5YmVTdGF0cykgewogICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5QYXRoSXNGaWxlRXhjZXB0aW9uKGN1cnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoY3VyciwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fbmV3RmlsZVN0YXRzKGNvbnRlbnQsIG9sZCk7CiAgICAgICAgdGhpcy5fY2FjaGUuc2V0KHBhdGgsIHN0YXRzKTsKICAgICAgICB0aGlzLl91cGRhdGVXYXRjaGVycyhwYXRoLCBvbGQgPyBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZCA6IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkKTsKICAgICAgfQogICAgICBfcmVhZChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChwYXRoKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAobWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAoIW1heWJlU3RhdHMuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIG1heWJlU3RhdHMuY29udGVudDsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RlbGV0ZShwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgICBmb3IgKGNvbnN0IFtjYWNoZVBhdGhdIG9mIHRoaXMuX2NhY2hlLmVudHJpZXMoKSkgewogICAgICAgICAgICBpZiAoY2FjaGVQYXRoLnN0YXJ0c1dpdGgocGF0aCArIHBhdGhfMS5Ob3JtYWxpemVkU2VwKSB8fCBjYWNoZVBhdGggPT09IHBhdGgpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVQYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUocGF0aCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKHBhdGgsIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKTsKICAgICAgfQogICAgICBfcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgZnJvbSA9IHRoaXMuX3RvQWJzb2x1dGUoZnJvbSk7CiAgICAgICAgdG8gPSB0aGlzLl90b0Fic29sdXRlKHRvKTsKICAgICAgICBpZiAoIXRoaXMuX2NhY2hlLmhhcyhmcm9tKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oZnJvbSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jYWNoZS5oYXModG8pKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pc0RpcmVjdG9yeShmcm9tKSkgewogICAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGZyb20gKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY2FjaGUuZ2V0KHBhdGgpOwogICAgICAgICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoKDAsIHBhdGhfMS5qb2luKSh0bywgcGF0aF8xLk5vcm1hbGl6ZWRTZXAsIHBhdGguc2xpY2UoZnJvbS5sZW5ndGgpKSwgY29udGVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9jYWNoZS5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSAoMCwgcGF0aF8xLnNwbGl0KSh0byk7CiAgICAgICAgICAgIGNvbnN0IG5ld0RpcmVjdG9yaWVzID0gW107CiAgICAgICAgICAgIGxldCBjdXJyID0gKDAsIHBhdGhfMS5ub3JtYWxpemUpKCIvIik7CiAgICAgICAgICAgIGZvciAoY29uc3QgZnIgb2YgZnJhZ21lbnRzKSB7CiAgICAgICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgICAgIGNvbnN0IG1heWJlU3RhdHMgPSB0aGlzLl9jYWNoZS5nZXQoZnIpOwogICAgICAgICAgICAgIGlmIChtYXliZVN0YXRzKSB7CiAgICAgICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihjdXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmV3RGlyZWN0b3JpZXMucHVzaChjdXJyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChjb25zdCBuZXdEaXJlY3Rvcnkgb2YgbmV3RGlyZWN0b3JpZXMpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQobmV3RGlyZWN0b3J5LCB0aGlzLl9uZXdEaXJTdGF0cygpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoZnJvbSk7CiAgICAgICAgICAgIHRoaXMuX2NhY2hlLnNldCh0bywgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKGZyb20sIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5SZW5hbWVkKTsKICAgICAgfQogICAgICBfbGlzdChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRmlsZShwYXRoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0ZpbGVFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZyYWdtZW50cyA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgaWYgKHBhdGggIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgZm9yIChjb25zdCBwIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocC5zdGFydHNXaXRoKHBhdGggKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICByZXN1bHQuYWRkKCgwLCBwYXRoXzEuc3BsaXQpKHApW2ZyYWdtZW50cy5sZW5ndGhdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5fY2FjaGUua2V5cygpKSB7CiAgICAgICAgICAgIGlmIChwLnN0YXJ0c1dpdGgocGF0aF8xLk5vcm1hbGl6ZWRTZXApICYmIHAgIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgICAgIHJlc3VsdC5hZGQoKDAsIHBhdGhfMS5zcGxpdCkocClbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBbLi4ucmVzdWx0XTsKICAgICAgfQogICAgICBfZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gISF0aGlzLl9jYWNoZS5nZXQodGhpcy5fdG9BYnNvbHV0ZShwYXRoKSk7CiAgICAgIH0KICAgICAgX2lzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICBjb25zdCBtYXliZVN0YXRzID0gdGhpcy5fY2FjaGUuZ2V0KHRoaXMuX3RvQWJzb2x1dGUocGF0aCkpOwogICAgICAgIHJldHVybiBtYXliZVN0YXRzID8gbWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpIDogZmFsc2U7CiAgICAgIH0KICAgICAgX2lzRmlsZShwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0cyA/IG1heWJlU3RhdHMuaXNGaWxlKCkgOiBmYWxzZTsKICAgICAgfQogICAgICBfc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTdGF0czsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3dhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgICAgbGV0IG1heWJlV2F0Y2hlckFycmF5ID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghbWF5YmVXYXRjaGVyQXJyYXkpIHsKICAgICAgICAgIG1heWJlV2F0Y2hlckFycmF5ID0gW107CiAgICAgICAgICB0aGlzLl93YXRjaGVycy5zZXQocGF0aCwgbWF5YmVXYXRjaGVyQXJyYXkpOwogICAgICAgIH0KICAgICAgICBtYXliZVdhdGNoZXJBcnJheS5wdXNoKFtvcHRpb25zIHx8IHt9LCBzdWJqZWN0XSk7CiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgdGhpcy5fd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fcmVhZChwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KGNvbnRlbnQpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX2RlbGV0ZShwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KCk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX3JlbmFtZShmcm9tLCB0byk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9saXN0KHBhdGgpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9leGlzdHMocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQodGhpcy5faXNEaXJlY3RvcnkocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX2lzRmlsZShwYXRoKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX3N0YXQocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl93YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgIHRoaXMuX3dhdGNoZXJzLmNsZWFyKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TaW1wbGVNZW1vcnlIb3N0ID0gU2ltcGxlTWVtb3J5SG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzCnZhciByZXF1aXJlX3N5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TeW5jRGVsZWdhdGVIb3N0ID0gZXhwb3J0czIuU3luY2hyb25vdXNEZWxlZ2F0ZUV4cGVjdGVkRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcihgRXhwZWN0ZWQgYSBzeW5jaHJvbm91cyBkZWxlZ2F0ZSBidXQgZ290IGFuIGFzeW5jaHJvbm91cyBvbmUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb247CiAgICB2YXIgU3luY0RlbGVnYXRlSG9zdCA9IGNsYXNzIHsKICAgICAgX2RlbGVnYXRlOwogICAgICBjb25zdHJ1Y3RvcihfZGVsZWdhdGUpIHsKICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IF9kZWxlZ2F0ZTsKICAgICAgICBpZiAoIV9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuc3luY2hyb25vdXMpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RvU3luY0NhbGwob2JzZXJ2YWJsZSkgewogICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKICAgICAgICBsZXQgcmVzdWx0ID0gdm9pZCAwOwogICAgICAgIGxldCBlcnJvclJlc3VsdCA9IHZvaWQgMDsKICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZSgoeCkgPT4gcmVzdWx0ID0geCwgKGVycikgPT4gZXJyb3JSZXN1bHQgPSBlcnIsICgpID0+IGNvbXBsZXRlZCA9IHRydWUpOwogICAgICAgIGlmIChlcnJvclJlc3VsdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBlcnJvclJlc3VsdDsKICAgICAgICB9CiAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICBnZXQgY2FwYWJpbGl0aWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXM7CiAgICAgIH0KICAgICAgZ2V0IGRlbGVnYXRlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZTsKICAgICAgfQogICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUud3JpdGUocGF0aCwgY29udGVudCkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLnJlYWQocGF0aCkpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUuZGVsZXRlKHBhdGgpKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUoZnJvbSwgdG8pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmV4aXN0cyhwYXRoKSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRmlsZShwYXRoKSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgc3RhdC4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbChyZXN1bHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlN5bmNEZWxlZ2F0ZUhvc3QgPSBTeW5jRGVsZWdhdGVIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMKdmFyIHJlcXVpcmVfdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRlc3RIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBhdGhfMSA9IHJlcXVpcmVfcGF0aCgpOwogICAgdmFyIGJ1ZmZlcl8xID0gcmVxdWlyZV9idWZmZXIyKCk7CiAgICB2YXIgbWVtb3J5XzEgPSByZXF1aXJlX21lbW9yeSgpOwogICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYygpOwogICAgdmFyIFRlc3RIb3N0ID0gY2xhc3MgX1Rlc3RIb3N0IGV4dGVuZHMgbWVtb3J5XzEuU2ltcGxlTWVtb3J5SG9zdCB7CiAgICAgIF9yZWNvcmRzID0gW107CiAgICAgIF9zeW5jID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IobWFwMiA9IHt9KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1hcDIpKSB7CiAgICAgICAgICB0aGlzLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoZmlsZVBhdGgpLCAoMCwgYnVmZmVyXzEuc3RyaW5nVG9GaWxlQnVmZmVyKShtYXAyW2ZpbGVQYXRoXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgcmVjb3JkcygpIHsKICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3JlY29yZHNdOwogICAgICB9CiAgICAgIGNsZWFyUmVjb3JkcygpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CiAgICAgIH0KICAgICAgZ2V0IGZpbGVzKCkgewogICAgICAgIGNvbnN0IHN5bmMgPSB0aGlzLnN5bmM7CiAgICAgICAgZnVuY3Rpb24gX3Zpc2l0KHApIHsKICAgICAgICAgIHJldHVybiBzeW5jLmxpc3QocCkubWFwKChmcmFnbWVudCkgPT4gKDAsIHBhdGhfMS5qb2luKShwLCBmcmFnbWVudCkpLnJlZHVjZSgoZmlsZXMsIHBhdGgpID0+IHsKICAgICAgICAgICAgaWYgKHN5bmMuaXNEaXJlY3RvcnkocGF0aCkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmlsZXMuY29uY2F0KF92aXNpdChwYXRoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpbGVzLmNvbmNhdChwYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3Zpc2l0KCgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIpKTsKICAgICAgfQogICAgICBnZXQgc3luYygpIHsKICAgICAgICBpZiAoIXRoaXMuX3N5bmMpIHsKICAgICAgICAgIHRoaXMuX3N5bmMgPSBuZXcgc3luY18xLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9zeW5jOwogICAgICB9CiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IG5ld0hvc3QgPSBuZXcgX1Rlc3RIb3N0KCk7CiAgICAgICAgbmV3SG9zdC5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICByZXR1cm4gbmV3SG9zdDsKICAgICAgfQogICAgICAvLyBPdmVycmlkZSBwYXJlbnRzIGZ1bmN0aW9ucyB0byBrZWVwIGEgcmVjb3JkIG9mIGFsbCBvcGVyYXRvcnMgdGhhdCB3ZXJlIGRvbmUuCiAgICAgIF93cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndyaXRlIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKHBhdGgsIGNvbnRlbnQpOwogICAgICB9CiAgICAgIF9yZWFkKHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVhZCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIF9kZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJkZWxldGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIF9yZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVuYW1lIiwgZnJvbSwgdG8gfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIF9saXN0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAibGlzdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9saXN0KHBhdGgpOwogICAgICB9CiAgICAgIF9leGlzdHMocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJleGlzdHMiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZXhpc3RzKHBhdGgpOwogICAgICB9CiAgICAgIF9pc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogImlzRGlyZWN0b3J5IiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX2lzRGlyZWN0b3J5KHBhdGgpOwogICAgICB9CiAgICAgIF9pc0ZpbGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJpc0ZpbGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIF9zdGF0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAic3RhdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIF93YXRjaChwYXRoLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndhdGNoIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dhdGNoKHBhdGgsIG9wdGlvbnMpOwogICAgICB9CiAgICAgICR3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCksICgwLCBidWZmZXJfMS5zdHJpbmdUb0ZpbGVCdWZmZXIpKGNvbnRlbnQpKTsKICAgICAgfQogICAgICAkcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBidWZmZXJfMS5maWxlQnVmZmVyVG9TdHJpbmcpKHN1cGVyLl9yZWFkKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICB9CiAgICAgICRsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2xpc3QoKDAsIHBhdGhfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgfQogICAgICAkZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2V4aXN0cygoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9pc0RpcmVjdG9yeSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5UZXN0SG9zdCA9IFRlc3RIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Jlc29sdmVyLmpzCnZhciByZXF1aXJlX3Jlc29sdmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVzb2x2ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IHZvaWQgMDsKICAgIHZhciBSZXNvbHZlckhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUud3JpdGUodGhpcy5fcmVzb2x2ZShwYXRoKSwgY29udGVudCk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlYWQodGhpcy5fcmVzb2x2ZShwYXRoKSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGVsZXRlKHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUodGhpcy5fcmVzb2x2ZShmcm9tKSwgdGhpcy5fcmVzb2x2ZSh0bykpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmV4aXN0cyh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGlzRmlsZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRmlsZSh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdCh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaCh0aGlzLl9yZXNvbHZlKHBhdGgpLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IFJlc29sdmVySG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9hbGlhcy5qcwp2YXIgcmVxdWlyZV9hbGlhcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBBbGlhc0hvc3QgPSBjbGFzcyBleHRlbmRzIHJlc29sdmVyXzEuUmVzb2x2ZXJIb3N0IHsKICAgICAgX2FsaWFzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfcmVzb2x2ZShwYXRoKSB7CiAgICAgICAgbGV0IG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwYXRoKTsKICAgICAgICBjb25zdCBzcCA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IFtdOwogICAgICAgIHdoaWxlICghbWF5YmVBbGlhcyAmJiBzcC5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjb25zdCBwID0gKDAsIHBhdGhfMS5qb2luKShwYXRoXzEuTm9ybWFsaXplZFJvb3QsIC4uLnNwKTsKICAgICAgICAgIG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwKTsKICAgICAgICAgIGlmIChtYXliZUFsaWFzKSB7CiAgICAgICAgICAgIG1heWJlQWxpYXMgPSAoMCwgcGF0aF8xLmpvaW4pKG1heWJlQWxpYXMsIC4uLnJlbWFpbmluZyk7CiAgICAgICAgICB9CiAgICAgICAgICByZW1haW5pbmcudW5zaGlmdChzcC5wb3AoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUFsaWFzIHx8IHBhdGg7CiAgICAgIH0KICAgICAgZ2V0IGFsaWFzZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZXM7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSBBbGlhc0hvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzCnZhciByZXF1aXJlX2NyZWF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2NyZWF0ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlU3luY0hvc3QgPSBjcmVhdGVTeW5jSG9zdDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgZnVuY3Rpb24gd3JhcEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4gewogICAgICAgIHN1YnNjcmliZXIubmV4dChhY3Rpb24oKSk7CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNyZWF0ZVN5bmNIb3N0KGhhbmRsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBjbGFzcyB7CiAgICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICAgIHJldHVybiB7IHN5bmNocm9ub3VzOiB0cnVlIH07CiAgICAgICAgfQogICAgICAgIHJlYWQocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5yZWFkKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmxpc3QocGF0aCkpOwogICAgICAgIH0KICAgICAgICBleGlzdHMocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5leGlzdHMocGF0aCkpOwogICAgICAgIH0KICAgICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuaXNGaWxlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnN0YXQocGF0aCkpOwogICAgICAgIH0KICAgICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLndyaXRlKHBhdGgsIGNvbnRlbnQpKTsKICAgICAgICB9CiAgICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuZGVsZXRlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnJlbmFtZShmcm9tLCB0bykpOwogICAgICAgIH0KICAgICAgICB3YXRjaCgpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgfSgpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBFbXB0eSA9IGNsYXNzIHsKICAgICAgY2FwYWJpbGl0aWVzID0gewogICAgICAgIHN5bmNocm9ub3VzOiB0cnVlCiAgICAgIH07CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikoW10pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgIH0KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKG51bGwpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRW1wdHkgPSBFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanMKdmFyIHJlcXVpcmVfY29uc3RhbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvY29uc3RhbnRzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFdJTl9TTEFTSCA9ICJcXFxcLyI7CiAgICB2YXIgV0lOX05PX1NMQVNIID0gYFteJHtXSU5fU0xBU0h9XWA7CiAgICB2YXIgRE9UX0xJVEVSQUwgPSAiXFwuIjsKICAgIHZhciBQTFVTX0xJVEVSQUwgPSAiXFwrIjsKICAgIHZhciBRTUFSS19MSVRFUkFMID0gIlxcPyI7CiAgICB2YXIgU0xBU0hfTElURVJBTCA9ICJcXC8iOwogICAgdmFyIE9ORV9DSEFSID0gIig/PS4pIjsKICAgIHZhciBRTUFSSyA9ICJbXi9dIjsKICAgIHZhciBFTkRfQU5DSE9SID0gYCg/OiR7U0xBU0hfTElURVJBTH18JClgOwogICAgdmFyIFNUQVJUX0FOQ0hPUiA9IGAoPzpefCR7U0xBU0hfTElURVJBTH0pYDsKICAgIHZhciBET1RTX1NMQVNIID0gYCR7RE9UX0xJVEVSQUx9ezEsMn0ke0VORF9BTkNIT1J9YDsKICAgIHZhciBOT19ET1QgPSBgKD8hJHtET1RfTElURVJBTH0pYDsKICAgIHZhciBOT19ET1RTID0gYCg/ISR7U1RBUlRfQU5DSE9SfSR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBOT19ET1RfU0xBU0ggPSBgKD8hJHtET1RfTElURVJBTH17MCwxfSR7RU5EX0FOQ0hPUn0pYDsKICAgIHZhciBOT19ET1RTX1NMQVNIID0gYCg/ISR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBRTUFSS19OT19ET1QgPSBgW14uJHtTTEFTSF9MSVRFUkFMfV1gOwogICAgdmFyIFNUQVIgPSBgJHtRTUFSS30qP2A7CiAgICB2YXIgU0VQID0gIi8iOwogICAgdmFyIFBPU0lYX0NIQVJTID0gewogICAgICBET1RfTElURVJBTCwKICAgICAgUExVU19MSVRFUkFMLAogICAgICBRTUFSS19MSVRFUkFMLAogICAgICBTTEFTSF9MSVRFUkFMLAogICAgICBPTkVfQ0hBUiwKICAgICAgUU1BUkssCiAgICAgIEVORF9BTkNIT1IsCiAgICAgIERPVFNfU0xBU0gsCiAgICAgIE5PX0RPVCwKICAgICAgTk9fRE9UUywKICAgICAgTk9fRE9UX1NMQVNILAogICAgICBOT19ET1RTX1NMQVNILAogICAgICBRTUFSS19OT19ET1QsCiAgICAgIFNUQVIsCiAgICAgIFNUQVJUX0FOQ0hPUiwKICAgICAgU0VQCiAgICB9OwogICAgdmFyIFdJTkRPV1NfQ0hBUlMgPSB7CiAgICAgIC4uLlBPU0lYX0NIQVJTLAogICAgICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLAogICAgICBRTUFSSzogV0lOX05PX1NMQVNILAogICAgICBTVEFSOiBgJHtXSU5fTk9fU0xBU0h9Kj9gLAogICAgICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCwKICAgICAgTk9fRE9UOiBgKD8hJHtET1RfTElURVJBTH0pYCwKICAgICAgTk9fRE9UUzogYCg/ISg/Ol58WyR7V0lOX1NMQVNIfV0pJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLAogICAgICBOT19ET1RTX1NMQVNIOiBgKD8hJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIFFNQVJLX05PX0RPVDogYFteLiR7V0lOX1NMQVNIfV1gLAogICAgICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsCiAgICAgIEVORF9BTkNIT1I6IGAoPzpbJHtXSU5fU0xBU0h9XXwkKWAsCiAgICAgIFNFUDogIlxcIgogICAgfTsKICAgIHZhciBQT1NJWF9SRUdFWF9TT1VSQ0UgPSB7CiAgICAgIGFsbnVtOiAiYS16QS1aMC05IiwKICAgICAgYWxwaGE6ICJhLXpBLVoiLAogICAgICBhc2NpaTogIlxceDAwLVxceDdGIiwKICAgICAgYmxhbms6ICIgXFx0IiwKICAgICAgY250cmw6ICJcXHgwMC1cXHgxRlxceDdGIiwKICAgICAgZGlnaXQ6ICIwLTkiLAogICAgICBncmFwaDogIlxceDIxLVxceDdFIiwKICAgICAgbG93ZXI6ICJhLXoiLAogICAgICBwcmludDogIlxceDIwLVxceDdFICIsCiAgICAgIHB1bmN0OiAiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLAogICAgICBzcGFjZTogIiBcXHRcXHJcXG5cXHZcXGYiLAogICAgICB1cHBlcjogIkEtWiIsCiAgICAgIHdvcmQ6ICJBLVphLXowLTlfIiwKICAgICAgeGRpZ2l0OiAiQS1GYS1mMC05IgogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LAogICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsCiAgICAgIC8vIHJlZ3VsYXIgZXhwcmVzc2lvbnMKICAgICAgUkVHRVhfQkFDS1NMQVNIOiAvXFwoPyFbKis/XiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTOiAvXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlM6IC9bLSorPy5eJHt9KHwpW1xdXS8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjogLyhcXD8pKChcVykoXDMqKSkvZywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6IC8oWy0qKz8uXiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6IC8oPzpcWy4qP1teXFxdXF18XFwoPz0uKSkvZywKICAgICAgLy8gUmVwbGFjZSBnbG9icyB3aXRoIGVxdWl2YWxlbnQgcGF0dGVybnMgdG8gcmVkdWNlIHBhcnNpbmcgdGltZS4KICAgICAgUkVQTEFDRU1FTlRTOiB7CiAgICAgICAgIioqKiI6ICIqIiwKICAgICAgICAiKiovKioiOiAiKioiLAogICAgICAgICIqKi8qKi8qKiI6ICIqKiIKICAgICAgfSwKICAgICAgLy8gRGlnaXRzCiAgICAgIENIQVJfMDogNDgsCiAgICAgIC8qIDAgKi8KICAgICAgQ0hBUl85OiA1NywKICAgICAgLyogOSAqLwogICAgICAvLyBBbHBoYWJldCBjaGFycy4KICAgICAgQ0hBUl9VUFBFUkNBU0VfQTogNjUsCiAgICAgIC8qIEEgKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfQTogOTcsCiAgICAgIC8qIGEgKi8KICAgICAgQ0hBUl9VUFBFUkNBU0VfWjogOTAsCiAgICAgIC8qIFogKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfWjogMTIyLAogICAgICAvKiB6ICovCiAgICAgIENIQVJfTEVGVF9QQVJFTlRIRVNFUzogNDAsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsCiAgICAgIC8qICkgKi8KICAgICAgQ0hBUl9BU1RFUklTSzogNDIsCiAgICAgIC8qICogKi8KICAgICAgLy8gTm9uLWFscGhhYmV0aWMgY2hhcnMuCiAgICAgIENIQVJfQU1QRVJTQU5EOiAzOCwKICAgICAgLyogJiAqLwogICAgICBDSEFSX0FUOiA2NCwKICAgICAgLyogQCAqLwogICAgICBDSEFSX0JBQ0tXQVJEX1NMQVNIOiA5MiwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogMTMsCiAgICAgIC8qIFxyICovCiAgICAgIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LAogICAgICAvKiBeICovCiAgICAgIENIQVJfQ09MT046IDU4LAogICAgICAvKiA6ICovCiAgICAgIENIQVJfQ09NTUE6IDQ0LAogICAgICAvKiAsICovCiAgICAgIENIQVJfRE9UOiA0NiwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0RPVUJMRV9RVU9URTogMzQsCiAgICAgIC8qICIgKi8KICAgICAgQ0hBUl9FUVVBTDogNjEsCiAgICAgIC8qID0gKi8KICAgICAgQ0hBUl9FWENMQU1BVElPTl9NQVJLOiAzMywKICAgICAgLyogISAqLwogICAgICBDSEFSX0ZPUk1fRkVFRDogMTIsCiAgICAgIC8qIFxmICovCiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogNDcsCiAgICAgIC8qIC8gKi8KICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQ6IDk2LAogICAgICAvKiBgICovCiAgICAgIENIQVJfSEFTSDogMzUsCiAgICAgIC8qICMgKi8KICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IDQ1LAogICAgICAvKiAtICovCiAgICAgIENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiA2MCwKICAgICAgLyogPCAqLwogICAgICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6IDEyMywKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6IDkxLAogICAgICAvKiBbICovCiAgICAgIENIQVJfTElORV9GRUVEOiAxMCwKICAgICAgLyogXG4gKi8KICAgICAgQ0hBUl9OT19CUkVBS19TUEFDRTogMTYwLAogICAgICAvKiBcdTAwQTAgKi8KICAgICAgQ0hBUl9QRVJDRU5UOiAzNywKICAgICAgLyogJSAqLwogICAgICBDSEFSX1BMVVM6IDQzLAogICAgICAvKiArICovCiAgICAgIENIQVJfUVVFU1RJT05fTUFSSzogNjMsCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiA2MiwKICAgICAgLyogPiAqLwogICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOiAxMjUsCiAgICAgIC8qIH0gKi8KICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogOTMsCiAgICAgIC8qIF0gKi8KICAgICAgQ0hBUl9TRU1JQ09MT046IDU5LAogICAgICAvKiA7ICovCiAgICAgIENIQVJfU0lOR0xFX1FVT1RFOiAzOSwKICAgICAgLyogJyAqLwogICAgICBDSEFSX1NQQUNFOiAzMiwKICAgICAgLyogICAqLwogICAgICBDSEFSX1RBQjogOSwKICAgICAgLyogXHQgKi8KICAgICAgQ0hBUl9VTkRFUlNDT1JFOiA5NSwKICAgICAgLyogXyAqLwogICAgICBDSEFSX1ZFUlRJQ0FMX0xJTkU6IDEyNCwKICAgICAgLyogfCAqLwogICAgICBDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTogNjUyNzksCiAgICAgIC8qIFx1RkVGRiAqLwogICAgICAvKioKICAgICAgICogQ3JlYXRlIEVYVEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGV4dGdsb2JDaGFycyhjaGFycykgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiISI6IHsgdHlwZTogIm5lZ2F0ZSIsIG9wZW46ICIoPzooPyEoPzoiLCBjbG9zZTogYCkpJHtjaGFycy5TVEFSfSlgIH0sCiAgICAgICAgICAiPyI6IHsgdHlwZTogInFtYXJrIiwgb3BlbjogIig/OiIsIGNsb3NlOiAiKT8iIH0sCiAgICAgICAgICAiKyI6IHsgdHlwZTogInBsdXMiLCBvcGVuOiAiKD86IiwgY2xvc2U6ICIpKyIgfSwKICAgICAgICAgICIqIjogeyB0eXBlOiAic3RhciIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikqIiB9LAogICAgICAgICAgIkAiOiB7IHR5cGU6ICJhdCIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikiIH0KICAgICAgICB9OwogICAgICB9LAogICAgICAvKioKICAgICAgICogQ3JlYXRlIEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGdsb2JDaGFycyh3aW4zMikgewogICAgICAgIHJldHVybiB3aW4zMiA9PT0gdHJ1ZSA/IFdJTkRPV1NfQ0hBUlMgOiBQT1NJWF9DSEFSUzsKICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB7CiAgICAgIFJFR0VYX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSUywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUwKICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgZXhwb3J0czIuaXNPYmplY3QgPSAodmFsKSA9PiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIGV4cG9ydHMyLmhhc1JlZ2V4Q2hhcnMgPSAoc3RyMikgPT4gUkVHRVhfU1BFQ0lBTF9DSEFSUy50ZXN0KHN0cjIpOwogICAgZXhwb3J0czIuaXNSZWdleENoYXIgPSAoc3RyMikgPT4gc3RyMi5sZW5ndGggPT09IDEgJiYgZXhwb3J0czIuaGFzUmVnZXhDaGFycyhzdHIyKTsKICAgIGV4cG9ydHMyLmVzY2FwZVJlZ2V4ID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTCwgIlxcJDEiKTsKICAgIGV4cG9ydHMyLnRvUG9zaXhTbGFzaGVzID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9CQUNLU0xBU0gsICIvIik7CiAgICBleHBvcnRzMi5pc1dpbmRvd3MgPSAoKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAidW5kZWZpbmVkIiAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHsKICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiBwbGF0Zm9ybSA9PT0gIndpbjMyIiB8fCBwbGF0Zm9ybSA9PT0gIndpbmRvd3MiOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gInVuZGVmaW5lZCIgJiYgcHJvY2Vzcy5wbGF0Zm9ybSkgewogICAgICAgIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSAid2luMzIiOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CiAgICBleHBvcnRzMi5yZW1vdmVCYWNrc2xhc2hlcyA9IChzdHIyKSA9PiB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwgKG1hdGNoKSA9PiB7CiAgICAgICAgcmV0dXJuIG1hdGNoID09PSAiXFwiID8gIiIgOiBtYXRjaDsKICAgICAgfSk7CiAgICB9OwogICAgZXhwb3J0czIuZXNjYXBlTGFzdCA9IChpbnB1dCwgY2hhciwgbGFzdElkeCkgPT4gewogICAgICBjb25zdCBpZHggPSBpbnB1dC5sYXN0SW5kZXhPZihjaGFyLCBsYXN0SWR4KTsKICAgICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybiBpbnB1dDsKICAgICAgaWYgKGlucHV0W2lkeCAtIDFdID09PSAiXFwiKSByZXR1cm4gZXhwb3J0czIuZXNjYXBlTGFzdChpbnB1dCwgY2hhciwgaWR4IC0gMSk7CiAgICAgIHJldHVybiBgJHtpbnB1dC5zbGljZSgwLCBpZHgpfVxcJHtpbnB1dC5zbGljZShpZHgpfWA7CiAgICB9OwogICAgZXhwb3J0czIucmVtb3ZlUHJlZml4ID0gKGlucHV0LCBzdGF0ZSA9IHt9KSA9PiB7CiAgICAgIGxldCBvdXRwdXQgPSBpbnB1dDsKICAgICAgaWYgKG91dHB1dC5zdGFydHNXaXRoKCIuLyIpKSB7CiAgICAgICAgb3V0cHV0ID0gb3V0cHV0LnNsaWNlKDIpOwogICAgICAgIHN0YXRlLnByZWZpeCA9ICIuLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIG91dHB1dDsKICAgIH07CiAgICBleHBvcnRzMi53cmFwT3V0cHV0ID0gKGlucHV0LCBzdGF0ZSA9IHt9LCBvcHRpb25zID0ge30pID0+IHsKICAgICAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnMuY29udGFpbnMgPyAiIiA6ICJeIjsKICAgICAgY29uc3QgYXBwZW5kID0gb3B0aW9ucy5jb250YWlucyA/ICIiIDogIiQiOwogICAgICBsZXQgb3V0cHV0ID0gYCR7cHJlcGVuZH0oPzoke2lucHV0fSkke2FwcGVuZH1gOwogICAgICBpZiAoc3RhdGUubmVnYXRlZCA9PT0gdHJ1ZSkgewogICAgICAgIG91dHB1dCA9IGAoPzpeKD8hJHtvdXRwdXR9KS4qJClgOwogICAgICB9CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9OwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSAocGF0aCwgeyB3aW5kb3dzIH0gPSB7fSkgPT4gewogICAgICBjb25zdCBzZWdzID0gcGF0aC5zcGxpdCh3aW5kb3dzID8gL1tcXC9dLyA6ICIvIik7CiAgICAgIGNvbnN0IGxhc3QgPSBzZWdzW3NlZ3MubGVuZ3RoIC0gMV07CiAgICAgIGlmIChsYXN0ID09PSAiIikgewogICAgICAgIHJldHVybiBzZWdzW3NlZ3MubGVuZ3RoIC0gMl07CiAgICAgIH0KICAgICAgcmV0dXJuIGxhc3Q7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9zY2FuLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIENIQVJfQVNURVJJU0s6IENIQVJfQVNURVJJU0syLAogICAgICAvKiAqICovCiAgICAgIENIQVJfQVQsCiAgICAgIC8qIEAgKi8KICAgICAgQ0hBUl9CQUNLV0FSRF9TTEFTSCwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NPTU1BOiBDSEFSX0NPTU1BMiwKICAgICAgLyogLCAqLwogICAgICBDSEFSX0RPVCwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUkssCiAgICAgIC8qICEgKi8KICAgICAgQ0hBUl9GT1JXQVJEX1NMQVNILAogICAgICAvKiAvICovCiAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDRSwKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOiBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyLAogICAgICAvKiBbICovCiAgICAgIENIQVJfUExVUywKICAgICAgLyogKyAqLwogICAgICBDSEFSX1FVRVNUSU9OX01BUkssCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwKICAgICAgLyogfSAqLwogICAgICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTLAogICAgICAvKiApICovCiAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQyCiAgICAgIC8qIF0gKi8KICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIGlzUGF0aFNlcGFyYXRvciA9IChjb2RlKSA9PiB7CiAgICAgIHJldHVybiBjb2RlID09PSBDSEFSX0ZPUldBUkRfU0xBU0ggfHwgY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSDsKICAgIH07CiAgICB2YXIgZGVwdGggPSAodG9rZW4pID0+IHsKICAgICAgaWYgKHRva2VuLmlzUHJlZml4ICE9PSB0cnVlKSB7CiAgICAgICAgdG9rZW4uZGVwdGggPSB0b2tlbi5pc0dsb2JzdGFyID8gSW5maW5pdHkgOiAxOwogICAgICB9CiAgICB9OwogICAgdmFyIHNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7CiAgICAgIGNvbnN0IHNjYW5Ub0VuZCA9IG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy5zY2FuVG9FbmQgPT09IHRydWU7CiAgICAgIGNvbnN0IHNsYXNoZXMgPSBbXTsKICAgICAgY29uc3QgdG9rZW5zID0gW107CiAgICAgIGNvbnN0IHBhcnRzID0gW107CiAgICAgIGxldCBzdHIyID0gaW5wdXQ7CiAgICAgIGxldCBpbmRleCA9IC0xOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgbGFzdEluZGV4ID0gMDsKICAgICAgbGV0IGlzQnJhY2UgPSBmYWxzZTsKICAgICAgbGV0IGlzQnJhY2tldCA9IGZhbHNlOwogICAgICBsZXQgaXNHbG9iID0gZmFsc2U7CiAgICAgIGxldCBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgbGV0IGlzR2xvYnN0YXIgPSBmYWxzZTsKICAgICAgbGV0IGJyYWNlRXNjYXBlZCA9IGZhbHNlOwogICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWQgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWRFeHRnbG9iID0gZmFsc2U7CiAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlOwogICAgICBsZXQgYnJhY2VzID0gMDsKICAgICAgbGV0IHByZXY7CiAgICAgIGxldCBjb2RlOwogICAgICBsZXQgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgY29uc3QgZW9zID0gKCkgPT4gaW5kZXggPj0gbGVuZ3RoOwogICAgICBjb25zdCBwZWVrID0gKCkgPT4gc3RyMi5jaGFyQ29kZUF0KGluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGFkdmFuY2UgPSAoKSA9PiB7CiAgICAgICAgcHJldiA9IGNvZGU7CiAgICAgICAgcmV0dXJuIHN0cjIuY2hhckNvZGVBdCgrK2luZGV4KTsKICAgICAgfTsKICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CiAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICBsZXQgbmV4dDsKICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpOwogICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICBicmFjZUVzY2FwZWQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChicmFjZUVzY2FwZWQgPT09IHRydWUgfHwgY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7CiAgICAgICAgICBicmFjZXMrKzsKICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHsKICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHsKICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICBhZHZhbmNlKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICAgIGJyYWNlcysrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChicmFjZUVzY2FwZWQgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9ET1QgJiYgKGNvZGUgPSBhZHZhbmNlKCkpID09PSBDSEFSX0RPVCkgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0NPTU1BMikgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHsKICAgICAgICAgICAgICBicmFjZXMtLTsKICAgICAgICAgICAgICBpZiAoYnJhY2VzID09PSAwKSB7CiAgICAgICAgICAgICAgICBicmFjZUVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIKSB7CiAgICAgICAgICBzbGFzaGVzLnB1c2goaW5kZXgpOwogICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgICAgIGlmIChmaW5pc2hlZCA9PT0gdHJ1ZSkgY29udGludWU7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9ET1QgJiYgaW5kZXggPT09IHN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGFydCArPSAyOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub2V4dCAhPT0gdHJ1ZSkgewogICAgICAgICAgY29uc3QgaXNFeHRnbG9iQ2hhciA9IGNvZGUgPT09IENIQVJfUExVUyB8fCBjb2RlID09PSBDSEFSX0FUIHx8IGNvZGUgPT09IENIQVJfQVNURVJJU0syIHx8IGNvZGUgPT09IENIQVJfUVVFU1RJT05fTUFSSyB8fCBjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUks7CiAgICAgICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICBpc0V4dGdsb2IgPSB0b2tlbi5pc0V4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUksgJiYgaW5kZXggPT09IHN0YXJ0KSB7CiAgICAgICAgICAgICAgbmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKGNvZGUgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQVNURVJJU0syKSB7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9BU1RFUklTSzIpIGlzR2xvYnN0YXIgPSB0b2tlbi5pc0dsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUkspIHsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyKSB7CiAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKG5leHQgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7CiAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUMikgewogICAgICAgICAgICAgIGlzQnJhY2tldCA9IHRva2VuLmlzQnJhY2tldCA9IHRydWU7CiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLICYmIGluZGV4ID09PSBzdGFydCkgewogICAgICAgICAgbmVnYXRlZCA9IHRva2VuLm5lZ2F0ZWQgPSB0cnVlOwogICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub3BhcmVuICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkgewogICAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHsKICAgICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlOwogICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChpc0dsb2IgPT09IHRydWUpIHsKICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMubm9leHQgPT09IHRydWUpIHsKICAgICAgICBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgICBpc0dsb2IgPSBmYWxzZTsKICAgICAgfQogICAgICBsZXQgYmFzZSA9IHN0cjI7CiAgICAgIGxldCBwcmVmaXggPSAiIjsKICAgICAgbGV0IGdsb2IgPSAiIjsKICAgICAgaWYgKHN0YXJ0ID4gMCkgewogICAgICAgIHByZWZpeCA9IHN0cjIuc2xpY2UoMCwgc3RhcnQpOwogICAgICAgIHN0cjIgPSBzdHIyLnNsaWNlKHN0YXJ0KTsKICAgICAgICBsYXN0SW5kZXggLT0gc3RhcnQ7CiAgICAgIH0KICAgICAgaWYgKGJhc2UgJiYgaXNHbG9iID09PSB0cnVlICYmIGxhc3RJbmRleCA+IDApIHsKICAgICAgICBiYXNlID0gc3RyMi5zbGljZSgwLCBsYXN0SW5kZXgpOwogICAgICAgIGdsb2IgPSBzdHIyLnNsaWNlKGxhc3RJbmRleCk7CiAgICAgIH0gZWxzZSBpZiAoaXNHbG9iID09PSB0cnVlKSB7CiAgICAgICAgYmFzZSA9ICIiOwogICAgICAgIGdsb2IgPSBzdHIyOwogICAgICB9IGVsc2UgewogICAgICAgIGJhc2UgPSBzdHIyOwogICAgICB9CiAgICAgIGlmIChiYXNlICYmIGJhc2UgIT09ICIiICYmIGJhc2UgIT09ICIvIiAmJiBiYXNlICE9PSBzdHIyKSB7CiAgICAgICAgaWYgKGlzUGF0aFNlcGFyYXRvcihiYXNlLmNoYXJDb2RlQXQoYmFzZS5sZW5ndGggLSAxKSkpIHsKICAgICAgICAgIGJhc2UgPSBiYXNlLnNsaWNlKDAsIC0xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHsKICAgICAgICBpZiAoZ2xvYikgZ2xvYiA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGdsb2IpOwogICAgICAgIGlmIChiYXNlICYmIGJhY2tzbGFzaGVzID09PSB0cnVlKSB7CiAgICAgICAgICBiYXNlID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoYmFzZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIHByZWZpeCwKICAgICAgICBpbnB1dCwKICAgICAgICBzdGFydCwKICAgICAgICBiYXNlLAogICAgICAgIGdsb2IsCiAgICAgICAgaXNCcmFjZSwKICAgICAgICBpc0JyYWNrZXQsCiAgICAgICAgaXNHbG9iLAogICAgICAgIGlzRXh0Z2xvYiwKICAgICAgICBpc0dsb2JzdGFyLAogICAgICAgIG5lZ2F0ZWQsCiAgICAgICAgbmVnYXRlZEV4dGdsb2IKICAgICAgfTsKICAgICAgaWYgKG9wdHMudG9rZW5zID09PSB0cnVlKSB7CiAgICAgICAgc3RhdGUubWF4RGVwdGggPSAwOwogICAgICAgIGlmICghaXNQYXRoU2VwYXJhdG9yKGNvZGUpKSB7CiAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgfQogICAgICAgIHN0YXRlLnRva2VucyA9IHRva2VuczsKICAgICAgfQogICAgICBpZiAob3B0cy5wYXJ0cyA9PT0gdHJ1ZSB8fCBvcHRzLnRva2VucyA9PT0gdHJ1ZSkgewogICAgICAgIGxldCBwcmV2SW5kZXg7CiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7CiAgICAgICAgICBjb25zdCBuID0gcHJldkluZGV4ID8gcHJldkluZGV4ICsgMSA6IHN0YXJ0OwogICAgICAgICAgY29uc3QgaSA9IHNsYXNoZXNbaWR4XTsKICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7CiAgICAgICAgICBpZiAob3B0cy50b2tlbnMpIHsKICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCAmJiBzdGFydCAhPT0gMCkgewogICAgICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHByZWZpeDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlcHRoKHRva2Vuc1tpZHhdKTsKICAgICAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaWR4ICE9PSAwIHx8IHZhbHVlICE9PSAiIikgewogICAgICAgICAgICBwYXJ0cy5wdXNoKHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHByZXZJbmRleCA9IGk7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2SW5kZXggJiYgcHJldkluZGV4ICsgMSA8IGlucHV0Lmxlbmd0aCkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC5zbGljZShwcmV2SW5kZXggKyAxKTsKICAgICAgICAgIHBhcnRzLnB1c2godmFsdWUpOwogICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7CiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0udmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgZGVwdGgodG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgIHN0YXRlLm1heERlcHRoICs9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzOwogICAgICAgIHN0YXRlLnBhcnRzID0gcGFydHM7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0YXRlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNjYW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGFyc2UuanMKdmFyIHJlcXVpcmVfcGFyc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9wYXJzZS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBjb25zdGFudHMgPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIE1BWF9MRU5HVEgsCiAgICAgIFBPU0lYX1JFR0VYX1NPVVJDRSwKICAgICAgUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMsCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRiwKICAgICAgUkVQTEFDRU1FTlRTCiAgICB9ID0gY29uc3RhbnRzOwogICAgdmFyIGV4cGFuZFJhbmdlID0gKGFyZ3MsIG9wdGlvbnMpID0+IHsKICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGFuZFJhbmdlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZXhwYW5kUmFuZ2UoLi4uYXJncywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXJncy5zb3J0KCk7CiAgICAgIGNvbnN0IHZhbHVlID0gYFske2FyZ3Muam9pbigiLSIpfV1gOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAodmFsdWUpOwogICAgICB9IGNhdGNoIChleCkgewogICAgICAgIHJldHVybiBhcmdzLm1hcCgodikgPT4gdXRpbHMuZXNjYXBlUmVnZXgodikpLmpvaW4oIi4uIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbHVlOwogICAgfTsKICAgIHZhciBzeW50YXhFcnJvciA9ICh0eXBlMiwgY2hhcikgPT4gewogICAgICByZXR1cm4gYE1pc3NpbmcgJHt0eXBlMn06ICIke2NoYXJ9IiAtIHVzZSAiXFxcXCR7Y2hhcn0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7CiAgICB9OwogICAgdmFyIHBhcnNlID0gKGlucHV0LCBvcHRpb25zKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IG9wdHMgPSB7IC4uLm9wdGlvbnMgfTsKICAgICAgY29uc3QgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSAibnVtYmVyIiA/IE1hdGgubWluKE1BWF9MRU5HVEgsIG9wdHMubWF4TGVuZ3RoKSA6IE1BWF9MRU5HVEg7CiAgICAgIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGlmIChsZW4gPiBtYXgpIHsKICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApOwogICAgICB9CiAgICAgIGNvbnN0IGJvcyA9IHsgdHlwZTogImJvcyIsIHZhbHVlOiAiIiwgb3V0cHV0OiBvcHRzLnByZXBlbmQgfHwgIiIgfTsKICAgICAgY29uc3QgdG9rZW5zID0gW2Jvc107CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IFBMQVRGT1JNX0NIQVJTID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBFWFRHTE9CX0NIQVJTID0gY29uc3RhbnRzLmV4dGdsb2JDaGFycyhQTEFURk9STV9DSEFSUyk7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBQTFVTX0xJVEVSQUwsCiAgICAgICAgU0xBU0hfTElURVJBTCwKICAgICAgICBPTkVfQ0hBUiwKICAgICAgICBET1RTX1NMQVNILAogICAgICAgIE5PX0RPVCwKICAgICAgICBOT19ET1RfU0xBU0gsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBRTUFSSywKICAgICAgICBRTUFSS19OT19ET1QsCiAgICAgICAgU1RBUiwKICAgICAgICBTVEFSVF9BTkNIT1IKICAgICAgfSA9IFBMQVRGT1JNX0NIQVJTOwogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgOwogICAgICB9OwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gIiIgOiBOT19ET1Q7CiAgICAgIGNvbnN0IHFtYXJrTm9Eb3QgPSBvcHRzLmRvdCA/IFFNQVJLIDogUU1BUktfTk9fRE9UOwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/IGdsb2JzdGFyKG9wdHMpIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBpZiAodHlwZW9mIG9wdHMubm9leHQgPT09ICJib29sZWFuIikgewogICAgICAgIG9wdHMubm9leHRnbG9iID0gb3B0cy5ub2V4dDsKICAgICAgfQogICAgICBjb25zdCBzdGF0ZSA9IHsKICAgICAgICBpbnB1dCwKICAgICAgICBpbmRleDogLTEsCiAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgZG90OiBvcHRzLmRvdCA9PT0gdHJ1ZSwKICAgICAgICBjb25zdW1lZDogIiIsCiAgICAgICAgb3V0cHV0OiAiIiwKICAgICAgICBwcmVmaXg6ICIiLAogICAgICAgIGJhY2t0cmFjazogZmFsc2UsCiAgICAgICAgbmVnYXRlZDogZmFsc2UsCiAgICAgICAgYnJhY2tldHM6IDAsCiAgICAgICAgYnJhY2VzOiAwLAogICAgICAgIHBhcmVuczogMCwKICAgICAgICBxdW90ZXM6IDAsCiAgICAgICAgZ2xvYnN0YXI6IGZhbHNlLAogICAgICAgIHRva2VucwogICAgICB9OwogICAgICBpbnB1dCA9IHV0aWxzLnJlbW92ZVByZWZpeChpbnB1dCwgc3RhdGUpOwogICAgICBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGNvbnN0IGV4dGdsb2JzID0gW107CiAgICAgIGNvbnN0IGJyYWNlcyA9IFtdOwogICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICBsZXQgcHJldiA9IGJvczsKICAgICAgbGV0IHZhbHVlOwogICAgICBjb25zdCBlb3MgPSAoKSA9PiBzdGF0ZS5pbmRleCA9PT0gbGVuIC0gMTsKICAgICAgY29uc3QgcGVlayA9IHN0YXRlLnBlZWsgPSAobiA9IDEpID0+IGlucHV0W3N0YXRlLmluZGV4ICsgbl07CiAgICAgIGNvbnN0IGFkdmFuY2UgPSBzdGF0ZS5hZHZhbmNlID0gKCkgPT4gaW5wdXRbKytzdGF0ZS5pbmRleF0gfHwgIiI7CiAgICAgIGNvbnN0IHJlbWFpbmluZyA9ICgpID0+IGlucHV0LnNsaWNlKHN0YXRlLmluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGNvbnN1bWUgPSAodmFsdWUyID0gIiIsIG51bSA9IDApID0+IHsKICAgICAgICBzdGF0ZS5jb25zdW1lZCArPSB2YWx1ZTI7CiAgICAgICAgc3RhdGUuaW5kZXggKz0gbnVtOwogICAgICB9OwogICAgICBjb25zdCBhcHBlbmQgPSAodG9rZW4pID0+IHsKICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4ub3V0cHV0ICE9IG51bGwgPyB0b2tlbi5vdXRwdXQgOiB0b2tlbi52YWx1ZTsKICAgICAgICBjb25zdW1lKHRva2VuLnZhbHVlKTsKICAgICAgfTsKICAgICAgY29uc3QgbmVnYXRlID0gKCkgPT4gewogICAgICAgIGxldCBjb3VudCA9IDE7CiAgICAgICAgd2hpbGUgKHBlZWsoKSA9PT0gIiEiICYmIChwZWVrKDIpICE9PSAiKCIgfHwgcGVlaygzKSA9PT0gIj8iKSkgewogICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIGlmIChjb3VudCAlIDIgPT09IDApIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUubmVnYXRlZCA9IHRydWU7CiAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfTsKICAgICAgY29uc3QgaW5jcmVtZW50ID0gKHR5cGUyKSA9PiB7CiAgICAgICAgc3RhdGVbdHlwZTJdKys7CiAgICAgICAgc3RhY2sucHVzaCh0eXBlMik7CiAgICAgIH07CiAgICAgIGNvbnN0IGRlY3JlbWVudCA9ICh0eXBlMikgPT4gewogICAgICAgIHN0YXRlW3R5cGUyXS0tOwogICAgICAgIHN0YWNrLnBvcCgpOwogICAgICB9OwogICAgICBjb25zdCBwdXNoID0gKHRvaykgPT4gewogICAgICAgIGlmIChwcmV2LnR5cGUgPT09ICJnbG9ic3RhciIpIHsKICAgICAgICAgIGNvbnN0IGlzQnJhY2UgPSBzdGF0ZS5icmFjZXMgPiAwICYmICh0b2sudHlwZSA9PT0gImNvbW1hIiB8fCB0b2sudHlwZSA9PT0gImJyYWNlIik7CiAgICAgICAgICBjb25zdCBpc0V4dGdsb2IgPSB0b2suZXh0Z2xvYiA9PT0gdHJ1ZSB8fCBleHRnbG9icy5sZW5ndGggJiYgKHRvay50eXBlID09PSAicGlwZSIgfHwgdG9rLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKHRvay50eXBlICE9PSAic2xhc2giICYmIHRvay50eXBlICE9PSAicGFyZW4iICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICAgIHByZXYudmFsdWUgPSAiKiI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZXh0Z2xvYnMubGVuZ3RoICYmIHRvay50eXBlICE9PSAicGFyZW4iKSB7CiAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7CiAgICAgICAgfQogICAgICAgIGlmICh0b2sudmFsdWUgfHwgdG9rLm91dHB1dCkgYXBwZW5kKHRvayk7CiAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAidGV4dCIgJiYgdG9rLnR5cGUgPT09ICJ0ZXh0IikgewogICAgICAgICAgcHJldi5vdXRwdXQgPSAocHJldi5vdXRwdXQgfHwgcHJldi52YWx1ZSkgKyB0b2sudmFsdWU7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHRvay52YWx1ZTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdG9rLnByZXYgPSBwcmV2OwogICAgICAgIHRva2Vucy5wdXNoKHRvayk7CiAgICAgICAgcHJldiA9IHRvazsKICAgICAgfTsKICAgICAgY29uc3QgZXh0Z2xvYk9wZW4gPSAodHlwZTIsIHZhbHVlMikgPT4gewogICAgICAgIGNvbnN0IHRva2VuID0geyAuLi5FWFRHTE9CX0NIQVJTW3ZhbHVlMl0sIGNvbmRpdGlvbnM6IDEsIGlubmVyOiAiIiB9OwogICAgICAgIHRva2VuLnByZXYgPSBwcmV2OwogICAgICAgIHRva2VuLnBhcmVucyA9IHN0YXRlLnBhcmVuczsKICAgICAgICB0b2tlbi5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQ7CiAgICAgICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/ICIoIiA6ICIiKSArIHRva2VuLm9wZW47CiAgICAgICAgaW5jcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICBwdXNoKHsgdHlwZTogdHlwZTIsIHZhbHVlOiB2YWx1ZTIsIG91dHB1dDogc3RhdGUub3V0cHV0ID8gIiIgOiBPTkVfQ0hBUiB9KTsKICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWU6IGFkdmFuY2UoKSwgb3V0cHV0IH0pOwogICAgICAgIGV4dGdsb2JzLnB1c2godG9rZW4pOwogICAgICB9OwogICAgICBjb25zdCBleHRnbG9iQ2xvc2UgPSAodG9rZW4pID0+IHsKICAgICAgICBsZXQgb3V0cHV0ID0gdG9rZW4uY2xvc2UgKyAob3B0cy5jYXB0dXJlID8gIikiIDogIiIpOwogICAgICAgIGxldCByZXN0OwogICAgICAgIGlmICh0b2tlbi50eXBlID09PSAibmVnYXRlIikgewogICAgICAgICAgbGV0IGV4dGdsb2JTdGFyID0gc3RhcjsKICAgICAgICAgIGlmICh0b2tlbi5pbm5lciAmJiB0b2tlbi5pbm5lci5sZW5ndGggPiAxICYmIHRva2VuLmlubmVyLmluY2x1ZGVzKCIvIikpIHsKICAgICAgICAgICAgZXh0Z2xvYlN0YXIgPSBnbG9ic3RhcihvcHRzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChleHRnbG9iU3RhciAhPT0gc3RhciB8fCBlb3MoKSB8fCAvXlwpKyQvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9rZW4uaW5uZXIuaW5jbHVkZXMoIioiKSAmJiAocmVzdCA9IHJlbWFpbmluZygpKSAmJiAvXlwuW15cXC8uXSskLy50ZXN0KHJlc3QpKSB7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwYXJzZShyZXN0LCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSkub3V0cHV0OwogICAgICAgICAgICBvdXRwdXQgPSB0b2tlbi5jbG9zZSA9IGApJHtleHByZXNzaW9ufSkke2V4dGdsb2JTdGFyfSlgOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRva2VuLnByZXYudHlwZSA9PT0gImJvcyIpIHsKICAgICAgICAgICAgc3RhdGUubmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9OwogICAgICBpZiAob3B0cy5mYXN0cGF0aHMgIT09IGZhbHNlICYmICEvKF5bKiFdfFsvKClbXF17fSJdKS8udGVzdChpbnB1dCkpIHsKICAgICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHsKICAgICAgICAgIGlmIChmaXJzdCA9PT0gIlxcIikgewogICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBtOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGZpcnN0ID09PSAiPyIpIHsKICAgICAgICAgICAgaWYgKGVzYykgewogICAgICAgICAgICAgIHJldHVybiBlc2MgKyBmaXJzdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICByZXR1cm4gcW1hcmtOb0RvdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUU1BUksucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIuIikgewogICAgICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIqIikgewogICAgICAgICAgICBpZiAoZXNjKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVzYyArIGZpcnN0ICsgKHJlc3QgPyBzdGFyIDogIiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdGFyOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGVzYyA/IG0gOiBgXFwke219YDsKICAgICAgICB9KTsKICAgICAgICBpZiAoYmFja3NsYXNoZXMgPT09IHRydWUpIHsKICAgICAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXC9nLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFwrL2csIChtKSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIG0ubGVuZ3RoICUgMiA9PT0gMCA/ICJcXFxcIiA6IG0gPyAiXFwiIDogIiI7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAob3V0cHV0ID09PSBpbnB1dCAmJiBvcHRzLmNvbnRhaW5zID09PSB0cnVlKSB7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBpbnB1dDsKICAgICAgICAgIHJldHVybiBzdGF0ZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUub3V0cHV0ID0gdXRpbHMud3JhcE91dHB1dChvdXRwdXQsIHN0YXRlLCBvcHRpb25zKTsKICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgIH0KICAgICAgd2hpbGUgKCFlb3MoKSkgewogICAgICAgIHZhbHVlID0gYWR2YW5jZSgpOwogICAgICAgIGlmICh2YWx1ZSA9PT0gIlwwIikgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gIlxcIikgewogICAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTsKICAgICAgICAgIGlmIChuZXh0ID09PSAiLyIgJiYgb3B0cy5iYXNoICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG5leHQgPT09ICIuIiB8fCBuZXh0ID09PSAiOyIpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5leHQpIHsKICAgICAgICAgICAgdmFsdWUgKz0gIlxcIjsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSAvXlxcKy8uZXhlYyhyZW1haW5pbmcoKSk7CiAgICAgICAgICBsZXQgc2xhc2hlcyA9IDA7CiAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0ubGVuZ3RoID4gMikgewogICAgICAgICAgICBzbGFzaGVzID0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgICBzdGF0ZS5pbmRleCArPSBzbGFzaGVzOwogICAgICAgICAgICBpZiAoc2xhc2hlcyAlIDIgIT09IDApIHsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXFwiOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YWx1ZSA9IGFkdmFuY2UoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbHVlICs9IGFkdmFuY2UoKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInRleHQiLCB2YWx1ZSB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA+IDAgJiYgKHZhbHVlICE9PSAiXSIgfHwgcHJldi52YWx1ZSA9PT0gIlsiIHx8IHByZXYudmFsdWUgPT09ICJbXiIpKSB7CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCAhPT0gZmFsc2UgJiYgdmFsdWUgPT09ICI6IikgewogICAgICAgICAgICBjb25zdCBpbm5lciA9IHByZXYudmFsdWUuc2xpY2UoMSk7CiAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcygiWyIpKSB7CiAgICAgICAgICAgICAgcHJldi5wb3NpeCA9IHRydWU7CiAgICAgICAgICAgICAgaWYgKGlubmVyLmluY2x1ZGVzKCI6IikpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHByZXYudmFsdWUubGFzdEluZGV4T2YoIlsiKTsKICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IHByZXYudmFsdWUuc2xpY2UoMCwgaWR4KTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3QyID0gcHJldi52YWx1ZS5zbGljZShpZHggKyAyKTsKICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3QyXTsKICAgICAgICAgICAgICAgIGlmIChwb3NpeCkgewogICAgICAgICAgICAgICAgICBwcmV2LnZhbHVlID0gcHJlICsgcG9zaXg7CiAgICAgICAgICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgaWYgKCFib3Mub3V0cHV0ICYmIHRva2Vucy5pbmRleE9mKHByZXYpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgYm9zLm91dHB1dCA9IE9ORV9DSEFSOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSAiWyIgJiYgcGVlaygpICE9PSAiOiIgfHwgdmFsdWUgPT09ICItIiAmJiBwZWVrKCkgPT09ICJdIikgewogICAgICAgICAgICB2YWx1ZSA9IGBcXCR7dmFsdWV9YDsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh2YWx1ZSA9PT0gIl0iICYmIChwcmV2LnZhbHVlID09PSAiWyIgfHwgcHJldi52YWx1ZSA9PT0gIlteIikpIHsKICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCA9PT0gdHJ1ZSAmJiB2YWx1ZSA9PT0gIiEiICYmIHByZXYudmFsdWUgPT09ICJbIikgewogICAgICAgICAgICB2YWx1ZSA9ICJeIjsKICAgICAgICAgIH0KICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICBhcHBlbmQoeyB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUucXVvdGVzID09PSAxICYmIHZhbHVlICE9PSAnIicpIHsKICAgICAgICAgIHZhbHVlID0gdXRpbHMuZXNjYXBlUmVnZXgodmFsdWUpOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gJyInKSB7CiAgICAgICAgICBzdGF0ZS5xdW90ZXMgPSBzdGF0ZS5xdW90ZXMgPT09IDEgPyAwIDogMTsKICAgICAgICAgIGlmIChvcHRzLmtlZXBRdW90ZXMgPT09IHRydWUpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKCIpIHsKICAgICAgICAgIGluY3JlbWVudCgicGFyZW5zIik7CiAgICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKSIpIHsKICAgICAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoIm9wZW5pbmciLCAiKCIpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGV4dGdsb2IgPSBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChleHRnbG9iICYmIHN0YXRlLnBhcmVucyA9PT0gZXh0Z2xvYi5wYXJlbnMgKyAxKSB7CiAgICAgICAgICAgIGV4dGdsb2JDbG9zZShleHRnbG9icy5wb3AoKSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJwYXJlbiIsIHZhbHVlLCBvdXRwdXQ6IHN0YXRlLnBhcmVucyA/ICIpIiA6ICJcXCkiIH0pOwogICAgICAgICAgZGVjcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJbIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8ICFyZW1haW5pbmcoKS5pbmNsdWRlcygiXSIpKSB7CiAgICAgICAgICAgIGlmIChvcHRzLm5vYnJhY2tldCAhPT0gdHJ1ZSAmJiBvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCJjbG9zaW5nIiwgIl0iKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbmNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImJyYWNrZXQiLCB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJdIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8IHByZXYgJiYgcHJldi50eXBlID09PSAiYnJhY2tldCIgJiYgcHJldi52YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogYFxcJHt2YWx1ZX1gIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigib3BlbmluZyIsICJbIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQ6IGBcXCR7dmFsdWV9YCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZWNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2LnZhbHVlLnNsaWNlKDEpOwogICAgICAgICAgaWYgKHByZXYucG9zaXggIT09IHRydWUgJiYgcHJldlZhbHVlWzBdID09PSAiXiIgJiYgIXByZXZWYWx1ZS5pbmNsdWRlcygiLyIpKSB7CiAgICAgICAgICAgIHZhbHVlID0gYC8ke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgYXBwZW5kKHsgdmFsdWUgfSk7CiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IGZhbHNlIHx8IHV0aWxzLmhhc1JlZ2V4Q2hhcnMocHJldlZhbHVlKSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTsKICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi52YWx1ZS5sZW5ndGgpOwogICAgICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkOwogICAgICAgICAgICBwcmV2LnZhbHVlID0gZXNjYXBlZDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlID0gYCgke2NhcHR1cmV9JHtlc2NhcGVkfXwke3ByZXYudmFsdWV9KWA7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi52YWx1ZTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ7IiAmJiBvcHRzLm5vYnJhY2UgIT09IHRydWUpIHsKICAgICAgICAgIGluY3JlbWVudCgiYnJhY2VzIik7CiAgICAgICAgICBjb25zdCBvcGVuID0gewogICAgICAgICAgICB0eXBlOiAiYnJhY2UiLAogICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgb3V0cHV0OiAiKCIsCiAgICAgICAgICAgIG91dHB1dEluZGV4OiBzdGF0ZS5vdXRwdXQubGVuZ3RoLAogICAgICAgICAgICB0b2tlbnNJbmRleDogc3RhdGUudG9rZW5zLmxlbmd0aAogICAgICAgICAgfTsKICAgICAgICAgIGJyYWNlcy5wdXNoKG9wZW4pOwogICAgICAgICAgcHVzaChvcGVuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ9IikgewogICAgICAgICAgY29uc3QgYnJhY2UgPSBicmFjZXNbYnJhY2VzLmxlbmd0aCAtIDFdOwogICAgICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgbGV0IG91dHB1dCA9ICIpIjsKICAgICAgICAgIGlmIChicmFjZS5kb3RzID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IGFyciA9IHRva2Vucy5zbGljZSgpOwogICAgICAgICAgICBjb25zdCByYW5nZSA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgdG9rZW5zLnBvcCgpOwogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSA9PT0gImJyYWNlIikgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSAhPT0gImRvdHMiKSB7CiAgICAgICAgICAgICAgICByYW5nZS51bnNoaWZ0KGFycltpXS52YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIG91dHB1dCA9IGV4cGFuZFJhbmdlKHJhbmdlLCBvcHRzKTsKICAgICAgICAgICAgc3RhdGUuYmFja3RyYWNrID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChicmFjZS5jb21tYSAhPT0gdHJ1ZSAmJiBicmFjZS5kb3RzICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IG91dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCBicmFjZS5vdXRwdXRJbmRleCk7CiAgICAgICAgICAgIGNvbnN0IHRva3MgPSBzdGF0ZS50b2tlbnMuc2xpY2UoYnJhY2UudG9rZW5zSW5kZXgpOwogICAgICAgICAgICBicmFjZS52YWx1ZSA9IGJyYWNlLm91dHB1dCA9ICJcXHsiOwogICAgICAgICAgICB2YWx1ZSA9IG91dHB1dCA9ICJcXH0iOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBvdXQ7CiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB0b2tzKSB7CiAgICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHQub3V0cHV0IHx8IHQudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAiYnJhY2UiLCB2YWx1ZSwgb3V0cHV0IH0pOwogICAgICAgICAgZGVjcmVtZW50KCJicmFjZXMiKTsKICAgICAgICAgIGJyYWNlcy5wb3AoKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ8IikgewogICAgICAgICAgaWYgKGV4dGdsb2JzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV0uY29uZGl0aW9ucysrOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiLCIpIHsKICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChicmFjZSAmJiBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA9PT0gImJyYWNlcyIpIHsKICAgICAgICAgICAgYnJhY2UuY29tbWEgPSB0cnVlOwogICAgICAgICAgICBvdXRwdXQgPSAifCI7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImNvbW1hIiwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIvIikgewogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImRvdCIgJiYgc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGF0ZS5zdGFydCA9IHN0YXRlLmluZGV4ICsgMTsKICAgICAgICAgICAgc3RhdGUuY29uc3VtZWQgPSAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gIiI7CiAgICAgICAgICAgIHRva2Vucy5wb3AoKTsKICAgICAgICAgICAgcHJldiA9IGJvczsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInNsYXNoIiwgdmFsdWUsIG91dHB1dDogU0xBU0hfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIuIikgewogICAgICAgICAgaWYgKHN0YXRlLmJyYWNlcyA+IDAgJiYgcHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gIi4iKSBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMOwogICAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07CiAgICAgICAgICAgIHByZXYudHlwZSA9ICJkb3RzIjsKICAgICAgICAgICAgcHJldi5vdXRwdXQgKz0gdmFsdWU7CiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICAgIGJyYWNlLmRvdHMgPSB0cnVlOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFjZXMgKyBzdGF0ZS5wYXJlbnMgPT09IDAgJiYgcHJldi50eXBlICE9PSAiYm9zIiAmJiBwcmV2LnR5cGUgIT09ICJzbGFzaCIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogRE9UX0xJVEVSQUwgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJkb3QiLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICI/IikgewogICAgICAgICAgY29uc3QgaXNHcm91cCA9IHByZXYgJiYgcHJldi52YWx1ZSA9PT0gIigiOwogICAgICAgICAgaWYgKCFpc0dyb3VwICYmIG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicW1hcmsiLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAicGFyZW4iKSB7CiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBwZWVrKCk7CiAgICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgICAgaWYgKHByZXYudmFsdWUgPT09ICIoIiAmJiAhL1shPTw6XS8udGVzdChuZXh0KSB8fCBuZXh0ID09PSAiPCIgJiYgIS88KFshPV18XHcrPikvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgICAgb3V0cHV0ID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMuZG90ICE9PSB0cnVlICYmIChwcmV2LnR5cGUgPT09ICJzbGFzaCIgfHwgcHJldi50eXBlID09PSAiYm9zIikpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJxbWFyayIsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLX05PX0RPVCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInFtYXJrIiwgdmFsdWUsIG91dHB1dDogUU1BUksgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiISIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIikgewogICAgICAgICAgICBpZiAocGVlaygyKSAhPT0gIj8iIHx8ICEvWyE9PDpdLy50ZXN0KHBlZWsoMykpKSB7CiAgICAgICAgICAgICAgZXh0Z2xvYk9wZW4oIm5lZ2F0ZSIsIHZhbHVlKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgc3RhdGUuaW5kZXggPT09IDApIHsKICAgICAgICAgICAgbmVnYXRlKCk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIrIikgewogICAgICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicGx1cyIsIHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LnZhbHVlID09PSAiKCIgfHwgb3B0cy5yZWdleCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJwbHVzIiwgdmFsdWUsIG91dHB1dDogUExVU19MSVRFUkFMIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2LnR5cGUgPT09ICJicmFja2V0IiB8fCBwcmV2LnR5cGUgPT09ICJwYXJlbiIgfHwgcHJldi50eXBlID09PSAiYnJhY2UiKSB8fCBzdGF0ZS5wYXJlbnMgPiAwKSB7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiQCIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIiAmJiBwZWVrKDIpICE9PSAiPyIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJhdCIsIGV4dGdsb2I6IHRydWUsIHZhbHVlLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSAhPT0gIioiKSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09ICIkIiB8fCB2YWx1ZSA9PT0gIl4iKSB7CiAgICAgICAgICAgIHZhbHVlID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUy5leGVjKHJlbWFpbmluZygpKTsKICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICB2YWx1ZSArPSBtYXRjaFswXTsKICAgICAgICAgICAgc3RhdGUuaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImdsb2JzdGFyIiB8fCBwcmV2LnN0YXIgPT09IHRydWUpKSB7CiAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICBwcmV2LnN0YXIgPSB0cnVlOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7CiAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBsZXQgcmVzdCA9IHJlbWFpbmluZygpOwogICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiAvXlwoW14/XS8udGVzdChyZXN0KSkgewogICAgICAgICAgZXh0Z2xvYk9wZW4oInN0YXIiLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gInN0YXIiKSB7CiAgICAgICAgICBpZiAob3B0cy5ub2dsb2JzdGFyID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHByaW9yID0gcHJldi5wcmV2OwogICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJpb3IucHJldjsKICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBwcmlvci50eXBlID09PSAic2xhc2giIHx8IHByaW9yLnR5cGUgPT09ICJib3MiOwogICAgICAgICAgY29uc3QgYWZ0ZXJTdGFyID0gYmVmb3JlICYmIChiZWZvcmUudHlwZSA9PT0gInN0YXIiIHx8IGJlZm9yZS50eXBlID09PSAiZ2xvYnN0YXIiKTsKICAgICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUgJiYgKCFpc1N0YXJ0IHx8IHJlc3RbMF0gJiYgcmVzdFswXSAhPT0gIi8iKSkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAocHJpb3IudHlwZSA9PT0gImNvbW1hIiB8fCBwcmlvci50eXBlID09PSAiYnJhY2UiKTsKICAgICAgICAgIGNvbnN0IGlzRXh0Z2xvYiA9IGV4dGdsb2JzLmxlbmd0aCAmJiAocHJpb3IudHlwZSA9PT0gInBpcGUiIHx8IHByaW9yLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKCFpc1N0YXJ0ICYmIHByaW9yLnR5cGUgIT09ICJwYXJlbiIgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICB3aGlsZSAocmVzdC5zbGljZSgwLCAzKSA9PT0gIi8qKiIpIHsKICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBpbnB1dFtzdGF0ZS5pbmRleCArIDRdOwogICAgICAgICAgICBpZiAoYWZ0ZXIgJiYgYWZ0ZXIgIT09ICIvIikgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3QgPSByZXN0LnNsaWNlKDMpOwogICAgICAgICAgICBjb25zdW1lKCIvKioiLCAzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiBlb3MoKSkgewogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJpb3IudHlwZSA9PT0gInNsYXNoIiAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICJib3MiICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpICsgKG9wdHMuc3RyaWN0U2xhc2hlcyA/ICIpIiA6ICJ8JCkiKTsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAic2xhc2giICYmIHByaW9yLnByZXYudHlwZSAhPT0gImJvcyIgJiYgcmVzdFswXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHJlc3RbMV0gIT09IHZvaWQgMCA/ICJ8JCIgOiAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGAke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH18JHtTTEFTSF9MSVRFUkFMfSR7ZW5kfSlgOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAic2xhc2giLCB2YWx1ZTogIi8iLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiByZXN0WzBdID09PSAiLyIpIHsKICAgICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9fCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSlgOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJzbGFzaCIsIHZhbHVlOiAiLyIsIG91dHB1dDogIiIgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgY29uc3VtZSh2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdG9rZW4gPSB7IHR5cGU6ICJzdGFyIiwgdmFsdWUsIG91dHB1dDogc3RhciB9OwogICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHsKICAgICAgICAgIHRva2VuLm91dHB1dCA9ICIuKj8iOwogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImJvcyIgfHwgcHJldi50eXBlID09PSAic2xhc2giKSB7CiAgICAgICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0OwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh0b2tlbik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImJyYWNrZXQiIHx8IHByZXYudHlwZSA9PT0gInBhcmVuIikgJiYgb3B0cy5yZWdleCA9PT0gdHJ1ZSkgewogICAgICAgICAgdG9rZW4ub3V0cHV0ID0gdmFsdWU7CiAgICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0IHx8IHByZXYudHlwZSA9PT0gInNsYXNoIiB8fCBwcmV2LnR5cGUgPT09ICJkb3QiKSB7CiAgICAgICAgICBpZiAocHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gTk9fRE9UX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RfU0xBU0g7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IG5vZG90OwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBub2RvdDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWVrKCkgIT09ICIqIikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gT05FX0NIQVI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE9ORV9DSEFSOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUuYnJhY2tldHMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJdIikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAiWyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2tldHMiKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUucGFyZW5zID4gMCkgewogICAgICAgIGlmIChvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoImNsb3NpbmciLCAiKSIpKTsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy5lc2NhcGVMYXN0KHN0YXRlLm91dHB1dCwgIigiKTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9CiAgICAgIHdoaWxlIChzdGF0ZS5icmFjZXMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJ9IikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAieyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2VzIik7CiAgICAgIH0KICAgICAgaWYgKG9wdHMuc3RyaWN0U2xhc2hlcyAhPT0gdHJ1ZSAmJiAocHJldi50eXBlID09PSAic3RhciIgfHwgcHJldi50eXBlID09PSAiYnJhY2tldCIpKSB7CiAgICAgICAgcHVzaCh7IHR5cGU6ICJtYXliZV9zbGFzaCIsIHZhbHVlOiAiIiwgb3V0cHV0OiBgJHtTTEFTSF9MSVRFUkFMfT9gIH0pOwogICAgICB9CiAgICAgIGlmIChzdGF0ZS5iYWNrdHJhY2sgPT09IHRydWUpIHsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSAiIjsKICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHN0YXRlLnRva2VucykgewogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7CiAgICAgICAgICBpZiAodG9rZW4uc3VmZml4KSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5zdWZmaXg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBzdGF0ZTsKICAgIH07CiAgICBwYXJzZS5mYXN0cGF0aHMgPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4ub3B0aW9ucyB9OwogICAgICBjb25zdCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09ICJudW1iZXIiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDsKICAgICAgY29uc3QgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICBpZiAobGVuID4gbWF4KSB7CiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBJbnB1dCBsZW5ndGg6ICR7bGVufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke21heH1gKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBTTEFTSF9MSVRFUkFMLAogICAgICAgIE9ORV9DSEFSLAogICAgICAgIERPVFNfU0xBU0gsCiAgICAgICAgTk9fRE9ULAogICAgICAgIE5PX0RPVFMsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBTVEFSLAogICAgICAgIFNUQVJUX0FOQ0hPUgogICAgICB9ID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gTk9fRE9UUyA6IE5PX0RPVDsKICAgICAgY29uc3Qgc2xhc2hEb3QgPSBvcHRzLmRvdCA/IE5PX0RPVFNfU0xBU0ggOiBOT19ET1Q7CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IHN0YXRlID0geyBuZWdhdGVkOiBmYWxzZSwgcHJlZml4OiAiIiB9OwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/ICIuKj8iIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIGlmIChvcHRzMi5ub2dsb2JzdGFyID09PSB0cnVlKSByZXR1cm4gc3RhcjsKICAgICAgICByZXR1cm4gYCgke2NhcHR1cmV9KD86KD8hJHtTVEFSVF9BTkNIT1J9JHtvcHRzMi5kb3QgPyBET1RTX1NMQVNIIDogRE9UX0xJVEVSQUx9KS4pKj8pYDsKICAgICAgfTsKICAgICAgY29uc3QgY3JlYXRlID0gKHN0cjIpID0+IHsKICAgICAgICBzd2l0Y2ggKHN0cjIpIHsKICAgICAgICAgIGNhc2UgIioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBjYXNlICIqLioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIiovKiI6CiAgICAgICAgICAgIHJldHVybiBgJHtub2RvdH0ke3N0YXJ9JHtTTEFTSF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzbGFzaERvdH0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIioqIjoKICAgICAgICAgICAgcmV0dXJuIG5vZG90ICsgZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBjYXNlICIqKi8qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovKi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke3N0YXJ9JHtET1RfTElURVJBTH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovLioiOgogICAgICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gL14oLio/KVwuKFx3KykkLy5leGVjKHN0cjIpOwogICAgICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZTIgPSBjcmVhdGUobWF0Y2hbMV0pOwogICAgICAgICAgICBpZiAoIXNvdXJjZTIpIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTIgKyBET1RfTElURVJBTCArIG1hdGNoWzJdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgY29uc3Qgb3V0cHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7CiAgICAgIGxldCBzb3VyY2UgPSBjcmVhdGUob3V0cHV0KTsKICAgICAgaWYgKHNvdXJjZSAmJiBvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUpIHsKICAgICAgICBzb3VyY2UgKz0gYCR7U0xBU0hfTElURVJBTH0/YDsKICAgICAgfQogICAgICByZXR1cm4gc291cmNlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHBhcnNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BpY29tYXRjaC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9waWNvbWF0Y2guanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2NhbiA9IHJlcXVpcmVfc2NhbjIoKTsKICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2UoKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICB2YXIgY29uc3RhbnRzID0gcmVxdWlyZV9jb25zdGFudHMoKTsKICAgIHZhciBpc09iamVjdDIgPSAodmFsKSA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIHZhciBwaWNvbWF0Y2ggPSAoZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShnbG9iKSkgewogICAgICAgIGNvbnN0IGZucyA9IGdsb2IubWFwKChpbnB1dCkgPT4gcGljb21hdGNoKGlucHV0LCBvcHRpb25zLCByZXR1cm5TdGF0ZSkpOwogICAgICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IChzdHIyKSA9PiB7CiAgICAgICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRlMiA9IGlzTWF0Y2goc3RyMik7CiAgICAgICAgICAgIGlmIChzdGF0ZTIpIHJldHVybiBzdGF0ZTI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gYXJyYXlNYXRjaGVyOwogICAgICB9CiAgICAgIGNvbnN0IGlzU3RhdGUgPSBpc09iamVjdDIoZ2xvYikgJiYgZ2xvYi50b2tlbnMgJiYgZ2xvYi5pbnB1dDsKICAgICAgaWYgKGdsb2IgPT09ICIiIHx8IHR5cGVvZiBnbG9iICE9PSAic3RyaW5nIiAmJiAhaXNTdGF0ZSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHBvc2l4ID0gb3B0cy53aW5kb3dzOwogICAgICBjb25zdCByZWdleCA9IGlzU3RhdGUgPyBwaWNvbWF0Y2guY29tcGlsZVJlKGdsb2IsIG9wdGlvbnMpIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zLCBmYWxzZSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7CiAgICAgIGRlbGV0ZSByZWdleC5zdGF0ZTsKICAgICAgbGV0IGlzSWdub3JlZCA9ICgpID0+IGZhbHNlOwogICAgICBpZiAob3B0cy5pZ25vcmUpIHsKICAgICAgICBjb25zdCBpZ25vcmVPcHRzID0geyAuLi5vcHRpb25zLCBpZ25vcmU6IG51bGwsIG9uTWF0Y2g6IG51bGwsIG9uUmVzdWx0OiBudWxsIH07CiAgICAgICAgaXNJZ25vcmVkID0gcGljb21hdGNoKG9wdHMuaWdub3JlLCBpZ25vcmVPcHRzLCByZXR1cm5TdGF0ZSk7CiAgICAgIH0KICAgICAgY29uc3QgbWF0Y2hlciA9IChpbnB1dCwgcmV0dXJuT2JqZWN0ID0gZmFsc2UpID0+IHsKICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIG1hdGNoLCBvdXRwdXQgfSA9IHBpY29tYXRjaC50ZXN0KGlucHV0LCByZWdleCwgb3B0aW9ucywgeyBnbG9iLCBwb3NpeCB9KTsKICAgICAgICBjb25zdCByZXN1bHQgPSB7IGdsb2IsIHN0YXRlLCByZWdleCwgcG9zaXgsIGlucHV0LCBvdXRwdXQsIG1hdGNoLCBpc01hdGNoIH07CiAgICAgICAgaWYgKHR5cGVvZiBvcHRzLm9uUmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBvcHRzLm9uUmVzdWx0KHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc01hdGNoID09PSBmYWxzZSkgewogICAgICAgICAgcmVzdWx0LmlzTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSWdub3JlZChpbnB1dCkpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygb3B0cy5vbklnbm9yZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvcHRzLm9uSWdub3JlKHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlOwogICAgICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiB0cnVlOwogICAgICB9OwogICAgICBpZiAocmV0dXJuU3RhdGUpIHsKICAgICAgICBtYXRjaGVyLnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hdGNoZXI7CiAgICB9OwogICAgcGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCB7IGdsb2IsIHBvc2l4IH0gPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nIik7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ID09PSAiIikgewogICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBvdXRwdXQ6ICIiIH07CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdHMuZm9ybWF0IHx8IChwb3NpeCA/IHV0aWxzLnRvUG9zaXhTbGFzaGVzIDogbnVsbCk7CiAgICAgIGxldCBtYXRjaCA9IGlucHV0ID09PSBnbG9iOwogICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggJiYgZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7CiAgICAgICAgb3V0cHV0ID0gZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICAgIG1hdGNoID0gb3V0cHV0ID09PSBnbG9iOwogICAgICB9CiAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UgfHwgb3B0cy5jYXB0dXJlID09PSB0cnVlKSB7CiAgICAgICAgaWYgKG9wdHMubWF0Y2hCYXNlID09PSB0cnVlIHx8IG9wdHMuYmFzZW5hbWUgPT09IHRydWUpIHsKICAgICAgICAgIG1hdGNoID0gcGljb21hdGNoLm1hdGNoQmFzZShpbnB1dCwgcmVnZXgsIG9wdGlvbnMsIHBvc2l4KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWF0Y2ggPSByZWdleC5leGVjKG91dHB1dCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGlzTWF0Y2g6IEJvb2xlYW4obWF0Y2gpLCBtYXRjaCwgb3V0cHV0IH07CiAgICB9OwogICAgcGljb21hdGNoLm1hdGNoQmFzZSA9IChpbnB1dCwgZ2xvYiwgb3B0aW9ucykgPT4gewogICAgICBjb25zdCByZWdleCA9IGdsb2IgaW5zdGFuY2VvZiBSZWdFeHAgPyBnbG9iIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zKTsKICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodXRpbHMuYmFzZW5hbWUoaW5wdXQpKTsKICAgIH07CiAgICBwaWNvbWF0Y2guaXNNYXRjaCA9IChzdHIyLCBwYXR0ZXJucywgb3B0aW9ucykgPT4gcGljb21hdGNoKHBhdHRlcm5zLCBvcHRpb25zKShzdHIyKTsKICAgIHBpY29tYXRjaC5wYXJzZSA9IChwYXR0ZXJuLCBvcHRpb25zKSA9PiB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSByZXR1cm4gcGF0dGVybi5tYXAoKHApID0+IHBpY29tYXRjaC5wYXJzZShwLCBvcHRpb25zKSk7CiAgICAgIHJldHVybiBwYXJzZShwYXR0ZXJuLCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSk7CiAgICB9OwogICAgcGljb21hdGNoLnNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHNjYW4oaW5wdXQsIG9wdGlvbnMpOwogICAgcGljb21hdGNoLmNvbXBpbGVSZSA9IChzdGF0ZSwgb3B0aW9ucywgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKHJldHVybk91dHB1dCA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBzdGF0ZS5vdXRwdXQ7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHByZXBlbmQgPSBvcHRzLmNvbnRhaW5zID8gIiIgOiAiXiI7CiAgICAgIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyAiIiA6ICIkIjsKICAgICAgbGV0IHNvdXJjZSA9IGAke3ByZXBlbmR9KD86JHtzdGF0ZS5vdXRwdXR9KSR7YXBwZW5kfWA7CiAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7CiAgICAgICAgc291cmNlID0gYF4oPyEke3NvdXJjZX0pLiokYDsKICAgICAgfQogICAgICBjb25zdCByZWdleCA9IHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgIGlmIChyZXR1cm5TdGF0ZSA9PT0gdHJ1ZSkgewogICAgICAgIHJlZ2V4LnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlZ2V4OwogICAgfTsKICAgIHBpY29tYXRjaC5tYWtlUmUgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSwgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgbGV0IHBhcnNlZCA9IHsgbmVnYXRlZDogZmFsc2UsIGZhc3RwYXRoczogdHJ1ZSB9OwogICAgICBpZiAob3B0aW9ucy5mYXN0cGF0aHMgIT09IGZhbHNlICYmIChpbnB1dFswXSA9PT0gIi4iIHx8IGlucHV0WzBdID09PSAiKiIpKSB7CiAgICAgICAgcGFyc2VkLm91dHB1dCA9IHBhcnNlLmZhc3RwYXRocyhpbnB1dCwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgaWYgKCFwYXJzZWQub3V0cHV0KSB7CiAgICAgICAgcGFyc2VkID0gcGFyc2UoaW5wdXQsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIHJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7CiAgICB9OwogICAgcGljb21hdGNoLnRvUmVnZXggPSAoc291cmNlLCBvcHRpb25zKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoc291cmNlLCBvcHRzLmZsYWdzIHx8IChvcHRzLm5vY2FzZSA/ICJpIiA6ICIiKSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVidWcgPT09IHRydWUpIHRocm93IGVycjsKICAgICAgICByZXR1cm4gLyReLzsKICAgICAgfQogICAgfTsKICAgIHBpY29tYXRjaC5jb25zdGFudHMgPSBjb25zdGFudHM7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwaWNvbWF0Y2g7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2gyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBwaWNvID0gcmVxdWlyZV9waWNvbWF0Y2goKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICBmdW5jdGlvbiBwaWNvbWF0Y2goZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgewogICAgICBpZiAob3B0aW9ucyAmJiAob3B0aW9ucy53aW5kb3dzID09PSBudWxsIHx8IG9wdGlvbnMud2luZG93cyA9PT0gdm9pZCAwKSkgewogICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIHdpbmRvd3M6IHV0aWxzLmlzV2luZG93cygpIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHBpY28oZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUpOwogICAgfQogICAgT2JqZWN0LmFzc2lnbihwaWNvbWF0Y2gsIHBpY28pOwogICAgbW9kdWxlMi5leHBvcnRzID0gcGljb21hdGNoOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBpY29tYXRjaF8xID0gcmVxdWlyZV9waWNvbWF0Y2gyKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBQYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9wYXR0ZXJucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIGFkZFBhdHRlcm4ocGF0dGVybiwgcmVwbGFjZW1lbnRGbikgewogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gQXJyYXkuaXNBcnJheShwYXR0ZXJuKSA/IHBhdHRlcm4gOiBbcGF0dGVybl07CiAgICAgICAgZm9yIChjb25zdCBnbG9iIG9mIHBhdHRlcm5zKSB7CiAgICAgICAgICBjb25zdCB7IG91dHB1dCB9ID0gKDAsIHBpY29tYXRjaF8xLnBhcnNlKShnbG9iKTsKICAgICAgICAgIHRoaXMuX3BhdHRlcm5zLnNldChuZXcgUmVnRXhwKGBeJHtvdXRwdXR9JGApLCByZXBsYWNlbWVudEZuKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3Jlc29sdmUocGF0aCkgewogICAgICAgIGxldCBuZXdQYXRoID0gcGF0aDsKICAgICAgICB0aGlzLl9wYXR0ZXJucy5mb3JFYWNoKChmbiwgcmUpID0+IHsKICAgICAgICAgIGlmIChyZS50ZXN0KHBhdGgpKSB7CiAgICAgICAgICAgIG5ld1BhdGggPSBmbihuZXdQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3UGF0aDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdHRlcm5NYXRjaGluZ0hvc3QgPSBQYXR0ZXJuTWF0Y2hpbmdIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3JlY29yZC5qcwp2YXIgcmVxdWlyZV9yZWNvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZWNvcmQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIG1lbW9yeV8xID0gcmVxdWlyZV9tZW1vcnkoKTsKICAgIHZhciBDb3JkSG9zdCA9IGNsYXNzIF9Db3JkSG9zdCBleHRlbmRzIG1lbW9yeV8xLlNpbXBsZU1lbW9yeUhvc3QgewogICAgICBfYmFjazsKICAgICAgX2ZpbGVzVG9DcmVhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2ZpbGVzVG9EZWxldGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb092ZXJ3cml0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9iYWNrID0gX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGJhY2tlbmQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgc3luY2hyb25vdXM6IHRoaXMuX2JhY2suY2FwYWJpbGl0aWVzLnN5bmNocm9ub3VzCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgY29weSBvZiB0aGlzIGhvc3QsIGluY2x1ZGluZyBhbGwgYWN0aW9ucyBtYWRlLgogICAgICAgKiBAcmV0dXJucyB7Q29yZEhvc3R9IFRoZSBjYXJib24gY29weS4KICAgICAgICovCiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IGRvbGx5ID0gbmV3IF9Db3JkSG9zdCh0aGlzLl9iYWNrKTsKICAgICAgICBkb2xseS5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICBkb2xseS5fZmlsZXNUb0NyZWF0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0NyZWF0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9SZW5hbWUgPSBuZXcgTWFwKHRoaXMuX2ZpbGVzVG9SZW5hbWUpOwogICAgICAgIGRvbGx5Ll9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gbmV3IE1hcCh0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0KTsKICAgICAgICBkb2xseS5fZmlsZXNUb0RlbGV0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0RlbGV0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9PdmVyd3JpdGUgPSBuZXcgU2V0KHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUpOwogICAgICAgIHJldHVybiBkb2xseTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tbWl0IHRoZSBjaGFuZ2VzIHJlY29yZGVkIHRvIGEgSG9zdC4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBob3N0IGRvZXMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUKICAgICAgICogYXMgdGhlIGhvc3QgdGhhdCB3YXMgdXNlZCBmb3IgYmFja2VuZCAoY291bGQgYmUgdGhlIHNhbWUgaG9zdCkuCiAgICAgICAqIEBwYXJhbSBob3N0IFRoZSBob3N0IHRvIGNyZWF0ZS9kZWxldGUvcmVuYW1lL292ZXJ3cml0ZSBmaWxlcyB0by4KICAgICAgICogQHBhcmFtIGZvcmNlIFdoZXRoZXIgdG8gc2tpcCBleGlzdGVuY2UgY2hlY2tzIHdoZW4gY3JlYXRpbmcvb3ZlcndyaXRpbmcuIFRoaXMgaXMKICAgICAgICogICBmYXN0ZXIgYnV0IG1pZ2h0IGxlYWQgdG8gaW5jb3JyZWN0IHN0YXRlcy4gQmVjYXVzZSBIb3N0cyBuYXRpdmVseSBkb24ndCBzdXBwb3J0IGNyZWF0aW9uCiAgICAgICAqICAgdmVyc3VzIG92ZXJ3cml0aW5nIChpdCdzIG9ubHkgd3JpdGluZyksIHdlIGNoZWNrIGZvciBleGlzdGVuY2UgYmVmb3JlIGNvbXBsZXRpbmcgYSByZXF1ZXN0LgogICAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gZG9uZSwgb3IgZXJyb3IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KICAgICAgICovCiAgICAgIGNvbW1pdChob3N0LCBmb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkodGhpcy5yZWNvcmRzKCkpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChyZWNvcmQpID0+IHsKICAgICAgICAgIHN3aXRjaCAocmVjb3JkLmtpbmQpIHsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5kZWxldGUocmVjb3JkLnBhdGgpOwogICAgICAgICAgICBjYXNlICJyZW5hbWUiOgogICAgICAgICAgICAgIHJldHVybiBob3N0LnJlbmFtZShyZWNvcmQuZnJvbSwgcmVjb3JkLnRvKTsKICAgICAgICAgICAgY2FzZSAiY3JlYXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJiYgIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHJlY29yZC5wYXRoKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXR1cm4gaG9zdC53cml0ZShyZWNvcmQucGF0aCwgcmVjb3JkLmNvbnRlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmICghZXhpc3RzICYmICFmb3JjZSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQucGF0aCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGUocmVjb3JkLnBhdGgsIHJlY29yZC5jb250ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEucmVkdWNlKSgoKSA9PiB7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHJlY29yZHMoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIC4uLlsuLi50aGlzLl9maWxlc1RvRGVsZXRlLnZhbHVlcygpXS5tYXAoKHBhdGgpID0+ICh7CiAgICAgICAgICAgIGtpbmQ6ICJkZWxldGUiLAogICAgICAgICAgICBwYXRoCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb1JlbmFtZS5lbnRyaWVzKCldLm1hcCgoW2Zyb20sIHRvXSkgPT4gKHsKICAgICAgICAgICAga2luZDogInJlbmFtZSIsCiAgICAgICAgICAgIGZyb20sCiAgICAgICAgICAgIHRvCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb0NyZWF0ZS52YWx1ZXMoKV0ubWFwKChwYXRoKSA9PiAoewogICAgICAgICAgICBraW5kOiAiY3JlYXRlIiwKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVhZChwYXRoKQogICAgICAgICAgfSkpLAogICAgICAgICAgLi4uWy4uLnRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUudmFsdWVzKCldLm1hcCgocGF0aCkgPT4gKHsKICAgICAgICAgICAga2luZDogIm92ZXJ3cml0ZSIsCiAgICAgICAgICAgIHBhdGgsCiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3JlYWQocGF0aCkKICAgICAgICAgIH0pKQogICAgICAgIF07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNwZWNpYWxpemVkIHZlcnNpb24gb2Yge0BsaW5rIENvcmRIb3N0I3dyaXRlfSB3aGljaCBmb3JjZXMgdGhlIGNyZWF0aW9uIG9mIGEgZmlsZSB3aGV0aGVyIGl0CiAgICAgICAqIGV4aXN0cyBvciBub3QuCiAgICAgICAqIEBwYXJhbSB7fSBwYXRoCiAgICAgICAqIEBwYXJhbSB7RmlsZUJ1ZmZlcn0gY29udGVudAogICAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn0KICAgICAgICovCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgaWYgKHN1cGVyLl9leGlzdHMocGF0aCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuc3dpdGNoTWFwKSgoaXNEaXIpID0+IHsKICAgICAgICAgIGlmIChpc0RpcikgewogICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0aGlzLmV4aXN0cyhwYXRoKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgIGlmICghZXhpc3RzKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgaWYgKGV4aXN0cykgewogICAgICAgICAgICBpZiAodGhpcy53aWxsUmVuYW1lKHBhdGgpIHx8IHRoaXMud2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhwYXRoKSkgewogICAgICAgICAgcmV0dXJuIHN1cGVyLnJlYWQocGF0aCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZXhpc3RzKHBhdGgpKSB7CiAgICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChwYXRoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG1heWJlT3JpZ2luID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQocGF0aCk7CiAgICAgICAgICAgIGlmIChtYXliZU9yaWdpbikgewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWVSZXZlcnQuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZGVsZXRlKG1heWJlT3JpZ2luKTsKICAgICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChtYXliZU9yaWdpbik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLlVua25vd25FeGNlcHRpb24oYFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGF0aDogJHtKU09OLnN0cmluZ2lmeShwYXRoKX0uYCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYmFjay5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgICBpZiAoZXhpc3RzKSB7CiAgICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5hZGQocGF0aCk7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5leGlzdHModG8pLCB0aGlzLmV4aXN0cyhmcm9tKSkucGlwZSgoMCwgcnhqc18xLnRvQXJyYXkpKCksICgwLCByeGpzXzEuc3dpdGNoTWFwKSgoW2V4aXN0VG8sIGV4aXN0RnJvbV0pID0+IHsKICAgICAgICAgIGlmICghZXhpc3RGcm9tKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGZyb20pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmcm9tID09PSB0bykgewogICAgICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGV4aXN0VG8pIHsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24odG8pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnJlbmFtZShmcm9tLCB0byksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoeCkgPT4gewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuYWRkKHRvKTsKICAgICAgICAgICAgICB4LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyh0bykpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5kZWxldGUodG8pOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGZyb20pLnBpcGUoKDAsIHJ4anNfMS5tYXApKChjb250ZW50KSA9PiB0aGlzLl93cml0ZSh0bywgY29udGVudCkpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG1heWJlVG8xID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAobWF5YmVUbzEpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5kZWxldGUobWF5YmVUbzEpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0LmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgZnJvbSA9IG1heWJlVG8xOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5zZXQoZnJvbSwgdG8pOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5zZXQodG8sIGZyb20pOwogICAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhmcm9tKSkgewogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQoZnJvbSkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGNvbnRlbnQpID0+IHN1cGVyLndyaXRlKHRvLCBjb250ZW50KSkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKHN1cGVyLmxpc3QocGF0aCksIHRoaXMuX2JhY2subGlzdChwYXRoKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKGxpc3QsIGN1cnIpID0+IHsKICAgICAgICAgIGN1cnIuZm9yRWFjaCgoZWxlbSkgPT4gbGlzdC5hZGQoZWxlbSkpOwogICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSksICgwLCByeGpzXzEubWFwKSgoc2V0MikgPT4gWy4uLnNldDJdKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gKDAsIHJ4anNfMS5vZikodHJ1ZSkgOiB0aGlzLndpbGxEZWxldGUocGF0aCkgfHwgdGhpcy53aWxsUmVuYW1lKHBhdGgpID8gKDAsIHJ4anNfMS5vZikoZmFsc2UpIDogdGhpcy5fYmFjay5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5pc0RpcmVjdG9yeShwYXRoKSA6IHRoaXMuX2JhY2suaXNEaXJlY3RvcnkocGF0aCk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gc3VwZXIuaXNGaWxlKHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKGZhbHNlKSA6IHRoaXMuX2JhY2suaXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIHN0YXQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5zdGF0KHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKG51bGwpIDogdGhpcy5fYmFjay5zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIHdhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICB3aWxsQ3JlYXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbE92ZXJ3cml0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpOwogICAgICB9CiAgICAgIHdpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyhwYXRoKTsKICAgICAgfQogICAgICB3aWxsUmVuYW1lKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb1JlbmFtZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbFJlbmFtZVRvKHBhdGgsIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZ2V0KHBhdGgpID09PSB0bzsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gQ29yZEhvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcwp2YXIgcmVxdWlyZV9zYWZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2FmZVJlYWRvbmx5SG9zdCA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFNhZmVSZWFkb25seUhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShbXSkpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikoZmFsc2UpKSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNGaWxlKHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShmYWxzZSkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0cy4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0ICYmIG1heWJlU3RhdC5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikobnVsbCkpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNhZmVSZWFkb25seUhvc3QgPSBTYWZlUmVhZG9ubHlIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zY29wZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBTY29wZWRIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgX3Jvb3QgPSBwYXRoXzEuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICBzdXBlcihkZWxlZ2F0ZSk7CiAgICAgICAgdGhpcy5fcm9vdCA9IF9yb290OwogICAgICB9CiAgICAgIF9yZXNvbHZlKHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHBhdGhfMS5qb2luKSh0aGlzLl9yb290LCBwYXRoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSBTY29wZWRIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzCnZhciByZXF1aXJlX2hvc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGVzdCA9IHZvaWQgMDsKICAgIHZhciB0ZXN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdGVzdCgpKTsKICAgIGV4cG9ydHMyLnRlc3QgPSB0ZXN0OwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYWxpYXMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYnVmZmVyMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jcmVhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW1wdHkyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbWVtb3J5KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BhdHRlcm4yKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3JlY29yZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zYWZlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Njb3BlZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zeW5jKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Jlc29sdmVyKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaW5kZXguanMKdmFyIHJlcXVpcmVfdmlydHVhbF9mcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmlydHVhbEZzID0gdm9pZCAwOwogICAgdmFyIHZpcnR1YWxGcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2hvc3QoKSk7CiAgICBleHBvcnRzMi52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9wYXRoKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IGNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUhvc3QoaG9zdCkgewogICAgICBjb25zdCB3b3Jrc3BhY2VIb3N0ID0gewogICAgICAgIGFzeW5jIHJlYWRGaWxlKHBhdGgpIHsKICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QucmVhZCgoMCwgdmlydHVhbF9mc18xLm5vcm1hbGl6ZSkocGF0aCkpKTsKICAgICAgICAgIHJldHVybiB2aXJ0dWFsX2ZzXzEudmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhkYXRhKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIHdyaXRlRmlsZShwYXRoLCBkYXRhKSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShob3N0LndyaXRlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSwgdmlydHVhbF9mc18xLnZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoZGF0YSkpKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNEaXJlY3RvcnkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNGaWxlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiB3b3Jrc3BhY2VIb3N0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvc2Nhbm5lci5qcwp2YXIgcmVxdWlyZV9zY2FubmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zY2FubmVyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gdm9pZCAwOwogICAgICBmdW5jdGlvbiBjcmVhdGVTY2FubmVyKHRleHQsIGlnbm9yZVRyaXZpYSA9IGZhbHNlKSB7CiAgICAgICAgY29uc3QgbGVuID0gdGV4dC5sZW5ndGg7CiAgICAgICAgbGV0IHBvcyA9IDAsIHZhbHVlID0gIiIsIHRva2VuT2Zmc2V0ID0gMCwgdG9rZW4gPSAxNiwgbGluZU51bWJlciA9IDAsIGxpbmVTdGFydE9mZnNldCA9IDAsIHRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgc2NhbkVycm9yID0gMDsKICAgICAgICBmdW5jdGlvbiBzY2FuSGV4RGlnaXRzKGNvdW50LCBleGFjdCkgewogICAgICAgICAgbGV0IGRpZ2l0cyA9IDA7CiAgICAgICAgICBsZXQgdmFsdWUyID0gMDsKICAgICAgICAgIHdoaWxlIChkaWdpdHMgPCBjb3VudCB8fCAhZXhhY3QpIHsKICAgICAgICAgICAgbGV0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA+PSA0OCAmJiBjaCA8PSA1NykgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA0ODsKICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSA2NSAmJiBjaCA8PSA3MCkgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA2NSArIDEwOwogICAgICAgICAgICB9IGVsc2UgaWYgKGNoID49IDk3ICYmIGNoIDw9IDEwMikgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA5NyArIDEwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICBkaWdpdHMrKzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkaWdpdHMgPCBjb3VudCkgewogICAgICAgICAgICB2YWx1ZTIgPSAtMTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB2YWx1ZTI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNldFBvc2l0aW9uKG5ld1Bvc2l0aW9uKSB7CiAgICAgICAgICBwb3MgPSBuZXdQb3NpdGlvbjsKICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IDA7CiAgICAgICAgICB0b2tlbiA9IDE2OwogICAgICAgICAgc2NhbkVycm9yID0gMDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk51bWJlcigpIHsKICAgICAgICAgIGxldCBzdGFydCA9IHBvczsKICAgICAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDgpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDYpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kID0gcG9zOwogICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNjkgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDEwMSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDMgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDQ1KSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZW5kID0gcG9zOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCwgZW5kKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2NhblN0cmluZygpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAiIiwgc3RhcnQgPSBwb3M7CiAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAyOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA9PT0gMzQpIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoID09PSA5MikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBjaDIgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKyspOwogICAgICAgICAgICAgIHN3aXRjaCAoY2gyKSB7CiAgICAgICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyInOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgOTI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXFwiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDc6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiLyI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA5ODoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcYiI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMDI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXGYiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTEwOgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlxuIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDExNDoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcciI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTY6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiCSI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTc6CiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoMyA9IHNjYW5IZXhEaWdpdHMoNCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgIGlmIChjaDMgPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoMyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc2NhbkVycm9yID0gNDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHNjYW5FcnJvciA9IDU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN0YXJ0ID0gcG9zOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaCA+PSAwICYmIGNoIDw9IDMxKSB7CiAgICAgICAgICAgICAgaWYgKGlzTGluZUJyZWFrKGNoKSkgewogICAgICAgICAgICAgICAgcmVzdWx0ICs9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSA2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNjYW5OZXh0KCkgewogICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICAgIHNjYW5FcnJvciA9IDA7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IHBvczsKICAgICAgICAgIGxpbmVTdGFydE9mZnNldCA9IGxpbmVOdW1iZXI7CiAgICAgICAgICBwcmV2VG9rZW5MaW5lU3RhcnRPZmZzZXQgPSB0b2tlbkxpbmVTdGFydE9mZnNldDsKICAgICAgICAgIGlmIChwb3MgPj0gbGVuKSB7CiAgICAgICAgICAgIHRva2VuT2Zmc2V0ID0gbGVuOwogICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNzsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNvZGUpKSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIGNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgfSB3aGlsZSAoaXNXaGl0ZVNwYWNlKGNvZGUpKTsKICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMTU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIHZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7CiAgICAgICAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTApIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgdG9rZW5MaW5lU3RhcnRPZmZzZXQgPSBwb3M7CiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE0OwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIC8vIHRva2VuczogW117fTosCiAgICAgICAgICAgIGNhc2UgMTIzOgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDI7CiAgICAgICAgICAgIGNhc2UgOTE6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMzsKICAgICAgICAgICAgY2FzZSA5MzoKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA0OwogICAgICAgICAgICBjYXNlIDU4OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDY7CiAgICAgICAgICAgIGNhc2UgNDQ6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNTsKICAgICAgICAgICAgLy8gc3RyaW5ncwogICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHZhbHVlID0gc2NhblN0cmluZygpOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEwOwogICAgICAgICAgICAvLyBjb21tZW50cwogICAgICAgICAgICBjYXNlIDQ3OgogICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zIC0gMTsKICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSA0NykgewogICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGVuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayh0ZXh0LmNoYXJDb2RlQXQocG9zKSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckNvZGVBdChwb3MgKyAxKSA9PT0gNDIpIHsKICAgICAgICAgICAgICAgIHBvcyArPSAyOwogICAgICAgICAgICAgICAgY29uc3Qgc2FmZUxlbmd0aCA9IGxlbiAtIDE7CiAgICAgICAgICAgICAgICBsZXQgY29tbWVudENsb3NlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHNhZmVMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgY2ggPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgICAgICAgaWYgKGNoID09PSA0MiAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zICsgMSkgPT09IDQ3KSB7CiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICAgICAgY29tbWVudENsb3NlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayhjaCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDEzICYmIHRleHQuY2hhckNvZGVBdChwb3MpID09PSAxMCkgewogICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgICAgICAgICB0b2tlbkxpbmVTdGFydE9mZnNldCA9IHBvczsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjb21tZW50Q2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFsdWUgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAvLyBudW1iZXJzCiAgICAgICAgICAgIGNhc2UgNDU6CiAgICAgICAgICAgICAgdmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID09PSBsZW4gfHwgIWlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZvdW5kIGEgbWludXMsIGZvbGxvd2VkIGJ5IGEgbnVtYmVyIHNvCiAgICAgICAgICAgIC8vIHdlIGZhbGwgdGhyb3VnaCB0byBwcm9jZWVkIHdpdGggc2Nhbm5pbmcKICAgICAgICAgICAgLy8gbnVtYmVycwogICAgICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgICBjYXNlIDQ5OgogICAgICAgICAgICBjYXNlIDUwOgogICAgICAgICAgICBjYXNlIDUxOgogICAgICAgICAgICBjYXNlIDUyOgogICAgICAgICAgICBjYXNlIDUzOgogICAgICAgICAgICBjYXNlIDU0OgogICAgICAgICAgICBjYXNlIDU1OgogICAgICAgICAgICBjYXNlIDU2OgogICAgICAgICAgICBjYXNlIDU3OgogICAgICAgICAgICAgIHZhbHVlICs9IHNjYW5OdW1iZXIoKTsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMTsKICAgICAgICAgICAgLy8gbGl0ZXJhbHMgYW5kIHVua25vd24gc3ltYm9scwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsZW4gJiYgaXNVbmtub3duQ29udGVudENoYXJhY3Rlcihjb2RlKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0b2tlbk9mZnNldCAhPT0gcG9zKSB7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRleHQuc3Vic3RyaW5nKHRva2VuT2Zmc2V0LCBwb3MpOwogICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJ0cnVlIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA4OwogICAgICAgICAgICAgICAgICBjYXNlICJmYWxzZSI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gOTsKICAgICAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpc1Vua25vd25Db250ZW50Q2hhcmFjdGVyKGNvZGUpIHsKICAgICAgICAgIGlmIChpc1doaXRlU3BhY2UoY29kZSkgfHwgaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICBjYXNlIDkzOgogICAgICAgICAgICBjYXNlIDEyMzoKICAgICAgICAgICAgY2FzZSA5MToKICAgICAgICAgICAgY2FzZSAzNDoKICAgICAgICAgICAgY2FzZSA1ODoKICAgICAgICAgICAgY2FzZSA0NDoKICAgICAgICAgICAgY2FzZSA0NzoKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHROb25Ucml2aWEoKSB7CiAgICAgICAgICBsZXQgcmVzdWx0OwogICAgICAgICAgZG8gewogICAgICAgICAgICByZXN1bHQgPSBzY2FuTmV4dCgpOwogICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID49IDEyICYmIHJlc3VsdCA8PSAxNSk7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgc2V0UG9zaXRpb24sCiAgICAgICAgICBnZXRQb3NpdGlvbjogKCkgPT4gcG9zLAogICAgICAgICAgc2NhbjogaWdub3JlVHJpdmlhID8gc2Nhbk5leHROb25Ucml2aWEgOiBzY2FuTmV4dCwKICAgICAgICAgIGdldFRva2VuOiAoKSA9PiB0b2tlbiwKICAgICAgICAgIGdldFRva2VuVmFsdWU6ICgpID0+IHZhbHVlLAogICAgICAgICAgZ2V0VG9rZW5PZmZzZXQ6ICgpID0+IHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5MZW5ndGg6ICgpID0+IHBvcyAtIHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5TdGFydExpbmU6ICgpID0+IGxpbmVTdGFydE9mZnNldCwKICAgICAgICAgIGdldFRva2VuU3RhcnRDaGFyYWN0ZXI6ICgpID0+IHRva2VuT2Zmc2V0IC0gcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5FcnJvcjogKCkgPT4gc2NhbkVycm9yCiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gY3JlYXRlU2Nhbm5lcjsKICAgICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7CiAgICAgICAgcmV0dXJuIGNoID09PSAzMiB8fCBjaCA9PT0gOTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0xpbmVCcmVhayhjaCkgewogICAgICAgIHJldHVybiBjaCA9PT0gMTAgfHwgY2ggPT09IDEzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRGlnaXQoY2gpIHsKICAgICAgICByZXR1cm4gY2ggPj0gNDggJiYgY2ggPD0gNTc7CiAgICAgIH0KICAgICAgdmFyIENoYXJhY3RlckNvZGVzOwogICAgICAoZnVuY3Rpb24oQ2hhcmFjdGVyQ29kZXMyKSB7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibGluZUZlZWQiXSA9IDEwXSA9ICJsaW5lRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY2FycmlhZ2VSZXR1cm4iXSA9IDEzXSA9ICJjYXJyaWFnZVJldHVybiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic3BhY2UiXSA9IDMyXSA9ICJzcGFjZSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzAiXSA9IDQ4XSA9ICJfMCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzEiXSA9IDQ5XSA9ICJfMSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzIiXSA9IDUwXSA9ICJfMiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzMiXSA9IDUxXSA9ICJfMyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzQiXSA9IDUyXSA9ICJfNCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzUiXSA9IDUzXSA9ICJfNSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzYiXSA9IDU0XSA9ICJfNiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzciXSA9IDU1XSA9ICJfNyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzgiXSA9IDU2XSA9ICJfOCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzkiXSA9IDU3XSA9ICJfOSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYSJdID0gOTddID0gImEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImIiXSA9IDk4XSA9ICJiIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjIl0gPSA5OV0gPSAiYyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZCJdID0gMTAwXSA9ICJkIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJlIl0gPSAxMDFdID0gImUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImYiXSA9IDEwMl0gPSAiZiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZyJdID0gMTAzXSA9ICJnIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJoIl0gPSAxMDRdID0gImgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImkiXSA9IDEwNV0gPSAiaSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiaiJdID0gMTA2XSA9ICJqIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJrIl0gPSAxMDddID0gImsiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImwiXSA9IDEwOF0gPSAibCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibSJdID0gMTA5XSA9ICJtIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJuIl0gPSAxMTBdID0gIm4iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIm8iXSA9IDExMV0gPSAibyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicCJdID0gMTEyXSA9ICJwIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJxIl0gPSAxMTNdID0gInEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInIiXSA9IDExNF0gPSAiciI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicyJdID0gMTE1XSA9ICJzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ0Il0gPSAxMTZdID0gInQiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInUiXSA9IDExN10gPSAidSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidiJdID0gMTE4XSA9ICJ2IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ3Il0gPSAxMTldID0gInciOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIngiXSA9IDEyMF0gPSAieCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsieSJdID0gMTIxXSA9ICJ5IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ6Il0gPSAxMjJdID0gInoiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkEiXSA9IDY1XSA9ICJBIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJCIl0gPSA2Nl0gPSAiQiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiQyJdID0gNjddID0gIkMiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkQiXSA9IDY4XSA9ICJEIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJFIl0gPSA2OV0gPSAiRSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiRiJdID0gNzBdID0gIkYiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkciXSA9IDcxXSA9ICJHIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJIIl0gPSA3Ml0gPSAiSCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiSSJdID0gNzNdID0gIkkiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkoiXSA9IDc0XSA9ICJKIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJLIl0gPSA3NV0gPSAiSyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTCJdID0gNzZdID0gIkwiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIk0iXSA9IDc3XSA9ICJNIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJOIl0gPSA3OF0gPSAiTiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTyJdID0gNzldID0gIk8iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlAiXSA9IDgwXSA9ICJQIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJRIl0gPSA4MV0gPSAiUSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiUiJdID0gODJdID0gIlIiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlMiXSA9IDgzXSA9ICJTIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJUIl0gPSA4NF0gPSAiVCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiVSJdID0gODVdID0gIlUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlYiXSA9IDg2XSA9ICJWIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJXIl0gPSA4N10gPSAiVyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiWCJdID0gODhdID0gIlgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlkiXSA9IDg5XSA9ICJZIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJaIl0gPSA5MF0gPSAiWiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYXN0ZXJpc2siXSA9IDQyXSA9ICJhc3RlcmlzayI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYmFja3NsYXNoIl0gPSA5Ml0gPSAiYmFja3NsYXNoIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjbG9zZUJyYWNlIl0gPSAxMjVdID0gImNsb3NlQnJhY2UiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImNsb3NlQnJhY2tldCJdID0gOTNdID0gImNsb3NlQnJhY2tldCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29sb24iXSA9IDU4XSA9ICJjb2xvbiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29tbWEiXSA9IDQ0XSA9ICJjb21tYSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZG90Il0gPSA0Nl0gPSAiZG90IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJkb3VibGVRdW90ZSJdID0gMzRdID0gImRvdWJsZVF1b3RlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJtaW51cyJdID0gNDVdID0gIm1pbnVzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2UiXSA9IDEyM10gPSAib3BlbkJyYWNlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2tldCJdID0gOTFdID0gIm9wZW5CcmFja2V0IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJwbHVzIl0gPSA0M10gPSAicGx1cyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic2xhc2giXSA9IDQ3XSA9ICJzbGFzaCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZm9ybUZlZWQiXSA9IDEyXSA9ICJmb3JtRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidGFiIl0gPSA5XSA9ICJ0YWIiOwogICAgICB9KShDaGFyYWN0ZXJDb2RlcyB8fCAoQ2hhcmFjdGVyQ29kZXMgPSB7fSkpOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zdHJpbmctaW50ZXJuLmpzCnZhciByZXF1aXJlX3N0cmluZ19pbnRlcm4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL3N0cmluZy1pbnRlcm4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyJdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLnN1cHBvcnRlZEVvbHMgPSBleHBvcnRzMy5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlcyA9IGV4cG9ydHMzLmNhY2hlZFNwYWNlcyA9IHZvaWQgMDsKICAgICAgZXhwb3J0czMuY2FjaGVkU3BhY2VzID0gbmV3IEFycmF5KDIwKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gIiAiLnJlcGVhdChpbmRleCk7CiAgICAgIH0pOwogICAgICBjb25zdCBtYXhDYWNoZWRWYWx1ZXMgPSAyMDA7CiAgICAgIGV4cG9ydHMzLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzID0gewogICAgICAgICIgIjogewogICAgICAgICAgIlxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcciI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyIiArICIgIi5yZXBlYXQoaW5kZXgpOwogICAgICAgICAgfSksCiAgICAgICAgICAiXHJcbiI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgIgkiOiB7CiAgICAgICAgICAiXG4iOiBuZXcgQXJyYXkobWF4Q2FjaGVkVmFsdWVzKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICAgICAgcmV0dXJuICJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pLAogICAgICAgICAgIlxyIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHIiICsgIgkiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcclxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzMy5zdXBwb3J0ZWRFb2xzID0gWyJcbiIsICJcciIsICJcclxuIl07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9mb3JtYXQuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgc2Nhbm5lcl8xID0gcmVxdWlyZV9zY2FubmVyKCk7CiAgICB2YXIgc3RyaW5nX2ludGVybl8xID0gcmVxdWlyZV9zdHJpbmdfaW50ZXJuKCk7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyIsICIuL3NjYW5uZXIiLCAiLi9zdHJpbmctaW50ZXJuIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuaXNFT0wgPSBleHBvcnRzMy5mb3JtYXQgPSB2b2lkIDA7CiAgICAgIGZ1bmN0aW9uIGZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKSB7CiAgICAgICAgbGV0IGluaXRpYWxJbmRlbnRMZXZlbDsKICAgICAgICBsZXQgZm9ybWF0VGV4dDsKICAgICAgICBsZXQgZm9ybWF0VGV4dFN0YXJ0OwogICAgICAgIGxldCByYW5nZVN0YXJ0OwogICAgICAgIGxldCByYW5nZUVuZDsKICAgICAgICBpZiAocmFuZ2UpIHsKICAgICAgICAgIHJhbmdlU3RhcnQgPSByYW5nZS5vZmZzZXQ7CiAgICAgICAgICByYW5nZUVuZCA9IHJhbmdlU3RhcnQgKyByYW5nZS5sZW5ndGg7CiAgICAgICAgICBmb3JtYXRUZXh0U3RhcnQgPSByYW5nZVN0YXJ0OwogICAgICAgICAgd2hpbGUgKGZvcm1hdFRleHRTdGFydCA+IDAgJiYgIWlzRU9MKGRvY3VtZW50VGV4dCwgZm9ybWF0VGV4dFN0YXJ0IC0gMSkpIHsKICAgICAgICAgICAgZm9ybWF0VGV4dFN0YXJ0LS07CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kT2Zmc2V0ID0gcmFuZ2VFbmQ7CiAgICAgICAgICB3aGlsZSAoZW5kT2Zmc2V0IDwgZG9jdW1lbnRUZXh0Lmxlbmd0aCAmJiAhaXNFT0woZG9jdW1lbnRUZXh0LCBlbmRPZmZzZXQpKSB7CiAgICAgICAgICAgIGVuZE9mZnNldCsrOwogICAgICAgICAgfQogICAgICAgICAgZm9ybWF0VGV4dCA9IGRvY3VtZW50VGV4dC5zdWJzdHJpbmcoZm9ybWF0VGV4dFN0YXJ0LCBlbmRPZmZzZXQpOwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gY29tcHV0ZUluZGVudExldmVsKGZvcm1hdFRleHQsIG9wdGlvbnMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3JtYXRUZXh0ID0gZG9jdW1lbnRUZXh0OwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gMDsKICAgICAgICAgIGZvcm1hdFRleHRTdGFydCA9IDA7CiAgICAgICAgICByYW5nZVN0YXJ0ID0gMDsKICAgICAgICAgIHJhbmdlRW5kID0gZG9jdW1lbnRUZXh0Lmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgY29uc3QgZW9sID0gZ2V0RU9MKG9wdGlvbnMsIGRvY3VtZW50VGV4dCk7CiAgICAgICAgY29uc3QgZW9sRmFzdFBhdGhTdXBwb3J0ZWQgPSBzdHJpbmdfaW50ZXJuXzEuc3VwcG9ydGVkRW9scy5pbmNsdWRlcyhlb2wpOwogICAgICAgIGxldCBudW1iZXJMaW5lQnJlYWtzID0gMDsKICAgICAgICBsZXQgaW5kZW50TGV2ZWwgPSAwOwogICAgICAgIGxldCBpbmRlbnRWYWx1ZTsKICAgICAgICBpZiAob3B0aW9ucy5pbnNlcnRTcGFjZXMpIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1tvcHRpb25zLnRhYlNpemUgfHwgNF0gPz8gcmVwZWF0MihzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdLCBvcHRpb25zLnRhYlNpemUgfHwgNCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gIgkiOwogICAgICAgIH0KICAgICAgICBjb25zdCBpbmRlbnRUeXBlID0gaW5kZW50VmFsdWUgPT09ICIJIiA/ICIJIiA6ICIgIjsKICAgICAgICBsZXQgc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikoZm9ybWF0VGV4dCwgZmFsc2UpOwogICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlOwogICAgICAgIGZ1bmN0aW9uIG5ld0xpbmVzQW5kSW5kZW50KCkgewogICAgICAgICAgaWYgKG51bWJlckxpbmVCcmVha3MgPiAxKSB7CiAgICAgICAgICAgIHJldHVybiByZXBlYXQyKGVvbCwgbnVtYmVyTGluZUJyZWFrcykgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBhbW91bnRPZlNwYWNlcyA9IGluZGVudFZhbHVlLmxlbmd0aCAqIChpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICBpZiAoIWVvbEZhc3RQYXRoU3VwcG9ydGVkIHx8IGFtb3VudE9mU3BhY2VzID4gc3RyaW5nX2ludGVybl8xLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzW2luZGVudFR5cGVdW2VvbF0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHJldHVybiBlb2wgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYW1vdW50T2ZTcGFjZXMgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gZW9sOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN0cmluZ19pbnRlcm5fMS5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlc1tpbmRlbnRUeXBlXVtlb2xdW2Ftb3VudE9mU3BhY2VzXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHQoKSB7CiAgICAgICAgICBsZXQgdG9rZW4gPSBzY2FubmVyLnNjYW4oKTsKICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgPSAwOwogICAgICAgICAgd2hpbGUgKHRva2VuID09PSAxNSB8fCB0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgaWYgKHRva2VuID09PSAxNCAmJiBvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgKz0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgICBudW1iZXJMaW5lQnJlYWtzID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0b2tlbiA9IHNjYW5uZXIuc2NhbigpOwogICAgICAgICAgfQogICAgICAgICAgaGFzRXJyb3IgPSB0b2tlbiA9PT0gMTYgfHwgc2Nhbm5lci5nZXRUb2tlbkVycm9yKCkgIT09IDA7CiAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRPcGVyYXRpb25zID0gW107CiAgICAgICAgZnVuY3Rpb24gYWRkRWRpdCh0ZXh0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KSB7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yICYmICghcmFuZ2UgfHwgc3RhcnRPZmZzZXQgPCByYW5nZUVuZCAmJiBlbmRPZmZzZXQgPiByYW5nZVN0YXJ0KSAmJiBkb2N1bWVudFRleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpICE9PSB0ZXh0KSB7CiAgICAgICAgICAgIGVkaXRPcGVyYXRpb25zLnB1c2goewogICAgICAgICAgICAgIG9mZnNldDogc3RhcnRPZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoOiBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCwKICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgZmlyc3RUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICBhZGRFZGl0KHJlcGVhdDIoZW9sLCBudW1iZXJMaW5lQnJlYWtzKSwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIGlmIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGxldCBpbml0aWFsSW5kZW50ID0gaW5kZW50VmFsdWUubGVuZ3RoICogaW5pdGlhbEluZGVudExldmVsIDwgMjAgJiYgb3B0aW9ucy5pbnNlcnRTcGFjZXMgPyBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzW2luZGVudFZhbHVlLmxlbmd0aCAqIGluaXRpYWxJbmRlbnRMZXZlbF0gOiByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwpOwogICAgICAgICAgYWRkRWRpdChpbml0aWFsSW5kZW50LCBmb3JtYXRUZXh0U3RhcnQsIGZpcnN0VG9rZW5TdGFydCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICBsZXQgc2Vjb25kVG9rZW4gPSBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IHJlcGxhY2VDb250ZW50ID0gIiI7CiAgICAgICAgICBsZXQgbmVlZHNMaW5lQnJlYWsgPSBmYWxzZTsKICAgICAgICAgIHdoaWxlIChudW1iZXJMaW5lQnJlYWtzID09PSAwICYmIChzZWNvbmRUb2tlbiA9PT0gMTIgfHwgc2Vjb25kVG9rZW4gPT09IDEzKSkgewogICAgICAgICAgICBsZXQgY29tbWVudFRva2VuU3RhcnQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIGFkZEVkaXQoCiAgICAgICAgICAgICAgc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXSwKICAgICAgICAgICAgICBmaXJzdFRva2VuRW5kLAogICAgICAgICAgICAgIGNvbW1lbnRUb2tlblN0YXJ0CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIG5lZWRzTGluZUJyZWFrID0gc2Vjb25kVG9rZW4gPT09IDEyOwogICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5lZWRzTGluZUJyZWFrID8gbmV3TGluZXNBbmRJbmRlbnQoKSA6ICIiOwogICAgICAgICAgICBzZWNvbmRUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2Vjb25kVG9rZW4gPT09IDIpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4gIT09IDEpIHsKICAgICAgICAgICAgICBpbmRlbnRMZXZlbC0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMgJiYgZmlyc3RUb2tlbiAhPT0gMSkgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRUb2tlbiA9PT0gNCkgewogICAgICAgICAgICBpZiAoZmlyc3RUb2tlbiAhPT0gMykgewogICAgICAgICAgICAgIGluZGVudExldmVsLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcyAmJiBmaXJzdFRva2VuICE9PSAzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua2VlcExpbmVzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzd2l0Y2ggKGZpcnN0VG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgaW5kZW50TGV2ZWwrKzsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMpIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5rZWVwTGluZXMgJiYgbnVtYmVyTGluZUJyZWFrcyA+IDApIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbmVlZHNMaW5lQnJlYWspIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuID09PSA2ICYmICFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICgoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykgJiYgIW5lZWRzTGluZUJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuICE9PSA1ICYmIHNlY29uZFRva2VuICE9PSAxNykgewogICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCAmJiAoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykpIHsKICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWNvbmRUb2tlbiA9PT0gMTcpIHsKICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gb3B0aW9ucy5pbnNlcnRGaW5hbE5ld2xpbmUgPyBlb2wgOiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2Vjb25kVG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGFkZEVkaXQocmVwbGFjZUNvbnRlbnQsIGZpcnN0VG9rZW5FbmQsIHNlY29uZFRva2VuU3RhcnQpOwogICAgICAgICAgZmlyc3RUb2tlbiA9IHNlY29uZFRva2VuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZWRpdE9wZXJhdGlvbnM7CiAgICAgIH0KICAgICAgZXhwb3J0czMuZm9ybWF0ID0gZm9ybWF0OwogICAgICBmdW5jdGlvbiByZXBlYXQyKHMsIGNvdW50KSB7CiAgICAgICAgbGV0IHJlc3VsdCA9ICIiOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgcmVzdWx0ICs9IHM7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcHV0ZUluZGVudExldmVsKGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBsZXQgaSA9IDA7CiAgICAgICAgbGV0IG5DaGFycyA9IDA7CiAgICAgICAgY29uc3QgdGFiU2l6ZSA9IG9wdGlvbnMudGFiU2l6ZSB8fCA0OwogICAgICAgIHdoaWxlIChpIDwgY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgIGxldCBjaCA9IGNvbnRlbnQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdKSB7CiAgICAgICAgICAgIG5DaGFycysrOwogICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gIgkiKSB7CiAgICAgICAgICAgIG5DaGFycyArPSB0YWJTaXplOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiBNYXRoLmZsb29yKG5DaGFycyAvIHRhYlNpemUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEVPTChvcHRpb25zLCB0ZXh0KSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBjb25zdCBjaCA9IHRleHQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSAiXHIiKSB7CiAgICAgICAgICAgIGlmIChpICsgMSA8IHRleHQubGVuZ3RoICYmIHRleHQuY2hhckF0KGkgKyAxKSA9PT0gIlxuIikgewogICAgICAgICAgICAgIHJldHVybiAiXHJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJcciI7CiAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAiXG4iKSB7CiAgICAgICAgICAgIHJldHVybiAiXG4iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVvbCB8fCAiXG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRU9MKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiIuaW5kZXhPZih0ZXh0LmNoYXJBdChvZmZzZXQpKSAhPT0gLTE7CiAgICAgIH0KICAgICAgZXhwb3J0czMuaXNFT0wgPSBpc0VPTDsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzCnZhciByZXF1aXJlX3BhcnNlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIHNjYW5uZXJfMSA9IHJlcXVpcmVfc2Nhbm5lcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9zY2FubmVyIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5maW5kTm9kZUF0T2Zmc2V0ID0gZXhwb3J0czMuY29udGFpbnMgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IGV4cG9ydHMzLnBhcnNlVHJlZSA9IGV4cG9ydHMzLnBhcnNlID0gZXhwb3J0czMuZ2V0TG9jYXRpb24gPSB2b2lkIDA7CiAgICAgIHZhciBQYXJzZU9wdGlvbnM7CiAgICAgIChmdW5jdGlvbihQYXJzZU9wdGlvbnMyKSB7CiAgICAgICAgUGFyc2VPcHRpb25zMi5ERUZBVUxUID0gewogICAgICAgICAgYWxsb3dUcmFpbGluZ0NvbW1hOiBmYWxzZQogICAgICAgIH07CiAgICAgIH0pKFBhcnNlT3B0aW9ucyB8fCAoUGFyc2VPcHRpb25zID0ge30pKTsKICAgICAgZnVuY3Rpb24gZ2V0TG9jYXRpb24odGV4dCwgcG9zaXRpb24pIHsKICAgICAgICBjb25zdCBzZWdtZW50cyA9IFtdOwogICAgICAgIGNvbnN0IGVhcmx5UmV0dXJuRXhjZXB0aW9uID0gbmV3IE9iamVjdCgpOwogICAgICAgIGxldCBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlSW5zdCA9IHsKICAgICAgICAgIHZhbHVlOiB7fSwKICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgcGFyZW50OiB2b2lkIDAKICAgICAgICB9OwogICAgICAgIGxldCBpc0F0UHJvcGVydHlLZXkgPSBmYWxzZTsKICAgICAgICBmdW5jdGlvbiBzZXRQcmV2aW91c05vZGUodmFsdWUsIG9mZnNldCwgbGVuZ3RoLCB0eXBlMikgewogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICBwcmV2aW91c05vZGVJbnN0Lmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICAgIHByZXZpb3VzTm9kZUluc3QudHlwZSA9IHR5cGUyOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5jb2xvbk9mZnNldCA9IHZvaWQgMDsKICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZUluc3Q7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICB2aXNpdCh0ZXh0LCB7CiAgICAgICAgICAgIG9uT2JqZWN0QmVnaW46IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gcG9zaXRpb24gPiBvZmZzZXQ7CiAgICAgICAgICAgICAgc2VnbWVudHMucHVzaCgiIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZShuYW1lLCBvZmZzZXQsIGxlbmd0aCwgInByb3BlcnR5Iik7CiAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSBuYW1lOwogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQgKyBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25PYmplY3RFbmQ6IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgc2VnbWVudHMucG9wKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQXJyYXlCZWdpbjogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKDApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcHJldmlvdXNOb2RlID0gdm9pZCAwOwogICAgICAgICAgICAgIHNlZ21lbnRzLnBvcCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZTogKHZhbHVlLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZSh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgsIGdldE5vZGVUeXBlKHZhbHVlKSk7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCArIGxlbmd0aCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBvblNlcGFyYXRvcjogKHNlcCwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHNlcCA9PT0gIjoiICYmIHByZXZpb3VzTm9kZSAmJiBwcmV2aW91c05vZGUudHlwZSA9PT0gInByb3BlcnR5IikgewogICAgICAgICAgICAgICAgcHJldmlvdXNOb2RlLmNvbG9uT2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0ID09PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgICBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA9IGxhc3QgKyAxOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlICE9PSBlYXJseVJldHVybkV4Y2VwdGlvbikgewogICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgcGF0aDogc2VnbWVudHMsCiAgICAgICAgICBwcmV2aW91c05vZGUsCiAgICAgICAgICBpc0F0UHJvcGVydHlLZXksCiAgICAgICAgICBtYXRjaGVzOiAocGF0dGVybikgPT4gewogICAgICAgICAgICBsZXQgayA9IDA7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBrIDwgcGF0dGVybi5sZW5ndGggJiYgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgaWYgKHBhdHRlcm5ba10gPT09IHNlZ21lbnRzW2ldIHx8IHBhdHRlcm5ba10gPT09ICIqIikgewogICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0dGVybltrXSAhPT0gIioqIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gayA9PT0gcGF0dGVybi5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IGdldExvY2F0aW9uOwogICAgICBmdW5jdGlvbiBwYXJzZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSBbXTsKICAgICAgICBjb25zdCBwcmV2aW91c1BhcmVudHMgPSBbXTsKICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlKSB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50UGFyZW50KSkgewogICAgICAgICAgICBjdXJyZW50UGFyZW50LnB1c2godmFsdWUpOwogICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UHJvcGVydHkgIT09IG51bGwpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudFtjdXJyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZpc2l0b3IgPSB7CiAgICAgICAgICBvbk9iamVjdEJlZ2luOiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHt9OwogICAgICAgICAgICBvblZhbHVlKG9iamVjdCk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb2JqZWN0OwogICAgICAgICAgICBjdXJyZW50UHJvcGVydHkgPSBudWxsOwogICAgICAgICAgfSwKICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lKSA9PiB7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG5hbWU7CiAgICAgICAgICB9LAogICAgICAgICAgb25PYmplY3RFbmQ6ICgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHByZXZpb3VzUGFyZW50cy5wb3AoKTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5QmVnaW46ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBbXTsKICAgICAgICAgICAgb25WYWx1ZShhcnJheSk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gYXJyYXk7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUVuZDogKCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcHJldmlvdXNQYXJlbnRzLnBvcCgpOwogICAgICAgICAgfSwKICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlOiBvblZhbHVlLAogICAgICAgICAgb25FcnJvcjogKGVycm9yLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICBlcnJvcnMucHVzaCh7IGVycm9yLCBvZmZzZXQsIGxlbmd0aCB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZpc2l0KHRleHQsIHZpc2l0b3IsIG9wdGlvbnMpOwogICAgICAgIHJldHVybiBjdXJyZW50UGFyZW50WzBdOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlID0gcGFyc2U7CiAgICAgIGZ1bmN0aW9uIHBhcnNlVHJlZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgb2Zmc2V0OiAtMSwKICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICBjaGlsZHJlbjogW10sCiAgICAgICAgICBwYXJlbnQ6IHZvaWQgMAogICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gZW5zdXJlUHJvcGVydHlDb21wbGV0ZShlbmRPZmZzZXQpIHsKICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBlbmRPZmZzZXQgLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlTm9kZSkgewogICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHZhbHVlTm9kZSk7CiAgICAgICAgICByZXR1cm4gdmFsdWVOb2RlOwogICAgICAgIH0KICAgICAgICBjb25zdCB2aXNpdG9yID0gewogICAgICAgICAgb25PYmplY3RCZWdpbjogKG9mZnNldCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdFByb3BlcnR5OiAobmFtZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgICAgICB2YWx1ZTogbmFtZSwKICAgICAgICAgICAgICBvZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoLAogICAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhcmVudAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdEVuZDogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGVuc3VyZVByb3BlcnR5Q29tcGxldGUob2Zmc2V0ICsgbGVuZ3RoKTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUJlZ2luOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25MaXRlcmFsVmFsdWU6ICh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogZ2V0Tm9kZVR5cGUodmFsdWUpLAogICAgICAgICAgICAgIG9mZnNldCwKICAgICAgICAgICAgICBsZW5ndGgsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25TZXBhcmF0b3I6IChzZXAsIG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgICBpZiAoc2VwID09PSAiOiIpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuY29sb25PZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgZW5zdXJlUHJvcGVydHlDb21wbGV0ZShvZmZzZXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIG9uRXJyb3I6IChlcnJvciwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgZXJyb3JzLnB1c2goeyBlcnJvciwgb2Zmc2V0LCBsZW5ndGggfSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zKTsKICAgICAgICBjb25zdCByZXN1bHQgPSBjdXJyZW50UGFyZW50LmNoaWxkcmVuWzBdOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIGRlbGV0ZSByZXN1bHQucGFyZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlVHJlZTsKICAgICAgZnVuY3Rpb24gZmluZE5vZGVBdExvY2F0aW9uKHJvb3QsIHBhdGgpIHsKICAgICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGxldCBub2RlID0gcm9vdDsKICAgICAgICBmb3IgKGxldCBzZWdtZW50IG9mIHBhdGgpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKG5vZGUudHlwZSAhPT0gIm9iamVjdCIgfHwgIUFycmF5LmlzQXJyYXkobm9kZS5jaGlsZHJlbikpIHsKICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Tm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOb2RlLmNoaWxkcmVuKSAmJiBwcm9wZXJ0eU5vZGUuY2hpbGRyZW5bMF0udmFsdWUgPT09IHNlZ21lbnQgJiYgcHJvcGVydHlOb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMikgewogICAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZS5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzZWdtZW50OwogICAgICAgICAgICBpZiAobm9kZS50eXBlICE9PSAiYXJyYXkiIHx8IGluZGV4IDwgMCB8fCAhQXJyYXkuaXNBcnJheShub2RlLmNoaWxkcmVuKSB8fCBpbmRleCA+PSBub2RlLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5baW5kZXhdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBmaW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGZ1bmN0aW9uIGdldE5vZGVQYXRoKG5vZGUpIHsKICAgICAgICBpZiAoIW5vZGUucGFyZW50IHx8ICFub2RlLnBhcmVudC5jaGlsZHJlbikgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoID0gZ2V0Tm9kZVBhdGgobm9kZS5wYXJlbnQpOwogICAgICAgIGlmIChub2RlLnBhcmVudC50eXBlID09PSAicHJvcGVydHkiKSB7CiAgICAgICAgICBjb25zdCBrZXkgPSBub2RlLnBhcmVudC5jaGlsZHJlblswXS52YWx1ZTsKICAgICAgICAgIHBhdGgucHVzaChrZXkpOwogICAgICAgIH0gZWxzZSBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gImFycmF5IikgewogICAgICAgICAgY29uc3QgaW5kZXggPSBub2RlLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKG5vZGUpOwogICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBwYXRoLnB1c2goaW5kZXgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcGF0aDsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGdldE5vZGVQYXRoOwogICAgICBmdW5jdGlvbiBnZXROb2RlVmFsdWUobm9kZSkgewogICAgICAgIHN3aXRjaCAobm9kZS50eXBlKSB7CiAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLm1hcChnZXROb2RlVmFsdWUpOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgY29uc3Qgb2JqID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICAgIGZvciAobGV0IHByb3Agb2Ygbm9kZS5jaGlsZHJlbikgewogICAgICAgICAgICAgIGNvbnN0IHZhbHVlTm9kZSA9IHByb3AuY2hpbGRyZW5bMV07CiAgICAgICAgICAgICAgaWYgKHZhbHVlTm9kZSkgewogICAgICAgICAgICAgICAgb2JqW3Byb3AuY2hpbGRyZW5bMF0udmFsdWVdID0gZ2V0Tm9kZVZhbHVlKHZhbHVlTm9kZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVZhbHVlID0gZ2V0Tm9kZVZhbHVlOwogICAgICBmdW5jdGlvbiBjb250YWlucyhub2RlLCBvZmZzZXQsIGluY2x1ZGVSaWdodEJvdW5kID0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gb2Zmc2V0ID49IG5vZGUub2Zmc2V0ICYmIG9mZnNldCA8IG5vZGUub2Zmc2V0ICsgbm9kZS5sZW5ndGggfHwgaW5jbHVkZVJpZ2h0Qm91bmQgJiYgb2Zmc2V0ID09PSBub2RlLm9mZnNldCArIG5vZGUubGVuZ3RoOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmNvbnRhaW5zID0gY29udGFpbnM7CiAgICAgIGZ1bmN0aW9uIGZpbmROb2RlQXRPZmZzZXQobm9kZSwgb2Zmc2V0LCBpbmNsdWRlUmlnaHRCb3VuZCA9IGZhbHNlKSB7CiAgICAgICAgaWYgKGNvbnRhaW5zKG5vZGUsIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpKSB7CiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGggJiYgY2hpbGRyZW5baV0ub2Zmc2V0IDw9IG9mZnNldDsgaSsrKSB7CiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZpbmROb2RlQXRPZmZzZXQoY2hpbGRyZW5baV0sIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpOwogICAgICAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBmaW5kTm9kZUF0T2Zmc2V0OwogICAgICBmdW5jdGlvbiB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zID0gUGFyc2VPcHRpb25zLkRFRkFVTFQpIHsKICAgICAgICBjb25zdCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCwgZmFsc2UpOwogICAgICAgIGNvbnN0IF9qc29uUGF0aCA9IFtdOwogICAgICAgIGxldCBzdXBwcmVzc2VkQ2FsbGJhY2tzID0gMDsKICAgICAgICBmdW5jdGlvbiB0b05vQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKQogICAgICAgICAgKSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvT25lQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoYXJnKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIGFyZywKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydExpbmUoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpCiAgICAgICAgICApIDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0RnVuY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB2aXNpdEZ1bmN0aW9uID8gKGFyZykgPT4gc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCAmJiB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICBhcmcsCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKSwKICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICkgOiAoKSA9PiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB0b0JlZ2luVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MrKzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBsZXQgY2JSZXR1cm4gPSB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0TGluZSgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpLAogICAgICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChjYlJldHVybiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MgPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvRW5kVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCkgewogICAgICAgICAgICAgIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlbk9mZnNldCgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0Q2hhcmFjdGVyKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9IDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgb25PYmplY3RCZWdpbiA9IHRvQmVnaW5WaXNpdCh2aXNpdG9yLm9uT2JqZWN0QmVnaW4pLCBvbk9iamVjdFByb3BlcnR5ID0gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0b3Iub25PYmplY3RQcm9wZXJ0eSksIG9uT2JqZWN0RW5kID0gdG9FbmRWaXNpdCh2aXNpdG9yLm9uT2JqZWN0RW5kKSwgb25BcnJheUJlZ2luID0gdG9CZWdpblZpc2l0KHZpc2l0b3Iub25BcnJheUJlZ2luKSwgb25BcnJheUVuZCA9IHRvRW5kVmlzaXQodmlzaXRvci5vbkFycmF5RW5kKSwgb25MaXRlcmFsVmFsdWUgPSB0b09uZUFyZ1Zpc2l0V2l0aFBhdGgodmlzaXRvci5vbkxpdGVyYWxWYWx1ZSksIG9uU2VwYXJhdG9yID0gdG9PbmVBcmdWaXNpdCh2aXNpdG9yLm9uU2VwYXJhdG9yKSwgb25Db21tZW50ID0gdG9Ob0FyZ1Zpc2l0KHZpc2l0b3Iub25Db21tZW50KSwgb25FcnJvciA9IHRvT25lQXJnVmlzaXQodmlzaXRvci5vbkVycm9yKTsKICAgICAgICBjb25zdCBkaXNhbGxvd0NvbW1lbnRzID0gb3B0aW9ucyAmJiBvcHRpb25zLmRpc2FsbG93Q29tbWVudHM7CiAgICAgICAgY29uc3QgYWxsb3dUcmFpbGluZ0NvbW1hID0gb3B0aW9ucyAmJiBvcHRpb25zLmFsbG93VHJhaWxpbmdDb21tYTsKICAgICAgICBmdW5jdGlvbiBzY2FuTmV4dCgpIHsKICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gX3NjYW5uZXIuc2NhbigpOwogICAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuRXJyb3IoKSkgewogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNAogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkVW5pY29kZSAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNQogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkRXNjYXBlQ2hhcmFjdGVyICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICAgIDEzCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZk51bWJlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIGlmICghZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMQogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQgKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5VbmV4cGVjdGVkRW5kT2ZTdHJpbmcgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgLyogUGFyc2VFcnJvckNvZGUuSW52YWxpZENoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgICBpZiAoZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMAogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRDb21tZW50VG9rZW4gKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIG9uQ29tbWVudCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRTeW1ib2wgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yLCBza2lwVW50aWxBZnRlciA9IFtdLCBza2lwVW50aWwgPSBbXSkgewogICAgICAgICAgb25FcnJvcihlcnJvcik7CiAgICAgICAgICBpZiAoc2tpcFVudGlsQWZ0ZXIubGVuZ3RoICsgc2tpcFVudGlsLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGV0IHRva2VuID0gX3NjYW5uZXIuZ2V0VG9rZW4oKTsKICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9PSAxNykgewogICAgICAgICAgICAgIGlmIChza2lwVW50aWxBZnRlci5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBVbnRpbC5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0b2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoaXNWYWx1ZSkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBfc2Nhbm5lci5nZXRUb2tlblZhbHVlKCk7CiAgICAgICAgICBpZiAoaXNWYWx1ZSkgewogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbk9iamVjdFByb3BlcnR5KHZhbHVlKTsKICAgICAgICAgICAgX2pzb25QYXRoLnB1c2godmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUxpdGVyYWwoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjb25zdCB0b2tlblZhbHVlID0gX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpOwogICAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcih0b2tlblZhbHVlKTsKICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkTnVtYmVyRm9ybWF0ICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdmFsdWUgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZShudWxsKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlKHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgb25MaXRlcmFsVmFsdWUoZmFsc2UpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eSgpIHsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxMCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAzLAogICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICA1CiAgICAgICAgICAgICAgICAvKiBTeW50YXhLaW5kLkNvbW1hVG9rZW4gKi8KICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcnNlU3RyaW5nKGZhbHNlKTsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA2KSB7CiAgICAgICAgICAgIG9uU2VwYXJhdG9yKCI6Iik7CiAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgNQogICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgX2pzb25QYXRoLnBvcCgpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0KCkgewogICAgICAgICAgb25PYmplY3RCZWdpbigpOwogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMiAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAyICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZWVkc0NvbW1hID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9uT2JqZWN0RW5kKCk7CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMikgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFjZVRva2VuICovCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBbXQogICAgICAgICAgICApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUFycmF5KCkgewogICAgICAgICAgb25BcnJheUJlZ2luKCk7CiAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IGlzRmlyc3RFbGVtZW50ID0gdHJ1ZTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA0ICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICAgIF9qc29uUGF0aC5wdXNoKDApOwogICAgICAgICAgICAgIGlzRmlyc3RFbGVtZW50ID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX2pzb25QYXRoW19qc29uUGF0aC5sZW5ndGggLSAxXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgb25BcnJheUVuZCgpOwogICAgICAgICAgaWYgKCFpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICBfanNvblBhdGgucG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDQKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFja2V0VG9rZW4gKi8KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFtdCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlVmFsdWUoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIHJldHVybiBwYXJzZUFycmF5KCk7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3QoKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmcodHJ1ZSk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAxNykgewogICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dFbXB0eUNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBoYW5kbGVFcnJvcig0LCBbXSwgW10pOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoIXBhcnNlVmFsdWUoKSkgewogICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKF9zY2FubmVyLmdldFRva2VuKCkgIT09IDE3KSB7CiAgICAgICAgICBoYW5kbGVFcnJvcig5LCBbXSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBleHBvcnRzMy52aXNpdCA9IHZpc2l0OwogICAgICBmdW5jdGlvbiBzdHJpcENvbW1lbnRzKHRleHQsIHJlcGxhY2VDaCkgewogICAgICAgIGxldCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCksIHBhcnRzID0gW10sIGtpbmQsIG9mZnNldCA9IDAsIHBvczsKICAgICAgICBkbyB7CiAgICAgICAgICBwb3MgPSBfc2Nhbm5lci5nZXRQb3NpdGlvbigpOwogICAgICAgICAga2luZCA9IF9zY2FubmVyLnNjYW4oKTsKICAgICAgICAgIHN3aXRjaCAoa2luZCkgewogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IHBvcykgewogICAgICAgICAgICAgICAgcGFydHMucHVzaCh0ZXh0LnN1YnN0cmluZyhvZmZzZXQsIHBvcykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocmVwbGFjZUNoICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpLnJlcGxhY2UoL1teXHJcbl0vZywgcmVwbGFjZUNoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG9mZnNldCA9IF9zY2FubmVyLmdldFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoa2luZCAhPT0gMTcpOwogICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCIiKTsKICAgICAgfQogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gc3RyaXBDb21tZW50czsKICAgICAgZnVuY3Rpb24gZ2V0Tm9kZVR5cGUodmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICByZXR1cm4gIm51bWJlciI7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICByZXR1cm4gInN0cmluZyI7CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgICByZXR1cm4gIm51bGwiOwogICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgICAgICAgcmV0dXJuICJhcnJheSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJvYmplY3QiOwogICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBnZXROb2RlVHlwZTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvZWRpdC5qcwp2YXIgcmVxdWlyZV9lZGl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9lZGl0LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgcGFyc2VyXzEgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9mb3JtYXQiLCAiLi9wYXJzZXIiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5pc1dTID0gZXhwb3J0czMuYXBwbHlFZGl0ID0gZXhwb3J0czMuc2V0UHJvcGVydHkgPSBleHBvcnRzMy5yZW1vdmVQcm9wZXJ0eSA9IHZvaWQgMDsKICAgICAgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHkodGV4dCwgcGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBzZXRQcm9wZXJ0eSh0ZXh0LCBwYXRoLCB2b2lkIDAsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnJlbW92ZVByb3BlcnR5ID0gcmVtb3ZlUHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5KHRleHQsIG9yaWdpbmFsUGF0aCwgdmFsdWUsIG9wdGlvbnMpIHsKICAgICAgICBjb25zdCBwYXRoID0gb3JpZ2luYWxQYXRoLnNsaWNlKCk7CiAgICAgICAgY29uc3QgZXJyb3JzID0gW107CiAgICAgICAgY29uc3Qgcm9vdCA9ICgwLCBwYXJzZXJfMS5wYXJzZVRyZWUpKHRleHQsIGVycm9ycyk7CiAgICAgICAgbGV0IHBhcmVudCA9IHZvaWQgMDsKICAgICAgICBsZXQgbGFzdFNlZ21lbnQgPSB2b2lkIDA7CiAgICAgICAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCkgewogICAgICAgICAgbGFzdFNlZ21lbnQgPSBwYXRoLnBvcCgpOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocm9vdCwgcGF0aCk7CiAgICAgICAgICBpZiAocGFyZW50ID09PSB2b2lkIDAgJiYgdmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RTZWdtZW50ID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgIHZhbHVlID0geyBbbGFzdFNlZ21lbnRdOiB2YWx1ZSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgZGVsZXRlIGluIGVtcHR5IGRvY3VtZW50Iik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcoCiAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBvZmZzZXQ6IHJvb3QgPyByb290Lm9mZnNldCA6IDAsCiAgICAgICAgICAgICAgbGVuZ3RoOiByb290ID8gcm9vdC5sZW5ndGggOiAwLAogICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHZhbHVlKQogICAgICAgICAgICB9LAogICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICApOwogICAgICAgIH0gZWxzZSBpZiAocGFyZW50LnR5cGUgPT09ICJvYmplY3QiICYmIHR5cGVvZiBsYXN0U2VnbWVudCA9PT0gInN0cmluZyIgJiYgQXJyYXkuaXNBcnJheShwYXJlbnQuY2hpbGRyZW4pKSB7CiAgICAgICAgICBjb25zdCBleGlzdGluZyA9ICgwLCBwYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHBhcmVudCwgW2xhc3RTZWdtZW50XSk7CiAgICAgICAgICBpZiAoZXhpc3RpbmcgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGlmICghZXhpc3RpbmcucGFyZW50KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBU1QiKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlJbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKGV4aXN0aW5nLnBhcmVudCk7CiAgICAgICAgICAgICAgbGV0IHJlbW92ZUJlZ2luOwogICAgICAgICAgICAgIGxldCByZW1vdmVFbmQgPSBleGlzdGluZy5wYXJlbnQub2Zmc2V0ICsgZXhpc3RpbmcucGFyZW50Lmxlbmd0aDsKICAgICAgICAgICAgICBpZiAocHJvcGVydHlJbmRleCA+IDApIHsKICAgICAgICAgICAgICAgIGxldCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltwcm9wZXJ0eUluZGV4IC0gMV07CiAgICAgICAgICAgICAgICByZW1vdmVCZWdpbiA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmVtb3ZlQmVnaW4gPSBwYXJlbnQub2Zmc2V0ICsgMTsKICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHBhcmVudC5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgICAgcmVtb3ZlRW5kID0gbmV4dC5vZmZzZXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZygKICAgICAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIG9mZnNldDogcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogcmVtb3ZlRW5kIC0gcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKAogICAgICAgICAgICAgICAgdGV4dCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBleGlzdGluZy5vZmZzZXQsCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogZXhpc3RpbmcubGVuZ3RoLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeShsYXN0U2VnbWVudCl9OiAke0pTT04uc3RyaW5naWZ5KAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICl9YDsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBvcHRpb25zLmdldEluc2VydGlvbkluZGV4ID8gb3B0aW9ucy5nZXRJbnNlcnRpb25JbmRleCgKICAgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ubWFwKChwKSA9PiBwLmNoaWxkcmVuWzBdLnZhbHVlKQogICAgICAgICAgICApIDogcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5baW5kZXggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGVkaXQgPSB7IG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsIGxlbmd0aDogMCwgY29udGVudDogbmV3UHJvcGVydHkgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQudHlwZSA9PT0gImFycmF5IiAmJiB0eXBlb2YgbGFzdFNlZ21lbnQgPT09ICJudW1iZXIiICYmIEFycmF5LmlzQXJyYXkocGFyZW50LmNoaWxkcmVuKSkgewogICAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgIGlmIChpbnNlcnRJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwgbGVuZ3RoOiAwLCBjb250ZW50OiBuZXdQcm9wZXJ0eSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpOwogICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdm9pZCAwICYmIHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPj0gMCkgewogICAgICAgICAgICBjb25zdCByZW1vdmFsSW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4XTsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsCiAgICAgICAgICAgICAgICBsZW5ndGg6IHBhcmVudC5sZW5ndGggLSAyLAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxID09PSByZW1vdmFsSW5kZXgpIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4IC0gMV07CiAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICBsZXQgcGFyZW50RW5kT2Zmc2V0ID0gcGFyZW50Lm9mZnNldCArIHBhcmVudC5sZW5ndGg7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0LCBsZW5ndGg6IHBhcmVudEVuZE9mZnNldCAtIDIgLSBvZmZzZXQsIGNvbnRlbnQ6ICIiIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgbGVuZ3RoOiBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4ICsgMV0ub2Zmc2V0IC0gdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZyh0ZXh0LCBlZGl0LCBvcHRpb25zKTsKICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBsZXQgZWRpdDsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA+IGxhc3RTZWdtZW50KSB7CiAgICAgICAgICAgICAgY29uc3QgdG9Nb2RpZnkgPSBwYXJlbnQuY2hpbGRyZW5bbGFzdFNlZ21lbnRdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRvTW9kaWZ5Lm9mZnNldCwKICAgICAgICAgICAgICAgIGxlbmd0aDogdG9Nb2RpZnkubGVuZ3RoLAogICAgICAgICAgICAgICAgY29udGVudDogbmV3UHJvcGVydHkKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgfHwgbGFzdFNlZ21lbnQgPT09IDApIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgPyBuZXdQcm9wZXJ0eSA6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGxhc3RTZWdtZW50ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA/IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggOiBsYXN0U2VnbWVudDsKICAgICAgICAgICAgICBjb25zdCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltpbmRleCAtIDFdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aCwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIsIiArIG5ld1Byb3BlcnR5CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYENhbiBub3QgJHt2YWx1ZSA9PT0gdm9pZCAwID8gInJlbW92ZSIgOiBvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gPyAiaW5zZXJ0IiA6ICJtb2RpZnkifSBBcnJheSBpbmRleCAke2luc2VydEluZGV4fSBhcyBsZW5ndGggaXMgbm90IHN1ZmZpY2llbnRgCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbiBub3QgYWRkICR7dHlwZW9mIGxhc3RTZWdtZW50ICE9PSAibnVtYmVyIiA/ICJpbmRleCIgOiAicHJvcGVydHkifSB0byBwYXJlbnQgb2YgdHlwZSAke3BhcmVudC50eXBlfWAKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGV4cG9ydHMzLnNldFByb3BlcnR5ID0gc2V0UHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpIHsKICAgICAgICBpZiAoIW9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMpIHsKICAgICAgICAgIHJldHVybiBbZWRpdF07CiAgICAgICAgfQogICAgICAgIGxldCBuZXdUZXh0ID0gYXBwbHlFZGl0KHRleHQsIGVkaXQpOwogICAgICAgIGxldCBiZWdpbiA9IGVkaXQub2Zmc2V0OwogICAgICAgIGxldCBlbmQgPSBlZGl0Lm9mZnNldCArIGVkaXQuY29udGVudC5sZW5ndGg7CiAgICAgICAgaWYgKGVkaXQubGVuZ3RoID09PSAwIHx8IGVkaXQuY29udGVudC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHdoaWxlIChiZWdpbiA+IDAgJiYgISgwLCBmb3JtYXRfMS5pc0VPTCkobmV3VGV4dCwgYmVnaW4gLSAxKSkgewogICAgICAgICAgICBiZWdpbi0tOwogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGVuZCA8IG5ld1RleHQubGVuZ3RoICYmICEoMCwgZm9ybWF0XzEuaXNFT0wpKG5ld1RleHQsIGVuZCkpIHsKICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRzID0gKDAsIGZvcm1hdF8xLmZvcm1hdCkoCiAgICAgICAgICBuZXdUZXh0LAogICAgICAgICAgeyBvZmZzZXQ6IGJlZ2luLCBsZW5ndGg6IGVuZCAtIGJlZ2luIH0sCiAgICAgICAgICB7IC4uLm9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMsIGtlZXBMaW5lczogZmFsc2UgfQogICAgICAgICk7CiAgICAgICAgZm9yIChsZXQgaSA9IGVkaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICBjb25zdCBlZGl0MiA9IGVkaXRzW2ldOwogICAgICAgICAgbmV3VGV4dCA9IGFwcGx5RWRpdChuZXdUZXh0LCBlZGl0Mik7CiAgICAgICAgICBiZWdpbiA9IE1hdGgubWluKGJlZ2luLCBlZGl0Mi5vZmZzZXQpOwogICAgICAgICAgZW5kID0gTWF0aC5tYXgoZW5kLCBlZGl0Mi5vZmZzZXQgKyBlZGl0Mi5sZW5ndGgpOwogICAgICAgICAgZW5kICs9IGVkaXQyLmNvbnRlbnQubGVuZ3RoIC0gZWRpdDIubGVuZ3RoOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0TGVuZ3RoID0gdGV4dC5sZW5ndGggLSAobmV3VGV4dC5sZW5ndGggLSBlbmQpIC0gYmVnaW47CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgb2Zmc2V0OiBiZWdpbiwKICAgICAgICAgICAgbGVuZ3RoOiBlZGl0TGVuZ3RoLAogICAgICAgICAgICBjb250ZW50OiBuZXdUZXh0LnN1YnN0cmluZyhiZWdpbiwgZW5kKQogICAgICAgICAgfQogICAgICAgIF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXBwbHlFZGl0KHRleHQsIGVkaXQpIHsKICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgZWRpdC5vZmZzZXQpICsgZWRpdC5jb250ZW50ICsgdGV4dC5zdWJzdHJpbmcoZWRpdC5vZmZzZXQgKyBlZGl0Lmxlbmd0aCk7CiAgICAgIH0KICAgICAgZXhwb3J0czMuYXBwbHlFZGl0ID0gYXBwbHlFZGl0OwogICAgICBmdW5jdGlvbiBpc1dTKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiAJIi5pbmRleE9mKHRleHQuY2hhckF0KG9mZnNldCkpICE9PSAtMTsKICAgICAgfQogICAgICBleHBvcnRzMy5pc1dTID0gaXNXUzsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMKdmFyIHJlcXVpcmVfbWFpbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgZm9ybWF0dGVyID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgZWRpdCA9IHJlcXVpcmVfZWRpdCgpOwogICAgdmFyIHNjYW5uZXIgPSByZXF1aXJlX3NjYW5uZXIoKTsKICAgIHZhciBwYXJzZXIgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWwogICAgICAgICAgInJlcXVpcmUiLAogICAgICAgICAgImV4cG9ydHMiLAogICAgICAgICAgIi4vaW1wbC9mb3JtYXQiLAogICAgICAgICAgIi4vaW1wbC9lZGl0IiwKICAgICAgICAgICIuL2ltcGwvc2Nhbm5lciIsCiAgICAgICAgICAiLi9pbXBsL3BhcnNlciIKICAgICAgICBdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLmFwcGx5RWRpdHMgPSBleHBvcnRzMy5tb2RpZnkgPSBleHBvcnRzMy5mb3JtYXQgPSBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBleHBvcnRzMy5wYXJzZVRyZWUgPSBleHBvcnRzMy5wYXJzZSA9IGV4cG9ydHMzLmdldExvY2F0aW9uID0gZXhwb3J0czMuU3ludGF4S2luZCA9IGV4cG9ydHMzLlNjYW5FcnJvciA9IGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSB2b2lkIDA7CiAgICAgIGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSBzY2FubmVyLmNyZWF0ZVNjYW5uZXI7CiAgICAgIHZhciBTY2FuRXJyb3I7CiAgICAgIChmdW5jdGlvbihTY2FuRXJyb3IyKSB7CiAgICAgICAgU2NhbkVycm9yMltTY2FuRXJyb3IyWyJOb25lIl0gPSAwXSA9ICJOb25lIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiXSA9IDFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mU3RyaW5nIl0gPSAyXSA9ICJVbmV4cGVjdGVkRW5kT2ZTdHJpbmciOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAzXSA9ICJVbmV4cGVjdGVkRW5kT2ZOdW1iZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZFVuaWNvZGUiXSA9IDRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiXSA9IDVdID0gIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZENoYXJhY3RlciJdID0gNl0gPSAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgIH0pKFNjYW5FcnJvciB8fCAoZXhwb3J0czMuU2NhbkVycm9yID0gU2NhbkVycm9yID0ge30pKTsKICAgICAgdmFyIFN5bnRheEtpbmQ7CiAgICAgIChmdW5jdGlvbihTeW50YXhLaW5kMikgewogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJPcGVuQnJhY2VUb2tlbiJdID0gMV0gPSAiT3BlbkJyYWNlVG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNlVG9rZW4iXSA9IDJdID0gIkNsb3NlQnJhY2VUb2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk9wZW5CcmFja2V0VG9rZW4iXSA9IDNdID0gIk9wZW5CcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNrZXRUb2tlbiJdID0gNF0gPSAiQ2xvc2VCcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDb21tYVRva2VuIl0gPSA1XSA9ICJDb21tYVRva2VuIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiQ29sb25Ub2tlbiJdID0gNl0gPSAiQ29sb25Ub2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk51bGxLZXl3b3JkIl0gPSA3XSA9ICJOdWxsS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRydWVLZXl3b3JkIl0gPSA4XSA9ICJUcnVlS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkZhbHNlS2V5d29yZCJdID0gOV0gPSAiRmFsc2VLZXl3b3JkIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiU3RyaW5nTGl0ZXJhbCJdID0gMTBdID0gIlN0cmluZ0xpdGVyYWwiOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJOdW1lcmljTGl0ZXJhbCJdID0gMTFdID0gIk51bWVyaWNMaXRlcmFsIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiTGluZUNvbW1lbnRUcml2aWEiXSA9IDEyXSA9ICJMaW5lQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkJsb2NrQ29tbWVudFRyaXZpYSJdID0gMTNdID0gIkJsb2NrQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkxpbmVCcmVha1RyaXZpYSJdID0gMTRdID0gIkxpbmVCcmVha1RyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRyaXZpYSJdID0gMTVdID0gIlRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlVua25vd24iXSA9IDE2XSA9ICJVbmtub3duIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiRU9GIl0gPSAxN10gPSAiRU9GIjsKICAgICAgfSkoU3ludGF4S2luZCB8fCAoZXhwb3J0czMuU3ludGF4S2luZCA9IFN5bnRheEtpbmQgPSB7fSkpOwogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IHBhcnNlci5nZXRMb2NhdGlvbjsKICAgICAgZXhwb3J0czMucGFyc2UgPSBwYXJzZXIucGFyc2U7CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlci5wYXJzZVRyZWU7CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IHBhcnNlci5maW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBwYXJzZXIuZmluZE5vZGVBdE9mZnNldDsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVBhdGggPSBwYXJzZXIuZ2V0Tm9kZVBhdGg7CiAgICAgIGV4cG9ydHMzLmdldE5vZGVWYWx1ZSA9IHBhcnNlci5nZXROb2RlVmFsdWU7CiAgICAgIGV4cG9ydHMzLnZpc2l0ID0gcGFyc2VyLnZpc2l0OwogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gcGFyc2VyLnN0cmlwQ29tbWVudHM7CiAgICAgIHZhciBQYXJzZUVycm9yQ29kZTsKICAgICAgKGZ1bmN0aW9uKFBhcnNlRXJyb3JDb2RlMikgewogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWRTeW1ib2wiXSA9IDFdID0gIkludmFsaWRTeW1ib2wiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWROdW1iZXJGb3JtYXQiXSA9IDJdID0gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlByb3BlcnR5TmFtZUV4cGVjdGVkIl0gPSAzXSA9ICJQcm9wZXJ0eU5hbWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVmFsdWVFeHBlY3RlZCJdID0gNF0gPSAiVmFsdWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29sb25FeHBlY3RlZCJdID0gNV0gPSAiQ29sb25FeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29tbWFFeHBlY3RlZCJdID0gNl0gPSAiQ29tbWFFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ2xvc2VCcmFjZUV4cGVjdGVkIl0gPSA3XSA9ICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkNsb3NlQnJhY2tldEV4cGVjdGVkIl0gPSA4XSA9ICJDbG9zZUJyYWNrZXRFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiRW5kT2ZGaWxlRXhwZWN0ZWQiXSA9IDldID0gIkVuZE9mRmlsZUV4cGVjdGVkIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkQ29tbWVudFRva2VuIl0gPSAxMF0gPSAiSW52YWxpZENvbW1lbnRUb2tlbiI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mQ29tbWVudCJdID0gMTFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyJdID0gMTJdID0gIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAxM10gPSAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkVW5pY29kZSJdID0gMTRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIl0gPSAxNV0gPSAiSW52YWxpZEVzY2FwZUNoYXJhY3RlciI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiSW52YWxpZENoYXJhY3RlciJdID0gMTZdID0gIkludmFsaWRDaGFyYWN0ZXIiOwogICAgICB9KShQYXJzZUVycm9yQ29kZSB8fCAoZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBQYXJzZUVycm9yQ29kZSA9IHt9KSk7CiAgICAgIGZ1bmN0aW9uIHByaW50UGFyc2VFcnJvckNvZGUoY29kZSkgewogICAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRTeW1ib2wiOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZXR1cm4gIlByb3BlcnR5TmFtZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuICJWYWx1ZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcmV0dXJuICJDb2xvbkV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgcmV0dXJuICJDb21tYUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgcmV0dXJuICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gIkNsb3NlQnJhY2tldEV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgcmV0dXJuICJFbmRPZkZpbGVFeHBlY3RlZCI7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRDb21tZW50VG9rZW4iOwogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgcmV0dXJuICJVbmV4cGVjdGVkRW5kT2ZDb21tZW50IjsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mU3RyaW5nIjsKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZFVuaWNvZGUiOwogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIjsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAiPHVua25vd24gUGFyc2VFcnJvckNvZGU+IjsKICAgICAgfQogICAgICBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gcHJpbnRQYXJzZUVycm9yQ29kZTsKICAgICAgZnVuY3Rpb24gZm9ybWF0KGRvY3VtZW50VGV4dCwgcmFuZ2UsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5mb3JtYXQgPSBmb3JtYXQ7CiAgICAgIGZ1bmN0aW9uIG1vZGlmeSh0ZXh0LCBwYXRoLCB2YWx1ZSwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBlZGl0LnNldFByb3BlcnR5KHRleHQsIHBhdGgsIHZhbHVlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5tb2RpZnkgPSBtb2RpZnk7CiAgICAgIGZ1bmN0aW9uIGFwcGx5RWRpdHModGV4dCwgZWRpdHMpIHsKICAgICAgICBsZXQgc29ydGVkRWRpdHMgPSBlZGl0cy5zbGljZSgwKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICBjb25zdCBkaWZmID0gYS5vZmZzZXQgLSBiLm9mZnNldDsKICAgICAgICAgIGlmIChkaWZmID09PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCAtIGIubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGRpZmY7CiAgICAgICAgfSk7CiAgICAgICAgbGV0IGxhc3RNb2RpZmllZE9mZnNldCA9IHRleHQubGVuZ3RoOwogICAgICAgIGZvciAobGV0IGkgPSBzb3J0ZWRFZGl0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgbGV0IGUgPSBzb3J0ZWRFZGl0c1tpXTsKICAgICAgICAgIGlmIChlLm9mZnNldCArIGUubGVuZ3RoIDw9IGxhc3RNb2RpZmllZE9mZnNldCkgewogICAgICAgICAgICB0ZXh0ID0gZWRpdC5hcHBseUVkaXQodGV4dCwgZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk92ZXJsYXBwaW5nIGVkaXQiKTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNb2RpZmllZE9mZnNldCA9IGUub2Zmc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGV4dDsKICAgICAgfQogICAgICBleHBvcnRzMy5hcHBseUVkaXRzID0gYXBwbHlFZGl0czsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanMKdmFyIHJlcXVpcmVfbWV0YWRhdGEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi9tZXRhZGF0YS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZU1ldGFkYXRhID0gZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IHZvaWQgMDsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IFN5bWJvbC5mb3IoIkBhbmd1bGFyL2NvcmU6d29ya3NwYWNlLWpzb24iKTsKICAgIGZ1bmN0aW9uIGVzY2FwZUtleShrZXkpIHsKICAgICAgcmV0dXJuIGtleS5yZXBsYWNlKCJ+IiwgIn4wIikucmVwbGFjZSgiLyIsICJ+MSIpOwogICAgfQogICAgdmFyIEpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IGNsYXNzIHsKICAgICAgZmlsZVBhdGg7CiAgICAgIGFzdDsKICAgICAgcmF3OwogICAgICBjaGFuZ2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgaGFzTGVnYWN5VGFyZ2V0c05hbWUgPSB0cnVlOwogICAgICBjb25zdHJ1Y3RvcihmaWxlUGF0aCwgYXN0LCByYXcpIHsKICAgICAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7CiAgICAgICAgdGhpcy5hc3QgPSBhc3Q7CiAgICAgICAgdGhpcy5yYXcgPSByYXc7CiAgICAgIH0KICAgICAgZ2V0IGhhc0NoYW5nZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplID4gMDsKICAgICAgfQogICAgICBnZXQgY2hhbmdlQ291bnQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplOwogICAgICB9CiAgICAgIGdldE5vZGVWYWx1ZUZyb21Bc3QocGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSAoMCwganNvbmNfcGFyc2VyXzEuZmluZE5vZGVBdExvY2F0aW9uKSh0aGlzLmFzdCwgcGF0aCk7CiAgICAgICAgcmV0dXJuIG5vZGUgJiYgKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkobm9kZSk7CiAgICAgIH0KICAgICAgZmluZENoYW5nZXNGb3JQYXRoKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VzLmdldChwYXRoKTsKICAgICAgfQogICAgICBhZGRDaGFuZ2UoanNvblBhdGgsIHZhbHVlLCB0eXBlMikgewogICAgICAgIGxldCBjdXJyZW50UGF0aCA9ICIiOwogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBqc29uUGF0aC5sZW5ndGggLSAxOyBpbmRleCsrKSB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IGN1cnJlbnRQYXRoICsgIi8iICsgZXNjYXBlS2V5KGpzb25QYXRoW2luZGV4XSk7CiAgICAgICAgICBpZiAodGhpcy5jaGFuZ2VzLmhhcyhjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoS2V5ID0gIi8iICsganNvblBhdGgubWFwKChrKSA9PiBlc2NhcGVLZXkoaykpLmpvaW4oIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmNoYW5nZXMua2V5cygpKSB7CiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgocGF0aEtleSArICIvIikpIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmRlbGV0ZShrZXkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLmNoYW5nZXMuc2V0KHBhdGhLZXksIHsganNvblBhdGgsIHR5cGU6IHR5cGUyLCB2YWx1ZSB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IEpzb25Xb3Jrc3BhY2VNZXRhZGF0YTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcwp2YXIgcmVxdWlyZV91dGlsaXRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlVmlydHVhbEFzdE9iamVjdCA9IGNyZWF0ZVZpcnR1YWxBc3RPYmplY3Q7CiAgICB2YXIganNvbl8xID0gcmVxdWlyZV9qc29uKCk7CiAgICBmdW5jdGlvbiBjcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KHJvb3QsIG9wdGlvbnMgPSB7fSkgewogICAgICBjb25zdCByZXBvcnRlciA9IChwYXRoLCB0YXJnZXQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT4gewogICAgICAgIGlmICghb3B0aW9ucy5saXN0ZW5lcikgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlIHx8IEpTT04uc3RyaW5naWZ5KG9sZFZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3VmFsdWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aC5zbGljZSgwLCAtMSksIHRhcmdldCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aCwgbmV3VmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIGNyZWF0ZShBcnJheS5pc0FycmF5KHJvb3QpID8gWy4uLnJvb3RdIDogeyAuLi5yb290IH0sIFtdLCByZXBvcnRlciwgbmV3IFNldChvcHRpb25zLmV4Y2x1ZGUpLCBvcHRpb25zLmluY2x1ZGU/Lmxlbmd0aCA/IG5ldyBTZXQob3B0aW9ucy5pbmNsdWRlKSA6IHZvaWQgMCk7CiAgICB9CiAgICBmdW5jdGlvbiBjcmVhdGUob2JqLCBwYXRoLCByZXBvcnRlciwgZXhjbHVkZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLCBpbmNsdWRlZCkgewogICAgICByZXR1cm4gbmV3IFByb3h5KG9iaiwgewogICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcCk7CiAgICAgICAgfSwKICAgICAgICBoYXModGFyZ2V0LCBwKSB7CiAgICAgICAgICBpZiAodHlwZW9mIHAgPT09ICJzeW1ib2wiIHx8IGV4Y2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwKTsKICAgICAgICB9LAogICAgICAgIGdldCh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIGpzb25fMS5pc0pzb25PYmplY3QpKHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gY3JlYXRlKHZhbHVlLCBbLi4ucGF0aCwgcF0sIHJlcG9ydGVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNldCh0YXJnZXQsIHAsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoZXhjbHVkZWQuaGFzKHApIHx8IGluY2x1ZGVkICYmICFpbmNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlUHJvcGVydHk/Lih0YXJnZXQsIHApID8/IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcCk7CiAgICAgICAgICBpZiAoUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSkpIHsKICAgICAgICAgICAgcmVwb3J0ZXIoWy4uLnBhdGgsIHBdLCB0YXJnZXQsIGV4aXN0aW5nVmFsdWUsIHZhbHVlKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSwKICAgICAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZSh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwKSkgewogICAgICAgICAgICByZXBvcnRlcihbLi4ucGF0aCwgcF0sIHRhcmdldCwgZXhpc3RpbmdWYWx1ZSwgdm9pZCAwKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9LAogICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgcCwgYXR0cmlidXRlcykgewogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHAsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0sCiAgICAgICAgb3duS2V5cyh0YXJnZXQpIHsKICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KS5maWx0ZXIoKHApID0+ICFleGNsdWRlZC5oYXMocCkgJiYgKCFpbmNsdWRlZCB8fCBpbmNsdWRlZC5oYXMocCkpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcHJvcGVydHkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc0Zpbml0ZSgrcHJvcGVydHkpKSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFsrcHJvcGVydHldOwogICAgICB9CiAgICAgIGlmICh0YXJnZXQgJiYgcHJvcGVydHkgaW4gdGFyZ2V0KSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CiAgICAgIH0KICAgICAgcmV0dXJuIHZvaWQgMDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcwp2YXIgcmVxdWlyZV9yZWFkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVhZEpzb25Xb3Jrc3BhY2UgPSByZWFkSnNvbldvcmtzcGFjZTsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgZGVmaW5pdGlvbnNfMSA9IHJlcXVpcmVfZGVmaW5pdGlvbnMoKTsKICAgIHZhciBtZXRhZGF0YV8xID0gcmVxdWlyZV9tZXRhZGF0YTIoKTsKICAgIHZhciB1dGlsaXRpZXNfMSA9IHJlcXVpcmVfdXRpbGl0aWVzKCk7CiAgICB2YXIgQU5HVUxBUl9XT1JLU1BBQ0VfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAibmV3UHJvamVjdFJvb3QiLCAic2NoZW1hdGljcyJdKTsKICAgIHZhciBBTkdVTEFSX1BST0pFQ1RfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAic2NoZW1hdGljcyIsICJwcm9qZWN0VHlwZSIsICJpMThuIl0pOwogICAgYXN5bmMgZnVuY3Rpb24gcmVhZEpzb25Xb3Jrc3BhY2UocGF0aCwgaG9zdCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGhvc3QucmVhZEZpbGUocGF0aCk7CiAgICAgIGlmIChyYXcgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHJlYWQgd29ya3NwYWNlIGZpbGUuIik7CiAgICAgIH0KICAgICAgY29uc3QgYXN0ID0gKDAsIGpzb25jX3BhcnNlcl8xLnBhcnNlVHJlZSkocmF3LCB2b2lkIDAsIHsgYWxsb3dUcmFpbGluZ0NvbW1hOiB0cnVlLCBkaXNhbGxvd0NvbW1lbnRzOiBmYWxzZSB9KTsKICAgICAgaWYgKGFzdD8udHlwZSAhPT0gIm9iamVjdCIgfHwgIWFzdC5jaGlsZHJlbikgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCB3b3Jrc3BhY2UgZmlsZSAtIGV4cGVjdGVkIEpTT04gb2JqZWN0LiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb25Ob2RlID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikoYXN0LCBbInZlcnNpb24iXSk7CiAgICAgIGlmICghdmVyc2lvbk5vZGUpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZm9ybWF0IC0gdmVyc2lvbiBzcGVjaWZpZXIgbm90IGZvdW5kLiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uTm9kZS52YWx1ZTsKICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZm9ybWF0IHZlcnNpb24gZGV0ZWN0ZWQgLSBFeHBlY3RlZDpbIDEgXSBGb3VuZDogWyAke3ZlcnNpb259IF1gKTsKICAgICAgfQogICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgIGhvc3QsCiAgICAgICAgbWV0YWRhdGE6IG5ldyBtZXRhZGF0YV8xLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YShwYXRoLCBhc3QsIHJhdyksCiAgICAgICAgdHJhY2tDaGFuZ2VzOiB0cnVlLAogICAgICAgIHVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICAgICAuLi5BTkdVTEFSX1dPUktTUEFDRV9FWFRFTlNJT05TLAogICAgICAgICAgLi4ub3B0aW9ucy5hbGxvd2VkV29ya3NwYWNlRXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIHVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9uczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWwogICAgICAgICAgLi4uQU5HVUxBUl9QUk9KRUNUX0VYVEVOU0lPTlMsCiAgICAgICAgICAuLi5vcHRpb25zLmFsbG93ZWRQcm9qZWN0RXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIGVycm9yKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgfSwKICAgICAgICB3YXJuKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7CiAgICAgICAgfQogICAgICB9OwogICAgICBjb25zdCB3b3Jrc3BhY2UgPSBwYXJzZVdvcmtzcGFjZShhc3QsIGNvbnRleHQpOwogICAgICByZXR1cm4gd29ya3NwYWNlOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VXb3Jrc3BhY2Uod29ya3NwYWNlTm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgcHJvamVjdHM7CiAgICAgIGxldCBleHRlbnNpb25zOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICB9CiAgICAgIGNvbnN0IHdvcmtzcGFjZU5vZGVWYWx1ZSA9ICgwLCBqc29uY19wYXJzZXJfMS5nZXROb2RlVmFsdWUpKHdvcmtzcGFjZU5vZGUpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod29ya3NwYWNlTm9kZVZhbHVlKSkgewogICAgICAgIGlmIChuYW1lID09PSAiJHNjaGVtYSIgfHwgbmFtZSA9PT0gInZlcnNpb24iKSB7CiAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAicHJvamVjdHMiKSB7CiAgICAgICAgICBjb25zdCBub2RlcyA9ICgwLCBqc29uY19wYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHdvcmtzcGFjZU5vZGUsIFsicHJvamVjdHMiXSk7CiAgICAgICAgICBpZiAoISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkodmFsdWUpIHx8ICFub2RlcykgewogICAgICAgICAgICBjb250ZXh0LmVycm9yKCdJbnZhbGlkICJwcm9qZWN0cyIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC4nLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHJvamVjdHMgPSBwYXJzZVByb2plY3RzT2JqZWN0KG5vZGVzLCBjb250ZXh0KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zLmhhcyhuYW1lKSAmJiAhL15bYS16XXsxLDN9LS4qLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICAgIGNvbnRleHQud2FybihgV29ya3NwYWNlIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkgZm91bmQuYCwgbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXh0ZW5zaW9ucykgewogICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSkgPT4gewogICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgbmFtZV0sIG5ld1ZhbHVlLCAicHJvamVjdCIpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgY29uc3QgcHJvamVjdENvbGxlY3Rpb24gPSBuZXcgZGVmaW5pdGlvbnNfMS5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24ocHJvamVjdHMsIGNvbGxlY3Rpb25MaXN0ZW5lcik7CiAgICAgIHJldHVybiB7CiAgICAgICAgW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF06IGpzb25NZXRhZGF0YSwKICAgICAgICBwcm9qZWN0czogcHJvamVjdENvbGxlY3Rpb24sCiAgICAgICAgLy8gSWYgbm90IHRyYWNraW5nIGNoYW5nZXMgdGhlIGBleHRlbnNpb25zYCB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhlIHBhcnNlZAogICAgICAgIC8vIHZhbHVlcy4gIE90aGVyd2lzZSB0aGUgZXh0ZW5zaW9ucyBhcmUgdHJhY2tlZCB2aWEgYSB2aXJ0dWFsIEFTVCBvYmplY3QuCiAgICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyA/PyAoMCwgdXRpbGl0aWVzXzEuY3JlYXRlVmlydHVhbEFzdE9iamVjdCkod29ya3NwYWNlTm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbIiRzY2hlbWEiLCAidmVyc2lvbiIsICJwcm9qZWN0cyJdLAogICAgICAgICAgbGlzdGVuZXIocGF0aCwgdmFsdWUpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShwYXRoLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlUHJvamVjdHNPYmplY3QocHJvamVjdHNOb2RlLCBjb250ZXh0KSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcygoMCwganNvbmNfcGFyc2VyXzEuZ2V0Tm9kZVZhbHVlKShwcm9qZWN0c05vZGUpKSkgewogICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdHNOb2RlLCBbbmFtZV0pOwogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICBjb250ZXh0Lndhcm4oIlNraXBwaW5nIGludmFsaWQgcHJvamVjdCB2YWx1ZTsgZXhwZWN0ZWQgYW4gb2JqZWN0LiIsIHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBwcm9qZWN0c1tuYW1lXSA9IHBhcnNlUHJvamVjdChuYW1lLCBub2RlcywgY29udGV4dCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHByb2plY3RzOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0Tm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgdGFyZ2V0czsKICAgICAgbGV0IGhhc1RhcmdldHMgPSBmYWxzZTsKICAgICAgbGV0IGV4dGVuc2lvbnM7CiAgICAgIGxldCBwcm9wZXJ0aWVzOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIHByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgfQogICAgICBjb25zdCBwcm9qZWN0Tm9kZVZhbHVlID0gKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkocHJvamVjdE5vZGUpOwogICAgICBpZiAoISgicm9vdCIgaW4gcHJvamVjdE5vZGVWYWx1ZSkpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2plY3QgIiR7cHJvamVjdE5hbWV9IiBpcyBtaXNzaW5nIGEgcmVxdWlyZWQgcHJvcGVydHkgInJvb3QiLmApOwogICAgICB9CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9qZWN0Tm9kZVZhbHVlKSkgewogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICBjYXNlICJhcmNoaXRlY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdE5vZGUsIFtuYW1lXSk7CiAgICAgICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICAgICAgY29udGV4dC5lcnJvcihgSW52YWxpZCAiJHtuYW1lfSIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC5gLCB2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGFzVGFyZ2V0cyA9IHRydWU7CiAgICAgICAgICAgIHRhcmdldHMgPSBwYXJzZVRhcmdldHNPYmplY3QocHJvamVjdE5hbWUsIG5vZGVzLCBjb250ZXh0KTsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmhhc0xlZ2FjeVRhcmdldHNOYW1lID0gbmFtZSA9PT0gImFyY2hpdGVjdCI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgY2FzZSAic291cmNlUm9vdCI6CiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgY29udGV4dC53YXJuKGBQcm9qZWN0IHByb3BlcnR5ICIke25hbWV9IiBzaG91bGQgYmUgYSBzdHJpbmcuYCwgdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9ucy5oYXMobmFtZSkgJiYgIS9eW2Etel17MSwzfS0uKi8udGVzdChuYW1lKSkgewogICAgICAgICAgICAgIGNvbnRleHQud2FybihgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nIGNvbnRhaW5zIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkuYCwgbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKICAgICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSwgY29sbGVjdGlvbikgPT4gewogICAgICAgICAgaWYgKGhhc1RhcmdldHMpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgcHJvamVjdE5hbWUsICJ0YXJnZXRzIiwgbmFtZV0sIG5ld1ZhbHVlLCAidGFyZ2V0Iik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgInRhcmdldHMiXSwgY29sbGVjdGlvbiwgInRhcmdldGNvbGxlY3Rpb24iKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0IGJhc2UgPSB7CiAgICAgICAgdGFyZ2V0czogbmV3IGRlZmluaXRpb25zXzEuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24odGFyZ2V0cywgY29sbGVjdGlvbkxpc3RlbmVyKSwKICAgICAgICAvLyBJZiBub3QgdHJhY2tpbmcgY2hhbmdlcyB0aGUgYGV4dGVuc2lvbnNgIHZhcmlhYmxlIHdpbGwgY29udGFpbiB0aGUgcGFyc2VkCiAgICAgICAgLy8gdmFsdWVzLiAgT3RoZXJ3aXNlIHRoZSBleHRlbnNpb25zIGFyZSB0cmFja2VkIHZpYSBhIHZpcnR1YWwgQVNUIG9iamVjdC4KICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbImFyY2hpdGVjdCIsICJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgInRhcmdldHMiXSwKICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAuLi5wYXRoXSwgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH07CiAgICAgIGNvbnN0IGJhc2VLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhiYXNlKSk7CiAgICAgIGNvbnN0IHByb2plY3QgPSBwcm9wZXJ0aWVzID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgaW5jbHVkZTogWyJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgLi4uYmFzZUtleXNdLAogICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoIWJhc2VLZXlzLmhhcyhwYXRoWzBdKSkgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgLi4ucGF0aF0sIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9qZWN0LCBiYXNlKTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlVGFyZ2V0c09iamVjdChwcm9qZWN0TmFtZSwgdGFyZ2V0c05vZGUsIGNvbnRleHQpIHsKICAgICAgY29uc3QganNvbk1ldGFkYXRhID0gY29udGV4dC5tZXRhZGF0YTsKICAgICAgY29uc3QgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkodGFyZ2V0c05vZGUpKSkgewogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIGNvbnRleHQud2FybigiU2tpcHBpbmcgaW52YWxpZCB0YXJnZXQgdmFsdWU7IGV4cGVjdGVkIGFuIG9iamVjdC4iLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgICB0YXJnZXRzW25hbWVdID0gKDAsIHV0aWxpdGllc18xLmNyZWF0ZVZpcnR1YWxBc3RPYmplY3QpKHZhbHVlLCB7CiAgICAgICAgICAgIGluY2x1ZGU6IFsiYnVpbGRlciIsICJvcHRpb25zIiwgImNvbmZpZ3VyYXRpb25zIiwgImRlZmF1bHRDb25maWd1cmF0aW9uIl0sCiAgICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlMikgewogICAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAidGFyZ2V0cyIsIG5hbWUsIC4uLnBhdGhdLCB2YWx1ZTIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFyZ2V0c1tuYW1lXSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdGFyZ2V0czsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcwp2YXIgcmVxdWlyZV93cml0ZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVKc29uV29ya3NwYWNlID0gd3JpdGVKc29uV29ya3NwYWNlOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgbm9kZV9vc18xID0gcmVxdWlyZSgibm9kZTpvcyIpOwogICAgdmFyIG1ldGFkYXRhXzEgPSByZXF1aXJlX21ldGFkYXRhMigpOwogICAgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgaG9zdCwgcGF0aCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IG1ldGFkYXRhID0gd29ya3NwYWNlW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF07CiAgICAgIGlmIChtZXRhZGF0YSkgewogICAgICAgIGlmICghbWV0YWRhdGEuaGFzQ2hhbmdlcykgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBkYXRhID0gdXBkYXRlSnNvbldvcmtzcGFjZShtZXRhZGF0YSk7CiAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGVGaWxlKHBhdGggPz8gbWV0YWRhdGEuZmlsZVBhdGgsIGRhdGEpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICghcGF0aCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwYXRoIG9wdGlvbiBpcyByZXF1aXJlZCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBvYmogPSBjb252ZXJ0SnNvbldvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMuc2NoZW1hKTsKICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTsKICAgICAgICByZXR1cm4gaG9zdC53cml0ZUZpbGUocGF0aCwgZGF0YSk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgc2NoZW1hMikgewogICAgICBjb25zdCBvYmogPSB7CiAgICAgICAgJHNjaGVtYTogc2NoZW1hMiB8fCAiLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24iLAogICAgICAgIHZlcnNpb246IDEsCiAgICAgICAgLi4ud29ya3NwYWNlLmV4dGVuc2lvbnMsCiAgICAgICAgLi4uaXNFbXB0eSh3b3Jrc3BhY2UucHJvamVjdHMpID8ge30gOiB7IHByb2plY3RzOiBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHdvcmtzcGFjZS5wcm9qZWN0cykgfQogICAgICB9OwogICAgICByZXR1cm4gb2JqOwogICAgfQogICAgZnVuY3Rpb24gY29udmVydEpzb25Qcm9qZWN0Q29sbGVjdGlvbihjb2xsZWN0aW9uKSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCBwcm9qZWN0XSBvZiBjb2xsZWN0aW9uKSB7CiAgICAgICAgcHJvamVjdHNbcHJvamVjdE5hbWVdID0gY29udmVydEpzb25Qcm9qZWN0KHByb2plY3QpOwogICAgICB9CiAgICAgIHJldHVybiBwcm9qZWN0czsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uUHJvamVjdChwcm9qZWN0KSB7CiAgICAgIGxldCB0YXJnZXRzOwogICAgICBpZiAocHJvamVjdC50YXJnZXRzLnNpemUgPiAwKSB7CiAgICAgICAgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIGZvciAoY29uc3QgW3RhcmdldE5hbWUsIHRhcmdldF0gb2YgcHJvamVjdC50YXJnZXRzKSB7CiAgICAgICAgICB0YXJnZXRzW3RhcmdldE5hbWVdID0gY29udmVydEpzb25UYXJnZXQodGFyZ2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3Qgb2JqID0gewogICAgICAgIC4uLnByb2plY3QuZXh0ZW5zaW9ucywKICAgICAgICByb290OiBwcm9qZWN0LnJvb3QsCiAgICAgICAgLi4ucHJvamVjdC5zb3VyY2VSb290ID09PSB2b2lkIDAgPyB7fSA6IHsgc291cmNlUm9vdDogcHJvamVjdC5zb3VyY2VSb290IH0sCiAgICAgICAgLi4ucHJvamVjdC5wcmVmaXggPT09IHZvaWQgMCA/IHt9IDogeyBwcmVmaXg6IHByb2plY3QucHJlZml4IH0sCiAgICAgICAgLi4udGFyZ2V0cyA9PT0gdm9pZCAwID8ge30gOiB7IGFyY2hpdGVjdDogdGFyZ2V0cyB9CiAgICAgIH07CiAgICAgIHJldHVybiBvYmo7CiAgICB9CiAgICBmdW5jdGlvbiBpc0VtcHR5KG9iaikgewogICAgICByZXR1cm4gb2JqID09PSB2b2lkIDAgfHwgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBidWlsZGVyOiB0YXJnZXQuYnVpbGRlciwKICAgICAgICAuLi5pc0VtcHR5KHRhcmdldC5vcHRpb25zKSA/IHt9IDogeyBvcHRpb25zOiB0YXJnZXQub3B0aW9ucyB9LAogICAgICAgIC4uLmlzRW1wdHkodGFyZ2V0LmNvbmZpZ3VyYXRpb25zKSA/IHt9IDogeyBjb25maWd1cmF0aW9uczogdGFyZ2V0LmNvbmZpZ3VyYXRpb25zIH0sCiAgICAgICAgLi4udGFyZ2V0LmRlZmF1bHRDb25maWd1cmF0aW9uID09PSB2b2lkIDAgPyB7fSA6IHsgZGVmYXVsdENvbmZpZ3VyYXRpb246IHRhcmdldC5kZWZhdWx0Q29uZmlndXJhdGlvbiB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldENvbGxlY3Rpb24oY29sbGVjdGlvbikgewogICAgICBjb25zdCB0YXJnZXRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCB0YXJnZXRdIG9mIGNvbGxlY3Rpb24pIHsKICAgICAgICB0YXJnZXRzW3Byb2plY3ROYW1lXSA9IGNvbnZlcnRKc29uVGFyZ2V0KHRhcmdldCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRhcmdldHM7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpIHsKICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIHN3aXRjaCAodHlwZTIpIHsKICAgICAgICBjYXNlICJwcm9qZWN0IjoKICAgICAgICAgIHJldHVybiBjb252ZXJ0SnNvblByb2plY3QodmFsdWUpOwogICAgICAgIGNhc2UgInByb2plY3Rjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHZhbHVlKTsKICAgICAgICAgIHJldHVybiBpc0VtcHR5KHByb2plY3RzKSA/IHZvaWQgMCA6IHByb2plY3RzOwogICAgICAgIH0KICAgICAgICBjYXNlICJ0YXJnZXQiOgogICAgICAgICAgcmV0dXJuIGNvbnZlcnRKc29uVGFyZ2V0KHZhbHVlKTsKICAgICAgICBjYXNlICJ0YXJnZXRjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnZlcnRKc29uVGFyZ2V0Q29sbGVjdGlvbih2YWx1ZSk7CiAgICAgICAgICByZXR1cm4gaXNFbXB0eSh0YXJnZXRzKSA/IHZvaWQgMCA6IHRhcmdldHM7CiAgICAgICAgfQogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUpzb25Xb3Jrc3BhY2UobWV0YWRhdGEpIHsKICAgICAgbGV0IHsgcmF3OiBjb250ZW50IH0gPSBtZXRhZGF0YTsKICAgICAgY29uc3QgeyBjaGFuZ2VzLCBoYXNMZWdhY3lUYXJnZXRzTmFtZSB9ID0gbWV0YWRhdGE7CiAgICAgIGZvciAoY29uc3QgeyBqc29uUGF0aCwgdmFsdWUsIHR5cGU6IHR5cGUyIH0gb2YgY2hhbmdlcy52YWx1ZXMoKSkgewogICAgICAgIGlmIChoYXNMZWdhY3lUYXJnZXRzTmFtZSAmJiBqc29uUGF0aFsyXSA9PT0gInRhcmdldHMiKSB7CiAgICAgICAgICBqc29uUGF0aFsyXSA9ICJhcmNoaXRlY3QiOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0cyA9ICgwLCBqc29uY19wYXJzZXJfMS5tb2RpZnkpKGNvbnRlbnQsIGpzb25QYXRoLCBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpLCB7CiAgICAgICAgICBmb3JtYXR0aW5nT3B0aW9uczogewogICAgICAgICAgICBpbnNlcnRTcGFjZXM6IHRydWUsCiAgICAgICAgICAgIHRhYlNpemU6IDIsCiAgICAgICAgICAgIGVvbDogZ2V0RU9MKGNvbnRlbnQpCiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgY29udGVudCA9ICgwLCBqc29uY19wYXJzZXJfMS5hcHBseUVkaXRzKShjb250ZW50LCBlZGl0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRFT0woY29udGVudCkgewogICAgICBjb25zdCBDUkxGID0gIlxyXG4iOwogICAgICBjb25zdCBMRiA9ICJcbiI7CiAgICAgIGNvbnN0IG5ld2xpbmVzID0gY29udGVudC5tYXRjaCgvKD86XHI/XG4pL2cpOwogICAgICBpZiAobmV3bGluZXM/Lmxlbmd0aCkgewogICAgICAgIGNvbnN0IGNybGYgPSBuZXdsaW5lcy5maWx0ZXIoKGwpID0+IGwgPT09IENSTEYpLmxlbmd0aDsKICAgICAgICBjb25zdCBsZiA9IG5ld2xpbmVzLmxlbmd0aCAtIGNybGY7CiAgICAgICAgcmV0dXJuIGNybGYgPiBsZiA/IENSTEYgOiBMRjsKICAgICAgfQogICAgICByZXR1cm4gbm9kZV9vc18xLkVPTDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvY29yZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gdm9pZCAwOwogICAgZXhwb3J0czIuX3Rlc3RfYWRkV29ya3NwYWNlRmlsZSA9IF90ZXN0X2FkZFdvcmtzcGFjZUZpbGU7CiAgICBleHBvcnRzMi5fdGVzdF9yZW1vdmVXb3Jrc3BhY2VGaWxlID0gX3Rlc3RfcmVtb3ZlV29ya3NwYWNlRmlsZTsKICAgIGV4cG9ydHMyLnJlYWRXb3Jrc3BhY2UgPSByZWFkV29ya3NwYWNlOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSB3cml0ZVdvcmtzcGFjZTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyKCk7CiAgICB2YXIgd3JpdGVyXzEgPSByZXF1aXJlX3dyaXRlcigpOwogICAgdmFyIGZvcm1hdExvb2t1cCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgdmFyIFdvcmtzcGFjZUZvcm1hdDsKICAgIChmdW5jdGlvbihXb3Jrc3BhY2VGb3JtYXQyKSB7CiAgICAgIFdvcmtzcGFjZUZvcm1hdDJbV29ya3NwYWNlRm9ybWF0MlsiSlNPTiJdID0gMF0gPSAiSlNPTiI7CiAgICB9KShXb3Jrc3BhY2VGb3JtYXQgfHwgKGV4cG9ydHMyLldvcmtzcGFjZUZvcm1hdCA9IFdvcmtzcGFjZUZvcm1hdCA9IHt9KSk7CiAgICBmdW5jdGlvbiBfdGVzdF9hZGRXb3Jrc3BhY2VGaWxlKG5hbWUsIGZvcm1hdCkgewogICAgICB3b3Jrc3BhY2VGaWxlc1tuYW1lXSA9IGZvcm1hdDsKICAgIH0KICAgIGZ1bmN0aW9uIF90ZXN0X3JlbW92ZVdvcmtzcGFjZUZpbGUobmFtZSkgewogICAgICBkZWxldGUgd29ya3NwYWNlRmlsZXNbbmFtZV07CiAgICB9CiAgICB2YXIgd29ya3NwYWNlRmlsZXMgPSB7CiAgICAgICJhbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTiwKICAgICAgIi5hbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTgogICAgfTsKICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2UocGF0aCwgaG9zdCwgZm9ybWF0KSB7CiAgICAgIGlmIChhd2FpdCBob3N0LmlzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgIGZvciAoY29uc3QgW25hbWUsIG5hbWVGb3JtYXRdIG9mIE9iamVjdC5lbnRyaWVzKHdvcmtzcGFjZUZpbGVzKSkgewogICAgICAgICAgaWYgKGZvcm1hdCAhPT0gdm9pZCAwICYmIGZvcm1hdCAhPT0gbmFtZUZvcm1hdCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHBvdGVudGlhbCA9ICgwLCB2aXJ0dWFsX2ZzXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHZpcnR1YWxfZnNfMS5qb2luKShkaXJlY3RvcnksIG5hbWUpKTsKICAgICAgICAgIGlmIChhd2FpdCBob3N0LmlzRmlsZShwb3RlbnRpYWwpKSB7CiAgICAgICAgICAgIHBhdGggPSBwb3RlbnRpYWw7CiAgICAgICAgICAgIGZvcm1hdCA9IG5hbWVGb3JtYXQ7CiAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBhIHdvcmtzcGFjZSBmaWxlIGZvciB3b3Jrc3BhY2UgcGF0aC4gQXJlIHlvdSBtaXNzaW5nIGFuIGBhbmd1bGFyLmpzb25gIG9yIGAuYW5ndWxhci5qc29uYCBmaWxlPyIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IGZpbGVuYW1lID0gKDAsIHZpcnR1YWxfZnNfMS5iYXNlbmFtZSkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgICBpZiAoZmlsZW5hbWUgaW4gd29ya3NwYWNlRmlsZXMpIHsKICAgICAgICAgIGZvcm1hdCA9IHdvcmtzcGFjZUZpbGVzW2ZpbGVuYW1lXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZGV0ZXJtaW5lIGZvcm1hdCBmb3Igd29ya3NwYWNlIHBhdGguIik7CiAgICAgIH0KICAgICAgbGV0IHdvcmtzcGFjZTsKICAgICAgc3dpdGNoIChmb3JtYXQpIHsKICAgICAgICBjYXNlIFdvcmtzcGFjZUZvcm1hdC5KU09OOgogICAgICAgICAgd29ya3NwYWNlID0gYXdhaXQgKDAsIHJlYWRlcl8xLnJlYWRKc29uV29ya3NwYWNlKShwYXRoLCBob3N0KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgICAgZm9ybWF0TG9va3VwLnNldCh3b3Jrc3BhY2UsIFdvcmtzcGFjZUZvcm1hdC5KU09OKTsKICAgICAgcmV0dXJuIHsgd29ya3NwYWNlIH07CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiB3cml0ZVdvcmtzcGFjZSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgsIGZvcm1hdCkgewogICAgICBpZiAoZm9ybWF0ID09PSB2b2lkIDApIHsKICAgICAgICBmb3JtYXQgPSBmb3JtYXRMb29rdXAuZ2V0KHdvcmtzcGFjZSk7CiAgICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkEgZm9ybWF0IGlzIHJlcXVpcmVkIGZvciBjdXN0b20gd29ya3NwYWNlIG9iamVjdHMuIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgICAgY2FzZSBXb3Jrc3BhY2VGb3JtYXQuSlNPTjoKICAgICAgICAgIHJldHVybiAoMCwgd3JpdGVyXzEud3JpdGVKc29uV29ya3NwYWNlKSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgpOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcwp2YXIgcmVxdWlyZV93b3Jrc3BhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSBleHBvcnRzMi5yZWFkV29ya3NwYWNlID0gZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IHZvaWQgMDsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2RlZmluaXRpb25zKCksIGV4cG9ydHMyKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3QyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjcmVhdGVXb3Jrc3BhY2VIb3N0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaG9zdF8xLmNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB9IH0pOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZTMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIldvcmtzcGFjZUZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5Xb3Jrc3BhY2VGb3JtYXQ7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVhZFdvcmtzcGFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5yZWFkV29ya3NwYWNlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndyaXRlV29ya3NwYWNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29yZV8xLndyaXRlV29ya3NwYWNlOwogICAgfSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndvcmtzcGFjZXMgPSBleHBvcnRzMi5sb2dnaW5nID0gZXhwb3J0czIuanNvbiA9IHZvaWQgMDsKICAgIHZhciBqc29uMiA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2pzb24oKSk7CiAgICBleHBvcnRzMi5qc29uID0ganNvbjI7CiAgICB2YXIgbG9nZ2luZyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2xvZ2dlcjIoKSk7CiAgICBleHBvcnRzMi5sb2dnaW5nID0gbG9nZ2luZzsKICAgIHZhciB3b3Jrc3BhY2VzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfd29ya3NwYWNlKCkpOwogICAgZXhwb3J0czIud29ya3NwYWNlcyA9IHdvcmtzcGFjZXM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9leGNlcHRpb24oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfanNvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlsczMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdmlydHVhbF9mcygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanMKdmFyIHJlcXVpcmVfaHRtbF9zZWxlY3RvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9odG1sLXNlbGVjdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgdW5pY29kZVJhbmdlcyA9IFsKICAgICAgWzE5MiwgMjE0XSwKICAgICAgWzIxNiwgMjQ2XSwKICAgICAgWzI0OCwgODkzXSwKICAgICAgWzg5NSwgODE5MV0sCiAgICAgIFs4MjA0LCA4MjA1XSwKICAgICAgWzgyNTUsIDgyNTZdLAogICAgICBbODMwNCwgODU5MV0sCiAgICAgIFsxMTI2NCwgMTIyNzFdLAogICAgICBbMTIyODksIDU1Mjk1XSwKICAgICAgWzYzNzQ0LCA2NDk3NV0sCiAgICAgIFs2NTAwOCwgNjU1MzNdLAogICAgICBbNjU1MzYsIDk4MzAzOV0KICAgIF07CiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudE5hbWUobmFtZSkgewogICAgICBsZXQgcmVnZXggPSAiXlthLXpBLVpdWyI7CiAgICAgIHJlZ2V4ICs9ICItLjAtOV9hLXpBLVpcXHV7Qjd9IjsKICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB1bmljb2RlUmFuZ2VzKSB7CiAgICAgICAgcmVnZXggKz0gYFxcdXske3JhbmdlWzBdLnRvU3RyaW5nKDE2KX19LVxcdXske3JhbmdlWzFdLnRvU3RyaW5nKDE2KX19YDsKICAgICAgfQogICAgICByZWdleCArPSAiXSokIjsKICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsICJ1IikudGVzdChuYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmh0bWxTZWxlY3RvckZvcm1hdCA9IHsKICAgICAgbmFtZTogImh0bWwtc2VsZWN0b3IiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChuYW1lKSA9PiB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIgJiYgaXNWYWxpZEVsZW1lbnROYW1lKG5hbWUpCiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL3BhdGguanMKdmFyIHJlcXVpcmVfcGF0aDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHsKICAgICAgbmFtZTogInBhdGgiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChwYXRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gcGF0aCA9PT0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMKdmFyIHJlcXVpcmVfZm9ybWF0czIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IGV4cG9ydHMyLnBhdGhGb3JtYXQgPSBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgaHRtbF9zZWxlY3Rvcl8xID0gcmVxdWlyZV9odG1sX3NlbGVjdG9yKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoMigpOwogICAgdmFyIGh0bWxfc2VsZWN0b3JfMiA9IHJlcXVpcmVfaHRtbF9zZWxlY3RvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaHRtbFNlbGVjdG9yRm9ybWF0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaHRtbF9zZWxlY3Rvcl8yLmh0bWxTZWxlY3RvckZvcm1hdDsKICAgIH0gfSk7CiAgICB2YXIgcGF0aF8yID0gcmVxdWlyZV9wYXRoMigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGF0aEZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHBhdGhfMi5wYXRoRm9ybWF0OwogICAgfSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IFtodG1sX3NlbGVjdG9yXzEuaHRtbFNlbGVjdG9yRm9ybWF0LCBwYXRoXzEucGF0aEZvcm1hdF07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJlZSA9IGV4cG9ydHMyLlRyZWVTeW1ib2wgPSBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gZXhwb3J0czIuTWVyZ2VTdHJhdGVneSA9IHZvaWQgMDsKICAgIHZhciBNZXJnZVN0cmF0ZWd5MjsKICAgIChmdW5jdGlvbihNZXJnZVN0cmF0ZWd5MykgewogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siQWxsb3dPdmVyd3JpdGVDb25mbGljdCJdID0gMl0gPSAiQWxsb3dPdmVyd3JpdGVDb25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0NyZWF0aW9uQ29uZmxpY3QiXSA9IDRdID0gIkFsbG93Q3JlYXRpb25Db25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0RlbGV0ZUNvbmZsaWN0Il0gPSA4XSA9ICJBbGxvd0RlbGV0ZUNvbmZsaWN0IjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkRlZmF1bHQiXSA9IDBdID0gIkRlZmF1bHQiOwogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siRXJyb3IiXSA9IDFdID0gIkVycm9yIjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkNvbnRlbnRPbmx5Il0gPSAyXSA9ICJDb250ZW50T25seSI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJPdmVyd3JpdGUiXSA9IDE0XSA9ICJPdmVyd3JpdGUiOwogICAgfSkoTWVyZ2VTdHJhdGVneTIgfHwgKGV4cG9ydHMyLk1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5MiA9IHt9KSk7CiAgICBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gU3ltYm9sKCk7CiAgICBleHBvcnRzMi5UcmVlU3ltYm9sID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IGdsb2JhbFN5bWJvbCA9IHR5cGVvZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93LndpbmRvdyA9PT0gd2luZG93ICYmIHdpbmRvdy5TeW1ib2wgfHwgdHlwZW9mIHNlbGYgPT0gIm9iamVjdCIgJiYgc2VsZi5zZWxmID09PSBzZWxmICYmIHNlbGYuU3ltYm9sIHx8IHR5cGVvZiBnbG9iYWwgPT0gIm9iamVjdCIgJiYgZ2xvYmFsLmdsb2JhbCA9PT0gZ2xvYmFsICYmIGdsb2JhbC5TeW1ib2w7CiAgICAgIGlmICghZ2xvYmFsU3ltYm9sKSB7CiAgICAgICAgcmV0dXJuIFN5bWJvbCgic2NoZW1hdGljLXRyZWUiKTsKICAgICAgfQogICAgICBpZiAoIWdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlKSB7CiAgICAgICAgZ2xvYmFsU3ltYm9sLnNjaGVtYXRpY1RyZWUgPSBTeW1ib2woInNjaGVtYXRpYy10cmVlIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlOwogICAgfSgpOwogICAgZXhwb3J0czIuVHJlZSA9IE9iamVjdC5mcmVlemUoewogICAgICBpc1RyZWUobWF5YmVUcmVlKSB7CiAgICAgICAgcmV0dXJuIGV4cG9ydHMyLlRyZWVTeW1ib2wgaW4gbWF5YmVUcmVlOwogICAgICB9CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZXhjZXB0aW9uL2V4Y2VwdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gZXhwb3J0czIuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuU2NoZW1hdGljc0V4Y2VwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIFNjaGVtYXRpY3NFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNzRXhjZXB0aW9uID0gU2NoZW1hdGljc0V4Y2VwdGlvbjsKICAgIHZhciBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgYWxyZWFkeSBleGlzdC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uOwogICAgdmFyIENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgQ29udGVudCBhdCBwYXRoICIke3BhdGh9IiBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiBhbiB1cGRhdGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoYEludmFsaWQgcmVjb3JkIGluc3RhbmNlLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFVwZGF0ZVJlY29yZEV4Y2VwdGlvbiA9IEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb247CiAgICB2YXIgTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYEEgbWVyZ2UgY29uZmxpY3RlZCBvbiBwYXRoICIke3BhdGh9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24gPSBNZXJnZUNvbmZsaWN0RXhjZXB0aW9uOwogICAgdmFyIFVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJXb3JrZmxvdyBkaWQgbm90IGV4ZWN1dGUgc3VjY2Vzc2Z1bGx5LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24gPSBVbnN1Y2Nlc3NmdWxXb3JrZmxvd0V4ZWN1dGlvbjsKICAgIHZhciBVbmltcGxlbWVudGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJUaGlzIGZ1bmN0aW9uIGlzIHVuaW1wbGVtZW50ZWQuIik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VbmltcGxlbWVudGVkRXhjZXB0aW9uID0gVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMKdmFyIHJlcXVpcmVfZGVsZWdhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRlbGVnYXRlVHJlZSA9IHZvaWQgMDsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIERlbGVnYXRlVHJlZSA9IGNsYXNzIHsKICAgICAgX290aGVyOwogICAgICBjb25zdHJ1Y3Rvcihfb3RoZXIpIHsKICAgICAgICB0aGlzLl9vdGhlciA9IF9vdGhlcjsKICAgICAgfQogICAgICBicmFuY2goKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJyYW5jaCgpOwogICAgICB9CiAgICAgIG1lcmdlKG90aGVyLCBzdHJhdGVneSkgewogICAgICAgIHRoaXMuX290aGVyLm1lcmdlKG90aGVyLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnJvb3Q7CiAgICAgIH0KICAgICAgLy8gUmVhZG9ubHkuCiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIHJlYWRUZXh0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIucmVhZFRleHQocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkSnNvbihwYXRoKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgZ2V0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZ2V0KHBhdGgpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmdldERpcihwYXRoKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLm92ZXJ3cml0ZShwYXRoLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJlZ2luVXBkYXRlKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuY29tbWl0VXBkYXRlKHJlY29yZCk7CiAgICAgIH0KICAgICAgLy8gU3RydWN0dXJhbCBtZXRob2RzLgogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuYXBwbHkoYWN0aW9uLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmFjdGlvbnM7CiAgICAgIH0KICAgICAgW2ludGVyZmFjZV8xLlRyZWVTeW1ib2xdKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVsZWdhdGVUcmVlID0gRGVsZWdhdGVUcmVlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcwp2YXIgcmVxdWlyZV9lbnRyeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBTaW1wbGVGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9wYXRoOwogICAgICBfY29udGVudDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2NvbnRlbnQgPSBfY29udGVudDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IFNpbXBsZUZpbGVFbnRyeTsKICAgIHZhciBMYXp5RmlsZUVudHJ5ID0gY2xhc3MgewogICAgICBfcGF0aDsKICAgICAgX2xvYWQ7CiAgICAgIF9jb250ZW50ID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9sb2FkKSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2xvYWQgPSBfbG9hZDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCB8fCAodGhpcy5fY29udGVudCA9IHRoaXMuX2xvYWQodGhpcy5fcGF0aCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IExhenlGaWxlRW50cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0BqcmlkZ2V3ZWxsLXNvdXJjZW1hcC1jb2RlYy1ucG0tMS41LjAtZGZkOTEyNmQ3MS0xMC56aXAvbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9kaXN0L3NvdXJjZW1hcC1jb2RlYy51bWQuanMKdmFyIHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AanJpZGdld2VsbC1zb3VyY2VtYXAtY29kZWMtbnBtLTEuNS4wLWRmZDkxMjZkNzEtMTAuemlwL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvZGlzdC9zb3VyY2VtYXAtY29kZWMudW1kLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGdsb2JhbDIsIGZhY3RvcnkpIHsKICAgICAgdHlwZW9mIGV4cG9ydHMyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMiAhPT0gInVuZGVmaW5lZCIgPyBmYWN0b3J5KGV4cG9ydHMyKSA6IHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbImV4cG9ydHMiXSwgZmFjdG9yeSkgOiAoZ2xvYmFsMiA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiA/IGdsb2JhbFRoaXMgOiBnbG9iYWwyIHx8IHNlbGYsIGZhY3RvcnkoZ2xvYmFsMi5zb3VyY2VtYXBDb2RlYyA9IHt9KSk7CiAgICB9KShleHBvcnRzMiwgZnVuY3Rpb24oZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBjb25zdCBjb21tYSA9ICIsIi5jaGFyQ29kZUF0KDApOwogICAgICBjb25zdCBzZW1pY29sb24gPSAiOyIuY2hhckNvZGVBdCgwKTsKICAgICAgY29uc3QgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgICAgIGNvbnN0IGludFRvQ2hhciA9IG5ldyBVaW50OEFycmF5KDY0KTsKICAgICAgY29uc3QgY2hhclRvSW50ID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGMgPSBjaGFycy5jaGFyQ29kZUF0KGkpOwogICAgICAgIGludFRvQ2hhcltpXSA9IGM7CiAgICAgICAgY2hhclRvSW50W2NdID0gaTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgcmVsYXRpdmUpIHsKICAgICAgICBsZXQgdmFsdWUgPSAwOwogICAgICAgIGxldCBzaGlmdCA9IDA7CiAgICAgICAgbGV0IGludGVnZXIgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IGMgPSByZWFkZXIubmV4dCgpOwogICAgICAgICAgaW50ZWdlciA9IGNoYXJUb0ludFtjXTsKICAgICAgICAgIHZhbHVlIHw9IChpbnRlZ2VyICYgMzEpIDw8IHNoaWZ0OwogICAgICAgICAgc2hpZnQgKz0gNTsKICAgICAgICB9IHdoaWxlIChpbnRlZ2VyICYgMzIpOwogICAgICAgIGNvbnN0IHNob3VsZE5lZ2F0ZSA9IHZhbHVlICYgMTsKICAgICAgICB2YWx1ZSA+Pj49IDE7CiAgICAgICAgaWYgKHNob3VsZE5lZ2F0ZSkgewogICAgICAgICAgdmFsdWUgPSAtMjE0NzQ4MzY0OCB8IC12YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlbGF0aXZlICsgdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5jb2RlSW50ZWdlcihidWlsZGVyLCBudW0sIHJlbGF0aXZlKSB7CiAgICAgICAgbGV0IGRlbHRhID0gbnVtIC0gcmVsYXRpdmU7CiAgICAgICAgZGVsdGEgPSBkZWx0YSA8IDAgPyAtZGVsdGEgPDwgMSB8IDEgOiBkZWx0YSA8PCAxOwogICAgICAgIGRvIHsKICAgICAgICAgIGxldCBjbGFtcGVkID0gZGVsdGEgJiAzMTsKICAgICAgICAgIGRlbHRhID4+Pj0gNTsKICAgICAgICAgIGlmIChkZWx0YSA+IDApCiAgICAgICAgICAgIGNsYW1wZWQgfD0gMzI7CiAgICAgICAgICBidWlsZGVyLndyaXRlKGludFRvQ2hhcltjbGFtcGVkXSk7CiAgICAgICAgfSB3aGlsZSAoZGVsdGEgPiAwKTsKICAgICAgICByZXR1cm4gbnVtOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhc01vcmVWbHEocmVhZGVyLCBtYXgpIHsKICAgICAgICBpZiAocmVhZGVyLnBvcyA+PSBtYXgpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHJlYWRlci5wZWVrKCkgIT09IGNvbW1hOwogICAgICB9CiAgICAgIGNvbnN0IGJ1Zkxlbmd0aCA9IDEwMjQgKiAxNjsKICAgICAgY29uc3QgdGQgPSB0eXBlb2YgVGV4dERlY29kZXIgIT09ICJ1bmRlZmluZWQiID8gLyogQF9fUFVSRV9fICovIG5ldyBUZXh0RGVjb2RlcigpIDogdHlwZW9mIEJ1ZmZlciAhPT0gInVuZGVmaW5lZCIgPyB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgY29uc3Qgb3V0ID0gQnVmZmVyLmZyb20oYnVmLmJ1ZmZlciwgYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlTGVuZ3RoKTsKICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKICAgICAgICB9CiAgICAgIH0gOiB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgbGV0IG91dCA9ICIiOwogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBvdXQ7CiAgICAgICAgfQogICAgICB9OwogICAgICBjbGFzcyBTdHJpbmdXcml0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgICAgdGhpcy5wb3MgPSAwOwogICAgICAgICAgdGhpcy5vdXQgPSAiIjsKICAgICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnVmTGVuZ3RoKTsKICAgICAgICB9CiAgICAgICAgd3JpdGUodikgewogICAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXM7CiAgICAgICAgICBidWZmZXJbdGhpcy5wb3MrK10gPSB2OwogICAgICAgICAgaWYgKHRoaXMucG9zID09PSBidWZMZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5vdXQgKz0gdGQuZGVjb2RlKGJ1ZmZlcik7CiAgICAgICAgICAgIHRoaXMucG9zID0gMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZmx1c2goKSB7CiAgICAgICAgICBjb25zdCB7IGJ1ZmZlciwgb3V0LCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICByZXR1cm4gcG9zID4gMCA/IG91dCArIHRkLmRlY29kZShidWZmZXIuc3ViYXJyYXkoMCwgcG9zKSkgOiBvdXQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNsYXNzIFN0cmluZ1JlYWRlciB7CiAgICAgICAgY29uc3RydWN0b3IoYnVmZmVyKSB7CiAgICAgICAgICB0aGlzLnBvcyA9IDA7CiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IGJ1ZmZlcjsKICAgICAgICB9CiAgICAgICAgbmV4dCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKyspOwogICAgICAgIH0KICAgICAgICBwZWVrKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLmNoYXJDb2RlQXQodGhpcy5wb3MpOwogICAgICAgIH0KICAgICAgICBpbmRleE9mKGNoYXIpIHsKICAgICAgICAgIGNvbnN0IHsgYnVmZmVyLCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICBjb25zdCBpZHggPSBidWZmZXIuaW5kZXhPZihjaGFyLCBwb3MpOwogICAgICAgICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBidWZmZXIubGVuZ3RoIDogaWR4OwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdCBFTVBUWSA9IFtdOwogICAgICBmdW5jdGlvbiBkZWNvZGVPcmlnaW5hbFNjb3BlcyhpbnB1dCkgewogICAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSBpbnB1dDsKICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTsKICAgICAgICBjb25zdCBzY29wZXMgPSBbXTsKICAgICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICAgIGxldCBsaW5lID0gMDsKICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IGxlbmd0aDsgcmVhZGVyLnBvcysrKSB7CiAgICAgICAgICBsaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGxpbmUpOwogICAgICAgICAgY29uc3QgY29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkgewogICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgIGxhc3RbMl0gPSBsaW5lOwogICAgICAgICAgICBsYXN0WzNdID0gY29sdW1uOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtpbmQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBoYXNOYW1lID0gZmllbGRzICYgMTsKICAgICAgICAgIGNvbnN0IHNjb3BlID0gaGFzTmFtZSA/IFtsaW5lLCBjb2x1bW4sIDAsIDAsIGtpbmQsIGRlY29kZUludGVnZXIocmVhZGVyLCAwKV0gOiBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kXTsKICAgICAgICAgIGxldCB2YXJzID0gRU1QVFk7CiAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpIHsKICAgICAgICAgICAgdmFycyA9IFtdOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgY29uc3QgdmFyc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgIHZhcnMucHVzaCh2YXJzSW5kZXgpOwogICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzY29wZS52YXJzID0gdmFyczsKICAgICAgICAgIHNjb3Blcy5wdXNoKHNjb3BlKTsKICAgICAgICAgIHN0YWNrLnB1c2goc2NvcGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NvcGVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVuY29kZU9yaWdpbmFsU2NvcGVzKHNjb3BlcykgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjb3Blcy5sZW5ndGg7ICkgewogICAgICAgICAgaSA9IF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGksIHdyaXRlciwgWzBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKSB7CiAgICAgICAgY29uc3Qgc2NvcGUgPSBzY29wZXNbaW5kZXhdOwogICAgICAgIGNvbnN0IHsgMDogc3RhcnRMaW5lLCAxOiBzdGFydENvbHVtbiwgMjogZW5kTGluZSwgMzogZW5kQ29sdW1uLCA0OiBraW5kLCB2YXJzIH0gPSBzY29wZTsKICAgICAgICBpZiAoaW5kZXggPiAwKQogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzdGFydExpbmUsIHN0YXRlWzBdKTsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc3RhcnRDb2x1bW4sIDApOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBraW5kLCAwKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSBzY29wZS5sZW5ndGggPT09IDYgPyAxIDogMDsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZmllbGRzLCAwKTsKICAgICAgICBpZiAoc2NvcGUubGVuZ3RoID09PSA2KQogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNjb3BlWzVdLCAwKTsKICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFycykgewogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHYsIDApOwogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgc2NvcGVzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gc2NvcGVzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHdyaXRlci53cml0ZShjb21tYSk7CiAgICAgICAgc3RhdGVbMF0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kTGluZSwgc3RhdGVbMF0pOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIDApOwogICAgICAgIHJldHVybiBpbmRleDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVHZW5lcmF0ZWRSYW5nZXMoaW5wdXQpIHsKICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gaW5wdXQ7CiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihpbnB1dCk7CiAgICAgICAgY29uc3QgcmFuZ2VzID0gW107CiAgICAgICAgY29uc3Qgc3RhY2sgPSBbXTsKICAgICAgICBsZXQgZ2VuTGluZSA9IDA7CiAgICAgICAgbGV0IGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSAwOwogICAgICAgIGxldCBkZWZpbml0aW9uU2NvcGVJbmRleCA9IDA7CiAgICAgICAgbGV0IGNhbGxzaXRlU291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVMaW5lID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVDb2x1bW4gPSAwOwogICAgICAgIGxldCBiaW5kaW5nTGluZSA9IDA7CiAgICAgICAgbGV0IGJpbmRpbmdDb2x1bW4gPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgbGV0IGdlbkNvbHVtbiA9IDA7CiAgICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IHNlbWk7IHJlYWRlci5wb3MrKykgewogICAgICAgICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTsKICAgICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHsKICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgbGFzdFsyXSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgbGFzdFszXSA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICAgIGNvbnN0IGhhc0RlZmluaXRpb24gPSBmaWVsZHMgJiAxOwogICAgICAgICAgICBjb25zdCBoYXNDYWxsc2l0ZSA9IGZpZWxkcyAmIDI7CiAgICAgICAgICAgIGNvbnN0IGhhc1Njb3BlID0gZmllbGRzICYgNDsKICAgICAgICAgICAgbGV0IGNhbGxzaXRlID0gbnVsbDsKICAgICAgICAgICAgbGV0IGJpbmRpbmdzID0gRU1QVFk7CiAgICAgICAgICAgIGxldCByYW5nZTsKICAgICAgICAgICAgaWYgKGhhc0RlZmluaXRpb24pIHsKICAgICAgICAgICAgICBjb25zdCBkZWZTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgICAgZGVmaW5pdGlvblNjb3BlSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9PT0gZGVmU291cmNlc0luZGV4ID8gZGVmaW5pdGlvblNjb3BlSW5kZXggOiAwKTsKICAgICAgICAgICAgICBkZWZpbml0aW9uU291cmNlc0luZGV4ID0gZGVmU291cmNlc0luZGV4OwogICAgICAgICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMCwgZGVmU291cmNlc0luZGV4LCBkZWZpbml0aW9uU2NvcGVJbmRleF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmFuZ2UgPSBbZ2VuTGluZSwgZ2VuQ29sdW1uLCAwLCAwXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5pc1Njb3BlID0gISFoYXNTY29wZTsKICAgICAgICAgICAgaWYgKGhhc0NhbGxzaXRlKSB7CiAgICAgICAgICAgICAgY29uc3QgcHJldkNzaSA9IGNhbGxzaXRlU291cmNlc0luZGV4OwogICAgICAgICAgICAgIGNvbnN0IHByZXZMaW5lID0gY2FsbHNpdGVMaW5lOwogICAgICAgICAgICAgIGNhbGxzaXRlU291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGNhbGxzaXRlU291cmNlc0luZGV4KTsKICAgICAgICAgICAgICBjb25zdCBzYW1lU291cmNlID0gcHJldkNzaSA9PT0gY2FsbHNpdGVTb3VyY2VzSW5kZXg7CiAgICAgICAgICAgICAgY2FsbHNpdGVMaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNhbWVTb3VyY2UgPyBjYWxsc2l0ZUxpbmUgOiAwKTsKICAgICAgICAgICAgICBjYWxsc2l0ZUNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzYW1lU291cmNlICYmIHByZXZMaW5lID09PSBjYWxsc2l0ZUxpbmUgPyBjYWxsc2l0ZUNvbHVtbiA6IDApOwogICAgICAgICAgICAgIGNhbGxzaXRlID0gW2NhbGxzaXRlU291cmNlc0luZGV4LCBjYWxsc2l0ZUxpbmUsIGNhbGxzaXRlQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5jYWxsc2l0ZSA9IGNhbGxzaXRlOwogICAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKSB7CiAgICAgICAgICAgICAgYmluZGluZ3MgPSBbXTsKICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICBiaW5kaW5nTGluZSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZ2VuQ29sdW1uOwogICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb3VudCA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTsKICAgICAgICAgICAgICAgIGxldCBleHByZXNzaW9uUmFuZ2VzOwogICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zQ291bnQgPCAtMSkgewogICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzID0gW1tkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldXTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IC0xOyBpID4gZXhwcmVzc2lvbnNDb3VudDsgaS0tKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkJsID0gYmluZGluZ0xpbmU7CiAgICAgICAgICAgICAgICAgICAgYmluZGluZ0xpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUpOwogICAgICAgICAgICAgICAgICAgIGJpbmRpbmdDb2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUgPT09IHByZXZCbCA/IGJpbmRpbmdDb2x1bW4gOiAwKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMucHVzaChbZXhwcmVzc2lvbiwgYmluZGluZ0xpbmUsIGJpbmRpbmdDb2x1bW5dKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZXhwcmVzc2lvbnNDb3VudF1dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYmluZGluZ3MucHVzaChleHByZXNzaW9uUmFuZ2VzKTsKICAgICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJhbmdlLmJpbmRpbmdzID0gYmluZGluZ3M7CiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHJhbmdlKTsKICAgICAgICAgICAgc3RhY2sucHVzaChyYW5nZSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW5MaW5lKys7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8IGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzKSB7CiAgICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IFN0cmluZ1dyaXRlcigpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBpID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGksIHdyaXRlciwgWzAsIDAsIDAsIDAsIDAsIDAsIDBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSkgewogICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICBjb25zdCB7IDA6IHN0YXJ0TGluZSwgMTogc3RhcnRDb2x1bW4sIDI6IGVuZExpbmUsIDM6IGVuZENvbHVtbiwgaXNTY29wZSwgY2FsbHNpdGUsIGJpbmRpbmdzIH0gPSByYW5nZTsKICAgICAgICBpZiAoc3RhdGVbMF0gPCBzdGFydExpbmUpIHsKICAgICAgICAgIGNhdGNodXBMaW5lKHdyaXRlciwgc3RhdGVbMF0sIHN0YXJ0TGluZSk7CiAgICAgICAgICBzdGF0ZVswXSA9IHN0YXJ0TGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgcmFuZ2VbMV0sIHN0YXRlWzFdKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSAocmFuZ2UubGVuZ3RoID09PSA2ID8gMSA6IDApIHwgKGNhbGxzaXRlID8gMiA6IDApIHwgKGlzU2NvcGUgPyA0IDogMCk7CiAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7CiAgICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gNikgewogICAgICAgICAgY29uc3QgeyA0OiBzb3VyY2VzSW5kZXgsIDU6IHNjb3Blc0luZGV4IH0gPSByYW5nZTsKICAgICAgICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzJdKSB7CiAgICAgICAgICAgIHN0YXRlWzNdID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlWzJdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbMl0pOwogICAgICAgICAgc3RhdGVbM10gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVzSW5kZXgsIHN0YXRlWzNdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNhbGxzaXRlKSB7CiAgICAgICAgICBjb25zdCB7IDA6IHNvdXJjZXNJbmRleCwgMTogY2FsbExpbmUsIDI6IGNhbGxDb2x1bW4gfSA9IHJhbmdlLmNhbGxzaXRlOwogICAgICAgICAgaWYgKHNvdXJjZXNJbmRleCAhPT0gc3RhdGVbNF0pIHsKICAgICAgICAgICAgc3RhdGVbNV0gPSAwOwogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxMaW5lICE9PSBzdGF0ZVs1XSkgewogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZVs0XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzb3VyY2VzSW5kZXgsIHN0YXRlWzRdKTsKICAgICAgICAgIHN0YXRlWzVdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGNhbGxMaW5lLCBzdGF0ZVs1XSk7CiAgICAgICAgICBzdGF0ZVs2XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBjYWxsQ29sdW1uLCBzdGF0ZVs2XSk7CiAgICAgICAgfQogICAgICAgIGlmIChiaW5kaW5ncykgewogICAgICAgICAgZm9yIChjb25zdCBiaW5kaW5nIG9mIGJpbmRpbmdzKSB7CiAgICAgICAgICAgIGlmIChiaW5kaW5nLmxlbmd0aCA+IDEpCiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIC1iaW5kaW5nLmxlbmd0aCwgMCk7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBiaW5kaW5nWzBdWzBdOwogICAgICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwcmVzc2lvbiwgMCk7CiAgICAgICAgICAgIGxldCBiaW5kaW5nU3RhcnRMaW5lID0gc3RhcnRMaW5lOwogICAgICAgICAgICBsZXQgYmluZGluZ1N0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYmluZGluZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IGV4cFJhbmdlID0gYmluZGluZ1tpXTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRMaW5lID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzFdLCBiaW5kaW5nU3RhcnRMaW5lKTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRDb2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwUmFuZ2VbMl0sIGJpbmRpbmdTdGFydENvbHVtbik7CiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzBdLCAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaW5kZXgsIHdyaXRlciwgc3RhdGUpOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGVbMF0gPCBlbmRMaW5lKSB7CiAgICAgICAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBlbmRMaW5lKTsKICAgICAgICAgIHN0YXRlWzBdID0gZW5kTGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kQ29sdW1uLCBzdGF0ZVsxXSk7CiAgICAgICAgcmV0dXJuIGluZGV4OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhdGNodXBMaW5lKHdyaXRlciwgbGFzdExpbmUsIGxpbmUpIHsKICAgICAgICBkbyB7CiAgICAgICAgICB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTsKICAgICAgICB9IHdoaWxlICgrK2xhc3RMaW5lIDwgbGluZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVjb2RlKG1hcHBpbmdzKSB7CiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IG1hcHBpbmdzOwogICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIobWFwcGluZ3MpOwogICAgICAgIGNvbnN0IGRlY29kZWQgPSBbXTsKICAgICAgICBsZXQgZ2VuQ29sdW1uID0gMDsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgY29uc3QgbGluZSA9IFtdOwogICAgICAgICAgbGV0IHNvcnRlZCA9IHRydWU7CiAgICAgICAgICBsZXQgbGFzdENvbCA9IDA7CiAgICAgICAgICBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBzZW1pKSB7CiAgICAgICAgICAgIGxldCBzZWc7CiAgICAgICAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pOwogICAgICAgICAgICBpZiAoZ2VuQ29sdW1uIDwgbGFzdENvbCkKICAgICAgICAgICAgICBzb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgbGFzdENvbCA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgIHNvdXJjZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VzSW5kZXgpOwogICAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlTGluZSk7CiAgICAgICAgICAgICAgc291cmNlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZUNvbHVtbik7CiAgICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgICAgbmFtZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBuYW1lc0luZGV4KTsKICAgICAgICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2VnID0gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW5dOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzZWcgPSBbZ2VuQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsaW5lLnB1c2goc2VnKTsKICAgICAgICAgICAgcmVhZGVyLnBvcysrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFzb3J0ZWQpCiAgICAgICAgICAgIHNvcnQobGluZSk7CiAgICAgICAgICBkZWNvZGVkLnB1c2gobGluZSk7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8PSBsZW5ndGgpOwogICAgICAgIHJldHVybiBkZWNvZGVkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNvcnQobGluZSkgewogICAgICAgIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYSwgYikgewogICAgICAgIHJldHVybiBhWzBdIC0gYlswXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZCkgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07CiAgICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgIHdyaXRlci53cml0ZShzZW1pY29sb24pOwogICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGxldCBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBsaW5lW2pdOwogICAgICAgICAgICBpZiAoaiA+IDApCiAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICAgICAgZ2VuQ29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMF0sIGdlbkNvbHVtbik7CiAgICAgICAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgc291cmNlc0luZGV4ID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMV0sIHNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsyXSwgc291cmNlTGluZSk7CiAgICAgICAgICAgIHNvdXJjZUNvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzNdLCBzb3VyY2VDb2x1bW4pOwogICAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPT09IDQpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIG5hbWVzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFs0XSwgbmFtZXNJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB3cml0ZXIuZmx1c2goKTsKICAgICAgfQogICAgICBleHBvcnRzMy5kZWNvZGUgPSBkZWNvZGU7CiAgICAgIGV4cG9ydHMzLmRlY29kZUdlbmVyYXRlZFJhbmdlcyA9IGRlY29kZUdlbmVyYXRlZFJhbmdlczsKICAgICAgZXhwb3J0czMuZGVjb2RlT3JpZ2luYWxTY29wZXMgPSBkZWNvZGVPcmlnaW5hbFNjb3BlczsKICAgICAgZXhwb3J0czMuZW5jb2RlID0gZW5jb2RlOwogICAgICBleHBvcnRzMy5lbmNvZGVHZW5lcmF0ZWRSYW5nZXMgPSBlbmNvZGVHZW5lcmF0ZWRSYW5nZXM7CiAgICAgIGV4cG9ydHMzLmVuY29kZU9yaWdpbmFsU2NvcGVzID0gZW5jb2RlT3JpZ2luYWxTY29wZXM7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcwp2YXIgcmVxdWlyZV9tYWdpY19zdHJpbmdfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBzb3VyY2VtYXBDb2RlYyA9IHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCgpOwogICAgdmFyIEJpdFNldCA9IGNsYXNzIF9CaXRTZXQgewogICAgICBjb25zdHJ1Y3RvcihhcmcpIHsKICAgICAgICB0aGlzLmJpdHMgPSBhcmcgaW5zdGFuY2VvZiBfQml0U2V0ID8gYXJnLmJpdHMuc2xpY2UoKSA6IFtdOwogICAgICB9CiAgICAgIGFkZChuMikgewogICAgICAgIHRoaXMuYml0c1tuMiA+PiA1XSB8PSAxIDw8IChuMiAmIDMxKTsKICAgICAgfQogICAgICBoYXMobjIpIHsKICAgICAgICByZXR1cm4gISEodGhpcy5iaXRzW24yID4+IDVdICYgMSA8PCAobjIgJiAzMSkpOwogICAgICB9CiAgICB9OwogICAgdmFyIENodW5rID0gY2xhc3MgX0NodW5rIHsKICAgICAgY29uc3RydWN0b3Ioc3RhcnQsIGVuZCwgY29udGVudCkgewogICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKICAgICAgICB0aGlzLmVuZCA9IGVuZDsKICAgICAgICB0aGlzLm9yaWdpbmFsID0gY29udGVudDsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5zdG9yZU5hbWUgPSBmYWxzZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIHsKICAgICAgICAgIHRoaXMucHJldmlvdXMgPSBudWxsOwogICAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXBwZW5kTGVmdChjb250ZW50KSB7CiAgICAgICAgdGhpcy5vdXRybyArPSBjb250ZW50OwogICAgICB9CiAgICAgIGFwcGVuZFJpZ2h0KGNvbnRlbnQpIHsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRybyArIGNvbnRlbnQ7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgX0NodW5rKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICBjaHVuay5pbnRybyA9IHRoaXMuaW50cm87CiAgICAgICAgY2h1bmsub3V0cm8gPSB0aGlzLm91dHJvOwogICAgICAgIGNodW5rLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7CiAgICAgICAgY2h1bmsuc3RvcmVOYW1lID0gdGhpcy5zdG9yZU5hbWU7CiAgICAgICAgY2h1bmsuZWRpdGVkID0gdGhpcy5lZGl0ZWQ7CiAgICAgICAgcmV0dXJuIGNodW5rOwogICAgICB9CiAgICAgIGNvbnRhaW5zKGluZGV4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQgPCBpbmRleCAmJiBpbmRleCA8IHRoaXMuZW5kOwogICAgICB9CiAgICAgIGVhY2hOZXh0KGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWFjaFByZXZpb3VzKGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVkaXQoY29udGVudCwgc3RvcmVOYW1lLCBjb250ZW50T25seSkgewogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgaWYgKCFjb250ZW50T25seSkgewogICAgICAgICAgdGhpcy5pbnRybyA9ICIiOwogICAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIH0KICAgICAgICB0aGlzLnN0b3JlTmFtZSA9IHN0b3JlTmFtZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IHRydWU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZExlZnQoY29udGVudCkgewogICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICBwcmVwZW5kUmlnaHQoY29udGVudCkgewogICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIGlmICh0aGlzLmVkaXRlZCkgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5vcmlnaW5hbDsKICAgICAgICAgIHRoaXMuc3RvcmVOYW1lID0gZmFsc2U7CiAgICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBzcGxpdChpbmRleCkgewogICAgICAgIGNvbnN0IHNsaWNlSW5kZXggPSBpbmRleCAtIHRoaXMuc3RhcnQ7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCZWZvcmUgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKDAsIHNsaWNlSW5kZXgpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQWZ0ZXIgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHNsaWNlSW5kZXgpOwogICAgICAgIHRoaXMub3JpZ2luYWwgPSBvcmlnaW5hbEJlZm9yZTsKICAgICAgICBjb25zdCBuZXdDaHVuayA9IG5ldyBfQ2h1bmsoaW5kZXgsIHRoaXMuZW5kLCBvcmlnaW5hbEFmdGVyKTsKICAgICAgICBuZXdDaHVuay5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuZW5kID0gaW5kZXg7CiAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICBuZXdDaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB0aGlzLmNvbnRlbnQgPSAiIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gb3JpZ2luYWxCZWZvcmU7CiAgICAgICAgfQogICAgICAgIG5ld0NodW5rLm5leHQgPSB0aGlzLm5leHQ7CiAgICAgICAgaWYgKG5ld0NodW5rLm5leHQpIG5ld0NodW5rLm5leHQucHJldmlvdXMgPSBuZXdDaHVuazsKICAgICAgICBuZXdDaHVuay5wcmV2aW91cyA9IHRoaXM7CiAgICAgICAgdGhpcy5uZXh0ID0gbmV3Q2h1bms7CiAgICAgICAgcmV0dXJuIG5ld0NodW5rOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgdGhpcy5jb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICB0cmltRW5kKHJ4KSB7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIHRoaXMuc3BsaXQodGhpcy5zdGFydCArIHRyaW1tZWQubGVuZ3RoKS5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgICBpZiAodGhpcy5lZGl0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLmVkaXQodHJpbW1lZCwgdGhpcy5zdG9yZU5hbWUsIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KHJ4KSB7CiAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLmludHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gdGhpcy5zcGxpdCh0aGlzLmVuZCAtIHRyaW1tZWQubGVuZ3RoKTsKICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICAgICAgbmV3Q2h1bmsuZWRpdCh0cmltbWVkLCB0aGlzLnN0b3JlTmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZWRpdCgiIiwgdm9pZCAwLCB0cnVlKTsKICAgICAgICAgIHRoaXMub3V0cm8gPSB0aGlzLm91dHJvLnJlcGxhY2UocngsICIiKTsKICAgICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gZ2V0QnRvYSgpIHsKICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5idG9hID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIChzdHIyKSA9PiBnbG9iYWxUaGlzLmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cjIpKSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJldHVybiAoc3RyMikgPT4gQnVmZmVyLmZyb20oc3RyMiwgInV0Zi04IikudG9TdHJpbmcoImJhc2U2NCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGVudmlyb25tZW50OiBgd2luZG93LmJ0b2FgIG9yIGBCdWZmZXJgIHNob3VsZCBiZSBzdXBwb3J0ZWQuIik7CiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgdmFyIGJ0b2EgPSAvKiBAX19QVVJFX18gKi8gZ2V0QnRvYSgpOwogICAgdmFyIFNvdXJjZU1hcCA9IGNsYXNzIHsKICAgICAgY29uc3RydWN0b3IocHJvcGVydGllcykgewogICAgICAgIHRoaXMudmVyc2lvbiA9IDM7CiAgICAgICAgdGhpcy5maWxlID0gcHJvcGVydGllcy5maWxlOwogICAgICAgIHRoaXMuc291cmNlcyA9IHByb3BlcnRpZXMuc291cmNlczsKICAgICAgICB0aGlzLnNvdXJjZXNDb250ZW50ID0gcHJvcGVydGllcy5zb3VyY2VzQ29udGVudDsKICAgICAgICB0aGlzLm5hbWVzID0gcHJvcGVydGllcy5uYW1lczsKICAgICAgICB0aGlzLm1hcHBpbmdzID0gc291cmNlbWFwQ29kZWMuZW5jb2RlKHByb3BlcnRpZXMubWFwcGluZ3MpOwogICAgICAgIGlmICh0eXBlb2YgcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgdGhpcy54X2dvb2dsZV9pZ25vcmVMaXN0ID0gcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXMuZGVidWdJZCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHRoaXMuZGVidWdJZCA9IHByb3BlcnRpZXMuZGVidWdJZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpOwogICAgICB9CiAgICAgIHRvVXJsKCkgewogICAgICAgIHJldHVybiAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyBidG9hKHRoaXMudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBndWVzc0luZGVudChjb2RlKSB7CiAgICAgIGNvbnN0IGxpbmVzID0gY29kZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgdGFiYmVkID0gbGluZXMuZmlsdGVyKChsaW5lKSA9PiAvXlx0Ky8udGVzdChsaW5lKSk7CiAgICAgIGNvbnN0IHNwYWNlZCA9IGxpbmVzLmZpbHRlcigobGluZSkgPT4gL14gezIsfS8udGVzdChsaW5lKSk7CiAgICAgIGlmICh0YWJiZWQubGVuZ3RoID09PSAwICYmIHNwYWNlZC5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBpZiAodGFiYmVkLmxlbmd0aCA+PSBzcGFjZWQubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuICIJIjsKICAgICAgfQogICAgICBjb25zdCBtaW4gPSBzcGFjZWQucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICAgIGNvbnN0IG51bVNwYWNlcyA9IC9eICsvLmV4ZWMoY3VycmVudClbMF0ubGVuZ3RoOwogICAgICAgIHJldHVybiBNYXRoLm1pbihudW1TcGFjZXMsIHByZXZpb3VzKTsKICAgICAgfSwgSW5maW5pdHkpOwogICAgICByZXR1cm4gbmV3IEFycmF5KG1pbiArIDEpLmpvaW4oIiAiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChmcm9tLCB0bykgewogICAgICBjb25zdCBmcm9tUGFydHMgPSBmcm9tLnNwbGl0KC9bL1xcXS8pOwogICAgICBjb25zdCB0b1BhcnRzID0gdG8uc3BsaXQoL1svXFxdLyk7CiAgICAgIGZyb21QYXJ0cy5wb3AoKTsKICAgICAgd2hpbGUgKGZyb21QYXJ0c1swXSA9PT0gdG9QYXJ0c1swXSkgewogICAgICAgIGZyb21QYXJ0cy5zaGlmdCgpOwogICAgICAgIHRvUGFydHMuc2hpZnQoKTsKICAgICAgfQogICAgICBpZiAoZnJvbVBhcnRzLmxlbmd0aCkgewogICAgICAgIGxldCBpID0gZnJvbVBhcnRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSBmcm9tUGFydHNbaV0gPSAiLi4iOwogICAgICB9CiAgICAgIHJldHVybiBmcm9tUGFydHMuY29uY2F0KHRvUGFydHMpLmpvaW4oIi8iKTsKICAgIH0KICAgIHZhciB0b1N0cmluZzIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwogICAgZnVuY3Rpb24gaXNPYmplY3QyKHRoaW5nKSB7CiAgICAgIHJldHVybiB0b1N0cmluZzIuY2FsbCh0aGluZykgPT09ICJbb2JqZWN0IE9iamVjdF0iOwogICAgfQogICAgZnVuY3Rpb24gZ2V0TG9jYXRvcihzb3VyY2UpIHsKICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgbGluZU9mZnNldHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDAsIHBvcyA9IDA7IGkgPCBvcmlnaW5hbExpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGluZU9mZnNldHMucHVzaChwb3MpOwogICAgICAgIHBvcyArPSBvcmlnaW5hbExpbmVzW2ldLmxlbmd0aCArIDE7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvY2F0ZShpbmRleCkgewogICAgICAgIGxldCBpID0gMDsKICAgICAgICBsZXQgaiA9IGxpbmVPZmZzZXRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaSA8IGopIHsKICAgICAgICAgIGNvbnN0IG0gPSBpICsgaiA+PiAxOwogICAgICAgICAgaWYgKGluZGV4IDwgbGluZU9mZnNldHNbbV0pIHsKICAgICAgICAgICAgaiA9IG07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpID0gbSArIDE7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxpbmUgPSBpIC0gMTsKICAgICAgICBjb25zdCBjb2x1bW4gPSBpbmRleCAtIGxpbmVPZmZzZXRzW2xpbmVdOwogICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9OwogICAgICB9OwogICAgfQogICAgdmFyIHdvcmRSZWdleCA9IC9cdy87CiAgICB2YXIgTWFwcGluZ3MgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGhpcmVzKSB7CiAgICAgICAgdGhpcy5oaXJlcyA9IGhpcmVzOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUxpbmUgPSAwOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgdGhpcy5yYXcgPSBbXTsKICAgICAgICB0aGlzLnJhd1NlZ21lbnRzID0gdGhpcy5yYXdbdGhpcy5nZW5lcmF0ZWRDb2RlTGluZV0gPSBbXTsKICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkZEVkaXQoc291cmNlSW5kZXgsIGNvbnRlbnQsIGxvYywgbmFtZUluZGV4KSB7CiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBjb250ZW50TGVuZ3RoTWludXNPbmUgPSBjb250ZW50Lmxlbmd0aCAtIDE7CiAgICAgICAgICBsZXQgY29udGVudExpbmVFbmQgPSBjb250ZW50LmluZGV4T2YoIlxuIiwgMCk7CiAgICAgICAgICBsZXQgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IC0xOwogICAgICAgICAgd2hpbGUgKGNvbnRlbnRMaW5lRW5kID49IDAgJiYgY29udGVudExlbmd0aE1pbnVzT25lID4gY29udGVudExpbmVFbmQpIHsKICAgICAgICAgICAgY29uc3Qgc2VnbWVudDIgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgICBzZWdtZW50Mi5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5yYXdTZWdtZW50cy5wdXNoKHNlZ21lbnQyKTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IGNvbnRlbnRMaW5lRW5kOwogICAgICAgICAgICBjb250ZW50TGluZUVuZCA9IGNvbnRlbnQuaW5kZXhPZigiXG4iLCBjb250ZW50TGluZUVuZCArIDEpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2VnbWVudCA9IFt0aGlzLmdlbmVyYXRlZENvZGVDb2x1bW4sIHNvdXJjZUluZGV4LCBsb2MubGluZSwgbG9jLmNvbHVtbl07CiAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgc2VnbWVudC5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICB0aGlzLmFkdmFuY2UoY29udGVudC5zbGljZShwcmV2aW91c0NvbnRlbnRMaW5lRW5kICsgMSkpOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nKSB7CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2godGhpcy5wZW5kaW5nKTsKICAgICAgICAgIHRoaXMuYWR2YW5jZShjb250ZW50KTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gbnVsbDsKICAgICAgfQogICAgICBhZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgb3JpZ2luYWwsIGxvYywgc291cmNlbWFwTG9jYXRpb25zKSB7CiAgICAgICAgbGV0IG9yaWdpbmFsQ2hhckluZGV4ID0gY2h1bmsuc3RhcnQ7CiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTsKICAgICAgICBsZXQgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENoYXJJbmRleCA8IGNodW5rLmVuZCkgewogICAgICAgICAgaWYgKG9yaWdpbmFsW29yaWdpbmFsQ2hhckluZGV4XSA9PT0gIlxuIikgewogICAgICAgICAgICBsb2MubGluZSArPSAxOwogICAgICAgICAgICBsb2MuY29sdW1uID0gMDsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgZmlyc3QgPSB0cnVlOwogICAgICAgICAgICBjaGFySW5IaXJlc0JvdW5kYXJ5ID0gZmFsc2U7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5oaXJlcyB8fCBmaXJzdCB8fCBzb3VyY2VtYXBMb2NhdGlvbnMuaGFzKG9yaWdpbmFsQ2hhckluZGV4KSkgewogICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICAgIGlmICh0aGlzLmhpcmVzID09PSAiYm91bmRhcnkiKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZFJlZ2V4LnRlc3Qob3JpZ2luYWxbb3JpZ2luYWxDaGFySW5kZXhdKSkgewogICAgICAgICAgICAgICAgICBpZiAoIWNoYXJJbkhpcmVzQm91bmRhcnkpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmF3U2VnbWVudHMucHVzaChzZWdtZW50KTsKICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGxvYy5jb2x1bW4gKz0gMTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uICs9IDE7CiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvcmlnaW5hbENoYXJJbmRleCArPSAxOwogICAgICAgIH0KICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkdmFuY2Uoc3RyMikgewogICAgICAgIGlmICghc3RyMikgcmV0dXJuOwogICAgICAgIGNvbnN0IGxpbmVzID0gc3RyMi5zcGxpdCgiXG4iKTsKICAgICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkgewogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSsrOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiArPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGg7CiAgICAgIH0KICAgIH07CiAgICB2YXIgbiA9ICJcbiI7CiAgICB2YXIgd2FybmVkID0gewogICAgICBpbnNlcnRMZWZ0OiBmYWxzZSwKICAgICAgaW5zZXJ0UmlnaHQ6IGZhbHNlLAogICAgICBzdG9yZU5hbWU6IGZhbHNlCiAgICB9OwogICAgdmFyIE1hZ2ljU3RyaW5nID0gY2xhc3MgX01hZ2ljU3RyaW5nIHsKICAgICAgY29uc3RydWN0b3Ioc3RyaW5nLCBvcHRpb25zID0ge30pIHsKICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBDaHVuaygwLCBzdHJpbmcubGVuZ3RoLCBzdHJpbmcpOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKICAgICAgICAgIG9yaWdpbmFsOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogc3RyaW5nIH0sCiAgICAgICAgICBvdXRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBpbnRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBmaXJzdENodW5rOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogY2h1bmsgfSwKICAgICAgICAgIGxhc3RDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBsYXN0U2VhcmNoZWRDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBieVN0YXJ0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGJ5RW5kOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGZpbGVuYW1lOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5maWxlbmFtZSB9LAogICAgICAgICAgaW5kZW50RXhjbHVzaW9uUmFuZ2VzOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pbmRlbnRFeGNsdXNpb25SYW5nZXMgfSwKICAgICAgICAgIHNvdXJjZW1hcExvY2F0aW9uczogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG5ldyBCaXRTZXQoKSB9LAogICAgICAgICAgc3RvcmVkTmFtZXM6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB7fSB9LAogICAgICAgICAgaW5kZW50U3RyOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogdm9pZCAwIH0sCiAgICAgICAgICBpZ25vcmVMaXN0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pZ25vcmVMaXN0IH0sCiAgICAgICAgICBvZmZzZXQ6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBvcHRpb25zLm9mZnNldCB8fCAwIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLmJ5U3RhcnRbMF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5RW5kW3N0cmluZy5sZW5ndGhdID0gY2h1bms7CiAgICAgIH0KICAgICAgYWRkU291cmNlbWFwTG9jYXRpb24oY2hhcikgewogICAgICAgIHRoaXMuc291cmNlbWFwTG9jYXRpb25zLmFkZChjaGFyKTsKICAgICAgfQogICAgICBhcHBlbmQoY29udGVudCkgewogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoIm91dHJvIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kTGVmdChjb250ZW50KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5pbnRybyArPSBjb250ZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGluZGV4ID0gaW5kZXggKyB0aGlzLm9mZnNldDsKICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICJzdHJpbmciKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnNlcnRlZCBjb250ZW50IG11c3QgYmUgYSBzdHJpbmciKTsKICAgICAgICB0aGlzLl9zcGxpdChpbmRleCk7CiAgICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmJ5U3RhcnRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2xvbmVkID0gbmV3IF9NYWdpY1N0cmluZyh0aGlzLm9yaWdpbmFsLCB7IGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLCBvZmZzZXQ6IHRoaXMub2Zmc2V0IH0pOwogICAgICAgIGxldCBvcmlnaW5hbENodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGxldCBjbG9uZWRDaHVuayA9IGNsb25lZC5maXJzdENodW5rID0gY2xvbmVkLmxhc3RTZWFyY2hlZENodW5rID0gb3JpZ2luYWxDaHVuay5jbG9uZSgpOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENodW5rKSB7CiAgICAgICAgICBjbG9uZWQuYnlTdGFydFtjbG9uZWRDaHVuay5zdGFydF0gPSBjbG9uZWRDaHVuazsKICAgICAgICAgIGNsb25lZC5ieUVuZFtjbG9uZWRDaHVuay5lbmRdID0gY2xvbmVkQ2h1bms7CiAgICAgICAgICBjb25zdCBuZXh0T3JpZ2luYWxDaHVuayA9IG9yaWdpbmFsQ2h1bmsubmV4dDsKICAgICAgICAgIGNvbnN0IG5leHRDbG9uZWRDaHVuayA9IG5leHRPcmlnaW5hbENodW5rICYmIG5leHRPcmlnaW5hbENodW5rLmNsb25lKCk7CiAgICAgICAgICBpZiAobmV4dENsb25lZENodW5rKSB7CiAgICAgICAgICAgIGNsb25lZENodW5rLm5leHQgPSBuZXh0Q2xvbmVkQ2h1bms7CiAgICAgICAgICAgIG5leHRDbG9uZWRDaHVuay5wcmV2aW91cyA9IGNsb25lZENodW5rOwogICAgICAgICAgICBjbG9uZWRDaHVuayA9IG5leHRDbG9uZWRDaHVuazsKICAgICAgICAgIH0KICAgICAgICAgIG9yaWdpbmFsQ2h1bmsgPSBuZXh0T3JpZ2luYWxDaHVuazsKICAgICAgICB9CiAgICAgICAgY2xvbmVkLmxhc3RDaHVuayA9IGNsb25lZENodW5rOwogICAgICAgIGlmICh0aGlzLmluZGVudEV4Y2x1c2lvblJhbmdlcykgewogICAgICAgICAgY2xvbmVkLmluZGVudEV4Y2x1c2lvblJhbmdlcyA9IHRoaXMuaW5kZW50RXhjbHVzaW9uUmFuZ2VzLnNsaWNlKCk7CiAgICAgICAgfQogICAgICAgIGNsb25lZC5zb3VyY2VtYXBMb2NhdGlvbnMgPSBuZXcgQml0U2V0KHRoaXMuc291cmNlbWFwTG9jYXRpb25zKTsKICAgICAgICBjbG9uZWQuaW50cm8gPSB0aGlzLmludHJvOwogICAgICAgIGNsb25lZC5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgcmV0dXJuIGNsb25lZDsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gMDsKICAgICAgICBjb25zdCBuYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkTmFtZXMpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gbmV3IE1hcHBpbmdzKG9wdGlvbnMuaGlyZXMpOwogICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IodGhpcy5vcmlnaW5hbCk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0ZShjaHVuay5zdGFydCk7CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLmludHJvKTsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgbWFwcGluZ3MuYWRkRWRpdCgKICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICBjaHVuay5jb250ZW50LAogICAgICAgICAgICAgIGxvYywKICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgdGhpcy5vcmlnaW5hbCwgbG9jLCB0aGlzLnNvdXJjZW1hcExvY2F0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlID8gb3B0aW9ucy5maWxlLnNwbGl0KC9bL1xcXS8pLnBvcCgpIDogdm9pZCAwLAogICAgICAgICAgc291cmNlczogWwogICAgICAgICAgICBvcHRpb25zLnNvdXJjZSA/IGdldFJlbGF0aXZlUGF0aChvcHRpb25zLmZpbGUgfHwgIiIsIG9wdGlvbnMuc291cmNlKSA6IG9wdGlvbnMuZmlsZSB8fCAiIgogICAgICAgICAgXSwKICAgICAgICAgIHNvdXJjZXNDb250ZW50OiBvcHRpb25zLmluY2x1ZGVDb250ZW50ID8gW3RoaXMub3JpZ2luYWxdIDogdm9pZCAwLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdDogdGhpcy5pZ25vcmVMaXN0ID8gW3NvdXJjZUluZGV4XSA6IHZvaWQgMAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBfZW5zdXJlaW5kZW50U3RyKCkgewogICAgICAgIGlmICh0aGlzLmluZGVudFN0ciA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aGlzLmluZGVudFN0ciA9IGd1ZXNzSW5kZW50KHRoaXMub3JpZ2luYWwpOwogICAgICAgIH0KICAgICAgfQogICAgICBfZ2V0UmF3SW5kZW50U3RyaW5nKCkgewogICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgIHJldHVybiB0aGlzLmluZGVudFN0cjsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgdGhpcy5fZW5zdXJlaW5kZW50U3RyKCk7CiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZW50U3RyID09PSBudWxsID8gIgkiIDogdGhpcy5pbmRlbnRTdHI7CiAgICAgIH0KICAgICAgaW5kZW50KGluZGVudFN0ciwgb3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvXlteXHJcbl0vZ207CiAgICAgICAgaWYgKGlzT2JqZWN0MihpbmRlbnRTdHIpKSB7CiAgICAgICAgICBvcHRpb25zID0gaW5kZW50U3RyOwogICAgICAgICAgaW5kZW50U3RyID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSB2b2lkIDApIHsKICAgICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgICAgaW5kZW50U3RyID0gdGhpcy5pbmRlbnRTdHIgfHwgIgkiOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgY29uc3QgaXNFeGNsdWRlZCA9IHt9OwogICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGUpIHsKICAgICAgICAgIGNvbnN0IGV4Y2x1c2lvbnMgPSB0eXBlb2Ygb3B0aW9ucy5leGNsdWRlWzBdID09PSAibnVtYmVyIiA/IFtvcHRpb25zLmV4Y2x1ZGVdIDogb3B0aW9ucy5leGNsdWRlOwogICAgICAgICAgZXhjbHVzaW9ucy5mb3JFYWNoKChleGNsdXNpb24pID0+IHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IGV4Y2x1c2lvblswXTsgaSA8IGV4Y2x1c2lvblsxXTsgaSArPSAxKSB7CiAgICAgICAgICAgICAgaXNFeGNsdWRlZFtpXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBsZXQgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IG9wdGlvbnMuaW5kZW50U3RhcnQgIT09IGZhbHNlOwogICAgICAgIGNvbnN0IHJlcGxhY2VyID0gKG1hdGNoKSA9PiB7CiAgICAgICAgICBpZiAoc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgcmV0dXJuIGAke2luZGVudFN0cn0ke21hdGNofWA7CiAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gdHJ1ZTsKICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICB9OwogICAgICAgIHRoaXMuaW50cm8gPSB0aGlzLmludHJvLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZXIpOwogICAgICAgIGxldCBjaGFySW5kZXggPSAwOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGNvbnN0IGVuZCA9IGNodW5rLmVuZDsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgaWYgKCFpc0V4Y2x1ZGVkW2NoYXJJbmRleF0pIHsKICAgICAgICAgICAgICBjaHVuay5jb250ZW50ID0gY2h1bmsuY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VyKTsKICAgICAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHNob3VsZEluZGVudE5leHRDaGFyYWN0ZXIgPSBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjaGFySW5kZXggPSBjaHVuay5zdGFydDsKICAgICAgICAgICAgd2hpbGUgKGNoYXJJbmRleCA8IGVuZCkgewogICAgICAgICAgICAgIGlmICghaXNFeGNsdWRlZFtjaGFySW5kZXhdKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gdGhpcy5vcmlnaW5hbFtjaGFySW5kZXhdOwogICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICJcbiIpIHsKICAgICAgICAgICAgICAgICAgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgIT09ICJcciIgJiYgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgewogICAgICAgICAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGlmIChjaGFySW5kZXggPT09IGNodW5rLnN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3BsaXRDaHVuayhjaHVuaywgY2hhckluZGV4KTsKICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2hhckluZGV4ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGNoYXJJbmRleCA9IGNodW5rLmVuZDsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlcik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgaW5zZXJ0KCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgcHJlcGVuZFJpZ2h0KC4uLikgb3IgYXBwZW5kTGVmdCguLi4pIgogICAgICAgICk7CiAgICAgIH0KICAgICAgaW5zZXJ0TGVmdChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydExlZnQpIHsKICAgICAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIm1hZ2ljU3RyaW5nLmluc2VydExlZnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgbWFnaWNTdHJpbmcuYXBwZW5kTGVmdCguLi4pIGluc3RlYWQiCiAgICAgICAgICApOwogICAgICAgICAgd2FybmVkLmluc2VydExlZnQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KTsKICAgICAgfQogICAgICBpbnNlcnRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydFJpZ2h0KSB7CiAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnRSaWdodCguLi4pIGlzIGRlcHJlY2F0ZWQuIFVzZSBtYWdpY1N0cmluZy5wcmVwZW5kUmlnaHQoLi4uKSBpbnN0ZWFkIgogICAgICAgICAgKTsKICAgICAgICAgIHdhcm5lZC5pbnNlcnRSaWdodCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLnByZXBlbmRSaWdodChpbmRleCwgY29udGVudCk7CiAgICAgIH0KICAgICAgbW92ZShzdGFydCwgZW5kLCBpbmRleCkgewogICAgICAgIHN0YXJ0ID0gc3RhcnQgKyB0aGlzLm9mZnNldDsKICAgICAgICBlbmQgPSBlbmQgKyB0aGlzLm9mZnNldDsKICAgICAgICBpbmRleCA9IGluZGV4ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKGluZGV4ID49IHN0YXJ0ICYmIGluZGV4IDw9IGVuZCkgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbW92ZSBhIHNlbGVjdGlvbiBpbnNpZGUgaXRzZWxmIik7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgdGhpcy5fc3BsaXQoaW5kZXgpOwogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGNvbnN0IG9sZExlZnQgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICBjb25zdCBvbGRSaWdodCA9IGxhc3QubmV4dDsKICAgICAgICBjb25zdCBuZXdSaWdodCA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKCFuZXdSaWdodCAmJiBsYXN0ID09PSB0aGlzLmxhc3RDaHVuaykgcmV0dXJuIHRoaXM7CiAgICAgICAgY29uc3QgbmV3TGVmdCA9IG5ld1JpZ2h0ID8gbmV3UmlnaHQucHJldmlvdXMgOiB0aGlzLmxhc3RDaHVuazsKICAgICAgICBpZiAob2xkTGVmdCkgb2xkTGVmdC5uZXh0ID0gb2xkUmlnaHQ7CiAgICAgICAgaWYgKG9sZFJpZ2h0KSBvbGRSaWdodC5wcmV2aW91cyA9IG9sZExlZnQ7CiAgICAgICAgaWYgKG5ld0xlZnQpIG5ld0xlZnQubmV4dCA9IGZpcnN0OwogICAgICAgIGlmIChuZXdSaWdodCkgbmV3UmlnaHQucHJldmlvdXMgPSBsYXN0OwogICAgICAgIGlmICghZmlyc3QucHJldmlvdXMpIHRoaXMuZmlyc3RDaHVuayA9IGxhc3QubmV4dDsKICAgICAgICBpZiAoIWxhc3QubmV4dCkgewogICAgICAgICAgdGhpcy5sYXN0Q2h1bmsgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICAgIHRoaXMubGFzdENodW5rLm5leHQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBmaXJzdC5wcmV2aW91cyA9IG5ld0xlZnQ7CiAgICAgICAgbGFzdC5uZXh0ID0gbmV3UmlnaHQgfHwgbnVsbDsKICAgICAgICBpZiAoIW5ld0xlZnQpIHRoaXMuZmlyc3RDaHVuayA9IGZpcnN0OwogICAgICAgIGlmICghbmV3UmlnaHQpIHRoaXMubGFzdENodW5rID0gbGFzdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvdmVyd3JpdGUoc3RhcnQsIGVuZCwgY29udGVudCwgb3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShzdGFydCwgZW5kLCBjb250ZW50LCB7IC4uLm9wdGlvbnMsIG92ZXJ3cml0ZTogIW9wdGlvbnMuY29udGVudE9ubHkgfSk7CiAgICAgIH0KICAgICAgdXBkYXRlKHN0YXJ0LCBlbmQsIGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigicmVwbGFjZW1lbnQgY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChlbmQgPiB0aGlzLm9yaWdpbmFsLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCJlbmQgaXMgb3V0IG9mIGJvdW5kcyIpOwogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiQ2Fubm90IG92ZXJ3cml0ZSBhIHplcm8tbGVuZ3RoIHJhbmdlIFx1MjAxMyB1c2UgYXBwZW5kTGVmdCBvciBwcmVwZW5kUmlnaHQgaW5zdGVhZCIKICAgICAgICAgICk7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUpIHsKICAgICAgICAgIGlmICghd2FybmVkLnN0b3JlTmFtZSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgIlRoZSBmaW5hbCBhcmd1bWVudCB0byBtYWdpY1N0cmluZy5vdmVyd3JpdGUoLi4uKSBzaG91bGQgYmUgYW4gb3B0aW9ucyBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcmljaC1oYXJyaXMvbWFnaWMtc3RyaW5nIgogICAgICAgICAgICApOwogICAgICAgICAgICB3YXJuZWQuc3RvcmVOYW1lID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wdGlvbnMgPSB7IHN0b3JlTmFtZTogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBzdG9yZU5hbWUgPSBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zLnN0b3JlTmFtZSA6IGZhbHNlOwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZSA9IG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMub3ZlcndyaXRlIDogZmFsc2U7CiAgICAgICAgaWYgKHN0b3JlTmFtZSkgewogICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc3RvcmVkTmFtZXMsIG9yaWdpbmFsLCB7CiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgICB2YWx1ZTogdHJ1ZSwKICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGlmIChmaXJzdCkgewogICAgICAgICAgbGV0IGNodW5rID0gZmlyc3Q7CiAgICAgICAgICB3aGlsZSAoY2h1bmsgIT09IGxhc3QpIHsKICAgICAgICAgICAgaWYgKGNodW5rLm5leHQgIT09IHRoaXMuYnlTdGFydFtjaHVuay5lbmRdKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgb3ZlcndyaXRlIGFjcm9zcyBhIHNwbGl0IHBvaW50Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICBjaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmaXJzdC5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSwgIW92ZXJ3cml0ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gbmV3IENodW5rKHN0YXJ0LCBlbmQsICIiKS5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSk7CiAgICAgICAgICBsYXN0Lm5leHQgPSBuZXdDaHVuazsKICAgICAgICAgIG5ld0NodW5rLnByZXZpb3VzID0gbGFzdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZChjb250ZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cm8gY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgdGhpcy5pbnRybyA9IGNvbnRlbnQgKyB0aGlzLmludHJvOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHByZXBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsucHJlcGVuZExlZnQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5wcmVwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcmVtb3ZlKHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5pbnRybyA9ICIiOwogICAgICAgICAgY2h1bmsub3V0cm8gPSAiIjsKICAgICAgICAgIGNodW5rLmVkaXQoIiIpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlc2V0KHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5yZXNldCgpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGxhc3RDaGFyKCkgewogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRoaXMub3V0cm9bdGhpcy5vdXRyby5sZW5ndGggLSAxXTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsub3V0cm9bY2h1bmsub3V0cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHJldHVybiBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsuaW50cm9bY2h1bmsuaW50cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgfSB3aGlsZSAoY2h1bmsgPSBjaHVuay5wcmV2aW91cyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdGhpcy5pbnRyb1t0aGlzLmludHJvLmxlbmd0aCAtIDFdOwogICAgICAgIHJldHVybiAiIjsKICAgICAgfQogICAgICBsYXN0TGluZSgpIHsKICAgICAgICBsZXQgbGluZUluZGV4ID0gdGhpcy5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIHRoaXMub3V0cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpOwogICAgICAgIGxldCBsaW5lU3RyID0gdGhpcy5vdXRybzsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPT0gLTEpIHJldHVybiBjaHVuay5vdXRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgICAgICBsaW5lU3RyID0gY2h1bmsub3V0cm8gKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnQubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5jb250ZW50Lmxhc3RJbmRleE9mKG4pOwogICAgICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIGNodW5rLmNvbnRlbnQuc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmNvbnRlbnQgKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGluZUluZGV4ID0gY2h1bmsuaW50cm8ubGFzdEluZGV4T2Yobik7CiAgICAgICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gY2h1bmsuaW50cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmludHJvICsgbGluZVN0cjsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLnByZXZpb3VzKTsKICAgICAgICBsaW5lSW5kZXggPSB0aGlzLmludHJvLmxhc3RJbmRleE9mKG4pOwogICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gdGhpcy5pbnRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgbGluZVN0cjsKICAgICAgfQogICAgICBzbGljZShzdGFydCA9IDAsIGVuZCA9IHRoaXMub3JpZ2luYWwubGVuZ3RoIC0gdGhpcy5vZmZzZXQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgd2hpbGUgKGNodW5rICYmIChjaHVuay5zdGFydCA+IHN0YXJ0IHx8IGNodW5rLmVuZCA8PSBzdGFydCkpIHsKICAgICAgICAgIGlmIChjaHVuay5zdGFydCA8IGVuZCAmJiBjaHVuay5lbmQgPj0gZW5kKSB7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmIChjaHVuayAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuc3RhcnQgIT09IHN0YXJ0KQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIHJlcGxhY2VkIGNoYXJhY3RlciAke3N0YXJ0fSBhcyBzbGljZSBzdGFydCBhbmNob3IuYCk7CiAgICAgICAgY29uc3Qgc3RhcnRDaHVuayA9IGNodW5rOwogICAgICAgIHdoaWxlIChjaHVuaykgewogICAgICAgICAgaWYgKGNodW5rLmludHJvICYmIChzdGFydENodW5rICE9PSBjaHVuayB8fCBjaHVuay5zdGFydCA9PT0gc3RhcnQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5pbnRybzsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGNvbnRhaW5zRW5kID0gY2h1bmsuc3RhcnQgPCBlbmQgJiYgY2h1bmsuZW5kID49IGVuZDsKICAgICAgICAgIGlmIChjb250YWluc0VuZCAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuZW5kICE9PSBlbmQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVzZSByZXBsYWNlZCBjaGFyYWN0ZXIgJHtlbmR9IGFzIHNsaWNlIGVuZCBhbmNob3IuYCk7CiAgICAgICAgICBjb25zdCBzbGljZVN0YXJ0ID0gc3RhcnRDaHVuayA9PT0gY2h1bmsgPyBzdGFydCAtIGNodW5rLnN0YXJ0IDogMDsKICAgICAgICAgIGNvbnN0IHNsaWNlRW5kID0gY29udGFpbnNFbmQgPyBjaHVuay5jb250ZW50Lmxlbmd0aCArIGVuZCAtIGNodW5rLmVuZCA6IGNodW5rLmNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgcmVzdWx0ICs9IGNodW5rLmNvbnRlbnQuc2xpY2Uoc2xpY2VTdGFydCwgc2xpY2VFbmQpOwogICAgICAgICAgaWYgKGNodW5rLm91dHJvICYmICghY29udGFpbnNFbmQgfHwgY2h1bmsuZW5kID09PSBlbmQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5vdXRybzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChjb250YWluc0VuZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGlzPyBub3QgcmVhbGx5IHZlcnkgdXNlZnVsCiAgICAgIHNuaXAoc3RhcnQsIGVuZCkgewogICAgICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpOwogICAgICAgIGNsb25lLnJlbW92ZSgwLCBzdGFydCk7CiAgICAgICAgY2xvbmUucmVtb3ZlKGVuZCwgY2xvbmUub3JpZ2luYWwubGVuZ3RoKTsKICAgICAgICByZXR1cm4gY2xvbmU7CiAgICAgIH0KICAgICAgX3NwbGl0KGluZGV4KSB7CiAgICAgICAgaWYgKHRoaXMuYnlTdGFydFtpbmRleF0gfHwgdGhpcy5ieUVuZFtpbmRleF0pIHJldHVybjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RTZWFyY2hlZENodW5rOwogICAgICAgIGNvbnN0IHNlYXJjaEZvcndhcmQgPSBpbmRleCA+IGNodW5rLmVuZDsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGlmIChjaHVuay5jb250YWlucyhpbmRleCkpIHJldHVybiB0aGlzLl9zcGxpdENodW5rKGNodW5rLCBpbmRleCk7CiAgICAgICAgICBjaHVuayA9IHNlYXJjaEZvcndhcmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IHRoaXMuYnlFbmRbY2h1bmsuc3RhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgICBfc3BsaXRDaHVuayhjaHVuaywgaW5kZXgpIHsKICAgICAgICBpZiAoY2h1bmsuZWRpdGVkICYmIGNodW5rLmNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBsb2MgPSBnZXRMb2NhdG9yKHRoaXMub3JpZ2luYWwpKGluZGV4KTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBhIGNodW5rIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBlZGl0ZWQgKCR7bG9jLmxpbmV9OiR7bG9jLmNvbHVtbn0gXHUyMDEzICIke2NodW5rLm9yaWdpbmFsfSIpYAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSBjaHVuay5zcGxpdChpbmRleCk7CiAgICAgICAgdGhpcy5ieUVuZFtpbmRleF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5U3RhcnRbaW5kZXhdID0gbmV3Q2h1bms7CiAgICAgICAgdGhpcy5ieUVuZFtuZXdDaHVuay5lbmRdID0gbmV3Q2h1bms7CiAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBuZXdDaHVuazsKICAgICAgICB0aGlzLmxhc3RTZWFyY2hlZENodW5rID0gY2h1bms7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgbGV0IHN0cjIgPSB0aGlzLmludHJvOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIHN0cjIgKz0gY2h1bmsudG9TdHJpbmcoKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cjIgKyB0aGlzLm91dHJvOwogICAgICB9CiAgICAgIGlzRW1wdHkoKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChjaHVuay5pbnRyby5sZW5ndGggJiYgY2h1bmsuaW50cm8udHJpbSgpIHx8IGNodW5rLmNvbnRlbnQubGVuZ3RoICYmIGNodW5rLmNvbnRlbnQudHJpbSgpIHx8IGNodW5rLm91dHJvLmxlbmd0aCAmJiBjaHVuay5vdXRyby50cmltKCkpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLm5leHQpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGxlbmd0aCgpIHsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgbGV0IGxlbmd0aCA9IDA7CiAgICAgICAgZG8gewogICAgICAgICAgbGVuZ3RoICs9IGNodW5rLmludHJvLmxlbmd0aCArIGNodW5rLmNvbnRlbnQubGVuZ3RoICsgY2h1bmsub3V0cm8ubGVuZ3RoOwogICAgICAgIH0gd2hpbGUgKGNodW5rID0gY2h1bmsubmV4dCk7CiAgICAgICAgcmV0dXJuIGxlbmd0aDsKICAgICAgfQogICAgICB0cmltTGluZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbSgiW1xcclxcbl0iKTsKICAgICAgfQogICAgICB0cmltKGNoYXJUeXBlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbVN0YXJ0KGNoYXJUeXBlKS50cmltRW5kKGNoYXJUeXBlKTsKICAgICAgfQogICAgICB0cmltRW5kQWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5sYXN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1FbmQocngpOwogICAgICAgICAgaWYgKGNodW5rLmVuZCAhPT0gZW5kKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RDaHVuayA9PT0gY2h1bmspIHsKICAgICAgICAgICAgICB0aGlzLmxhc3RDaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5lbmRdID0gY2h1bms7CiAgICAgICAgICAgIHRoaXMuYnlTdGFydFtjaHVuay5uZXh0LnN0YXJ0XSA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIHRoaXMuYnlFbmRbY2h1bmsubmV4dC5lbmRdID0gY2h1bmsubmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhYm9ydGVkKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfSB3aGlsZSAoY2h1bmspOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cmltRW5kKGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltRW5kQWJvcnRlZChjaGFyVHlwZSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0QWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1TdGFydChyeCk7CiAgICAgICAgICBpZiAoY2h1bmsuZW5kICE9PSBlbmQpIHsKICAgICAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICB0aGlzLmJ5RW5kW2NodW5rLmVuZF0gPSBjaHVuazsKICAgICAgICAgICAgdGhpcy5ieVN0YXJ0W2NodW5rLm5leHQuc3RhcnRdID0gY2h1bmsubmV4dDsKICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5uZXh0LmVuZF0gPSBjaHVuay5uZXh0OwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFib3J0ZWQpIHJldHVybiB0cnVlOwogICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgIH0gd2hpbGUgKGNodW5rKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltU3RhcnRBYm9ydGVkKGNoYXJUeXBlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBoYXNDaGFuZ2VkKCkgewogICAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsICE9PSB0aGlzLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VSZWdleHAoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgZnVuY3Rpb24gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHN0cjIpIHsKICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC5yZXBsYWNlKC9cJChcJHwmfFxkKykvZywgKF8sIGkpID0+IHsKICAgICAgICAgICAgICBpZiAoaSA9PT0gIiQiKSByZXR1cm4gIiQiOwogICAgICAgICAgICAgIGlmIChpID09PSAiJiIpIHJldHVybiBtYXRjaFswXTsKICAgICAgICAgICAgICBjb25zdCBudW0gPSAraTsKICAgICAgICAgICAgICBpZiAobnVtIDwgbWF0Y2gubGVuZ3RoKSByZXR1cm4gbWF0Y2hbK2ldOwogICAgICAgICAgICAgIHJldHVybiBgJCR7aX1gOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudCguLi5tYXRjaCwgbWF0Y2guaW5kZXgsIHN0cjIsIG1hdGNoLmdyb3Vwcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG1hdGNoQWxsKHJlLCBzdHIyKSB7CiAgICAgICAgICBsZXQgbWF0Y2g7CiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gW107CiAgICAgICAgICB3aGlsZSAobWF0Y2ggPSByZS5leGVjKHN0cjIpKSB7CiAgICAgICAgICAgIG1hdGNoZXMucHVzaChtYXRjaCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG1hdGNoQWxsKHNlYXJjaFZhbHVlLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICAgIG1hdGNoZXMuZm9yRWFjaCgobWF0Y2gpID0+IHsKICAgICAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudDIgPSBnZXRSZXBsYWNlbWVudChtYXRjaCwgdGhpcy5vcmlnaW5hbCk7CiAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50MiAhPT0gbWF0Y2hbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMub3JpZ2luYWwubWF0Y2goc2VhcmNoVmFsdWUpOwogICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQyID0gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHRoaXMub3JpZ2luYWwpOwogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQyICE9PSBtYXRjaFswXSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfcmVwbGFjZVN0cmluZyhzdHJpbmcsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgY29uc3QgeyBvcmlnaW5hbCB9ID0gdGhpczsKICAgICAgICBjb25zdCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsKICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7CiAgICAgICAgICB0aGlzLm92ZXJ3cml0ZShpbmRleCwgaW5kZXggKyBzdHJpbmcubGVuZ3RoLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBzZWFyY2hWYWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlU3RyaW5nKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlUmVnZXhwKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VBbGxTdHJpbmcoc3RyaW5nLCByZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IHsgb3JpZ2luYWwgfSA9IHRoaXM7CiAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICAgICAgICBmb3IgKGxldCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsgaW5kZXggIT09IC0xOyBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nLCBpbmRleCArIHN0cmluZ0xlbmd0aCkpIHsKICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gb3JpZ2luYWwuc2xpY2UoaW5kZXgsIGluZGV4ICsgc3RyaW5nTGVuZ3RoKTsKICAgICAgICAgIGlmIChwcmV2aW91cyAhPT0gcmVwbGFjZW1lbnQpIHRoaXMub3ZlcndyaXRlKGluZGV4LCBpbmRleCArIHN0cmluZ0xlbmd0aCwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCkgewogICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoVmFsdWUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUFsbFN0cmluZyhzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICBpZiAoIXNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIk1hZ2ljU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIGNhbGxlZCB3aXRoIGEgbm9uLWdsb2JhbCBSZWdFeHAgYXJndW1lbnQiCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZVJlZ2V4cChzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICB9CiAgICB9OwogICAgdmFyIGhhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OwogICAgdmFyIEJ1bmRsZSA9IGNsYXNzIF9CdW5kbGUgewogICAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHsKICAgICAgICB0aGlzLmludHJvID0gb3B0aW9ucy5pbnRybyB8fCAiIjsKICAgICAgICB0aGlzLnNlcGFyYXRvciA9IG9wdGlvbnMuc2VwYXJhdG9yICE9PSB2b2lkIDAgPyBvcHRpb25zLnNlcGFyYXRvciA6ICJcbiI7CiAgICAgICAgdGhpcy5zb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUgPSB7fTsKICAgICAgfQogICAgICBhZGRTb3VyY2Uoc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE1hZ2ljU3RyaW5nKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgICBjb250ZW50OiBzb3VyY2UsCiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIHNlcGFyYXRvcjogdGhpcy5zZXBhcmF0b3IKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzT2JqZWN0Mihzb3VyY2UpIHx8ICFzb3VyY2UuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiYnVuZGxlLmFkZFNvdXJjZSgpIHRha2VzIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRlbnRgIHByb3BlcnR5LCB3aGljaCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgTWFnaWNTdHJpbmcsIGFuZCBhbiBvcHRpb25hbCBgZmlsZW5hbWVgIgogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgWyJmaWxlbmFtZSIsICJpZ25vcmVMaXN0IiwgImluZGVudEV4Y2x1c2lvblJhbmdlcyIsICJzZXBhcmF0b3IiXS5mb3JFYWNoKChvcHRpb24pID0+IHsKICAgICAgICAgIGlmICghaGFzT3duUHJvcC5jYWxsKHNvdXJjZSwgb3B0aW9uKSkgc291cmNlW29wdGlvbl0gPSBzb3VyY2UuY29udGVudFtvcHRpb25dOwogICAgICAgIH0pOwogICAgICAgIGlmIChzb3VyY2Uuc2VwYXJhdG9yID09PSB2b2lkIDApIHsKICAgICAgICAgIHNvdXJjZS5zZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcjsKICAgICAgICB9CiAgICAgICAgaWYgKHNvdXJjZS5maWxlbmFtZSkgewogICAgICAgICAgaWYgKCFoYXNPd25Qcm9wLmNhbGwodGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUsIHNvdXJjZS5maWxlbmFtZSkpIHsKICAgICAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA9IHRoaXMudW5pcXVlU291cmNlcy5sZW5ndGg7CiAgICAgICAgICAgIHRoaXMudW5pcXVlU291cmNlcy5wdXNoKHsgZmlsZW5hbWU6IHNvdXJjZS5maWxlbmFtZSwgY29udGVudDogc291cmNlLmNvbnRlbnQub3JpZ2luYWwgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB1bmlxdWVTb3VyY2UgPSB0aGlzLnVuaXF1ZVNvdXJjZXNbdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXV07CiAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGVudC5vcmlnaW5hbCAhPT0gdW5pcXVlU291cmNlLmNvbnRlbnQpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgc291cmNlOiBzYW1lIGZpbGVuYW1lICgke3NvdXJjZS5maWxlbmFtZX0pLCBkaWZmZXJlbnQgY29udGVudHNgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChzb3VyY2UpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGFwcGVuZChzdHIyLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgY29udGVudDogbmV3IE1hZ2ljU3RyaW5nKHN0cjIpLAogICAgICAgICAgc2VwYXJhdG9yOiBvcHRpb25zICYmIG9wdGlvbnMuc2VwYXJhdG9yIHx8ICIiCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgYnVuZGxlID0gbmV3IF9CdW5kbGUoewogICAgICAgICAgaW50cm86IHRoaXMuaW50cm8sCiAgICAgICAgICBzZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9yCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgYnVuZGxlLmFkZFNvdXJjZSh7CiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZS5jb250ZW50LmNsb25lKCksCiAgICAgICAgICAgIHNlcGFyYXRvcjogc291cmNlLnNlcGFyYXRvcgogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGJ1bmRsZTsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucyA9IHt9KSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSBbXTsKICAgICAgICBsZXQgeF9nb29nbGVfaWdub3JlTGlzdCA9IHZvaWQgMDsKICAgICAgICB0aGlzLnNvdXJjZXMuZm9yRWFjaCgoc291cmNlKSA9PiB7CiAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UuY29udGVudC5zdG9yZWROYW1lcykuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAoIX5uYW1lcy5pbmRleE9mKG5hbWUpKSBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBuZXcgTWFwcGluZ3Mob3B0aW9ucy5oaXJlcyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICBtYXBwaW5ncy5hZHZhbmNlKHRoaXMuc2VwYXJhdG9yKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gc291cmNlLmZpbGVuYW1lID8gdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA6IC0xOwogICAgICAgICAgY29uc3QgbWFnaWNTdHJpbmcgPSBzb3VyY2UuY29udGVudDsKICAgICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IobWFnaWNTdHJpbmcub3JpZ2luYWwpOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLmludHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcuaW50cm8pOwogICAgICAgICAgfQogICAgICAgICAgbWFnaWNTdHJpbmcuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRlKGNodW5rLnN0YXJ0KTsKICAgICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCkgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5pbnRybyk7CiAgICAgICAgICAgIGlmIChzb3VyY2UuZmlsZW5hbWUpIHsKICAgICAgICAgICAgICBpZiAoY2h1bmsuZWRpdGVkKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRFZGl0KAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmsuY29udGVudCwKICAgICAgICAgICAgICAgICAgbG9jLAogICAgICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmssCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLm9yaWdpbmFsLAogICAgICAgICAgICAgICAgICBsb2MsCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLnNvdXJjZW1hcExvY2F0aW9ucwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5jb250ZW50KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLm91dHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcub3V0cm8pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZS5pZ25vcmVMaXN0ICYmIHNvdXJjZUluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBpZiAoeF9nb29nbGVfaWdub3JlTGlzdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdCA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHhfZ29vZ2xlX2lnbm9yZUxpc3QucHVzaChzb3VyY2VJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSA/IG9wdGlvbnMuZmlsZS5zcGxpdCgvWy9cXF0vKS5wb3AoKSA6IHZvaWQgMCwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maWxlID8gZ2V0UmVsYXRpdmVQYXRoKG9wdGlvbnMuZmlsZSwgc291cmNlLmZpbGVuYW1lKSA6IHNvdXJjZS5maWxlbmFtZTsKICAgICAgICAgIH0pLAogICAgICAgICAgc291cmNlc0NvbnRlbnQ6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmNsdWRlQ29udGVudCA/IHNvdXJjZS5jb250ZW50IDogbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nQ291bnRzID0ge307CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgY29uc3QgaW5kZW50U3RyID0gc291cmNlLmNvbnRlbnQuX2dldFJhd0luZGVudFN0cmluZygpOwogICAgICAgICAgaWYgKGluZGVudFN0ciA9PT0gbnVsbCkgcmV0dXJuOwogICAgICAgICAgaWYgKCFpbmRlbnRTdHJpbmdDb3VudHNbaW5kZW50U3RyXSkgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gPSAwOwogICAgICAgICAgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gKz0gMTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoaW5kZW50U3RyaW5nQ291bnRzKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICByZXR1cm4gaW5kZW50U3RyaW5nQ291bnRzW2FdIC0gaW5kZW50U3RyaW5nQ291bnRzW2JdOwogICAgICAgIH0pWzBdIHx8ICIJIjsKICAgICAgfQogICAgICBpbmRlbnQoaW5kZW50U3RyKSB7CiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICBpbmRlbnRTdHIgPSB0aGlzLmdldEluZGVudFN0cmluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgbGV0IHRyYWlsaW5nTmV3bGluZSA9ICF0aGlzLmludHJvIHx8IHRoaXMuaW50cm8uc2xpY2UoLTEpID09PSAiXG4iOwogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNvdXJjZS5zZXBhcmF0b3IgIT09IHZvaWQgMCA/IHNvdXJjZS5zZXBhcmF0b3IgOiB0aGlzLnNlcGFyYXRvcjsKICAgICAgICAgIGNvbnN0IGluZGVudFN0YXJ0ID0gdHJhaWxpbmdOZXdsaW5lIHx8IGkgPiAwICYmIC9ccj9cbiQvLnRlc3Qoc2VwYXJhdG9yKTsKICAgICAgICAgIHNvdXJjZS5jb250ZW50LmluZGVudChpbmRlbnRTdHIsIHsKICAgICAgICAgICAgZXhjbHVkZTogc291cmNlLmluZGVudEV4Y2x1c2lvblJhbmdlcywKICAgICAgICAgICAgaW5kZW50U3RhcnQKICAgICAgICAgICAgLy86IHRyYWlsaW5nTmV3bGluZSB8fCAvXHI/XG4kLy50ZXN0KCBzZXBhcmF0b3IgKSAgLy90cnVlLy8vXHI/XG4vLnRlc3QoIHNlcGFyYXRvciApCiAgICAgICAgICB9KTsKICAgICAgICAgIHRyYWlsaW5nTmV3bGluZSA9IHNvdXJjZS5jb250ZW50Lmxhc3RDaGFyKCkgPT09ICJcbiI7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBpbmRlbnRTdHIgKyB0aGlzLmludHJvLnJlcGxhY2UoL15bXlxuXS9nbSwgKG1hdGNoLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gaW5kZXggPiAwID8gaW5kZW50U3RyICsgbWF0Y2ggOiBtYXRjaDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBwcmVwZW5kKHN0cjIpIHsKICAgICAgICB0aGlzLmludHJvID0gc3RyMiArIHRoaXMuaW50cm87CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuc291cmNlcy5tYXAoKHNvdXJjZSwgaSkgPT4gewogICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc291cmNlLnNlcGFyYXRvciAhPT0gdm9pZCAwID8gc291cmNlLnNlcGFyYXRvciA6IHRoaXMuc2VwYXJhdG9yOwogICAgICAgICAgY29uc3Qgc3RyMiA9IChpID4gMCA/IHNlcGFyYXRvciA6ICIiKSArIHNvdXJjZS5jb250ZW50LnRvU3RyaW5nKCk7CiAgICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgICB9KS5qb2luKCIiKTsKICAgICAgICByZXR1cm4gdGhpcy5pbnRybyArIGJvZHk7CiAgICAgIH0KICAgICAgaXNFbXB0eSgpIHsKICAgICAgICBpZiAodGhpcy5pbnRyby5sZW5ndGggJiYgdGhpcy5pbnRyby50cmltKCkpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VzLnNvbWUoKHNvdXJjZSkgPT4gIXNvdXJjZS5jb250ZW50LmlzRW1wdHkoKSkpIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBsZW5ndGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlcy5yZWR1Y2UoCiAgICAgICAgICAobGVuZ3RoLCBzb3VyY2UpID0+IGxlbmd0aCArIHNvdXJjZS5jb250ZW50Lmxlbmd0aCgpLAogICAgICAgICAgdGhpcy5pbnRyby5sZW5ndGgKICAgICAgICApOwogICAgICB9CiAgICAgIHRyaW1MaW5lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltKCJbXFxyXFxuXSIpOwogICAgICB9CiAgICAgIHRyaW0oY2hhclR5cGUpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltU3RhcnQoY2hhclR5cGUpLnRyaW1FbmQoY2hhclR5cGUpOwogICAgICB9CiAgICAgIHRyaW1TdGFydChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKCF0aGlzLmludHJvKSB7CiAgICAgICAgICBsZXQgc291cmNlOwogICAgICAgICAgbGV0IGkgPSAwOwogICAgICAgICAgZG8gewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbaSsrXTsKICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAoIXNvdXJjZS5jb250ZW50LnRyaW1TdGFydEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbUVuZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgbGV0IHNvdXJjZTsKICAgICAgICBsZXQgaSA9IHRoaXMuc291cmNlcy5sZW5ndGggLSAxOwogICAgICAgIGRvIHsKICAgICAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlc1tpLS1dOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICghc291cmNlLmNvbnRlbnQudHJpbUVuZEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgfTsKICAgIE1hZ2ljU3RyaW5nLkJ1bmRsZSA9IEJ1bmRsZTsKICAgIE1hZ2ljU3RyaW5nLlNvdXJjZU1hcCA9IFNvdXJjZU1hcDsKICAgIE1hZ2ljU3RyaW5nLmRlZmF1bHQgPSBNYWdpY1N0cmluZzsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hZ2ljU3RyaW5nOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcwp2YXIgcmVxdWlyZV9yZWNvcmRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBleHBvcnRzMi5JbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBtYWdpY19zdHJpbmdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlX21hZ2ljX3N0cmluZ19janMoKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5kZXgsIG1pbiwgbWF4ID0gSW5maW5pdHkpIHsKICAgICAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uID0gSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uOwogICAgdmFyIFVwZGF0ZVJlY29yZGVyQmFzZSA9IGNsYXNzIF9VcGRhdGVSZWNvcmRlckJhc2UgewogICAgICBkYXRhOwogICAgICBib207CiAgICAgIF9wYXRoOwogICAgICBjb250ZW50OwogICAgICBjb25zdHJ1Y3RvcihkYXRhLCBwYXRoLCBlbmNvZGluZyA9ICJ1dGYtOCIsIGJvbSA9IGZhbHNlKSB7CiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgICB0aGlzLmJvbSA9IGJvbTsKICAgICAgICBsZXQgdGV4dDsKICAgICAgICB0cnkgewogICAgICAgICAgdGV4dCA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZywgeyBmYXRhbDogdHJ1ZSwgaWdub3JlQk9NOiBmYWxzZSB9KS5kZWNvZGUoZGF0YSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyAke2VuY29kaW5nfSB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5jb250ZW50ID0gbmV3IG1hZ2ljX3N0cmluZ18xLmRlZmF1bHQodGV4dCk7CiAgICAgIH0KICAgICAgc3RhdGljIGNyZWF0ZUZyb21GaWxlRW50cnkoZW50cnkpIHsKICAgICAgICBjb25zdCBjMCA9IGVudHJ5LmNvbnRlbnQuYnl0ZUxlbmd0aCA+IDAgJiYgZW50cnkuY29udGVudC5yZWFkVUludDgoMCk7CiAgICAgICAgY29uc3QgYzEgPSBlbnRyeS5jb250ZW50LmJ5dGVMZW5ndGggPiAxICYmIGVudHJ5LmNvbnRlbnQucmVhZFVJbnQ4KDEpOwogICAgICAgIGNvbnN0IGMyID0gZW50cnkuY29udGVudC5ieXRlTGVuZ3RoID4gMiAmJiBlbnRyeS5jb250ZW50LnJlYWRVSW50OCgyKTsKICAgICAgICBpZiAoYzAgPT0gMjM5ICYmIGMxID09IDE4NyAmJiBjMiA9PSAxOTEpIHsKICAgICAgICAgIHJldHVybiBuZXcgX1VwZGF0ZVJlY29yZGVyQmFzZShlbnRyeS5jb250ZW50LCBlbnRyeS5wYXRoLCAidXRmLTgiLCB0cnVlKTsKICAgICAgICB9IGVsc2UgaWYgKGMwID09PSAyNTUgJiYgYzEgPT0gMjU0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCwgInV0Zi0xNmxlIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChjMCA9PT0gMjU0ICYmIGMxID09IDI1NSkgewogICAgICAgICAgcmV0dXJuIG5ldyBfVXBkYXRlUmVjb3JkZXJCYXNlKGVudHJ5LmNvbnRlbnQsIGVudHJ5LnBhdGgsICJ1dGYtMTZiZSIsIHRydWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IHBhdGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7CiAgICAgIH0KICAgICAgX2Fzc2VydEluZGV4KGluZGV4KSB7CiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpIHsKICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24oaW5kZXgsIDAsIHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLgogICAgICBpbnNlcnRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50LnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGluc2VydFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRSaWdodChpbmRleCwgY29udGVudC50b1N0cmluZygpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZW1vdmUoaW5kZXgsIGxlbmd0aCkgewogICAgICAgIHRoaXMuX2Fzc2VydEluZGV4KGluZGV4KTsKICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlKGluZGV4LCBpbmRleCArIGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYXBwbHkoY29udGVudCkgewogICAgICAgIGlmICghY29udGVudC5lcXVhbHModGhpcy5kYXRhKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHRoaXMucGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKCh0aGlzLmJvbSA/ICJcdUZFRkYiIDogIiIpICsgdGhpcy5jb250ZW50LnRvU3RyaW5nKCksICJ1dGYtOCIpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBVcGRhdGVSZWNvcmRlckJhc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2NvcGVkVHJlZSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGRlbGVnYXRlXzEgPSByZXF1aXJlX2RlbGVnYXRlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBTY29wZWRGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9iYXNlOwogICAgICBzY29wZTsKICAgICAgY29uc3RydWN0b3IoX2Jhc2UsIHNjb3BlKSB7CiAgICAgICAgdGhpcy5fYmFzZSA9IF9iYXNlOwogICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuc2NvcGUsIHRoaXMuX2Jhc2UucGF0aCkpOwogICAgICB9CiAgICAgIGdldCBjb250ZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmNvbnRlbnQ7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkRGlyRW50cnkgPSBjbGFzcyBfU2NvcGVkRGlyRW50cnkgewogICAgICBfYmFzZTsKICAgICAgc2NvcGU7CiAgICAgIGNvbnN0cnVjdG9yKF9iYXNlLCBzY29wZSkgewogICAgICAgIHRoaXMuX2Jhc2UgPSBfYmFzZTsKICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgIH0KICAgICAgZ2V0IHBhcmVudCgpIHsKICAgICAgICBpZiAoIXRoaXMuX2Jhc2UucGFyZW50IHx8IHRoaXMuX2Jhc2UucGF0aCA9PSB0aGlzLnNjb3BlKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBfU2NvcGVkRGlyRW50cnkodGhpcy5fYmFzZS5wYXJlbnQsIHRoaXMuc2NvcGUpOwogICAgICB9CiAgICAgIGdldCBwYXRoKCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgdGhpcy5fYmFzZS5wYXRoKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmRpcnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZGlyczsKICAgICAgfQogICAgICBnZXQgc3ViZmlsZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZmlsZXM7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZGlyKG5hbWUpOwogICAgICAgIHJldHVybiBlbnRyeSAmJiBuZXcgX1Njb3BlZERpckVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZmlsZShuYW1lKTsKICAgICAgICByZXR1cm4gZW50cnkgJiYgbmV3IFNjb3BlZEZpbGVFbnRyeShlbnRyeSwgdGhpcy5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLnZpc2l0KChwYXRoLCBlbnRyeSkgPT4gewogICAgICAgICAgdmlzaXRvcigoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgcGF0aCkpLCBlbnRyeSAmJiBuZXcgU2NvcGVkRmlsZUVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkVHJlZSA9IGNsYXNzIF9TY29wZWRUcmVlIHsKICAgICAgX2Jhc2U7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihfYmFzZSwgc2NvcGUpIHsKICAgICAgICB0aGlzLl9iYXNlID0gX2Jhc2U7CiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIiArIHNjb3BlKTsKICAgICAgICB0aGlzLl9yb290ID0gbmV3IFNjb3BlZERpckVudHJ5KHRoaXMuX2Jhc2UuZ2V0RGlyKG5vcm1hbGl6ZWRTY29wZSksIG5vcm1hbGl6ZWRTY29wZSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX1Njb3BlZFRyZWUodGhpcy5fYmFzZS5icmFuY2goKSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgbWVyZ2Uob3RoZXIsIHN0cmF0ZWd5KSB7CiAgICAgICAgY29uc3Qgc2VsZjIgPSB0aGlzOwogICAgICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGNsYXNzIGV4dGVuZHMgZGVsZWdhdGVfMS5EZWxlZ2F0ZVRyZWUgewogICAgICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgICAgIHJldHVybiBvdGhlci5hY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiBzZWxmMi5fZnVsbFBhdGhBY3Rpb24oYWN0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfShvdGhlcik7CiAgICAgICAgdGhpcy5fYmFzZS5tZXJnZShkZWxlZ2F0ZSwgc3RyYXRlZ3kpOwogICAgICB9CiAgICAgIC8vIFJlYWRvbmx5LgogICAgICByZWFkKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkKHRoaXMuX2Z1bGxQYXRoKHBhdGgpKTsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVhZFRleHQodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlYWRKc29uKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkSnNvbih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5leGlzdHModGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldCh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWRGaWxlRW50cnkoZW50cnksIHRoaXMuX3Jvb3Quc2NvcGUpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldERpcih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWREaXJFbnRyeShlbnRyeSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uub3ZlcndyaXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuYmVnaW5VcGRhdGUodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5jb21taXRVcGRhdGUocmVjb3JkKTsKICAgICAgfQogICAgICAvLyBTdHJ1Y3R1cmFsIG1ldGhvZHMuCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuY3JlYXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmRlbGV0ZSh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVuYW1lKHRoaXMuX2Z1bGxQYXRoKGZyb20pLCB0aGlzLl9mdWxsUGF0aCh0bykpOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5hcHBseSh0aGlzLl9mdWxsUGF0aEFjdGlvbihhY3Rpb24pLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgY29uc3Qgc2NvcGVkQWN0aW9ucyA9IFtdOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuX2Jhc2UuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFhY3Rpb24ucGF0aC5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFjdGlvbi5raW5kICE9PSAiciIpIHsKICAgICAgICAgICAgc2NvcGVkQWN0aW9ucy5wdXNoKHsKICAgICAgICAgICAgICAuLi5hY3Rpb24sCiAgICAgICAgICAgICAgcGF0aDogKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuX3Jvb3Quc2NvcGUsIGFjdGlvbi5wYXRoKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi50by5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIHNjb3BlZEFjdGlvbnMucHVzaCh7CiAgICAgICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgICAgIHBhdGg6ICgwLCBjb3JlXzEuam9pbikoY29yZV8xLk5vcm1hbGl6ZWRSb290LCAoMCwgY29yZV8xLnJlbGF0aXZlKSh0aGlzLl9yb290LnNjb3BlLCBhY3Rpb24ucGF0aCkpLAogICAgICAgICAgICAgIHRvOiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5fcm9vdC5zY29wZSwgYWN0aW9uLnRvKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBzY29wZWRBY3Rpb25zOwogICAgICB9CiAgICAgIFtpbnRlcmZhY2VfMS5UcmVlU3ltYm9sXSgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfZnVsbFBhdGgocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKHRoaXMuX3Jvb3Quc2NvcGUsICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgX2Z1bGxQYXRoQWN0aW9uKGFjdGlvbikgewogICAgICAgIGxldCBmdWxsUGF0aEFjdGlvbjsKICAgICAgICBpZiAoYWN0aW9uLmtpbmQgPT09ICJyIikgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpLAogICAgICAgICAgICB0bzogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnRvKQogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVsbFBhdGhBY3Rpb247CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZWRUcmVlID0gU2NvcGVkVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaG9zdC10cmVlLmpzCnZhciByZXF1aXJlX2hvc3RfdHJlZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9ob3N0LXRyZWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gZXhwb3J0czIuSG9zdENyZWF0ZVRyZWUgPSBleHBvcnRzMi5Ib3N0VHJlZSA9IGV4cG9ydHMyLkhvc3REaXJFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBkZWxlZ2F0ZV8xID0gcmVxdWlyZV9kZWxlZ2F0ZSgpOwogICAgdmFyIGVudHJ5XzEgPSByZXF1aXJlX2VudHJ5KCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciByZWNvcmRlcl8xID0gcmVxdWlyZV9yZWNvcmRlcigpOwogICAgdmFyIHNjb3BlZF8xID0gcmVxdWlyZV9zY29wZWQyKCk7CiAgICB2YXIgX3VuaXF1ZUlkID0gMDsKICAgIHZhciBIb3N0RGlyRW50cnkgPSBjbGFzcyB7CiAgICAgIHBhcmVudDsKICAgICAgcGF0aDsKICAgICAgX2hvc3Q7CiAgICAgIF90cmVlOwogICAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHBhdGgsIF9ob3N0LCBfdHJlZSkgewogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5faG9zdCA9IF9ob3N0OwogICAgICAgIHRoaXMuX3RyZWUgPSBfdHJlZTsKICAgICAgfQogICAgICBnZXQgc3ViZGlycygpIHsKICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5saXN0KHRoaXMucGF0aCkuZmlsdGVyKChmcmFnbWVudCkgPT4gdGhpcy5faG9zdC5pc0RpcmVjdG9yeSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmZpbGVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0Lmxpc3QodGhpcy5wYXRoKS5maWx0ZXIoKGZyYWdtZW50KSA9PiB0aGlzLl9ob3N0LmlzRmlsZSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXREaXIoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXQoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHRoaXMuZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpLmZvckVhY2goKGZpbGUpID0+IHZpc2l0b3IoZmlsZS5wYXRoLCBmaWxlKSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgIT09IGludGVyZmFjZV8xLkZpbGVWaXNpdG9yQ2FuY2VsVG9rZW4pIHsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpIHsKICAgICAgICBmdW5jdGlvbiBfcmVjdXJzZShlbnRyeSkgewogICAgICAgICAgcmV0dXJuIGVudHJ5LnN1YmRpcnMucmVkdWNlKChmaWxlcywgc3ViZGlyKSA9PiBbLi4uZmlsZXMsIC4uLl9yZWN1cnNlKGVudHJ5LmRpcihzdWJkaXIpKV0sIGVudHJ5LnN1YmZpbGVzLm1hcCgoc3ViZmlsZSkgPT4gZW50cnkuZmlsZShzdWJmaWxlKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3JlY3Vyc2UodGhpcyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Ib3N0RGlyRW50cnkgPSBIb3N0RGlyRW50cnk7CiAgICB2YXIgSG9zdFRyZWUgPSBjbGFzcyBfSG9zdFRyZWUgewogICAgICBfYmFja2VuZDsKICAgICAgX2lkID0gLS1fdW5pcXVlSWQ7CiAgICAgIF9yZWNvcmQ7CiAgICAgIF9yZWNvcmRTeW5jOwogICAgICBfYW5jZXN0cnkgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZGlyQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgc3RhdGljIGlzSG9zdFRyZWUodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiB0cmVlID09PSAib2JqZWN0IiAmJiB0eXBlb2YgdHJlZS5fYW5jZXN0cnkgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrZW5kID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuRW1wdHkoKSkgewogICAgICAgIHRoaXMuX2JhY2tlbmQgPSBfYmFja2VuZDsKICAgICAgICB0aGlzLl9yZWNvcmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5Db3JkSG9zdChuZXcgY29yZV8xLnZpcnR1YWxGcy5TYWZlUmVhZG9ubHlIb3N0KF9iYWNrZW5kKSk7CiAgICAgICAgdGhpcy5fcmVjb3JkU3luYyA9IG5ldyBjb3JlXzEudmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcy5fcmVjb3JkKTsKICAgICAgfQogICAgICBfbm9ybWFsaXplUGF0aChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfd2lsbENyZWF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsQ3JlYXRlKHBhdGgpOwogICAgICB9CiAgICAgIF93aWxsT3ZlcndyaXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkLndpbGxPdmVyd3JpdGUocGF0aCk7CiAgICAgIH0KICAgICAgX3dpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmQud2lsbERlbGV0ZShwYXRoKTsKICAgICAgfQogICAgICBfd2lsbFJlbmFtZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsUmVuYW1lKHBhdGgpOwogICAgICB9CiAgICAgIGJyYW5jaCgpIHsKICAgICAgICBjb25zdCBicmFuY2hlZFRyZWUgPSBuZXcgX0hvc3RUcmVlKHRoaXMuX2JhY2tlbmQpOwogICAgICAgIGJyYW5jaGVkVHJlZS5fcmVjb3JkID0gdGhpcy5fcmVjb3JkLmNsb25lKCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9yZWNvcmRTeW5jID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChicmFuY2hlZFRyZWUuX3JlY29yZCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9hbmNlc3RyeSA9IG5ldyBTZXQodGhpcy5fYW5jZXN0cnkpLmFkZCh0aGlzLl9pZCk7CiAgICAgICAgcmV0dXJuIGJyYW5jaGVkVHJlZTsKICAgICAgfQogICAgICBpc0FuY2VzdG9yT2YodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJlZS5fYW5jZXN0cnkuaGFzKHRoaXMuX2lkKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBkZWxlZ2F0ZV8xLkRlbGVnYXRlVHJlZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbmNlc3Rvck9mKHRyZWUuX290aGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBzY29wZWRfMS5TY29wZWRUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FuY2VzdG9yT2YodHJlZS5fYmFzZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBtZXJnZShvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgICBpZiAob3RoZXIgPT09IHRoaXMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuaXNBbmNlc3Rvck9mKG90aGVyKSkgewogICAgICAgICAgc3RyYXRlZ3kgfD0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGU7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNyZWF0aW9uQ29uZmxpY3RBbGxvd2VkID0gKHN0cmF0ZWd5ICYgaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0NyZWF0aW9uQ29uZmxpY3QpID09IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0OwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dPdmVyd3JpdGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0OwogICAgICAgIGNvbnN0IGRlbGV0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dEZWxldGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0RlbGV0ZUNvbmZsaWN0OwogICAgICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOiB7CiAgICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBjb250ZW50IH0gPSBhY3Rpb247CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxDcmVhdGUocGF0aCkgfHwgdGhpcy5fd2lsbE92ZXJ3cml0ZShwYXRoKSB8fCB0aGlzLmV4aXN0cyhwYXRoKSkgewogICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDb250ZW50ID0gdGhpcy5yZWFkKHBhdGgpOwogICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ29udGVudCAmJiBjb250ZW50LmVxdWFscyhleGlzdGluZ0NvbnRlbnQpKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghY3JlYXRpb25Db25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQuY3JlYXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAibyI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSAmJiAhb3ZlcndyaXRlQ29uZmxpY3RBbGxvd2VkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxPdmVyd3JpdGUocGF0aCkpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgJiYgY29udGVudC5lcXVhbHMoZXhpc3RpbmdDb250ZW50KSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIW92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkLndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlICJyIjogewogICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgdG8gfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0aGlzLl93aWxsUmVuYW1lKHBhdGgpKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkLndpbGxSZW5hbWVUbyhwYXRoLCB0bykpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucmVuYW1lKHBhdGgsIHRvKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAiZCI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHBhdGgpICYmICFkZWxldGVDb25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5NZXJnZUNvbmZsaWN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTeW5jLmRlbGV0ZShwYXRoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBnZXQgcm9vdCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXREaXIoIi8iKTsKICAgICAgfQogICAgICAvLyBSZWFkb25seS4KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoInV0Zi04IiwgeyBmYXRhbDogdHJ1ZSB9KTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGRhdGEpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yIHx8IGUuY29kZSA9PT0gIkVSUl9FTkNPRElOR19JTlZBTElEX0VOQ09ERURfREFUQSIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyBVVEYtOCB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnJlYWRUZXh0KHBhdGgpOwogICAgICAgIGNvbnN0IGVycm9ycyA9IFtdOwogICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBqc29uY19wYXJzZXJfMS5wYXJzZSkoY29udGVudCwgZXJyb3JzLCB7IGFsbG93VHJhaWxpbmdDb21tYTogdHJ1ZSB9KTsKICAgICAgICBpZiAoZXJyb3JzWzBdKSB7CiAgICAgICAgICBjb25zdCB7IGVycm9yLCBvZmZzZXQgfSA9IGVycm9yc1swXTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlICIke3BhdGh9IiBhcyBKU09OLiAkeygwLCBqc29uY19wYXJzZXJfMS5wcmludFBhcnNlRXJyb3JDb2RlKShlcnJvcil9IGF0IG9mZnNldDogJHtvZmZzZXR9LmApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN5bmMuaXNGaWxlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX3JlY29yZFN5bmMuaXNEaXJlY3RvcnkocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuX3JlY29yZFN5bmMuZXhpc3RzKHApKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBlbnRyeV8xLkxhenlGaWxlRW50cnkocCwgKCkgPT4gQnVmZmVyLmZyb20odGhpcy5fcmVjb3JkU3luYy5yZWFkKHApKSk7CiAgICAgIH0KICAgICAgZ2V0RGlyKHBhdGgpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5pc0ZpbGUocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihwKTsKICAgICAgICB9CiAgICAgICAgbGV0IG1heWJlQ2FjaGUgPSB0aGlzLl9kaXJDYWNoZS5nZXQocCk7CiAgICAgICAgaWYgKCFtYXliZUNhY2hlKSB7CiAgICAgICAgICBsZXQgcGFyZW50ID0gKDAsIGNvcmVfMS5kaXJuYW1lKShwKTsKICAgICAgICAgIGlmIChwID09PSBwYXJlbnQpIHsKICAgICAgICAgICAgcGFyZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIG1heWJlQ2FjaGUgPSBuZXcgSG9zdERpckVudHJ5KHBhcmVudCAmJiB0aGlzLmdldERpcihwYXJlbnQpLCBwLCB0aGlzLl9yZWNvcmRTeW5jLCB0aGlzKTsKICAgICAgICAgIHRoaXMuX2RpckNhY2hlLnNldChwLCBtYXliZUNhY2hlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heWJlQ2FjaGU7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHRoaXMucm9vdC52aXNpdCgocGF0aCwgZW50cnkpID0+IHsKICAgICAgICAgIHZpc2l0b3IocGF0aCwgZW50cnkpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTeW5jLmV4aXN0cyhwKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgY29udGVudCA9PSAic3RyaW5nIiA/IEJ1ZmZlci5mcm9tKGNvbnRlbnQpIDogY29udGVudDsKICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHAsIGMpLnN1YnNjcmliZSgpOwogICAgICB9CiAgICAgIGJlZ2luVXBkYXRlKHBhdGgpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVjb3JkZXJfMS5VcGRhdGVSZWNvcmRlckJhc2UuY3JlYXRlRnJvbUZpbGVFbnRyeShlbnRyeSk7CiAgICAgIH0KICAgICAgY29tbWl0VXBkYXRlKHJlY29yZCkgewogICAgICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSkgewogICAgICAgICAgY29uc3QgcGF0aCA9IHJlY29yZC5wYXRoOwogICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlY29yZC5hcHBseShlbnRyeS5jb250ZW50KTsKICAgICAgICAgICAgaWYgKCFuZXdDb250ZW50LmVxdWFscyhlbnRyeS5jb250ZW50KSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKHBhdGgsIG5ld0NvbnRlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5JbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIFN0cnVjdHVyYWwgbWV0aG9kcy4KICAgICAgY3JlYXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5leGlzdHMocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBjb25zdCBjID0gdHlwZW9mIGNvbnRlbnQgPT0gInN0cmluZyIgPyBCdWZmZXIuZnJvbShjb250ZW50KSA6IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5fcmVjb3JkLmNyZWF0ZShwLCBjKS5zdWJzY3JpYmUoKTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMuZGVsZXRlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMucmVuYW1lKHRoaXMuX25vcm1hbGl6ZVBhdGgoZnJvbSksIHRoaXMuX25vcm1hbGl6ZVBhdGgodG8pKTsKICAgICAgfQogICAgICBhcHBseShhY3Rpb24sIHN0cmF0ZWd5KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIkFwcGx5IG5vdCBpbXBsZW1lbnRlZCBvbiBob3N0IHRyZWVzLiIpOwogICAgICB9CiAgICAgICpnZW5lcmF0ZUFjdGlvbnMoKSB7CiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgdGhpcy5fcmVjb3JkLnJlY29yZHMoKSkgewogICAgICAgICAgc3dpdGNoIChyZWNvcmQua2luZCkgewogICAgICAgICAgICBjYXNlICJjcmVhdGUiOgogICAgICAgICAgICAgIHlpZWxkIHsKICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9pZCwKICAgICAgICAgICAgICAgIHBhcmVudDogMCwKICAgICAgICAgICAgICAgIGtpbmQ6ICJjIiwKICAgICAgICAgICAgICAgIHBhdGg6IHJlY29yZC5wYXRoLAogICAgICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20ocmVjb3JkLmNvbnRlbnQpCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAibyIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IEJ1ZmZlci5mcm9tKHJlY29yZC5jb250ZW50KQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInJlbmFtZSI6CiAgICAgICAgICAgICAgeWllbGQgewogICAgICAgICAgICAgICAgaWQ6IHRoaXMuX2lkLAogICAgICAgICAgICAgICAgcGFyZW50OiAwLAogICAgICAgICAgICAgICAga2luZDogInIiLAogICAgICAgICAgICAgICAgcGF0aDogcmVjb3JkLmZyb20sCiAgICAgICAgICAgICAgICB0bzogcmVjb3JkLnRvCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAiZCIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGdldCBhY3Rpb25zKCkgewogICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ2VuZXJhdGVBY3Rpb25zKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSG9zdFRyZWUgPSBIb3N0VHJlZTsKICAgIHZhciBIb3N0Q3JlYXRlVHJlZSA9IGNsYXNzIGV4dGVuZHMgSG9zdFRyZWUgewogICAgICBjb25zdHJ1Y3Rvcihob3N0KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBjb25zdCB0ZW1wSG9zdCA9IG5ldyBIb3N0VHJlZShob3N0KTsKICAgICAgICB0ZW1wSG9zdC52aXNpdCgocGF0aCkgPT4gewogICAgICAgICAgY29uc3QgY29udGVudCA9IHRlbXBIb3N0LnJlYWQocGF0aCk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RDcmVhdGVUcmVlID0gSG9zdENyZWF0ZVRyZWU7CiAgICB2YXIgRmlsdGVySG9zdFRyZWUgPSBjbGFzcyBleHRlbmRzIEhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IodHJlZSwgZmlsdGVyID0gKCkgPT4gdHJ1ZSkgewogICAgICAgIGNvbnN0IG5ld0JhY2tlbmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5TaW1wbGVNZW1vcnlIb3N0KCk7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCYWNrZW5kID0gdHJlZS5fYmFja2VuZDsKICAgICAgICBjb25zdCBwZW5kaW5nUGF0aHMgPSBbIi8iXTsKICAgICAgICB3aGlsZSAocGVuZGluZ1BhdGhzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGVuZGluZ1BhdGhzLnBvcCgpOwogICAgICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSB2b2lkIDApIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgaXNEaXJlY3RvcnkgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0RpcmVjdG9yeShjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGlzRGlyZWN0b3J5ID0gdmFsKTsKICAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQubGlzdChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IHBlbmRpbmdQYXRocy5wdXNoKC4uLnZhbC5tYXAoKHApID0+ICgwLCBjb3JlXzEuam9pbikoY3VycmVudFBhdGgsIHApKSkpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBpc0ZpbGUgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0ZpbGUoY3VycmVudFBhdGgpLnN1YnNjcmliZSgodmFsKSA9PiBpc0ZpbGUgPSB2YWwpOwogICAgICAgICAgaWYgKCFpc0ZpbGUgfHwgIWZpbHRlcihjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgY29udGVudCA9IG51bGw7CiAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQucmVhZChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGNvbnRlbnQgPSB2YWwpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHsKICAgICAgICAgICAgbmV3QmFja2VuZC53cml0ZShjdXJyZW50UGF0aCwgY29udGVudCkuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyKG5ld0JhY2tlbmQpOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRyZWUuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFmaWx0ZXIoYWN0aW9uLnBhdGgpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgICB0aGlzLmNyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInIiOgogICAgICAgICAgICAgIHRoaXMucmVuYW1lKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gRmlsdGVySG9zdFRyZWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3N0YXRpYy5qcwp2YXIgcmVxdWlyZV9zdGF0aWMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbXB0eSA9IGVtcHR5OwogICAgZXhwb3J0czIuYnJhbmNoID0gYnJhbmNoOwogICAgZXhwb3J0czIubWVyZ2UgPSBtZXJnZTI7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gbmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKCk7CiAgICB9CiAgICBmdW5jdGlvbiBicmFuY2godHJlZSkgewogICAgICByZXR1cm4gdHJlZS5icmFuY2goKTsKICAgIH0KICAgIGZ1bmN0aW9uIG1lcmdlMih0cmVlLCBvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgdHJlZS5tZXJnZShvdGhlciwgc3RyYXRlZ3kpOwogICAgICByZXR1cm4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnRpdGlvbih0cmVlLCBwcmVkaWNhdGUpIHsKICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBob3N0X3RyZWVfMS5Ib3N0VHJlZSkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKSwKICAgICAgICAgIG5ldyBob3N0X3RyZWVfMS5GaWx0ZXJIb3N0VHJlZSh0cmVlLCAocGF0aCwgZW50cnkpID0+ICFwcmVkaWNhdGUocGF0aCwgZW50cnkpKQogICAgICAgIF07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwuanMKdmFyIHJlcXVpcmVfbnVsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9udWxsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsVHJlZSA9IGV4cG9ydHMyLk51bGxUcmVlRGlyRW50cnkgPSBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIHJlY29yZGVyXzEgPSByZXF1aXJlX3JlY29yZGVyKCk7CiAgICB2YXIgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYENhbm5vdCBjcmVhdGUgZmlsZSAiJHtwYXRofSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbjsKICAgIHZhciBOdWxsVHJlZURpckVudHJ5ID0gY2xhc3MgX051bGxUcmVlRGlyRW50cnkgewogICAgICBwYXRoOwogICAgICBnZXQgcGFyZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gIi8iID8gbnVsbCA6IG5ldyBfTnVsbFRyZWVEaXJFbnRyeSgoMCwgY29yZV8xLmRpcm5hbWUpKHRoaXMucGF0aCkpOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICB0aGlzLnBhdGggPSBwYXRoOwogICAgICB9CiAgICAgIHN1YmRpcnMgPSBbXTsKICAgICAgc3ViZmlsZXMgPSBbXTsKICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gbmV3IF9OdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEuam9pbikodGhpcy5wYXRoLCBuYW1lKSk7CiAgICAgIH0KICAgICAgZmlsZShfbmFtZSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHZpc2l0KCkgewogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWVEaXJFbnRyeSA9IE51bGxUcmVlRGlyRW50cnk7CiAgICB2YXIgTnVsbFRyZWUgPSBjbGFzcyBfTnVsbFRyZWUgewogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX051bGxUcmVlKCk7CiAgICAgIH0KICAgICAgbWVyZ2UoX290aGVyLCBfc3RyYXRlZ3kpIHsKICAgICAgfQogICAgICByb290ID0gbmV3IE51bGxUcmVlRGlyRW50cnkoKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIikpOwogICAgICAvLyBTaW1wbGUgcmVhZG9ubHkgZmlsZSBzeXN0ZW0gb3BlcmF0aW9ucy4KICAgICAgZXhpc3RzKF9wYXRoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHJlYWQoX3BhdGgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGdldChfcGF0aCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgdmlzaXQoKSB7CiAgICAgIH0KICAgICAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy4KICAgICAgYmVnaW5VcGRhdGUocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSA/IHJlY29yZC5wYXRoIDogIjx1bmtub3duPiIpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBzdHJ1Y3R1cmUgb2YgdGhlIGhvc3QuCiAgICAgIGNvcHkocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgX2NvbnRlbnQpIHsKICAgICAgICB0aHJvdyBuZXcgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgYXBwbHkoX2FjdGlvbiwgX3N0cmF0ZWd5KSB7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWUgPSBOdWxsVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2NhbGwuanMKdmFyIHJlcXVpcmVfY2FsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW52YWxpZFNvdXJjZVJlc3VsdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuY2FsbFNvdXJjZSA9IGNhbGxTb3VyY2U7CiAgICBleHBvcnRzMi5jYWxsUnVsZSA9IGNhbGxSdWxlOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgZnVuY3Rpb24gX2dldFR5cGVPZlJlc3VsdCh2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgIHJldHVybiAidW5kZWZpbmVkIjsKICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiAibnVsbCI7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICJmdW5jdGlvbiIpIHsKICAgICAgICByZXR1cm4gYEZ1bmN0aW9uKClgOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPSAib2JqZWN0IikgewogICAgICAgIHJldHVybiBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09IE9iamVjdCkgewogICAgICAgICAgcmV0dXJuIGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7CiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJ1Y3RvcikgewogICAgICAgICAgcmV0dXJuIGBJbnN0YW5jZSBvZiBjbGFzcyAke3ZhbHVlLmNvbnN0cnVjdG9yLm5hbWV9YDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuICJVbmtub3duIE9iamVjdCI7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICB2YXIgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBydWxlIHJlc3VsdDogJHtfZ2V0VHlwZU9mUmVzdWx0KHZhbHVlKX0uYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUnVsZVJlc3VsdEV4Y2VwdGlvbiA9IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBzb3VyY2UgcmVzdWx0OiAke19nZXRUeXBlT2ZSZXN1bHQodmFsdWUpfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uOwogICAgZnVuY3Rpb24gY2FsbFNvdXJjZShzb3VyY2UsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuICgwLCByeGpzXzEuZGVmZXIpKGFzeW5jICgpID0+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpOwogICAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgICAgcmVzdWx0ID0gYXdhaXQgKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShyZXN1bHQucGlwZSgoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKSk7CiAgICAgICAgfQogICAgICAgIGlmIChyZXN1bHQgJiYgaW50ZXJmYWNlXzEuVHJlZVN5bWJvbCBpbiByZXN1bHQpIHsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZSwgaW5wdXQsIGNvbnRleHQpIHsKICAgICAgaWYgKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKShpbnB1dCkpIHsKICAgICAgICByZXR1cm4gaW5wdXQucGlwZSgoMCwgcnhqc18xLm1lcmdlTWFwKSgoaW5wdXRUcmVlKSA9PiBjYWxsUnVsZUFzeW5jKHJ1bGUsIGlucHV0VHJlZSwgY29udGV4dCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5kZWZlcikoKCkgPT4gY2FsbFJ1bGVBc3luYyhydWxlLCBpbnB1dCwgY29udGV4dCkpOwogICAgICB9CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiBjYWxsUnVsZUFzeW5jKHJ1bGUsIHRyZWUsIGNvbnRleHQpIHsKICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHJ1bGUodHJlZSwgY29udGV4dCk7CiAgICAgIHdoaWxlICh0eXBlb2YgcmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0KHRyZWUsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIikgewogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9CiAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgIHJlc3VsdCA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkocmVzdWx0LnBpcGUoKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodHJlZSkpKTsKICAgICAgfQogICAgICBpZiAocmVzdWx0ICYmIGludGVyZmFjZV8xLlRyZWVTeW1ib2wgaW4gcmVzdWx0KSB7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMuanMKdmFyIHJlcXVpcmVfc2NoZW1hdGljID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9lbmdpbmUvc2NoZW1hdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TY2hlbWF0aWNJbXBsID0gZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBjYWxsXzEgPSByZXF1aXJlX2NhbGwoKTsKICAgIHZhciBzY29wZWRfMSA9IHJlcXVpcmVfc2NvcGVkMigpOwogICAgdmFyIEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpY3MgaGFzIGludmFsaWQgbmFtZTogIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0ltcGwgPSBjbGFzcyB7CiAgICAgIF9kZXNjcmlwdGlvbjsKICAgICAgX2ZhY3Rvcnk7CiAgICAgIF9jb2xsZWN0aW9uOwogICAgICBfZW5naW5lOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9mYWN0b3J5LCBfY29sbGVjdGlvbiwgX2VuZ2luZSkgewogICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gX2Rlc2NyaXB0aW9uOwogICAgICAgIHRoaXMuX2ZhY3RvcnkgPSBfZmFjdG9yeTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uID0gX2NvbGxlY3Rpb247CiAgICAgICAgdGhpcy5fZW5naW5lID0gX2VuZ2luZTsKICAgICAgICBpZiAoIV9kZXNjcmlwdGlvbi5uYW1lLm1hdGNoKC9eWy1AL18uYS16QS1aMC05XSskLykpIHsKICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24oX2Rlc2NyaXB0aW9uLm5hbWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgZGVzY3JpcHRpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uOwogICAgICB9CiAgICAgIGdldCBjb2xsZWN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uOwogICAgICB9CiAgICAgIGNhbGwob3B0aW9ucywgaG9zdCwgcGFyZW50Q29udGV4dCwgZXhlY3V0aW9uT3B0aW9ucykgewogICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29udGV4dCh0aGlzLCBwYXJlbnRDb250ZXh0LCBleGVjdXRpb25PcHRpb25zKTsKICAgICAgICByZXR1cm4gaG9zdC5waXBlKCgwLCByeGpzXzEuZmlyc3QpKCksICgwLCByeGpzXzEuY29uY2F0TWFwKSgodHJlZSkgPT4gdGhpcy5fZW5naW5lLnRyYW5zZm9ybU9wdGlvbnModGhpcywgb3B0aW9ucywgY29udGV4dCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKG8pID0+IFt0cmVlLCBvXSkpKSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChbdHJlZSwgdHJhbnNmb3JtZWRPcHRpb25zXSkgPT4gewogICAgICAgICAgbGV0IGlucHV0OwogICAgICAgICAgbGV0IHNjb3BlZCA9IGZhbHNlOwogICAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5zY29wZSkgewogICAgICAgICAgICBzY29wZWQgPSB0cnVlOwogICAgICAgICAgICBpbnB1dCA9IG5ldyBzY29wZWRfMS5TY29wZWRUcmVlKHRyZWUsIGV4ZWN1dGlvbk9wdGlvbnMuc2NvcGUpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5wdXQgPSB0cmVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHRoaXMuX2ZhY3RvcnkodHJhbnNmb3JtZWRPcHRpb25zKSwgaW5wdXQsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChvdXRwdXQpID0+IHsKICAgICAgICAgICAgaWYgKG91dHB1dCA9PT0gaW5wdXQpIHsKICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY29wZWQpIHsKICAgICAgICAgICAgICB0cmVlLm1lcmdlKG91dHB1dCk7CiAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0ltcGwgPSBTY2hlbWF0aWNJbXBsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qcwp2YXIgcmVxdWlyZV9lbmdpbmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBleHBvcnRzMi5Db2xsZWN0aW9uSW1wbCA9IGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gZXhwb3J0czIuQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgbnVsbF8xID0gcmVxdWlyZV9udWxsKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgdmFyIHNjaGVtYXRpY18xID0gcmVxdWlyZV9zY2hlbWF0aWMoKTsKICAgIHZhciBVbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodXJsMykgewogICAgICAgIHN1cGVyKGBVbmtub3duIFByb3RvY29sIG9uIHVybCAiJHt1cmwzfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBVbmtub3duVXJsU291cmNlUHJvdG9jb2w7CiAgICB2YXIgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBVbmtub3duIGNvbGxlY3Rpb24gIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbjsKICAgIHZhciBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBDaXJjdWxhciBjb2xsZWN0aW9uIHJlZmVyZW5jZSAiJHtuYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb247CiAgICB2YXIgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBjb2xsZWN0aW9uKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpYyAiJHtuYW1lfSIgbm90IGZvdW5kIGluIGNvbGxlY3Rpb24gIiR7Y29sbGVjdGlvbi5uYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbjsKICAgIHZhciBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNvbGxlY3Rpb24pIHsKICAgICAgICBzdXBlcihgU2NoZW1hdGljICIke25hbWV9IiBub3QgZm91bmQgaW4gY29sbGVjdGlvbiAiJHtjb2xsZWN0aW9uLm5hbWV9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKGBBIHNjaGVtYXRpYyB3YXMgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lIGFzIGl0cyBwYXJlbnQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uOwogICAgdmFyIFVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgc2NoZW1hdGljKSB7CiAgICAgICAgY29uc3QgYWRkZW5kdW0gPSBzY2hlbWF0aWMgPyBgIGluIHNjaGVtYXRpYyAiJHtzY2hlbWF0aWMubmFtZX0iYCA6ICIiOwogICAgICAgIHN1cGVyKGBVbnJlZ2lzdGVyZWQgdGFzayAiJHtuYW1lfSIke2FkZGVuZHVtfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBVbnJlZ2lzdGVyZWRUYXNrRXhjZXB0aW9uOwogICAgdmFyIFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihpZCkgewogICAgICAgIHN1cGVyKGBVbmtub3duIHRhc2sgZGVwZW5kZW5jeSBbSUQ6ICR7aWQuaWR9XS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbjsKICAgIHZhciBDb2xsZWN0aW9uSW1wbCA9IGNsYXNzIHsKICAgICAgX2Rlc2NyaXB0aW9uOwogICAgICBfZW5naW5lOwogICAgICBiYXNlRGVzY3JpcHRpb25zOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9lbmdpbmUsIGJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IF9kZXNjcmlwdGlvbjsKICAgICAgICB0aGlzLl9lbmdpbmUgPSBfZW5naW5lOwogICAgICAgIHRoaXMuYmFzZURlc2NyaXB0aW9ucyA9IGJhc2VEZXNjcmlwdGlvbnM7CiAgICAgIH0KICAgICAgZ2V0IGRlc2NyaXB0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjsKICAgICAgfQogICAgICBnZXQgbmFtZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbi5uYW1lIHx8ICI8dW5rbm93bj4iOwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuY3JlYXRlU2NoZW1hdGljKG5hbWUsIHRoaXMsIGFsbG93UHJpdmF0ZSk7CiAgICAgIH0KICAgICAgbGlzdFNjaGVtYXRpY05hbWVzKGluY2x1ZGVIaWRkZW4pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lLmxpc3RTY2hlbWF0aWNOYW1lcyh0aGlzLCBpbmNsdWRlSGlkZGVuKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvbGxlY3Rpb25JbXBsID0gQ29sbGVjdGlvbkltcGw7CiAgICB2YXIgVGFza1NjaGVkdWxlciA9IGNsYXNzIF9UYXNrU2NoZWR1bGVyIHsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9xdWV1ZSA9IG5ldyBjb3JlXzEuUHJpb3JpdHlRdWV1ZSgoeCwgeSkgPT4geC5wcmlvcml0eSAtIHkucHJpb3JpdHkpOwogICAgICBfdGFza0lkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIHN0YXRpYyBfdGFza0lkQ291bnRlciA9IDE7CiAgICAgIGNvbnN0cnVjdG9yKF9jb250ZXh0KSB7CiAgICAgICAgdGhpcy5fY29udGV4dCA9IF9jb250ZXh0OwogICAgICB9CiAgICAgIF9jYWxjdWxhdGVQcmlvcml0eShkZXBlbmRlbmNpZXMpIHsKICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLnNpemUgPT09IDApIHsKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcmlvID0gWy4uLmRlcGVuZGVuY2llc10ucmVkdWNlKChwcmlvMiwgdGFzaykgPT4gcHJpbzIgKyB0YXNrLnByaW9yaXR5LCAxKTsKICAgICAgICByZXR1cm4gcHJpbzsKICAgICAgfQogICAgICBfbWFwRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcykgewogICAgICAgIGlmICghZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza3MgPSBkZXBlbmRlbmNpZXMubWFwKChkZXApID0+IHsKICAgICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrSWRzLmdldChkZXApOwogICAgICAgICAgaWYgKCF0YXNrKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVGFza0RlcGVuZGVuY3lFeGNlcHRpb24oZGVwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2V0KHRhc2tzKTsKICAgICAgfQogICAgICBzY2hlZHVsZSh0YXNrQ29uZmlndXJhdGlvbikgewogICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuX21hcERlcGVuZGVuY2llcyh0YXNrQ29uZmlndXJhdGlvbi5kZXBlbmRlbmNpZXMpOwogICAgICAgIGNvbnN0IHByaW9yaXR5ID0gdGhpcy5fY2FsY3VsYXRlUHJpb3JpdHkoZGVwZW5kZW5jaWVzKTsKICAgICAgICBjb25zdCB0YXNrID0gewogICAgICAgICAgaWQ6IF9UYXNrU2NoZWR1bGVyLl90YXNrSWRDb3VudGVyKyssCiAgICAgICAgICBwcmlvcml0eSwKICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHRhc2tDb25maWd1cmF0aW9uLAogICAgICAgICAgY29udGV4dDogdGhpcy5fY29udGV4dAogICAgICAgIH07CiAgICAgICAgdGhpcy5fcXVldWUucHVzaCh0YXNrKTsKICAgICAgICBjb25zdCBpZCA9IHsgaWQ6IHRhc2suaWQgfTsKICAgICAgICB0aGlzLl90YXNrSWRzLnNldChpZCwgdGFzayk7CiAgICAgICAgcmV0dXJuIGlkOwogICAgICB9CiAgICAgIGZpbmFsaXplKCkgewogICAgICAgIGNvbnN0IHRhc2tzID0gdGhpcy5fcXVldWUudG9BcnJheSgpOwogICAgICAgIHRoaXMuX3F1ZXVlLmNsZWFyKCk7CiAgICAgICAgdGhpcy5fdGFza0lkcy5jbGVhcigpOwogICAgICAgIHJldHVybiB0YXNrczsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBUYXNrU2NoZWR1bGVyOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZSA9IGNsYXNzIHsKICAgICAgX2hvc3Q7CiAgICAgIF93b3JrZmxvdzsKICAgICAgX2NvbGxlY3Rpb25DYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9zY2hlbWF0aWNDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgICBfdGFza1NjaGVkdWxlcnMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF93b3JrZmxvdykgewogICAgICAgIHRoaXMuX2hvc3QgPSBfaG9zdDsKICAgICAgICB0aGlzLl93b3JrZmxvdyA9IF93b3JrZmxvdzsKICAgICAgfQogICAgICBnZXQgd29ya2Zsb3coKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtmbG93IHx8IG51bGw7CiAgICAgIH0KICAgICAgZ2V0IGRlZmF1bHRNZXJnZVN0cmF0ZWd5KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0LmRlZmF1bHRNZXJnZVN0cmF0ZWd5IHx8IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuRGVmYXVsdDsKICAgICAgfQogICAgICBjcmVhdGVDb2xsZWN0aW9uKG5hbWUsIHJlcXVlc3RlcikgewogICAgICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChuYW1lKTsKICAgICAgICBpZiAoY29sbGVjdGlvbikgewogICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247CiAgICAgICAgfQogICAgICAgIGNvbnN0IFtkZXNjcmlwdGlvbiwgYmFzZXNdID0gdGhpcy5fY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcj8uZGVzY3JpcHRpb24pOwogICAgICAgIGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbkltcGwoZGVzY3JpcHRpb24sIHRoaXMsIGJhc2VzKTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uQ2FjaGUuc2V0KG5hbWUsIGNvbGxlY3Rpb24pOwogICAgICAgIHRoaXMuX3NjaGVtYXRpY0NhY2hlLnNldChjb2xsZWN0aW9uLCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTsKICAgICAgICByZXR1cm4gY29sbGVjdGlvbjsKICAgICAgfQogICAgICBfY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3RlciwgcGFyZW50TmFtZXMpIHsKICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcik7CiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikgewogICAgICAgICAgdGhyb3cgbmV3IFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50TmFtZXMgJiYgcGFyZW50TmFtZXMuaGFzKGRlc2NyaXB0aW9uLm5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBjb25zdCBiYXNlcyA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChkZXNjcmlwdGlvbi5leHRlbmRzKSB7CiAgICAgICAgICBwYXJlbnROYW1lcyA9IChwYXJlbnROYW1lcyB8fCAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKS5hZGQoZGVzY3JpcHRpb24ubmFtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IGJhc2VOYW1lIG9mIGRlc2NyaXB0aW9uLmV4dGVuZHMpIHsKICAgICAgICAgICAgY29uc3QgW2Jhc2UsIGJhc2VCYXNlc10gPSB0aGlzLl9jcmVhdGVDb2xsZWN0aW9uRGVzY3JpcHRpb24oYmFzZU5hbWUsIGRlc2NyaXB0aW9uLCBuZXcgU2V0KHBhcmVudE5hbWVzKSk7CiAgICAgICAgICAgIGJhc2VzLnVuc2hpZnQoYmFzZSwgLi4uYmFzZUJhc2VzKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFtkZXNjcmlwdGlvbiwgYmFzZXNdOwogICAgICB9CiAgICAgIGNyZWF0ZUNvbnRleHQoc2NoZW1hdGljLCBwYXJlbnQsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5lbmdpbmUgJiYgcGFyZW50LmVuZ2luZSAhPT0gdGhpcykgewogICAgICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGxldCBpbnRlcmFjdGl2ZSA9IHRydWU7CiAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZSAhPSB2b2lkIDApIHsKICAgICAgICAgIGludGVyYWN0aXZlID0gZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZTsKICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCAmJiBwYXJlbnQuaW50ZXJhY3RpdmUgIT0gdm9pZCAwKSB7CiAgICAgICAgICBpbnRlcmFjdGl2ZSA9IHBhcmVudC5pbnRlcmFjdGl2ZTsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbnRleHQgPSB7CiAgICAgICAgICBkZWJ1ZzogcGFyZW50ICYmIHBhcmVudC5kZWJ1ZyB8fCBmYWxzZSwKICAgICAgICAgIGVuZ2luZTogdGhpcywKICAgICAgICAgIGxvZ2dlcjogcGFyZW50ICYmIHBhcmVudC5sb2dnZXIgJiYgcGFyZW50LmxvZ2dlci5jcmVhdGVDaGlsZChzY2hlbWF0aWMuZGVzY3JpcHRpb24ubmFtZSkgfHwgbmV3IGNvcmVfMS5sb2dnaW5nLk51bGxMb2dnZXIoKSwKICAgICAgICAgIHNjaGVtYXRpYywKICAgICAgICAgIHN0cmF0ZWd5OiBwYXJlbnQgJiYgcGFyZW50LnN0cmF0ZWd5ICE9PSB2b2lkIDAgPyBwYXJlbnQuc3RyYXRlZ3kgOiB0aGlzLmRlZmF1bHRNZXJnZVN0cmF0ZWd5LAogICAgICAgICAgaW50ZXJhY3RpdmUsCiAgICAgICAgICBhZGRUYXNrCiAgICAgICAgfTsKICAgICAgICBjb25zdCBtYXliZU5ld0NvbnRleHQgPSB0aGlzLl9ob3N0LnRyYW5zZm9ybUNvbnRleHQoY29udGV4dCk7CiAgICAgICAgaWYgKG1heWJlTmV3Q29udGV4dCkgewogICAgICAgICAgY29udGV4dCA9IG1heWJlTmV3Q29udGV4dDsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza1NjaGVkdWxlciA9IG5ldyBUYXNrU2NoZWR1bGVyKGNvbnRleHQpOwogICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0OwogICAgICAgIHRoaXMuX3Rhc2tTY2hlZHVsZXJzLnB1c2godGFza1NjaGVkdWxlcik7CiAgICAgICAgZnVuY3Rpb24gYWRkVGFzayh0YXNrLCBkZXBlbmRlbmNpZXMpIHsKICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRhc2sudG9Db25maWd1cmF0aW9uKCk7CiAgICAgICAgICBpZiAoIWhvc3QuaGFzVGFza0V4ZWN1dG9yKGNvbmZpZy5uYW1lKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5yZWdpc3RlcmVkVGFza0V4Y2VwdGlvbihjb25maWcubmFtZSwgc2NoZW1hdGljLmRlc2NyaXB0aW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbmZpZy5kZXBlbmRlbmNpZXMgPSBjb25maWcuZGVwZW5kZW5jaWVzIHx8IFtdOwogICAgICAgICAgaWYgKGRlcGVuZGVuY2llcykgewogICAgICAgICAgICBjb25maWcuZGVwZW5kZW5jaWVzLnVuc2hpZnQoLi4uZGVwZW5kZW5jaWVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrU2NoZWR1bGVyLnNjaGVkdWxlKGNvbmZpZyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb250ZXh0OwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBjb2xsZWN0aW9uLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIGNvbnN0IHNjaGVtYXRpY01hcCA9IHRoaXMuX3NjaGVtYXRpY0NhY2hlLmdldChjb2xsZWN0aW9uKTsKICAgICAgICBsZXQgc2NoZW1hdGljID0gc2NoZW1hdGljTWFwPy5nZXQobmFtZSk7CiAgICAgICAgaWYgKHNjaGVtYXRpYykgewogICAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZGVzY3JpcHRpb247CiAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5faG9zdC5jcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICBpZiAoY29sbGVjdGlvbi5iYXNlRGVzY3JpcHRpb25zKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgYmFzZSBvZiBjb2xsZWN0aW9uLmJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlU2NoZW1hdGljRGVzY3JpcHRpb24obmFtZSwgYmFzZSk7CiAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uRGVzY3JpcHRpb24gPSBiYXNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duU2NoZW1hdGljRXhjZXB0aW9uKG5hbWUsIGNvbGxlY3Rpb24uZGVzY3JpcHRpb24pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZGVzY3JpcHRpb24ucHJpdmF0ZSAmJiAhYWxsb3dQcml2YXRlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgUHJpdmF0ZVNjaGVtYXRpY0V4Y2VwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2hvc3QuZ2V0U2NoZW1hdGljUnVsZUZhY3RvcnkoZGVzY3JpcHRpb24sIGNvbGxlY3Rpb25EZXNjcmlwdGlvbik7CiAgICAgICAgc2NoZW1hdGljID0gbmV3IHNjaGVtYXRpY18xLlNjaGVtYXRpY0ltcGwoZGVzY3JpcHRpb24sIGZhY3RvcnksIGNvbGxlY3Rpb24sIHRoaXMpOwogICAgICAgIHNjaGVtYXRpY01hcD8uc2V0KG5hbWUsIHNjaGVtYXRpYyk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgfQogICAgICBsaXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbiwgaW5jbHVkZUhpZGRlbikgewogICAgICAgIGNvbnN0IG5hbWVzID0gdGhpcy5faG9zdC5saXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbi5kZXNjcmlwdGlvbiwgaW5jbHVkZUhpZGRlbik7CiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgZm9yIChjb25zdCBiYXNlIG9mIGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgICBuYW1lcy5wdXNoKC4uLnRoaXMuX2hvc3QubGlzdFNjaGVtYXRpY05hbWVzKGJhc2UsIGluY2x1ZGVIaWRkZW4pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KG5hbWVzKV0uc29ydCgpOwogICAgICB9CiAgICAgIHRyYW5zZm9ybU9wdGlvbnMoc2NoZW1hdGljLCBvcHRpb25zLCBjb250ZXh0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QudHJhbnNmb3JtT3B0aW9ucyhzY2hlbWF0aWMuZGVzY3JpcHRpb24sIG9wdGlvbnMsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGNyZWF0ZVNvdXJjZUZyb21VcmwodXJsMywgY29udGV4dCkgewogICAgICAgIHN3aXRjaCAodXJsMy5wcm90b2NvbCkgewogICAgICAgICAgY2FzZSAibnVsbDoiOgogICAgICAgICAgICByZXR1cm4gKCkgPT4gbmV3IG51bGxfMS5OdWxsVHJlZSgpOwogICAgICAgICAgY2FzZSAiZW1wdHk6IjoKICAgICAgICAgICAgcmV0dXJuICgpID0+ICgwLCBzdGF0aWNfMS5lbXB0eSkoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaG9zdFNvdXJjZSA9IHRoaXMuX2hvc3QuY3JlYXRlU291cmNlRnJvbVVybCh1cmwzLCBjb250ZXh0KTsKICAgICAgICBpZiAoIWhvc3RTb3VyY2UpIHsKICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wodXJsMy50b1N0cmluZygpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7CiAgICAgIH0KICAgICAgZXhlY3V0ZVBvc3RUYXNrcygpIHsKICAgICAgICBjb25zdCBleGVjdXRvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRhc2tPYnNlcnZhYmxlID0gKDAsIHJ4anNfMS5mcm9tKSh0aGlzLl90YXNrU2NoZWR1bGVycykucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHNjaGVkdWxlcikgPT4gc2NoZWR1bGVyLmZpbmFsaXplKCkpLCAoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHRhc2spID0+IHsKICAgICAgICAgIGNvbnN0IHsgbmFtZSwgb3B0aW9ucyB9ID0gdGFzay5jb25maWd1cmF0aW9uOwogICAgICAgICAgY29uc3QgZXhlY3V0b3IgPSBleGVjdXRvcnMuZ2V0KG5hbWUpOwogICAgICAgICAgaWYgKGV4ZWN1dG9yKSB7CiAgICAgICAgICAgIHJldHVybiBleGVjdXRvcihvcHRpb25zLCB0YXNrLmNvbnRleHQpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QuY3JlYXRlVGFza0V4ZWN1dG9yKG5hbWUpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChleGVjdXRvcjIpID0+IHsKICAgICAgICAgICAgZXhlY3V0b3JzLnNldChuYW1lLCBleGVjdXRvcjIpOwogICAgICAgICAgICByZXR1cm4gZXhlY3V0b3IyKG9wdGlvbnMsIHRhc2suY29udGV4dCk7CiAgICAgICAgICB9KSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiB0YXNrT2JzZXJ2YWJsZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IFNjaGVtYXRpY0VuZ2luZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UuanMKdmFyIHJlcXVpcmVfaW50ZXJmYWNlNCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzCnZhciByZXF1aXJlX2VuZ2luZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW5naW5lKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hdGljKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzCnZhciByZXF1aXJlX2NsaV9sb2dnZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVDb25zb2xlTG9nZ2VyID0gY3JlYXRlQ29uc29sZUxvZ2dlcjsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIHNyY18xID0gcmVxdWlyZV9zcmMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXIodmVyYm9zZSA9IGZhbHNlLCBzdGRvdXQgPSBwcm9jZXNzLnN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5zdGRlcnIsIGNvbG9ycykgewogICAgICBjb25zdCBsb2dnZXIgPSBuZXcgc3JjXzEubG9nZ2luZy5JbmRlbnRMb2dnZXIoImNsaW5nIik7CiAgICAgIGxvZ2dlci5waXBlKCgwLCByeGpzXzEuZmlsdGVyKSgoZW50cnkpID0+IGVudHJ5LmxldmVsICE9PSAiZGVidWciIHx8IHZlcmJvc2UpKS5zdWJzY3JpYmUoKGVudHJ5KSA9PiB7CiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvcnMgJiYgY29sb3JzW2VudHJ5LmxldmVsXTsKICAgICAgICBsZXQgb3V0cHV0ID0gc3Rkb3V0OwogICAgICAgIHN3aXRjaCAoZW50cnkubGV2ZWwpIHsKICAgICAgICAgIGNhc2UgIndhcm4iOgogICAgICAgICAgY2FzZSAiZmF0YWwiOgogICAgICAgICAgY2FzZSAiZXJyb3IiOgogICAgICAgICAgICBvdXRwdXQgPSBzdGRlcnI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBjb25zdCBjaHVua1NpemUgPSAyZTM7CiAgICAgICAgbGV0IG1lc3NhZ2UgPSBlbnRyeS5tZXNzYWdlOwogICAgICAgIHdoaWxlIChtZXNzYWdlKSB7CiAgICAgICAgICBjb25zdCBjaHVuayA9IG1lc3NhZ2Uuc2xpY2UoMCwgY2h1bmtTaXplKTsKICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnNsaWNlKGNodW5rU2l6ZSk7CiAgICAgICAgICBvdXRwdXQud3JpdGUoY29sb3IgPyBjb2xvcihjaHVuaykgOiBjaHVuayk7CiAgICAgICAgfQogICAgICAgIG91dHB1dC53cml0ZSgiXG4iKTsKICAgICAgfSk7CiAgICAgIHJldHVybiBsb2dnZXI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaG9zdC5qcwp2YXIgcmVxdWlyZV9ob3N0MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk5vZGVKc1N5bmNIb3N0ID0gZXhwb3J0czIuTm9kZUpzQXN5bmNIb3N0ID0gdm9pZCAwOwogICAgdmFyIG5vZGVfZnNfMSA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKICAgIHZhciBub2RlX3BhdGhfMSA9IHJlcXVpcmUoIm5vZGU6cGF0aCIpOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc3JjXzEgPSByZXF1aXJlX3NyYygpOwogICAgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHBhdGgpIHsKICAgICAgdHJ5IHsKICAgICAgICBhd2FpdCBub2RlX2ZzXzEucHJvbWlzZXMuYWNjZXNzKHBhdGgsIG5vZGVfZnNfMS5jb25zdGFudHMuRl9PSyk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgdmFyIEZTV2F0Y2hlcjsKICAgIGZ1bmN0aW9uIGxvYWRGU1dhdGNoZXIoKSB7CiAgICAgIGlmICghRlNXYXRjaGVyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIEZTV2F0Y2hlciA9IHJlcXVpcmUoImNob2tpZGFyIikuRlNXYXRjaGVyOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlLmNvZGUgIT09ICJNT0RVTEVfTk9UX0ZPVU5EIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FzIG9mIGFuZ3VsYXItZGV2a2l0IHZlcnNpb24gOC4wLCB0aGUgImNob2tpZGFyIiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGluIG9yZGVyIHRvIHVzZSB3YXRjaCgpIGZlYXR1cmVzLicpOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHZhciBOb2RlSnNBc3luY0hvc3QgPSBjbGFzcyB7CiAgICAgIGdldCBjYXBhYmlsaXRpZXMoKSB7CiAgICAgICAgcmV0dXJuIHsgc3luY2hyb25vdXM6IGZhbHNlIH07CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5ta2RpcigoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSkpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKCkgPT4gbm9kZV9mc18xLnByb21pc2VzLndyaXRlRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCksIG5ldyBVaW50OEFycmF5KGNvbnRlbnQpKSkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYnVmZmVyKSA9PiBuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcikpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkobm9kZV9mc18xLnByb21pc2VzLnJtKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMucmVuYW1lKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShmcm9tKSwgKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHRvKSkpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkZGlyKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChuYW1lcykgPT4gbmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkoZXhpc3RzKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMuc3RhdCgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgX29wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIGxvYWRGU1dhdGNoZXIoKTsKICAgICAgICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRlNXYXRjaGVyKHsgcGVyc2lzdGVudDogdHJ1ZSB9KTsKICAgICAgICAgIHdhdGNoZXIuYWRkKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICB3YXRjaGVyLm9uKCJjaGFuZ2UiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNoYW5nZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigiYWRkIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkub24oInVubGluayIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgdm9pZCB3YXRjaGVyLmNsb3NlKCk7CiAgICAgICAgICB9OwogICAgICAgIH0pLnBpcGUoKDAsIHJ4anNfMS5wdWJsaXNoKSgpLCAoMCwgcnhqc18xLnJlZkNvdW50KSgpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5vZGVKc0FzeW5jSG9zdCA9IE5vZGVKc0FzeW5jSG9zdDsKICAgIHZhciBOb2RlSnNTeW5jSG9zdCA9IGNsYXNzIHsKICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgICgwLCBub2RlX2ZzXzEubWtkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgICAoMCwgbm9kZV9mc18xLndyaXRlRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgbmV3IFVpbnQ4QXJyYXkoY29udGVudCkpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgYnVmZmVyID0gKDAsIG5vZGVfZnNfMS5yZWFkRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICBvYnMubmV4dChuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcik7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ybVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCB0b1N5c3RlbVBhdGggPSAoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkodG8pOwogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ta2RpclN5bmMpKCgwLCBub2RlX3BhdGhfMS5kaXJuYW1lKSh0b1N5c3RlbVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICAgICgwLCBub2RlX2ZzXzEucmVuYW1lU3luYykoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKGZyb20pLCB0b1N5c3RlbVBhdGgpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgbmFtZXMgPSAoMCwgbm9kZV9mc18xLnJlYWRkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpOwogICAgICAgICAgb2JzLm5leHQobmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQoKDAsIG5vZGVfZnNfMS5leGlzdHNTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KCgwLCBub2RlX2ZzXzEuc3RhdFN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgd2F0Y2hpbmcuCiAgICAgIHdhdGNoKHBhdGgsIF9vcHRpb25zKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBsb2FkRlNXYXRjaGVyKCk7CiAgICAgICAgICBjb25zdCB3YXRjaGVyID0gbmV3IEZTV2F0Y2hlcih7IHBlcnNpc3RlbnQ6IGZhbHNlIH0pOwogICAgICAgICAgd2F0Y2hlci5hZGQoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHBhdGgpKTsKICAgICAgICAgIHdhdGNoZXIub24oImNoYW5nZSIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLm9uKCJhZGQiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNyZWF0ZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigidW5saW5rIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICB2b2lkIHdhdGNoZXIuY2xvc2UoKTsKICAgICAgICAgIH07CiAgICAgICAgfSkucGlwZSgoMCwgcnhqc18xLnB1Ymxpc2gpKCksICgwLCByeGpzXzEucmVmQ291bnQpKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTm9kZUpzU3luY0hvc3QgPSBOb2RlSnNTeW5jSG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9ub2RlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2NsaV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDMoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanMKdmFyIHJlcXVpcmVfYWN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2FjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQWN0aW9uTGlzdCA9IGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSB2b2lkIDA7CiAgICBleHBvcnRzMi5pc0NvbnRlbnRBY3Rpb24gPSBpc0NvbnRlbnRBY3Rpb247CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBVbmtub3duQWN0aW9uRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKGFjdGlvbikgewogICAgICAgIHN1cGVyKGBVbmtub3duIGFjdGlvbjogIiR7YWN0aW9uLmtpbmR9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQWN0aW9uRXhjZXB0aW9uOwogICAgdmFyIF9pZCA9IDE7CiAgICB2YXIgQWN0aW9uTGlzdCA9IGNsYXNzIHsKICAgICAgX2FjdGlvbnMgPSBbXTsKICAgICAgX2FjdGlvbihhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goewogICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgaWQ6IF9pZCsrLAogICAgICAgICAgcGFyZW50OiB0aGlzLl9hY3Rpb25zW3RoaXMuX2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkID8/IDAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJjIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICBvdmVyd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJvIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgdG8pIHsKICAgICAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAiciIsIHBhdGgsIHRvIH0pOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgdGhpcy5fYWN0aW9uKHsga2luZDogImQiLCBwYXRoIH0pOwogICAgICB9CiAgICAgIG9wdGltaXplKCkgewogICAgICAgIGNvbnN0IHRvQ3JlYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBjb25zdCB0b1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgY29uc3QgdG9PdmVyd3JpdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLl9hY3Rpb25zKSB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBpZiAodG9DcmVhdGUuaGFzKGFjdGlvbi5wYXRoKSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuc2V0KGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRvT3ZlcndyaXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgdG9EZWxldGUuYWRkKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6IHsKICAgICAgICAgICAgICBjb25zdCBtYXliZUNyZWF0ZSA9IHRvQ3JlYXRlLmdldChhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgY29uc3QgbWF5YmVPdmVyd3JpdGUgPSB0b092ZXJ3cml0ZS5nZXQoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgIGlmIChtYXliZUNyZWF0ZSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuZGVsZXRlKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24udG8sIG1heWJlQ3JlYXRlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG1heWJlT3ZlcndyaXRlKSB7CiAgICAgICAgICAgICAgICB0b092ZXJ3cml0ZS5kZWxldGUoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgICAgdG9PdmVyd3JpdGUuc2V0KGFjdGlvbi50bywgbWF5YmVPdmVyd3JpdGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsZXQgbWF5YmVSZW5hbWUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIHRvUmVuYW1lLmVudHJpZXMoKSkgewogICAgICAgICAgICAgICAgaWYgKHRvID09IGFjdGlvbi5wYXRoKSB7CiAgICAgICAgICAgICAgICAgIG1heWJlUmVuYW1lID0gZnJvbTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYXliZVJlbmFtZSkgewogICAgICAgICAgICAgICAgdG9SZW5hbWUuc2V0KG1heWJlUmVuYW1lLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIW1heWJlQ3JlYXRlICYmICFtYXliZU92ZXJ3cml0ZSAmJiAhbWF5YmVSZW5hbWUpIHsKICAgICAgICAgICAgICAgIHRvUmVuYW1lLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtdOwogICAgICAgIHRvRGVsZXRlLmZvckVhY2goKHgpID0+IHsKICAgICAgICAgIHRoaXMuZGVsZXRlKHgpOwogICAgICAgIH0pOwogICAgICAgIHRvUmVuYW1lLmZvckVhY2goKHRvLCBmcm9tKSA9PiB7CiAgICAgICAgICB0aGlzLnJlbmFtZShmcm9tLCB0byk7CiAgICAgICAgfSk7CiAgICAgICAgdG9DcmVhdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgICAgdG9PdmVyd3JpdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcHVzaChhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTsKICAgICAgfQogICAgICBnZXQoaSkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zW2ldOwogICAgICB9CiAgICAgIGhhcyhhY3Rpb24pIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IGEgPSB0aGlzLl9hY3Rpb25zW2ldOwogICAgICAgICAgaWYgKGEuaWQgPT0gYWN0aW9uLmlkKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGEuaWQgPiBhY3Rpb24uaWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZmluZChwcmVkaWNhdGUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maW5kKHByZWRpY2F0ZSkgfHwgbnVsbDsKICAgICAgfQogICAgICBmb3JFYWNoKGZuLCB0aGlzQXJnKSB7CiAgICAgICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQgbGVuZ3RoKCkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmxlbmd0aDsKICAgICAgfQogICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BY3Rpb25MaXN0ID0gQWN0aW9uTGlzdDsKICAgIGZ1bmN0aW9uIGlzQ29udGVudEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIGFjdGlvbi5raW5kID09ICJjIiB8fCBhY3Rpb24ua2luZCA9PSAibyI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsuanMKdmFyIHJlcXVpcmVfc2luayA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9zaW5rLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TaW1wbGVTaW5rQmFzZSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgYWN0aW9uXzEgPSByZXF1aXJlX2FjdGlvbigpOwogICAgdmFyIE5vb3AgPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB2YXIgU2ltcGxlU2lua0Jhc2UgPSBjbGFzcyB7CiAgICAgIHByZUNvbW1pdEFjdGlvbiA9IE5vb3A7CiAgICAgIHBvc3RDb21taXRBY3Rpb24gPSBOb29wOwogICAgICBwcmVDb21taXQgPSBOb29wOwogICAgICBwb3N0Q29tbWl0ID0gTm9vcDsKICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBfdmFsaWRhdGVPdmVyd3JpdGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24ucGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKGIpID0+IHsKICAgICAgICAgIGlmICghYikgewogICAgICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoIWIpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEubWVyZ2VNYXApKCgpID0+IHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24udG8pKSwgKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYikgPT4gewogICAgICAgICAgaWYgKCFiKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICB2YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJyIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgYWN0aW9uXzEuVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnZhbGlkYXRlU2luZ2xlQWN0aW9uKGFjdGlvbiksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHsKICAgICAgICAgIGxldCBjb21taXR0ZWQgPSBudWxsOwogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIGNvbW1pdHRlZCA9IHRoaXMuX2NyZWF0ZUZpbGUoYWN0aW9uLnBhdGgsIGFjdGlvbi5jb250ZW50KTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fcmVuYW1lRmlsZShhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29tbWl0dGVkKSB7CiAgICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpKTsKICAgICAgfQogICAgICBjb21taXQodHJlZSkgewogICAgICAgIGNvbnN0IGFjdGlvbnMgPSAoMCwgcnhqc18xLmZyb20pKHRyZWUuYWN0aW9ucyk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnByZUNvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpLCAoMCwgcnhqc18xLmRlZmVyKSgoKSA9PiBhY3Rpb25zKS5waXBlKCgwLCByeGpzXzEuY29uY2F0TWFwKSgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBjb25zdCBtYXliZUFjdGlvbiA9IHRoaXMucHJlQ29tbWl0QWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKG1heWJlQWN0aW9uKSB8fCBpc1Byb21pc2VMaWtlKG1heWJlQWN0aW9uKSkgewogICAgICAgICAgICByZXR1cm4gbWF5YmVBY3Rpb247CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikobWF5YmVBY3Rpb24gfHwgYWN0aW9uKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5jb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKS5waXBlKCgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKShhY3Rpb24pKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHRoaXMucG9zdENvbW1pdEFjdGlvbihhY3Rpb24pIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMuX2RvbmUoKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMucG9zdENvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpLCAoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZVNpbmtCYXNlID0gU2ltcGxlU2lua0Jhc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHZhbHVlKSB7CiAgICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAiZnVuY3Rpb24iOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3Q0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc2lua18xID0gcmVxdWlyZV9zaW5rKCk7CiAgICB2YXIgSG9zdFNpbmsgPSBjbGFzcyBleHRlbmRzIHNpbmtfMS5TaW1wbGVTaW5rQmFzZSB7CiAgICAgIF9ob3N0OwogICAgICBfZm9yY2U7CiAgICAgIF9maWxlc1RvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgX2ZpbGVzVG9SZW5hbWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb0NyZWF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvVXBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF9mb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9ob3N0ID0gX2hvc3Q7CiAgICAgICAgdGhpcy5fZm9yY2UgPSBfZm9yY2U7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl9mb3JjZSA/IHJ4anNfMS5FTVBUWSA6IHN1cGVyLl92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb24pOwogICAgICB9CiAgICAgIF92YWxpZGF0ZUZpbGVFeGlzdHMocCkgewogICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwKSB8fCB0aGlzLl9maWxlc1RvVXBkYXRlLmhhcyhwKSkgewogICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocCkpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lLnZhbHVlcygpKSB7CiAgICAgICAgICBzd2l0Y2ggKHApIHsKICAgICAgICAgICAgY2FzZSBmcm9tOgogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgdG86CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5leGlzdHMocCk7CiAgICAgIH0KICAgICAgX292ZXJ3cml0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9VcGRhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX2NyZWF0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX3JlbmFtZUZpbGUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmFkZChbZnJvbSwgdG9dKTsKICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kZWxldGVGaWxlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kb25lKCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShbLi4udGhpcy5fZmlsZXNUb0RlbGV0ZS52YWx1ZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChwYXRoKSA9PiB0aGlzLl9ob3N0LmRlbGV0ZShwYXRoKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvUmVuYW1lLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbXywgW3BhdGgsIHRvXV0pID0+IHRoaXMuX2hvc3QucmVuYW1lKHBhdGgsIHRvKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvQ3JlYXRlLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIpKSksICgwLCByeGpzXzEuZnJvbSkoWy4uLnRoaXMuX2ZpbGVzVG9VcGRhdGUuZW50cmllcygpXSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKFtwYXRoLCBidWZmZXJdKSA9PiB0aGlzLl9ob3N0LndyaXRlKHBhdGgsIGJ1ZmZlcikpKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKCkgPT4gewogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gSG9zdFNpbms7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qcwp2YXIgcmVxdWlyZV9kcnlydW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5EcnlSdW5TaW5rID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgbm9kZV8xID0gcmVxdWlyZV9ub2RlKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3Q0KCk7CiAgICB2YXIgRHJ5UnVuU2luayA9IGNsYXNzIGV4dGVuZHMgaG9zdF8xLkhvc3RTaW5rIHsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHJlcG9ydGVyID0gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTsKICAgICAgY29uc3RydWN0b3IoaG9zdCwgZm9yY2UgPSBmYWxzZSkgewogICAgICAgIHN1cGVyKHR5cGVvZiBob3N0ID09ICJzdHJpbmciID8gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU2NvcGVkSG9zdChuZXcgbm9kZV8xLk5vZGVKc1N5bmNIb3N0KCksICgwLCBjb3JlXzEubm9ybWFsaXplKShob3N0KSkgOiBob3N0LCBmb3JjZSk7CiAgICAgIH0KICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmFkZChwYXRoKTsKICAgICAgfQogICAgICBfZG9uZSgpIHsKICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmZvckVhY2goKHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7CiAgICAgICAgICAgIGtpbmQ6ICJlcnJvciIsCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiYWxyZWFkeUV4aXN0IiwKICAgICAgICAgICAgcGF0aAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKChwYXRoKSA9PiB7CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoewogICAgICAgICAgICBraW5kOiAiZXJyb3IiLAogICAgICAgICAgICBkZXNjcmlwdGlvbjogImRvZXNOb3RFeGlzdCIsCiAgICAgICAgICAgIHBhdGgKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZm9yRWFjaCgocGF0aCkgPT4gewogICAgICAgICAgZm9yIChjb25zdCBbZnJvbV0gb2YgdGhpcy5fZmlsZXNUb1JlbmFtZSkgewogICAgICAgICAgICBpZiAoZnJvbSA9PSBwYXRoKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiZGVsZXRlIiwgcGF0aCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmZvckVhY2goKFtwYXRoLCB0b10pID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJyZW5hbWUiLCBwYXRoLCB0byB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIGZvciAoY29uc3QgWywgdG9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHsKICAgICAgICAgICAgaWYgKHRvID09IHBhdGgpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSB8fCB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiY3JlYXRlIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJ1cGRhdGUiLCBwYXRoLCBjb250ZW50IH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkRyeVJ1blNpbmsgPSBEcnlSdW5TaW5rOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qcwp2YXIgcmVxdWlyZV9iYXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9iYXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CYXNlV29ya2Zsb3cgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGVuZ2luZV8xID0gcmVxdWlyZV9lbmdpbmUyKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBmb3JtYXRzXzEgPSByZXF1aXJlX2Zvcm1hdHMyKCk7CiAgICB2YXIgZHJ5cnVuXzEgPSByZXF1aXJlX2RyeXJ1bigpOwogICAgdmFyIGhvc3RfMSA9IHJlcXVpcmVfaG9zdDQoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgQmFzZVdvcmtmbG93ID0gY2xhc3MgewogICAgICBfZW5naW5lOwogICAgICBfZW5naW5lSG9zdDsKICAgICAgX3JlZ2lzdHJ5OwogICAgICBfaG9zdDsKICAgICAgX3JlcG9ydGVyID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgIF9saWZlQ3ljbGUgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9mb3JjZTsKICAgICAgX2RyeVJ1bjsKICAgICAgY29uc3RydWN0b3Iob3B0aW9ucykgewogICAgICAgIHRoaXMuX2hvc3QgPSBvcHRpb25zLmhvc3Q7CiAgICAgICAgdGhpcy5fZW5naW5lSG9zdCA9IG9wdGlvbnMuZW5naW5lSG9zdDsKICAgICAgICBpZiAob3B0aW9ucy5yZWdpc3RyeSkgewogICAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBvcHRpb25zLnJlZ2lzdHJ5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBjb3JlXzEuc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeShmb3JtYXRzXzEuc3RhbmRhcmRGb3JtYXRzKTsKICAgICAgICAgIHRoaXMuX3JlZ2lzdHJ5LmFkZFBvc3RUcmFuc2Zvcm0oY29yZV8xLnNjaGVtYS50cmFuc2Zvcm1zLmFkZFVuZGVmaW5lZERlZmF1bHRzKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZW5naW5lID0gbmV3IGVuZ2luZV8xLlNjaGVtYXRpY0VuZ2luZSh0aGlzLl9lbmdpbmVIb3N0LCB0aGlzKTsKICAgICAgICB0aGlzLl9jb250ZXh0ID0gW107CiAgICAgICAgdGhpcy5fZm9yY2UgPSBvcHRpb25zLmZvcmNlIHx8IGZhbHNlOwogICAgICAgIHRoaXMuX2RyeVJ1biA9IG9wdGlvbnMuZHJ5UnVuIHx8IGZhbHNlOwogICAgICB9CiAgICAgIGdldCBjb250ZXh0KCkgewogICAgICAgIGNvbnN0IG1heWJlQ29udGV4dCA9IHRoaXMuX2NvbnRleHRbdGhpcy5fY29udGV4dC5sZW5ndGggLSAxXTsKICAgICAgICBpZiAoIW1heWJlQ29udGV4dCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IGNvbnRleHQgd2hlbiB3b3JrZmxvdyBpcyBub3QgZXhlY3V0aW5nLi4uIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUNvbnRleHQ7CiAgICAgIH0KICAgICAgZ2V0IGVuZ2luZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lOwogICAgICB9CiAgICAgIGdldCBlbmdpbmVIb3N0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmVIb3N0OwogICAgICB9CiAgICAgIGdldCByZWdpc3RyeSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnk7CiAgICAgIH0KICAgICAgZ2V0IHJlcG9ydGVyKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlci5hc09ic2VydmFibGUoKTsKICAgICAgfQogICAgICBnZXQgbGlmZUN5Y2xlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9saWZlQ3ljbGUuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgX2NyZWF0ZVNpbmtzKCkgewogICAgICAgIGxldCBlcnJvciA9IGZhbHNlOwogICAgICAgIGNvbnN0IGRyeVJ1blNpbmsgPSBuZXcgZHJ5cnVuXzEuRHJ5UnVuU2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSk7CiAgICAgICAgY29uc3QgZHJ5UnVuU3Vic2NyaWJlciA9IGRyeVJ1blNpbmsucmVwb3J0ZXIuc3Vic2NyaWJlKChldmVudCkgPT4gewogICAgICAgICAgdGhpcy5fcmVwb3J0ZXIubmV4dChldmVudCk7CiAgICAgICAgICBlcnJvciA9IGVycm9yIHx8IGV2ZW50LmtpbmQgPT0gImVycm9yIjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgZHJ5UnVuU2luaywKICAgICAgICAgIC8vIEFkZCBhIGN1c3RvbSBzaW5rIHRoYXQgY2xlYW4gb3Vyc2VsdmVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgYW4gZXJyb3IgaGFwcGVuZWQuCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvbW1pdCgpIHsKICAgICAgICAgICAgICBkcnlSdW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24oKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gT25seSBhZGQgYSBIb3N0U2luayBpZiB0aGlzIGlzIG5vdCBhIGRyeVJ1bi4KICAgICAgICAgIC4uLiF0aGlzLl9kcnlSdW4gPyBbbmV3IGhvc3RfMS5Ib3N0U2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSldIDogW10KICAgICAgICBdOwogICAgICB9CiAgICAgIGV4ZWN1dGUob3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhcmVudENvbnRleHQgPSB0aGlzLl9jb250ZXh0W3RoaXMuX2NvbnRleHQubGVuZ3RoIC0gMV07CiAgICAgICAgaWYgKCFwYXJlbnRDb250ZXh0KSB7CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJzdGFydCIgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29sbGVjdGlvbihvcHRpb25zLmNvbGxlY3Rpb24pOwogICAgICAgIGNvbnN0IGFsbG93UHJpdmF0ZSA9IG9wdGlvbnMuYWxsb3dQcml2YXRlIHx8IHBhcmVudENvbnRleHQgJiYgcGFyZW50Q29udGV4dC5jb2xsZWN0aW9uID09PSBvcHRpb25zLmNvbGxlY3Rpb247CiAgICAgICAgY29uc3Qgc2NoZW1hdGljID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMob3B0aW9ucy5zY2hlbWF0aWMsIGFsbG93UHJpdmF0ZSk7CiAgICAgICAgY29uc3Qgc2lua3MgPSB0aGlzLl9jcmVhdGVTaW5rcygpOwogICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LXN0YXJ0IiB9KTsKICAgICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgICAgLi4ub3B0aW9ucywKICAgICAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLAogICAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB8fCBwYXJlbnRDb250ZXh0ICYmIHBhcmVudENvbnRleHQubG9nZ2VyIHx8IG5ldyBjb3JlXzEubG9nZ2luZy5OdWxsTG9nZ2VyKCksCiAgICAgICAgICBwYXJlbnRDb250ZXh0CiAgICAgICAgfTsKICAgICAgICB0aGlzLl9jb250ZXh0LnB1c2goY29udGV4dCk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYy5jYWxsKG9wdGlvbnMub3B0aW9ucywgKDAsIHJ4anNfMS5vZikobmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKHRoaXMuX2hvc3QpKSwgeyBsb2dnZXI6IGNvbnRleHQubG9nZ2VyIH0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKCh0cmVlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKCgwLCByeGpzXzEuZnJvbSkoc2lua3MpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChzaW5rKSA9PiBzaW5rLmNvbW1pdCh0cmVlKSksICgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKSh0cmVlKSk7CiAgICAgICAgfSksICgwLCByeGpzXzEuY29uY2F0TWFwKSgoKSA9PiB7CiAgICAgICAgICBpZiAodGhpcy5fZHJ5UnVuKSB7CiAgICAgICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJwb3N0LXRhc2tzLXN0YXJ0IiB9KTsKICAgICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuZXhlY3V0ZVBvc3RUYXNrcygpLnBpcGUoKDAsIHJ4anNfMS50YXApKHsgY29tcGxldGU6ICgpID0+IHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogInBvc3QtdGFza3MtZW5kIiB9KSB9KSwgKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodm9pZCAwKSwgKDAsIHJ4anNfMS5sYXN0KSgpKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS50YXApKHsKICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LWVuZCIgfSk7CiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQucG9wKCk7CiAgICAgICAgICAgIGlmICh0aGlzLl9jb250ZXh0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgdGhpcy5fbGlmZUN5Y2xlLm5leHQoeyBraW5kOiAiZW5kIiB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkJhc2VXb3JrZmxvdyA9IEJhc2VXb3JrZmxvdzsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2U1ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2luZGV4LmpzCnZhciByZXF1aXJlX3dvcmtmbG93ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYmFzZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9pbnRlcmZhY2U1KCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMKdmFyIHJlcXVpcmVfYmFzZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNvdXJjZSA9IHNvdXJjZTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZW1wdHk7CiAgICBleHBvcnRzMi5jaGFpbiA9IGNoYWluMjsKICAgIGV4cG9ydHMyLmFwcGx5ID0gYXBwbHkzOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gbWVyZ2VXaXRoMjsKICAgIGV4cG9ydHMyLm5vb3AgPSBub29wOwogICAgZXhwb3J0czIuZmlsdGVyID0gZmlsdGVyOwogICAgZXhwb3J0czIuYXNTb3VyY2UgPSBhc1NvdXJjZTsKICAgIGV4cG9ydHMyLmJyYW5jaEFuZE1lcmdlID0gYnJhbmNoQW5kTWVyZ2U7CiAgICBleHBvcnRzMi53aGVuID0gd2hlbjsKICAgIGV4cG9ydHMyLnBhcnRpdGlvbkFwcGx5TWVyZ2UgPSBwYXJ0aXRpb25BcHBseU1lcmdlOwogICAgZXhwb3J0czIuZm9yRWFjaCA9IGZvckVhY2g7CiAgICBleHBvcnRzMi5jb21wb3NlRmlsZU9wZXJhdG9ycyA9IGNvbXBvc2VGaWxlT3BlcmF0b3JzOwogICAgZXhwb3J0czIuYXBwbHlUb1N1YnRyZWUgPSBhcHBseVRvU3VidHJlZTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgaG9zdF90cmVlXzEgPSByZXF1aXJlX2hvc3RfdHJlZSgpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc2NvcGVkXzEgPSByZXF1aXJlX3Njb3BlZDIoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgY2FsbF8xID0gcmVxdWlyZV9jYWxsKCk7CiAgICBmdW5jdGlvbiBzb3VyY2UodHJlZSkgewogICAgICByZXR1cm4gKCkgPT4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gKCkgPT4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgfQogICAgZnVuY3Rpb24gY2hhaW4yKHJ1bGVzKSB7CiAgICAgIHJldHVybiBhc3luYyAoaW5pdGlhbFRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBsZXQgaW50ZXJtZWRpYXRlVHJlZTsKICAgICAgICBpZiAoU3ltYm9sLmFzeW5jSXRlcmF0b3IgaW4gcnVsZXMpIHsKICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoKSA9PiBpbnRlcm1lZGlhdGVUcmVlOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gYXBwbHkzKHNvdXJjZTIsIHJ1bGVzKSB7CiAgICAgIHJldHVybiAoY29udGV4dCkgPT4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgKDAsIGNhbGxfMS5jYWxsU291cmNlKShzb3VyY2UyLCBjb250ZXh0KSwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZVdpdGgyKHNvdXJjZTIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIHJldHVybiAoMCwgY2FsbF8xLmNhbGxTb3VyY2UpKHNvdXJjZTIsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzb3VyY2VUcmVlKSA9PiB0cmVlLm1lcmdlKHNvdXJjZVRyZWUsIHN0cmF0ZWd5IHx8IGNvbnRleHQuc3RyYXRlZ3kpKSwgKDAsIHJ4anNfMS5tYXBUbykodHJlZSkpOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gbm9vcCgpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuICh0cmVlKSA9PiB7CiAgICAgICAgaWYgKGhvc3RfdHJlZV8xLkhvc3RUcmVlLmlzSG9zdFRyZWUodHJlZSkpIHsKICAgICAgICAgIHJldHVybiBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzU291cmNlKHJ1bGUpIHsKICAgICAgcmV0dXJuIChjb250ZXh0KSA9PiAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlLCAoMCwgc3RhdGljXzEuZW1wdHkpKCksIGNvbnRleHQpOwogICAgfQogICAgZnVuY3Rpb24gYnJhbmNoQW5kTWVyZ2UocnVsZSwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgcmV0dXJuICh0cmVlLCBjb250ZXh0KSA9PiB7CiAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHJ1bGUsIHRyZWUuYnJhbmNoKCksIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChicmFuY2gpID0+IHRyZWUubWVyZ2UoYnJhbmNoLCBzdHJhdGVneSB8fCBjb250ZXh0LnN0cmF0ZWd5KSksICgwLCByeGpzXzEubWFwVG8pKHRyZWUpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHdoZW4ocHJlZGljYXRlLCBvcGVyYXRvcikgewogICAgICByZXR1cm4gKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKHByZWRpY2F0ZShlbnRyeS5wYXRoLCBlbnRyeSkpIHsKICAgICAgICAgIHJldHVybiBvcGVyYXRvcihlbnRyeSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBwYXJ0aXRpb25BcHBseU1lcmdlKHByZWRpY2F0ZSwgcnVsZVllcywgcnVsZU5vKSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IFt5ZXMsIG5vXSA9ICgwLCBzdGF0aWNfMS5wYXJ0aXRpb24pKHRyZWUsIHByZWRpY2F0ZSk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSgoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlWWVzLCB5ZXMsIGNvbnRleHQpLCAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlTm8gfHwgbm9vcCgpLCBubywgY29udGV4dCkpLnBpcGUoKDAsIHJ4anNfMS50b0FycmF5KSgpLCAoMCwgcnhqc18xLm1hcCkoKFt5ZXNUcmVlLCBub1RyZWVdKSA9PiB7CiAgICAgICAgICB5ZXNUcmVlLm1lcmdlKG5vVHJlZSwgY29udGV4dC5zdHJhdGVneSk7CiAgICAgICAgICByZXR1cm4geWVzVHJlZTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBmb3JFYWNoKG9wZXJhdG9yKSB7CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIHRyZWUudmlzaXQoKHBhdGgsIGVudHJ5KSA9PiB7CiAgICAgICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpOwogICAgICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHsKICAgICAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChuZXdFbnRyeS5wYXRoICE9IHBhdGgpIHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgbmV3RW50cnkucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5ld0VudHJ5LmNvbnRlbnQuZXF1YWxzKGVudHJ5LmNvbnRlbnQpKSB7CiAgICAgICAgICAgIHRyZWUub3ZlcndyaXRlKG5ld0VudHJ5LnBhdGgsIG5ld0VudHJ5LmNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gY29tcG9zZUZpbGVPcGVyYXRvcnMob3BlcmF0b3JzKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBsZXQgY3VycmVudCA9IGVudHJ5OwogICAgICAgIGZvciAoY29uc3Qgb3Agb2Ygb3BlcmF0b3JzKSB7CiAgICAgICAgICBjdXJyZW50ID0gb3AoY3VycmVudCk7CiAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBhcHBseVRvU3VidHJlZShwYXRoLCBydWxlcykgewogICAgICByZXR1cm4gKHRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBzY29wZWQgPSBuZXcgc2NvcGVkXzEuU2NvcGVkVHJlZSh0cmVlLCBwYXRoKTsKICAgICAgICByZXR1cm4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgc2NvcGVkLCBjb250ZXh0KS5waXBlKCgwLCByeGpzXzEubWFwKSgocmVzdWx0KSA9PiB7CiAgICAgICAgICBpZiAocmVzdWx0ID09PSBzY29wZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuU2NoZW1hdGljc0V4Y2VwdGlvbignT3JpZ2luYWwgdHJlZSBtdXN0IGJlIHJldHVybmVkIGZyb20gYWxsIHJ1bGVzIHdoZW4gdXNpbmcgImFwcGx5VG9TdWJ0cmVlIi4nKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLmpzCnZhciByZXF1aXJlX21vdmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL21vdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1vdmUgPSBtb3ZlMzsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGJhc2VfMSA9IHJlcXVpcmVfYmFzZTIoKTsKICAgIGZ1bmN0aW9uIG1vdmUzKGZyb20sIHRvKSB7CiAgICAgIGlmICh0byA9PT0gdm9pZCAwKSB7CiAgICAgICAgdG8gPSBmcm9tOwogICAgICAgIGZyb20gPSAiLyI7CiAgICAgIH0KICAgICAgY29uc3QgZnJvbVBhdGggPSAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoIi8iICsgZnJvbSk7CiAgICAgIGNvbnN0IHRvUGF0aCA9ICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyB0byk7CiAgICAgIGlmIChmcm9tUGF0aCA9PT0gdG9QYXRoKSB7CiAgICAgICAgcmV0dXJuIGJhc2VfMS5ub29wOwogICAgICB9CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIGlmICh0cmVlLmV4aXN0cyhmcm9tUGF0aCkpIHsKICAgICAgICAgIHRyZWUucmVuYW1lKGZyb21QYXRoLCB0b1BhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0cmVlLmdldERpcihmcm9tUGF0aCkudmlzaXQoKHBhdGgpID0+IHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgKDAsIGNvcmVfMS5qb2luKSh0b1BhdGgsIHBhdGguc2xpY2UoZnJvbVBhdGgubGVuZ3RoKSkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzCnZhciByZXF1aXJlX3JhbmRvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmYXVsdF8xOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlU3RyaW5nT2ZMZW5ndGgobCkgewogICAgICByZXR1cm4gbmV3IEFycmF5KGwpLmZpbGwoMCkubWFwKChfeCkgPT4gewogICAgICAgIHJldHVybiAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI2KV07CiAgICAgIH0pLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gcmFuZG9tKGZyb20sIHRvKSB7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAodG8gLSBmcm9tKSkgKyBmcm9tOwogICAgfQogICAgZnVuY3Rpb24gZGVmYXVsdF8xKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCByb290ID0gInJvb3QiIGluIG9wdGlvbnMgPyBvcHRpb25zLnJvb3QgOiAiLyI7CiAgICAgICAgY29uc3QgbWFwMiA9IG5ldyBob3N0X3RyZWVfMS5Ib3N0VHJlZSgpOwogICAgICAgIGNvbnN0IG5iRmlsZXMgPSAibXVsdGlGaWxlcyIgaW4gb3B0aW9ucyA/IHR5cGVvZiBvcHRpb25zLm11bHRpRmlsZXMgPT0gIm51bWJlciIgPyBvcHRpb25zLm11bHRpRmlsZXMgOiByYW5kb20oMiwgMTIpIDogMTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5iRmlsZXM7IGkrKykgewogICAgICAgICAgY29uc3QgcGF0aCA9ICJhL2IvYy9kL2UvZiIuc2xpY2UoTWF0aC5yYW5kb20oKSAqIDEwKTsKICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgyMCk7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgxMDApOwogICAgICAgICAgbWFwMi5jcmVhdGUocm9vdCArICIvIiArIHBhdGggKyAiLyIgKyBmaWxlTmFtZSwgY29udGVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvc2NoZW1hdGljLmpzCnZhciByZXF1aXJlX3NjaGVtYXRpYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZXJuYWxTY2hlbWF0aWMgPSBleHRlcm5hbFNjaGVtYXRpYzsKICAgIGV4cG9ydHMyLnNjaGVtYXRpYyA9IHNjaGVtYXRpYzsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgZnVuY3Rpb24gZXh0ZXJuYWxTY2hlbWF0aWMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIG9wdGlvbnMsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgcmV0dXJuIChpbnB1dCwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb250ZXh0LmVuZ2luZS5jcmVhdGVDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lLCBjb250ZXh0LnNjaGVtYXRpYy5jb2xsZWN0aW9uKTsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lLCBvcHRpb25zLCBleGVjdXRpb25PcHRpb25zKSB7CiAgICAgIHJldHVybiAoaW5wdXQsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5zY2hlbWF0aWMuY29sbGVjdGlvbjsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzCnZhciByZXF1aXJlX3RlbXBsYXRlMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkludmFsaWRQaXBlRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93blBpcGVFeGNlcHRpb24gPSBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBleHBvcnRzMi5URU1QTEFURV9GSUxFTkFNRV9SRSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmFwcGx5Q29udGVudFRlbXBsYXRlID0gYXBwbHlDb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5jb250ZW50VGVtcGxhdGUgPSBjb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5hcHBseVBhdGhUZW1wbGF0ZSA9IGFwcGx5UGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucGF0aFRlbXBsYXRlID0gcGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucmVuYW1lVGVtcGxhdGVGaWxlcyA9IHJlbmFtZVRlbXBsYXRlRmlsZXM7CiAgICBleHBvcnRzMi50ZW1wbGF0ZSA9IHRlbXBsYXRlMzsKICAgIGV4cG9ydHMyLmFwcGx5VGVtcGxhdGVzID0gYXBwbHlUZW1wbGF0ZXM7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBub2RlX29zXzEgPSByZXF1aXJlKCJub2RlOm9zIik7CiAgICB2YXIgYmFzZV8xID0gcmVxdWlyZV9iYXNlMigpOwogICAgZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUgPSAvXC50ZW1wbGF0ZSQvOwogICAgdmFyIE9wdGlvbklzTm90RGVmaW5lZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYE9wdGlvbiAiJHtuYW1lfSIgaXMgbm90IGRlZmluZWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb247CiAgICB2YXIgVW5rbm93blBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBub3QgZGVmaW5lZC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25QaXBlRXhjZXB0aW9uID0gVW5rbm93blBpcGVFeGNlcHRpb247CiAgICB2YXIgSW52YWxpZFBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBpbnZhbGlkLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFBpcGVFeGNlcHRpb24gPSBJbnZhbGlkUGlwZUV4Y2VwdGlvbjsKICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsIHsgZmF0YWw6IHRydWUgfSk7CiAgICBmdW5jdGlvbiBhcHBseUNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGVudHJ5OwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBkZWNvZGVkQ29udGVudCA9IGRlY29kZXIuZGVjb2RlKGNvbnRlbnQpLnJlcGxhY2UoL1xyP1xuL2csIG5vZGVfb3NfMS5FT0wpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20oKDAsIGNvcmVfMS50ZW1wbGF0ZSkoZGVjb2RlZENvbnRlbnQsIHt9KShvcHRpb25zKSkKICAgICAgICAgIH07CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgfHwgZS5jb2RlID09PSAiRVJSX0VOQ09ESU5HX0lOVkFMSURfRU5DT0RFRF9EQVRBIikgewogICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmZvckVhY2gpKGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFwcGx5UGF0aFRlbXBsYXRlKGRhdGEsIG9wdGlvbnMgPSB7CiAgICAgIGludGVycG9sYXRpb25TdGFydDogIl9fIiwKICAgICAgaW50ZXJwb2xhdGlvbkVuZDogIl9fIiwKICAgICAgcGlwZVNlcGFyYXRvcjogIkAiCiAgICB9KSB7CiAgICAgIGNvbnN0IGlzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uU3RhcnQ7CiAgICAgIGNvbnN0IGllID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uRW5kOwogICAgICBjb25zdCBpc0wgPSBpcy5sZW5ndGg7CiAgICAgIGNvbnN0IGllTCA9IGllLmxlbmd0aDsKICAgICAgcmV0dXJuIChlbnRyeSkgPT4gewogICAgICAgIGxldCBwYXRoID0gZW50cnkucGF0aDsKICAgICAgICBjb25zdCBjb250ZW50ID0gZW50cnkuY29udGVudDsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHBhdGg7CiAgICAgICAgbGV0IHN0YXJ0ID0gcGF0aC5pbmRleE9mKGlzKTsKICAgICAgICBsZXQgZW5kID0gcGF0aC5pbmRleE9mKGllLCBzdGFydCArIGlzTCArIDEpOwogICAgICAgIHdoaWxlIChzdGFydCAhPSAtMSAmJiBlbmQgIT0gLTEpIHsKICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aC5zdWJzdHJpbmcoc3RhcnQgKyBpc0wsIGVuZCk7CiAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSBkYXRhW21hdGNoXTsKICAgICAgICAgIGlmICghb3B0aW9ucy5waXBlU2VwYXJhdG9yKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQuY2FsbChkYXRhLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uKG1hdGNoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgW25hbWUsIC4uLnBpcGVzXSA9IG1hdGNoLnNwbGl0KG9wdGlvbnMucGlwZVNlcGFyYXRvcik7CiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZGF0YVtuYW1lXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlbWVudCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudC5jYWxsKGRhdGEsIG9yaWdpbmFsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBwaXBlcy5yZWR1Y2UoKGFjYywgcGlwZSkgPT4gewogICAgICAgICAgICAgIGlmICghcGlwZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFjYzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEocGlwZSBpbiBkYXRhKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBwaXBlRm4gPSBkYXRhW3BpcGVdOwogICAgICAgICAgICAgIGlmICh0eXBlb2YgcGlwZUZuICE9ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGlwZUV4Y2VwdGlvbihwaXBlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICIiICsgcGlwZUZuKGFjYyk7CiAgICAgICAgICAgIH0sICIiICsgcmVwbGFjZW1lbnQpOwogICAgICAgICAgfQogICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHJlcGxhY2VtZW50ICsgcGF0aC5zdWJzdHJpbmcoZW5kICsgaWVMKTsKICAgICAgICAgIHN0YXJ0ID0gcGF0aC5pbmRleE9mKG9wdGlvbnMuaW50ZXJwb2xhdGlvblN0YXJ0KTsKICAgICAgICAgIGVuZCA9IHBhdGguaW5kZXhPZihvcHRpb25zLmludGVycG9sYXRpb25FbmQsIHN0YXJ0ICsgaXNMICsgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHBhdGg6ICgwLCBjb3JlXzEubm9ybWFsaXplKShwYXRoKSwgY29udGVudCB9OwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gcGF0aFRlbXBsYXRlKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoYXBwbHlQYXRoVGVtcGxhdGUob3B0aW9ucykpOwogICAgfQogICAgZnVuY3Rpb24gcmVuYW1lVGVtcGxhdGVGaWxlcygpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKGVudHJ5LnBhdGgubWF0Y2goZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUpKSB7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBjb250ZW50OiBlbnRyeS5jb250ZW50LAogICAgICAgICAgICBwYXRoOiAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikpCiAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlMyhvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmNoYWluKShbCiAgICAgICAgY29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIEZvcmNlIGNhc3QgdG8gUGF0aFRlbXBsYXRlRGF0YS4gV2UgbmVlZCB0aGUgdHlwZSBmb3IgdGhlIGFjdHVhbCBwYXRoVGVtcGxhdGUoKSBjYWxsLAogICAgICAgIC8vIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgY2Fubm90IGRvIGFueXRoaW5nIGFzIGNvbnRlbnRUZW1wbGF0ZSBhcmUgbW9yZSBwZXJtaXNzaXZlLgogICAgICAgIC8vIFNpbmNlIHZhbHVlcyBhcmUgY29lcmNlZCB0byBzdHJpbmdzIGluIFBhdGhUZW1wbGF0ZXMgaXQgd2lsbCBiZSBmaW5lIGluIHRoZSBlbmQuCiAgICAgICAgcGF0aFRlbXBsYXRlKG9wdGlvbnMpCiAgICAgIF0pOwogICAgfQogICAgZnVuY3Rpb24gYXBwbHlUZW1wbGF0ZXMob3B0aW9ucykgewogICAgICByZXR1cm4gKDAsIGJhc2VfMS5mb3JFYWNoKSgoMCwgYmFzZV8xLndoZW4pKChwYXRoKSA9PiBwYXRoLmVuZHNXaXRoKCIudGVtcGxhdGUiKSwgKDAsIGJhc2VfMS5jb21wb3NlRmlsZU9wZXJhdG9ycykoWwogICAgICAgIGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIFNlZSBhYm92ZSBmb3IgdGhpcyB3ZWlyZCBjYXN0LgogICAgICAgIGFwcGx5UGF0aFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIChlbnRyeSkgPT4gewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29udGVudDogZW50cnkuY29udGVudCwKICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICBdKSkpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzCnZhciByZXF1aXJlX3VybCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi51cmwgPSB1cmwzOwogICAgdmFyIHVybF8xID0gcmVxdWlyZSgidXJsIik7CiAgICBmdW5jdGlvbiB1cmwzKHVybFN0cmluZykgewogICAgICBjb25zdCB1cmw0ID0gKDAsIHVybF8xLnBhcnNlKSh1cmxTdHJpbmcpOwogICAgICByZXR1cm4gKGNvbnRleHQpID0+IGNvbnRleHQuZW5naW5lLmNyZWF0ZVNvdXJjZUZyb21VcmwodXJsNCwgY29udGV4dCkoY29udGV4dCk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuRW1wdHlUcmVlID0gdm9pZCAwOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIHZhciBFbXB0eVRyZWUgPSBjbGFzcyBleHRlbmRzIGhvc3RfdHJlZV8xLkhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkVtcHR5VHJlZSA9IEVtcHR5VHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UcmVlID0gZXhwb3J0czIud29ya2Zsb3cgPSBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIuZm9ybWF0cyA9IGV4cG9ydHMyLlNjaGVtYXRpY3NFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ3MiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb3JlXzEuc3RyaW5nczsKICAgIH0gfSk7CiAgICB2YXIgZm9ybWF0cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2Zvcm1hdHMyKCkpOwogICAgZXhwb3J0czIuZm9ybWF0cyA9IGZvcm1hdHM7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgd29ya2Zsb3cgPSBfX2ltcG9ydFN0YXIocmVxdWlyZV93b3JrZmxvdygpKTsKICAgIGV4cG9ydHMyLndvcmtmbG93ID0gd29ya2Zsb3c7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjaGVtYXRpY3NFeGNlcHRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGNlcHRpb25fMS5TY2hlbWF0aWNzRXhjZXB0aW9uOwogICAgfSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2FjdGlvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbmdpbmUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2V4Y2VwdGlvbjIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlMygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9iYXNlMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jYWxsKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX21vdmUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmFuZG9tKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYzIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3VybCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kZWxlZ2F0ZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbXB0eTMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdF90cmVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kcnlydW4oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2luaygpLCBleHBvcnRzMik7CiAgICBleHBvcnRzMi5UcmVlID0gewogICAgICBlbXB0eSgpIHsKICAgICAgICByZXR1cm4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgICB9LAogICAgICBicmFuY2godHJlZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEuYnJhbmNoKSh0cmVlKTsKICAgICAgfSwKICAgICAgbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgICAgcmV0dXJuICgwLCBzdGF0aWNfMS5tZXJnZSkodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTsKICAgICAgfSwKICAgICAgcGFydGl0aW9uKHRyZWUsIHByZWRpY2F0ZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEucGFydGl0aW9uKSh0cmVlLCBwcmVkaWNhdGUpOwogICAgICB9LAogICAgICBvcHRpbWl6ZSh0cmVlKSB7CiAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3N0cmlwLWpzb24tY29tbWVudHMtbnBtLTMuMS4xLWRjYjIzMjQ4MjMtMTAuemlwL25vZGVfbW9kdWxlcy9zdHJpcC1qc29uLWNvbW1lbnRzL2luZGV4LmpzCnZhciByZXF1aXJlX3N0cmlwX2pzb25fY29tbWVudHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc3RyaXAtanNvbi1jb21tZW50cy1ucG0tMy4xLjEtZGNiMjMyNDgyMy0xMC56aXAvbm9kZV9tb2R1bGVzL3N0cmlwLWpzb24tY29tbWVudHMvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2luZ2xlQ29tbWVudCA9IFN5bWJvbCgic2luZ2xlQ29tbWVudCIpOwogICAgdmFyIG11bHRpQ29tbWVudCA9IFN5bWJvbCgibXVsdGlDb21tZW50Iik7CiAgICB2YXIgc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA9ICgpID0+ICIiOwogICAgdmFyIHN0cmlwV2l0aFdoaXRlc3BhY2UgPSAoc3RyaW5nLCBzdGFydCwgZW5kKSA9PiBzdHJpbmcuc2xpY2Uoc3RhcnQsIGVuZCkucmVwbGFjZSgvXFMvZywgIiAiKTsKICAgIHZhciBpc0VzY2FwZWQgPSAoanNvblN0cmluZywgcXVvdGVQb3NpdGlvbikgPT4gewogICAgICBsZXQgaW5kZXggPSBxdW90ZVBvc2l0aW9uIC0gMTsKICAgICAgbGV0IGJhY2tzbGFzaENvdW50ID0gMDsKICAgICAgd2hpbGUgKGpzb25TdHJpbmdbaW5kZXhdID09PSAiXFwiKSB7CiAgICAgICAgaW5kZXggLT0gMTsKICAgICAgICBiYWNrc2xhc2hDb3VudCArPSAxOwogICAgICB9CiAgICAgIHJldHVybiBCb29sZWFuKGJhY2tzbGFzaENvdW50ICUgMik7CiAgICB9OwogICAgbW9kdWxlMi5leHBvcnRzID0gKGpzb25TdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGpzb25TdHJpbmcgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYXJndW1lbnQgXGBqc29uU3RyaW5nXGAgdG8gYmUgYSBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiBqc29uU3RyaW5nfVxgYCk7CiAgICAgIH0KICAgICAgY29uc3Qgc3RyaXAgPSBvcHRpb25zLndoaXRlc3BhY2UgPT09IGZhbHNlID8gc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA6IHN0cmlwV2l0aFdoaXRlc3BhY2U7CiAgICAgIGxldCBpbnNpZGVTdHJpbmcgPSBmYWxzZTsKICAgICAgbGV0IGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uU3RyaW5nLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3VycmVudENoYXJhY3RlciA9IGpzb25TdHJpbmdbaV07CiAgICAgICAgY29uc3QgbmV4dENoYXJhY3RlciA9IGpzb25TdHJpbmdbaSArIDFdOwogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyID09PSAnIicpIHsKICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSBpc0VzY2FwZWQoanNvblN0cmluZywgaSk7CiAgICAgICAgICBpZiAoIWVzY2FwZWQpIHsKICAgICAgICAgICAgaW5zaWRlU3RyaW5nID0gIWluc2lkZVN0cmluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGluc2lkZVN0cmluZykgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIi8vIikgewogICAgICAgICAgcmVzdWx0ICs9IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0LCBpKTsKICAgICAgICAgIG9mZnNldCA9IGk7CiAgICAgICAgICBpbnNpZGVDb21tZW50ID0gc2luZ2xlQ29tbWVudDsKICAgICAgICAgIGkrKzsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IHNpbmdsZUNvbW1lbnQgJiYgY3VycmVudENoYXJhY3RlciArIG5leHRDaGFyYWN0ZXIgPT09ICJcclxuIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSk7CiAgICAgICAgICBvZmZzZXQgPSBpOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBlbHNlIGlmIChpbnNpZGVDb21tZW50ID09PSBzaW5nbGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgPT09ICJcbiIpIHsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgICAgIHJlc3VsdCArPSBzdHJpcChqc29uU3RyaW5nLCBvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICB9IGVsc2UgaWYgKCFpbnNpZGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgKyBuZXh0Q2hhcmFjdGVyID09PSAiLyoiKSB7CiAgICAgICAgICByZXN1bHQgKz0ganNvblN0cmluZy5zbGljZShvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBtdWx0aUNvbW1lbnQ7CiAgICAgICAgICBpKys7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IG11bHRpQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIiovIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSArIDEpOwogICAgICAgICAgb2Zmc2V0ID0gaSArIDE7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdCArIChpbnNpZGVDb21tZW50ID8gc3RyaXAoanNvblN0cmluZy5zbGljZShvZmZzZXQpKSA6IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0KSk7CiAgICB9OwogIH0KfSk7CgovLyBzcmMvc2NoZW1hdGljL2luZGV4LnRzCnZhciBpbmRleF9leHBvcnRzID0ge307Cl9fZXhwb3J0KGluZGV4X2V4cG9ydHMsIHsKICBtYWluOiAoKSA9PiBtYWluCn0pOwptb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTsKCi8vIHNyYy9zY2hlbWF0aWMvcHJvamVjdC9wcm9qZWN0LmZhY3RvcnkudHMKdmFyIGltcG9ydF9zY2hlbWF0aWNzOSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9qc29uLnV0aWxzLnRzCnZhciBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cyA9IF9fdG9FU00ocmVxdWlyZV9zdHJpcF9qc29uX2NvbW1lbnRzKCksIDEpOwp2YXIgc2VyaWFsaXplSnNvbiA9IChqc29uMikgPT4gYCR7SlNPTi5zdHJpbmdpZnkoanNvbjIsIG51bGwsIDIpfQpgOwp2YXIgcmVhZEpzb25JblRyZWUgPSAoaG9zdCwgcGF0aCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtwYXRofWApOwogIH0KICBjb25zdCBjb250ZW50cyA9ICgwLCBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cy5kZWZhdWx0KShob3N0LnJlYWQocGF0aCk/LnRvU3RyaW5nKCJ1dGYtOCIpIHx8ICIiKTsKICB0cnkgewogICAgcmV0dXJuIEpTT04ucGFyc2UoY29udGVudHMpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGNvbnN0IGVycm9yID0gZTsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlICR7cGF0aH06ICR7ZXJyb3IubWVzc2FnZX1gKTsKICB9Cn07CnZhciB1cGRhdGVKc29uSW5UcmVlID0gKHBhdGgsIGNhbGxiYWNrKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIGhvc3QuY3JlYXRlKHBhdGgsIHNlcmlhbGl6ZUpzb24oY2FsbGJhY2soe30sIGNvbnRleHQpKSk7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgaG9zdC5vdmVyd3JpdGUoCiAgICBwYXRoLAogICAgc2VyaWFsaXplSnNvbihjYWxsYmFjayhyZWFkSnNvbkluVHJlZShob3N0LCBwYXRoKSwgY29udGV4dCkpCiAgKTsKICByZXR1cm4gaG9zdDsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvdXRpbHMvdHNjb25maWcudXRpbHMudHMKdmFyIHVwZGF0ZVRzQ29uZmlnSW5UcmVlID0gKGNvbXBpbGVyT3B0aW9ucykgPT4gdXBkYXRlSnNvbkluVHJlZSgidHNjb25maWcuanNvbiIsICh0c2NvbmZpZykgPT4gKHsKICAuLi50c2NvbmZpZywKICBjb21waWxlck9wdGlvbnMKfSkpOwoKLy8gc3JjL3NjaGVtYXRpYy9ydWxlcy91cGRhdGUtdHMtY29uZmlnLnJ1bGUudHMKdmFyIHVwZGF0ZVRzQ29uZmlnUnVsZSA9IGFzeW5jICgpID0+IHsKICBjb25zdCB7IHRzQ29uZmlnIH0gPSBhd2FpdCBpbXBvcnQoIkBhdGxzL2NvZGUtcnVudGltZSIpOwogIHJldHVybiB1cGRhdGVUc0NvbmZpZ0luVHJlZSh7CiAgICAuLi50c0NvbmZpZy5jb21waWxlck9wdGlvbnMKICB9KTsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvc291cmNlcy9nZW5lcmF0ZS1jb21tb24uc291cmNlLnRzCnZhciBpbXBvcnRfY29yZSA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljcyA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MyID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczMgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgZ2VuZXJhdGVDb21tb25Tb3VyY2UgPSAob3B0aW9ucykgPT4gKDAsIGltcG9ydF9zY2hlbWF0aWNzLmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M0LnVybCkoIi4uL3RlbXBsYXRlcy9jb21tb24iKSwgWwogICgwLCBpbXBvcnRfc2NoZW1hdGljczIudGVtcGxhdGUpKHsKICAgIC4uLmltcG9ydF9jb3JlLnN0cmluZ3MsCiAgICAuLi5vcHRpb25zLAogICAgZG90OiAiLiIKICB9KSwKICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MzLm1vdmUpKCIuLyIpCl0pOwoKLy8gc3JjL3NjaGVtYXRpYy9zb3VyY2VzL2dlbmVyYXRlLXByb2plY3Qtc3BlY2lmaWMuc291cmNlLnRzCnZhciBpbXBvcnRfbm9kZV9mcyA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKdmFyIGltcG9ydF9ub2RlX3BhdGggPSByZXF1aXJlKCJub2RlOnBhdGgiKTsKdmFyIGltcG9ydF9jb3JlMiA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczUgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNiA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3M3ID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczggPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGdlbmVyYXRlUHJvamVjdFNwZWNpZmljU291cmNlID0gKG9wdGlvbnMpID0+IHsKICBjb25zdCB7IG5hbWU6IHByb2plY3ROYW1lIH0gPSBKU09OLnBhcnNlKAogICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG4vbm8tc3luYwogICAgKDAsIGltcG9ydF9ub2RlX2ZzLnJlYWRGaWxlU3luYykoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikob3B0aW9ucy5jd2QsICJwYWNrYWdlLmpzb24iKSwgInV0Zi04IikKICApOwogIHJldHVybiAoMCwgaW1wb3J0X3NjaGVtYXRpY3M1LmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M2LnVybCkoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikoIi4uL3RlbXBsYXRlcyIsIG9wdGlvbnMudHlwZSkpLCBbCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3M3LnRlbXBsYXRlKSh7CiAgICAgIC4uLmltcG9ydF9jb3JlMi5zdHJpbmdzLAogICAgICAuLi5vcHRpb25zLAogICAgICBwcm9qZWN0TmFtZSwKICAgICAgZG90OiAiLiIKICAgIH0pLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzOC5tb3ZlKSgiLi8iKQogIF0pOwp9OwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9tZXJnZS1naXRpZ25vcmUtY29udGVudC51dGlscy50cwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19TVEFSVF9NQVJLRVIgPSAiIyByYWlqaW46YmVnaW4gcHJvamVjdC1zcGVjaWZpYyBnaXRpZ25vcmUiOwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19FTkRfTUFSS0VSID0gIiMgcmFpamluOmVuZCBwcm9qZWN0LXNwZWNpZmljIGdpdGlnbm9yZSI7CnZhciBub3JtYWxpemVDb250ZW50ID0gKGNvbnRlbnQpID0+IGNvbnRlbnQucmVwbGFjZSgvXHJcbi9nLCAiXG4iKTsKdmFyIGdldE5vcm1hbGl6ZWRMaW5lcyA9IChjb250ZW50KSA9PiBub3JtYWxpemVDb250ZW50KGNvbnRlbnQpLnNwbGl0KCJcbiIpOwp2YXIgdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyA9IChsaW5lcykgPT4gewogIGNvbnN0IG5vcm1hbGl6ZWRMaW5lcyA9IFsuLi5saW5lc107CiAgd2hpbGUgKG5vcm1hbGl6ZWRMaW5lcy5sZW5ndGggPiAwICYmIG5vcm1hbGl6ZWRMaW5lc1tub3JtYWxpemVkTGluZXMubGVuZ3RoIC0gMV0gPT09ICIiKSB7CiAgICBub3JtYWxpemVkTGluZXMucG9wKCk7CiAgfQogIHJldHVybiBub3JtYWxpemVkTGluZXM7Cn07CnZhciBpc1Byb2plY3RTcGVjaWZpY0xpbmUgPSAobGluZSwgdGVtcGxhdGVMaW5lU2V0KSA9PiBsaW5lICE9PSAiIiAmJiAhdGVtcGxhdGVMaW5lU2V0LmhhcyhsaW5lKSAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX1NUQVJUX01BUktFUiAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVI7CnZhciBnZXRQcm9qZWN0U3BlY2lmaWNMaW5lcyA9IChleGlzdGluZ0xpbmVzLCB0ZW1wbGF0ZUxpbmVTZXQpID0+IHsKICBjb25zdCBzdGFydEluZGV4ID0gZXhpc3RpbmdMaW5lcy5pbmRleE9mKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBjb25zdCBlbmRJbmRleCA9IGV4aXN0aW5nTGluZXMuaW5kZXhPZihQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVIpOwogIGlmIChzdGFydEluZGV4ICE9PSAtMSAmJiBlbmRJbmRleCA+IHN0YXJ0SW5kZXgpIHsKICAgIHJldHVybiBBcnJheS5mcm9tKAogICAgICBuZXcgU2V0KGV4aXN0aW5nTGluZXMuZmlsdGVyKChsaW5lKSA9PiBpc1Byb2plY3RTcGVjaWZpY0xpbmUobGluZSwgdGVtcGxhdGVMaW5lU2V0KSkpCiAgICApOwogIH0KICByZXR1cm4gZXhpc3RpbmdMaW5lcy5maWx0ZXIoKGxpbmUpID0+IGlzUHJvamVjdFNwZWNpZmljTGluZShsaW5lLCB0ZW1wbGF0ZUxpbmVTZXQpKTsKfTsKdmFyIG1lcmdlR2l0SWdub3JlQ29udGVudCA9ICh7CiAgZXhpc3RpbmdDb250ZW50LAogIHRlbXBsYXRlQ29udGVudAp9KSA9PiB7CiAgY29uc3QgdGVtcGxhdGVMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyh0ZW1wbGF0ZUNvbnRlbnQpOwogIGNvbnN0IHRlbXBsYXRlTGluZVNldCA9IG5ldyBTZXQodGVtcGxhdGVMaW5lcyk7CiAgY29uc3QgZXhpc3RpbmdMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyhleGlzdGluZ0NvbnRlbnQpOwogIGNvbnN0IHByb2plY3RTcGVjaWZpY0xpbmVzID0gZ2V0UHJvamVjdFNwZWNpZmljTGluZXMoZXhpc3RpbmdMaW5lcywgdGVtcGxhdGVMaW5lU2V0KTsKICBpZiAocHJvamVjdFNwZWNpZmljTGluZXMubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyh0ZW1wbGF0ZUxpbmVzKS5qb2luKCJcbiIpOwogIH0KICBjb25zdCBtZXJnZWRMaW5lcyA9IHRyaW1UcmFpbGluZ0VtcHR5TGluZXModGVtcGxhdGVMaW5lcyk7CiAgaWYgKG1lcmdlZExpbmVzLmxlbmd0aCA+IDApIHsKICAgIG1lcmdlZExpbmVzLnB1c2goIiIpOwogIH0KICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBtZXJnZWRMaW5lcy5wdXNoKC4uLnByb2plY3RTcGVjaWZpY0xpbmVzKTsKICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfRU5EX01BUktFUik7CiAgcmV0dXJuIG1lcmdlZExpbmVzLmpvaW4oIlxuIik7Cn07CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qcy15YW1sLW5wbS00LjEuMC0zNjA2ZjMyMzEyLTEwLnppcC9ub2RlX21vZHVsZXMvanMteWFtbC9kaXN0L2pzLXlhbWwubWpzCmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7CiAgcmV0dXJuIHR5cGVvZiBzdWJqZWN0ID09PSAidW5kZWZpbmVkIiB8fCBzdWJqZWN0ID09PSBudWxsOwp9CmZ1bmN0aW9uIGlzT2JqZWN0KHN1YmplY3QpIHsKICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09ICJvYmplY3QiICYmIHN1YmplY3QgIT09IG51bGw7Cn0KZnVuY3Rpb24gdG9BcnJheShzZXF1ZW5jZSkgewogIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSkgcmV0dXJuIHNlcXVlbmNlOwogIGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHJldHVybiBbXTsKICByZXR1cm4gW3NlcXVlbmNlXTsKfQpmdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzOwogIGlmIChzb3VyY2UpIHsKICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKICAgIH0KICB9CiAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkgewogIHZhciByZXN1bHQgPSAiIiwgY3ljbGU7CiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHsKICAgIHJlc3VsdCArPSBzdHJpbmc7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7CiAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7Cn0KdmFyIGlzTm90aGluZ18xID0gaXNOb3RoaW5nOwp2YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0Owp2YXIgdG9BcnJheV8xID0gdG9BcnJheTsKdmFyIHJlcGVhdF8xID0gcmVwZWF0Owp2YXIgaXNOZWdhdGl2ZVplcm9fMSA9IGlzTmVnYXRpdmVaZXJvOwp2YXIgZXh0ZW5kXzEgPSBleHRlbmQ7CnZhciBjb21tb24gPSB7CiAgaXNOb3RoaW5nOiBpc05vdGhpbmdfMSwKICBpc09iamVjdDogaXNPYmplY3RfMSwKICB0b0FycmF5OiB0b0FycmF5XzEsCiAgcmVwZWF0OiByZXBlYXRfMSwKICBpc05lZ2F0aXZlWmVybzogaXNOZWdhdGl2ZVplcm9fMSwKICBleHRlbmQ6IGV4dGVuZF8xCn07CmZ1bmN0aW9uIGZvcm1hdEVycm9yKGV4Y2VwdGlvbjIsIGNvbXBhY3QpIHsKICB2YXIgd2hlcmUgPSAiIiwgbWVzc2FnZSA9IGV4Y2VwdGlvbjIucmVhc29uIHx8ICIodW5rbm93biByZWFzb24pIjsKICBpZiAoIWV4Y2VwdGlvbjIubWFyaykgcmV0dXJuIG1lc3NhZ2U7CiAgaWYgKGV4Y2VwdGlvbjIubWFyay5uYW1lKSB7CiAgICB3aGVyZSArPSAnaW4gIicgKyBleGNlcHRpb24yLm1hcmsubmFtZSArICciICc7CiAgfQogIHdoZXJlICs9ICIoIiArIChleGNlcHRpb24yLm1hcmsubGluZSArIDEpICsgIjoiICsgKGV4Y2VwdGlvbjIubWFyay5jb2x1bW4gKyAxKSArICIpIjsKICBpZiAoIWNvbXBhY3QgJiYgZXhjZXB0aW9uMi5tYXJrLnNuaXBwZXQpIHsKICAgIHdoZXJlICs9ICJcblxuIiArIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0OwogIH0KICByZXR1cm4gbWVzc2FnZSArICIgIiArIHdoZXJlOwp9CmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHsKICBFcnJvci5jYWxsKHRoaXMpOwogIHRoaXMubmFtZSA9ICJZQU1MRXhjZXB0aW9uIjsKICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKICB0aGlzLm1hcmsgPSBtYXJrOwogIHRoaXMubWVzc2FnZSA9IGZvcm1hdEVycm9yKHRoaXMsIGZhbHNlKTsKICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHsKICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpOwogIH0gZWxzZSB7CiAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2sgfHwgIiI7CiAgfQp9CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBZQU1MRXhjZXB0aW9uJDE7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7CiAgcmV0dXJuIHRoaXMubmFtZSArICI6ICIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTsKfTsKdmFyIGV4Y2VwdGlvbiA9IFlBTUxFeGNlcHRpb24kMTsKZnVuY3Rpb24gZ2V0TGluZShidWZmZXIsIGxpbmVTdGFydCwgbGluZUVuZCwgcG9zaXRpb24sIG1heExpbmVMZW5ndGgpIHsKICB2YXIgaGVhZCA9ICIiOwogIHZhciB0YWlsID0gIiI7CiAgdmFyIG1heEhhbGZMZW5ndGggPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGggLyAyKSAtIDE7CiAgaWYgKHBvc2l0aW9uIC0gbGluZVN0YXJ0ID4gbWF4SGFsZkxlbmd0aCkgewogICAgaGVhZCA9ICIgLi4uICI7CiAgICBsaW5lU3RhcnQgPSBwb3NpdGlvbiAtIG1heEhhbGZMZW5ndGggKyBoZWFkLmxlbmd0aDsKICB9CiAgaWYgKGxpbmVFbmQgLSBwb3NpdGlvbiA+IG1heEhhbGZMZW5ndGgpIHsKICAgIHRhaWwgPSAiIC4uLiI7CiAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7CiAgfQogIHJldHVybiB7CiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cdC9nLCAiXHUyMTkyIikgKyB0YWlsLAogICAgcG9zOiBwb3NpdGlvbiAtIGxpbmVTdGFydCArIGhlYWQubGVuZ3RoCiAgICAvLyByZWxhdGl2ZSBwb3NpdGlvbgogIH07Cn0KZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCBtYXgpIHsKICByZXR1cm4gY29tbW9uLnJlcGVhdCgiICIsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nOwp9CmZ1bmN0aW9uIG1ha2VTbmlwcGV0KG1hcmssIG9wdGlvbnMpIHsKICBvcHRpb25zID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpOwogIGlmICghbWFyay5idWZmZXIpIHJldHVybiBudWxsOwogIGlmICghb3B0aW9ucy5tYXhMZW5ndGgpIG9wdGlvbnMubWF4TGVuZ3RoID0gNzk7CiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gIm51bWJlciIpIG9wdGlvbnMuaW5kZW50ID0gMTsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNCZWZvcmUgIT09ICJudW1iZXIiKSBvcHRpb25zLmxpbmVzQmVmb3JlID0gMzsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNBZnRlciAhPT0gIm51bWJlciIpIG9wdGlvbnMubGluZXNBZnRlciA9IDI7CiAgdmFyIHJlID0gL1xyP1xufFxyfFwwL2c7CiAgdmFyIGxpbmVTdGFydHMgPSBbMF07CiAgdmFyIGxpbmVFbmRzID0gW107CiAgdmFyIG1hdGNoOwogIHZhciBmb3VuZExpbmVObyA9IC0xOwogIHdoaWxlIChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSB7CiAgICBsaW5lRW5kcy5wdXNoKG1hdGNoLmluZGV4KTsKICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHsKICAgICAgZm91bmRMaW5lTm8gPSBsaW5lU3RhcnRzLmxlbmd0aCAtIDI7CiAgICB9CiAgfQogIGlmIChmb3VuZExpbmVObyA8IDApIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxOwogIHZhciByZXN1bHQgPSAiIiwgaSwgbGluZTsKICB2YXIgbGluZU5vTGVuZ3RoID0gTWF0aC5taW4obWFyay5saW5lICsgb3B0aW9ucy5saW5lc0FmdGVyLCBsaW5lRW5kcy5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoOwogIHZhciBtYXhMaW5lTGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggLSAob3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzKTsKICBmb3IgKGkgPSAxOyBpIDw9IG9wdGlvbnMubGluZXNCZWZvcmU7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vIC0gaSA8IDApIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ID0gY29tbW9uLnJlcGVhdCgiICIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iICsgcmVzdWx0OwogIH0KICBsaW5lID0gZ2V0TGluZShtYXJrLmJ1ZmZlciwgbGluZVN0YXJ0c1tmb3VuZExpbmVOb10sIGxpbmVFbmRzW2ZvdW5kTGluZU5vXSwgbWFyay5wb3NpdGlvbiwgbWF4TGluZUxlbmd0aCk7CiAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iOwogIHJlc3VsdCArPSBjb21tb24ucmVwZWF0KCItIiwgb3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzICsgbGluZS5wb3MpICsgIl5cbiI7CiAgZm9yIChpID0gMTsgaSA8PSBvcHRpb25zLmxpbmVzQWZ0ZXI7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vICsgaSA+PSBsaW5lRW5kcy5sZW5ndGgpIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgaSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyAiIHwgIiArIGxpbmUuc3RyICsgIlxuIjsKICB9CiAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cbiQvLCAiIik7Cn0KdmFyIHNuaXBwZXQgPSBtYWtlU25pcHBldDsKdmFyIFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyA9IFsKICAia2luZCIsCiAgIm11bHRpIiwKICAicmVzb2x2ZSIsCiAgImNvbnN0cnVjdCIsCiAgImluc3RhbmNlT2YiLAogICJwcmVkaWNhdGUiLAogICJyZXByZXNlbnQiLAogICJyZXByZXNlbnROYW1lIiwKICAiZGVmYXVsdFN0eWxlIiwKICAic3R5bGVBbGlhc2VzIgpdOwp2YXIgWUFNTF9OT0RFX0tJTkRTID0gWwogICJzY2FsYXIiLAogICJzZXF1ZW5jZSIsCiAgIm1hcHBpbmciCl07CmZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXMobWFwMikgewogIHZhciByZXN1bHQgPSB7fTsKICBpZiAobWFwMiAhPT0gbnVsbCkgewogICAgT2JqZWN0LmtleXMobWFwMikuZm9yRWFjaChmdW5jdGlvbihzdHlsZSkgewogICAgICBtYXAyW3N0eWxlXS5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7CiAgICAgICAgcmVzdWx0W1N0cmluZyhhbGlhcyldID0gc3R5bGU7CiAgICAgIH0pOwogICAgfSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gVHlwZSQxKHRhZywgb3B0aW9ucykgewogIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewogICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiAiJyArIG5hbWUgKyAnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyArIHRhZyArICciIFlBTUwgdHlwZS4nKTsKICAgIH0KICB9KTsKICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogIHRoaXMudGFnID0gdGFnOwogIHRoaXMua2luZCA9IG9wdGlvbnNbImtpbmQiXSB8fCBudWxsOwogIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbInJlc29sdmUiXSB8fCBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0cnVlOwogIH07CiAgdGhpcy5jb25zdHJ1Y3QgPSBvcHRpb25zWyJjb25zdHJ1Y3QiXSB8fCBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YTsKICB9OwogIHRoaXMuaW5zdGFuY2VPZiA9IG9wdGlvbnNbImluc3RhbmNlT2YiXSB8fCBudWxsOwogIHRoaXMucHJlZGljYXRlID0gb3B0aW9uc1sicHJlZGljYXRlIl0gfHwgbnVsbDsKICB0aGlzLnJlcHJlc2VudCA9IG9wdGlvbnNbInJlcHJlc2VudCJdIHx8IG51bGw7CiAgdGhpcy5yZXByZXNlbnROYW1lID0gb3B0aW9uc1sicmVwcmVzZW50TmFtZSJdIHx8IG51bGw7CiAgdGhpcy5kZWZhdWx0U3R5bGUgPSBvcHRpb25zWyJkZWZhdWx0U3R5bGUiXSB8fCBudWxsOwogIHRoaXMubXVsdGkgPSBvcHRpb25zWyJtdWx0aSJdIHx8IGZhbHNlOwogIHRoaXMuc3R5bGVBbGlhc2VzID0gY29tcGlsZVN0eWxlQWxpYXNlcyhvcHRpb25zWyJzdHlsZUFsaWFzZXMiXSB8fCBudWxsKTsKICBpZiAoWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSA9PT0gLTEpIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1Vua25vd24ga2luZCAiJyArIHRoaXMua2luZCArICciIGlzIHNwZWNpZmllZCBmb3IgIicgKyB0YWcgKyAnIiBZQU1MIHR5cGUuJyk7CiAgfQp9CnZhciB0eXBlID0gVHlwZSQxOwpmdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEyLCBuYW1lKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIHNjaGVtYTJbbmFtZV0uZm9yRWFjaChmdW5jdGlvbihjdXJyZW50VHlwZSkgewogICAgdmFyIG5ld0luZGV4ID0gcmVzdWx0Lmxlbmd0aDsKICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkgewogICAgICBpZiAocHJldmlvdXNUeXBlLnRhZyA9PT0gY3VycmVudFR5cGUudGFnICYmIHByZXZpb3VzVHlwZS5raW5kID09PSBjdXJyZW50VHlwZS5raW5kICYmIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHsKICAgICAgICBuZXdJbmRleCA9IHByZXZpb3VzSW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmVzdWx0W25ld0luZGV4XSA9IGN1cnJlbnRUeXBlOwogIH0pOwogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gY29tcGlsZU1hcCgpIHsKICB2YXIgcmVzdWx0ID0gewogICAgc2NhbGFyOiB7fSwKICAgIHNlcXVlbmNlOiB7fSwKICAgIG1hcHBpbmc6IHt9LAogICAgZmFsbGJhY2s6IHt9LAogICAgbXVsdGk6IHsKICAgICAgc2NhbGFyOiBbXSwKICAgICAgc2VxdWVuY2U6IFtdLAogICAgICBtYXBwaW5nOiBbXSwKICAgICAgZmFsbGJhY2s6IFtdCiAgICB9CiAgfSwgaW5kZXgsIGxlbmd0aDsKICBmdW5jdGlvbiBjb2xsZWN0VHlwZSh0eXBlMikgewogICAgaWYgKHR5cGUyLm11bHRpKSB7CiAgICAgIHJlc3VsdC5tdWx0aVt0eXBlMi5raW5kXS5wdXNoKHR5cGUyKTsKICAgICAgcmVzdWx0Lm11bHRpWyJmYWxsYmFjayJdLnB1c2godHlwZTIpOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0W3R5cGUyLmtpbmRdW3R5cGUyLnRhZ10gPSByZXN1bHRbImZhbGxiYWNrIl1bdHlwZTIudGFnXSA9IHR5cGUyOwogICAgfQogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gU2NoZW1hJDEoZGVmaW5pdGlvbikgewogIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTsKfQpTY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kID0gZnVuY3Rpb24gZXh0ZW5kMihkZWZpbml0aW9uKSB7CiAgdmFyIGltcGxpY2l0ID0gW107CiAgdmFyIGV4cGxpY2l0ID0gW107CiAgaWYgKGRlZmluaXRpb24gaW5zdGFuY2VvZiB0eXBlKSB7CiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pOwogIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkgewogICAgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbik7CiAgfSBlbHNlIGlmIChkZWZpbml0aW9uICYmIChBcnJheS5pc0FycmF5KGRlZmluaXRpb24uaW1wbGljaXQpIHx8IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5leHBsaWNpdCkpKSB7CiAgICBpZiAoZGVmaW5pdGlvbi5pbXBsaWNpdCkgaW1wbGljaXQgPSBpbXBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5pbXBsaWNpdCk7CiAgICBpZiAoZGVmaW5pdGlvbi5leHBsaWNpdCkgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5leHBsaWNpdCk7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sIG9yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSkiKTsKICB9CiAgaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0eXBlJDEpIHsKICAgIGlmICghKHR5cGUkMSBpbnN0YW5jZW9mIHR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubG9hZEtpbmQgJiYgdHlwZSQxLmxvYWRLaW5kICE9PSAic2NhbGFyIikgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubXVsdGkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiVGhlcmUgaXMgYSBtdWx0aSB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBNdWx0aSB0YWdzIGNhbiBvbmx5IGJlIGxpc3RlZCBhcyBleHBsaWNpdC4iKTsKICAgIH0KICB9KTsKICBleHBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUkMSkgewogICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpOwogICAgfQogIH0pOwogIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7CiAgcmVzdWx0LmltcGxpY2l0ID0gKHRoaXMuaW1wbGljaXQgfHwgW10pLmNvbmNhdChpbXBsaWNpdCk7CiAgcmVzdWx0LmV4cGxpY2l0ID0gKHRoaXMuZXhwbGljaXQgfHwgW10pLmNvbmNhdChleHBsaWNpdCk7CiAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsICJpbXBsaWNpdCIpOwogIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCAiZXhwbGljaXQiKTsKICByZXN1bHQuY29tcGlsZWRUeXBlTWFwID0gY29tcGlsZU1hcChyZXN1bHQuY29tcGlsZWRJbXBsaWNpdCwgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQpOwogIHJldHVybiByZXN1bHQ7Cn07CnZhciBzY2hlbWEgPSBTY2hlbWEkMTsKdmFyIHN0ciA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLCB7CiAga2luZDogInNjYWxhciIsCiAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAiIjsKICB9Cn0pOwp2YXIgc2VxID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107CiAgfQp9KTsKdmFyIG1hcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLCB7CiAga2luZDogIm1hcHBpbmciLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDoge307CiAgfQp9KTsKdmFyIGZhaWxzYWZlID0gbmV3IHNjaGVtYSh7CiAgZXhwbGljaXQ6IFsKICAgIHN0ciwKICAgIHNlcSwKICAgIG1hcAogIF0KfSk7CmZ1bmN0aW9uIHJlc29sdmVZYW1sTnVsbChkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlOwogIHZhciBtYXggPSBkYXRhLmxlbmd0aDsKICByZXR1cm4gbWF4ID09PSAxICYmIGRhdGEgPT09ICJ+IiB8fCBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJudWxsIiB8fCBkYXRhID09PSAiTnVsbCIgfHwgZGF0YSA9PT0gIk5VTEwiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBpc051bGwob2JqZWN0KSB7CiAgcmV0dXJuIG9iamVjdCA9PT0gbnVsbDsKfQp2YXIgX251bGwgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE51bGwsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCwKICBwcmVkaWNhdGU6IGlzTnVsbCwKICByZXByZXNlbnQ6IHsKICAgIGNhbm9uaWNhbDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAifiI7CiAgICB9LAogICAgbG93ZXJjYXNlOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICJudWxsIjsKICAgIH0sCiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIk5VTEwiOwogICAgfSwKICAgIGNhbWVsY2FzZTogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAiTnVsbCI7CiAgICB9LAogICAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4oZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoOwogIHJldHVybiBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiKSB8fCBtYXggPT09IDUgJiYgKGRhdGEgPT09ICJmYWxzZSIgfHwgZGF0YSA9PT0gIkZhbHNlIiB8fCBkYXRhID09PSAiRkFMU0UiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7CiAgcmV0dXJuIGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiOwp9CmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICJbb2JqZWN0IEJvb2xlYW5dIjsKfQp2YXIgYm9vbCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQm9vbGVhbiwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLAogIHByZWRpY2F0ZTogaXNCb29sZWFuLAogIHJlcHJlc2VudDogewogICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJ0cnVlIiA6ICJmYWxzZSI7CiAgICB9LAogICAgdXBwZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUUlVFIiA6ICJGQUxTRSI7CiAgICB9LAogICAgY2FtZWxjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUcnVlIiA6ICJGYWxzZSI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiBpc0hleENvZGUoYykgewogIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTcgfHwgNjUgPD0gYyAmJiBjIDw9IDcwIHx8IDk3IDw9IGMgJiYgYyA8PSAxMDI7Cn0KZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHsKICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU1Owp9CmZ1bmN0aW9uIGlzRGVjQ29kZShjKSB7CiAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1NzsKfQpmdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDsKICBpZiAoIW1heCkgcmV0dXJuIGZhbHNlOwogIGNoID0gZGF0YVtpbmRleF07CiAgaWYgKGNoID09PSAiLSIgfHwgY2ggPT09ICIrIikgewogICAgY2ggPSBkYXRhWysraW5kZXhdOwogIH0KICBpZiAoY2ggPT09ICIwIikgewogICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSByZXR1cm4gdHJ1ZTsKICAgIGNoID0gZGF0YVsrK2luZGV4XTsKICAgIGlmIChjaCA9PT0gImIiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmIChjaCAhPT0gIjAiICYmIGNoICE9PSAiMSIpIHJldHVybiBmYWxzZTsKICAgICAgICBoYXNEaWdpdHMgPSB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICJfIjsKICAgIH0KICAgIGlmIChjaCA9PT0gIngiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmICghaXNIZXhDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAiXyI7CiAgICB9CiAgICBpZiAoY2ggPT09ICJvIikgewogICAgICBpbmRleCsrOwogICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHsKICAgICAgICBjaCA9IGRhdGFbaW5kZXhdOwogICAgICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gIl8iOwogICAgfQogIH0KICBpZiAoY2ggPT09ICJfIikgcmV0dXJuIGZhbHNlOwogIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgY2ggPSBkYXRhW2luZGV4XTsKICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgIGlmICghaXNEZWNDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgfQogIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSAiXyIpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7CiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoOwogIGlmICh2YWx1ZS5pbmRleE9mKCJfIikgIT09IC0xKSB7CiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgIiIpOwogIH0KICBjaCA9IHZhbHVlWzBdOwogIGlmIChjaCA9PT0gIi0iIHx8IGNoID09PSAiKyIpIHsKICAgIGlmIChjaCA9PT0gIi0iKSBzaWduID0gLTE7CiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpOwogICAgY2ggPSB2YWx1ZVswXTsKICB9CiAgaWYgKHZhbHVlID09PSAiMCIpIHJldHVybiAwOwogIGlmIChjaCA9PT0gIjAiKSB7CiAgICBpZiAodmFsdWVbMV0gPT09ICJiIikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7CiAgICBpZiAodmFsdWVbMV0gPT09ICJ4IikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpOwogICAgaWYgKHZhbHVlWzFdID09PSAibyIpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpOwogIH0KICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7Cn0KZnVuY3Rpb24gaXNJbnRlZ2VyKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTsKfQp2YXIgaW50ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOmludCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sSW50ZWdlciwKICBwcmVkaWNhdGU6IGlzSW50ZWdlciwKICByZXByZXNlbnQ6IHsKICAgIGJpbmFyeTogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwYiIgKyBvYmoudG9TdHJpbmcoMikgOiAiLTBiIiArIG9iai50b1N0cmluZygyKS5zbGljZSgxKTsKICAgIH0sCiAgICBvY3RhbDogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwbyIgKyBvYmoudG9TdHJpbmcoOCkgOiAiLTBvIiArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTsKICAgIH0sCiAgICBkZWNpbWFsOiBmdW5jdGlvbihvYmopIHsKICAgICAgcmV0dXJuIG9iai50b1N0cmluZygxMCk7CiAgICB9LAogICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqLwogICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uKG9iaikgewogICAgICByZXR1cm4gb2JqID49IDAgPyAiMHgiICsgb2JqLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpIDogIi0weCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJkZWNpbWFsIiwKICBzdHlsZUFsaWFzZXM6IHsKICAgIGJpbmFyeTogWzIsICJiaW4iXSwKICAgIG9jdGFsOiBbOCwgIm9jdCJdLAogICAgZGVjaW1hbDogWzEwLCAiZGVjIl0sCiAgICBoZXhhZGVjaW1hbDogWzE2LCAiaGV4Il0KICB9Cn0pOwp2YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cCgKICAvLyAyLjVlNCwgMi41IGFuZCBpbnRlZ2VycwogICJeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopKD86XFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/fFstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLig/Om5hbnxOYU58TkFOKSkkIgopOwpmdW5jdGlvbiByZXNvbHZlWWFtbEZsb2F0KGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gCiAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZAogIGRhdGFbZGF0YS5sZW5ndGggLSAxXSA9PT0gIl8iKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7CiAgdmFyIHZhbHVlLCBzaWduOwogIHZhbHVlID0gZGF0YS5yZXBsYWNlKC9fL2csICIiKS50b0xvd2VyQ2FzZSgpOwogIHNpZ24gPSB2YWx1ZVswXSA9PT0gIi0iID8gLTEgOiAxOwogIGlmICgiKy0iLmluZGV4T2YodmFsdWVbMF0pID49IDApIHsKICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7CiAgfQogIGlmICh2YWx1ZSA9PT0gIi5pbmYiKSB7CiAgICByZXR1cm4gc2lnbiA9PT0gMSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKICB9IGVsc2UgaWYgKHZhbHVlID09PSAiLm5hbiIpIHsKICAgIHJldHVybiBOYU47CiAgfQogIHJldHVybiBzaWduICogcGFyc2VGbG9hdCh2YWx1ZSwgMTApOwp9CnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvOwpmdW5jdGlvbiByZXByZXNlbnRZYW1sRmxvYXQob2JqZWN0LCBzdHlsZSkgewogIHZhciByZXM7CiAgaWYgKGlzTmFOKG9iamVjdCkpIHsKICAgIHN3aXRjaCAoc3R5bGUpIHsKICAgICAgY2FzZSAibG93ZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5uYW4iOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLk5BTiI7CiAgICAgIGNhc2UgImNhbWVsY2FzZSI6CiAgICAgICAgcmV0dXJuICIuTmFOIjsKICAgIH0KICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7CiAgICBzd2l0Y2ggKHN0eWxlKSB7CiAgICAgIGNhc2UgImxvd2VyY2FzZSI6CiAgICAgICAgcmV0dXJuICIuaW5mIjsKICAgICAgY2FzZSAidXBwZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLkluZiI7CiAgICB9CiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkgewogICAgc3dpdGNoIChzdHlsZSkgewogICAgICBjYXNlICJsb3dlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5pbmYiOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLS5JbmYiOwogICAgfQogIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHsKICAgIHJldHVybiAiLTAuMCI7CiAgfQogIHJlcyA9IG9iamVjdC50b1N0cmluZygxMCk7CiAgcmV0dXJuIFNDSUVOVElGSUNfV0lUSE9VVF9ET1QudGVzdChyZXMpID8gcmVzLnJlcGxhY2UoImUiLCAiLmUiKSA6IHJlczsKfQpmdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpOwp9CnZhciBmbG9hdCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEZsb2F0LAogIHByZWRpY2F0ZTogaXNGbG9hdCwKICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwp2YXIganNvbiA9IGZhaWxzYWZlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIF9udWxsLAogICAgYm9vbCwKICAgIGludCwKICAgIGZsb2F0CiAgXQp9KTsKdmFyIGNvcmUgPSBqc29uOwp2YXIgWUFNTF9EQVRFX1JFR0VYUCA9IG5ldyBSZWdFeHAoCiAgIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIgopOwp2YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cCgKICAiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiCik7CmZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlOwogIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkgewogIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCwgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7CiAgbWF0Y2ggPSBZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSk7CiAgaWYgKG1hdGNoID09PSBudWxsKSBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpOwogIGlmIChtYXRjaCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTsKICB5ZWFyID0gK21hdGNoWzFdOwogIG1vbnRoID0gK21hdGNoWzJdIC0gMTsKICBkYXkgPSArbWF0Y2hbM107CiAgaWYgKCFtYXRjaFs0XSkgewogICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTsKICB9CiAgaG91ciA9ICttYXRjaFs0XTsKICBtaW51dGUgPSArbWF0Y2hbNV07CiAgc2Vjb25kID0gK21hdGNoWzZdOwogIGlmIChtYXRjaFs3XSkgewogICAgZnJhY3Rpb24gPSBtYXRjaFs3XS5zbGljZSgwLCAzKTsKICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7CiAgICAgIGZyYWN0aW9uICs9ICIwIjsKICAgIH0KICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uOwogIH0KICBpZiAobWF0Y2hbOV0pIHsKICAgIHR6X2hvdXIgPSArbWF0Y2hbMTBdOwogICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7CiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNmU0OwogICAgaWYgKG1hdGNoWzldID09PSAiLSIpIGRlbHRhID0gLWRlbHRhOwogIH0KICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7CiAgaWYgKGRlbHRhKSBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7CiAgcmV0dXJuIGRhdGU7Cn0KZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QpIHsKICByZXR1cm4gb2JqZWN0LnRvSVNPU3RyaW5nKCk7Cn0KdmFyIHRpbWVzdGFtcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLCB7CiAga2luZDogInNjYWxhciIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLAogIGluc3RhbmNlT2Y6IERhdGUsCiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHsKICByZXR1cm4gZGF0YSA9PT0gIjw8IiB8fCBkYXRhID09PSBudWxsOwp9CnZhciBtZXJnZSA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlCn0pOwp2YXIgQkFTRTY0X01BUCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxuXHIiOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTsKICB2YXIgY29kZSwgaWR4LCBiaXRsZW4gPSAwLCBtYXggPSBkYXRhLmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBjb2RlID0gbWFwMi5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpOwogICAgaWYgKGNvZGUgPiA2NCkgY29udGludWU7CiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTsKICAgIGJpdGxlbiArPSA2OwogIH0KICByZXR1cm4gYml0bGVuICUgOCA9PT0gMDsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHsKICB2YXIgaWR4LCB0YWlsYml0cywgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcclxuPV0vZywgIiIpLCBtYXggPSBpbnB1dC5sZW5ndGgsIG1hcDIgPSBCQVNFNjRfTUFQLCBiaXRzID0gMCwgcmVzdWx0ID0gW107CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgNCA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0LnB1c2goYml0cyA+PiAxNiAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAyNTUpOwogICAgfQogICAgYml0cyA9IGJpdHMgPDwgNiB8IG1hcDIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7CiAgfQogIHRhaWxiaXRzID0gbWF4ICUgNCAqIDY7CiAgaWYgKHRhaWxiaXRzID09PSAwKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTsKICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTsKICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxOCkgewogICAgcmVzdWx0LnB1c2goYml0cyA+PiAxMCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpOwogIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDEyKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDQgJiAyNTUpOwogIH0KICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzdWx0KTsKfQpmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkgewogIHZhciByZXN1bHQgPSAiIiwgYml0cyA9IDAsIGlkeCwgdGFpbCwgbWF4ID0gb2JqZWN0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgMyA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxOCAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA2ICYgNjNdOwogICAgICByZXN1bHQgKz0gbWFwMltiaXRzICYgNjNdOwogICAgfQogICAgYml0cyA9IChiaXRzIDw8IDgpICsgb2JqZWN0W2lkeF07CiAgfQogIHRhaWwgPSBtYXggJSAzOwogIGlmICh0YWlsID09PSAwKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDE4ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gNiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgJiA2M107CiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDEwICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkgewogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0KICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIGlzQmluYXJ5KG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gIltvYmplY3QgVWludDhBcnJheV0iOwp9CnZhciBiaW5hcnkgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQmluYXJ5LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSwKICBwcmVkaWNhdGU6IGlzQmluYXJ5LAogIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEJpbmFyeQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIF90b1N0cmluZyQyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSwgb2JqZWN0ID0gZGF0YTsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdOwogICAgcGFpckhhc0tleSA9IGZhbHNlOwogICAgaWYgKF90b1N0cmluZyQyLmNhbGwocGFpcikgIT09ICJbb2JqZWN0IE9iamVjdF0iKSByZXR1cm4gZmFsc2U7CiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikgewogICAgICBpZiAoX2hhc093blByb3BlcnR5JDMuY2FsbChwYWlyLCBwYWlyS2V5KSkgewogICAgICAgIGlmICghcGFpckhhc0tleSkgcGFpckhhc0tleSA9IHRydWU7CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghcGFpckhhc0tleSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKG9iamVjdEtleXMuaW5kZXhPZihwYWlyS2V5KSA9PT0gLTEpIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTsKICAgIGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7CiAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107Cn0KdmFyIG9tYXAgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwCn0pOwp2YXIgX3RvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpmdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGlmIChfdG9TdHJpbmckMS5jYWxsKHBhaXIpICE9PSAiW29iamVjdCBPYmplY3RdIikgcmV0dXJuIGZhbHNlOwogICAga2V5cyA9IE9iamVjdC5rZXlzKHBhaXIpOwogICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSByZXR1cm4gZmFsc2U7CiAgICByZXN1bHRbaW5kZXhdID0gW2tleXNbMF0sIHBhaXJba2V5c1swXV1dOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gW107CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTsKICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KdmFyIHBhaXJzID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIiwgewogIGtpbmQ6ICJzZXF1ZW5jZSIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycywKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlycwp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTsKICB2YXIga2V5LCBvYmplY3QgPSBkYXRhOwogIGZvciAoa2V5IGluIG9iamVjdCkgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQyLmNhbGwob2JqZWN0LCBrZXkpKSB7CiAgICAgIGlmIChvYmplY3Rba2V5XSAhPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sU2V0KGRhdGEpIHsKICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsKfQp2YXIgc2V0ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNldCIsIHsKICBraW5kOiAibWFwcGluZyIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sU2V0Cn0pOwp2YXIgX2RlZmF1bHQgPSBjb3JlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIHRpbWVzdGFtcCwKICAgIG1lcmdlCiAgXSwKICBleHBsaWNpdDogWwogICAgYmluYXJ5LAogICAgb21hcCwKICAgIHBhaXJzLAogICAgc2V0CiAgXQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQxID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENPTlRFWFRfRkxPV19JTiA9IDE7CnZhciBDT05URVhUX0ZMT1dfT1VUID0gMjsKdmFyIENPTlRFWFRfQkxPQ0tfSU4gPSAzOwp2YXIgQ09OVEVYVF9CTE9DS19PVVQgPSA0Owp2YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7CnZhciBDSE9NUElOR19TVFJJUCA9IDI7CnZhciBDSE9NUElOR19LRUVQID0gMzsKdmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS87CnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXHg4NVx1MjAyOFx1MjAyOV0vOwp2YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgPSAvWyxcW1xdXHtcfV0vOwp2YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XC1dKyEpJC9pOwp2YXIgUEFUVEVSTl9UQUdfVVJJID0gL14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTsKZnVuY3Rpb24gX2NsYXNzKG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKTsKfQpmdW5jdGlvbiBpc19FT0woYykgewogIHJldHVybiBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19XSElURV9TUEFDRShjKSB7CiAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzI7Cn0KZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHsKICByZXR1cm4gYyA9PT0gOSB8fCBjID09PSAzMiB8fCBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7CiAgcmV0dXJuIGMgPT09IDQ0IHx8IGMgPT09IDkxIHx8IGMgPT09IDkzIHx8IGMgPT09IDEyMyB8fCBjID09PSAxMjU7Cn0KZnVuY3Rpb24gZnJvbUhleENvZGUoYykgewogIHZhciBsYzsKICBpZiAoNDggPD0gYyAmJiBjIDw9IDU3KSB7CiAgICByZXR1cm4gYyAtIDQ4OwogIH0KICBsYyA9IGMgfCAzMjsKICBpZiAoOTcgPD0gbGMgJiYgbGMgPD0gMTAyKSB7CiAgICByZXR1cm4gbGMgLSA5NyArIDEwOwogIH0KICByZXR1cm4gLTE7Cn0KZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7CiAgaWYgKGMgPT09IDEyMCkgewogICAgcmV0dXJuIDI7CiAgfQogIGlmIChjID09PSAxMTcpIHsKICAgIHJldHVybiA0OwogIH0KICBpZiAoYyA9PT0gODUpIHsKICAgIHJldHVybiA4OwogIH0KICByZXR1cm4gMDsKfQpmdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykgewogIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHsKICAgIHJldHVybiBjIC0gNDg7CiAgfQogIHJldHVybiAtMTsKfQpmdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7CiAgcmV0dXJuIGMgPT09IDQ4ID8gIlwwIiA6IGMgPT09IDk3ID8gIlx4MDciIDogYyA9PT0gOTggPyAiXGIiIDogYyA9PT0gMTE2ID8gIgkiIDogYyA9PT0gOSA/ICIJIiA6IGMgPT09IDExMCA/ICJcbiIgOiBjID09PSAxMTggPyAiXHYiIDogYyA9PT0gMTAyID8gIlxmIiA6IGMgPT09IDExNCA/ICJcciIgOiBjID09PSAxMDEgPyAiXHgxQiIgOiBjID09PSAzMiA/ICIgIiA6IGMgPT09IDM0ID8gJyInIDogYyA9PT0gNDcgPyAiLyIgOiBjID09PSA5MiA/ICJcXCIgOiBjID09PSA3OCA/ICJceDg1IiA6IGMgPT09IDk1ID8gIlx4QTAiIDogYyA9PT0gNzYgPyAiXHUyMDI4IiA6IGMgPT09IDgwID8gIlx1MjAyOSIgOiAiIjsKfQpmdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7CiAgaWYgKGMgPD0gNjU1MzUpIHsKICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOwogIH0KICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgKICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsCiAgICAoYyAtIDY1NTM2ICYgMTAyMykgKyA1NjMyMAogICk7Cn0KdmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7CnZhciBzaW1wbGVFc2NhcGVNYXAgPSBuZXcgQXJyYXkoMjU2KTsKZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgc2ltcGxlRXNjYXBlQ2hlY2tbaV0gPSBzaW1wbGVFc2NhcGVTZXF1ZW5jZShpKSA/IDEgOiAwOwogIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpOwp9CnZhciBpOwpmdW5jdGlvbiBTdGF0ZSQxKGlucHV0LCBvcHRpb25zKSB7CiAgdGhpcy5pbnB1dCA9IGlucHV0OwogIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zWyJmaWxlbmFtZSJdIHx8IG51bGw7CiAgdGhpcy5zY2hlbWEgPSBvcHRpb25zWyJzY2hlbWEiXSB8fCBfZGVmYXVsdDsKICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbIm9uV2FybmluZyJdIHx8IG51bGw7CiAgdGhpcy5sZWdhY3kgPSBvcHRpb25zWyJsZWdhY3kiXSB8fCBmYWxzZTsKICB0aGlzLmpzb24gPSBvcHRpb25zWyJqc29uIl0gfHwgZmFsc2U7CiAgdGhpcy5saXN0ZW5lciA9IG9wdGlvbnNbImxpc3RlbmVyIl0gfHwgbnVsbDsKICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0OwogIHRoaXMudHlwZU1hcCA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDsKICB0aGlzLmxlbmd0aCA9IGlucHV0Lmxlbmd0aDsKICB0aGlzLnBvc2l0aW9uID0gMDsKICB0aGlzLmxpbmUgPSAwOwogIHRoaXMubGluZVN0YXJ0ID0gMDsKICB0aGlzLmxpbmVJbmRlbnQgPSAwOwogIHRoaXMuZmlyc3RUYWJJbkxpbmUgPSAtMTsKICB0aGlzLmRvY3VtZW50cyA9IFtdOwp9CmZ1bmN0aW9uIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHsKICB2YXIgbWFyayA9IHsKICAgIG5hbWU6IHN0YXRlLmZpbGVuYW1lLAogICAgYnVmZmVyOiBzdGF0ZS5pbnB1dC5zbGljZSgwLCAtMSksCiAgICAvLyBvbWl0IHRyYWlsaW5nIFwwCiAgICBwb3NpdGlvbjogc3RhdGUucG9zaXRpb24sCiAgICBsaW5lOiBzdGF0ZS5saW5lLAogICAgY29sdW1uOiBzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydAogIH07CiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTsKICByZXR1cm4gbmV3IGV4Y2VwdGlvbihtZXNzYWdlLCBtYXJrKTsKfQpmdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlLCBtZXNzYWdlKSB7CiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7Cn0KZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7CiAgaWYgKHN0YXRlLm9uV2FybmluZykgewogICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkpOwogIH0KfQp2YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7CiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykgewogICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7CiAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKTsKICAgIH0KICAgIG1hdGNoID0gL14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFyZ3NbMF0pOwogICAgaWYgKG1hdGNoID09PSBudWxsKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpOwogICAgfQogICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApOwogICAgbWlub3IgPSBwYXJzZUludChtYXRjaFsyXSwgMTApOwogICAgaWYgKG1ham9yICE9PSAxKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07CiAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBtaW5vciA8IDI7CiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogIH0sCiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHsKICAgIHZhciBoYW5kbGUsIHByZWZpeDsKICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpOwogICAgfQogICAgaGFuZGxlID0gYXJnc1swXTsKICAgIHByZWZpeCA9IGFyZ3NbMV07CiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInICsgaGFuZGxlICsgJyIgdGFnIGhhbmRsZScpOwogICAgfQogICAgaWYgKCFQQVRURVJOX1RBR19VUkkudGVzdChwcmVmaXgpKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKTsKICAgIH0KICAgIHRyeSB7CiAgICAgIHByZWZpeCA9IGRlY29kZVVSSUNvbXBvbmVudChwcmVmaXgpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogIiArIHByZWZpeCk7CiAgICB9CiAgICBzdGF0ZS50YWdNYXBbaGFuZGxlXSA9IHByZWZpeDsKICB9Cn07CmZ1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBzdGFydCwgZW5kLCBjaGVja0pzb24pIHsKICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0OwogIGlmIChzdGFydCA8IGVuZCkgewogICAgX3Jlc3VsdCA9IHN0YXRlLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgaWYgKGNoZWNrSnNvbikgewogICAgICBmb3IgKF9wb3NpdGlvbiA9IDAsIF9sZW5ndGggPSBfcmVzdWx0Lmxlbmd0aDsgX3Bvc2l0aW9uIDwgX2xlbmd0aDsgX3Bvc2l0aW9uICs9IDEpIHsKICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICAgICAgaWYgKCEoX2NoYXJhY3RlciA9PT0gOSB8fCAzMiA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMTExNDExMSkpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIGlmIChQQVRURVJOX05PTl9QUklOVEFCTEUudGVzdChfcmVzdWx0KSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTsKICAgIH0KICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0OwogIH0KfQpmdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHsKICB2YXIgc291cmNlS2V5cywga2V5LCBpbmRleCwgcXVhbnRpdHk7CiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIik7CiAgfQogIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7CiAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkgewogICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07CiAgICAgIG92ZXJyaWRhYmxlS2V5c1trZXldID0gdHJ1ZTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgc3RhcnRMaW5lLCBzdGFydExpbmVTdGFydCwgc3RhcnRQb3MpIHsKICB2YXIgaW5kZXgsIHF1YW50aXR5OwogIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7CiAgICBrZXlOb2RlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoa2V5Tm9kZSk7CiAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBrZXlOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHsKICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGVbaW5kZXhdKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgICBrZXlOb2RlW2luZGV4XSA9ICJbb2JqZWN0IE9iamVjdF0iOwogICAgICB9CiAgICB9CiAgfQogIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGUpID09PSAiW29iamVjdCBPYmplY3RdIikgewogICAga2V5Tm9kZSA9ICJbb2JqZWN0IE9iamVjdF0iOwogIH0KICBrZXlOb2RlID0gU3RyaW5nKGtleU5vZGUpOwogIGlmIChfcmVzdWx0ID09PSBudWxsKSB7CiAgICBfcmVzdWx0ID0ge307CiAgfQogIGlmIChrZXlUYWcgPT09ICJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHsKICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKCFzdGF0ZS5qc29uICYmICFfaGFzT3duUHJvcGVydHkkMS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiYgX2hhc093blByb3BlcnR5JDEuY2FsbChfcmVzdWx0LCBrZXlOb2RlKSkgewogICAgICBzdGF0ZS5saW5lID0gc3RhcnRMaW5lIHx8IHN0YXRlLmxpbmU7CiAgICAgIHN0YXRlLmxpbmVTdGFydCA9IHN0YXJ0TGluZVN0YXJ0IHx8IHN0YXRlLmxpbmVTdGFydDsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGFydFBvcyB8fCBzdGF0ZS5wb3NpdGlvbjsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKTsKICAgIH0KICAgIGlmIChrZXlOb2RlID09PSAiX19wcm90b19fIikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3Jlc3VsdCwga2V5Tm9kZSwgewogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLAogICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIHZhbHVlOiB2YWx1ZU5vZGUKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlOwogICAgfQogICAgZGVsZXRlIG92ZXJyaWRhYmxlS2V5c1trZXlOb2RlXTsKICB9CiAgcmV0dXJuIF9yZXN1bHQ7Cn0KZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZSkgewogIHZhciBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTApIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgfSBlbHNlIGlmIChjaCA9PT0gMTMpIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDEwKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICB9CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKTsKICB9CiAgc3RhdGUubGluZSArPSAxOwogIHN0YXRlLmxpbmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gLTE7Cn0KZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHsKICB2YXIgbGluZUJyZWFrcyA9IDAsIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZS5maXJzdFRhYkluTGluZSA9PT0gLTEpIHsKICAgICAgICBzdGF0ZS5maXJzdFRhYkluTGluZSA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB9CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmIChhbGxvd0NvbW1lbnRzICYmIGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlIChjaCAhPT0gMTAgJiYgY2ggIT09IDEzICYmIGNoICE9PSAwKTsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICBsaW5lQnJlYWtzKys7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwOwogICAgICB3aGlsZSAoY2ggPT09IDMyKSB7CiAgICAgICAgc3RhdGUubGluZUluZGVudCsrOwogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGlmIChjaGVja0luZGVudCAhPT0gLTEgJiYgbGluZUJyZWFrcyAhPT0gMCAmJiBzdGF0ZS5saW5lSW5kZW50IDwgY2hlY2tJbmRlbnQpIHsKICAgIHRocm93V2FybmluZyhzdGF0ZSwgImRlZmljaWVudCBpbmRlbnRhdGlvbiIpOwogIH0KICByZXR1cm4gbGluZUJyZWFrczsKfQpmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pOwogIGlmICgoY2ggPT09IDQ1IHx8IGNoID09PSA0NikgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHsKICAgIF9wb3NpdGlvbiArPSAzOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIGNvdW50KSB7CiAgaWYgKGNvdW50ID09PSAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gIiAiOwogIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBjb3VudCAtIDEpOwogIH0KfQpmdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQsIHdpdGhpbkZsb3dDb2xsZWN0aW9uKSB7CiAgdmFyIHByZWNlZGluZywgZm9sbG93aW5nLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhhc1BlbmRpbmdDb250ZW50LCBfbGluZSwgX2xpbmVTdGFydCwgX2xpbmVJbmRlbnQsIF9raW5kID0gc3RhdGUua2luZCwgX3Jlc3VsdCA9IHN0YXRlLnJlc3VsdCwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoaXNfV1NfT1JfRU9MKGNoKSB8fCBpc19GTE9XX0lORElDQVRPUihjaCkgfHwgY2ggPT09IDM1IHx8IGNoID09PSAzOCB8fCBjaCA9PT0gNDIgfHwgY2ggPT09IDMzIHx8IGNoID09PSAxMjQgfHwgY2ggPT09IDYyIHx8IGNoID09PSAzOSB8fCBjaCA9PT0gMzQgfHwgY2ggPT09IDM3IHx8IGNoID09PSA2NCB8fCBjaCA9PT0gOTYpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgaWYgKGNoID09PSA2MyB8fCBjaCA9PT0gNDUpIHsKICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlOwogIHdoaWxlIChjaCAhPT0gMCkgewogICAgaWYgKGNoID09PSA1OCkgewogICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoY2ggPT09IDM1KSB7CiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgICBicmVhazsKICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkgewogICAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIC0xKTsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPj0gbm9kZUluZGVudCkgewogICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDsKICAgICAgICBzdGF0ZS5saW5lID0gX2xpbmU7CiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDsKICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBmYWxzZSk7CiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7CiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSBmYWxzZTsKICAgIH0KICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7CiAgICB9CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgfQogIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTsKICBpZiAoc3RhdGUucmVzdWx0KSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgc3RhdGUua2luZCA9IF9raW5kOwogIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzkpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIHN0YXRlLnBvc2l0aW9uKys7CiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogIHdoaWxlICgoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkgIT09IDApIHsKICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkgewogIHZhciBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhleExlbmd0aCwgaGV4UmVzdWx0LCB0bXAsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSAzNCkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBzdGF0ZS5raW5kID0gInNjYWxhciI7CiAgc3RhdGUucmVzdWx0ID0gIiI7CiAgc3RhdGUucG9zaXRpb24rKzsKICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkgewogICAgaWYgKGNoID09PSAzNCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIGlmIChjaCA9PT0gOTIpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpOwogICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHsKICAgICAgICBoZXhMZW5ndGggPSB0bXA7CiAgICAgICAgaGV4UmVzdWx0ID0gMDsKICAgICAgICBmb3IgKDsgaGV4TGVuZ3RoID4gMDsgaGV4TGVuZ3RoLS0pIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7CiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7CiAgICAgIH0KICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9yZXN1bHQsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIGZvbGxvd2luZywgdGVybWluYXRvciwgaXNQYWlyLCBpc0V4cGxpY2l0UGFpciwgaXNNYXBwaW5nLCBvdmVycmlkYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKSwga2V5Tm9kZSwga2V5VGFnLCB2YWx1ZU5vZGUsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoID09PSA5MSkgewogICAgdGVybWluYXRvciA9IDkzOwogICAgaXNNYXBwaW5nID0gZmFsc2U7CiAgICBfcmVzdWx0ID0gW107CiAgfSBlbHNlIGlmIChjaCA9PT0gMTIzKSB7CiAgICB0ZXJtaW5hdG9yID0gMTI1OwogICAgaXNNYXBwaW5nID0gdHJ1ZTsKICAgIF9yZXN1bHQgPSB7fTsKICB9IGVsc2UgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gIm1hcHBpbmciIDogInNlcXVlbmNlIjsKICAgICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKTsKICAgIH0gZWxzZSBpZiAoY2ggPT09IDQ0KSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnIik7CiAgICB9CiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDsKICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7CiAgICBpZiAoY2ggPT09IDYzKSB7CiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIH0KICAgIH0KICAgIF9saW5lID0gc3RhdGUubGluZTsKICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICBfcG9zID0gc3RhdGUucG9zaXRpb247CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7CiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDU4KSB7CiAgICAgIGlzUGFpciA9IHRydWU7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTsKICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0OwogICAgfQogICAgaWYgKGlzTWFwcGluZykgewogICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7CiAgICB9IGVsc2UgaWYgKGlzUGFpcikgewogICAgICBfcmVzdWx0LnB1c2goc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTsKICAgIH0gZWxzZSB7CiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTsKICAgIH0KICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDQpIHsKICAgICAgcmVhZE5leHQgPSB0cnVlOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICByZWFkTmV4dCA9IGZhbHNlOwogICAgfQogIH0KICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKTsKfQpmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2FwdHVyZVN0YXJ0LCBmb2xkaW5nLCBjaG9tcGluZyA9IENIT01QSU5HX0NMSVAsIGRpZFJlYWRDb250ZW50ID0gZmFsc2UsIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsIHRleHRJbmRlbnQgPSBub2RlSW5kZW50LCBlbXB0eUxpbmVzID0gMCwgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSwgdG1wLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTI0KSB7CiAgICBmb2xkaW5nID0gZmFsc2U7CiAgfSBlbHNlIGlmIChjaCA9PT0gNjIpIHsKICAgIGZvbGRpbmcgPSB0cnVlOwogIH0gZWxzZSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHN0YXRlLmtpbmQgPSAic2NhbGFyIjsKICBzdGF0ZS5yZXN1bHQgPSAiIjsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDMgfHwgY2ggPT09IDQ1KSB7CiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykgewogICAgICAgIGNob21waW5nID0gY2ggPT09IDQzID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTsKICAgICAgfQogICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkgewogICAgICBpZiAodG1wID09PSAwKSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTsKICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHsKICAgICAgICB0ZXh0SW5kZW50ID0gbm9kZUluZGVudCArIHRtcCAtIDE7CiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBicmVhazsKICAgIH0KICB9CiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgZG8gewogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpOwogICAgaWYgKGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7CiAgICB9CiAgfQogIHdoaWxlIChjaCAhPT0gMCkgewogICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgICB3aGlsZSAoKCFkZXRlY3RlZEluZGVudCB8fCBzdGF0ZS5saW5lSW5kZW50IDwgdGV4dEluZGVudCkgJiYgY2ggPT09IDMyKSB7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKzsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgaWYgKCFkZXRlY3RlZEluZGVudCAmJiBzdGF0ZS5saW5lSW5kZW50ID4gdGV4dEluZGVudCkgewogICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGVtcHR5TGluZXMrKzsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHsKICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpOwogICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7CiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7CiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gIlxuIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoZm9sZGluZykgewogICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlOwogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTsKICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkgewogICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZW1wdHlMaW5lcyArIDEpOwogICAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXMgPT09IDApIHsKICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHsKICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAiICI7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGVtcHR5TGluZXMpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7CiAgICB9CiAgICBkaWRSZWFkQ29udGVudCA9IHRydWU7CiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7CiAgICBlbXB0eUxpbmVzID0gMDsKICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogICAgd2hpbGUgKCFpc19FT0woY2gpICYmIGNoICE9PSAwKSB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCBmYWxzZSk7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIF9saW5lLCBfdGFnID0gc3RhdGUudGFnLCBfYW5jaG9yID0gc3RhdGUuYW5jaG9yLCBfcmVzdWx0ID0gW10sIGZvbGxvd2luZywgZGV0ZWN0ZWQgPSBmYWxzZSwgY2g7CiAgaWYgKHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDsKICB9CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24iKTsKICAgIH0KICAgIGlmIChjaCAhPT0gNDUpIHsKICAgICAgYnJlYWs7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGJyZWFrOwogICAgfQogICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgc3RhdGUucG9zaXRpb24rKzsKICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkgewogICAgICAgIF9yZXN1bHQucHVzaChudWxsKTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICB9CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpOwogICAgX3Jlc3VsdC5wdXNoKHN0YXRlLnJlc3VsdCk7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoZGV0ZWN0ZWQpIHsKICAgIHN0YXRlLnRhZyA9IF90YWc7CiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgc3RhdGUua2luZCA9ICJzZXF1ZW5jZSI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogICAgcmV0dXJuIHRydWU7CiAgfQogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7CiAgdmFyIGZvbGxvd2luZywgYWxsb3dDb21wYWN0LCBfbGluZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIF9yZXN1bHQgPSB7fSwgb3ZlcnJpZGFibGVLZXlzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCksIGtleVRhZyA9IG51bGwsIGtleU5vZGUgPSBudWxsLCB2YWx1ZU5vZGUgPSBudWxsLCBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsIGRldGVjdGVkID0gZmFsc2UsIGNoOwogIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICBpZiAoIWF0RXhwbGljaXRLZXkgJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhdGUuZmlyc3RUYWJJbkxpbmU7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIik7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBpZiAoKGNoID09PSA2MyB8fCBjaCA9PT0gNTgpICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGlmIChjaCA9PT0gNjMpIHsKICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgIH0KICAgICAgICBkZXRlY3RlZCA9IHRydWU7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7CiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTsKICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKTsKICAgICAgfQogICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxOwogICAgICBjaCA9IGZvbGxvd2luZzsKICAgIH0gZWxzZSB7CiAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDsKICAgICAgX2tleVBvcyA9IHN0YXRlLnBvc2l0aW9uOwogICAgICBpZiAoIWNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNoID09PSA1OCkgewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCBudWxsLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7CiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7CiAgICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgewogICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0OwogICAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfQogICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfT1VULCB0cnVlLCBhbGxvd0NvbXBhY3QpKSB7CiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHsKICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpOwogICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICB9CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmICgoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpICYmIGNoICE9PSAwKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICB9CiAgaWYgKGRldGVjdGVkKSB7CiAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgIHN0YXRlLmtpbmQgPSAibWFwcGluZyI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogIH0KICByZXR1cm4gZGV0ZWN0ZWQ7Cn0KZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgaXNWZXJiYXRpbSA9IGZhbHNlLCBpc05hbWVkID0gZmFsc2UsIHRhZ0hhbmRsZSwgdGFnTmFtZSwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggIT09IDMzKSByZXR1cm4gZmFsc2U7CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggPT09IDYwKSB7CiAgICBpc1ZlcmJhdGltID0gdHJ1ZTsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB9IGVsc2UgaWYgKGNoID09PSAzMykgewogICAgaXNOYW1lZCA9IHRydWU7CiAgICB0YWdIYW5kbGUgPSAiISEiOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0gZWxzZSB7CiAgICB0YWdIYW5kbGUgPSAiISI7CiAgfQogIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBkbyB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0gd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSA2Mik7CiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHsKICAgICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKTsKICAgIH0KICB9IGVsc2UgewogICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gMzMpIHsKICAgICAgICBpZiAoIWlzTmFtZWQpIHsKICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIik7CiAgICAgICAgICB9CiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTsKICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycyIpOwogICAgfQogIH0KICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIgKyB0YWdOYW1lKTsKICB9CiAgdHJ5IHsKICAgIHRhZ05hbWUgPSBkZWNvZGVVUklDb21wb25lbnQodGFnTmFtZSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiICsgdGFnTmFtZSk7CiAgfQogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBzdGF0ZS50YWcgPSB0YWdOYW1lOwogIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHsKICAgIHN0YXRlLnRhZyA9IHN0YXRlLnRhZ01hcFt0YWdIYW5kbGVdICsgdGFnTmFtZTsKICB9IGVsc2UgaWYgKHRhZ0hhbmRsZSA9PT0gIiEiKSB7CiAgICBzdGF0ZS50YWcgPSAiISIgKyB0YWdOYW1lOwogIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSAiISEiKSB7CiAgICBzdGF0ZS50YWcgPSAidGFnOnlhbWwub3JnLDIwMDI6IiArIHRhZ05hbWU7CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicgKyB0YWdIYW5kbGUgKyAnIicpOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzgpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKTsKICB9CiAgc3RhdGUuYW5jaG9yID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgYWxpYXMsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSA0MikgcmV0dXJuIGZhbHNlOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpOwogIH0KICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS5hbmNob3JNYXAsIGFsaWFzKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyAiJyArIGFsaWFzICsgJyInKTsKICB9CiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTsKICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHsKICB2YXIgYWxsb3dCbG9ja1N0eWxlcywgYWxsb3dCbG9ja1NjYWxhcnMsIGFsbG93QmxvY2tDb2xsZWN0aW9ucywgaW5kZW50U3RhdHVzID0gMSwgYXROZXdMaW5lID0gZmFsc2UsIGhhc0NvbnRlbnQgPSBmYWxzZSwgdHlwZUluZGV4LCB0eXBlUXVhbnRpdHksIHR5cGVMaXN0LCB0eXBlMiwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigib3BlbiIsIHN0YXRlKTsKICB9CiAgc3RhdGUudGFnID0gbnVsbDsKICBzdGF0ZS5hbmNob3IgPSBudWxsOwogIHN0YXRlLmtpbmQgPSBudWxsOwogIHN0YXRlLnJlc3VsdCA9IG51bGw7CiAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfQkxPQ0tfSU4gPT09IG5vZGVDb250ZXh0OwogIGlmIChhbGxvd1RvU2VlaykgewogICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkgewogICAgICBhdE5ld0xpbmUgPSB0cnVlOwogICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkgewogICAgICAgIGluZGVudFN0YXR1cyA9IDE7CiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gMDsKICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkgewogICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7CiAgICAgICAgYXROZXdMaW5lID0gdHJ1ZTsKICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzOwogICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkgewogICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQogIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHsKICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7CiAgfQogIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7CiAgICBpZiAoQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCB8fCBDT05URVhUX0ZMT1dfT1VUID09PSBub2RlQ29udGV4dCkgewogICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50OwogICAgfSBlbHNlIHsKICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudCArIDE7CiAgICB9CiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0OwogICAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8IHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHwgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBmbG93SW5kZW50KSkgewogICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHsKICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHsKICAgICAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7CiAgICAgIGhhc0NvbnRlbnQgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiYgcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KTsKICAgIH0KICB9CiAgaWYgKHN0YXRlLnRhZyA9PT0gbnVsbCkgewogICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgIH0KICB9IGVsc2UgaWYgKHN0YXRlLnRhZyA9PT0gIj8iKSB7CiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHN0YXRlLmtpbmQgIT09ICJzY2FsYXIiKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicgKyBzdGF0ZS5raW5kICsgJyInKTsKICAgIH0KICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHsKICAgICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07CiAgICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCkpIHsKICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTsKICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi50YWc7CiAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzdGF0ZS50YWcgIT09ICIhIikgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdLCBzdGF0ZS50YWcpKSB7CiAgICAgIHR5cGUyID0gc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdW3N0YXRlLnRhZ107CiAgICB9IGVsc2UgewogICAgICB0eXBlMiA9IG51bGw7CiAgICAgIHR5cGVMaXN0ID0gc3RhdGUudHlwZU1hcC5tdWx0aVtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdOwogICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkgewogICAgICAgIGlmIChzdGF0ZS50YWcuc2xpY2UoMCwgdHlwZUxpc3RbdHlwZUluZGV4XS50YWcubGVuZ3RoKSA9PT0gdHlwZUxpc3RbdHlwZUluZGV4XS50YWcpIHsKICAgICAgICAgIHR5cGUyID0gdHlwZUxpc3RbdHlwZUluZGV4XTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgaWYgKCF0eXBlMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5rbm93biB0YWcgITwiICsgc3RhdGUudGFnICsgIj4iKTsKICAgIH0KICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgdHlwZTIua2luZCAhPT0gc3RhdGUua2luZCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiICsgc3RhdGUudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgIicgKyB0eXBlMi5raW5kICsgJyIsIG5vdCAiJyArIHN0YXRlLmtpbmQgKyAnIicpOwogICAgfQogICAgaWYgKCF0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiICsgc3RhdGUudGFnICsgIj4gZXhwbGljaXQgdGFnIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0LCBzdGF0ZS50YWcpOwogICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigiY2xvc2UiLCBzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7Cn0KZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7CiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbiwgX3Bvc2l0aW9uLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzLCBoYXNEaXJlY3RpdmVzID0gZmFsc2UsIGNoOwogIHN0YXRlLnZlcnNpb24gPSBudWxsOwogIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTsKICBzdGF0ZS50YWdNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBzdGF0ZS5hbmNob3JNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiAwIHx8IGNoICE9PSAzNykgewogICAgICBicmVhazsKICAgIH0KICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247CiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgZGlyZWN0aXZlTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgZGlyZWN0aXZlQXJncyA9IFtdOwogICAgaWYgKGRpcmVjdGl2ZU5hbWUubGVuZ3RoIDwgMSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7CiAgICB9CiAgICB3aGlsZSAoY2ggIT09IDApIHsKICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgICBpZiAoY2ggPT09IDM1KSB7CiAgICAgICAgZG8gewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoaXNfRU9MKGNoKSkgYnJlYWs7CiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIH0KICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pKTsKICAgIH0KICAgIGlmIChjaCAhPT0gMCkgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChkaXJlY3RpdmVIYW5kbGVycywgZGlyZWN0aXZlTmFtZSkpIHsKICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicgKyBkaXJlY3RpdmVOYW1lICsgJyInKTsKICAgIH0KICB9CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSAwICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSA0NSAmJiBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gNDUpIHsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgfSBlbHNlIGlmIChoYXNEaXJlY3RpdmVzKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpOwogIH0KICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5jaGVja0xpbmVCcmVha3MgJiYgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7CiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKTsKICB9CiAgc3RhdGUuZG9jdW1lbnRzLnB1c2goc3RhdGUucmVzdWx0KTsKICBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDQ2KSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgIH0KICAgIHJldHVybjsKICB9CiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoIC0gMSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykgewogIGlucHV0ID0gU3RyaW5nKGlucHV0KTsKICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7CiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTAgJiYgaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTMpIHsKICAgICAgaW5wdXQgKz0gIlxuIjsKICAgIH0KICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSA2NTI3OSkgewogICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpOwogICAgfQogIH0KICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgdmFyIG51bGxwb3MgPSBpbnB1dC5pbmRleE9mKCJcMCIpOwogIGlmIChudWxscG9zICE9PSAtMSkgewogICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zOwogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpOwogIH0KICBzdGF0ZS5pbnB1dCArPSAiXDAiOwogIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMzIpIHsKICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7CiAgfQogIHdoaWxlIChzdGF0ZS5wb3NpdGlvbiA8IHN0YXRlLmxlbmd0aCAtIDEpIHsKICAgIHJlYWREb2N1bWVudChzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7Cn0KZnVuY3Rpb24gbG9hZEFsbCQxKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykgewogIGlmIChpdGVyYXRvciAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlcmF0b3IgPT09ICJvYmplY3QiICYmIHR5cGVvZiBvcHRpb25zID09PSAidW5kZWZpbmVkIikgewogICAgb3B0aW9ucyA9IGl0ZXJhdG9yOwogICAgaXRlcmF0b3IgPSBudWxsOwogIH0KICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7CiAgaWYgKHR5cGVvZiBpdGVyYXRvciAhPT0gImZ1bmN0aW9uIikgewogICAgcmV0dXJuIGRvY3VtZW50czsKICB9CiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7CiAgfQp9CmZ1bmN0aW9uIGxvYWQkMShpbnB1dCwgb3B0aW9ucykgewogIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKTsKICBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkgewogICAgcmV0dXJuIHZvaWQgMDsKICB9IGVsc2UgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgIHJldHVybiBkb2N1bWVudHNbMF07CiAgfQogIHRocm93IG5ldyBleGNlcHRpb24oImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIik7Cn0KdmFyIGxvYWRBbGxfMSA9IGxvYWRBbGwkMTsKdmFyIGxvYWRfMSA9IGxvYWQkMTsKdmFyIGxvYWRlciA9IHsKICBsb2FkQWxsOiBsb2FkQWxsXzEsCiAgbG9hZDogbG9hZF8xCn07CnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwp2YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENIQVJfQk9NID0gNjUyNzk7CnZhciBDSEFSX1RBQiA9IDk7CnZhciBDSEFSX0xJTkVfRkVFRCA9IDEwOwp2YXIgQ0hBUl9DQVJSSUFHRV9SRVRVUk4gPSAxMzsKdmFyIENIQVJfU1BBQ0UgPSAzMjsKdmFyIENIQVJfRVhDTEFNQVRJT04gPSAzMzsKdmFyIENIQVJfRE9VQkxFX1FVT1RFID0gMzQ7CnZhciBDSEFSX1NIQVJQID0gMzU7CnZhciBDSEFSX1BFUkNFTlQgPSAzNzsKdmFyIENIQVJfQU1QRVJTQU5EID0gMzg7CnZhciBDSEFSX1NJTkdMRV9RVU9URSA9IDM5Owp2YXIgQ0hBUl9BU1RFUklTSyA9IDQyOwp2YXIgQ0hBUl9DT01NQSA9IDQ0Owp2YXIgQ0hBUl9NSU5VUyA9IDQ1Owp2YXIgQ0hBUl9DT0xPTiA9IDU4Owp2YXIgQ0hBUl9FUVVBTFMgPSA2MTsKdmFyIENIQVJfR1JFQVRFUl9USEFOID0gNjI7CnZhciBDSEFSX1FVRVNUSU9OID0gNjM7CnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgPSA2NDsKdmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDkxOwp2YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDkzOwp2YXIgQ0hBUl9HUkFWRV9BQ0NFTlQgPSA5NjsKdmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUID0gMTIzOwp2YXIgQ0hBUl9WRVJUSUNBTF9MSU5FID0gMTI0Owp2YXIgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUID0gMTI1Owp2YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9OwpFU0NBUEVfU0VRVUVOQ0VTWzBdID0gIlxcMCI7CkVTQ0FQRV9TRVFVRU5DRVNbN10gPSAiXFxhIjsKRVNDQVBFX1NFUVVFTkNFU1s4XSA9ICJcXGIiOwpFU0NBUEVfU0VRVUVOQ0VTWzldID0gIlxcdCI7CkVTQ0FQRV9TRVFVRU5DRVNbMTBdID0gIlxcbiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTFdID0gIlxcdiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTJdID0gIlxcZiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTNdID0gIlxcciI7CkVTQ0FQRV9TRVFVRU5DRVNbMjddID0gIlxcZSI7CkVTQ0FQRV9TRVFVRU5DRVNbMzRdID0gJ1xcIic7CkVTQ0FQRV9TRVFVRU5DRVNbOTJdID0gIlxcXFwiOwpFU0NBUEVfU0VRVUVOQ0VTWzEzM10gPSAiXFxOIjsKRVNDQVBFX1NFUVVFTkNFU1sxNjBdID0gIlxcXyI7CkVTQ0FQRV9TRVFVRU5DRVNbODIzMl0gPSAiXFxMIjsKRVNDQVBFX1NFUVVFTkNFU1s4MjMzXSA9ICJcXFAiOwp2YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbCiAgInkiLAogICJZIiwKICAieWVzIiwKICAiWWVzIiwKICAiWUVTIiwKICAib24iLAogICJPbiIsCiAgIk9OIiwKICAibiIsCiAgIk4iLAogICJubyIsCiAgIk5vIiwKICAiTk8iLAogICJvZmYiLAogICJPZmYiLAogICJPRkYiCl07CnZhciBERVBSRUNBVEVEX0JBU0U2MF9TWU5UQVggPSAvXlstK10/WzAtOV9dKyg/OjpbMC05X10rKSsoPzpcLlswLTlfXSopPyQvOwpmdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hMiwgbWFwMikgewogIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGUyOwogIGlmIChtYXAyID09PSBudWxsKSByZXR1cm4ge307CiAgcmVzdWx0ID0ge307CiAga2V5cyA9IE9iamVjdC5rZXlzKG1hcDIpOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHRhZyA9IGtleXNbaW5kZXhdOwogICAgc3R5bGUgPSBTdHJpbmcobWFwMlt0YWddKTsKICAgIGlmICh0YWcuc2xpY2UoMCwgMikgPT09ICIhISIpIHsKICAgICAgdGFnID0gInRhZzp5YW1sLm9yZywyMDAyOiIgKyB0YWcuc2xpY2UoMik7CiAgICB9CiAgICB0eXBlMiA9IHNjaGVtYTIuY29tcGlsZWRUeXBlTWFwWyJmYWxsYmFjayJdW3RhZ107CiAgICBpZiAodHlwZTIgJiYgX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHsKICAgICAgc3R5bGUgPSB0eXBlMi5zdHlsZUFsaWFzZXNbc3R5bGVdOwogICAgfQogICAgcmVzdWx0W3RhZ10gPSBzdHlsZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7CiAgdmFyIHN0cmluZywgaGFuZGxlLCBsZW5ndGg7CiAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOwogIGlmIChjaGFyYWN0ZXIgPD0gMjU1KSB7CiAgICBoYW5kbGUgPSAieCI7CiAgICBsZW5ndGggPSAyOwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDY1NTM1KSB7CiAgICBoYW5kbGUgPSAidSI7CiAgICBsZW5ndGggPSA0OwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDQyOTQ5NjcyOTUpIHsKICAgIGhhbmRsZSA9ICJVIjsKICAgIGxlbmd0aCA9IDg7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTsKICB9CiAgcmV0dXJuICJcXCIgKyBoYW5kbGUgKyBjb21tb24ucmVwZWF0KCIwIiwgbGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7Cn0KdmFyIFFVT1RJTkdfVFlQRV9TSU5HTEUgPSAxOwp2YXIgUVVPVElOR19UWVBFX0RPVUJMRSA9IDI7CmZ1bmN0aW9uIFN0YXRlKG9wdGlvbnMpIHsKICB0aGlzLnNjaGVtYSA9IG9wdGlvbnNbInNjaGVtYSJdIHx8IF9kZWZhdWx0OwogIHRoaXMuaW5kZW50ID0gTWF0aC5tYXgoMSwgb3B0aW9uc1siaW5kZW50Il0gfHwgMik7CiAgdGhpcy5ub0FycmF5SW5kZW50ID0gb3B0aW9uc1sibm9BcnJheUluZGVudCJdIHx8IGZhbHNlOwogIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWyJza2lwSW52YWxpZCJdIHx8IGZhbHNlOwogIHRoaXMuZmxvd0xldmVsID0gY29tbW9uLmlzTm90aGluZyhvcHRpb25zWyJmbG93TGV2ZWwiXSkgPyAtMSA6IG9wdGlvbnNbImZsb3dMZXZlbCJdOwogIHRoaXMuc3R5bGVNYXAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbInN0eWxlcyJdIHx8IG51bGwpOwogIHRoaXMuc29ydEtleXMgPSBvcHRpb25zWyJzb3J0S2V5cyJdIHx8IGZhbHNlOwogIHRoaXMubGluZVdpZHRoID0gb3B0aW9uc1sibGluZVdpZHRoIl0gfHwgODA7CiAgdGhpcy5ub1JlZnMgPSBvcHRpb25zWyJub1JlZnMiXSB8fCBmYWxzZTsKICB0aGlzLm5vQ29tcGF0TW9kZSA9IG9wdGlvbnNbIm5vQ29tcGF0TW9kZSJdIHx8IGZhbHNlOwogIHRoaXMuY29uZGVuc2VGbG93ID0gb3B0aW9uc1siY29uZGVuc2VGbG93Il0gfHwgZmFsc2U7CiAgdGhpcy5xdW90aW5nVHlwZSA9IG9wdGlvbnNbInF1b3RpbmdUeXBlIl0gPT09ICciJyA/IFFVT1RJTkdfVFlQRV9ET1VCTEUgOiBRVU9USU5HX1RZUEVfU0lOR0xFOwogIHRoaXMuZm9yY2VRdW90ZXMgPSBvcHRpb25zWyJmb3JjZVF1b3RlcyJdIHx8IGZhbHNlOwogIHRoaXMucmVwbGFjZXIgPSB0eXBlb2Ygb3B0aW9uc1sicmVwbGFjZXIiXSA9PT0gImZ1bmN0aW9uIiA/IG9wdGlvbnNbInJlcGxhY2VyIl0gOiBudWxsOwogIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7CiAgdGhpcy5leHBsaWNpdFR5cGVzID0gdGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdDsKICB0aGlzLnRhZyA9IG51bGw7CiAgdGhpcy5yZXN1bHQgPSAiIjsKICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTsKICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDsKfQpmdW5jdGlvbiBpbmRlbnRTdHJpbmcoc3RyaW5nLCBzcGFjZXMpIHsKICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgiICIsIHNwYWNlcyksIHBvc2l0aW9uID0gMCwgbmV4dCA9IC0xLCByZXN1bHQgPSAiIiwgbGluZSwgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHsKICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZigiXG4iLCBwb3NpdGlvbik7CiAgICBpZiAobmV4dCA9PT0gLTEpIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7CiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoOwogICAgfSBlbHNlIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpOwogICAgICBwb3NpdGlvbiA9IG5leHQgKyAxOwogICAgfQogICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICJcbiIpIHJlc3VsdCArPSBpbmQ7CiAgICByZXN1bHQgKz0gbGluZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCkgewogIHJldHVybiAiXG4iICsgY29tbW9uLnJlcGVhdCgiICIsIHN0YXRlLmluZGVudCAqIGxldmVsKTsKfQpmdW5jdGlvbiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIHN0cjIpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwgdHlwZTI7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTsKICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0cjIpKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gYyA9PT0gQ0hBUl9TUEFDRSB8fCBjID09PSBDSEFSX1RBQjsKfQpmdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7CiAgcmV0dXJuIDMyIDw9IGMgJiYgYyA8PSAxMjYgfHwgMTYxIDw9IGMgJiYgYyA8PSA1NTI5NSAmJiBjICE9PSA4MjMyICYmIGMgIT09IDgyMzMgfHwgNTczNDQgPD0gYyAmJiBjIDw9IDY1NTMzICYmIGMgIT09IENIQVJfQk9NIHx8IDY1NTM2IDw9IGMgJiYgYyA8PSAxMTE0MTExOwp9CmZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT00gJiYgYyAhPT0gQ0hBUl9DQVJSSUFHRV9SRVRVUk4gJiYgYyAhPT0gQ0hBUl9MSU5FX0ZFRUQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmUoYywgcHJldiwgaW5ibG9jaykgewogIHZhciBjSXNOc0NoYXJPcldoaXRlc3BhY2UgPSBpc05zQ2hhck9yV2hpdGVzcGFjZShjKTsKICB2YXIgY0lzTnNDaGFyID0gY0lzTnNDaGFyT3JXaGl0ZXNwYWNlICYmICFpc1doaXRlc3BhY2UoYyk7CiAgcmV0dXJuICgKICAgIC8vIG5zLXBsYWluLXNhZmUKICAgIChpbmJsb2NrID8gKAogICAgICAvLyBjID0gZmxvdy1pbgogICAgICBjSXNOc0NoYXJPcldoaXRlc3BhY2UKICAgICkgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2UgJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQpICYmIGMgIT09IENIQVJfU0hBUlAgJiYgIShwcmV2ID09PSBDSEFSX0NPTE9OICYmICFjSXNOc0NoYXIpIHx8IGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHByZXYpICYmICFpc1doaXRlc3BhY2UocHJldikgJiYgYyA9PT0gQ0hBUl9TSEFSUCB8fCBwcmV2ID09PSBDSEFSX0NPTE9OICYmIGNJc05zQ2hhcgogICk7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChjKSB7CiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmIGMgIT09IENIQVJfQk9NICYmICFpc1doaXRlc3BhY2UoYykgJiYgYyAhPT0gQ0hBUl9NSU5VUyAmJiBjICE9PSBDSEFSX1FVRVNUSU9OICYmIGMgIT09IENIQVJfQ09MT04gJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9TSEFSUCAmJiBjICE9PSBDSEFSX0FNUEVSU0FORCAmJiBjICE9PSBDSEFSX0FTVEVSSVNLICYmIGMgIT09IENIQVJfRVhDTEFNQVRJT04gJiYgYyAhPT0gQ0hBUl9WRVJUSUNBTF9MSU5FICYmIGMgIT09IENIQVJfRVFVQUxTICYmIGMgIT09IENIQVJfR1JFQVRFUl9USEFOICYmIGMgIT09IENIQVJfU0lOR0xFX1FVT1RFICYmIGMgIT09IENIQVJfRE9VQkxFX1FVT1RFICYmIGMgIT09IENIQVJfUEVSQ0VOVCAmJiBjICE9PSBDSEFSX0NPTU1FUkNJQUxfQVQgJiYgYyAhPT0gQ0hBUl9HUkFWRV9BQ0NFTlQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KGMpIHsKICByZXR1cm4gIWlzV2hpdGVzcGFjZShjKSAmJiBjICE9PSBDSEFSX0NPTE9OOwp9CmZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgcG9zKSB7CiAgdmFyIGZpcnN0ID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zKSwgc2Vjb25kOwogIGlmIChmaXJzdCA+PSA1NTI5NiAmJiBmaXJzdCA8PSA1NjMxOSAmJiBwb3MgKyAxIDwgc3RyaW5nLmxlbmd0aCkgewogICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zICsgMSk7CiAgICBpZiAoc2Vjb25kID49IDU2MzIwICYmIHNlY29uZCA8PSA1NzM0MykgewogICAgICByZXR1cm4gKGZpcnN0IC0gNTUyOTYpICogMTAyNCArIHNlY29uZCAtIDU2MzIwICsgNjU1MzY7CiAgICB9CiAgfQogIHJldHVybiBmaXJzdDsKfQpmdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykgewogIHZhciBsZWFkaW5nU3BhY2VSZSA9IC9eXG4qIC87CiAgcmV0dXJuIGxlYWRpbmdTcGFjZVJlLnRlc3Qoc3RyaW5nKTsKfQp2YXIgU1RZTEVfUExBSU4gPSAxOwp2YXIgU1RZTEVfU0lOR0xFID0gMjsKdmFyIFNUWUxFX0xJVEVSQUwgPSAzOwp2YXIgU1RZTEVfRk9MREVEID0gNDsKdmFyIFNUWUxFX0RPVUJMRSA9IDU7CmZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHN0cmluZywgc2luZ2xlTGluZU9ubHksIGluZGVudFBlckxldmVsLCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VvdXNUeXBlLCBxdW90aW5nVHlwZSwgZm9yY2VRdW90ZXMsIGluYmxvY2spIHsKICB2YXIgaTsKICB2YXIgY2hhciA9IDA7CiAgdmFyIHByZXZDaGFyID0gbnVsbDsKICB2YXIgaGFzTGluZUJyZWFrID0gZmFsc2U7CiAgdmFyIGhhc0ZvbGRhYmxlTGluZSA9IGZhbHNlOwogIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTsKICB2YXIgcHJldmlvdXNMaW5lQnJlYWsgPSAtMTsKICB2YXIgcGxhaW4gPSBpc1BsYWluU2FmZUZpcnN0KGNvZGVQb2ludEF0KHN0cmluZywgMCkpICYmIGlzUGxhaW5TYWZlTGFzdChjb2RlUG9pbnRBdChzdHJpbmcsIHN0cmluZy5sZW5ndGggLSAxKSk7CiAgaWYgKHNpbmdsZUxpbmVPbmx5IHx8IGZvcmNlUXVvdGVzKSB7CiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgY2hhciA+PSA2NTUzNiA/IGkgKz0gMiA6IGkrKykgewogICAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkgewogICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7CiAgICAgIH0KICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7CiAgICAgIHByZXZDaGFyID0gY2hhcjsKICAgIH0KICB9IGVsc2UgewogICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGNoYXIgPj0gNjU1MzYgPyBpICs9IDIgOiBpKyspIHsKICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7CiAgICAgIGlmIChjaGFyID09PSBDSEFSX0xJTkVfRkVFRCkgewogICAgICAgIGhhc0xpbmVCcmVhayA9IHRydWU7CiAgICAgICAgaWYgKHNob3VsZFRyYWNrV2lkdGgpIHsKICAgICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC4KICAgICAgICAgIGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIjsKICAgICAgICAgIHByZXZpb3VzTGluZUJyZWFrID0gaTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7CiAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICAgICAgfQogICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZDaGFyLCBpbmJsb2NrKTsKICAgICAgcHJldkNoYXIgPSBjaGFyOwogICAgfQogICAgaGFzRm9sZGFibGVMaW5lID0gaGFzRm9sZGFibGVMaW5lIHx8IHNob3VsZFRyYWNrV2lkdGggJiYgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIik7CiAgfQogIGlmICghaGFzTGluZUJyZWFrICYmICFoYXNGb2xkYWJsZUxpbmUpIHsKICAgIGlmIChwbGFpbiAmJiAhZm9yY2VRdW90ZXMgJiYgIXRlc3RBbWJpZ3VvdXNUeXBlKHN0cmluZykpIHsKICAgICAgcmV0dXJuIFNUWUxFX1BMQUlOOwogICAgfQogICAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFOwogIH0KICBpZiAoaW5kZW50UGVyTGV2ZWwgPiA5ICYmIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSkgewogICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICB9CiAgaWYgKCFmb3JjZVF1b3RlcykgewogICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7CiAgfQogIHJldHVybiBxdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/IFNUWUxFX0RPVUJMRSA6IFNUWUxFX1NJTkdMRTsKfQpmdW5jdGlvbiB3cml0ZVNjYWxhcihzdGF0ZSwgc3RyaW5nLCBsZXZlbCwgaXNrZXksIGluYmxvY2spIHsKICBzdGF0ZS5kdW1wID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIiInIDogIicnIjsKICAgIH0KICAgIGlmICghc3RhdGUubm9Db21wYXRNb2RlKSB7CiAgICAgIGlmIChERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKHN0cmluZykgIT09IC0xIHx8IERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWC50ZXN0KHN0cmluZykpIHsKICAgICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIicgKyBzdHJpbmcgKyAnIicgOiAiJyIgKyBzdHJpbmcgKyAiJyI7CiAgICAgIH0KICAgIH0KICAgIHZhciBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBNYXRoLm1heCgxLCBsZXZlbCk7CiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMSA/IC0xIDogTWF0aC5tYXgoTWF0aC5taW4oc3RhdGUubGluZVdpZHRoLCA0MCksIHN0YXRlLmxpbmVXaWR0aCAtIGluZGVudCk7CiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleSB8fCBzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWw7CiAgICBmdW5jdGlvbiB0ZXN0QW1iaWd1aXR5KHN0cmluZzIpIHsKICAgICAgcmV0dXJuIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyaW5nMik7CiAgICB9CiAgICBzd2l0Y2ggKGNob29zZVNjYWxhclN0eWxlKAogICAgICBzdHJpbmcsCiAgICAgIHNpbmdsZUxpbmVPbmx5LAogICAgICBzdGF0ZS5pbmRlbnQsCiAgICAgIGxpbmVXaWR0aCwKICAgICAgdGVzdEFtYmlndWl0eSwKICAgICAgc3RhdGUucXVvdGluZ1R5cGUsCiAgICAgIHN0YXRlLmZvcmNlUXVvdGVzICYmICFpc2tleSwKICAgICAgaW5ibG9jawogICAgKSkgewogICAgICBjYXNlIFNUWUxFX1BMQUlOOgogICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgIGNhc2UgU1RZTEVfU0lOR0xFOgogICAgICAgIHJldHVybiAiJyIgKyBzdHJpbmcucmVwbGFjZSgvJy9nLCAiJyciKSArICInIjsKICAgICAgY2FzZSBTVFlMRV9MSVRFUkFMOgogICAgICAgIHJldHVybiAifCIgKyBibG9ja0hlYWRlcihzdHJpbmcsIHN0YXRlLmluZGVudCkgKyBkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoc3RyaW5nLCBpbmRlbnQpKTsKICAgICAgY2FzZSBTVFlMRV9GT0xERUQ6CiAgICAgICAgcmV0dXJuICI+IiArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KSArIGRyb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhmb2xkU3RyaW5nKHN0cmluZywgbGluZVdpZHRoKSwgaW5kZW50KSk7CiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOgogICAgICAgIHJldHVybiAnIicgKyBlc2NhcGVTdHJpbmcoc3RyaW5nKSArICciJzsKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpOwogICAgfQogIH0oKTsKfQpmdW5jdGlvbiBibG9ja0hlYWRlcihzdHJpbmcsIGluZGVudFBlckxldmVsKSB7CiAgdmFyIGluZGVudEluZGljYXRvciA9IG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSA/IFN0cmluZyhpbmRlbnRQZXJMZXZlbCkgOiAiIjsKICB2YXIgY2xpcCA9IHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAiXG4iIHx8IHN0cmluZyA9PT0gIlxuIik7CiAgdmFyIGNob21wID0ga2VlcCA/ICIrIiA6IGNsaXAgPyAiIiA6ICItIjsKICByZXR1cm4gaW5kZW50SW5kaWNhdG9yICsgY2hvbXAgKyAiXG4iOwp9CmZ1bmN0aW9uIGRyb3BFbmRpbmdOZXdsaW5lKHN0cmluZykgewogIHJldHVybiBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAiXG4iID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZzsKfQpmdW5jdGlvbiBmb2xkU3RyaW5nKHN0cmluZywgd2lkdGgpIHsKICB2YXIgbGluZVJlID0gLyhcbispKFteXG5dKikvZzsKICB2YXIgcmVzdWx0ID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbmV4dExGID0gc3RyaW5nLmluZGV4T2YoIlxuIik7CiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDsKICAgIGxpbmVSZS5sYXN0SW5kZXggPSBuZXh0TEY7CiAgICByZXR1cm4gZm9sZExpbmUoc3RyaW5nLnNsaWNlKDAsIG5leHRMRiksIHdpZHRoKTsKICB9KCk7CiAgdmFyIHByZXZNb3JlSW5kZW50ZWQgPSBzdHJpbmdbMF0gPT09ICJcbiIgfHwgc3RyaW5nWzBdID09PSAiICI7CiAgdmFyIG1vcmVJbmRlbnRlZDsKICB2YXIgbWF0Y2g7CiAgd2hpbGUgKG1hdGNoID0gbGluZVJlLmV4ZWMoc3RyaW5nKSkgewogICAgdmFyIHByZWZpeCA9IG1hdGNoWzFdLCBsaW5lID0gbWF0Y2hbMl07CiAgICBtb3JlSW5kZW50ZWQgPSBsaW5lWzBdID09PSAiICI7CiAgICByZXN1bHQgKz0gcHJlZml4ICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gIiIgPyAiXG4iIDogIiIpICsgZm9sZExpbmUobGluZSwgd2lkdGgpOwogICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkgewogIGlmIChsaW5lID09PSAiIiB8fCBsaW5lWzBdID09PSAiICIpIHJldHVybiBsaW5lOwogIHZhciBicmVha1JlID0gLyBbXiBdL2c7CiAgdmFyIG1hdGNoOwogIHZhciBzdGFydCA9IDAsIGVuZCwgY3VyciA9IDAsIG5leHQgPSAwOwogIHZhciByZXN1bHQgPSAiIjsKICB3aGlsZSAobWF0Y2ggPSBicmVha1JlLmV4ZWMobGluZSkpIHsKICAgIG5leHQgPSBtYXRjaC5pbmRleDsKICAgIGlmIChuZXh0IC0gc3RhcnQgPiB3aWR0aCkgewogICAgICBlbmQgPSBjdXJyID4gc3RhcnQgPyBjdXJyIDogbmV4dDsKICAgICAgcmVzdWx0ICs9ICJcbiIgKyBsaW5lLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICBzdGFydCA9IGVuZCArIDE7CiAgICB9CiAgICBjdXJyID0gbmV4dDsKICB9CiAgcmVzdWx0ICs9ICJcbiI7CiAgaWYgKGxpbmUubGVuZ3RoIC0gc3RhcnQgPiB3aWR0aCAmJiBjdXJyID4gc3RhcnQpIHsKICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICJcbiIgKyBsaW5lLnNsaWNlKGN1cnIgKyAxKTsKICB9IGVsc2UgewogICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpOwogIH0KICByZXR1cm4gcmVzdWx0LnNsaWNlKDEpOwp9CmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHsKICB2YXIgcmVzdWx0ID0gIiI7CiAgdmFyIGNoYXIgPSAwOwogIHZhciBlc2NhcGVTZXE7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7CiAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcl07CiAgICBpZiAoIWVzY2FwZVNlcSAmJiBpc1ByaW50YWJsZShjaGFyKSkgewogICAgICByZXN1bHQgKz0gc3RyaW5nW2ldOwogICAgICBpZiAoY2hhciA+PSA2NTUzNikgcmVzdWx0ICs9IHN0cmluZ1tpICsgMV07CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgKz0gZXNjYXBlU2VxIHx8IGVuY29kZUhleChjaGFyKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCkgewogIHZhciBfcmVzdWx0ID0gIiIsIF90YWcgPSBzdGF0ZS50YWcsIGluZGV4LCBsZW5ndGgsIHZhbHVlOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdmFsdWUgPSBvYmplY3RbaW5kZXhdOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIFN0cmluZyhpbmRleCksIHZhbHVlKTsKICAgIH0KICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICJ1bmRlZmluZWQiICYmIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG51bGwsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgaWYgKF9yZXN1bHQgIT09ICIiKSBfcmVzdWx0ICs9ICIsIiArICghc3RhdGUuY29uZGVuc2VGbG93ID8gIiAiIDogIiIpOwogICAgICBfcmVzdWx0ICs9IHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJbIiArIF9yZXN1bHQgKyAiXSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7CiAgdmFyIF9yZXN1bHQgPSAiIiwgX3RhZyA9IHN0YXRlLnRhZywgaW5kZXgsIGxlbmd0aCwgdmFsdWU7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICB2YWx1ZSA9IG9iamVjdFtpbmRleF07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpOwogICAgfQogICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCIgJiYgd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG51bGwsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSkgewogICAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTsKICAgICAgfQogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSAiOwogICAgICB9CiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDsKICAgIH0KICB9CiAgc3RhdGUudGFnID0gX3RhZzsKICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAiW10iOwp9CmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgcGFpckJ1ZmZlcjsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoX3Jlc3VsdCAhPT0gIiIpIHBhaXJCdWZmZXIgKz0gIiwgIjsKICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJyInOwogICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07CiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RLZXksIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSBwYWlyQnVmZmVyICs9ICI/ICI7CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXAgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJyInIDogIiIpICsgIjoiICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICIiIDogIiAiKTsKICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJ7IiArIF9yZXN1bHQgKyAifSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgZXhwbGljaXRQYWlyLCBwYWlyQnVmZmVyOwogIGlmIChzdGF0ZS5zb3J0S2V5cyA9PT0gdHJ1ZSkgewogICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7CiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICJmdW5jdGlvbiIpIHsKICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7CiAgfSBlbHNlIGlmIChzdGF0ZS5zb3J0S2V5cykgewogICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpOwogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7CiAgICB9CiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTsKICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgb2JqZWN0VmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSk7CiAgICB9CiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgZXhwbGljaXRQYWlyID0gc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gIj8iIHx8IHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0OwogICAgaWYgKGV4cGxpY2l0UGFpcikgewogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyAiOwogICAgICB9CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBpZiAoZXhwbGljaXRQYWlyKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gIjoiOwogICAgfSBlbHNlIHsKICAgICAgcGFpckJ1ZmZlciArPSAiOiAiOwogICAgfQogICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wOwogICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyOwogIH0KICBzdGF0ZS50YWcgPSBfdGFnOwogIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICJ7fSI7Cn0KZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkgewogIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZTIsIHN0eWxlOwogIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlczsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdHlwZUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSB0eXBlTGlzdFtpbmRleF07CiAgICBpZiAoKHR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZTIucHJlZGljYXRlKSAmJiAoIXR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgJiYgb2JqZWN0IGluc3RhbmNlb2YgdHlwZTIuaW5zdGFuY2VPZikgJiYgKCF0eXBlMi5wcmVkaWNhdGUgfHwgdHlwZTIucHJlZGljYXRlKG9iamVjdCkpKSB7CiAgICAgIGlmIChleHBsaWNpdCkgewogICAgICAgIGlmICh0eXBlMi5tdWx0aSAmJiB0eXBlMi5yZXByZXNlbnROYW1lKSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi5yZXByZXNlbnROYW1lKG9iamVjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUyLnRhZzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICB9CiAgICAgIGlmICh0eXBlMi5yZXByZXNlbnQpIHsKICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUyLnRhZ10gfHwgdHlwZTIuZGVmYXVsdFN0eWxlOwogICAgICAgIGlmIChfdG9TdHJpbmcuY2FsbCh0eXBlMi5yZXByZXNlbnQpID09PSAiW29iamVjdCBGdW5jdGlvbl0iKSB7CiAgICAgICAgICBfcmVzdWx0ID0gdHlwZTIucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIucmVwcmVzZW50LCBzdHlsZSkpIHsKICAgICAgICAgIF9yZXN1bHQgPSB0eXBlMi5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCIhPCIgKyB0eXBlMi50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicgKyBzdHlsZSArICciIHN0eWxlJyk7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0OwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXksIGlzYmxvY2tzZXEpIHsKICBzdGF0ZS50YWcgPSBudWxsOwogIHN0YXRlLmR1bXAgPSBvYmplY3Q7CiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkgewogICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTsKICB9CiAgdmFyIHR5cGUyID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7CiAgdmFyIGluYmxvY2sgPSBibG9jazsKICB2YXIgdGFnU3RyOwogIGlmIChibG9jaykgewogICAgYmxvY2sgPSBzdGF0ZS5mbG93TGV2ZWwgPCAwIHx8IHN0YXRlLmZsb3dMZXZlbCA+IGxldmVsOwogIH0KICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUyID09PSAiW29iamVjdCBPYmplY3RdIiB8fCB0eXBlMiA9PT0gIltvYmplY3QgQXJyYXldIiwgZHVwbGljYXRlSW5kZXgsIGR1cGxpY2F0ZTsKICBpZiAob2JqZWN0T3JBcnJheSkgewogICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTsKICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTsKICB9CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCAmJiBzdGF0ZS50YWcgIT09ICI/IiB8fCBkdXBsaWNhdGUgfHwgc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkgewogICAgY29tcGFjdCA9IGZhbHNlOwogIH0KICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkgewogICAgc3RhdGUuZHVtcCA9ICIqcmVmXyIgKyBkdXBsaWNhdGVJbmRleDsKICB9IGVsc2UgewogICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHsKICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdID0gdHJ1ZTsKICAgIH0KICAgIGlmICh0eXBlMiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIE9iamVjdC5rZXlzKHN0YXRlLmR1bXApLmxlbmd0aCAhPT0gMCkgewogICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgaWYgKGR1cGxpY2F0ZSkgewogICAgICAgICAgc3RhdGUuZHVtcCA9ICImcmVmXyIgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IEFycmF5XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgaWYgKHN0YXRlLm5vQXJyYXlJbmRlbnQgJiYgIWlzYmxvY2tzZXEgJiYgbGV2ZWwgPiAwKSB7CiAgICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsIC0gMSwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHdyaXRlQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpOwogICAgICAgIH0KICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IFN0cmluZ10iKSB7CiAgICAgIGlmIChzdGF0ZS50YWcgIT09ICI/IikgewogICAgICAgIHdyaXRlU2NhbGFyKHN0YXRlLCBzdGF0ZS5kdW1wLCBsZXZlbCwgaXNrZXksIGluYmxvY2spOwogICAgICB9CiAgICB9IGVsc2UgaWYgKHR5cGUyID09PSAiW29iamVjdCBVbmRlZmluZWRdIikgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIiArIHR5cGUyKTsKICAgIH0KICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAiPyIpIHsKICAgICAgdGFnU3RyID0gZW5jb2RlVVJJKAogICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gIiEiID8gc3RhdGUudGFnLnNsaWNlKDEpIDogc3RhdGUudGFnCiAgICAgICkucmVwbGFjZSgvIS9nLCAiJTIxIik7CiAgICAgIGlmIChzdGF0ZS50YWdbMF0gPT09ICIhIikgewogICAgICAgIHRhZ1N0ciA9ICIhIiArIHRhZ1N0cjsKICAgICAgfSBlbHNlIGlmICh0YWdTdHIuc2xpY2UoMCwgMTgpID09PSAidGFnOnlhbWwub3JnLDIwMDI6IikgewogICAgICAgIHRhZ1N0ciA9ICIhISIgKyB0YWdTdHIuc2xpY2UoMTgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRhZ1N0ciA9ICIhPCIgKyB0YWdTdHIgKyAiPiI7CiAgICAgIH0KICAgICAgc3RhdGUuZHVtcCA9IHRhZ1N0ciArICIgIiArIHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGdldER1cGxpY2F0ZVJlZmVyZW5jZXMob2JqZWN0LCBzdGF0ZSkgewogIHZhciBvYmplY3RzID0gW10sIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sIGluZGV4LCBsZW5ndGg7CiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pOwogIH0KICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpOwp9CmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHsKICB2YXIgb2JqZWN0S2V5TGlzdCwgaW5kZXgsIGxlbmd0aDsKICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiKSB7CiAgICBpbmRleCA9IG9iamVjdHMuaW5kZXhPZihvYmplY3QpOwogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICBpZiAoZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkgPT09IC0xKSB7CiAgICAgICAgZHVwbGljYXRlc0luZGV4ZXMucHVzaChpbmRleCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG9iamVjdHMucHVzaChvYmplY3QpOwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7CiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtvYmplY3RLZXlMaXN0W2luZGV4XV0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gZHVtcCQxKGlucHV0LCBvcHRpb25zKSB7CiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKG9wdGlvbnMpOwogIGlmICghc3RhdGUubm9SZWZzKSBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7CiAgdmFyIHZhbHVlID0gaW5wdXQ7CiAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwoeyAiIjogdmFsdWUgfSwgIiIsIHZhbHVlKTsKICB9CiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgdmFsdWUsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICJcbiI7CiAgcmV0dXJuICIiOwp9CnZhciBkdW1wXzEgPSBkdW1wJDE7CnZhciBkdW1wZXIgPSB7CiAgZHVtcDogZHVtcF8xCn07CmZ1bmN0aW9uIHJlbmFtZWQoZnJvbSwgdG8pIHsKICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uIHlhbWwuIiArIGZyb20gKyAiIGlzIHJlbW92ZWQgaW4ganMteWFtbCA0LiBVc2UgeWFtbC4iICsgdG8gKyAiIGluc3RlYWQsIHdoaWNoIGlzIG5vdyBzYWZlIGJ5IGRlZmF1bHQuIik7CiAgfTsKfQp2YXIgbG9hZCA9IGxvYWRlci5sb2FkOwp2YXIgbG9hZEFsbCA9IGxvYWRlci5sb2FkQWxsOwp2YXIgZHVtcCA9IGR1bXBlci5kdW1wOwp2YXIgc2FmZUxvYWQgPSByZW5hbWVkKCJzYWZlTG9hZCIsICJsb2FkIik7CnZhciBzYWZlTG9hZEFsbCA9IHJlbmFtZWQoInNhZmVMb2FkQWxsIiwgImxvYWRBbGwiKTsKdmFyIHNhZmVEdW1wID0gcmVuYW1lZCgic2FmZUR1bXAiLCAiZHVtcCIpOwoKLy8gc3JjL3NjaGVtYXRpYy9wcm9qZWN0L3Byb2plY3QuZmFjdG9yeS50cwp2YXIgR0lUSUdOT1JFX1BBVEggPSAiLmdpdGlnbm9yZSI7CnZhciBjYXB0dXJlR2l0SWdub3JlQ29udGVudFJ1bGUgPSAoc3RhdGUpID0+IChob3N0KSA9PiB7CiAgY29uc3QgZ2l0SWdub3JlQnVmZmVyID0gaG9zdC5yZWFkKEdJVElHTk9SRV9QQVRIKTsKICBpZiAoIWdpdElnbm9yZUJ1ZmZlcikgewogICAgcmV0dXJuIGhvc3Q7CiAgfQogIHN0YXRlLmNvbnRlbnQgPSBnaXRJZ25vcmVCdWZmZXIudG9TdHJpbmcoInV0Zi04Iik7CiAgcmV0dXJuIGhvc3Q7Cn07CnZhciBtZXJnZUdpdElnbm9yZUNvbnRlbnRSdWxlID0gKHN0YXRlKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmIChzdGF0ZS5jb250ZW50ID09PSB2b2lkIDApIHsKICAgIHJldHVybiBob3N0OwogIH0KICBjb25zdCBnaXRJZ25vcmVCdWZmZXIgPSBob3N0LnJlYWQoR0lUSUdOT1JFX1BBVEgpOwogIGlmICghZ2l0SWdub3JlQnVmZmVyKSB7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgY29uc3QgdGVtcGxhdGVDb250ZW50ID0gZ2l0SWdub3JlQnVmZmVyLnRvU3RyaW5nKCJ1dGYtOCIpOwogIGNvbnN0IG1lcmdlZENvbnRlbnQgPSBtZXJnZUdpdElnbm9yZUNvbnRlbnQoewogICAgZXhpc3RpbmdDb250ZW50OiBzdGF0ZS5jb250ZW50LAogICAgdGVtcGxhdGVDb250ZW50CiAgfSk7CiAgaWYgKG1lcmdlZENvbnRlbnQgIT09IHRlbXBsYXRlQ29udGVudCkgewogICAgY29udGV4dC5sb2dnZXIuaW5mbygiTWVyZ2luZyB0ZW1wbGF0ZSAuZ2l0aWdub3JlIHdpdGggcHJvamVjdC1zcGVjaWZpYyBlbnRyaWVzIik7CiAgICBob3N0Lm92ZXJ3cml0ZShHSVRJR05PUkVfUEFUSCwgbWVyZ2VkQ29udGVudCk7CiAgfQogIHJldHVybiBob3N0Owp9Owp2YXIgbWFpbiA9IChvcHRpb25zKSA9PiB7CiAgY29uc3Qgc3RhdGUgPSB7fTsKICByZXR1cm4gKDAsIGltcG9ydF9zY2hlbWF0aWNzMTAuY2hhaW4pKFsKICAgIGNhcHR1cmVHaXRJZ25vcmVDb250ZW50UnVsZShzdGF0ZSksCiAgICB1cGRhdGVUc0NvbmZpZ1J1bGUsCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MxMS5tZXJnZVdpdGgpKGdlbmVyYXRlQ29tbW9uU291cmNlKG9wdGlvbnMpLCBpbXBvcnRfc2NoZW1hdGljczkuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGUpLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzMTEubWVyZ2VXaXRoKShnZW5lcmF0ZVByb2plY3RTcGVjaWZpY1NvdXJjZShvcHRpb25zKSwgaW1wb3J0X3NjaGVtYXRpY3M5Lk1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlKSwKICAgIG1lcmdlR2l0SWdub3JlQ29udGVudFJ1bGUoc3RhdGUpCiAgXSk7Cn07Ci8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZToKMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7CiAgbWFpbgp9KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3V0aWxzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS91dGlsaXR5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3BvaW50ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2V4Y2VwdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGl0ZXJhbHMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3N0cmluZ3MuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL29iamVjdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3BhcnRpYWxseS1vcmRlcmVkLXNldC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xhbmcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbnVsbC1sb2dnZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci90cmFuc2Zvcm0tbG9nZ2VyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9wYXRoLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvbWVtb3J5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc3luYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZXNvbHZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVjb3JkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vcmVhZGVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi93cml0ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW50cnkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvcmVjb3JkZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc2NvcGVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2hvc3QtdHJlZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9zdGF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbnVsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL3NjaGVtYXRpYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvY2xpLWxvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3Npbmsvc2luay5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvbW92ZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9zY2hlbWF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy91cmwuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCmpzLXlhbWwvZGlzdC9qcy15YW1sLm1qczoKICAoKiEganMteWFtbCA0LjEuMCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWNhL2pzLXlhbWwgQGxpY2Vuc2UgTUlUICopCiovCg==",cis=async e=>{let t=Buffer.from(dAl,"base64").toString("utf-8");await(await import("fs/promises")).writeFile(e,t)};var lis=async e=>{let{writeFiles:t}=await import("@atls/code-runtime");await t(e);let r=pYr.ppath.join(e,"project");await pAl(r,{recursive:!0}),await cis(pYr.ppath.join(r,"project.factory.cjs")),console.info("All Schematic files writed to the tmp!")};var B_e=Nt(no(),1),kkt=Nt(no(),1),uis=async e=>{let t=process.cwd();await kkt.xfs.copyFilePromise(B_e.ppath.join(t,".pnp.cjs"),B_e.ppath.join(e,".pnp.cjs")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"package.json"),B_e.ppath.join(e,"package.json")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"runtime"),B_e.ppath.join(e,"runtime"))};var dis=async e=>async r=>{try{let n=await Ais.xfs.mktempPromise(),a=gis.ppath.join(n,"collection.json");await lis(n),await uis(n),await ais("project",e,a)}catch(n){console.error(n)}};var xkt=class extends pis.BaseCommand{static paths=[["generate","project"]];type=Su.String("-t,--type","project");async execute(){let t=await fis.Configuration.find(this.context.cwd,this.context.plugins),r=["libraries","project"];if(!r.includes(this.type))throw new Error(`Allowed only ${r.join(", ")} types`);let n={type:this.type,cwd:process.cwd()},a=aji(this,t),o=await dis(n);return(await Iis.StreamReport.start(a,o)).exitCode()}};var his={commands:[xkt]};var uWl=Nt(Jls()),gWl=Nt($ls()),AWl=Nt(cus()),dWl=Nt(dus()),pWl=Nt(TGr()),fWl=Nt(Axt()),IWl=Nt(mus()),hWl=Nt(vus()),mWl=Nt(cgs()),CWl=Nt(fgs()),_Wl=Nt(Sgs()),yWl=Nt(Lgs()),bWl=Nt(nDe()),EWl=Nt(Hgs()),SWl=Nt(jgs()),vWl=Nt(rAs()),BWl=Nt(dAs()),wWl=Nt(Wds()),TWl=Nt(sJ()),RWl=Nt(p1s()),NWl=Nt($he()),DWl=Nt(Q1s()),kWl=Nt(mGe()),xWl=Nt(z1s()),GWl=Nt(s2s()),o2s=()=>({modules:new Map([["@yarnpkg/cli",nWl],["@yarnpkg/core",iWl],["@yarnpkg/fslib",sWl],["@yarnpkg/libzip",oWl],["@yarnpkg/parsers",aWl],["@yarnpkg/shell",cWl],["clipanion",rg],["semver",lWl],["typanion",mZ],["@atls/yarn-plugin-badges",opr],["@atls/yarn-plugin-changelog",Ufr],["@atls/yarn-plugin-check",Kfr],["@atls/yarn-plugin-checks",r1r],["@atls/yarn-plugin-cli-publish",i1r],["@atls/yarn-plugin-commit",TBr],["@atls/yarn-plugin-essentials",NBr],["@atls/yarn-plugin-export",nTr],["@atls/yarn-plugin-files",SEr],["@atls/yarn-plugin-format",kkr],["@atls/yarn-plugin-image",Jkr],["@atls/yarn-plugin-library",rxr],["@atls/yarn-plugin-lint",lxr],["@atls/yarn-plugin-release",MGr],["@atls/yarn-plugin-renderer",MFr],["@atls/yarn-plugin-service",hVr],["@atls/yarn-plugin-test",vVr],["@atls/yarn-plugin-tools",GVr],["@atls/yarn-plugin-typescript",PVr],["@atls/yarn-plugin-workspaces",FEr],["@atls/yarn-plugin-ui",rPr],["@atls/yarn-plugin-schematics",fYr],["@yarnpkg/plugin-interactive-tools",uWl],["@yarnpkg/plugin-jsr",gWl],["@yarnpkg/plugin-workspace-tools",AWl],["@yarnpkg/plugin-typescript",dWl],["@yarnpkg/plugin-version",pWl],["@yarnpkg/plugin-essentials",fWl],["@yarnpkg/plugin-catalog",IWl],["@yarnpkg/plugin-compat",hWl],["@yarnpkg/plugin-constraints",mWl],["@yarnpkg/plugin-dlx",CWl],["@yarnpkg/plugin-exec",_Wl],["@yarnpkg/plugin-file",yWl],["@yarnpkg/plugin-git",bWl],["@yarnpkg/plugin-github",EWl],["@yarnpkg/plugin-http",SWl],["@yarnpkg/plugin-init",vWl],["@yarnpkg/plugin-link",BWl],["@yarnpkg/plugin-nm",wWl],["@yarnpkg/plugin-npm",TWl],["@yarnpkg/plugin-npm-cli",RWl],["@yarnpkg/plugin-pack",NWl],["@yarnpkg/plugin-patch",DWl],["@yarnpkg/plugin-pnp",kWl],["@yarnpkg/plugin-pnpm",xWl],["@yarnpkg/plugin-stage",GWl]]),plugins:new Set(["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"])});var a2s={name:"@atls/yarn-cli",version:"1.2.16-atls",private:!0,license:"BSD-3-Clause",type:"module",exports:{"./package.json":"./package.json",".":"./src/index.ts"},main:"src/index.ts",files:["dist"],scripts:{build:"yarn run build:schemaic && yarn run build:clean && yarn run build:version && yarn run build:bundle && yarn run build:fix && yarn run build:dist && yarn run build:version","build:bundle":"builder build bundle --no-git-hash && mv bundles/yarn.js bundles/yarn.mjs","build:clean":"rm -rf dist","build:dist":"mv bundles dist","build:fix":"yarn node patches/cli.patch.mjs","build:schemaic":"yarn workspace @atls/code-schematics prepack","build:version":"yarn node patches/version-postfix-toggle.mjs",fix:"yarn run build:fix",prepack:"yarn run build",postpack:"rm -rf dist"},dependencies:{"@atls/yarn-cli-tools":"workspace:*","@atls/yarn-plugin-badges":"workspace:*","@atls/yarn-plugin-changelog":"workspace:*","@atls/yarn-plugin-check":"workspace:*","@atls/yarn-plugin-checks":"workspace:*","@atls/yarn-plugin-cli-publish":"workspace:*","@atls/yarn-plugin-commit":"workspace:*","@atls/yarn-plugin-essentials":"workspace:*","@atls/yarn-plugin-export":"workspace:*","@atls/yarn-plugin-files":"workspace:*","@atls/yarn-plugin-format":"workspace:*","@atls/yarn-plugin-image":"workspace:*","@atls/yarn-plugin-library":"workspace:*","@atls/yarn-plugin-lint":"workspace:*","@atls/yarn-plugin-release":"workspace:*","@atls/yarn-plugin-renderer":"workspace:*","@atls/yarn-plugin-schematics":"workspace:*","@atls/yarn-plugin-service":"workspace:*","@atls/yarn-plugin-test":"workspace:*","@atls/yarn-plugin-tools":"workspace:*","@atls/yarn-plugin-typescript":"workspace:*","@atls/yarn-plugin-ui":"workspace:*","@atls/yarn-plugin-workspaces":"workspace:*","@yarnpkg/builder":"4.2.0","@yarnpkg/cli":"4.14.1","@yarnpkg/core":"4.7.0","@yarnpkg/fslib":"3.1.5","@yarnpkg/libzip":"3.2.2","@yarnpkg/parsers":"3.0.3","@yarnpkg/plugin-catalog":"1.0.2","@yarnpkg/plugin-compat":"4.0.12","@yarnpkg/plugin-constraints":"4.0.5","@yarnpkg/plugin-dlx":"4.0.2","@yarnpkg/plugin-essentials":"4.5.0","@yarnpkg/plugin-exec":"3.1.0","@yarnpkg/plugin-file":"3.0.2","@yarnpkg/plugin-git":"3.2.0","@yarnpkg/plugin-github":"3.0.2","@yarnpkg/plugin-http":"3.0.3","@yarnpkg/plugin-init":"4.1.2","@yarnpkg/plugin-interactive-tools":"4.1.0","@yarnpkg/plugin-jsr":"1.1.1","@yarnpkg/plugin-link":"3.0.2","@yarnpkg/plugin-nm":"4.0.8","@yarnpkg/plugin-npm":"3.5.0","@yarnpkg/plugin-npm-cli":"4.4.1","@yarnpkg/plugin-pack":"4.0.4","@yarnpkg/plugin-patch":"4.0.3","@yarnpkg/plugin-pnp":"4.1.5","@yarnpkg/plugin-pnpm":"2.1.2","@yarnpkg/plugin-stage":"4.0.2","@yarnpkg/plugin-typescript":"4.1.3","@yarnpkg/plugin-version":"4.2.0","@yarnpkg/plugin-workspace-tools":"4.1.7","@yarnpkg/shell":"4.1.3",clipanion:"4.0.0-rc.2",semver:"7.6.3",typanion:"3.14.0"},publishConfig:{access:"public",exports:{"./package.json":"./package.json",".":{import:"./dist/index.js",types:"./dist/index.d.ts",default:"./dist/index.js"}},main:"dist/index.js",types:"dist/index.d.ts"},"@yarnpkg/builder":{bundles:{standard:["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"]}}};var c2s=Yqr.npath.toPortablePath(Yqr.npath.resolve(process.argv[1])),Mqr=o2s(a2s["@yarnpkg/builder"].bundles.standard);Mqr.then?Mqr.then(async e=>{(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:e})}):(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:Mqr}); +${A.stack}`):console.debug(`Error: ${A instanceof Error?A.message:A}`),1}};var pYr=Nt(no(),1);import{mkdir as fAl}from"node:fs/promises";var pAl="dmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTsKdmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKdmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwp2YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczsKdmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKdmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHsKICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0czsKfTsKdmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7CiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpCiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwp9Owp2YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4gewogIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSAib2JqZWN0IiB8fCB0eXBlb2YgZnJvbSA9PT0gImZ1bmN0aW9uIikgewogICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKQogICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KQogICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTsKICB9CiAgcmV0dXJuIHRvOwp9Owp2YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKAogIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU00KICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLQogIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuICJfX2VzTW9kdWxlIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXQKICAvLyAiZGVmYXVsdCIgdG8gdGhlIENvbW1vbkpTICJtb2R1bGUuZXhwb3J0cyIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS4KICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgImRlZmF1bHQiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsCiAgbW9kCikpOwp2YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNKc29uT2JqZWN0ID0gaXNKc29uT2JqZWN0OwogICAgZXhwb3J0czIuaXNKc29uQXJyYXkgPSBpc0pzb25BcnJheTsKICAgIGZ1bmN0aW9uIGlzSnNvbk9iamVjdCh2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSnNvbkFycmF5KHZhbHVlKSB7CiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3V0aWxpdHkuanMKdmFyIHJlcXVpcmVfdXRpbGl0eSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdXRpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0VHlwZXNPZlNjaGVtYSA9IGdldFR5cGVzT2ZTY2hlbWE7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciBhbGxUeXBlcyA9IFsic3RyaW5nIiwgImludGVnZXIiLCAibnVtYmVyIiwgIm9iamVjdCIsICJhcnJheSIsICJib29sZWFuIiwgIm51bGwiXTsKICAgIGZ1bmN0aW9uIGdldFR5cGVzT2ZTY2hlbWEoc2NoZW1hMikgewogICAgICBpZiAoIXNjaGVtYTIpIHsKICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBuZXcgU2V0KGFsbFR5cGVzKTsKICAgICAgfQogICAgICBsZXQgcG90ZW50aWFsczsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnR5cGUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtzY2hlbWEyLnR5cGVdKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIudHlwZSkpIHsKICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChzY2hlbWEyLnR5cGUpOwogICAgICB9IGVsc2UgaWYgKCgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShzY2hlbWEyLmVudW0pKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCB2IG9mIHNjaGVtYTIuZW51bSkgewogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdikgewogICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBwb3RlbnRpYWxzLmFkZCh0eXBlb2Ygdik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsKICAgICAgICAgICAgICAgIHBvdGVudGlhbHMuYWRkKCJhcnJheSIpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodiA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm51bGwiKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm9iamVjdCIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoYWxsVHlwZXMpOwogICAgICB9CiAgICAgIGlmICgoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIubm90KSkgewogICAgICAgIGNvbnN0IG5vdFR5cGVzID0gZ2V0VHlwZXNPZlNjaGVtYShzY2hlbWEyLm5vdCk7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoWy4uLnBvdGVudGlhbHNdLmZpbHRlcigocCkgPT4gIW5vdFR5cGVzLmhhcyhwKSkpOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIuYWxsT2YpKSB7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbGxPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChbLi4udHlwZXNdLmZpbHRlcigodCkgPT4gcG90ZW50aWFscy5oYXModCkpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5vbmVPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5vbmVPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5hbnlPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbnlPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIucHJvcGVydGllcykgewogICAgICAgIHBvdGVudGlhbHMuYWRkKCJvYmplY3QiKTsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zKSB7CiAgICAgICAgcG90ZW50aWFscy5hZGQoImFycmF5Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvdGVudGlhbHM7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzCnZhciByZXF1aXJlX3RyYW5zZm9ybXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3RyYW5zZm9ybXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFkZFVuZGVmaW5lZERlZmF1bHRzID0gYWRkVW5kZWZpbmVkRGVmYXVsdHM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciB1dGlsaXR5XzEgPSByZXF1aXJlX3V0aWxpdHkoKTsKICAgIGZ1bmN0aW9uIGFkZFVuZGVmaW5lZERlZmF1bHRzKHZhbHVlLCBfcG9pbnRlciwgc2NoZW1hMikgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIiB8fCBzY2hlbWEyID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgdmFsdWUgPz89IHNjaGVtYTIuZGVmYXVsdDsKICAgICAgY29uc3QgdHlwZXMgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHNjaGVtYTIpOwogICAgICBpZiAodHlwZXMuc2l6ZSA9PT0gMCkgewogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBsZXQgdHlwZTI7CiAgICAgIGlmICh0eXBlcy5zaXplID09PSAxKSB7CiAgICAgICAgdHlwZTIgPSBBcnJheS5mcm9tKHR5cGVzKVswXTsKICAgICAgfSBlbHNlIGlmICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygiYXJyYXkiKSAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAiYXJyYXkiOwogICAgICB9IGVsc2UgaWYgKHNjaGVtYTIucHJvcGVydGllcyAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAib2JqZWN0IjsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zICYmIHR5cGVzLmhhcygiYXJyYXkiKSkgewogICAgICAgIHR5cGUyID0gImFycmF5IjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlID09IHZvaWQgMCA/IFtdIDogdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAib2JqZWN0IikgewogICAgICAgIGxldCBuZXdWYWx1ZTsKICAgICAgICBpZiAodmFsdWUgPT0gdm9pZCAwKSB7CiAgICAgICAgICBuZXdWYWx1ZSA9IHt9OwogICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIucHJvcGVydGllcykpIHsKICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIHNjaGVtYU9iamVjdF0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hMi5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgaWYgKHByb3BOYW1lID09PSAiJHNjaGVtYSIgfHwgISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkoc2NoZW1hT2JqZWN0KSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IG5ld1ZhbHVlW3Byb3BOYW1lXTsKICAgICAgICAgIGlmICh2YWx1ZTIgPT09IHZvaWQgMCkgewogICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBzY2hlbWFPYmplY3QuZGVmYXVsdDsKICAgICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5U2NoZW1hcyA9IHNjaGVtYU9iamVjdC5vbmVPZiB8fCBzY2hlbWFPYmplY3QuYW55T2Y7CiAgICAgICAgICAgIGNvbnN0IGFsbFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh2YWx1ZTIpOwogICAgICAgICAgICBjb25zdCBhZGp1c3RlZFNjaGVtYSA9ICgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShwcm9wZXJ0eVNjaGVtYXMpICYmIHByb3BlcnR5U2NoZW1hcy5maW5kKChzKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNvbnN0IHNjaGVtYVR5cGUgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHMpOwogICAgICAgICAgICAgIGlmIChzY2hlbWFUeXBlLnNpemUgPT09IDEgJiYgc2NoZW1hVHlwZS5oYXMoIm9iamVjdCIpICYmICgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkocy5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHMucHJvcGVydGllcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gYWxsUHJvcGVydGllcy5ldmVyeSgoa2V5KSA9PiBwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoYWRqdXN0ZWRTY2hlbWEgJiYgKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KShhZGp1c3RlZFNjaGVtYSkpIHsKICAgICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBhZGRVbmRlZmluZWREZWZhdWx0cyh2YWx1ZTIsIF9wb2ludGVyLCBhZGp1c3RlZFNjaGVtYSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOwogICAgICB9CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvcG9pbnRlci5qcwp2YXIgcmVxdWlyZV9wb2ludGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9wb2ludGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWlsZEpzb25Qb2ludGVyID0gYnVpbGRKc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLmpvaW5Kc29uUG9pbnRlciA9IGpvaW5Kc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLnBhcnNlSnNvblBvaW50ZXIgPSBwYXJzZUpzb25Qb2ludGVyOwogICAgZnVuY3Rpb24gYnVpbGRKc29uUG9pbnRlcihmcmFnbWVudHMpIHsKICAgICAgcmV0dXJuICIvIiArIGZyYWdtZW50cy5tYXAoKGYpID0+IHsKICAgICAgICByZXR1cm4gZi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgICB9KS5qb2luKCIvIik7CiAgICB9CiAgICBmdW5jdGlvbiBqb2luSnNvblBvaW50ZXIocm9vdCwgLi4ub3RoZXJzKSB7CiAgICAgIGlmIChyb290ID09ICIvIikgewogICAgICAgIHJldHVybiBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJvb3QgKyBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICB9CiAgICBmdW5jdGlvbiBwYXJzZUpzb25Qb2ludGVyKHBvaW50ZXIpIHsKICAgICAgaWYgKHBvaW50ZXIgPT09ICIiKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICAgIGlmIChwb2ludGVyLmNoYXJBdCgwKSAhPT0gIi8iKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwb2ludGVyOiAiICsgcG9pbnRlcik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvaW50ZXIuc3Vic3RyaW5nKDEpLnNwbGl0KC9cLy8pLm1hcCgoc3RyMikgPT4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+IikpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMKdmFyIHJlcXVpcmVfY29kZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBleHBvcnRzMi5zYWZlU3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuYWRkQ29kZUFyZyA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5uaWwgPSBleHBvcnRzMi5fQ29kZSA9IGV4cG9ydHMyLk5hbWUgPSBleHBvcnRzMi5JREVOVElGSUVSID0gZXhwb3J0czIuX0NvZGVPck5hbWUgPSB2b2lkIDA7CiAgICB2YXIgX0NvZGVPck5hbWUgPSBjbGFzcyB7CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGVPck5hbWUgPSBfQ29kZU9yTmFtZTsKICAgIGV4cG9ydHMyLklERU5USUZJRVIgPSAvXlthLXokX11bYS16JF8wLTldKiQvaTsKICAgIHZhciBOYW1lID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIGlmICghZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KHMpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiBuYW1lIG11c3QgYmUgYSB2YWxpZCBpZGVudGlmaWVyIik7CiAgICAgICAgdGhpcy5zdHIgPSBzOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0cjsKICAgICAgfQogICAgICBlbXB0eVN0cigpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB7IFt0aGlzLnN0cl06IDEgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5hbWUgPSBOYW1lOwogICAgdmFyIF9Db2RlID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvZGUpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuX2l0ZW1zID0gdHlwZW9mIGNvZGUgPT09ICJzdHJpbmciID8gW2NvZGVdIDogY29kZTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHI7CiAgICAgIH0KICAgICAgZW1wdHlTdHIoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA+IDEpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zWzBdOwogICAgICAgIHJldHVybiBpdGVtID09PSAiIiB8fCBpdGVtID09PSAnIiInOwogICAgICB9CiAgICAgIGdldCBzdHIoKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9zdHIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuX3N0ciA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgocywgYykgPT4gYCR7c30ke2N9YCwgIiIpOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuX25hbWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLl9uYW1lcyA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgobmFtZXMsIGMpID0+IHsKICAgICAgICAgIGlmIChjIGluc3RhbmNlb2YgTmFtZSkKICAgICAgICAgICAgbmFtZXNbYy5zdHJdID0gKG5hbWVzW2Muc3RyXSB8fCAwKSArIDE7CiAgICAgICAgICByZXR1cm4gbmFtZXM7CiAgICAgICAgfSwge30pOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGUgPSBfQ29kZTsKICAgIGV4cG9ydHMyLm5pbCA9IG5ldyBfQ29kZSgiIik7CiAgICBmdW5jdGlvbiBfKHN0cnMsIC4uLmFyZ3MpIHsKICAgICAgY29uc3QgY29kZSA9IFtzdHJzWzBdXTsKICAgICAgbGV0IGkgPSAwOwogICAgICB3aGlsZSAoaSA8IGFyZ3MubGVuZ3RoKSB7CiAgICAgICAgYWRkQ29kZUFyZyhjb2RlLCBhcmdzW2ldKTsKICAgICAgICBjb2RlLnB1c2goc3Ryc1srK2ldKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IF9Db2RlKGNvZGUpOwogICAgfQogICAgZXhwb3J0czIuXyA9IF87CiAgICB2YXIgcGx1cyA9IG5ldyBfQ29kZSgiKyIpOwogICAgZnVuY3Rpb24gc3RyMihzdHJzLCAuLi5hcmdzKSB7CiAgICAgIGNvbnN0IGV4cHIgPSBbc2FmZVN0cmluZ2lmeShzdHJzWzBdKV07CiAgICAgIGxldCBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBhcmdzLmxlbmd0aCkgewogICAgICAgIGV4cHIucHVzaChwbHVzKTsKICAgICAgICBhZGRDb2RlQXJnKGV4cHIsIGFyZ3NbaV0pOwogICAgICAgIGV4cHIucHVzaChwbHVzLCBzYWZlU3RyaW5naWZ5KHN0cnNbKytpXSkpOwogICAgICB9CiAgICAgIG9wdGltaXplKGV4cHIpOwogICAgICByZXR1cm4gbmV3IF9Db2RlKGV4cHIpOwogICAgfQogICAgZXhwb3J0czIuc3RyID0gc3RyMjsKICAgIGZ1bmN0aW9uIGFkZENvZGVBcmcoY29kZSwgYXJnKSB7CiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBfQ29kZSkKICAgICAgICBjb2RlLnB1c2goLi4uYXJnLl9pdGVtcyk7CiAgICAgIGVsc2UgaWYgKGFyZyBpbnN0YW5jZW9mIE5hbWUpCiAgICAgICAgY29kZS5wdXNoKGFyZyk7CiAgICAgIGVsc2UKICAgICAgICBjb2RlLnB1c2goaW50ZXJwb2xhdGUoYXJnKSk7CiAgICB9CiAgICBleHBvcnRzMi5hZGRDb2RlQXJnID0gYWRkQ29kZUFyZzsKICAgIGZ1bmN0aW9uIG9wdGltaXplKGV4cHIpIHsKICAgICAgbGV0IGkgPSAxOwogICAgICB3aGlsZSAoaSA8IGV4cHIubGVuZ3RoIC0gMSkgewogICAgICAgIGlmIChleHByW2ldID09PSBwbHVzKSB7CiAgICAgICAgICBjb25zdCByZXMgPSBtZXJnZUV4cHJJdGVtcyhleHByW2kgLSAxXSwgZXhwcltpICsgMV0pOwogICAgICAgICAgaWYgKHJlcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIGV4cHIuc3BsaWNlKGkgLSAxLCAzLCByZXMpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGV4cHJbaSsrXSA9ICIrIjsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZUV4cHJJdGVtcyhhLCBiKSB7CiAgICAgIGlmIChiID09PSAnIiInKQogICAgICAgIHJldHVybiBhOwogICAgICBpZiAoYSA9PT0gJyIiJykKICAgICAgICByZXR1cm4gYjsKICAgICAgaWYgKHR5cGVvZiBhID09ICJzdHJpbmciKSB7CiAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBOYW1lIHx8IGFbYS5sZW5ndGggLSAxXSAhPT0gJyInKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICh0eXBlb2YgYiAhPSAic3RyaW5nIikKICAgICAgICAgIHJldHVybiBgJHthLnNsaWNlKDAsIC0xKX0ke2J9ImA7CiAgICAgICAgaWYgKGJbMF0gPT09ICciJykKICAgICAgICAgIHJldHVybiBhLnNsaWNlKDAsIC0xKSArIGIuc2xpY2UoMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgYiA9PSAic3RyaW5nIiAmJiBiWzBdID09PSAnIicgJiYgIShhIGluc3RhbmNlb2YgTmFtZSkpCiAgICAgICAgcmV0dXJuIGAiJHthfSR7Yi5zbGljZSgxKX1gOwogICAgICByZXR1cm47CiAgICB9CiAgICBmdW5jdGlvbiBzdHJDb25jYXQoYzEsIGMyKSB7CiAgICAgIHJldHVybiBjMi5lbXB0eVN0cigpID8gYzEgOiBjMS5lbXB0eVN0cigpID8gYzIgOiBzdHIyYCR7YzF9JHtjMn1gOwogICAgfQogICAgZXhwb3J0czIuc3RyQ29uY2F0ID0gc3RyQ29uY2F0OwogICAgZnVuY3Rpb24gaW50ZXJwb2xhdGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gIm51bWJlciIgfHwgdHlwZW9mIHggPT0gImJvb2xlYW4iIHx8IHggPT09IG51bGwgPyB4IDogc2FmZVN0cmluZ2lmeShBcnJheS5pc0FycmF5KHgpID8geC5qb2luKCIsIikgOiB4KTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmluZ2lmeSh4KSB7CiAgICAgIHJldHVybiBuZXcgX0NvZGUoc2FmZVN0cmluZ2lmeSh4KSk7CiAgICB9CiAgICBleHBvcnRzMi5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBzYWZlU3RyaW5naWZ5KHgpIHsKICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogICAgfQogICAgZXhwb3J0czIuc2FmZVN0cmluZ2lmeSA9IHNhZmVTdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBnZXRQcm9wZXJ0eShrZXkpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBrZXkgPT0gInN0cmluZyIgJiYgZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KGtleSkgPyBuZXcgX0NvZGUoYC4ke2tleX1gKSA6IF9gWyR7a2V5fV1gOwogICAgfQogICAgZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBnZXRQcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGdldEVzbUV4cG9ydE5hbWUoa2V5KSB7CiAgICAgIGlmICh0eXBlb2Yga2V5ID09ICJzdHJpbmciICYmIGV4cG9ydHMyLklERU5USUZJRVIudGVzdChrZXkpKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfQ29kZShgJHtrZXl9YCk7CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBpbnZhbGlkIGV4cG9ydCBuYW1lOiAke2tleX0sIHVzZSBleHBsaWNpdCAkaWQgbmFtZSBtYXBwaW5nYCk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZ2V0RXNtRXhwb3J0TmFtZTsKICAgIGZ1bmN0aW9uIHJlZ2V4cENvZGUocngpIHsKICAgICAgcmV0dXJuIG5ldyBfQ29kZShyeC50b1N0cmluZygpKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSByZWdleHBDb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL3Njb3BlLmpzCnZhciByZXF1aXJlX3Njb3BlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vc2NvcGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlZhbHVlU2NvcGUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IGV4cG9ydHMyLlNjb3BlID0gZXhwb3J0czIudmFyS2luZHMgPSBleHBvcnRzMi5Vc2VkVmFsdWVTdGF0ZSA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBWYWx1ZUVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUpIHsKICAgICAgICBzdXBlcihgQ29kZUdlbjogImNvZGUiIGZvciAke25hbWV9IG5vdCBkZWZpbmVkYCk7CiAgICAgICAgdGhpcy52YWx1ZSA9IG5hbWUudmFsdWU7CiAgICAgIH0KICAgIH07CiAgICB2YXIgVXNlZFZhbHVlU3RhdGU7CiAgICAoZnVuY3Rpb24oVXNlZFZhbHVlU3RhdGUyKSB7CiAgICAgIFVzZWRWYWx1ZVN0YXRlMltVc2VkVmFsdWVTdGF0ZTJbIlN0YXJ0ZWQiXSA9IDBdID0gIlN0YXJ0ZWQiOwogICAgICBVc2VkVmFsdWVTdGF0ZTJbVXNlZFZhbHVlU3RhdGUyWyJDb21wbGV0ZWQiXSA9IDFdID0gIkNvbXBsZXRlZCI7CiAgICB9KShVc2VkVmFsdWVTdGF0ZSB8fCAoZXhwb3J0czIuVXNlZFZhbHVlU3RhdGUgPSBVc2VkVmFsdWVTdGF0ZSA9IHt9KSk7CiAgICBleHBvcnRzMi52YXJLaW5kcyA9IHsKICAgICAgY29uc3Q6IG5ldyBjb2RlXzEuTmFtZSgiY29uc3QiKSwKICAgICAgbGV0OiBuZXcgY29kZV8xLk5hbWUoImxldCIpLAogICAgICB2YXI6IG5ldyBjb2RlXzEuTmFtZSgidmFyIikKICAgIH07CiAgICB2YXIgU2NvcGUgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKHsgcHJlZml4ZXMsIHBhcmVudCB9ID0ge30pIHsKICAgICAgICB0aGlzLl9uYW1lcyA9IHt9OwogICAgICAgIHRoaXMuX3ByZWZpeGVzID0gcHJlZml4ZXM7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50OwogICAgICB9CiAgICAgIHRvTmFtZShuYW1lT3JQcmVmaXgpIHsKICAgICAgICByZXR1cm4gbmFtZU9yUHJlZml4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBuYW1lT3JQcmVmaXggOiB0aGlzLm5hbWUobmFtZU9yUHJlZml4KTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgY29kZV8xLk5hbWUodGhpcy5fbmV3TmFtZShwcmVmaXgpKTsKICAgICAgfQogICAgICBfbmV3TmFtZShwcmVmaXgpIHsKICAgICAgICBjb25zdCBuZyA9IHRoaXMuX25hbWVzW3ByZWZpeF0gfHwgdGhpcy5fbmFtZUdyb3VwKHByZWZpeCk7CiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke25nLmluZGV4Kyt9YDsKICAgICAgfQogICAgICBfbmFtZUdyb3VwKHByZWZpeCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCgoX2IgPSAoX2EgPSB0aGlzLl9wYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5fcHJlZml4ZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oYXMocHJlZml4KSkgfHwgdGhpcy5fcHJlZml4ZXMgJiYgIXRoaXMuX3ByZWZpeGVzLmhhcyhwcmVmaXgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IHByZWZpeCAiJHtwcmVmaXh9IiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlYCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9uYW1lc1twcmVmaXhdID0geyBwcmVmaXgsIGluZGV4OiAwIH07CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZSA9IFNjb3BlOwogICAgdmFyIFZhbHVlU2NvcGVOYW1lID0gY2xhc3MgZXh0ZW5kcyBjb2RlXzEuTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHByZWZpeCwgbmFtZVN0cikgewogICAgICAgIHN1cGVyKG5hbWVTdHIpOwogICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OwogICAgICB9CiAgICAgIHNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5LCBpdGVtSW5kZXggfSkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLnNjb3BlUGF0aCA9ICgwLCBjb2RlXzEuXylgLiR7bmV3IGNvZGVfMS5OYW1lKHByb3BlcnR5KX1bJHtpdGVtSW5kZXh9XWA7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IFZhbHVlU2NvcGVOYW1lOwogICAgdmFyIGxpbmUgPSAoMCwgY29kZV8xLl8pYFxuYDsKICAgIHZhciBWYWx1ZVNjb3BlID0gY2xhc3MgZXh0ZW5kcyBTY29wZSB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMpIHsKICAgICAgICBzdXBlcihvcHRzKTsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9zY29wZSA9IG9wdHMuc2NvcGU7CiAgICAgICAgdGhpcy5vcHRzID0geyAuLi5vcHRzLCBfbjogb3B0cy5saW5lcyA/IGxpbmUgOiBjb2RlXzEubmlsIH07CiAgICAgIH0KICAgICAgZ2V0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9zY29wZTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgVmFsdWVTY29wZU5hbWUocHJlZml4LCB0aGlzLl9uZXdOYW1lKHByZWZpeCkpOwogICAgICB9CiAgICAgIHZhbHVlKG5hbWVPclByZWZpeCwgdmFsdWUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHZhbHVlLnJlZiA9PT0gdm9pZCAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiByZWYgbXVzdCBiZSBwYXNzZWQgaW4gdmFsdWUiKTsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy50b05hbWUobmFtZU9yUHJlZml4KTsKICAgICAgICBjb25zdCB7IHByZWZpeCB9ID0gbmFtZTsKICAgICAgICBjb25zdCB2YWx1ZUtleSA9IChfYSA9IHZhbHVlLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsdWUucmVmOwogICAgICAgIGxldCB2cyA9IHRoaXMuX3ZhbHVlc1twcmVmaXhdOwogICAgICAgIGlmICh2cykgewogICAgICAgICAgY29uc3QgX25hbWUgPSB2cy5nZXQodmFsdWVLZXkpOwogICAgICAgICAgaWYgKF9uYW1lKQogICAgICAgICAgICByZXR1cm4gX25hbWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZzID0gdGhpcy5fdmFsdWVzW3ByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIH0KICAgICAgICB2cy5zZXQodmFsdWVLZXksIG5hbWUpOwogICAgICAgIGNvbnN0IHMgPSB0aGlzLl9zY29wZVtwcmVmaXhdIHx8ICh0aGlzLl9zY29wZVtwcmVmaXhdID0gW10pOwogICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHMubGVuZ3RoOwogICAgICAgIHNbaXRlbUluZGV4XSA9IHZhbHVlLnJlZjsKICAgICAgICBuYW1lLnNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5OiBwcmVmaXgsIGl0ZW1JbmRleCB9KTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICBnZXRWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgY29uc3QgdnMgPSB0aGlzLl92YWx1ZXNbcHJlZml4XTsKICAgICAgICBpZiAoIXZzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHJldHVybiB2cy5nZXQoa2V5T3JSZWYpOwogICAgICB9CiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUsIHZhbHVlcyA9IHRoaXMuX3ZhbHVlcykgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUuc2NvcGVQYXRoID09PSB2b2lkIDApCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29kZUdlbjogbmFtZSAiJHtuYW1lfSIgaGFzIG5vIHZhbHVlYCk7CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVfMS5fKWAke3Njb3BlTmFtZX0ke25hbWUuc2NvcGVQYXRofWA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc2NvcGVDb2RlKHZhbHVlcyA9IHRoaXMuX3ZhbHVlcywgdXNlZFZhbHVlcywgZ2V0Q29kZSkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUudmFsdWUgPT09IHZvaWQgMCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke25hbWV9IiBoYXMgbm8gdmFsdWVgKTsKICAgICAgICAgIHJldHVybiBuYW1lLnZhbHVlLmNvZGU7CiAgICAgICAgfSwgdXNlZFZhbHVlcywgZ2V0Q29kZSk7CiAgICAgIH0KICAgICAgX3JlZHVjZVZhbHVlcyh2YWx1ZXMsIHZhbHVlQ29kZSwgdXNlZFZhbHVlcyA9IHt9LCBnZXRDb2RlKSB7CiAgICAgICAgbGV0IGNvZGUgPSBjb2RlXzEubmlsOwogICAgICAgIGZvciAoY29uc3QgcHJlZml4IGluIHZhbHVlcykgewogICAgICAgICAgY29uc3QgdnMgPSB2YWx1ZXNbcHJlZml4XTsKICAgICAgICAgIGlmICghdnMpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgY29uc3QgbmFtZVNldCA9IHVzZWRWYWx1ZXNbcHJlZml4XSA9IHVzZWRWYWx1ZXNbcHJlZml4XSB8fCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgICAgdnMuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAobmFtZVNldC5oYXMobmFtZSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBuYW1lU2V0LnNldChuYW1lLCBVc2VkVmFsdWVTdGF0ZS5TdGFydGVkKTsKICAgICAgICAgICAgbGV0IGMgPSB2YWx1ZUNvZGUobmFtZSk7CiAgICAgICAgICAgIGlmIChjKSB7CiAgICAgICAgICAgICAgY29uc3QgZGVmID0gdGhpcy5vcHRzLmVzNSA/IGV4cG9ydHMyLnZhcktpbmRzLnZhciA6IGV4cG9ydHMyLnZhcktpbmRzLmNvbnN0OwogICAgICAgICAgICAgIGNvZGUgPSAoMCwgY29kZV8xLl8pYCR7Y29kZX0ke2RlZn0gJHtuYW1lfSA9ICR7Y307JHt0aGlzLm9wdHMuX259YDsKICAgICAgICAgICAgfSBlbHNlIGlmIChjID0gZ2V0Q29kZSA9PT0gbnVsbCB8fCBnZXRDb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnZXRDb2RlKG5hbWUpKSB7CiAgICAgICAgICAgICAgY29kZSA9ICgwLCBjb2RlXzEuXylgJHtjb2RlfSR7Y30ke3RoaXMub3B0cy5fbn1gOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93IG5ldyBWYWx1ZUVycm9yKG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hbWVTZXQuc2V0KG5hbWUsIFVzZWRWYWx1ZVN0YXRlLkNvbXBsZXRlZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvZGU7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlID0gVmFsdWVTY29wZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvY29kZWdlbi9pbmRleC5qcwp2YXIgcmVxdWlyZV9jb2RlZ2VuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9yID0gZXhwb3J0czIuYW5kID0gZXhwb3J0czIubm90ID0gZXhwb3J0czIuQ29kZUdlbiA9IGV4cG9ydHMyLm9wZXJhdG9ycyA9IGV4cG9ydHMyLnZhcktpbmRzID0gZXhwb3J0czIuVmFsdWVTY29wZU5hbWUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlID0gZXhwb3J0czIuU2NvcGUgPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIucmVnZXhwQ29kZSA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLmdldFByb3BlcnR5ID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBzY29wZV8xID0gcmVxdWlyZV9zY29wZSgpOwogICAgdmFyIGNvZGVfMiA9IHJlcXVpcmVfY29kZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyQ29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLnN0ckNvbmNhdDsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdldFByb3BlcnR5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLmdldFByb3BlcnR5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ2lmeSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHJpbmdpZnk7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVnZXhwQ29kZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5yZWdleHBDb2RlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIuTmFtZTsKICAgIH0gfSk7CiAgICB2YXIgc2NvcGVfMiA9IHJlcXVpcmVfc2NvcGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5TY29wZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWx1ZVNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZhbHVlU2NvcGVOYW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ2YXJLaW5kcyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjb3BlXzIudmFyS2luZHM7CiAgICB9IH0pOwogICAgZXhwb3J0czIub3BlcmF0b3JzID0gewogICAgICBHVDogbmV3IGNvZGVfMS5fQ29kZSgiPiIpLAogICAgICBHVEU6IG5ldyBjb2RlXzEuX0NvZGUoIj49IiksCiAgICAgIExUOiBuZXcgY29kZV8xLl9Db2RlKCI8IiksCiAgICAgIExURTogbmV3IGNvZGVfMS5fQ29kZSgiPD0iKSwKICAgICAgRVE6IG5ldyBjb2RlXzEuX0NvZGUoIj09PSIpLAogICAgICBORVE6IG5ldyBjb2RlXzEuX0NvZGUoIiE9PSIpLAogICAgICBOT1Q6IG5ldyBjb2RlXzEuX0NvZGUoIiEiKSwKICAgICAgT1I6IG5ldyBjb2RlXzEuX0NvZGUoInx8IiksCiAgICAgIEFORDogbmV3IGNvZGVfMS5fQ29kZSgiJiYiKSwKICAgICAgQUREOiBuZXcgY29kZV8xLl9Db2RlKCIrIikKICAgIH07CiAgICB2YXIgTm9kZSA9IGNsYXNzIHsKICAgICAgb3B0aW1pemVOb2RlcygpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKF9uYW1lcywgX2NvbnN0YW50cykgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgdmFyIERlZiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKHZhcktpbmQsIG5hbWUsIHJocykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucmhzID0gcmhzOwogICAgICB9CiAgICAgIHJlbmRlcih7IGVzNSwgX24gfSkgewogICAgICAgIGNvbnN0IHZhcktpbmQgPSBlczUgPyBzY29wZV8xLnZhcktpbmRzLnZhciA6IHRoaXMudmFyS2luZDsKICAgICAgICBjb25zdCByaHMgPSB0aGlzLnJocyA9PT0gdm9pZCAwID8gIiIgOiBgID0gJHt0aGlzLnJoc31gOwogICAgICAgIHJldHVybiBgJHt2YXJLaW5kfSAke3RoaXMubmFtZX0ke3Joc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghbmFtZXNbdGhpcy5uYW1lLnN0cl0pCiAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKHRoaXMucmhzKQogICAgICAgICAgdGhpcy5yaHMgPSBvcHRpbWl6ZUV4cHIodGhpcy5yaHMsIG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5yaHMgaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyB0aGlzLnJocy5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5saHMgPSBsaHM7CiAgICAgICAgdGhpcy5yaHMgPSByaHM7CiAgICAgICAgdGhpcy5zaWRlRWZmZWN0cyA9IHNpZGVFZmZlY3RzOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYCR7dGhpcy5saHN9ID0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICh0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lICYmICFuYW1lc1t0aGlzLmxocy5zdHJdICYmICF0aGlzLnNpZGVFZmZlY3RzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMucmhzID0gb3B0aW1pemVFeHByKHRoaXMucmhzLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSB0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lID8ge30gOiB7IC4uLnRoaXMubGhzLm5hbWVzIH07CiAgICAgICAgcmV0dXJuIGFkZEV4cHJOYW1lcyhuYW1lcywgdGhpcy5yaHMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbk9wID0gY2xhc3MgZXh0ZW5kcyBBc3NpZ24gewogICAgICBjb25zdHJ1Y3RvcihsaHMsIG9wLCByaHMsIHNpZGVFZmZlY3RzKSB7CiAgICAgICAgc3VwZXIobGhzLCByaHMsIHNpZGVFZmZlY3RzKTsKICAgICAgICB0aGlzLm9wID0gb3A7CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxoc30gJHt0aGlzLm9wfT0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICB9OwogICAgdmFyIExhYmVsID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IobGFiZWwpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDsKICAgICAgICB0aGlzLm5hbWVzID0ge307CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfTpgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgQnJlYWsgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihsYWJlbCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICAgIHRoaXMubmFtZXMgPSB7fTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsID8gYCAke3RoaXMubGFiZWx9YCA6ICIiOwogICAgICAgIHJldHVybiBgYnJlYWske2xhYmVsfTtgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgVGhyb3cgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYHRocm93ICR7dGhpcy5lcnJvcn07YCArIF9uOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5lcnJvci5uYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBBbnlDb2RlID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IoY29kZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5jb2RlID0gY29kZTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX07YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX1gID8gdGhpcyA6IHZvaWQgMDsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpIHsKICAgICAgICB0aGlzLmNvZGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5jb2RlLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29kZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZU9yTmFtZSA/IHRoaXMuY29kZS5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIFBhcmVudE5vZGUgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3Rvcihub2RlcyA9IFtdKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5vZGVzID0gbm9kZXM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5ub2Rlcy5yZWR1Y2UoKGNvZGUsIG4pID0+IGNvZGUgKyBuLnJlbmRlcihvcHRzKSwgIiIpOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV0ub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobikpCiAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxLCAuLi5uKTsKICAgICAgICAgIGVsc2UgaWYgKG4pCiAgICAgICAgICAgIG5vZGVzW2ldID0gbjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV07CiAgICAgICAgICBpZiAobi5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHN1YnRyYWN0TmFtZXMobmFtZXMsIG4ubmFtZXMpOwogICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLm5vZGVzLnJlZHVjZSgobmFtZXMsIG4pID0+IGFkZE5hbWVzKG5hbWVzLCBuLm5hbWVzKSwge30pOwogICAgICB9CiAgICB9OwogICAgdmFyIEJsb2NrTm9kZSA9IGNsYXNzIGV4dGVuZHMgUGFyZW50Tm9kZSB7CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgcmV0dXJuICJ7IiArIG9wdHMuX24gKyBzdXBlci5yZW5kZXIob3B0cykgKyAifSIgKyBvcHRzLl9uOwogICAgICB9CiAgICB9OwogICAgdmFyIFJvb3QgPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgfTsKICAgIHZhciBFbHNlID0gY2xhc3MgZXh0ZW5kcyBCbG9ja05vZGUgewogICAgfTsKICAgIEVsc2Uua2luZCA9ICJlbHNlIjsKICAgIHZhciBJZiA9IGNsYXNzIF9JZiBleHRlbmRzIEJsb2NrTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvbmRpdGlvbiwgbm9kZXMpIHsKICAgICAgICBzdXBlcihub2Rlcyk7CiAgICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9IGBpZigke3RoaXMuY29uZGl0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmVsc2UpCiAgICAgICAgICBjb2RlICs9ICJlbHNlICIgKyB0aGlzLmVsc2UucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgc3VwZXIub3B0aW1pemVOb2RlcygpOwogICAgICAgIGNvbnN0IGNvbmQgPSB0aGlzLmNvbmRpdGlvbjsKICAgICAgICBpZiAoY29uZCA9PT0gdHJ1ZSkKICAgICAgICAgIHJldHVybiB0aGlzLm5vZGVzOwogICAgICAgIGxldCBlID0gdGhpcy5lbHNlOwogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBjb25zdCBucyA9IGUub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgZSA9IHRoaXMuZWxzZSA9IEFycmF5LmlzQXJyYXkobnMpID8gbmV3IEVsc2UobnMpIDogbnM7CiAgICAgICAgfQogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBpZiAoY29uZCA9PT0gZmFsc2UpCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgX0lmID8gZSA6IGUubm9kZXM7CiAgICAgICAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgcmV0dXJuIG5ldyBfSWYobm90KGNvbmQpLCBlIGluc3RhbmNlb2YgX0lmID8gW2VdIDogZS5ub2Rlcyk7CiAgICAgICAgfQogICAgICAgIGlmIChjb25kID09PSBmYWxzZSB8fCAhdGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLmVsc2UgPSAoX2EgPSB0aGlzLmVsc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIGlmICghKHN1cGVyLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgfHwgdGhpcy5lbHNlKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLmNvbmRpdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgYWRkRXhwck5hbWVzKG5hbWVzLCB0aGlzLmNvbmRpdGlvbik7CiAgICAgICAgaWYgKHRoaXMuZWxzZSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmVsc2UubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIElmLmtpbmQgPSAiaWYiOwogICAgdmFyIEZvciA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgIH07CiAgICBGb3Iua2luZCA9ICJmb3IiOwogICAgdmFyIEZvckxvb3AgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGl0ZXJhdGlvbikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5pdGVyYXRpb24gPSBpdGVyYXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMuaXRlcmF0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghc3VwZXIub3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLml0ZXJhdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLml0ZXJhdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYXRpb24ubmFtZXMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvclJhbmdlID0gY2xhc3MgZXh0ZW5kcyBGb3IgewogICAgICBjb25zdHJ1Y3Rvcih2YXJLaW5kLCBuYW1lLCBmcm9tLCB0bykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgdGhpcy50byA9IHRvOwogICAgICB9CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgY29uc3QgdmFyS2luZCA9IG9wdHMuZXM1ID8gc2NvcGVfMS52YXJLaW5kcy52YXIgOiB0aGlzLnZhcktpbmQ7CiAgICAgICAgY29uc3QgeyBuYW1lLCBmcm9tLCB0byB9ID0gdGhpczsKICAgICAgICByZXR1cm4gYGZvcigke3ZhcktpbmR9ICR7bmFtZX09JHtmcm9tfTsgJHtuYW1lfTwke3RvfTsgJHtuYW1lfSsrKWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gYWRkRXhwck5hbWVzKHN1cGVyLm5hbWVzLCB0aGlzLmZyb20pOwogICAgICAgIHJldHVybiBhZGRFeHByTmFtZXMobmFtZXMsIHRoaXMudG8pOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvckl0ZXIgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGxvb3AsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmxvb3AgPSBsb29wOwogICAgICAgIHRoaXMudmFyS2luZCA9IHZhcktpbmQ7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLml0ZXJhYmxlID0gaXRlcmFibGU7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMudmFyS2luZH0gJHt0aGlzLm5hbWV9ICR7dGhpcy5sb29wfSAke3RoaXMuaXRlcmFibGV9KWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgaWYgKCFzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMuaXRlcmFibGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5pdGVyYWJsZSwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYWJsZS5uYW1lcyk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgRnVuYyA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgYXJncywgYXN5bmMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5hcmdzID0gYXJnczsKICAgICAgICB0aGlzLmFzeW5jID0gYXN5bmM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBjb25zdCBfYXN5bmMgPSB0aGlzLmFzeW5jID8gImFzeW5jICIgOiAiIjsKICAgICAgICByZXR1cm4gYCR7X2FzeW5jfWZ1bmN0aW9uICR7dGhpcy5uYW1lfSgke3RoaXMuYXJnc30pYCArIHN1cGVyLnJlbmRlcihvcHRzKTsKICAgICAgfQogICAgfTsKICAgIEZ1bmMua2luZCA9ICJmdW5jIjsKICAgIHZhciBSZXR1cm4gPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiAicmV0dXJuICIgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgIH07CiAgICBSZXR1cm4ua2luZCA9ICJyZXR1cm4iOwogICAgdmFyIFRyeSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9ICJ0cnkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmNhdGNoKQogICAgICAgICAgY29kZSArPSB0aGlzLmNhdGNoLnJlbmRlcihvcHRzKTsKICAgICAgICBpZiAodGhpcy5maW5hbGx5KQogICAgICAgICAgY29kZSArPSB0aGlzLmZpbmFsbHkucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgKF9hID0gdGhpcy5jYXRjaCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplTm9kZXMoKTsKICAgICAgICAoX2IgPSB0aGlzLmZpbmFsbHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYSA9IHRoaXMuY2F0Y2gpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYiA9IHRoaXMuZmluYWxseSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgaWYgKHRoaXMuY2F0Y2gpCiAgICAgICAgICBhZGROYW1lcyhuYW1lcywgdGhpcy5jYXRjaC5uYW1lcyk7CiAgICAgICAgaWYgKHRoaXMuZmluYWxseSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmZpbmFsbHkubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBDYXRjaCA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IoZXJyb3IpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKICAgICAgfQogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiBgY2F0Y2goJHt0aGlzLmVycm9yfSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgQ2F0Y2gua2luZCA9ICJjYXRjaCI7CiAgICB2YXIgRmluYWxseSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gImZpbmFsbHkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgRmluYWxseS5raW5kID0gImZpbmFsbHkiOwogICAgdmFyIENvZGVHZW4gPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGV4dFNjb3BlLCBvcHRzID0ge30pIHsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9ibG9ja1N0YXJ0cyA9IFtdOwogICAgICAgIHRoaXMuX2NvbnN0YW50cyA9IHt9OwogICAgICAgIHRoaXMub3B0cyA9IHsgLi4ub3B0cywgX246IG9wdHMubGluZXMgPyAiXG4iIDogIiIgfTsKICAgICAgICB0aGlzLl9leHRTY29wZSA9IGV4dFNjb3BlOwogICAgICAgIHRoaXMuX3Njb3BlID0gbmV3IHNjb3BlXzEuU2NvcGUoeyBwYXJlbnQ6IGV4dFNjb3BlIH0pOwogICAgICAgIHRoaXMuX25vZGVzID0gW25ldyBSb290KCldOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnJlbmRlcih0aGlzLm9wdHMpOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgdW5pcXVlIG5hbWUgaW4gdGhlIGludGVybmFsIHNjb3BlCiAgICAgIG5hbWUocHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Njb3BlLm5hbWUocHJlZml4KTsKICAgICAgfQogICAgICAvLyByZXNlcnZlcyB1bmlxdWUgbmFtZSBpbiB0aGUgZXh0ZXJuYWwgc2NvcGUKICAgICAgc2NvcGVOYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiB0aGlzLl9leHRTY29wZS5uYW1lKHByZWZpeCk7CiAgICAgIH0KICAgICAgLy8gcmVzZXJ2ZXMgdW5pcXVlIG5hbWUgaW4gdGhlIGV4dGVybmFsIHNjb3BlIGFuZCBhc3NpZ25zIHZhbHVlIHRvIGl0CiAgICAgIHNjb3BlVmFsdWUocHJlZml4T3JOYW1lLCB2YWx1ZSkgewogICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9leHRTY29wZS52YWx1ZShwcmVmaXhPck5hbWUsIHZhbHVlKTsKICAgICAgICBjb25zdCB2cyA9IHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gfHwgKHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKTsKICAgICAgICB2cy5hZGQobmFtZSk7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgIH0KICAgICAgZ2V0U2NvcGVWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLmdldFZhbHVlKHByZWZpeCwga2V5T3JSZWYpOwogICAgICB9CiAgICAgIC8vIHJldHVybiBjb2RlIHRoYXQgYXNzaWducyB2YWx1ZXMgaW4gdGhlIGV4dGVybmFsIHNjb3BlIHRvIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkKICAgICAgLy8gKHNhbWUgbmFtZXMgdGhhdCB3ZXJlIHJldHVybmVkIGJ5IGdlbi5zY29wZU5hbWUgb3IgZ2VuLnNjb3BlVmFsdWUpCiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXh0U2NvcGUuc2NvcGVSZWZzKHNjb3BlTmFtZSwgdGhpcy5fdmFsdWVzKTsKICAgICAgfQogICAgICBzY29wZUNvZGUoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLnNjb3BlQ29kZSh0aGlzLl92YWx1ZXMpOwogICAgICB9CiAgICAgIF9kZWYodmFyS2luZCwgbmFtZU9yUHJlZml4LCByaHMsIGNvbnN0YW50KSB7CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIGlmIChyaHMgIT09IHZvaWQgMCAmJiBjb25zdGFudCkKICAgICAgICAgIHRoaXMuX2NvbnN0YW50c1tuYW1lLnN0cl0gPSByaHM7CiAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IERlZih2YXJLaW5kLCBuYW1lLCByaHMpKTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICAvLyBgY29uc3RgIGRlY2xhcmF0aW9uIChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgY29uc3QobmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWYoc2NvcGVfMS52YXJLaW5kcy5jb25zdCwgbmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCk7CiAgICAgIH0KICAgICAgLy8gYGxldGAgZGVjbGFyYXRpb24gd2l0aCBvcHRpb25hbCBhc3NpZ25tZW50IChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgbGV0KG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMubGV0LCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBgdmFyYCBkZWNsYXJhdGlvbiB3aXRoIG9wdGlvbmFsIGFzc2lnbm1lbnQKICAgICAgdmFyKG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMudmFyLCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBhc3NpZ25tZW50IGNvZGUKICAgICAgYXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykpOwogICAgICB9CiAgICAgIC8vIGArPWAgY29kZQogICAgICBhZGQobGhzLCByaHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IEFzc2lnbk9wKGxocywgZXhwb3J0czIub3BlcmF0b3JzLkFERCwgcmhzKSk7CiAgICAgIH0KICAgICAgLy8gYXBwZW5kcyBwYXNzZWQgU2FmZUV4cHIgdG8gY29kZSBvciBleGVjdXRlcyBCbG9jawogICAgICBjb2RlKGMpIHsKICAgICAgICBpZiAodHlwZW9mIGMgPT0gImZ1bmN0aW9uIikKICAgICAgICAgIGMoKTsKICAgICAgICBlbHNlIGlmIChjICE9PSBjb2RlXzEubmlsKQogICAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IEFueUNvZGUoYykpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgY29kZSBmb3Igb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSBwYXNzZWQgYXJndW1lbnQgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMKICAgICAgb2JqZWN0KC4uLmtleVZhbHVlcykgewogICAgICAgIGNvbnN0IGNvZGUgPSBbInsiXTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBrZXlWYWx1ZXMpIHsKICAgICAgICAgIGlmIChjb2RlLmxlbmd0aCA+IDEpCiAgICAgICAgICAgIGNvZGUucHVzaCgiLCIpOwogICAgICAgICAgY29kZS5wdXNoKGtleSk7CiAgICAgICAgICBpZiAoa2V5ICE9PSB2YWx1ZSB8fCB0aGlzLm9wdHMuZXM1KSB7CiAgICAgICAgICAgIGNvZGUucHVzaCgiOiIpOwogICAgICAgICAgICAoMCwgY29kZV8xLmFkZENvZGVBcmcpKGNvZGUsIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29kZS5wdXNoKCJ9Iik7CiAgICAgICAgcmV0dXJuIG5ldyBjb2RlXzEuX0NvZGUoY29kZSk7CiAgICAgIH0KICAgICAgLy8gYGlmYCBjbGF1c2UgKG9yIHN0YXRlbWVudCBpZiBgdGhlbkJvZHlgIGFuZCwgb3B0aW9uYWxseSwgYGVsc2VCb2R5YCBhcmUgcGFzc2VkKQogICAgICBpZihjb25kaXRpb24sIHRoZW5Cb2R5LCBlbHNlQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShuZXcgSWYoY29uZGl0aW9uKSk7CiAgICAgICAgaWYgKHRoZW5Cb2R5ICYmIGVsc2VCb2R5KSB7CiAgICAgICAgICB0aGlzLmNvZGUodGhlbkJvZHkpLmVsc2UoKS5jb2RlKGVsc2VCb2R5KS5lbmRJZigpOwogICAgICAgIH0gZWxzZSBpZiAodGhlbkJvZHkpIHsKICAgICAgICAgIHRoaXMuY29kZSh0aGVuQm9keSkuZW5kSWYoKTsKICAgICAgICB9IGVsc2UgaWYgKGVsc2VCb2R5KSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJlbHNlIiBib2R5IHdpdGhvdXQgInRoZW4iIGJvZHknKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLy8gYGVsc2UgaWZgIGNsYXVzZSAtIGludmFsaWQgd2l0aG91dCBgaWZgIG9yIGFmdGVyIGBlbHNlYCBjbGF1c2VzCiAgICAgIGVsc2VJZihjb25kaXRpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IElmKGNvbmRpdGlvbikpOwogICAgICB9CiAgICAgIC8vIGBlbHNlYCBjbGF1c2UgLSBvbmx5IHZhbGlkIGFmdGVyIGBpZmAgb3IgYGVsc2UgaWZgIGNsYXVzZXMKICAgICAgZWxzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IEVsc2UoKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBpZmAgc3RhdGVtZW50IChuZWVkZWQgaWYgZ2VuLmlmIHdhcyB1c2VkIG9ubHkgd2l0aCBjb25kaXRpb24pCiAgICAgIGVuZElmKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoSWYsIEVsc2UpOwogICAgICB9CiAgICAgIF9mb3Iobm9kZSwgZm9yQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICBpZiAoZm9yQm9keSkKICAgICAgICAgIHRoaXMuY29kZShmb3JCb2R5KS5lbmRGb3IoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBhIGdlbmVyaWMgYGZvcmAgY2xhdXNlIChvciBzdGF0ZW1lbnQgaWYgYGZvckJvZHlgIGlzIHBhc3NlZCkKICAgICAgZm9yKGl0ZXJhdGlvbiwgZm9yQm9keSkgewogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckxvb3AoaXRlcmF0aW9uKSwgZm9yQm9keSk7CiAgICAgIH0KICAgICAgLy8gYGZvcmAgc3RhdGVtZW50IGZvciBhIHJhbmdlIG9mIHZhbHVlcwogICAgICBmb3JSYW5nZShuYW1lT3JQcmVmaXgsIGZyb20sIHRvLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5sZXQpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcihuZXcgRm9yUmFuZ2UodmFyS2luZCwgbmFtZSwgZnJvbSwgdG8pLCAoKSA9PiBmb3JCb2R5KG5hbWUpKTsKICAgICAgfQogICAgICAvLyBgZm9yLW9mYCBzdGF0ZW1lbnQgKGluIGVzNSBtb2RlIHJlcGxhY2Ugd2l0aCBhIG5vcm1hbCBmb3IgbG9vcCkKICAgICAgZm9yT2YobmFtZU9yUHJlZml4LCBpdGVyYWJsZSwgZm9yQm9keSwgdmFyS2luZCA9IHNjb3BlXzEudmFyS2luZHMuY29uc3QpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgaWYgKHRoaXMub3B0cy5lczUpIHsKICAgICAgICAgIGNvbnN0IGFyciA9IGl0ZXJhYmxlIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBpdGVyYWJsZSA6IHRoaXMudmFyKCJfYXJyIiwgaXRlcmFibGUpOwogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yUmFuZ2UoIl9pIiwgMCwgKDAsIGNvZGVfMS5fKWAke2Fycn0ubGVuZ3RoYCwgKGkpID0+IHsKICAgICAgICAgICAgdGhpcy52YXIobmFtZSwgKDAsIGNvZGVfMS5fKWAke2Fycn1bJHtpfV1gKTsKICAgICAgICAgICAgZm9yQm9keShuYW1lKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fZm9yKG5ldyBGb3JJdGVyKCJvZiIsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gYGZvci1pbmAgc3RhdGVtZW50LgogICAgICAvLyBXaXRoIG9wdGlvbiBgb3duUHJvcGVydGllc2AgcmVwbGFjZWQgd2l0aCBhIGBmb3Itb2ZgIGxvb3AgZm9yIG9iamVjdCBrZXlzCiAgICAgIGZvckluKG5hbWVPclByZWZpeCwgb2JqLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5jb25zdCkgewogICAgICAgIGlmICh0aGlzLm9wdHMub3duUHJvcGVydGllcykgewogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yT2YobmFtZU9yUHJlZml4LCAoMCwgY29kZV8xLl8pYE9iamVjdC5rZXlzKCR7b2JqfSlgLCBmb3JCb2R5KTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckl0ZXIoImluIiwgdmFyS2luZCwgbmFtZSwgb2JqKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBmb3JgIGxvb3AKICAgICAgZW5kRm9yKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRm9yKTsKICAgICAgfQogICAgICAvLyBgbGFiZWxgIHN0YXRlbWVudAogICAgICBsYWJlbChsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgTGFiZWwobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgYnJlYWtgIHN0YXRlbWVudAogICAgICBicmVhayhsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQnJlYWsobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgcmV0dXJuYCBzdGF0ZW1lbnQKICAgICAgcmV0dXJuKHZhbHVlKSB7CiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBSZXR1cm4oKTsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobm9kZSk7CiAgICAgICAgdGhpcy5jb2RlKHZhbHVlKTsKICAgICAgICBpZiAobm9kZS5ub2Rlcy5sZW5ndGggIT09IDEpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJyZXR1cm4iIHNob3VsZCBoYXZlIG9uZSBub2RlJyk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2VuZEJsb2NrTm9kZShSZXR1cm4pOwogICAgICB9CiAgICAgIC8vIGB0cnlgIHN0YXRlbWVudAogICAgICB0cnkodHJ5Qm9keSwgY2F0Y2hDb2RlLCBmaW5hbGx5Q29kZSkgewogICAgICAgIGlmICghY2F0Y2hDb2RlICYmICFmaW5hbGx5Q29kZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInRyeSIgd2l0aG91dCAiY2F0Y2giIGFuZCAiZmluYWxseSInKTsKICAgICAgICBjb25zdCBub2RlID0gbmV3IFRyeSgpOwogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICB0aGlzLmNvZGUodHJ5Qm9keSk7CiAgICAgICAgaWYgKGNhdGNoQ29kZSkgewogICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5hbWUoImUiKTsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5jYXRjaCA9IG5ldyBDYXRjaChlcnJvcik7CiAgICAgICAgICBjYXRjaENvZGUoZXJyb3IpOwogICAgICAgIH0KICAgICAgICBpZiAoZmluYWxseUNvZGUpIHsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5maW5hbGx5ID0gbmV3IEZpbmFsbHkoKTsKICAgICAgICAgIHRoaXMuY29kZShmaW5hbGx5Q29kZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoQ2F0Y2gsIEZpbmFsbHkpOwogICAgICB9CiAgICAgIC8vIGB0aHJvd2Agc3RhdGVtZW50CiAgICAgIHRocm93KGVycm9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBUaHJvdyhlcnJvcikpOwogICAgICB9CiAgICAgIC8vIHN0YXJ0IHNlbGYtYmFsYW5jaW5nIGJsb2NrCiAgICAgIGJsb2NrKGJvZHksIG5vZGVDb3VudCkgewogICAgICAgIHRoaXMuX2Jsb2NrU3RhcnRzLnB1c2godGhpcy5fbm9kZXMubGVuZ3RoKTsKICAgICAgICBpZiAoYm9keSkKICAgICAgICAgIHRoaXMuY29kZShib2R5KS5lbmRCbG9jayhub2RlQ291bnQpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIGVuZCB0aGUgY3VycmVudCBzZWxmLWJhbGFuY2luZyBibG9jawogICAgICBlbmRCbG9jayhub2RlQ291bnQpIHsKICAgICAgICBjb25zdCBsZW4gPSB0aGlzLl9ibG9ja1N0YXJ0cy5wb3AoKTsKICAgICAgICBpZiAobGVuID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvZGVHZW46IG5vdCBpbiBzZWxmLWJhbGFuY2luZyBibG9jayIpOwogICAgICAgIGNvbnN0IHRvQ2xvc2UgPSB0aGlzLl9ub2Rlcy5sZW5ndGggLSBsZW47CiAgICAgICAgaWYgKHRvQ2xvc2UgPCAwIHx8IG5vZGVDb3VudCAhPT0gdm9pZCAwICYmIHRvQ2xvc2UgIT09IG5vZGVDb3VudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiB3cm9uZyBudW1iZXIgb2Ygbm9kZXM6ICR7dG9DbG9zZX0gdnMgJHtub2RlQ291bnR9IGV4cGVjdGVkYCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX25vZGVzLmxlbmd0aCA9IGxlbjsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBgZnVuY3Rpb25gIGhlYWRpbmcgKG9yIGRlZmluaXRpb24gaWYgZnVuY0JvZHkgaXMgcGFzc2VkKQogICAgICBmdW5jKG5hbWUsIGFyZ3MgPSBjb2RlXzEubmlsLCBhc3luYywgZnVuY0JvZHkpIHsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobmV3IEZ1bmMobmFtZSwgYXJncywgYXN5bmMpKTsKICAgICAgICBpZiAoZnVuY0JvZHkpCiAgICAgICAgICB0aGlzLmNvZGUoZnVuY0JvZHkpLmVuZEZ1bmMoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBlbmQgZnVuY3Rpb24gZGVmaW5pdGlvbgogICAgICBlbmRGdW5jKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRnVuYyk7CiAgICAgIH0KICAgICAgb3B0aW1pemUobiA9IDEpIHsKICAgICAgICB3aGlsZSAobi0tID4gMCkgewogICAgICAgICAgdGhpcy5fcm9vdC5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgICB0aGlzLl9yb290Lm9wdGltaXplTmFtZXModGhpcy5fcm9vdC5uYW1lcywgdGhpcy5fY29uc3RhbnRzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2xlYWZOb2RlKG5vZGUpIHsKICAgICAgICB0aGlzLl9jdXJyTm9kZS5ub2Rlcy5wdXNoKG5vZGUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF9ibG9ja05vZGUobm9kZSkgewogICAgICAgIHRoaXMuX2N1cnJOb2RlLm5vZGVzLnB1c2gobm9kZSk7CiAgICAgICAgdGhpcy5fbm9kZXMucHVzaChub2RlKTsKICAgICAgfQogICAgICBfZW5kQmxvY2tOb2RlKE4xLCBOMikgewogICAgICAgIGNvbnN0IG4gPSB0aGlzLl9jdXJyTm9kZTsKICAgICAgICBpZiAobiBpbnN0YW5jZW9mIE4xIHx8IE4yICYmIG4gaW5zdGFuY2VvZiBOMikgewogICAgICAgICAgdGhpcy5fbm9kZXMucG9wKCk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBub3QgaW4gYmxvY2sgIiR7TjIgPyBgJHtOMS5raW5kfS8ke04yLmtpbmR9YCA6IE4xLmtpbmR9ImApOwogICAgICB9CiAgICAgIF9lbHNlTm9kZShub2RlKSB7CiAgICAgICAgY29uc3QgbiA9IHRoaXMuX2N1cnJOb2RlOwogICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBJZikpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogImVsc2UiIHdpdGhvdXQgImlmIicpOwogICAgICAgIH0KICAgICAgICB0aGlzLl9jdXJyTm9kZSA9IG4uZWxzZSA9IG5vZGU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IF9yb290KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc1swXTsKICAgICAgfQogICAgICBnZXQgX2N1cnJOb2RlKCkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgcmV0dXJuIG5zW25zLmxlbmd0aCAtIDFdOwogICAgICB9CiAgICAgIHNldCBfY3Vyck5vZGUobm9kZSkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgbnNbbnMubGVuZ3RoIC0gMV0gPSBub2RlOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29kZUdlbiA9IENvZGVHZW47CiAgICBmdW5jdGlvbiBhZGROYW1lcyhuYW1lcywgZnJvbSkgewogICAgICBmb3IgKGNvbnN0IG4gaW4gZnJvbSkKICAgICAgICBuYW1lc1tuXSA9IChuYW1lc1tuXSB8fCAwKSArIChmcm9tW25dIHx8IDApOwogICAgICByZXR1cm4gbmFtZXM7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFeHByTmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgcmV0dXJuIGZyb20gaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyBhZGROYW1lcyhuYW1lcywgZnJvbS5uYW1lcykgOiBuYW1lczsKICAgIH0KICAgIGZ1bmN0aW9uIG9wdGltaXplRXhwcihleHByLCBuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgIGlmIChleHByIGluc3RhbmNlb2YgY29kZV8xLk5hbWUpCiAgICAgICAgcmV0dXJuIHJlcGxhY2VOYW1lKGV4cHIpOwogICAgICBpZiAoIWNhbk9wdGltaXplKGV4cHIpKQogICAgICAgIHJldHVybiBleHByOwogICAgICByZXR1cm4gbmV3IGNvZGVfMS5fQ29kZShleHByLl9pdGVtcy5yZWR1Y2UoKGl0ZW1zLCBjKSA9PiB7CiAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBjb2RlXzEuTmFtZSkKICAgICAgICAgIGMgPSByZXBsYWNlTmFtZShjKTsKICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSkKICAgICAgICAgIGl0ZW1zLnB1c2goLi4uYy5faXRlbXMpOwogICAgICAgIGVsc2UKICAgICAgICAgIGl0ZW1zLnB1c2goYyk7CiAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICB9LCBbXSkpOwogICAgICBmdW5jdGlvbiByZXBsYWNlTmFtZShuKSB7CiAgICAgICAgY29uc3QgYyA9IGNvbnN0YW50c1tuLnN0cl07CiAgICAgICAgaWYgKGMgPT09IHZvaWQgMCB8fCBuYW1lc1tuLnN0cl0gIT09IDEpCiAgICAgICAgICByZXR1cm4gbjsKICAgICAgICBkZWxldGUgbmFtZXNbbi5zdHJdOwogICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbk9wdGltaXplKGUpIHsKICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSAmJiBlLl9pdGVtcy5zb21lKChjKSA9PiBjIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgJiYgbmFtZXNbYy5zdHJdID09PSAxICYmIGNvbnN0YW50c1tjLnN0cl0gIT09IHZvaWQgMCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHN1YnRyYWN0TmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgZm9yIChjb25zdCBuIGluIGZyb20pCiAgICAgICAgbmFtZXNbbl0gPSAobmFtZXNbbl0gfHwgMCkgLSAoZnJvbVtuXSB8fCAwKTsKICAgIH0KICAgIGZ1bmN0aW9uIG5vdCh4KSB7CiAgICAgIHJldHVybiB0eXBlb2YgeCA9PSAiYm9vbGVhbiIgfHwgdHlwZW9mIHggPT0gIm51bWJlciIgfHwgeCA9PT0gbnVsbCA/ICF4IDogKDAsIGNvZGVfMS5fKWAhJHtwYXIoeCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLm5vdCA9IG5vdDsKICAgIHZhciBhbmRDb2RlID0gbWFwcGVuZChleHBvcnRzMi5vcGVyYXRvcnMuQU5EKTsKICAgIGZ1bmN0aW9uIGFuZCguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShhbmRDb2RlKTsKICAgIH0KICAgIGV4cG9ydHMyLmFuZCA9IGFuZDsKICAgIHZhciBvckNvZGUgPSBtYXBwZW5kKGV4cG9ydHMyLm9wZXJhdG9ycy5PUik7CiAgICBmdW5jdGlvbiBvciguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShvckNvZGUpOwogICAgfQogICAgZXhwb3J0czIub3IgPSBvcjsKICAgIGZ1bmN0aW9uIG1hcHBlbmQob3ApIHsKICAgICAgcmV0dXJuICh4LCB5KSA9PiB4ID09PSBjb2RlXzEubmlsID8geSA6IHkgPT09IGNvZGVfMS5uaWwgPyB4IDogKDAsIGNvZGVfMS5fKWAke3Bhcih4KX0gJHtvcH0gJHtwYXIoeSl9YDsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcih4KSB7CiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyB4IDogKDAsIGNvZGVfMS5fKWAoJHt4fSlgOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS91dGlsLmpzCnZhciByZXF1aXJlX3V0aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdXRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gZXhwb3J0czIuZ2V0RXJyb3JQYXRoID0gZXhwb3J0czIuVHlwZSA9IGV4cG9ydHMyLnVzZUZ1bmMgPSBleHBvcnRzMi5zZXRFdmFsdWF0ZWQgPSBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV4cG9ydHMyLm1lcmdlRXZhbHVhdGVkID0gZXhwb3J0czIuZWFjaEl0ZW0gPSBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBleHBvcnRzMi5lc2NhcGVGcmFnbWVudCA9IGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSBleHBvcnRzMi5zY2hlbWFSZWZPclZhbCA9IGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzQnV0UmVmID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXMgPSBleHBvcnRzMi5jaGVja1Vua25vd25SdWxlcyA9IGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gZXhwb3J0czIudG9IYXNoID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZSgpOwogICAgZnVuY3Rpb24gdG9IYXNoKGFycikgewogICAgICBjb25zdCBoYXNoID0ge307CiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpCiAgICAgICAgaGFzaFtpdGVtXSA9IHRydWU7CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogICAgZXhwb3J0czIudG9IYXNoID0gdG9IYXNoOwogICAgZnVuY3Rpb24gYWx3YXlzVmFsaWRTY2hlbWEoaXQsIHNjaGVtYTIpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gc2NoZW1hMjsKICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYTIpLmxlbmd0aCA9PT0gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2hlY2tVbmtub3duUnVsZXMoaXQsIHNjaGVtYTIpOwogICAgICByZXR1cm4gIXNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIGl0LnNlbGYuUlVMRVMuYWxsKTsKICAgIH0KICAgIGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gYWx3YXlzVmFsaWRTY2hlbWE7CiAgICBmdW5jdGlvbiBjaGVja1Vua25vd25SdWxlcyhpdCwgc2NoZW1hMiA9IGl0LnNjaGVtYSkgewogICAgICBjb25zdCB7IG9wdHMsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgaWYgKCFvcHRzLnN0cmljdFNjaGVtYSkKICAgICAgICByZXR1cm47CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgcnVsZXMgPSBzZWxmMi5SVUxFUy5rZXl3b3JkczsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmICghcnVsZXNba2V5XSkKICAgICAgICAgIGNoZWNrU3RyaWN0TW9kZShpdCwgYHVua25vd24ga2V5d29yZDogIiR7a2V5fSJgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tVbmtub3duUnVsZXMgPSBjaGVja1Vua25vd25SdWxlczsKICAgIGZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIHJ1bGVzKSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgcmV0dXJuICFzY2hlbWEyOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKQogICAgICAgIGlmIChydWxlc1trZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzID0gc2NoZW1hSGFzUnVsZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFIYXNSdWxlc0J1dFJlZihzY2hlbWEyLCBSVUxFUykgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybiAhc2NoZW1hMjsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikKICAgICAgICBpZiAoa2V5ICE9PSAiJHJlZiIgJiYgUlVMRVMuYWxsW2tleV0pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNCdXRSZWYgPSBzY2hlbWFIYXNSdWxlc0J1dFJlZjsKICAgIGZ1bmN0aW9uIHNjaGVtYVJlZk9yVmFsKHsgdG9wU2NoZW1hUmVmLCBzY2hlbWFQYXRoIH0sIHNjaGVtYTIsIGtleXdvcmQsICRkYXRhKSB7CiAgICAgIGlmICghJGRhdGEpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gIm51bWJlciIgfHwgdHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgICAgcmV0dXJuIHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciKQogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtzY2hlbWEyfWA7CiAgICAgIH0KICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHt0b3BTY2hlbWFSZWZ9JHtzY2hlbWFQYXRofSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoa2V5d29yZCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYVJlZk9yVmFsID0gc2NoZW1hUmVmT3JWYWw7CiAgICBmdW5jdGlvbiB1bmVzY2FwZUZyYWdtZW50KHN0cjIpIHsKICAgICAgcmV0dXJuIHVuZXNjYXBlSnNvblBvaW50ZXIoZGVjb2RlVVJJQ29tcG9uZW50KHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSB1bmVzY2FwZUZyYWdtZW50OwogICAgZnVuY3Rpb24gZXNjYXBlRnJhZ21lbnQoc3RyMikgewogICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVzY2FwZUpzb25Qb2ludGVyKHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmVzY2FwZUZyYWdtZW50ID0gZXNjYXBlRnJhZ21lbnQ7CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUG9pbnRlcihzdHIyKSB7CiAgICAgIGlmICh0eXBlb2Ygc3RyMiA9PSAibnVtYmVyIikKICAgICAgICByZXR1cm4gYCR7c3RyMn1gOwogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgfQogICAgZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBlc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXIoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+Iik7CiAgICB9CiAgICBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gdW5lc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIGVhY2hJdGVtKHhzLCBmKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHhzKSkgewogICAgICAgIGZvciAoY29uc3QgeCBvZiB4cykKICAgICAgICAgIGYoeCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZih4cyk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVhY2hJdGVtID0gZWFjaEl0ZW07CiAgICBmdW5jdGlvbiBtYWtlTWVyZ2VFdmFsdWF0ZWQoeyBtZXJnZU5hbWVzLCBtZXJnZVRvTmFtZSwgbWVyZ2VWYWx1ZXMsIHJlc3VsdFRvTmFtZSB9KSB7CiAgICAgIHJldHVybiAoZ2VuLCBmcm9tLCB0bywgdG9OYW1lKSA9PiB7CiAgICAgICAgY29uc3QgcmVzID0gdG8gPT09IHZvaWQgMCA/IGZyb20gOiB0byBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKGZyb20gaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IG1lcmdlTmFtZXMoZ2VuLCBmcm9tLCB0bykgOiBtZXJnZVRvTmFtZShnZW4sIGZyb20sIHRvKSwgdG8pIDogZnJvbSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKG1lcmdlVG9OYW1lKGdlbiwgdG8sIGZyb20pLCBmcm9tKSA6IG1lcmdlVmFsdWVzKGZyb20sIHRvKTsKICAgICAgICByZXR1cm4gdG9OYW1lID09PSBjb2RlZ2VuXzEuTmFtZSAmJiAhKHJlcyBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSA/IHJlc3VsdFRvTmFtZShnZW4sIHJlcykgOiByZXM7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUV2YWx1YXRlZCA9IHsKICAgICAgcHJvcHM6IG1ha2VNZXJnZUV2YWx1YXRlZCh7CiAgICAgICAgbWVyZ2VOYW1lczogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlICYmICR7ZnJvbX0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZnJvbX0gPT09IHRydWVgLCAoKSA9PiBnZW4uYXNzaWduKHRvLCB0cnVlKSwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke3RvfSB8fCB7fWApLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QuYXNzaWduKCR7dG99LCAke2Zyb219KWApKTsKICAgICAgICB9KSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gewogICAgICAgICAgaWYgKGZyb20gPT09IHRydWUpIHsKICAgICAgICAgICAgZ2VuLmFzc2lnbih0bywgdHJ1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uYXNzaWduKHRvLCAoMCwgY29kZWdlbl8xLl8pYCR7dG99IHx8IHt9YCk7CiAgICAgICAgICAgIHNldEV2YWx1YXRlZChnZW4sIHRvLCBmcm9tKTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IHsgLi4uZnJvbSwgLi4udG8gfSwKICAgICAgICByZXN1bHRUb05hbWU6IGV2YWx1YXRlZFByb3BzVG9OYW1lCiAgICAgIH0pLAogICAgICBpdGVtczogbWFrZU1lcmdlRXZhbHVhdGVkKHsKICAgICAgICBtZXJnZU5hbWVzOiAoZ2VuLCBmcm9tLCB0bykgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHt0b30gIT09IHRydWUgJiYgJHtmcm9tfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke2Zyb219ID09PSB0cnVlID8gdHJ1ZSA6ICR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgZnJvbSA9PT0gdHJ1ZSA/IHRydWUgOiAoMCwgY29kZWdlbl8xLl8pYCR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IE1hdGgubWF4KGZyb20sIHRvKSwKICAgICAgICByZXN1bHRUb05hbWU6IChnZW4sIGl0ZW1zKSA9PiBnZW4udmFyKCJpdGVtcyIsIGl0ZW1zKQogICAgICB9KQogICAgfTsKICAgIGZ1bmN0aW9uIGV2YWx1YXRlZFByb3BzVG9OYW1lKGdlbiwgcHMpIHsKICAgICAgaWYgKHBzID09PSB0cnVlKQogICAgICAgIHJldHVybiBnZW4udmFyKCJwcm9wcyIsIHRydWUpOwogICAgICBjb25zdCBwcm9wcyA9IGdlbi52YXIoInByb3BzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICBpZiAocHMgIT09IHZvaWQgMCkKICAgICAgICBzZXRFdmFsdWF0ZWQoZ2VuLCBwcm9wcywgcHMpOwogICAgICByZXR1cm4gcHJvcHM7CiAgICB9CiAgICBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV2YWx1YXRlZFByb3BzVG9OYW1lOwogICAgZnVuY3Rpb24gc2V0RXZhbHVhdGVkKGdlbiwgcHJvcHMsIHBzKSB7CiAgICAgIE9iamVjdC5rZXlzKHBzKS5mb3JFYWNoKChwKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wc30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHApfWAsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNldEV2YWx1YXRlZCA9IHNldEV2YWx1YXRlZDsKICAgIHZhciBzbmlwcGV0cyA9IHt9OwogICAgZnVuY3Rpb24gdXNlRnVuYyhnZW4sIGYpIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIHJlZjogZiwKICAgICAgICBjb2RlOiBzbmlwcGV0c1tmLmNvZGVdIHx8IChzbmlwcGV0c1tmLmNvZGVdID0gbmV3IGNvZGVfMS5fQ29kZShmLmNvZGUpKQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzZUZ1bmMgPSB1c2VGdW5jOwogICAgdmFyIFR5cGU7CiAgICAoZnVuY3Rpb24oVHlwZTIpIHsKICAgICAgVHlwZTJbVHlwZTJbIk51bSJdID0gMF0gPSAiTnVtIjsKICAgICAgVHlwZTJbVHlwZTJbIlN0ciJdID0gMV0gPSAiU3RyIjsKICAgIH0pKFR5cGUgfHwgKGV4cG9ydHMyLlR5cGUgPSBUeXBlID0ge30pKTsKICAgIGZ1bmN0aW9uIGdldEVycm9yUGF0aChkYXRhUHJvcCwgZGF0YVByb3BUeXBlLCBqc1Byb3BlcnR5U3ludGF4KSB7CiAgICAgIGlmIChkYXRhUHJvcCBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSB7CiAgICAgICAgY29uc3QgaXNOdW1iZXIgPSBkYXRhUHJvcFR5cGUgPT09IFR5cGUuTnVtOwogICAgICAgIHJldHVybiBqc1Byb3BlcnR5U3ludGF4ID8gaXNOdW1iZXIgPyAoMCwgY29kZWdlbl8xLl8pYCJbIiArICR7ZGF0YVByb3B9ICsgIl0iYCA6ICgwLCBjb2RlZ2VuXzEuXylgIlsnIiArICR7ZGF0YVByb3B9ICsgIiddImAgOiBpc051bWJlciA/ICgwLCBjb2RlZ2VuXzEuXylgIi8iICsgJHtkYXRhUHJvcH1gIDogKDAsIGNvZGVnZW5fMS5fKWAiLyIgKyAke2RhdGFQcm9wfS5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1xcLy9nLCAifjEiKWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGpzUHJvcGVydHlTeW50YXggPyAoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCkudG9TdHJpbmcoKSA6ICIvIiArIGVzY2FwZUpzb25Qb2ludGVyKGRhdGFQcm9wKTsKICAgIH0KICAgIGV4cG9ydHMyLmdldEVycm9yUGF0aCA9IGdldEVycm9yUGF0aDsKICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0TW9kZShpdCwgbXNnLCBtb2RlID0gaXQub3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgaWYgKCFtb2RlKQogICAgICAgIHJldHVybjsKICAgICAgbXNnID0gYHN0cmljdCBtb2RlOiAke21zZ31gOwogICAgICBpZiAobW9kZSA9PT0gdHJ1ZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKICAgICAgaXQuc2VsZi5sb2dnZXIud2Fybihtc2cpOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gY2hlY2tTdHJpY3RNb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcwp2YXIgcmVxdWlyZV9uYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzID0gewogICAgICAvLyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGFyZ3VtZW50cwogICAgICBkYXRhOiBuZXcgY29kZWdlbl8xLk5hbWUoImRhdGEiKSwKICAgICAgLy8gZGF0YSBwYXNzZWQgdG8gdmFsaWRhdGlvbiBmdW5jdGlvbgogICAgICAvLyBhcmdzIHBhc3NlZCBmcm9tIHJlZmVyZW5jaW5nIHNjaGVtYQogICAgICB2YWxDeHQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgidmFsQ3h0IiksCiAgICAgIC8vIHZhbGlkYXRpb24vZGF0YSBjb250ZXh0IC0gc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBpdCBpcyBkZXN0cnVjdHVyZWQgdG8gdGhlIG5hbWVzIGJlbG93CiAgICAgIGluc3RhbmNlUGF0aDogbmV3IGNvZGVnZW5fMS5OYW1lKCJpbnN0YW5jZVBhdGgiKSwKICAgICAgcGFyZW50RGF0YTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhIiksCiAgICAgIHBhcmVudERhdGFQcm9wZXJ0eTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhUHJvcGVydHkiKSwKICAgICAgcm9vdERhdGE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicm9vdERhdGEiKSwKICAgICAgLy8gcm9vdCBkYXRhIC0gc2FtZSBhcyB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIGZpcnN0L3RvcCB2YWxpZGF0aW9uIGZ1bmN0aW9uCiAgICAgIGR5bmFtaWNBbmNob3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoImR5bmFtaWNBbmNob3JzIiksCiAgICAgIC8vIHVzZWQgdG8gc3VwcG9ydCByZWN1cnNpdmVSZWYgYW5kIGR5bmFtaWNSZWYKICAgICAgLy8gZnVuY3Rpb24gc2NvcGVkIHZhcmlhYmxlcwogICAgICB2RXJyb3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoInZFcnJvcnMiKSwKICAgICAgLy8gbnVsbCBvciBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9ycwogICAgICBlcnJvcnM6IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZXJyb3JzIiksCiAgICAgIC8vIGNvdW50ZXIgb2YgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgdGhpczogbmV3IGNvZGVnZW5fMS5OYW1lKCJ0aGlzIiksCiAgICAgIC8vICJnbG9iYWxzIgogICAgICBzZWxmOiBuZXcgY29kZWdlbl8xLk5hbWUoInNlbGYiKSwKICAgICAgc2NvcGU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NvcGUiKSwKICAgICAgLy8gSlREIHNlcmlhbGl6ZS9wYXJzZSBuYW1lIGZvciBKU09OIHN0cmluZyBhbmQgcG9zaXRpb24KICAgICAganNvbjogbmV3IGNvZGVnZW5fMS5OYW1lKCJqc29uIiksCiAgICAgIGpzb25Qb3M6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBvcyIpLAogICAgICBqc29uTGVuOiBuZXcgY29kZWdlbl8xLk5hbWUoImpzb25MZW4iKSwKICAgICAganNvblBhcnQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBhcnQiKQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBuYW1lczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvZXJyb3JzLmpzCnZhciByZXF1aXJlX2Vycm9ycyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9lcnJvcnMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4cG9ydHMyLnJlc2V0RXJyb3JzQ291bnQgPSBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gZXhwb3J0czIucmVwb3J0RXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgZXhwb3J0czIua2V5d29yZEVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IHBhc3MgIiR7a2V5d29yZH0iIGtleXdvcmQgdmFsaWRhdGlvbmAKICAgIH07CiAgICBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsga2V5d29yZCwgc2NoZW1hVHlwZSB9KSA9PiBzY2hlbWFUeXBlID8gKDAsIGNvZGVnZW5fMS5zdHIpYCIke2tleXdvcmR9IiBrZXl3b3JkIG11c3QgYmUgJHtzY2hlbWFUeXBlfSAoJGRhdGEpYCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAiJHtrZXl3b3JkfSIga2V5d29yZCBpcyBpbnZhbGlkICgkZGF0YSlgCiAgICB9OwogICAgZnVuY3Rpb24gcmVwb3J0RXJyb3IoY3h0LCBlcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciwgZXJyb3JQYXRocywgb3ZlcnJpZGVBbGxFcnJvcnMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBpZiAob3ZlcnJpZGVBbGxFcnJvcnMgIT09IG51bGwgJiYgb3ZlcnJpZGVBbGxFcnJvcnMgIT09IHZvaWQgMCA/IG92ZXJyaWRlQWxsRXJyb3JzIDogY29tcG9zaXRlUnVsZSB8fCBhbGxFcnJvcnMpIHsKICAgICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuRXJyb3JzKGl0LCAoMCwgY29kZWdlbl8xLl8pYFske2Vyck9ian1dYCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydEVycm9yID0gcmVwb3J0RXJyb3I7CiAgICBmdW5jdGlvbiByZXBvcnRFeHRyYUVycm9yKGN4dCwgZXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkRXJyb3IsIGVycm9yUGF0aHMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIGlmICghKGNvbXBvc2l0ZVJ1bGUgfHwgYWxsRXJyb3JzKSkgewogICAgICAgIHJldHVybkVycm9ycyhpdCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gcmVwb3J0RXh0cmFFcnJvcjsKICAgIGZ1bmN0aW9uIHJlc2V0RXJyb3JzQ291bnQoZ2VuLCBlcnJzQ291bnQpIHsKICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCBlcnJzQ291bnQpOwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfSAhPT0gbnVsbGAsICgpID0+IGdlbi5pZihlcnJzQ291bnQsICgpID0+IGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfS5sZW5ndGhgLCBlcnJzQ291bnQpLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCBudWxsKSkpOwogICAgfQogICAgZXhwb3J0czIucmVzZXRFcnJvcnNDb3VudCA9IHJlc2V0RXJyb3JzQ291bnQ7CiAgICBmdW5jdGlvbiBleHRlbmRFcnJvcnMoeyBnZW4sIGtleXdvcmQsIHNjaGVtYVZhbHVlLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0pIHsKICAgICAgaWYgKGVycnNDb3VudCA9PT0gdm9pZCAwKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5uYW1lKCJlcnIiKTsKICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgZXJyc0NvdW50LCBuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoaSkgPT4gewogICAgICAgIGdlbi5jb25zdChlcnIsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc31bJHtpfV1gKTsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uaW5zdGFuY2VQYXRoID09PSB1bmRlZmluZWRgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtlcnJ9Lmluc3RhbmNlUGF0aGAsICgwLCBjb2RlZ2VuXzEuc3RyQ29uY2F0KShuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCBpdC5lcnJvclBhdGgpKSk7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5zY2hlbWFQYXRoYCwgKDAsIGNvZGVnZW5fMS5zdHIpYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWApOwogICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHsKICAgICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uc2NoZW1hYCwgc2NoZW1hVmFsdWUpOwogICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5kYXRhYCwgZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4dGVuZEVycm9yczsKICAgIGZ1bmN0aW9uIGFkZEVycm9yKGdlbiwgZXJyT2JqKSB7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5jb25zdCgiZXJyIiwgZXJyT2JqKTsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGxgLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYFske2Vycn1dYCksICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ucHVzaCgke2Vycn0pYCk7CiAgICAgIGdlbi5jb2RlKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSsrYCk7CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5FcnJvcnMoaXQsIGVycnMpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSwgc2NoZW1hRW52IH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4udGhyb3coKDAsIGNvZGVnZW5fMS5fKWBuZXcgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KCR7ZXJyc30pYCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBlcnJzKTsKICAgICAgICBnZW4ucmV0dXJuKGZhbHNlKTsKICAgICAgfQogICAgfQogICAgdmFyIEUgPSB7CiAgICAgIGtleXdvcmQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgia2V5d29yZCIpLAogICAgICBzY2hlbWFQYXRoOiBuZXcgY29kZWdlbl8xLk5hbWUoInNjaGVtYVBhdGgiKSwKICAgICAgLy8gYWxzbyB1c2VkIGluIEpURCBlcnJvcnMKICAgICAgcGFyYW1zOiBuZXcgY29kZWdlbl8xLk5hbWUoInBhcmFtcyIpLAogICAgICBwcm9wZXJ0eU5hbWU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicHJvcGVydHlOYW1lIiksCiAgICAgIG1lc3NhZ2U6IG5ldyBjb2RlZ2VuXzEuTmFtZSgibWVzc2FnZSIpLAogICAgICBzY2hlbWE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NoZW1hIiksCiAgICAgIHBhcmVudFNjaGVtYTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnRTY2hlbWEiKQogICAgfTsKICAgIGZ1bmN0aW9uIGVycm9yT2JqZWN0Q29kZShjeHQsIGVycm9yLCBlcnJvclBhdGhzKSB7CiAgICAgIGNvbnN0IHsgY3JlYXRlRXJyb3JzIH0gPSBjeHQuaXQ7CiAgICAgIGlmIChjcmVhdGVFcnJvcnMgPT09IGZhbHNlKQogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYHt9YDsKICAgICAgcmV0dXJuIGVycm9yT2JqZWN0KGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JPYmplY3QoY3h0LCBlcnJvciwgZXJyb3JQYXRocyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBrZXlWYWx1ZXMgPSBbCiAgICAgICAgZXJyb3JJbnN0YW5jZVBhdGgoaXQsIGVycm9yUGF0aHMpLAogICAgICAgIGVycm9yU2NoZW1hUGF0aChjeHQsIGVycm9yUGF0aHMpCiAgICAgIF07CiAgICAgIGV4dHJhRXJyb3JQcm9wcyhjeHQsIGVycm9yLCBrZXlWYWx1ZXMpOwogICAgICByZXR1cm4gZ2VuLm9iamVjdCguLi5rZXlWYWx1ZXMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JJbnN0YW5jZVBhdGgoeyBlcnJvclBhdGggfSwgeyBpbnN0YW5jZVBhdGggfSkgewogICAgICBjb25zdCBpbnN0UGF0aCA9IGluc3RhbmNlUGF0aCA/ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShpbnN0YW5jZVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YCA6IGVycm9yUGF0aDsKICAgICAgcmV0dXJuIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgaW5zdFBhdGgpXTsKICAgIH0KICAgIGZ1bmN0aW9uIGVycm9yU2NoZW1hUGF0aCh7IGtleXdvcmQsIGl0OiB7IGVyclNjaGVtYVBhdGggfSB9LCB7IHNjaGVtYVBhdGgsIHBhcmVudFNjaGVtYSB9KSB7CiAgICAgIGxldCBzY2hQYXRoID0gcGFyZW50U2NoZW1hID8gZXJyU2NoZW1hUGF0aCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2VyclNjaGVtYVBhdGh9LyR7a2V5d29yZH1gOwogICAgICBpZiAoc2NoZW1hUGF0aCkgewogICAgICAgIHNjaFBhdGggPSAoMCwgY29kZWdlbl8xLnN0cilgJHtzY2hQYXRofSR7KDAsIHV0aWxfMS5nZXRFcnJvclBhdGgpKHNjaGVtYVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YDsKICAgICAgfQogICAgICByZXR1cm4gW0Uuc2NoZW1hUGF0aCwgc2NoUGF0aF07CiAgICB9CiAgICBmdW5jdGlvbiBleHRyYUVycm9yUHJvcHMoY3h0LCB7IHBhcmFtcywgbWVzc2FnZSB9LCBrZXlWYWx1ZXMpIHsKICAgICAgY29uc3QgeyBrZXl3b3JkLCBkYXRhLCBzY2hlbWFWYWx1ZSwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgeyBvcHRzLCBwcm9wZXJ0eU5hbWUsIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCB9ID0gaXQ7CiAgICAgIGtleVZhbHVlcy5wdXNoKFtFLmtleXdvcmQsIGtleXdvcmRdLCBbRS5wYXJhbXMsIHR5cGVvZiBwYXJhbXMgPT0gImZ1bmN0aW9uIiA/IHBhcmFtcyhjeHQpIDogcGFyYW1zIHx8ICgwLCBjb2RlZ2VuXzEuXylge31gXSk7CiAgICAgIGlmIChvcHRzLm1lc3NhZ2VzKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UubWVzc2FnZSwgdHlwZW9mIG1lc3NhZ2UgPT0gImZ1bmN0aW9uIiA/IG1lc3NhZ2UoY3h0KSA6IG1lc3NhZ2VdKTsKICAgICAgfQogICAgICBpZiAob3B0cy52ZXJib3NlKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0Uuc2NoZW1hLCBzY2hlbWFWYWx1ZV0sIFtFLnBhcmVudFNjaGVtYSwgKDAsIGNvZGVnZW5fMS5fKWAke3RvcFNjaGVtYVJlZn0ke3NjaGVtYVBhdGh9YF0sIFtuYW1lc18xLmRlZmF1bHQuZGF0YSwgZGF0YV0pOwogICAgICB9CiAgICAgIGlmIChwcm9wZXJ0eU5hbWUpCiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UucHJvcGVydHlOYW1lLCBwcm9wZXJ0eU5hbWVdKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYm9vbFNjaGVtYS5qcwp2YXIgcmVxdWlyZV9ib29sU2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2Jvb2xTY2hlbWEuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gZXhwb3J0czIudG9wQm9vbE9yRW1wdHlTY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgZXJyb3JzXzEgPSByZXF1aXJlX2Vycm9ycygpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgYm9vbEVycm9yID0gewogICAgICBtZXNzYWdlOiAiYm9vbGVhbiBzY2hlbWEgaXMgZmFsc2UiCiAgICB9OwogICAgZnVuY3Rpb24gdG9wQm9vbE9yRW1wdHlTY2hlbWEoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgdmFsaWRhdGVOYW1lIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCwgZmFsc2UpOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmIHNjaGVtYTIuJGFzeW5jID09PSB0cnVlKSB7CiAgICAgICAgZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBudWxsKTsKICAgICAgICBnZW4ucmV0dXJuKHRydWUpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi50b3BCb29sT3JFbXB0eVNjaGVtYSA9IHRvcEJvb2xPckVtcHR5U2NoZW1hOwogICAgZnVuY3Rpb24gYm9vbE9yRW1wdHlTY2hlbWEoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICBnZW4udmFyKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gYm9vbE9yRW1wdHlTY2hlbWE7CiAgICBmdW5jdGlvbiBmYWxzZVNjaGVtYUVycm9yKGl0LCBvdmVycmlkZUFsbEVycm9ycykgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSB9ID0gaXQ7CiAgICAgIGNvbnN0IGN4dCA9IHsKICAgICAgICBnZW4sCiAgICAgICAga2V5d29yZDogImZhbHNlIHNjaGVtYSIsCiAgICAgICAgZGF0YSwKICAgICAgICBzY2hlbWE6IGZhbHNlLAogICAgICAgIHNjaGVtYUNvZGU6IGZhbHNlLAogICAgICAgIHNjaGVtYVZhbHVlOiBmYWxzZSwKICAgICAgICBwYXJhbXM6IHt9LAogICAgICAgIGl0CiAgICAgIH07CiAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikoY3h0LCBib29sRXJyb3IsIHZvaWQgMCwgb3ZlcnJpZGVBbGxFcnJvcnMpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcwp2YXIgcmVxdWlyZV9ydWxlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0UnVsZXMgPSBleHBvcnRzMi5pc0pTT05UeXBlID0gdm9pZCAwOwogICAgdmFyIF9qc29uVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiaW50ZWdlciIsICJib29sZWFuIiwgIm51bGwiLCAib2JqZWN0IiwgImFycmF5Il07CiAgICB2YXIganNvblR5cGVzID0gbmV3IFNldChfanNvblR5cGVzKTsKICAgIGZ1bmN0aW9uIGlzSlNPTlR5cGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gInN0cmluZyIgJiYganNvblR5cGVzLmhhcyh4KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSlNPTlR5cGUgPSBpc0pTT05UeXBlOwogICAgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7CiAgICAgIGNvbnN0IGdyb3VwcyA9IHsKICAgICAgICBudW1iZXI6IHsgdHlwZTogIm51bWJlciIsIHJ1bGVzOiBbXSB9LAogICAgICAgIHN0cmluZzogeyB0eXBlOiAic3RyaW5nIiwgcnVsZXM6IFtdIH0sCiAgICAgICAgYXJyYXk6IHsgdHlwZTogImFycmF5IiwgcnVsZXM6IFtdIH0sCiAgICAgICAgb2JqZWN0OiB7IHR5cGU6ICJvYmplY3QiLCBydWxlczogW10gfQogICAgICB9OwogICAgICByZXR1cm4gewogICAgICAgIHR5cGVzOiB7IC4uLmdyb3VwcywgaW50ZWdlcjogdHJ1ZSwgYm9vbGVhbjogdHJ1ZSwgbnVsbDogdHJ1ZSB9LAogICAgICAgIHJ1bGVzOiBbeyBydWxlczogW10gfSwgZ3JvdXBzLm51bWJlciwgZ3JvdXBzLnN0cmluZywgZ3JvdXBzLmFycmF5LCBncm91cHMub2JqZWN0XSwKICAgICAgICBwb3N0OiB7IHJ1bGVzOiBbXSB9LAogICAgICAgIGFsbDoge30sCiAgICAgICAga2V5d29yZHM6IHt9CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5nZXRSdWxlcyA9IGdldFJ1bGVzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9hcHBsaWNhYmlsaXR5LmpzCnZhciByZXF1aXJlX2FwcGxpY2FiaWxpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYXBwbGljYWJpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNGb3JUeXBlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXNGb3JUeXBlKHsgc2NoZW1hOiBzY2hlbWEyLCBzZWxmOiBzZWxmMiB9LCB0eXBlMikgewogICAgICBjb25zdCBncm91cCA9IHNlbGYyLlJVTEVTLnR5cGVzW3R5cGUyXTsKICAgICAgcmV0dXJuIGdyb3VwICYmIGdyb3VwICE9PSB0cnVlICYmIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzRm9yVHlwZSA9IHNjaGVtYUhhc1J1bGVzRm9yVHlwZTsKICAgIGZ1bmN0aW9uIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKSB7CiAgICAgIHJldHVybiBncm91cC5ydWxlcy5zb21lKChydWxlKSA9PiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gc2hvdWxkVXNlR3JvdXA7CiAgICBmdW5jdGlvbiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpIHsKICAgICAgdmFyIF9hOwogICAgICByZXR1cm4gc2NoZW1hMltydWxlLmtleXdvcmRdICE9PSB2b2lkIDAgfHwgKChfYSA9IHJ1bGUuZGVmaW5pdGlvbi5pbXBsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc29tZSgoa3dkKSA9PiBzY2hlbWEyW2t3ZF0gIT09IHZvaWQgMCkpOwogICAgfQogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IHNob3VsZFVzZVJ1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzCnZhciByZXF1aXJlX2RhdGFUeXBlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSBleHBvcnRzMi5jaGVja0RhdGFUeXBlcyA9IGV4cG9ydHMyLmNoZWNrRGF0YVR5cGUgPSBleHBvcnRzMi5jb2VyY2VBbmRDaGVja0RhdGFUeXBlID0gZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZXhwb3J0czIuZ2V0U2NoZW1hVHlwZXMgPSBleHBvcnRzMi5EYXRhVHlwZSA9IHZvaWQgMDsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGFwcGxpY2FiaWxpdHlfMSA9IHJlcXVpcmVfYXBwbGljYWJpbGl0eSgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBEYXRhVHlwZTsKICAgIChmdW5jdGlvbihEYXRhVHlwZTIpIHsKICAgICAgRGF0YVR5cGUyW0RhdGFUeXBlMlsiQ29ycmVjdCJdID0gMF0gPSAiQ29ycmVjdCI7CiAgICAgIERhdGFUeXBlMltEYXRhVHlwZTJbIldyb25nIl0gPSAxXSA9ICJXcm9uZyI7CiAgICB9KShEYXRhVHlwZSB8fCAoZXhwb3J0czIuRGF0YVR5cGUgPSBEYXRhVHlwZSA9IHt9KSk7CiAgICBmdW5jdGlvbiBnZXRTY2hlbWFUeXBlcyhzY2hlbWEyKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gZ2V0SlNPTlR5cGVzKHNjaGVtYTIudHlwZSk7CiAgICAgIGNvbnN0IGhhc051bGwgPSB0eXBlcy5pbmNsdWRlcygibnVsbCIpOwogICAgICBpZiAoaGFzTnVsbCkgewogICAgICAgIGlmIChzY2hlbWEyLm51bGxhYmxlID09PSBmYWxzZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZTogbnVsbCBjb250cmFkaWN0cyBudWxsYWJsZTogZmFsc2UiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoIXR5cGVzLmxlbmd0aCAmJiBzY2hlbWEyLm51bGxhYmxlICE9PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignIm51bGxhYmxlIiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0ICJ0eXBlIicpOwogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1hMi5udWxsYWJsZSA9PT0gdHJ1ZSkKICAgICAgICAgIHR5cGVzLnB1c2goIm51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gdHlwZXM7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTY2hlbWFUeXBlcyA9IGdldFNjaGVtYVR5cGVzOwogICAgZnVuY3Rpb24gZ2V0SlNPTlR5cGVzKHRzKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheSh0cykgPyB0cyA6IHRzID8gW3RzXSA6IFtdOwogICAgICBpZiAodHlwZXMuZXZlcnkocnVsZXNfMS5pc0pTT05UeXBlKSkKICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBtdXN0IGJlIEpTT05UeXBlIG9yIEpTT05UeXBlW106ICIgKyB0eXBlcy5qb2luKCIsIikpOwogICAgfQogICAgZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZ2V0SlNPTlR5cGVzOwogICAgZnVuY3Rpb24gY29lcmNlQW5kQ2hlY2tEYXRhVHlwZShpdCwgdHlwZXMpIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBjb2VyY2VUbyA9IGNvZXJjZVRvVHlwZXModHlwZXMsIG9wdHMuY29lcmNlVHlwZXMpOwogICAgICBjb25zdCBjaGVja1R5cGVzID0gdHlwZXMubGVuZ3RoID4gMCAmJiAhKGNvZXJjZVRvLmxlbmd0aCA9PT0gMCAmJiB0eXBlcy5sZW5ndGggPT09IDEgJiYgKDAsIGFwcGxpY2FiaWxpdHlfMS5zY2hlbWFIYXNSdWxlc0ZvclR5cGUpKGl0LCB0eXBlc1swXSkpOwogICAgICBpZiAoY2hlY2tUeXBlcykgewogICAgICAgIGNvbnN0IHdyb25nVHlwZSA9IGNoZWNrRGF0YVR5cGVzKHR5cGVzLCBkYXRhLCBvcHRzLnN0cmljdE51bWJlcnMsIERhdGFUeXBlLldyb25nKTsKICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoKSA9PiB7CiAgICAgICAgICBpZiAoY29lcmNlVG8ubGVuZ3RoKQogICAgICAgICAgICBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoaXQpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBjaGVja1R5cGVzOwogICAgfQogICAgZXhwb3J0czIuY29lcmNlQW5kQ2hlY2tEYXRhVHlwZSA9IGNvZXJjZUFuZENoZWNrRGF0YVR5cGU7CiAgICB2YXIgQ09FUkNJQkxFID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWyJzdHJpbmciLCAibnVtYmVyIiwgImludGVnZXIiLCAiYm9vbGVhbiIsICJudWxsIl0pOwogICAgZnVuY3Rpb24gY29lcmNlVG9UeXBlcyh0eXBlcywgY29lcmNlVHlwZXMpIHsKICAgICAgcmV0dXJuIGNvZXJjZVR5cGVzID8gdHlwZXMuZmlsdGVyKCh0KSA9PiBDT0VSQ0lCTEUuaGFzKHQpIHx8IGNvZXJjZVR5cGVzID09PSAiYXJyYXkiICYmIHQgPT09ICJhcnJheSIpIDogW107CiAgICB9CiAgICBmdW5jdGlvbiBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBkYXRhVHlwZSA9IGdlbi5sZXQoImRhdGFUeXBlIiwgKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfWApOwogICAgICBjb25zdCBjb2VyY2VkID0gZ2VuLmxldCgiY29lcmNlZCIsICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgIGlmIChvcHRzLmNvZXJjZVR5cGVzID09PSAiYXJyYXkiKSB7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSgke2RhdGF9KSAmJiAke2RhdGF9Lmxlbmd0aCA9PSAxYCwgKCkgPT4gZ2VuLmFzc2lnbihkYXRhLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX1bMF1gKS5hc3NpZ24oZGF0YVR5cGUsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7ZGF0YX1gKS5pZihjaGVja0RhdGFUeXBlcyh0eXBlcywgZGF0YSwgb3B0cy5zdHJpY3ROdW1iZXJzKSwgKCkgPT4gZ2VuLmFzc2lnbihjb2VyY2VkLCBkYXRhKSkpOwogICAgICB9CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGApOwogICAgICBmb3IgKGNvbnN0IHQgb2YgY29lcmNlVG8pIHsKICAgICAgICBpZiAoQ09FUkNJQkxFLmhhcyh0KSB8fCB0ID09PSAiYXJyYXkiICYmIG9wdHMuY29lcmNlVHlwZXMgPT09ICJhcnJheSIpIHsKICAgICAgICAgIGNvZXJjZVNwZWNpZmljVHlwZSh0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZ2VuLmVsc2UoKTsKICAgICAgcmVwb3J0VHlwZUVycm9yKGl0KTsKICAgICAgZ2VuLmVuZElmKCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICBnZW4uYXNzaWduKGRhdGEsIGNvZXJjZWQpOwogICAgICAgIGFzc2lnblBhcmVudERhdGEoaXQsIGNvZXJjZWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY29lcmNlU3BlY2lmaWNUeXBlKHQpIHsKICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGFUeXBlfSA9PSAibnVtYmVyIiB8fCAke2RhdGFUeXBlfSA9PSAiYm9vbGVhbiJgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWAiIiArICR7ZGF0YX1gKS5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSBudWxsYCkuYXNzaWduKGNvZXJjZWQsICgwLCBjb2RlZ2VuXzEuXylgIiJgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09ICJib29sZWFuIiB8fCAke2RhdGF9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7ZGF0YVR5cGV9ID09ICJzdHJpbmciICYmICR7ZGF0YX0gJiYgJHtkYXRhfSA9PSArJHtkYXRhfSlgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWArJHtkYXRhfWApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbAogICAgICAgICAgICAgIHx8ICgke2RhdGFUeXBlfSA9PT0gInN0cmluZyIgJiYgJHtkYXRhfSAmJiAke2RhdGF9ID09ICske2RhdGF9ICYmICEoJHtkYXRhfSAlIDEpKWApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYCske2RhdGF9YCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSA9PT0gImZhbHNlIiB8fCAke2RhdGF9ID09PSAwIHx8ICR7ZGF0YX0gPT09IG51bGxgKS5hc3NpZ24oY29lcmNlZCwgZmFsc2UpLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICJ0cnVlIiB8fCAke2RhdGF9ID09PSAxYCkuYXNzaWduKGNvZXJjZWQsIHRydWUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICIiIHx8ICR7ZGF0YX0gPT09IDAgfHwgJHtkYXRhfSA9PT0gZmFsc2VgKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbihjb2VyY2VkLCBudWxsKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT09ICJzdHJpbmciIHx8ICR7ZGF0YVR5cGV9ID09PSAibnVtYmVyIgogICAgICAgICAgICAgIHx8ICR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbGApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYFske2RhdGF9XWApOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYXNzaWduUGFyZW50RGF0YSh7IGdlbiwgcGFyZW50RGF0YSwgcGFyZW50RGF0YVByb3BlcnR5IH0sIGV4cHIpIHsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtwYXJlbnREYXRhfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cGFyZW50RGF0YX1bJHtwYXJlbnREYXRhUHJvcGVydHl9XWAsIGV4cHIpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGUsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QgPSBEYXRhVHlwZS5Db3JyZWN0KSB7CiAgICAgIGNvbnN0IEVRID0gY29ycmVjdCA9PT0gRGF0YVR5cGUuQ29ycmVjdCA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuRVEgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLk5FUTsKICAgICAgbGV0IGNvbmQ7CiAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gJHtFUX0gbnVsbGA7CiAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSAmJiB0eXBlb2YgJHtkYXRhfSA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgIGNvbmQgPSBudW1Db25kKCgwLCBjb2RlZ2VuXzEuXylgISgke2RhdGF9ICUgMSkgJiYgIWlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY29uZCA9IG51bUNvbmQoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAke0VRfSAke2RhdGFUeXBlfWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvcnJlY3QgPT09IERhdGFUeXBlLkNvcnJlY3QgPyBjb25kIDogKDAsIGNvZGVnZW5fMS5ub3QpKGNvbmQpOwogICAgICBmdW5jdGlvbiBudW1Db25kKF9jb25kID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLmFuZCkoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSA9PSAibnVtYmVyImAsIF9jb25kLCBzdHJpY3ROdW1zID8gKDAsIGNvZGVnZW5fMS5fKWBpc0Zpbml0ZSgke2RhdGF9KWAgOiBjb2RlZ2VuXzEubmlsKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZSA9IGNoZWNrRGF0YVR5cGU7CiAgICBmdW5jdGlvbiBjaGVja0RhdGFUeXBlcyhkYXRhVHlwZXMsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpIHsKICAgICAgaWYgKGRhdGFUeXBlcy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gY2hlY2tEYXRhVHlwZShkYXRhVHlwZXNbMF0sIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpOwogICAgICB9CiAgICAgIGxldCBjb25kOwogICAgICBjb25zdCB0eXBlcyA9ICgwLCB1dGlsXzEudG9IYXNoKShkYXRhVHlwZXMpOwogICAgICBpZiAodHlwZXMuYXJyYXkgJiYgdHlwZXMub2JqZWN0KSB7CiAgICAgICAgY29uc3Qgbm90T2JqID0gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAhPSAib2JqZWN0ImA7CiAgICAgICAgY29uZCA9IHR5cGVzLm51bGwgPyBub3RPYmogOiAoMCwgY29kZWdlbl8xLl8pYCEke2RhdGF9IHx8ICR7bm90T2JqfWA7CiAgICAgICAgZGVsZXRlIHR5cGVzLm51bGw7CiAgICAgICAgZGVsZXRlIHR5cGVzLmFycmF5OwogICAgICAgIGRlbGV0ZSB0eXBlcy5vYmplY3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uZCA9IGNvZGVnZW5fMS5uaWw7CiAgICAgIH0KICAgICAgaWYgKHR5cGVzLm51bWJlcikKICAgICAgICBkZWxldGUgdHlwZXMuaW50ZWdlcjsKICAgICAgZm9yIChjb25zdCB0IGluIHR5cGVzKQogICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLmFuZCkoY29uZCwgY2hlY2tEYXRhVHlwZSh0LCBkYXRhLCBzdHJpY3ROdW1zLCBjb3JyZWN0KSk7CiAgICAgIHJldHVybiBjb25kOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZXMgPSBjaGVja0RhdGFUeXBlczsKICAgIHZhciB0eXBlRXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYTogc2NoZW1hMiB9KSA9PiBgbXVzdCBiZSAke3NjaGVtYTJ9YCwKICAgICAgcGFyYW1zOiAoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYVZhbHVlIH0pID0+IHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciID8gKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWEyfX1gIDogKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWFWYWx1ZX19YAogICAgfTsKICAgIGZ1bmN0aW9uIHJlcG9ydFR5cGVFcnJvcihpdCkgewogICAgICBjb25zdCBjeHQgPSBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KTsKICAgICAgKDAsIGVycm9yc18xLnJlcG9ydEVycm9yKShjeHQsIHR5cGVFcnJvcik7CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSByZXBvcnRUeXBlRXJyb3I7CiAgICBmdW5jdGlvbiBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBjb25zdCBzY2hlbWFDb2RlID0gKDAsIHV0aWxfMS5zY2hlbWFSZWZPclZhbCkoaXQsIHNjaGVtYTIsICJ0eXBlIik7CiAgICAgIHJldHVybiB7CiAgICAgICAgZ2VuLAogICAgICAgIGtleXdvcmQ6ICJ0eXBlIiwKICAgICAgICBkYXRhLAogICAgICAgIHNjaGVtYTogc2NoZW1hMi50eXBlLAogICAgICAgIHNjaGVtYUNvZGUsCiAgICAgICAgc2NoZW1hVmFsdWU6IHNjaGVtYUNvZGUsCiAgICAgICAgcGFyZW50U2NoZW1hOiBzY2hlbWEyLAogICAgICAgIHBhcmFtczoge30sCiAgICAgICAgaXQKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMKdmFyIHJlcXVpcmVfZGVmYXVsdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFzc2lnbkRlZmF1bHRzID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdHMoaXQsIHR5KSB7CiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgaXRlbXMgfSA9IGl0LnNjaGVtYTsKICAgICAgaWYgKHR5ID09PSAib2JqZWN0IiAmJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcGVydGllcykgewogICAgICAgICAgYXNzaWduRGVmYXVsdChpdCwga2V5LCBwcm9wZXJ0aWVzW2tleV0uZGVmYXVsdCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHR5ID09PSAiYXJyYXkiICYmIEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgaXRlbXMuZm9yRWFjaCgoc2NoLCBpKSA9PiBhc3NpZ25EZWZhdWx0KGl0LCBpLCBzY2guZGVmYXVsdCkpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hc3NpZ25EZWZhdWx0cyA9IGFzc2lnbkRlZmF1bHRzOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdChpdCwgcHJvcCwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBjb21wb3NpdGVSdWxlLCBkYXRhLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgY2hpbGREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wKX1gOwogICAgICBpZiAoY29tcG9zaXRlUnVsZSkgewogICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYGRlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICR7Y2hpbGREYXRhfWApOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NoaWxkRGF0YX0gPT09IHVuZGVmaW5lZGA7CiAgICAgIGlmIChvcHRzLnVzZURlZmF1bHRzID09PSAiZW1wdHkiKSB7CiAgICAgICAgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NvbmRpdGlvbn0gfHwgJHtjaGlsZERhdGF9ID09PSBudWxsIHx8ICR7Y2hpbGREYXRhfSA9PT0gIiJgOwogICAgICB9CiAgICAgIGdlbi5pZihjb25kaXRpb24sICgwLCBjb2RlZ2VuXzEuXylgJHtjaGlsZERhdGF9ID0gJHsoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkoZGVmYXVsdFZhbHVlKX1gKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb2RlLmpzCnZhciByZXF1aXJlX2NvZGUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29kZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVVbmlvbiA9IGV4cG9ydHMyLnZhbGlkYXRlQXJyYXkgPSBleHBvcnRzMi51c2VQYXR0ZXJuID0gZXhwb3J0czIuY2FsbFZhbGlkYXRlQ29kZSA9IGV4cG9ydHMyLnNjaGVtYVByb3BlcnRpZXMgPSBleHBvcnRzMi5hbGxTY2hlbWFQcm9wZXJ0aWVzID0gZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IGV4cG9ydHMyLnByb3BlcnR5SW5EYXRhID0gZXhwb3J0czIuaXNPd25Qcm9wZXJ0eSA9IGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gZXhwb3J0czIucmVwb3J0TWlzc2luZ1Byb3AgPSBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gY2hlY2tSZXBvcnRNaXNzaW5nUHJvcChjeHQsIHByb3ApIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGdlbi5pZihub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gewogICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6ICgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wfWAgfSwgdHJ1ZSk7CiAgICAgICAgY3h0LmVycm9yKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IGNoZWNrUmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBjaGVja01pc3NpbmdQcm9wKHsgZ2VuLCBkYXRhLCBpdDogeyBvcHRzIH0gfSwgcHJvcGVydGllcywgbWlzc2luZykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5vcikoLi4ucHJvcGVydGllcy5tYXAoKHByb3ApID0+ICgwLCBjb2RlZ2VuXzEuYW5kKShub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKDAsIGNvZGVnZW5fMS5fKWAke21pc3Npbmd9ID0gJHtwcm9wfWApKSk7CiAgICB9CiAgICBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gY2hlY2tNaXNzaW5nUHJvcDsKICAgIGZ1bmN0aW9uIHJlcG9ydE1pc3NpbmdQcm9wKGN4dCwgbWlzc2luZykgewogICAgICBjeHQuc2V0UGFyYW1zKHsgbWlzc2luZ1Byb3BlcnR5OiBtaXNzaW5nIH0sIHRydWUpOwogICAgICBjeHQuZXJyb3IoKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydE1pc3NpbmdQcm9wID0gcmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBoYXNQcm9wRnVuYyhnZW4pIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QKICAgICAgICByZWY6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5YAogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gaGFzUHJvcEZ1bmM7CiAgICBmdW5jdGlvbiBpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpIHsKICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtoYXNQcm9wRnVuYyhnZW4pfS5jYWxsKCR7ZGF0YX0sICR7cHJvcGVydHl9KWA7CiAgICB9CiAgICBleHBvcnRzMi5pc093blByb3BlcnR5ID0gaXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIHByb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcGVydHksIG93blByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkocHJvcGVydHkpfSAhPT0gdW5kZWZpbmVkYDsKICAgICAgcmV0dXJuIG93blByb3BlcnRpZXMgPyAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpfWAgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIucHJvcGVydHlJbkRhdGEgPSBwcm9wZXJ0eUluRGF0YTsKICAgIGZ1bmN0aW9uIG5vUHJvcGVydHlJbkRhdGEoZ2VuLCBkYXRhLCBwcm9wZXJ0eSwgb3duUHJvcGVydGllcykgewogICAgICBjb25zdCBjb25kID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wZXJ0eSl9ID09PSB1bmRlZmluZWRgOwogICAgICByZXR1cm4gb3duUHJvcGVydGllcyA/ICgwLCBjb2RlZ2VuXzEub3IpKGNvbmQsICgwLCBjb2RlZ2VuXzEubm90KShpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpKSkgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IG5vUHJvcGVydHlJbkRhdGE7CiAgICBmdW5jdGlvbiBhbGxTY2hlbWFQcm9wZXJ0aWVzKHNjaGVtYU1hcCkgewogICAgICByZXR1cm4gc2NoZW1hTWFwID8gT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+IHAgIT09ICJfX3Byb3RvX18iKSA6IFtdOwogICAgfQogICAgZXhwb3J0czIuYWxsU2NoZW1hUHJvcGVydGllcyA9IGFsbFNjaGVtYVByb3BlcnRpZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFQcm9wZXJ0aWVzKGl0LCBzY2hlbWFNYXApIHsKICAgICAgcmV0dXJuIGFsbFNjaGVtYVByb3BlcnRpZXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+ICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hTWFwW3BdKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlbWFQcm9wZXJ0aWVzID0gc2NoZW1hUHJvcGVydGllczsKICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZUNvZGUoeyBzY2hlbWFDb2RlLCBkYXRhLCBpdDogeyBnZW4sIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCwgZXJyb3JQYXRoIH0sIGl0IH0sIGZ1bmMsIGNvbnRleHQsIHBhc3NTY2hlbWEpIHsKICAgICAgY29uc3QgZGF0YUFuZFNjaGVtYSA9IHBhc3NTY2hlbWEgPyAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0sICR7ZGF0YX0sICR7dG9wU2NoZW1hUmVmfSR7c2NoZW1hUGF0aH1gIDogZGF0YTsKICAgICAgY29uc3QgdmFsQ3h0ID0gWwogICAgICAgIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgZXJyb3JQYXRoKV0sCiAgICAgICAgW25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhLCBpdC5wYXJlbnREYXRhXSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgaXQucGFyZW50RGF0YVByb3BlcnR5XSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhLCBuYW1lc18xLmRlZmF1bHQucm9vdERhdGFdCiAgICAgIF07CiAgICAgIGlmIChpdC5vcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgdmFsQ3h0LnB1c2goW25hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgbmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzXSk7CiAgICAgIGNvbnN0IGFyZ3MgPSAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YUFuZFNjaGVtYX0sICR7Z2VuLm9iamVjdCguLi52YWxDeHQpfWA7CiAgICAgIHJldHVybiBjb250ZXh0ICE9PSBjb2RlZ2VuXzEubmlsID8gKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9LmNhbGwoJHtjb250ZXh0fSwgJHthcmdzfSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9KCR7YXJnc30pYDsKICAgIH0KICAgIGV4cG9ydHMyLmNhbGxWYWxpZGF0ZUNvZGUgPSBjYWxsVmFsaWRhdGVDb2RlOwogICAgdmFyIG5ld1JlZ0V4cCA9ICgwLCBjb2RlZ2VuXzEuXylgbmV3IFJlZ0V4cGA7CiAgICBmdW5jdGlvbiB1c2VQYXR0ZXJuKHsgZ2VuLCBpdDogeyBvcHRzIH0gfSwgcGF0dGVybikgewogICAgICBjb25zdCB1ID0gb3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgIGNvbnN0IHsgcmVnRXhwIH0gPSBvcHRzLmNvZGU7CiAgICAgIGNvbnN0IHJ4ID0gcmVnRXhwKHBhdHRlcm4sIHUpOwogICAgICByZXR1cm4gZ2VuLnNjb3BlVmFsdWUoInBhdHRlcm4iLCB7CiAgICAgICAga2V5OiByeC50b1N0cmluZygpLAogICAgICAgIHJlZjogcngsCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWAke3JlZ0V4cC5jb2RlID09PSAibmV3IFJlZ0V4cCIgPyBuZXdSZWdFeHAgOiAoMCwgdXRpbF8yLnVzZUZ1bmMpKGdlbiwgcmVnRXhwKX0oJHtwYXR0ZXJufSwgJHt1fSlgCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudXNlUGF0dGVybiA9IHVzZVBhdHRlcm47CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUFycmF5KGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgaWYgKGl0LmFsbEVycm9ycykgewogICAgICAgIGNvbnN0IHZhbGlkQXJyID0gZ2VuLmxldCgidmFsaWQiLCB0cnVlKTsKICAgICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5hc3NpZ24odmFsaWRBcnIsIGZhbHNlKSk7CiAgICAgICAgcmV0dXJuIHZhbGlkQXJyOwogICAgICB9CiAgICAgIGdlbi52YXIodmFsaWQsIHRydWUpOwogICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5icmVhaygpKTsKICAgICAgcmV0dXJuIHZhbGlkOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUl0ZW1zKG5vdFZhbGlkKSB7CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQsCiAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLk51bQogICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksIG5vdFZhbGlkKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVBcnJheSA9IHZhbGlkYXRlQXJyYXk7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaW9uKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgY29uc3QgYWx3YXlzVmFsaWQgPSBzY2hlbWEyLnNvbWUoKHNjaCkgPT4gKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpOwogICAgICBpZiAoYWx3YXlzVmFsaWQgJiYgIWl0Lm9wdHMudW5ldmFsdWF0ZWQpCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHNjaGVtYTIuZm9yRWFjaCgoX3NjaCwgaSkgPT4gewogICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAga2V5d29yZCwKICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHt2YWxpZH0gfHwgJHtzY2hWYWxpZH1gKTsKICAgICAgICBjb25zdCBtZXJnZWQgPSBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHNjaFZhbGlkKTsKICAgICAgICBpZiAoIW1lcmdlZCkKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpKTsKICAgICAgfSkpOwogICAgICBjeHQucmVzdWx0KHZhbGlkLCAoKSA9PiBjeHQucmVzZXQoKSwgKCkgPT4gY3h0LmVycm9yKHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlVW5pb24gPSB2YWxpZGF0ZVVuaW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9rZXl3b3JkLmpzCnZhciByZXF1aXJlX2tleXdvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUva2V5d29yZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVLZXl3b3JkVXNhZ2UgPSBleHBvcnRzMi52YWxpZFNjaGVtYVR5cGUgPSBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIG1hY3JvS2V5d29yZENvZGUoY3h0LCBkZWYpIHsKICAgICAgY29uc3QgeyBnZW4sIGtleXdvcmQsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBtYWNyb1NjaGVtYSA9IGRlZi5tYWNyby5jYWxsKGl0LnNlbGYsIHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpOwogICAgICBjb25zdCBzY2hlbWFSZWYgPSB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgbWFjcm9TY2hlbWEpOwogICAgICBpZiAoaXQub3B0cy52YWxpZGF0ZVNjaGVtYSAhPT0gZmFsc2UpCiAgICAgICAgaXQuc2VsZi52YWxpZGF0ZVNjaGVtYShtYWNyb1NjaGVtYSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgIGN4dC5zdWJzY2hlbWEoewogICAgICAgIHNjaGVtYTogbWFjcm9TY2hlbWEsCiAgICAgICAgc2NoZW1hUGF0aDogY29kZWdlbl8xLm5pbCwKICAgICAgICBlcnJTY2hlbWFQYXRoOiBgJHtpdC5lcnJTY2hlbWFQYXRofS8ke2tleXdvcmR9YCwKICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaGVtYVJlZiwKICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgIH0sIHZhbGlkKTsKICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICB9CiAgICBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gbWFjcm9LZXl3b3JkQ29kZTsKICAgIGZ1bmN0aW9uIGZ1bmNLZXl3b3JkQ29kZShjeHQsIGRlZikgewogICAgICB2YXIgX2E7CiAgICAgIGNvbnN0IHsgZ2VuLCBrZXl3b3JkLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgJGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGNoZWNrQXN5bmNLZXl3b3JkKGl0LCBkZWYpOwogICAgICBjb25zdCB2YWxpZGF0ZSA9ICEkZGF0YSAmJiBkZWYuY29tcGlsZSA/IGRlZi5jb21waWxlLmNhbGwoaXQuc2VsZiwgc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCkgOiBkZWYudmFsaWRhdGU7CiAgICAgIGNvbnN0IHZhbGlkYXRlUmVmID0gdXNlS2V5d29yZChnZW4sIGtleXdvcmQsIHZhbGlkYXRlKTsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgdmFsaWRhdGVLZXl3b3JkKTsKICAgICAgY3h0Lm9rKChfYSA9IGRlZi52YWxpZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsaWQpOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUtleXdvcmQoKSB7CiAgICAgICAgaWYgKGRlZi5lcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICBhc3NpZ25WYWxpZCgpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBydWxlRXJycyA9IGRlZi5hc3luYyA/IHZhbGlkYXRlQXN5bmMoKSA6IHZhbGlkYXRlU3luYygpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gYWRkRXJycyhjeHQsIHJ1bGVFcnJzKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlQXN5bmMoKSB7CiAgICAgICAgY29uc3QgcnVsZUVycnMgPSBnZW4ubGV0KCJydWxlRXJycyIsIG51bGwpOwogICAgICAgIGdlbi50cnkoKCkgPT4gYXNzaWduVmFsaWQoKDAsIGNvZGVnZW5fMS5fKWBhd2FpdCBgKSwgKGUpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZX0gaW5zdGFuY2VvZiAke2l0LlZhbGlkYXRpb25FcnJvcn1gLCAoKSA9PiBnZW4uYXNzaWduKHJ1bGVFcnJzLCAoMCwgY29kZWdlbl8xLl8pYCR7ZX0uZXJyb3JzYCksICgpID0+IGdlbi50aHJvdyhlKSkpOwogICAgICAgIHJldHVybiBydWxlRXJyczsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZVN5bmMoKSB7CiAgICAgICAgY29uc3QgdmFsaWRhdGVFcnJzID0gKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlUmVmfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWRhdGVFcnJzLCBudWxsKTsKICAgICAgICBhc3NpZ25WYWxpZChjb2RlZ2VuXzEubmlsKTsKICAgICAgICByZXR1cm4gdmFsaWRhdGVFcnJzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFzc2lnblZhbGlkKF9hd2FpdCA9IGRlZi5hc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgYXdhaXQgYCA6IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBjb25zdCBwYXNzQ3h0ID0gaXQub3B0cy5wYXNzQ29udGV4dCA/IG5hbWVzXzEuZGVmYXVsdC50aGlzIDogbmFtZXNfMS5kZWZhdWx0LnNlbGY7CiAgICAgICAgY29uc3QgcGFzc1NjaGVtYSA9ICEoImNvbXBpbGUiIGluIGRlZiAmJiAhJGRhdGEgfHwgZGVmLnNjaGVtYSA9PT0gZmFsc2UpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHtfYXdhaXR9JHsoMCwgY29kZV8xLmNhbGxWYWxpZGF0ZUNvZGUpKGN4dCwgdmFsaWRhdGVSZWYsIHBhc3NDeHQsIHBhc3NTY2hlbWEpfWAsIGRlZi5tb2RpZnlpbmcpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcG9ydEVycnMoZXJyb3JzKSB7CiAgICAgICAgdmFyIF9hMjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKChfYTIgPSBkZWYudmFsaWQpICE9PSBudWxsICYmIF9hMiAhPT0gdm9pZCAwID8gX2EyIDogdmFsaWQpLCBlcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBmdW5jS2V5d29yZENvZGU7CiAgICBmdW5jdGlvbiBtb2RpZnlEYXRhKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwgaXQgfSA9IGN4dDsKICAgICAgZ2VuLmlmKGl0LnBhcmVudERhdGEsICgpID0+IGdlbi5hc3NpZ24oZGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LnBhcmVudERhdGF9WyR7aXQucGFyZW50RGF0YVByb3BlcnR5fV1gKSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFcnJzKGN4dCwgZXJycykgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWBBcnJheS5pc0FycmF5KCR7ZXJyc30pYCwgKCkgPT4gewogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCkuYXNzaWduKG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ubGVuZ3RoYCk7CiAgICAgICAgKDAsIGVycm9yc18xLmV4dGVuZEVycm9ycykoY3h0KTsKICAgICAgfSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY0tleXdvcmQoeyBzY2hlbWFFbnYgfSwgZGVmKSB7CiAgICAgIGlmIChkZWYuYXN5bmMgJiYgIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhc3luYyBrZXl3b3JkIGluIHN5bmMgc2NoZW1hIik7CiAgICB9CiAgICBmdW5jdGlvbiB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgcmVzdWx0KSB7CiAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGtleXdvcmQgIiR7a2V5d29yZH0iIGZhaWxlZCB0byBjb21waWxlYCk7CiAgICAgIHJldHVybiBnZW4uc2NvcGVWYWx1ZSgia2V5d29yZCIsIHR5cGVvZiByZXN1bHQgPT0gImZ1bmN0aW9uIiA/IHsgcmVmOiByZXN1bHQgfSA6IHsgcmVmOiByZXN1bHQsIGNvZGU6ICgwLCBjb2RlZ2VuXzEuc3RyaW5naWZ5KShyZXN1bHQpIH0pOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRTY2hlbWFUeXBlKHNjaGVtYTIsIHNjaGVtYVR5cGUsIGFsbG93VW5kZWZpbmVkID0gZmFsc2UpIHsKICAgICAgcmV0dXJuICFzY2hlbWFUeXBlLmxlbmd0aCB8fCBzY2hlbWFUeXBlLnNvbWUoKHN0KSA9PiBzdCA9PT0gImFycmF5IiA/IEFycmF5LmlzQXJyYXkoc2NoZW1hMikgOiBzdCA9PT0gIm9iamVjdCIgPyBzY2hlbWEyICYmIHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHNjaGVtYTIpIDogdHlwZW9mIHNjaGVtYTIgPT0gc3QgfHwgYWxsb3dVbmRlZmluZWQgJiYgdHlwZW9mIHNjaGVtYTIgPT0gInVuZGVmaW5lZCIpOwogICAgfQogICAgZXhwb3J0czIudmFsaWRTY2hlbWFUeXBlID0gdmFsaWRTY2hlbWFUeXBlOwogICAgZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkVXNhZ2UoeyBzY2hlbWE6IHNjaGVtYTIsIG9wdHMsIHNlbGY6IHNlbGYyLCBlcnJTY2hlbWFQYXRoIH0sIGRlZiwga2V5d29yZCkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShkZWYua2V5d29yZCkgPyAhZGVmLmtleXdvcmQuaW5jbHVkZXMoa2V5d29yZCkgOiBkZWYua2V5d29yZCAhPT0ga2V5d29yZCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIH0KICAgICAgY29uc3QgZGVwcyA9IGRlZi5kZXBlbmRlbmNpZXM7CiAgICAgIGlmIChkZXBzID09PSBudWxsIHx8IGRlcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlcHMuc29tZSgoa3dkKSA9PiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYTIsIGt3ZCkpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJlbnQgc2NoZW1hIG11c3QgaGF2ZSBkZXBlbmRlbmNpZXMgb2YgJHtrZXl3b3JkfTogJHtkZXBzLmpvaW4oIiwiKX1gKTsKICAgICAgfQogICAgICBpZiAoZGVmLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgY29uc3QgdmFsaWQgPSBkZWYudmFsaWRhdGVTY2hlbWEoc2NoZW1hMltrZXl3b3JkXSk7CiAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgY29uc3QgbXNnID0gYGtleXdvcmQgIiR7a2V5d29yZH0iIHZhbHVlIGlzIGludmFsaWQgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSI6IGAgKyBzZWxmMi5lcnJvcnNUZXh0KGRlZi52YWxpZGF0ZVNjaGVtYS5lcnJvcnMpOwogICAgICAgICAgaWYgKG9wdHMudmFsaWRhdGVTY2hlbWEgPT09ICJsb2ciKQogICAgICAgICAgICBzZWxmMi5sb2dnZXIuZXJyb3IobXNnKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi52YWxpZGF0ZUtleXdvcmRVc2FnZSA9IHZhbGlkYXRlS2V5d29yZFVzYWdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9zdWJzY2hlbWEuanMKdmFyIHJlcXVpcmVfc3Vic2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL3N1YnNjaGVtYS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4cG9ydHMyLmV4dGVuZFN1YnNjaGVtYURhdGEgPSBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICBmdW5jdGlvbiBnZXRTdWJzY2hlbWEoaXQsIHsga2V5d29yZCwgc2NoZW1hUHJvcCwgc2NoZW1hOiBzY2hlbWEyLCBzY2hlbWFQYXRoLCBlcnJTY2hlbWFQYXRoLCB0b3BTY2hlbWFSZWYgfSkgewogICAgICBpZiAoa2V5d29yZCAhPT0gdm9pZCAwICYmIHNjaGVtYTIgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAia2V5d29yZCIgYW5kICJzY2hlbWEiIHBhc3NlZCwgb25seSBvbmUgYWxsb3dlZCcpOwogICAgICB9CiAgICAgIGlmIChrZXl3b3JkICE9PSB2b2lkIDApIHsKICAgICAgICBjb25zdCBzY2ggPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgcmV0dXJuIHNjaGVtYVByb3AgPT09IHZvaWQgMCA/IHsKICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgc2NoZW1hUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAke2l0LnNjaGVtYVBhdGh9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShrZXl3b3JkKX1gLAogICAgICAgICAgZXJyU2NoZW1hUGF0aDogYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWAKICAgICAgICB9IDogewogICAgICAgICAgc2NoZW1hOiBzY2hbc2NoZW1hUHJvcF0sCiAgICAgICAgICBzY2hlbWFQYXRoOiAoMCwgY29kZWdlbl8xLl8pYCR7aXQuc2NoZW1hUGF0aH0keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKGtleXdvcmQpfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoc2NoZW1hUHJvcCl9YCwKICAgICAgICAgIGVyclNjaGVtYVBhdGg6IGAke2l0LmVyclNjaGVtYVBhdGh9LyR7a2V5d29yZH0vJHsoMCwgdXRpbF8xLmVzY2FwZUZyYWdtZW50KShzY2hlbWFQcm9wKX1gCiAgICAgICAgfTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHNjaGVtYVBhdGggPT09IHZvaWQgMCB8fCBlcnJTY2hlbWFQYXRoID09PSB2b2lkIDAgfHwgdG9wU2NoZW1hUmVmID09PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignInNjaGVtYVBhdGgiLCAiZXJyU2NoZW1hUGF0aCIgYW5kICJ0b3BTY2hlbWFSZWYiIGFyZSByZXF1aXJlZCB3aXRoICJzY2hlbWEiJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzY2hlbWE6IHNjaGVtYTIsCiAgICAgICAgICBzY2hlbWFQYXRoLAogICAgICAgICAgdG9wU2NoZW1hUmVmLAogICAgICAgICAgZXJyU2NoZW1hUGF0aAogICAgICAgIH07CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKCdlaXRoZXIgImtleXdvcmQiIG9yICJzY2hlbWEiIG11c3QgYmUgcGFzc2VkJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSBnZXRTdWJzY2hlbWE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFEYXRhKHN1YnNjaGVtYSwgaXQsIHsgZGF0YVByb3AsIGRhdGFQcm9wVHlwZTogZHBUeXBlLCBkYXRhLCBkYXRhVHlwZXMsIHByb3BlcnR5TmFtZSB9KSB7CiAgICAgIGlmIChkYXRhICE9PSB2b2lkIDAgJiYgZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAiZGF0YSIgYW5kICJkYXRhUHJvcCIgcGFzc2VkLCBvbmx5IG9uZSBhbGxvd2VkJyk7CiAgICAgIH0KICAgICAgY29uc3QgeyBnZW4gfSA9IGl0OwogICAgICBpZiAoZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHsgZXJyb3JQYXRoLCBkYXRhUGF0aEFyciwgb3B0cyB9ID0gaXQ7CiAgICAgICAgY29uc3QgbmV4dERhdGEgPSBnZW4ubGV0KCJkYXRhIiwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LmRhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCl9YCwgdHJ1ZSk7CiAgICAgICAgZGF0YUNvbnRleHRQcm9wcyhuZXh0RGF0YSk7CiAgICAgICAgc3Vic2NoZW1hLmVycm9yUGF0aCA9ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShkYXRhUHJvcCwgZHBUeXBlLCBvcHRzLmpzUHJvcGVydHlTeW50YXgpfWA7CiAgICAgICAgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eSA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhUHJvcH1gOwogICAgICAgIHN1YnNjaGVtYS5kYXRhUGF0aEFyciA9IFsuLi5kYXRhUGF0aEFyciwgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eV07CiAgICAgIH0KICAgICAgaWYgKGRhdGEgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IG5leHREYXRhID0gZGF0YSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gZGF0YSA6IGdlbi5sZXQoImRhdGEiLCBkYXRhLCB0cnVlKTsKICAgICAgICBkYXRhQ29udGV4dFByb3BzKG5leHREYXRhKTsKICAgICAgICBpZiAocHJvcGVydHlOYW1lICE9PSB2b2lkIDApCiAgICAgICAgICBzdWJzY2hlbWEucHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICB9CiAgICAgIGlmIChkYXRhVHlwZXMpCiAgICAgICAgc3Vic2NoZW1hLmRhdGFUeXBlcyA9IGRhdGFUeXBlczsKICAgICAgZnVuY3Rpb24gZGF0YUNvbnRleHRQcm9wcyhfbmV4dERhdGEpIHsKICAgICAgICBzdWJzY2hlbWEuZGF0YSA9IF9uZXh0RGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMTsKICAgICAgICBzdWJzY2hlbWEuZGF0YVR5cGVzID0gW107CiAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHN1YnNjaGVtYS5wYXJlbnREYXRhID0gaXQuZGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YU5hbWVzID0gWy4uLml0LmRhdGFOYW1lcywgX25leHREYXRhXTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hRGF0YSA9IGV4dGVuZFN1YnNjaGVtYURhdGE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFNb2RlKHN1YnNjaGVtYSwgeyBqdGREaXNjcmltaW5hdG9yLCBqdGRNZXRhZGF0YSwgY29tcG9zaXRlUnVsZSwgY3JlYXRlRXJyb3JzLCBhbGxFcnJvcnMgfSkgewogICAgICBpZiAoY29tcG9zaXRlUnVsZSAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jb21wb3NpdGVSdWxlID0gY29tcG9zaXRlUnVsZTsKICAgICAgaWYgKGNyZWF0ZUVycm9ycyAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jcmVhdGVFcnJvcnMgPSBjcmVhdGVFcnJvcnM7CiAgICAgIGlmIChhbGxFcnJvcnMgIT09IHZvaWQgMCkKICAgICAgICBzdWJzY2hlbWEuYWxsRXJyb3JzID0gYWxsRXJyb3JzOwogICAgICBzdWJzY2hlbWEuanRkRGlzY3JpbWluYXRvciA9IGp0ZERpc2NyaW1pbmF0b3I7CiAgICAgIHN1YnNjaGVtYS5qdGRNZXRhZGF0YSA9IGp0ZE1ldGFkYXRhOwogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4dGVuZFN1YnNjaGVtYU1vZGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtZGVlcC1lcXVhbC1ucG0tMy4xLjMtNzkwZWRjZmNmNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcwp2YXIgcmVxdWlyZV9mYXN0X2RlZXBfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC1kZWVwLWVxdWFsLW5wbS0zLjEuMy03OTBlZGNmY2Y1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikgewogICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7CiAgICAgIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT0gIm9iamVjdCIgJiYgdHlwZW9mIGIgPT0gIm9iamVjdCIpIHsKICAgICAgICBpZiAoYS5jb25zdHJ1Y3RvciAhPT0gYi5jb25zdHJ1Y3RvcikgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBsZW5ndGgsIGksIGtleXM7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICAgIGxlbmd0aCA9IGEubGVuZ3RoOwogICAgICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFnczsKICAgICAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7CiAgICAgICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTsKICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7CiAgICAgICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkgewogICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07CiAgICAgICAgICBpZiAoIWVxdWFsKGFba2V5XSwgYltrZXldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbi1zY2hlbWEtdHJhdmVyc2UtbnBtLTEuMC4wLWZiMzY4NGY0ZjAtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS10cmF2ZXJzZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9qc29uX3NjaGVtYV90cmF2ZXJzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uLXNjaGVtYS10cmF2ZXJzZS1ucG0tMS4wLjAtZmIzNjg0ZjRmMC0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLXRyYXZlcnNlL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHRyYXZlcnNlID0gbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc2NoZW1hMiwgb3B0cywgY2IpIHsKICAgICAgaWYgKHR5cGVvZiBvcHRzID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjYiA9IG9wdHM7CiAgICAgICAgb3B0cyA9IHt9OwogICAgICB9CiAgICAgIGNiID0gb3B0cy5jYiB8fCBjYjsKICAgICAgdmFyIHByZSA9IHR5cGVvZiBjYiA9PSAiZnVuY3Rpb24iID8gY2IgOiBjYi5wcmUgfHwgZnVuY3Rpb24oKSB7CiAgICAgIH07CiAgICAgIHZhciBwb3N0ID0gY2IucG9zdCB8fCBmdW5jdGlvbigpIHsKICAgICAgfTsKICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwgIiIsIHNjaGVtYTIpOwogICAgfTsKICAgIHRyYXZlcnNlLmtleXdvcmRzID0gewogICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgIGl0ZW1zOiB0cnVlLAogICAgICBjb250YWluczogdHJ1ZSwKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgIHByb3BlcnR5TmFtZXM6IHRydWUsCiAgICAgIG5vdDogdHJ1ZSwKICAgICAgaWY6IHRydWUsCiAgICAgIHRoZW46IHRydWUsCiAgICAgIGVsc2U6IHRydWUKICAgIH07CiAgICB0cmF2ZXJzZS5hcnJheUtleXdvcmRzID0gewogICAgICBpdGVtczogdHJ1ZSwKICAgICAgYWxsT2Y6IHRydWUsCiAgICAgIGFueU9mOiB0cnVlLAogICAgICBvbmVPZjogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnByb3BzS2V5d29yZHMgPSB7CiAgICAgICRkZWZzOiB0cnVlLAogICAgICBkZWZpbml0aW9uczogdHJ1ZSwKICAgICAgcHJvcGVydGllczogdHJ1ZSwKICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgIGRlcGVuZGVuY2llczogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnNraXBLZXl3b3JkcyA9IHsKICAgICAgZGVmYXVsdDogdHJ1ZSwKICAgICAgZW51bTogdHJ1ZSwKICAgICAgY29uc3Q6IHRydWUsCiAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICBtYXhpbXVtOiB0cnVlLAogICAgICBtaW5pbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNYXhpbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNaW5pbXVtOiB0cnVlLAogICAgICBtdWx0aXBsZU9mOiB0cnVlLAogICAgICBtYXhMZW5ndGg6IHRydWUsCiAgICAgIG1pbkxlbmd0aDogdHJ1ZSwKICAgICAgcGF0dGVybjogdHJ1ZSwKICAgICAgZm9ybWF0OiB0cnVlLAogICAgICBtYXhJdGVtczogdHJ1ZSwKICAgICAgbWluSXRlbXM6IHRydWUsCiAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLAogICAgICBtYXhQcm9wZXJ0aWVzOiB0cnVlLAogICAgICBtaW5Qcm9wZXJ0aWVzOiB0cnVlCiAgICB9OwogICAgZnVuY3Rpb24gX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCkgewogICAgICBpZiAoc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEyKSkgewogICAgICAgIHByZShzY2hlbWEyLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hMikgewogICAgICAgICAgdmFyIHNjaCA9IHNjaGVtYTJba2V5XTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgaWYgKGtleSBpbiB0cmF2ZXJzZS5hcnJheUtleXdvcmRzKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbaV0sIGpzb25QdHIgKyAiLyIgKyBrZXkgKyAiLyIgKyBpLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIsIGkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5wcm9wc0tleXdvcmRzKSB7CiAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gc2NoKQogICAgICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW3Byb3BdLCBqc29uUHRyICsgIi8iICsga2V5ICsgIi8iICsgZXNjYXBlSnNvblB0cihwcm9wKSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEyLCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gdHJhdmVyc2Uua2V5d29yZHMgfHwgb3B0cy5hbGxLZXlzICYmICEoa2V5IGluIHRyYXZlcnNlLnNraXBLZXl3b3JkcykpIHsKICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoLCBqc29uUHRyICsgIi8iICsga2V5LCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwb3N0KHNjaGVtYTIsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUHRyKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZSgvfi9nLCAifjAiKS5yZXBsYWNlKC9cLy9nLCAifjEiKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVzb2x2ZS5qcwp2YXIgcmVxdWlyZV9yZXNvbHZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3Jlc29sdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmdldFNjaGVtYVJlZnMgPSBleHBvcnRzMi5yZXNvbHZlVXJsID0gZXhwb3J0czIubm9ybWFsaXplSWQgPSBleHBvcnRzMi5fZ2V0RnVsbFBhdGggPSBleHBvcnRzMi5nZXRGdWxsUGF0aCA9IGV4cG9ydHMyLmlubGluZVJlZiA9IHZvaWQgMDsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICB2YXIgdHJhdmVyc2UgPSByZXF1aXJlX2pzb25fc2NoZW1hX3RyYXZlcnNlKCk7CiAgICB2YXIgU0lNUExFX0lOTElORUQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJ0eXBlIiwKICAgICAgImZvcm1hdCIsCiAgICAgICJwYXR0ZXJuIiwKICAgICAgIm1heExlbmd0aCIsCiAgICAgICJtaW5MZW5ndGgiLAogICAgICAibWF4UHJvcGVydGllcyIsCiAgICAgICJtaW5Qcm9wZXJ0aWVzIiwKICAgICAgIm1heEl0ZW1zIiwKICAgICAgIm1pbkl0ZW1zIiwKICAgICAgIm1heGltdW0iLAogICAgICAibWluaW11bSIsCiAgICAgICJ1bmlxdWVJdGVtcyIsCiAgICAgICJtdWx0aXBsZU9mIiwKICAgICAgInJlcXVpcmVkIiwKICAgICAgImVudW0iLAogICAgICAiY29uc3QiCiAgICBdKTsKICAgIGZ1bmN0aW9uIGlubGluZVJlZihzY2hlbWEyLCBsaW1pdCA9IHRydWUpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgaWYgKGxpbWl0ID09PSB0cnVlKQogICAgICAgIHJldHVybiAhaGFzUmVmKHNjaGVtYTIpOwogICAgICBpZiAoIWxpbWl0KQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIGNvdW50S2V5cyhzY2hlbWEyKSA8PSBsaW1pdDsKICAgIH0KICAgIGV4cG9ydHMyLmlubGluZVJlZiA9IGlubGluZVJlZjsKICAgIHZhciBSRUZfS0VZV09SRFMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICIkcmVmIiwKICAgICAgIiRyZWN1cnNpdmVSZWYiLAogICAgICAiJHJlY3Vyc2l2ZUFuY2hvciIsCiAgICAgICIkZHluYW1pY1JlZiIsCiAgICAgICIkZHluYW1pY0FuY2hvciIKICAgIF0pOwogICAgZnVuY3Rpb24gaGFzUmVmKHNjaGVtYTIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmIChSRUZfS0VZV09SRFMuaGFzKGtleSkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2tleV07CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoKSAmJiBzY2guc29tZShoYXNSZWYpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIgJiYgaGFzUmVmKHNjaCkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmdW5jdGlvbiBjb3VudEtleXMoc2NoZW1hMikgewogICAgICBsZXQgY291bnQgPSAwOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIiRyZWYiKQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICAgIGNvdW50Kys7CiAgICAgICAgaWYgKFNJTVBMRV9JTkxJTkVELmhhcyhrZXkpKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyW2tleV0gPT0gIm9iamVjdCIpIHsKICAgICAgICAgICgwLCB1dGlsXzEuZWFjaEl0ZW0pKHNjaGVtYTJba2V5XSwgKHNjaCkgPT4gY291bnQgKz0gY291bnRLZXlzKHNjaCkpOwogICAgICAgIH0KICAgICAgICBpZiAoY291bnQgPT09IEluZmluaXR5KQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICB9CiAgICAgIHJldHVybiBjb3VudDsKICAgIH0KICAgIGZ1bmN0aW9uIGdldEZ1bGxQYXRoKHJlc29sdmVyLCBpZCA9ICIiLCBub3JtYWxpemUpIHsKICAgICAgaWYgKG5vcm1hbGl6ZSAhPT0gZmFsc2UpCiAgICAgICAgaWQgPSBub3JtYWxpemVJZChpZCk7CiAgICAgIGNvbnN0IHAgPSByZXNvbHZlci5wYXJzZShpZCk7CiAgICAgIHJldHVybiBfZ2V0RnVsbFBhdGgocmVzb2x2ZXIsIHApOwogICAgfQogICAgZXhwb3J0czIuZ2V0RnVsbFBhdGggPSBnZXRGdWxsUGF0aDsKICAgIGZ1bmN0aW9uIF9nZXRGdWxsUGF0aChyZXNvbHZlciwgcCkgewogICAgICBjb25zdCBzZXJpYWxpemVkID0gcmVzb2x2ZXIuc2VyaWFsaXplKHApOwogICAgICByZXR1cm4gc2VyaWFsaXplZC5zcGxpdCgiIyIpWzBdICsgIiMiOwogICAgfQogICAgZXhwb3J0czIuX2dldEZ1bGxQYXRoID0gX2dldEZ1bGxQYXRoOwogICAgdmFyIFRSQUlMSU5HX1NMQVNIX0hBU0ggPSAvI1wvPyQvOwogICAgZnVuY3Rpb24gbm9ybWFsaXplSWQoaWQpIHsKICAgICAgcmV0dXJuIGlkID8gaWQucmVwbGFjZShUUkFJTElOR19TTEFTSF9IQVNILCAiIikgOiAiIjsKICAgIH0KICAgIGV4cG9ydHMyLm5vcm1hbGl6ZUlkID0gbm9ybWFsaXplSWQ7CiAgICBmdW5jdGlvbiByZXNvbHZlVXJsKHJlc29sdmVyLCBiYXNlSWQsIGlkKSB7CiAgICAgIGlkID0gbm9ybWFsaXplSWQoaWQpOwogICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShiYXNlSWQsIGlkKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlc29sdmVVcmwgPSByZXNvbHZlVXJsOwogICAgdmFyIEFOQ0hPUiA9IC9eW2Etel9dWy1hLXowLTkuX10qJC9pOwogICAgZnVuY3Rpb24gZ2V0U2NoZW1hUmVmcyhzY2hlbWEyLCBiYXNlSWQpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4ge307CiAgICAgIGNvbnN0IHsgc2NoZW1hSWQsIHVyaVJlc29sdmVyIH0gPSB0aGlzLm9wdHM7CiAgICAgIGNvbnN0IHNjaElkID0gbm9ybWFsaXplSWQoc2NoZW1hMltzY2hlbWFJZF0gfHwgYmFzZUlkKTsKICAgICAgY29uc3QgYmFzZUlkcyA9IHsgIiI6IHNjaElkIH07CiAgICAgIGNvbnN0IHBhdGhQcmVmaXggPSBnZXRGdWxsUGF0aCh1cmlSZXNvbHZlciwgc2NoSWQsIGZhbHNlKTsKICAgICAgY29uc3QgbG9jYWxSZWZzID0ge307CiAgICAgIGNvbnN0IHNjaGVtYVJlZnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB0cmF2ZXJzZShzY2hlbWEyLCB7IGFsbEtleXM6IHRydWUgfSwgKHNjaCwganNvblB0ciwgXywgcGFyZW50SnNvblB0cikgPT4gewogICAgICAgIGlmIChwYXJlbnRKc29uUHRyID09PSB2b2lkIDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoUHJlZml4ICsganNvblB0cjsKICAgICAgICBsZXQgaW5uZXJCYXNlSWQgPSBiYXNlSWRzW3BhcmVudEpzb25QdHJdOwogICAgICAgIGlmICh0eXBlb2Ygc2NoW3NjaGVtYUlkXSA9PSAic3RyaW5nIikKICAgICAgICAgIGlubmVyQmFzZUlkID0gYWRkUmVmLmNhbGwodGhpcywgc2NoW3NjaGVtYUlkXSk7CiAgICAgICAgYWRkQW5jaG9yLmNhbGwodGhpcywgc2NoLiRhbmNob3IpOwogICAgICAgIGFkZEFuY2hvci5jYWxsKHRoaXMsIHNjaC4kZHluYW1pY0FuY2hvcik7CiAgICAgICAgYmFzZUlkc1tqc29uUHRyXSA9IGlubmVyQmFzZUlkOwogICAgICAgIGZ1bmN0aW9uIGFkZFJlZihyZWYpIHsKICAgICAgICAgIGNvbnN0IF9yZXNvbHZlID0gdGhpcy5vcHRzLnVyaVJlc29sdmVyLnJlc29sdmU7CiAgICAgICAgICByZWYgPSBub3JtYWxpemVJZChpbm5lckJhc2VJZCA/IF9yZXNvbHZlKGlubmVyQmFzZUlkLCByZWYpIDogcmVmKTsKICAgICAgICAgIGlmIChzY2hlbWFSZWZzLmhhcyhyZWYpKQogICAgICAgICAgICB0aHJvdyBhbWJpZ3VvcyhyZWYpOwogICAgICAgICAgc2NoZW1hUmVmcy5hZGQocmVmKTsKICAgICAgICAgIGxldCBzY2hPclJlZiA9IHRoaXMucmVmc1tyZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAic3RyaW5nIikKICAgICAgICAgICAgc2NoT3JSZWYgPSB0aGlzLnJlZnNbc2NoT3JSZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAib2JqZWN0IikgewogICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgc2NoT3JSZWYuc2NoZW1hLCByZWYpOwogICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG5vcm1hbGl6ZUlkKGZ1bGxQYXRoKSkgewogICAgICAgICAgICBpZiAocmVmWzBdID09PSAiIyIpIHsKICAgICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgbG9jYWxSZWZzW3JlZl0sIHJlZik7CiAgICAgICAgICAgICAgbG9jYWxSZWZzW3JlZl0gPSBzY2g7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy5yZWZzW3JlZl0gPSBmdWxsUGF0aDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlZjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkQW5jaG9yKGFuY2hvcikgewogICAgICAgICAgaWYgKHR5cGVvZiBhbmNob3IgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKCFBTkNIT1IudGVzdChhbmNob3IpKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhbmNob3IgIiR7YW5jaG9yfSJgKTsKICAgICAgICAgICAgYWRkUmVmLmNhbGwodGhpcywgYCMke2FuY2hvcn1gKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gbG9jYWxSZWZzOwogICAgICBmdW5jdGlvbiBjaGVja0FtYmlndW9zUmVmKHNjaDEsIHNjaDIsIHJlZikgewogICAgICAgIGlmIChzY2gyICE9PSB2b2lkIDAgJiYgIWVxdWFsKHNjaDEsIHNjaDIpKQogICAgICAgICAgdGhyb3cgYW1iaWd1b3MocmVmKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhbWJpZ3VvcyhyZWYpIHsKICAgICAgICByZXR1cm4gbmV3IEVycm9yKGByZWZlcmVuY2UgIiR7cmVmfSIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWFgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0U2NoZW1hUmVmcyA9IGdldFNjaGVtYVJlZnM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzCnZhciByZXF1aXJlX3ZhbGlkYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5nZXREYXRhID0gZXhwb3J0czIuS2V5d29yZEN4dCA9IGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdm9pZCAwOwogICAgdmFyIGJvb2xTY2hlbWFfMSA9IHJlcXVpcmVfYm9vbFNjaGVtYSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgYXBwbGljYWJpbGl0eV8xID0gcmVxdWlyZV9hcHBsaWNhYmlsaXR5KCk7CiAgICB2YXIgZGF0YVR5cGVfMiA9IHJlcXVpcmVfZGF0YVR5cGUoKTsKICAgIHZhciBkZWZhdWx0c18xID0gcmVxdWlyZV9kZWZhdWx0cygpOwogICAgdmFyIGtleXdvcmRfMSA9IHJlcXVpcmVfa2V5d29yZCgpOwogICAgdmFyIHN1YnNjaGVtYV8xID0gcmVxdWlyZV9zdWJzY2hlbWEoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25Db2RlKGl0KSB7CiAgICAgIGlmIChpc1NjaGVtYU9iaihpdCkpIHsKICAgICAgICBjaGVja0tleXdvcmRzKGl0KTsKICAgICAgICBpZiAoc2NoZW1hQ3h0SGFzUnVsZXMoaXQpKSB7CiAgICAgICAgICB0b3BTY2hlbWFPYmpDb2RlKGl0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFsaWRhdGVGdW5jdGlvbihpdCwgKCkgPT4gKDAsIGJvb2xTY2hlbWFfMS50b3BCb29sT3JFbXB0eVNjaGVtYSkoaXQpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdmFsaWRhdGVGdW5jdGlvbkNvZGU7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uKHsgZ2VuLCB2YWxpZGF0ZU5hbWUsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hRW52LCBvcHRzIH0sIGJvZHkpIHsKICAgICAgaWYgKG9wdHMuY29kZS5lczUpIHsKICAgICAgICBnZW4uZnVuYyh2YWxpZGF0ZU5hbWUsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCJ1c2Ugc3RyaWN0IjsgJHtmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpfWApOwogICAgICAgICAgZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKTsKICAgICAgICAgIGdlbi5jb2RlKGJvZHkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5mdW5jKHZhbGlkYXRlTmFtZSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5kYXRhfSwgJHtkZXN0cnVjdHVyZVZhbEN4dChvcHRzKX1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiBnZW4uY29kZShmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpKS5jb2RlKGJvZHkpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHQob3B0cykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB7JHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofT0iIiwgJHtuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX0sICR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfT0ke25hbWVzXzEuZGVmYXVsdC5kYXRhfSR7b3B0cy5keW5hbWljUmVmID8gKDAsIGNvZGVnZW5fMS5fKWAsICR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfT17fWAgOiBjb2RlZ2VuXzEubmlsfX09e31gOwogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKSB7CiAgICAgIGdlbi5pZihuYW1lc18xLmRlZmF1bHQudmFsQ3h0LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH0uJHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGEsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudmFsQ3h0fS4ke25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhfWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX1gKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfWApOwogICAgICAgIGlmIChvcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfWApOwogICAgICB9LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCIiYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucm9vdERhdGEsIG5hbWVzXzEuZGVmYXVsdC5kYXRhKTsKICAgICAgICBpZiAob3B0cy5keW5hbWljUmVmKQogICAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuZHluYW1pY0FuY2hvcnMsICgwLCBjb2RlZ2VuXzEuXylge31gKTsKICAgICAgfSk7CiAgICB9CiAgICBmdW5jdGlvbiB0b3BTY2hlbWFPYmpDb2RlKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzLCBnZW4gfSA9IGl0OwogICAgICB2YWxpZGF0ZUZ1bmN0aW9uKGl0LCAoKSA9PiB7CiAgICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgJiYgc2NoZW1hMi4kY29tbWVudCkKICAgICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgICBjaGVja05vRGVmYXVsdChpdCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQudkVycm9ycywgbnVsbCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAwKTsKICAgICAgICBpZiAob3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJlc2V0RXZhbHVhdGVkKGl0KTsKICAgICAgICB0eXBlQW5kS2V5d29yZHMoaXQpOwogICAgICAgIHJldHVyblJlc3VsdHMoaXQpOwogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZnVuY3Rpb24gcmVzZXRFdmFsdWF0ZWQoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSB9ID0gaXQ7CiAgICAgIGl0LmV2YWx1YXRlZCA9IGdlbi5jb25zdCgiZXZhbHVhdGVkIiwgKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXZhbHVhdGVkYCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljUHJvcHNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9LnByb3BzYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljSXRlbXNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9Lml0ZW1zYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICB9CiAgICBmdW5jdGlvbiBmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpIHsKICAgICAgY29uc3Qgc2NoSWQgPSB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiBzY2hlbWEyW29wdHMuc2NoZW1hSWRdOwogICAgICByZXR1cm4gc2NoSWQgJiYgKG9wdHMuY29kZS5zb3VyY2UgfHwgb3B0cy5jb2RlLnByb2Nlc3MpID8gKDAsIGNvZGVnZW5fMS5fKWAvKiMgc291cmNlVVJMPSR7c2NoSWR9ICovYCA6IGNvZGVnZW5fMS5uaWw7CiAgICB9CiAgICBmdW5jdGlvbiBzdWJzY2hlbWFDb2RlKGl0LCB2YWxpZCkgewogICAgICBpZiAoaXNTY2hlbWFPYmooaXQpKSB7CiAgICAgICAgY2hlY2tLZXl3b3JkcyhpdCk7CiAgICAgICAgaWYgKHNjaGVtYUN4dEhhc1J1bGVzKGl0KSkgewogICAgICAgICAgc3ViU2NoZW1hT2JqQ29kZShpdCwgdmFsaWQpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgICAoMCwgYm9vbFNjaGVtYV8xLmJvb2xPckVtcHR5U2NoZW1hKShpdCwgdmFsaWQpOwogICAgfQogICAgZnVuY3Rpb24gc2NoZW1hQ3h0SGFzUnVsZXMoeyBzY2hlbWE6IHNjaGVtYTIsIHNlbGY6IHNlbGYyIH0pIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gIXNjaGVtYTI7CiAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYTIpCiAgICAgICAgaWYgKHNlbGYyLlJVTEVTLmFsbFtrZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU2NoZW1hT2JqKGl0KSB7CiAgICAgIHJldHVybiB0eXBlb2YgaXQuc2NoZW1hICE9ICJib29sZWFuIjsKICAgIH0KICAgIGZ1bmN0aW9uIHN1YlNjaGVtYU9iakNvZGUoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBnZW4sIG9wdHMgfSA9IGl0OwogICAgICBpZiAob3B0cy4kY29tbWVudCAmJiBzY2hlbWEyLiRjb21tZW50KQogICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgdXBkYXRlQ29udGV4dChpdCk7CiAgICAgIGNoZWNrQXN5bmNTY2hlbWEoaXQpOwogICAgICBjb25zdCBlcnJzQ291bnQgPSBnZW4uY29uc3QoIl9lcnJzIiwgbmFtZXNfMS5kZWZhdWx0LmVycm9ycyk7CiAgICAgIHR5cGVBbmRLZXl3b3JkcyhpdCwgZXJyc0NvdW50KTsKICAgICAgZ2VuLnZhcih2YWxpZCwgKDAsIGNvZGVnZW5fMS5fKWAke2VycnNDb3VudH0gPT09ICR7bmFtZXNfMS5kZWZhdWx0LmVycm9yc31gKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZHMoaXQpIHsKICAgICAgKDAsIHV0aWxfMS5jaGVja1Vua25vd25SdWxlcykoaXQpOwogICAgICBjaGVja1JlZnNBbmRLZXl3b3JkcyhpdCk7CiAgICB9CiAgICBmdW5jdGlvbiB0eXBlQW5kS2V5d29yZHMoaXQsIGVycnNDb3VudCkgewogICAgICBpZiAoaXQub3B0cy5qdGQpCiAgICAgICAgcmV0dXJuIHNjaGVtYUtleXdvcmRzKGl0LCBbXSwgZmFsc2UsIGVycnNDb3VudCk7CiAgICAgIGNvbnN0IHR5cGVzID0gKDAsIGRhdGFUeXBlXzEuZ2V0U2NoZW1hVHlwZXMpKGl0LnNjaGVtYSk7CiAgICAgIGNvbnN0IGNoZWNrZWRUeXBlcyA9ICgwLCBkYXRhVHlwZV8xLmNvZXJjZUFuZENoZWNrRGF0YVR5cGUpKGl0LCB0eXBlcyk7CiAgICAgIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgIWNoZWNrZWRUeXBlcywgZXJyc0NvdW50KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrUmVmc0FuZEtleXdvcmRzKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgIGlmIChzY2hlbWEyLiRyZWYgJiYgb3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgJiYgKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgc2VsZjIuUlVMRVMpKSB7CiAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4oYCRyZWY6IGtleXdvcmRzIGlnbm9yZWQgaW4gc2NoZW1hIGF0IHBhdGggIiR7ZXJyU2NoZW1hUGF0aH0iYCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrTm9EZWZhdWx0KGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIuZGVmYXVsdCAhPT0gdm9pZCAwICYmIG9wdHMudXNlRGVmYXVsdHMgJiYgb3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICJkZWZhdWx0IGlzIGlnbm9yZWQgaW4gdGhlIHNjaGVtYSByb290Iik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHQoaXQpIHsKICAgICAgY29uc3Qgc2NoSWQgPSBpdC5zY2hlbWFbaXQub3B0cy5zY2hlbWFJZF07CiAgICAgIGlmIChzY2hJZCkKICAgICAgICBpdC5iYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGl0LmJhc2VJZCwgc2NoSWQpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY1NjaGVtYShpdCkgewogICAgICBpZiAoaXQuc2NoZW1hLiRhc3luYyAmJiAhaXQuc2NoZW1hRW52LiRhc3luYykKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIHNjaGVtYSBpbiBzeW5jIHNjaGVtYSIpOwogICAgfQogICAgZnVuY3Rpb24gY29tbWVudEtleXdvcmQoeyBnZW4sIHNjaGVtYUVudiwgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzIH0pIHsKICAgICAgY29uc3QgbXNnID0gc2NoZW1hMi4kY29tbWVudDsKICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgPT09IHRydWUpIHsKICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnNlbGZ9LmxvZ2dlci5sb2coJHttc2d9KWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLiRjb21tZW50ID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjb25zdCBzY2hlbWFQYXRoID0gKDAsIGNvZGVnZW5fMS5zdHIpYCR7ZXJyU2NoZW1hUGF0aH0vJGNvbW1lbnRgOwogICAgICAgIGNvbnN0IHJvb3ROYW1lID0gZ2VuLnNjb3BlVmFsdWUoInJvb3QiLCB7IHJlZjogc2NoZW1hRW52LnJvb3QgfSk7CiAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5zZWxmfS5vcHRzLiRjb21tZW50KCR7bXNnfSwgJHtzY2hlbWFQYXRofSwgJHtyb290TmFtZX0uc2NoZW1hKWApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5SZXN1bHRzKGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFFbnYsIHZhbGlkYXRlTmFtZSwgVmFsaWRhdGlvbkVycm9yLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5lcnJvcnN9ID09PSAwYCwgKCkgPT4gZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSksICgpID0+IGdlbi50aHJvdygoMCwgY29kZWdlbl8xLl8pYG5ldyAke1ZhbGlkYXRpb25FcnJvcn0oJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30pYCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXJyb3JzYCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICAgIGlmIChvcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgYXNzaWduRXZhbHVhdGVkKGl0KTsKICAgICAgICBnZW4ucmV0dXJuKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gMGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhc3NpZ25FdmFsdWF0ZWQoeyBnZW4sIGV2YWx1YXRlZCwgcHJvcHMsIGl0ZW1zIH0pIHsKICAgICAgaWYgKHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5wcm9wc2AsIHByb3BzKTsKICAgICAgaWYgKGl0ZW1zIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5pdGVtc2AsIGl0ZW1zKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgdHlwZUVycm9ycywgZXJyc0NvdW50KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGFsbEVycm9ycywgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICBjb25zdCB7IFJVTEVTIH0gPSBzZWxmMjsKICAgICAgaWYgKHNjaGVtYTIuJHJlZiAmJiAob3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgfHwgISgwLCB1dGlsXzEuc2NoZW1hSGFzUnVsZXNCdXRSZWYpKHNjaGVtYTIsIFJVTEVTKSkpIHsKICAgICAgICBnZW4uYmxvY2soKCkgPT4ga2V5d29yZENvZGUoaXQsICIkcmVmIiwgUlVMRVMuYWxsLiRyZWYuZGVmaW5pdGlvbikpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoIW9wdHMuanRkKQogICAgICAgIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIFJVTEVTLnJ1bGVzKQogICAgICAgICAgZ3JvdXBLZXl3b3Jkcyhncm91cCk7CiAgICAgICAgZ3JvdXBLZXl3b3JkcyhSVUxFUy5wb3N0KTsKICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGdyb3VwS2V5d29yZHMoZ3JvdXApIHsKICAgICAgICBpZiAoISgwLCBhcHBsaWNhYmlsaXR5XzEuc2hvdWxkVXNlR3JvdXApKHNjaGVtYTIsIGdyb3VwKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBpZiAoZ3JvdXAudHlwZSkgewogICAgICAgICAgZ2VuLmlmKCgwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGUpKGdyb3VwLnR5cGUsIGRhdGEsIG9wdHMuc3RyaWN0TnVtYmVycykpOwogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgICBpZiAodHlwZXMubGVuZ3RoID09PSAxICYmIHR5cGVzWzBdID09PSBncm91cC50eXBlICYmIHR5cGVFcnJvcnMpIHsKICAgICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICAgICAgKDAsIGRhdGFUeXBlXzIucmVwb3J0VHlwZUVycm9yKShpdCk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgfQogICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gJHtlcnJzQ291bnQgfHwgMH1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBvcHRzOiB7IHVzZURlZmF1bHRzIH0gfSA9IGl0OwogICAgICBpZiAodXNlRGVmYXVsdHMpCiAgICAgICAgKDAsIGRlZmF1bHRzXzEuYXNzaWduRGVmYXVsdHMpKGl0LCBncm91cC50eXBlKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgZ3JvdXAucnVsZXMpIHsKICAgICAgICAgIGlmICgoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKHNjaGVtYTIsIHJ1bGUpKSB7CiAgICAgICAgICAgIGtleXdvcmRDb2RlKGl0LCBydWxlLmtleXdvcmQsIHJ1bGUuZGVmaW5pdGlvbiwgZ3JvdXAudHlwZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmIChpdC5zY2hlbWFFbnYubWV0YSB8fCAhaXQub3B0cy5zdHJpY3RUeXBlcykKICAgICAgICByZXR1cm47CiAgICAgIGNoZWNrQ29udGV4dFR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGlmICghaXQub3B0cy5hbGxvd1VuaW9uVHlwZXMpCiAgICAgICAgY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGNoZWNrS2V5d29yZFR5cGVzKGl0LCBpdC5kYXRhVHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tDb250ZXh0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmICghdHlwZXMubGVuZ3RoKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKCFpdC5kYXRhVHlwZXMubGVuZ3RoKSB7CiAgICAgICAgaXQuZGF0YVR5cGVzID0gdHlwZXM7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHR5cGVzLmZvckVhY2goKHQpID0+IHsKICAgICAgICBpZiAoIWluY2x1ZGVzVHlwZShpdC5kYXRhVHlwZXMsIHQpKSB7CiAgICAgICAgICBzdHJpY3RUeXBlc0Vycm9yKGl0LCBgdHlwZSAiJHt0fSIgbm90IGFsbG93ZWQgYnkgY29udGV4dCAiJHtpdC5kYXRhVHlwZXMuam9pbigiLCIpfSJgKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBuYXJyb3dTY2hlbWFUeXBlcyhpdCwgdHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0cykgewogICAgICBpZiAodHMubGVuZ3RoID4gMSAmJiAhKHRzLmxlbmd0aCA9PT0gMiAmJiB0cy5pbmNsdWRlcygibnVsbCIpKSkgewogICAgICAgIHN0cmljdFR5cGVzRXJyb3IoaXQsICJ1c2UgYWxsb3dVbmlvblR5cGVzIHRvIGFsbG93IHVuaW9uIHR5cGUga2V5d29yZCIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBjaGVja0tleXdvcmRUeXBlcyhpdCwgdHMpIHsKICAgICAgY29uc3QgcnVsZXMgPSBpdC5zZWxmLlJVTEVTLmFsbDsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIHJ1bGVzKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHJ1bGVzW2tleXdvcmRdOwogICAgICAgIGlmICh0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiAmJiAoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKGl0LnNjaGVtYSwgcnVsZSkpIHsKICAgICAgICAgIGNvbnN0IHsgdHlwZTogdHlwZTIgfSA9IHJ1bGUuZGVmaW5pdGlvbjsKICAgICAgICAgIGlmICh0eXBlMi5sZW5ndGggJiYgIXR5cGUyLnNvbWUoKHQpID0+IGhhc0FwcGxpY2FibGVUeXBlKHRzLCB0KSkpIHsKICAgICAgICAgICAgc3RyaWN0VHlwZXNFcnJvcihpdCwgYG1pc3NpbmcgdHlwZSAiJHt0eXBlMi5qb2luKCIsIil9IiBmb3Iga2V5d29yZCAiJHtrZXl3b3JkfSJgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGhhc0FwcGxpY2FibGVUeXBlKHNjaFRzLCBrd2RUKSB7CiAgICAgIHJldHVybiBzY2hUcy5pbmNsdWRlcyhrd2RUKSB8fCBrd2RUID09PSAibnVtYmVyIiAmJiBzY2hUcy5pbmNsdWRlcygiaW50ZWdlciIpOwogICAgfQogICAgZnVuY3Rpb24gaW5jbHVkZXNUeXBlKHRzLCB0KSB7CiAgICAgIHJldHVybiB0cy5pbmNsdWRlcyh0KSB8fCB0ID09PSAiaW50ZWdlciIgJiYgdHMuaW5jbHVkZXMoIm51bWJlciIpOwogICAgfQogICAgZnVuY3Rpb24gbmFycm93U2NoZW1hVHlwZXMoaXQsIHdpdGhUeXBlcykgewogICAgICBjb25zdCB0cyA9IFtdOwogICAgICBmb3IgKGNvbnN0IHQgb2YgaXQuZGF0YVR5cGVzKSB7CiAgICAgICAgaWYgKGluY2x1ZGVzVHlwZSh3aXRoVHlwZXMsIHQpKQogICAgICAgICAgdHMucHVzaCh0KTsKICAgICAgICBlbHNlIGlmICh3aXRoVHlwZXMuaW5jbHVkZXMoImludGVnZXIiKSAmJiB0ID09PSAibnVtYmVyIikKICAgICAgICAgIHRzLnB1c2goImludGVnZXIiKTsKICAgICAgfQogICAgICBpdC5kYXRhVHlwZXMgPSB0czsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmljdFR5cGVzRXJyb3IoaXQsIG1zZykgewogICAgICBjb25zdCBzY2hlbWFQYXRoID0gaXQuc2NoZW1hRW52LmJhc2VJZCArIGl0LmVyclNjaGVtYVBhdGg7CiAgICAgIG1zZyArPSBgIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0VHlwZXMpYDsKICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBtc2csIGl0Lm9wdHMuc3RyaWN0VHlwZXMpOwogICAgfQogICAgdmFyIEtleXdvcmRDeHQgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGl0LCBkZWYsIGtleXdvcmQpIHsKICAgICAgICAoMCwga2V5d29yZF8xLnZhbGlkYXRlS2V5d29yZFVzYWdlKShpdCwgZGVmLCBrZXl3b3JkKTsKICAgICAgICB0aGlzLmdlbiA9IGl0LmdlbjsKICAgICAgICB0aGlzLmFsbEVycm9ycyA9IGl0LmFsbEVycm9yczsKICAgICAgICB0aGlzLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgIHRoaXMuZGF0YSA9IGl0LmRhdGE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgdGhpcy4kZGF0YSA9IGRlZi4kZGF0YSAmJiBpdC5vcHRzLiRkYXRhICYmIHRoaXMuc2NoZW1hICYmIHRoaXMuc2NoZW1hLiRkYXRhOwogICAgICAgIHRoaXMuc2NoZW1hVmFsdWUgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgdGhpcy5zY2hlbWEsIGtleXdvcmQsIHRoaXMuJGRhdGEpOwogICAgICAgIHRoaXMuc2NoZW1hVHlwZSA9IGRlZi5zY2hlbWFUeXBlOwogICAgICAgIHRoaXMucGFyZW50U2NoZW1hID0gaXQuc2NoZW1hOwogICAgICAgIHRoaXMucGFyYW1zID0ge307CiAgICAgICAgdGhpcy5pdCA9IGl0OwogICAgICAgIHRoaXMuZGVmID0gZGVmOwogICAgICAgIGlmICh0aGlzLiRkYXRhKSB7CiAgICAgICAgICB0aGlzLnNjaGVtYUNvZGUgPSBpdC5nZW4uY29uc3QoInZTY2hlbWEiLCBnZXREYXRhKHRoaXMuJGRhdGEsIGl0KSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc2NoZW1hQ29kZSA9IHRoaXMuc2NoZW1hVmFsdWU7CiAgICAgICAgICBpZiAoISgwLCBrZXl3b3JkXzEudmFsaWRTY2hlbWFUeXBlKSh0aGlzLnNjaGVtYSwgZGVmLnNjaGVtYVR5cGUsIGRlZi5hbGxvd1VuZGVmaW5lZCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2tleXdvcmR9IHZhbHVlIG11c3QgYmUgJHtKU09OLnN0cmluZ2lmeShkZWYuc2NoZW1hVHlwZSl9YCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgiY29kZSIgaW4gZGVmID8gZGVmLnRyYWNrRXJyb3JzIDogZGVmLmVycm9ycyAhPT0gZmFsc2UpIHsKICAgICAgICAgIHRoaXMuZXJyc0NvdW50ID0gaXQuZ2VuLmNvbnN0KCJfZXJycyIsIG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXN1bHQoY29uZGl0aW9uLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKSB7CiAgICAgICAgdGhpcy5mYWlsUmVzdWx0KCgwLCBjb2RlZ2VuXzEubm90KShjb25kaXRpb24pLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsUmVzdWx0KGNvbmRpdGlvbiwgc3VjY2Vzc0FjdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZ2VuLmlmKGNvbmRpdGlvbik7CiAgICAgICAgaWYgKGZhaWxBY3Rpb24pCiAgICAgICAgICBmYWlsQWN0aW9uKCk7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgIGlmIChzdWNjZXNzQWN0aW9uKSB7CiAgICAgICAgICB0aGlzLmdlbi5lbHNlKCk7CiAgICAgICAgICBzdWNjZXNzQWN0aW9uKCk7CiAgICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICAgIHRoaXMuZ2VuLmVuZElmKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICh0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uZW5kSWYoKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5nZW4uZWxzZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBwYXNzKGNvbmRpdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZmFpbFJlc3VsdCgoMCwgY29kZWdlbl8xLm5vdCkoY29uZGl0aW9uKSwgdm9pZCAwLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsKGNvbmRpdGlvbikgewogICAgICAgIGlmIChjb25kaXRpb24gPT09IHZvaWQgMCkgewogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgICAgaWYgKCF0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uaWYoZmFsc2UpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLmdlbi5pZihjb25kaXRpb24pOwogICAgICAgIHRoaXMuZXJyb3IoKTsKICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICB0aGlzLmdlbi5lbmRJZigpOwogICAgICAgIGVsc2UKICAgICAgICAgIHRoaXMuZ2VuLmVsc2UoKTsKICAgICAgfQogICAgICBmYWlsJGRhdGEoY29uZGl0aW9uKSB7CiAgICAgICAgaWYgKCF0aGlzLiRkYXRhKQogICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbChjb25kaXRpb24pOwogICAgICAgIGNvbnN0IHsgc2NoZW1hQ29kZSB9ID0gdGhpczsKICAgICAgICB0aGlzLmZhaWwoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ICE9PSB1bmRlZmluZWQgJiYgKCR7KDAsIGNvZGVnZW5fMS5vcikodGhpcy5pbnZhbGlkJGRhdGEoKSwgY29uZGl0aW9uKX0pYCk7CiAgICAgIH0KICAgICAgZXJyb3IoYXBwZW5kLCBlcnJvclBhcmFtcywgZXJyb3JQYXRocykgewogICAgICAgIGlmIChlcnJvclBhcmFtcykgewogICAgICAgICAgdGhpcy5zZXRQYXJhbXMoZXJyb3JQYXJhbXMpOwogICAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgICAgIHRoaXMuc2V0UGFyYW1zKHt9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICBfZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKSB7CiAgICAgICAgOwogICAgICAgIChhcHBlbmQgPyBlcnJvcnNfMS5yZXBvcnRFeHRyYUVycm9yIDogZXJyb3JzXzEucmVwb3J0RXJyb3IpKHRoaXMsIHRoaXMuZGVmLmVycm9yLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICAkZGF0YUVycm9yKCkgewogICAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikodGhpcywgdGhpcy5kZWYuJGRhdGFFcnJvciB8fCBlcnJvcnNfMS5rZXl3b3JkJERhdGFFcnJvcik7CiAgICAgIH0KICAgICAgcmVzZXQoKSB7CiAgICAgICAgaWYgKHRoaXMuZXJyc0NvdW50ID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZCAidHJhY2tFcnJvcnMiIHRvIGtleXdvcmQgZGVmaW5pdGlvbicpOwogICAgICAgICgwLCBlcnJvcnNfMS5yZXNldEVycm9yc0NvdW50KSh0aGlzLmdlbiwgdGhpcy5lcnJzQ291bnQpOwogICAgICB9CiAgICAgIG9rKGNvbmQpIHsKICAgICAgICBpZiAoIXRoaXMuYWxsRXJyb3JzKQogICAgICAgICAgdGhpcy5nZW4uaWYoY29uZCk7CiAgICAgIH0KICAgICAgc2V0UGFyYW1zKG9iaiwgYXNzaWduKSB7CiAgICAgICAgaWYgKGFzc2lnbikKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wYXJhbXMsIG9iaik7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5wYXJhbXMgPSBvYmo7CiAgICAgIH0KICAgICAgYmxvY2skZGF0YSh2YWxpZCwgY29kZUJsb2NrLCAkZGF0YVZhbGlkID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHRoaXMuZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICAgIHRoaXMuY2hlY2skZGF0YSh2YWxpZCwgJGRhdGFWYWxpZCk7CiAgICAgICAgICBjb2RlQmxvY2soKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBjaGVjayRkYXRhKHZhbGlkID0gY29kZWdlbl8xLm5pbCwgJGRhdGFWYWxpZCA9IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBpZiAoIXRoaXMuJGRhdGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYUNvZGUsIHNjaGVtYVR5cGUsIGRlZiB9ID0gdGhpczsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5vcikoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ID09PSB1bmRlZmluZWRgLCAkZGF0YVZhbGlkKSk7CiAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgaWYgKHNjaGVtYVR5cGUubGVuZ3RoIHx8IGRlZi52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgICAgZ2VuLmVsc2VJZih0aGlzLmludmFsaWQkZGF0YSgpKTsKICAgICAgICAgIHRoaXMuJGRhdGFFcnJvcigpOwogICAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGdlbi5lbHNlKCk7CiAgICAgIH0KICAgICAgaW52YWxpZCRkYXRhKCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFDb2RlLCBzY2hlbWFUeXBlLCBkZWYsIGl0IH0gPSB0aGlzOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm9yKSh3cm9uZyREYXRhVHlwZSgpLCBpbnZhbGlkJERhdGFTY2hlbWEoKSk7CiAgICAgICAgZnVuY3Rpb24gd3JvbmckRGF0YVR5cGUoKSB7CiAgICAgICAgICBpZiAoc2NoZW1hVHlwZS5sZW5ndGgpIHsKICAgICAgICAgICAgaWYgKCEoc2NoZW1hQ29kZSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSkKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgICBjb25zdCBzdCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkgPyBzY2hlbWFUeXBlIDogW3NjaGVtYVR5cGVdOwogICAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWAkeygwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGVzKShzdCwgc2NoZW1hQ29kZSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCBkYXRhVHlwZV8yLkRhdGFUeXBlLldyb25nKX1gOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGludmFsaWQkRGF0YVNjaGVtYSgpIHsKICAgICAgICAgIGlmIChkZWYudmFsaWRhdGVTY2hlbWEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVTY2hlbWFSZWYgPSBnZW4uc2NvcGVWYWx1ZSgidmFsaWRhdGUkZGF0YSIsIHsgcmVmOiBkZWYudmFsaWRhdGVTY2hlbWEgfSk7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCEke3ZhbGlkYXRlU2NoZW1hUmVmfSgke3NjaGVtYUNvZGV9KWA7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29kZWdlbl8xLm5pbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgc3Vic2NoZW1hKGFwcGwsIHZhbGlkKSB7CiAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gKDAsIHN1YnNjaGVtYV8xLmdldFN1YnNjaGVtYSkodGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYURhdGEpKHN1YnNjaGVtYSwgdGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYU1vZGUpKHN1YnNjaGVtYSwgYXBwbCk7CiAgICAgICAgY29uc3QgbmV4dENvbnRleHQgPSB7IC4uLnRoaXMuaXQsIC4uLnN1YnNjaGVtYSwgaXRlbXM6IHZvaWQgMCwgcHJvcHM6IHZvaWQgMCB9OwogICAgICAgIHN1YnNjaGVtYUNvZGUobmV4dENvbnRleHQsIHZhbGlkKTsKICAgICAgICByZXR1cm4gbmV4dENvbnRleHQ7CiAgICAgIH0KICAgICAgbWVyZ2VFdmFsdWF0ZWQoc2NoZW1hQ3h0LCB0b05hbWUpIHsKICAgICAgICBjb25zdCB7IGl0LCBnZW4gfSA9IHRoaXM7CiAgICAgICAgaWYgKCFpdC5vcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChpdC5wcm9wcyAhPT0gdHJ1ZSAmJiBzY2hlbWFDeHQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBzY2hlbWFDeHQucHJvcHMsIGl0LnByb3BzLCB0b05hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoaXQuaXRlbXMgIT09IHRydWUgJiYgc2NoZW1hQ3h0Lml0ZW1zICE9PSB2b2lkIDApIHsKICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoZW1hQ3h0Lml0ZW1zLCBpdC5pdGVtcywgdG9OYW1lKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hlbWFDeHQsIHZhbGlkKSB7CiAgICAgICAgY29uc3QgeyBpdCwgZ2VuIH0gPSB0aGlzOwogICAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIChpdC5wcm9wcyAhPT0gdHJ1ZSB8fCBpdC5pdGVtcyAhPT0gdHJ1ZSkpIHsKICAgICAgICAgIGdlbi5pZih2YWxpZCwgKCkgPT4gdGhpcy5tZXJnZUV2YWx1YXRlZChzY2hlbWFDeHQsIGNvZGVnZW5fMS5OYW1lKSk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gS2V5d29yZEN4dDsKICAgIGZ1bmN0aW9uIGtleXdvcmRDb2RlKGl0LCBrZXl3b3JkLCBkZWYsIHJ1bGVUeXBlKSB7CiAgICAgIGNvbnN0IGN4dCA9IG5ldyBLZXl3b3JkQ3h0KGl0LCBkZWYsIGtleXdvcmQpOwogICAgICBpZiAoImNvZGUiIGluIGRlZikgewogICAgICAgIGRlZi5jb2RlKGN4dCwgcnVsZVR5cGUpOwogICAgICB9IGVsc2UgaWYgKGN4dC4kZGF0YSAmJiBkZWYudmFsaWRhdGUpIHsKICAgICAgICAoMCwga2V5d29yZF8xLmZ1bmNLZXl3b3JkQ29kZSkoY3h0LCBkZWYpOwogICAgICB9IGVsc2UgaWYgKCJtYWNybyIgaW4gZGVmKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5tYWNyb0tleXdvcmRDb2RlKShjeHQsIGRlZik7CiAgICAgIH0gZWxzZSBpZiAoZGVmLmNvbXBpbGUgfHwgZGVmLnZhbGlkYXRlKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5mdW5jS2V5d29yZENvZGUpKGN4dCwgZGVmKTsKICAgICAgfQogICAgfQogICAgdmFyIEpTT05fUE9JTlRFUiA9IC9eXC8oPzpbXn5dfH4wfH4xKSokLzsKICAgIHZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXihbMC05XSspKCN8XC8oPzpbXn5dfH4wfH4xKSopPyQvOwogICAgZnVuY3Rpb24gZ2V0RGF0YSgkZGF0YSwgeyBkYXRhTGV2ZWwsIGRhdGFOYW1lcywgZGF0YVBhdGhBcnIgfSkgewogICAgICBsZXQganNvblBvaW50ZXI7CiAgICAgIGxldCBkYXRhOwogICAgICBpZiAoJGRhdGEgPT09ICIiKQogICAgICAgIHJldHVybiBuYW1lc18xLmRlZmF1bHQucm9vdERhdGE7CiAgICAgIGlmICgkZGF0YVswXSA9PT0gIi8iKSB7CiAgICAgICAgaWYgKCFKU09OX1BPSU5URVIudGVzdCgkZGF0YSkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSlNPTi1wb2ludGVyOiAkeyRkYXRhfWApOwogICAgICAgIGpzb25Qb2ludGVyID0gJGRhdGE7CiAgICAgICAgZGF0YSA9IG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gUkVMQVRJVkVfSlNPTl9QT0lOVEVSLmV4ZWMoJGRhdGEpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKU09OLXBvaW50ZXI6ICR7JGRhdGF9YCk7CiAgICAgICAgY29uc3QgdXAgPSArbWF0Y2hlc1sxXTsKICAgICAgICBqc29uUG9pbnRlciA9IG1hdGNoZXNbMl07CiAgICAgICAgaWYgKGpzb25Qb2ludGVyID09PSAiIyIpIHsKICAgICAgICAgIGlmICh1cCA+PSBkYXRhTGV2ZWwpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1zZygicHJvcGVydHkvaW5kZXgiLCB1cCkpOwogICAgICAgICAgcmV0dXJuIGRhdGFQYXRoQXJyW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICB9CiAgICAgICAgaWYgKHVwID4gZGF0YUxldmVsKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTXNnKCJkYXRhIiwgdXApKTsKICAgICAgICBkYXRhID0gZGF0YU5hbWVzW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICBpZiAoIWpzb25Qb2ludGVyKQogICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgIH0KICAgICAgbGV0IGV4cHIgPSBkYXRhOwogICAgICBjb25zdCBzZWdtZW50cyA9IGpzb25Qb2ludGVyLnNwbGl0KCIvIik7CiAgICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBzZWdtZW50cykgewogICAgICAgIGlmIChzZWdtZW50KSB7CiAgICAgICAgICBkYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KSgoMCwgdXRpbF8xLnVuZXNjYXBlSnNvblBvaW50ZXIpKHNlZ21lbnQpKX1gOwogICAgICAgICAgZXhwciA9ICgwLCBjb2RlZ2VuXzEuXylgJHtleHByfSAmJiAke2RhdGF9YDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGV4cHI7CiAgICAgIGZ1bmN0aW9uIGVycm9yTXNnKHBvaW50ZXJUeXBlLCB1cCkgewogICAgICAgIHJldHVybiBgQ2Fubm90IGFjY2VzcyAke3BvaW50ZXJUeXBlfSAke3VwfSBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJHtkYXRhTGV2ZWx9YDsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0RGF0YSA9IGdldERhdGE7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3ZhbGlkYXRpb25fZXJyb3IuanMKdmFyIHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgVmFsaWRhdGlvbkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKGVycm9ycykgewogICAgICAgIHN1cGVyKCJ2YWxpZGF0aW9uIGZhaWxlZCIpOwogICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzOwogICAgICAgIHRoaXMuYWp2ID0gdGhpcy52YWxpZGF0aW9uID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBWYWxpZGF0aW9uRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3JlZl9lcnJvci5qcwp2YXIgcmVxdWlyZV9yZWZfZXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVmX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgTWlzc2luZ1JlZkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKHJlc29sdmVyLCBiYXNlSWQsIHJlZiwgbXNnKSB7CiAgICAgICAgc3VwZXIobXNnIHx8IGBjYW4ndCByZXNvbHZlIHJlZmVyZW5jZSAke3JlZn0gZnJvbSBpZCAke2Jhc2VJZH1gKTsKICAgICAgICB0aGlzLm1pc3NpbmdSZWYgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHJlc29sdmVyLCBiYXNlSWQsIHJlZik7CiAgICAgICAgdGhpcy5taXNzaW5nU2NoZW1hID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkocmVzb2x2ZXIsIHRoaXMubWlzc2luZ1JlZikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IE1pc3NpbmdSZWZFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvaW5kZXguanMKdmFyIHJlcXVpcmVfY29tcGlsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGV4cG9ydHMyLnJlc29sdmVSZWYgPSBleHBvcnRzMi5jb21waWxlU2NoZW1hID0gZXhwb3J0czIuU2NoZW1hRW52ID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIHZhciBTY2hlbWFFbnYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGVudikgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLnJlZnMgPSB7fTsKICAgICAgICB0aGlzLmR5bmFtaWNBbmNob3JzID0ge307CiAgICAgICAgbGV0IHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBlbnYuc2NoZW1hID09ICJvYmplY3QiKQogICAgICAgICAgc2NoZW1hMiA9IGVudi5zY2hlbWE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBlbnYuc2NoZW1hOwogICAgICAgIHRoaXMuc2NoZW1hSWQgPSBlbnYuc2NoZW1hSWQ7CiAgICAgICAgdGhpcy5yb290ID0gZW52LnJvb3QgfHwgdGhpczsKICAgICAgICB0aGlzLmJhc2VJZCA9IChfYSA9IGVudi5iYXNlSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICgwLCByZXNvbHZlXzEubm9ybWFsaXplSWQpKHNjaGVtYTIgPT09IG51bGwgfHwgc2NoZW1hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hMltlbnYuc2NoZW1hSWQgfHwgIiRpZCJdKTsKICAgICAgICB0aGlzLnNjaGVtYVBhdGggPSBlbnYuc2NoZW1hUGF0aDsKICAgICAgICB0aGlzLmxvY2FsUmVmcyA9IGVudi5sb2NhbFJlZnM7CiAgICAgICAgdGhpcy5tZXRhID0gZW52Lm1ldGE7CiAgICAgICAgdGhpcy4kYXN5bmMgPSBzY2hlbWEyID09PSBudWxsIHx8IHNjaGVtYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYTIuJGFzeW5jOwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hRW52ID0gU2NoZW1hRW52OwogICAgZnVuY3Rpb24gY29tcGlsZVNjaGVtYShzY2gpIHsKICAgICAgY29uc3QgX3NjaCA9IGdldENvbXBpbGluZ1NjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICAgIGlmIChfc2NoKQogICAgICAgIHJldHVybiBfc2NoOwogICAgICBjb25zdCByb290SWQgPSAoMCwgcmVzb2x2ZV8xLmdldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHNjaC5yb290LmJhc2VJZCk7CiAgICAgIGNvbnN0IHsgZXM1LCBsaW5lcyB9ID0gdGhpcy5vcHRzLmNvZGU7CiAgICAgIGNvbnN0IHsgb3duUHJvcGVydGllcyB9ID0gdGhpcy5vcHRzOwogICAgICBjb25zdCBnZW4gPSBuZXcgY29kZWdlbl8xLkNvZGVHZW4odGhpcy5zY29wZSwgeyBlczUsIGxpbmVzLCBvd25Qcm9wZXJ0aWVzIH0pOwogICAgICBsZXQgX1ZhbGlkYXRpb25FcnJvcjsKICAgICAgaWYgKHNjaC4kYXN5bmMpIHsKICAgICAgICBfVmFsaWRhdGlvbkVycm9yID0gZ2VuLnNjb3BlVmFsdWUoIkVycm9yIiwgewogICAgICAgICAgcmVmOiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdCwKICAgICAgICAgIGNvZGU6ICgwLCBjb2RlZ2VuXzEuXylgcmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yIikuZGVmYXVsdGAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZGF0ZU5hbWUgPSBnZW4uc2NvcGVOYW1lKCJ2YWxpZGF0ZSIpOwogICAgICBzY2gudmFsaWRhdGVOYW1lID0gdmFsaWRhdGVOYW1lOwogICAgICBjb25zdCBzY2hlbWFDeHQgPSB7CiAgICAgICAgZ2VuLAogICAgICAgIGFsbEVycm9yczogdGhpcy5vcHRzLmFsbEVycm9ycywKICAgICAgICBkYXRhOiBuYW1lc18xLmRlZmF1bHQuZGF0YSwKICAgICAgICBwYXJlbnREYXRhOiBuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwKICAgICAgICBwYXJlbnREYXRhUHJvcGVydHk6IG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksCiAgICAgICAgZGF0YU5hbWVzOiBbbmFtZXNfMS5kZWZhdWx0LmRhdGFdLAogICAgICAgIGRhdGFQYXRoQXJyOiBbY29kZWdlbl8xLm5pbF0sCiAgICAgICAgLy8gVE9ETyBjYW4gaXRzIGxlbmd0aCBiZSB1c2VkIGFzIGRhdGFMZXZlbCBpZiBuaWwgaXMgcmVtb3ZlZD8KICAgICAgICBkYXRhTGV2ZWw6IDAsCiAgICAgICAgZGF0YVR5cGVzOiBbXSwKICAgICAgICBkZWZpbmVkUHJvcGVydGllczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwKICAgICAgICB0b3BTY2hlbWFSZWY6IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCB0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUgPyB7IHJlZjogc2NoLnNjaGVtYSwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaC5zY2hlbWEpIH0gOiB7IHJlZjogc2NoLnNjaGVtYSB9KSwKICAgICAgICB2YWxpZGF0ZU5hbWUsCiAgICAgICAgVmFsaWRhdGlvbkVycm9yOiBfVmFsaWRhdGlvbkVycm9yLAogICAgICAgIHNjaGVtYTogc2NoLnNjaGVtYSwKICAgICAgICBzY2hlbWFFbnY6IHNjaCwKICAgICAgICByb290SWQsCiAgICAgICAgYmFzZUlkOiBzY2guYmFzZUlkIHx8IHJvb3RJZCwKICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgIGVyclNjaGVtYVBhdGg6IHNjaC5zY2hlbWFQYXRoIHx8ICh0aGlzLm9wdHMuanRkID8gIiIgOiAiIyIpLAogICAgICAgIGVycm9yUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAiImAsCiAgICAgICAgb3B0czogdGhpcy5vcHRzLAogICAgICAgIHNlbGY6IHRoaXMKICAgICAgfTsKICAgICAgbGV0IHNvdXJjZUNvZGU7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fY29tcGlsYXRpb25zLmFkZChzY2gpOwogICAgICAgICgwLCB2YWxpZGF0ZV8xLnZhbGlkYXRlRnVuY3Rpb25Db2RlKShzY2hlbWFDeHQpOwogICAgICAgIGdlbi5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7CiAgICAgICAgY29uc3QgdmFsaWRhdGVDb2RlID0gZ2VuLnRvU3RyaW5nKCk7CiAgICAgICAgc291cmNlQ29kZSA9IGAke2dlbi5zY29wZVJlZnMobmFtZXNfMS5kZWZhdWx0LnNjb3BlKX1yZXR1cm4gJHt2YWxpZGF0ZUNvZGV9YDsKICAgICAgICBpZiAodGhpcy5vcHRzLmNvZGUucHJvY2VzcykKICAgICAgICAgIHNvdXJjZUNvZGUgPSB0aGlzLm9wdHMuY29kZS5wcm9jZXNzKHNvdXJjZUNvZGUsIHNjaCk7CiAgICAgICAgY29uc3QgbWFrZVZhbGlkYXRlID0gbmV3IEZ1bmN0aW9uKGAke25hbWVzXzEuZGVmYXVsdC5zZWxmfWAsIGAke25hbWVzXzEuZGVmYXVsdC5zY29wZX1gLCBzb3VyY2VDb2RlKTsKICAgICAgICBjb25zdCB2YWxpZGF0ZSA9IG1ha2VWYWxpZGF0ZSh0aGlzLCB0aGlzLnNjb3BlLmdldCgpKTsKICAgICAgICB0aGlzLnNjb3BlLnZhbHVlKHZhbGlkYXRlTmFtZSwgeyByZWY6IHZhbGlkYXRlIH0pOwogICAgICAgIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7CiAgICAgICAgdmFsaWRhdGUuc2NoZW1hID0gc2NoLnNjaGVtYTsKICAgICAgICB2YWxpZGF0ZS5zY2hlbWFFbnYgPSBzY2g7CiAgICAgICAgaWYgKHNjaC4kYXN5bmMpCiAgICAgICAgICB2YWxpZGF0ZS4kYXN5bmMgPSB0cnVlOwogICAgICAgIGlmICh0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUpIHsKICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZSA9IHsgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZUNvZGUsIHNjb3BlVmFsdWVzOiBnZW4uX3ZhbHVlcyB9OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vcHRzLnVuZXZhbHVhdGVkKSB7CiAgICAgICAgICBjb25zdCB7IHByb3BzLCBpdGVtcyB9ID0gc2NoZW1hQ3h0OwogICAgICAgICAgdmFsaWRhdGUuZXZhbHVhdGVkID0gewogICAgICAgICAgICBwcm9wczogcHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IHByb3BzLAogICAgICAgICAgICBpdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IGl0ZW1zLAogICAgICAgICAgICBkeW5hbWljUHJvcHM6IHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUsCiAgICAgICAgICAgIGR5bmFtaWNJdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0ZS5zb3VyY2UpCiAgICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZS5ldmFsdWF0ZWQgPSAoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkodmFsaWRhdGUuZXZhbHVhdGVkKTsKICAgICAgICB9CiAgICAgICAgc2NoLnZhbGlkYXRlID0gdmFsaWRhdGU7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGRlbGV0ZSBzY2gudmFsaWRhdGU7CiAgICAgICAgZGVsZXRlIHNjaC52YWxpZGF0ZU5hbWU7CiAgICAgICAgaWYgKHNvdXJjZUNvZGUpCiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigiRXJyb3IgY29tcGlsaW5nIHNjaGVtYSwgZnVuY3Rpb24gY29kZToiLCBzb3VyY2VDb2RlKTsKICAgICAgICB0aHJvdyBlOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucy5kZWxldGUoc2NoKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY29tcGlsZVNjaGVtYSA9IGNvbXBpbGVTY2hlbWE7CiAgICBmdW5jdGlvbiByZXNvbHZlUmVmKHJvb3QsIGJhc2VJZCwgcmVmKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgcmVmKTsKICAgICAgY29uc3Qgc2NoT3JGdW5jID0gcm9vdC5yZWZzW3JlZl07CiAgICAgIGlmIChzY2hPckZ1bmMpCiAgICAgICAgcmV0dXJuIHNjaE9yRnVuYzsKICAgICAgbGV0IF9zY2ggPSByZXNvbHZlLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHNjaGVtYTIgPSAoX2EgPSByb290LmxvY2FsUmVmcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3JlZl07CiAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGlmIChzY2hlbWEyKQogICAgICAgICAgX3NjaCA9IG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkKICAgICAgICByZXR1cm47CiAgICAgIHJldHVybiByb290LnJlZnNbcmVmXSA9IGlubGluZU9yQ29tcGlsZS5jYWxsKHRoaXMsIF9zY2gpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVJlZiA9IHJlc29sdmVSZWY7CiAgICBmdW5jdGlvbiBpbmxpbmVPckNvbXBpbGUoc2NoKSB7CiAgICAgIGlmICgoMCwgcmVzb2x2ZV8xLmlubGluZVJlZikoc2NoLnNjaGVtYSwgdGhpcy5vcHRzLmlubGluZVJlZnMpKQogICAgICAgIHJldHVybiBzY2guc2NoZW1hOwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gc2NoIDogY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRDb21waWxpbmdTY2hlbWEoc2NoRW52KSB7CiAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHRoaXMuX2NvbXBpbGF0aW9ucykgewogICAgICAgIGlmIChzYW1lU2NoZW1hRW52KHNjaCwgc2NoRW52KSkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGdldENvbXBpbGluZ1NjaGVtYTsKICAgIGZ1bmN0aW9uIHNhbWVTY2hlbWFFbnYoczEsIHMyKSB7CiAgICAgIHJldHVybiBzMS5zY2hlbWEgPT09IHMyLnNjaGVtYSAmJiBzMS5yb290ID09PSBzMi5yb290ICYmIHMxLmJhc2VJZCA9PT0gczIuYmFzZUlkOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShyb290LCByZWYpIHsKICAgICAgbGV0IHNjaDsKICAgICAgd2hpbGUgKHR5cGVvZiAoc2NoID0gdGhpcy5yZWZzW3JlZl0pID09ICJzdHJpbmciKQogICAgICAgIHJlZiA9IHNjaDsKICAgICAgcmV0dXJuIHNjaCB8fCB0aGlzLnNjaGVtYXNbcmVmXSB8fCByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEocm9vdCwgcmVmKSB7CiAgICAgIGNvbnN0IHAgPSB0aGlzLm9wdHMudXJpUmVzb2x2ZXIucGFyc2UocmVmKTsKICAgICAgY29uc3QgcmVmUGF0aCA9ICgwLCByZXNvbHZlXzEuX2dldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHApOwogICAgICBsZXQgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLCByb290LmJhc2VJZCwgdm9pZCAwKTsKICAgICAgaWYgKE9iamVjdC5rZXlzKHJvb3Quc2NoZW1hKS5sZW5ndGggPiAwICYmIHJlZlBhdGggPT09IGJhc2VJZCkgewogICAgICAgIHJldHVybiBnZXRKc29uUG9pbnRlci5jYWxsKHRoaXMsIHAsIHJvb3QpOwogICAgICB9CiAgICAgIGNvbnN0IGlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmUGF0aCk7CiAgICAgIGNvbnN0IHNjaE9yUmVmID0gdGhpcy5yZWZzW2lkXSB8fCB0aGlzLnNjaGVtYXNbaWRdOwogICAgICBpZiAodHlwZW9mIHNjaE9yUmVmID09ICJzdHJpbmciKSB7CiAgICAgICAgY29uc3Qgc2NoID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHNjaE9yUmVmKTsKICAgICAgICBpZiAodHlwZW9mIChzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2guc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoKTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIChzY2hPclJlZiA9PT0gbnVsbCB8fCBzY2hPclJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoT3JSZWYuc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgcmV0dXJuOwogICAgICBpZiAoIXNjaE9yUmVmLnZhbGlkYXRlKQogICAgICAgIGNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2hPclJlZik7CiAgICAgIGlmIChpZCA9PT0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmKSkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyIH0gPSBzY2hPclJlZjsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgY29uc3Qgc2NoSWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICBpZiAoc2NoSWQpCiAgICAgICAgICBiYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHRoaXMub3B0cy51cmlSZXNvbHZlciwgYmFzZUlkLCBzY2hJZCk7CiAgICAgICAgcmV0dXJuIG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoT3JSZWYpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IHJlc29sdmVTY2hlbWE7CiAgICB2YXIgUFJFVkVOVF9TQ09QRV9DSEFOR0UgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJwcm9wZXJ0aWVzIiwKICAgICAgInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgImVudW0iLAogICAgICAiZGVwZW5kZW5jaWVzIiwKICAgICAgImRlZmluaXRpb25zIgogICAgXSk7CiAgICBmdW5jdGlvbiBnZXRKc29uUG9pbnRlcihwYXJzZWRSZWYsIHsgYmFzZUlkLCBzY2hlbWE6IHNjaGVtYTIsIHJvb3QgfSkgewogICAgICB2YXIgX2E7CiAgICAgIGlmICgoKF9hID0gcGFyc2VkUmVmLmZyYWdtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF0pICE9PSAiLyIpCiAgICAgICAgcmV0dXJuOwogICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFyc2VkUmVmLmZyYWdtZW50LnNsaWNlKDEpLnNwbGl0KCIvIikpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIikKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBwYXJ0U2NoZW1hID0gc2NoZW1hMlsoMCwgdXRpbF8xLnVuZXNjYXBlRnJhZ21lbnQpKHBhcnQpXTsKICAgICAgICBpZiAocGFydFNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHNjaGVtYTIgPSBwYXJ0U2NoZW1hOwogICAgICAgIGNvbnN0IHNjaElkID0gdHlwZW9mIHNjaGVtYTIgPT09ICJvYmplY3QiICYmIHNjaGVtYTJbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICBpZiAoIVBSRVZFTlRfU0NPUEVfQ0hBTkdFLmhhcyhwYXJ0KSAmJiBzY2hJZCkgewogICAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoSWQpOwogICAgICAgIH0KICAgICAgfQogICAgICBsZXQgZW52OwogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgIT0gImJvb2xlYW4iICYmIHNjaGVtYTIuJHJlZiAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgdGhpcy5SVUxFUykpIHsKICAgICAgICBjb25zdCAkcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoZW1hMi4kcmVmKTsKICAgICAgICBlbnYgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgJHJlZik7CiAgICAgIH0KICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICBlbnYgPSBlbnYgfHwgbmV3IFNjaGVtYUVudih7IHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hSWQsIHJvb3QsIGJhc2VJZCB9KTsKICAgICAgaWYgKGVudi5zY2hlbWEgIT09IGVudi5yb290LnNjaGVtYSkKICAgICAgICByZXR1cm4gZW52OwogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24KdmFyIHJlcXVpcmVfZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRpZDogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIyIsCiAgICAgIGRlc2NyaXB0aW9uOiAiTWV0YS1zY2hlbWEgZm9yICRkYXRhIHJlZmVyZW5jZSAoSlNPTiBBbnlTY2hlbWEgZXh0ZW5zaW9uIHByb3Bvc2FsKSIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICByZXF1aXJlZDogWyIkZGF0YSJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGRhdGE6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgYW55T2Y6IFt7IGZvcm1hdDogInJlbGF0aXZlLWpzb24tcG9pbnRlciIgfSwgeyBmb3JtYXQ6ICJqc29uLXBvaW50ZXIiIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzCnZhciByZXF1aXJlX3Njb3BlZENoYXJzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEhFWCA9IHsKICAgICAgMDogMCwKICAgICAgMTogMSwKICAgICAgMjogMiwKICAgICAgMzogMywKICAgICAgNDogNCwKICAgICAgNTogNSwKICAgICAgNjogNiwKICAgICAgNzogNywKICAgICAgODogOCwKICAgICAgOTogOSwKICAgICAgYTogMTAsCiAgICAgIEE6IDEwLAogICAgICBiOiAxMSwKICAgICAgQjogMTEsCiAgICAgIGM6IDEyLAogICAgICBDOiAxMiwKICAgICAgZDogMTMsCiAgICAgIEQ6IDEzLAogICAgICBlOiAxNCwKICAgICAgRTogMTQsCiAgICAgIGY6IDE1LAogICAgICBGOiAxNQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgSEVYCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC11cmktbnBtLTMuMC4zLTA4NzQwNzI2MjUtMTAuemlwL25vZGVfbW9kdWxlcy9mYXN0LXVyaS9saWIvdXRpbHMuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBIRVggfSA9IHJlcXVpcmVfc2NvcGVkQ2hhcnMoKTsKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUlQdjQoaG9zdCkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICIuIikgPCAzKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY0OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkL3UpIHx8IFtdOwogICAgICBjb25zdCBbYWRkcmVzc10gPSBtYXRjaGVzOwogICAgICBpZiAoYWRkcmVzcykgewogICAgICAgIHJldHVybiB7IGhvc3Q6IHN0cmlwTGVhZGluZ1plcm9zKGFkZHJlc3MsICIuIiksIGlzSVBWNDogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNDogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGlucHV0LCBrZWVwWmVybyA9IGZhbHNlKSB7CiAgICAgIGxldCBhY2MgPSAiIjsKICAgICAgbGV0IHN0cmlwID0gdHJ1ZTsKICAgICAgZm9yIChjb25zdCBjIG9mIGlucHV0KSB7CiAgICAgICAgaWYgKEhFWFtjXSA9PT0gdm9pZCAwKSByZXR1cm4gdm9pZCAwOwogICAgICAgIGlmIChjICE9PSAiMCIgJiYgc3RyaXAgPT09IHRydWUpIHN0cmlwID0gZmFsc2U7CiAgICAgICAgaWYgKCFzdHJpcCkgYWNjICs9IGM7CiAgICAgIH0KICAgICAgaWYgKGtlZXBaZXJvICYmIGFjYy5sZW5ndGggPT09IDApIGFjYyA9ICIwIjsKICAgICAgcmV0dXJuIGFjYzsKICAgIH0KICAgIGZ1bmN0aW9uIGdldElQVjYoaW5wdXQpIHsKICAgICAgbGV0IHRva2VuQ291bnQgPSAwOwogICAgICBjb25zdCBvdXRwdXQgPSB7IGVycm9yOiBmYWxzZSwgYWRkcmVzczogIiIsIHpvbmU6ICIiIH07CiAgICAgIGNvbnN0IGFkZHJlc3MgPSBbXTsKICAgICAgY29uc3QgYnVmZmVyID0gW107CiAgICAgIGxldCBpc1pvbmUgPSBmYWxzZTsKICAgICAgbGV0IGVuZGlwdjZFbmNvdW50ZXJlZCA9IGZhbHNlOwogICAgICBsZXQgZW5kSXB2NiA9IGZhbHNlOwogICAgICBmdW5jdGlvbiBjb25zdW1lKCkgewogICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7CiAgICAgICAgICBpZiAoaXNab25lID09PSBmYWxzZSkgewogICAgICAgICAgICBjb25zdCBoZXggPSBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQoYnVmZmVyKTsKICAgICAgICAgICAgaWYgKGhleCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgYWRkcmVzcy5wdXNoKGhleCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgb3V0cHV0LmVycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3Vyc29yID0gaW5wdXRbaV07CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIlsiIHx8IGN1cnNvciA9PT0gIl0iKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIjoiKSB7CiAgICAgICAgICBpZiAoZW5kaXB2NkVuY291bnRlcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgIGVuZElwdjYgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFjb25zdW1lKCkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICB0b2tlbkNvdW50Kys7CiAgICAgICAgICBhZGRyZXNzLnB1c2goIjoiKTsKICAgICAgICAgIGlmICh0b2tlbkNvdW50ID4gNykgewogICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChpIC0gMSA+PSAwICYmIGlucHV0W2kgLSAxXSA9PT0gIjoiKSB7CiAgICAgICAgICAgIGVuZGlwdjZFbmNvdW50ZXJlZCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciA9PT0gIiUiKSB7CiAgICAgICAgICBpZiAoIWNvbnN1bWUoKSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlzWm9uZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKGN1cnNvcik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICBpZiAoaXNab25lKSB7CiAgICAgICAgICBvdXRwdXQuem9uZSA9IGJ1ZmZlci5qb2luKCIiKTsKICAgICAgICB9IGVsc2UgaWYgKGVuZElwdjYpIHsKICAgICAgICAgIGFkZHJlc3MucHVzaChidWZmZXIuam9pbigiIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhZGRyZXNzLnB1c2goc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGJ1ZmZlcikpOwogICAgICAgIH0KICAgICAgfQogICAgICBvdXRwdXQuYWRkcmVzcyA9IGFkZHJlc3Muam9pbigiIik7CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVJUHY2KGhvc3QsIG9wdHMgPSB7fSkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICI6IikgPCAyKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY2OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IGlwdjYgPSBnZXRJUFY2KGhvc3QpOwogICAgICBpZiAoIWlwdjYuZXJyb3IpIHsKICAgICAgICBsZXQgbmV3SG9zdCA9IGlwdjYuYWRkcmVzczsKICAgICAgICBsZXQgZXNjYXBlZEhvc3QgPSBpcHY2LmFkZHJlc3M7CiAgICAgICAgaWYgKGlwdjYuem9uZSkgewogICAgICAgICAgbmV3SG9zdCArPSAiJSIgKyBpcHY2LnpvbmU7CiAgICAgICAgICBlc2NhcGVkSG9zdCArPSAiJTI1IiArIGlwdjYuem9uZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgaG9zdDogbmV3SG9zdCwgZXNjYXBlZEhvc3QsIGlzSVBWNjogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNjogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaXBMZWFkaW5nWmVyb3Moc3RyMiwgdG9rZW4pIHsKICAgICAgbGV0IG91dCA9ICIiOwogICAgICBsZXQgc2tpcCA9IHRydWU7CiAgICAgIGNvbnN0IGwgPSBzdHIyLmxlbmd0aDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gc3RyMltpXTsKICAgICAgICBpZiAoYyA9PT0gIjAiICYmIHNraXApIHsKICAgICAgICAgIGlmIChpICsgMSA8PSBsICYmIHN0cjJbaSArIDFdID09PSB0b2tlbiB8fCBpICsgMSA9PT0gbCkgewogICAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoYyA9PT0gdG9rZW4pIHsKICAgICAgICAgICAgc2tpcCA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBza2lwID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbmRUb2tlbihzdHIyLCB0b2tlbikgewogICAgICBsZXQgaW5kID0gMDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHN0cjJbaV0gPT09IHRva2VuKSBpbmQrKzsKICAgICAgfQogICAgICByZXR1cm4gaW5kOwogICAgfQogICAgdmFyIFJEUzEgPSAvXlwuXC4/XC8vdTsKICAgIHZhciBSRFMyID0gL15cL1wuKD86XC98JCkvdTsKICAgIHZhciBSRFMzID0gL15cL1wuXC4oPzpcL3wkKS91OwogICAgdmFyIFJEUzUgPSAvXlwvPyg/Oi58XG4pKj8oPz1cL3wkKS91OwogICAgZnVuY3Rpb24gcmVtb3ZlRG90U2VnbWVudHMoaW5wdXQpIHsKICAgICAgY29uc3Qgb3V0cHV0ID0gW107CiAgICAgIHdoaWxlIChpbnB1dC5sZW5ndGgpIHsKICAgICAgICBpZiAoaW5wdXQubWF0Y2goUkRTMSkpIHsKICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMxLCAiIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMyKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzIsICIvIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMzKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzMsICIvIik7CiAgICAgICAgICBvdXRwdXQucG9wKCk7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gIi4iIHx8IGlucHV0ID09PSAiLi4iKSB7CiAgICAgICAgICBpbnB1dCA9ICIiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBpbSA9IGlucHV0Lm1hdGNoKFJEUzUpOwogICAgICAgICAgaWYgKGltKSB7CiAgICAgICAgICAgIGNvbnN0IHMgPSBpbVswXTsKICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZShzLmxlbmd0aCk7CiAgICAgICAgICAgIG91dHB1dC5wdXNoKHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGRvdCBzZWdtZW50IGNvbmRpdGlvbiIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gb3V0cHV0LmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgZXNjKSB7CiAgICAgIGNvbnN0IGZ1bmMgPSBlc2MgIT09IHRydWUgPyBlc2NhcGUgOiB1bmVzY2FwZTsKICAgICAgaWYgKGNvbXBvbmVudHMuc2NoZW1lICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnNjaGVtZSA9IGZ1bmMoY29tcG9uZW50cy5zY2hlbWUpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnVzZXJpbmZvICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnVzZXJpbmZvID0gZnVuYyhjb21wb25lbnRzLnVzZXJpbmZvKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5ob3N0ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLmhvc3QgPSBmdW5jKGNvbXBvbmVudHMuaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZnVuYyhjb21wb25lbnRzLnBhdGgpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnF1ZXJ5ID0gZnVuYyhjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5mcmFnbWVudCA9IGZ1bmMoY29tcG9uZW50cy5mcmFnbWVudCk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiByZWNvbXBvc2VBdXRob3JpdHkoY29tcG9uZW50cywgb3B0aW9ucykgewogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgaWYgKGNvbXBvbmVudHMudXNlcmluZm8gIT09IHZvaWQgMCkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMudXNlcmluZm8pOwogICAgICAgIHVyaVRva2Vucy5wdXNoKCJAIik7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgbGV0IGhvc3QgPSB1bmVzY2FwZShjb21wb25lbnRzLmhvc3QpOwogICAgICAgIGNvbnN0IGlwVjRyZXMgPSBub3JtYWxpemVJUHY0KGhvc3QpOwogICAgICAgIGlmIChpcFY0cmVzLmlzSVBWNCkgewogICAgICAgICAgaG9zdCA9IGlwVjRyZXMuaG9zdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3QgaXBWNnJlcyA9IG5vcm1hbGl6ZUlQdjYoaXBWNHJlcy5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICBpZiAoaXBWNnJlcy5pc0lQVjYgPT09IHRydWUpIHsKICAgICAgICAgICAgaG9zdCA9IGBbJHtpcFY2cmVzLmVzY2FwZWRIb3N0fV1gOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaG9zdCA9IGNvbXBvbmVudHMuaG9zdDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXJpVG9rZW5zLnB1c2goaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJudW1iZXIiIHx8IHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIjoiKTsKICAgICAgICB1cmlUb2tlbnMucHVzaChTdHJpbmcoY29tcG9uZW50cy5wb3J0KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaVRva2Vucy5sZW5ndGggPyB1cmlUb2tlbnMuam9pbigiIikgOiB2b2lkIDA7CiAgICB9CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgIHJlY29tcG9zZUF1dGhvcml0eSwKICAgICAgbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcsCiAgICAgIHJlbW92ZURvdFNlZ21lbnRzLAogICAgICBub3JtYWxpemVJUHY0LAogICAgICBub3JtYWxpemVJUHY2LAogICAgICBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3NjaGVtZXMuanMKdmFyIHJlcXVpcmVfc2NoZW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi9zY2hlbWVzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVVSURfUkVHID0gL15bXGRhLWZdezh9XGItW1xkYS1mXXs0fVxiLVtcZGEtZl17NH1cYi1bXGRhLWZdezR9XGItW1xkYS1mXXsxMn0kL2l1OwogICAgdmFyIFVSTl9SRUcgPSAvKFtcZGEtel1bXGRcLWEtel17MCwzMX0pOigoPzpbXHchJCcoKSorLFwtLjo7PUBdfCVbXGRhLWZdezJ9KSspL2l1OwogICAgZnVuY3Rpb24gaXNTZWN1cmUod3NDb21wb25lbnRzKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iID8gd3NDb21wb25lbnRzLnNlY3VyZSA6IFN0cmluZyh3c0NvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAid3NzIjsKICAgIH0KICAgIGZ1bmN0aW9uIGh0dHBQYXJzZShjb21wb25lbnRzKSB7CiAgICAgIGlmICghY29tcG9uZW50cy5ob3N0KSB7CiAgICAgICAgY29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgIkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LiI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBodHRwU2VyaWFsaXplKGNvbXBvbmVudHMpIHsKICAgICAgY29uc3Qgc2VjdXJlID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAiaHR0cHMiOwogICAgICBpZiAoY29tcG9uZW50cy5wb3J0ID09PSAoc2VjdXJlID8gNDQzIDogODApIHx8IGNvbXBvbmVudHMucG9ydCA9PT0gIiIpIHsKICAgICAgICBjb21wb25lbnRzLnBvcnQgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKCFjb21wb25lbnRzLnBhdGgpIHsKICAgICAgICBjb21wb25lbnRzLnBhdGggPSAiLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB3c1BhcnNlKHdzQ29tcG9uZW50cykgewogICAgICB3c0NvbXBvbmVudHMuc2VjdXJlID0gaXNTZWN1cmUod3NDb21wb25lbnRzKTsKICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9ICh3c0NvbXBvbmVudHMucGF0aCB8fCAiLyIpICsgKHdzQ29tcG9uZW50cy5xdWVyeSA/ICI/IiArIHdzQ29tcG9uZW50cy5xdWVyeSA6ICIiKTsKICAgICAgd3NDb21wb25lbnRzLnBhdGggPSB2b2lkIDA7CiAgICAgIHdzQ29tcG9uZW50cy5xdWVyeSA9IHZvaWQgMDsKICAgICAgcmV0dXJuIHdzQ29tcG9uZW50czsKICAgIH0KICAgIGZ1bmN0aW9uIHdzU2VyaWFsaXplKHdzQ29tcG9uZW50cykgewogICAgICBpZiAod3NDb21wb25lbnRzLnBvcnQgPT09IChpc1NlY3VyZSh3c0NvbXBvbmVudHMpID8gNDQzIDogODApIHx8IHdzQ29tcG9uZW50cy5wb3J0ID09PSAiIikgewogICAgICAgIHdzQ29tcG9uZW50cy5wb3J0ID0gdm9pZCAwOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgd3NDb21wb25lbnRzLnNjaGVtZSA9IHdzQ29tcG9uZW50cy5zZWN1cmUgPyAid3NzIiA6ICJ3cyI7CiAgICAgICAgd3NDb21wb25lbnRzLnNlY3VyZSA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAod3NDb21wb25lbnRzLnJlc291cmNlTmFtZSkgewogICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lLnNwbGl0KCI/Iik7CiAgICAgICAgd3NDb21wb25lbnRzLnBhdGggPSBwYXRoICYmIHBhdGggIT09ICIvIiA/IHBhdGggOiB2b2lkIDA7CiAgICAgICAgd3NDb21wb25lbnRzLnF1ZXJ5ID0gcXVlcnk7CiAgICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9IHZvaWQgMDsKICAgICAgfQogICAgICB3c0NvbXBvbmVudHMuZnJhZ21lbnQgPSB2b2lkIDA7CiAgICAgIHJldHVybiB3c0NvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm5QYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSB7CiAgICAgIGlmICghdXJuQ29tcG9uZW50cy5wYXRoKSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9ICJVUk4gY2FuIG5vdCBiZSBwYXJzZWQiOwogICAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSB1cm5Db21wb25lbnRzLnBhdGgubWF0Y2goVVJOX1JFRyk7CiAgICAgIGlmIChtYXRjaGVzKSB7CiAgICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uaWQgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSBtYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCB1cm5Db21wb25lbnRzLm5pZH1gOwogICAgICAgIGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTW3VyblNjaGVtZV07CiAgICAgICAgdXJuQ29tcG9uZW50cy5wYXRoID0gdm9pZCAwOwogICAgICAgIGlmIChzY2hlbWVIYW5kbGVyKSB7CiAgICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5wYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9IHVybkNvbXBvbmVudHMuZXJyb3IgfHwgIlVSTiBjYW4gbm90IGJlIHBhcnNlZC4iOwogICAgICB9CiAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJuU2VyaWFsaXplKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgIGNvbnN0IG5pZCA9IHVybkNvbXBvbmVudHMubmlkLnRvTG93ZXJDYXNlKCk7CiAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCBuaWR9YDsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbdXJuU2NoZW1lXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIpIHsKICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5zZXJpYWxpemUodXJuQ29tcG9uZW50cywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgY29uc3QgdXJpQ29tcG9uZW50cyA9IHVybkNvbXBvbmVudHM7CiAgICAgIGNvbnN0IG5zcyA9IHVybkNvbXBvbmVudHMubnNzOwogICAgICB1cmlDb21wb25lbnRzLnBhdGggPSBgJHtuaWQgfHwgb3B0aW9ucy5uaWR9OiR7bnNzfWA7CiAgICAgIG9wdGlvbnMuc2tpcEVzY2FwZSA9IHRydWU7CiAgICAgIHJldHVybiB1cmlDb21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJudXVpZFBhcnNlKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3QgdXVpZENvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzOwogICAgICB1dWlkQ29tcG9uZW50cy51dWlkID0gdXVpZENvbXBvbmVudHMubnNzOwogICAgICB1dWlkQ29tcG9uZW50cy5uc3MgPSB2b2lkIDA7CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiAoIXV1aWRDb21wb25lbnRzLnV1aWQgfHwgIVVVSURfUkVHLnRlc3QodXVpZENvbXBvbmVudHMudXVpZCkpKSB7CiAgICAgICAgdXVpZENvbXBvbmVudHMuZXJyb3IgPSB1dWlkQ29tcG9uZW50cy5lcnJvciB8fCAiVVVJRCBpcyBub3QgdmFsaWQuIjsKICAgICAgfQogICAgICByZXR1cm4gdXVpZENvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm51dWlkU2VyaWFsaXplKHV1aWRDb21wb25lbnRzKSB7CiAgICAgIGNvbnN0IHVybkNvbXBvbmVudHMgPSB1dWlkQ29tcG9uZW50czsKICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSAodXVpZENvbXBvbmVudHMudXVpZCB8fCAiIikudG9Mb3dlckNhc2UoKTsKICAgICAgcmV0dXJuIHVybkNvbXBvbmVudHM7CiAgICB9CiAgICB2YXIgaHR0cCA9IHsKICAgICAgc2NoZW1lOiAiaHR0cCIsCiAgICAgIGRvbWFpbkhvc3Q6IHRydWUsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciBodHRwcyA9IHsKICAgICAgc2NoZW1lOiAiaHR0cHMiLAogICAgICBkb21haW5Ib3N0OiBodHRwLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3cyA9IHsKICAgICAgc2NoZW1lOiAid3MiLAogICAgICBkb21haW5Ib3N0OiB0cnVlLAogICAgICBwYXJzZTogd3NQYXJzZSwKICAgICAgc2VyaWFsaXplOiB3c1NlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3c3MgPSB7CiAgICAgIHNjaGVtZTogIndzcyIsCiAgICAgIGRvbWFpbkhvc3Q6IHdzLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiB3cy5wYXJzZSwKICAgICAgc2VyaWFsaXplOiB3cy5zZXJpYWxpemUKICAgIH07CiAgICB2YXIgdXJuID0gewogICAgICBzY2hlbWU6ICJ1cm4iLAogICAgICBwYXJzZTogdXJuUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogdXJuU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIHVybnV1aWQgPSB7CiAgICAgIHNjaGVtZTogInVybjp1dWlkIiwKICAgICAgcGFyc2U6IHVybnV1aWRQYXJzZSwKICAgICAgc2VyaWFsaXplOiB1cm51dWlkU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIFNDSEVNRVMgPSB7CiAgICAgIGh0dHAsCiAgICAgIGh0dHBzLAogICAgICB3cywKICAgICAgd3NzLAogICAgICB1cm4sCiAgICAgICJ1cm46dXVpZCI6IHVybnV1aWQKICAgIH07CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBTQ0hFTUVTOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2luZGV4LmpzCnZhciByZXF1aXJlX2Zhc3RfdXJpID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBub3JtYWxpemVJUHY2LCBub3JtYWxpemVJUHY0LCByZW1vdmVEb3RTZWdtZW50cywgcmVjb21wb3NlQXV0aG9yaXR5LCBub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyB9ID0gcmVxdWlyZV91dGlsczIoKTsKICAgIHZhciBTQ0hFTUVTID0gcmVxdWlyZV9zY2hlbWVzKCk7CiAgICBmdW5jdGlvbiBub3JtYWxpemUodXJpLCBvcHRpb25zKSB7CiAgICAgIGlmICh0eXBlb2YgdXJpID09PSAic3RyaW5nIikgewogICAgICAgIHVyaSA9IHNlcmlhbGl6ZShwYXJzZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpID09PSAib2JqZWN0IikgewogICAgICAgIHVyaSA9IHBhcnNlKHNlcmlhbGl6ZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXR1cm4gdXJpOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShiYXNlVVJJLCByZWxhdGl2ZVVSSSwgb3B0aW9ucykgewogICAgICBjb25zdCBzY2hlbWVsZXNzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBzY2hlbWU6ICJudWxsIiB9LCBvcHRpb25zKTsKICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlQ29tcG9uZW50cyhwYXJzZShiYXNlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHBhcnNlKHJlbGF0aXZlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHNjaGVtZWxlc3NPcHRpb25zLCB0cnVlKTsKICAgICAgcmV0dXJuIHNlcmlhbGl6ZShyZXNvbHZlZCwgeyAuLi5zY2hlbWVsZXNzT3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRzKGJhc2UsIHJlbGF0aXZlLCBvcHRpb25zLCBza2lwTm9ybWFsaXphdGlvbikgewogICAgICBjb25zdCB0YXJnZXQgPSB7fTsKICAgICAgaWYgKCFza2lwTm9ybWFsaXphdGlvbikgewogICAgICAgIGJhc2UgPSBwYXJzZShzZXJpYWxpemUoYmFzZSwgb3B0aW9ucyksIG9wdGlvbnMpOwogICAgICAgIHJlbGF0aXZlID0gcGFyc2Uoc2VyaWFsaXplKHJlbGF0aXZlLCBvcHRpb25zKSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiByZWxhdGl2ZS5zY2hlbWUpIHsKICAgICAgICB0YXJnZXQuc2NoZW1lID0gcmVsYXRpdmUuc2NoZW1lOwogICAgICAgIHRhcmdldC51c2VyaW5mbyA9IHJlbGF0aXZlLnVzZXJpbmZvOwogICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICB0YXJnZXQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7CiAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoIHx8ICIiKTsKICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocmVsYXRpdmUudXNlcmluZm8gIT09IHZvaWQgMCB8fCByZWxhdGl2ZS5ob3N0ICE9PSB2b2lkIDAgfHwgcmVsYXRpdmUucG9ydCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbzsKICAgICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICAgIHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDsKICAgICAgICAgIHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCAiIik7CiAgICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFyZWxhdGl2ZS5wYXRoKSB7CiAgICAgICAgICAgIHRhcmdldC5wYXRoID0gYmFzZS5wYXRoOwogICAgICAgICAgICBpZiAocmVsYXRpdmUucXVlcnkgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IGJhc2UucXVlcnk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChyZWxhdGl2ZS5wYXRoLmNoYXJBdCgwKSA9PT0gIi8iKSB7CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAoKGJhc2UudXNlcmluZm8gIT09IHZvaWQgMCB8fCBiYXNlLmhvc3QgIT09IHZvaWQgMCB8fCBiYXNlLnBvcnQgIT09IHZvaWQgMCkgJiYgIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSAiLyIgKyByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQucGF0aCA9IGJhc2UucGF0aC5zbGljZSgwLCBiYXNlLnBhdGgubGFzdEluZGV4T2YoIi8iKSArIDEpICsgcmVsYXRpdmUucGF0aDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyh0YXJnZXQucGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7CiAgICAgICAgICB9CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSBiYXNlLnVzZXJpbmZvOwogICAgICAgICAgdGFyZ2V0Lmhvc3QgPSBiYXNlLmhvc3Q7CiAgICAgICAgICB0YXJnZXQucG9ydCA9IGJhc2UucG9ydDsKICAgICAgICB9CiAgICAgICAgdGFyZ2V0LnNjaGVtZSA9IGJhc2Uuc2NoZW1lOwogICAgICB9CiAgICAgIHRhcmdldC5mcmFnbWVudCA9IHJlbGF0aXZlLmZyYWdtZW50OwogICAgICByZXR1cm4gdGFyZ2V0OwogICAgfQogICAgZnVuY3Rpb24gZXF1YWwodXJpQSwgdXJpQiwgb3B0aW9ucykgewogICAgICBpZiAodHlwZW9mIHVyaUEgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpQSA9IHVuZXNjYXBlKHVyaUEpOwogICAgICAgIHVyaUEgPSBzZXJpYWxpemUobm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcocGFyc2UodXJpQSwgb3B0aW9ucyksIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHVyaUEgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdXJpQSA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyh1cmlBLCB0cnVlKSwgeyAuLi5vcHRpb25zLCBza2lwRXNjYXBlOiB0cnVlIH0pOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgdXJpQiA9PT0gInN0cmluZyIpIHsKICAgICAgICB1cmlCID0gdW5lc2NhcGUodXJpQik7CiAgICAgICAgdXJpQiA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyhwYXJzZSh1cmlCLCBvcHRpb25zKSwgdHJ1ZSksIHsgLi4ub3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpQiA9PT0gIm9iamVjdCIpIHsKICAgICAgICB1cmlCID0gc2VyaWFsaXplKG5vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKHVyaUIsIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaUEudG9Mb3dlckNhc2UoKSA9PT0gdXJpQi50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gc2VyaWFsaXplKGNtcHRzLCBvcHRzKSB7CiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7CiAgICAgICAgaG9zdDogY21wdHMuaG9zdCwKICAgICAgICBzY2hlbWU6IGNtcHRzLnNjaGVtZSwKICAgICAgICB1c2VyaW5mbzogY21wdHMudXNlcmluZm8sCiAgICAgICAgcG9ydDogY21wdHMucG9ydCwKICAgICAgICBwYXRoOiBjbXB0cy5wYXRoLAogICAgICAgIHF1ZXJ5OiBjbXB0cy5xdWVyeSwKICAgICAgICBuaWQ6IGNtcHRzLm5pZCwKICAgICAgICBuc3M6IGNtcHRzLm5zcywKICAgICAgICB1dWlkOiBjbXB0cy51dWlkLAogICAgICAgIGZyYWdtZW50OiBjbXB0cy5mcmFnbWVudCwKICAgICAgICByZWZlcmVuY2U6IGNtcHRzLnJlZmVyZW5jZSwKICAgICAgICByZXNvdXJjZU5hbWU6IGNtcHRzLnJlc291cmNlTmFtZSwKICAgICAgICBzZWN1cmU6IGNtcHRzLnNlY3VyZSwKICAgICAgICBlcnJvcjogIiIKICAgICAgfTsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbKG9wdGlvbnMuc2NoZW1lIHx8IGNvbXBvbmVudHMuc2NoZW1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5zZXJpYWxpemUpIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKGNvbXBvbmVudHMsIG9wdGlvbnMpOwogICAgICBpZiAoY29tcG9uZW50cy5wYXRoICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoIW9wdGlvbnMuc2tpcEVzY2FwZSkgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZXNjYXBlKGNvbXBvbmVudHMucGF0aCk7CiAgICAgICAgICBpZiAoY29tcG9uZW50cy5zY2hlbWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBjb21wb25lbnRzLnBhdGggPSBjb21wb25lbnRzLnBhdGguc3BsaXQoIiUzQSIpLmpvaW4oIjoiKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gdW5lc2NhcGUoY29tcG9uZW50cy5wYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IiAmJiBjb21wb25lbnRzLnNjaGVtZSkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuc2NoZW1lLCAiOiIpOwogICAgICB9CiAgICAgIGNvbnN0IGF1dGhvcml0eSA9IHJlY29tcG9zZUF1dGhvcml0eShjb21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgaWYgKGF1dGhvcml0eSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IikgewogICAgICAgICAgdXJpVG9rZW5zLnB1c2goIi8vIik7CiAgICAgICAgfQogICAgICAgIHVyaVRva2Vucy5wdXNoKGF1dGhvcml0eSk7CiAgICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnBhdGguY2hhckF0KDApICE9PSAiLyIpIHsKICAgICAgICAgIHVyaVRva2Vucy5wdXNoKCIvIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnBhdGggIT09IHZvaWQgMCkgewogICAgICAgIGxldCBzID0gY29tcG9uZW50cy5wYXRoOwogICAgICAgIGlmICghb3B0aW9ucy5hYnNvbHV0ZVBhdGggJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLmFic29sdXRlUGF0aCkpIHsKICAgICAgICAgIHMgPSByZW1vdmVEb3RTZWdtZW50cyhzKTsKICAgICAgICB9CiAgICAgICAgaWYgKGF1dGhvcml0eSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBzID0gcy5yZXBsYWNlKC9eXC9cLy91LCAiLyUyRiIpOwogICAgICAgIH0KICAgICAgICB1cmlUb2tlbnMucHVzaChzKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIj8iLCBjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIiMiLCBjb21wb25lbnRzLmZyYWdtZW50KTsKICAgICAgfQogICAgICByZXR1cm4gdXJpVG9rZW5zLmpvaW4oIiIpOwogICAgfQogICAgdmFyIGhleExvb2tVcCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyNyB9LCAodiwgaykgPT4gL1teISIkJicoKSorLFwtLjs9X2BhLXp7fX5dL3UudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGspKSk7CiAgICBmdW5jdGlvbiBub25TaW1wbGVEb21haW4odmFsdWUpIHsKICAgICAgbGV0IGNvZGUgPSAwOwogICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTsKICAgICAgICBpZiAoY29kZSA+IDEyNiB8fCBoZXhMb29rVXBbY29kZV0pIHsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB2YXIgVVJJX1BBUlNFID0gL14oPzooW14jLzo/XSspOik/KD86XC9cLygoPzooW14jLz9AXSopQCk/KFxbW14jLz9cXV0rXF18W14jLzo/XSopKD86OihcZCopKT8pKT8oW14jP10qKSg/Olw/KFteI10qKSk/KD86IygoPzoufFtcblxyXSkqKSk/L3U7CiAgICBmdW5jdGlvbiBwYXJzZSh1cmksIG9wdHMpIHsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCBwYXJzZWQgPSB7CiAgICAgICAgc2NoZW1lOiB2b2lkIDAsCiAgICAgICAgdXNlcmluZm86IHZvaWQgMCwKICAgICAgICBob3N0OiAiIiwKICAgICAgICBwb3J0OiB2b2lkIDAsCiAgICAgICAgcGF0aDogIiIsCiAgICAgICAgcXVlcnk6IHZvaWQgMCwKICAgICAgICBmcmFnbWVudDogdm9pZCAwCiAgICAgIH07CiAgICAgIGNvbnN0IGdvdEVuY29kaW5nID0gdXJpLmluZGV4T2YoIiUiKSAhPT0gLTE7CiAgICAgIGxldCBpc0lQID0gZmFsc2U7CiAgICAgIGlmIChvcHRpb25zLnJlZmVyZW5jZSA9PT0gInN1ZmZpeCIpIHVyaSA9IChvcHRpb25zLnNjaGVtZSA/IG9wdGlvbnMuc2NoZW1lICsgIjoiIDogIiIpICsgIi8vIiArIHVyaTsKICAgICAgY29uc3QgbWF0Y2hlcyA9IHVyaS5tYXRjaChVUklfUEFSU0UpOwogICAgICBpZiAobWF0Y2hlcykgewogICAgICAgIHBhcnNlZC5zY2hlbWUgPSBtYXRjaGVzWzFdOwogICAgICAgIHBhcnNlZC51c2VyaW5mbyA9IG1hdGNoZXNbM107CiAgICAgICAgcGFyc2VkLmhvc3QgPSBtYXRjaGVzWzRdOwogICAgICAgIHBhcnNlZC5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApOwogICAgICAgIHBhcnNlZC5wYXRoID0gbWF0Y2hlc1s2XSB8fCAiIjsKICAgICAgICBwYXJzZWQucXVlcnkgPSBtYXRjaGVzWzddOwogICAgICAgIHBhcnNlZC5mcmFnbWVudCA9IG1hdGNoZXNbOF07CiAgICAgICAgaWYgKGlzTmFOKHBhcnNlZC5wb3J0KSkgewogICAgICAgICAgcGFyc2VkLnBvcnQgPSBtYXRjaGVzWzVdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyc2VkLmhvc3QpIHsKICAgICAgICAgIGNvbnN0IGlwdjRyZXN1bHQgPSBub3JtYWxpemVJUHY0KHBhcnNlZC5ob3N0KTsKICAgICAgICAgIGlmIChpcHY0cmVzdWx0LmlzSVBWNCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY29uc3QgaXB2NnJlc3VsdCA9IG5vcm1hbGl6ZUlQdjYoaXB2NHJlc3VsdC5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NnJlc3VsdC5ob3N0LnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlzSVAgPSBpcHY2cmVzdWx0LmlzSVBWNjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NHJlc3VsdC5ob3N0OwogICAgICAgICAgICBpc0lQID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5zY2hlbWUgPT09IHZvaWQgMCAmJiBwYXJzZWQudXNlcmluZm8gPT09IHZvaWQgMCAmJiBwYXJzZWQuaG9zdCA9PT0gdm9pZCAwICYmIHBhcnNlZC5wb3J0ID09PSB2b2lkIDAgJiYgIXBhcnNlZC5wYXRoICYmIHBhcnNlZC5xdWVyeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInNhbWUtZG9jdW1lbnQiOwogICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnNjaGVtZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInJlbGF0aXZlIjsKICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC5mcmFnbWVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gImFic29sdXRlIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcGFyc2VkLnJlZmVyZW5jZSA9ICJ1cmkiOwogICAgICAgIH0KICAgICAgICBpZiAob3B0aW9ucy5yZWZlcmVuY2UgJiYgb3B0aW9ucy5yZWZlcmVuY2UgIT09ICJzdWZmaXgiICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBwYXJzZWQucmVmZXJlbmNlKSB7CiAgICAgICAgICBwYXJzZWQuZXJyb3IgPSBwYXJzZWQuZXJyb3IgfHwgIlVSSSBpcyBub3QgYSAiICsgb3B0aW9ucy5yZWZlcmVuY2UgKyAiIHJlZmVyZW5jZS4iOwogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgcGFyc2VkLnNjaGVtZSB8fCAiIikudG9Mb3dlckNhc2UoKV07CiAgICAgICAgaWYgKCFvcHRpb25zLnVuaWNvZGVTdXBwb3J0ICYmICghc2NoZW1lSGFuZGxlciB8fCAhc2NoZW1lSGFuZGxlci51bmljb2RlU3VwcG9ydCkpIHsKICAgICAgICAgIGlmIChwYXJzZWQuaG9zdCAmJiAob3B0aW9ucy5kb21haW5Ib3N0IHx8IHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSAmJiBpc0lQID09PSBmYWxzZSAmJiBub25TaW1wbGVEb21haW4ocGFyc2VkLmhvc3QpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcGFyc2VkLmhvc3QgPSBVUkwuZG9tYWluVG9BU0NJSShwYXJzZWQuaG9zdC50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIEFTQ0lJOiAiICsgZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNjaGVtZUhhbmRsZXIgfHwgc2NoZW1lSGFuZGxlciAmJiAhc2NoZW1lSGFuZGxlci5za2lwTm9ybWFsaXplKSB7CiAgICAgICAgICBpZiAoZ290RW5jb2RpbmcgJiYgcGFyc2VkLnNjaGVtZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5zY2hlbWUgPSB1bmVzY2FwZShwYXJzZWQuc2NoZW1lKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChnb3RFbmNvZGluZyAmJiBwYXJzZWQuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gdW5lc2NhcGUocGFyc2VkLmhvc3QpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhcnNlZC5wYXRoICE9PSB2b2lkIDAgJiYgcGFyc2VkLnBhdGgubGVuZ3RoKSB7CiAgICAgICAgICAgIHBhcnNlZC5wYXRoID0gZXNjYXBlKHVuZXNjYXBlKHBhcnNlZC5wYXRoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGFyc2VkLmZyYWdtZW50ICE9PSB2b2lkIDAgJiYgcGFyc2VkLmZyYWdtZW50Lmxlbmd0aCkgewogICAgICAgICAgICBwYXJzZWQuZnJhZ21lbnQgPSBlbmNvZGVVUkkoZGVjb2RlVVJJQ29tcG9uZW50KHBhcnNlZC5mcmFnbWVudCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLnBhcnNlKSB7CiAgICAgICAgICBzY2hlbWVIYW5kbGVyLnBhcnNlKHBhcnNlZCwgb3B0aW9ucyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiVVJJIGNhbiBub3QgYmUgcGFyc2VkLiI7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhcnNlZDsKICAgIH0KICAgIHZhciBmYXN0VXJpID0gewogICAgICBTQ0hFTUVTLAogICAgICBub3JtYWxpemUsCiAgICAgIHJlc29sdmUsCiAgICAgIHJlc29sdmVDb21wb25lbnRzLAogICAgICBlcXVhbCwKICAgICAgc2VyaWFsaXplLAogICAgICBwYXJzZQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZGVmYXVsdCA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZmFzdFVyaSA9IGZhc3RVcmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3VyaS5qcwp2YXIgcmVxdWlyZV91cmkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdXJpLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXJpID0gcmVxdWlyZV9mYXN0X3VyaSgpOwogICAgdXJpLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91cmkiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB1cmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvcmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvZGVHZW4gPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IGV4cG9ydHMyLktleXdvcmRDeHQgPSB2b2lkIDA7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIktleXdvcmRDeHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0ZV8xLktleXdvcmRDeHQ7CiAgICB9IH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyaW5naWZ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cmluZ2lmeTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb2RlR2VuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLkNvZGVHZW47CiAgICB9IH0pOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIHJlZl9lcnJvcl8xID0gcmVxdWlyZV9yZWZfZXJyb3IoKTsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIGNvZGVnZW5fMiA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgJGRhdGFSZWZTY2hlbWEgPSByZXF1aXJlX2RhdGEoKTsKICAgIHZhciB1cmlfMSA9IHJlcXVpcmVfdXJpKCk7CiAgICB2YXIgZGVmYXVsdFJlZ0V4cCA9IChzdHIyLCBmbGFncykgPT4gbmV3IFJlZ0V4cChzdHIyLCBmbGFncyk7CiAgICBkZWZhdWx0UmVnRXhwLmNvZGUgPSAibmV3IFJlZ0V4cCI7CiAgICB2YXIgTUVUQV9JR05PUkVfT1BUSU9OUyA9IFsicmVtb3ZlQWRkaXRpb25hbCIsICJ1c2VEZWZhdWx0cyIsICJjb2VyY2VUeXBlcyJdOwogICAgdmFyIEVYVF9TQ09QRV9OQU1FUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFsKICAgICAgInZhbGlkYXRlIiwKICAgICAgInNlcmlhbGl6ZSIsCiAgICAgICJwYXJzZSIsCiAgICAgICJ3cmFwcGVyIiwKICAgICAgInJvb3QiLAogICAgICAic2NoZW1hIiwKICAgICAgImtleXdvcmQiLAogICAgICAicGF0dGVybiIsCiAgICAgICJmb3JtYXRzIiwKICAgICAgInZhbGlkYXRlJGRhdGEiLAogICAgICAiZnVuYyIsCiAgICAgICJvYmoiLAogICAgICAiRXJyb3IiCiAgICBdKTsKICAgIHZhciByZW1vdmVkT3B0aW9ucyA9IHsKICAgICAgZXJyb3JEYXRhUGF0aDogIiIsCiAgICAgIGZvcm1hdDogImB2YWxpZGF0ZUZvcm1hdHM6IGZhbHNlYCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG51bGxhYmxlOiAnIm51bGxhYmxlIiBrZXl3b3JkIGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0LicsCiAgICAgIGpzb25Qb2ludGVyczogIkRlcHJlY2F0ZWQganNQcm9wZXJ0eVN5bnRheCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIGV4dGVuZFJlZnM6ICJEZXByZWNhdGVkIGlnbm9yZUtleXdvcmRzV2l0aFJlZiBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG1pc3NpbmdSZWZzOiAiUGFzcyBlbXB0eSBzY2hlbWEgd2l0aCAkaWQgdGhhdCBzaG91bGQgYmUgaWdub3JlZCB0byBhanYuYWRkU2NoZW1hLiIsCiAgICAgIHByb2Nlc3NDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3Byb2Nlc3M6IChjb2RlLCBzY2hlbWFFbnY6IG9iamVjdCkgPT4gc3RyaW5nfWAiLAogICAgICBzb3VyY2VDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3NvdXJjZTogdHJ1ZX1gIiwKICAgICAgc3RyaWN0RGVmYXVsdHM6ICJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLAogICAgICBzdHJpY3RLZXl3b3JkczogIkl0IGlzIGRlZmF1bHQgbm93LCBzZWUgb3B0aW9uIGBzdHJpY3RgLiIsCiAgICAgIHVuaXF1ZUl0ZW1zOiAnInVuaXF1ZUl0ZW1zIiBrZXl3b3JkIGlzIGFsd2F5cyB2YWxpZGF0ZWQuJywKICAgICAgdW5rbm93bkZvcm1hdHM6ICJEaXNhYmxlIHN0cmljdCBtb2RlIG9yIHBhc3MgYHRydWVgIHRvIGBhanYuYWRkRm9ybWF0YCAob3IgYGZvcm1hdHNgIG9wdGlvbikuIiwKICAgICAgY2FjaGU6ICJNYXAgaXMgdXNlZCBhcyBjYWNoZSwgc2NoZW1hIG9iamVjdCBhcyBrZXkuIiwKICAgICAgc2VyaWFsaXplOiAiTWFwIGlzIHVzZWQgYXMgY2FjaGUsIHNjaGVtYSBvYmplY3QgYXMga2V5LiIsCiAgICAgIGFqdkVycm9yczogIkl0IGlzIGRlZmF1bHQgbm93LiIKICAgIH07CiAgICB2YXIgZGVwcmVjYXRlZE9wdGlvbnMgPSB7CiAgICAgIGlnbm9yZUtleXdvcmRzV2l0aFJlZjogIiIsCiAgICAgIGpzUHJvcGVydHlTeW50YXg6ICIiLAogICAgICB1bmljb2RlOiAnIm1pbkxlbmd0aCIvIm1heExlbmd0aCIgYWNjb3VudCBmb3IgdW5pY29kZSBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuJwogICAgfTsKICAgIHZhciBNQVhfRVhQUkVTU0lPTiA9IDIwMDsKICAgIGZ1bmN0aW9uIHJlcXVpcmVkT3B0aW9ucyhvKSB7CiAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3MsIF90LCBfdSwgX3YsIF93LCBfeCwgX3ksIF96LCBfMDsKICAgICAgY29uc3QgcyA9IG8uc3RyaWN0OwogICAgICBjb25zdCBfb3B0eiA9IChfYSA9IG8uY29kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplOwogICAgICBjb25zdCBvcHRpbWl6ZSA9IF9vcHR6ID09PSB0cnVlIHx8IF9vcHR6ID09PSB2b2lkIDAgPyAxIDogX29wdHogfHwgMDsKICAgICAgY29uc3QgcmVnRXhwID0gKF9jID0gKF9iID0gby5jb2RlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVnRXhwKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBkZWZhdWx0UmVnRXhwOwogICAgICBjb25zdCB1cmlSZXNvbHZlciA9IChfZCA9IG8udXJpUmVzb2x2ZXIpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHVyaV8xLmRlZmF1bHQ7CiAgICAgIHJldHVybiB7CiAgICAgICAgc3RyaWN0U2NoZW1hOiAoX2YgPSAoX2UgPSBvLnN0cmljdFNjaGVtYSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogcykgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogdHJ1ZSwKICAgICAgICBzdHJpY3ROdW1iZXJzOiAoX2ggPSAoX2cgPSBvLnN0cmljdE51bWJlcnMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHMpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHRydWUsCiAgICAgICAgc3RyaWN0VHlwZXM6IChfayA9IChfaiA9IG8uc3RyaWN0VHlwZXMpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IHMpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6ICJsb2ciLAogICAgICAgIHN0cmljdFR1cGxlczogKF9tID0gKF9sID0gby5zdHJpY3RUdXBsZXMpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6IHMpICE9PSBudWxsICYmIF9tICE9PSB2b2lkIDAgPyBfbSA6ICJsb2ciLAogICAgICAgIHN0cmljdFJlcXVpcmVkOiAoX3AgPSAoX28gPSBvLnN0cmljdFJlcXVpcmVkKSAhPT0gbnVsbCAmJiBfbyAhPT0gdm9pZCAwID8gX28gOiBzKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiBmYWxzZSwKICAgICAgICBjb2RlOiBvLmNvZGUgPyB7IC4uLm8uY29kZSwgb3B0aW1pemUsIHJlZ0V4cCB9IDogeyBvcHRpbWl6ZSwgcmVnRXhwIH0sCiAgICAgICAgbG9vcFJlcXVpcmVkOiAoX3EgPSBvLmxvb3BSZXF1aXJlZCkgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogTUFYX0VYUFJFU1NJT04sCiAgICAgICAgbG9vcEVudW06IChfciA9IG8ubG9vcEVudW0pICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6IE1BWF9FWFBSRVNTSU9OLAogICAgICAgIG1ldGE6IChfcyA9IG8ubWV0YSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogdHJ1ZSwKICAgICAgICBtZXNzYWdlczogKF90ID0gby5tZXNzYWdlcykgIT09IG51bGwgJiYgX3QgIT09IHZvaWQgMCA/IF90IDogdHJ1ZSwKICAgICAgICBpbmxpbmVSZWZzOiAoX3UgPSBvLmlubGluZVJlZnMpICE9PSBudWxsICYmIF91ICE9PSB2b2lkIDAgPyBfdSA6IHRydWUsCiAgICAgICAgc2NoZW1hSWQ6IChfdiA9IG8uc2NoZW1hSWQpICE9PSBudWxsICYmIF92ICE9PSB2b2lkIDAgPyBfdiA6ICIkaWQiLAogICAgICAgIGFkZFVzZWRTY2hlbWE6IChfdyA9IG8uYWRkVXNlZFNjaGVtYSkgIT09IG51bGwgJiYgX3cgIT09IHZvaWQgMCA/IF93IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZVNjaGVtYTogKF94ID0gby52YWxpZGF0ZVNjaGVtYSkgIT09IG51bGwgJiYgX3ggIT09IHZvaWQgMCA/IF94IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZUZvcm1hdHM6IChfeSA9IG8udmFsaWRhdGVGb3JtYXRzKSAhPT0gbnVsbCAmJiBfeSAhPT0gdm9pZCAwID8gX3kgOiB0cnVlLAogICAgICAgIHVuaWNvZGVSZWdFeHA6IChfeiA9IG8udW5pY29kZVJlZ0V4cCkgIT09IG51bGwgJiYgX3ogIT09IHZvaWQgMCA/IF96IDogdHJ1ZSwKICAgICAgICBpbnQzMnJhbmdlOiAoXzAgPSBvLmludDMycmFuZ2UpICE9PSBudWxsICYmIF8wICE9PSB2b2lkIDAgPyBfMCA6IHRydWUsCiAgICAgICAgdXJpUmVzb2x2ZXIKICAgICAgfTsKICAgIH0KICAgIHZhciBBanYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkgewogICAgICAgIHRoaXMuc2NoZW1hcyA9IHt9OwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICAgIHRoaXMuZm9ybWF0cyA9IHt9OwogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgdGhpcy5fbG9hZGluZyA9IHt9OwogICAgICAgIHRoaXMuX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBvcHRzID0gdGhpcy5vcHRzID0geyAuLi5vcHRzLCAuLi5yZXF1aXJlZE9wdGlvbnMob3B0cykgfTsKICAgICAgICBjb25zdCB7IGVzNSwgbGluZXMgfSA9IHRoaXMub3B0cy5jb2RlOwogICAgICAgIHRoaXMuc2NvcGUgPSBuZXcgY29kZWdlbl8yLlZhbHVlU2NvcGUoeyBzY29wZToge30sIHByZWZpeGVzOiBFWFRfU0NPUEVfTkFNRVMsIGVzNSwgbGluZXMgfSk7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIob3B0cy5sb2dnZXIpOwogICAgICAgIGNvbnN0IGZvcm1hdE9wdCA9IG9wdHMudmFsaWRhdGVGb3JtYXRzOwogICAgICAgIG9wdHMudmFsaWRhdGVGb3JtYXRzID0gZmFsc2U7CiAgICAgICAgdGhpcy5SVUxFUyA9ICgwLCBydWxlc18xLmdldFJ1bGVzKSgpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIHJlbW92ZWRPcHRpb25zLCBvcHRzLCAiTk9UIFNVUFBPUlRFRCIpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIGRlcHJlY2F0ZWRPcHRpb25zLCBvcHRzLCAiREVQUkVDQVRFRCIsICJ3YXJuIik7CiAgICAgICAgdGhpcy5fbWV0YU9wdHMgPSBnZXRNZXRhU2NoZW1hT3B0aW9ucy5jYWxsKHRoaXMpOwogICAgICAgIGlmIChvcHRzLmZvcm1hdHMpCiAgICAgICAgICBhZGRJbml0aWFsRm9ybWF0cy5jYWxsKHRoaXMpOwogICAgICAgIHRoaXMuX2FkZFZvY2FidWxhcmllcygpOwogICAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhU2NoZW1hKCk7CiAgICAgICAgaWYgKG9wdHMua2V5d29yZHMpCiAgICAgICAgICBhZGRJbml0aWFsS2V5d29yZHMuY2FsbCh0aGlzLCBvcHRzLmtleXdvcmRzKTsKICAgICAgICBpZiAodHlwZW9mIG9wdHMubWV0YSA9PSAib2JqZWN0IikKICAgICAgICAgIHRoaXMuYWRkTWV0YVNjaGVtYShvcHRzLm1ldGEpOwogICAgICAgIGFkZEluaXRpYWxTY2hlbWFzLmNhbGwodGhpcyk7CiAgICAgICAgb3B0cy52YWxpZGF0ZUZvcm1hdHMgPSBmb3JtYXRPcHQ7CiAgICAgIH0KICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICB0aGlzLmFkZEtleXdvcmQoIiRhc3luYyIpOwogICAgICB9CiAgICAgIF9hZGREZWZhdWx0TWV0YVNjaGVtYSgpIHsKICAgICAgICBjb25zdCB7ICRkYXRhLCBtZXRhLCBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGxldCBfZGF0YVJlZlNjaGVtYSA9ICRkYXRhUmVmU2NoZW1hOwogICAgICAgIGlmIChzY2hlbWFJZCA9PT0gImlkIikgewogICAgICAgICAgX2RhdGFSZWZTY2hlbWEgPSB7IC4uLiRkYXRhUmVmU2NoZW1hIH07CiAgICAgICAgICBfZGF0YVJlZlNjaGVtYS5pZCA9IF9kYXRhUmVmU2NoZW1hLiRpZDsKICAgICAgICAgIGRlbGV0ZSBfZGF0YVJlZlNjaGVtYS4kaWQ7CiAgICAgICAgfQogICAgICAgIGlmIChtZXRhICYmICRkYXRhKQogICAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKF9kYXRhUmVmU2NoZW1hLCBfZGF0YVJlZlNjaGVtYVtzY2hlbWFJZF0sIGZhbHNlKTsKICAgICAgfQogICAgICBkZWZhdWx0TWV0YSgpIHsKICAgICAgICBjb25zdCB7IG1ldGEsIHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHR5cGVvZiBtZXRhID09ICJvYmplY3QiID8gbWV0YVtzY2hlbWFJZF0gfHwgbWV0YSA6IHZvaWQgMDsKICAgICAgfQogICAgICB2YWxpZGF0ZShzY2hlbWFLZXlSZWYsIGRhdGEpIHsKICAgICAgICBsZXQgdjsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYUtleVJlZiA9PSAic3RyaW5nIikgewogICAgICAgICAgdiA9IHRoaXMuZ2V0U2NoZW1hKHNjaGVtYUtleVJlZik7CiAgICAgICAgICBpZiAoIXYpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gc2NoZW1hIHdpdGgga2V5IG9yIHJlZiAiJHtzY2hlbWFLZXlSZWZ9ImApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2ID0gdGhpcy5jb21waWxlKHNjaGVtYUtleVJlZik7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gdihkYXRhKTsKICAgICAgICBpZiAoISgiJGFzeW5jIiBpbiB2KSkKICAgICAgICAgIHRoaXMuZXJyb3JzID0gdi5lcnJvcnM7CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIGNvbXBpbGUoc2NoZW1hMiwgX21ldGEpIHsKICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEpOwogICAgICAgIHJldHVybiBzY2gudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZVNjaGVtYUVudihzY2gpOwogICAgICB9CiAgICAgIGNvbXBpbGVBc3luYyhzY2hlbWEyLCBtZXRhKSB7CiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMubG9hZFNjaGVtYSAhPSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB7IGxvYWRTY2hlbWEgfSA9IHRoaXMub3B0czsKICAgICAgICByZXR1cm4gcnVuQ29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoZW1hMiwgbWV0YSk7CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuQ29tcGlsZUFzeW5jKF9zY2hlbWEsIF9tZXRhKSB7CiAgICAgICAgICBhd2FpdCBsb2FkTWV0YVNjaGVtYS5jYWxsKHRoaXMsIF9zY2hlbWEuJHNjaGVtYSk7CiAgICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoX3NjaGVtYSwgX21ldGEpOwogICAgICAgICAgcmV0dXJuIHNjaC52YWxpZGF0ZSB8fCBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1ldGFTY2hlbWEoJHJlZikgewogICAgICAgICAgaWYgKCRyZWYgJiYgIXRoaXMuZ2V0U2NoZW1hKCRyZWYpKSB7CiAgICAgICAgICAgIGF3YWl0IHJ1bkNvbXBpbGVBc3luYy5jYWxsKHRoaXMsIHsgJHJlZiB9LCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gX2NvbXBpbGVBc3luYyhzY2gpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21waWxlU2NoZW1hRW52KHNjaCk7CiAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiByZWZfZXJyb3JfMS5kZWZhdWx0KSkKICAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgICBjaGVja0xvYWRlZC5jYWxsKHRoaXMsIGUpOwogICAgICAgICAgICBhd2FpdCBsb2FkTWlzc2luZ1NjaGVtYS5jYWxsKHRoaXMsIGUubWlzc2luZ1NjaGVtYSk7CiAgICAgICAgICAgIHJldHVybiBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gY2hlY2tMb2FkZWQoeyBtaXNzaW5nU2NoZW1hOiByZWYsIG1pc3NpbmdSZWYgfSkgewogICAgICAgICAgaWYgKHRoaXMucmVmc1tyZWZdKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQW55U2NoZW1hICR7cmVmfSBpcyBsb2FkZWQgYnV0ICR7bWlzc2luZ1JlZn0gY2Fubm90IGJlIHJlc29sdmVkYCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRNaXNzaW5nU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgX3NjaGVtYSA9IGF3YWl0IF9sb2FkU2NoZW1hLmNhbGwodGhpcywgcmVmKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIGF3YWl0IGxvYWRNZXRhU2NoZW1hLmNhbGwodGhpcywgX3NjaGVtYS4kc2NoZW1hKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKF9zY2hlbWEsIHJlZiwgbWV0YSk7CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIF9sb2FkU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgcCA9IHRoaXMuX2xvYWRpbmdbcmVmXTsKICAgICAgICAgIGlmIChwKQogICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAodGhpcy5fbG9hZGluZ1tyZWZdID0gbG9hZFNjaGVtYShyZWYpKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sb2FkaW5nW3JlZl07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIEFkZHMgc2NoZW1hIHRvIHRoZSBpbnN0YW5jZQogICAgICBhZGRTY2hlbWEoc2NoZW1hMiwga2V5LCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMikpIHsKICAgICAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHNjaGVtYTIpCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaCwgdm9pZCAwLCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBsZXQgaWQ7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgICAgaWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICAgIGlmIChpZCAhPT0gdm9pZCAwICYmIHR5cGVvZiBpZCAhPSAic3RyaW5nIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSAke3NjaGVtYUlkfSBtdXN0IGJlIHN0cmluZ2ApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBrZXkgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXkgfHwgaWQpOwogICAgICAgIHRoaXMuX2NoZWNrVW5pcXVlKGtleSk7CiAgICAgICAgdGhpcy5zY2hlbWFzW2tleV0gPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEsIGtleSwgX3ZhbGlkYXRlU2NoZW1hLCB0cnVlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBBZGQgc2NoZW1hIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIG90aGVyIHNjaGVtYXMKICAgICAgLy8gb3B0aW9ucyBpbiBNRVRBX0lHTk9SRV9PUFRJT05TIGFyZSBhbHdheSBzZXQgdG8gZmFsc2UKICAgICAgYWRkTWV0YVNjaGVtYShzY2hlbWEyLCBrZXksIF92YWxpZGF0ZVNjaGVtYSA9IHRoaXMub3B0cy52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaGVtYTIsIGtleSwgdHJ1ZSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyAgVmFsaWRhdGUgc2NoZW1hIGFnYWluc3QgaXRzIG1ldGEtc2NoZW1hCiAgICAgIHZhbGlkYXRlU2NoZW1hKHNjaGVtYTIsIHRocm93T3JMb2dFcnJvcikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgJHNjaGVtYTsKICAgICAgICAkc2NoZW1hID0gc2NoZW1hMi4kc2NoZW1hOwogICAgICAgIGlmICgkc2NoZW1hICE9PSB2b2lkIDAgJiYgdHlwZW9mICRzY2hlbWEgIT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiJHNjaGVtYSBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgfQogICAgICAgICRzY2hlbWEgPSAkc2NoZW1hIHx8IHRoaXMub3B0cy5kZWZhdWx0TWV0YSB8fCB0aGlzLmRlZmF1bHRNZXRhKCk7CiAgICAgICAgaWYgKCEkc2NoZW1hKSB7CiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCJtZXRhLXNjaGVtYSBub3QgYXZhaWxhYmxlIik7CiAgICAgICAgICB0aGlzLmVycm9ycyA9IG51bGw7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCRzY2hlbWEsIHNjaGVtYTIpOwogICAgICAgIGlmICghdmFsaWQgJiYgdGhyb3dPckxvZ0Vycm9yKSB7CiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gInNjaGVtYSBpcyBpbnZhbGlkOiAiICsgdGhpcy5lcnJvcnNUZXh0KCk7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hID09PSAibG9nIikKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIC8vIEdldCBjb21waWxlZCBzY2hlbWEgYnkgYGtleWAgb3IgYHJlZmAuCiAgICAgIC8vIChga2V5YCB0aGF0IHdhcyBwYXNzZWQgdG8gYGFkZFNjaGVtYWAgb3IgZnVsbCBzY2hlbWEgcmVmZXJlbmNlIC0gYHNjaGVtYS4kaWRgIG9yIHJlc29sdmVkIGlkKQogICAgICBnZXRTY2hlbWEoa2V5UmVmKSB7CiAgICAgICAgbGV0IHNjaDsKICAgICAgICB3aGlsZSAodHlwZW9mIChzY2ggPSBnZXRTY2hFbnYuY2FsbCh0aGlzLCBrZXlSZWYpKSA9PSAic3RyaW5nIikKICAgICAgICAgIGtleVJlZiA9IHNjaDsKICAgICAgICBpZiAoc2NoID09PSB2b2lkIDApIHsKICAgICAgICAgIGNvbnN0IHsgc2NoZW1hSWQgfSA9IHRoaXMub3B0czsKICAgICAgICAgIGNvbnN0IHJvb3QgPSBuZXcgY29tcGlsZV8xLlNjaGVtYUVudih7IHNjaGVtYToge30sIHNjaGVtYUlkIH0pOwogICAgICAgICAgc2NoID0gY29tcGlsZV8xLnJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCBrZXlSZWYpOwogICAgICAgICAgaWYgKCFzY2gpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIHRoaXMucmVmc1trZXlSZWZdID0gc2NoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGVTY2hlbWFFbnYoc2NoKTsKICAgICAgfQogICAgICAvLyBSZW1vdmUgY2FjaGVkIHNjaGVtYShzKS4KICAgICAgLy8gSWYgbm8gcGFyYW1ldGVyIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyBidXQgbWV0YS1zY2hlbWFzIGFyZSByZW1vdmVkLgogICAgICAvLyBJZiBSZWdFeHAgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIHdpdGgga2V5L2lkIG1hdGNoaW5nIHBhdHRlcm4gYnV0IG1ldGEtc2NoZW1hcyBhcmUgcmVtb3ZlZC4KICAgICAgLy8gRXZlbiBpZiBzY2hlbWEgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBzY2hlbWFzIGl0IHN0aWxsIGNhbiBiZSByZW1vdmVkIGFzIG90aGVyIHNjaGVtYXMgaGF2ZSBsb2NhbCByZWZlcmVuY2VzLgogICAgICByZW1vdmVTY2hlbWEoc2NoZW1hS2V5UmVmKSB7CiAgICAgICAgaWYgKHNjaGVtYUtleVJlZiBpbnN0YW5jZW9mIFJlZ0V4cCkgewogICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMsIHNjaGVtYUtleVJlZik7CiAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxTY2hlbWFzKHRoaXMucmVmcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFLZXlSZWYpIHsKICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFsbFNjaGVtYXModGhpcy5zY2hlbWFzKTsKICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnJlZnMpOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIGNhc2UgInN0cmluZyI6IHsKICAgICAgICAgICAgY29uc3Qgc2NoID0gZ2V0U2NoRW52LmNhbGwodGhpcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICBkZWxldGUgdGhpcy5zY2hlbWFzW3NjaGVtYUtleVJlZl07CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlZnNbc2NoZW1hS2V5UmVmXTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NoZW1hS2V5UmVmOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVLZXkpOwogICAgICAgICAgICBsZXQgaWQgPSBzY2hlbWFLZXlSZWZbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICAgICAgaWYgKGlkKSB7CiAgICAgICAgICAgICAgaWQgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShpZCk7CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2NoZW1hc1tpZF07CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVmc1tpZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdi5yZW1vdmVTY2hlbWE6IGludmFsaWQgcGFyYW1ldGVyIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIGFkZCAidm9jYWJ1bGFyeSIgLSBhIGNvbGxlY3Rpb24gb2Yga2V5d29yZHMKICAgICAgYWRkVm9jYWJ1bGFyeShkZWZpbml0aW9ucykgewogICAgICAgIGZvciAoY29uc3QgZGVmIG9mIGRlZmluaXRpb25zKQogICAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYWRkS2V5d29yZChrd2RPckRlZiwgZGVmKSB7CiAgICAgICAgbGV0IGtleXdvcmQ7CiAgICAgICAgaWYgKHR5cGVvZiBrd2RPckRlZiA9PSAic3RyaW5nIikgewogICAgICAgICAga2V5d29yZCA9IGt3ZE9yRGVmOwogICAgICAgICAgaWYgKHR5cGVvZiBkZWYgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybigidGhlc2UgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCwgc2VlIGRvY3MgZm9yIGFkZEtleXdvcmQiKTsKICAgICAgICAgICAgZGVmLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGt3ZE9yRGVmID09ICJvYmplY3QiICYmIGRlZiA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWYgPSBrd2RPckRlZjsKICAgICAgICAgIGtleXdvcmQgPSBkZWYua2V5d29yZDsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXdvcmQpICYmICFrZXl3b3JkLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFkZEtleXdvcmRzOiBrZXl3b3JkIG11c3QgYmUgc3RyaW5nIG9yIG5vbi1lbXB0eSBhcnJheSIpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYWRkS2V5d29yZHMgcGFyYW1ldGVycyIpOwogICAgICAgIH0KICAgICAgICBjaGVja0tleXdvcmQuY2FsbCh0aGlzLCBrZXl3b3JkLCBkZWYpOwogICAgICAgIGlmICghZGVmKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCAoa3dkKSA9PiBhZGRSdWxlLmNhbGwodGhpcywga3dkKSk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAga2V5d29yZE1ldGFzY2hlbWEuY2FsbCh0aGlzLCBkZWYpOwogICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB7CiAgICAgICAgICAuLi5kZWYsCiAgICAgICAgICB0eXBlOiAoMCwgZGF0YVR5cGVfMS5nZXRKU09OVHlwZXMpKGRlZi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmLnNjaGVtYVR5cGUpCiAgICAgICAgfTsKICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCBkZWZpbml0aW9uLnR5cGUubGVuZ3RoID09PSAwID8gKGspID0+IGFkZFJ1bGUuY2FsbCh0aGlzLCBrLCBkZWZpbml0aW9uKSA6IChrKSA9PiBkZWZpbml0aW9uLnR5cGUuZm9yRWFjaCgodCkgPT4gYWRkUnVsZS5jYWxsKHRoaXMsIGssIGRlZmluaXRpb24sIHQpKSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0S2V5d29yZChrZXl3b3JkKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMuUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIHJldHVybiB0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiA/IHJ1bGUuZGVmaW5pdGlvbiA6ICEhcnVsZTsKICAgICAgfQogICAgICAvLyBSZW1vdmUga2V5d29yZAogICAgICByZW1vdmVLZXl3b3JkKGtleXdvcmQpIHsKICAgICAgICBjb25zdCB7IFJVTEVTIH0gPSB0aGlzOwogICAgICAgIGRlbGV0ZSBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXTsKICAgICAgICBkZWxldGUgUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgUlVMRVMucnVsZXMpIHsKICAgICAgICAgIGNvbnN0IGkgPSBncm91cC5ydWxlcy5maW5kSW5kZXgoKHJ1bGUpID0+IHJ1bGUua2V5d29yZCA9PT0ga2V5d29yZCk7CiAgICAgICAgICBpZiAoaSA+PSAwKQogICAgICAgICAgICBncm91cC5ydWxlcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIEFkZCBmb3JtYXQKICAgICAgYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCkgewogICAgICAgIGlmICh0eXBlb2YgZm9ybWF0ID09ICJzdHJpbmciKQogICAgICAgICAgZm9ybWF0ID0gbmV3IFJlZ0V4cChmb3JtYXQpOwogICAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZvcm1hdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBlcnJvcnNUZXh0KGVycm9ycyA9IHRoaXMuZXJyb3JzLCB7IHNlcGFyYXRvciA9ICIsICIsIGRhdGFWYXIgPSAiZGF0YSIgfSA9IHt9KSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybiAiTm8gZXJyb3JzIjsKICAgICAgICByZXR1cm4gZXJyb3JzLm1hcCgoZSkgPT4gYCR7ZGF0YVZhcn0ke2UuaW5zdGFuY2VQYXRofSAke2UubWVzc2FnZX1gKS5yZWR1Y2UoKHRleHQsIG1zZykgPT4gdGV4dCArIHNlcGFyYXRvciArIG1zZyk7CiAgICAgIH0KICAgICAgJGRhdGFNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIGtleXdvcmRzSnNvblBvaW50ZXJzKSB7CiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLlJVTEVTLmFsbDsKICAgICAgICBtZXRhU2NoZW1hID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtZXRhU2NoZW1hKSk7CiAgICAgICAgZm9yIChjb25zdCBqc29uUG9pbnRlciBvZiBrZXl3b3Jkc0pzb25Qb2ludGVycykgewogICAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBqc29uUG9pbnRlci5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgbGV0IGtleXdvcmRzID0gbWV0YVNjaGVtYTsKICAgICAgICAgIGZvciAoY29uc3Qgc2VnIG9mIHNlZ21lbnRzKQogICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzW3NlZ107CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBydWxlcykgewogICAgICAgICAgICBjb25zdCBydWxlID0gcnVsZXNba2V5XTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlICE9ICJvYmplY3QiKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjb25zdCB7ICRkYXRhIH0gPSBydWxlLmRlZmluaXRpb247CiAgICAgICAgICAgIGNvbnN0IHNjaGVtYTIgPSBrZXl3b3Jkc1trZXldOwogICAgICAgICAgICBpZiAoJGRhdGEgJiYgc2NoZW1hMikKICAgICAgICAgICAgICBrZXl3b3Jkc1trZXldID0gc2NoZW1hT3JEYXRhKHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWV0YVNjaGVtYTsKICAgICAgfQogICAgICBfcmVtb3ZlQWxsU2NoZW1hcyhzY2hlbWFzLCByZWdleCkgewogICAgICAgIGZvciAoY29uc3Qga2V5UmVmIGluIHNjaGVtYXMpIHsKICAgICAgICAgIGNvbnN0IHNjaCA9IHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgIGlmICghcmVnZXggfHwgcmVnZXgudGVzdChrZXlSZWYpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2ggJiYgIXNjaC5tZXRhKSB7CiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFzW2tleVJlZl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX2FkZFNjaGVtYShzY2hlbWEyLCBtZXRhLCBiYXNlSWQsIHZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hLCBhZGRTY2hlbWEgPSB0aGlzLm9wdHMuYWRkVXNlZFNjaGVtYSkgewogICAgICAgIGxldCBpZDsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiKSB7CiAgICAgICAgICBpZCA9IHNjaGVtYTJbc2NoZW1hSWRdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLmp0ZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3QiKTsKICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyICE9ICJib29sZWFuIikKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3Qgb3IgYm9vbGVhbiIpOwogICAgICAgIH0KICAgICAgICBsZXQgc2NoID0gdGhpcy5fY2FjaGUuZ2V0KHNjaGVtYTIpOwogICAgICAgIGlmIChzY2ggIT09IHZvaWQgMCkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoaWQgfHwgYmFzZUlkKTsKICAgICAgICBjb25zdCBsb2NhbFJlZnMgPSByZXNvbHZlXzEuZ2V0U2NoZW1hUmVmcy5jYWxsKHRoaXMsIHNjaGVtYTIsIGJhc2VJZCk7CiAgICAgICAgc2NoID0gbmV3IGNvbXBpbGVfMS5TY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCBtZXRhLCBiYXNlSWQsIGxvY2FsUmVmcyB9KTsKICAgICAgICB0aGlzLl9jYWNoZS5zZXQoc2NoLnNjaGVtYSwgc2NoKTsKICAgICAgICBpZiAoYWRkU2NoZW1hICYmICFiYXNlSWQuc3RhcnRzV2l0aCgiIyIpKSB7CiAgICAgICAgICBpZiAoYmFzZUlkKQogICAgICAgICAgICB0aGlzLl9jaGVja1VuaXF1ZShiYXNlSWQpOwogICAgICAgICAgdGhpcy5yZWZzW2Jhc2VJZF0gPSBzY2g7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZGF0ZVNjaGVtYSkKICAgICAgICAgIHRoaXMudmFsaWRhdGVTY2hlbWEoc2NoZW1hMiwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfQogICAgICBfY2hlY2tVbmlxdWUoaWQpIHsKICAgICAgICBpZiAodGhpcy5zY2hlbWFzW2lkXSB8fCB0aGlzLnJlZnNbaWRdKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSB3aXRoIGtleSBvciBpZCAiJHtpZH0iIGFscmVhZHkgZXhpc3RzYCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIF9jb21waWxlU2NoZW1hRW52KHNjaCkgewogICAgICAgIGlmIChzY2gubWV0YSkKICAgICAgICAgIHRoaXMuX2NvbXBpbGVNZXRhU2NoZW1hKHNjaCk7CiAgICAgICAgZWxzZQogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIGlmICghc2NoLnZhbGlkYXRlKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlOwogICAgICB9CiAgICAgIF9jb21waWxlTWV0YVNjaGVtYShzY2gpIHsKICAgICAgICBjb25zdCBjdXJyZW50T3B0cyA9IHRoaXMub3B0czsKICAgICAgICB0aGlzLm9wdHMgPSB0aGlzLl9tZXRhT3B0czsKICAgICAgICB0cnkgewogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLm9wdHMgPSBjdXJyZW50T3B0czsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBBanYuVmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGlvbl9lcnJvcl8xLmRlZmF1bHQ7CiAgICBBanYuTWlzc2luZ1JlZkVycm9yID0gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBBanY7CiAgICBmdW5jdGlvbiBjaGVja09wdGlvbnMoY2hlY2tPcHRzLCBvcHRpb25zLCBtc2csIGxvZyA9ICJlcnJvciIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2hlY2tPcHRzKSB7CiAgICAgICAgY29uc3Qgb3B0ID0ga2V5OwogICAgICAgIGlmIChvcHQgaW4gb3B0aW9ucykKICAgICAgICAgIHRoaXMubG9nZ2VyW2xvZ10oYCR7bXNnfTogb3B0aW9uICR7a2V5fS4gJHtjaGVja09wdHNbb3B0XX1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZ2V0U2NoRW52KGtleVJlZikgewogICAgICBrZXlSZWYgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXlSZWYpOwogICAgICByZXR1cm4gdGhpcy5zY2hlbWFzW2tleVJlZl0gfHwgdGhpcy5yZWZzW2tleVJlZl07CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsU2NoZW1hcygpIHsKICAgICAgY29uc3Qgb3B0c1NjaGVtYXMgPSB0aGlzLm9wdHMuc2NoZW1hczsKICAgICAgaWYgKCFvcHRzU2NoZW1hcykKICAgICAgICByZXR1cm47CiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdHNTY2hlbWFzKSkKICAgICAgICB0aGlzLmFkZFNjaGVtYShvcHRzU2NoZW1hcyk7CiAgICAgIGVsc2UKICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRzU2NoZW1hcykKICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKG9wdHNTY2hlbWFzW2tleV0sIGtleSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsRm9ybWF0cygpIHsKICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMub3B0cy5mb3JtYXRzKSB7CiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5vcHRzLmZvcm1hdHNbbmFtZV07CiAgICAgICAgaWYgKGZvcm1hdCkKICAgICAgICAgIHRoaXMuYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGFkZEluaXRpYWxLZXl3b3JkcyhkZWZzKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlZnMpKSB7CiAgICAgICAgdGhpcy5hZGRWb2NhYnVsYXJ5KGRlZnMpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmxvZ2dlci53YXJuKCJrZXl3b3JkcyBvcHRpb24gYXMgbWFwIGlzIGRlcHJlY2F0ZWQsIHBhc3MgYXJyYXkiKTsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIGRlZnMpIHsKICAgICAgICBjb25zdCBkZWYgPSBkZWZzW2tleXdvcmRdOwogICAgICAgIGlmICghZGVmLmtleXdvcmQpCiAgICAgICAgICBkZWYua2V5d29yZCA9IGtleXdvcmQ7CiAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGdldE1ldGFTY2hlbWFPcHRpb25zKCkgewogICAgICBjb25zdCBtZXRhT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CiAgICAgIGZvciAoY29uc3Qgb3B0IG9mIE1FVEFfSUdOT1JFX09QVElPTlMpCiAgICAgICAgZGVsZXRlIG1ldGFPcHRzW29wdF07CiAgICAgIHJldHVybiBtZXRhT3B0czsKICAgIH0KICAgIHZhciBub0xvZ3MgPSB7IGxvZygpIHsKICAgIH0sIHdhcm4oKSB7CiAgICB9LCBlcnJvcigpIHsKICAgIH0gfTsKICAgIGZ1bmN0aW9uIGdldExvZ2dlcihsb2dnZXIpIHsKICAgICAgaWYgKGxvZ2dlciA9PT0gZmFsc2UpCiAgICAgICAgcmV0dXJuIG5vTG9nczsKICAgICAgaWYgKGxvZ2dlciA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybiBjb25zb2xlOwogICAgICBpZiAobG9nZ2VyLmxvZyAmJiBsb2dnZXIud2FybiAmJiBsb2dnZXIuZXJyb3IpCiAgICAgICAgcmV0dXJuIGxvZ2dlcjsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2dnZXIgbXVzdCBpbXBsZW1lbnQgbG9nLCB3YXJuIGFuZCBlcnJvciBtZXRob2RzIik7CiAgICB9CiAgICB2YXIgS0VZV09SRF9OQU1FID0gL15bYS16XyRdW2EtejAtOV8kOi1dKiQvaTsKICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZChrZXl3b3JkLCBkZWYpIHsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgKDAsIHV0aWxfMS5lYWNoSXRlbSkoa2V5d29yZCwgKGt3ZCkgPT4gewogICAgICAgIGlmIChSVUxFUy5rZXl3b3Jkc1trd2RdKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXl3b3JkICR7a3dkfSBpcyBhbHJlYWR5IGRlZmluZWRgKTsKICAgICAgICBpZiAoIUtFWVdPUkRfTkFNRS50ZXN0KGt3ZCkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtrd2R9IGhhcyBpbnZhbGlkIG5hbWVgKTsKICAgICAgfSk7CiAgICAgIGlmICghZGVmKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiAhKCJjb2RlIiBpbiBkZWYgfHwgInZhbGlkYXRlIiBpbiBkZWYpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCckZGF0YSBrZXl3b3JkIG11c3QgaGF2ZSAiY29kZSIgb3IgInZhbGlkYXRlIiBmdW5jdGlvbicpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhZGRSdWxlKGtleXdvcmQsIGRlZmluaXRpb24sIGRhdGFUeXBlKSB7CiAgICAgIHZhciBfYTsKICAgICAgY29uc3QgcG9zdCA9IGRlZmluaXRpb24gPT09IG51bGwgfHwgZGVmaW5pdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmaW5pdGlvbi5wb3N0OwogICAgICBpZiAoZGF0YVR5cGUgJiYgcG9zdCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgd2l0aCAicG9zdCIgZmxhZyBjYW5ub3QgaGF2ZSAidHlwZSInKTsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgbGV0IHJ1bGVHcm91cCA9IHBvc3QgPyBSVUxFUy5wb3N0IDogUlVMRVMucnVsZXMuZmluZCgoeyB0eXBlOiB0IH0pID0+IHQgPT09IGRhdGFUeXBlKTsKICAgICAgaWYgKCFydWxlR3JvdXApIHsKICAgICAgICBydWxlR3JvdXAgPSB7IHR5cGU6IGRhdGFUeXBlLCBydWxlczogW10gfTsKICAgICAgICBSVUxFUy5ydWxlcy5wdXNoKHJ1bGVHcm91cCk7CiAgICAgIH0KICAgICAgUlVMRVMua2V5d29yZHNba2V5d29yZF0gPSB0cnVlOwogICAgICBpZiAoIWRlZmluaXRpb24pCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBydWxlID0gewogICAgICAgIGtleXdvcmQsCiAgICAgICAgZGVmaW5pdGlvbjogewogICAgICAgICAgLi4uZGVmaW5pdGlvbiwKICAgICAgICAgIHR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi5zY2hlbWFUeXBlKQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKGRlZmluaXRpb24uYmVmb3JlKQogICAgICAgIGFkZEJlZm9yZVJ1bGUuY2FsbCh0aGlzLCBydWxlR3JvdXAsIHJ1bGUsIGRlZmluaXRpb24uYmVmb3JlKTsKICAgICAgZWxzZQogICAgICAgIHJ1bGVHcm91cC5ydWxlcy5wdXNoKHJ1bGUpOwogICAgICBSVUxFUy5hbGxba2V5d29yZF0gPSBydWxlOwogICAgICAoX2EgPSBkZWZpbml0aW9uLmltcGxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb3JFYWNoKChrd2QpID0+IHRoaXMuYWRkS2V5d29yZChrd2QpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFkZEJlZm9yZVJ1bGUocnVsZUdyb3VwLCBydWxlLCBiZWZvcmUpIHsKICAgICAgY29uc3QgaSA9IHJ1bGVHcm91cC5ydWxlcy5maW5kSW5kZXgoKF9ydWxlKSA9PiBfcnVsZS5rZXl3b3JkID09PSBiZWZvcmUpOwogICAgICBpZiAoaSA+PSAwKSB7CiAgICAgICAgcnVsZUdyb3VwLnJ1bGVzLnNwbGljZShpLCAwLCBydWxlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBydWxlR3JvdXAucnVsZXMucHVzaChydWxlKTsKICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBydWxlICR7YmVmb3JlfSBpcyBub3QgZGVmaW5lZGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBrZXl3b3JkTWV0YXNjaGVtYShkZWYpIHsKICAgICAgbGV0IHsgbWV0YVNjaGVtYSB9ID0gZGVmOwogICAgICBpZiAobWV0YVNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiB0aGlzLm9wdHMuJGRhdGEpCiAgICAgICAgbWV0YVNjaGVtYSA9IHNjaGVtYU9yRGF0YShtZXRhU2NoZW1hKTsKICAgICAgZGVmLnZhbGlkYXRlU2NoZW1hID0gdGhpcy5jb21waWxlKG1ldGFTY2hlbWEsIHRydWUpOwogICAgfQogICAgdmFyICRkYXRhUmVmID0gewogICAgICAkcmVmOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jIgogICAgfTsKICAgIGZ1bmN0aW9uIHNjaGVtYU9yRGF0YShzY2hlbWEyKSB7CiAgICAgIHJldHVybiB7IGFueU9mOiBbc2NoZW1hMiwgJGRhdGFSZWZdIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pZC5qcwp2YXIgcmVxdWlyZV9pZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvaWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZCIsCiAgICAgIGNvZGUoKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOT1QgU1VQUE9SVEVEOiBrZXl3b3JkICJpZCIsIHVzZSAiJGlkIiBmb3Igc2NoZW1hIElEJyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzCnZhciByZXF1aXJlX3JlZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYWxsUmVmID0gZXhwb3J0czIuZ2V0VmFsaWRhdGUgPSB2b2lkIDA7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIiRyZWYiLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiAkcmVmLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgYmFzZUlkLCBzY2hlbWFFbnY6IGVudiwgdmFsaWRhdGVOYW1lLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgICAgY29uc3QgeyByb290IH0gPSBlbnY7CiAgICAgICAgaWYgKCgkcmVmID09PSAiIyIgfHwgJHJlZiA9PT0gIiMvIikgJiYgYmFzZUlkID09PSByb290LmJhc2VJZCkKICAgICAgICAgIHJldHVybiBjYWxsUm9vdFJlZigpOwogICAgICAgIGNvbnN0IHNjaE9yRW52ID0gY29tcGlsZV8xLnJlc29sdmVSZWYuY2FsbChzZWxmMiwgcm9vdCwgYmFzZUlkLCAkcmVmKTsKICAgICAgICBpZiAoc2NoT3JFbnYgPT09IHZvaWQgMCkKICAgICAgICAgIHRocm93IG5ldyByZWZfZXJyb3JfMS5kZWZhdWx0KGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgJHJlZik7CiAgICAgICAgaWYgKHNjaE9yRW52IGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgIHJldHVybiBjYWxsVmFsaWRhdGUoc2NoT3JFbnYpOwogICAgICAgIHJldHVybiBpbmxpbmVSZWZTY2hlbWEoc2NoT3JFbnYpOwogICAgICAgIGZ1bmN0aW9uIGNhbGxSb290UmVmKCkgewogICAgICAgICAgaWYgKGVudiA9PT0gcm9vdCkKICAgICAgICAgICAgcmV0dXJuIGNhbGxSZWYoY3h0LCB2YWxpZGF0ZU5hbWUsIGVudiwgZW52LiRhc3luYyk7CiAgICAgICAgICBjb25zdCByb290TmFtZSA9IGdlbi5zY29wZVZhbHVlKCJyb290IiwgeyByZWY6IHJvb3QgfSk7CiAgICAgICAgICByZXR1cm4gY2FsbFJlZihjeHQsICgwLCBjb2RlZ2VuXzEuXylgJHtyb290TmFtZX0udmFsaWRhdGVgLCByb290LCByb290LiRhc3luYyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZShzY2gpIHsKICAgICAgICAgIGNvbnN0IHYgPSBnZXRWYWxpZGF0ZShjeHQsIHNjaCk7CiAgICAgICAgICBjYWxsUmVmKGN4dCwgdiwgc2NoLCBzY2guJGFzeW5jKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaW5saW5lUmVmU2NoZW1hKHNjaCkgewogICAgICAgICAgY29uc3Qgc2NoTmFtZSA9IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCBvcHRzLmNvZGUuc291cmNlID09PSB0cnVlID8geyByZWY6IHNjaCwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaCkgfSA6IHsgcmVmOiBzY2ggfSk7CiAgICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgICAgY29uc3Qgc2NoQ3h0ID0gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgICBkYXRhVHlwZXM6IFtdLAogICAgICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaE5hbWUsCiAgICAgICAgICAgIGVyclNjaGVtYVBhdGg6ICRyZWYKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQpOwogICAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0ZShjeHQsIHNjaCkgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gZ2VuLnNjb3BlVmFsdWUoInZhbGlkYXRlIiwgeyByZWY6IHNjaC52YWxpZGF0ZSB9KSA6ICgwLCBjb2RlZ2VuXzEuXylgJHtnZW4uc2NvcGVWYWx1ZSgid3JhcHBlciIsIHsgcmVmOiBzY2ggfSl9LnZhbGlkYXRlYDsKICAgIH0KICAgIGV4cG9ydHMyLmdldFZhbGlkYXRlID0gZ2V0VmFsaWRhdGU7CiAgICBmdW5jdGlvbiBjYWxsUmVmKGN4dCwgdiwgc2NoLCAkYXN5bmMpIHsKICAgICAgY29uc3QgeyBnZW4sIGl0IH0gPSBjeHQ7CiAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBzY2hlbWFFbnY6IGVudiwgb3B0cyB9ID0gaXQ7CiAgICAgIGNvbnN0IHBhc3NDeHQgPSBvcHRzLnBhc3NDb250ZXh0ID8gbmFtZXNfMS5kZWZhdWx0LnRoaXMgOiBjb2RlZ2VuXzEubmlsOwogICAgICBpZiAoJGFzeW5jKQogICAgICAgIGNhbGxBc3luY1JlZigpOwogICAgICBlbHNlCiAgICAgICAgY2FsbFN5bmNSZWYoKTsKICAgICAgZnVuY3Rpb24gY2FsbEFzeW5jUmVmKCkgewogICAgICAgIGlmICghZW52LiRhc3luYykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIHJlZmVyZW5jZWQgYnkgc3luYyBzY2hlbWEiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIik7CiAgICAgICAgZ2VuLnRyeSgoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7KDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpfWApOwogICAgICAgICAgYWRkRXZhbHVhdGVkRnJvbSh2KTsKICAgICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICB9LCAoZSkgPT4gewogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgISgke2V9IGluc3RhbmNlb2YgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KWAsICgpID0+IGdlbi50aHJvdyhlKSk7CiAgICAgICAgICBhZGRFcnJvcnNGcm9tKGUpOwogICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKTsKICAgICAgICB9KTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbGxTeW5jUmVmKCkgewogICAgICAgIGN4dC5yZXN1bHQoKDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpLCAoKSA9PiBhZGRFdmFsdWF0ZWRGcm9tKHYpLCAoKSA9PiBhZGRFcnJvcnNGcm9tKHYpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRFcnJvcnNGcm9tKHNvdXJjZSkgewogICAgICAgIGNvbnN0IGVycnMgPSAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCk7CiAgICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZFcnJvcnN9Lmxlbmd0aGApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkZEV2YWx1YXRlZEZyb20oc291cmNlKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmICghaXQub3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBzY2hFdmFsdWF0ZWQgPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gudmFsaWRhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ldmFsdWF0ZWQ7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY1Byb3BzKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgc2NoRXZhbHVhdGVkLnByb3BzLCBpdC5wcm9wcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZ2VuLnZhcigicHJvcHMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQucHJvcHNgKTsKICAgICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBwcm9wcywgaXQucHJvcHMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGl0Lml0ZW1zICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY0l0ZW1zKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQuaXRlbXMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoRXZhbHVhdGVkLml0ZW1zLCBpdC5pdGVtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2VuLnZhcigiaXRlbXMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQuaXRlbXNgKTsKICAgICAgICAgICAgaXQuaXRlbXMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQuaXRlbXMoZ2VuLCBpdGVtcywgaXQuaXRlbXMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmNhbGxSZWYgPSBjYWxsUmVmOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb3JlL2luZGV4LmpzCnZhciByZXF1aXJlX2NvcmUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGlkXzEgPSByZXF1aXJlX2lkKCk7CiAgICB2YXIgcmVmXzEgPSByZXF1aXJlX3JlZigpOwogICAgdmFyIGNvcmUyID0gWwogICAgICAiJHNjaGVtYSIsCiAgICAgICIkaWQiLAogICAgICAiJGRlZnMiLAogICAgICAiJHZvY2FidWxhcnkiLAogICAgICB7IGtleXdvcmQ6ICIkY29tbWVudCIgfSwKICAgICAgImRlZmluaXRpb25zIiwKICAgICAgaWRfMS5kZWZhdWx0LAogICAgICByZWZfMS5kZWZhdWx0CiAgICBdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGNvcmUyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXROdW1iZXIuanMKdmFyIHJlcXVpcmVfbGltaXROdW1iZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0TnVtYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgb3BzID0gY29kZWdlbl8xLm9wZXJhdG9yczsKICAgIHZhciBLV0RzID0gewogICAgICBtYXhpbXVtOiB7IG9rU3RyOiAiPD0iLCBvazogb3BzLkxURSwgZmFpbDogb3BzLkdUIH0sCiAgICAgIG1pbmltdW06IHsgb2tTdHI6ICI+PSIsIG9rOiBvcHMuR1RFLCBmYWlsOiBvcHMuTFQgfSwKICAgICAgZXhjbHVzaXZlTWF4aW11bTogeyBva1N0cjogIjwiLCBvazogb3BzLkxULCBmYWlsOiBvcHMuR1RFIH0sCiAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsgb2tTdHI6ICI+Iiwgb2s6IG9wcy5HVCwgZmFpbDogb3BzLkxURSB9CiAgICB9OwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkLCBzY2hlbWFDb2RlIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IGJlICR7S1dEc1trZXl3b3JkXS5va1N0cn0gJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtjb21wYXJpc29uOiAke0tXRHNba2V5d29yZF0ub2tTdHJ9LCBsaW1pdDogJHtzY2hlbWFDb2RlfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ICR7S1dEc1trZXl3b3JkXS5mYWlsfSAke3NjaGVtYUNvZGV9IHx8IGlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbXVsdGlwbGVPZi5qcwp2YXIgcmVxdWlyZV9tdWx0aXBsZU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9tdWx0aXBsZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgYmUgbXVsdGlwbGUgb2YgJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHttdWx0aXBsZU9mOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibXVsdGlwbGVPZiIsCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHByZWMgPSBpdC5vcHRzLm11bHRpcGxlT2ZQcmVjaXNpb247CiAgICAgICAgY29uc3QgcmVzID0gZ2VuLmxldCgicmVzIik7CiAgICAgICAgY29uc3QgaW52YWxpZCA9IHByZWMgPyAoMCwgY29kZWdlbl8xLl8pYE1hdGguYWJzKE1hdGgucm91bmQoJHtyZXN9KSAtICR7cmVzfSkgPiAxZS0ke3ByZWN9YCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtyZXN9ICE9PSBwYXJzZUludCgke3Jlc30pYDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgKCR7c2NoZW1hQ29kZX0gPT09IDAgfHwgKCR7cmVzfSA9ICR7ZGF0YX0vJHtzY2hlbWFDb2RlfSwgJHtpbnZhbGlkfSkpYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoLmpzCnZhciByZXF1aXJlX3VjczJsZW5ndGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdWNzMmxlbmd0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZnVuY3Rpb24gdWNzMmxlbmd0aChzdHIyKSB7CiAgICAgIGNvbnN0IGxlbiA9IHN0cjIubGVuZ3RoOwogICAgICBsZXQgbGVuZ3RoID0gMDsKICAgICAgbGV0IHBvcyA9IDA7CiAgICAgIGxldCB2YWx1ZTsKICAgICAgd2hpbGUgKHBvcyA8IGxlbikgewogICAgICAgIGxlbmd0aCsrOwogICAgICAgIHZhbHVlID0gc3RyMi5jaGFyQ29kZUF0KHBvcysrKTsKICAgICAgICBpZiAodmFsdWUgPj0gNTUyOTYgJiYgdmFsdWUgPD0gNTYzMTkgJiYgcG9zIDwgbGVuKSB7CiAgICAgICAgICB2YWx1ZSA9IHN0cjIuY2hhckNvZGVBdChwb3MpOwogICAgICAgICAgaWYgKCh2YWx1ZSAmIDY0NTEyKSA9PT0gNTYzMjApCiAgICAgICAgICAgIHBvcysrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbGVuZ3RoOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IHVjczJsZW5ndGg7CiAgICB1Y3MybGVuZ3RoLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoIikuZGVmYXVsdCc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdExlbmd0aC5qcwp2YXIgcmVxdWlyZV9saW1pdExlbmd0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXRMZW5ndGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciB1Y3MybGVuZ3RoXzEgPSByZXF1aXJlX3VjczJsZW5ndGgoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IGNoYXJhY3RlcnNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4TGVuZ3RoIiwgIm1pbkxlbmd0aCJdLAogICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3Qgb3AgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuR1QgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLkxUOwogICAgICAgIGNvbnN0IGxlbiA9IGl0Lm9wdHMudW5pY29kZSA9PT0gZmFsc2UgPyAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgdXRpbF8xLnVzZUZ1bmMpKGN4dC5nZW4sIHVjczJsZW5ndGhfMS5kZWZhdWx0KX0oJHtkYXRhfSlgOwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBtYXRjaCBwYXR0ZXJuICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtwYXR0ZXJuOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicGF0dGVybiIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB1ID0gaXQub3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgICAgY29uc3QgcmVnRXhwID0gJGRhdGEgPyAoMCwgY29kZWdlbl8xLl8pYChuZXcgUmVnRXhwKCR7c2NoZW1hQ29kZX0sICR7dX0pKWAgOiAoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgc2NoZW1hMik7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEke3JlZ0V4cH0udGVzdCgke2RhdGF9KWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9saW1pdFByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSB7CiAgICAgICAgY29uc3QgY29tcCA9IGtleXdvcmQgPT09ICJtYXhQcm9wZXJ0aWVzIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IHByb3BlcnRpZXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4UHJvcGVydGllcyIsICJtaW5Qcm9wZXJ0aWVzIl0sCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGNvbnN0IG9wID0ga2V5d29yZCA9PT0gIm1heFByb3BlcnRpZXMiID8gY29kZWdlbl8xLm9wZXJhdG9ycy5HVCA6IGNvZGVnZW5fMS5vcGVyYXRvcnMuTFQ7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYE9iamVjdC5rZXlzKCR7ZGF0YX0pLmxlbmd0aCAke29wfSAke3NjaGVtYUNvZGV9YCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcmVxdWlyZWQuanMKdmFyIHJlcXVpcmVfcmVxdWlyZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3JlcXVpcmVkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5IH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSAnJHttaXNzaW5nUHJvcGVydHl9J2AsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge21pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicmVxdWlyZWQiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGRhdGEsICRkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cyB9ID0gaXQ7CiAgICAgICAgaWYgKCEkZGF0YSAmJiBzY2hlbWEyLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gb3B0cy5sb29wUmVxdWlyZWQ7CiAgICAgICAgaWYgKGl0LmFsbEVycm9ycykKICAgICAgICAgIGFsbEVycm9yc01vZGUoKTsKICAgICAgICBlbHNlCiAgICAgICAgICBleGl0T25FcnJvck1vZGUoKTsKICAgICAgICBpZiAob3B0cy5zdHJpY3RSZXF1aXJlZCkgewogICAgICAgICAgY29uc3QgcHJvcHMgPSBjeHQucGFyZW50U2NoZW1hLnByb3BlcnRpZXM7CiAgICAgICAgICBjb25zdCB7IGRlZmluZWRQcm9wZXJ0aWVzIH0gPSBjeHQuaXQ7CiAgICAgICAgICBmb3IgKGNvbnN0IHJlcXVpcmVkS2V5IG9mIHNjaGVtYTIpIHsKICAgICAgICAgICAgaWYgKChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHNbcmVxdWlyZWRLZXldKSA9PT0gdm9pZCAwICYmICFkZWZpbmVkUHJvcGVydGllcy5oYXMocmVxdWlyZWRLZXkpKSB7CiAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hUGF0aCA9IGl0LnNjaGVtYUVudi5iYXNlSWQgKyBpdC5lcnJTY2hlbWFQYXRoOwogICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGByZXF1aXJlZCBwcm9wZXJ0eSAiJHtyZXF1aXJlZEtleX0iIGlzIG5vdCBkZWZpbmVkIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0UmVxdWlyZWQpYDsKICAgICAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgaXQub3B0cy5zdHJpY3RSZXF1aXJlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWxsRXJyb3JzTW9kZSgpIHsKICAgICAgICAgIGlmICh1c2VMb29wIHx8ICRkYXRhKSB7CiAgICAgICAgICAgIGN4dC5ibG9jayRkYXRhKGNvZGVnZW5fMS5uaWwsIGxvb3BBbGxSZXF1aXJlZCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hMikgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBleGl0T25FcnJvck1vZGUoKSB7CiAgICAgICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICAgICAgaWYgKHVzZUxvb3AgfHwgJGRhdGEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIHRydWUpOwogICAgICAgICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgKCkgPT4gbG9vcFVudGlsTWlzc2luZyhtaXNzaW5nLCB2YWxpZCkpOwogICAgICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBzY2hlbWEyLCBtaXNzaW5nKSk7CiAgICAgICAgICAgICgwLCBjb2RlXzEucmVwb3J0TWlzc2luZ1Byb3ApKGN4dCwgbWlzc2luZyk7CiAgICAgICAgICAgIGdlbi5lbHNlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BBbGxSZXF1aXJlZCgpIHsKICAgICAgICAgIGdlbi5mb3JPZigicHJvcCIsIHNjaGVtYUNvZGUsIChwcm9wKSA9PiB7CiAgICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IHByb3AgfSk7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLm5vUHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BVbnRpbE1pc3NpbmcobWlzc2luZywgdmFsaWQpIHsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IG1pc3NpbmcgfSk7CiAgICAgICAgICBnZW4uZm9yT2YobWlzc2luZywgc2NoZW1hQ29kZSwgKCkgPT4gewogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCAoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIG1pc3NpbmcsIG9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIGNvZGVnZW5fMS5uaWwpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdEl0ZW1zLmpzCnZhciByZXF1aXJlX2xpbWl0SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0SXRlbXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4SXRlbXMiID8gIm1vcmUiIDogImZld2VyIjsKICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgTk9UIGhhdmUgJHtjb21wfSB0aGFuICR7c2NoZW1hQ29kZX0gaXRlbXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4SXRlbXMiLCAibWluSXRlbXMiXSwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUgfSA9IGN4dDsKICAgICAgICBjb25zdCBvcCA9IGtleXdvcmQgPT09ICJtYXhJdGVtcyIgPyBjb2RlZ2VuXzEub3BlcmF0b3JzLkdUIDogY29kZWdlbl8xLm9wZXJhdG9ycy5MVDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMKdmFyIHJlcXVpcmVfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICBlcXVhbC5jb2RlID0gJ3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvZXF1YWwiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBlcXVhbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3VuaXF1ZUl0ZW1zLmpzCnZhciByZXF1aXJlX3VuaXF1ZUl0ZW1zID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi91bmlxdWVJdGVtcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGksIGogfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBkdXBsaWNhdGUgaXRlbXMgKGl0ZW1zICMjICR7an0gYW5kICR7aX0gYXJlIGlkZW50aWNhbClgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBpLCBqIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7aTogJHtpfSwgajogJHtqfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInVuaXF1ZUl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogImJvb2xlYW4iLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmICFzY2hlbWEyKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLmxldCgidmFsaWQiKTsKICAgICAgICBjb25zdCBpdGVtVHlwZXMgPSBwYXJlbnRTY2hlbWEuaXRlbXMgPyAoMCwgZGF0YVR5cGVfMS5nZXRTY2hlbWFUeXBlcykocGFyZW50U2NoZW1hLml0ZW1zKSA6IFtdOwogICAgICAgIGN4dC5ibG9jayRkYXRhKHZhbGlkLCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zLCAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gPT09IGZhbHNlYCk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKCkgewogICAgICAgICAgY29uc3QgaSA9IGdlbi5sZXQoImkiLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgICBjb25zdCBqID0gZ2VuLmxldCgiaiIpOwogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGksIGogfSk7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aX0gPiAxYCwgKCkgPT4gKGNhbk9wdGltaXplKCkgPyBsb29wTiA6IGxvb3BOMikoaSwgaikpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjYW5PcHRpbWl6ZSgpIHsKICAgICAgICAgIHJldHVybiBpdGVtVHlwZXMubGVuZ3RoID4gMCAmJiAhaXRlbVR5cGVzLnNvbWUoKHQpID0+IHQgPT09ICJvYmplY3QiIHx8IHQgPT09ICJhcnJheSIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsb29wTihpLCBqKSB7CiAgICAgICAgICBjb25zdCBpdGVtID0gZ2VuLm5hbWUoIml0ZW0iKTsKICAgICAgICAgIGNvbnN0IHdyb25nVHlwZSA9ICgwLCBkYXRhVHlwZV8xLmNoZWNrRGF0YVR5cGVzKShpdGVtVHlwZXMsIGl0ZW0sIGl0Lm9wdHMuc3RyaWN0TnVtYmVycywgZGF0YVR5cGVfMS5EYXRhVHlwZS5Xcm9uZyk7CiAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2VuLmNvbnN0KCJpbmRpY2VzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICAgICAgZ2VuLmZvcigoMCwgY29kZWdlbl8xLl8pYDske2l9LS07YCwgKCkgPT4gewogICAgICAgICAgICBnZW4ubGV0KGl0ZW0sICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfVske2l9XWApOwogICAgICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoMCwgY29kZWdlbl8xLl8pYGNvbnRpbnVlYCk7CiAgICAgICAgICAgIGlmIChpdGVtVHlwZXMubGVuZ3RoID4gMSkKICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtpdGVtfSA9PSAic3RyaW5nImAsICgwLCBjb2RlZ2VuXzEuXylgJHtpdGVtfSArPSAiXyJgKTsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7aW5kaWNlc31bJHtpdGVtfV0gPT0gIm51bWJlciJgLCAoKSA9PiB7CiAgICAgICAgICAgICAgZ2VuLmFzc2lnbihqLCAoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV1gKTsKICAgICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsoKTsKICAgICAgICAgICAgfSkuY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV0gPSAke2l9YCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbG9vcE4yKGksIGopIHsKICAgICAgICAgIGNvbnN0IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgICAgY29uc3Qgb3V0ZXIgPSBnZW4ubmFtZSgib3V0ZXIiKTsKICAgICAgICAgIGdlbi5sYWJlbChvdXRlcikuZm9yKCgwLCBjb2RlZ2VuXzEuXylgOyR7aX0tLTtgLCAoKSA9PiBnZW4uZm9yKCgwLCBjb2RlZ2VuXzEuXylgJHtqfSA9ICR7aX07ICR7an0tLTtgLCAoKSA9PiBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2VxbH0oJHtkYXRhfVske2l9XSwgJHtkYXRhfVske2p9XSlgLCAoKSA9PiB7CiAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsob3V0ZXIpOwogICAgICAgICAgfSkpKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vY29uc3QuanMKdmFyIHJlcXVpcmVfY29uc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2NvbnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gY29uc3RhbnQiLAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWxsb3dlZFZhbHVlOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiY29uc3QiLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWFDb2RlLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGN4dDsKICAgICAgICBpZiAoJGRhdGEgfHwgc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IikgewogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEkeygwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpfSgke2RhdGF9LCAke3NjaGVtYUNvZGV9KWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjeHQuZmFpbCgoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hMn0gIT09ICR7ZGF0YX1gKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vZW51bS5qcwp2YXIgcmVxdWlyZV9lbnVtID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9lbnVtLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gb25lIG9mIHRoZSBhbGxvd2VkIHZhbHVlcyIsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHthbGxvd2VkVmFsdWVzOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZW51bSIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmIHNjaGVtYTIubGVuZ3RoID09PSAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJlbnVtIG11c3QgaGF2ZSBub24tZW1wdHkgYXJyYXkiKTsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gaXQub3B0cy5sb29wRW51bTsKICAgICAgICBsZXQgZXFsOwogICAgICAgIGNvbnN0IGdldEVxbCA9ICgpID0+IGVxbCAhPT0gbnVsbCAmJiBlcWwgIT09IHZvaWQgMCA/IGVxbCA6IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgIGxldCB2YWxpZDsKICAgICAgICBpZiAodXNlTG9vcCB8fCAkZGF0YSkgewogICAgICAgICAgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICAgICAgY3h0LmJsb2NrJGRhdGEodmFsaWQsIGxvb3BFbnVtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgY29uc3QgdlNjaGVtYSA9IGdlbi5jb25zdCgidlNjaGVtYSIsIHNjaGVtYUNvZGUpOwogICAgICAgICAgdmFsaWQgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5zY2hlbWEyLm1hcCgoX3gsIGkpID0+IGVxdWFsQ29kZSh2U2NoZW1hLCBpKSkpOwogICAgICAgIH0KICAgICAgICBjeHQucGFzcyh2YWxpZCk7CiAgICAgICAgZnVuY3Rpb24gbG9vcEVudW0oKSB7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICBnZW4uZm9yT2YoInYiLCBzY2hlbWFDb2RlLCAodikgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2fSlgLCAoKSA9PiBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKS5icmVhaygpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGVxdWFsQ29kZSh2U2NoZW1hLCBpKSB7CiAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2ldOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2ggPT09ICJvYmplY3QiICYmIHNjaCAhPT0gbnVsbCA/ICgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2U2NoZW1hfVske2l9XSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSAke3NjaH1gOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcwp2YXIgcmVxdWlyZV92YWxpZGF0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGxpbWl0TnVtYmVyXzEgPSByZXF1aXJlX2xpbWl0TnVtYmVyKCk7CiAgICB2YXIgbXVsdGlwbGVPZl8xID0gcmVxdWlyZV9tdWx0aXBsZU9mKCk7CiAgICB2YXIgbGltaXRMZW5ndGhfMSA9IHJlcXVpcmVfbGltaXRMZW5ndGgoKTsKICAgIHZhciBwYXR0ZXJuXzEgPSByZXF1aXJlX3BhdHRlcm4oKTsKICAgIHZhciBsaW1pdFByb3BlcnRpZXNfMSA9IHJlcXVpcmVfbGltaXRQcm9wZXJ0aWVzKCk7CiAgICB2YXIgcmVxdWlyZWRfMSA9IHJlcXVpcmVfcmVxdWlyZWQoKTsKICAgIHZhciBsaW1pdEl0ZW1zXzEgPSByZXF1aXJlX2xpbWl0SXRlbXMoKTsKICAgIHZhciB1bmlxdWVJdGVtc18xID0gcmVxdWlyZV91bmlxdWVJdGVtcygpOwogICAgdmFyIGNvbnN0XzEgPSByZXF1aXJlX2NvbnN0KCk7CiAgICB2YXIgZW51bV8xID0gcmVxdWlyZV9lbnVtKCk7CiAgICB2YXIgdmFsaWRhdGlvbiA9IFsKICAgICAgLy8gbnVtYmVyCiAgICAgIGxpbWl0TnVtYmVyXzEuZGVmYXVsdCwKICAgICAgbXVsdGlwbGVPZl8xLmRlZmF1bHQsCiAgICAgIC8vIHN0cmluZwogICAgICBsaW1pdExlbmd0aF8xLmRlZmF1bHQsCiAgICAgIHBhdHRlcm5fMS5kZWZhdWx0LAogICAgICAvLyBvYmplY3QKICAgICAgbGltaXRQcm9wZXJ0aWVzXzEuZGVmYXVsdCwKICAgICAgcmVxdWlyZWRfMS5kZWZhdWx0LAogICAgICAvLyBhcnJheQogICAgICBsaW1pdEl0ZW1zXzEuZGVmYXVsdCwKICAgICAgdW5pcXVlSXRlbXNfMS5kZWZhdWx0LAogICAgICAvLyBhbnkKICAgICAgeyBrZXl3b3JkOiAidHlwZSIsIHNjaGVtYVR5cGU6IFsic3RyaW5nIiwgImFycmF5Il0gfSwKICAgICAgeyBrZXl3b3JkOiAibnVsbGFibGUiLCBzY2hlbWFUeXBlOiAiYm9vbGVhbiIgfSwKICAgICAgY29uc3RfMS5kZWZhdWx0LAogICAgICBlbnVtXzEuZGVmYXVsdAogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB2YWxpZGF0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzCnZhciByZXF1aXJlX2FkZGl0aW9uYWxJdGVtcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGxlbiB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlIG1vcmUgdGhhbiAke2xlbn0gaXRlbXNgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtsaW1pdDogJHtsZW59fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbEl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJib29sZWFuIiwgIm9iamVjdCJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICciYWRkaXRpb25hbEl0ZW1zIiBpcyBpZ25vcmVkIHdoZW4gIml0ZW1zIiBpcyBub3QgYW4gYXJyYXkgb2Ygc2NoZW1hcycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyhjeHQsIGl0ZW1zKTsKICAgICAgfQogICAgfTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zKGN4dCwgaXRlbXMpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IGxlbjogaXRlbXMubGVuZ3RoIH0pOwogICAgICAgIGN4dC5wYXNzKCgwLCBjb2RlZ2VuXzEuXylgJHtsZW59IDw9ICR7aXRlbXMubGVuZ3RofWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi52YXIoInZhbGlkIiwgKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPD0gJHtpdGVtcy5sZW5ndGh9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHZhbGlkYXRlSXRlbXModmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXModmFsaWQpIHsKICAgICAgICBnZW4uZm9yUmFuZ2UoImkiLCBpdGVtcy5sZW5ndGgsIGxlbiwgKGkpID0+IHsKICAgICAgICAgIGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkLCBkYXRhUHJvcDogaSwgZGF0YVByb3BUeXBlOiB1dGlsXzEuVHlwZS5OdW0gfSwgdmFsaWQpOwogICAgICAgICAgaWYgKCFpdC5hbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zID0gdmFsaWRhdGVBZGRpdGlvbmFsSXRlbXM7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaXRlbXMuanMKdmFyIHJlcXVpcmVfaXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVR1cGxlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImFycmF5IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuIHZhbGlkYXRlVHVwbGUoY3h0LCAiYWRkaXRpb25hbEl0ZW1zIiwgc2NoZW1hMik7CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVR1cGxlKGN4dCwgZXh0cmFJdGVtcywgc2NoQXJyID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgcGFyZW50U2NoZW1hLCBkYXRhLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBjaGVja1N0cmljdFR1cGxlKHBhcmVudFNjaGVtYSk7CiAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIHNjaEFyci5sZW5ndGggJiYgaXQuaXRlbXMgIT09IHRydWUpIHsKICAgICAgICBpdC5pdGVtcyA9IHV0aWxfMS5tZXJnZUV2YWx1YXRlZC5pdGVtcyhnZW4sIHNjaEFyci5sZW5ndGgsIGl0Lml0ZW1zKTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgc2NoQXJyLmZvckVhY2goKHNjaCwgaSkgPT4gewogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPiAke2l9YCwgKCkgPT4gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkLAogICAgICAgICAgc2NoZW1hUHJvcDogaSwKICAgICAgICAgIGRhdGFQcm9wOiBpCiAgICAgICAgfSwgdmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY2hlY2tTdHJpY3RUdXBsZShzY2gpIHsKICAgICAgICBjb25zdCB7IG9wdHMsIGVyclNjaGVtYVBhdGggfSA9IGl0OwogICAgICAgIGNvbnN0IGwgPSBzY2hBcnIubGVuZ3RoOwogICAgICAgIGNvbnN0IGZ1bGxUdXBsZSA9IGwgPT09IHNjaC5taW5JdGVtcyAmJiAobCA9PT0gc2NoLm1heEl0ZW1zIHx8IHNjaFtleHRyYUl0ZW1zXSA9PT0gZmFsc2UpOwogICAgICAgIGlmIChvcHRzLnN0cmljdFR1cGxlcyAmJiAhZnVsbFR1cGxlKSB7CiAgICAgICAgICBjb25zdCBtc2cgPSBgIiR7a2V5d29yZH0iIGlzICR7bH0tdHVwbGUsIGJ1dCBtaW5JdGVtcyBvciBtYXhJdGVtcy8ke2V4dHJhSXRlbXN9IGFyZSBub3Qgc3BlY2lmaWVkIG9yIGRpZmZlcmVudCBhdCBwYXRoICIke2VyclNjaGVtYVBhdGh9ImA7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgb3B0cy5zdHJpY3RUdXBsZXMpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVUdXBsZSA9IHZhbGlkYXRlVHVwbGU7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJlZml4SXRlbXMuanMKdmFyIHJlcXVpcmVfcHJlZml4SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3ByZWZpeEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgaXRlbXNfMSA9IHJlcXVpcmVfaXRlbXMoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJwcmVmaXhJdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsiYXJyYXkiXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlOiAoY3h0KSA9PiAoMCwgaXRlbXNfMS52YWxpZGF0ZVR1cGxlKShjeHQsICJpdGVtcyIpCiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcwp2YXIgcmVxdWlyZV9pdGVtczIwMjAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtsZW59IGl0ZW1zYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbGVuIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7bGVufX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIml0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBwcmVmaXhJdGVtcyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGl0Lml0ZW1zID0gdHJ1ZTsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChwcmVmaXhJdGVtcykKICAgICAgICAgICgwLCBhZGRpdGlvbmFsSXRlbXNfMS52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcykoY3h0LCBwcmVmaXhJdGVtcyk7CiAgICAgICAgZWxzZQogICAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvY29udGFpbnMuanMKdmFyIHJlcXVpcmVfY29udGFpbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2NvbnRhaW5zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBtaW4sIG1heCB9IH0pID0+IG1heCA9PT0gdm9pZCAwID8gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgY29udGFpbiBhdCBsZWFzdCAke21pbn0gdmFsaWQgaXRlbShzKWAgOiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7bWlufSBhbmQgbm8gbW9yZSB0aGFuICR7bWF4fSB2YWxpZCBpdGVtKHMpYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbWluLCBtYXggfSB9KSA9PiBtYXggPT09IHZvaWQgMCA/ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn19YCA6ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn0sIG1heENvbnRhaW5zOiAke21heH19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJjb250YWlucyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGxldCBtaW47CiAgICAgICAgbGV0IG1heDsKICAgICAgICBjb25zdCB7IG1pbkNvbnRhaW5zLCBtYXhDb250YWlucyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGlmIChpdC5vcHRzLm5leHQpIHsKICAgICAgICAgIG1pbiA9IG1pbkNvbnRhaW5zID09PSB2b2lkIDAgPyAxIDogbWluQ29udGFpbnM7CiAgICAgICAgICBtYXggPSBtYXhDb250YWluczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWluID0gMTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IG1pbiwgbWF4IH0pOwogICAgICAgIGlmIChtYXggPT09IHZvaWQgMCAmJiBtaW4gPT09IDApIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPT0gMCB3aXRob3V0ICJtYXhDb250YWlucyI6ICJjb250YWlucyIga2V5d29yZCBpZ25vcmVkYCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChtYXggIT09IHZvaWQgMCAmJiBtaW4gPiBtYXgpIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPiAibWF4Q29udGFpbnMiIGlzIGFsd2F5cyBpbnZhbGlkYCk7CiAgICAgICAgICBjeHQuZmFpbCgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICBsZXQgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtsZW59ID49ICR7bWlufWA7CiAgICAgICAgICBpZiAobWF4ICE9PSB2b2lkIDApCiAgICAgICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtsZW59IDw9ICR7bWF4fWA7CiAgICAgICAgICBjeHQucGFzcyhjb25kKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKG1heCA9PT0gdm9pZCAwICYmIG1pbiA9PT0gMSkgewogICAgICAgICAgdmFsaWRhdGVJdGVtcyh2YWxpZCwgKCkgPT4gZ2VuLmlmKHZhbGlkLCAoKSA9PiBnZW4uYnJlYWsoKSkpOwogICAgICAgIH0gZWxzZSBpZiAobWluID09PSAwKSB7CiAgICAgICAgICBnZW4ubGV0KHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGlmIChtYXggIT09IHZvaWQgMCkKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggPiAwYCwgdmFsaWRhdGVJdGVtc1dpdGhDb3VudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5sZXQodmFsaWQsIGZhbHNlKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKTsKICAgICAgICB9CiAgICAgICAgY3h0LnJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKSB7CiAgICAgICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgICAgIGNvbnN0IGNvdW50ID0gZ2VuLmxldCgiY291bnQiLCAwKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXMoc2NoVmFsaWQsICgpID0+IGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gY2hlY2tMaW1pdHMoY291bnQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXMoX3ZhbGlkLCBibG9jaykgewogICAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICBrZXl3b3JkOiAiY29udGFpbnMiLAogICAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICAgIGRhdGFQcm9wVHlwZTogdXRpbF8xLlR5cGUuTnVtLAogICAgICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUKICAgICAgICAgICAgfSwgX3ZhbGlkKTsKICAgICAgICAgICAgYmxvY2soKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja0xpbWl0cyhjb3VudCkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSsrYCk7CiAgICAgICAgICBpZiAobWF4ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtjb3VudH0gPj0gJHttaW59YCwgKCkgPT4gZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSkuYnJlYWsoKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSA+ICR7bWF4fWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5icmVhaygpKTsKICAgICAgICAgICAgaWYgKG1pbiA9PT0gMSkKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y291bnR9ID49ICR7bWlufWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIHRydWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzCnZhciByZXF1aXJlX2RlcGVuZGVuY2llcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVNjaGVtYURlcHMgPSBleHBvcnRzMi52YWxpZGF0ZVByb3BlcnR5RGVwcyA9IGV4cG9ydHMyLmVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIGV4cG9ydHMyLmVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgcHJvcGVydHksIGRlcHNDb3VudCwgZGVwcyB9IH0pID0+IHsKICAgICAgICBjb25zdCBwcm9wZXJ0eV9pZXMgPSBkZXBzQ291bnQgPT09IDEgPyAicHJvcGVydHkiIDogInByb3BlcnRpZXMiOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBoYXZlICR7cHJvcGVydHlfaWVzfSAke2RlcHN9IHdoZW4gcHJvcGVydHkgJHtwcm9wZXJ0eX0gaXMgcHJlc2VudGA7CiAgICAgIH0sCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IHByb3BlcnR5LCBkZXBzQ291bnQsIGRlcHMsIG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Byb3BlcnR5OiAke3Byb3BlcnR5fSwKICAgIG1pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9LAogICAgZGVwc0NvdW50OiAke2RlcHNDb3VudH0sCiAgICBkZXBzOiAke2RlcHN9fWAKICAgICAgLy8gVE9ETyBjaGFuZ2UgdG8gcmVmZXJlbmNlCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogImRlcGVuZGVuY2llcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3I6IGV4cG9ydHMyLmVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IFtwcm9wRGVwcywgc2NoRGVwc10gPSBzcGxpdERlcGVuZGVuY2llcyhjeHQpOwogICAgICAgIHZhbGlkYXRlUHJvcGVydHlEZXBzKGN4dCwgcHJvcERlcHMpOwogICAgICAgIHZhbGlkYXRlU2NoZW1hRGVwcyhjeHQsIHNjaERlcHMpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gc3BsaXREZXBlbmRlbmNpZXMoeyBzY2hlbWE6IHNjaGVtYTIgfSkgewogICAgICBjb25zdCBwcm9wZXJ0eURlcHMgPSB7fTsKICAgICAgY29uc3Qgc2NoZW1hRGVwcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIl9fcHJvdG9fXyIpCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBkZXBzID0gQXJyYXkuaXNBcnJheShzY2hlbWEyW2tleV0pID8gcHJvcGVydHlEZXBzIDogc2NoZW1hRGVwczsKICAgICAgICBkZXBzW2tleV0gPSBzY2hlbWEyW2tleV07CiAgICAgIH0KICAgICAgcmV0dXJuIFtwcm9wZXJ0eURlcHMsIHNjaGVtYURlcHNdOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eURlcHMoY3h0LCBwcm9wZXJ0eURlcHMgPSBjeHQuc2NoZW1hKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICBpZiAoT2JqZWN0LmtleXMocHJvcGVydHlEZXBzKS5sZW5ndGggPT09IDApCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcGVydHlEZXBzKSB7CiAgICAgICAgY29uc3QgZGVwcyA9IHByb3BlcnR5RGVwc1twcm9wXTsKICAgICAgICBpZiAoZGVwcy5sZW5ndGggPT09IDApCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBoYXNQcm9wZXJ0eSA9ICgwLCBjb2RlXzEucHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKTsKICAgICAgICBjeHQuc2V0UGFyYW1zKHsKICAgICAgICAgIHByb3BlcnR5OiBwcm9wLAogICAgICAgICAgZGVwc0NvdW50OiBkZXBzLmxlbmd0aCwKICAgICAgICAgIGRlcHM6IGRlcHMuam9pbigiLCAiKQogICAgICAgIH0pOwogICAgICAgIGlmIChpdC5hbGxFcnJvcnMpIHsKICAgICAgICAgIGdlbi5pZihoYXNQcm9wZXJ0eSwgKCkgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcFByb3Agb2YgZGVwcykgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBkZXBQcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aGFzUHJvcGVydHl9ICYmICgkeygwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBkZXBzLCBtaXNzaW5nKX0pYCk7CiAgICAgICAgICAoMCwgY29kZV8xLnJlcG9ydE1pc3NpbmdQcm9wKShjeHQsIG1pc3NpbmcpOwogICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlUHJvcGVydHlEZXBzID0gdmFsaWRhdGVQcm9wZXJ0eURlcHM7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVNjaGVtYURlcHMoY3h0LCBzY2hlbWFEZXBzID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgZm9yIChjb25zdCBwcm9wIGluIHNjaGVtYURlcHMpIHsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYURlcHNbcHJvcF0pKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgZ2VuLmlmKAogICAgICAgICAgKDAsIGNvZGVfMS5wcm9wZXJ0eUluRGF0YSkoZ2VuLCBkYXRhLCBwcm9wLCBpdC5vcHRzLm93blByb3BlcnRpZXMpLAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZCwgc2NoZW1hUHJvcDogcHJvcCB9LCB2YWxpZCk7CiAgICAgICAgICAgIGN4dC5tZXJnZVZhbGlkRXZhbHVhdGVkKHNjaEN4dCwgdmFsaWQpOwogICAgICAgICAgfSwKICAgICAgICAgICgpID0+IGdlbi52YXIodmFsaWQsIHRydWUpCiAgICAgICAgICAvLyBUT0RPIHZhcgogICAgICAgICk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVTY2hlbWFEZXBzID0gdmFsaWRhdGVTY2hlbWFEZXBzOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnR5TmFtZXMuanMKdmFyIHJlcXVpcmVfcHJvcGVydHlOYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJvcGVydHlOYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAicHJvcGVydHkgbmFtZSBtdXN0IGJlIHZhbGlkIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7cHJvcGVydHlOYW1lOiAke3BhcmFtcy5wcm9wZXJ0eU5hbWV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicHJvcGVydHlOYW1lcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiBbIm9iamVjdCIsICJib29sZWFuIl0sCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCgwLCB1dGlsXzEuYWx3YXlzVmFsaWRTY2hlbWEpKGl0LCBzY2hlbWEyKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIGdlbi5mb3JJbigia2V5IiwgZGF0YSwgKGtleSkgPT4gewogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IHByb3BlcnR5TmFtZToga2V5IH0pOwogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0eU5hbWVzIiwKICAgICAgICAgICAgZGF0YToga2V5LAogICAgICAgICAgICBkYXRhVHlwZXM6IFsic3RyaW5nIl0sCiAgICAgICAgICAgIHByb3BlcnR5TmFtZToga2V5LAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICB9LCB2YWxpZCk7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICBjeHQuZXJyb3IodHJ1ZSk7CiAgICAgICAgICAgIGlmICghaXQuYWxsRXJyb3JzKQogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hZGRpdGlvbmFsUHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbFByb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUyKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgbmFtZXNfMSA9IHJlcXVpcmVfbmFtZXMoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWRkaXRpb25hbFByb3BlcnR5OiAke3BhcmFtcy5hZGRpdGlvbmFsUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICB0eXBlOiBbIm9iamVjdCJdLAogICAgICBzY2hlbWFUeXBlOiBbImJvb2xlYW4iLCAib2JqZWN0Il0sCiAgICAgIGFsbG93VW5kZWZpbmVkOiB0cnVlLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFlcnJzQ291bnQpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBvcHRzIH0gPSBpdDsKICAgICAgICBpdC5wcm9wcyA9IHRydWU7CiAgICAgICAgaWYgKG9wdHMucmVtb3ZlQWRkaXRpb25hbCAhPT0gImFsbCIgJiYgKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHByb3BzID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShwYXJlbnRTY2hlbWEucHJvcGVydGllcyk7CiAgICAgICAgY29uc3QgcGF0UHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHBhcmVudFNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyk7CiAgICAgICAgY2hlY2tBZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgICAgIGN4dC5vaygoMCwgY29kZWdlbl8xLl8pYCR7ZXJyc0NvdW50fSA9PT0gJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfWApOwogICAgICAgIGZ1bmN0aW9uIGNoZWNrQWRkaXRpb25hbFByb3BlcnRpZXMoKSB7CiAgICAgICAgICBnZW4uZm9ySW4oImtleSIsIGRhdGEsIChrZXkpID0+IHsKICAgICAgICAgICAgaWYgKCFwcm9wcy5sZW5ndGggJiYgIXBhdFByb3BzLmxlbmd0aCkKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydHlDb2RlKGtleSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBnZW4uaWYoaXNBZGRpdGlvbmFsKGtleSksICgpID0+IGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaXNBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgbGV0IGRlZmluZWRQcm9wOwogICAgICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDgpIHsKICAgICAgICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgcGFyZW50U2NoZW1hLnByb3BlcnRpZXMsICJwcm9wZXJ0aWVzIik7CiAgICAgICAgICAgIGRlZmluZWRQcm9wID0gKDAsIGNvZGVfMS5pc093blByb3BlcnR5KShnZW4sIHByb3BzU2NoZW1hLCBrZXkpOwogICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5sZW5ndGgpIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5wcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl9ID09PSAke3B9YCkpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSBjb2RlZ2VuXzEubmlsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhdFByb3BzLmxlbmd0aCkgewogICAgICAgICAgICBkZWZpbmVkUHJvcCA9ICgwLCBjb2RlZ2VuXzEub3IpKGRlZmluZWRQcm9wLCAuLi5wYXRQcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgcCl9LnRlc3QoJHtrZXl9KWApKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm5vdCkoZGVmaW5lZFByb3ApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBkZWxldGVBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBkZWxldGUgJHtkYXRhfVske2tleX1dYCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSB7CiAgICAgICAgICBpZiAob3B0cy5yZW1vdmVBZGRpdGlvbmFsID09PSAiYWxsIiB8fCBvcHRzLnJlbW92ZUFkZGl0aW9uYWwgJiYgc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGFkZGl0aW9uYWxQcm9wZXJ0eToga2V5IH0pOwogICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgICAgZ2VuLmJyZWFrKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICAgIGlmIChvcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJmYWlsaW5nIikgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHsKICAgICAgICAgICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkKTsKICAgICAgICAgICAgICBpZiAoIWFsbEVycm9ycykKICAgICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlBZGRpdGlvbmFsU2NoZW1hKGtleSwgdmFsaWQsIGVycm9ycykgewogICAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gewogICAgICAgICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLlN0cgogICAgICAgICAgfTsKICAgICAgICAgIGlmIChlcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3Vic2NoZW1hLCB7CiAgICAgICAgICAgICAgY29tcG9zaXRlUnVsZTogdHJ1ZSwKICAgICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICAgIGFsbEVycm9yczogZmFsc2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjeHQuc3Vic2NoZW1hKHN1YnNjaGVtYSwgdmFsaWQpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9wcm9wZXJ0aWVzLmpzCnZhciByZXF1aXJlX3Byb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInByb3BlcnRpZXMiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogIm9iamVjdCIsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChpdC5vcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJhbGwiICYmIHBhcmVudFNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQuY29kZShuZXcgdmFsaWRhdGVfMS5LZXl3b3JkQ3h0KGl0LCBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQsICJhZGRpdGlvbmFsUHJvcGVydGllcyIpKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWxsUHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHNjaGVtYTIpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykgewogICAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMuYWRkKHByb3ApOwogICAgICAgIH0KICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBhbGxQcm9wcy5sZW5ndGggJiYgaXQucHJvcHMgIT09IHRydWUpIHsKICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgKDAsIHV0aWxfMS50b0hhc2gpKGFsbFByb3BzKSwgaXQucHJvcHMpOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gYWxsUHJvcHMuZmlsdGVyKChwKSA9PiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTJbcF0pKTsKICAgICAgICBpZiAocHJvcGVydGllcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykgewogICAgICAgICAgaWYgKGhhc0RlZmF1bHQocHJvcCkpIHsKICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eVNjaGVtYShwcm9wKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIHByb3AsIGl0Lm9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBhcHBseVByb3BlcnR5U2NoZW1hKHByb3ApOwogICAgICAgICAgICBpZiAoIWl0LmFsbEVycm9ycykKICAgICAgICAgICAgICBnZW4uZWxzZSgpLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgIGdlbi5lbmRJZigpOwogICAgICAgICAgfQogICAgICAgICAgY3h0Lml0LmRlZmluZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhc0RlZmF1bHQocHJvcCkgewogICAgICAgICAgcmV0dXJuIGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgc2NoZW1hMltwcm9wXS5kZWZhdWx0ICE9PSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFwcGx5UHJvcGVydHlTY2hlbWEocHJvcCkgewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0aWVzIiwKICAgICAgICAgICAgc2NoZW1hUHJvcDogcHJvcCwKICAgICAgICAgICAgZGF0YVByb3A6IHByb3AKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcGF0dGVyblByb3BlcnRpZXMuanMKdmFyIHJlcXVpcmVfcGF0dGVyblByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3BhdHRlcm5Qcm9wZXJ0aWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgIHNjaGVtYVR5cGU6ICJvYmplY3QiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB7IG9wdHMgfSA9IGl0OwogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShzY2hlbWEyKTsKICAgICAgICBjb25zdCBhbHdheXNWYWxpZFBhdHRlcm5zID0gcGF0dGVybnMuZmlsdGVyKChwKSA9PiAoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMltwXSkpOwogICAgICAgIGlmIChwYXR0ZXJucy5sZW5ndGggPT09IDAgfHwgYWx3YXlzVmFsaWRQYXR0ZXJucy5sZW5ndGggPT09IHBhdHRlcm5zLmxlbmd0aCAmJiAoIWl0Lm9wdHMudW5ldmFsdWF0ZWQgfHwgaXQucHJvcHMgPT09IHRydWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNoZWNrUHJvcGVydGllcyA9IG9wdHMuc3RyaWN0U2NoZW1hICYmICFvcHRzLmFsbG93TWF0Y2hpbmdQcm9wZXJ0aWVzICYmIHBhcmVudFNjaGVtYS5wcm9wZXJ0aWVzOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlICYmICEoaXQucHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSkpIHsKICAgICAgICAgIGl0LnByb3BzID0gKDAsIHV0aWxfMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSkoZ2VuLCBpdC5wcm9wcyk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHsgcHJvcHMgfSA9IGl0OwogICAgICAgIHZhbGlkYXRlUGF0dGVyblByb3BlcnRpZXMoKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVBhdHRlcm5Qcm9wZXJ0aWVzKCkgewogICAgICAgICAgZm9yIChjb25zdCBwYXQgb2YgcGF0dGVybnMpIHsKICAgICAgICAgICAgaWYgKGNoZWNrUHJvcGVydGllcykKICAgICAgICAgICAgICBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpOwogICAgICAgICAgICBpZiAoaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgICAgZ2VuLmlmKHZhbGlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpIHsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGVja1Byb3BlcnRpZXMpIHsKICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAocGF0KS50ZXN0KHByb3ApKSB7CiAgICAgICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgcHJvcGVydHkgJHtwcm9wfSBtYXRjaGVzIHBhdHRlcm4gJHtwYXR9ICh1c2UgYWxsb3dNYXRjaGluZ1Byb3BlcnRpZXMpYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCkgewogICAgICAgICAgZ2VuLmZvckluKCJrZXkiLCBkYXRhLCAoa2V5KSA9PiB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7KDAsIGNvZGVfMS51c2VQYXR0ZXJuKShjeHQsIHBhdCl9LnRlc3QoJHtrZXl9KWAsICgpID0+IHsKICAgICAgICAgICAgICBjb25zdCBhbHdheXNWYWxpZCA9IGFsd2F5c1ZhbGlkUGF0dGVybnMuaW5jbHVkZXMocGF0KTsKICAgICAgICAgICAgICBpZiAoIWFsd2F5c1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgICAgICAgICAgICAgc2NoZW1hUHJvcDogcGF0LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMi5UeXBlLlN0cgogICAgICAgICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBwcm9wcyAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cHJvcHN9WyR7a2V5fV1gLCB0cnVlKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhbHdheXNWYWxpZCAmJiAhaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gZ2VuLmJyZWFrKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzCnZhciByZXF1aXJlX25vdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICAgIGN4dC5mYWlsKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUsCiAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgYWxsRXJyb3JzOiBmYWxzZQogICAgICAgIH0sIHZhbGlkKTsKICAgICAgICBjeHQuZmFpbFJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCksICgpID0+IGN4dC5lcnJvcigpKTsKICAgICAgfSwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgTk9UIGJlIHZhbGlkIiB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FueU9mLmpzCnZhciByZXF1aXJlX2FueU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hbnlPZi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJhbnlPZiIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgIHRyYWNrRXJyb3JzOiB0cnVlLAogICAgICBjb2RlOiBjb2RlXzEudmFsaWRhdGVVbmlvbiwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgbWF0Y2ggYSBzY2hlbWEgaW4gYW55T2YiIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivb25lT2YuanMKdmFyIHJlcXVpcmVfb25lT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL29uZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICJtdXN0IG1hdGNoIGV4YWN0bHkgb25lIHNjaGVtYSBpbiBvbmVPZiIsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Bhc3NpbmdTY2hlbWFzOiAke3BhcmFtcy5wYXNzaW5nfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGlmIChpdC5vcHRzLmRpc2NyaW1pbmF0b3IgJiYgcGFyZW50U2NoZW1hLmRpc2NyaW1pbmF0b3IpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3Qgc2NoQXJyID0gc2NoZW1hMjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICAgIGNvbnN0IHBhc3NpbmcgPSBnZW4ubGV0KCJwYXNzaW5nIiwgbnVsbCk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IHBhc3NpbmcgfSk7CiAgICAgICAgZ2VuLmJsb2NrKHZhbGlkYXRlT25lT2YpOwogICAgICAgIGN4dC5yZXN1bHQodmFsaWQsICgpID0+IGN4dC5yZXNldCgpLCAoKSA9PiBjeHQuZXJyb3IodHJ1ZSkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlT25lT2YoKSB7CiAgICAgICAgICBzY2hBcnIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICAgIGxldCBzY2hDeHQ7CiAgICAgICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkgewogICAgICAgICAgICAgIGdlbi52YXIoc2NoVmFsaWQsIHRydWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7c2NoVmFsaWR9ICYmICR7dmFsaWR9YCkuYXNzaWduKHZhbGlkLCBmYWxzZSkuYXNzaWduKHBhc3NpbmcsICgwLCBjb2RlZ2VuXzEuXylgWyR7cGFzc2luZ30sICR7aX1dYCkuZWxzZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gewogICAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIHRydWUpOwogICAgICAgICAgICAgIGdlbi5hc3NpZ24ocGFzc2luZywgaSk7CiAgICAgICAgICAgICAgaWYgKHNjaEN4dCkKICAgICAgICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWxsT2YuanMKdmFyIHJlcXVpcmVfYWxsT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FsbE9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWxsT2YiLAogICAgICBzY2hlbWFUeXBlOiAiYXJyYXkiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIHNjaGVtYTIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkOiAiYWxsT2YiLCBzY2hlbWFQcm9wOiBpIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9pZi5qcwp2YXIgcmVxdWlyZV9pZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaWYuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IG1hdGNoICIke3BhcmFtcy5pZkNsYXVzZX0iIHNjaGVtYWAsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge2ZhaWxpbmdLZXl3b3JkOiAke3BhcmFtcy5pZkNsYXVzZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZiIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS50aGVuID09PSB2b2lkIDAgJiYgcGFyZW50U2NoZW1hLmVsc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCAnImlmIiB3aXRob3V0ICJ0aGVuIiBhbmQgImVsc2UiIGlzIGlnbm9yZWQnKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaGFzVGhlbiA9IGhhc1NjaGVtYShpdCwgInRoZW4iKTsKICAgICAgICBjb25zdCBoYXNFbHNlID0gaGFzU2NoZW1hKGl0LCAiZWxzZSIpOwogICAgICAgIGlmICghaGFzVGhlbiAmJiAhaGFzRWxzZSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgdHJ1ZSk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgdmFsaWRhdGVJZigpOwogICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgIGlmIChoYXNUaGVuICYmIGhhc0Vsc2UpIHsKICAgICAgICAgIGNvbnN0IGlmQ2xhdXNlID0gZ2VuLmxldCgiaWZDbGF1c2UiKTsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBpZkNsYXVzZSB9KTsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iLCBpZkNsYXVzZSksIHZhbGlkYXRlQ2xhdXNlKCJlbHNlIiwgaWZDbGF1c2UpKTsKICAgICAgICB9IGVsc2UgaWYgKGhhc1RoZW4pIHsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkoc2NoVmFsaWQpLCB2YWxpZGF0ZUNsYXVzZSgiZWxzZSIpKTsKICAgICAgICB9CiAgICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVJZigpIHsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICBrZXl3b3JkOiAiaWYiLAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlLAogICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICBhbGxFcnJvcnM6IGZhbHNlCiAgICAgICAgICB9LCBzY2hWYWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVDbGF1c2Uoa2V5d29yZCwgaWZDbGF1c2UpIHsKICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkIH0sIHNjaFZhbGlkKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgc2NoVmFsaWQpOwogICAgICAgICAgICBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHZhbGlkKTsKICAgICAgICAgICAgaWYgKGlmQ2xhdXNlKQogICAgICAgICAgICAgIGdlbi5hc3NpZ24oaWZDbGF1c2UsICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl3b3JkfWApOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGlmQ2xhdXNlOiBrZXl3b3JkIH0pOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBoYXNTY2hlbWEoaXQsIGtleXdvcmQpIHsKICAgICAgY29uc3Qgc2NoZW1hMiA9IGl0LnNjaGVtYVtrZXl3b3JkXTsKICAgICAgcmV0dXJuIHNjaGVtYTIgIT09IHZvaWQgMCAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3RoZW5FbHNlLmpzCnZhciByZXF1aXJlX3RoZW5FbHNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci90aGVuRWxzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogWyJ0aGVuIiwgImVsc2UiXSwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBjb2RlKHsga2V5d29yZCwgcGFyZW50U2NoZW1hLCBpdCB9KSB7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS5pZiA9PT0gdm9pZCAwKQogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgIiR7a2V5d29yZH0iIHdpdGhvdXQgImlmIiBpcyBpZ25vcmVkYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMKdmFyIHJlcXVpcmVfYXBwbGljYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgcHJlZml4SXRlbXNfMSA9IHJlcXVpcmVfcHJlZml4SXRlbXMoKTsKICAgIHZhciBpdGVtc18xID0gcmVxdWlyZV9pdGVtcygpOwogICAgdmFyIGl0ZW1zMjAyMF8xID0gcmVxdWlyZV9pdGVtczIwMjAoKTsKICAgIHZhciBjb250YWluc18xID0gcmVxdWlyZV9jb250YWlucygpOwogICAgdmFyIGRlcGVuZGVuY2llc18xID0gcmVxdWlyZV9kZXBlbmRlbmNpZXMoKTsKICAgIHZhciBwcm9wZXJ0eU5hbWVzXzEgPSByZXF1aXJlX3Byb3BlcnR5TmFtZXMoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIHByb3BlcnRpZXNfMSA9IHJlcXVpcmVfcHJvcGVydGllcygpOwogICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzXzEgPSByZXF1aXJlX3BhdHRlcm5Qcm9wZXJ0aWVzKCk7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdCgpOwogICAgdmFyIGFueU9mXzEgPSByZXF1aXJlX2FueU9mKCk7CiAgICB2YXIgb25lT2ZfMSA9IHJlcXVpcmVfb25lT2YoKTsKICAgIHZhciBhbGxPZl8xID0gcmVxdWlyZV9hbGxPZigpOwogICAgdmFyIGlmXzEgPSByZXF1aXJlX2lmKCk7CiAgICB2YXIgdGhlbkVsc2VfMSA9IHJlcXVpcmVfdGhlbkVsc2UoKTsKICAgIGZ1bmN0aW9uIGdldEFwcGxpY2F0b3IoZHJhZnQyMDIwID0gZmFsc2UpIHsKICAgICAgY29uc3QgYXBwbGljYXRvciA9IFsKICAgICAgICAvLyBhbnkKICAgICAgICBub3RfMS5kZWZhdWx0LAogICAgICAgIGFueU9mXzEuZGVmYXVsdCwKICAgICAgICBvbmVPZl8xLmRlZmF1bHQsCiAgICAgICAgYWxsT2ZfMS5kZWZhdWx0LAogICAgICAgIGlmXzEuZGVmYXVsdCwKICAgICAgICB0aGVuRWxzZV8xLmRlZmF1bHQsCiAgICAgICAgLy8gb2JqZWN0CiAgICAgICAgcHJvcGVydHlOYW1lc18xLmRlZmF1bHQsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNfMS5kZWZhdWx0LAogICAgICAgIGRlcGVuZGVuY2llc18xLmRlZmF1bHQsCiAgICAgICAgcHJvcGVydGllc18xLmRlZmF1bHQsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXNfMS5kZWZhdWx0CiAgICAgIF07CiAgICAgIGlmIChkcmFmdDIwMjApCiAgICAgICAgYXBwbGljYXRvci5wdXNoKHByZWZpeEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXMyMDIwXzEuZGVmYXVsdCk7CiAgICAgIGVsc2UKICAgICAgICBhcHBsaWNhdG9yLnB1c2goYWRkaXRpb25hbEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXNfMS5kZWZhdWx0KTsKICAgICAgYXBwbGljYXRvci5wdXNoKGNvbnRhaW5zXzEuZGVmYXVsdCk7CiAgICAgIHJldHVybiBhcHBsaWNhdG9yOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGdldEFwcGxpY2F0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvZm9ybWF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgbWF0Y2ggZm9ybWF0ICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtmb3JtYXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJmb3JtYXQiLAogICAgICB0eXBlOiBbIm51bWJlciIsICJzdHJpbmciXSwKICAgICAgc2NoZW1hVHlwZTogInN0cmluZyIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQsIHJ1bGVUeXBlKSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBvcHRzLCBlcnJTY2hlbWFQYXRoLCBzY2hlbWFFbnYsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgICBpZiAoIW9wdHMudmFsaWRhdGVGb3JtYXRzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICgkZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZkRlZiA9IGdlbi5jb25zdCgiZkRlZiIsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRzfVske3NjaGVtYUNvZGV9XWApOwogICAgICAgICAgY29uc3QgZlR5cGUgPSBnZW4ubGV0KCJmVHlwZSIpOwogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZ2VuLmxldCgiZm9ybWF0Iik7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtmRGVmfSA9PSAib2JqZWN0IiAmJiAhKCR7ZkRlZn0gaW5zdGFuY2VvZiBSZWdFeHApYCwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAke2ZEZWZ9LnR5cGUgfHwgInN0cmluZyJgKS5hc3NpZ24oZm9ybWF0LCAoMCwgY29kZWdlbl8xLl8pYCR7ZkRlZn0udmFsaWRhdGVgKSwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAic3RyaW5nImApLmFzc2lnbihmb3JtYXQsIGZEZWYpKTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5vcikodW5rbm93bkZtdCgpLCBpbnZhbGlkRm10KCkpKTsKICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25GbXQoKSB7CiAgICAgICAgICAgIGlmIChvcHRzLnN0cmljdFNjaGVtYSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gJiYgISR7Zm9ybWF0fWA7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBpbnZhbGlkRm10KCkgewogICAgICAgICAgICBjb25zdCBjYWxsRm9ybWF0ID0gc2NoZW1hRW52LiRhc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgKCR7ZkRlZn0uYXN5bmMgPyBhd2FpdCAke2Zvcm1hdH0oJHtkYXRhfSkgOiAke2Zvcm1hdH0oJHtkYXRhfSkpYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmb3JtYXR9KCR7ZGF0YX0pYDsKICAgICAgICAgICAgY29uc3QgdmFsaWREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAodHlwZW9mICR7Zm9ybWF0fSA9PSAiZnVuY3Rpb24iID8gJHtjYWxsRm9ybWF0fSA6ICR7Zm9ybWF0fS50ZXN0KCR7ZGF0YX0pKWA7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7Zm9ybWF0fSAmJiAke2Zvcm1hdH0gIT09IHRydWUgJiYgJHtmVHlwZX0gPT09ICR7cnVsZVR5cGV9ICYmICEke3ZhbGlkRGF0YX1gOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdCgpIHsKICAgICAgICAgIGNvbnN0IGZvcm1hdERlZiA9IHNlbGYyLmZvcm1hdHNbc2NoZW1hMl07CiAgICAgICAgICBpZiAoIWZvcm1hdERlZikgewogICAgICAgICAgICB1bmtub3duRm9ybWF0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmb3JtYXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IFtmbXRUeXBlLCBmb3JtYXQsIGZtdFJlZl0gPSBnZXRGb3JtYXQoZm9ybWF0RGVmKTsKICAgICAgICAgIGlmIChmbXRUeXBlID09PSBydWxlVHlwZSkKICAgICAgICAgICAgY3h0LnBhc3ModmFsaWRDb25kaXRpb24oKSk7CiAgICAgICAgICBmdW5jdGlvbiB1bmtub3duRm9ybWF0KCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RTY2hlbWEgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4odW5rbm93bk1zZygpKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHVua25vd25Nc2coKSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25Nc2coKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duIGZvcm1hdCAiJHtzY2hlbWEyfSIgaWdub3JlZCBpbiBzY2hlbWEgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSJgOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBnZXRGb3JtYXQoZm10RGVmKSB7CiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBmbXREZWYgaW5zdGFuY2VvZiBSZWdFeHAgPyAoMCwgY29kZWdlbl8xLnJlZ2V4cENvZGUpKGZtdERlZikgOiBvcHRzLmNvZGUuZm9ybWF0cyA/ICgwLCBjb2RlZ2VuXzEuXylgJHtvcHRzLmNvZGUuZm9ybWF0c30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHNjaGVtYTIpfWAgOiB2b2lkIDA7CiAgICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgeyBrZXk6IHNjaGVtYTIsIHJlZjogZm10RGVmLCBjb2RlIH0pOwogICAgICAgICAgICBpZiAodHlwZW9mIGZtdERlZiA9PSAib2JqZWN0IiAmJiAhKGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCkpIHsKICAgICAgICAgICAgICByZXR1cm4gW2ZtdERlZi50eXBlIHx8ICJzdHJpbmciLCBmbXREZWYudmFsaWRhdGUsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LnZhbGlkYXRlYF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFsic3RyaW5nIiwgZm10RGVmLCBmbXRdOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdmFsaWRDb25kaXRpb24oKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybWF0RGVmID09ICJvYmplY3QiICYmICEoZm9ybWF0RGVmIGluc3RhbmNlb2YgUmVnRXhwKSAmJiBmb3JtYXREZWYuYXN5bmMpIHsKICAgICAgICAgICAgICBpZiAoIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIGZvcm1hdCBpbiBzeW5jIHNjaGVtYSIpOwogICAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7Zm10UmVmfSgke2RhdGF9KWA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBmb3JtYXQgPT0gImZ1bmN0aW9uIiA/ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9KCR7ZGF0YX0pYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9LnRlc3QoJHtkYXRhfSlgOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2luZGV4LmpzCnZhciByZXF1aXJlX2Zvcm1hdDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBmb3JtYXRfMSA9IHJlcXVpcmVfZm9ybWF0KCk7CiAgICB2YXIgZm9ybWF0ID0gW2Zvcm1hdF8xLmRlZmF1bHRdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9tZXRhZGF0YS5qcwp2YXIgcmVxdWlyZV9tZXRhZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL21ldGFkYXRhLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb250ZW50Vm9jYWJ1bGFyeSA9IGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IFsKICAgICAgInRpdGxlIiwKICAgICAgImRlc2NyaXB0aW9uIiwKICAgICAgImRlZmF1bHQiLAogICAgICAiZGVwcmVjYXRlZCIsCiAgICAgICJyZWFkT25seSIsCiAgICAgICJ3cml0ZU9ubHkiLAogICAgICAiZXhhbXBsZXMiCiAgICBdOwogICAgZXhwb3J0czIuY29udGVudFZvY2FidWxhcnkgPSBbCiAgICAgICJjb250ZW50TWVkaWFUeXBlIiwKICAgICAgImNvbnRlbnRFbmNvZGluZyIsCiAgICAgICJjb250ZW50U2NoZW1hIgogICAgXTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kcmFmdDcuanMKdmFyIHJlcXVpcmVfZHJhZnQ3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZHJhZnQ3LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9jb3JlMigpOwogICAgdmFyIHZhbGlkYXRpb25fMSA9IHJlcXVpcmVfdmFsaWRhdGlvbigpOwogICAgdmFyIGFwcGxpY2F0b3JfMSA9IHJlcXVpcmVfYXBwbGljYXRvcigpOwogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQyKCk7CiAgICB2YXIgbWV0YWRhdGFfMSA9IHJlcXVpcmVfbWV0YWRhdGEoKTsKICAgIHZhciBkcmFmdDdWb2NhYnVsYXJpZXMgPSBbCiAgICAgIGNvcmVfMS5kZWZhdWx0LAogICAgICB2YWxpZGF0aW9uXzEuZGVmYXVsdCwKICAgICAgKDAsIGFwcGxpY2F0b3JfMS5kZWZhdWx0KSgpLAogICAgICBmb3JtYXRfMS5kZWZhdWx0LAogICAgICBtZXRhZGF0YV8xLm1ldGFkYXRhVm9jYWJ1bGFyeSwKICAgICAgbWV0YWRhdGFfMS5jb250ZW50Vm9jYWJ1bGFyeQogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkcmFmdDdWb2NhYnVsYXJpZXM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZGlzY3JpbWluYXRvci90eXBlcy5qcwp2YXIgcmVxdWlyZV90eXBlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2Rpc2NyaW1pbmF0b3IvdHlwZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRpc2NyRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgRGlzY3JFcnJvcjsKICAgIChmdW5jdGlvbihEaXNjckVycm9yMikgewogICAgICBEaXNjckVycm9yMlsiVGFnIl0gPSAidGFnIjsKICAgICAgRGlzY3JFcnJvcjJbIk1hcHBpbmciXSA9ICJtYXBwaW5nIjsKICAgIH0pKERpc2NyRXJyb3IgfHwgKGV4cG9ydHMyLkRpc2NyRXJyb3IgPSBEaXNjckVycm9yID0ge30pKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc2NyaW1pbmF0b3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdHlwZXNfMSA9IHJlcXVpcmVfdHlwZXMoKTsKICAgIHZhciBjb21waWxlXzEgPSByZXF1aXJlX2NvbXBpbGUoKTsKICAgIHZhciByZWZfZXJyb3JfMSA9IHJlcXVpcmVfcmVmX2Vycm9yKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWdOYW1lIH0gfSkgPT4gZGlzY3JFcnJvciA9PT0gdHlwZXNfMS5EaXNjckVycm9yLlRhZyA/IGB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgc3RyaW5nYCA6IGB2YWx1ZSBvZiB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgaW4gb25lT2ZgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWcsIHRhZ05hbWUgfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtlcnJvcjogJHtkaXNjckVycm9yfSwgdGFnOiAke3RhZ05hbWV9LCB0YWdWYWx1ZTogJHt0YWd9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZGlzY3JpbWluYXRvciIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb25lT2YgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIWl0Lm9wdHMuZGlzY3JpbWluYXRvcikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBkaXNjcmltaW5hdG9yIG9wdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB0YWdOYW1lID0gc2NoZW1hMi5wcm9wZXJ0eU5hbWU7CiAgICAgICAgaWYgKHR5cGVvZiB0YWdOYW1lICE9ICJzdHJpbmciKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBwcm9wZXJ0eU5hbWUiKTsKICAgICAgICBpZiAoc2NoZW1hMi5tYXBwaW5nKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiBtYXBwaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICBpZiAoIW9uZU9mKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBvbmVPZiBrZXl3b3JkIik7CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIGZhbHNlKTsKICAgICAgICBjb25zdCB0YWcgPSBnZW4uY29uc3QoInRhZyIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkodGFnTmFtZSl9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7dGFnfSA9PSAic3RyaW5nImAsICgpID0+IHZhbGlkYXRlTWFwcGluZygpLCAoKSA9PiBjeHQuZXJyb3IoZmFsc2UsIHsgZGlzY3JFcnJvcjogdHlwZXNfMS5EaXNjckVycm9yLlRhZywgdGFnLCB0YWdOYW1lIH0pKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlTWFwcGluZygpIHsKICAgICAgICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRNYXBwaW5nKCk7CiAgICAgICAgICBnZW4uaWYoZmFsc2UpOwogICAgICAgICAgZm9yIChjb25zdCB0YWdWYWx1ZSBpbiBtYXBwaW5nKSB7CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke3RhZ30gPT09ICR7dGFnVmFsdWV9YCk7CiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGFwcGx5VGFnU2NoZW1hKG1hcHBpbmdbdGFnVmFsdWVdKSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZWxzZSgpOwogICAgICAgICAgY3h0LmVycm9yKGZhbHNlLCB7IGRpc2NyRXJyb3I6IHR5cGVzXzEuRGlzY3JFcnJvci5NYXBwaW5nLCB0YWcsIHRhZ05hbWUgfSk7CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlUYWdTY2hlbWEoc2NoZW1hUHJvcCkgewogICAgICAgICAgY29uc3QgX3ZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZDogIm9uZU9mIiwgc2NoZW1hUHJvcCB9LCBfdmFsaWQpOwogICAgICAgICAgY3h0Lm1lcmdlRXZhbHVhdGVkKHNjaEN4dCwgY29kZWdlbl8xLk5hbWUpOwogICAgICAgICAgcmV0dXJuIF92YWxpZDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0TWFwcGluZygpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIGNvbnN0IG9uZU9mTWFwcGluZyA9IHt9OwogICAgICAgICAgY29uc3QgdG9wUmVxdWlyZWQgPSBoYXNSZXF1aXJlZChwYXJlbnRTY2hlbWEpOwogICAgICAgICAgbGV0IHRhZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lT2YubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IHNjaCA9IG9uZU9mW2ldOwogICAgICAgICAgICBpZiAoKHNjaCA9PT0gbnVsbCB8fCBzY2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaC4kcmVmKSAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoLCBpdC5zZWxmLlJVTEVTKSkgewogICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHNjaC4kcmVmOwogICAgICAgICAgICAgIHNjaCA9IGNvbXBpbGVfMS5yZXNvbHZlUmVmLmNhbGwoaXQuc2VsZiwgaXQuc2NoZW1hRW52LnJvb3QsIGl0LmJhc2VJZCwgcmVmKTsKICAgICAgICAgICAgICBpZiAoc2NoIGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgICAgICAgIHNjaCA9IHNjaC5zY2hlbWE7CiAgICAgICAgICAgICAgaWYgKHNjaCA9PT0gdm9pZCAwKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHJlZl9lcnJvcl8xLmRlZmF1bHQoaXQub3B0cy51cmlSZXNvbHZlciwgaXQuYmFzZUlkLCByZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHByb3BTY2ggPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gucHJvcGVydGllcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3RhZ05hbWVdOwogICAgICAgICAgICBpZiAodHlwZW9mIHByb3BTY2ggIT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6IG9uZU9mIHN1YnNjaGVtYXMgKG9yIHJlZmVyZW5jZWQgc2NoZW1hcykgbXVzdCBoYXZlICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFnUmVxdWlyZWQgPSB0YWdSZXF1aXJlZCAmJiAodG9wUmVxdWlyZWQgfHwgaGFzUmVxdWlyZWQoc2NoKSk7CiAgICAgICAgICAgIGFkZE1hcHBpbmdzKHByb3BTY2gsIGkpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCF0YWdSZXF1aXJlZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgbXVzdCBiZSByZXF1aXJlZGApOwogICAgICAgICAgcmV0dXJuIG9uZU9mTWFwcGluZzsKICAgICAgICAgIGZ1bmN0aW9uIGhhc1JlcXVpcmVkKHsgcmVxdWlyZWQgfSkgewogICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXF1aXJlZCkgJiYgcmVxdWlyZWQuaW5jbHVkZXModGFnTmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5ncyhzY2gsIGkpIHsKICAgICAgICAgICAgaWYgKHNjaC5jb25zdCkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmcoc2NoLmNvbnN0LCBpKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2guZW51bSkgewogICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnVmFsdWUgb2Ygc2NoLmVudW0pIHsKICAgICAgICAgICAgICAgIGFkZE1hcHBpbmcodGFnVmFsdWUsIGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6ICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iIG11c3QgaGF2ZSAiY29uc3QiIG9yICJlbnVtImApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5nKHRhZ1ZhbHVlLCBpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFnVmFsdWUgIT0gInN0cmluZyIgfHwgdGFnVmFsdWUgaW4gb25lT2ZNYXBwaW5nKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgdmFsdWVzIG11c3QgYmUgdW5pcXVlIHN0cmluZ3NgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvbmVPZk1hcHBpbmdbdGFnVmFsdWVdID0gaTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uCnZhciByZXF1aXJlX2pzb25fc2NoZW1hX2RyYWZ0XzA3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9yZWZzL2pzb24tc2NoZW1hLWRyYWZ0LTA3Lmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRzY2hlbWE6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICAkaWQ6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICB0aXRsZTogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICAgZGVmaW5pdGlvbnM6IHsKICAgICAgICBzY2hlbWFBcnJheTogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIG1pbkl0ZW1zOiAxLAogICAgICAgICAgaXRlbXM6IHsgJHJlZjogIiMiIH0KICAgICAgICB9LAogICAgICAgIG5vbk5lZ2F0aXZlSW50ZWdlcjogewogICAgICAgICAgdHlwZTogImludGVnZXIiLAogICAgICAgICAgbWluaW11bTogMAogICAgICAgIH0sCiAgICAgICAgbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDA6IHsKICAgICAgICAgIGFsbE9mOiBbeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sIHsgZGVmYXVsdDogMCB9XQogICAgICAgIH0sCiAgICAgICAgc2ltcGxlVHlwZXM6IHsKICAgICAgICAgIGVudW06IFsiYXJyYXkiLCAiYm9vbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciXQogICAgICAgIH0sCiAgICAgICAgc3RyaW5nQXJyYXk6IHsKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICBpdGVtczogeyB0eXBlOiAic3RyaW5nIiB9LAogICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsCiAgICAgICAgICBkZWZhdWx0OiBbXQogICAgICAgIH0KICAgICAgfSwKICAgICAgdHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGlkOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaS1yZWZlcmVuY2UiCiAgICAgICAgfSwKICAgICAgICAkc2NoZW1hOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaSIKICAgICAgICB9LAogICAgICAgICRyZWY6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgZm9ybWF0OiAidXJpLXJlZmVyZW5jZSIKICAgICAgICB9LAogICAgICAgICRjb21tZW50OiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICB9LAogICAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgICAgcmVhZE9ubHk6IHsKICAgICAgICAgIHR5cGU6ICJib29sZWFuIiwKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICBleGFtcGxlczogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBtdWx0aXBsZU9mOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIiwKICAgICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IDAKICAgICAgICB9LAogICAgICAgIG1heGltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBleGNsdXNpdmVNYXhpbXVtOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIgogICAgICAgIH0sCiAgICAgICAgbWluaW11bTogewogICAgICAgICAgdHlwZTogIm51bWJlciIKICAgICAgICB9LAogICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBtYXhMZW5ndGg6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkxlbmd0aDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICBwYXR0ZXJuOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInJlZ2V4IgogICAgICAgIH0sCiAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBhbnlPZjogW3sgJHJlZjogIiMiIH0sIHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXkiIH1dLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgbWF4SXRlbXM6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkl0ZW1zOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIiB9LAogICAgICAgIHVuaXF1ZUl0ZW1zOiB7CiAgICAgICAgICB0eXBlOiAiYm9vbGVhbiIsCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgY29udGFpbnM6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgbWF4UHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sCiAgICAgICAgbWluUHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICByZXF1aXJlZDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheSIgfSwKICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBkZWZpbml0aW9uczogewogICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgZGVmYXVsdDoge30KICAgICAgICB9LAogICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgcHJvcGVydHlOYW1lczogeyBmb3JtYXQ6ICJyZWdleCIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBkZXBlbmRlbmNpZXM6IHsKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsKICAgICAgICAgICAgYW55T2Y6IFt7ICRyZWY6ICIjIiB9LCB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9XQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcHJvcGVydHlOYW1lczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBjb25zdDogdHJ1ZSwKICAgICAgICBlbnVtOiB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB0eXBlOiB7CiAgICAgICAgICBhbnlPZjogWwogICAgICAgICAgICB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzIiB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgICAgICBpdGVtczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyIgfSwKICAgICAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICBmb3JtYXQ6IHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICBjb250ZW50TWVkaWFUeXBlOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgY29udGVudEVuY29kaW5nOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgaWY6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgdGhlbjogeyAkcmVmOiAiIyIgfSwKICAgICAgICBlbHNlOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGFsbE9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIGFueU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG9uZU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG5vdDogeyAkcmVmOiAiIyIgfQogICAgICB9LAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzCnZhciByZXF1aXJlX2FqdiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5NaXNzaW5nUmVmRXJyb3IgPSBleHBvcnRzMi5WYWxpZGF0aW9uRXJyb3IgPSBleHBvcnRzMi5Db2RlR2VuID0gZXhwb3J0czIuTmFtZSA9IGV4cG9ydHMyLm5pbCA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gZXhwb3J0czIuQWp2ID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZSgpOwogICAgdmFyIGRyYWZ0N18xID0gcmVxdWlyZV9kcmFmdDcoKTsKICAgIHZhciBkaXNjcmltaW5hdG9yXzEgPSByZXF1aXJlX2Rpc2NyaW1pbmF0b3IoKTsKICAgIHZhciBkcmFmdDdNZXRhU2NoZW1hID0gcmVxdWlyZV9qc29uX3NjaGVtYV9kcmFmdF8wNygpOwogICAgdmFyIE1FVEFfU1VQUE9SVF9EQVRBID0gWyIvcHJvcGVydGllcyJdOwogICAgdmFyIE1FVEFfU0NIRU1BX0lEID0gImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIjsKICAgIHZhciBBanYgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5kZWZhdWx0IHsKICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICBzdXBlci5fYWRkVm9jYWJ1bGFyaWVzKCk7CiAgICAgICAgZHJhZnQ3XzEuZGVmYXVsdC5mb3JFYWNoKCh2KSA9PiB0aGlzLmFkZFZvY2FidWxhcnkodikpOwogICAgICAgIGlmICh0aGlzLm9wdHMuZGlzY3JpbWluYXRvcikKICAgICAgICAgIHRoaXMuYWRkS2V5d29yZChkaXNjcmltaW5hdG9yXzEuZGVmYXVsdCk7CiAgICAgIH0KICAgICAgX2FkZERlZmF1bHRNZXRhU2NoZW1hKCkgewogICAgICAgIHN1cGVyLl9hZGREZWZhdWx0TWV0YVNjaGVtYSgpOwogICAgICAgIGlmICghdGhpcy5vcHRzLm1ldGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgbWV0YVNjaGVtYSA9IHRoaXMub3B0cy4kZGF0YSA/IHRoaXMuJGRhdGFNZXRhU2NoZW1hKGRyYWZ0N01ldGFTY2hlbWEsIE1FVEFfU1VQUE9SVF9EQVRBKSA6IGRyYWZ0N01ldGFTY2hlbWE7CiAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU0NIRU1BX0lELCBmYWxzZSk7CiAgICAgICAgdGhpcy5yZWZzWyJodHRwOi8vanNvbi1zY2hlbWEub3JnL3NjaGVtYSJdID0gTUVUQV9TQ0hFTUFfSUQ7CiAgICAgIH0KICAgICAgZGVmYXVsdE1ldGEoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHN1cGVyLmRlZmF1bHRNZXRhKCkgfHwgKHRoaXMuZ2V0U2NoZW1hKE1FVEFfU0NIRU1BX0lEKSA/IE1FVEFfU0NIRU1BX0lEIDogdm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkFqdiA9IEFqdjsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gQWp2OwogICAgbW9kdWxlMi5leHBvcnRzLkFqdiA9IEFqdjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IEFqdjsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiS2V5d29yZEN4dCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHZhbGlkYXRlXzEuS2V5d29yZEN4dDsKICAgIH0gfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLl87CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzdHJpbmdpZnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuc3RyaW5naWZ5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm5pbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTmFtZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5OYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkNvZGVHZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuQ29kZUdlbjsKICAgIH0gfSk7CiAgICB2YXIgdmFsaWRhdGlvbl9lcnJvcl8xID0gcmVxdWlyZV92YWxpZGF0aW9uX2Vycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWxpZGF0aW9uRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTWlzc2luZ1JlZkVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9mb3JtYXRzLmpzCnZhciByZXF1aXJlX2Zvcm1hdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2Zvcm1hdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gZXhwb3J0czIuZmFzdEZvcm1hdHMgPSBleHBvcnRzMi5mdWxsRm9ybWF0cyA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGZtdERlZih2YWxpZGF0ZSwgY29tcGFyZSkgewogICAgICByZXR1cm4geyB2YWxpZGF0ZSwgY29tcGFyZSB9OwogICAgfQogICAgZXhwb3J0czIuZnVsbEZvcm1hdHMgPSB7CiAgICAgIC8vIGRhdGU6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjYKICAgICAgZGF0ZTogZm10RGVmKGRhdGUsIGNvbXBhcmVEYXRlKSwKICAgICAgLy8gZGF0ZS10aW1lOiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42CiAgICAgIHRpbWU6IGZtdERlZihnZXRUaW1lKHRydWUpLCBjb21wYXJlVGltZSksCiAgICAgICJkYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUodHJ1ZSksIGNvbXBhcmVEYXRlVGltZSksCiAgICAgICJpc28tdGltZSI6IGZtdERlZihnZXRUaW1lKCksIGNvbXBhcmVJc29UaW1lKSwKICAgICAgImlzby1kYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUoKSwgY29tcGFyZUlzb0RhdGVUaW1lKSwKICAgICAgLy8gZHVyYXRpb246IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I2FwcGVuZGl4LUEKICAgICAgZHVyYXRpb246IC9eUCg/ISQpKChcZCtZKT8oXGQrTSk/KFxkK0QpPyhUKD89XGQpKFxkK0gpPyhcZCtNKT8oXGQrUyk/KT98KFxkK1cpPykkLywKICAgICAgdXJpLAogICAgICAidXJpLXJlZmVyZW5jZSI6IC9eKD86W2Etel1bYS16MC05K1wtLl0qOik/KD86XC8/XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFsoPzooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7Nn18OjooPzpbMC05YS1mXXsxLDR9Oil7NX18KD86WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7NH18KD86KD86WzAtOWEtZl17MSw0fTopezAsMX1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXszfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwyfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezJ9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDN9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9OnwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw0fVswLTlhLWZdezEsNH0pPzo6KSg/OlswLTlhLWZdezEsNH06WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pXC4pezN9KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1wuW2EtejAtOVwtLl9+ISQmJygpKissOz06XSspXF18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPyl8KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFwvKD86KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopPyg/Olw/KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/JC9pLAogICAgICAvLyB1cmktdGVtcGxhdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwCiAgICAgICJ1cmktdGVtcGxhdGUiOiAvXig/Oig/OlteXHgwMC1ceDIwIic8PiVcXF5ge3x9XXwlWzAtOWEtZl17Mn0pfFx7WysjLi87PyY9LCFAfF0/KD86W2EtejAtOV9dfCVbMC05YS1mXXsyfSkrKD86OlsxLTldWzAtOV17MCwzfXxcKik/KD86LCg/OlthLXowLTlfXXwlWzAtOWEtZl17Mn0pKyg/OjpbMS05XVswLTldezAsM318XCopPykqXH0pKiQvaSwKICAgICAgLy8gRm9yIHRoZSBzb3VyY2U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0CiAgICAgIC8vIEZvciB0ZXN0IGNhc2VzOiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXgKICAgICAgdXJsOiAvXig/Omh0dHBzP3xmdHApOlwvXC8oPzpcUysoPzo6XFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XC5cZHsxLDN9KXszfSkoPyEoPzoxNjlcLjI1NHwxOTJcLjE2OCkoPzpcLlxkezEsM30pezJ9KSg/ITE3MlwuKD86MVs2LTldfDJcZHwzWzAtMV0pKD86XC5cZHsxLDN9KXsyfSkoPzpbMS05XVxkP3wxXGRcZHwyWzAxXVxkfDIyWzAtM10pKD86XC4oPzoxP1xkezEsMn18MlswLTRdXGR8MjVbMC01XSkpezJ9KD86XC4oPzpbMS05XVxkP3wxXGRcZHwyWzAtNF1cZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSstKSpbYS16MC05XHV7MDBhMX0tXHV7ZmZmZn1dKykoPzpcLig/OlthLXowLTlcdXswMGExfS1cdXtmZmZmfV0rLSkqW2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSspKig/OlwuKD86W2Etelx1ezAwYTF9LVx1e2ZmZmZ9XXsyLH0pKSkoPzo6XGR7Miw1fSk/KD86XC9bXlxzXSopPyQvaXUsCiAgICAgIGVtYWlsOiAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT8kL2ksCiAgICAgIGhvc3RuYW1lOiAvXig/PS57MSwyNTN9XC4/JClbYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8oPzpcLlthLXowLTldKD86Wy0wLTlhLXpdezAsNjF9WzAtOWEtel0pPykqXC4/JC9pLAogICAgICAvLyBvcHRpbWl6ZWQgaHR0cHM6Ly93d3cuc2FmYXJpYm9va3NvbmxpbmUuY29tL2xpYnJhcnkvdmlldy9yZWd1bGFyLWV4cHJlc3Npb25zLWNvb2tib29rLzk3ODA1OTY4MDI4MzcvY2gwN3MxNi5odG1sCiAgICAgIGlwdjQ6IC9eKD86KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSQvLAogICAgICBpcHY2OiAvXigoKFswLTlhLWZdezEsNH06KXs3fShbMC05YS1mXXsxLDR9fDopKXwoKFswLTlhLWZdezEsNH06KXs2fSg6WzAtOWEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezV9KCgoOlswLTlhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezR9KCgoOlswLTlhLWZdezEsNH0pezEsM30pfCgoOlswLTlhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlhLWZdezEsNH06KXszfSgoKDpbMC05YS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05YS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOWEtZl17MSw0fTopezJ9KCgoOlswLTlhLWZdezEsNH0pezEsNX0pfCgoOlswLTlhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05YS1mXXsxLDR9Oil7MX0oKCg6WzAtOWEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOWEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoOigoKDpbMC05YS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05YS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpKSQvaSwKICAgICAgcmVnZXgsCiAgICAgIC8vIHV1aWQ6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjIKICAgICAgdXVpZDogL14oPzp1cm46dXVpZDopP1swLTlhLWZdezh9LSg/OlswLTlhLWZdezR9LSl7M31bMC05YS1mXXsxMn0kL2ksCiAgICAgIC8vIEpTT04tcG9pbnRlcjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDEKICAgICAgLy8gdXJpIGZyYWdtZW50OiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNhcHBlbmRpeC1BCiAgICAgICJqc29uLXBvaW50ZXIiOiAvXig/OlwvKD86W15+L118fjB8fjEpKikqJC8sCiAgICAgICJqc29uLXBvaW50ZXItdXJpLWZyYWdtZW50IjogL14jKD86XC8oPzpbYS16MC05X1wtLiEkJicoKSorLDs6PUBdfCVbMC05YS1mXXsyfXx+MHx+MSkqKSokL2ksCiAgICAgIC8vIHJlbGF0aXZlIEpTT04tcG9pbnRlcjogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbHVmZi1yZWxhdGl2ZS1qc29uLXBvaW50ZXItMDAKICAgICAgInJlbGF0aXZlLWpzb24tcG9pbnRlciI6IC9eKD86MHxbMS05XVswLTldKikoPzojfCg/OlwvKD86W15+L118fjB8fjEpKikqKSQvLAogICAgICAvLyB0aGUgZm9sbG93aW5nIGZvcm1hdHMgYXJlIHVzZWQgYnkgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4wI2RhdGEtdHlwZXMKICAgICAgLy8gYnl0ZTogaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbG1vdGEvaXMtYmFzZTY0CiAgICAgIGJ5dGUsCiAgICAgIC8vIHNpZ25lZCAzMiBiaXQgaW50ZWdlcgogICAgICBpbnQzMjogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlSW50MzIgfSwKICAgICAgLy8gc2lnbmVkIDY0IGJpdCBpbnRlZ2VyCiAgICAgIGludDY0OiB7IHR5cGU6ICJudW1iZXIiLCB2YWxpZGF0ZTogdmFsaWRhdGVJbnQ2NCB9LAogICAgICAvLyBDLXR5cGUgZmxvYXQKICAgICAgZmxvYXQ6IHsgdHlwZTogIm51bWJlciIsIHZhbGlkYXRlOiB2YWxpZGF0ZU51bWJlciB9LAogICAgICAvLyBDLXR5cGUgZG91YmxlCiAgICAgIGRvdWJsZTogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlTnVtYmVyIH0sCiAgICAgIC8vIGhpbnQgdG8gdGhlIFVJIHRvIGhpZGUgaW5wdXQgc3RyaW5ncwogICAgICBwYXNzd29yZDogdHJ1ZSwKICAgICAgLy8gdW5jaGVja2VkIHN0cmluZyBwYXlsb2FkCiAgICAgIGJpbmFyeTogdHJ1ZQogICAgfTsKICAgIGV4cG9ydHMyLmZhc3RGb3JtYXRzID0gewogICAgICAuLi5leHBvcnRzMi5mdWxsRm9ybWF0cywKICAgICAgZGF0ZTogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkJC8sIGNvbXBhcmVEYXRlKSwKICAgICAgdGltZTogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPykkL2ksIGNvbXBhcmVUaW1lKSwKICAgICAgImRhdGUtdGltZSI6IGZtdERlZigvXlxkXGRcZFxkLVswLTFdXGQtWzAtM11cZHQoPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KSQvaSwgY29tcGFyZURhdGVUaW1lKSwKICAgICAgImlzby10aW1lIjogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPyk/JC9pLCBjb21wYXJlSXNvVGltZSksCiAgICAgICJpc28tZGF0ZS10aW1lIjogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkW3Rcc10oPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KT8kL2ksIGNvbXBhcmVJc29EYXRlVGltZSksCiAgICAgIC8vIHVyaTogaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9pcy1teS1qc29uLXZhbGlkL2Jsb2IvbWFzdGVyL2Zvcm1hdHMuanMKICAgICAgdXJpOiAvXig/OlthLXpdW2EtejAtOStcLS5dKjopKD86XC8/XC8pP1teXHNdKiQvaSwKICAgICAgInVyaS1yZWZlcmVuY2UiOiAvXig/Oig/OlthLXpdW2EtejAtOStcLS5dKjopP1wvP1wvKT8oPzpbXlxcXHMjXVteXHMjXSopPyg/OiNbXlxcXHNdKik/JC9pLAogICAgICAvLyBlbWFpbCAoc291cmNlcyBmcm9tIGpzZW4gdmFsaWRhdG9yKToKICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDEzMjMvdXNpbmctYS1yZWd1bGFyLWV4cHJlc3Npb24tdG8tdmFsaWRhdGUtYW4tZW1haWwtYWRkcmVzcyNhbnN3ZXItODgyOTM2MwogICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3ZhbGlkLWUtbWFpbC1hZGRyZXNzIChzZWFyY2ggZm9yICd3aWxmdWwgdmlvbGF0aW9uJykKICAgICAgZW1haWw6IC9eW2EtejAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XC5bYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8pKiQvaQogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gT2JqZWN0LmtleXMoZXhwb3J0czIuZnVsbEZvcm1hdHMpOwogICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7CiAgICAgIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTsKICAgIH0KICAgIHZhciBEQVRFID0gL14oXGRcZFxkXGQpLShcZFxkKS0oXGRcZCkkLzsKICAgIHZhciBEQVlTID0gWzAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwogICAgZnVuY3Rpb24gZGF0ZShzdHIyKSB7CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBEQVRFLmV4ZWMoc3RyMik7CiAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGNvbnN0IHllYXIgPSArbWF0Y2hlc1sxXTsKICAgICAgY29uc3QgbW9udGggPSArbWF0Y2hlc1syXTsKICAgICAgY29uc3QgZGF5ID0gK21hdGNoZXNbM107CiAgICAgIHJldHVybiBtb250aCA+PSAxICYmIG1vbnRoIDw9IDEyICYmIGRheSA+PSAxICYmIGRheSA8PSAobW9udGggPT09IDIgJiYgaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogREFZU1ttb250aF0pOwogICAgfQogICAgZnVuY3Rpb24gY29tcGFyZURhdGUoZDEsIGQyKSB7CiAgICAgIGlmICghKGQxICYmIGQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBpZiAoZDEgPiBkMikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKGQxIDwgZDIpCiAgICAgICAgcmV0dXJuIC0xOwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIHZhciBUSU1FID0gL14oXGRcZCk6KFxkXGQpOihcZFxkKD86XC5cZCspPykoenwoWystXSkoXGRcZCkoPzo6PyhcZFxkKSk/KT8kL2k7CiAgICBmdW5jdGlvbiBnZXRUaW1lKHN0cmljdFRpbWVab25lKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiB0aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gVElNRS5leGVjKHN0cjIpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICBjb25zdCBociA9ICttYXRjaGVzWzFdOwogICAgICAgIGNvbnN0IG1pbiA9ICttYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHNlYyA9ICttYXRjaGVzWzNdOwogICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hlc1s0XTsKICAgICAgICBjb25zdCB0elNpZ24gPSBtYXRjaGVzWzVdID09PSAiLSIgPyAtMSA6IDE7CiAgICAgICAgY29uc3QgdHpIID0gKyhtYXRjaGVzWzZdIHx8IDApOwogICAgICAgIGNvbnN0IHR6TSA9ICsobWF0Y2hlc1s3XSB8fCAwKTsKICAgICAgICBpZiAodHpIID4gMjMgfHwgdHpNID4gNTkgfHwgc3RyaWN0VGltZVpvbmUgJiYgIXR6KQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChociA8PSAyMyAmJiBtaW4gPD0gNTkgJiYgc2VjIDwgNjApCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCB1dGNNaW4gPSBtaW4gLSB0ek0gKiB0elNpZ247CiAgICAgICAgY29uc3QgdXRjSHIgPSBociAtIHR6SCAqIHR6U2lnbiAtICh1dGNNaW4gPCAwID8gMSA6IDApOwogICAgICAgIHJldHVybiAodXRjSHIgPT09IDIzIHx8IHV0Y0hyID09PSAtMSkgJiYgKHV0Y01pbiA9PT0gNTkgfHwgdXRjTWluID09PSAtMSkgJiYgc2VjIDwgNjE7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlVGltZShzMSwgczIpIHsKICAgICAgaWYgKCEoczEgJiYgczIpKQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIGNvbnN0IHQxID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczEpKS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IHQyID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczIpKS52YWx1ZU9mKCk7CiAgICAgIGlmICghKHQxICYmIHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICByZXR1cm4gdDEgLSB0MjsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVJc29UaW1lKHQxLCB0MikgewogICAgICBpZiAoISh0MSAmJiB0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgYTEgPSBUSU1FLmV4ZWModDEpOwogICAgICBjb25zdCBhMiA9IFRJTUUuZXhlYyh0Mik7CiAgICAgIGlmICghKGExICYmIGEyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB0MSA9IGExWzFdICsgYTFbMl0gKyBhMVszXTsKICAgICAgdDIgPSBhMlsxXSArIGEyWzJdICsgYTJbM107CiAgICAgIGlmICh0MSA+IHQyKQogICAgICAgIHJldHVybiAxOwogICAgICBpZiAodDEgPCB0MikKICAgICAgICByZXR1cm4gLTE7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgdmFyIERBVEVfVElNRV9TRVBBUkFUT1IgPSAvdHxccy9pOwogICAgZnVuY3Rpb24gZ2V0RGF0ZVRpbWUoc3RyaWN0VGltZVpvbmUpIHsKICAgICAgY29uc3QgdGltZSA9IGdldFRpbWUoc3RyaWN0VGltZVpvbmUpOwogICAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZV90aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBkYXRlVGltZSA9IHN0cjIuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgICAgcmV0dXJuIGRhdGVUaW1lLmxlbmd0aCA9PT0gMiAmJiBkYXRlKGRhdGVUaW1lWzBdKSAmJiB0aW1lKGRhdGVUaW1lWzFdKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVEYXRlVGltZShkdDEsIGR0MikgewogICAgICBpZiAoIShkdDEgJiYgZHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGR0MSkudmFsdWVPZigpOwogICAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGR0MikudmFsdWVPZigpOwogICAgICBpZiAoIShkMSAmJiBkMikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIGQxIC0gZDI7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlSXNvRGF0ZVRpbWUoZHQxLCBkdDIpIHsKICAgICAgaWYgKCEoZHQxICYmIGR0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgW2QxLCB0MV0gPSBkdDEuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgIGNvbnN0IFtkMiwgdDJdID0gZHQyLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpOwogICAgICBjb25zdCByZXMgPSBjb21wYXJlRGF0ZShkMSwgZDIpOwogICAgICBpZiAocmVzID09PSB2b2lkIDApCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIHJlcyB8fCBjb21wYXJlVGltZSh0MSwgdDIpOwogICAgfQogICAgdmFyIE5PVF9VUklfRlJBR01FTlQgPSAvXC98Oi87CiAgICB2YXIgVVJJID0gL14oPzpbYS16XVthLXowLTkrXC0uXSo6KSg/OlwvP1wvKD86KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPykpfCg/Oig/OlswLTlhLWZdezEsNH06KXswLDV9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDZ9WzAtOWEtZl17MSw0fSk/OjopfFtWdl1bMC05YS1mXStcLlthLXowLTlcLS5ffiEkJicoKSorLDs9Ol0rKVxdfCg/Oig/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPylcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pfCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSp8XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqKSg/Olw/KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyQvaTsKICAgIGZ1bmN0aW9uIHVyaShzdHIyKSB7CiAgICAgIHJldHVybiBOT1RfVVJJX0ZSQUdNRU5ULnRlc3Qoc3RyMikgJiYgVVJJLnRlc3Qoc3RyMik7CiAgICB9CiAgICB2YXIgQllURSA9IC9eKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kL2dtOwogICAgZnVuY3Rpb24gYnl0ZShzdHIyKSB7CiAgICAgIEJZVEUubGFzdEluZGV4ID0gMDsKICAgICAgcmV0dXJuIEJZVEUudGVzdChzdHIyKTsKICAgIH0KICAgIHZhciBNSU5fSU5UMzIgPSAtKDIgKiogMzEpOwogICAgdmFyIE1BWF9JTlQzMiA9IDIgKiogMzEgLSAxOwogICAgZnVuY3Rpb24gdmFsaWRhdGVJbnQzMih2YWx1ZSkgewogICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPD0gTUFYX0lOVDMyICYmIHZhbHVlID49IE1JTl9JTlQzMjsKICAgIH0KICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW50NjQodmFsdWUpIHsKICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgdmFyIFpfQU5DSE9SID0gL1teXFxdXFxaLzsKICAgIGZ1bmN0aW9uIHJlZ2V4KHN0cjIpIHsKICAgICAgaWYgKFpfQU5DSE9SLnRlc3Qoc3RyMikpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAoc3RyMik7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2xpbWl0LmpzCnZhciByZXF1aXJlX2xpbWl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9saW1pdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZm9ybWF0TGltaXREZWZpbml0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gcmVxdWlyZV9hanYoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBvcHMgPSBjb2RlZ2VuXzEub3BlcmF0b3JzOwogICAgdmFyIEtXRHMgPSB7CiAgICAgIGZvcm1hdE1heGltdW06IHsgb2tTdHI6ICI8PSIsIG9rOiBvcHMuTFRFLCBmYWlsOiBvcHMuR1QgfSwKICAgICAgZm9ybWF0TWluaW11bTogeyBva1N0cjogIj49Iiwgb2s6IG9wcy5HVEUsIGZhaWw6IG9wcy5MVCB9LAogICAgICBmb3JtYXRFeGNsdXNpdmVNYXhpbXVtOiB7IG9rU3RyOiAiPCIsIG9rOiBvcHMuTFQsIGZhaWw6IG9wcy5HVEUgfSwKICAgICAgZm9ybWF0RXhjbHVzaXZlTWluaW11bTogeyBva1N0cjogIj4iLCBvazogb3BzLkdULCBmYWlsOiBvcHMuTFRFIH0KICAgIH07CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYHNob3VsZCBiZSAke0tXRHNba2V5d29yZF0ub2tTdHJ9ICR7c2NoZW1hQ29kZX1gLAogICAgICBwYXJhbXM6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7Y29tcGFyaXNvbjogJHtLV0RzW2tleXdvcmRdLm9rU3RyfSwgbGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdExpbWl0RGVmaW5pdGlvbiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICAgIGlmICghb3B0cy52YWxpZGF0ZUZvcm1hdHMpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZkN4dCA9IG5ldyBhanZfMS5LZXl3b3JkQ3h0KGl0LCBzZWxmMi5SVUxFUy5hbGwuZm9ybWF0LmRlZmluaXRpb24sICJmb3JtYXQiKTsKICAgICAgICBpZiAoZkN4dC4kZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZm10ID0gZ2VuLmNvbnN0KCJmbXQiLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10c31bJHtmQ3h0LnNjaGVtYUNvZGV9XWApOwogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLm9yKSgoMCwgY29kZWdlbl8xLl8pYHR5cGVvZiAke2ZtdH0gIT0gIm9iamVjdCJgLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10fSBpbnN0YW5jZW9mIFJlZ0V4cGAsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7Zm10fS5jb21wYXJlICE9ICJmdW5jdGlvbiJgLCBjb21wYXJlQ29kZShmbXQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRm9ybWF0KCkgewogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZkN4dC5zY2hlbWE7CiAgICAgICAgICBjb25zdCBmbXREZWYgPSBzZWxmMi5mb3JtYXRzW2Zvcm1hdF07CiAgICAgICAgICBpZiAoIWZtdERlZiB8fCBmbXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGlmICh0eXBlb2YgZm10RGVmICE9ICJvYmplY3QiIHx8IGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCB8fCB0eXBlb2YgZm10RGVmLmNvbXBhcmUgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCIke2tleXdvcmR9IjogZm9ybWF0ICIke2Zvcm1hdH0iIGRvZXMgbm90IGRlZmluZSAiY29tcGFyZSIgZnVuY3Rpb25gKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgewogICAgICAgICAgICBrZXk6IGZvcm1hdCwKICAgICAgICAgICAgcmVmOiBmbXREZWYsCiAgICAgICAgICAgIGNvZGU6IG9wdHMuY29kZS5mb3JtYXRzID8gKDAsIGNvZGVnZW5fMS5fKWAke29wdHMuY29kZS5mb3JtYXRzfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoZm9ybWF0KX1gIDogdm9pZCAwCiAgICAgICAgICB9KTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoY29tcGFyZUNvZGUoZm10KSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVDb2RlKGZtdCkgewogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LmNvbXBhcmUoJHtkYXRhfSwgJHtzY2hlbWFDb2RlfSkgJHtLV0RzW2tleXdvcmRdLmZhaWx9IDBgOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVwZW5kZW5jaWVzOiBbImZvcm1hdCJdCiAgICB9OwogICAgdmFyIGZvcm1hdExpbWl0UGx1Z2luID0gKGFqdikgPT4gewogICAgICBhanYuYWRkS2V5d29yZChleHBvcnRzMi5mb3JtYXRMaW1pdERlZmluaXRpb24pOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBmb3JtYXRMaW1pdFBsdWdpbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgZm9ybWF0c18xID0gcmVxdWlyZV9mb3JtYXRzKCk7CiAgICB2YXIgbGltaXRfMSA9IHJlcXVpcmVfbGltaXQoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBmdWxsTmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZnVsbEZvcm1hdHMiKTsKICAgIHZhciBmYXN0TmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZmFzdEZvcm1hdHMiKTsKICAgIHZhciBmb3JtYXRzUGx1Z2luID0gKGFqdiwgb3B0cyA9IHsga2V5d29yZHM6IHRydWUgfSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkgewogICAgICAgIGFkZEZvcm1hdHMoYWp2LCBvcHRzLCBmb3JtYXRzXzEuZnVsbEZvcm1hdHMsIGZ1bGxOYW1lKTsKICAgICAgICByZXR1cm4gYWp2OwogICAgICB9CiAgICAgIGNvbnN0IFtmb3JtYXRzLCBleHBvcnROYW1lXSA9IG9wdHMubW9kZSA9PT0gImZhc3QiID8gW2Zvcm1hdHNfMS5mYXN0Rm9ybWF0cywgZmFzdE5hbWVdIDogW2Zvcm1hdHNfMS5mdWxsRm9ybWF0cywgZnVsbE5hbWVdOwogICAgICBjb25zdCBsaXN0ID0gb3B0cy5mb3JtYXRzIHx8IGZvcm1hdHNfMS5mb3JtYXROYW1lczsKICAgICAgYWRkRm9ybWF0cyhhanYsIGxpc3QsIGZvcm1hdHMsIGV4cG9ydE5hbWUpOwogICAgICBpZiAob3B0cy5rZXl3b3JkcykKICAgICAgICAoMCwgbGltaXRfMS5kZWZhdWx0KShhanYpOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGZvcm1hdHNQbHVnaW4uZ2V0ID0gKG5hbWUsIG1vZGUgPSAiZnVsbCIpID0+IHsKICAgICAgY29uc3QgZm9ybWF0cyA9IG1vZGUgPT09ICJmYXN0IiA/IGZvcm1hdHNfMS5mYXN0Rm9ybWF0cyA6IGZvcm1hdHNfMS5mdWxsRm9ybWF0czsKICAgICAgY29uc3QgZiA9IGZvcm1hdHNbbmFtZV07CiAgICAgIGlmICghZikKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZm9ybWF0ICIke25hbWV9ImApOwogICAgICByZXR1cm4gZjsKICAgIH07CiAgICBmdW5jdGlvbiBhZGRGb3JtYXRzKGFqdiwgbGlzdCwgZnMsIGV4cG9ydE5hbWUpIHsKICAgICAgdmFyIF9hOwogICAgICB2YXIgX2I7CiAgICAgIChfYSA9IChfYiA9IGFqdi5vcHRzLmNvZGUpLmZvcm1hdHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IF9iLmZvcm1hdHMgPSAoMCwgY29kZWdlbl8xLl8pYHJlcXVpcmUoImFqdi1mb3JtYXRzL2Rpc3QvZm9ybWF0cyIpLiR7ZXhwb3J0TmFtZX1gOwogICAgICBmb3IgKGNvbnN0IGYgb2YgbGlzdCkKICAgICAgICBhanYuYWRkRm9ybWF0KGYsIGZzW2ZdKTsKICAgIH0KICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gZm9ybWF0c1BsdWdpbjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdHNQbHVnaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcwp2YXIgcmVxdWlyZV9pc0Z1bmN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNGdW5jdGlvbiA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIjsKICAgIH0KICAgIGV4cG9ydHMyLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMKdmFyIHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUVycm9yQ2xhc3MgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBjcmVhdGVFcnJvckNsYXNzKGNyZWF0ZUltcGwpIHsKICAgICAgdmFyIF9zdXBlciA9IGZ1bmN0aW9uKGluc3RhbmNlKSB7CiAgICAgICAgRXJyb3IuY2FsbChpbnN0YW5jZSk7CiAgICAgICAgaW5zdGFuY2Uuc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjazsKICAgICAgfTsKICAgICAgdmFyIGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpOwogICAgICBjdG9yRnVuYy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CiAgICAgIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jOwogICAgICByZXR1cm4gY3RvckZ1bmM7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVFcnJvckNsYXNzID0gY3JlYXRlRXJyb3JDbGFzczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzCnZhciByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VbnN1YnNjcmlwdGlvbkVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVW5zdWJzY3JpcHRpb25FcnJvckltcGwoZXJyb3JzKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9ycyA/IGVycm9ycy5sZW5ndGggKyAiIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4iICsgZXJyb3JzLm1hcChmdW5jdGlvbihlcnIsIGkpIHsKICAgICAgICAgIHJldHVybiBpICsgMSArICIpICIgKyBlcnIudG9TdHJpbmcoKTsKICAgICAgICB9KS5qb2luKCJcbiAgIikgOiAiIjsKICAgICAgICB0aGlzLm5hbWUgPSAiVW5zdWJzY3JpcHRpb25FcnJvciI7CiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcnJSZW1vdmUuanMKdmFyIHJlcXVpcmVfYXJyUmVtb3ZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBhcnJSZW1vdmUoYXJyLCBpdGVtKSB7CiAgICAgIGlmIChhcnIpIHsKICAgICAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTsKICAgICAgICAwIDw9IGluZGV4ICYmIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSBhcnJSZW1vdmU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmlwdGlvbi5qcwp2YXIgcmVxdWlyZV9TdWJzY3JpcHRpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1N1YnNjcmlwdGlvbiA9IGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBVbnN1YnNjcmlwdGlvbkVycm9yXzEgPSByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFN1YnNjcmlwdGlvbjIoaW5pdGlhbFRlYXJkb3duKSB7CiAgICAgICAgdGhpcy5pbml0aWFsVGVhcmRvd24gPSBpbml0aWFsVGVhcmRvd247CiAgICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBudWxsOwogICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsOwogICAgICB9CiAgICAgIFN1YnNjcmlwdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgdmFyIGVycm9yczsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTsKICAgICAgICAgIGlmIChfcGFyZW50YWdlKSB7CiAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7CiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9wYXJlbnRhZ2VfMSA9IF9fdmFsdWVzKF9wYXJlbnRhZ2UpLCBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCk7ICFfcGFyZW50YWdlXzFfMS5kb25lOyBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudF8xID0gX3BhcmVudGFnZV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgICAgIHBhcmVudF8xLnJlbW92ZSh0aGlzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgaWYgKF9wYXJlbnRhZ2VfMV8xICYmICFfcGFyZW50YWdlXzFfMS5kb25lICYmIChfYSA9IF9wYXJlbnRhZ2VfMS5yZXR1cm4pKSBfYS5jYWxsKF9wYXJlbnRhZ2VfMSk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgaW5pdGlhbEZpbmFsaXplciA9IHRoaXMuaW5pdGlhbFRlYXJkb3duOwogICAgICAgICAgaWYgKGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGluaXRpYWxGaW5hbGl6ZXIpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaW5pdGlhbEZpbmFsaXplcigpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgZXJyb3JzID0gZSBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yID8gZS5lcnJvcnMgOiBbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBfZmluYWxpemVycyA9IHRoaXMuX2ZpbmFsaXplcnM7CiAgICAgICAgICBpZiAoX2ZpbmFsaXplcnMpIHsKICAgICAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2ZpbmFsaXplcnNfMSA9IF9fdmFsdWVzKF9maW5hbGl6ZXJzKSwgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCk7ICFfZmluYWxpemVyc18xXzEuZG9uZTsgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgIHZhciBmaW5hbGl6ZXIgPSBfZmluYWxpemVyc18xXzEudmFsdWU7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBleGVjRmluYWxpemVyKGZpbmFsaXplcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDogW107CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcikgewogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGVycm9ycykpLCBfX3JlYWQoZXJyLmVycm9ycykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMl8xKSB7CiAgICAgICAgICAgICAgZV8yID0geyBlcnJvcjogZV8yXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzXzFfMSAmJiAhX2ZpbmFsaXplcnNfMV8xLmRvbmUgJiYgKF9iID0gX2ZpbmFsaXplcnNfMS5yZXR1cm4pKSBfYi5jYWxsKF9maW5hbGl6ZXJzXzEpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8yKSB0aHJvdyBlXzIuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHRlYXJkb3duICYmIHRlYXJkb3duICE9PSB0aGlzKSB7CiAgICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24yKSB7CiAgICAgICAgICAgICAgaWYgKHRlYXJkb3duLmNsb3NlZCB8fCB0ZWFyZG93bi5faGFzUGFyZW50KHRoaXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRlYXJkb3duLl9hZGRQYXJlbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKHRoaXMuX2ZpbmFsaXplcnMgPSAoX2EgPSB0aGlzLl9maW5hbGl6ZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSkucHVzaCh0ZWFyZG93bik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5faGFzUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgcmV0dXJuIF9wYXJlbnRhZ2UgPT09IHBhcmVudCB8fCBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpICYmIF9wYXJlbnRhZ2UuaW5jbHVkZXMocGFyZW50KTsKICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuX2FkZFBhcmVudCA9IGZ1bmN0aW9uKHBhcmVudCkgewogICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlOwogICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgPyAoX3BhcmVudGFnZS5wdXNoKHBhcmVudCksIF9wYXJlbnRhZ2UpIDogX3BhcmVudGFnZSA/IFtfcGFyZW50YWdlLCBwYXJlbnRdIDogcGFyZW50OwogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgaWYgKF9wYXJlbnRhZ2UgPT09IHBhcmVudCkgewogICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkpIHsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShfcGFyZW50YWdlLCBwYXJlbnQpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2ZpbmFsaXplcnMgPSB0aGlzLl9maW5hbGl6ZXJzOwogICAgICAgIF9maW5hbGl6ZXJzICYmIGFyclJlbW92ZV8xLmFyclJlbW92ZShfZmluYWxpemVycywgdGVhcmRvd24pOwogICAgICAgIGlmICh0ZWFyZG93biBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbjIpIHsKICAgICAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLkVNUFRZID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVtcHR5ID0gbmV3IFN1YnNjcmlwdGlvbjIoKTsKICAgICAgICBlbXB0eS5jbG9zZWQgPSB0cnVlOwogICAgICAgIHJldHVybiBlbXB0eTsKICAgICAgfSgpOwogICAgICByZXR1cm4gU3Vic2NyaXB0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjsKICAgIGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IFN1YnNjcmlwdGlvbi5FTVBUWTsKICAgIGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fCB2YWx1ZSAmJiAiY2xvc2VkIiBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih2YWx1ZS5yZW1vdmUpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmFkZCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpOwogICAgfQogICAgZXhwb3J0czIuaXNTdWJzY3JpcHRpb24gPSBpc1N1YnNjcmlwdGlvbjsKICAgIGZ1bmN0aW9uIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKSB7CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihmaW5hbGl6ZXIpKSB7CiAgICAgICAgZmluYWxpemVyKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZmluYWxpemVyLnVuc3Vic2NyaWJlKCk7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvY29uZmlnLmpzCnZhciByZXF1aXJlX2NvbmZpZyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9jb25maWcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHsKICAgICAgb25VbmhhbmRsZWRFcnJvcjogbnVsbCwKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiBudWxsLAogICAgICBQcm9taXNlOiB2b2lkIDAsCiAgICAgIHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6IGZhbHNlLAogICAgICB1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6IGZhbHNlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzCnZhciByZXF1aXJlX3RpbWVvdXRQcm92aWRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB2b2lkIDA7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB7CiAgICAgIHNldFRpbWVvdXQ6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRUaW1lb3V0KSB7CiAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0VGltZW91dC5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW2hhbmRsZXIsIHRpbWVvdXRdLCBfX3JlYWQoYXJncykpKTsKICAgICAgfSwKICAgICAgY2xlYXJUaW1lb3V0OiBmdW5jdGlvbihoYW5kbGUpIHsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFyVGltZW91dCkgfHwgY2xlYXJUaW1lb3V0KShoYW5kbGUpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yLmpzCnZhciByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvbmZpZ18xID0gcmVxdWlyZV9jb25maWcoKTsKICAgIHZhciB0aW1lb3V0UHJvdmlkZXJfMSA9IHJlcXVpcmVfdGltZW91dFByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiByZXBvcnRVbmhhbmRsZWRFcnJvcihlcnIpIHsKICAgICAgdGltZW91dFByb3ZpZGVyXzEudGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9uVW5oYW5kbGVkRXJyb3IgPSBjb25maWdfMS5jb25maWcub25VbmhhbmRsZWRFcnJvcjsKICAgICAgICBpZiAob25VbmhhbmRsZWRFcnJvcikgewogICAgICAgICAgb25VbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gcmVwb3J0VW5oYW5kbGVkRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcwp2YXIgcmVxdWlyZV9ub29wID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm9vcCA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIG5vb3AoKSB7CiAgICB9CiAgICBleHBvcnRzMi5ub29wID0gbm9vcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uRmFjdG9yaWVzLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbkZhY3RvcmllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb25GYWN0b3JpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZU5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLm5leHROb3RpZmljYXRpb24gPSBleHBvcnRzMi5lcnJvck5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCJDIiwgdm9pZCAwLCB2b2lkIDApOwogICAgfSgpOwogICAgZnVuY3Rpb24gZXJyb3JOb3RpZmljYXRpb24oZXJyb3IpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiRSIsIHZvaWQgMCwgZXJyb3IpOwogICAgfQogICAgZXhwb3J0czIuZXJyb3JOb3RpZmljYXRpb24gPSBlcnJvck5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG5leHROb3RpZmljYXRpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiTiIsIHZhbHVlLCB2b2lkIDApOwogICAgfQogICAgZXhwb3J0czIubmV4dE5vdGlmaWNhdGlvbiA9IG5leHROb3RpZmljYXRpb247CiAgICBmdW5jdGlvbiBjcmVhdGVOb3RpZmljYXRpb24oa2luZCwgdmFsdWUsIGVycm9yKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAga2luZCwKICAgICAgICB2YWx1ZSwKICAgICAgICBlcnJvcgogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlTm90aWZpY2F0aW9uID0gY3JlYXRlTm90aWZpY2F0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2Vycm9yQ29udGV4dC5qcwp2YXIgcmVxdWlyZV9lcnJvckNvbnRleHQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9lcnJvckNvbnRleHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNhcHR1cmVFcnJvciA9IGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IHZvaWQgMDsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgY29udGV4dCA9IG51bGw7CiAgICBmdW5jdGlvbiBlcnJvckNvbnRleHQoY2IpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKSB7CiAgICAgICAgdmFyIGlzUm9vdCA9ICFjb250ZXh0OwogICAgICAgIGlmIChpc1Jvb3QpIHsKICAgICAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgY2IoKTsKICAgICAgICBpZiAoaXNSb290KSB7CiAgICAgICAgICB2YXIgX2EgPSBjb250ZXh0LCBlcnJvclRocm93biA9IF9hLmVycm9yVGhyb3duLCBlcnJvciA9IF9hLmVycm9yOwogICAgICAgICAgY29udGV4dCA9IG51bGw7CiAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHsKICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNiKCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IGVycm9yQ29udGV4dDsKICAgIGZ1bmN0aW9uIGNhcHR1cmVFcnJvcihlcnIpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nICYmIGNvbnRleHQpIHsKICAgICAgICBjb250ZXh0LmVycm9yVGhyb3duID0gdHJ1ZTsKICAgICAgICBjb250ZXh0LmVycm9yID0gZXJyOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5jYXB0dXJlRXJyb3IgPSBjYXB0dXJlRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfU3Vic2NyaWJlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TdWJzY3JpYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkVNUFRZX09CU0VSVkVSID0gZXhwb3J0czIuU2FmZVN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgcmVwb3J0VW5oYW5kbGVkRXJyb3JfMSA9IHJlcXVpcmVfcmVwb3J0VW5oYW5kbGVkRXJyb3IoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBOb3RpZmljYXRpb25GYWN0b3JpZXNfMSA9IHJlcXVpcmVfTm90aWZpY2F0aW9uRmFjdG9yaWVzKCk7CiAgICB2YXIgdGltZW91dFByb3ZpZGVyXzEgPSByZXF1aXJlX3RpbWVvdXRQcm92aWRlcigpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJzY3JpYmVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3Vic2NyaWJlcjIoZGVzdGluYXRpb24pIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLmlzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgIGlmIChkZXN0aW5hdGlvbikgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsKICAgICAgICAgIGlmIChTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkKF90aGlzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFN1YnNjcmliZXIyLmNyZWF0ZSA9IGZ1bmN0aW9uKG5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHJldHVybiBuZXcgU2FmZVN1YnNjcmliZXIobmV4dCwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25GYWN0b3JpZXNfMS5uZXh0Tm90aWZpY2F0aW9uKHZhbHVlKSwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX25leHQodmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLmVycm9yTm90aWZpY2F0aW9uKGVyciksIHRoaXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLl9lcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLkNPTVBMRVRFX05PVElGSUNBVElPTiwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMuX2NvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpYmVyMi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbnVsbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5uZXh0KHZhbHVlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gU3Vic2NyaWJlcjI7CiAgICB9KFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbik7CiAgICBleHBvcnRzMi5TdWJzY3JpYmVyID0gU3Vic2NyaWJlcjsKICAgIHZhciBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kOwogICAgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykgewogICAgICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7CiAgICB9CiAgICB2YXIgQ29uc3VtZXJPYnNlcnZlciA9IGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBDb25zdW1lck9ic2VydmVyMihwYXJ0aWFsT2JzZXJ2ZXIpIHsKICAgICAgICB0aGlzLnBhcnRpYWxPYnNlcnZlciA9IHBhcnRpYWxPYnNlcnZlcjsKICAgICAgfQogICAgICBDb25zdW1lck9ic2VydmVyMi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIubmV4dCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIENvbnN1bWVyT2JzZXJ2ZXIyOwogICAgfSgpOwogICAgdmFyIFNhZmVTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTYWZlU3Vic2NyaWJlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFNhZmVTdWJzY3JpYmVyMihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgIW9ic2VydmVyT3JOZXh0KSB7CiAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7CiAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0ICE9PSBudWxsICYmIG9ic2VydmVyT3JOZXh0ICE9PSB2b2lkIDAgPyBvYnNlcnZlck9yTmV4dCA6IHZvaWQgMCwKICAgICAgICAgICAgZXJyb3I6IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IHZvaWQgMCwKICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlICE9PSBudWxsICYmIGNvbXBsZXRlICE9PSB2b2lkIDAgPyBjb21wbGV0ZSA6IHZvaWQgMAogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGNvbnRleHRfMTsKICAgICAgICAgIGlmIChfdGhpcyAmJiBjb25maWdfMS5jb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHRfMSA9IE9iamVjdC5jcmVhdGUob2JzZXJ2ZXJPck5leHQpOwogICAgICAgICAgICBjb250ZXh0XzEudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyID0gewogICAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0Lm5leHQgJiYgYmluZChvYnNlcnZlck9yTmV4dC5uZXh0LCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGVycm9yOiBvYnNlcnZlck9yTmV4dC5lcnJvciAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmVycm9yLCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0XzEpCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBuZXcgQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICByZXR1cm4gU2FmZVN1YnNjcmliZXIyOwogICAgfShTdWJzY3JpYmVyKTsKICAgIGV4cG9ydHMyLlNhZmVTdWJzY3JpYmVyID0gU2FmZVN1YnNjcmliZXI7CiAgICBmdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcikgewogICAgICBpZiAoY29uZmlnXzEuY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHsKICAgICAgICBlcnJvckNvbnRleHRfMS5jYXB0dXJlRXJyb3IoZXJyb3IpOwogICAgICB9IGVsc2UgewogICAgICAgIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycikgewogICAgICB0aHJvdyBlcnI7CiAgICB9CiAgICBmdW5jdGlvbiBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcikgewogICAgICB2YXIgb25TdG9wcGVkTm90aWZpY2F0aW9uID0gY29uZmlnXzEuY29uZmlnLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjsKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uICYmIHRpbWVvdXRQcm92aWRlcl8xLnRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBvblN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUiA9IHsKICAgICAgY2xvc2VkOiB0cnVlLAogICAgICBuZXh0OiBub29wXzEubm9vcCwKICAgICAgZXJyb3I6IGRlZmF1bHRFcnJvckhhbmRsZXIsCiAgICAgIGNvbXBsZXRlOiBub29wXzEubm9vcAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL29ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfb2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgIkBAb2JzZXJ2YWJsZSI7CiAgICB9KCk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaWRlbnRpdHkuanMKdmFyIHJlcXVpcmVfaWRlbnRpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWRlbnRpdHkgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBpZGVudGl0eSh4KSB7CiAgICAgIHJldHVybiB4OwogICAgfQogICAgZXhwb3J0czIuaWRlbnRpdHkgPSBpZGVudGl0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzCnZhciByZXF1aXJlX3BpcGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5waXBlRnJvbUFycmF5ID0gZXhwb3J0czIucGlwZSA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcGlwZSgpIHsKICAgICAgdmFyIGZucyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGZuc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBwaXBlRnJvbUFycmF5KGZucyk7CiAgICB9CiAgICBleHBvcnRzMi5waXBlID0gcGlwZTsKICAgIGZ1bmN0aW9uIHBpcGVGcm9tQXJyYXkoZm5zKSB7CiAgICAgIGlmIChmbnMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZm5zWzBdOwogICAgICB9CiAgICAgIHJldHVybiBmdW5jdGlvbiBwaXBlZChpbnB1dCkgewogICAgICAgIHJldHVybiBmbnMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGZuKSB7CiAgICAgICAgICByZXR1cm4gZm4ocHJldik7CiAgICAgICAgfSwgaW5wdXQpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIucGlwZUZyb21BcnJheSA9IHBpcGVGcm9tQXJyYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9PYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBvYnNlcnZhYmxlXzEgPSByZXF1aXJlX29ic2VydmFibGUoKTsKICAgIHZhciBwaXBlXzEgPSByZXF1aXJlX3BpcGUoKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXJyb3JDb250ZXh0XzEgPSByZXF1aXJlX2Vycm9yQ29udGV4dCgpOwogICAgdmFyIE9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gT2JzZXJ2YWJsZTIoc3Vic2NyaWJlKSB7CiAgICAgICAgaWYgKHN1YnNjcmliZSkgewogICAgICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlOwogICAgICAgIH0KICAgICAgfQogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUubGlmdCA9IGZ1bmN0aW9uKG9wZXJhdG9yKSB7CiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTIoKTsKICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7CiAgICAgICAgb2JzZXJ2YWJsZS5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24ob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBpc1N1YnNjcmliZXIob2JzZXJ2ZXJPck5leHQpID8gb2JzZXJ2ZXJPck5leHQgOiBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUpOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYSA9IF90aGlzLCBvcGVyYXRvciA9IF9hLm9wZXJhdG9yLCBzb3VyY2UgPSBfYS5zb3VyY2U7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChvcGVyYXRvciA/IG9wZXJhdG9yLmNhbGwoc3Vic2NyaWJlciwgc291cmNlKSA6IHNvdXJjZSA/IF90aGlzLl9zdWJzY3JpYmUoc3Vic2NyaWJlcikgOiBfdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzaW5rKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiB0aGlzLl9zdWJzY3JpYmUoc2luayk7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBzaW5rLmVycm9yKGVycik7CiAgICAgICAgfQogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKG5leHQsIHByb21pc2VDdG9yKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTsKICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKHsKICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvcGVyYXRpb25zID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIG9wZXJhdGlvbnNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHBpcGVfMS5waXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUudG9Qcm9taXNlID0gZnVuY3Rpb24ocHJvbWlzZUN0b3IpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpOwogICAgICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoZnVuY3Rpb24oeCkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUgPSB4OwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh2YWx1ZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIuY3JlYXRlID0gZnVuY3Rpb24oc3Vic2NyaWJlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlMihzdWJzY3JpYmUpOwogICAgICB9OwogICAgICByZXR1cm4gT2JzZXJ2YWJsZTI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gT2JzZXJ2YWJsZTsKICAgIGZ1bmN0aW9uIGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmV0dXJuIChfYSA9IHByb21pc2VDdG9yICE9PSBudWxsICYmIHByb21pc2VDdG9yICE9PSB2b2lkIDAgPyBwcm9taXNlQ3RvciA6IGNvbmZpZ18xLmNvbmZpZy5Qcm9taXNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBQcm9taXNlOwogICAgfQogICAgZnVuY3Rpb24gaXNPYnNlcnZlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUubmV4dCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuZXJyb3IpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmNvbXBsZXRlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU3Vic2NyaWJlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBTdWJzY3JpYmVyXzEuU3Vic2NyaWJlciB8fCBpc09ic2VydmVyKHZhbHVlKSAmJiBTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbih2YWx1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcwp2YXIgcmVxdWlyZV9saWZ0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub3BlcmF0ZSA9IGV4cG9ydHMyLmhhc0xpZnQgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBoYXNMaWZ0KHNvdXJjZSkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmxpZnQpOwogICAgfQogICAgZXhwb3J0czIuaGFzTGlmdCA9IGhhc0xpZnQ7CiAgICBmdW5jdGlvbiBvcGVyYXRlKGluaXQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIGlmIChoYXNMaWZ0KHNvdXJjZSkpIHsKICAgICAgICAgIHJldHVybiBzb3VyY2UubGlmdChmdW5jdGlvbihsaWZ0ZWRTb3VyY2UpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICByZXR1cm4gaW5pdChsaWZ0ZWRTb3VyY2UsIHRoaXMpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICB0aGlzLmVycm9yKGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub3BlcmF0ZSA9IG9wZXJhdGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gZXhwb3J0czIuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpIHsKICAgICAgcmV0dXJuIG5ldyBPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSk7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXI7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhPcGVyYXRvclN1YnNjcmliZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBPcGVyYXRvclN1YnNjcmliZXIyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUsIHNob3VsZFVuc3Vic2NyaWJlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZGVzdGluYXRpb24pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMub25GaW5hbGl6ZSA9IG9uRmluYWxpemU7CiAgICAgICAgX3RoaXMuc2hvdWxkVW5zdWJzY3JpYmUgPSBzaG91bGRVbnN1YnNjcmliZTsKICAgICAgICBfdGhpcy5fbmV4dCA9IG9uTmV4dCA/IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBvbk5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX25leHQ7CiAgICAgICAgX3RoaXMuX2Vycm9yID0gb25FcnJvciA/IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyMikgewogICAgICAgICAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnIyKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9IDogX3N1cGVyLnByb3RvdHlwZS5fZXJyb3I7CiAgICAgICAgX3RoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZSA/IGZ1bmN0aW9uKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25Db21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX2NvbXBsZXRlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPcGVyYXRvclN1YnNjcmliZXIyLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmUgfHwgdGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKSB7CiAgICAgICAgICB2YXIgY2xvc2VkXzEgPSB0aGlzLmNsb3NlZDsKICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTsKICAgICAgICAgICFjbG9zZWRfMSAmJiAoKF9hID0gdGhpcy5vbkZpbmFsaXplKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKSk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gT3BlcmF0b3JTdWJzY3JpYmVyMjsKICAgIH0oU3Vic2NyaWJlcl8xLlN1YnNjcmliZXIpOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmVmQ291bnQuanMKdmFyIHJlcXVpcmVfcmVmQ291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZkNvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZWZDb3VudCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiByZWZDb3VudCgpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBzb3VyY2UuX3JlZkNvdW50Kys7CiAgICAgICAgdmFyIHJlZkNvdW50ZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UuX3JlZkNvdW50IDw9IDAgfHwgMCA8IC0tc291cmNlLl9yZWZDb3VudCkgewogICAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNoYXJlZENvbm5lY3Rpb24gPSBzb3VyY2UuX2Nvbm5lY3Rpb247CiAgICAgICAgICB2YXIgY29ubiA9IGNvbm5lY3Rpb247CiAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgIGlmIChzaGFyZWRDb25uZWN0aW9uICYmICghY29ubiB8fCBzaGFyZWRDb25uZWN0aW9uID09PSBjb25uKSkgewogICAgICAgICAgICBzaGFyZWRDb25uZWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShyZWZDb3VudGVyKTsKICAgICAgICBpZiAoIXJlZkNvdW50ZXIuY2xvc2VkKSB7CiAgICAgICAgICBjb25uZWN0aW9uID0gc291cmNlLmNvbm5lY3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVmQ291bnQgPSByZWZDb3VudDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvQ29ubmVjdGFibGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgcmVmQ291bnRfMSA9IHJlcXVpcmVfcmVmQ291bnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhDb25uZWN0YWJsZU9ic2VydmFibGUyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBDb25uZWN0YWJsZU9ic2VydmFibGUyKHNvdXJjZSwgc3ViamVjdEZhY3RvcnkpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICBfdGhpcy5zdWJqZWN0RmFjdG9yeSA9IHN1YmplY3RGYWN0b3J5OwogICAgICAgIF90aGlzLl9zdWJqZWN0ID0gbnVsbDsKICAgICAgICBfdGhpcy5fcmVmQ291bnQgPSAwOwogICAgICAgIF90aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBpZiAobGlmdF8xLmhhc0xpZnQoc291cmNlKSkgewogICAgICAgICAgX3RoaXMubGlmdCA9IHNvdXJjZS5saWZ0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBDb25uZWN0YWJsZU9ic2VydmFibGUyLnByb3RvdHlwZS5nZXRTdWJqZWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSB0aGlzLl9zdWJqZWN0OwogICAgICAgIGlmICghc3ViamVjdCB8fCBzdWJqZWN0LmlzU3RvcHBlZCkgewogICAgICAgICAgdGhpcy5fc3ViamVjdCA9IHRoaXMuc3ViamVjdEZhY3RvcnkoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7CiAgICAgIH07CiAgICAgIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90ZWFyZG93biA9IGZ1bmN0aW9uKCkgewogICAgICAgIHRoaXMuX3JlZkNvdW50ID0gMDsKICAgICAgICB2YXIgX2Nvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIHRoaXMuX3N1YmplY3QgPSB0aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBfY29ubmVjdGlvbiA9PT0gbnVsbCB8fCBfY29ubmVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Nvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIGNvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIGlmICghY29ubmVjdGlvbikgewogICAgICAgICAgY29ubmVjdGlvbiA9IHRoaXMuX2Nvbm5lY3Rpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgc3ViamVjdF8xID0gdGhpcy5nZXRTdWJqZWN0KCk7CiAgICAgICAgICBjb25uZWN0aW9uLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YmplY3RfMSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICAgIHN1YmplY3RfMS5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIF90aGlzLl90ZWFyZG93bigpOwogICAgICAgICAgICBzdWJqZWN0XzEuZXJyb3IoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICB9KSkpOwogICAgICAgICAgaWYgKGNvbm5lY3Rpb24uY2xvc2VkKSB7CiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24gPSBudWxsOwogICAgICAgICAgICBjb25uZWN0aW9uID0gU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uLkVNUFRZOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUucmVmQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gcmVmQ291bnRfMS5yZWZDb3VudCgpKHRoaXMpOwogICAgICB9OwogICAgICByZXR1cm4gQ29ubmVjdGFibGVPYnNlcnZhYmxlMjsKICAgIH0oT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpOwogICAgZXhwb3J0czIuQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gQ29ubmVjdGFibGVPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIucGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLnBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIuZGVsZWdhdGUgfHwgcGVyZm9ybWFuY2UpLm5vdygpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIgPSB7CiAgICAgIHNjaGVkdWxlOiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgIHZhciByZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lOwogICAgICAgIHZhciBjYW5jZWwgPSBjYW5jZWxBbmltYXRpb25GcmFtZTsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSkgewogICAgICAgICAgcmVxdWVzdCA9IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZTsKICAgICAgICAgIGNhbmNlbCA9IGRlbGVnYXRlLmNhbmNlbEFuaW1hdGlvbkZyYW1lOwogICAgICAgIH0KICAgICAgICB2YXIgaGFuZGxlID0gcmVxdWVzdChmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICBjYW5jZWwgPSB2b2lkIDA7CiAgICAgICAgICBjYWxsYmFjayh0aW1lc3RhbXAyKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBjYW5jZWwgPT09IG51bGwgfHwgY2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYW5jZWwoaGFuZGxlKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZSkgfHwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIHJldHVybiAoKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5jYW5jZWxBbmltYXRpb25GcmFtZSkgfHwgY2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZG9tL2FuaW1hdGlvbkZyYW1lcy5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9kb20vYW5pbWF0aW9uRnJhbWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXModGltZXN0YW1wUHJvdmlkZXIpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcFByb3ZpZGVyID8gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSh0aW1lc3RhbXBQcm92aWRlcikgOiBERUZBVUxUX0FOSU1BVElPTl9GUkFNRVM7CiAgICB9CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSBhbmltYXRpb25GcmFtZXM7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXNGYWN0b3J5KHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBwcm92aWRlciA9IHRpbWVzdGFtcFByb3ZpZGVyIHx8IHBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXJfMS5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIHZhciBzdGFydCA9IHByb3ZpZGVyLm5vdygpOwogICAgICAgIHZhciBpZCA9IDA7CiAgICAgICAgdmFyIHJ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBpZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICAgICAgaWQgPSAwOwogICAgICAgICAgICAgIHZhciBub3cgPSBwcm92aWRlci5ub3coKTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoewogICAgICAgICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXBQcm92aWRlciA/IG5vdyA6IHRpbWVzdGFtcDIsCiAgICAgICAgICAgICAgICBlbGFwc2VkOiBub3cgLSBzdGFydAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJ1bigpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHJ1bigpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChpZCkgewogICAgICAgICAgICBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEuYW5pbWF0aW9uRnJhbWVQcm92aWRlci5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICB2YXIgREVGQVVMVF9BTklNQVRJT05fRlJBTUVTID0gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSgpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLmpzCnZhciByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCgpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk9iamVjdFVuc3Vic2NyaWJlZEVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAib2JqZWN0IHVuc3Vic2NyaWJlZCI7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9TdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5vbnltb3VzU3ViamVjdCA9IGV4cG9ydHMyLlN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uXzEgPSByZXF1aXJlX1N1YnNjcmlwdGlvbigpOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJqZWN0MiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSBbXTsKICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5oYXNFcnJvciA9IGZhbHNlOwogICAgICAgIF90aGlzLnRocm93bkVycm9yID0gbnVsbDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgU3ViamVjdDIucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbihvcGVyYXRvcikgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFub255bW91c1N1YmplY3QodGhpcywgdGhpcyk7CiAgICAgICAgc3ViamVjdC5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBzdWJqZWN0OwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcl8xLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBlcnJvckNvbnRleHRfMS5lcnJvckNvbnRleHQoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHsKICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gQXJyYXkuZnJvbShfdGhpcy5vYnNlcnZlcnMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyhfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkgewogICAgICAgICAgICAgICAgdmFyIG9ic2VydmVyID0gX2MudmFsdWU7CiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgZXJyb3JDb250ZXh0XzEuZXJyb3JDb250ZXh0KGZ1bmN0aW9uKCkgewogICAgICAgICAgX3RoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICAgIGlmICghX3RoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICAgIF90aGlzLmhhc0Vycm9yID0gX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBlcnI7CiAgICAgICAgICAgIHZhciBvYnNlcnZlcnMgPSBfdGhpcy5vYnNlcnZlcnM7CiAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzOwogICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkgewogICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ViamVjdDIucHJvdG90eXBlLCAib2JzZXJ2ZWQiLCB7CiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vYnNlcnZlcnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpID4gMDsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLCBzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcik7CiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaGFzRXJyb3IgPSBfYS5oYXNFcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBvYnNlcnZlcnMgPSBfYS5vYnNlcnZlcnM7CiAgICAgICAgaWYgKGhhc0Vycm9yIHx8IGlzU3RvcHBlZCkgewogICAgICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgICB9CiAgICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBvYnNlcnZlcnMucHVzaChzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKG9ic2VydmVycywgc3Vic2NyaWJlcik7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQ7CiAgICAgICAgaWYgKGhhc0Vycm9yKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRocm93bkVycm9yKTsKICAgICAgICB9IGVsc2UgaWYgKGlzU3RvcHBlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLmFzT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKCk7CiAgICAgICAgb2JzZXJ2YWJsZS5zb3VyY2UgPSB0aGlzOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5jcmVhdGUgPSBmdW5jdGlvbihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBBbm9ueW1vdXNTdWJqZWN0KGRlc3RpbmF0aW9uLCBzb3VyY2UpOwogICAgICB9OwogICAgICByZXR1cm4gU3ViamVjdDI7CiAgICB9KE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKTsKICAgIGV4cG9ydHMyLlN1YmplY3QgPSBTdWJqZWN0OwogICAgdmFyIEFub255bW91c1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFub255bW91c1N1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbm9ueW1vdXNTdWJqZWN0MihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5leHQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIEFub255bW91c1N1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZXJyKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29tcGxldGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5zb3VyY2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgfTsKICAgICAgcmV0dXJuIEFub255bW91c1N1YmplY3QyOwogICAgfShTdWJqZWN0KTsKICAgIGV4cG9ydHMyLkFub255bW91c1N1YmplY3QgPSBBbm9ueW1vdXNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QuanMKdmFyIHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgQmVoYXZpb3JTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhCZWhhdmlvclN1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBCZWhhdmlvclN1YmplY3QyKF92YWx1ZSkgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gX3ZhbHVlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUsICJ2YWx1ZSIsIHsKICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gX3N1cGVyLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7CiAgICAgICAgIXN1YnNjcmlwdGlvbi5jbG9zZWQgJiYgc3Vic2NyaWJlci5uZXh0KHRoaXMuX3ZhbHVlKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBCZWhhdmlvclN1YmplY3QyLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIF92YWx1ZSA9IF9hLl92YWx1ZTsKICAgICAgICBpZiAoaGFzRXJyb3IpIHsKICAgICAgICAgIHRocm93IHRocm93bkVycm9yOwogICAgICAgIH0KICAgICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgcmV0dXJuIF92YWx1ZTsKICAgICAgfTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcywgdGhpcy5fdmFsdWUgPSB2YWx1ZSk7CiAgICAgIH07CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3QyOwogICAgfShTdWJqZWN0XzEuU3ViamVjdCk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBCZWhhdmlvclN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBEYXRlKS5ub3coKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdC5qcwp2YXIgcmVxdWlyZV9SZXBsYXlTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1JlcGxheVN1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgUmVwbGF5U3ViamVjdCA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoUmVwbGF5U3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFJlcGxheVN1YmplY3QyKF9idWZmZXJTaXplLCBfd2luZG93VGltZSwgX3RpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgICAgaWYgKF9idWZmZXJTaXplID09PSB2b2lkIDApIHsKICAgICAgICAgIF9idWZmZXJTaXplID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIGlmIChfd2luZG93VGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBfd2luZG93VGltZSA9IEluZmluaXR5OwogICAgICAgIH0KICAgICAgICBpZiAoX3RpbWVzdGFtcFByb3ZpZGVyID09PSB2b2lkIDApIHsKICAgICAgICAgIF90aW1lc3RhbXBQcm92aWRlciA9IGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xLmRhdGVUaW1lc3RhbXBQcm92aWRlcjsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5fYnVmZmVyU2l6ZSA9IF9idWZmZXJTaXplOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gX3dpbmRvd1RpbWU7CiAgICAgICAgX3RoaXMuX3RpbWVzdGFtcFByb3ZpZGVyID0gX3RpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIF90aGlzLl9idWZmZXIgPSBbXTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gdHJ1ZTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gX3dpbmRvd1RpbWUgPT09IEluZmluaXR5OwogICAgICAgIF90aGlzLl9idWZmZXJTaXplID0gTWF0aC5tYXgoMSwgX2J1ZmZlclNpemUpOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gTWF0aC5tYXgoMSwgX3dpbmRvd1RpbWUpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfYnVmZmVyID0gX2EuX2J1ZmZlciwgX2luZmluaXRlVGltZVdpbmRvdyA9IF9hLl9pbmZpbml0ZVRpbWVXaW5kb3csIF90aW1lc3RhbXBQcm92aWRlciA9IF9hLl90aW1lc3RhbXBQcm92aWRlciwgX3dpbmRvd1RpbWUgPSBfYS5fd2luZG93VGltZTsKICAgICAgICBpZiAoIWlzU3RvcHBlZCkgewogICAgICAgICAgX2J1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICFfaW5maW5pdGVUaW1lV2luZG93ICYmIF9idWZmZXIucHVzaChfdGltZXN0YW1wUHJvdmlkZXIubm93KCkgKyBfd2luZG93VGltZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3RyaW1CdWZmZXIoKTsKICAgICAgICBfc3VwZXIucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIFJlcGxheVN1YmplY3QyLnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICB0aGlzLl90cmltQnVmZmVyKCk7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICAgIHZhciBfYSA9IHRoaXMsIF9pbmZpbml0ZVRpbWVXaW5kb3cgPSBfYS5faW5maW5pdGVUaW1lV2luZG93LCBfYnVmZmVyID0gX2EuX2J1ZmZlcjsKICAgICAgICB2YXIgY29weSA9IF9idWZmZXIuc2xpY2UoKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHkubGVuZ3RoICYmICFzdWJzY3JpYmVyLmNsb3NlZDsgaSArPSBfaW5maW5pdGVUaW1lV2luZG93ID8gMSA6IDIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb3B5W2ldKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUuX3RyaW1CdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBfYnVmZmVyU2l6ZSA9IF9hLl9idWZmZXJTaXplLCBfdGltZXN0YW1wUHJvdmlkZXIgPSBfYS5fdGltZXN0YW1wUHJvdmlkZXIsIF9idWZmZXIgPSBfYS5fYnVmZmVyLCBfaW5maW5pdGVUaW1lV2luZG93ID0gX2EuX2luZmluaXRlVGltZVdpbmRvdzsKICAgICAgICB2YXIgYWRqdXN0ZWRCdWZmZXJTaXplID0gKF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikgKiBfYnVmZmVyU2l6ZTsKICAgICAgICBfYnVmZmVyU2l6ZSA8IEluZmluaXR5ICYmIGFkanVzdGVkQnVmZmVyU2l6ZSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXIuc3BsaWNlKDAsIF9idWZmZXIubGVuZ3RoIC0gYWRqdXN0ZWRCdWZmZXJTaXplKTsKICAgICAgICBpZiAoIV9pbmZpbml0ZVRpbWVXaW5kb3cpIHsKICAgICAgICAgIHZhciBub3cgPSBfdGltZXN0YW1wUHJvdmlkZXIubm93KCk7CiAgICAgICAgICB2YXIgbGFzdCA9IDA7CiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXJbaV0gPD0gbm93OyBpICs9IDIpIHsKICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgICB9CiAgICAgICAgICBsYXN0ICYmIF9idWZmZXIuc3BsaWNlKDAsIGxhc3QgKyAxKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBSZXBsYXlTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IFJlcGxheVN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0FzeW5jU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9Bc3luY1N1YmplY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvQXN5bmNTdWJqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBBc3luY1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFzeW5jU3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gbnVsbDsKICAgICAgICBfdGhpcy5faGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICBfdGhpcy5faXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCBfaGFzVmFsdWUgPSBfYS5faGFzVmFsdWUsIF92YWx1ZSA9IF9hLl92YWx1ZSwgdGhyb3duRXJyb3IgPSBfYS50aHJvd25FcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aHJvd25FcnJvcik7CiAgICAgICAgfSBlbHNlIGlmIChpc1N0b3BwZWQgfHwgX2lzQ29tcGxldGUpIHsKICAgICAgICAgIF9oYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLm5leHQoX3ZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHsKICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgICB0aGlzLl9oYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIF9oYXNWYWx1ZSA9IF9hLl9oYXNWYWx1ZSwgX3ZhbHVlID0gX2EuX3ZhbHVlLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmICghX2lzQ29tcGxldGUpIHsKICAgICAgICAgIHRoaXMuX2lzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgX2hhc1ZhbHVlICYmIF9zdXBlci5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsIF92YWx1ZSk7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuQXN5bmNTdWJqZWN0ID0gQXN5bmNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzCnZhciByZXF1aXJlX0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFjdGlvbiA9IHZvaWQgMDsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIHJldHVybiBBY3Rpb24yOwogICAgfShTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24pOwogICAgZXhwb3J0czIuQWN0aW9uID0gQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW50ZXJ2YWxQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9pbnRlcnZhbFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9pbnRlcnZhbFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIuaW50ZXJ2YWxQcm92aWRlciA9IHsKICAgICAgc2V0SW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuc2V0SW50ZXJ2YWwpIHsKICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGNsZWFySW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmludGVydmFsUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW50ZXJ2YWwpIHx8IGNsZWFySW50ZXJ2YWwpKGhhbmRsZSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi5qcwp2YXIgcmVxdWlyZV9Bc3luY0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQWN0aW9uXzEgPSByZXF1aXJlX0FjdGlvbigpOwogICAgdmFyIGludGVydmFsUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW50ZXJ2YWxQcm92aWRlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBBc3luY0FjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQXN5bmNBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBc3luY0FjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOwogICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7CiAgICAgICAgdmFyIHNjaGVkdWxlciA9IHRoaXMuc2NoZWR1bGVyOwogICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMucGVuZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5OwogICAgICAgIHRoaXMuaWQgPSAoX2EgPSB0aGlzLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgdGhpcy5pZCwgZGVsYXkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBfaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLnNldEludGVydmFsKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdGhpcyksIGRlbGF5KTsKICAgICAgfTsKICAgICAgQXN5bmNBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKF9zY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsICYmIHRoaXMuZGVsYXkgPT09IGRlbGF5ICYmIHRoaXMucGVuZGluZyA9PT0gZmFsc2UpIHsKICAgICAgICAgIHJldHVybiBpZDsKICAgICAgICB9CiAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKICAgICAgICAgIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLmNsZWFySW50ZXJ2YWwoaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nID09PSBmYWxzZSAmJiB0aGlzLmlkICE9IG51bGwpIHsKICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLCB0aGlzLmlkLCBudWxsKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuX2V4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgX2RlbGF5KSB7CiAgICAgICAgdmFyIGVycm9yZWQgPSBmYWxzZTsKICAgICAgICB2YXIgZXJyb3JWYWx1ZTsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy53b3JrKHN0YXRlKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgIGVycm9yVmFsdWUgPSBlID8gZSA6IG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpOwogICAgICAgIH0KICAgICAgICBpZiAoZXJyb3JlZCkgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgICAgcmV0dXJuIGVycm9yVmFsdWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkgewogICAgICAgICAgdmFyIF9hID0gdGhpcywgaWQgPSBfYS5pZCwgc2NoZWR1bGVyID0gX2Euc2NoZWR1bGVyOwogICAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGw7CiAgICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTsKICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5kZWxheSA9IG51bGw7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNBY3Rpb24yOwogICAgfShBY3Rpb25fMS5BY3Rpb24pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSBBc3luY0FjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9JbW1lZGlhdGUuanMKdmFyIHJlcXVpcmVfSW1tZWRpYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvSW1tZWRpYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UZXN0VG9vbHMgPSBleHBvcnRzMi5JbW1lZGlhdGUgPSB2b2lkIDA7CiAgICB2YXIgbmV4dEhhbmRsZSA9IDE7CiAgICB2YXIgcmVzb2x2ZWQ7CiAgICB2YXIgYWN0aXZlSGFuZGxlcyA9IHt9OwogICAgZnVuY3Rpb24gZmluZEFuZENsZWFySGFuZGxlKGhhbmRsZSkgewogICAgICBpZiAoaGFuZGxlIGluIGFjdGl2ZUhhbmRsZXMpIHsKICAgICAgICBkZWxldGUgYWN0aXZlSGFuZGxlc1toYW5kbGVdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLkltbWVkaWF0ZSA9IHsKICAgICAgc2V0SW1tZWRpYXRlOiBmdW5jdGlvbihjYikgewogICAgICAgIHZhciBoYW5kbGUgPSBuZXh0SGFuZGxlKys7CiAgICAgICAgYWN0aXZlSGFuZGxlc1toYW5kbGVdID0gdHJ1ZTsKICAgICAgICBpZiAoIXJlc29sdmVkKSB7CiAgICAgICAgICByZXNvbHZlZCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIH0KICAgICAgICByZXNvbHZlZC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpICYmIGNiKCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGhhbmRsZTsKICAgICAgfSwKICAgICAgY2xlYXJJbW1lZGlhdGU6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGVzdFRvb2xzID0gewogICAgICBwZW5kaW5nOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoYWN0aXZlSGFuZGxlcykubGVuZ3RoOwogICAgICB9CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW1tZWRpYXRlUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2ltbWVkaWF0ZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbW1lZGlhdGVQcm92aWRlciA9IHZvaWQgMDsKICAgIHZhciBJbW1lZGlhdGVfMSA9IHJlcXVpcmVfSW1tZWRpYXRlKCk7CiAgICB2YXIgc2V0SW1tZWRpYXRlID0gSW1tZWRpYXRlXzEuSW1tZWRpYXRlLnNldEltbWVkaWF0ZTsKICAgIHZhciBjbGVhckltbWVkaWF0ZSA9IEltbWVkaWF0ZV8xLkltbWVkaWF0ZS5jbGVhckltbWVkaWF0ZTsKICAgIGV4cG9ydHMyLmltbWVkaWF0ZVByb3ZpZGVyID0gewogICAgICBzZXRJbW1lZGlhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnNldEltbWVkaWF0ZSkgfHwgc2V0SW1tZWRpYXRlKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjbGVhckltbWVkaWF0ZTogZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW1tZWRpYXRlKSB8fCBjbGVhckltbWVkaWF0ZSkoaGFuZGxlKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzYXBBY3Rpb24uanMKdmFyIHJlcXVpcmVfQXNhcEFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcEFjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgaW1tZWRpYXRlUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIoKTsKICAgIHZhciBBc2FwQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcEFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXNhcEFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT09IG51bGwgJiYgZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgc2NoZWR1bGVyLmFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLl9zY2hlZHVsZWQgfHwgKHNjaGVkdWxlci5fc2NoZWR1bGVkID0gaW1tZWRpYXRlUHJvdmlkZXJfMS5pbW1lZGlhdGVQcm92aWRlci5zZXRJbW1lZGlhdGUoc2NoZWR1bGVyLmZsdXNoLmJpbmQoc2NoZWR1bGVyLCB2b2lkIDApKSk7CiAgICAgIH07CiAgICAgIEFzYXBBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsID8gZGVsYXkgPiAwIDogdGhpcy5kZWxheSA+IDApIHsKICAgICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcywgc2NoZWR1bGVyLCBpZCwgZGVsYXkpOwogICAgICAgIH0KICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGlmIChpZCAhPSBudWxsICYmICgoX2EgPSBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pZCkgIT09IGlkKSB7CiAgICAgICAgICBpbW1lZGlhdGVQcm92aWRlcl8xLmltbWVkaWF0ZVByb3ZpZGVyLmNsZWFySW1tZWRpYXRlKGlkKTsKICAgICAgICAgIGlmIChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9PT0gaWQpIHsKICAgICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gQXNhcEFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgU2NoZWR1bGVyID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3Rvciwgbm93KSB7CiAgICAgICAgaWYgKG5vdyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBub3cgPSBTY2hlZHVsZXIyLm5vdzsKICAgICAgICB9CiAgICAgICAgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yID0gc2NoZWR1bGVyQWN0aW9uQ3RvcjsKICAgICAgICB0aGlzLm5vdyA9IG5vdzsKICAgICAgfQogICAgICBTY2hlZHVsZXIyLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uKHdvcmssIGRlbGF5LCBzdGF0ZSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yKHRoaXMsIHdvcmspLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgIH07CiAgICAgIFNjaGVkdWxlcjIubm93ID0gZGF0ZVRpbWVzdGFtcFByb3ZpZGVyXzEuZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLm5vdzsKICAgICAgcmV0dXJuIFNjaGVkdWxlcjI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5TY2hlZHVsZXIgPSBTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY1NjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc3luY1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgU2NoZWR1bGVyXzEgPSByZXF1aXJlX1NjaGVkdWxlcigpOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc3luY1NjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU2NoZWR1bGVyMihTY2hlZHVsZXJBY3Rpb24sIG5vdykgewogICAgICAgIGlmIChub3cgPT09IHZvaWQgMCkgewogICAgICAgICAgbm93ID0gU2NoZWR1bGVyXzEuU2NoZWR1bGVyLm5vdzsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgU2NoZWR1bGVyQWN0aW9uLCBub3cpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuYWN0aW9ucyA9IFtdOwogICAgICAgIF90aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXN5bmNTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHsKICAgICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKTsKICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgIHdoaWxlIChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc3luY1NjaGVkdWxlcjI7CiAgICB9KFNjaGVkdWxlcl8xLlNjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc3luY1NjaGVkdWxlciA9IEFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcFNjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc2FwU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc2FwU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBBc2FwU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcFNjaGVkdWxlcjIoKSB7CiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFzYXBTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwU2NoZWR1bGVyMjsKICAgIH0oQXN5bmNTY2hlZHVsZXJfMS5Bc3luY1NjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc2FwU2NoZWR1bGVyID0gQXNhcFNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzYXAuanMKdmFyIHJlcXVpcmVfYXNhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXNhcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLmFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXNhcEFjdGlvbl8xID0gcmVxdWlyZV9Bc2FwQWN0aW9uKCk7CiAgICB2YXIgQXNhcFNjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc2FwU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gbmV3IEFzYXBTY2hlZHVsZXJfMS5Bc2FwU2NoZWR1bGVyKEFzYXBBY3Rpb25fMS5Bc2FwQWN0aW9uKTsKICAgIGV4cG9ydHMyLmFzYXAgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXN5bmMuanMKdmFyIHJlcXVpcmVfYXN5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIoQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVBY3Rpb24uanMKdmFyIHJlcXVpcmVfUXVldWVBY3Rpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgUXVldWVBY3Rpb24gPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlciwgd29yaykgfHwgdGhpczsKICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7CiAgICAgICAgX3RoaXMud29yayA9IHdvcms7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTsKICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7CiAgICAgICAgdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIHJldHVybiBkZWxheSA+IDAgfHwgdGhpcy5jbG9zZWQgPyBfc3VwZXIucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpIDogdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICB9OwogICAgICBRdWV1ZUFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCAmJiBkZWxheSA+IDAgfHwgZGVsYXkgPT0gbnVsbCAmJiB0aGlzLmRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5mbHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gMDsKICAgICAgfTsKICAgICAgcmV0dXJuIFF1ZXVlQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5RdWV1ZUFjdGlvbiA9IFF1ZXVlQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfUXVldWVTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FzeW5jU2NoZWR1bGVyKCk7CiAgICB2YXIgUXVldWVTY2hlZHVsZXIgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVTY2hlZHVsZXIyKCkgewogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsKICAgICAgfQogICAgICByZXR1cm4gUXVldWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gUXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZS5qcwp2YXIgcmVxdWlyZV9xdWV1ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcXVldWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgUXVldWVBY3Rpb25fMSA9IHJlcXVpcmVfUXVldWVBY3Rpb24oKTsKICAgIHZhciBRdWV1ZVNjaGVkdWxlcl8xID0gcmVxdWlyZV9RdWV1ZVNjaGVkdWxlcigpOwogICAgZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBuZXcgUXVldWVTY2hlZHVsZXJfMS5RdWV1ZVNjaGVkdWxlcihRdWV1ZUFjdGlvbl8xLlF1ZXVlQWN0aW9uKTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZUFjdGlvbi5qcwp2YXIgcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQW5pbWF0aW9uRnJhbWVBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEgPSByZXF1aXJlX2FuaW1hdGlvbkZyYW1lUHJvdmlkZXIoKTsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQW5pbWF0aW9uRnJhbWVBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbmltYXRpb25GcmFtZUFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVBY3Rpb24yLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKGRlbGF5ICE9PSBudWxsICYmIGRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5hY3Rpb25zLnB1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlci5fc2NoZWR1bGVkIHx8IChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZXIuZmx1c2godm9pZCAwKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICAgIEFuaW1hdGlvbkZyYW1lQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCA/IGRlbGF5ID4gMCA6IHRoaXMuZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICBpZiAoaWQgIT0gbnVsbCAmJiAoKF9hID0gYWN0aW9uc1thY3Rpb25zLmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpICE9PSBpZCkgewogICAgICAgICAgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZUFjdGlvbjI7CiAgICB9KEFzeW5jQWN0aW9uXzEuQXN5bmNBY3Rpb24pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSBBbmltYXRpb25GcmFtZUFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBc3luY1NjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc3luY1NjaGVkdWxlcigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBbmltYXRpb25GcmFtZVNjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyMigpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjI7CiAgICB9KEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIpOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgPSBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FuaW1hdGlvbkZyYW1lLmpzCnZhciByZXF1aXJlX2FuaW1hdGlvbkZyYW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbl8xID0gcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IG5ldyBBbmltYXRpb25GcmFtZVNjaGVkdWxlcl8xLkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKEFuaW1hdGlvbkZyYW1lQWN0aW9uXzEuQW5pbWF0aW9uRnJhbWVBY3Rpb24pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1ZpcnR1YWxUaW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9WaXJ0dWFsVGltZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBWaXJ0dWFsVGltZVNjaGVkdWxlciA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbFRpbWVTY2hlZHVsZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBWaXJ0dWFsVGltZVNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3RvciwgbWF4RnJhbWVzKSB7CiAgICAgICAgaWYgKHNjaGVkdWxlckFjdGlvbkN0b3IgPT09IHZvaWQgMCkgewogICAgICAgICAgc2NoZWR1bGVyQWN0aW9uQ3RvciA9IFZpcnR1YWxBY3Rpb247CiAgICAgICAgfQogICAgICAgIGlmIChtYXhGcmFtZXMgPT09IHZvaWQgMCkgewogICAgICAgICAgbWF4RnJhbWVzID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlckFjdGlvbkN0b3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIF90aGlzLmZyYW1lOwogICAgICAgIH0pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMubWF4RnJhbWVzID0gbWF4RnJhbWVzOwogICAgICAgIF90aGlzLmZyYW1lID0gMDsKICAgICAgICBfdGhpcy5pbmRleCA9IC0xOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBWaXJ0dWFsVGltZVNjaGVkdWxlcjIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgYWN0aW9ucyA9IF9hLmFjdGlvbnMsIG1heEZyYW1lcyA9IF9hLm1heEZyYW1lczsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdmFyIGFjdGlvbjsKICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5kZWxheSA8PSBtYXhGcmFtZXMpIHsKICAgICAgICAgIGFjdGlvbnMuc2hpZnQoKTsKICAgICAgICAgIHRoaXMuZnJhbWUgPSBhY3Rpb24uZGVsYXk7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgd2hpbGUgKGFjdGlvbiA9IGFjdGlvbnMuc2hpZnQoKSkgewogICAgICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbFRpbWVTY2hlZHVsZXIyLmZyYW1lVGltZUZhY3RvciA9IDEwOwogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxUaW1lU2NoZWR1bGVyID0gVmlydHVhbFRpbWVTY2hlZHVsZXI7CiAgICB2YXIgVmlydHVhbEFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbEFjdGlvbjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFZpcnR1YWxBY3Rpb24yKHNjaGVkdWxlciwgd29yaywgaW5kZXgpIHsKICAgICAgICBpZiAoaW5kZXggPT09IHZvaWQgMCkgewogICAgICAgICAgaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggKz0gMTsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5pbmRleCA9IGluZGV4OwogICAgICAgIF90aGlzLmFjdGl2ZSA9IHRydWU7CiAgICAgICAgX3RoaXMuaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggPSBpbmRleDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgVmlydHVhbEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShkZWxheSkpIHsKICAgICAgICAgIGlmICghdGhpcy5pZCkgewogICAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGFjdGlvbiA9IG5ldyBWaXJ0dWFsQWN0aW9uMih0aGlzLnNjaGVkdWxlciwgdGhpcy53b3JrKTsKICAgICAgICAgIHRoaXMuYWRkKGFjdGlvbik7CiAgICAgICAgICByZXR1cm4gYWN0aW9uLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24uRU1QVFk7CiAgICAgICAgfQogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBzY2hlZHVsZXIuZnJhbWUgKyBkZWxheTsKICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICBhY3Rpb25zLnNvcnQoVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMpOwogICAgICAgIHJldHVybiAxOwogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIFZpcnR1YWxBY3Rpb24yLnByb3RvdHlwZS5fZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMgPSBmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgaWYgKGEuZGVsYXkgPT09IGIuZGVsYXkpIHsKICAgICAgICAgIGlmIChhLmluZGV4ID09PSBiLmluZGV4KSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkgewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGEuZGVsYXkgPiBiLmRlbGF5KSB7CiAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIFZpcnR1YWxBY3Rpb24yOwogICAgfShBc3luY0FjdGlvbl8xLkFzeW5jQWN0aW9uKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxBY3Rpb24gPSBWaXJ0dWFsQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZW1wdHkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuRU1QVFkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBleHBvcnRzMi5FTVBUWSA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICB9KTsKICAgIGZ1bmN0aW9uIGVtcHR5KHNjaGVkdWxlcikgewogICAgICByZXR1cm4gc2NoZWR1bGVyID8gZW1wdHlTY2hlZHVsZWQoc2NoZWR1bGVyKSA6IGV4cG9ydHMyLkVNUFRZOwogICAgfQogICAgZXhwb3J0czIuZW1wdHkgPSBlbXB0eTsKICAgIGZ1bmN0aW9uIGVtcHR5U2NoZWR1bGVkKHNjaGVkdWxlcikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfaXNTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1NjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1NjaGVkdWxlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuc2NoZWR1bGUpOwogICAgfQogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSBpc1NjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzCnZhciByZXF1aXJlX2FyZ3MgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wb3BOdW1iZXIgPSBleHBvcnRzMi5wb3BTY2hlZHVsZXIgPSBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgZnVuY3Rpb24gbGFzdChhcnIpIHsKICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07CiAgICB9CiAgICBmdW5jdGlvbiBwb3BSZXN1bHRTZWxlY3RvcihhcmdzKSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihsYXN0KGFyZ3MpKSA/IGFyZ3MucG9wKCkgOiB2b2lkIDA7CiAgICB9CiAgICBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHBvcFJlc3VsdFNlbGVjdG9yOwogICAgZnVuY3Rpb24gcG9wU2NoZWR1bGVyKGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIobGFzdChhcmdzKSkgPyBhcmdzLnBvcCgpIDogdm9pZCAwOwogICAgfQogICAgZXhwb3J0czIucG9wU2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyOwogICAgZnVuY3Rpb24gcG9wTnVtYmVyKGFyZ3MsIGRlZmF1bHRWYWx1ZSkgewogICAgICByZXR1cm4gdHlwZW9mIGxhc3QoYXJncykgPT09ICJudW1iZXIiID8gYXJncy5wb3AoKSA6IGRlZmF1bHRWYWx1ZTsKICAgIH0KICAgIGV4cG9ydHMyLnBvcE51bWJlciA9IHBvcE51bWJlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FycmF5TGlrZS5qcwp2YXIgcmVxdWlyZV9pc0FycmF5TGlrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXJyYXlMaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0FycmF5TGlrZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmlzQXJyYXlMaWtlID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geCAmJiB0eXBlb2YgeC5sZW5ndGggPT09ICJudW1iZXIiICYmIHR5cGVvZiB4ICE9PSAiZnVuY3Rpb24iOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1Byb21pc2UuanMKdmFyIHJlcXVpcmVfaXNQcm9taXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNQcm9taXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1Byb21pc2UodmFsdWUpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS50aGVuKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzUHJvbWlzZSA9IGlzUHJvbWlzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX2lzSW50ZXJvcE9ic2VydmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0ludGVyb3BPYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oaW5wdXRbb2JzZXJ2YWJsZV8xLm9ic2VydmFibGVdKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSW50ZXJvcE9ic2VydmFibGUgPSBpc0ludGVyb3BPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXN5bmNJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FzeW5jSXRlcmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzQXN5bmNJdGVyYWJsZSA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZShvYmopIHsKICAgICAgcmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ialtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNBc3luY0l0ZXJhYmxlID0gaXNBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dVbm9ic2VydmFibGVFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpIHsKICAgICAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiICsgKGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgPyAiYW4gaW52YWxpZCBvYmplY3QiIDogIiciICsgaW5wdXQgKyAiJyIpICsgIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgPSBjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL2l0ZXJhdG9yLmpzCnZhciByZXF1aXJlX2l0ZXJhdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3N5bWJvbC9pdGVyYXRvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXRlcmF0b3IgPSBleHBvcnRzMi5nZXRTeW1ib2xJdGVyYXRvciA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGdldFN5bWJvbEl0ZXJhdG9yKCkgewogICAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gImZ1bmN0aW9uIiB8fCAhU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgcmV0dXJuICJAQGl0ZXJhdG9yIjsKICAgICAgfQogICAgICByZXR1cm4gU3ltYm9sLml0ZXJhdG9yOwogICAgfQogICAgZXhwb3J0czIuZ2V0U3ltYm9sSXRlcmF0b3IgPSBnZXRTeW1ib2xJdGVyYXRvcjsKICAgIGV4cG9ydHMyLml0ZXJhdG9yID0gZ2V0U3ltYm9sSXRlcmF0b3IoKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX2lzSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0l0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc0l0ZXJhYmxlKGlucHV0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpbnB1dCA9PT0gbnVsbCB8fCBpbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNJdGVyYWJsZSA9IGlzSXRlcmFibGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1JlYWRhYmxlU3RyZWFtTGlrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZ2VuZXJhdG9yIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIGJvZHkpIHsKICAgICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07CiAgICAgICAgcmV0dXJuIHRbMV07CiAgICAgIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7CiAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSksIGc7CiAgICAgIGZ1bmN0aW9uIHZlcmIobikgewogICAgICAgIHJldHVybiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gc3RlcChbbiwgdl0pOwogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5WyJyZXR1cm4iXSA6IG9wWzBdID8geVsidGhyb3ciXSB8fCAoKHQgPSB5WyJyZXR1cm4iXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7CiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07CiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgeSA9IG9wWzFdOwogICAgICAgICAgICAgIG9wID0gWzBdOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgb3AgPSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsKICAgICAgICAgICAgICAgIF8gPSAwOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgb3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSBvcFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzFdOwogICAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsyXTsKICAgICAgICAgICAgICAgIF8ub3BzLnB1c2gob3ApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBvcCA9IFs2LCBlXTsKICAgICAgICAgIHkgPSAwOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBmID0gdCA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOwogICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07CiAgICAgIH0KICAgIH07CiAgICB2YXIgX19hd2FpdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXQgfHwgZnVuY3Rpb24odikgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTsKICAgIH07CiAgICB2YXIgX19hc3luY0dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXN5bmNHZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7CiAgICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdOwogICAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKCJuZXh0IiksIHZlcmIoInRocm93IiksIHZlcmIoInJldHVybiIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LCBpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7CiAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN0ZXAoZ1tuXSh2KSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgc2V0dGxlKHFbMF1bM10sIGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKHIpIHsKICAgICAgICByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7CiAgICAgICAgcmVzdW1lKCJuZXh0IiwgdmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgewogICAgICAgIHJlc3VtZSgidGhyb3ciLCB2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsKICAgICAgICBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOwogICAgICB9CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1JlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBfX2FzeW5jR2VuZXJhdG9yKHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xKCkgewogICAgICAgIHZhciByZWFkZXIsIF9hLCB2YWx1ZSwgZG9uZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2IpIHsKICAgICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF9iLnRyeXMucHVzaChbMSwgLCA5LCAxMF0pOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMjsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGlmIChmYWxzZSkgcmV0dXJuIFszLCA4XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQocmVhZGVyLnJlYWQoKSldOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICAgIGlmICghZG9uZSkgcmV0dXJuIFszLCA1XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodm9pZCAwKV07CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICByZXR1cm4gWzIsIF9iLnNlbnQoKV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodmFsdWUpXTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHJldHVybiBbNCwgX2Iuc2VudCgpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDJdOwogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMF07CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciA9IHJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3I7CiAgICBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtTGlrZShvYmopIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9iai5nZXRSZWFkZXIpOwogICAgfQogICAgZXhwb3J0czIuaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBpc1JlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbm5lckZyb20uanMKdmFyIHJlcXVpcmVfaW5uZXJGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW5uZXJGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fYXdhaXRlciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXRlciB8fCBmdW5jdGlvbih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHsKICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7CiAgICAgICAgICByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsKICAgICAgICB9CiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOwogICAgICB9KTsKICAgIH07CiAgICB2YXIgX19nZW5lcmF0b3IgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2dlbmVyYXRvciB8fCBmdW5jdGlvbih0aGlzQXJnLCBib2R5KSB7CiAgICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOwogICAgICAgIHJldHVybiB0WzFdOwogICAgICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnOwogICAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgInRocm93IjogdmVyYigxKSwgInJldHVybiI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0pLCBnOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24odikgewogICAgICAgICAgcmV0dXJuIHN0ZXAoW24sIHZdKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHsKICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpOwogICAgICAgIHdoaWxlIChfKSB0cnkgewogICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVsicmV0dXJuIl0gOiBvcFswXSA/IHlbInRocm93Il0gfHwgKCh0ID0geVsicmV0dXJuIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0OwogICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgc3dpdGNoIChvcFswXSkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9OwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHkgPSBvcFsxXTsKICAgICAgICAgICAgICBvcCA9IFswXTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIG9wID0gXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7CiAgICAgICAgICAgICAgICBfID0gMDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gb3BbMV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsxXTsKICAgICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMl07CiAgICAgICAgICAgICAgICBfLm9wcy5wdXNoKG9wKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgb3AgPSBbNiwgZV07CiAgICAgICAgICB5ID0gMDsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgZiA9IHQgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsKICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9OwogICAgICB9CiAgICB9OwogICAgdmFyIF9fYXN5bmNWYWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2FzeW5jVmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7CiAgICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09ICJmdW5jdGlvbiIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoIm5leHQiKSwgdmVyYigidGhyb3ciKSwgdmVyYigicmV0dXJuIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sIGkpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpW25dID0gb1tuXSAmJiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgIHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7CiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odjIpIHsKICAgICAgICAgIHJlc29sdmUoeyB2YWx1ZTogdjIsIGRvbmU6IGQgfSk7CiAgICAgICAgfSwgcmVqZWN0KTsKICAgICAgfQogICAgfTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZXhwb3J0czIuZnJvbUl0ZXJhYmxlID0gZXhwb3J0czIuZnJvbVByb21pc2UgPSBleHBvcnRzMi5mcm9tQXJyYXlMaWtlID0gZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZXhwb3J0czIuaW5uZXJGcm9tID0gdm9pZCAwOwogICAgdmFyIGlzQXJyYXlMaWtlXzEgPSByZXF1aXJlX2lzQXJyYXlMaWtlKCk7CiAgICB2YXIgaXNQcm9taXNlXzEgPSByZXF1aXJlX2lzUHJvbWlzZSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc0l0ZXJhYmxlXzEgPSByZXF1aXJlX2lzSXRlcmFibGUoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEgPSByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yKCk7CiAgICB2YXIgb2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9vYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBpbm5lckZyb20oaW5wdXQpIHsKICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpIHsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICBpZiAoaXNJbnRlcm9wT2JzZXJ2YWJsZV8xLmlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUludGVyb3BPYnNlcnZhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUFycmF5TGlrZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1Byb21pc2VfMS5pc1Byb21pc2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNBc3luY0l0ZXJhYmxlXzEuaXNBc3luY0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSXRlcmFibGVfMS5pc0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21JdGVyYWJsZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLmlzUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21SZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgfQogICAgICB0aHJvdyB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpOwogICAgfQogICAgZXhwb3J0czIuaW5uZXJGcm9tID0gaW5uZXJGcm9tOwogICAgZnVuY3Rpb24gZnJvbUludGVyb3BPYnNlcnZhYmxlKG9iaikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb2JzID0gb2JqW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSgpOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnMuc3Vic2NyaWJlKSkgewogICAgICAgICAgcmV0dXJuIG9icy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZnJvbUludGVyb3BPYnNlcnZhYmxlOwogICAgZnVuY3Rpb24gZnJvbUFycmF5TGlrZShhcnJheSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aCAmJiAhc3Vic2NyaWJlci5jbG9zZWQ7IGkrKykgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGFycmF5W2ldKTsKICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21BcnJheUxpa2UgPSBmcm9tQXJyYXlMaWtlOwogICAgZnVuY3Rpb24gZnJvbVByb21pc2UocHJvbWlzZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9KS50aGVuKG51bGwsIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Qcm9taXNlID0gZnJvbVByb21pc2U7CiAgICBmdW5jdGlvbiBmcm9tSXRlcmFibGUoaXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZvciAodmFyIGl0ZXJhYmxlXzEgPSBfX3ZhbHVlcyhpdGVyYWJsZSksIGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpOyAhaXRlcmFibGVfMV8xLmRvbmU7IGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpKSB7CiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZXJhYmxlXzFfMS52YWx1ZTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChpdGVyYWJsZV8xXzEgJiYgIWl0ZXJhYmxlXzFfMS5kb25lICYmIChfYSA9IGl0ZXJhYmxlXzEucmV0dXJuKSkgX2EuY2FsbChpdGVyYWJsZV8xKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21JdGVyYWJsZSA9IGZyb21JdGVyYWJsZTsKICAgIGZ1bmN0aW9uIGZyb21Bc3luY0l0ZXJhYmxlKGFzeW5jSXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZnJvbUFzeW5jSXRlcmFibGU7CiAgICBmdW5jdGlvbiBmcm9tUmVhZGFibGVTdHJlYW1MaWtlKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBmcm9tQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IocmVhZGFibGVTdHJlYW0pKTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21SZWFkYWJsZVN0cmVhbUxpa2UgPSBmcm9tUmVhZGFibGVTdHJlYW1MaWtlOwogICAgZnVuY3Rpb24gcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikgewogICAgICB2YXIgYXN5bmNJdGVyYWJsZV8xLCBhc3luY0l0ZXJhYmxlXzFfMTsKICAgICAgdmFyIGVfMiwgX2E7CiAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB2YWx1ZSwgZV8yXzE7CiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uKF9iKSB7CiAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfYi50cnlzLnB1c2goWzAsIDUsIDYsIDExXSk7CiAgICAgICAgICAgICAgYXN5bmNJdGVyYWJsZV8xID0gX19hc3luY1ZhbHVlcyhhc3luY0l0ZXJhYmxlKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDE7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gWzQsIGFzeW5jSXRlcmFibGVfMS5uZXh0KCldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgPSBfYi5zZW50KCksICFhc3luY0l0ZXJhYmxlXzFfMS5kb25lKSkgcmV0dXJuIFszLCA0XTsKICAgICAgICAgICAgICB2YWx1ZSA9IGFzeW5jSXRlcmFibGVfMV8xLnZhbHVlOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWzJdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfYi5sYWJlbCA9IDM7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBlXzJfMSA9IF9iLnNlbnQoKTsKICAgICAgICAgICAgICBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OwogICAgICAgICAgICAgIHJldHVybiBbMywgMTFdOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX2IudHJ5cy5wdXNoKFs2LCAsIDksIDEwXSk7CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgJiYgIWFzeW5jSXRlcmFibGVfMV8xLmRvbmUgJiYgKF9hID0gYXN5bmNJdGVyYWJsZV8xLnJldHVybikpKSByZXR1cm4gWzMsIDhdOwogICAgICAgICAgICAgIHJldHVybiBbNCwgX2EuY2FsbChhc3luY0l0ZXJhYmxlXzEpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDg7CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDEwXTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbN107CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2V4ZWN1dGVTY2hlZHVsZS5qcwp2YXIgcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9leGVjdXRlU2NoZWR1bGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4ZWN1dGVTY2hlZHVsZSA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGV4ZWN1dGVTY2hlZHVsZShwYXJlbnRTdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgd29yaywgZGVsYXksIHJlcGVhdDIpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHJlcGVhdDIgPT09IHZvaWQgMCkgewogICAgICAgIHJlcGVhdDIgPSBmYWxzZTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVTdWJzY3JpcHRpb24gPSBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgd29yaygpOwogICAgICAgIGlmIChyZXBlYXQyKSB7CiAgICAgICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2NoZWR1bGUobnVsbCwgZGVsYXkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgIH0KICAgICAgfSwgZGVsYXkpOwogICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHNjaGVkdWxlU3Vic2NyaXB0aW9uKTsKICAgICAgaWYgKCFyZXBlYXQyKSB7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlU3Vic2NyaXB0aW9uOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5leGVjdXRlU2NoZWR1bGUgPSBleGVjdXRlU2NoZWR1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMKdmFyIHJlcXVpcmVfb2JzZXJ2ZU9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVPbiA9IHZvaWQgMDsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gb2JzZXJ2ZU9uKHNjaGVkdWxlciwgZGVsYXkpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlT24gPSBvYnNlcnZlT247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbi5qcwp2YXIgcmVxdWlyZV9zdWJzY3JpYmVPbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3Vic2NyaWJlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN1YnNjcmliZU9uID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3Vic2NyaWJlT24oc2NoZWR1bGVyLCBkZWxheSkgewogICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgIGRlbGF5ID0gMDsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfSwgZGVsYXkpKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zdWJzY3JpYmVPbiA9IHN1YnNjcmliZU9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZU9ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIG9ic2VydmVPbl8xID0gcmVxdWlyZV9vYnNlcnZlT24oKTsKICAgIHZhciBzdWJzY3JpYmVPbl8xID0gcmVxdWlyZV9zdWJzY3JpYmVPbigpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVPYnNlcnZhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCkucGlwZShzdWJzY3JpYmVPbl8xLnN1YnNjcmliZU9uKHNjaGVkdWxlciksIG9ic2VydmVPbl8xLm9ic2VydmVPbihzY2hlZHVsZXIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlT2JzZXJ2YWJsZSA9IHNjaGVkdWxlT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZVByb21pc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVQcm9taXNlID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20oaW5wdXQpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlZHVsZVByb21pc2UgPSBzY2hlZHVsZVByb21pc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUFycmF5LmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlQXJyYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaSA9PT0gaW5wdXQubGVuZ3RoKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpbnB1dFtpKytdKTsKICAgICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSBzY2hlZHVsZUFycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUl0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUl0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpdGVyYXRvcjsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGl0ZXJhdG9yID0gaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0oKTsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgdmFyIGRvbmU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX2EgPSBpdGVyYXRvci5uZXh0KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkb25lKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIDAsIHRydWUpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpdGVyYXRvciA9PT0gbnVsbCB8fCBpdGVyYXRvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlcmF0b3IucmV0dXJuKSAmJiBpdGVyYXRvci5yZXR1cm4oKTsKICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlSXRlcmFibGUgPSBzY2hlZHVsZUl0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUFzeW5jSXRlcmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVBc3luY0l0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKCFpbnB1dCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpdGVyYXRvciA9IGlucHV0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOwogICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0LnZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMCwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVBc3luY0l0ZXJhYmxlID0gc2NoZWR1bGVBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSA9IHZvaWQgMDsKICAgIHZhciBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMSA9IHJlcXVpcmVfc2NoZWR1bGVBc3luY0l0ZXJhYmxlKCk7CiAgICB2YXIgaXNSZWFkYWJsZVN0cmVhbUxpa2VfMSA9IHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UoKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlQXN5bmNJdGVyYWJsZV8xLnNjaGVkdWxlQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IoaW5wdXQpLCBzY2hlZHVsZXIpOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVkID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZU9ic2VydmFibGUoKTsKICAgIHZhciBzY2hlZHVsZVByb21pc2VfMSA9IHJlcXVpcmVfc2NoZWR1bGVQcm9taXNlKCk7CiAgICB2YXIgc2NoZWR1bGVBcnJheV8xID0gcmVxdWlyZV9zY2hlZHVsZUFycmF5KCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICB2YXIgc2NoZWR1bGVBc3luY0l0ZXJhYmxlXzEgPSByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzUHJvbWlzZV8xID0gcmVxdWlyZV9pc1Byb21pc2UoKTsKICAgIHZhciBpc0FycmF5TGlrZV8xID0gcmVxdWlyZV9pc0FycmF5TGlrZSgpOwogICAgdmFyIGlzSXRlcmFibGVfMSA9IHJlcXVpcmVfaXNJdGVyYWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlXzEgPSByZXF1aXJlX3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZWQoaW5wdXQsIHNjaGVkdWxlcikgewogICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgIGlmIChpc0ludGVyb3BPYnNlcnZhYmxlXzEuaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZU9ic2VydmFibGVfMS5zY2hlZHVsZU9ic2VydmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0FycmF5TGlrZV8xLmlzQXJyYXlMaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlQXJyYXlfMS5zY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNQcm9taXNlXzEuaXNQcm9taXNlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlUHJvbWlzZV8xLnNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXN5bmNJdGVyYWJsZV8xLmlzQXN5bmNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMS5zY2hlZHVsZUFzeW5jSXRlcmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0l0ZXJhYmxlXzEuaXNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUl0ZXJhYmxlXzEuc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUmVhZGFibGVTdHJlYW1MaWtlXzEuaXNSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2VfMS5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhyb3cgdGhyb3dVbm9ic2VydmFibGVFcnJvcl8xLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlZCA9IHNjaGVkdWxlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzCnZhciByZXF1aXJlX2Zyb20gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlZF8xID0gcmVxdWlyZV9zY2hlZHVsZWQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBmcm9tKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlciA/IHNjaGVkdWxlZF8xLnNjaGVkdWxlZChpbnB1dCwgc2NoZWR1bGVyKSA6IGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tID0gZnJvbTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZi5qcwp2YXIgcmVxdWlyZV9vZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5vZiA9IHZvaWQgMDsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG9mKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKGFyZ3MsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5vZiA9IG9mOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiB0aHJvd0Vycm9yMihlcnJvck9yRXJyb3JGYWN0b3J5LCBzY2hlZHVsZXIpIHsKICAgICAgdmFyIGVycm9yRmFjdG9yeSA9IGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGVycm9yT3JFcnJvckZhY3RvcnkpID8gZXJyb3JPckVycm9yRmFjdG9yeSA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBlcnJvck9yRXJyb3JGYWN0b3J5OwogICAgICB9OwogICAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnJvckZhY3RvcnkoKSk7CiAgICAgIH07CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoc2NoZWR1bGVyID8gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoaW5pdCwgMCwgc3Vic2NyaWJlcik7CiAgICAgIH0gOiBpbml0KTsKICAgIH0KICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB0aHJvd0Vycm9yMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVOb3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgb2ZfMSA9IHJlcXVpcmVfb2YoKTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBOb3RpZmljYXRpb25LaW5kOwogICAgKGZ1bmN0aW9uKE5vdGlmaWNhdGlvbktpbmQyKSB7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJORVhUIl0gPSAiTiI7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJFUlJPUiJdID0gIkUiOwogICAgICBOb3RpZmljYXRpb25LaW5kMlsiQ09NUExFVEUiXSA9ICJDIjsKICAgIH0pKE5vdGlmaWNhdGlvbktpbmQgPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kIHx8IChleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0ge30pKTsKICAgIHZhciBOb3RpZmljYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uMihraW5kLCB2YWx1ZSwgZXJyb3IpIHsKICAgICAgICB0aGlzLmtpbmQgPSBraW5kOwogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IGtpbmQgPT09ICJOIjsKICAgICAgfQogICAgICBOb3RpZmljYXRpb24yLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24ob2JzZXJ2ZXIpIHsKICAgICAgICByZXR1cm4gb2JzZXJ2ZU5vdGlmaWNhdGlvbih0aGlzLCBvYnNlcnZlcik7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmRvID0gZnVuY3Rpb24obmV4dEhhbmRsZXIsIGVycm9ySGFuZGxlciwgY29tcGxldGVIYW5kbGVyKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgcmV0dXJuIGtpbmQgPT09ICJOIiA/IG5leHRIYW5kbGVyID09PSBudWxsIHx8IG5leHRIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0SGFuZGxlcih2YWx1ZSkgOiBraW5kID09PSAiRSIgPyBlcnJvckhhbmRsZXIgPT09IG51bGwgfHwgZXJyb3JIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckhhbmRsZXIoZXJyb3IpIDogY29tcGxldGVIYW5kbGVyID09PSBudWxsIHx8IGNvbXBsZXRlSGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcGxldGVIYW5kbGVyKCk7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKG5leHRPck9ic2VydmVyLCBlcnJvciwgY29tcGxldGUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKChfYSA9IG5leHRPck9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmV4dCkgPyB0aGlzLm9ic2VydmUobmV4dE9yT2JzZXJ2ZXIpIDogdGhpcy5kbyhuZXh0T3JPYnNlcnZlciwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgTm90aWZpY2F0aW9uMi5wcm90b3R5cGUudG9PYnNlcnZhYmxlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgdmFyIHJlc3VsdCA9IGtpbmQgPT09ICJOIiA/IG9mXzEub2YodmFsdWUpIDoga2luZCA9PT0gIkUiID8gdGhyb3dFcnJvcl8xLnRocm93RXJyb3IoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgfSkgOiBraW5kID09PSAiQyIgPyBlbXB0eV8xLkVNUFRZIDogMDsKICAgICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiICsga2luZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY3JlYXRlTmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJOIiwgdmFsdWUpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJFIiwgdm9pZCAwLCBlcnIpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb247CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uMigiQyIpOwogICAgICByZXR1cm4gTm90aWZpY2F0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG9ic2VydmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBvYnNlcnZlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIF9kID0gbm90aWZpY2F0aW9uLCBraW5kID0gX2Qua2luZCwgdmFsdWUgPSBfZC52YWx1ZSwgZXJyb3IgPSBfZC5lcnJvcjsKICAgICAgaWYgKHR5cGVvZiBraW5kICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOwogICAgICB9CiAgICAgIGtpbmQgPT09ICJOIiA/IChfYSA9IG9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9ic2VydmVyLCB2YWx1ZSkgOiBraW5kID09PSAiRSIgPyAoX2IgPSBvYnNlcnZlci5lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob2JzZXJ2ZXIsIGVycm9yKSA6IChfYyA9IG9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvYnNlcnZlcik7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlTm90aWZpY2F0aW9uID0gb2JzZXJ2ZU5vdGlmaWNhdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfaXNPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc09ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc09ic2VydmFibGUob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiAob2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUgfHwgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob2JqLmxpZnQpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iai5zdWJzY3JpYmUpKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzT2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzCnZhciByZXF1aXJlX0VtcHR5RXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuRW1wdHlFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gRW1wdHlFcnJvckltcGwoKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubmFtZSA9ICJFbXB0eUVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2xhc3RWYWx1ZUZyb20uanMKdmFyIHJlcXVpcmVfbGFzdFZhbHVlRnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9sYXN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0VmFsdWVGcm9tID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgZnVuY3Rpb24gbGFzdFZhbHVlRnJvbShzb3VyY2UsIGNvbmZpZykgewogICAgICB2YXIgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gIm9iamVjdCI7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICB2YXIgX2hhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIF92YWx1ZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHsKICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIF92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICBfaGFzVmFsdWUgPSB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChfaGFzVmFsdWUpIHsKICAgICAgICAgICAgICByZXNvbHZlKF92YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ29uZmlnKSB7CiAgICAgICAgICAgICAgcmVzb2x2ZShjb25maWcuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZWplY3QobmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubGFzdFZhbHVlRnJvbSA9IGxhc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzCnZhciByZXF1aXJlX2ZpcnN0VmFsdWVGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBTdWJzY3JpYmVyXzEgPSByZXF1aXJlX1N1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGZpcnN0VmFsdWVGcm9tKHNvdXJjZSwgY29uZmlnKSB7CiAgICAgIHZhciBoYXNDb25maWcgPSB0eXBlb2YgY29uZmlnID09PSAib2JqZWN0IjsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBzdWJzY3JpYmVyID0gbmV3IFN1YnNjcmliZXJfMS5TYWZlU3Vic2NyaWJlcih7CiAgICAgICAgICBuZXh0OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChoYXNDb25maWcpIHsKICAgICAgICAgICAgICByZXNvbHZlKGNvbmZpZy5kZWZhdWx0VmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlamVjdChuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpcnN0VmFsdWVGcm9tID0gZmlyc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IuanMKdmFyIHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICBleHBvcnRzMi5Bcmd1bWVudE91dE9mUmFuZ2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsKCkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9ICJhcmd1bWVudCBvdXQgb2YgcmFuZ2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcwp2YXIgcmVxdWlyZV9Ob3RGb3VuZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTm90Rm91bmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjcmVhdGVFcnJvckNsYXNzXzEgPSByZXF1aXJlX2NyZWF0ZUVycm9yQ2xhc3MoKTsKICAgIGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE5vdEZvdW5kRXJyb3JJbXBsKG1lc3NhZ2UpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk5vdEZvdW5kRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzCnZhciByZXF1aXJlX1NlcXVlbmNlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TZXF1ZW5jZUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuU2VxdWVuY2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gU2VxdWVuY2VFcnJvckltcGwobWVzc2FnZSkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiU2VxdWVuY2VFcnJvciI7CiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKICAgICAgfTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzRGF0ZS5qcwp2YXIgcmVxdWlyZV9pc0RhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0RhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzVmFsaWREYXRlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUpOwogICAgfQogICAgZXhwb3J0czIuaXNWYWxpZERhdGUgPSBpc1ZhbGlkRGF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQuanMKdmFyIHJlcXVpcmVfdGltZW91dCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGV4ZWN1dGVTY2hlZHVsZV8xID0gcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUoKTsKICAgIGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVGltZW91dEVycm9ySW1wbChpbmZvKSB7CiAgICAgICAgaWYgKGluZm8gPT09IHZvaWQgMCkgewogICAgICAgICAgaW5mbyA9IG51bGw7CiAgICAgICAgfQogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAiVGltZW91dCBoYXMgb2NjdXJyZWQiOwogICAgICAgIHRoaXMubmFtZSA9ICJUaW1lb3V0RXJyb3IiOwogICAgICAgIHRoaXMuaW5mbyA9IGluZm87CiAgICAgIH07CiAgICB9KTsKICAgIGZ1bmN0aW9uIHRpbWVvdXQoY29uZmlnLCBzY2hlZHVsZXJBcmcpIHsKICAgICAgdmFyIF9hID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoY29uZmlnKSA/IHsgZmlyc3Q6IGNvbmZpZyB9IDogdHlwZW9mIGNvbmZpZyA9PT0gIm51bWJlciIgPyB7IGVhY2g6IGNvbmZpZyB9IDogY29uZmlnLCBmaXJzdCA9IF9hLmZpcnN0LCBlYWNoID0gX2EuZWFjaCwgX2IgPSBfYS53aXRoLCBfd2l0aCA9IF9iID09PSB2b2lkIDAgPyB0aW1lb3V0RXJyb3JGYWN0b3J5IDogX2IsIF9jID0gX2Euc2NoZWR1bGVyLCBzY2hlZHVsZXIgPSBfYyA9PT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnICE9PSBudWxsICYmIHNjaGVkdWxlckFyZyAhPT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlciA6IF9jLCBfZCA9IF9hLm1ldGEsIG1ldGEgPSBfZCA9PT0gdm9pZCAwID8gbnVsbCA6IF9kOwogICAgICBpZiAoZmlyc3QgPT0gbnVsbCAmJiBlYWNoID09IG51bGwpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb3JpZ2luYWxTb3VyY2VTdWJzY3JpcHRpb247CiAgICAgICAgdmFyIHRpbWVyU3Vic2NyaXB0aW9uOwogICAgICAgIHZhciBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICB2YXIgc3RhcnRUaW1lciA9IGZ1bmN0aW9uKGRlbGF5KSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9IGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIG9yaWdpbmFsU291cmNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKF93aXRoKHsKICAgICAgICAgICAgICAgIG1ldGEsCiAgICAgICAgICAgICAgICBsYXN0VmFsdWUsCiAgICAgICAgICAgICAgICBzZWVuCiAgICAgICAgICAgICAgfSkpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBkZWxheSk7CiAgICAgICAgfTsKICAgICAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9PT0gbnVsbCB8fCB0aW1lclN1YnNjcmlwdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNlZW4rKzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChsYXN0VmFsdWUgPSB2YWx1ZSk7CiAgICAgICAgICBlYWNoID4gMCAmJiBzdGFydFRpbWVyKGVhY2gpOwogICAgICAgIH0sIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghKHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi5jbG9zZWQpKSB7CiAgICAgICAgICAgIHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgICAgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgICAgIXNlZW4gJiYgc3RhcnRUaW1lcihmaXJzdCAhPSBudWxsID8gdHlwZW9mIGZpcnN0ID09PSAibnVtYmVyIiA/IGZpcnN0IDogK2ZpcnN0IC0gc2NoZWR1bGVyLm5vdygpIDogZWFjaCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dCA9IHRpbWVvdXQ7CiAgICBmdW5jdGlvbiB0aW1lb3V0RXJyb3JGYWN0b3J5KGluZm8pIHsKICAgICAgdGhyb3cgbmV3IGV4cG9ydHMyLlRpbWVvdXRFcnJvcihpbmZvKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcwp2YXIgcmVxdWlyZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWFwID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hcDIocHJvamVjdCwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tYXAgPSBtYXAyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMKdmFyIHJlcXVpcmVfbWFwT25lT3JNYW55QXJncyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcE9uZU9yTWFueUFyZ3MgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OwogICAgZnVuY3Rpb24gY2FsbE9yQXBwbHkoZm4sIGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzQXJyYXkoYXJncykgPyBmbi5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpIDogZm4oYXJncyk7CiAgICB9CiAgICBmdW5jdGlvbiBtYXBPbmVPck1hbnlBcmdzKGZuKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oYXJncykgewogICAgICAgIHJldHVybiBjYWxsT3JBcHBseShmbiwgYXJncyk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWFwT25lT3JNYW55QXJncyA9IG1hcE9uZU9yTWFueUFyZ3M7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZENhbGxiYWNrSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX2JpbmRDYWxsYmFja0ludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFja0ludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlzU2NoZWR1bGVyXzEgPSByZXF1aXJlX2lzU2NoZWR1bGVyKCk7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgQXN5bmNTdWJqZWN0XzEgPSByZXF1aXJlX0FzeW5jU3ViamVjdCgpOwogICAgZnVuY3Rpb24gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHJlc3VsdFNlbGVjdG9yLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3IpKSB7CiAgICAgICAgICBzY2hlZHVsZXIgPSByZXN1bHRTZWxlY3RvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHNjaGVkdWxlcikuYXBwbHkodGhpcywgYXJncykucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMpLmFwcGx5KHRoaXMsIGFyZ3MpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHZhciB1bmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICAgIHZhciBzdWJzID0gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgICBpZiAodW5pbml0aWFsaXplZCkgewogICAgICAgICAgICB1bmluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgICAgICAgIHZhciBpc0FzeW5jXzEgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIGlzQ29tcGxldGVfMSA9IGZhbHNlOwogICAgICAgICAgICBjYWxsYmFja0Z1bmMuYXBwbHkoX3RoaXMsIF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSwgWwogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pMisrKSB7CiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbX2kyXSA9IGFyZ3VtZW50c1tfaTJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGlzTm9kZVN0eWxlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXN1bHRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgxIDwgcmVzdWx0cy5sZW5ndGggPyByZXN1bHRzIDogcmVzdWx0c1swXSk7CiAgICAgICAgICAgICAgICBpc0NvbXBsZXRlXzEgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKGlzQXN5bmNfMSkgewogICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKSk7CiAgICAgICAgICAgIGlmIChpc0NvbXBsZXRlXzEpIHsKICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNBc3luY18xID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzdWJzOwogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gYmluZENhbGxiYWNrSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kQ2FsbGJhY2sgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9iaW5kQ2FsbGJhY2suanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJpbmRDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soY2FsbGJhY2tGdW5jLCByZXN1bHRTZWxlY3Rvciwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMS5iaW5kQ2FsbGJhY2tJbnRlcm5hbHMoZmFsc2UsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kQ2FsbGJhY2sgPSBiaW5kQ2FsbGJhY2s7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kTm9kZUNhbGxiYWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZE5vZGVDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrKGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcikgewogICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzXzEuYmluZENhbGxiYWNrSW50ZXJuYWxzKHRydWUsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gYmluZE5vZGVDYWxsYmFjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzQXJnQXJyYXlPck9iamVjdC5qcwp2YXIgcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2FyZ3NBcmdBcnJheU9yT2JqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcmdzQXJnQXJyYXlPck9iamVjdCA9IHZvaWQgMDsKICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTsKICAgIHZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKICAgIHZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7CiAgICB2YXIgZ2V0S2V5cyA9IE9iamVjdC5rZXlzOwogICAgZnVuY3Rpb24gYXJnc0FyZ0FycmF5T3JPYmplY3QoYXJncykgewogICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHsKICAgICAgICB2YXIgZmlyc3RfMSA9IGFyZ3NbMF07CiAgICAgICAgaWYgKGlzQXJyYXkoZmlyc3RfMSkpIHsKICAgICAgICAgIHJldHVybiB7IGFyZ3M6IGZpcnN0XzEsIGtleXM6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUE9KTyhmaXJzdF8xKSkgewogICAgICAgICAgdmFyIGtleXMgPSBnZXRLZXlzKGZpcnN0XzEpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgYXJnczoga2V5cy5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0XzFba2V5XTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGtleXMKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGFyZ3MsIGtleXM6IG51bGwgfTsKICAgIH0KICAgIGV4cG9ydHMyLmFyZ3NBcmdBcnJheU9yT2JqZWN0ID0gYXJnc0FyZ0FycmF5T3JPYmplY3Q7CiAgICBmdW5jdGlvbiBpc1BPSk8ob2JqKSB7CiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gIm9iamVjdCIgJiYgZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gb2JqZWN0UHJvdG87CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvY3JlYXRlT2JqZWN0LmpzCnZhciByZXF1aXJlX2NyZWF0ZU9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZU9iamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0KGtleXMsIHZhbHVlcykgewogICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXksIGkpIHsKICAgICAgICByZXR1cm4gcmVzdWx0W2tleV0gPSB2YWx1ZXNbaV0sIHJlc3VsdDsKICAgICAgfSwge30pOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gY3JlYXRlT2JqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3RJbml0ID0gZXhwb3J0czIuY29tYmluZUxhdGVzdCA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIHJlc3VsdFNlbGVjdG9yID0gYXJnc18xLnBvcFJlc3VsdFNlbGVjdG9yKGFyZ3MpOwogICAgICB2YXIgX2EgPSBhcmdzQXJnQXJyYXlPck9iamVjdF8xLmFyZ3NBcmdBcnJheU9yT2JqZWN0KGFyZ3MpLCBvYnNlcnZhYmxlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKFtdLCBzY2hlZHVsZXIpOwogICAgICB9CiAgICAgIHZhciByZXN1bHQgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwga2V5cyA/IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIHJldHVybiBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKTsKICAgICAgfSA6IGlkZW50aXR5XzEuaWRlbnRpdHkpKTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBjb21iaW5lTGF0ZXN0OwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwgdmFsdWVUcmFuc2Zvcm0pIHsKICAgICAgaWYgKHZhbHVlVHJhbnNmb3JtID09PSB2b2lkIDApIHsKICAgICAgICB2YWx1ZVRyYW5zZm9ybSA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBtYXliZVNjaGVkdWxlKHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgbGVuZ3RoID0gb2JzZXJ2YWJsZXMubGVuZ3RoOwogICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgICAgdmFyIGFjdGl2ZSA9IGxlbmd0aDsKICAgICAgICAgIHZhciByZW1haW5pbmdGaXJzdFZhbHVlcyA9IGxlbmd0aDsKICAgICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oaTIpIHsKICAgICAgICAgICAgbWF5YmVTY2hlZHVsZShzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBmcm9tXzEuZnJvbShvYnNlcnZhYmxlc1tpMl0sIHNjaGVkdWxlcik7CiAgICAgICAgICAgICAgdmFyIGhhc0ZpcnN0VmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFsdWVzW2kyXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgaWYgKCFoYXNGaXJzdFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgICAgICByZW1haW5pbmdGaXJzdFZhbHVlcy0tOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdGaXJzdFZhbHVlcykgewogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWVUcmFuc2Zvcm0odmFsdWVzLnNsaWNlKCkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmICghLS1hY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfSwgc3Vic2NyaWJlcik7CiAgICAgICAgICB9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgICAgfQogICAgICAgIH0sIHN1YnNjcmliZXIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEluaXQgPSBjb21iaW5lTGF0ZXN0SW5pdDsKICAgIGZ1bmN0aW9uIG1heWJlU2NoZWR1bGUoc2NoZWR1bGVyLCBleGVjdXRlLCBzdWJzY3JpcHRpb24pIHsKICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgZXhlY3V0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXhlY3V0ZSgpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUludGVybmFscy5qcwp2YXIgcmVxdWlyZV9tZXJnZUludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VJbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gbWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCBvbkJlZm9yZU5leHQsIGV4cGFuZCwgaW5uZXJTdWJTY2hlZHVsZXIsIGFkZGl0aW9uYWxGaW5hbGl6ZXIpIHsKICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICB2YXIgYWN0aXZlID0gMDsKICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoaXNDb21wbGV0ZSAmJiAhYnVmZmVyLmxlbmd0aCAmJiAhYWN0aXZlKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICB2YXIgb3V0ZXJOZXh0ID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gYWN0aXZlIDwgY29uY3VycmVudCA/IGRvSW5uZXJTdWIodmFsdWUpIDogYnVmZmVyLnB1c2godmFsdWUpOwogICAgICB9OwogICAgICB2YXIgZG9Jbm5lclN1YiA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgZXhwYW5kICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgYWN0aXZlKys7CiAgICAgICAgdmFyIGlubmVyQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdCh2YWx1ZSwgaW5kZXgrKykpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oaW5uZXJWYWx1ZSkgewogICAgICAgICAgb25CZWZvcmVOZXh0ID09PSBudWxsIHx8IG9uQmVmb3JlTmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CZWZvcmVOZXh0KGlubmVyVmFsdWUpOwogICAgICAgICAgaWYgKGV4cGFuZCkgewogICAgICAgICAgICBvdXRlck5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpbm5lckNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICB9LCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKGlubmVyQ29tcGxldGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBhY3RpdmUtLTsKICAgICAgICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIGJ1ZmZlcmVkVmFsdWUgPSBidWZmZXIuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmIChpbm5lclN1YlNjaGVkdWxlcikgewogICAgICAgICAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgaW5uZXJTdWJTY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0lubmVyU3ViKGJ1ZmZlcmVkVmFsdWUpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGRvSW5uZXJTdWIoYnVmZmVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB3aGlsZSAoYnVmZmVyLmxlbmd0aCAmJiBhY3RpdmUgPCBjb25jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBfbG9vcF8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9OwogICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBvdXRlck5leHQsIGZ1bmN0aW9uKCkgewogICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgYWRkaXRpb25hbEZpbmFsaXplciA9PT0gbnVsbCB8fCBhZGRpdGlvbmFsRmluYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhZGRpdGlvbmFsRmluYWxpemVyKCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUludGVybmFscyA9IG1lcmdlSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXAuanMKdmFyIHJlcXVpcmVfbWVyZ2VNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5tZXJnZU1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG1lcmdlSW50ZXJuYWxzXzEgPSByZXF1aXJlX21lcmdlSW50ZXJuYWxzKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtZXJnZU1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbihiLCBpaSkgewogICAgICAgICAgICByZXR1cm4gcmVzdWx0U2VsZWN0b3IoYSwgYiwgaSwgaWkpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpKTsKICAgICAgICB9LCBjb25jdXJyZW50KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gbWVyZ2VJbnRlcm5hbHNfMS5tZXJnZUludGVybmFscyhzb3VyY2UsIHN1YnNjcmliZXIsIHByb2plY3QsIGNvbmN1cnJlbnQpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlTWFwID0gbWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUFsbC5qcwp2YXIgcmVxdWlyZV9tZXJnZUFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIG1lcmdlQWxsKGNvbmN1cnJlbnQpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChpZGVudGl0eV8xLmlkZW50aXR5LCBjb25jdXJyZW50KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gbWVyZ2VBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMKdmFyIHJlcXVpcmVfY29uY2F0QWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgZnVuY3Rpb24gY29uY2F0QWxsKCkgewogICAgICByZXR1cm4gbWVyZ2VBbGxfMS5tZXJnZUFsbCgxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IGNvbmNhdEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsKCkoZnJvbV8xLmZyb20oYXJncywgYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29uY2F0ID0gY29uY2F0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RlZmVyLmpzCnZhciByZXF1aXJlX2RlZmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZGVmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZmVyID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGRlZmVyKG9ic2VydmFibGVGYWN0b3J5KSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvYnNlcnZhYmxlRmFjdG9yeSgpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmZXIgPSBkZWZlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25uZWN0YWJsZS5qcwp2YXIgcmVxdWlyZV9jb25uZWN0YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Nvbm5lY3RhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25uZWN0YWJsZSA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgdmFyIERFRkFVTFRfQ09ORklHID0gewogICAgICBjb25uZWN0b3I6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgfSwKICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IHRydWUKICAgIH07CiAgICBmdW5jdGlvbiBjb25uZWN0YWJsZShzb3VyY2UsIGNvbmZpZykgewogICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsKICAgICAgICBjb25maWcgPSBERUZBVUxUX0NPTkZJRzsKICAgICAgfQogICAgICB2YXIgY29ubmVjdGlvbiA9IG51bGw7CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yLCBfYSA9IGNvbmZpZy5yZXNldE9uRGlzY29ubmVjdCwgcmVzZXRPbkRpc2Nvbm5lY3QgPSBfYSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9hOwogICAgICB2YXIgc3ViamVjdCA9IGNvbm5lY3RvcigpOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgICByZXN1bHQuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICghY29ubmVjdGlvbiB8fCBjb25uZWN0aW9uLmNsb3NlZCkgewogICAgICAgICAgY29ubmVjdGlvbiA9IGRlZmVyXzEuZGVmZXIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgICB9KS5zdWJzY3JpYmUoc3ViamVjdCk7CiAgICAgICAgICBpZiAocmVzZXRPbkRpc2Nvbm5lY3QpIHsKICAgICAgICAgICAgY29ubmVjdGlvbi5hZGQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb25uZWN0aW9uOwogICAgICB9OwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdGFibGUgPSBjb25uZWN0YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mb3JrSm9pbi5qcwp2YXIgcmVxdWlyZV9mb3JrSm9pbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2ZvcmtKb2luLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mb3JrSm9pbiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgZnVuY3Rpb24gZm9ya0pvaW4oKSB7CiAgICAgIHZhciBhcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciByZXN1bHRTZWxlY3RvciA9IGFyZ3NfMS5wb3BSZXN1bHRTZWxlY3RvcihhcmdzKTsKICAgICAgdmFyIF9hID0gYXJnc0FyZ0FycmF5T3JPYmplY3RfMS5hcmdzQXJnQXJyYXlPck9iamVjdChhcmdzKSwgc291cmNlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7CiAgICAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgIHZhciByZW1haW5pbmdDb21wbGV0aW9ucyA9IGxlbmd0aDsKICAgICAgICB2YXIgcmVtYWluaW5nRW1pc3Npb25zID0gbGVuZ3RoOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzW3NvdXJjZUluZGV4Ml0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgICByZW1haW5pbmdFbWlzc2lvbnMtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YWx1ZXNbc291cmNlSW5kZXgyXSA9IHZhbHVlOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiByZW1haW5pbmdDb21wbGV0aW9ucy0tOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdDb21wbGV0aW9ucyB8fCAhaGFzVmFsdWUpIHsKICAgICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0VtaXNzaW9ucykgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGtleXMgPyBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKSA6IHZhbHVlcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgc291cmNlSW5kZXggPSAwOyBzb3VyY2VJbmRleCA8IGxlbmd0aDsgc291cmNlSW5kZXgrKykgewogICAgICAgICAgX2xvb3BfMShzb3VyY2VJbmRleCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmZvcmtKb2luID0gZm9ya0pvaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50LmpzCnZhciByZXF1aXJlX2Zyb21FdmVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tRXZlbnQgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNBcnJheUxpa2VfMSA9IHJlcXVpcmVfaXNBcnJheUxpa2UoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyA9IFsiYWRkTGlzdGVuZXIiLCAicmVtb3ZlTGlzdGVuZXIiXTsKICAgIHZhciBldmVudFRhcmdldE1ldGhvZHMgPSBbImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciJdOwogICAgdmFyIGpxdWVyeU1ldGhvZHMgPSBbIm9uIiwgIm9mZiJdOwogICAgZnVuY3Rpb24gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zLCByZXN1bHRTZWxlY3RvcikgewogICAgICBpZiAoaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob3B0aW9ucykpIHsKICAgICAgICByZXN1bHRTZWxlY3RvciA9IG9wdGlvbnM7CiAgICAgICAgb3B0aW9ucyA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAocmVzdWx0U2VsZWN0b3IpIHsKICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zKS5waXBlKG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHJlc3VsdFNlbGVjdG9yKSk7CiAgICAgIH0KICAgICAgdmFyIF9hID0gX19yZWFkKGlzRXZlbnRUYXJnZXQodGFyZ2V0KSA/IGV2ZW50VGFyZ2V0TWV0aG9kcy5tYXAoZnVuY3Rpb24obWV0aG9kTmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbihoYW5kbGVyKSB7CiAgICAgICAgICByZXR1cm4gdGFyZ2V0W21ldGhvZE5hbWVdKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7CiAgICAgICAgfTsKICAgICAgfSkgOiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpID8gbm9kZUV2ZW50RW1pdHRlck1ldGhvZHMubWFwKHRvQ29tbW9uSGFuZGxlclJlZ2lzdHJ5KHRhcmdldCwgZXZlbnROYW1lKSkgOiBpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyKHRhcmdldCkgPyBqcXVlcnlNZXRob2RzLm1hcCh0b0NvbW1vbkhhbmRsZXJSZWdpc3RyeSh0YXJnZXQsIGV2ZW50TmFtZSkpIDogW10sIDIpLCBhZGQgPSBfYVswXSwgcmVtb3ZlID0gX2FbMV07CiAgICAgIGlmICghYWRkKSB7CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UodGFyZ2V0KSkgewogICAgICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24oc3ViVGFyZ2V0KSB7CiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoc3ViVGFyZ2V0LCBldmVudE5hbWUsIG9wdGlvbnMpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHRhcmdldCkpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoIWFkZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5uZXh0KDEgPCBhcmdzLmxlbmd0aCA/IGFyZ3MgOiBhcmdzWzBdKTsKICAgICAgICB9OwogICAgICAgIGFkZChoYW5kbGVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlKGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUV2ZW50ID0gZnJvbUV2ZW50OwogICAgZnVuY3Rpb24gdG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oaGFuZGxlcikgewogICAgICAgICAgcmV0dXJuIHRhcmdldFttZXRob2ROYW1lXShldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRMaXN0ZW5lcikgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odGFyZ2V0LnJlbW92ZUxpc3RlbmVyKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQub24pICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5vZmYpOwogICAgfQogICAgZnVuY3Rpb24gaXNFdmVudFRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcwp2YXIgcmVxdWlyZV9mcm9tRXZlbnRQYXR0ZXJuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIGZ1bmN0aW9uIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlciwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlcikucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICB9CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZSA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgICAgZVtfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIubmV4dChlLmxlbmd0aCA9PT0gMSA/IGVbMF0gOiBlKTsKICAgICAgICB9OwogICAgICAgIHZhciByZXRWYWx1ZSA9IGFkZEhhbmRsZXIoaGFuZGxlcik7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlbW92ZUhhbmRsZXIpID8gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlSGFuZGxlcihoYW5kbGVyLCByZXRWYWx1ZSk7CiAgICAgICAgfSA6IHZvaWQgMDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tRXZlbnRQYXR0ZXJuID0gZnJvbUV2ZW50UGF0dGVybjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9nZW5lcmF0ZS5qcwp2YXIgcmVxdWlyZV9nZW5lcmF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2dlbmVyYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZ2VuZXJhdG9yID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19nZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgYm9keSkgewogICAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsKICAgICAgICByZXR1cm4gdFsxXTsKICAgICAgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZzsKICAgICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksICJ0aHJvdyI6IHZlcmIoMSksICJyZXR1cm4iOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9KSwgZzsKICAgICAgZnVuY3Rpb24gdmVyYihuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBzdGVwKFtuLCB2XSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKG9wKSB7CiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTsKICAgICAgICB3aGlsZSAoXykgdHJ5IHsKICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTsKICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICB5ID0gb3BbMV07CiAgICAgICAgICAgICAgb3AgPSBbMF07CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvcCA9IF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgewogICAgICAgICAgICAgICAgXyA9IDA7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCBvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IG9wWzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMV07CiAgICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzJdOwogICAgICAgICAgICAgICAgXy5vcHMucHVzaChvcCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIG9wID0gWzYsIGVdOwogICAgICAgICAgeSA9IDA7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGYgPSB0ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07CiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgICAgfQogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSB2b2lkIDA7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGRlZmVyXzEgPSByZXF1aXJlX2RlZmVyKCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZShpbml0aWFsU3RhdGVPck9wdGlvbnMsIGNvbmRpdGlvbiwgaXRlcmF0ZSwgcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlciwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciByZXN1bHRTZWxlY3RvcjsKICAgICAgdmFyIGluaXRpYWxTdGF0ZTsKICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgICAgICBfYSA9IGluaXRpYWxTdGF0ZU9yT3B0aW9ucywgaW5pdGlhbFN0YXRlID0gX2EuaW5pdGlhbFN0YXRlLCBjb25kaXRpb24gPSBfYS5jb25kaXRpb24sIGl0ZXJhdGUgPSBfYS5pdGVyYXRlLCBfYiA9IF9hLnJlc3VsdFNlbGVjdG9yLCByZXN1bHRTZWxlY3RvciA9IF9iID09PSB2b2lkIDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogX2IsIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVPck9wdGlvbnM7CiAgICAgICAgaWYgKCFyZXN1bHRTZWxlY3Rvck9yU2NoZWR1bGVyIHx8IGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gaWRlbnRpdHlfMS5pZGVudGl0eTsKICAgICAgICAgIHNjaGVkdWxlciA9IHJlc3VsdFNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2VuKCkgewogICAgICAgIHZhciBzdGF0ZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2EyKSB7CiAgICAgICAgICBzd2l0Y2ggKF9hMi5sYWJlbCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgc3RhdGUgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgICAgICAgX2EyLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGlmICghKCFjb25kaXRpb24gfHwgY29uZGl0aW9uKHN0YXRlKSkpIHJldHVybiBbMywgNF07CiAgICAgICAgICAgICAgcmV0dXJuIFs0LCByZXN1bHRTZWxlY3RvcihzdGF0ZSldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX2EyLnNlbnQoKTsKICAgICAgICAgICAgICBfYTIubGFiZWwgPSAzOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgc3RhdGUgPSBpdGVyYXRlKHN0YXRlKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFsyXTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZGVmZXJfMS5kZWZlcihzY2hlZHVsZXIgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVJdGVyYWJsZV8xLnNjaGVkdWxlSXRlcmFibGUoZ2VuKCksIHNjaGVkdWxlcik7CiAgICAgIH0gOiBnZW4pOwogICAgfQogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSBnZW5lcmF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9paWYuanMKdmFyIHJlcXVpcmVfaWlmID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaWlmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5paWYgPSB2b2lkIDA7CiAgICB2YXIgZGVmZXJfMSA9IHJlcXVpcmVfZGVmZXIoKTsKICAgIGZ1bmN0aW9uIGlpZihjb25kaXRpb24sIHRydWVSZXN1bHQsIGZhbHNlUmVzdWx0KSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBjb25kaXRpb24oKSA/IHRydWVSZXN1bHQgOiBmYWxzZVJlc3VsdDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5paWYgPSBpaWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdGltZXIuanMKdmFyIHJlcXVpcmVfdGltZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aW1lci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXIgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIGZ1bmN0aW9uIHRpbWVyKGR1ZVRpbWUsIGludGVydmFsT3JTY2hlZHVsZXIsIHNjaGVkdWxlcikgewogICAgICBpZiAoZHVlVGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZHVlVGltZSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luYzsKICAgICAgfQogICAgICB2YXIgaW50ZXJ2YWxEdXJhdGlvbiA9IC0xOwogICAgICBpZiAoaW50ZXJ2YWxPclNjaGVkdWxlciAhPSBudWxsKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIoaW50ZXJ2YWxPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHNjaGVkdWxlciA9IGludGVydmFsT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGludGVydmFsRHVyYXRpb24gPSBpbnRlcnZhbE9yU2NoZWR1bGVyOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgZHVlID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoZHVlVGltZSkgPyArZHVlVGltZSAtIHNjaGVkdWxlci5ub3coKSA6IGR1ZVRpbWU7CiAgICAgICAgaWYgKGR1ZSA8IDApIHsKICAgICAgICAgIGR1ZSA9IDA7CiAgICAgICAgfQogICAgICAgIHZhciBuID0gMDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobisrKTsKICAgICAgICAgICAgaWYgKDAgPD0gaW50ZXJ2YWxEdXJhdGlvbikgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUodm9pZCAwLCBpbnRlcnZhbER1cmF0aW9uKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBkdWUpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRpbWVyID0gdGltZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfaW50ZXJ2YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbnRlcnZhbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaW50ZXJ2YWwgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gaW50ZXJ2YWwocGVyaW9kLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHBlcmlvZCA9PT0gdm9pZCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICBpZiAoc2NoZWR1bGVyID09PSB2b2lkIDApIHsKICAgICAgICBzY2hlZHVsZXIgPSBhc3luY18xLmFzeW5jU2NoZWR1bGVyOwogICAgICB9CiAgICAgIGlmIChwZXJpb2QgPCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICByZXR1cm4gdGltZXJfMS50aW1lcihwZXJpb2QsIHBlcmlvZCwgc2NoZWR1bGVyKTsKICAgIH0KICAgIGV4cG9ydHMyLmludGVydmFsID0gaW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VBbGxfMSA9IHJlcXVpcmVfbWVyZ2VBbGwoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG1lcmdlMigpIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIoYXJncyk7CiAgICAgIHZhciBjb25jdXJyZW50ID0gYXJnc18xLnBvcE51bWJlcihhcmdzLCBJbmZpbml0eSk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnczsKICAgICAgcmV0dXJuICFzb3VyY2VzLmxlbmd0aCA/IGVtcHR5XzEuRU1QVFkgOiBzb3VyY2VzLmxlbmd0aCA9PT0gMSA/IGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzWzBdKSA6IG1lcmdlQWxsXzEubWVyZ2VBbGwoY29uY3VycmVudCkoZnJvbV8xLmZyb20oc291cmNlcywgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9uZXZlci5qcwp2YXIgcmVxdWlyZV9uZXZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL25ldmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLk5FVkVSID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZXhwb3J0czIuTkVWRVIgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUobm9vcF8xLm5vb3ApOwogICAgZnVuY3Rpb24gbmV2ZXIoKSB7CiAgICAgIHJldHVybiBleHBvcnRzMi5ORVZFUjsKICAgIH0KICAgIGV4cG9ydHMyLm5ldmVyID0gbmV2ZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJnc09yQXJnQXJyYXkuanMKdmFyIHJlcXVpcmVfYXJnc09yQXJnQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzT3JBcmdBcnJheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXJnc09yQXJnQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7CiAgICBmdW5jdGlvbiBhcmdzT3JBcmdBcnJheShhcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KGFyZ3NbMF0pID8gYXJnc1swXSA6IGFyZ3M7CiAgICB9CiAgICBleHBvcnRzMi5hcmdzT3JBcmdBcnJheSA9IGFyZ3NPckFyZ0FycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29uRXJyb3JSZXN1bWVOZXh0LmpzCnZhciByZXF1aXJlX29uRXJyb3JSZXN1bWVOZXh0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvb25FcnJvclJlc3VtZU5leHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0KCkgewogICAgICB2YXIgc291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIHNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgbmV4dFNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc291cmNlSW5kZXggPSAwOwogICAgICAgIHZhciBzdWJzY3JpYmVOZXh0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc291cmNlSW5kZXggPCBuZXh0U291cmNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIG5leHRTb3VyY2UgPSB2b2lkIDA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgbmV4dFNvdXJjZSA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShuZXh0U291cmNlc1tzb3VyY2VJbmRleCsrXSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgIHN1YnNjcmliZU5leHQoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG5ldyBPcGVyYXRvclN1YnNjcmliZXJfMS5PcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBub29wXzEubm9vcCwgbm9vcF8xLm5vb3ApOwogICAgICAgICAgICBuZXh0U291cmNlLnN1YnNjcmliZShpbm5lclN1YnNjcmliZXIpOwogICAgICAgICAgICBpbm5lclN1YnNjcmliZXIuYWRkKHN1YnNjcmliZU5leHQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlTmV4dCgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gb25FcnJvclJlc3VtZU5leHQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFpcnMuanMKdmFyIHJlcXVpcmVfcGFpcnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYWlycy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGFpcnMgPSB2b2lkIDA7CiAgICB2YXIgZnJvbV8xID0gcmVxdWlyZV9mcm9tKCk7CiAgICBmdW5jdGlvbiBwYWlyczIob2JqLCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKE9iamVjdC5lbnRyaWVzKG9iaiksIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5wYWlycyA9IHBhaXJzMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9ub3QuanMKdmFyIHJlcXVpcmVfbm90MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL25vdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm90ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gbm90KHByZWQsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAgIHJldHVybiAhcHJlZC5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5ub3QgPSBub3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMKdmFyIHJlcXVpcmVfZmlsdGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbHRlciA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaWx0ZXIocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gcHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4KyspICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbHRlciA9IGZpbHRlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYXJ0aXRpb24uanMKdmFyIHJlcXVpcmVfcGFydGl0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFydGl0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSB2b2lkIDA7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdDIoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gcGFydGl0aW9uKHNvdXJjZSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBbZmlsdGVyXzEuZmlsdGVyKHByZWRpY2F0ZSwgdGhpc0FyZykoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZSkpLCBmaWx0ZXJfMS5maWx0ZXIobm90XzEubm90KHByZWRpY2F0ZSwgdGhpc0FyZykpKGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpKV07CiAgICB9CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcwp2YXIgcmVxdWlyZV9yYWNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFjZUluaXQgPSBleHBvcnRzMi5yYWNlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJhY2UoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gc291cmNlcy5sZW5ndGggPT09IDEgPyBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1swXSkgOiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUocmFjZUluaXQoc291cmNlcykpOwogICAgfQogICAgZXhwb3J0czIucmFjZSA9IHJhY2U7CiAgICBmdW5jdGlvbiByYWNlSW5pdChzb3VyY2VzKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbnMgPSBbXTsKICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKGkyKSB7CiAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZXNbaTJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCBzdWJzY3JpcHRpb25zLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgICAgICBzICE9PSBpMiAmJiBzdWJzY3JpcHRpb25zW3NdLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9KSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IHN1YnNjcmlwdGlvbnMgJiYgIXN1YnNjcmliZXIuY2xvc2VkICYmIGkgPCBzb3VyY2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnJhY2VJbml0ID0gcmFjZUluaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFuZ2UuanMKdmFyIHJlcXVpcmVfcmFuZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9yYW5nZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFuZ2UgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBjb3VudCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChjb3VudCA9PSBudWxsKSB7CiAgICAgICAgY291bnQgPSBzdGFydDsKICAgICAgICBzdGFydCA9IDA7CiAgICAgIH0KICAgICAgaWYgKGNvdW50IDw9IDApIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfQogICAgICB2YXIgZW5kID0gY291bnQgKyBzdGFydDsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShzY2hlZHVsZXIgPyBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIG4gPSBzdGFydDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG4gPCBlbmQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSA6IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbiA9IHN0YXJ0OwogICAgICAgIHdoaWxlIChuIDwgZW5kICYmICFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgfQogICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5yYW5nZSA9IHJhbmdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nLmpzCnZhciByZXF1aXJlX3VzaW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdXNpbmcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnVzaW5nID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgZnVuY3Rpb24gdXNpbmcocmVzb3VyY2VGYWN0b3J5LCBvYnNlcnZhYmxlRmFjdG9yeSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgcmVzb3VyY2UgPSByZXNvdXJjZUZhY3RvcnkoKTsKICAgICAgICB2YXIgcmVzdWx0ID0gb2JzZXJ2YWJsZUZhY3RvcnkocmVzb3VyY2UpOwogICAgICAgIHZhciBzb3VyY2UgPSByZXN1bHQgPyBpbm5lckZyb21fMS5pbm5lckZyb20ocmVzdWx0KSA6IGVtcHR5XzEuRU1QVFk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAgICAgICAgcmVzb3VyY2UudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzaW5nID0gdXNpbmc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvemlwLmpzCnZhciByZXF1aXJlX3ppcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3ppcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuemlwID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgZnVuY3Rpb24gemlwKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKTsKICAgICAgcmV0dXJuIHNvdXJjZXMubGVuZ3RoID8gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IHNvdXJjZXMubWFwKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0pOwogICAgICAgIHZhciBjb21wbGV0ZWQgPSBzb3VyY2VzLm1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBjb21wbGV0ZWQgPSBudWxsOwogICAgICAgIH0pOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1tzb3VyY2VJbmRleDJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGJ1ZmZlcnNbc291cmNlSW5kZXgyXS5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuZXZlcnkoZnVuY3Rpb24oYnVmZmVyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7CiAgICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJ1ZmZlcnMubWFwKGZ1bmN0aW9uKGJ1ZmZlcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5zaGlmdCgpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHRTZWxlY3RvciA/IHJlc3VsdFNlbGVjdG9yLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHJlc3VsdCkpKSA6IHJlc3VsdCk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuc29tZShmdW5jdGlvbihidWZmZXIsIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhYnVmZmVyLmxlbmd0aCAmJiBjb21wbGV0ZWRbaV07CiAgICAgICAgICAgICAgfSkpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb21wbGV0ZWRbc291cmNlSW5kZXgyXSA9IHRydWU7CiAgICAgICAgICAgICFidWZmZXJzW3NvdXJjZUluZGV4Ml0ubGVuZ3RoICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHNvdXJjZUluZGV4ID0gMDsgIXN1YnNjcmliZXIuY2xvc2VkICYmIHNvdXJjZUluZGV4IDwgc291cmNlcy5sZW5ndGg7IHNvdXJjZUluZGV4KyspIHsKICAgICAgICAgIF9sb29wXzEoc291cmNlSW5kZXgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXJzID0gY29tcGxldGVkID0gbnVsbDsKICAgICAgICB9OwogICAgICB9KSA6IGVtcHR5XzEuRU1QVFk7CiAgICB9CiAgICBleHBvcnRzMi56aXAgPSB6aXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3R5cGVzLmpzCnZhciByZXF1aXJlX3R5cGVzMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC90eXBlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYXVkaXQuanMKdmFyIHJlcXVpcmVfYXVkaXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hdWRpdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gYXVkaXQoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICB2YXIgZW5kRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGlmICghZHVyYXRpb25TdWJzY3JpYmVyKSB7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmREdXJhdGlvbiwgY2xlYW51cER1cmF0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICghaGFzVmFsdWUgfHwgIWR1cmF0aW9uU3Vic2NyaWJlciB8fCBkdXJhdGlvblN1YnNjcmliZXIuY2xvc2VkKSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmF1ZGl0ID0gYXVkaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMKdmFyIHJlcXVpcmVfYXVkaXRUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmF1ZGl0VGltZSA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGF1ZGl0VGltZShkdXJhdGlvbiwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuYXVkaXRUaW1lID0gYXVkaXRUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXIgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcihjbG9zaW5nTm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjdXJyZW50QnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBjdXJyZW50QnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGN1cnJlbnRCdWZmZXIpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ05vdGlmaWVyKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGIgPSBjdXJyZW50QnVmZmVyOwogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IFtdOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGIpOwogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXIgPSBidWZmZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudC5qcwp2YXIgcmVxdWlyZV9idWZmZXJDb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyQ291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX192YWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3ZhbHVlcyB8fCBmdW5jdGlvbihvKSB7CiAgICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwOwogICAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTsKICAgICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07CiAgICAgICAgfQogICAgICB9OwogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyAiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iIDogIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICBmdW5jdGlvbiBidWZmZXJDb3VudChidWZmZXJTaXplLCBzdGFydEJ1ZmZlckV2ZXJ5KSB7CiAgICAgIGlmIChzdGFydEJ1ZmZlckV2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gbnVsbDsKICAgICAgfQogICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gc3RhcnRCdWZmZXJFdmVyeSAhPT0gbnVsbCAmJiBzdGFydEJ1ZmZlckV2ZXJ5ICE9PSB2b2lkIDAgPyBzdGFydEJ1ZmZlckV2ZXJ5IDogYnVmZmVyU2l6ZTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJzID0gW107CiAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgICB2YXIgdG9FbWl0ID0gbnVsbDsKICAgICAgICAgIGlmIChjb3VudCsrICUgc3RhcnRCdWZmZXJFdmVyeSA9PT0gMCkgewogICAgICAgICAgICBidWZmZXJzLnB1c2goW10pOwogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18xID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKTsgIWJ1ZmZlcnNfMV8xLmRvbmU7IGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdG9FbWl0ID0gdG9FbWl0ICE9PSBudWxsICYmIHRvRW1pdCAhPT0gdm9pZCAwID8gdG9FbWl0IDogW107CiAgICAgICAgICAgICAgICB0b0VtaXQucHVzaChidWZmZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9FbWl0KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdG9FbWl0XzEgPSBfX3ZhbHVlcyh0b0VtaXQpLCB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpOyAhdG9FbWl0XzFfMS5kb25lOyB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gdG9FbWl0XzFfMS52YWx1ZTsKICAgICAgICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJzLCBidWZmZXIpOwogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlXzJfMSkgewogICAgICAgICAgICAgIGVfMiA9IHsgZXJyb3I6IGVfMl8xIH07CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh0b0VtaXRfMV8xICYmICF0b0VtaXRfMV8xLmRvbmUgJiYgKF9iID0gdG9FbWl0XzEucmV0dXJuKSkgX2IuY2FsbCh0b0VtaXRfMSk7CiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzMsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18yID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKTsgIWJ1ZmZlcnNfMl8xLmRvbmU7IGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzJfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoYnVmZmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8zXzEpIHsKICAgICAgICAgICAgZV8zID0geyBlcnJvcjogZV8zXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMl8xICYmICFidWZmZXJzXzJfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMi5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMik7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMykgdGhyb3cgZV8zLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJDb3VudCA9IGJ1ZmZlckNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyVGltZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gYnVmZmVyVGltZShidWZmZXJUaW1lU3BhbikgewogICAgICB2YXIgX2EsIF9iOwogICAgICB2YXIgb3RoZXJBcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgb3RoZXJBcmdzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBzY2hlZHVsZXIgPSAoX2EgPSBhcmdzXzEucG9wU2NoZWR1bGVyKG90aGVyQXJncykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIHZhciBidWZmZXJDcmVhdGlvbkludGVydmFsID0gKF9iID0gb3RoZXJBcmdzWzBdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsOwogICAgICB2YXIgbWF4QnVmZmVyU2l6ZSA9IG90aGVyQXJnc1sxXSB8fCBJbmZpbml0eTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJSZWNvcmRzID0gW107CiAgICAgICAgdmFyIHJlc3RhcnRPbkVtaXQgPSBmYWxzZTsKICAgICAgICB2YXIgZW1pdCA9IGZ1bmN0aW9uKHJlY29yZCkgewogICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXIsIHN1YnMgPSByZWNvcmQuc3ViczsKICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJSZWNvcmRzLCByZWNvcmQpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICByZXN0YXJ0T25FbWl0ICYmIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgfTsKICAgICAgICB2YXIgc3RhcnRCdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChidWZmZXJSZWNvcmRzKSB7CiAgICAgICAgICAgIHZhciBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbigpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChzdWJzKTsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgIHN1YnMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnVmZmVyUmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVtaXQocmVjb3JkXzEpOwogICAgICAgICAgICB9LCBidWZmZXJUaW1lU3Bhbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBpZiAoYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCAhPT0gbnVsbCAmJiBidWZmZXJDcmVhdGlvbkludGVydmFsID49IDApIHsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIHN0YXJ0QnVmZmVyLCBidWZmZXJDcmVhdGlvbkludGVydmFsLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVzdGFydE9uRW1pdCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgdmFyIGJ1ZmZlclRpbWVTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTI7CiAgICAgICAgICB2YXIgcmVjb3Jkc0NvcHkgPSBidWZmZXJSZWNvcmRzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciByZWNvcmRzQ29weV8xID0gX192YWx1ZXMocmVjb3Jkc0NvcHkpLCByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKTsgIXJlY29yZHNDb3B5XzFfMS5kb25lOyByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzQ29weV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXI7CiAgICAgICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgICAgICAgIG1heEJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCAmJiBlbWl0KHJlY29yZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmIChyZWNvcmRzQ29weV8xXzEgJiYgIXJlY29yZHNDb3B5XzFfMS5kb25lICYmIChfYTIgPSByZWNvcmRzQ29weV8xLnJldHVybikpIF9hMi5jYWxsKHJlY29yZHNDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKGJ1ZmZlclJlY29yZHMgPT09IG51bGwgfHwgYnVmZmVyUmVjb3JkcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnVmZmVyUmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlclJlY29yZHMuc2hpZnQoKS5idWZmZXIpOwogICAgICAgICAgfQogICAgICAgICAgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IG51bGwgfHwgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1ZmZlclRpbWVTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXJSZWNvcmRzID0gbnVsbDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGJ1ZmZlclRpbWVTdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gYnVmZmVyVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlclRvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IFtdOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciBidWZmZXIgPSBbXTsKICAgICAgICAgIGJ1ZmZlcnMucHVzaChidWZmZXIpOwogICAgICAgICAgdmFyIGNsb3NpbmdTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgZW1pdEJ1ZmZlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUoYnVmZmVycywgYnVmZmVyKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH07CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaXB0aW9uLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZW1pdEJ1ZmZlciwgbm9vcF8xLm5vb3ApKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciBidWZmZXJzXzEgPSBfX3ZhbHVlcyhidWZmZXJzKSwgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpOyAhYnVmZmVyc18xXzEuZG9uZTsgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IGJ1ZmZlcnNfMV8xLnZhbHVlOwogICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoYnVmZmVycy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChidWZmZXJzLnNoaWZ0KCkpOwogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUb2dnbGUgPSBidWZmZXJUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJXaGVuLmpzCnZhciByZXF1aXJlX2J1ZmZlcldoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcldoZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gbnVsbDsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXIgPSBudWxsOwogICAgICAgIHZhciBvcGVuQnVmZmVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBjbG9zaW5nU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xvc2luZ1N1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBiID0gYnVmZmVyOwogICAgICAgICAgYnVmZmVyID0gW107CiAgICAgICAgICBiICYmIHN1YnNjcmliZXIubmV4dChiKTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShjbG9zaW5nU2VsZWN0b3IoKSkuc3Vic2NyaWJlKGNsb3NpbmdTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG9wZW5CdWZmZXIsIG5vb3BfMS5ub29wKSk7CiAgICAgICAgfTsKICAgICAgICBvcGVuQnVmZmVyKCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPT09IG51bGwgfHwgYnVmZmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgJiYgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPSBjbG9zaW5nU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSBidWZmZXJXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY2F0Y2hFcnJvci5qcwp2YXIgcmVxdWlyZV9jYXRjaEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jYXRjaEVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYXRjaEVycm9yID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiBjYXRjaEVycm9yKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWIgPSBudWxsOwogICAgICAgIHZhciBzeW5jVW5zdWIgPSBmYWxzZTsKICAgICAgICB2YXIgaGFuZGxlZFJlc3VsdDsKICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIGhhbmRsZWRSZXN1bHQgPSBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZXJyLCBjYXRjaEVycm9yKHNlbGVjdG9yKShzb3VyY2UpKSk7CiAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN5bmNVbnN1YiA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIGlmIChzeW5jVW5zdWIpIHsKICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2F0Y2hFcnJvciA9IGNhdGNoRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zY2FuSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX3NjYW5JbnRlcm5hbHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW5JbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjYW5JbnRlcm5hbHMgPSB2b2lkIDA7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgaGFzU2VlZCwgZW1pdE9uTmV4dCwgZW1pdEJlZm9yZUNvbXBsZXRlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaGFzU3RhdGUgPSBoYXNTZWVkOwogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGkgPSBpbmRleCsrOwogICAgICAgICAgc3RhdGUgPSBoYXNTdGF0ZSA/IGFjY3VtdWxhdG9yKHN0YXRlLCB2YWx1ZSwgaSkgOiAoaGFzU3RhdGUgPSB0cnVlLCB2YWx1ZSk7CiAgICAgICAgICBlbWl0T25OZXh0ICYmIHN1YnNjcmliZXIubmV4dChzdGF0ZSk7CiAgICAgICAgfSwgZW1pdEJlZm9yZUNvbXBsZXRlICYmIGZ1bmN0aW9uKCkgewogICAgICAgICAgaGFzU3RhdGUgJiYgc3Vic2NyaWJlci5uZXh0KHN0YXRlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5zY2FuSW50ZXJuYWxzID0gc2NhbkludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcwp2YXIgcmVxdWlyZV9yZWR1Y2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVkdWNlID0gdm9pZCAwOwogICAgdmFyIHNjYW5JbnRlcm5hbHNfMSA9IHJlcXVpcmVfc2NhbkludGVybmFscygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gcmVkdWNlKGFjY3VtdWxhdG9yLCBzZWVkKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShzY2FuSW50ZXJuYWxzXzEuc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCBmYWxzZSwgdHJ1ZSkpOwogICAgfQogICAgZXhwb3J0czIucmVkdWNlID0gcmVkdWNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdG9BcnJheS5qcwp2YXIgcmVxdWlyZV90b0FycmF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90b0FycmF5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50b0FycmF5ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBhcnJSZWR1Y2VyID0gZnVuY3Rpb24oYXJyLCB2YWx1ZSkgewogICAgICByZXR1cm4gYXJyLnB1c2godmFsdWUpLCBhcnI7CiAgICB9OwogICAgZnVuY3Rpb24gdG9BcnJheTIoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZWR1Y2VfMS5yZWR1Y2UoYXJyUmVkdWNlciwgW10pKHNvdXJjZSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRvQXJyYXkgPSB0b0FycmF5MjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2pvaW5BbGxJbnRlcm5hbHMuanMKdmFyIHJlcXVpcmVfam9pbkFsbEludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvam9pbkFsbEludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuam9pbkFsbEludGVybmFscyA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIG1hcE9uZU9yTWFueUFyZ3NfMSA9IHJlcXVpcmVfbWFwT25lT3JNYW55QXJncygpOwogICAgdmFyIHBpcGVfMSA9IHJlcXVpcmVfcGlwZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgZnVuY3Rpb24gam9pbkFsbEludGVybmFscyhqb2luRm4sIHByb2plY3QpIHsKICAgICAgcmV0dXJuIHBpcGVfMS5waXBlKHRvQXJyYXlfMTIudG9BcnJheSgpLCBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKHNvdXJjZXMpIHsKICAgICAgICByZXR1cm4gam9pbkZuKHNvdXJjZXMpOwogICAgICB9KSwgcHJvamVjdCA/IG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHByb2plY3QpIDogaWRlbnRpdHlfMS5pZGVudGl0eSk7CiAgICB9CiAgICBleHBvcnRzMi5qb2luQWxsSW50ZXJuYWxzID0gam9pbkFsbEludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdEFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUxhdGVzdEFsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IHZvaWQgMDsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIHZhciBqb2luQWxsSW50ZXJuYWxzXzEgPSByZXF1aXJlX2pvaW5BbGxJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QsIHByb2plY3QpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IGNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lQWxsLmpzCnZhciByZXF1aXJlX2NvbWJpbmVBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVBbGwgPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdEFsbF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0QWxsKCk7CiAgICBleHBvcnRzMi5jb21iaW5lQWxsID0gY29tYmluZUxhdGVzdEFsbF8xLmNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gdm9pZCAwOwogICAgdmFyIGNvbWJpbmVMYXRlc3RfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHJldHVybiByZXN1bHRTZWxlY3RvciA/IHBpcGVfMS5waXBlKGNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSwgbWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbWJpbmVMYXRlc3RfMS5jb21iaW5lTGF0ZXN0SW5pdChfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKSkpKShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gY29tYmluZUxhdGVzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RXaXRoLmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3RXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0V2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0MigpOwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJTb3VyY2VzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBjb21iaW5lTGF0ZXN0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcwp2YXIgcmVxdWlyZV9jb25jYXRNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBjb25jYXRNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSA/IG1lcmdlTWFwXzEubWVyZ2VNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IsIDEpIDogbWVyZ2VNYXBfMS5tZXJnZU1hcChwcm9qZWN0LCAxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcCA9IGNvbmNhdE1hcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcFRvLmpzCnZhciByZXF1aXJlX2NvbmNhdE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0TWFwXzEgPSByZXF1aXJlX2NvbmNhdE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gY29uY2F0TWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gY29uY2F0TWFwXzEuY29uY2F0TWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IGNvbmNhdE1hcF8xLmNvbmNhdE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gY29uY2F0TWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbmNhdEFsbF8xLmNvbmNhdEFsbCgpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb25jYXQgPSBjb25jYXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRXaXRoLmpzCnZhciByZXF1aXJlX2NvbmNhdFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdDIoKTsKICAgIGZ1bmN0aW9uIGNvbmNhdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSBjb25jYXRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMKdmFyIHJlcXVpcmVfZnJvbVN1YnNjcmliYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZyb21TdWJzY3JpYmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBmcm9tU3Vic2NyaWJhYmxlKHN1YnNjcmliYWJsZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJhYmxlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU3Vic2NyaWJhYmxlID0gZnJvbVN1YnNjcmliYWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QuanMKdmFyIHJlcXVpcmVfY29ubmVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29ubmVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29ubmVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgZnJvbVN1YnNjcmliYWJsZV8xID0gcmVxdWlyZV9mcm9tU3Vic2NyaWJhYmxlKCk7CiAgICB2YXIgREVGQVVMVF9DT05GSUcgPSB7CiAgICAgIGNvbm5lY3RvcjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gY29ubmVjdChzZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIGlmIChjb25maWcgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZyA9IERFRkFVTFRfQ09ORklHOwogICAgICB9CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZnJvbVN1YnNjcmliYWJsZV8xLmZyb21TdWJzY3JpYmFibGUoc3ViamVjdCkpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc291cmNlLnN1YnNjcmliZShzdWJqZWN0KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdCA9IGNvbm5lY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb3VudC5qcwp2YXIgcmVxdWlyZV9jb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvdW50ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIGZ1bmN0aW9uIGNvdW50KHByZWRpY2F0ZSkgewogICAgICByZXR1cm4gcmVkdWNlXzEucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB2YWx1ZSwgaSkgewogICAgICAgIHJldHVybiAhcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaSkgPyB0b3RhbCArIDEgOiB0b3RhbDsKICAgICAgfSwgMCk7CiAgICB9CiAgICBleHBvcnRzMi5jb3VudCA9IGNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2UuanMKdmFyIHJlcXVpcmVfZGVib3VuY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVib3VuY2UoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGVtaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZHVyYXRpb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbWl0LCBub29wXzEubm9vcCk7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb25TZWxlY3Rvcih2YWx1ZSkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXIpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IGRlYm91bmNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzCnZhciByZXF1aXJlX2RlYm91bmNlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWJvdW5jZVRpbWUoZHVlVGltZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFRpbWUgPSBudWxsOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSBudWxsOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUoKSB7CiAgICAgICAgICB2YXIgdGFyZ2V0VGltZSA9IGxhc3RUaW1lICsgZHVlVGltZTsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gdGhpcy5zY2hlZHVsZSh2b2lkIDAsIHRhcmdldFRpbWUgLSBub3cpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgZW1pdCgpOwogICAgICAgIH0KICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7CiAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTsKICAgICAgICAgIGlmICghYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVib3VuY2VUaW1lID0gZGVib3VuY2VUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVmYXVsdElmRW1wdHkuanMKdmFyIHJlcXVpcmVfZGVmYXVsdElmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlZmF1bHRJZkVtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWZhdWx0SWZFbXB0eShkZWZhdWx0VmFsdWUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGVmYXVsdFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdElmRW1wdHkgPSBkZWZhdWx0SWZFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2UuanMKdmFyIHJlcXVpcmVfdGFrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZSA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2UoY291bnQpIHsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgaWYgKCsrc2VlbiA8PSBjb3VudCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICBpZiAoY291bnQgPD0gc2VlbikgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlID0gdGFrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzLmpzCnZhciByZXF1aXJlX2lnbm9yZUVsZW1lbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pZ25vcmVFbGVtZW50cy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZnVuY3Rpb24gaWdub3JlRWxlbWVudHMoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlnbm9yZUVsZW1lbnRzID0gaWdub3JlRWxlbWVudHM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXBUby5qcwp2YXIgcmVxdWlyZV9tYXBUbyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcFRvID0gdm9pZCAwOwogICAgdmFyIG1hcF8xID0gcmVxdWlyZV9tYXAoKTsKICAgIGZ1bmN0aW9uIG1hcFRvKHZhbHVlKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hcFRvID0gbWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMKdmFyIHJlcXVpcmVfZGVsYXlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBjb25jYXRfMSA9IHJlcXVpcmVfY29uY2F0KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgaWdub3JlRWxlbWVudHNfMSA9IHJlcXVpcmVfaWdub3JlRWxlbWVudHMoKTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVsYXlXaGVuKGRlbGF5RHVyYXRpb25TZWxlY3Rvciwgc3Vic2NyaXB0aW9uRGVsYXkpIHsKICAgICAgaWYgKHN1YnNjcmlwdGlvbkRlbGF5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIGNvbmNhdF8xLmNvbmNhdChzdWJzY3JpcHRpb25EZWxheS5waXBlKHRha2VfMS50YWtlKDEpLCBpZ25vcmVFbGVtZW50c18xLmlnbm9yZUVsZW1lbnRzKCkpLCBzb3VyY2UucGlwZShkZWxheVdoZW4oZGVsYXlEdXJhdGlvblNlbGVjdG9yKSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShkZWxheUR1cmF0aW9uU2VsZWN0b3IodmFsdWUsIGluZGV4KSkucGlwZSh0YWtlXzEudGFrZSgxKSwgbWFwVG9fMS5tYXBUbyh2YWx1ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IGRlbGF5V2hlbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5LmpzCnZhciByZXF1aXJlX2RlbGF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVsYXkgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGRlbGF5KGR1ZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uID0gdGltZXJfMS50aW1lcihkdWUsIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGR1cmF0aW9uOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5ID0gZGVsYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZW1hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX2RlbWF0ZXJpYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbWF0ZXJpYWxpemUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGRlbWF0ZXJpYWxpemUoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihub3RpZmljYXRpb24pIHsKICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25fMS5vYnNlcnZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcik7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSBkZW1hdGVyaWFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3QuanMKdmFyIHJlcXVpcmVfZGlzdGluY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGlzdGluY3Qoa2V5U2VsZWN0b3IsIGZsdXNoZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBkaXN0aW5jdEtleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIga2V5ID0ga2V5U2VsZWN0b3IgPyBrZXlTZWxlY3Rvcih2YWx1ZSkgOiB2YWx1ZTsKICAgICAgICAgIGlmICghZGlzdGluY3RLZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgIGRpc3RpbmN0S2V5cy5hZGQoa2V5KTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgICAgZmx1c2hlcyAmJiBpbm5lckZyb21fMS5pbm5lckZyb20oZmx1c2hlcykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBkaXN0aW5jdEtleXMuY2xlYXIoKTsKICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0ID0gZGlzdGluY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZC5qcwp2YXIgcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbENoYW5nZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gdm9pZCAwOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQoY29tcGFyYXRvciwga2V5U2VsZWN0b3IpIHsKICAgICAgaWYgKGtleVNlbGVjdG9yID09PSB2b2lkIDApIHsKICAgICAgICBrZXlTZWxlY3RvciA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgIT09IG51bGwgJiYgY29tcGFyYXRvciAhPT0gdm9pZCAwID8gY29tcGFyYXRvciA6IGRlZmF1bHRDb21wYXJlOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXZpb3VzS2V5OwogICAgICAgIHZhciBmaXJzdCA9IHRydWU7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBjdXJyZW50S2V5ID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgaWYgKGZpcnN0IHx8ICFjb21wYXJhdG9yKHByZXZpb3VzS2V5LCBjdXJyZW50S2V5KSkgewogICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICBwcmV2aW91c0tleSA9IGN1cnJlbnRLZXk7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ7CiAgICBmdW5jdGlvbiBkZWZhdWx0Q29tcGFyZShhLCBiKSB7CiAgICAgIHJldHVybiBhID09PSBiOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbEtleUNoYW5nZWQuanMKdmFyIHJlcXVpcmVfZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IHZvaWQgMDsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoa2V5LCBjb21wYXJlKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkKGZ1bmN0aW9uKHgsIHkpIHsKICAgICAgICByZXR1cm4gY29tcGFyZSA/IGNvbXBhcmUoeFtrZXldLCB5W2tleV0pIDogeFtrZXldID09PSB5W2tleV07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcwp2YXIgcmVxdWlyZV90aHJvd0lmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRocm93SWZFbXB0eShlcnJvckZhY3RvcnkpIHsKICAgICAgaWYgKGVycm9yRmFjdG9yeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZXJyb3JGYWN0b3J5ID0gZGVmYXVsdEVycm9yRmFjdG9yeTsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaGFzVmFsdWUgPyBzdWJzY3JpYmVyLmNvbXBsZXRlKCkgOiBzdWJzY3JpYmVyLmVycm9yKGVycm9yRmFjdG9yeSgpKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdGhyb3dJZkVtcHR5OwogICAgZnVuY3Rpb24gZGVmYXVsdEVycm9yRmFjdG9yeSgpIHsKICAgICAgcmV0dXJuIG5ldyBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcigpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzCnZhciByZXF1aXJlX2VsZW1lbnRBdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSB2b2lkIDA7CiAgICB2YXIgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JfMSA9IHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGhyb3dJZkVtcHR5XzEgPSByZXF1aXJlX3Rocm93SWZFbXB0eSgpOwogICAgdmFyIGRlZmF1bHRJZkVtcHR5XzEgPSByZXF1aXJlX2RlZmF1bHRJZkVtcHR5KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICBmdW5jdGlvbiBlbGVtZW50QXQoaW5kZXgsIGRlZmF1bHRWYWx1ZSkgewogICAgICBpZiAoaW5kZXggPCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgfQogICAgICB2YXIgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcl8xLmZpbHRlcihmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICByZXR1cm4gaSA9PT0gaW5kZXg7CiAgICAgICAgfSksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSBlbGVtZW50QXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9lbmRXaXRoLmpzCnZhciByZXF1aXJlX2VuZFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2VuZFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVuZFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIG9mXzEgPSByZXF1aXJlX29mKCk7CiAgICBmdW5jdGlvbiBlbmRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25jYXRfMS5jb25jYXQoc291cmNlLCBvZl8xLm9mLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbmRXaXRoID0gZW5kV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5LmpzCnZhciByZXF1aXJlX2V2ZXJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9ldmVyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXZlcnkgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZXZlcnkocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpZiAoIXByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCsrLCBzb3VyY2UpKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXZlcnkgPSBldmVyeTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RNYXAuanMKdmFyIHJlcXVpcmVfZXhoYXVzdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGV4aGF1c3RNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgICByZXR1cm4gaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpLnBpcGUobWFwXzEubWFwKGZ1bmN0aW9uKGIsIGlpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yKGEsIGIsIGksIGlpKTsKICAgICAgICAgICAgfSkpOwogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgdmFyIGlubmVyU3ViID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKG91dGVyVmFsdWUpIHsKICAgICAgICAgIGlmICghaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdChvdXRlclZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKGlubmVyU3ViKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgIWlubmVyU3ViICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IGV4aGF1c3RNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsLmpzCnZhciByZXF1aXJlX2V4aGF1c3RBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSB2b2lkIDA7CiAgICB2YXIgZXhoYXVzdE1hcF8xID0gcmVxdWlyZV9leGhhdXN0TWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RBbGwoKSB7CiAgICAgIHJldHVybiBleGhhdXN0TWFwXzEuZXhoYXVzdE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSBleGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdC5qcwp2YXIgcmVxdWlyZV9leGhhdXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leGhhdXN0ID0gdm9pZCAwOwogICAgdmFyIGV4aGF1c3RBbGxfMSA9IHJlcXVpcmVfZXhoYXVzdEFsbCgpOwogICAgZXhwb3J0czIuZXhoYXVzdCA9IGV4aGF1c3RBbGxfMS5leGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzCnZhciByZXF1aXJlX2V4cGFuZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leHBhbmQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbWVyZ2VJbnRlcm5hbHNfMSA9IHJlcXVpcmVfbWVyZ2VJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGV4cGFuZChwcm9qZWN0LCBjb25jdXJyZW50LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICBjb25jdXJyZW50ID0gKGNvbmN1cnJlbnQgfHwgMCkgPCAxID8gSW5maW5pdHkgOiBjb25jdXJyZW50OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCB2b2lkIDAsIHRydWUsIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhwYW5kID0gZXhwYW5kOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUuanMKdmFyIHJlcXVpcmVfZmluYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpbmFsaXplLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIGZ1bmN0aW9uIGZpbmFsaXplKGNhbGxiYWNrKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgc3Vic2NyaWJlci5hZGQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IGZpbmFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZC5qcwp2YXIgcmVxdWlyZV9maW5kID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVGaW5kID0gZXhwb3J0czIuZmluZCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaW5kKHByZWRpY2F0ZSwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsICJ2YWx1ZSIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbmQgPSBmaW5kOwogICAgZnVuY3Rpb24gY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsIGVtaXQpIHsKICAgICAgdmFyIGZpbmRJbmRleCA9IGVtaXQgPT09ICJpbmRleCI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgaSA9IGluZGV4Kys7CiAgICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGksIHNvdXJjZSkpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZpbmRJbmRleCA/IGkgOiB2YWx1ZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyAtMSA6IHZvaWQgMCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlRmluZCA9IGNyZWF0ZUZpbmQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMKdmFyIHJlcXVpcmVfZmluZEluZGV4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbmRJbmRleCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBmaW5kXzEgPSByZXF1aXJlX2ZpbmQoKTsKICAgIGZ1bmN0aW9uIGZpbmRJbmRleChwcmVkaWNhdGUsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZpbmRfMS5jcmVhdGVGaW5kKHByZWRpY2F0ZSwgdGhpc0FyZywgImluZGV4IikpOwogICAgfQogICAgZXhwb3J0czIuZmluZEluZGV4ID0gZmluZEluZGV4OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QuanMKdmFyIHJlcXVpcmVfZmlyc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpcnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdCA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgZGVmYXVsdElmRW1wdHlfMSA9IHJlcXVpcmVfZGVmYXVsdElmRW1wdHkoKTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGZpcnN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuZmlyc3QgPSBmaXJzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2dyb3VwQnkuanMKdmFyIHJlcXVpcmVfZ3JvdXBCeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZ3JvdXBCeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ3JvdXBCeSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZ3JvdXBCeShrZXlTZWxlY3RvciwgZWxlbWVudE9yT3B0aW9ucywgZHVyYXRpb24sIGNvbm5lY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgaWYgKCFlbGVtZW50T3JPcHRpb25zIHx8IHR5cGVvZiBlbGVtZW50T3JPcHRpb25zID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9uczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZHVyYXRpb24gPSBlbGVtZW50T3JPcHRpb25zLmR1cmF0aW9uLCBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9ucy5lbGVtZW50LCBjb25uZWN0b3IgPSBlbGVtZW50T3JPcHRpb25zLmNvbm5lY3RvcjsKICAgICAgICB9CiAgICAgICAgdmFyIGdyb3VwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgdmFyIG5vdGlmeSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBncm91cHMuZm9yRWFjaChjYik7CiAgICAgICAgICBjYihzdWJzY3JpYmVyKTsKICAgICAgICB9OwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIG5vdGlmeShmdW5jdGlvbihjb25zdW1lcikgewogICAgICAgICAgICByZXR1cm4gY29uc3VtZXIuZXJyb3IoZXJyKTsKICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGFjdGl2ZUdyb3VwcyA9IDA7CiAgICAgICAgdmFyIHRlYXJkb3duQXR0ZW1wdGVkID0gZmFsc2U7CiAgICAgICAgdmFyIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyID0gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcl8xLk9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGtleV8xID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgICB2YXIgZ3JvdXBfMSA9IGdyb3Vwcy5nZXQoa2V5XzEpOwogICAgICAgICAgICBpZiAoIWdyb3VwXzEpIHsKICAgICAgICAgICAgICBncm91cHMuc2V0KGtleV8xLCBncm91cF8xID0gY29ubmVjdG9yID8gY29ubmVjdG9yKCkgOiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgICAgICAgdmFyIGdyb3VwZWQgPSBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXlfMSwgZ3JvdXBfMSk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGdyb3VwZWQpOwogICAgICAgICAgICAgIGlmIChkdXJhdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGdyb3VwXzEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBncm91cF8xLmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkdXJhdGlvblN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBzLmRlbGV0ZShrZXlfMSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb24oZ3JvdXBlZCkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXJfMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBncm91cF8xLm5leHQoZWxlbWVudCA/IGVsZW1lbnQodmFsdWUpIDogdmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbm90aWZ5KGZ1bmN0aW9uKGNvbnN1bWVyKSB7CiAgICAgICAgICAgIHJldHVybiBjb25zdW1lci5jb21wbGV0ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGdyb3Vwcy5jbGVhcigpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgdGVhcmRvd25BdHRlbXB0ZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGFjdGl2ZUdyb3VwcyA9PT0gMDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyKTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXksIGdyb3VwU3ViamVjdCkgewogICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihncm91cFN1YnNjcmliZXIpIHsKICAgICAgICAgICAgYWN0aXZlR3JvdXBzKys7CiAgICAgICAgICAgIHZhciBpbm5lclN1YiA9IGdyb3VwU3ViamVjdC5zdWJzY3JpYmUoZ3JvdXBTdWJzY3JpYmVyKTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgLS1hY3RpdmVHcm91cHMgPT09IDAgJiYgdGVhcmRvd25BdHRlbXB0ZWQgJiYgZ3JvdXBCeVNvdXJjZVN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmVzdWx0LmtleSA9IGtleTsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmdyb3VwQnkgPSBncm91cEJ5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eS5qcwp2YXIgcmVxdWlyZV9pc0VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pc0VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0VtcHR5ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGlzRW1wdHkoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJ1ZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzRW1wdHkgPSBpc0VtcHR5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZUxhc3QuanMKdmFyIHJlcXVpcmVfdGFrZUxhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2VMYXN0KGNvdW50KSB7CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgIGNvdW50IDwgYnVmZmVyLmxlbmd0aCAmJiBidWZmZXIuc2hpZnQoKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzEsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyXzEgPSBfX3ZhbHVlcyhidWZmZXIpLCBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpOyAhYnVmZmVyXzFfMS5kb25lOyBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYnVmZmVyXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICBlXzEgPSB7IGVycm9yOiBlXzFfMSB9OwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoYnVmZmVyXzFfMSAmJiAhYnVmZmVyXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcl8xLnJldHVybikpIF9hLmNhbGwoYnVmZmVyXzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHRha2VMYXN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbGFzdC5qcwp2YXIgcmVxdWlyZV9sYXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9sYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIHZhciB0YWtlTGFzdF8xID0gcmVxdWlyZV90YWtlTGFzdCgpOwogICAgdmFyIHRocm93SWZFbXB0eV8xID0gcmVxdWlyZV90aHJvd0lmRW1wdHkoKTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiBsYXN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VMYXN0XzEudGFrZUxhc3QoMSksIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5XzEuZGVmYXVsdElmRW1wdHkoZGVmYXVsdFZhbHVlKSA6IHRocm93SWZFbXB0eV8xLnRocm93SWZFbXB0eShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5sYXN0ID0gbGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX21hdGVyaWFsaXplID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hdGVyaWFsaXplKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlTmV4dCh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbi5jcmVhdGVDb21wbGV0ZSgpKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlRXJyb3IoZXJyKSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hdGVyaWFsaXplID0gbWF0ZXJpYWxpemU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMKdmFyIHJlcXVpcmVfbWF4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1heCA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtYXgoY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpID4gMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4ID4geSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1heCA9IG1heDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAuanMKdmFyIHJlcXVpcmVfZmxhdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmxhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IG1lcmdlTWFwXzEubWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcFRvLmpzCnZhciByZXF1aXJlX21lcmdlTWFwVG8gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VNYXBfMSA9IHJlcXVpcmVfbWVyZ2VNYXAoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIG1lcmdlTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgICAgfSwgcmVzdWx0U2VsZWN0b3IsIGNvbmN1cnJlbnQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIGNvbmN1cnJlbnQpOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VNYXBUbyA9IG1lcmdlTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMKdmFyIHJlcXVpcmVfbWVyZ2VTY2FuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlU2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBtZXJnZUludGVybmFsc18xID0gcmVxdWlyZV9tZXJnZUludGVybmFscygpOwogICAgZnVuY3Rpb24gbWVyZ2VTY2FuKGFjY3VtdWxhdG9yLCBzZWVkLCBjb25jdXJyZW50KSB7CiAgICAgIGlmIChjb25jdXJyZW50ID09PSB2b2lkIDApIHsKICAgICAgICBjb25jdXJyZW50ID0gSW5maW5pdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcihzdGF0ZSwgdmFsdWUsIGluZGV4KTsKICAgICAgICB9LCBjb25jdXJyZW50LCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3RhdGUgPSB2YWx1ZTsKICAgICAgICB9LCBmYWxzZSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdGF0ZSA9IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VTY2FuID0gbWVyZ2VTY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgYXJnc09yQXJnQXJyYXlfMSA9IHJlcXVpcmVfYXJnc09yQXJnQXJyYXkoKTsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gbWVyZ2UyKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIGNvbmN1cnJlbnQgPSBhcmdzXzEucG9wTnVtYmVyKGFyZ3MsIEluZmluaXR5KTsKICAgICAgYXJncyA9IGFyZ3NPckFyZ0FycmF5XzEuYXJnc09yQXJnQXJyYXkoYXJncyk7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBtZXJnZUFsbF8xLm1lcmdlQWxsKGNvbmN1cnJlbnQpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcwp2YXIgcmVxdWlyZV9tZXJnZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gdm9pZCAwOwogICAgdmFyIG1lcmdlXzEgPSByZXF1aXJlX21lcmdlMigpOwogICAgZnVuY3Rpb24gbWVyZ2VXaXRoMigpIHsKICAgICAgdmFyIG90aGVyU291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIG90aGVyU291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMKdmFyIHJlcXVpcmVfbWluID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1pbiA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtaW4oY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpIDwgMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4IDwgeSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1pbiA9IG1pbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcwp2YXIgcmVxdWlyZV9tdWx0aWNhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubXVsdGljYXN0ID0gdm9pZCAwOwogICAgdmFyIENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9Db25uZWN0YWJsZU9ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIGZ1bmN0aW9uIG11bHRpY2FzdChzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSwgc2VsZWN0b3IpIHsKICAgICAgdmFyIHN1YmplY3RGYWN0b3J5ID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc3ViamVjdE9yU3ViamVjdEZhY3RvcnkpID8gc3ViamVjdE9yU3ViamVjdEZhY3RvcnkgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc3ViamVjdE9yU3ViamVjdEZhY3Rvcnk7CiAgICAgIH07CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihzZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gY29ubmVjdF8xLmNvbm5lY3Qoc2VsZWN0b3IsIHsKICAgICAgICAgIGNvbm5lY3Rvcjogc3ViamVjdEZhY3RvcnkKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGUoc291cmNlLCBzdWJqZWN0RmFjdG9yeSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tdWx0aWNhc3QgPSBtdWx0aWNhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMKdmFyIHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHRXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgb25FcnJvclJlc3VtZU5leHRfMSA9IHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHQoKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0V2l0aCgpIHsKICAgICAgdmFyIHNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBzb3VyY2VzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIG5leHRTb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShzb3VyY2VzKTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbc291cmNlXSwgX19yZWFkKG5leHRTb3VyY2VzKSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gb25FcnJvclJlc3VtZU5leHRXaXRoOwogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHQgPSBvbkVycm9yUmVzdW1lTmV4dFdpdGg7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wYWlyd2lzZS5qcwp2YXIgcmVxdWlyZV9wYWlyd2lzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcGFpcndpc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhaXJ3aXNlID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHBhaXJ3aXNlKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXY7CiAgICAgICAgdmFyIGhhc1ByZXYgPSBmYWxzZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIHAgPSBwcmV2OwogICAgICAgICAgcHJldiA9IHZhbHVlOwogICAgICAgICAgaGFzUHJldiAmJiBzdWJzY3JpYmVyLm5leHQoW3AsIHZhbHVlXSk7CiAgICAgICAgICBoYXNQcmV2ID0gdHJ1ZTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGFpcndpc2UgPSBwYWlyd2lzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3BsdWNrLmpzCnZhciByZXF1aXJlX3BsdWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wbHVjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGx1Y2sgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgZnVuY3Rpb24gcGx1Y2soKSB7CiAgICAgIHZhciBwcm9wZXJ0aWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgcHJvcGVydGllc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBsZW5ndGggPSBwcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgaWYgKGxlbmd0aCA9PT0gMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigibGlzdCBvZiBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBlbXB0eS4iKTsKICAgICAgfQogICAgICByZXR1cm4gbWFwXzEubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICB2YXIgY3VycmVudFByb3AgPSB4OwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBwID0gY3VycmVudFByb3AgPT09IG51bGwgfHwgY3VycmVudFByb3AgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRQcm9wW3Byb3BlcnRpZXNbaV1dOwogICAgICAgICAgaWYgKHR5cGVvZiBwICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBjdXJyZW50UHJvcCA9IHA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY3VycmVudFByb3A7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGx1Y2sgPSBwbHVjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2guanMKdmFyIHJlcXVpcmVfcHVibGlzaCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBtdWx0aWNhc3RfMSA9IHJlcXVpcmVfbXVsdGljYXN0KCk7CiAgICB2YXIgY29ubmVjdF8xID0gcmVxdWlyZV9jb25uZWN0KCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBzZWxlY3RvciA/IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdChzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfSA6IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBtdWx0aWNhc3RfMS5tdWx0aWNhc3QobmV3IFN1YmplY3RfMS5TdWJqZWN0KCkpKHNvdXJjZSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoID0gcHVibGlzaDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaEJlaGF2aW9yID0gdm9pZCAwOwogICAgdmFyIEJlaGF2aW9yU3ViamVjdF8xID0gcmVxdWlyZV9CZWhhdmlvclN1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoQmVoYXZpb3IoaW5pdGlhbFZhbHVlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICB2YXIgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3QoaW5pdGlhbFZhbHVlKTsKICAgICAgICByZXR1cm4gbmV3IENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZShzb3VyY2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YmplY3Q7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoQmVoYXZpb3IgPSBwdWJsaXNoQmVoYXZpb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoTGFzdC5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoTGFzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaExhc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU3ViamVjdF8xID0gcmVxdWlyZV9Bc3luY1N1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoTGFzdCgpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlXzEuQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gc3ViamVjdDsKICAgICAgICB9KTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gcHVibGlzaExhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoUmVwbGF5LmpzCnZhciByZXF1aXJlX3B1Ymxpc2hSZXBsYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSB2b2lkIDA7CiAgICB2YXIgUmVwbGF5U3ViamVjdF8xID0gcmVxdWlyZV9SZXBsYXlTdWJqZWN0KCk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gcHVibGlzaFJlcGxheShidWZmZXJTaXplLCB3aW5kb3dUaW1lLCBzZWxlY3Rvck9yU2NoZWR1bGVyLCB0aW1lc3RhbXBQcm92aWRlcikgewogICAgICBpZiAoc2VsZWN0b3JPclNjaGVkdWxlciAmJiAhaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICB0aW1lc3RhbXBQcm92aWRlciA9IHNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIHNlbGVjdG9yID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikgPyBzZWxlY3Rvck9yU2NoZWR1bGVyIDogdm9pZCAwOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG11bHRpY2FzdF8xLm11bHRpY2FzdChuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIpLCBzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBwdWJsaXNoUmVwbGF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmFjZVdpdGguanMKdmFyIHJlcXVpcmVfcmFjZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JhY2VXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yYWNlV2l0aCA9IHZvaWQgMDsKICAgIHZhciByYWNlXzEgPSByZXF1aXJlX3JhY2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcmFjZVdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gIW90aGVyU291cmNlcy5sZW5ndGggPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmFjZV8xLnJhY2VJbml0KF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChvdGhlclNvdXJjZXMpKSkoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmFjZVdpdGggPSByYWNlV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcwp2YXIgcmVxdWlyZV9yZXBlYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVwZWF0ID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gcmVwZWF0Mihjb3VudE9yQ29uZmlnKSB7CiAgICAgIHZhciBfYTsKICAgICAgdmFyIGNvdW50ID0gSW5maW5pdHk7CiAgICAgIHZhciBkZWxheTsKICAgICAgaWYgKGNvdW50T3JDb25maWcgIT0gbnVsbCkgewogICAgICAgIGlmICh0eXBlb2YgY291bnRPckNvbmZpZyA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIF9hID0gY291bnRPckNvbmZpZy5jb3VudCwgY291bnQgPSBfYSA9PT0gdm9pZCAwID8gSW5maW5pdHkgOiBfYSwgZGVsYXkgPSBjb3VudE9yQ29uZmlnLmRlbGF5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb3VudCA9IGNvdW50T3JDb25maWc7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc29GYXIgPSAwOwogICAgICAgIHZhciBzb3VyY2VTdWI7CiAgICAgICAgdmFyIHJlc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzb3VyY2VTdWIgPT09IG51bGwgfHwgc291cmNlU3ViID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNvdXJjZVN1YiA9IG51bGw7CiAgICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCkgewogICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoc29GYXIpKTsKICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIG5vdGlmaWVyU3Vic2NyaWJlcl8xLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlVG9Tb3VyY2UoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG5vdGlmaWVyLnN1YnNjcmliZShub3RpZmllclN1YnNjcmliZXJfMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZVRvU291cmNlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBzb3VyY2VTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoKytzb0ZhciA8IGNvdW50KSB7CiAgICAgICAgICAgICAgaWYgKHNvdXJjZVN1YikgewogICAgICAgICAgICAgICAgcmVzdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Vuc3ViKSB7CiAgICAgICAgICAgIHJlc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdCA9IHJlcGVhdDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuLmpzCnZhciByZXF1aXJlX3JlcGVhdFdoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdFdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJlcGVhdFdoZW4obm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbm5lclN1YjsKICAgICAgICB2YXIgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgdmFyIGNvbXBsZXRpb25zJDsKICAgICAgICB2YXIgaXNOb3RpZmllckNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc01haW5Db21wbGV0ZSAmJiBpc05vdGlmaWVyQ29tcGxldGUgJiYgKHN1YnNjcmliZXIuY29tcGxldGUoKSwgdHJ1ZSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2V0Q29tcGxldGlvblN1YmplY3QgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghY29tcGxldGlvbnMkKSB7CiAgICAgICAgICAgIGNvbXBsZXRpb25zJCA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIoY29tcGxldGlvbnMkKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZUZvclJlcGVhdFdoZW4oKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Jlc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlzTm90aWZpZXJDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29tcGxldGlvbnMkOwogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJlcGVhdFdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgIWNoZWNrQ29tcGxldGUoKSAmJiBnZXRDb21wbGV0aW9uU3ViamVjdCgpLm5leHQoKTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIGlmIChzeW5jUmVzdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBzeW5jUmVzdWIgPSBmYWxzZTsKICAgICAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSByZXBlYXRXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnkuanMKdmFyIHJlcXVpcmVfcmV0cnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JldHJ5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXRyeSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHJldHJ5KGNvbmZpZ09yQ291bnQpIHsKICAgICAgaWYgKGNvbmZpZ09yQ291bnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZ09yQ291bnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICB2YXIgY29uZmlnOwogICAgICBpZiAoY29uZmlnT3JDb3VudCAmJiB0eXBlb2YgY29uZmlnT3JDb3VudCA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25maWcgPSBjb25maWdPckNvdW50OwogICAgICB9IGVsc2UgewogICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgIGNvdW50OiBjb25maWdPckNvdW50CiAgICAgICAgfTsKICAgICAgfQogICAgICB2YXIgX2EgPSBjb25maWcuY291bnQsIGNvdW50ID0gX2EgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2EsIGRlbGF5ID0gY29uZmlnLmRlbGF5LCBfYiA9IGNvbmZpZy5yZXNldE9uU3VjY2VzcywgcmVzZXRPblN1Y2Nlc3MgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYjsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHNvRmFyID0gMDsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJldHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChyZXNldE9uU3VjY2VzcykgewogICAgICAgICAgICAgIHNvRmFyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgaWYgKHNvRmFyKysgPCBjb3VudCkgewogICAgICAgICAgICAgIHZhciByZXN1Yl8xID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChkZWxheSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoZXJyLCBzb0ZhcikpOwogICAgICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBub3RpZmllclN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBub3RpZmllci5zdWJzY3JpYmUobm90aWZpZXJTdWJzY3JpYmVyXzEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgICAgaWYgKHN5bmNVbnN1YikgewogICAgICAgICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpOwogICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5KCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJldHJ5ID0gcmV0cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMKdmFyIHJlcXVpcmVfcmV0cnlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJldHJ5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gcmV0cnlXaGVuKG5vdGlmaWVyKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN5bmNSZXN1YiA9IGZhbHNlOwogICAgICAgIHZhciBlcnJvcnMkOwogICAgICAgIHZhciBzdWJzY3JpYmVGb3JSZXRyeVdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlubmVyU3ViID0gc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpZiAoIWVycm9ycyQpIHsKICAgICAgICAgICAgICBlcnJvcnMkID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKG5vdGlmaWVyKGVycm9ycyQpKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyU3ViID8gc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCkgOiBzeW5jUmVzdWIgPSB0cnVlOwogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZXJyb3JzJCkgewogICAgICAgICAgICAgIGVycm9ycyQubmV4dChlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Jlc3ViKSB7CiAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGlubmVyU3ViID0gbnVsbDsKICAgICAgICAgICAgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmV0cnlXaGVuID0gcmV0cnlXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzCnZhciByZXF1aXJlX3NhbXBsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNhbXBsZShub3RpZmllcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIHZhbHVlID0gbGFzdFZhbHVlOwogICAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2FtcGxlID0gc2FtcGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlVGltZS5qcwp2YXIgcmVxdWlyZV9zYW1wbGVUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgc2FtcGxlXzEgPSByZXF1aXJlX3NhbXBsZSgpOwogICAgdmFyIGludGVydmFsXzEgPSByZXF1aXJlX2ludGVydmFsKCk7CiAgICBmdW5jdGlvbiBzYW1wbGVUaW1lKHBlcmlvZCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZShpbnRlcnZhbF8xLmludGVydmFsKHBlcmlvZCwgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gc2FtcGxlVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBzY2FuSW50ZXJuYWxzXzEgPSByZXF1aXJlX3NjYW5JbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIHNjYW4oYWNjdW11bGF0b3IsIHNlZWQpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKHNjYW5JbnRlcm5hbHNfMS5zY2FuSW50ZXJuYWxzKGFjY3VtdWxhdG9yLCBzZWVkLCBhcmd1bWVudHMubGVuZ3RoID49IDIsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjYW4gPSBzY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2VxdWVuY2VFcXVhbC5qcwp2YXIgcmVxdWlyZV9zZXF1ZW5jZUVxdWFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zZXF1ZW5jZUVxdWFsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zZXF1ZW5jZUVxdWFsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBzZXF1ZW5jZUVxdWFsKGNvbXBhcmVUbywgY29tcGFyYXRvcikgewogICAgICBpZiAoY29tcGFyYXRvciA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29tcGFyYXRvciA9IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgIHJldHVybiBhID09PSBiOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBiU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oaXNFcXVhbCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGlzRXF1YWwpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIGNyZWF0ZVN1YnNjcmliZXIgPSBmdW5jdGlvbihzZWxmU3RhdGUsIG90aGVyU3RhdGUpIHsKICAgICAgICAgIHZhciBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihhKSB7CiAgICAgICAgICAgIHZhciBidWZmZXIgPSBvdGhlclN0YXRlLmJ1ZmZlciwgY29tcGxldGUgPSBvdGhlclN0YXRlLmNvbXBsZXRlOwogICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGNvbXBsZXRlID8gZW1pdChmYWxzZSkgOiBzZWxmU3RhdGUuYnVmZmVyLnB1c2goYSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIWNvbXBhcmF0b3IoYSwgYnVmZmVyLnNoaWZ0KCkpICYmIGVtaXQoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZlN0YXRlLmNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgdmFyIGNvbXBsZXRlID0gb3RoZXJTdGF0ZS5jb21wbGV0ZSwgYnVmZmVyID0gb3RoZXJTdGF0ZS5idWZmZXI7CiAgICAgICAgICAgIGNvbXBsZXRlICYmIGVtaXQoYnVmZmVyLmxlbmd0aCA9PT0gMCk7CiAgICAgICAgICAgIHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSBudWxsIHx8IHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gc2VxdWVuY2VFcXVhbFN1YnNjcmliZXI7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZVN1YnNjcmliZXIoYVN0YXRlLCBiU3RhdGUpKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY29tcGFyZVRvKS5zdWJzY3JpYmUoY3JlYXRlU3Vic2NyaWJlcihiU3RhdGUsIGFTdGF0ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNlcXVlbmNlRXF1YWwgPSBzZXF1ZW5jZUVxdWFsOwogICAgZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgYnVmZmVyOiBbXSwKICAgICAgICBjb21wbGV0ZTogZmFsc2UKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlLmpzCnZhciByZXF1aXJlX3NoYXJlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hhcmUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc2hhcmUob3B0aW9ucykgewogICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIHZhciBfYSA9IG9wdGlvbnMuY29ubmVjdG9yLCBjb25uZWN0b3IgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9IDogX2EsIF9iID0gb3B0aW9ucy5yZXNldE9uRXJyb3IsIHJlc2V0T25FcnJvciA9IF9iID09PSB2b2lkIDAgPyB0cnVlIDogX2IsIF9jID0gb3B0aW9ucy5yZXNldE9uQ29tcGxldGUsIHJlc2V0T25Db21wbGV0ZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gb3B0aW9ucy5yZXNldE9uUmVmQ291bnRaZXJvLCByZXNldE9uUmVmQ291bnRaZXJvID0gX2QgPT09IHZvaWQgMCA/IHRydWUgOiBfZDsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHdyYXBwZXJTb3VyY2UpIHsKICAgICAgICB2YXIgY29ubmVjdGlvbjsKICAgICAgICB2YXIgcmVzZXRDb25uZWN0aW9uOwogICAgICAgIHZhciBzdWJqZWN0OwogICAgICAgIHZhciByZWZDb3VudCA9IDA7CiAgICAgICAgdmFyIGhhc0NvbXBsZXRlZCA9IGZhbHNlOwogICAgICAgIHZhciBoYXNFcnJvcmVkID0gZmFsc2U7CiAgICAgICAgdmFyIGNhbmNlbFJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXNldENvbm5lY3Rpb24gPT09IG51bGwgfHwgcmVzZXRDb25uZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldENvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IHZvaWQgMDsKICAgICAgICB9OwogICAgICAgIHZhciByZXNldCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgIGNvbm5lY3Rpb24gPSBzdWJqZWN0ID0gdm9pZCAwOwogICAgICAgICAgaGFzQ29tcGxldGVkID0gaGFzRXJyb3JlZCA9IGZhbHNlOwogICAgICAgIH07CiAgICAgICAgdmFyIHJlc2V0QW5kVW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBjb25uID0gY29ubmVjdGlvbjsKICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICBjb25uID09PSBudWxsIHx8IGNvbm4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbm4udW5zdWJzY3JpYmUoKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICAgIHJlZkNvdW50Kys7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yZWQgJiYgIWhhc0NvbXBsZXRlZCkgewogICAgICAgICAgICBjYW5jZWxSZXNldCgpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlc3QgPSBzdWJqZWN0ID0gc3ViamVjdCAhPT0gbnVsbCAmJiBzdWJqZWN0ICE9PSB2b2lkIDAgPyBzdWJqZWN0IDogY29ubmVjdG9yKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmVmQ291bnQtLTsKICAgICAgICAgICAgaWYgKHJlZkNvdW50ID09PSAwICYmICFoYXNFcnJvcmVkICYmICFoYXNDb21wbGV0ZWQpIHsKICAgICAgICAgICAgICByZXNldENvbm5lY3Rpb24gPSBoYW5kbGVSZXNldChyZXNldEFuZFVuc3Vic2NyaWJlLCByZXNldE9uUmVmQ291bnRaZXJvKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBkZXN0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIGlmICghY29ubmVjdGlvbiAmJiByZWZDb3VudCA+IDApIHsKICAgICAgICAgICAgY29ubmVjdGlvbiA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIGhhc0Vycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uRXJyb3IsIGVycik7CiAgICAgICAgICAgICAgICBkZXN0LmVycm9yKGVycik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBoYXNDb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uQ29tcGxldGUpOwogICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpLnN1YnNjcmliZShjb25uZWN0aW9uKTsKICAgICAgICAgIH0KICAgICAgICB9KSh3cmFwcGVyU291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnNoYXJlID0gc2hhcmU7CiAgICBmdW5jdGlvbiBoYW5kbGVSZXNldChyZXNldCwgb24pIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gdHJ1ZSkgewogICAgICAgIHJlc2V0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gZmFsc2UpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIG9uU3Vic2NyaWJlciA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICByZXNldCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20ob24uYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSkuc3Vic2NyaWJlKG9uU3Vic2NyaWJlcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheS5qcwp2YXIgcmVxdWlyZV9zaGFyZVJlcGxheSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2hhcmVSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNoYXJlUmVwbGF5ID0gdm9pZCAwOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgdmFyIHNoYXJlXzEgPSByZXF1aXJlX3NoYXJlKCk7CiAgICBmdW5jdGlvbiBzaGFyZVJlcGxheShjb25maWdPckJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHNjaGVkdWxlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIGJ1ZmZlclNpemU7CiAgICAgIHZhciByZWZDb3VudCA9IGZhbHNlOwogICAgICBpZiAoY29uZmlnT3JCdWZmZXJTaXplICYmIHR5cGVvZiBjb25maWdPckJ1ZmZlclNpemUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgX2EgPSBjb25maWdPckJ1ZmZlclNpemUuYnVmZmVyU2l6ZSwgYnVmZmVyU2l6ZSA9IF9hID09PSB2b2lkIDAgPyBJbmZpbml0eSA6IF9hLCBfYiA9IGNvbmZpZ09yQnVmZmVyU2l6ZS53aW5kb3dUaW1lLCB3aW5kb3dUaW1lID0gX2IgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2IsIF9jID0gY29uZmlnT3JCdWZmZXJTaXplLnJlZkNvdW50LCByZWZDb3VudCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBzY2hlZHVsZXIgPSBjb25maWdPckJ1ZmZlclNpemUuc2NoZWR1bGVyOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZmZlclNpemUgPSBjb25maWdPckJ1ZmZlclNpemUgIT09IG51bGwgJiYgY29uZmlnT3JCdWZmZXJTaXplICE9PSB2b2lkIDAgPyBjb25maWdPckJ1ZmZlclNpemUgOiBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZSh7CiAgICAgICAgY29ubmVjdG9yOiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKTsKICAgICAgICB9LAogICAgICAgIHJlc2V0T25FcnJvcjogdHJ1ZSwKICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLAogICAgICAgIHJlc2V0T25SZWZDb3VudFplcm86IHJlZkNvdW50CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2hhcmVSZXBsYXkgPSBzaGFyZVJlcGxheTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcwp2YXIgcmVxdWlyZV9zaW5nbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2luZ2xlID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgdmFyIE5vdEZvdW5kRXJyb3JfMSA9IHJlcXVpcmVfTm90Rm91bmRFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNpbmdsZShwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHZhciBzaW5nbGVWYWx1ZTsKICAgICAgICB2YXIgc2VlblZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc2VlblZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKywgc291cmNlKSkgewogICAgICAgICAgICBoYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLmVycm9yKG5ldyBTZXF1ZW5jZUVycm9yXzEuU2VxdWVuY2VFcnJvcigiVG9vIG1hbnkgbWF0Y2hpbmcgdmFsdWVzIikpOwogICAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICAgIHNpbmdsZVZhbHVlID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHNpbmdsZVZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihzZWVuVmFsdWUgPyBuZXcgTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3IoIk5vIG1hdGNoaW5nIHZhbHVlcyIpIDogbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zaW5nbGUgPSBzaW5nbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwLmpzCnZhciByZXF1aXJlX3NraXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXAgPSB2b2lkIDA7CiAgICB2YXIgZmlsdGVyXzEgPSByZXF1aXJlX2ZpbHRlcigpOwogICAgZnVuY3Rpb24gc2tpcChjb3VudCkgewogICAgICByZXR1cm4gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKF8sIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGNvdW50IDw9IGluZGV4OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNraXAgPSBza2lwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcExhc3QuanMKdmFyIHJlcXVpcmVfc2tpcExhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5za2lwTGFzdCA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNraXBMYXN0KHNraXBDb3VudCkgewogICAgICByZXR1cm4gc2tpcENvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHJpbmcgPSBuZXcgQXJyYXkoc2tpcENvdW50KTsKICAgICAgICB2YXIgc2VlbiA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gc2VlbisrOwogICAgICAgICAgaWYgKHZhbHVlSW5kZXggPCBza2lwQ291bnQpIHsKICAgICAgICAgICAgcmluZ1t2YWx1ZUluZGV4XSA9IHZhbHVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGluZGV4ID0gdmFsdWVJbmRleCAlIHNraXBDb3VudDsKICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gcmluZ1tpbmRleF07CiAgICAgICAgICAgIHJpbmdbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChvbGRWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJpbmcgPSBudWxsOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcExhc3QgPSBza2lwTGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcwp2YXIgcmVxdWlyZV9za2lwVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2tpcFVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiBza2lwVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB0YWtpbmcgPSBmYWxzZTsKICAgICAgICB2YXIgc2tpcFN1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBza2lwU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBza2lwU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2tpcFN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRha2luZyA9IHRydWU7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKHNraXBTdWJzY3JpYmVyKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRha2luZyAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5za2lwVW50aWwgPSBza2lwVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMKdmFyIHJlcXVpcmVfc2tpcFdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXBXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBza2lwV2hpbGUocHJlZGljYXRlKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgdGFraW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuICh0YWtpbmcgfHwgKHRha2luZyA9ICFwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspKSkgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcFdoaWxlID0gc2tpcFdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzCnZhciByZXF1aXJlX3N0YXJ0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdGFydFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3RhcnRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIodmFsdWVzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIChzY2hlZHVsZXIgPyBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UsIHNjaGVkdWxlcikgOiBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc3RhcnRXaXRoID0gc3RhcnRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaE1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBjaGVja0NvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaXNDb21wbGV0ZSAmJiAhaW5uZXJTdWJzY3JpYmVyICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpbm5lclN1YnNjcmliZXIgPT09IG51bGwgfHwgaW5uZXJTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbm5lclN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBpbm5lckluZGV4ID0gMDsKICAgICAgICAgIHZhciBvdXRlckluZGV4ID0gaW5kZXgrKzsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShwcm9qZWN0KHZhbHVlLCBvdXRlckluZGV4KSkuc3Vic2NyaWJlKGlubmVyU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihpbm5lclZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQocmVzdWx0U2VsZWN0b3IgPyByZXN1bHRTZWxlY3Rvcih2YWx1ZSwgaW5uZXJWYWx1ZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCsrKSA6IGlubmVyVmFsdWUpOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSBzd2l0Y2hNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMKdmFyIHJlcXVpcmVfc3dpdGNoQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHZvaWQgMDsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaEFsbCgpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcF8xLnN3aXRjaE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHN3aXRjaEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc3dpdGNoTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gc3dpdGNoTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gc3dpdGNoTWFwXzEuc3dpdGNoTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IHN3aXRjaE1hcF8xLnN3aXRjaE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gc3dpdGNoTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuLmpzCnZhciByZXF1aXJlX3N3aXRjaFNjYW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaFNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaFNjYW4gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3dpdGNoU2NhbihhY2N1bXVsYXRvciwgc2VlZCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN0YXRlID0gc2VlZDsKICAgICAgICBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCk7CiAgICAgICAgfSwgZnVuY3Rpb24oXywgaW5uZXJWYWx1ZSkgewogICAgICAgICAgcmV0dXJuIHN0YXRlID0gaW5uZXJWYWx1ZSwgaW5uZXJWYWx1ZTsKICAgICAgICB9KShzb3VyY2UpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGF0ZSA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hTY2FuID0gc3dpdGNoU2NhbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcwp2YXIgcmVxdWlyZV90YWtlVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZVVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiB0YWtlVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICAhc3Vic2NyaWJlci5jbG9zZWQgJiYgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlVW50aWwgPSB0YWtlVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMKdmFyIHJlcXVpcmVfdGFrZVdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRha2VXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB0YWtlV2hpbGUocHJlZGljYXRlLCBpbmNsdXNpdmUpIHsKICAgICAgaWYgKGluY2x1c2l2ZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgaW5jbHVzaXZlID0gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspOwogICAgICAgICAgKHJlc3VsdCB8fCBpbmNsdXNpdmUpICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAhcmVzdWx0ICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGFrZVdoaWxlID0gdGFrZVdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzCnZhciByZXF1aXJlX3RhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YXAgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiB0YXAob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICB2YXIgdGFwT2JzZXJ2ZXIgPSBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgZXJyb3IgfHwgY29tcGxldGUgPyB7IG5leHQ6IG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUgfSA6IG9ic2VydmVyT3JOZXh0OwogICAgICByZXR1cm4gdGFwT2JzZXJ2ZXIgPyBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgKF9hID0gdGFwT2JzZXJ2ZXIuc3Vic2NyaWJlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgdmFyIGlzVW5zdWIgPSB0cnVlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIHZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgaXNVbnN1YiA9IGZhbHNlOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hMi5jYWxsKHRhcE9ic2VydmVyKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHZhciBfYTI7CiAgICAgICAgICBpc1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICAoX2EyID0gdGFwT2JzZXJ2ZXIuZXJyb3IpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyLCBfYjsKICAgICAgICAgIGlmIChpc1Vuc3ViKSB7CiAgICAgICAgICAgIChfYTIgPSB0YXBPYnNlcnZlci51bnN1YnNjcmliZSkgPT09IG51bGwgfHwgX2EyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYTIuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgICB9CiAgICAgICAgICAoX2IgPSB0YXBPYnNlcnZlci5maW5hbGl6ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGFwT2JzZXJ2ZXIpOwogICAgICAgIH0pKTsKICAgICAgfSkgOiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfQogICAgZXhwb3J0czIudGFwID0gdGFwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGUuanMKdmFyIHJlcXVpcmVfdGhyb3R0bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gdGhyb3R0bGUoZHVyYXRpb25TZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSBjb25maWcgIT09IG51bGwgJiYgY29uZmlnICE9PSB2b2lkIDAgPyBjb25maWcgOiB7fSwgX2IgPSBfYS5sZWFkaW5nLCBsZWFkaW5nID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBfYS50cmFpbGluZywgdHJhaWxpbmcgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYzsKICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICB2YXIgc2VuZFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBlbmRUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0aHJvdHRsZWQgPT09IG51bGwgfHwgdGhyb3R0bGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aHJvdHRsZWQudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRocm90dGxlZCA9IG51bGw7CiAgICAgICAgICBpZiAodHJhaWxpbmcpIHsKICAgICAgICAgICAgc2VuZCgpOwogICAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwVGhyb3R0bGluZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0VGhyb3R0bGUgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRocm90dGxlZCA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmRUaHJvdHRsaW5nLCBjbGVhbnVwVGhyb3R0bGluZykpOwogICAgICAgIH07CiAgICAgICAgdmFyIHNlbmQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBzZW5kVmFsdWU7CiAgICAgICAgICAgIHNlbmRWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICFpc0NvbXBsZXRlICYmIHN0YXJ0VGhyb3R0bGUodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHNlbmRWYWx1ZSA9IHZhbHVlOwogICAgICAgICAgISh0aHJvdHRsZWQgJiYgIXRocm90dGxlZC5jbG9zZWQpICYmIChsZWFkaW5nID8gc2VuZCgpIDogc3RhcnRUaHJvdHRsZSh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaXNDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAhKHRyYWlsaW5nICYmIGhhc1ZhbHVlICYmIHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHRocm90dGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzCnZhciByZXF1aXJlX3Rocm90dGxlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aHJvdHRsZV8xID0gcmVxdWlyZV90aHJvdHRsZSgpOwogICAgdmFyIHRpbWVyXzEgPSByZXF1aXJlX3RpbWVyKCk7CiAgICBmdW5jdGlvbiB0aHJvdHRsZVRpbWUoZHVyYXRpb24sIHNjaGVkdWxlciwgY29uZmlnKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uJCA9IHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiB0aHJvdHRsZV8xLnRocm90dGxlKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkdXJhdGlvbiQ7CiAgICAgIH0sIGNvbmZpZyk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB0aHJvdHRsZVRpbWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfdGltZUludGVydmFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRpbWVJbnRlcnZhbChzY2hlZHVsZXIpIHsKICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGxhc3QgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICB2YXIgaW50ZXJ2YWwgPSBub3cgLSBsYXN0OwogICAgICAgICAgbGFzdCA9IG5vdzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuZXcgVGltZUludGVydmFsKHZhbHVlLCBpbnRlcnZhbCkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aW1lSW50ZXJ2YWwgPSB0aW1lSW50ZXJ2YWw7CiAgICB2YXIgVGltZUludGVydmFsID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBUaW1lSW50ZXJ2YWwyKHZhbHVlLCBpbnRlcnZhbCkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7CiAgICAgIH0KICAgICAgcmV0dXJuIFRpbWVJbnRlcnZhbDI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5UaW1lSW50ZXJ2YWwgPSBUaW1lSW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lb3V0V2l0aC5qcwp2YXIgcmVxdWlyZV90aW1lb3V0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgaXNEYXRlXzEgPSByZXF1aXJlX2lzRGF0ZSgpOwogICAgdmFyIHRpbWVvdXRfMSA9IHJlcXVpcmVfdGltZW91dCgpOwogICAgZnVuY3Rpb24gdGltZW91dFdpdGgoZHVlLCB3aXRoT2JzZXJ2YWJsZSwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBmaXJzdDsKICAgICAgdmFyIGVhY2g7CiAgICAgIHZhciBfd2l0aDsKICAgICAgc2NoZWR1bGVyID0gc2NoZWR1bGVyICE9PSBudWxsICYmIHNjaGVkdWxlciAhPT0gdm9pZCAwID8gc2NoZWR1bGVyIDogYXN5bmNfMS5hc3luYzsKICAgICAgaWYgKGlzRGF0ZV8xLmlzVmFsaWREYXRlKGR1ZSkpIHsKICAgICAgICBmaXJzdCA9IGR1ZTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVlID09PSAibnVtYmVyIikgewogICAgICAgIGVhY2ggPSBkdWU7CiAgICAgIH0KICAgICAgaWYgKHdpdGhPYnNlcnZhYmxlKSB7CiAgICAgICAgX3dpdGggPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB3aXRoT2JzZXJ2YWJsZTsKICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG9ic2VydmFibGUgcHJvdmlkZWQgdG8gc3dpdGNoIHRvIik7CiAgICAgIH0KICAgICAgaWYgKGZpcnN0ID09IG51bGwgJiYgZWFjaCA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gdGltZW91dCBwcm92aWRlZC4iKTsKICAgICAgfQogICAgICByZXR1cm4gdGltZW91dF8xLnRpbWVvdXQoewogICAgICAgIGZpcnN0LAogICAgICAgIGVhY2gsCiAgICAgICAgc2NoZWR1bGVyLAogICAgICAgIHdpdGg6IF93aXRoCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dFdpdGggPSB0aW1lb3V0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcwp2YXIgcmVxdWlyZV90aW1lc3RhbXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXN0YW1wID0gdm9pZCAwOwogICAgdmFyIGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9kYXRlVGltZXN0YW1wUHJvdmlkZXIoKTsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICBmdW5jdGlvbiB0aW1lc3RhbXAyKHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIGlmICh0aW1lc3RhbXBQcm92aWRlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMS5kYXRlVGltZXN0YW1wUHJvdmlkZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB7IHZhbHVlLCB0aW1lc3RhbXA6IHRpbWVzdGFtcFByb3ZpZGVyLm5vdygpIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZXN0YW1wID0gdGltZXN0YW1wMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcwp2YXIgcmVxdWlyZV93aW5kb3cgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93ID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiB3aW5kb3cyKHdpbmRvd0JvdW5kYXJpZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB3aW5kb3dTdWJqZWN0ID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93U3ViamVjdCA9PT0gbnVsbCB8fCB3aW5kb3dTdWJqZWN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3dTdWJqZWN0Lm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIGVycm9ySGFuZGxlcikpOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbSh3aW5kb3dCb3VuZGFyaWVzKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3AsIGVycm9ySGFuZGxlcikpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QgPT09IG51bGwgfHwgd2luZG93U3ViamVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93U3ViamVjdC51bnN1YnNjcmliZSgpOwogICAgICAgICAgd2luZG93U3ViamVjdCA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3cgPSB3aW5kb3cyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93Q291bnQuanMKdmFyIHJlcXVpcmVfd2luZG93Q291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd0NvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi53aW5kb3dDb3VudCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dDb3VudCh3aW5kb3dTaXplLCBzdGFydFdpbmRvd0V2ZXJ5KSB7CiAgICAgIGlmIChzdGFydFdpbmRvd0V2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydFdpbmRvd0V2ZXJ5ID0gMDsKICAgICAgfQogICAgICB2YXIgc3RhcnRFdmVyeSA9IHN0YXJ0V2luZG93RXZlcnkgPiAwID8gc3RhcnRXaW5kb3dFdmVyeSA6IHdpbmRvd1NpemU7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtuZXcgU3ViamVjdF8xLlN1YmplY3QoKV07CiAgICAgICAgdmFyIHN0YXJ0cyA9IFtdOwogICAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd3NbMF0uYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAodmFyIHdpbmRvd3NfMSA9IF9fdmFsdWVzKHdpbmRvd3MpLCB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCk7ICF3aW5kb3dzXzFfMS5kb25lOyB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICB2YXIgd2luZG93XzEgPSB3aW5kb3dzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NfMV8xICYmICF3aW5kb3dzXzFfMS5kb25lICYmIChfYSA9IHdpbmRvd3NfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYyA9IGNvdW50IC0gd2luZG93U2l6ZSArIDE7CiAgICAgICAgICBpZiAoYyA+PSAwICYmIGMgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCsrY291bnQgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMiA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93XzIpOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQod2luZG93XzIuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKHdpbmRvd3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdoaWxlICh3aW5kb3dzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgd2luZG93cy5zaGlmdCgpLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGFydHMgPSBudWxsOwogICAgICAgICAgd2luZG93cyA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpbmRvd0NvdW50ID0gd2luZG93Q291bnQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUaW1lLmpzCnZhciByZXF1aXJlX3dpbmRvd1RpbWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1RpbWUgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dUaW1lKHdpbmRvd1RpbWVTcGFuKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciBvdGhlckFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlckFyZ3NbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IChfYSA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIob3RoZXJBcmdzKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgdmFyIHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgPSAoX2IgPSBvdGhlckFyZ3NbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7CiAgICAgIHZhciBtYXhXaW5kb3dTaXplID0gb3RoZXJBcmdzWzFdIHx8IEluZmluaXR5OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHdpbmRvd1JlY29yZHMgPSBbXTsKICAgICAgICB2YXIgcmVzdGFydE9uQ2xvc2UgPSBmYWxzZTsKICAgICAgICB2YXIgY2xvc2VXaW5kb3cgPSBmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gcmVjb3JkLndpbmRvdywgc3VicyA9IHJlY29yZC5zdWJzOwogICAgICAgICAgd2luZG93Mi5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vicy51bnN1YnNjcmliZSgpOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKHdpbmRvd1JlY29yZHMsIHJlY29yZCk7CiAgICAgICAgICByZXN0YXJ0T25DbG9zZSAmJiBzdGFydFdpbmRvdygpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0V2luZG93ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93UmVjb3JkcykgewogICAgICAgICAgICB2YXIgc3VicyA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoc3Vicyk7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgd2luZG93OiB3aW5kb3dfMSwKICAgICAgICAgICAgICBzdWJzLAogICAgICAgICAgICAgIHNlZW46IDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93UmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd18xLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGNsb3NlV2luZG93KHJlY29yZF8xKTsKICAgICAgICAgICAgfSwgd2luZG93VGltZVNwYW4pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaWYgKHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgd2luZG93Q3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7CiAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBzdGFydFdpbmRvdywgd2luZG93Q3JlYXRpb25JbnRlcnZhbCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3RhcnRPbkNsb3NlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3RhcnRXaW5kb3coKTsKICAgICAgICB2YXIgbG9vcCA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93UmVjb3Jkcy5zbGljZSgpLmZvckVhY2goY2IpOwogICAgICAgIH07CiAgICAgICAgdmFyIHRlcm1pbmF0ZSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBsb29wKGZ1bmN0aW9uKF9hMikgewogICAgICAgICAgICB2YXIgd2luZG93MiA9IF9hMi53aW5kb3c7CiAgICAgICAgICAgIHJldHVybiBjYih3aW5kb3cyKTsKICAgICAgICAgIH0pOwogICAgICAgICAgY2Ioc3Vic2NyaWJlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbG9vcChmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgICAgcmVjb3JkLndpbmRvdy5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgbWF4V2luZG93U2l6ZSA8PSArK3JlY29yZC5zZWVuICYmIGNsb3NlV2luZG93KHJlY29yZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmNvbXBsZXRlKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmVycm9yKGVycik7CiAgICAgICAgICB9KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93UmVjb3JkcyA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUaW1lID0gd2luZG93VGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcwp2YXIgcmVxdWlyZV93aW5kb3dUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93VG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1RvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtdOwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93Mik7CiAgICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgIHZhciBjbG9zZVdpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUod2luZG93cywgd2luZG93Mik7CiAgICAgICAgICAgIHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgICAgY2xvc2luZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24uYWRkKGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGNsb3NlV2luZG93LCBub29wXzEubm9vcCwgaGFuZGxlRXJyb3IpKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB2YXIgd2luZG93c0NvcHkgPSB3aW5kb3dzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciB3aW5kb3dzQ29weV8xID0gX192YWx1ZXMod2luZG93c0NvcHkpLCB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKTsgIXdpbmRvd3NDb3B5XzFfMS5kb25lOyB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IHdpbmRvd3NDb3B5XzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NDb3B5XzFfMSAmJiAhd2luZG93c0NvcHlfMV8xLmRvbmUgJiYgKF9hID0gd2luZG93c0NvcHlfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBoYW5kbGVFcnJvciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoMCA8IHdpbmRvd3MubGVuZ3RoKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUb2dnbGUgPSB3aW5kb3dUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dXaGVuLmpzCnZhciByZXF1aXJlX3dpbmRvd1doZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1doZW4gPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1doZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93MjsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXI7CiAgICAgICAgdmFyIGhhbmRsZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICB3aW5kb3cyLmVycm9yKGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfTsKICAgICAgICB2YXIgb3BlbldpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID09PSBudWxsIHx8IHdpbmRvdzIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgIHdpbmRvdzIgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKCkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoY2xvc2luZ1N1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgb3BlbldpbmRvdywgb3BlbldpbmRvdywgaGFuZGxlRXJyb3IpKTsKICAgICAgICB9OwogICAgICAgIG9wZW5XaW5kb3coKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHdpbmRvdzIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aW5kb3cyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIud2luZG93V2hlbiA9IHdpbmRvd1doZW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aXRoTGF0ZXN0RnJvbS5qcwp2YXIgcmVxdWlyZV93aXRoTGF0ZXN0RnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2l0aExhdGVzdEZyb20uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIGZ1bmN0aW9uIHdpdGhMYXRlc3RGcm9tKCkgewogICAgICB2YXIgaW5wdXRzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgaW5wdXRzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHByb2plY3QgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoaW5wdXRzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBsZW4gPSBpbnB1dHMubGVuZ3RoOwogICAgICAgIHZhciBvdGhlclZhbHVlcyA9IG5ldyBBcnJheShsZW4pOwogICAgICAgIHZhciBoYXNWYWx1ZSA9IGlucHV0cy5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHJlYWR5ID0gZmFsc2U7CiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbihpMikgewogICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKGlucHV0c1tpMl0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgb3RoZXJWYWx1ZXNbaTJdID0gdmFsdWU7CiAgICAgICAgICAgIGlmICghcmVhZHkgJiYgIWhhc1ZhbHVlW2kyXSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlW2kyXSA9IHRydWU7CiAgICAgICAgICAgICAgKHJlYWR5ID0gaGFzVmFsdWUuZXZlcnkoaWRlbnRpdHlfMS5pZGVudGl0eSkpICYmIChoYXNWYWx1ZSA9IG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgX2xvb3BfMShpKTsKICAgICAgICB9CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmIChyZWFkeSkgewogICAgICAgICAgICB2YXIgdmFsdWVzID0gX19zcHJlYWRBcnJheShbdmFsdWVdLCBfX3JlYWQob3RoZXJWYWx1ZXMpKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QgPyBwcm9qZWN0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSA6IHZhbHVlcyk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gd2l0aExhdGVzdEZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMKdmFyIHJlcXVpcmVfemlwQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcEFsbCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgam9pbkFsbEludGVybmFsc18xID0gcmVxdWlyZV9qb2luQWxsSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiB6aXBBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoemlwXzEuemlwLCBwcm9qZWN0KTsKICAgIH0KICAgIGV4cG9ydHMyLnppcEFsbCA9IHppcEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3ppcC5qcwp2YXIgcmVxdWlyZV96aXAyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiB6aXAoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoc291cmNlcykpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuemlwID0gemlwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvemlwV2l0aC5qcwp2YXIgcmVxdWlyZV96aXBXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi56aXBXaXRoID0gdm9pZCAwOwogICAgdmFyIHppcF8xID0gcmVxdWlyZV96aXAyKCk7CiAgICBmdW5jdGlvbiB6aXBXaXRoKCkgewogICAgICB2YXIgb3RoZXJJbnB1dHMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlcklucHV0c1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJJbnB1dHMpKSk7CiAgICB9CiAgICBleHBvcnRzMi56aXBXaXRoID0gemlwV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW5kZXguanMKdmFyIHJlcXVpcmVfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBtW2tdOwogICAgICB9IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbCA9IGV4cG9ydHMyLmlpZiA9IGV4cG9ydHMyLmdlbmVyYXRlID0gZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IGV4cG9ydHMyLmZyb21FdmVudCA9IGV4cG9ydHMyLmZyb20gPSBleHBvcnRzMi5mb3JrSm9pbiA9IGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuZGVmZXIgPSBleHBvcnRzMi5jb25uZWN0YWJsZSA9IGV4cG9ydHMyLmNvbmNhdCA9IGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gZXhwb3J0czIuYmluZENhbGxiYWNrID0gZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGV4cG9ydHMyLlNlcXVlbmNlRXJyb3IgPSBleHBvcnRzMi5PYmplY3RVbnN1YnNjcmliZWRFcnJvciA9IGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBleHBvcnRzMi5FbXB0eUVycm9yID0gZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IGV4cG9ydHMyLmxhc3RWYWx1ZUZyb20gPSBleHBvcnRzMi5pc09ic2VydmFibGUgPSBleHBvcnRzMi5pZGVudGl0eSA9IGV4cG9ydHMyLm5vb3AgPSBleHBvcnRzMi5waXBlID0gZXhwb3J0czIuTm90aWZpY2F0aW9uS2luZCA9IGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLlN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpcHRpb24gPSBleHBvcnRzMi5TY2hlZHVsZXIgPSBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBleHBvcnRzMi5xdWV1ZSA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gZXhwb3J0czIuYXN5bmMgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IGV4cG9ydHMyLlJlcGxheVN1YmplY3QgPSBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBleHBvcnRzMi5TdWJqZWN0ID0gZXhwb3J0czIuYW5pbWF0aW9uRnJhbWVzID0gZXhwb3J0czIub2JzZXJ2YWJsZSA9IGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IGV4cG9ydHMyLk9ic2VydmFibGUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi5maWx0ZXIgPSBleHBvcnRzMi5leHBhbmQgPSBleHBvcnRzMi5leGhhdXN0TWFwID0gZXhwb3J0czIuZXhoYXVzdEFsbCA9IGV4cG9ydHMyLmV4aGF1c3QgPSBleHBvcnRzMi5ldmVyeSA9IGV4cG9ydHMyLmVuZFdpdGggPSBleHBvcnRzMi5lbGVtZW50QXQgPSBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZXhwb3J0czIuZGlzdGluY3QgPSBleHBvcnRzMi5kZW1hdGVyaWFsaXplID0gZXhwb3J0czIuZGVsYXlXaGVuID0gZXhwb3J0czIuZGVsYXkgPSBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IGV4cG9ydHMyLmRlYm91bmNlVGltZSA9IGV4cG9ydHMyLmRlYm91bmNlID0gZXhwb3J0czIuY291bnQgPSBleHBvcnRzMi5jb25uZWN0ID0gZXhwb3J0czIuY29uY2F0V2l0aCA9IGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gZXhwb3J0czIuY29uY2F0TWFwID0gZXhwb3J0czIuY29uY2F0QWxsID0gZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBleHBvcnRzMi5jb21iaW5lTGF0ZXN0QWxsID0gZXhwb3J0czIuY29tYmluZUFsbCA9IGV4cG9ydHMyLmNhdGNoRXJyb3IgPSBleHBvcnRzMi5idWZmZXJXaGVuID0gZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gZXhwb3J0czIuYnVmZmVyVGltZSA9IGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gZXhwb3J0czIuYnVmZmVyID0gZXhwb3J0czIuYXVkaXRUaW1lID0gZXhwb3J0czIuYXVkaXQgPSBleHBvcnRzMi5jb25maWcgPSBleHBvcnRzMi5ORVZFUiA9IGV4cG9ydHMyLkVNUFRZID0gZXhwb3J0czIuc2NoZWR1bGVkID0gZXhwb3J0czIuemlwID0gZXhwb3J0czIudXNpbmcgPSBleHBvcnRzMi50aW1lciA9IGV4cG9ydHMyLnRocm93RXJyb3IgPSBleHBvcnRzMi5yYW5nZSA9IGV4cG9ydHMyLnJhY2UgPSBleHBvcnRzMi5wYXJ0aXRpb24gPSBleHBvcnRzMi5wYWlycyA9IGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub2YgPSBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLm1lcmdlID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3dpdGNoTWFwID0gZXhwb3J0czIuc3dpdGNoQWxsID0gZXhwb3J0czIuc3Vic2NyaWJlT24gPSBleHBvcnRzMi5zdGFydFdpdGggPSBleHBvcnRzMi5za2lwV2hpbGUgPSBleHBvcnRzMi5za2lwVW50aWwgPSBleHBvcnRzMi5za2lwTGFzdCA9IGV4cG9ydHMyLnNraXAgPSBleHBvcnRzMi5zaW5nbGUgPSBleHBvcnRzMi5zaGFyZVJlcGxheSA9IGV4cG9ydHMyLnNoYXJlID0gZXhwb3J0czIuc2VxdWVuY2VFcXVhbCA9IGV4cG9ydHMyLnNjYW4gPSBleHBvcnRzMi5zYW1wbGVUaW1lID0gZXhwb3J0czIuc2FtcGxlID0gZXhwb3J0czIucmVmQ291bnQgPSBleHBvcnRzMi5yZXRyeVdoZW4gPSBleHBvcnRzMi5yZXRyeSA9IGV4cG9ydHMyLnJlcGVhdFdoZW4gPSBleHBvcnRzMi5yZXBlYXQgPSBleHBvcnRzMi5yZWR1Y2UgPSBleHBvcnRzMi5yYWNlV2l0aCA9IGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBleHBvcnRzMi5wdWJsaXNoTGFzdCA9IGV4cG9ydHMyLnB1Ymxpc2hCZWhhdmlvciA9IGV4cG9ydHMyLnB1Ymxpc2ggPSBleHBvcnRzMi5wbHVjayA9IGV4cG9ydHMyLnBhaXJ3aXNlID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gZXhwb3J0czIub2JzZXJ2ZU9uID0gZXhwb3J0czIubXVsdGljYXN0ID0gZXhwb3J0czIubWluID0gZXhwb3J0czIubWVyZ2VXaXRoID0gZXhwb3J0czIubWVyZ2VTY2FuID0gZXhwb3J0czIubWVyZ2VNYXBUbyA9IGV4cG9ydHMyLm1lcmdlTWFwID0gZXhwb3J0czIuZmxhdE1hcCA9IGV4cG9ydHMyLm1lcmdlQWxsID0gZXhwb3J0czIubWF4ID0gZXhwb3J0czIubWF0ZXJpYWxpemUgPSBleHBvcnRzMi5tYXBUbyA9IGV4cG9ydHMyLm1hcCA9IGV4cG9ydHMyLmxhc3QgPSBleHBvcnRzMi5pc0VtcHR5ID0gZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSBleHBvcnRzMi5ncm91cEJ5ID0gZXhwb3J0czIuZmlyc3QgPSBleHBvcnRzMi5maW5kSW5kZXggPSBleHBvcnRzMi5maW5kID0gZXhwb3J0czIuZmluYWxpemUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi56aXBXaXRoID0gZXhwb3J0czIuemlwQWxsID0gZXhwb3J0czIud2l0aExhdGVzdEZyb20gPSBleHBvcnRzMi53aW5kb3dXaGVuID0gZXhwb3J0czIud2luZG93VG9nZ2xlID0gZXhwb3J0czIud2luZG93VGltZSA9IGV4cG9ydHMyLndpbmRvd0NvdW50ID0gZXhwb3J0czIud2luZG93ID0gZXhwb3J0czIudG9BcnJheSA9IGV4cG9ydHMyLnRpbWVzdGFtcCA9IGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRocm93SWZFbXB0eSA9IGV4cG9ydHMyLnRocm90dGxlVGltZSA9IGV4cG9ydHMyLnRocm90dGxlID0gZXhwb3J0czIudGFwID0gZXhwb3J0czIudGFrZVdoaWxlID0gZXhwb3J0czIudGFrZVVudGlsID0gZXhwb3J0czIudGFrZUxhc3QgPSBleHBvcnRzMi50YWtlID0gZXhwb3J0czIuc3dpdGNoU2NhbiA9IGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiT2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9ic2VydmFibGVfMS5PYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb25uZWN0YWJsZU9ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9ic2VydmFibGVfMS5vYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZXNfMSA9IHJlcXVpcmVfYW5pbWF0aW9uRnJhbWVzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhbmltYXRpb25GcmFtZXMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZXNfMS5hbmltYXRpb25GcmFtZXM7CiAgICB9IH0pOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YmplY3RfMS5TdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBCZWhhdmlvclN1YmplY3RfMSA9IHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJCZWhhdmlvclN1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiUmVwbGF5U3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFJlcGxheVN1YmplY3RfMS5SZXBsYXlTdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBBc3luY1N1YmplY3RfMSA9IHJlcXVpcmVfQXN5bmNTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJBc3luY1N1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBc3luY1N1YmplY3RfMS5Bc3luY1N1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIGFzYXBfMSA9IHJlcXVpcmVfYXNhcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYXNhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzYXBfMS5hc2FwOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzYXBTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhc2FwXzEuYXNhcFNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzeW5jIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYXN5bmNfMS5hc3luYzsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhc3luY1NjaGVkdWxlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIHF1ZXVlXzEgPSByZXF1aXJlX3F1ZXVlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJxdWV1ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHF1ZXVlXzEucXVldWU7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicXVldWVTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBxdWV1ZV8xLnF1ZXVlU2NoZWR1bGVyOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZV8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYW5pbWF0aW9uRnJhbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZV8xLmFuaW1hdGlvbkZyYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYW5pbWF0aW9uRnJhbWVfMS5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgVmlydHVhbFRpbWVTY2hlZHVsZXJfMSA9IHJlcXVpcmVfVmlydHVhbFRpbWVTY2hlZHVsZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsVGltZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWaXJ0dWFsQWN0aW9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsQWN0aW9uOwogICAgfSB9KTsKICAgIHZhciBTY2hlZHVsZXJfMSA9IHJlcXVpcmVfU2NoZWR1bGVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBTY2hlZHVsZXJfMS5TY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlN1YnNjcmlwdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbjsKICAgIH0gfSk7CiAgICB2YXIgU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9TdWJzY3JpYmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTdWJzY3JpYmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gU3Vic2NyaWJlcl8xLlN1YnNjcmliZXI7CiAgICB9IH0pOwogICAgdmFyIE5vdGlmaWNhdGlvbl8xID0gcmVxdWlyZV9Ob3RpZmljYXRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5vdGlmaWNhdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RpZmljYXRpb25LaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90aWZpY2F0aW9uXzEuTm90aWZpY2F0aW9uS2luZDsKICAgIH0gfSk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwaXBlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGlwZV8xLnBpcGU7CiAgICB9IH0pOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibm9vcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5vb3BfMS5ub29wOwogICAgfSB9KTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWRlbnRpdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfSB9KTsKICAgIHZhciBpc09ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpc09ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpc09ic2VydmFibGVfMS5pc09ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIGxhc3RWYWx1ZUZyb21fMSA9IHJlcXVpcmVfbGFzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibGFzdFZhbHVlRnJvbSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb21fMS5sYXN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBmaXJzdFZhbHVlRnJvbV8xID0gcmVxdWlyZV9maXJzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmlyc3RWYWx1ZUZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbV8xLmZpcnN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xID0gcmVxdWlyZV9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xLkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yOwogICAgfSB9KTsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkVtcHR5RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgTm90Rm91bmRFcnJvcl8xID0gcmVxdWlyZV9Ob3RGb3VuZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RGb3VuZEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU2VxdWVuY2VFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFNlcXVlbmNlRXJyb3JfMS5TZXF1ZW5jZUVycm9yOwogICAgfSB9KTsKICAgIHZhciB0aW1lb3V0XzEgPSByZXF1aXJlX3RpbWVvdXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlRpbWVvdXRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRfMS5UaW1lb3V0RXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFVuc3Vic2NyaXB0aW9uRXJyb3JfMSA9IHJlcXVpcmVfVW5zdWJzY3JpcHRpb25FcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiVW5zdWJzY3JpcHRpb25FcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yOwogICAgfSB9KTsKICAgIHZhciBiaW5kQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJiaW5kQ2FsbGJhY2siLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tfMS5iaW5kQ2FsbGJhY2s7CiAgICB9IH0pOwogICAgdmFyIGJpbmROb2RlQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZE5vZGVDYWxsYmFjaygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYmluZE5vZGVDYWxsYmFjayIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGJpbmROb2RlQ2FsbGJhY2tfMS5iaW5kTm9kZUNhbGxiYWNrOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0XzEuY29tYmluZUxhdGVzdDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0OwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0YWJsZV8xID0gcmVxdWlyZV9jb25uZWN0YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29ubmVjdGFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0YWJsZV8xLmNvbm5lY3RhYmxlOwogICAgfSB9KTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyOwogICAgfSB9KTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbXB0eV8xLmVtcHR5OwogICAgfSB9KTsKICAgIHZhciBmb3JrSm9pbl8xID0gcmVxdWlyZV9mb3JrSm9pbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZm9ya0pvaW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmb3JrSm9pbl8xLmZvcmtKb2luOwogICAgfSB9KTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tXzEuZnJvbTsKICAgIH0gfSk7CiAgICB2YXIgZnJvbUV2ZW50XzEgPSByZXF1aXJlX2Zyb21FdmVudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZnJvbUV2ZW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZnJvbUV2ZW50XzEuZnJvbUV2ZW50OwogICAgfSB9KTsKICAgIHZhciBmcm9tRXZlbnRQYXR0ZXJuXzEgPSByZXF1aXJlX2Zyb21FdmVudFBhdHRlcm4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb21FdmVudFBhdHRlcm4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tRXZlbnRQYXR0ZXJuXzEuZnJvbUV2ZW50UGF0dGVybjsKICAgIH0gfSk7CiAgICB2YXIgZ2VuZXJhdGVfMSA9IHJlcXVpcmVfZ2VuZXJhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdlbmVyYXRlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ2VuZXJhdGVfMS5nZW5lcmF0ZTsKICAgIH0gfSk7CiAgICB2YXIgaWlmXzEgPSByZXF1aXJlX2lpZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWlmIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaWlmXzEuaWlmOwogICAgfSB9KTsKICAgIHZhciBpbnRlcnZhbF8xID0gcmVxdWlyZV9pbnRlcnZhbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaW50ZXJ2YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpbnRlcnZhbF8xLmludGVydmFsOwogICAgfSB9KTsKICAgIHZhciBtZXJnZV8xID0gcmVxdWlyZV9tZXJnZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlOwogICAgfSB9KTsKICAgIHZhciBuZXZlcl8xID0gcmVxdWlyZV9uZXZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibmV2ZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBuZXZlcl8xLm5ldmVyOwogICAgfSB9KTsKICAgIHZhciBvZl8xID0gcmVxdWlyZV9vZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2YiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvZl8xLm9mOwogICAgfSB9KTsKICAgIHZhciBvbkVycm9yUmVzdW1lTmV4dF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib25FcnJvclJlc3VtZU5leHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0OwogICAgfSB9KTsKICAgIHZhciBwYWlyc18xID0gcmVxdWlyZV9wYWlycygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGFpcnMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYWlyc18xLnBhaXJzOwogICAgfSB9KTsKICAgIHZhciBwYXJ0aXRpb25fMSA9IHJlcXVpcmVfcGFydGl0aW9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwYXJ0aXRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYXJ0aXRpb25fMS5wYXJ0aXRpb247CiAgICB9IH0pOwogICAgdmFyIHJhY2VfMSA9IHJlcXVpcmVfcmFjZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VfMS5yYWNlOwogICAgfSB9KTsKICAgIHZhciByYW5nZV8xID0gcmVxdWlyZV9yYW5nZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFuZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByYW5nZV8xLnJhbmdlOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm93RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0Vycm9yXzEudGhyb3dFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZXJfMS50aW1lcjsKICAgIH0gfSk7CiAgICB2YXIgdXNpbmdfMSA9IHJlcXVpcmVfdXNpbmcoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInVzaW5nIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdXNpbmdfMS51c2luZzsKICAgIH0gfSk7CiAgICB2YXIgemlwXzEgPSByZXF1aXJlX3ppcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwXzEuemlwOwogICAgfSB9KTsKICAgIHZhciBzY2hlZHVsZWRfMSA9IHJlcXVpcmVfc2NoZWR1bGVkKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzY2hlZHVsZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzY2hlZHVsZWRfMS5zY2hlZHVsZWQ7CiAgICB9IH0pOwogICAgdmFyIGVtcHR5XzIgPSByZXF1aXJlX2VtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJFTVBUWSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVtcHR5XzIuRU1QVFk7CiAgICB9IH0pOwogICAgdmFyIG5ldmVyXzIgPSByZXF1aXJlX25ldmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJORVZFUiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5ldmVyXzIuTkVWRVI7CiAgICB9IH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHlwZXMyKCksIGV4cG9ydHMyKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25maWciLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25maWdfMS5jb25maWc7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhdWRpdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQ7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0VGltZV8xID0gcmVxdWlyZV9hdWRpdFRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImF1ZGl0VGltZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0VGltZV8xLmF1ZGl0VGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyXzEgPSByZXF1aXJlX2J1ZmZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyXzEuYnVmZmVyOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJDb3VudF8xID0gcmVxdWlyZV9idWZmZXJDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyQ291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJDb3VudF8xLmJ1ZmZlckNvdW50OwogICAgfSB9KTsKICAgIHZhciBidWZmZXJUaW1lXzEgPSByZXF1aXJlX2J1ZmZlclRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlclRpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJUaW1lXzEuYnVmZmVyVGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyVG9nZ2xlXzEgPSByZXF1aXJlX2J1ZmZlclRvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyVG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyVG9nZ2xlXzEuYnVmZmVyVG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJXaGVuXzEgPSByZXF1aXJlX2J1ZmZlcldoZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlcldoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJXaGVuXzEuYnVmZmVyV2hlbjsKICAgIH0gfSk7CiAgICB2YXIgY2F0Y2hFcnJvcl8xID0gcmVxdWlyZV9jYXRjaEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjYXRjaEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY2F0Y2hFcnJvcl8xLmNhdGNoRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIGNvbWJpbmVBbGxfMSA9IHJlcXVpcmVfY29tYmluZUFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29tYmluZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbWJpbmVBbGxfMS5jb21iaW5lQWxsOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0QWxsXzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3RBbGwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RBbGwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0QWxsXzEuY29tYmluZUxhdGVzdEFsbDsKICAgIH0gfSk7CiAgICB2YXIgY29tYmluZUxhdGVzdFdpdGhfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RXaXRoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29tYmluZUxhdGVzdFdpdGhfMS5jb21iaW5lTGF0ZXN0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsOwogICAgfSB9KTsKICAgIHZhciBjb25jYXRNYXBfMSA9IHJlcXVpcmVfY29uY2F0TWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25jYXRNYXBfMS5jb25jYXRNYXA7CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdE1hcFRvXzEgPSByZXF1aXJlX2NvbmNhdE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdE1hcFRvXzEuY29uY2F0TWFwVG87CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdFdpdGhfMSA9IHJlcXVpcmVfY29uY2F0V2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdFdpdGhfMS5jb25jYXRXaXRoOwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbm5lY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdDsKICAgIH0gfSk7CiAgICB2YXIgY291bnRfMSA9IHJlcXVpcmVfY291bnQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvdW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY291bnRfMS5jb3VudDsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VfMSA9IHJlcXVpcmVfZGVib3VuY2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImRlYm91bmNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VfMS5kZWJvdW5jZTsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VUaW1lXzEgPSByZXF1aXJlX2RlYm91bmNlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVib3VuY2VUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VUaW1lXzEuZGVib3VuY2VUaW1lOwogICAgfSB9KTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmYXVsdElmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5OwogICAgfSB9KTsKICAgIHZhciBkZWxheV8xID0gcmVxdWlyZV9kZWxheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVsYXkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheV8xLmRlbGF5OwogICAgfSB9KTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJkZWxheVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW47CiAgICB9IH0pOwogICAgdmFyIGRlbWF0ZXJpYWxpemVfMSA9IHJlcXVpcmVfZGVtYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVtYXRlcmlhbGl6ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGRlbWF0ZXJpYWxpemVfMS5kZW1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdF8xID0gcmVxdWlyZV9kaXN0aW5jdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdF8xLmRpc3RpbmN0OwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbENoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbEtleUNoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xLmRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBlbGVtZW50QXRfMSA9IHJlcXVpcmVfZWxlbWVudEF0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJlbGVtZW50QXQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbGVtZW50QXRfMS5lbGVtZW50QXQ7CiAgICB9IH0pOwogICAgdmFyIGVuZFdpdGhfMSA9IHJlcXVpcmVfZW5kV2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW5kV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVuZFdpdGhfMS5lbmRXaXRoOwogICAgfSB9KTsKICAgIHZhciBldmVyeV8xID0gcmVxdWlyZV9ldmVyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXZlcnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBldmVyeV8xLmV2ZXJ5OwogICAgfSB9KTsKICAgIHZhciBleGhhdXN0XzEgPSByZXF1aXJlX2V4aGF1c3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImV4aGF1c3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGhhdXN0XzEuZXhoYXVzdDsKICAgIH0gfSk7CiAgICB2YXIgZXhoYXVzdEFsbF8xID0gcmVxdWlyZV9leGhhdXN0QWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleGhhdXN0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZXhoYXVzdEFsbF8xLmV4aGF1c3RBbGw7CiAgICB9IH0pOwogICAgdmFyIGV4aGF1c3RNYXBfMSA9IHJlcXVpcmVfZXhoYXVzdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXhoYXVzdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGV4aGF1c3RNYXBfMS5leGhhdXN0TWFwOwogICAgfSB9KTsKICAgIHZhciBleHBhbmRfMSA9IHJlcXVpcmVfZXhwYW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleHBhbmQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleHBhbmRfMS5leHBhbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbHRlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbHRlcl8xLmZpbHRlcjsKICAgIH0gfSk7CiAgICB2YXIgZmluYWxpemVfMSA9IHJlcXVpcmVfZmluYWxpemUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmFsaXplIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluYWxpemVfMS5maW5hbGl6ZTsKICAgIH0gfSk7CiAgICB2YXIgZmluZF8xID0gcmVxdWlyZV9maW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJmaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluZF8xLmZpbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbmRJbmRleF8xID0gcmVxdWlyZV9maW5kSW5kZXgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmRJbmRleCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbmRJbmRleF8xLmZpbmRJbmRleDsKICAgIH0gfSk7CiAgICB2YXIgZmlyc3RfMSA9IHJlcXVpcmVfZmlyc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpcnN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmlyc3RfMS5maXJzdDsKICAgIH0gfSk7CiAgICB2YXIgZ3JvdXBCeV8xID0gcmVxdWlyZV9ncm91cEJ5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJncm91cEJ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ3JvdXBCeV8xLmdyb3VwQnk7CiAgICB9IH0pOwogICAgdmFyIGlnbm9yZUVsZW1lbnRzXzEgPSByZXF1aXJlX2lnbm9yZUVsZW1lbnRzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpZ25vcmVFbGVtZW50cyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlnbm9yZUVsZW1lbnRzXzEuaWdub3JlRWxlbWVudHM7CiAgICB9IH0pOwogICAgdmFyIGlzRW1wdHlfMSA9IHJlcXVpcmVfaXNFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaXNFbXB0eSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlzRW1wdHlfMS5pc0VtcHR5OwogICAgfSB9KTsKICAgIHZhciBsYXN0XzEgPSByZXF1aXJlX2xhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImxhc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBsYXN0XzEubGFzdDsKICAgIH0gfSk7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWFwXzEubWFwOwogICAgfSB9KTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXBUb18xLm1hcFRvOwogICAgfSB9KTsKICAgIHZhciBtYXRlcmlhbGl6ZV8xID0gcmVxdWlyZV9tYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWF0ZXJpYWxpemUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXRlcmlhbGl6ZV8xLm1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBtYXhfMSA9IHJlcXVpcmVfbWF4KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtYXgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXhfMS5tYXg7CiAgICB9IH0pOwogICAgdmFyIG1lcmdlQWxsXzEgPSByZXF1aXJlX21lcmdlQWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lcmdlQWxsXzEubWVyZ2VBbGw7CiAgICB9IH0pOwogICAgdmFyIGZsYXRNYXBfMSA9IHJlcXVpcmVfZmxhdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmxhdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZsYXRNYXBfMS5mbGF0TWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcFRvXzEgPSByZXF1aXJlX21lcmdlTWFwVG8oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1lcmdlTWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcFRvXzEubWVyZ2VNYXBUbzsKICAgIH0gfSk7CiAgICB2YXIgbWVyZ2VTY2FuXzEgPSByZXF1aXJlX21lcmdlU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VTY2FuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWVyZ2VTY2FuXzEubWVyZ2VTY2FuOwogICAgfSB9KTsKICAgIHZhciBtZXJnZVdpdGhfMSA9IHJlcXVpcmVfbWVyZ2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZVdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZVdpdGhfMS5tZXJnZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIG1pbl8xID0gcmVxdWlyZV9taW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1pbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1pbl8xLm1pbjsKICAgIH0gfSk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibXVsdGljYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbXVsdGljYXN0XzEubXVsdGljYXN0OwogICAgfSB9KTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJvYnNlcnZlT24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvYnNlcnZlT25fMS5vYnNlcnZlT247CiAgICB9IH0pOwogICAgdmFyIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm9uRXJyb3JSZXN1bWVOZXh0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xLm9uRXJyb3JSZXN1bWVOZXh0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgcGFpcndpc2VfMSA9IHJlcXVpcmVfcGFpcndpc2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBhaXJ3aXNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGFpcndpc2VfMS5wYWlyd2lzZTsKICAgIH0gfSk7CiAgICB2YXIgcGx1Y2tfMSA9IHJlcXVpcmVfcGx1Y2soKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBsdWNrIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGx1Y2tfMS5wbHVjazsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaF8xID0gcmVxdWlyZV9wdWJsaXNoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaF8xLnB1Ymxpc2g7CiAgICB9IH0pOwogICAgdmFyIHB1Ymxpc2hCZWhhdmlvcl8xID0gcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hCZWhhdmlvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHB1Ymxpc2hCZWhhdmlvcl8xLnB1Ymxpc2hCZWhhdmlvcjsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaExhc3RfMSA9IHJlcXVpcmVfcHVibGlzaExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaExhc3RfMS5wdWJsaXNoTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaFJlcGxheV8xID0gcmVxdWlyZV9wdWJsaXNoUmVwbGF5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaFJlcGxheV8xLnB1Ymxpc2hSZXBsYXk7CiAgICB9IH0pOwogICAgdmFyIHJhY2VXaXRoXzEgPSByZXF1aXJlX3JhY2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyYWNlV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VXaXRoXzEucmFjZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlZHVjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZTsKICAgIH0gfSk7CiAgICB2YXIgcmVwZWF0XzEyID0gcmVxdWlyZV9yZXBlYXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlcGVhdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdF8xMi5yZXBlYXQ7CiAgICB9IH0pOwogICAgdmFyIHJlcGVhdFdoZW5fMSA9IHJlcXVpcmVfcmVwZWF0V2hlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVwZWF0V2hlbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdFdoZW5fMS5yZXBlYXRXaGVuOwogICAgfSB9KTsKICAgIHZhciByZXRyeV8xID0gcmVxdWlyZV9yZXRyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmV0cnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeV8xLnJldHJ5OwogICAgfSB9KTsKICAgIHZhciByZXRyeVdoZW5fMSA9IHJlcXVpcmVfcmV0cnlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZXRyeVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeVdoZW5fMS5yZXRyeVdoZW47CiAgICB9IH0pOwogICAgdmFyIHJlZkNvdW50XzEgPSByZXF1aXJlX3JlZkNvdW50KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZWZDb3VudCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZkNvdW50XzEucmVmQ291bnQ7CiAgICB9IH0pOwogICAgdmFyIHNhbXBsZV8xID0gcmVxdWlyZV9zYW1wbGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNhbXBsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZTsKICAgIH0gfSk7CiAgICB2YXIgc2FtcGxlVGltZV8xID0gcmVxdWlyZV9zYW1wbGVUaW1lKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzYW1wbGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2FtcGxlVGltZV8xLnNhbXBsZVRpbWU7CiAgICB9IH0pOwogICAgdmFyIHNjYW5fMSA9IHJlcXVpcmVfc2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjYW5fMS5zY2FuOwogICAgfSB9KTsKICAgIHZhciBzZXF1ZW5jZUVxdWFsXzEgPSByZXF1aXJlX3NlcXVlbmNlRXF1YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNlcXVlbmNlRXF1YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzZXF1ZW5jZUVxdWFsXzEuc2VxdWVuY2VFcXVhbDsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVfMSA9IHJlcXVpcmVfc2hhcmUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZTsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVSZXBsYXlfMSA9IHJlcXVpcmVfc2hhcmVSZXBsYXkoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVSZXBsYXlfMS5zaGFyZVJlcGxheTsKICAgIH0gfSk7CiAgICB2YXIgc2luZ2xlXzEgPSByZXF1aXJlX3NpbmdsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2luZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2luZ2xlXzEuc2luZ2xlOwogICAgfSB9KTsKICAgIHZhciBza2lwXzEgPSByZXF1aXJlX3NraXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwXzEuc2tpcDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcExhc3RfMSA9IHJlcXVpcmVfc2tpcExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXBMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcExhc3RfMS5za2lwTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcFVudGlsXzEgPSByZXF1aXJlX3NraXBVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2tpcFVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcFVudGlsXzEuc2tpcFVudGlsOwogICAgfSB9KTsKICAgIHZhciBza2lwV2hpbGVfMSA9IHJlcXVpcmVfc2tpcFdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJza2lwV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwV2hpbGVfMS5za2lwV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHN0YXJ0V2l0aF8xID0gcmVxdWlyZV9zdGFydFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0YXJ0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN0YXJ0V2l0aF8xLnN0YXJ0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN1YnNjcmliZU9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbjsKICAgIH0gfSk7CiAgICB2YXIgc3dpdGNoQWxsXzEgPSByZXF1aXJlX3N3aXRjaEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3dpdGNoQWxsXzEuc3dpdGNoQWxsOwogICAgfSB9KTsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXA7CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaE1hcFRvXzEgPSByZXF1aXJlX3N3aXRjaE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcFRvXzEuc3dpdGNoTWFwVG87CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaFNjYW5fMSA9IHJlcXVpcmVfc3dpdGNoU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoU2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaFNjYW5fMS5zd2l0Y2hTY2FuOwogICAgfSB9KTsKICAgIHZhciB0YWtlXzEgPSByZXF1aXJlX3Rha2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlXzEudGFrZTsKICAgIH0gfSk7CiAgICB2YXIgdGFrZUxhc3RfMSA9IHJlcXVpcmVfdGFrZUxhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2VMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZUxhc3RfMS50YWtlTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgdGFrZVVudGlsXzEgPSByZXF1aXJlX3Rha2VVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGFrZVVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZVVudGlsXzEudGFrZVVudGlsOwogICAgfSB9KTsKICAgIHZhciB0YWtlV2hpbGVfMSA9IHJlcXVpcmVfdGFrZVdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0YWtlV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlV2hpbGVfMS50YWtlV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHRhcF8xID0gcmVxdWlyZV90YXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRhcF8xLnRhcDsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVfMSA9IHJlcXVpcmVfdGhyb3R0bGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm90dGxlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVfMS50aHJvdHRsZTsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVUaW1lXzEgPSByZXF1aXJlX3Rocm90dGxlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGhyb3R0bGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVUaW1lXzEudGhyb3R0bGVUaW1lOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aHJvd0lmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHk7CiAgICB9IH0pOwogICAgdmFyIHRpbWVJbnRlcnZhbF8xID0gcmVxdWlyZV90aW1lSW50ZXJ2YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVJbnRlcnZhbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVJbnRlcnZhbF8xLnRpbWVJbnRlcnZhbDsKICAgIH0gfSk7CiAgICB2YXIgdGltZW91dF8yID0gcmVxdWlyZV90aW1lb3V0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZW91dF8yLnRpbWVvdXQ7CiAgICB9IH0pOwogICAgdmFyIHRpbWVvdXRXaXRoXzEgPSByZXF1aXJlX3RpbWVvdXRXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRXaXRoXzEudGltZW91dFdpdGg7CiAgICB9IH0pOwogICAgdmFyIHRpbWVzdGFtcF8xID0gcmVxdWlyZV90aW1lc3RhbXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVzdGFtcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcF8xLnRpbWVzdGFtcDsKICAgIH0gfSk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidG9BcnJheSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRvQXJyYXlfMTIudG9BcnJheTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93XzEgPSByZXF1aXJlX3dpbmRvdygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93XzEud2luZG93OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dDb3VudF8xID0gcmVxdWlyZV93aW5kb3dDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93Q291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dDb3VudF8xLndpbmRvd0NvdW50OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dUaW1lXzEgPSByZXF1aXJlX3dpbmRvd1RpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1RpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dUaW1lXzEud2luZG93VGltZTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93VG9nZ2xlXzEgPSByZXF1aXJlX3dpbmRvd1RvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93VG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93VG9nZ2xlXzEud2luZG93VG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dXaGVuXzEgPSByZXF1aXJlX3dpbmRvd1doZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1doZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dXaGVuXzEud2luZG93V2hlbjsKICAgIH0gfSk7CiAgICB2YXIgd2l0aExhdGVzdEZyb21fMSA9IHJlcXVpcmVfd2l0aExhdGVzdEZyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpdGhMYXRlc3RGcm9tIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2l0aExhdGVzdEZyb21fMS53aXRoTGF0ZXN0RnJvbTsKICAgIH0gfSk7CiAgICB2YXIgemlwQWxsXzEgPSByZXF1aXJlX3ppcEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwQWxsXzEuemlwQWxsOwogICAgfSB9KTsKICAgIHZhciB6aXBXaXRoXzEgPSByZXF1aXJlX3ppcFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInppcFdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB6aXBXaXRoXzEuemlwV2l0aDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlBhdGhJc0ZpbGVFeGNlcHRpb24gPSBleHBvcnRzMi5QYXRoSXNEaXJlY3RvcnlFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVua25vd25FeGNlcHRpb24gPSBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIEJhc2VFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIEVycm9yIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICIiKSB7CiAgICAgICAgc3VwZXIobWVzc2FnZSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gQmFzZUV4Y2VwdGlvbjsKICAgIHZhciBVbmtub3duRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSkgewogICAgICAgIHN1cGVyKG1lc3NhZ2UpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkV4Y2VwdGlvbiA9IFVua25vd25FeGNlcHRpb247CiAgICB2YXIgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBhbHJlYWR5IGV4aXN0LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbiA9IEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb247CiAgICB2YXIgUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGRpcmVjdG9yeS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbiA9IFBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbjsKICAgIHZhciBQYXRoSXNGaWxlRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGZpbGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoSXNGaWxlRXhjZXB0aW9uID0gUGF0aElzRmlsZUV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xpdGVyYWxzLmpzCnZhciByZXF1aXJlX2xpdGVyYWxzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9saXRlcmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub25lTGluZSA9IG9uZUxpbmU7CiAgICBleHBvcnRzMi5pbmRlbnRCeSA9IGluZGVudEJ5OwogICAgZXhwb3J0czIuc3RyaXBJbmRlbnQgPSBzdHJpcEluZGVudDsKICAgIGV4cG9ydHMyLnN0cmlwSW5kZW50cyA9IHN0cmlwSW5kZW50czsKICAgIGV4cG9ydHMyLnRyaW1OZXdsaW5lcyA9IHRyaW1OZXdsaW5lczsKICAgIGZ1bmN0aW9uIG9uZUxpbmUoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkrL2dtLCAiICIpLnRyaW0oKTsKICAgIH0KICAgIGZ1bmN0aW9uIGluZGVudEJ5KGluZGVudGF0aW9ucykgewogICAgICBsZXQgaSA9ICIiOwogICAgICB3aGlsZSAoaW5kZW50YXRpb25zLS0pIHsKICAgICAgICBpICs9ICIgIjsKICAgICAgfQogICAgICByZXR1cm4gKHN0cmluZ3MzLCAuLi52YWx1ZXMpID0+IHsKICAgICAgICByZXR1cm4gaSArIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpLnJlcGxhY2UoL1xuL2csICJcbiIgKyBpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgY29uc3QgZW5kUmVzdWx0ID0gU3RyaW5nLnJhdyhzdHJpbmdzMywgLi4udmFsdWVzKTsKICAgICAgY29uc3QgbWF0Y2ggPSBlbmRSZXN1bHQubWF0Y2goL15bIFx0XSooPz1cUykvZ20pOwogICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gZW5kUmVzdWx0OwogICAgICB9CiAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgubWluKC4uLm1hdGNoLm1hcCgoZWwpID0+IGVsLmxlbmd0aCkpOwogICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCJeWyBcXHRdeyIgKyBpbmRlbnQgKyAifSIsICJnbSIpOwogICAgICByZXR1cm4gKGluZGVudCA+IDAgPyBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICIiKSA6IGVuZFJlc3VsdCkudHJpbSgpOwogICAgfQogICAgZnVuY3Rpb24gc3RyaXBJbmRlbnRzKHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgcmV0dXJuIFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykuc3BsaXQoIlxuIikubWFwKChsaW5lKSA9PiBsaW5lLnRyaW0oKSkuam9pbigiXG4iKS50cmltKCk7CiAgICB9CiAgICBmdW5jdGlvbiB0cmltTmV3bGluZXMoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoL14oPzpccj9cbikrLywgIiIpLnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkkLywgIiIpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvc3RyaW5ncy5qcwp2YXIgcmVxdWlyZV9zdHJpbmdzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9zdHJpbmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWNhbWVsaXplID0gZGVjYW1lbGl6ZTsKICAgIGV4cG9ydHMyLmRhc2hlcml6ZSA9IGRhc2hlcml6ZTsKICAgIGV4cG9ydHMyLmNhbWVsaXplID0gY2FtZWxpemU7CiAgICBleHBvcnRzMi5jbGFzc2lmeSA9IGNsYXNzaWZ5OwogICAgZXhwb3J0czIudW5kZXJzY29yZSA9IHVuZGVyc2NvcmU7CiAgICBleHBvcnRzMi5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTsKICAgIGV4cG9ydHMyLmxldmVuc2h0ZWluID0gbGV2ZW5zaHRlaW47CiAgICB2YXIgU1RSSU5HX0RBU0hFUklaRV9SRUdFWFAgPSAvWyBfXS9nOwogICAgdmFyIFNUUklOR19ERUNBTUVMSVpFX1JFR0VYUCA9IC8oW2EtelxkXSkoW0EtWl0pL2c7CiAgICB2YXIgU1RSSU5HX0NBTUVMSVpFX1JFR0VYUCA9IC8oLXxffFwufFxzKSsoLik/L2c7CiAgICB2YXIgU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEgPSAvKFthLXpcZF0pKFtBLVpdKykvZzsKICAgIHZhciBTVFJJTkdfVU5ERVJTQ09SRV9SRUdFWFBfMiA9IC8tfFxzKy9nOwogICAgZnVuY3Rpb24gZGVjYW1lbGl6ZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX0RFQ0FNRUxJWkVfUkVHRVhQLCAiJDFfJDIiKS50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gZGFzaGVyaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIGRlY2FtZWxpemUoc3RyMikucmVwbGFjZShTVFJJTkdfREFTSEVSSVpFX1JFR0VYUCwgIi0iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZShTVFJJTkdfQ0FNRUxJWkVfUkVHRVhQLCAoX21hdGNoLCBfc2VwYXJhdG9yLCBjaHIpID0+IHsKICAgICAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAiIjsKICAgICAgfSkucmVwbGFjZSgvXihbQS1aXSkvLCAobWF0Y2gpID0+IG1hdGNoLnRvTG93ZXJDYXNlKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2xhc3NpZnkoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5zcGxpdCgiLiIpLm1hcCgocGFydCkgPT4gY2FwaXRhbGl6ZShjYW1lbGl6ZShwYXJ0KSkpLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gdW5kZXJzY29yZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEsICIkMV8kMiIpLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzIsICJfIikudG9Mb3dlckNhc2UoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cjIuc2xpY2UoMSk7CiAgICB9CiAgICBmdW5jdGlvbiBsZXZlbnNodGVpbihhLCBiKSB7CiAgICAgIGlmIChhLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGIubGVuZ3RoOwogICAgICB9CiAgICAgIGlmIChiLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGEubGVuZ3RoOwogICAgICB9CiAgICAgIGNvbnN0IG1hdHJpeCA9IFtdOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWF0cml4W2ldID0gW2ldOwogICAgICB9CiAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGEubGVuZ3RoOyBqKyspIHsKICAgICAgICBtYXRyaXhbMF1bal0gPSBqOwogICAgICB9CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGIubGVuZ3RoOyBpKyspIHsKICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBhLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICBpZiAoYi5jaGFyQXQoaSAtIDEpID09IGEuY2hhckF0KGogLSAxKSkgewogICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbaSAtIDFdW2ogLSAxXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IE1hdGgubWluKAogICAgICAgICAgICAgIG1hdHJpeFtpIC0gMV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24KICAgICAgICAgICAgICBtYXRyaXhbaV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBpbnNlcnRpb24KICAgICAgICAgICAgICBtYXRyaXhbaSAtIDFdW2pdICsgMQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbWF0cml4W2IubGVuZ3RoXVthLmxlbmd0aF07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMKdmFyIHJlcXVpcmVfb2JqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZXBDb3B5ID0gZGVlcENvcHk7CiAgICB2YXIgY29weVN5bWJvbCA9IFN5bWJvbCgpOwogICAgZnVuY3Rpb24gZGVlcENvcHkodmFsdWUpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgobykgPT4gZGVlcENvcHkobykpOwogICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25zdCB2YWx1ZUNhc3RlZCA9IHZhbHVlOwogICAgICAgIGlmICh2YWx1ZUNhc3RlZFtjb3B5U3ltYm9sXSkgewogICAgICAgICAgcmV0dXJuIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWVDYXN0ZWRbInRvSlNPTiJdKSB7CiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZUNhc3RlZFsidG9KU09OIl0oKSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZUNhc3RlZCkpOwogICAgICAgIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdID0gY29weTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZUNhc3RlZCkpIHsKICAgICAgICAgIGNvcHlba2V5XSA9IGRlZXBDb3B5KHZhbHVlQ2FzdGVkW2tleV0pOwogICAgICAgIH0KICAgICAgICBkZWxldGUgdmFsdWVDYXN0ZWRbY29weVN5bWJvbF07CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMKdmFyIHJlcXVpcmVfYmFzZTY0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgaW50VG9DaGFyTWFwID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLnNwbGl0KCIiKTsKICAgIGV4cG9ydHMyLmVuY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkgewogICAgICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTsKICAgICAgfQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJNdXN0IGJlIGJldHdlZW4gMCBhbmQgNjM6ICIgKyBudW1iZXIpOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2Jhc2U2NC12bHEuanMKdmFyIHJlcXVpcmVfYmFzZTY0X3ZscSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYmFzZTY0LXZscS5qcyIoZXhwb3J0czIpIHsKICAgIHZhciBiYXNlNjQgPSByZXF1aXJlX2Jhc2U2NCgpOwogICAgdmFyIFZMUV9CQVNFX1NISUZUID0gNTsKICAgIHZhciBWTFFfQkFTRSA9IDEgPDwgVkxRX0JBU0VfU0hJRlQ7CiAgICB2YXIgVkxRX0JBU0VfTUFTSyA9IFZMUV9CQVNFIC0gMTsKICAgIHZhciBWTFFfQ09OVElOVUFUSU9OX0JJVCA9IFZMUV9CQVNFOwogICAgZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7CiAgICAgIHJldHVybiBhVmFsdWUgPCAwID8gKC1hVmFsdWUgPDwgMSkgKyAxIDogKGFWYWx1ZSA8PCAxKSArIDA7CiAgICB9CiAgICBleHBvcnRzMi5lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZW5jb2RlKGFWYWx1ZSkgewogICAgICBsZXQgZW5jb2RlZCA9ICIiOwogICAgICBsZXQgZGlnaXQ7CiAgICAgIGxldCB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpOwogICAgICBkbyB7CiAgICAgICAgZGlnaXQgPSB2bHEgJiBWTFFfQkFTRV9NQVNLOwogICAgICAgIHZscSA+Pj49IFZMUV9CQVNFX1NISUZUOwogICAgICAgIGlmICh2bHEgPiAwKSB7CiAgICAgICAgICBkaWdpdCB8PSBWTFFfQ09OVElOVUFUSU9OX0JJVDsKICAgICAgICB9CiAgICAgICAgZW5jb2RlZCArPSBiYXNlNjQuZW5jb2RlKGRpZ2l0KTsKICAgICAgfSB3aGlsZSAodmxxID4gMCk7CiAgICAgIHJldHVybiBlbmNvZGVkOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMKdmFyIHJlcXVpcmVfdXRpbDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMiKGV4cG9ydHMyKSB7CiAgICBmdW5jdGlvbiBnZXRBcmcoYUFyZ3MsIGFOYW1lLCBhRGVmYXVsdFZhbHVlKSB7CiAgICAgIGlmIChhTmFtZSBpbiBhQXJncykgewogICAgICAgIHJldHVybiBhQXJnc1thTmFtZV07CiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykgewogICAgICAgIHJldHVybiBhRGVmYXVsdFZhbHVlOwogICAgICB9CiAgICAgIHRocm93IG5ldyBFcnJvcignIicgKyBhTmFtZSArICciIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRBcmcgPSBnZXRBcmc7CiAgICB2YXIgdXJsUmVnZXhwID0gL14oPzooW1x3K1wtLl0rKTopP1wvXC8oPzooXHcrOlx3KylAKT8oW1x3Li1dKikoPzo6KFxkKykpPyguKikkLzsKICAgIHZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXCwuKyQvOwogICAgZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkgewogICAgICBjb25zdCBtYXRjaCA9IGFVcmwubWF0Y2godXJsUmVnZXhwKTsKICAgICAgaWYgKCFtYXRjaCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgc2NoZW1lOiBtYXRjaFsxXSwKICAgICAgICBhdXRoOiBtYXRjaFsyXSwKICAgICAgICBob3N0OiBtYXRjaFszXSwKICAgICAgICBwb3J0OiBtYXRjaFs0XSwKICAgICAgICBwYXRoOiBtYXRjaFs1XQogICAgICB9OwogICAgfQogICAgZXhwb3J0czIudXJsUGFyc2UgPSB1cmxQYXJzZTsKICAgIGZ1bmN0aW9uIHVybEdlbmVyYXRlKGFQYXJzZWRVcmwpIHsKICAgICAgbGV0IHVybDMgPSAiIjsKICAgICAgaWYgKGFQYXJzZWRVcmwuc2NoZW1lKSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLnNjaGVtZSArICI6IjsKICAgICAgfQogICAgICB1cmwzICs9ICIvLyI7CiAgICAgIGlmIChhUGFyc2VkVXJsLmF1dGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwuYXV0aCArICJAIjsKICAgICAgfQogICAgICBpZiAoYVBhcnNlZFVybC5ob3N0KSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLmhvc3Q7CiAgICAgIH0KICAgICAgaWYgKGFQYXJzZWRVcmwucG9ydCkgewogICAgICAgIHVybDMgKz0gIjoiICsgYVBhcnNlZFVybC5wb3J0OwogICAgICB9CiAgICAgIGlmIChhUGFyc2VkVXJsLnBhdGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwucGF0aDsKICAgICAgfQogICAgICByZXR1cm4gdXJsMzsKICAgIH0KICAgIGV4cG9ydHMyLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7CiAgICB2YXIgTUFYX0NBQ0hFRF9JTlBVVFMgPSAzMjsKICAgIGZ1bmN0aW9uIGxydU1lbW9pemUoZikgewogICAgICBjb25zdCBjYWNoZSA9IFtdOwogICAgICByZXR1cm4gZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhY2hlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoY2FjaGVbaV0uaW5wdXQgPT09IGlucHV0KSB7CiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBjYWNoZVswXTsKICAgICAgICAgICAgY2FjaGVbMF0gPSBjYWNoZVtpXTsKICAgICAgICAgICAgY2FjaGVbaV0gPSB0ZW1wOwogICAgICAgICAgICByZXR1cm4gY2FjaGVbMF0ucmVzdWx0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCByZXN1bHQgPSBmKGlucHV0KTsKICAgICAgICBjYWNoZS51bnNoaWZ0KHsKICAgICAgICAgIGlucHV0LAogICAgICAgICAgcmVzdWx0CiAgICAgICAgfSk7CiAgICAgICAgaWYgKGNhY2hlLmxlbmd0aCA+IE1BWF9DQUNIRURfSU5QVVRTKSB7CiAgICAgICAgICBjYWNoZS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0KICAgIHZhciBub3JtYWxpemUgPSBscnVNZW1vaXplKGZ1bmN0aW9uIG5vcm1hbGl6ZTIoYVBhdGgpIHsKICAgICAgbGV0IHBhdGggPSBhUGF0aDsKICAgICAgY29uc3QgdXJsMyA9IHVybFBhcnNlKGFQYXRoKTsKICAgICAgaWYgKHVybDMpIHsKICAgICAgICBpZiAoIXVybDMucGF0aCkgewogICAgICAgICAgcmV0dXJuIGFQYXRoOwogICAgICAgIH0KICAgICAgICBwYXRoID0gdXJsMy5wYXRoOwogICAgICB9CiAgICAgIGNvbnN0IGlzQWJzb2x1dGUgPSBleHBvcnRzMi5pc0Fic29sdXRlKHBhdGgpOwogICAgICBjb25zdCBwYXJ0cyA9IFtdOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgaSA9IDA7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgc3RhcnQgPSBpOwogICAgICAgIGkgPSBwYXRoLmluZGV4T2YoIi8iLCBzdGFydCk7CiAgICAgICAgaWYgKGkgPT09IC0xKSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQsIGkpKTsKICAgICAgICAgIHdoaWxlIChpIDwgcGF0aC5sZW5ndGggJiYgcGF0aFtpXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgbGV0IHVwID0gMDsKICAgICAgZm9yIChpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb25zdCBwYXJ0ID0gcGFydHNbaV07CiAgICAgICAgaWYgKHBhcnQgPT09ICIuIikgewogICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwogICAgICAgIH0gZWxzZSBpZiAocGFydCA9PT0gIi4uIikgewogICAgICAgICAgdXArKzsKICAgICAgICB9IGVsc2UgaWYgKHVwID4gMCkgewogICAgICAgICAgaWYgKHBhcnQgPT09ICIiKSB7CiAgICAgICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApOwogICAgICAgICAgICB1cCA9IDA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7CiAgICAgICAgICAgIHVwLS07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHBhdGggPSBwYXJ0cy5qb2luKCIvIik7CiAgICAgIGlmIChwYXRoID09PSAiIikgewogICAgICAgIHBhdGggPSBpc0Fic29sdXRlID8gIi8iIDogIi4iOwogICAgICB9CiAgICAgIGlmICh1cmwzKSB7CiAgICAgICAgdXJsMy5wYXRoID0gcGF0aDsKICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUodXJsMyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGg7CiAgICB9KTsKICAgIGV4cG9ydHMyLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTsKICAgIGZ1bmN0aW9uIGpvaW4yKGFSb290LCBhUGF0aCkgewogICAgICBpZiAoYVJvb3QgPT09ICIiKSB7CiAgICAgICAgYVJvb3QgPSAiLiI7CiAgICAgIH0KICAgICAgaWYgKGFQYXRoID09PSAiIikgewogICAgICAgIGFQYXRoID0gIi4iOwogICAgICB9CiAgICAgIGNvbnN0IGFQYXRoVXJsID0gdXJsUGFyc2UoYVBhdGgpOwogICAgICBjb25zdCBhUm9vdFVybCA9IHVybFBhcnNlKGFSb290KTsKICAgICAgaWYgKGFSb290VXJsKSB7CiAgICAgICAgYVJvb3QgPSBhUm9vdFVybC5wYXRoIHx8ICIvIjsKICAgICAgfQogICAgICBpZiAoYVBhdGhVcmwgJiYgIWFQYXRoVXJsLnNjaGVtZSkgewogICAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgICAgYVBhdGhVcmwuc2NoZW1lID0gYVJvb3RVcmwuc2NoZW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUoYVBhdGhVcmwpOwogICAgICB9CiAgICAgIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkgewogICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgfQogICAgICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHsKICAgICAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICBjb25zdCBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiA/IGFQYXRoIDogbm9ybWFsaXplKGFSb290LnJlcGxhY2UoL1wvKyQvLCAiIikgKyAiLyIgKyBhUGF0aCk7CiAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgIGFSb290VXJsLnBhdGggPSBqb2luZWQ7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICByZXR1cm4gam9pbmVkOwogICAgfQogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uKGFQYXRoKSB7CiAgICAgIHJldHVybiBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiB8fCB1cmxSZWdleHAudGVzdChhUGF0aCk7CiAgICB9OwogICAgZnVuY3Rpb24gcmVsYXRpdmUoYVJvb3QsIGFQYXRoKSB7CiAgICAgIGlmIChhUm9vdCA9PT0gIiIpIHsKICAgICAgICBhUm9vdCA9ICIuIjsKICAgICAgfQogICAgICBhUm9vdCA9IGFSb290LnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgbGV0IGxldmVsID0gMDsKICAgICAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAiLyIpICE9PSAwKSB7CiAgICAgICAgY29uc3QgaW5kZXggPSBhUm9vdC5sYXN0SW5kZXhPZigiLyIpOwogICAgICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgICB9CiAgICAgICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7CiAgICAgICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXC9dKzpcLyk/XC8qJC8pKSB7CiAgICAgICAgICByZXR1cm4gYVBhdGg7CiAgICAgICAgfQogICAgICAgICsrbGV2ZWw7CiAgICAgIH0KICAgICAgcmV0dXJuIEFycmF5KGxldmVsICsgMSkuam9pbigiLi4vIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7CiAgICB9CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgdmFyIHN1cHBvcnRzTnVsbFByb3RvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IG9iaiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICByZXR1cm4gISgiX19wcm90b19fIiBpbiBvYmopOwogICAgfSgpOwogICAgZnVuY3Rpb24gaWRlbnRpdHkocykgewogICAgICByZXR1cm4gczsKICAgIH0KICAgIGZ1bmN0aW9uIHRvU2V0U3RyaW5nKGFTdHIpIHsKICAgICAgaWYgKGlzUHJvdG9TdHJpbmcoYVN0cikpIHsKICAgICAgICByZXR1cm4gIiQiICsgYVN0cjsKICAgICAgfQogICAgICByZXR1cm4gYVN0cjsKICAgIH0KICAgIGV4cG9ydHMyLnRvU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IHRvU2V0U3RyaW5nOwogICAgZnVuY3Rpb24gZnJvbVNldFN0cmluZyhhU3RyKSB7CiAgICAgIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7CiAgICAgICAgcmV0dXJuIGFTdHIuc2xpY2UoMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFTdHI7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IGZyb21TZXRTdHJpbmc7CiAgICBmdW5jdGlvbiBpc1Byb3RvU3RyaW5nKHMpIHsKICAgICAgaWYgKCFzKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0IGxlbmd0aCA9IHMubGVuZ3RoOwogICAgICBpZiAobGVuZ3RoIDwgOSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBpZiAocy5jaGFyQ29kZUF0KGxlbmd0aCAtIDEpICE9PSA5NSB8fCBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMikgIT09IDk1IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSAzKSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA0KSAhPT0gMTE2IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA2KSAhPT0gMTE0IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA3KSAhPT0gMTEyIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgfHwgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gbGVuZ3RoIC0gMTA7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgaWYgKHMuY2hhckNvZGVBdChpKSAhPT0gMzYpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyhtYXBwaW5nQSwgbWFwcGluZ0IsIG9ubHlDb21wYXJlT3JpZ2luYWwpIHsKICAgICAgbGV0IGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICByZXR1cm4gc3RyY21wKG1hcHBpbmdBLm5hbWUsIG1hcHBpbmdCLm5hbWUpOwogICAgfQogICAgZXhwb3J0czIuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMgPSBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9uczsKICAgIGZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQ7CiAgICBmdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7CiAgICAgIGlmIChhU3RyMSA9PT0gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMDsKICAgICAgfQogICAgICBpZiAoYVN0cjEgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBpZiAoYVN0cjIgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgaWYgKGFTdHIxID4gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQ7CiAgICBmdW5jdGlvbiBwYXJzZVNvdXJjZU1hcElucHV0KHN0cjIpIHsKICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyMi5yZXBsYWNlKC9eXCldfSdbXlxuXSpcbi8sICIiKSk7CiAgICB9CiAgICBleHBvcnRzMi5wYXJzZVNvdXJjZU1hcElucHV0ID0gcGFyc2VTb3VyY2VNYXBJbnB1dDsKICAgIGZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpIHsKICAgICAgc291cmNlVVJMID0gc291cmNlVVJMIHx8ICIiOwogICAgICBpZiAoc291cmNlUm9vdCkgewogICAgICAgIGlmIChzb3VyY2VSb290W3NvdXJjZVJvb3QubGVuZ3RoIC0gMV0gIT09ICIvIiAmJiBzb3VyY2VVUkxbMF0gIT09ICIvIikgewogICAgICAgICAgc291cmNlUm9vdCArPSAiLyI7CiAgICAgICAgfQogICAgICAgIHNvdXJjZVVSTCA9IHNvdXJjZVJvb3QgKyBzb3VyY2VVUkw7CiAgICAgIH0KICAgICAgaWYgKHNvdXJjZU1hcFVSTCkgewogICAgICAgIGNvbnN0IHBhcnNlZCA9IHVybFBhcnNlKHNvdXJjZU1hcFVSTCk7CiAgICAgICAgaWYgKCFwYXJzZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic291cmNlTWFwVVJMIGNvdWxkIG5vdCBiZSBwYXJzZWQiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5wYXRoKSB7CiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlZC5wYXRoLmxhc3RJbmRleE9mKCIvIik7CiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgICBwYXJzZWQucGF0aCA9IHBhcnNlZC5wYXRoLnN1YnN0cmluZygwLCBpbmRleCArIDEpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzb3VyY2VVUkwgPSBqb2luMih1cmxHZW5lcmF0ZShwYXJzZWQpLCBzb3VyY2VVUkwpOwogICAgICB9CiAgICAgIHJldHVybiBub3JtYWxpemUoc291cmNlVVJMKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXB1dGVTb3VyY2VVUkwgPSBjb21wdXRlU291cmNlVVJMOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzCnZhciByZXF1aXJlX2FycmF5X3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzIihleHBvcnRzMikgewogICAgdmFyIEFycmF5U2V0ID0gY2xhc3MgX0FycmF5U2V0IHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5fYXJyYXkgPSBbXTsKICAgICAgICB0aGlzLl9zZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS4KICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tQXJyYXkoYUFycmF5LCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3Qgc2V0MiA9IG5ldyBfQXJyYXlTZXQoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYUFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBzZXQyLmFkZChhQXJyYXlbaV0sIGFBbGxvd0R1cGxpY2F0ZXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0MjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW4KICAgICAgICogYWRkZWQsIHRoYW4gdGhvc2UgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHNpemUuCiAgICAgICAqCiAgICAgICAqIEByZXR1cm5zIE51bWJlcgogICAgICAgKi8KICAgICAgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fc2V0LnNpemU7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoaXMgc2V0LgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGFkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmhhcyhhU3RyKTsKICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9hcnJheS5sZW5ndGg7CiAgICAgICAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgICB0aGlzLl9hcnJheS5wdXNoKGFTdHIpOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7CiAgICAgICAgICB0aGlzLl9zZXQuc2V0KGFTdHIsIGlkeCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJcyB0aGUgZ2l2ZW4gc3RyaW5nIGEgbWVtYmVyIG9mIHRoaXMgc2V0PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGhhcyhhU3RyKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGluZGV4T2YoYVN0cikgewogICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7CiAgICAgICAgaWYgKGlkeCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gaWR4OwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVN0ciArICciIGlzIG5vdCBpbiB0aGUgc2V0LicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXaGF0IGlzIHRoZSBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleD8KICAgICAgICoKICAgICAgICogQHBhcmFtIE51bWJlciBhSWR4CiAgICAgICAqLwogICAgICBhdChhSWR4KSB7CiAgICAgICAgaWYgKGFJZHggPj0gMCAmJiBhSWR4IDwgdGhpcy5fYXJyYXkubGVuZ3RoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYXJyYXlbYUlkeF07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBFcnJvcigiTm8gZWxlbWVudCBpbmRleGVkIGJ5ICIgKyBhSWR4KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgKHdoaWNoIGhhcyB0aGUgcHJvcGVyIGluZGljZXMKICAgICAgICogaW5kaWNhdGVkIGJ5IGluZGV4T2YpLiBOb3RlIHRoYXQgdGhpcyBpcyBhIGNvcHkgb2YgdGhlIGludGVybmFsIGFycmF5IHVzZWQKICAgICAgICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS4KICAgICAgICovCiAgICAgIHRvQXJyYXkoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5LnNsaWNlKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BcnJheVNldCA9IEFycmF5U2V0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzCnZhciByZXF1aXJlX21hcHBpbmdfbGlzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzIihleHBvcnRzMikgewogICAgdmFyIHV0aWwgPSByZXF1aXJlX3V0aWwyKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKG1hcHBpbmdBLCBtYXBwaW5nQikgewogICAgICBjb25zdCBsaW5lQSA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmU7CiAgICAgIGNvbnN0IGxpbmVCID0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTsKICAgICAgY29uc3QgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjsKICAgICAgY29uc3QgY29sdW1uQiA9IG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjsKICAgICAgcmV0dXJuIGxpbmVCID4gbGluZUEgfHwgbGluZUIgPT0gbGluZUEgJiYgY29sdW1uQiA+PSBjb2x1bW5BIHx8IHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCKSA8PSAwOwogICAgfQogICAgdmFyIE1hcHBpbmdMaXN0ID0gY2xhc3MgewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLl9hcnJheSA9IFtdOwogICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgdGhpcy5fbGFzdCA9IHsgZ2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMCB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJdGVyYXRlIHRocm91Z2ggaW50ZXJuYWwgaXRlbXMuIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBzYW1lIGFyZ3VtZW50cyB0aGF0CiAgICAgICAqIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgdGFrZXMuCiAgICAgICAqCiAgICAgICAqIE5PVEU6IFRoZSBvcmRlciBvZiB0aGUgbWFwcGluZ3MgaXMgTk9UIGd1YXJhbnRlZWQuCiAgICAgICAqLwogICAgICB1bnNvcnRlZEZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZykgewogICAgICAgIHRoaXMuX2FycmF5LmZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc291cmNlIG1hcHBpbmcuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmcKICAgICAgICovCiAgICAgIGFkZChhTWFwcGluZykgewogICAgICAgIGlmIChnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKHRoaXMuX2xhc3QsIGFNYXBwaW5nKSkgewogICAgICAgICAgdGhpcy5fbGFzdCA9IGFNYXBwaW5nOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBmbGF0LCBzb3J0ZWQgYXJyYXkgb2YgbWFwcGluZ3MuIFRoZSBtYXBwaW5ncyBhcmUgc29ydGVkIGJ5CiAgICAgICAqIGdlbmVyYXRlZCBwb3NpdGlvbi4KICAgICAgICoKICAgICAgICogV0FSTklORzogVGhpcyBtZXRob2QgcmV0dXJucyBpbnRlcm5hbCBkYXRhIHdpdGhvdXQgY29weWluZywgZm9yCiAgICAgICAqIHBlcmZvcm1hbmNlLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgTk9UIGJlIG11dGF0ZWQsIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcwogICAgICAgKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93bgogICAgICAgKiBjb3B5LgogICAgICAgKi8KICAgICAgdG9BcnJheSgpIHsKICAgICAgICBpZiAoIXRoaXMuX3NvcnRlZCkgewogICAgICAgICAgdGhpcy5fYXJyYXkuc29ydCh1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKTsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9hcnJheTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcwp2YXIgcmVxdWlyZV9zb3VyY2VfbWFwX2dlbmVyYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1nZW5lcmF0b3IuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgYmFzZTY0VkxRID0gcmVxdWlyZV9iYXNlNjRfdmxxKCk7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBBcnJheVNldCA9IHJlcXVpcmVfYXJyYXlfc2V0KCkuQXJyYXlTZXQ7CiAgICB2YXIgTWFwcGluZ0xpc3QgPSByZXF1aXJlX21hcHBpbmdfbGlzdCgpLk1hcHBpbmdMaXN0OwogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IGNsYXNzIF9Tb3VyY2VNYXBHZW5lcmF0b3IgewogICAgICBjb25zdHJ1Y3RvcihhQXJncykgewogICAgICAgIGlmICghYUFyZ3MpIHsKICAgICAgICAgIGFBcmdzID0ge307CiAgICAgICAgfQogICAgICAgIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgImZpbGUiLCBudWxsKTsKICAgICAgICB0aGlzLl9zb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2VSb290IiwgbnVsbCk7CiAgICAgICAgdGhpcy5fc2tpcFZhbGlkYXRpb24gPSB1dGlsLmdldEFyZyhhQXJncywgInNraXBWYWxpZGF0aW9uIiwgZmFsc2UpOwogICAgICAgIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICB0aGlzLl9uYW1lcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgIHRoaXMuX21hcHBpbmdzID0gbmV3IE1hcHBpbmdMaXN0KCk7CiAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lcgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAuCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHsKICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZVJvb3Q7CiAgICAgICAgY29uc3QgZ2VuZXJhdG9yID0gbmV3IF9Tb3VyY2VNYXBHZW5lcmF0b3IoewogICAgICAgICAgZmlsZTogYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUsCiAgICAgICAgICBzb3VyY2VSb290CiAgICAgICAgfSk7CiAgICAgICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGNvbnN0IG5ld01hcHBpbmcgPSB7CiAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkgewogICAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmV3TWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG5ld01hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXdNYXBwaW5nLm9yaWdpbmFsID0gewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGdlbmVyYXRvci5hZGRNYXBwaW5nKG5ld01hcHBpbmcpOwogICAgICAgIH0pOwogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgbGV0IHNvdXJjZVJlbGF0aXZlID0gc291cmNlRmlsZTsKICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9PSBudWxsKSB7CiAgICAgICAgICAgIHNvdXJjZVJlbGF0aXZlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZ2VuZXJhdG9yLl9zb3VyY2VzLmhhcyhzb3VyY2VSZWxhdGl2ZSkpIHsKICAgICAgICAgICAgZ2VuZXJhdG9yLl9zb3VyY2VzLmFkZChzb3VyY2VSZWxhdGl2ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7CiAgICAgICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7CiAgICAgICAgICAgIGdlbmVyYXRvci5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBnZW5lcmF0b3I7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHNpbmdsZSBtYXBwaW5nIGZyb20gb3JpZ2luYWwgc291cmNlIGxpbmUgYW5kIGNvbHVtbiB0byB0aGUgZ2VuZXJhdGVkCiAgICAgICAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBmb3IgdGhpcyBzb3VyY2UgbWFwIGJlaW5nIGNyZWF0ZWQuIFRoZSBtYXBwaW5nCiAgICAgICAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBnZW5lcmF0ZWQ6IEFuIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIChyZWxhdGl2ZSB0byB0aGUgc291cmNlUm9vdCkuCiAgICAgICAqICAgLSBuYW1lOiBBbiBvcHRpb25hbCBvcmlnaW5hbCB0b2tlbiBuYW1lIGZvciB0aGlzIG1hcHBpbmcuCiAgICAgICAqLwogICAgICBhZGRNYXBwaW5nKGFBcmdzKSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJnZW5lcmF0ZWQiKTsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAib3JpZ2luYWwiLCBudWxsKTsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICBsZXQgbmFtZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibmFtZSIsIG51bGwpOwogICAgICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHsKICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKICAgICAgICAgIHNvdXJjZSA9IFN0cmluZyhzb3VyY2UpOwogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKICAgICAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSk7CiAgICAgICAgICBpZiAoIXRoaXMuX25hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbiwKICAgICAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLAogICAgICAgICAgc291cmNlLAogICAgICAgICAgbmFtZQogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTZXQgdGhlIHNvdXJjZSBjb250ZW50IGZvciBhIHNvdXJjZSBmaWxlLgogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICBsZXQgc291cmNlID0gYVNvdXJjZUZpbGU7CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZVJvb3QgIT0gbnVsbCkgewogICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLl9zb3VyY2VSb290LCBzb3VyY2UpOwogICAgICAgIH0KICAgICAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhzb3VyY2UpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV07CiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fc291cmNlc0NvbnRlbnRzKS5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlCiAgICAgICAqIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkLiBFYWNoIG1hcHBpbmcgdG8gdGhlIHN1cHBsaWVkIHNvdXJjZSBmaWxlIGlzCiAgICAgICAqIHJld3JpdHRlbiB1c2luZyB0aGUgc3VwcGxpZWQgc291cmNlIG1hcC4gTm90ZTogVGhlIHJlc29sdXRpb24gZm9yIHRoZQogICAgICAgKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBzb3VyY2UgbWFwIHRvIGJlIGFwcGxpZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS4KICAgICAgICogICAgICAgIElmIG9taXR0ZWQsIFNvdXJjZU1hcENvbnN1bWVyJ3MgZmlsZSBwcm9wZXJ0eSB3aWxsIGJlIHVzZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwUGF0aCBPcHRpb25hbC4gVGhlIGRpcm5hbWUgb2YgdGhlIHBhdGggdG8gdGhlIHNvdXJjZSBtYXAKICAgICAgICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuCiAgICAgICAqICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBuZWVkZWQgd2hlbiB0aGUgdHdvIHNvdXJjZSBtYXBzIGFyZW4ndCBpbiB0aGUgc2FtZQogICAgICAgKiAgICAgICAgZGlyZWN0b3J5LCBhbmQgdGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZCBjb250YWlucyByZWxhdGl2ZSBzb3VyY2UKICAgICAgICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuCiAgICAgICAqICAgICAgICByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKi8KICAgICAgYXBwbHlTb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyLCBhU291cmNlRmlsZSwgYVNvdXJjZU1hcFBhdGgpIHsKICAgICAgICBsZXQgc291cmNlRmlsZSA9IGFTb3VyY2VGaWxlOwogICAgICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7CiAgICAgICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYFNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCBvciB0aGUgc291cmNlIG1hcCdzICJmaWxlIiBwcm9wZXJ0eS4gQm90aCB3ZXJlIG9taXR0ZWQuYAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlRmlsZSA9IGFTb3VyY2VNYXBDb25zdW1lci5maWxlOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDsKICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBzb3VyY2VGaWxlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3U291cmNlcyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKS5sZW5ndGggPiAwID8gbmV3IEFycmF5U2V0KCkgOiB0aGlzLl9zb3VyY2VzOwogICAgICAgIGNvbnN0IG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7CiAgICAgICAgdGhpcy5fbWFwcGluZ3MudW5zb3J0ZWRGb3JFYWNoKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gYVNvdXJjZU1hcENvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3IoewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7CiAgICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTsKICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWwuY29sdW1uOwogICAgICAgICAgICAgIGlmIChvcmlnaW5hbC5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcubmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBtYXBwaW5nLnNvdXJjZTsKICAgICAgICAgIGlmIChzb3VyY2UgIT0gbnVsbCAmJiAhbmV3U291cmNlcy5oYXMoc291cmNlKSkgewogICAgICAgICAgICBuZXdTb3VyY2VzLmFkZChzb3VyY2UpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbmFtZSA9IG1hcHBpbmcubmFtZTsKICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgIW5ld05hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICBuZXdOYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgdGhpcyk7CiAgICAgICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7CiAgICAgICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lczsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNyY0ZpbGUpIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzcmNGaWxlKTsKICAgICAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICBzcmNGaWxlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBzcmNGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc3JjRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc3JjRmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zZXRTb3VyY2VDb250ZW50KHNyY0ZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YToKICAgICAgICoKICAgICAgICogICAxLiBKdXN0IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uCiAgICAgICAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgMy4gR2VuZXJhdGVkIGFuZCBvcmlnaW5hbCBwb3NpdGlvbiwgb3JpZ2luYWwgc291cmNlLCBhcyB3ZWxsIGFzIGEgbmFtZQogICAgICAgKiAgICAgIHRva2VuLgogICAgICAgKgogICAgICAgKiBUbyBtYWludGFpbiBjb25zaXN0ZW5jeSwgd2UgdmFsaWRhdGUgdGhhdCBhbnkgbmV3IG1hcHBpbmcgYmVpbmcgYWRkZWQgZmFsbHMKICAgICAgICogaW4gdG8gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuCiAgICAgICAqLwogICAgICBfdmFsaWRhdGVNYXBwaW5nKGFHZW5lcmF0ZWQsIGFPcmlnaW5hbCwgYVNvdXJjZSwgYU5hbWUpIHsKICAgICAgICBpZiAoYU9yaWdpbmFsICYmIHR5cGVvZiBhT3JpZ2luYWwubGluZSAhPT0gIm51bWJlciIgJiYgdHlwZW9mIGFPcmlnaW5hbC5jb2x1bW4gIT09ICJudW1iZXIiKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICJvcmlnaW5hbC5saW5lIGFuZCBvcmlnaW5hbC5jb2x1bW4gYXJlIG5vdCBudW1iZXJzIC0tIHlvdSBwcm9iYWJseSBtZWFudCB0byBvbWl0IHRoZSBvcmlnaW5hbCBtYXBwaW5nIGVudGlyZWx5IGFuZCBvbmx5IG1hcCB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9uLiBJZiBzbywgcGFzcyBudWxsIGZvciB0aGUgb3JpZ2luYWwgbWFwcGluZyBpbnN0ZWFkIG9mIGFuIG9iamVjdCB3aXRoIGVtcHR5IG9yIG51bGwgdmFsdWVzLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwICYmICFhT3JpZ2luYWwgJiYgIWFTb3VyY2UgJiYgIWFOYW1lKSB7CiAgICAgICAgfSBlbHNlIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYU9yaWdpbmFsICYmICJsaW5lIiBpbiBhT3JpZ2luYWwgJiYgImNvbHVtbiIgaW4gYU9yaWdpbmFsICYmIGFHZW5lcmF0ZWQubGluZSA+IDAgJiYgYUdlbmVyYXRlZC5jb2x1bW4gPj0gMCAmJiBhT3JpZ2luYWwubGluZSA+IDAgJiYgYU9yaWdpbmFsLmNvbHVtbiA+PSAwICYmIGFTb3VyY2UpIHsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hcHBpbmc6ICIgKyBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCwKICAgICAgICAgICAgc291cmNlOiBhU291cmNlLAogICAgICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLAogICAgICAgICAgICBuYW1lOiBhTmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogU2VyaWFsaXplIHRoZSBhY2N1bXVsYXRlZCBtYXBwaW5ncyBpbiB0byB0aGUgc3RyZWFtIG9mIGJhc2UgNjQgVkxRcwogICAgICAgKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LgogICAgICAgKi8KICAgICAgX3NlcmlhbGl6ZU1hcHBpbmdzKCkgewogICAgICAgIGxldCBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzR2VuZXJhdGVkTGluZSA9IDE7CiAgICAgICAgbGV0IHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSAwOwogICAgICAgIGxldCBwcmV2aW91c09yaWdpbmFsTGluZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzTmFtZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzU291cmNlID0gMDsKICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CiAgICAgICAgbGV0IG5leHQ7CiAgICAgICAgbGV0IG1hcHBpbmc7CiAgICAgICAgbGV0IG5hbWVJZHg7CiAgICAgICAgbGV0IHNvdXJjZUlkeDsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIG1hcHBpbmcgPSBtYXBwaW5nc1tpXTsKICAgICAgICAgIG5leHQgPSAiIjsKICAgICAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgICAgIHdoaWxlIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIG5leHQgKz0gIjsiOwogICAgICAgICAgICAgIHByZXZpb3VzR2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgIGlmICghdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nLCBtYXBwaW5nc1tpIC0gMV0pKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCArPSAiLCI7CiAgICAgICAgICB9CiAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlSWR4ID0gdGhpcy5fc291cmNlcy5pbmRleE9mKG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKHNvdXJjZUlkeCAtIHByZXZpb3VzU291cmNlKTsKICAgICAgICAgICAgcHJldmlvdXNTb3VyY2UgPSBzb3VyY2VJZHg7CiAgICAgICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDEgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7CiAgICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxOwogICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbENvbHVtbiAtIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4pOwogICAgICAgICAgICBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmFtZUlkeCA9IHRoaXMuX25hbWVzLmluZGV4T2YobWFwcGluZy5uYW1lKTsKICAgICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobmFtZUlkeCAtIHByZXZpb3VzTmFtZSk7CiAgICAgICAgICAgICAgcHJldmlvdXNOYW1lID0gbmFtZUlkeDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9IG5leHQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgX2dlbmVyYXRlU291cmNlc0NvbnRlbnQoYVNvdXJjZXMsIGFTb3VyY2VSb290KSB7CiAgICAgICAgcmV0dXJuIGFTb3VyY2VzLm1hcChmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICAgIGlmICghdGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFTb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZShhU291cmNlUm9vdCwgc291cmNlKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTsKICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV0gOiBudWxsOwogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBFeHRlcm5hbGl6ZSB0aGUgc291cmNlIG1hcC4KICAgICAgICovCiAgICAgIHRvSlNPTigpIHsKICAgICAgICBjb25zdCBtYXAyID0gewogICAgICAgICAgdmVyc2lvbjogdGhpcy5fdmVyc2lvbiwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLAogICAgICAgICAgbmFtZXM6IHRoaXMuX25hbWVzLnRvQXJyYXkoKSwKICAgICAgICAgIG1hcHBpbmdzOiB0aGlzLl9zZXJpYWxpemVNYXBwaW5ncygpCiAgICAgICAgfTsKICAgICAgICBpZiAodGhpcy5fZmlsZSAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLmZpbGUgPSB0aGlzLl9maWxlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZVJvb3QgPSB0aGlzLl9zb3VyY2VSb290OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZXNDb250ZW50ID0gdGhpcy5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChtYXAyLnNvdXJjZXMsIG1hcDIuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZW5kZXIgdGhlIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkIHRvIGEgc3RyaW5nLgogICAgICAgKi8KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBHZW5lcmF0b3IgPSBTb3VyY2VNYXBHZW5lcmF0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iaW5hcnktc2VhcmNoLmpzCnZhciByZXF1aXJlX2JpbmFyeV9zZWFyY2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2JpbmFyeS1zZWFyY2guanMiKGV4cG9ydHMyKSB7CiAgICBleHBvcnRzMi5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBleHBvcnRzMi5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBmdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7CiAgICAgIGNvbnN0IG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7CiAgICAgIGNvbnN0IGNtcCA9IGFDb21wYXJlKGFOZWVkbGUsIGFIYXlzdGFja1ttaWRdLCB0cnVlKTsKICAgICAgaWYgKGNtcCA9PT0gMCkgewogICAgICAgIHJldHVybiBtaWQ7CiAgICAgIH0gZWxzZSBpZiAoY21wID4gMCkgewogICAgICAgIGlmIChhSGlnaCAtIG1pZCA+IDEpIHsKICAgICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2gobWlkLCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpOwogICAgICAgIH0KICAgICAgICBpZiAoYUJpYXMgPT0gZXhwb3J0czIuTEVBU1RfVVBQRVJfQk9VTkQpIHsKICAgICAgICAgIHJldHVybiBhSGlnaCA8IGFIYXlzdGFjay5sZW5ndGggPyBhSGlnaCA6IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbWlkOwogICAgICB9CiAgICAgIGlmIChtaWQgLSBhTG93ID4gMSkgewogICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7CiAgICAgIH0KICAgICAgaWYgKGFCaWFzID09IGV4cG9ydHMyLkxFQVNUX1VQUEVSX0JPVU5EKSB7CiAgICAgICAgcmV0dXJuIG1pZDsKICAgICAgfQogICAgICByZXR1cm4gYUxvdyA8IDAgPyAtMSA6IGFMb3c7CiAgICB9CiAgICBleHBvcnRzMi5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHsKICAgICAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgbGV0IGluZGV4ID0gcmVjdXJzaXZlU2VhcmNoKAogICAgICAgIC0xLAogICAgICAgIGFIYXlzdGFjay5sZW5ndGgsCiAgICAgICAgYU5lZWRsZSwKICAgICAgICBhSGF5c3RhY2ssCiAgICAgICAgYUNvbXBhcmUsCiAgICAgICAgYUJpYXMgfHwgZXhwb3J0czIuR1JFQVRFU1RfTE9XRVJfQk9VTkQKICAgICAgKTsKICAgICAgaWYgKGluZGV4IDwgMCkgewogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICB3aGlsZSAoaW5kZXggLSAxID49IDApIHsKICAgICAgICBpZiAoYUNvbXBhcmUoYUhheXN0YWNrW2luZGV4XSwgYUhheXN0YWNrW2luZGV4IC0gMV0sIHRydWUpICE9PSAwKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLS1pbmRleDsKICAgICAgfQogICAgICByZXR1cm4gaW5kZXg7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzCnZhciByZXF1aXJlX3JlYWRfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGlzQnJvd3NlckVudmlyb25tZW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzID09PSB3aW5kb3c7CiAgICB9LmNhbGwoKTsKICAgIGlmIChpc0Jyb3dzZXJFbnZpcm9ubWVudCkgewogICAgICBsZXQgbWFwcGluZ3NXYXNtID0gbnVsbDsKICAgICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gcmVhZFdhc20oKSB7CiAgICAgICAgaWYgKHR5cGVvZiBtYXBwaW5nc1dhc20gPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gZmV0Y2gobWFwcGluZ3NXYXNtKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChtYXBwaW5nc1dhc20gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYXBwaW5nc1dhc20pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIllvdSBtdXN0IHByb3ZpZGUgdGhlIHN0cmluZyBVUkwgb3IgQXJyYXlCdWZmZXIgY29udGVudHMgb2YgbGliL21hcHBpbmdzLndhc20gYnkgY2FsbGluZyBTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKHsgJ2xpYi9tYXBwaW5ncy53YXNtJzogLi4uIH0pIGJlZm9yZSB1c2luZyBTb3VyY2VNYXBDb25zdW1lciIpOwogICAgICB9OwogICAgICBtb2R1bGUyLmV4cG9ydHMuaW5pdGlhbGl6ZSA9IChpbnB1dCkgPT4gbWFwcGluZ3NXYXNtID0gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICBjb25zdCBmcyA9IHJlcXVpcmUoImZzIik7CiAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCJwYXRoIik7CiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlYWRXYXNtKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICBjb25zdCB3YXNtUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICJtYXBwaW5ncy53YXNtIik7CiAgICAgICAgICBmcy5yZWFkRmlsZSh3YXNtUGF0aCwgbnVsbCwgKGVycm9yLCBkYXRhKSA9PiB7CiAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgIHJlamVjdChlcnJvcik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc29sdmUoZGF0YS5idWZmZXIpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIG1vZHVsZTIuZXhwb3J0cy5pbml0aWFsaXplID0gKF8pID0+IHsKICAgICAgICBjb25zb2xlLmRlYnVnKCJTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplIGlzIGEgbm8tb3Agd2hlbiBydW5uaW5nIGluIG5vZGUuanMiKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3dhc20uanMKdmFyIHJlcXVpcmVfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvd2FzbS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICBmdW5jdGlvbiBNYXBwaW5nKCkgewogICAgICB0aGlzLmdlbmVyYXRlZExpbmUgPSAwOwogICAgICB0aGlzLmdlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgIHRoaXMubGFzdEdlbmVyYXRlZENvbHVtbiA9IG51bGw7CiAgICAgIHRoaXMuc291cmNlID0gbnVsbDsKICAgICAgdGhpcy5vcmlnaW5hbExpbmUgPSBudWxsOwogICAgICB0aGlzLm9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgdGhpcy5uYW1lID0gbnVsbDsKICAgIH0KICAgIHZhciBjYWNoZWRXYXNtID0gbnVsbDsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHdhc20oKSB7CiAgICAgIGlmIChjYWNoZWRXYXNtKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlZFdhc207CiAgICAgIH0KICAgICAgY29uc3QgY2FsbGJhY2tTdGFjayA9IFtdOwogICAgICBjYWNoZWRXYXNtID0gcmVhZFdhc20oKS50aGVuKChidWZmZXIpID0+IHsKICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnVmZmVyLCB7CiAgICAgICAgICBlbnY6IHsKICAgICAgICAgICAgbWFwcGluZ19jYWxsYmFjayhnZW5lcmF0ZWRMaW5lLCBnZW5lcmF0ZWRDb2x1bW4sIGhhc0xhc3RHZW5lcmF0ZWRDb2x1bW4sIGxhc3RHZW5lcmF0ZWRDb2x1bW4sIGhhc09yaWdpbmFsLCBzb3VyY2UsIG9yaWdpbmFsTGluZSwgb3JpZ2luYWxDb2x1bW4sIGhhc05hbWUsIG5hbWUpIHsKICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBnZW5lcmF0ZWRMaW5lICsgMTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IGdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgICAgICBpZiAoaGFzTGFzdEdlbmVyYXRlZENvbHVtbikgewogICAgICAgICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbGFzdEdlbmVyYXRlZENvbHVtbiAtIDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChoYXNPcmlnaW5hbCkgewogICAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsTGluZSArIDE7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWxDb2x1bW47CiAgICAgICAgICAgICAgICBpZiAoaGFzTmFtZSkgewogICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYWxsYmFja1N0YWNrW2NhbGxiYWNrU3RhY2subGVuZ3RoIC0gMV0obWFwcGluZyk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2FsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImFsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfZ2VuZXJhdGVkX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImdlbmVyYXRlZF9sb2NhdGlvbl9mb3IiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2dlbmVyYXRlZF9sb2NhdGlvbl9mb3IoKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJnZW5lcmF0ZWRfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X29yaWdpbmFsX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoIm9yaWdpbmFsX2xvY2F0aW9uX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfb3JpZ2luYWxfbG9jYXRpb25fZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgib3JpZ2luYWxfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzdGFydF9zb3J0X2J5X29yaWdpbmFsX2xvY2F0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgic29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoInNvcnRfYnlfb3JpZ2luYWxfbG9jYXRpb24iKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KS50aGVuKChXYXNtKSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGV4cG9ydHM6IFdhc20uaW5zdGFuY2UuZXhwb3J0cywKICAgICAgICAgIHdpdGhNYXBwaW5nQ2FsbGJhY2s6IChtYXBwaW5nQ2FsbGJhY2ssIGYpID0+IHsKICAgICAgICAgICAgY2FsbGJhY2tTdGFjay5wdXNoKG1hcHBpbmdDYWxsYmFjayk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZigpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGNhbGxiYWNrU3RhY2sucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KS50aGVuKG51bGwsIChlKSA9PiB7CiAgICAgICAgY2FjaGVkV2FzbSA9IG51bGw7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfSk7CiAgICAgIHJldHVybiBjYWNoZWRXYXNtOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1tYXAtY29uc3VtZXIuanMKdmFyIHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIoZXhwb3J0czIpIHsKICAgIHZhciB1dGlsID0gcmVxdWlyZV91dGlsMigpOwogICAgdmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmVfYmluYXJ5X3NlYXJjaCgpOwogICAgdmFyIEFycmF5U2V0ID0gcmVxdWlyZV9hcnJheV9zZXQoKS5BcnJheVNldDsKICAgIHZhciBiYXNlNjRWTFEgPSByZXF1aXJlX2Jhc2U2NF92bHEoKTsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICB2YXIgd2FzbSA9IHJlcXVpcmVfd2FzbSgpOwogICAgdmFyIElOVEVSTkFMID0gU3ltYm9sKCJzbWNJbnRlcm5hbCIpOwogICAgdmFyIFNvdXJjZU1hcENvbnN1bWVyID0gY2xhc3MgX1NvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIGlmIChhU291cmNlTWFwID09IElOVEVSTkFMKSB7CiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX2ZhY3RvcnkoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIH0KICAgICAgc3RhdGljIGluaXRpYWxpemUob3B0cykgewogICAgICAgIHJlYWRXYXNtLmluaXRpYWxpemUob3B0c1sibGliL21hcHBpbmdzLndhc20iXSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBfZmFjdG9yeUJTTShhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29uc3RydWN0IGEgbmV3IGBTb3VyY2VNYXBDb25zdW1lcmAgZnJvbSBgcmF3U291cmNlTWFwYCBhbmQgYHNvdXJjZU1hcFVybGAKICAgICAgICogKHNlZSB0aGUgYFNvdXJjZU1hcENvbnN1bWVyYCBjb25zdHJ1Y3RvciBmb3IgZGV0YWlscy4gVGhlbiwgaW52b2tlIHRoZSBgYXN5bmMKICAgICAgICogZnVuY3Rpb24gZihTb3VyY2VNYXBDb25zdW1lcikgLT4gVGAgd2l0aCB0aGUgbmV3bHkgY29uc3RydWN0ZWQgY29uc3VtZXIsIHdhaXQKICAgICAgICogZm9yIGBmYCB0byBjb21wbGV0ZSwgY2FsbCBgZGVzdHJveWAgb24gdGhlIGNvbnN1bWVyLCBhbmQgcmV0dXJuIGBmYCdzIHJldHVybgogICAgICAgKiB2YWx1ZS4KICAgICAgICoKICAgICAgICogWW91IG11c3Qgbm90IHVzZSB0aGUgY29uc3VtZXIgYWZ0ZXIgYGZgIGNvbXBsZXRlcyEKICAgICAgICoKICAgICAgICogQnkgdXNpbmcgYHdpdGhgLCB5b3UgZG8gbm90IGhhdmUgdG8gcmVtZW1iZXIgdG8gbWFudWFsbHkgY2FsbCBgZGVzdHJveWAgb24KICAgICAgICogdGhlIGNvbnN1bWVyLCBzaW5jZSBpdCB3aWxsIGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IG9uY2UgYGZgIGNvbXBsZXRlcy4KICAgICAgICoKICAgICAgICogYGBganMKICAgICAgICogY29uc3QgeFNxdWFyZWQgPSBhd2FpdCBTb3VyY2VNYXBDb25zdW1lci53aXRoKAogICAgICAgKiAgIG15UmF3U291cmNlTWFwLAogICAgICAgKiAgIG51bGwsCiAgICAgICAqICAgYXN5bmMgZnVuY3Rpb24gKGNvbnN1bWVyKSB7CiAgICAgICAqICAgICAvLyBVc2UgYGNvbnN1bWVyYCBpbnNpZGUgaGVyZSBhbmQgZG9uJ3Qgd29ycnkgYWJvdXQgcmVtZW1iZXJpbmcKICAgICAgICogICAgIC8vIHRvIGNhbGwgYGRlc3Ryb3lgLgogICAgICAgKgogICAgICAgKiAgICAgY29uc3QgeCA9IGF3YWl0IHdoYXRldmVyKGNvbnN1bWVyKTsKICAgICAgICogICAgIHJldHVybiB4ICogeDsKICAgICAgICogICB9CiAgICAgICAqICk7CiAgICAgICAqCiAgICAgICAqIC8vIFlvdSBtYXkgbm90IHVzZSB0aGF0IGBjb25zdW1lcmAgYW55bW9yZSBvdXQgaGVyZTsgaXQgaGFzCiAgICAgICAqIC8vIGJlZW4gZGVzdHJveWVkLiBCdXQgeW91IGNhbiB1c2UgYHhTcXVhcmVkYC4KICAgICAgICogY29uc29sZS5sb2coeFNxdWFyZWQpOwogICAgICAgKiBgYGAKICAgICAgICovCiAgICAgIHN0YXRpYyBhc3luYyB3aXRoKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsLCBmKSB7CiAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBuZXcgX1NvdXJjZU1hcENvbnN1bWVyKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsKTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGF3YWl0IGYoY29uc3VtZXIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjb25zdW1lci5kZXN0cm95KCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5CiAgICAgICAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZAogICAgICAgKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLgogICAgICAgKi8KICAgICAgX3BhcnNlTWFwcGluZ3MoYVN0ciwgYVNvdXJjZVJvb3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgX3BhcnNlTWFwcGluZ3MiKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogSXRlcmF0ZSBvdmVyIGVhY2ggbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIHNvdXJjZS9saW5lL2NvbHVtbiBhbmQgYQogICAgICAgKiBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gaW4gdGhpcyBzb3VyY2UgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gRnVuY3Rpb24gYUNhbGxiYWNrCiAgICAgICAqICAgICAgICBUaGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2l0aCBlYWNoIG1hcHBpbmcuCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHQKICAgICAgICogICAgICAgIE9wdGlvbmFsLiBJZiBzcGVjaWZpZWQsIHRoaXMgb2JqZWN0IHdpbGwgYmUgdGhlIHZhbHVlIG9mIGB0aGlzYCBldmVyeQogICAgICAgKiAgICAgICAgdGltZSB0aGF0IGBhQ2FsbGJhY2tgIGlzIGNhbGxlZC4KICAgICAgICogQHBhcmFtIGFPcmRlcgogICAgICAgKiAgICAgICAgRWl0aGVyIGBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVJgIG9yCiAgICAgICAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVJgLiBTcGVjaWZpZXMgd2hldGhlciB5b3Ugd2FudCB0bwogICAgICAgKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW4KICAgICAgICogICAgICAgIG9yZGVyIG9yIHRoZSBvcmlnaW5hbCdzIHNvdXJjZS9saW5lL2NvbHVtbiBvcmRlciwgcmVzcGVjdGl2ZWx5LiBEZWZhdWx0cyB0bwogICAgICAgKiAgICAgICAgYFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUmAuCiAgICAgICAqLwogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZWFjaE1hcHBpbmciKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwcm92aWRlZC4gSWYgbm8gY29sdW1uIGlzIHByb3ZpZGVkLCByZXR1cm5zIGFsbCBtYXBwaW5ncwogICAgICAgKiBjb3JyZXNwb25kaW5nIHRvIGEgZWl0aGVyIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yIG9yIHRoZSBuZXh0CiAgICAgICAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3MKICAgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbGluZSBhbmQgZWl0aGVyIHRoZSBjb2x1bW4gd2UgYXJlIHNlYXJjaGluZyBmb3IKICAgICAgICogb3IgdGhlIG5leHQgY2xvc2VzdCBjb2x1bW4gdGhhdCBoYXMgYW55IG9mZnNldHMuCiAgICAgICAqCiAgICAgICAqIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICoKICAgICAgICogYW5kIGFuIGFycmF5IG9mIG9iamVjdHMgaXMgcmV0dXJuZWQsIGVhY2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgIFRoZSBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqLwogICAgICBhbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yIik7CiAgICAgIH0KICAgICAgZGVzdHJveSgpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZGVzdHJveSIpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl92ZXJzaW9uID0gMzsKICAgIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUiA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUiA9IDI7CiAgICBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyOwogICAgdmFyIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBfQmFzaWNTb3VyY2VNYXBDb25zdW1lciBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBsZXQgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZXMiKTsKICAgICAgICAgIGNvbnN0IG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibmFtZXMiLCBbXSk7CiAgICAgICAgICBsZXQgc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZVJvb3QiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IHNvdXJjZXNDb250ZW50ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAic291cmNlc0NvbnRlbnQiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibWFwcGluZ3MiKTsKICAgICAgICAgIGNvbnN0IGZpbGUgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJmaWxlIiwgbnVsbCk7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZVJvb3QpIHsKICAgICAgICAgICAgc291cmNlUm9vdCA9IHV0aWwubm9ybWFsaXplKHNvdXJjZVJvb3QpOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlcyA9IHNvdXJjZXMubWFwKFN0cmluZykubWFwKHV0aWwubm9ybWFsaXplKS5tYXAoZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKSA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKSA6IHNvdXJjZTsKICAgICAgICAgIH0pOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpOwogICAgICAgICAgdGhhdC5fc291cmNlcyA9IEFycmF5U2V0LmZyb21BcnJheShzb3VyY2VzLCB0cnVlKTsKICAgICAgICAgIHRoYXQuX2Fic29sdXRlU291cmNlcyA9IHRoYXQuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIHRoYXQuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7CiAgICAgICAgICB0aGF0LnNvdXJjZXNDb250ZW50ID0gc291cmNlc0NvbnRlbnQ7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICAgICAgdGhhdC5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDsKICAgICAgICAgIHRoYXQuZmlsZSA9IGZpbGU7CiAgICAgICAgICB0aGF0Ll9jb21wdXRlZENvbHVtblNwYW5zID0gZmFsc2U7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5nc1B0ciA9IDA7CiAgICAgICAgICB0aGF0Ll93YXNtID0gbnVsbDsKICAgICAgICAgIHJldHVybiB3YXNtKCkudGhlbigodykgPT4gewogICAgICAgICAgICB0aGF0Ll93YXNtID0gdzsKICAgICAgICAgICAgcmV0dXJuIHRoYXQ7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHRoZSBpbmRleCBvZiBhIHNvdXJjZS4gIFJldHVybnMgLTEgaWYgbm90CiAgICAgICAqIGZvdW5kLgogICAgICAgKi8KICAgICAgX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKSB7CiAgICAgICAgbGV0IHJlbGF0aXZlU291cmNlID0gYVNvdXJjZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZXMuaGFzKHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMuaW5kZXhPZihyZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYWJzb2x1dGVTb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICBpZiAodGhpcy5fYWJzb2x1dGVTb3VyY2VzW2ldID09IGFTb3VyY2UpIHsKICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU291cmNlTWFwR2VuZXJhdG9yIGFTb3VyY2VNYXAKICAgICAgICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC4KICAgICAgICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMCiAgICAgICAqICAgICAgICBUaGUgVVJMIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIGNhbiBiZSBmb3VuZCAob3B0aW9uYWwpCiAgICAgICAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXIKICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgICByZXR1cm4gbmV3IF9CYXNpY1NvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgZ2V0IHNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpOwogICAgICB9CiAgICAgIF9nZXRNYXBwaW5nc1B0cigpIHsKICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3NQdHIgPT09IDApIHsKICAgICAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1B0cjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3Qgc2l6ZSA9IGFTdHIubGVuZ3RoOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLmFsbG9jYXRlX21hcHBpbmdzKHNpemUpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fd2FzbS5leHBvcnRzLm1lbW9yeS5idWZmZXIsIG1hcHBpbmdzQnVmUHRyLCBzaXplKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgbWFwcGluZ3NCdWZbaV0gPSBhU3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1hcHBpbmdzUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLnBhcnNlX21hcHBpbmdzKG1hcHBpbmdzQnVmUHRyKTsKICAgICAgICBpZiAoIW1hcHBpbmdzUHRyKSB7CiAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuX3dhc20uZXhwb3J0cy5nZXRfbGFzdF9lcnJvcigpOwogICAgICAgICAgbGV0IG1zZyA9IGBFcnJvciBwYXJzaW5nIG1hcHBpbmdzIChjb2RlICR7ZXJyb3J9KTogYDsKICAgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG5lZ2F0aXZlIGxpbmUsIGNvbHVtbiwgc291cmNlIGluZGV4LCBvciBuYW1lIGluZGV4IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG51bWJlciBsYXJnZXIgdGhhbiAyKiozMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBtc2cgKz0gInJlYWNoZWQgRU9GIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBtc2cgKz0gImludmFsaWQgYmFzZSA2NCBjaGFyYWN0ZXIgd2hpbGUgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgbXNnICs9ICJ1bmtub3duIGVycm9yIGNvZGUiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzUHRyID0gbWFwcGluZ3NQdHI7CiAgICAgIH0KICAgICAgZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7CiAgICAgICAgY29uc3QgY29udGV4dCA9IGFDb250ZXh0IHx8IG51bGw7CiAgICAgICAgY29uc3Qgb3JkZXIgPSBhT3JkZXIgfHwgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOwogICAgICAgIGNvbnN0IHNvdXJjZVJvb3QgPSB0aGlzLnNvdXJjZVJvb3Q7CiAgICAgICAgdGhpcy5fd2FzbS53aXRoTWFwcGluZ0NhbGxiYWNrKAogICAgICAgICAgKG1hcHBpbmcpID0+IHsKICAgICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwuY29tcHV0ZVNvdXJjZVVSTChzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSB0aGlzLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBhQ2FsbGJhY2suY2FsbChjb250ZXh0LCBtYXBwaW5nKTsKICAgICAgICAgIH0sCiAgICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUjoKICAgICAgICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5ieV9nZW5lcmF0ZWRfbG9jYXRpb24odGhpcy5fZ2V0TWFwcGluZ3NQdHIoKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSOgogICAgICAgICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmJ5X29yaWdpbmFsX2xvY2F0aW9uKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICApOwogICAgICB9CiAgICAgIGFsbEdlbmVyYXRlZFBvc2l0aW9uc0ZvcihhQXJncykgewogICAgICAgIGxldCBzb3VyY2UgPSB1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gYUFyZ3MuY29sdW1uIHx8IDA7CiAgICAgICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7CiAgICAgICAgaWYgKHNvdXJjZSA8IDApIHsKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAob3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBtYXBwaW5ncyA9IFtdOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygKICAgICAgICAgIChtKSA9PiB7CiAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbS5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRDb2x1bW5TcGFucyAmJiBsYXN0Q29sdW1uID09PSBudWxsKSB7CiAgICAgICAgICAgICAgbGFzdENvbHVtbiA9IEluZmluaXR5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1hcHBpbmdzLnB1c2goewogICAgICAgICAgICAgIGxpbmU6IG0uZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG0uZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICB0aGlzLl93YXNtLmV4cG9ydHMuYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKAogICAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgICAgc291cmNlLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZSAtIDEsCiAgICAgICAgICAgICAgImNvbHVtbiIgaW4gYUFyZ3MsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW4KICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHJldHVybiBtYXBwaW5nczsKICAgICAgfQogICAgICBkZXN0cm95KCkgewogICAgICAgIGlmICh0aGlzLl9tYXBwaW5nc1B0ciAhPT0gMCkgewogICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmZyZWVfbWFwcGluZ3ModGhpcy5fbWFwcGluZ3NQdHIpOwogICAgICAgICAgdGhpcy5fbWFwcGluZ3NQdHIgPSAwOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tcHV0ZSB0aGUgbGFzdCBjb2x1bW4gZm9yIGVhY2ggZ2VuZXJhdGVkIG1hcHBpbmcuIFRoZSBsYXN0IGNvbHVtbiBpcwogICAgICAgKiBpbmNsdXNpdmUuCiAgICAgICAqLwogICAgICBjb21wdXRlQ29sdW1uU3BhbnMoKSB7CiAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmNvbXB1dGVfY29sdW1uX3NwYW5zKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgIHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMgPSB0cnVlOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWQKICAgICAgICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0CiAgICAgICAqIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLgogICAgICAgKi8KICAgICAgb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykgewogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIpCiAgICAgICAgfTsKICAgICAgICBpZiAobmVlZGxlLmdlbmVyYXRlZExpbmUgPCAxKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxpbmUgbnVtYmVycyBtdXN0IGJlID49IDEiKTsKICAgICAgICB9CiAgICAgICAgaWYgKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5vcmlnaW5hbF9sb2NhdGlvbl9mb3IoCiAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgIG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLmdlbmVyYXRlZENvbHVtbiwKICAgICAgICAgICAgYmlhcwogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgICBpZiAobWFwcGluZykgewogICAgICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHsKICAgICAgICAgICAgbGV0IHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTsKICAgICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAibmFtZSIsIG51bGwpOwogICAgICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxMaW5lIiwgbnVsbCksCiAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxDb2x1bW4iLCBudWxsKSwKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzb3VyY2U6IG51bGwsCiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgbmFtZTogbnVsbAogICAgICAgIH07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZQogICAgICAgKiBtYXAsIGZhbHNlIG90aGVyd2lzZS4KICAgICAgICovCiAgICAgIGhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiYgIXRoaXMuc291cmNlc0NvbnRlbnQuc29tZShmdW5jdGlvbihzYykgewogICAgICAgICAgcmV0dXJuIHNjID09IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KGFTb3VyY2UpOwogICAgICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFtpbmRleF07CiAgICAgICAgfQogICAgICAgIGxldCByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7CiAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGxldCB1cmwzOwogICAgICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCAmJiAodXJsMyA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHsKICAgICAgICAgIGNvbnN0IGZpbGVVcmlBYnNQYXRoID0gcmVsYXRpdmVTb3VyY2UucmVwbGFjZSgvXmZpbGU6XC9cLy8sICIiKTsKICAgICAgICAgIGlmICh1cmwzLnNjaGVtZSA9PSAiZmlsZSIgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCghdXJsMy5wYXRoIHx8IHVybDMucGF0aCA9PSAiLyIpICYmIHRoaXMuX3NvdXJjZXMuaGFzKCIvIiArIHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoIi8iICsgcmVsYXRpdmVTb3VyY2UpXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgcmVsYXRpdmVTb3VyY2UgKyAnIiBpcyBub3QgaW4gdGhlIFNvdXJjZU1hcC4nKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoCiAgICAgICAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlcgogICAgICAgKiAgICAgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZQogICAgICAgKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKi8KICAgICAgZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKTsKICAgICAgICBzb3VyY2UgPSB0aGlzLl9maW5kU291cmNlSW5kZXgoc291cmNlKTsKICAgICAgICBpZiAoc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAiY29sdW1uIikKICAgICAgICB9OwogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxMaW5lIDwgMSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJMaW5lIG51bWJlcnMgbXVzdCBiZSA+PSAxIik7CiAgICAgICAgfQogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5nZW5lcmF0ZWRfbG9jYXRpb25fZm9yKAogICAgICAgICAgICB0aGlzLl9nZXRNYXBwaW5nc1B0cigpLAogICAgICAgICAgICBuZWVkbGUuc291cmNlLAogICAgICAgICAgICBuZWVkbGUub3JpZ2luYWxMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLm9yaWdpbmFsQ29sdW1uLAogICAgICAgICAgICBiaWFzCiAgICAgICAgICApOwogICAgICAgIH0pOwogICAgICAgIGlmIChtYXBwaW5nKSB7CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHsKICAgICAgICAgICAgbGV0IGxhc3RDb2x1bW4gPSBtYXBwaW5nLmxhc3RHZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICBsYXN0Q29sdW1uID0gSW5maW5pdHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgImdlbmVyYXRlZENvbHVtbiIsIG51bGwpLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxpbmU6IG51bGwsCiAgICAgICAgICBjb2x1bW46IG51bGwsCiAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgfTsKICAgIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7CiAgICBleHBvcnRzMi5CYXNpY1NvdXJjZU1hcENvbnN1bWVyID0gQmFzaWNTb3VyY2VNYXBDb25zdW1lcjsKICAgIHZhciBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNlY3Rpb25zIik7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgdGhhdC5fc291cmNlcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICAgIHRoYXQuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gbnVsbDsKICAgICAgICAgIGxldCBsYXN0T2Zmc2V0ID0gewogICAgICAgICAgICBsaW5lOiAtMSwKICAgICAgICAgICAgY29sdW1uOiAwCiAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zLm1hcCgocykgPT4gewogICAgICAgICAgICBpZiAocy51cmwpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1cHBvcnQgZm9yIHVybCBmaWVsZCBpbiBzZWN0aW9ucyBub3QgaW1wbGVtZW50ZWQuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgIm9mZnNldCIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAibGluZSIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICJjb2x1bW4iKTsKICAgICAgICAgICAgaWYgKG9mZnNldExpbmUgPCBsYXN0T2Zmc2V0LmxpbmUgfHwgb2Zmc2V0TGluZSA9PT0gbGFzdE9mZnNldC5saW5lICYmIG9mZnNldENvbHVtbiA8IGxhc3RPZmZzZXQuY29sdW1uKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWN0aW9uIG9mZnNldHMgbXVzdCBiZSBvcmRlcmVkIGFuZCBub24tb3ZlcmxhcHBpbmcuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldDsKICAgICAgICAgICAgY29uc3QgY29ucyA9IG5ldyBTb3VyY2VNYXBDb25zdW1lcih1dGlsLmdldEFyZyhzLCAibWFwIiksIGFTb3VyY2VNYXBVUkwpOwogICAgICAgICAgICByZXR1cm4gY29ucy50aGVuKChjb25zdW1lcikgPT4gewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHsKICAgICAgICAgICAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW4KICAgICAgICAgICAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLAogICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjb25zdW1lcgogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkpLnRoZW4oKHMpID0+IHsKICAgICAgICAgICAgdGhhdC5fc2VjdGlvbnMgPSBzOwogICAgICAgICAgICByZXR1cm4gdGhhdDsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlCiAgICAgIC8vIHBhcnNlZCBtYXBwaW5nIGNvb3JkaW5hdGVzIGZyb20gdGhlIHNvdXJjZSBtYXAncyAibWFwcGluZ3MiIGF0dHJpYnV0ZS4gVGhleQogICAgICAvLyBhcmUgbGF6aWx5IGluc3RhbnRpYXRlZCwgYWNjZXNzZWQgdmlhIHRoZSBgX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzCiAgICAgIC8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaAogICAgICAvLyB0aGVzZSBob29wcyBiZWNhdXNlIHRoZXJlIGNhbiBiZSBtYW55IHRob3VzYW5kcyBvZiBtYXBwaW5ncywgYW5kIHBhcnNpbmcKICAgICAgLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LgogICAgICAvLwogICAgICAvLyBFYWNoIG9iamVjdCBpbiB0aGUgYXJyYXlzIGlzIG9mIHRoZSBmb3JtOgogICAgICAvLwogICAgICAvLyAgICAgewogICAgICAvLyAgICAgICBnZW5lcmF0ZWRMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLAogICAgICAvLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSwKICAgICAgLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpcwogICAgICAvLyAgICAgICAgICAgICAgIGNodW5rIG9mIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdAogICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsQ29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlIHRoYXQKICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2YKICAgICAgLy8gICAgICAgICAgICAgY29kZS4KICAgICAgLy8gICAgIH0KICAgICAgLy8KICAgICAgLy8gQWxsIHByb3BlcnRpZXMgZXhjZXB0IGZvciBgZ2VuZXJhdGVkTGluZWAgYW5kIGBnZW5lcmF0ZWRDb2x1bW5gIGNhbiBiZQogICAgICAvLyBgbnVsbGAuCiAgICAgIC8vCiAgICAgIC8vIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMuCiAgICAgIC8vCiAgICAgIC8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLgogICAgICBnZXQgX2dlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7CiAgICAgICAgICB0aGlzLl9zb3J0R2VuZXJhdGVkTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nczsKICAgICAgfQogICAgICBnZXQgX29yaWdpbmFsTWFwcGluZ3MoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncykgewogICAgICAgICAgdGhpcy5fc29ydE9yaWdpbmFsTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzOwogICAgICB9CiAgICAgIGdldCBfZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCgpIHsKICAgICAgICBpZiAoIXRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzVW5zb3J0ZWQ7CiAgICAgIH0KICAgICAgZ2V0IF9vcmlnaW5hbE1hcHBpbmdzVW5zb3J0ZWQoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgfQogICAgICBfc29ydEdlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpOwogICAgICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICB9CiAgICAgIF9zb3J0T3JpZ2luYWxNYXBwaW5ncygpIHsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMpOwogICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gbWFwcGluZ3M7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFRoZSBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMuCiAgICAgICAqLwogICAgICBnZXQgc291cmNlcygpIHsKICAgICAgICBjb25zdCBzb3VyY2VzID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzW2pdKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNvdXJjZXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZAogICAgICAgKiBzb3VyY2UncyBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zIHByb3ZpZGVkLiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3QKICAgICAgICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIKICAgICAgICogICAgIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC4KICAgICAgICovCiAgICAgIG9yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgImxpbmUiKSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICJjb2x1bW4iKQogICAgICAgIH07CiAgICAgICAgY29uc3Qgc2VjdGlvbkluZGV4ID0gYmluYXJ5U2VhcmNoLnNlYXJjaCgKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX3NlY3Rpb25zLAogICAgICAgICAgZnVuY3Rpb24oYU5lZWRsZSwgc2VjdGlvbjIpIHsKICAgICAgICAgICAgY29uc3QgY21wID0gYU5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbjIuZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmU7CiAgICAgICAgICAgIGlmIChjbXApIHsKICAgICAgICAgICAgICByZXR1cm4gY21wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhTmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIHNlY3Rpb24yLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTsKICAgICAgICBpZiAoIXNlY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZTogbnVsbCwKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBuYW1lOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25zdW1lci5vcmlnaW5hbFBvc2l0aW9uRm9yKHsKICAgICAgICAgIGxpbmU6IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgIGNvbHVtbjogbmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBuZWVkbGUuZ2VuZXJhdGVkTGluZSA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDEgOiAwKSwKICAgICAgICAgIGJpYXM6IGFBcmdzLmJpYXMKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlCiAgICAgICAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgICAgKi8KICAgICAgaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25zLmV2ZXJ5KGZ1bmN0aW9uKHMpIHsKICAgICAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgdHJ1ZSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICByZXR1cm4gY29udGVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVNvdXJjZSArICciIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLAogICAgICAgKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGgKICAgICAgICogdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLgogICAgICAgKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICovCiAgICAgIGdlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuX2ZpbmRTb3VyY2VJbmRleCh1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpKSA9PT0gLTEpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpOwogICAgICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHsKICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICsgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZFBvc2l0aW9uLmNvbHVtbiArIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkTWFwcGluZ3MgPSB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IFtdOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTWFwcGluZ3MgPSB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgY29uc3Qgc2VjdGlvbk1hcHBpbmdzID0gW107CiAgICAgICAgICBzZWN0aW9uLmNvbnN1bWVyLmVhY2hNYXBwaW5nKChtKSA9PiBzZWN0aW9uTWFwcGluZ3MucHVzaChtKSk7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25NYXBwaW5ncy5sZW5ndGg7IGorKykgewogICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdOwogICAgICAgICAgICBsZXQgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCwgbnVsbCwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7CiAgICAgICAgICAgIGxldCBuYW1lID0gbnVsbDsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkgewogICAgICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWRNYXBwaW5nID0gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUgKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLAogICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW4sCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICB9OwogICAgICAgICAgICBnZW5lcmF0ZWRNYXBwaW5ncy5wdXNoKGFkanVzdGVkTWFwcGluZyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRqdXN0ZWRNYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICBvcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICBjb25zdCBjb250ZXh0ID0gYUNvbnRleHQgfHwgbnVsbDsKICAgICAgICBjb25zdCBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7CiAgICAgICAgbGV0IG1hcHBpbmdzOwogICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOgogICAgICAgICAgICBtYXBwaW5ncyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6CiAgICAgICAgICAgIG1hcHBpbmdzID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gb3JkZXIgb2YgaXRlcmF0aW9uLiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290OwogICAgICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbihtYXBwaW5nKSB7CiAgICAgICAgICBsZXQgc291cmNlID0gbnVsbDsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lLAogICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICBvcmlnaW5hbExpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgbmFtZTogbWFwcGluZy5uYW1lID09PSBudWxsID8gbnVsbCA6IHRoaXMuX25hbWVzLmF0KG1hcHBpbmcubmFtZSkKICAgICAgICAgIH07CiAgICAgICAgfSwgdGhpcykuZm9yRWFjaChhQ2FsbGJhY2ssIGNvbnRleHQpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBGaW5kIHRoZSBtYXBwaW5nIHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBoeXBvdGhldGljYWwgIm5lZWRsZSIgbWFwcGluZyB0aGF0CiAgICAgICAqIHdlIGFyZSBzZWFyY2hpbmcgZm9yIGluIHRoZSBnaXZlbiAiaGF5c3RhY2siIG9mIG1hcHBpbmdzLgogICAgICAgKi8KICAgICAgX2ZpbmRNYXBwaW5nKGFOZWVkbGUsIGFNYXBwaW5ncywgYUxpbmVOYW1lLCBhQ29sdW1uTmFtZSwgYUNvbXBhcmF0b3IsIGFCaWFzKSB7CiAgICAgICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAiICsgYU5lZWRsZVthTGluZU5hbWVdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAiICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoLnNlYXJjaChhTmVlZGxlLCBhTWFwcGluZ3MsIGFDb21wYXJhdG9yLCBhQmlhcyk7CiAgICAgIH0KICAgICAgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7CiAgICAgICAgY29uc3QgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIHNvdXJjZTogdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKSwKICAgICAgICAgIG9yaWdpbmFsTGluZTogbGluZSwKICAgICAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIsIDApCiAgICAgICAgfTsKICAgICAgICBuZWVkbGUuc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KG5lZWRsZS5zb3VyY2UpOwogICAgICAgIGlmIChuZWVkbGUuc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsQ29sdW1uIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2x1bW4gbnVtYmVycyBtdXN0IGJlID49IDAiKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBbXTsKICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZygKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsCiAgICAgICAgICAib3JpZ2luYWxMaW5lIiwKICAgICAgICAgICJvcmlnaW5hbENvbHVtbiIsCiAgICAgICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLAogICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5ECiAgICAgICAgKTsKICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgbGV0IG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTsKICAgICAgICAgIGlmIChhQXJncy5jb2x1bW4gPT09IHZvaWQgMCkgewogICAgICAgICAgICBjb25zdCBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IG9yaWdpbmFsTGluZSkgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiYgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9PSBvcmlnaW5hbENvbHVtbikgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcHBpbmdzOwogICAgICB9CiAgICAgIGRlc3Ryb3koKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuZGVzdHJveSgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciA9IEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcjsKICAgIGZ1bmN0aW9uIF9mYWN0b3J5KGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gInN0cmluZyIpIHsKICAgICAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7CiAgICAgIH0KICAgICAgY29uc3QgY29uc3VtZXIgPSBzb3VyY2VNYXAuc2VjdGlvbnMgIT0gbnVsbCA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKSA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uc3VtZXIpOwogICAgfQogICAgZnVuY3Rpb24gX2ZhY3RvcnlCU00oYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICByZXR1cm4gQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW5vZGUuanMKdmFyIHJlcXVpcmVfc291cmNlX25vZGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1ub2RlLmpzIihleHBvcnRzMikgewogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBSRUdFWF9ORVdMSU5FID0gLyhccj9cbikvOwogICAgdmFyIE5FV0xJTkVfQ09ERSA9IDEwOwogICAgdmFyIGlzU291cmNlTm9kZSA9ICIkJCRpc1NvdXJjZU5vZGUkJCQiOwogICAgdmFyIFNvdXJjZU5vZGUgPSBjbGFzcyBfU291cmNlTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGFMaW5lLCBhQ29sdW1uLCBhU291cmNlLCBhQ2h1bmtzLCBhTmFtZSkgewogICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzID0ge307CiAgICAgICAgdGhpcy5saW5lID0gYUxpbmUgPT0gbnVsbCA/IG51bGwgOiBhTGluZTsKICAgICAgICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uOwogICAgICAgIHRoaXMuc291cmNlID0gYVNvdXJjZSA9PSBudWxsID8gbnVsbCA6IGFTb3VyY2U7CiAgICAgICAgdGhpcy5uYW1lID0gYU5hbWUgPT0gbnVsbCA/IG51bGwgOiBhTmFtZTsKICAgICAgICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlOwogICAgICAgIGlmIChhQ2h1bmtzICE9IG51bGwpIHRoaXMuYWRkKGFDaHVua3MpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUdlbmVyYXRlZENvZGUgVGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhUmVsYXRpdmVQYXRoIE9wdGlvbmFsLiBUaGUgcGF0aCB0aGF0IHJlbGF0aXZlIHNvdXJjZXMgaW4gdGhlCiAgICAgICAqICAgICAgICBTb3VyY2VNYXBDb25zdW1lciBzaG91bGQgYmUgcmVsYXRpdmUgdG8uCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgX1NvdXJjZU5vZGUoKTsKICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGFHZW5lcmF0ZWRDb2RlLnNwbGl0KFJFR0VYX05FV0xJTkUpOwogICAgICAgIGxldCByZW1haW5pbmdMaW5lc0luZGV4ID0gMDsKICAgICAgICBjb25zdCBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjb25zdCBsaW5lQ29udGVudHMgPSBnZXROZXh0TGluZSgpOwogICAgICAgICAgY29uc3QgbmV3TGluZSA9IGdldE5leHRMaW5lKCkgfHwgIiI7CiAgICAgICAgICByZXR1cm4gbGluZUNvbnRlbnRzICsgbmV3TGluZTsKICAgICAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkgewogICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXgrK10gOiB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBsZXQgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDsKICAgICAgICBsZXQgbGFzdE1hcHBpbmcgPSBudWxsOwogICAgICAgIGxldCBuZXh0TGluZTsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuZWFjaE1hcHBpbmcoZnVuY3Rpb24obWFwcGluZykgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgICAgY29uc3QgY29kZSA9IG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiAtIGxhc3RHZW5lcmF0ZWRDb2x1bW4pOwogICAgICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gbGFzdEdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgY29kZSk7CiAgICAgICAgICAgICAgbGFzdE1hcHBpbmcgPSBtYXBwaW5nOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7CiAgICAgICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7CiAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgIG5vZGUuYWRkKG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbikpOwogICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSA9IG5leHRMaW5lLnN1YnN0cihtYXBwaW5nLmdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZzsKICAgICAgICB9LCB0aGlzKTsKICAgICAgICBpZiAocmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCkgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nKSB7CiAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUuYWRkKHJlbWFpbmluZ0xpbmVzLnNwbGljZShyZW1haW5pbmdMaW5lc0luZGV4KS5qb2luKCIiKSk7CiAgICAgICAgfQogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgY29uc3QgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgZnVuY3Rpb24gYWRkTWFwcGluZ1dpdGhDb2RlKG1hcHBpbmcsIGNvZGUpIHsKICAgICAgICAgIGlmIChtYXBwaW5nID09PSBudWxsIHx8IG1hcHBpbmcuc291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgbm9kZS5hZGQoY29kZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBhUmVsYXRpdmVQYXRoID8gdXRpbC5qb2luKGFSZWxhdGl2ZVBhdGgsIG1hcHBpbmcuc291cmNlKSA6IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBub2RlLmFkZChuZXcgX1NvdXJjZU5vZGUoCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICAgICAgY29kZSwKICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUKICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBjaHVuayBvZiBnZW5lcmF0ZWQgSlMgdG8gdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgYWRkKGFDaHVuaykgewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHsKICAgICAgICAgIGFDaHVuay5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgICAgIHRoaXMuYWRkKGNodW5rKTsKICAgICAgICAgIH0sIHRoaXMpOwogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIGlmIChhQ2h1bmspIHsKICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCBhIFNvdXJjZU5vZGUsIHN0cmluZywgb3IgYW4gYXJyYXkgb2YgU291cmNlTm9kZXMgYW5kIHN0cmluZ3MuIEdvdCAiICsgYUNodW5rCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgcHJlcGVuZChhQ2h1bmspIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gYUNodW5rLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChhQ2h1bmspOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgIiArIGFDaHVuawogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdhbGsgb3ZlciB0aGUgdHJlZSBvZiBKUyBzbmlwcGV0cyBpbiB0aGlzIG5vZGUgYW5kIGl0cyBjaGlsZHJlbi4gVGhlCiAgICAgICAqIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggc25pcHBldCBvZiBKUyBhbmQgaXMgcGFzc2VkIHRoYXQKICAgICAgICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uCiAgICAgICAqLwogICAgICB3YWxrKGFGbikgewogICAgICAgIGxldCBjaHVuazsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgY2h1bmsgPSB0aGlzLmNoaWxkcmVuW2ldOwogICAgICAgICAgaWYgKGNodW5rW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgICAgY2h1bmsud2FsayhhRm4pOwogICAgICAgICAgfSBlbHNlIGlmIChjaHVuayAhPT0gIiIpIHsKICAgICAgICAgICAgYUZuKGNodW5rLCB7CiAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsCiAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbiwKICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW4KICAgICAgICogZWFjaCBvZiBgdGhpcy5jaGlsZHJlbmAuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuCiAgICAgICAqLwogICAgICBqb2luKGFTZXApIHsKICAgICAgICBsZXQgbmV3Q2hpbGRyZW47CiAgICAgICAgbGV0IGk7CiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgaWYgKGxlbiA+IDApIHsKICAgICAgICAgIG5ld0NoaWxkcmVuID0gW107CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7CiAgICAgICAgICB9CiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5baV0pOwogICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ2FsbCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2Ugb24gdGhlIHZlcnkgcmlnaHQtbW9zdCBzb3VyY2Ugc25pcHBldC4gVXNlZnVsCiAgICAgICAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhUGF0dGVybiBUaGUgcGF0dGVybiB0byByZXBsYWNlLgogICAgICAgKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguCiAgICAgICAqLwogICAgICByZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGFzdENoaWxkW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgIGxhc3RDaGlsZC5yZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAic3RyaW5nIikgewogICAgICAgICAgdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdID0gbGFzdENoaWxkLnJlcGxhY2UoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgiIi5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yCiAgICAgICAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFTb3VyY2VGaWxlIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUKICAgICAgICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZQogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoYVNvdXJjZUZpbGUpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgU291cmNlTm9kZXMuIFRoZSB3YWxraW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaAogICAgICAgKiBzb3VyY2UgZmlsZSBjb250ZW50IGFuZCBpcyBwYXNzZWQgdGhlIGZpbGVuYW1lIGFuZCBzb3VyY2UgY29udGVudC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFGbiBUaGUgdHJhdmVyc2FsIGZ1bmN0aW9uLgogICAgICAgKi8KICAgICAgd2Fsa1NvdXJjZUNvbnRlbnRzKGFGbikgewogICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBpZiAodGhpcy5jaGlsZHJlbltpXVtpc1NvdXJjZU5vZGVdKSB7CiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0ud2Fsa1NvdXJjZUNvbnRlbnRzKGFGbik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNvdXJjZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNvdXJjZUNvbnRlbnRzKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gc291cmNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgYUZuKHV0aWwuZnJvbVNldFN0cmluZyhzb3VyY2VzW2ldKSwgdGhpcy5zb3VyY2VDb250ZW50c1tzb3VyY2VzW2ldXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlLiBXYWxrcyBvdmVyIHRoZSB0cmVlCiAgICAgICAqIGFuZCBjb25jYXRlbmF0ZXMgYWxsIHRoZSB2YXJpb3VzIHNuaXBwZXRzIHRvZ2V0aGVyIHRvIG9uZSBzdHJpbmcuCiAgICAgICAqLwogICAgICB0b1N0cmluZygpIHsKICAgICAgICBsZXQgc3RyMiA9ICIiOwogICAgICAgIHRoaXMud2FsayhmdW5jdGlvbihjaHVuaykgewogICAgICAgICAgc3RyMiArPSBjaHVuazsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc291cmNlIG5vZGUgYWxvbmcgd2l0aCBhIHNvdXJjZQogICAgICAgKiBtYXAuCiAgICAgICAqLwogICAgICB0b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHsKICAgICAgICBjb25zdCBnZW5lcmF0ZWQgPSB7CiAgICAgICAgICBjb2RlOiAiIiwKICAgICAgICAgIGxpbmU6IDEsCiAgICAgICAgICBjb2x1bW46IDAKICAgICAgICB9OwogICAgICAgIGNvbnN0IG1hcDIgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTsKICAgICAgICBsZXQgc291cmNlTWFwcGluZ0FjdGl2ZSA9IGZhbHNlOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsTmFtZSA9IG51bGw7CiAgICAgICAgdGhpcy53YWxrKGZ1bmN0aW9uKGNodW5rLCBvcmlnaW5hbCkgewogICAgICAgICAgZ2VuZXJhdGVkLmNvZGUgKz0gY2h1bms7CiAgICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZSB8fCBsYXN0T3JpZ2luYWxMaW5lICE9PSBvcmlnaW5hbC5saW5lIHx8IGxhc3RPcmlnaW5hbENvbHVtbiAhPT0gb3JpZ2luYWwuY29sdW1uIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHsKICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsCiAgICAgICAgICAgICAgICBvcmlnaW5hbDogewogICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtbgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgIG1hcDIuYWRkTWFwcGluZyh7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7CiAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAobGV0IGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykgewogICAgICAgICAgICBpZiAoY2h1bmsuY2hhckNvZGVBdChpZHgpID09PSBORVdMSU5FX0NPREUpIHsKICAgICAgICAgICAgICBnZW5lcmF0ZWQubGluZSsrOwogICAgICAgICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwOwogICAgICAgICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgICBzb3VyY2U6IG9yaWdpbmFsLnNvdXJjZSwKICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6IHsKICAgICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogb3JpZ2luYWwuY29sdW1uCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBuYW1lOiBvcmlnaW5hbC5uYW1lCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkLmNvbHVtbisrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24oc291cmNlRmlsZSwgc291cmNlQ29udGVudCkgewogICAgICAgICAgbWFwMi5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGNvZGU6IGdlbmVyYXRlZC5jb2RlLCBtYXA6IG1hcDIgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9zb3VyY2UtbWFwLmpzCnZhciByZXF1aXJlX3NvdXJjZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvc291cmNlLW1hcC5qcyIoZXhwb3J0czIpIHsKICAgIGV4cG9ydHMyLlNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lcigpLlNvdXJjZU1hcENvbnN1bWVyOwogICAgZXhwb3J0czIuU291cmNlTm9kZSA9IHJlcXVpcmVfc291cmNlX25vZGUoKS5Tb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanMKdmFyIHJlcXVpcmVfdGVtcGxhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3RlbXBsYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50ZW1wbGF0ZVBhcnNlciA9IHRlbXBsYXRlUGFyc2VyOwogICAgZXhwb3J0czIudGVtcGxhdGUgPSB0ZW1wbGF0ZTM7CiAgICB2YXIgc291cmNlX21hcF8xID0gcmVxdWlyZV9zb3VyY2VfbWFwKCk7CiAgICB2YXIga0ludGVycG9sYXRlUmUgPSAvPCU9KFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0NvbW1lbnRSZSA9IC88JSMoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrRXNjYXBlUmUgPSAvPCUtKFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0V2YWx1YXRlUmUgPSAvPCUoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrSHRtbEVzY2FwZXMgPSB7CiAgICAgICImIjogIiZhbXA7IiwKICAgICAgIjwiOiAiJmx0OyIsCiAgICAgICI+IjogIiZndDsiLAogICAgICAnIic6ICImcXVvdDsiLAogICAgICAiJyI6ICImIzM5OyIsCiAgICAgICJgIjogIiYjOTY7IgogICAgfTsKICAgIHZhciByZVVuZXNjYXBlZEh0bWwgPSBuZXcgUmVnRXhwKGBbJHtPYmplY3Qua2V5cyhrSHRtbEVzY2FwZXMpLmpvaW4oIiIpfV1gLCAiZyIpOwogICAgZnVuY3Rpb24gX3Bvc2l0aW9uRm9yKGNvbnRlbnQsIG9mZnNldCkgewogICAgICBsZXQgbGluZSA9IDE7CiAgICAgIGxldCBjb2x1bW4gPSAwOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9mZnNldCAtIDE7IGkrKykgewogICAgICAgIGlmIChjb250ZW50W2ldID09ICJcbiIpIHsKICAgICAgICAgIGxpbmUrKzsKICAgICAgICAgIGNvbHVtbiA9IDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbHVtbisrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGxpbmUsCiAgICAgICAgY29sdW1uCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZVBhcnNlcihzb3VyY2VUZXh0LCBmaWxlTmFtZSkgewogICAgICBjb25zdCBjaGlsZHJlbiA9IFtdOwogICAgICBjb25zdCByZUV4cHJlc3Npb25zID0gW2tFc2NhcGVSZSwga0NvbW1lbnRSZSwga0ludGVycG9sYXRlUmUsIGtFdmFsdWF0ZVJlXTsKICAgICAgY29uc3QgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKHJlRXhwcmVzc2lvbnMubWFwKCh4KSA9PiB4LnNvdXJjZSkuam9pbigifCIpICsgInwkIiwgImciKTsKICAgICAgY29uc3QgcGFyc2VkID0gc291cmNlVGV4dC5zcGxpdChyZURlbGltaXRlcnMpOwogICAgICBsZXQgb2Zmc2V0ID0gMDsKICAgICAgbGV0IHN0YXJ0ID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCk7CiAgICAgIGxldCBlbmQ7CiAgICAgIGNvbnN0IGluY3JlbWVudCA9IHJlRXhwcmVzc2lvbnMubGVuZ3RoICsgMTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJzZWQubGVuZ3RoOyBpICs9IGluY3JlbWVudCkgewogICAgICAgIGNvbnN0IFtjb250ZW50LCBlc2NhcGUyLCBjb21tZW50LCBpbnRlcnBvbGF0ZSwgZXZhbHVhdGVdID0gcGFyc2VkLnNsaWNlKGksIGkgKyBpbmNyZW1lbnQpOwogICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29udGVudC5sZW5ndGgpOwogICAgICAgICAgb2Zmc2V0ICs9IGNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJjb250ZW50IiwgY29udGVudCwgc3RhcnQsIGVuZCB9KTsKICAgICAgICAgIHN0YXJ0ID0gZW5kOwogICAgICAgIH0KICAgICAgICBpZiAoZXNjYXBlMikgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGVzY2FwZTIubGVuZ3RoICsgNSk7CiAgICAgICAgICBvZmZzZXQgKz0gZXNjYXBlMi5sZW5ndGggKyA1OwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJlc2NhcGUiLCBleHByZXNzaW9uOiBlc2NhcGUyLCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChjb21tZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29tbWVudC5sZW5ndGggKyA1KTsKICAgICAgICAgIG9mZnNldCArPSBjb21tZW50Lmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImNvbW1lbnQiLCB0ZXh0OiBjb21tZW50LCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChpbnRlcnBvbGF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGludGVycG9sYXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGludGVycG9sYXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAga2luZDogImludGVycG9sYXRlIiwKICAgICAgICAgICAgZXhwcmVzc2lvbjogaW50ZXJwb2xhdGUsCiAgICAgICAgICAgIHN0YXJ0LAogICAgICAgICAgICBlbmQKICAgICAgICAgIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChldmFsdWF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGV2YWx1YXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGV2YWx1YXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImV2YWx1YXRlIiwgZXhwcmVzc2lvbjogZXZhbHVhdGUsIHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICBzdGFydCA9IGVuZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHsKICAgICAgICBmaWxlTmFtZSwKICAgICAgICBjb250ZW50OiBzb3VyY2VUZXh0LAogICAgICAgIGNoaWxkcmVuCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZUZhc3QoYXN0LCBvcHRpb25zKSB7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gIm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSIgOiAiIjsKICAgICAgY29uc3QgcmVIdG1sRXNjYXBlID0gcmVVbmVzY2FwZWRIdG1sLnNvdXJjZS5yZXBsYWNlKC9bJ10vZywgIlxcXFxcXCciKTsKICAgICAgcmV0dXJuIGAKICAgIHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewogICAgICBvYmogfHwgKG9iaiA9IHt9KTsKICAgICAgbGV0IF9fdDsKICAgICAgbGV0IF9fcCA9ICcnOwogICAgICBjb25zdCBfX2VzY2FwZXMgPSAke0pTT04uc3RyaW5naWZ5KGtIdG1sRXNjYXBlcyl9OwogICAgICBjb25zdCBfX2VzY2FwZXNyZSA9IG5ldyBSZWdFeHAoJyR7cmVIdG1sRXNjYXBlfScsICdnJyk7CgogICAgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgcmV0dXJuIHMgPyBzLnJlcGxhY2UoX19lc2NhcGVzcmUsIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gX19lc2NhcGVzW2tleV07IH0pIDogJyc7CiAgICAgIH07CiAgICAgIHdpdGggKG9iaikgewogICAgICAgICR7YXN0LmNoaWxkcmVuLm1hcCgobm9kZSkgPT4gewogICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7CiAgICAgICAgICBjYXNlICJjb250ZW50IjoKICAgICAgICAgICAgcmV0dXJuIGBfX3AgKz0gJHtKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpfTtgOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSAoKF9fdCA9ICgke25vZGUuZXhwcmVzc2lvbn0pKSA9PSBudWxsKSA/ICcnIDogX190O2A7CiAgICAgICAgICBjYXNlICJlc2NhcGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSBfX2UoJHtub2RlLmV4cHJlc3Npb259KTtgOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICByZXR1cm4gbm9kZS5leHByZXNzaW9uOwogICAgICAgIH0KICAgICAgfSkuam9pbigiXG4iKX0KICAgICAgfQoKICAgICAgcmV0dXJuIF9fcDsKICAgIH07CiAgYDsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc291cmNlVXJsID0gYXN0LmZpbGVOYW1lOwogICAgICBjb25zdCBtb2R1bGUzID0gb3B0aW9ucyAmJiBvcHRpb25zLm1vZHVsZSA/ICJtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0iIDogIiI7CiAgICAgIGNvbnN0IHJlSHRtbEVzY2FwZSA9IHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UucmVwbGFjZSgvWyddL2csICJcXFxcXFwnIik7CiAgICAgIGNvbnN0IHByZWFtYmxlID0gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKDEsIDAsIHNvdXJjZVVybCwgIiIpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoMSwgMCwgc291cmNlVXJsLCBbCiAgICAgICAgYHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewpgLAogICAgICAgICIgIG9iaiB8fCAob2JqID0ge30pO1xuIiwKICAgICAgICAiICBsZXQgX190O1xuIiwKICAgICAgICAnICBsZXQgX19wID0gIiI7XG4nLAogICAgICAgIGAgIGNvbnN0IF9fZXNjYXBlcyA9ICR7SlNPTi5zdHJpbmdpZnkoa0h0bWxFc2NhcGVzKX07CmAsCiAgICAgICAgYCAgY29uc3QgX19lc2NhcGVzcmUgPSBuZXcgUmVnRXhwKCcke3JlSHRtbEVzY2FwZX0nLCAnZycpOwpgLAogICAgICAgIGAKYCwKICAgICAgICBgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7IGAsCiAgICAgICAgYCAgICByZXR1cm4gcyA/IHMucmVwbGFjZShfX2VzY2FwZXNyZSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiBfX2VzY2FwZXNba2V5XTsgfSkgOiAnJztgLAogICAgICAgIGAgIH07CmAsCiAgICAgICAgYCAgd2l0aCAob2JqKSB7CmAKICAgICAgXSkpOwogICAgICBjb25zdCBlbmQgPSBhc3QuY2hpbGRyZW4ubGVuZ3RoID8gYXN0LmNoaWxkcmVuW2FzdC5jaGlsZHJlbi5sZW5ndGggLSAxXS5lbmQgOiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9OwogICAgICBjb25zdCBub2RlcyA9IGFzdC5jaGlsZHJlbi5yZWR1Y2UoKGNodW5rLCBub2RlKSA9PiB7CiAgICAgICAgbGV0IGNvZGUyID0gIiI7CiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHsKICAgICAgICAgIGNhc2UgImNvbnRlbnQiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wID0gX19wIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5jb250ZW50LnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCAiXG4gICAgKyAiICsgSlNPTi5zdHJpbmdpZnkobGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIjtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wICs9ICgoX190ID0gIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5leHByZXNzaW9uLnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCBsaW5lICsgKGkgPT0gYXJyLmxlbmd0aCAtIDEgPyAiIiA6ICJcbiIpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5lbmQubGluZSwgbm9kZS5lbmQuY29sdW1uLCBzb3VyY2VVcmwsICcpID09IG51bGwgPyAiIiA6IF9fdCk7XG4nKQogICAgICAgICAgICBdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImVzY2FwZSI6CiAgICAgICAgICAgIGNvZGUyID0gWwogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUsIG5vZGUuc3RhcnQuY29sdW1uLCBzb3VyY2VVcmwsICJfX3AgKz0gX19lKCIpLAogICAgICAgICAgICAgIC4uLm5vZGUuZXhwcmVzc2lvbi5zcGxpdCgiXG4iKS5tYXAoKGxpbmUsIGksIGFycikgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUgKyBpLCBpID09IDAgPyBub2RlLnN0YXJ0LmNvbHVtbiA6IDAsIHNvdXJjZVVybCwgbGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuZW5kLmxpbmUsIG5vZGUuZW5kLmNvbHVtbiwgc291cmNlVXJsLCAiKTtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICAuLi5ub2RlLmV4cHJlc3Npb24uc3BsaXQoIlxuIikubWFwKChsaW5lLCBpLCBhcnIpID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lICsgaSwgaSA9PSAwID8gbm9kZS5zdGFydC5jb2x1bW4gOiAwLCBzb3VyY2VVcmwsIGxpbmUgKyAoaSA9PSBhcnIubGVuZ3RoIC0gMSA/ICIiIDogIlxuIikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIlxuIikKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjaHVuay5hZGQobmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSwgbm9kZS5zdGFydC5jb2x1bW4sIHNvdXJjZVVybCwgY29kZTIpKTsKICAgICAgfSwgcHJlYW1ibGUpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoZW5kLmxpbmUsIGVuZC5jb2x1bW4sIHNvdXJjZVVybCwgWyIgIH07XG4iLCAiXG4iLCAiICByZXR1cm4gX19wO1xuIiwgIn1cbiJdKSk7CiAgICAgIGNvbnN0IGNvZGUgPSBub2Rlcy50b1N0cmluZ1dpdGhTb3VyY2VNYXAoewogICAgICAgIGZpbGU6IHNvdXJjZVVybCwKICAgICAgICBzb3VyY2VSb290OiBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlUm9vdCB8fCAiLiIKICAgICAgfSk7CiAgICAgIGNvZGUubWFwLnNldFNvdXJjZUNvbnRlbnQoc291cmNlVXJsLCBhc3QuY29udGVudCk7CiAgICAgIHJldHVybiBjb2RlLmNvZGUgKyAiXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIgKyBCdWZmZXIuZnJvbShjb2RlLm1hcC50b1N0cmluZygpKS50b1N0cmluZygiYmFzZTY0Iik7CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZTMoY29udGVudCwgb3B0aW9ucykgewogICAgICBjb25zdCBzb3VyY2VVcmwgPSBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlVVJMIHx8ICJlanMiOwogICAgICBjb25zdCBhc3QgPSB0ZW1wbGF0ZVBhcnNlcihjb250ZW50LCBzb3VyY2VVcmwpOwogICAgICBsZXQgc291cmNlOwogICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNvdXJjZU1hcCkgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpOwogICAgICB9IGVsc2UgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlRmFzdChhc3QsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGNvbnN0IGZuID0gRnVuY3Rpb24oIm1vZHVsZSIsIHNvdXJjZSk7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gb3B0aW9ucy5tb2R1bGUgPT09IHRydWUgPyB7IGV4cG9ydHM6IHt9IH0gOiBvcHRpb25zLm1vZHVsZSA6IG51bGw7CiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKG1vZHVsZTMpOwogICAgICByZXN1bHQuc291cmNlID0gc291cmNlOwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzCnZhciByZXF1aXJlX3BhcnRpYWxseV9vcmRlcmVkX3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXJ0aWFsbHlPcmRlcmVkU2V0ID0gZXhwb3J0czIuQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb24gPSBleHBvcnRzMi5EZXBlbmRlbmN5Tm90Rm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJPbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBpcyBub3QgcGFydCBvZiB0aGUgc2V0LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uID0gRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uOwogICAgdmFyIENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBleGNlcHRpb25fMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoIkNpcmN1bGFyIGRlcGVuZGVuY2llcyBmb3VuZC4iKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb247CiAgICB2YXIgUGFydGlhbGx5T3JkZXJlZFNldCA9IGNsYXNzIHsKICAgICAgX2l0ZW1zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2NoZWNrQ2lyY3VsYXJEZXBlbmRlbmNpZXMoaXRlbSwgZGVwcykgewogICAgICAgIGlmIChkZXBzLmhhcyhpdGVtKSkgewogICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGRlcHMuZm9yRWFjaCgoZGVwKSA9PiB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIHRoaXMuX2l0ZW1zLmdldChkZXApIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpKTsKICAgICAgfQogICAgICBjbGVhcigpIHsKICAgICAgICB0aGlzLl9pdGVtcy5jbGVhcigpOwogICAgICB9CiAgICAgIGhhcyhpdGVtKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmhhcyhpdGVtKTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2l6ZTsKICAgICAgfQogICAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHsKICAgICAgICBmb3IgKGNvbnN0IHggb2YgdGhpcykgewogICAgICAgICAgY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsIHgsIHgsIHRoaXMpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBbdix2XSBwYWlycyBmb3IgZXZlcnkgdmFsdWUgYHZgIGluIHRoZSBzZXQuCiAgICAgICAqLwogICAgICAqZW50cmllcygpIHsKICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcykgewogICAgICAgICAgeWllbGQgW2l0ZW0sIGl0ZW1dOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogRGVzcGl0ZSBpdHMgbmFtZSwgcmV0dXJucyBhbiBpdGVyYWJsZSBvZiB0aGUgdmFsdWVzIGluIHRoZSBzZXQsCiAgICAgICAqLwogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICAgKi8KICAgICAgdmFsdWVzKCkgewogICAgICAgIHJldHVybiB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKICAgICAgfQogICAgICBhZGQoaXRlbSwgZGVwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXBzKSkgewogICAgICAgICAgZGVwcyA9IG5ldyBTZXQoZGVwcyk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pdGVtcy5oYXMoaXRlbSkpIHsKICAgICAgICAgIGNvbnN0IGl0ZW1EZXBzID0gdGhpcy5faXRlbXMuZ2V0KGl0ZW0pIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgICBsZXQgZXF1YWwgPSB0cnVlOwogICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykgewogICAgICAgICAgICBpZiAoIWl0ZW1EZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGVxdWFsKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGl0ZW1EZXBzKSB7CiAgICAgICAgICAgICAgaWYgKCFkZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXF1YWwpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKICAgICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGRlcCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbigpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIGRlcHMpOwogICAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtLCBuZXcgU2V0KGRlcHMpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBkZWxldGUoaXRlbSkgewogICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGl0ZW0pKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHRoaXMuX2l0ZW1zLmZvckVhY2goKHZhbHVlKSA9PiB2YWx1ZS5kZWxldGUoaXRlbSkpOwogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgIH0KICAgICAgKltTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgTWFwKHRoaXMuX2l0ZW1zKTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBjb3B5LmVudHJpZXMoKSkgewogICAgICAgICAgY29weS5zZXQoa2V5LCBuZXcgU2V0KHZhbHVlKSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChjb3B5LnNpemUgPiAwKSB7CiAgICAgICAgICBjb25zdCBydW4gPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgW2l0ZW0sIGRlcHNdIG9mIGNvcHkuZW50cmllcygpKSB7CiAgICAgICAgICAgIGlmIChkZXBzLnNpemUgPT0gMCkgewogICAgICAgICAgICAgIHJ1bi5wdXNoKGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcnVuKSB7CiAgICAgICAgICAgIGNvcHkuZm9yRWFjaCgocykgPT4gcy5kZWxldGUoaXRlbSkpOwogICAgICAgICAgICBjb3B5LmRlbGV0ZShpdGVtKTsKICAgICAgICAgICAgeWllbGQgaXRlbTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChydW4ubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkgewogICAgICAgIHJldHVybiAiU2V0IjsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhcnRpYWxseU9yZGVyZWRTZXQgPSBQYXJ0aWFsbHlPcmRlcmVkU2V0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanMKdmFyIHJlcXVpcmVfcHJpb3JpdHlfcXVldWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3ByaW9yaXR5LXF1ZXVlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Qcmlvcml0eVF1ZXVlID0gdm9pZCAwOwogICAgdmFyIFByaW9yaXR5UXVldWUgPSBjbGFzcyB7CiAgICAgIF9jb21wYXJhdG9yOwogICAgICBfaXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2NvbXBhcmF0b3IpIHsKICAgICAgICB0aGlzLl9jb21wYXJhdG9yID0gX2NvbXBhcmF0b3I7CiAgICAgIH0KICAgICAgY2xlYXIoKSB7CiAgICAgICAgdGhpcy5faXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgfQogICAgICBwdXNoKGl0ZW0pIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2l0ZW1zLmZpbmRJbmRleCgoZXhpc3RpbmcpID0+IHRoaXMuX2NvbXBhcmF0b3IoaXRlbSwgZXhpc3RpbmcpIDw9IDApOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnB1c2goaXRlbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnNwbGljZShpbmRleCwgMCwgaXRlbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHBvcCgpIHsKICAgICAgICBpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc3BsaWNlKDAsIDEpWzBdOwogICAgICB9CiAgICAgIHBlZWsoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zWzBdOwogICAgICB9CiAgICAgIGdldCBzaXplKCkgewogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7CiAgICAgIH0KICAgICAgdG9BcnJheSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaW9yaXR5UXVldWUgPSBQcmlvcml0eVF1ZXVlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGFuZy5qcwp2YXIgcmVxdWlyZV9sYW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9sYW5nLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSBpc1Byb21pc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2Uob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICJmdW5jdGlvbiI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9pbmRleC5qcwp2YXIgcmVxdWlyZV91dGlsczMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIudGFncyA9IHZvaWQgMDsKICAgIHZhciB0YWdzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfbGl0ZXJhbHMoKSk7CiAgICBleHBvcnRzMi50YWdzID0gdGFnczsKICAgIHZhciBzdHJpbmdzMyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX3N0cmluZ3MoKSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gc3RyaW5nczM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9vYmplY3QoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcGFydGlhbGx5X29yZGVyZWRfc2V0KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3ByaW9yaXR5X3F1ZXVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2xhbmcoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdmlzaXRvci5qcwp2YXIgcmVxdWlyZV92aXNpdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52aXNpdEpzb24gPSB2aXNpdEpzb247CiAgICBleHBvcnRzMi52aXNpdEpzb25TY2hlbWEgPSB2aXNpdEpzb25TY2hlbWE7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBwb2ludGVyXzEgPSByZXF1aXJlX3BvaW50ZXIoKTsKICAgIGZ1bmN0aW9uIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiAhPT0gIm9iamVjdCIgfHwgc2NoZW1hMiA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgfHwgc2NoZW1hMi50eXBlID09ICJvYmplY3QiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgJiYgdHlwZW9mIHNjaGVtYTIucHJvcGVydGllc1trZXldID09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gc2NoZW1hMi5wcm9wZXJ0aWVzW2tleV07CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMi5hZGRpdGlvbmFsUHJvcGVydGllcyA9PSAib2JqZWN0IikgewogICAgICAgICAgcmV0dXJuIHNjaGVtYTIuYWRkaXRpb25hbFByb3BlcnRpZXM7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiIHx8IHNjaGVtYTIudHlwZSA9PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiID8gc2NoZW1hMi5pdGVtcyA6IHZvaWQgMDsKICAgICAgfQogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogICAgZnVuY3Rpb24gX3Zpc2l0SnNvblJlY3Vyc2l2ZShqc29uMiwgdmlzaXRvciwgcHRyLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCkgewogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSB8fCBzY2hlbWEyID09PSBmYWxzZSkgewogICAgICAgIHNjaGVtYTIgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIgJiYgc2NoZW1hMi5oYXNPd25Qcm9wZXJ0eSgiJHJlZiIpICYmIHR5cGVvZiBzY2hlbWEyWyIkcmVmIl0gPT0gInN0cmluZyIpIHsKICAgICAgICBpZiAocmVmUmVzb2x2ZXIpIHsKICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVmUmVzb2x2ZXIoc2NoZW1hMlsiJHJlZiJdLCBjb250ZXh0KTsKICAgICAgICAgIHNjaGVtYTIgPSByZXNvbHZlZC5zY2hlbWE7CiAgICAgICAgICBjb250ZXh0ID0gcmVzb2x2ZWQuY29udGV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdG9yKGpzb24yLCBwdHIsIHNjaGVtYTIsIHJvb3QpOwogICAgICByZXR1cm4gKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKSh2YWx1ZSkgPyB2YWx1ZSA6ICgwLCByeGpzXzEub2YpKHZhbHVlKSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHZhbHVlMikgPT4gewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMikpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKSh2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKGl0ZW0sIGkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoaXRlbSwgdmlzaXRvciwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKHB0ciwgIiIgKyBpKSwgX2dldE9iamVjdFN1YlNjaGVtYShzY2hlbWEyLCAiIiArIGkpLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCB8fCB2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS50YXApKCh4KSA9PiB2YWx1ZTJbaV0gPSB4KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlMiA9PSAib2JqZWN0IiAmJiB2YWx1ZTIgIT09IG51bGwpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZTIpKS5waXBlKCgwLCByeGpzXzEubWVyZ2VNYXApKChrZXkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUodmFsdWUyW2tleV0sIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShwdHIsIGtleSksIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSwgcmVmUmVzb2x2ZXIsIGNvbnRleHQsIHJvb3QgfHwgdmFsdWUyKS5waXBlKCgwLCByeGpzXzEudGFwKSgoeCkgPT4gewogICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlMiwga2V5KTsKICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLndyaXRhYmxlICYmIHZhbHVlMltrZXldICE9PSB4KSB7CiAgICAgICAgICAgICAgICB2YWx1ZTJba2V5XSA9IHg7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodmFsdWUyKTsKICAgICAgICB9CiAgICAgIH0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHZpc2l0SnNvbihqc29uMiwgdmlzaXRvciwgc2NoZW1hMiwgcmVmUmVzb2x2ZXIsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoanNvbjIsIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiB2aXNpdEpzb25TY2hlbWEoc2NoZW1hMiwgdmlzaXRvcikgewogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UgfHwgc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBrZXl3b3JkcyA9IHsKICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgY29udGFpbnM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcHJvcGVydHlOYW1lczogdHJ1ZSwKICAgICAgICBub3Q6IHRydWUKICAgICAgfTsKICAgICAgY29uc3QgYXJyYXlLZXl3b3JkcyA9IHsKICAgICAgICBpdGVtczogdHJ1ZSwKICAgICAgICBhbGxPZjogdHJ1ZSwKICAgICAgICBhbnlPZjogdHJ1ZSwKICAgICAgICBvbmVPZjogdHJ1ZQogICAgICB9OwogICAgICBjb25zdCBwcm9wc0tleXdvcmRzID0gewogICAgICAgIGRlZmluaXRpb25zOiB0cnVlLAogICAgICAgIHByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgZGVwZW5kZW5jaWVzOiB0cnVlLAogICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgIH07CiAgICAgIGZ1bmN0aW9uIF90cmF2ZXJzZShzY2hlbWEzLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KSB7CiAgICAgICAgaWYgKHNjaGVtYTMgJiYgdHlwZW9mIHNjaGVtYTMgPT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkoc2NoZW1hMykpIHsKICAgICAgICAgIHZpc2l0b3Ioc2NoZW1hMywganNvblB0ciwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzY2hlbWEzKSkgewogICAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEzW2tleV07CiAgICAgICAgICAgIGlmIChrZXkgaW4gcHJvcHNLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHNjaCkpIHsKICAgICAgICAgICAgICAgICAgX3RyYXZlcnNlKHNjaFtwcm9wXSwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKGpzb25QdHIsIGtleSwgcHJvcCksIHJvb3RTY2hlbWEsIHNjaGVtYTMsIHByb3ApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4ga2V5d29yZHMpIHsKICAgICAgICAgICAgICBfdHJhdmVyc2Uoc2NoLCAoMCwgcG9pbnRlcl8xLmpvaW5Kc29uUG9pbnRlcikoanNvblB0ciwga2V5KSwgcm9vdFNjaGVtYSwgc2NoZW1hMywga2V5KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gYXJyYXlLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2NoLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2gpKSB7CiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX3RyYXZlcnNlKHNjaGVtYTIsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3JlZ2lzdHJ5LmpzCnZhciByZXF1aXJlX3JlZ2lzdHJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Db3JlU2NoZW1hUmVnaXN0cnkgPSBleHBvcnRzMi5TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmVfYWp2KCkpOwogICAgdmFyIGFqdl9mb3JtYXRzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9kaXN0KCkpOwogICAgdmFyIGh0dHAgPSBfX2ltcG9ydFN0YXIocmVxdWlyZSgiaHR0cCIpKTsKICAgIHZhciBodHRwcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJodHRwcyIpKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFVybCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJ1cmwiKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzMygpOwogICAgdmFyIHV0aWxzXzIgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgdXRpbGl0eV8xID0gcmVxdWlyZV91dGlsaXR5KCk7CiAgICB2YXIgdmlzaXRvcl8xID0gcmVxdWlyZV92aXNpdG9yKCk7CiAgICB2YXIgU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IGNsYXNzIF9TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGVycm9yczsKICAgICAgY29uc3RydWN0b3IoZXJyb3JzLCBiYXNlTWVzc2FnZSA9ICJTY2hlbWEgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczoiKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgc3VwZXIoIlNjaGVtYSB2YWxpZGF0aW9uIGZhaWxlZC4iKTsKICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gX1NjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uY3JlYXRlTWVzc2FnZXMoZXJyb3JzKTsKICAgICAgICBzdXBlcihgJHtiYXNlTWVzc2FnZX0KICAke21lc3NhZ2VzLmpvaW4oIlxuICAiKX1gKTsKICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKICAgICAgfQogICAgICBzdGF0aWMgY3JlYXRlTWVzc2FnZXMoZXJyb3JzKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGVycm9ycy5tYXAoKGVycikgPT4gewogICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgRGF0YSBwYXRoICR7SlNPTi5zdHJpbmdpZnkoZXJyLmluc3RhbmNlUGF0aCl9ICR7ZXJyLm1lc3NhZ2V9YDsKICAgICAgICAgIGlmIChlcnIucGFyYW1zKSB7CiAgICAgICAgICAgIHN3aXRjaCAoZXJyLmtleXdvcmQpIHsKICAgICAgICAgICAgICBjYXNlICJhZGRpdGlvbmFsUHJvcGVydGllcyI6CiAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGAoJHtlcnIucGFyYW1zLmFkZGl0aW9uYWxQcm9wZXJ0eX0pYDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImVudW0iOgogICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgLiBBbGxvd2VkIHZhbHVlcyBhcmU6ICR7ZXJyLnBhcmFtcy5hbGxvd2VkVmFsdWVzPy5tYXAoKHYpID0+IGAiJHt2fSJgKS5qb2luKCIsICIpfWA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1lc3NhZ2UgKyAiLiI7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb247CiAgICB2YXIgQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gY2xhc3MgX0NvcmVTY2hlbWFSZWdpc3RyeSB7CiAgICAgIF9hanY7CiAgICAgIF91cmlDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF91cmlIYW5kbGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIF9wcmUgPSBuZXcgdXRpbHNfMS5QYXJ0aWFsbHlPcmRlcmVkU2V0KCk7CiAgICAgIF9wb3N0ID0gbmV3IHV0aWxzXzEuUGFydGlhbGx5T3JkZXJlZFNldCgpOwogICAgICBfY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbzsKICAgICAgX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSBmYWxzZTsKICAgICAgX3Byb21wdFByb3ZpZGVyOwogICAgICBfc291cmNlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoZm9ybWF0cyA9IFtdKSB7CiAgICAgICAgdGhpcy5fYWp2ID0gbmV3IGFqdl8xLmRlZmF1bHQoewogICAgICAgICAgc3RyaWN0OiBmYWxzZSwKICAgICAgICAgIGxvYWRTY2hlbWE6ICh1cmkpID0+IHRoaXMuX2ZldGNoKHVyaSksCiAgICAgICAgICBwYXNzQ29udGV4dDogdHJ1ZQogICAgICAgIH0pOwogICAgICAgICgwLCBhanZfZm9ybWF0c18xLmRlZmF1bHQpKHRoaXMuX2Fqdik7CiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgewogICAgICAgICAgdGhpcy5hZGRGb3JtYXQoZm9ybWF0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXN5bmMgX2ZldGNoKHVyaSkgewogICAgICAgIGNvbnN0IG1heWJlU2NoZW1hID0gdGhpcy5fdXJpQ2FjaGUuZ2V0KHVyaSk7CiAgICAgICAgaWYgKG1heWJlU2NoZW1hKSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTY2hlbWE7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl91cmlIYW5kbGVycykgewogICAgICAgICAgbGV0IGhhbmRsZXJSZXN1bHQgPSBoYW5kbGVyKHVyaSk7CiAgICAgICAgICBpZiAoaGFuZGxlclJlc3VsdCA9PT0gbnVsbCB8fCBoYW5kbGVyUmVzdWx0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKGhhbmRsZXJSZXN1bHQpKSB7CiAgICAgICAgICAgIGhhbmRsZXJSZXN1bHQgPSAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhhbmRsZXJSZXN1bHQpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBoYW5kbGVyUmVzdWx0OwogICAgICAgICAgdGhpcy5fdXJpQ2FjaGUuc2V0KHVyaSwgdmFsdWUpOwogICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgY29uc3QgdXJsMyA9IG5ldyBVcmwuVVJMKHVyaSk7CiAgICAgICAgICBjb25zdCBjbGllbnQgPSB1cmwzLnByb3RvY29sID09PSAiaHR0cHM6IiA/IGh0dHBzIDogaHR0cDsKICAgICAgICAgIGNsaWVudC5nZXQodXJsMywgKHJlcykgPT4gewogICAgICAgICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID49IDMwMCkgewogICAgICAgICAgICAgIHJlcy5yZXN1bWUoKTsKICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZC4gU3RhdHVzIENvZGU6ICR7cmVzLnN0YXR1c0NvZGV9YCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcy5zZXRFbmNvZGluZygidXRmOCIpOwogICAgICAgICAgICAgIGxldCBkYXRhID0gIiI7CiAgICAgICAgICAgICAgcmVzLm9uKCJkYXRhIiwgKGNodW5rKSA9PiB7CiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJlcy5vbigiZW5kIiwgKCkgPT4gewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QganNvbjIgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgICAgICAgICAgICAgICB0aGlzLl91cmlDYWNoZS5zZXQodXJpLCBqc29uMik7CiAgICAgICAgICAgICAgICAgIHJlc29sdmUoanNvbjIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgdHJhbnNmb3JtYXRpb24gc3RlcCBiZWZvcmUgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uCiAgICAgICAqIEBwYXJhbSB7SnNvblZpc2l0b3J9IHZpc2l0b3IgVGhlIHZpc2l0b3IgdG8gdHJhbnNmb3JtIGV2ZXJ5IHZhbHVlLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yW119IGRlcHMgQSBsaXN0IG9mIG90aGVyIHZpc2l0b3JzIHRvIHJ1biBiZWZvcmUuCiAgICAgICAqLwogICAgICBhZGRQcmVUcmFuc2Zvcm0odmlzaXRvciwgZGVwcykgewogICAgICAgIHRoaXMuX3ByZS5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHRyYW5zZm9ybWF0aW9uIHN0ZXAgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uIFRoZSBKU09OIHdpbGwgbm90IGJlIHZhbGlkYXRlZAogICAgICAgKiBhZnRlciB0aGUgUE9TVCwgc28gaWYgdHJhbnNmb3JtYXRpb25zIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBTY2hlbWEgaXQgd2lsbCBub3QgcmVzdWx0CiAgICAgICAqIGluIGFuIGVycm9yLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yfSB2aXNpdG9yIFRoZSB2aXNpdG9yIHRvIHRyYW5zZm9ybSBldmVyeSB2YWx1ZS4KICAgICAgICogQHBhcmFtIHtKc29uVmlzaXRvcltdfSBkZXBzIEEgbGlzdCBvZiBvdGhlciB2aXNpdG9ycyB0byBydW4gYmVmb3JlLgogICAgICAgKi8KICAgICAgYWRkUG9zdFRyYW5zZm9ybSh2aXNpdG9yLCBkZXBzKSB7CiAgICAgICAgdGhpcy5fcG9zdC5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgX3Jlc29sdmVyKHJlZiwgdmFsaWRhdGUpIHsKICAgICAgICBpZiAoIXZhbGlkYXRlIHx8ICFyZWYpIHsKICAgICAgICAgIHJldHVybiB7fTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgc2NoZW1hMiA9IHZhbGlkYXRlLnNjaGVtYUVudi5yb290LnNjaGVtYTsKICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IiA/IHNjaGVtYTIuJGlkIDogbnVsbDsKICAgICAgICBsZXQgZnVsbFJlZmVyZW5jZSA9IHJlZjsKICAgICAgICBpZiAodHlwZW9mIGlkID09PSAic3RyaW5nIikgewogICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IFVybC5yZXNvbHZlKGlkLCByZWYpOwogICAgICAgICAgaWYgKHJlZi5zdGFydHNXaXRoKCIjIikpIHsKICAgICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IGlkICsgZnVsbFJlZmVyZW5jZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgcmVzb2x2ZWRTY2hlbWEgPSB0aGlzLl9hanYuZ2V0U2NoZW1hKGZ1bGxSZWZlcmVuY2UpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjb250ZXh0OiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hRW52LnZhbGlkYXRlLAogICAgICAgICAgc2NoZW1hOiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogRmxhdHRlbiB0aGUgU2NoZW1hLCByZXNvbHZpbmcgYW5kIHJlcGxhY2luZyBhbGwgdGhlIHJlZnMuIE1ha2VzIGl0IGludG8gYSBzeW5jaHJvbm91cyBzY2hlbWEKICAgICAgICogdGhhdCBpcyBhbHNvIGVhc2llciB0byB0cmF2ZXJzZS4gRG9lcyBub3QgY2FjaGUgdGhlIHJlc3VsdC4KICAgICAgICoKICAgICAgICogUHJvZHVjaW5nIGEgZmxhdHRlbiBzY2hlbWEgZG9jdW1lbnQgZG9lcyBub3QgaW4gYWxsIGNhc2VzIHByb2R1Y2UgYSBzY2hlbWEgd2l0aCBpZGVudGljYWwgYmVoYXZpb3IgdG8gdGhlIG9yaWdpbmFsLgogICAgICAgKiBTZWU6IGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5hcHBlbmRpeC5CLjIKICAgICAgICoKICAgICAgICogQHBhcmFtIHNjaGVtYSBUaGUgc2NoZW1hIG9yIFVSSSB0byBmbGF0dGVuLgogICAgICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIG9mIHRoZSBmbGF0dGVuZWQgc2NoZW1hIG9iamVjdC4KICAgICAgICogQHByaXZhdGUgc2luY2UgMTEuMiB3aXRob3V0IHJlcGxhY2VtZW50LgogICAgICAgKi8KICAgICAgYXN5bmMgXHUwMjc1ZmxhdHRlbihzY2hlbWEyKSB7CiAgICAgICAgdGhpcy5fYWp2LnJlbW92ZVNjaGVtYShzY2hlbWEyKTsKICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fYWp2LmNvbXBpbGVBc3luYyhzY2hlbWEyKTsKICAgICAgICBjb25zdCBzZWxmMiA9IHRoaXM7CiAgICAgICAgZnVuY3Rpb24gdmlzaXRvcihjdXJyZW50LCBwb2ludGVyLCBwYXJlbnRTY2hlbWEsIGluZGV4KSB7CiAgICAgICAgICBpZiAoY3VycmVudCAmJiBwYXJlbnRTY2hlbWEgJiYgaW5kZXggJiYgKDAsIHV0aWxzXzIuaXNKc29uT2JqZWN0KShjdXJyZW50KSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwgIiRyZWYiKSAmJiB0eXBlb2YgY3VycmVudFsiJHJlZiJdID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gc2VsZjIuX3Jlc29sdmVyKGN1cnJlbnRbIiRyZWYiXSwgdmFsaWRhdGUpOwogICAgICAgICAgICBpZiAocmVzb2x2ZWQuc2NoZW1hKSB7CiAgICAgICAgICAgICAgcGFyZW50U2NoZW1hW2luZGV4XSA9IHJlc29sdmVkLnNjaGVtYTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWFDb3B5ID0gKDAsIHV0aWxzXzEuZGVlcENvcHkpKHZhbGlkYXRlLnNjaGVtYSk7CiAgICAgICAgKDAsIHZpc2l0b3JfMS52aXNpdEpzb25TY2hlbWEpKHNjaGVtYUNvcHksIHZpc2l0b3IpOwogICAgICAgIHJldHVybiBzY2hlbWFDb3B5OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDb21waWxlIGFuZCByZXR1cm4gYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgU2NoZW1hLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gc2NoZW1hIFRoZSBzY2hlbWEgdG8gdmFsaWRhdGUuIElmIGEgc3RyaW5nLCB3aWxsIGZldGNoIHRoZSBzY2hlbWEgYmVmb3JlIGNvbXBpbGluZyBpdAogICAgICAgKiAodXNpbmcgc2NoZW1hIGFzIGEgVVJJKS4KICAgICAgICovCiAgICAgIGFzeW5jIGNvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fY29tcGlsZShzY2hlbWEyKTsKICAgICAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXN5bmMgX2NvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEpID0+ICh7IHN1Y2Nlc3M6IHNjaGVtYTIsIGRhdGEgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNjaGVtYUluZm8gPSB7CiAgICAgICAgICBzbWFydERlZmF1bHRSZWNvcmQ6IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksCiAgICAgICAgICBwcm9tcHREZWZpbml0aW9uczogW10KICAgICAgICB9OwogICAgICAgIHRoaXMuX2Fqdi5yZW1vdmVTY2hlbWEoc2NoZW1hMik7CiAgICAgICAgbGV0IHZhbGlkYXRvcjsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5fY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbyA9IHNjaGVtYUluZm87CiAgICAgICAgICB2YWxpZGF0b3IgPSB0aGlzLl9hanYuY29tcGlsZShzY2hlbWEyKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgYWp2XzEuZGVmYXVsdC5NaXNzaW5nUmVmRXJyb3IpKSB7CiAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICB9CiAgICAgICAgICB2YWxpZGF0b3IgPSBhd2FpdCB0aGlzLl9hanYuY29tcGlsZUFzeW5jKHNjaGVtYTIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEsIG9wdGlvbnMpID0+IHsKICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25PcHRpb25zID0gewogICAgICAgICAgICB3aXRoUHJvbXB0czogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQb3N0VHJhbnNmb3JtczogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQcmVUcmFuc2Zvcm1zOiB0cnVlLAogICAgICAgICAgICAuLi5vcHRpb25zCiAgICAgICAgICB9OwogICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkNvbnRleHQgPSB7CiAgICAgICAgICAgIHByb21wdEZpZWxkc1dpdGhWYWx1ZTogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy5hcHBseVByZVRyYW5zZm9ybXMpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB2aXNpdG9yIG9mIHRoaXMuX3ByZS52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlTbWFydERlZmF1bHRzKGRhdGEsIHNjaGVtYUluZm8uc21hcnREZWZhdWx0UmVjb3JkKTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy53aXRoUHJvbXB0cykgewogICAgICAgICAgICBjb25zdCB2aXNpdG9yID0gKHZhbHVlLCBwb2ludGVyKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5hZGQocG9pbnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHZpc2l0b3JfMS52aXNpdEpzb24pKGRhdGEsIHZpc2l0b3IsIHNjaGVtYTIsIHRoaXMuX3Jlc29sdmVyLmJpbmQodGhpcyksIHZhbGlkYXRvcikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gc2NoZW1hSW5mby5wcm9tcHREZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIXZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5oYXMoZGVmLmlkKSk7CiAgICAgICAgICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlQcm9tcHRzKGRhdGEsIGRlZmluaXRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHZhbGlkYXRvci5jYWxsKHZhbGlkYXRpb25Db250ZXh0LCBkYXRhKTsKICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzcywgZXJyb3JzOiB2YWxpZGF0b3IuZXJyb3JzID8/IFtdIH07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIGFqdl8xLmRlZmF1bHQuVmFsaWRhdGlvbkVycm9yKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3IuZXJyb3JzIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodmFsaWRhdGlvbk9wdGlvbnMuYXBwbHlQb3N0VHJhbnNmb3JtcykgewogICAgICAgICAgICBmb3IgKGNvbnN0IHZpc2l0b3Igb2YgdGhpcy5fcG9zdC52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogdHJ1ZSB9OwogICAgICAgIH07CiAgICAgIH0KICAgICAgYWRkRm9ybWF0KGZvcm1hdCkgewogICAgICAgIHRoaXMuX2Fqdi5hZGRGb3JtYXQoZm9ybWF0Lm5hbWUsIGZvcm1hdC5mb3JtYXR0ZXIpOwogICAgICB9CiAgICAgIGFkZFNtYXJ0RGVmYXVsdFByb3ZpZGVyKHNvdXJjZSwgcHJvdmlkZXIpIHsKICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc291cmNlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fc291cmNlTWFwLnNldChzb3VyY2UsIHByb3ZpZGVyKTsKICAgICAgICBpZiAoIXRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQpIHsKICAgICAgICAgIHRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSB0cnVlOwogICAgICAgICAgdGhpcy5fYWp2LmFkZEtleXdvcmQoewogICAgICAgICAgICBrZXl3b3JkOiAiJGRlZmF1bHQiLAogICAgICAgICAgICBlcnJvcnM6IGZhbHNlLAogICAgICAgICAgICB2YWxpZDogdHJ1ZSwKICAgICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIF9wYXJlbnRTY2hlbWEsIGl0KSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICAgIGlmIChjb21waWxhdGlvblNjaGVtSW5mbyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gdGhpcy5ub3JtYWxpemVEYXRhUGF0aEFycihpdCk7CiAgICAgICAgICAgICAgY29tcGlsYXRpb25TY2hlbUluZm8uc21hcnREZWZhdWx0UmVjb3JkLnNldChKU09OLnN0cmluZ2lmeShwYXRoQXJyYXkpLCBzY2hlbWEyKTsKICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICIkc291cmNlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyIkc291cmNlIl0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlZ2lzdGVyVXJpSGFuZGxlcihoYW5kbGVyKSB7CiAgICAgICAgdGhpcy5fdXJpSGFuZGxlcnMuYWRkKGhhbmRsZXIpOwogICAgICB9CiAgICAgIHVzZVByb21wdFByb3ZpZGVyKHByb3ZpZGVyKSB7CiAgICAgICAgY29uc3QgaXNTZXR1cCA9ICEhdGhpcy5fcHJvbXB0UHJvdmlkZXI7CiAgICAgICAgdGhpcy5fcHJvbXB0UHJvdmlkZXIgPSBwcm92aWRlcjsKICAgICAgICBpZiAoaXNTZXR1cCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1wcm9tcHQiLAogICAgICAgICAgZXJyb3JzOiBmYWxzZSwKICAgICAgICAgIHZhbGlkOiB0cnVlLAogICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpID0+IHsKICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICBpZiAoIWNvbXBpbGF0aW9uU2NoZW1JbmZvKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgcGF0aCA9ICIvIiArIHRoaXMubm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpLmpvaW4oIi8iKTsKICAgICAgICAgICAgbGV0IHR5cGUyOwogICAgICAgICAgICBsZXQgaXRlbXM7CiAgICAgICAgICAgIGxldCBtZXNzYWdlOwogICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMi5tZXNzYWdlOwogICAgICAgICAgICAgIHR5cGUyID0gc2NoZW1hMi50eXBlOwogICAgICAgICAgICAgIGl0ZW1zID0gc2NoZW1hMi5pdGVtczsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVR5cGVzID0gKDAsIHV0aWxpdHlfMS5nZXRUeXBlc09mU2NoZW1hKShwYXJlbnRTY2hlbWEpOwogICAgICAgICAgICBpZiAoIXR5cGUyKSB7CiAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VHlwZXMuc2l6ZSA9PT0gMSAmJiBwcm9wZXJ0eVR5cGVzLmhhcygiYm9vbGVhbiIpKSB7CiAgICAgICAgICAgICAgICB0eXBlMiA9ICJjb25maXJtYXRpb24iOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZW51bSkpIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImxpc3QiOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpICYmIHBhcmVudFNjaGVtYS5pdGVtcyAmJiBBcnJheS5pc0FycmF5KHBhcmVudFNjaGVtYS5pdGVtcy5lbnVtKSkgewogICAgICAgICAgICAgICAgdHlwZTIgPSAibGlzdCI7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImlucHV0IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG11bHRpc2VsZWN0OwogICAgICAgICAgICBpZiAodHlwZTIgPT09ICJsaXN0IikgewogICAgICAgICAgICAgIG11bHRpc2VsZWN0ID0gc2NoZW1hMi5tdWx0aXNlbGVjdCA9PT0gdm9pZCAwID8gcHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpIDogc2NoZW1hMi5tdWx0aXNlbGVjdDsKICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0gbXVsdGlzZWxlY3QgPyBwYXJlbnRTY2hlbWEuaXRlbXMgJiYgcGFyZW50U2NoZW1hLml0ZW1zLmVudW0gOiBwYXJlbnRTY2hlbWEuZW51bTsKICAgICAgICAgICAgICBpZiAoIWl0ZW1zICYmIEFycmF5LmlzQXJyYXkoZW51bVZhbHVlcykpIHsKICAgICAgICAgICAgICAgIGl0ZW1zID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGVudW1WYWx1ZXMpIHsKICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBsYWJlbDogdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUgfSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgICBpZDogcGF0aCwKICAgICAgICAgICAgICB0eXBlOiB0eXBlMiwKICAgICAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgICAgIHJhdzogc2NoZW1hMiwKICAgICAgICAgICAgICBpdGVtcywKICAgICAgICAgICAgICBtdWx0aXNlbGVjdCwKICAgICAgICAgICAgICBwcm9wZXJ0eVR5cGVzLAogICAgICAgICAgICAgIGRlZmF1bHQ6IHR5cGVvZiBwYXJlbnRTY2hlbWEuZGVmYXVsdCA9PSAib2JqZWN0IiAmJiBwYXJlbnRTY2hlbWEuZGVmYXVsdCAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZGVmYXVsdCkgPyB2b2lkIDAgOiBwYXJlbnRTY2hlbWEuZGVmYXVsdCwKICAgICAgICAgICAgICBhc3luYyB2YWxpZGF0b3IoZGF0YSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaXQuc2VsZi52YWxpZGF0ZShwYXJlbnRTY2hlbWEsIGRhdGEpOwogICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC5zZWxmLmVycm9ycz8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0LnNlbGYuZXJyb3JzWzBdLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gZTsKICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsaWRhdGlvbkVycm9yLmVycm9ycykgJiYgdmFsaWRhdGlvbkVycm9yLmVycm9ycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9yLmVycm9yc1swXS5tZXNzYWdlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBjb21waWxhdGlvblNjaGVtSW5mby5wcm9tcHREZWZpbml0aW9ucy5wdXNoKGRlZmluaXRpb24pOwogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMgJiYgdGhpcy5wcm9tcHRGaWVsZHNXaXRoVmFsdWUpIHsKICAgICAgICAgICAgICAgIHRoaXMucHJvbXB0RmllbGRzV2l0aFZhbHVlLmFkZChwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICBvbmVPZjogWwogICAgICAgICAgICAgIHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgICAgICAgICByZXF1aXJlZDogWyJtZXNzYWdlIl0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBhc3luYyBfYXBwbHlQcm9tcHRzKGRhdGEsIHByb21wdHMpIHsKICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMuX3Byb21wdFByb3ZpZGVyOwogICAgICAgIGlmICghcHJvdmlkZXIpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHJ4anNfMS5mcm9tKShwcm92aWRlcihwcm9tcHRzKSkpOwogICAgICAgIGZvciAoY29uc3QgcGF0aCBpbiBhbnN3ZXJzKSB7CiAgICAgICAgICBjb25zdCBwYXRoRnJhZ21lbnRzID0gcGF0aC5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIHBhdGhGcmFnbWVudHMsIGFuc3dlcnNbcGF0aF0sIG51bGwsIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN0YXRpYyBfc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUsIHBhcmVudCA9IG51bGwsIHBhcmVudFByb3BlcnR5LCBmb3JjZSkgewogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFnbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50c1tpbmRleF07CiAgICAgICAgICBpZiAoL15pXGQrJC8udGVzdChmcmFnbWVudCkpIHsKICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGV0IGRhdGFJbmRleCA9IDA7IGRhdGFJbmRleCA8IGRhdGEubGVuZ3RoOyBkYXRhSW5kZXgrKykgewogICAgICAgICAgICAgIF9Db3JlU2NoZW1hUmVnaXN0cnkuX3NldChkYXRhW2RhdGFJbmRleF0sIGZyYWdtZW50cy5zbGljZShpbmRleCArIDEpLCB2YWx1ZSwgZGF0YSwgYCR7ZGF0YUluZGV4fWApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZGF0YSAmJiBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50UHJvcGVydHkpIHsKICAgICAgICAgICAgZGF0YSA9IHBhcmVudFtwYXJlbnRQcm9wZXJ0eV0gPSB7fTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcmVudCA9IGRhdGE7CiAgICAgICAgICBwYXJlbnRQcm9wZXJ0eSA9IGZyYWdtZW50OwogICAgICAgICAgZGF0YSA9IGRhdGFbZnJhZ21lbnRdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudFByb3BlcnR5ICYmIChmb3JjZSB8fCBwYXJlbnRbcGFyZW50UHJvcGVydHldID09PSB2b2lkIDApKSB7CiAgICAgICAgICBwYXJlbnRbcGFyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzeW5jIF9hcHBseVNtYXJ0RGVmYXVsdHMoZGF0YSwgc21hcnREZWZhdWx0cykgewogICAgICAgIGZvciAoY29uc3QgW3BvaW50ZXIsIHNjaGVtYTJdIG9mIHNtYXJ0RGVmYXVsdHMuZW50cmllcygpKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBKU09OLnBhcnNlKHBvaW50ZXIpOwogICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5fc291cmNlTWFwLmdldChzY2hlbWEyLiRzb3VyY2UpOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2Uoc2NoZW1hMik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKHZhbHVlKSkgewogICAgICAgICAgICB2YWx1ZSA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkodmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICB1c2VYRGVwcmVjYXRlZFByb3ZpZGVyKG9uVXNhZ2UpIHsKICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1kZXByZWNhdGVkIiwKICAgICAgICAgIHZhbGlkYXRlOiAoc2NoZW1hMiwgX2RhdGEsIF9wYXJlbnRTY2hlbWEsIGRhdGFDeHQpID0+IHsKICAgICAgICAgICAgaWYgKHNjaGVtYTIpIHsKICAgICAgICAgICAgICBvblVzYWdlKGBPcHRpb24gIiR7ZGF0YUN4dD8ucGFyZW50RGF0YVByb3BlcnR5fSIgaXMgZGVwcmVjYXRlZCR7dHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIgPyAiOiAiICsgc2NoZW1hMiA6ICIuIn1gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcnM6IGZhbHNlCiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpIHsKICAgICAgICByZXR1cm4gaXQuZGF0YVBhdGhBcnIuc2xpY2UoMSwgaXQuZGF0YUxldmVsICsgMSkubWFwKChwKSA9PiB0eXBlb2YgcCA9PT0gIm51bWJlciIgPyBwIDogcC5zdHIucmVwbGFjZSgvIi9nLCAiIikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gQ29yZVNjaGVtYVJlZ2lzdHJ5OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzCnZhciByZXF1aXJlX3NjaGVtYSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0pzb25TY2hlbWEgPSBpc0pzb25TY2hlbWE7CiAgICBleHBvcnRzMi5tZXJnZVNjaGVtYXMgPSBtZXJnZVNjaGVtYXM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIGZ1bmN0aW9uIGlzSnNvblNjaGVtYSh2YWx1ZSkgewogICAgICByZXR1cm4gKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gbWVyZ2VTY2hlbWFzKC4uLnNjaGVtYXMpIHsKICAgICAgcmV0dXJuIHNjaGVtYXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7CiAgICAgICAgaWYgKGN1cnIgPT09IHZvaWQgMCkgewogICAgICAgICAgcmV0dXJuIHByZXY7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2ID09PSBmYWxzZSB8fCBjdXJyID09PSBmYWxzZSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAocHJldiA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIGN1cnI7CiAgICAgICAgfSBlbHNlIGlmIChjdXJyID09PSB0cnVlKSB7CiAgICAgICAgICByZXR1cm4gcHJldjsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJldi5hbGxPZikpIHsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnIuYWxsT2YpKSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgY3Vycl0gfTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3Vyci5hbGxPZikpIHsKICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbcHJldiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHsgLi4ucHJldiwgYWxsT2Y6IFtwcmV2LCBjdXJyXSB9OwogICAgICAgIH0KICAgICAgfSwgdHJ1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcwp2YXIgcmVxdWlyZV9zY2hlbWEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudHJhbnNmb3JtcyA9IHZvaWQgMDsKICAgIHZhciB0cmFuc2Zvcm1zID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtcygpKTsKICAgIGV4cG9ydHMyLnRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1zOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BvaW50ZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmVnaXN0cnkoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Zpc2l0b3IoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdXRpbGl0eSgpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL2luZGV4LmpzCnZhciByZXF1aXJlX2pzb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHZvaWQgMDsKICAgIHZhciBzY2hlbWEyID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hMigpKTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHNjaGVtYTI7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlscygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbG9nZ2VyLmpzCnZhciByZXF1aXJlX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgTG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyByeGpzXzEuT2JzZXJ2YWJsZSB7CiAgICAgIG5hbWU7CiAgICAgIHBhcmVudDsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX21ldGFkYXRhOwogICAgICBfb2JzID0gcnhqc18xLkVNUFRZOwogICAgICBfc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgZ2V0IF9vYnNlcnZhYmxlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnM7CiAgICAgIH0KICAgICAgc2V0IF9vYnNlcnZhYmxlKHYpIHsKICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fb2JzID0gdjsKICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKGVycm9yKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCkgewogICAgICAgICAgICAgIHRoaXMucGFyZW50Ll9zdWJqZWN0LmVycm9yKGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIGNvbnN0IHBhdGggPSBbXTsKICAgICAgICBsZXQgcCA9IHBhcmVudDsKICAgICAgICB3aGlsZSAocCkgewogICAgICAgICAgcGF0aC5wdXNoKHAubmFtZSk7CiAgICAgICAgICBwID0gcC5wYXJlbnQ7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21ldGFkYXRhID0geyBuYW1lLCBwYXRoIH07CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRoaXMuX3N1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50Ll9zdWJqZWN0KSB7CiAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5zdWJzY3JpYmUodm9pZCAwLCB2b2lkIDAsICgpID0+IHRoaXMuY29tcGxldGUoKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKG5hbWUpID0+IHRoaXMuY3JlYXRlQ2hpbGQobmFtZSksCiAgICAgICAgICBsb2c6IChsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEpID0+IHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nKGxldmVsLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgICAgICB9LAogICAgICAgICAgZGVidWc6IChtZXNzYWdlLCBtZXRhZGF0YSkgPT4gdGhpcy5kZWJ1ZyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBpbmZvOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICB3YXJuOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMud2FybihtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBlcnJvcjogKG1lc3NhZ2UsIG1ldGFkYXRhKSA9PiB0aGlzLmVycm9yKG1lc3NhZ2UsIG1ldGFkYXRhKSwKICAgICAgICAgIGZhdGFsOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuZmF0YWwobWVzc2FnZSwgbWV0YWRhdGEpCiAgICAgICAgfTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKG5hbWUsIHRoaXMpOwogICAgICB9CiAgICAgIGNvbXBsZXRlKCkgewogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgfQogICAgICBsb2cobGV2ZWwsIG1lc3NhZ2UsIG1ldGFkYXRhID0ge30pIHsKICAgICAgICBjb25zdCBlbnRyeSA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLCB0aGlzLl9tZXRhZGF0YSwgewogICAgICAgICAgbGV2ZWwsCiAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgdGltZXN0YW1wOiArRGF0ZS5ub3coKQogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgbmV4dChlbnRyeSkgewogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgZGVidWcobWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygiZGVidWciLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgIH0KICAgICAgaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJpbmZvIiwgbWVzc2FnZSwgbWV0YWRhdGEpOwogICAgICB9CiAgICAgIHdhcm4obWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygid2FybiIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBlcnJvcihtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJlcnJvciIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBmYXRhbChtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJmYXRhbCIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gYDxMb2dnZXIoJHt0aGlzLm5hbWV9KT5gOwogICAgICB9CiAgICAgIGxpZnQob3BlcmF0b3IpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2YWJsZS5saWZ0KG9wZXJhdG9yKTsKICAgICAgfQogICAgICBzdWJzY3JpYmUoX29ic2VydmVyT3JOZXh0LCBfZXJyb3IsIF9jb21wbGV0ZSkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZhYmxlLnN1YnNjcmliZS5hcHBseSgKICAgICAgICAgIHRoaXMuX29ic2VydmFibGUsCiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zCiAgICAgICAgICBhcmd1bWVudHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZvckVhY2gobmV4dCwgcHJvbWlzZUN0b3IgPSBQcm9taXNlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX29ic2VydmFibGUuZm9yRWFjaChuZXh0LCBwcm9taXNlQ3Rvcik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Mb2dnZXIgPSBMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZW50LmpzCnZhciByZXF1aXJlX2luZGVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIGluZGVudGF0aW9uTWFwID0ge307CiAgICB2YXIgSW5kZW50TG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyBsb2dnZXJfMS5Mb2dnZXIgewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsLCBpbmRlbnRhdGlvbiA9ICIgICIpIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSB8fCBbIiJdOwogICAgICAgIGNvbnN0IGluZGVudE1hcCA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gdGhpcy5fb2JzZXJ2YWJsZS5waXBlKCgwLCByeGpzXzEubWFwKSgoZW50cnkpID0+IHsKICAgICAgICAgIGNvbnN0IGwgPSBlbnRyeS5wYXRoLmZpbHRlcigoeCkgPT4gISF4KS5sZW5ndGg7CiAgICAgICAgICBpZiAobCA+PSBpbmRlbnRNYXAubGVuZ3RoKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50ID0gaW5kZW50TWFwW2luZGVudE1hcC5sZW5ndGggLSAxXTsKICAgICAgICAgICAgd2hpbGUgKGwgPj0gaW5kZW50TWFwLmxlbmd0aCkgewogICAgICAgICAgICAgIGN1cnJlbnQgKz0gaW5kZW50YXRpb247CiAgICAgICAgICAgICAgaW5kZW50TWFwLnB1c2goY3VycmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVudHJ5Lm1lc3NhZ2UgPSBpbmRlbnRNYXBbbF0gKyBlbnRyeS5tZXNzYWdlLnNwbGl0KC9cbi8pLmpvaW4oIlxuIiArIGluZGVudE1hcFtsXSk7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gSW5kZW50TG9nZ2VyOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzCnZhciByZXF1aXJlX2xldmVsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbGV2ZWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkxldmVsQ2FwTG9nZ2VyID0gZXhwb3J0czIuTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgPSB2b2lkIDA7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIExldmVsVHJhbnNmb3JtTG9nZ2VyID0gY2xhc3MgX0xldmVsVHJhbnNmb3JtTG9nZ2VyIGV4dGVuZHMgbG9nZ2VyXzEuTG9nZ2VyIHsKICAgICAgbmFtZTsKICAgICAgcGFyZW50OwogICAgICBsZXZlbFRyYW5zZm9ybTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxUcmFuc2Zvcm0pIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbFRyYW5zZm9ybSA9IGxldmVsVHJhbnNmb3JtOwogICAgICB9CiAgICAgIGxvZyhsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiBzdXBlci5sb2codGhpcy5sZXZlbFRyYW5zZm9ybShsZXZlbCksIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIobmFtZSwgdGhpcywgdGhpcy5sZXZlbFRyYW5zZm9ybSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5MZXZlbFRyYW5zZm9ybUxvZ2dlciA9IExldmVsVHJhbnNmb3JtTG9nZ2VyOwogICAgdmFyIExldmVsQ2FwTG9nZ2VyID0gY2xhc3MgX0xldmVsQ2FwTG9nZ2VyIGV4dGVuZHMgTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgewogICAgICBuYW1lOwogICAgICBwYXJlbnQ7CiAgICAgIGxldmVsQ2FwOwogICAgICBzdGF0aWMgbGV2ZWxNYXAgPSB7CiAgICAgICAgZGVidWc6IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJkZWJ1ZyIsIHdhcm46ICJkZWJ1ZyIsIGVycm9yOiAiZGVidWciLCBmYXRhbDogImRlYnVnIiB9LAogICAgICAgIGluZm86IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJpbmZvIiwgd2FybjogImluZm8iLCBlcnJvcjogImluZm8iLCBmYXRhbDogImluZm8iIH0sCiAgICAgICAgd2FybjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAid2FybiIsIGZhdGFsOiAid2FybiIgfSwKICAgICAgICBlcnJvcjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAiZXJyb3IiLCBmYXRhbDogImVycm9yIiB9LAogICAgICAgIGZhdGFsOiB7IGRlYnVnOiAiZGVidWciLCBpbmZvOiAiaW5mbyIsIHdhcm46ICJ3YXJuIiwgZXJyb3I6ICJlcnJvciIsIGZhdGFsOiAiZmF0YWwiIH0KICAgICAgfTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxDYXApIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQsIChsZXZlbCkgPT4gewogICAgICAgICAgcmV0dXJuIF9MZXZlbENhcExvZ2dlci5sZXZlbE1hcFtsZXZlbENhcF1bbGV2ZWxdIHx8IGxldmVsOwogICAgICAgIH0pOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbENhcCA9IGxldmVsQ2FwOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGV2ZWxDYXBMb2dnZXIgPSBMZXZlbENhcExvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9udWxsLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV9udWxsX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL251bGwtbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIE51bGxMb2dnZXIgPSBjbGFzcyBfTnVsbExvZ2dlciBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKHBhcmVudCA9IG51bGwpIHsKICAgICAgICBzdXBlcigiIiwgcGFyZW50KTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKCkgPT4gbmV3IF9OdWxsTG9nZ2VyKHRoaXMpLAogICAgICAgICAgbG9nKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGRlYnVnKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGluZm8oKSB7CiAgICAgICAgICB9LAogICAgICAgICAgd2FybigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBmYXRhbCgpIHsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbExvZ2dlciA9IE51bGxMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV90cmFuc2Zvcm1fbG9nZ2VyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJhbnNmb3JtTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIGxvZ2dlcl8xID0gcmVxdWlyZV9sb2dnZXIoKTsKICAgIHZhciBUcmFuc2Zvcm1Mb2dnZXIgPSBjbGFzcyBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIHRyYW5zZm9ybSwgcGFyZW50ID0gbnVsbCkgewogICAgICAgIHN1cGVyKG5hbWUsIHBhcmVudCk7CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRyYW5zZm9ybSh0aGlzLl9vYnNlcnZhYmxlKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRyYW5zZm9ybUxvZ2dlciA9IFRyYW5zZm9ybUxvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9pbmRleC5qcwp2YXIgcmVxdWlyZV9sb2dnZXIyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2luZGVudCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sZXZlbCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbnVsbF9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtX2xvZ2dlcigpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvZGVmaW5pdGlvbnMuanMKdmFyIHJlcXVpcmVfZGVmaW5pdGlvbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgRGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyB7CiAgICAgIF9saXN0ZW5lcjsKICAgICAgX21hcDsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgX2xpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5fbGlzdGVuZXIgPSBfbGlzdGVuZXI7CiAgICAgICAgdGhpcy5fbWFwID0gbmV3IE1hcChpbml0aWFsICYmIE9iamVjdC5lbnRyaWVzKGluaXRpYWwpKTsKICAgICAgfQogICAgICBkZWxldGUoa2V5KSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbWFwLmRlbGV0ZShrZXkpOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2b2lkIDAsIHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIHNldChrZXksIHZhbHVlKSB7CiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdmFsdWUgIT09IHRoaXMuZ2V0KGtleSk7CiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSkgewogICAgICAgICAgdGhpcy5fbWFwLnNldChrZXksIHZhbHVlKTsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2YWx1ZSwgdGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZykgewogICAgICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBjYWxsYmFja2ZuKHZhbHVlLCBrZXksIHRoaXMpLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5nZXQoa2V5KTsKICAgICAgfQogICAgICBoYXMoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5oYXMoa2V5KTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnNpemU7CiAgICAgIH0KICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcFtTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgICAgZW50cmllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKTsKICAgICAgfQogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9tYXAua2V5cygpOwogICAgICB9CiAgICAgIHZhbHVlcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gaXNKc29uVmFsdWUodmFsdWUpIHsKICAgICAgY29uc3QgdmlzaXRlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHZpc2l0ZWQuYWRkKHZhbHVlKTsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZSkpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYgdmlzaXRlZC5oYXMocHJvcGVydHkpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFpc0pzb25WYWx1ZShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIHZhciBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJQcm9qZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMuIik7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShkZWZpbml0aW9uLm5hbWUpOwogICAgICAgIGNvbnN0IHByb2plY3QgPSB7CiAgICAgICAgICByb290OiBkZWZpbml0aW9uLnJvb3QsCiAgICAgICAgICBwcmVmaXg6IGRlZmluaXRpb24ucHJlZml4LAogICAgICAgICAgc291cmNlUm9vdDogZGVmaW5pdGlvbi5zb3VyY2VSb290LAogICAgICAgICAgdGFyZ2V0czogbmV3IFRhcmdldERlZmluaXRpb25Db2xsZWN0aW9uKCksCiAgICAgICAgICBleHRlbnNpb25zOiB7fQogICAgICAgIH07CiAgICAgICAgaWYgKGRlZmluaXRpb24udGFyZ2V0cykgewogICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdGFyZ2V0XSBvZiBPYmplY3QuZW50cmllcyhkZWZpbml0aW9uLnRhcmdldHMpKSB7CiAgICAgICAgICAgIGlmICh0YXJnZXQpIHsKICAgICAgICAgICAgICBwcm9qZWN0LnRhcmdldHMuc2V0KG5hbWUsIHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRlZmluaXRpb24pKSB7CiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgICBjYXNlICJzb3VyY2VSb290IjoKICAgICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKGlzSnNvblZhbHVlKHZhbHVlKSkgewogICAgICAgICAgICAgICAgcHJvamVjdC5leHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCIke25hbWV9IiBtdXN0IGJlIGEgSlNPTiB2YWx1ZS5gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyLnNldChkZWZpbml0aW9uLm5hbWUsIHByb2plY3QpOwogICAgICAgIHJldHVybiBwcm9qZWN0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIgfHwgIS9eKD86QFx3W1x3Li1dKlwvKT9cd1tcdy4tXSokLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlByb2plY3QgbmFtZSBtdXN0IGJlIGEgdmFsaWQgbnBtIHBhY2thZ2UgbmFtZS4iKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb247CiAgICB2YXIgVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXJnZXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fdmFsaWRhdGVOYW1lKGRlZmluaXRpb24ubmFtZSk7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gewogICAgICAgICAgYnVpbGRlcjogZGVmaW5pdGlvbi5idWlsZGVyLAogICAgICAgICAgb3B0aW9uczogZGVmaW5pdGlvbi5vcHRpb25zLAogICAgICAgICAgY29uZmlndXJhdGlvbnM6IGRlZmluaXRpb24uY29uZmlndXJhdGlvbnMsCiAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogZGVmaW5pdGlvbi5kZWZhdWx0Q29uZmlndXJhdGlvbgogICAgICAgIH07CiAgICAgICAgc3VwZXIuc2V0KGRlZmluaXRpb24ubmFtZSwgdGFyZ2V0KTsKICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlRhcmdldCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBUYXJnZXREZWZpbml0aW9uQ29sbGVjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvcGF0aC5qcwp2YXIgcmVxdWlyZV9wYXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL3BhdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhdGggPSBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSBleHBvcnRzMi5QYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRQYXRoRXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3BsaXQgPSBzcGxpdDsKICAgIGV4cG9ydHMyLmV4dG5hbWUgPSBleHRuYW1lOwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSBiYXNlbmFtZTsKICAgIGV4cG9ydHMyLmRpcm5hbWUgPSBkaXJuYW1lOwogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGU7CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgZXhwb3J0czIucmVzb2x2ZSA9IHJlc29sdmU7CiAgICBleHBvcnRzMi5mcmFnbWVudCA9IGZyYWdtZW50OwogICAgZXhwb3J0czIucmVzZXROb3JtYWxpemVDYWNoZSA9IHJlc2V0Tm9ybWFsaXplQ2FjaGU7CiAgICBleHBvcnRzMi5ub3JtYWxpemUgPSBub3JtYWxpemU7CiAgICBleHBvcnRzMi5ub0NhY2hlTm9ybWFsaXplID0gbm9DYWNoZU5vcm1hbGl6ZTsKICAgIGV4cG9ydHMyLmFzV2luZG93c1BhdGggPSBhc1dpbmRvd3NQYXRoOwogICAgZXhwb3J0czIuYXNQb3NpeFBhdGggPSBhc1Bvc2l4UGF0aDsKICAgIGV4cG9ydHMyLmdldFN5c3RlbVBhdGggPSBnZXRTeXN0ZW1QYXRoOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBJbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IGlzIGludmFsaWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IEludmFsaWRQYXRoRXhjZXB0aW9uOwogICAgdmFyIFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IG11c3QgYmUgYWJzb2x1dGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb24gPSBQYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb247CiAgICB2YXIgUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoMikgewogICAgICAgIHN1cGVyKGBQYXRoICR7SlNPTi5zdHJpbmdpZnkocGF0aDIpfSBjYW5ub3QgYmUgbWFkZSBhIGZyYWdtZW50LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbjsKICAgIGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSAiLyI7CiAgICBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXA7CiAgICBmdW5jdGlvbiBzcGxpdChwYXRoMikgewogICAgICBjb25zdCBmcmFnbWVudHMgPSBwYXRoMi5zcGxpdChleHBvcnRzMi5Ob3JtYWxpemVkU2VwKS5tYXAoKHgpID0+IGZyYWdtZW50KHgpKTsKICAgICAgaWYgKGZyYWdtZW50c1tmcmFnbWVudHMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgZnJhZ21lbnRzLnBvcCgpOwogICAgICB9CiAgICAgIHJldHVybiBmcmFnbWVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBleHRuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShwYXRoMik7CiAgICAgIGNvbnN0IGkgPSBiYXNlLmxhc3RJbmRleE9mKCIuIik7CiAgICAgIGlmIChpIDwgMSkgewogICAgICAgIHJldHVybiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYmFzZS5zbGljZShpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYmFzZW5hbWUocGF0aDIpIHsKICAgICAgY29uc3QgaSA9IHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICBpZiAoaSA9PSAtMSkgewogICAgICAgIHJldHVybiBmcmFnbWVudChwYXRoMik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZyYWdtZW50KHBhdGgyLnNsaWNlKHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApICsgMSkpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkaXJuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGluZGV4ID0gcGF0aDIubGFzdEluZGV4T2YoZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0KICAgICAgY29uc3QgZW5kSW5kZXggPSBpbmRleCA9PT0gMCA/IDEgOiBpbmRleDsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoMi5zbGljZSgwLCBlbmRJbmRleCkpOwogICAgfQogICAgZnVuY3Rpb24gam9pbjIocDEsIC4uLm90aGVycykgewogICAgICBpZiAob3RoZXJzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplKChwMSA/IHAxICsgZXhwb3J0czIuTm9ybWFsaXplZFNlcCA6ICIiKSArIG90aGVycy5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcDE7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGlzQWJzb2x1dGUocCkgewogICAgICByZXR1cm4gcC5zdGFydHNXaXRoKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgfQogICAgZnVuY3Rpb24gcmVsYXRpdmUoZnJvbSwgdG8pIHsKICAgICAgaWYgKCFpc0Fic29sdXRlKGZyb20pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbihmcm9tKTsKICAgICAgfQogICAgICBpZiAoIWlzQWJzb2x1dGUodG8pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbih0byk7CiAgICAgIH0KICAgICAgbGV0IHA7CiAgICAgIGlmIChmcm9tID09IHRvKSB7CiAgICAgICAgcCA9ICIiOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHNwbGl0RnJvbSA9IHNwbGl0KGZyb20pOwogICAgICAgIGNvbnN0IHNwbGl0VG8gPSBzcGxpdCh0byk7CiAgICAgICAgd2hpbGUgKHNwbGl0RnJvbS5sZW5ndGggPiAwICYmIHNwbGl0VG8ubGVuZ3RoID4gMCAmJiBzcGxpdEZyb21bMF0gPT0gc3BsaXRUb1swXSkgewogICAgICAgICAgc3BsaXRGcm9tLnNoaWZ0KCk7CiAgICAgICAgICBzcGxpdFRvLnNoaWZ0KCk7CiAgICAgICAgfQogICAgICAgIGlmIChzcGxpdEZyb20ubGVuZ3RoID09IDApIHsKICAgICAgICAgIHAgPSBzcGxpdFRvLmpvaW4oZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHAgPSBzcGxpdEZyb20ubWFwKCgpID0+ICIuLiIpLmNvbmNhdChzcGxpdFRvKS5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbm9ybWFsaXplKHApOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShwMSwgcDIpIHsKICAgICAgaWYgKGlzQWJzb2x1dGUocDIpKSB7CiAgICAgICAgcmV0dXJuIHAyOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBqb2luMihwMSwgcDIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBmcmFnbWVudChwYXRoMikgewogICAgICBpZiAocGF0aDIuaW5kZXhPZihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKSAhPSAtMSkgewogICAgICAgIHRocm93IG5ldyBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbihwYXRoMik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGgyOwogICAgfQogICAgdmFyIG5vcm1hbGl6ZWRDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICBmdW5jdGlvbiByZXNldE5vcm1hbGl6ZUNhY2hlKCkgewogICAgICBub3JtYWxpemVkQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGxldCBtYXliZVBhdGggPSBub3JtYWxpemVkQ2FjaGUuZ2V0KHBhdGgyKTsKICAgICAgaWYgKCFtYXliZVBhdGgpIHsKICAgICAgICBtYXliZVBhdGggPSBub0NhY2hlTm9ybWFsaXplKHBhdGgyKTsKICAgICAgICBub3JtYWxpemVkQ2FjaGUuc2V0KHBhdGgyLCBtYXliZVBhdGgpOwogICAgICB9CiAgICAgIHJldHVybiBtYXliZVBhdGg7CiAgICB9CiAgICBmdW5jdGlvbiBub0NhY2hlTm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGlmIChwYXRoMiA9PSAiIiB8fCBwYXRoMiA9PSAiLiIpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0gZWxzZSBpZiAocGF0aDIgPT0gZXhwb3J0czIuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICByZXR1cm4gZXhwb3J0czIuTm9ybWFsaXplZFJvb3Q7CiAgICAgIH0KICAgICAgY29uc3Qgb3JpZ2luYWwgPSBwYXRoMjsKICAgICAgaWYgKHBhdGgyLm1hdGNoKC9eW0EtWl06Wy9cXF0vaSkpIHsKICAgICAgICBwYXRoMiA9ICJcXCIgKyBwYXRoMlswXS50b1VwcGVyQ2FzZSgpICsgIlxcIiArIHBhdGgyLnNsaWNlKDMpOwogICAgICB9CiAgICAgIGNvbnN0IHAgPSBwYXRoMi5zcGxpdCgvWy9cXF0vZyk7CiAgICAgIGxldCByZWxhdGl2ZTIgPSBmYWxzZTsKICAgICAgbGV0IGkgPSAxOwogICAgICBpZiAocFswXSAhPSAiIikgewogICAgICAgIHAudW5zaGlmdCgiLiIpOwogICAgICAgIHJlbGF0aXZlMiA9IHRydWU7CiAgICAgIH0KICAgICAgd2hpbGUgKGkgPCBwLmxlbmd0aCkgewogICAgICAgIGlmIChwW2ldID09ICIuIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChwW2ldID09ICIuLiIpIHsKICAgICAgICAgIGlmIChpIDwgMiAmJiAhcmVsYXRpdmUyKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGF0aEV4Y2VwdGlvbihvcmlnaW5hbCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPj0gMiAmJiBwW2kgLSAxXSAhPSAiLi4iKSB7CiAgICAgICAgICAgIHAuc3BsaWNlKGkgLSAxLCAyKTsKICAgICAgICAgICAgaS0tOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocFtpXSA9PSAiIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHAubGVuZ3RoID09IDEpIHsKICAgICAgICByZXR1cm4gcFswXSA9PSAiIiA/IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgOiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocFswXSA9PSAiLiIpIHsKICAgICAgICAgIHAuc2hpZnQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHAuam9pbihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKTsKICAgICAgfQogICAgfQogICAgdmFyIHBhdGggPSAoc3RyaW5nczMsIC4uLnZhbHVlcykgPT4gewogICAgICByZXR1cm4gbm9ybWFsaXplKFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykpOwogICAgfTsKICAgIGV4cG9ydHMyLnBhdGggPSBwYXRoOwogICAgZnVuY3Rpb24gYXNXaW5kb3dzUGF0aChwYXRoMikgewogICAgICBjb25zdCBkcml2ZSA9IHBhdGgyLm1hdGNoKC9eXC8oXHcpKD86XC8oLiopKT8kLyk7CiAgICAgIGlmIChkcml2ZSkgewogICAgICAgIGNvbnN0IHN1YlBhdGggPSBkcml2ZVsyXSA/IGRyaXZlWzJdLnJlcGxhY2UoL1wvL2csICJcXCIpIDogIiI7CiAgICAgICAgcmV0dXJuIGAke2RyaXZlWzFdfTpcXCR7c3ViUGF0aH1gOwogICAgICB9CiAgICAgIHJldHVybiBwYXRoMi5yZXBsYWNlKC9cLy9nLCAiXFwiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzUG9zaXhQYXRoKHBhdGgyKSB7CiAgICAgIHJldHVybiBwYXRoMjsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFN5c3RlbVBhdGgocGF0aDIpIHsKICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0uc3RhcnRzV2l0aCgid2luMzIiKSkgewogICAgICAgIHJldHVybiBhc1dpbmRvd3NQYXRoKHBhdGgyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYXNQb3NpeFBhdGgocGF0aDIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlcjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9idWZmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0cmluZ1RvRmlsZUJ1ZmZlciA9IHN0cmluZ1RvRmlsZUJ1ZmZlcjsKICAgIGV4cG9ydHMyLmZpbGVCdWZmZXJUb1N0cmluZyA9IGZpbGVCdWZmZXJUb1N0cmluZzsKICAgIHZhciBub2RlX3V0aWxfMSA9IHJlcXVpcmUoIm5vZGU6dXRpbCIpOwogICAgZnVuY3Rpb24gc3RyaW5nVG9GaWxlQnVmZmVyKHN0cjIpIHsKICAgICAgcmV0dXJuIG5ldyBub2RlX3V0aWxfMS5UZXh0RW5jb2RlcigpLmVuY29kZShzdHIyKS5idWZmZXI7CiAgICB9CiAgICBmdW5jdGlvbiBmaWxlQnVmZmVyVG9TdHJpbmcoZmlsZUJ1ZmZlcikgewogICAgICBpZiAoZmlsZUJ1ZmZlci50b1N0cmluZy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZmlsZUJ1ZmZlci50b1N0cmluZygidXRmLTgiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IG5vZGVfdXRpbF8xLlRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShuZXcgVWludDhBcnJheShmaWxlQnVmZmVyKSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzCnZhciByZXF1aXJlX2ludGVyZmFjZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RXYXRjaEV2ZW50VHlwZSA9IHZvaWQgMDsKICAgIHZhciBIb3N0V2F0Y2hFdmVudFR5cGU7CiAgICAoZnVuY3Rpb24oSG9zdFdhdGNoRXZlbnRUeXBlMikgewogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNoYW5nZWQiXSA9IDBdID0gIkNoYW5nZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNyZWF0ZWQiXSA9IDFdID0gIkNyZWF0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkRlbGV0ZWQiXSA9IDJdID0gIkRlbGV0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIlJlbmFtZWQiXSA9IDNdID0gIlJlbmFtZWQiOwogICAgfSkoSG9zdFdhdGNoRXZlbnRUeXBlIHx8IChleHBvcnRzMi5Ib3N0V2F0Y2hFdmVudFR5cGUgPSBIb3N0V2F0Y2hFdmVudFR5cGUgPSB7fSkpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L21lbW9yeS5qcwp2YXIgcmVxdWlyZV9tZW1vcnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9tZW1vcnkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNpbXBsZU1lbW9yeUhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBleGNlcHRpb25fMSA9IHJlcXVpcmVfZXhjZXB0aW9uKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTIoKTsKICAgIHZhciBTaW1wbGVNZW1vcnlIb3N0ID0gY2xhc3MgewogICAgICBfY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfd2F0Y2hlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfbmV3RGlyU3RhdHMoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluc3BlY3QoKSB7CiAgICAgICAgICAgIHJldHVybiAiPERpcmVjdG9yeT4iOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRmlsZSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBzaXplOiAwLAogICAgICAgICAgYXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgY3RpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgbXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgYmlydGh0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQ6IG51bGwKICAgICAgICB9OwogICAgICB9CiAgICAgIF9uZXdGaWxlU3RhdHMoY29udGVudCwgb2xkU3RhdHMpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaW5zcGVjdCgpIHsKICAgICAgICAgICAgcmV0dXJuIGA8RmlsZSBzaXplKCR7Y29udGVudC5ieXRlTGVuZ3RofSk+YDsKICAgICAgICAgIH0sCiAgICAgICAgICBpc0ZpbGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9LAogICAgICAgICAgc2l6ZTogY29udGVudC5ieXRlTGVuZ3RoLAogICAgICAgICAgYXRpbWU6IG9sZFN0YXRzID8gb2xkU3RhdHMuYXRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGN0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIG10aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGJpcnRodGltZTogb2xkU3RhdHMgPyBvbGRTdGF0cy5iaXJ0aHRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQKICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuX2NhY2hlLnNldCgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKSwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgIH0KICAgICAgX3RvQWJzb2x1dGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcGF0aF8xLmlzQWJzb2x1dGUpKHBhdGgpID8gcGF0aCA6ICgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfdXBkYXRlV2F0Y2hlcnMocGF0aCwgdHlwZTIpIHsKICAgICAgICBjb25zdCB0aW1lID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7CiAgICAgICAgbGV0IGN1cnJlbnRQYXRoID0gcGF0aDsKICAgICAgICBsZXQgcGFyZW50ID0gbnVsbDsKICAgICAgICBpZiAodGhpcy5fd2F0Y2hlcnMuc2l6ZSA9PSAwKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1heWJlV2F0Y2hlciA9IHRoaXMuX3dhdGNoZXJzLmdldChjdXJyZW50UGF0aCk7CiAgICAgICAgaWYgKG1heWJlV2F0Y2hlcikgewogICAgICAgICAgbWF5YmVXYXRjaGVyLmZvckVhY2goKHdhdGNoZXIpID0+IHsKICAgICAgICAgICAgY29uc3QgW29wdGlvbnMsIHN1YmplY3RdID0gd2F0Y2hlcjsKICAgICAgICAgICAgc3ViamVjdC5uZXh0KHsgcGF0aCwgdGltZSwgdHlwZTogdHlwZTIgfSk7CiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wZXJzaXN0ZW50ICYmIHR5cGUyID09IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKSB7CiAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHRoaXMuX3dhdGNoZXJzLmRlbGV0ZShjdXJyZW50UGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBkbyB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IHBhcmVudCAhPT0gbnVsbCA/IHBhcmVudCA6IGN1cnJlbnRQYXRoOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhdGhfMS5kaXJuYW1lKShjdXJyZW50UGF0aCk7CiAgICAgICAgICBjb25zdCBtYXliZVdhdGNoZXIyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KGN1cnJlbnRQYXRoKTsKICAgICAgICAgIGlmIChtYXliZVdhdGNoZXIyKSB7CiAgICAgICAgICAgIG1heWJlV2F0Y2hlcjIuZm9yRWFjaCgod2F0Y2hlcikgPT4gewogICAgICAgICAgICAgIGNvbnN0IFtvcHRpb25zLCBzdWJqZWN0XSA9IHdhdGNoZXI7CiAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLnJlY3Vyc2l2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBzdWJqZWN0Lm5leHQoeyBwYXRoLCB0aW1lLCB0eXBlOiB0eXBlMiB9KTsKICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMucGVyc2lzdGVudCAmJiB0eXBlMiA9PSBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZCkgewogICAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgdGhpcy5fd2F0Y2hlcnMuZGVsZXRlKGN1cnJlbnRQYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKHBhcmVudCAhPSBjdXJyZW50UGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaXN0IG9mIHByb3RlY3RlZCBtZXRob2RzIHRoYXQgZ2l2ZSBkaXJlY3QgYWNjZXNzIG91dHNpZGUgdGhlIG9ic2VydmFibGVzIHRvIHRoZSBjYWNoZQogICAgICAgKiBhbmQgaW50ZXJuYWwgc3RhdGVzLgogICAgICAgKi8KICAgICAgX3dyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl9jYWNoZS5nZXQocGF0aCk7CiAgICAgICAgaWYgKG9sZCAmJiBvbGQuaXNEaXJlY3RvcnkoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gKDAsIHBhdGhfMS5zcGxpdCkocGF0aCk7CiAgICAgICAgbGV0IGN1cnIgPSAoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGZyIG9mIGZyYWdtZW50cykgewogICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChmcik7CiAgICAgICAgICBpZiAobWF5YmVTdGF0cykgewogICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5QYXRoSXNGaWxlRXhjZXB0aW9uKGN1cnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoY3VyciwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fbmV3RmlsZVN0YXRzKGNvbnRlbnQsIG9sZCk7CiAgICAgICAgdGhpcy5fY2FjaGUuc2V0KHBhdGgsIHN0YXRzKTsKICAgICAgICB0aGlzLl91cGRhdGVXYXRjaGVycyhwYXRoLCBvbGQgPyBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZCA6IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkKTsKICAgICAgfQogICAgICBfcmVhZChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChwYXRoKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAobWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAoIW1heWJlU3RhdHMuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIG1heWJlU3RhdHMuY29udGVudDsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RlbGV0ZShwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgICBmb3IgKGNvbnN0IFtjYWNoZVBhdGhdIG9mIHRoaXMuX2NhY2hlLmVudHJpZXMoKSkgewogICAgICAgICAgICBpZiAoY2FjaGVQYXRoLnN0YXJ0c1dpdGgocGF0aCArIHBhdGhfMS5Ob3JtYWxpemVkU2VwKSB8fCBjYWNoZVBhdGggPT09IHBhdGgpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVQYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUocGF0aCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKHBhdGgsIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKTsKICAgICAgfQogICAgICBfcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgZnJvbSA9IHRoaXMuX3RvQWJzb2x1dGUoZnJvbSk7CiAgICAgICAgdG8gPSB0aGlzLl90b0Fic29sdXRlKHRvKTsKICAgICAgICBpZiAoIXRoaXMuX2NhY2hlLmhhcyhmcm9tKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oZnJvbSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jYWNoZS5oYXModG8pKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pc0RpcmVjdG9yeShmcm9tKSkgewogICAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGZyb20gKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY2FjaGUuZ2V0KHBhdGgpOwogICAgICAgICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoKDAsIHBhdGhfMS5qb2luKSh0bywgcGF0aF8xLk5vcm1hbGl6ZWRTZXAsIHBhdGguc2xpY2UoZnJvbS5sZW5ndGgpKSwgY29udGVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9jYWNoZS5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSAoMCwgcGF0aF8xLnNwbGl0KSh0byk7CiAgICAgICAgICAgIGNvbnN0IG5ld0RpcmVjdG9yaWVzID0gW107CiAgICAgICAgICAgIGxldCBjdXJyID0gKDAsIHBhdGhfMS5ub3JtYWxpemUpKCIvIik7CiAgICAgICAgICAgIGZvciAoY29uc3QgZnIgb2YgZnJhZ21lbnRzKSB7CiAgICAgICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgICAgIGNvbnN0IG1heWJlU3RhdHMgPSB0aGlzLl9jYWNoZS5nZXQoZnIpOwogICAgICAgICAgICAgIGlmIChtYXliZVN0YXRzKSB7CiAgICAgICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihjdXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmV3RGlyZWN0b3JpZXMucHVzaChjdXJyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChjb25zdCBuZXdEaXJlY3Rvcnkgb2YgbmV3RGlyZWN0b3JpZXMpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQobmV3RGlyZWN0b3J5LCB0aGlzLl9uZXdEaXJTdGF0cygpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoZnJvbSk7CiAgICAgICAgICAgIHRoaXMuX2NhY2hlLnNldCh0bywgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKGZyb20sIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5SZW5hbWVkKTsKICAgICAgfQogICAgICBfbGlzdChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRmlsZShwYXRoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0ZpbGVFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZyYWdtZW50cyA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgaWYgKHBhdGggIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgZm9yIChjb25zdCBwIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocC5zdGFydHNXaXRoKHBhdGggKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICByZXN1bHQuYWRkKCgwLCBwYXRoXzEuc3BsaXQpKHApW2ZyYWdtZW50cy5sZW5ndGhdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5fY2FjaGUua2V5cygpKSB7CiAgICAgICAgICAgIGlmIChwLnN0YXJ0c1dpdGgocGF0aF8xLk5vcm1hbGl6ZWRTZXApICYmIHAgIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgICAgIHJlc3VsdC5hZGQoKDAsIHBhdGhfMS5zcGxpdCkocClbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBbLi4ucmVzdWx0XTsKICAgICAgfQogICAgICBfZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gISF0aGlzLl9jYWNoZS5nZXQodGhpcy5fdG9BYnNvbHV0ZShwYXRoKSk7CiAgICAgIH0KICAgICAgX2lzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICBjb25zdCBtYXliZVN0YXRzID0gdGhpcy5fY2FjaGUuZ2V0KHRoaXMuX3RvQWJzb2x1dGUocGF0aCkpOwogICAgICAgIHJldHVybiBtYXliZVN0YXRzID8gbWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpIDogZmFsc2U7CiAgICAgIH0KICAgICAgX2lzRmlsZShwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0cyA/IG1heWJlU3RhdHMuaXNGaWxlKCkgOiBmYWxzZTsKICAgICAgfQogICAgICBfc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTdGF0czsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3dhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgICAgbGV0IG1heWJlV2F0Y2hlckFycmF5ID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghbWF5YmVXYXRjaGVyQXJyYXkpIHsKICAgICAgICAgIG1heWJlV2F0Y2hlckFycmF5ID0gW107CiAgICAgICAgICB0aGlzLl93YXRjaGVycy5zZXQocGF0aCwgbWF5YmVXYXRjaGVyQXJyYXkpOwogICAgICAgIH0KICAgICAgICBtYXliZVdhdGNoZXJBcnJheS5wdXNoKFtvcHRpb25zIHx8IHt9LCBzdWJqZWN0XSk7CiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgdGhpcy5fd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fcmVhZChwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KGNvbnRlbnQpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX2RlbGV0ZShwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KCk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX3JlbmFtZShmcm9tLCB0byk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9saXN0KHBhdGgpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9leGlzdHMocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQodGhpcy5faXNEaXJlY3RvcnkocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX2lzRmlsZShwYXRoKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX3N0YXQocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl93YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgIHRoaXMuX3dhdGNoZXJzLmNsZWFyKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TaW1wbGVNZW1vcnlIb3N0ID0gU2ltcGxlTWVtb3J5SG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzCnZhciByZXF1aXJlX3N5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TeW5jRGVsZWdhdGVIb3N0ID0gZXhwb3J0czIuU3luY2hyb25vdXNEZWxlZ2F0ZUV4cGVjdGVkRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcihgRXhwZWN0ZWQgYSBzeW5jaHJvbm91cyBkZWxlZ2F0ZSBidXQgZ290IGFuIGFzeW5jaHJvbm91cyBvbmUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb247CiAgICB2YXIgU3luY0RlbGVnYXRlSG9zdCA9IGNsYXNzIHsKICAgICAgX2RlbGVnYXRlOwogICAgICBjb25zdHJ1Y3RvcihfZGVsZWdhdGUpIHsKICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IF9kZWxlZ2F0ZTsKICAgICAgICBpZiAoIV9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuc3luY2hyb25vdXMpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RvU3luY0NhbGwob2JzZXJ2YWJsZSkgewogICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKICAgICAgICBsZXQgcmVzdWx0ID0gdm9pZCAwOwogICAgICAgIGxldCBlcnJvclJlc3VsdCA9IHZvaWQgMDsKICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZSgoeCkgPT4gcmVzdWx0ID0geCwgKGVycikgPT4gZXJyb3JSZXN1bHQgPSBlcnIsICgpID0+IGNvbXBsZXRlZCA9IHRydWUpOwogICAgICAgIGlmIChlcnJvclJlc3VsdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBlcnJvclJlc3VsdDsKICAgICAgICB9CiAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICBnZXQgY2FwYWJpbGl0aWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXM7CiAgICAgIH0KICAgICAgZ2V0IGRlbGVnYXRlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZTsKICAgICAgfQogICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUud3JpdGUocGF0aCwgY29udGVudCkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLnJlYWQocGF0aCkpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUuZGVsZXRlKHBhdGgpKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUoZnJvbSwgdG8pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmV4aXN0cyhwYXRoKSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRmlsZShwYXRoKSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgc3RhdC4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbChyZXN1bHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlN5bmNEZWxlZ2F0ZUhvc3QgPSBTeW5jRGVsZWdhdGVIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMKdmFyIHJlcXVpcmVfdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRlc3RIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBhdGhfMSA9IHJlcXVpcmVfcGF0aCgpOwogICAgdmFyIGJ1ZmZlcl8xID0gcmVxdWlyZV9idWZmZXIyKCk7CiAgICB2YXIgbWVtb3J5XzEgPSByZXF1aXJlX21lbW9yeSgpOwogICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYygpOwogICAgdmFyIFRlc3RIb3N0ID0gY2xhc3MgX1Rlc3RIb3N0IGV4dGVuZHMgbWVtb3J5XzEuU2ltcGxlTWVtb3J5SG9zdCB7CiAgICAgIF9yZWNvcmRzID0gW107CiAgICAgIF9zeW5jID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IobWFwMiA9IHt9KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1hcDIpKSB7CiAgICAgICAgICB0aGlzLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoZmlsZVBhdGgpLCAoMCwgYnVmZmVyXzEuc3RyaW5nVG9GaWxlQnVmZmVyKShtYXAyW2ZpbGVQYXRoXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgcmVjb3JkcygpIHsKICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3JlY29yZHNdOwogICAgICB9CiAgICAgIGNsZWFyUmVjb3JkcygpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CiAgICAgIH0KICAgICAgZ2V0IGZpbGVzKCkgewogICAgICAgIGNvbnN0IHN5bmMgPSB0aGlzLnN5bmM7CiAgICAgICAgZnVuY3Rpb24gX3Zpc2l0KHApIHsKICAgICAgICAgIHJldHVybiBzeW5jLmxpc3QocCkubWFwKChmcmFnbWVudCkgPT4gKDAsIHBhdGhfMS5qb2luKShwLCBmcmFnbWVudCkpLnJlZHVjZSgoZmlsZXMsIHBhdGgpID0+IHsKICAgICAgICAgICAgaWYgKHN5bmMuaXNEaXJlY3RvcnkocGF0aCkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmlsZXMuY29uY2F0KF92aXNpdChwYXRoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpbGVzLmNvbmNhdChwYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3Zpc2l0KCgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIpKTsKICAgICAgfQogICAgICBnZXQgc3luYygpIHsKICAgICAgICBpZiAoIXRoaXMuX3N5bmMpIHsKICAgICAgICAgIHRoaXMuX3N5bmMgPSBuZXcgc3luY18xLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9zeW5jOwogICAgICB9CiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IG5ld0hvc3QgPSBuZXcgX1Rlc3RIb3N0KCk7CiAgICAgICAgbmV3SG9zdC5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICByZXR1cm4gbmV3SG9zdDsKICAgICAgfQogICAgICAvLyBPdmVycmlkZSBwYXJlbnRzIGZ1bmN0aW9ucyB0byBrZWVwIGEgcmVjb3JkIG9mIGFsbCBvcGVyYXRvcnMgdGhhdCB3ZXJlIGRvbmUuCiAgICAgIF93cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndyaXRlIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKHBhdGgsIGNvbnRlbnQpOwogICAgICB9CiAgICAgIF9yZWFkKHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVhZCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIF9kZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJkZWxldGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIF9yZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVuYW1lIiwgZnJvbSwgdG8gfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIF9saXN0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAibGlzdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9saXN0KHBhdGgpOwogICAgICB9CiAgICAgIF9leGlzdHMocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJleGlzdHMiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZXhpc3RzKHBhdGgpOwogICAgICB9CiAgICAgIF9pc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogImlzRGlyZWN0b3J5IiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX2lzRGlyZWN0b3J5KHBhdGgpOwogICAgICB9CiAgICAgIF9pc0ZpbGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJpc0ZpbGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIF9zdGF0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAic3RhdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIF93YXRjaChwYXRoLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndhdGNoIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dhdGNoKHBhdGgsIG9wdGlvbnMpOwogICAgICB9CiAgICAgICR3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCksICgwLCBidWZmZXJfMS5zdHJpbmdUb0ZpbGVCdWZmZXIpKGNvbnRlbnQpKTsKICAgICAgfQogICAgICAkcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBidWZmZXJfMS5maWxlQnVmZmVyVG9TdHJpbmcpKHN1cGVyLl9yZWFkKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICB9CiAgICAgICRsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2xpc3QoKDAsIHBhdGhfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgfQogICAgICAkZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2V4aXN0cygoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9pc0RpcmVjdG9yeSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5UZXN0SG9zdCA9IFRlc3RIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Jlc29sdmVyLmpzCnZhciByZXF1aXJlX3Jlc29sdmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVzb2x2ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IHZvaWQgMDsKICAgIHZhciBSZXNvbHZlckhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUud3JpdGUodGhpcy5fcmVzb2x2ZShwYXRoKSwgY29udGVudCk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlYWQodGhpcy5fcmVzb2x2ZShwYXRoKSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGVsZXRlKHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUodGhpcy5fcmVzb2x2ZShmcm9tKSwgdGhpcy5fcmVzb2x2ZSh0bykpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmV4aXN0cyh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGlzRmlsZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRmlsZSh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdCh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaCh0aGlzLl9yZXNvbHZlKHBhdGgpLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IFJlc29sdmVySG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9hbGlhcy5qcwp2YXIgcmVxdWlyZV9hbGlhcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBBbGlhc0hvc3QgPSBjbGFzcyBleHRlbmRzIHJlc29sdmVyXzEuUmVzb2x2ZXJIb3N0IHsKICAgICAgX2FsaWFzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfcmVzb2x2ZShwYXRoKSB7CiAgICAgICAgbGV0IG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwYXRoKTsKICAgICAgICBjb25zdCBzcCA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IFtdOwogICAgICAgIHdoaWxlICghbWF5YmVBbGlhcyAmJiBzcC5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjb25zdCBwID0gKDAsIHBhdGhfMS5qb2luKShwYXRoXzEuTm9ybWFsaXplZFJvb3QsIC4uLnNwKTsKICAgICAgICAgIG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwKTsKICAgICAgICAgIGlmIChtYXliZUFsaWFzKSB7CiAgICAgICAgICAgIG1heWJlQWxpYXMgPSAoMCwgcGF0aF8xLmpvaW4pKG1heWJlQWxpYXMsIC4uLnJlbWFpbmluZyk7CiAgICAgICAgICB9CiAgICAgICAgICByZW1haW5pbmcudW5zaGlmdChzcC5wb3AoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUFsaWFzIHx8IHBhdGg7CiAgICAgIH0KICAgICAgZ2V0IGFsaWFzZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZXM7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSBBbGlhc0hvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzCnZhciByZXF1aXJlX2NyZWF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2NyZWF0ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlU3luY0hvc3QgPSBjcmVhdGVTeW5jSG9zdDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgZnVuY3Rpb24gd3JhcEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4gewogICAgICAgIHN1YnNjcmliZXIubmV4dChhY3Rpb24oKSk7CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNyZWF0ZVN5bmNIb3N0KGhhbmRsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBjbGFzcyB7CiAgICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICAgIHJldHVybiB7IHN5bmNocm9ub3VzOiB0cnVlIH07CiAgICAgICAgfQogICAgICAgIHJlYWQocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5yZWFkKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmxpc3QocGF0aCkpOwogICAgICAgIH0KICAgICAgICBleGlzdHMocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5leGlzdHMocGF0aCkpOwogICAgICAgIH0KICAgICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuaXNGaWxlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnN0YXQocGF0aCkpOwogICAgICAgIH0KICAgICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLndyaXRlKHBhdGgsIGNvbnRlbnQpKTsKICAgICAgICB9CiAgICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuZGVsZXRlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnJlbmFtZShmcm9tLCB0bykpOwogICAgICAgIH0KICAgICAgICB3YXRjaCgpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgfSgpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBFbXB0eSA9IGNsYXNzIHsKICAgICAgY2FwYWJpbGl0aWVzID0gewogICAgICAgIHN5bmNocm9ub3VzOiB0cnVlCiAgICAgIH07CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikoW10pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgIH0KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKG51bGwpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRW1wdHkgPSBFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanMKdmFyIHJlcXVpcmVfY29uc3RhbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvY29uc3RhbnRzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFdJTl9TTEFTSCA9ICJcXFxcLyI7CiAgICB2YXIgV0lOX05PX1NMQVNIID0gYFteJHtXSU5fU0xBU0h9XWA7CiAgICB2YXIgRE9UX0xJVEVSQUwgPSAiXFwuIjsKICAgIHZhciBQTFVTX0xJVEVSQUwgPSAiXFwrIjsKICAgIHZhciBRTUFSS19MSVRFUkFMID0gIlxcPyI7CiAgICB2YXIgU0xBU0hfTElURVJBTCA9ICJcXC8iOwogICAgdmFyIE9ORV9DSEFSID0gIig/PS4pIjsKICAgIHZhciBRTUFSSyA9ICJbXi9dIjsKICAgIHZhciBFTkRfQU5DSE9SID0gYCg/OiR7U0xBU0hfTElURVJBTH18JClgOwogICAgdmFyIFNUQVJUX0FOQ0hPUiA9IGAoPzpefCR7U0xBU0hfTElURVJBTH0pYDsKICAgIHZhciBET1RTX1NMQVNIID0gYCR7RE9UX0xJVEVSQUx9ezEsMn0ke0VORF9BTkNIT1J9YDsKICAgIHZhciBOT19ET1QgPSBgKD8hJHtET1RfTElURVJBTH0pYDsKICAgIHZhciBOT19ET1RTID0gYCg/ISR7U1RBUlRfQU5DSE9SfSR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBOT19ET1RfU0xBU0ggPSBgKD8hJHtET1RfTElURVJBTH17MCwxfSR7RU5EX0FOQ0hPUn0pYDsKICAgIHZhciBOT19ET1RTX1NMQVNIID0gYCg/ISR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBRTUFSS19OT19ET1QgPSBgW14uJHtTTEFTSF9MSVRFUkFMfV1gOwogICAgdmFyIFNUQVIgPSBgJHtRTUFSS30qP2A7CiAgICB2YXIgU0VQID0gIi8iOwogICAgdmFyIFBPU0lYX0NIQVJTID0gewogICAgICBET1RfTElURVJBTCwKICAgICAgUExVU19MSVRFUkFMLAogICAgICBRTUFSS19MSVRFUkFMLAogICAgICBTTEFTSF9MSVRFUkFMLAogICAgICBPTkVfQ0hBUiwKICAgICAgUU1BUkssCiAgICAgIEVORF9BTkNIT1IsCiAgICAgIERPVFNfU0xBU0gsCiAgICAgIE5PX0RPVCwKICAgICAgTk9fRE9UUywKICAgICAgTk9fRE9UX1NMQVNILAogICAgICBOT19ET1RTX1NMQVNILAogICAgICBRTUFSS19OT19ET1QsCiAgICAgIFNUQVIsCiAgICAgIFNUQVJUX0FOQ0hPUiwKICAgICAgU0VQCiAgICB9OwogICAgdmFyIFdJTkRPV1NfQ0hBUlMgPSB7CiAgICAgIC4uLlBPU0lYX0NIQVJTLAogICAgICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLAogICAgICBRTUFSSzogV0lOX05PX1NMQVNILAogICAgICBTVEFSOiBgJHtXSU5fTk9fU0xBU0h9Kj9gLAogICAgICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCwKICAgICAgTk9fRE9UOiBgKD8hJHtET1RfTElURVJBTH0pYCwKICAgICAgTk9fRE9UUzogYCg/ISg/Ol58WyR7V0lOX1NMQVNIfV0pJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLAogICAgICBOT19ET1RTX1NMQVNIOiBgKD8hJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIFFNQVJLX05PX0RPVDogYFteLiR7V0lOX1NMQVNIfV1gLAogICAgICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsCiAgICAgIEVORF9BTkNIT1I6IGAoPzpbJHtXSU5fU0xBU0h9XXwkKWAsCiAgICAgIFNFUDogIlxcIgogICAgfTsKICAgIHZhciBQT1NJWF9SRUdFWF9TT1VSQ0UgPSB7CiAgICAgIGFsbnVtOiAiYS16QS1aMC05IiwKICAgICAgYWxwaGE6ICJhLXpBLVoiLAogICAgICBhc2NpaTogIlxceDAwLVxceDdGIiwKICAgICAgYmxhbms6ICIgXFx0IiwKICAgICAgY250cmw6ICJcXHgwMC1cXHgxRlxceDdGIiwKICAgICAgZGlnaXQ6ICIwLTkiLAogICAgICBncmFwaDogIlxceDIxLVxceDdFIiwKICAgICAgbG93ZXI6ICJhLXoiLAogICAgICBwcmludDogIlxceDIwLVxceDdFICIsCiAgICAgIHB1bmN0OiAiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLAogICAgICBzcGFjZTogIiBcXHRcXHJcXG5cXHZcXGYiLAogICAgICB1cHBlcjogIkEtWiIsCiAgICAgIHdvcmQ6ICJBLVphLXowLTlfIiwKICAgICAgeGRpZ2l0OiAiQS1GYS1mMC05IgogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LAogICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsCiAgICAgIC8vIHJlZ3VsYXIgZXhwcmVzc2lvbnMKICAgICAgUkVHRVhfQkFDS1NMQVNIOiAvXFwoPyFbKis/XiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTOiAvXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlM6IC9bLSorPy5eJHt9KHwpW1xdXS8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjogLyhcXD8pKChcVykoXDMqKSkvZywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6IC8oWy0qKz8uXiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6IC8oPzpcWy4qP1teXFxdXF18XFwoPz0uKSkvZywKICAgICAgLy8gUmVwbGFjZSBnbG9icyB3aXRoIGVxdWl2YWxlbnQgcGF0dGVybnMgdG8gcmVkdWNlIHBhcnNpbmcgdGltZS4KICAgICAgUkVQTEFDRU1FTlRTOiB7CiAgICAgICAgIioqKiI6ICIqIiwKICAgICAgICAiKiovKioiOiAiKioiLAogICAgICAgICIqKi8qKi8qKiI6ICIqKiIKICAgICAgfSwKICAgICAgLy8gRGlnaXRzCiAgICAgIENIQVJfMDogNDgsCiAgICAgIC8qIDAgKi8KICAgICAgQ0hBUl85OiA1NywKICAgICAgLyogOSAqLwogICAgICAvLyBBbHBoYWJldCBjaGFycy4KICAgICAgQ0hBUl9VUFBFUkNBU0VfQTogNjUsCiAgICAgIC8qIEEgKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfQTogOTcsCiAgICAgIC8qIGEgKi8KICAgICAgQ0hBUl9VUFBFUkNBU0VfWjogOTAsCiAgICAgIC8qIFogKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfWjogMTIyLAogICAgICAvKiB6ICovCiAgICAgIENIQVJfTEVGVF9QQVJFTlRIRVNFUzogNDAsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsCiAgICAgIC8qICkgKi8KICAgICAgQ0hBUl9BU1RFUklTSzogNDIsCiAgICAgIC8qICogKi8KICAgICAgLy8gTm9uLWFscGhhYmV0aWMgY2hhcnMuCiAgICAgIENIQVJfQU1QRVJTQU5EOiAzOCwKICAgICAgLyogJiAqLwogICAgICBDSEFSX0FUOiA2NCwKICAgICAgLyogQCAqLwogICAgICBDSEFSX0JBQ0tXQVJEX1NMQVNIOiA5MiwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogMTMsCiAgICAgIC8qIFxyICovCiAgICAgIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LAogICAgICAvKiBeICovCiAgICAgIENIQVJfQ09MT046IDU4LAogICAgICAvKiA6ICovCiAgICAgIENIQVJfQ09NTUE6IDQ0LAogICAgICAvKiAsICovCiAgICAgIENIQVJfRE9UOiA0NiwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0RPVUJMRV9RVU9URTogMzQsCiAgICAgIC8qICIgKi8KICAgICAgQ0hBUl9FUVVBTDogNjEsCiAgICAgIC8qID0gKi8KICAgICAgQ0hBUl9FWENMQU1BVElPTl9NQVJLOiAzMywKICAgICAgLyogISAqLwogICAgICBDSEFSX0ZPUk1fRkVFRDogMTIsCiAgICAgIC8qIFxmICovCiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogNDcsCiAgICAgIC8qIC8gKi8KICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQ6IDk2LAogICAgICAvKiBgICovCiAgICAgIENIQVJfSEFTSDogMzUsCiAgICAgIC8qICMgKi8KICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IDQ1LAogICAgICAvKiAtICovCiAgICAgIENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiA2MCwKICAgICAgLyogPCAqLwogICAgICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6IDEyMywKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6IDkxLAogICAgICAvKiBbICovCiAgICAgIENIQVJfTElORV9GRUVEOiAxMCwKICAgICAgLyogXG4gKi8KICAgICAgQ0hBUl9OT19CUkVBS19TUEFDRTogMTYwLAogICAgICAvKiBcdTAwQTAgKi8KICAgICAgQ0hBUl9QRVJDRU5UOiAzNywKICAgICAgLyogJSAqLwogICAgICBDSEFSX1BMVVM6IDQzLAogICAgICAvKiArICovCiAgICAgIENIQVJfUVVFU1RJT05fTUFSSzogNjMsCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiA2MiwKICAgICAgLyogPiAqLwogICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOiAxMjUsCiAgICAgIC8qIH0gKi8KICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogOTMsCiAgICAgIC8qIF0gKi8KICAgICAgQ0hBUl9TRU1JQ09MT046IDU5LAogICAgICAvKiA7ICovCiAgICAgIENIQVJfU0lOR0xFX1FVT1RFOiAzOSwKICAgICAgLyogJyAqLwogICAgICBDSEFSX1NQQUNFOiAzMiwKICAgICAgLyogICAqLwogICAgICBDSEFSX1RBQjogOSwKICAgICAgLyogXHQgKi8KICAgICAgQ0hBUl9VTkRFUlNDT1JFOiA5NSwKICAgICAgLyogXyAqLwogICAgICBDSEFSX1ZFUlRJQ0FMX0xJTkU6IDEyNCwKICAgICAgLyogfCAqLwogICAgICBDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTogNjUyNzksCiAgICAgIC8qIFx1RkVGRiAqLwogICAgICAvKioKICAgICAgICogQ3JlYXRlIEVYVEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGV4dGdsb2JDaGFycyhjaGFycykgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiISI6IHsgdHlwZTogIm5lZ2F0ZSIsIG9wZW46ICIoPzooPyEoPzoiLCBjbG9zZTogYCkpJHtjaGFycy5TVEFSfSlgIH0sCiAgICAgICAgICAiPyI6IHsgdHlwZTogInFtYXJrIiwgb3BlbjogIig/OiIsIGNsb3NlOiAiKT8iIH0sCiAgICAgICAgICAiKyI6IHsgdHlwZTogInBsdXMiLCBvcGVuOiAiKD86IiwgY2xvc2U6ICIpKyIgfSwKICAgICAgICAgICIqIjogeyB0eXBlOiAic3RhciIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikqIiB9LAogICAgICAgICAgIkAiOiB7IHR5cGU6ICJhdCIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikiIH0KICAgICAgICB9OwogICAgICB9LAogICAgICAvKioKICAgICAgICogQ3JlYXRlIEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGdsb2JDaGFycyh3aW4zMikgewogICAgICAgIHJldHVybiB3aW4zMiA9PT0gdHJ1ZSA/IFdJTkRPV1NfQ0hBUlMgOiBQT1NJWF9DSEFSUzsKICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB7CiAgICAgIFJFR0VYX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSUywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUwKICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgZXhwb3J0czIuaXNPYmplY3QgPSAodmFsKSA9PiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIGV4cG9ydHMyLmhhc1JlZ2V4Q2hhcnMgPSAoc3RyMikgPT4gUkVHRVhfU1BFQ0lBTF9DSEFSUy50ZXN0KHN0cjIpOwogICAgZXhwb3J0czIuaXNSZWdleENoYXIgPSAoc3RyMikgPT4gc3RyMi5sZW5ndGggPT09IDEgJiYgZXhwb3J0czIuaGFzUmVnZXhDaGFycyhzdHIyKTsKICAgIGV4cG9ydHMyLmVzY2FwZVJlZ2V4ID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTCwgIlxcJDEiKTsKICAgIGV4cG9ydHMyLnRvUG9zaXhTbGFzaGVzID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9CQUNLU0xBU0gsICIvIik7CiAgICBleHBvcnRzMi5pc1dpbmRvd3MgPSAoKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAidW5kZWZpbmVkIiAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHsKICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiBwbGF0Zm9ybSA9PT0gIndpbjMyIiB8fCBwbGF0Zm9ybSA9PT0gIndpbmRvd3MiOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gInVuZGVmaW5lZCIgJiYgcHJvY2Vzcy5wbGF0Zm9ybSkgewogICAgICAgIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSAid2luMzIiOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CiAgICBleHBvcnRzMi5yZW1vdmVCYWNrc2xhc2hlcyA9IChzdHIyKSA9PiB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwgKG1hdGNoKSA9PiB7CiAgICAgICAgcmV0dXJuIG1hdGNoID09PSAiXFwiID8gIiIgOiBtYXRjaDsKICAgICAgfSk7CiAgICB9OwogICAgZXhwb3J0czIuZXNjYXBlTGFzdCA9IChpbnB1dCwgY2hhciwgbGFzdElkeCkgPT4gewogICAgICBjb25zdCBpZHggPSBpbnB1dC5sYXN0SW5kZXhPZihjaGFyLCBsYXN0SWR4KTsKICAgICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybiBpbnB1dDsKICAgICAgaWYgKGlucHV0W2lkeCAtIDFdID09PSAiXFwiKSByZXR1cm4gZXhwb3J0czIuZXNjYXBlTGFzdChpbnB1dCwgY2hhciwgaWR4IC0gMSk7CiAgICAgIHJldHVybiBgJHtpbnB1dC5zbGljZSgwLCBpZHgpfVxcJHtpbnB1dC5zbGljZShpZHgpfWA7CiAgICB9OwogICAgZXhwb3J0czIucmVtb3ZlUHJlZml4ID0gKGlucHV0LCBzdGF0ZSA9IHt9KSA9PiB7CiAgICAgIGxldCBvdXRwdXQgPSBpbnB1dDsKICAgICAgaWYgKG91dHB1dC5zdGFydHNXaXRoKCIuLyIpKSB7CiAgICAgICAgb3V0cHV0ID0gb3V0cHV0LnNsaWNlKDIpOwogICAgICAgIHN0YXRlLnByZWZpeCA9ICIuLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIG91dHB1dDsKICAgIH07CiAgICBleHBvcnRzMi53cmFwT3V0cHV0ID0gKGlucHV0LCBzdGF0ZSA9IHt9LCBvcHRpb25zID0ge30pID0+IHsKICAgICAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnMuY29udGFpbnMgPyAiIiA6ICJeIjsKICAgICAgY29uc3QgYXBwZW5kID0gb3B0aW9ucy5jb250YWlucyA/ICIiIDogIiQiOwogICAgICBsZXQgb3V0cHV0ID0gYCR7cHJlcGVuZH0oPzoke2lucHV0fSkke2FwcGVuZH1gOwogICAgICBpZiAoc3RhdGUubmVnYXRlZCA9PT0gdHJ1ZSkgewogICAgICAgIG91dHB1dCA9IGAoPzpeKD8hJHtvdXRwdXR9KS4qJClgOwogICAgICB9CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9OwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSAocGF0aCwgeyB3aW5kb3dzIH0gPSB7fSkgPT4gewogICAgICBjb25zdCBzZWdzID0gcGF0aC5zcGxpdCh3aW5kb3dzID8gL1tcXC9dLyA6ICIvIik7CiAgICAgIGNvbnN0IGxhc3QgPSBzZWdzW3NlZ3MubGVuZ3RoIC0gMV07CiAgICAgIGlmIChsYXN0ID09PSAiIikgewogICAgICAgIHJldHVybiBzZWdzW3NlZ3MubGVuZ3RoIC0gMl07CiAgICAgIH0KICAgICAgcmV0dXJuIGxhc3Q7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9zY2FuLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIENIQVJfQVNURVJJU0s6IENIQVJfQVNURVJJU0syLAogICAgICAvKiAqICovCiAgICAgIENIQVJfQVQsCiAgICAgIC8qIEAgKi8KICAgICAgQ0hBUl9CQUNLV0FSRF9TTEFTSCwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NPTU1BOiBDSEFSX0NPTU1BMiwKICAgICAgLyogLCAqLwogICAgICBDSEFSX0RPVCwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUkssCiAgICAgIC8qICEgKi8KICAgICAgQ0hBUl9GT1JXQVJEX1NMQVNILAogICAgICAvKiAvICovCiAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDRSwKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOiBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyLAogICAgICAvKiBbICovCiAgICAgIENIQVJfUExVUywKICAgICAgLyogKyAqLwogICAgICBDSEFSX1FVRVNUSU9OX01BUkssCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwKICAgICAgLyogfSAqLwogICAgICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTLAogICAgICAvKiApICovCiAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQyCiAgICAgIC8qIF0gKi8KICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIGlzUGF0aFNlcGFyYXRvciA9IChjb2RlKSA9PiB7CiAgICAgIHJldHVybiBjb2RlID09PSBDSEFSX0ZPUldBUkRfU0xBU0ggfHwgY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSDsKICAgIH07CiAgICB2YXIgZGVwdGggPSAodG9rZW4pID0+IHsKICAgICAgaWYgKHRva2VuLmlzUHJlZml4ICE9PSB0cnVlKSB7CiAgICAgICAgdG9rZW4uZGVwdGggPSB0b2tlbi5pc0dsb2JzdGFyID8gSW5maW5pdHkgOiAxOwogICAgICB9CiAgICB9OwogICAgdmFyIHNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7CiAgICAgIGNvbnN0IHNjYW5Ub0VuZCA9IG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy5zY2FuVG9FbmQgPT09IHRydWU7CiAgICAgIGNvbnN0IHNsYXNoZXMgPSBbXTsKICAgICAgY29uc3QgdG9rZW5zID0gW107CiAgICAgIGNvbnN0IHBhcnRzID0gW107CiAgICAgIGxldCBzdHIyID0gaW5wdXQ7CiAgICAgIGxldCBpbmRleCA9IC0xOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgbGFzdEluZGV4ID0gMDsKICAgICAgbGV0IGlzQnJhY2UgPSBmYWxzZTsKICAgICAgbGV0IGlzQnJhY2tldCA9IGZhbHNlOwogICAgICBsZXQgaXNHbG9iID0gZmFsc2U7CiAgICAgIGxldCBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgbGV0IGlzR2xvYnN0YXIgPSBmYWxzZTsKICAgICAgbGV0IGJyYWNlRXNjYXBlZCA9IGZhbHNlOwogICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWQgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWRFeHRnbG9iID0gZmFsc2U7CiAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlOwogICAgICBsZXQgYnJhY2VzID0gMDsKICAgICAgbGV0IHByZXY7CiAgICAgIGxldCBjb2RlOwogICAgICBsZXQgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgY29uc3QgZW9zID0gKCkgPT4gaW5kZXggPj0gbGVuZ3RoOwogICAgICBjb25zdCBwZWVrID0gKCkgPT4gc3RyMi5jaGFyQ29kZUF0KGluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGFkdmFuY2UgPSAoKSA9PiB7CiAgICAgICAgcHJldiA9IGNvZGU7CiAgICAgICAgcmV0dXJuIHN0cjIuY2hhckNvZGVBdCgrK2luZGV4KTsKICAgICAgfTsKICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CiAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICBsZXQgbmV4dDsKICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpOwogICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICBicmFjZUVzY2FwZWQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChicmFjZUVzY2FwZWQgPT09IHRydWUgfHwgY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7CiAgICAgICAgICBicmFjZXMrKzsKICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHsKICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHsKICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICBhZHZhbmNlKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICAgIGJyYWNlcysrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChicmFjZUVzY2FwZWQgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9ET1QgJiYgKGNvZGUgPSBhZHZhbmNlKCkpID09PSBDSEFSX0RPVCkgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0NPTU1BMikgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHsKICAgICAgICAgICAgICBicmFjZXMtLTsKICAgICAgICAgICAgICBpZiAoYnJhY2VzID09PSAwKSB7CiAgICAgICAgICAgICAgICBicmFjZUVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIKSB7CiAgICAgICAgICBzbGFzaGVzLnB1c2goaW5kZXgpOwogICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgICAgIGlmIChmaW5pc2hlZCA9PT0gdHJ1ZSkgY29udGludWU7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9ET1QgJiYgaW5kZXggPT09IHN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGFydCArPSAyOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub2V4dCAhPT0gdHJ1ZSkgewogICAgICAgICAgY29uc3QgaXNFeHRnbG9iQ2hhciA9IGNvZGUgPT09IENIQVJfUExVUyB8fCBjb2RlID09PSBDSEFSX0FUIHx8IGNvZGUgPT09IENIQVJfQVNURVJJU0syIHx8IGNvZGUgPT09IENIQVJfUVVFU1RJT05fTUFSSyB8fCBjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUks7CiAgICAgICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICBpc0V4dGdsb2IgPSB0b2tlbi5pc0V4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUksgJiYgaW5kZXggPT09IHN0YXJ0KSB7CiAgICAgICAgICAgICAgbmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKGNvZGUgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQVNURVJJU0syKSB7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9BU1RFUklTSzIpIGlzR2xvYnN0YXIgPSB0b2tlbi5pc0dsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUkspIHsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyKSB7CiAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKG5leHQgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7CiAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUMikgewogICAgICAgICAgICAgIGlzQnJhY2tldCA9IHRva2VuLmlzQnJhY2tldCA9IHRydWU7CiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLICYmIGluZGV4ID09PSBzdGFydCkgewogICAgICAgICAgbmVnYXRlZCA9IHRva2VuLm5lZ2F0ZWQgPSB0cnVlOwogICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub3BhcmVuICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkgewogICAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHsKICAgICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlOwogICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChpc0dsb2IgPT09IHRydWUpIHsKICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMubm9leHQgPT09IHRydWUpIHsKICAgICAgICBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgICBpc0dsb2IgPSBmYWxzZTsKICAgICAgfQogICAgICBsZXQgYmFzZSA9IHN0cjI7CiAgICAgIGxldCBwcmVmaXggPSAiIjsKICAgICAgbGV0IGdsb2IgPSAiIjsKICAgICAgaWYgKHN0YXJ0ID4gMCkgewogICAgICAgIHByZWZpeCA9IHN0cjIuc2xpY2UoMCwgc3RhcnQpOwogICAgICAgIHN0cjIgPSBzdHIyLnNsaWNlKHN0YXJ0KTsKICAgICAgICBsYXN0SW5kZXggLT0gc3RhcnQ7CiAgICAgIH0KICAgICAgaWYgKGJhc2UgJiYgaXNHbG9iID09PSB0cnVlICYmIGxhc3RJbmRleCA+IDApIHsKICAgICAgICBiYXNlID0gc3RyMi5zbGljZSgwLCBsYXN0SW5kZXgpOwogICAgICAgIGdsb2IgPSBzdHIyLnNsaWNlKGxhc3RJbmRleCk7CiAgICAgIH0gZWxzZSBpZiAoaXNHbG9iID09PSB0cnVlKSB7CiAgICAgICAgYmFzZSA9ICIiOwogICAgICAgIGdsb2IgPSBzdHIyOwogICAgICB9IGVsc2UgewogICAgICAgIGJhc2UgPSBzdHIyOwogICAgICB9CiAgICAgIGlmIChiYXNlICYmIGJhc2UgIT09ICIiICYmIGJhc2UgIT09ICIvIiAmJiBiYXNlICE9PSBzdHIyKSB7CiAgICAgICAgaWYgKGlzUGF0aFNlcGFyYXRvcihiYXNlLmNoYXJDb2RlQXQoYmFzZS5sZW5ndGggLSAxKSkpIHsKICAgICAgICAgIGJhc2UgPSBiYXNlLnNsaWNlKDAsIC0xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHsKICAgICAgICBpZiAoZ2xvYikgZ2xvYiA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGdsb2IpOwogICAgICAgIGlmIChiYXNlICYmIGJhY2tzbGFzaGVzID09PSB0cnVlKSB7CiAgICAgICAgICBiYXNlID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoYmFzZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIHByZWZpeCwKICAgICAgICBpbnB1dCwKICAgICAgICBzdGFydCwKICAgICAgICBiYXNlLAogICAgICAgIGdsb2IsCiAgICAgICAgaXNCcmFjZSwKICAgICAgICBpc0JyYWNrZXQsCiAgICAgICAgaXNHbG9iLAogICAgICAgIGlzRXh0Z2xvYiwKICAgICAgICBpc0dsb2JzdGFyLAogICAgICAgIG5lZ2F0ZWQsCiAgICAgICAgbmVnYXRlZEV4dGdsb2IKICAgICAgfTsKICAgICAgaWYgKG9wdHMudG9rZW5zID09PSB0cnVlKSB7CiAgICAgICAgc3RhdGUubWF4RGVwdGggPSAwOwogICAgICAgIGlmICghaXNQYXRoU2VwYXJhdG9yKGNvZGUpKSB7CiAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgfQogICAgICAgIHN0YXRlLnRva2VucyA9IHRva2VuczsKICAgICAgfQogICAgICBpZiAob3B0cy5wYXJ0cyA9PT0gdHJ1ZSB8fCBvcHRzLnRva2VucyA9PT0gdHJ1ZSkgewogICAgICAgIGxldCBwcmV2SW5kZXg7CiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7CiAgICAgICAgICBjb25zdCBuID0gcHJldkluZGV4ID8gcHJldkluZGV4ICsgMSA6IHN0YXJ0OwogICAgICAgICAgY29uc3QgaSA9IHNsYXNoZXNbaWR4XTsKICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7CiAgICAgICAgICBpZiAob3B0cy50b2tlbnMpIHsKICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCAmJiBzdGFydCAhPT0gMCkgewogICAgICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHByZWZpeDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlcHRoKHRva2Vuc1tpZHhdKTsKICAgICAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaWR4ICE9PSAwIHx8IHZhbHVlICE9PSAiIikgewogICAgICAgICAgICBwYXJ0cy5wdXNoKHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHByZXZJbmRleCA9IGk7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2SW5kZXggJiYgcHJldkluZGV4ICsgMSA8IGlucHV0Lmxlbmd0aCkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC5zbGljZShwcmV2SW5kZXggKyAxKTsKICAgICAgICAgIHBhcnRzLnB1c2godmFsdWUpOwogICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7CiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0udmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgZGVwdGgodG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgIHN0YXRlLm1heERlcHRoICs9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzOwogICAgICAgIHN0YXRlLnBhcnRzID0gcGFydHM7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0YXRlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNjYW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGFyc2UuanMKdmFyIHJlcXVpcmVfcGFyc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9wYXJzZS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBjb25zdGFudHMgPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIE1BWF9MRU5HVEgsCiAgICAgIFBPU0lYX1JFR0VYX1NPVVJDRSwKICAgICAgUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMsCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRiwKICAgICAgUkVQTEFDRU1FTlRTCiAgICB9ID0gY29uc3RhbnRzOwogICAgdmFyIGV4cGFuZFJhbmdlID0gKGFyZ3MsIG9wdGlvbnMpID0+IHsKICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGFuZFJhbmdlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZXhwYW5kUmFuZ2UoLi4uYXJncywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXJncy5zb3J0KCk7CiAgICAgIGNvbnN0IHZhbHVlID0gYFske2FyZ3Muam9pbigiLSIpfV1gOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAodmFsdWUpOwogICAgICB9IGNhdGNoIChleCkgewogICAgICAgIHJldHVybiBhcmdzLm1hcCgodikgPT4gdXRpbHMuZXNjYXBlUmVnZXgodikpLmpvaW4oIi4uIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbHVlOwogICAgfTsKICAgIHZhciBzeW50YXhFcnJvciA9ICh0eXBlMiwgY2hhcikgPT4gewogICAgICByZXR1cm4gYE1pc3NpbmcgJHt0eXBlMn06ICIke2NoYXJ9IiAtIHVzZSAiXFxcXCR7Y2hhcn0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7CiAgICB9OwogICAgdmFyIHBhcnNlID0gKGlucHV0LCBvcHRpb25zKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IG9wdHMgPSB7IC4uLm9wdGlvbnMgfTsKICAgICAgY29uc3QgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSAibnVtYmVyIiA/IE1hdGgubWluKE1BWF9MRU5HVEgsIG9wdHMubWF4TGVuZ3RoKSA6IE1BWF9MRU5HVEg7CiAgICAgIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGlmIChsZW4gPiBtYXgpIHsKICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApOwogICAgICB9CiAgICAgIGNvbnN0IGJvcyA9IHsgdHlwZTogImJvcyIsIHZhbHVlOiAiIiwgb3V0cHV0OiBvcHRzLnByZXBlbmQgfHwgIiIgfTsKICAgICAgY29uc3QgdG9rZW5zID0gW2Jvc107CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IFBMQVRGT1JNX0NIQVJTID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBFWFRHTE9CX0NIQVJTID0gY29uc3RhbnRzLmV4dGdsb2JDaGFycyhQTEFURk9STV9DSEFSUyk7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBQTFVTX0xJVEVSQUwsCiAgICAgICAgU0xBU0hfTElURVJBTCwKICAgICAgICBPTkVfQ0hBUiwKICAgICAgICBET1RTX1NMQVNILAogICAgICAgIE5PX0RPVCwKICAgICAgICBOT19ET1RfU0xBU0gsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBRTUFSSywKICAgICAgICBRTUFSS19OT19ET1QsCiAgICAgICAgU1RBUiwKICAgICAgICBTVEFSVF9BTkNIT1IKICAgICAgfSA9IFBMQVRGT1JNX0NIQVJTOwogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgOwogICAgICB9OwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gIiIgOiBOT19ET1Q7CiAgICAgIGNvbnN0IHFtYXJrTm9Eb3QgPSBvcHRzLmRvdCA/IFFNQVJLIDogUU1BUktfTk9fRE9UOwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/IGdsb2JzdGFyKG9wdHMpIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBpZiAodHlwZW9mIG9wdHMubm9leHQgPT09ICJib29sZWFuIikgewogICAgICAgIG9wdHMubm9leHRnbG9iID0gb3B0cy5ub2V4dDsKICAgICAgfQogICAgICBjb25zdCBzdGF0ZSA9IHsKICAgICAgICBpbnB1dCwKICAgICAgICBpbmRleDogLTEsCiAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgZG90OiBvcHRzLmRvdCA9PT0gdHJ1ZSwKICAgICAgICBjb25zdW1lZDogIiIsCiAgICAgICAgb3V0cHV0OiAiIiwKICAgICAgICBwcmVmaXg6ICIiLAogICAgICAgIGJhY2t0cmFjazogZmFsc2UsCiAgICAgICAgbmVnYXRlZDogZmFsc2UsCiAgICAgICAgYnJhY2tldHM6IDAsCiAgICAgICAgYnJhY2VzOiAwLAogICAgICAgIHBhcmVuczogMCwKICAgICAgICBxdW90ZXM6IDAsCiAgICAgICAgZ2xvYnN0YXI6IGZhbHNlLAogICAgICAgIHRva2VucwogICAgICB9OwogICAgICBpbnB1dCA9IHV0aWxzLnJlbW92ZVByZWZpeChpbnB1dCwgc3RhdGUpOwogICAgICBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGNvbnN0IGV4dGdsb2JzID0gW107CiAgICAgIGNvbnN0IGJyYWNlcyA9IFtdOwogICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICBsZXQgcHJldiA9IGJvczsKICAgICAgbGV0IHZhbHVlOwogICAgICBjb25zdCBlb3MgPSAoKSA9PiBzdGF0ZS5pbmRleCA9PT0gbGVuIC0gMTsKICAgICAgY29uc3QgcGVlayA9IHN0YXRlLnBlZWsgPSAobiA9IDEpID0+IGlucHV0W3N0YXRlLmluZGV4ICsgbl07CiAgICAgIGNvbnN0IGFkdmFuY2UgPSBzdGF0ZS5hZHZhbmNlID0gKCkgPT4gaW5wdXRbKytzdGF0ZS5pbmRleF0gfHwgIiI7CiAgICAgIGNvbnN0IHJlbWFpbmluZyA9ICgpID0+IGlucHV0LnNsaWNlKHN0YXRlLmluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGNvbnN1bWUgPSAodmFsdWUyID0gIiIsIG51bSA9IDApID0+IHsKICAgICAgICBzdGF0ZS5jb25zdW1lZCArPSB2YWx1ZTI7CiAgICAgICAgc3RhdGUuaW5kZXggKz0gbnVtOwogICAgICB9OwogICAgICBjb25zdCBhcHBlbmQgPSAodG9rZW4pID0+IHsKICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4ub3V0cHV0ICE9IG51bGwgPyB0b2tlbi5vdXRwdXQgOiB0b2tlbi52YWx1ZTsKICAgICAgICBjb25zdW1lKHRva2VuLnZhbHVlKTsKICAgICAgfTsKICAgICAgY29uc3QgbmVnYXRlID0gKCkgPT4gewogICAgICAgIGxldCBjb3VudCA9IDE7CiAgICAgICAgd2hpbGUgKHBlZWsoKSA9PT0gIiEiICYmIChwZWVrKDIpICE9PSAiKCIgfHwgcGVlaygzKSA9PT0gIj8iKSkgewogICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIGlmIChjb3VudCAlIDIgPT09IDApIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUubmVnYXRlZCA9IHRydWU7CiAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfTsKICAgICAgY29uc3QgaW5jcmVtZW50ID0gKHR5cGUyKSA9PiB7CiAgICAgICAgc3RhdGVbdHlwZTJdKys7CiAgICAgICAgc3RhY2sucHVzaCh0eXBlMik7CiAgICAgIH07CiAgICAgIGNvbnN0IGRlY3JlbWVudCA9ICh0eXBlMikgPT4gewogICAgICAgIHN0YXRlW3R5cGUyXS0tOwogICAgICAgIHN0YWNrLnBvcCgpOwogICAgICB9OwogICAgICBjb25zdCBwdXNoID0gKHRvaykgPT4gewogICAgICAgIGlmIChwcmV2LnR5cGUgPT09ICJnbG9ic3RhciIpIHsKICAgICAgICAgIGNvbnN0IGlzQnJhY2UgPSBzdGF0ZS5icmFjZXMgPiAwICYmICh0b2sudHlwZSA9PT0gImNvbW1hIiB8fCB0b2sudHlwZSA9PT0gImJyYWNlIik7CiAgICAgICAgICBjb25zdCBpc0V4dGdsb2IgPSB0b2suZXh0Z2xvYiA9PT0gdHJ1ZSB8fCBleHRnbG9icy5sZW5ndGggJiYgKHRvay50eXBlID09PSAicGlwZSIgfHwgdG9rLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKHRvay50eXBlICE9PSAic2xhc2giICYmIHRvay50eXBlICE9PSAicGFyZW4iICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICAgIHByZXYudmFsdWUgPSAiKiI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZXh0Z2xvYnMubGVuZ3RoICYmIHRvay50eXBlICE9PSAicGFyZW4iKSB7CiAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7CiAgICAgICAgfQogICAgICAgIGlmICh0b2sudmFsdWUgfHwgdG9rLm91dHB1dCkgYXBwZW5kKHRvayk7CiAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAidGV4dCIgJiYgdG9rLnR5cGUgPT09ICJ0ZXh0IikgewogICAgICAgICAgcHJldi5vdXRwdXQgPSAocHJldi5vdXRwdXQgfHwgcHJldi52YWx1ZSkgKyB0b2sudmFsdWU7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHRvay52YWx1ZTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdG9rLnByZXYgPSBwcmV2OwogICAgICAgIHRva2Vucy5wdXNoKHRvayk7CiAgICAgICAgcHJldiA9IHRvazsKICAgICAgfTsKICAgICAgY29uc3QgZXh0Z2xvYk9wZW4gPSAodHlwZTIsIHZhbHVlMikgPT4gewogICAgICAgIGNvbnN0IHRva2VuID0geyAuLi5FWFRHTE9CX0NIQVJTW3ZhbHVlMl0sIGNvbmRpdGlvbnM6IDEsIGlubmVyOiAiIiB9OwogICAgICAgIHRva2VuLnByZXYgPSBwcmV2OwogICAgICAgIHRva2VuLnBhcmVucyA9IHN0YXRlLnBhcmVuczsKICAgICAgICB0b2tlbi5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQ7CiAgICAgICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/ICIoIiA6ICIiKSArIHRva2VuLm9wZW47CiAgICAgICAgaW5jcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICBwdXNoKHsgdHlwZTogdHlwZTIsIHZhbHVlOiB2YWx1ZTIsIG91dHB1dDogc3RhdGUub3V0cHV0ID8gIiIgOiBPTkVfQ0hBUiB9KTsKICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWU6IGFkdmFuY2UoKSwgb3V0cHV0IH0pOwogICAgICAgIGV4dGdsb2JzLnB1c2godG9rZW4pOwogICAgICB9OwogICAgICBjb25zdCBleHRnbG9iQ2xvc2UgPSAodG9rZW4pID0+IHsKICAgICAgICBsZXQgb3V0cHV0ID0gdG9rZW4uY2xvc2UgKyAob3B0cy5jYXB0dXJlID8gIikiIDogIiIpOwogICAgICAgIGxldCByZXN0OwogICAgICAgIGlmICh0b2tlbi50eXBlID09PSAibmVnYXRlIikgewogICAgICAgICAgbGV0IGV4dGdsb2JTdGFyID0gc3RhcjsKICAgICAgICAgIGlmICh0b2tlbi5pbm5lciAmJiB0b2tlbi5pbm5lci5sZW5ndGggPiAxICYmIHRva2VuLmlubmVyLmluY2x1ZGVzKCIvIikpIHsKICAgICAgICAgICAgZXh0Z2xvYlN0YXIgPSBnbG9ic3RhcihvcHRzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChleHRnbG9iU3RhciAhPT0gc3RhciB8fCBlb3MoKSB8fCAvXlwpKyQvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9rZW4uaW5uZXIuaW5jbHVkZXMoIioiKSAmJiAocmVzdCA9IHJlbWFpbmluZygpKSAmJiAvXlwuW15cXC8uXSskLy50ZXN0KHJlc3QpKSB7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwYXJzZShyZXN0LCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSkub3V0cHV0OwogICAgICAgICAgICBvdXRwdXQgPSB0b2tlbi5jbG9zZSA9IGApJHtleHByZXNzaW9ufSkke2V4dGdsb2JTdGFyfSlgOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRva2VuLnByZXYudHlwZSA9PT0gImJvcyIpIHsKICAgICAgICAgICAgc3RhdGUubmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9OwogICAgICBpZiAob3B0cy5mYXN0cGF0aHMgIT09IGZhbHNlICYmICEvKF5bKiFdfFsvKClbXF17fSJdKS8udGVzdChpbnB1dCkpIHsKICAgICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHsKICAgICAgICAgIGlmIChmaXJzdCA9PT0gIlxcIikgewogICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBtOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGZpcnN0ID09PSAiPyIpIHsKICAgICAgICAgICAgaWYgKGVzYykgewogICAgICAgICAgICAgIHJldHVybiBlc2MgKyBmaXJzdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICByZXR1cm4gcW1hcmtOb0RvdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUU1BUksucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIuIikgewogICAgICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIqIikgewogICAgICAgICAgICBpZiAoZXNjKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVzYyArIGZpcnN0ICsgKHJlc3QgPyBzdGFyIDogIiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdGFyOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGVzYyA/IG0gOiBgXFwke219YDsKICAgICAgICB9KTsKICAgICAgICBpZiAoYmFja3NsYXNoZXMgPT09IHRydWUpIHsKICAgICAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXC9nLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFwrL2csIChtKSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIG0ubGVuZ3RoICUgMiA9PT0gMCA/ICJcXFxcIiA6IG0gPyAiXFwiIDogIiI7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAob3V0cHV0ID09PSBpbnB1dCAmJiBvcHRzLmNvbnRhaW5zID09PSB0cnVlKSB7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBpbnB1dDsKICAgICAgICAgIHJldHVybiBzdGF0ZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUub3V0cHV0ID0gdXRpbHMud3JhcE91dHB1dChvdXRwdXQsIHN0YXRlLCBvcHRpb25zKTsKICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgIH0KICAgICAgd2hpbGUgKCFlb3MoKSkgewogICAgICAgIHZhbHVlID0gYWR2YW5jZSgpOwogICAgICAgIGlmICh2YWx1ZSA9PT0gIlwwIikgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gIlxcIikgewogICAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTsKICAgICAgICAgIGlmIChuZXh0ID09PSAiLyIgJiYgb3B0cy5iYXNoICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG5leHQgPT09ICIuIiB8fCBuZXh0ID09PSAiOyIpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5leHQpIHsKICAgICAgICAgICAgdmFsdWUgKz0gIlxcIjsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSAvXlxcKy8uZXhlYyhyZW1haW5pbmcoKSk7CiAgICAgICAgICBsZXQgc2xhc2hlcyA9IDA7CiAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0ubGVuZ3RoID4gMikgewogICAgICAgICAgICBzbGFzaGVzID0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgICBzdGF0ZS5pbmRleCArPSBzbGFzaGVzOwogICAgICAgICAgICBpZiAoc2xhc2hlcyAlIDIgIT09IDApIHsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXFwiOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YWx1ZSA9IGFkdmFuY2UoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbHVlICs9IGFkdmFuY2UoKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInRleHQiLCB2YWx1ZSB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA+IDAgJiYgKHZhbHVlICE9PSAiXSIgfHwgcHJldi52YWx1ZSA9PT0gIlsiIHx8IHByZXYudmFsdWUgPT09ICJbXiIpKSB7CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCAhPT0gZmFsc2UgJiYgdmFsdWUgPT09ICI6IikgewogICAgICAgICAgICBjb25zdCBpbm5lciA9IHByZXYudmFsdWUuc2xpY2UoMSk7CiAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcygiWyIpKSB7CiAgICAgICAgICAgICAgcHJldi5wb3NpeCA9IHRydWU7CiAgICAgICAgICAgICAgaWYgKGlubmVyLmluY2x1ZGVzKCI6IikpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHByZXYudmFsdWUubGFzdEluZGV4T2YoIlsiKTsKICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IHByZXYudmFsdWUuc2xpY2UoMCwgaWR4KTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3QyID0gcHJldi52YWx1ZS5zbGljZShpZHggKyAyKTsKICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3QyXTsKICAgICAgICAgICAgICAgIGlmIChwb3NpeCkgewogICAgICAgICAgICAgICAgICBwcmV2LnZhbHVlID0gcHJlICsgcG9zaXg7CiAgICAgICAgICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgaWYgKCFib3Mub3V0cHV0ICYmIHRva2Vucy5pbmRleE9mKHByZXYpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgYm9zLm91dHB1dCA9IE9ORV9DSEFSOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSAiWyIgJiYgcGVlaygpICE9PSAiOiIgfHwgdmFsdWUgPT09ICItIiAmJiBwZWVrKCkgPT09ICJdIikgewogICAgICAgICAgICB2YWx1ZSA9IGBcXCR7dmFsdWV9YDsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh2YWx1ZSA9PT0gIl0iICYmIChwcmV2LnZhbHVlID09PSAiWyIgfHwgcHJldi52YWx1ZSA9PT0gIlteIikpIHsKICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCA9PT0gdHJ1ZSAmJiB2YWx1ZSA9PT0gIiEiICYmIHByZXYudmFsdWUgPT09ICJbIikgewogICAgICAgICAgICB2YWx1ZSA9ICJeIjsKICAgICAgICAgIH0KICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICBhcHBlbmQoeyB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUucXVvdGVzID09PSAxICYmIHZhbHVlICE9PSAnIicpIHsKICAgICAgICAgIHZhbHVlID0gdXRpbHMuZXNjYXBlUmVnZXgodmFsdWUpOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gJyInKSB7CiAgICAgICAgICBzdGF0ZS5xdW90ZXMgPSBzdGF0ZS5xdW90ZXMgPT09IDEgPyAwIDogMTsKICAgICAgICAgIGlmIChvcHRzLmtlZXBRdW90ZXMgPT09IHRydWUpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKCIpIHsKICAgICAgICAgIGluY3JlbWVudCgicGFyZW5zIik7CiAgICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKSIpIHsKICAgICAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoIm9wZW5pbmciLCAiKCIpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGV4dGdsb2IgPSBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChleHRnbG9iICYmIHN0YXRlLnBhcmVucyA9PT0gZXh0Z2xvYi5wYXJlbnMgKyAxKSB7CiAgICAgICAgICAgIGV4dGdsb2JDbG9zZShleHRnbG9icy5wb3AoKSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJwYXJlbiIsIHZhbHVlLCBvdXRwdXQ6IHN0YXRlLnBhcmVucyA/ICIpIiA6ICJcXCkiIH0pOwogICAgICAgICAgZGVjcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJbIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8ICFyZW1haW5pbmcoKS5pbmNsdWRlcygiXSIpKSB7CiAgICAgICAgICAgIGlmIChvcHRzLm5vYnJhY2tldCAhPT0gdHJ1ZSAmJiBvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCJjbG9zaW5nIiwgIl0iKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbmNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImJyYWNrZXQiLCB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJdIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8IHByZXYgJiYgcHJldi50eXBlID09PSAiYnJhY2tldCIgJiYgcHJldi52YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogYFxcJHt2YWx1ZX1gIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigib3BlbmluZyIsICJbIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQ6IGBcXCR7dmFsdWV9YCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZWNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2LnZhbHVlLnNsaWNlKDEpOwogICAgICAgICAgaWYgKHByZXYucG9zaXggIT09IHRydWUgJiYgcHJldlZhbHVlWzBdID09PSAiXiIgJiYgIXByZXZWYWx1ZS5pbmNsdWRlcygiLyIpKSB7CiAgICAgICAgICAgIHZhbHVlID0gYC8ke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgYXBwZW5kKHsgdmFsdWUgfSk7CiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IGZhbHNlIHx8IHV0aWxzLmhhc1JlZ2V4Q2hhcnMocHJldlZhbHVlKSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTsKICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi52YWx1ZS5sZW5ndGgpOwogICAgICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkOwogICAgICAgICAgICBwcmV2LnZhbHVlID0gZXNjYXBlZDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlID0gYCgke2NhcHR1cmV9JHtlc2NhcGVkfXwke3ByZXYudmFsdWV9KWA7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi52YWx1ZTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ7IiAmJiBvcHRzLm5vYnJhY2UgIT09IHRydWUpIHsKICAgICAgICAgIGluY3JlbWVudCgiYnJhY2VzIik7CiAgICAgICAgICBjb25zdCBvcGVuID0gewogICAgICAgICAgICB0eXBlOiAiYnJhY2UiLAogICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgb3V0cHV0OiAiKCIsCiAgICAgICAgICAgIG91dHB1dEluZGV4OiBzdGF0ZS5vdXRwdXQubGVuZ3RoLAogICAgICAgICAgICB0b2tlbnNJbmRleDogc3RhdGUudG9rZW5zLmxlbmd0aAogICAgICAgICAgfTsKICAgICAgICAgIGJyYWNlcy5wdXNoKG9wZW4pOwogICAgICAgICAgcHVzaChvcGVuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ9IikgewogICAgICAgICAgY29uc3QgYnJhY2UgPSBicmFjZXNbYnJhY2VzLmxlbmd0aCAtIDFdOwogICAgICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgbGV0IG91dHB1dCA9ICIpIjsKICAgICAgICAgIGlmIChicmFjZS5kb3RzID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IGFyciA9IHRva2Vucy5zbGljZSgpOwogICAgICAgICAgICBjb25zdCByYW5nZSA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgdG9rZW5zLnBvcCgpOwogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSA9PT0gImJyYWNlIikgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSAhPT0gImRvdHMiKSB7CiAgICAgICAgICAgICAgICByYW5nZS51bnNoaWZ0KGFycltpXS52YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIG91dHB1dCA9IGV4cGFuZFJhbmdlKHJhbmdlLCBvcHRzKTsKICAgICAgICAgICAgc3RhdGUuYmFja3RyYWNrID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChicmFjZS5jb21tYSAhPT0gdHJ1ZSAmJiBicmFjZS5kb3RzICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IG91dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCBicmFjZS5vdXRwdXRJbmRleCk7CiAgICAgICAgICAgIGNvbnN0IHRva3MgPSBzdGF0ZS50b2tlbnMuc2xpY2UoYnJhY2UudG9rZW5zSW5kZXgpOwogICAgICAgICAgICBicmFjZS52YWx1ZSA9IGJyYWNlLm91dHB1dCA9ICJcXHsiOwogICAgICAgICAgICB2YWx1ZSA9IG91dHB1dCA9ICJcXH0iOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBvdXQ7CiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB0b2tzKSB7CiAgICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHQub3V0cHV0IHx8IHQudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAiYnJhY2UiLCB2YWx1ZSwgb3V0cHV0IH0pOwogICAgICAgICAgZGVjcmVtZW50KCJicmFjZXMiKTsKICAgICAgICAgIGJyYWNlcy5wb3AoKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ8IikgewogICAgICAgICAgaWYgKGV4dGdsb2JzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV0uY29uZGl0aW9ucysrOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiLCIpIHsKICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChicmFjZSAmJiBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA9PT0gImJyYWNlcyIpIHsKICAgICAgICAgICAgYnJhY2UuY29tbWEgPSB0cnVlOwogICAgICAgICAgICBvdXRwdXQgPSAifCI7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImNvbW1hIiwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIvIikgewogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImRvdCIgJiYgc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGF0ZS5zdGFydCA9IHN0YXRlLmluZGV4ICsgMTsKICAgICAgICAgICAgc3RhdGUuY29uc3VtZWQgPSAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gIiI7CiAgICAgICAgICAgIHRva2Vucy5wb3AoKTsKICAgICAgICAgICAgcHJldiA9IGJvczsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInNsYXNoIiwgdmFsdWUsIG91dHB1dDogU0xBU0hfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIuIikgewogICAgICAgICAgaWYgKHN0YXRlLmJyYWNlcyA+IDAgJiYgcHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gIi4iKSBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMOwogICAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07CiAgICAgICAgICAgIHByZXYudHlwZSA9ICJkb3RzIjsKICAgICAgICAgICAgcHJldi5vdXRwdXQgKz0gdmFsdWU7CiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICAgIGJyYWNlLmRvdHMgPSB0cnVlOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFjZXMgKyBzdGF0ZS5wYXJlbnMgPT09IDAgJiYgcHJldi50eXBlICE9PSAiYm9zIiAmJiBwcmV2LnR5cGUgIT09ICJzbGFzaCIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogRE9UX0xJVEVSQUwgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJkb3QiLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICI/IikgewogICAgICAgICAgY29uc3QgaXNHcm91cCA9IHByZXYgJiYgcHJldi52YWx1ZSA9PT0gIigiOwogICAgICAgICAgaWYgKCFpc0dyb3VwICYmIG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicW1hcmsiLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAicGFyZW4iKSB7CiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBwZWVrKCk7CiAgICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgICAgaWYgKHByZXYudmFsdWUgPT09ICIoIiAmJiAhL1shPTw6XS8udGVzdChuZXh0KSB8fCBuZXh0ID09PSAiPCIgJiYgIS88KFshPV18XHcrPikvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgICAgb3V0cHV0ID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMuZG90ICE9PSB0cnVlICYmIChwcmV2LnR5cGUgPT09ICJzbGFzaCIgfHwgcHJldi50eXBlID09PSAiYm9zIikpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJxbWFyayIsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLX05PX0RPVCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInFtYXJrIiwgdmFsdWUsIG91dHB1dDogUU1BUksgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiISIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIikgewogICAgICAgICAgICBpZiAocGVlaygyKSAhPT0gIj8iIHx8ICEvWyE9PDpdLy50ZXN0KHBlZWsoMykpKSB7CiAgICAgICAgICAgICAgZXh0Z2xvYk9wZW4oIm5lZ2F0ZSIsIHZhbHVlKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgc3RhdGUuaW5kZXggPT09IDApIHsKICAgICAgICAgICAgbmVnYXRlKCk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIrIikgewogICAgICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicGx1cyIsIHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LnZhbHVlID09PSAiKCIgfHwgb3B0cy5yZWdleCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJwbHVzIiwgdmFsdWUsIG91dHB1dDogUExVU19MSVRFUkFMIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2LnR5cGUgPT09ICJicmFja2V0IiB8fCBwcmV2LnR5cGUgPT09ICJwYXJlbiIgfHwgcHJldi50eXBlID09PSAiYnJhY2UiKSB8fCBzdGF0ZS5wYXJlbnMgPiAwKSB7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiQCIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIiAmJiBwZWVrKDIpICE9PSAiPyIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJhdCIsIGV4dGdsb2I6IHRydWUsIHZhbHVlLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSAhPT0gIioiKSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09ICIkIiB8fCB2YWx1ZSA9PT0gIl4iKSB7CiAgICAgICAgICAgIHZhbHVlID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUy5leGVjKHJlbWFpbmluZygpKTsKICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICB2YWx1ZSArPSBtYXRjaFswXTsKICAgICAgICAgICAgc3RhdGUuaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImdsb2JzdGFyIiB8fCBwcmV2LnN0YXIgPT09IHRydWUpKSB7CiAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICBwcmV2LnN0YXIgPSB0cnVlOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7CiAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBsZXQgcmVzdCA9IHJlbWFpbmluZygpOwogICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiAvXlwoW14/XS8udGVzdChyZXN0KSkgewogICAgICAgICAgZXh0Z2xvYk9wZW4oInN0YXIiLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gInN0YXIiKSB7CiAgICAgICAgICBpZiAob3B0cy5ub2dsb2JzdGFyID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHByaW9yID0gcHJldi5wcmV2OwogICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJpb3IucHJldjsKICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBwcmlvci50eXBlID09PSAic2xhc2giIHx8IHByaW9yLnR5cGUgPT09ICJib3MiOwogICAgICAgICAgY29uc3QgYWZ0ZXJTdGFyID0gYmVmb3JlICYmIChiZWZvcmUudHlwZSA9PT0gInN0YXIiIHx8IGJlZm9yZS50eXBlID09PSAiZ2xvYnN0YXIiKTsKICAgICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUgJiYgKCFpc1N0YXJ0IHx8IHJlc3RbMF0gJiYgcmVzdFswXSAhPT0gIi8iKSkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAocHJpb3IudHlwZSA9PT0gImNvbW1hIiB8fCBwcmlvci50eXBlID09PSAiYnJhY2UiKTsKICAgICAgICAgIGNvbnN0IGlzRXh0Z2xvYiA9IGV4dGdsb2JzLmxlbmd0aCAmJiAocHJpb3IudHlwZSA9PT0gInBpcGUiIHx8IHByaW9yLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKCFpc1N0YXJ0ICYmIHByaW9yLnR5cGUgIT09ICJwYXJlbiIgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICB3aGlsZSAocmVzdC5zbGljZSgwLCAzKSA9PT0gIi8qKiIpIHsKICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBpbnB1dFtzdGF0ZS5pbmRleCArIDRdOwogICAgICAgICAgICBpZiAoYWZ0ZXIgJiYgYWZ0ZXIgIT09ICIvIikgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3QgPSByZXN0LnNsaWNlKDMpOwogICAgICAgICAgICBjb25zdW1lKCIvKioiLCAzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiBlb3MoKSkgewogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJpb3IudHlwZSA9PT0gInNsYXNoIiAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICJib3MiICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpICsgKG9wdHMuc3RyaWN0U2xhc2hlcyA/ICIpIiA6ICJ8JCkiKTsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAic2xhc2giICYmIHByaW9yLnByZXYudHlwZSAhPT0gImJvcyIgJiYgcmVzdFswXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHJlc3RbMV0gIT09IHZvaWQgMCA/ICJ8JCIgOiAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGAke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH18JHtTTEFTSF9MSVRFUkFMfSR7ZW5kfSlgOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAic2xhc2giLCB2YWx1ZTogIi8iLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiByZXN0WzBdID09PSAiLyIpIHsKICAgICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9fCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSlgOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJzbGFzaCIsIHZhbHVlOiAiLyIsIG91dHB1dDogIiIgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgY29uc3VtZSh2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdG9rZW4gPSB7IHR5cGU6ICJzdGFyIiwgdmFsdWUsIG91dHB1dDogc3RhciB9OwogICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHsKICAgICAgICAgIHRva2VuLm91dHB1dCA9ICIuKj8iOwogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImJvcyIgfHwgcHJldi50eXBlID09PSAic2xhc2giKSB7CiAgICAgICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0OwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh0b2tlbik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImJyYWNrZXQiIHx8IHByZXYudHlwZSA9PT0gInBhcmVuIikgJiYgb3B0cy5yZWdleCA9PT0gdHJ1ZSkgewogICAgICAgICAgdG9rZW4ub3V0cHV0ID0gdmFsdWU7CiAgICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0IHx8IHByZXYudHlwZSA9PT0gInNsYXNoIiB8fCBwcmV2LnR5cGUgPT09ICJkb3QiKSB7CiAgICAgICAgICBpZiAocHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gTk9fRE9UX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RfU0xBU0g7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IG5vZG90OwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBub2RvdDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWVrKCkgIT09ICIqIikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gT05FX0NIQVI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE9ORV9DSEFSOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUuYnJhY2tldHMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJdIikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAiWyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2tldHMiKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUucGFyZW5zID4gMCkgewogICAgICAgIGlmIChvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoImNsb3NpbmciLCAiKSIpKTsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy5lc2NhcGVMYXN0KHN0YXRlLm91dHB1dCwgIigiKTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9CiAgICAgIHdoaWxlIChzdGF0ZS5icmFjZXMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJ9IikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAieyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2VzIik7CiAgICAgIH0KICAgICAgaWYgKG9wdHMuc3RyaWN0U2xhc2hlcyAhPT0gdHJ1ZSAmJiAocHJldi50eXBlID09PSAic3RhciIgfHwgcHJldi50eXBlID09PSAiYnJhY2tldCIpKSB7CiAgICAgICAgcHVzaCh7IHR5cGU6ICJtYXliZV9zbGFzaCIsIHZhbHVlOiAiIiwgb3V0cHV0OiBgJHtTTEFTSF9MSVRFUkFMfT9gIH0pOwogICAgICB9CiAgICAgIGlmIChzdGF0ZS5iYWNrdHJhY2sgPT09IHRydWUpIHsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSAiIjsKICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHN0YXRlLnRva2VucykgewogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7CiAgICAgICAgICBpZiAodG9rZW4uc3VmZml4KSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5zdWZmaXg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBzdGF0ZTsKICAgIH07CiAgICBwYXJzZS5mYXN0cGF0aHMgPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4ub3B0aW9ucyB9OwogICAgICBjb25zdCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09ICJudW1iZXIiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDsKICAgICAgY29uc3QgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICBpZiAobGVuID4gbWF4KSB7CiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBJbnB1dCBsZW5ndGg6ICR7bGVufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke21heH1gKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBTTEFTSF9MSVRFUkFMLAogICAgICAgIE9ORV9DSEFSLAogICAgICAgIERPVFNfU0xBU0gsCiAgICAgICAgTk9fRE9ULAogICAgICAgIE5PX0RPVFMsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBTVEFSLAogICAgICAgIFNUQVJUX0FOQ0hPUgogICAgICB9ID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gTk9fRE9UUyA6IE5PX0RPVDsKICAgICAgY29uc3Qgc2xhc2hEb3QgPSBvcHRzLmRvdCA/IE5PX0RPVFNfU0xBU0ggOiBOT19ET1Q7CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IHN0YXRlID0geyBuZWdhdGVkOiBmYWxzZSwgcHJlZml4OiAiIiB9OwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/ICIuKj8iIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIGlmIChvcHRzMi5ub2dsb2JzdGFyID09PSB0cnVlKSByZXR1cm4gc3RhcjsKICAgICAgICByZXR1cm4gYCgke2NhcHR1cmV9KD86KD8hJHtTVEFSVF9BTkNIT1J9JHtvcHRzMi5kb3QgPyBET1RTX1NMQVNIIDogRE9UX0xJVEVSQUx9KS4pKj8pYDsKICAgICAgfTsKICAgICAgY29uc3QgY3JlYXRlID0gKHN0cjIpID0+IHsKICAgICAgICBzd2l0Y2ggKHN0cjIpIHsKICAgICAgICAgIGNhc2UgIioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBjYXNlICIqLioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIiovKiI6CiAgICAgICAgICAgIHJldHVybiBgJHtub2RvdH0ke3N0YXJ9JHtTTEFTSF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzbGFzaERvdH0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIioqIjoKICAgICAgICAgICAgcmV0dXJuIG5vZG90ICsgZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBjYXNlICIqKi8qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovKi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke3N0YXJ9JHtET1RfTElURVJBTH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovLioiOgogICAgICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gL14oLio/KVwuKFx3KykkLy5leGVjKHN0cjIpOwogICAgICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZTIgPSBjcmVhdGUobWF0Y2hbMV0pOwogICAgICAgICAgICBpZiAoIXNvdXJjZTIpIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTIgKyBET1RfTElURVJBTCArIG1hdGNoWzJdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgY29uc3Qgb3V0cHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7CiAgICAgIGxldCBzb3VyY2UgPSBjcmVhdGUob3V0cHV0KTsKICAgICAgaWYgKHNvdXJjZSAmJiBvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUpIHsKICAgICAgICBzb3VyY2UgKz0gYCR7U0xBU0hfTElURVJBTH0/YDsKICAgICAgfQogICAgICByZXR1cm4gc291cmNlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHBhcnNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BpY29tYXRjaC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9waWNvbWF0Y2guanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2NhbiA9IHJlcXVpcmVfc2NhbjIoKTsKICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2UoKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICB2YXIgY29uc3RhbnRzID0gcmVxdWlyZV9jb25zdGFudHMoKTsKICAgIHZhciBpc09iamVjdDIgPSAodmFsKSA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIHZhciBwaWNvbWF0Y2ggPSAoZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShnbG9iKSkgewogICAgICAgIGNvbnN0IGZucyA9IGdsb2IubWFwKChpbnB1dCkgPT4gcGljb21hdGNoKGlucHV0LCBvcHRpb25zLCByZXR1cm5TdGF0ZSkpOwogICAgICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IChzdHIyKSA9PiB7CiAgICAgICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRlMiA9IGlzTWF0Y2goc3RyMik7CiAgICAgICAgICAgIGlmIChzdGF0ZTIpIHJldHVybiBzdGF0ZTI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gYXJyYXlNYXRjaGVyOwogICAgICB9CiAgICAgIGNvbnN0IGlzU3RhdGUgPSBpc09iamVjdDIoZ2xvYikgJiYgZ2xvYi50b2tlbnMgJiYgZ2xvYi5pbnB1dDsKICAgICAgaWYgKGdsb2IgPT09ICIiIHx8IHR5cGVvZiBnbG9iICE9PSAic3RyaW5nIiAmJiAhaXNTdGF0ZSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHBvc2l4ID0gb3B0cy53aW5kb3dzOwogICAgICBjb25zdCByZWdleCA9IGlzU3RhdGUgPyBwaWNvbWF0Y2guY29tcGlsZVJlKGdsb2IsIG9wdGlvbnMpIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zLCBmYWxzZSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7CiAgICAgIGRlbGV0ZSByZWdleC5zdGF0ZTsKICAgICAgbGV0IGlzSWdub3JlZCA9ICgpID0+IGZhbHNlOwogICAgICBpZiAob3B0cy5pZ25vcmUpIHsKICAgICAgICBjb25zdCBpZ25vcmVPcHRzID0geyAuLi5vcHRpb25zLCBpZ25vcmU6IG51bGwsIG9uTWF0Y2g6IG51bGwsIG9uUmVzdWx0OiBudWxsIH07CiAgICAgICAgaXNJZ25vcmVkID0gcGljb21hdGNoKG9wdHMuaWdub3JlLCBpZ25vcmVPcHRzLCByZXR1cm5TdGF0ZSk7CiAgICAgIH0KICAgICAgY29uc3QgbWF0Y2hlciA9IChpbnB1dCwgcmV0dXJuT2JqZWN0ID0gZmFsc2UpID0+IHsKICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIG1hdGNoLCBvdXRwdXQgfSA9IHBpY29tYXRjaC50ZXN0KGlucHV0LCByZWdleCwgb3B0aW9ucywgeyBnbG9iLCBwb3NpeCB9KTsKICAgICAgICBjb25zdCByZXN1bHQgPSB7IGdsb2IsIHN0YXRlLCByZWdleCwgcG9zaXgsIGlucHV0LCBvdXRwdXQsIG1hdGNoLCBpc01hdGNoIH07CiAgICAgICAgaWYgKHR5cGVvZiBvcHRzLm9uUmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBvcHRzLm9uUmVzdWx0KHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc01hdGNoID09PSBmYWxzZSkgewogICAgICAgICAgcmVzdWx0LmlzTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSWdub3JlZChpbnB1dCkpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygb3B0cy5vbklnbm9yZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvcHRzLm9uSWdub3JlKHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlOwogICAgICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiB0cnVlOwogICAgICB9OwogICAgICBpZiAocmV0dXJuU3RhdGUpIHsKICAgICAgICBtYXRjaGVyLnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hdGNoZXI7CiAgICB9OwogICAgcGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCB7IGdsb2IsIHBvc2l4IH0gPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nIik7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ID09PSAiIikgewogICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBvdXRwdXQ6ICIiIH07CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdHMuZm9ybWF0IHx8IChwb3NpeCA/IHV0aWxzLnRvUG9zaXhTbGFzaGVzIDogbnVsbCk7CiAgICAgIGxldCBtYXRjaCA9IGlucHV0ID09PSBnbG9iOwogICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggJiYgZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7CiAgICAgICAgb3V0cHV0ID0gZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICAgIG1hdGNoID0gb3V0cHV0ID09PSBnbG9iOwogICAgICB9CiAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UgfHwgb3B0cy5jYXB0dXJlID09PSB0cnVlKSB7CiAgICAgICAgaWYgKG9wdHMubWF0Y2hCYXNlID09PSB0cnVlIHx8IG9wdHMuYmFzZW5hbWUgPT09IHRydWUpIHsKICAgICAgICAgIG1hdGNoID0gcGljb21hdGNoLm1hdGNoQmFzZShpbnB1dCwgcmVnZXgsIG9wdGlvbnMsIHBvc2l4KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWF0Y2ggPSByZWdleC5leGVjKG91dHB1dCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGlzTWF0Y2g6IEJvb2xlYW4obWF0Y2gpLCBtYXRjaCwgb3V0cHV0IH07CiAgICB9OwogICAgcGljb21hdGNoLm1hdGNoQmFzZSA9IChpbnB1dCwgZ2xvYiwgb3B0aW9ucykgPT4gewogICAgICBjb25zdCByZWdleCA9IGdsb2IgaW5zdGFuY2VvZiBSZWdFeHAgPyBnbG9iIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zKTsKICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodXRpbHMuYmFzZW5hbWUoaW5wdXQpKTsKICAgIH07CiAgICBwaWNvbWF0Y2guaXNNYXRjaCA9IChzdHIyLCBwYXR0ZXJucywgb3B0aW9ucykgPT4gcGljb21hdGNoKHBhdHRlcm5zLCBvcHRpb25zKShzdHIyKTsKICAgIHBpY29tYXRjaC5wYXJzZSA9IChwYXR0ZXJuLCBvcHRpb25zKSA9PiB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSByZXR1cm4gcGF0dGVybi5tYXAoKHApID0+IHBpY29tYXRjaC5wYXJzZShwLCBvcHRpb25zKSk7CiAgICAgIHJldHVybiBwYXJzZShwYXR0ZXJuLCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSk7CiAgICB9OwogICAgcGljb21hdGNoLnNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHNjYW4oaW5wdXQsIG9wdGlvbnMpOwogICAgcGljb21hdGNoLmNvbXBpbGVSZSA9IChzdGF0ZSwgb3B0aW9ucywgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKHJldHVybk91dHB1dCA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBzdGF0ZS5vdXRwdXQ7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHByZXBlbmQgPSBvcHRzLmNvbnRhaW5zID8gIiIgOiAiXiI7CiAgICAgIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyAiIiA6ICIkIjsKICAgICAgbGV0IHNvdXJjZSA9IGAke3ByZXBlbmR9KD86JHtzdGF0ZS5vdXRwdXR9KSR7YXBwZW5kfWA7CiAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7CiAgICAgICAgc291cmNlID0gYF4oPyEke3NvdXJjZX0pLiokYDsKICAgICAgfQogICAgICBjb25zdCByZWdleCA9IHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgIGlmIChyZXR1cm5TdGF0ZSA9PT0gdHJ1ZSkgewogICAgICAgIHJlZ2V4LnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlZ2V4OwogICAgfTsKICAgIHBpY29tYXRjaC5tYWtlUmUgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSwgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgbGV0IHBhcnNlZCA9IHsgbmVnYXRlZDogZmFsc2UsIGZhc3RwYXRoczogdHJ1ZSB9OwogICAgICBpZiAob3B0aW9ucy5mYXN0cGF0aHMgIT09IGZhbHNlICYmIChpbnB1dFswXSA9PT0gIi4iIHx8IGlucHV0WzBdID09PSAiKiIpKSB7CiAgICAgICAgcGFyc2VkLm91dHB1dCA9IHBhcnNlLmZhc3RwYXRocyhpbnB1dCwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgaWYgKCFwYXJzZWQub3V0cHV0KSB7CiAgICAgICAgcGFyc2VkID0gcGFyc2UoaW5wdXQsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIHJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7CiAgICB9OwogICAgcGljb21hdGNoLnRvUmVnZXggPSAoc291cmNlLCBvcHRpb25zKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoc291cmNlLCBvcHRzLmZsYWdzIHx8IChvcHRzLm5vY2FzZSA/ICJpIiA6ICIiKSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVidWcgPT09IHRydWUpIHRocm93IGVycjsKICAgICAgICByZXR1cm4gLyReLzsKICAgICAgfQogICAgfTsKICAgIHBpY29tYXRjaC5jb25zdGFudHMgPSBjb25zdGFudHM7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwaWNvbWF0Y2g7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2gyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBwaWNvID0gcmVxdWlyZV9waWNvbWF0Y2goKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICBmdW5jdGlvbiBwaWNvbWF0Y2goZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgewogICAgICBpZiAob3B0aW9ucyAmJiAob3B0aW9ucy53aW5kb3dzID09PSBudWxsIHx8IG9wdGlvbnMud2luZG93cyA9PT0gdm9pZCAwKSkgewogICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIHdpbmRvd3M6IHV0aWxzLmlzV2luZG93cygpIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHBpY28oZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUpOwogICAgfQogICAgT2JqZWN0LmFzc2lnbihwaWNvbWF0Y2gsIHBpY28pOwogICAgbW9kdWxlMi5leHBvcnRzID0gcGljb21hdGNoOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBpY29tYXRjaF8xID0gcmVxdWlyZV9waWNvbWF0Y2gyKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBQYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9wYXR0ZXJucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIGFkZFBhdHRlcm4ocGF0dGVybiwgcmVwbGFjZW1lbnRGbikgewogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gQXJyYXkuaXNBcnJheShwYXR0ZXJuKSA/IHBhdHRlcm4gOiBbcGF0dGVybl07CiAgICAgICAgZm9yIChjb25zdCBnbG9iIG9mIHBhdHRlcm5zKSB7CiAgICAgICAgICBjb25zdCB7IG91dHB1dCB9ID0gKDAsIHBpY29tYXRjaF8xLnBhcnNlKShnbG9iKTsKICAgICAgICAgIHRoaXMuX3BhdHRlcm5zLnNldChuZXcgUmVnRXhwKGBeJHtvdXRwdXR9JGApLCByZXBsYWNlbWVudEZuKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3Jlc29sdmUocGF0aCkgewogICAgICAgIGxldCBuZXdQYXRoID0gcGF0aDsKICAgICAgICB0aGlzLl9wYXR0ZXJucy5mb3JFYWNoKChmbiwgcmUpID0+IHsKICAgICAgICAgIGlmIChyZS50ZXN0KHBhdGgpKSB7CiAgICAgICAgICAgIG5ld1BhdGggPSBmbihuZXdQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3UGF0aDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdHRlcm5NYXRjaGluZ0hvc3QgPSBQYXR0ZXJuTWF0Y2hpbmdIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3JlY29yZC5qcwp2YXIgcmVxdWlyZV9yZWNvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZWNvcmQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIG1lbW9yeV8xID0gcmVxdWlyZV9tZW1vcnkoKTsKICAgIHZhciBDb3JkSG9zdCA9IGNsYXNzIF9Db3JkSG9zdCBleHRlbmRzIG1lbW9yeV8xLlNpbXBsZU1lbW9yeUhvc3QgewogICAgICBfYmFjazsKICAgICAgX2ZpbGVzVG9DcmVhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2ZpbGVzVG9EZWxldGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb092ZXJ3cml0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9iYWNrID0gX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGJhY2tlbmQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgc3luY2hyb25vdXM6IHRoaXMuX2JhY2suY2FwYWJpbGl0aWVzLnN5bmNocm9ub3VzCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgY29weSBvZiB0aGlzIGhvc3QsIGluY2x1ZGluZyBhbGwgYWN0aW9ucyBtYWRlLgogICAgICAgKiBAcmV0dXJucyB7Q29yZEhvc3R9IFRoZSBjYXJib24gY29weS4KICAgICAgICovCiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IGRvbGx5ID0gbmV3IF9Db3JkSG9zdCh0aGlzLl9iYWNrKTsKICAgICAgICBkb2xseS5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICBkb2xseS5fZmlsZXNUb0NyZWF0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0NyZWF0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9SZW5hbWUgPSBuZXcgTWFwKHRoaXMuX2ZpbGVzVG9SZW5hbWUpOwogICAgICAgIGRvbGx5Ll9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gbmV3IE1hcCh0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0KTsKICAgICAgICBkb2xseS5fZmlsZXNUb0RlbGV0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0RlbGV0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9PdmVyd3JpdGUgPSBuZXcgU2V0KHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUpOwogICAgICAgIHJldHVybiBkb2xseTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tbWl0IHRoZSBjaGFuZ2VzIHJlY29yZGVkIHRvIGEgSG9zdC4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBob3N0IGRvZXMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUKICAgICAgICogYXMgdGhlIGhvc3QgdGhhdCB3YXMgdXNlZCBmb3IgYmFja2VuZCAoY291bGQgYmUgdGhlIHNhbWUgaG9zdCkuCiAgICAgICAqIEBwYXJhbSBob3N0IFRoZSBob3N0IHRvIGNyZWF0ZS9kZWxldGUvcmVuYW1lL292ZXJ3cml0ZSBmaWxlcyB0by4KICAgICAgICogQHBhcmFtIGZvcmNlIFdoZXRoZXIgdG8gc2tpcCBleGlzdGVuY2UgY2hlY2tzIHdoZW4gY3JlYXRpbmcvb3ZlcndyaXRpbmcuIFRoaXMgaXMKICAgICAgICogICBmYXN0ZXIgYnV0IG1pZ2h0IGxlYWQgdG8gaW5jb3JyZWN0IHN0YXRlcy4gQmVjYXVzZSBIb3N0cyBuYXRpdmVseSBkb24ndCBzdXBwb3J0IGNyZWF0aW9uCiAgICAgICAqICAgdmVyc3VzIG92ZXJ3cml0aW5nIChpdCdzIG9ubHkgd3JpdGluZyksIHdlIGNoZWNrIGZvciBleGlzdGVuY2UgYmVmb3JlIGNvbXBsZXRpbmcgYSByZXF1ZXN0LgogICAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gZG9uZSwgb3IgZXJyb3IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KICAgICAgICovCiAgICAgIGNvbW1pdChob3N0LCBmb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkodGhpcy5yZWNvcmRzKCkpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChyZWNvcmQpID0+IHsKICAgICAgICAgIHN3aXRjaCAocmVjb3JkLmtpbmQpIHsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5kZWxldGUocmVjb3JkLnBhdGgpOwogICAgICAgICAgICBjYXNlICJyZW5hbWUiOgogICAgICAgICAgICAgIHJldHVybiBob3N0LnJlbmFtZShyZWNvcmQuZnJvbSwgcmVjb3JkLnRvKTsKICAgICAgICAgICAgY2FzZSAiY3JlYXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJiYgIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHJlY29yZC5wYXRoKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXR1cm4gaG9zdC53cml0ZShyZWNvcmQucGF0aCwgcmVjb3JkLmNvbnRlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmICghZXhpc3RzICYmICFmb3JjZSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQucGF0aCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGUocmVjb3JkLnBhdGgsIHJlY29yZC5jb250ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEucmVkdWNlKSgoKSA9PiB7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHJlY29yZHMoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIC4uLlsuLi50aGlzLl9maWxlc1RvRGVsZXRlLnZhbHVlcygpXS5tYXAoKHBhdGgpID0+ICh7CiAgICAgICAgICAgIGtpbmQ6ICJkZWxldGUiLAogICAgICAgICAgICBwYXRoCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb1JlbmFtZS5lbnRyaWVzKCldLm1hcCgoW2Zyb20sIHRvXSkgPT4gKHsKICAgICAgICAgICAga2luZDogInJlbmFtZSIsCiAgICAgICAgICAgIGZyb20sCiAgICAgICAgICAgIHRvCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb0NyZWF0ZS52YWx1ZXMoKV0ubWFwKChwYXRoKSA9PiAoewogICAgICAgICAgICBraW5kOiAiY3JlYXRlIiwKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVhZChwYXRoKQogICAgICAgICAgfSkpLAogICAgICAgICAgLi4uWy4uLnRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUudmFsdWVzKCldLm1hcCgocGF0aCkgPT4gKHsKICAgICAgICAgICAga2luZDogIm92ZXJ3cml0ZSIsCiAgICAgICAgICAgIHBhdGgsCiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3JlYWQocGF0aCkKICAgICAgICAgIH0pKQogICAgICAgIF07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNwZWNpYWxpemVkIHZlcnNpb24gb2Yge0BsaW5rIENvcmRIb3N0I3dyaXRlfSB3aGljaCBmb3JjZXMgdGhlIGNyZWF0aW9uIG9mIGEgZmlsZSB3aGV0aGVyIGl0CiAgICAgICAqIGV4aXN0cyBvciBub3QuCiAgICAgICAqIEBwYXJhbSB7fSBwYXRoCiAgICAgICAqIEBwYXJhbSB7RmlsZUJ1ZmZlcn0gY29udGVudAogICAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn0KICAgICAgICovCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgaWYgKHN1cGVyLl9leGlzdHMocGF0aCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuc3dpdGNoTWFwKSgoaXNEaXIpID0+IHsKICAgICAgICAgIGlmIChpc0RpcikgewogICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0aGlzLmV4aXN0cyhwYXRoKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgIGlmICghZXhpc3RzKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgaWYgKGV4aXN0cykgewogICAgICAgICAgICBpZiAodGhpcy53aWxsUmVuYW1lKHBhdGgpIHx8IHRoaXMud2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhwYXRoKSkgewogICAgICAgICAgcmV0dXJuIHN1cGVyLnJlYWQocGF0aCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZXhpc3RzKHBhdGgpKSB7CiAgICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChwYXRoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG1heWJlT3JpZ2luID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQocGF0aCk7CiAgICAgICAgICAgIGlmIChtYXliZU9yaWdpbikgewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWVSZXZlcnQuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZGVsZXRlKG1heWJlT3JpZ2luKTsKICAgICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChtYXliZU9yaWdpbik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLlVua25vd25FeGNlcHRpb24oYFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGF0aDogJHtKU09OLnN0cmluZ2lmeShwYXRoKX0uYCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYmFjay5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgICBpZiAoZXhpc3RzKSB7CiAgICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5hZGQocGF0aCk7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5leGlzdHModG8pLCB0aGlzLmV4aXN0cyhmcm9tKSkucGlwZSgoMCwgcnhqc18xLnRvQXJyYXkpKCksICgwLCByeGpzXzEuc3dpdGNoTWFwKSgoW2V4aXN0VG8sIGV4aXN0RnJvbV0pID0+IHsKICAgICAgICAgIGlmICghZXhpc3RGcm9tKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGZyb20pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmcm9tID09PSB0bykgewogICAgICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGV4aXN0VG8pIHsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24odG8pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnJlbmFtZShmcm9tLCB0byksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoeCkgPT4gewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuYWRkKHRvKTsKICAgICAgICAgICAgICB4LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyh0bykpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5kZWxldGUodG8pOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGZyb20pLnBpcGUoKDAsIHJ4anNfMS5tYXApKChjb250ZW50KSA9PiB0aGlzLl93cml0ZSh0bywgY29udGVudCkpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG1heWJlVG8xID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAobWF5YmVUbzEpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5kZWxldGUobWF5YmVUbzEpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0LmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgZnJvbSA9IG1heWJlVG8xOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5zZXQoZnJvbSwgdG8pOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5zZXQodG8sIGZyb20pOwogICAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhmcm9tKSkgewogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQoZnJvbSkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGNvbnRlbnQpID0+IHN1cGVyLndyaXRlKHRvLCBjb250ZW50KSkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKHN1cGVyLmxpc3QocGF0aCksIHRoaXMuX2JhY2subGlzdChwYXRoKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKGxpc3QsIGN1cnIpID0+IHsKICAgICAgICAgIGN1cnIuZm9yRWFjaCgoZWxlbSkgPT4gbGlzdC5hZGQoZWxlbSkpOwogICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSksICgwLCByeGpzXzEubWFwKSgoc2V0MikgPT4gWy4uLnNldDJdKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gKDAsIHJ4anNfMS5vZikodHJ1ZSkgOiB0aGlzLndpbGxEZWxldGUocGF0aCkgfHwgdGhpcy53aWxsUmVuYW1lKHBhdGgpID8gKDAsIHJ4anNfMS5vZikoZmFsc2UpIDogdGhpcy5fYmFjay5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5pc0RpcmVjdG9yeShwYXRoKSA6IHRoaXMuX2JhY2suaXNEaXJlY3RvcnkocGF0aCk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gc3VwZXIuaXNGaWxlKHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKGZhbHNlKSA6IHRoaXMuX2JhY2suaXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIHN0YXQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5zdGF0KHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKG51bGwpIDogdGhpcy5fYmFjay5zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIHdhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICB3aWxsQ3JlYXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbE92ZXJ3cml0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpOwogICAgICB9CiAgICAgIHdpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyhwYXRoKTsKICAgICAgfQogICAgICB3aWxsUmVuYW1lKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb1JlbmFtZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbFJlbmFtZVRvKHBhdGgsIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZ2V0KHBhdGgpID09PSB0bzsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gQ29yZEhvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcwp2YXIgcmVxdWlyZV9zYWZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2FmZVJlYWRvbmx5SG9zdCA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFNhZmVSZWFkb25seUhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShbXSkpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikoZmFsc2UpKSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNGaWxlKHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShmYWxzZSkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0cy4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0ICYmIG1heWJlU3RhdC5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikobnVsbCkpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNhZmVSZWFkb25seUhvc3QgPSBTYWZlUmVhZG9ubHlIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zY29wZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBTY29wZWRIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgX3Jvb3QgPSBwYXRoXzEuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICBzdXBlcihkZWxlZ2F0ZSk7CiAgICAgICAgdGhpcy5fcm9vdCA9IF9yb290OwogICAgICB9CiAgICAgIF9yZXNvbHZlKHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHBhdGhfMS5qb2luKSh0aGlzLl9yb290LCBwYXRoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSBTY29wZWRIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzCnZhciByZXF1aXJlX2hvc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGVzdCA9IHZvaWQgMDsKICAgIHZhciB0ZXN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdGVzdCgpKTsKICAgIGV4cG9ydHMyLnRlc3QgPSB0ZXN0OwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYWxpYXMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYnVmZmVyMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jcmVhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW1wdHkyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbWVtb3J5KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BhdHRlcm4yKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3JlY29yZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zYWZlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Njb3BlZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zeW5jKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Jlc29sdmVyKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaW5kZXguanMKdmFyIHJlcXVpcmVfdmlydHVhbF9mcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmlydHVhbEZzID0gdm9pZCAwOwogICAgdmFyIHZpcnR1YWxGcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2hvc3QoKSk7CiAgICBleHBvcnRzMi52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9wYXRoKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IGNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUhvc3QoaG9zdCkgewogICAgICBjb25zdCB3b3Jrc3BhY2VIb3N0ID0gewogICAgICAgIGFzeW5jIHJlYWRGaWxlKHBhdGgpIHsKICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QucmVhZCgoMCwgdmlydHVhbF9mc18xLm5vcm1hbGl6ZSkocGF0aCkpKTsKICAgICAgICAgIHJldHVybiB2aXJ0dWFsX2ZzXzEudmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhkYXRhKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIHdyaXRlRmlsZShwYXRoLCBkYXRhKSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShob3N0LndyaXRlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSwgdmlydHVhbF9mc18xLnZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoZGF0YSkpKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNEaXJlY3RvcnkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNGaWxlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiB3b3Jrc3BhY2VIb3N0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvc2Nhbm5lci5qcwp2YXIgcmVxdWlyZV9zY2FubmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zY2FubmVyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gdm9pZCAwOwogICAgICBmdW5jdGlvbiBjcmVhdGVTY2FubmVyKHRleHQsIGlnbm9yZVRyaXZpYSA9IGZhbHNlKSB7CiAgICAgICAgY29uc3QgbGVuID0gdGV4dC5sZW5ndGg7CiAgICAgICAgbGV0IHBvcyA9IDAsIHZhbHVlID0gIiIsIHRva2VuT2Zmc2V0ID0gMCwgdG9rZW4gPSAxNiwgbGluZU51bWJlciA9IDAsIGxpbmVTdGFydE9mZnNldCA9IDAsIHRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgc2NhbkVycm9yID0gMDsKICAgICAgICBmdW5jdGlvbiBzY2FuSGV4RGlnaXRzKGNvdW50LCBleGFjdCkgewogICAgICAgICAgbGV0IGRpZ2l0cyA9IDA7CiAgICAgICAgICBsZXQgdmFsdWUyID0gMDsKICAgICAgICAgIHdoaWxlIChkaWdpdHMgPCBjb3VudCB8fCAhZXhhY3QpIHsKICAgICAgICAgICAgbGV0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA+PSA0OCAmJiBjaCA8PSA1NykgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA0ODsKICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSA2NSAmJiBjaCA8PSA3MCkgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA2NSArIDEwOwogICAgICAgICAgICB9IGVsc2UgaWYgKGNoID49IDk3ICYmIGNoIDw9IDEwMikgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA5NyArIDEwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICBkaWdpdHMrKzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkaWdpdHMgPCBjb3VudCkgewogICAgICAgICAgICB2YWx1ZTIgPSAtMTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB2YWx1ZTI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNldFBvc2l0aW9uKG5ld1Bvc2l0aW9uKSB7CiAgICAgICAgICBwb3MgPSBuZXdQb3NpdGlvbjsKICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IDA7CiAgICAgICAgICB0b2tlbiA9IDE2OwogICAgICAgICAgc2NhbkVycm9yID0gMDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk51bWJlcigpIHsKICAgICAgICAgIGxldCBzdGFydCA9IHBvczsKICAgICAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDgpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDYpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kID0gcG9zOwogICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNjkgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDEwMSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDMgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDQ1KSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZW5kID0gcG9zOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCwgZW5kKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2NhblN0cmluZygpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAiIiwgc3RhcnQgPSBwb3M7CiAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAyOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA9PT0gMzQpIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoID09PSA5MikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBjaDIgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKyspOwogICAgICAgICAgICAgIHN3aXRjaCAoY2gyKSB7CiAgICAgICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyInOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgOTI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXFwiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDc6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiLyI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA5ODoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcYiI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMDI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXGYiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTEwOgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlxuIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDExNDoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcciI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTY6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiCSI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTc6CiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoMyA9IHNjYW5IZXhEaWdpdHMoNCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgIGlmIChjaDMgPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoMyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc2NhbkVycm9yID0gNDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHNjYW5FcnJvciA9IDU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN0YXJ0ID0gcG9zOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaCA+PSAwICYmIGNoIDw9IDMxKSB7CiAgICAgICAgICAgICAgaWYgKGlzTGluZUJyZWFrKGNoKSkgewogICAgICAgICAgICAgICAgcmVzdWx0ICs9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSA2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNjYW5OZXh0KCkgewogICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICAgIHNjYW5FcnJvciA9IDA7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IHBvczsKICAgICAgICAgIGxpbmVTdGFydE9mZnNldCA9IGxpbmVOdW1iZXI7CiAgICAgICAgICBwcmV2VG9rZW5MaW5lU3RhcnRPZmZzZXQgPSB0b2tlbkxpbmVTdGFydE9mZnNldDsKICAgICAgICAgIGlmIChwb3MgPj0gbGVuKSB7CiAgICAgICAgICAgIHRva2VuT2Zmc2V0ID0gbGVuOwogICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNzsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNvZGUpKSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIGNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgfSB3aGlsZSAoaXNXaGl0ZVNwYWNlKGNvZGUpKTsKICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMTU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIHZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7CiAgICAgICAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTApIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgdG9rZW5MaW5lU3RhcnRPZmZzZXQgPSBwb3M7CiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE0OwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIC8vIHRva2VuczogW117fTosCiAgICAgICAgICAgIGNhc2UgMTIzOgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDI7CiAgICAgICAgICAgIGNhc2UgOTE6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMzsKICAgICAgICAgICAgY2FzZSA5MzoKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA0OwogICAgICAgICAgICBjYXNlIDU4OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDY7CiAgICAgICAgICAgIGNhc2UgNDQ6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNTsKICAgICAgICAgICAgLy8gc3RyaW5ncwogICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHZhbHVlID0gc2NhblN0cmluZygpOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEwOwogICAgICAgICAgICAvLyBjb21tZW50cwogICAgICAgICAgICBjYXNlIDQ3OgogICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zIC0gMTsKICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSA0NykgewogICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGVuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayh0ZXh0LmNoYXJDb2RlQXQocG9zKSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckNvZGVBdChwb3MgKyAxKSA9PT0gNDIpIHsKICAgICAgICAgICAgICAgIHBvcyArPSAyOwogICAgICAgICAgICAgICAgY29uc3Qgc2FmZUxlbmd0aCA9IGxlbiAtIDE7CiAgICAgICAgICAgICAgICBsZXQgY29tbWVudENsb3NlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHNhZmVMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgY2ggPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgICAgICAgaWYgKGNoID09PSA0MiAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zICsgMSkgPT09IDQ3KSB7CiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICAgICAgY29tbWVudENsb3NlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayhjaCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDEzICYmIHRleHQuY2hhckNvZGVBdChwb3MpID09PSAxMCkgewogICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgICAgICAgICB0b2tlbkxpbmVTdGFydE9mZnNldCA9IHBvczsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjb21tZW50Q2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFsdWUgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAvLyBudW1iZXJzCiAgICAgICAgICAgIGNhc2UgNDU6CiAgICAgICAgICAgICAgdmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID09PSBsZW4gfHwgIWlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZvdW5kIGEgbWludXMsIGZvbGxvd2VkIGJ5IGEgbnVtYmVyIHNvCiAgICAgICAgICAgIC8vIHdlIGZhbGwgdGhyb3VnaCB0byBwcm9jZWVkIHdpdGggc2Nhbm5pbmcKICAgICAgICAgICAgLy8gbnVtYmVycwogICAgICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgICBjYXNlIDQ5OgogICAgICAgICAgICBjYXNlIDUwOgogICAgICAgICAgICBjYXNlIDUxOgogICAgICAgICAgICBjYXNlIDUyOgogICAgICAgICAgICBjYXNlIDUzOgogICAgICAgICAgICBjYXNlIDU0OgogICAgICAgICAgICBjYXNlIDU1OgogICAgICAgICAgICBjYXNlIDU2OgogICAgICAgICAgICBjYXNlIDU3OgogICAgICAgICAgICAgIHZhbHVlICs9IHNjYW5OdW1iZXIoKTsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMTsKICAgICAgICAgICAgLy8gbGl0ZXJhbHMgYW5kIHVua25vd24gc3ltYm9scwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsZW4gJiYgaXNVbmtub3duQ29udGVudENoYXJhY3Rlcihjb2RlKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0b2tlbk9mZnNldCAhPT0gcG9zKSB7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRleHQuc3Vic3RyaW5nKHRva2VuT2Zmc2V0LCBwb3MpOwogICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJ0cnVlIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA4OwogICAgICAgICAgICAgICAgICBjYXNlICJmYWxzZSI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gOTsKICAgICAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpc1Vua25vd25Db250ZW50Q2hhcmFjdGVyKGNvZGUpIHsKICAgICAgICAgIGlmIChpc1doaXRlU3BhY2UoY29kZSkgfHwgaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICBjYXNlIDkzOgogICAgICAgICAgICBjYXNlIDEyMzoKICAgICAgICAgICAgY2FzZSA5MToKICAgICAgICAgICAgY2FzZSAzNDoKICAgICAgICAgICAgY2FzZSA1ODoKICAgICAgICAgICAgY2FzZSA0NDoKICAgICAgICAgICAgY2FzZSA0NzoKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHROb25Ucml2aWEoKSB7CiAgICAgICAgICBsZXQgcmVzdWx0OwogICAgICAgICAgZG8gewogICAgICAgICAgICByZXN1bHQgPSBzY2FuTmV4dCgpOwogICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID49IDEyICYmIHJlc3VsdCA8PSAxNSk7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgc2V0UG9zaXRpb24sCiAgICAgICAgICBnZXRQb3NpdGlvbjogKCkgPT4gcG9zLAogICAgICAgICAgc2NhbjogaWdub3JlVHJpdmlhID8gc2Nhbk5leHROb25Ucml2aWEgOiBzY2FuTmV4dCwKICAgICAgICAgIGdldFRva2VuOiAoKSA9PiB0b2tlbiwKICAgICAgICAgIGdldFRva2VuVmFsdWU6ICgpID0+IHZhbHVlLAogICAgICAgICAgZ2V0VG9rZW5PZmZzZXQ6ICgpID0+IHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5MZW5ndGg6ICgpID0+IHBvcyAtIHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5TdGFydExpbmU6ICgpID0+IGxpbmVTdGFydE9mZnNldCwKICAgICAgICAgIGdldFRva2VuU3RhcnRDaGFyYWN0ZXI6ICgpID0+IHRva2VuT2Zmc2V0IC0gcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5FcnJvcjogKCkgPT4gc2NhbkVycm9yCiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gY3JlYXRlU2Nhbm5lcjsKICAgICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7CiAgICAgICAgcmV0dXJuIGNoID09PSAzMiB8fCBjaCA9PT0gOTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0xpbmVCcmVhayhjaCkgewogICAgICAgIHJldHVybiBjaCA9PT0gMTAgfHwgY2ggPT09IDEzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRGlnaXQoY2gpIHsKICAgICAgICByZXR1cm4gY2ggPj0gNDggJiYgY2ggPD0gNTc7CiAgICAgIH0KICAgICAgdmFyIENoYXJhY3RlckNvZGVzOwogICAgICAoZnVuY3Rpb24oQ2hhcmFjdGVyQ29kZXMyKSB7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibGluZUZlZWQiXSA9IDEwXSA9ICJsaW5lRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY2FycmlhZ2VSZXR1cm4iXSA9IDEzXSA9ICJjYXJyaWFnZVJldHVybiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic3BhY2UiXSA9IDMyXSA9ICJzcGFjZSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzAiXSA9IDQ4XSA9ICJfMCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzEiXSA9IDQ5XSA9ICJfMSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzIiXSA9IDUwXSA9ICJfMiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzMiXSA9IDUxXSA9ICJfMyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzQiXSA9IDUyXSA9ICJfNCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzUiXSA9IDUzXSA9ICJfNSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzYiXSA9IDU0XSA9ICJfNiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzciXSA9IDU1XSA9ICJfNyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzgiXSA9IDU2XSA9ICJfOCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzkiXSA9IDU3XSA9ICJfOSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYSJdID0gOTddID0gImEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImIiXSA9IDk4XSA9ICJiIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjIl0gPSA5OV0gPSAiYyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZCJdID0gMTAwXSA9ICJkIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJlIl0gPSAxMDFdID0gImUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImYiXSA9IDEwMl0gPSAiZiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZyJdID0gMTAzXSA9ICJnIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJoIl0gPSAxMDRdID0gImgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImkiXSA9IDEwNV0gPSAiaSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiaiJdID0gMTA2XSA9ICJqIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJrIl0gPSAxMDddID0gImsiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImwiXSA9IDEwOF0gPSAibCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibSJdID0gMTA5XSA9ICJtIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJuIl0gPSAxMTBdID0gIm4iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIm8iXSA9IDExMV0gPSAibyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicCJdID0gMTEyXSA9ICJwIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJxIl0gPSAxMTNdID0gInEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInIiXSA9IDExNF0gPSAiciI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicyJdID0gMTE1XSA9ICJzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ0Il0gPSAxMTZdID0gInQiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInUiXSA9IDExN10gPSAidSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidiJdID0gMTE4XSA9ICJ2IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ3Il0gPSAxMTldID0gInciOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIngiXSA9IDEyMF0gPSAieCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsieSJdID0gMTIxXSA9ICJ5IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ6Il0gPSAxMjJdID0gInoiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkEiXSA9IDY1XSA9ICJBIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJCIl0gPSA2Nl0gPSAiQiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiQyJdID0gNjddID0gIkMiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkQiXSA9IDY4XSA9ICJEIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJFIl0gPSA2OV0gPSAiRSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiRiJdID0gNzBdID0gIkYiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkciXSA9IDcxXSA9ICJHIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJIIl0gPSA3Ml0gPSAiSCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiSSJdID0gNzNdID0gIkkiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkoiXSA9IDc0XSA9ICJKIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJLIl0gPSA3NV0gPSAiSyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTCJdID0gNzZdID0gIkwiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIk0iXSA9IDc3XSA9ICJNIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJOIl0gPSA3OF0gPSAiTiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTyJdID0gNzldID0gIk8iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlAiXSA9IDgwXSA9ICJQIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJRIl0gPSA4MV0gPSAiUSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiUiJdID0gODJdID0gIlIiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlMiXSA9IDgzXSA9ICJTIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJUIl0gPSA4NF0gPSAiVCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiVSJdID0gODVdID0gIlUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlYiXSA9IDg2XSA9ICJWIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJXIl0gPSA4N10gPSAiVyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiWCJdID0gODhdID0gIlgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlkiXSA9IDg5XSA9ICJZIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJaIl0gPSA5MF0gPSAiWiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYXN0ZXJpc2siXSA9IDQyXSA9ICJhc3RlcmlzayI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYmFja3NsYXNoIl0gPSA5Ml0gPSAiYmFja3NsYXNoIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjbG9zZUJyYWNlIl0gPSAxMjVdID0gImNsb3NlQnJhY2UiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImNsb3NlQnJhY2tldCJdID0gOTNdID0gImNsb3NlQnJhY2tldCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29sb24iXSA9IDU4XSA9ICJjb2xvbiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29tbWEiXSA9IDQ0XSA9ICJjb21tYSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZG90Il0gPSA0Nl0gPSAiZG90IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJkb3VibGVRdW90ZSJdID0gMzRdID0gImRvdWJsZVF1b3RlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJtaW51cyJdID0gNDVdID0gIm1pbnVzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2UiXSA9IDEyM10gPSAib3BlbkJyYWNlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2tldCJdID0gOTFdID0gIm9wZW5CcmFja2V0IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJwbHVzIl0gPSA0M10gPSAicGx1cyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic2xhc2giXSA9IDQ3XSA9ICJzbGFzaCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZm9ybUZlZWQiXSA9IDEyXSA9ICJmb3JtRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidGFiIl0gPSA5XSA9ICJ0YWIiOwogICAgICB9KShDaGFyYWN0ZXJDb2RlcyB8fCAoQ2hhcmFjdGVyQ29kZXMgPSB7fSkpOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zdHJpbmctaW50ZXJuLmpzCnZhciByZXF1aXJlX3N0cmluZ19pbnRlcm4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL3N0cmluZy1pbnRlcm4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyJdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLnN1cHBvcnRlZEVvbHMgPSBleHBvcnRzMy5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlcyA9IGV4cG9ydHMzLmNhY2hlZFNwYWNlcyA9IHZvaWQgMDsKICAgICAgZXhwb3J0czMuY2FjaGVkU3BhY2VzID0gbmV3IEFycmF5KDIwKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gIiAiLnJlcGVhdChpbmRleCk7CiAgICAgIH0pOwogICAgICBjb25zdCBtYXhDYWNoZWRWYWx1ZXMgPSAyMDA7CiAgICAgIGV4cG9ydHMzLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzID0gewogICAgICAgICIgIjogewogICAgICAgICAgIlxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcciI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyIiArICIgIi5yZXBlYXQoaW5kZXgpOwogICAgICAgICAgfSksCiAgICAgICAgICAiXHJcbiI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgIgkiOiB7CiAgICAgICAgICAiXG4iOiBuZXcgQXJyYXkobWF4Q2FjaGVkVmFsdWVzKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICAgICAgcmV0dXJuICJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pLAogICAgICAgICAgIlxyIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHIiICsgIgkiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcclxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzMy5zdXBwb3J0ZWRFb2xzID0gWyJcbiIsICJcciIsICJcclxuIl07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9mb3JtYXQuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgc2Nhbm5lcl8xID0gcmVxdWlyZV9zY2FubmVyKCk7CiAgICB2YXIgc3RyaW5nX2ludGVybl8xID0gcmVxdWlyZV9zdHJpbmdfaW50ZXJuKCk7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyIsICIuL3NjYW5uZXIiLCAiLi9zdHJpbmctaW50ZXJuIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuaXNFT0wgPSBleHBvcnRzMy5mb3JtYXQgPSB2b2lkIDA7CiAgICAgIGZ1bmN0aW9uIGZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKSB7CiAgICAgICAgbGV0IGluaXRpYWxJbmRlbnRMZXZlbDsKICAgICAgICBsZXQgZm9ybWF0VGV4dDsKICAgICAgICBsZXQgZm9ybWF0VGV4dFN0YXJ0OwogICAgICAgIGxldCByYW5nZVN0YXJ0OwogICAgICAgIGxldCByYW5nZUVuZDsKICAgICAgICBpZiAocmFuZ2UpIHsKICAgICAgICAgIHJhbmdlU3RhcnQgPSByYW5nZS5vZmZzZXQ7CiAgICAgICAgICByYW5nZUVuZCA9IHJhbmdlU3RhcnQgKyByYW5nZS5sZW5ndGg7CiAgICAgICAgICBmb3JtYXRUZXh0U3RhcnQgPSByYW5nZVN0YXJ0OwogICAgICAgICAgd2hpbGUgKGZvcm1hdFRleHRTdGFydCA+IDAgJiYgIWlzRU9MKGRvY3VtZW50VGV4dCwgZm9ybWF0VGV4dFN0YXJ0IC0gMSkpIHsKICAgICAgICAgICAgZm9ybWF0VGV4dFN0YXJ0LS07CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kT2Zmc2V0ID0gcmFuZ2VFbmQ7CiAgICAgICAgICB3aGlsZSAoZW5kT2Zmc2V0IDwgZG9jdW1lbnRUZXh0Lmxlbmd0aCAmJiAhaXNFT0woZG9jdW1lbnRUZXh0LCBlbmRPZmZzZXQpKSB7CiAgICAgICAgICAgIGVuZE9mZnNldCsrOwogICAgICAgICAgfQogICAgICAgICAgZm9ybWF0VGV4dCA9IGRvY3VtZW50VGV4dC5zdWJzdHJpbmcoZm9ybWF0VGV4dFN0YXJ0LCBlbmRPZmZzZXQpOwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gY29tcHV0ZUluZGVudExldmVsKGZvcm1hdFRleHQsIG9wdGlvbnMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3JtYXRUZXh0ID0gZG9jdW1lbnRUZXh0OwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gMDsKICAgICAgICAgIGZvcm1hdFRleHRTdGFydCA9IDA7CiAgICAgICAgICByYW5nZVN0YXJ0ID0gMDsKICAgICAgICAgIHJhbmdlRW5kID0gZG9jdW1lbnRUZXh0Lmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgY29uc3QgZW9sID0gZ2V0RU9MKG9wdGlvbnMsIGRvY3VtZW50VGV4dCk7CiAgICAgICAgY29uc3QgZW9sRmFzdFBhdGhTdXBwb3J0ZWQgPSBzdHJpbmdfaW50ZXJuXzEuc3VwcG9ydGVkRW9scy5pbmNsdWRlcyhlb2wpOwogICAgICAgIGxldCBudW1iZXJMaW5lQnJlYWtzID0gMDsKICAgICAgICBsZXQgaW5kZW50TGV2ZWwgPSAwOwogICAgICAgIGxldCBpbmRlbnRWYWx1ZTsKICAgICAgICBpZiAob3B0aW9ucy5pbnNlcnRTcGFjZXMpIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1tvcHRpb25zLnRhYlNpemUgfHwgNF0gPz8gcmVwZWF0MihzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdLCBvcHRpb25zLnRhYlNpemUgfHwgNCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gIgkiOwogICAgICAgIH0KICAgICAgICBjb25zdCBpbmRlbnRUeXBlID0gaW5kZW50VmFsdWUgPT09ICIJIiA/ICIJIiA6ICIgIjsKICAgICAgICBsZXQgc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikoZm9ybWF0VGV4dCwgZmFsc2UpOwogICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlOwogICAgICAgIGZ1bmN0aW9uIG5ld0xpbmVzQW5kSW5kZW50KCkgewogICAgICAgICAgaWYgKG51bWJlckxpbmVCcmVha3MgPiAxKSB7CiAgICAgICAgICAgIHJldHVybiByZXBlYXQyKGVvbCwgbnVtYmVyTGluZUJyZWFrcykgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBhbW91bnRPZlNwYWNlcyA9IGluZGVudFZhbHVlLmxlbmd0aCAqIChpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICBpZiAoIWVvbEZhc3RQYXRoU3VwcG9ydGVkIHx8IGFtb3VudE9mU3BhY2VzID4gc3RyaW5nX2ludGVybl8xLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzW2luZGVudFR5cGVdW2VvbF0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHJldHVybiBlb2wgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYW1vdW50T2ZTcGFjZXMgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gZW9sOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN0cmluZ19pbnRlcm5fMS5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlc1tpbmRlbnRUeXBlXVtlb2xdW2Ftb3VudE9mU3BhY2VzXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHQoKSB7CiAgICAgICAgICBsZXQgdG9rZW4gPSBzY2FubmVyLnNjYW4oKTsKICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgPSAwOwogICAgICAgICAgd2hpbGUgKHRva2VuID09PSAxNSB8fCB0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgaWYgKHRva2VuID09PSAxNCAmJiBvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgKz0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgICBudW1iZXJMaW5lQnJlYWtzID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0b2tlbiA9IHNjYW5uZXIuc2NhbigpOwogICAgICAgICAgfQogICAgICAgICAgaGFzRXJyb3IgPSB0b2tlbiA9PT0gMTYgfHwgc2Nhbm5lci5nZXRUb2tlbkVycm9yKCkgIT09IDA7CiAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRPcGVyYXRpb25zID0gW107CiAgICAgICAgZnVuY3Rpb24gYWRkRWRpdCh0ZXh0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KSB7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yICYmICghcmFuZ2UgfHwgc3RhcnRPZmZzZXQgPCByYW5nZUVuZCAmJiBlbmRPZmZzZXQgPiByYW5nZVN0YXJ0KSAmJiBkb2N1bWVudFRleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpICE9PSB0ZXh0KSB7CiAgICAgICAgICAgIGVkaXRPcGVyYXRpb25zLnB1c2goewogICAgICAgICAgICAgIG9mZnNldDogc3RhcnRPZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoOiBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCwKICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgZmlyc3RUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICBhZGRFZGl0KHJlcGVhdDIoZW9sLCBudW1iZXJMaW5lQnJlYWtzKSwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIGlmIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGxldCBpbml0aWFsSW5kZW50ID0gaW5kZW50VmFsdWUubGVuZ3RoICogaW5pdGlhbEluZGVudExldmVsIDwgMjAgJiYgb3B0aW9ucy5pbnNlcnRTcGFjZXMgPyBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzW2luZGVudFZhbHVlLmxlbmd0aCAqIGluaXRpYWxJbmRlbnRMZXZlbF0gOiByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwpOwogICAgICAgICAgYWRkRWRpdChpbml0aWFsSW5kZW50LCBmb3JtYXRUZXh0U3RhcnQsIGZpcnN0VG9rZW5TdGFydCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICBsZXQgc2Vjb25kVG9rZW4gPSBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IHJlcGxhY2VDb250ZW50ID0gIiI7CiAgICAgICAgICBsZXQgbmVlZHNMaW5lQnJlYWsgPSBmYWxzZTsKICAgICAgICAgIHdoaWxlIChudW1iZXJMaW5lQnJlYWtzID09PSAwICYmIChzZWNvbmRUb2tlbiA9PT0gMTIgfHwgc2Vjb25kVG9rZW4gPT09IDEzKSkgewogICAgICAgICAgICBsZXQgY29tbWVudFRva2VuU3RhcnQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIGFkZEVkaXQoCiAgICAgICAgICAgICAgc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXSwKICAgICAgICAgICAgICBmaXJzdFRva2VuRW5kLAogICAgICAgICAgICAgIGNvbW1lbnRUb2tlblN0YXJ0CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIG5lZWRzTGluZUJyZWFrID0gc2Vjb25kVG9rZW4gPT09IDEyOwogICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5lZWRzTGluZUJyZWFrID8gbmV3TGluZXNBbmRJbmRlbnQoKSA6ICIiOwogICAgICAgICAgICBzZWNvbmRUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2Vjb25kVG9rZW4gPT09IDIpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4gIT09IDEpIHsKICAgICAgICAgICAgICBpbmRlbnRMZXZlbC0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMgJiYgZmlyc3RUb2tlbiAhPT0gMSkgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRUb2tlbiA9PT0gNCkgewogICAgICAgICAgICBpZiAoZmlyc3RUb2tlbiAhPT0gMykgewogICAgICAgICAgICAgIGluZGVudExldmVsLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcyAmJiBmaXJzdFRva2VuICE9PSAzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua2VlcExpbmVzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzd2l0Y2ggKGZpcnN0VG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgaW5kZW50TGV2ZWwrKzsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMpIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5rZWVwTGluZXMgJiYgbnVtYmVyTGluZUJyZWFrcyA+IDApIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbmVlZHNMaW5lQnJlYWspIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuID09PSA2ICYmICFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICgoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykgJiYgIW5lZWRzTGluZUJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuICE9PSA1ICYmIHNlY29uZFRva2VuICE9PSAxNykgewogICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCAmJiAoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykpIHsKICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWNvbmRUb2tlbiA9PT0gMTcpIHsKICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gb3B0aW9ucy5pbnNlcnRGaW5hbE5ld2xpbmUgPyBlb2wgOiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2Vjb25kVG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGFkZEVkaXQocmVwbGFjZUNvbnRlbnQsIGZpcnN0VG9rZW5FbmQsIHNlY29uZFRva2VuU3RhcnQpOwogICAgICAgICAgZmlyc3RUb2tlbiA9IHNlY29uZFRva2VuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZWRpdE9wZXJhdGlvbnM7CiAgICAgIH0KICAgICAgZXhwb3J0czMuZm9ybWF0ID0gZm9ybWF0OwogICAgICBmdW5jdGlvbiByZXBlYXQyKHMsIGNvdW50KSB7CiAgICAgICAgbGV0IHJlc3VsdCA9ICIiOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgcmVzdWx0ICs9IHM7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcHV0ZUluZGVudExldmVsKGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBsZXQgaSA9IDA7CiAgICAgICAgbGV0IG5DaGFycyA9IDA7CiAgICAgICAgY29uc3QgdGFiU2l6ZSA9IG9wdGlvbnMudGFiU2l6ZSB8fCA0OwogICAgICAgIHdoaWxlIChpIDwgY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgIGxldCBjaCA9IGNvbnRlbnQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdKSB7CiAgICAgICAgICAgIG5DaGFycysrOwogICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gIgkiKSB7CiAgICAgICAgICAgIG5DaGFycyArPSB0YWJTaXplOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiBNYXRoLmZsb29yKG5DaGFycyAvIHRhYlNpemUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEVPTChvcHRpb25zLCB0ZXh0KSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBjb25zdCBjaCA9IHRleHQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSAiXHIiKSB7CiAgICAgICAgICAgIGlmIChpICsgMSA8IHRleHQubGVuZ3RoICYmIHRleHQuY2hhckF0KGkgKyAxKSA9PT0gIlxuIikgewogICAgICAgICAgICAgIHJldHVybiAiXHJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJcciI7CiAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAiXG4iKSB7CiAgICAgICAgICAgIHJldHVybiAiXG4iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVvbCB8fCAiXG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRU9MKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiIuaW5kZXhPZih0ZXh0LmNoYXJBdChvZmZzZXQpKSAhPT0gLTE7CiAgICAgIH0KICAgICAgZXhwb3J0czMuaXNFT0wgPSBpc0VPTDsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzCnZhciByZXF1aXJlX3BhcnNlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIHNjYW5uZXJfMSA9IHJlcXVpcmVfc2Nhbm5lcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9zY2FubmVyIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5maW5kTm9kZUF0T2Zmc2V0ID0gZXhwb3J0czMuY29udGFpbnMgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IGV4cG9ydHMzLnBhcnNlVHJlZSA9IGV4cG9ydHMzLnBhcnNlID0gZXhwb3J0czMuZ2V0TG9jYXRpb24gPSB2b2lkIDA7CiAgICAgIHZhciBQYXJzZU9wdGlvbnM7CiAgICAgIChmdW5jdGlvbihQYXJzZU9wdGlvbnMyKSB7CiAgICAgICAgUGFyc2VPcHRpb25zMi5ERUZBVUxUID0gewogICAgICAgICAgYWxsb3dUcmFpbGluZ0NvbW1hOiBmYWxzZQogICAgICAgIH07CiAgICAgIH0pKFBhcnNlT3B0aW9ucyB8fCAoUGFyc2VPcHRpb25zID0ge30pKTsKICAgICAgZnVuY3Rpb24gZ2V0TG9jYXRpb24odGV4dCwgcG9zaXRpb24pIHsKICAgICAgICBjb25zdCBzZWdtZW50cyA9IFtdOwogICAgICAgIGNvbnN0IGVhcmx5UmV0dXJuRXhjZXB0aW9uID0gbmV3IE9iamVjdCgpOwogICAgICAgIGxldCBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlSW5zdCA9IHsKICAgICAgICAgIHZhbHVlOiB7fSwKICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgcGFyZW50OiB2b2lkIDAKICAgICAgICB9OwogICAgICAgIGxldCBpc0F0UHJvcGVydHlLZXkgPSBmYWxzZTsKICAgICAgICBmdW5jdGlvbiBzZXRQcmV2aW91c05vZGUodmFsdWUsIG9mZnNldCwgbGVuZ3RoLCB0eXBlMikgewogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICBwcmV2aW91c05vZGVJbnN0Lmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICAgIHByZXZpb3VzTm9kZUluc3QudHlwZSA9IHR5cGUyOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5jb2xvbk9mZnNldCA9IHZvaWQgMDsKICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZUluc3Q7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICB2aXNpdCh0ZXh0LCB7CiAgICAgICAgICAgIG9uT2JqZWN0QmVnaW46IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gcG9zaXRpb24gPiBvZmZzZXQ7CiAgICAgICAgICAgICAgc2VnbWVudHMucHVzaCgiIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZShuYW1lLCBvZmZzZXQsIGxlbmd0aCwgInByb3BlcnR5Iik7CiAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSBuYW1lOwogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQgKyBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25PYmplY3RFbmQ6IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgc2VnbWVudHMucG9wKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQXJyYXlCZWdpbjogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKDApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcHJldmlvdXNOb2RlID0gdm9pZCAwOwogICAgICAgICAgICAgIHNlZ21lbnRzLnBvcCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZTogKHZhbHVlLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZSh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgsIGdldE5vZGVUeXBlKHZhbHVlKSk7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCArIGxlbmd0aCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBvblNlcGFyYXRvcjogKHNlcCwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHNlcCA9PT0gIjoiICYmIHByZXZpb3VzTm9kZSAmJiBwcmV2aW91c05vZGUudHlwZSA9PT0gInByb3BlcnR5IikgewogICAgICAgICAgICAgICAgcHJldmlvdXNOb2RlLmNvbG9uT2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0ID09PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgICBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA9IGxhc3QgKyAxOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlICE9PSBlYXJseVJldHVybkV4Y2VwdGlvbikgewogICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgcGF0aDogc2VnbWVudHMsCiAgICAgICAgICBwcmV2aW91c05vZGUsCiAgICAgICAgICBpc0F0UHJvcGVydHlLZXksCiAgICAgICAgICBtYXRjaGVzOiAocGF0dGVybikgPT4gewogICAgICAgICAgICBsZXQgayA9IDA7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBrIDwgcGF0dGVybi5sZW5ndGggJiYgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgaWYgKHBhdHRlcm5ba10gPT09IHNlZ21lbnRzW2ldIHx8IHBhdHRlcm5ba10gPT09ICIqIikgewogICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0dGVybltrXSAhPT0gIioqIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gayA9PT0gcGF0dGVybi5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IGdldExvY2F0aW9uOwogICAgICBmdW5jdGlvbiBwYXJzZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSBbXTsKICAgICAgICBjb25zdCBwcmV2aW91c1BhcmVudHMgPSBbXTsKICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlKSB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50UGFyZW50KSkgewogICAgICAgICAgICBjdXJyZW50UGFyZW50LnB1c2godmFsdWUpOwogICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UHJvcGVydHkgIT09IG51bGwpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudFtjdXJyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZpc2l0b3IgPSB7CiAgICAgICAgICBvbk9iamVjdEJlZ2luOiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHt9OwogICAgICAgICAgICBvblZhbHVlKG9iamVjdCk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb2JqZWN0OwogICAgICAgICAgICBjdXJyZW50UHJvcGVydHkgPSBudWxsOwogICAgICAgICAgfSwKICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lKSA9PiB7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG5hbWU7CiAgICAgICAgICB9LAogICAgICAgICAgb25PYmplY3RFbmQ6ICgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHByZXZpb3VzUGFyZW50cy5wb3AoKTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5QmVnaW46ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBbXTsKICAgICAgICAgICAgb25WYWx1ZShhcnJheSk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gYXJyYXk7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUVuZDogKCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcHJldmlvdXNQYXJlbnRzLnBvcCgpOwogICAgICAgICAgfSwKICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlOiBvblZhbHVlLAogICAgICAgICAgb25FcnJvcjogKGVycm9yLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICBlcnJvcnMucHVzaCh7IGVycm9yLCBvZmZzZXQsIGxlbmd0aCB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZpc2l0KHRleHQsIHZpc2l0b3IsIG9wdGlvbnMpOwogICAgICAgIHJldHVybiBjdXJyZW50UGFyZW50WzBdOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlID0gcGFyc2U7CiAgICAgIGZ1bmN0aW9uIHBhcnNlVHJlZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgb2Zmc2V0OiAtMSwKICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICBjaGlsZHJlbjogW10sCiAgICAgICAgICBwYXJlbnQ6IHZvaWQgMAogICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gZW5zdXJlUHJvcGVydHlDb21wbGV0ZShlbmRPZmZzZXQpIHsKICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBlbmRPZmZzZXQgLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlTm9kZSkgewogICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHZhbHVlTm9kZSk7CiAgICAgICAgICByZXR1cm4gdmFsdWVOb2RlOwogICAgICAgIH0KICAgICAgICBjb25zdCB2aXNpdG9yID0gewogICAgICAgICAgb25PYmplY3RCZWdpbjogKG9mZnNldCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdFByb3BlcnR5OiAobmFtZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgICAgICB2YWx1ZTogbmFtZSwKICAgICAgICAgICAgICBvZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoLAogICAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhcmVudAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdEVuZDogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGVuc3VyZVByb3BlcnR5Q29tcGxldGUob2Zmc2V0ICsgbGVuZ3RoKTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUJlZ2luOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25MaXRlcmFsVmFsdWU6ICh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogZ2V0Tm9kZVR5cGUodmFsdWUpLAogICAgICAgICAgICAgIG9mZnNldCwKICAgICAgICAgICAgICBsZW5ndGgsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25TZXBhcmF0b3I6IChzZXAsIG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgICBpZiAoc2VwID09PSAiOiIpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuY29sb25PZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgZW5zdXJlUHJvcGVydHlDb21wbGV0ZShvZmZzZXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIG9uRXJyb3I6IChlcnJvciwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgZXJyb3JzLnB1c2goeyBlcnJvciwgb2Zmc2V0LCBsZW5ndGggfSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zKTsKICAgICAgICBjb25zdCByZXN1bHQgPSBjdXJyZW50UGFyZW50LmNoaWxkcmVuWzBdOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIGRlbGV0ZSByZXN1bHQucGFyZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlVHJlZTsKICAgICAgZnVuY3Rpb24gZmluZE5vZGVBdExvY2F0aW9uKHJvb3QsIHBhdGgpIHsKICAgICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGxldCBub2RlID0gcm9vdDsKICAgICAgICBmb3IgKGxldCBzZWdtZW50IG9mIHBhdGgpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKG5vZGUudHlwZSAhPT0gIm9iamVjdCIgfHwgIUFycmF5LmlzQXJyYXkobm9kZS5jaGlsZHJlbikpIHsKICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Tm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOb2RlLmNoaWxkcmVuKSAmJiBwcm9wZXJ0eU5vZGUuY2hpbGRyZW5bMF0udmFsdWUgPT09IHNlZ21lbnQgJiYgcHJvcGVydHlOb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMikgewogICAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZS5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzZWdtZW50OwogICAgICAgICAgICBpZiAobm9kZS50eXBlICE9PSAiYXJyYXkiIHx8IGluZGV4IDwgMCB8fCAhQXJyYXkuaXNBcnJheShub2RlLmNoaWxkcmVuKSB8fCBpbmRleCA+PSBub2RlLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5baW5kZXhdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBmaW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGZ1bmN0aW9uIGdldE5vZGVQYXRoKG5vZGUpIHsKICAgICAgICBpZiAoIW5vZGUucGFyZW50IHx8ICFub2RlLnBhcmVudC5jaGlsZHJlbikgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoID0gZ2V0Tm9kZVBhdGgobm9kZS5wYXJlbnQpOwogICAgICAgIGlmIChub2RlLnBhcmVudC50eXBlID09PSAicHJvcGVydHkiKSB7CiAgICAgICAgICBjb25zdCBrZXkgPSBub2RlLnBhcmVudC5jaGlsZHJlblswXS52YWx1ZTsKICAgICAgICAgIHBhdGgucHVzaChrZXkpOwogICAgICAgIH0gZWxzZSBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gImFycmF5IikgewogICAgICAgICAgY29uc3QgaW5kZXggPSBub2RlLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKG5vZGUpOwogICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBwYXRoLnB1c2goaW5kZXgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcGF0aDsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGdldE5vZGVQYXRoOwogICAgICBmdW5jdGlvbiBnZXROb2RlVmFsdWUobm9kZSkgewogICAgICAgIHN3aXRjaCAobm9kZS50eXBlKSB7CiAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLm1hcChnZXROb2RlVmFsdWUpOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgY29uc3Qgb2JqID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICAgIGZvciAobGV0IHByb3Agb2Ygbm9kZS5jaGlsZHJlbikgewogICAgICAgICAgICAgIGNvbnN0IHZhbHVlTm9kZSA9IHByb3AuY2hpbGRyZW5bMV07CiAgICAgICAgICAgICAgaWYgKHZhbHVlTm9kZSkgewogICAgICAgICAgICAgICAgb2JqW3Byb3AuY2hpbGRyZW5bMF0udmFsdWVdID0gZ2V0Tm9kZVZhbHVlKHZhbHVlTm9kZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVZhbHVlID0gZ2V0Tm9kZVZhbHVlOwogICAgICBmdW5jdGlvbiBjb250YWlucyhub2RlLCBvZmZzZXQsIGluY2x1ZGVSaWdodEJvdW5kID0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gb2Zmc2V0ID49IG5vZGUub2Zmc2V0ICYmIG9mZnNldCA8IG5vZGUub2Zmc2V0ICsgbm9kZS5sZW5ndGggfHwgaW5jbHVkZVJpZ2h0Qm91bmQgJiYgb2Zmc2V0ID09PSBub2RlLm9mZnNldCArIG5vZGUubGVuZ3RoOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmNvbnRhaW5zID0gY29udGFpbnM7CiAgICAgIGZ1bmN0aW9uIGZpbmROb2RlQXRPZmZzZXQobm9kZSwgb2Zmc2V0LCBpbmNsdWRlUmlnaHRCb3VuZCA9IGZhbHNlKSB7CiAgICAgICAgaWYgKGNvbnRhaW5zKG5vZGUsIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpKSB7CiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGggJiYgY2hpbGRyZW5baV0ub2Zmc2V0IDw9IG9mZnNldDsgaSsrKSB7CiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZpbmROb2RlQXRPZmZzZXQoY2hpbGRyZW5baV0sIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpOwogICAgICAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBmaW5kTm9kZUF0T2Zmc2V0OwogICAgICBmdW5jdGlvbiB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zID0gUGFyc2VPcHRpb25zLkRFRkFVTFQpIHsKICAgICAgICBjb25zdCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCwgZmFsc2UpOwogICAgICAgIGNvbnN0IF9qc29uUGF0aCA9IFtdOwogICAgICAgIGxldCBzdXBwcmVzc2VkQ2FsbGJhY2tzID0gMDsKICAgICAgICBmdW5jdGlvbiB0b05vQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKQogICAgICAgICAgKSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvT25lQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoYXJnKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIGFyZywKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydExpbmUoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpCiAgICAgICAgICApIDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0RnVuY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB2aXNpdEZ1bmN0aW9uID8gKGFyZykgPT4gc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCAmJiB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICBhcmcsCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKSwKICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICkgOiAoKSA9PiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB0b0JlZ2luVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MrKzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBsZXQgY2JSZXR1cm4gPSB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0TGluZSgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpLAogICAgICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChjYlJldHVybiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MgPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvRW5kVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCkgewogICAgICAgICAgICAgIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlbk9mZnNldCgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0Q2hhcmFjdGVyKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9IDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgb25PYmplY3RCZWdpbiA9IHRvQmVnaW5WaXNpdCh2aXNpdG9yLm9uT2JqZWN0QmVnaW4pLCBvbk9iamVjdFByb3BlcnR5ID0gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0b3Iub25PYmplY3RQcm9wZXJ0eSksIG9uT2JqZWN0RW5kID0gdG9FbmRWaXNpdCh2aXNpdG9yLm9uT2JqZWN0RW5kKSwgb25BcnJheUJlZ2luID0gdG9CZWdpblZpc2l0KHZpc2l0b3Iub25BcnJheUJlZ2luKSwgb25BcnJheUVuZCA9IHRvRW5kVmlzaXQodmlzaXRvci5vbkFycmF5RW5kKSwgb25MaXRlcmFsVmFsdWUgPSB0b09uZUFyZ1Zpc2l0V2l0aFBhdGgodmlzaXRvci5vbkxpdGVyYWxWYWx1ZSksIG9uU2VwYXJhdG9yID0gdG9PbmVBcmdWaXNpdCh2aXNpdG9yLm9uU2VwYXJhdG9yKSwgb25Db21tZW50ID0gdG9Ob0FyZ1Zpc2l0KHZpc2l0b3Iub25Db21tZW50KSwgb25FcnJvciA9IHRvT25lQXJnVmlzaXQodmlzaXRvci5vbkVycm9yKTsKICAgICAgICBjb25zdCBkaXNhbGxvd0NvbW1lbnRzID0gb3B0aW9ucyAmJiBvcHRpb25zLmRpc2FsbG93Q29tbWVudHM7CiAgICAgICAgY29uc3QgYWxsb3dUcmFpbGluZ0NvbW1hID0gb3B0aW9ucyAmJiBvcHRpb25zLmFsbG93VHJhaWxpbmdDb21tYTsKICAgICAgICBmdW5jdGlvbiBzY2FuTmV4dCgpIHsKICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gX3NjYW5uZXIuc2NhbigpOwogICAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuRXJyb3IoKSkgewogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNAogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkVW5pY29kZSAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNQogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkRXNjYXBlQ2hhcmFjdGVyICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICAgIDEzCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZk51bWJlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIGlmICghZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMQogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQgKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5VbmV4cGVjdGVkRW5kT2ZTdHJpbmcgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgLyogUGFyc2VFcnJvckNvZGUuSW52YWxpZENoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgICBpZiAoZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMAogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRDb21tZW50VG9rZW4gKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIG9uQ29tbWVudCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRTeW1ib2wgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yLCBza2lwVW50aWxBZnRlciA9IFtdLCBza2lwVW50aWwgPSBbXSkgewogICAgICAgICAgb25FcnJvcihlcnJvcik7CiAgICAgICAgICBpZiAoc2tpcFVudGlsQWZ0ZXIubGVuZ3RoICsgc2tpcFVudGlsLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGV0IHRva2VuID0gX3NjYW5uZXIuZ2V0VG9rZW4oKTsKICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9PSAxNykgewogICAgICAgICAgICAgIGlmIChza2lwVW50aWxBZnRlci5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBVbnRpbC5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0b2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoaXNWYWx1ZSkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBfc2Nhbm5lci5nZXRUb2tlblZhbHVlKCk7CiAgICAgICAgICBpZiAoaXNWYWx1ZSkgewogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbk9iamVjdFByb3BlcnR5KHZhbHVlKTsKICAgICAgICAgICAgX2pzb25QYXRoLnB1c2godmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUxpdGVyYWwoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjb25zdCB0b2tlblZhbHVlID0gX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpOwogICAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcih0b2tlblZhbHVlKTsKICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkTnVtYmVyRm9ybWF0ICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdmFsdWUgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZShudWxsKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlKHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgb25MaXRlcmFsVmFsdWUoZmFsc2UpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eSgpIHsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxMCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAzLAogICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICA1CiAgICAgICAgICAgICAgICAvKiBTeW50YXhLaW5kLkNvbW1hVG9rZW4gKi8KICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcnNlU3RyaW5nKGZhbHNlKTsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA2KSB7CiAgICAgICAgICAgIG9uU2VwYXJhdG9yKCI6Iik7CiAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgNQogICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgX2pzb25QYXRoLnBvcCgpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0KCkgewogICAgICAgICAgb25PYmplY3RCZWdpbigpOwogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMiAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAyICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZWVkc0NvbW1hID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9uT2JqZWN0RW5kKCk7CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMikgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFjZVRva2VuICovCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBbXQogICAgICAgICAgICApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUFycmF5KCkgewogICAgICAgICAgb25BcnJheUJlZ2luKCk7CiAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IGlzRmlyc3RFbGVtZW50ID0gdHJ1ZTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA0ICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICAgIF9qc29uUGF0aC5wdXNoKDApOwogICAgICAgICAgICAgIGlzRmlyc3RFbGVtZW50ID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX2pzb25QYXRoW19qc29uUGF0aC5sZW5ndGggLSAxXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgb25BcnJheUVuZCgpOwogICAgICAgICAgaWYgKCFpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICBfanNvblBhdGgucG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDQKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFja2V0VG9rZW4gKi8KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFtdCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlVmFsdWUoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIHJldHVybiBwYXJzZUFycmF5KCk7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3QoKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmcodHJ1ZSk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAxNykgewogICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dFbXB0eUNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBoYW5kbGVFcnJvcig0LCBbXSwgW10pOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoIXBhcnNlVmFsdWUoKSkgewogICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKF9zY2FubmVyLmdldFRva2VuKCkgIT09IDE3KSB7CiAgICAgICAgICBoYW5kbGVFcnJvcig5LCBbXSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBleHBvcnRzMy52aXNpdCA9IHZpc2l0OwogICAgICBmdW5jdGlvbiBzdHJpcENvbW1lbnRzKHRleHQsIHJlcGxhY2VDaCkgewogICAgICAgIGxldCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCksIHBhcnRzID0gW10sIGtpbmQsIG9mZnNldCA9IDAsIHBvczsKICAgICAgICBkbyB7CiAgICAgICAgICBwb3MgPSBfc2Nhbm5lci5nZXRQb3NpdGlvbigpOwogICAgICAgICAga2luZCA9IF9zY2FubmVyLnNjYW4oKTsKICAgICAgICAgIHN3aXRjaCAoa2luZCkgewogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IHBvcykgewogICAgICAgICAgICAgICAgcGFydHMucHVzaCh0ZXh0LnN1YnN0cmluZyhvZmZzZXQsIHBvcykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocmVwbGFjZUNoICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpLnJlcGxhY2UoL1teXHJcbl0vZywgcmVwbGFjZUNoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG9mZnNldCA9IF9zY2FubmVyLmdldFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoa2luZCAhPT0gMTcpOwogICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCIiKTsKICAgICAgfQogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gc3RyaXBDb21tZW50czsKICAgICAgZnVuY3Rpb24gZ2V0Tm9kZVR5cGUodmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICByZXR1cm4gIm51bWJlciI7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICByZXR1cm4gInN0cmluZyI7CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgICByZXR1cm4gIm51bGwiOwogICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgICAgICAgcmV0dXJuICJhcnJheSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJvYmplY3QiOwogICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBnZXROb2RlVHlwZTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvZWRpdC5qcwp2YXIgcmVxdWlyZV9lZGl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9lZGl0LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgcGFyc2VyXzEgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9mb3JtYXQiLCAiLi9wYXJzZXIiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5pc1dTID0gZXhwb3J0czMuYXBwbHlFZGl0ID0gZXhwb3J0czMuc2V0UHJvcGVydHkgPSBleHBvcnRzMy5yZW1vdmVQcm9wZXJ0eSA9IHZvaWQgMDsKICAgICAgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHkodGV4dCwgcGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBzZXRQcm9wZXJ0eSh0ZXh0LCBwYXRoLCB2b2lkIDAsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnJlbW92ZVByb3BlcnR5ID0gcmVtb3ZlUHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5KHRleHQsIG9yaWdpbmFsUGF0aCwgdmFsdWUsIG9wdGlvbnMpIHsKICAgICAgICBjb25zdCBwYXRoID0gb3JpZ2luYWxQYXRoLnNsaWNlKCk7CiAgICAgICAgY29uc3QgZXJyb3JzID0gW107CiAgICAgICAgY29uc3Qgcm9vdCA9ICgwLCBwYXJzZXJfMS5wYXJzZVRyZWUpKHRleHQsIGVycm9ycyk7CiAgICAgICAgbGV0IHBhcmVudCA9IHZvaWQgMDsKICAgICAgICBsZXQgbGFzdFNlZ21lbnQgPSB2b2lkIDA7CiAgICAgICAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCkgewogICAgICAgICAgbGFzdFNlZ21lbnQgPSBwYXRoLnBvcCgpOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocm9vdCwgcGF0aCk7CiAgICAgICAgICBpZiAocGFyZW50ID09PSB2b2lkIDAgJiYgdmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RTZWdtZW50ID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgIHZhbHVlID0geyBbbGFzdFNlZ21lbnRdOiB2YWx1ZSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgZGVsZXRlIGluIGVtcHR5IGRvY3VtZW50Iik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcoCiAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBvZmZzZXQ6IHJvb3QgPyByb290Lm9mZnNldCA6IDAsCiAgICAgICAgICAgICAgbGVuZ3RoOiByb290ID8gcm9vdC5sZW5ndGggOiAwLAogICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHZhbHVlKQogICAgICAgICAgICB9LAogICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICApOwogICAgICAgIH0gZWxzZSBpZiAocGFyZW50LnR5cGUgPT09ICJvYmplY3QiICYmIHR5cGVvZiBsYXN0U2VnbWVudCA9PT0gInN0cmluZyIgJiYgQXJyYXkuaXNBcnJheShwYXJlbnQuY2hpbGRyZW4pKSB7CiAgICAgICAgICBjb25zdCBleGlzdGluZyA9ICgwLCBwYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHBhcmVudCwgW2xhc3RTZWdtZW50XSk7CiAgICAgICAgICBpZiAoZXhpc3RpbmcgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGlmICghZXhpc3RpbmcucGFyZW50KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBU1QiKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlJbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKGV4aXN0aW5nLnBhcmVudCk7CiAgICAgICAgICAgICAgbGV0IHJlbW92ZUJlZ2luOwogICAgICAgICAgICAgIGxldCByZW1vdmVFbmQgPSBleGlzdGluZy5wYXJlbnQub2Zmc2V0ICsgZXhpc3RpbmcucGFyZW50Lmxlbmd0aDsKICAgICAgICAgICAgICBpZiAocHJvcGVydHlJbmRleCA+IDApIHsKICAgICAgICAgICAgICAgIGxldCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltwcm9wZXJ0eUluZGV4IC0gMV07CiAgICAgICAgICAgICAgICByZW1vdmVCZWdpbiA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmVtb3ZlQmVnaW4gPSBwYXJlbnQub2Zmc2V0ICsgMTsKICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHBhcmVudC5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgICAgcmVtb3ZlRW5kID0gbmV4dC5vZmZzZXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZygKICAgICAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIG9mZnNldDogcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogcmVtb3ZlRW5kIC0gcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKAogICAgICAgICAgICAgICAgdGV4dCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBleGlzdGluZy5vZmZzZXQsCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogZXhpc3RpbmcubGVuZ3RoLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeShsYXN0U2VnbWVudCl9OiAke0pTT04uc3RyaW5naWZ5KAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICl9YDsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBvcHRpb25zLmdldEluc2VydGlvbkluZGV4ID8gb3B0aW9ucy5nZXRJbnNlcnRpb25JbmRleCgKICAgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ubWFwKChwKSA9PiBwLmNoaWxkcmVuWzBdLnZhbHVlKQogICAgICAgICAgICApIDogcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5baW5kZXggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGVkaXQgPSB7IG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsIGxlbmd0aDogMCwgY29udGVudDogbmV3UHJvcGVydHkgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQudHlwZSA9PT0gImFycmF5IiAmJiB0eXBlb2YgbGFzdFNlZ21lbnQgPT09ICJudW1iZXIiICYmIEFycmF5LmlzQXJyYXkocGFyZW50LmNoaWxkcmVuKSkgewogICAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgIGlmIChpbnNlcnRJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwgbGVuZ3RoOiAwLCBjb250ZW50OiBuZXdQcm9wZXJ0eSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpOwogICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdm9pZCAwICYmIHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPj0gMCkgewogICAgICAgICAgICBjb25zdCByZW1vdmFsSW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4XTsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsCiAgICAgICAgICAgICAgICBsZW5ndGg6IHBhcmVudC5sZW5ndGggLSAyLAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxID09PSByZW1vdmFsSW5kZXgpIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4IC0gMV07CiAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICBsZXQgcGFyZW50RW5kT2Zmc2V0ID0gcGFyZW50Lm9mZnNldCArIHBhcmVudC5sZW5ndGg7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0LCBsZW5ndGg6IHBhcmVudEVuZE9mZnNldCAtIDIgLSBvZmZzZXQsIGNvbnRlbnQ6ICIiIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgbGVuZ3RoOiBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4ICsgMV0ub2Zmc2V0IC0gdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZyh0ZXh0LCBlZGl0LCBvcHRpb25zKTsKICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBsZXQgZWRpdDsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA+IGxhc3RTZWdtZW50KSB7CiAgICAgICAgICAgICAgY29uc3QgdG9Nb2RpZnkgPSBwYXJlbnQuY2hpbGRyZW5bbGFzdFNlZ21lbnRdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRvTW9kaWZ5Lm9mZnNldCwKICAgICAgICAgICAgICAgIGxlbmd0aDogdG9Nb2RpZnkubGVuZ3RoLAogICAgICAgICAgICAgICAgY29udGVudDogbmV3UHJvcGVydHkKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgfHwgbGFzdFNlZ21lbnQgPT09IDApIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgPyBuZXdQcm9wZXJ0eSA6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGxhc3RTZWdtZW50ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA/IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggOiBsYXN0U2VnbWVudDsKICAgICAgICAgICAgICBjb25zdCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltpbmRleCAtIDFdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aCwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIsIiArIG5ld1Byb3BlcnR5CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYENhbiBub3QgJHt2YWx1ZSA9PT0gdm9pZCAwID8gInJlbW92ZSIgOiBvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gPyAiaW5zZXJ0IiA6ICJtb2RpZnkifSBBcnJheSBpbmRleCAke2luc2VydEluZGV4fSBhcyBsZW5ndGggaXMgbm90IHN1ZmZpY2llbnRgCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbiBub3QgYWRkICR7dHlwZW9mIGxhc3RTZWdtZW50ICE9PSAibnVtYmVyIiA/ICJpbmRleCIgOiAicHJvcGVydHkifSB0byBwYXJlbnQgb2YgdHlwZSAke3BhcmVudC50eXBlfWAKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGV4cG9ydHMzLnNldFByb3BlcnR5ID0gc2V0UHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpIHsKICAgICAgICBpZiAoIW9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMpIHsKICAgICAgICAgIHJldHVybiBbZWRpdF07CiAgICAgICAgfQogICAgICAgIGxldCBuZXdUZXh0ID0gYXBwbHlFZGl0KHRleHQsIGVkaXQpOwogICAgICAgIGxldCBiZWdpbiA9IGVkaXQub2Zmc2V0OwogICAgICAgIGxldCBlbmQgPSBlZGl0Lm9mZnNldCArIGVkaXQuY29udGVudC5sZW5ndGg7CiAgICAgICAgaWYgKGVkaXQubGVuZ3RoID09PSAwIHx8IGVkaXQuY29udGVudC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHdoaWxlIChiZWdpbiA+IDAgJiYgISgwLCBmb3JtYXRfMS5pc0VPTCkobmV3VGV4dCwgYmVnaW4gLSAxKSkgewogICAgICAgICAgICBiZWdpbi0tOwogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGVuZCA8IG5ld1RleHQubGVuZ3RoICYmICEoMCwgZm9ybWF0XzEuaXNFT0wpKG5ld1RleHQsIGVuZCkpIHsKICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRzID0gKDAsIGZvcm1hdF8xLmZvcm1hdCkoCiAgICAgICAgICBuZXdUZXh0LAogICAgICAgICAgeyBvZmZzZXQ6IGJlZ2luLCBsZW5ndGg6IGVuZCAtIGJlZ2luIH0sCiAgICAgICAgICB7IC4uLm9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMsIGtlZXBMaW5lczogZmFsc2UgfQogICAgICAgICk7CiAgICAgICAgZm9yIChsZXQgaSA9IGVkaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICBjb25zdCBlZGl0MiA9IGVkaXRzW2ldOwogICAgICAgICAgbmV3VGV4dCA9IGFwcGx5RWRpdChuZXdUZXh0LCBlZGl0Mik7CiAgICAgICAgICBiZWdpbiA9IE1hdGgubWluKGJlZ2luLCBlZGl0Mi5vZmZzZXQpOwogICAgICAgICAgZW5kID0gTWF0aC5tYXgoZW5kLCBlZGl0Mi5vZmZzZXQgKyBlZGl0Mi5sZW5ndGgpOwogICAgICAgICAgZW5kICs9IGVkaXQyLmNvbnRlbnQubGVuZ3RoIC0gZWRpdDIubGVuZ3RoOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0TGVuZ3RoID0gdGV4dC5sZW5ndGggLSAobmV3VGV4dC5sZW5ndGggLSBlbmQpIC0gYmVnaW47CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgb2Zmc2V0OiBiZWdpbiwKICAgICAgICAgICAgbGVuZ3RoOiBlZGl0TGVuZ3RoLAogICAgICAgICAgICBjb250ZW50OiBuZXdUZXh0LnN1YnN0cmluZyhiZWdpbiwgZW5kKQogICAgICAgICAgfQogICAgICAgIF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXBwbHlFZGl0KHRleHQsIGVkaXQpIHsKICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgZWRpdC5vZmZzZXQpICsgZWRpdC5jb250ZW50ICsgdGV4dC5zdWJzdHJpbmcoZWRpdC5vZmZzZXQgKyBlZGl0Lmxlbmd0aCk7CiAgICAgIH0KICAgICAgZXhwb3J0czMuYXBwbHlFZGl0ID0gYXBwbHlFZGl0OwogICAgICBmdW5jdGlvbiBpc1dTKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiAJIi5pbmRleE9mKHRleHQuY2hhckF0KG9mZnNldCkpICE9PSAtMTsKICAgICAgfQogICAgICBleHBvcnRzMy5pc1dTID0gaXNXUzsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMKdmFyIHJlcXVpcmVfbWFpbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgZm9ybWF0dGVyID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgZWRpdCA9IHJlcXVpcmVfZWRpdCgpOwogICAgdmFyIHNjYW5uZXIgPSByZXF1aXJlX3NjYW5uZXIoKTsKICAgIHZhciBwYXJzZXIgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWwogICAgICAgICAgInJlcXVpcmUiLAogICAgICAgICAgImV4cG9ydHMiLAogICAgICAgICAgIi4vaW1wbC9mb3JtYXQiLAogICAgICAgICAgIi4vaW1wbC9lZGl0IiwKICAgICAgICAgICIuL2ltcGwvc2Nhbm5lciIsCiAgICAgICAgICAiLi9pbXBsL3BhcnNlciIKICAgICAgICBdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLmFwcGx5RWRpdHMgPSBleHBvcnRzMy5tb2RpZnkgPSBleHBvcnRzMy5mb3JtYXQgPSBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBleHBvcnRzMy5wYXJzZVRyZWUgPSBleHBvcnRzMy5wYXJzZSA9IGV4cG9ydHMzLmdldExvY2F0aW9uID0gZXhwb3J0czMuU3ludGF4S2luZCA9IGV4cG9ydHMzLlNjYW5FcnJvciA9IGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSB2b2lkIDA7CiAgICAgIGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSBzY2FubmVyLmNyZWF0ZVNjYW5uZXI7CiAgICAgIHZhciBTY2FuRXJyb3I7CiAgICAgIChmdW5jdGlvbihTY2FuRXJyb3IyKSB7CiAgICAgICAgU2NhbkVycm9yMltTY2FuRXJyb3IyWyJOb25lIl0gPSAwXSA9ICJOb25lIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiXSA9IDFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mU3RyaW5nIl0gPSAyXSA9ICJVbmV4cGVjdGVkRW5kT2ZTdHJpbmciOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAzXSA9ICJVbmV4cGVjdGVkRW5kT2ZOdW1iZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZFVuaWNvZGUiXSA9IDRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiXSA9IDVdID0gIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZENoYXJhY3RlciJdID0gNl0gPSAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgIH0pKFNjYW5FcnJvciB8fCAoZXhwb3J0czMuU2NhbkVycm9yID0gU2NhbkVycm9yID0ge30pKTsKICAgICAgdmFyIFN5bnRheEtpbmQ7CiAgICAgIChmdW5jdGlvbihTeW50YXhLaW5kMikgewogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJPcGVuQnJhY2VUb2tlbiJdID0gMV0gPSAiT3BlbkJyYWNlVG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNlVG9rZW4iXSA9IDJdID0gIkNsb3NlQnJhY2VUb2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk9wZW5CcmFja2V0VG9rZW4iXSA9IDNdID0gIk9wZW5CcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNrZXRUb2tlbiJdID0gNF0gPSAiQ2xvc2VCcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDb21tYVRva2VuIl0gPSA1XSA9ICJDb21tYVRva2VuIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiQ29sb25Ub2tlbiJdID0gNl0gPSAiQ29sb25Ub2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk51bGxLZXl3b3JkIl0gPSA3XSA9ICJOdWxsS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRydWVLZXl3b3JkIl0gPSA4XSA9ICJUcnVlS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkZhbHNlS2V5d29yZCJdID0gOV0gPSAiRmFsc2VLZXl3b3JkIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiU3RyaW5nTGl0ZXJhbCJdID0gMTBdID0gIlN0cmluZ0xpdGVyYWwiOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJOdW1lcmljTGl0ZXJhbCJdID0gMTFdID0gIk51bWVyaWNMaXRlcmFsIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiTGluZUNvbW1lbnRUcml2aWEiXSA9IDEyXSA9ICJMaW5lQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkJsb2NrQ29tbWVudFRyaXZpYSJdID0gMTNdID0gIkJsb2NrQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkxpbmVCcmVha1RyaXZpYSJdID0gMTRdID0gIkxpbmVCcmVha1RyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRyaXZpYSJdID0gMTVdID0gIlRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlVua25vd24iXSA9IDE2XSA9ICJVbmtub3duIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiRU9GIl0gPSAxN10gPSAiRU9GIjsKICAgICAgfSkoU3ludGF4S2luZCB8fCAoZXhwb3J0czMuU3ludGF4S2luZCA9IFN5bnRheEtpbmQgPSB7fSkpOwogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IHBhcnNlci5nZXRMb2NhdGlvbjsKICAgICAgZXhwb3J0czMucGFyc2UgPSBwYXJzZXIucGFyc2U7CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlci5wYXJzZVRyZWU7CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IHBhcnNlci5maW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBwYXJzZXIuZmluZE5vZGVBdE9mZnNldDsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVBhdGggPSBwYXJzZXIuZ2V0Tm9kZVBhdGg7CiAgICAgIGV4cG9ydHMzLmdldE5vZGVWYWx1ZSA9IHBhcnNlci5nZXROb2RlVmFsdWU7CiAgICAgIGV4cG9ydHMzLnZpc2l0ID0gcGFyc2VyLnZpc2l0OwogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gcGFyc2VyLnN0cmlwQ29tbWVudHM7CiAgICAgIHZhciBQYXJzZUVycm9yQ29kZTsKICAgICAgKGZ1bmN0aW9uKFBhcnNlRXJyb3JDb2RlMikgewogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWRTeW1ib2wiXSA9IDFdID0gIkludmFsaWRTeW1ib2wiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWROdW1iZXJGb3JtYXQiXSA9IDJdID0gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlByb3BlcnR5TmFtZUV4cGVjdGVkIl0gPSAzXSA9ICJQcm9wZXJ0eU5hbWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVmFsdWVFeHBlY3RlZCJdID0gNF0gPSAiVmFsdWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29sb25FeHBlY3RlZCJdID0gNV0gPSAiQ29sb25FeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29tbWFFeHBlY3RlZCJdID0gNl0gPSAiQ29tbWFFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ2xvc2VCcmFjZUV4cGVjdGVkIl0gPSA3XSA9ICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkNsb3NlQnJhY2tldEV4cGVjdGVkIl0gPSA4XSA9ICJDbG9zZUJyYWNrZXRFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiRW5kT2ZGaWxlRXhwZWN0ZWQiXSA9IDldID0gIkVuZE9mRmlsZUV4cGVjdGVkIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkQ29tbWVudFRva2VuIl0gPSAxMF0gPSAiSW52YWxpZENvbW1lbnRUb2tlbiI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mQ29tbWVudCJdID0gMTFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyJdID0gMTJdID0gIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAxM10gPSAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkVW5pY29kZSJdID0gMTRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIl0gPSAxNV0gPSAiSW52YWxpZEVzY2FwZUNoYXJhY3RlciI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiSW52YWxpZENoYXJhY3RlciJdID0gMTZdID0gIkludmFsaWRDaGFyYWN0ZXIiOwogICAgICB9KShQYXJzZUVycm9yQ29kZSB8fCAoZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBQYXJzZUVycm9yQ29kZSA9IHt9KSk7CiAgICAgIGZ1bmN0aW9uIHByaW50UGFyc2VFcnJvckNvZGUoY29kZSkgewogICAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRTeW1ib2wiOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZXR1cm4gIlByb3BlcnR5TmFtZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuICJWYWx1ZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcmV0dXJuICJDb2xvbkV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgcmV0dXJuICJDb21tYUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgcmV0dXJuICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gIkNsb3NlQnJhY2tldEV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgcmV0dXJuICJFbmRPZkZpbGVFeHBlY3RlZCI7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRDb21tZW50VG9rZW4iOwogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgcmV0dXJuICJVbmV4cGVjdGVkRW5kT2ZDb21tZW50IjsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mU3RyaW5nIjsKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZFVuaWNvZGUiOwogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIjsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAiPHVua25vd24gUGFyc2VFcnJvckNvZGU+IjsKICAgICAgfQogICAgICBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gcHJpbnRQYXJzZUVycm9yQ29kZTsKICAgICAgZnVuY3Rpb24gZm9ybWF0KGRvY3VtZW50VGV4dCwgcmFuZ2UsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5mb3JtYXQgPSBmb3JtYXQ7CiAgICAgIGZ1bmN0aW9uIG1vZGlmeSh0ZXh0LCBwYXRoLCB2YWx1ZSwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBlZGl0LnNldFByb3BlcnR5KHRleHQsIHBhdGgsIHZhbHVlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5tb2RpZnkgPSBtb2RpZnk7CiAgICAgIGZ1bmN0aW9uIGFwcGx5RWRpdHModGV4dCwgZWRpdHMpIHsKICAgICAgICBsZXQgc29ydGVkRWRpdHMgPSBlZGl0cy5zbGljZSgwKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICBjb25zdCBkaWZmID0gYS5vZmZzZXQgLSBiLm9mZnNldDsKICAgICAgICAgIGlmIChkaWZmID09PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCAtIGIubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGRpZmY7CiAgICAgICAgfSk7CiAgICAgICAgbGV0IGxhc3RNb2RpZmllZE9mZnNldCA9IHRleHQubGVuZ3RoOwogICAgICAgIGZvciAobGV0IGkgPSBzb3J0ZWRFZGl0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgbGV0IGUgPSBzb3J0ZWRFZGl0c1tpXTsKICAgICAgICAgIGlmIChlLm9mZnNldCArIGUubGVuZ3RoIDw9IGxhc3RNb2RpZmllZE9mZnNldCkgewogICAgICAgICAgICB0ZXh0ID0gZWRpdC5hcHBseUVkaXQodGV4dCwgZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk92ZXJsYXBwaW5nIGVkaXQiKTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNb2RpZmllZE9mZnNldCA9IGUub2Zmc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGV4dDsKICAgICAgfQogICAgICBleHBvcnRzMy5hcHBseUVkaXRzID0gYXBwbHlFZGl0czsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanMKdmFyIHJlcXVpcmVfbWV0YWRhdGEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi9tZXRhZGF0YS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZU1ldGFkYXRhID0gZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IHZvaWQgMDsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IFN5bWJvbC5mb3IoIkBhbmd1bGFyL2NvcmU6d29ya3NwYWNlLWpzb24iKTsKICAgIGZ1bmN0aW9uIGVzY2FwZUtleShrZXkpIHsKICAgICAgcmV0dXJuIGtleS5yZXBsYWNlKCJ+IiwgIn4wIikucmVwbGFjZSgiLyIsICJ+MSIpOwogICAgfQogICAgdmFyIEpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IGNsYXNzIHsKICAgICAgZmlsZVBhdGg7CiAgICAgIGFzdDsKICAgICAgcmF3OwogICAgICBjaGFuZ2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgaGFzTGVnYWN5VGFyZ2V0c05hbWUgPSB0cnVlOwogICAgICBjb25zdHJ1Y3RvcihmaWxlUGF0aCwgYXN0LCByYXcpIHsKICAgICAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7CiAgICAgICAgdGhpcy5hc3QgPSBhc3Q7CiAgICAgICAgdGhpcy5yYXcgPSByYXc7CiAgICAgIH0KICAgICAgZ2V0IGhhc0NoYW5nZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplID4gMDsKICAgICAgfQogICAgICBnZXQgY2hhbmdlQ291bnQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplOwogICAgICB9CiAgICAgIGdldE5vZGVWYWx1ZUZyb21Bc3QocGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSAoMCwganNvbmNfcGFyc2VyXzEuZmluZE5vZGVBdExvY2F0aW9uKSh0aGlzLmFzdCwgcGF0aCk7CiAgICAgICAgcmV0dXJuIG5vZGUgJiYgKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkobm9kZSk7CiAgICAgIH0KICAgICAgZmluZENoYW5nZXNGb3JQYXRoKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VzLmdldChwYXRoKTsKICAgICAgfQogICAgICBhZGRDaGFuZ2UoanNvblBhdGgsIHZhbHVlLCB0eXBlMikgewogICAgICAgIGxldCBjdXJyZW50UGF0aCA9ICIiOwogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBqc29uUGF0aC5sZW5ndGggLSAxOyBpbmRleCsrKSB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IGN1cnJlbnRQYXRoICsgIi8iICsgZXNjYXBlS2V5KGpzb25QYXRoW2luZGV4XSk7CiAgICAgICAgICBpZiAodGhpcy5jaGFuZ2VzLmhhcyhjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoS2V5ID0gIi8iICsganNvblBhdGgubWFwKChrKSA9PiBlc2NhcGVLZXkoaykpLmpvaW4oIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmNoYW5nZXMua2V5cygpKSB7CiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgocGF0aEtleSArICIvIikpIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmRlbGV0ZShrZXkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLmNoYW5nZXMuc2V0KHBhdGhLZXksIHsganNvblBhdGgsIHR5cGU6IHR5cGUyLCB2YWx1ZSB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IEpzb25Xb3Jrc3BhY2VNZXRhZGF0YTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcwp2YXIgcmVxdWlyZV91dGlsaXRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlVmlydHVhbEFzdE9iamVjdCA9IGNyZWF0ZVZpcnR1YWxBc3RPYmplY3Q7CiAgICB2YXIganNvbl8xID0gcmVxdWlyZV9qc29uKCk7CiAgICBmdW5jdGlvbiBjcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KHJvb3QsIG9wdGlvbnMgPSB7fSkgewogICAgICBjb25zdCByZXBvcnRlciA9IChwYXRoLCB0YXJnZXQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT4gewogICAgICAgIGlmICghb3B0aW9ucy5saXN0ZW5lcikgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlIHx8IEpTT04uc3RyaW5naWZ5KG9sZFZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3VmFsdWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aC5zbGljZSgwLCAtMSksIHRhcmdldCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aCwgbmV3VmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIGNyZWF0ZShBcnJheS5pc0FycmF5KHJvb3QpID8gWy4uLnJvb3RdIDogeyAuLi5yb290IH0sIFtdLCByZXBvcnRlciwgbmV3IFNldChvcHRpb25zLmV4Y2x1ZGUpLCBvcHRpb25zLmluY2x1ZGU/Lmxlbmd0aCA/IG5ldyBTZXQob3B0aW9ucy5pbmNsdWRlKSA6IHZvaWQgMCk7CiAgICB9CiAgICBmdW5jdGlvbiBjcmVhdGUob2JqLCBwYXRoLCByZXBvcnRlciwgZXhjbHVkZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLCBpbmNsdWRlZCkgewogICAgICByZXR1cm4gbmV3IFByb3h5KG9iaiwgewogICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcCk7CiAgICAgICAgfSwKICAgICAgICBoYXModGFyZ2V0LCBwKSB7CiAgICAgICAgICBpZiAodHlwZW9mIHAgPT09ICJzeW1ib2wiIHx8IGV4Y2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwKTsKICAgICAgICB9LAogICAgICAgIGdldCh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIGpzb25fMS5pc0pzb25PYmplY3QpKHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gY3JlYXRlKHZhbHVlLCBbLi4ucGF0aCwgcF0sIHJlcG9ydGVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNldCh0YXJnZXQsIHAsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoZXhjbHVkZWQuaGFzKHApIHx8IGluY2x1ZGVkICYmICFpbmNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlUHJvcGVydHk/Lih0YXJnZXQsIHApID8/IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcCk7CiAgICAgICAgICBpZiAoUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSkpIHsKICAgICAgICAgICAgcmVwb3J0ZXIoWy4uLnBhdGgsIHBdLCB0YXJnZXQsIGV4aXN0aW5nVmFsdWUsIHZhbHVlKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSwKICAgICAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZSh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwKSkgewogICAgICAgICAgICByZXBvcnRlcihbLi4ucGF0aCwgcF0sIHRhcmdldCwgZXhpc3RpbmdWYWx1ZSwgdm9pZCAwKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9LAogICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgcCwgYXR0cmlidXRlcykgewogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHAsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0sCiAgICAgICAgb3duS2V5cyh0YXJnZXQpIHsKICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KS5maWx0ZXIoKHApID0+ICFleGNsdWRlZC5oYXMocCkgJiYgKCFpbmNsdWRlZCB8fCBpbmNsdWRlZC5oYXMocCkpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcHJvcGVydHkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc0Zpbml0ZSgrcHJvcGVydHkpKSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFsrcHJvcGVydHldOwogICAgICB9CiAgICAgIGlmICh0YXJnZXQgJiYgcHJvcGVydHkgaW4gdGFyZ2V0KSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CiAgICAgIH0KICAgICAgcmV0dXJuIHZvaWQgMDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcwp2YXIgcmVxdWlyZV9yZWFkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVhZEpzb25Xb3Jrc3BhY2UgPSByZWFkSnNvbldvcmtzcGFjZTsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgZGVmaW5pdGlvbnNfMSA9IHJlcXVpcmVfZGVmaW5pdGlvbnMoKTsKICAgIHZhciBtZXRhZGF0YV8xID0gcmVxdWlyZV9tZXRhZGF0YTIoKTsKICAgIHZhciB1dGlsaXRpZXNfMSA9IHJlcXVpcmVfdXRpbGl0aWVzKCk7CiAgICB2YXIgQU5HVUxBUl9XT1JLU1BBQ0VfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAibmV3UHJvamVjdFJvb3QiLCAic2NoZW1hdGljcyJdKTsKICAgIHZhciBBTkdVTEFSX1BST0pFQ1RfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAic2NoZW1hdGljcyIsICJwcm9qZWN0VHlwZSIsICJpMThuIl0pOwogICAgYXN5bmMgZnVuY3Rpb24gcmVhZEpzb25Xb3Jrc3BhY2UocGF0aCwgaG9zdCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGhvc3QucmVhZEZpbGUocGF0aCk7CiAgICAgIGlmIChyYXcgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHJlYWQgd29ya3NwYWNlIGZpbGUuIik7CiAgICAgIH0KICAgICAgY29uc3QgYXN0ID0gKDAsIGpzb25jX3BhcnNlcl8xLnBhcnNlVHJlZSkocmF3LCB2b2lkIDAsIHsgYWxsb3dUcmFpbGluZ0NvbW1hOiB0cnVlLCBkaXNhbGxvd0NvbW1lbnRzOiBmYWxzZSB9KTsKICAgICAgaWYgKGFzdD8udHlwZSAhPT0gIm9iamVjdCIgfHwgIWFzdC5jaGlsZHJlbikgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCB3b3Jrc3BhY2UgZmlsZSAtIGV4cGVjdGVkIEpTT04gb2JqZWN0LiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb25Ob2RlID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikoYXN0LCBbInZlcnNpb24iXSk7CiAgICAgIGlmICghdmVyc2lvbk5vZGUpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZm9ybWF0IC0gdmVyc2lvbiBzcGVjaWZpZXIgbm90IGZvdW5kLiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uTm9kZS52YWx1ZTsKICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZm9ybWF0IHZlcnNpb24gZGV0ZWN0ZWQgLSBFeHBlY3RlZDpbIDEgXSBGb3VuZDogWyAke3ZlcnNpb259IF1gKTsKICAgICAgfQogICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgIGhvc3QsCiAgICAgICAgbWV0YWRhdGE6IG5ldyBtZXRhZGF0YV8xLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YShwYXRoLCBhc3QsIHJhdyksCiAgICAgICAgdHJhY2tDaGFuZ2VzOiB0cnVlLAogICAgICAgIHVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICAgICAuLi5BTkdVTEFSX1dPUktTUEFDRV9FWFRFTlNJT05TLAogICAgICAgICAgLi4ub3B0aW9ucy5hbGxvd2VkV29ya3NwYWNlRXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIHVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9uczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWwogICAgICAgICAgLi4uQU5HVUxBUl9QUk9KRUNUX0VYVEVOU0lPTlMsCiAgICAgICAgICAuLi5vcHRpb25zLmFsbG93ZWRQcm9qZWN0RXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIGVycm9yKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgfSwKICAgICAgICB3YXJuKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7CiAgICAgICAgfQogICAgICB9OwogICAgICBjb25zdCB3b3Jrc3BhY2UgPSBwYXJzZVdvcmtzcGFjZShhc3QsIGNvbnRleHQpOwogICAgICByZXR1cm4gd29ya3NwYWNlOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VXb3Jrc3BhY2Uod29ya3NwYWNlTm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgcHJvamVjdHM7CiAgICAgIGxldCBleHRlbnNpb25zOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICB9CiAgICAgIGNvbnN0IHdvcmtzcGFjZU5vZGVWYWx1ZSA9ICgwLCBqc29uY19wYXJzZXJfMS5nZXROb2RlVmFsdWUpKHdvcmtzcGFjZU5vZGUpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod29ya3NwYWNlTm9kZVZhbHVlKSkgewogICAgICAgIGlmIChuYW1lID09PSAiJHNjaGVtYSIgfHwgbmFtZSA9PT0gInZlcnNpb24iKSB7CiAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAicHJvamVjdHMiKSB7CiAgICAgICAgICBjb25zdCBub2RlcyA9ICgwLCBqc29uY19wYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHdvcmtzcGFjZU5vZGUsIFsicHJvamVjdHMiXSk7CiAgICAgICAgICBpZiAoISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkodmFsdWUpIHx8ICFub2RlcykgewogICAgICAgICAgICBjb250ZXh0LmVycm9yKCdJbnZhbGlkICJwcm9qZWN0cyIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC4nLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHJvamVjdHMgPSBwYXJzZVByb2plY3RzT2JqZWN0KG5vZGVzLCBjb250ZXh0KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zLmhhcyhuYW1lKSAmJiAhL15bYS16XXsxLDN9LS4qLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICAgIGNvbnRleHQud2FybihgV29ya3NwYWNlIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkgZm91bmQuYCwgbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXh0ZW5zaW9ucykgewogICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSkgPT4gewogICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgbmFtZV0sIG5ld1ZhbHVlLCAicHJvamVjdCIpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgY29uc3QgcHJvamVjdENvbGxlY3Rpb24gPSBuZXcgZGVmaW5pdGlvbnNfMS5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24ocHJvamVjdHMsIGNvbGxlY3Rpb25MaXN0ZW5lcik7CiAgICAgIHJldHVybiB7CiAgICAgICAgW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF06IGpzb25NZXRhZGF0YSwKICAgICAgICBwcm9qZWN0czogcHJvamVjdENvbGxlY3Rpb24sCiAgICAgICAgLy8gSWYgbm90IHRyYWNraW5nIGNoYW5nZXMgdGhlIGBleHRlbnNpb25zYCB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhlIHBhcnNlZAogICAgICAgIC8vIHZhbHVlcy4gIE90aGVyd2lzZSB0aGUgZXh0ZW5zaW9ucyBhcmUgdHJhY2tlZCB2aWEgYSB2aXJ0dWFsIEFTVCBvYmplY3QuCiAgICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyA/PyAoMCwgdXRpbGl0aWVzXzEuY3JlYXRlVmlydHVhbEFzdE9iamVjdCkod29ya3NwYWNlTm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbIiRzY2hlbWEiLCAidmVyc2lvbiIsICJwcm9qZWN0cyJdLAogICAgICAgICAgbGlzdGVuZXIocGF0aCwgdmFsdWUpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShwYXRoLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlUHJvamVjdHNPYmplY3QocHJvamVjdHNOb2RlLCBjb250ZXh0KSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcygoMCwganNvbmNfcGFyc2VyXzEuZ2V0Tm9kZVZhbHVlKShwcm9qZWN0c05vZGUpKSkgewogICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdHNOb2RlLCBbbmFtZV0pOwogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICBjb250ZXh0Lndhcm4oIlNraXBwaW5nIGludmFsaWQgcHJvamVjdCB2YWx1ZTsgZXhwZWN0ZWQgYW4gb2JqZWN0LiIsIHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBwcm9qZWN0c1tuYW1lXSA9IHBhcnNlUHJvamVjdChuYW1lLCBub2RlcywgY29udGV4dCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHByb2plY3RzOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0Tm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgdGFyZ2V0czsKICAgICAgbGV0IGhhc1RhcmdldHMgPSBmYWxzZTsKICAgICAgbGV0IGV4dGVuc2lvbnM7CiAgICAgIGxldCBwcm9wZXJ0aWVzOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIHByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgfQogICAgICBjb25zdCBwcm9qZWN0Tm9kZVZhbHVlID0gKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkocHJvamVjdE5vZGUpOwogICAgICBpZiAoISgicm9vdCIgaW4gcHJvamVjdE5vZGVWYWx1ZSkpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2plY3QgIiR7cHJvamVjdE5hbWV9IiBpcyBtaXNzaW5nIGEgcmVxdWlyZWQgcHJvcGVydHkgInJvb3QiLmApOwogICAgICB9CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9qZWN0Tm9kZVZhbHVlKSkgewogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICBjYXNlICJhcmNoaXRlY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdE5vZGUsIFtuYW1lXSk7CiAgICAgICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICAgICAgY29udGV4dC5lcnJvcihgSW52YWxpZCAiJHtuYW1lfSIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC5gLCB2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGFzVGFyZ2V0cyA9IHRydWU7CiAgICAgICAgICAgIHRhcmdldHMgPSBwYXJzZVRhcmdldHNPYmplY3QocHJvamVjdE5hbWUsIG5vZGVzLCBjb250ZXh0KTsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmhhc0xlZ2FjeVRhcmdldHNOYW1lID0gbmFtZSA9PT0gImFyY2hpdGVjdCI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgY2FzZSAic291cmNlUm9vdCI6CiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgY29udGV4dC53YXJuKGBQcm9qZWN0IHByb3BlcnR5ICIke25hbWV9IiBzaG91bGQgYmUgYSBzdHJpbmcuYCwgdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9ucy5oYXMobmFtZSkgJiYgIS9eW2Etel17MSwzfS0uKi8udGVzdChuYW1lKSkgewogICAgICAgICAgICAgIGNvbnRleHQud2FybihgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nIGNvbnRhaW5zIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkuYCwgbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKICAgICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSwgY29sbGVjdGlvbikgPT4gewogICAgICAgICAgaWYgKGhhc1RhcmdldHMpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgcHJvamVjdE5hbWUsICJ0YXJnZXRzIiwgbmFtZV0sIG5ld1ZhbHVlLCAidGFyZ2V0Iik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgInRhcmdldHMiXSwgY29sbGVjdGlvbiwgInRhcmdldGNvbGxlY3Rpb24iKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0IGJhc2UgPSB7CiAgICAgICAgdGFyZ2V0czogbmV3IGRlZmluaXRpb25zXzEuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24odGFyZ2V0cywgY29sbGVjdGlvbkxpc3RlbmVyKSwKICAgICAgICAvLyBJZiBub3QgdHJhY2tpbmcgY2hhbmdlcyB0aGUgYGV4dGVuc2lvbnNgIHZhcmlhYmxlIHdpbGwgY29udGFpbiB0aGUgcGFyc2VkCiAgICAgICAgLy8gdmFsdWVzLiAgT3RoZXJ3aXNlIHRoZSBleHRlbnNpb25zIGFyZSB0cmFja2VkIHZpYSBhIHZpcnR1YWwgQVNUIG9iamVjdC4KICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbImFyY2hpdGVjdCIsICJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgInRhcmdldHMiXSwKICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAuLi5wYXRoXSwgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH07CiAgICAgIGNvbnN0IGJhc2VLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhiYXNlKSk7CiAgICAgIGNvbnN0IHByb2plY3QgPSBwcm9wZXJ0aWVzID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgaW5jbHVkZTogWyJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgLi4uYmFzZUtleXNdLAogICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoIWJhc2VLZXlzLmhhcyhwYXRoWzBdKSkgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgLi4ucGF0aF0sIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9qZWN0LCBiYXNlKTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlVGFyZ2V0c09iamVjdChwcm9qZWN0TmFtZSwgdGFyZ2V0c05vZGUsIGNvbnRleHQpIHsKICAgICAgY29uc3QganNvbk1ldGFkYXRhID0gY29udGV4dC5tZXRhZGF0YTsKICAgICAgY29uc3QgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkodGFyZ2V0c05vZGUpKSkgewogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIGNvbnRleHQud2FybigiU2tpcHBpbmcgaW52YWxpZCB0YXJnZXQgdmFsdWU7IGV4cGVjdGVkIGFuIG9iamVjdC4iLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgICB0YXJnZXRzW25hbWVdID0gKDAsIHV0aWxpdGllc18xLmNyZWF0ZVZpcnR1YWxBc3RPYmplY3QpKHZhbHVlLCB7CiAgICAgICAgICAgIGluY2x1ZGU6IFsiYnVpbGRlciIsICJvcHRpb25zIiwgImNvbmZpZ3VyYXRpb25zIiwgImRlZmF1bHRDb25maWd1cmF0aW9uIl0sCiAgICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlMikgewogICAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAidGFyZ2V0cyIsIG5hbWUsIC4uLnBhdGhdLCB2YWx1ZTIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFyZ2V0c1tuYW1lXSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdGFyZ2V0czsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcwp2YXIgcmVxdWlyZV93cml0ZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVKc29uV29ya3NwYWNlID0gd3JpdGVKc29uV29ya3NwYWNlOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgbm9kZV9vc18xID0gcmVxdWlyZSgibm9kZTpvcyIpOwogICAgdmFyIG1ldGFkYXRhXzEgPSByZXF1aXJlX21ldGFkYXRhMigpOwogICAgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgaG9zdCwgcGF0aCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IG1ldGFkYXRhID0gd29ya3NwYWNlW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF07CiAgICAgIGlmIChtZXRhZGF0YSkgewogICAgICAgIGlmICghbWV0YWRhdGEuaGFzQ2hhbmdlcykgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBkYXRhID0gdXBkYXRlSnNvbldvcmtzcGFjZShtZXRhZGF0YSk7CiAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGVGaWxlKHBhdGggPz8gbWV0YWRhdGEuZmlsZVBhdGgsIGRhdGEpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICghcGF0aCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwYXRoIG9wdGlvbiBpcyByZXF1aXJlZCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBvYmogPSBjb252ZXJ0SnNvbldvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMuc2NoZW1hKTsKICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTsKICAgICAgICByZXR1cm4gaG9zdC53cml0ZUZpbGUocGF0aCwgZGF0YSk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgc2NoZW1hMikgewogICAgICBjb25zdCBvYmogPSB7CiAgICAgICAgJHNjaGVtYTogc2NoZW1hMiB8fCAiLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24iLAogICAgICAgIHZlcnNpb246IDEsCiAgICAgICAgLi4ud29ya3NwYWNlLmV4dGVuc2lvbnMsCiAgICAgICAgLi4uaXNFbXB0eSh3b3Jrc3BhY2UucHJvamVjdHMpID8ge30gOiB7IHByb2plY3RzOiBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHdvcmtzcGFjZS5wcm9qZWN0cykgfQogICAgICB9OwogICAgICByZXR1cm4gb2JqOwogICAgfQogICAgZnVuY3Rpb24gY29udmVydEpzb25Qcm9qZWN0Q29sbGVjdGlvbihjb2xsZWN0aW9uKSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCBwcm9qZWN0XSBvZiBjb2xsZWN0aW9uKSB7CiAgICAgICAgcHJvamVjdHNbcHJvamVjdE5hbWVdID0gY29udmVydEpzb25Qcm9qZWN0KHByb2plY3QpOwogICAgICB9CiAgICAgIHJldHVybiBwcm9qZWN0czsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uUHJvamVjdChwcm9qZWN0KSB7CiAgICAgIGxldCB0YXJnZXRzOwogICAgICBpZiAocHJvamVjdC50YXJnZXRzLnNpemUgPiAwKSB7CiAgICAgICAgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIGZvciAoY29uc3QgW3RhcmdldE5hbWUsIHRhcmdldF0gb2YgcHJvamVjdC50YXJnZXRzKSB7CiAgICAgICAgICB0YXJnZXRzW3RhcmdldE5hbWVdID0gY29udmVydEpzb25UYXJnZXQodGFyZ2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3Qgb2JqID0gewogICAgICAgIC4uLnByb2plY3QuZXh0ZW5zaW9ucywKICAgICAgICByb290OiBwcm9qZWN0LnJvb3QsCiAgICAgICAgLi4ucHJvamVjdC5zb3VyY2VSb290ID09PSB2b2lkIDAgPyB7fSA6IHsgc291cmNlUm9vdDogcHJvamVjdC5zb3VyY2VSb290IH0sCiAgICAgICAgLi4ucHJvamVjdC5wcmVmaXggPT09IHZvaWQgMCA/IHt9IDogeyBwcmVmaXg6IHByb2plY3QucHJlZml4IH0sCiAgICAgICAgLi4udGFyZ2V0cyA9PT0gdm9pZCAwID8ge30gOiB7IGFyY2hpdGVjdDogdGFyZ2V0cyB9CiAgICAgIH07CiAgICAgIHJldHVybiBvYmo7CiAgICB9CiAgICBmdW5jdGlvbiBpc0VtcHR5KG9iaikgewogICAgICByZXR1cm4gb2JqID09PSB2b2lkIDAgfHwgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBidWlsZGVyOiB0YXJnZXQuYnVpbGRlciwKICAgICAgICAuLi5pc0VtcHR5KHRhcmdldC5vcHRpb25zKSA/IHt9IDogeyBvcHRpb25zOiB0YXJnZXQub3B0aW9ucyB9LAogICAgICAgIC4uLmlzRW1wdHkodGFyZ2V0LmNvbmZpZ3VyYXRpb25zKSA/IHt9IDogeyBjb25maWd1cmF0aW9uczogdGFyZ2V0LmNvbmZpZ3VyYXRpb25zIH0sCiAgICAgICAgLi4udGFyZ2V0LmRlZmF1bHRDb25maWd1cmF0aW9uID09PSB2b2lkIDAgPyB7fSA6IHsgZGVmYXVsdENvbmZpZ3VyYXRpb246IHRhcmdldC5kZWZhdWx0Q29uZmlndXJhdGlvbiB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldENvbGxlY3Rpb24oY29sbGVjdGlvbikgewogICAgICBjb25zdCB0YXJnZXRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCB0YXJnZXRdIG9mIGNvbGxlY3Rpb24pIHsKICAgICAgICB0YXJnZXRzW3Byb2plY3ROYW1lXSA9IGNvbnZlcnRKc29uVGFyZ2V0KHRhcmdldCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRhcmdldHM7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpIHsKICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIHN3aXRjaCAodHlwZTIpIHsKICAgICAgICBjYXNlICJwcm9qZWN0IjoKICAgICAgICAgIHJldHVybiBjb252ZXJ0SnNvblByb2plY3QodmFsdWUpOwogICAgICAgIGNhc2UgInByb2plY3Rjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHZhbHVlKTsKICAgICAgICAgIHJldHVybiBpc0VtcHR5KHByb2plY3RzKSA/IHZvaWQgMCA6IHByb2plY3RzOwogICAgICAgIH0KICAgICAgICBjYXNlICJ0YXJnZXQiOgogICAgICAgICAgcmV0dXJuIGNvbnZlcnRKc29uVGFyZ2V0KHZhbHVlKTsKICAgICAgICBjYXNlICJ0YXJnZXRjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnZlcnRKc29uVGFyZ2V0Q29sbGVjdGlvbih2YWx1ZSk7CiAgICAgICAgICByZXR1cm4gaXNFbXB0eSh0YXJnZXRzKSA/IHZvaWQgMCA6IHRhcmdldHM7CiAgICAgICAgfQogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUpzb25Xb3Jrc3BhY2UobWV0YWRhdGEpIHsKICAgICAgbGV0IHsgcmF3OiBjb250ZW50IH0gPSBtZXRhZGF0YTsKICAgICAgY29uc3QgeyBjaGFuZ2VzLCBoYXNMZWdhY3lUYXJnZXRzTmFtZSB9ID0gbWV0YWRhdGE7CiAgICAgIGZvciAoY29uc3QgeyBqc29uUGF0aCwgdmFsdWUsIHR5cGU6IHR5cGUyIH0gb2YgY2hhbmdlcy52YWx1ZXMoKSkgewogICAgICAgIGlmIChoYXNMZWdhY3lUYXJnZXRzTmFtZSAmJiBqc29uUGF0aFsyXSA9PT0gInRhcmdldHMiKSB7CiAgICAgICAgICBqc29uUGF0aFsyXSA9ICJhcmNoaXRlY3QiOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0cyA9ICgwLCBqc29uY19wYXJzZXJfMS5tb2RpZnkpKGNvbnRlbnQsIGpzb25QYXRoLCBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpLCB7CiAgICAgICAgICBmb3JtYXR0aW5nT3B0aW9uczogewogICAgICAgICAgICBpbnNlcnRTcGFjZXM6IHRydWUsCiAgICAgICAgICAgIHRhYlNpemU6IDIsCiAgICAgICAgICAgIGVvbDogZ2V0RU9MKGNvbnRlbnQpCiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgY29udGVudCA9ICgwLCBqc29uY19wYXJzZXJfMS5hcHBseUVkaXRzKShjb250ZW50LCBlZGl0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRFT0woY29udGVudCkgewogICAgICBjb25zdCBDUkxGID0gIlxyXG4iOwogICAgICBjb25zdCBMRiA9ICJcbiI7CiAgICAgIGNvbnN0IG5ld2xpbmVzID0gY29udGVudC5tYXRjaCgvKD86XHI/XG4pL2cpOwogICAgICBpZiAobmV3bGluZXM/Lmxlbmd0aCkgewogICAgICAgIGNvbnN0IGNybGYgPSBuZXdsaW5lcy5maWx0ZXIoKGwpID0+IGwgPT09IENSTEYpLmxlbmd0aDsKICAgICAgICBjb25zdCBsZiA9IG5ld2xpbmVzLmxlbmd0aCAtIGNybGY7CiAgICAgICAgcmV0dXJuIGNybGYgPiBsZiA/IENSTEYgOiBMRjsKICAgICAgfQogICAgICByZXR1cm4gbm9kZV9vc18xLkVPTDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvY29yZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gdm9pZCAwOwogICAgZXhwb3J0czIuX3Rlc3RfYWRkV29ya3NwYWNlRmlsZSA9IF90ZXN0X2FkZFdvcmtzcGFjZUZpbGU7CiAgICBleHBvcnRzMi5fdGVzdF9yZW1vdmVXb3Jrc3BhY2VGaWxlID0gX3Rlc3RfcmVtb3ZlV29ya3NwYWNlRmlsZTsKICAgIGV4cG9ydHMyLnJlYWRXb3Jrc3BhY2UgPSByZWFkV29ya3NwYWNlOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSB3cml0ZVdvcmtzcGFjZTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyKCk7CiAgICB2YXIgd3JpdGVyXzEgPSByZXF1aXJlX3dyaXRlcigpOwogICAgdmFyIGZvcm1hdExvb2t1cCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgdmFyIFdvcmtzcGFjZUZvcm1hdDsKICAgIChmdW5jdGlvbihXb3Jrc3BhY2VGb3JtYXQyKSB7CiAgICAgIFdvcmtzcGFjZUZvcm1hdDJbV29ya3NwYWNlRm9ybWF0MlsiSlNPTiJdID0gMF0gPSAiSlNPTiI7CiAgICB9KShXb3Jrc3BhY2VGb3JtYXQgfHwgKGV4cG9ydHMyLldvcmtzcGFjZUZvcm1hdCA9IFdvcmtzcGFjZUZvcm1hdCA9IHt9KSk7CiAgICBmdW5jdGlvbiBfdGVzdF9hZGRXb3Jrc3BhY2VGaWxlKG5hbWUsIGZvcm1hdCkgewogICAgICB3b3Jrc3BhY2VGaWxlc1tuYW1lXSA9IGZvcm1hdDsKICAgIH0KICAgIGZ1bmN0aW9uIF90ZXN0X3JlbW92ZVdvcmtzcGFjZUZpbGUobmFtZSkgewogICAgICBkZWxldGUgd29ya3NwYWNlRmlsZXNbbmFtZV07CiAgICB9CiAgICB2YXIgd29ya3NwYWNlRmlsZXMgPSB7CiAgICAgICJhbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTiwKICAgICAgIi5hbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTgogICAgfTsKICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2UocGF0aCwgaG9zdCwgZm9ybWF0KSB7CiAgICAgIGlmIChhd2FpdCBob3N0LmlzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgIGZvciAoY29uc3QgW25hbWUsIG5hbWVGb3JtYXRdIG9mIE9iamVjdC5lbnRyaWVzKHdvcmtzcGFjZUZpbGVzKSkgewogICAgICAgICAgaWYgKGZvcm1hdCAhPT0gdm9pZCAwICYmIGZvcm1hdCAhPT0gbmFtZUZvcm1hdCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHBvdGVudGlhbCA9ICgwLCB2aXJ0dWFsX2ZzXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHZpcnR1YWxfZnNfMS5qb2luKShkaXJlY3RvcnksIG5hbWUpKTsKICAgICAgICAgIGlmIChhd2FpdCBob3N0LmlzRmlsZShwb3RlbnRpYWwpKSB7CiAgICAgICAgICAgIHBhdGggPSBwb3RlbnRpYWw7CiAgICAgICAgICAgIGZvcm1hdCA9IG5hbWVGb3JtYXQ7CiAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBhIHdvcmtzcGFjZSBmaWxlIGZvciB3b3Jrc3BhY2UgcGF0aC4gQXJlIHlvdSBtaXNzaW5nIGFuIGBhbmd1bGFyLmpzb25gIG9yIGAuYW5ndWxhci5qc29uYCBmaWxlPyIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IGZpbGVuYW1lID0gKDAsIHZpcnR1YWxfZnNfMS5iYXNlbmFtZSkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgICBpZiAoZmlsZW5hbWUgaW4gd29ya3NwYWNlRmlsZXMpIHsKICAgICAgICAgIGZvcm1hdCA9IHdvcmtzcGFjZUZpbGVzW2ZpbGVuYW1lXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZGV0ZXJtaW5lIGZvcm1hdCBmb3Igd29ya3NwYWNlIHBhdGguIik7CiAgICAgIH0KICAgICAgbGV0IHdvcmtzcGFjZTsKICAgICAgc3dpdGNoIChmb3JtYXQpIHsKICAgICAgICBjYXNlIFdvcmtzcGFjZUZvcm1hdC5KU09OOgogICAgICAgICAgd29ya3NwYWNlID0gYXdhaXQgKDAsIHJlYWRlcl8xLnJlYWRKc29uV29ya3NwYWNlKShwYXRoLCBob3N0KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgICAgZm9ybWF0TG9va3VwLnNldCh3b3Jrc3BhY2UsIFdvcmtzcGFjZUZvcm1hdC5KU09OKTsKICAgICAgcmV0dXJuIHsgd29ya3NwYWNlIH07CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiB3cml0ZVdvcmtzcGFjZSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgsIGZvcm1hdCkgewogICAgICBpZiAoZm9ybWF0ID09PSB2b2lkIDApIHsKICAgICAgICBmb3JtYXQgPSBmb3JtYXRMb29rdXAuZ2V0KHdvcmtzcGFjZSk7CiAgICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkEgZm9ybWF0IGlzIHJlcXVpcmVkIGZvciBjdXN0b20gd29ya3NwYWNlIG9iamVjdHMuIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgICAgY2FzZSBXb3Jrc3BhY2VGb3JtYXQuSlNPTjoKICAgICAgICAgIHJldHVybiAoMCwgd3JpdGVyXzEud3JpdGVKc29uV29ya3NwYWNlKSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgpOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcwp2YXIgcmVxdWlyZV93b3Jrc3BhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSBleHBvcnRzMi5yZWFkV29ya3NwYWNlID0gZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IHZvaWQgMDsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2RlZmluaXRpb25zKCksIGV4cG9ydHMyKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3QyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjcmVhdGVXb3Jrc3BhY2VIb3N0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaG9zdF8xLmNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB9IH0pOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZTMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIldvcmtzcGFjZUZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5Xb3Jrc3BhY2VGb3JtYXQ7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVhZFdvcmtzcGFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5yZWFkV29ya3NwYWNlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndyaXRlV29ya3NwYWNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29yZV8xLndyaXRlV29ya3NwYWNlOwogICAgfSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndvcmtzcGFjZXMgPSBleHBvcnRzMi5sb2dnaW5nID0gZXhwb3J0czIuanNvbiA9IHZvaWQgMDsKICAgIHZhciBqc29uMiA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2pzb24oKSk7CiAgICBleHBvcnRzMi5qc29uID0ganNvbjI7CiAgICB2YXIgbG9nZ2luZyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2xvZ2dlcjIoKSk7CiAgICBleHBvcnRzMi5sb2dnaW5nID0gbG9nZ2luZzsKICAgIHZhciB3b3Jrc3BhY2VzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfd29ya3NwYWNlKCkpOwogICAgZXhwb3J0czIud29ya3NwYWNlcyA9IHdvcmtzcGFjZXM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9leGNlcHRpb24oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfanNvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlsczMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdmlydHVhbF9mcygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanMKdmFyIHJlcXVpcmVfaHRtbF9zZWxlY3RvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9odG1sLXNlbGVjdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgdW5pY29kZVJhbmdlcyA9IFsKICAgICAgWzE5MiwgMjE0XSwKICAgICAgWzIxNiwgMjQ2XSwKICAgICAgWzI0OCwgODkzXSwKICAgICAgWzg5NSwgODE5MV0sCiAgICAgIFs4MjA0LCA4MjA1XSwKICAgICAgWzgyNTUsIDgyNTZdLAogICAgICBbODMwNCwgODU5MV0sCiAgICAgIFsxMTI2NCwgMTIyNzFdLAogICAgICBbMTIyODksIDU1Mjk1XSwKICAgICAgWzYzNzQ0LCA2NDk3NV0sCiAgICAgIFs2NTAwOCwgNjU1MzNdLAogICAgICBbNjU1MzYsIDk4MzAzOV0KICAgIF07CiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudE5hbWUobmFtZSkgewogICAgICBsZXQgcmVnZXggPSAiXlthLXpBLVpdWyI7CiAgICAgIHJlZ2V4ICs9ICItLjAtOV9hLXpBLVpcXHV7Qjd9IjsKICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB1bmljb2RlUmFuZ2VzKSB7CiAgICAgICAgcmVnZXggKz0gYFxcdXske3JhbmdlWzBdLnRvU3RyaW5nKDE2KX19LVxcdXske3JhbmdlWzFdLnRvU3RyaW5nKDE2KX19YDsKICAgICAgfQogICAgICByZWdleCArPSAiXSokIjsKICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsICJ1IikudGVzdChuYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmh0bWxTZWxlY3RvckZvcm1hdCA9IHsKICAgICAgbmFtZTogImh0bWwtc2VsZWN0b3IiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChuYW1lKSA9PiB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIgJiYgaXNWYWxpZEVsZW1lbnROYW1lKG5hbWUpCiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL3BhdGguanMKdmFyIHJlcXVpcmVfcGF0aDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHsKICAgICAgbmFtZTogInBhdGgiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChwYXRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gcGF0aCA9PT0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMKdmFyIHJlcXVpcmVfZm9ybWF0czIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IGV4cG9ydHMyLnBhdGhGb3JtYXQgPSBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgaHRtbF9zZWxlY3Rvcl8xID0gcmVxdWlyZV9odG1sX3NlbGVjdG9yKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoMigpOwogICAgdmFyIGh0bWxfc2VsZWN0b3JfMiA9IHJlcXVpcmVfaHRtbF9zZWxlY3RvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaHRtbFNlbGVjdG9yRm9ybWF0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaHRtbF9zZWxlY3Rvcl8yLmh0bWxTZWxlY3RvckZvcm1hdDsKICAgIH0gfSk7CiAgICB2YXIgcGF0aF8yID0gcmVxdWlyZV9wYXRoMigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGF0aEZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHBhdGhfMi5wYXRoRm9ybWF0OwogICAgfSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IFtodG1sX3NlbGVjdG9yXzEuaHRtbFNlbGVjdG9yRm9ybWF0LCBwYXRoXzEucGF0aEZvcm1hdF07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJlZSA9IGV4cG9ydHMyLlRyZWVTeW1ib2wgPSBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gZXhwb3J0czIuTWVyZ2VTdHJhdGVneSA9IHZvaWQgMDsKICAgIHZhciBNZXJnZVN0cmF0ZWd5MjsKICAgIChmdW5jdGlvbihNZXJnZVN0cmF0ZWd5MykgewogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siQWxsb3dPdmVyd3JpdGVDb25mbGljdCJdID0gMl0gPSAiQWxsb3dPdmVyd3JpdGVDb25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0NyZWF0aW9uQ29uZmxpY3QiXSA9IDRdID0gIkFsbG93Q3JlYXRpb25Db25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0RlbGV0ZUNvbmZsaWN0Il0gPSA4XSA9ICJBbGxvd0RlbGV0ZUNvbmZsaWN0IjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkRlZmF1bHQiXSA9IDBdID0gIkRlZmF1bHQiOwogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siRXJyb3IiXSA9IDFdID0gIkVycm9yIjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkNvbnRlbnRPbmx5Il0gPSAyXSA9ICJDb250ZW50T25seSI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJPdmVyd3JpdGUiXSA9IDE0XSA9ICJPdmVyd3JpdGUiOwogICAgfSkoTWVyZ2VTdHJhdGVneTIgfHwgKGV4cG9ydHMyLk1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5MiA9IHt9KSk7CiAgICBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gU3ltYm9sKCk7CiAgICBleHBvcnRzMi5UcmVlU3ltYm9sID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IGdsb2JhbFN5bWJvbCA9IHR5cGVvZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93LndpbmRvdyA9PT0gd2luZG93ICYmIHdpbmRvdy5TeW1ib2wgfHwgdHlwZW9mIHNlbGYgPT0gIm9iamVjdCIgJiYgc2VsZi5zZWxmID09PSBzZWxmICYmIHNlbGYuU3ltYm9sIHx8IHR5cGVvZiBnbG9iYWwgPT0gIm9iamVjdCIgJiYgZ2xvYmFsLmdsb2JhbCA9PT0gZ2xvYmFsICYmIGdsb2JhbC5TeW1ib2w7CiAgICAgIGlmICghZ2xvYmFsU3ltYm9sKSB7CiAgICAgICAgcmV0dXJuIFN5bWJvbCgic2NoZW1hdGljLXRyZWUiKTsKICAgICAgfQogICAgICBpZiAoIWdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlKSB7CiAgICAgICAgZ2xvYmFsU3ltYm9sLnNjaGVtYXRpY1RyZWUgPSBTeW1ib2woInNjaGVtYXRpYy10cmVlIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlOwogICAgfSgpOwogICAgZXhwb3J0czIuVHJlZSA9IE9iamVjdC5mcmVlemUoewogICAgICBpc1RyZWUobWF5YmVUcmVlKSB7CiAgICAgICAgcmV0dXJuIGV4cG9ydHMyLlRyZWVTeW1ib2wgaW4gbWF5YmVUcmVlOwogICAgICB9CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZXhjZXB0aW9uL2V4Y2VwdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gZXhwb3J0czIuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuU2NoZW1hdGljc0V4Y2VwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIFNjaGVtYXRpY3NFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNzRXhjZXB0aW9uID0gU2NoZW1hdGljc0V4Y2VwdGlvbjsKICAgIHZhciBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgYWxyZWFkeSBleGlzdC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uOwogICAgdmFyIENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgQ29udGVudCBhdCBwYXRoICIke3BhdGh9IiBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiBhbiB1cGRhdGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoYEludmFsaWQgcmVjb3JkIGluc3RhbmNlLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFVwZGF0ZVJlY29yZEV4Y2VwdGlvbiA9IEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb247CiAgICB2YXIgTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYEEgbWVyZ2UgY29uZmxpY3RlZCBvbiBwYXRoICIke3BhdGh9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24gPSBNZXJnZUNvbmZsaWN0RXhjZXB0aW9uOwogICAgdmFyIFVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJXb3JrZmxvdyBkaWQgbm90IGV4ZWN1dGUgc3VjY2Vzc2Z1bGx5LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24gPSBVbnN1Y2Nlc3NmdWxXb3JrZmxvd0V4ZWN1dGlvbjsKICAgIHZhciBVbmltcGxlbWVudGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJUaGlzIGZ1bmN0aW9uIGlzIHVuaW1wbGVtZW50ZWQuIik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VbmltcGxlbWVudGVkRXhjZXB0aW9uID0gVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMKdmFyIHJlcXVpcmVfZGVsZWdhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRlbGVnYXRlVHJlZSA9IHZvaWQgMDsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIERlbGVnYXRlVHJlZSA9IGNsYXNzIHsKICAgICAgX290aGVyOwogICAgICBjb25zdHJ1Y3Rvcihfb3RoZXIpIHsKICAgICAgICB0aGlzLl9vdGhlciA9IF9vdGhlcjsKICAgICAgfQogICAgICBicmFuY2goKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJyYW5jaCgpOwogICAgICB9CiAgICAgIG1lcmdlKG90aGVyLCBzdHJhdGVneSkgewogICAgICAgIHRoaXMuX290aGVyLm1lcmdlKG90aGVyLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnJvb3Q7CiAgICAgIH0KICAgICAgLy8gUmVhZG9ubHkuCiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIHJlYWRUZXh0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIucmVhZFRleHQocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkSnNvbihwYXRoKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgZ2V0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZ2V0KHBhdGgpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmdldERpcihwYXRoKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLm92ZXJ3cml0ZShwYXRoLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJlZ2luVXBkYXRlKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuY29tbWl0VXBkYXRlKHJlY29yZCk7CiAgICAgIH0KICAgICAgLy8gU3RydWN0dXJhbCBtZXRob2RzLgogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuYXBwbHkoYWN0aW9uLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmFjdGlvbnM7CiAgICAgIH0KICAgICAgW2ludGVyZmFjZV8xLlRyZWVTeW1ib2xdKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVsZWdhdGVUcmVlID0gRGVsZWdhdGVUcmVlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcwp2YXIgcmVxdWlyZV9lbnRyeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBTaW1wbGVGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9wYXRoOwogICAgICBfY29udGVudDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2NvbnRlbnQgPSBfY29udGVudDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IFNpbXBsZUZpbGVFbnRyeTsKICAgIHZhciBMYXp5RmlsZUVudHJ5ID0gY2xhc3MgewogICAgICBfcGF0aDsKICAgICAgX2xvYWQ7CiAgICAgIF9jb250ZW50ID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9sb2FkKSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2xvYWQgPSBfbG9hZDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCB8fCAodGhpcy5fY29udGVudCA9IHRoaXMuX2xvYWQodGhpcy5fcGF0aCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IExhenlGaWxlRW50cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0BqcmlkZ2V3ZWxsLXNvdXJjZW1hcC1jb2RlYy1ucG0tMS41LjAtZGZkOTEyNmQ3MS0xMC56aXAvbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9kaXN0L3NvdXJjZW1hcC1jb2RlYy51bWQuanMKdmFyIHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AanJpZGdld2VsbC1zb3VyY2VtYXAtY29kZWMtbnBtLTEuNS4wLWRmZDkxMjZkNzEtMTAuemlwL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvZGlzdC9zb3VyY2VtYXAtY29kZWMudW1kLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGdsb2JhbDIsIGZhY3RvcnkpIHsKICAgICAgdHlwZW9mIGV4cG9ydHMyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMiAhPT0gInVuZGVmaW5lZCIgPyBmYWN0b3J5KGV4cG9ydHMyKSA6IHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbImV4cG9ydHMiXSwgZmFjdG9yeSkgOiAoZ2xvYmFsMiA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiA/IGdsb2JhbFRoaXMgOiBnbG9iYWwyIHx8IHNlbGYsIGZhY3RvcnkoZ2xvYmFsMi5zb3VyY2VtYXBDb2RlYyA9IHt9KSk7CiAgICB9KShleHBvcnRzMiwgZnVuY3Rpb24oZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBjb25zdCBjb21tYSA9ICIsIi5jaGFyQ29kZUF0KDApOwogICAgICBjb25zdCBzZW1pY29sb24gPSAiOyIuY2hhckNvZGVBdCgwKTsKICAgICAgY29uc3QgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgICAgIGNvbnN0IGludFRvQ2hhciA9IG5ldyBVaW50OEFycmF5KDY0KTsKICAgICAgY29uc3QgY2hhclRvSW50ID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGMgPSBjaGFycy5jaGFyQ29kZUF0KGkpOwogICAgICAgIGludFRvQ2hhcltpXSA9IGM7CiAgICAgICAgY2hhclRvSW50W2NdID0gaTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgcmVsYXRpdmUpIHsKICAgICAgICBsZXQgdmFsdWUgPSAwOwogICAgICAgIGxldCBzaGlmdCA9IDA7CiAgICAgICAgbGV0IGludGVnZXIgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IGMgPSByZWFkZXIubmV4dCgpOwogICAgICAgICAgaW50ZWdlciA9IGNoYXJUb0ludFtjXTsKICAgICAgICAgIHZhbHVlIHw9IChpbnRlZ2VyICYgMzEpIDw8IHNoaWZ0OwogICAgICAgICAgc2hpZnQgKz0gNTsKICAgICAgICB9IHdoaWxlIChpbnRlZ2VyICYgMzIpOwogICAgICAgIGNvbnN0IHNob3VsZE5lZ2F0ZSA9IHZhbHVlICYgMTsKICAgICAgICB2YWx1ZSA+Pj49IDE7CiAgICAgICAgaWYgKHNob3VsZE5lZ2F0ZSkgewogICAgICAgICAgdmFsdWUgPSAtMjE0NzQ4MzY0OCB8IC12YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlbGF0aXZlICsgdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5jb2RlSW50ZWdlcihidWlsZGVyLCBudW0sIHJlbGF0aXZlKSB7CiAgICAgICAgbGV0IGRlbHRhID0gbnVtIC0gcmVsYXRpdmU7CiAgICAgICAgZGVsdGEgPSBkZWx0YSA8IDAgPyAtZGVsdGEgPDwgMSB8IDEgOiBkZWx0YSA8PCAxOwogICAgICAgIGRvIHsKICAgICAgICAgIGxldCBjbGFtcGVkID0gZGVsdGEgJiAzMTsKICAgICAgICAgIGRlbHRhID4+Pj0gNTsKICAgICAgICAgIGlmIChkZWx0YSA+IDApCiAgICAgICAgICAgIGNsYW1wZWQgfD0gMzI7CiAgICAgICAgICBidWlsZGVyLndyaXRlKGludFRvQ2hhcltjbGFtcGVkXSk7CiAgICAgICAgfSB3aGlsZSAoZGVsdGEgPiAwKTsKICAgICAgICByZXR1cm4gbnVtOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhc01vcmVWbHEocmVhZGVyLCBtYXgpIHsKICAgICAgICBpZiAocmVhZGVyLnBvcyA+PSBtYXgpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHJlYWRlci5wZWVrKCkgIT09IGNvbW1hOwogICAgICB9CiAgICAgIGNvbnN0IGJ1Zkxlbmd0aCA9IDEwMjQgKiAxNjsKICAgICAgY29uc3QgdGQgPSB0eXBlb2YgVGV4dERlY29kZXIgIT09ICJ1bmRlZmluZWQiID8gLyogQF9fUFVSRV9fICovIG5ldyBUZXh0RGVjb2RlcigpIDogdHlwZW9mIEJ1ZmZlciAhPT0gInVuZGVmaW5lZCIgPyB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgY29uc3Qgb3V0ID0gQnVmZmVyLmZyb20oYnVmLmJ1ZmZlciwgYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlTGVuZ3RoKTsKICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKICAgICAgICB9CiAgICAgIH0gOiB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgbGV0IG91dCA9ICIiOwogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBvdXQ7CiAgICAgICAgfQogICAgICB9OwogICAgICBjbGFzcyBTdHJpbmdXcml0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgICAgdGhpcy5wb3MgPSAwOwogICAgICAgICAgdGhpcy5vdXQgPSAiIjsKICAgICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnVmTGVuZ3RoKTsKICAgICAgICB9CiAgICAgICAgd3JpdGUodikgewogICAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXM7CiAgICAgICAgICBidWZmZXJbdGhpcy5wb3MrK10gPSB2OwogICAgICAgICAgaWYgKHRoaXMucG9zID09PSBidWZMZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5vdXQgKz0gdGQuZGVjb2RlKGJ1ZmZlcik7CiAgICAgICAgICAgIHRoaXMucG9zID0gMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZmx1c2goKSB7CiAgICAgICAgICBjb25zdCB7IGJ1ZmZlciwgb3V0LCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICByZXR1cm4gcG9zID4gMCA/IG91dCArIHRkLmRlY29kZShidWZmZXIuc3ViYXJyYXkoMCwgcG9zKSkgOiBvdXQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNsYXNzIFN0cmluZ1JlYWRlciB7CiAgICAgICAgY29uc3RydWN0b3IoYnVmZmVyKSB7CiAgICAgICAgICB0aGlzLnBvcyA9IDA7CiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IGJ1ZmZlcjsKICAgICAgICB9CiAgICAgICAgbmV4dCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKyspOwogICAgICAgIH0KICAgICAgICBwZWVrKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLmNoYXJDb2RlQXQodGhpcy5wb3MpOwogICAgICAgIH0KICAgICAgICBpbmRleE9mKGNoYXIpIHsKICAgICAgICAgIGNvbnN0IHsgYnVmZmVyLCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICBjb25zdCBpZHggPSBidWZmZXIuaW5kZXhPZihjaGFyLCBwb3MpOwogICAgICAgICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBidWZmZXIubGVuZ3RoIDogaWR4OwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdCBFTVBUWSA9IFtdOwogICAgICBmdW5jdGlvbiBkZWNvZGVPcmlnaW5hbFNjb3BlcyhpbnB1dCkgewogICAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSBpbnB1dDsKICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTsKICAgICAgICBjb25zdCBzY29wZXMgPSBbXTsKICAgICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICAgIGxldCBsaW5lID0gMDsKICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IGxlbmd0aDsgcmVhZGVyLnBvcysrKSB7CiAgICAgICAgICBsaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGxpbmUpOwogICAgICAgICAgY29uc3QgY29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkgewogICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgIGxhc3RbMl0gPSBsaW5lOwogICAgICAgICAgICBsYXN0WzNdID0gY29sdW1uOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtpbmQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBoYXNOYW1lID0gZmllbGRzICYgMTsKICAgICAgICAgIGNvbnN0IHNjb3BlID0gaGFzTmFtZSA/IFtsaW5lLCBjb2x1bW4sIDAsIDAsIGtpbmQsIGRlY29kZUludGVnZXIocmVhZGVyLCAwKV0gOiBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kXTsKICAgICAgICAgIGxldCB2YXJzID0gRU1QVFk7CiAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpIHsKICAgICAgICAgICAgdmFycyA9IFtdOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgY29uc3QgdmFyc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgIHZhcnMucHVzaCh2YXJzSW5kZXgpOwogICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzY29wZS52YXJzID0gdmFyczsKICAgICAgICAgIHNjb3Blcy5wdXNoKHNjb3BlKTsKICAgICAgICAgIHN0YWNrLnB1c2goc2NvcGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NvcGVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVuY29kZU9yaWdpbmFsU2NvcGVzKHNjb3BlcykgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjb3Blcy5sZW5ndGg7ICkgewogICAgICAgICAgaSA9IF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGksIHdyaXRlciwgWzBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKSB7CiAgICAgICAgY29uc3Qgc2NvcGUgPSBzY29wZXNbaW5kZXhdOwogICAgICAgIGNvbnN0IHsgMDogc3RhcnRMaW5lLCAxOiBzdGFydENvbHVtbiwgMjogZW5kTGluZSwgMzogZW5kQ29sdW1uLCA0OiBraW5kLCB2YXJzIH0gPSBzY29wZTsKICAgICAgICBpZiAoaW5kZXggPiAwKQogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzdGFydExpbmUsIHN0YXRlWzBdKTsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc3RhcnRDb2x1bW4sIDApOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBraW5kLCAwKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSBzY29wZS5sZW5ndGggPT09IDYgPyAxIDogMDsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZmllbGRzLCAwKTsKICAgICAgICBpZiAoc2NvcGUubGVuZ3RoID09PSA2KQogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNjb3BlWzVdLCAwKTsKICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFycykgewogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHYsIDApOwogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgc2NvcGVzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gc2NvcGVzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHdyaXRlci53cml0ZShjb21tYSk7CiAgICAgICAgc3RhdGVbMF0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kTGluZSwgc3RhdGVbMF0pOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIDApOwogICAgICAgIHJldHVybiBpbmRleDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVHZW5lcmF0ZWRSYW5nZXMoaW5wdXQpIHsKICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gaW5wdXQ7CiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihpbnB1dCk7CiAgICAgICAgY29uc3QgcmFuZ2VzID0gW107CiAgICAgICAgY29uc3Qgc3RhY2sgPSBbXTsKICAgICAgICBsZXQgZ2VuTGluZSA9IDA7CiAgICAgICAgbGV0IGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSAwOwogICAgICAgIGxldCBkZWZpbml0aW9uU2NvcGVJbmRleCA9IDA7CiAgICAgICAgbGV0IGNhbGxzaXRlU291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVMaW5lID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVDb2x1bW4gPSAwOwogICAgICAgIGxldCBiaW5kaW5nTGluZSA9IDA7CiAgICAgICAgbGV0IGJpbmRpbmdDb2x1bW4gPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgbGV0IGdlbkNvbHVtbiA9IDA7CiAgICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IHNlbWk7IHJlYWRlci5wb3MrKykgewogICAgICAgICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTsKICAgICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHsKICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgbGFzdFsyXSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgbGFzdFszXSA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICAgIGNvbnN0IGhhc0RlZmluaXRpb24gPSBmaWVsZHMgJiAxOwogICAgICAgICAgICBjb25zdCBoYXNDYWxsc2l0ZSA9IGZpZWxkcyAmIDI7CiAgICAgICAgICAgIGNvbnN0IGhhc1Njb3BlID0gZmllbGRzICYgNDsKICAgICAgICAgICAgbGV0IGNhbGxzaXRlID0gbnVsbDsKICAgICAgICAgICAgbGV0IGJpbmRpbmdzID0gRU1QVFk7CiAgICAgICAgICAgIGxldCByYW5nZTsKICAgICAgICAgICAgaWYgKGhhc0RlZmluaXRpb24pIHsKICAgICAgICAgICAgICBjb25zdCBkZWZTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgICAgZGVmaW5pdGlvblNjb3BlSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9PT0gZGVmU291cmNlc0luZGV4ID8gZGVmaW5pdGlvblNjb3BlSW5kZXggOiAwKTsKICAgICAgICAgICAgICBkZWZpbml0aW9uU291cmNlc0luZGV4ID0gZGVmU291cmNlc0luZGV4OwogICAgICAgICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMCwgZGVmU291cmNlc0luZGV4LCBkZWZpbml0aW9uU2NvcGVJbmRleF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmFuZ2UgPSBbZ2VuTGluZSwgZ2VuQ29sdW1uLCAwLCAwXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5pc1Njb3BlID0gISFoYXNTY29wZTsKICAgICAgICAgICAgaWYgKGhhc0NhbGxzaXRlKSB7CiAgICAgICAgICAgICAgY29uc3QgcHJldkNzaSA9IGNhbGxzaXRlU291cmNlc0luZGV4OwogICAgICAgICAgICAgIGNvbnN0IHByZXZMaW5lID0gY2FsbHNpdGVMaW5lOwogICAgICAgICAgICAgIGNhbGxzaXRlU291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGNhbGxzaXRlU291cmNlc0luZGV4KTsKICAgICAgICAgICAgICBjb25zdCBzYW1lU291cmNlID0gcHJldkNzaSA9PT0gY2FsbHNpdGVTb3VyY2VzSW5kZXg7CiAgICAgICAgICAgICAgY2FsbHNpdGVMaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNhbWVTb3VyY2UgPyBjYWxsc2l0ZUxpbmUgOiAwKTsKICAgICAgICAgICAgICBjYWxsc2l0ZUNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzYW1lU291cmNlICYmIHByZXZMaW5lID09PSBjYWxsc2l0ZUxpbmUgPyBjYWxsc2l0ZUNvbHVtbiA6IDApOwogICAgICAgICAgICAgIGNhbGxzaXRlID0gW2NhbGxzaXRlU291cmNlc0luZGV4LCBjYWxsc2l0ZUxpbmUsIGNhbGxzaXRlQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5jYWxsc2l0ZSA9IGNhbGxzaXRlOwogICAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKSB7CiAgICAgICAgICAgICAgYmluZGluZ3MgPSBbXTsKICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICBiaW5kaW5nTGluZSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZ2VuQ29sdW1uOwogICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb3VudCA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTsKICAgICAgICAgICAgICAgIGxldCBleHByZXNzaW9uUmFuZ2VzOwogICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zQ291bnQgPCAtMSkgewogICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzID0gW1tkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldXTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IC0xOyBpID4gZXhwcmVzc2lvbnNDb3VudDsgaS0tKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkJsID0gYmluZGluZ0xpbmU7CiAgICAgICAgICAgICAgICAgICAgYmluZGluZ0xpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUpOwogICAgICAgICAgICAgICAgICAgIGJpbmRpbmdDb2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUgPT09IHByZXZCbCA/IGJpbmRpbmdDb2x1bW4gOiAwKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMucHVzaChbZXhwcmVzc2lvbiwgYmluZGluZ0xpbmUsIGJpbmRpbmdDb2x1bW5dKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZXhwcmVzc2lvbnNDb3VudF1dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYmluZGluZ3MucHVzaChleHByZXNzaW9uUmFuZ2VzKTsKICAgICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJhbmdlLmJpbmRpbmdzID0gYmluZGluZ3M7CiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHJhbmdlKTsKICAgICAgICAgICAgc3RhY2sucHVzaChyYW5nZSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW5MaW5lKys7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8IGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzKSB7CiAgICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IFN0cmluZ1dyaXRlcigpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBpID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGksIHdyaXRlciwgWzAsIDAsIDAsIDAsIDAsIDAsIDBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSkgewogICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICBjb25zdCB7IDA6IHN0YXJ0TGluZSwgMTogc3RhcnRDb2x1bW4sIDI6IGVuZExpbmUsIDM6IGVuZENvbHVtbiwgaXNTY29wZSwgY2FsbHNpdGUsIGJpbmRpbmdzIH0gPSByYW5nZTsKICAgICAgICBpZiAoc3RhdGVbMF0gPCBzdGFydExpbmUpIHsKICAgICAgICAgIGNhdGNodXBMaW5lKHdyaXRlciwgc3RhdGVbMF0sIHN0YXJ0TGluZSk7CiAgICAgICAgICBzdGF0ZVswXSA9IHN0YXJ0TGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgcmFuZ2VbMV0sIHN0YXRlWzFdKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSAocmFuZ2UubGVuZ3RoID09PSA2ID8gMSA6IDApIHwgKGNhbGxzaXRlID8gMiA6IDApIHwgKGlzU2NvcGUgPyA0IDogMCk7CiAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7CiAgICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gNikgewogICAgICAgICAgY29uc3QgeyA0OiBzb3VyY2VzSW5kZXgsIDU6IHNjb3Blc0luZGV4IH0gPSByYW5nZTsKICAgICAgICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzJdKSB7CiAgICAgICAgICAgIHN0YXRlWzNdID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlWzJdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbMl0pOwogICAgICAgICAgc3RhdGVbM10gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVzSW5kZXgsIHN0YXRlWzNdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNhbGxzaXRlKSB7CiAgICAgICAgICBjb25zdCB7IDA6IHNvdXJjZXNJbmRleCwgMTogY2FsbExpbmUsIDI6IGNhbGxDb2x1bW4gfSA9IHJhbmdlLmNhbGxzaXRlOwogICAgICAgICAgaWYgKHNvdXJjZXNJbmRleCAhPT0gc3RhdGVbNF0pIHsKICAgICAgICAgICAgc3RhdGVbNV0gPSAwOwogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxMaW5lICE9PSBzdGF0ZVs1XSkgewogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZVs0XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzb3VyY2VzSW5kZXgsIHN0YXRlWzRdKTsKICAgICAgICAgIHN0YXRlWzVdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGNhbGxMaW5lLCBzdGF0ZVs1XSk7CiAgICAgICAgICBzdGF0ZVs2XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBjYWxsQ29sdW1uLCBzdGF0ZVs2XSk7CiAgICAgICAgfQogICAgICAgIGlmIChiaW5kaW5ncykgewogICAgICAgICAgZm9yIChjb25zdCBiaW5kaW5nIG9mIGJpbmRpbmdzKSB7CiAgICAgICAgICAgIGlmIChiaW5kaW5nLmxlbmd0aCA+IDEpCiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIC1iaW5kaW5nLmxlbmd0aCwgMCk7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBiaW5kaW5nWzBdWzBdOwogICAgICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwcmVzc2lvbiwgMCk7CiAgICAgICAgICAgIGxldCBiaW5kaW5nU3RhcnRMaW5lID0gc3RhcnRMaW5lOwogICAgICAgICAgICBsZXQgYmluZGluZ1N0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYmluZGluZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IGV4cFJhbmdlID0gYmluZGluZ1tpXTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRMaW5lID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzFdLCBiaW5kaW5nU3RhcnRMaW5lKTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRDb2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwUmFuZ2VbMl0sIGJpbmRpbmdTdGFydENvbHVtbik7CiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzBdLCAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaW5kZXgsIHdyaXRlciwgc3RhdGUpOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGVbMF0gPCBlbmRMaW5lKSB7CiAgICAgICAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBlbmRMaW5lKTsKICAgICAgICAgIHN0YXRlWzBdID0gZW5kTGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kQ29sdW1uLCBzdGF0ZVsxXSk7CiAgICAgICAgcmV0dXJuIGluZGV4OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhdGNodXBMaW5lKHdyaXRlciwgbGFzdExpbmUsIGxpbmUpIHsKICAgICAgICBkbyB7CiAgICAgICAgICB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTsKICAgICAgICB9IHdoaWxlICgrK2xhc3RMaW5lIDwgbGluZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVjb2RlKG1hcHBpbmdzKSB7CiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IG1hcHBpbmdzOwogICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIobWFwcGluZ3MpOwogICAgICAgIGNvbnN0IGRlY29kZWQgPSBbXTsKICAgICAgICBsZXQgZ2VuQ29sdW1uID0gMDsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgY29uc3QgbGluZSA9IFtdOwogICAgICAgICAgbGV0IHNvcnRlZCA9IHRydWU7CiAgICAgICAgICBsZXQgbGFzdENvbCA9IDA7CiAgICAgICAgICBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBzZW1pKSB7CiAgICAgICAgICAgIGxldCBzZWc7CiAgICAgICAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pOwogICAgICAgICAgICBpZiAoZ2VuQ29sdW1uIDwgbGFzdENvbCkKICAgICAgICAgICAgICBzb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgbGFzdENvbCA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgIHNvdXJjZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VzSW5kZXgpOwogICAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlTGluZSk7CiAgICAgICAgICAgICAgc291cmNlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZUNvbHVtbik7CiAgICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgICAgbmFtZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBuYW1lc0luZGV4KTsKICAgICAgICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2VnID0gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW5dOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzZWcgPSBbZ2VuQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsaW5lLnB1c2goc2VnKTsKICAgICAgICAgICAgcmVhZGVyLnBvcysrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFzb3J0ZWQpCiAgICAgICAgICAgIHNvcnQobGluZSk7CiAgICAgICAgICBkZWNvZGVkLnB1c2gobGluZSk7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8PSBsZW5ndGgpOwogICAgICAgIHJldHVybiBkZWNvZGVkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNvcnQobGluZSkgewogICAgICAgIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYSwgYikgewogICAgICAgIHJldHVybiBhWzBdIC0gYlswXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZCkgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07CiAgICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgIHdyaXRlci53cml0ZShzZW1pY29sb24pOwogICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGxldCBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBsaW5lW2pdOwogICAgICAgICAgICBpZiAoaiA+IDApCiAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICAgICAgZ2VuQ29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMF0sIGdlbkNvbHVtbik7CiAgICAgICAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgc291cmNlc0luZGV4ID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMV0sIHNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsyXSwgc291cmNlTGluZSk7CiAgICAgICAgICAgIHNvdXJjZUNvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzNdLCBzb3VyY2VDb2x1bW4pOwogICAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPT09IDQpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIG5hbWVzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFs0XSwgbmFtZXNJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB3cml0ZXIuZmx1c2goKTsKICAgICAgfQogICAgICBleHBvcnRzMy5kZWNvZGUgPSBkZWNvZGU7CiAgICAgIGV4cG9ydHMzLmRlY29kZUdlbmVyYXRlZFJhbmdlcyA9IGRlY29kZUdlbmVyYXRlZFJhbmdlczsKICAgICAgZXhwb3J0czMuZGVjb2RlT3JpZ2luYWxTY29wZXMgPSBkZWNvZGVPcmlnaW5hbFNjb3BlczsKICAgICAgZXhwb3J0czMuZW5jb2RlID0gZW5jb2RlOwogICAgICBleHBvcnRzMy5lbmNvZGVHZW5lcmF0ZWRSYW5nZXMgPSBlbmNvZGVHZW5lcmF0ZWRSYW5nZXM7CiAgICAgIGV4cG9ydHMzLmVuY29kZU9yaWdpbmFsU2NvcGVzID0gZW5jb2RlT3JpZ2luYWxTY29wZXM7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcwp2YXIgcmVxdWlyZV9tYWdpY19zdHJpbmdfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBzb3VyY2VtYXBDb2RlYyA9IHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCgpOwogICAgdmFyIEJpdFNldCA9IGNsYXNzIF9CaXRTZXQgewogICAgICBjb25zdHJ1Y3RvcihhcmcpIHsKICAgICAgICB0aGlzLmJpdHMgPSBhcmcgaW5zdGFuY2VvZiBfQml0U2V0ID8gYXJnLmJpdHMuc2xpY2UoKSA6IFtdOwogICAgICB9CiAgICAgIGFkZChuMikgewogICAgICAgIHRoaXMuYml0c1tuMiA+PiA1XSB8PSAxIDw8IChuMiAmIDMxKTsKICAgICAgfQogICAgICBoYXMobjIpIHsKICAgICAgICByZXR1cm4gISEodGhpcy5iaXRzW24yID4+IDVdICYgMSA8PCAobjIgJiAzMSkpOwogICAgICB9CiAgICB9OwogICAgdmFyIENodW5rID0gY2xhc3MgX0NodW5rIHsKICAgICAgY29uc3RydWN0b3Ioc3RhcnQsIGVuZCwgY29udGVudCkgewogICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKICAgICAgICB0aGlzLmVuZCA9IGVuZDsKICAgICAgICB0aGlzLm9yaWdpbmFsID0gY29udGVudDsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5zdG9yZU5hbWUgPSBmYWxzZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIHsKICAgICAgICAgIHRoaXMucHJldmlvdXMgPSBudWxsOwogICAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXBwZW5kTGVmdChjb250ZW50KSB7CiAgICAgICAgdGhpcy5vdXRybyArPSBjb250ZW50OwogICAgICB9CiAgICAgIGFwcGVuZFJpZ2h0KGNvbnRlbnQpIHsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRybyArIGNvbnRlbnQ7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgX0NodW5rKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICBjaHVuay5pbnRybyA9IHRoaXMuaW50cm87CiAgICAgICAgY2h1bmsub3V0cm8gPSB0aGlzLm91dHJvOwogICAgICAgIGNodW5rLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7CiAgICAgICAgY2h1bmsuc3RvcmVOYW1lID0gdGhpcy5zdG9yZU5hbWU7CiAgICAgICAgY2h1bmsuZWRpdGVkID0gdGhpcy5lZGl0ZWQ7CiAgICAgICAgcmV0dXJuIGNodW5rOwogICAgICB9CiAgICAgIGNvbnRhaW5zKGluZGV4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQgPCBpbmRleCAmJiBpbmRleCA8IHRoaXMuZW5kOwogICAgICB9CiAgICAgIGVhY2hOZXh0KGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWFjaFByZXZpb3VzKGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVkaXQoY29udGVudCwgc3RvcmVOYW1lLCBjb250ZW50T25seSkgewogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgaWYgKCFjb250ZW50T25seSkgewogICAgICAgICAgdGhpcy5pbnRybyA9ICIiOwogICAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIH0KICAgICAgICB0aGlzLnN0b3JlTmFtZSA9IHN0b3JlTmFtZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IHRydWU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZExlZnQoY29udGVudCkgewogICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICBwcmVwZW5kUmlnaHQoY29udGVudCkgewogICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIGlmICh0aGlzLmVkaXRlZCkgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5vcmlnaW5hbDsKICAgICAgICAgIHRoaXMuc3RvcmVOYW1lID0gZmFsc2U7CiAgICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBzcGxpdChpbmRleCkgewogICAgICAgIGNvbnN0IHNsaWNlSW5kZXggPSBpbmRleCAtIHRoaXMuc3RhcnQ7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCZWZvcmUgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKDAsIHNsaWNlSW5kZXgpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQWZ0ZXIgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHNsaWNlSW5kZXgpOwogICAgICAgIHRoaXMub3JpZ2luYWwgPSBvcmlnaW5hbEJlZm9yZTsKICAgICAgICBjb25zdCBuZXdDaHVuayA9IG5ldyBfQ2h1bmsoaW5kZXgsIHRoaXMuZW5kLCBvcmlnaW5hbEFmdGVyKTsKICAgICAgICBuZXdDaHVuay5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuZW5kID0gaW5kZXg7CiAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICBuZXdDaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB0aGlzLmNvbnRlbnQgPSAiIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gb3JpZ2luYWxCZWZvcmU7CiAgICAgICAgfQogICAgICAgIG5ld0NodW5rLm5leHQgPSB0aGlzLm5leHQ7CiAgICAgICAgaWYgKG5ld0NodW5rLm5leHQpIG5ld0NodW5rLm5leHQucHJldmlvdXMgPSBuZXdDaHVuazsKICAgICAgICBuZXdDaHVuay5wcmV2aW91cyA9IHRoaXM7CiAgICAgICAgdGhpcy5uZXh0ID0gbmV3Q2h1bms7CiAgICAgICAgcmV0dXJuIG5ld0NodW5rOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgdGhpcy5jb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICB0cmltRW5kKHJ4KSB7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIHRoaXMuc3BsaXQodGhpcy5zdGFydCArIHRyaW1tZWQubGVuZ3RoKS5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgICBpZiAodGhpcy5lZGl0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLmVkaXQodHJpbW1lZCwgdGhpcy5zdG9yZU5hbWUsIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KHJ4KSB7CiAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLmludHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gdGhpcy5zcGxpdCh0aGlzLmVuZCAtIHRyaW1tZWQubGVuZ3RoKTsKICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICAgICAgbmV3Q2h1bmsuZWRpdCh0cmltbWVkLCB0aGlzLnN0b3JlTmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZWRpdCgiIiwgdm9pZCAwLCB0cnVlKTsKICAgICAgICAgIHRoaXMub3V0cm8gPSB0aGlzLm91dHJvLnJlcGxhY2UocngsICIiKTsKICAgICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gZ2V0QnRvYSgpIHsKICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5idG9hID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIChzdHIyKSA9PiBnbG9iYWxUaGlzLmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cjIpKSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJldHVybiAoc3RyMikgPT4gQnVmZmVyLmZyb20oc3RyMiwgInV0Zi04IikudG9TdHJpbmcoImJhc2U2NCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGVudmlyb25tZW50OiBgd2luZG93LmJ0b2FgIG9yIGBCdWZmZXJgIHNob3VsZCBiZSBzdXBwb3J0ZWQuIik7CiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgdmFyIGJ0b2EgPSAvKiBAX19QVVJFX18gKi8gZ2V0QnRvYSgpOwogICAgdmFyIFNvdXJjZU1hcCA9IGNsYXNzIHsKICAgICAgY29uc3RydWN0b3IocHJvcGVydGllcykgewogICAgICAgIHRoaXMudmVyc2lvbiA9IDM7CiAgICAgICAgdGhpcy5maWxlID0gcHJvcGVydGllcy5maWxlOwogICAgICAgIHRoaXMuc291cmNlcyA9IHByb3BlcnRpZXMuc291cmNlczsKICAgICAgICB0aGlzLnNvdXJjZXNDb250ZW50ID0gcHJvcGVydGllcy5zb3VyY2VzQ29udGVudDsKICAgICAgICB0aGlzLm5hbWVzID0gcHJvcGVydGllcy5uYW1lczsKICAgICAgICB0aGlzLm1hcHBpbmdzID0gc291cmNlbWFwQ29kZWMuZW5jb2RlKHByb3BlcnRpZXMubWFwcGluZ3MpOwogICAgICAgIGlmICh0eXBlb2YgcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgdGhpcy54X2dvb2dsZV9pZ25vcmVMaXN0ID0gcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXMuZGVidWdJZCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHRoaXMuZGVidWdJZCA9IHByb3BlcnRpZXMuZGVidWdJZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpOwogICAgICB9CiAgICAgIHRvVXJsKCkgewogICAgICAgIHJldHVybiAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyBidG9hKHRoaXMudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBndWVzc0luZGVudChjb2RlKSB7CiAgICAgIGNvbnN0IGxpbmVzID0gY29kZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgdGFiYmVkID0gbGluZXMuZmlsdGVyKChsaW5lKSA9PiAvXlx0Ky8udGVzdChsaW5lKSk7CiAgICAgIGNvbnN0IHNwYWNlZCA9IGxpbmVzLmZpbHRlcigobGluZSkgPT4gL14gezIsfS8udGVzdChsaW5lKSk7CiAgICAgIGlmICh0YWJiZWQubGVuZ3RoID09PSAwICYmIHNwYWNlZC5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBpZiAodGFiYmVkLmxlbmd0aCA+PSBzcGFjZWQubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuICIJIjsKICAgICAgfQogICAgICBjb25zdCBtaW4gPSBzcGFjZWQucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICAgIGNvbnN0IG51bVNwYWNlcyA9IC9eICsvLmV4ZWMoY3VycmVudClbMF0ubGVuZ3RoOwogICAgICAgIHJldHVybiBNYXRoLm1pbihudW1TcGFjZXMsIHByZXZpb3VzKTsKICAgICAgfSwgSW5maW5pdHkpOwogICAgICByZXR1cm4gbmV3IEFycmF5KG1pbiArIDEpLmpvaW4oIiAiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChmcm9tLCB0bykgewogICAgICBjb25zdCBmcm9tUGFydHMgPSBmcm9tLnNwbGl0KC9bL1xcXS8pOwogICAgICBjb25zdCB0b1BhcnRzID0gdG8uc3BsaXQoL1svXFxdLyk7CiAgICAgIGZyb21QYXJ0cy5wb3AoKTsKICAgICAgd2hpbGUgKGZyb21QYXJ0c1swXSA9PT0gdG9QYXJ0c1swXSkgewogICAgICAgIGZyb21QYXJ0cy5zaGlmdCgpOwogICAgICAgIHRvUGFydHMuc2hpZnQoKTsKICAgICAgfQogICAgICBpZiAoZnJvbVBhcnRzLmxlbmd0aCkgewogICAgICAgIGxldCBpID0gZnJvbVBhcnRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSBmcm9tUGFydHNbaV0gPSAiLi4iOwogICAgICB9CiAgICAgIHJldHVybiBmcm9tUGFydHMuY29uY2F0KHRvUGFydHMpLmpvaW4oIi8iKTsKICAgIH0KICAgIHZhciB0b1N0cmluZzIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwogICAgZnVuY3Rpb24gaXNPYmplY3QyKHRoaW5nKSB7CiAgICAgIHJldHVybiB0b1N0cmluZzIuY2FsbCh0aGluZykgPT09ICJbb2JqZWN0IE9iamVjdF0iOwogICAgfQogICAgZnVuY3Rpb24gZ2V0TG9jYXRvcihzb3VyY2UpIHsKICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgbGluZU9mZnNldHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDAsIHBvcyA9IDA7IGkgPCBvcmlnaW5hbExpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGluZU9mZnNldHMucHVzaChwb3MpOwogICAgICAgIHBvcyArPSBvcmlnaW5hbExpbmVzW2ldLmxlbmd0aCArIDE7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvY2F0ZShpbmRleCkgewogICAgICAgIGxldCBpID0gMDsKICAgICAgICBsZXQgaiA9IGxpbmVPZmZzZXRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaSA8IGopIHsKICAgICAgICAgIGNvbnN0IG0gPSBpICsgaiA+PiAxOwogICAgICAgICAgaWYgKGluZGV4IDwgbGluZU9mZnNldHNbbV0pIHsKICAgICAgICAgICAgaiA9IG07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpID0gbSArIDE7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxpbmUgPSBpIC0gMTsKICAgICAgICBjb25zdCBjb2x1bW4gPSBpbmRleCAtIGxpbmVPZmZzZXRzW2xpbmVdOwogICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9OwogICAgICB9OwogICAgfQogICAgdmFyIHdvcmRSZWdleCA9IC9cdy87CiAgICB2YXIgTWFwcGluZ3MgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGhpcmVzKSB7CiAgICAgICAgdGhpcy5oaXJlcyA9IGhpcmVzOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUxpbmUgPSAwOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgdGhpcy5yYXcgPSBbXTsKICAgICAgICB0aGlzLnJhd1NlZ21lbnRzID0gdGhpcy5yYXdbdGhpcy5nZW5lcmF0ZWRDb2RlTGluZV0gPSBbXTsKICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkZEVkaXQoc291cmNlSW5kZXgsIGNvbnRlbnQsIGxvYywgbmFtZUluZGV4KSB7CiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBjb250ZW50TGVuZ3RoTWludXNPbmUgPSBjb250ZW50Lmxlbmd0aCAtIDE7CiAgICAgICAgICBsZXQgY29udGVudExpbmVFbmQgPSBjb250ZW50LmluZGV4T2YoIlxuIiwgMCk7CiAgICAgICAgICBsZXQgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IC0xOwogICAgICAgICAgd2hpbGUgKGNvbnRlbnRMaW5lRW5kID49IDAgJiYgY29udGVudExlbmd0aE1pbnVzT25lID4gY29udGVudExpbmVFbmQpIHsKICAgICAgICAgICAgY29uc3Qgc2VnbWVudDIgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgICBzZWdtZW50Mi5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5yYXdTZWdtZW50cy5wdXNoKHNlZ21lbnQyKTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IGNvbnRlbnRMaW5lRW5kOwogICAgICAgICAgICBjb250ZW50TGluZUVuZCA9IGNvbnRlbnQuaW5kZXhPZigiXG4iLCBjb250ZW50TGluZUVuZCArIDEpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2VnbWVudCA9IFt0aGlzLmdlbmVyYXRlZENvZGVDb2x1bW4sIHNvdXJjZUluZGV4LCBsb2MubGluZSwgbG9jLmNvbHVtbl07CiAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgc2VnbWVudC5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICB0aGlzLmFkdmFuY2UoY29udGVudC5zbGljZShwcmV2aW91c0NvbnRlbnRMaW5lRW5kICsgMSkpOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nKSB7CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2godGhpcy5wZW5kaW5nKTsKICAgICAgICAgIHRoaXMuYWR2YW5jZShjb250ZW50KTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gbnVsbDsKICAgICAgfQogICAgICBhZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgb3JpZ2luYWwsIGxvYywgc291cmNlbWFwTG9jYXRpb25zKSB7CiAgICAgICAgbGV0IG9yaWdpbmFsQ2hhckluZGV4ID0gY2h1bmsuc3RhcnQ7CiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTsKICAgICAgICBsZXQgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENoYXJJbmRleCA8IGNodW5rLmVuZCkgewogICAgICAgICAgaWYgKG9yaWdpbmFsW29yaWdpbmFsQ2hhckluZGV4XSA9PT0gIlxuIikgewogICAgICAgICAgICBsb2MubGluZSArPSAxOwogICAgICAgICAgICBsb2MuY29sdW1uID0gMDsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgZmlyc3QgPSB0cnVlOwogICAgICAgICAgICBjaGFySW5IaXJlc0JvdW5kYXJ5ID0gZmFsc2U7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5oaXJlcyB8fCBmaXJzdCB8fCBzb3VyY2VtYXBMb2NhdGlvbnMuaGFzKG9yaWdpbmFsQ2hhckluZGV4KSkgewogICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICAgIGlmICh0aGlzLmhpcmVzID09PSAiYm91bmRhcnkiKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZFJlZ2V4LnRlc3Qob3JpZ2luYWxbb3JpZ2luYWxDaGFySW5kZXhdKSkgewogICAgICAgICAgICAgICAgICBpZiAoIWNoYXJJbkhpcmVzQm91bmRhcnkpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmF3U2VnbWVudHMucHVzaChzZWdtZW50KTsKICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGxvYy5jb2x1bW4gKz0gMTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uICs9IDE7CiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvcmlnaW5hbENoYXJJbmRleCArPSAxOwogICAgICAgIH0KICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkdmFuY2Uoc3RyMikgewogICAgICAgIGlmICghc3RyMikgcmV0dXJuOwogICAgICAgIGNvbnN0IGxpbmVzID0gc3RyMi5zcGxpdCgiXG4iKTsKICAgICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkgewogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSsrOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiArPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGg7CiAgICAgIH0KICAgIH07CiAgICB2YXIgbiA9ICJcbiI7CiAgICB2YXIgd2FybmVkID0gewogICAgICBpbnNlcnRMZWZ0OiBmYWxzZSwKICAgICAgaW5zZXJ0UmlnaHQ6IGZhbHNlLAogICAgICBzdG9yZU5hbWU6IGZhbHNlCiAgICB9OwogICAgdmFyIE1hZ2ljU3RyaW5nID0gY2xhc3MgX01hZ2ljU3RyaW5nIHsKICAgICAgY29uc3RydWN0b3Ioc3RyaW5nLCBvcHRpb25zID0ge30pIHsKICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBDaHVuaygwLCBzdHJpbmcubGVuZ3RoLCBzdHJpbmcpOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKICAgICAgICAgIG9yaWdpbmFsOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogc3RyaW5nIH0sCiAgICAgICAgICBvdXRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBpbnRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBmaXJzdENodW5rOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogY2h1bmsgfSwKICAgICAgICAgIGxhc3RDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBsYXN0U2VhcmNoZWRDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBieVN0YXJ0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGJ5RW5kOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGZpbGVuYW1lOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5maWxlbmFtZSB9LAogICAgICAgICAgaW5kZW50RXhjbHVzaW9uUmFuZ2VzOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pbmRlbnRFeGNsdXNpb25SYW5nZXMgfSwKICAgICAgICAgIHNvdXJjZW1hcExvY2F0aW9uczogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG5ldyBCaXRTZXQoKSB9LAogICAgICAgICAgc3RvcmVkTmFtZXM6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB7fSB9LAogICAgICAgICAgaW5kZW50U3RyOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogdm9pZCAwIH0sCiAgICAgICAgICBpZ25vcmVMaXN0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pZ25vcmVMaXN0IH0sCiAgICAgICAgICBvZmZzZXQ6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBvcHRpb25zLm9mZnNldCB8fCAwIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLmJ5U3RhcnRbMF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5RW5kW3N0cmluZy5sZW5ndGhdID0gY2h1bms7CiAgICAgIH0KICAgICAgYWRkU291cmNlbWFwTG9jYXRpb24oY2hhcikgewogICAgICAgIHRoaXMuc291cmNlbWFwTG9jYXRpb25zLmFkZChjaGFyKTsKICAgICAgfQogICAgICBhcHBlbmQoY29udGVudCkgewogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoIm91dHJvIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kTGVmdChjb250ZW50KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5pbnRybyArPSBjb250ZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGluZGV4ID0gaW5kZXggKyB0aGlzLm9mZnNldDsKICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICJzdHJpbmciKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnNlcnRlZCBjb250ZW50IG11c3QgYmUgYSBzdHJpbmciKTsKICAgICAgICB0aGlzLl9zcGxpdChpbmRleCk7CiAgICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmJ5U3RhcnRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2xvbmVkID0gbmV3IF9NYWdpY1N0cmluZyh0aGlzLm9yaWdpbmFsLCB7IGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLCBvZmZzZXQ6IHRoaXMub2Zmc2V0IH0pOwogICAgICAgIGxldCBvcmlnaW5hbENodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGxldCBjbG9uZWRDaHVuayA9IGNsb25lZC5maXJzdENodW5rID0gY2xvbmVkLmxhc3RTZWFyY2hlZENodW5rID0gb3JpZ2luYWxDaHVuay5jbG9uZSgpOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENodW5rKSB7CiAgICAgICAgICBjbG9uZWQuYnlTdGFydFtjbG9uZWRDaHVuay5zdGFydF0gPSBjbG9uZWRDaHVuazsKICAgICAgICAgIGNsb25lZC5ieUVuZFtjbG9uZWRDaHVuay5lbmRdID0gY2xvbmVkQ2h1bms7CiAgICAgICAgICBjb25zdCBuZXh0T3JpZ2luYWxDaHVuayA9IG9yaWdpbmFsQ2h1bmsubmV4dDsKICAgICAgICAgIGNvbnN0IG5leHRDbG9uZWRDaHVuayA9IG5leHRPcmlnaW5hbENodW5rICYmIG5leHRPcmlnaW5hbENodW5rLmNsb25lKCk7CiAgICAgICAgICBpZiAobmV4dENsb25lZENodW5rKSB7CiAgICAgICAgICAgIGNsb25lZENodW5rLm5leHQgPSBuZXh0Q2xvbmVkQ2h1bms7CiAgICAgICAgICAgIG5leHRDbG9uZWRDaHVuay5wcmV2aW91cyA9IGNsb25lZENodW5rOwogICAgICAgICAgICBjbG9uZWRDaHVuayA9IG5leHRDbG9uZWRDaHVuazsKICAgICAgICAgIH0KICAgICAgICAgIG9yaWdpbmFsQ2h1bmsgPSBuZXh0T3JpZ2luYWxDaHVuazsKICAgICAgICB9CiAgICAgICAgY2xvbmVkLmxhc3RDaHVuayA9IGNsb25lZENodW5rOwogICAgICAgIGlmICh0aGlzLmluZGVudEV4Y2x1c2lvblJhbmdlcykgewogICAgICAgICAgY2xvbmVkLmluZGVudEV4Y2x1c2lvblJhbmdlcyA9IHRoaXMuaW5kZW50RXhjbHVzaW9uUmFuZ2VzLnNsaWNlKCk7CiAgICAgICAgfQogICAgICAgIGNsb25lZC5zb3VyY2VtYXBMb2NhdGlvbnMgPSBuZXcgQml0U2V0KHRoaXMuc291cmNlbWFwTG9jYXRpb25zKTsKICAgICAgICBjbG9uZWQuaW50cm8gPSB0aGlzLmludHJvOwogICAgICAgIGNsb25lZC5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgcmV0dXJuIGNsb25lZDsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gMDsKICAgICAgICBjb25zdCBuYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkTmFtZXMpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gbmV3IE1hcHBpbmdzKG9wdGlvbnMuaGlyZXMpOwogICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IodGhpcy5vcmlnaW5hbCk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0ZShjaHVuay5zdGFydCk7CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLmludHJvKTsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgbWFwcGluZ3MuYWRkRWRpdCgKICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICBjaHVuay5jb250ZW50LAogICAgICAgICAgICAgIGxvYywKICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgdGhpcy5vcmlnaW5hbCwgbG9jLCB0aGlzLnNvdXJjZW1hcExvY2F0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlID8gb3B0aW9ucy5maWxlLnNwbGl0KC9bL1xcXS8pLnBvcCgpIDogdm9pZCAwLAogICAgICAgICAgc291cmNlczogWwogICAgICAgICAgICBvcHRpb25zLnNvdXJjZSA/IGdldFJlbGF0aXZlUGF0aChvcHRpb25zLmZpbGUgfHwgIiIsIG9wdGlvbnMuc291cmNlKSA6IG9wdGlvbnMuZmlsZSB8fCAiIgogICAgICAgICAgXSwKICAgICAgICAgIHNvdXJjZXNDb250ZW50OiBvcHRpb25zLmluY2x1ZGVDb250ZW50ID8gW3RoaXMub3JpZ2luYWxdIDogdm9pZCAwLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdDogdGhpcy5pZ25vcmVMaXN0ID8gW3NvdXJjZUluZGV4XSA6IHZvaWQgMAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBfZW5zdXJlaW5kZW50U3RyKCkgewogICAgICAgIGlmICh0aGlzLmluZGVudFN0ciA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aGlzLmluZGVudFN0ciA9IGd1ZXNzSW5kZW50KHRoaXMub3JpZ2luYWwpOwogICAgICAgIH0KICAgICAgfQogICAgICBfZ2V0UmF3SW5kZW50U3RyaW5nKCkgewogICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgIHJldHVybiB0aGlzLmluZGVudFN0cjsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgdGhpcy5fZW5zdXJlaW5kZW50U3RyKCk7CiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZW50U3RyID09PSBudWxsID8gIgkiIDogdGhpcy5pbmRlbnRTdHI7CiAgICAgIH0KICAgICAgaW5kZW50KGluZGVudFN0ciwgb3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvXlteXHJcbl0vZ207CiAgICAgICAgaWYgKGlzT2JqZWN0MihpbmRlbnRTdHIpKSB7CiAgICAgICAgICBvcHRpb25zID0gaW5kZW50U3RyOwogICAgICAgICAgaW5kZW50U3RyID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSB2b2lkIDApIHsKICAgICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgICAgaW5kZW50U3RyID0gdGhpcy5pbmRlbnRTdHIgfHwgIgkiOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgY29uc3QgaXNFeGNsdWRlZCA9IHt9OwogICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGUpIHsKICAgICAgICAgIGNvbnN0IGV4Y2x1c2lvbnMgPSB0eXBlb2Ygb3B0aW9ucy5leGNsdWRlWzBdID09PSAibnVtYmVyIiA/IFtvcHRpb25zLmV4Y2x1ZGVdIDogb3B0aW9ucy5leGNsdWRlOwogICAgICAgICAgZXhjbHVzaW9ucy5mb3JFYWNoKChleGNsdXNpb24pID0+IHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IGV4Y2x1c2lvblswXTsgaSA8IGV4Y2x1c2lvblsxXTsgaSArPSAxKSB7CiAgICAgICAgICAgICAgaXNFeGNsdWRlZFtpXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBsZXQgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IG9wdGlvbnMuaW5kZW50U3RhcnQgIT09IGZhbHNlOwogICAgICAgIGNvbnN0IHJlcGxhY2VyID0gKG1hdGNoKSA9PiB7CiAgICAgICAgICBpZiAoc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgcmV0dXJuIGAke2luZGVudFN0cn0ke21hdGNofWA7CiAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gdHJ1ZTsKICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICB9OwogICAgICAgIHRoaXMuaW50cm8gPSB0aGlzLmludHJvLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZXIpOwogICAgICAgIGxldCBjaGFySW5kZXggPSAwOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGNvbnN0IGVuZCA9IGNodW5rLmVuZDsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgaWYgKCFpc0V4Y2x1ZGVkW2NoYXJJbmRleF0pIHsKICAgICAgICAgICAgICBjaHVuay5jb250ZW50ID0gY2h1bmsuY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VyKTsKICAgICAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHNob3VsZEluZGVudE5leHRDaGFyYWN0ZXIgPSBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjaGFySW5kZXggPSBjaHVuay5zdGFydDsKICAgICAgICAgICAgd2hpbGUgKGNoYXJJbmRleCA8IGVuZCkgewogICAgICAgICAgICAgIGlmICghaXNFeGNsdWRlZFtjaGFySW5kZXhdKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gdGhpcy5vcmlnaW5hbFtjaGFySW5kZXhdOwogICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICJcbiIpIHsKICAgICAgICAgICAgICAgICAgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgIT09ICJcciIgJiYgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgewogICAgICAgICAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGlmIChjaGFySW5kZXggPT09IGNodW5rLnN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3BsaXRDaHVuayhjaHVuaywgY2hhckluZGV4KTsKICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2hhckluZGV4ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGNoYXJJbmRleCA9IGNodW5rLmVuZDsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlcik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgaW5zZXJ0KCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgcHJlcGVuZFJpZ2h0KC4uLikgb3IgYXBwZW5kTGVmdCguLi4pIgogICAgICAgICk7CiAgICAgIH0KICAgICAgaW5zZXJ0TGVmdChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydExlZnQpIHsKICAgICAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIm1hZ2ljU3RyaW5nLmluc2VydExlZnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgbWFnaWNTdHJpbmcuYXBwZW5kTGVmdCguLi4pIGluc3RlYWQiCiAgICAgICAgICApOwogICAgICAgICAgd2FybmVkLmluc2VydExlZnQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KTsKICAgICAgfQogICAgICBpbnNlcnRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydFJpZ2h0KSB7CiAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnRSaWdodCguLi4pIGlzIGRlcHJlY2F0ZWQuIFVzZSBtYWdpY1N0cmluZy5wcmVwZW5kUmlnaHQoLi4uKSBpbnN0ZWFkIgogICAgICAgICAgKTsKICAgICAgICAgIHdhcm5lZC5pbnNlcnRSaWdodCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLnByZXBlbmRSaWdodChpbmRleCwgY29udGVudCk7CiAgICAgIH0KICAgICAgbW92ZShzdGFydCwgZW5kLCBpbmRleCkgewogICAgICAgIHN0YXJ0ID0gc3RhcnQgKyB0aGlzLm9mZnNldDsKICAgICAgICBlbmQgPSBlbmQgKyB0aGlzLm9mZnNldDsKICAgICAgICBpbmRleCA9IGluZGV4ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKGluZGV4ID49IHN0YXJ0ICYmIGluZGV4IDw9IGVuZCkgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbW92ZSBhIHNlbGVjdGlvbiBpbnNpZGUgaXRzZWxmIik7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgdGhpcy5fc3BsaXQoaW5kZXgpOwogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGNvbnN0IG9sZExlZnQgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICBjb25zdCBvbGRSaWdodCA9IGxhc3QubmV4dDsKICAgICAgICBjb25zdCBuZXdSaWdodCA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKCFuZXdSaWdodCAmJiBsYXN0ID09PSB0aGlzLmxhc3RDaHVuaykgcmV0dXJuIHRoaXM7CiAgICAgICAgY29uc3QgbmV3TGVmdCA9IG5ld1JpZ2h0ID8gbmV3UmlnaHQucHJldmlvdXMgOiB0aGlzLmxhc3RDaHVuazsKICAgICAgICBpZiAob2xkTGVmdCkgb2xkTGVmdC5uZXh0ID0gb2xkUmlnaHQ7CiAgICAgICAgaWYgKG9sZFJpZ2h0KSBvbGRSaWdodC5wcmV2aW91cyA9IG9sZExlZnQ7CiAgICAgICAgaWYgKG5ld0xlZnQpIG5ld0xlZnQubmV4dCA9IGZpcnN0OwogICAgICAgIGlmIChuZXdSaWdodCkgbmV3UmlnaHQucHJldmlvdXMgPSBsYXN0OwogICAgICAgIGlmICghZmlyc3QucHJldmlvdXMpIHRoaXMuZmlyc3RDaHVuayA9IGxhc3QubmV4dDsKICAgICAgICBpZiAoIWxhc3QubmV4dCkgewogICAgICAgICAgdGhpcy5sYXN0Q2h1bmsgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICAgIHRoaXMubGFzdENodW5rLm5leHQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBmaXJzdC5wcmV2aW91cyA9IG5ld0xlZnQ7CiAgICAgICAgbGFzdC5uZXh0ID0gbmV3UmlnaHQgfHwgbnVsbDsKICAgICAgICBpZiAoIW5ld0xlZnQpIHRoaXMuZmlyc3RDaHVuayA9IGZpcnN0OwogICAgICAgIGlmICghbmV3UmlnaHQpIHRoaXMubGFzdENodW5rID0gbGFzdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvdmVyd3JpdGUoc3RhcnQsIGVuZCwgY29udGVudCwgb3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShzdGFydCwgZW5kLCBjb250ZW50LCB7IC4uLm9wdGlvbnMsIG92ZXJ3cml0ZTogIW9wdGlvbnMuY29udGVudE9ubHkgfSk7CiAgICAgIH0KICAgICAgdXBkYXRlKHN0YXJ0LCBlbmQsIGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigicmVwbGFjZW1lbnQgY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChlbmQgPiB0aGlzLm9yaWdpbmFsLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCJlbmQgaXMgb3V0IG9mIGJvdW5kcyIpOwogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiQ2Fubm90IG92ZXJ3cml0ZSBhIHplcm8tbGVuZ3RoIHJhbmdlIFx1MjAxMyB1c2UgYXBwZW5kTGVmdCBvciBwcmVwZW5kUmlnaHQgaW5zdGVhZCIKICAgICAgICAgICk7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUpIHsKICAgICAgICAgIGlmICghd2FybmVkLnN0b3JlTmFtZSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgIlRoZSBmaW5hbCBhcmd1bWVudCB0byBtYWdpY1N0cmluZy5vdmVyd3JpdGUoLi4uKSBzaG91bGQgYmUgYW4gb3B0aW9ucyBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcmljaC1oYXJyaXMvbWFnaWMtc3RyaW5nIgogICAgICAgICAgICApOwogICAgICAgICAgICB3YXJuZWQuc3RvcmVOYW1lID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wdGlvbnMgPSB7IHN0b3JlTmFtZTogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBzdG9yZU5hbWUgPSBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zLnN0b3JlTmFtZSA6IGZhbHNlOwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZSA9IG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMub3ZlcndyaXRlIDogZmFsc2U7CiAgICAgICAgaWYgKHN0b3JlTmFtZSkgewogICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc3RvcmVkTmFtZXMsIG9yaWdpbmFsLCB7CiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgICB2YWx1ZTogdHJ1ZSwKICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGlmIChmaXJzdCkgewogICAgICAgICAgbGV0IGNodW5rID0gZmlyc3Q7CiAgICAgICAgICB3aGlsZSAoY2h1bmsgIT09IGxhc3QpIHsKICAgICAgICAgICAgaWYgKGNodW5rLm5leHQgIT09IHRoaXMuYnlTdGFydFtjaHVuay5lbmRdKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgb3ZlcndyaXRlIGFjcm9zcyBhIHNwbGl0IHBvaW50Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICBjaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmaXJzdC5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSwgIW92ZXJ3cml0ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gbmV3IENodW5rKHN0YXJ0LCBlbmQsICIiKS5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSk7CiAgICAgICAgICBsYXN0Lm5leHQgPSBuZXdDaHVuazsKICAgICAgICAgIG5ld0NodW5rLnByZXZpb3VzID0gbGFzdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZChjb250ZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cm8gY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgdGhpcy5pbnRybyA9IGNvbnRlbnQgKyB0aGlzLmludHJvOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHByZXBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsucHJlcGVuZExlZnQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5wcmVwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcmVtb3ZlKHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5pbnRybyA9ICIiOwogICAgICAgICAgY2h1bmsub3V0cm8gPSAiIjsKICAgICAgICAgIGNodW5rLmVkaXQoIiIpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlc2V0KHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5yZXNldCgpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGxhc3RDaGFyKCkgewogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRoaXMub3V0cm9bdGhpcy5vdXRyby5sZW5ndGggLSAxXTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsub3V0cm9bY2h1bmsub3V0cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHJldHVybiBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsuaW50cm9bY2h1bmsuaW50cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgfSB3aGlsZSAoY2h1bmsgPSBjaHVuay5wcmV2aW91cyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdGhpcy5pbnRyb1t0aGlzLmludHJvLmxlbmd0aCAtIDFdOwogICAgICAgIHJldHVybiAiIjsKICAgICAgfQogICAgICBsYXN0TGluZSgpIHsKICAgICAgICBsZXQgbGluZUluZGV4ID0gdGhpcy5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIHRoaXMub3V0cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpOwogICAgICAgIGxldCBsaW5lU3RyID0gdGhpcy5vdXRybzsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPT0gLTEpIHJldHVybiBjaHVuay5vdXRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgICAgICBsaW5lU3RyID0gY2h1bmsub3V0cm8gKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnQubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5jb250ZW50Lmxhc3RJbmRleE9mKG4pOwogICAgICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIGNodW5rLmNvbnRlbnQuc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmNvbnRlbnQgKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGluZUluZGV4ID0gY2h1bmsuaW50cm8ubGFzdEluZGV4T2Yobik7CiAgICAgICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gY2h1bmsuaW50cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmludHJvICsgbGluZVN0cjsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLnByZXZpb3VzKTsKICAgICAgICBsaW5lSW5kZXggPSB0aGlzLmludHJvLmxhc3RJbmRleE9mKG4pOwogICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gdGhpcy5pbnRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgbGluZVN0cjsKICAgICAgfQogICAgICBzbGljZShzdGFydCA9IDAsIGVuZCA9IHRoaXMub3JpZ2luYWwubGVuZ3RoIC0gdGhpcy5vZmZzZXQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgd2hpbGUgKGNodW5rICYmIChjaHVuay5zdGFydCA+IHN0YXJ0IHx8IGNodW5rLmVuZCA8PSBzdGFydCkpIHsKICAgICAgICAgIGlmIChjaHVuay5zdGFydCA8IGVuZCAmJiBjaHVuay5lbmQgPj0gZW5kKSB7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmIChjaHVuayAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuc3RhcnQgIT09IHN0YXJ0KQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIHJlcGxhY2VkIGNoYXJhY3RlciAke3N0YXJ0fSBhcyBzbGljZSBzdGFydCBhbmNob3IuYCk7CiAgICAgICAgY29uc3Qgc3RhcnRDaHVuayA9IGNodW5rOwogICAgICAgIHdoaWxlIChjaHVuaykgewogICAgICAgICAgaWYgKGNodW5rLmludHJvICYmIChzdGFydENodW5rICE9PSBjaHVuayB8fCBjaHVuay5zdGFydCA9PT0gc3RhcnQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5pbnRybzsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGNvbnRhaW5zRW5kID0gY2h1bmsuc3RhcnQgPCBlbmQgJiYgY2h1bmsuZW5kID49IGVuZDsKICAgICAgICAgIGlmIChjb250YWluc0VuZCAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuZW5kICE9PSBlbmQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVzZSByZXBsYWNlZCBjaGFyYWN0ZXIgJHtlbmR9IGFzIHNsaWNlIGVuZCBhbmNob3IuYCk7CiAgICAgICAgICBjb25zdCBzbGljZVN0YXJ0ID0gc3RhcnRDaHVuayA9PT0gY2h1bmsgPyBzdGFydCAtIGNodW5rLnN0YXJ0IDogMDsKICAgICAgICAgIGNvbnN0IHNsaWNlRW5kID0gY29udGFpbnNFbmQgPyBjaHVuay5jb250ZW50Lmxlbmd0aCArIGVuZCAtIGNodW5rLmVuZCA6IGNodW5rLmNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgcmVzdWx0ICs9IGNodW5rLmNvbnRlbnQuc2xpY2Uoc2xpY2VTdGFydCwgc2xpY2VFbmQpOwogICAgICAgICAgaWYgKGNodW5rLm91dHJvICYmICghY29udGFpbnNFbmQgfHwgY2h1bmsuZW5kID09PSBlbmQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5vdXRybzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChjb250YWluc0VuZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGlzPyBub3QgcmVhbGx5IHZlcnkgdXNlZnVsCiAgICAgIHNuaXAoc3RhcnQsIGVuZCkgewogICAgICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpOwogICAgICAgIGNsb25lLnJlbW92ZSgwLCBzdGFydCk7CiAgICAgICAgY2xvbmUucmVtb3ZlKGVuZCwgY2xvbmUub3JpZ2luYWwubGVuZ3RoKTsKICAgICAgICByZXR1cm4gY2xvbmU7CiAgICAgIH0KICAgICAgX3NwbGl0KGluZGV4KSB7CiAgICAgICAgaWYgKHRoaXMuYnlTdGFydFtpbmRleF0gfHwgdGhpcy5ieUVuZFtpbmRleF0pIHJldHVybjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RTZWFyY2hlZENodW5rOwogICAgICAgIGNvbnN0IHNlYXJjaEZvcndhcmQgPSBpbmRleCA+IGNodW5rLmVuZDsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGlmIChjaHVuay5jb250YWlucyhpbmRleCkpIHJldHVybiB0aGlzLl9zcGxpdENodW5rKGNodW5rLCBpbmRleCk7CiAgICAgICAgICBjaHVuayA9IHNlYXJjaEZvcndhcmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IHRoaXMuYnlFbmRbY2h1bmsuc3RhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgICBfc3BsaXRDaHVuayhjaHVuaywgaW5kZXgpIHsKICAgICAgICBpZiAoY2h1bmsuZWRpdGVkICYmIGNodW5rLmNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBsb2MgPSBnZXRMb2NhdG9yKHRoaXMub3JpZ2luYWwpKGluZGV4KTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBhIGNodW5rIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBlZGl0ZWQgKCR7bG9jLmxpbmV9OiR7bG9jLmNvbHVtbn0gXHUyMDEzICIke2NodW5rLm9yaWdpbmFsfSIpYAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSBjaHVuay5zcGxpdChpbmRleCk7CiAgICAgICAgdGhpcy5ieUVuZFtpbmRleF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5U3RhcnRbaW5kZXhdID0gbmV3Q2h1bms7CiAgICAgICAgdGhpcy5ieUVuZFtuZXdDaHVuay5lbmRdID0gbmV3Q2h1bms7CiAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBuZXdDaHVuazsKICAgICAgICB0aGlzLmxhc3RTZWFyY2hlZENodW5rID0gY2h1bms7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgbGV0IHN0cjIgPSB0aGlzLmludHJvOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIHN0cjIgKz0gY2h1bmsudG9TdHJpbmcoKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cjIgKyB0aGlzLm91dHJvOwogICAgICB9CiAgICAgIGlzRW1wdHkoKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChjaHVuay5pbnRyby5sZW5ndGggJiYgY2h1bmsuaW50cm8udHJpbSgpIHx8IGNodW5rLmNvbnRlbnQubGVuZ3RoICYmIGNodW5rLmNvbnRlbnQudHJpbSgpIHx8IGNodW5rLm91dHJvLmxlbmd0aCAmJiBjaHVuay5vdXRyby50cmltKCkpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLm5leHQpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGxlbmd0aCgpIHsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgbGV0IGxlbmd0aCA9IDA7CiAgICAgICAgZG8gewogICAgICAgICAgbGVuZ3RoICs9IGNodW5rLmludHJvLmxlbmd0aCArIGNodW5rLmNvbnRlbnQubGVuZ3RoICsgY2h1bmsub3V0cm8ubGVuZ3RoOwogICAgICAgIH0gd2hpbGUgKGNodW5rID0gY2h1bmsubmV4dCk7CiAgICAgICAgcmV0dXJuIGxlbmd0aDsKICAgICAgfQogICAgICB0cmltTGluZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbSgiW1xcclxcbl0iKTsKICAgICAgfQogICAgICB0cmltKGNoYXJUeXBlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbVN0YXJ0KGNoYXJUeXBlKS50cmltRW5kKGNoYXJUeXBlKTsKICAgICAgfQogICAgICB0cmltRW5kQWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5sYXN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1FbmQocngpOwogICAgICAgICAgaWYgKGNodW5rLmVuZCAhPT0gZW5kKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RDaHVuayA9PT0gY2h1bmspIHsKICAgICAgICAgICAgICB0aGlzLmxhc3RDaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5lbmRdID0gY2h1bms7CiAgICAgICAgICAgIHRoaXMuYnlTdGFydFtjaHVuay5uZXh0LnN0YXJ0XSA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIHRoaXMuYnlFbmRbY2h1bmsubmV4dC5lbmRdID0gY2h1bmsubmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhYm9ydGVkKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfSB3aGlsZSAoY2h1bmspOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cmltRW5kKGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltRW5kQWJvcnRlZChjaGFyVHlwZSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0QWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1TdGFydChyeCk7CiAgICAgICAgICBpZiAoY2h1bmsuZW5kICE9PSBlbmQpIHsKICAgICAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICB0aGlzLmJ5RW5kW2NodW5rLmVuZF0gPSBjaHVuazsKICAgICAgICAgICAgdGhpcy5ieVN0YXJ0W2NodW5rLm5leHQuc3RhcnRdID0gY2h1bmsubmV4dDsKICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5uZXh0LmVuZF0gPSBjaHVuay5uZXh0OwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFib3J0ZWQpIHJldHVybiB0cnVlOwogICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgIH0gd2hpbGUgKGNodW5rKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltU3RhcnRBYm9ydGVkKGNoYXJUeXBlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBoYXNDaGFuZ2VkKCkgewogICAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsICE9PSB0aGlzLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VSZWdleHAoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgZnVuY3Rpb24gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHN0cjIpIHsKICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC5yZXBsYWNlKC9cJChcJHwmfFxkKykvZywgKF8sIGkpID0+IHsKICAgICAgICAgICAgICBpZiAoaSA9PT0gIiQiKSByZXR1cm4gIiQiOwogICAgICAgICAgICAgIGlmIChpID09PSAiJiIpIHJldHVybiBtYXRjaFswXTsKICAgICAgICAgICAgICBjb25zdCBudW0gPSAraTsKICAgICAgICAgICAgICBpZiAobnVtIDwgbWF0Y2gubGVuZ3RoKSByZXR1cm4gbWF0Y2hbK2ldOwogICAgICAgICAgICAgIHJldHVybiBgJCR7aX1gOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudCguLi5tYXRjaCwgbWF0Y2guaW5kZXgsIHN0cjIsIG1hdGNoLmdyb3Vwcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG1hdGNoQWxsKHJlLCBzdHIyKSB7CiAgICAgICAgICBsZXQgbWF0Y2g7CiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gW107CiAgICAgICAgICB3aGlsZSAobWF0Y2ggPSByZS5leGVjKHN0cjIpKSB7CiAgICAgICAgICAgIG1hdGNoZXMucHVzaChtYXRjaCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG1hdGNoQWxsKHNlYXJjaFZhbHVlLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICAgIG1hdGNoZXMuZm9yRWFjaCgobWF0Y2gpID0+IHsKICAgICAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudDIgPSBnZXRSZXBsYWNlbWVudChtYXRjaCwgdGhpcy5vcmlnaW5hbCk7CiAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50MiAhPT0gbWF0Y2hbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMub3JpZ2luYWwubWF0Y2goc2VhcmNoVmFsdWUpOwogICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQyID0gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHRoaXMub3JpZ2luYWwpOwogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQyICE9PSBtYXRjaFswXSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfcmVwbGFjZVN0cmluZyhzdHJpbmcsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgY29uc3QgeyBvcmlnaW5hbCB9ID0gdGhpczsKICAgICAgICBjb25zdCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsKICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7CiAgICAgICAgICB0aGlzLm92ZXJ3cml0ZShpbmRleCwgaW5kZXggKyBzdHJpbmcubGVuZ3RoLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBzZWFyY2hWYWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlU3RyaW5nKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlUmVnZXhwKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VBbGxTdHJpbmcoc3RyaW5nLCByZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IHsgb3JpZ2luYWwgfSA9IHRoaXM7CiAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICAgICAgICBmb3IgKGxldCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsgaW5kZXggIT09IC0xOyBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nLCBpbmRleCArIHN0cmluZ0xlbmd0aCkpIHsKICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gb3JpZ2luYWwuc2xpY2UoaW5kZXgsIGluZGV4ICsgc3RyaW5nTGVuZ3RoKTsKICAgICAgICAgIGlmIChwcmV2aW91cyAhPT0gcmVwbGFjZW1lbnQpIHRoaXMub3ZlcndyaXRlKGluZGV4LCBpbmRleCArIHN0cmluZ0xlbmd0aCwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCkgewogICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoVmFsdWUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUFsbFN0cmluZyhzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICBpZiAoIXNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIk1hZ2ljU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIGNhbGxlZCB3aXRoIGEgbm9uLWdsb2JhbCBSZWdFeHAgYXJndW1lbnQiCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZVJlZ2V4cChzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICB9CiAgICB9OwogICAgdmFyIGhhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OwogICAgdmFyIEJ1bmRsZSA9IGNsYXNzIF9CdW5kbGUgewogICAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHsKICAgICAgICB0aGlzLmludHJvID0gb3B0aW9ucy5pbnRybyB8fCAiIjsKICAgICAgICB0aGlzLnNlcGFyYXRvciA9IG9wdGlvbnMuc2VwYXJhdG9yICE9PSB2b2lkIDAgPyBvcHRpb25zLnNlcGFyYXRvciA6ICJcbiI7CiAgICAgICAgdGhpcy5zb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUgPSB7fTsKICAgICAgfQogICAgICBhZGRTb3VyY2Uoc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE1hZ2ljU3RyaW5nKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgICBjb250ZW50OiBzb3VyY2UsCiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIHNlcGFyYXRvcjogdGhpcy5zZXBhcmF0b3IKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzT2JqZWN0Mihzb3VyY2UpIHx8ICFzb3VyY2UuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiYnVuZGxlLmFkZFNvdXJjZSgpIHRha2VzIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRlbnRgIHByb3BlcnR5LCB3aGljaCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgTWFnaWNTdHJpbmcsIGFuZCBhbiBvcHRpb25hbCBgZmlsZW5hbWVgIgogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgWyJmaWxlbmFtZSIsICJpZ25vcmVMaXN0IiwgImluZGVudEV4Y2x1c2lvblJhbmdlcyIsICJzZXBhcmF0b3IiXS5mb3JFYWNoKChvcHRpb24pID0+IHsKICAgICAgICAgIGlmICghaGFzT3duUHJvcC5jYWxsKHNvdXJjZSwgb3B0aW9uKSkgc291cmNlW29wdGlvbl0gPSBzb3VyY2UuY29udGVudFtvcHRpb25dOwogICAgICAgIH0pOwogICAgICAgIGlmIChzb3VyY2Uuc2VwYXJhdG9yID09PSB2b2lkIDApIHsKICAgICAgICAgIHNvdXJjZS5zZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcjsKICAgICAgICB9CiAgICAgICAgaWYgKHNvdXJjZS5maWxlbmFtZSkgewogICAgICAgICAgaWYgKCFoYXNPd25Qcm9wLmNhbGwodGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUsIHNvdXJjZS5maWxlbmFtZSkpIHsKICAgICAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA9IHRoaXMudW5pcXVlU291cmNlcy5sZW5ndGg7CiAgICAgICAgICAgIHRoaXMudW5pcXVlU291cmNlcy5wdXNoKHsgZmlsZW5hbWU6IHNvdXJjZS5maWxlbmFtZSwgY29udGVudDogc291cmNlLmNvbnRlbnQub3JpZ2luYWwgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB1bmlxdWVTb3VyY2UgPSB0aGlzLnVuaXF1ZVNvdXJjZXNbdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXV07CiAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGVudC5vcmlnaW5hbCAhPT0gdW5pcXVlU291cmNlLmNvbnRlbnQpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgc291cmNlOiBzYW1lIGZpbGVuYW1lICgke3NvdXJjZS5maWxlbmFtZX0pLCBkaWZmZXJlbnQgY29udGVudHNgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChzb3VyY2UpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGFwcGVuZChzdHIyLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgY29udGVudDogbmV3IE1hZ2ljU3RyaW5nKHN0cjIpLAogICAgICAgICAgc2VwYXJhdG9yOiBvcHRpb25zICYmIG9wdGlvbnMuc2VwYXJhdG9yIHx8ICIiCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgYnVuZGxlID0gbmV3IF9CdW5kbGUoewogICAgICAgICAgaW50cm86IHRoaXMuaW50cm8sCiAgICAgICAgICBzZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9yCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgYnVuZGxlLmFkZFNvdXJjZSh7CiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZS5jb250ZW50LmNsb25lKCksCiAgICAgICAgICAgIHNlcGFyYXRvcjogc291cmNlLnNlcGFyYXRvcgogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGJ1bmRsZTsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucyA9IHt9KSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSBbXTsKICAgICAgICBsZXQgeF9nb29nbGVfaWdub3JlTGlzdCA9IHZvaWQgMDsKICAgICAgICB0aGlzLnNvdXJjZXMuZm9yRWFjaCgoc291cmNlKSA9PiB7CiAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UuY29udGVudC5zdG9yZWROYW1lcykuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAoIX5uYW1lcy5pbmRleE9mKG5hbWUpKSBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBuZXcgTWFwcGluZ3Mob3B0aW9ucy5oaXJlcyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICBtYXBwaW5ncy5hZHZhbmNlKHRoaXMuc2VwYXJhdG9yKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gc291cmNlLmZpbGVuYW1lID8gdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA6IC0xOwogICAgICAgICAgY29uc3QgbWFnaWNTdHJpbmcgPSBzb3VyY2UuY29udGVudDsKICAgICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IobWFnaWNTdHJpbmcub3JpZ2luYWwpOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLmludHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcuaW50cm8pOwogICAgICAgICAgfQogICAgICAgICAgbWFnaWNTdHJpbmcuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRlKGNodW5rLnN0YXJ0KTsKICAgICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCkgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5pbnRybyk7CiAgICAgICAgICAgIGlmIChzb3VyY2UuZmlsZW5hbWUpIHsKICAgICAgICAgICAgICBpZiAoY2h1bmsuZWRpdGVkKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRFZGl0KAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmsuY29udGVudCwKICAgICAgICAgICAgICAgICAgbG9jLAogICAgICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmssCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLm9yaWdpbmFsLAogICAgICAgICAgICAgICAgICBsb2MsCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLnNvdXJjZW1hcExvY2F0aW9ucwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5jb250ZW50KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLm91dHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcub3V0cm8pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZS5pZ25vcmVMaXN0ICYmIHNvdXJjZUluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBpZiAoeF9nb29nbGVfaWdub3JlTGlzdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdCA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHhfZ29vZ2xlX2lnbm9yZUxpc3QucHVzaChzb3VyY2VJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSA/IG9wdGlvbnMuZmlsZS5zcGxpdCgvWy9cXF0vKS5wb3AoKSA6IHZvaWQgMCwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maWxlID8gZ2V0UmVsYXRpdmVQYXRoKG9wdGlvbnMuZmlsZSwgc291cmNlLmZpbGVuYW1lKSA6IHNvdXJjZS5maWxlbmFtZTsKICAgICAgICAgIH0pLAogICAgICAgICAgc291cmNlc0NvbnRlbnQ6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmNsdWRlQ29udGVudCA/IHNvdXJjZS5jb250ZW50IDogbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nQ291bnRzID0ge307CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgY29uc3QgaW5kZW50U3RyID0gc291cmNlLmNvbnRlbnQuX2dldFJhd0luZGVudFN0cmluZygpOwogICAgICAgICAgaWYgKGluZGVudFN0ciA9PT0gbnVsbCkgcmV0dXJuOwogICAgICAgICAgaWYgKCFpbmRlbnRTdHJpbmdDb3VudHNbaW5kZW50U3RyXSkgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gPSAwOwogICAgICAgICAgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gKz0gMTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoaW5kZW50U3RyaW5nQ291bnRzKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICByZXR1cm4gaW5kZW50U3RyaW5nQ291bnRzW2FdIC0gaW5kZW50U3RyaW5nQ291bnRzW2JdOwogICAgICAgIH0pWzBdIHx8ICIJIjsKICAgICAgfQogICAgICBpbmRlbnQoaW5kZW50U3RyKSB7CiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICBpbmRlbnRTdHIgPSB0aGlzLmdldEluZGVudFN0cmluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgbGV0IHRyYWlsaW5nTmV3bGluZSA9ICF0aGlzLmludHJvIHx8IHRoaXMuaW50cm8uc2xpY2UoLTEpID09PSAiXG4iOwogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNvdXJjZS5zZXBhcmF0b3IgIT09IHZvaWQgMCA/IHNvdXJjZS5zZXBhcmF0b3IgOiB0aGlzLnNlcGFyYXRvcjsKICAgICAgICAgIGNvbnN0IGluZGVudFN0YXJ0ID0gdHJhaWxpbmdOZXdsaW5lIHx8IGkgPiAwICYmIC9ccj9cbiQvLnRlc3Qoc2VwYXJhdG9yKTsKICAgICAgICAgIHNvdXJjZS5jb250ZW50LmluZGVudChpbmRlbnRTdHIsIHsKICAgICAgICAgICAgZXhjbHVkZTogc291cmNlLmluZGVudEV4Y2x1c2lvblJhbmdlcywKICAgICAgICAgICAgaW5kZW50U3RhcnQKICAgICAgICAgICAgLy86IHRyYWlsaW5nTmV3bGluZSB8fCAvXHI/XG4kLy50ZXN0KCBzZXBhcmF0b3IgKSAgLy90cnVlLy8vXHI/XG4vLnRlc3QoIHNlcGFyYXRvciApCiAgICAgICAgICB9KTsKICAgICAgICAgIHRyYWlsaW5nTmV3bGluZSA9IHNvdXJjZS5jb250ZW50Lmxhc3RDaGFyKCkgPT09ICJcbiI7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBpbmRlbnRTdHIgKyB0aGlzLmludHJvLnJlcGxhY2UoL15bXlxuXS9nbSwgKG1hdGNoLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gaW5kZXggPiAwID8gaW5kZW50U3RyICsgbWF0Y2ggOiBtYXRjaDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBwcmVwZW5kKHN0cjIpIHsKICAgICAgICB0aGlzLmludHJvID0gc3RyMiArIHRoaXMuaW50cm87CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuc291cmNlcy5tYXAoKHNvdXJjZSwgaSkgPT4gewogICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc291cmNlLnNlcGFyYXRvciAhPT0gdm9pZCAwID8gc291cmNlLnNlcGFyYXRvciA6IHRoaXMuc2VwYXJhdG9yOwogICAgICAgICAgY29uc3Qgc3RyMiA9IChpID4gMCA/IHNlcGFyYXRvciA6ICIiKSArIHNvdXJjZS5jb250ZW50LnRvU3RyaW5nKCk7CiAgICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgICB9KS5qb2luKCIiKTsKICAgICAgICByZXR1cm4gdGhpcy5pbnRybyArIGJvZHk7CiAgICAgIH0KICAgICAgaXNFbXB0eSgpIHsKICAgICAgICBpZiAodGhpcy5pbnRyby5sZW5ndGggJiYgdGhpcy5pbnRyby50cmltKCkpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VzLnNvbWUoKHNvdXJjZSkgPT4gIXNvdXJjZS5jb250ZW50LmlzRW1wdHkoKSkpIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBsZW5ndGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlcy5yZWR1Y2UoCiAgICAgICAgICAobGVuZ3RoLCBzb3VyY2UpID0+IGxlbmd0aCArIHNvdXJjZS5jb250ZW50Lmxlbmd0aCgpLAogICAgICAgICAgdGhpcy5pbnRyby5sZW5ndGgKICAgICAgICApOwogICAgICB9CiAgICAgIHRyaW1MaW5lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltKCJbXFxyXFxuXSIpOwogICAgICB9CiAgICAgIHRyaW0oY2hhclR5cGUpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltU3RhcnQoY2hhclR5cGUpLnRyaW1FbmQoY2hhclR5cGUpOwogICAgICB9CiAgICAgIHRyaW1TdGFydChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKCF0aGlzLmludHJvKSB7CiAgICAgICAgICBsZXQgc291cmNlOwogICAgICAgICAgbGV0IGkgPSAwOwogICAgICAgICAgZG8gewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbaSsrXTsKICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAoIXNvdXJjZS5jb250ZW50LnRyaW1TdGFydEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbUVuZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgbGV0IHNvdXJjZTsKICAgICAgICBsZXQgaSA9IHRoaXMuc291cmNlcy5sZW5ndGggLSAxOwogICAgICAgIGRvIHsKICAgICAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlc1tpLS1dOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICghc291cmNlLmNvbnRlbnQudHJpbUVuZEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgfTsKICAgIE1hZ2ljU3RyaW5nLkJ1bmRsZSA9IEJ1bmRsZTsKICAgIE1hZ2ljU3RyaW5nLlNvdXJjZU1hcCA9IFNvdXJjZU1hcDsKICAgIE1hZ2ljU3RyaW5nLmRlZmF1bHQgPSBNYWdpY1N0cmluZzsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hZ2ljU3RyaW5nOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcwp2YXIgcmVxdWlyZV9yZWNvcmRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBleHBvcnRzMi5JbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBtYWdpY19zdHJpbmdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlX21hZ2ljX3N0cmluZ19janMoKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5kZXgsIG1pbiwgbWF4ID0gSW5maW5pdHkpIHsKICAgICAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uID0gSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uOwogICAgdmFyIFVwZGF0ZVJlY29yZGVyQmFzZSA9IGNsYXNzIF9VcGRhdGVSZWNvcmRlckJhc2UgewogICAgICBkYXRhOwogICAgICBib207CiAgICAgIF9wYXRoOwogICAgICBjb250ZW50OwogICAgICBjb25zdHJ1Y3RvcihkYXRhLCBwYXRoLCBlbmNvZGluZyA9ICJ1dGYtOCIsIGJvbSA9IGZhbHNlKSB7CiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgICB0aGlzLmJvbSA9IGJvbTsKICAgICAgICBsZXQgdGV4dDsKICAgICAgICB0cnkgewogICAgICAgICAgdGV4dCA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZywgeyBmYXRhbDogdHJ1ZSwgaWdub3JlQk9NOiBmYWxzZSB9KS5kZWNvZGUoZGF0YSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyAke2VuY29kaW5nfSB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5jb250ZW50ID0gbmV3IG1hZ2ljX3N0cmluZ18xLmRlZmF1bHQodGV4dCk7CiAgICAgIH0KICAgICAgc3RhdGljIGNyZWF0ZUZyb21GaWxlRW50cnkoZW50cnkpIHsKICAgICAgICBjb25zdCBjMCA9IGVudHJ5LmNvbnRlbnQuYnl0ZUxlbmd0aCA+IDAgJiYgZW50cnkuY29udGVudC5yZWFkVUludDgoMCk7CiAgICAgICAgY29uc3QgYzEgPSBlbnRyeS5jb250ZW50LmJ5dGVMZW5ndGggPiAxICYmIGVudHJ5LmNvbnRlbnQucmVhZFVJbnQ4KDEpOwogICAgICAgIGNvbnN0IGMyID0gZW50cnkuY29udGVudC5ieXRlTGVuZ3RoID4gMiAmJiBlbnRyeS5jb250ZW50LnJlYWRVSW50OCgyKTsKICAgICAgICBpZiAoYzAgPT0gMjM5ICYmIGMxID09IDE4NyAmJiBjMiA9PSAxOTEpIHsKICAgICAgICAgIHJldHVybiBuZXcgX1VwZGF0ZVJlY29yZGVyQmFzZShlbnRyeS5jb250ZW50LCBlbnRyeS5wYXRoLCAidXRmLTgiLCB0cnVlKTsKICAgICAgICB9IGVsc2UgaWYgKGMwID09PSAyNTUgJiYgYzEgPT0gMjU0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCwgInV0Zi0xNmxlIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChjMCA9PT0gMjU0ICYmIGMxID09IDI1NSkgewogICAgICAgICAgcmV0dXJuIG5ldyBfVXBkYXRlUmVjb3JkZXJCYXNlKGVudHJ5LmNvbnRlbnQsIGVudHJ5LnBhdGgsICJ1dGYtMTZiZSIsIHRydWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IHBhdGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7CiAgICAgIH0KICAgICAgX2Fzc2VydEluZGV4KGluZGV4KSB7CiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpIHsKICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24oaW5kZXgsIDAsIHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLgogICAgICBpbnNlcnRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50LnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGluc2VydFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRSaWdodChpbmRleCwgY29udGVudC50b1N0cmluZygpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZW1vdmUoaW5kZXgsIGxlbmd0aCkgewogICAgICAgIHRoaXMuX2Fzc2VydEluZGV4KGluZGV4KTsKICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlKGluZGV4LCBpbmRleCArIGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYXBwbHkoY29udGVudCkgewogICAgICAgIGlmICghY29udGVudC5lcXVhbHModGhpcy5kYXRhKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHRoaXMucGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKCh0aGlzLmJvbSA/ICJcdUZFRkYiIDogIiIpICsgdGhpcy5jb250ZW50LnRvU3RyaW5nKCksICJ1dGYtOCIpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBVcGRhdGVSZWNvcmRlckJhc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2NvcGVkVHJlZSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGRlbGVnYXRlXzEgPSByZXF1aXJlX2RlbGVnYXRlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBTY29wZWRGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9iYXNlOwogICAgICBzY29wZTsKICAgICAgY29uc3RydWN0b3IoX2Jhc2UsIHNjb3BlKSB7CiAgICAgICAgdGhpcy5fYmFzZSA9IF9iYXNlOwogICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuc2NvcGUsIHRoaXMuX2Jhc2UucGF0aCkpOwogICAgICB9CiAgICAgIGdldCBjb250ZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmNvbnRlbnQ7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkRGlyRW50cnkgPSBjbGFzcyBfU2NvcGVkRGlyRW50cnkgewogICAgICBfYmFzZTsKICAgICAgc2NvcGU7CiAgICAgIGNvbnN0cnVjdG9yKF9iYXNlLCBzY29wZSkgewogICAgICAgIHRoaXMuX2Jhc2UgPSBfYmFzZTsKICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgIH0KICAgICAgZ2V0IHBhcmVudCgpIHsKICAgICAgICBpZiAoIXRoaXMuX2Jhc2UucGFyZW50IHx8IHRoaXMuX2Jhc2UucGF0aCA9PSB0aGlzLnNjb3BlKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBfU2NvcGVkRGlyRW50cnkodGhpcy5fYmFzZS5wYXJlbnQsIHRoaXMuc2NvcGUpOwogICAgICB9CiAgICAgIGdldCBwYXRoKCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgdGhpcy5fYmFzZS5wYXRoKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmRpcnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZGlyczsKICAgICAgfQogICAgICBnZXQgc3ViZmlsZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZmlsZXM7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZGlyKG5hbWUpOwogICAgICAgIHJldHVybiBlbnRyeSAmJiBuZXcgX1Njb3BlZERpckVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZmlsZShuYW1lKTsKICAgICAgICByZXR1cm4gZW50cnkgJiYgbmV3IFNjb3BlZEZpbGVFbnRyeShlbnRyeSwgdGhpcy5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLnZpc2l0KChwYXRoLCBlbnRyeSkgPT4gewogICAgICAgICAgdmlzaXRvcigoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgcGF0aCkpLCBlbnRyeSAmJiBuZXcgU2NvcGVkRmlsZUVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkVHJlZSA9IGNsYXNzIF9TY29wZWRUcmVlIHsKICAgICAgX2Jhc2U7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihfYmFzZSwgc2NvcGUpIHsKICAgICAgICB0aGlzLl9iYXNlID0gX2Jhc2U7CiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIiArIHNjb3BlKTsKICAgICAgICB0aGlzLl9yb290ID0gbmV3IFNjb3BlZERpckVudHJ5KHRoaXMuX2Jhc2UuZ2V0RGlyKG5vcm1hbGl6ZWRTY29wZSksIG5vcm1hbGl6ZWRTY29wZSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX1Njb3BlZFRyZWUodGhpcy5fYmFzZS5icmFuY2goKSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgbWVyZ2Uob3RoZXIsIHN0cmF0ZWd5KSB7CiAgICAgICAgY29uc3Qgc2VsZjIgPSB0aGlzOwogICAgICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGNsYXNzIGV4dGVuZHMgZGVsZWdhdGVfMS5EZWxlZ2F0ZVRyZWUgewogICAgICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgICAgIHJldHVybiBvdGhlci5hY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiBzZWxmMi5fZnVsbFBhdGhBY3Rpb24oYWN0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfShvdGhlcik7CiAgICAgICAgdGhpcy5fYmFzZS5tZXJnZShkZWxlZ2F0ZSwgc3RyYXRlZ3kpOwogICAgICB9CiAgICAgIC8vIFJlYWRvbmx5LgogICAgICByZWFkKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkKHRoaXMuX2Z1bGxQYXRoKHBhdGgpKTsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVhZFRleHQodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlYWRKc29uKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkSnNvbih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5leGlzdHModGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldCh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWRGaWxlRW50cnkoZW50cnksIHRoaXMuX3Jvb3Quc2NvcGUpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldERpcih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWREaXJFbnRyeShlbnRyeSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uub3ZlcndyaXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuYmVnaW5VcGRhdGUodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5jb21taXRVcGRhdGUocmVjb3JkKTsKICAgICAgfQogICAgICAvLyBTdHJ1Y3R1cmFsIG1ldGhvZHMuCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuY3JlYXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmRlbGV0ZSh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVuYW1lKHRoaXMuX2Z1bGxQYXRoKGZyb20pLCB0aGlzLl9mdWxsUGF0aCh0bykpOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5hcHBseSh0aGlzLl9mdWxsUGF0aEFjdGlvbihhY3Rpb24pLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgY29uc3Qgc2NvcGVkQWN0aW9ucyA9IFtdOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuX2Jhc2UuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFhY3Rpb24ucGF0aC5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFjdGlvbi5raW5kICE9PSAiciIpIHsKICAgICAgICAgICAgc2NvcGVkQWN0aW9ucy5wdXNoKHsKICAgICAgICAgICAgICAuLi5hY3Rpb24sCiAgICAgICAgICAgICAgcGF0aDogKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuX3Jvb3Quc2NvcGUsIGFjdGlvbi5wYXRoKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi50by5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIHNjb3BlZEFjdGlvbnMucHVzaCh7CiAgICAgICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgICAgIHBhdGg6ICgwLCBjb3JlXzEuam9pbikoY29yZV8xLk5vcm1hbGl6ZWRSb290LCAoMCwgY29yZV8xLnJlbGF0aXZlKSh0aGlzLl9yb290LnNjb3BlLCBhY3Rpb24ucGF0aCkpLAogICAgICAgICAgICAgIHRvOiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5fcm9vdC5zY29wZSwgYWN0aW9uLnRvKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBzY29wZWRBY3Rpb25zOwogICAgICB9CiAgICAgIFtpbnRlcmZhY2VfMS5UcmVlU3ltYm9sXSgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfZnVsbFBhdGgocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKHRoaXMuX3Jvb3Quc2NvcGUsICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgX2Z1bGxQYXRoQWN0aW9uKGFjdGlvbikgewogICAgICAgIGxldCBmdWxsUGF0aEFjdGlvbjsKICAgICAgICBpZiAoYWN0aW9uLmtpbmQgPT09ICJyIikgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpLAogICAgICAgICAgICB0bzogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnRvKQogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVsbFBhdGhBY3Rpb247CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZWRUcmVlID0gU2NvcGVkVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaG9zdC10cmVlLmpzCnZhciByZXF1aXJlX2hvc3RfdHJlZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9ob3N0LXRyZWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gZXhwb3J0czIuSG9zdENyZWF0ZVRyZWUgPSBleHBvcnRzMi5Ib3N0VHJlZSA9IGV4cG9ydHMyLkhvc3REaXJFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBkZWxlZ2F0ZV8xID0gcmVxdWlyZV9kZWxlZ2F0ZSgpOwogICAgdmFyIGVudHJ5XzEgPSByZXF1aXJlX2VudHJ5KCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciByZWNvcmRlcl8xID0gcmVxdWlyZV9yZWNvcmRlcigpOwogICAgdmFyIHNjb3BlZF8xID0gcmVxdWlyZV9zY29wZWQyKCk7CiAgICB2YXIgX3VuaXF1ZUlkID0gMDsKICAgIHZhciBIb3N0RGlyRW50cnkgPSBjbGFzcyB7CiAgICAgIHBhcmVudDsKICAgICAgcGF0aDsKICAgICAgX2hvc3Q7CiAgICAgIF90cmVlOwogICAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHBhdGgsIF9ob3N0LCBfdHJlZSkgewogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5faG9zdCA9IF9ob3N0OwogICAgICAgIHRoaXMuX3RyZWUgPSBfdHJlZTsKICAgICAgfQogICAgICBnZXQgc3ViZGlycygpIHsKICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5saXN0KHRoaXMucGF0aCkuZmlsdGVyKChmcmFnbWVudCkgPT4gdGhpcy5faG9zdC5pc0RpcmVjdG9yeSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmZpbGVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0Lmxpc3QodGhpcy5wYXRoKS5maWx0ZXIoKGZyYWdtZW50KSA9PiB0aGlzLl9ob3N0LmlzRmlsZSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXREaXIoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXQoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHRoaXMuZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpLmZvckVhY2goKGZpbGUpID0+IHZpc2l0b3IoZmlsZS5wYXRoLCBmaWxlKSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgIT09IGludGVyZmFjZV8xLkZpbGVWaXNpdG9yQ2FuY2VsVG9rZW4pIHsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpIHsKICAgICAgICBmdW5jdGlvbiBfcmVjdXJzZShlbnRyeSkgewogICAgICAgICAgcmV0dXJuIGVudHJ5LnN1YmRpcnMucmVkdWNlKChmaWxlcywgc3ViZGlyKSA9PiBbLi4uZmlsZXMsIC4uLl9yZWN1cnNlKGVudHJ5LmRpcihzdWJkaXIpKV0sIGVudHJ5LnN1YmZpbGVzLm1hcCgoc3ViZmlsZSkgPT4gZW50cnkuZmlsZShzdWJmaWxlKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3JlY3Vyc2UodGhpcyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Ib3N0RGlyRW50cnkgPSBIb3N0RGlyRW50cnk7CiAgICB2YXIgSG9zdFRyZWUgPSBjbGFzcyBfSG9zdFRyZWUgewogICAgICBfYmFja2VuZDsKICAgICAgX2lkID0gLS1fdW5pcXVlSWQ7CiAgICAgIF9yZWNvcmQ7CiAgICAgIF9yZWNvcmRTeW5jOwogICAgICBfYW5jZXN0cnkgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZGlyQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgc3RhdGljIGlzSG9zdFRyZWUodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiB0cmVlID09PSAib2JqZWN0IiAmJiB0eXBlb2YgdHJlZS5fYW5jZXN0cnkgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrZW5kID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuRW1wdHkoKSkgewogICAgICAgIHRoaXMuX2JhY2tlbmQgPSBfYmFja2VuZDsKICAgICAgICB0aGlzLl9yZWNvcmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5Db3JkSG9zdChuZXcgY29yZV8xLnZpcnR1YWxGcy5TYWZlUmVhZG9ubHlIb3N0KF9iYWNrZW5kKSk7CiAgICAgICAgdGhpcy5fcmVjb3JkU3luYyA9IG5ldyBjb3JlXzEudmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcy5fcmVjb3JkKTsKICAgICAgfQogICAgICBfbm9ybWFsaXplUGF0aChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfd2lsbENyZWF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsQ3JlYXRlKHBhdGgpOwogICAgICB9CiAgICAgIF93aWxsT3ZlcndyaXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkLndpbGxPdmVyd3JpdGUocGF0aCk7CiAgICAgIH0KICAgICAgX3dpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmQud2lsbERlbGV0ZShwYXRoKTsKICAgICAgfQogICAgICBfd2lsbFJlbmFtZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsUmVuYW1lKHBhdGgpOwogICAgICB9CiAgICAgIGJyYW5jaCgpIHsKICAgICAgICBjb25zdCBicmFuY2hlZFRyZWUgPSBuZXcgX0hvc3RUcmVlKHRoaXMuX2JhY2tlbmQpOwogICAgICAgIGJyYW5jaGVkVHJlZS5fcmVjb3JkID0gdGhpcy5fcmVjb3JkLmNsb25lKCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9yZWNvcmRTeW5jID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChicmFuY2hlZFRyZWUuX3JlY29yZCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9hbmNlc3RyeSA9IG5ldyBTZXQodGhpcy5fYW5jZXN0cnkpLmFkZCh0aGlzLl9pZCk7CiAgICAgICAgcmV0dXJuIGJyYW5jaGVkVHJlZTsKICAgICAgfQogICAgICBpc0FuY2VzdG9yT2YodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJlZS5fYW5jZXN0cnkuaGFzKHRoaXMuX2lkKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBkZWxlZ2F0ZV8xLkRlbGVnYXRlVHJlZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbmNlc3Rvck9mKHRyZWUuX290aGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBzY29wZWRfMS5TY29wZWRUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FuY2VzdG9yT2YodHJlZS5fYmFzZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBtZXJnZShvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgICBpZiAob3RoZXIgPT09IHRoaXMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuaXNBbmNlc3Rvck9mKG90aGVyKSkgewogICAgICAgICAgc3RyYXRlZ3kgfD0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGU7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNyZWF0aW9uQ29uZmxpY3RBbGxvd2VkID0gKHN0cmF0ZWd5ICYgaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0NyZWF0aW9uQ29uZmxpY3QpID09IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0OwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dPdmVyd3JpdGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0OwogICAgICAgIGNvbnN0IGRlbGV0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dEZWxldGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0RlbGV0ZUNvbmZsaWN0OwogICAgICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOiB7CiAgICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBjb250ZW50IH0gPSBhY3Rpb247CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxDcmVhdGUocGF0aCkgfHwgdGhpcy5fd2lsbE92ZXJ3cml0ZShwYXRoKSB8fCB0aGlzLmV4aXN0cyhwYXRoKSkgewogICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDb250ZW50ID0gdGhpcy5yZWFkKHBhdGgpOwogICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ29udGVudCAmJiBjb250ZW50LmVxdWFscyhleGlzdGluZ0NvbnRlbnQpKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghY3JlYXRpb25Db25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQuY3JlYXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAibyI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSAmJiAhb3ZlcndyaXRlQ29uZmxpY3RBbGxvd2VkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxPdmVyd3JpdGUocGF0aCkpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgJiYgY29udGVudC5lcXVhbHMoZXhpc3RpbmdDb250ZW50KSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIW92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkLndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlICJyIjogewogICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgdG8gfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0aGlzLl93aWxsUmVuYW1lKHBhdGgpKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkLndpbGxSZW5hbWVUbyhwYXRoLCB0bykpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucmVuYW1lKHBhdGgsIHRvKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAiZCI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHBhdGgpICYmICFkZWxldGVDb25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5NZXJnZUNvbmZsaWN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTeW5jLmRlbGV0ZShwYXRoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBnZXQgcm9vdCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXREaXIoIi8iKTsKICAgICAgfQogICAgICAvLyBSZWFkb25seS4KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoInV0Zi04IiwgeyBmYXRhbDogdHJ1ZSB9KTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGRhdGEpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yIHx8IGUuY29kZSA9PT0gIkVSUl9FTkNPRElOR19JTlZBTElEX0VOQ09ERURfREFUQSIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyBVVEYtOCB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnJlYWRUZXh0KHBhdGgpOwogICAgICAgIGNvbnN0IGVycm9ycyA9IFtdOwogICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBqc29uY19wYXJzZXJfMS5wYXJzZSkoY29udGVudCwgZXJyb3JzLCB7IGFsbG93VHJhaWxpbmdDb21tYTogdHJ1ZSB9KTsKICAgICAgICBpZiAoZXJyb3JzWzBdKSB7CiAgICAgICAgICBjb25zdCB7IGVycm9yLCBvZmZzZXQgfSA9IGVycm9yc1swXTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlICIke3BhdGh9IiBhcyBKU09OLiAkeygwLCBqc29uY19wYXJzZXJfMS5wcmludFBhcnNlRXJyb3JDb2RlKShlcnJvcil9IGF0IG9mZnNldDogJHtvZmZzZXR9LmApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN5bmMuaXNGaWxlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX3JlY29yZFN5bmMuaXNEaXJlY3RvcnkocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuX3JlY29yZFN5bmMuZXhpc3RzKHApKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBlbnRyeV8xLkxhenlGaWxlRW50cnkocCwgKCkgPT4gQnVmZmVyLmZyb20odGhpcy5fcmVjb3JkU3luYy5yZWFkKHApKSk7CiAgICAgIH0KICAgICAgZ2V0RGlyKHBhdGgpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5pc0ZpbGUocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihwKTsKICAgICAgICB9CiAgICAgICAgbGV0IG1heWJlQ2FjaGUgPSB0aGlzLl9kaXJDYWNoZS5nZXQocCk7CiAgICAgICAgaWYgKCFtYXliZUNhY2hlKSB7CiAgICAgICAgICBsZXQgcGFyZW50ID0gKDAsIGNvcmVfMS5kaXJuYW1lKShwKTsKICAgICAgICAgIGlmIChwID09PSBwYXJlbnQpIHsKICAgICAgICAgICAgcGFyZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIG1heWJlQ2FjaGUgPSBuZXcgSG9zdERpckVudHJ5KHBhcmVudCAmJiB0aGlzLmdldERpcihwYXJlbnQpLCBwLCB0aGlzLl9yZWNvcmRTeW5jLCB0aGlzKTsKICAgICAgICAgIHRoaXMuX2RpckNhY2hlLnNldChwLCBtYXliZUNhY2hlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heWJlQ2FjaGU7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHRoaXMucm9vdC52aXNpdCgocGF0aCwgZW50cnkpID0+IHsKICAgICAgICAgIHZpc2l0b3IocGF0aCwgZW50cnkpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTeW5jLmV4aXN0cyhwKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgY29udGVudCA9PSAic3RyaW5nIiA/IEJ1ZmZlci5mcm9tKGNvbnRlbnQpIDogY29udGVudDsKICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHAsIGMpLnN1YnNjcmliZSgpOwogICAgICB9CiAgICAgIGJlZ2luVXBkYXRlKHBhdGgpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVjb3JkZXJfMS5VcGRhdGVSZWNvcmRlckJhc2UuY3JlYXRlRnJvbUZpbGVFbnRyeShlbnRyeSk7CiAgICAgIH0KICAgICAgY29tbWl0VXBkYXRlKHJlY29yZCkgewogICAgICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSkgewogICAgICAgICAgY29uc3QgcGF0aCA9IHJlY29yZC5wYXRoOwogICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlY29yZC5hcHBseShlbnRyeS5jb250ZW50KTsKICAgICAgICAgICAgaWYgKCFuZXdDb250ZW50LmVxdWFscyhlbnRyeS5jb250ZW50KSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKHBhdGgsIG5ld0NvbnRlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5JbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIFN0cnVjdHVyYWwgbWV0aG9kcy4KICAgICAgY3JlYXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5leGlzdHMocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBjb25zdCBjID0gdHlwZW9mIGNvbnRlbnQgPT0gInN0cmluZyIgPyBCdWZmZXIuZnJvbShjb250ZW50KSA6IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5fcmVjb3JkLmNyZWF0ZShwLCBjKS5zdWJzY3JpYmUoKTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMuZGVsZXRlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMucmVuYW1lKHRoaXMuX25vcm1hbGl6ZVBhdGgoZnJvbSksIHRoaXMuX25vcm1hbGl6ZVBhdGgodG8pKTsKICAgICAgfQogICAgICBhcHBseShhY3Rpb24sIHN0cmF0ZWd5KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIkFwcGx5IG5vdCBpbXBsZW1lbnRlZCBvbiBob3N0IHRyZWVzLiIpOwogICAgICB9CiAgICAgICpnZW5lcmF0ZUFjdGlvbnMoKSB7CiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgdGhpcy5fcmVjb3JkLnJlY29yZHMoKSkgewogICAgICAgICAgc3dpdGNoIChyZWNvcmQua2luZCkgewogICAgICAgICAgICBjYXNlICJjcmVhdGUiOgogICAgICAgICAgICAgIHlpZWxkIHsKICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9pZCwKICAgICAgICAgICAgICAgIHBhcmVudDogMCwKICAgICAgICAgICAgICAgIGtpbmQ6ICJjIiwKICAgICAgICAgICAgICAgIHBhdGg6IHJlY29yZC5wYXRoLAogICAgICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20ocmVjb3JkLmNvbnRlbnQpCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAibyIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IEJ1ZmZlci5mcm9tKHJlY29yZC5jb250ZW50KQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInJlbmFtZSI6CiAgICAgICAgICAgICAgeWllbGQgewogICAgICAgICAgICAgICAgaWQ6IHRoaXMuX2lkLAogICAgICAgICAgICAgICAgcGFyZW50OiAwLAogICAgICAgICAgICAgICAga2luZDogInIiLAogICAgICAgICAgICAgICAgcGF0aDogcmVjb3JkLmZyb20sCiAgICAgICAgICAgICAgICB0bzogcmVjb3JkLnRvCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAiZCIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGdldCBhY3Rpb25zKCkgewogICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ2VuZXJhdGVBY3Rpb25zKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSG9zdFRyZWUgPSBIb3N0VHJlZTsKICAgIHZhciBIb3N0Q3JlYXRlVHJlZSA9IGNsYXNzIGV4dGVuZHMgSG9zdFRyZWUgewogICAgICBjb25zdHJ1Y3Rvcihob3N0KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBjb25zdCB0ZW1wSG9zdCA9IG5ldyBIb3N0VHJlZShob3N0KTsKICAgICAgICB0ZW1wSG9zdC52aXNpdCgocGF0aCkgPT4gewogICAgICAgICAgY29uc3QgY29udGVudCA9IHRlbXBIb3N0LnJlYWQocGF0aCk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RDcmVhdGVUcmVlID0gSG9zdENyZWF0ZVRyZWU7CiAgICB2YXIgRmlsdGVySG9zdFRyZWUgPSBjbGFzcyBleHRlbmRzIEhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IodHJlZSwgZmlsdGVyID0gKCkgPT4gdHJ1ZSkgewogICAgICAgIGNvbnN0IG5ld0JhY2tlbmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5TaW1wbGVNZW1vcnlIb3N0KCk7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCYWNrZW5kID0gdHJlZS5fYmFja2VuZDsKICAgICAgICBjb25zdCBwZW5kaW5nUGF0aHMgPSBbIi8iXTsKICAgICAgICB3aGlsZSAocGVuZGluZ1BhdGhzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGVuZGluZ1BhdGhzLnBvcCgpOwogICAgICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSB2b2lkIDApIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgaXNEaXJlY3RvcnkgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0RpcmVjdG9yeShjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGlzRGlyZWN0b3J5ID0gdmFsKTsKICAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQubGlzdChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IHBlbmRpbmdQYXRocy5wdXNoKC4uLnZhbC5tYXAoKHApID0+ICgwLCBjb3JlXzEuam9pbikoY3VycmVudFBhdGgsIHApKSkpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBpc0ZpbGUgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0ZpbGUoY3VycmVudFBhdGgpLnN1YnNjcmliZSgodmFsKSA9PiBpc0ZpbGUgPSB2YWwpOwogICAgICAgICAgaWYgKCFpc0ZpbGUgfHwgIWZpbHRlcihjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgY29udGVudCA9IG51bGw7CiAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQucmVhZChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGNvbnRlbnQgPSB2YWwpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHsKICAgICAgICAgICAgbmV3QmFja2VuZC53cml0ZShjdXJyZW50UGF0aCwgY29udGVudCkuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyKG5ld0JhY2tlbmQpOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRyZWUuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFmaWx0ZXIoYWN0aW9uLnBhdGgpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgICB0aGlzLmNyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInIiOgogICAgICAgICAgICAgIHRoaXMucmVuYW1lKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gRmlsdGVySG9zdFRyZWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3N0YXRpYy5qcwp2YXIgcmVxdWlyZV9zdGF0aWMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbXB0eSA9IGVtcHR5OwogICAgZXhwb3J0czIuYnJhbmNoID0gYnJhbmNoOwogICAgZXhwb3J0czIubWVyZ2UgPSBtZXJnZTI7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gbmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKCk7CiAgICB9CiAgICBmdW5jdGlvbiBicmFuY2godHJlZSkgewogICAgICByZXR1cm4gdHJlZS5icmFuY2goKTsKICAgIH0KICAgIGZ1bmN0aW9uIG1lcmdlMih0cmVlLCBvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgdHJlZS5tZXJnZShvdGhlciwgc3RyYXRlZ3kpOwogICAgICByZXR1cm4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnRpdGlvbih0cmVlLCBwcmVkaWNhdGUpIHsKICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBob3N0X3RyZWVfMS5Ib3N0VHJlZSkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKSwKICAgICAgICAgIG5ldyBob3N0X3RyZWVfMS5GaWx0ZXJIb3N0VHJlZSh0cmVlLCAocGF0aCwgZW50cnkpID0+ICFwcmVkaWNhdGUocGF0aCwgZW50cnkpKQogICAgICAgIF07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwuanMKdmFyIHJlcXVpcmVfbnVsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9udWxsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsVHJlZSA9IGV4cG9ydHMyLk51bGxUcmVlRGlyRW50cnkgPSBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIHJlY29yZGVyXzEgPSByZXF1aXJlX3JlY29yZGVyKCk7CiAgICB2YXIgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYENhbm5vdCBjcmVhdGUgZmlsZSAiJHtwYXRofSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbjsKICAgIHZhciBOdWxsVHJlZURpckVudHJ5ID0gY2xhc3MgX051bGxUcmVlRGlyRW50cnkgewogICAgICBwYXRoOwogICAgICBnZXQgcGFyZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gIi8iID8gbnVsbCA6IG5ldyBfTnVsbFRyZWVEaXJFbnRyeSgoMCwgY29yZV8xLmRpcm5hbWUpKHRoaXMucGF0aCkpOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICB0aGlzLnBhdGggPSBwYXRoOwogICAgICB9CiAgICAgIHN1YmRpcnMgPSBbXTsKICAgICAgc3ViZmlsZXMgPSBbXTsKICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gbmV3IF9OdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEuam9pbikodGhpcy5wYXRoLCBuYW1lKSk7CiAgICAgIH0KICAgICAgZmlsZShfbmFtZSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHZpc2l0KCkgewogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWVEaXJFbnRyeSA9IE51bGxUcmVlRGlyRW50cnk7CiAgICB2YXIgTnVsbFRyZWUgPSBjbGFzcyBfTnVsbFRyZWUgewogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX051bGxUcmVlKCk7CiAgICAgIH0KICAgICAgbWVyZ2UoX290aGVyLCBfc3RyYXRlZ3kpIHsKICAgICAgfQogICAgICByb290ID0gbmV3IE51bGxUcmVlRGlyRW50cnkoKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIikpOwogICAgICAvLyBTaW1wbGUgcmVhZG9ubHkgZmlsZSBzeXN0ZW0gb3BlcmF0aW9ucy4KICAgICAgZXhpc3RzKF9wYXRoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHJlYWQoX3BhdGgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGdldChfcGF0aCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgdmlzaXQoKSB7CiAgICAgIH0KICAgICAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy4KICAgICAgYmVnaW5VcGRhdGUocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSA/IHJlY29yZC5wYXRoIDogIjx1bmtub3duPiIpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBzdHJ1Y3R1cmUgb2YgdGhlIGhvc3QuCiAgICAgIGNvcHkocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgX2NvbnRlbnQpIHsKICAgICAgICB0aHJvdyBuZXcgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgYXBwbHkoX2FjdGlvbiwgX3N0cmF0ZWd5KSB7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWUgPSBOdWxsVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2NhbGwuanMKdmFyIHJlcXVpcmVfY2FsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW52YWxpZFNvdXJjZVJlc3VsdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuY2FsbFNvdXJjZSA9IGNhbGxTb3VyY2U7CiAgICBleHBvcnRzMi5jYWxsUnVsZSA9IGNhbGxSdWxlOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgZnVuY3Rpb24gX2dldFR5cGVPZlJlc3VsdCh2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgIHJldHVybiAidW5kZWZpbmVkIjsKICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiAibnVsbCI7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICJmdW5jdGlvbiIpIHsKICAgICAgICByZXR1cm4gYEZ1bmN0aW9uKClgOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPSAib2JqZWN0IikgewogICAgICAgIHJldHVybiBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09IE9iamVjdCkgewogICAgICAgICAgcmV0dXJuIGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7CiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJ1Y3RvcikgewogICAgICAgICAgcmV0dXJuIGBJbnN0YW5jZSBvZiBjbGFzcyAke3ZhbHVlLmNvbnN0cnVjdG9yLm5hbWV9YDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuICJVbmtub3duIE9iamVjdCI7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICB2YXIgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBydWxlIHJlc3VsdDogJHtfZ2V0VHlwZU9mUmVzdWx0KHZhbHVlKX0uYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUnVsZVJlc3VsdEV4Y2VwdGlvbiA9IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBzb3VyY2UgcmVzdWx0OiAke19nZXRUeXBlT2ZSZXN1bHQodmFsdWUpfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uOwogICAgZnVuY3Rpb24gY2FsbFNvdXJjZShzb3VyY2UsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuICgwLCByeGpzXzEuZGVmZXIpKGFzeW5jICgpID0+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpOwogICAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgICAgcmVzdWx0ID0gYXdhaXQgKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShyZXN1bHQucGlwZSgoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKSk7CiAgICAgICAgfQogICAgICAgIGlmIChyZXN1bHQgJiYgaW50ZXJmYWNlXzEuVHJlZVN5bWJvbCBpbiByZXN1bHQpIHsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZSwgaW5wdXQsIGNvbnRleHQpIHsKICAgICAgaWYgKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKShpbnB1dCkpIHsKICAgICAgICByZXR1cm4gaW5wdXQucGlwZSgoMCwgcnhqc18xLm1lcmdlTWFwKSgoaW5wdXRUcmVlKSA9PiBjYWxsUnVsZUFzeW5jKHJ1bGUsIGlucHV0VHJlZSwgY29udGV4dCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5kZWZlcikoKCkgPT4gY2FsbFJ1bGVBc3luYyhydWxlLCBpbnB1dCwgY29udGV4dCkpOwogICAgICB9CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiBjYWxsUnVsZUFzeW5jKHJ1bGUsIHRyZWUsIGNvbnRleHQpIHsKICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHJ1bGUodHJlZSwgY29udGV4dCk7CiAgICAgIHdoaWxlICh0eXBlb2YgcmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0KHRyZWUsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIikgewogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9CiAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgIHJlc3VsdCA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkocmVzdWx0LnBpcGUoKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodHJlZSkpKTsKICAgICAgfQogICAgICBpZiAocmVzdWx0ICYmIGludGVyZmFjZV8xLlRyZWVTeW1ib2wgaW4gcmVzdWx0KSB7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMuanMKdmFyIHJlcXVpcmVfc2NoZW1hdGljID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9lbmdpbmUvc2NoZW1hdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TY2hlbWF0aWNJbXBsID0gZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBjYWxsXzEgPSByZXF1aXJlX2NhbGwoKTsKICAgIHZhciBzY29wZWRfMSA9IHJlcXVpcmVfc2NvcGVkMigpOwogICAgdmFyIEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpY3MgaGFzIGludmFsaWQgbmFtZTogIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0ltcGwgPSBjbGFzcyB7CiAgICAgIF9kZXNjcmlwdGlvbjsKICAgICAgX2ZhY3Rvcnk7CiAgICAgIF9jb2xsZWN0aW9uOwogICAgICBfZW5naW5lOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9mYWN0b3J5LCBfY29sbGVjdGlvbiwgX2VuZ2luZSkgewogICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gX2Rlc2NyaXB0aW9uOwogICAgICAgIHRoaXMuX2ZhY3RvcnkgPSBfZmFjdG9yeTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uID0gX2NvbGxlY3Rpb247CiAgICAgICAgdGhpcy5fZW5naW5lID0gX2VuZ2luZTsKICAgICAgICBpZiAoIV9kZXNjcmlwdGlvbi5uYW1lLm1hdGNoKC9eWy1AL18uYS16QS1aMC05XSskLykpIHsKICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24oX2Rlc2NyaXB0aW9uLm5hbWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgZGVzY3JpcHRpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uOwogICAgICB9CiAgICAgIGdldCBjb2xsZWN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uOwogICAgICB9CiAgICAgIGNhbGwob3B0aW9ucywgaG9zdCwgcGFyZW50Q29udGV4dCwgZXhlY3V0aW9uT3B0aW9ucykgewogICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29udGV4dCh0aGlzLCBwYXJlbnRDb250ZXh0LCBleGVjdXRpb25PcHRpb25zKTsKICAgICAgICByZXR1cm4gaG9zdC5waXBlKCgwLCByeGpzXzEuZmlyc3QpKCksICgwLCByeGpzXzEuY29uY2F0TWFwKSgodHJlZSkgPT4gdGhpcy5fZW5naW5lLnRyYW5zZm9ybU9wdGlvbnModGhpcywgb3B0aW9ucywgY29udGV4dCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKG8pID0+IFt0cmVlLCBvXSkpKSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChbdHJlZSwgdHJhbnNmb3JtZWRPcHRpb25zXSkgPT4gewogICAgICAgICAgbGV0IGlucHV0OwogICAgICAgICAgbGV0IHNjb3BlZCA9IGZhbHNlOwogICAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5zY29wZSkgewogICAgICAgICAgICBzY29wZWQgPSB0cnVlOwogICAgICAgICAgICBpbnB1dCA9IG5ldyBzY29wZWRfMS5TY29wZWRUcmVlKHRyZWUsIGV4ZWN1dGlvbk9wdGlvbnMuc2NvcGUpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5wdXQgPSB0cmVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHRoaXMuX2ZhY3RvcnkodHJhbnNmb3JtZWRPcHRpb25zKSwgaW5wdXQsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChvdXRwdXQpID0+IHsKICAgICAgICAgICAgaWYgKG91dHB1dCA9PT0gaW5wdXQpIHsKICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY29wZWQpIHsKICAgICAgICAgICAgICB0cmVlLm1lcmdlKG91dHB1dCk7CiAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0ltcGwgPSBTY2hlbWF0aWNJbXBsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qcwp2YXIgcmVxdWlyZV9lbmdpbmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBleHBvcnRzMi5Db2xsZWN0aW9uSW1wbCA9IGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gZXhwb3J0czIuQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgbnVsbF8xID0gcmVxdWlyZV9udWxsKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgdmFyIHNjaGVtYXRpY18xID0gcmVxdWlyZV9zY2hlbWF0aWMoKTsKICAgIHZhciBVbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodXJsMykgewogICAgICAgIHN1cGVyKGBVbmtub3duIFByb3RvY29sIG9uIHVybCAiJHt1cmwzfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBVbmtub3duVXJsU291cmNlUHJvdG9jb2w7CiAgICB2YXIgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBVbmtub3duIGNvbGxlY3Rpb24gIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbjsKICAgIHZhciBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBDaXJjdWxhciBjb2xsZWN0aW9uIHJlZmVyZW5jZSAiJHtuYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb247CiAgICB2YXIgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBjb2xsZWN0aW9uKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpYyAiJHtuYW1lfSIgbm90IGZvdW5kIGluIGNvbGxlY3Rpb24gIiR7Y29sbGVjdGlvbi5uYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbjsKICAgIHZhciBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNvbGxlY3Rpb24pIHsKICAgICAgICBzdXBlcihgU2NoZW1hdGljICIke25hbWV9IiBub3QgZm91bmQgaW4gY29sbGVjdGlvbiAiJHtjb2xsZWN0aW9uLm5hbWV9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKGBBIHNjaGVtYXRpYyB3YXMgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lIGFzIGl0cyBwYXJlbnQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uOwogICAgdmFyIFVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgc2NoZW1hdGljKSB7CiAgICAgICAgY29uc3QgYWRkZW5kdW0gPSBzY2hlbWF0aWMgPyBgIGluIHNjaGVtYXRpYyAiJHtzY2hlbWF0aWMubmFtZX0iYCA6ICIiOwogICAgICAgIHN1cGVyKGBVbnJlZ2lzdGVyZWQgdGFzayAiJHtuYW1lfSIke2FkZGVuZHVtfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBVbnJlZ2lzdGVyZWRUYXNrRXhjZXB0aW9uOwogICAgdmFyIFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihpZCkgewogICAgICAgIHN1cGVyKGBVbmtub3duIHRhc2sgZGVwZW5kZW5jeSBbSUQ6ICR7aWQuaWR9XS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbjsKICAgIHZhciBDb2xsZWN0aW9uSW1wbCA9IGNsYXNzIHsKICAgICAgX2Rlc2NyaXB0aW9uOwogICAgICBfZW5naW5lOwogICAgICBiYXNlRGVzY3JpcHRpb25zOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9lbmdpbmUsIGJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IF9kZXNjcmlwdGlvbjsKICAgICAgICB0aGlzLl9lbmdpbmUgPSBfZW5naW5lOwogICAgICAgIHRoaXMuYmFzZURlc2NyaXB0aW9ucyA9IGJhc2VEZXNjcmlwdGlvbnM7CiAgICAgIH0KICAgICAgZ2V0IGRlc2NyaXB0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjsKICAgICAgfQogICAgICBnZXQgbmFtZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbi5uYW1lIHx8ICI8dW5rbm93bj4iOwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuY3JlYXRlU2NoZW1hdGljKG5hbWUsIHRoaXMsIGFsbG93UHJpdmF0ZSk7CiAgICAgIH0KICAgICAgbGlzdFNjaGVtYXRpY05hbWVzKGluY2x1ZGVIaWRkZW4pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lLmxpc3RTY2hlbWF0aWNOYW1lcyh0aGlzLCBpbmNsdWRlSGlkZGVuKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvbGxlY3Rpb25JbXBsID0gQ29sbGVjdGlvbkltcGw7CiAgICB2YXIgVGFza1NjaGVkdWxlciA9IGNsYXNzIF9UYXNrU2NoZWR1bGVyIHsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9xdWV1ZSA9IG5ldyBjb3JlXzEuUHJpb3JpdHlRdWV1ZSgoeCwgeSkgPT4geC5wcmlvcml0eSAtIHkucHJpb3JpdHkpOwogICAgICBfdGFza0lkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIHN0YXRpYyBfdGFza0lkQ291bnRlciA9IDE7CiAgICAgIGNvbnN0cnVjdG9yKF9jb250ZXh0KSB7CiAgICAgICAgdGhpcy5fY29udGV4dCA9IF9jb250ZXh0OwogICAgICB9CiAgICAgIF9jYWxjdWxhdGVQcmlvcml0eShkZXBlbmRlbmNpZXMpIHsKICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLnNpemUgPT09IDApIHsKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcmlvID0gWy4uLmRlcGVuZGVuY2llc10ucmVkdWNlKChwcmlvMiwgdGFzaykgPT4gcHJpbzIgKyB0YXNrLnByaW9yaXR5LCAxKTsKICAgICAgICByZXR1cm4gcHJpbzsKICAgICAgfQogICAgICBfbWFwRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcykgewogICAgICAgIGlmICghZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza3MgPSBkZXBlbmRlbmNpZXMubWFwKChkZXApID0+IHsKICAgICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrSWRzLmdldChkZXApOwogICAgICAgICAgaWYgKCF0YXNrKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVGFza0RlcGVuZGVuY3lFeGNlcHRpb24oZGVwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2V0KHRhc2tzKTsKICAgICAgfQogICAgICBzY2hlZHVsZSh0YXNrQ29uZmlndXJhdGlvbikgewogICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuX21hcERlcGVuZGVuY2llcyh0YXNrQ29uZmlndXJhdGlvbi5kZXBlbmRlbmNpZXMpOwogICAgICAgIGNvbnN0IHByaW9yaXR5ID0gdGhpcy5fY2FsY3VsYXRlUHJpb3JpdHkoZGVwZW5kZW5jaWVzKTsKICAgICAgICBjb25zdCB0YXNrID0gewogICAgICAgICAgaWQ6IF9UYXNrU2NoZWR1bGVyLl90YXNrSWRDb3VudGVyKyssCiAgICAgICAgICBwcmlvcml0eSwKICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHRhc2tDb25maWd1cmF0aW9uLAogICAgICAgICAgY29udGV4dDogdGhpcy5fY29udGV4dAogICAgICAgIH07CiAgICAgICAgdGhpcy5fcXVldWUucHVzaCh0YXNrKTsKICAgICAgICBjb25zdCBpZCA9IHsgaWQ6IHRhc2suaWQgfTsKICAgICAgICB0aGlzLl90YXNrSWRzLnNldChpZCwgdGFzayk7CiAgICAgICAgcmV0dXJuIGlkOwogICAgICB9CiAgICAgIGZpbmFsaXplKCkgewogICAgICAgIGNvbnN0IHRhc2tzID0gdGhpcy5fcXVldWUudG9BcnJheSgpOwogICAgICAgIHRoaXMuX3F1ZXVlLmNsZWFyKCk7CiAgICAgICAgdGhpcy5fdGFza0lkcy5jbGVhcigpOwogICAgICAgIHJldHVybiB0YXNrczsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBUYXNrU2NoZWR1bGVyOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZSA9IGNsYXNzIHsKICAgICAgX2hvc3Q7CiAgICAgIF93b3JrZmxvdzsKICAgICAgX2NvbGxlY3Rpb25DYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9zY2hlbWF0aWNDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgICBfdGFza1NjaGVkdWxlcnMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF93b3JrZmxvdykgewogICAgICAgIHRoaXMuX2hvc3QgPSBfaG9zdDsKICAgICAgICB0aGlzLl93b3JrZmxvdyA9IF93b3JrZmxvdzsKICAgICAgfQogICAgICBnZXQgd29ya2Zsb3coKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtmbG93IHx8IG51bGw7CiAgICAgIH0KICAgICAgZ2V0IGRlZmF1bHRNZXJnZVN0cmF0ZWd5KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0LmRlZmF1bHRNZXJnZVN0cmF0ZWd5IHx8IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuRGVmYXVsdDsKICAgICAgfQogICAgICBjcmVhdGVDb2xsZWN0aW9uKG5hbWUsIHJlcXVlc3RlcikgewogICAgICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChuYW1lKTsKICAgICAgICBpZiAoY29sbGVjdGlvbikgewogICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247CiAgICAgICAgfQogICAgICAgIGNvbnN0IFtkZXNjcmlwdGlvbiwgYmFzZXNdID0gdGhpcy5fY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcj8uZGVzY3JpcHRpb24pOwogICAgICAgIGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbkltcGwoZGVzY3JpcHRpb24sIHRoaXMsIGJhc2VzKTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uQ2FjaGUuc2V0KG5hbWUsIGNvbGxlY3Rpb24pOwogICAgICAgIHRoaXMuX3NjaGVtYXRpY0NhY2hlLnNldChjb2xsZWN0aW9uLCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTsKICAgICAgICByZXR1cm4gY29sbGVjdGlvbjsKICAgICAgfQogICAgICBfY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3RlciwgcGFyZW50TmFtZXMpIHsKICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcik7CiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikgewogICAgICAgICAgdGhyb3cgbmV3IFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50TmFtZXMgJiYgcGFyZW50TmFtZXMuaGFzKGRlc2NyaXB0aW9uLm5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBjb25zdCBiYXNlcyA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChkZXNjcmlwdGlvbi5leHRlbmRzKSB7CiAgICAgICAgICBwYXJlbnROYW1lcyA9IChwYXJlbnROYW1lcyB8fCAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKS5hZGQoZGVzY3JpcHRpb24ubmFtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IGJhc2VOYW1lIG9mIGRlc2NyaXB0aW9uLmV4dGVuZHMpIHsKICAgICAgICAgICAgY29uc3QgW2Jhc2UsIGJhc2VCYXNlc10gPSB0aGlzLl9jcmVhdGVDb2xsZWN0aW9uRGVzY3JpcHRpb24oYmFzZU5hbWUsIGRlc2NyaXB0aW9uLCBuZXcgU2V0KHBhcmVudE5hbWVzKSk7CiAgICAgICAgICAgIGJhc2VzLnVuc2hpZnQoYmFzZSwgLi4uYmFzZUJhc2VzKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFtkZXNjcmlwdGlvbiwgYmFzZXNdOwogICAgICB9CiAgICAgIGNyZWF0ZUNvbnRleHQoc2NoZW1hdGljLCBwYXJlbnQsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5lbmdpbmUgJiYgcGFyZW50LmVuZ2luZSAhPT0gdGhpcykgewogICAgICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGxldCBpbnRlcmFjdGl2ZSA9IHRydWU7CiAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZSAhPSB2b2lkIDApIHsKICAgICAgICAgIGludGVyYWN0aXZlID0gZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZTsKICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCAmJiBwYXJlbnQuaW50ZXJhY3RpdmUgIT0gdm9pZCAwKSB7CiAgICAgICAgICBpbnRlcmFjdGl2ZSA9IHBhcmVudC5pbnRlcmFjdGl2ZTsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbnRleHQgPSB7CiAgICAgICAgICBkZWJ1ZzogcGFyZW50ICYmIHBhcmVudC5kZWJ1ZyB8fCBmYWxzZSwKICAgICAgICAgIGVuZ2luZTogdGhpcywKICAgICAgICAgIGxvZ2dlcjogcGFyZW50ICYmIHBhcmVudC5sb2dnZXIgJiYgcGFyZW50LmxvZ2dlci5jcmVhdGVDaGlsZChzY2hlbWF0aWMuZGVzY3JpcHRpb24ubmFtZSkgfHwgbmV3IGNvcmVfMS5sb2dnaW5nLk51bGxMb2dnZXIoKSwKICAgICAgICAgIHNjaGVtYXRpYywKICAgICAgICAgIHN0cmF0ZWd5OiBwYXJlbnQgJiYgcGFyZW50LnN0cmF0ZWd5ICE9PSB2b2lkIDAgPyBwYXJlbnQuc3RyYXRlZ3kgOiB0aGlzLmRlZmF1bHRNZXJnZVN0cmF0ZWd5LAogICAgICAgICAgaW50ZXJhY3RpdmUsCiAgICAgICAgICBhZGRUYXNrCiAgICAgICAgfTsKICAgICAgICBjb25zdCBtYXliZU5ld0NvbnRleHQgPSB0aGlzLl9ob3N0LnRyYW5zZm9ybUNvbnRleHQoY29udGV4dCk7CiAgICAgICAgaWYgKG1heWJlTmV3Q29udGV4dCkgewogICAgICAgICAgY29udGV4dCA9IG1heWJlTmV3Q29udGV4dDsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza1NjaGVkdWxlciA9IG5ldyBUYXNrU2NoZWR1bGVyKGNvbnRleHQpOwogICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0OwogICAgICAgIHRoaXMuX3Rhc2tTY2hlZHVsZXJzLnB1c2godGFza1NjaGVkdWxlcik7CiAgICAgICAgZnVuY3Rpb24gYWRkVGFzayh0YXNrLCBkZXBlbmRlbmNpZXMpIHsKICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRhc2sudG9Db25maWd1cmF0aW9uKCk7CiAgICAgICAgICBpZiAoIWhvc3QuaGFzVGFza0V4ZWN1dG9yKGNvbmZpZy5uYW1lKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5yZWdpc3RlcmVkVGFza0V4Y2VwdGlvbihjb25maWcubmFtZSwgc2NoZW1hdGljLmRlc2NyaXB0aW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbmZpZy5kZXBlbmRlbmNpZXMgPSBjb25maWcuZGVwZW5kZW5jaWVzIHx8IFtdOwogICAgICAgICAgaWYgKGRlcGVuZGVuY2llcykgewogICAgICAgICAgICBjb25maWcuZGVwZW5kZW5jaWVzLnVuc2hpZnQoLi4uZGVwZW5kZW5jaWVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrU2NoZWR1bGVyLnNjaGVkdWxlKGNvbmZpZyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb250ZXh0OwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBjb2xsZWN0aW9uLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIGNvbnN0IHNjaGVtYXRpY01hcCA9IHRoaXMuX3NjaGVtYXRpY0NhY2hlLmdldChjb2xsZWN0aW9uKTsKICAgICAgICBsZXQgc2NoZW1hdGljID0gc2NoZW1hdGljTWFwPy5nZXQobmFtZSk7CiAgICAgICAgaWYgKHNjaGVtYXRpYykgewogICAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZGVzY3JpcHRpb247CiAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5faG9zdC5jcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICBpZiAoY29sbGVjdGlvbi5iYXNlRGVzY3JpcHRpb25zKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgYmFzZSBvZiBjb2xsZWN0aW9uLmJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlU2NoZW1hdGljRGVzY3JpcHRpb24obmFtZSwgYmFzZSk7CiAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uRGVzY3JpcHRpb24gPSBiYXNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duU2NoZW1hdGljRXhjZXB0aW9uKG5hbWUsIGNvbGxlY3Rpb24uZGVzY3JpcHRpb24pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZGVzY3JpcHRpb24ucHJpdmF0ZSAmJiAhYWxsb3dQcml2YXRlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgUHJpdmF0ZVNjaGVtYXRpY0V4Y2VwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2hvc3QuZ2V0U2NoZW1hdGljUnVsZUZhY3RvcnkoZGVzY3JpcHRpb24sIGNvbGxlY3Rpb25EZXNjcmlwdGlvbik7CiAgICAgICAgc2NoZW1hdGljID0gbmV3IHNjaGVtYXRpY18xLlNjaGVtYXRpY0ltcGwoZGVzY3JpcHRpb24sIGZhY3RvcnksIGNvbGxlY3Rpb24sIHRoaXMpOwogICAgICAgIHNjaGVtYXRpY01hcD8uc2V0KG5hbWUsIHNjaGVtYXRpYyk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgfQogICAgICBsaXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbiwgaW5jbHVkZUhpZGRlbikgewogICAgICAgIGNvbnN0IG5hbWVzID0gdGhpcy5faG9zdC5saXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbi5kZXNjcmlwdGlvbiwgaW5jbHVkZUhpZGRlbik7CiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgZm9yIChjb25zdCBiYXNlIG9mIGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgICBuYW1lcy5wdXNoKC4uLnRoaXMuX2hvc3QubGlzdFNjaGVtYXRpY05hbWVzKGJhc2UsIGluY2x1ZGVIaWRkZW4pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KG5hbWVzKV0uc29ydCgpOwogICAgICB9CiAgICAgIHRyYW5zZm9ybU9wdGlvbnMoc2NoZW1hdGljLCBvcHRpb25zLCBjb250ZXh0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QudHJhbnNmb3JtT3B0aW9ucyhzY2hlbWF0aWMuZGVzY3JpcHRpb24sIG9wdGlvbnMsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGNyZWF0ZVNvdXJjZUZyb21VcmwodXJsMywgY29udGV4dCkgewogICAgICAgIHN3aXRjaCAodXJsMy5wcm90b2NvbCkgewogICAgICAgICAgY2FzZSAibnVsbDoiOgogICAgICAgICAgICByZXR1cm4gKCkgPT4gbmV3IG51bGxfMS5OdWxsVHJlZSgpOwogICAgICAgICAgY2FzZSAiZW1wdHk6IjoKICAgICAgICAgICAgcmV0dXJuICgpID0+ICgwLCBzdGF0aWNfMS5lbXB0eSkoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaG9zdFNvdXJjZSA9IHRoaXMuX2hvc3QuY3JlYXRlU291cmNlRnJvbVVybCh1cmwzLCBjb250ZXh0KTsKICAgICAgICBpZiAoIWhvc3RTb3VyY2UpIHsKICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wodXJsMy50b1N0cmluZygpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7CiAgICAgIH0KICAgICAgZXhlY3V0ZVBvc3RUYXNrcygpIHsKICAgICAgICBjb25zdCBleGVjdXRvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRhc2tPYnNlcnZhYmxlID0gKDAsIHJ4anNfMS5mcm9tKSh0aGlzLl90YXNrU2NoZWR1bGVycykucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHNjaGVkdWxlcikgPT4gc2NoZWR1bGVyLmZpbmFsaXplKCkpLCAoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHRhc2spID0+IHsKICAgICAgICAgIGNvbnN0IHsgbmFtZSwgb3B0aW9ucyB9ID0gdGFzay5jb25maWd1cmF0aW9uOwogICAgICAgICAgY29uc3QgZXhlY3V0b3IgPSBleGVjdXRvcnMuZ2V0KG5hbWUpOwogICAgICAgICAgaWYgKGV4ZWN1dG9yKSB7CiAgICAgICAgICAgIHJldHVybiBleGVjdXRvcihvcHRpb25zLCB0YXNrLmNvbnRleHQpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QuY3JlYXRlVGFza0V4ZWN1dG9yKG5hbWUpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChleGVjdXRvcjIpID0+IHsKICAgICAgICAgICAgZXhlY3V0b3JzLnNldChuYW1lLCBleGVjdXRvcjIpOwogICAgICAgICAgICByZXR1cm4gZXhlY3V0b3IyKG9wdGlvbnMsIHRhc2suY29udGV4dCk7CiAgICAgICAgICB9KSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiB0YXNrT2JzZXJ2YWJsZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IFNjaGVtYXRpY0VuZ2luZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UuanMKdmFyIHJlcXVpcmVfaW50ZXJmYWNlNCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzCnZhciByZXF1aXJlX2VuZ2luZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW5naW5lKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hdGljKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzCnZhciByZXF1aXJlX2NsaV9sb2dnZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVDb25zb2xlTG9nZ2VyID0gY3JlYXRlQ29uc29sZUxvZ2dlcjsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIHNyY18xID0gcmVxdWlyZV9zcmMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXIodmVyYm9zZSA9IGZhbHNlLCBzdGRvdXQgPSBwcm9jZXNzLnN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5zdGRlcnIsIGNvbG9ycykgewogICAgICBjb25zdCBsb2dnZXIgPSBuZXcgc3JjXzEubG9nZ2luZy5JbmRlbnRMb2dnZXIoImNsaW5nIik7CiAgICAgIGxvZ2dlci5waXBlKCgwLCByeGpzXzEuZmlsdGVyKSgoZW50cnkpID0+IGVudHJ5LmxldmVsICE9PSAiZGVidWciIHx8IHZlcmJvc2UpKS5zdWJzY3JpYmUoKGVudHJ5KSA9PiB7CiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvcnMgJiYgY29sb3JzW2VudHJ5LmxldmVsXTsKICAgICAgICBsZXQgb3V0cHV0ID0gc3Rkb3V0OwogICAgICAgIHN3aXRjaCAoZW50cnkubGV2ZWwpIHsKICAgICAgICAgIGNhc2UgIndhcm4iOgogICAgICAgICAgY2FzZSAiZmF0YWwiOgogICAgICAgICAgY2FzZSAiZXJyb3IiOgogICAgICAgICAgICBvdXRwdXQgPSBzdGRlcnI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBjb25zdCBjaHVua1NpemUgPSAyZTM7CiAgICAgICAgbGV0IG1lc3NhZ2UgPSBlbnRyeS5tZXNzYWdlOwogICAgICAgIHdoaWxlIChtZXNzYWdlKSB7CiAgICAgICAgICBjb25zdCBjaHVuayA9IG1lc3NhZ2Uuc2xpY2UoMCwgY2h1bmtTaXplKTsKICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnNsaWNlKGNodW5rU2l6ZSk7CiAgICAgICAgICBvdXRwdXQud3JpdGUoY29sb3IgPyBjb2xvcihjaHVuaykgOiBjaHVuayk7CiAgICAgICAgfQogICAgICAgIG91dHB1dC53cml0ZSgiXG4iKTsKICAgICAgfSk7CiAgICAgIHJldHVybiBsb2dnZXI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaG9zdC5qcwp2YXIgcmVxdWlyZV9ob3N0MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk5vZGVKc1N5bmNIb3N0ID0gZXhwb3J0czIuTm9kZUpzQXN5bmNIb3N0ID0gdm9pZCAwOwogICAgdmFyIG5vZGVfZnNfMSA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKICAgIHZhciBub2RlX3BhdGhfMSA9IHJlcXVpcmUoIm5vZGU6cGF0aCIpOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc3JjXzEgPSByZXF1aXJlX3NyYygpOwogICAgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHBhdGgpIHsKICAgICAgdHJ5IHsKICAgICAgICBhd2FpdCBub2RlX2ZzXzEucHJvbWlzZXMuYWNjZXNzKHBhdGgsIG5vZGVfZnNfMS5jb25zdGFudHMuRl9PSyk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgdmFyIEZTV2F0Y2hlcjsKICAgIGZ1bmN0aW9uIGxvYWRGU1dhdGNoZXIoKSB7CiAgICAgIGlmICghRlNXYXRjaGVyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIEZTV2F0Y2hlciA9IHJlcXVpcmUoImNob2tpZGFyIikuRlNXYXRjaGVyOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlLmNvZGUgIT09ICJNT0RVTEVfTk9UX0ZPVU5EIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FzIG9mIGFuZ3VsYXItZGV2a2l0IHZlcnNpb24gOC4wLCB0aGUgImNob2tpZGFyIiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGluIG9yZGVyIHRvIHVzZSB3YXRjaCgpIGZlYXR1cmVzLicpOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHZhciBOb2RlSnNBc3luY0hvc3QgPSBjbGFzcyB7CiAgICAgIGdldCBjYXBhYmlsaXRpZXMoKSB7CiAgICAgICAgcmV0dXJuIHsgc3luY2hyb25vdXM6IGZhbHNlIH07CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5ta2RpcigoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSkpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKCkgPT4gbm9kZV9mc18xLnByb21pc2VzLndyaXRlRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCksIG5ldyBVaW50OEFycmF5KGNvbnRlbnQpKSkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYnVmZmVyKSA9PiBuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcikpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkobm9kZV9mc18xLnByb21pc2VzLnJtKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMucmVuYW1lKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShmcm9tKSwgKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHRvKSkpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkZGlyKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChuYW1lcykgPT4gbmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkoZXhpc3RzKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMuc3RhdCgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgX29wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIGxvYWRGU1dhdGNoZXIoKTsKICAgICAgICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRlNXYXRjaGVyKHsgcGVyc2lzdGVudDogdHJ1ZSB9KTsKICAgICAgICAgIHdhdGNoZXIuYWRkKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICB3YXRjaGVyLm9uKCJjaGFuZ2UiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNoYW5nZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigiYWRkIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkub24oInVubGluayIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgdm9pZCB3YXRjaGVyLmNsb3NlKCk7CiAgICAgICAgICB9OwogICAgICAgIH0pLnBpcGUoKDAsIHJ4anNfMS5wdWJsaXNoKSgpLCAoMCwgcnhqc18xLnJlZkNvdW50KSgpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5vZGVKc0FzeW5jSG9zdCA9IE5vZGVKc0FzeW5jSG9zdDsKICAgIHZhciBOb2RlSnNTeW5jSG9zdCA9IGNsYXNzIHsKICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgICgwLCBub2RlX2ZzXzEubWtkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgICAoMCwgbm9kZV9mc18xLndyaXRlRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgbmV3IFVpbnQ4QXJyYXkoY29udGVudCkpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgYnVmZmVyID0gKDAsIG5vZGVfZnNfMS5yZWFkRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICBvYnMubmV4dChuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcik7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ybVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCB0b1N5c3RlbVBhdGggPSAoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkodG8pOwogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ta2RpclN5bmMpKCgwLCBub2RlX3BhdGhfMS5kaXJuYW1lKSh0b1N5c3RlbVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICAgICgwLCBub2RlX2ZzXzEucmVuYW1lU3luYykoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKGZyb20pLCB0b1N5c3RlbVBhdGgpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgbmFtZXMgPSAoMCwgbm9kZV9mc18xLnJlYWRkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpOwogICAgICAgICAgb2JzLm5leHQobmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQoKDAsIG5vZGVfZnNfMS5leGlzdHNTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KCgwLCBub2RlX2ZzXzEuc3RhdFN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgd2F0Y2hpbmcuCiAgICAgIHdhdGNoKHBhdGgsIF9vcHRpb25zKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBsb2FkRlNXYXRjaGVyKCk7CiAgICAgICAgICBjb25zdCB3YXRjaGVyID0gbmV3IEZTV2F0Y2hlcih7IHBlcnNpc3RlbnQ6IGZhbHNlIH0pOwogICAgICAgICAgd2F0Y2hlci5hZGQoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHBhdGgpKTsKICAgICAgICAgIHdhdGNoZXIub24oImNoYW5nZSIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLm9uKCJhZGQiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNyZWF0ZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigidW5saW5rIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICB2b2lkIHdhdGNoZXIuY2xvc2UoKTsKICAgICAgICAgIH07CiAgICAgICAgfSkucGlwZSgoMCwgcnhqc18xLnB1Ymxpc2gpKCksICgwLCByeGpzXzEucmVmQ291bnQpKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTm9kZUpzU3luY0hvc3QgPSBOb2RlSnNTeW5jSG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9ub2RlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2NsaV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDMoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanMKdmFyIHJlcXVpcmVfYWN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2FjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQWN0aW9uTGlzdCA9IGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSB2b2lkIDA7CiAgICBleHBvcnRzMi5pc0NvbnRlbnRBY3Rpb24gPSBpc0NvbnRlbnRBY3Rpb247CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBVbmtub3duQWN0aW9uRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKGFjdGlvbikgewogICAgICAgIHN1cGVyKGBVbmtub3duIGFjdGlvbjogIiR7YWN0aW9uLmtpbmR9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQWN0aW9uRXhjZXB0aW9uOwogICAgdmFyIF9pZCA9IDE7CiAgICB2YXIgQWN0aW9uTGlzdCA9IGNsYXNzIHsKICAgICAgX2FjdGlvbnMgPSBbXTsKICAgICAgX2FjdGlvbihhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goewogICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgaWQ6IF9pZCsrLAogICAgICAgICAgcGFyZW50OiB0aGlzLl9hY3Rpb25zW3RoaXMuX2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkID8/IDAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJjIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICBvdmVyd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJvIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgdG8pIHsKICAgICAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAiciIsIHBhdGgsIHRvIH0pOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgdGhpcy5fYWN0aW9uKHsga2luZDogImQiLCBwYXRoIH0pOwogICAgICB9CiAgICAgIG9wdGltaXplKCkgewogICAgICAgIGNvbnN0IHRvQ3JlYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBjb25zdCB0b1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgY29uc3QgdG9PdmVyd3JpdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLl9hY3Rpb25zKSB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBpZiAodG9DcmVhdGUuaGFzKGFjdGlvbi5wYXRoKSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuc2V0KGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRvT3ZlcndyaXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgdG9EZWxldGUuYWRkKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6IHsKICAgICAgICAgICAgICBjb25zdCBtYXliZUNyZWF0ZSA9IHRvQ3JlYXRlLmdldChhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgY29uc3QgbWF5YmVPdmVyd3JpdGUgPSB0b092ZXJ3cml0ZS5nZXQoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgIGlmIChtYXliZUNyZWF0ZSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuZGVsZXRlKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24udG8sIG1heWJlQ3JlYXRlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG1heWJlT3ZlcndyaXRlKSB7CiAgICAgICAgICAgICAgICB0b092ZXJ3cml0ZS5kZWxldGUoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgICAgdG9PdmVyd3JpdGUuc2V0KGFjdGlvbi50bywgbWF5YmVPdmVyd3JpdGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsZXQgbWF5YmVSZW5hbWUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIHRvUmVuYW1lLmVudHJpZXMoKSkgewogICAgICAgICAgICAgICAgaWYgKHRvID09IGFjdGlvbi5wYXRoKSB7CiAgICAgICAgICAgICAgICAgIG1heWJlUmVuYW1lID0gZnJvbTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYXliZVJlbmFtZSkgewogICAgICAgICAgICAgICAgdG9SZW5hbWUuc2V0KG1heWJlUmVuYW1lLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIW1heWJlQ3JlYXRlICYmICFtYXliZU92ZXJ3cml0ZSAmJiAhbWF5YmVSZW5hbWUpIHsKICAgICAgICAgICAgICAgIHRvUmVuYW1lLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtdOwogICAgICAgIHRvRGVsZXRlLmZvckVhY2goKHgpID0+IHsKICAgICAgICAgIHRoaXMuZGVsZXRlKHgpOwogICAgICAgIH0pOwogICAgICAgIHRvUmVuYW1lLmZvckVhY2goKHRvLCBmcm9tKSA9PiB7CiAgICAgICAgICB0aGlzLnJlbmFtZShmcm9tLCB0byk7CiAgICAgICAgfSk7CiAgICAgICAgdG9DcmVhdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgICAgdG9PdmVyd3JpdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcHVzaChhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTsKICAgICAgfQogICAgICBnZXQoaSkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zW2ldOwogICAgICB9CiAgICAgIGhhcyhhY3Rpb24pIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IGEgPSB0aGlzLl9hY3Rpb25zW2ldOwogICAgICAgICAgaWYgKGEuaWQgPT0gYWN0aW9uLmlkKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGEuaWQgPiBhY3Rpb24uaWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZmluZChwcmVkaWNhdGUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maW5kKHByZWRpY2F0ZSkgfHwgbnVsbDsKICAgICAgfQogICAgICBmb3JFYWNoKGZuLCB0aGlzQXJnKSB7CiAgICAgICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQgbGVuZ3RoKCkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmxlbmd0aDsKICAgICAgfQogICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BY3Rpb25MaXN0ID0gQWN0aW9uTGlzdDsKICAgIGZ1bmN0aW9uIGlzQ29udGVudEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIGFjdGlvbi5raW5kID09ICJjIiB8fCBhY3Rpb24ua2luZCA9PSAibyI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsuanMKdmFyIHJlcXVpcmVfc2luayA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9zaW5rLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TaW1wbGVTaW5rQmFzZSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgYWN0aW9uXzEgPSByZXF1aXJlX2FjdGlvbigpOwogICAgdmFyIE5vb3AgPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB2YXIgU2ltcGxlU2lua0Jhc2UgPSBjbGFzcyB7CiAgICAgIHByZUNvbW1pdEFjdGlvbiA9IE5vb3A7CiAgICAgIHBvc3RDb21taXRBY3Rpb24gPSBOb29wOwogICAgICBwcmVDb21taXQgPSBOb29wOwogICAgICBwb3N0Q29tbWl0ID0gTm9vcDsKICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBfdmFsaWRhdGVPdmVyd3JpdGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24ucGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKGIpID0+IHsKICAgICAgICAgIGlmICghYikgewogICAgICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoIWIpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEubWVyZ2VNYXApKCgpID0+IHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24udG8pKSwgKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYikgPT4gewogICAgICAgICAgaWYgKCFiKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICB2YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJyIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgYWN0aW9uXzEuVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnZhbGlkYXRlU2luZ2xlQWN0aW9uKGFjdGlvbiksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHsKICAgICAgICAgIGxldCBjb21taXR0ZWQgPSBudWxsOwogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIGNvbW1pdHRlZCA9IHRoaXMuX2NyZWF0ZUZpbGUoYWN0aW9uLnBhdGgsIGFjdGlvbi5jb250ZW50KTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fcmVuYW1lRmlsZShhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29tbWl0dGVkKSB7CiAgICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpKTsKICAgICAgfQogICAgICBjb21taXQodHJlZSkgewogICAgICAgIGNvbnN0IGFjdGlvbnMgPSAoMCwgcnhqc18xLmZyb20pKHRyZWUuYWN0aW9ucyk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnByZUNvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpLCAoMCwgcnhqc18xLmRlZmVyKSgoKSA9PiBhY3Rpb25zKS5waXBlKCgwLCByeGpzXzEuY29uY2F0TWFwKSgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBjb25zdCBtYXliZUFjdGlvbiA9IHRoaXMucHJlQ29tbWl0QWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKG1heWJlQWN0aW9uKSB8fCBpc1Byb21pc2VMaWtlKG1heWJlQWN0aW9uKSkgewogICAgICAgICAgICByZXR1cm4gbWF5YmVBY3Rpb247CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikobWF5YmVBY3Rpb24gfHwgYWN0aW9uKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5jb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKS5waXBlKCgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKShhY3Rpb24pKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHRoaXMucG9zdENvbW1pdEFjdGlvbihhY3Rpb24pIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMuX2RvbmUoKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMucG9zdENvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpLCAoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZVNpbmtCYXNlID0gU2ltcGxlU2lua0Jhc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHZhbHVlKSB7CiAgICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAiZnVuY3Rpb24iOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3Q0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc2lua18xID0gcmVxdWlyZV9zaW5rKCk7CiAgICB2YXIgSG9zdFNpbmsgPSBjbGFzcyBleHRlbmRzIHNpbmtfMS5TaW1wbGVTaW5rQmFzZSB7CiAgICAgIF9ob3N0OwogICAgICBfZm9yY2U7CiAgICAgIF9maWxlc1RvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgX2ZpbGVzVG9SZW5hbWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb0NyZWF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvVXBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF9mb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9ob3N0ID0gX2hvc3Q7CiAgICAgICAgdGhpcy5fZm9yY2UgPSBfZm9yY2U7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl9mb3JjZSA/IHJ4anNfMS5FTVBUWSA6IHN1cGVyLl92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb24pOwogICAgICB9CiAgICAgIF92YWxpZGF0ZUZpbGVFeGlzdHMocCkgewogICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwKSB8fCB0aGlzLl9maWxlc1RvVXBkYXRlLmhhcyhwKSkgewogICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocCkpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lLnZhbHVlcygpKSB7CiAgICAgICAgICBzd2l0Y2ggKHApIHsKICAgICAgICAgICAgY2FzZSBmcm9tOgogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgdG86CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5leGlzdHMocCk7CiAgICAgIH0KICAgICAgX292ZXJ3cml0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9VcGRhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX2NyZWF0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX3JlbmFtZUZpbGUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmFkZChbZnJvbSwgdG9dKTsKICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kZWxldGVGaWxlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kb25lKCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShbLi4udGhpcy5fZmlsZXNUb0RlbGV0ZS52YWx1ZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChwYXRoKSA9PiB0aGlzLl9ob3N0LmRlbGV0ZShwYXRoKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvUmVuYW1lLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbXywgW3BhdGgsIHRvXV0pID0+IHRoaXMuX2hvc3QucmVuYW1lKHBhdGgsIHRvKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvQ3JlYXRlLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIpKSksICgwLCByeGpzXzEuZnJvbSkoWy4uLnRoaXMuX2ZpbGVzVG9VcGRhdGUuZW50cmllcygpXSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKFtwYXRoLCBidWZmZXJdKSA9PiB0aGlzLl9ob3N0LndyaXRlKHBhdGgsIGJ1ZmZlcikpKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKCkgPT4gewogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gSG9zdFNpbms7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qcwp2YXIgcmVxdWlyZV9kcnlydW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5EcnlSdW5TaW5rID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgbm9kZV8xID0gcmVxdWlyZV9ub2RlKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3Q0KCk7CiAgICB2YXIgRHJ5UnVuU2luayA9IGNsYXNzIGV4dGVuZHMgaG9zdF8xLkhvc3RTaW5rIHsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHJlcG9ydGVyID0gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTsKICAgICAgY29uc3RydWN0b3IoaG9zdCwgZm9yY2UgPSBmYWxzZSkgewogICAgICAgIHN1cGVyKHR5cGVvZiBob3N0ID09ICJzdHJpbmciID8gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU2NvcGVkSG9zdChuZXcgbm9kZV8xLk5vZGVKc1N5bmNIb3N0KCksICgwLCBjb3JlXzEubm9ybWFsaXplKShob3N0KSkgOiBob3N0LCBmb3JjZSk7CiAgICAgIH0KICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmFkZChwYXRoKTsKICAgICAgfQogICAgICBfZG9uZSgpIHsKICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmZvckVhY2goKHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7CiAgICAgICAgICAgIGtpbmQ6ICJlcnJvciIsCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiYWxyZWFkeUV4aXN0IiwKICAgICAgICAgICAgcGF0aAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKChwYXRoKSA9PiB7CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoewogICAgICAgICAgICBraW5kOiAiZXJyb3IiLAogICAgICAgICAgICBkZXNjcmlwdGlvbjogImRvZXNOb3RFeGlzdCIsCiAgICAgICAgICAgIHBhdGgKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZm9yRWFjaCgocGF0aCkgPT4gewogICAgICAgICAgZm9yIChjb25zdCBbZnJvbV0gb2YgdGhpcy5fZmlsZXNUb1JlbmFtZSkgewogICAgICAgICAgICBpZiAoZnJvbSA9PSBwYXRoKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiZGVsZXRlIiwgcGF0aCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmZvckVhY2goKFtwYXRoLCB0b10pID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJyZW5hbWUiLCBwYXRoLCB0byB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIGZvciAoY29uc3QgWywgdG9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHsKICAgICAgICAgICAgaWYgKHRvID09IHBhdGgpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSB8fCB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiY3JlYXRlIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJ1cGRhdGUiLCBwYXRoLCBjb250ZW50IH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkRyeVJ1blNpbmsgPSBEcnlSdW5TaW5rOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qcwp2YXIgcmVxdWlyZV9iYXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9iYXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CYXNlV29ya2Zsb3cgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGVuZ2luZV8xID0gcmVxdWlyZV9lbmdpbmUyKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBmb3JtYXRzXzEgPSByZXF1aXJlX2Zvcm1hdHMyKCk7CiAgICB2YXIgZHJ5cnVuXzEgPSByZXF1aXJlX2RyeXJ1bigpOwogICAgdmFyIGhvc3RfMSA9IHJlcXVpcmVfaG9zdDQoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgQmFzZVdvcmtmbG93ID0gY2xhc3MgewogICAgICBfZW5naW5lOwogICAgICBfZW5naW5lSG9zdDsKICAgICAgX3JlZ2lzdHJ5OwogICAgICBfaG9zdDsKICAgICAgX3JlcG9ydGVyID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgIF9saWZlQ3ljbGUgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9mb3JjZTsKICAgICAgX2RyeVJ1bjsKICAgICAgY29uc3RydWN0b3Iob3B0aW9ucykgewogICAgICAgIHRoaXMuX2hvc3QgPSBvcHRpb25zLmhvc3Q7CiAgICAgICAgdGhpcy5fZW5naW5lSG9zdCA9IG9wdGlvbnMuZW5naW5lSG9zdDsKICAgICAgICBpZiAob3B0aW9ucy5yZWdpc3RyeSkgewogICAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBvcHRpb25zLnJlZ2lzdHJ5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBjb3JlXzEuc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeShmb3JtYXRzXzEuc3RhbmRhcmRGb3JtYXRzKTsKICAgICAgICAgIHRoaXMuX3JlZ2lzdHJ5LmFkZFBvc3RUcmFuc2Zvcm0oY29yZV8xLnNjaGVtYS50cmFuc2Zvcm1zLmFkZFVuZGVmaW5lZERlZmF1bHRzKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZW5naW5lID0gbmV3IGVuZ2luZV8xLlNjaGVtYXRpY0VuZ2luZSh0aGlzLl9lbmdpbmVIb3N0LCB0aGlzKTsKICAgICAgICB0aGlzLl9jb250ZXh0ID0gW107CiAgICAgICAgdGhpcy5fZm9yY2UgPSBvcHRpb25zLmZvcmNlIHx8IGZhbHNlOwogICAgICAgIHRoaXMuX2RyeVJ1biA9IG9wdGlvbnMuZHJ5UnVuIHx8IGZhbHNlOwogICAgICB9CiAgICAgIGdldCBjb250ZXh0KCkgewogICAgICAgIGNvbnN0IG1heWJlQ29udGV4dCA9IHRoaXMuX2NvbnRleHRbdGhpcy5fY29udGV4dC5sZW5ndGggLSAxXTsKICAgICAgICBpZiAoIW1heWJlQ29udGV4dCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IGNvbnRleHQgd2hlbiB3b3JrZmxvdyBpcyBub3QgZXhlY3V0aW5nLi4uIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUNvbnRleHQ7CiAgICAgIH0KICAgICAgZ2V0IGVuZ2luZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lOwogICAgICB9CiAgICAgIGdldCBlbmdpbmVIb3N0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmVIb3N0OwogICAgICB9CiAgICAgIGdldCByZWdpc3RyeSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnk7CiAgICAgIH0KICAgICAgZ2V0IHJlcG9ydGVyKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlci5hc09ic2VydmFibGUoKTsKICAgICAgfQogICAgICBnZXQgbGlmZUN5Y2xlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9saWZlQ3ljbGUuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgX2NyZWF0ZVNpbmtzKCkgewogICAgICAgIGxldCBlcnJvciA9IGZhbHNlOwogICAgICAgIGNvbnN0IGRyeVJ1blNpbmsgPSBuZXcgZHJ5cnVuXzEuRHJ5UnVuU2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSk7CiAgICAgICAgY29uc3QgZHJ5UnVuU3Vic2NyaWJlciA9IGRyeVJ1blNpbmsucmVwb3J0ZXIuc3Vic2NyaWJlKChldmVudCkgPT4gewogICAgICAgICAgdGhpcy5fcmVwb3J0ZXIubmV4dChldmVudCk7CiAgICAgICAgICBlcnJvciA9IGVycm9yIHx8IGV2ZW50LmtpbmQgPT0gImVycm9yIjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgZHJ5UnVuU2luaywKICAgICAgICAgIC8vIEFkZCBhIGN1c3RvbSBzaW5rIHRoYXQgY2xlYW4gb3Vyc2VsdmVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgYW4gZXJyb3IgaGFwcGVuZWQuCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvbW1pdCgpIHsKICAgICAgICAgICAgICBkcnlSdW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24oKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gT25seSBhZGQgYSBIb3N0U2luayBpZiB0aGlzIGlzIG5vdCBhIGRyeVJ1bi4KICAgICAgICAgIC4uLiF0aGlzLl9kcnlSdW4gPyBbbmV3IGhvc3RfMS5Ib3N0U2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSldIDogW10KICAgICAgICBdOwogICAgICB9CiAgICAgIGV4ZWN1dGUob3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhcmVudENvbnRleHQgPSB0aGlzLl9jb250ZXh0W3RoaXMuX2NvbnRleHQubGVuZ3RoIC0gMV07CiAgICAgICAgaWYgKCFwYXJlbnRDb250ZXh0KSB7CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJzdGFydCIgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29sbGVjdGlvbihvcHRpb25zLmNvbGxlY3Rpb24pOwogICAgICAgIGNvbnN0IGFsbG93UHJpdmF0ZSA9IG9wdGlvbnMuYWxsb3dQcml2YXRlIHx8IHBhcmVudENvbnRleHQgJiYgcGFyZW50Q29udGV4dC5jb2xsZWN0aW9uID09PSBvcHRpb25zLmNvbGxlY3Rpb247CiAgICAgICAgY29uc3Qgc2NoZW1hdGljID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMob3B0aW9ucy5zY2hlbWF0aWMsIGFsbG93UHJpdmF0ZSk7CiAgICAgICAgY29uc3Qgc2lua3MgPSB0aGlzLl9jcmVhdGVTaW5rcygpOwogICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LXN0YXJ0IiB9KTsKICAgICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgICAgLi4ub3B0aW9ucywKICAgICAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLAogICAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB8fCBwYXJlbnRDb250ZXh0ICYmIHBhcmVudENvbnRleHQubG9nZ2VyIHx8IG5ldyBjb3JlXzEubG9nZ2luZy5OdWxsTG9nZ2VyKCksCiAgICAgICAgICBwYXJlbnRDb250ZXh0CiAgICAgICAgfTsKICAgICAgICB0aGlzLl9jb250ZXh0LnB1c2goY29udGV4dCk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYy5jYWxsKG9wdGlvbnMub3B0aW9ucywgKDAsIHJ4anNfMS5vZikobmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKHRoaXMuX2hvc3QpKSwgeyBsb2dnZXI6IGNvbnRleHQubG9nZ2VyIH0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKCh0cmVlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKCgwLCByeGpzXzEuZnJvbSkoc2lua3MpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChzaW5rKSA9PiBzaW5rLmNvbW1pdCh0cmVlKSksICgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKSh0cmVlKSk7CiAgICAgICAgfSksICgwLCByeGpzXzEuY29uY2F0TWFwKSgoKSA9PiB7CiAgICAgICAgICBpZiAodGhpcy5fZHJ5UnVuKSB7CiAgICAgICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJwb3N0LXRhc2tzLXN0YXJ0IiB9KTsKICAgICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuZXhlY3V0ZVBvc3RUYXNrcygpLnBpcGUoKDAsIHJ4anNfMS50YXApKHsgY29tcGxldGU6ICgpID0+IHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogInBvc3QtdGFza3MtZW5kIiB9KSB9KSwgKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodm9pZCAwKSwgKDAsIHJ4anNfMS5sYXN0KSgpKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS50YXApKHsKICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LWVuZCIgfSk7CiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQucG9wKCk7CiAgICAgICAgICAgIGlmICh0aGlzLl9jb250ZXh0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgdGhpcy5fbGlmZUN5Y2xlLm5leHQoeyBraW5kOiAiZW5kIiB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkJhc2VXb3JrZmxvdyA9IEJhc2VXb3JrZmxvdzsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2U1ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2luZGV4LmpzCnZhciByZXF1aXJlX3dvcmtmbG93ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYmFzZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9pbnRlcmZhY2U1KCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMKdmFyIHJlcXVpcmVfYmFzZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNvdXJjZSA9IHNvdXJjZTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZW1wdHk7CiAgICBleHBvcnRzMi5jaGFpbiA9IGNoYWluMjsKICAgIGV4cG9ydHMyLmFwcGx5ID0gYXBwbHkzOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gbWVyZ2VXaXRoMjsKICAgIGV4cG9ydHMyLm5vb3AgPSBub29wOwogICAgZXhwb3J0czIuZmlsdGVyID0gZmlsdGVyOwogICAgZXhwb3J0czIuYXNTb3VyY2UgPSBhc1NvdXJjZTsKICAgIGV4cG9ydHMyLmJyYW5jaEFuZE1lcmdlID0gYnJhbmNoQW5kTWVyZ2U7CiAgICBleHBvcnRzMi53aGVuID0gd2hlbjsKICAgIGV4cG9ydHMyLnBhcnRpdGlvbkFwcGx5TWVyZ2UgPSBwYXJ0aXRpb25BcHBseU1lcmdlOwogICAgZXhwb3J0czIuZm9yRWFjaCA9IGZvckVhY2g7CiAgICBleHBvcnRzMi5jb21wb3NlRmlsZU9wZXJhdG9ycyA9IGNvbXBvc2VGaWxlT3BlcmF0b3JzOwogICAgZXhwb3J0czIuYXBwbHlUb1N1YnRyZWUgPSBhcHBseVRvU3VidHJlZTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgaG9zdF90cmVlXzEgPSByZXF1aXJlX2hvc3RfdHJlZSgpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc2NvcGVkXzEgPSByZXF1aXJlX3Njb3BlZDIoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgY2FsbF8xID0gcmVxdWlyZV9jYWxsKCk7CiAgICBmdW5jdGlvbiBzb3VyY2UodHJlZSkgewogICAgICByZXR1cm4gKCkgPT4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gKCkgPT4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgfQogICAgZnVuY3Rpb24gY2hhaW4yKHJ1bGVzKSB7CiAgICAgIHJldHVybiBhc3luYyAoaW5pdGlhbFRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBsZXQgaW50ZXJtZWRpYXRlVHJlZTsKICAgICAgICBpZiAoU3ltYm9sLmFzeW5jSXRlcmF0b3IgaW4gcnVsZXMpIHsKICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoKSA9PiBpbnRlcm1lZGlhdGVUcmVlOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gYXBwbHkzKHNvdXJjZTIsIHJ1bGVzKSB7CiAgICAgIHJldHVybiAoY29udGV4dCkgPT4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgKDAsIGNhbGxfMS5jYWxsU291cmNlKShzb3VyY2UyLCBjb250ZXh0KSwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZVdpdGgyKHNvdXJjZTIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIHJldHVybiAoMCwgY2FsbF8xLmNhbGxTb3VyY2UpKHNvdXJjZTIsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzb3VyY2VUcmVlKSA9PiB0cmVlLm1lcmdlKHNvdXJjZVRyZWUsIHN0cmF0ZWd5IHx8IGNvbnRleHQuc3RyYXRlZ3kpKSwgKDAsIHJ4anNfMS5tYXBUbykodHJlZSkpOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gbm9vcCgpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuICh0cmVlKSA9PiB7CiAgICAgICAgaWYgKGhvc3RfdHJlZV8xLkhvc3RUcmVlLmlzSG9zdFRyZWUodHJlZSkpIHsKICAgICAgICAgIHJldHVybiBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzU291cmNlKHJ1bGUpIHsKICAgICAgcmV0dXJuIChjb250ZXh0KSA9PiAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlLCAoMCwgc3RhdGljXzEuZW1wdHkpKCksIGNvbnRleHQpOwogICAgfQogICAgZnVuY3Rpb24gYnJhbmNoQW5kTWVyZ2UocnVsZSwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgcmV0dXJuICh0cmVlLCBjb250ZXh0KSA9PiB7CiAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHJ1bGUsIHRyZWUuYnJhbmNoKCksIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChicmFuY2gpID0+IHRyZWUubWVyZ2UoYnJhbmNoLCBzdHJhdGVneSB8fCBjb250ZXh0LnN0cmF0ZWd5KSksICgwLCByeGpzXzEubWFwVG8pKHRyZWUpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHdoZW4ocHJlZGljYXRlLCBvcGVyYXRvcikgewogICAgICByZXR1cm4gKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKHByZWRpY2F0ZShlbnRyeS5wYXRoLCBlbnRyeSkpIHsKICAgICAgICAgIHJldHVybiBvcGVyYXRvcihlbnRyeSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBwYXJ0aXRpb25BcHBseU1lcmdlKHByZWRpY2F0ZSwgcnVsZVllcywgcnVsZU5vKSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IFt5ZXMsIG5vXSA9ICgwLCBzdGF0aWNfMS5wYXJ0aXRpb24pKHRyZWUsIHByZWRpY2F0ZSk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSgoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlWWVzLCB5ZXMsIGNvbnRleHQpLCAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlTm8gfHwgbm9vcCgpLCBubywgY29udGV4dCkpLnBpcGUoKDAsIHJ4anNfMS50b0FycmF5KSgpLCAoMCwgcnhqc18xLm1hcCkoKFt5ZXNUcmVlLCBub1RyZWVdKSA9PiB7CiAgICAgICAgICB5ZXNUcmVlLm1lcmdlKG5vVHJlZSwgY29udGV4dC5zdHJhdGVneSk7CiAgICAgICAgICByZXR1cm4geWVzVHJlZTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBmb3JFYWNoKG9wZXJhdG9yKSB7CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIHRyZWUudmlzaXQoKHBhdGgsIGVudHJ5KSA9PiB7CiAgICAgICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpOwogICAgICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHsKICAgICAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChuZXdFbnRyeS5wYXRoICE9IHBhdGgpIHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgbmV3RW50cnkucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5ld0VudHJ5LmNvbnRlbnQuZXF1YWxzKGVudHJ5LmNvbnRlbnQpKSB7CiAgICAgICAgICAgIHRyZWUub3ZlcndyaXRlKG5ld0VudHJ5LnBhdGgsIG5ld0VudHJ5LmNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gY29tcG9zZUZpbGVPcGVyYXRvcnMob3BlcmF0b3JzKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBsZXQgY3VycmVudCA9IGVudHJ5OwogICAgICAgIGZvciAoY29uc3Qgb3Agb2Ygb3BlcmF0b3JzKSB7CiAgICAgICAgICBjdXJyZW50ID0gb3AoY3VycmVudCk7CiAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBhcHBseVRvU3VidHJlZShwYXRoLCBydWxlcykgewogICAgICByZXR1cm4gKHRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBzY29wZWQgPSBuZXcgc2NvcGVkXzEuU2NvcGVkVHJlZSh0cmVlLCBwYXRoKTsKICAgICAgICByZXR1cm4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgc2NvcGVkLCBjb250ZXh0KS5waXBlKCgwLCByeGpzXzEubWFwKSgocmVzdWx0KSA9PiB7CiAgICAgICAgICBpZiAocmVzdWx0ID09PSBzY29wZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuU2NoZW1hdGljc0V4Y2VwdGlvbignT3JpZ2luYWwgdHJlZSBtdXN0IGJlIHJldHVybmVkIGZyb20gYWxsIHJ1bGVzIHdoZW4gdXNpbmcgImFwcGx5VG9TdWJ0cmVlIi4nKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLmpzCnZhciByZXF1aXJlX21vdmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL21vdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1vdmUgPSBtb3ZlMzsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGJhc2VfMSA9IHJlcXVpcmVfYmFzZTIoKTsKICAgIGZ1bmN0aW9uIG1vdmUzKGZyb20sIHRvKSB7CiAgICAgIGlmICh0byA9PT0gdm9pZCAwKSB7CiAgICAgICAgdG8gPSBmcm9tOwogICAgICAgIGZyb20gPSAiLyI7CiAgICAgIH0KICAgICAgY29uc3QgZnJvbVBhdGggPSAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoIi8iICsgZnJvbSk7CiAgICAgIGNvbnN0IHRvUGF0aCA9ICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyB0byk7CiAgICAgIGlmIChmcm9tUGF0aCA9PT0gdG9QYXRoKSB7CiAgICAgICAgcmV0dXJuIGJhc2VfMS5ub29wOwogICAgICB9CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIGlmICh0cmVlLmV4aXN0cyhmcm9tUGF0aCkpIHsKICAgICAgICAgIHRyZWUucmVuYW1lKGZyb21QYXRoLCB0b1BhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0cmVlLmdldERpcihmcm9tUGF0aCkudmlzaXQoKHBhdGgpID0+IHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgKDAsIGNvcmVfMS5qb2luKSh0b1BhdGgsIHBhdGguc2xpY2UoZnJvbVBhdGgubGVuZ3RoKSkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzCnZhciByZXF1aXJlX3JhbmRvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmYXVsdF8xOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlU3RyaW5nT2ZMZW5ndGgobCkgewogICAgICByZXR1cm4gbmV3IEFycmF5KGwpLmZpbGwoMCkubWFwKChfeCkgPT4gewogICAgICAgIHJldHVybiAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI2KV07CiAgICAgIH0pLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gcmFuZG9tKGZyb20sIHRvKSB7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAodG8gLSBmcm9tKSkgKyBmcm9tOwogICAgfQogICAgZnVuY3Rpb24gZGVmYXVsdF8xKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCByb290ID0gInJvb3QiIGluIG9wdGlvbnMgPyBvcHRpb25zLnJvb3QgOiAiLyI7CiAgICAgICAgY29uc3QgbWFwMiA9IG5ldyBob3N0X3RyZWVfMS5Ib3N0VHJlZSgpOwogICAgICAgIGNvbnN0IG5iRmlsZXMgPSAibXVsdGlGaWxlcyIgaW4gb3B0aW9ucyA/IHR5cGVvZiBvcHRpb25zLm11bHRpRmlsZXMgPT0gIm51bWJlciIgPyBvcHRpb25zLm11bHRpRmlsZXMgOiByYW5kb20oMiwgMTIpIDogMTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5iRmlsZXM7IGkrKykgewogICAgICAgICAgY29uc3QgcGF0aCA9ICJhL2IvYy9kL2UvZiIuc2xpY2UoTWF0aC5yYW5kb20oKSAqIDEwKTsKICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgyMCk7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgxMDApOwogICAgICAgICAgbWFwMi5jcmVhdGUocm9vdCArICIvIiArIHBhdGggKyAiLyIgKyBmaWxlTmFtZSwgY29udGVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvc2NoZW1hdGljLmpzCnZhciByZXF1aXJlX3NjaGVtYXRpYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZXJuYWxTY2hlbWF0aWMgPSBleHRlcm5hbFNjaGVtYXRpYzsKICAgIGV4cG9ydHMyLnNjaGVtYXRpYyA9IHNjaGVtYXRpYzsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgZnVuY3Rpb24gZXh0ZXJuYWxTY2hlbWF0aWMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIG9wdGlvbnMsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgcmV0dXJuIChpbnB1dCwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb250ZXh0LmVuZ2luZS5jcmVhdGVDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lLCBjb250ZXh0LnNjaGVtYXRpYy5jb2xsZWN0aW9uKTsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lLCBvcHRpb25zLCBleGVjdXRpb25PcHRpb25zKSB7CiAgICAgIHJldHVybiAoaW5wdXQsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5zY2hlbWF0aWMuY29sbGVjdGlvbjsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzCnZhciByZXF1aXJlX3RlbXBsYXRlMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkludmFsaWRQaXBlRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93blBpcGVFeGNlcHRpb24gPSBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBleHBvcnRzMi5URU1QTEFURV9GSUxFTkFNRV9SRSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmFwcGx5Q29udGVudFRlbXBsYXRlID0gYXBwbHlDb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5jb250ZW50VGVtcGxhdGUgPSBjb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5hcHBseVBhdGhUZW1wbGF0ZSA9IGFwcGx5UGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucGF0aFRlbXBsYXRlID0gcGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucmVuYW1lVGVtcGxhdGVGaWxlcyA9IHJlbmFtZVRlbXBsYXRlRmlsZXM7CiAgICBleHBvcnRzMi50ZW1wbGF0ZSA9IHRlbXBsYXRlMzsKICAgIGV4cG9ydHMyLmFwcGx5VGVtcGxhdGVzID0gYXBwbHlUZW1wbGF0ZXM7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBub2RlX29zXzEgPSByZXF1aXJlKCJub2RlOm9zIik7CiAgICB2YXIgYmFzZV8xID0gcmVxdWlyZV9iYXNlMigpOwogICAgZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUgPSAvXC50ZW1wbGF0ZSQvOwogICAgdmFyIE9wdGlvbklzTm90RGVmaW5lZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYE9wdGlvbiAiJHtuYW1lfSIgaXMgbm90IGRlZmluZWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb247CiAgICB2YXIgVW5rbm93blBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBub3QgZGVmaW5lZC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25QaXBlRXhjZXB0aW9uID0gVW5rbm93blBpcGVFeGNlcHRpb247CiAgICB2YXIgSW52YWxpZFBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBpbnZhbGlkLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFBpcGVFeGNlcHRpb24gPSBJbnZhbGlkUGlwZUV4Y2VwdGlvbjsKICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsIHsgZmF0YWw6IHRydWUgfSk7CiAgICBmdW5jdGlvbiBhcHBseUNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGVudHJ5OwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBkZWNvZGVkQ29udGVudCA9IGRlY29kZXIuZGVjb2RlKGNvbnRlbnQpLnJlcGxhY2UoL1xyP1xuL2csIG5vZGVfb3NfMS5FT0wpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20oKDAsIGNvcmVfMS50ZW1wbGF0ZSkoZGVjb2RlZENvbnRlbnQsIHt9KShvcHRpb25zKSkKICAgICAgICAgIH07CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgfHwgZS5jb2RlID09PSAiRVJSX0VOQ09ESU5HX0lOVkFMSURfRU5DT0RFRF9EQVRBIikgewogICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmZvckVhY2gpKGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFwcGx5UGF0aFRlbXBsYXRlKGRhdGEsIG9wdGlvbnMgPSB7CiAgICAgIGludGVycG9sYXRpb25TdGFydDogIl9fIiwKICAgICAgaW50ZXJwb2xhdGlvbkVuZDogIl9fIiwKICAgICAgcGlwZVNlcGFyYXRvcjogIkAiCiAgICB9KSB7CiAgICAgIGNvbnN0IGlzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uU3RhcnQ7CiAgICAgIGNvbnN0IGllID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uRW5kOwogICAgICBjb25zdCBpc0wgPSBpcy5sZW5ndGg7CiAgICAgIGNvbnN0IGllTCA9IGllLmxlbmd0aDsKICAgICAgcmV0dXJuIChlbnRyeSkgPT4gewogICAgICAgIGxldCBwYXRoID0gZW50cnkucGF0aDsKICAgICAgICBjb25zdCBjb250ZW50ID0gZW50cnkuY29udGVudDsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHBhdGg7CiAgICAgICAgbGV0IHN0YXJ0ID0gcGF0aC5pbmRleE9mKGlzKTsKICAgICAgICBsZXQgZW5kID0gcGF0aC5pbmRleE9mKGllLCBzdGFydCArIGlzTCArIDEpOwogICAgICAgIHdoaWxlIChzdGFydCAhPSAtMSAmJiBlbmQgIT0gLTEpIHsKICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aC5zdWJzdHJpbmcoc3RhcnQgKyBpc0wsIGVuZCk7CiAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSBkYXRhW21hdGNoXTsKICAgICAgICAgIGlmICghb3B0aW9ucy5waXBlU2VwYXJhdG9yKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQuY2FsbChkYXRhLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uKG1hdGNoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgW25hbWUsIC4uLnBpcGVzXSA9IG1hdGNoLnNwbGl0KG9wdGlvbnMucGlwZVNlcGFyYXRvcik7CiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZGF0YVtuYW1lXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlbWVudCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudC5jYWxsKGRhdGEsIG9yaWdpbmFsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBwaXBlcy5yZWR1Y2UoKGFjYywgcGlwZSkgPT4gewogICAgICAgICAgICAgIGlmICghcGlwZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFjYzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEocGlwZSBpbiBkYXRhKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBwaXBlRm4gPSBkYXRhW3BpcGVdOwogICAgICAgICAgICAgIGlmICh0eXBlb2YgcGlwZUZuICE9ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGlwZUV4Y2VwdGlvbihwaXBlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICIiICsgcGlwZUZuKGFjYyk7CiAgICAgICAgICAgIH0sICIiICsgcmVwbGFjZW1lbnQpOwogICAgICAgICAgfQogICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHJlcGxhY2VtZW50ICsgcGF0aC5zdWJzdHJpbmcoZW5kICsgaWVMKTsKICAgICAgICAgIHN0YXJ0ID0gcGF0aC5pbmRleE9mKG9wdGlvbnMuaW50ZXJwb2xhdGlvblN0YXJ0KTsKICAgICAgICAgIGVuZCA9IHBhdGguaW5kZXhPZihvcHRpb25zLmludGVycG9sYXRpb25FbmQsIHN0YXJ0ICsgaXNMICsgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHBhdGg6ICgwLCBjb3JlXzEubm9ybWFsaXplKShwYXRoKSwgY29udGVudCB9OwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gcGF0aFRlbXBsYXRlKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoYXBwbHlQYXRoVGVtcGxhdGUob3B0aW9ucykpOwogICAgfQogICAgZnVuY3Rpb24gcmVuYW1lVGVtcGxhdGVGaWxlcygpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKGVudHJ5LnBhdGgubWF0Y2goZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUpKSB7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBjb250ZW50OiBlbnRyeS5jb250ZW50LAogICAgICAgICAgICBwYXRoOiAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikpCiAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlMyhvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmNoYWluKShbCiAgICAgICAgY29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIEZvcmNlIGNhc3QgdG8gUGF0aFRlbXBsYXRlRGF0YS4gV2UgbmVlZCB0aGUgdHlwZSBmb3IgdGhlIGFjdHVhbCBwYXRoVGVtcGxhdGUoKSBjYWxsLAogICAgICAgIC8vIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgY2Fubm90IGRvIGFueXRoaW5nIGFzIGNvbnRlbnRUZW1wbGF0ZSBhcmUgbW9yZSBwZXJtaXNzaXZlLgogICAgICAgIC8vIFNpbmNlIHZhbHVlcyBhcmUgY29lcmNlZCB0byBzdHJpbmdzIGluIFBhdGhUZW1wbGF0ZXMgaXQgd2lsbCBiZSBmaW5lIGluIHRoZSBlbmQuCiAgICAgICAgcGF0aFRlbXBsYXRlKG9wdGlvbnMpCiAgICAgIF0pOwogICAgfQogICAgZnVuY3Rpb24gYXBwbHlUZW1wbGF0ZXMob3B0aW9ucykgewogICAgICByZXR1cm4gKDAsIGJhc2VfMS5mb3JFYWNoKSgoMCwgYmFzZV8xLndoZW4pKChwYXRoKSA9PiBwYXRoLmVuZHNXaXRoKCIudGVtcGxhdGUiKSwgKDAsIGJhc2VfMS5jb21wb3NlRmlsZU9wZXJhdG9ycykoWwogICAgICAgIGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIFNlZSBhYm92ZSBmb3IgdGhpcyB3ZWlyZCBjYXN0LgogICAgICAgIGFwcGx5UGF0aFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIChlbnRyeSkgPT4gewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29udGVudDogZW50cnkuY29udGVudCwKICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICBdKSkpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzCnZhciByZXF1aXJlX3VybCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi51cmwgPSB1cmwzOwogICAgdmFyIHVybF8xID0gcmVxdWlyZSgidXJsIik7CiAgICBmdW5jdGlvbiB1cmwzKHVybFN0cmluZykgewogICAgICBjb25zdCB1cmw0ID0gKDAsIHVybF8xLnBhcnNlKSh1cmxTdHJpbmcpOwogICAgICByZXR1cm4gKGNvbnRleHQpID0+IGNvbnRleHQuZW5naW5lLmNyZWF0ZVNvdXJjZUZyb21VcmwodXJsNCwgY29udGV4dCkoY29udGV4dCk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuRW1wdHlUcmVlID0gdm9pZCAwOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIHZhciBFbXB0eVRyZWUgPSBjbGFzcyBleHRlbmRzIGhvc3RfdHJlZV8xLkhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkVtcHR5VHJlZSA9IEVtcHR5VHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UcmVlID0gZXhwb3J0czIud29ya2Zsb3cgPSBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIuZm9ybWF0cyA9IGV4cG9ydHMyLlNjaGVtYXRpY3NFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ3MiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb3JlXzEuc3RyaW5nczsKICAgIH0gfSk7CiAgICB2YXIgZm9ybWF0cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2Zvcm1hdHMyKCkpOwogICAgZXhwb3J0czIuZm9ybWF0cyA9IGZvcm1hdHM7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgd29ya2Zsb3cgPSBfX2ltcG9ydFN0YXIocmVxdWlyZV93b3JrZmxvdygpKTsKICAgIGV4cG9ydHMyLndvcmtmbG93ID0gd29ya2Zsb3c7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjaGVtYXRpY3NFeGNlcHRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGNlcHRpb25fMS5TY2hlbWF0aWNzRXhjZXB0aW9uOwogICAgfSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2FjdGlvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbmdpbmUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2V4Y2VwdGlvbjIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlMygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9iYXNlMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jYWxsKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX21vdmUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmFuZG9tKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYzIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3VybCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kZWxlZ2F0ZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbXB0eTMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdF90cmVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kcnlydW4oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2luaygpLCBleHBvcnRzMik7CiAgICBleHBvcnRzMi5UcmVlID0gewogICAgICBlbXB0eSgpIHsKICAgICAgICByZXR1cm4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgICB9LAogICAgICBicmFuY2godHJlZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEuYnJhbmNoKSh0cmVlKTsKICAgICAgfSwKICAgICAgbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgICAgcmV0dXJuICgwLCBzdGF0aWNfMS5tZXJnZSkodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTsKICAgICAgfSwKICAgICAgcGFydGl0aW9uKHRyZWUsIHByZWRpY2F0ZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEucGFydGl0aW9uKSh0cmVlLCBwcmVkaWNhdGUpOwogICAgICB9LAogICAgICBvcHRpbWl6ZSh0cmVlKSB7CiAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3N0cmlwLWpzb24tY29tbWVudHMtbnBtLTMuMS4xLWRjYjIzMjQ4MjMtMTAuemlwL25vZGVfbW9kdWxlcy9zdHJpcC1qc29uLWNvbW1lbnRzL2luZGV4LmpzCnZhciByZXF1aXJlX3N0cmlwX2pzb25fY29tbWVudHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc3RyaXAtanNvbi1jb21tZW50cy1ucG0tMy4xLjEtZGNiMjMyNDgyMy0xMC56aXAvbm9kZV9tb2R1bGVzL3N0cmlwLWpzb24tY29tbWVudHMvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2luZ2xlQ29tbWVudCA9IFN5bWJvbCgic2luZ2xlQ29tbWVudCIpOwogICAgdmFyIG11bHRpQ29tbWVudCA9IFN5bWJvbCgibXVsdGlDb21tZW50Iik7CiAgICB2YXIgc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA9ICgpID0+ICIiOwogICAgdmFyIHN0cmlwV2l0aFdoaXRlc3BhY2UgPSAoc3RyaW5nLCBzdGFydCwgZW5kKSA9PiBzdHJpbmcuc2xpY2Uoc3RhcnQsIGVuZCkucmVwbGFjZSgvXFMvZywgIiAiKTsKICAgIHZhciBpc0VzY2FwZWQgPSAoanNvblN0cmluZywgcXVvdGVQb3NpdGlvbikgPT4gewogICAgICBsZXQgaW5kZXggPSBxdW90ZVBvc2l0aW9uIC0gMTsKICAgICAgbGV0IGJhY2tzbGFzaENvdW50ID0gMDsKICAgICAgd2hpbGUgKGpzb25TdHJpbmdbaW5kZXhdID09PSAiXFwiKSB7CiAgICAgICAgaW5kZXggLT0gMTsKICAgICAgICBiYWNrc2xhc2hDb3VudCArPSAxOwogICAgICB9CiAgICAgIHJldHVybiBCb29sZWFuKGJhY2tzbGFzaENvdW50ICUgMik7CiAgICB9OwogICAgbW9kdWxlMi5leHBvcnRzID0gKGpzb25TdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGpzb25TdHJpbmcgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYXJndW1lbnQgXGBqc29uU3RyaW5nXGAgdG8gYmUgYSBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiBqc29uU3RyaW5nfVxgYCk7CiAgICAgIH0KICAgICAgY29uc3Qgc3RyaXAgPSBvcHRpb25zLndoaXRlc3BhY2UgPT09IGZhbHNlID8gc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA6IHN0cmlwV2l0aFdoaXRlc3BhY2U7CiAgICAgIGxldCBpbnNpZGVTdHJpbmcgPSBmYWxzZTsKICAgICAgbGV0IGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uU3RyaW5nLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3VycmVudENoYXJhY3RlciA9IGpzb25TdHJpbmdbaV07CiAgICAgICAgY29uc3QgbmV4dENoYXJhY3RlciA9IGpzb25TdHJpbmdbaSArIDFdOwogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyID09PSAnIicpIHsKICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSBpc0VzY2FwZWQoanNvblN0cmluZywgaSk7CiAgICAgICAgICBpZiAoIWVzY2FwZWQpIHsKICAgICAgICAgICAgaW5zaWRlU3RyaW5nID0gIWluc2lkZVN0cmluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGluc2lkZVN0cmluZykgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIi8vIikgewogICAgICAgICAgcmVzdWx0ICs9IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0LCBpKTsKICAgICAgICAgIG9mZnNldCA9IGk7CiAgICAgICAgICBpbnNpZGVDb21tZW50ID0gc2luZ2xlQ29tbWVudDsKICAgICAgICAgIGkrKzsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IHNpbmdsZUNvbW1lbnQgJiYgY3VycmVudENoYXJhY3RlciArIG5leHRDaGFyYWN0ZXIgPT09ICJcclxuIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSk7CiAgICAgICAgICBvZmZzZXQgPSBpOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBlbHNlIGlmIChpbnNpZGVDb21tZW50ID09PSBzaW5nbGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgPT09ICJcbiIpIHsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgICAgIHJlc3VsdCArPSBzdHJpcChqc29uU3RyaW5nLCBvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICB9IGVsc2UgaWYgKCFpbnNpZGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgKyBuZXh0Q2hhcmFjdGVyID09PSAiLyoiKSB7CiAgICAgICAgICByZXN1bHQgKz0ganNvblN0cmluZy5zbGljZShvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBtdWx0aUNvbW1lbnQ7CiAgICAgICAgICBpKys7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IG11bHRpQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIiovIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSArIDEpOwogICAgICAgICAgb2Zmc2V0ID0gaSArIDE7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdCArIChpbnNpZGVDb21tZW50ID8gc3RyaXAoanNvblN0cmluZy5zbGljZShvZmZzZXQpKSA6IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0KSk7CiAgICB9OwogIH0KfSk7CgovLyBzcmMvc2NoZW1hdGljL2luZGV4LnRzCnZhciBpbmRleF9leHBvcnRzID0ge307Cl9fZXhwb3J0KGluZGV4X2V4cG9ydHMsIHsKICBtYWluOiAoKSA9PiBtYWluCn0pOwptb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTsKCi8vIHNyYy9zY2hlbWF0aWMvcHJvamVjdC9wcm9qZWN0LmZhY3RvcnkudHMKdmFyIGltcG9ydF9zY2hlbWF0aWNzOSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9qc29uLnV0aWxzLnRzCnZhciBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cyA9IF9fdG9FU00ocmVxdWlyZV9zdHJpcF9qc29uX2NvbW1lbnRzKCksIDEpOwp2YXIgc2VyaWFsaXplSnNvbiA9IChqc29uMikgPT4gYCR7SlNPTi5zdHJpbmdpZnkoanNvbjIsIG51bGwsIDIpfQpgOwp2YXIgcmVhZEpzb25JblRyZWUgPSAoaG9zdCwgcGF0aCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtwYXRofWApOwogIH0KICBjb25zdCBjb250ZW50cyA9ICgwLCBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cy5kZWZhdWx0KShob3N0LnJlYWQocGF0aCk/LnRvU3RyaW5nKCJ1dGYtOCIpIHx8ICIiKTsKICB0cnkgewogICAgcmV0dXJuIEpTT04ucGFyc2UoY29udGVudHMpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGNvbnN0IGVycm9yID0gZTsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlICR7cGF0aH06ICR7ZXJyb3IubWVzc2FnZX1gKTsKICB9Cn07CnZhciB1cGRhdGVKc29uSW5UcmVlID0gKHBhdGgsIGNhbGxiYWNrKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIGhvc3QuY3JlYXRlKHBhdGgsIHNlcmlhbGl6ZUpzb24oY2FsbGJhY2soe30sIGNvbnRleHQpKSk7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgaG9zdC5vdmVyd3JpdGUoCiAgICBwYXRoLAogICAgc2VyaWFsaXplSnNvbihjYWxsYmFjayhyZWFkSnNvbkluVHJlZShob3N0LCBwYXRoKSwgY29udGV4dCkpCiAgKTsKICByZXR1cm4gaG9zdDsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvdXRpbHMvdHNjb25maWcudXRpbHMudHMKdmFyIHVwZGF0ZVRzQ29uZmlnSW5UcmVlID0gKGNvbXBpbGVyT3B0aW9ucykgPT4gdXBkYXRlSnNvbkluVHJlZSgidHNjb25maWcuanNvbiIsICh0c2NvbmZpZykgPT4gKHsKICAuLi50c2NvbmZpZywKICBjb21waWxlck9wdGlvbnMKfSkpOwoKLy8gc3JjL3NjaGVtYXRpYy9ydWxlcy91cGRhdGUtdHMtY29uZmlnLnJ1bGUudHMKdmFyIHVwZGF0ZVRzQ29uZmlnUnVsZSA9IGFzeW5jICgpID0+IHsKICBjb25zdCB7IHRzQ29uZmlnIH0gPSBhd2FpdCBpbXBvcnQoIkBhdGxzL2NvZGUtcnVudGltZSIpOwogIHJldHVybiB1cGRhdGVUc0NvbmZpZ0luVHJlZSh7CiAgICAuLi50c0NvbmZpZy5jb21waWxlck9wdGlvbnMKICB9KTsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvc291cmNlcy9nZW5lcmF0ZS1jb21tb24uc291cmNlLnRzCnZhciBpbXBvcnRfY29yZSA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljcyA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MyID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczMgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgZ2VuZXJhdGVDb21tb25Tb3VyY2UgPSAob3B0aW9ucykgPT4gKDAsIGltcG9ydF9zY2hlbWF0aWNzLmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M0LnVybCkoIi4uL3RlbXBsYXRlcy9jb21tb24iKSwgWwogICgwLCBpbXBvcnRfc2NoZW1hdGljczIudGVtcGxhdGUpKHsKICAgIC4uLmltcG9ydF9jb3JlLnN0cmluZ3MsCiAgICAuLi5vcHRpb25zLAogICAgZG90OiAiLiIKICB9KSwKICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MzLm1vdmUpKCIuLyIpCl0pOwoKLy8gc3JjL3NjaGVtYXRpYy9zb3VyY2VzL2dlbmVyYXRlLXByb2plY3Qtc3BlY2lmaWMuc291cmNlLnRzCnZhciBpbXBvcnRfbm9kZV9mcyA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKdmFyIGltcG9ydF9ub2RlX3BhdGggPSByZXF1aXJlKCJub2RlOnBhdGgiKTsKdmFyIGltcG9ydF9jb3JlMiA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczUgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNiA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3M3ID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczggPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGdlbmVyYXRlUHJvamVjdFNwZWNpZmljU291cmNlID0gKG9wdGlvbnMpID0+IHsKICBjb25zdCB7IG5hbWU6IHByb2plY3ROYW1lIH0gPSBKU09OLnBhcnNlKAogICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG4vbm8tc3luYwogICAgKDAsIGltcG9ydF9ub2RlX2ZzLnJlYWRGaWxlU3luYykoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikob3B0aW9ucy5jd2QsICJwYWNrYWdlLmpzb24iKSwgInV0Zi04IikKICApOwogIHJldHVybiAoMCwgaW1wb3J0X3NjaGVtYXRpY3M1LmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M2LnVybCkoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikoIi4uL3RlbXBsYXRlcyIsIG9wdGlvbnMudHlwZSkpLCBbCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3M3LnRlbXBsYXRlKSh7CiAgICAgIC4uLmltcG9ydF9jb3JlMi5zdHJpbmdzLAogICAgICAuLi5vcHRpb25zLAogICAgICBwcm9qZWN0TmFtZSwKICAgICAgZG90OiAiLiIKICAgIH0pLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzOC5tb3ZlKSgiLi8iKQogIF0pOwp9OwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9tZXJnZS1naXRpZ25vcmUtY29udGVudC51dGlscy50cwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19TVEFSVF9NQVJLRVIgPSAiIyByYWlqaW46YmVnaW4gcHJvamVjdC1zcGVjaWZpYyBnaXRpZ25vcmUiOwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19FTkRfTUFSS0VSID0gIiMgcmFpamluOmVuZCBwcm9qZWN0LXNwZWNpZmljIGdpdGlnbm9yZSI7CnZhciBub3JtYWxpemVDb250ZW50ID0gKGNvbnRlbnQpID0+IGNvbnRlbnQucmVwbGFjZSgvXHJcbi9nLCAiXG4iKTsKdmFyIGdldE5vcm1hbGl6ZWRMaW5lcyA9IChjb250ZW50KSA9PiBub3JtYWxpemVDb250ZW50KGNvbnRlbnQpLnNwbGl0KCJcbiIpOwp2YXIgdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyA9IChsaW5lcykgPT4gewogIGNvbnN0IG5vcm1hbGl6ZWRMaW5lcyA9IFsuLi5saW5lc107CiAgd2hpbGUgKG5vcm1hbGl6ZWRMaW5lcy5sZW5ndGggPiAwICYmIG5vcm1hbGl6ZWRMaW5lc1tub3JtYWxpemVkTGluZXMubGVuZ3RoIC0gMV0gPT09ICIiKSB7CiAgICBub3JtYWxpemVkTGluZXMucG9wKCk7CiAgfQogIHJldHVybiBub3JtYWxpemVkTGluZXM7Cn07CnZhciBpc1Byb2plY3RTcGVjaWZpY0xpbmUgPSAobGluZSwgdGVtcGxhdGVMaW5lU2V0KSA9PiBsaW5lICE9PSAiIiAmJiAhdGVtcGxhdGVMaW5lU2V0LmhhcyhsaW5lKSAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX1NUQVJUX01BUktFUiAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVI7CnZhciBnZXRQcm9qZWN0U3BlY2lmaWNMaW5lcyA9IChleGlzdGluZ0xpbmVzLCB0ZW1wbGF0ZUxpbmVTZXQpID0+IHsKICBjb25zdCBzdGFydEluZGV4ID0gZXhpc3RpbmdMaW5lcy5pbmRleE9mKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBjb25zdCBlbmRJbmRleCA9IGV4aXN0aW5nTGluZXMuaW5kZXhPZihQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVIpOwogIGlmIChzdGFydEluZGV4ICE9PSAtMSAmJiBlbmRJbmRleCA+IHN0YXJ0SW5kZXgpIHsKICAgIHJldHVybiBBcnJheS5mcm9tKAogICAgICBuZXcgU2V0KGV4aXN0aW5nTGluZXMuZmlsdGVyKChsaW5lKSA9PiBpc1Byb2plY3RTcGVjaWZpY0xpbmUobGluZSwgdGVtcGxhdGVMaW5lU2V0KSkpCiAgICApOwogIH0KICByZXR1cm4gZXhpc3RpbmdMaW5lcy5maWx0ZXIoKGxpbmUpID0+IGlzUHJvamVjdFNwZWNpZmljTGluZShsaW5lLCB0ZW1wbGF0ZUxpbmVTZXQpKTsKfTsKdmFyIG1lcmdlR2l0SWdub3JlQ29udGVudCA9ICh7CiAgZXhpc3RpbmdDb250ZW50LAogIHRlbXBsYXRlQ29udGVudAp9KSA9PiB7CiAgY29uc3QgdGVtcGxhdGVMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyh0ZW1wbGF0ZUNvbnRlbnQpOwogIGNvbnN0IHRlbXBsYXRlTGluZVNldCA9IG5ldyBTZXQodGVtcGxhdGVMaW5lcyk7CiAgY29uc3QgZXhpc3RpbmdMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyhleGlzdGluZ0NvbnRlbnQpOwogIGNvbnN0IHByb2plY3RTcGVjaWZpY0xpbmVzID0gZ2V0UHJvamVjdFNwZWNpZmljTGluZXMoZXhpc3RpbmdMaW5lcywgdGVtcGxhdGVMaW5lU2V0KTsKICBpZiAocHJvamVjdFNwZWNpZmljTGluZXMubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyh0ZW1wbGF0ZUxpbmVzKS5qb2luKCJcbiIpOwogIH0KICBjb25zdCBtZXJnZWRMaW5lcyA9IHRyaW1UcmFpbGluZ0VtcHR5TGluZXModGVtcGxhdGVMaW5lcyk7CiAgaWYgKG1lcmdlZExpbmVzLmxlbmd0aCA+IDApIHsKICAgIG1lcmdlZExpbmVzLnB1c2goIiIpOwogIH0KICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBtZXJnZWRMaW5lcy5wdXNoKC4uLnByb2plY3RTcGVjaWZpY0xpbmVzKTsKICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfRU5EX01BUktFUik7CiAgcmV0dXJuIG1lcmdlZExpbmVzLmpvaW4oIlxuIik7Cn07CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qcy15YW1sLW5wbS00LjEuMC0zNjA2ZjMyMzEyLTEwLnppcC9ub2RlX21vZHVsZXMvanMteWFtbC9kaXN0L2pzLXlhbWwubWpzCmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7CiAgcmV0dXJuIHR5cGVvZiBzdWJqZWN0ID09PSAidW5kZWZpbmVkIiB8fCBzdWJqZWN0ID09PSBudWxsOwp9CmZ1bmN0aW9uIGlzT2JqZWN0KHN1YmplY3QpIHsKICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09ICJvYmplY3QiICYmIHN1YmplY3QgIT09IG51bGw7Cn0KZnVuY3Rpb24gdG9BcnJheShzZXF1ZW5jZSkgewogIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSkgcmV0dXJuIHNlcXVlbmNlOwogIGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHJldHVybiBbXTsKICByZXR1cm4gW3NlcXVlbmNlXTsKfQpmdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzOwogIGlmIChzb3VyY2UpIHsKICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKICAgIH0KICB9CiAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkgewogIHZhciByZXN1bHQgPSAiIiwgY3ljbGU7CiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHsKICAgIHJlc3VsdCArPSBzdHJpbmc7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7CiAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7Cn0KdmFyIGlzTm90aGluZ18xID0gaXNOb3RoaW5nOwp2YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0Owp2YXIgdG9BcnJheV8xID0gdG9BcnJheTsKdmFyIHJlcGVhdF8xID0gcmVwZWF0Owp2YXIgaXNOZWdhdGl2ZVplcm9fMSA9IGlzTmVnYXRpdmVaZXJvOwp2YXIgZXh0ZW5kXzEgPSBleHRlbmQ7CnZhciBjb21tb24gPSB7CiAgaXNOb3RoaW5nOiBpc05vdGhpbmdfMSwKICBpc09iamVjdDogaXNPYmplY3RfMSwKICB0b0FycmF5OiB0b0FycmF5XzEsCiAgcmVwZWF0OiByZXBlYXRfMSwKICBpc05lZ2F0aXZlWmVybzogaXNOZWdhdGl2ZVplcm9fMSwKICBleHRlbmQ6IGV4dGVuZF8xCn07CmZ1bmN0aW9uIGZvcm1hdEVycm9yKGV4Y2VwdGlvbjIsIGNvbXBhY3QpIHsKICB2YXIgd2hlcmUgPSAiIiwgbWVzc2FnZSA9IGV4Y2VwdGlvbjIucmVhc29uIHx8ICIodW5rbm93biByZWFzb24pIjsKICBpZiAoIWV4Y2VwdGlvbjIubWFyaykgcmV0dXJuIG1lc3NhZ2U7CiAgaWYgKGV4Y2VwdGlvbjIubWFyay5uYW1lKSB7CiAgICB3aGVyZSArPSAnaW4gIicgKyBleGNlcHRpb24yLm1hcmsubmFtZSArICciICc7CiAgfQogIHdoZXJlICs9ICIoIiArIChleGNlcHRpb24yLm1hcmsubGluZSArIDEpICsgIjoiICsgKGV4Y2VwdGlvbjIubWFyay5jb2x1bW4gKyAxKSArICIpIjsKICBpZiAoIWNvbXBhY3QgJiYgZXhjZXB0aW9uMi5tYXJrLnNuaXBwZXQpIHsKICAgIHdoZXJlICs9ICJcblxuIiArIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0OwogIH0KICByZXR1cm4gbWVzc2FnZSArICIgIiArIHdoZXJlOwp9CmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHsKICBFcnJvci5jYWxsKHRoaXMpOwogIHRoaXMubmFtZSA9ICJZQU1MRXhjZXB0aW9uIjsKICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKICB0aGlzLm1hcmsgPSBtYXJrOwogIHRoaXMubWVzc2FnZSA9IGZvcm1hdEVycm9yKHRoaXMsIGZhbHNlKTsKICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHsKICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpOwogIH0gZWxzZSB7CiAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2sgfHwgIiI7CiAgfQp9CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBZQU1MRXhjZXB0aW9uJDE7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7CiAgcmV0dXJuIHRoaXMubmFtZSArICI6ICIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTsKfTsKdmFyIGV4Y2VwdGlvbiA9IFlBTUxFeGNlcHRpb24kMTsKZnVuY3Rpb24gZ2V0TGluZShidWZmZXIsIGxpbmVTdGFydCwgbGluZUVuZCwgcG9zaXRpb24sIG1heExpbmVMZW5ndGgpIHsKICB2YXIgaGVhZCA9ICIiOwogIHZhciB0YWlsID0gIiI7CiAgdmFyIG1heEhhbGZMZW5ndGggPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGggLyAyKSAtIDE7CiAgaWYgKHBvc2l0aW9uIC0gbGluZVN0YXJ0ID4gbWF4SGFsZkxlbmd0aCkgewogICAgaGVhZCA9ICIgLi4uICI7CiAgICBsaW5lU3RhcnQgPSBwb3NpdGlvbiAtIG1heEhhbGZMZW5ndGggKyBoZWFkLmxlbmd0aDsKICB9CiAgaWYgKGxpbmVFbmQgLSBwb3NpdGlvbiA+IG1heEhhbGZMZW5ndGgpIHsKICAgIHRhaWwgPSAiIC4uLiI7CiAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7CiAgfQogIHJldHVybiB7CiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cdC9nLCAiXHUyMTkyIikgKyB0YWlsLAogICAgcG9zOiBwb3NpdGlvbiAtIGxpbmVTdGFydCArIGhlYWQubGVuZ3RoCiAgICAvLyByZWxhdGl2ZSBwb3NpdGlvbgogIH07Cn0KZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCBtYXgpIHsKICByZXR1cm4gY29tbW9uLnJlcGVhdCgiICIsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nOwp9CmZ1bmN0aW9uIG1ha2VTbmlwcGV0KG1hcmssIG9wdGlvbnMpIHsKICBvcHRpb25zID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpOwogIGlmICghbWFyay5idWZmZXIpIHJldHVybiBudWxsOwogIGlmICghb3B0aW9ucy5tYXhMZW5ndGgpIG9wdGlvbnMubWF4TGVuZ3RoID0gNzk7CiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gIm51bWJlciIpIG9wdGlvbnMuaW5kZW50ID0gMTsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNCZWZvcmUgIT09ICJudW1iZXIiKSBvcHRpb25zLmxpbmVzQmVmb3JlID0gMzsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNBZnRlciAhPT0gIm51bWJlciIpIG9wdGlvbnMubGluZXNBZnRlciA9IDI7CiAgdmFyIHJlID0gL1xyP1xufFxyfFwwL2c7CiAgdmFyIGxpbmVTdGFydHMgPSBbMF07CiAgdmFyIGxpbmVFbmRzID0gW107CiAgdmFyIG1hdGNoOwogIHZhciBmb3VuZExpbmVObyA9IC0xOwogIHdoaWxlIChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSB7CiAgICBsaW5lRW5kcy5wdXNoKG1hdGNoLmluZGV4KTsKICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHsKICAgICAgZm91bmRMaW5lTm8gPSBsaW5lU3RhcnRzLmxlbmd0aCAtIDI7CiAgICB9CiAgfQogIGlmIChmb3VuZExpbmVObyA8IDApIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxOwogIHZhciByZXN1bHQgPSAiIiwgaSwgbGluZTsKICB2YXIgbGluZU5vTGVuZ3RoID0gTWF0aC5taW4obWFyay5saW5lICsgb3B0aW9ucy5saW5lc0FmdGVyLCBsaW5lRW5kcy5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoOwogIHZhciBtYXhMaW5lTGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggLSAob3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzKTsKICBmb3IgKGkgPSAxOyBpIDw9IG9wdGlvbnMubGluZXNCZWZvcmU7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vIC0gaSA8IDApIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ID0gY29tbW9uLnJlcGVhdCgiICIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iICsgcmVzdWx0OwogIH0KICBsaW5lID0gZ2V0TGluZShtYXJrLmJ1ZmZlciwgbGluZVN0YXJ0c1tmb3VuZExpbmVOb10sIGxpbmVFbmRzW2ZvdW5kTGluZU5vXSwgbWFyay5wb3NpdGlvbiwgbWF4TGluZUxlbmd0aCk7CiAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iOwogIHJlc3VsdCArPSBjb21tb24ucmVwZWF0KCItIiwgb3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzICsgbGluZS5wb3MpICsgIl5cbiI7CiAgZm9yIChpID0gMTsgaSA8PSBvcHRpb25zLmxpbmVzQWZ0ZXI7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vICsgaSA+PSBsaW5lRW5kcy5sZW5ndGgpIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgaSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyAiIHwgIiArIGxpbmUuc3RyICsgIlxuIjsKICB9CiAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cbiQvLCAiIik7Cn0KdmFyIHNuaXBwZXQgPSBtYWtlU25pcHBldDsKdmFyIFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyA9IFsKICAia2luZCIsCiAgIm11bHRpIiwKICAicmVzb2x2ZSIsCiAgImNvbnN0cnVjdCIsCiAgImluc3RhbmNlT2YiLAogICJwcmVkaWNhdGUiLAogICJyZXByZXNlbnQiLAogICJyZXByZXNlbnROYW1lIiwKICAiZGVmYXVsdFN0eWxlIiwKICAic3R5bGVBbGlhc2VzIgpdOwp2YXIgWUFNTF9OT0RFX0tJTkRTID0gWwogICJzY2FsYXIiLAogICJzZXF1ZW5jZSIsCiAgIm1hcHBpbmciCl07CmZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXMobWFwMikgewogIHZhciByZXN1bHQgPSB7fTsKICBpZiAobWFwMiAhPT0gbnVsbCkgewogICAgT2JqZWN0LmtleXMobWFwMikuZm9yRWFjaChmdW5jdGlvbihzdHlsZSkgewogICAgICBtYXAyW3N0eWxlXS5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7CiAgICAgICAgcmVzdWx0W1N0cmluZyhhbGlhcyldID0gc3R5bGU7CiAgICAgIH0pOwogICAgfSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gVHlwZSQxKHRhZywgb3B0aW9ucykgewogIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewogICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiAiJyArIG5hbWUgKyAnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyArIHRhZyArICciIFlBTUwgdHlwZS4nKTsKICAgIH0KICB9KTsKICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogIHRoaXMudGFnID0gdGFnOwogIHRoaXMua2luZCA9IG9wdGlvbnNbImtpbmQiXSB8fCBudWxsOwogIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbInJlc29sdmUiXSB8fCBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0cnVlOwogIH07CiAgdGhpcy5jb25zdHJ1Y3QgPSBvcHRpb25zWyJjb25zdHJ1Y3QiXSB8fCBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YTsKICB9OwogIHRoaXMuaW5zdGFuY2VPZiA9IG9wdGlvbnNbImluc3RhbmNlT2YiXSB8fCBudWxsOwogIHRoaXMucHJlZGljYXRlID0gb3B0aW9uc1sicHJlZGljYXRlIl0gfHwgbnVsbDsKICB0aGlzLnJlcHJlc2VudCA9IG9wdGlvbnNbInJlcHJlc2VudCJdIHx8IG51bGw7CiAgdGhpcy5yZXByZXNlbnROYW1lID0gb3B0aW9uc1sicmVwcmVzZW50TmFtZSJdIHx8IG51bGw7CiAgdGhpcy5kZWZhdWx0U3R5bGUgPSBvcHRpb25zWyJkZWZhdWx0U3R5bGUiXSB8fCBudWxsOwogIHRoaXMubXVsdGkgPSBvcHRpb25zWyJtdWx0aSJdIHx8IGZhbHNlOwogIHRoaXMuc3R5bGVBbGlhc2VzID0gY29tcGlsZVN0eWxlQWxpYXNlcyhvcHRpb25zWyJzdHlsZUFsaWFzZXMiXSB8fCBudWxsKTsKICBpZiAoWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSA9PT0gLTEpIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1Vua25vd24ga2luZCAiJyArIHRoaXMua2luZCArICciIGlzIHNwZWNpZmllZCBmb3IgIicgKyB0YWcgKyAnIiBZQU1MIHR5cGUuJyk7CiAgfQp9CnZhciB0eXBlID0gVHlwZSQxOwpmdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEyLCBuYW1lKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIHNjaGVtYTJbbmFtZV0uZm9yRWFjaChmdW5jdGlvbihjdXJyZW50VHlwZSkgewogICAgdmFyIG5ld0luZGV4ID0gcmVzdWx0Lmxlbmd0aDsKICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkgewogICAgICBpZiAocHJldmlvdXNUeXBlLnRhZyA9PT0gY3VycmVudFR5cGUudGFnICYmIHByZXZpb3VzVHlwZS5raW5kID09PSBjdXJyZW50VHlwZS5raW5kICYmIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHsKICAgICAgICBuZXdJbmRleCA9IHByZXZpb3VzSW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmVzdWx0W25ld0luZGV4XSA9IGN1cnJlbnRUeXBlOwogIH0pOwogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gY29tcGlsZU1hcCgpIHsKICB2YXIgcmVzdWx0ID0gewogICAgc2NhbGFyOiB7fSwKICAgIHNlcXVlbmNlOiB7fSwKICAgIG1hcHBpbmc6IHt9LAogICAgZmFsbGJhY2s6IHt9LAogICAgbXVsdGk6IHsKICAgICAgc2NhbGFyOiBbXSwKICAgICAgc2VxdWVuY2U6IFtdLAogICAgICBtYXBwaW5nOiBbXSwKICAgICAgZmFsbGJhY2s6IFtdCiAgICB9CiAgfSwgaW5kZXgsIGxlbmd0aDsKICBmdW5jdGlvbiBjb2xsZWN0VHlwZSh0eXBlMikgewogICAgaWYgKHR5cGUyLm11bHRpKSB7CiAgICAgIHJlc3VsdC5tdWx0aVt0eXBlMi5raW5kXS5wdXNoKHR5cGUyKTsKICAgICAgcmVzdWx0Lm11bHRpWyJmYWxsYmFjayJdLnB1c2godHlwZTIpOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0W3R5cGUyLmtpbmRdW3R5cGUyLnRhZ10gPSByZXN1bHRbImZhbGxiYWNrIl1bdHlwZTIudGFnXSA9IHR5cGUyOwogICAgfQogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gU2NoZW1hJDEoZGVmaW5pdGlvbikgewogIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTsKfQpTY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kID0gZnVuY3Rpb24gZXh0ZW5kMihkZWZpbml0aW9uKSB7CiAgdmFyIGltcGxpY2l0ID0gW107CiAgdmFyIGV4cGxpY2l0ID0gW107CiAgaWYgKGRlZmluaXRpb24gaW5zdGFuY2VvZiB0eXBlKSB7CiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pOwogIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkgewogICAgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbik7CiAgfSBlbHNlIGlmIChkZWZpbml0aW9uICYmIChBcnJheS5pc0FycmF5KGRlZmluaXRpb24uaW1wbGljaXQpIHx8IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5leHBsaWNpdCkpKSB7CiAgICBpZiAoZGVmaW5pdGlvbi5pbXBsaWNpdCkgaW1wbGljaXQgPSBpbXBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5pbXBsaWNpdCk7CiAgICBpZiAoZGVmaW5pdGlvbi5leHBsaWNpdCkgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5leHBsaWNpdCk7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sIG9yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSkiKTsKICB9CiAgaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0eXBlJDEpIHsKICAgIGlmICghKHR5cGUkMSBpbnN0YW5jZW9mIHR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubG9hZEtpbmQgJiYgdHlwZSQxLmxvYWRLaW5kICE9PSAic2NhbGFyIikgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubXVsdGkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiVGhlcmUgaXMgYSBtdWx0aSB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBNdWx0aSB0YWdzIGNhbiBvbmx5IGJlIGxpc3RlZCBhcyBleHBsaWNpdC4iKTsKICAgIH0KICB9KTsKICBleHBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUkMSkgewogICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpOwogICAgfQogIH0pOwogIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7CiAgcmVzdWx0LmltcGxpY2l0ID0gKHRoaXMuaW1wbGljaXQgfHwgW10pLmNvbmNhdChpbXBsaWNpdCk7CiAgcmVzdWx0LmV4cGxpY2l0ID0gKHRoaXMuZXhwbGljaXQgfHwgW10pLmNvbmNhdChleHBsaWNpdCk7CiAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsICJpbXBsaWNpdCIpOwogIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCAiZXhwbGljaXQiKTsKICByZXN1bHQuY29tcGlsZWRUeXBlTWFwID0gY29tcGlsZU1hcChyZXN1bHQuY29tcGlsZWRJbXBsaWNpdCwgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQpOwogIHJldHVybiByZXN1bHQ7Cn07CnZhciBzY2hlbWEgPSBTY2hlbWEkMTsKdmFyIHN0ciA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLCB7CiAga2luZDogInNjYWxhciIsCiAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAiIjsKICB9Cn0pOwp2YXIgc2VxID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107CiAgfQp9KTsKdmFyIG1hcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLCB7CiAga2luZDogIm1hcHBpbmciLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDoge307CiAgfQp9KTsKdmFyIGZhaWxzYWZlID0gbmV3IHNjaGVtYSh7CiAgZXhwbGljaXQ6IFsKICAgIHN0ciwKICAgIHNlcSwKICAgIG1hcAogIF0KfSk7CmZ1bmN0aW9uIHJlc29sdmVZYW1sTnVsbChkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlOwogIHZhciBtYXggPSBkYXRhLmxlbmd0aDsKICByZXR1cm4gbWF4ID09PSAxICYmIGRhdGEgPT09ICJ+IiB8fCBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJudWxsIiB8fCBkYXRhID09PSAiTnVsbCIgfHwgZGF0YSA9PT0gIk5VTEwiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBpc051bGwob2JqZWN0KSB7CiAgcmV0dXJuIG9iamVjdCA9PT0gbnVsbDsKfQp2YXIgX251bGwgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE51bGwsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCwKICBwcmVkaWNhdGU6IGlzTnVsbCwKICByZXByZXNlbnQ6IHsKICAgIGNhbm9uaWNhbDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAifiI7CiAgICB9LAogICAgbG93ZXJjYXNlOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICJudWxsIjsKICAgIH0sCiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIk5VTEwiOwogICAgfSwKICAgIGNhbWVsY2FzZTogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAiTnVsbCI7CiAgICB9LAogICAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4oZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoOwogIHJldHVybiBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiKSB8fCBtYXggPT09IDUgJiYgKGRhdGEgPT09ICJmYWxzZSIgfHwgZGF0YSA9PT0gIkZhbHNlIiB8fCBkYXRhID09PSAiRkFMU0UiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7CiAgcmV0dXJuIGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiOwp9CmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICJbb2JqZWN0IEJvb2xlYW5dIjsKfQp2YXIgYm9vbCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQm9vbGVhbiwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLAogIHByZWRpY2F0ZTogaXNCb29sZWFuLAogIHJlcHJlc2VudDogewogICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJ0cnVlIiA6ICJmYWxzZSI7CiAgICB9LAogICAgdXBwZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUUlVFIiA6ICJGQUxTRSI7CiAgICB9LAogICAgY2FtZWxjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUcnVlIiA6ICJGYWxzZSI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiBpc0hleENvZGUoYykgewogIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTcgfHwgNjUgPD0gYyAmJiBjIDw9IDcwIHx8IDk3IDw9IGMgJiYgYyA8PSAxMDI7Cn0KZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHsKICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU1Owp9CmZ1bmN0aW9uIGlzRGVjQ29kZShjKSB7CiAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1NzsKfQpmdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDsKICBpZiAoIW1heCkgcmV0dXJuIGZhbHNlOwogIGNoID0gZGF0YVtpbmRleF07CiAgaWYgKGNoID09PSAiLSIgfHwgY2ggPT09ICIrIikgewogICAgY2ggPSBkYXRhWysraW5kZXhdOwogIH0KICBpZiAoY2ggPT09ICIwIikgewogICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSByZXR1cm4gdHJ1ZTsKICAgIGNoID0gZGF0YVsrK2luZGV4XTsKICAgIGlmIChjaCA9PT0gImIiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmIChjaCAhPT0gIjAiICYmIGNoICE9PSAiMSIpIHJldHVybiBmYWxzZTsKICAgICAgICBoYXNEaWdpdHMgPSB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICJfIjsKICAgIH0KICAgIGlmIChjaCA9PT0gIngiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmICghaXNIZXhDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAiXyI7CiAgICB9CiAgICBpZiAoY2ggPT09ICJvIikgewogICAgICBpbmRleCsrOwogICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHsKICAgICAgICBjaCA9IGRhdGFbaW5kZXhdOwogICAgICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gIl8iOwogICAgfQogIH0KICBpZiAoY2ggPT09ICJfIikgcmV0dXJuIGZhbHNlOwogIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgY2ggPSBkYXRhW2luZGV4XTsKICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgIGlmICghaXNEZWNDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgfQogIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSAiXyIpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7CiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoOwogIGlmICh2YWx1ZS5pbmRleE9mKCJfIikgIT09IC0xKSB7CiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgIiIpOwogIH0KICBjaCA9IHZhbHVlWzBdOwogIGlmIChjaCA9PT0gIi0iIHx8IGNoID09PSAiKyIpIHsKICAgIGlmIChjaCA9PT0gIi0iKSBzaWduID0gLTE7CiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpOwogICAgY2ggPSB2YWx1ZVswXTsKICB9CiAgaWYgKHZhbHVlID09PSAiMCIpIHJldHVybiAwOwogIGlmIChjaCA9PT0gIjAiKSB7CiAgICBpZiAodmFsdWVbMV0gPT09ICJiIikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7CiAgICBpZiAodmFsdWVbMV0gPT09ICJ4IikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpOwogICAgaWYgKHZhbHVlWzFdID09PSAibyIpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpOwogIH0KICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7Cn0KZnVuY3Rpb24gaXNJbnRlZ2VyKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTsKfQp2YXIgaW50ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOmludCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sSW50ZWdlciwKICBwcmVkaWNhdGU6IGlzSW50ZWdlciwKICByZXByZXNlbnQ6IHsKICAgIGJpbmFyeTogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwYiIgKyBvYmoudG9TdHJpbmcoMikgOiAiLTBiIiArIG9iai50b1N0cmluZygyKS5zbGljZSgxKTsKICAgIH0sCiAgICBvY3RhbDogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwbyIgKyBvYmoudG9TdHJpbmcoOCkgOiAiLTBvIiArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTsKICAgIH0sCiAgICBkZWNpbWFsOiBmdW5jdGlvbihvYmopIHsKICAgICAgcmV0dXJuIG9iai50b1N0cmluZygxMCk7CiAgICB9LAogICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqLwogICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uKG9iaikgewogICAgICByZXR1cm4gb2JqID49IDAgPyAiMHgiICsgb2JqLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpIDogIi0weCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJkZWNpbWFsIiwKICBzdHlsZUFsaWFzZXM6IHsKICAgIGJpbmFyeTogWzIsICJiaW4iXSwKICAgIG9jdGFsOiBbOCwgIm9jdCJdLAogICAgZGVjaW1hbDogWzEwLCAiZGVjIl0sCiAgICBoZXhhZGVjaW1hbDogWzE2LCAiaGV4Il0KICB9Cn0pOwp2YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cCgKICAvLyAyLjVlNCwgMi41IGFuZCBpbnRlZ2VycwogICJeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopKD86XFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/fFstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLig/Om5hbnxOYU58TkFOKSkkIgopOwpmdW5jdGlvbiByZXNvbHZlWWFtbEZsb2F0KGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gCiAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZAogIGRhdGFbZGF0YS5sZW5ndGggLSAxXSA9PT0gIl8iKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7CiAgdmFyIHZhbHVlLCBzaWduOwogIHZhbHVlID0gZGF0YS5yZXBsYWNlKC9fL2csICIiKS50b0xvd2VyQ2FzZSgpOwogIHNpZ24gPSB2YWx1ZVswXSA9PT0gIi0iID8gLTEgOiAxOwogIGlmICgiKy0iLmluZGV4T2YodmFsdWVbMF0pID49IDApIHsKICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7CiAgfQogIGlmICh2YWx1ZSA9PT0gIi5pbmYiKSB7CiAgICByZXR1cm4gc2lnbiA9PT0gMSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKICB9IGVsc2UgaWYgKHZhbHVlID09PSAiLm5hbiIpIHsKICAgIHJldHVybiBOYU47CiAgfQogIHJldHVybiBzaWduICogcGFyc2VGbG9hdCh2YWx1ZSwgMTApOwp9CnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvOwpmdW5jdGlvbiByZXByZXNlbnRZYW1sRmxvYXQob2JqZWN0LCBzdHlsZSkgewogIHZhciByZXM7CiAgaWYgKGlzTmFOKG9iamVjdCkpIHsKICAgIHN3aXRjaCAoc3R5bGUpIHsKICAgICAgY2FzZSAibG93ZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5uYW4iOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLk5BTiI7CiAgICAgIGNhc2UgImNhbWVsY2FzZSI6CiAgICAgICAgcmV0dXJuICIuTmFOIjsKICAgIH0KICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7CiAgICBzd2l0Y2ggKHN0eWxlKSB7CiAgICAgIGNhc2UgImxvd2VyY2FzZSI6CiAgICAgICAgcmV0dXJuICIuaW5mIjsKICAgICAgY2FzZSAidXBwZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLkluZiI7CiAgICB9CiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkgewogICAgc3dpdGNoIChzdHlsZSkgewogICAgICBjYXNlICJsb3dlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5pbmYiOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLS5JbmYiOwogICAgfQogIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHsKICAgIHJldHVybiAiLTAuMCI7CiAgfQogIHJlcyA9IG9iamVjdC50b1N0cmluZygxMCk7CiAgcmV0dXJuIFNDSUVOVElGSUNfV0lUSE9VVF9ET1QudGVzdChyZXMpID8gcmVzLnJlcGxhY2UoImUiLCAiLmUiKSA6IHJlczsKfQpmdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpOwp9CnZhciBmbG9hdCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEZsb2F0LAogIHByZWRpY2F0ZTogaXNGbG9hdCwKICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwp2YXIganNvbiA9IGZhaWxzYWZlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIF9udWxsLAogICAgYm9vbCwKICAgIGludCwKICAgIGZsb2F0CiAgXQp9KTsKdmFyIGNvcmUgPSBqc29uOwp2YXIgWUFNTF9EQVRFX1JFR0VYUCA9IG5ldyBSZWdFeHAoCiAgIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIgopOwp2YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cCgKICAiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiCik7CmZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlOwogIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkgewogIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCwgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7CiAgbWF0Y2ggPSBZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSk7CiAgaWYgKG1hdGNoID09PSBudWxsKSBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpOwogIGlmIChtYXRjaCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTsKICB5ZWFyID0gK21hdGNoWzFdOwogIG1vbnRoID0gK21hdGNoWzJdIC0gMTsKICBkYXkgPSArbWF0Y2hbM107CiAgaWYgKCFtYXRjaFs0XSkgewogICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTsKICB9CiAgaG91ciA9ICttYXRjaFs0XTsKICBtaW51dGUgPSArbWF0Y2hbNV07CiAgc2Vjb25kID0gK21hdGNoWzZdOwogIGlmIChtYXRjaFs3XSkgewogICAgZnJhY3Rpb24gPSBtYXRjaFs3XS5zbGljZSgwLCAzKTsKICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7CiAgICAgIGZyYWN0aW9uICs9ICIwIjsKICAgIH0KICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uOwogIH0KICBpZiAobWF0Y2hbOV0pIHsKICAgIHR6X2hvdXIgPSArbWF0Y2hbMTBdOwogICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7CiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNmU0OwogICAgaWYgKG1hdGNoWzldID09PSAiLSIpIGRlbHRhID0gLWRlbHRhOwogIH0KICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7CiAgaWYgKGRlbHRhKSBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7CiAgcmV0dXJuIGRhdGU7Cn0KZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QpIHsKICByZXR1cm4gb2JqZWN0LnRvSVNPU3RyaW5nKCk7Cn0KdmFyIHRpbWVzdGFtcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLCB7CiAga2luZDogInNjYWxhciIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLAogIGluc3RhbmNlT2Y6IERhdGUsCiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHsKICByZXR1cm4gZGF0YSA9PT0gIjw8IiB8fCBkYXRhID09PSBudWxsOwp9CnZhciBtZXJnZSA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlCn0pOwp2YXIgQkFTRTY0X01BUCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxuXHIiOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTsKICB2YXIgY29kZSwgaWR4LCBiaXRsZW4gPSAwLCBtYXggPSBkYXRhLmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBjb2RlID0gbWFwMi5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpOwogICAgaWYgKGNvZGUgPiA2NCkgY29udGludWU7CiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTsKICAgIGJpdGxlbiArPSA2OwogIH0KICByZXR1cm4gYml0bGVuICUgOCA9PT0gMDsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHsKICB2YXIgaWR4LCB0YWlsYml0cywgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcclxuPV0vZywgIiIpLCBtYXggPSBpbnB1dC5sZW5ndGgsIG1hcDIgPSBCQVNFNjRfTUFQLCBiaXRzID0gMCwgcmVzdWx0ID0gW107CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgNCA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0LnB1c2goYml0cyA+PiAxNiAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAyNTUpOwogICAgfQogICAgYml0cyA9IGJpdHMgPDwgNiB8IG1hcDIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7CiAgfQogIHRhaWxiaXRzID0gbWF4ICUgNCAqIDY7CiAgaWYgKHRhaWxiaXRzID09PSAwKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTsKICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTsKICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxOCkgewogICAgcmVzdWx0LnB1c2goYml0cyA+PiAxMCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpOwogIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDEyKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDQgJiAyNTUpOwogIH0KICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzdWx0KTsKfQpmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkgewogIHZhciByZXN1bHQgPSAiIiwgYml0cyA9IDAsIGlkeCwgdGFpbCwgbWF4ID0gb2JqZWN0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgMyA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxOCAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA2ICYgNjNdOwogICAgICByZXN1bHQgKz0gbWFwMltiaXRzICYgNjNdOwogICAgfQogICAgYml0cyA9IChiaXRzIDw8IDgpICsgb2JqZWN0W2lkeF07CiAgfQogIHRhaWwgPSBtYXggJSAzOwogIGlmICh0YWlsID09PSAwKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDE4ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gNiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgJiA2M107CiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDEwICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkgewogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0KICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIGlzQmluYXJ5KG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gIltvYmplY3QgVWludDhBcnJheV0iOwp9CnZhciBiaW5hcnkgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQmluYXJ5LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSwKICBwcmVkaWNhdGU6IGlzQmluYXJ5LAogIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEJpbmFyeQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIF90b1N0cmluZyQyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSwgb2JqZWN0ID0gZGF0YTsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdOwogICAgcGFpckhhc0tleSA9IGZhbHNlOwogICAgaWYgKF90b1N0cmluZyQyLmNhbGwocGFpcikgIT09ICJbb2JqZWN0IE9iamVjdF0iKSByZXR1cm4gZmFsc2U7CiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikgewogICAgICBpZiAoX2hhc093blByb3BlcnR5JDMuY2FsbChwYWlyLCBwYWlyS2V5KSkgewogICAgICAgIGlmICghcGFpckhhc0tleSkgcGFpckhhc0tleSA9IHRydWU7CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghcGFpckhhc0tleSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKG9iamVjdEtleXMuaW5kZXhPZihwYWlyS2V5KSA9PT0gLTEpIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTsKICAgIGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7CiAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107Cn0KdmFyIG9tYXAgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwCn0pOwp2YXIgX3RvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpmdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGlmIChfdG9TdHJpbmckMS5jYWxsKHBhaXIpICE9PSAiW29iamVjdCBPYmplY3RdIikgcmV0dXJuIGZhbHNlOwogICAga2V5cyA9IE9iamVjdC5rZXlzKHBhaXIpOwogICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSByZXR1cm4gZmFsc2U7CiAgICByZXN1bHRbaW5kZXhdID0gW2tleXNbMF0sIHBhaXJba2V5c1swXV1dOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gW107CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTsKICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KdmFyIHBhaXJzID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIiwgewogIGtpbmQ6ICJzZXF1ZW5jZSIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycywKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlycwp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTsKICB2YXIga2V5LCBvYmplY3QgPSBkYXRhOwogIGZvciAoa2V5IGluIG9iamVjdCkgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQyLmNhbGwob2JqZWN0LCBrZXkpKSB7CiAgICAgIGlmIChvYmplY3Rba2V5XSAhPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sU2V0KGRhdGEpIHsKICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsKfQp2YXIgc2V0ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNldCIsIHsKICBraW5kOiAibWFwcGluZyIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sU2V0Cn0pOwp2YXIgX2RlZmF1bHQgPSBjb3JlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIHRpbWVzdGFtcCwKICAgIG1lcmdlCiAgXSwKICBleHBsaWNpdDogWwogICAgYmluYXJ5LAogICAgb21hcCwKICAgIHBhaXJzLAogICAgc2V0CiAgXQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQxID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENPTlRFWFRfRkxPV19JTiA9IDE7CnZhciBDT05URVhUX0ZMT1dfT1VUID0gMjsKdmFyIENPTlRFWFRfQkxPQ0tfSU4gPSAzOwp2YXIgQ09OVEVYVF9CTE9DS19PVVQgPSA0Owp2YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7CnZhciBDSE9NUElOR19TVFJJUCA9IDI7CnZhciBDSE9NUElOR19LRUVQID0gMzsKdmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS87CnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXHg4NVx1MjAyOFx1MjAyOV0vOwp2YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgPSAvWyxcW1xdXHtcfV0vOwp2YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XC1dKyEpJC9pOwp2YXIgUEFUVEVSTl9UQUdfVVJJID0gL14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTsKZnVuY3Rpb24gX2NsYXNzKG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKTsKfQpmdW5jdGlvbiBpc19FT0woYykgewogIHJldHVybiBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19XSElURV9TUEFDRShjKSB7CiAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzI7Cn0KZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHsKICByZXR1cm4gYyA9PT0gOSB8fCBjID09PSAzMiB8fCBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7CiAgcmV0dXJuIGMgPT09IDQ0IHx8IGMgPT09IDkxIHx8IGMgPT09IDkzIHx8IGMgPT09IDEyMyB8fCBjID09PSAxMjU7Cn0KZnVuY3Rpb24gZnJvbUhleENvZGUoYykgewogIHZhciBsYzsKICBpZiAoNDggPD0gYyAmJiBjIDw9IDU3KSB7CiAgICByZXR1cm4gYyAtIDQ4OwogIH0KICBsYyA9IGMgfCAzMjsKICBpZiAoOTcgPD0gbGMgJiYgbGMgPD0gMTAyKSB7CiAgICByZXR1cm4gbGMgLSA5NyArIDEwOwogIH0KICByZXR1cm4gLTE7Cn0KZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7CiAgaWYgKGMgPT09IDEyMCkgewogICAgcmV0dXJuIDI7CiAgfQogIGlmIChjID09PSAxMTcpIHsKICAgIHJldHVybiA0OwogIH0KICBpZiAoYyA9PT0gODUpIHsKICAgIHJldHVybiA4OwogIH0KICByZXR1cm4gMDsKfQpmdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykgewogIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHsKICAgIHJldHVybiBjIC0gNDg7CiAgfQogIHJldHVybiAtMTsKfQpmdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7CiAgcmV0dXJuIGMgPT09IDQ4ID8gIlwwIiA6IGMgPT09IDk3ID8gIlx4MDciIDogYyA9PT0gOTggPyAiXGIiIDogYyA9PT0gMTE2ID8gIgkiIDogYyA9PT0gOSA/ICIJIiA6IGMgPT09IDExMCA/ICJcbiIgOiBjID09PSAxMTggPyAiXHYiIDogYyA9PT0gMTAyID8gIlxmIiA6IGMgPT09IDExNCA/ICJcciIgOiBjID09PSAxMDEgPyAiXHgxQiIgOiBjID09PSAzMiA/ICIgIiA6IGMgPT09IDM0ID8gJyInIDogYyA9PT0gNDcgPyAiLyIgOiBjID09PSA5MiA/ICJcXCIgOiBjID09PSA3OCA/ICJceDg1IiA6IGMgPT09IDk1ID8gIlx4QTAiIDogYyA9PT0gNzYgPyAiXHUyMDI4IiA6IGMgPT09IDgwID8gIlx1MjAyOSIgOiAiIjsKfQpmdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7CiAgaWYgKGMgPD0gNjU1MzUpIHsKICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOwogIH0KICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgKICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsCiAgICAoYyAtIDY1NTM2ICYgMTAyMykgKyA1NjMyMAogICk7Cn0KdmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7CnZhciBzaW1wbGVFc2NhcGVNYXAgPSBuZXcgQXJyYXkoMjU2KTsKZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgc2ltcGxlRXNjYXBlQ2hlY2tbaV0gPSBzaW1wbGVFc2NhcGVTZXF1ZW5jZShpKSA/IDEgOiAwOwogIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpOwp9CnZhciBpOwpmdW5jdGlvbiBTdGF0ZSQxKGlucHV0LCBvcHRpb25zKSB7CiAgdGhpcy5pbnB1dCA9IGlucHV0OwogIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zWyJmaWxlbmFtZSJdIHx8IG51bGw7CiAgdGhpcy5zY2hlbWEgPSBvcHRpb25zWyJzY2hlbWEiXSB8fCBfZGVmYXVsdDsKICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbIm9uV2FybmluZyJdIHx8IG51bGw7CiAgdGhpcy5sZWdhY3kgPSBvcHRpb25zWyJsZWdhY3kiXSB8fCBmYWxzZTsKICB0aGlzLmpzb24gPSBvcHRpb25zWyJqc29uIl0gfHwgZmFsc2U7CiAgdGhpcy5saXN0ZW5lciA9IG9wdGlvbnNbImxpc3RlbmVyIl0gfHwgbnVsbDsKICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0OwogIHRoaXMudHlwZU1hcCA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDsKICB0aGlzLmxlbmd0aCA9IGlucHV0Lmxlbmd0aDsKICB0aGlzLnBvc2l0aW9uID0gMDsKICB0aGlzLmxpbmUgPSAwOwogIHRoaXMubGluZVN0YXJ0ID0gMDsKICB0aGlzLmxpbmVJbmRlbnQgPSAwOwogIHRoaXMuZmlyc3RUYWJJbkxpbmUgPSAtMTsKICB0aGlzLmRvY3VtZW50cyA9IFtdOwp9CmZ1bmN0aW9uIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHsKICB2YXIgbWFyayA9IHsKICAgIG5hbWU6IHN0YXRlLmZpbGVuYW1lLAogICAgYnVmZmVyOiBzdGF0ZS5pbnB1dC5zbGljZSgwLCAtMSksCiAgICAvLyBvbWl0IHRyYWlsaW5nIFwwCiAgICBwb3NpdGlvbjogc3RhdGUucG9zaXRpb24sCiAgICBsaW5lOiBzdGF0ZS5saW5lLAogICAgY29sdW1uOiBzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydAogIH07CiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTsKICByZXR1cm4gbmV3IGV4Y2VwdGlvbihtZXNzYWdlLCBtYXJrKTsKfQpmdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlLCBtZXNzYWdlKSB7CiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7Cn0KZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7CiAgaWYgKHN0YXRlLm9uV2FybmluZykgewogICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkpOwogIH0KfQp2YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7CiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykgewogICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7CiAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKTsKICAgIH0KICAgIG1hdGNoID0gL14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFyZ3NbMF0pOwogICAgaWYgKG1hdGNoID09PSBudWxsKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpOwogICAgfQogICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApOwogICAgbWlub3IgPSBwYXJzZUludChtYXRjaFsyXSwgMTApOwogICAgaWYgKG1ham9yICE9PSAxKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07CiAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBtaW5vciA8IDI7CiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogIH0sCiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHsKICAgIHZhciBoYW5kbGUsIHByZWZpeDsKICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpOwogICAgfQogICAgaGFuZGxlID0gYXJnc1swXTsKICAgIHByZWZpeCA9IGFyZ3NbMV07CiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInICsgaGFuZGxlICsgJyIgdGFnIGhhbmRsZScpOwogICAgfQogICAgaWYgKCFQQVRURVJOX1RBR19VUkkudGVzdChwcmVmaXgpKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKTsKICAgIH0KICAgIHRyeSB7CiAgICAgIHByZWZpeCA9IGRlY29kZVVSSUNvbXBvbmVudChwcmVmaXgpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogIiArIHByZWZpeCk7CiAgICB9CiAgICBzdGF0ZS50YWdNYXBbaGFuZGxlXSA9IHByZWZpeDsKICB9Cn07CmZ1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBzdGFydCwgZW5kLCBjaGVja0pzb24pIHsKICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0OwogIGlmIChzdGFydCA8IGVuZCkgewogICAgX3Jlc3VsdCA9IHN0YXRlLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgaWYgKGNoZWNrSnNvbikgewogICAgICBmb3IgKF9wb3NpdGlvbiA9IDAsIF9sZW5ndGggPSBfcmVzdWx0Lmxlbmd0aDsgX3Bvc2l0aW9uIDwgX2xlbmd0aDsgX3Bvc2l0aW9uICs9IDEpIHsKICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICAgICAgaWYgKCEoX2NoYXJhY3RlciA9PT0gOSB8fCAzMiA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMTExNDExMSkpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIGlmIChQQVRURVJOX05PTl9QUklOVEFCTEUudGVzdChfcmVzdWx0KSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTsKICAgIH0KICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0OwogIH0KfQpmdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHsKICB2YXIgc291cmNlS2V5cywga2V5LCBpbmRleCwgcXVhbnRpdHk7CiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIik7CiAgfQogIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7CiAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkgewogICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07CiAgICAgIG92ZXJyaWRhYmxlS2V5c1trZXldID0gdHJ1ZTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgc3RhcnRMaW5lLCBzdGFydExpbmVTdGFydCwgc3RhcnRQb3MpIHsKICB2YXIgaW5kZXgsIHF1YW50aXR5OwogIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7CiAgICBrZXlOb2RlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoa2V5Tm9kZSk7CiAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBrZXlOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHsKICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGVbaW5kZXhdKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgICBrZXlOb2RlW2luZGV4XSA9ICJbb2JqZWN0IE9iamVjdF0iOwogICAgICB9CiAgICB9CiAgfQogIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGUpID09PSAiW29iamVjdCBPYmplY3RdIikgewogICAga2V5Tm9kZSA9ICJbb2JqZWN0IE9iamVjdF0iOwogIH0KICBrZXlOb2RlID0gU3RyaW5nKGtleU5vZGUpOwogIGlmIChfcmVzdWx0ID09PSBudWxsKSB7CiAgICBfcmVzdWx0ID0ge307CiAgfQogIGlmIChrZXlUYWcgPT09ICJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHsKICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKCFzdGF0ZS5qc29uICYmICFfaGFzT3duUHJvcGVydHkkMS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiYgX2hhc093blByb3BlcnR5JDEuY2FsbChfcmVzdWx0LCBrZXlOb2RlKSkgewogICAgICBzdGF0ZS5saW5lID0gc3RhcnRMaW5lIHx8IHN0YXRlLmxpbmU7CiAgICAgIHN0YXRlLmxpbmVTdGFydCA9IHN0YXJ0TGluZVN0YXJ0IHx8IHN0YXRlLmxpbmVTdGFydDsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGFydFBvcyB8fCBzdGF0ZS5wb3NpdGlvbjsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKTsKICAgIH0KICAgIGlmIChrZXlOb2RlID09PSAiX19wcm90b19fIikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3Jlc3VsdCwga2V5Tm9kZSwgewogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLAogICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIHZhbHVlOiB2YWx1ZU5vZGUKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlOwogICAgfQogICAgZGVsZXRlIG92ZXJyaWRhYmxlS2V5c1trZXlOb2RlXTsKICB9CiAgcmV0dXJuIF9yZXN1bHQ7Cn0KZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZSkgewogIHZhciBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTApIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgfSBlbHNlIGlmIChjaCA9PT0gMTMpIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDEwKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICB9CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKTsKICB9CiAgc3RhdGUubGluZSArPSAxOwogIHN0YXRlLmxpbmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gLTE7Cn0KZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHsKICB2YXIgbGluZUJyZWFrcyA9IDAsIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZS5maXJzdFRhYkluTGluZSA9PT0gLTEpIHsKICAgICAgICBzdGF0ZS5maXJzdFRhYkluTGluZSA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB9CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmIChhbGxvd0NvbW1lbnRzICYmIGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlIChjaCAhPT0gMTAgJiYgY2ggIT09IDEzICYmIGNoICE9PSAwKTsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICBsaW5lQnJlYWtzKys7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwOwogICAgICB3aGlsZSAoY2ggPT09IDMyKSB7CiAgICAgICAgc3RhdGUubGluZUluZGVudCsrOwogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGlmIChjaGVja0luZGVudCAhPT0gLTEgJiYgbGluZUJyZWFrcyAhPT0gMCAmJiBzdGF0ZS5saW5lSW5kZW50IDwgY2hlY2tJbmRlbnQpIHsKICAgIHRocm93V2FybmluZyhzdGF0ZSwgImRlZmljaWVudCBpbmRlbnRhdGlvbiIpOwogIH0KICByZXR1cm4gbGluZUJyZWFrczsKfQpmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pOwogIGlmICgoY2ggPT09IDQ1IHx8IGNoID09PSA0NikgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHsKICAgIF9wb3NpdGlvbiArPSAzOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIGNvdW50KSB7CiAgaWYgKGNvdW50ID09PSAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gIiAiOwogIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBjb3VudCAtIDEpOwogIH0KfQpmdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQsIHdpdGhpbkZsb3dDb2xsZWN0aW9uKSB7CiAgdmFyIHByZWNlZGluZywgZm9sbG93aW5nLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhhc1BlbmRpbmdDb250ZW50LCBfbGluZSwgX2xpbmVTdGFydCwgX2xpbmVJbmRlbnQsIF9raW5kID0gc3RhdGUua2luZCwgX3Jlc3VsdCA9IHN0YXRlLnJlc3VsdCwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoaXNfV1NfT1JfRU9MKGNoKSB8fCBpc19GTE9XX0lORElDQVRPUihjaCkgfHwgY2ggPT09IDM1IHx8IGNoID09PSAzOCB8fCBjaCA9PT0gNDIgfHwgY2ggPT09IDMzIHx8IGNoID09PSAxMjQgfHwgY2ggPT09IDYyIHx8IGNoID09PSAzOSB8fCBjaCA9PT0gMzQgfHwgY2ggPT09IDM3IHx8IGNoID09PSA2NCB8fCBjaCA9PT0gOTYpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgaWYgKGNoID09PSA2MyB8fCBjaCA9PT0gNDUpIHsKICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlOwogIHdoaWxlIChjaCAhPT0gMCkgewogICAgaWYgKGNoID09PSA1OCkgewogICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoY2ggPT09IDM1KSB7CiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgICBicmVhazsKICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkgewogICAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIC0xKTsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPj0gbm9kZUluZGVudCkgewogICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDsKICAgICAgICBzdGF0ZS5saW5lID0gX2xpbmU7CiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDsKICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBmYWxzZSk7CiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7CiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSBmYWxzZTsKICAgIH0KICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7CiAgICB9CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgfQogIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTsKICBpZiAoc3RhdGUucmVzdWx0KSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgc3RhdGUua2luZCA9IF9raW5kOwogIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzkpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIHN0YXRlLnBvc2l0aW9uKys7CiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogIHdoaWxlICgoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkgIT09IDApIHsKICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkgewogIHZhciBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhleExlbmd0aCwgaGV4UmVzdWx0LCB0bXAsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSAzNCkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBzdGF0ZS5raW5kID0gInNjYWxhciI7CiAgc3RhdGUucmVzdWx0ID0gIiI7CiAgc3RhdGUucG9zaXRpb24rKzsKICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkgewogICAgaWYgKGNoID09PSAzNCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIGlmIChjaCA9PT0gOTIpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpOwogICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHsKICAgICAgICBoZXhMZW5ndGggPSB0bXA7CiAgICAgICAgaGV4UmVzdWx0ID0gMDsKICAgICAgICBmb3IgKDsgaGV4TGVuZ3RoID4gMDsgaGV4TGVuZ3RoLS0pIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7CiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7CiAgICAgIH0KICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9yZXN1bHQsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIGZvbGxvd2luZywgdGVybWluYXRvciwgaXNQYWlyLCBpc0V4cGxpY2l0UGFpciwgaXNNYXBwaW5nLCBvdmVycmlkYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKSwga2V5Tm9kZSwga2V5VGFnLCB2YWx1ZU5vZGUsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoID09PSA5MSkgewogICAgdGVybWluYXRvciA9IDkzOwogICAgaXNNYXBwaW5nID0gZmFsc2U7CiAgICBfcmVzdWx0ID0gW107CiAgfSBlbHNlIGlmIChjaCA9PT0gMTIzKSB7CiAgICB0ZXJtaW5hdG9yID0gMTI1OwogICAgaXNNYXBwaW5nID0gdHJ1ZTsKICAgIF9yZXN1bHQgPSB7fTsKICB9IGVsc2UgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gIm1hcHBpbmciIDogInNlcXVlbmNlIjsKICAgICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKTsKICAgIH0gZWxzZSBpZiAoY2ggPT09IDQ0KSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnIik7CiAgICB9CiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDsKICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7CiAgICBpZiAoY2ggPT09IDYzKSB7CiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIH0KICAgIH0KICAgIF9saW5lID0gc3RhdGUubGluZTsKICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICBfcG9zID0gc3RhdGUucG9zaXRpb247CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7CiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDU4KSB7CiAgICAgIGlzUGFpciA9IHRydWU7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTsKICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0OwogICAgfQogICAgaWYgKGlzTWFwcGluZykgewogICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7CiAgICB9IGVsc2UgaWYgKGlzUGFpcikgewogICAgICBfcmVzdWx0LnB1c2goc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTsKICAgIH0gZWxzZSB7CiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTsKICAgIH0KICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDQpIHsKICAgICAgcmVhZE5leHQgPSB0cnVlOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICByZWFkTmV4dCA9IGZhbHNlOwogICAgfQogIH0KICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKTsKfQpmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2FwdHVyZVN0YXJ0LCBmb2xkaW5nLCBjaG9tcGluZyA9IENIT01QSU5HX0NMSVAsIGRpZFJlYWRDb250ZW50ID0gZmFsc2UsIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsIHRleHRJbmRlbnQgPSBub2RlSW5kZW50LCBlbXB0eUxpbmVzID0gMCwgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSwgdG1wLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTI0KSB7CiAgICBmb2xkaW5nID0gZmFsc2U7CiAgfSBlbHNlIGlmIChjaCA9PT0gNjIpIHsKICAgIGZvbGRpbmcgPSB0cnVlOwogIH0gZWxzZSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHN0YXRlLmtpbmQgPSAic2NhbGFyIjsKICBzdGF0ZS5yZXN1bHQgPSAiIjsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDMgfHwgY2ggPT09IDQ1KSB7CiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykgewogICAgICAgIGNob21waW5nID0gY2ggPT09IDQzID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTsKICAgICAgfQogICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkgewogICAgICBpZiAodG1wID09PSAwKSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTsKICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHsKICAgICAgICB0ZXh0SW5kZW50ID0gbm9kZUluZGVudCArIHRtcCAtIDE7CiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBicmVhazsKICAgIH0KICB9CiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgZG8gewogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpOwogICAgaWYgKGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7CiAgICB9CiAgfQogIHdoaWxlIChjaCAhPT0gMCkgewogICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgICB3aGlsZSAoKCFkZXRlY3RlZEluZGVudCB8fCBzdGF0ZS5saW5lSW5kZW50IDwgdGV4dEluZGVudCkgJiYgY2ggPT09IDMyKSB7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKzsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgaWYgKCFkZXRlY3RlZEluZGVudCAmJiBzdGF0ZS5saW5lSW5kZW50ID4gdGV4dEluZGVudCkgewogICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGVtcHR5TGluZXMrKzsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHsKICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpOwogICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7CiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7CiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gIlxuIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoZm9sZGluZykgewogICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlOwogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTsKICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkgewogICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZW1wdHlMaW5lcyArIDEpOwogICAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXMgPT09IDApIHsKICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHsKICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAiICI7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGVtcHR5TGluZXMpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7CiAgICB9CiAgICBkaWRSZWFkQ29udGVudCA9IHRydWU7CiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7CiAgICBlbXB0eUxpbmVzID0gMDsKICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogICAgd2hpbGUgKCFpc19FT0woY2gpICYmIGNoICE9PSAwKSB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCBmYWxzZSk7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIF9saW5lLCBfdGFnID0gc3RhdGUudGFnLCBfYW5jaG9yID0gc3RhdGUuYW5jaG9yLCBfcmVzdWx0ID0gW10sIGZvbGxvd2luZywgZGV0ZWN0ZWQgPSBmYWxzZSwgY2g7CiAgaWYgKHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDsKICB9CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24iKTsKICAgIH0KICAgIGlmIChjaCAhPT0gNDUpIHsKICAgICAgYnJlYWs7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGJyZWFrOwogICAgfQogICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgc3RhdGUucG9zaXRpb24rKzsKICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkgewogICAgICAgIF9yZXN1bHQucHVzaChudWxsKTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICB9CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpOwogICAgX3Jlc3VsdC5wdXNoKHN0YXRlLnJlc3VsdCk7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoZGV0ZWN0ZWQpIHsKICAgIHN0YXRlLnRhZyA9IF90YWc7CiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgc3RhdGUua2luZCA9ICJzZXF1ZW5jZSI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogICAgcmV0dXJuIHRydWU7CiAgfQogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7CiAgdmFyIGZvbGxvd2luZywgYWxsb3dDb21wYWN0LCBfbGluZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIF9yZXN1bHQgPSB7fSwgb3ZlcnJpZGFibGVLZXlzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCksIGtleVRhZyA9IG51bGwsIGtleU5vZGUgPSBudWxsLCB2YWx1ZU5vZGUgPSBudWxsLCBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsIGRldGVjdGVkID0gZmFsc2UsIGNoOwogIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICBpZiAoIWF0RXhwbGljaXRLZXkgJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhdGUuZmlyc3RUYWJJbkxpbmU7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIik7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBpZiAoKGNoID09PSA2MyB8fCBjaCA9PT0gNTgpICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGlmIChjaCA9PT0gNjMpIHsKICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgIH0KICAgICAgICBkZXRlY3RlZCA9IHRydWU7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7CiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTsKICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKTsKICAgICAgfQogICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxOwogICAgICBjaCA9IGZvbGxvd2luZzsKICAgIH0gZWxzZSB7CiAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDsKICAgICAgX2tleVBvcyA9IHN0YXRlLnBvc2l0aW9uOwogICAgICBpZiAoIWNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNoID09PSA1OCkgewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCBudWxsLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7CiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7CiAgICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgewogICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0OwogICAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfQogICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfT1VULCB0cnVlLCBhbGxvd0NvbXBhY3QpKSB7CiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHsKICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpOwogICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICB9CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmICgoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpICYmIGNoICE9PSAwKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICB9CiAgaWYgKGRldGVjdGVkKSB7CiAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgIHN0YXRlLmtpbmQgPSAibWFwcGluZyI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogIH0KICByZXR1cm4gZGV0ZWN0ZWQ7Cn0KZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgaXNWZXJiYXRpbSA9IGZhbHNlLCBpc05hbWVkID0gZmFsc2UsIHRhZ0hhbmRsZSwgdGFnTmFtZSwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggIT09IDMzKSByZXR1cm4gZmFsc2U7CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggPT09IDYwKSB7CiAgICBpc1ZlcmJhdGltID0gdHJ1ZTsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB9IGVsc2UgaWYgKGNoID09PSAzMykgewogICAgaXNOYW1lZCA9IHRydWU7CiAgICB0YWdIYW5kbGUgPSAiISEiOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0gZWxzZSB7CiAgICB0YWdIYW5kbGUgPSAiISI7CiAgfQogIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBkbyB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0gd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSA2Mik7CiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHsKICAgICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKTsKICAgIH0KICB9IGVsc2UgewogICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gMzMpIHsKICAgICAgICBpZiAoIWlzTmFtZWQpIHsKICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIik7CiAgICAgICAgICB9CiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTsKICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycyIpOwogICAgfQogIH0KICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIgKyB0YWdOYW1lKTsKICB9CiAgdHJ5IHsKICAgIHRhZ05hbWUgPSBkZWNvZGVVUklDb21wb25lbnQodGFnTmFtZSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiICsgdGFnTmFtZSk7CiAgfQogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBzdGF0ZS50YWcgPSB0YWdOYW1lOwogIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHsKICAgIHN0YXRlLnRhZyA9IHN0YXRlLnRhZ01hcFt0YWdIYW5kbGVdICsgdGFnTmFtZTsKICB9IGVsc2UgaWYgKHRhZ0hhbmRsZSA9PT0gIiEiKSB7CiAgICBzdGF0ZS50YWcgPSAiISIgKyB0YWdOYW1lOwogIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSAiISEiKSB7CiAgICBzdGF0ZS50YWcgPSAidGFnOnlhbWwub3JnLDIwMDI6IiArIHRhZ05hbWU7CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicgKyB0YWdIYW5kbGUgKyAnIicpOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzgpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKTsKICB9CiAgc3RhdGUuYW5jaG9yID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgYWxpYXMsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSA0MikgcmV0dXJuIGZhbHNlOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpOwogIH0KICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS5hbmNob3JNYXAsIGFsaWFzKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyAiJyArIGFsaWFzICsgJyInKTsKICB9CiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTsKICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHsKICB2YXIgYWxsb3dCbG9ja1N0eWxlcywgYWxsb3dCbG9ja1NjYWxhcnMsIGFsbG93QmxvY2tDb2xsZWN0aW9ucywgaW5kZW50U3RhdHVzID0gMSwgYXROZXdMaW5lID0gZmFsc2UsIGhhc0NvbnRlbnQgPSBmYWxzZSwgdHlwZUluZGV4LCB0eXBlUXVhbnRpdHksIHR5cGVMaXN0LCB0eXBlMiwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigib3BlbiIsIHN0YXRlKTsKICB9CiAgc3RhdGUudGFnID0gbnVsbDsKICBzdGF0ZS5hbmNob3IgPSBudWxsOwogIHN0YXRlLmtpbmQgPSBudWxsOwogIHN0YXRlLnJlc3VsdCA9IG51bGw7CiAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfQkxPQ0tfSU4gPT09IG5vZGVDb250ZXh0OwogIGlmIChhbGxvd1RvU2VlaykgewogICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkgewogICAgICBhdE5ld0xpbmUgPSB0cnVlOwogICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkgewogICAgICAgIGluZGVudFN0YXR1cyA9IDE7CiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gMDsKICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkgewogICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7CiAgICAgICAgYXROZXdMaW5lID0gdHJ1ZTsKICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzOwogICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkgewogICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQogIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHsKICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7CiAgfQogIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7CiAgICBpZiAoQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCB8fCBDT05URVhUX0ZMT1dfT1VUID09PSBub2RlQ29udGV4dCkgewogICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50OwogICAgfSBlbHNlIHsKICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudCArIDE7CiAgICB9CiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0OwogICAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8IHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHwgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBmbG93SW5kZW50KSkgewogICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHsKICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHsKICAgICAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7CiAgICAgIGhhc0NvbnRlbnQgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiYgcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KTsKICAgIH0KICB9CiAgaWYgKHN0YXRlLnRhZyA9PT0gbnVsbCkgewogICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgIH0KICB9IGVsc2UgaWYgKHN0YXRlLnRhZyA9PT0gIj8iKSB7CiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHN0YXRlLmtpbmQgIT09ICJzY2FsYXIiKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicgKyBzdGF0ZS5raW5kICsgJyInKTsKICAgIH0KICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHsKICAgICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07CiAgICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCkpIHsKICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTsKICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi50YWc7CiAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzdGF0ZS50YWcgIT09ICIhIikgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdLCBzdGF0ZS50YWcpKSB7CiAgICAgIHR5cGUyID0gc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdW3N0YXRlLnRhZ107CiAgICB9IGVsc2UgewogICAgICB0eXBlMiA9IG51bGw7CiAgICAgIHR5cGVMaXN0ID0gc3RhdGUudHlwZU1hcC5tdWx0aVtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdOwogICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkgewogICAgICAgIGlmIChzdGF0ZS50YWcuc2xpY2UoMCwgdHlwZUxpc3RbdHlwZUluZGV4XS50YWcubGVuZ3RoKSA9PT0gdHlwZUxpc3RbdHlwZUluZGV4XS50YWcpIHsKICAgICAgICAgIHR5cGUyID0gdHlwZUxpc3RbdHlwZUluZGV4XTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgaWYgKCF0eXBlMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5rbm93biB0YWcgITwiICsgc3RhdGUudGFnICsgIj4iKTsKICAgIH0KICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgdHlwZTIua2luZCAhPT0gc3RhdGUua2luZCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiICsgc3RhdGUudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgIicgKyB0eXBlMi5raW5kICsgJyIsIG5vdCAiJyArIHN0YXRlLmtpbmQgKyAnIicpOwogICAgfQogICAgaWYgKCF0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiICsgc3RhdGUudGFnICsgIj4gZXhwbGljaXQgdGFnIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0LCBzdGF0ZS50YWcpOwogICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigiY2xvc2UiLCBzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7Cn0KZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7CiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbiwgX3Bvc2l0aW9uLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzLCBoYXNEaXJlY3RpdmVzID0gZmFsc2UsIGNoOwogIHN0YXRlLnZlcnNpb24gPSBudWxsOwogIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTsKICBzdGF0ZS50YWdNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBzdGF0ZS5hbmNob3JNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiAwIHx8IGNoICE9PSAzNykgewogICAgICBicmVhazsKICAgIH0KICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247CiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgZGlyZWN0aXZlTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgZGlyZWN0aXZlQXJncyA9IFtdOwogICAgaWYgKGRpcmVjdGl2ZU5hbWUubGVuZ3RoIDwgMSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7CiAgICB9CiAgICB3aGlsZSAoY2ggIT09IDApIHsKICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgICBpZiAoY2ggPT09IDM1KSB7CiAgICAgICAgZG8gewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoaXNfRU9MKGNoKSkgYnJlYWs7CiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIH0KICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pKTsKICAgIH0KICAgIGlmIChjaCAhPT0gMCkgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChkaXJlY3RpdmVIYW5kbGVycywgZGlyZWN0aXZlTmFtZSkpIHsKICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicgKyBkaXJlY3RpdmVOYW1lICsgJyInKTsKICAgIH0KICB9CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSAwICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSA0NSAmJiBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gNDUpIHsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgfSBlbHNlIGlmIChoYXNEaXJlY3RpdmVzKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpOwogIH0KICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5jaGVja0xpbmVCcmVha3MgJiYgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7CiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKTsKICB9CiAgc3RhdGUuZG9jdW1lbnRzLnB1c2goc3RhdGUucmVzdWx0KTsKICBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDQ2KSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgIH0KICAgIHJldHVybjsKICB9CiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoIC0gMSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykgewogIGlucHV0ID0gU3RyaW5nKGlucHV0KTsKICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7CiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTAgJiYgaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTMpIHsKICAgICAgaW5wdXQgKz0gIlxuIjsKICAgIH0KICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSA2NTI3OSkgewogICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpOwogICAgfQogIH0KICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgdmFyIG51bGxwb3MgPSBpbnB1dC5pbmRleE9mKCJcMCIpOwogIGlmIChudWxscG9zICE9PSAtMSkgewogICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zOwogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpOwogIH0KICBzdGF0ZS5pbnB1dCArPSAiXDAiOwogIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMzIpIHsKICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7CiAgfQogIHdoaWxlIChzdGF0ZS5wb3NpdGlvbiA8IHN0YXRlLmxlbmd0aCAtIDEpIHsKICAgIHJlYWREb2N1bWVudChzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7Cn0KZnVuY3Rpb24gbG9hZEFsbCQxKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykgewogIGlmIChpdGVyYXRvciAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlcmF0b3IgPT09ICJvYmplY3QiICYmIHR5cGVvZiBvcHRpb25zID09PSAidW5kZWZpbmVkIikgewogICAgb3B0aW9ucyA9IGl0ZXJhdG9yOwogICAgaXRlcmF0b3IgPSBudWxsOwogIH0KICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7CiAgaWYgKHR5cGVvZiBpdGVyYXRvciAhPT0gImZ1bmN0aW9uIikgewogICAgcmV0dXJuIGRvY3VtZW50czsKICB9CiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7CiAgfQp9CmZ1bmN0aW9uIGxvYWQkMShpbnB1dCwgb3B0aW9ucykgewogIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKTsKICBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkgewogICAgcmV0dXJuIHZvaWQgMDsKICB9IGVsc2UgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgIHJldHVybiBkb2N1bWVudHNbMF07CiAgfQogIHRocm93IG5ldyBleGNlcHRpb24oImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIik7Cn0KdmFyIGxvYWRBbGxfMSA9IGxvYWRBbGwkMTsKdmFyIGxvYWRfMSA9IGxvYWQkMTsKdmFyIGxvYWRlciA9IHsKICBsb2FkQWxsOiBsb2FkQWxsXzEsCiAgbG9hZDogbG9hZF8xCn07CnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwp2YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENIQVJfQk9NID0gNjUyNzk7CnZhciBDSEFSX1RBQiA9IDk7CnZhciBDSEFSX0xJTkVfRkVFRCA9IDEwOwp2YXIgQ0hBUl9DQVJSSUFHRV9SRVRVUk4gPSAxMzsKdmFyIENIQVJfU1BBQ0UgPSAzMjsKdmFyIENIQVJfRVhDTEFNQVRJT04gPSAzMzsKdmFyIENIQVJfRE9VQkxFX1FVT1RFID0gMzQ7CnZhciBDSEFSX1NIQVJQID0gMzU7CnZhciBDSEFSX1BFUkNFTlQgPSAzNzsKdmFyIENIQVJfQU1QRVJTQU5EID0gMzg7CnZhciBDSEFSX1NJTkdMRV9RVU9URSA9IDM5Owp2YXIgQ0hBUl9BU1RFUklTSyA9IDQyOwp2YXIgQ0hBUl9DT01NQSA9IDQ0Owp2YXIgQ0hBUl9NSU5VUyA9IDQ1Owp2YXIgQ0hBUl9DT0xPTiA9IDU4Owp2YXIgQ0hBUl9FUVVBTFMgPSA2MTsKdmFyIENIQVJfR1JFQVRFUl9USEFOID0gNjI7CnZhciBDSEFSX1FVRVNUSU9OID0gNjM7CnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgPSA2NDsKdmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDkxOwp2YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDkzOwp2YXIgQ0hBUl9HUkFWRV9BQ0NFTlQgPSA5NjsKdmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUID0gMTIzOwp2YXIgQ0hBUl9WRVJUSUNBTF9MSU5FID0gMTI0Owp2YXIgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUID0gMTI1Owp2YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9OwpFU0NBUEVfU0VRVUVOQ0VTWzBdID0gIlxcMCI7CkVTQ0FQRV9TRVFVRU5DRVNbN10gPSAiXFxhIjsKRVNDQVBFX1NFUVVFTkNFU1s4XSA9ICJcXGIiOwpFU0NBUEVfU0VRVUVOQ0VTWzldID0gIlxcdCI7CkVTQ0FQRV9TRVFVRU5DRVNbMTBdID0gIlxcbiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTFdID0gIlxcdiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTJdID0gIlxcZiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTNdID0gIlxcciI7CkVTQ0FQRV9TRVFVRU5DRVNbMjddID0gIlxcZSI7CkVTQ0FQRV9TRVFVRU5DRVNbMzRdID0gJ1xcIic7CkVTQ0FQRV9TRVFVRU5DRVNbOTJdID0gIlxcXFwiOwpFU0NBUEVfU0VRVUVOQ0VTWzEzM10gPSAiXFxOIjsKRVNDQVBFX1NFUVVFTkNFU1sxNjBdID0gIlxcXyI7CkVTQ0FQRV9TRVFVRU5DRVNbODIzMl0gPSAiXFxMIjsKRVNDQVBFX1NFUVVFTkNFU1s4MjMzXSA9ICJcXFAiOwp2YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbCiAgInkiLAogICJZIiwKICAieWVzIiwKICAiWWVzIiwKICAiWUVTIiwKICAib24iLAogICJPbiIsCiAgIk9OIiwKICAibiIsCiAgIk4iLAogICJubyIsCiAgIk5vIiwKICAiTk8iLAogICJvZmYiLAogICJPZmYiLAogICJPRkYiCl07CnZhciBERVBSRUNBVEVEX0JBU0U2MF9TWU5UQVggPSAvXlstK10/WzAtOV9dKyg/OjpbMC05X10rKSsoPzpcLlswLTlfXSopPyQvOwpmdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hMiwgbWFwMikgewogIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGUyOwogIGlmIChtYXAyID09PSBudWxsKSByZXR1cm4ge307CiAgcmVzdWx0ID0ge307CiAga2V5cyA9IE9iamVjdC5rZXlzKG1hcDIpOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHRhZyA9IGtleXNbaW5kZXhdOwogICAgc3R5bGUgPSBTdHJpbmcobWFwMlt0YWddKTsKICAgIGlmICh0YWcuc2xpY2UoMCwgMikgPT09ICIhISIpIHsKICAgICAgdGFnID0gInRhZzp5YW1sLm9yZywyMDAyOiIgKyB0YWcuc2xpY2UoMik7CiAgICB9CiAgICB0eXBlMiA9IHNjaGVtYTIuY29tcGlsZWRUeXBlTWFwWyJmYWxsYmFjayJdW3RhZ107CiAgICBpZiAodHlwZTIgJiYgX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHsKICAgICAgc3R5bGUgPSB0eXBlMi5zdHlsZUFsaWFzZXNbc3R5bGVdOwogICAgfQogICAgcmVzdWx0W3RhZ10gPSBzdHlsZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7CiAgdmFyIHN0cmluZywgaGFuZGxlLCBsZW5ndGg7CiAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOwogIGlmIChjaGFyYWN0ZXIgPD0gMjU1KSB7CiAgICBoYW5kbGUgPSAieCI7CiAgICBsZW5ndGggPSAyOwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDY1NTM1KSB7CiAgICBoYW5kbGUgPSAidSI7CiAgICBsZW5ndGggPSA0OwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDQyOTQ5NjcyOTUpIHsKICAgIGhhbmRsZSA9ICJVIjsKICAgIGxlbmd0aCA9IDg7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTsKICB9CiAgcmV0dXJuICJcXCIgKyBoYW5kbGUgKyBjb21tb24ucmVwZWF0KCIwIiwgbGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7Cn0KdmFyIFFVT1RJTkdfVFlQRV9TSU5HTEUgPSAxOwp2YXIgUVVPVElOR19UWVBFX0RPVUJMRSA9IDI7CmZ1bmN0aW9uIFN0YXRlKG9wdGlvbnMpIHsKICB0aGlzLnNjaGVtYSA9IG9wdGlvbnNbInNjaGVtYSJdIHx8IF9kZWZhdWx0OwogIHRoaXMuaW5kZW50ID0gTWF0aC5tYXgoMSwgb3B0aW9uc1siaW5kZW50Il0gfHwgMik7CiAgdGhpcy5ub0FycmF5SW5kZW50ID0gb3B0aW9uc1sibm9BcnJheUluZGVudCJdIHx8IGZhbHNlOwogIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWyJza2lwSW52YWxpZCJdIHx8IGZhbHNlOwogIHRoaXMuZmxvd0xldmVsID0gY29tbW9uLmlzTm90aGluZyhvcHRpb25zWyJmbG93TGV2ZWwiXSkgPyAtMSA6IG9wdGlvbnNbImZsb3dMZXZlbCJdOwogIHRoaXMuc3R5bGVNYXAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbInN0eWxlcyJdIHx8IG51bGwpOwogIHRoaXMuc29ydEtleXMgPSBvcHRpb25zWyJzb3J0S2V5cyJdIHx8IGZhbHNlOwogIHRoaXMubGluZVdpZHRoID0gb3B0aW9uc1sibGluZVdpZHRoIl0gfHwgODA7CiAgdGhpcy5ub1JlZnMgPSBvcHRpb25zWyJub1JlZnMiXSB8fCBmYWxzZTsKICB0aGlzLm5vQ29tcGF0TW9kZSA9IG9wdGlvbnNbIm5vQ29tcGF0TW9kZSJdIHx8IGZhbHNlOwogIHRoaXMuY29uZGVuc2VGbG93ID0gb3B0aW9uc1siY29uZGVuc2VGbG93Il0gfHwgZmFsc2U7CiAgdGhpcy5xdW90aW5nVHlwZSA9IG9wdGlvbnNbInF1b3RpbmdUeXBlIl0gPT09ICciJyA/IFFVT1RJTkdfVFlQRV9ET1VCTEUgOiBRVU9USU5HX1RZUEVfU0lOR0xFOwogIHRoaXMuZm9yY2VRdW90ZXMgPSBvcHRpb25zWyJmb3JjZVF1b3RlcyJdIHx8IGZhbHNlOwogIHRoaXMucmVwbGFjZXIgPSB0eXBlb2Ygb3B0aW9uc1sicmVwbGFjZXIiXSA9PT0gImZ1bmN0aW9uIiA/IG9wdGlvbnNbInJlcGxhY2VyIl0gOiBudWxsOwogIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7CiAgdGhpcy5leHBsaWNpdFR5cGVzID0gdGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdDsKICB0aGlzLnRhZyA9IG51bGw7CiAgdGhpcy5yZXN1bHQgPSAiIjsKICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTsKICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDsKfQpmdW5jdGlvbiBpbmRlbnRTdHJpbmcoc3RyaW5nLCBzcGFjZXMpIHsKICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgiICIsIHNwYWNlcyksIHBvc2l0aW9uID0gMCwgbmV4dCA9IC0xLCByZXN1bHQgPSAiIiwgbGluZSwgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHsKICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZigiXG4iLCBwb3NpdGlvbik7CiAgICBpZiAobmV4dCA9PT0gLTEpIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7CiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoOwogICAgfSBlbHNlIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpOwogICAgICBwb3NpdGlvbiA9IG5leHQgKyAxOwogICAgfQogICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICJcbiIpIHJlc3VsdCArPSBpbmQ7CiAgICByZXN1bHQgKz0gbGluZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCkgewogIHJldHVybiAiXG4iICsgY29tbW9uLnJlcGVhdCgiICIsIHN0YXRlLmluZGVudCAqIGxldmVsKTsKfQpmdW5jdGlvbiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIHN0cjIpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwgdHlwZTI7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTsKICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0cjIpKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gYyA9PT0gQ0hBUl9TUEFDRSB8fCBjID09PSBDSEFSX1RBQjsKfQpmdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7CiAgcmV0dXJuIDMyIDw9IGMgJiYgYyA8PSAxMjYgfHwgMTYxIDw9IGMgJiYgYyA8PSA1NTI5NSAmJiBjICE9PSA4MjMyICYmIGMgIT09IDgyMzMgfHwgNTczNDQgPD0gYyAmJiBjIDw9IDY1NTMzICYmIGMgIT09IENIQVJfQk9NIHx8IDY1NTM2IDw9IGMgJiYgYyA8PSAxMTE0MTExOwp9CmZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT00gJiYgYyAhPT0gQ0hBUl9DQVJSSUFHRV9SRVRVUk4gJiYgYyAhPT0gQ0hBUl9MSU5FX0ZFRUQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmUoYywgcHJldiwgaW5ibG9jaykgewogIHZhciBjSXNOc0NoYXJPcldoaXRlc3BhY2UgPSBpc05zQ2hhck9yV2hpdGVzcGFjZShjKTsKICB2YXIgY0lzTnNDaGFyID0gY0lzTnNDaGFyT3JXaGl0ZXNwYWNlICYmICFpc1doaXRlc3BhY2UoYyk7CiAgcmV0dXJuICgKICAgIC8vIG5zLXBsYWluLXNhZmUKICAgIChpbmJsb2NrID8gKAogICAgICAvLyBjID0gZmxvdy1pbgogICAgICBjSXNOc0NoYXJPcldoaXRlc3BhY2UKICAgICkgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2UgJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQpICYmIGMgIT09IENIQVJfU0hBUlAgJiYgIShwcmV2ID09PSBDSEFSX0NPTE9OICYmICFjSXNOc0NoYXIpIHx8IGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHByZXYpICYmICFpc1doaXRlc3BhY2UocHJldikgJiYgYyA9PT0gQ0hBUl9TSEFSUCB8fCBwcmV2ID09PSBDSEFSX0NPTE9OICYmIGNJc05zQ2hhcgogICk7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChjKSB7CiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmIGMgIT09IENIQVJfQk9NICYmICFpc1doaXRlc3BhY2UoYykgJiYgYyAhPT0gQ0hBUl9NSU5VUyAmJiBjICE9PSBDSEFSX1FVRVNUSU9OICYmIGMgIT09IENIQVJfQ09MT04gJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9TSEFSUCAmJiBjICE9PSBDSEFSX0FNUEVSU0FORCAmJiBjICE9PSBDSEFSX0FTVEVSSVNLICYmIGMgIT09IENIQVJfRVhDTEFNQVRJT04gJiYgYyAhPT0gQ0hBUl9WRVJUSUNBTF9MSU5FICYmIGMgIT09IENIQVJfRVFVQUxTICYmIGMgIT09IENIQVJfR1JFQVRFUl9USEFOICYmIGMgIT09IENIQVJfU0lOR0xFX1FVT1RFICYmIGMgIT09IENIQVJfRE9VQkxFX1FVT1RFICYmIGMgIT09IENIQVJfUEVSQ0VOVCAmJiBjICE9PSBDSEFSX0NPTU1FUkNJQUxfQVQgJiYgYyAhPT0gQ0hBUl9HUkFWRV9BQ0NFTlQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KGMpIHsKICByZXR1cm4gIWlzV2hpdGVzcGFjZShjKSAmJiBjICE9PSBDSEFSX0NPTE9OOwp9CmZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgcG9zKSB7CiAgdmFyIGZpcnN0ID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zKSwgc2Vjb25kOwogIGlmIChmaXJzdCA+PSA1NTI5NiAmJiBmaXJzdCA8PSA1NjMxOSAmJiBwb3MgKyAxIDwgc3RyaW5nLmxlbmd0aCkgewogICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zICsgMSk7CiAgICBpZiAoc2Vjb25kID49IDU2MzIwICYmIHNlY29uZCA8PSA1NzM0MykgewogICAgICByZXR1cm4gKGZpcnN0IC0gNTUyOTYpICogMTAyNCArIHNlY29uZCAtIDU2MzIwICsgNjU1MzY7CiAgICB9CiAgfQogIHJldHVybiBmaXJzdDsKfQpmdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykgewogIHZhciBsZWFkaW5nU3BhY2VSZSA9IC9eXG4qIC87CiAgcmV0dXJuIGxlYWRpbmdTcGFjZVJlLnRlc3Qoc3RyaW5nKTsKfQp2YXIgU1RZTEVfUExBSU4gPSAxOwp2YXIgU1RZTEVfU0lOR0xFID0gMjsKdmFyIFNUWUxFX0xJVEVSQUwgPSAzOwp2YXIgU1RZTEVfRk9MREVEID0gNDsKdmFyIFNUWUxFX0RPVUJMRSA9IDU7CmZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHN0cmluZywgc2luZ2xlTGluZU9ubHksIGluZGVudFBlckxldmVsLCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VvdXNUeXBlLCBxdW90aW5nVHlwZSwgZm9yY2VRdW90ZXMsIGluYmxvY2spIHsKICB2YXIgaTsKICB2YXIgY2hhciA9IDA7CiAgdmFyIHByZXZDaGFyID0gbnVsbDsKICB2YXIgaGFzTGluZUJyZWFrID0gZmFsc2U7CiAgdmFyIGhhc0ZvbGRhYmxlTGluZSA9IGZhbHNlOwogIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTsKICB2YXIgcHJldmlvdXNMaW5lQnJlYWsgPSAtMTsKICB2YXIgcGxhaW4gPSBpc1BsYWluU2FmZUZpcnN0KGNvZGVQb2ludEF0KHN0cmluZywgMCkpICYmIGlzUGxhaW5TYWZlTGFzdChjb2RlUG9pbnRBdChzdHJpbmcsIHN0cmluZy5sZW5ndGggLSAxKSk7CiAgaWYgKHNpbmdsZUxpbmVPbmx5IHx8IGZvcmNlUXVvdGVzKSB7CiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgY2hhciA+PSA2NTUzNiA/IGkgKz0gMiA6IGkrKykgewogICAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkgewogICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7CiAgICAgIH0KICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7CiAgICAgIHByZXZDaGFyID0gY2hhcjsKICAgIH0KICB9IGVsc2UgewogICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGNoYXIgPj0gNjU1MzYgPyBpICs9IDIgOiBpKyspIHsKICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7CiAgICAgIGlmIChjaGFyID09PSBDSEFSX0xJTkVfRkVFRCkgewogICAgICAgIGhhc0xpbmVCcmVhayA9IHRydWU7CiAgICAgICAgaWYgKHNob3VsZFRyYWNrV2lkdGgpIHsKICAgICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC4KICAgICAgICAgIGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIjsKICAgICAgICAgIHByZXZpb3VzTGluZUJyZWFrID0gaTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7CiAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICAgICAgfQogICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZDaGFyLCBpbmJsb2NrKTsKICAgICAgcHJldkNoYXIgPSBjaGFyOwogICAgfQogICAgaGFzRm9sZGFibGVMaW5lID0gaGFzRm9sZGFibGVMaW5lIHx8IHNob3VsZFRyYWNrV2lkdGggJiYgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIik7CiAgfQogIGlmICghaGFzTGluZUJyZWFrICYmICFoYXNGb2xkYWJsZUxpbmUpIHsKICAgIGlmIChwbGFpbiAmJiAhZm9yY2VRdW90ZXMgJiYgIXRlc3RBbWJpZ3VvdXNUeXBlKHN0cmluZykpIHsKICAgICAgcmV0dXJuIFNUWUxFX1BMQUlOOwogICAgfQogICAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFOwogIH0KICBpZiAoaW5kZW50UGVyTGV2ZWwgPiA5ICYmIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSkgewogICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICB9CiAgaWYgKCFmb3JjZVF1b3RlcykgewogICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7CiAgfQogIHJldHVybiBxdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/IFNUWUxFX0RPVUJMRSA6IFNUWUxFX1NJTkdMRTsKfQpmdW5jdGlvbiB3cml0ZVNjYWxhcihzdGF0ZSwgc3RyaW5nLCBsZXZlbCwgaXNrZXksIGluYmxvY2spIHsKICBzdGF0ZS5kdW1wID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIiInIDogIicnIjsKICAgIH0KICAgIGlmICghc3RhdGUubm9Db21wYXRNb2RlKSB7CiAgICAgIGlmIChERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKHN0cmluZykgIT09IC0xIHx8IERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWC50ZXN0KHN0cmluZykpIHsKICAgICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIicgKyBzdHJpbmcgKyAnIicgOiAiJyIgKyBzdHJpbmcgKyAiJyI7CiAgICAgIH0KICAgIH0KICAgIHZhciBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBNYXRoLm1heCgxLCBsZXZlbCk7CiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMSA/IC0xIDogTWF0aC5tYXgoTWF0aC5taW4oc3RhdGUubGluZVdpZHRoLCA0MCksIHN0YXRlLmxpbmVXaWR0aCAtIGluZGVudCk7CiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleSB8fCBzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWw7CiAgICBmdW5jdGlvbiB0ZXN0QW1iaWd1aXR5KHN0cmluZzIpIHsKICAgICAgcmV0dXJuIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyaW5nMik7CiAgICB9CiAgICBzd2l0Y2ggKGNob29zZVNjYWxhclN0eWxlKAogICAgICBzdHJpbmcsCiAgICAgIHNpbmdsZUxpbmVPbmx5LAogICAgICBzdGF0ZS5pbmRlbnQsCiAgICAgIGxpbmVXaWR0aCwKICAgICAgdGVzdEFtYmlndWl0eSwKICAgICAgc3RhdGUucXVvdGluZ1R5cGUsCiAgICAgIHN0YXRlLmZvcmNlUXVvdGVzICYmICFpc2tleSwKICAgICAgaW5ibG9jawogICAgKSkgewogICAgICBjYXNlIFNUWUxFX1BMQUlOOgogICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgIGNhc2UgU1RZTEVfU0lOR0xFOgogICAgICAgIHJldHVybiAiJyIgKyBzdHJpbmcucmVwbGFjZSgvJy9nLCAiJyciKSArICInIjsKICAgICAgY2FzZSBTVFlMRV9MSVRFUkFMOgogICAgICAgIHJldHVybiAifCIgKyBibG9ja0hlYWRlcihzdHJpbmcsIHN0YXRlLmluZGVudCkgKyBkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoc3RyaW5nLCBpbmRlbnQpKTsKICAgICAgY2FzZSBTVFlMRV9GT0xERUQ6CiAgICAgICAgcmV0dXJuICI+IiArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KSArIGRyb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhmb2xkU3RyaW5nKHN0cmluZywgbGluZVdpZHRoKSwgaW5kZW50KSk7CiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOgogICAgICAgIHJldHVybiAnIicgKyBlc2NhcGVTdHJpbmcoc3RyaW5nKSArICciJzsKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpOwogICAgfQogIH0oKTsKfQpmdW5jdGlvbiBibG9ja0hlYWRlcihzdHJpbmcsIGluZGVudFBlckxldmVsKSB7CiAgdmFyIGluZGVudEluZGljYXRvciA9IG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSA/IFN0cmluZyhpbmRlbnRQZXJMZXZlbCkgOiAiIjsKICB2YXIgY2xpcCA9IHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAiXG4iIHx8IHN0cmluZyA9PT0gIlxuIik7CiAgdmFyIGNob21wID0ga2VlcCA/ICIrIiA6IGNsaXAgPyAiIiA6ICItIjsKICByZXR1cm4gaW5kZW50SW5kaWNhdG9yICsgY2hvbXAgKyAiXG4iOwp9CmZ1bmN0aW9uIGRyb3BFbmRpbmdOZXdsaW5lKHN0cmluZykgewogIHJldHVybiBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAiXG4iID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZzsKfQpmdW5jdGlvbiBmb2xkU3RyaW5nKHN0cmluZywgd2lkdGgpIHsKICB2YXIgbGluZVJlID0gLyhcbispKFteXG5dKikvZzsKICB2YXIgcmVzdWx0ID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbmV4dExGID0gc3RyaW5nLmluZGV4T2YoIlxuIik7CiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDsKICAgIGxpbmVSZS5sYXN0SW5kZXggPSBuZXh0TEY7CiAgICByZXR1cm4gZm9sZExpbmUoc3RyaW5nLnNsaWNlKDAsIG5leHRMRiksIHdpZHRoKTsKICB9KCk7CiAgdmFyIHByZXZNb3JlSW5kZW50ZWQgPSBzdHJpbmdbMF0gPT09ICJcbiIgfHwgc3RyaW5nWzBdID09PSAiICI7CiAgdmFyIG1vcmVJbmRlbnRlZDsKICB2YXIgbWF0Y2g7CiAgd2hpbGUgKG1hdGNoID0gbGluZVJlLmV4ZWMoc3RyaW5nKSkgewogICAgdmFyIHByZWZpeCA9IG1hdGNoWzFdLCBsaW5lID0gbWF0Y2hbMl07CiAgICBtb3JlSW5kZW50ZWQgPSBsaW5lWzBdID09PSAiICI7CiAgICByZXN1bHQgKz0gcHJlZml4ICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gIiIgPyAiXG4iIDogIiIpICsgZm9sZExpbmUobGluZSwgd2lkdGgpOwogICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkgewogIGlmIChsaW5lID09PSAiIiB8fCBsaW5lWzBdID09PSAiICIpIHJldHVybiBsaW5lOwogIHZhciBicmVha1JlID0gLyBbXiBdL2c7CiAgdmFyIG1hdGNoOwogIHZhciBzdGFydCA9IDAsIGVuZCwgY3VyciA9IDAsIG5leHQgPSAwOwogIHZhciByZXN1bHQgPSAiIjsKICB3aGlsZSAobWF0Y2ggPSBicmVha1JlLmV4ZWMobGluZSkpIHsKICAgIG5leHQgPSBtYXRjaC5pbmRleDsKICAgIGlmIChuZXh0IC0gc3RhcnQgPiB3aWR0aCkgewogICAgICBlbmQgPSBjdXJyID4gc3RhcnQgPyBjdXJyIDogbmV4dDsKICAgICAgcmVzdWx0ICs9ICJcbiIgKyBsaW5lLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICBzdGFydCA9IGVuZCArIDE7CiAgICB9CiAgICBjdXJyID0gbmV4dDsKICB9CiAgcmVzdWx0ICs9ICJcbiI7CiAgaWYgKGxpbmUubGVuZ3RoIC0gc3RhcnQgPiB3aWR0aCAmJiBjdXJyID4gc3RhcnQpIHsKICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICJcbiIgKyBsaW5lLnNsaWNlKGN1cnIgKyAxKTsKICB9IGVsc2UgewogICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpOwogIH0KICByZXR1cm4gcmVzdWx0LnNsaWNlKDEpOwp9CmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHsKICB2YXIgcmVzdWx0ID0gIiI7CiAgdmFyIGNoYXIgPSAwOwogIHZhciBlc2NhcGVTZXE7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7CiAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcl07CiAgICBpZiAoIWVzY2FwZVNlcSAmJiBpc1ByaW50YWJsZShjaGFyKSkgewogICAgICByZXN1bHQgKz0gc3RyaW5nW2ldOwogICAgICBpZiAoY2hhciA+PSA2NTUzNikgcmVzdWx0ICs9IHN0cmluZ1tpICsgMV07CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgKz0gZXNjYXBlU2VxIHx8IGVuY29kZUhleChjaGFyKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCkgewogIHZhciBfcmVzdWx0ID0gIiIsIF90YWcgPSBzdGF0ZS50YWcsIGluZGV4LCBsZW5ndGgsIHZhbHVlOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdmFsdWUgPSBvYmplY3RbaW5kZXhdOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIFN0cmluZyhpbmRleCksIHZhbHVlKTsKICAgIH0KICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICJ1bmRlZmluZWQiICYmIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG51bGwsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgaWYgKF9yZXN1bHQgIT09ICIiKSBfcmVzdWx0ICs9ICIsIiArICghc3RhdGUuY29uZGVuc2VGbG93ID8gIiAiIDogIiIpOwogICAgICBfcmVzdWx0ICs9IHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJbIiArIF9yZXN1bHQgKyAiXSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7CiAgdmFyIF9yZXN1bHQgPSAiIiwgX3RhZyA9IHN0YXRlLnRhZywgaW5kZXgsIGxlbmd0aCwgdmFsdWU7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICB2YWx1ZSA9IG9iamVjdFtpbmRleF07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpOwogICAgfQogICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCIgJiYgd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG51bGwsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSkgewogICAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTsKICAgICAgfQogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSAiOwogICAgICB9CiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDsKICAgIH0KICB9CiAgc3RhdGUudGFnID0gX3RhZzsKICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAiW10iOwp9CmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgcGFpckJ1ZmZlcjsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoX3Jlc3VsdCAhPT0gIiIpIHBhaXJCdWZmZXIgKz0gIiwgIjsKICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJyInOwogICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07CiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RLZXksIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSBwYWlyQnVmZmVyICs9ICI/ICI7CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXAgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJyInIDogIiIpICsgIjoiICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICIiIDogIiAiKTsKICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJ7IiArIF9yZXN1bHQgKyAifSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgZXhwbGljaXRQYWlyLCBwYWlyQnVmZmVyOwogIGlmIChzdGF0ZS5zb3J0S2V5cyA9PT0gdHJ1ZSkgewogICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7CiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICJmdW5jdGlvbiIpIHsKICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7CiAgfSBlbHNlIGlmIChzdGF0ZS5zb3J0S2V5cykgewogICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpOwogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7CiAgICB9CiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTsKICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgb2JqZWN0VmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSk7CiAgICB9CiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgZXhwbGljaXRQYWlyID0gc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gIj8iIHx8IHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0OwogICAgaWYgKGV4cGxpY2l0UGFpcikgewogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyAiOwogICAgICB9CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBpZiAoZXhwbGljaXRQYWlyKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gIjoiOwogICAgfSBlbHNlIHsKICAgICAgcGFpckJ1ZmZlciArPSAiOiAiOwogICAgfQogICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wOwogICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyOwogIH0KICBzdGF0ZS50YWcgPSBfdGFnOwogIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICJ7fSI7Cn0KZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkgewogIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZTIsIHN0eWxlOwogIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlczsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdHlwZUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSB0eXBlTGlzdFtpbmRleF07CiAgICBpZiAoKHR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZTIucHJlZGljYXRlKSAmJiAoIXR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgJiYgb2JqZWN0IGluc3RhbmNlb2YgdHlwZTIuaW5zdGFuY2VPZikgJiYgKCF0eXBlMi5wcmVkaWNhdGUgfHwgdHlwZTIucHJlZGljYXRlKG9iamVjdCkpKSB7CiAgICAgIGlmIChleHBsaWNpdCkgewogICAgICAgIGlmICh0eXBlMi5tdWx0aSAmJiB0eXBlMi5yZXByZXNlbnROYW1lKSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi5yZXByZXNlbnROYW1lKG9iamVjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUyLnRhZzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICB9CiAgICAgIGlmICh0eXBlMi5yZXByZXNlbnQpIHsKICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUyLnRhZ10gfHwgdHlwZTIuZGVmYXVsdFN0eWxlOwogICAgICAgIGlmIChfdG9TdHJpbmcuY2FsbCh0eXBlMi5yZXByZXNlbnQpID09PSAiW29iamVjdCBGdW5jdGlvbl0iKSB7CiAgICAgICAgICBfcmVzdWx0ID0gdHlwZTIucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIucmVwcmVzZW50LCBzdHlsZSkpIHsKICAgICAgICAgIF9yZXN1bHQgPSB0eXBlMi5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCIhPCIgKyB0eXBlMi50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicgKyBzdHlsZSArICciIHN0eWxlJyk7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0OwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXksIGlzYmxvY2tzZXEpIHsKICBzdGF0ZS50YWcgPSBudWxsOwogIHN0YXRlLmR1bXAgPSBvYmplY3Q7CiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkgewogICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTsKICB9CiAgdmFyIHR5cGUyID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7CiAgdmFyIGluYmxvY2sgPSBibG9jazsKICB2YXIgdGFnU3RyOwogIGlmIChibG9jaykgewogICAgYmxvY2sgPSBzdGF0ZS5mbG93TGV2ZWwgPCAwIHx8IHN0YXRlLmZsb3dMZXZlbCA+IGxldmVsOwogIH0KICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUyID09PSAiW29iamVjdCBPYmplY3RdIiB8fCB0eXBlMiA9PT0gIltvYmplY3QgQXJyYXldIiwgZHVwbGljYXRlSW5kZXgsIGR1cGxpY2F0ZTsKICBpZiAob2JqZWN0T3JBcnJheSkgewogICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTsKICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTsKICB9CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCAmJiBzdGF0ZS50YWcgIT09ICI/IiB8fCBkdXBsaWNhdGUgfHwgc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkgewogICAgY29tcGFjdCA9IGZhbHNlOwogIH0KICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkgewogICAgc3RhdGUuZHVtcCA9ICIqcmVmXyIgKyBkdXBsaWNhdGVJbmRleDsKICB9IGVsc2UgewogICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHsKICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdID0gdHJ1ZTsKICAgIH0KICAgIGlmICh0eXBlMiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIE9iamVjdC5rZXlzKHN0YXRlLmR1bXApLmxlbmd0aCAhPT0gMCkgewogICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgaWYgKGR1cGxpY2F0ZSkgewogICAgICAgICAgc3RhdGUuZHVtcCA9ICImcmVmXyIgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IEFycmF5XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgaWYgKHN0YXRlLm5vQXJyYXlJbmRlbnQgJiYgIWlzYmxvY2tzZXEgJiYgbGV2ZWwgPiAwKSB7CiAgICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsIC0gMSwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHdyaXRlQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpOwogICAgICAgIH0KICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IFN0cmluZ10iKSB7CiAgICAgIGlmIChzdGF0ZS50YWcgIT09ICI/IikgewogICAgICAgIHdyaXRlU2NhbGFyKHN0YXRlLCBzdGF0ZS5kdW1wLCBsZXZlbCwgaXNrZXksIGluYmxvY2spOwogICAgICB9CiAgICB9IGVsc2UgaWYgKHR5cGUyID09PSAiW29iamVjdCBVbmRlZmluZWRdIikgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIiArIHR5cGUyKTsKICAgIH0KICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAiPyIpIHsKICAgICAgdGFnU3RyID0gZW5jb2RlVVJJKAogICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gIiEiID8gc3RhdGUudGFnLnNsaWNlKDEpIDogc3RhdGUudGFnCiAgICAgICkucmVwbGFjZSgvIS9nLCAiJTIxIik7CiAgICAgIGlmIChzdGF0ZS50YWdbMF0gPT09ICIhIikgewogICAgICAgIHRhZ1N0ciA9ICIhIiArIHRhZ1N0cjsKICAgICAgfSBlbHNlIGlmICh0YWdTdHIuc2xpY2UoMCwgMTgpID09PSAidGFnOnlhbWwub3JnLDIwMDI6IikgewogICAgICAgIHRhZ1N0ciA9ICIhISIgKyB0YWdTdHIuc2xpY2UoMTgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRhZ1N0ciA9ICIhPCIgKyB0YWdTdHIgKyAiPiI7CiAgICAgIH0KICAgICAgc3RhdGUuZHVtcCA9IHRhZ1N0ciArICIgIiArIHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGdldER1cGxpY2F0ZVJlZmVyZW5jZXMob2JqZWN0LCBzdGF0ZSkgewogIHZhciBvYmplY3RzID0gW10sIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sIGluZGV4LCBsZW5ndGg7CiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pOwogIH0KICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpOwp9CmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHsKICB2YXIgb2JqZWN0S2V5TGlzdCwgaW5kZXgsIGxlbmd0aDsKICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiKSB7CiAgICBpbmRleCA9IG9iamVjdHMuaW5kZXhPZihvYmplY3QpOwogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICBpZiAoZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkgPT09IC0xKSB7CiAgICAgICAgZHVwbGljYXRlc0luZGV4ZXMucHVzaChpbmRleCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG9iamVjdHMucHVzaChvYmplY3QpOwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7CiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtvYmplY3RLZXlMaXN0W2luZGV4XV0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gZHVtcCQxKGlucHV0LCBvcHRpb25zKSB7CiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKG9wdGlvbnMpOwogIGlmICghc3RhdGUubm9SZWZzKSBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7CiAgdmFyIHZhbHVlID0gaW5wdXQ7CiAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwoeyAiIjogdmFsdWUgfSwgIiIsIHZhbHVlKTsKICB9CiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgdmFsdWUsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICJcbiI7CiAgcmV0dXJuICIiOwp9CnZhciBkdW1wXzEgPSBkdW1wJDE7CnZhciBkdW1wZXIgPSB7CiAgZHVtcDogZHVtcF8xCn07CmZ1bmN0aW9uIHJlbmFtZWQoZnJvbSwgdG8pIHsKICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uIHlhbWwuIiArIGZyb20gKyAiIGlzIHJlbW92ZWQgaW4ganMteWFtbCA0LiBVc2UgeWFtbC4iICsgdG8gKyAiIGluc3RlYWQsIHdoaWNoIGlzIG5vdyBzYWZlIGJ5IGRlZmF1bHQuIik7CiAgfTsKfQp2YXIgbG9hZCA9IGxvYWRlci5sb2FkOwp2YXIgbG9hZEFsbCA9IGxvYWRlci5sb2FkQWxsOwp2YXIgZHVtcCA9IGR1bXBlci5kdW1wOwp2YXIgc2FmZUxvYWQgPSByZW5hbWVkKCJzYWZlTG9hZCIsICJsb2FkIik7CnZhciBzYWZlTG9hZEFsbCA9IHJlbmFtZWQoInNhZmVMb2FkQWxsIiwgImxvYWRBbGwiKTsKdmFyIHNhZmVEdW1wID0gcmVuYW1lZCgic2FmZUR1bXAiLCAiZHVtcCIpOwoKLy8gc3JjL3NjaGVtYXRpYy9wcm9qZWN0L3Byb2plY3QuZmFjdG9yeS50cwp2YXIgR0lUSUdOT1JFX1BBVEggPSAiLmdpdGlnbm9yZSI7CnZhciBjYXB0dXJlR2l0SWdub3JlQ29udGVudFJ1bGUgPSAoc3RhdGUpID0+IChob3N0KSA9PiB7CiAgY29uc3QgZ2l0SWdub3JlQnVmZmVyID0gaG9zdC5yZWFkKEdJVElHTk9SRV9QQVRIKTsKICBpZiAoIWdpdElnbm9yZUJ1ZmZlcikgewogICAgcmV0dXJuIGhvc3Q7CiAgfQogIHN0YXRlLmNvbnRlbnQgPSBnaXRJZ25vcmVCdWZmZXIudG9TdHJpbmcoInV0Zi04Iik7CiAgcmV0dXJuIGhvc3Q7Cn07CnZhciBtZXJnZUdpdElnbm9yZUNvbnRlbnRSdWxlID0gKHN0YXRlKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmIChzdGF0ZS5jb250ZW50ID09PSB2b2lkIDApIHsKICAgIHJldHVybiBob3N0OwogIH0KICBjb25zdCBnaXRJZ25vcmVCdWZmZXIgPSBob3N0LnJlYWQoR0lUSUdOT1JFX1BBVEgpOwogIGlmICghZ2l0SWdub3JlQnVmZmVyKSB7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgY29uc3QgdGVtcGxhdGVDb250ZW50ID0gZ2l0SWdub3JlQnVmZmVyLnRvU3RyaW5nKCJ1dGYtOCIpOwogIGNvbnN0IG1lcmdlZENvbnRlbnQgPSBtZXJnZUdpdElnbm9yZUNvbnRlbnQoewogICAgZXhpc3RpbmdDb250ZW50OiBzdGF0ZS5jb250ZW50LAogICAgdGVtcGxhdGVDb250ZW50CiAgfSk7CiAgaWYgKG1lcmdlZENvbnRlbnQgIT09IHRlbXBsYXRlQ29udGVudCkgewogICAgY29udGV4dC5sb2dnZXIuaW5mbygiTWVyZ2luZyB0ZW1wbGF0ZSAuZ2l0aWdub3JlIHdpdGggcHJvamVjdC1zcGVjaWZpYyBlbnRyaWVzIik7CiAgICBob3N0Lm92ZXJ3cml0ZShHSVRJR05PUkVfUEFUSCwgbWVyZ2VkQ29udGVudCk7CiAgfQogIHJldHVybiBob3N0Owp9Owp2YXIgbWFpbiA9IChvcHRpb25zKSA9PiB7CiAgY29uc3Qgc3RhdGUgPSB7fTsKICByZXR1cm4gKDAsIGltcG9ydF9zY2hlbWF0aWNzMTAuY2hhaW4pKFsKICAgIGNhcHR1cmVHaXRJZ25vcmVDb250ZW50UnVsZShzdGF0ZSksCiAgICB1cGRhdGVUc0NvbmZpZ1J1bGUsCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MxMS5tZXJnZVdpdGgpKGdlbmVyYXRlQ29tbW9uU291cmNlKG9wdGlvbnMpLCBpbXBvcnRfc2NoZW1hdGljczkuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGUpLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzMTEubWVyZ2VXaXRoKShnZW5lcmF0ZVByb2plY3RTcGVjaWZpY1NvdXJjZShvcHRpb25zKSwgaW1wb3J0X3NjaGVtYXRpY3M5Lk1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlKSwKICAgIG1lcmdlR2l0SWdub3JlQ29udGVudFJ1bGUoc3RhdGUpCiAgXSk7Cn07Ci8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZToKMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7CiAgbWFpbgp9KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3V0aWxzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS91dGlsaXR5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3BvaW50ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2V4Y2VwdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGl0ZXJhbHMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3N0cmluZ3MuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL29iamVjdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3BhcnRpYWxseS1vcmRlcmVkLXNldC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xhbmcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbnVsbC1sb2dnZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci90cmFuc2Zvcm0tbG9nZ2VyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9wYXRoLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvbWVtb3J5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc3luYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZXNvbHZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVjb3JkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vcmVhZGVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi93cml0ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW50cnkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvcmVjb3JkZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc2NvcGVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2hvc3QtdHJlZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9zdGF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbnVsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL3NjaGVtYXRpYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvY2xpLWxvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3Npbmsvc2luay5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvbW92ZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9zY2hlbWF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy91cmwuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCmpzLXlhbWwvZGlzdC9qcy15YW1sLm1qczoKICAoKiEganMteWFtbCA0LjEuMCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWNhL2pzLXlhbWwgQGxpY2Vuc2UgTUlUICopCiovCg==",cis=async e=>{let t=Buffer.from(pAl,"base64").toString("utf-8");await(await import("fs/promises")).writeFile(e,t)};var lis=async e=>{let{writeFiles:t}=await import("@atls/code-runtime");await t(e);let r=pYr.ppath.join(e,"project");await fAl(r,{recursive:!0}),await cis(pYr.ppath.join(r,"project.factory.cjs")),console.info("All Schematic files writed to the tmp!")};var B_e=Nt(no(),1),kkt=Nt(no(),1),uis=async e=>{let t=process.cwd();await kkt.xfs.copyFilePromise(B_e.ppath.join(t,".pnp.cjs"),B_e.ppath.join(e,".pnp.cjs")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"package.json"),B_e.ppath.join(e,"package.json")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"runtime"),B_e.ppath.join(e,"runtime"))};var dis=async e=>async r=>{try{let n=await Ais.xfs.mktempPromise(),a=gis.ppath.join(n,"collection.json");await lis(n),await uis(n),await ais("project",e,a)}catch(n){console.error(n)}};var xkt=class extends pis.BaseCommand{static paths=[["generate","project"]];type=Su.String("-t,--type","project");async execute(){let t=await fis.Configuration.find(this.context.cwd,this.context.plugins),r=["libraries","project"];if(!r.includes(this.type))throw new Error(`Allowed only ${r.join(", ")} types`);let n={type:this.type,cwd:process.cwd()},a=aji(this,t),o=await dis(n);return(await Iis.StreamReport.start(a,o)).exitCode()}};var his={commands:[xkt]};var gWl=Nt(Jls()),AWl=Nt($ls()),dWl=Nt(cus()),pWl=Nt(dus()),fWl=Nt(TGr()),IWl=Nt(Axt()),hWl=Nt(mus()),mWl=Nt(vus()),CWl=Nt(cgs()),_Wl=Nt(fgs()),yWl=Nt(Sgs()),bWl=Nt(Lgs()),EWl=Nt(nDe()),SWl=Nt(Hgs()),vWl=Nt(jgs()),BWl=Nt(rAs()),wWl=Nt(dAs()),TWl=Nt(Wds()),RWl=Nt(sJ()),NWl=Nt(p1s()),DWl=Nt($he()),kWl=Nt(Q1s()),xWl=Nt(mGe()),GWl=Nt(z1s()),FWl=Nt(s2s()),o2s=()=>({modules:new Map([["@yarnpkg/cli",iWl],["@yarnpkg/core",sWl],["@yarnpkg/fslib",oWl],["@yarnpkg/libzip",aWl],["@yarnpkg/parsers",cWl],["@yarnpkg/shell",lWl],["clipanion",rg],["semver",uWl],["typanion",mZ],["@atls/yarn-plugin-badges",opr],["@atls/yarn-plugin-changelog",Ufr],["@atls/yarn-plugin-check",Kfr],["@atls/yarn-plugin-checks",r1r],["@atls/yarn-plugin-cli-publish",i1r],["@atls/yarn-plugin-commit",TBr],["@atls/yarn-plugin-essentials",NBr],["@atls/yarn-plugin-export",nTr],["@atls/yarn-plugin-files",SEr],["@atls/yarn-plugin-format",kkr],["@atls/yarn-plugin-image",Jkr],["@atls/yarn-plugin-library",rxr],["@atls/yarn-plugin-lint",lxr],["@atls/yarn-plugin-release",MGr],["@atls/yarn-plugin-renderer",MFr],["@atls/yarn-plugin-service",hVr],["@atls/yarn-plugin-test",vVr],["@atls/yarn-plugin-tools",GVr],["@atls/yarn-plugin-typescript",PVr],["@atls/yarn-plugin-workspaces",FEr],["@atls/yarn-plugin-ui",rPr],["@atls/yarn-plugin-schematics",fYr],["@yarnpkg/plugin-interactive-tools",gWl],["@yarnpkg/plugin-jsr",AWl],["@yarnpkg/plugin-workspace-tools",dWl],["@yarnpkg/plugin-typescript",pWl],["@yarnpkg/plugin-version",fWl],["@yarnpkg/plugin-essentials",IWl],["@yarnpkg/plugin-catalog",hWl],["@yarnpkg/plugin-compat",mWl],["@yarnpkg/plugin-constraints",CWl],["@yarnpkg/plugin-dlx",_Wl],["@yarnpkg/plugin-exec",yWl],["@yarnpkg/plugin-file",bWl],["@yarnpkg/plugin-git",EWl],["@yarnpkg/plugin-github",SWl],["@yarnpkg/plugin-http",vWl],["@yarnpkg/plugin-init",BWl],["@yarnpkg/plugin-link",wWl],["@yarnpkg/plugin-nm",TWl],["@yarnpkg/plugin-npm",RWl],["@yarnpkg/plugin-npm-cli",NWl],["@yarnpkg/plugin-pack",DWl],["@yarnpkg/plugin-patch",kWl],["@yarnpkg/plugin-pnp",xWl],["@yarnpkg/plugin-pnpm",GWl],["@yarnpkg/plugin-stage",FWl]]),plugins:new Set(["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"])});var a2s={name:"@atls/yarn-cli",version:"1.2.16-atls",private:!0,license:"BSD-3-Clause",type:"module",exports:{"./package.json":"./package.json",".":"./src/index.ts"},main:"src/index.ts",files:["dist"],scripts:{build:"yarn run build:schemaic && yarn run build:clean && yarn run build:version && yarn run build:bundle && yarn run build:fix && yarn run build:dist && yarn run build:version","build:bundle":"builder build bundle --no-git-hash && mv bundles/yarn.js bundles/yarn.mjs","build:clean":"rm -rf dist","build:dist":"mv bundles dist","build:fix":"yarn node patches/cli.patch.mjs","build:schemaic":"yarn workspace @atls/code-schematics prepack","build:version":"yarn node patches/version-postfix-toggle.mjs",fix:"yarn run build:fix",prepack:"yarn run build",postpack:"rm -rf dist"},dependencies:{"@atls/yarn-cli-tools":"workspace:*","@atls/yarn-plugin-badges":"workspace:*","@atls/yarn-plugin-changelog":"workspace:*","@atls/yarn-plugin-check":"workspace:*","@atls/yarn-plugin-checks":"workspace:*","@atls/yarn-plugin-cli-publish":"workspace:*","@atls/yarn-plugin-commit":"workspace:*","@atls/yarn-plugin-essentials":"workspace:*","@atls/yarn-plugin-export":"workspace:*","@atls/yarn-plugin-files":"workspace:*","@atls/yarn-plugin-format":"workspace:*","@atls/yarn-plugin-image":"workspace:*","@atls/yarn-plugin-library":"workspace:*","@atls/yarn-plugin-lint":"workspace:*","@atls/yarn-plugin-release":"workspace:*","@atls/yarn-plugin-renderer":"workspace:*","@atls/yarn-plugin-schematics":"workspace:*","@atls/yarn-plugin-service":"workspace:*","@atls/yarn-plugin-test":"workspace:*","@atls/yarn-plugin-tools":"workspace:*","@atls/yarn-plugin-typescript":"workspace:*","@atls/yarn-plugin-ui":"workspace:*","@atls/yarn-plugin-workspaces":"workspace:*","@yarnpkg/builder":"4.2.0","@yarnpkg/cli":"4.14.1","@yarnpkg/core":"4.7.0","@yarnpkg/fslib":"3.1.5","@yarnpkg/libzip":"3.2.2","@yarnpkg/parsers":"3.0.3","@yarnpkg/plugin-catalog":"1.0.2","@yarnpkg/plugin-compat":"4.0.12","@yarnpkg/plugin-constraints":"4.0.5","@yarnpkg/plugin-dlx":"4.0.2","@yarnpkg/plugin-essentials":"4.5.0","@yarnpkg/plugin-exec":"3.1.0","@yarnpkg/plugin-file":"3.0.2","@yarnpkg/plugin-git":"3.2.0","@yarnpkg/plugin-github":"3.0.2","@yarnpkg/plugin-http":"3.0.3","@yarnpkg/plugin-init":"4.1.2","@yarnpkg/plugin-interactive-tools":"4.1.0","@yarnpkg/plugin-jsr":"1.1.1","@yarnpkg/plugin-link":"3.0.2","@yarnpkg/plugin-nm":"4.0.8","@yarnpkg/plugin-npm":"3.5.0","@yarnpkg/plugin-npm-cli":"4.4.1","@yarnpkg/plugin-pack":"4.0.4","@yarnpkg/plugin-patch":"4.0.3","@yarnpkg/plugin-pnp":"4.1.5","@yarnpkg/plugin-pnpm":"2.1.2","@yarnpkg/plugin-stage":"4.0.2","@yarnpkg/plugin-typescript":"4.1.3","@yarnpkg/plugin-version":"4.2.0","@yarnpkg/plugin-workspace-tools":"4.1.7","@yarnpkg/shell":"4.1.3",clipanion:"4.0.0-rc.2",semver:"7.6.3",typanion:"3.14.0"},"@yarnpkg/builder":{bundles:{standard:["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"]}},raijin:{pack:{exports:{"./package.json":"./package.json",".":{import:"./dist/index.js",types:"./dist/index.d.ts",default:"./dist/index.js"}},main:"dist/index.js",types:"dist/index.d.ts"}}};var c2s=Yqr.npath.toPortablePath(Yqr.npath.resolve(process.argv[1])),Mqr=o2s(a2s["@yarnpkg/builder"].bundles.standard);Mqr.then?Mqr.then(async e=>{(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:e})}):(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:Mqr}); /*! Bundled license information: is-number/index.js: diff --git a/yarn/cli/dist/yarn.mjs b/yarn/cli/dist/yarn.mjs index 71f3d8c56..c80bbb250 100755 --- a/yarn/cli/dist/yarn.mjs +++ b/yarn/cli/dist/yarn.mjs @@ -95,16 +95,16 @@ ${t.map(r=>` `)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}};Ife.FakeFS=hct;var wjt=class extends hct{constructor(){super(Lbn.ppath)}};Ife.BasePortableFakeFS=wjt;function i7s(e){let t=e.match(/\r?\n/g);if(t===null)return r7s.EOL;let r=t.filter(a=>a===`\r `).length,n=t.length-r;return r>n?`\r `:` -`}function Tjt(e,t){return t.replace(/\r?\n/g,i7s(e))}});var Yq=H(mct=>{"use strict";Object.defineProperty(mct,"__esModule",{value:!0});mct.ProxiedFS=void 0;var s7s=hfe(),Rjt=class extends s7s.FakeFS{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};mct.ProxiedFS=Rjt});var Vbn=H(Cct=>{"use strict";Object.defineProperty(Cct,"__esModule",{value:!0});Cct.AliasFS=void 0;var o7s=Yq(),Njt=class extends o7s.ProxiedFS{constructor(t,{baseFs:r,pathUtils:n}){super(n),this.target=t,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};Cct.AliasFS=Njt});var mfe=H(_ct=>{"use strict";Object.defineProperty(_ct,"__esModule",{value:!0});_ct.NodeFS=void 0;var a7s=(Pa(),vi(Va)),c7s=a7s.__importDefault(wt("fs")),l7s=hfe(),ku=L9();function Pbn(e){let t=e;return typeof e.path=="string"&&(t.path=ku.npath.toPortablePath(e.path)),t}var Djt=class extends l7s.BasePortableFakeFS{constructor(t=c7s.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return ku.PortablePath.root}resolve(t){return ku.ppath.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(ku.npath.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(ku.npath.fromPortablePath(t),r):this.realFs.opendirSync(ku.npath.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(ku.npath.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}realpathSync(t){return ku.npath.toPortablePath(this.realFs.realpathSync(ku.npath.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(ku.npath.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(ku.npath.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(ku.npath.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(ku.npath.fromPortablePath(t),r):this.realFs.statSync(ku.npath.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(ku.npath.fromPortablePath(t),r):this.realFs.lstatSync(ku.npath.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(ku.npath.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(ku.npath.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(ku.npath.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(ku.npath.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(ku.npath.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(ku.npath.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(ku.npath.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(ku.npath.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?ku.npath.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?ku.npath.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Pbn)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(ku.npath.toPortablePath)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(Pbn):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(ku.npath.toPortablePath):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r):this.realFs.readdirSync(ku.npath.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}readlinkSync(t){return ku.npath.toPortablePath(this.realFs.readlinkSync(ku.npath.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(ku.npath.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(ku.npath.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(ku.npath.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(ku.npath.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}};_ct.NodeFS=Djt});var Wbn=H(yct=>{"use strict";Object.defineProperty(yct,"__esModule",{value:!0});yct.CwdFS=void 0;var u7s=mfe(),g7s=Yq(),kjt=L9(),xjt=class extends g7s.ProxiedFS{constructor(t,{baseFs:r=new u7s.NodeFS}={}){super(kjt.ppath),this.target=this.pathUtils.normalize(t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?kjt.ppath.normalize(t):this.baseFs.resolve(kjt.ppath.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};yct.CwdFS=xjt});var Mbn=H(Ect=>{"use strict";Object.defineProperty(Ect,"__esModule",{value:!0});Ect.JailFS=void 0;var A7s=mfe(),d7s=Yq(),bct=L9(),Obn=bct.PortablePath.root,Gjt=class extends d7s.ProxiedFS{constructor(t,{baseFs:r=new A7s.NodeFS}={}){super(bct.ppath),this.target=this.pathUtils.resolve(bct.PortablePath.root,t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(bct.PortablePath.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let r=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(Obn,t));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(Obn,this.pathUtils.relative(this.target,t))}};Ect.JailFS=Gjt});var Hbn=H(Sct=>{"use strict";Object.defineProperty(Sct,"__esModule",{value:!0});Sct.LazyFS=void 0;var p7s=Yq(),Fjt=class extends p7s.ProxiedFS{constructor(t,r){super(r),this.instance=null,this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};Sct.LazyFS=Fjt});var Ybn=H(wct=>{"use strict";Object.defineProperty(wct,"__esModule",{value:!0});wct.MountFS=void 0;var f7s=(Pa(),vi(Va)),ISe=wt("fs"),I7s=hfe(),h7s=mfe(),vct=Bjt(),V9=f7s.__importStar(lct()),Bct=L9(),P9=4278190080,Zjt=class extends I7s.BasePortableFakeFS{constructor({baseFs:t=new h7s.NodeFS,filter:r=null,magicByte:n=42,maxOpenFiles:a=1/0,useCache:o=!0,maxAge:l=5e3,typeCheck:A=ISe.constants.S_IFREG,getMountPoint:f,factoryPromise:I,factorySync:C}){if(Math.floor(n)!==n||!(n>1&&n<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super(),this.fdMap=new Map,this.nextFd=3,this.isMount=new Set,this.notMount=new Set,this.realPaths=new Map,this.limitOpenFilesTimeout=null,this.baseFs=t,this.mountInstances=o?new Map:null,this.factoryPromise=I,this.factorySync=C,this.filter=r,this.getMountPoint=f,this.magic=n<<24,this.maxAge=l,this.maxOpenFiles=a,this.typeCheck=A}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.saveAndClose?.(),this.mountInstances.delete(t)}discardAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.discardAndClose?.(),this.mountInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,r){let n=this.nextFd++|this.magic;return this.fdMap.set(n,[t,r]),n}async openPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,r,n),async(a,{subPath:o})=>this.remapFd(a,await a.openPromise(o,r,n)))}openSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,r,n),(a,{subPath:o})=>this.remapFd(a,a.openSync(o,r,n)))}async opendirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,r),async(n,{subPath:a})=>await n.opendirPromise(a,r),{requireSubpath:!1})}opendirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,r),(n,{subPath:a})=>n.opendirSync(a,r),{requireSubpath:!1})}async readPromise(t,r,n,a,o){if((t&P9)!==this.magic)return await this.baseFs.readPromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("read");let[A,f]=l;return await A.readPromise(f,r,n,a,o)}readSync(t,r,n,a,o){if((t&P9)!==this.magic)return this.baseFs.readSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("readSync");let[A,f]=l;return A.readSync(f,r,n,a,o)}async writePromise(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("write");let[A,f]=l;return typeof r=="string"?await A.writePromise(f,r,n):await A.writePromise(f,r,n,a,o)}writeSync(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("writeSync");let[A,f]=l;return typeof r=="string"?A.writeSync(f,r,n):A.writeSync(f,r,n,a,o)}async closePromise(t){if((t&P9)!==this.magic)return await this.baseFs.closePromise(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("close");this.fdMap.delete(t);let[n,a]=r;return await n.closePromise(a)}closeSync(t){if((t&P9)!==this.magic)return this.baseFs.closeSync(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("closeSync");this.fdMap.delete(t);let[n,a]=r;return n.closeSync(a)}createReadStream(t,r){return t===null?this.baseFs.createReadStream(t,r):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,r),(n,{archivePath:a,subPath:o})=>{let l=n.createReadStream(o,r);return l.path=Bct.npath.fromPortablePath(this.pathUtils.join(a,o)),l})}createWriteStream(t,r){return t===null?this.baseFs.createWriteStream(t,r):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,r),(n,{subPath:a})=>n.createWriteStream(a,r))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,await r.realpathPromise(a)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,r.realpathSync(a)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(r,{subPath:n})=>await r.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(r,{subPath:n})=>r.existsSync(n))}async accessPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,r),async(n,{subPath:a})=>await n.accessPromise(a,r))}accessSync(t,r){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,r),(n,{subPath:a})=>n.accessSync(a,r))}async statPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,r),async(n,{subPath:a})=>await n.statPromise(a,r))}statSync(t,r){return this.makeCallSync(t,()=>this.baseFs.statSync(t,r),(n,{subPath:a})=>n.statSync(a,r))}async fstatPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstat");let[a,o]=n;return a.fstatPromise(o,r)}fstatSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstatSync");let[a,o]=n;return a.fstatSync(o,r)}async lstatPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,r),async(n,{subPath:a})=>await n.lstatPromise(a,r))}lstatSync(t,r){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,r),(n,{subPath:a})=>n.lstatSync(a,r))}async fchmodPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmod");let[a,o]=n;return a.fchmodPromise(o,r)}fchmodSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmodSync");let[a,o]=n;return a.fchmodSync(o,r)}async chmodPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,r),async(n,{subPath:a})=>await n.chmodPromise(a,r))}chmodSync(t,r){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,r),(n,{subPath:a})=>n.chmodSync(a,r))}async fchownPromise(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownPromise(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchown");let[o,l]=a;return o.fchownPromise(l,r,n)}fchownSync(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownSync(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchownSync");let[o,l]=a;return o.fchownSync(l,r,n)}async chownPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,r,n),async(a,{subPath:o})=>await a.chownPromise(o,r,n))}chownSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,r,n),(a,{subPath:o})=>a.chownSync(o,r,n))}async renamePromise(t,r){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(t,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:a})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(a,l)}))}renameSync(t,r){return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(t,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:a})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(a,l)}))}async copyFilePromise(t,r,n=0){let a=async(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&await this.existsPromise(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=await o.readFilePromise(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}await A.writeFilePromise(f,I)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(t,r,n),async(o,{subPath:l})=>await a(this.baseFs,t,o,l)),async(o,{subPath:l})=>await this.makeCallPromise(r,async()=>await a(o,l,this.baseFs,r),async(A,{subPath:f})=>o!==A?await a(o,l,A,f):await o.copyFilePromise(l,f,n)))}copyFileSync(t,r,n=0){let a=(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&this.existsSync(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=o.readFileSync(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}A.writeFileSync(f,I)};return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(t,r,n),(o,{subPath:l})=>a(this.baseFs,t,o,l)),(o,{subPath:l})=>this.makeCallSync(r,()=>a(o,l,this.baseFs,r),(A,{subPath:f})=>o!==A?a(o,l,A,f):o.copyFileSync(l,f,n)))}async appendFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,r,n),async(a,{subPath:o})=>await a.appendFilePromise(o,r,n))}appendFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,r,n),(a,{subPath:o})=>a.appendFileSync(o,r,n))}async writeFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,r,n),async(a,{subPath:o})=>await a.writeFilePromise(o,r,n))}writeFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,r,n),(a,{subPath:o})=>a.writeFileSync(o,r,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(r,{subPath:n})=>await r.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(r,{subPath:n})=>r.unlinkSync(n))}async utimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,r,n),async(a,{subPath:o})=>await a.utimesPromise(o,r,n))}utimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,r,n),(a,{subPath:o})=>a.utimesSync(o,r,n))}async lutimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.lutimesPromise(t,r,n),async(a,{subPath:o})=>await a.lutimesPromise(o,r,n))}lutimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.lutimesSync(t,r,n),(a,{subPath:o})=>a.lutimesSync(o,r,n))}async mkdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,r),async(n,{subPath:a})=>await n.mkdirPromise(a,r))}mkdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,r),(n,{subPath:a})=>n.mkdirSync(a,r))}async rmdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,r),async(n,{subPath:a})=>await n.rmdirPromise(a,r))}rmdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,r),(n,{subPath:a})=>n.rmdirSync(a,r))}async rmPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmPromise(t,r),async(n,{subPath:a})=>await n.rmPromise(a,r))}rmSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmSync(t,r),(n,{subPath:a})=>n.rmSync(a,r))}async linkPromise(t,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(t,r),async(n,{subPath:a})=>await n.linkPromise(t,a))}linkSync(t,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(t,r),(n,{subPath:a})=>n.linkSync(t,a))}async symlinkPromise(t,r,n){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(t,r,n),async(a,{subPath:o})=>await a.symlinkPromise(t,o))}symlinkSync(t,r,n){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(t,r,n),(a,{subPath:o})=>a.symlinkSync(t,o))}async readFilePromise(t,r){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,r),async(n,{subPath:a})=>await n.readFilePromise(a,r))}readFileSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,r),(n,{subPath:a})=>n.readFileSync(a,r))}async readdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,r),async(n,{subPath:a})=>await n.readdirPromise(a,r),{requireSubpath:!1})}readdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,r),(n,{subPath:a})=>n.readdirSync(a,r),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(r,{subPath:n})=>await r.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(r,{subPath:n})=>r.readlinkSync(n))}async truncatePromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,r),async(n,{subPath:a})=>await n.truncatePromise(a,r))}truncateSync(t,r){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,r),(n,{subPath:a})=>n.truncateSync(a,r))}async ftruncatePromise(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncatePromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncate");let[a,o]=n;return a.ftruncatePromise(o,r)}ftruncateSync(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncateSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncateSync");let[a,o]=n;return a.ftruncateSync(o,r)}watch(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,r,n),(a,{subPath:o})=>a.watch(o,r,n))}watchFile(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,r,n),()=>(0,vct.watchFile)(this,t,r,n))}unwatchFile(t,r){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,r),()=>(0,vct.unwatchFile)(this,t,r))}async makeCallPromise(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return await r();let o=this.resolve(t),l=this.findMount(o);return l?a&&l.subPath==="/"?await r():await this.getMountPromise(l.archivePath,async A=>await n(A,l)):await r()}makeCallSync(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return r();let o=this.resolve(t),l=this.findMount(o);return!l||a&&l.subPath==="/"?r():this.getMountSync(l.archivePath,A=>n(A,l))}findMount(t){if(this.filter&&!this.filter.test(t))return null;let r="";for(;;){let n=t.substring(r.length),a=this.getMountPoint(n,r);if(!a)return null;if(r=this.pathUtils.join(r,a),!this.isMount.has(r)){if(this.notMount.has(r))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(r).mode&ISe.constants.S_IFMT)!==this.typeCheck){this.notMount.add(r);continue}}catch{return null}this.isMount.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Bct.PortablePath.root,t.substring(r.length))}}}limitOpenFiles(t){if(this.mountInstances===null)return;let r=Date.now(),n=r+this.maxAge,a=t===null?0:this.mountInstances.size-t;for(let[o,{childFs:l,expiresAt:A,refCount:f}]of this.mountInstances.entries())if(!(f!==0||l.hasOpenFileHandles?.())){if(r>=A){l.saveAndClose?.(),this.mountInstances.delete(o),a-=1;continue}else if(t===null||a<=0){n=A;break}l.saveAndClose?.(),this.mountInstances.delete(o),a-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.mountInstances.size>0||t!==null)&&isFinite(n)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-r).unref())}async getMountPromise(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);if(!n){let a=await this.factoryPromise(this.baseFs,t);n=this.mountInstances.get(t),n||(n={childFs:a(),expiresAt:0,refCount:0})}this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,t))();try{return await r(n)}finally{n.saveAndClose?.()}}}getMountSync(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);return n||(n={childFs:this.factorySync(this.baseFs,t),expiresAt:0,refCount:0}),this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,r(n.childFs)}else{let n=this.factorySync(this.baseFs,t);try{return r(n)}finally{n.saveAndClose?.()}}}};wct.MountFS=Zjt});var Qbn=H(Tct=>{"use strict";Object.defineProperty(Tct,"__esModule",{value:!0});Tct.NoFS=void 0;var m7s=hfe(),C7s=L9(),Pg=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),KOe=class extends m7s.FakeFS{constructor(){super(C7s.ppath)}getExtractHint(){throw Pg()}getRealPath(){throw Pg()}resolve(){throw Pg()}async openPromise(){throw Pg()}openSync(){throw Pg()}async opendirPromise(){throw Pg()}opendirSync(){throw Pg()}async readPromise(){throw Pg()}readSync(){throw Pg()}async writePromise(){throw Pg()}writeSync(){throw Pg()}async closePromise(){throw Pg()}closeSync(){throw Pg()}createWriteStream(){throw Pg()}createReadStream(){throw Pg()}async realpathPromise(){throw Pg()}realpathSync(){throw Pg()}async readdirPromise(){throw Pg()}readdirSync(){throw Pg()}async existsPromise(t){throw Pg()}existsSync(t){throw Pg()}async accessPromise(){throw Pg()}accessSync(){throw Pg()}async statPromise(){throw Pg()}statSync(){throw Pg()}async fstatPromise(t){throw Pg()}fstatSync(t){throw Pg()}async lstatPromise(t){throw Pg()}lstatSync(t){throw Pg()}async fchmodPromise(){throw Pg()}fchmodSync(){throw Pg()}async chmodPromise(){throw Pg()}chmodSync(){throw Pg()}async fchownPromise(){throw Pg()}fchownSync(){throw Pg()}async chownPromise(){throw Pg()}chownSync(){throw Pg()}async mkdirPromise(){throw Pg()}mkdirSync(){throw Pg()}async rmdirPromise(){throw Pg()}rmdirSync(){throw Pg()}async rmPromise(){throw Pg()}rmSync(){throw Pg()}async linkPromise(){throw Pg()}linkSync(){throw Pg()}async symlinkPromise(){throw Pg()}symlinkSync(){throw Pg()}async renamePromise(){throw Pg()}renameSync(){throw Pg()}async copyFilePromise(){throw Pg()}copyFileSync(){throw Pg()}async appendFilePromise(){throw Pg()}appendFileSync(){throw Pg()}async writeFilePromise(){throw Pg()}writeFileSync(){throw Pg()}async unlinkPromise(){throw Pg()}unlinkSync(){throw Pg()}async utimesPromise(){throw Pg()}utimesSync(){throw Pg()}async lutimesPromise(){throw Pg()}lutimesSync(){throw Pg()}async readFilePromise(){throw Pg()}readFileSync(){throw Pg()}async readlinkPromise(){throw Pg()}readlinkSync(){throw Pg()}async truncatePromise(){throw Pg()}truncateSync(){throw Pg()}async ftruncatePromise(t,r){throw Pg()}ftruncateSync(t,r){throw Pg()}watch(){throw Pg()}watchFile(){throw Pg()}unwatchFile(){throw Pg()}};Tct.NoFS=KOe;KOe.instance=new KOe});var Xbn=H(Rct=>{"use strict";Object.defineProperty(Rct,"__esModule",{value:!0});Rct.PosixFS=void 0;var _7s=Yq(),Ljt=L9(),Vjt=class extends _7s.ProxiedFS{constructor(t){super(Ljt.npath),this.baseFs=t}mapFromBase(t){return Ljt.npath.fromPortablePath(t)}mapToBase(t){return Ljt.npath.toPortablePath(t)}};Rct.PosixFS=Vjt});var Jbn=H(Nct=>{"use strict";Object.defineProperty(Nct,"__esModule",{value:!0});Nct.VirtualFS=void 0;var y7s=mfe(),b7s=Yq(),$Q=L9(),E7s=/^[0-9]+$/,Pjt=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,S7s=/^([^/]+-)?[a-f0-9]+$/,Wjt=class e extends b7s.ProxiedFS{static makeVirtualPath(t,r,n){if($Q.ppath.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!$Q.ppath.basename(r).match(S7s))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=$Q.ppath.relative($Q.ppath.dirname(t),n).split("/"),l=0;for(;l{"use strict";Object.defineProperty(Dct,"__esModule",{value:!0});Dct.NodePathFS=void 0;var v7s=(Pa(),vi(Va)),Ubn=v7s.__importDefault(wt("buffer")),B7s=wt("url"),w7s=wt("util"),T7s=Yq(),R7s=L9(),Ojt=class extends T7s.ProxiedFS{constructor(t){super(R7s.npath),this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof URL)return(0,B7s.fileURLToPath)(t);if(Buffer.isBuffer(t)){let r=t.toString();if(!N7s(t,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,w7s.inspect)(t)}`)}};Dct.NodePathFS=Ojt;function N7s(e,t){return typeof Ubn.default.isUtf8<"u"?Ubn.default.isUtf8(e):Buffer.byteLength(t)===e.byteLength}});var eEn=H(Gct=>{"use strict";var jbn,zbn,qbn,$bn;Object.defineProperty(Gct,"__esModule",{value:!0});Gct.FileHandle=void 0;var D7s=wt("readline"),yZ=Symbol("kBaseFs"),zse=Symbol("kFd"),qse=Symbol("kClosePromise"),kct=Symbol("kCloseResolve"),xct=Symbol("kCloseReject"),hSe=Symbol("kRefs"),eX=Symbol("kRef"),tX=Symbol("kUnref"),Mjt=class{constructor(t,r){this[jbn]=1,this[zbn]=void 0,this[qbn]=void 0,this[$bn]=void 0,this[yZ]=r,this[zse]=t}get fd(){return this[zse]}async appendFile(t,r){try{this[eX](this.appendFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;return await this[yZ].appendFilePromise(this.fd,t,n?{encoding:n}:void 0)}finally{this[tX]()}}async chown(t,r){try{return this[eX](this.chown),await this[yZ].fchownPromise(this.fd,t,r)}finally{this[tX]()}}async chmod(t){try{return this[eX](this.chmod),await this[yZ].fchmodPromise(this.fd,t)}finally{this[tX]()}}createReadStream(t){return this[yZ].createReadStream(null,{...t,fd:this.fd})}createWriteStream(t){return this[yZ].createWriteStream(null,{...t,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(t,r,n,a){try{this[eX](this.read);let o,l;return ArrayBuffer.isView(t)?typeof r=="object"&&r!==null?(o=t,l=r?.offset??0,n=r?.length??o.byteLength-l,a=r?.position??null):(o=t,l=r??0,n??=0):(o=t?.buffer??Buffer.alloc(16384),l=t?.offset??0,n=t?.length??o.byteLength-l,a=t?.position??null),n===0?{bytesRead:n,buffer:o}:{bytesRead:await this[yZ].readPromise(this.fd,Buffer.isBuffer(o)?o:Buffer.from(o.buffer,o.byteOffset,o.byteLength),l,n,a),buffer:o}}finally{this[tX]()}}async readFile(t){try{this[eX](this.readFile);let r=(typeof t=="string"?t:t?.encoding)??void 0;return await this[yZ].readFilePromise(this.fd,r)}finally{this[tX]()}}readLines(t){return(0,D7s.createInterface)({input:this.createReadStream(t),crlfDelay:1/0})}async stat(t){try{return this[eX](this.stat),await this[yZ].fstatPromise(this.fd,t)}finally{this[tX]()}}async truncate(t){try{return this[eX](this.truncate),await this[yZ].ftruncatePromise(this.fd,t)}finally{this[tX]()}}utimes(t,r){throw new Error("Method not implemented.")}async writeFile(t,r){try{this[eX](this.writeFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;await this[yZ].writeFilePromise(this.fd,t,n)}finally{this[tX]()}}async write(...t){try{if(this[eX](this.write),ArrayBuffer.isView(t[0])){let[r,n,a,o]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n??void 0,a??void 0,o??void 0),buffer:r}}else{let[r,n,a]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n,a),buffer:r}}}finally{this[tX]()}}async writev(t,r){try{this[eX](this.writev);let n=0;if(typeof r<"u")for(let a of t){let o=await this.write(a,void 0,void 0,r);n+=o.bytesWritten,r+=o.bytesWritten}else for(let a of t){let o=await this.write(a);n+=o.bytesWritten}return{buffers:t,bytesWritten:n}}finally{this[tX]()}}readv(t,r){throw new Error("Method not implemented.")}close(){if(this[zse]===-1)return Promise.resolve();if(this[qse])return this[qse];if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[qse]=this[yZ].closePromise(t).finally(()=>{this[qse]=void 0})}else this[qse]=new Promise((t,r)=>{this[kct]=t,this[xct]=r}).finally(()=>{this[qse]=void 0,this[xct]=void 0,this[kct]=void 0});return this[qse]}[(jbn=hSe,zbn=qse,qbn=kct,$bn=xct,eX)](t){if(this[zse]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=t.name,r}this[hSe]++}[tX](){if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[yZ].closePromise(t).then(this[kct],this[xct])}}};Gct.FileHandle=Mjt});var iEn=H(Fct=>{"use strict";Object.defineProperty(Fct,"__esModule",{value:!0});Fct.patchFs=nEn;Fct.extendFs=G7s;var jOe=wt("util"),k7s=Kbn(),tEn=eEn(),x7s=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),rEn=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function nEn(e,t){t=new k7s.NodePathFS(t);let r=(n,a,o)=>{let l=n[a];n[a]=o,typeof l?.[jOe.promisify.custom]<"u"&&(o[jOe.promisify.custom]=l[jOe.promisify.custom])};{r(e,"exists",(n,...a)=>{let l=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{t.existsPromise(n).then(A=>{l(A)},()=>{l(!1)})})}),r(e,"read",(...n)=>{let[a,o,l,A,f,I]=n;if(n.length<=3){let C={};n.length<3?I=n[1]:(C=n[1],I=n[2]),{buffer:o=Buffer.alloc(16384),offset:l=0,length:A=o.byteLength,position:f}=C}if(l==null&&(l=0),A|=0,A===0){process.nextTick(()=>{I(null,0,o)});return}f==null&&(f=-1),process.nextTick(()=>{t.readPromise(a,o,l,A,f).then(C=>{I(null,C,o)},C=>{I(C,0,o)})})});for(let n of rEn){let a=n.replace(/Promise$/,"");if(typeof e[a]>"u")continue;let o=t[n];if(typeof o>"u")continue;r(e,a,(...A)=>{let I=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{o.apply(t,A).then(C=>{I(null,C)},C=>{I(C)})})})}e.realpath.native=e.realpath}{r(e,"existsSync",n=>{try{return t.existsSync(n)}catch{return!1}}),r(e,"readSync",(...n)=>{let[a,o,l,A,f]=n;return n.length<=3&&({offset:l=0,length:A=o.byteLength,position:f}=n[2]||{}),l==null&&(l=0),A|=0,A===0?0:(f==null&&(f=-1),t.readSync(a,o,l,A,f))});for(let n of x7s){let a=n;if(typeof e[a]>"u")continue;let o=t[n];typeof o>"u"||r(e,a,o.bind(t))}e.realpathSync.native=e.realpathSync}{let n=e.promises;for(let a of rEn){let o=a.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let l=t[a];typeof l>"u"||a!=="open"&&r(n,o,(A,...f)=>A instanceof tEn.FileHandle?A[o].apply(A,f):l.call(t,A,...f))}r(n,"open",async(...a)=>{let o=await t.openPromise(...a);return new tEn.FileHandle(o,t)})}e.read[jOe.promisify.custom]=async(n,a,...o)=>({bytesRead:await t.readPromise(n,a,...o),buffer:a}),e.write[jOe.promisify.custom]=async(n,a,...o)=>({bytesWritten:await t.writePromise(n,a,...o),buffer:a})}function G7s(e,t){let r=Object.create(e);return nEn(r,t),r}});var aEn=H($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});$se.xfs=void 0;var F7s=(Pa(),vi(Va)),Z7s=F7s.__importDefault(wt("os")),L7s=mfe(),zOe=L9();function sEn(e){let t=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${e}${t}`}var rX=new Set,Hjt=null;function oEn(){if(Hjt)return Hjt;let e=zOe.npath.toPortablePath(Z7s.default.tmpdir()),t=$se.xfs.realpathSync(e);return process.once("exit",()=>{$se.xfs.rmtempSync()}),Hjt={tmpdir:e,realTmpdir:t}}$se.xfs=Object.assign(new L7s.NodeFS,{detachTemp(e){rX.delete(e)},mktempSync(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{this.mkdirSync(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return e(a)}finally{if(rX.has(a)){rX.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{await this.mkdirPromise(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return await e(a)}finally{if(rX.has(a)){rX.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(rX.values()).map(async e=>{try{await $se.xfs.removePromise(e,{maxRetries:0}),rX.delete(e)}catch{}}))},rmtempSync(){for(let e of rX)try{$se.xfs.removeSync(e),rX.delete(e)}catch{}}})});var no=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.xfs=md.extendFs=md.patchFs=md.VirtualFS=md.ProxiedFS=md.PosixFS=md.NodeFS=md.NoFS=md.MountFS=md.LazyFS=md.JailFS=md.CwdFS=md.BasePortableFakeFS=md.FakeFS=md.AliasFS=md.ppath=md.npath=md.Filename=md.PortablePath=md.normalizeLineEndings=md.unwatchAllFiles=md.unwatchFile=md.watchFile=md.CustomDir=md.opendir=md.setupCopyIndex=md.statUtils=md.errors=md.constants=void 0;var Yjt=(Pa(),vi(Va)),V7s=Yjt.__importStar(cct());md.constants=V7s;var P7s=Yjt.__importStar(lct());md.errors=P7s;var W7s=Yjt.__importStar(_jt());md.statUtils=W7s;var O7s=Ejt();Object.defineProperty(md,"setupCopyIndex",{enumerable:!0,get:function(){return O7s.setupCopyIndex}});var cEn=Gbn();Object.defineProperty(md,"opendir",{enumerable:!0,get:function(){return cEn.opendir}});Object.defineProperty(md,"CustomDir",{enumerable:!0,get:function(){return cEn.CustomDir}});var Qjt=Bjt();Object.defineProperty(md,"watchFile",{enumerable:!0,get:function(){return Qjt.watchFile}});Object.defineProperty(md,"unwatchFile",{enumerable:!0,get:function(){return Qjt.unwatchFile}});Object.defineProperty(md,"unwatchAllFiles",{enumerable:!0,get:function(){return Qjt.unwatchAllFiles}});var M7s=hfe();Object.defineProperty(md,"normalizeLineEndings",{enumerable:!0,get:function(){return M7s.normalizeLineEndings}});var lEn=L9();Object.defineProperty(md,"PortablePath",{enumerable:!0,get:function(){return lEn.PortablePath}});Object.defineProperty(md,"Filename",{enumerable:!0,get:function(){return lEn.Filename}});var uEn=L9();Object.defineProperty(md,"npath",{enumerable:!0,get:function(){return uEn.npath}});Object.defineProperty(md,"ppath",{enumerable:!0,get:function(){return uEn.ppath}});var H7s=Vbn();Object.defineProperty(md,"AliasFS",{enumerable:!0,get:function(){return H7s.AliasFS}});var gEn=hfe();Object.defineProperty(md,"FakeFS",{enumerable:!0,get:function(){return gEn.FakeFS}});Object.defineProperty(md,"BasePortableFakeFS",{enumerable:!0,get:function(){return gEn.BasePortableFakeFS}});var Y7s=Wbn();Object.defineProperty(md,"CwdFS",{enumerable:!0,get:function(){return Y7s.CwdFS}});var Q7s=Mbn();Object.defineProperty(md,"JailFS",{enumerable:!0,get:function(){return Q7s.JailFS}});var X7s=Hbn();Object.defineProperty(md,"LazyFS",{enumerable:!0,get:function(){return X7s.LazyFS}});var J7s=Ybn();Object.defineProperty(md,"MountFS",{enumerable:!0,get:function(){return J7s.MountFS}});var U7s=Qbn();Object.defineProperty(md,"NoFS",{enumerable:!0,get:function(){return U7s.NoFS}});var K7s=mfe();Object.defineProperty(md,"NodeFS",{enumerable:!0,get:function(){return K7s.NodeFS}});var j7s=Xbn();Object.defineProperty(md,"PosixFS",{enumerable:!0,get:function(){return j7s.PosixFS}});var z7s=Yq();Object.defineProperty(md,"ProxiedFS",{enumerable:!0,get:function(){return z7s.ProxiedFS}});var q7s=Jbn();Object.defineProperty(md,"VirtualFS",{enumerable:!0,get:function(){return q7s.VirtualFS}});var AEn=iEn();Object.defineProperty(md,"patchFs",{enumerable:!0,get:function(){return AEn.patchFs}});Object.defineProperty(md,"extendFs",{enumerable:!0,get:function(){return AEn.extendFs}});var $7s=aEn();Object.defineProperty(md,"xfs",{enumerable:!0,get:function(){return $7s.xfs}})});var hEn=H((p3l,IEn)=>{IEn.exports=fEn;fEn.sync=tzs;var dEn=wt("fs");function ezs(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{yEn.exports=CEn;CEn.sync=rzs;var mEn=wt("fs");function CEn(e,t,r){mEn.stat(e,function(n,a){r(n,n?!1:_En(a,t))})}function rzs(e,t){return _En(mEn.statSync(e),t)}function _En(e,t){return e.isFile()&&nzs(e,t)}function nzs(e,t){var r=e.mode,n=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),l=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),f=parseInt("010",8),I=parseInt("001",8),C=A|f,b=r&I||r&f&&a===l||r&A&&n===o||r&C&&o===0;return b}});var SEn=H((h3l,EEn)=>{var I3l=wt("fs"),Zct;process.platform==="win32"||global.TESTING_WINDOWS?Zct=hEn():Zct=bEn();EEn.exports=Xjt;Xjt.sync=izs;function Xjt(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,a){Xjt(e,t||{},function(o,l){o?a(o):n(l)})})}Zct(e,t||{},function(n,a){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,a=!1),r(n,a)})}function izs(e,t){try{return Zct.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Jjt=H((m3l,NEn)=>{var mSe=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",vEn=wt("path"),szs=mSe?";":":",BEn=SEn(),wEn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),TEn=(e,t)=>{let r=t.colon||szs,n=e.match(/\//)||mSe&&e.match(/\\/)?[""]:[...mSe?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],a=mSe?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=mSe?a.split(r):[""];return mSe&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:a}},REn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:a,pathExtExe:o}=TEn(e,t),l=[],A=I=>new Promise((C,b)=>{if(I===n.length)return t.all&&l.length?C(l):b(wEn(e));let E=n[I],N=/^".*"$/.test(E)?E.slice(1,-1):E,B=vEn.join(N,e),F=!N&&/^\.[\\\/]/.test(e)?e.slice(0,2)+B:B;C(f(F,I,0))}),f=(I,C,b)=>new Promise((E,N)=>{if(b===a.length)return E(A(C+1));let B=a[b];BEn(I+B,{pathExt:o},(F,Q)=>{if(!F&&Q)if(t.all)l.push(I+B);else return E(I+B);return E(f(I,C,b+1))})});return r?A(0).then(I=>r(null,I),r):A(0)},ozs=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:a}=TEn(e,t),o=[];for(let l=0;l{"use strict";var DEn=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ujt.exports=DEn;Ujt.exports.default=DEn});var FEn=H((_3l,GEn)=>{"use strict";var kEn=wt("path"),azs=Jjt(),czs=Kjt();function xEn(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=azs.sync(e.command,{path:r[czs({env:r})],pathExt:t?kEn.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=kEn.resolve(a?e.options.cwd:"",l)),l}function lzs(e){return xEn(e)||xEn(e,!0)}GEn.exports=lzs});var ZEn=H((y3l,zjt)=>{"use strict";var jjt=/([()\][%!^"`<>&|;, *?])/g;function uzs(e){return e=e.replace(jjt,"^$1"),e}function gzs(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(jjt,"^$1"),t&&(e=e.replace(jjt,"^$1")),e}zjt.exports.command=uzs;zjt.exports.argument=gzs});var VEn=H((b3l,LEn)=>{"use strict";LEn.exports=/^#!(.*)/});var qjt=H((E3l,PEn)=>{"use strict";var Azs=VEn();PEn.exports=(e="")=>{let t=e.match(Azs);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?n:n?`${a} ${n}`:a}});var OEn=H((S3l,WEn)=>{"use strict";var $jt=wt("fs"),dzs=qjt();function pzs(e){let r=Buffer.alloc(150),n;try{n=$jt.openSync(e,"r"),$jt.readSync(n,r,0,150,0),$jt.closeSync(n)}catch{}return dzs(r.toString())}WEn.exports=pzs});var QEn=H((v3l,YEn)=>{"use strict";var fzs=wt("path"),MEn=FEn(),HEn=ZEn(),Izs=OEn(),hzs=process.platform==="win32",mzs=/\.(?:com|exe)$/i,Czs=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function _zs(e){e.file=MEn(e);let t=e.file&&Izs(e.file);return t?(e.args.unshift(e.file),e.command=t,MEn(e)):e.file}function yzs(e){if(!hzs)return e;let t=_zs(e),r=!mzs.test(t);if(e.options.forceShell||r){let n=Czs.test(t);e.command=fzs.normalize(e.command),e.command=HEn.command(e.command),e.args=e.args.map(o=>HEn.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function bzs(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:yzs(n)}YEn.exports=bzs});var UEn=H((B3l,JEn)=>{"use strict";var e6t=process.platform==="win32";function t6t(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Ezs(e,t){if(!e6t)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=XEn(a,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function XEn(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawn"):null}function Szs(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawnSync"):null}JEn.exports={hookChildProcess:Ezs,verifyENOENT:XEn,verifyENOENTSync:Szs,notFoundError:t6t}});var Lct=H((w3l,CSe)=>{"use strict";var KEn=wt("child_process"),r6t=QEn(),n6t=UEn();function jEn(e,t,r){let n=r6t(e,t,r),a=KEn.spawn(n.command,n.args,n.options);return n6t.hookChildProcess(a,n),a}function vzs(e,t,r){let n=r6t(e,t,r),a=KEn.spawnSync(n.command,n.args,n.options);return a.error=a.error||n6t.verifyENOENTSync(a.status,n),a}CSe.exports=jEn;CSe.exports.spawn=jEn;CSe.exports.sync=vzs;CSe.exports._parse=r6t;CSe.exports._enoent=n6t});var qEn=H((T3l,zEn)=>{"use strict";function Bzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Cfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Cfe)}Bzs(Cfe,Error);Cfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b>",_n=ca(">>",!1),ke=">&",jt=ca(">&",!1),Fn=">",Nn=ca(">",!1),Hi="<<<",po=ca("<<<",!1),Vr="<&",xi=ca("<&",!1),io="<",ga=ca("<",!1),Ya=function(ut){return{type:"argument",segments:[].concat(...ut)}},Gc=function(ut){return ut},cl="$'",Sc=ca("$'",!1),Hr="'",Wr=ca("'",!1),Ft=function(ut){return[{type:"text",text:ut}]},zr='""',Rn=ca('""',!1),Or=function(){return{type:"text",text:""}},Qi='"',ps=ca('"',!1),yo=function(ut){return ut},bo=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!0}},Qa=function(ut){return{type:"shell",shell:ut,quoted:!0}},gc=function(ut){return{type:"variable",...ut,quoted:!0}},Cg=function(ut){return{type:"text",text:ut}},Nc=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!1}},iA=function(ut){return{type:"shell",shell:ut,quoted:!1}},ma=function(ut){return{type:"variable",...ut,quoted:!1}},vu=function(ut){return{type:"glob",pattern:ut}},li=/^[^']/,Ei=Bl(["'"],!0,!1),Ps=function(ut){return ut.join("")},Xa=/^[^$"]/,ac=Bl(["$",'"'],!0,!1),Yl=`\\ +`}function Tjt(e,t){return t.replace(/\r?\n/g,i7s(e))}});var Yq=H(mct=>{"use strict";Object.defineProperty(mct,"__esModule",{value:!0});mct.ProxiedFS=void 0;var s7s=hfe(),Rjt=class extends s7s.FakeFS{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};mct.ProxiedFS=Rjt});var Vbn=H(Cct=>{"use strict";Object.defineProperty(Cct,"__esModule",{value:!0});Cct.AliasFS=void 0;var o7s=Yq(),Njt=class extends o7s.ProxiedFS{constructor(t,{baseFs:r,pathUtils:n}){super(n),this.target=t,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(t){return t}mapToBase(t){return t}};Cct.AliasFS=Njt});var mfe=H(_ct=>{"use strict";Object.defineProperty(_ct,"__esModule",{value:!0});_ct.NodeFS=void 0;var a7s=(Pa(),vi(Va)),c7s=a7s.__importDefault(wt("fs")),l7s=hfe(),ku=L9();function Pbn(e){let t=e;return typeof e.path=="string"&&(t.path=ku.npath.toPortablePath(e.path)),t}var Djt=class extends l7s.BasePortableFakeFS{constructor(t=c7s.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return ku.PortablePath.root}resolve(t){return ku.ppath.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(ku.npath.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(ku.npath.fromPortablePath(t),r):this.realFs.opendirSync(ku.npath.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?ku.npath.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(ku.npath.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}realpathSync(t){return ku.npath.toPortablePath(this.realFs.realpathSync(ku.npath.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(ku.npath.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(ku.npath.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(ku.npath.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(ku.npath.fromPortablePath(t),r):this.realFs.statSync(ku.npath.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(ku.npath.fromPortablePath(t),r):this.realFs.lstatSync(ku.npath.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(ku.npath.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(ku.npath.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?ku.npath.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(ku.npath.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(ku.npath.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(ku.npath.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(ku.npath.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(ku.npath.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(ku.npath.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(ku.npath.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(ku.npath.fromPortablePath(t),ku.npath.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(ku.npath.fromPortablePath(t.replace(/\/+$/,"")),ku.npath.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?ku.npath.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?ku.npath.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Pbn)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(ku.npath.toPortablePath)),a)):this.realFs.readdir(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(ku.npath.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(Pbn):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r).map(ku.npath.toPortablePath):this.realFs.readdirSync(ku.npath.fromPortablePath(t),r):this.realFs.readdirSync(ku.npath.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(ku.npath.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>ku.npath.toPortablePath(r))}readlinkSync(t){return ku.npath.toPortablePath(this.realFs.readlinkSync(ku.npath.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(ku.npath.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(ku.npath.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(ku.npath.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(ku.npath.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(ku.npath.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}};_ct.NodeFS=Djt});var Wbn=H(yct=>{"use strict";Object.defineProperty(yct,"__esModule",{value:!0});yct.CwdFS=void 0;var u7s=mfe(),g7s=Yq(),kjt=L9(),xjt=class extends g7s.ProxiedFS{constructor(t,{baseFs:r=new u7s.NodeFS}={}){super(kjt.ppath),this.target=this.pathUtils.normalize(t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(t){return this.pathUtils.isAbsolute(t)?kjt.ppath.normalize(t):this.baseFs.resolve(kjt.ppath.join(this.target,t))}mapFromBase(t){return t}mapToBase(t){return this.pathUtils.isAbsolute(t)?t:this.pathUtils.join(this.target,t)}};yct.CwdFS=xjt});var Mbn=H(Ect=>{"use strict";Object.defineProperty(Ect,"__esModule",{value:!0});Ect.JailFS=void 0;var A7s=mfe(),d7s=Yq(),bct=L9(),Obn=bct.PortablePath.root,Gjt=class extends d7s.ProxiedFS{constructor(t,{baseFs:r=new A7s.NodeFS}={}){super(bct.ppath),this.target=this.pathUtils.resolve(bct.PortablePath.root,t),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(bct.PortablePath.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(t){let r=this.pathUtils.normalize(t);if(this.pathUtils.isAbsolute(t))return this.pathUtils.resolve(this.target,this.pathUtils.relative(Obn,t));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${t}) would escape the jail`);return this.pathUtils.resolve(this.target,t)}mapFromBase(t){return this.pathUtils.resolve(Obn,this.pathUtils.relative(this.target,t))}};Ect.JailFS=Gjt});var Hbn=H(Sct=>{"use strict";Object.defineProperty(Sct,"__esModule",{value:!0});Sct.LazyFS=void 0;var p7s=Yq(),Fjt=class extends p7s.ProxiedFS{constructor(t,r){super(r),this.instance=null,this.factory=t}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(t){this.instance=t}mapFromBase(t){return t}mapToBase(t){return t}};Sct.LazyFS=Fjt});var Ybn=H(wct=>{"use strict";Object.defineProperty(wct,"__esModule",{value:!0});wct.MountFS=void 0;var f7s=(Pa(),vi(Va)),ISe=wt("fs"),I7s=hfe(),h7s=mfe(),vct=Bjt(),V9=f7s.__importStar(lct()),Bct=L9(),P9=4278190080,Zjt=class extends I7s.BasePortableFakeFS{constructor({baseFs:t=new h7s.NodeFS,filter:r=null,magicByte:n=42,maxOpenFiles:a=1/0,useCache:o=!0,maxAge:l=5e3,typeCheck:A=ISe.constants.S_IFREG,getMountPoint:f,factoryPromise:I,factorySync:C}){if(Math.floor(n)!==n||!(n>1&&n<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super(),this.fdMap=new Map,this.nextFd=3,this.isMount=new Set,this.notMount=new Set,this.realPaths=new Map,this.limitOpenFilesTimeout=null,this.baseFs=t,this.mountInstances=o?new Map:null,this.factoryPromise=I,this.factorySync=C,this.filter=r,this.getMountPoint=f,this.magic=n<<24,this.maxAge=l,this.maxOpenFiles=a,this.typeCheck=A}getExtractHint(t){return this.baseFs.getExtractHint(t)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.saveAndClose?.(),this.mountInstances.delete(t)}discardAndClose(){if((0,vct.unwatchAllFiles)(this),this.mountInstances)for(let[t,{childFs:r}]of this.mountInstances.entries())r.discardAndClose?.(),this.mountInstances.delete(t)}resolve(t){return this.baseFs.resolve(t)}remapFd(t,r){let n=this.nextFd++|this.magic;return this.fdMap.set(n,[t,r]),n}async openPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.openPromise(t,r,n),async(a,{subPath:o})=>this.remapFd(a,await a.openPromise(o,r,n)))}openSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.openSync(t,r,n),(a,{subPath:o})=>this.remapFd(a,a.openSync(o,r,n)))}async opendirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.opendirPromise(t,r),async(n,{subPath:a})=>await n.opendirPromise(a,r),{requireSubpath:!1})}opendirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.opendirSync(t,r),(n,{subPath:a})=>n.opendirSync(a,r),{requireSubpath:!1})}async readPromise(t,r,n,a,o){if((t&P9)!==this.magic)return await this.baseFs.readPromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("read");let[A,f]=l;return await A.readPromise(f,r,n,a,o)}readSync(t,r,n,a,o){if((t&P9)!==this.magic)return this.baseFs.readSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("readSync");let[A,f]=l;return A.readSync(f,r,n,a,o)}async writePromise(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("write");let[A,f]=l;return typeof r=="string"?await A.writePromise(f,r,n):await A.writePromise(f,r,n,a,o)}writeSync(t,r,n,a,o){if((t&P9)!==this.magic)return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o);let l=this.fdMap.get(t);if(typeof l>"u")throw V9.EBADF("writeSync");let[A,f]=l;return typeof r=="string"?A.writeSync(f,r,n):A.writeSync(f,r,n,a,o)}async closePromise(t){if((t&P9)!==this.magic)return await this.baseFs.closePromise(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("close");this.fdMap.delete(t);let[n,a]=r;return await n.closePromise(a)}closeSync(t){if((t&P9)!==this.magic)return this.baseFs.closeSync(t);let r=this.fdMap.get(t);if(typeof r>"u")throw V9.EBADF("closeSync");this.fdMap.delete(t);let[n,a]=r;return n.closeSync(a)}createReadStream(t,r){return t===null?this.baseFs.createReadStream(t,r):this.makeCallSync(t,()=>this.baseFs.createReadStream(t,r),(n,{archivePath:a,subPath:o})=>{let l=n.createReadStream(o,r);return l.path=Bct.npath.fromPortablePath(this.pathUtils.join(a,o)),l})}createWriteStream(t,r){return t===null?this.baseFs.createWriteStream(t,r):this.makeCallSync(t,()=>this.baseFs.createWriteStream(t,r),(n,{subPath:a})=>n.createWriteStream(a,r))}async realpathPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.realpathPromise(t),async(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=await this.baseFs.realpathPromise(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,await r.realpathPromise(a)))})}realpathSync(t){return this.makeCallSync(t,()=>this.baseFs.realpathSync(t),(r,{archivePath:n,subPath:a})=>{let o=this.realPaths.get(n);return typeof o>"u"&&(o=this.baseFs.realpathSync(n),this.realPaths.set(n,o)),this.pathUtils.join(o,this.pathUtils.relative(Bct.PortablePath.root,r.realpathSync(a)))})}async existsPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.existsPromise(t),async(r,{subPath:n})=>await r.existsPromise(n))}existsSync(t){return this.makeCallSync(t,()=>this.baseFs.existsSync(t),(r,{subPath:n})=>r.existsSync(n))}async accessPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.accessPromise(t,r),async(n,{subPath:a})=>await n.accessPromise(a,r))}accessSync(t,r){return this.makeCallSync(t,()=>this.baseFs.accessSync(t,r),(n,{subPath:a})=>n.accessSync(a,r))}async statPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.statPromise(t,r),async(n,{subPath:a})=>await n.statPromise(a,r))}statSync(t,r){return this.makeCallSync(t,()=>this.baseFs.statSync(t,r),(n,{subPath:a})=>n.statSync(a,r))}async fstatPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstat");let[a,o]=n;return a.fstatPromise(o,r)}fstatSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fstatSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fstatSync");let[a,o]=n;return a.fstatSync(o,r)}async lstatPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.lstatPromise(t,r),async(n,{subPath:a})=>await n.lstatPromise(a,r))}lstatSync(t,r){return this.makeCallSync(t,()=>this.baseFs.lstatSync(t,r),(n,{subPath:a})=>n.lstatSync(a,r))}async fchmodPromise(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodPromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmod");let[a,o]=n;return a.fchmodPromise(o,r)}fchmodSync(t,r){if((t&P9)!==this.magic)return this.baseFs.fchmodSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("fchmodSync");let[a,o]=n;return a.fchmodSync(o,r)}async chmodPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.chmodPromise(t,r),async(n,{subPath:a})=>await n.chmodPromise(a,r))}chmodSync(t,r){return this.makeCallSync(t,()=>this.baseFs.chmodSync(t,r),(n,{subPath:a})=>n.chmodSync(a,r))}async fchownPromise(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownPromise(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchown");let[o,l]=a;return o.fchownPromise(l,r,n)}fchownSync(t,r,n){if((t&P9)!==this.magic)return this.baseFs.fchownSync(t,r,n);let a=this.fdMap.get(t);if(typeof a>"u")throw V9.EBADF("fchownSync");let[o,l]=a;return o.fchownSync(l,r,n)}async chownPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.chownPromise(t,r,n),async(a,{subPath:o})=>await a.chownPromise(o,r,n))}chownSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.chownSync(t,r,n),(a,{subPath:o})=>a.chownSync(o,r,n))}async renamePromise(t,r){return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(t,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(n,{subPath:a})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await n.renamePromise(a,l)}))}renameSync(t,r){return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(t,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(n,{subPath:a})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(o,{subPath:l})=>{if(n!==o)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return n.renameSync(a,l)}))}async copyFilePromise(t,r,n=0){let a=async(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&await this.existsPromise(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=await o.readFilePromise(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}await A.writeFilePromise(f,I)};return await this.makeCallPromise(t,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(t,r,n),async(o,{subPath:l})=>await a(this.baseFs,t,o,l)),async(o,{subPath:l})=>await this.makeCallPromise(r,async()=>await a(o,l,this.baseFs,r),async(A,{subPath:f})=>o!==A?await a(o,l,A,f):await o.copyFilePromise(l,f,n)))}copyFileSync(t,r,n=0){let a=(o,l,A,f)=>{if(n&ISe.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${l}' -> ${f}'`),{code:"EXDEV"});if(n&ISe.constants.COPYFILE_EXCL&&this.existsSync(l))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${l}' -> '${f}'`),{code:"EEXIST"});let I;try{I=o.readFileSync(l)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${l}' -> '${f}'`),{code:"EINVAL"})}A.writeFileSync(f,I)};return this.makeCallSync(t,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(t,r,n),(o,{subPath:l})=>a(this.baseFs,t,o,l)),(o,{subPath:l})=>this.makeCallSync(r,()=>a(o,l,this.baseFs,r),(A,{subPath:f})=>o!==A?a(o,l,A,f):o.copyFileSync(l,f,n)))}async appendFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.appendFilePromise(t,r,n),async(a,{subPath:o})=>await a.appendFilePromise(o,r,n))}appendFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.appendFileSync(t,r,n),(a,{subPath:o})=>a.appendFileSync(o,r,n))}async writeFilePromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.writeFilePromise(t,r,n),async(a,{subPath:o})=>await a.writeFilePromise(o,r,n))}writeFileSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.writeFileSync(t,r,n),(a,{subPath:o})=>a.writeFileSync(o,r,n))}async unlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.unlinkPromise(t),async(r,{subPath:n})=>await r.unlinkPromise(n))}unlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.unlinkSync(t),(r,{subPath:n})=>r.unlinkSync(n))}async utimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.utimesPromise(t,r,n),async(a,{subPath:o})=>await a.utimesPromise(o,r,n))}utimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.utimesSync(t,r,n),(a,{subPath:o})=>a.utimesSync(o,r,n))}async lutimesPromise(t,r,n){return await this.makeCallPromise(t,async()=>await this.baseFs.lutimesPromise(t,r,n),async(a,{subPath:o})=>await a.lutimesPromise(o,r,n))}lutimesSync(t,r,n){return this.makeCallSync(t,()=>this.baseFs.lutimesSync(t,r,n),(a,{subPath:o})=>a.lutimesSync(o,r,n))}async mkdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.mkdirPromise(t,r),async(n,{subPath:a})=>await n.mkdirPromise(a,r))}mkdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.mkdirSync(t,r),(n,{subPath:a})=>n.mkdirSync(a,r))}async rmdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmdirPromise(t,r),async(n,{subPath:a})=>await n.rmdirPromise(a,r))}rmdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmdirSync(t,r),(n,{subPath:a})=>n.rmdirSync(a,r))}async rmPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.rmPromise(t,r),async(n,{subPath:a})=>await n.rmPromise(a,r))}rmSync(t,r){return this.makeCallSync(t,()=>this.baseFs.rmSync(t,r),(n,{subPath:a})=>n.rmSync(a,r))}async linkPromise(t,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(t,r),async(n,{subPath:a})=>await n.linkPromise(t,a))}linkSync(t,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(t,r),(n,{subPath:a})=>n.linkSync(t,a))}async symlinkPromise(t,r,n){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(t,r,n),async(a,{subPath:o})=>await a.symlinkPromise(t,o))}symlinkSync(t,r,n){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(t,r,n),(a,{subPath:o})=>a.symlinkSync(t,o))}async readFilePromise(t,r){return this.makeCallPromise(t,async()=>await this.baseFs.readFilePromise(t,r),async(n,{subPath:a})=>await n.readFilePromise(a,r))}readFileSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readFileSync(t,r),(n,{subPath:a})=>n.readFileSync(a,r))}async readdirPromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.readdirPromise(t,r),async(n,{subPath:a})=>await n.readdirPromise(a,r),{requireSubpath:!1})}readdirSync(t,r){return this.makeCallSync(t,()=>this.baseFs.readdirSync(t,r),(n,{subPath:a})=>n.readdirSync(a,r),{requireSubpath:!1})}async readlinkPromise(t){return await this.makeCallPromise(t,async()=>await this.baseFs.readlinkPromise(t),async(r,{subPath:n})=>await r.readlinkPromise(n))}readlinkSync(t){return this.makeCallSync(t,()=>this.baseFs.readlinkSync(t),(r,{subPath:n})=>r.readlinkSync(n))}async truncatePromise(t,r){return await this.makeCallPromise(t,async()=>await this.baseFs.truncatePromise(t,r),async(n,{subPath:a})=>await n.truncatePromise(a,r))}truncateSync(t,r){return this.makeCallSync(t,()=>this.baseFs.truncateSync(t,r),(n,{subPath:a})=>n.truncateSync(a,r))}async ftruncatePromise(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncatePromise(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncate");let[a,o]=n;return a.ftruncatePromise(o,r)}ftruncateSync(t,r){if((t&P9)!==this.magic)return this.baseFs.ftruncateSync(t,r);let n=this.fdMap.get(t);if(typeof n>"u")throw V9.EBADF("ftruncateSync");let[a,o]=n;return a.ftruncateSync(o,r)}watch(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watch(t,r,n),(a,{subPath:o})=>a.watch(o,r,n))}watchFile(t,r,n){return this.makeCallSync(t,()=>this.baseFs.watchFile(t,r,n),()=>(0,vct.watchFile)(this,t,r,n))}unwatchFile(t,r){return this.makeCallSync(t,()=>this.baseFs.unwatchFile(t,r),()=>(0,vct.unwatchFile)(this,t,r))}async makeCallPromise(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return await r();let o=this.resolve(t),l=this.findMount(o);return l?a&&l.subPath==="/"?await r():await this.getMountPromise(l.archivePath,async A=>await n(A,l)):await r()}makeCallSync(t,r,n,{requireSubpath:a=!0}={}){if(typeof t!="string")return r();let o=this.resolve(t),l=this.findMount(o);return!l||a&&l.subPath==="/"?r():this.getMountSync(l.archivePath,A=>n(A,l))}findMount(t){if(this.filter&&!this.filter.test(t))return null;let r="";for(;;){let n=t.substring(r.length),a=this.getMountPoint(n,r);if(!a)return null;if(r=this.pathUtils.join(r,a),!this.isMount.has(r)){if(this.notMount.has(r))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(r).mode&ISe.constants.S_IFMT)!==this.typeCheck){this.notMount.add(r);continue}}catch{return null}this.isMount.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Bct.PortablePath.root,t.substring(r.length))}}}limitOpenFiles(t){if(this.mountInstances===null)return;let r=Date.now(),n=r+this.maxAge,a=t===null?0:this.mountInstances.size-t;for(let[o,{childFs:l,expiresAt:A,refCount:f}]of this.mountInstances.entries())if(!(f!==0||l.hasOpenFileHandles?.())){if(r>=A){l.saveAndClose?.(),this.mountInstances.delete(o),a-=1;continue}else if(t===null||a<=0){n=A;break}l.saveAndClose?.(),this.mountInstances.delete(o),a-=1}this.limitOpenFilesTimeout===null&&(t===null&&this.mountInstances.size>0||t!==null)&&isFinite(n)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},n-r).unref())}async getMountPromise(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);if(!n){let a=await this.factoryPromise(this.baseFs,t);n=this.mountInstances.get(t),n||(n={childFs:a(),expiresAt:0,refCount:0})}this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.childFs)}finally{n.refCount-=1}}else{let n=(await this.factoryPromise(this.baseFs,t))();try{return await r(n)}finally{n.saveAndClose?.()}}}getMountSync(t,r){if(this.mountInstances){let n=this.mountInstances.get(t);return n||(n={childFs:this.factorySync(this.baseFs,t),expiresAt:0,refCount:0}),this.mountInstances.delete(t),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(t,n),n.expiresAt=Date.now()+this.maxAge,r(n.childFs)}else{let n=this.factorySync(this.baseFs,t);try{return r(n)}finally{n.saveAndClose?.()}}}};wct.MountFS=Zjt});var Qbn=H(Tct=>{"use strict";Object.defineProperty(Tct,"__esModule",{value:!0});Tct.NoFS=void 0;var m7s=hfe(),C7s=L9(),Pg=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),KOe=class extends m7s.FakeFS{constructor(){super(C7s.ppath)}getExtractHint(){throw Pg()}getRealPath(){throw Pg()}resolve(){throw Pg()}async openPromise(){throw Pg()}openSync(){throw Pg()}async opendirPromise(){throw Pg()}opendirSync(){throw Pg()}async readPromise(){throw Pg()}readSync(){throw Pg()}async writePromise(){throw Pg()}writeSync(){throw Pg()}async closePromise(){throw Pg()}closeSync(){throw Pg()}createWriteStream(){throw Pg()}createReadStream(){throw Pg()}async realpathPromise(){throw Pg()}realpathSync(){throw Pg()}async readdirPromise(){throw Pg()}readdirSync(){throw Pg()}async existsPromise(t){throw Pg()}existsSync(t){throw Pg()}async accessPromise(){throw Pg()}accessSync(){throw Pg()}async statPromise(){throw Pg()}statSync(){throw Pg()}async fstatPromise(t){throw Pg()}fstatSync(t){throw Pg()}async lstatPromise(t){throw Pg()}lstatSync(t){throw Pg()}async fchmodPromise(){throw Pg()}fchmodSync(){throw Pg()}async chmodPromise(){throw Pg()}chmodSync(){throw Pg()}async fchownPromise(){throw Pg()}fchownSync(){throw Pg()}async chownPromise(){throw Pg()}chownSync(){throw Pg()}async mkdirPromise(){throw Pg()}mkdirSync(){throw Pg()}async rmdirPromise(){throw Pg()}rmdirSync(){throw Pg()}async rmPromise(){throw Pg()}rmSync(){throw Pg()}async linkPromise(){throw Pg()}linkSync(){throw Pg()}async symlinkPromise(){throw Pg()}symlinkSync(){throw Pg()}async renamePromise(){throw Pg()}renameSync(){throw Pg()}async copyFilePromise(){throw Pg()}copyFileSync(){throw Pg()}async appendFilePromise(){throw Pg()}appendFileSync(){throw Pg()}async writeFilePromise(){throw Pg()}writeFileSync(){throw Pg()}async unlinkPromise(){throw Pg()}unlinkSync(){throw Pg()}async utimesPromise(){throw Pg()}utimesSync(){throw Pg()}async lutimesPromise(){throw Pg()}lutimesSync(){throw Pg()}async readFilePromise(){throw Pg()}readFileSync(){throw Pg()}async readlinkPromise(){throw Pg()}readlinkSync(){throw Pg()}async truncatePromise(){throw Pg()}truncateSync(){throw Pg()}async ftruncatePromise(t,r){throw Pg()}ftruncateSync(t,r){throw Pg()}watch(){throw Pg()}watchFile(){throw Pg()}unwatchFile(){throw Pg()}};Tct.NoFS=KOe;KOe.instance=new KOe});var Xbn=H(Rct=>{"use strict";Object.defineProperty(Rct,"__esModule",{value:!0});Rct.PosixFS=void 0;var _7s=Yq(),Ljt=L9(),Vjt=class extends _7s.ProxiedFS{constructor(t){super(Ljt.npath),this.baseFs=t}mapFromBase(t){return Ljt.npath.fromPortablePath(t)}mapToBase(t){return Ljt.npath.toPortablePath(t)}};Rct.PosixFS=Vjt});var Jbn=H(Nct=>{"use strict";Object.defineProperty(Nct,"__esModule",{value:!0});Nct.VirtualFS=void 0;var y7s=mfe(),b7s=Yq(),$Q=L9(),E7s=/^[0-9]+$/,Pjt=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,S7s=/^([^/]+-)?[a-f0-9]+$/,Wjt=class e extends b7s.ProxiedFS{static makeVirtualPath(t,r,n){if($Q.ppath.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!$Q.ppath.basename(r).match(S7s))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=$Q.ppath.relative($Q.ppath.dirname(t),n).split("/"),l=0;for(;l{"use strict";Object.defineProperty(Dct,"__esModule",{value:!0});Dct.NodePathFS=void 0;var v7s=(Pa(),vi(Va)),Ubn=v7s.__importDefault(wt("buffer")),B7s=wt("url"),w7s=wt("util"),T7s=Yq(),R7s=L9(),Ojt=class extends T7s.ProxiedFS{constructor(t){super(R7s.npath),this.baseFs=t}mapFromBase(t){return t}mapToBase(t){if(typeof t=="string")return t;if(t instanceof URL)return(0,B7s.fileURLToPath)(t);if(Buffer.isBuffer(t)){let r=t.toString();if(!N7s(t,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,w7s.inspect)(t)}`)}};Dct.NodePathFS=Ojt;function N7s(e,t){return typeof Ubn.default.isUtf8<"u"?Ubn.default.isUtf8(e):Buffer.byteLength(t)===e.byteLength}});var eEn=H(Gct=>{"use strict";var jbn,zbn,qbn,$bn;Object.defineProperty(Gct,"__esModule",{value:!0});Gct.FileHandle=void 0;var D7s=wt("readline"),yZ=Symbol("kBaseFs"),zse=Symbol("kFd"),qse=Symbol("kClosePromise"),kct=Symbol("kCloseResolve"),xct=Symbol("kCloseReject"),hSe=Symbol("kRefs"),eX=Symbol("kRef"),tX=Symbol("kUnref"),Mjt=class{constructor(t,r){this[jbn]=1,this[zbn]=void 0,this[qbn]=void 0,this[$bn]=void 0,this[yZ]=r,this[zse]=t}get fd(){return this[zse]}async appendFile(t,r){try{this[eX](this.appendFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;return await this[yZ].appendFilePromise(this.fd,t,n?{encoding:n}:void 0)}finally{this[tX]()}}async chown(t,r){try{return this[eX](this.chown),await this[yZ].fchownPromise(this.fd,t,r)}finally{this[tX]()}}async chmod(t){try{return this[eX](this.chmod),await this[yZ].fchmodPromise(this.fd,t)}finally{this[tX]()}}createReadStream(t){return this[yZ].createReadStream(null,{...t,fd:this.fd})}createWriteStream(t){return this[yZ].createWriteStream(null,{...t,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(t,r,n,a){try{this[eX](this.read);let o,l;return ArrayBuffer.isView(t)?typeof r=="object"&&r!==null?(o=t,l=r?.offset??0,n=r?.length??o.byteLength-l,a=r?.position??null):(o=t,l=r??0,n??=0):(o=t?.buffer??Buffer.alloc(16384),l=t?.offset??0,n=t?.length??o.byteLength-l,a=t?.position??null),n===0?{bytesRead:n,buffer:o}:{bytesRead:await this[yZ].readPromise(this.fd,Buffer.isBuffer(o)?o:Buffer.from(o.buffer,o.byteOffset,o.byteLength),l,n,a),buffer:o}}finally{this[tX]()}}async readFile(t){try{this[eX](this.readFile);let r=(typeof t=="string"?t:t?.encoding)??void 0;return await this[yZ].readFilePromise(this.fd,r)}finally{this[tX]()}}readLines(t){return(0,D7s.createInterface)({input:this.createReadStream(t),crlfDelay:1/0})}async stat(t){try{return this[eX](this.stat),await this[yZ].fstatPromise(this.fd,t)}finally{this[tX]()}}async truncate(t){try{return this[eX](this.truncate),await this[yZ].ftruncatePromise(this.fd,t)}finally{this[tX]()}}utimes(t,r){throw new Error("Method not implemented.")}async writeFile(t,r){try{this[eX](this.writeFile);let n=(typeof r=="string"?r:r?.encoding)??void 0;await this[yZ].writeFilePromise(this.fd,t,n)}finally{this[tX]()}}async write(...t){try{if(this[eX](this.write),ArrayBuffer.isView(t[0])){let[r,n,a,o]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n??void 0,a??void 0,o??void 0),buffer:r}}else{let[r,n,a]=t;return{bytesWritten:await this[yZ].writePromise(this.fd,r,n,a),buffer:r}}}finally{this[tX]()}}async writev(t,r){try{this[eX](this.writev);let n=0;if(typeof r<"u")for(let a of t){let o=await this.write(a,void 0,void 0,r);n+=o.bytesWritten,r+=o.bytesWritten}else for(let a of t){let o=await this.write(a);n+=o.bytesWritten}return{buffers:t,bytesWritten:n}}finally{this[tX]()}}readv(t,r){throw new Error("Method not implemented.")}close(){if(this[zse]===-1)return Promise.resolve();if(this[qse])return this[qse];if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[qse]=this[yZ].closePromise(t).finally(()=>{this[qse]=void 0})}else this[qse]=new Promise((t,r)=>{this[kct]=t,this[xct]=r}).finally(()=>{this[qse]=void 0,this[xct]=void 0,this[kct]=void 0});return this[qse]}[(jbn=hSe,zbn=qse,qbn=kct,$bn=xct,eX)](t){if(this[zse]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=t.name,r}this[hSe]++}[tX](){if(this[hSe]--,this[hSe]===0){let t=this[zse];this[zse]=-1,this[yZ].closePromise(t).then(this[kct],this[xct])}}};Gct.FileHandle=Mjt});var iEn=H(Fct=>{"use strict";Object.defineProperty(Fct,"__esModule",{value:!0});Fct.patchFs=nEn;Fct.extendFs=G7s;var jOe=wt("util"),k7s=Kbn(),tEn=eEn(),x7s=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),rEn=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]);function nEn(e,t){t=new k7s.NodePathFS(t);let r=(n,a,o)=>{let l=n[a];n[a]=o,typeof l?.[jOe.promisify.custom]<"u"&&(o[jOe.promisify.custom]=l[jOe.promisify.custom])};{r(e,"exists",(n,...a)=>{let l=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{t.existsPromise(n).then(A=>{l(A)},()=>{l(!1)})})}),r(e,"read",(...n)=>{let[a,o,l,A,f,I]=n;if(n.length<=3){let C={};n.length<3?I=n[1]:(C=n[1],I=n[2]),{buffer:o=Buffer.alloc(16384),offset:l=0,length:A=o.byteLength,position:f}=C}if(l==null&&(l=0),A|=0,A===0){process.nextTick(()=>{I(null,0,o)});return}f==null&&(f=-1),process.nextTick(()=>{t.readPromise(a,o,l,A,f).then(C=>{I(null,C,o)},C=>{I(C,0,o)})})});for(let n of rEn){let a=n.replace(/Promise$/,"");if(typeof e[a]>"u")continue;let o=t[n];if(typeof o>"u")continue;r(e,a,(...A)=>{let I=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{o.apply(t,A).then(C=>{I(null,C)},C=>{I(C)})})})}e.realpath.native=e.realpath}{r(e,"existsSync",n=>{try{return t.existsSync(n)}catch{return!1}}),r(e,"readSync",(...n)=>{let[a,o,l,A,f]=n;return n.length<=3&&({offset:l=0,length:A=o.byteLength,position:f}=n[2]||{}),l==null&&(l=0),A|=0,A===0?0:(f==null&&(f=-1),t.readSync(a,o,l,A,f))});for(let n of x7s){let a=n;if(typeof e[a]>"u")continue;let o=t[n];typeof o>"u"||r(e,a,o.bind(t))}e.realpathSync.native=e.realpathSync}{let n=e.promises;for(let a of rEn){let o=a.replace(/Promise$/,"");if(typeof n[o]>"u")continue;let l=t[a];typeof l>"u"||a!=="open"&&r(n,o,(A,...f)=>A instanceof tEn.FileHandle?A[o].apply(A,f):l.call(t,A,...f))}r(n,"open",async(...a)=>{let o=await t.openPromise(...a);return new tEn.FileHandle(o,t)})}e.read[jOe.promisify.custom]=async(n,a,...o)=>({bytesRead:await t.readPromise(n,a,...o),buffer:a}),e.write[jOe.promisify.custom]=async(n,a,...o)=>({bytesWritten:await t.writePromise(n,a,...o),buffer:a})}function G7s(e,t){let r=Object.create(e);return nEn(r,t),r}});var aEn=H($se=>{"use strict";Object.defineProperty($se,"__esModule",{value:!0});$se.xfs=void 0;var F7s=(Pa(),vi(Va)),Z7s=F7s.__importDefault(wt("os")),L7s=mfe(),zOe=L9();function sEn(e){let t=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${e}${t}`}var rX=new Set,Hjt=null;function oEn(){if(Hjt)return Hjt;let e=zOe.npath.toPortablePath(Z7s.default.tmpdir()),t=$se.xfs.realpathSync(e);return process.once("exit",()=>{$se.xfs.rmtempSync()}),Hjt={tmpdir:e,realTmpdir:t}}$se.xfs=Object.assign(new L7s.NodeFS,{detachTemp(e){rX.delete(e)},mktempSync(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{this.mkdirSync(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return e(a)}finally{if(rX.has(a)){rX.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(e){let{tmpdir:t,realTmpdir:r}=oEn();for(;;){let n=sEn("xfs-");try{await this.mkdirPromise(zOe.ppath.join(t,n))}catch(o){if(o.code==="EEXIST")continue;throw o}let a=zOe.ppath.join(r,n);if(rX.add(a),typeof e>"u")return a;try{return await e(a)}finally{if(rX.has(a)){rX.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(rX.values()).map(async e=>{try{await $se.xfs.removePromise(e,{maxRetries:0}),rX.delete(e)}catch{}}))},rmtempSync(){for(let e of rX)try{$se.xfs.removeSync(e),rX.delete(e)}catch{}}})});var no=H(md=>{"use strict";Object.defineProperty(md,"__esModule",{value:!0});md.xfs=md.extendFs=md.patchFs=md.VirtualFS=md.ProxiedFS=md.PosixFS=md.NodeFS=md.NoFS=md.MountFS=md.LazyFS=md.JailFS=md.CwdFS=md.BasePortableFakeFS=md.FakeFS=md.AliasFS=md.ppath=md.npath=md.Filename=md.PortablePath=md.normalizeLineEndings=md.unwatchAllFiles=md.unwatchFile=md.watchFile=md.CustomDir=md.opendir=md.setupCopyIndex=md.statUtils=md.errors=md.constants=void 0;var Yjt=(Pa(),vi(Va)),V7s=Yjt.__importStar(cct());md.constants=V7s;var P7s=Yjt.__importStar(lct());md.errors=P7s;var W7s=Yjt.__importStar(_jt());md.statUtils=W7s;var O7s=Ejt();Object.defineProperty(md,"setupCopyIndex",{enumerable:!0,get:function(){return O7s.setupCopyIndex}});var cEn=Gbn();Object.defineProperty(md,"opendir",{enumerable:!0,get:function(){return cEn.opendir}});Object.defineProperty(md,"CustomDir",{enumerable:!0,get:function(){return cEn.CustomDir}});var Qjt=Bjt();Object.defineProperty(md,"watchFile",{enumerable:!0,get:function(){return Qjt.watchFile}});Object.defineProperty(md,"unwatchFile",{enumerable:!0,get:function(){return Qjt.unwatchFile}});Object.defineProperty(md,"unwatchAllFiles",{enumerable:!0,get:function(){return Qjt.unwatchAllFiles}});var M7s=hfe();Object.defineProperty(md,"normalizeLineEndings",{enumerable:!0,get:function(){return M7s.normalizeLineEndings}});var lEn=L9();Object.defineProperty(md,"PortablePath",{enumerable:!0,get:function(){return lEn.PortablePath}});Object.defineProperty(md,"Filename",{enumerable:!0,get:function(){return lEn.Filename}});var uEn=L9();Object.defineProperty(md,"npath",{enumerable:!0,get:function(){return uEn.npath}});Object.defineProperty(md,"ppath",{enumerable:!0,get:function(){return uEn.ppath}});var H7s=Vbn();Object.defineProperty(md,"AliasFS",{enumerable:!0,get:function(){return H7s.AliasFS}});var gEn=hfe();Object.defineProperty(md,"FakeFS",{enumerable:!0,get:function(){return gEn.FakeFS}});Object.defineProperty(md,"BasePortableFakeFS",{enumerable:!0,get:function(){return gEn.BasePortableFakeFS}});var Y7s=Wbn();Object.defineProperty(md,"CwdFS",{enumerable:!0,get:function(){return Y7s.CwdFS}});var Q7s=Mbn();Object.defineProperty(md,"JailFS",{enumerable:!0,get:function(){return Q7s.JailFS}});var X7s=Hbn();Object.defineProperty(md,"LazyFS",{enumerable:!0,get:function(){return X7s.LazyFS}});var J7s=Ybn();Object.defineProperty(md,"MountFS",{enumerable:!0,get:function(){return J7s.MountFS}});var U7s=Qbn();Object.defineProperty(md,"NoFS",{enumerable:!0,get:function(){return U7s.NoFS}});var K7s=mfe();Object.defineProperty(md,"NodeFS",{enumerable:!0,get:function(){return K7s.NodeFS}});var j7s=Xbn();Object.defineProperty(md,"PosixFS",{enumerable:!0,get:function(){return j7s.PosixFS}});var z7s=Yq();Object.defineProperty(md,"ProxiedFS",{enumerable:!0,get:function(){return z7s.ProxiedFS}});var q7s=Jbn();Object.defineProperty(md,"VirtualFS",{enumerable:!0,get:function(){return q7s.VirtualFS}});var AEn=iEn();Object.defineProperty(md,"patchFs",{enumerable:!0,get:function(){return AEn.patchFs}});Object.defineProperty(md,"extendFs",{enumerable:!0,get:function(){return AEn.extendFs}});var $7s=aEn();Object.defineProperty(md,"xfs",{enumerable:!0,get:function(){return $7s.xfs}})});var hEn=H((f3l,IEn)=>{IEn.exports=fEn;fEn.sync=tzs;var dEn=wt("fs");function ezs(e,t){var r=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var n=0;n{yEn.exports=CEn;CEn.sync=rzs;var mEn=wt("fs");function CEn(e,t,r){mEn.stat(e,function(n,a){r(n,n?!1:_En(a,t))})}function rzs(e,t){return _En(mEn.statSync(e),t)}function _En(e,t){return e.isFile()&&nzs(e,t)}function nzs(e,t){var r=e.mode,n=e.uid,a=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),l=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),A=parseInt("100",8),f=parseInt("010",8),I=parseInt("001",8),C=A|f,b=r&I||r&f&&a===l||r&A&&n===o||r&C&&o===0;return b}});var SEn=H((m3l,EEn)=>{var h3l=wt("fs"),Zct;process.platform==="win32"||global.TESTING_WINDOWS?Zct=hEn():Zct=bEn();EEn.exports=Xjt;Xjt.sync=izs;function Xjt(e,t,r){if(typeof t=="function"&&(r=t,t={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(n,a){Xjt(e,t||{},function(o,l){o?a(o):n(l)})})}Zct(e,t||{},function(n,a){n&&(n.code==="EACCES"||t&&t.ignoreErrors)&&(n=null,a=!1),r(n,a)})}function izs(e,t){try{return Zct.sync(e,t||{})}catch(r){if(t&&t.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var Jjt=H((C3l,NEn)=>{var mSe=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",vEn=wt("path"),szs=mSe?";":":",BEn=SEn(),wEn=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),TEn=(e,t)=>{let r=t.colon||szs,n=e.match(/\//)||mSe&&e.match(/\\/)?[""]:[...mSe?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(r)],a=mSe?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=mSe?a.split(r):[""];return mSe&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:n,pathExt:o,pathExtExe:a}},REn=(e,t,r)=>{typeof t=="function"&&(r=t,t={}),t||(t={});let{pathEnv:n,pathExt:a,pathExtExe:o}=TEn(e,t),l=[],A=I=>new Promise((C,b)=>{if(I===n.length)return t.all&&l.length?C(l):b(wEn(e));let E=n[I],N=/^".*"$/.test(E)?E.slice(1,-1):E,B=vEn.join(N,e),F=!N&&/^\.[\\\/]/.test(e)?e.slice(0,2)+B:B;C(f(F,I,0))}),f=(I,C,b)=>new Promise((E,N)=>{if(b===a.length)return E(A(C+1));let B=a[b];BEn(I+B,{pathExt:o},(F,Q)=>{if(!F&&Q)if(t.all)l.push(I+B);else return E(I+B);return E(f(I,C,b+1))})});return r?A(0).then(I=>r(null,I),r):A(0)},ozs=(e,t)=>{t=t||{};let{pathEnv:r,pathExt:n,pathExtExe:a}=TEn(e,t),o=[];for(let l=0;l{"use strict";var DEn=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"};Ujt.exports=DEn;Ujt.exports.default=DEn});var FEn=H((y3l,GEn)=>{"use strict";var kEn=wt("path"),azs=Jjt(),czs=Kjt();function xEn(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=azs.sync(e.command,{path:r[czs({env:r})],pathExt:t?kEn.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=kEn.resolve(a?e.options.cwd:"",l)),l}function lzs(e){return xEn(e)||xEn(e,!0)}GEn.exports=lzs});var ZEn=H((b3l,zjt)=>{"use strict";var jjt=/([()\][%!^"`<>&|;, *?])/g;function uzs(e){return e=e.replace(jjt,"^$1"),e}function gzs(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(jjt,"^$1"),t&&(e=e.replace(jjt,"^$1")),e}zjt.exports.command=uzs;zjt.exports.argument=gzs});var VEn=H((E3l,LEn)=>{"use strict";LEn.exports=/^#!(.*)/});var qjt=H((S3l,PEn)=>{"use strict";var Azs=VEn();PEn.exports=(e="")=>{let t=e.match(Azs);if(!t)return null;let[r,n]=t[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?n:n?`${a} ${n}`:a}});var OEn=H((v3l,WEn)=>{"use strict";var $jt=wt("fs"),dzs=qjt();function pzs(e){let r=Buffer.alloc(150),n;try{n=$jt.openSync(e,"r"),$jt.readSync(n,r,0,150,0),$jt.closeSync(n)}catch{}return dzs(r.toString())}WEn.exports=pzs});var QEn=H((B3l,YEn)=>{"use strict";var fzs=wt("path"),MEn=FEn(),HEn=ZEn(),Izs=OEn(),hzs=process.platform==="win32",mzs=/\.(?:com|exe)$/i,Czs=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function _zs(e){e.file=MEn(e);let t=e.file&&Izs(e.file);return t?(e.args.unshift(e.file),e.command=t,MEn(e)):e.file}function yzs(e){if(!hzs)return e;let t=_zs(e),r=!mzs.test(t);if(e.options.forceShell||r){let n=Czs.test(t);e.command=fzs.normalize(e.command),e.command=HEn.command(e.command),e.args=e.args.map(o=>HEn.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function bzs(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:yzs(n)}YEn.exports=bzs});var UEn=H((w3l,JEn)=>{"use strict";var e6t=process.platform==="win32";function t6t(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function Ezs(e,t){if(!e6t)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=XEn(a,t);if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function XEn(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawn"):null}function Szs(e,t){return e6t&&e===1&&!t.file?t6t(t.original,"spawnSync"):null}JEn.exports={hookChildProcess:Ezs,verifyENOENT:XEn,verifyENOENTSync:Szs,notFoundError:t6t}});var Lct=H((T3l,CSe)=>{"use strict";var KEn=wt("child_process"),r6t=QEn(),n6t=UEn();function jEn(e,t,r){let n=r6t(e,t,r),a=KEn.spawn(n.command,n.args,n.options);return n6t.hookChildProcess(a,n),a}function vzs(e,t,r){let n=r6t(e,t,r),a=KEn.spawnSync(n.command,n.args,n.options);return a.error=a.error||n6t.verifyENOENTSync(a.status,n),a}CSe.exports=jEn;CSe.exports.spawn=jEn;CSe.exports.sync=vzs;CSe.exports._parse=r6t;CSe.exports._enoent=n6t});var qEn=H((R3l,zEn)=>{"use strict";function Bzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Cfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Cfe)}Bzs(Cfe,Error);Cfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b>",_n=ca(">>",!1),ke=">&",jt=ca(">&",!1),Fn=">",Nn=ca(">",!1),Hi="<<<",po=ca("<<<",!1),Vr="<&",xi=ca("<&",!1),io="<",ga=ca("<",!1),Ya=function(ut){return{type:"argument",segments:[].concat(...ut)}},Gc=function(ut){return ut},cl="$'",Sc=ca("$'",!1),Hr="'",Wr=ca("'",!1),Ft=function(ut){return[{type:"text",text:ut}]},zr='""',Rn=ca('""',!1),Or=function(){return{type:"text",text:""}},Qi='"',ps=ca('"',!1),yo=function(ut){return ut},bo=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!0}},Qa=function(ut){return{type:"shell",shell:ut,quoted:!0}},gc=function(ut){return{type:"variable",...ut,quoted:!0}},Cg=function(ut){return{type:"text",text:ut}},Nc=function(ut){return{type:"arithmetic",arithmetic:ut,quoted:!1}},iA=function(ut){return{type:"shell",shell:ut,quoted:!1}},ma=function(ut){return{type:"variable",...ut,quoted:!1}},vu=function(ut){return{type:"glob",pattern:ut}},li=/^[^']/,Ei=Bl(["'"],!0,!1),Ps=function(ut){return ut.join("")},Xa=/^[^$"]/,ac=Bl(["$",'"'],!0,!1),Yl=`\\ `,Wc=ca(`\\ `,!1),Sg=function(){return""},Ul="\\",Xu=ca("\\",!1),Da=/^[\\$"`]/,pu=Bl(["\\","$",'"',"`"],!1,!1),_g=function(ut){return ut},mI="\\a",Qh=ca("\\a",!1),Ri=function(){return"a"},Do="\\b",Wt=ca("\\b",!1),Hu=function(){return"\b"},Ru=/^[Ee]/,Vs=Bl(["E","e"],!1,!1),Ju=function(){return"\x1B"},Yn="\\f",Ko=ca("\\f",!1),Eg=function(){return"\f"},OA="\\n",GA=ca("\\n",!1),$i=function(){return` `},dl="\\r",Uf=ca("\\r",!1),Kd=function(){return"\r"},oA="\\t",oo=ca("\\t",!1),Ki=function(){return" "},cc="\\v",Xs=ca("\\v",!1),ws=function(){return"\v"},Gs=/^[\\'"?]/,Ma=Bl(["\\","'",'"',"?"],!1,!1),Dc=function(ut){return String.fromCharCode(parseInt(ut,16))},As="\\x",Tf=ca("\\x",!1),cm="\\u",Fl=ca("\\u",!1),rc="\\U",sd=ca("\\U",!1),Om=function(ut){return String.fromCodePoint(parseInt(ut,16))},il=/^[0-7]/,FA=Bl([["0","7"]],!1,!1),ZA=/^[0-9a-fA-f]/,El=Bl([["0","9"],["a","f"],["A","f"]],!1,!1),yg=$g(),Mp="{}",MA=ca("{}",!1),Er=function(){return"{}"},Zt="-",yn=ca("-",!1),ls="+",oa=ca("+",!1),Fs=".",Wa=ca(".",!1),Ca=function(ut,ar,Jr){return{type:"number",value:(ut==="-"?-1:1)*parseFloat(ar.join("")+"."+Jr.join(""))}},ld=function(ut,ar){return{type:"number",value:(ut==="-"?-1:1)*parseInt(ar.join(""))}},Rp=function(ut){return{type:"variable",...ut}},np=function(ut){return{type:"variable",name:ut}},HA=function(ut){return ut},df="*",Zs=ca("*",!1),so="/",Ea=ca("/",!1),Ml=function(ut,ar,Jr){return{type:ar==="*"?"multiplication":"division",right:Jr}},Dr=function(ut,ar){return ar.reduce((Jr,Gn)=>({left:Jr,...Gn}),ut)},Wn=function(ut,ar,Jr){return{type:ar==="+"?"addition":"subtraction",right:Jr}},di="$((",aa=ca("$((",!1),Bo="))",us=ca("))",!1),Ql=function(ut){return ut},LA="$(",pf=ca("$(",!1),ef=function(ut){return ut},ip="${",_d=ca("${",!1),j1=":-",pw=ca(":-",!1),YA=function(ut,ar){return{name:ut,defaultValue:ar}},Ac=":-}",Nm=ca(":-}",!1),HS=function(ut){return{name:ut,defaultValue:[]}},jd=":+",dh=ca(":+",!1),Hp=function(ut,ar){return{name:ut,alternativeValue:ar}},uC=":+}",nE=ca(":+}",!1),J_=function(ut){return{name:ut,alternativeValue:[]}},q0=function(ut){return{name:ut}},XE="$",TC=ca("$",!1),t_=function(ut){return t.isGlobPattern(ut)},cp=function(ut){return ut},Mm=/^[a-zA-Z0-9_]/,fb=Bl([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),pe=function(){return $n()},lm=/^[$@*?#a-zA-Z0-9_\-]/,Kf=Bl(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),CI=/^[()}<>$|&; \t"']/,_I=Bl(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),H2=/^[<>&; \t"']/,iE=Bl(["<",">","&",";"," "," ",'"',"'"],!1,!1),se=/^[ \t]/,O=Bl([" "," "],!1,!1),K=0,we=0,gt=[{line:1,column:1}],sr=0,Yr=[],Lr=0,fi;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function $n(){return e.substring(we,K)}function ra(){return Ib(we,K)}function kc(ut,ar){throw ar=ar!==void 0?ar:Ib(we,K),z1([lI(ut)],e.substring(we,K),ar)}function Nl(ut,ar){throw ar=ar!==void 0?ar:Ib(we,K),wd(ut,ar)}function ca(ut,ar){return{type:"literal",text:ut,ignoreCase:ar}}function Bl(ut,ar,Jr){return{type:"class",parts:ut,inverted:ar,ignoreCase:Jr}}function $g(){return{type:"any"}}function SA(){return{type:"end"}}function lI(ut){return{type:"other",description:ut}}function lp(ut){var ar=gt[ut],Jr;if(ar)return ar;for(Jr=ut-1;!gt[Jr];)Jr--;for(ar=gt[Jr],ar={line:ar.line,column:ar.column};Jrsr&&(sr=K,Yr=[]),Yr.push(ut))}function wd(ut,ar){return new Cfe(ut,null,null,ar)}function z1(ut,ar,Jr){return new Cfe(Cfe.buildMessage(ut,ar),ut,ar,Jr)}function T_(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(Jr=RC(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=o(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function RC(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=Fg(),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();Jr!==r?(Gn=YS(),Gn!==r?(Ts=Hm(),Ts===r&&(Ts=null),Ts!==r?(we=ut,ar=l(ar,Gn,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;if(ut===r)if(ut=K,ar=Fg(),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();Jr!==r?(Gn=YS(),Gn===r&&(Gn=null),Gn!==r?(we=ut,ar=A(ar,Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;return ut}function Hm(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=RC(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=f(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;return ut}function YS(){var ut;return e.charCodeAt(K)===59?(ut=I,K++):(ut=r,Lr===0&&Na(C)),ut===r&&(e.charCodeAt(K)===38?(ut=b,K++):(ut=r,Lr===0&&Na(E))),ut}function Fg(){var ut,ar,Jr;return ut=K,ar=NC(),ar!==r?(Jr=hb(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=N(ar,Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function hb(){var ut,ar,Jr,Gn,Ts,Qo,vg;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=gC(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=Fg(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=B(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;return ut}function gC(){var ut;return e.substr(K,2)===F?(ut=F,K+=2):(ut=r,Lr===0&&Na(Q)),ut===r&&(e.substr(K,2)===X?(ut=X,K+=2):(ut=r,Lr===0&&Na(ae))),ut}function NC(){var ut,ar,Jr;return ut=K,ar=kC(),ar!==r?(Jr=Y2(),Jr===r&&(Jr=null),Jr!==r?(we=ut,ar=ne(ar,Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function Y2(){var ut,ar,Jr,Gn,Ts,Qo,vg;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(Jr=U_(),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=NC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=ce(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;return ut}function U_(){var ut;return e.substr(K,2)===fe?(ut=fe,K+=2):(ut=r,Lr===0&&Na(ue)),ut===r&&(e.charCodeAt(K)===124?(ut=de,K++):(ut=r,Lr===0&&Na(be))),ut}function DC(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,ar=By(),ar!==r)if(e.charCodeAt(K)===61?(Jr=Se,K++):(Jr=r,Lr===0&&Na(De)),Jr!==r)if(Gn=Pf(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(we=ut,ar=k(ar,Gn),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;else K=ut,ut=r;if(ut===r)if(ut=K,ar=By(),ar!==r)if(e.charCodeAt(K)===61?(Jr=Se,K++):(Jr=r,Lr===0&&Na(De)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=et(ar),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r;return ut}function kC(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng,Rf,uI,Th;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(e.charCodeAt(K)===40?(Jr=ct,K++):(Jr=r,Lr===0&&Na(Me)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=RC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();if(Qo!==r)if(e.charCodeAt(K)===41?(vg=je,K++):(vg=r,Lr===0&&Na(St)),vg!==r){for(Ng=[],Rf=xc();Rf!==r;)Ng.push(Rf),Rf=xc();if(Ng!==r){for(Rf=[],uI=vA();uI!==r;)Rf.push(uI),uI=vA();if(Rf!==r){for(uI=[],Th=xc();Th!==r;)uI.push(Th),Th=xc();uI!==r?(we=ut,ar=At(Ts,Rf),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r)if(e.charCodeAt(K)===123?(Jr=Yt,K++):(Jr=r,Lr===0&&Na(Tr)),Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r)if(Ts=RC(),Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();if(Qo!==r)if(e.charCodeAt(K)===125?(vg=Nr,K++):(vg=r,Lr===0&&Na(er)),vg!==r){for(Ng=[],Rf=xc();Rf!==r;)Ng.push(Rf),Rf=xc();if(Ng!==r){for(Rf=[],uI=vA();uI!==r;)Rf.push(uI),uI=vA();if(Rf!==r){for(uI=[],Th=xc();Th!==r;)uI.push(Th),Th=xc();uI!==r?(we=ut,ar=vt(Ts,Rf),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){for(Jr=[],Gn=DC();Gn!==r;)Jr.push(Gn),Gn=DC();if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();if(Gn!==r){if(Ts=[],Qo=ph(),Qo!==r)for(;Qo!==r;)Ts.push(Qo),Qo=ph();else Ts=r;if(Ts!==r){for(Qo=[],vg=xc();vg!==r;)Qo.push(vg),vg=xc();Qo!==r?(we=ut,ar=xt(Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r}else K=ut,ut=r;if(ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){if(Jr=[],Gn=DC(),Gn!==r)for(;Gn!==r;)Jr.push(Gn),Gn=DC();else Jr=r;if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=Zr(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r}}}return ut}function qI(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r){if(Jr=[],Gn=Mc(),Gn!==r)for(;Gn!==r;)Jr.push(Gn),Gn=Mc();else Jr=r;if(Jr!==r){for(Gn=[],Ts=xc();Ts!==r;)Gn.push(Ts),Ts=xc();Gn!==r?(we=ut,ar=qt(Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r}else K=ut,ut=r;return ut}function ph(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();if(ar!==r?(Jr=vA(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r){for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();ar!==r?(Jr=Mc(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}return ut}function vA(){var ut,ar,Jr,Gn,Ts;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(lr.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(cr)),Jr===r&&(Jr=null),Jr!==r?(Gn=Td(),Gn!==r?(Ts=Mc(),Ts!==r?(we=ut,ar=Ar(Jr,Gn,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function Td(){var ut;return e.substr(K,2)===qr?(ut=qr,K+=2):(ut=r,Lr===0&&Na(_n)),ut===r&&(e.substr(K,2)===ke?(ut=ke,K+=2):(ut=r,Lr===0&&Na(jt)),ut===r&&(e.charCodeAt(K)===62?(ut=Fn,K++):(ut=r,Lr===0&&Na(Nn)),ut===r&&(e.substr(K,3)===Hi?(ut=Hi,K+=3):(ut=r,Lr===0&&Na(po)),ut===r&&(e.substr(K,2)===Vr?(ut=Vr,K+=2):(ut=r,Lr===0&&Na(xi)),ut===r&&(e.charCodeAt(K)===60?(ut=io,K++):(ut=r,Lr===0&&Na(ga))))))),ut}function Mc(){var ut,ar,Jr;for(ut=K,ar=[],Jr=xc();Jr!==r;)ar.push(Jr),Jr=xc();return ar!==r?(Jr=Pf(),Jr!==r?(we=ut,ar=Xt(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function Pf(){var ut,ar,Jr;if(ut=K,ar=[],Jr=sE(),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=sE();else ar=r;return ar!==r&&(we=ut,ar=Ya(ar)),ut=ar,ut}function sE(){var ut,ar;return ut=K,ar=eA(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=QS(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=XS(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar,ut===r&&(ut=K,ar=um(),ar!==r&&(we=ut,ar=Gc(ar)),ut=ar))),ut}function eA(){var ut,ar,Jr,Gn;return ut=K,e.substr(K,2)===cl?(ar=cl,K+=2):(ar=r,Lr===0&&Na(Sc)),ar!==r?(Jr=Kl(),Jr!==r?(e.charCodeAt(K)===39?(Gn=Hr,K++):(Gn=r,Lr===0&&Na(Wr)),Gn!==r?(we=ut,ar=Ft(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function QS(){var ut,ar,Jr,Gn;return ut=K,e.charCodeAt(K)===39?(ar=Hr,K++):(ar=r,Lr===0&&Na(Wr)),ar!==r?(Jr=na(),Jr!==r?(e.charCodeAt(K)===39?(Gn=Hr,K++):(Gn=r,Lr===0&&Na(Wr)),Gn!==r?(we=ut,ar=Ft(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function XS(){var ut,ar,Jr,Gn;if(ut=K,e.substr(K,2)===zr?(ar=zr,K+=2):(ar=r,Lr===0&&Na(Rn)),ar!==r&&(we=ut,ar=Or()),ut=ar,ut===r)if(ut=K,e.charCodeAt(K)===34?(ar=Qi,K++):(ar=r,Lr===0&&Na(ps)),ar!==r){for(Jr=[],Gn=gm();Gn!==r;)Jr.push(Gn),Gn=gm();Jr!==r?(e.charCodeAt(K)===34?(Gn=Qi,K++):(Gn=r,Lr===0&&Na(ps)),Gn!==r?(we=ut,ar=yo(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;return ut}function um(){var ut,ar,Jr;if(ut=K,ar=[],Jr=cs(),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=cs();else ar=r;return ar!==r&&(we=ut,ar=yo(ar)),ut=ar,ut}function gm(){var ut,ar;return ut=K,ar=od(),ar!==r&&(we=ut,ar=bo(ar)),ut=ar,ut===r&&(ut=K,ar=UE(),ar!==r&&(we=ut,ar=Qa(ar)),ut=ar,ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=gc(ar)),ut=ar,ut===r&&(ut=K,ar=ko(),ar!==r&&(we=ut,ar=Cg(ar)),ut=ar))),ut}function cs(){var ut,ar;return ut=K,ar=od(),ar!==r&&(we=ut,ar=Nc(ar)),ut=ar,ut===r&&(ut=K,ar=UE(),ar!==r&&(we=ut,ar=iA(ar)),ut=ar,ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=ma(ar)),ut=ar,ut===r&&(ut=K,ar=Yp(),ar!==r&&(we=ut,ar=vu(ar)),ut=ar,ut===r&&(ut=K,ar=JE(),ar!==r&&(we=ut,ar=Cg(ar)),ut=ar)))),ut}function na(){var ut,ar,Jr;for(ut=K,ar=[],li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei));Jr!==r;)ar.push(Jr),li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei));return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function ko(){var ut,ar,Jr;if(ut=K,ar=[],Jr=ki(),Jr===r&&(Xa.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(ac))),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=ki(),Jr===r&&(Xa.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(ac)));else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function ki(){var ut,ar,Jr;return ut=K,e.substr(K,2)===Yl?(ar=Yl,K+=2):(ar=r,Lr===0&&Na(Wc)),ar!==r&&(we=ut,ar=Sg()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Da.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(pu)),Jr!==r?(we=ut,ar=_g(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)),ut}function Kl(){var ut,ar,Jr;for(ut=K,ar=[],Jr=fd(),Jr===r&&(li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei)));Jr!==r;)ar.push(Jr),Jr=fd(),Jr===r&&(li.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ei)));return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function fd(){var ut,ar,Jr;return ut=K,e.substr(K,2)===mI?(ar=mI,K+=2):(ar=r,Lr===0&&Na(Qh)),ar!==r&&(we=ut,ar=Ri()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===Do?(ar=Do,K+=2):(ar=r,Lr===0&&Na(Wt)),ar!==r&&(we=ut,ar=Hu()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Ru.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Vs)),Jr!==r?(we=ut,ar=Ju(),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===Yn?(ar=Yn,K+=2):(ar=r,Lr===0&&Na(Ko)),ar!==r&&(we=ut,ar=Eg()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===OA?(ar=OA,K+=2):(ar=r,Lr===0&&Na(GA)),ar!==r&&(we=ut,ar=$i()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===dl?(ar=dl,K+=2):(ar=r,Lr===0&&Na(Uf)),ar!==r&&(we=ut,ar=Kd()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===oA?(ar=oA,K+=2):(ar=r,Lr===0&&Na(oo)),ar!==r&&(we=ut,ar=Ki()),ut=ar,ut===r&&(ut=K,e.substr(K,2)===cc?(ar=cc,K+=2):(ar=r,Lr===0&&Na(Xs)),ar!==r&&(we=ut,ar=ws()),ut=ar,ut===r&&(ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Gs.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Ma)),Jr!==r?(we=ut,ar=_g(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=jf()))))))))),ut}function jf(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng,Rf,uI,Th,oE;return ut=K,e.charCodeAt(K)===92?(ar=Ul,K++):(ar=r,Lr===0&&Na(Xu)),ar!==r?(Jr=Ld(),Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===As?(ar=As,K+=2):(ar=r,Lr===0&&Na(Tf)),ar!==r?(Jr=K,Gn=K,Ts=Ld(),Ts!==r?(Qo=AC(),Qo!==r?(Ts=[Ts,Qo],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn===r&&(Gn=Ld()),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===cm?(ar=cm,K+=2):(ar=r,Lr===0&&Na(Fl)),ar!==r?(Jr=K,Gn=K,Ts=AC(),Ts!==r?(Qo=AC(),Qo!==r?(vg=AC(),vg!==r?(Ng=AC(),Ng!==r?(Ts=[Ts,Qo,vg,Ng],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Dc(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===rc?(ar=rc,K+=2):(ar=r,Lr===0&&Na(sd)),ar!==r?(Jr=K,Gn=K,Ts=AC(),Ts!==r?(Qo=AC(),Qo!==r?(vg=AC(),vg!==r?(Ng=AC(),Ng!==r?(Rf=AC(),Rf!==r?(uI=AC(),uI!==r?(Th=AC(),Th!==r?(oE=AC(),oE!==r?(Ts=[Ts,Qo,vg,Ng,Rf,uI,Th,oE],Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r)):(K=Gn,Gn=r),Gn!==r?Jr=e.substring(Jr,K):Jr=Gn,Jr!==r?(we=ut,ar=Om(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)))),ut}function Ld(){var ut;return il.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(FA)),ut}function AC(){var ut;return ZA.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(El)),ut}function JE(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=[],Jr=K,e.charCodeAt(K)===92?(Gn=Ul,K++):(Gn=r,Lr===0&&Na(Xu)),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr===r&&(Jr=K,e.substr(K,2)===Mp?(Gn=Mp,K+=2):(Gn=r,Lr===0&&Na(MA)),Gn!==r&&(we=Jr,Gn=Er()),Jr=Gn,Jr===r&&(Jr=K,Gn=K,Lr++,Ts=fw(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r))),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=K,e.charCodeAt(K)===92?(Gn=Ul,K++):(Gn=r,Lr===0&&Na(Xu)),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr===r&&(Jr=K,e.substr(K,2)===Mp?(Gn=Mp,K+=2):(Gn=r,Lr===0&&Na(MA)),Gn!==r&&(we=Jr,Gn=Er()),Jr=Gn,Jr===r&&(Jr=K,Gn=K,Lr++,Ts=fw(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r)));else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function Ym(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,e.charCodeAt(K)===45?(ar=Zt,K++):(ar=r,Lr===0&&Na(yn)),ar===r&&(e.charCodeAt(K)===43?(ar=ls,K++):(ar=r,Lr===0&&Na(oa))),ar===r&&(ar=null),ar!==r){if(Jr=[],lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr)),Gn!==r)for(;Gn!==r;)Jr.push(Gn),lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr));else Jr=r;if(Jr!==r)if(e.charCodeAt(K)===46?(Gn=Fs,K++):(Gn=r,Lr===0&&Na(Wa)),Gn!==r){if(Ts=[],lr.test(e.charAt(K))?(Qo=e.charAt(K),K++):(Qo=r,Lr===0&&Na(cr)),Qo!==r)for(;Qo!==r;)Ts.push(Qo),lr.test(e.charAt(K))?(Qo=e.charAt(K),K++):(Qo=r,Lr===0&&Na(cr));else Ts=r;Ts!==r?(we=ut,ar=Ca(ar,Jr,Ts),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;if(ut===r){if(ut=K,e.charCodeAt(K)===45?(ar=Zt,K++):(ar=r,Lr===0&&Na(yn)),ar===r&&(e.charCodeAt(K)===43?(ar=ls,K++):(ar=r,Lr===0&&Na(oa))),ar===r&&(ar=null),ar!==r){if(Jr=[],lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr)),Gn!==r)for(;Gn!==r;)Jr.push(Gn),lr.test(e.charAt(K))?(Gn=e.charAt(K),K++):(Gn=r,Lr===0&&Na(cr));else Jr=r;Jr!==r?(we=ut,ar=ld(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;if(ut===r&&(ut=K,ar=KE(),ar!==r&&(we=ut,ar=Rp(ar)),ut=ar,ut===r&&(ut=K,ar=$0(),ar!==r&&(we=ut,ar=np(ar)),ut=ar,ut===r)))if(ut=K,e.charCodeAt(K)===40?(ar=ct,K++):(ar=r,Lr===0&&Na(Me)),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();if(Jr!==r)if(Gn=K_(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(e.charCodeAt(K)===41?(Qo=je,K++):(Qo=r,Lr===0&&Na(St)),Qo!==r?(we=ut,ar=HA(Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r}return ut}function vy(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng;if(ut=K,ar=Ym(),ar!==r){for(Jr=[],Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===42?(Qo=df,K++):(Qo=r,Lr===0&&Na(Zs)),Qo===r&&(e.charCodeAt(K)===47?(Qo=so,K++):(Qo=r,Lr===0&&Na(Ea))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=Ym(),Ng!==r?(we=Gn,Ts=Ml(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r;for(;Gn!==r;){for(Jr.push(Gn),Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===42?(Qo=df,K++):(Qo=r,Lr===0&&Na(Zs)),Qo===r&&(e.charCodeAt(K)===47?(Qo=so,K++):(Qo=r,Lr===0&&Na(Ea))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=Ym(),Ng!==r?(we=Gn,Ts=Ml(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r}Jr!==r?(we=ut,ar=Dr(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;return ut}function K_(){var ut,ar,Jr,Gn,Ts,Qo,vg,Ng;if(ut=K,ar=vy(),ar!==r){for(Jr=[],Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===43?(Qo=ls,K++):(Qo=r,Lr===0&&Na(oa)),Qo===r&&(e.charCodeAt(K)===45?(Qo=Zt,K++):(Qo=r,Lr===0&&Na(yn))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=vy(),Ng!==r?(we=Gn,Ts=Wn(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r;for(;Gn!==r;){for(Jr.push(Gn),Gn=K,Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();if(Ts!==r)if(e.charCodeAt(K)===43?(Qo=ls,K++):(Qo=r,Lr===0&&Na(oa)),Qo===r&&(e.charCodeAt(K)===45?(Qo=Zt,K++):(Qo=r,Lr===0&&Na(yn))),Qo!==r){for(vg=[],Ng=xc();Ng!==r;)vg.push(Ng),Ng=xc();vg!==r?(Ng=vy(),Ng!==r?(we=Gn,Ts=Wn(ar,Qo,Ng),Gn=Ts):(K=Gn,Gn=r)):(K=Gn,Gn=r)}else K=Gn,Gn=r;else K=Gn,Gn=r}Jr!==r?(we=ut,ar=Dr(ar,Jr),ut=ar):(K=ut,ut=r)}else K=ut,ut=r;return ut}function od(){var ut,ar,Jr,Gn,Ts,Qo;if(ut=K,e.substr(K,3)===di?(ar=di,K+=3):(ar=r,Lr===0&&Na(aa)),ar!==r){for(Jr=[],Gn=xc();Gn!==r;)Jr.push(Gn),Gn=xc();if(Jr!==r)if(Gn=K_(),Gn!==r){for(Ts=[],Qo=xc();Qo!==r;)Ts.push(Qo),Qo=xc();Ts!==r?(e.substr(K,2)===Bo?(Qo=Bo,K+=2):(Qo=r,Lr===0&&Na(us)),Qo!==r?(we=ut,ar=Ql(Gn),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)}else K=ut,ut=r;else K=ut,ut=r}else K=ut,ut=r;return ut}function UE(){var ut,ar,Jr,Gn;return ut=K,e.substr(K,2)===LA?(ar=LA,K+=2):(ar=r,Lr===0&&Na(pf)),ar!==r?(Jr=RC(),Jr!==r?(e.charCodeAt(K)===41?(Gn=je,K++):(Gn=r,Lr===0&&Na(St)),Gn!==r?(we=ut,ar=ef(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut}function KE(){var ut,ar,Jr,Gn,Ts,Qo;return ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,2)===j1?(Gn=j1,K+=2):(Gn=r,Lr===0&&Na(pw)),Gn!==r?(Ts=qI(),Ts!==r?(e.charCodeAt(K)===125?(Qo=Nr,K++):(Qo=r,Lr===0&&Na(er)),Qo!==r?(we=ut,ar=YA(Jr,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,3)===Ac?(Gn=Ac,K+=3):(Gn=r,Lr===0&&Na(Nm)),Gn!==r?(we=ut,ar=HS(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,2)===jd?(Gn=jd,K+=2):(Gn=r,Lr===0&&Na(dh)),Gn!==r?(Ts=qI(),Ts!==r?(e.charCodeAt(K)===125?(Qo=Nr,K++):(Qo=r,Lr===0&&Na(er)),Qo!==r?(we=ut,ar=Hp(Jr,Ts),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.substr(K,3)===uC?(Gn=uC,K+=3):(Gn=r,Lr===0&&Na(nE)),Gn!==r?(we=ut,ar=J_(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.substr(K,2)===ip?(ar=ip,K+=2):(ar=r,Lr===0&&Na(_d)),ar!==r?(Jr=$0(),Jr!==r?(e.charCodeAt(K)===125?(Gn=Nr,K++):(Gn=r,Lr===0&&Na(er)),Gn!==r?(we=ut,ar=q0(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)):(K=ut,ut=r),ut===r&&(ut=K,e.charCodeAt(K)===36?(ar=XE,K++):(ar=r,Lr===0&&Na(TC)),ar!==r?(Jr=$0(),Jr!==r?(we=ut,ar=q0(Jr),ut=ar):(K=ut,ut=r)):(K=ut,ut=r)))))),ut}function Yp(){var ut,ar,Jr;return ut=K,ar=JS(),ar!==r?(we=K,Jr=t_(ar),Jr?Jr=void 0:Jr=r,Jr!==r?(we=ut,ar=cp(ar),ut=ar):(K=ut,ut=r)):(K=ut,ut=r),ut}function JS(){var ut,ar,Jr,Gn,Ts;if(ut=K,ar=[],Jr=K,Gn=K,Lr++,Ts=Q2(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r),Jr!==r)for(;Jr!==r;)ar.push(Jr),Jr=K,Gn=K,Lr++,Ts=Q2(),Lr--,Ts===r?Gn=void 0:(K=Gn,Gn=r),Gn!==r?(e.length>K?(Ts=e.charAt(K),K++):(Ts=r,Lr===0&&Na(yg)),Ts!==r?(we=Jr,Gn=_g(Ts),Jr=Gn):(K=Jr,Jr=r)):(K=Jr,Jr=r);else ar=r;return ar!==r&&(we=ut,ar=Ps(ar)),ut=ar,ut}function By(){var ut,ar,Jr;if(ut=K,ar=[],Mm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(fb)),Jr!==r)for(;Jr!==r;)ar.push(Jr),Mm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(fb));else ar=r;return ar!==r&&(we=ut,ar=pe()),ut=ar,ut}function $0(){var ut,ar,Jr;if(ut=K,ar=[],lm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Kf)),Jr!==r)for(;Jr!==r;)ar.push(Jr),lm.test(e.charAt(K))?(Jr=e.charAt(K),K++):(Jr=r,Lr===0&&Na(Kf));else ar=r;return ar!==r&&(we=ut,ar=pe()),ut=ar,ut}function fw(){var ut;return CI.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(_I)),ut}function Q2(){var ut;return H2.test(e.charAt(K))?(ut=e.charAt(K),K++):(ut=r,Lr===0&&Na(iE)),ut}function xc(){var ut,ar;if(ut=[],se.test(e.charAt(K))?(ar=e.charAt(K),K++):(ar=r,Lr===0&&Na(O)),ar!==r)for(;ar!==r;)ut.push(ar),se.test(e.charAt(K))?(ar=e.charAt(K),K++):(ar=r,Lr===0&&Na(O));else ut=r;return ut}if(fi=a(),fi!==r&&K===e.length)return fi;throw fi!==r&&K{"use strict";Object.defineProperty(XN,"__esModule",{value:!0});XN.parseShell=Rzs;XN.stringifyShellLine=_fe;XN.stringifyShell=_fe;XN.stringifyCommandLine=s6t;XN.stringifyCommandLineThen=$En;XN.stringifyCommandChain=o6t;XN.stringifyCommandChainThen=e1n;XN.stringifyCommand=t1n;XN.stringifyEnvSegment=i6t;XN.stringifyArgument=r1n;XN.stringifyRedirectArgument=Vct;XN.stringifyValueArgument=_Se;XN.stringifyArgumentSegment=s1n;XN.stringifyArithmeticExpression=a6t;XN.stringifyShellLine=_fe;XN.stringifyShell=_fe;var Tzs=qEn();function Rzs(e,t={isGlobPattern:()=>!1}){try{return(0,Tzs.parse)(e,t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function _fe(e,{endSemicolon:t=!1}={}){return e.map(({command:r,type:n},a)=>`${s6t(r)}${n===";"?a!==e.length-1||t?";":"":" &"}`).join(" ")}function s6t(e){return`${o6t(e.chain)}${e.then?` ${$En(e.then)}`:""}`}function $En(e){return`${e.type} ${s6t(e.line)}`}function o6t(e){return`${t1n(e)}${e.then?` ${e1n(e.then)}`:""}`}function e1n(e){return`${e.type} ${o6t(e.chain)}`}function t1n(e){switch(e.type){case"command":return`${e.envs.length>0?`${e.envs.map(t=>i6t(t)).join(" ")} `:""}${e.args.map(t=>r1n(t)).join(" ")}`;case"subshell":return`(${_fe(e.subshell)})${e.args.length>0?` ${e.args.map(t=>Vct(t)).join(" ")}`:""}`;case"group":return`{ ${_fe(e.group,{endSemicolon:!0})} }${e.args.length>0?` ${e.args.map(t=>Vct(t)).join(" ")}`:""}`;case"envs":return e.envs.map(t=>i6t(t)).join(" ");default:throw new Error(`Unsupported command type: "${e.type}"`)}}function i6t(e){return`${e.name}=${e.args[0]?_Se(e.args[0]):""}`}function r1n(e){switch(e.type){case"redirection":return Vct(e);case"argument":return _Se(e);default:throw new Error(`Unsupported argument type: "${e.type}"`)}}function Vct(e){return`${e.subtype} ${e.args.map(t=>_Se(t)).join(" ")}`}function _Se(e){return e.segments.map(t=>s1n(t)).join("")}var n1n=new Map([["\f","\\f"],[` -`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Nzs=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(n1n,([e,t])=>[e,`"$'${t}'"`])]),i1n=e=>n1n.get(e)??`\\x${e.charCodeAt(0).toString(16).padStart(2,"0")}`,Dzs=e=>Nzs.get(e)??`"$'${i1n(e)}'"`;function s1n(e){let t=(n,a)=>a?`"${n}"`:n,r=n=>n===""?"''":n.match(/[()}<>$|&;"'\n\t ]/)?n.match(/['\t\p{C}]/u)?n.match(/'/)?`"${n.replace(/["$\t\p{C}]/u,Dzs)}"`:`$'${n.replace(/[\t\p{C}]/u,i1n)}'`:`'${n}'`:n;switch(e.type){case"text":return r(e.text);case"glob":return e.pattern;case"shell":return t(`$(${_fe(e.shell)})`,e.quoted);case"variable":return t(typeof e.defaultValue>"u"?typeof e.alternativeValue>"u"?`\${${e.name}}`:e.alternativeValue.length===0?`\${${e.name}:+}`:`\${${e.name}:+${e.alternativeValue.map(n=>_Se(n)).join(" ")}}`:e.defaultValue.length===0?`\${${e.name}:-}`:`\${${e.name}:-${e.defaultValue.map(n=>_Se(n)).join(" ")}}`,e.quoted);case"arithmetic":return`$(( ${a6t(e.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${e.type}"`)}}function a6t(e){let t=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,o)=>o?`( ${a} )`:a,n=a=>r(a6t(a),!["number","variable"].includes(a.type));switch(e.type){case"number":return String(e.value);case"variable":return e.name;default:return`${n(e.left)} ${t(e.type)} ${n(e.right)}`}}});var c1n=H((N3l,a1n)=>{"use strict";function kzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function yfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yfe)}kzs(yfe,Error);yfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;bfe&&(fe=ae,ue=[]),ue.push(cr))}function er(cr,Ar){return new yfe(cr,null,null,Ar)}function vt(cr,Ar,qr){return new yfe(yfe.buildMessage(cr,Ar),cr,Ar,qr)}function xt(){var cr,Ar,qr,_n;return cr=ae,Ar=Zr(),Ar!==r?(e.charCodeAt(ae)===47?(qr=o,ae++):(qr=r,de===0&&Nr(l)),qr!==r?(_n=Zr(),_n!==r?(ne=cr,Ar=A(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Zr(),Ar!==r&&(ne=cr,Ar=f(Ar)),cr=Ar),cr}function Zr(){var cr,Ar,qr,_n;return cr=ae,Ar=qt(),Ar!==r?(e.charCodeAt(ae)===64?(qr=I,ae++):(qr=r,de===0&&Nr(C)),qr!==r?(_n=lr(),_n!==r?(ne=cr,Ar=b(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=qt(),Ar!==r&&(ne=cr,Ar=E(Ar)),cr=Ar),cr}function qt(){var cr,Ar,qr,_n,ke;return cr=ae,e.charCodeAt(ae)===64?(Ar=I,ae++):(Ar=r,de===0&&Nr(C)),Ar!==r?(qr=Xt(),qr!==r?(e.charCodeAt(ae)===47?(_n=o,ae++):(_n=r,de===0&&Nr(l)),_n!==r?(ke=Xt(),ke!==r?(ne=cr,Ar=N(),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Xt(),Ar!==r&&(ne=cr,Ar=N()),cr=Ar),cr}function Xt(){var cr,Ar,qr;if(cr=ae,Ar=[],B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F)),qr!==r)for(;qr!==r;)Ar.push(qr),B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}function lr(){var cr,Ar,qr;if(cr=ae,Ar=[],Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X)),qr!==r)for(;qr!==r;)Ar.push(qr),Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}if(be=a(),be!==r&&ae===e.length)return be;throw be!==r&&ae{"use strict";Object.defineProperty(Pct,"__esModule",{value:!0});Pct.parseResolution=Fzs;Pct.stringifyResolution=Zzs;var Gzs=c1n();function Fzs(e){let t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,Gzs.parse)(e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Zzs(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+=`@${e.from.description}`),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+=`@${e.descriptor.description}`),t}});var Efe=H((k3l,bfe)=>{"use strict";function u1n(e){return typeof e>"u"||e===null}function Lzs(e){return typeof e=="object"&&e!==null}function Vzs(e){return Array.isArray(e)?e:u1n(e)?[]:[e]}function Pzs(e,t){var r,n,a,o;if(t)for(o=Object.keys(t),r=0,n=o.length;r{"use strict";function qOe(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qOe.prototype=Object.create(Error.prototype);qOe.prototype.constructor=qOe;qOe.prototype.toString=function(t){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!t&&this.mark&&(r+=" "+this.mark.toString()),r};g1n.exports=qOe});var p1n=H((G3l,d1n)=>{"use strict";var A1n=Efe();function c6t(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}c6t.prototype.getSnippet=function(t,r){var n,a,o,l,A;if(!this.buffer)return null;for(t=t||4,r=r||75,n="",a=this.position;a>0&&`\0\r +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Nzs=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(n1n,([e,t])=>[e,`"$'${t}'"`])]),i1n=e=>n1n.get(e)??`\\x${e.charCodeAt(0).toString(16).padStart(2,"0")}`,Dzs=e=>Nzs.get(e)??`"$'${i1n(e)}'"`;function s1n(e){let t=(n,a)=>a?`"${n}"`:n,r=n=>n===""?"''":n.match(/[()}<>$|&;"'\n\t ]/)?n.match(/['\t\p{C}]/u)?n.match(/'/)?`"${n.replace(/["$\t\p{C}]/u,Dzs)}"`:`$'${n.replace(/[\t\p{C}]/u,i1n)}'`:`'${n}'`:n;switch(e.type){case"text":return r(e.text);case"glob":return e.pattern;case"shell":return t(`$(${_fe(e.shell)})`,e.quoted);case"variable":return t(typeof e.defaultValue>"u"?typeof e.alternativeValue>"u"?`\${${e.name}}`:e.alternativeValue.length===0?`\${${e.name}:+}`:`\${${e.name}:+${e.alternativeValue.map(n=>_Se(n)).join(" ")}}`:e.defaultValue.length===0?`\${${e.name}:-}`:`\${${e.name}:-${e.defaultValue.map(n=>_Se(n)).join(" ")}}`,e.quoted);case"arithmetic":return`$(( ${a6t(e.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${e.type}"`)}}function a6t(e){let t=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,o)=>o?`( ${a} )`:a,n=a=>r(a6t(a),!["number","variable"].includes(a.type));switch(e.type){case"number":return String(e.value);case"variable":return e.name;default:return`${n(e.left)} ${t(e.type)} ${n(e.right)}`}}});var c1n=H((D3l,a1n)=>{"use strict";function kzs(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function yfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,yfe)}kzs(yfe,Error);yfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;bfe&&(fe=ae,ue=[]),ue.push(cr))}function er(cr,Ar){return new yfe(cr,null,null,Ar)}function vt(cr,Ar,qr){return new yfe(yfe.buildMessage(cr,Ar),cr,Ar,qr)}function xt(){var cr,Ar,qr,_n;return cr=ae,Ar=Zr(),Ar!==r?(e.charCodeAt(ae)===47?(qr=o,ae++):(qr=r,de===0&&Nr(l)),qr!==r?(_n=Zr(),_n!==r?(ne=cr,Ar=A(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Zr(),Ar!==r&&(ne=cr,Ar=f(Ar)),cr=Ar),cr}function Zr(){var cr,Ar,qr,_n;return cr=ae,Ar=qt(),Ar!==r?(e.charCodeAt(ae)===64?(qr=I,ae++):(qr=r,de===0&&Nr(C)),qr!==r?(_n=lr(),_n!==r?(ne=cr,Ar=b(Ar,_n),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=qt(),Ar!==r&&(ne=cr,Ar=E(Ar)),cr=Ar),cr}function qt(){var cr,Ar,qr,_n,ke;return cr=ae,e.charCodeAt(ae)===64?(Ar=I,ae++):(Ar=r,de===0&&Nr(C)),Ar!==r?(qr=Xt(),qr!==r?(e.charCodeAt(ae)===47?(_n=o,ae++):(_n=r,de===0&&Nr(l)),_n!==r?(ke=Xt(),ke!==r?(ne=cr,Ar=N(),cr=Ar):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r)):(ae=cr,cr=r),cr===r&&(cr=ae,Ar=Xt(),Ar!==r&&(ne=cr,Ar=N()),cr=Ar),cr}function Xt(){var cr,Ar,qr;if(cr=ae,Ar=[],B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F)),qr!==r)for(;qr!==r;)Ar.push(qr),B.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(F));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}function lr(){var cr,Ar,qr;if(cr=ae,Ar=[],Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X)),qr!==r)for(;qr!==r;)Ar.push(qr),Q.test(e.charAt(ae))?(qr=e.charAt(ae),ae++):(qr=r,de===0&&Nr(X));else Ar=r;return Ar!==r&&(ne=cr,Ar=N()),cr=Ar,cr}if(be=a(),be!==r&&ae===e.length)return be;throw be!==r&&ae{"use strict";Object.defineProperty(Pct,"__esModule",{value:!0});Pct.parseResolution=Fzs;Pct.stringifyResolution=Zzs;var Gzs=c1n();function Fzs(e){let t=e.match(/^\*{1,2}\/(.*)/);if(t)throw new Error(`The override for '${e}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${t[1]}' instead.`);try{return(0,Gzs.parse)(e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function Zzs(e){let t="";return e.from&&(t+=e.from.fullName,e.from.description&&(t+=`@${e.from.description}`),t+="/"),t+=e.descriptor.fullName,e.descriptor.description&&(t+=`@${e.descriptor.description}`),t}});var Efe=H((x3l,bfe)=>{"use strict";function u1n(e){return typeof e>"u"||e===null}function Lzs(e){return typeof e=="object"&&e!==null}function Vzs(e){return Array.isArray(e)?e:u1n(e)?[]:[e]}function Pzs(e,t){var r,n,a,o;if(t)for(o=Object.keys(t),r=0,n=o.length;r{"use strict";function qOe(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}qOe.prototype=Object.create(Error.prototype);qOe.prototype.constructor=qOe;qOe.prototype.toString=function(t){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!t&&this.mark&&(r+=" "+this.mark.toString()),r};g1n.exports=qOe});var p1n=H((F3l,d1n)=>{"use strict";var A1n=Efe();function c6t(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}c6t.prototype.getSnippet=function(t,r){var n,a,o,l,A;if(!this.buffer)return null;for(t=t||4,r=r||75,n="",a=this.position;a>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){n=" ... ",a+=5;break}for(o="",l=this.position;lr/2-1){o=" ... ",l-=5;break}return A=this.buffer.slice(a,l),A1n.repeat(" ",t)+n+A+o+` `+A1n.repeat(" ",t+this.position-a+n.length)+"^"};c6t.prototype.toString=function(t){var r,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),t||(r=this.getSnippet(),r&&(n+=`: -`+r)),n};d1n.exports=c6t});var ER=H((F3l,I1n)=>{"use strict";var f1n=ySe(),Mzs=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Hzs=["scalar","sequence","mapping"];function Yzs(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function Qzs(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(Mzs.indexOf(r)===-1)throw new f1n('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=Yzs(t.styleAliases||null),Hzs.indexOf(this.kind)===-1)throw new f1n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}I1n.exports=Qzs});var Sfe=H((Z3l,m1n)=>{"use strict";var h1n=Efe(),Wct=ySe(),Xzs=ER();function l6t(e,t,r){var n=[];return e.include.forEach(function(a){r=l6t(a,t,r)}),e[t].forEach(function(a){r.forEach(function(o,l){o.tag===a.tag&&o.kind===a.kind&&n.push(l)}),r.push(a)}),r.filter(function(a,o){return n.indexOf(o)===-1})}function Jzs(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,r;function n(a){e[a.kind][a.tag]=e.fallback[a.tag]=a}for(t=0,r=arguments.length;t{"use strict";var Uzs=ER();C1n.exports=new Uzs("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var b1n=H((V3l,y1n)=>{"use strict";var Kzs=ER();y1n.exports=new Kzs("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var S1n=H((P3l,E1n)=>{"use strict";var jzs=ER();E1n.exports=new jzs("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var Oct=H((W3l,v1n)=>{"use strict";var zzs=Sfe();v1n.exports=new zzs({explicit:[_1n(),b1n(),S1n()]})});var w1n=H((O3l,B1n)=>{"use strict";var qzs=ER();function $zs(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function eqs(){return null}function tqs(e){return e===null}B1n.exports=new qzs("tag:yaml.org,2002:null",{kind:"scalar",resolve:$zs,construct:eqs,predicate:tqs,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var R1n=H((M3l,T1n)=>{"use strict";var rqs=ER();function nqs(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function iqs(e){return e==="true"||e==="True"||e==="TRUE"}function sqs(e){return Object.prototype.toString.call(e)==="[object Boolean]"}T1n.exports=new rqs("tag:yaml.org,2002:bool",{kind:"scalar",resolve:nqs,construct:iqs,predicate:sqs,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var D1n=H((H3l,N1n)=>{"use strict";var oqs=Efe(),aqs=ER();function cqs(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function lqs(e){return 48<=e&&e<=55}function uqs(e){return 48<=e&&e<=57}function gqs(e){if(e===null)return!1;var t=e.length,r=0,n=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var G1n=H((Y3l,x1n)=>{"use strict";var k1n=Efe(),pqs=ER(),fqs=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Iqs(e){return!(e===null||!fqs.test(e)||e[e.length-1]==="_")}function hqs(e){var t,r,n,a;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,a=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(o){a.unshift(parseFloat(o,10))}),t=0,n=1,a.forEach(function(o){t+=o*n,n*=60}),r*t):r*parseFloat(t,10)}var mqs=/^[-+]?[0-9]+e/;function Cqs(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(k1n.isNegativeZero(e))return"-0.0";return r=e.toString(10),mqs.test(r)?r.replace("e",".e"):r}function _qs(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||k1n.isNegativeZero(e))}x1n.exports=new pqs("tag:yaml.org,2002:float",{kind:"scalar",resolve:Iqs,construct:hqs,predicate:_qs,represent:Cqs,defaultStyle:"lowercase"})});var u6t=H((Q3l,F1n)=>{"use strict";var yqs=Sfe();F1n.exports=new yqs({include:[Oct()],implicit:[w1n(),R1n(),D1n(),G1n()]})});var g6t=H((X3l,Z1n)=>{"use strict";var bqs=Sfe();Z1n.exports=new bqs({include:[u6t()]})});var W1n=H((J3l,P1n)=>{"use strict";var Eqs=ER(),L1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),V1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Sqs(e){return e===null?!1:L1n.exec(e)!==null||V1n.exec(e)!==null}function vqs(e){var t,r,n,a,o,l,A,f=0,I=null,C,b,E;if(t=L1n.exec(e),t===null&&(t=V1n.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(o=+t[4],l=+t[5],A=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(C=+t[10],b=+(t[11]||0),I=(C*60+b)*6e4,t[9]==="-"&&(I=-I)),E=new Date(Date.UTC(r,n,a,o,l,A,f)),I&&E.setTime(E.getTime()-I),E}function Bqs(e){return e.toISOString()}P1n.exports=new Eqs("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Sqs,construct:vqs,instanceOf:Date,represent:Bqs})});var M1n=H((U3l,O1n)=>{"use strict";var wqs=ER();function Tqs(e){return e==="<<"||e===null}O1n.exports=new wqs("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Tqs})});var Q1n=H((K3l,Y1n)=>{"use strict";var vfe;try{H1n=wt,vfe=H1n("buffer").Buffer}catch{}var H1n,Rqs=ER(),A6t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function Nqs(e){if(e===null)return!1;var t,r,n=0,a=e.length,o=A6t;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8===0}function Dqs(e){var t,r,n=e.replace(/[\r\n=]/g,""),a=n.length,o=A6t,l=0,A=[];for(t=0;t>16&255),A.push(l>>8&255),A.push(l&255)),l=l<<6|o.indexOf(n.charAt(t));return r=a%4*6,r===0?(A.push(l>>16&255),A.push(l>>8&255),A.push(l&255)):r===18?(A.push(l>>10&255),A.push(l>>2&255)):r===12&&A.push(l>>4&255),vfe?vfe.from?vfe.from(A):new vfe(A):A}function kqs(e){var t="",r=0,n,a,o=e.length,l=A6t;for(n=0;n>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]),r=(r<<8)+e[n];return a=o%3,a===0?(t+=l[r>>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]):a===2?(t+=l[r>>10&63],t+=l[r>>4&63],t+=l[r<<2&63],t+=l[64]):a===1&&(t+=l[r>>2&63],t+=l[r<<4&63],t+=l[64],t+=l[64]),t}function xqs(e){return vfe&&vfe.isBuffer(e)}Y1n.exports=new Rqs("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Nqs,construct:Dqs,predicate:xqs,represent:kqs})});var J1n=H((z3l,X1n)=>{"use strict";var Gqs=ER(),Fqs=Object.prototype.hasOwnProperty,Zqs=Object.prototype.toString;function Lqs(e){if(e===null)return!0;var t=[],r,n,a,o,l,A=e;for(r=0,n=A.length;r{"use strict";var Pqs=ER(),Wqs=Object.prototype.toString;function Oqs(e){if(e===null)return!0;var t,r,n,a,o,l=e;for(o=new Array(l.length),t=0,r=l.length;t{"use strict";var Hqs=ER(),Yqs=Object.prototype.hasOwnProperty;function Qqs(e){if(e===null)return!0;var t,r=e;for(t in r)if(Yqs.call(r,t)&&r[t]!==null)return!1;return!0}function Xqs(e){return e!==null?e:{}}j1n.exports=new Hqs("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qqs,construct:Xqs})});var ESe=H((e5l,q1n)=>{"use strict";var Jqs=Sfe();q1n.exports=new Jqs({include:[g6t()],implicit:[W1n(),M1n()],explicit:[Q1n(),J1n(),K1n(),z1n()]})});var e2n=H((t5l,$1n)=>{"use strict";var Uqs=ER();function Kqs(){return!0}function jqs(){}function zqs(){return""}function qqs(e){return typeof e>"u"}$1n.exports=new Uqs("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Kqs,construct:jqs,predicate:qqs,represent:zqs})});var r2n=H((r5l,t2n)=>{"use strict";var $qs=ER();function e$s(e){if(e===null||e.length===0)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";return!(t[0]==="/"&&(r&&(n=r[1]),n.length>3||t[t.length-n.length-1]!=="/"))}function t$s(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return t[0]==="/"&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)}function r$s(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function n$s(e){return Object.prototype.toString.call(e)==="[object RegExp]"}t2n.exports=new $qs("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:e$s,construct:t$s,predicate:n$s,represent:r$s})});var s2n=H((n5l,i2n)=>{"use strict";var Mct;try{n2n=wt,Mct=n2n("esprima")}catch{typeof window<"u"&&(Mct=window.esprima)}var n2n,i$s=ER();function s$s(e){if(e===null)return!1;try{var t="("+e+")",r=Mct.parse(t,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function o$s(e){var t="("+e+")",r=Mct.parse(t,{range:!0}),n=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(o){n.push(o.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}function a$s(e){return e.toString()}function c$s(e){return Object.prototype.toString.call(e)==="[object Function]"}i2n.exports=new i$s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:s$s,construct:o$s,predicate:c$s,represent:a$s})});var $Oe=H((s5l,a2n)=>{"use strict";var o2n=Sfe();a2n.exports=o2n.DEFAULT=new o2n({include:[ESe()],explicit:[e2n(),r2n(),s2n()]})});var B2n=H((o5l,e3e)=>{"use strict";var Qq=Efe(),p2n=ySe(),l$s=p1n(),f2n=ESe(),u$s=$Oe(),toe=Object.prototype.hasOwnProperty,Hct=1,I2n=2,h2n=3,Yct=4,d6t=1,g$s=2,c2n=3,A$s=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d$s=/[\x85\u2028\u2029]/,p$s=/[,\[\]\{\}]/,m2n=/^(?:!|!!|![a-z\-]+!)$/i,C2n=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function l2n(e){return Object.prototype.toString.call(e)}function LK(e){return e===10||e===13}function wfe(e){return e===9||e===32}function W9(e){return e===9||e===32||e===10||e===13}function SSe(e){return e===44||e===91||e===93||e===123||e===125}function f$s(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function I$s(e){return e===120?2:e===117?4:e===85?8:0}function h$s(e){return 48<=e&&e<=57?e-48:-1}function u2n(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` +`+r)),n};d1n.exports=c6t});var ER=H((Z3l,I1n)=>{"use strict";var f1n=ySe(),Mzs=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Hzs=["scalar","sequence","mapping"];function Yzs(e){var t={};return e!==null&&Object.keys(e).forEach(function(r){e[r].forEach(function(n){t[String(n)]=r})}),t}function Qzs(e,t){if(t=t||{},Object.keys(t).forEach(function(r){if(Mzs.indexOf(r)===-1)throw new f1n('Unknown option "'+r+'" is met in definition of "'+e+'" YAML type.')}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(r){return r},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=Yzs(t.styleAliases||null),Hzs.indexOf(this.kind)===-1)throw new f1n('Unknown kind "'+this.kind+'" is specified for "'+e+'" YAML type.')}I1n.exports=Qzs});var Sfe=H((L3l,m1n)=>{"use strict";var h1n=Efe(),Wct=ySe(),Xzs=ER();function l6t(e,t,r){var n=[];return e.include.forEach(function(a){r=l6t(a,t,r)}),e[t].forEach(function(a){r.forEach(function(o,l){o.tag===a.tag&&o.kind===a.kind&&n.push(l)}),r.push(a)}),r.filter(function(a,o){return n.indexOf(o)===-1})}function Jzs(){var e={scalar:{},sequence:{},mapping:{},fallback:{}},t,r;function n(a){e[a.kind][a.tag]=e.fallback[a.tag]=a}for(t=0,r=arguments.length;t{"use strict";var Uzs=ER();C1n.exports=new Uzs("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return e!==null?e:""}})});var b1n=H((P3l,y1n)=>{"use strict";var Kzs=ER();y1n.exports=new Kzs("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return e!==null?e:[]}})});var S1n=H((W3l,E1n)=>{"use strict";var jzs=ER();E1n.exports=new jzs("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return e!==null?e:{}}})});var Oct=H((O3l,v1n)=>{"use strict";var zzs=Sfe();v1n.exports=new zzs({explicit:[_1n(),b1n(),S1n()]})});var w1n=H((M3l,B1n)=>{"use strict";var qzs=ER();function $zs(e){if(e===null)return!0;var t=e.length;return t===1&&e==="~"||t===4&&(e==="null"||e==="Null"||e==="NULL")}function eqs(){return null}function tqs(e){return e===null}B1n.exports=new qzs("tag:yaml.org,2002:null",{kind:"scalar",resolve:$zs,construct:eqs,predicate:tqs,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var R1n=H((H3l,T1n)=>{"use strict";var rqs=ER();function nqs(e){if(e===null)return!1;var t=e.length;return t===4&&(e==="true"||e==="True"||e==="TRUE")||t===5&&(e==="false"||e==="False"||e==="FALSE")}function iqs(e){return e==="true"||e==="True"||e==="TRUE"}function sqs(e){return Object.prototype.toString.call(e)==="[object Boolean]"}T1n.exports=new rqs("tag:yaml.org,2002:bool",{kind:"scalar",resolve:nqs,construct:iqs,predicate:sqs,represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})});var D1n=H((Y3l,N1n)=>{"use strict";var oqs=Efe(),aqs=ER();function cqs(e){return 48<=e&&e<=57||65<=e&&e<=70||97<=e&&e<=102}function lqs(e){return 48<=e&&e<=55}function uqs(e){return 48<=e&&e<=57}function gqs(e){if(e===null)return!1;var t=e.length,r=0,n=!1,a;if(!t)return!1;if(a=e[r],(a==="-"||a==="+")&&(a=e[++r]),a==="0"){if(r+1===t)return!0;if(a=e[++r],a==="b"){for(r++;r=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var G1n=H((Q3l,x1n)=>{"use strict";var k1n=Efe(),pqs=ER(),fqs=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Iqs(e){return!(e===null||!fqs.test(e)||e[e.length-1]==="_")}function hqs(e){var t,r,n,a;return t=e.replace(/_/g,"").toLowerCase(),r=t[0]==="-"?-1:1,a=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),t===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:t===".nan"?NaN:t.indexOf(":")>=0?(t.split(":").forEach(function(o){a.unshift(parseFloat(o,10))}),t=0,n=1,a.forEach(function(o){t+=o*n,n*=60}),r*t):r*parseFloat(t,10)}var mqs=/^[-+]?[0-9]+e/;function Cqs(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(k1n.isNegativeZero(e))return"-0.0";return r=e.toString(10),mqs.test(r)?r.replace("e",".e"):r}function _qs(e){return Object.prototype.toString.call(e)==="[object Number]"&&(e%1!==0||k1n.isNegativeZero(e))}x1n.exports=new pqs("tag:yaml.org,2002:float",{kind:"scalar",resolve:Iqs,construct:hqs,predicate:_qs,represent:Cqs,defaultStyle:"lowercase"})});var u6t=H((X3l,F1n)=>{"use strict";var yqs=Sfe();F1n.exports=new yqs({include:[Oct()],implicit:[w1n(),R1n(),D1n(),G1n()]})});var g6t=H((J3l,Z1n)=>{"use strict";var bqs=Sfe();Z1n.exports=new bqs({include:[u6t()]})});var W1n=H((U3l,P1n)=>{"use strict";var Eqs=ER(),L1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),V1n=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Sqs(e){return e===null?!1:L1n.exec(e)!==null||V1n.exec(e)!==null}function vqs(e){var t,r,n,a,o,l,A,f=0,I=null,C,b,E;if(t=L1n.exec(e),t===null&&(t=V1n.exec(e)),t===null)throw new Error("Date resolve error");if(r=+t[1],n=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(r,n,a));if(o=+t[4],l=+t[5],A=+t[6],t[7]){for(f=t[7].slice(0,3);f.length<3;)f+="0";f=+f}return t[9]&&(C=+t[10],b=+(t[11]||0),I=(C*60+b)*6e4,t[9]==="-"&&(I=-I)),E=new Date(Date.UTC(r,n,a,o,l,A,f)),I&&E.setTime(E.getTime()-I),E}function Bqs(e){return e.toISOString()}P1n.exports=new Eqs("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Sqs,construct:vqs,instanceOf:Date,represent:Bqs})});var M1n=H((K3l,O1n)=>{"use strict";var wqs=ER();function Tqs(e){return e==="<<"||e===null}O1n.exports=new wqs("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Tqs})});var Q1n=H((j3l,Y1n)=>{"use strict";var vfe;try{H1n=wt,vfe=H1n("buffer").Buffer}catch{}var H1n,Rqs=ER(),A6t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Nqs(e){if(e===null)return!1;var t,r,n=0,a=e.length,o=A6t;for(r=0;r64)){if(t<0)return!1;n+=6}return n%8===0}function Dqs(e){var t,r,n=e.replace(/[\r\n=]/g,""),a=n.length,o=A6t,l=0,A=[];for(t=0;t>16&255),A.push(l>>8&255),A.push(l&255)),l=l<<6|o.indexOf(n.charAt(t));return r=a%4*6,r===0?(A.push(l>>16&255),A.push(l>>8&255),A.push(l&255)):r===18?(A.push(l>>10&255),A.push(l>>2&255)):r===12&&A.push(l>>4&255),vfe?vfe.from?vfe.from(A):new vfe(A):A}function kqs(e){var t="",r=0,n,a,o=e.length,l=A6t;for(n=0;n>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]),r=(r<<8)+e[n];return a=o%3,a===0?(t+=l[r>>18&63],t+=l[r>>12&63],t+=l[r>>6&63],t+=l[r&63]):a===2?(t+=l[r>>10&63],t+=l[r>>4&63],t+=l[r<<2&63],t+=l[64]):a===1&&(t+=l[r>>2&63],t+=l[r<<4&63],t+=l[64],t+=l[64]),t}function xqs(e){return vfe&&vfe.isBuffer(e)}Y1n.exports=new Rqs("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Nqs,construct:Dqs,predicate:xqs,represent:kqs})});var J1n=H((q3l,X1n)=>{"use strict";var Gqs=ER(),Fqs=Object.prototype.hasOwnProperty,Zqs=Object.prototype.toString;function Lqs(e){if(e===null)return!0;var t=[],r,n,a,o,l,A=e;for(r=0,n=A.length;r{"use strict";var Pqs=ER(),Wqs=Object.prototype.toString;function Oqs(e){if(e===null)return!0;var t,r,n,a,o,l=e;for(o=new Array(l.length),t=0,r=l.length;t{"use strict";var Hqs=ER(),Yqs=Object.prototype.hasOwnProperty;function Qqs(e){if(e===null)return!0;var t,r=e;for(t in r)if(Yqs.call(r,t)&&r[t]!==null)return!1;return!0}function Xqs(e){return e!==null?e:{}}j1n.exports=new Hqs("tag:yaml.org,2002:set",{kind:"mapping",resolve:Qqs,construct:Xqs})});var ESe=H((t5l,q1n)=>{"use strict";var Jqs=Sfe();q1n.exports=new Jqs({include:[g6t()],implicit:[W1n(),M1n()],explicit:[Q1n(),J1n(),K1n(),z1n()]})});var e2n=H((r5l,$1n)=>{"use strict";var Uqs=ER();function Kqs(){return!0}function jqs(){}function zqs(){return""}function qqs(e){return typeof e>"u"}$1n.exports=new Uqs("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Kqs,construct:jqs,predicate:qqs,represent:zqs})});var r2n=H((n5l,t2n)=>{"use strict";var $qs=ER();function e$s(e){if(e===null||e.length===0)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";return!(t[0]==="/"&&(r&&(n=r[1]),n.length>3||t[t.length-n.length-1]!=="/"))}function t$s(e){var t=e,r=/\/([gim]*)$/.exec(e),n="";return t[0]==="/"&&(r&&(n=r[1]),t=t.slice(1,t.length-n.length-1)),new RegExp(t,n)}function r$s(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}function n$s(e){return Object.prototype.toString.call(e)==="[object RegExp]"}t2n.exports=new $qs("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:e$s,construct:t$s,predicate:n$s,represent:r$s})});var s2n=H((i5l,i2n)=>{"use strict";var Mct;try{n2n=wt,Mct=n2n("esprima")}catch{typeof window<"u"&&(Mct=window.esprima)}var n2n,i$s=ER();function s$s(e){if(e===null)return!1;try{var t="("+e+")",r=Mct.parse(t,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function o$s(e){var t="("+e+")",r=Mct.parse(t,{range:!0}),n=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(o){n.push(o.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}function a$s(e){return e.toString()}function c$s(e){return Object.prototype.toString.call(e)==="[object Function]"}i2n.exports=new i$s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:s$s,construct:o$s,predicate:c$s,represent:a$s})});var $Oe=H((o5l,a2n)=>{"use strict";var o2n=Sfe();a2n.exports=o2n.DEFAULT=new o2n({include:[ESe()],explicit:[e2n(),r2n(),s2n()]})});var B2n=H((a5l,e3e)=>{"use strict";var Qq=Efe(),p2n=ySe(),l$s=p1n(),f2n=ESe(),u$s=$Oe(),toe=Object.prototype.hasOwnProperty,Hct=1,I2n=2,h2n=3,Yct=4,d6t=1,g$s=2,c2n=3,A$s=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,d$s=/[\x85\u2028\u2029]/,p$s=/[,\[\]\{\}]/,m2n=/^(?:!|!!|![a-z\-]+!)$/i,C2n=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function l2n(e){return Object.prototype.toString.call(e)}function LK(e){return e===10||e===13}function wfe(e){return e===9||e===32}function W9(e){return e===9||e===32||e===10||e===13}function SSe(e){return e===44||e===91||e===93||e===123||e===125}function f$s(e){var t;return 48<=e&&e<=57?e-48:(t=e|32,97<=t&&t<=102?t-97+10:-1)}function I$s(e){return e===120?2:e===117?4:e===85?8:0}function h$s(e){return 48<=e&&e<=57?e-48:-1}function u2n(e){return e===48?"\0":e===97?"\x07":e===98?"\b":e===116||e===9?" ":e===110?` `:e===118?"\v":e===102?"\f":e===114?"\r":e===101?"\x1B":e===32?" ":e===34?'"':e===47?"/":e===92?"\\":e===78?"\x85":e===95?"\xA0":e===76?"\u2028":e===80?"\u2029":""}function m$s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode((e-65536>>10)+55296,(e-65536&1023)+56320)}var _2n=new Array(256),y2n=new Array(256);for(Bfe=0;Bfe<256;Bfe++)_2n[Bfe]=u2n(Bfe)?1:0,y2n[Bfe]=u2n(Bfe);var Bfe;function C$s(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||u$s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function b2n(e,t){return new p2n(t,new l$s(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function zp(e,t){throw b2n(e,t)}function Qct(e,t){e.onWarning&&e.onWarning.call(null,b2n(e,t))}var g2n={YAML:function(t,r,n){var a,o,l;t.version!==null&&zp(t,"duplication of %YAML directive"),n.length!==1&&zp(t,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(n[0]),a===null&&zp(t,"ill-formed argument of the YAML directive"),o=parseInt(a[1],10),l=parseInt(a[2],10),o!==1&&zp(t,"unacceptable YAML version of the document"),t.version=n[0],t.checkLineBreaks=l<2,l!==1&&l!==2&&Qct(t,"unsupported YAML version of the document")},TAG:function(t,r,n){var a,o;n.length!==2&&zp(t,"TAG directive accepts exactly two arguments"),a=n[0],o=n[1],m2n.test(a)||zp(t,"ill-formed tag handle (first argument) of the TAG directive"),toe.call(t.tagMap,a)&&zp(t,'there is a previously declared suffix for "'+a+'" tag handle'),C2n.test(o)||zp(t,"ill-formed tag prefix (second argument) of the TAG directive"),t.tagMap[a]=o}};function eoe(e,t,r,n){var a,o,l,A;if(t1&&(e.result+=Qq.repeat(` `,t-1))}function _$s(e,t,r){var n,a,o,l,A,f,I,C,b=e.kind,E=e.result,N;if(N=e.input.charCodeAt(e.position),W9(N)||SSe(N)||N===35||N===38||N===42||N===33||N===124||N===62||N===39||N===34||N===37||N===64||N===96||(N===63||N===45)&&(a=e.input.charCodeAt(e.position+1),W9(a)||r&&SSe(a)))return!1;for(e.kind="scalar",e.result="",o=l=e.position,A=!1;N!==0;){if(N===58){if(a=e.input.charCodeAt(e.position+1),W9(a)||r&&SSe(a))break}else if(N===35){if(n=e.input.charCodeAt(e.position-1),W9(n))break}else{if(e.position===e.lineStart&&Xct(e)||r&&SSe(N))break;if(LK(N))if(f=e.line,I=e.lineStart,C=e.lineIndent,qw(e,!1,-1),e.lineIndent>=t){A=!0,N=e.input.charCodeAt(e.position);continue}else{e.position=l,e.line=f,e.lineStart=I,e.lineIndent=C;break}}A&&(eoe(e,o,l,!1),f6t(e,e.line-f),o=l=e.position,A=!1),wfe(N)||(l=e.position+1),N=e.input.charCodeAt(++e.position)}return eoe(e,o,l,!1),e.result?!0:(e.kind=b,e.result=E,!1)}function y$s(e,t){var r,n,a;if(r=e.input.charCodeAt(e.position),r!==39)return!1;for(e.kind="scalar",e.result="",e.position++,n=a=e.position;(r=e.input.charCodeAt(e.position))!==0;)if(r===39)if(eoe(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),r===39)n=e.position,e.position++,a=e.position;else return!0;else LK(r)?(eoe(e,n,a,!0),f6t(e,qw(e,!1,t)),n=a=e.position):e.position===e.lineStart&&Xct(e)?zp(e,"unexpected end of the document within a single quoted scalar"):(e.position++,a=e.position);zp(e,"unexpected end of the stream within a single quoted scalar")}function b$s(e,t){var r,n,a,o,l,A;if(A=e.input.charCodeAt(e.position),A!==34)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;(A=e.input.charCodeAt(e.position))!==0;){if(A===34)return eoe(e,r,e.position,!0),e.position++,!0;if(A===92){if(eoe(e,r,e.position,!0),A=e.input.charCodeAt(++e.position),LK(A))qw(e,!1,t);else if(A<256&&_2n[A])e.result+=y2n[A],e.position++;else if((l=I$s(A))>0){for(a=l,o=0;a>0;a--)A=e.input.charCodeAt(++e.position),(l=f$s(A))>=0?o=(o<<4)+l:zp(e,"expected hexadecimal character");e.result+=m$s(o),e.position++}else zp(e,"unknown escape sequence");r=n=e.position}else LK(A)?(eoe(e,r,n,!0),f6t(e,qw(e,!1,t)),r=n=e.position):e.position===e.lineStart&&Xct(e)?zp(e,"unexpected end of the document within a double quoted scalar"):(e.position++,n=e.position)}zp(e,"unexpected end of the stream within a double quoted scalar")}function E$s(e,t){var r=!0,n,a=e.tag,o,l=e.anchor,A,f,I,C,b,E={},N,B,F,Q;if(Q=e.input.charCodeAt(e.position),Q===91)f=93,b=!1,o=[];else if(Q===123)f=125,b=!0,o={};else return!1;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),Q=e.input.charCodeAt(++e.position);Q!==0;){if(qw(e,!0,t),Q=e.input.charCodeAt(e.position),Q===f)return e.position++,e.tag=a,e.anchor=l,e.kind=b?"mapping":"sequence",e.result=o,!0;r||zp(e,"missed comma between flow collection entries"),B=N=F=null,I=C=!1,Q===63&&(A=e.input.charCodeAt(e.position+1),W9(A)&&(I=C=!0,e.position++,qw(e,!0,t))),n=e.line,BSe(e,t,Hct,!1,!0),B=e.tag,N=e.result,qw(e,!0,t),Q=e.input.charCodeAt(e.position),(C||e.line===n)&&Q===58&&(I=!0,Q=e.input.charCodeAt(++e.position),qw(e,!0,t),BSe(e,t,Hct,!1,!0),F=e.result),b?vSe(e,o,E,B,N,F):I?o.push(vSe(e,null,E,B,N,F)):o.push(N),qw(e,!0,t),Q=e.input.charCodeAt(e.position),Q===44?(r=!0,Q=e.input.charCodeAt(++e.position)):r=!1}zp(e,"unexpected end of the stream within a flow collection")}function S$s(e,t){var r,n,a=d6t,o=!1,l=!1,A=t,f=0,I=!1,C,b;if(b=e.input.charCodeAt(e.position),b===124)n=!1;else if(b===62)n=!0;else return!1;for(e.kind="scalar",e.result="";b!==0;)if(b=e.input.charCodeAt(++e.position),b===43||b===45)d6t===a?a=b===43?c2n:g$s:zp(e,"repeat of a chomping mode identifier");else if((C=h$s(b))>=0)C===0?zp(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):l?zp(e,"repeat of an indentation width identifier"):(A=t+C-1,l=!0);else break;if(wfe(b)){do b=e.input.charCodeAt(++e.position);while(wfe(b));if(b===35)do b=e.input.charCodeAt(++e.position);while(!LK(b)&&b!==0)}for(;b!==0;){for(p6t(e),e.lineIndent=0,b=e.input.charCodeAt(e.position);(!l||e.lineIndentA&&(A=e.lineIndent),LK(b)){f++;continue}if(e.lineIndent` `,f+1)):f===0?o&&(e.result+=" "):e.result+=Qq.repeat(` `,f):e.result+=Qq.repeat(` `,o?1+f:f),o=!0,l=!0,f=0,r=e.position;!LK(b)&&b!==0;)b=e.input.charCodeAt(++e.position);eoe(e,r,e.position,!1)}return!0}function d2n(e,t){var r,n=e.tag,a=e.anchor,o=[],l,A=!1,f;for(e.anchor!==null&&(e.anchorMap[e.anchor]=o),f=e.input.charCodeAt(e.position);f!==0&&!(f!==45||(l=e.input.charCodeAt(e.position+1),!W9(l)));){if(A=!0,e.position++,qw(e,!0,-1)&&e.lineIndent<=t){o.push(null),f=e.input.charCodeAt(e.position);continue}if(r=e.line,BSe(e,t,h2n,!1,!0),o.push(e.result),qw(e,!0,-1),f=e.input.charCodeAt(e.position),(e.line===r||e.lineIndent>t)&&f!==0)zp(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(BSe(e,t,Yct,!0,a)&&(B?E=e.result:N=e.result),B||(vSe(e,I,C,b,E,N,o,l),b=E=N=null),qw(e,!0,-1),Q=e.input.charCodeAt(e.position)),e.lineIndent>t&&Q!==0)zp(e,"bad indentation of a mapping entry");else if(e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndentt?f=1:e.lineIndent===t?f=0:e.lineIndent tag; it should be "scalar", not "'+e.kind+'"'),b=0,E=e.implicitTypes.length;b tag; it should be "'+N.kind+'", not "'+e.kind+'"'),N.resolve(e.result)?(e.result=N.construct(e.result),e.anchor!==null&&(e.anchorMap[e.anchor]=e.result)):zp(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):zp(e,"unknown tag !<"+e.tag+">");return e.listener!==null&&e.listener("close",e),e.tag!==null||e.anchor!==null||C}function R$s(e){var t=e.position,r,n,a,o=!1,l;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};(l=e.input.charCodeAt(e.position))!==0&&(qw(e,!0,-1),l=e.input.charCodeAt(e.position),!(e.lineIndent>0||l!==37));){for(o=!0,l=e.input.charCodeAt(++e.position),r=e.position;l!==0&&!W9(l);)l=e.input.charCodeAt(++e.position);for(n=e.input.slice(r,e.position),a=[],n.length<1&&zp(e,"directive name must not be less than one character in length");l!==0;){for(;wfe(l);)l=e.input.charCodeAt(++e.position);if(l===35){do l=e.input.charCodeAt(++e.position);while(l!==0&&!LK(l));break}if(LK(l))break;for(r=e.position;l!==0&&!W9(l);)l=e.input.charCodeAt(++e.position);a.push(e.input.slice(r,e.position))}l!==0&&p6t(e),toe.call(g2n,n)?g2n[n](e,n,a):Qct(e,'unknown document directive "'+n+'"')}if(qw(e,!0,-1),e.lineIndent===0&&e.input.charCodeAt(e.position)===45&&e.input.charCodeAt(e.position+1)===45&&e.input.charCodeAt(e.position+2)===45?(e.position+=3,qw(e,!0,-1)):o&&zp(e,"directives end mark is expected"),BSe(e,e.lineIndent-1,Yct,!1,!0),qw(e,!0,-1),e.checkLineBreaks&&d$s.test(e.input.slice(t,e.position))&&Qct(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&Xct(e)){e.input.charCodeAt(e.position)===46&&(e.position+=3,qw(e,!0,-1));return}if(e.position"u"&&(r=t,t=null);var n=E2n(e,r);if(typeof t!="function")return n;for(var a=0,o=n.length;a"u"&&(r=t,t=null),S2n(e,t,Qq.extend({schema:f2n},r))}function D$s(e,t){return v2n(e,Qq.extend({schema:f2n},t))}e3e.exports.loadAll=S2n;e3e.exports.load=v2n;e3e.exports.safeLoadAll=N$s;e3e.exports.safeLoad=D$s});var K2n=H((a5l,C6t)=>{"use strict";var r3e=Efe(),n3e=ySe(),k$s=$Oe(),x$s=ESe(),G2n=Object.prototype.toString,F2n=Object.prototype.hasOwnProperty,G$s=9,t3e=10,F$s=13,Z$s=32,L$s=33,V$s=34,Z2n=35,P$s=37,W$s=38,O$s=39,M$s=42,L2n=44,H$s=45,V2n=58,Y$s=61,Q$s=62,X$s=63,J$s=64,P2n=91,W2n=93,U$s=96,O2n=123,K$s=124,M2n=125,aG={};aG[0]="\\0";aG[7]="\\a";aG[8]="\\b";aG[9]="\\t";aG[10]="\\n";aG[11]="\\v";aG[12]="\\f";aG[13]="\\r";aG[27]="\\e";aG[34]='\\"';aG[92]="\\\\";aG[133]="\\N";aG[160]="\\_";aG[8232]="\\L";aG[8233]="\\P";var j$s=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function z$s(e,t){var r,n,a,o,l,A,f;if(t===null)return{};for(r={},n=Object.keys(t),a=0,o=n.length;a"u"&&(r=t,t=null);var n=E2n(e,r);if(typeof t!="function")return n;for(var a=0,o=n.length;a"u"&&(r=t,t=null),S2n(e,t,Qq.extend({schema:f2n},r))}function D$s(e,t){return v2n(e,Qq.extend({schema:f2n},t))}e3e.exports.loadAll=S2n;e3e.exports.load=v2n;e3e.exports.safeLoadAll=N$s;e3e.exports.safeLoad=D$s});var K2n=H((c5l,C6t)=>{"use strict";var r3e=Efe(),n3e=ySe(),k$s=$Oe(),x$s=ESe(),G2n=Object.prototype.toString,F2n=Object.prototype.hasOwnProperty,G$s=9,t3e=10,F$s=13,Z$s=32,L$s=33,V$s=34,Z2n=35,P$s=37,W$s=38,O$s=39,M$s=42,L2n=44,H$s=45,V2n=58,Y$s=61,Q$s=62,X$s=63,J$s=64,P2n=91,W2n=93,U$s=96,O2n=123,K$s=124,M2n=125,aG={};aG[0]="\\0";aG[7]="\\a";aG[8]="\\b";aG[9]="\\t";aG[10]="\\n";aG[11]="\\v";aG[12]="\\f";aG[13]="\\r";aG[27]="\\e";aG[34]='\\"';aG[92]="\\\\";aG[133]="\\N";aG[160]="\\_";aG[8232]="\\L";aG[8233]="\\P";var j$s=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function z$s(e,t){var r,n,a,o,l,A,f;if(t===null)return{};for(r={},n=Object.keys(t),a=0,o=n.length;a0?e.charCodeAt(o-1):null,E=E&&R2n(l,A)}else{for(o=0;on&&e[b+1]!==" ",b=o);else if(!wSe(l))return Jct;A=o>0?e.charCodeAt(o-1):null,E=E&&R2n(l,A)}I=I||C&&o-b-1>n&&e[b+1]!==" "}return!f&&!I?E&&!a(e)?Y2n:Q2n:r>9&&H2n(e)?Jct:I?J2n:X2n}function neo(e,t,r,n){e.dump=function(){if(t.length===0)return"''";if(!e.noCompatMode&&j$s.indexOf(t)!==-1)return"'"+t+"'";var a=e.indent*Math.max(1,r),o=e.lineWidth===-1?-1:Math.max(Math.min(e.lineWidth,40),e.lineWidth-a),l=n||e.flowLevel>-1&&r>=e.flowLevel;function A(f){return $$s(e,f)}switch(reo(t,l,e.indent,o,A)){case Y2n:return t;case Q2n:return"'"+t.replace(/'/g,"''")+"'";case X2n:return"|"+N2n(t,e.indent)+D2n(T2n(t,a));case J2n:return">"+N2n(t,e.indent)+D2n(T2n(ieo(t,o),a));case Jct:return'"'+seo(t,o)+'"';default:throw new n3e("impossible error: invalid scalar style")}}()}function N2n(e,t){var r=H2n(e)?String(t):"",n=e[e.length-1]===` @@ -128,7 +128,7 @@ ${t.map(r=>` `+e.slice(a,o),a=o+1),l=A;return f+=` `,e.length-a>t&&l>a?f+=e.slice(a,l)+` `+e.slice(l+1):f+=e.slice(a),f.slice(1)}function seo(e){for(var t="",r,n,a,o=0;o=55296&&r<=56319&&(n=e.charCodeAt(o+1),n>=56320&&n<=57343)){t+=w2n((r-55296)*1024+n-56320+65536),o++;continue}a=aG[r],t+=!a&&wSe(r)?e[o]:a||w2n(r)}return t}function oeo(e,t,r){var n="",a=e.tag,o,l;for(o=0,l=r.length;o1024&&(C+="? "),C+=e.dump+(e.condenseFlow?'"':"")+":"+(e.condenseFlow?"":" "),Tfe(e,t,I,!1,!1)&&(C+=e.dump,n+=C));e.tag=a,e.dump="{"+n+"}"}function leo(e,t,r,n){var a="",o=e.tag,l=Object.keys(r),A,f,I,C,b,E;if(e.sortKeys===!0)l.sort();else if(typeof e.sortKeys=="function")l.sort(e.sortKeys);else if(e.sortKeys)throw new n3e("sortKeys must be a boolean or a function");for(A=0,f=l.length;A1024,b&&(e.dump&&t3e===e.dump.charCodeAt(0)?E+="?":E+="? "),E+=e.dump,b&&(E+=I6t(e,t)),Tfe(e,t+1,C,!0,b)&&(e.dump&&t3e===e.dump.charCodeAt(0)?E+=":":E+=": ",E+=e.dump,a+=E));e.tag=o,e.dump=a||"{}"}function x2n(e,t,r){var n,a,o,l,A,f;for(a=r?e.explicitTypes:e.implicitTypes,o=0,l=a.length;o tag resolver accepts not "'+f+'" style');e.dump=n}return!0}return!1}function Tfe(e,t,r,n,a,o){e.tag=null,e.dump=r,x2n(e,r,!1)||x2n(e,r,!0);var l=G2n.call(e.dump);n&&(n=e.flowLevel<0||e.flowLevel>t);var A=l==="[object Object]"||l==="[object Array]",f,I;if(A&&(f=e.duplicates.indexOf(r),I=f!==-1),(e.tag!==null&&e.tag!=="?"||I||e.indent!==2&&t>0)&&(a=!1),I&&e.usedDuplicates[f])e.dump="*ref_"+f;else{if(A&&I&&!e.usedDuplicates[f]&&(e.usedDuplicates[f]=!0),l==="[object Object]")n&&Object.keys(e.dump).length!==0?(leo(e,t,e.dump,a),I&&(e.dump="&ref_"+f+e.dump)):(ceo(e,t,e.dump),I&&(e.dump="&ref_"+f+" "+e.dump));else if(l==="[object Array]"){var C=e.noArrayIndent&&t>0?t-1:t;n&&e.dump.length!==0?(aeo(e,C,e.dump,a),I&&(e.dump="&ref_"+f+e.dump)):(oeo(e,C,e.dump),I&&(e.dump="&ref_"+f+" "+e.dump))}else if(l==="[object String]")e.tag!=="?"&&neo(e,e.dump,t,o);else{if(e.skipInvalid)return!1;throw new n3e("unacceptable kind of an object to dump "+l)}e.tag!==null&&e.tag!=="?"&&(e.dump="!<"+e.tag+"> "+e.dump)}return!0}function ueo(e,t){var r=[],n=[],a,o;for(h6t(e,r,n),a=0,o=n.length;a{"use strict";var Uct=B2n(),j2n=K2n();function Kct(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Fv.exports.Type=ER();Fv.exports.Schema=Sfe();Fv.exports.FAILSAFE_SCHEMA=Oct();Fv.exports.JSON_SCHEMA=u6t();Fv.exports.CORE_SCHEMA=g6t();Fv.exports.DEFAULT_SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_FULL_SCHEMA=$Oe();Fv.exports.load=Uct.load;Fv.exports.loadAll=Uct.loadAll;Fv.exports.safeLoad=Uct.safeLoad;Fv.exports.safeLoadAll=Uct.safeLoadAll;Fv.exports.dump=j2n.dump;Fv.exports.safeDump=j2n.safeDump;Fv.exports.YAMLException=ySe();Fv.exports.MINIMAL_SCHEMA=Oct();Fv.exports.SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_SCHEMA=$Oe();Fv.exports.scan=Kct("scan");Fv.exports.parse=Kct("parse");Fv.exports.compose=Kct("compose");Fv.exports.addConstructor=Kct("addConstructor")});var $2n=H((l5l,q2n)=>{"use strict";var Aeo=z2n();q2n.exports=Aeo});var tSn=H((u5l,eSn)=>{"use strict";function deo(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Rfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Rfe)}deo(Rfe,Error);Rfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b({[aa]:di})))},fe=function(Dr){return Dr},ue=function(Dr){return Dr},de=Gs("correct indentation"),be=" ",Se=Ki(" ",!1),De=function(Dr){return Dr.length===Ml*Ea},k=function(Dr){return Dr.length===(Ml+1)*Ea},et=function(){return Ml++,!0},ct=function(){return Ml--,!0},Me=function(){return Uf()},je=Gs("pseudostring"),St=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,At=cc(["\r",` +`:""}function geo(e,t){return U2n(e,r3e.extend({schema:x$s},t))}C6t.exports.dump=U2n;C6t.exports.safeDump=geo});var z2n=H((l5l,Fv)=>{"use strict";var Uct=B2n(),j2n=K2n();function Kct(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}Fv.exports.Type=ER();Fv.exports.Schema=Sfe();Fv.exports.FAILSAFE_SCHEMA=Oct();Fv.exports.JSON_SCHEMA=u6t();Fv.exports.CORE_SCHEMA=g6t();Fv.exports.DEFAULT_SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_FULL_SCHEMA=$Oe();Fv.exports.load=Uct.load;Fv.exports.loadAll=Uct.loadAll;Fv.exports.safeLoad=Uct.safeLoad;Fv.exports.safeLoadAll=Uct.safeLoadAll;Fv.exports.dump=j2n.dump;Fv.exports.safeDump=j2n.safeDump;Fv.exports.YAMLException=ySe();Fv.exports.MINIMAL_SCHEMA=Oct();Fv.exports.SAFE_SCHEMA=ESe();Fv.exports.DEFAULT_SCHEMA=$Oe();Fv.exports.scan=Kct("scan");Fv.exports.parse=Kct("parse");Fv.exports.compose=Kct("compose");Fv.exports.addConstructor=Kct("addConstructor")});var $2n=H((u5l,q2n)=>{"use strict";var Aeo=z2n();q2n.exports=Aeo});var tSn=H((g5l,eSn)=>{"use strict";function deo(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function Rfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Rfe)}deo(Rfe,Error);Rfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b({[aa]:di})))},fe=function(Dr){return Dr},ue=function(Dr){return Dr},de=Gs("correct indentation"),be=" ",Se=Ki(" ",!1),De=function(Dr){return Dr.length===Ml*Ea},k=function(Dr){return Dr.length===(Ml+1)*Ea},et=function(){return Ml++,!0},ct=function(){return Ml--,!0},Me=function(){return Uf()},je=Gs("pseudostring"),St=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,At=cc(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Yt=/^[^\r\n\t ,\][{}:#"']/,Tr=cc(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Nr=function(){return Uf().replace(/^ *| *$/g,"")},er="--",vt=Ki("--",!1),xt=/^[a-zA-Z\/0-9]/,Zr=cc([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),qt=/^[^\r\n\t :,]/,Xt=cc(["\r",` `," "," ",":",","],!0,!1),lr="null",cr=Ki("null",!1),Ar=function(){return null},qr="true",_n=Ki("true",!1),ke=function(){return!0},jt="false",Fn=Ki("false",!1),Nn=function(){return!1},Hi=Gs("string"),po='"',Vr=Ki('"',!1),xi=function(){return""},io=function(Dr){return Dr},ga=function(Dr){return Dr.join("")},Ya=/^[^"\\\0-\x1F\x7F]/,Gc=cc(['"',"\\",["\0",""],"\x7F"],!0,!1),cl='\\"',Sc=Ki('\\"',!1),Hr=function(){return'"'},Wr="\\\\",Ft=Ki("\\\\",!1),zr=function(){return"\\"},Rn="\\/",Or=Ki("\\/",!1),Qi=function(){return"/"},ps="\\b",yo=Ki("\\b",!1),bo=function(){return"\b"},Qa="\\f",gc=Ki("\\f",!1),Cg=function(){return"\f"},Nc="\\n",iA=Ki("\\n",!1),ma=function(){return` @@ -150,17 +150,17 @@ ${N}:`:`${b}:`,F=E.startsWith(` ${A}`:`${A}`}throw new Error(`Unsupported value type (${e})`)}function oSn(e){try{let t=_6t(e,0,!1);return t!==` `?t:""}catch(t){throw t.location&&(t.message=t.message.replace(/(\.)?$/,` (line ${t.location.start.line}, column ${t.location.start.column})$1`)),t}}oSn.PreserveOrdering=i3e;function heo(e){return e.endsWith(` `)||(e+=` -`),(0,feo.parse)(e)}var meo=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Ceo(e){if(meo.test(e))return heo(e);let t=(0,rSn.safeLoad)(e,{schema:rSn.FAILSAFE_SCHEMA,json:!0});if(t==null)return{};if(typeof t!="object")throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function _eo(e){return Ceo(e)}});var TW=H(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.stringifySyml=ym.parseSyml=ym.stringifyResolution=ym.parseResolution=ym.stringifyValueArgument=ym.stringifyShellLine=ym.stringifyRedirectArgument=ym.stringifyEnvSegment=ym.stringifyCommandLineThen=ym.stringifyCommandLine=ym.stringifyCommandChainThen=ym.stringifyCommandChain=ym.stringifyCommand=ym.stringifyArithmeticExpression=ym.stringifyArgumentSegment=ym.stringifyArgument=ym.stringifyShell=ym.parseShell=void 0;var O9=o1n();Object.defineProperty(ym,"parseShell",{enumerable:!0,get:function(){return O9.parseShell}});Object.defineProperty(ym,"stringifyShell",{enumerable:!0,get:function(){return O9.stringifyShell}});Object.defineProperty(ym,"stringifyArgument",{enumerable:!0,get:function(){return O9.stringifyArgument}});Object.defineProperty(ym,"stringifyArgumentSegment",{enumerable:!0,get:function(){return O9.stringifyArgumentSegment}});Object.defineProperty(ym,"stringifyArithmeticExpression",{enumerable:!0,get:function(){return O9.stringifyArithmeticExpression}});Object.defineProperty(ym,"stringifyCommand",{enumerable:!0,get:function(){return O9.stringifyCommand}});Object.defineProperty(ym,"stringifyCommandChain",{enumerable:!0,get:function(){return O9.stringifyCommandChain}});Object.defineProperty(ym,"stringifyCommandChainThen",{enumerable:!0,get:function(){return O9.stringifyCommandChainThen}});Object.defineProperty(ym,"stringifyCommandLine",{enumerable:!0,get:function(){return O9.stringifyCommandLine}});Object.defineProperty(ym,"stringifyCommandLineThen",{enumerable:!0,get:function(){return O9.stringifyCommandLineThen}});Object.defineProperty(ym,"stringifyEnvSegment",{enumerable:!0,get:function(){return O9.stringifyEnvSegment}});Object.defineProperty(ym,"stringifyRedirectArgument",{enumerable:!0,get:function(){return O9.stringifyRedirectArgument}});Object.defineProperty(ym,"stringifyShellLine",{enumerable:!0,get:function(){return O9.stringifyShellLine}});Object.defineProperty(ym,"stringifyValueArgument",{enumerable:!0,get:function(){return O9.stringifyValueArgument}});var cSn=l1n();Object.defineProperty(ym,"parseResolution",{enumerable:!0,get:function(){return cSn.parseResolution}});Object.defineProperty(ym,"stringifyResolution",{enumerable:!0,get:function(){return cSn.stringifyResolution}});var lSn=aSn();Object.defineProperty(ym,"parseSyml",{enumerable:!0,get:function(){return lSn.parseSyml}});Object.defineProperty(ym,"stringifySyml",{enumerable:!0,get:function(){return lSn.stringifySyml}})});var gSn=H((d5l,y6t)=>{"use strict";var yeo=e=>{let t=!1,r=!1,n=!1;for(let a=0;a{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);let r=a=>t.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=yeo(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,o)=>o.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(e))};y6t.exports=uSn;y6t.exports.default=uSn});var ASn=H((p5l,beo)=>{beo.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Nfe=H(RW=>{"use strict";var pSn=ASn(),SR=process.env;Object.defineProperty(RW,"_vendors",{value:pSn.map(function(e){return e.constant})});RW.name=null;RW.isPR=null;pSn.forEach(function(e){let r=(Array.isArray(e.env)?e.env:[e.env]).every(function(n){return dSn(n)});if(RW[e.constant]=r,!!r)switch(RW.name=e.name,typeof e.pr){case"string":RW.isPR=!!SR[e.pr];break;case"object":"env"in e.pr?RW.isPR=e.pr.env in SR&&SR[e.pr.env]!==e.pr.ne:"any"in e.pr?RW.isPR=e.pr.any.some(function(n){return!!SR[n]}):RW.isPR=dSn(e.pr);break;default:RW.isPR=null}});RW.isCI=!!(SR.CI!=="false"&&(SR.BUILD_ID||SR.BUILD_NUMBER||SR.CI||SR.CI_APP_ID||SR.CI_BUILD_ID||SR.CI_BUILD_NUMBER||SR.CI_NAME||SR.CONTINUOUS_INTEGRATION||SR.RUN_ID||RW.name));function dSn(e){return typeof e=="string"?!!SR[e]:"env"in e?SR[e.env]&&SR[e.env].includes(e.includes):"any"in e?e.any.some(function(t){return!!SR[t]}):Object.keys(e).every(function(t){return SR[t]===e[t]})}});var fSn=H((I5l,Eeo)=>{Eeo.exports={name:"dotenv",version:"16.4.5",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var CSn=H((h5l,Xq)=>{var b6t=wt("fs"),E6t=wt("path"),Seo=wt("os"),veo=wt("crypto"),Beo=fSn(),S6t=Beo.version,weo=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Teo(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,` +`),(0,feo.parse)(e)}var meo=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function Ceo(e){if(meo.test(e))return heo(e);let t=(0,rSn.safeLoad)(e,{schema:rSn.FAILSAFE_SCHEMA,json:!0});if(t==null)return{};if(typeof t!="object")throw new Error(`Expected an indexed object, got a ${typeof t} instead. Does your file follow Yaml's rules?`);if(Array.isArray(t))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return t}function _eo(e){return Ceo(e)}});var TW=H(ym=>{"use strict";Object.defineProperty(ym,"__esModule",{value:!0});ym.stringifySyml=ym.parseSyml=ym.stringifyResolution=ym.parseResolution=ym.stringifyValueArgument=ym.stringifyShellLine=ym.stringifyRedirectArgument=ym.stringifyEnvSegment=ym.stringifyCommandLineThen=ym.stringifyCommandLine=ym.stringifyCommandChainThen=ym.stringifyCommandChain=ym.stringifyCommand=ym.stringifyArithmeticExpression=ym.stringifyArgumentSegment=ym.stringifyArgument=ym.stringifyShell=ym.parseShell=void 0;var O9=o1n();Object.defineProperty(ym,"parseShell",{enumerable:!0,get:function(){return O9.parseShell}});Object.defineProperty(ym,"stringifyShell",{enumerable:!0,get:function(){return O9.stringifyShell}});Object.defineProperty(ym,"stringifyArgument",{enumerable:!0,get:function(){return O9.stringifyArgument}});Object.defineProperty(ym,"stringifyArgumentSegment",{enumerable:!0,get:function(){return O9.stringifyArgumentSegment}});Object.defineProperty(ym,"stringifyArithmeticExpression",{enumerable:!0,get:function(){return O9.stringifyArithmeticExpression}});Object.defineProperty(ym,"stringifyCommand",{enumerable:!0,get:function(){return O9.stringifyCommand}});Object.defineProperty(ym,"stringifyCommandChain",{enumerable:!0,get:function(){return O9.stringifyCommandChain}});Object.defineProperty(ym,"stringifyCommandChainThen",{enumerable:!0,get:function(){return O9.stringifyCommandChainThen}});Object.defineProperty(ym,"stringifyCommandLine",{enumerable:!0,get:function(){return O9.stringifyCommandLine}});Object.defineProperty(ym,"stringifyCommandLineThen",{enumerable:!0,get:function(){return O9.stringifyCommandLineThen}});Object.defineProperty(ym,"stringifyEnvSegment",{enumerable:!0,get:function(){return O9.stringifyEnvSegment}});Object.defineProperty(ym,"stringifyRedirectArgument",{enumerable:!0,get:function(){return O9.stringifyRedirectArgument}});Object.defineProperty(ym,"stringifyShellLine",{enumerable:!0,get:function(){return O9.stringifyShellLine}});Object.defineProperty(ym,"stringifyValueArgument",{enumerable:!0,get:function(){return O9.stringifyValueArgument}});var cSn=l1n();Object.defineProperty(ym,"parseResolution",{enumerable:!0,get:function(){return cSn.parseResolution}});Object.defineProperty(ym,"stringifyResolution",{enumerable:!0,get:function(){return cSn.stringifyResolution}});var lSn=aSn();Object.defineProperty(ym,"parseSyml",{enumerable:!0,get:function(){return lSn.parseSyml}});Object.defineProperty(ym,"stringifySyml",{enumerable:!0,get:function(){return lSn.stringifySyml}})});var gSn=H((p5l,y6t)=>{"use strict";var yeo=e=>{let t=!1,r=!1,n=!1;for(let a=0;a{if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");t=Object.assign({pascalCase:!1},t);let r=a=>t.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(e)?e=e.map(a=>a.trim()).filter(a=>a.length).join("-"):e=e.trim(),e.length===0?"":e.length===1?t.pascalCase?e.toUpperCase():e.toLowerCase():(e!==e.toLowerCase()&&(e=yeo(e)),e=e.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,o)=>o.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(e))};y6t.exports=uSn;y6t.exports.default=uSn});var ASn=H((f5l,beo)=>{beo.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var Nfe=H(RW=>{"use strict";var pSn=ASn(),SR=process.env;Object.defineProperty(RW,"_vendors",{value:pSn.map(function(e){return e.constant})});RW.name=null;RW.isPR=null;pSn.forEach(function(e){let r=(Array.isArray(e.env)?e.env:[e.env]).every(function(n){return dSn(n)});if(RW[e.constant]=r,!!r)switch(RW.name=e.name,typeof e.pr){case"string":RW.isPR=!!SR[e.pr];break;case"object":"env"in e.pr?RW.isPR=e.pr.env in SR&&SR[e.pr.env]!==e.pr.ne:"any"in e.pr?RW.isPR=e.pr.any.some(function(n){return!!SR[n]}):RW.isPR=dSn(e.pr);break;default:RW.isPR=null}});RW.isCI=!!(SR.CI!=="false"&&(SR.BUILD_ID||SR.BUILD_NUMBER||SR.CI||SR.CI_APP_ID||SR.CI_BUILD_ID||SR.CI_BUILD_NUMBER||SR.CI_NAME||SR.CONTINUOUS_INTEGRATION||SR.RUN_ID||RW.name));function dSn(e){return typeof e=="string"?!!SR[e]:"env"in e?SR[e.env]&&SR[e.env].includes(e.includes):"any"in e?e.any.some(function(t){return!!SR[t]}):Object.keys(e).every(function(t){return SR[t]===e[t]})}});var fSn=H((h5l,Eeo)=>{Eeo.exports={name:"dotenv",version:"16.4.5",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var CSn=H((m5l,Xq)=>{var b6t=wt("fs"),E6t=wt("path"),Seo=wt("os"),veo=wt("crypto"),Beo=fSn(),S6t=Beo.version,weo=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Teo(e){let t={},r=e.toString();r=r.replace(/\r\n?/mg,` `);let n;for(;(n=weo.exec(r))!=null;){let a=n[1],o=n[2]||"";o=o.trim();let l=o[0];o=o.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),l==='"'&&(o=o.replace(/\\n/g,` -`),o=o.replace(/\\r/g,"\r")),t[a]=o}return t}function Reo(e){let t=mSn(e),r=vR.configDotenv({path:t});if(!r.parsed){let l=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw l.code="MISSING_DATA",l}let n=hSn(e).split(","),a=n.length,o;for(let l=0;l=a)throw A}return vR.parse(o)}function Neo(e){console.log(`[dotenv@${S6t}][INFO] ${e}`)}function Deo(e){console.log(`[dotenv@${S6t}][WARN] ${e}`)}function jct(e){console.log(`[dotenv@${S6t}][DEBUG] ${e}`)}function hSn(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function keo(e,t){let r;try{r=new URL(t)}catch(A){if(A.code==="ERR_INVALID_URL"){let f=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw f.code="INVALID_DOTENV_KEY",f}throw A}let n=r.password;if(!n){let A=new Error("INVALID_DOTENV_KEY: Missing key part");throw A.code="INVALID_DOTENV_KEY",A}let a=r.searchParams.get("environment");if(!a){let A=new Error("INVALID_DOTENV_KEY: Missing environment part");throw A.code="INVALID_DOTENV_KEY",A}let o=`DOTENV_VAULT_${a.toUpperCase()}`,l=e.parsed[o];if(!l){let A=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw A.code="NOT_FOUND_DOTENV_ENVIRONMENT",A}return{ciphertext:l,key:n}}function mSn(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)b6t.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=E6t.resolve(process.cwd(),".env.vault");return b6t.existsSync(t)?t:null}function ISn(e){return e[0]==="~"?E6t.join(Seo.homedir(),e.slice(1)):e}function xeo(e){Neo("Loading env from encrypted .env.vault");let t=vR._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),vR.populate(r,t,e),{parsed:t}}function Geo(e){let t=E6t.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug);e&&e.encoding?r=e.encoding:n&&jct("No encoding is specified. UTF-8 is used by default");let a=[t];if(e&&e.path)if(!Array.isArray(e.path))a=[ISn(e.path)];else{a=[];for(let f of e.path)a.push(ISn(f))}let o,l={};for(let f of a)try{let I=vR.parse(b6t.readFileSync(f,{encoding:r}));vR.populate(l,I,e)}catch(I){n&&jct(`Failed to load ${f} ${I.message}`),o=I}let A=process.env;return e&&e.processEnv!=null&&(A=e.processEnv),vR.populate(A,l,e),o?{parsed:l,error:o}:{parsed:l}}function Feo(e){if(hSn(e).length===0)return vR.configDotenv(e);let t=mSn(e);return t?vR._configVault(e):(Deo(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),vR.configDotenv(e))}function Zeo(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),a=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let l=veo.createDecipheriv("aes-256-gcm",r,a);return l.setAuthTag(o),`${l.update(n)}${l.final()}`}catch(l){let A=l instanceof RangeError,f=l.message==="Invalid key length",I=l.message==="Unsupported state or unable to authenticate data";if(A||f){let C=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw C.code="INVALID_DOTENV_KEY",C}else if(I){let C=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw C.code="DECRYPTION_FAILED",C}else throw l}}function Leo(e,t,r={}){let n=!!(r&&r.debug),a=!!(r&&r.override);if(typeof t!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(t))Object.prototype.hasOwnProperty.call(e,o)?(a===!0&&(e[o]=t[o]),n&&jct(a===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=t[o]}var vR={configDotenv:Geo,_configVault:xeo,_parseVault:Reo,config:Feo,decrypt:Zeo,parse:Teo,populate:Leo};Xq.exports.configDotenv=vR.configDotenv;Xq.exports._configVault=vR._configVault;Xq.exports._parseVault=vR._parseVault;Xq.exports.config=vR.config;Xq.exports.decrypt=vR.decrypt;Xq.exports.parse=vR.parse;Xq.exports.populate=vR.populate;Xq.exports=vR});var ySn=H((m5l,v6t)=>{"use strict";var _Sn=(e,...t)=>new Promise(r=>{r(e(...t))});v6t.exports=_Sn;v6t.exports.default=_Sn});var Dfe=H((C5l,B6t)=>{"use strict";var Veo=ySn(),bSn=e=>{if(!((Number.isInteger(e)||e===1/0)&&e>0))return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},a=(A,f,...I)=>{r++;let C=Veo(A,...I);f(C),C.then(n,n)},o=(A,f,...I)=>{rnew Promise(I=>o(A,I,...f));return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),l};B6t.exports=bSn;B6t.exports.default=bSn});var M9=H(RSe=>{"use strict";Object.defineProperty(RSe,"__esModule",{value:!0});RSe.MessageName=void 0;RSe.stringifyMessageName=Peo;RSe.parseMessageName=Weo;var w6t;(function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",e[e.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",e[e.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",e[e.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",e[e.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",e[e.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",e[e.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",e[e.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",e[e.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",e[e.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",e[e.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",e[e.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",e[e.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",e[e.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",e[e.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",e[e.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",e[e.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",e[e.NETWORK_DISABLED=80]="NETWORK_DISABLED",e[e.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",e[e.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",e[e.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",e[e.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",e[e.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",e[e.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",e[e.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",e[e.VERSION_NOTICE=88]="VERSION_NOTICE",e[e.TIPS_NOTICE=89]="TIPS_NOTICE",e[e.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",e[e.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",e[e.EXPERIMENTAL=92]="EXPERIMENTAL"})(w6t||(RSe.MessageName=w6t={}));function Peo(e){return`YN${e.toString(10).padStart(4,"0")}`}function Weo(e){let t=Number(e.slice(2));if(typeof w6t[t]>"u")throw new Error(`Unknown message name: "${e}"`);return t}});var s3e=H((y5l,ESn)=>{var Oeo="2.0.0",Meo=Number.MAX_SAFE_INTEGER||9007199254740991,Heo=16,Yeo=250,Qeo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ESn.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Heo,MAX_SAFE_BUILD_LENGTH:Yeo,MAX_SAFE_INTEGER:Meo,RELEASE_TYPES:Qeo,SEMVER_SPEC_VERSION:Oeo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var o3e=H((b5l,SSn)=>{var Xeo=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};SSn.exports=Xeo});var NSe=H((Jq,vSn)=>{var{MAX_SAFE_COMPONENT_LENGTH:T6t,MAX_SAFE_BUILD_LENGTH:Jeo,MAX_LENGTH:Ueo}=s3e(),Keo=o3e();Jq=vSn.exports={};var jeo=Jq.re=[],zeo=Jq.safeRe=[],AA=Jq.src=[],dA=Jq.t={},qeo=0,R6t="[a-zA-Z0-9-]",$eo=[["\\s",1],["\\d",Ueo],[R6t,Jeo]],eto=e=>{for(let[t,r]of $eo)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},jI=(e,t,r)=>{let n=eto(t),a=qeo++;Keo(e,a,t),dA[e]=a,AA[a]=t,jeo[a]=new RegExp(t,r?"g":void 0),zeo[a]=new RegExp(n,r?"g":void 0)};jI("NUMERICIDENTIFIER","0|[1-9]\\d*");jI("NUMERICIDENTIFIERLOOSE","\\d+");jI("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R6t}*`);jI("MAINVERSION",`(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})`);jI("MAINVERSIONLOOSE",`(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})`);jI("PRERELEASEIDENTIFIER",`(?:${AA[dA.NUMERICIDENTIFIER]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASEIDENTIFIERLOOSE",`(?:${AA[dA.NUMERICIDENTIFIERLOOSE]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASE",`(?:-(${AA[dA.PRERELEASEIDENTIFIER]}(?:\\.${AA[dA.PRERELEASEIDENTIFIER]})*))`);jI("PRERELEASELOOSE",`(?:-?(${AA[dA.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${AA[dA.PRERELEASEIDENTIFIERLOOSE]})*))`);jI("BUILDIDENTIFIER",`${R6t}+`);jI("BUILD",`(?:\\+(${AA[dA.BUILDIDENTIFIER]}(?:\\.${AA[dA.BUILDIDENTIFIER]})*))`);jI("FULLPLAIN",`v?${AA[dA.MAINVERSION]}${AA[dA.PRERELEASE]}?${AA[dA.BUILD]}?`);jI("FULL",`^${AA[dA.FULLPLAIN]}$`);jI("LOOSEPLAIN",`[v=\\s]*${AA[dA.MAINVERSIONLOOSE]}${AA[dA.PRERELEASELOOSE]}?${AA[dA.BUILD]}?`);jI("LOOSE",`^${AA[dA.LOOSEPLAIN]}$`);jI("GTLT","((?:<|>)?=?)");jI("XRANGEIDENTIFIERLOOSE",`${AA[dA.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jI("XRANGEIDENTIFIER",`${AA[dA.NUMERICIDENTIFIER]}|x|X|\\*`);jI("XRANGEPLAIN",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:${AA[dA.PRERELEASE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGEPLAINLOOSE",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:${AA[dA.PRERELEASELOOSE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAIN]}$`);jI("XRANGELOOSE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COERCEPLAIN",`(^|[^\\d])(\\d{1,${T6t}})(?:\\.(\\d{1,${T6t}}))?(?:\\.(\\d{1,${T6t}}))?`);jI("COERCE",`${AA[dA.COERCEPLAIN]}(?:$|[^\\d])`);jI("COERCEFULL",AA[dA.COERCEPLAIN]+`(?:${AA[dA.PRERELEASE]})?(?:${AA[dA.BUILD]})?(?:$|[^\\d])`);jI("COERCERTL",AA[dA.COERCE],!0);jI("COERCERTLFULL",AA[dA.COERCEFULL],!0);jI("LONETILDE","(?:~>?)");jI("TILDETRIM",`(\\s*)${AA[dA.LONETILDE]}\\s+`,!0);Jq.tildeTrimReplace="$1~";jI("TILDE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAIN]}$`);jI("TILDELOOSE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("LONECARET","(?:\\^)");jI("CARETTRIM",`(\\s*)${AA[dA.LONECARET]}\\s+`,!0);Jq.caretTrimReplace="$1^";jI("CARET",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAIN]}$`);jI("CARETLOOSE",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COMPARATORLOOSE",`^${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]})$|^$`);jI("COMPARATOR",`^${AA[dA.GTLT]}\\s*(${AA[dA.FULLPLAIN]})$|^$`);jI("COMPARATORTRIM",`(\\s*)${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]}|${AA[dA.XRANGEPLAIN]})`,!0);Jq.comparatorTrimReplace="$1$2$3";jI("HYPHENRANGE",`^\\s*(${AA[dA.XRANGEPLAIN]})\\s+-\\s+(${AA[dA.XRANGEPLAIN]})\\s*$`);jI("HYPHENRANGELOOSE",`^\\s*(${AA[dA.XRANGEPLAINLOOSE]})\\s+-\\s+(${AA[dA.XRANGEPLAINLOOSE]})\\s*$`);jI("STAR","(<|>)?=?\\s*\\*");jI("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jI("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var zct=H((E5l,BSn)=>{var tto=Object.freeze({loose:!0}),rto=Object.freeze({}),nto=e=>e?typeof e!="object"?tto:e:rto;BSn.exports=nto});var N6t=H((S5l,RSn)=>{var wSn=/^[0-9]+$/,TSn=(e,t)=>{let r=wSn.test(e),n=wSn.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eTSn(t,e);RSn.exports={compareIdentifiers:TSn,rcompareIdentifiers:ito}});var cG=H((v5l,xSn)=>{var qct=o3e(),{MAX_LENGTH:NSn,MAX_SAFE_INTEGER:$ct}=s3e(),{safeRe:DSn,t:kSn}=NSe(),sto=zct(),{compareIdentifiers:DSe}=N6t(),D6t=class e{constructor(t,r){if(r=sto(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>NSn)throw new TypeError(`version is longer than ${NSn} characters`);qct("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?DSn[kSn.LOOSE]:DSn[kSn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>$ct||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$ct||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$ct||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let o=+a;if(o>=0&&o<$ct)return o}return a}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(qct("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),DSe(this.major,t.major)||DSe(this.minor,t.minor)||DSe(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],a=t.prerelease[r];if(qct("prerelease compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],a=t.build[r];if(qct("build compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}inc(t,r,n){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(n)?1:0;if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let o=[r,a];n===!1&&(o=[r]),DSe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xSn.exports=D6t});var kfe=H((B5l,FSn)=>{var GSn=cG(),oto=(e,t,r=!1)=>{if(e instanceof GSn)return e;try{return new GSn(e,t)}catch(n){if(!r)return null;throw n}};FSn.exports=oto});var k6t=H((w5l,ZSn)=>{var ato=kfe(),cto=(e,t)=>{let r=ato(e,t);return r?r.version:null};ZSn.exports=cto});var x6t=H((T5l,LSn)=>{var lto=kfe(),uto=(e,t)=>{let r=lto(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};LSn.exports=uto});var WSn=H((R5l,PSn)=>{var VSn=cG(),gto=(e,t,r,n,a)=>{typeof r=="string"&&(a=n,n=r,r=void 0);try{return new VSn(e instanceof VSn?e.version:e,r).inc(t,n,a).version}catch{return null}};PSn.exports=gto});var HSn=H((N5l,MSn)=>{var OSn=kfe(),Ato=(e,t)=>{let r=OSn(e,null,!0),n=OSn(t,null,!0),a=r.compare(n);if(a===0)return null;let o=a>0,l=o?r:n,A=o?n:r,f=!!l.prerelease.length;if(!!A.prerelease.length&&!f)return!A.patch&&!A.minor?"major":l.patch?"patch":l.minor?"minor":"major";let C=f?"pre":"";return r.major!==n.major?C+"major":r.minor!==n.minor?C+"minor":r.patch!==n.patch?C+"patch":"prerelease"};MSn.exports=Ato});var QSn=H((D5l,YSn)=>{var dto=cG(),pto=(e,t)=>new dto(e,t).major;YSn.exports=pto});var JSn=H((k5l,XSn)=>{var fto=cG(),Ito=(e,t)=>new fto(e,t).minor;XSn.exports=Ito});var KSn=H((x5l,USn)=>{var hto=cG(),mto=(e,t)=>new hto(e,t).patch;USn.exports=mto});var zSn=H((G5l,jSn)=>{var Cto=kfe(),_to=(e,t)=>{let r=Cto(e,t);return r&&r.prerelease.length?r.prerelease:null};jSn.exports=_to});var U5=H((F5l,$Sn)=>{var qSn=cG(),yto=(e,t,r)=>new qSn(e,r).compare(new qSn(t,r));$Sn.exports=yto});var tvn=H((Z5l,evn)=>{var bto=U5(),Eto=(e,t,r)=>bto(t,e,r);evn.exports=Eto});var nvn=H((L5l,rvn)=>{var Sto=U5(),vto=(e,t)=>Sto(e,t,!0);rvn.exports=vto});var elt=H((V5l,svn)=>{var ivn=cG(),Bto=(e,t,r)=>{let n=new ivn(e,r),a=new ivn(t,r);return n.compare(a)||n.compareBuild(a)};svn.exports=Bto});var avn=H((P5l,ovn)=>{var wto=elt(),Tto=(e,t)=>e.sort((r,n)=>wto(r,n,t));ovn.exports=Tto});var lvn=H((W5l,cvn)=>{var Rto=elt(),Nto=(e,t)=>e.sort((r,n)=>Rto(n,r,t));cvn.exports=Nto});var a3e=H((O5l,uvn)=>{var Dto=U5(),kto=(e,t,r)=>Dto(e,t,r)>0;uvn.exports=kto});var tlt=H((M5l,gvn)=>{var xto=U5(),Gto=(e,t,r)=>xto(e,t,r)<0;gvn.exports=Gto});var G6t=H((H5l,Avn)=>{var Fto=U5(),Zto=(e,t,r)=>Fto(e,t,r)===0;Avn.exports=Zto});var F6t=H((Y5l,dvn)=>{var Lto=U5(),Vto=(e,t,r)=>Lto(e,t,r)!==0;dvn.exports=Vto});var rlt=H((Q5l,pvn)=>{var Pto=U5(),Wto=(e,t,r)=>Pto(e,t,r)>=0;pvn.exports=Wto});var nlt=H((X5l,fvn)=>{var Oto=U5(),Mto=(e,t,r)=>Oto(e,t,r)<=0;fvn.exports=Mto});var Z6t=H((J5l,Ivn)=>{var Hto=G6t(),Yto=F6t(),Qto=a3e(),Xto=rlt(),Jto=tlt(),Uto=nlt(),Kto=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Hto(e,r,n);case"!=":return Yto(e,r,n);case">":return Qto(e,r,n);case">=":return Xto(e,r,n);case"<":return Jto(e,r,n);case"<=":return Uto(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};Ivn.exports=Kto});var mvn=H((U5l,hvn)=>{var jto=cG(),zto=kfe(),{safeRe:ilt,t:slt}=NSe(),qto=(e,t)=>{if(e instanceof jto)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?ilt[slt.COERCEFULL]:ilt[slt.COERCE]);else{let f=t.includePrerelease?ilt[slt.COERCERTLFULL]:ilt[slt.COERCERTL],I;for(;(I=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||I.index+I[0].length!==r.index+r[0].length)&&(r=I),f.lastIndex=I.index+I[1].length+I[2].length;f.lastIndex=-1}if(r===null)return null;let n=r[2],a=r[3]||"0",o=r[4]||"0",l=t.includePrerelease&&r[5]?`-${r[5]}`:"",A=t.includePrerelease&&r[6]?`+${r[6]}`:"";return zto(`${n}.${a}.${o}${l}${A}`,t)};hvn.exports=qto});var _vn=H((K5l,Cvn)=>{var L6t=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let a=this.map.keys().next().value;this.delete(a)}this.map.set(t,r)}return this}};Cvn.exports=L6t});var K5=H((j5l,Svn)=>{var $to=/\s+/g,V6t=class e{constructor(t,r){if(r=tro(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof P6t)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace($to," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(a=>!bvn(a[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&cro(a[0])){this.set=[a];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&oro)|(this.options.loose&&aro))+":"+t,a=yvn.get(n);if(a)return a;let o=this.options.loose,l=o?H9[bZ.HYPHENRANGELOOSE]:H9[bZ.HYPHENRANGE];t=t.replace(l,mro(this.options.includePrerelease)),k1("hyphen replace",t),t=t.replace(H9[bZ.COMPARATORTRIM],nro),k1("comparator trim",t),t=t.replace(H9[bZ.TILDETRIM],iro),k1("tilde trim",t),t=t.replace(H9[bZ.CARETTRIM],sro),k1("caret trim",t);let A=t.split(" ").map(b=>lro(b,this.options)).join(" ").split(/\s+/).map(b=>hro(b,this.options));o&&(A=A.filter(b=>(k1("loose invalid filter",b,this.options),!!b.match(H9[bZ.COMPARATORLOOSE])))),k1("range list",A);let f=new Map,I=A.map(b=>new P6t(b,this.options));for(let b of I){if(bvn(b))return[b];f.set(b.value,b)}f.size>1&&f.has("")&&f.delete("");let C=[...f.values()];return yvn.set(n,C),C}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Evn(n,r)&&t.set.some(a=>Evn(a,r)&&n.every(o=>a.every(l=>o.intersects(l,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new rro(t,this.options)}catch{return!1}for(let r=0;re.value==="<0.0.0-0",cro=e=>e.value==="",Evn=(e,t)=>{let r=!0,n=e.slice(),a=n.pop();for(;r&&n.length;)r=n.every(o=>a.intersects(o,t)),a=n.pop();return r},lro=(e,t)=>(k1("comp",e,t),e=Aro(e,t),k1("caret",e),e=uro(e,t),k1("tildes",e),e=pro(e,t),k1("xrange",e),e=Iro(e,t),k1("stars",e),e),EZ=e=>!e||e.toLowerCase()==="x"||e==="*",uro=(e,t)=>e.trim().split(/\s+/).map(r=>gro(r,t)).join(" "),gro=(e,t)=>{let r=t.loose?H9[bZ.TILDELOOSE]:H9[bZ.TILDE];return e.replace(r,(n,a,o,l,A)=>{k1("tilde",e,n,a,o,l,A);let f;return EZ(a)?f="":EZ(o)?f=`>=${a}.0.0 <${+a+1}.0.0-0`:EZ(l)?f=`>=${a}.${o}.0 <${a}.${+o+1}.0-0`:A?(k1("replaceTilde pr",A),f=`>=${a}.${o}.${l}-${A} <${a}.${+o+1}.0-0`):f=`>=${a}.${o}.${l} <${a}.${+o+1}.0-0`,k1("tilde return",f),f})},Aro=(e,t)=>e.trim().split(/\s+/).map(r=>dro(r,t)).join(" "),dro=(e,t)=>{k1("caret",e,t);let r=t.loose?H9[bZ.CARETLOOSE]:H9[bZ.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(a,o,l,A,f)=>{k1("caret",e,a,o,l,A,f);let I;return EZ(o)?I="":EZ(l)?I=`>=${o}.0.0${n} <${+o+1}.0.0-0`:EZ(A)?o==="0"?I=`>=${o}.${l}.0${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.0${n} <${+o+1}.0.0-0`:f?(k1("replaceCaret pr",f),o==="0"?l==="0"?I=`>=${o}.${l}.${A}-${f} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}-${f} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A}-${f} <${+o+1}.0.0-0`):(k1("no pr"),o==="0"?l==="0"?I=`>=${o}.${l}.${A}${n} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A} <${+o+1}.0.0-0`),k1("caret return",I),I})},pro=(e,t)=>(k1("replaceXRanges",e,t),e.split(/\s+/).map(r=>fro(r,t)).join(" ")),fro=(e,t)=>{e=e.trim();let r=t.loose?H9[bZ.XRANGELOOSE]:H9[bZ.XRANGE];return e.replace(r,(n,a,o,l,A,f)=>{k1("xRange",e,n,a,o,l,A,f);let I=EZ(o),C=I||EZ(l),b=C||EZ(A),E=b;return a==="="&&E&&(a=""),f=t.includePrerelease?"-0":"",I?a===">"||a==="<"?n="<0.0.0-0":n="*":a&&E?(C&&(l=0),A=0,a===">"?(a=">=",C?(o=+o+1,l=0,A=0):(l=+l+1,A=0)):a==="<="&&(a="<",C?o=+o+1:l=+l+1),a==="<"&&(f="-0"),n=`${a+o}.${l}.${A}${f}`):C?n=`>=${o}.0.0${f} <${+o+1}.0.0-0`:b&&(n=`>=${o}.${l}.0${f} <${o}.${+l+1}.0-0`),k1("xRange return",n),n})},Iro=(e,t)=>(k1("replaceStars",e,t),e.trim().replace(H9[bZ.STAR],"")),hro=(e,t)=>(k1("replaceGTE0",e,t),e.trim().replace(H9[t.includePrerelease?bZ.GTE0PRE:bZ.GTE0],"")),mro=e=>(t,r,n,a,o,l,A,f,I,C,b,E)=>(EZ(n)?r="":EZ(a)?r=`>=${n}.0.0${e?"-0":""}`:EZ(o)?r=`>=${n}.${a}.0${e?"-0":""}`:l?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,EZ(I)?f="":EZ(C)?f=`<${+I+1}.0.0-0`:EZ(b)?f=`<${I}.${+C+1}.0-0`:E?f=`<=${I}.${C}.${b}-${E}`:e?f=`<${I}.${C}.${+b+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),Cro=(e,t,r)=>{for(let n=0;n0){let a=e[n].semver;if(a.major===t.major&&a.minor===t.minor&&a.patch===t.patch)return!0}return!1}return!0}});var c3e=H((z5l,Nvn)=>{var l3e=Symbol("SemVer ANY"),M6t=class e{static get ANY(){return l3e}constructor(t,r){if(r=vvn(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),O6t("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===l3e?this.value="":this.value=this.operator+this.semver.version,O6t("comp",this)}parse(t){let r=this.options.loose?Bvn[wvn.COMPARATORLOOSE]:Bvn[wvn.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Tvn(n[2],this.options.loose):this.semver=l3e}toString(){return this.value}test(t){if(O6t("Comparator.test",t,this.options.loose),this.semver===l3e||t===l3e)return!0;if(typeof t=="string")try{t=new Tvn(t,this.options)}catch{return!1}return W6t(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Rvn(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rvn(this.value,r).test(t.semver):(r=vvn(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||W6t(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||W6t(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Nvn.exports=M6t;var vvn=zct(),{safeRe:Bvn,t:wvn}=NSe(),W6t=Z6t(),O6t=o3e(),Tvn=cG(),Rvn=K5()});var u3e=H((q5l,Dvn)=>{var _ro=K5(),yro=(e,t,r)=>{try{t=new _ro(t,r)}catch{return!1}return t.test(e)};Dvn.exports=yro});var xvn=H(($5l,kvn)=>{var bro=K5(),Ero=(e,t)=>new bro(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));kvn.exports=Ero});var Fvn=H((eMl,Gvn)=>{var Sro=cG(),vro=K5(),Bro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new vro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===-1)&&(n=l,a=new Sro(n,r))}),n};Gvn.exports=Bro});var Lvn=H((tMl,Zvn)=>{var wro=cG(),Tro=K5(),Rro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new Tro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===1)&&(n=l,a=new wro(n,r))}),n};Zvn.exports=Rro});var Wvn=H((rMl,Pvn)=>{var H6t=cG(),Nro=K5(),Vvn=a3e(),Dro=(e,t)=>{e=new Nro(e,t);let r=new H6t("0.0.0");if(e.test(r)||(r=new H6t("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n{let A=new H6t(l.semver.version);switch(l.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!o||Vvn(A,o))&&(o=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${l.operator}`)}}),o&&(!r||Vvn(r,o))&&(r=o)}return r&&e.test(r)?r:null};Pvn.exports=Dro});var Mvn=H((nMl,Ovn)=>{var kro=K5(),xro=(e,t)=>{try{return new kro(e,t).range||"*"}catch{return null}};Ovn.exports=xro});var olt=H((iMl,Xvn)=>{var Gro=cG(),Qvn=c3e(),{ANY:Fro}=Qvn,Zro=K5(),Lro=u3e(),Hvn=a3e(),Yvn=tlt(),Vro=nlt(),Pro=rlt(),Wro=(e,t,r,n)=>{e=new Gro(e,n),t=new Zro(t,n);let a,o,l,A,f;switch(r){case">":a=Hvn,o=Vro,l=Yvn,A=">",f=">=";break;case"<":a=Yvn,o=Pro,l=Hvn,A="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Lro(e,t,n))return!1;for(let I=0;I{N.semver===Fro&&(N=new Qvn(">=0.0.0")),b=b||N,E=E||N,a(N.semver,b.semver,n)?b=N:l(N.semver,E.semver,n)&&(E=N)}),b.operator===A||b.operator===f||(!E.operator||E.operator===A)&&o(e,E.semver))return!1;if(E.operator===f&&l(e,E.semver))return!1}return!0};Xvn.exports=Wro});var Uvn=H((sMl,Jvn)=>{var Oro=olt(),Mro=(e,t,r)=>Oro(e,t,">",r);Jvn.exports=Mro});var jvn=H((oMl,Kvn)=>{var Hro=olt(),Yro=(e,t,r)=>Hro(e,t,"<",r);Kvn.exports=Yro});var $vn=H((aMl,qvn)=>{var zvn=K5(),Qro=(e,t,r)=>(e=new zvn(e,r),t=new zvn(t,r),e.intersects(t,r));qvn.exports=Qro});var tBn=H((cMl,eBn)=>{var Xro=u3e(),Jro=U5();eBn.exports=(e,t,r)=>{let n=[],a=null,o=null,l=e.sort((C,b)=>Jro(C,b,r));for(let C of l)Xro(C,t,r)?(o=C,a||(a=C)):(o&&n.push([a,o]),o=null,a=null);a&&n.push([a,null]);let A=[];for(let[C,b]of n)C===b?A.push(C):!b&&C===l[0]?A.push("*"):b?C===l[0]?A.push(`<=${b}`):A.push(`${C} - ${b}`):A.push(`>=${C}`);let f=A.join(" || "),I=typeof t.raw=="string"?t.raw:String(t);return f.length{var rBn=K5(),Q6t=c3e(),{ANY:Y6t}=Q6t,g3e=u3e(),X6t=U5(),Uro=(e,t,r={})=>{if(e===t)return!0;e=new rBn(e,r),t=new rBn(t,r);let n=!1;e:for(let a of e.set){for(let o of t.set){let l=jro(a,o,r);if(n=n||l!==null,l)continue e}if(n)return!1}return!0},Kro=[new Q6t(">=0.0.0-0")],nBn=[new Q6t(">=0.0.0")],jro=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Y6t){if(t.length===1&&t[0].semver===Y6t)return!0;r.includePrerelease?e=Kro:e=nBn}if(t.length===1&&t[0].semver===Y6t){if(r.includePrerelease)return!0;t=nBn}let n=new Set,a,o;for(let N of e)N.operator===">"||N.operator===">="?a=iBn(a,N,r):N.operator==="<"||N.operator==="<="?o=sBn(o,N,r):n.add(N.semver);if(n.size>1)return null;let l;if(a&&o){if(l=X6t(a.semver,o.semver,r),l>0)return null;if(l===0&&(a.operator!==">="||o.operator!=="<="))return null}for(let N of n){if(a&&!g3e(N,String(a),r)||o&&!g3e(N,String(o),r))return null;for(let B of t)if(!g3e(N,String(B),r))return!1;return!0}let A,f,I,C,b=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1,E=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;b&&b.prerelease.length===1&&o.operator==="<"&&b.prerelease[0]===0&&(b=!1);for(let N of t){if(C=C||N.operator===">"||N.operator===">=",I=I||N.operator==="<"||N.operator==="<=",a){if(E&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===E.major&&N.semver.minor===E.minor&&N.semver.patch===E.patch&&(E=!1),N.operator===">"||N.operator===">="){if(A=iBn(a,N,r),A===N&&A!==a)return!1}else if(a.operator===">="&&!g3e(a.semver,String(N),r))return!1}if(o){if(b&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===b.major&&N.semver.minor===b.minor&&N.semver.patch===b.patch&&(b=!1),N.operator==="<"||N.operator==="<="){if(f=sBn(o,N,r),f===N&&f!==o)return!1}else if(o.operator==="<="&&!g3e(o.semver,String(N),r))return!1}if(!N.operator&&(o||a)&&l!==0)return!1}return!(a&&I&&!o&&l!==0||o&&C&&!a&&l!==0||E||b)},iBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},sBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};oBn.exports=Uro});var UC=H((uMl,uBn)=>{var J6t=NSe(),cBn=s3e(),zro=cG(),lBn=N6t(),qro=kfe(),$ro=k6t(),eno=x6t(),tno=WSn(),rno=HSn(),nno=QSn(),ino=JSn(),sno=KSn(),ono=zSn(),ano=U5(),cno=tvn(),lno=nvn(),uno=elt(),gno=avn(),Ano=lvn(),dno=a3e(),pno=tlt(),fno=G6t(),Ino=F6t(),hno=rlt(),mno=nlt(),Cno=Z6t(),_no=mvn(),yno=c3e(),bno=K5(),Eno=u3e(),Sno=xvn(),vno=Fvn(),Bno=Lvn(),wno=Wvn(),Tno=Mvn(),Rno=olt(),Nno=Uvn(),Dno=jvn(),kno=$vn(),xno=tBn(),Gno=aBn();uBn.exports={parse:qro,valid:$ro,clean:eno,inc:tno,diff:rno,major:nno,minor:ino,patch:sno,prerelease:ono,compare:ano,rcompare:cno,compareLoose:lno,compareBuild:uno,sort:gno,rsort:Ano,gt:dno,lt:pno,eq:fno,neq:Ino,gte:hno,lte:mno,cmp:Cno,coerce:_no,Comparator:yno,Range:bno,satisfies:Eno,toComparators:Sno,maxSatisfying:vno,minSatisfying:Bno,minVersion:wno,validRange:Tno,outside:Rno,gtr:Nno,ltr:Dno,intersects:kno,simplifyRange:xno,subset:Gno,SemVer:zro,re:J6t.re,src:J6t.src,tokens:J6t.t,SEMVER_SPEC_VERSION:cBn.SEMVER_SPEC_VERSION,RELEASE_TYPES:cBn.RELEASE_TYPES,compareIdentifiers:lBn.compareIdentifiers,rcompareIdentifiers:lBn.rcompareIdentifiers}});var ABn=H((gMl,gBn)=>{"use strict";function Fno(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function xfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,xfe)}Fno(xfe,Error);xfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b{switch(xi[1]){case"|":return Vr|xi[3];case"&":return Vr&xi[3];case"^":return Vr^xi[3]}},Hi)},E="!",N=vt("!",!1),B=function(Hi){return!Hi},F="(",Q=vt("(",!1),X=")",ae=vt(")",!1),ne=function(Hi){return Hi},ce=/^[^ \t\n\r()!|&\^]/,fe=xt([" "," ",` +`),o=o.replace(/\\r/g,"\r")),t[a]=o}return t}function Reo(e){let t=mSn(e),r=vR.configDotenv({path:t});if(!r.parsed){let l=new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`);throw l.code="MISSING_DATA",l}let n=hSn(e).split(","),a=n.length,o;for(let l=0;l=a)throw A}return vR.parse(o)}function Neo(e){console.log(`[dotenv@${S6t}][INFO] ${e}`)}function Deo(e){console.log(`[dotenv@${S6t}][WARN] ${e}`)}function jct(e){console.log(`[dotenv@${S6t}][DEBUG] ${e}`)}function hSn(e){return e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0?e.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function keo(e,t){let r;try{r=new URL(t)}catch(A){if(A.code==="ERR_INVALID_URL"){let f=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw f.code="INVALID_DOTENV_KEY",f}throw A}let n=r.password;if(!n){let A=new Error("INVALID_DOTENV_KEY: Missing key part");throw A.code="INVALID_DOTENV_KEY",A}let a=r.searchParams.get("environment");if(!a){let A=new Error("INVALID_DOTENV_KEY: Missing environment part");throw A.code="INVALID_DOTENV_KEY",A}let o=`DOTENV_VAULT_${a.toUpperCase()}`,l=e.parsed[o];if(!l){let A=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${o} in your .env.vault file.`);throw A.code="NOT_FOUND_DOTENV_ENVIRONMENT",A}return{ciphertext:l,key:n}}function mSn(e){let t=null;if(e&&e.path&&e.path.length>0)if(Array.isArray(e.path))for(let r of e.path)b6t.existsSync(r)&&(t=r.endsWith(".vault")?r:`${r}.vault`);else t=e.path.endsWith(".vault")?e.path:`${e.path}.vault`;else t=E6t.resolve(process.cwd(),".env.vault");return b6t.existsSync(t)?t:null}function ISn(e){return e[0]==="~"?E6t.join(Seo.homedir(),e.slice(1)):e}function xeo(e){Neo("Loading env from encrypted .env.vault");let t=vR._parseVault(e),r=process.env;return e&&e.processEnv!=null&&(r=e.processEnv),vR.populate(r,t,e),{parsed:t}}function Geo(e){let t=E6t.resolve(process.cwd(),".env"),r="utf8",n=!!(e&&e.debug);e&&e.encoding?r=e.encoding:n&&jct("No encoding is specified. UTF-8 is used by default");let a=[t];if(e&&e.path)if(!Array.isArray(e.path))a=[ISn(e.path)];else{a=[];for(let f of e.path)a.push(ISn(f))}let o,l={};for(let f of a)try{let I=vR.parse(b6t.readFileSync(f,{encoding:r}));vR.populate(l,I,e)}catch(I){n&&jct(`Failed to load ${f} ${I.message}`),o=I}let A=process.env;return e&&e.processEnv!=null&&(A=e.processEnv),vR.populate(A,l,e),o?{parsed:l,error:o}:{parsed:l}}function Feo(e){if(hSn(e).length===0)return vR.configDotenv(e);let t=mSn(e);return t?vR._configVault(e):(Deo(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`),vR.configDotenv(e))}function Zeo(e,t){let r=Buffer.from(t.slice(-64),"hex"),n=Buffer.from(e,"base64"),a=n.subarray(0,12),o=n.subarray(-16);n=n.subarray(12,-16);try{let l=veo.createDecipheriv("aes-256-gcm",r,a);return l.setAuthTag(o),`${l.update(n)}${l.final()}`}catch(l){let A=l instanceof RangeError,f=l.message==="Invalid key length",I=l.message==="Unsupported state or unable to authenticate data";if(A||f){let C=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw C.code="INVALID_DOTENV_KEY",C}else if(I){let C=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw C.code="DECRYPTION_FAILED",C}else throw l}}function Leo(e,t,r={}){let n=!!(r&&r.debug),a=!!(r&&r.override);if(typeof t!="object"){let o=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw o.code="OBJECT_REQUIRED",o}for(let o of Object.keys(t))Object.prototype.hasOwnProperty.call(e,o)?(a===!0&&(e[o]=t[o]),n&&jct(a===!0?`"${o}" is already defined and WAS overwritten`:`"${o}" is already defined and was NOT overwritten`)):e[o]=t[o]}var vR={configDotenv:Geo,_configVault:xeo,_parseVault:Reo,config:Feo,decrypt:Zeo,parse:Teo,populate:Leo};Xq.exports.configDotenv=vR.configDotenv;Xq.exports._configVault=vR._configVault;Xq.exports._parseVault=vR._parseVault;Xq.exports.config=vR.config;Xq.exports.decrypt=vR.decrypt;Xq.exports.parse=vR.parse;Xq.exports.populate=vR.populate;Xq.exports=vR});var ySn=H((C5l,v6t)=>{"use strict";var _Sn=(e,...t)=>new Promise(r=>{r(e(...t))});v6t.exports=_Sn;v6t.exports.default=_Sn});var Dfe=H((_5l,B6t)=>{"use strict";var Veo=ySn(),bSn=e=>{if(!((Number.isInteger(e)||e===1/0)&&e>0))return Promise.reject(new TypeError("Expected `concurrency` to be a number from 1 and up"));let t=[],r=0,n=()=>{r--,t.length>0&&t.shift()()},a=(A,f,...I)=>{r++;let C=Veo(A,...I);f(C),C.then(n,n)},o=(A,f,...I)=>{rnew Promise(I=>o(A,I,...f));return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),l};B6t.exports=bSn;B6t.exports.default=bSn});var M9=H(RSe=>{"use strict";Object.defineProperty(RSe,"__esModule",{value:!0});RSe.MessageName=void 0;RSe.stringifyMessageName=Peo;RSe.parseMessageName=Weo;var w6t;(function(e){e[e.UNNAMED=0]="UNNAMED",e[e.EXCEPTION=1]="EXCEPTION",e[e.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",e[e.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",e[e.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",e[e.BUILD_DISABLED=5]="BUILD_DISABLED",e[e.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",e[e.MUST_BUILD=7]="MUST_BUILD",e[e.MUST_REBUILD=8]="MUST_REBUILD",e[e.BUILD_FAILED=9]="BUILD_FAILED",e[e.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",e[e.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",e[e.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",e[e.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",e[e.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",e[e.REMOTE_INVALID=15]="REMOTE_INVALID",e[e.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",e[e.RESOLUTION_PACK=17]="RESOLUTION_PACK",e[e.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",e[e.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",e[e.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",e[e.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",e[e.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",e[e.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",e[e.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",e[e.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",e[e.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",e[e.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",e[e.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",e[e.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",e[e.FETCH_FAILED=30]="FETCH_FAILED",e[e.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",e[e.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",e[e.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",e[e.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",e[e.NETWORK_ERROR=35]="NETWORK_ERROR",e[e.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",e[e.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",e[e.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",e[e.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",e[e.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",e[e.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",e[e.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",e[e.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",e[e.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",e[e.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",e[e.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",e[e.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",e[e.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",e[e.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",e[e.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",e[e.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",e[e.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",e[e.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",e[e.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",e[e.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",e[e.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",e[e.INVALID_MANIFEST=57]="INVALID_MANIFEST",e[e.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",e[e.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",e[e.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",e[e.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",e[e.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",e[e.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",e[e.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",e[e.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",e[e.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",e[e.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",e[e.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",e[e.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",e[e.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",e[e.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",e[e.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",e[e.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",e[e.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",e[e.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",e[e.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",e[e.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",e[e.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",e[e.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",e[e.NETWORK_DISABLED=80]="NETWORK_DISABLED",e[e.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",e[e.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",e[e.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",e[e.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",e[e.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",e[e.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",e[e.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",e[e.VERSION_NOTICE=88]="VERSION_NOTICE",e[e.TIPS_NOTICE=89]="TIPS_NOTICE",e[e.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",e[e.INVALID_PROVENANCE_ENVIRONMENT=91]="INVALID_PROVENANCE_ENVIRONMENT",e[e.EXPERIMENTAL=92]="EXPERIMENTAL"})(w6t||(RSe.MessageName=w6t={}));function Peo(e){return`YN${e.toString(10).padStart(4,"0")}`}function Weo(e){let t=Number(e.slice(2));if(typeof w6t[t]>"u")throw new Error(`Unknown message name: "${e}"`);return t}});var s3e=H((b5l,ESn)=>{var Oeo="2.0.0",Meo=Number.MAX_SAFE_INTEGER||9007199254740991,Heo=16,Yeo=250,Qeo=["major","premajor","minor","preminor","patch","prepatch","prerelease"];ESn.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:Heo,MAX_SAFE_BUILD_LENGTH:Yeo,MAX_SAFE_INTEGER:Meo,RELEASE_TYPES:Qeo,SEMVER_SPEC_VERSION:Oeo,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var o3e=H((E5l,SSn)=>{var Xeo=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};SSn.exports=Xeo});var NSe=H((Jq,vSn)=>{var{MAX_SAFE_COMPONENT_LENGTH:T6t,MAX_SAFE_BUILD_LENGTH:Jeo,MAX_LENGTH:Ueo}=s3e(),Keo=o3e();Jq=vSn.exports={};var jeo=Jq.re=[],zeo=Jq.safeRe=[],AA=Jq.src=[],dA=Jq.t={},qeo=0,R6t="[a-zA-Z0-9-]",$eo=[["\\s",1],["\\d",Ueo],[R6t,Jeo]],eto=e=>{for(let[t,r]of $eo)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},jI=(e,t,r)=>{let n=eto(t),a=qeo++;Keo(e,a,t),dA[e]=a,AA[a]=t,jeo[a]=new RegExp(t,r?"g":void 0),zeo[a]=new RegExp(n,r?"g":void 0)};jI("NUMERICIDENTIFIER","0|[1-9]\\d*");jI("NUMERICIDENTIFIERLOOSE","\\d+");jI("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${R6t}*`);jI("MAINVERSION",`(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})\\.(${AA[dA.NUMERICIDENTIFIER]})`);jI("MAINVERSIONLOOSE",`(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})\\.(${AA[dA.NUMERICIDENTIFIERLOOSE]})`);jI("PRERELEASEIDENTIFIER",`(?:${AA[dA.NUMERICIDENTIFIER]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASEIDENTIFIERLOOSE",`(?:${AA[dA.NUMERICIDENTIFIERLOOSE]}|${AA[dA.NONNUMERICIDENTIFIER]})`);jI("PRERELEASE",`(?:-(${AA[dA.PRERELEASEIDENTIFIER]}(?:\\.${AA[dA.PRERELEASEIDENTIFIER]})*))`);jI("PRERELEASELOOSE",`(?:-?(${AA[dA.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${AA[dA.PRERELEASEIDENTIFIERLOOSE]})*))`);jI("BUILDIDENTIFIER",`${R6t}+`);jI("BUILD",`(?:\\+(${AA[dA.BUILDIDENTIFIER]}(?:\\.${AA[dA.BUILDIDENTIFIER]})*))`);jI("FULLPLAIN",`v?${AA[dA.MAINVERSION]}${AA[dA.PRERELEASE]}?${AA[dA.BUILD]}?`);jI("FULL",`^${AA[dA.FULLPLAIN]}$`);jI("LOOSEPLAIN",`[v=\\s]*${AA[dA.MAINVERSIONLOOSE]}${AA[dA.PRERELEASELOOSE]}?${AA[dA.BUILD]}?`);jI("LOOSE",`^${AA[dA.LOOSEPLAIN]}$`);jI("GTLT","((?:<|>)?=?)");jI("XRANGEIDENTIFIERLOOSE",`${AA[dA.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);jI("XRANGEIDENTIFIER",`${AA[dA.NUMERICIDENTIFIER]}|x|X|\\*`);jI("XRANGEPLAIN",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:\\.(${AA[dA.XRANGEIDENTIFIER]})(?:${AA[dA.PRERELEASE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGEPLAINLOOSE",`[v=\\s]*(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:\\.(${AA[dA.XRANGEIDENTIFIERLOOSE]})(?:${AA[dA.PRERELEASELOOSE]})?${AA[dA.BUILD]}?)?)?`);jI("XRANGE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAIN]}$`);jI("XRANGELOOSE",`^${AA[dA.GTLT]}\\s*${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COERCEPLAIN",`(^|[^\\d])(\\d{1,${T6t}})(?:\\.(\\d{1,${T6t}}))?(?:\\.(\\d{1,${T6t}}))?`);jI("COERCE",`${AA[dA.COERCEPLAIN]}(?:$|[^\\d])`);jI("COERCEFULL",AA[dA.COERCEPLAIN]+`(?:${AA[dA.PRERELEASE]})?(?:${AA[dA.BUILD]})?(?:$|[^\\d])`);jI("COERCERTL",AA[dA.COERCE],!0);jI("COERCERTLFULL",AA[dA.COERCEFULL],!0);jI("LONETILDE","(?:~>?)");jI("TILDETRIM",`(\\s*)${AA[dA.LONETILDE]}\\s+`,!0);Jq.tildeTrimReplace="$1~";jI("TILDE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAIN]}$`);jI("TILDELOOSE",`^${AA[dA.LONETILDE]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("LONECARET","(?:\\^)");jI("CARETTRIM",`(\\s*)${AA[dA.LONECARET]}\\s+`,!0);Jq.caretTrimReplace="$1^";jI("CARET",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAIN]}$`);jI("CARETLOOSE",`^${AA[dA.LONECARET]}${AA[dA.XRANGEPLAINLOOSE]}$`);jI("COMPARATORLOOSE",`^${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]})$|^$`);jI("COMPARATOR",`^${AA[dA.GTLT]}\\s*(${AA[dA.FULLPLAIN]})$|^$`);jI("COMPARATORTRIM",`(\\s*)${AA[dA.GTLT]}\\s*(${AA[dA.LOOSEPLAIN]}|${AA[dA.XRANGEPLAIN]})`,!0);Jq.comparatorTrimReplace="$1$2$3";jI("HYPHENRANGE",`^\\s*(${AA[dA.XRANGEPLAIN]})\\s+-\\s+(${AA[dA.XRANGEPLAIN]})\\s*$`);jI("HYPHENRANGELOOSE",`^\\s*(${AA[dA.XRANGEPLAINLOOSE]})\\s+-\\s+(${AA[dA.XRANGEPLAINLOOSE]})\\s*$`);jI("STAR","(<|>)?=?\\s*\\*");jI("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");jI("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var zct=H((S5l,BSn)=>{var tto=Object.freeze({loose:!0}),rto=Object.freeze({}),nto=e=>e?typeof e!="object"?tto:e:rto;BSn.exports=nto});var N6t=H((v5l,RSn)=>{var wSn=/^[0-9]+$/,TSn=(e,t)=>{let r=wSn.test(e),n=wSn.test(t);return r&&n&&(e=+e,t=+t),e===t?0:r&&!n?-1:n&&!r?1:eTSn(t,e);RSn.exports={compareIdentifiers:TSn,rcompareIdentifiers:ito}});var cG=H((B5l,xSn)=>{var qct=o3e(),{MAX_LENGTH:NSn,MAX_SAFE_INTEGER:$ct}=s3e(),{safeRe:DSn,t:kSn}=NSe(),sto=zct(),{compareIdentifiers:DSe}=N6t(),D6t=class e{constructor(t,r){if(r=sto(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>NSn)throw new TypeError(`version is longer than ${NSn} characters`);qct("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let n=t.trim().match(r.loose?DSn[kSn.LOOSE]:DSn[kSn.FULL]);if(!n)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+n[1],this.minor=+n[2],this.patch=+n[3],this.major>$ct||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$ct||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$ct||this.patch<0)throw new TypeError("Invalid patch version");n[4]?this.prerelease=n[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let o=+a;if(o>=0&&o<$ct)return o}return a}):this.prerelease=[],this.build=n[5]?n[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(qct("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),DSe(this.major,t.major)||DSe(this.minor,t.minor)||DSe(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let n=this.prerelease[r],a=t.prerelease[r];if(qct("prerelease compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let n=this.build[r],a=t.build[r];if(qct("build compare",r,n,a),n===void 0&&a===void 0)return 0;if(a===void 0)return 1;if(n===void 0)return-1;if(n===a)continue;return DSe(n,a)}while(++r)}inc(t,r,n){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,n);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,n);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,n),this.inc("pre",r,n);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,n),this.inc("pre",r,n);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let a=Number(n)?1:0;if(!r&&n===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[a];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(r===this.prerelease.join(".")&&n===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let o=[r,a];n===!1&&(o=[r]),DSe(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};xSn.exports=D6t});var kfe=H((w5l,FSn)=>{var GSn=cG(),oto=(e,t,r=!1)=>{if(e instanceof GSn)return e;try{return new GSn(e,t)}catch(n){if(!r)return null;throw n}};FSn.exports=oto});var k6t=H((T5l,ZSn)=>{var ato=kfe(),cto=(e,t)=>{let r=ato(e,t);return r?r.version:null};ZSn.exports=cto});var x6t=H((R5l,LSn)=>{var lto=kfe(),uto=(e,t)=>{let r=lto(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};LSn.exports=uto});var WSn=H((N5l,PSn)=>{var VSn=cG(),gto=(e,t,r,n,a)=>{typeof r=="string"&&(a=n,n=r,r=void 0);try{return new VSn(e instanceof VSn?e.version:e,r).inc(t,n,a).version}catch{return null}};PSn.exports=gto});var HSn=H((D5l,MSn)=>{var OSn=kfe(),Ato=(e,t)=>{let r=OSn(e,null,!0),n=OSn(t,null,!0),a=r.compare(n);if(a===0)return null;let o=a>0,l=o?r:n,A=o?n:r,f=!!l.prerelease.length;if(!!A.prerelease.length&&!f)return!A.patch&&!A.minor?"major":l.patch?"patch":l.minor?"minor":"major";let C=f?"pre":"";return r.major!==n.major?C+"major":r.minor!==n.minor?C+"minor":r.patch!==n.patch?C+"patch":"prerelease"};MSn.exports=Ato});var QSn=H((k5l,YSn)=>{var dto=cG(),pto=(e,t)=>new dto(e,t).major;YSn.exports=pto});var JSn=H((x5l,XSn)=>{var fto=cG(),Ito=(e,t)=>new fto(e,t).minor;XSn.exports=Ito});var KSn=H((G5l,USn)=>{var hto=cG(),mto=(e,t)=>new hto(e,t).patch;USn.exports=mto});var zSn=H((F5l,jSn)=>{var Cto=kfe(),_to=(e,t)=>{let r=Cto(e,t);return r&&r.prerelease.length?r.prerelease:null};jSn.exports=_to});var U5=H((Z5l,$Sn)=>{var qSn=cG(),yto=(e,t,r)=>new qSn(e,r).compare(new qSn(t,r));$Sn.exports=yto});var tvn=H((L5l,evn)=>{var bto=U5(),Eto=(e,t,r)=>bto(t,e,r);evn.exports=Eto});var nvn=H((V5l,rvn)=>{var Sto=U5(),vto=(e,t)=>Sto(e,t,!0);rvn.exports=vto});var elt=H((P5l,svn)=>{var ivn=cG(),Bto=(e,t,r)=>{let n=new ivn(e,r),a=new ivn(t,r);return n.compare(a)||n.compareBuild(a)};svn.exports=Bto});var avn=H((W5l,ovn)=>{var wto=elt(),Tto=(e,t)=>e.sort((r,n)=>wto(r,n,t));ovn.exports=Tto});var lvn=H((O5l,cvn)=>{var Rto=elt(),Nto=(e,t)=>e.sort((r,n)=>Rto(n,r,t));cvn.exports=Nto});var a3e=H((M5l,uvn)=>{var Dto=U5(),kto=(e,t,r)=>Dto(e,t,r)>0;uvn.exports=kto});var tlt=H((H5l,gvn)=>{var xto=U5(),Gto=(e,t,r)=>xto(e,t,r)<0;gvn.exports=Gto});var G6t=H((Y5l,Avn)=>{var Fto=U5(),Zto=(e,t,r)=>Fto(e,t,r)===0;Avn.exports=Zto});var F6t=H((Q5l,dvn)=>{var Lto=U5(),Vto=(e,t,r)=>Lto(e,t,r)!==0;dvn.exports=Vto});var rlt=H((X5l,pvn)=>{var Pto=U5(),Wto=(e,t,r)=>Pto(e,t,r)>=0;pvn.exports=Wto});var nlt=H((J5l,fvn)=>{var Oto=U5(),Mto=(e,t,r)=>Oto(e,t,r)<=0;fvn.exports=Mto});var Z6t=H((U5l,Ivn)=>{var Hto=G6t(),Yto=F6t(),Qto=a3e(),Xto=rlt(),Jto=tlt(),Uto=nlt(),Kto=(e,t,r,n)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return Hto(e,r,n);case"!=":return Yto(e,r,n);case">":return Qto(e,r,n);case">=":return Xto(e,r,n);case"<":return Jto(e,r,n);case"<=":return Uto(e,r,n);default:throw new TypeError(`Invalid operator: ${t}`)}};Ivn.exports=Kto});var mvn=H((K5l,hvn)=>{var jto=cG(),zto=kfe(),{safeRe:ilt,t:slt}=NSe(),qto=(e,t)=>{if(e instanceof jto)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match(t.includePrerelease?ilt[slt.COERCEFULL]:ilt[slt.COERCE]);else{let f=t.includePrerelease?ilt[slt.COERCERTLFULL]:ilt[slt.COERCERTL],I;for(;(I=f.exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||I.index+I[0].length!==r.index+r[0].length)&&(r=I),f.lastIndex=I.index+I[1].length+I[2].length;f.lastIndex=-1}if(r===null)return null;let n=r[2],a=r[3]||"0",o=r[4]||"0",l=t.includePrerelease&&r[5]?`-${r[5]}`:"",A=t.includePrerelease&&r[6]?`+${r[6]}`:"";return zto(`${n}.${a}.${o}${l}${A}`,t)};hvn.exports=qto});var _vn=H((j5l,Cvn)=>{var L6t=class{constructor(){this.max=1e3,this.map=new Map}get(t){let r=this.map.get(t);if(r!==void 0)return this.map.delete(t),this.map.set(t,r),r}delete(t){return this.map.delete(t)}set(t,r){if(!this.delete(t)&&r!==void 0){if(this.map.size>=this.max){let a=this.map.keys().next().value;this.delete(a)}this.map.set(t,r)}return this}};Cvn.exports=L6t});var K5=H((z5l,Svn)=>{var $to=/\s+/g,V6t=class e{constructor(t,r){if(r=tro(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof P6t)return this.raw=t.value,this.set=[[t]],this.formatted=void 0,this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().replace($to," "),this.set=this.raw.split("||").map(n=>this.parseRange(n.trim())).filter(n=>n.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let n=this.set[0];if(this.set=this.set.filter(a=>!bvn(a[0])),this.set.length===0)this.set=[n];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&cro(a[0])){this.set=[a];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let t=0;t0&&(this.formatted+="||");let r=this.set[t];for(let n=0;n0&&(this.formatted+=" "),this.formatted+=r[n].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(t){let n=((this.options.includePrerelease&&oro)|(this.options.loose&&aro))+":"+t,a=yvn.get(n);if(a)return a;let o=this.options.loose,l=o?H9[bZ.HYPHENRANGELOOSE]:H9[bZ.HYPHENRANGE];t=t.replace(l,mro(this.options.includePrerelease)),k1("hyphen replace",t),t=t.replace(H9[bZ.COMPARATORTRIM],nro),k1("comparator trim",t),t=t.replace(H9[bZ.TILDETRIM],iro),k1("tilde trim",t),t=t.replace(H9[bZ.CARETTRIM],sro),k1("caret trim",t);let A=t.split(" ").map(b=>lro(b,this.options)).join(" ").split(/\s+/).map(b=>hro(b,this.options));o&&(A=A.filter(b=>(k1("loose invalid filter",b,this.options),!!b.match(H9[bZ.COMPARATORLOOSE])))),k1("range list",A);let f=new Map,I=A.map(b=>new P6t(b,this.options));for(let b of I){if(bvn(b))return[b];f.set(b.value,b)}f.size>1&&f.has("")&&f.delete("");let C=[...f.values()];return yvn.set(n,C),C}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(n=>Evn(n,r)&&t.set.some(a=>Evn(a,r)&&n.every(o=>a.every(l=>o.intersects(l,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new rro(t,this.options)}catch{return!1}for(let r=0;re.value==="<0.0.0-0",cro=e=>e.value==="",Evn=(e,t)=>{let r=!0,n=e.slice(),a=n.pop();for(;r&&n.length;)r=n.every(o=>a.intersects(o,t)),a=n.pop();return r},lro=(e,t)=>(k1("comp",e,t),e=Aro(e,t),k1("caret",e),e=uro(e,t),k1("tildes",e),e=pro(e,t),k1("xrange",e),e=Iro(e,t),k1("stars",e),e),EZ=e=>!e||e.toLowerCase()==="x"||e==="*",uro=(e,t)=>e.trim().split(/\s+/).map(r=>gro(r,t)).join(" "),gro=(e,t)=>{let r=t.loose?H9[bZ.TILDELOOSE]:H9[bZ.TILDE];return e.replace(r,(n,a,o,l,A)=>{k1("tilde",e,n,a,o,l,A);let f;return EZ(a)?f="":EZ(o)?f=`>=${a}.0.0 <${+a+1}.0.0-0`:EZ(l)?f=`>=${a}.${o}.0 <${a}.${+o+1}.0-0`:A?(k1("replaceTilde pr",A),f=`>=${a}.${o}.${l}-${A} <${a}.${+o+1}.0-0`):f=`>=${a}.${o}.${l} <${a}.${+o+1}.0-0`,k1("tilde return",f),f})},Aro=(e,t)=>e.trim().split(/\s+/).map(r=>dro(r,t)).join(" "),dro=(e,t)=>{k1("caret",e,t);let r=t.loose?H9[bZ.CARETLOOSE]:H9[bZ.CARET],n=t.includePrerelease?"-0":"";return e.replace(r,(a,o,l,A,f)=>{k1("caret",e,a,o,l,A,f);let I;return EZ(o)?I="":EZ(l)?I=`>=${o}.0.0${n} <${+o+1}.0.0-0`:EZ(A)?o==="0"?I=`>=${o}.${l}.0${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.0${n} <${+o+1}.0.0-0`:f?(k1("replaceCaret pr",f),o==="0"?l==="0"?I=`>=${o}.${l}.${A}-${f} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}-${f} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A}-${f} <${+o+1}.0.0-0`):(k1("no pr"),o==="0"?l==="0"?I=`>=${o}.${l}.${A}${n} <${o}.${l}.${+A+1}-0`:I=`>=${o}.${l}.${A}${n} <${o}.${+l+1}.0-0`:I=`>=${o}.${l}.${A} <${+o+1}.0.0-0`),k1("caret return",I),I})},pro=(e,t)=>(k1("replaceXRanges",e,t),e.split(/\s+/).map(r=>fro(r,t)).join(" ")),fro=(e,t)=>{e=e.trim();let r=t.loose?H9[bZ.XRANGELOOSE]:H9[bZ.XRANGE];return e.replace(r,(n,a,o,l,A,f)=>{k1("xRange",e,n,a,o,l,A,f);let I=EZ(o),C=I||EZ(l),b=C||EZ(A),E=b;return a==="="&&E&&(a=""),f=t.includePrerelease?"-0":"",I?a===">"||a==="<"?n="<0.0.0-0":n="*":a&&E?(C&&(l=0),A=0,a===">"?(a=">=",C?(o=+o+1,l=0,A=0):(l=+l+1,A=0)):a==="<="&&(a="<",C?o=+o+1:l=+l+1),a==="<"&&(f="-0"),n=`${a+o}.${l}.${A}${f}`):C?n=`>=${o}.0.0${f} <${+o+1}.0.0-0`:b&&(n=`>=${o}.${l}.0${f} <${o}.${+l+1}.0-0`),k1("xRange return",n),n})},Iro=(e,t)=>(k1("replaceStars",e,t),e.trim().replace(H9[bZ.STAR],"")),hro=(e,t)=>(k1("replaceGTE0",e,t),e.trim().replace(H9[t.includePrerelease?bZ.GTE0PRE:bZ.GTE0],"")),mro=e=>(t,r,n,a,o,l,A,f,I,C,b,E)=>(EZ(n)?r="":EZ(a)?r=`>=${n}.0.0${e?"-0":""}`:EZ(o)?r=`>=${n}.${a}.0${e?"-0":""}`:l?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,EZ(I)?f="":EZ(C)?f=`<${+I+1}.0.0-0`:EZ(b)?f=`<${I}.${+C+1}.0-0`:E?f=`<=${I}.${C}.${b}-${E}`:e?f=`<${I}.${C}.${+b+1}-0`:f=`<=${f}`,`${r} ${f}`.trim()),Cro=(e,t,r)=>{for(let n=0;n0){let a=e[n].semver;if(a.major===t.major&&a.minor===t.minor&&a.patch===t.patch)return!0}return!1}return!0}});var c3e=H((q5l,Nvn)=>{var l3e=Symbol("SemVer ANY"),M6t=class e{static get ANY(){return l3e}constructor(t,r){if(r=vvn(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),O6t("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===l3e?this.value="":this.value=this.operator+this.semver.version,O6t("comp",this)}parse(t){let r=this.options.loose?Bvn[wvn.COMPARATORLOOSE]:Bvn[wvn.COMPARATOR],n=t.match(r);if(!n)throw new TypeError(`Invalid comparator: ${t}`);this.operator=n[1]!==void 0?n[1]:"",this.operator==="="&&(this.operator=""),n[2]?this.semver=new Tvn(n[2],this.options.loose):this.semver=l3e}toString(){return this.value}test(t){if(O6t("Comparator.test",t,this.options.loose),this.semver===l3e||t===l3e)return!0;if(typeof t=="string")try{t=new Tvn(t,this.options)}catch{return!1}return W6t(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new Rvn(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new Rvn(this.value,r).test(t.semver):(r=vvn(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||W6t(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||W6t(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};Nvn.exports=M6t;var vvn=zct(),{safeRe:Bvn,t:wvn}=NSe(),W6t=Z6t(),O6t=o3e(),Tvn=cG(),Rvn=K5()});var u3e=H(($5l,Dvn)=>{var _ro=K5(),yro=(e,t,r)=>{try{t=new _ro(t,r)}catch{return!1}return t.test(e)};Dvn.exports=yro});var xvn=H((eMl,kvn)=>{var bro=K5(),Ero=(e,t)=>new bro(e,t).set.map(r=>r.map(n=>n.value).join(" ").trim().split(" "));kvn.exports=Ero});var Fvn=H((tMl,Gvn)=>{var Sro=cG(),vro=K5(),Bro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new vro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===-1)&&(n=l,a=new Sro(n,r))}),n};Gvn.exports=Bro});var Lvn=H((rMl,Zvn)=>{var wro=cG(),Tro=K5(),Rro=(e,t,r)=>{let n=null,a=null,o=null;try{o=new Tro(t,r)}catch{return null}return e.forEach(l=>{o.test(l)&&(!n||a.compare(l)===1)&&(n=l,a=new wro(n,r))}),n};Zvn.exports=Rro});var Wvn=H((nMl,Pvn)=>{var H6t=cG(),Nro=K5(),Vvn=a3e(),Dro=(e,t)=>{e=new Nro(e,t);let r=new H6t("0.0.0");if(e.test(r)||(r=new H6t("0.0.0-0"),e.test(r)))return r;r=null;for(let n=0;n{let A=new H6t(l.semver.version);switch(l.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!o||Vvn(A,o))&&(o=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${l.operator}`)}}),o&&(!r||Vvn(r,o))&&(r=o)}return r&&e.test(r)?r:null};Pvn.exports=Dro});var Mvn=H((iMl,Ovn)=>{var kro=K5(),xro=(e,t)=>{try{return new kro(e,t).range||"*"}catch{return null}};Ovn.exports=xro});var olt=H((sMl,Xvn)=>{var Gro=cG(),Qvn=c3e(),{ANY:Fro}=Qvn,Zro=K5(),Lro=u3e(),Hvn=a3e(),Yvn=tlt(),Vro=nlt(),Pro=rlt(),Wro=(e,t,r,n)=>{e=new Gro(e,n),t=new Zro(t,n);let a,o,l,A,f;switch(r){case">":a=Hvn,o=Vro,l=Yvn,A=">",f=">=";break;case"<":a=Yvn,o=Pro,l=Hvn,A="<",f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Lro(e,t,n))return!1;for(let I=0;I{N.semver===Fro&&(N=new Qvn(">=0.0.0")),b=b||N,E=E||N,a(N.semver,b.semver,n)?b=N:l(N.semver,E.semver,n)&&(E=N)}),b.operator===A||b.operator===f||(!E.operator||E.operator===A)&&o(e,E.semver))return!1;if(E.operator===f&&l(e,E.semver))return!1}return!0};Xvn.exports=Wro});var Uvn=H((oMl,Jvn)=>{var Oro=olt(),Mro=(e,t,r)=>Oro(e,t,">",r);Jvn.exports=Mro});var jvn=H((aMl,Kvn)=>{var Hro=olt(),Yro=(e,t,r)=>Hro(e,t,"<",r);Kvn.exports=Yro});var $vn=H((cMl,qvn)=>{var zvn=K5(),Qro=(e,t,r)=>(e=new zvn(e,r),t=new zvn(t,r),e.intersects(t,r));qvn.exports=Qro});var tBn=H((lMl,eBn)=>{var Xro=u3e(),Jro=U5();eBn.exports=(e,t,r)=>{let n=[],a=null,o=null,l=e.sort((C,b)=>Jro(C,b,r));for(let C of l)Xro(C,t,r)?(o=C,a||(a=C)):(o&&n.push([a,o]),o=null,a=null);a&&n.push([a,null]);let A=[];for(let[C,b]of n)C===b?A.push(C):!b&&C===l[0]?A.push("*"):b?C===l[0]?A.push(`<=${b}`):A.push(`${C} - ${b}`):A.push(`>=${C}`);let f=A.join(" || "),I=typeof t.raw=="string"?t.raw:String(t);return f.length{var rBn=K5(),Q6t=c3e(),{ANY:Y6t}=Q6t,g3e=u3e(),X6t=U5(),Uro=(e,t,r={})=>{if(e===t)return!0;e=new rBn(e,r),t=new rBn(t,r);let n=!1;e:for(let a of e.set){for(let o of t.set){let l=jro(a,o,r);if(n=n||l!==null,l)continue e}if(n)return!1}return!0},Kro=[new Q6t(">=0.0.0-0")],nBn=[new Q6t(">=0.0.0")],jro=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===Y6t){if(t.length===1&&t[0].semver===Y6t)return!0;r.includePrerelease?e=Kro:e=nBn}if(t.length===1&&t[0].semver===Y6t){if(r.includePrerelease)return!0;t=nBn}let n=new Set,a,o;for(let N of e)N.operator===">"||N.operator===">="?a=iBn(a,N,r):N.operator==="<"||N.operator==="<="?o=sBn(o,N,r):n.add(N.semver);if(n.size>1)return null;let l;if(a&&o){if(l=X6t(a.semver,o.semver,r),l>0)return null;if(l===0&&(a.operator!==">="||o.operator!=="<="))return null}for(let N of n){if(a&&!g3e(N,String(a),r)||o&&!g3e(N,String(o),r))return null;for(let B of t)if(!g3e(N,String(B),r))return!1;return!0}let A,f,I,C,b=o&&!r.includePrerelease&&o.semver.prerelease.length?o.semver:!1,E=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;b&&b.prerelease.length===1&&o.operator==="<"&&b.prerelease[0]===0&&(b=!1);for(let N of t){if(C=C||N.operator===">"||N.operator===">=",I=I||N.operator==="<"||N.operator==="<=",a){if(E&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===E.major&&N.semver.minor===E.minor&&N.semver.patch===E.patch&&(E=!1),N.operator===">"||N.operator===">="){if(A=iBn(a,N,r),A===N&&A!==a)return!1}else if(a.operator===">="&&!g3e(a.semver,String(N),r))return!1}if(o){if(b&&N.semver.prerelease&&N.semver.prerelease.length&&N.semver.major===b.major&&N.semver.minor===b.minor&&N.semver.patch===b.patch&&(b=!1),N.operator==="<"||N.operator==="<="){if(f=sBn(o,N,r),f===N&&f!==o)return!1}else if(o.operator==="<="&&!g3e(o.semver,String(N),r))return!1}if(!N.operator&&(o||a)&&l!==0)return!1}return!(a&&I&&!o&&l!==0||o&&C&&!a&&l!==0||E||b)},iBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n>0?e:n<0||t.operator===">"&&e.operator===">="?t:e},sBn=(e,t,r)=>{if(!e)return t;let n=X6t(e.semver,t.semver,r);return n<0?e:n>0||t.operator==="<"&&e.operator==="<="?t:e};oBn.exports=Uro});var UC=H((gMl,uBn)=>{var J6t=NSe(),cBn=s3e(),zro=cG(),lBn=N6t(),qro=kfe(),$ro=k6t(),eno=x6t(),tno=WSn(),rno=HSn(),nno=QSn(),ino=JSn(),sno=KSn(),ono=zSn(),ano=U5(),cno=tvn(),lno=nvn(),uno=elt(),gno=avn(),Ano=lvn(),dno=a3e(),pno=tlt(),fno=G6t(),Ino=F6t(),hno=rlt(),mno=nlt(),Cno=Z6t(),_no=mvn(),yno=c3e(),bno=K5(),Eno=u3e(),Sno=xvn(),vno=Fvn(),Bno=Lvn(),wno=Wvn(),Tno=Mvn(),Rno=olt(),Nno=Uvn(),Dno=jvn(),kno=$vn(),xno=tBn(),Gno=aBn();uBn.exports={parse:qro,valid:$ro,clean:eno,inc:tno,diff:rno,major:nno,minor:ino,patch:sno,prerelease:ono,compare:ano,rcompare:cno,compareLoose:lno,compareBuild:uno,sort:gno,rsort:Ano,gt:dno,lt:pno,eq:fno,neq:Ino,gte:hno,lte:mno,cmp:Cno,coerce:_no,Comparator:yno,Range:bno,satisfies:Eno,toComparators:Sno,maxSatisfying:vno,minSatisfying:Bno,minVersion:wno,validRange:Tno,outside:Rno,gtr:Nno,ltr:Dno,intersects:kno,simplifyRange:xno,subset:Gno,SemVer:zro,re:J6t.re,src:J6t.src,tokens:J6t.t,SEMVER_SPEC_VERSION:cBn.SEMVER_SPEC_VERSION,RELEASE_TYPES:cBn.RELEASE_TYPES,compareIdentifiers:lBn.compareIdentifiers,rcompareIdentifiers:lBn.rcompareIdentifiers}});var ABn=H((AMl,gBn)=>{"use strict";function Fno(e,t){function r(){this.constructor=e}r.prototype=t.prototype,e.prototype=new r}function xfe(e,t,r,n){this.message=e,this.expected=t,this.found=r,this.location=n,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,xfe)}Fno(xfe,Error);xfe.buildMessage=function(e,t){var r={literal:function(I){return'"'+a(I.text)+'"'},class:function(I){var C="",b;for(b=0;b0){for(b=1,E=1;b{switch(xi[1]){case"|":return Vr|xi[3];case"&":return Vr&xi[3];case"^":return Vr^xi[3]}},Hi)},E="!",N=vt("!",!1),B=function(Hi){return!Hi},F="(",Q=vt("(",!1),X=")",ae=vt(")",!1),ne=function(Hi){return Hi},ce=/^[^ \t\n\r()!|&\^]/,fe=xt([" "," ",` `,"\r","(",")","!","|","&","^"],!0,!1),ue=function(Hi){return t.queryPattern.test(Hi)},de=function(Hi){return t.checkFn(Hi)},be=Xt("whitespace"),Se=/^[ \t\n\r]/,De=xt([" "," ",` -`,"\r"],!1,!1),k=0,et=0,ct=[{line:1,column:1}],Me=0,je=[],St=0,At;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function Yt(){return e.substring(et,k)}function Tr(){return cr(et,k)}function Nr(Hi,po){throw po=po!==void 0?po:cr(et,k),_n([Xt(Hi)],e.substring(et,k),po)}function er(Hi,po){throw po=po!==void 0?po:cr(et,k),qr(Hi,po)}function vt(Hi,po){return{type:"literal",text:Hi,ignoreCase:po}}function xt(Hi,po,Vr){return{type:"class",parts:Hi,inverted:po,ignoreCase:Vr}}function Zr(){return{type:"any"}}function qt(){return{type:"end"}}function Xt(Hi){return{type:"other",description:Hi}}function lr(Hi){var po=ct[Hi],Vr;if(po)return po;for(Vr=Hi-1;!ct[Vr];)Vr--;for(po=ct[Vr],po={line:po.line,column:po.column};VrMe&&(Me=k,je=[]),je.push(Hi))}function qr(Hi,po){return new xfe(Hi,null,null,po)}function _n(Hi,po,Vr){return new xfe(xfe.buildMessage(Hi,po),Hi,po,Vr)}function ke(){var Hi,po,Vr,xi,io,ga,Ya,Gc;if(Hi=k,po=jt(),po!==r){for(Vr=[],xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);xi!==r;)Vr.push(xi),xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);Vr!==r?(et=Hi,po=b(po,Vr),Hi=po):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function jt(){var Hi,po,Vr,xi,io,ga;return Hi=k,e.charCodeAt(k)===33?(po=E,k++):(po=r,St===0&&Ar(N)),po!==r?(Vr=jt(),Vr!==r?(et=Hi,po=B(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=k,e.charCodeAt(k)===40?(po=F,k++):(po=r,St===0&&Ar(Q)),po!==r?(Vr=Nn(),Vr!==r?(xi=ke(),xi!==r?(io=Nn(),io!==r?(e.charCodeAt(k)===41?(ga=X,k++):(ga=r,St===0&&Ar(ae)),ga!==r?(et=Hi,po=ne(xi),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=Fn())),Hi}function Fn(){var Hi,po,Vr,xi,io;if(Hi=k,po=Nn(),po!==r){if(Vr=k,xi=[],ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe)),io!==r)for(;io!==r;)xi.push(io),ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe));else xi=r;xi!==r?Vr=e.substring(Vr,k):Vr=xi,Vr!==r?(et=k,xi=ue(Vr),xi?xi=void 0:xi=r,xi!==r?(et=Hi,po=de(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function Nn(){var Hi,po;for(St++,Hi=[],Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));po!==r;)Hi.push(po),Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));return St--,Hi===r&&(po=r,St===0&&Ar(be)),Hi}if(At=a(),At!==r&&k===e.length)return At;throw At!==r&&k{var{parse:Lno}=ABn();alt.makeParser=(e=/[a-z]+/)=>(t,r)=>Lno(t,{queryPattern:e,checkFn:r});alt.parse=alt.makeParser()});var fBn=H((dMl,pBn)=>{"use strict";pBn.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var U6t=H((pMl,hBn)=>{var A3e=fBn(),IBn={};for(let e of Object.keys(A3e))IBn[A3e[e]]=e;var dd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};hBn.exports=dd;for(let e of Object.keys(dd)){if(!("channels"in dd[e]))throw new Error("missing channels property: "+e);if(!("labels"in dd[e]))throw new Error("missing channel labels property: "+e);if(dd[e].labels.length!==dd[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=dd[e];delete dd[e].channels,delete dd[e].labels,Object.defineProperty(dd[e],"channels",{value:t}),Object.defineProperty(dd[e],"labels",{value:r})}dd.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f;o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360);let I=(a+o)/2;return o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};dd.rgb.hsv=function(e){let t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?(a=0,o=0):(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};dd.rgb.hwb=function(e){let t=e[0],r=e[1],n=e[2],a=dd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};dd.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(1-t,1-r,1-n),o=(1-t-a)/(1-a)||0,l=(1-r-a)/(1-a)||0,A=(1-n-a)/(1-a)||0;return[o*100,l*100,A*100,a*100]};function Vno(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}dd.rgb.keyword=function(e){let t=IBn[e];if(t)return t;let r=1/0,n;for(let a of Object.keys(A3e)){let o=A3e[a],l=Vno(e,o);l.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};dd.rgb.lab=function(e){let t=dd.rgb.xyz(e),r=t[0],n=t[1],a=t[2];r/=95.047,n/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*n-16,l=500*(r-n),A=200*(n-a);return[o,l,A]};dd.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l;if(r===0)return l=n*255,[l,l,l];n<.5?a=n*(1+r):a=n+r-n*r;let A=2*n-a,f=[0,0,0];for(let I=0;I<3;I++)o=t+1/3*-(I-1),o<0&&o++,o>1&&o--,6*o<1?l=A+(a-A)*6*o:2*o<1?l=a:3*o<2?l=A+(a-A)*(2/3-o)*6:l=A,f[I]=l*255;return f};dd.hsl.hsv=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o;let l=(n+r)/2,A=n===0?2*a/(o+a):2*r/(n+r);return[t,A*100,l*100]};dd.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};dd.hsv.hsl=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l;l=(2-r)*n;let A=(2-r)*a;return o=r*a,o/=A<=1?A:2-A,o=o||0,l/=2,[t,o*100,l*100]};dd.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o;a>1&&(r/=a,n/=a);let l=Math.floor(6*t),A=1-n;o=6*t-l,l&1&&(o=1-o);let f=r+o*(A-r),I,C,b;switch(l){default:case 6:case 0:I=A,C=f,b=r;break;case 1:I=f,C=A,b=r;break;case 2:I=r,C=A,b=f;break;case 3:I=r,C=f,b=A;break;case 4:I=f,C=r,b=A;break;case 5:I=A,C=r,b=f;break}return[I*255,C*255,b*255]};dd.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a);return[o*255,l*255,A*255]};dd.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};dd.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let a=116*r-16,o=500*(t-r),l=200*(r-n);return[a,o,l]};dd.lab.xyz=function(e){let t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;let A=o**3,f=a**3,I=l**3;return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};dd.lab.lch=function(e){let t=e[0],r=e[1],n=e[2],a;a=Math.atan2(n,r)*360/2/Math.PI,a<0&&(a+=360);let l=Math.sqrt(r*r+n*n);return[t,l,a]};dd.lch.lab=function(e){let t=e[0],r=e[1],a=e[2]/360*2*Math.PI,o=r*Math.cos(a),l=r*Math.sin(a);return[t,o,l]};dd.rgb.ansi16=function(e,t=null){let[r,n,a]=e,o=t===null?dd.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let l=30+(Math.round(a/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return o===2&&(l+=60),l};dd.hsv.ansi16=function(e){return dd.rgb.ansi16(dd.hsv.rgb(e),e[2])};dd.rgb.ansi256=function(e){let t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};dd.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};dd.ansi256.rgb=function(e){if(e>=232){let o=(e-232)*10+8;return[o,o,o]}e-=16;let t,r=Math.floor(e/36)/5*255,n=Math.floor((t=e%36)/6)/5*255,a=t%6/5*255;return[r,n,a]};dd.rgb.hex=function(e){let r=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};dd.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};dd.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l,f/=6,f%=1,[f*360,l*100,A*100]};dd.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r),a=0;return n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};dd.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};dd.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];let a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};dd.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};dd.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};dd.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};dd.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};dd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};dd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};dd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};dd.gray.hsl=function(e){return[0,0,e[0]]};dd.gray.hsv=dd.gray.hsl;dd.gray.hwb=function(e){return[0,100,e[0]]};dd.gray.cmyk=function(e){return[0,0,0,e[0]]};dd.gray.lab=function(e){return[e[0],0,0]};dd.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n};dd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var CBn=H((fMl,mBn)=>{var clt=U6t();function Pno(){let e={},t=Object.keys(clt);for(let r=t.length,n=0;n{var K6t=U6t(),Hno=CBn(),kSe={},Yno=Object.keys(K6t);function Qno(e){let t=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function Xno(e){let t=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let a=e(r);if(typeof a=="object")for(let o=a.length,l=0;l{kSe[e]={},Object.defineProperty(kSe[e],"channels",{value:K6t[e].channels}),Object.defineProperty(kSe[e],"labels",{value:K6t[e].labels});let t=Hno(e);Object.keys(t).forEach(n=>{let a=t[n];kSe[e][n]=Xno(a),kSe[e][n].raw=Qno(a)})});_Bn.exports=kSe});var ult=H((hMl,BBn)=>{"use strict";var bBn=(e,t)=>(...r)=>`\x1B[${e(...r)+t}m`,EBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};5;${n}m`},SBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};2;${n[0]};${n[1]};${n[2]}m`},llt=e=>e,vBn=(e,t,r)=>[e,t,r],xSe=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{let n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},j6t,GSe=(e,t,r,n)=>{j6t===void 0&&(j6t=yBn());let a=n?10:0,o={};for(let[l,A]of Object.entries(j6t)){let f=l==="ansi16"?"ansi":l;l===t?o[f]=e(r,a):typeof A=="object"&&(o[f]=e(A[t],a))}return o};function Jno(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[a,o]of Object.entries(n))t[a]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[a]=t[a],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",xSe(t.color,"ansi",()=>GSe(bBn,"ansi16",llt,!1)),xSe(t.color,"ansi256",()=>GSe(EBn,"ansi256",llt,!1)),xSe(t.color,"ansi16m",()=>GSe(SBn,"rgb",vBn,!1)),xSe(t.bgColor,"ansi",()=>GSe(bBn,"ansi16",llt,!0)),xSe(t.bgColor,"ansi256",()=>GSe(EBn,"ansi256",llt,!0)),xSe(t.bgColor,"ansi16m",()=>GSe(SBn,"rgb",vBn,!0)),t}Object.defineProperty(BBn,"exports",{enumerable:!0,get:Jno})});var z6t=H((mMl,wBn)=>{"use strict";wBn.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n{"use strict";var Uno=wt("os"),TBn=wt("tty"),j5=z6t(),{env:JN}=process,roe;j5("no-color")||j5("no-colors")||j5("color=false")||j5("color=never")?roe=0:(j5("color")||j5("colors")||j5("color=true")||j5("color=always"))&&(roe=1);"FORCE_COLOR"in JN&&(JN.FORCE_COLOR==="true"?roe=1:JN.FORCE_COLOR==="false"?roe=0:roe=JN.FORCE_COLOR.length===0?1:Math.min(parseInt(JN.FORCE_COLOR,10),3));function q6t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function $6t(e,t){if(roe===0)return 0;if(j5("color=16m")||j5("color=full")||j5("color=truecolor"))return 3;if(j5("color=256"))return 2;if(e&&!t&&roe===void 0)return 0;let r=roe||0;if(JN.TERM==="dumb")return r;if(process.platform==="win32"){let n=Uno.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in JN)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in JN)||JN.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in JN)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(JN.TEAMCITY_VERSION)?1:0;if(JN.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in JN){let n=parseInt((JN.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(JN.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(JN.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(JN.TERM)||"COLORTERM"in JN?1:r}function Kno(e){let t=$6t(e,e&&e.isTTY);return q6t(t)}RBn.exports={supportsColor:Kno,stdout:q6t($6t(!0,TBn.isatty(1))),stderr:q6t($6t(!0,TBn.isatty(2)))}});var DBn=H((_Ml,NBn)=>{"use strict";var jno=(e,t,r)=>{let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.substr(o,n-o)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.substr(o),l},zno=(e,t,r,n)=>{let a=0,o="";do{let l=e[n-1]==="\r";o+=e.substr(a,(l?n-1:n)-a)+t+(l?`\r +`,"\r"],!1,!1),k=0,et=0,ct=[{line:1,column:1}],Me=0,je=[],St=0,At;if("startRule"in t){if(!(t.startRule in n))throw new Error(`Can't start parsing from rule "`+t.startRule+'".');a=n[t.startRule]}function Yt(){return e.substring(et,k)}function Tr(){return cr(et,k)}function Nr(Hi,po){throw po=po!==void 0?po:cr(et,k),_n([Xt(Hi)],e.substring(et,k),po)}function er(Hi,po){throw po=po!==void 0?po:cr(et,k),qr(Hi,po)}function vt(Hi,po){return{type:"literal",text:Hi,ignoreCase:po}}function xt(Hi,po,Vr){return{type:"class",parts:Hi,inverted:po,ignoreCase:Vr}}function Zr(){return{type:"any"}}function qt(){return{type:"end"}}function Xt(Hi){return{type:"other",description:Hi}}function lr(Hi){var po=ct[Hi],Vr;if(po)return po;for(Vr=Hi-1;!ct[Vr];)Vr--;for(po=ct[Vr],po={line:po.line,column:po.column};VrMe&&(Me=k,je=[]),je.push(Hi))}function qr(Hi,po){return new xfe(Hi,null,null,po)}function _n(Hi,po,Vr){return new xfe(xfe.buildMessage(Hi,po),Hi,po,Vr)}function ke(){var Hi,po,Vr,xi,io,ga,Ya,Gc;if(Hi=k,po=jt(),po!==r){for(Vr=[],xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);xi!==r;)Vr.push(xi),xi=k,io=Nn(),io!==r?(e.charCodeAt(k)===124?(ga=o,k++):(ga=r,St===0&&Ar(l)),ga===r&&(e.charCodeAt(k)===38?(ga=A,k++):(ga=r,St===0&&Ar(f)),ga===r&&(e.charCodeAt(k)===94?(ga=I,k++):(ga=r,St===0&&Ar(C)))),ga!==r?(Ya=Nn(),Ya!==r?(Gc=jt(),Gc!==r?(io=[io,ga,Ya,Gc],xi=io):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r)):(k=xi,xi=r);Vr!==r?(et=Hi,po=b(po,Vr),Hi=po):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function jt(){var Hi,po,Vr,xi,io,ga;return Hi=k,e.charCodeAt(k)===33?(po=E,k++):(po=r,St===0&&Ar(N)),po!==r?(Vr=jt(),Vr!==r?(et=Hi,po=B(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=k,e.charCodeAt(k)===40?(po=F,k++):(po=r,St===0&&Ar(Q)),po!==r?(Vr=Nn(),Vr!==r?(xi=ke(),xi!==r?(io=Nn(),io!==r?(e.charCodeAt(k)===41?(ga=X,k++):(ga=r,St===0&&Ar(ae)),ga!==r?(et=Hi,po=ne(xi),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r)):(k=Hi,Hi=r),Hi===r&&(Hi=Fn())),Hi}function Fn(){var Hi,po,Vr,xi,io;if(Hi=k,po=Nn(),po!==r){if(Vr=k,xi=[],ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe)),io!==r)for(;io!==r;)xi.push(io),ce.test(e.charAt(k))?(io=e.charAt(k),k++):(io=r,St===0&&Ar(fe));else xi=r;xi!==r?Vr=e.substring(Vr,k):Vr=xi,Vr!==r?(et=k,xi=ue(Vr),xi?xi=void 0:xi=r,xi!==r?(et=Hi,po=de(Vr),Hi=po):(k=Hi,Hi=r)):(k=Hi,Hi=r)}else k=Hi,Hi=r;return Hi}function Nn(){var Hi,po;for(St++,Hi=[],Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));po!==r;)Hi.push(po),Se.test(e.charAt(k))?(po=e.charAt(k),k++):(po=r,St===0&&Ar(De));return St--,Hi===r&&(po=r,St===0&&Ar(be)),Hi}if(At=a(),At!==r&&k===e.length)return At;throw At!==r&&k{var{parse:Lno}=ABn();alt.makeParser=(e=/[a-z]+/)=>(t,r)=>Lno(t,{queryPattern:e,checkFn:r});alt.parse=alt.makeParser()});var fBn=H((pMl,pBn)=>{"use strict";pBn.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var U6t=H((fMl,hBn)=>{var A3e=fBn(),IBn={};for(let e of Object.keys(A3e))IBn[A3e[e]]=e;var dd={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};hBn.exports=dd;for(let e of Object.keys(dd)){if(!("channels"in dd[e]))throw new Error("missing channels property: "+e);if(!("labels"in dd[e]))throw new Error("missing channel labels property: "+e);if(dd[e].labels.length!==dd[e].channels)throw new Error("channel and label counts mismatch: "+e);let{channels:t,labels:r}=dd[e];delete dd[e].channels,delete dd[e].labels,Object.defineProperty(dd[e],"channels",{value:t}),Object.defineProperty(dd[e],"labels",{value:r})}dd.rgb.hsl=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f;o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360);let I=(a+o)/2;return o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};dd.rgb.hsv=function(e){let t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?(a=0,o=0):(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};dd.rgb.hwb=function(e){let t=e[0],r=e[1],n=e[2],a=dd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};dd.rgb.cmyk=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(1-t,1-r,1-n),o=(1-t-a)/(1-a)||0,l=(1-r-a)/(1-a)||0,A=(1-n-a)/(1-a)||0;return[o*100,l*100,A*100,a*100]};function Vno(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}dd.rgb.keyword=function(e){let t=IBn[e];if(t)return t;let r=1/0,n;for(let a of Object.keys(A3e)){let o=A3e[a],l=Vno(e,o);l.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;let a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};dd.rgb.lab=function(e){let t=dd.rgb.xyz(e),r=t[0],n=t[1],a=t[2];r/=95.047,n/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let o=116*n-16,l=500*(r-n),A=200*(n-a);return[o,l,A]};dd.hsl.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l;if(r===0)return l=n*255,[l,l,l];n<.5?a=n*(1+r):a=n+r-n*r;let A=2*n-a,f=[0,0,0];for(let I=0;I<3;I++)o=t+1/3*-(I-1),o<0&&o++,o>1&&o--,6*o<1?l=A+(a-A)*6*o:2*o<1?l=a:3*o<2?l=A+(a-A)*(2/3-o)*6:l=A,f[I]=l*255;return f};dd.hsl.hsv=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o;let l=(n+r)/2,A=n===0?2*a/(o+a):2*r/(n+r);return[t,A*100,l*100]};dd.hsv.rgb=function(e){let t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};dd.hsv.hsl=function(e){let t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l;l=(2-r)*n;let A=(2-r)*a;return o=r*a,o/=A<=1?A:2-A,o=o||0,l/=2,[t,o*100,l*100]};dd.hwb.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o;a>1&&(r/=a,n/=a);let l=Math.floor(6*t),A=1-n;o=6*t-l,l&1&&(o=1-o);let f=r+o*(A-r),I,C,b;switch(l){default:case 6:case 0:I=A,C=f,b=r;break;case 1:I=f,C=A,b=r;break;case 2:I=r,C=A,b=f;break;case 3:I=r,C=f,b=A;break;case 4:I=f,C=r,b=A;break;case 5:I=A,C=r,b=f;break}return[I*255,C*255,b*255]};dd.cmyk.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a);return[o*255,l*255,A*255]};dd.xyz.rgb=function(e){let t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,l=l>.0031308?1.055*l**(1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};dd.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let a=116*r-16,o=500*(t-r),l=200*(r-n);return[a,o,l]};dd.lab.xyz=function(e){let t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;let A=o**3,f=a**3,I=l**3;return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};dd.lab.lch=function(e){let t=e[0],r=e[1],n=e[2],a;a=Math.atan2(n,r)*360/2/Math.PI,a<0&&(a+=360);let l=Math.sqrt(r*r+n*n);return[t,l,a]};dd.lch.lab=function(e){let t=e[0],r=e[1],a=e[2]/360*2*Math.PI,o=r*Math.cos(a),l=r*Math.sin(a);return[t,o,l]};dd.rgb.ansi16=function(e,t=null){let[r,n,a]=e,o=t===null?dd.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),o===0)return 30;let l=30+(Math.round(a/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return o===2&&(l+=60),l};dd.hsv.ansi16=function(e){return dd.rgb.ansi16(dd.hsv.rgb(e),e[2])};dd.rgb.ansi256=function(e){let t=e[0],r=e[1],n=e[2];return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)};dd.ansi16.rgb=function(e){let t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];let r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};dd.ansi256.rgb=function(e){if(e>=232){let o=(e-232)*10+8;return[o,o,o]}e-=16;let t,r=Math.floor(e/36)/5*255,n=Math.floor((t=e%36)/6)/5*255,a=t%6/5*255;return[r,n,a]};dd.rgb.hex=function(e){let r=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};dd.hex.rgb=function(e){let t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];t[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};dd.rgb.hcg=function(e){let t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l,f/=6,f%=1,[f*360,l*100,A*100]};dd.hsl.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r),a=0;return n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};dd.hsv.hcg=function(e){let t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};dd.hcg.rgb=function(e){let t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];let a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};dd.hcg.hsv=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};dd.hcg.hsl=function(e){let t=e[1]/100,n=e[2]/100*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};dd.hcg.hwb=function(e){let t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};dd.hwb.hcg=function(e){let t=e[1]/100,n=1-e[2]/100,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};dd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};dd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};dd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};dd.gray.hsl=function(e){return[0,0,e[0]]};dd.gray.hsv=dd.gray.hsl;dd.gray.hwb=function(e){return[0,100,e[0]]};dd.gray.cmyk=function(e){return[0,0,0,e[0]]};dd.gray.lab=function(e){return[e[0],0,0]};dd.gray.hex=function(e){let t=Math.round(e[0]/100*255)&255,n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n};dd.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}});var CBn=H((IMl,mBn)=>{var clt=U6t();function Pno(){let e={},t=Object.keys(clt);for(let r=t.length,n=0;n{var K6t=U6t(),Hno=CBn(),kSe={},Yno=Object.keys(K6t);function Qno(e){let t=function(...r){let n=r[0];return n==null?n:(n.length>1&&(r=n),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function Xno(e){let t=function(...r){let n=r[0];if(n==null)return n;n.length>1&&(r=n);let a=e(r);if(typeof a=="object")for(let o=a.length,l=0;l{kSe[e]={},Object.defineProperty(kSe[e],"channels",{value:K6t[e].channels}),Object.defineProperty(kSe[e],"labels",{value:K6t[e].labels});let t=Hno(e);Object.keys(t).forEach(n=>{let a=t[n];kSe[e][n]=Xno(a),kSe[e][n].raw=Qno(a)})});_Bn.exports=kSe});var ult=H((mMl,BBn)=>{"use strict";var bBn=(e,t)=>(...r)=>`\x1B[${e(...r)+t}m`,EBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};5;${n}m`},SBn=(e,t)=>(...r)=>{let n=e(...r);return`\x1B[${38+t};2;${n[0]};${n[1]};${n[2]}m`},llt=e=>e,vBn=(e,t,r)=>[e,t,r],xSe=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{let n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})},j6t,GSe=(e,t,r,n)=>{j6t===void 0&&(j6t=yBn());let a=n?10:0,o={};for(let[l,A]of Object.entries(j6t)){let f=l==="ansi16"?"ansi":l;l===t?o[f]=e(r,a):typeof A=="object"&&(o[f]=e(A[t],a))}return o};function Jno(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(let[r,n]of Object.entries(t)){for(let[a,o]of Object.entries(n))t[a]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},n[a]=t[a],e.set(o[0],o[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",xSe(t.color,"ansi",()=>GSe(bBn,"ansi16",llt,!1)),xSe(t.color,"ansi256",()=>GSe(EBn,"ansi256",llt,!1)),xSe(t.color,"ansi16m",()=>GSe(SBn,"rgb",vBn,!1)),xSe(t.bgColor,"ansi",()=>GSe(bBn,"ansi16",llt,!0)),xSe(t.bgColor,"ansi256",()=>GSe(EBn,"ansi256",llt,!0)),xSe(t.bgColor,"ansi16m",()=>GSe(SBn,"rgb",vBn,!0)),t}Object.defineProperty(BBn,"exports",{enumerable:!0,get:Jno})});var z6t=H((CMl,wBn)=>{"use strict";wBn.exports=(e,t=process.argv)=>{let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n{"use strict";var Uno=wt("os"),TBn=wt("tty"),j5=z6t(),{env:JN}=process,roe;j5("no-color")||j5("no-colors")||j5("color=false")||j5("color=never")?roe=0:(j5("color")||j5("colors")||j5("color=true")||j5("color=always"))&&(roe=1);"FORCE_COLOR"in JN&&(JN.FORCE_COLOR==="true"?roe=1:JN.FORCE_COLOR==="false"?roe=0:roe=JN.FORCE_COLOR.length===0?1:Math.min(parseInt(JN.FORCE_COLOR,10),3));function q6t(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function $6t(e,t){if(roe===0)return 0;if(j5("color=16m")||j5("color=full")||j5("color=truecolor"))return 3;if(j5("color=256"))return 2;if(e&&!t&&roe===void 0)return 0;let r=roe||0;if(JN.TERM==="dumb")return r;if(process.platform==="win32"){let n=Uno.release().split(".");return Number(n[0])>=10&&Number(n[2])>=10586?Number(n[2])>=14931?3:2:1}if("CI"in JN)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(n=>n in JN)||JN.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in JN)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(JN.TEAMCITY_VERSION)?1:0;if(JN.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in JN){let n=parseInt((JN.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(JN.TERM_PROGRAM){case"iTerm.app":return n>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(JN.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(JN.TERM)||"COLORTERM"in JN?1:r}function Kno(e){let t=$6t(e,e&&e.isTTY);return q6t(t)}RBn.exports={supportsColor:Kno,stdout:q6t($6t(!0,TBn.isatty(1))),stderr:q6t($6t(!0,TBn.isatty(2)))}});var DBn=H((yMl,NBn)=>{"use strict";var jno=(e,t,r)=>{let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.substr(o,n-o)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.substr(o),l},zno=(e,t,r,n)=>{let a=0,o="";do{let l=e[n-1]==="\r";o+=e.substr(a,(l?n-1:n)-a)+t+(l?`\r `:` `)+r,a=n+1,n=e.indexOf(` -`,a)}while(n!==-1);return o+=e.substr(a),o};NBn.exports={stringReplaceAll:jno,stringEncaseCRLFWithFirstIndex:zno}});var ZBn=H((yMl,FBn)=>{"use strict";var qno=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,kBn=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,$no=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,eio=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,tio=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GBn(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):tio.get(e)||e}function rio(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n){let l=Number(o);if(!Number.isNaN(l))r.push(l);else if(a=o.match($no))r.push(a[2].replace(eio,(A,f,I)=>f?GBn(f):I));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function nio(e){kBn.lastIndex=0;let t=[],r;for(;(r=kBn.exec(e))!==null;){let n=r[1];if(r[2]){let a=rio(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function xBn(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let[a,o]of Object.entries(r))if(Array.isArray(o)){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);n=o.length>0?n[a](...o):n[a]}return n}FBn.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(qno,(o,l,A,f,I,C)=>{if(l)a.push(GBn(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:xBn(e,r)(b)),r.push({inverse:A,styles:nio(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(xBn(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var VK=H((bMl,MBn)=>{"use strict";var d3e=ult(),{stdout:r7t,stderr:n7t}=e7t(),{stringReplaceAll:iio,stringEncaseCRLFWithFirstIndex:sio}=DBn(),{isArray:glt}=Array,VBn=["ansi","ansi","ansi256","ansi16m"],FSe=Object.create(null),oio=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=r7t?r7t.level:0;e.level=t.level===void 0?r:t.level},i7t=class{constructor(t){return PBn(t)}},PBn=e=>{let t={};return oio(t,e),t.template=(...r)=>OBn(t.template,...r),Object.setPrototypeOf(t,Alt.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=i7t,t.template};function Alt(e){return PBn(e)}for(let[e,t]of Object.entries(d3e))FSe[e]={get(){let r=dlt(this,s7t(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};FSe.visible={get(){let e=dlt(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var WBn=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of WBn)FSe[e]={get(){let{level:t}=this;return function(...r){let n=s7t(d3e.color[VBn[t]][e](...r),d3e.color.close,this._styler);return dlt(this,n,this._isEmpty)}}};for(let e of WBn){let t="bg"+e[0].toUpperCase()+e.slice(1);FSe[t]={get(){let{level:r}=this;return function(...n){let a=s7t(d3e.bgColor[VBn[r]][e](...n),d3e.bgColor.close,this._styler);return dlt(this,a,this._isEmpty)}}}}var aio=Object.defineProperties(()=>{},{...FSe,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),s7t=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},dlt=(e,t,r)=>{let n=(...a)=>glt(a[0])&&glt(a[0].raw)?LBn(n,OBn(n,...a)):LBn(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,aio),n._generator=e,n._styler=t,n._isEmpty=r,n},LBn=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=iio(t,r.close,r.open),r=r.parent;let o=t.indexOf(` -`);return o!==-1&&(t=sio(t,a,n,o)),n+t+a},t7t,OBn=(e,...t)=>{let[r]=t;if(!glt(r)||!glt(r.raw))return t.join(" ");let n=t.slice(1),a=[r.raw[0]];for(let o=1;o{"use strict";z5.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;z5.find=(e,t)=>e.nodes.find(r=>r.type===t);z5.exceedsLimit=(e,t,r=1,n)=>n===!1||!z5.isInteger(e)||!z5.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;z5.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};z5.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);z5.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;z5.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;z5.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);z5.flatten=(...e)=>{let t=[],r=n=>{for(let a=0;a{"use strict";var HBn=flt();YBn.exports=(e,t={})=>{let r=(n,a={})=>{let o=t.escapeInvalid&&HBn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A="";if(n.value)return(o||l)&&HBn.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let f of n.nodes)A+=r(f);return A};return r(e)}});var XBn=H((vMl,QBn)=>{"use strict";QBn.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var twn=H((BMl,ewn)=>{"use strict";var JBn=XBn(),Gfe=(e,t,r)=>{if(JBn(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(JBn(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let a=String(n.relaxZeros),o=String(n.shorthand),l=String(n.capture),A=String(n.wrap),f=e+":"+t+"="+a+o+l+A;if(Gfe.cache.hasOwnProperty(f))return Gfe.cache[f].result;let I=Math.min(e,t),C=Math.max(e,t);if(Math.abs(I-C)===1){let F=e+"|"+t;return n.capture?`(${F})`:n.wrap===!1?F:`(?:${F})`}let b=$Bn(e)||$Bn(t),E={min:e,max:t,a:I,b:C},N=[],B=[];if(b&&(E.isPadded=b,E.maxLen=String(E.max).length),I<0){let F=C<0?Math.abs(C):1;B=UBn(F,Math.abs(I),E,n),I=E.a=0}return C>=0&&(N=UBn(I,C,E,n)),E.negatives=B,E.positives=N,E.result=cio(B,N,n),n.capture===!0?E.result=`(${E.result})`:n.wrap!==!1&&N.length+B.length>1&&(E.result=`(?:${E.result})`),Gfe.cache[f]=E,E.result};function cio(e,t,r){let n=o7t(e,t,"-",!1,r)||[],a=o7t(t,e,"",!1,r)||[],o=o7t(e,t,"-?",!0,r)||[];return n.concat(o).concat(a).join("|")}function lio(e,t){let r=1,n=1,a=jBn(e,r),o=new Set([t]);for(;e<=a&&a<=t;)o.add(a),r+=1,a=jBn(e,r);for(a=zBn(t+1,n)-1;e1&&A.count.pop(),A.count.push(C.count[0]),A.string=A.pattern+qBn(A.count),l=I+1;continue}r.isPadded&&(b=pio(I,r,n)),C.string=b+C.pattern+qBn(C.count),o.push(C),l=I+1,A=C}return o}function o7t(e,t,r,n,a){let o=[];for(let l of e){let{string:A}=l;!n&&!KBn(t,"string",A)&&o.push(r+A),n&&KBn(t,"string",A)&&o.push(r+A)}return o}function gio(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function KBn(e,t,r){return e.some(n=>n[t]===r)}function jBn(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function zBn(e,t){return e-e%Math.pow(10,t)}function qBn(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function dio(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function $Bn(e){return/^-?(0+)\d/.test(e)}function pio(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),a=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${n}}`:`0{${n}}`}}Gfe.cache={};Gfe.clearCache=()=>Gfe.cache={};ewn.exports=Gfe});var l7t=H((wMl,cwn)=>{"use strict";var fio=wt("util"),nwn=twn(),rwn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Iio=e=>t=>e===!0?Number(t):String(t),a7t=e=>typeof e=="number"||typeof e=="string"&&e!=="",p3e=e=>Number.isInteger(+e),c7t=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},hio=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,mio=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},mlt=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((A,f)=>Af?1:0),e.positives.sort((A,f)=>Af?1:0);let n=t.capture?"":"?:",a="",o="",l;return e.positives.length&&(a=e.positives.map(A=>mlt(String(A),r)).join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.map(A=>mlt(String(A),r)).join("|")})`),a&&o?l=`${a}|${o}`:l=a||o,t.wrap?`(${n}${l})`:l},iwn=(e,t,r,n)=>{if(r)return nwn(e,t,{wrap:!1,...n});let a=String.fromCharCode(e);if(e===t)return a;let o=String.fromCharCode(t);return`[${a}-${o}]`},swn=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,a=r.capture?"":"?:";return n?`(${a}${e.join("|")})`:e.join("|")}return nwn(e,t,r)},own=(...e)=>new RangeError("Invalid range arguments: "+fio.inspect(...e)),awn=(e,t,r)=>{if(r.strictRanges===!0)throw own([e,t]);return[]},_io=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},yio=(e,t,r=1,n={})=>{let a=Number(e),o=Number(t);if(!Number.isInteger(a)||!Number.isInteger(o)){if(n.strictRanges===!0)throw own([e,t]);return[]}a===0&&(a=0),o===0&&(o=0);let l=a>o,A=String(e),f=String(t),I=String(r);r=Math.max(Math.abs(r),1);let C=c7t(A)||c7t(f)||c7t(I),b=C?Math.max(A.length,f.length,I.length):0,E=C===!1&&hio(e,t,n)===!1,N=n.transform||Iio(E);if(n.toRegex&&r===1)return iwn(mlt(e,b),mlt(t,b),!0,n);let B={negatives:[],positives:[]},F=ae=>B[ae<0?"negatives":"positives"].push(Math.abs(ae)),Q=[],X=0;for(;l?a>=o:a<=o;)n.toRegex===!0&&r>1?F(a):Q.push(mio(N(a,X),b,E)),a=l?a-r:a+r,X++;return n.toRegex===!0?r>1?Cio(B,n,b):swn(Q,null,{wrap:!1,...n}):Q},bio=(e,t,r=1,n={})=>{if(!p3e(e)&&e.length>1||!p3e(t)&&t.length>1)return awn(e,t,n);let a=n.transform||(E=>String.fromCharCode(E)),o=`${e}`.charCodeAt(0),l=`${t}`.charCodeAt(0),A=o>l,f=Math.min(o,l),I=Math.max(o,l);if(n.toRegex&&r===1)return iwn(f,I,!1,n);let C=[],b=0;for(;A?o>=l:o<=l;)C.push(a(o,b)),o=A?o-r:o+r,b++;return n.toRegex===!0?swn(C,null,{wrap:!1,options:n}):C},hlt=(e,t,r,n={})=>{if(t==null&&a7t(e))return[e];if(!a7t(e)||!a7t(t))return awn(e,t,n);if(typeof r=="function")return hlt(e,t,1,{transform:r});if(rwn(r))return hlt(e,t,0,r);let a={...n};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,p3e(r)?p3e(e)&&p3e(t)?yio(e,t,r,a):bio(e,t,Math.max(Math.abs(r),1),a):r!=null&&!rwn(r)?_io(r,a):hlt(e,t,1,r)};cwn.exports=hlt});var gwn=H((TMl,uwn)=>{"use strict";var Eio=l7t(),lwn=flt(),Sio=(e,t={})=>{let r=(n,a={})=>{let o=lwn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A=o===!0||l===!0,f=t.escapeInvalid===!0?"\\":"",I="";if(n.isOpen===!0)return f+n.value;if(n.isClose===!0)return console.log("node.isClose",f,n.value),f+n.value;if(n.type==="open")return A?f+n.value:"(";if(n.type==="close")return A?f+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":A?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let C=lwn.reduce(n.nodes),b=Eio(...C,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(b.length!==0)return C.length>1&&b.length>1?`(${b})`:b}if(n.nodes)for(let C of n.nodes)I+=r(C,n);return I};return r(e)};uwn.exports=Sio});var pwn=H((RMl,dwn)=>{"use strict";var vio=l7t(),Awn=Ilt(),ZSe=flt(),Ffe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?ZSe.flatten(t).map(a=>`{${a}}`):t;for(let a of e)if(Array.isArray(a))for(let o of a)n.push(Ffe(o,t,r));else for(let o of t)r===!0&&typeof o=="string"&&(o=`{${o}}`),n.push(Array.isArray(o)?Ffe(a,o,r):a+o);return ZSe.flatten(n)},Bio=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(a,o={})=>{a.queue=[];let l=o,A=o.queue;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,A=l.queue;if(a.invalid||a.dollar){A.push(Ffe(A.pop(),Awn(a,t)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(Ffe(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let b=ZSe.reduce(a.nodes);if(ZSe.exceedsLimit(...b,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let E=vio(...b,t);E.length===0&&(E=Awn(a,t)),A.push(Ffe(A.pop(),E)),a.nodes=[];return}let f=ZSe.encloseBrace(a),I=a.queue,C=a;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,I=C.queue;for(let b=0;b{"use strict";fwn.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var ywn=H((DMl,_wn)=>{"use strict";var wio=Ilt(),{MAX_LENGTH:hwn,CHAR_BACKSLASH:u7t,CHAR_BACKTICK:Tio,CHAR_COMMA:Rio,CHAR_DOT:Nio,CHAR_LEFT_PARENTHESES:Dio,CHAR_RIGHT_PARENTHESES:kio,CHAR_LEFT_CURLY_BRACE:xio,CHAR_RIGHT_CURLY_BRACE:Gio,CHAR_LEFT_SQUARE_BRACKET:mwn,CHAR_RIGHT_SQUARE_BRACKET:Cwn,CHAR_DOUBLE_QUOTE:Fio,CHAR_SINGLE_QUOTE:Zio,CHAR_NO_BREAK_SPACE:Lio,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Vio}=Iwn(),Pio=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(hwn,r.maxLength):hwn;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let a={type:"root",input:e,nodes:[]},o=[a],l=a,A=a,f=0,I=e.length,C=0,b=0,E,N=()=>e[C++],B=F=>{if(F.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&F.type==="text"){A.value+=F.value;return}return l.nodes.push(F),F.parent=l,F.prev=A,A=F,F};for(B({type:"bos"});C0){if(l.ranges>0){l.ranges=0;let F=l.nodes.shift();l.nodes=[F,{type:"text",value:wio(l)}]}B({type:"comma",value:E}),l.commas++;continue}if(E===Nio&&b>0&&l.commas===0){let F=l.nodes;if(b===0||F.length===0){B({type:"text",value:E});continue}if(A.type==="dot"){if(l.range=[],A.value+=E,A.type="range",l.nodes.length!==3&&l.nodes.length!==5){l.invalid=!0,l.ranges=0,A.type="text";continue}l.ranges++,l.args=[];continue}if(A.type==="range"){F.pop();let Q=F[F.length-1];Q.value+=A.value+E,A=Q,l.ranges--;continue}B({type:"dot",value:E});continue}B({type:"text",value:E})}do if(l=o.pop(),l.type!=="root"){l.nodes.forEach(X=>{X.nodes||(X.type==="open"&&(X.isOpen=!0),X.type==="close"&&(X.isClose=!0),X.nodes||(X.type="text"),X.invalid=!0)});let F=o[o.length-1],Q=F.nodes.indexOf(l);F.nodes.splice(Q,1,...l.nodes)}while(o.length>0);return B({type:"eos"}),a};_wn.exports=Pio});var Swn=H((kMl,Ewn)=>{"use strict";var bwn=Ilt(),Wio=gwn(),Oio=pwn(),Mio=ywn(),NW=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let a=NW.create(n,t);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(NW.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};NW.parse=(e,t={})=>Mio(e,t);NW.stringify=(e,t={})=>bwn(typeof e=="string"?NW.parse(e,t):e,t);NW.compile=(e,t={})=>(typeof e=="string"&&(e=NW.parse(e,t)),Wio(e,t));NW.expand=(e,t={})=>{typeof e=="string"&&(e=NW.parse(e,t));let r=Oio(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};NW.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?NW.compile(e,t):NW.expand(e,t);Ewn.exports=NW});var f3e=H((xMl,Rwn)=>{"use strict";var Hio=wt("path"),PK="\\\\/",vwn=`[^${PK}]`,Uq="\\.",Yio="\\+",Qio="\\?",Clt="\\/",Xio="(?=.)",Bwn="[^/]",g7t=`(?:${Clt}|$)`,wwn=`(?:^|${Clt})`,A7t=`${Uq}{1,2}${g7t}`,Jio=`(?!${Uq})`,Uio=`(?!${wwn}${A7t})`,Kio=`(?!${Uq}{0,1}${g7t})`,jio=`(?!${A7t})`,zio=`[^.${Clt}]`,qio=`${Bwn}*?`,Twn={DOT_LITERAL:Uq,PLUS_LITERAL:Yio,QMARK_LITERAL:Qio,SLASH_LITERAL:Clt,ONE_CHAR:Xio,QMARK:Bwn,END_ANCHOR:g7t,DOTS_SLASH:A7t,NO_DOT:Jio,NO_DOTS:Uio,NO_DOT_SLASH:Kio,NO_DOTS_SLASH:jio,QMARK_NO_DOT:zio,STAR:qio,START_ANCHOR:wwn},$io={...Twn,SLASH_LITERAL:`[${PK}]`,QMARK:vwn,STAR:`${vwn}*?`,DOTS_SLASH:`${Uq}{1,2}(?:[${PK}]|$)`,NO_DOT:`(?!${Uq})`,NO_DOTS:`(?!(?:^|[${PK}])${Uq}{1,2}(?:[${PK}]|$))`,NO_DOT_SLASH:`(?!${Uq}{0,1}(?:[${PK}]|$))`,NO_DOTS_SLASH:`(?!${Uq}{1,2}(?:[${PK}]|$))`,QMARK_NO_DOT:`[^.${PK}]`,START_ANCHOR:`(?:^|[${PK}])`,END_ANCHOR:`(?:[${PK}]|$)`},eso={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Rwn.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:eso,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Hio.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?$io:Twn}}});var I3e=H(Y9=>{"use strict";var tso=wt("path"),rso=process.platform==="win32",{REGEX_BACKSLASH:nso,REGEX_REMOVE_BACKSLASH:iso,REGEX_SPECIAL_CHARS:sso,REGEX_SPECIAL_CHARS_GLOBAL:oso}=f3e();Y9.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Y9.hasRegexChars=e=>sso.test(e);Y9.isRegexChar=e=>e.length===1&&Y9.hasRegexChars(e);Y9.escapeRegex=e=>e.replace(oso,"\\$1");Y9.toPosixSlashes=e=>e.replace(nso,"/");Y9.removeBackslashes=e=>e.replace(iso,t=>t==="\\"?"":t);Y9.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Y9.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:rso===!0||tso.sep==="\\";Y9.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Y9.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Y9.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Y9.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o}});var Lwn=H((FMl,Zwn)=>{"use strict";var Nwn=I3e(),{CHAR_ASTERISK:d7t,CHAR_AT:aso,CHAR_BACKWARD_SLASH:h3e,CHAR_COMMA:cso,CHAR_DOT:p7t,CHAR_EXCLAMATION_MARK:f7t,CHAR_FORWARD_SLASH:Fwn,CHAR_LEFT_CURLY_BRACE:I7t,CHAR_LEFT_PARENTHESES:h7t,CHAR_LEFT_SQUARE_BRACKET:lso,CHAR_PLUS:uso,CHAR_QUESTION_MARK:Dwn,CHAR_RIGHT_CURLY_BRACE:gso,CHAR_RIGHT_PARENTHESES:kwn,CHAR_RIGHT_SQUARE_BRACKET:Aso}=f3e(),xwn=e=>e===Fwn||e===h3e,Gwn=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},dso=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&xwn(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Nwn.removeBackslashes(je)),ct&&ae===!0&&(ct=Nwn.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,xwn(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var _lt=f3e(),DW=I3e(),{MAX_LENGTH:ylt,POSIX_REGEX_SOURCE:pso,REGEX_NON_SPECIAL_CHARS:fso,REGEX_SPECIAL_CHARS_BACKREF:Iso,REPLACEMENTS:Vwn}=_lt,hso=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>DW.escapeRegex(a)).join("..")}return r},LSe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,m7t=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Vwn[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=DW.isWindows(t),I=_lt.globChars(f),C=_lt.extglobChars(I),{DOT_LITERAL:b,PLUS_LITERAL:E,SLASH_LITERAL:N,ONE_CHAR:B,DOTS_SLASH:F,NO_DOT:Q,NO_DOT_SLASH:X,NO_DOTS_SLASH:ae,QMARK:ne,QMARK_NO_DOT:ce,STAR:fe,START_ANCHOR:ue}=I,de=Ar=>`(${A}(?:(?!${ue}${Ar.dot?F:b}).)*?)`,be=r.dot?"":Q,Se=r.dot?ne:ce,De=r.bash===!0?de(r):fe;r.capture&&(De=`(${De})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let k={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=DW.removePrefix(e,k),a=e.length;let et=[],ct=[],Me=[],je=o,St,At=()=>k.index===a-1,Yt=k.peek=(Ar=1)=>e[k.index+Ar],Tr=k.advance=()=>e[++k.index]||"",Nr=()=>e.slice(k.index+1),er=(Ar="",qr=0)=>{k.consumed+=Ar,k.index+=qr},vt=Ar=>{k.output+=Ar.output!=null?Ar.output:Ar.value,er(Ar.value)},xt=()=>{let Ar=1;for(;Yt()==="!"&&(Yt(2)!=="("||Yt(3)==="?");)Tr(),k.start++,Ar++;return Ar%2===0?!1:(k.negated=!0,k.start++,!0)},Zr=Ar=>{k[Ar]++,Me.push(Ar)},qt=Ar=>{k[Ar]--,Me.pop()},Xt=Ar=>{if(je.type==="globstar"){let qr=k.braces>0&&(Ar.type==="comma"||Ar.type==="brace"),_n=Ar.extglob===!0||et.length&&(Ar.type==="pipe"||Ar.type==="paren");Ar.type!=="slash"&&Ar.type!=="paren"&&!qr&&!_n&&(k.output=k.output.slice(0,-je.output.length),je.type="star",je.value="*",je.output=De,k.output+=je.output)}if(et.length&&Ar.type!=="paren"&&(et[et.length-1].inner+=Ar.value),(Ar.value||Ar.output)&&vt(Ar),je&&je.type==="text"&&Ar.type==="text"){je.value+=Ar.value,je.output=(je.output||"")+Ar.value;return}Ar.prev=je,l.push(Ar),je=Ar},lr=(Ar,qr)=>{let _n={...C[qr],conditions:1,inner:""};_n.prev=je,_n.parens=k.parens,_n.output=k.output;let ke=(r.capture?"(":"")+_n.open;Zr("parens"),Xt({type:Ar,value:qr,output:k.output?"":B}),Xt({type:"paren",extglob:!0,value:Tr(),output:ke}),et.push(_n)},cr=Ar=>{let qr=Ar.close+(r.capture?")":""),_n;if(Ar.type==="negate"){let ke=De;if(Ar.inner&&Ar.inner.length>1&&Ar.inner.includes("/")&&(ke=de(r)),(ke!==De||At()||/^\)+$/.test(Nr()))&&(qr=Ar.close=`)$))${ke}`),Ar.inner.includes("*")&&(_n=Nr())&&/^\.[^\\/.]+$/.test(_n)){let jt=m7t(_n,{...t,fastpaths:!1}).output;qr=Ar.close=`)${jt})${ke})`}Ar.prev.type==="bos"&&(k.negatedExtglob=!0)}Xt({type:"paren",extglob:!0,value:St,output:qr}),qt("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let Ar=!1,qr=e.replace(Iso,(_n,ke,jt,Fn,Nn,Hi)=>Fn==="\\"?(Ar=!0,_n):Fn==="?"?ke?ke+Fn+(Nn?ne.repeat(Nn.length):""):Hi===0?Se+(Nn?ne.repeat(Nn.length):""):ne.repeat(jt.length):Fn==="."?b.repeat(jt.length):Fn==="*"?ke?ke+Fn+(Nn?De:""):De:ke?_n:`\\${_n}`);return Ar===!0&&(r.unescape===!0?qr=qr.replace(/\\/g,""):qr=qr.replace(/\\+/g,_n=>_n.length%2===0?"\\\\":_n?"\\":"")),qr===e&&r.contains===!0?(k.output=e,k):(k.output=DW.wrapOutput(qr,k,t),k)}for(;!At();){if(St=Tr(),St==="\0")continue;if(St==="\\"){let _n=Yt();if(_n==="/"&&r.bash!==!0||_n==="."||_n===";")continue;if(!_n){St+="\\",Xt({type:"text",value:St});continue}let ke=/^\\+/.exec(Nr()),jt=0;if(ke&&ke[0].length>2&&(jt=ke[0].length,k.index+=jt,jt%2!==0&&(St+="\\")),r.unescape===!0?St=Tr():St+=Tr(),k.brackets===0){Xt({type:"text",value:St});continue}}if(k.brackets>0&&(St!=="]"||je.value==="["||je.value==="[^")){if(r.posix!==!1&&St===":"){let _n=je.value.slice(1);if(_n.includes("[")&&(je.posix=!0,_n.includes(":"))){let ke=je.value.lastIndexOf("["),jt=je.value.slice(0,ke),Fn=je.value.slice(ke+2),Nn=pso[Fn];if(Nn){je.value=jt+Nn,k.backtrack=!0,Tr(),!o.output&&l.indexOf(je)===1&&(o.output=B);continue}}}(St==="["&&Yt()!==":"||St==="-"&&Yt()==="]")&&(St=`\\${St}`),St==="]"&&(je.value==="["||je.value==="[^")&&(St=`\\${St}`),r.posix===!0&&St==="!"&&je.value==="["&&(St="^"),je.value+=St,vt({value:St});continue}if(k.quotes===1&&St!=='"'){St=DW.escapeRegex(St),je.value+=St,vt({value:St});continue}if(St==='"'){k.quotes=k.quotes===1?0:1,r.keepQuotes===!0&&Xt({type:"text",value:St});continue}if(St==="("){Zr("parens"),Xt({type:"paren",value:St});continue}if(St===")"){if(k.parens===0&&r.strictBrackets===!0)throw new SyntaxError(LSe("opening","("));let _n=et[et.length-1];if(_n&&k.parens===_n.parens+1){cr(et.pop());continue}Xt({type:"paren",value:St,output:k.parens?")":"\\)"}),qt("parens");continue}if(St==="["){if(r.nobracket===!0||!Nr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));St=`\\${St}`}else Zr("brackets");Xt({type:"bracket",value:St});continue}if(St==="]"){if(r.nobracket===!0||je&&je.type==="bracket"&&je.value.length===1){Xt({type:"text",value:St,output:`\\${St}`});continue}if(k.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(LSe("opening","["));Xt({type:"text",value:St,output:`\\${St}`});continue}qt("brackets");let _n=je.value.slice(1);if(je.posix!==!0&&_n[0]==="^"&&!_n.includes("/")&&(St=`/${St}`),je.value+=St,vt({value:St}),r.literalBrackets===!1||DW.hasRegexChars(_n))continue;let ke=DW.escapeRegex(je.value);if(k.output=k.output.slice(0,-je.value.length),r.literalBrackets===!0){k.output+=ke,je.value=ke;continue}je.value=`(${A}${ke}|${je.value})`,k.output+=je.value;continue}if(St==="{"&&r.nobrace!==!0){Zr("braces");let _n={type:"brace",value:St,output:"(",outputIndex:k.output.length,tokensIndex:k.tokens.length};ct.push(_n),Xt(_n);continue}if(St==="}"){let _n=ct[ct.length-1];if(r.nobrace===!0||!_n){Xt({type:"text",value:St,output:St});continue}let ke=")";if(_n.dots===!0){let jt=l.slice(),Fn=[];for(let Nn=jt.length-1;Nn>=0&&(l.pop(),jt[Nn].type!=="brace");Nn--)jt[Nn].type!=="dots"&&Fn.unshift(jt[Nn].value);ke=hso(Fn,r),k.backtrack=!0}if(_n.comma!==!0&&_n.dots!==!0){let jt=k.output.slice(0,_n.outputIndex),Fn=k.tokens.slice(_n.tokensIndex);_n.value=_n.output="\\{",St=ke="\\}",k.output=jt;for(let Nn of Fn)k.output+=Nn.output||Nn.value}Xt({type:"brace",value:St,output:ke}),qt("braces"),ct.pop();continue}if(St==="|"){et.length>0&&et[et.length-1].conditions++,Xt({type:"text",value:St});continue}if(St===","){let _n=St,ke=ct[ct.length-1];ke&&Me[Me.length-1]==="braces"&&(ke.comma=!0,_n="|"),Xt({type:"comma",value:St,output:_n});continue}if(St==="/"){if(je.type==="dot"&&k.index===k.start+1){k.start=k.index+1,k.consumed="",k.output="",l.pop(),je=o;continue}Xt({type:"slash",value:St,output:N});continue}if(St==="."){if(k.braces>0&&je.type==="dot"){je.value==="."&&(je.output=b);let _n=ct[ct.length-1];je.type="dots",je.output+=St,je.value+=St,_n.dots=!0;continue}if(k.braces+k.parens===0&&je.type!=="bos"&&je.type!=="slash"){Xt({type:"text",value:St,output:b});continue}Xt({type:"dot",value:St,output:b});continue}if(St==="?"){if(!(je&&je.value==="(")&&r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("qmark",St);continue}if(je&&je.type==="paren"){let ke=Yt(),jt=St;if(ke==="<"&&!DW.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(je.value==="("&&!/[!=<:]/.test(ke)||ke==="<"&&!/<([!=]|\w+>)/.test(Nr()))&&(jt=`\\${St}`),Xt({type:"text",value:St,output:jt});continue}if(r.dot!==!0&&(je.type==="slash"||je.type==="bos")){Xt({type:"qmark",value:St,output:ce});continue}Xt({type:"qmark",value:St,output:ne});continue}if(St==="!"){if(r.noextglob!==!0&&Yt()==="("&&(Yt(2)!=="?"||!/[!=<:]/.test(Yt(3)))){lr("negate",St);continue}if(r.nonegate!==!0&&k.index===0){xt();continue}}if(St==="+"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("plus",St);continue}if(je&&je.value==="("||r.regex===!1){Xt({type:"plus",value:St,output:E});continue}if(je&&(je.type==="bracket"||je.type==="paren"||je.type==="brace")||k.parens>0){Xt({type:"plus",value:St});continue}Xt({type:"plus",value:E});continue}if(St==="@"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){Xt({type:"at",extglob:!0,value:St,output:""});continue}Xt({type:"text",value:St});continue}if(St!=="*"){(St==="$"||St==="^")&&(St=`\\${St}`);let _n=fso.exec(Nr());_n&&(St+=_n[0],k.index+=_n[0].length),Xt({type:"text",value:St});continue}if(je&&(je.type==="globstar"||je.star===!0)){je.type="star",je.star=!0,je.value+=St,je.output=De,k.backtrack=!0,k.globstar=!0,er(St);continue}let Ar=Nr();if(r.noextglob!==!0&&/^\([^?]/.test(Ar)){lr("star",St);continue}if(je.type==="star"){if(r.noglobstar===!0){er(St);continue}let _n=je.prev,ke=_n.prev,jt=_n.type==="slash"||_n.type==="bos",Fn=ke&&(ke.type==="star"||ke.type==="globstar");if(r.bash===!0&&(!jt||Ar[0]&&Ar[0]!=="/")){Xt({type:"star",value:St,output:""});continue}let Nn=k.braces>0&&(_n.type==="comma"||_n.type==="brace"),Hi=et.length&&(_n.type==="pipe"||_n.type==="paren");if(!jt&&_n.type!=="paren"&&!Nn&&!Hi){Xt({type:"star",value:St,output:""});continue}for(;Ar.slice(0,3)==="/**";){let po=e[k.index+4];if(po&&po!=="/")break;Ar=Ar.slice(3),er("/**",3)}if(_n.type==="bos"&&At()){je.type="globstar",je.value+=St,je.output=de(r),k.output=je.output,k.globstar=!0,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&!Fn&&At()){k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=de(r)+(r.strictSlashes?")":"|$)"),je.value+=St,k.globstar=!0,k.output+=_n.output+je.output,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&Ar[0]==="/"){let po=Ar[1]!==void 0?"|$":"";k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=`${de(r)}${N}|${N}${po})`,je.value+=St,k.output+=_n.output+je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}if(_n.type==="bos"&&Ar[0]==="/"){je.type="globstar",je.value+=St,je.output=`(?:^|${N}|${de(r)}${N})`,k.output=je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}k.output=k.output.slice(0,-je.output.length),je.type="globstar",je.output=de(r),je.value+=St,k.output+=je.output,k.globstar=!0,er(St);continue}let qr={type:"star",value:St,output:De};if(r.bash===!0){qr.output=".*?",(je.type==="bos"||je.type==="slash")&&(qr.output=be+qr.output),Xt(qr);continue}if(je&&(je.type==="bracket"||je.type==="paren")&&r.regex===!0){qr.output=St,Xt(qr);continue}(k.index===k.start||je.type==="slash"||je.type==="dot")&&(je.type==="dot"?(k.output+=X,je.output+=X):r.dot===!0?(k.output+=ae,je.output+=ae):(k.output+=be,je.output+=be),Yt()!=="*"&&(k.output+=B,je.output+=B)),Xt(qr)}for(;k.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));k.output=DW.escapeLast(k.output,"["),qt("brackets")}for(;k.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing",")"));k.output=DW.escapeLast(k.output,"("),qt("parens")}for(;k.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","}"));k.output=DW.escapeLast(k.output,"{"),qt("braces")}if(r.strictSlashes!==!0&&(je.type==="star"||je.type==="bracket")&&Xt({type:"maybe_slash",value:"",output:`${N}?`}),k.backtrack===!0){k.output="";for(let Ar of k.tokens)k.output+=Ar.output!=null?Ar.output:Ar.value,Ar.suffix&&(k.output+=Ar.suffix)}return k};m7t.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=Vwn[e]||e;let o=DW.isWindows(t),{DOT_LITERAL:l,SLASH_LITERAL:A,ONE_CHAR:f,DOTS_SLASH:I,NO_DOT:C,NO_DOTS:b,NO_DOTS_SLASH:E,STAR:N,START_ANCHOR:B}=_lt.globChars(o),F=r.dot?b:C,Q=r.dot?E:C,X=r.capture?"":"?:",ae={negated:!1,prefix:""},ne=r.bash===!0?".*?":N;r.capture&&(ne=`(${ne})`);let ce=be=>be.noglobstar===!0?ne:`(${X}(?:(?!${B}${be.dot?I:l}).)*?)`,fe=be=>{switch(be){case"*":return`${F}${f}${ne}`;case".*":return`${l}${f}${ne}`;case"*.*":return`${F}${ne}${l}${f}${ne}`;case"*/*":return`${F}${ne}${A}${f}${Q}${ne}`;case"**":return F+ce(r);case"**/*":return`(?:${F}${ce(r)}${A})?${Q}${f}${ne}`;case"**/*.*":return`(?:${F}${ce(r)}${A})?${Q}${ne}${l}${f}${ne}`;case"**/.*":return`(?:${F}${ce(r)}${A})?${l}${f}${ne}`;default:{let Se=/^(.*?)\.(\w+)$/.exec(be);if(!Se)return;let De=fe(Se[1]);return De?De+l+Se[2]:void 0}}},ue=DW.removePrefix(e,ae),de=fe(ue);return de&&r.strictSlashes!==!0&&(de+=`${A}?`),de};Pwn.exports=m7t});var Mwn=H((LMl,Own)=>{"use strict";var mso=wt("path"),Cso=Lwn(),C7t=Wwn(),_7t=I3e(),_so=f3e(),yso=e=>e&&typeof e=="object"&&!Array.isArray(e),KB=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>KB(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=yso(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=_7t.isWindows(t),l=n?KB.compileRe(e,t):KB.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=KB(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=KB.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};KB.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?_7t.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=KB.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};KB.matchBase=(e,t,r,n=_7t.isWindows(r))=>(t instanceof RegExp?t:KB.makeRe(t,r)).test(mso.basename(e));KB.isMatch=(e,t,r)=>KB(t,r)(e);KB.parse=(e,t)=>Array.isArray(e)?e.map(r=>KB.parse(r,t)):C7t(e,{...t,fastpaths:!1});KB.scan=(e,t)=>Cso(e,t);KB.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=KB.toRegex(A,t);return n===!0&&(f.state=e),f};KB.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=C7t.fastpaths(e,t)),a.output||(a=C7t(e,t)),KB.compileRe(a,t,r,n)};KB.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};KB.constants=_so;Own.exports=KB});var Ywn=H((VMl,Hwn)=>{"use strict";Hwn.exports=Mwn()});var Ek=H((PMl,Kwn)=>{"use strict";var Xwn=wt("util"),Jwn=Swn(),WK=Ywn(),y7t=I3e(),Qwn=e=>e===""||e==="./",Uwn=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},x1=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,a=new Set,o=new Set,l=0,A=C=>{o.add(C.output),r&&r.onResult&&r.onResult(C)};for(let C=0;C!n.has(C));if(r&&I.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(C=>C.replace(/\\/g,"")):t}return I};x1.match=x1;x1.matcher=(e,t)=>WK(e,t);x1.isMatch=(e,t,r)=>WK(t,r)(e);x1.any=x1.isMatch;x1.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,a=[],o=A=>{r.onResult&&r.onResult(A),a.push(A.output)},l=new Set(x1(e,t,{...r,onResult:o}));for(let A of a)l.has(A)||n.add(A);return[...n]};x1.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>x1.contains(e,n,r));if(typeof t=="string"){if(Qwn(e)||Qwn(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return x1.isMatch(e,t,{...r,contains:!0})};x1.matchKeys=(e,t,r)=>{if(!y7t.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=x1(Object.keys(e),t,r),a={};for(let o of n)a[o]=e[o];return a};x1.some=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(n.some(l=>o(l)))return!0}return!1};x1.every=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(!n.every(l=>o(l)))return!1}return!0};x1.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);return[].concat(t).every(n=>WK(n,r)(e))};x1.capture=(e,t,r)=>{let n=y7t.isWindows(r),o=WK.makeRe(String(e),{...r,capture:!0}).exec(n?y7t.toPosixSlashes(t):t);if(o)return o.slice(1).map(l=>l===void 0?"":l)};x1.makeRe=(...e)=>WK.makeRe(...e);x1.scan=(...e)=>WK.scan(...e);x1.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let a of Jwn(String(n),t))r.push(WK.parse(a,t));return r};x1.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Uwn(e)?[e]:Jwn(e,t)};x1.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return x1.braces(e,{...t,expand:!0})};x1.hasBraces=Uwn;Kwn.exports=x1});var zwn=H((WMl,jwn)=>{"use strict";jwn.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var q5=H((OMl,qwn)=>{"use strict";var bso=zwn();qwn.exports=e=>typeof e=="string"?e.replace(bso(),""):e});var E7t=H(b7t=>{"use strict";Object.defineProperty(b7t,Symbol.toStringTag,{value:"Module"});function Eso(e){return arguments.length===0?[]:Array.isArray(e)?e:[e]}b7t.castArray=Eso});var $wn=H(S7t=>{"use strict";Object.defineProperty(S7t,Symbol.toStringTag,{value:"Module"});function Sso(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Size must be an integer greater than zero.");let r=Math.ceil(e.length/t),n=Array(r);for(let a=0;a{"use strict";Object.defineProperty(v7t,Symbol.toStringTag,{value:"Module"});function vso(e){return Array.isArray(e)?e:Array.from(e)}v7t.toArray=vso});var eTn=H(B7t=>{"use strict";Object.defineProperty(B7t,Symbol.toStringTag,{value:"Module"});function Bso(e){return Number.isSafeInteger(e)&&e>=0}B7t.isLength=Bso});var Sf=H(w7t=>{"use strict";Object.defineProperty(w7t,Symbol.toStringTag,{value:"Module"});var wso=eTn();function Tso(e){return e!=null&&typeof e!="function"&&wso.isLength(e.length)}w7t.isArrayLike=Tso});var R7t=H(T7t=>{"use strict";Object.defineProperty(T7t,Symbol.toStringTag,{value:"Module"});var Rso=$wn(),Nso=SZ(),Dso=Sf();function kso(e,t=1){return t=Math.max(Math.floor(t),0),t===0||!Dso.isArrayLike(e)?[]:Rso.chunk(Nso.toArray(e),t)}T7t.chunk=kso});var tTn=H(N7t=>{"use strict";Object.defineProperty(N7t,Symbol.toStringTag,{value:"Module"});function xso(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(D7t,Symbol.toStringTag,{value:"Module"});var Gso=tTn(),Fso=Sf();function Zso(e){return Fso.isArrayLike(e)?Gso.compact(Array.from(e)):[]}D7t.compact=Zso});var m3e=H(x7t=>{"use strict";Object.defineProperty(x7t,Symbol.toStringTag,{value:"Module"});function Lso(e,t=1){let r=[],n=Math.floor(t),a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(G7t,Symbol.toStringTag,{value:"Module"});var Vso=m3e();function Pso(...e){return Vso.flatten(e)}G7t.concat=Pso});var bm=H(Z7t=>{"use strict";Object.defineProperty(Z7t,Symbol.toStringTag,{value:"Module"});function Wso(e){return e}Z7t.identity=Wso});var C3e=H(L7t=>{"use strict";Object.defineProperty(L7t,Symbol.toStringTag,{value:"Module"});function Oso(e){return e==="__proto__"}L7t.isUnsafeProperty=Oso});var VSe=H(V7t=>{"use strict";Object.defineProperty(V7t,Symbol.toStringTag,{value:"Module"});function Mso(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}V7t.isDeepKey=Mso});var Kq=H(P7t=>{"use strict";Object.defineProperty(P7t,Symbol.toStringTag,{value:"Module"});function Hso(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}P7t.toKey=Hso});var qy=H(W7t=>{"use strict";Object.defineProperty(W7t,Symbol.toStringTag,{value:"Module"});function rTn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(rTn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}W7t.toString=rTn});var $5=H(O7t=>{"use strict";Object.defineProperty(O7t,Symbol.toStringTag,{value:"Module"});var Yso=qy(),Qso=Kq();function Xso(e){if(Array.isArray(e))return e.map(Qso.toKey);if(typeof e=="symbol")return[e];e=Yso.toString(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",o="",l=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n{"use strict";Object.defineProperty(H7t,Symbol.toStringTag,{value:"Module"});var M7t=C3e(),Jso=VSe(),Uso=Kq(),Kso=$5();function nTn(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?Jso.isDeepKey(t)?nTn(e,Kso.toPath(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Uso.toKey(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return jso(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?r:n}}}function jso(e,t,r){if(t.length===0)return r;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Y7t,Symbol.toStringTag,{value:"Module"});var zso=eM();function qso(e){return function(t){return zso.get(t,e)}}Y7t.property=qso});var tM=H(Q7t=>{"use strict";Object.defineProperty(Q7t,Symbol.toStringTag,{value:"Module"});function $so(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Q7t.isObject=$so});var PSe=H(X7t=>{"use strict";Object.defineProperty(X7t,Symbol.toStringTag,{value:"Module"});function eoo(e){return e==null||typeof e!="object"&&typeof e!="function"}X7t.isPrimitive=eoo});var Sk=H(J7t=>{"use strict";Object.defineProperty(J7t,Symbol.toStringTag,{value:"Module"});function too(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}J7t.isEqualsSameValueZero=too});var Elt=H(blt=>{"use strict";Object.defineProperty(blt,Symbol.toStringTag,{value:"Module"});var roo=tM(),iTn=PSe(),sTn=Sk();function oTn(e,t,r){return typeof r!="function"?oTn(e,t,()=>{}):U7t(e,t,function n(a,o,l,A,f,I){let C=r(a,o,l,A,f,I);return C!==void 0?!!C:U7t(a,o,n,I)},new Map)}function U7t(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return noo(e,t,r,n);case"function":return Object.keys(t).length>0?U7t(e,{...t},r,n):sTn.isEqualsSameValueZero(e,t);default:return roo.isObject(e)?typeof t=="string"?t==="":!0:sTn.isEqualsSameValueZero(e,t)}}function noo(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return aTn(e,t,r,n);if(t instanceof Map)return ioo(e,t,r,n);if(t instanceof Set)return cTn(e,t,r,n);let a=Object.keys(t);if(e==null||iTn.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o{"use strict";Object.defineProperty(K7t,Symbol.toStringTag,{value:"Module"});var soo=Elt();function ooo(e,t){return soo.isMatchWith(e,t,()=>{})}K7t.isMatch=ooo});var y3e=H(j7t=>{"use strict";Object.defineProperty(j7t,Symbol.toStringTag,{value:"Module"});function aoo(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}j7t.getSymbols=aoo});var Zfe=H(z7t=>{"use strict";Object.defineProperty(z7t,Symbol.toStringTag,{value:"Module"});function coo(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}z7t.getTag=coo});var b3e=H($y=>{"use strict";Object.defineProperty($y,Symbol.toStringTag,{value:"Module"});var loo="[object RegExp]",uoo="[object String]",goo="[object Number]",Aoo="[object Boolean]",doo="[object Arguments]",poo="[object Symbol]",foo="[object Date]",Ioo="[object Map]",hoo="[object Set]",moo="[object Array]",Coo="[object Function]",_oo="[object ArrayBuffer]",yoo="[object Object]",boo="[object Error]",Eoo="[object DataView]",Soo="[object Uint8Array]",voo="[object Uint8ClampedArray]",Boo="[object Uint16Array]",woo="[object Uint32Array]",Too="[object BigUint64Array]",Roo="[object Int8Array]",Noo="[object Int16Array]",Doo="[object Int32Array]",koo="[object BigInt64Array]",xoo="[object Float32Array]",Goo="[object Float64Array]";$y.argumentsTag=doo;$y.arrayBufferTag=_oo;$y.arrayTag=moo;$y.bigInt64ArrayTag=koo;$y.bigUint64ArrayTag=Too;$y.booleanTag=Aoo;$y.dataViewTag=Eoo;$y.dateTag=foo;$y.errorTag=boo;$y.float32ArrayTag=xoo;$y.float64ArrayTag=Goo;$y.functionTag=Coo;$y.int16ArrayTag=Noo;$y.int32ArrayTag=Doo;$y.int8ArrayTag=Roo;$y.mapTag=Ioo;$y.numberTag=goo;$y.objectTag=yoo;$y.regexpTag=loo;$y.setTag=hoo;$y.stringTag=uoo;$y.symbolTag=poo;$y.uint16ArrayTag=Boo;$y.uint32ArrayTag=woo;$y.uint8ArrayTag=Soo;$y.uint8ClampedArrayTag=voo});var $7t=H(q7t=>{"use strict";Object.defineProperty(q7t,Symbol.toStringTag,{value:"Module"});var Foo=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||function(){return this}()||Function("return this")();q7t.globalThis=Foo});var noe=H(ezt=>{"use strict";Object.defineProperty(ezt,Symbol.toStringTag,{value:"Module"});var lTn=$7t();function Zoo(e){return typeof lTn.globalThis.Buffer<"u"&&lTn.globalThis.Buffer.isBuffer(e)}ezt.isBuffer=Zoo});var Slt=H(tzt=>{"use strict";Object.defineProperty(tzt,Symbol.toStringTag,{value:"Module"});function Loo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}tzt.isTypedArray=Loo});var rzt=H(E3e=>{"use strict";Object.defineProperty(E3e,Symbol.toStringTag,{value:"Module"});var Voo=y3e(),Poo=Zfe(),Zv=b3e(),Woo=noe(),Ooo=PSe(),Moo=Slt();function Hoo(e,t){return Lfe(e,void 0,e,new Map,t)}function Lfe(e,t,r,n=new Map,a=void 0){let o=a?.(e,t,r,n);if(o!==void 0)return o;if(Ooo.isPrimitive(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let l=new Array(e.length);n.set(e,l);for(let A=0;A{"use strict";Object.defineProperty(nzt,Symbol.toStringTag,{value:"Module"});var Qoo=rzt();function Xoo(e){return Qoo.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}nzt.cloneDeep=Xoo});var OK=H(szt=>{"use strict";Object.defineProperty(szt,Symbol.toStringTag,{value:"Module"});var Joo=_3e(),Uoo=izt();function Koo(e){return e=Uoo.cloneDeep(e),t=>Joo.isMatch(t,e)}szt.matches=Koo});var v3e=H(ozt=>{"use strict";Object.defineProperty(ozt,Symbol.toStringTag,{value:"Module"});var vlt=rzt(),joo=Zfe(),S3e=b3e();function zoo(e,t){return vlt.cloneDeepWith(e,(r,n,a,o)=>{let l=t?.(r,n,a,o);if(l!==void 0)return l;if(typeof e=="object"){if(joo.getTag(e)===S3e.objectTag&&typeof e.constructor!="function"){let A={};return o.set(e,A),vlt.copyProperties(A,e,a,o),A}switch(Object.prototype.toString.call(e)){case S3e.numberTag:case S3e.stringTag:case S3e.booleanTag:{let A=new e.constructor(e?.valueOf());return vlt.copyProperties(A,e),A}case S3e.argumentsTag:{let A={};return vlt.copyProperties(A,e),A.length=e.length,A[Symbol.iterator]=e[Symbol.iterator],A}default:return}}})}ozt.cloneDeepWith=zoo});var WSe=H(azt=>{"use strict";Object.defineProperty(azt,Symbol.toStringTag,{value:"Module"});var qoo=v3e();function $oo(e){return qoo.cloneDeepWith(e)}azt.cloneDeep=$oo});var OSe=H(czt=>{"use strict";Object.defineProperty(czt,Symbol.toStringTag,{value:"Module"});var eao=/^(?:0|[1-9]\d*)$/;function tao(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(lzt,Symbol.toStringTag,{value:"Module"});var rao=Zfe();function nao(e){return e!==null&&typeof e=="object"&&rao.getTag(e)==="[object Arguments]"}lzt.isArguments=nao});var B3e=H(uzt=>{"use strict";Object.defineProperty(uzt,Symbol.toStringTag,{value:"Module"});var iao=VSe(),sao=OSe(),oao=Vfe(),aao=$5();function cao(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&iao.isDeepKey(t)&&e?.[t]==null?r=aao.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(gzt,Symbol.toStringTag,{value:"Module"});var lao=_3e(),uao=Kq(),gao=WSe(),Aao=eM(),dao=B3e();function pao(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=uao.toKey(e);break}}return t=gao.cloneDeep(t),function(r){let n=Aao.get(r,e);return n===void 0?dao.has(r,e):t===void 0?n===void 0:lao.isMatch(n,t)}}gzt.matchesProperty=pao});var im=H(Azt=>{"use strict";Object.defineProperty(Azt,Symbol.toStringTag,{value:"Module"});var fao=bm(),Iao=nX(),hao=OK(),mao=MK();function Cao(e){if(e==null)return fao.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?mao.matchesProperty(e[0],e[1]):hao.matches(e);case"string":case"symbol":case"number":return Iao.property(e)}}Azt.iteratee=Cao});var pzt=H(dzt=>{"use strict";Object.defineProperty(dzt,Symbol.toStringTag,{value:"Module"});var _ao=Sf(),yao=im();function bao(e,t){if(e==null)return{};let r=_ao.isArrayLike(e)?Array.from(e):Object.values(e),n=yao.iteratee(t??void 0),a=Object.create(null);for(let o=0;o{"use strict";Object.defineProperty(fzt,Symbol.toStringTag,{value:"Module"});function Eao(e,t){let r=new Set(t);return e.filter(n=>!r.has(n))}fzt.difference=Eao});var ioe=H(Izt=>{"use strict";Object.defineProperty(Izt,Symbol.toStringTag,{value:"Module"});function Sao(e){return typeof e=="object"&&e!==null}Izt.isObjectLike=Sao});var b2=H(hzt=>{"use strict";Object.defineProperty(hzt,Symbol.toStringTag,{value:"Module"});var vao=Sf(),Bao=ioe();function wao(e){return Bao.isObjectLike(e)&&vao.isArrayLike(e)}hzt.isArrayLikeObject=wao});var Czt=H(mzt=>{"use strict";Object.defineProperty(mzt,Symbol.toStringTag,{value:"Module"});var Tao=w3e(),Rao=SZ(),uTn=b2();function Nao(e,...t){if(!uTn.isArrayLikeObject(e))return[];let r=Rao.toArray(e),n=[];for(let a=0;a{"use strict";Object.defineProperty(_zt,Symbol.toStringTag,{value:"Module"});function Dao(e){return e[e.length-1]}_zt.last=Dao});var zq=H(yzt=>{"use strict";Object.defineProperty(yzt,Symbol.toStringTag,{value:"Module"});var kao=T3e(),xao=SZ(),Gao=Sf();function Fao(e){if(Gao.isArrayLike(e))return kao.last(xao.toArray(e))}yzt.last=Fao});var gTn=H(bzt=>{"use strict";Object.defineProperty(bzt,Symbol.toStringTag,{value:"Module"});function Zao(e,t,r){let n=new Set(t.map(a=>r(a)));return e.filter(a=>!n.has(r(a)))}bzt.differenceBy=Zao});var R3e=H(Ezt=>{"use strict";Object.defineProperty(Ezt,Symbol.toStringTag,{value:"Module"});var Lao=b2();function Vao(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(Szt,Symbol.toStringTag,{value:"Module"});var Pao=zq(),Wao=w3e(),Oao=gTn(),Mao=R3e(),ATn=b2(),Hao=im();function Yao(e,...t){if(!ATn.isArrayLikeObject(e))return[];let r=Pao.last(t),n=Mao.flattenArrayLike(t);return ATn.isArrayLikeObject(r)?Wao.difference(Array.from(e),n):Oao.differenceBy(Array.from(e),n,Hao.iteratee(r))}Szt.differenceBy=Yao});var dTn=H(vzt=>{"use strict";Object.defineProperty(vzt,Symbol.toStringTag,{value:"Module"});function Qao(e,t,r){return e.filter(n=>t.every(a=>!r(n,a)))}vzt.differenceWith=Qao});var wlt=H(Bzt=>{"use strict";Object.defineProperty(Bzt,Symbol.toStringTag,{value:"Module"});var Xao=zq(),Jao=w3e(),Uao=dTn(),Kao=R3e(),jao=b2();function zao(e,...t){if(!jao.isArrayLikeObject(e))return[];let r=Xao.last(t),n=Kao.flattenArrayLike(t);return typeof r=="function"?Uao.differenceWith(Array.from(e),n,r):Jao.difference(Array.from(e),n)}Bzt.differenceWith=zao});var pTn=H(wzt=>{"use strict";Object.defineProperty(wzt,Symbol.toStringTag,{value:"Module"});function qao(e,t){return t=Math.max(t,0),e.slice(t)}wzt.drop=qao});var soe=H(Tzt=>{"use strict";Object.defineProperty(Tzt,Symbol.toStringTag,{value:"Module"});function $ao(e){return typeof e=="symbol"||e instanceof Symbol}Tzt.isSymbol=$ao});var Q9=H(Rzt=>{"use strict";Object.defineProperty(Rzt,Symbol.toStringTag,{value:"Module"});var eco=soe();function tco(e){return eco.isSymbol(e)?NaN:Number(e)}Rzt.toNumber=tco});var MSe=H(Nzt=>{"use strict";Object.defineProperty(Nzt,Symbol.toStringTag,{value:"Module"});var rco=Q9();function nco(e){return e?(e=rco.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}Nzt.toFinite=nco});var $w=H(Dzt=>{"use strict";Object.defineProperty(Dzt,Symbol.toStringTag,{value:"Module"});var ico=MSe();function sco(e){let t=ico.toFinite(e),r=t%1;return r?t-r:t}Dzt.toInteger=sco});var xzt=H(kzt=>{"use strict";Object.defineProperty(kzt,Symbol.toStringTag,{value:"Module"});var oco=pTn(),aco=SZ(),cco=Sf(),lco=$w();function uco(e,t=1,r){return cco.isArrayLike(e)?(t=r?1:lco.toInteger(t),oco.drop(aco.toArray(e),t)):[]}kzt.drop=uco});var fTn=H(Gzt=>{"use strict";Object.defineProperty(Gzt,Symbol.toStringTag,{value:"Module"});function gco(e,t){return t=Math.min(-t,0),t===0?e.slice():e.slice(0,t)}Gzt.dropRight=gco});var Zzt=H(Fzt=>{"use strict";Object.defineProperty(Fzt,Symbol.toStringTag,{value:"Module"});var Aco=fTn(),dco=SZ(),pco=Sf(),fco=$w();function Ico(e,t=1,r){return pco.isArrayLike(e)?(t=r?1:fco.toInteger(t),Aco.dropRight(dco.toArray(e),t)):[]}Fzt.dropRight=Ico});var ITn=H(Lzt=>{"use strict";Object.defineProperty(Lzt,Symbol.toStringTag,{value:"Module"});function hco(e,t){for(let r=e.length-1;r>=0;r--)if(!t(e[r],r,e))return e.slice(0,r+1);return[]}Lzt.dropRightWhile=hco});var Pzt=H(Vzt=>{"use strict";Object.defineProperty(Vzt,Symbol.toStringTag,{value:"Module"});var Tlt=ITn(),mco=bm(),Cco=nX(),_co=Sf(),yco=OK(),bco=MK();function Eco(e,t=mco.identity){return _co.isArrayLike(e)?Sco(Array.from(e),t):[]}function Sco(e,t){switch(typeof t){case"function":return Tlt.dropRightWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Tlt.dropRightWhile(e,bco.matchesProperty(r,n))}else return Tlt.dropRightWhile(e,yco.matches(t));case"symbol":case"number":case"string":return Tlt.dropRightWhile(e,Cco.property(t))}}Vzt.dropRightWhile=Eco});var hTn=H(Wzt=>{"use strict";Object.defineProperty(Wzt,Symbol.toStringTag,{value:"Module"});function vco(e,t){let r=e.findIndex((n,a,o)=>!t(n,a,o));return r===-1?[]:e.slice(r)}Wzt.dropWhile=vco});var Mzt=H(Ozt=>{"use strict";Object.defineProperty(Ozt,Symbol.toStringTag,{value:"Module"});var Rlt=hTn(),Bco=bm(),wco=SZ(),Tco=nX(),Rco=Sf(),Nco=OK(),Dco=MK();function kco(e,t=Bco.identity){return Rco.isArrayLike(e)?xco(wco.toArray(e),t):[]}function xco(e,t){switch(typeof t){case"function":return Rlt.dropWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Rlt.dropWhile(e,Dco.matchesProperty(r,n))}else return Rlt.dropWhile(e,Nco.matches(t));case"number":case"symbol":case"string":return Rlt.dropWhile(e,Tco.property(t))}}Ozt.dropWhile=kco});var ooe=H(Hzt=>{"use strict";Object.defineProperty(Hzt,Symbol.toStringTag,{value:"Module"});function Gco(e,t,r=1){if(t==null&&(t=e,e=0),!Number.isInteger(r)||r===0)throw new Error("The step value must be a non-zero integer.");let n=Math.max(Math.ceil((t-e)/r),0),a=new Array(n);for(let o=0;o{"use strict";Object.defineProperty(Yzt,Symbol.toStringTag,{value:"Module"});var Fco=bm(),Zco=ooe(),Lco=Sf();function Vco(e,t=Fco.identity){if(!e)return e;let r=Lco.isArrayLike(e)||Array.isArray(e)?Zco.range(0,e.length):Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(Qzt,Symbol.toStringTag,{value:"Module"});var Pco=bm(),Wco=ooe(),Oco=Sf();function Mco(e,t=Pco.identity){if(!e)return e;let r=Oco.isArrayLike(e)?Wco.range(0,e.length):Object.keys(e);for(let n=r.length-1;n>=0;n--){let a=r[n],o=e[a];if(t(o,a,e)===!1)break}return e}Qzt.forEachRight=Mco});var qq=H(Jzt=>{"use strict";Object.defineProperty(Jzt,Symbol.toStringTag,{value:"Module"});var Hco=OSe(),Yco=Sf(),Qco=tM(),Xco=Sk();function Jco(e,t,r){return Qco.isObject(r)&&(typeof t=="number"&&Yco.isArrayLike(r)&&Hco.isIndex(t)&&t{"use strict";Object.defineProperty(Uzt,Symbol.toStringTag,{value:"Module"});var Uco=bm(),Kco=qq(),jco=nX(),zco=Sf(),qco=OK(),$co=MK();function elo(e,t,r){if(!e)return!0;r&&Kco.isIterateeCall(e,t,r)&&(t=void 0),t||(t=Uco.identity);let n;switch(typeof t){case"function":{n=t;break}case"object":{if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];n=$co.matchesProperty(a,o)}else n=qco.matches(t);break}case"symbol":case"number":case"string":n=jco.property(t)}if(!zco.isArrayLike(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(jzt,Symbol.toStringTag,{value:"Module"});function tlo(e,t,r=0,n=e.length){let a=e.length,o=Math.max(r>=0?r:a+r,0),l=Math.min(n>=0?n:a+n,a);for(let A=o;A{"use strict";Object.defineProperty(zzt,Symbol.toStringTag,{value:"Module"});function rlo(e){return typeof e=="string"||e instanceof String}zzt.isString=rlo});var $zt=H(qzt=>{"use strict";Object.defineProperty(qzt,Symbol.toStringTag,{value:"Module"});var nlo=mTn(),ilo=Sf(),slo=HSe();function olo(e,t,r=0,n=e?e.length:0){return ilo.isArrayLike(e)?slo.isString(e)?e:(r=Math.floor(r),n=Math.floor(n),r||(r=0),n||(n=0),nlo.fill(e,t,r,n)):[]}qzt.fill=olo});var Dlt=H(eqt=>{"use strict";Object.defineProperty(eqt,Symbol.toStringTag,{value:"Module"});var alo=bm(),clo=Sf(),llo=im();function ulo(e,t=alo.identity){if(!e)return[];if(t=llo.iteratee(t),!Array.isArray(e)){let a=[],o=Object.keys(e),l=clo.isArrayLike(e)?e.length:o.length;for(let A=0;A{"use strict";Object.defineProperty(tqt,Symbol.toStringTag,{value:"Module"});var glo=bm(),Alo=im();function dlo(e,t=glo.identity,r=0){if(!e)return;r<0&&(r=Math.max(e.length+r,0));let n=Alo.iteratee(t);if(!Array.isArray(e)){let a=Object.keys(e);for(let o=r;o{"use strict";Object.defineProperty(nqt,Symbol.toStringTag,{value:"Module"});function plo(e){return e}nqt.identity=plo});var sqt=H(iqt=>{"use strict";Object.defineProperty(iqt,Symbol.toStringTag,{value:"Module"});var flo=HK(),Ilo=nX(),hlo=OK(),mlo=MK();function Clo(e,t=flo.identity,r=0){if(!e)return-1;r<0&&(r=Math.max(e.length+r,0));let n=Array.from(e).slice(r),a=-1;switch(typeof t){case"function":{a=n.findIndex(t);break}case"object":{if(Array.isArray(t)&&t.length===2){let o=t[0],l=t[1];a=n.findIndex(mlo.matchesProperty(o,l))}else a=n.findIndex(hlo.matches(t));break}case"number":case"symbol":case"string":a=n.findIndex(Ilo.property(t))}return a===-1?-1:a+r}iqt.findIndex=Clo});var aqt=H(oqt=>{"use strict";Object.defineProperty(oqt,Symbol.toStringTag,{value:"Module"});var _lo=bm(),ylo=im(),blo=$w();function Elo(e,t=_lo.identity,r){if(!e)return;let n=Array.isArray(e)?e.length:Object.keys(e).length;r=blo.toInteger(r??n-1),r<0?r=Math.max(n+r,0):r=Math.min(r,n-1);let a=ylo.iteratee(t);if(!Array.isArray(e)){let o=Object.keys(e);for(let l=r;l>=0;l--){let A=o[l],f=e[A];if(a(f,A,e))return f}return}return e.slice(0,r+1).findLast(a)}oqt.findLast=Elo});var lqt=H(cqt=>{"use strict";Object.defineProperty(cqt,Symbol.toStringTag,{value:"Module"});var Slo=bm(),vlo=SZ(),Blo=nX(),wlo=OK(),Tlo=MK();function Rlo(e,t=Slo.identity,r=e?e.length-1:0){if(!e)return-1;r<0?r=Math.max(e.length+r,0):r=Math.min(r,e.length-1);let n=vlo.toArray(e).slice(0,r+1);switch(typeof t){case"function":return n.findLastIndex(t);case"object":if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];return n.findLastIndex(Tlo.matchesProperty(a,o))}else return n.findLastIndex(wlo.matches(t));case"number":case"symbol":case"string":return n.findLastIndex(Blo.property(t))}}cqt.findLastIndex=Rlo});var CTn=H(uqt=>{"use strict";Object.defineProperty(uqt,Symbol.toStringTag,{value:"Module"});function Nlo(e){return e[0]}uqt.head=Nlo});var Aqt=H(gqt=>{"use strict";Object.defineProperty(gqt,Symbol.toStringTag,{value:"Module"});var Dlo=CTn(),klo=SZ(),xlo=Sf();function Glo(e){if(xlo.isArrayLike(e))return Dlo.head(klo.toArray(e))}gqt.head=Glo});var Pfe=H(dqt=>{"use strict";Object.defineProperty(dqt,Symbol.toStringTag,{value:"Module"});var Flo=Sf();function Zlo(e,t=1){let r=[],n=Math.floor(t);if(!Flo.isArrayLike(e))return r;let a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(pqt,Symbol.toStringTag,{value:"Module"});var Llo=Pfe();function Vlo(e,t=1){return Llo.flatten(e,t)}pqt.flattenDepth=Vlo});var N3e=H(fqt=>{"use strict";Object.defineProperty(fqt,Symbol.toStringTag,{value:"Module"});var Plo=bm(),Wlo=ooe(),Olo=Sf(),Mlo=im();function Hlo(e,t){if(!e)return[];let r=Olo.isArrayLike(e)||Array.isArray(e)?Wlo.range(0,e.length):Object.keys(e),n=Mlo.iteratee(t??Plo.identity),a=new Array(r.length);for(let o=0;o{"use strict";Object.defineProperty(Iqt,Symbol.toStringTag,{value:"Module"});function Ylo(e){return e==null}Iqt.isNil=Ylo});var mqt=H(hqt=>{"use strict";Object.defineProperty(hqt,Symbol.toStringTag,{value:"Module"});var Qlo=YSe(),_Tn=N3e(),yTn=aoe();function Xlo(e,t){if(yTn.isNil(e))return[];let r=yTn.isNil(t)?_Tn.map(e):_Tn.map(e,t);return Qlo.flattenDepth(r,1)}hqt.flatMap=Xlo});var D3e=H(Cqt=>{"use strict";Object.defineProperty(Cqt,Symbol.toStringTag,{value:"Module"});var Jlo=Pfe(),Ulo=N3e(),Klo=bm(),jlo=im();function zlo(e,t=Klo.identity,r=1){if(e==null)return[];let n=jlo.iteratee(t),a=Ulo.map(e,n);return Jlo.flatten(a,r)}Cqt.flatMapDepth=zlo});var yqt=H(_qt=>{"use strict";Object.defineProperty(_qt,Symbol.toStringTag,{value:"Module"});var qlo=D3e();function $lo(e,t){return qlo.flatMapDepth(e,t,1/0)}_qt.flatMapDeep=$lo});var Eqt=H(bqt=>{"use strict";Object.defineProperty(bqt,Symbol.toStringTag,{value:"Module"});var euo=YSe();function tuo(e){return euo.flattenDepth(e,1/0)}bqt.flattenDeep=tuo});var bTn=H(Sqt=>{"use strict";Object.defineProperty(Sqt,Symbol.toStringTag,{value:"Module"});function ruo(e,t){let r={};for(let n=0;n{"use strict";Object.defineProperty(vqt,Symbol.toStringTag,{value:"Module"});var nuo=bTn(),iuo=bm(),suo=Sf(),ouo=im();function auo(e,t){if(e==null)return{};let r=suo.isArrayLike(e)?Array.from(e):Object.values(e),n=ouo.iteratee(t??iuo.identity);return nuo.groupBy(r,n)}vqt.groupBy=auo});var Tqt=H(wqt=>{"use strict";Object.defineProperty(wqt,Symbol.toStringTag,{value:"Module"});var cuo=HSe(),luo=Sk(),uuo=$w();function guo(e,t,r,n){if(e==null)return!1;if(n||!r?r=0:r=uuo.toInteger(r),cuo.isString(e))return r>e.length||t instanceof RegExp?!1:(r<0&&(r=Math.max(0,e.length+r)),e.includes(t,r));if(Array.isArray(e))return e.includes(t,r);let a=Object.keys(e);r<0&&(r=Math.max(0,a.length+r));for(let o=r;o{"use strict";Object.defineProperty(Rqt,Symbol.toStringTag,{value:"Module"});var Auo=Sf();function duo(e,t,r){if(!Auo.isArrayLike(e))return-1;if(Number.isNaN(t)){r=r??0,r<0&&(r=Math.max(0,e.length+r));for(let n=r;n{"use strict";Object.defineProperty(Dqt,Symbol.toStringTag,{value:"Module"});function puo(e){return e.slice(0,-1)}Dqt.initial=puo});var xqt=H(kqt=>{"use strict";Object.defineProperty(kqt,Symbol.toStringTag,{value:"Module"});var fuo=ETn(),Iuo=Sf();function huo(e){return Iuo.isArrayLike(e)?fuo.initial(Array.from(e)):[]}kqt.initial=huo});var STn=H(Gqt=>{"use strict";Object.defineProperty(Gqt,Symbol.toStringTag,{value:"Module"});function muo(e,t){let r=new Set(t);return e.filter(n=>r.has(n))}Gqt.intersection=muo});var Wfe=H(Fqt=>{"use strict";Object.defineProperty(Fqt,Symbol.toStringTag,{value:"Module"});function Cuo(e){return[...new Set(e)]}Fqt.uniq=Cuo});var Lqt=H(Zqt=>{"use strict";Object.defineProperty(Zqt,Symbol.toStringTag,{value:"Module"});var _uo=STn(),yuo=Wfe(),vTn=b2();function buo(...e){if(e.length===0)return[];if(!vTn.isArrayLikeObject(e[0]))return[];let t=yuo.uniq(Array.from(e[0]));for(let r=1;r{"use strict";Object.defineProperty(Vqt,Symbol.toStringTag,{value:"Module"});function Euo(e,t,r){let n=[],a=new Set(t.map(r));for(let o=0;o{"use strict";Object.defineProperty(Wqt,Symbol.toStringTag,{value:"Module"});var Pqt=BTn(),Suo=T3e(),vuo=Wfe(),Buo=bm(),wuo=nX(),klt=b2();function Tuo(e,...t){if(!klt.isArrayLikeObject(e))return[];let r=Suo.last(t);if(r===void 0)return Array.from(e);let n=vuo.uniq(Array.from(e)),a=klt.isArrayLikeObject(r)?t.length:t.length-1;for(let o=0;or(A)):typeof r=="string"&&(n=Pqt.intersectionBy(n,Array.from(l),wuo.property(r)))}return n}Wqt.intersectionBy=Tuo});var wTn=H(Oqt=>{"use strict";Object.defineProperty(Oqt,Symbol.toStringTag,{value:"Module"});function Ruo(e,t,r){return e.filter(n=>t.some(a=>r(n,a)))}Oqt.intersectionWith=Ruo});var k3e=H(Mqt=>{"use strict";Object.defineProperty(Mqt,Symbol.toStringTag,{value:"Module"});var Nuo=Wfe(),Duo=Sf();function kuo(e){return Duo.isArrayLike(e)?Nuo.uniq(Array.from(e)):[]}Mqt.uniq=kuo});var Glt=H(Hqt=>{"use strict";Object.defineProperty(Hqt,Symbol.toStringTag,{value:"Module"});var xuo=zq(),Guo=wTn(),Fuo=k3e(),Zuo=Sk();function Luo(e,...t){if(e==null)return[];let r=xuo.last(t),n=Zuo.isEqualsSameValueZero,a=Fuo.uniq;typeof r=="function"&&(n=r,a=Vuo,t.pop());let o=a(Array.from(e));for(let l=0;l{"use strict";Object.defineProperty(Yqt,Symbol.toStringTag,{value:"Module"});function Puo(e){return typeof e=="function"}Yqt.isFunction=Puo});var Jqt=H(Xqt=>{"use strict";Object.defineProperty(Xqt,Symbol.toStringTag,{value:"Module"});$7t();var Wuo=coe(),Ouo=aoe(),Qqt=eM(),Muo=Sf();function Huo(e,t,...r){if(Ouo.isNil(e))return[];let n=Muo.isArrayLike(e)?Array.from(e):Object.values(e),a=[];for(let o=0;o0&&(f=Qqt.get(l,I))}else if(typeof t=="string"&&t.includes(".")){let C=t.split(".").slice(0,-1).join(".");f=Qqt.get(l,C)}a.push(A?.apply(f,r))}return a}Xqt.invokeMap=Huo});var Kqt=H(Uqt=>{"use strict";Object.defineProperty(Uqt,Symbol.toStringTag,{value:"Module"});var Yuo=Sf();function Quo(e,t){return Yuo.isArrayLike(e)?Array.from(e).join(t):""}Uqt.join=Quo});var Flt=H(jqt=>{"use strict";Object.defineProperty(jqt,Symbol.toStringTag,{value:"Module"});var Xuo=bm(),Juo=ooe(),Uuo=Sf();function Kuo(e,t=Xuo.identity,r){if(!e)return r;let n,a=0;Uuo.isArrayLike(e)?(n=Juo.range(0,e.length),r==null&&e.length>0&&(r=e[0],a+=1)):(n=Object.keys(e),r==null&&(r=e[n[0]],a+=1));for(let o=a;o{"use strict";Object.defineProperty(zqt,Symbol.toStringTag,{value:"Module"});var juo=Flt(),zuo=bm(),quo=Sf(),$uo=ioe(),ego=im();function tgo(e,t){if(!quo.isArrayLike(e)&&!$uo.isObjectLike(e))return{};let r=ego.iteratee(t??zuo.identity);return juo.reduce(e,(n,a)=>{let o=r(a);return n[o]=a,n},{})}zqt.keyBy=tgo});var e$t=H($qt=>{"use strict";Object.defineProperty($qt,Symbol.toStringTag,{value:"Module"});var rgo=Sf();function ngo(e,t,r){if(!rgo.isArrayLike(e)||e.length===0)return-1;let n=e.length,a=r??n-1;if(r!=null&&(a=a<0?Math.max(n+a,0):Math.min(a,n-1)),Number.isNaN(t)){for(let o=a;o>=0;o--)if(Number.isNaN(e[o]))return o}return Array.from(e).lastIndexOf(t,a)}$qt.lastIndexOf=ngo});var r$t=H(t$t=>{"use strict";Object.defineProperty(t$t,Symbol.toStringTag,{value:"Module"});var igo=b2(),sgo=$w();function ogo(e,t=0){if(!(!igo.isArrayLikeObject(e)||e.length===0))return t=sgo.toInteger(t),t<0&&(t+=e.length),e[t]}t$t.nth=ogo});var RTn=H(n$t=>{"use strict";Object.defineProperty(n$t,Symbol.toStringTag,{value:"Module"});function TTn(e){return typeof e=="symbol"?1:e===null?2:e===void 0?3:e!==e?4:0}var ago=(e,t,r)=>{if(e!==t){let n=TTn(e),a=TTn(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};n$t.compareValues=ago});var x3e=H(i$t=>{"use strict";Object.defineProperty(i$t,Symbol.toStringTag,{value:"Module"});var cgo=soe(),lgo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ugo=/^\w*$/;function ggo(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||cgo.isSymbol(e)?!0:typeof e=="string"&&(ugo.test(e)||!lgo.test(e))||t!=null&&Object.hasOwn(t,e)}i$t.isKey=ggo});var Zlt=H(s$t=>{"use strict";Object.defineProperty(s$t,Symbol.toStringTag,{value:"Module"});var Ago=RTn(),dgo=x3e(),pgo=$5();function fgo(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(f=>String(f));let a=(f,I)=>{let C=f;for(let b=0;bI==null||f==null?I:typeof f=="object"&&"key"in f?Object.hasOwn(I,f.key)?I[f.key]:a(I,f.path):typeof f=="function"?f(I):Array.isArray(f)?a(I,f):typeof I=="object"?I[f]:I,l=t.map(f=>(Array.isArray(f)&&f.length===1&&(f=f[0]),f==null||typeof f=="function"||Array.isArray(f)||dgo.isKey(f)?f:{key:f,path:pgo.toPath(f)}));return e.map(f=>({original:f,criteria:l.map(I=>o(I,f))})).slice().sort((f,I)=>{for(let C=0;Cf.original)}s$t.orderBy=fgo});var a$t=H(o$t=>{"use strict";Object.defineProperty(o$t,Symbol.toStringTag,{value:"Module"});var Igo=bm(),hgo=Sf(),mgo=im();function Cgo(e,t=Igo.identity){if(!e)return[[],[]];let r=hgo.isArrayLike(e)?e:Object.values(e);t=mgo.iteratee(t);let n=[],a=[];for(let o=0;o{"use strict";Object.defineProperty(c$t,Symbol.toStringTag,{value:"Module"});function _go(e,t){let r=new Set(t),n=0;for(let a=0;a{"use strict";Object.defineProperty(u$t,Symbol.toStringTag,{value:"Module"});var ygo=l$t();function bgo(e,...t){return ygo.pull(e,t)}u$t.pull=bgo});var d$t=H(A$t=>{"use strict";Object.defineProperty(A$t,Symbol.toStringTag,{value:"Module"});var Ego=l$t();function Sgo(e,t=[]){return Ego.pull(e,Array.from(t))}A$t.pullAll=Sgo});var f$t=H(p$t=>{"use strict";Object.defineProperty(p$t,Symbol.toStringTag,{value:"Module"});var vgo=im();function Bgo(e,t,r){let n=vgo.iteratee(r),a=new Set(Array.from(t).map(l=>n(l))),o=0;for(let l=0;l{"use strict";function wgo(e,t){let r=e.length;t==null&&(t=Array(r));for(let n=0;n{"use strict";Object.defineProperty(I$t,Symbol.toStringTag,{value:"Module"});var Tgo=DTn(),Rgo=Sk();function Ngo(e,t,r){if(e?.length==null||t?.length==null)return e;e===t&&(t=Tgo(t));let n=0;r==null&&(r=(l,A)=>Rgo.isEqualsSameValueZero(l,A));let a=Array.isArray(t)?t:Array.from(t),o=a.includes(void 0);for(let l=0;lr(e[l],f))||(e[n++]=e[l]);continue}o||delete e[n++]}return e.length=n,e}I$t.pullAllWith=Ngo});var Llt=H(m$t=>{"use strict";Object.defineProperty(m$t,Symbol.toStringTag,{value:"Module"});var Dgo=eM(),kgo=Sf(),xgo=HSe();function Ggo(e,...t){if(t.length===0)return[];let r=[];for(let a=0;a{"use strict";Object.defineProperty(_$t,Symbol.toStringTag,{value:"Module"});var Fgo=eM(),C$t=C3e(),Zgo=VSe(),Lgo=Kq(),Vgo=$5();function Pgo(e,t){if(e==null)return!0;switch(typeof t){case"symbol":case"number":case"object":{if(Array.isArray(t))return kTn(e,t);if(typeof t=="number"?t=Lgo.toKey(t):typeof t=="object"&&(Object.is(t?.valueOf(),-0)?t="-0":t=String(t)),C$t.isUnsafeProperty(t))return!1;if(e?.[t]===void 0)return!0;try{return delete e[t],!0}catch{return!1}}case"string":{if(e?.[t]===void 0&&Zgo.isDeepKey(t))return kTn(e,Vgo.toPath(t));if(C$t.isUnsafeProperty(t))return!1;try{return delete e[t],!0}catch{return!1}}}}function kTn(e,t){let r=t.length===1?e:Fgo.get(e,t.slice(0,-1)),n=t[t.length-1];if(r?.[n]===void 0)return!0;if(C$t.isUnsafeProperty(n))return!1;try{return delete r[n],!0}catch{return!1}}_$t.unset=Pgo});var $q=H(y$t=>{"use strict";Object.defineProperty(y$t,Symbol.toStringTag,{value:"Module"});function Wgo(e){return Array.isArray(e)}y$t.isArray=Wgo});var E$t=H(b$t=>{"use strict";Object.defineProperty(b$t,Symbol.toStringTag,{value:"Module"});var Ogo=YSe(),xTn=OSe(),Mgo=x3e(),Hgo=Kq(),Ygo=Llt(),Qgo=G3e(),Xgo=$q(),Jgo=$5();function Ugo(e,...t){let r=Ogo.flattenDepth(t,1);if(!e)return Array(r.length);let n=Ygo.at(e,r),a=r.map(o=>xTn.isIndex(o,e.length)?Number(o):o).sort((o,l)=>l-o);for(let o of new Set(a)){if(xTn.isIndex(o,e.length)){Array.prototype.splice.call(e,o,1);continue}if(Mgo.isKey(o,e)){delete e[Hgo.toKey(o)];continue}let l=Xgo.isArray(o)?o:Jgo.toPath(o);Qgo.unset(e,l)}return n}b$t.pullAt=Ugo});var v$t=H(S$t=>{"use strict";Object.defineProperty(S$t,Symbol.toStringTag,{value:"Module"});var Kgo=bm(),jgo=ooe(),zgo=Sf();function qgo(e,t=Kgo.identity,r){if(!e)return r;let n,a;zgo.isArrayLike(e)?(n=jgo.range(0,e.length).reverse(),r==null&&e.length>0?(r=e[e.length-1],a=1):a=0):(n=Object.keys(e).reverse(),r==null?(r=e[n[0]],a=1):a=0);for(let o=a;o{"use strict";Object.defineProperty(B$t,Symbol.toStringTag,{value:"Module"});function $go(e){if(typeof e!="function")throw new TypeError("Expected a function");return function(...t){return!e.apply(this,t)}}B$t.negate=$go});var T$t=H(w$t=>{"use strict";Object.defineProperty(w$t,Symbol.toStringTag,{value:"Module"});var eAo=Dlt(),tAo=bm(),rAo=F3e(),nAo=im();function iAo(e,t=tAo.identity){return eAo.filter(e,rAo.negate(nAo.iteratee(t)))}w$t.reject=iAo});var GTn=H(R$t=>{"use strict";Object.defineProperty(R$t,Symbol.toStringTag,{value:"Module"});function sAo(e,t){let r=e.slice(),n=[],a=0;for(let o=0;o{"use strict";Object.defineProperty(N$t,Symbol.toStringTag,{value:"Module"});var oAo=GTn(),aAo=bm(),cAo=im();function lAo(e,t=aAo.identity){return oAo.remove(e,cAo.iteratee(t))}N$t.remove=lAo});var x$t=H(k$t=>{"use strict";Object.defineProperty(k$t,Symbol.toStringTag,{value:"Module"});function uAo(e){return e==null?e:e.reverse()}k$t.reverse=uAo});var FTn=H(G$t=>{"use strict";Object.defineProperty(G$t,Symbol.toStringTag,{value:"Module"});function gAo(e){let t=Math.floor(Math.random()*e.length);return e[t]}G$t.sample=gAo});var Z$t=H(F$t=>{"use strict";Object.defineProperty(F$t,Symbol.toStringTag,{value:"Module"});var ZTn=FTn(),AAo=SZ(),dAo=Sf();function pAo(e){if(e!=null)return dAo.isArrayLike(e)?ZTn.sample(AAo.toArray(e)):ZTn.sample(Object.values(e))}F$t.sample=pAo});var V$t=H(L$t=>{"use strict";Object.defineProperty(L$t,Symbol.toStringTag,{value:"Module"});function fAo(e,t){if(t==null&&(t=e,e=0),e>=t)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(t-e)+e}L$t.random=fAo});var W$t=H(P$t=>{"use strict";Object.defineProperty(P$t,Symbol.toStringTag,{value:"Module"});var IAo=V$t();function hAo(e,t){return Math.floor(IAo.random(e,t))}P$t.randomInt=hAo});var LTn=H(O$t=>{"use strict";Object.defineProperty(O$t,Symbol.toStringTag,{value:"Module"});var mAo=W$t();function CAo(e,t){if(t>e.length)throw new Error("Size must be less than or equal to the length of array.");let r=new Array(t),n=new Set;for(let a=e.length-t,o=0;a{"use strict";Object.defineProperty(M$t,Symbol.toStringTag,{value:"Module"});var VTn=Q9();function _Ao(e,t,r){return r===void 0&&(r=t,t=void 0),r!==void 0&&(r=VTn.toNumber(r),e=Math.min(e,Number.isNaN(r)?0:r)),t!==void 0&&(t=VTn.toNumber(t),e=Math.max(e,Number.isNaN(t)?0:t)),e}M$t.clamp=_Ao});var PTn=H(H$t=>{"use strict";Object.defineProperty(H$t,Symbol.toStringTag,{value:"Module"});function yAo(e){return e instanceof Map}H$t.isMap=yAo});var Vlt=H(Y$t=>{"use strict";Object.defineProperty(Y$t,Symbol.toStringTag,{value:"Module"});var bAo=PTn();function EAo(e){return bAo.isMap(e)}Y$t.isMap=EAo});var Z3e=H(Q$t=>{"use strict";Object.defineProperty(Q$t,Symbol.toStringTag,{value:"Module"});var SAo=Sf(),vAo=Vlt();function BAo(e){return e==null?[]:SAo.isArrayLike(e)||vAo.isMap(e)?Array.from(e):typeof e=="object"?Object.values(e):[]}Q$t.toArray=BAo});var J$t=H(X$t=>{"use strict";Object.defineProperty(X$t,Symbol.toStringTag,{value:"Module"});var wAo=LTn(),TAo=qq(),RAo=Ofe(),NAo=Z3e(),DAo=$w();function kAo(e,t,r){let n=NAo.toArray(e);return(r?TAo.isIterateeCall(e,t,r):t===void 0)?t=1:t=RAo.clamp(DAo.toInteger(t),0,n.length),wAo.sampleSize(n,t)}X$t.sampleSize=kAo});var WTn=H(U$t=>{"use strict";Object.defineProperty(U$t,Symbol.toStringTag,{value:"Module"});function xAo(e){let t=e.slice();for(let r=t.length-1;r>=1;r--){let n=Math.floor(Math.random()*(r+1));[t[r],t[n]]=[t[n],t[r]]}return t}U$t.shuffle=xAo});var Plt=H(K$t=>{"use strict";Object.defineProperty(K$t,Symbol.toStringTag,{value:"Module"});function GAo(e){return e==null?[]:Object.values(e)}K$t.values=GAo});var QSe=H(j$t=>{"use strict";Object.defineProperty(j$t,Symbol.toStringTag,{value:"Module"});function FAo(e){return e==null}j$t.isNil=FAo});var $$t=H(q$t=>{"use strict";Object.defineProperty(q$t,Symbol.toStringTag,{value:"Module"});var z$t=WTn(),ZAo=Plt(),LAo=$q(),VAo=Sf(),PAo=QSe(),WAo=ioe();function OAo(e){return PAo.isNil(e)?[]:LAo.isArray(e)?z$t.shuffle(e):VAo.isArrayLike(e)?z$t.shuffle(Array.from(e)):WAo.isObjectLike(e)?z$t.shuffle(ZAo.values(e)):[]}q$t.shuffle=OAo});var ter=H(eer=>{"use strict";Object.defineProperty(eer,Symbol.toStringTag,{value:"Module"});var MAo=aoe();function HAo(e){return MAo.isNil(e)?0:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}eer.size=HAo});var ner=H(rer=>{"use strict";Object.defineProperty(rer,Symbol.toStringTag,{value:"Module"});var YAo=qq(),QAo=Sf(),OTn=$w();function XAo(e,t,r){if(!QAo.isArrayLike(e))return[];let n=e.length;r===void 0?r=n:typeof r!="number"&&YAo.isIterateeCall(e,t,r)&&(t=0,r=n),t=OTn.toInteger(t),r=OTn.toInteger(r),t<0?t=Math.max(n+t,0):t=Math.min(t,n),r<0?r=Math.max(n+r,0):r=Math.min(r,n);let a=Math.max(r-t,0),o=new Array(a);for(let l=0;l{"use strict";Object.defineProperty(ier,Symbol.toStringTag,{value:"Module"});var JAo=bm(),UAo=nX(),KAo=OK(),jAo=MK();function zAo(e,t,r){if(!e)return!1;r!=null&&(t=void 0),t==null&&(t=JAo.identity);let n=Array.isArray(e)?e:Object.values(e);switch(typeof t){case"function":{if(!Array.isArray(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(oer,Symbol.toStringTag,{value:"Module"});var qAo=Zlt(),$Ao=m3e(),MTn=qq();function edo(e,...t){let r=t.length;return r>1&&MTn.isIterateeCall(e,t[0],t[1])?t=[]:r>2&&MTn.isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),qAo.orderBy(e,$Ao.flatten(t),["asc"])}oer.sortBy=edo});var Wlt=H(cer=>{"use strict";Object.defineProperty(cer,Symbol.toStringTag,{value:"Module"});function tdo(e){return e===null}cer.isNull=tdo});var uer=H(ler=>{"use strict";Object.defineProperty(ler,Symbol.toStringTag,{value:"Module"});function rdo(e){return e===void 0}ler.isUndefined=rdo});var Olt=H(ger=>{"use strict";Object.defineProperty(ger,Symbol.toStringTag,{value:"Module"});function ndo(e){return Number.isNaN(e)}ger.isNaN=ndo});var L3e=H(Aer=>{"use strict";Object.defineProperty(Aer,Symbol.toStringTag,{value:"Module"});var HTn=Wlt(),YTn=uer(),ido=HK(),QTn=Olt(),sdo=QSe(),XTn=soe(),odo=im(),ado=4294967295,cdo=ado-1;function ldo(e,t,r=ido.identity,n){if(sdo.isNil(e)||e.length===0)return 0;let a=0,o=e.length,l=odo.iteratee(r),A=l(t),f=QTn.isNaN(A),I=HTn.isNull(A),C=XTn.isSymbol(A),b=YTn.isUndefined(A);for(;a{"use strict";Object.defineProperty(der,Symbol.toStringTag,{value:"Module"});function udo(e){return typeof e=="symbol"}der.isSymbol=udo});var V3e=H(fer=>{"use strict";Object.defineProperty(fer,Symbol.toStringTag,{value:"Module"});function gdo(e){return typeof e=="number"||e instanceof Number}fer.isNumber=gdo});var Mlt=H(Ier=>{"use strict";Object.defineProperty(Ier,Symbol.toStringTag,{value:"Module"});var Ado=L3e(),ddo=aoe(),pdo=Wlt(),fdo=per(),Ido=V3e(),hdo=4294967295,mdo=hdo>>>1;function Cdo(e,t){if(ddo.isNil(e))return 0;let r=0,n=e.length;if(Ido.isNumber(t)&&t===t&&n<=mdo){for(;r>>1,o=e[a];!pdo.isNull(o)&&!fdo.isSymbol(o)&&oa)}Ier.sortedIndex=Cdo});var mer=H(her=>{"use strict";Object.defineProperty(her,Symbol.toStringTag,{value:"Module"});var _do=Mlt(),ydo=Sk();function bdo(e,t){if(!e?.length)return-1;let r=_do.sortedIndex(e,t);return r{"use strict";Object.defineProperty(Cer,Symbol.toStringTag,{value:"Module"});var Edo=L3e();function Sdo(e,t,r){return Edo.sortedIndexBy(e,t,r,!0)}Cer.sortedLastIndexBy=Sdo});var Ylt=H(_er=>{"use strict";Object.defineProperty(_er,Symbol.toStringTag,{value:"Module"});var vdo=Hlt(),Bdo=aoe(),wdo=Wlt(),Tdo=per(),Rdo=V3e(),Ndo=4294967295,Ddo=Ndo>>>1;function kdo(e,t){if(Bdo.isNil(e))return 0;let r=e.length;if(!Rdo.isNumber(t)||Number.isNaN(t)||r>Ddo)return vdo.sortedLastIndexBy(e,t,a=>a);let n=0;for(;n>>1,o=e[a];!wdo.isNull(o)&&!Tdo.isSymbol(o)&&o<=t?n=a+1:r=a}return r}_er.sortedLastIndex=kdo});var ber=H(yer=>{"use strict";Object.defineProperty(yer,Symbol.toStringTag,{value:"Module"});var xdo=Ylt(),Gdo=Sk();function Fdo(e,t){if(!e?.length)return-1;let r=xdo.sortedLastIndex(e,t)-1;return r>=0&&Gdo.isEqualsSameValueZero(e[r],t)?r:-1}yer.sortedLastIndexOf=Fdo});var JTn=H(Eer=>{"use strict";Object.defineProperty(Eer,Symbol.toStringTag,{value:"Module"});function Zdo(e){return e.slice(1)}Eer.tail=Zdo});var ver=H(Ser=>{"use strict";Object.defineProperty(Ser,Symbol.toStringTag,{value:"Module"});var Ldo=JTn(),Vdo=SZ(),Pdo=Sf();function Wdo(e){return Pdo.isArrayLike(e)?Ldo.tail(Vdo.toArray(e)):[]}Ser.tail=Wdo});var UTn=H(Ber=>{"use strict";Object.defineProperty(Ber,Symbol.toStringTag,{value:"Module"});var Odo=$w();function Mdo(e,t,r){return t=r||t===void 0?1:Odo.toInteger(t),e.slice(0,t)}Ber.take=Mdo});var Ter=H(wer=>{"use strict";Object.defineProperty(wer,Symbol.toStringTag,{value:"Module"});var Hdo=UTn(),Ydo=SZ(),Qdo=Sf(),Xdo=$w();function Jdo(e,t=1,r){return t=r?1:Xdo.toInteger(t),t<1||!Qdo.isArrayLike(e)?[]:Hdo.take(Ydo.toArray(e),t)}wer.take=Jdo});var KTn=H(Rer=>{"use strict";Object.defineProperty(Rer,Symbol.toStringTag,{value:"Module"});var Udo=$w();function Kdo(e,t,r){return t=r||t===void 0?1:Udo.toInteger(t),t<=0||e.length===0?[]:e.slice(-t)}Rer.takeRight=Kdo});var Der=H(Ner=>{"use strict";Object.defineProperty(Ner,Symbol.toStringTag,{value:"Module"});var jdo=KTn(),zdo=SZ(),qdo=Sf(),$do=$w();function epo(e,t=1,r){return t=r?1:$do.toInteger(t),t<=0||!qdo.isArrayLike(e)?[]:jdo.takeRight(zdo.toArray(e),t)}Ner.takeRight=epo});var jTn=H(ker=>{"use strict";Object.defineProperty(ker,Symbol.toStringTag,{value:"Module"});function tpo(e){return(...t)=>!e(...t)}ker.negate=tpo});var Ger=H(xer=>{"use strict";Object.defineProperty(xer,Symbol.toStringTag,{value:"Module"});var rpo=bm(),npo=jTn(),ipo=SZ(),spo=b2(),opo=im();function apo(e,t){if(!spo.isArrayLikeObject(e))return[];let r=ipo.toArray(e),n=r.findLastIndex(npo.negate(opo.iteratee(t??rpo.identity)));return r.slice(n+1)}xer.takeRightWhile=apo});var Zer=H(Fer=>{"use strict";Object.defineProperty(Fer,Symbol.toStringTag,{value:"Module"});var cpo=SZ(),lpo=HK(),upo=F3e(),gpo=b2(),Apo=im();function dpo(e,t){if(!gpo.isArrayLikeObject(e))return[];let r=cpo.toArray(e),n=r.findIndex(upo.negate(Apo.iteratee(t??lpo.identity)));return n===-1?r:r.slice(0,n)}Fer.takeWhile=dpo});var Ver=H(Ler=>{"use strict";Object.defineProperty(Ler,Symbol.toStringTag,{value:"Module"});var ppo=D3e(),fpo=Wfe(),Ipo=b2();function hpo(...e){let t=e.filter(Ipo.isArrayLikeObject),r=ppo.flatMapDepth(t,n=>Array.from(n),1);return fpo.uniq(r)}Ler.union=hpo});var Wer=H(Per=>{"use strict";Object.defineProperty(Per,Symbol.toStringTag,{value:"Module"});function mpo(e,t){let r=new Map;for(let n=0;n{"use strict";Object.defineProperty(Oer,Symbol.toStringTag,{value:"Module"});function Cpo(e,t){return function(...r){return e.apply(this,r.slice(0,t))}}Oer.ary=Cpo});var Xlt=H(Mer=>{"use strict";Object.defineProperty(Mer,Symbol.toStringTag,{value:"Module"});var _po=T3e(),ypo=Wfe(),bpo=Wer(),Epo=Qlt(),Spo=R3e(),vpo=b2(),Bpo=im();function wpo(...e){let t=_po.last(e),r=Spo.flattenArrayLike(e);return vpo.isArrayLikeObject(t)||t==null?ypo.uniq(r):bpo.uniqBy(r,Epo.ary(Bpo.iteratee(t),1))}Mer.unionBy=wpo});var Yer=H(Her=>{"use strict";Object.defineProperty(Her,Symbol.toStringTag,{value:"Module"});function Tpo(e,t){let r=[];for(let n=0;n!t(l,a))&&r.push(a)}return r}Her.uniqWith=Tpo});var Jlt=H(Qer=>{"use strict";Object.defineProperty(Qer,Symbol.toStringTag,{value:"Module"});var Rpo=T3e(),Npo=Wfe(),Dpo=Yer(),kpo=R3e(),xpo=b2();function Gpo(...e){let t=Rpo.last(e),r=kpo.flattenArrayLike(e);return xpo.isArrayLikeObject(t)||t==null?Npo.uniq(r):Dpo.uniqWith(r,t)}Qer.unionWith=Gpo});var Jer=H(Xer=>{"use strict";Object.defineProperty(Xer,Symbol.toStringTag,{value:"Module"});var Fpo=Wer(),Zpo=Qlt(),Lpo=bm(),Vpo=b2(),Ppo=im();function Wpo(e,t=Lpo.identity){return Vpo.isArrayLikeObject(e)?Fpo.uniqBy(Array.from(e),Zpo.ary(Ppo.iteratee(t),1)):[]}Xer.uniqBy=Wpo});var Ker=H(Uer=>{"use strict";Object.defineProperty(Uer,Symbol.toStringTag,{value:"Module"});var Opo=Yer(),Mpo=k3e(),Hpo=Sf();function Ypo(e,t){return Hpo.isArrayLike(e)?typeof t=="function"?Opo.uniqWith(Array.from(e),t):Mpo.uniq(Array.from(e)):[]}Uer.uniqWith=Ypo});var zer=H(jer=>{"use strict";Object.defineProperty(jer,Symbol.toStringTag,{value:"Module"});function Qpo(e){let t=0;for(let n=0;nt&&(t=e[n].length);let r=new Array(t);for(let n=0;n{"use strict";Object.defineProperty(qer,Symbol.toStringTag,{value:"Module"});var Xpo=zer(),Jpo=$q(),zTn=b2();function Upo(e){return!zTn.isArrayLikeObject(e)||!e.length?[]:(e=Jpo.isArray(e)?e:Array.from(e),e=e.filter(t=>zTn.isArrayLikeObject(t)),Xpo.unzip(e))}qer.unzip=Upo});var etr=H($er=>{"use strict";Object.defineProperty($er,Symbol.toStringTag,{value:"Module"});var qTn=zer(),Kpo=$q(),jpo=b2();function zpo(e,t){if(!jpo.isArrayLikeObject(e)||!e.length)return[];let r=Kpo.isArray(e)?qTn.unzip(e):qTn.unzip(Array.from(e,a=>Array.from(a)));if(!t)return r;let n=new Array(r.length);for(let a=0;a{"use strict";Object.defineProperty(ttr,Symbol.toStringTag,{value:"Module"});var qpo=w3e();function $po(e,...t){return qpo.difference(e,t)}ttr.without=$po});var ntr=H(rtr=>{"use strict";Object.defineProperty(rtr,Symbol.toStringTag,{value:"Module"});var efo=$Tn(),tfo=b2();function rfo(e,...t){return tfo.isArrayLikeObject(e)?efo.without(Array.from(e),...t):[]}rtr.without=rfo});var str=H(itr=>{"use strict";Object.defineProperty(itr,Symbol.toStringTag,{value:"Module"});var nfo=b2(),ifo=Z3e();function sfo(...e){let t=new Map;for(let n=0;n{"use strict";Object.defineProperty(otr,Symbol.toStringTag,{value:"Module"});function ofo(e,t,r=1,{partialWindows:n=!1}={}){if(t<=0||!Number.isInteger(t))throw new Error("Size must be a positive integer.");if(r<=0||!Number.isInteger(r))throw new Error("Step must be a positive integer.");let a=[],o=n?e.length:e.length-t+1;for(let l=0;l{"use strict";Object.defineProperty(ctr,Symbol.toStringTag,{value:"Module"});var afo=Blt(),cfo=xlt(),lfo=zq(),eRn=Xlt(),ufo=atr(),gfo=bm(),tRn=b2(),Afo=im();function dfo(...e){let t=lfo.last(e),r=gfo.identity;!tRn.isArrayLikeObject(t)&&t!=null&&(r=Afo.iteratee(t),e=e.slice(0,-1));let n=e.filter(tRn.isArrayLikeObject),a=eRn.unionBy(...n,r),o=ufo.windowed(n,2).map(([l,A])=>cfo.intersectionBy(l,A,r));return afo.differenceBy(a,eRn.unionBy(...o,r),r)}ctr.xorBy=dfo});var gtr=H(utr=>{"use strict";Object.defineProperty(utr,Symbol.toStringTag,{value:"Module"});var pfo=wlt(),ffo=Glt(),Ifo=zq(),rRn=Jlt(),hfo=atr(),mfo=b2();function Cfo(...e){let t=Ifo.last(e),r=(l,A)=>l===A;typeof t=="function"&&(r=t,e=e.slice(0,-1));let n=e.filter(mfo.isArrayLikeObject),a=rRn.unionWith(...n,r),o=hfo.windowed(n,2).map(([l,A])=>ffo.intersectionWith(l,A,r));return pfo.differenceWith(a,rRn.unionWith(...o,r),r)}utr.xorWith=Cfo});var dtr=H(Atr=>{"use strict";Object.defineProperty(Atr,Symbol.toStringTag,{value:"Module"});function _fo(...e){let t=0;for(let a=0;at&&(t=e[a].length);let r=e.length,n=Array(t);for(let a=0;a{"use strict";Object.defineProperty(ftr,Symbol.toStringTag,{value:"Module"});var yfo=dtr(),bfo=b2();function Efo(...e){return e.length?yfo.zip(...e.filter(t=>bfo.isArrayLikeObject(t))):[]}ftr.zip=Efo});var Klt=H(htr=>{"use strict";Object.defineProperty(htr,Symbol.toStringTag,{value:"Module"});var Sfo=Sk(),vfo=(e,t,r)=>{let n=e[t];(!(Object.hasOwn(e,t)&&Sfo.isEqualsSameValueZero(n,r))||r===void 0&&!(t in e))&&(e[t]=r)};htr.assignValue=vfo});var Ctr=H(mtr=>{"use strict";Object.defineProperty(mtr,Symbol.toStringTag,{value:"Module"});var Bfo=Klt();function wfo(e=[],t=[]){let r={};for(let n=0;n{"use strict";Object.defineProperty(_tr,Symbol.toStringTag,{value:"Module"});var Tfo=eM(),Rfo=C3e(),Nfo=Klt(),Dfo=OSe(),kfo=x3e(),xfo=Kq(),nRn=tM(),Gfo=$5();function Ffo(e,t,r,n){if(e==null&&!nRn.isObject(e))return e;let a;kfo.isKey(t,e)?a=[t]:Array.isArray(t)?a=t:a=Gfo.toPath(t);let o=r(Tfo.get(e,a)),l=e;for(let A=0;A{"use strict";Object.defineProperty(ytr,Symbol.toStringTag,{value:"Module"});var Zfo=XSe();function Lfo(e,t,r){return Zfo.updateWith(e,t,()=>r,()=>{})}ytr.set=Lfo});var Etr=H(btr=>{"use strict";Object.defineProperty(btr,Symbol.toStringTag,{value:"Module"});var Vfo=dtr(),Pfo=P3e(),iRn=Sf();function Wfo(e,t){let r={};if(!iRn.isArrayLike(e))return r;iRn.isArrayLike(t)||(t=[]);let n=Vfo.zip(Array.from(e),Array.from(t));for(let a=0;a{"use strict";Object.defineProperty(Str,Symbol.toStringTag,{value:"Module"});var Ofo=Ult(),Mfo=coe();function Hfo(...e){let t=e.pop();if(Mfo.isFunction(t)||(e.push(t),t=void 0),!e?.length)return[];let r=Ofo.unzip(e);return t==null?r:r.map(n=>t(...n))}Str.zipWith=Hfo});var wtr=H(Btr=>{"use strict";Object.defineProperty(Btr,Symbol.toStringTag,{value:"Module"});var Yfo=$w();function Qfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");return e=Yfo.toInteger(e),function(...r){if(--e<1)return t.apply(this,r)}}Btr.after=Qfo});var jlt=H(Ttr=>{"use strict";Object.defineProperty(Ttr,Symbol.toStringTag,{value:"Module"});var Xfo=Qlt();function Jfo(e,t=e.length,r){return r&&(t=e.length),(Number.isNaN(t)||t<0)&&(t=0),Xfo.ary(e,t)}Ttr.ary=Jfo});var zlt=H(Rtr=>{"use strict";Object.defineProperty(Rtr,Symbol.toStringTag,{value:"Module"});function Ufo(e,...t){try{return e(...t)}catch(r){return r instanceof Error?r:new Error(r)}}Rtr.attempt=Ufo});var Dtr=H(Ntr=>{"use strict";Object.defineProperty(Ntr,Symbol.toStringTag,{value:"Module"});var Kfo=$w();function jfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");let r;return e=Kfo.toInteger(e),function(...n){return--e>0&&(r=t.apply(this,n)),e<=1&&t&&(t=void 0),r}}Ntr.before=jfo});var Gtr=H(xtr=>{"use strict";Object.defineProperty(xtr,Symbol.toStringTag,{value:"Module"});function ktr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ztr,Symbol.toStringTag,{value:"Module"});function Ftr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ptr,Symbol.toStringTag,{value:"Module"});function W3e(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===W3e.placeholder),l=a.length-o.length;return lA===W3e.placeholder),l=a.length-o.length;return a=$fo(a,r),l{"use strict";Object.defineProperty(Mtr,Symbol.toStringTag,{value:"Module"});function JSe(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===JSe.placeholder),l=a.length-o.length;return lA===JSe.placeholder),l=a.length-o.length;return a=eIo(a,r),ll===JSe.placeholder).length,n=Math.max(e.length-r,0),a=[],o=0;for(let l=0;l{"use strict";Object.defineProperty(Ytr,Symbol.toStringTag,{value:"Module"});function tIo(e,t,{signal:r,edges:n}={}){let a,o=null,l=n!=null&&n.includes("leading"),A=n==null||n.includes("trailing"),f=()=>{o!==null&&(e.apply(a,o),a=void 0,o=null)},I=()=>{A&&f(),N()},C=null,b=()=>{C!=null&&clearTimeout(C),C=setTimeout(()=>{C=null,I()},t)},E=()=>{C!==null&&(clearTimeout(C),C=null)},N=()=>{E(),a=void 0,o=null},B=()=>{f()},F=function(...Q){if(r?.aborted)return;a=this,o=Q;let X=C==null;b(),l&&X&&f()};return F.schedule=b,F.cancel=N,F.flush=B,r?.addEventListener("abort",N,{once:!0}),F}Ytr.debounce=tIo});var qlt=H(Qtr=>{"use strict";Object.defineProperty(Qtr,Symbol.toStringTag,{value:"Module"});var rIo=aRn();function nIo(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:o}=r,l=Array(2);n&&(l[0]="leading"),a&&(l[1]="trailing");let A,f=null,I=rIo.debounce(function(...E){A=e.apply(this,E),f=null},t,{edges:l}),C=function(...E){return o!=null&&(f===null&&(f=Date.now()),Date.now()-f>=o)?(A=e.apply(this,E),f=Date.now(),I.cancel(),I.schedule(),A):(I.apply(this,E),A)},b=()=>(I.flush(),A);return C.cancel=I.cancel,C.flush=b,C}Qtr.debounce=nIo});var Jtr=H(Xtr=>{"use strict";Object.defineProperty(Xtr,Symbol.toStringTag,{value:"Module"});function iIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,1,...t)}Xtr.defer=iIo});var Ktr=H(Utr=>{"use strict";Object.defineProperty(Utr,Symbol.toStringTag,{value:"Module"});var sIo=Q9();function oIo(e,t,...r){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,sIo.toNumber(t)||0,...r)}Utr.delay=oIo});var ztr=H(jtr=>{"use strict";Object.defineProperty(jtr,Symbol.toStringTag,{value:"Module"});function aIo(e){return function(...t){return e.apply(this,t.reverse())}}jtr.flip=aIo});var $tr=H(qtr=>{"use strict";Object.defineProperty(qtr,Symbol.toStringTag,{value:"Module"});function cIo(...e){return function(...t){let r=e.length?e[0].apply(this,t):t[0];for(let n=1;n{"use strict";Object.defineProperty(trr,Symbol.toStringTag,{value:"Module"});var lIo=m3e(),uIo=$tr();function gIo(...e){let t=lIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return uIo.flow(...t)}trr.flow=gIo});var cRn=H(nrr=>{"use strict";Object.defineProperty(nrr,Symbol.toStringTag,{value:"Module"});var AIo=$tr();function dIo(...e){return AIo.flow(...e.reverse())}nrr.flowRight=dIo});var srr=H(irr=>{"use strict";Object.defineProperty(irr,Symbol.toStringTag,{value:"Module"});var pIo=m3e(),fIo=cRn();function IIo(...e){let t=pIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return fIo.flowRight(...t)}irr.flowRight=IIo});var crr=H(arr=>{"use strict";Object.defineProperty(arr,Symbol.toStringTag,{value:"Module"});function orr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");let r=function(...a){let o=t?t.apply(this,a):a[0],l=r.cache;if(l.has(o))return l.get(o);let A=e.apply(this,a);return r.cache=l.set(o,A)||l,A},n=orr.Cache||Map;return r.cache=new n,r}orr.Cache=Map;arr.memoize=orr});var urr=H(lrr=>{"use strict";Object.defineProperty(lrr,Symbol.toStringTag,{value:"Module"});var hIo=$w();function mIo(e=0){return function(...t){return t.at(hIo.toInteger(e))}}lrr.nthArg=mIo});var lRn=H(grr=>{"use strict";Object.defineProperty(grr,Symbol.toStringTag,{value:"Module"});function CIo(e){let t=!1,r;return function(...n){return t||(t=!0,r=e(...n)),r}}grr.once=CIo});var drr=H(Arr=>{"use strict";Object.defineProperty(Arr,Symbol.toStringTag,{value:"Module"});var _Io=lRn();function yIo(e){return _Io.once(e)}Arr.once=yIo});var frr=H(prr=>{"use strict";Object.defineProperty(prr,Symbol.toStringTag,{value:"Module"});var bIo=bm(),EIo=im();function SIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");let r=t.flat();return function(...n){let a=Math.min(n.length,r.length),o=[...n];for(let l=0;l{"use strict";Object.defineProperty($lt,Symbol.toStringTag,{value:"Module"});function uRn(e,...t){return gRn(e,ARn,...t)}function gRn(e,t,...r){let n=function(...a){let o=0,l=r.slice().map(f=>f===t?a[o++]:f),A=a.slice(o);return e.apply(this,l.concat(A))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var ARn=Symbol("partial.placeholder");uRn.placeholder=ARn;$lt.partial=uRn;$lt.partialImpl=gRn});var mrr=H(hrr=>{"use strict";Object.defineProperty(hrr,Symbol.toStringTag,{value:"Module"});var vIo=dRn();function Irr(e,...t){return vIo.partialImpl(e,Irr.placeholder,...t)}Irr.placeholder=Symbol("compat.partial.placeholder");hrr.partial=Irr});var hRn=H(eut=>{"use strict";Object.defineProperty(eut,Symbol.toStringTag,{value:"Module"});function pRn(e,...t){return fRn(e,IRn,...t)}function fRn(e,t,...r){let n=function(...a){let o=r.filter(C=>C===t).length,l=Math.max(a.length-o,0),A=a.slice(0,l),f=l,I=r.slice().map(C=>C===t?a[f++]:C);return e.apply(this,A.concat(I))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var IRn=Symbol("partialRight.placeholder");pRn.placeholder=IRn;eut.partialRight=pRn;eut.partialRightImpl=fRn});var yrr=H(_rr=>{"use strict";Object.defineProperty(_rr,Symbol.toStringTag,{value:"Module"});var BIo=hRn();function Crr(e,...t){return BIo.partialRightImpl(e,Crr.placeholder,...t)}Crr.placeholder=Symbol("compat.partialRight.placeholder");_rr.partialRight=Crr});var Err=H(brr=>{"use strict";Object.defineProperty(brr,Symbol.toStringTag,{value:"Module"});var wIo=Pfe();function TIo(e,...t){let r=wIo.flatten(t);return function(...n){let a=r.map(o=>n[o]).slice(0,n.length);for(let o=a.length;o{"use strict";Object.defineProperty(Srr,Symbol.toStringTag,{value:"Module"});function RIo(e,t=e.length-1){return function(...r){let n=r.slice(t),a=r.slice(0,t);for(;a.length{"use strict";Object.defineProperty(vrr,Symbol.toStringTag,{value:"Module"});var NIo=mRn();function DIo(e,t=e.length-1){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=e.length-1),NIo.rest(e,t)}vrr.rest=DIo});var Trr=H(wrr=>{"use strict";Object.defineProperty(wrr,Symbol.toStringTag,{value:"Module"});function kIo(e,t=0){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=0),function(...r){let n=r[t],a=r.slice(0,t);return n&&a.push(...n),e.apply(this,a)}}wrr.spread=kIo});var Nrr=H(Rrr=>{"use strict";Object.defineProperty(Rrr,Symbol.toStringTag,{value:"Module"});var xIo=qlt();function GIo(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return xIo.debounce(e,t,{leading:n,maxWait:t,trailing:a})}Rrr.throttle=GIo});var krr=H(Drr=>{"use strict";Object.defineProperty(Drr,Symbol.toStringTag,{value:"Module"});var FIo=jlt();function ZIo(e){return FIo.ary(e,1)}Drr.unary=ZIo});var Grr=H(xrr=>{"use strict";Object.defineProperty(xrr,Symbol.toStringTag,{value:"Module"});var LIo=bm(),VIo=coe();function PIo(e,t){return function(...r){return(VIo.isFunction(t)?t:LIo.identity).apply(this,[e,...r])}}xrr.wrap=PIo});var Zrr=H(Frr=>{"use strict";Object.defineProperty(Frr,Symbol.toStringTag,{value:"Module"});var CRn=Q9(),_Rn=qy();function WIo(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=_Rn.toString(e),t=_Rn.toString(t)):(e=CRn.toNumber(e),t=CRn.toNumber(t)),e+t)}Frr.add=WIo});var tut=H(Lrr=>{"use strict";Object.defineProperty(Lrr,Symbol.toStringTag,{value:"Module"});function OIo(e,t,r=0){if(t=Number(t),Object.is(t,-0)&&(t="-0"),r=Math.min(Number.parseInt(r,10),292),r){let[n,a=0]=t.toString().split("e"),o=Math[e](+`${n}e${Number(a)+r}`);Object.is(o,-0)&&(o="-0");let[l,A=0]=o.toString().split("e");return+`${l}e${Number(A)-r}`}return Math[e](Number(t))}Lrr.decimalAdjust=OIo});var Prr=H(Vrr=>{"use strict";Object.defineProperty(Vrr,Symbol.toStringTag,{value:"Module"});var MIo=tut();function HIo(e,t=0){return MIo.decimalAdjust("ceil",e,t)}Vrr.ceil=HIo});var Orr=H(Wrr=>{"use strict";Object.defineProperty(Wrr,Symbol.toStringTag,{value:"Module"});var yRn=Q9(),bRn=qy();function YIo(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=bRn.toString(e),t=bRn.toString(t)):(e=yRn.toNumber(e),t=yRn.toNumber(t)),e/t)}Wrr.divide=YIo});var Hrr=H(Mrr=>{"use strict";Object.defineProperty(Mrr,Symbol.toStringTag,{value:"Module"});var QIo=tut();function XIo(e,t=0){return QIo.decimalAdjust("floor",e,t)}Mrr.floor=XIo});var ERn=H(Yrr=>{"use strict";Object.defineProperty(Yrr,Symbol.toStringTag,{value:"Module"});function JIo(e,t,r){if(r==null&&(r=t,t=0),t>=r)throw new Error("The maximum value must be greater than the minimum value.");return t<=e&&e{"use strict";Object.defineProperty(Qrr,Symbol.toStringTag,{value:"Module"});var UIo=ERn();function KIo(e,t,r){return t||(t=0),r!=null&&!r&&(r=0),t!=null&&typeof t!="number"&&(t=Number(t)),r==null&&t===0||(r!=null&&typeof r!="number"&&(r=Number(r)),r!=null&&t>r&&([t,r]=[r,t]),t===r)?!1:UIo.inRange(e,t,r)}Qrr.inRange=KIo});var Urr=H(Jrr=>{"use strict";Object.defineProperty(Jrr,Symbol.toStringTag,{value:"Module"});function jIo(e){if(!e||e.length===0)return;let t;for(let r=0;rt)&&(t=n)}return t}Jrr.max=jIo});var SRn=H(Krr=>{"use strict";Object.defineProperty(Krr,Symbol.toStringTag,{value:"Module"});function zIo(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;an&&(n=l,r=o)}return r}Krr.maxBy=zIo});var zrr=H(jrr=>{"use strict";Object.defineProperty(jrr,Symbol.toStringTag,{value:"Module"});var qIo=SRn(),$Io=bm(),eho=im();function tho(e,t){if(e!=null)return qIo.maxBy(Array.from(e),eho.iteratee(t??$Io.identity))}jrr.maxBy=tho});var rut=H(qrr=>{"use strict";Object.defineProperty(qrr,Symbol.toStringTag,{value:"Module"});var rho=im();function nho(e,t){if(!e||!e.length)return 0;t!=null&&(t=rho.iteratee(t));let r;for(let n=0;n{"use strict";Object.defineProperty($rr,Symbol.toStringTag,{value:"Module"});var iho=rut();function sho(e){return iho.sumBy(e)}$rr.sum=sho});var tnr=H(enr=>{"use strict";Object.defineProperty(enr,Symbol.toStringTag,{value:"Module"});var oho=nut();function aho(e){let t=e?e.length:0;return t===0?NaN:oho.sum(e)/t}enr.mean=aho});var vRn=H(rnr=>{"use strict";Object.defineProperty(rnr,Symbol.toStringTag,{value:"Module"});function cho(e,t){let r=0;for(let n=0;n{"use strict";Object.defineProperty(nnr,Symbol.toStringTag,{value:"Module"});var lho=vRn();function uho(e,t){return lho.sumBy(e,r=>t(r))/e.length}nnr.meanBy=uho});var snr=H(inr=>{"use strict";Object.defineProperty(inr,Symbol.toStringTag,{value:"Module"});var gho=bm(),Aho=BRn(),dho=im();function pho(e,t){return e==null?NaN:Aho.meanBy(Array.from(e),dho.iteratee(t??gho.identity))}inr.meanBy=pho});var anr=H(onr=>{"use strict";Object.defineProperty(onr,Symbol.toStringTag,{value:"Module"});function fho(e){if(!e||e.length===0)return;let t;for(let r=0;r{"use strict";Object.defineProperty(cnr,Symbol.toStringTag,{value:"Module"});function Iho(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;a{"use strict";Object.defineProperty(lnr,Symbol.toStringTag,{value:"Module"});var hho=wRn(),mho=bm(),Cho=im();function _ho(e,t){if(e!=null)return hho.minBy(Array.from(e),Cho.iteratee(t??mho.identity))}lnr.minBy=_ho});var Anr=H(gnr=>{"use strict";Object.defineProperty(gnr,Symbol.toStringTag,{value:"Module"});var TRn=Q9(),RRn=qy();function yho(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=RRn.toString(e),t=RRn.toString(t)):(e=TRn.toNumber(e),t=TRn.toNumber(t)),e*t)}gnr.multiply=yho});var pnr=H(dnr=>{"use strict";Object.defineProperty(dnr,Symbol.toStringTag,{value:"Module"});function bho(e,t=0,r){return r&&(t=0),Number.parseInt(e,t)}dnr.parseInt=bho});var Inr=H(fnr=>{"use strict";Object.defineProperty(fnr,Symbol.toStringTag,{value:"Module"});var NRn=Ofe(),Eho=V$t(),Sho=W$t();function vho(...e){let t=0,r=1,n=!1;switch(e.length){case 1:{typeof e[0]=="boolean"?n=e[0]:r=e[0];break}case 2:typeof e[1]=="boolean"?(r=e[0],n=e[1]):(t=e[0],r=e[1]);case 3:typeof e[2]=="object"&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,r=e[0],n=!1):(t=e[0],r=e[1],n=e[2])}return typeof t!="number"&&(t=Number(t)),typeof r!="number"&&(t=Number(r)),t||(t=0),r||(r=0),t>r&&([t,r]=[r,t]),t=NRn.clamp(t,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),r=NRn.clamp(r,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),t===r?t:n?Eho.random(t,r+1):Sho.randomInt(t,r+1)}fnr.random=vho});var Cnr=H(mnr=>{"use strict";Object.defineProperty(mnr,Symbol.toStringTag,{value:"Module"});var Bho=qq(),hnr=MSe();function who(e,t,r){r&&typeof r!="number"&&Bho.isIterateeCall(e,t,r)&&(t=r=void 0),e=hnr.toFinite(e),t===void 0?(t=e,e=0):t=hnr.toFinite(t),r=r===void 0?e{"use strict";Object.defineProperty(ynr,Symbol.toStringTag,{value:"Module"});var Tho=qq(),_nr=MSe();function Rho(e,t,r){r&&typeof r!="number"&&Tho.isIterateeCall(e,t,r)&&(t=r=void 0),e=_nr.toFinite(e),t===void 0?(t=e,e=0):t=_nr.toFinite(t),r=r===void 0?e=0;o--)a[o]=e,e+=r;return a}ynr.rangeRight=Rho});var Snr=H(Enr=>{"use strict";Object.defineProperty(Enr,Symbol.toStringTag,{value:"Module"});var Nho=tut();function Dho(e,t=0){return Nho.decimalAdjust("round",e,t)}Enr.round=Dho});var Bnr=H(vnr=>{"use strict";Object.defineProperty(vnr,Symbol.toStringTag,{value:"Module"});var DRn=Q9(),kRn=qy();function kho(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=kRn.toString(e),t=kRn.toString(t)):(e=DRn.toNumber(e),t=DRn.toNumber(t)),e-t)}vnr.subtract=kho});var xRn=H(wnr=>{"use strict";Object.defineProperty(wnr,Symbol.toStringTag,{value:"Module"});function xho(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}wnr.isPlainObject=xho});var Rnr=H(Tnr=>{"use strict";Object.defineProperty(Tnr,Symbol.toStringTag,{value:"Module"});var GRn=noe(),FRn=xRn(),ZRn=y3e(),LRn=Zfe(),hy=b3e(),Gho=Sk();function Fho(e,t,r){return O3e(e,t,void 0,void 0,void 0,void 0,r)}function O3e(e,t,r,n,a,o,l){let A=l(e,t,r,n,a,o);if(A!==void 0)return A;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return M3e(e,t,o,l)}return M3e(e,t,o,l)}function M3e(e,t,r,n){if(Object.is(e,t))return!0;let a=LRn.getTag(e),o=LRn.getTag(t);if(a===hy.argumentsTag&&(a=hy.objectTag),o===hy.argumentsTag&&(o=hy.objectTag),a!==o)return!1;switch(a){case hy.stringTag:return e.toString()===t.toString();case hy.numberTag:{let f=e.valueOf(),I=t.valueOf();return Gho.isEqualsSameValueZero(f,I)}case hy.booleanTag:case hy.dateTag:case hy.symbolTag:return Object.is(e.valueOf(),t.valueOf());case hy.regexpTag:return e.source===t.source&&e.flags===t.flags;case hy.functionTag:return e===t}r=r??new Map;let l=r.get(e),A=r.get(t);if(l!=null&&A!=null)return l===t;r.set(e,t),r.set(t,e);try{switch(a){case hy.mapTag:{if(e.size!==t.size)return!1;for(let[f,I]of e.entries())if(!t.has(f)||!O3e(I,t.get(f),f,e,t,r,n))return!1;return!0}case hy.setTag:{if(e.size!==t.size)return!1;let f=Array.from(e.values()),I=Array.from(t.values());for(let C=0;CO3e(b,N,void 0,e,t,r,n));if(E===-1)return!1;I.splice(E,1)}return!0}case hy.arrayTag:case hy.uint8ArrayTag:case hy.uint8ClampedArrayTag:case hy.uint16ArrayTag:case hy.uint32ArrayTag:case hy.bigUint64ArrayTag:case hy.int8ArrayTag:case hy.int16ArrayTag:case hy.int32ArrayTag:case hy.bigInt64ArrayTag:case hy.float32ArrayTag:case hy.float64ArrayTag:{if(GRn.isBuffer(e)!==GRn.isBuffer(t)||e.length!==t.length)return!1;for(let f=0;f{"use strict";Object.defineProperty(Nnr,Symbol.toStringTag,{value:"Module"});function Zho(){}Nnr.noop=Zho});var xnr=H(knr=>{"use strict";Object.defineProperty(knr,Symbol.toStringTag,{value:"Module"});var Lho=Rnr(),Vho=Dnr();function Pho(e,t){return Lho.isEqualWith(e,t,Vho.noop)}knr.isEqual=Pho});var Fnr=H(Gnr=>{"use strict";Object.defineProperty(Gnr,Symbol.toStringTag,{value:"Module"});function Who(...e){}Gnr.noop=Who});var iut=H(Znr=>{"use strict";Object.defineProperty(Znr,Symbol.toStringTag,{value:"Module"});function Oho(e){let t=e?.constructor,r=typeof t=="function"?t.prototype:Object.prototype;return e===r}Znr.isPrototype=Oho});var e$=H(Lnr=>{"use strict";Object.defineProperty(Lnr,Symbol.toStringTag,{value:"Module"});var Mho=Slt();function Hho(e){return Mho.isTypedArray(e)}Lnr.isTypedArray=Hho});var H3e=H(Vnr=>{"use strict";Object.defineProperty(Vnr,Symbol.toStringTag,{value:"Module"});var Yho=$w();function Qho(e,t){if(e=Yho.toInteger(e),e<1||!Number.isSafeInteger(e))return[];let r=new Array(e);for(let n=0;n{"use strict";Object.defineProperty(Pnr,Symbol.toStringTag,{value:"Module"});var Xho=noe(),Jho=iut(),Uho=Sf(),Kho=e$(),jho=H3e();function zho(e){if(Uho.isArrayLike(e))return qho(e);let t=Object.keys(Object(e));return Jho.isPrototype(e)?t.filter(r=>r!=="constructor"):t}function qho(e){let t=jho.times(e.length,a=>`${a}`),r=new Set(t);Xho.isBuffer(e)&&(r.add("offset"),r.add("parent")),Kho.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=Object.keys(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Pnr.keys=zho});var Onr=H(Wnr=>{"use strict";Object.defineProperty(Wnr,Symbol.toStringTag,{value:"Module"});var $ho=YK(),emo=Sk();function tmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Mnr,Symbol.toStringTag,{value:"Module"});var nmo=noe(),imo=iut(),smo=Sf(),omo=e$(),amo=H3e();function cmo(e){if(e==null)return[];switch(typeof e){case"object":case"function":return smo.isArrayLike(e)?umo(e):imo.isPrototype(e)?lmo(e):sut(e);default:return sut(Object(e))}}function sut(e){let t=[];for(let r in e)t.push(r);return t}function lmo(e){return sut(e).filter(r=>r!=="constructor")}function umo(e){let t=amo.times(e.length,a=>`${a}`),r=new Set(t);nmo.isBuffer(e)&&(r.add("offset"),r.add("parent")),omo.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=sut(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Mnr.keysIn=cmo});var Ynr=H(Hnr=>{"use strict";Object.defineProperty(Hnr,Symbol.toStringTag,{value:"Module"});var gmo=iX(),Amo=Sk();function dmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Qnr,Symbol.toStringTag,{value:"Module"});var fmo=iX(),Imo=Sk();function hmo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(Jnr,Symbol.toStringTag,{value:"Module"});var Cmo=YK(),_mo=Sk();function ymo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(jnr,Symbol.toStringTag,{value:"Module"});var Emo=PSe(),VRn=Zfe(),KC=b3e(),Smo=$q(),vmo=e$();function Bmo(e){if(Emo.isPrimitive(e))return e;let t=VRn.getTag(e);if(!wmo(e))return{};if(Smo.isArray(e)){let n=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(n.index=e.index,n.input=e.input),n}if(vmo.isTypedArray(e)){let n=e,a=n.constructor;return new a(n.buffer,n.byteOffset,n.length)}if(t===KC.arrayBufferTag)return new ArrayBuffer(e.byteLength);if(t===KC.dataViewTag){let n=e,a=n.buffer,o=n.byteOffset,l=n.byteLength,A=new ArrayBuffer(l),f=new Uint8Array(a,o,l);return new Uint8Array(A).set(f),new DataView(A)}if(t===KC.booleanTag||t===KC.numberTag||t===KC.stringTag){let n=e.constructor,a=new n(e.valueOf());return t===KC.stringTag?Rmo(a,e):Knr(a,e),a}if(t===KC.dateTag)return new Date(Number(e));if(t===KC.regexpTag){let n=e,a=new RegExp(n.source,n.flags);return a.lastIndex=n.lastIndex,a}if(t===KC.symbolTag)return Object(Symbol.prototype.valueOf.call(e));if(t===KC.mapTag){let n=e,a=new Map;return n.forEach((o,l)=>{a.set(l,o)}),a}if(t===KC.setTag){let n=e,a=new Set;return n.forEach(o=>{a.add(o)}),a}if(t===KC.argumentsTag){let n=e,a={};return Knr(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}let r={};return Nmo(r,e),Knr(r,e),Tmo(r,e),r}function wmo(e){switch(VRn.getTag(e)){case KC.argumentsTag:case KC.arrayTag:case KC.arrayBufferTag:case KC.dataViewTag:case KC.booleanTag:case KC.dateTag:case KC.float32ArrayTag:case KC.float64ArrayTag:case KC.int8ArrayTag:case KC.int16ArrayTag:case KC.int32ArrayTag:case KC.mapTag:case KC.numberTag:case KC.objectTag:case KC.regexpTag:case KC.setTag:case KC.stringTag:case KC.symbolTag:case KC.uint8ArrayTag:case KC.uint8ClampedArrayTag:case KC.uint16ArrayTag:case KC.uint32ArrayTag:return!0;default:return!1}}function Knr(e,t){for(let r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function Tmo(e,t){let r=Object.getOwnPropertySymbols(t);for(let n=0;n=r)&&(e[n]=t[n])}function Nmo(e,t){let r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}jnr.clone=Bmo});var qnr=H(znr=>{"use strict";Object.defineProperty(znr,Symbol.toStringTag,{value:"Module"});var PRn=out();function Dmo(e,t){if(!t)return PRn.clone(e);let r=t(e);return r!==void 0?r:PRn.clone(e)}znr.cloneWith=Dmo});var eir=H($nr=>{"use strict";Object.defineProperty($nr,Symbol.toStringTag,{value:"Module"});var kmo=YK(),xmo=Klt(),Gmo=tM();function Fmo(e,t){let r=Gmo.isObject(e)?Object.create(e):{};if(t!=null){let n=kmo.keys(t);for(let a=0;a{"use strict";Object.defineProperty(tir,Symbol.toStringTag,{value:"Module"});var Zmo=aoe(),Lmo=qq(),Vmo=Sk();function Pmo(e,...t){e=Object(e);let r=Object.prototype,n=t.length,a=n>2?t[2]:void 0;a&&Lmo.isIterateeCall(t[0],t[1],a)&&(n=1);for(let o=0;o{"use strict";Object.defineProperty(rir,Symbol.toStringTag,{value:"Module"});function Wmo(e){if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){let r=e[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${r}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}rir.isPlainObject=Wmo});var iir=H(nir=>{"use strict";Object.defineProperty(nir,Symbol.toStringTag,{value:"Module"});var Q3e=Mfe();function Omo(e,...t){e=Object(e);for(let r=0;r{"use strict";Object.defineProperty(sir,Symbol.toStringTag,{value:"Module"});function Qmo(e,t){return Object.keys(e).find(n=>t(e[n],n,e))}sir.findKey=Qmo});var air=H(oir=>{"use strict";Object.defineProperty(oir,Symbol.toStringTag,{value:"Module"});var Xmo=WRn(),Jmo=HK(),Umo=tM(),Kmo=im();function jmo(e,t){if(!Umo.isObject(e))return;let r=Kmo.iteratee(t??Jmo.identity);return Xmo.findKey(e,r)}oir.findKey=jmo});var lir=H(cir=>{"use strict";Object.defineProperty(cir,Symbol.toStringTag,{value:"Module"});var zmo=HK(),qmo=tM(),$mo=im();function eCo(e,t){if(!qmo.isObject(e))return;let r=$mo.iteratee(t??zmo.identity);return Object.keys(e).findLast(a=>r(e[a],a,e))}cir.findLastKey=eCo});var gir=H(uir=>{"use strict";Object.defineProperty(uir,Symbol.toStringTag,{value:"Module"});var tCo=bm();function rCo(e,t=tCo.identity){if(e==null)return e;for(let r in e)if(t(e[r],r,e)===!1)break;return e}uir.forIn=rCo});var dir=H(Air=>{"use strict";Object.defineProperty(Air,Symbol.toStringTag,{value:"Module"});var nCo=bm();function iCo(e,t=nCo.identity){if(e==null)return e;let r=[];for(let n in e)r.push(n);for(let n=r.length-1;n>=0;n--){let a=r[n];if(t(e[a],a,e)===!1)break}return e}Air.forInRight=iCo});var fir=H(pir=>{"use strict";Object.defineProperty(pir,Symbol.toStringTag,{value:"Module"});var sCo=YK(),oCo=bm();function aCo(e,t=oCo.identity){if(e==null)return e;let r=Object(e),n=sCo.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Iir,Symbol.toStringTag,{value:"Module"});var cCo=YK(),lCo=bm();function uCo(e,t=lCo.identity){if(e==null)return e;let r=Object(e),n=cCo.keys(e);for(let a=n.length-1;a>=0;--a){let o=n[a];if(t(r[o],o,r)===!1)break}return e}Iir.forOwnRight=uCo});var Cir=H(mir=>{"use strict";Object.defineProperty(mir,Symbol.toStringTag,{value:"Module"});var gCo=Sf();function ACo(e){if(!gCo.isArrayLike(e))return{};let t={};for(let r=0;r{"use strict";Object.defineProperty(_ir,Symbol.toStringTag,{value:"Module"});var dCo=YK();function pCo(e){return e==null?[]:dCo.keys(e).filter(t=>typeof e[t]=="function")}_ir.functions=pCo});var Eir=H(bir=>{"use strict";Object.defineProperty(bir,Symbol.toStringTag,{value:"Module"});var fCo=coe();function ICo(e){if(e==null)return[];let t=[];for(let r in e)fCo.isFunction(e[r])&&t.push(r);return t}bir.functionsIn=ICo});var vir=H(Sir=>{"use strict";Object.defineProperty(Sir,Symbol.toStringTag,{value:"Module"});var hCo=VSe(),mCo=OSe(),CCo=Vfe(),_Co=$5();function yCo(e,t){if(e==null)return!1;let r;if(Array.isArray(t)?r=t:typeof t=="string"&&hCo.isDeepKey(t)&&e[t]==null?r=_Co.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Bir,Symbol.toStringTag,{value:"Module"});function bCo(e){let t={},r=Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(wir,Symbol.toStringTag,{value:"Module"});var ECo=ORn();function SCo(e){return ECo.invert(e)}wir.invert=SCo});var Nir=H(Rir=>{"use strict";Object.defineProperty(Rir,Symbol.toStringTag,{value:"Module"});var vCo=bm(),BCo=aoe(),wCo=im();function TCo(e,t){let r={};if(BCo.isNil(e))return r;t==null&&(t=vCo.identity);let n=Object.keys(e),a=wCo.iteratee(t);for(let o=0;o{"use strict";Object.defineProperty(Dir,Symbol.toStringTag,{value:"Module"});function RCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(kir,Symbol.toStringTag,{value:"Module"});var NCo=bm(),DCo=MRn(),kCo=im();function xCo(e,t=NCo.identity){return e==null?{}:DCo.mapKeys(e,kCo.iteratee(t))}kir.mapKeys=xCo});var HRn=H(Gir=>{"use strict";Object.defineProperty(Gir,Symbol.toStringTag,{value:"Module"});function GCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Fir,Symbol.toStringTag,{value:"Module"});var FCo=bm(),ZCo=HRn(),LCo=im();function VCo(e,t=FCo.identity){return e==null?{}:ZCo.mapValues(e,LCo.iteratee(t))}Fir.mapValues=VCo});var YRn=H(Lir=>{"use strict";Object.defineProperty(Lir,Symbol.toStringTag,{value:"Module"});var PCo=PSe(),WCo=Slt();function OCo(e){if(PCo.isPrimitive(e))return e;if(Array.isArray(e)||WCo.isTypedArray(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);let r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){let n=new r(e);return n.lastIndex=e.lastIndex,n}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let n;return e instanceof AggregateError?n=new r(e.errors,e.message,{cause:e.cause}):n=new r(e.message,{cause:e.cause}),n.stack=e.stack,Object.assign(n,e),n}if(typeof File<"u"&&e instanceof File)return new r([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e=="object"){let n=Object.create(t);return Object.assign(n,e)}return e}Lir.clone=OCo});var lut=H(Wir=>{"use strict";Object.defineProperty(Wir,Symbol.toStringTag,{value:"Module"});var QRn=WSe(),MCo=C3e(),HCo=YRn(),YCo=noe(),QCo=PSe(),XCo=y3e(),XRn=Vfe(),JCo=b2(),JRn=ioe(),Vir=Mfe(),Pir=e$();function UCo(e,...t){let r=t.slice(0,-1),n=t[t.length-1],a=e;for(let o=0;o{"use strict";Object.defineProperty(Oir,Symbol.toStringTag,{value:"Module"});var KCo=lut(),jCo=Dnr();function zCo(e,...t){return KCo.mergeWith(e,...t,jCo.noop)}Oir.merge=zCo});var uut=H(Hir=>{"use strict";Object.defineProperty(Hir,Symbol.toStringTag,{value:"Module"});var qCo=y3e();function $Co(e){let t=[];for(;e;)t.push(...qCo.getSymbols(e)),e=Object.getPrototypeOf(e);return t}Hir.getSymbolsIn=$Co});var Qir=H(Yir=>{"use strict";Object.defineProperty(Yir,Symbol.toStringTag,{value:"Module"});var e_o=v3e(),KRn=iX(),URn=G3e(),jRn=uut(),t_o=VSe(),r_o=Pfe(),n_o=Mfe();function i_o(e,...t){if(e==null)return{};t=r_o.flatten(t);let r=s_o(e,t);for(let n=0;nArray.isArray(n)||t_o.isDeepKey(n))?a_o(e):o_o(e)}function o_o(e){let t={},r=[...KRn.keysIn(e),...jRn.getSymbolsIn(e)];for(let n=0;n{if(!n_o.isPlainObject(o))return o})}return t}Yir.omit=i_o});var Jir=H(Xir=>{"use strict";Object.defineProperty(Xir,Symbol.toStringTag,{value:"Module"});var c_o=iX(),l_o=ooe(),u_o=uut(),g_o=HK(),A_o=Sf(),d_o=soe(),p_o=im();function f_o(e,t){if(e==null)return{};let r={},n=p_o.iteratee(t??g_o.identity),a=A_o.isArrayLike(e)?l_o.range(0,e.length):[...c_o.keysIn(e),...u_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(Uir,Symbol.toStringTag,{value:"Module"});var I_o=eM(),h_o=B3e(),m_o=P3e(),C_o=Sf(),__o=QSe();function y_o(e,...t){if(__o.isNil(e))return{};let r={};for(let n=0;n{"use strict";Object.defineProperty(jir,Symbol.toStringTag,{value:"Module"});var b_o=iX(),E_o=ooe(),S_o=uut(),v_o=HK(),B_o=Sf(),w_o=soe(),T_o=im();function R_o(e,t){if(e==null)return{};let r=T_o.iteratee(t??v_o.identity),n={},a=B_o.isArrayLike(e)?E_o.range(0,e.length):[...b_o.keysIn(e),...S_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(qir,Symbol.toStringTag,{value:"Module"});var N_o=eM();function D_o(e){return function(t){return N_o.get(e,t)}}qir.propertyOf=D_o});var tsr=H(esr=>{"use strict";Object.defineProperty(esr,Symbol.toStringTag,{value:"Module"});var k_o=x3e(),x_o=Kq(),G_o=$5(),F_o=qy();function Z_o(e,t,r){k_o.isKey(t,e)?t=[t]:Array.isArray(t)||(t=G_o.toPath(F_o.toString(t)));let n=Math.max(t.length,1);for(let a=0;a{"use strict";Object.defineProperty(rsr,Symbol.toStringTag,{value:"Module"});var L_o=XSe();function V_o(e,t,r,n){let a;return typeof n=="function"?a=n:a=()=>{},L_o.updateWith(e,t,()=>r,a)}rsr.setWith=V_o});var ssr=H(isr=>{"use strict";Object.defineProperty(isr,Symbol.toStringTag,{value:"Module"});var P_o=WSe(),W_o=Y3e();function O_o(e,...t){let r=P_o.cloneDeep(e);return W_o.defaults(r,...t)}isr.toDefaulted=O_o});var asr=H(osr=>{"use strict";Object.defineProperty(osr,Symbol.toStringTag,{value:"Module"});function M_o(e){let t=new Array(e.size),r=e.keys(),n=e.values();for(let a=0;a{"use strict";Object.defineProperty(csr,Symbol.toStringTag,{value:"Module"});function H_o(e){let t=new Array(e.size),r=e.values();for(let n=0;n{"use strict";Object.defineProperty(usr,Symbol.toStringTag,{value:"Module"});var Y_o=YK(),Q_o=asr(),X_o=lsr();function J_o(e){if(e==null)return[];if(e instanceof Set)return X_o.setToEntries(e);if(e instanceof Map)return Q_o.mapToEntries(e);let t=Y_o.keys(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(Asr,Symbol.toStringTag,{value:"Module"});var U_o=iX(),K_o=asr(),j_o=lsr();function z_o(e){if(e==null)return[];if(e instanceof Set)return j_o.setToEntries(e);if(e instanceof Map)return K_o.mapToEntries(e);let t=U_o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(psr,Symbol.toStringTag,{value:"Module"});var q_o=noe();function $_o(e){return q_o.isBuffer(e)}psr.isBuffer=$_o});var Isr=H(fsr=>{"use strict";Object.defineProperty(fsr,Symbol.toStringTag,{value:"Module"});var e0o=bm(),t0o=coe(),r0o=Nlt(),n0o=gut(),i0o=tM(),s0o=e$(),o0o=im();function a0o(e,t=e0o.identity,r){let n=Array.isArray(e)||n0o.isBuffer(e)||s0o.isTypedArray(e);return t=o0o.iteratee(t),r==null&&(n?r=[]:i0o.isObject(e)&&t0o.isFunction(e.constructor)?r=Object.create(Object.getPrototypeOf(e)):r={}),e==null||r0o.forEach(e,(a,o,l)=>t(r,a,o,l)),r}fsr.transform=a0o});var msr=H(hsr=>{"use strict";Object.defineProperty(hsr,Symbol.toStringTag,{value:"Module"});var c0o=XSe();function l0o(e,t,r){return c0o.updateWith(e,t,r,()=>{})}hsr.update=l0o});var _sr=H(Csr=>{"use strict";Object.defineProperty(Csr,Symbol.toStringTag,{value:"Module"});var u0o=iX();function g0o(e){let t=u0o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(ysr,Symbol.toStringTag,{value:"Module"});function A0o(e){return typeof e=="function"}ysr.isFunction=A0o});var Ssr=H(Esr=>{"use strict";Object.defineProperty(Esr,Symbol.toStringTag,{value:"Module"});function d0o(e){return Number.isSafeInteger(e)&&e>=0}Esr.isLength=d0o});var Bsr=H(vsr=>{"use strict";Object.defineProperty(vsr,Symbol.toStringTag,{value:"Module"});var zRn=Function.prototype.toString,p0o=/[\\^$.*+?()[\]{}|]/g,f0o=RegExp(`^${zRn.call(Object.prototype.hasOwnProperty).replace(p0o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")}$`);function I0o(e){if(typeof e!="function")return!1;if(globalThis?.["__core-js_shared__"]!=null)throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return f0o.test(zRn.call(e))}vsr.isNative=I0o});var Tsr=H(wsr=>{"use strict";Object.defineProperty(wsr,Symbol.toStringTag,{value:"Module"});function h0o(e){return e===null}wsr.isNull=h0o});var Nsr=H(Rsr=>{"use strict";Object.defineProperty(Rsr,Symbol.toStringTag,{value:"Module"});var m0o=uer();function C0o(e){return m0o.isUndefined(e)}Rsr.isUndefined=C0o});var Aut=H(Dsr=>{"use strict";Object.defineProperty(Dsr,Symbol.toStringTag,{value:"Module"});function _0o(e,t){if(t==null)return!0;if(e==null)return Object.keys(t).length===0;let r=Object.keys(t);for(let n=0;n{"use strict";Object.defineProperty(ksr,Symbol.toStringTag,{value:"Module"});var y0o=Aut(),b0o=izt();function E0o(e){return e=b0o.cloneDeep(e),function(t){return y0o.conformsTo(t,e)}}ksr.conforms=E0o});var qRn=H(Gsr=>{"use strict";Object.defineProperty(Gsr,Symbol.toStringTag,{value:"Module"});function S0o(e){return e instanceof ArrayBuffer}Gsr.isArrayBuffer=S0o});var Zsr=H(Fsr=>{"use strict";Object.defineProperty(Fsr,Symbol.toStringTag,{value:"Module"});var v0o=qRn();function B0o(e){return v0o.isArrayBuffer(e)}Fsr.isArrayBuffer=B0o});var Vsr=H(Lsr=>{"use strict";Object.defineProperty(Lsr,Symbol.toStringTag,{value:"Module"});function w0o(e){return typeof e=="boolean"||e instanceof Boolean}Lsr.isBoolean=w0o});var $Rn=H(Psr=>{"use strict";Object.defineProperty(Psr,Symbol.toStringTag,{value:"Module"});function T0o(e){return e instanceof Date}Psr.isDate=T0o});var Osr=H(Wsr=>{"use strict";Object.defineProperty(Wsr,Symbol.toStringTag,{value:"Module"});var R0o=$Rn();function N0o(e){return R0o.isDate(e)}Wsr.isDate=N0o});var Hsr=H(Msr=>{"use strict";Object.defineProperty(Msr,Symbol.toStringTag,{value:"Module"});var D0o=ioe(),k0o=Mfe();function x0o(e){return D0o.isObjectLike(e)&&e.nodeType===1&&!k0o.isPlainObject(e)}Msr.isElement=x0o});var Qsr=H(Ysr=>{"use strict";Object.defineProperty(Ysr,Symbol.toStringTag,{value:"Module"});var G0o=Vfe(),F0o=Sf(),Z0o=e$(),L0o=noe(),V0o=iut();function P0o(e){if(e==null)return!0;if(F0o.isArrayLike(e))return typeof e.splice!="function"&&typeof e!="string"&&!L0o.isBuffer(e)&&!Z0o.isTypedArray(e)&&!G0o.isArguments(e)?!1:e.length===0;if(typeof e=="object"){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return V0o.isPrototype(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}Ysr.isEmpty=P0o});var eNn=H(Xsr=>{"use strict";Object.defineProperty(Xsr,Symbol.toStringTag,{value:"Module"});function W0o(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let r=0;return(...n)=>{if(++r>=e)return t(...n)}}Xsr.after=W0o});var Ksr=H(Usr=>{"use strict";Object.defineProperty(Usr,Symbol.toStringTag,{value:"Module"});var tNn=eNn(),O0o=Rnr();function Jsr(e,t,r){return typeof r!="function"&&(r=()=>{}),O0o.isEqualWith(e,t,(...n)=>{let a=r(...n);if(a!==void 0)return!!a;if(e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set)return Jsr(Array.from(e),Array.from(t),tNn.after(2,r))})}Usr.isEqualWith=Jsr});var zsr=H(jsr=>{"use strict";Object.defineProperty(jsr,Symbol.toStringTag,{value:"Module"});var M0o=Zfe();function H0o(e){return M0o.getTag(e)==="[object Error]"}jsr.isError=H0o});var $sr=H(qsr=>{"use strict";Object.defineProperty(qsr,Symbol.toStringTag,{value:"Module"});function Y0o(e){return Number.isFinite(e)}qsr.isFinite=Y0o});var tor=H(eor=>{"use strict";Object.defineProperty(eor,Symbol.toStringTag,{value:"Module"});function Q0o(e){return Number.isInteger(e)}eor.isInteger=Q0o});var rNn=H(ror=>{"use strict";Object.defineProperty(ror,Symbol.toStringTag,{value:"Module"});function X0o(e){return e instanceof RegExp}ror.isRegExp=X0o});var ior=H(nor=>{"use strict";Object.defineProperty(nor,Symbol.toStringTag,{value:"Module"});var J0o=rNn();function U0o(e){return J0o.isRegExp(e)}nor.isRegExp=U0o});var oor=H(sor=>{"use strict";Object.defineProperty(sor,Symbol.toStringTag,{value:"Module"});function K0o(e){return Number.isSafeInteger(e)}sor.isSafeInteger=K0o});var nNn=H(aor=>{"use strict";Object.defineProperty(aor,Symbol.toStringTag,{value:"Module"});function j0o(e){return e instanceof Set}aor.isSet=j0o});var lor=H(cor=>{"use strict";Object.defineProperty(cor,Symbol.toStringTag,{value:"Module"});var z0o=nNn();function q0o(e){return z0o.isSet(e)}cor.isSet=q0o});var iNn=H(uor=>{"use strict";Object.defineProperty(uor,Symbol.toStringTag,{value:"Module"});function $0o(e){return e instanceof WeakMap}uor.isWeakMap=$0o});var Aor=H(gor=>{"use strict";Object.defineProperty(gor,Symbol.toStringTag,{value:"Module"});var eyo=iNn();function tyo(e){return eyo.isWeakMap(e)}gor.isWeakMap=tyo});var sNn=H(dor=>{"use strict";Object.defineProperty(dor,Symbol.toStringTag,{value:"Module"});function ryo(e){return e instanceof WeakSet}dor.isWeakSet=ryo});var Ior=H(por=>{"use strict";Object.defineProperty(por,Symbol.toStringTag,{value:"Module"});var nyo=sNn();function iyo(e){return nyo.isWeakSet(e)}por.isWeakSet=iyo});var mor=H(hor=>{"use strict";Object.defineProperty(hor,Symbol.toStringTag,{value:"Module"});function syo(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}hor.capitalize=syo});var _or=H(Cor=>{"use strict";Object.defineProperty(Cor,Symbol.toStringTag,{value:"Module"});var oyo=mor(),ayo=qy();function cyo(e){return oyo.capitalize(ayo.toString(e))}Cor.capitalize=cyo});var bor=H(yor=>{"use strict";Object.defineProperty(yor,Symbol.toStringTag,{value:"Module"});var lyo=coe(),oNn=$q(),uyo=tM(),gyo=qy();function Ayo(e,...t){if(e==null||!uyo.isObject(e)||oNn.isArray(e)&&t.length===0)return e;let r=[];for(let n=0;n{"use strict";Object.defineProperty(Eor,Symbol.toStringTag,{value:"Module"});var dyo=new Map([["\xC6","Ae"],["\xD0","D"],["\xD8","O"],["\xDE","Th"],["\xDF","ss"],["\xE6","ae"],["\xF0","d"],["\xF8","o"],["\xFE","th"],["\u0110","D"],["\u0111","d"],["\u0126","H"],["\u0127","h"],["\u0131","i"],["\u0132","IJ"],["\u0133","ij"],["\u0138","k"],["\u013F","L"],["\u0140","l"],["\u0141","L"],["\u0142","l"],["\u0149","'n"],["\u014A","N"],["\u014B","n"],["\u0152","Oe"],["\u0153","oe"],["\u0166","T"],["\u0167","t"],["\u017F","s"]]);function pyo(e){e=e.normalize("NFD");let t="";for(let r=0;r="\u0300"&&n<="\u036F"||n>="\uFE20"&&n<="\uFE23"||(t+=dyo.get(n)??n)}return t}Eor.deburr=pyo});var t$=H(Sor=>{"use strict";Object.defineProperty(Sor,Symbol.toStringTag,{value:"Module"});var fyo=aNn(),Iyo=qy();function hyo(e){return fyo.deburr(Iyo.toString(e))}Sor.deburr=hyo});var Hfe=H(dut=>{"use strict";Object.defineProperty(dut,Symbol.toStringTag,{value:"Module"});var cNn=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function myo(e){return Array.from(e.match(cNn)??[])}dut.CASE_SPLIT_PATTERN=cNn;dut.words=myo});var lNn=H(vor=>{"use strict";Object.defineProperty(vor,Symbol.toStringTag,{value:"Module"});var Cyo=mor(),_yo=Hfe();function yyo(e){let t=_yo.words(e);if(t.length===0)return"";let[r,...n]=t;return`${r.toLowerCase()}${n.map(a=>Cyo.capitalize(a)).join("")}`}vor.camelCase=yyo});var Yfe=H(Bor=>{"use strict";Object.defineProperty(Bor,Symbol.toStringTag,{value:"Module"});var byo=qy();function Eyo(e){return typeof e!="string"&&(e=byo.toString(e)),e.replace(/['\u2019]/g,"")}Bor.normalizeForCase=Eyo});var Tor=H(wor=>{"use strict";Object.defineProperty(wor,Symbol.toStringTag,{value:"Module"});var Syo=t$(),vyo=lNn(),Byo=Yfe();function wyo(e){return vyo.camelCase(Byo.normalizeForCase(Syo.deburr(e)))}wor.camelCase=wyo});var Nor=H(Ror=>{"use strict";Object.defineProperty(Ror,Symbol.toStringTag,{value:"Module"});function Tyo(e,t,r){return e==null||t==null?!1:(r==null&&(r=e.length),e.endsWith(t,r))}Ror.endsWith=Tyo});var uNn=H(Dor=>{"use strict";Object.defineProperty(Dor,Symbol.toStringTag,{value:"Module"});var Ryo={"&":"&","<":"<",">":">",'"':""","'":"'"};function Nyo(e){return e.replace(/[&<>"']/g,t=>Ryo[t])}Dor.escape=Nyo});var put=H(kor=>{"use strict";Object.defineProperty(kor,Symbol.toStringTag,{value:"Module"});var Dyo=uNn(),kyo=qy();function xyo(e){return Dyo.escape(kyo.toString(e))}kor.escape=xyo});var gNn=H(xor=>{"use strict";Object.defineProperty(xor,Symbol.toStringTag,{value:"Module"});function Gyo(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}xor.escapeRegExp=Gyo});var For=H(Gor=>{"use strict";Object.defineProperty(Gor,Symbol.toStringTag,{value:"Module"});var Fyo=gNn(),Zyo=qy();function Lyo(e){return Fyo.escapeRegExp(Zyo.toString(e))}Gor.escapeRegExp=Lyo});var ANn=H(Zor=>{"use strict";Object.defineProperty(Zor,Symbol.toStringTag,{value:"Module"});var Vyo=Hfe();function Pyo(e){return Vyo.words(e).map(r=>r.toLowerCase()).join("-")}Zor.kebabCase=Pyo});var Vor=H(Lor=>{"use strict";Object.defineProperty(Lor,Symbol.toStringTag,{value:"Module"});var Wyo=t$(),Oyo=ANn(),Myo=Yfe();function Hyo(e){return Oyo.kebabCase(Myo.normalizeForCase(Wyo.deburr(e)))}Lor.kebabCase=Hyo});var dNn=H(Por=>{"use strict";Object.defineProperty(Por,Symbol.toStringTag,{value:"Module"});var Yyo=Hfe();function Qyo(e){return Yyo.words(e).map(r=>r.toLowerCase()).join(" ")}Por.lowerCase=Qyo});var Oor=H(Wor=>{"use strict";Object.defineProperty(Wor,Symbol.toStringTag,{value:"Module"});var Xyo=t$(),Jyo=dNn(),Uyo=Yfe();function Kyo(e){return Jyo.lowerCase(Uyo.normalizeForCase(Xyo.deburr(e)))}Wor.lowerCase=Kyo});var pNn=H(Mor=>{"use strict";Object.defineProperty(Mor,Symbol.toStringTag,{value:"Module"});function jyo(e){return e.substring(0,1).toLowerCase()+e.substring(1)}Mor.lowerFirst=jyo});var Yor=H(Hor=>{"use strict";Object.defineProperty(Hor,Symbol.toStringTag,{value:"Module"});var zyo=pNn(),qyo=qy();function $yo(e){return zyo.lowerFirst(qyo.toString(e))}Hor.lowerFirst=$yo});var fNn=H(Qor=>{"use strict";Object.defineProperty(Qor,Symbol.toStringTag,{value:"Module"});function ebo(e,t,r=" "){return e.padStart(Math.floor((t-e.length)/2)+e.length,r).padEnd(t,r)}Qor.pad=ebo});var Jor=H(Xor=>{"use strict";Object.defineProperty(Xor,Symbol.toStringTag,{value:"Module"});var tbo=fNn(),rbo=qy();function nbo(e,t,r){return tbo.pad(rbo.toString(e),t,r)}Xor.pad=nbo});var Kor=H(Uor=>{"use strict";Object.defineProperty(Uor,Symbol.toStringTag,{value:"Module"});var ibo=qy();function sbo(e,t=0,r=" "){return ibo.toString(e).padEnd(t,r)}Uor.padEnd=sbo});var zor=H(jor=>{"use strict";Object.defineProperty(jor,Symbol.toStringTag,{value:"Module"});var obo=qy();function abo(e,t=0,r=" "){return obo.toString(e).padStart(t,r)}jor.padStart=abo});var $or=H(qor=>{"use strict";Object.defineProperty(qor,Symbol.toStringTag,{value:"Module"});var cbo=Number.MAX_SAFE_INTEGER;qor.MAX_SAFE_INTEGER=cbo});var tar=H(ear=>{"use strict";Object.defineProperty(ear,Symbol.toStringTag,{value:"Module"});var lbo=qq(),ubo=$or(),gbo=$w(),Abo=qy();function dbo(e,t,r){return(r?lbo.isIterateeCall(e,t,r):t===void 0)?t=1:t=gbo.toInteger(t),t<1||t>ubo.MAX_SAFE_INTEGER?"":Abo.toString(e).repeat(t)}ear.repeat=dbo});var nar=H(rar=>{"use strict";Object.defineProperty(rar,Symbol.toStringTag,{value:"Module"});var INn=qy();function pbo(e,t,r){return arguments.length<3?INn.toString(e):INn.toString(e).replace(t,r)}rar.replace=pbo});var hNn=H(iar=>{"use strict";Object.defineProperty(iar,Symbol.toStringTag,{value:"Module"});var fbo=Hfe();function Ibo(e){return fbo.words(e).map(r=>r.toLowerCase()).join("_")}iar.snakeCase=Ibo});var oar=H(sar=>{"use strict";Object.defineProperty(sar,Symbol.toStringTag,{value:"Module"});var hbo=t$(),mbo=hNn(),Cbo=Yfe();function _bo(e){return mbo.snakeCase(Cbo.normalizeForCase(hbo.deburr(e)))}sar.snakeCase=_bo});var car=H(aar=>{"use strict";Object.defineProperty(aar,Symbol.toStringTag,{value:"Module"});var ybo=qy();function bbo(e,t,r){return ybo.toString(e).split(t,r)}aar.split=bbo});var uar=H(lar=>{"use strict";Object.defineProperty(lar,Symbol.toStringTag,{value:"Module"});var Ebo=t$(),Sbo=Hfe(),vbo=Yfe();function Bbo(e){let t=Sbo.words(vbo.normalizeForCase(Ebo.deburr(e)).trim()),r="";for(let n=0;n{"use strict";Object.defineProperty(gar,Symbol.toStringTag,{value:"Module"});function wbo(e,t,r){return e==null||t==null?!1:(r==null&&(r=0),e.startsWith(t,r))}gar.startsWith=wbo});var dar=H(hut=>{"use strict";Object.defineProperty(hut,Symbol.toStringTag,{value:"Module"});var Tbo=put(),Rbo=zlt(),mNn=Y3e(),Nbo=qy(),Dbo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,kbo=/['\n\r\u2028\u2029\\]/g,fut=/($^)/,xbo=new Map([["\\","\\"],["'","'"],[` +`,a)}while(n!==-1);return o+=e.substr(a),o};NBn.exports={stringReplaceAll:jno,stringEncaseCRLFWithFirstIndex:zno}});var ZBn=H((bMl,FBn)=>{"use strict";var qno=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,kBn=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,$no=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,eio=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,tio=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function GBn(e){let t=e[0]==="u",r=e[1]==="{";return t&&!r&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):tio.get(e)||e}function rio(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n){let l=Number(o);if(!Number.isNaN(l))r.push(l);else if(a=o.match($no))r.push(a[2].replace(eio,(A,f,I)=>f?GBn(f):I));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`)}return r}function nio(e){kBn.lastIndex=0;let t=[],r;for(;(r=kBn.exec(e))!==null;){let n=r[1];if(r[2]){let a=rio(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function xBn(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let[a,o]of Object.entries(r))if(Array.isArray(o)){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);n=o.length>0?n[a](...o):n[a]}return n}FBn.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(qno,(o,l,A,f,I,C)=>{if(l)a.push(GBn(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:xBn(e,r)(b)),r.push({inverse:A,styles:nio(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(xBn(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var VK=H((EMl,MBn)=>{"use strict";var d3e=ult(),{stdout:r7t,stderr:n7t}=e7t(),{stringReplaceAll:iio,stringEncaseCRLFWithFirstIndex:sio}=DBn(),{isArray:glt}=Array,VBn=["ansi","ansi","ansi256","ansi16m"],FSe=Object.create(null),oio=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=r7t?r7t.level:0;e.level=t.level===void 0?r:t.level},i7t=class{constructor(t){return PBn(t)}},PBn=e=>{let t={};return oio(t,e),t.template=(...r)=>OBn(t.template,...r),Object.setPrototypeOf(t,Alt.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=i7t,t.template};function Alt(e){return PBn(e)}for(let[e,t]of Object.entries(d3e))FSe[e]={get(){let r=dlt(this,s7t(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};FSe.visible={get(){let e=dlt(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};var WBn=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let e of WBn)FSe[e]={get(){let{level:t}=this;return function(...r){let n=s7t(d3e.color[VBn[t]][e](...r),d3e.color.close,this._styler);return dlt(this,n,this._isEmpty)}}};for(let e of WBn){let t="bg"+e[0].toUpperCase()+e.slice(1);FSe[t]={get(){let{level:r}=this;return function(...n){let a=s7t(d3e.bgColor[VBn[r]][e](...n),d3e.bgColor.close,this._styler);return dlt(this,a,this._isEmpty)}}}}var aio=Object.defineProperties(()=>{},{...FSe,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),s7t=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},dlt=(e,t,r)=>{let n=(...a)=>glt(a[0])&&glt(a[0].raw)?LBn(n,OBn(n,...a)):LBn(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,aio),n._generator=e,n._styler=t,n._isEmpty=r,n},LBn=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.indexOf("\x1B")!==-1)for(;r!==void 0;)t=iio(t,r.close,r.open),r=r.parent;let o=t.indexOf(` +`);return o!==-1&&(t=sio(t,a,n,o)),n+t+a},t7t,OBn=(e,...t)=>{let[r]=t;if(!glt(r)||!glt(r.raw))return t.join(" ");let n=t.slice(1),a=[r.raw[0]];for(let o=1;o{"use strict";z5.isInteger=e=>typeof e=="number"?Number.isInteger(e):typeof e=="string"&&e.trim()!==""?Number.isInteger(Number(e)):!1;z5.find=(e,t)=>e.nodes.find(r=>r.type===t);z5.exceedsLimit=(e,t,r=1,n)=>n===!1||!z5.isInteger(e)||!z5.isInteger(t)?!1:(Number(t)-Number(e))/Number(r)>=n;z5.escapeNode=(e,t=0,r)=>{let n=e.nodes[t];n&&(r&&n.type===r||n.type==="open"||n.type==="close")&&n.escaped!==!0&&(n.value="\\"+n.value,n.escaped=!0)};z5.encloseBrace=e=>e.type!=="brace"||e.commas>>0+e.ranges>>0?!1:(e.invalid=!0,!0);z5.isInvalidBrace=e=>e.type!=="brace"?!1:e.invalid===!0||e.dollar?!0:!(e.commas>>0+e.ranges>>0)||e.open!==!0||e.close!==!0?(e.invalid=!0,!0):!1;z5.isOpenOrClose=e=>e.type==="open"||e.type==="close"?!0:e.open===!0||e.close===!0;z5.reduce=e=>e.reduce((t,r)=>(r.type==="text"&&t.push(r.value),r.type==="range"&&(r.type="text"),t),[]);z5.flatten=(...e)=>{let t=[],r=n=>{for(let a=0;a{"use strict";var HBn=flt();YBn.exports=(e,t={})=>{let r=(n,a={})=>{let o=t.escapeInvalid&&HBn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A="";if(n.value)return(o||l)&&HBn.isOpenOrClose(n)?"\\"+n.value:n.value;if(n.value)return n.value;if(n.nodes)for(let f of n.nodes)A+=r(f);return A};return r(e)}});var XBn=H((BMl,QBn)=>{"use strict";QBn.exports=function(e){return typeof e=="number"?e-e===0:typeof e=="string"&&e.trim()!==""?Number.isFinite?Number.isFinite(+e):isFinite(+e):!1}});var twn=H((wMl,ewn)=>{"use strict";var JBn=XBn(),Gfe=(e,t,r)=>{if(JBn(e)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(t===void 0||e===t)return String(e);if(JBn(t)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let n={relaxZeros:!0,...r};typeof n.strictZeros=="boolean"&&(n.relaxZeros=n.strictZeros===!1);let a=String(n.relaxZeros),o=String(n.shorthand),l=String(n.capture),A=String(n.wrap),f=e+":"+t+"="+a+o+l+A;if(Gfe.cache.hasOwnProperty(f))return Gfe.cache[f].result;let I=Math.min(e,t),C=Math.max(e,t);if(Math.abs(I-C)===1){let F=e+"|"+t;return n.capture?`(${F})`:n.wrap===!1?F:`(?:${F})`}let b=$Bn(e)||$Bn(t),E={min:e,max:t,a:I,b:C},N=[],B=[];if(b&&(E.isPadded=b,E.maxLen=String(E.max).length),I<0){let F=C<0?Math.abs(C):1;B=UBn(F,Math.abs(I),E,n),I=E.a=0}return C>=0&&(N=UBn(I,C,E,n)),E.negatives=B,E.positives=N,E.result=cio(B,N,n),n.capture===!0?E.result=`(${E.result})`:n.wrap!==!1&&N.length+B.length>1&&(E.result=`(?:${E.result})`),Gfe.cache[f]=E,E.result};function cio(e,t,r){let n=o7t(e,t,"-",!1,r)||[],a=o7t(t,e,"",!1,r)||[],o=o7t(e,t,"-?",!0,r)||[];return n.concat(o).concat(a).join("|")}function lio(e,t){let r=1,n=1,a=jBn(e,r),o=new Set([t]);for(;e<=a&&a<=t;)o.add(a),r+=1,a=jBn(e,r);for(a=zBn(t+1,n)-1;e1&&A.count.pop(),A.count.push(C.count[0]),A.string=A.pattern+qBn(A.count),l=I+1;continue}r.isPadded&&(b=pio(I,r,n)),C.string=b+C.pattern+qBn(C.count),o.push(C),l=I+1,A=C}return o}function o7t(e,t,r,n,a){let o=[];for(let l of e){let{string:A}=l;!n&&!KBn(t,"string",A)&&o.push(r+A),n&&KBn(t,"string",A)&&o.push(r+A)}return o}function gio(e,t){let r=[];for(let n=0;nt?1:t>e?-1:0}function KBn(e,t,r){return e.some(n=>n[t]===r)}function jBn(e,t){return Number(String(e).slice(0,-t)+"9".repeat(t))}function zBn(e,t){return e-e%Math.pow(10,t)}function qBn(e){let[t=0,r=""]=e;return r||t>1?`{${t+(r?","+r:"")}}`:""}function dio(e,t,r){return`[${e}${t-e===1?"":"-"}${t}]`}function $Bn(e){return/^-?(0+)\d/.test(e)}function pio(e,t,r){if(!t.isPadded)return e;let n=Math.abs(t.maxLen-String(e).length),a=r.relaxZeros!==!1;switch(n){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${n}}`:`0{${n}}`}}Gfe.cache={};Gfe.clearCache=()=>Gfe.cache={};ewn.exports=Gfe});var l7t=H((TMl,cwn)=>{"use strict";var fio=wt("util"),nwn=twn(),rwn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),Iio=e=>t=>e===!0?Number(t):String(t),a7t=e=>typeof e=="number"||typeof e=="string"&&e!=="",p3e=e=>Number.isInteger(+e),c7t=e=>{let t=`${e}`,r=-1;if(t[0]==="-"&&(t=t.slice(1)),t==="0")return!1;for(;t[++r]==="0";);return r>0},hio=(e,t,r)=>typeof e=="string"||typeof t=="string"?!0:r.stringify===!0,mio=(e,t,r)=>{if(t>0){let n=e[0]==="-"?"-":"";n&&(e=e.slice(1)),e=n+e.padStart(n?t-1:t,"0")}return r===!1?String(e):e},mlt=(e,t)=>{let r=e[0]==="-"?"-":"";for(r&&(e=e.slice(1),t--);e.length{e.negatives.sort((A,f)=>Af?1:0),e.positives.sort((A,f)=>Af?1:0);let n=t.capture?"":"?:",a="",o="",l;return e.positives.length&&(a=e.positives.map(A=>mlt(String(A),r)).join("|")),e.negatives.length&&(o=`-(${n}${e.negatives.map(A=>mlt(String(A),r)).join("|")})`),a&&o?l=`${a}|${o}`:l=a||o,t.wrap?`(${n}${l})`:l},iwn=(e,t,r,n)=>{if(r)return nwn(e,t,{wrap:!1,...n});let a=String.fromCharCode(e);if(e===t)return a;let o=String.fromCharCode(t);return`[${a}-${o}]`},swn=(e,t,r)=>{if(Array.isArray(e)){let n=r.wrap===!0,a=r.capture?"":"?:";return n?`(${a}${e.join("|")})`:e.join("|")}return nwn(e,t,r)},own=(...e)=>new RangeError("Invalid range arguments: "+fio.inspect(...e)),awn=(e,t,r)=>{if(r.strictRanges===!0)throw own([e,t]);return[]},_io=(e,t)=>{if(t.strictRanges===!0)throw new TypeError(`Expected step "${e}" to be a number`);return[]},yio=(e,t,r=1,n={})=>{let a=Number(e),o=Number(t);if(!Number.isInteger(a)||!Number.isInteger(o)){if(n.strictRanges===!0)throw own([e,t]);return[]}a===0&&(a=0),o===0&&(o=0);let l=a>o,A=String(e),f=String(t),I=String(r);r=Math.max(Math.abs(r),1);let C=c7t(A)||c7t(f)||c7t(I),b=C?Math.max(A.length,f.length,I.length):0,E=C===!1&&hio(e,t,n)===!1,N=n.transform||Iio(E);if(n.toRegex&&r===1)return iwn(mlt(e,b),mlt(t,b),!0,n);let B={negatives:[],positives:[]},F=ae=>B[ae<0?"negatives":"positives"].push(Math.abs(ae)),Q=[],X=0;for(;l?a>=o:a<=o;)n.toRegex===!0&&r>1?F(a):Q.push(mio(N(a,X),b,E)),a=l?a-r:a+r,X++;return n.toRegex===!0?r>1?Cio(B,n,b):swn(Q,null,{wrap:!1,...n}):Q},bio=(e,t,r=1,n={})=>{if(!p3e(e)&&e.length>1||!p3e(t)&&t.length>1)return awn(e,t,n);let a=n.transform||(E=>String.fromCharCode(E)),o=`${e}`.charCodeAt(0),l=`${t}`.charCodeAt(0),A=o>l,f=Math.min(o,l),I=Math.max(o,l);if(n.toRegex&&r===1)return iwn(f,I,!1,n);let C=[],b=0;for(;A?o>=l:o<=l;)C.push(a(o,b)),o=A?o-r:o+r,b++;return n.toRegex===!0?swn(C,null,{wrap:!1,options:n}):C},hlt=(e,t,r,n={})=>{if(t==null&&a7t(e))return[e];if(!a7t(e)||!a7t(t))return awn(e,t,n);if(typeof r=="function")return hlt(e,t,1,{transform:r});if(rwn(r))return hlt(e,t,0,r);let a={...n};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,p3e(r)?p3e(e)&&p3e(t)?yio(e,t,r,a):bio(e,t,Math.max(Math.abs(r),1),a):r!=null&&!rwn(r)?_io(r,a):hlt(e,t,1,r)};cwn.exports=hlt});var gwn=H((RMl,uwn)=>{"use strict";var Eio=l7t(),lwn=flt(),Sio=(e,t={})=>{let r=(n,a={})=>{let o=lwn.isInvalidBrace(a),l=n.invalid===!0&&t.escapeInvalid===!0,A=o===!0||l===!0,f=t.escapeInvalid===!0?"\\":"",I="";if(n.isOpen===!0)return f+n.value;if(n.isClose===!0)return console.log("node.isClose",f,n.value),f+n.value;if(n.type==="open")return A?f+n.value:"(";if(n.type==="close")return A?f+n.value:")";if(n.type==="comma")return n.prev.type==="comma"?"":A?n.value:"|";if(n.value)return n.value;if(n.nodes&&n.ranges>0){let C=lwn.reduce(n.nodes),b=Eio(...C,{...t,wrap:!1,toRegex:!0,strictZeros:!0});if(b.length!==0)return C.length>1&&b.length>1?`(${b})`:b}if(n.nodes)for(let C of n.nodes)I+=r(C,n);return I};return r(e)};uwn.exports=Sio});var pwn=H((NMl,dwn)=>{"use strict";var vio=l7t(),Awn=Ilt(),ZSe=flt(),Ffe=(e="",t="",r=!1)=>{let n=[];if(e=[].concat(e),t=[].concat(t),!t.length)return e;if(!e.length)return r?ZSe.flatten(t).map(a=>`{${a}}`):t;for(let a of e)if(Array.isArray(a))for(let o of a)n.push(Ffe(o,t,r));else for(let o of t)r===!0&&typeof o=="string"&&(o=`{${o}}`),n.push(Array.isArray(o)?Ffe(a,o,r):a+o);return ZSe.flatten(n)},Bio=(e,t={})=>{let r=t.rangeLimit===void 0?1e3:t.rangeLimit,n=(a,o={})=>{a.queue=[];let l=o,A=o.queue;for(;l.type!=="brace"&&l.type!=="root"&&l.parent;)l=l.parent,A=l.queue;if(a.invalid||a.dollar){A.push(Ffe(A.pop(),Awn(a,t)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(Ffe(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let b=ZSe.reduce(a.nodes);if(ZSe.exceedsLimit(...b,t.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let E=vio(...b,t);E.length===0&&(E=Awn(a,t)),A.push(Ffe(A.pop(),E)),a.nodes=[];return}let f=ZSe.encloseBrace(a),I=a.queue,C=a;for(;C.type!=="brace"&&C.type!=="root"&&C.parent;)C=C.parent,I=C.queue;for(let b=0;b{"use strict";fwn.exports={MAX_LENGTH:1e4,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var ywn=H((kMl,_wn)=>{"use strict";var wio=Ilt(),{MAX_LENGTH:hwn,CHAR_BACKSLASH:u7t,CHAR_BACKTICK:Tio,CHAR_COMMA:Rio,CHAR_DOT:Nio,CHAR_LEFT_PARENTHESES:Dio,CHAR_RIGHT_PARENTHESES:kio,CHAR_LEFT_CURLY_BRACE:xio,CHAR_RIGHT_CURLY_BRACE:Gio,CHAR_LEFT_SQUARE_BRACKET:mwn,CHAR_RIGHT_SQUARE_BRACKET:Cwn,CHAR_DOUBLE_QUOTE:Fio,CHAR_SINGLE_QUOTE:Zio,CHAR_NO_BREAK_SPACE:Lio,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Vio}=Iwn(),Pio=(e,t={})=>{if(typeof e!="string")throw new TypeError("Expected a string");let r=t||{},n=typeof r.maxLength=="number"?Math.min(hwn,r.maxLength):hwn;if(e.length>n)throw new SyntaxError(`Input length (${e.length}), exceeds max characters (${n})`);let a={type:"root",input:e,nodes:[]},o=[a],l=a,A=a,f=0,I=e.length,C=0,b=0,E,N=()=>e[C++],B=F=>{if(F.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&F.type==="text"){A.value+=F.value;return}return l.nodes.push(F),F.parent=l,F.prev=A,A=F,F};for(B({type:"bos"});C0){if(l.ranges>0){l.ranges=0;let F=l.nodes.shift();l.nodes=[F,{type:"text",value:wio(l)}]}B({type:"comma",value:E}),l.commas++;continue}if(E===Nio&&b>0&&l.commas===0){let F=l.nodes;if(b===0||F.length===0){B({type:"text",value:E});continue}if(A.type==="dot"){if(l.range=[],A.value+=E,A.type="range",l.nodes.length!==3&&l.nodes.length!==5){l.invalid=!0,l.ranges=0,A.type="text";continue}l.ranges++,l.args=[];continue}if(A.type==="range"){F.pop();let Q=F[F.length-1];Q.value+=A.value+E,A=Q,l.ranges--;continue}B({type:"dot",value:E});continue}B({type:"text",value:E})}do if(l=o.pop(),l.type!=="root"){l.nodes.forEach(X=>{X.nodes||(X.type==="open"&&(X.isOpen=!0),X.type==="close"&&(X.isClose=!0),X.nodes||(X.type="text"),X.invalid=!0)});let F=o[o.length-1],Q=F.nodes.indexOf(l);F.nodes.splice(Q,1,...l.nodes)}while(o.length>0);return B({type:"eos"}),a};_wn.exports=Pio});var Swn=H((xMl,Ewn)=>{"use strict";var bwn=Ilt(),Wio=gwn(),Oio=pwn(),Mio=ywn(),NW=(e,t={})=>{let r=[];if(Array.isArray(e))for(let n of e){let a=NW.create(n,t);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(NW.create(e,t));return t&&t.expand===!0&&t.nodupes===!0&&(r=[...new Set(r)]),r};NW.parse=(e,t={})=>Mio(e,t);NW.stringify=(e,t={})=>bwn(typeof e=="string"?NW.parse(e,t):e,t);NW.compile=(e,t={})=>(typeof e=="string"&&(e=NW.parse(e,t)),Wio(e,t));NW.expand=(e,t={})=>{typeof e=="string"&&(e=NW.parse(e,t));let r=Oio(e,t);return t.noempty===!0&&(r=r.filter(Boolean)),t.nodupes===!0&&(r=[...new Set(r)]),r};NW.create=(e,t={})=>e===""||e.length<3?[e]:t.expand!==!0?NW.compile(e,t):NW.expand(e,t);Ewn.exports=NW});var f3e=H((GMl,Rwn)=>{"use strict";var Hio=wt("path"),PK="\\\\/",vwn=`[^${PK}]`,Uq="\\.",Yio="\\+",Qio="\\?",Clt="\\/",Xio="(?=.)",Bwn="[^/]",g7t=`(?:${Clt}|$)`,wwn=`(?:^|${Clt})`,A7t=`${Uq}{1,2}${g7t}`,Jio=`(?!${Uq})`,Uio=`(?!${wwn}${A7t})`,Kio=`(?!${Uq}{0,1}${g7t})`,jio=`(?!${A7t})`,zio=`[^.${Clt}]`,qio=`${Bwn}*?`,Twn={DOT_LITERAL:Uq,PLUS_LITERAL:Yio,QMARK_LITERAL:Qio,SLASH_LITERAL:Clt,ONE_CHAR:Xio,QMARK:Bwn,END_ANCHOR:g7t,DOTS_SLASH:A7t,NO_DOT:Jio,NO_DOTS:Uio,NO_DOT_SLASH:Kio,NO_DOTS_SLASH:jio,QMARK_NO_DOT:zio,STAR:qio,START_ANCHOR:wwn},$io={...Twn,SLASH_LITERAL:`[${PK}]`,QMARK:vwn,STAR:`${vwn}*?`,DOTS_SLASH:`${Uq}{1,2}(?:[${PK}]|$)`,NO_DOT:`(?!${Uq})`,NO_DOTS:`(?!(?:^|[${PK}])${Uq}{1,2}(?:[${PK}]|$))`,NO_DOT_SLASH:`(?!${Uq}{0,1}(?:[${PK}]|$))`,NO_DOTS_SLASH:`(?!${Uq}{1,2}(?:[${PK}]|$))`,QMARK_NO_DOT:`[^.${PK}]`,START_ANCHOR:`(?:^|[${PK}])`,END_ANCHOR:`(?:[${PK}]|$)`},eso={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};Rwn.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:eso,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:Hio.sep,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?$io:Twn}}});var I3e=H(Y9=>{"use strict";var tso=wt("path"),rso=process.platform==="win32",{REGEX_BACKSLASH:nso,REGEX_REMOVE_BACKSLASH:iso,REGEX_SPECIAL_CHARS:sso,REGEX_SPECIAL_CHARS_GLOBAL:oso}=f3e();Y9.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Y9.hasRegexChars=e=>sso.test(e);Y9.isRegexChar=e=>e.length===1&&Y9.hasRegexChars(e);Y9.escapeRegex=e=>e.replace(oso,"\\$1");Y9.toPosixSlashes=e=>e.replace(nso,"/");Y9.removeBackslashes=e=>e.replace(iso,t=>t==="\\"?"":t);Y9.supportsLookbehinds=()=>{let e=process.version.slice(1).split(".").map(Number);return e.length===3&&e[0]>=9||e[0]===8&&e[1]>=10};Y9.isWindows=e=>e&&typeof e.windows=="boolean"?e.windows:rso===!0||tso.sep==="\\";Y9.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?Y9.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};Y9.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};Y9.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o}});var Lwn=H((ZMl,Zwn)=>{"use strict";var Nwn=I3e(),{CHAR_ASTERISK:d7t,CHAR_AT:aso,CHAR_BACKWARD_SLASH:h3e,CHAR_COMMA:cso,CHAR_DOT:p7t,CHAR_EXCLAMATION_MARK:f7t,CHAR_FORWARD_SLASH:Fwn,CHAR_LEFT_CURLY_BRACE:I7t,CHAR_LEFT_PARENTHESES:h7t,CHAR_LEFT_SQUARE_BRACKET:lso,CHAR_PLUS:uso,CHAR_QUESTION_MARK:Dwn,CHAR_RIGHT_CURLY_BRACE:gso,CHAR_RIGHT_PARENTHESES:kwn,CHAR_RIGHT_SQUARE_BRACKET:Aso}=f3e(),xwn=e=>e===Fwn||e===h3e,Gwn=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},dso=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&xwn(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Nwn.removeBackslashes(je)),ct&&ae===!0&&(ct=Nwn.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,xwn(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var _lt=f3e(),DW=I3e(),{MAX_LENGTH:ylt,POSIX_REGEX_SOURCE:pso,REGEX_NON_SPECIAL_CHARS:fso,REGEX_SPECIAL_CHARS_BACKREF:Iso,REPLACEMENTS:Vwn}=_lt,hso=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>DW.escapeRegex(a)).join("..")}return r},LSe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,m7t=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=Vwn[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=DW.isWindows(t),I=_lt.globChars(f),C=_lt.extglobChars(I),{DOT_LITERAL:b,PLUS_LITERAL:E,SLASH_LITERAL:N,ONE_CHAR:B,DOTS_SLASH:F,NO_DOT:Q,NO_DOT_SLASH:X,NO_DOTS_SLASH:ae,QMARK:ne,QMARK_NO_DOT:ce,STAR:fe,START_ANCHOR:ue}=I,de=Ar=>`(${A}(?:(?!${ue}${Ar.dot?F:b}).)*?)`,be=r.dot?"":Q,Se=r.dot?ne:ce,De=r.bash===!0?de(r):fe;r.capture&&(De=`(${De})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let k={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=DW.removePrefix(e,k),a=e.length;let et=[],ct=[],Me=[],je=o,St,At=()=>k.index===a-1,Yt=k.peek=(Ar=1)=>e[k.index+Ar],Tr=k.advance=()=>e[++k.index]||"",Nr=()=>e.slice(k.index+1),er=(Ar="",qr=0)=>{k.consumed+=Ar,k.index+=qr},vt=Ar=>{k.output+=Ar.output!=null?Ar.output:Ar.value,er(Ar.value)},xt=()=>{let Ar=1;for(;Yt()==="!"&&(Yt(2)!=="("||Yt(3)==="?");)Tr(),k.start++,Ar++;return Ar%2===0?!1:(k.negated=!0,k.start++,!0)},Zr=Ar=>{k[Ar]++,Me.push(Ar)},qt=Ar=>{k[Ar]--,Me.pop()},Xt=Ar=>{if(je.type==="globstar"){let qr=k.braces>0&&(Ar.type==="comma"||Ar.type==="brace"),_n=Ar.extglob===!0||et.length&&(Ar.type==="pipe"||Ar.type==="paren");Ar.type!=="slash"&&Ar.type!=="paren"&&!qr&&!_n&&(k.output=k.output.slice(0,-je.output.length),je.type="star",je.value="*",je.output=De,k.output+=je.output)}if(et.length&&Ar.type!=="paren"&&(et[et.length-1].inner+=Ar.value),(Ar.value||Ar.output)&&vt(Ar),je&&je.type==="text"&&Ar.type==="text"){je.value+=Ar.value,je.output=(je.output||"")+Ar.value;return}Ar.prev=je,l.push(Ar),je=Ar},lr=(Ar,qr)=>{let _n={...C[qr],conditions:1,inner:""};_n.prev=je,_n.parens=k.parens,_n.output=k.output;let ke=(r.capture?"(":"")+_n.open;Zr("parens"),Xt({type:Ar,value:qr,output:k.output?"":B}),Xt({type:"paren",extglob:!0,value:Tr(),output:ke}),et.push(_n)},cr=Ar=>{let qr=Ar.close+(r.capture?")":""),_n;if(Ar.type==="negate"){let ke=De;if(Ar.inner&&Ar.inner.length>1&&Ar.inner.includes("/")&&(ke=de(r)),(ke!==De||At()||/^\)+$/.test(Nr()))&&(qr=Ar.close=`)$))${ke}`),Ar.inner.includes("*")&&(_n=Nr())&&/^\.[^\\/.]+$/.test(_n)){let jt=m7t(_n,{...t,fastpaths:!1}).output;qr=Ar.close=`)${jt})${ke})`}Ar.prev.type==="bos"&&(k.negatedExtglob=!0)}Xt({type:"paren",extglob:!0,value:St,output:qr}),qt("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let Ar=!1,qr=e.replace(Iso,(_n,ke,jt,Fn,Nn,Hi)=>Fn==="\\"?(Ar=!0,_n):Fn==="?"?ke?ke+Fn+(Nn?ne.repeat(Nn.length):""):Hi===0?Se+(Nn?ne.repeat(Nn.length):""):ne.repeat(jt.length):Fn==="."?b.repeat(jt.length):Fn==="*"?ke?ke+Fn+(Nn?De:""):De:ke?_n:`\\${_n}`);return Ar===!0&&(r.unescape===!0?qr=qr.replace(/\\/g,""):qr=qr.replace(/\\+/g,_n=>_n.length%2===0?"\\\\":_n?"\\":"")),qr===e&&r.contains===!0?(k.output=e,k):(k.output=DW.wrapOutput(qr,k,t),k)}for(;!At();){if(St=Tr(),St==="\0")continue;if(St==="\\"){let _n=Yt();if(_n==="/"&&r.bash!==!0||_n==="."||_n===";")continue;if(!_n){St+="\\",Xt({type:"text",value:St});continue}let ke=/^\\+/.exec(Nr()),jt=0;if(ke&&ke[0].length>2&&(jt=ke[0].length,k.index+=jt,jt%2!==0&&(St+="\\")),r.unescape===!0?St=Tr():St+=Tr(),k.brackets===0){Xt({type:"text",value:St});continue}}if(k.brackets>0&&(St!=="]"||je.value==="["||je.value==="[^")){if(r.posix!==!1&&St===":"){let _n=je.value.slice(1);if(_n.includes("[")&&(je.posix=!0,_n.includes(":"))){let ke=je.value.lastIndexOf("["),jt=je.value.slice(0,ke),Fn=je.value.slice(ke+2),Nn=pso[Fn];if(Nn){je.value=jt+Nn,k.backtrack=!0,Tr(),!o.output&&l.indexOf(je)===1&&(o.output=B);continue}}}(St==="["&&Yt()!==":"||St==="-"&&Yt()==="]")&&(St=`\\${St}`),St==="]"&&(je.value==="["||je.value==="[^")&&(St=`\\${St}`),r.posix===!0&&St==="!"&&je.value==="["&&(St="^"),je.value+=St,vt({value:St});continue}if(k.quotes===1&&St!=='"'){St=DW.escapeRegex(St),je.value+=St,vt({value:St});continue}if(St==='"'){k.quotes=k.quotes===1?0:1,r.keepQuotes===!0&&Xt({type:"text",value:St});continue}if(St==="("){Zr("parens"),Xt({type:"paren",value:St});continue}if(St===")"){if(k.parens===0&&r.strictBrackets===!0)throw new SyntaxError(LSe("opening","("));let _n=et[et.length-1];if(_n&&k.parens===_n.parens+1){cr(et.pop());continue}Xt({type:"paren",value:St,output:k.parens?")":"\\)"}),qt("parens");continue}if(St==="["){if(r.nobracket===!0||!Nr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));St=`\\${St}`}else Zr("brackets");Xt({type:"bracket",value:St});continue}if(St==="]"){if(r.nobracket===!0||je&&je.type==="bracket"&&je.value.length===1){Xt({type:"text",value:St,output:`\\${St}`});continue}if(k.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(LSe("opening","["));Xt({type:"text",value:St,output:`\\${St}`});continue}qt("brackets");let _n=je.value.slice(1);if(je.posix!==!0&&_n[0]==="^"&&!_n.includes("/")&&(St=`/${St}`),je.value+=St,vt({value:St}),r.literalBrackets===!1||DW.hasRegexChars(_n))continue;let ke=DW.escapeRegex(je.value);if(k.output=k.output.slice(0,-je.value.length),r.literalBrackets===!0){k.output+=ke,je.value=ke;continue}je.value=`(${A}${ke}|${je.value})`,k.output+=je.value;continue}if(St==="{"&&r.nobrace!==!0){Zr("braces");let _n={type:"brace",value:St,output:"(",outputIndex:k.output.length,tokensIndex:k.tokens.length};ct.push(_n),Xt(_n);continue}if(St==="}"){let _n=ct[ct.length-1];if(r.nobrace===!0||!_n){Xt({type:"text",value:St,output:St});continue}let ke=")";if(_n.dots===!0){let jt=l.slice(),Fn=[];for(let Nn=jt.length-1;Nn>=0&&(l.pop(),jt[Nn].type!=="brace");Nn--)jt[Nn].type!=="dots"&&Fn.unshift(jt[Nn].value);ke=hso(Fn,r),k.backtrack=!0}if(_n.comma!==!0&&_n.dots!==!0){let jt=k.output.slice(0,_n.outputIndex),Fn=k.tokens.slice(_n.tokensIndex);_n.value=_n.output="\\{",St=ke="\\}",k.output=jt;for(let Nn of Fn)k.output+=Nn.output||Nn.value}Xt({type:"brace",value:St,output:ke}),qt("braces"),ct.pop();continue}if(St==="|"){et.length>0&&et[et.length-1].conditions++,Xt({type:"text",value:St});continue}if(St===","){let _n=St,ke=ct[ct.length-1];ke&&Me[Me.length-1]==="braces"&&(ke.comma=!0,_n="|"),Xt({type:"comma",value:St,output:_n});continue}if(St==="/"){if(je.type==="dot"&&k.index===k.start+1){k.start=k.index+1,k.consumed="",k.output="",l.pop(),je=o;continue}Xt({type:"slash",value:St,output:N});continue}if(St==="."){if(k.braces>0&&je.type==="dot"){je.value==="."&&(je.output=b);let _n=ct[ct.length-1];je.type="dots",je.output+=St,je.value+=St,_n.dots=!0;continue}if(k.braces+k.parens===0&&je.type!=="bos"&&je.type!=="slash"){Xt({type:"text",value:St,output:b});continue}Xt({type:"dot",value:St,output:b});continue}if(St==="?"){if(!(je&&je.value==="(")&&r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("qmark",St);continue}if(je&&je.type==="paren"){let ke=Yt(),jt=St;if(ke==="<"&&!DW.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(je.value==="("&&!/[!=<:]/.test(ke)||ke==="<"&&!/<([!=]|\w+>)/.test(Nr()))&&(jt=`\\${St}`),Xt({type:"text",value:St,output:jt});continue}if(r.dot!==!0&&(je.type==="slash"||je.type==="bos")){Xt({type:"qmark",value:St,output:ce});continue}Xt({type:"qmark",value:St,output:ne});continue}if(St==="!"){if(r.noextglob!==!0&&Yt()==="("&&(Yt(2)!=="?"||!/[!=<:]/.test(Yt(3)))){lr("negate",St);continue}if(r.nonegate!==!0&&k.index===0){xt();continue}}if(St==="+"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){lr("plus",St);continue}if(je&&je.value==="("||r.regex===!1){Xt({type:"plus",value:St,output:E});continue}if(je&&(je.type==="bracket"||je.type==="paren"||je.type==="brace")||k.parens>0){Xt({type:"plus",value:St});continue}Xt({type:"plus",value:E});continue}if(St==="@"){if(r.noextglob!==!0&&Yt()==="("&&Yt(2)!=="?"){Xt({type:"at",extglob:!0,value:St,output:""});continue}Xt({type:"text",value:St});continue}if(St!=="*"){(St==="$"||St==="^")&&(St=`\\${St}`);let _n=fso.exec(Nr());_n&&(St+=_n[0],k.index+=_n[0].length),Xt({type:"text",value:St});continue}if(je&&(je.type==="globstar"||je.star===!0)){je.type="star",je.star=!0,je.value+=St,je.output=De,k.backtrack=!0,k.globstar=!0,er(St);continue}let Ar=Nr();if(r.noextglob!==!0&&/^\([^?]/.test(Ar)){lr("star",St);continue}if(je.type==="star"){if(r.noglobstar===!0){er(St);continue}let _n=je.prev,ke=_n.prev,jt=_n.type==="slash"||_n.type==="bos",Fn=ke&&(ke.type==="star"||ke.type==="globstar");if(r.bash===!0&&(!jt||Ar[0]&&Ar[0]!=="/")){Xt({type:"star",value:St,output:""});continue}let Nn=k.braces>0&&(_n.type==="comma"||_n.type==="brace"),Hi=et.length&&(_n.type==="pipe"||_n.type==="paren");if(!jt&&_n.type!=="paren"&&!Nn&&!Hi){Xt({type:"star",value:St,output:""});continue}for(;Ar.slice(0,3)==="/**";){let po=e[k.index+4];if(po&&po!=="/")break;Ar=Ar.slice(3),er("/**",3)}if(_n.type==="bos"&&At()){je.type="globstar",je.value+=St,je.output=de(r),k.output=je.output,k.globstar=!0,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&!Fn&&At()){k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=de(r)+(r.strictSlashes?")":"|$)"),je.value+=St,k.globstar=!0,k.output+=_n.output+je.output,er(St);continue}if(_n.type==="slash"&&_n.prev.type!=="bos"&&Ar[0]==="/"){let po=Ar[1]!==void 0?"|$":"";k.output=k.output.slice(0,-(_n.output+je.output).length),_n.output=`(?:${_n.output}`,je.type="globstar",je.output=`${de(r)}${N}|${N}${po})`,je.value+=St,k.output+=_n.output+je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}if(_n.type==="bos"&&Ar[0]==="/"){je.type="globstar",je.value+=St,je.output=`(?:^|${N}|${de(r)}${N})`,k.output=je.output,k.globstar=!0,er(St+Tr()),Xt({type:"slash",value:"/",output:""});continue}k.output=k.output.slice(0,-je.output.length),je.type="globstar",je.output=de(r),je.value+=St,k.output+=je.output,k.globstar=!0,er(St);continue}let qr={type:"star",value:St,output:De};if(r.bash===!0){qr.output=".*?",(je.type==="bos"||je.type==="slash")&&(qr.output=be+qr.output),Xt(qr);continue}if(je&&(je.type==="bracket"||je.type==="paren")&&r.regex===!0){qr.output=St,Xt(qr);continue}(k.index===k.start||je.type==="slash"||je.type==="dot")&&(je.type==="dot"?(k.output+=X,je.output+=X):r.dot===!0?(k.output+=ae,je.output+=ae):(k.output+=be,je.output+=be),Yt()!=="*"&&(k.output+=B,je.output+=B)),Xt(qr)}for(;k.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","]"));k.output=DW.escapeLast(k.output,"["),qt("brackets")}for(;k.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing",")"));k.output=DW.escapeLast(k.output,"("),qt("parens")}for(;k.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(LSe("closing","}"));k.output=DW.escapeLast(k.output,"{"),qt("braces")}if(r.strictSlashes!==!0&&(je.type==="star"||je.type==="bracket")&&Xt({type:"maybe_slash",value:"",output:`${N}?`}),k.backtrack===!0){k.output="";for(let Ar of k.tokens)k.output+=Ar.output!=null?Ar.output:Ar.value,Ar.suffix&&(k.output+=Ar.suffix)}return k};m7t.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(ylt,r.maxLength):ylt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=Vwn[e]||e;let o=DW.isWindows(t),{DOT_LITERAL:l,SLASH_LITERAL:A,ONE_CHAR:f,DOTS_SLASH:I,NO_DOT:C,NO_DOTS:b,NO_DOTS_SLASH:E,STAR:N,START_ANCHOR:B}=_lt.globChars(o),F=r.dot?b:C,Q=r.dot?E:C,X=r.capture?"":"?:",ae={negated:!1,prefix:""},ne=r.bash===!0?".*?":N;r.capture&&(ne=`(${ne})`);let ce=be=>be.noglobstar===!0?ne:`(${X}(?:(?!${B}${be.dot?I:l}).)*?)`,fe=be=>{switch(be){case"*":return`${F}${f}${ne}`;case".*":return`${l}${f}${ne}`;case"*.*":return`${F}${ne}${l}${f}${ne}`;case"*/*":return`${F}${ne}${A}${f}${Q}${ne}`;case"**":return F+ce(r);case"**/*":return`(?:${F}${ce(r)}${A})?${Q}${f}${ne}`;case"**/*.*":return`(?:${F}${ce(r)}${A})?${Q}${ne}${l}${f}${ne}`;case"**/.*":return`(?:${F}${ce(r)}${A})?${l}${f}${ne}`;default:{let Se=/^(.*?)\.(\w+)$/.exec(be);if(!Se)return;let De=fe(Se[1]);return De?De+l+Se[2]:void 0}}},ue=DW.removePrefix(e,ae),de=fe(ue);return de&&r.strictSlashes!==!0&&(de+=`${A}?`),de};Pwn.exports=m7t});var Mwn=H((VMl,Own)=>{"use strict";var mso=wt("path"),Cso=Lwn(),C7t=Wwn(),_7t=I3e(),_so=f3e(),yso=e=>e&&typeof e=="object"&&!Array.isArray(e),KB=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>KB(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=yso(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=_7t.isWindows(t),l=n?KB.compileRe(e,t):KB.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=KB(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=KB.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};KB.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?_7t.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=KB.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};KB.matchBase=(e,t,r,n=_7t.isWindows(r))=>(t instanceof RegExp?t:KB.makeRe(t,r)).test(mso.basename(e));KB.isMatch=(e,t,r)=>KB(t,r)(e);KB.parse=(e,t)=>Array.isArray(e)?e.map(r=>KB.parse(r,t)):C7t(e,{...t,fastpaths:!1});KB.scan=(e,t)=>Cso(e,t);KB.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=KB.toRegex(A,t);return n===!0&&(f.state=e),f};KB.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=C7t.fastpaths(e,t)),a.output||(a=C7t(e,t)),KB.compileRe(a,t,r,n)};KB.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};KB.constants=_so;Own.exports=KB});var Ywn=H((PMl,Hwn)=>{"use strict";Hwn.exports=Mwn()});var Ek=H((WMl,Kwn)=>{"use strict";var Xwn=wt("util"),Jwn=Swn(),WK=Ywn(),y7t=I3e(),Qwn=e=>e===""||e==="./",Uwn=e=>{let t=e.indexOf("{");return t>-1&&e.indexOf("}",t)>-1},x1=(e,t,r)=>{t=[].concat(t),e=[].concat(e);let n=new Set,a=new Set,o=new Set,l=0,A=C=>{o.add(C.output),r&&r.onResult&&r.onResult(C)};for(let C=0;C!n.has(C));if(r&&I.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${t.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?t.map(C=>C.replace(/\\/g,"")):t}return I};x1.match=x1;x1.matcher=(e,t)=>WK(e,t);x1.isMatch=(e,t,r)=>WK(t,r)(e);x1.any=x1.isMatch;x1.not=(e,t,r={})=>{t=[].concat(t).map(String);let n=new Set,a=[],o=A=>{r.onResult&&r.onResult(A),a.push(A.output)},l=new Set(x1(e,t,{...r,onResult:o}));for(let A of a)l.has(A)||n.add(A);return[...n]};x1.contains=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);if(Array.isArray(t))return t.some(n=>x1.contains(e,n,r));if(typeof t=="string"){if(Qwn(e)||Qwn(t))return!1;if(e.includes(t)||e.startsWith("./")&&e.slice(2).includes(t))return!0}return x1.isMatch(e,t,{...r,contains:!0})};x1.matchKeys=(e,t,r)=>{if(!y7t.isObject(e))throw new TypeError("Expected the first argument to be an object");let n=x1(Object.keys(e),t,r),a={};for(let o of n)a[o]=e[o];return a};x1.some=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(n.some(l=>o(l)))return!0}return!1};x1.every=(e,t,r)=>{let n=[].concat(e);for(let a of[].concat(t)){let o=WK(String(a),r);if(!n.every(l=>o(l)))return!1}return!0};x1.all=(e,t,r)=>{if(typeof e!="string")throw new TypeError(`Expected a string: "${Xwn.inspect(e)}"`);return[].concat(t).every(n=>WK(n,r)(e))};x1.capture=(e,t,r)=>{let n=y7t.isWindows(r),o=WK.makeRe(String(e),{...r,capture:!0}).exec(n?y7t.toPosixSlashes(t):t);if(o)return o.slice(1).map(l=>l===void 0?"":l)};x1.makeRe=(...e)=>WK.makeRe(...e);x1.scan=(...e)=>WK.scan(...e);x1.parse=(e,t)=>{let r=[];for(let n of[].concat(e||[]))for(let a of Jwn(String(n),t))r.push(WK.parse(a,t));return r};x1.braces=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return t&&t.nobrace===!0||!Uwn(e)?[e]:Jwn(e,t)};x1.braceExpand=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");return x1.braces(e,{...t,expand:!0})};x1.hasBraces=Uwn;Kwn.exports=x1});var zwn=H((OMl,jwn)=>{"use strict";jwn.exports=({onlyFirst:e=!1}={})=>{let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}});var q5=H((MMl,qwn)=>{"use strict";var bso=zwn();qwn.exports=e=>typeof e=="string"?e.replace(bso(),""):e});var E7t=H(b7t=>{"use strict";Object.defineProperty(b7t,Symbol.toStringTag,{value:"Module"});function Eso(e){return arguments.length===0?[]:Array.isArray(e)?e:[e]}b7t.castArray=Eso});var $wn=H(S7t=>{"use strict";Object.defineProperty(S7t,Symbol.toStringTag,{value:"Module"});function Sso(e,t){if(!Number.isInteger(t)||t<=0)throw new Error("Size must be an integer greater than zero.");let r=Math.ceil(e.length/t),n=Array(r);for(let a=0;a{"use strict";Object.defineProperty(v7t,Symbol.toStringTag,{value:"Module"});function vso(e){return Array.isArray(e)?e:Array.from(e)}v7t.toArray=vso});var eTn=H(B7t=>{"use strict";Object.defineProperty(B7t,Symbol.toStringTag,{value:"Module"});function Bso(e){return Number.isSafeInteger(e)&&e>=0}B7t.isLength=Bso});var Sf=H(w7t=>{"use strict";Object.defineProperty(w7t,Symbol.toStringTag,{value:"Module"});var wso=eTn();function Tso(e){return e!=null&&typeof e!="function"&&wso.isLength(e.length)}w7t.isArrayLike=Tso});var R7t=H(T7t=>{"use strict";Object.defineProperty(T7t,Symbol.toStringTag,{value:"Module"});var Rso=$wn(),Nso=SZ(),Dso=Sf();function kso(e,t=1){return t=Math.max(Math.floor(t),0),t===0||!Dso.isArrayLike(e)?[]:Rso.chunk(Nso.toArray(e),t)}T7t.chunk=kso});var tTn=H(N7t=>{"use strict";Object.defineProperty(N7t,Symbol.toStringTag,{value:"Module"});function xso(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(D7t,Symbol.toStringTag,{value:"Module"});var Gso=tTn(),Fso=Sf();function Zso(e){return Fso.isArrayLike(e)?Gso.compact(Array.from(e)):[]}D7t.compact=Zso});var m3e=H(x7t=>{"use strict";Object.defineProperty(x7t,Symbol.toStringTag,{value:"Module"});function Lso(e,t=1){let r=[],n=Math.floor(t),a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(G7t,Symbol.toStringTag,{value:"Module"});var Vso=m3e();function Pso(...e){return Vso.flatten(e)}G7t.concat=Pso});var bm=H(Z7t=>{"use strict";Object.defineProperty(Z7t,Symbol.toStringTag,{value:"Module"});function Wso(e){return e}Z7t.identity=Wso});var C3e=H(L7t=>{"use strict";Object.defineProperty(L7t,Symbol.toStringTag,{value:"Module"});function Oso(e){return e==="__proto__"}L7t.isUnsafeProperty=Oso});var VSe=H(V7t=>{"use strict";Object.defineProperty(V7t,Symbol.toStringTag,{value:"Module"});function Mso(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e.includes(".")||e.includes("[")||e.includes("]")}}V7t.isDeepKey=Mso});var Kq=H(P7t=>{"use strict";Object.defineProperty(P7t,Symbol.toStringTag,{value:"Module"});function Hso(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}P7t.toKey=Hso});var qy=H(W7t=>{"use strict";Object.defineProperty(W7t,Symbol.toStringTag,{value:"Module"});function rTn(e){if(e==null)return"";if(typeof e=="string")return e;if(Array.isArray(e))return e.map(rTn).join(",");let t=String(e);return t==="0"&&Object.is(Number(e),-0)?"-0":t}W7t.toString=rTn});var $5=H(O7t=>{"use strict";Object.defineProperty(O7t,Symbol.toStringTag,{value:"Module"});var Yso=qy(),Qso=Kq();function Xso(e){if(Array.isArray(e))return e.map(Qso.toKey);if(typeof e=="symbol")return[e];e=Yso.toString(e);let t=[],r=e.length;if(r===0)return t;let n=0,a="",o="",l=!1;for(e.charCodeAt(0)===46&&(t.push(""),n++);n{"use strict";Object.defineProperty(H7t,Symbol.toStringTag,{value:"Module"});var M7t=C3e(),Jso=VSe(),Uso=Kq(),Kso=$5();function nTn(e,t,r){if(e==null)return r;switch(typeof t){case"string":{if(M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?Jso.isDeepKey(t)?nTn(e,Kso.toPath(t),r):r:n}case"number":case"symbol":{typeof t=="number"&&(t=Uso.toKey(t));let n=e[t];return n===void 0?r:n}default:{if(Array.isArray(t))return jso(e,t,r);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),M7t.isUnsafeProperty(t))return r;let n=e[t];return n===void 0?r:n}}}function jso(e,t,r){if(t.length===0)return r;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Y7t,Symbol.toStringTag,{value:"Module"});var zso=eM();function qso(e){return function(t){return zso.get(t,e)}}Y7t.property=qso});var tM=H(Q7t=>{"use strict";Object.defineProperty(Q7t,Symbol.toStringTag,{value:"Module"});function $so(e){return e!==null&&(typeof e=="object"||typeof e=="function")}Q7t.isObject=$so});var PSe=H(X7t=>{"use strict";Object.defineProperty(X7t,Symbol.toStringTag,{value:"Module"});function eoo(e){return e==null||typeof e!="object"&&typeof e!="function"}X7t.isPrimitive=eoo});var Sk=H(J7t=>{"use strict";Object.defineProperty(J7t,Symbol.toStringTag,{value:"Module"});function too(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}J7t.isEqualsSameValueZero=too});var Elt=H(blt=>{"use strict";Object.defineProperty(blt,Symbol.toStringTag,{value:"Module"});var roo=tM(),iTn=PSe(),sTn=Sk();function oTn(e,t,r){return typeof r!="function"?oTn(e,t,()=>{}):U7t(e,t,function n(a,o,l,A,f,I){let C=r(a,o,l,A,f,I);return C!==void 0?!!C:U7t(a,o,n,I)},new Map)}function U7t(e,t,r,n){if(t===e)return!0;switch(typeof t){case"object":return noo(e,t,r,n);case"function":return Object.keys(t).length>0?U7t(e,{...t},r,n):sTn.isEqualsSameValueZero(e,t);default:return roo.isObject(e)?typeof t=="string"?t==="":!0:sTn.isEqualsSameValueZero(e,t)}}function noo(e,t,r,n){if(t==null)return!0;if(Array.isArray(t))return aTn(e,t,r,n);if(t instanceof Map)return ioo(e,t,r,n);if(t instanceof Set)return cTn(e,t,r,n);let a=Object.keys(t);if(e==null||iTn.isPrimitive(e))return a.length===0;if(a.length===0)return!0;if(n?.has(t))return n.get(t)===e;n?.set(t,e);try{for(let o=0;o{"use strict";Object.defineProperty(K7t,Symbol.toStringTag,{value:"Module"});var soo=Elt();function ooo(e,t){return soo.isMatchWith(e,t,()=>{})}K7t.isMatch=ooo});var y3e=H(j7t=>{"use strict";Object.defineProperty(j7t,Symbol.toStringTag,{value:"Module"});function aoo(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}j7t.getSymbols=aoo});var Zfe=H(z7t=>{"use strict";Object.defineProperty(z7t,Symbol.toStringTag,{value:"Module"});function coo(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}z7t.getTag=coo});var b3e=H($y=>{"use strict";Object.defineProperty($y,Symbol.toStringTag,{value:"Module"});var loo="[object RegExp]",uoo="[object String]",goo="[object Number]",Aoo="[object Boolean]",doo="[object Arguments]",poo="[object Symbol]",foo="[object Date]",Ioo="[object Map]",hoo="[object Set]",moo="[object Array]",Coo="[object Function]",_oo="[object ArrayBuffer]",yoo="[object Object]",boo="[object Error]",Eoo="[object DataView]",Soo="[object Uint8Array]",voo="[object Uint8ClampedArray]",Boo="[object Uint16Array]",woo="[object Uint32Array]",Too="[object BigUint64Array]",Roo="[object Int8Array]",Noo="[object Int16Array]",Doo="[object Int32Array]",koo="[object BigInt64Array]",xoo="[object Float32Array]",Goo="[object Float64Array]";$y.argumentsTag=doo;$y.arrayBufferTag=_oo;$y.arrayTag=moo;$y.bigInt64ArrayTag=koo;$y.bigUint64ArrayTag=Too;$y.booleanTag=Aoo;$y.dataViewTag=Eoo;$y.dateTag=foo;$y.errorTag=boo;$y.float32ArrayTag=xoo;$y.float64ArrayTag=Goo;$y.functionTag=Coo;$y.int16ArrayTag=Noo;$y.int32ArrayTag=Doo;$y.int8ArrayTag=Roo;$y.mapTag=Ioo;$y.numberTag=goo;$y.objectTag=yoo;$y.regexpTag=loo;$y.setTag=hoo;$y.stringTag=uoo;$y.symbolTag=poo;$y.uint16ArrayTag=Boo;$y.uint32ArrayTag=woo;$y.uint8ArrayTag=Soo;$y.uint8ClampedArrayTag=voo});var $7t=H(q7t=>{"use strict";Object.defineProperty(q7t,Symbol.toStringTag,{value:"Module"});var Foo=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||function(){return this}()||Function("return this")();q7t.globalThis=Foo});var noe=H(ezt=>{"use strict";Object.defineProperty(ezt,Symbol.toStringTag,{value:"Module"});var lTn=$7t();function Zoo(e){return typeof lTn.globalThis.Buffer<"u"&&lTn.globalThis.Buffer.isBuffer(e)}ezt.isBuffer=Zoo});var Slt=H(tzt=>{"use strict";Object.defineProperty(tzt,Symbol.toStringTag,{value:"Module"});function Loo(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}tzt.isTypedArray=Loo});var rzt=H(E3e=>{"use strict";Object.defineProperty(E3e,Symbol.toStringTag,{value:"Module"});var Voo=y3e(),Poo=Zfe(),Zv=b3e(),Woo=noe(),Ooo=PSe(),Moo=Slt();function Hoo(e,t){return Lfe(e,void 0,e,new Map,t)}function Lfe(e,t,r,n=new Map,a=void 0){let o=a?.(e,t,r,n);if(o!==void 0)return o;if(Ooo.isPrimitive(e))return e;if(n.has(e))return n.get(e);if(Array.isArray(e)){let l=new Array(e.length);n.set(e,l);for(let A=0;A{"use strict";Object.defineProperty(nzt,Symbol.toStringTag,{value:"Module"});var Qoo=rzt();function Xoo(e){return Qoo.cloneDeepWithImpl(e,void 0,e,new Map,void 0)}nzt.cloneDeep=Xoo});var OK=H(szt=>{"use strict";Object.defineProperty(szt,Symbol.toStringTag,{value:"Module"});var Joo=_3e(),Uoo=izt();function Koo(e){return e=Uoo.cloneDeep(e),t=>Joo.isMatch(t,e)}szt.matches=Koo});var v3e=H(ozt=>{"use strict";Object.defineProperty(ozt,Symbol.toStringTag,{value:"Module"});var vlt=rzt(),joo=Zfe(),S3e=b3e();function zoo(e,t){return vlt.cloneDeepWith(e,(r,n,a,o)=>{let l=t?.(r,n,a,o);if(l!==void 0)return l;if(typeof e=="object"){if(joo.getTag(e)===S3e.objectTag&&typeof e.constructor!="function"){let A={};return o.set(e,A),vlt.copyProperties(A,e,a,o),A}switch(Object.prototype.toString.call(e)){case S3e.numberTag:case S3e.stringTag:case S3e.booleanTag:{let A=new e.constructor(e?.valueOf());return vlt.copyProperties(A,e),A}case S3e.argumentsTag:{let A={};return vlt.copyProperties(A,e),A.length=e.length,A[Symbol.iterator]=e[Symbol.iterator],A}default:return}}})}ozt.cloneDeepWith=zoo});var WSe=H(azt=>{"use strict";Object.defineProperty(azt,Symbol.toStringTag,{value:"Module"});var qoo=v3e();function $oo(e){return qoo.cloneDeepWith(e)}azt.cloneDeep=$oo});var OSe=H(czt=>{"use strict";Object.defineProperty(czt,Symbol.toStringTag,{value:"Module"});var eao=/^(?:0|[1-9]\d*)$/;function tao(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e{"use strict";Object.defineProperty(lzt,Symbol.toStringTag,{value:"Module"});var rao=Zfe();function nao(e){return e!==null&&typeof e=="object"&&rao.getTag(e)==="[object Arguments]"}lzt.isArguments=nao});var B3e=H(uzt=>{"use strict";Object.defineProperty(uzt,Symbol.toStringTag,{value:"Module"});var iao=VSe(),sao=OSe(),oao=Vfe(),aao=$5();function cao(e,t){let r;if(Array.isArray(t)?r=t:typeof t=="string"&&iao.isDeepKey(t)&&e?.[t]==null?r=aao.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(gzt,Symbol.toStringTag,{value:"Module"});var lao=_3e(),uao=Kq(),gao=WSe(),Aao=eM(),dao=B3e();function pao(e,t){switch(typeof e){case"object":{Object.is(e?.valueOf(),-0)&&(e="-0");break}case"number":{e=uao.toKey(e);break}}return t=gao.cloneDeep(t),function(r){let n=Aao.get(r,e);return n===void 0?dao.has(r,e):t===void 0?n===void 0:lao.isMatch(n,t)}}gzt.matchesProperty=pao});var im=H(Azt=>{"use strict";Object.defineProperty(Azt,Symbol.toStringTag,{value:"Module"});var fao=bm(),Iao=nX(),hao=OK(),mao=MK();function Cao(e){if(e==null)return fao.identity;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?mao.matchesProperty(e[0],e[1]):hao.matches(e);case"string":case"symbol":case"number":return Iao.property(e)}}Azt.iteratee=Cao});var pzt=H(dzt=>{"use strict";Object.defineProperty(dzt,Symbol.toStringTag,{value:"Module"});var _ao=Sf(),yao=im();function bao(e,t){if(e==null)return{};let r=_ao.isArrayLike(e)?Array.from(e):Object.values(e),n=yao.iteratee(t??void 0),a=Object.create(null);for(let o=0;o{"use strict";Object.defineProperty(fzt,Symbol.toStringTag,{value:"Module"});function Eao(e,t){let r=new Set(t);return e.filter(n=>!r.has(n))}fzt.difference=Eao});var ioe=H(Izt=>{"use strict";Object.defineProperty(Izt,Symbol.toStringTag,{value:"Module"});function Sao(e){return typeof e=="object"&&e!==null}Izt.isObjectLike=Sao});var b2=H(hzt=>{"use strict";Object.defineProperty(hzt,Symbol.toStringTag,{value:"Module"});var vao=Sf(),Bao=ioe();function wao(e){return Bao.isObjectLike(e)&&vao.isArrayLike(e)}hzt.isArrayLikeObject=wao});var Czt=H(mzt=>{"use strict";Object.defineProperty(mzt,Symbol.toStringTag,{value:"Module"});var Tao=w3e(),Rao=SZ(),uTn=b2();function Nao(e,...t){if(!uTn.isArrayLikeObject(e))return[];let r=Rao.toArray(e),n=[];for(let a=0;a{"use strict";Object.defineProperty(_zt,Symbol.toStringTag,{value:"Module"});function Dao(e){return e[e.length-1]}_zt.last=Dao});var zq=H(yzt=>{"use strict";Object.defineProperty(yzt,Symbol.toStringTag,{value:"Module"});var kao=T3e(),xao=SZ(),Gao=Sf();function Fao(e){if(Gao.isArrayLike(e))return kao.last(xao.toArray(e))}yzt.last=Fao});var gTn=H(bzt=>{"use strict";Object.defineProperty(bzt,Symbol.toStringTag,{value:"Module"});function Zao(e,t,r){let n=new Set(t.map(a=>r(a)));return e.filter(a=>!n.has(r(a)))}bzt.differenceBy=Zao});var R3e=H(Ezt=>{"use strict";Object.defineProperty(Ezt,Symbol.toStringTag,{value:"Module"});var Lao=b2();function Vao(e){let t=[];for(let r=0;r{"use strict";Object.defineProperty(Szt,Symbol.toStringTag,{value:"Module"});var Pao=zq(),Wao=w3e(),Oao=gTn(),Mao=R3e(),ATn=b2(),Hao=im();function Yao(e,...t){if(!ATn.isArrayLikeObject(e))return[];let r=Pao.last(t),n=Mao.flattenArrayLike(t);return ATn.isArrayLikeObject(r)?Wao.difference(Array.from(e),n):Oao.differenceBy(Array.from(e),n,Hao.iteratee(r))}Szt.differenceBy=Yao});var dTn=H(vzt=>{"use strict";Object.defineProperty(vzt,Symbol.toStringTag,{value:"Module"});function Qao(e,t,r){return e.filter(n=>t.every(a=>!r(n,a)))}vzt.differenceWith=Qao});var wlt=H(Bzt=>{"use strict";Object.defineProperty(Bzt,Symbol.toStringTag,{value:"Module"});var Xao=zq(),Jao=w3e(),Uao=dTn(),Kao=R3e(),jao=b2();function zao(e,...t){if(!jao.isArrayLikeObject(e))return[];let r=Xao.last(t),n=Kao.flattenArrayLike(t);return typeof r=="function"?Uao.differenceWith(Array.from(e),n,r):Jao.difference(Array.from(e),n)}Bzt.differenceWith=zao});var pTn=H(wzt=>{"use strict";Object.defineProperty(wzt,Symbol.toStringTag,{value:"Module"});function qao(e,t){return t=Math.max(t,0),e.slice(t)}wzt.drop=qao});var soe=H(Tzt=>{"use strict";Object.defineProperty(Tzt,Symbol.toStringTag,{value:"Module"});function $ao(e){return typeof e=="symbol"||e instanceof Symbol}Tzt.isSymbol=$ao});var Q9=H(Rzt=>{"use strict";Object.defineProperty(Rzt,Symbol.toStringTag,{value:"Module"});var eco=soe();function tco(e){return eco.isSymbol(e)?NaN:Number(e)}Rzt.toNumber=tco});var MSe=H(Nzt=>{"use strict";Object.defineProperty(Nzt,Symbol.toStringTag,{value:"Module"});var rco=Q9();function nco(e){return e?(e=rco.toNumber(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}Nzt.toFinite=nco});var $w=H(Dzt=>{"use strict";Object.defineProperty(Dzt,Symbol.toStringTag,{value:"Module"});var ico=MSe();function sco(e){let t=ico.toFinite(e),r=t%1;return r?t-r:t}Dzt.toInteger=sco});var xzt=H(kzt=>{"use strict";Object.defineProperty(kzt,Symbol.toStringTag,{value:"Module"});var oco=pTn(),aco=SZ(),cco=Sf(),lco=$w();function uco(e,t=1,r){return cco.isArrayLike(e)?(t=r?1:lco.toInteger(t),oco.drop(aco.toArray(e),t)):[]}kzt.drop=uco});var fTn=H(Gzt=>{"use strict";Object.defineProperty(Gzt,Symbol.toStringTag,{value:"Module"});function gco(e,t){return t=Math.min(-t,0),t===0?e.slice():e.slice(0,t)}Gzt.dropRight=gco});var Zzt=H(Fzt=>{"use strict";Object.defineProperty(Fzt,Symbol.toStringTag,{value:"Module"});var Aco=fTn(),dco=SZ(),pco=Sf(),fco=$w();function Ico(e,t=1,r){return pco.isArrayLike(e)?(t=r?1:fco.toInteger(t),Aco.dropRight(dco.toArray(e),t)):[]}Fzt.dropRight=Ico});var ITn=H(Lzt=>{"use strict";Object.defineProperty(Lzt,Symbol.toStringTag,{value:"Module"});function hco(e,t){for(let r=e.length-1;r>=0;r--)if(!t(e[r],r,e))return e.slice(0,r+1);return[]}Lzt.dropRightWhile=hco});var Pzt=H(Vzt=>{"use strict";Object.defineProperty(Vzt,Symbol.toStringTag,{value:"Module"});var Tlt=ITn(),mco=bm(),Cco=nX(),_co=Sf(),yco=OK(),bco=MK();function Eco(e,t=mco.identity){return _co.isArrayLike(e)?Sco(Array.from(e),t):[]}function Sco(e,t){switch(typeof t){case"function":return Tlt.dropRightWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Tlt.dropRightWhile(e,bco.matchesProperty(r,n))}else return Tlt.dropRightWhile(e,yco.matches(t));case"symbol":case"number":case"string":return Tlt.dropRightWhile(e,Cco.property(t))}}Vzt.dropRightWhile=Eco});var hTn=H(Wzt=>{"use strict";Object.defineProperty(Wzt,Symbol.toStringTag,{value:"Module"});function vco(e,t){let r=e.findIndex((n,a,o)=>!t(n,a,o));return r===-1?[]:e.slice(r)}Wzt.dropWhile=vco});var Mzt=H(Ozt=>{"use strict";Object.defineProperty(Ozt,Symbol.toStringTag,{value:"Module"});var Rlt=hTn(),Bco=bm(),wco=SZ(),Tco=nX(),Rco=Sf(),Nco=OK(),Dco=MK();function kco(e,t=Bco.identity){return Rco.isArrayLike(e)?xco(wco.toArray(e),t):[]}function xco(e,t){switch(typeof t){case"function":return Rlt.dropWhile(e,(r,n,a)=>!!t(r,n,a));case"object":if(Array.isArray(t)&&t.length===2){let r=t[0],n=t[1];return Rlt.dropWhile(e,Dco.matchesProperty(r,n))}else return Rlt.dropWhile(e,Nco.matches(t));case"number":case"symbol":case"string":return Rlt.dropWhile(e,Tco.property(t))}}Ozt.dropWhile=kco});var ooe=H(Hzt=>{"use strict";Object.defineProperty(Hzt,Symbol.toStringTag,{value:"Module"});function Gco(e,t,r=1){if(t==null&&(t=e,e=0),!Number.isInteger(r)||r===0)throw new Error("The step value must be a non-zero integer.");let n=Math.max(Math.ceil((t-e)/r),0),a=new Array(n);for(let o=0;o{"use strict";Object.defineProperty(Yzt,Symbol.toStringTag,{value:"Module"});var Fco=bm(),Zco=ooe(),Lco=Sf();function Vco(e,t=Fco.identity){if(!e)return e;let r=Lco.isArrayLike(e)||Array.isArray(e)?Zco.range(0,e.length):Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(Qzt,Symbol.toStringTag,{value:"Module"});var Pco=bm(),Wco=ooe(),Oco=Sf();function Mco(e,t=Pco.identity){if(!e)return e;let r=Oco.isArrayLike(e)?Wco.range(0,e.length):Object.keys(e);for(let n=r.length-1;n>=0;n--){let a=r[n],o=e[a];if(t(o,a,e)===!1)break}return e}Qzt.forEachRight=Mco});var qq=H(Jzt=>{"use strict";Object.defineProperty(Jzt,Symbol.toStringTag,{value:"Module"});var Hco=OSe(),Yco=Sf(),Qco=tM(),Xco=Sk();function Jco(e,t,r){return Qco.isObject(r)&&(typeof t=="number"&&Yco.isArrayLike(r)&&Hco.isIndex(t)&&t{"use strict";Object.defineProperty(Uzt,Symbol.toStringTag,{value:"Module"});var Uco=bm(),Kco=qq(),jco=nX(),zco=Sf(),qco=OK(),$co=MK();function elo(e,t,r){if(!e)return!0;r&&Kco.isIterateeCall(e,t,r)&&(t=void 0),t||(t=Uco.identity);let n;switch(typeof t){case"function":{n=t;break}case"object":{if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];n=$co.matchesProperty(a,o)}else n=qco.matches(t);break}case"symbol":case"number":case"string":n=jco.property(t)}if(!zco.isArrayLike(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(jzt,Symbol.toStringTag,{value:"Module"});function tlo(e,t,r=0,n=e.length){let a=e.length,o=Math.max(r>=0?r:a+r,0),l=Math.min(n>=0?n:a+n,a);for(let A=o;A{"use strict";Object.defineProperty(zzt,Symbol.toStringTag,{value:"Module"});function rlo(e){return typeof e=="string"||e instanceof String}zzt.isString=rlo});var $zt=H(qzt=>{"use strict";Object.defineProperty(qzt,Symbol.toStringTag,{value:"Module"});var nlo=mTn(),ilo=Sf(),slo=HSe();function olo(e,t,r=0,n=e?e.length:0){return ilo.isArrayLike(e)?slo.isString(e)?e:(r=Math.floor(r),n=Math.floor(n),r||(r=0),n||(n=0),nlo.fill(e,t,r,n)):[]}qzt.fill=olo});var Dlt=H(eqt=>{"use strict";Object.defineProperty(eqt,Symbol.toStringTag,{value:"Module"});var alo=bm(),clo=Sf(),llo=im();function ulo(e,t=alo.identity){if(!e)return[];if(t=llo.iteratee(t),!Array.isArray(e)){let a=[],o=Object.keys(e),l=clo.isArrayLike(e)?e.length:o.length;for(let A=0;A{"use strict";Object.defineProperty(tqt,Symbol.toStringTag,{value:"Module"});var glo=bm(),Alo=im();function dlo(e,t=glo.identity,r=0){if(!e)return;r<0&&(r=Math.max(e.length+r,0));let n=Alo.iteratee(t);if(!Array.isArray(e)){let a=Object.keys(e);for(let o=r;o{"use strict";Object.defineProperty(nqt,Symbol.toStringTag,{value:"Module"});function plo(e){return e}nqt.identity=plo});var sqt=H(iqt=>{"use strict";Object.defineProperty(iqt,Symbol.toStringTag,{value:"Module"});var flo=HK(),Ilo=nX(),hlo=OK(),mlo=MK();function Clo(e,t=flo.identity,r=0){if(!e)return-1;r<0&&(r=Math.max(e.length+r,0));let n=Array.from(e).slice(r),a=-1;switch(typeof t){case"function":{a=n.findIndex(t);break}case"object":{if(Array.isArray(t)&&t.length===2){let o=t[0],l=t[1];a=n.findIndex(mlo.matchesProperty(o,l))}else a=n.findIndex(hlo.matches(t));break}case"number":case"symbol":case"string":a=n.findIndex(Ilo.property(t))}return a===-1?-1:a+r}iqt.findIndex=Clo});var aqt=H(oqt=>{"use strict";Object.defineProperty(oqt,Symbol.toStringTag,{value:"Module"});var _lo=bm(),ylo=im(),blo=$w();function Elo(e,t=_lo.identity,r){if(!e)return;let n=Array.isArray(e)?e.length:Object.keys(e).length;r=blo.toInteger(r??n-1),r<0?r=Math.max(n+r,0):r=Math.min(r,n-1);let a=ylo.iteratee(t);if(!Array.isArray(e)){let o=Object.keys(e);for(let l=r;l>=0;l--){let A=o[l],f=e[A];if(a(f,A,e))return f}return}return e.slice(0,r+1).findLast(a)}oqt.findLast=Elo});var lqt=H(cqt=>{"use strict";Object.defineProperty(cqt,Symbol.toStringTag,{value:"Module"});var Slo=bm(),vlo=SZ(),Blo=nX(),wlo=OK(),Tlo=MK();function Rlo(e,t=Slo.identity,r=e?e.length-1:0){if(!e)return-1;r<0?r=Math.max(e.length+r,0):r=Math.min(r,e.length-1);let n=vlo.toArray(e).slice(0,r+1);switch(typeof t){case"function":return n.findLastIndex(t);case"object":if(Array.isArray(t)&&t.length===2){let a=t[0],o=t[1];return n.findLastIndex(Tlo.matchesProperty(a,o))}else return n.findLastIndex(wlo.matches(t));case"number":case"symbol":case"string":return n.findLastIndex(Blo.property(t))}}cqt.findLastIndex=Rlo});var CTn=H(uqt=>{"use strict";Object.defineProperty(uqt,Symbol.toStringTag,{value:"Module"});function Nlo(e){return e[0]}uqt.head=Nlo});var Aqt=H(gqt=>{"use strict";Object.defineProperty(gqt,Symbol.toStringTag,{value:"Module"});var Dlo=CTn(),klo=SZ(),xlo=Sf();function Glo(e){if(xlo.isArrayLike(e))return Dlo.head(klo.toArray(e))}gqt.head=Glo});var Pfe=H(dqt=>{"use strict";Object.defineProperty(dqt,Symbol.toStringTag,{value:"Module"});var Flo=Sf();function Zlo(e,t=1){let r=[],n=Math.floor(t);if(!Flo.isArrayLike(e))return r;let a=(o,l)=>{for(let A=0;A{"use strict";Object.defineProperty(pqt,Symbol.toStringTag,{value:"Module"});var Llo=Pfe();function Vlo(e,t=1){return Llo.flatten(e,t)}pqt.flattenDepth=Vlo});var N3e=H(fqt=>{"use strict";Object.defineProperty(fqt,Symbol.toStringTag,{value:"Module"});var Plo=bm(),Wlo=ooe(),Olo=Sf(),Mlo=im();function Hlo(e,t){if(!e)return[];let r=Olo.isArrayLike(e)||Array.isArray(e)?Wlo.range(0,e.length):Object.keys(e),n=Mlo.iteratee(t??Plo.identity),a=new Array(r.length);for(let o=0;o{"use strict";Object.defineProperty(Iqt,Symbol.toStringTag,{value:"Module"});function Ylo(e){return e==null}Iqt.isNil=Ylo});var mqt=H(hqt=>{"use strict";Object.defineProperty(hqt,Symbol.toStringTag,{value:"Module"});var Qlo=YSe(),_Tn=N3e(),yTn=aoe();function Xlo(e,t){if(yTn.isNil(e))return[];let r=yTn.isNil(t)?_Tn.map(e):_Tn.map(e,t);return Qlo.flattenDepth(r,1)}hqt.flatMap=Xlo});var D3e=H(Cqt=>{"use strict";Object.defineProperty(Cqt,Symbol.toStringTag,{value:"Module"});var Jlo=Pfe(),Ulo=N3e(),Klo=bm(),jlo=im();function zlo(e,t=Klo.identity,r=1){if(e==null)return[];let n=jlo.iteratee(t),a=Ulo.map(e,n);return Jlo.flatten(a,r)}Cqt.flatMapDepth=zlo});var yqt=H(_qt=>{"use strict";Object.defineProperty(_qt,Symbol.toStringTag,{value:"Module"});var qlo=D3e();function $lo(e,t){return qlo.flatMapDepth(e,t,1/0)}_qt.flatMapDeep=$lo});var Eqt=H(bqt=>{"use strict";Object.defineProperty(bqt,Symbol.toStringTag,{value:"Module"});var euo=YSe();function tuo(e){return euo.flattenDepth(e,1/0)}bqt.flattenDeep=tuo});var bTn=H(Sqt=>{"use strict";Object.defineProperty(Sqt,Symbol.toStringTag,{value:"Module"});function ruo(e,t){let r={};for(let n=0;n{"use strict";Object.defineProperty(vqt,Symbol.toStringTag,{value:"Module"});var nuo=bTn(),iuo=bm(),suo=Sf(),ouo=im();function auo(e,t){if(e==null)return{};let r=suo.isArrayLike(e)?Array.from(e):Object.values(e),n=ouo.iteratee(t??iuo.identity);return nuo.groupBy(r,n)}vqt.groupBy=auo});var Tqt=H(wqt=>{"use strict";Object.defineProperty(wqt,Symbol.toStringTag,{value:"Module"});var cuo=HSe(),luo=Sk(),uuo=$w();function guo(e,t,r,n){if(e==null)return!1;if(n||!r?r=0:r=uuo.toInteger(r),cuo.isString(e))return r>e.length||t instanceof RegExp?!1:(r<0&&(r=Math.max(0,e.length+r)),e.includes(t,r));if(Array.isArray(e))return e.includes(t,r);let a=Object.keys(e);r<0&&(r=Math.max(0,a.length+r));for(let o=r;o{"use strict";Object.defineProperty(Rqt,Symbol.toStringTag,{value:"Module"});var Auo=Sf();function duo(e,t,r){if(!Auo.isArrayLike(e))return-1;if(Number.isNaN(t)){r=r??0,r<0&&(r=Math.max(0,e.length+r));for(let n=r;n{"use strict";Object.defineProperty(Dqt,Symbol.toStringTag,{value:"Module"});function puo(e){return e.slice(0,-1)}Dqt.initial=puo});var xqt=H(kqt=>{"use strict";Object.defineProperty(kqt,Symbol.toStringTag,{value:"Module"});var fuo=ETn(),Iuo=Sf();function huo(e){return Iuo.isArrayLike(e)?fuo.initial(Array.from(e)):[]}kqt.initial=huo});var STn=H(Gqt=>{"use strict";Object.defineProperty(Gqt,Symbol.toStringTag,{value:"Module"});function muo(e,t){let r=new Set(t);return e.filter(n=>r.has(n))}Gqt.intersection=muo});var Wfe=H(Fqt=>{"use strict";Object.defineProperty(Fqt,Symbol.toStringTag,{value:"Module"});function Cuo(e){return[...new Set(e)]}Fqt.uniq=Cuo});var Lqt=H(Zqt=>{"use strict";Object.defineProperty(Zqt,Symbol.toStringTag,{value:"Module"});var _uo=STn(),yuo=Wfe(),vTn=b2();function buo(...e){if(e.length===0)return[];if(!vTn.isArrayLikeObject(e[0]))return[];let t=yuo.uniq(Array.from(e[0]));for(let r=1;r{"use strict";Object.defineProperty(Vqt,Symbol.toStringTag,{value:"Module"});function Euo(e,t,r){let n=[],a=new Set(t.map(r));for(let o=0;o{"use strict";Object.defineProperty(Wqt,Symbol.toStringTag,{value:"Module"});var Pqt=BTn(),Suo=T3e(),vuo=Wfe(),Buo=bm(),wuo=nX(),klt=b2();function Tuo(e,...t){if(!klt.isArrayLikeObject(e))return[];let r=Suo.last(t);if(r===void 0)return Array.from(e);let n=vuo.uniq(Array.from(e)),a=klt.isArrayLikeObject(r)?t.length:t.length-1;for(let o=0;or(A)):typeof r=="string"&&(n=Pqt.intersectionBy(n,Array.from(l),wuo.property(r)))}return n}Wqt.intersectionBy=Tuo});var wTn=H(Oqt=>{"use strict";Object.defineProperty(Oqt,Symbol.toStringTag,{value:"Module"});function Ruo(e,t,r){return e.filter(n=>t.some(a=>r(n,a)))}Oqt.intersectionWith=Ruo});var k3e=H(Mqt=>{"use strict";Object.defineProperty(Mqt,Symbol.toStringTag,{value:"Module"});var Nuo=Wfe(),Duo=Sf();function kuo(e){return Duo.isArrayLike(e)?Nuo.uniq(Array.from(e)):[]}Mqt.uniq=kuo});var Glt=H(Hqt=>{"use strict";Object.defineProperty(Hqt,Symbol.toStringTag,{value:"Module"});var xuo=zq(),Guo=wTn(),Fuo=k3e(),Zuo=Sk();function Luo(e,...t){if(e==null)return[];let r=xuo.last(t),n=Zuo.isEqualsSameValueZero,a=Fuo.uniq;typeof r=="function"&&(n=r,a=Vuo,t.pop());let o=a(Array.from(e));for(let l=0;l{"use strict";Object.defineProperty(Yqt,Symbol.toStringTag,{value:"Module"});function Puo(e){return typeof e=="function"}Yqt.isFunction=Puo});var Jqt=H(Xqt=>{"use strict";Object.defineProperty(Xqt,Symbol.toStringTag,{value:"Module"});$7t();var Wuo=coe(),Ouo=aoe(),Qqt=eM(),Muo=Sf();function Huo(e,t,...r){if(Ouo.isNil(e))return[];let n=Muo.isArrayLike(e)?Array.from(e):Object.values(e),a=[];for(let o=0;o0&&(f=Qqt.get(l,I))}else if(typeof t=="string"&&t.includes(".")){let C=t.split(".").slice(0,-1).join(".");f=Qqt.get(l,C)}a.push(A?.apply(f,r))}return a}Xqt.invokeMap=Huo});var Kqt=H(Uqt=>{"use strict";Object.defineProperty(Uqt,Symbol.toStringTag,{value:"Module"});var Yuo=Sf();function Quo(e,t){return Yuo.isArrayLike(e)?Array.from(e).join(t):""}Uqt.join=Quo});var Flt=H(jqt=>{"use strict";Object.defineProperty(jqt,Symbol.toStringTag,{value:"Module"});var Xuo=bm(),Juo=ooe(),Uuo=Sf();function Kuo(e,t=Xuo.identity,r){if(!e)return r;let n,a=0;Uuo.isArrayLike(e)?(n=Juo.range(0,e.length),r==null&&e.length>0&&(r=e[0],a+=1)):(n=Object.keys(e),r==null&&(r=e[n[0]],a+=1));for(let o=a;o{"use strict";Object.defineProperty(zqt,Symbol.toStringTag,{value:"Module"});var juo=Flt(),zuo=bm(),quo=Sf(),$uo=ioe(),ego=im();function tgo(e,t){if(!quo.isArrayLike(e)&&!$uo.isObjectLike(e))return{};let r=ego.iteratee(t??zuo.identity);return juo.reduce(e,(n,a)=>{let o=r(a);return n[o]=a,n},{})}zqt.keyBy=tgo});var e$t=H($qt=>{"use strict";Object.defineProperty($qt,Symbol.toStringTag,{value:"Module"});var rgo=Sf();function ngo(e,t,r){if(!rgo.isArrayLike(e)||e.length===0)return-1;let n=e.length,a=r??n-1;if(r!=null&&(a=a<0?Math.max(n+a,0):Math.min(a,n-1)),Number.isNaN(t)){for(let o=a;o>=0;o--)if(Number.isNaN(e[o]))return o}return Array.from(e).lastIndexOf(t,a)}$qt.lastIndexOf=ngo});var r$t=H(t$t=>{"use strict";Object.defineProperty(t$t,Symbol.toStringTag,{value:"Module"});var igo=b2(),sgo=$w();function ogo(e,t=0){if(!(!igo.isArrayLikeObject(e)||e.length===0))return t=sgo.toInteger(t),t<0&&(t+=e.length),e[t]}t$t.nth=ogo});var RTn=H(n$t=>{"use strict";Object.defineProperty(n$t,Symbol.toStringTag,{value:"Module"});function TTn(e){return typeof e=="symbol"?1:e===null?2:e===void 0?3:e!==e?4:0}var ago=(e,t,r)=>{if(e!==t){let n=TTn(e),a=TTn(t);if(n===a&&n===0){if(et)return r==="desc"?-1:1}return r==="desc"?a-n:n-a}return 0};n$t.compareValues=ago});var x3e=H(i$t=>{"use strict";Object.defineProperty(i$t,Symbol.toStringTag,{value:"Module"});var cgo=soe(),lgo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ugo=/^\w*$/;function ggo(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||cgo.isSymbol(e)?!0:typeof e=="string"&&(ugo.test(e)||!lgo.test(e))||t!=null&&Object.hasOwn(t,e)}i$t.isKey=ggo});var Zlt=H(s$t=>{"use strict";Object.defineProperty(s$t,Symbol.toStringTag,{value:"Module"});var Ago=RTn(),dgo=x3e(),pgo=$5();function fgo(e,t,r,n){if(e==null)return[];r=n?void 0:r,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(r)||(r=r==null?[]:[r]),r=r.map(f=>String(f));let a=(f,I)=>{let C=f;for(let b=0;bI==null||f==null?I:typeof f=="object"&&"key"in f?Object.hasOwn(I,f.key)?I[f.key]:a(I,f.path):typeof f=="function"?f(I):Array.isArray(f)?a(I,f):typeof I=="object"?I[f]:I,l=t.map(f=>(Array.isArray(f)&&f.length===1&&(f=f[0]),f==null||typeof f=="function"||Array.isArray(f)||dgo.isKey(f)?f:{key:f,path:pgo.toPath(f)}));return e.map(f=>({original:f,criteria:l.map(I=>o(I,f))})).slice().sort((f,I)=>{for(let C=0;Cf.original)}s$t.orderBy=fgo});var a$t=H(o$t=>{"use strict";Object.defineProperty(o$t,Symbol.toStringTag,{value:"Module"});var Igo=bm(),hgo=Sf(),mgo=im();function Cgo(e,t=Igo.identity){if(!e)return[[],[]];let r=hgo.isArrayLike(e)?e:Object.values(e);t=mgo.iteratee(t);let n=[],a=[];for(let o=0;o{"use strict";Object.defineProperty(c$t,Symbol.toStringTag,{value:"Module"});function _go(e,t){let r=new Set(t),n=0;for(let a=0;a{"use strict";Object.defineProperty(u$t,Symbol.toStringTag,{value:"Module"});var ygo=l$t();function bgo(e,...t){return ygo.pull(e,t)}u$t.pull=bgo});var d$t=H(A$t=>{"use strict";Object.defineProperty(A$t,Symbol.toStringTag,{value:"Module"});var Ego=l$t();function Sgo(e,t=[]){return Ego.pull(e,Array.from(t))}A$t.pullAll=Sgo});var f$t=H(p$t=>{"use strict";Object.defineProperty(p$t,Symbol.toStringTag,{value:"Module"});var vgo=im();function Bgo(e,t,r){let n=vgo.iteratee(r),a=new Set(Array.from(t).map(l=>n(l))),o=0;for(let l=0;l{"use strict";function wgo(e,t){let r=e.length;t==null&&(t=Array(r));for(let n=0;n{"use strict";Object.defineProperty(I$t,Symbol.toStringTag,{value:"Module"});var Tgo=DTn(),Rgo=Sk();function Ngo(e,t,r){if(e?.length==null||t?.length==null)return e;e===t&&(t=Tgo(t));let n=0;r==null&&(r=(l,A)=>Rgo.isEqualsSameValueZero(l,A));let a=Array.isArray(t)?t:Array.from(t),o=a.includes(void 0);for(let l=0;lr(e[l],f))||(e[n++]=e[l]);continue}o||delete e[n++]}return e.length=n,e}I$t.pullAllWith=Ngo});var Llt=H(m$t=>{"use strict";Object.defineProperty(m$t,Symbol.toStringTag,{value:"Module"});var Dgo=eM(),kgo=Sf(),xgo=HSe();function Ggo(e,...t){if(t.length===0)return[];let r=[];for(let a=0;a{"use strict";Object.defineProperty(_$t,Symbol.toStringTag,{value:"Module"});var Fgo=eM(),C$t=C3e(),Zgo=VSe(),Lgo=Kq(),Vgo=$5();function Pgo(e,t){if(e==null)return!0;switch(typeof t){case"symbol":case"number":case"object":{if(Array.isArray(t))return kTn(e,t);if(typeof t=="number"?t=Lgo.toKey(t):typeof t=="object"&&(Object.is(t?.valueOf(),-0)?t="-0":t=String(t)),C$t.isUnsafeProperty(t))return!1;if(e?.[t]===void 0)return!0;try{return delete e[t],!0}catch{return!1}}case"string":{if(e?.[t]===void 0&&Zgo.isDeepKey(t))return kTn(e,Vgo.toPath(t));if(C$t.isUnsafeProperty(t))return!1;try{return delete e[t],!0}catch{return!1}}}}function kTn(e,t){let r=t.length===1?e:Fgo.get(e,t.slice(0,-1)),n=t[t.length-1];if(r?.[n]===void 0)return!0;if(C$t.isUnsafeProperty(n))return!1;try{return delete r[n],!0}catch{return!1}}_$t.unset=Pgo});var $q=H(y$t=>{"use strict";Object.defineProperty(y$t,Symbol.toStringTag,{value:"Module"});function Wgo(e){return Array.isArray(e)}y$t.isArray=Wgo});var E$t=H(b$t=>{"use strict";Object.defineProperty(b$t,Symbol.toStringTag,{value:"Module"});var Ogo=YSe(),xTn=OSe(),Mgo=x3e(),Hgo=Kq(),Ygo=Llt(),Qgo=G3e(),Xgo=$q(),Jgo=$5();function Ugo(e,...t){let r=Ogo.flattenDepth(t,1);if(!e)return Array(r.length);let n=Ygo.at(e,r),a=r.map(o=>xTn.isIndex(o,e.length)?Number(o):o).sort((o,l)=>l-o);for(let o of new Set(a)){if(xTn.isIndex(o,e.length)){Array.prototype.splice.call(e,o,1);continue}if(Mgo.isKey(o,e)){delete e[Hgo.toKey(o)];continue}let l=Xgo.isArray(o)?o:Jgo.toPath(o);Qgo.unset(e,l)}return n}b$t.pullAt=Ugo});var v$t=H(S$t=>{"use strict";Object.defineProperty(S$t,Symbol.toStringTag,{value:"Module"});var Kgo=bm(),jgo=ooe(),zgo=Sf();function qgo(e,t=Kgo.identity,r){if(!e)return r;let n,a;zgo.isArrayLike(e)?(n=jgo.range(0,e.length).reverse(),r==null&&e.length>0?(r=e[e.length-1],a=1):a=0):(n=Object.keys(e).reverse(),r==null?(r=e[n[0]],a=1):a=0);for(let o=a;o{"use strict";Object.defineProperty(B$t,Symbol.toStringTag,{value:"Module"});function $go(e){if(typeof e!="function")throw new TypeError("Expected a function");return function(...t){return!e.apply(this,t)}}B$t.negate=$go});var T$t=H(w$t=>{"use strict";Object.defineProperty(w$t,Symbol.toStringTag,{value:"Module"});var eAo=Dlt(),tAo=bm(),rAo=F3e(),nAo=im();function iAo(e,t=tAo.identity){return eAo.filter(e,rAo.negate(nAo.iteratee(t)))}w$t.reject=iAo});var GTn=H(R$t=>{"use strict";Object.defineProperty(R$t,Symbol.toStringTag,{value:"Module"});function sAo(e,t){let r=e.slice(),n=[],a=0;for(let o=0;o{"use strict";Object.defineProperty(N$t,Symbol.toStringTag,{value:"Module"});var oAo=GTn(),aAo=bm(),cAo=im();function lAo(e,t=aAo.identity){return oAo.remove(e,cAo.iteratee(t))}N$t.remove=lAo});var x$t=H(k$t=>{"use strict";Object.defineProperty(k$t,Symbol.toStringTag,{value:"Module"});function uAo(e){return e==null?e:e.reverse()}k$t.reverse=uAo});var FTn=H(G$t=>{"use strict";Object.defineProperty(G$t,Symbol.toStringTag,{value:"Module"});function gAo(e){let t=Math.floor(Math.random()*e.length);return e[t]}G$t.sample=gAo});var Z$t=H(F$t=>{"use strict";Object.defineProperty(F$t,Symbol.toStringTag,{value:"Module"});var ZTn=FTn(),AAo=SZ(),dAo=Sf();function pAo(e){if(e!=null)return dAo.isArrayLike(e)?ZTn.sample(AAo.toArray(e)):ZTn.sample(Object.values(e))}F$t.sample=pAo});var V$t=H(L$t=>{"use strict";Object.defineProperty(L$t,Symbol.toStringTag,{value:"Module"});function fAo(e,t){if(t==null&&(t=e,e=0),e>=t)throw new Error("Invalid input: The maximum value must be greater than the minimum value.");return Math.random()*(t-e)+e}L$t.random=fAo});var W$t=H(P$t=>{"use strict";Object.defineProperty(P$t,Symbol.toStringTag,{value:"Module"});var IAo=V$t();function hAo(e,t){return Math.floor(IAo.random(e,t))}P$t.randomInt=hAo});var LTn=H(O$t=>{"use strict";Object.defineProperty(O$t,Symbol.toStringTag,{value:"Module"});var mAo=W$t();function CAo(e,t){if(t>e.length)throw new Error("Size must be less than or equal to the length of array.");let r=new Array(t),n=new Set;for(let a=e.length-t,o=0;a{"use strict";Object.defineProperty(M$t,Symbol.toStringTag,{value:"Module"});var VTn=Q9();function _Ao(e,t,r){return r===void 0&&(r=t,t=void 0),r!==void 0&&(r=VTn.toNumber(r),e=Math.min(e,Number.isNaN(r)?0:r)),t!==void 0&&(t=VTn.toNumber(t),e=Math.max(e,Number.isNaN(t)?0:t)),e}M$t.clamp=_Ao});var PTn=H(H$t=>{"use strict";Object.defineProperty(H$t,Symbol.toStringTag,{value:"Module"});function yAo(e){return e instanceof Map}H$t.isMap=yAo});var Vlt=H(Y$t=>{"use strict";Object.defineProperty(Y$t,Symbol.toStringTag,{value:"Module"});var bAo=PTn();function EAo(e){return bAo.isMap(e)}Y$t.isMap=EAo});var Z3e=H(Q$t=>{"use strict";Object.defineProperty(Q$t,Symbol.toStringTag,{value:"Module"});var SAo=Sf(),vAo=Vlt();function BAo(e){return e==null?[]:SAo.isArrayLike(e)||vAo.isMap(e)?Array.from(e):typeof e=="object"?Object.values(e):[]}Q$t.toArray=BAo});var J$t=H(X$t=>{"use strict";Object.defineProperty(X$t,Symbol.toStringTag,{value:"Module"});var wAo=LTn(),TAo=qq(),RAo=Ofe(),NAo=Z3e(),DAo=$w();function kAo(e,t,r){let n=NAo.toArray(e);return(r?TAo.isIterateeCall(e,t,r):t===void 0)?t=1:t=RAo.clamp(DAo.toInteger(t),0,n.length),wAo.sampleSize(n,t)}X$t.sampleSize=kAo});var WTn=H(U$t=>{"use strict";Object.defineProperty(U$t,Symbol.toStringTag,{value:"Module"});function xAo(e){let t=e.slice();for(let r=t.length-1;r>=1;r--){let n=Math.floor(Math.random()*(r+1));[t[r],t[n]]=[t[n],t[r]]}return t}U$t.shuffle=xAo});var Plt=H(K$t=>{"use strict";Object.defineProperty(K$t,Symbol.toStringTag,{value:"Module"});function GAo(e){return e==null?[]:Object.values(e)}K$t.values=GAo});var QSe=H(j$t=>{"use strict";Object.defineProperty(j$t,Symbol.toStringTag,{value:"Module"});function FAo(e){return e==null}j$t.isNil=FAo});var $$t=H(q$t=>{"use strict";Object.defineProperty(q$t,Symbol.toStringTag,{value:"Module"});var z$t=WTn(),ZAo=Plt(),LAo=$q(),VAo=Sf(),PAo=QSe(),WAo=ioe();function OAo(e){return PAo.isNil(e)?[]:LAo.isArray(e)?z$t.shuffle(e):VAo.isArrayLike(e)?z$t.shuffle(Array.from(e)):WAo.isObjectLike(e)?z$t.shuffle(ZAo.values(e)):[]}q$t.shuffle=OAo});var ter=H(eer=>{"use strict";Object.defineProperty(eer,Symbol.toStringTag,{value:"Module"});var MAo=aoe();function HAo(e){return MAo.isNil(e)?0:e instanceof Map||e instanceof Set?e.size:Object.keys(e).length}eer.size=HAo});var ner=H(rer=>{"use strict";Object.defineProperty(rer,Symbol.toStringTag,{value:"Module"});var YAo=qq(),QAo=Sf(),OTn=$w();function XAo(e,t,r){if(!QAo.isArrayLike(e))return[];let n=e.length;r===void 0?r=n:typeof r!="number"&&YAo.isIterateeCall(e,t,r)&&(t=0,r=n),t=OTn.toInteger(t),r=OTn.toInteger(r),t<0?t=Math.max(n+t,0):t=Math.min(t,n),r<0?r=Math.max(n+r,0):r=Math.min(r,n);let a=Math.max(r-t,0),o=new Array(a);for(let l=0;l{"use strict";Object.defineProperty(ier,Symbol.toStringTag,{value:"Module"});var JAo=bm(),UAo=nX(),KAo=OK(),jAo=MK();function zAo(e,t,r){if(!e)return!1;r!=null&&(t=void 0),t==null&&(t=JAo.identity);let n=Array.isArray(e)?e:Object.values(e);switch(typeof t){case"function":{if(!Array.isArray(e)){let a=Object.keys(e);for(let o=0;o{"use strict";Object.defineProperty(oer,Symbol.toStringTag,{value:"Module"});var qAo=Zlt(),$Ao=m3e(),MTn=qq();function edo(e,...t){let r=t.length;return r>1&&MTn.isIterateeCall(e,t[0],t[1])?t=[]:r>2&&MTn.isIterateeCall(t[0],t[1],t[2])&&(t=[t[0]]),qAo.orderBy(e,$Ao.flatten(t),["asc"])}oer.sortBy=edo});var Wlt=H(cer=>{"use strict";Object.defineProperty(cer,Symbol.toStringTag,{value:"Module"});function tdo(e){return e===null}cer.isNull=tdo});var uer=H(ler=>{"use strict";Object.defineProperty(ler,Symbol.toStringTag,{value:"Module"});function rdo(e){return e===void 0}ler.isUndefined=rdo});var Olt=H(ger=>{"use strict";Object.defineProperty(ger,Symbol.toStringTag,{value:"Module"});function ndo(e){return Number.isNaN(e)}ger.isNaN=ndo});var L3e=H(Aer=>{"use strict";Object.defineProperty(Aer,Symbol.toStringTag,{value:"Module"});var HTn=Wlt(),YTn=uer(),ido=HK(),QTn=Olt(),sdo=QSe(),XTn=soe(),odo=im(),ado=4294967295,cdo=ado-1;function ldo(e,t,r=ido.identity,n){if(sdo.isNil(e)||e.length===0)return 0;let a=0,o=e.length,l=odo.iteratee(r),A=l(t),f=QTn.isNaN(A),I=HTn.isNull(A),C=XTn.isSymbol(A),b=YTn.isUndefined(A);for(;a{"use strict";Object.defineProperty(der,Symbol.toStringTag,{value:"Module"});function udo(e){return typeof e=="symbol"}der.isSymbol=udo});var V3e=H(fer=>{"use strict";Object.defineProperty(fer,Symbol.toStringTag,{value:"Module"});function gdo(e){return typeof e=="number"||e instanceof Number}fer.isNumber=gdo});var Mlt=H(Ier=>{"use strict";Object.defineProperty(Ier,Symbol.toStringTag,{value:"Module"});var Ado=L3e(),ddo=aoe(),pdo=Wlt(),fdo=per(),Ido=V3e(),hdo=4294967295,mdo=hdo>>>1;function Cdo(e,t){if(ddo.isNil(e))return 0;let r=0,n=e.length;if(Ido.isNumber(t)&&t===t&&n<=mdo){for(;r>>1,o=e[a];!pdo.isNull(o)&&!fdo.isSymbol(o)&&oa)}Ier.sortedIndex=Cdo});var mer=H(her=>{"use strict";Object.defineProperty(her,Symbol.toStringTag,{value:"Module"});var _do=Mlt(),ydo=Sk();function bdo(e,t){if(!e?.length)return-1;let r=_do.sortedIndex(e,t);return r{"use strict";Object.defineProperty(Cer,Symbol.toStringTag,{value:"Module"});var Edo=L3e();function Sdo(e,t,r){return Edo.sortedIndexBy(e,t,r,!0)}Cer.sortedLastIndexBy=Sdo});var Ylt=H(_er=>{"use strict";Object.defineProperty(_er,Symbol.toStringTag,{value:"Module"});var vdo=Hlt(),Bdo=aoe(),wdo=Wlt(),Tdo=per(),Rdo=V3e(),Ndo=4294967295,Ddo=Ndo>>>1;function kdo(e,t){if(Bdo.isNil(e))return 0;let r=e.length;if(!Rdo.isNumber(t)||Number.isNaN(t)||r>Ddo)return vdo.sortedLastIndexBy(e,t,a=>a);let n=0;for(;n>>1,o=e[a];!wdo.isNull(o)&&!Tdo.isSymbol(o)&&o<=t?n=a+1:r=a}return r}_er.sortedLastIndex=kdo});var ber=H(yer=>{"use strict";Object.defineProperty(yer,Symbol.toStringTag,{value:"Module"});var xdo=Ylt(),Gdo=Sk();function Fdo(e,t){if(!e?.length)return-1;let r=xdo.sortedLastIndex(e,t)-1;return r>=0&&Gdo.isEqualsSameValueZero(e[r],t)?r:-1}yer.sortedLastIndexOf=Fdo});var JTn=H(Eer=>{"use strict";Object.defineProperty(Eer,Symbol.toStringTag,{value:"Module"});function Zdo(e){return e.slice(1)}Eer.tail=Zdo});var ver=H(Ser=>{"use strict";Object.defineProperty(Ser,Symbol.toStringTag,{value:"Module"});var Ldo=JTn(),Vdo=SZ(),Pdo=Sf();function Wdo(e){return Pdo.isArrayLike(e)?Ldo.tail(Vdo.toArray(e)):[]}Ser.tail=Wdo});var UTn=H(Ber=>{"use strict";Object.defineProperty(Ber,Symbol.toStringTag,{value:"Module"});var Odo=$w();function Mdo(e,t,r){return t=r||t===void 0?1:Odo.toInteger(t),e.slice(0,t)}Ber.take=Mdo});var Ter=H(wer=>{"use strict";Object.defineProperty(wer,Symbol.toStringTag,{value:"Module"});var Hdo=UTn(),Ydo=SZ(),Qdo=Sf(),Xdo=$w();function Jdo(e,t=1,r){return t=r?1:Xdo.toInteger(t),t<1||!Qdo.isArrayLike(e)?[]:Hdo.take(Ydo.toArray(e),t)}wer.take=Jdo});var KTn=H(Rer=>{"use strict";Object.defineProperty(Rer,Symbol.toStringTag,{value:"Module"});var Udo=$w();function Kdo(e,t,r){return t=r||t===void 0?1:Udo.toInteger(t),t<=0||e.length===0?[]:e.slice(-t)}Rer.takeRight=Kdo});var Der=H(Ner=>{"use strict";Object.defineProperty(Ner,Symbol.toStringTag,{value:"Module"});var jdo=KTn(),zdo=SZ(),qdo=Sf(),$do=$w();function epo(e,t=1,r){return t=r?1:$do.toInteger(t),t<=0||!qdo.isArrayLike(e)?[]:jdo.takeRight(zdo.toArray(e),t)}Ner.takeRight=epo});var jTn=H(ker=>{"use strict";Object.defineProperty(ker,Symbol.toStringTag,{value:"Module"});function tpo(e){return(...t)=>!e(...t)}ker.negate=tpo});var Ger=H(xer=>{"use strict";Object.defineProperty(xer,Symbol.toStringTag,{value:"Module"});var rpo=bm(),npo=jTn(),ipo=SZ(),spo=b2(),opo=im();function apo(e,t){if(!spo.isArrayLikeObject(e))return[];let r=ipo.toArray(e),n=r.findLastIndex(npo.negate(opo.iteratee(t??rpo.identity)));return r.slice(n+1)}xer.takeRightWhile=apo});var Zer=H(Fer=>{"use strict";Object.defineProperty(Fer,Symbol.toStringTag,{value:"Module"});var cpo=SZ(),lpo=HK(),upo=F3e(),gpo=b2(),Apo=im();function dpo(e,t){if(!gpo.isArrayLikeObject(e))return[];let r=cpo.toArray(e),n=r.findIndex(upo.negate(Apo.iteratee(t??lpo.identity)));return n===-1?r:r.slice(0,n)}Fer.takeWhile=dpo});var Ver=H(Ler=>{"use strict";Object.defineProperty(Ler,Symbol.toStringTag,{value:"Module"});var ppo=D3e(),fpo=Wfe(),Ipo=b2();function hpo(...e){let t=e.filter(Ipo.isArrayLikeObject),r=ppo.flatMapDepth(t,n=>Array.from(n),1);return fpo.uniq(r)}Ler.union=hpo});var Wer=H(Per=>{"use strict";Object.defineProperty(Per,Symbol.toStringTag,{value:"Module"});function mpo(e,t){let r=new Map;for(let n=0;n{"use strict";Object.defineProperty(Oer,Symbol.toStringTag,{value:"Module"});function Cpo(e,t){return function(...r){return e.apply(this,r.slice(0,t))}}Oer.ary=Cpo});var Xlt=H(Mer=>{"use strict";Object.defineProperty(Mer,Symbol.toStringTag,{value:"Module"});var _po=T3e(),ypo=Wfe(),bpo=Wer(),Epo=Qlt(),Spo=R3e(),vpo=b2(),Bpo=im();function wpo(...e){let t=_po.last(e),r=Spo.flattenArrayLike(e);return vpo.isArrayLikeObject(t)||t==null?ypo.uniq(r):bpo.uniqBy(r,Epo.ary(Bpo.iteratee(t),1))}Mer.unionBy=wpo});var Yer=H(Her=>{"use strict";Object.defineProperty(Her,Symbol.toStringTag,{value:"Module"});function Tpo(e,t){let r=[];for(let n=0;n!t(l,a))&&r.push(a)}return r}Her.uniqWith=Tpo});var Jlt=H(Qer=>{"use strict";Object.defineProperty(Qer,Symbol.toStringTag,{value:"Module"});var Rpo=T3e(),Npo=Wfe(),Dpo=Yer(),kpo=R3e(),xpo=b2();function Gpo(...e){let t=Rpo.last(e),r=kpo.flattenArrayLike(e);return xpo.isArrayLikeObject(t)||t==null?Npo.uniq(r):Dpo.uniqWith(r,t)}Qer.unionWith=Gpo});var Jer=H(Xer=>{"use strict";Object.defineProperty(Xer,Symbol.toStringTag,{value:"Module"});var Fpo=Wer(),Zpo=Qlt(),Lpo=bm(),Vpo=b2(),Ppo=im();function Wpo(e,t=Lpo.identity){return Vpo.isArrayLikeObject(e)?Fpo.uniqBy(Array.from(e),Zpo.ary(Ppo.iteratee(t),1)):[]}Xer.uniqBy=Wpo});var Ker=H(Uer=>{"use strict";Object.defineProperty(Uer,Symbol.toStringTag,{value:"Module"});var Opo=Yer(),Mpo=k3e(),Hpo=Sf();function Ypo(e,t){return Hpo.isArrayLike(e)?typeof t=="function"?Opo.uniqWith(Array.from(e),t):Mpo.uniq(Array.from(e)):[]}Uer.uniqWith=Ypo});var zer=H(jer=>{"use strict";Object.defineProperty(jer,Symbol.toStringTag,{value:"Module"});function Qpo(e){let t=0;for(let n=0;nt&&(t=e[n].length);let r=new Array(t);for(let n=0;n{"use strict";Object.defineProperty(qer,Symbol.toStringTag,{value:"Module"});var Xpo=zer(),Jpo=$q(),zTn=b2();function Upo(e){return!zTn.isArrayLikeObject(e)||!e.length?[]:(e=Jpo.isArray(e)?e:Array.from(e),e=e.filter(t=>zTn.isArrayLikeObject(t)),Xpo.unzip(e))}qer.unzip=Upo});var etr=H($er=>{"use strict";Object.defineProperty($er,Symbol.toStringTag,{value:"Module"});var qTn=zer(),Kpo=$q(),jpo=b2();function zpo(e,t){if(!jpo.isArrayLikeObject(e)||!e.length)return[];let r=Kpo.isArray(e)?qTn.unzip(e):qTn.unzip(Array.from(e,a=>Array.from(a)));if(!t)return r;let n=new Array(r.length);for(let a=0;a{"use strict";Object.defineProperty(ttr,Symbol.toStringTag,{value:"Module"});var qpo=w3e();function $po(e,...t){return qpo.difference(e,t)}ttr.without=$po});var ntr=H(rtr=>{"use strict";Object.defineProperty(rtr,Symbol.toStringTag,{value:"Module"});var efo=$Tn(),tfo=b2();function rfo(e,...t){return tfo.isArrayLikeObject(e)?efo.without(Array.from(e),...t):[]}rtr.without=rfo});var str=H(itr=>{"use strict";Object.defineProperty(itr,Symbol.toStringTag,{value:"Module"});var nfo=b2(),ifo=Z3e();function sfo(...e){let t=new Map;for(let n=0;n{"use strict";Object.defineProperty(otr,Symbol.toStringTag,{value:"Module"});function ofo(e,t,r=1,{partialWindows:n=!1}={}){if(t<=0||!Number.isInteger(t))throw new Error("Size must be a positive integer.");if(r<=0||!Number.isInteger(r))throw new Error("Step must be a positive integer.");let a=[],o=n?e.length:e.length-t+1;for(let l=0;l{"use strict";Object.defineProperty(ctr,Symbol.toStringTag,{value:"Module"});var afo=Blt(),cfo=xlt(),lfo=zq(),eRn=Xlt(),ufo=atr(),gfo=bm(),tRn=b2(),Afo=im();function dfo(...e){let t=lfo.last(e),r=gfo.identity;!tRn.isArrayLikeObject(t)&&t!=null&&(r=Afo.iteratee(t),e=e.slice(0,-1));let n=e.filter(tRn.isArrayLikeObject),a=eRn.unionBy(...n,r),o=ufo.windowed(n,2).map(([l,A])=>cfo.intersectionBy(l,A,r));return afo.differenceBy(a,eRn.unionBy(...o,r),r)}ctr.xorBy=dfo});var gtr=H(utr=>{"use strict";Object.defineProperty(utr,Symbol.toStringTag,{value:"Module"});var pfo=wlt(),ffo=Glt(),Ifo=zq(),rRn=Jlt(),hfo=atr(),mfo=b2();function Cfo(...e){let t=Ifo.last(e),r=(l,A)=>l===A;typeof t=="function"&&(r=t,e=e.slice(0,-1));let n=e.filter(mfo.isArrayLikeObject),a=rRn.unionWith(...n,r),o=hfo.windowed(n,2).map(([l,A])=>ffo.intersectionWith(l,A,r));return pfo.differenceWith(a,rRn.unionWith(...o,r),r)}utr.xorWith=Cfo});var dtr=H(Atr=>{"use strict";Object.defineProperty(Atr,Symbol.toStringTag,{value:"Module"});function _fo(...e){let t=0;for(let a=0;at&&(t=e[a].length);let r=e.length,n=Array(t);for(let a=0;a{"use strict";Object.defineProperty(ftr,Symbol.toStringTag,{value:"Module"});var yfo=dtr(),bfo=b2();function Efo(...e){return e.length?yfo.zip(...e.filter(t=>bfo.isArrayLikeObject(t))):[]}ftr.zip=Efo});var Klt=H(htr=>{"use strict";Object.defineProperty(htr,Symbol.toStringTag,{value:"Module"});var Sfo=Sk(),vfo=(e,t,r)=>{let n=e[t];(!(Object.hasOwn(e,t)&&Sfo.isEqualsSameValueZero(n,r))||r===void 0&&!(t in e))&&(e[t]=r)};htr.assignValue=vfo});var Ctr=H(mtr=>{"use strict";Object.defineProperty(mtr,Symbol.toStringTag,{value:"Module"});var Bfo=Klt();function wfo(e=[],t=[]){let r={};for(let n=0;n{"use strict";Object.defineProperty(_tr,Symbol.toStringTag,{value:"Module"});var Tfo=eM(),Rfo=C3e(),Nfo=Klt(),Dfo=OSe(),kfo=x3e(),xfo=Kq(),nRn=tM(),Gfo=$5();function Ffo(e,t,r,n){if(e==null&&!nRn.isObject(e))return e;let a;kfo.isKey(t,e)?a=[t]:Array.isArray(t)?a=t:a=Gfo.toPath(t);let o=r(Tfo.get(e,a)),l=e;for(let A=0;A{"use strict";Object.defineProperty(ytr,Symbol.toStringTag,{value:"Module"});var Zfo=XSe();function Lfo(e,t,r){return Zfo.updateWith(e,t,()=>r,()=>{})}ytr.set=Lfo});var Etr=H(btr=>{"use strict";Object.defineProperty(btr,Symbol.toStringTag,{value:"Module"});var Vfo=dtr(),Pfo=P3e(),iRn=Sf();function Wfo(e,t){let r={};if(!iRn.isArrayLike(e))return r;iRn.isArrayLike(t)||(t=[]);let n=Vfo.zip(Array.from(e),Array.from(t));for(let a=0;a{"use strict";Object.defineProperty(Str,Symbol.toStringTag,{value:"Module"});var Ofo=Ult(),Mfo=coe();function Hfo(...e){let t=e.pop();if(Mfo.isFunction(t)||(e.push(t),t=void 0),!e?.length)return[];let r=Ofo.unzip(e);return t==null?r:r.map(n=>t(...n))}Str.zipWith=Hfo});var wtr=H(Btr=>{"use strict";Object.defineProperty(Btr,Symbol.toStringTag,{value:"Module"});var Yfo=$w();function Qfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");return e=Yfo.toInteger(e),function(...r){if(--e<1)return t.apply(this,r)}}Btr.after=Qfo});var jlt=H(Ttr=>{"use strict";Object.defineProperty(Ttr,Symbol.toStringTag,{value:"Module"});var Xfo=Qlt();function Jfo(e,t=e.length,r){return r&&(t=e.length),(Number.isNaN(t)||t<0)&&(t=0),Xfo.ary(e,t)}Ttr.ary=Jfo});var zlt=H(Rtr=>{"use strict";Object.defineProperty(Rtr,Symbol.toStringTag,{value:"Module"});function Ufo(e,...t){try{return e(...t)}catch(r){return r instanceof Error?r:new Error(r)}}Rtr.attempt=Ufo});var Dtr=H(Ntr=>{"use strict";Object.defineProperty(Ntr,Symbol.toStringTag,{value:"Module"});var Kfo=$w();function jfo(e,t){if(typeof t!="function")throw new TypeError("Expected a function");let r;return e=Kfo.toInteger(e),function(...n){return--e>0&&(r=t.apply(this,n)),e<=1&&t&&(t=void 0),r}}Ntr.before=jfo});var Gtr=H(xtr=>{"use strict";Object.defineProperty(xtr,Symbol.toStringTag,{value:"Module"});function ktr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ztr,Symbol.toStringTag,{value:"Module"});function Ftr(e,t,...r){let n=function(...a){let o=[],l=0;for(let A=0;A{"use strict";Object.defineProperty(Ptr,Symbol.toStringTag,{value:"Module"});function W3e(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===W3e.placeholder),l=a.length-o.length;return lA===W3e.placeholder),l=a.length-o.length;return a=$fo(a,r),l{"use strict";Object.defineProperty(Mtr,Symbol.toStringTag,{value:"Module"});function JSe(e,t=e.length,r){t=r?e.length:t,t=Number.parseInt(t,10),(Number.isNaN(t)||t<1)&&(t=0);let n=function(...a){let o=a.filter(A=>A===JSe.placeholder),l=a.length-o.length;return lA===JSe.placeholder),l=a.length-o.length;return a=eIo(a,r),ll===JSe.placeholder).length,n=Math.max(e.length-r,0),a=[],o=0;for(let l=0;l{"use strict";Object.defineProperty(Ytr,Symbol.toStringTag,{value:"Module"});function tIo(e,t,{signal:r,edges:n}={}){let a,o=null,l=n!=null&&n.includes("leading"),A=n==null||n.includes("trailing"),f=()=>{o!==null&&(e.apply(a,o),a=void 0,o=null)},I=()=>{A&&f(),N()},C=null,b=()=>{C!=null&&clearTimeout(C),C=setTimeout(()=>{C=null,I()},t)},E=()=>{C!==null&&(clearTimeout(C),C=null)},N=()=>{E(),a=void 0,o=null},B=()=>{f()},F=function(...Q){if(r?.aborted)return;a=this,o=Q;let X=C==null;b(),l&&X&&f()};return F.schedule=b,F.cancel=N,F.flush=B,r?.addEventListener("abort",N,{once:!0}),F}Ytr.debounce=tIo});var qlt=H(Qtr=>{"use strict";Object.defineProperty(Qtr,Symbol.toStringTag,{value:"Module"});var rIo=aRn();function nIo(e,t=0,r={}){typeof r!="object"&&(r={});let{leading:n=!1,trailing:a=!0,maxWait:o}=r,l=Array(2);n&&(l[0]="leading"),a&&(l[1]="trailing");let A,f=null,I=rIo.debounce(function(...E){A=e.apply(this,E),f=null},t,{edges:l}),C=function(...E){return o!=null&&(f===null&&(f=Date.now()),Date.now()-f>=o)?(A=e.apply(this,E),f=Date.now(),I.cancel(),I.schedule(),A):(I.apply(this,E),A)},b=()=>(I.flush(),A);return C.cancel=I.cancel,C.flush=b,C}Qtr.debounce=nIo});var Jtr=H(Xtr=>{"use strict";Object.defineProperty(Xtr,Symbol.toStringTag,{value:"Module"});function iIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,1,...t)}Xtr.defer=iIo});var Ktr=H(Utr=>{"use strict";Object.defineProperty(Utr,Symbol.toStringTag,{value:"Module"});var sIo=Q9();function oIo(e,t,...r){if(typeof e!="function")throw new TypeError("Expected a function");return setTimeout(e,sIo.toNumber(t)||0,...r)}Utr.delay=oIo});var ztr=H(jtr=>{"use strict";Object.defineProperty(jtr,Symbol.toStringTag,{value:"Module"});function aIo(e){return function(...t){return e.apply(this,t.reverse())}}jtr.flip=aIo});var $tr=H(qtr=>{"use strict";Object.defineProperty(qtr,Symbol.toStringTag,{value:"Module"});function cIo(...e){return function(...t){let r=e.length?e[0].apply(this,t):t[0];for(let n=1;n{"use strict";Object.defineProperty(trr,Symbol.toStringTag,{value:"Module"});var lIo=m3e(),uIo=$tr();function gIo(...e){let t=lIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return uIo.flow(...t)}trr.flow=gIo});var cRn=H(nrr=>{"use strict";Object.defineProperty(nrr,Symbol.toStringTag,{value:"Module"});var AIo=$tr();function dIo(...e){return AIo.flow(...e.reverse())}nrr.flowRight=dIo});var srr=H(irr=>{"use strict";Object.defineProperty(irr,Symbol.toStringTag,{value:"Module"});var pIo=m3e(),fIo=cRn();function IIo(...e){let t=pIo.flatten(e,1);if(t.some(r=>typeof r!="function"))throw new TypeError("Expected a function");return fIo.flowRight(...t)}irr.flowRight=IIo});var crr=H(arr=>{"use strict";Object.defineProperty(arr,Symbol.toStringTag,{value:"Module"});function orr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");let r=function(...a){let o=t?t.apply(this,a):a[0],l=r.cache;if(l.has(o))return l.get(o);let A=e.apply(this,a);return r.cache=l.set(o,A)||l,A},n=orr.Cache||Map;return r.cache=new n,r}orr.Cache=Map;arr.memoize=orr});var urr=H(lrr=>{"use strict";Object.defineProperty(lrr,Symbol.toStringTag,{value:"Module"});var hIo=$w();function mIo(e=0){return function(...t){return t.at(hIo.toInteger(e))}}lrr.nthArg=mIo});var lRn=H(grr=>{"use strict";Object.defineProperty(grr,Symbol.toStringTag,{value:"Module"});function CIo(e){let t=!1,r;return function(...n){return t||(t=!0,r=e(...n)),r}}grr.once=CIo});var drr=H(Arr=>{"use strict";Object.defineProperty(Arr,Symbol.toStringTag,{value:"Module"});var _Io=lRn();function yIo(e){return _Io.once(e)}Arr.once=yIo});var frr=H(prr=>{"use strict";Object.defineProperty(prr,Symbol.toStringTag,{value:"Module"});var bIo=bm(),EIo=im();function SIo(e,...t){if(typeof e!="function")throw new TypeError("Expected a function");let r=t.flat();return function(...n){let a=Math.min(n.length,r.length),o=[...n];for(let l=0;l{"use strict";Object.defineProperty($lt,Symbol.toStringTag,{value:"Module"});function uRn(e,...t){return gRn(e,ARn,...t)}function gRn(e,t,...r){let n=function(...a){let o=0,l=r.slice().map(f=>f===t?a[o++]:f),A=a.slice(o);return e.apply(this,l.concat(A))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var ARn=Symbol("partial.placeholder");uRn.placeholder=ARn;$lt.partial=uRn;$lt.partialImpl=gRn});var mrr=H(hrr=>{"use strict";Object.defineProperty(hrr,Symbol.toStringTag,{value:"Module"});var vIo=dRn();function Irr(e,...t){return vIo.partialImpl(e,Irr.placeholder,...t)}Irr.placeholder=Symbol("compat.partial.placeholder");hrr.partial=Irr});var hRn=H(eut=>{"use strict";Object.defineProperty(eut,Symbol.toStringTag,{value:"Module"});function pRn(e,...t){return fRn(e,IRn,...t)}function fRn(e,t,...r){let n=function(...a){let o=r.filter(C=>C===t).length,l=Math.max(a.length-o,0),A=a.slice(0,l),f=l,I=r.slice().map(C=>C===t?a[f++]:C);return e.apply(this,A.concat(I))};return e.prototype&&(n.prototype=Object.create(e.prototype)),n}var IRn=Symbol("partialRight.placeholder");pRn.placeholder=IRn;eut.partialRight=pRn;eut.partialRightImpl=fRn});var yrr=H(_rr=>{"use strict";Object.defineProperty(_rr,Symbol.toStringTag,{value:"Module"});var BIo=hRn();function Crr(e,...t){return BIo.partialRightImpl(e,Crr.placeholder,...t)}Crr.placeholder=Symbol("compat.partialRight.placeholder");_rr.partialRight=Crr});var Err=H(brr=>{"use strict";Object.defineProperty(brr,Symbol.toStringTag,{value:"Module"});var wIo=Pfe();function TIo(e,...t){let r=wIo.flatten(t);return function(...n){let a=r.map(o=>n[o]).slice(0,n.length);for(let o=a.length;o{"use strict";Object.defineProperty(Srr,Symbol.toStringTag,{value:"Module"});function RIo(e,t=e.length-1){return function(...r){let n=r.slice(t),a=r.slice(0,t);for(;a.length{"use strict";Object.defineProperty(vrr,Symbol.toStringTag,{value:"Module"});var NIo=mRn();function DIo(e,t=e.length-1){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=e.length-1),NIo.rest(e,t)}vrr.rest=DIo});var Trr=H(wrr=>{"use strict";Object.defineProperty(wrr,Symbol.toStringTag,{value:"Module"});function kIo(e,t=0){return t=Number.parseInt(t,10),(Number.isNaN(t)||t<0)&&(t=0),function(...r){let n=r[t],a=r.slice(0,t);return n&&a.push(...n),e.apply(this,a)}}wrr.spread=kIo});var Nrr=H(Rrr=>{"use strict";Object.defineProperty(Rrr,Symbol.toStringTag,{value:"Module"});var xIo=qlt();function GIo(e,t=0,r={}){let{leading:n=!0,trailing:a=!0}=r;return xIo.debounce(e,t,{leading:n,maxWait:t,trailing:a})}Rrr.throttle=GIo});var krr=H(Drr=>{"use strict";Object.defineProperty(Drr,Symbol.toStringTag,{value:"Module"});var FIo=jlt();function ZIo(e){return FIo.ary(e,1)}Drr.unary=ZIo});var Grr=H(xrr=>{"use strict";Object.defineProperty(xrr,Symbol.toStringTag,{value:"Module"});var LIo=bm(),VIo=coe();function PIo(e,t){return function(...r){return(VIo.isFunction(t)?t:LIo.identity).apply(this,[e,...r])}}xrr.wrap=PIo});var Zrr=H(Frr=>{"use strict";Object.defineProperty(Frr,Symbol.toStringTag,{value:"Module"});var CRn=Q9(),_Rn=qy();function WIo(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=_Rn.toString(e),t=_Rn.toString(t)):(e=CRn.toNumber(e),t=CRn.toNumber(t)),e+t)}Frr.add=WIo});var tut=H(Lrr=>{"use strict";Object.defineProperty(Lrr,Symbol.toStringTag,{value:"Module"});function OIo(e,t,r=0){if(t=Number(t),Object.is(t,-0)&&(t="-0"),r=Math.min(Number.parseInt(r,10),292),r){let[n,a=0]=t.toString().split("e"),o=Math[e](+`${n}e${Number(a)+r}`);Object.is(o,-0)&&(o="-0");let[l,A=0]=o.toString().split("e");return+`${l}e${Number(A)-r}`}return Math[e](Number(t))}Lrr.decimalAdjust=OIo});var Prr=H(Vrr=>{"use strict";Object.defineProperty(Vrr,Symbol.toStringTag,{value:"Module"});var MIo=tut();function HIo(e,t=0){return MIo.decimalAdjust("ceil",e,t)}Vrr.ceil=HIo});var Orr=H(Wrr=>{"use strict";Object.defineProperty(Wrr,Symbol.toStringTag,{value:"Module"});var yRn=Q9(),bRn=qy();function YIo(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=bRn.toString(e),t=bRn.toString(t)):(e=yRn.toNumber(e),t=yRn.toNumber(t)),e/t)}Wrr.divide=YIo});var Hrr=H(Mrr=>{"use strict";Object.defineProperty(Mrr,Symbol.toStringTag,{value:"Module"});var QIo=tut();function XIo(e,t=0){return QIo.decimalAdjust("floor",e,t)}Mrr.floor=XIo});var ERn=H(Yrr=>{"use strict";Object.defineProperty(Yrr,Symbol.toStringTag,{value:"Module"});function JIo(e,t,r){if(r==null&&(r=t,t=0),t>=r)throw new Error("The maximum value must be greater than the minimum value.");return t<=e&&e{"use strict";Object.defineProperty(Qrr,Symbol.toStringTag,{value:"Module"});var UIo=ERn();function KIo(e,t,r){return t||(t=0),r!=null&&!r&&(r=0),t!=null&&typeof t!="number"&&(t=Number(t)),r==null&&t===0||(r!=null&&typeof r!="number"&&(r=Number(r)),r!=null&&t>r&&([t,r]=[r,t]),t===r)?!1:UIo.inRange(e,t,r)}Qrr.inRange=KIo});var Urr=H(Jrr=>{"use strict";Object.defineProperty(Jrr,Symbol.toStringTag,{value:"Module"});function jIo(e){if(!e||e.length===0)return;let t;for(let r=0;rt)&&(t=n)}return t}Jrr.max=jIo});var SRn=H(Krr=>{"use strict";Object.defineProperty(Krr,Symbol.toStringTag,{value:"Module"});function zIo(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;an&&(n=l,r=o)}return r}Krr.maxBy=zIo});var zrr=H(jrr=>{"use strict";Object.defineProperty(jrr,Symbol.toStringTag,{value:"Module"});var qIo=SRn(),$Io=bm(),eho=im();function tho(e,t){if(e!=null)return qIo.maxBy(Array.from(e),eho.iteratee(t??$Io.identity))}jrr.maxBy=tho});var rut=H(qrr=>{"use strict";Object.defineProperty(qrr,Symbol.toStringTag,{value:"Module"});var rho=im();function nho(e,t){if(!e||!e.length)return 0;t!=null&&(t=rho.iteratee(t));let r;for(let n=0;n{"use strict";Object.defineProperty($rr,Symbol.toStringTag,{value:"Module"});var iho=rut();function sho(e){return iho.sumBy(e)}$rr.sum=sho});var tnr=H(enr=>{"use strict";Object.defineProperty(enr,Symbol.toStringTag,{value:"Module"});var oho=nut();function aho(e){let t=e?e.length:0;return t===0?NaN:oho.sum(e)/t}enr.mean=aho});var vRn=H(rnr=>{"use strict";Object.defineProperty(rnr,Symbol.toStringTag,{value:"Module"});function cho(e,t){let r=0;for(let n=0;n{"use strict";Object.defineProperty(nnr,Symbol.toStringTag,{value:"Module"});var lho=vRn();function uho(e,t){return lho.sumBy(e,r=>t(r))/e.length}nnr.meanBy=uho});var snr=H(inr=>{"use strict";Object.defineProperty(inr,Symbol.toStringTag,{value:"Module"});var gho=bm(),Aho=BRn(),dho=im();function pho(e,t){return e==null?NaN:Aho.meanBy(Array.from(e),dho.iteratee(t??gho.identity))}inr.meanBy=pho});var anr=H(onr=>{"use strict";Object.defineProperty(onr,Symbol.toStringTag,{value:"Module"});function fho(e){if(!e||e.length===0)return;let t;for(let r=0;r{"use strict";Object.defineProperty(cnr,Symbol.toStringTag,{value:"Module"});function Iho(e,t){if(e.length===0)return;let r=e[0],n=t(r,0,e);for(let a=1;a{"use strict";Object.defineProperty(lnr,Symbol.toStringTag,{value:"Module"});var hho=wRn(),mho=bm(),Cho=im();function _ho(e,t){if(e!=null)return hho.minBy(Array.from(e),Cho.iteratee(t??mho.identity))}lnr.minBy=_ho});var Anr=H(gnr=>{"use strict";Object.defineProperty(gnr,Symbol.toStringTag,{value:"Module"});var TRn=Q9(),RRn=qy();function yho(e,t){return e===void 0&&t===void 0?1:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=RRn.toString(e),t=RRn.toString(t)):(e=TRn.toNumber(e),t=TRn.toNumber(t)),e*t)}gnr.multiply=yho});var pnr=H(dnr=>{"use strict";Object.defineProperty(dnr,Symbol.toStringTag,{value:"Module"});function bho(e,t=0,r){return r&&(t=0),Number.parseInt(e,t)}dnr.parseInt=bho});var Inr=H(fnr=>{"use strict";Object.defineProperty(fnr,Symbol.toStringTag,{value:"Module"});var NRn=Ofe(),Eho=V$t(),Sho=W$t();function vho(...e){let t=0,r=1,n=!1;switch(e.length){case 1:{typeof e[0]=="boolean"?n=e[0]:r=e[0];break}case 2:typeof e[1]=="boolean"?(r=e[0],n=e[1]):(t=e[0],r=e[1]);case 3:typeof e[2]=="object"&&e[2]!=null&&e[2][e[1]]===e[0]?(t=0,r=e[0],n=!1):(t=e[0],r=e[1],n=e[2])}return typeof t!="number"&&(t=Number(t)),typeof r!="number"&&(t=Number(r)),t||(t=0),r||(r=0),t>r&&([t,r]=[r,t]),t=NRn.clamp(t,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),r=NRn.clamp(r,-Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),t===r?t:n?Eho.random(t,r+1):Sho.randomInt(t,r+1)}fnr.random=vho});var Cnr=H(mnr=>{"use strict";Object.defineProperty(mnr,Symbol.toStringTag,{value:"Module"});var Bho=qq(),hnr=MSe();function who(e,t,r){r&&typeof r!="number"&&Bho.isIterateeCall(e,t,r)&&(t=r=void 0),e=hnr.toFinite(e),t===void 0?(t=e,e=0):t=hnr.toFinite(t),r=r===void 0?e{"use strict";Object.defineProperty(ynr,Symbol.toStringTag,{value:"Module"});var Tho=qq(),_nr=MSe();function Rho(e,t,r){r&&typeof r!="number"&&Tho.isIterateeCall(e,t,r)&&(t=r=void 0),e=_nr.toFinite(e),t===void 0?(t=e,e=0):t=_nr.toFinite(t),r=r===void 0?e=0;o--)a[o]=e,e+=r;return a}ynr.rangeRight=Rho});var Snr=H(Enr=>{"use strict";Object.defineProperty(Enr,Symbol.toStringTag,{value:"Module"});var Nho=tut();function Dho(e,t=0){return Nho.decimalAdjust("round",e,t)}Enr.round=Dho});var Bnr=H(vnr=>{"use strict";Object.defineProperty(vnr,Symbol.toStringTag,{value:"Module"});var DRn=Q9(),kRn=qy();function kho(e,t){return e===void 0&&t===void 0?0:e===void 0||t===void 0?e??t:(typeof e=="string"||typeof t=="string"?(e=kRn.toString(e),t=kRn.toString(t)):(e=DRn.toNumber(e),t=DRn.toNumber(t)),e-t)}vnr.subtract=kho});var xRn=H(wnr=>{"use strict";Object.defineProperty(wnr,Symbol.toStringTag,{value:"Module"});function xho(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}wnr.isPlainObject=xho});var Rnr=H(Tnr=>{"use strict";Object.defineProperty(Tnr,Symbol.toStringTag,{value:"Module"});var GRn=noe(),FRn=xRn(),ZRn=y3e(),LRn=Zfe(),hy=b3e(),Gho=Sk();function Fho(e,t,r){return O3e(e,t,void 0,void 0,void 0,void 0,r)}function O3e(e,t,r,n,a,o,l){let A=l(e,t,r,n,a,o);if(A!==void 0)return A;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return M3e(e,t,o,l)}return M3e(e,t,o,l)}function M3e(e,t,r,n){if(Object.is(e,t))return!0;let a=LRn.getTag(e),o=LRn.getTag(t);if(a===hy.argumentsTag&&(a=hy.objectTag),o===hy.argumentsTag&&(o=hy.objectTag),a!==o)return!1;switch(a){case hy.stringTag:return e.toString()===t.toString();case hy.numberTag:{let f=e.valueOf(),I=t.valueOf();return Gho.isEqualsSameValueZero(f,I)}case hy.booleanTag:case hy.dateTag:case hy.symbolTag:return Object.is(e.valueOf(),t.valueOf());case hy.regexpTag:return e.source===t.source&&e.flags===t.flags;case hy.functionTag:return e===t}r=r??new Map;let l=r.get(e),A=r.get(t);if(l!=null&&A!=null)return l===t;r.set(e,t),r.set(t,e);try{switch(a){case hy.mapTag:{if(e.size!==t.size)return!1;for(let[f,I]of e.entries())if(!t.has(f)||!O3e(I,t.get(f),f,e,t,r,n))return!1;return!0}case hy.setTag:{if(e.size!==t.size)return!1;let f=Array.from(e.values()),I=Array.from(t.values());for(let C=0;CO3e(b,N,void 0,e,t,r,n));if(E===-1)return!1;I.splice(E,1)}return!0}case hy.arrayTag:case hy.uint8ArrayTag:case hy.uint8ClampedArrayTag:case hy.uint16ArrayTag:case hy.uint32ArrayTag:case hy.bigUint64ArrayTag:case hy.int8ArrayTag:case hy.int16ArrayTag:case hy.int32ArrayTag:case hy.bigInt64ArrayTag:case hy.float32ArrayTag:case hy.float64ArrayTag:{if(GRn.isBuffer(e)!==GRn.isBuffer(t)||e.length!==t.length)return!1;for(let f=0;f{"use strict";Object.defineProperty(Nnr,Symbol.toStringTag,{value:"Module"});function Zho(){}Nnr.noop=Zho});var xnr=H(knr=>{"use strict";Object.defineProperty(knr,Symbol.toStringTag,{value:"Module"});var Lho=Rnr(),Vho=Dnr();function Pho(e,t){return Lho.isEqualWith(e,t,Vho.noop)}knr.isEqual=Pho});var Fnr=H(Gnr=>{"use strict";Object.defineProperty(Gnr,Symbol.toStringTag,{value:"Module"});function Who(...e){}Gnr.noop=Who});var iut=H(Znr=>{"use strict";Object.defineProperty(Znr,Symbol.toStringTag,{value:"Module"});function Oho(e){let t=e?.constructor,r=typeof t=="function"?t.prototype:Object.prototype;return e===r}Znr.isPrototype=Oho});var e$=H(Lnr=>{"use strict";Object.defineProperty(Lnr,Symbol.toStringTag,{value:"Module"});var Mho=Slt();function Hho(e){return Mho.isTypedArray(e)}Lnr.isTypedArray=Hho});var H3e=H(Vnr=>{"use strict";Object.defineProperty(Vnr,Symbol.toStringTag,{value:"Module"});var Yho=$w();function Qho(e,t){if(e=Yho.toInteger(e),e<1||!Number.isSafeInteger(e))return[];let r=new Array(e);for(let n=0;n{"use strict";Object.defineProperty(Pnr,Symbol.toStringTag,{value:"Module"});var Xho=noe(),Jho=iut(),Uho=Sf(),Kho=e$(),jho=H3e();function zho(e){if(Uho.isArrayLike(e))return qho(e);let t=Object.keys(Object(e));return Jho.isPrototype(e)?t.filter(r=>r!=="constructor"):t}function qho(e){let t=jho.times(e.length,a=>`${a}`),r=new Set(t);Xho.isBuffer(e)&&(r.add("offset"),r.add("parent")),Kho.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=Object.keys(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Pnr.keys=zho});var Onr=H(Wnr=>{"use strict";Object.defineProperty(Wnr,Symbol.toStringTag,{value:"Module"});var $ho=YK(),emo=Sk();function tmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Mnr,Symbol.toStringTag,{value:"Module"});var nmo=noe(),imo=iut(),smo=Sf(),omo=e$(),amo=H3e();function cmo(e){if(e==null)return[];switch(typeof e){case"object":case"function":return smo.isArrayLike(e)?umo(e):imo.isPrototype(e)?lmo(e):sut(e);default:return sut(Object(e))}}function sut(e){let t=[];for(let r in e)t.push(r);return t}function lmo(e){return sut(e).filter(r=>r!=="constructor")}function umo(e){let t=amo.times(e.length,a=>`${a}`),r=new Set(t);nmo.isBuffer(e)&&(r.add("offset"),r.add("parent")),omo.isTypedArray(e)&&(r.add("buffer"),r.add("byteLength"),r.add("byteOffset"));let n=sut(e).filter(a=>!r.has(a));return Array.isArray(e)?[...t,...n]:[...t.filter(a=>Object.hasOwn(e,a)),...n]}Mnr.keysIn=cmo});var Ynr=H(Hnr=>{"use strict";Object.defineProperty(Hnr,Symbol.toStringTag,{value:"Module"});var gmo=iX(),Amo=Sk();function dmo(e,...t){for(let r=0;r{"use strict";Object.defineProperty(Qnr,Symbol.toStringTag,{value:"Module"});var fmo=iX(),Imo=Sk();function hmo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(Jnr,Symbol.toStringTag,{value:"Module"});var Cmo=YK(),_mo=Sk();function ymo(e,...t){let r=t[t.length-1];typeof r=="function"?t.pop():r=void 0;for(let n=0;n{"use strict";Object.defineProperty(jnr,Symbol.toStringTag,{value:"Module"});var Emo=PSe(),VRn=Zfe(),KC=b3e(),Smo=$q(),vmo=e$();function Bmo(e){if(Emo.isPrimitive(e))return e;let t=VRn.getTag(e);if(!wmo(e))return{};if(Smo.isArray(e)){let n=Array.from(e);return e.length>0&&typeof e[0]=="string"&&Object.hasOwn(e,"index")&&(n.index=e.index,n.input=e.input),n}if(vmo.isTypedArray(e)){let n=e,a=n.constructor;return new a(n.buffer,n.byteOffset,n.length)}if(t===KC.arrayBufferTag)return new ArrayBuffer(e.byteLength);if(t===KC.dataViewTag){let n=e,a=n.buffer,o=n.byteOffset,l=n.byteLength,A=new ArrayBuffer(l),f=new Uint8Array(a,o,l);return new Uint8Array(A).set(f),new DataView(A)}if(t===KC.booleanTag||t===KC.numberTag||t===KC.stringTag){let n=e.constructor,a=new n(e.valueOf());return t===KC.stringTag?Rmo(a,e):Knr(a,e),a}if(t===KC.dateTag)return new Date(Number(e));if(t===KC.regexpTag){let n=e,a=new RegExp(n.source,n.flags);return a.lastIndex=n.lastIndex,a}if(t===KC.symbolTag)return Object(Symbol.prototype.valueOf.call(e));if(t===KC.mapTag){let n=e,a=new Map;return n.forEach((o,l)=>{a.set(l,o)}),a}if(t===KC.setTag){let n=e,a=new Set;return n.forEach(o=>{a.add(o)}),a}if(t===KC.argumentsTag){let n=e,a={};return Knr(a,n),a.length=n.length,a[Symbol.iterator]=n[Symbol.iterator],a}let r={};return Nmo(r,e),Knr(r,e),Tmo(r,e),r}function wmo(e){switch(VRn.getTag(e)){case KC.argumentsTag:case KC.arrayTag:case KC.arrayBufferTag:case KC.dataViewTag:case KC.booleanTag:case KC.dateTag:case KC.float32ArrayTag:case KC.float64ArrayTag:case KC.int8ArrayTag:case KC.int16ArrayTag:case KC.int32ArrayTag:case KC.mapTag:case KC.numberTag:case KC.objectTag:case KC.regexpTag:case KC.setTag:case KC.stringTag:case KC.symbolTag:case KC.uint8ArrayTag:case KC.uint8ClampedArrayTag:case KC.uint16ArrayTag:case KC.uint32ArrayTag:return!0;default:return!1}}function Knr(e,t){for(let r in t)Object.hasOwn(t,r)&&(e[r]=t[r])}function Tmo(e,t){let r=Object.getOwnPropertySymbols(t);for(let n=0;n=r)&&(e[n]=t[n])}function Nmo(e,t){let r=Object.getPrototypeOf(t);r!==null&&typeof t.constructor=="function"&&Object.setPrototypeOf(e,r)}jnr.clone=Bmo});var qnr=H(znr=>{"use strict";Object.defineProperty(znr,Symbol.toStringTag,{value:"Module"});var PRn=out();function Dmo(e,t){if(!t)return PRn.clone(e);let r=t(e);return r!==void 0?r:PRn.clone(e)}znr.cloneWith=Dmo});var eir=H($nr=>{"use strict";Object.defineProperty($nr,Symbol.toStringTag,{value:"Module"});var kmo=YK(),xmo=Klt(),Gmo=tM();function Fmo(e,t){let r=Gmo.isObject(e)?Object.create(e):{};if(t!=null){let n=kmo.keys(t);for(let a=0;a{"use strict";Object.defineProperty(tir,Symbol.toStringTag,{value:"Module"});var Zmo=aoe(),Lmo=qq(),Vmo=Sk();function Pmo(e,...t){e=Object(e);let r=Object.prototype,n=t.length,a=n>2?t[2]:void 0;a&&Lmo.isIterateeCall(t[0],t[1],a)&&(n=1);for(let o=0;o{"use strict";Object.defineProperty(rir,Symbol.toStringTag,{value:"Module"});function Wmo(e){if(typeof e!="object"||e==null)return!1;if(Object.getPrototypeOf(e)===null)return!0;if(Object.prototype.toString.call(e)!=="[object Object]"){let r=e[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(e,Symbol.toStringTag)?.writable?!1:e.toString()===`[object ${r}]`}let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}rir.isPlainObject=Wmo});var iir=H(nir=>{"use strict";Object.defineProperty(nir,Symbol.toStringTag,{value:"Module"});var Q3e=Mfe();function Omo(e,...t){e=Object(e);for(let r=0;r{"use strict";Object.defineProperty(sir,Symbol.toStringTag,{value:"Module"});function Qmo(e,t){return Object.keys(e).find(n=>t(e[n],n,e))}sir.findKey=Qmo});var air=H(oir=>{"use strict";Object.defineProperty(oir,Symbol.toStringTag,{value:"Module"});var Xmo=WRn(),Jmo=HK(),Umo=tM(),Kmo=im();function jmo(e,t){if(!Umo.isObject(e))return;let r=Kmo.iteratee(t??Jmo.identity);return Xmo.findKey(e,r)}oir.findKey=jmo});var lir=H(cir=>{"use strict";Object.defineProperty(cir,Symbol.toStringTag,{value:"Module"});var zmo=HK(),qmo=tM(),$mo=im();function eCo(e,t){if(!qmo.isObject(e))return;let r=$mo.iteratee(t??zmo.identity);return Object.keys(e).findLast(a=>r(e[a],a,e))}cir.findLastKey=eCo});var gir=H(uir=>{"use strict";Object.defineProperty(uir,Symbol.toStringTag,{value:"Module"});var tCo=bm();function rCo(e,t=tCo.identity){if(e==null)return e;for(let r in e)if(t(e[r],r,e)===!1)break;return e}uir.forIn=rCo});var dir=H(Air=>{"use strict";Object.defineProperty(Air,Symbol.toStringTag,{value:"Module"});var nCo=bm();function iCo(e,t=nCo.identity){if(e==null)return e;let r=[];for(let n in e)r.push(n);for(let n=r.length-1;n>=0;n--){let a=r[n];if(t(e[a],a,e)===!1)break}return e}Air.forInRight=iCo});var fir=H(pir=>{"use strict";Object.defineProperty(pir,Symbol.toStringTag,{value:"Module"});var sCo=YK(),oCo=bm();function aCo(e,t=oCo.identity){if(e==null)return e;let r=Object(e),n=sCo.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Iir,Symbol.toStringTag,{value:"Module"});var cCo=YK(),lCo=bm();function uCo(e,t=lCo.identity){if(e==null)return e;let r=Object(e),n=cCo.keys(e);for(let a=n.length-1;a>=0;--a){let o=n[a];if(t(r[o],o,r)===!1)break}return e}Iir.forOwnRight=uCo});var Cir=H(mir=>{"use strict";Object.defineProperty(mir,Symbol.toStringTag,{value:"Module"});var gCo=Sf();function ACo(e){if(!gCo.isArrayLike(e))return{};let t={};for(let r=0;r{"use strict";Object.defineProperty(_ir,Symbol.toStringTag,{value:"Module"});var dCo=YK();function pCo(e){return e==null?[]:dCo.keys(e).filter(t=>typeof e[t]=="function")}_ir.functions=pCo});var Eir=H(bir=>{"use strict";Object.defineProperty(bir,Symbol.toStringTag,{value:"Module"});var fCo=coe();function ICo(e){if(e==null)return[];let t=[];for(let r in e)fCo.isFunction(e[r])&&t.push(r);return t}bir.functionsIn=ICo});var vir=H(Sir=>{"use strict";Object.defineProperty(Sir,Symbol.toStringTag,{value:"Module"});var hCo=VSe(),mCo=OSe(),CCo=Vfe(),_Co=$5();function yCo(e,t){if(e==null)return!1;let r;if(Array.isArray(t)?r=t:typeof t=="string"&&hCo.isDeepKey(t)&&e[t]==null?r=_Co.toPath(t):r=[t],r.length===0)return!1;let n=e;for(let a=0;a{"use strict";Object.defineProperty(Bir,Symbol.toStringTag,{value:"Module"});function bCo(e){let t={},r=Object.keys(e);for(let n=0;n{"use strict";Object.defineProperty(wir,Symbol.toStringTag,{value:"Module"});var ECo=ORn();function SCo(e){return ECo.invert(e)}wir.invert=SCo});var Nir=H(Rir=>{"use strict";Object.defineProperty(Rir,Symbol.toStringTag,{value:"Module"});var vCo=bm(),BCo=aoe(),wCo=im();function TCo(e,t){let r={};if(BCo.isNil(e))return r;t==null&&(t=vCo.identity);let n=Object.keys(e),a=wCo.iteratee(t);for(let o=0;o{"use strict";Object.defineProperty(Dir,Symbol.toStringTag,{value:"Module"});function RCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(kir,Symbol.toStringTag,{value:"Module"});var NCo=bm(),DCo=MRn(),kCo=im();function xCo(e,t=NCo.identity){return e==null?{}:DCo.mapKeys(e,kCo.iteratee(t))}kir.mapKeys=xCo});var HRn=H(Gir=>{"use strict";Object.defineProperty(Gir,Symbol.toStringTag,{value:"Module"});function GCo(e,t){let r={},n=Object.keys(e);for(let a=0;a{"use strict";Object.defineProperty(Fir,Symbol.toStringTag,{value:"Module"});var FCo=bm(),ZCo=HRn(),LCo=im();function VCo(e,t=FCo.identity){return e==null?{}:ZCo.mapValues(e,LCo.iteratee(t))}Fir.mapValues=VCo});var YRn=H(Lir=>{"use strict";Object.defineProperty(Lir,Symbol.toStringTag,{value:"Module"});var PCo=PSe(),WCo=Slt();function OCo(e){if(PCo.isPrimitive(e))return e;if(Array.isArray(e)||WCo.isTypedArray(e)||e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);let t=Object.getPrototypeOf(e);if(t==null)return Object.assign(Object.create(t),e);let r=t.constructor;if(e instanceof Date||e instanceof Map||e instanceof Set)return new r(e);if(e instanceof RegExp){let n=new r(e);return n.lastIndex=e.lastIndex,n}if(e instanceof DataView)return new r(e.buffer.slice(0));if(e instanceof Error){let n;return e instanceof AggregateError?n=new r(e.errors,e.message,{cause:e.cause}):n=new r(e.message,{cause:e.cause}),n.stack=e.stack,Object.assign(n,e),n}if(typeof File<"u"&&e instanceof File)return new r([e],e.name,{type:e.type,lastModified:e.lastModified});if(typeof e=="object"){let n=Object.create(t);return Object.assign(n,e)}return e}Lir.clone=OCo});var lut=H(Wir=>{"use strict";Object.defineProperty(Wir,Symbol.toStringTag,{value:"Module"});var QRn=WSe(),MCo=C3e(),HCo=YRn(),YCo=noe(),QCo=PSe(),XCo=y3e(),XRn=Vfe(),JCo=b2(),JRn=ioe(),Vir=Mfe(),Pir=e$();function UCo(e,...t){let r=t.slice(0,-1),n=t[t.length-1],a=e;for(let o=0;o{"use strict";Object.defineProperty(Oir,Symbol.toStringTag,{value:"Module"});var KCo=lut(),jCo=Dnr();function zCo(e,...t){return KCo.mergeWith(e,...t,jCo.noop)}Oir.merge=zCo});var uut=H(Hir=>{"use strict";Object.defineProperty(Hir,Symbol.toStringTag,{value:"Module"});var qCo=y3e();function $Co(e){let t=[];for(;e;)t.push(...qCo.getSymbols(e)),e=Object.getPrototypeOf(e);return t}Hir.getSymbolsIn=$Co});var Qir=H(Yir=>{"use strict";Object.defineProperty(Yir,Symbol.toStringTag,{value:"Module"});var e_o=v3e(),KRn=iX(),URn=G3e(),jRn=uut(),t_o=VSe(),r_o=Pfe(),n_o=Mfe();function i_o(e,...t){if(e==null)return{};t=r_o.flatten(t);let r=s_o(e,t);for(let n=0;nArray.isArray(n)||t_o.isDeepKey(n))?a_o(e):o_o(e)}function o_o(e){let t={},r=[...KRn.keysIn(e),...jRn.getSymbolsIn(e)];for(let n=0;n{if(!n_o.isPlainObject(o))return o})}return t}Yir.omit=i_o});var Jir=H(Xir=>{"use strict";Object.defineProperty(Xir,Symbol.toStringTag,{value:"Module"});var c_o=iX(),l_o=ooe(),u_o=uut(),g_o=HK(),A_o=Sf(),d_o=soe(),p_o=im();function f_o(e,t){if(e==null)return{};let r={},n=p_o.iteratee(t??g_o.identity),a=A_o.isArrayLike(e)?l_o.range(0,e.length):[...c_o.keysIn(e),...u_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(Uir,Symbol.toStringTag,{value:"Module"});var I_o=eM(),h_o=B3e(),m_o=P3e(),C_o=Sf(),__o=QSe();function y_o(e,...t){if(__o.isNil(e))return{};let r={};for(let n=0;n{"use strict";Object.defineProperty(jir,Symbol.toStringTag,{value:"Module"});var b_o=iX(),E_o=ooe(),S_o=uut(),v_o=HK(),B_o=Sf(),w_o=soe(),T_o=im();function R_o(e,t){if(e==null)return{};let r=T_o.iteratee(t??v_o.identity),n={},a=B_o.isArrayLike(e)?E_o.range(0,e.length):[...b_o.keysIn(e),...S_o.getSymbolsIn(e)];for(let o=0;o{"use strict";Object.defineProperty(qir,Symbol.toStringTag,{value:"Module"});var N_o=eM();function D_o(e){return function(t){return N_o.get(e,t)}}qir.propertyOf=D_o});var tsr=H(esr=>{"use strict";Object.defineProperty(esr,Symbol.toStringTag,{value:"Module"});var k_o=x3e(),x_o=Kq(),G_o=$5(),F_o=qy();function Z_o(e,t,r){k_o.isKey(t,e)?t=[t]:Array.isArray(t)||(t=G_o.toPath(F_o.toString(t)));let n=Math.max(t.length,1);for(let a=0;a{"use strict";Object.defineProperty(rsr,Symbol.toStringTag,{value:"Module"});var L_o=XSe();function V_o(e,t,r,n){let a;return typeof n=="function"?a=n:a=()=>{},L_o.updateWith(e,t,()=>r,a)}rsr.setWith=V_o});var ssr=H(isr=>{"use strict";Object.defineProperty(isr,Symbol.toStringTag,{value:"Module"});var P_o=WSe(),W_o=Y3e();function O_o(e,...t){let r=P_o.cloneDeep(e);return W_o.defaults(r,...t)}isr.toDefaulted=O_o});var asr=H(osr=>{"use strict";Object.defineProperty(osr,Symbol.toStringTag,{value:"Module"});function M_o(e){let t=new Array(e.size),r=e.keys(),n=e.values();for(let a=0;a{"use strict";Object.defineProperty(csr,Symbol.toStringTag,{value:"Module"});function H_o(e){let t=new Array(e.size),r=e.values();for(let n=0;n{"use strict";Object.defineProperty(usr,Symbol.toStringTag,{value:"Module"});var Y_o=YK(),Q_o=asr(),X_o=lsr();function J_o(e){if(e==null)return[];if(e instanceof Set)return X_o.setToEntries(e);if(e instanceof Map)return Q_o.mapToEntries(e);let t=Y_o.keys(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(Asr,Symbol.toStringTag,{value:"Module"});var U_o=iX(),K_o=asr(),j_o=lsr();function z_o(e){if(e==null)return[];if(e instanceof Set)return j_o.setToEntries(e);if(e instanceof Map)return K_o.mapToEntries(e);let t=U_o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(psr,Symbol.toStringTag,{value:"Module"});var q_o=noe();function $_o(e){return q_o.isBuffer(e)}psr.isBuffer=$_o});var Isr=H(fsr=>{"use strict";Object.defineProperty(fsr,Symbol.toStringTag,{value:"Module"});var e0o=bm(),t0o=coe(),r0o=Nlt(),n0o=gut(),i0o=tM(),s0o=e$(),o0o=im();function a0o(e,t=e0o.identity,r){let n=Array.isArray(e)||n0o.isBuffer(e)||s0o.isTypedArray(e);return t=o0o.iteratee(t),r==null&&(n?r=[]:i0o.isObject(e)&&t0o.isFunction(e.constructor)?r=Object.create(Object.getPrototypeOf(e)):r={}),e==null||r0o.forEach(e,(a,o,l)=>t(r,a,o,l)),r}fsr.transform=a0o});var msr=H(hsr=>{"use strict";Object.defineProperty(hsr,Symbol.toStringTag,{value:"Module"});var c0o=XSe();function l0o(e,t,r){return c0o.updateWith(e,t,r,()=>{})}hsr.update=l0o});var _sr=H(Csr=>{"use strict";Object.defineProperty(Csr,Symbol.toStringTag,{value:"Module"});var u0o=iX();function g0o(e){let t=u0o.keysIn(e),r=new Array(t.length);for(let n=0;n{"use strict";Object.defineProperty(ysr,Symbol.toStringTag,{value:"Module"});function A0o(e){return typeof e=="function"}ysr.isFunction=A0o});var Ssr=H(Esr=>{"use strict";Object.defineProperty(Esr,Symbol.toStringTag,{value:"Module"});function d0o(e){return Number.isSafeInteger(e)&&e>=0}Esr.isLength=d0o});var Bsr=H(vsr=>{"use strict";Object.defineProperty(vsr,Symbol.toStringTag,{value:"Module"});var zRn=Function.prototype.toString,p0o=/[\\^$.*+?()[\]{}|]/g,f0o=RegExp(`^${zRn.call(Object.prototype.hasOwnProperty).replace(p0o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")}$`);function I0o(e){if(typeof e!="function")return!1;if(globalThis?.["__core-js_shared__"]!=null)throw new Error("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return f0o.test(zRn.call(e))}vsr.isNative=I0o});var Tsr=H(wsr=>{"use strict";Object.defineProperty(wsr,Symbol.toStringTag,{value:"Module"});function h0o(e){return e===null}wsr.isNull=h0o});var Nsr=H(Rsr=>{"use strict";Object.defineProperty(Rsr,Symbol.toStringTag,{value:"Module"});var m0o=uer();function C0o(e){return m0o.isUndefined(e)}Rsr.isUndefined=C0o});var Aut=H(Dsr=>{"use strict";Object.defineProperty(Dsr,Symbol.toStringTag,{value:"Module"});function _0o(e,t){if(t==null)return!0;if(e==null)return Object.keys(t).length===0;let r=Object.keys(t);for(let n=0;n{"use strict";Object.defineProperty(ksr,Symbol.toStringTag,{value:"Module"});var y0o=Aut(),b0o=izt();function E0o(e){return e=b0o.cloneDeep(e),function(t){return y0o.conformsTo(t,e)}}ksr.conforms=E0o});var qRn=H(Gsr=>{"use strict";Object.defineProperty(Gsr,Symbol.toStringTag,{value:"Module"});function S0o(e){return e instanceof ArrayBuffer}Gsr.isArrayBuffer=S0o});var Zsr=H(Fsr=>{"use strict";Object.defineProperty(Fsr,Symbol.toStringTag,{value:"Module"});var v0o=qRn();function B0o(e){return v0o.isArrayBuffer(e)}Fsr.isArrayBuffer=B0o});var Vsr=H(Lsr=>{"use strict";Object.defineProperty(Lsr,Symbol.toStringTag,{value:"Module"});function w0o(e){return typeof e=="boolean"||e instanceof Boolean}Lsr.isBoolean=w0o});var $Rn=H(Psr=>{"use strict";Object.defineProperty(Psr,Symbol.toStringTag,{value:"Module"});function T0o(e){return e instanceof Date}Psr.isDate=T0o});var Osr=H(Wsr=>{"use strict";Object.defineProperty(Wsr,Symbol.toStringTag,{value:"Module"});var R0o=$Rn();function N0o(e){return R0o.isDate(e)}Wsr.isDate=N0o});var Hsr=H(Msr=>{"use strict";Object.defineProperty(Msr,Symbol.toStringTag,{value:"Module"});var D0o=ioe(),k0o=Mfe();function x0o(e){return D0o.isObjectLike(e)&&e.nodeType===1&&!k0o.isPlainObject(e)}Msr.isElement=x0o});var Qsr=H(Ysr=>{"use strict";Object.defineProperty(Ysr,Symbol.toStringTag,{value:"Module"});var G0o=Vfe(),F0o=Sf(),Z0o=e$(),L0o=noe(),V0o=iut();function P0o(e){if(e==null)return!0;if(F0o.isArrayLike(e))return typeof e.splice!="function"&&typeof e!="string"&&!L0o.isBuffer(e)&&!Z0o.isTypedArray(e)&&!G0o.isArguments(e)?!1:e.length===0;if(typeof e=="object"){if(e instanceof Map||e instanceof Set)return e.size===0;let t=Object.keys(e);return V0o.isPrototype(e)?t.filter(r=>r!=="constructor").length===0:t.length===0}return!0}Ysr.isEmpty=P0o});var eNn=H(Xsr=>{"use strict";Object.defineProperty(Xsr,Symbol.toStringTag,{value:"Module"});function W0o(e,t){if(!Number.isInteger(e)||e<0)throw new Error("n must be a non-negative integer.");let r=0;return(...n)=>{if(++r>=e)return t(...n)}}Xsr.after=W0o});var Ksr=H(Usr=>{"use strict";Object.defineProperty(Usr,Symbol.toStringTag,{value:"Module"});var tNn=eNn(),O0o=Rnr();function Jsr(e,t,r){return typeof r!="function"&&(r=()=>{}),O0o.isEqualWith(e,t,(...n)=>{let a=r(...n);if(a!==void 0)return!!a;if(e instanceof Map&&t instanceof Map||e instanceof Set&&t instanceof Set)return Jsr(Array.from(e),Array.from(t),tNn.after(2,r))})}Usr.isEqualWith=Jsr});var zsr=H(jsr=>{"use strict";Object.defineProperty(jsr,Symbol.toStringTag,{value:"Module"});var M0o=Zfe();function H0o(e){return M0o.getTag(e)==="[object Error]"}jsr.isError=H0o});var $sr=H(qsr=>{"use strict";Object.defineProperty(qsr,Symbol.toStringTag,{value:"Module"});function Y0o(e){return Number.isFinite(e)}qsr.isFinite=Y0o});var tor=H(eor=>{"use strict";Object.defineProperty(eor,Symbol.toStringTag,{value:"Module"});function Q0o(e){return Number.isInteger(e)}eor.isInteger=Q0o});var rNn=H(ror=>{"use strict";Object.defineProperty(ror,Symbol.toStringTag,{value:"Module"});function X0o(e){return e instanceof RegExp}ror.isRegExp=X0o});var ior=H(nor=>{"use strict";Object.defineProperty(nor,Symbol.toStringTag,{value:"Module"});var J0o=rNn();function U0o(e){return J0o.isRegExp(e)}nor.isRegExp=U0o});var oor=H(sor=>{"use strict";Object.defineProperty(sor,Symbol.toStringTag,{value:"Module"});function K0o(e){return Number.isSafeInteger(e)}sor.isSafeInteger=K0o});var nNn=H(aor=>{"use strict";Object.defineProperty(aor,Symbol.toStringTag,{value:"Module"});function j0o(e){return e instanceof Set}aor.isSet=j0o});var lor=H(cor=>{"use strict";Object.defineProperty(cor,Symbol.toStringTag,{value:"Module"});var z0o=nNn();function q0o(e){return z0o.isSet(e)}cor.isSet=q0o});var iNn=H(uor=>{"use strict";Object.defineProperty(uor,Symbol.toStringTag,{value:"Module"});function $0o(e){return e instanceof WeakMap}uor.isWeakMap=$0o});var Aor=H(gor=>{"use strict";Object.defineProperty(gor,Symbol.toStringTag,{value:"Module"});var eyo=iNn();function tyo(e){return eyo.isWeakMap(e)}gor.isWeakMap=tyo});var sNn=H(dor=>{"use strict";Object.defineProperty(dor,Symbol.toStringTag,{value:"Module"});function ryo(e){return e instanceof WeakSet}dor.isWeakSet=ryo});var Ior=H(por=>{"use strict";Object.defineProperty(por,Symbol.toStringTag,{value:"Module"});var nyo=sNn();function iyo(e){return nyo.isWeakSet(e)}por.isWeakSet=iyo});var mor=H(hor=>{"use strict";Object.defineProperty(hor,Symbol.toStringTag,{value:"Module"});function syo(e){return e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()}hor.capitalize=syo});var _or=H(Cor=>{"use strict";Object.defineProperty(Cor,Symbol.toStringTag,{value:"Module"});var oyo=mor(),ayo=qy();function cyo(e){return oyo.capitalize(ayo.toString(e))}Cor.capitalize=cyo});var bor=H(yor=>{"use strict";Object.defineProperty(yor,Symbol.toStringTag,{value:"Module"});var lyo=coe(),oNn=$q(),uyo=tM(),gyo=qy();function Ayo(e,...t){if(e==null||!uyo.isObject(e)||oNn.isArray(e)&&t.length===0)return e;let r=[];for(let n=0;n{"use strict";Object.defineProperty(Eor,Symbol.toStringTag,{value:"Module"});var dyo=new Map([["\xC6","Ae"],["\xD0","D"],["\xD8","O"],["\xDE","Th"],["\xDF","ss"],["\xE6","ae"],["\xF0","d"],["\xF8","o"],["\xFE","th"],["\u0110","D"],["\u0111","d"],["\u0126","H"],["\u0127","h"],["\u0131","i"],["\u0132","IJ"],["\u0133","ij"],["\u0138","k"],["\u013F","L"],["\u0140","l"],["\u0141","L"],["\u0142","l"],["\u0149","'n"],["\u014A","N"],["\u014B","n"],["\u0152","Oe"],["\u0153","oe"],["\u0166","T"],["\u0167","t"],["\u017F","s"]]);function pyo(e){e=e.normalize("NFD");let t="";for(let r=0;r="\u0300"&&n<="\u036F"||n>="\uFE20"&&n<="\uFE23"||(t+=dyo.get(n)??n)}return t}Eor.deburr=pyo});var t$=H(Sor=>{"use strict";Object.defineProperty(Sor,Symbol.toStringTag,{value:"Module"});var fyo=aNn(),Iyo=qy();function hyo(e){return fyo.deburr(Iyo.toString(e))}Sor.deburr=hyo});var Hfe=H(dut=>{"use strict";Object.defineProperty(dut,Symbol.toStringTag,{value:"Module"});var cNn=/\p{Lu}?\p{Ll}+|[0-9]+|\p{Lu}+(?!\p{Ll})|\p{Emoji_Presentation}|\p{Extended_Pictographic}|\p{L}+/gu;function myo(e){return Array.from(e.match(cNn)??[])}dut.CASE_SPLIT_PATTERN=cNn;dut.words=myo});var lNn=H(vor=>{"use strict";Object.defineProperty(vor,Symbol.toStringTag,{value:"Module"});var Cyo=mor(),_yo=Hfe();function yyo(e){let t=_yo.words(e);if(t.length===0)return"";let[r,...n]=t;return`${r.toLowerCase()}${n.map(a=>Cyo.capitalize(a)).join("")}`}vor.camelCase=yyo});var Yfe=H(Bor=>{"use strict";Object.defineProperty(Bor,Symbol.toStringTag,{value:"Module"});var byo=qy();function Eyo(e){return typeof e!="string"&&(e=byo.toString(e)),e.replace(/['\u2019]/g,"")}Bor.normalizeForCase=Eyo});var Tor=H(wor=>{"use strict";Object.defineProperty(wor,Symbol.toStringTag,{value:"Module"});var Syo=t$(),vyo=lNn(),Byo=Yfe();function wyo(e){return vyo.camelCase(Byo.normalizeForCase(Syo.deburr(e)))}wor.camelCase=wyo});var Nor=H(Ror=>{"use strict";Object.defineProperty(Ror,Symbol.toStringTag,{value:"Module"});function Tyo(e,t,r){return e==null||t==null?!1:(r==null&&(r=e.length),e.endsWith(t,r))}Ror.endsWith=Tyo});var uNn=H(Dor=>{"use strict";Object.defineProperty(Dor,Symbol.toStringTag,{value:"Module"});var Ryo={"&":"&","<":"<",">":">",'"':""","'":"'"};function Nyo(e){return e.replace(/[&<>"']/g,t=>Ryo[t])}Dor.escape=Nyo});var put=H(kor=>{"use strict";Object.defineProperty(kor,Symbol.toStringTag,{value:"Module"});var Dyo=uNn(),kyo=qy();function xyo(e){return Dyo.escape(kyo.toString(e))}kor.escape=xyo});var gNn=H(xor=>{"use strict";Object.defineProperty(xor,Symbol.toStringTag,{value:"Module"});function Gyo(e){return e.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&")}xor.escapeRegExp=Gyo});var For=H(Gor=>{"use strict";Object.defineProperty(Gor,Symbol.toStringTag,{value:"Module"});var Fyo=gNn(),Zyo=qy();function Lyo(e){return Fyo.escapeRegExp(Zyo.toString(e))}Gor.escapeRegExp=Lyo});var ANn=H(Zor=>{"use strict";Object.defineProperty(Zor,Symbol.toStringTag,{value:"Module"});var Vyo=Hfe();function Pyo(e){return Vyo.words(e).map(r=>r.toLowerCase()).join("-")}Zor.kebabCase=Pyo});var Vor=H(Lor=>{"use strict";Object.defineProperty(Lor,Symbol.toStringTag,{value:"Module"});var Wyo=t$(),Oyo=ANn(),Myo=Yfe();function Hyo(e){return Oyo.kebabCase(Myo.normalizeForCase(Wyo.deburr(e)))}Lor.kebabCase=Hyo});var dNn=H(Por=>{"use strict";Object.defineProperty(Por,Symbol.toStringTag,{value:"Module"});var Yyo=Hfe();function Qyo(e){return Yyo.words(e).map(r=>r.toLowerCase()).join(" ")}Por.lowerCase=Qyo});var Oor=H(Wor=>{"use strict";Object.defineProperty(Wor,Symbol.toStringTag,{value:"Module"});var Xyo=t$(),Jyo=dNn(),Uyo=Yfe();function Kyo(e){return Jyo.lowerCase(Uyo.normalizeForCase(Xyo.deburr(e)))}Wor.lowerCase=Kyo});var pNn=H(Mor=>{"use strict";Object.defineProperty(Mor,Symbol.toStringTag,{value:"Module"});function jyo(e){return e.substring(0,1).toLowerCase()+e.substring(1)}Mor.lowerFirst=jyo});var Yor=H(Hor=>{"use strict";Object.defineProperty(Hor,Symbol.toStringTag,{value:"Module"});var zyo=pNn(),qyo=qy();function $yo(e){return zyo.lowerFirst(qyo.toString(e))}Hor.lowerFirst=$yo});var fNn=H(Qor=>{"use strict";Object.defineProperty(Qor,Symbol.toStringTag,{value:"Module"});function ebo(e,t,r=" "){return e.padStart(Math.floor((t-e.length)/2)+e.length,r).padEnd(t,r)}Qor.pad=ebo});var Jor=H(Xor=>{"use strict";Object.defineProperty(Xor,Symbol.toStringTag,{value:"Module"});var tbo=fNn(),rbo=qy();function nbo(e,t,r){return tbo.pad(rbo.toString(e),t,r)}Xor.pad=nbo});var Kor=H(Uor=>{"use strict";Object.defineProperty(Uor,Symbol.toStringTag,{value:"Module"});var ibo=qy();function sbo(e,t=0,r=" "){return ibo.toString(e).padEnd(t,r)}Uor.padEnd=sbo});var zor=H(jor=>{"use strict";Object.defineProperty(jor,Symbol.toStringTag,{value:"Module"});var obo=qy();function abo(e,t=0,r=" "){return obo.toString(e).padStart(t,r)}jor.padStart=abo});var $or=H(qor=>{"use strict";Object.defineProperty(qor,Symbol.toStringTag,{value:"Module"});var cbo=Number.MAX_SAFE_INTEGER;qor.MAX_SAFE_INTEGER=cbo});var tar=H(ear=>{"use strict";Object.defineProperty(ear,Symbol.toStringTag,{value:"Module"});var lbo=qq(),ubo=$or(),gbo=$w(),Abo=qy();function dbo(e,t,r){return(r?lbo.isIterateeCall(e,t,r):t===void 0)?t=1:t=gbo.toInteger(t),t<1||t>ubo.MAX_SAFE_INTEGER?"":Abo.toString(e).repeat(t)}ear.repeat=dbo});var nar=H(rar=>{"use strict";Object.defineProperty(rar,Symbol.toStringTag,{value:"Module"});var INn=qy();function pbo(e,t,r){return arguments.length<3?INn.toString(e):INn.toString(e).replace(t,r)}rar.replace=pbo});var hNn=H(iar=>{"use strict";Object.defineProperty(iar,Symbol.toStringTag,{value:"Module"});var fbo=Hfe();function Ibo(e){return fbo.words(e).map(r=>r.toLowerCase()).join("_")}iar.snakeCase=Ibo});var oar=H(sar=>{"use strict";Object.defineProperty(sar,Symbol.toStringTag,{value:"Module"});var hbo=t$(),mbo=hNn(),Cbo=Yfe();function _bo(e){return mbo.snakeCase(Cbo.normalizeForCase(hbo.deburr(e)))}sar.snakeCase=_bo});var car=H(aar=>{"use strict";Object.defineProperty(aar,Symbol.toStringTag,{value:"Module"});var ybo=qy();function bbo(e,t,r){return ybo.toString(e).split(t,r)}aar.split=bbo});var uar=H(lar=>{"use strict";Object.defineProperty(lar,Symbol.toStringTag,{value:"Module"});var Ebo=t$(),Sbo=Hfe(),vbo=Yfe();function Bbo(e){let t=Sbo.words(vbo.normalizeForCase(Ebo.deburr(e)).trim()),r="";for(let n=0;n{"use strict";Object.defineProperty(gar,Symbol.toStringTag,{value:"Module"});function wbo(e,t,r){return e==null||t==null?!1:(r==null&&(r=0),e.startsWith(t,r))}gar.startsWith=wbo});var dar=H(hut=>{"use strict";Object.defineProperty(hut,Symbol.toStringTag,{value:"Module"});var Tbo=put(),Rbo=zlt(),mNn=Y3e(),Nbo=qy(),Dbo=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,kbo=/['\n\r\u2028\u2029\\]/g,fut=/($^)/,xbo=new Map([["\\","\\"],["'","'"],[` `,"n"],["\r","r"],["\u2028","u2028"],["\u2029","u2029"]]);function Gbo(e){return`\\${xbo.get(e)}`}var CNn=/<%=([\s\S]+?)%>/g,Iut={escape:/<%-([\s\S]+?)%>/g,evaluate:/<%([\s\S]+?)%>/g,interpolate:CNn,variable:"",imports:{_:{escape:Tbo.escape,template:_Nn}}};function _Nn(e,t,r){e=Nbo.toString(e),r&&(t=Iut),t=mNn.defaults({...t},Iut);let n=new RegExp([t.escape?.source??fut.source,t.interpolate?.source??fut.source,t.interpolate===CNn?Dbo.source:fut.source,t.evaluate?.source??fut.source,"$"].join("|"),"g"),a=0,o=!1,l="__p += ''";for(let N of e.matchAll(n)){let[B,F,Q,X,ae]=N,{index:ne}=N;l+=` + '${e.slice(a,ne).replace(kbo,Gbo)}'`,F&&(l+=` + _.escape(${F})`),Q?l+=` + ((${Q}) == null ? '' : ${Q})`:X&&(l+=` + ((${X}) == null ? '' : ${X})`),ae&&(l+=`; ${ae}; __p += ''`,o=!0),a=ne+B.length}let A=mNn.defaults({...t.imports},Iut.imports),f=Object.keys(A),I=Object.values(A),C=`//# sourceURL=${t.sourceURL?String(t.sourceURL).replace(/[\r\n]/g," "):`es-toolkit.templateSource[${Date.now()}]`} @@ -172,9 +172,9 @@ ${ae}; ${l} }`} return __p; - }`,E=Rbo.attempt(()=>new Function(...f,`${C}return ${b}`)(...I));if(E.source=b,E instanceof Error)throw E;return E}hut.template=_Nn;hut.templateSettings=Iut});var far=H(par=>{"use strict";Object.defineProperty(par,Symbol.toStringTag,{value:"Module"});var Fbo=qy();function Zbo(e){return Fbo.toString(e).toLowerCase()}par.toLower=Zbo});var har=H(Iar=>{"use strict";Object.defineProperty(Iar,Symbol.toStringTag,{value:"Module"});var Lbo=qy();function Vbo(e){return Lbo.toString(e).toUpperCase()}Iar.toUpper=Vbo});var Car=H(mar=>{"use strict";Object.defineProperty(mar,Symbol.toStringTag,{value:"Module"});function Pbo(e,t){if(t===void 0)return e.trimEnd();let r=e.length;switch(typeof t){case"string":{if(t.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;r>0&&e[r-1]===t;)r--;break}case"object":for(;r>0&&t.includes(e[r-1]);)r--}return e.substring(0,r)}mar.trimEnd=Pbo});var yar=H(_ar=>{"use strict";Object.defineProperty(_ar,Symbol.toStringTag,{value:"Module"});function Wbo(e,t){if(t===void 0)return e.trimStart();let r=0;switch(typeof t){case"string":{for(;r{"use strict";Object.defineProperty(bar,Symbol.toStringTag,{value:"Module"});var Obo=Car(),Mbo=yar();function Hbo(e,t){return t===void 0?e.trim():Mbo.trimStart(Obo.trimEnd(e,t),t)}bar.trim=Hbo});var Bar=H(Sar=>{"use strict";Object.defineProperty(Sar,Symbol.toStringTag,{value:"Module"});var Ear=yNn();function Ybo(e,t,r){if(e==null)return"";if(r!=null||t==null)return e.toString().trim();switch(typeof t){case"object":return Array.isArray(t)?Ear.trim(e,t.flatMap(n=>n.toString().split(""))):Ear.trim(e,t.toString().split(""));default:return Ear.trim(e,t.toString().split(""))}}Sar.trim=Ybo});var Tar=H(war=>{"use strict";Object.defineProperty(war,Symbol.toStringTag,{value:"Module"});var Qbo=Car();function Xbo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimEnd():Qbo.trimEnd(e,t.toString().split(""))}war.trimEnd=Xbo});var Nar=H(Rar=>{"use strict";Object.defineProperty(Rar,Symbol.toStringTag,{value:"Module"});var Jbo=yar();function Ubo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimStart():Jbo.trimStart(e,t.toString().split(""))}Rar.trimStart=Ubo});var kar=H(Dar=>{"use strict";Object.defineProperty(Dar,Symbol.toStringTag,{value:"Module"});var Kbo=tM(),jbo=/[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;function zbo(e,t){e=e!=null?`${e}`:"";let r=30,n="...";Kbo.isObject(t)&&(r=qbo(t.length),n="omission"in t?`${t.omission}`:"...");let a=e.length,o=Array.from(n).length,l=Math.max(r-o,0),A;if(jbo.test(e)&&(A=Array.from(e),a=A.length),r>=a)return e;if(a<=o)return n;let I=A===void 0?e.slice(0,l):A?.slice(0,l).join(""),C=t?.separator;if(!C)return I+=n,I;let b=C instanceof RegExp?C.source:C,E="u"+(C instanceof RegExp?C.flags.replace("u",""):""),N=new RegExp(`(?.*(?:(?!${b}).))(?:${b})`,E).exec(I);return(N?.groups?N.groups.result:I)+n}function qbo(e){return e==null?30:e<=0?0:e}Dar.truncate=zbo});var bNn=H(xar=>{"use strict";Object.defineProperty(xar,Symbol.toStringTag,{value:"Module"});var $bo={"&":"&","<":"<",">":">",""":'"',"'":"'"};function eEo(e){return e.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,t=>$bo[t]||"'")}xar.unescape=eEo});var Far=H(Gar=>{"use strict";Object.defineProperty(Gar,Symbol.toStringTag,{value:"Module"});var tEo=bNn(),rEo=qy();function nEo(e){return tEo.unescape(rEo.toString(e))}Gar.unescape=nEo});var ENn=H(Zar=>{"use strict";Object.defineProperty(Zar,Symbol.toStringTag,{value:"Module"});var iEo=Hfe();function sEo(e){let t=iEo.words(e),r="";for(let n=0;n{"use strict";Object.defineProperty(Lar,Symbol.toStringTag,{value:"Module"});var oEo=t$(),aEo=ENn(),cEo=Yfe();function lEo(e){return aEo.upperCase(cEo.normalizeForCase(oEo.deburr(e)))}Lar.upperCase=lEo});var SNn=H(War=>{"use strict";Object.defineProperty(War,Symbol.toStringTag,{value:"Module"});function uEo(e){return e.substring(0,1).toUpperCase()+e.substring(1)}War.upperFirst=uEo});var Mar=H(Oar=>{"use strict";Object.defineProperty(Oar,Symbol.toStringTag,{value:"Module"});var gEo=SNn(),AEo=qy();function dEo(e){return gEo.upperFirst(AEo.toString(e))}Oar.upperFirst=dEo});var Yar=H(Har=>{"use strict";Object.defineProperty(Har,Symbol.toStringTag,{value:"Module"});var pEo=qy(),fEo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7",USe="\\p{Lu}",NNn="\\p{Ll}",DNn="(?:[\\p{Lm}\\p{Lo}]\\p{M}*)",X3e="\\d",vNn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",BNn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",wNn=`[\\p{Z}\\p{P}${fEo}]`,IEo=`(?:${USe}|${DNn})`,TNn=`(?:${NNn}|${DNn})`,RNn=RegExp([`${USe}?${NNn}+${vNn}(?=${wNn}|${USe}|$)`,`${IEo}+${BNn}(?=${wNn}|${USe}${TNn}|$)`,`${USe}?${TNn}+${vNn}`,`${USe}+${BNn}`,`${X3e}*(?:1ST|2ND|3RD|(?![123])${X3e}TH)(?=\\b|[a-z_])`,`${X3e}*(?:1st|2nd|3rd|(?![123])${X3e}th)(?=\\b|[A-Z_])`,`${X3e}+`,"\\p{Emoji_Presentation}","\\p{Extended_Pictographic}"].join("|"),"gu");function hEo(e,t=RNn,r){let n=pEo.toString(e);return r&&(t=RNn),typeof t=="number"&&(t=t.toString()),Array.from(n.match(t)??[]).filter(o=>o!=="")}Har.words=hEo});var Xar=H(Qar=>{"use strict";Object.defineProperty(Qar,Symbol.toStringTag,{value:"Module"});var mEo=im(),CEo=coe();function _Eo(e){let t=e.length,r=e.map(n=>{let a=n[0],o=n[1];if(!CEo.isFunction(o))throw new TypeError("Expected a function");return[mEo.iteratee(a),o]});return function(...n){for(let a=0;a{"use strict";Object.defineProperty(Jar,Symbol.toStringTag,{value:"Module"});function yEo(e){return()=>e}Jar.constant=yEo});var jar=H(Kar=>{"use strict";Object.defineProperty(Kar,Symbol.toStringTag,{value:"Module"});function bEo(e,t){return e==null||Number.isNaN(e)?t:e}Kar.defaultTo=bEo});var qar=H(zar=>{"use strict";Object.defineProperty(zar,Symbol.toStringTag,{value:"Module"});var kNn=Q9();function EEo(e,t){return typeof e=="string"&&typeof t=="string"?e>t:kNn.toNumber(e)>kNn.toNumber(t)}zar.gt=EEo});var ecr=H($ar=>{"use strict";Object.defineProperty($ar,Symbol.toStringTag,{value:"Module"});var xNn=Q9();function SEo(e,t){return typeof e=="string"&&typeof t=="string"?e>=t:xNn.toNumber(e)>=xNn.toNumber(t)}$ar.gte=SEo});var U3e=H(tcr=>{"use strict";Object.defineProperty(tcr,Symbol.toStringTag,{value:"Module"});var vEo=$5(),BEo=Kq(),wEo=zq(),GNn=eM();function TEo(e,t,...r){if(r=r.flat(1),e!=null)switch(typeof t){case"string":return typeof e=="object"&&Object.hasOwn(e,t)?J3e(e,[t],r):J3e(e,vEo.toPath(t),r);case"number":case"symbol":return J3e(e,[t],r);default:return Array.isArray(t)?J3e(e,t,r):J3e(e,[t],r)}}function J3e(e,t,r){let n=GNn.get(e,t.slice(0,-1),e);if(n==null)return;let a=wEo.last(t),o=a?.valueOf();return typeof o=="number"?a=BEo.toKey(o):a=String(a),GNn.get(n,a)?.apply(n,r)}tcr.invoke=TEo});var ncr=H(rcr=>{"use strict";Object.defineProperty(rcr,Symbol.toStringTag,{value:"Module"});var FNn=Q9();function REo(e,t){return typeof e=="string"&&typeof t=="string"?e{"use strict";Object.defineProperty(icr,Symbol.toStringTag,{value:"Module"});var ZNn=Q9();function NEo(e,t){return typeof e=="string"&&typeof t=="string"?e<=t:ZNn.toNumber(e)<=ZNn.toNumber(t)}icr.lte=NEo});var acr=H(ocr=>{"use strict";Object.defineProperty(ocr,Symbol.toStringTag,{value:"Module"});var DEo=U3e();function kEo(e,...t){return function(r){return DEo.invoke(r,e,t)}}ocr.method=kEo});var lcr=H(ccr=>{"use strict";Object.defineProperty(ccr,Symbol.toStringTag,{value:"Module"});var xEo=U3e();function GEo(e,...t){return function(r){return xEo.invoke(e,r,t)}}ccr.methodOf=GEo});var gcr=H(ucr=>{"use strict";Object.defineProperty(ucr,Symbol.toStringTag,{value:"Module"});function FEo(){return Date.now()}ucr.now=FEo});var dcr=H(Acr=>{"use strict";Object.defineProperty(Acr,Symbol.toStringTag,{value:"Module"});var ZEo=im();function LEo(...e){e.length===1&&Array.isArray(e[0])&&(e=e[0]);let t=e.map(r=>ZEo.iteratee(r));return function(...r){return t.map(n=>n.apply(this,r))}}Acr.over=LEo});var fcr=H(pcr=>{"use strict";Object.defineProperty(pcr,Symbol.toStringTag,{value:"Module"});var LNn=im();function VEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(Icr,Symbol.toStringTag,{value:"Module"});var VNn=im();function PEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(mcr,Symbol.toStringTag,{value:"Module"});function WEo(){return[]}mcr.stubArray=WEo});var ycr=H(_cr=>{"use strict";Object.defineProperty(_cr,Symbol.toStringTag,{value:"Module"});function OEo(){return!1}_cr.stubFalse=OEo});var Ecr=H(bcr=>{"use strict";Object.defineProperty(bcr,Symbol.toStringTag,{value:"Module"});function MEo(){return{}}bcr.stubObject=MEo});var vcr=H(Scr=>{"use strict";Object.defineProperty(Scr,Symbol.toStringTag,{value:"Module"});function HEo(){return""}Scr.stubString=HEo});var wcr=H(Bcr=>{"use strict";Object.defineProperty(Bcr,Symbol.toStringTag,{value:"Module"});function YEo(){return!0}Bcr.stubTrue=YEo});var PNn=H(Tcr=>{"use strict";Object.defineProperty(Tcr,Symbol.toStringTag,{value:"Module"});var QEo=4294967295;Tcr.MAX_ARRAY_LENGTH=QEo});var Ncr=H(Rcr=>{"use strict";Object.defineProperty(Rcr,Symbol.toStringTag,{value:"Module"});var XEo=PNn(),JEo=Ofe();function UEo(e){if(e==null)return 0;let t=Math.floor(Number(e));return JEo.clamp(t,0,XEo.MAX_ARRAY_LENGTH)}Rcr.toLength=UEo});var kcr=H(Dcr=>{"use strict";Object.defineProperty(Dcr,Symbol.toStringTag,{value:"Module"});var KEo=iX();function jEo(e){let t={},r=KEo.keysIn(e);for(let n=0;n{"use strict";Object.defineProperty(xcr,Symbol.toStringTag,{value:"Module"});var zEo=$w(),WNn=$or(),qEo=Ofe();function $Eo(e){return e==null?0:qEo.clamp(zEo.toInteger(e),-WNn.MAX_SAFE_INTEGER,WNn.MAX_SAFE_INTEGER)}xcr.toSafeInteger=$Eo});var Zcr=H(Fcr=>{"use strict";Object.defineProperty(Fcr,Symbol.toStringTag,{value:"Module"});var e1o=0;function t1o(e=""){let t=++e1o;return`${e}${t}`}Fcr.uniqueId=t1o});var JNn=H(Kn=>{"use strict";Object.defineProperty(Kn,Symbol.toStringTag,{value:"Module"});var r1o=E7t(),n1o=R7t(),i1o=k7t(),s1o=F7t(),o1o=pzt(),a1o=Czt(),c1o=Blt(),l1o=wlt(),u1o=xzt(),g1o=Zzt(),A1o=Pzt(),d1o=Mzt(),ONn=Nlt(),MNn=Xzt(),p1o=Kzt(),f1o=$zt(),I1o=Dlt(),h1o=rqt(),m1o=sqt(),C1o=aqt(),_1o=lqt(),HNn=Aqt(),y1o=mqt(),b1o=yqt(),E1o=D3e(),S1o=Pfe(),v1o=Eqt(),B1o=YSe(),w1o=Bqt(),T1o=Tqt(),R1o=Nqt(),N1o=xqt(),D1o=Lqt(),k1o=xlt(),x1o=Glt(),G1o=Jqt(),F1o=Kqt(),Z1o=qqt(),L1o=zq(),V1o=e$t(),P1o=N3e(),W1o=r$t(),O1o=Zlt(),M1o=a$t(),H1o=g$t(),Y1o=d$t(),Q1o=f$t(),X1o=h$t(),J1o=E$t(),U1o=Flt(),K1o=v$t(),j1o=T$t(),z1o=D$t(),q1o=x$t(),$1o=Z$t(),e2o=J$t(),t2o=$$t(),r2o=ter(),n2o=ner(),i2o=ser(),s2o=aer(),o2o=Mlt(),a2o=L3e(),c2o=mer(),l2o=Ylt(),u2o=Hlt(),g2o=ber(),A2o=ver(),d2o=Ter(),p2o=Der(),f2o=Ger(),I2o=Zer(),h2o=Ver(),m2o=Xlt(),C2o=Jlt(),_2o=k3e(),y2o=Jer(),b2o=Ker(),E2o=Ult(),S2o=etr(),v2o=ntr(),B2o=str(),w2o=ltr(),T2o=gtr(),R2o=Itr(),N2o=Ctr(),D2o=Etr(),k2o=vtr(),x2o=wtr(),G2o=jlt(),F2o=zlt(),Z2o=Dtr(),L2o=Gtr(),V2o=Ltr(),P2o=Wtr(),W2o=Htr(),O2o=qlt(),M2o=Jtr(),H2o=Ktr(),Y2o=ztr(),Q2o=rrr(),X2o=srr(),J2o=crr(),U2o=F3e(),K2o=urr(),j2o=drr(),z2o=frr(),q2o=mrr(),$2o=yrr(),eSo=Err(),tSo=Brr(),rSo=Trr(),nSo=Nrr(),iSo=krr(),sSo=Grr(),oSo=Zrr(),aSo=Prr(),cSo=Ofe(),lSo=Orr(),uSo=Hrr(),gSo=Xrr(),ASo=Urr(),dSo=zrr(),pSo=tnr(),fSo=snr(),ISo=anr(),hSo=unr(),mSo=Anr(),CSo=pnr(),_So=Inr(),ySo=Cnr(),bSo=bnr(),ESo=Snr(),SSo=Bnr(),vSo=nut(),BSo=rut(),wSo=xnr(),TSo=HK(),RSo=Fnr(),NSo=Onr(),YNn=Ynr(),QNn=Xnr(),DSo=Unr(),kSo=Llt(),xSo=out(),GSo=WSe(),FSo=v3e(),ZSo=qnr(),LSo=eir(),VSo=Y3e(),PSo=iir(),WSo=air(),OSo=lir(),MSo=gir(),HSo=dir(),YSo=fir(),QSo=hir(),XSo=Cir(),JSo=yir(),USo=Eir(),KSo=eM(),jSo=B3e(),zSo=vir(),qSo=Tir(),$So=Nir(),evo=YK(),tvo=iX(),rvo=xir(),nvo=Zir(),ivo=Mir(),svo=lut(),ovo=Qir(),avo=Jir(),cvo=Kir(),lvo=zir(),uvo=nX(),gvo=$ir(),Avo=tsr(),dvo=P3e(),pvo=nsr(),fvo=ssr(),Ivo=gsr(),hvo=dsr(),mvo=Isr(),Cvo=G3e(),_vo=msr(),yvo=XSe(),bvo=Plt(),Evo=_sr(),Svo=bsr(),vvo=Ssr(),Bvo=Elt(),wvo=Bsr(),Tvo=Tsr(),Rvo=Nsr(),Nvo=xsr(),Dvo=Aut(),kvo=Vfe(),xvo=$q(),Gvo=Zsr(),Fvo=Sf(),Zvo=b2(),Lvo=Vsr(),Vvo=gut(),Pvo=Osr(),Wvo=Hsr(),Ovo=Qsr(),Mvo=Ksr(),Hvo=zsr(),Yvo=$sr(),Qvo=tor(),Xvo=Vlt(),Jvo=_3e(),Uvo=Olt(),Kvo=QSe(),jvo=V3e(),zvo=tM(),qvo=ioe(),$vo=Mfe(),eBo=ior(),tBo=oor(),rBo=lor(),nBo=HSe(),iBo=soe(),sBo=e$(),oBo=Aor(),aBo=Ior(),cBo=OK(),lBo=MK(),uBo=_or(),gBo=bor(),ABo=Tor(),dBo=t$(),pBo=Nor(),fBo=put(),IBo=For(),hBo=Vor(),mBo=Oor(),CBo=Yor(),_Bo=Jor(),yBo=Kor(),bBo=zor(),EBo=tar(),SBo=nar(),vBo=oar(),BBo=car(),wBo=uar(),TBo=Aar(),XNn=dar(),RBo=far(),NBo=har(),DBo=Bar(),kBo=Tar(),xBo=Nar(),GBo=kar(),FBo=Far(),ZBo=Par(),LBo=Mar(),VBo=Yar(),PBo=Xar(),WBo=Uar(),OBo=jar(),MBo=Sk(),HBo=qar(),YBo=ecr(),QBo=U3e(),XBo=im(),JBo=ncr(),UBo=scr(),KBo=acr(),jBo=lcr(),zBo=gcr(),qBo=dcr(),$Bo=fcr(),ewo=hcr(),two=Ccr(),rwo=ycr(),nwo=Ecr(),iwo=vcr(),swo=wcr(),owo=H3e(),awo=Z3e(),cwo=MSe(),lwo=$w(),uwo=Ncr(),gwo=Q9(),Awo=$5(),dwo=kcr(),pwo=Gcr(),fwo=qy(),Iwo=Zcr();Kn.castArray=r1o.castArray;Kn.chunk=n1o.chunk;Kn.compact=i1o.compact;Kn.concat=s1o.concat;Kn.countBy=o1o.countBy;Kn.difference=a1o.difference;Kn.differenceBy=c1o.differenceBy;Kn.differenceWith=l1o.differenceWith;Kn.drop=u1o.drop;Kn.dropRight=g1o.dropRight;Kn.dropRightWhile=A1o.dropRightWhile;Kn.dropWhile=d1o.dropWhile;Kn.each=ONn.forEach;Kn.forEach=ONn.forEach;Kn.eachRight=MNn.forEachRight;Kn.forEachRight=MNn.forEachRight;Kn.every=p1o.every;Kn.fill=f1o.fill;Kn.filter=I1o.filter;Kn.find=h1o.find;Kn.findIndex=m1o.findIndex;Kn.findLast=C1o.findLast;Kn.findLastIndex=_1o.findLastIndex;Kn.first=HNn.head;Kn.head=HNn.head;Kn.flatMap=y1o.flatMap;Kn.flatMapDeep=b1o.flatMapDeep;Kn.flatMapDepth=E1o.flatMapDepth;Kn.flatten=S1o.flatten;Kn.flattenDeep=v1o.flattenDeep;Kn.flattenDepth=B1o.flattenDepth;Kn.groupBy=w1o.groupBy;Kn.includes=T1o.includes;Kn.indexOf=R1o.indexOf;Kn.initial=N1o.initial;Kn.intersection=D1o.intersection;Kn.intersectionBy=k1o.intersectionBy;Kn.intersectionWith=x1o.intersectionWith;Kn.invokeMap=G1o.invokeMap;Kn.join=F1o.join;Kn.keyBy=Z1o.keyBy;Kn.last=L1o.last;Kn.lastIndexOf=V1o.lastIndexOf;Kn.map=P1o.map;Kn.nth=W1o.nth;Kn.orderBy=O1o.orderBy;Kn.partition=M1o.partition;Kn.pull=H1o.pull;Kn.pullAll=Y1o.pullAll;Kn.pullAllBy=Q1o.pullAllBy;Kn.pullAllWith=X1o.pullAllWith;Kn.pullAt=J1o.pullAt;Kn.reduce=U1o.reduce;Kn.reduceRight=K1o.reduceRight;Kn.reject=j1o.reject;Kn.remove=z1o.remove;Kn.reverse=q1o.reverse;Kn.sample=$1o.sample;Kn.sampleSize=e2o.sampleSize;Kn.shuffle=t2o.shuffle;Kn.size=r2o.size;Kn.slice=n2o.slice;Kn.some=i2o.some;Kn.sortBy=s2o.sortBy;Kn.sortedIndex=o2o.sortedIndex;Kn.sortedIndexBy=a2o.sortedIndexBy;Kn.sortedIndexOf=c2o.sortedIndexOf;Kn.sortedLastIndex=l2o.sortedLastIndex;Kn.sortedLastIndexBy=u2o.sortedLastIndexBy;Kn.sortedLastIndexOf=g2o.sortedLastIndexOf;Kn.tail=A2o.tail;Kn.take=d2o.take;Kn.takeRight=p2o.takeRight;Kn.takeRightWhile=f2o.takeRightWhile;Kn.takeWhile=I2o.takeWhile;Kn.union=h2o.union;Kn.unionBy=m2o.unionBy;Kn.unionWith=C2o.unionWith;Kn.uniq=_2o.uniq;Kn.uniqBy=y2o.uniqBy;Kn.uniqWith=b2o.uniqWith;Kn.unzip=E2o.unzip;Kn.unzipWith=S2o.unzipWith;Kn.without=v2o.without;Kn.xor=B2o.xor;Kn.xorBy=w2o.xorBy;Kn.xorWith=T2o.xorWith;Kn.zip=R2o.zip;Kn.zipObject=N2o.zipObject;Kn.zipObjectDeep=D2o.zipObjectDeep;Kn.zipWith=k2o.zipWith;Kn.after=x2o.after;Kn.ary=G2o.ary;Kn.attempt=F2o.attempt;Kn.before=Z2o.before;Kn.bind=L2o.bind;Kn.bindKey=V2o.bindKey;Kn.curry=P2o.curry;Kn.curryRight=W2o.curryRight;Kn.debounce=O2o.debounce;Kn.defer=M2o.defer;Kn.delay=H2o.delay;Kn.flip=Y2o.flip;Kn.flow=Q2o.flow;Kn.flowRight=X2o.flowRight;Kn.memoize=J2o.memoize;Kn.negate=U2o.negate;Kn.nthArg=K2o.nthArg;Kn.once=j2o.once;Kn.overArgs=z2o.overArgs;Kn.partial=q2o.partial;Kn.partialRight=$2o.partialRight;Kn.rearg=eSo.rearg;Kn.rest=tSo.rest;Kn.spread=rSo.spread;Kn.throttle=nSo.throttle;Kn.unary=iSo.unary;Kn.wrap=sSo.wrap;Kn.add=oSo.add;Kn.ceil=aSo.ceil;Kn.clamp=cSo.clamp;Kn.divide=lSo.divide;Kn.floor=uSo.floor;Kn.inRange=gSo.inRange;Kn.max=ASo.max;Kn.maxBy=dSo.maxBy;Kn.mean=pSo.mean;Kn.meanBy=fSo.meanBy;Kn.min=ISo.min;Kn.minBy=hSo.minBy;Kn.multiply=mSo.multiply;Kn.parseInt=CSo.parseInt;Kn.random=_So.random;Kn.range=ySo.range;Kn.rangeRight=bSo.rangeRight;Kn.round=ESo.round;Kn.subtract=SSo.subtract;Kn.sum=vSo.sum;Kn.sumBy=BSo.sumBy;Kn.isEqual=wSo.isEqual;Kn.identity=TSo.identity;Kn.noop=RSo.noop;Kn.assign=NSo.assign;Kn.assignIn=YNn.assignIn;Kn.extend=YNn.assignIn;Kn.assignInWith=QNn.assignInWith;Kn.extendWith=QNn.assignInWith;Kn.assignWith=DSo.assignWith;Kn.at=kSo.at;Kn.clone=xSo.clone;Kn.cloneDeep=GSo.cloneDeep;Kn.cloneDeepWith=FSo.cloneDeepWith;Kn.cloneWith=ZSo.cloneWith;Kn.create=LSo.create;Kn.defaults=VSo.defaults;Kn.defaultsDeep=PSo.defaultsDeep;Kn.findKey=WSo.findKey;Kn.findLastKey=OSo.findLastKey;Kn.forIn=MSo.forIn;Kn.forInRight=HSo.forInRight;Kn.forOwn=YSo.forOwn;Kn.forOwnRight=QSo.forOwnRight;Kn.fromPairs=XSo.fromPairs;Kn.functions=JSo.functions;Kn.functionsIn=USo.functionsIn;Kn.get=KSo.get;Kn.has=jSo.has;Kn.hasIn=zSo.hasIn;Kn.invert=qSo.invert;Kn.invertBy=$So.invertBy;Kn.keys=evo.keys;Kn.keysIn=tvo.keysIn;Kn.mapKeys=rvo.mapKeys;Kn.mapValues=nvo.mapValues;Kn.merge=ivo.merge;Kn.mergeWith=svo.mergeWith;Kn.omit=ovo.omit;Kn.omitBy=avo.omitBy;Kn.pick=cvo.pick;Kn.pickBy=lvo.pickBy;Kn.property=uvo.property;Kn.propertyOf=gvo.propertyOf;Kn.result=Avo.result;Kn.set=dvo.set;Kn.setWith=pvo.setWith;Kn.toDefaulted=fvo.toDefaulted;Kn.toPairs=Ivo.toPairs;Kn.toPairsIn=hvo.toPairsIn;Kn.transform=mvo.transform;Kn.unset=Cvo.unset;Kn.update=_vo.update;Kn.updateWith=yvo.updateWith;Kn.values=bvo.values;Kn.valuesIn=Evo.valuesIn;Kn.isFunction=Svo.isFunction;Kn.isLength=vvo.isLength;Kn.isMatchWith=Bvo.isMatchWith;Kn.isNative=wvo.isNative;Kn.isNull=Tvo.isNull;Kn.isUndefined=Rvo.isUndefined;Kn.conforms=Nvo.conforms;Kn.conformsTo=Dvo.conformsTo;Kn.isArguments=kvo.isArguments;Kn.isArray=xvo.isArray;Kn.isArrayBuffer=Gvo.isArrayBuffer;Kn.isArrayLike=Fvo.isArrayLike;Kn.isArrayLikeObject=Zvo.isArrayLikeObject;Kn.isBoolean=Lvo.isBoolean;Kn.isBuffer=Vvo.isBuffer;Kn.isDate=Pvo.isDate;Kn.isElement=Wvo.isElement;Kn.isEmpty=Ovo.isEmpty;Kn.isEqualWith=Mvo.isEqualWith;Kn.isError=Hvo.isError;Kn.isFinite=Yvo.isFinite;Kn.isInteger=Qvo.isInteger;Kn.isMap=Xvo.isMap;Kn.isMatch=Jvo.isMatch;Kn.isNaN=Uvo.isNaN;Kn.isNil=Kvo.isNil;Kn.isNumber=jvo.isNumber;Kn.isObject=zvo.isObject;Kn.isObjectLike=qvo.isObjectLike;Kn.isPlainObject=$vo.isPlainObject;Kn.isRegExp=eBo.isRegExp;Kn.isSafeInteger=tBo.isSafeInteger;Kn.isSet=rBo.isSet;Kn.isString=nBo.isString;Kn.isSymbol=iBo.isSymbol;Kn.isTypedArray=sBo.isTypedArray;Kn.isWeakMap=oBo.isWeakMap;Kn.isWeakSet=aBo.isWeakSet;Kn.matches=cBo.matches;Kn.matchesProperty=lBo.matchesProperty;Kn.capitalize=uBo.capitalize;Kn.bindAll=gBo.bindAll;Kn.camelCase=ABo.camelCase;Kn.deburr=dBo.deburr;Kn.endsWith=pBo.endsWith;Kn.escape=fBo.escape;Kn.escapeRegExp=IBo.escapeRegExp;Kn.kebabCase=hBo.kebabCase;Kn.lowerCase=mBo.lowerCase;Kn.lowerFirst=CBo.lowerFirst;Kn.pad=_Bo.pad;Kn.padEnd=yBo.padEnd;Kn.padStart=bBo.padStart;Kn.repeat=EBo.repeat;Kn.replace=SBo.replace;Kn.snakeCase=vBo.snakeCase;Kn.split=BBo.split;Kn.startCase=wBo.startCase;Kn.startsWith=TBo.startsWith;Kn.template=XNn.template;Kn.templateSettings=XNn.templateSettings;Kn.toLower=RBo.toLower;Kn.toUpper=NBo.toUpper;Kn.trim=DBo.trim;Kn.trimEnd=kBo.trimEnd;Kn.trimStart=xBo.trimStart;Kn.truncate=GBo.truncate;Kn.unescape=FBo.unescape;Kn.upperCase=ZBo.upperCase;Kn.upperFirst=LBo.upperFirst;Kn.words=VBo.words;Kn.cond=PBo.cond;Kn.constant=WBo.constant;Kn.defaultTo=OBo.defaultTo;Kn.eq=MBo.isEqualsSameValueZero;Kn.gt=HBo.gt;Kn.gte=YBo.gte;Kn.invoke=QBo.invoke;Kn.iteratee=XBo.iteratee;Kn.lt=JBo.lt;Kn.lte=UBo.lte;Kn.method=KBo.method;Kn.methodOf=jBo.methodOf;Kn.now=zBo.now;Kn.over=qBo.over;Kn.overEvery=$Bo.overEvery;Kn.overSome=ewo.overSome;Kn.stubArray=two.stubArray;Kn.stubFalse=rwo.stubFalse;Kn.stubObject=nwo.stubObject;Kn.stubString=iwo.stubString;Kn.stubTrue=swo.stubTrue;Kn.times=owo.times;Kn.toArray=awo.toArray;Kn.toFinite=cwo.toFinite;Kn.toInteger=lwo.toInteger;Kn.toLength=uwo.toLength;Kn.toNumber=gwo.toNumber;Kn.toPath=Awo.toPath;Kn.toPlainObject=dwo.toPlainObject;Kn.toSafeInteger=pwo.toSafeInteger;Kn.toString=fwo.toString;Kn.uniqueId=Iwo.uniqueId});var UNn=H(Lcr=>{"use strict";Object.defineProperty(Lcr,Symbol.toStringTag,{value:"Module"});var hwo=JNn(),KSe=e=>e;Object.assign(KSe,hwo);KSe.partial.placeholder=KSe;KSe.partialRight.placeholder=KSe;Lcr.toolkit=KSe});var kW=H(Jn=>{"use strict";Object.defineProperties(Jn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var mwo=E7t(),Cwo=R7t(),_wo=k7t(),ywo=F7t(),bwo=pzt(),Ewo=Czt(),Swo=Blt(),vwo=wlt(),Bwo=xzt(),wwo=Zzt(),Two=Pzt(),Rwo=Mzt(),KNn=Nlt(),jNn=Xzt(),Nwo=Kzt(),Dwo=$zt(),kwo=Dlt(),xwo=rqt(),Gwo=sqt(),Fwo=aqt(),Zwo=lqt(),zNn=Aqt(),Lwo=mqt(),Vwo=yqt(),Pwo=D3e(),Wwo=Pfe(),Owo=Eqt(),Mwo=YSe(),Hwo=Bqt(),Ywo=Tqt(),Qwo=Nqt(),Xwo=xqt(),Jwo=Lqt(),Uwo=xlt(),Kwo=Glt(),jwo=Jqt(),zwo=Kqt(),qwo=qqt(),$wo=zq(),eTo=e$t(),tTo=N3e(),rTo=r$t(),nTo=Zlt(),iTo=a$t(),sTo=g$t(),oTo=d$t(),aTo=f$t(),cTo=h$t(),lTo=E$t(),uTo=Flt(),gTo=v$t(),ATo=T$t(),dTo=D$t(),pTo=x$t(),fTo=Z$t(),ITo=J$t(),hTo=$$t(),mTo=ter(),CTo=ner(),_To=ser(),yTo=aer(),bTo=Mlt(),ETo=L3e(),STo=mer(),vTo=Ylt(),BTo=Hlt(),wTo=ber(),TTo=ver(),RTo=Ter(),NTo=Der(),DTo=Ger(),kTo=Zer(),xTo=Ver(),GTo=Xlt(),FTo=Jlt(),ZTo=k3e(),LTo=Jer(),VTo=Ker(),PTo=Ult(),WTo=etr(),OTo=ntr(),MTo=str(),HTo=ltr(),YTo=gtr(),QTo=Itr(),XTo=Ctr(),JTo=Etr(),UTo=vtr(),KTo=wtr(),jTo=jlt(),zTo=zlt(),qTo=Dtr(),$To=Gtr(),eRo=Ltr(),tRo=Wtr(),rRo=Htr(),nRo=qlt(),iRo=Jtr(),sRo=Ktr(),oRo=ztr(),aRo=rrr(),cRo=srr(),lRo=crr(),uRo=F3e(),gRo=urr(),ARo=drr(),dRo=frr(),pRo=mrr(),fRo=yrr(),IRo=Err(),hRo=Brr(),mRo=Trr(),CRo=Nrr(),_Ro=krr(),yRo=Grr(),bRo=Zrr(),ERo=Prr(),SRo=Ofe(),vRo=Orr(),BRo=Hrr(),wRo=Xrr(),TRo=Urr(),RRo=zrr(),NRo=tnr(),DRo=snr(),kRo=anr(),xRo=unr(),GRo=Anr(),FRo=pnr(),ZRo=Inr(),LRo=Cnr(),VRo=bnr(),PRo=Snr(),WRo=Bnr(),ORo=nut(),MRo=rut(),HRo=xnr(),YRo=HK(),QRo=Fnr(),XRo=Onr(),qNn=Ynr(),$Nn=Xnr(),JRo=Unr(),URo=Llt(),KRo=out(),jRo=WSe(),zRo=v3e(),qRo=qnr(),$Ro=eir(),eNo=Y3e(),tNo=iir(),rNo=air(),nNo=lir(),iNo=gir(),sNo=dir(),oNo=fir(),aNo=hir(),cNo=Cir(),lNo=yir(),uNo=Eir(),gNo=eM(),ANo=B3e(),dNo=vir(),pNo=Tir(),fNo=Nir(),INo=YK(),hNo=iX(),mNo=xir(),CNo=Zir(),_No=Mir(),yNo=lut(),bNo=Qir(),ENo=Jir(),SNo=Kir(),vNo=zir(),BNo=nX(),wNo=$ir(),TNo=tsr(),RNo=P3e(),NNo=nsr(),DNo=ssr(),kNo=gsr(),xNo=dsr(),GNo=Isr(),FNo=G3e(),ZNo=msr(),LNo=XSe(),VNo=Plt(),PNo=_sr(),WNo=bsr(),ONo=Ssr(),MNo=Elt(),HNo=Bsr(),YNo=Tsr(),QNo=Nsr(),XNo=xsr(),JNo=Aut(),UNo=Vfe(),KNo=$q(),jNo=Zsr(),zNo=Sf(),qNo=b2(),$No=Vsr(),eDo=gut(),tDo=Osr(),rDo=Hsr(),nDo=Qsr(),iDo=Ksr(),sDo=zsr(),oDo=$sr(),aDo=tor(),cDo=Vlt(),lDo=_3e(),uDo=Olt(),gDo=QSe(),ADo=V3e(),dDo=tM(),pDo=ioe(),fDo=Mfe(),IDo=ior(),hDo=oor(),mDo=lor(),CDo=HSe(),_Do=soe(),yDo=e$(),bDo=Aor(),EDo=Ior(),SDo=OK(),vDo=MK(),BDo=_or(),wDo=bor(),TDo=Tor(),RDo=t$(),NDo=Nor(),DDo=put(),kDo=For(),xDo=Vor(),GDo=Oor(),FDo=Yor(),ZDo=Jor(),LDo=Kor(),VDo=zor(),PDo=tar(),WDo=nar(),ODo=oar(),MDo=car(),HDo=uar(),YDo=Aar(),eDn=dar(),QDo=far(),XDo=har(),JDo=Bar(),UDo=Tar(),KDo=Nar(),jDo=kar(),zDo=Far(),qDo=Par(),$Do=Mar(),eko=Yar(),tko=Xar(),rko=Uar(),nko=jar(),iko=Sk(),sko=qar(),oko=ecr(),ako=U3e(),cko=im(),lko=ncr(),uko=scr(),gko=acr(),Ako=lcr(),dko=gcr(),pko=dcr(),fko=fcr(),Iko=hcr(),hko=Ccr(),mko=ycr(),Cko=Ecr(),_ko=vcr(),yko=wcr(),bko=H3e(),Eko=Z3e(),Sko=MSe(),vko=$w(),Bko=Ncr(),wko=Q9(),Tko=$5(),Rko=kcr(),Nko=Gcr(),Dko=qy(),kko=Zcr(),xko=UNn();Jn.castArray=mwo.castArray;Jn.chunk=Cwo.chunk;Jn.compact=_wo.compact;Jn.concat=ywo.concat;Jn.countBy=bwo.countBy;Jn.difference=Ewo.difference;Jn.differenceBy=Swo.differenceBy;Jn.differenceWith=vwo.differenceWith;Jn.drop=Bwo.drop;Jn.dropRight=wwo.dropRight;Jn.dropRightWhile=Two.dropRightWhile;Jn.dropWhile=Rwo.dropWhile;Jn.each=KNn.forEach;Jn.forEach=KNn.forEach;Jn.eachRight=jNn.forEachRight;Jn.forEachRight=jNn.forEachRight;Jn.every=Nwo.every;Jn.fill=Dwo.fill;Jn.filter=kwo.filter;Jn.find=xwo.find;Jn.findIndex=Gwo.findIndex;Jn.findLast=Fwo.findLast;Jn.findLastIndex=Zwo.findLastIndex;Jn.first=zNn.head;Jn.head=zNn.head;Jn.flatMap=Lwo.flatMap;Jn.flatMapDeep=Vwo.flatMapDeep;Jn.flatMapDepth=Pwo.flatMapDepth;Jn.flatten=Wwo.flatten;Jn.flattenDeep=Owo.flattenDeep;Jn.flattenDepth=Mwo.flattenDepth;Jn.groupBy=Hwo.groupBy;Jn.includes=Ywo.includes;Jn.indexOf=Qwo.indexOf;Jn.initial=Xwo.initial;Jn.intersection=Jwo.intersection;Jn.intersectionBy=Uwo.intersectionBy;Jn.intersectionWith=Kwo.intersectionWith;Jn.invokeMap=jwo.invokeMap;Jn.join=zwo.join;Jn.keyBy=qwo.keyBy;Jn.last=$wo.last;Jn.lastIndexOf=eTo.lastIndexOf;Jn.map=tTo.map;Jn.nth=rTo.nth;Jn.orderBy=nTo.orderBy;Jn.partition=iTo.partition;Jn.pull=sTo.pull;Jn.pullAll=oTo.pullAll;Jn.pullAllBy=aTo.pullAllBy;Jn.pullAllWith=cTo.pullAllWith;Jn.pullAt=lTo.pullAt;Jn.reduce=uTo.reduce;Jn.reduceRight=gTo.reduceRight;Jn.reject=ATo.reject;Jn.remove=dTo.remove;Jn.reverse=pTo.reverse;Jn.sample=fTo.sample;Jn.sampleSize=ITo.sampleSize;Jn.shuffle=hTo.shuffle;Jn.size=mTo.size;Jn.slice=CTo.slice;Jn.some=_To.some;Jn.sortBy=yTo.sortBy;Jn.sortedIndex=bTo.sortedIndex;Jn.sortedIndexBy=ETo.sortedIndexBy;Jn.sortedIndexOf=STo.sortedIndexOf;Jn.sortedLastIndex=vTo.sortedLastIndex;Jn.sortedLastIndexBy=BTo.sortedLastIndexBy;Jn.sortedLastIndexOf=wTo.sortedLastIndexOf;Jn.tail=TTo.tail;Jn.take=RTo.take;Jn.takeRight=NTo.takeRight;Jn.takeRightWhile=DTo.takeRightWhile;Jn.takeWhile=kTo.takeWhile;Jn.union=xTo.union;Jn.unionBy=GTo.unionBy;Jn.unionWith=FTo.unionWith;Jn.uniq=ZTo.uniq;Jn.uniqBy=LTo.uniqBy;Jn.uniqWith=VTo.uniqWith;Jn.unzip=PTo.unzip;Jn.unzipWith=WTo.unzipWith;Jn.without=OTo.without;Jn.xor=MTo.xor;Jn.xorBy=HTo.xorBy;Jn.xorWith=YTo.xorWith;Jn.zip=QTo.zip;Jn.zipObject=XTo.zipObject;Jn.zipObjectDeep=JTo.zipObjectDeep;Jn.zipWith=UTo.zipWith;Jn.after=KTo.after;Jn.ary=jTo.ary;Jn.attempt=zTo.attempt;Jn.before=qTo.before;Jn.bind=$To.bind;Jn.bindKey=eRo.bindKey;Jn.curry=tRo.curry;Jn.curryRight=rRo.curryRight;Jn.debounce=nRo.debounce;Jn.defer=iRo.defer;Jn.delay=sRo.delay;Jn.flip=oRo.flip;Jn.flow=aRo.flow;Jn.flowRight=cRo.flowRight;Jn.memoize=lRo.memoize;Jn.negate=uRo.negate;Jn.nthArg=gRo.nthArg;Jn.once=ARo.once;Jn.overArgs=dRo.overArgs;Jn.partial=pRo.partial;Jn.partialRight=fRo.partialRight;Jn.rearg=IRo.rearg;Jn.rest=hRo.rest;Jn.spread=mRo.spread;Jn.throttle=CRo.throttle;Jn.unary=_Ro.unary;Jn.wrap=yRo.wrap;Jn.add=bRo.add;Jn.ceil=ERo.ceil;Jn.clamp=SRo.clamp;Jn.divide=vRo.divide;Jn.floor=BRo.floor;Jn.inRange=wRo.inRange;Jn.max=TRo.max;Jn.maxBy=RRo.maxBy;Jn.mean=NRo.mean;Jn.meanBy=DRo.meanBy;Jn.min=kRo.min;Jn.minBy=xRo.minBy;Jn.multiply=GRo.multiply;Jn.parseInt=FRo.parseInt;Jn.random=ZRo.random;Jn.range=LRo.range;Jn.rangeRight=VRo.rangeRight;Jn.round=PRo.round;Jn.subtract=WRo.subtract;Jn.sum=ORo.sum;Jn.sumBy=MRo.sumBy;Jn.isEqual=HRo.isEqual;Jn.identity=YRo.identity;Jn.noop=QRo.noop;Jn.assign=XRo.assign;Jn.assignIn=qNn.assignIn;Jn.extend=qNn.assignIn;Jn.assignInWith=$Nn.assignInWith;Jn.extendWith=$Nn.assignInWith;Jn.assignWith=JRo.assignWith;Jn.at=URo.at;Jn.clone=KRo.clone;Jn.cloneDeep=jRo.cloneDeep;Jn.cloneDeepWith=zRo.cloneDeepWith;Jn.cloneWith=qRo.cloneWith;Jn.create=$Ro.create;Jn.defaults=eNo.defaults;Jn.defaultsDeep=tNo.defaultsDeep;Jn.findKey=rNo.findKey;Jn.findLastKey=nNo.findLastKey;Jn.forIn=iNo.forIn;Jn.forInRight=sNo.forInRight;Jn.forOwn=oNo.forOwn;Jn.forOwnRight=aNo.forOwnRight;Jn.fromPairs=cNo.fromPairs;Jn.functions=lNo.functions;Jn.functionsIn=uNo.functionsIn;Jn.get=gNo.get;Jn.has=ANo.has;Jn.hasIn=dNo.hasIn;Jn.invert=pNo.invert;Jn.invertBy=fNo.invertBy;Jn.keys=INo.keys;Jn.keysIn=hNo.keysIn;Jn.mapKeys=mNo.mapKeys;Jn.mapValues=CNo.mapValues;Jn.merge=_No.merge;Jn.mergeWith=yNo.mergeWith;Jn.omit=bNo.omit;Jn.omitBy=ENo.omitBy;Jn.pick=SNo.pick;Jn.pickBy=vNo.pickBy;Jn.property=BNo.property;Jn.propertyOf=wNo.propertyOf;Jn.result=TNo.result;Jn.set=RNo.set;Jn.setWith=NNo.setWith;Jn.toDefaulted=DNo.toDefaulted;Jn.toPairs=kNo.toPairs;Jn.toPairsIn=xNo.toPairsIn;Jn.transform=GNo.transform;Jn.unset=FNo.unset;Jn.update=ZNo.update;Jn.updateWith=LNo.updateWith;Jn.values=VNo.values;Jn.valuesIn=PNo.valuesIn;Jn.isFunction=WNo.isFunction;Jn.isLength=ONo.isLength;Jn.isMatchWith=MNo.isMatchWith;Jn.isNative=HNo.isNative;Jn.isNull=YNo.isNull;Jn.isUndefined=QNo.isUndefined;Jn.conforms=XNo.conforms;Jn.conformsTo=JNo.conformsTo;Jn.isArguments=UNo.isArguments;Jn.isArray=KNo.isArray;Jn.isArrayBuffer=jNo.isArrayBuffer;Jn.isArrayLike=zNo.isArrayLike;Jn.isArrayLikeObject=qNo.isArrayLikeObject;Jn.isBoolean=$No.isBoolean;Jn.isBuffer=eDo.isBuffer;Jn.isDate=tDo.isDate;Jn.isElement=rDo.isElement;Jn.isEmpty=nDo.isEmpty;Jn.isEqualWith=iDo.isEqualWith;Jn.isError=sDo.isError;Jn.isFinite=oDo.isFinite;Jn.isInteger=aDo.isInteger;Jn.isMap=cDo.isMap;Jn.isMatch=lDo.isMatch;Jn.isNaN=uDo.isNaN;Jn.isNil=gDo.isNil;Jn.isNumber=ADo.isNumber;Jn.isObject=dDo.isObject;Jn.isObjectLike=pDo.isObjectLike;Jn.isPlainObject=fDo.isPlainObject;Jn.isRegExp=IDo.isRegExp;Jn.isSafeInteger=hDo.isSafeInteger;Jn.isSet=mDo.isSet;Jn.isString=CDo.isString;Jn.isSymbol=_Do.isSymbol;Jn.isTypedArray=yDo.isTypedArray;Jn.isWeakMap=bDo.isWeakMap;Jn.isWeakSet=EDo.isWeakSet;Jn.matches=SDo.matches;Jn.matchesProperty=vDo.matchesProperty;Jn.capitalize=BDo.capitalize;Jn.bindAll=wDo.bindAll;Jn.camelCase=TDo.camelCase;Jn.deburr=RDo.deburr;Jn.endsWith=NDo.endsWith;Jn.escape=DDo.escape;Jn.escapeRegExp=kDo.escapeRegExp;Jn.kebabCase=xDo.kebabCase;Jn.lowerCase=GDo.lowerCase;Jn.lowerFirst=FDo.lowerFirst;Jn.pad=ZDo.pad;Jn.padEnd=LDo.padEnd;Jn.padStart=VDo.padStart;Jn.repeat=PDo.repeat;Jn.replace=WDo.replace;Jn.snakeCase=ODo.snakeCase;Jn.split=MDo.split;Jn.startCase=HDo.startCase;Jn.startsWith=YDo.startsWith;Jn.template=eDn.template;Jn.templateSettings=eDn.templateSettings;Jn.toLower=QDo.toLower;Jn.toUpper=XDo.toUpper;Jn.trim=JDo.trim;Jn.trimEnd=UDo.trimEnd;Jn.trimStart=KDo.trimStart;Jn.truncate=jDo.truncate;Jn.unescape=zDo.unescape;Jn.upperCase=qDo.upperCase;Jn.upperFirst=$Do.upperFirst;Jn.words=eko.words;Jn.cond=tko.cond;Jn.constant=rko.constant;Jn.defaultTo=nko.defaultTo;Jn.eq=iko.isEqualsSameValueZero;Jn.gt=sko.gt;Jn.gte=oko.gte;Jn.invoke=ako.invoke;Jn.iteratee=cko.iteratee;Jn.lt=lko.lt;Jn.lte=uko.lte;Jn.method=gko.method;Jn.methodOf=Ako.methodOf;Jn.now=dko.now;Jn.over=pko.over;Jn.overEvery=fko.overEvery;Jn.overSome=Iko.overSome;Jn.stubArray=hko.stubArray;Jn.stubFalse=mko.stubFalse;Jn.stubObject=Cko.stubObject;Jn.stubString=_ko.stubString;Jn.stubTrue=yko.stubTrue;Jn.times=bko.times;Jn.toArray=Eko.toArray;Jn.toFinite=Sko.toFinite;Jn.toInteger=vko.toInteger;Jn.toLength=Bko.toLength;Jn.toNumber=wko.toNumber;Jn.toPath=Tko.toPath;Jn.toPlainObject=Rko.toPlainObject;Jn.toSafeInteger=Nko.toSafeInteger;Jn.toString=Dko.toString;Jn.uniqueId=kko.uniqueId;Jn.default=xko.toolkit});var xW=H((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.CachingStrategy=exports.DefaultStream=exports.AsyncActions=exports.BufferStream=void 0;exports.isTaggedYarnVersion=isTaggedYarnVersion;exports.plural=plural;exports.escapeRegExp=escapeRegExp;exports.overrideType=overrideType;exports.assertNever=assertNever;exports.validateEnum=validateEnum;exports.mapAndFilter=mapAndFilter;exports.mapAndFind=mapAndFind;exports.isIndexableObject=isIndexableObject;exports.allSettledSafe=allSettledSafe;exports.convertMapsToIndexableObjects=convertMapsToIndexableObjects;exports.getFactoryWithDefault=getFactoryWithDefault;exports.getArrayWithDefault=getArrayWithDefault;exports.getSetWithDefault=getSetWithDefault;exports.getMapWithDefault=getMapWithDefault;exports.releaseAfterUseAsync=releaseAfterUseAsync;exports.prettifyAsyncErrors=prettifyAsyncErrors;exports.prettifySyncErrors=prettifySyncErrors;exports.bufferStream=bufferStream;exports.makeDeferred=makeDeferred;exports.dynamicRequire=dynamicRequire;exports.sortMap=sortMap;exports.buildIgnorePattern=buildIgnorePattern;exports.replaceEnvVariables=replaceEnvVariables;exports.parseBoolean=parseBoolean;exports.parseOptionalBoolean=parseOptionalBoolean;exports.tryParseOptionalBoolean=tryParseOptionalBoolean;exports.isPathLike=isPathLike;exports.mergeIntoTarget=mergeIntoTarget;exports.toMerged=toMerged;exports.groupBy=groupBy;exports.parseInt=parseInt;exports.parseDuration=parseDuration;var tslib_1=(Pa(),vi(Va)),fslib_1=no(),clipanion_1=($c(),vi(rg)),compat_1=kW(),micromatch_1=tslib_1.__importDefault(Ek()),p_limit_1=tslib_1.__importDefault(Dfe()),semver_1=tslib_1.__importDefault(UC()),stream_1=wt("stream");function isTaggedYarnVersion(e){return!!(semver_1.default.valid(e)&&e.match(/^[^-]+(-rc\.[0-9]+)?$/))}function plural(e,{one:t,more:r,zero:n=r}){return e===0?n:e===1?t:r}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function overrideType(e){}function assertNever(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function validateEnum(e,t){let r=Object.values(e);if(!r.includes(t))throw new clipanion_1.UsageError(`Invalid value for enumeration: ${JSON.stringify(t)} (expected one of ${r.map(n=>JSON.stringify(n)).join(", ")})`);return t}function mapAndFilter(e,t){let r=[];for(let n of e){let a=t(n);a!==mapAndFilterSkip&&r.push(a)}return r}var mapAndFilterSkip=Symbol();mapAndFilter.skip=mapAndFilterSkip;function mapAndFind(e,t){for(let r of e){let n=t(r);if(n!==mapAndFindSkip)return n}}var mapAndFindSkip=Symbol();mapAndFind.skip=mapAndFindSkip;function isIndexableObject(e){return typeof e=="object"&&e!==null}async function allSettledSafe(e){let t=await Promise.allSettled(e),r=[];for(let n of t){if(n.status==="rejected")throw n.reason;r.push(n.value)}return r}function convertMapsToIndexableObjects(e){if(e instanceof Map&&(e=Object.fromEntries(e)),isIndexableObject(e))for(let t of Object.keys(e)){let r=e[t];isIndexableObject(r)&&(e[t]=convertMapsToIndexableObjects(r))}return e}function getFactoryWithDefault(e,t,r){let n=e.get(t);return typeof n>"u"&&e.set(t,n=r()),n}function getArrayWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=[]),r}function getSetWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Set),r}function getMapWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Map),r}async function releaseAfterUseAsync(e,t){if(t==null)return await e();try{return await e()}finally{await t()}}async function prettifyAsyncErrors(e,t){try{return await e()}catch(r){throw r.message=t(r.message),r}}function prettifySyncErrors(e,t){try{return e()}catch(r){throw r.message=t(r.message),r}}async function bufferStream(e){return await new Promise((t,r)=>{let n=[];e.on("error",a=>{r(a)}),e.on("data",a=>{n.push(a)}),e.on("end",()=>{t(Buffer.concat(n))})})}var BufferStream=class extends stream_1.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};exports.BufferStream=BufferStream;function makeDeferred(){let e,t;return{promise:new Promise((n,a)=>{e=n,t=a}),resolve:e,reject:t}}var AsyncActions=class{constructor(t){this.deferred=new Map,this.promises=new Map,this.limit=(0,p_limit_1.default)(t)}set(t,r){let n=this.deferred.get(t);typeof n>"u"&&this.deferred.set(t,n=makeDeferred());let a=this.limit(()=>r());return this.promises.set(t,a),a.then(()=>{this.promises.get(t)===a&&n.resolve()},o=>{this.promises.get(t)===a&&n.reject(o)}),n.promise}reduce(t,r){let n=this.promises.get(t)??Promise.resolve();this.set(t,()=>r(n))}async wait(){await Promise.all(this.promises.values())}};exports.AsyncActions=AsyncActions;var DefaultStream=class extends stream_1.Transform{constructor(t=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=t}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}};exports.DefaultStream=DefaultStream;var realRequire=eval("require");function dynamicRequireNode(e){return realRequire(fslib_1.npath.fromPortablePath(e))}function dynamicRequireNoCache(path){let physicalPath=fslib_1.npath.fromPortablePath(path),currentCacheEntry=realRequire.cache[physicalPath];delete realRequire.cache[physicalPath];let result;try{result=dynamicRequireNode(physicalPath);let freshCacheEntry=realRequire.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children?dynamicModule.children.indexOf(freshCacheEntry):-1;freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{realRequire.cache[physicalPath]=currentCacheEntry}return result}var dynamicRequireFsTimeCache=new Map;function dynamicRequireFsTime(e){let t=dynamicRequireFsTimeCache.get(e),r=fslib_1.xfs.statSync(e);if(t?.mtime===r.mtimeMs)return t.instance;let n=dynamicRequireNoCache(e);return dynamicRequireFsTimeCache.set(e,{mtime:r.mtimeMs,instance:n}),n}var CachingStrategy;(function(e){e[e.NoCache=0]="NoCache",e[e.FsTime=1]="FsTime",e[e.Node=2]="Node"})(CachingStrategy||(exports.CachingStrategy=CachingStrategy={}));function dynamicRequire(e,{cachingStrategy:t=CachingStrategy.Node}={}){switch(t){case CachingStrategy.NoCache:return dynamicRequireNoCache(e);case CachingStrategy.FsTime:return dynamicRequireFsTime(e);case CachingStrategy.Node:return dynamicRequireNode(e);default:throw new Error("Unsupported caching strategy")}}function sortMap(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function buildIgnorePattern(e){return e.length===0?null:e.map(t=>`(${micromatch_1.default.makeRe(t,{windows:!1,dot:!0}).source})`).join("|")}function replaceEnvVariables(e,{env:t}){let r="",n=0,a=0,o=e.matchAll(/\\(?[\\$}])|\$\{(?[a-zA-Z]\w*)(?:-|-|(?=\}))|(?\$\{)|\}/g),l=()=>{let A=a;for(let{0:f,index:I,groups:{variable:C}={}}of o)if(C)a++;else if(f==="}"&&--a0)throw new clipanion_1.UsageError(`Incomplete variable substitution in input: ${e}`);return r+e.slice(n)}function parseBoolean(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}function parseOptionalBoolean(e){return typeof e>"u"?e:parseBoolean(e)}function tryParseOptionalBoolean(e){try{return parseOptionalBoolean(e)}catch{return null}}function isPathLike(e){return!!(fslib_1.npath.isAbsolute(e)||e.match(/^(\.{1,2}|~)\//))}function mergeIntoTarget(e,...t){let r=l=>({value:l}),n=r(e),a=t.map(l=>r(l)),{value:o}=(0,compat_1.mergeWith)(n,...a,(l,A)=>{if(Array.isArray(l)&&Array.isArray(A)){for(let f of A)l.find(I=>(0,compat_1.isEqual)(I,f))||l.push(f);return l}});return o}function toMerged(...e){return mergeIntoTarget({},...e)}function groupBy(e,t){let r=Object.create(null);for(let n of e){let a=n[t];r[a]??=[],r[a].push(n)}return r}function parseInt(e){return typeof e=="string"?Number.parseInt(e,10):e}var DURATION_UNITS={ms:1,s:1e3,m:60*1e3,h:60*60*1e3,d:24*60*60*1e3,w:7*24*60*60*1e3},DURATION_REGEXP=new RegExp(`^(?\\d*\\.?\\d+)(?${Object.keys(DURATION_UNITS).join("|")})?$`);function parseDuration(e,t){let r=DURATION_REGEXP.exec(e)?.groups;if(!r)throw new Error(`Couldn't parse "${e}" as a duration`);if(r.unit===void 0)return parseFloat(r.num);let n=DURATION_UNITS[r.unit];if(!n)throw new Error(`Invalid duration unit "${r.unit}"`);return parseFloat(r.num)*n/DURATION_UNITS[t]}});var Qfe=H(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});loe.PackageExtensionStatus=loe.PackageExtensionType=loe.LinkType=void 0;var tDn;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(tDn||(loe.LinkType=tDn={}));var rDn;(function(e){e.Dependency="Dependency",e.PeerDependency="PeerDependency",e.PeerDependencyMeta="PeerDependencyMeta"})(rDn||(loe.PackageExtensionType=rDn={}));var nDn;(function(e){e.Inactive="inactive",e.Redundant="redundant",e.Active="active"})(nDn||(loe.PackageExtensionStatus=nDn={}))});var rM=H(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});Wu.LogLevel=Wu.supportsHyperlinks=Wu.supportsColor=Wu.Style=Wu.Type=Wu.stripAnsi=void 0;Wu.tuple=Vko;Wu.applyStyle=aDn;Wu.applyColor=eb;Wu.applyHyperlink=cDn;Wu.pretty=Xfe;Wu.prettyList=Wko;Wu.json=lDn;Wu.jsonOrPretty=Oko;Wu.mark=Mko;Wu.prettyField=Hko;Wu.prettyTruncatedLocatorList=Yko;Wu.addLogFilterSupport=Qko;var zSe=(Pa(),vi(Va)),iDn=no(),yut=zSe.__importDefault(VK()),Cut=zSe.__importDefault(Nfe()),Gko=($c(),vi(rg)),Fko=zSe.__importDefault(Ek()),oDn=zSe.__importDefault(q5());Wu.stripAnsi=oDn.default;var mut=M9(),Zko=zSe.__importStar(xW()),DE=zSe.__importStar(uG()),jSe=Qfe();Wu.Type={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"};var but;(function(e){e[e.BOLD=2]="BOLD"})(but||(Wu.Style=but={}));var Pcr=Cut.default.GITHUB_ACTIONS?{level:2}:yut.default.supportsColor?{level:yut.default.supportsColor.level}:{level:0};Wu.supportsColor=Pcr.level!==0;Wu.supportsHyperlinks=Wu.supportsColor&&!Cut.default.GITHUB_ACTIONS&&!Cut.default.CIRCLE&&!Cut.default.GITLAB;var Vcr=new yut.default.Instance(Pcr),Lko=new Map([[Wu.Type.NO_HINT,null],[Wu.Type.NULL,["#a853b5",129]],[Wu.Type.SCOPE,["#d75f00",166]],[Wu.Type.NAME,["#d7875f",173]],[Wu.Type.RANGE,["#00afaf",37]],[Wu.Type.REFERENCE,["#87afff",111]],[Wu.Type.NUMBER,["#ffd700",220]],[Wu.Type.STRING,["#b4bd68",32]],[Wu.Type.BOOLEAN,["#faa023",209]],[Wu.Type.PATH,["#d75fd7",170]],[Wu.Type.URL,["#d75fd7",170]],[Wu.Type.ADDED,["#5faf00",70]],[Wu.Type.REMOVED,["#ff3131",160]],[Wu.Type.CODE,["#87afff",111]],[Wu.Type.SIZE,["#ffd700",220]]]),lG=e=>e;function sDn(e){let t=["KiB","MiB","GiB","TiB"],r=t.length;for(;r>1&&e<1024**r;)r-=1;let n=1024**r;return`${Math.floor(e*100/n)/100} ${t[r-1]}`}function _ut(e,t){if(Array.isArray(t))return t.length===0?eb(e,"[]",Wu.Type.CODE):eb(e,"[ ",Wu.Type.CODE)+t.map(r=>_ut(e,r)).join(", ")+eb(e," ]",Wu.Type.CODE);if(typeof t=="string")return eb(e,JSON.stringify(t),Wu.Type.STRING);if(typeof t=="number")return eb(e,JSON.stringify(t),Wu.Type.NUMBER);if(typeof t=="boolean")return eb(e,JSON.stringify(t),Wu.Type.BOOLEAN);if(t===null)return eb(e,"null",Wu.Type.NULL);if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){let r=Object.entries(t);return r.length===0?eb(e,"{}",Wu.Type.CODE):eb(e,"{ ",Wu.Type.CODE)+r.map(([n,a])=>`${_ut(e,n)}: ${_ut(e,a)}`).join(", ")+eb(e," }",Wu.Type.CODE)}if(typeof t>"u")return eb(e,"undefined",Wu.Type.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}var Eut={[Wu.Type.ID]:lG({pretty:(e,t)=>typeof t=="number"?eb(e,`${t}`,Wu.Type.NUMBER):eb(e,t,Wu.Type.CODE),json:e=>e}),[Wu.Type.INSPECT]:lG({pretty:(e,t)=>_ut(e,t),json:e=>e}),[Wu.Type.NUMBER]:lG({pretty:(e,t)=>eb(e,`${t}`,Wu.Type.NUMBER),json:e=>e}),[Wu.Type.IDENT]:lG({pretty:(e,t)=>DE.prettyIdent(e,t),json:e=>DE.stringifyIdent(e)}),[Wu.Type.LOCATOR]:lG({pretty:(e,t)=>DE.prettyLocator(e,t),json:e=>DE.stringifyLocator(e)}),[Wu.Type.DESCRIPTOR]:lG({pretty:(e,t)=>DE.prettyDescriptor(e,t),json:e=>DE.stringifyDescriptor(e)}),[Wu.Type.RESOLUTION]:lG({pretty:(e,{descriptor:t,locator:r})=>DE.prettyResolution(e,t,r),json:({descriptor:e,locator:t})=>({descriptor:DE.stringifyDescriptor(e),locator:t!==null?DE.stringifyLocator(t):null})}),[Wu.Type.DEPENDENT]:lG({pretty:(e,{locator:t,descriptor:r})=>DE.prettyDependent(e,t,r),json:({locator:e,descriptor:t})=>({locator:DE.stringifyLocator(e),descriptor:DE.stringifyDescriptor(t)})}),[Wu.Type.PACKAGE_EXTENSION]:lG({pretty:(e,t)=>{switch(t.type){case jSe.PackageExtensionType.Dependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"dependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependenciesMeta",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,DE.parseIdent(t.selector))} \u27A4 ${eb(e,t.key,Wu.Type.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}},json:e=>{switch(e.type){case jSe.PackageExtensionType.Dependency:return`${DE.stringifyIdent(e.parentDescriptor)} > ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${e.selector} / ${e.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}}}),[Wu.Type.SETTING]:lG({pretty:(e,t)=>(e.get(t),cDn(e,eb(e,t,Wu.Type.CODE),`https://yarnpkg.com/configuration/yarnrc#${t}`)),json:e=>e}),[Wu.Type.DURATION]:lG({pretty:(e,t)=>{if(t>1e3*60){let r=Math.floor(t/1e3/60),n=Math.ceil((t-r*60*1e3)/1e3);return n===0?`${r}m`:`${r}m ${n}s`}else{let r=Math.floor(t/1e3),n=t-r*1e3;return n===0?`${r}s`:`${r}s ${n}ms`}},json:e=>e}),[Wu.Type.SIZE]:lG({pretty:(e,t)=>eb(e,sDn(t),Wu.Type.NUMBER),json:e=>e}),[Wu.Type.SIZE_DIFF]:lG({pretty:(e,t)=>{let r=t>=0?"+":"-",n=r==="+"?Wu.Type.REMOVED:Wu.Type.ADDED;return eb(e,`${r} ${sDn(Math.max(Math.abs(t),1))}`,n)},json:e=>e}),[Wu.Type.PATH]:lG({pretty:(e,t)=>eb(e,iDn.npath.fromPortablePath(t),Wu.Type.PATH),json:e=>iDn.npath.fromPortablePath(e)}),[Wu.Type.MARKDOWN]:lG({pretty:(e,{text:t,format:r,paragraphs:n})=>(0,Gko.formatMarkdownish)(t,{format:r,paragraphs:n}),json:({text:e})=>e}),[Wu.Type.MARKDOWN_INLINE]:lG({pretty:(e,t)=>(t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(r,n,a)=>Xfe(e,n+a+n,Wu.Type.CODE)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,n,a)=>aDn(e,a,but.BOLD)),t),json:e=>e})};function Vko(e,t){return[t,e]}function aDn(e,t,r){return e.get("enableColors")&&r&but.BOLD&&(t=yut.default.bold(t)),t}function eb(e,t,r){if(!e.get("enableColors"))return t;let n=Lko.get(r);if(n===null)return t;let a=typeof n>"u"?r:Pcr.level>=3?n[0]:n[1],o=typeof a=="number"?Vcr.ansi256(a):a.startsWith("#")?Vcr.hex(a):Vcr[a];if(typeof o!="function")throw new Error(`Invalid format type ${a}`);return o(t)}var Pko=!!process.env.KONSOLE_VERSION;function cDn(e,t,r){return e.get("enableHyperlinks")?Pko?`\x1B]8;;${r}\x1B\\${t}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${t}\x1B]8;;\x07`:t}function Xfe(e,t,r){if(t===null)return eb(e,"null",Wu.Type.NULL);if(Object.hasOwn(Eut,r))return Eut[r].pretty(e,t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return eb(e,t,r)}function Wko(e,t,r,{separator:n=", "}={}){return[...t].map(a=>Xfe(e,a,r)).join(n)}function lDn(e,t){if(e===null)return null;if(Object.hasOwn(Eut,t))return Zko.overrideType(t),Eut[t].json(e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return e}function Oko(e,t,[r,n]){return e?lDn(r,n):Xfe(t,r,n)}function Mko(e){return{Check:eb(e,"\u2713","green"),Cross:eb(e,"\u2718","red"),Question:eb(e,"?","cyan")}}function Hko(e,{label:t,value:[r,n]}){return`${Xfe(e,t,Wu.Type.CODE)}: ${Xfe(e,r,n)}`}function Yko(e,t,r){let n=[],a=[...t],o=r;for(;a.length>0;){let I=a[0],C=`${DE.prettyLocator(e,I)}, `,b=DE.prettyLocatorNoColors(I).length+2;if(n.length>0&&oI).join("").slice(0,-2);let l="X".repeat(a.length.toString().length),A=`and ${l} more.`,f=a.length;for(;n.length>1&&oI).join(""),A.replace(l,Xfe(e,f,Wu.Type.NUMBER))].join("")}var uoe;(function(e){e.Error="error",e.Warning="warning",e.Info="info",e.Discard="discard"})(uoe||(Wu.LogLevel=uoe={}));function Qko(e,{configuration:t}){let r=t.get("logFilters"),n=new Map,a=new Map,o=[];for(let b of r){let E=b.get("level");if(typeof E>"u")continue;let N=b.get("code");typeof N<"u"&&n.set(N,E);let B=b.get("text");typeof B<"u"&&a.set(B,E);let F=b.get("pattern");typeof F<"u"&&o.push([Fko.default.matcher(F,{contains:!0}),E])}o.reverse();let l=(b,E,N)=>{if(b===null||b===mut.MessageName.UNNAMED)return N;let B=a.size>0||o.length>0?(0,oDn.default)(E):E;if(a.size>0){let F=a.get(B);if(typeof F<"u")return F??N}if(o.length>0){for(let[F,Q]of o)if(F(B))return Q??N}if(n.size>0){let F=n.get((0,mut.stringifyMessageName)(b));if(typeof F<"u")return F??N}return N},A=e.reportInfo,f=e.reportWarning,I=e.reportError,C=function(b,E,N,B){switch(l(E,N,B)){case uoe.Info:A.call(b,E,N);break;case uoe.Warning:f.call(b,E??mut.MessageName.UNNAMED,N);break;case uoe.Error:I.call(b,E??mut.MessageName.UNNAMED,N);break}};e.reportInfo=function(...b){return C(this,...b,uoe.Info)},e.reportWarning=function(...b){return C(this,...b,uoe.Warning)},e.reportError=function(...b){return C(this,...b,uoe.Error)}}});var uDn=H(qSe=>{"use strict";Object.defineProperty(qSe,"__esModule",{value:!0});qSe.splitWhen=qSe.flatten=void 0;function Xko(e){return e.reduce((t,r)=>[].concat(t,r),[])}qSe.flatten=Xko;function Jko(e,t){let r=[[]],n=0;for(let a of e)t(a)?(n++,r[n]=[]):r[n].push(a);return r}qSe.splitWhen=Jko});var gDn=H(Sut=>{"use strict";Object.defineProperty(Sut,"__esModule",{value:!0});Sut.isEnoentCodeError=void 0;function Uko(e){return e.code==="ENOENT"}Sut.isEnoentCodeError=Uko});var ADn=H(vut=>{"use strict";Object.defineProperty(vut,"__esModule",{value:!0});vut.createDirentFromStats=void 0;var Wcr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Kko(e,t){return new Wcr(e,t)}vut.createDirentFromStats=Kko});var IDn=H(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.convertPosixPathToPattern=eT.convertWindowsPathToPattern=eT.convertPathToPattern=eT.escapePosixPath=eT.escapeWindowsPath=eT.escape=eT.removeLeadingDotSegment=eT.makeAbsolute=eT.unixify=void 0;var jko=wt("os"),zko=wt("path"),dDn=jko.platform()==="win32",qko=2,$ko=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,exo=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,txo=/^\\\\([.?])/,rxo=/\\(?![!()+@[\]{}])/g;function nxo(e){return e.replace(/\\/g,"/")}eT.unixify=nxo;function ixo(e,t){return zko.resolve(e,t)}eT.makeAbsolute=ixo;function sxo(e){if(e.charAt(0)==="."){let t=e.charAt(1);if(t==="/"||t==="\\")return e.slice(qko)}return e}eT.removeLeadingDotSegment=sxo;eT.escape=dDn?Ocr:Mcr;function Ocr(e){return e.replace(exo,"\\$2")}eT.escapeWindowsPath=Ocr;function Mcr(e){return e.replace($ko,"\\$2")}eT.escapePosixPath=Mcr;eT.convertPathToPattern=dDn?pDn:fDn;function pDn(e){return Ocr(e).replace(txo,"//$1").replace(rxo,"/")}eT.convertWindowsPathToPattern=pDn;function fDn(e){return Mcr(e)}eT.convertPosixPathToPattern=fDn});var mDn=H((TKl,hDn)=>{hDn.exports=function(t){if(typeof t!="string"||t==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(r[2])return!0;t=t.slice(r.index+r[0].length)}return!1}});var yDn=H((RKl,_Dn)=>{var oxo=mDn(),CDn={"{":"}","(":")","[":"]"},axo=function(e){if(e[0]==="!")return!0;for(var t=0,r=-2,n=-2,a=-2,o=-2,l=-2;tt&&(l===-1||l>n||(l=e.indexOf("\\",t),l===-1||l>n)))||a!==-1&&e[t]==="{"&&e[t+1]!=="}"&&(a=e.indexOf("}",t),a>t&&(l=e.indexOf("\\",t),l===-1||l>a))||o!==-1&&e[t]==="("&&e[t+1]==="?"&&/[:!=]/.test(e[t+2])&&e[t+3]!==")"&&(o=e.indexOf(")",t),o>t&&(l=e.indexOf("\\",t),l===-1||l>o))||r!==-1&&e[t]==="("&&e[t+1]!=="|"&&(rr&&(l=e.indexOf("\\",r),l===-1||l>o))))return!0;if(e[t]==="\\"){var A=e[t+1];t+=2;var f=CDn[A];if(f){var I=e.indexOf(f,t);I!==-1&&(t=I+1)}if(e[t]==="!")return!0}else t++}return!1},cxo=function(e){if(e[0]==="!")return!0;for(var t=0;t{"use strict";var lxo=yDn(),uxo=wt("path").posix.dirname,gxo=wt("os").platform()==="win32",Hcr="/",Axo=/\\/g,dxo=/[\{\[].*[\}\]]$/,pxo=/(^|[^\\])([\{\[]|\([^\)]+$)/,fxo=/\\([\!\*\?\|\[\]\(\)\{\}])/g;bDn.exports=function(t,r){var n=Object.assign({flipBackslashes:!0},r);n.flipBackslashes&&gxo&&t.indexOf(Hcr)<0&&(t=t.replace(Axo,Hcr)),dxo.test(t)&&(t+=Hcr),t+="a";do t=uxo(t);while(lxo(t)||pxo.test(t));return t.replace(fxo,"$1")}});var DDn=H(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});oI.removeDuplicateSlashes=oI.matchAny=oI.convertPatternsToRe=oI.makeRe=oI.getPatternParts=oI.expandBraceExpansion=oI.expandPatternsWithBraceExpansion=oI.isAffectDepthOfReadingPattern=oI.endsWithSlashGlobStar=oI.hasGlobStar=oI.getBaseDirectory=oI.isPatternRelatedToParentDirectory=oI.getPatternsOutsideCurrentDirectory=oI.getPatternsInsideCurrentDirectory=oI.getPositivePatterns=oI.getNegativePatterns=oI.isPositivePattern=oI.isNegativePattern=oI.convertToNegativePattern=oI.convertToPositivePattern=oI.isDynamicPattern=oI.isStaticPattern=void 0;var Ixo=wt("path"),hxo=EDn(),Ycr=Ek(),SDn="**",mxo="\\",Cxo=/[*?]|^!/,_xo=/\[[^[]*]/,yxo=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,bxo=/[!*+?@]\([^(]*\)/,Exo=/,|\.\./,Sxo=/(?!^)\/{2,}/g;function vDn(e,t={}){return!BDn(e,t)}oI.isStaticPattern=vDn;function BDn(e,t={}){return e===""?!1:!!(t.caseSensitiveMatch===!1||e.includes(mxo)||Cxo.test(e)||_xo.test(e)||yxo.test(e)||t.extglob!==!1&&bxo.test(e)||t.braceExpansion!==!1&&vxo(e))}oI.isDynamicPattern=BDn;function vxo(e){let t=e.indexOf("{");if(t===-1)return!1;let r=e.indexOf("}",t+1);if(r===-1)return!1;let n=e.slice(t,r);return Exo.test(n)}function Bxo(e){return But(e)?e.slice(1):e}oI.convertToPositivePattern=Bxo;function wxo(e){return"!"+e}oI.convertToNegativePattern=wxo;function But(e){return e.startsWith("!")&&e[1]!=="("}oI.isNegativePattern=But;function wDn(e){return!But(e)}oI.isPositivePattern=wDn;function Txo(e){return e.filter(But)}oI.getNegativePatterns=Txo;function Rxo(e){return e.filter(wDn)}oI.getPositivePatterns=Rxo;function Nxo(e){return e.filter(t=>!Qcr(t))}oI.getPatternsInsideCurrentDirectory=Nxo;function Dxo(e){return e.filter(Qcr)}oI.getPatternsOutsideCurrentDirectory=Dxo;function Qcr(e){return e.startsWith("..")||e.startsWith("./..")}oI.isPatternRelatedToParentDirectory=Qcr;function kxo(e){return hxo(e,{flipBackslashes:!1})}oI.getBaseDirectory=kxo;function xxo(e){return e.includes(SDn)}oI.hasGlobStar=xxo;function TDn(e){return e.endsWith("/"+SDn)}oI.endsWithSlashGlobStar=TDn;function Gxo(e){let t=Ixo.basename(e);return TDn(e)||vDn(t)}oI.isAffectDepthOfReadingPattern=Gxo;function Fxo(e){return e.reduce((t,r)=>t.concat(RDn(r)),[])}oI.expandPatternsWithBraceExpansion=Fxo;function RDn(e){let t=Ycr.braces(e,{expand:!0,nodupes:!0,keepEscaping:!0});return t.sort((r,n)=>r.length-n.length),t.filter(r=>r!=="")}oI.expandBraceExpansion=RDn;function Zxo(e,t){let{parts:r}=Ycr.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return r.length===0&&(r=[e]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}oI.getPatternParts=Zxo;function NDn(e,t){return Ycr.makeRe(e,t)}oI.makeRe=NDn;function Lxo(e,t){return e.map(r=>NDn(r,t))}oI.convertPatternsToRe=Lxo;function Vxo(e,t){return t.some(r=>r.test(e))}oI.matchAny=Vxo;function Pxo(e){return e.replace(Sxo,"/")}oI.removeDuplicateSlashes=Pxo});var Xcr=H((kKl,GDn)=>{"use strict";var Wxo=wt("stream"),kDn=Wxo.PassThrough,Oxo=Array.prototype.slice;GDn.exports=Mxo;function Mxo(){let e=[],t=Oxo.call(arguments),r=!1,n=t[t.length-1];n&&!Array.isArray(n)&&n.pipe==null?t.pop():n={};let a=n.end!==!1,o=n.pipeError===!0;n.objectMode==null&&(n.objectMode=!0),n.highWaterMark==null&&(n.highWaterMark=64*1024);let l=kDn(n);function A(){for(let C=0,b=arguments.length;C0||(r=!1,f())}function N(B){function F(){B.removeListener("merge2UnpipeEnd",F),B.removeListener("end",F),o&&B.removeListener("error",Q),E()}function Q(X){l.emit("error",X)}if(B._readableState.endEmitted)return E();B.on("merge2UnpipeEnd",F),B.on("end",F),o&&B.on("error",Q),B.pipe(l,{end:!1}),B.resume()}for(let B=0;B{"use strict";Object.defineProperty(wut,"__esModule",{value:!0});wut.merge=void 0;var Hxo=Xcr();function Yxo(e){let t=Hxo(e);return e.forEach(r=>{r.once("error",n=>t.emit("error",n))}),t.once("close",()=>FDn(e)),t.once("end",()=>FDn(e)),t}wut.merge=Yxo;function FDn(e){e.forEach(t=>t.emit("close"))}});var LDn=H($Se=>{"use strict";Object.defineProperty($Se,"__esModule",{value:!0});$Se.isEmpty=$Se.isString=void 0;function Qxo(e){return typeof e=="string"}$Se.isString=Qxo;function Xxo(e){return e===""}$Se.isEmpty=Xxo});var r$=H(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.string=gG.stream=gG.pattern=gG.path=gG.fs=gG.errno=gG.array=void 0;var Jxo=uDn();gG.array=Jxo;var Uxo=gDn();gG.errno=Uxo;var Kxo=ADn();gG.fs=Kxo;var jxo=IDn();gG.path=jxo;var zxo=DDn();gG.pattern=zxo;var qxo=ZDn();gG.stream=qxo;var $xo=LDn();gG.string=$xo});var ODn=H(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.convertPatternGroupToTask=AG.convertPatternGroupsToTasks=AG.groupPatternsByBaseDirectory=AG.getNegativePatternsAsPositive=AG.getPositivePatterns=AG.convertPatternsToTasks=AG.generate=void 0;var sX=r$();function eGo(e,t){let r=VDn(e,t),n=VDn(t.ignore,t),a=PDn(r),o=WDn(r,n),l=a.filter(C=>sX.pattern.isStaticPattern(C,t)),A=a.filter(C=>sX.pattern.isDynamicPattern(C,t)),f=Jcr(l,o,!1),I=Jcr(A,o,!0);return f.concat(I)}AG.generate=eGo;function VDn(e,t){let r=e;return t.braceExpansion&&(r=sX.pattern.expandPatternsWithBraceExpansion(r)),t.baseNameMatch&&(r=r.map(n=>n.includes("/")?n:`**/${n}`)),r.map(n=>sX.pattern.removeDuplicateSlashes(n))}function Jcr(e,t,r){let n=[],a=sX.pattern.getPatternsOutsideCurrentDirectory(e),o=sX.pattern.getPatternsInsideCurrentDirectory(e),l=Ucr(a),A=Ucr(o);return n.push(...Kcr(l,t,r)),"."in A?n.push(jcr(".",o,t,r)):n.push(...Kcr(A,t,r)),n}AG.convertPatternsToTasks=Jcr;function PDn(e){return sX.pattern.getPositivePatterns(e)}AG.getPositivePatterns=PDn;function WDn(e,t){return sX.pattern.getNegativePatterns(e).concat(t).map(sX.pattern.convertToPositivePattern)}AG.getNegativePatternsAsPositive=WDn;function Ucr(e){let t={};return e.reduce((r,n)=>{let a=sX.pattern.getBaseDirectory(n);return a in r?r[a].push(n):r[a]=[n],r},t)}AG.groupPatternsByBaseDirectory=Ucr;function Kcr(e,t,r){return Object.keys(e).map(n=>jcr(n,e[n],t,r))}AG.convertPatternGroupsToTasks=Kcr;function jcr(e,t,r,n){return{dynamic:n,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(sX.pattern.convertToNegativePattern))}}AG.convertPatternGroupToTask=jcr});var HDn=H(Tut=>{"use strict";Object.defineProperty(Tut,"__esModule",{value:!0});Tut.read=void 0;function tGo(e,t,r){t.fs.lstat(e,(n,a)=>{if(n!==null){MDn(r,n);return}if(!a.isSymbolicLink()||!t.followSymbolicLink){zcr(r,a);return}t.fs.stat(e,(o,l)=>{if(o!==null){if(t.throwErrorOnBrokenSymbolicLink){MDn(r,o);return}zcr(r,a);return}t.markSymbolicLink&&(l.isSymbolicLink=()=>!0),zcr(r,l)})})}Tut.read=tGo;function MDn(e,t){e(t)}function zcr(e,t){e(null,t)}});var YDn=H(Rut=>{"use strict";Object.defineProperty(Rut,"__esModule",{value:!0});Rut.read=void 0;function rGo(e,t){let r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{let n=t.fs.statSync(e);return t.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(n){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw n}}Rut.read=rGo});var QDn=H(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});goe.createFileSystemAdapter=goe.FILE_SYSTEM_ADAPTER=void 0;var Nut=wt("fs");goe.FILE_SYSTEM_ADAPTER={lstat:Nut.lstat,stat:Nut.stat,lstatSync:Nut.lstatSync,statSync:Nut.statSync};function nGo(e){return e===void 0?goe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},goe.FILE_SYSTEM_ADAPTER),e)}goe.createFileSystemAdapter=nGo});var XDn=H($cr=>{"use strict";Object.defineProperty($cr,"__esModule",{value:!0});var iGo=QDn(),qcr=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=iGo.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,r){return t??r}};$cr.default=qcr});var Jfe=H(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});Aoe.statSync=Aoe.stat=Aoe.Settings=void 0;var JDn=HDn(),sGo=YDn(),elr=XDn();Aoe.Settings=elr.default;function oGo(e,t,r){if(typeof t=="function"){JDn.read(e,tlr(),t);return}JDn.read(e,tlr(t),r)}Aoe.stat=oGo;function aGo(e,t){let r=tlr(t);return sGo.read(e,r)}Aoe.statSync=aGo;function tlr(e={}){return e instanceof elr.default?e:new elr.default(e)}});var jDn=H((MKl,KDn)=>{var UDn;KDn.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):e=>(UDn||(UDn=Promise.resolve())).then(e).catch(t=>setTimeout(()=>{throw t},0))});var qDn=H((HKl,zDn)=>{zDn.exports=lGo;var cGo=jDn();function lGo(e,t){let r,n,a,o=!0;Array.isArray(e)?(r=[],n=e.length):(a=Object.keys(e),r={},n=a.length);function l(f){function I(){t&&t(f,r),t=null}o?cGo(I):I()}function A(f,I,C){r[f]=C,(--n===0||I)&&l(I)}n?a?a.forEach(function(f){e[f](function(I,C){A(f,I,C)})}):e.forEach(function(f,I){f(function(C,b){A(I,C,b)})}):l(null),o=!1}});var rlr=H(kut=>{"use strict";Object.defineProperty(kut,"__esModule",{value:!0});kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Dut=process.versions.node.split(".");if(Dut[0]===void 0||Dut[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var $Dn=Number.parseInt(Dut[0],10),uGo=Number.parseInt(Dut[1],10),ekn=10,gGo=10,AGo=$Dn>ekn,dGo=$Dn===ekn&&uGo>=gGo;kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=AGo||dGo});var tkn=H(xut=>{"use strict";Object.defineProperty(xut,"__esModule",{value:!0});xut.createDirentFromStats=void 0;var nlr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function pGo(e,t){return new nlr(e,t)}xut.createDirentFromStats=pGo});var ilr=H(Gut=>{"use strict";Object.defineProperty(Gut,"__esModule",{value:!0});Gut.fs=void 0;var fGo=tkn();Gut.fs=fGo});var slr=H(Fut=>{"use strict";Object.defineProperty(Fut,"__esModule",{value:!0});Fut.joinPathSegments=void 0;function IGo(e,t,r){return e.endsWith(r)?e+t:e+r+t}Fut.joinPathSegments=IGo});var akn=H(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});doe.readdir=doe.readdirWithFileTypes=doe.read=void 0;var hGo=Jfe(),rkn=qDn(),mGo=rlr(),nkn=ilr(),ikn=slr();function CGo(e,t,r){if(!t.stats&&mGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES){skn(e,t,r);return}okn(e,t,r)}doe.read=CGo;function skn(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(A=>({dirent:A,name:A.name,path:ikn.joinPathSegments(e,A.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks){olr(r,o);return}let l=o.map(A=>_Go(A,t));rkn(l,(A,f)=>{if(A!==null){Zut(r,A);return}olr(r,f)})})}doe.readdirWithFileTypes=skn;function _Go(e,t){return r=>{if(!e.dirent.isSymbolicLink()){r(null,e);return}t.fs.stat(e.path,(n,a)=>{if(n!==null){if(t.throwErrorOnBrokenSymbolicLink){r(n);return}r(null,e);return}e.dirent=nkn.fs.createDirentFromStats(e.name,a),r(null,e)})}}function okn(e,t,r){t.fs.readdir(e,(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(l=>{let A=ikn.joinPathSegments(e,l,t.pathSegmentSeparator);return f=>{hGo.stat(A,t.fsStatSettings,(I,C)=>{if(I!==null){f(I);return}let b={name:l,path:A,dirent:nkn.fs.createDirentFromStats(l,C)};t.stats&&(b.stats=C),f(null,b)})}});rkn(o,(l,A)=>{if(l!==null){Zut(r,l);return}olr(r,A)})})}doe.readdir=okn;function Zut(e,t){e(t)}function olr(e,t){e(null,t)}});var Akn=H(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});poe.readdir=poe.readdirWithFileTypes=poe.read=void 0;var yGo=Jfe(),bGo=rlr(),ckn=ilr(),lkn=slr();function EGo(e,t){return!t.stats&&bGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES?ukn(e,t):gkn(e,t)}poe.read=EGo;function ukn(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(n=>{let a={dirent:n,name:n.name,path:lkn.joinPathSegments(e,n.name,t.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{let o=t.fs.statSync(a.path);a.dirent=ckn.fs.createDirentFromStats(a.name,o)}catch(o){if(t.throwErrorOnBrokenSymbolicLink)throw o}return a})}poe.readdirWithFileTypes=ukn;function gkn(e,t){return t.fs.readdirSync(e).map(n=>{let a=lkn.joinPathSegments(e,n,t.pathSegmentSeparator),o=yGo.statSync(a,t.fsStatSettings),l={name:n,path:a,dirent:ckn.fs.createDirentFromStats(n,o)};return t.stats&&(l.stats=o),l})}poe.readdir=gkn});var dkn=H(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});foe.createFileSystemAdapter=foe.FILE_SYSTEM_ADAPTER=void 0;var eve=wt("fs");foe.FILE_SYSTEM_ADAPTER={lstat:eve.lstat,stat:eve.stat,lstatSync:eve.lstatSync,statSync:eve.statSync,readdir:eve.readdir,readdirSync:eve.readdirSync};function SGo(e){return e===void 0?foe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},foe.FILE_SYSTEM_ADAPTER),e)}foe.createFileSystemAdapter=SGo});var pkn=H(clr=>{"use strict";Object.defineProperty(clr,"__esModule",{value:!0});var vGo=wt("path"),BGo=Jfe(),wGo=dkn(),alr=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=wGo.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,vGo.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BGo.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};clr.default=alr});var Lut=H(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});Ioe.Settings=Ioe.scandirSync=Ioe.scandir=void 0;var fkn=akn(),TGo=Akn(),llr=pkn();Ioe.Settings=llr.default;function RGo(e,t,r){if(typeof t=="function"){fkn.read(e,ulr(),t);return}fkn.read(e,ulr(t),r)}Ioe.scandir=RGo;function NGo(e,t){let r=ulr(t);return TGo.read(e,r)}Ioe.scandirSync=NGo;function ulr(e={}){return e instanceof llr.default?e:new llr.default(e)}});var hkn=H(($Kl,Ikn)=>{"use strict";function DGo(e){var t=new e,r=t;function n(){var o=t;return o.next?t=o.next:(t=new e,r=t),o.next=null,o}function a(o){r.next=o,r=o}return{get:n,release:a}}Ikn.exports=DGo});var Ckn=H((e8l,glr)=>{"use strict";var kGo=hkn();function mkn(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=kGo(xGo),a=null,o=null,l=0,A=null,f={push:F,drain:nM,saturated:nM,pause:C,paused:!1,get concurrency(){return r},set concurrency(fe){if(!(fe>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=fe,!f.paused)for(;a&&l=r||f.paused?o?(o.next=de,o=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function Q(fe,ue){var de=n.get();de.context=e,de.release=X,de.value=fe,de.callback=ue||nM,de.errorHandler=A,l>=r||f.paused?a?(de.next=a,a=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function X(fe){fe&&n.release(fe);var ue=a;ue&&l<=r?f.paused?l--:(o===a&&(o=null),a=ue.next,ue.next=null,t.call(e,ue.value,ue.worked),o===null&&f.empty()):--l===0&&f.drain()}function ae(){a=null,o=null,f.drain=nM}function ne(){a=null,o=null,f.drain(),f.drain=nM}function ce(fe){A=fe}}function nM(){}function xGo(){this.value=null,this.callback=nM,this.next=null,this.release=nM,this.context=null,this.errorHandler=null;var e=this;this.worked=function(r,n){var a=e.callback,o=e.errorHandler,l=e.value;e.value=null,e.callback=nM,e.errorHandler&&o(r,l),a.call(e.context,r,n),e.release(e)}}function GGo(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(C,b){t.call(this,C).then(function(E){b(null,E)},b)}var a=mkn(e,n,r),o=a.push,l=a.unshift;return a.push=A,a.unshift=f,a.drained=I,a;function A(C){var b=new Promise(function(E,N){o(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function f(C){var b=new Promise(function(E,N){l(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function I(){if(a.idle())return new Promise(function(E){E()});var C=a.drain,b=new Promise(function(E){a.drain=function(){C(),E()}});return b}}glr.exports=mkn;glr.exports.promise=GGo});var Vut=H(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0});QK.joinPathSegments=QK.replacePathSegmentSeparator=QK.isAppliedFilter=QK.isFatalError=void 0;function FGo(e,t){return e.errorFilter===null?!0:!e.errorFilter(t)}QK.isFatalError=FGo;function ZGo(e,t){return e===null||e(t)}QK.isAppliedFilter=ZGo;function LGo(e,t){return e.split(/[/\\]/).join(t)}QK.replacePathSegmentSeparator=LGo;function VGo(e,t,r){return e===""?t:e.endsWith(r)?e+t:e+r+t}QK.joinPathSegments=VGo});var plr=H(dlr=>{"use strict";Object.defineProperty(dlr,"__esModule",{value:!0});var PGo=Vut(),Alr=class{constructor(t,r){this._root=t,this._settings=r,this._root=PGo.replacePathSegmentSeparator(t,r.pathSegmentSeparator)}};dlr.default=Alr});var hlr=H(Ilr=>{"use strict";Object.defineProperty(Ilr,"__esModule",{value:!0});var WGo=wt("events"),OGo=Lut(),MGo=Ckn(),Put=Vut(),HGo=plr(),flr=class extends HGo.default{constructor(t,r){super(t,r),this._settings=r,this._scandir=OGo.scandir,this._emitter=new WGo.EventEmitter,this._queue=MGo(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,r){let n={directory:t,base:r};this._queue.push(n,a=>{a!==null&&this._handleError(a)})}_worker(t,r){this._scandir(t.directory,this._settings.fsScandirSettings,(n,a)=>{if(n!==null){r(n,void 0);return}for(let o of a)this._handleEntry(o,t.base);r(null,void 0)})}_handleError(t){this._isDestroyed||!Put.isFatalError(this._settings,t)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,r){if(this._isDestroyed||this._isFatalError)return;let n=t.path;r!==void 0&&(t.path=Put.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Put.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&Put.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_emitEntry(t){this._emitter.emit("entry",t)}};Ilr.default=flr});var _kn=H(Clr=>{"use strict";Object.defineProperty(Clr,"__esModule",{value:!0});var YGo=hlr(),mlr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new YGo.default(this._root,this._settings),this._storage=[]}read(t){this._reader.onError(r=>{QGo(t,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{XGo(t,this._storage)}),this._reader.read()}};Clr.default=mlr;function QGo(e,t){e(t)}function XGo(e,t){e(null,t)}});var ykn=H(ylr=>{"use strict";Object.defineProperty(ylr,"__esModule",{value:!0});var JGo=wt("stream"),UGo=hlr(),_lr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new UGo.default(this._root,this._settings),this._stream=new JGo.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};ylr.default=_lr});var bkn=H(Elr=>{"use strict";Object.defineProperty(Elr,"__esModule",{value:!0});var KGo=Lut(),Wut=Vut(),jGo=plr(),blr=class extends jGo.default{constructor(){super(...arguments),this._scandir=KGo.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(t,r){this._queue.add({directory:t,base:r})}_handleQueue(){for(let t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,r){try{let n=this._scandir(t,this._settings.fsScandirSettings);for(let a of n)this._handleEntry(a,r)}catch(n){this._handleError(n)}}_handleError(t){if(Wut.isFatalError(this._settings,t))throw t}_handleEntry(t,r){let n=t.path;r!==void 0&&(t.path=Wut.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Wut.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&Wut.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_pushToStorage(t){this._storage.push(t)}};Elr.default=blr});var Ekn=H(vlr=>{"use strict";Object.defineProperty(vlr,"__esModule",{value:!0});var zGo=bkn(),Slr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new zGo.default(this._root,this._settings)}read(){return this._reader.read()}};vlr.default=Slr});var Skn=H(wlr=>{"use strict";Object.defineProperty(wlr,"__esModule",{value:!0});var qGo=wt("path"),$Go=Lut(),Blr=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,qGo.sep),this.fsScandirSettings=new $Go.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};wlr.default=Blr});var Mut=H(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0});XK.Settings=XK.walkStream=XK.walkSync=XK.walk=void 0;var vkn=_kn(),eFo=ykn(),tFo=Ekn(),Tlr=Skn();XK.Settings=Tlr.default;function rFo(e,t,r){if(typeof t=="function"){new vkn.default(e,Out()).read(t);return}new vkn.default(e,Out(t)).read(r)}XK.walk=rFo;function nFo(e,t){let r=Out(t);return new tFo.default(e,r).read()}XK.walkSync=nFo;function iFo(e,t){let r=Out(t);return new eFo.default(e,r).read()}XK.walkStream=iFo;function Out(e={}){return e instanceof Tlr.default?e:new Tlr.default(e)}});var Hut=H(Nlr=>{"use strict";Object.defineProperty(Nlr,"__esModule",{value:!0});var sFo=wt("path"),oFo=Jfe(),Bkn=r$(),Rlr=class{constructor(t){this._settings=t,this._fsStatSettings=new oFo.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return sFo.resolve(this._settings.cwd,t)}_makeEntry(t,r){let n={name:r,path:r,dirent:Bkn.fs.createDirentFromStats(r,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!Bkn.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}};Nlr.default=Rlr});var xlr=H(klr=>{"use strict";Object.defineProperty(klr,"__esModule",{value:!0});var aFo=wt("stream"),cFo=Jfe(),lFo=Mut(),uFo=Hut(),Dlr=class extends uFo.default{constructor(){super(...arguments),this._walkStream=lFo.walkStream,this._stat=cFo.stat}dynamic(t,r){return this._walkStream(t,r)}static(t,r){let n=t.map(this._getFullEntryPath,this),a=new aFo.PassThrough({objectMode:!0});a._write=(o,l,A)=>this._getEntry(n[o],t[o],r).then(f=>{f!==null&&r.entryFilter(f)&&a.push(f),o===n.length-1&&a.end(),A()}).catch(A);for(let o=0;othis._makeEntry(a,r)).catch(a=>{if(n.errorFilter(a))return null;throw a})}_getStat(t){return new Promise((r,n)=>{this._stat(t,this._fsStatSettings,(a,o)=>a===null?r(o):n(a))})}};klr.default=Dlr});var wkn=H(Flr=>{"use strict";Object.defineProperty(Flr,"__esModule",{value:!0});var gFo=Mut(),AFo=Hut(),dFo=xlr(),Glr=class extends AFo.default{constructor(){super(...arguments),this._walkAsync=gFo.walk,this._readerStream=new dFo.default(this._settings)}dynamic(t,r){return new Promise((n,a)=>{this._walkAsync(t,r,(o,l)=>{o===null?n(l):a(o)})})}async static(t,r){let n=[],a=this._readerStream.static(t,r);return new Promise((o,l)=>{a.once("error",l),a.on("data",A=>n.push(A)),a.once("end",()=>o(n))})}};Flr.default=Glr});var Tkn=H(Llr=>{"use strict";Object.defineProperty(Llr,"__esModule",{value:!0});var K3e=r$(),Zlr=class{constructor(t,r,n){this._patterns=t,this._settings=r,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){for(let t of this._patterns){let r=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(r);this._storage.push({complete:n.length<=1,pattern:t,segments:r,sections:n})}}_getPatternSegments(t){return K3e.pattern.getPatternParts(t,this._micromatchOptions).map(n=>K3e.pattern.isDynamicPattern(n,this._settings)?{dynamic:!0,pattern:n,patternRe:K3e.pattern.makeRe(n,this._micromatchOptions)}:{dynamic:!1,pattern:n})}_splitSegmentsIntoSections(t){return K3e.array.splitWhen(t,r=>r.dynamic&&K3e.pattern.hasGlobStar(r.pattern))}};Llr.default=Zlr});var Rkn=H(Plr=>{"use strict";Object.defineProperty(Plr,"__esModule",{value:!0});var pFo=Tkn(),Vlr=class extends pFo.default{match(t){let r=t.split("/"),n=r.length,a=this._storage.filter(o=>!o.complete||o.segments.length>n);for(let o of a){let l=o.sections[0];if(!o.complete&&n>l.length||r.every((f,I)=>{let C=o.segments[I];return!!(C.dynamic&&C.patternRe.test(f)||!C.dynamic&&C.pattern===f)}))return!0}return!1}};Plr.default=Vlr});var Nkn=H(Olr=>{"use strict";Object.defineProperty(Olr,"__esModule",{value:!0});var Yut=r$(),fFo=Rkn(),Wlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r}getFilter(t,r,n){let a=this._getMatcher(r),o=this._getNegativePatternsRe(n);return l=>this._filter(t,l,a,o)}_getMatcher(t){return new fFo.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){let r=t.filter(Yut.pattern.isAffectDepthOfReadingPattern);return Yut.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(t,r,n,a){if(this._isSkippedByDeep(t,r.path)||this._isSkippedSymbolicLink(r))return!1;let o=Yut.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,n)?!1:this._isSkippedByNegativePatterns(o,a)}_isSkippedByDeep(t,r){return this._settings.deep===1/0?!1:this._getEntryLevel(t,r)>=this._settings.deep}_getEntryLevel(t,r){let n=r.split("/").length;if(t==="")return n;let a=t.split("/").length;return n-a}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(t,r){return!this._settings.baseNameMatch&&!r.match(t)}_isSkippedByNegativePatterns(t,r){return!Yut.pattern.matchAny(t,r)}};Olr.default=Wlr});var Dkn=H(Hlr=>{"use strict";Object.defineProperty(Hlr,"__esModule",{value:!0});var Ufe=r$(),Mlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r,this.index=new Map}getFilter(t,r){let n=Ufe.pattern.convertPatternsToRe(t,this._micromatchOptions),a=Ufe.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return o=>this._filter(o,n,a)}_filter(t,r,n){let a=Ufe.path.removeLeadingDotSegment(t.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(t)||this._onlyDirectoryFilter(t)||this._isSkippedByAbsoluteNegativePatterns(a,n))return!1;let o=t.dirent.isDirectory(),l=this._isMatchToPatterns(a,r,o)&&!this._isMatchToPatterns(a,n,o);return this._settings.unique&&l&&this._createIndexRecord(a),l}_isDuplicateEntry(t){return this.index.has(t)}_createIndexRecord(t){this.index.set(t,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,r){if(!this._settings.absolute)return!1;let n=Ufe.path.makeAbsolute(this._settings.cwd,t);return Ufe.pattern.matchAny(n,r)}_isMatchToPatterns(t,r,n){let a=Ufe.pattern.matchAny(t,r);return!a&&n?Ufe.pattern.matchAny(t+"/",r):a}};Hlr.default=Mlr});var kkn=H(Qlr=>{"use strict";Object.defineProperty(Qlr,"__esModule",{value:!0});var IFo=r$(),Ylr=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return IFo.errno.isEnoentCodeError(t)||this._settings.suppressErrors}};Qlr.default=Ylr});var Gkn=H(Jlr=>{"use strict";Object.defineProperty(Jlr,"__esModule",{value:!0});var xkn=r$(),Xlr=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let r=t.path;return this._settings.absolute&&(r=xkn.path.makeAbsolute(this._settings.cwd,r),r=xkn.path.unixify(r)),this._settings.markDirectories&&t.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:r}):r}};Jlr.default=Xlr});var Qut=H(Klr=>{"use strict";Object.defineProperty(Klr,"__esModule",{value:!0});var hFo=wt("path"),mFo=Nkn(),CFo=Dkn(),_Fo=kkn(),yFo=Gkn(),Ulr=class{constructor(t){this._settings=t,this.errorFilter=new _Fo.default(this._settings),this.entryFilter=new CFo.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new mFo.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new yFo.default(this._settings)}_getRootDirectory(t){return hFo.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){let r=t.base==="."?"":t.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Klr.default=Ulr});var Fkn=H(zlr=>{"use strict";Object.defineProperty(zlr,"__esModule",{value:!0});var bFo=wkn(),EFo=Qut(),jlr=class extends EFo.default{constructor(){super(...arguments),this._reader=new bFo.default(this._settings)}async read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return(await this.api(r,t,n)).map(o=>n.transform(o))}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};zlr.default=jlr});var Zkn=H($lr=>{"use strict";Object.defineProperty($lr,"__esModule",{value:!0});var SFo=wt("stream"),vFo=xlr(),BFo=Qut(),qlr=class extends BFo.default{constructor(){super(...arguments),this._reader=new vFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),a=this.api(r,t,n),o=new SFo.Readable({objectMode:!0,read:()=>{}});return a.once("error",l=>o.emit("error",l)).on("data",l=>o.emit("data",n.transform(l))).once("end",()=>o.emit("end")),o.once("close",()=>a.destroy()),o}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};$lr.default=qlr});var Lkn=H(tur=>{"use strict";Object.defineProperty(tur,"__esModule",{value:!0});var wFo=Jfe(),TFo=Mut(),RFo=Hut(),eur=class extends RFo.default{constructor(){super(...arguments),this._walkSync=TFo.walkSync,this._statSync=wFo.statSync}dynamic(t,r){return this._walkSync(t,r)}static(t,r){let n=[];for(let a of t){let o=this._getFullEntryPath(a),l=this._getEntry(o,a,r);l===null||!r.entryFilter(l)||n.push(l)}return n}_getEntry(t,r,n){try{let a=this._getStat(t);return this._makeEntry(a,r)}catch(a){if(n.errorFilter(a))return null;throw a}}_getStat(t){return this._statSync(t,this._fsStatSettings)}};tur.default=eur});var Vkn=H(nur=>{"use strict";Object.defineProperty(nur,"__esModule",{value:!0});var NFo=Lkn(),DFo=Qut(),rur=class extends DFo.default{constructor(){super(...arguments),this._reader=new NFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(r,t,n).map(n.transform)}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};nur.default=rur});var Pkn=H(rve=>{"use strict";Object.defineProperty(rve,"__esModule",{value:!0});rve.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var tve=wt("fs"),kFo=wt("os"),xFo=Math.max(kFo.cpus().length,1);rve.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:tve.lstat,lstatSync:tve.lstatSync,stat:tve.stat,statSync:tve.statSync,readdir:tve.readdir,readdirSync:tve.readdirSync};var iur=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,xFo),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(t,r){return t===void 0?r:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},rve.DEFAULT_FILE_SYSTEM_ADAPTER),t)}};rve.default=iur});var nve=H((v8l,Okn)=>{"use strict";var Wkn=ODn(),GFo=Fkn(),FFo=Zkn(),ZFo=Vkn(),sur=Pkn(),iM=r$();async function our(e,t){oX(e);let r=aur(e,GFo.default,t),n=await Promise.all(r);return iM.array.flatten(n)}(function(e){e.glob=e,e.globSync=t,e.globStream=r,e.async=e;function t(I,C){oX(I);let b=aur(I,ZFo.default,C);return iM.array.flatten(b)}e.sync=t;function r(I,C){oX(I);let b=aur(I,FFo.default,C);return iM.stream.merge(b)}e.stream=r;function n(I,C){oX(I);let b=[].concat(I),E=new sur.default(C);return Wkn.generate(b,E)}e.generateTasks=n;function a(I,C){oX(I);let b=new sur.default(C);return iM.pattern.isDynamicPattern(I,b)}e.isDynamicPattern=a;function o(I){return oX(I),iM.path.escape(I)}e.escapePath=o;function l(I){return oX(I),iM.path.convertPathToPattern(I)}e.convertPathToPattern=l;let A;(function(I){function C(E){return oX(E),iM.path.escapePosixPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertPosixPathToPattern(E)}I.convertPathToPattern=b})(A=e.posix||(e.posix={}));let f;(function(I){function C(E){return oX(E),iM.path.escapeWindowsPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertWindowsPathToPattern(E)}I.convertPathToPattern=b})(f=e.win32||(e.win32={}))})(our||(our={}));function aur(e,t,r){let n=[].concat(e),a=new sur.default(r),o=Wkn.generate(n,a),l=new t(a);return o.map(l.read,l)}function oX(e){if(![].concat(e).every(n=>iM.string.isString(n)&&!iM.string.isEmpty(n)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Okn.exports=our});var moe=H(j3e=>{"use strict";Object.defineProperty(j3e,"__esModule",{value:!0});j3e.makeHash=VFo;j3e.checksumFile=PFo;j3e.checksumPattern=WFo;var LFo=(Pa(),vi(Va)),hoe=no(),cur=wt("crypto"),Mkn=LFo.__importDefault(nve());function VFo(...e){let t=(0,cur.createHash)("sha512"),r="";for(let n of e)typeof n=="string"?r+=n:n&&(r&&(t.update(r),r=""),t.update(n));return r&&t.update(r),t.digest("hex")}async function PFo(e,{baseFs:t,algorithm:r}={baseFs:hoe.xfs,algorithm:"sha512"}){let n=await t.openPromise(e,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=(0,cur.createHash)(r),A=0;for(;(A=await t.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await t.closePromise(n)}}async function WFo(e,{cwd:t}){let n=(await(0,Mkn.default)(e,{cwd:hoe.npath.fromPortablePath(t),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,Mkn.default)([e,...n],{cwd:hoe.npath.fromPortablePath(t),onlyFiles:!1});a.sort();let o=await Promise.all(a.map(async A=>{let f=[Buffer.from(A)],I=hoe.ppath.join(t,hoe.npath.toPortablePath(A)),C=await hoe.xfs.lstatPromise(I);return C.isSymbolicLink()?f.push(Buffer.from(await hoe.xfs.readlinkPromise(I))):C.isFile()&&f.push(await hoe.xfs.readFilePromise(I)),f.join("\0")})),l=(0,cur.createHash)("sha512");for(let A of o)l.update(A);return l.digest("hex")}});var uG=H(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.makeIdent=sve;Xd.makeDescriptor=ave;Xd.makeLocator=cve;Xd.convertToIdent=QFo;Xd.convertDescriptorToLocator=XFo;Xd.convertLocatorToDescriptor=JFo;Xd.convertPackageToLocator=UFo;Xd.renamePackage=Aur;Xd.copyPackage=KFo;Xd.virtualizeDescriptor=jFo;Xd.virtualizePackage=zFo;Xd.isVirtualDescriptor=Jut;Xd.isVirtualLocator=$3e;Xd.devirtualizeDescriptor=Xkn;Xd.devirtualizeLocator=qFo;Xd.ensureDevirtualizedDescriptor=$Fo;Xd.ensureDevirtualizedLocator=eZo;Xd.bindDescriptor=tZo;Xd.bindLocator=rZo;Xd.areIdentsEqual=Jkn;Xd.areDescriptorsEqual=Ukn;Xd.areLocatorsEqual=nZo;Xd.areVirtualPackagesEquivalent=iZo;Xd.parseIdent=sZo;Xd.tryParseIdent=Kkn;Xd.parseDescriptor=aZo;Xd.tryParseDescriptor=jkn;Xd.parseLocator=zkn;Xd.tryParseLocator=qkn;Xd.parseRange=e5e;Xd.tryParseRange=dZo;Xd.parseFileStyleRange=pZo;Xd.makeRange=$kn;Xd.convertToManifestRange=IZo;Xd.stringifyIdent=Kut;Xd.wrapIdentIntoScope=hZo;Xd.unwrapIdentFromScope=mZo;Xd.stringifyDescriptor=CZo;Xd.stringifyLocator=_Zo;Xd.slugifyIdent=uur;Xd.slugifyLocator=bZo;Xd.prettyIdent=jut;Xd.prettyRange=exn;Xd.prettyDescriptor=SZo;Xd.prettyReference=dur;Xd.prettyLocator=Xut;Xd.prettyLocatorNoColors=vZo;Xd.sortDescriptors=BZo;Xd.prettyWorkspace=wZo;Xd.prettyResolution=TZo;Xd.prettyDependent=RZo;Xd.getIdentVendorPath=NZo;Xd.isPackageInRange=DZo;Xd.isPackageCompatible=kZo;Xd.allPeerRequests=xZo;var ove=(Pa(),vi(Va)),q3e=ove.__importDefault(wt("querystring")),Ykn=ove.__importDefault(UC()),OFo=dBn(),vZ=ove.__importStar(rM()),gur=ove.__importStar(moe()),MFo=ove.__importStar(xW()),ive=ove.__importStar(uG()),z3e="virtual:",HFo=5,Qkn=/(os|cpu|libc)=([a-z0-9_-]+)/,YFo=(0,OFo.makeParser)(Qkn);function sve(e,t){if(e?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:gur.makeHash(e,t),scope:e,name:t}}function ave(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:gur.makeHash(e.identHash,t),range:t}}function cve(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:gur.makeHash(e.identHash,t),reference:t}}function QFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function XFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function JFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function UFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function Aur(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,conditions:e.conditions,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function KFo(e){return Aur(e,e)}function jFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return ave(e,`virtual:${t}#${e.range}`)}function zFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return Aur(e,cve(e,`virtual:${t}#${e.reference}`))}function Jut(e){return e.range.startsWith(z3e)}function $3e(e){return e.reference.startsWith(z3e)}var Uut=/^[^#]*#/;function Xkn(e){if(!Jut(e))throw new Error("Not a virtual descriptor");return ave(e,e.range.replace(Uut,""))}function qFo(e){if(!$3e(e))throw new Error("Not a virtual descriptor");return cve(e,e.reference.replace(Uut,""))}function $Fo(e){return Jut(e)?ave(e,e.range.replace(Uut,"")):e}function eZo(e){return $3e(e)?cve(e,e.reference.replace(Uut,"")):e}function tZo(e,t){return e.range.includes("::")?e:ave(e,`${e.range}::${q3e.default.stringify(t)}`)}function rZo(e,t){return e.reference.includes("::")?e:cve(e,`${e.reference}::${q3e.default.stringify(t)}`)}function Jkn(e,t){return e.identHash===t.identHash}function Ukn(e,t){return e.descriptorHash===t.descriptorHash}function nZo(e,t){return e.locatorHash===t.locatorHash}function iZo(e,t){if(!$3e(e))throw new Error("Invalid package type");if(!$3e(t))throw new Error("Invalid package type");if(!Jkn(e,t)||e.dependencies.size!==t.dependencies.size)return!1;for(let r of e.dependencies.values()){let n=t.dependencies.get(r.identHash);if(!n||!Ukn(r,n))return!1}return!0}function sZo(e){let t=Kkn(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}var oZo=/^(?:@([^/]+?)\/)?([^@/]+)$/;function Kkn(e){let t=e.match(oZo);if(!t)return null;let[,r,n]=t;return sve(typeof r<"u"?r:null,n)}function aZo(e,t=!1){let r=jkn(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}var cZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,lZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/,lur="unknown";function jkn(e,t=!1){let r=t?e.match(cZo):e.match(lZo);if(!r)return null;let[,n,a,o]=r;if(o===lur)throw new Error(`Invalid range (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:lur;return ave(sve(l,a),A)}function zkn(e,t=!1){let r=qkn(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}var uZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,gZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;function qkn(e,t=!1){let r=t?e.match(uZo):e.match(gZo);if(!r)return null;let[,n,a,o]=r;if(o==="unknown")throw new Error(`Invalid reference (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:"unknown";return cve(sve(l,a),A)}var AZo=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;function e5e(e,t){let r=e.match(AZo);if(r===null)throw new Error(`Invalid range (${e})`);let n=typeof r[1]<"u"?r[1]:null;if(typeof t?.requireProtocol=="string"&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if(t?.requireProtocol&&n===null)throw new Error(`Missing protocol (${n})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(t?.requireSource&&a===null)throw new Error(`Missing source (${e})`);let o=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),l=t?.parseSelector?q3e.default.parse(o):o,A=typeof r[4]<"u"?q3e.default.parse(r[4]):null;return{protocol:n,source:a,selector:l,params:A}}function dZo(e,t){try{return e5e(e,t)}catch{return null}}function pZo(e,{protocol:t}){let{selector:r,params:n}=e5e(e,{requireProtocol:t,requireBindings:!0});if(typeof n.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${e}`);return{parentLocator:zkn(n.locator,!0),path:r}}function Hkn(e){return e=e.replaceAll("%","%25"),e=e.replaceAll(":","%3A"),e=e.replaceAll("#","%23"),e}function fZo(e){return e===null?!1:Object.entries(e).length>0}function $kn({protocol:e,source:t,selector:r,params:n}){let a="";return e!==null&&(a+=`${e}`),t!==null&&(a+=`${Hkn(t)}#`),a+=Hkn(r),fZo(n)&&(a+=`::${q3e.default.stringify(n)}`),a}function IZo(e){let{params:t,protocol:r,source:n,selector:a}=e5e(e);for(let o in t)o.startsWith("__")&&delete t[o];return $kn({protocol:r,source:n,params:t,selector:a})}function Kut(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function hZo(e,t){return e.scope?ive.makeIdent(t,`${e.scope}__${e.name}`):ive.makeIdent(t,e.name)}function mZo(e,t){if(e.scope!==t)return e;let r=e.name.indexOf("__");if(r===-1)return sve(null,e.name);let n=e.name.slice(0,r),a=e.name.slice(r+2);return sve(n,a)}function CZo(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function _Zo(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function uur(e){return e.scope!==null?`@${e.scope}-${e.name}`:e.name}var yZo=/:$/;function bZo(e){let{protocol:t,selector:r}=e5e(e.reference),n=t!==null?t.replace(yZo,""):"exotic",a=Ykn.default.valid(r),o=a!==null?`${n}-${a}`:`${n}`,l=10;return e.scope?`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`:`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`}function jut(e,t){return t.scope?`${vZ.pretty(e,`@${t.scope}/`,vZ.Type.SCOPE)}${vZ.pretty(e,t.name,vZ.Type.NAME)}`:`${vZ.pretty(e,t.name,vZ.Type.NAME)}`}var EZo=/\?.*/;function zut(e){if(e.startsWith(z3e)){let t=zut(e.substring(e.indexOf("#")+1)),r=e.substring(z3e.length,z3e.length+HFo);return`${t} [${r}]`}else return e.replace(EZo,"?[...]")}function exn(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.RANGE)}`}function SZo(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.RANGE)}${exn(e,t.range)}`}function dur(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.REFERENCE)}`}function Xut(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.REFERENCE)}${dur(e,t.reference)}`}function vZo(e){return`${Kut(e)}@${zut(e.reference)}`}function BZo(e){return MFo.sortMap(e,[t=>Kut(t),t=>t.range])}function wZo(e,t){return jut(e,t.anchoredLocator)}function TZo(e,t,r){let n=Jut(t)?Xkn(t):t;return r===null?`${ive.prettyDescriptor(e,n)} \u2192 ${vZ.mark(e).Cross}`:n.identHash===r.identHash?`${ive.prettyDescriptor(e,n)} \u2192 ${dur(e,r.reference)}`:`${ive.prettyDescriptor(e,n)} \u2192 ${Xut(e,r)}`}function RZo(e,t,r){return r===null?`${Xut(e,t)}`:`${Xut(e,t)} (via ${ive.prettyRange(e,r.range)})`}function NZo(e){return`node_modules/${Kut(e)}`}function DZo(e,t){return t===lur||!e.version?!0:Ykn.default.satisfies(e.version??"",t)}function kZo(e,t){return e.conditions?YFo(e.conditions,r=>{let[,n,a]=r.match(Qkn),o=t[n];return o?o.includes(a):!0}):!0}function xZo(e){let t=new Set;if("children"in e)t.add(e);else for(let r of e.requests.values())t.add(r);for(let r of t)for(let n of r.children.values())t.add(n);return t}});var txn=H(qut=>{"use strict";Object.defineProperty(qut,"__esModule",{value:!0});qut.CorePlugin=void 0;var GZo=(Pa(),vi(Va)),FZo=M9(),Coe=GZo.__importStar(uG());qut.CorePlugin={hooks:{reduceDependency:(e,t,r,n,{resolver:a,resolveOptions:o})=>{for(let{pattern:l,reference:A}of t.topLevelWorkspace.manifest.resolutions){if(l.from&&(l.from.fullName!==Coe.stringifyIdent(r)||t.configuration.normalizeLocator(Coe.makeLocator(Coe.parseIdent(l.from.fullName),l.from.description??r.reference)).locatorHash!==r.locatorHash)||l.descriptor.fullName!==Coe.stringifyIdent(e)||t.configuration.normalizeDependency(Coe.makeDescriptor(Coe.parseLocator(l.descriptor.fullName),l.descriptor.description??e.range)).descriptorHash!==e.descriptorHash)continue;return a.bindDescriptor(t.configuration.normalizeDependency(Coe.makeDescriptor(e,A)),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(let r of e.workspaces){let n=Coe.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,o)=>t.reportWarning(a,`${n}: ${o}`),reportError:(a,o)=>t.reportError(a,`${n}: ${o}`)})}},validateWorkspace:async(e,t)=>{let{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let n of r.errors)t.reportWarning(FZo.MessageName.INVALID_MANIFEST,n.message)}}}});var Kfe=H(egt=>{"use strict";Object.defineProperty(egt,"__esModule",{value:!0});egt.WorkspaceResolver=void 0;var ZZo=Qfe(),$ut=class e{supportsDescriptor(t,r){return!!(t.range.startsWith(e.protocol)||r.project.tryWorkspaceByDescriptor(t)!==null)}supportsLocator(t,r){return!!t.reference.startsWith(e.protocol)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[n.project.getWorkspaceByDescriptor(t).anchoredLocator]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let n=r.project.getWorkspaceByCwd(t.reference.slice(e.protocol.length));return{...t,version:n.manifest.version||"0.0.0",languageName:"unknown",linkType:ZZo.LinkType.SOFT,conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...n.manifest.dependencies,...n.manifest.devDependencies])),peerDependencies:new Map([...n.manifest.peerDependencies]),dependenciesMeta:n.manifest.dependenciesMeta,peerDependenciesMeta:n.manifest.peerDependenciesMeta,bin:n.manifest.bin}}};egt.WorkspaceResolver=$ut;$ut.protocol="workspace:"});var n$=H(aX=>{"use strict";Object.defineProperty(aX,"__esModule",{value:!0});aX.SemVer=void 0;aX.satisfiesWithPrereleases=PZo;aX.validRange=ixn;aX.clean=OZo;aX.getComparator=sxn;aX.mergeComparators=pur;aX.stringifyComparator=oxn;aX.simplifyRanges=MZo;var LZo=(Pa(),vi(Va)),_oe=LZo.__importDefault(UC()),VZo=UC();Object.defineProperty(aX,"SemVer",{enumerable:!0,get:function(){return VZo.SemVer}});var rxn=new Map;function PZo(e,t,r=!1){if(!e)return!1;let n=`${t}${r}`,a=rxn.get(n);if(typeof a>"u")try{a=new _oe.default.Range(t,{includePrerelease:!0,loose:r})}catch{return!1}finally{rxn.set(n,a||null)}else if(a===null)return!1;let o;try{o=new _oe.default.SemVer(e,a)}catch{return!1}return a.test(o)?!0:(o.prerelease&&(o.prerelease=[]),a.set.some(l=>{for(let A of l)A.semver.prerelease&&(A.semver.prerelease=[]);return l.every(A=>A.test(o))}))}var nxn=new Map;function ixn(e){if(e.indexOf(":")!==-1)return null;let t=nxn.get(e);if(typeof t<"u")return t;try{t=new _oe.default.Range(e)}catch{t=null}return nxn.set(e,t),t}var WZo=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function OZo(e){let t=WZo.exec(e);return t?t[1]:null}function sxn(e){if(e.semver===_oe.default.Comparator.ANY)return{gt:null,lt:null};switch(e.operator){case"":return{gt:[">=",e.semver],lt:["<=",e.semver]};case">":case">=":return{gt:[e.operator,e.semver],lt:null};case"<":case"<=":return{gt:null,lt:[e.operator,e.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${e.operator})`)}}function pur(e){if(e.length===0)return null;let t=null,r=null;for(let n of e){if(n.gt){let a=t!==null?_oe.default.compare(n.gt[1],t[1]):null;(a===null||a>0||a===0&&n.gt[0]===">")&&(t=n.gt)}if(n.lt){let a=r!==null?_oe.default.compare(n.lt[1],r[1]):null;(a===null||a<0||a===0&&n.lt[0]==="<")&&(r=n.lt)}}if(t&&r){let n=_oe.default.compare(t[1],r[1]);if(n===0&&(t[0]===">"||r[0]==="<")||n>0)return null}return{gt:t,lt:r}}function oxn(e){if(e.gt&&e.lt){if(e.gt[0]===">="&&e.lt[0]==="<="&&e.gt[1].version===e.lt[1].version)return e.gt[1].version;if(e.gt[0]===">="&&e.lt[0]==="<"){if(e.lt[1].version===`${e.gt[1].major+1}.0.0-0`)return`^${e.gt[1].version}`;if(e.lt[1].version===`${e.gt[1].major}.${e.gt[1].minor+1}.0-0`)return`~${e.gt[1].version}`}}let t=[];return e.gt&&t.push(e.gt[0]+e.gt[1].version),e.lt&&t.push(e.lt[0]+e.lt[1].version),t.length?t.join(" "):"*"}function MZo(e){let t=e.map(HZo).map(n=>ixn(n).set.map(a=>a.map(o=>sxn(o)))),r=t.shift().map(n=>pur(n)).filter(n=>n!==null);for(let n of t){let a=[];for(let o of r)for(let l of n){let A=pur([o,...l]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(n=>oxn(n)).join(" || ")}function HZo(e){let t=e.split("||");if(t.length>1){let r=new Set;for(let n of t)t.some(a=>a!==n&&_oe.default.subset(n,a))||r.add(n);if(r.size{"use strict";Object.defineProperty(sgt,"__esModule",{value:!0});sgt.Manifest=void 0;var igt=(Pa(),vi(Va)),tgt=no(),axn=TW(),YZo=igt.__importDefault(UC()),QZo=Kfe(),ngt=igt.__importStar(xW()),XZo=igt.__importStar(n$()),O0=igt.__importStar(uG()),lve=class e{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.libc=null,this.type=null,this.packageManager=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.browser=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.installConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(t,{baseFs:r=new tgt.NodeFS}={}){let n=tgt.ppath.join(t,"package.json");try{return await e.fromFile(n,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(t,{baseFs:r}={}){let n=await e.tryFind(t,{baseFs:r});if(n===null)throw new Error("Manifest not found");return n}static async fromFile(t,{baseFs:r=new tgt.NodeFS}={}){let n=new e;return await n.loadFile(t,{baseFs:r}),n}static fromText(t){let r=new e;return r.loadFromText(t),r}loadFromText(t){let r;try{r=JSON.parse(lxn(t)||"{}")}catch(n){throw n.message+=` (when parsing ${t})`,n}this.load(r),this.indent=cxn(t)}async loadFile(t,{baseFs:r=new tgt.NodeFS}){let n=await r.readFilePromise(t,"utf8"),a;try{a=JSON.parse(lxn(n)||"{}")}catch(o){throw o.message+=` (when parsing ${t})`,o}this.load(a),this.indent=cxn(n)}load(t,{yamlCompatibilityMode:r=!1}={}){if(typeof t!="object"||t===null)throw new Error(`Utterly invalid manifest data (${t})`);this.raw=t;let n=[];if(this.name=null,typeof t.name=="string")try{this.name=O0.parseIdent(t.name)}catch{n.push(new Error("Parsing failed for the 'name' field"))}if(typeof t.version=="string"?this.version=t.version:this.version=null,Array.isArray(t.os)){let o=[];this.os=o;for(let l of t.os)typeof l!="string"?n.push(new Error("Parsing failed for the 'os' field")):o.push(l)}else this.os=null;if(Array.isArray(t.cpu)){let o=[];this.cpu=o;for(let l of t.cpu)typeof l!="string"?n.push(new Error("Parsing failed for the 'cpu' field")):o.push(l)}else this.cpu=null;if(Array.isArray(t.libc)){let o=[];this.libc=o;for(let l of t.libc)typeof l!="string"?n.push(new Error("Parsing failed for the 'libc' field")):o.push(l)}else this.libc=null;if(typeof t.type=="string"?this.type=t.type:this.type=null,typeof t.packageManager=="string"?this.packageManager=t.packageManager:this.packageManager=null,typeof t.private=="boolean"?this.private=t.private:this.private=!1,typeof t.license=="string"?this.license=t.license:this.license=null,typeof t.languageName=="string"?this.languageName=t.languageName:this.languageName=null,typeof t.main=="string"?this.main=BZ(t.main):this.main=null,typeof t.module=="string"?this.module=BZ(t.module):this.module=null,t.browser!=null)if(typeof t.browser=="string")this.browser=BZ(t.browser);else{this.browser=new Map;for(let[o,l]of Object.entries(t.browser))this.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}else this.browser=null;if(this.bin=new Map,typeof t.bin=="string")t.bin.trim()===""?n.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,BZ(t.bin)):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.bin=="object"&&t.bin!==null)for(let[o,l]of Object.entries(t.bin)){if(typeof l!="string"||l.trim()===""){n.push(new Error(`Invalid bin definition for '${o}'`));continue}let A=O0.parseIdent(o);this.bin.set(A.name,BZ(l))}if(this.scripts=new Map,typeof t.scripts=="object"&&t.scripts!==null)for(let[o,l]of Object.entries(t.scripts)){if(typeof l!="string"){n.push(new Error(`Invalid script definition for '${o}'`));continue}this.scripts.set(o,l)}if(this.dependencies=new Map,typeof t.dependencies=="object"&&t.dependencies!==null)for(let[o,l]of Object.entries(t.dependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f)}if(this.devDependencies=new Map,typeof t.devDependencies=="object"&&t.devDependencies!==null)for(let[o,l]of Object.entries(t.devDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.devDependencies.set(f.identHash,f)}if(this.peerDependencies=new Map,typeof t.peerDependencies=="object"&&t.peerDependencies!==null)for(let[o,l]of Object.entries(t.peerDependencies)){let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}(typeof l!="string"||!l.startsWith(QZo.WorkspaceResolver.protocol)&&!XZo.validRange(l))&&(n.push(new Error(`Invalid dependency range for '${o}'`)),l="*");let f=O0.makeDescriptor(A,l);this.peerDependencies.set(f.identHash,f)}typeof t.workspaces=="object"&&t.workspaces!==null&&t.workspaces.nohoist&&n.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(t.workspaces)?t.workspaces:typeof t.workspaces=="object"&&t.workspaces!==null&&Array.isArray(t.workspaces.packages)?t.workspaces.packages:[];this.workspaceDefinitions=[];for(let o of a){if(typeof o!="string"){n.push(new Error(`Invalid workspace definition for '${o}'`));continue}this.workspaceDefinitions.push({pattern:o})}if(this.dependenciesMeta=new Map,typeof t.dependenciesMeta=="object"&&t.dependenciesMeta!==null)for(let[o,l]of Object.entries(t.dependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}`));continue}let A=O0.parseDescriptor(o),f=this.ensureDependencyMeta(A),I=rgt(l.built,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid built meta field for '${o}'`));continue}let C=rgt(l.optional,{yamlCompatibilityMode:r});if(C===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}let b=rgt(l.unplugged,{yamlCompatibilityMode:r});if(b===null){n.push(new Error(`Invalid unplugged meta field for '${o}'`));continue}Object.assign(f,{built:I,optional:C,unplugged:b})}if(this.peerDependenciesMeta=new Map,typeof t.peerDependenciesMeta=="object"&&t.peerDependenciesMeta!==null)for(let[o,l]of Object.entries(t.peerDependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}'`));continue}let A=O0.parseDescriptor(o),f=this.ensurePeerDependencyMeta(A),I=rgt(l.optional,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}Object.assign(f,{optional:I})}if(this.resolutions=[],typeof t.resolutions=="object"&&t.resolutions!==null)for(let[o,l]of Object.entries(t.resolutions)){if(typeof l!="string"){n.push(new Error(`Invalid resolution entry for '${o}'`));continue}try{this.resolutions.push({pattern:(0,axn.parseResolution)(o),reference:l})}catch(A){n.push(A);continue}}if(Array.isArray(t.files)){this.files=new Set;for(let o of t.files){if(typeof o!="string"){n.push(new Error(`Invalid files entry for '${o}'`));continue}this.files.add(o)}}else this.files=null;if(typeof t.publishConfig=="object"&&t.publishConfig!==null){if(this.publishConfig={},typeof t.publishConfig.access=="string"&&(this.publishConfig.access=t.publishConfig.access),typeof t.publishConfig.main=="string"&&(this.publishConfig.main=BZ(t.publishConfig.main)),typeof t.publishConfig.module=="string"&&(this.publishConfig.module=BZ(t.publishConfig.module)),t.publishConfig.browser!=null)if(typeof t.publishConfig.browser=="string")this.publishConfig.browser=BZ(t.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[o,l]of Object.entries(t.publishConfig.browser))this.publishConfig.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}if(typeof t.publishConfig.registry=="string"&&(this.publishConfig.registry=t.publishConfig.registry),typeof t.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=t.publishConfig.provenance),typeof t.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,BZ(t.publishConfig.bin)]]):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.publishConfig.bin=="object"&&t.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[o,l]of Object.entries(t.publishConfig.bin)){if(typeof l!="string"){n.push(new Error(`Invalid bin definition for '${o}'`));continue}this.publishConfig.bin.set(o,BZ(l))}}if(Array.isArray(t.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let o of t.publishConfig.executableFiles){if(typeof o!="string"){n.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(BZ(o))}}}else this.publishConfig=null;if(typeof t.installConfig=="object"&&t.installConfig!==null){this.installConfig={};for(let o of Object.keys(t.installConfig))o==="hoistingLimits"?typeof t.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=t.installConfig.hoistingLimits:n.push(new Error("Invalid hoisting limits definition")):o=="selfReferences"?typeof t.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=t.installConfig.selfReferences:n.push(new Error("Invalid selfReferences definition, must be a boolean value")):n.push(new Error(`Unrecognized installConfig key: ${o}`))}else this.installConfig=null;if(typeof t.optionalDependencies=="object"&&t.optionalDependencies!==null)for(let[o,l]of Object.entries(t.optionalDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f);let I=O0.makeDescriptor(A,"unknown"),C=this.ensureDependencyMeta(I);Object.assign(C,{optional:!0})}typeof t.preferUnplugged=="boolean"?this.preferUnplugged=t.preferUnplugged:this.preferUnplugged=null,this.errors=n}getForScope(t){switch(t){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${t}")`)}}hasConsumerDependency(t){return!!(this.dependencies.has(t.identHash)||this.peerDependencies.has(t.identHash))}hasHardDependency(t){return!!(this.dependencies.has(t.identHash)||this.devDependencies.has(t.identHash))}hasSoftDependency(t){return!!this.peerDependencies.has(t.identHash)}hasDependency(t){return!!(this.hasHardDependency(t)||this.hasSoftDependency(t))}getConditions(){let t=[];return this.os&&this.os.length>0&&t.push(fur("os",this.os)),this.cpu&&this.cpu.length>0&&t.push(fur("cpu",this.cpu)),this.libc&&this.libc.length>0&&t.push(fur("libc",this.libc)),t.length>0?t.join(" & "):null}ensureDependencyMeta(t){if(t.range!=="unknown"&&!YZo.default.valid(t.range))throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=t.range!=="unknown"?t.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let o=a.get(n);return o||a.set(n,o={}),o}ensurePeerDependencyMeta(t){if(t.range!=="unknown")throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=this.peerDependenciesMeta.get(r);return n||this.peerDependenciesMeta.set(r,n={}),n}setRawField(t,r,{after:n=[]}={}){let a=new Set(n.filter(o=>Object.hasOwn(this.raw,o)));if(a.size===0||Object.hasOwn(this.raw,t))this.raw[t]=r;else{let o=this.raw,l=this.raw={},A=!1;for(let f of Object.keys(o))l[f]=o[f],A||(a.delete(f),a.size===0&&(l[t]=r,A=!0))}}exportTo(t,{compatibilityMode:r=!0}={}){if(Object.assign(t,this.raw),this.name!==null?t.name=O0.stringifyIdent(this.name):delete t.name,this.version!==null?t.version=this.version:delete t.version,this.os!==null?t.os=this.os:delete t.os,this.cpu!==null?t.cpu=this.cpu:delete t.cpu,this.type!==null?t.type=this.type:delete t.type,this.packageManager!==null?t.packageManager=this.packageManager:delete t.packageManager,this.private?t.private=!0:delete t.private,this.license!==null?t.license=this.license:delete t.license,this.languageName!==null?t.languageName=this.languageName:delete t.languageName,this.main!==null?t.main=this.main:delete t.main,this.module!==null?t.module=this.module:delete t.module,this.browser!==null){let o=this.browser;typeof o=="string"?t.browser=o:o instanceof Map&&(t.browser=Object.assign({},...Array.from(o.keys()).sort().map(l=>({[l]:o.get(l)}))))}else delete t.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?t.bin=this.bin.get(this.name.name):this.bin.size>0?t.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete t.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?t.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:t.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?t.workspaces=this.raw.workspaces:delete t.workspaces;let n=[],a=[];for(let o of this.dependencies.values()){let l=this.dependenciesMeta.get(O0.stringifyIdent(o)),A=!1;if(r&&l){let f=l.get(null);f&&f.optional&&(A=!0)}A?a.push(o):n.push(o)}n.length>0?t.dependencies=Object.assign({},...O0.sortDescriptors(n).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.dependencies,a.length>0?t.optionalDependencies=Object.assign({},...O0.sortDescriptors(a).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.optionalDependencies,this.devDependencies.size>0?t.devDependencies=Object.assign({},...O0.sortDescriptors(this.devDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.devDependencies,this.peerDependencies.size>0?t.peerDependencies=Object.assign({},...O0.sortDescriptors(this.peerDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.peerDependencies,t.dependenciesMeta={};for(let[o,l]of ngt.sortMap(this.dependenciesMeta.entries(),([A,f])=>A))for(let[A,f]of ngt.sortMap(l.entries(),([I,C])=>I!==null?`0${I}`:"1")){let I=A!==null?O0.stringifyDescriptor(O0.makeDescriptor(O0.parseIdent(o),A)):o,C={...f};r&&A===null&&delete C.optional,Object.keys(C).length!==0&&(t.dependenciesMeta[I]=C)}if(Object.keys(t.dependenciesMeta).length===0&&delete t.dependenciesMeta,this.peerDependenciesMeta.size>0?t.peerDependenciesMeta=Object.assign({},...ngt.sortMap(this.peerDependenciesMeta.entries(),([o,l])=>o).map(([o,l])=>({[o]:l}))):delete t.peerDependenciesMeta,this.resolutions.length>0?t.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:l})=>({[(0,axn.stringifyResolution)(o)]:l}))):delete t.resolutions,this.files!==null?t.files=Array.from(this.files):delete t.files,this.preferUnplugged!==null?t.preferUnplugged=this.preferUnplugged:delete t.preferUnplugged,this.scripts!==null&&this.scripts.size>0){t.scripts??={};for(let o of Object.keys(t.scripts))this.scripts.has(o)||delete t.scripts[o];for(let[o,l]of this.scripts.entries())t.scripts[o]=l}else delete t.scripts;return t}};sgt.Manifest=lve;lve.fileName="package.json";lve.allDependencies=["dependencies","devDependencies","peerDependencies"];lve.hardDependencies=["dependencies","devDependencies"];function cxn(e){let t=e.match(/^[ \t]+/m);return t?t[0]:" "}function lxn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function BZ(e){return e.replace(/\\/g,"/")}function rgt(e,{yamlCompatibilityMode:t}){return t?ngt.tryParseOptionalBoolean(e):typeof e>"u"||typeof e=="boolean"?e:null}function uxn(e,t){let r=t.search(/[^!]/);if(r===-1)return"invalid";let n=r%2===0?"":"!",a=t.slice(r);return`${n}${e}=${a}`}function fur(e,t){return t.length===1?uxn(e,t[0]):`(${t.map(r=>uxn(e,r)).join(" | ")})`}});var sM=H(jfe=>{"use strict";Object.defineProperty(jfe,"__esModule",{value:!0});jfe.Report=jfe.ReportError=void 0;jfe.isReportError=gxn;var JZo=kW(),UZo=wt("stream"),KZo=wt("string_decoder"),jZo=M9(),zZo=15,Iur=class extends Error{constructor(t,r,n){super(r),this.reportExtra=n,this.reportCode=t}};jfe.ReportError=Iur;function gxn(e){return typeof e.reportCode<"u"}var hur=class{constructor(){this.cacheHits=new Set,this.cacheMisses=new Set,this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(t){this.cacheHits.add(t.locatorHash)}reportCacheMiss(t,r){this.cacheMisses.add(t.locatorHash)}static progressViaCounter(t){let r=0,n,a=new Promise(f=>{n=f}),o=f=>{let I=n;a=new Promise(C=>{n=C}),r=f,I()},l=(f=0)=>{o(r+1)},A=async function*(){for(;r{r=l}),a=(0,JZo.throttle)(l=>{let A=r;n=new Promise(f=>{r=f}),t=l,A()},1e3/zZo),o=async function*(){for(;;)await n,yield{title:t}}();return{[Symbol.asyncIterator](){return o},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(t,r){let n=this.reportProgress(t);try{return await r(t)}finally{n.stop()}}startProgressSync(t,r){let n=this.reportProgress(t);try{return r(t)}finally{n.stop()}}reportInfoOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(t,r),n?.reportExtra?.(this))}reportWarningOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(t,r),n?.reportExtra?.(this))}reportErrorOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(t,r),n?.reportExtra?.(this))}reportExceptionOnce(t){gxn(t)?this.reportErrorOnce(t.reportCode,t.message,{key:t,reportExtra:t.reportExtra}):this.reportErrorOnce(jZo.MessageName.EXCEPTION,t.stack||t.message,{key:t})}createStreamReporter(t=null){let r=new UZo.PassThrough,n=new KZo.StringDecoder,a="";return r.on("data",o=>{let l=n.write(o),A;do if(A=l.indexOf(` -`),A!==-1){let f=a+l.substring(0,A);l=l.substring(A+1),a="",t!==null?this.reportInfo(null,`${t} ${f}`):this.reportInfo(null,f)}while(A!==-1);a+=l}),r.on("end",()=>{let o=n.end();o!==""&&(t!==null?this.reportInfo(null,`${t} ${o}`):this.reportInfo(null,o))}),r}};jfe.Report=hur});var Cur=H(ogt=>{"use strict";Object.defineProperty(ogt,"__esModule",{value:!0});ogt.MultiFetcher=void 0;var qZo=(Pa(),vi(Va)),$Zo=M9(),eLo=sM(),tLo=qZo.__importStar(uG()),mur=class{constructor(t){this.fetchers=t}supports(t,r){return!!this.tryFetcher(t,r)}getLocalPath(t,r){return this.getFetcher(t,r).getLocalPath(t,r)}async fetch(t,r){return await this.getFetcher(t,r).fetch(t,r)}tryFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));return n||null}getFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));if(!n)throw new eLo.ReportError($Zo.MessageName.FETCHER_NOT_FOUND,`${tLo.prettyLocator(r.project.configuration,t)} isn't supported by any available fetcher`);return n}};ogt.MultiFetcher=mur});var yur=H(agt=>{"use strict";Object.defineProperty(agt,"__esModule",{value:!0});agt.MultiResolver=void 0;var rLo=(Pa(),vi(Va)),Axn=rLo.__importStar(uG()),_ur=class{constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Axn.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Axn.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};agt.MultiResolver=_ur});var vur=H(cgt=>{"use strict";Object.defineProperty(cgt,"__esModule",{value:!0});cgt.VirtualFetcher=void 0;var nLo=(Pa(),vi(Va)),bur=no(),Eur=nLo.__importStar(uG()),Sur=class{supports(t){return!!t.reference.startsWith("virtual:")}getLocalPath(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a);return r.fetcher.getLocalPath(o,r)}async fetch(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a),l=await r.fetcher.fetch(o,r);return await this.ensureVirtualLink(t,l,r)}getLocatorFilename(t){return Eur.slugifyLocator(t)}async ensureVirtualLink(t,r,n){let a=r.packageFs.getRealPath(),o=n.project.configuration.get("virtualFolder"),l=this.getLocatorFilename(t),A=bur.VirtualFS.makeVirtualPath(o,l,a),f=new bur.AliasFS(A,{baseFs:r.packageFs,pathUtils:bur.ppath});return{...r,packageFs:f}}};cgt.VirtualFetcher=Sur});var dxn=H(ugt=>{"use strict";Object.defineProperty(ugt,"__esModule",{value:!0});ugt.VirtualResolver=void 0;var lgt=class e{static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};ugt.VirtualResolver=lgt;lgt.protocol="virtual:"});var wur=H(ggt=>{"use strict";Object.defineProperty(ggt,"__esModule",{value:!0});ggt.WorkspaceFetcher=void 0;var pxn=no(),fxn=Kfe(),Bur=class{supports(t){return!!t.reference.startsWith(fxn.WorkspaceResolver.protocol)}getLocalPath(t,r){return this.getWorkspace(t,r).cwd}async fetch(t,r){let n=this.getWorkspace(t,r).cwd;return{packageFs:new pxn.CwdFS(n),prefixPath:pxn.PortablePath.dot,localPath:n}}getWorkspace(t,r){return r.project.getWorkspaceByCwd(t.reference.slice(fxn.WorkspaceResolver.protocol.length))}};ggt.WorkspaceFetcher=Bur});var mxn=H(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});JK.RESOLVED_RC_FILE=void 0;JK.resolveRcFiles=aLo;JK.getValue=cLo;JK.getValueByTree=Nur;JK.getSource=lLo;var iLo=(e,t,r)=>{let n=[...e];return n.reverse(),n.findIndex(t,r)};function t5e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var oM;(function(e){e[e.Object=0]="Object",e[e.Array=1]="Array",e[e.Literal=2]="Literal",e[e.Undefined=3]="Undefined"})(oM||(oM={}));function Ixn(e){return typeof e>"u"?oM.Undefined:t5e(e)?oM.Object:Array.isArray(e)?oM.Array:oM.Literal}function Dur(e,t){return Object.hasOwn(e,t)}function sLo(e){return t5e(e)&&Dur(e,"onConflict")&&typeof e.onConflict=="string"}function oLo(e){if(typeof e>"u")return{onConflict:"default",value:e};if(!sLo(e))return{onConflict:"default",value:e};if(Dur(e,"value"))return e;let{onConflict:t,...r}=e;return{onConflict:t,value:r}}function hxn(e,t){let r=t5e(e)&&Dur(e,t)?e[t]:void 0;return oLo(r)}JK.RESOLVED_RC_FILE=Symbol();function gve(e,t){return[e,t,JK.RESOLVED_RC_FILE]}function kur(e){return Array.isArray(e)?e[2]===JK.RESOLVED_RC_FILE:!1}function Tur(e,t){if(t5e(e)){let r={};for(let n of Object.keys(e))r[n]=Tur(e[n],t);return gve(t,r)}return Array.isArray(e)?gve(t,e.map(r=>Tur(r,t))):gve(t,e)}function Rur(e,t,r,n,a){let o,l=[],A=a,f=0;for(let C=a-1;C>=n;--C){let[b,E]=e[C],{onConflict:N,value:B}=hxn(E,r),F=Ixn(B);if(F!==oM.Undefined){if(o??=F,F!==o||N==="hardReset"){f=A;break}if(F===oM.Literal)return gve(b,B);if(l.unshift([b,B]),N==="reset"){f=C;break}N==="extend"&&C===n&&(n=0),A=C}}if(typeof o>"u")return null;let I=l.map(([C])=>C).join(", ");switch(o){case oM.Array:return gve(I,new Array().concat(...l.map(([C,b])=>b.map(E=>Tur(E,C)))));case oM.Object:{let C=Object.assign({},...l.map(([,F])=>F)),b=Object.keys(C),E={},N=e.map(([F,Q])=>[F,hxn(Q,r).value]),B=iLo(N,([F,Q])=>{let X=Ixn(Q);return X!==oM.Object&&X!==oM.Undefined});if(B!==-1){let F=N.slice(B+1);for(let Q of b)E[Q]=Rur(F,t,Q,0,F.length)}else for(let F of b)E[F]=Rur(N,t,F,f,N.length);return gve(I,E)}default:throw new Error("Assertion failed: Non-extendable value type")}}function aLo(e){return Rur(e.map(([t,r])=>[t,{".":r}]),[],".",0,e.length)}function cLo(e){return kur(e)?e[1]:e}function Nur(e){let t=kur(e)?e[1]:e;if(Array.isArray(t))return t.map(r=>Nur(r));if(t5e(t)){let r={};for(let[n,a]of Object.entries(t))r[n]=Nur(a);return r}return t}function lLo(e){return kur(e)?e[0]:null}});var Agt=H(r5e=>{"use strict";Object.defineProperty(r5e,"__esModule",{value:!0});r5e.getDefaultGlobalFolder=uLo;r5e.getHomeFolder=_xn;r5e.isFolderInside=gLo;var i$=no(),Cxn=wt("os");function uLo(){if(process.platform==="win32"){let e=i$.npath.toPortablePath(process.env.LOCALAPPDATA||i$.npath.join((0,Cxn.homedir)(),"AppData","Local"));return i$.ppath.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let e=i$.npath.toPortablePath(process.env.XDG_DATA_HOME);return i$.ppath.resolve(e,"yarn/berry")}return i$.ppath.resolve(_xn(),".yarn/berry")}function _xn(){return i$.npath.toPortablePath((0,Cxn.homedir)()||"/usr/local/share")}function gLo(e,t){let r=i$.ppath.relative(t,e);return r&&!r.startsWith("..")&&!i$.ppath.isAbsolute(r)}});var Exn=H((W8l,bxn)=>{"use strict";var xur=wt("https"),Gur=wt("http"),{URL:yxn}=wt("url"),Fur=class extends Gur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200?r(null,l):(l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}},Zur=class extends xur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{if(a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200){let f=super.createConnection({...t,socket:l});r(null,f)}else l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}};bxn.exports={HttpProxyAgent:Fur,HttpsProxyAgent:Zur}});var o$=H((s$,dgt)=>{"use strict";Object.defineProperty(s$,"__esModule",{value:!0});var Sxn=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ALo(e){return Sxn.includes(e)}var dLo=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Sxn];function pLo(e){return dLo.includes(e)}var fLo=["null","undefined","string","number","bigint","boolean","symbol"];function ILo(e){return fLo.includes(e)}function Ave(e){return t=>typeof t===e}var{toString:vxn}=Object.prototype,n5e=e=>{let t=vxn.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&Xi.domElement(e))return"HTMLElement";if(pLo(t))return t},Xb=e=>t=>n5e(t)===e;function Xi(e){if(e===null)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Xi.observable(e))return"Observable";if(Xi.array(e))return"Array";if(Xi.buffer(e))return"Buffer";let t=n5e(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Xi.undefined=Ave("undefined");Xi.string=Ave("string");var hLo=Ave("number");Xi.number=e=>hLo(e)&&!Xi.nan(e);Xi.bigint=Ave("bigint");Xi.function_=Ave("function");Xi.null_=e=>e===null;Xi.class_=e=>Xi.function_(e)&&e.toString().startsWith("class ");Xi.boolean=e=>e===!0||e===!1;Xi.symbol=Ave("symbol");Xi.numericString=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e));Xi.array=(e,t)=>Array.isArray(e)?Xi.function_(t)?e.every(t):!0:!1;Xi.buffer=e=>{var t,r,n,a;return(a=(n=(r=(t=e)===null||t===void 0?void 0:t.constructor)===null||r===void 0?void 0:r.isBuffer)===null||n===void 0?void 0:n.call(r,e))!==null&&a!==void 0?a:!1};Xi.blob=e=>Xb("Blob")(e);Xi.nullOrUndefined=e=>Xi.null_(e)||Xi.undefined(e);Xi.object=e=>!Xi.null_(e)&&(typeof e=="object"||Xi.function_(e));Xi.iterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.iterator])};Xi.asyncIterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.asyncIterator])};Xi.generator=e=>{var t,r;return Xi.iterable(e)&&Xi.function_((t=e)===null||t===void 0?void 0:t.next)&&Xi.function_((r=e)===null||r===void 0?void 0:r.throw)};Xi.asyncGenerator=e=>Xi.asyncIterable(e)&&Xi.function_(e.next)&&Xi.function_(e.throw);Xi.nativePromise=e=>Xb("Promise")(e);var mLo=e=>{var t,r;return Xi.function_((t=e)===null||t===void 0?void 0:t.then)&&Xi.function_((r=e)===null||r===void 0?void 0:r.catch)};Xi.promise=e=>Xi.nativePromise(e)||mLo(e);Xi.generatorFunction=Xb("GeneratorFunction");Xi.asyncGeneratorFunction=e=>n5e(e)==="AsyncGeneratorFunction";Xi.asyncFunction=e=>n5e(e)==="AsyncFunction";Xi.boundFunction=e=>Xi.function_(e)&&!e.hasOwnProperty("prototype");Xi.regExp=Xb("RegExp");Xi.date=Xb("Date");Xi.error=Xb("Error");Xi.map=e=>Xb("Map")(e);Xi.set=e=>Xb("Set")(e);Xi.weakMap=e=>Xb("WeakMap")(e);Xi.weakSet=e=>Xb("WeakSet")(e);Xi.int8Array=Xb("Int8Array");Xi.uint8Array=Xb("Uint8Array");Xi.uint8ClampedArray=Xb("Uint8ClampedArray");Xi.int16Array=Xb("Int16Array");Xi.uint16Array=Xb("Uint16Array");Xi.int32Array=Xb("Int32Array");Xi.uint32Array=Xb("Uint32Array");Xi.float32Array=Xb("Float32Array");Xi.float64Array=Xb("Float64Array");Xi.bigInt64Array=Xb("BigInt64Array");Xi.bigUint64Array=Xb("BigUint64Array");Xi.arrayBuffer=Xb("ArrayBuffer");Xi.sharedArrayBuffer=Xb("SharedArrayBuffer");Xi.dataView=Xb("DataView");Xi.enumCase=(e,t)=>Object.values(t).includes(e);Xi.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype;Xi.urlInstance=e=>Xb("URL")(e);Xi.urlString=e=>{if(!Xi.string(e))return!1;try{return new URL(e),!0}catch{return!1}};Xi.truthy=e=>!!e;Xi.falsy=e=>!e;Xi.nan=e=>Number.isNaN(e);Xi.primitive=e=>Xi.null_(e)||ILo(typeof e);Xi.integer=e=>Number.isInteger(e);Xi.safeInteger=e=>Number.isSafeInteger(e);Xi.plainObject=e=>{if(vxn.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})};Xi.typedArray=e=>ALo(n5e(e));var CLo=e=>Xi.safeInteger(e)&&e>=0;Xi.arrayLike=e=>!Xi.nullOrUndefined(e)&&!Xi.function_(e)&&CLo(e.length);Xi.inRange=(e,t)=>{if(Xi.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(Xi.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};var _Lo=1,yLo=["innerHTML","ownerDocument","style","attributes","nodeValue"];Xi.domElement=e=>Xi.object(e)&&e.nodeType===_Lo&&Xi.string(e.nodeName)&&!Xi.plainObject(e)&&yLo.every(t=>t in e);Xi.observable=e=>{var t,r,n,a;return e?e===((r=(t=e)[Symbol.observable])===null||r===void 0?void 0:r.call(t))||e===((a=(n=e)["@@observable"])===null||a===void 0?void 0:a.call(n)):!1};Xi.nodeStream=e=>Xi.object(e)&&Xi.function_(e.pipe)&&!Xi.observable(e);Xi.infinite=e=>e===1/0||e===-1/0;var Bxn=e=>t=>Xi.integer(t)&&Math.abs(t%2)===e;Xi.evenInteger=Bxn(0);Xi.oddInteger=Bxn(1);Xi.emptyArray=e=>Xi.array(e)&&e.length===0;Xi.nonEmptyArray=e=>Xi.array(e)&&e.length>0;Xi.emptyString=e=>Xi.string(e)&&e.length===0;var bLo=e=>Xi.string(e)&&!/\S/.test(e);Xi.emptyStringOrWhitespace=e=>Xi.emptyString(e)||bLo(e);Xi.nonEmptyString=e=>Xi.string(e)&&e.length>0;Xi.nonEmptyStringAndNotWhitespace=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e);Xi.emptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length===0;Xi.nonEmptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length>0;Xi.emptySet=e=>Xi.set(e)&&e.size===0;Xi.nonEmptySet=e=>Xi.set(e)&&e.size>0;Xi.emptyMap=e=>Xi.map(e)&&e.size===0;Xi.nonEmptyMap=e=>Xi.map(e)&&e.size>0;Xi.propertyKey=e=>Xi.any([Xi.string,Xi.number,Xi.symbol],e);Xi.formData=e=>Xb("FormData")(e);Xi.urlSearchParams=e=>Xb("URLSearchParams")(e);var wxn=(e,t,r)=>{if(!Xi.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(r.length===0)throw new TypeError("Invalid number of values");return e.call(r,t)};Xi.any=(e,...t)=>(Xi.array(e)?e:[e]).some(n=>wxn(Array.prototype.some,n,t));Xi.all=(e,...t)=>wxn(Array.prototype.every,e,t);var Mu=(e,t,r,n={})=>{if(!e){let{multipleValues:a}=n,o=a?`received values of types ${[...new Set(r.map(l=>`\`${Xi(l)}\``))].join(", ")}`:`received value of type \`${Xi(r)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${o}.`)}};s$.assert={undefined:e=>Mu(Xi.undefined(e),"undefined",e),string:e=>Mu(Xi.string(e),"string",e),number:e=>Mu(Xi.number(e),"number",e),bigint:e=>Mu(Xi.bigint(e),"bigint",e),function_:e=>Mu(Xi.function_(e),"Function",e),null_:e=>Mu(Xi.null_(e),"null",e),class_:e=>Mu(Xi.class_(e),"Class",e),boolean:e=>Mu(Xi.boolean(e),"boolean",e),symbol:e=>Mu(Xi.symbol(e),"symbol",e),numericString:e=>Mu(Xi.numericString(e),"string with a number",e),array:(e,t)=>{Mu(Xi.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>Mu(Xi.buffer(e),"Buffer",e),blob:e=>Mu(Xi.blob(e),"Blob",e),nullOrUndefined:e=>Mu(Xi.nullOrUndefined(e),"null or undefined",e),object:e=>Mu(Xi.object(e),"Object",e),iterable:e=>Mu(Xi.iterable(e),"Iterable",e),asyncIterable:e=>Mu(Xi.asyncIterable(e),"AsyncIterable",e),generator:e=>Mu(Xi.generator(e),"Generator",e),asyncGenerator:e=>Mu(Xi.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>Mu(Xi.nativePromise(e),"native Promise",e),promise:e=>Mu(Xi.promise(e),"Promise",e),generatorFunction:e=>Mu(Xi.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>Mu(Xi.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>Mu(Xi.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>Mu(Xi.boundFunction(e),"Function",e),regExp:e=>Mu(Xi.regExp(e),"RegExp",e),date:e=>Mu(Xi.date(e),"Date",e),error:e=>Mu(Xi.error(e),"Error",e),map:e=>Mu(Xi.map(e),"Map",e),set:e=>Mu(Xi.set(e),"Set",e),weakMap:e=>Mu(Xi.weakMap(e),"WeakMap",e),weakSet:e=>Mu(Xi.weakSet(e),"WeakSet",e),int8Array:e=>Mu(Xi.int8Array(e),"Int8Array",e),uint8Array:e=>Mu(Xi.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>Mu(Xi.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>Mu(Xi.int16Array(e),"Int16Array",e),uint16Array:e=>Mu(Xi.uint16Array(e),"Uint16Array",e),int32Array:e=>Mu(Xi.int32Array(e),"Int32Array",e),uint32Array:e=>Mu(Xi.uint32Array(e),"Uint32Array",e),float32Array:e=>Mu(Xi.float32Array(e),"Float32Array",e),float64Array:e=>Mu(Xi.float64Array(e),"Float64Array",e),bigInt64Array:e=>Mu(Xi.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>Mu(Xi.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>Mu(Xi.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>Mu(Xi.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>Mu(Xi.dataView(e),"DataView",e),enumCase:(e,t)=>Mu(Xi.enumCase(e,t),"EnumCase",e),urlInstance:e=>Mu(Xi.urlInstance(e),"URL",e),urlString:e=>Mu(Xi.urlString(e),"string with a URL",e),truthy:e=>Mu(Xi.truthy(e),"truthy",e),falsy:e=>Mu(Xi.falsy(e),"falsy",e),nan:e=>Mu(Xi.nan(e),"NaN",e),primitive:e=>Mu(Xi.primitive(e),"primitive",e),integer:e=>Mu(Xi.integer(e),"integer",e),safeInteger:e=>Mu(Xi.safeInteger(e),"integer",e),plainObject:e=>Mu(Xi.plainObject(e),"plain object",e),typedArray:e=>Mu(Xi.typedArray(e),"TypedArray",e),arrayLike:e=>Mu(Xi.arrayLike(e),"array-like",e),domElement:e=>Mu(Xi.domElement(e),"HTMLElement",e),observable:e=>Mu(Xi.observable(e),"Observable",e),nodeStream:e=>Mu(Xi.nodeStream(e),"Node.js Stream",e),infinite:e=>Mu(Xi.infinite(e),"infinite number",e),emptyArray:e=>Mu(Xi.emptyArray(e),"empty array",e),nonEmptyArray:e=>Mu(Xi.nonEmptyArray(e),"non-empty array",e),emptyString:e=>Mu(Xi.emptyString(e),"empty string",e),emptyStringOrWhitespace:e=>Mu(Xi.emptyStringOrWhitespace(e),"empty string or whitespace",e),nonEmptyString:e=>Mu(Xi.nonEmptyString(e),"non-empty string",e),nonEmptyStringAndNotWhitespace:e=>Mu(Xi.nonEmptyStringAndNotWhitespace(e),"non-empty string and not whitespace",e),emptyObject:e=>Mu(Xi.emptyObject(e),"empty object",e),nonEmptyObject:e=>Mu(Xi.nonEmptyObject(e),"non-empty object",e),emptySet:e=>Mu(Xi.emptySet(e),"empty set",e),nonEmptySet:e=>Mu(Xi.nonEmptySet(e),"non-empty set",e),emptyMap:e=>Mu(Xi.emptyMap(e),"empty map",e),nonEmptyMap:e=>Mu(Xi.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>Mu(Xi.propertyKey(e),"PropertyKey",e),formData:e=>Mu(Xi.formData(e),"FormData",e),urlSearchParams:e=>Mu(Xi.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>Mu(Xi.evenInteger(e),"even integer",e),oddInteger:e=>Mu(Xi.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>Mu(Xi.directInstanceOf(e,t),"T",e),inRange:(e,t)=>Mu(Xi.inRange(e,t),"in range",e),any:(e,...t)=>Mu(Xi.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>Mu(Xi.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})};Object.defineProperties(Xi,{class:{value:Xi.class_},function:{value:Xi.function_},null:{value:Xi.null_}});Object.defineProperties(s$.assert,{class:{value:s$.assert.class_},function:{value:s$.assert.function_},null:{value:s$.assert.null_}});s$.default=Xi;dgt.exports=Xi;dgt.exports.default=Xi;dgt.exports.assert=s$.assert});var Txn=H((O8l,Lur)=>{"use strict";var pgt=class extends Error{constructor(t){super(t||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},fgt=class e{static fn(t){return(...r)=>new e((n,a,o)=>{r.push(o),t(...r).then(n,a)})}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,n)=>{this._reject=n;let a=A=>{(!this._isCanceled||!l.shouldReject)&&(this._isPending=!1,r(A))},o=A=>{this._isPending=!1,n(A)},l=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(l,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),t(a,o,l)})}then(t,r){return this._promise.then(t,r)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(t){if(!(!this._isPending||this._isCanceled)){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r);return}this._rejectOnCancel&&this._reject(new pgt(t))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(fgt.prototype,Promise.prototype);Lur.exports=fgt;Lur.exports.CancelError=pgt});var Rxn=H((Pur,Wur)=>{"use strict";Object.defineProperty(Pur,"__esModule",{value:!0});function ELo(e){return e.encrypted}var Vur=(e,t)=>{let r;typeof t=="function"?r={connect:t}:r=t;let n=typeof r.connect=="function",a=typeof r.secureConnect=="function",o=typeof r.close=="function",l=()=>{n&&r.connect(),ELo(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),o&&e.once("close",r.close)};e.writable&&!e.connecting?l():e.connecting?e.once("connect",l):e.destroyed&&o&&r.close(e._hadError)};Pur.default=Vur;Wur.exports=Vur;Wur.exports.default=Vur});var Nxn=H((Mur,Hur)=>{"use strict";Object.defineProperty(Mur,"__esModule",{value:!0});var SLo=Rxn(),vLo=wt("util"),BLo=Number(process.versions.node.split(".")[0]),Our=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let r=A=>{let f=A.emit.bind(A);A.emit=(I,...C)=>(I==="error"&&(t.error=Date.now(),t.phases.total=t.error-t.start,A.emit=f),f(I,...C))};r(e);let n=()=>{t.abort=Date.now(),(!t.response||BLo>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener("abort",n);let a=A=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,vLo.types.isProxy(A))return;let f=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};A.prependOnceListener("lookup",f),SLo.default(A,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(A.removeListener("lookup",f),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?a(e.socket):e.prependOnceListener("socket",a);let o=()=>{var A;t.upload=Date.now(),t.phases.request=t.upload-((A=t.secureConnect)!==null&&A!==void 0?A:t.connect)};return(typeof e.writableFinished=="boolean"?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?o():e.prependOnceListener("finish",o),e.prependOnceListener("response",A=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,A.timings=t,r(A),A.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),A.prependOnceListener("aborted",n)}),t};Mur.default=Our;Hur.exports=Our;Hur.exports.default=Our});var Lxn=H((M8l,Xur)=>{"use strict";var{V4MAPPED:wLo,ADDRCONFIG:TLo,ALL:Zxn,promises:{Resolver:Dxn},lookup:RLo}=wt("dns"),{promisify:Yur}=wt("util"),NLo=wt("os"),dve=Symbol("cacheableLookupCreateConnection"),Qur=Symbol("cacheableLookupInstance"),kxn=Symbol("expires"),DLo=typeof Zxn=="number",xxn=e=>{if(!(e&&typeof e.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},kLo=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},Gxn=()=>{let e=!1,t=!1;for(let r of Object.values(NLo.networkInterfaces()))for(let n of r)if(!n.internal&&(n.family==="IPv6"?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},xLo=e=>Symbol.iterator in e,Fxn={ttl:!0},GLo={all:!0},Igt=class{constructor({cache:t=new Map,maxTtl:r=1/0,fallbackDuration:n=3600,errorTtl:a=.15,resolver:o=new Dxn,lookup:l=RLo}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=t,this._resolver=o,this._dnsLookup=Yur(l),this._resolver instanceof Dxn?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yur(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yur(this._resolver.resolve6.bind(this._resolver))),this._iface=Gxn(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(t){this.clear(),this._resolver.setServers(t)}get servers(){return this._resolver.getServers()}lookup(t,r,n){if(typeof r=="function"?(n=r,r={}):typeof r=="number"&&(r={family:r}),!n)throw new Error("Callback must be a function.");this.lookupAsync(t,r).then(a=>{r.all?n(null,a):n(null,a.address,a.family,a.expires,a.ttl)},n)}async lookupAsync(t,r={}){typeof r=="number"&&(r={family:r});let n=await this.query(t);if(r.family===6){let a=n.filter(o=>o.family===6);r.hints&wLo&&(DLo&&r.hints&Zxn||a.length===0)?kLo(n):n=a}else r.family===4&&(n=n.filter(a=>a.family===4));if(r.hints&TLo){let{_iface:a}=this;n=n.filter(o=>o.family===6?a.has6:a.has4)}if(n.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${t}`);throw a.code="ENOTFOUND",a.hostname=t,a}return r.all?n:n[0]}async query(t){let r=await this._cache.get(t);if(!r){let n=this._pending[t];if(n)r=await n;else{let a=this.queryAndCache(t);this._pending[t]=a;try{r=await a}finally{delete this._pending[t]}}}return r=r.map(n=>({...n})),r}async _resolve(t){let r=async I=>{try{return await I}catch(C){if(C.code==="ENODATA"||C.code==="ENOTFOUND")return[];throw C}},[n,a]=await Promise.all([this._resolve4(t,Fxn),this._resolve6(t,Fxn)].map(I=>r(I))),o=0,l=0,A=0,f=Date.now();for(let I of n)I.family=4,I.expires=f+I.ttl*1e3,o=Math.max(o,I.ttl);for(let I of a)I.family=6,I.expires=f+I.ttl*1e3,l=Math.max(l,I.ttl);return n.length>0?a.length>0?A=Math.min(o,l):A=o:A=l,{entries:[...n,...a],cacheTtl:A}}async _lookup(t){try{return{entries:await this._dnsLookup(t,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(t,r,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,r[kxn]=Date.now()+n;try{await this._cache.set(t,r,n)}catch(a){this.lookupAsync=async()=>{let o=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw o.cause=a,o}}xLo(this._cache)&&this._tick(n)}}async queryAndCache(t){if(this._hostnamesToFallback.has(t))return this._dnsLookup(t,GLo);let r=await this._resolve(t);r.entries.length===0&&this._fallback&&(r=await this._lookup(t),r.entries.length!==0&&this._hostnamesToFallback.add(t));let n=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(t,r.entries,n),r.entries}_tick(t){let r=this._nextRemovalTime;(!r||t{this._nextRemovalTime=!1;let n=1/0,a=Date.now();for(let[o,l]of this._cache){let A=l[kxn];a>=A?this._cache.delete(o):A("lookup"in r||(r.lookup=this.lookup),t[dve](r,n))}uninstall(t){if(xxn(t),t[dve]){if(t[Qur]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");t.createConnection=t[dve],delete t[dve],delete t[Qur]}}updateInterfaceInfo(){let{_iface:t}=this;this._iface=Gxn(),(t.has4&&!this._iface.has4||t.has6&&!this._iface.has6)&&this._cache.clear()}clear(t){if(t){this._cache.delete(t);return}this._cache.clear()}};Xur.exports=Igt;Xur.exports.default=Igt});var Wxn=H((H8l,Pxn)=>{"use strict";var FLo="text/plain",ZLo="us-ascii",Vxn=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),LLo=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===ZLo)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length!==0||f&&f!==FLo)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`},VLo=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return LLo(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname&&(a.pathname=a.pathname.replace(/(?0){let l=a.pathname.split("/"),A=l[l.length-1];Vxn(A,t.removeDirectoryIndex)&&(l=l.slice(0,l.length-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])Vxn(l,t.removeQueryParameters)&&a.searchParams.delete(l);t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};Pxn.exports=VLo});var Hxn=H((Y8l,Mxn)=>{Mxn.exports=Oxn;function Oxn(e,t){if(e&&t)return Oxn(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),a=0;a{var Yxn=Hxn();Jur.exports=Yxn(hgt);Jur.exports.strict=Yxn(Qxn);hgt.proto=hgt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return hgt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Qxn(this)},configurable:!0})});function hgt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function Qxn(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var Uur=H((X8l,Jxn)=>{var PLo=mgt(),WLo=function(){},OLo=function(e){return e.setHeader&&typeof e.abort=="function"},MLo=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},Xxn=function(e,t,r){if(typeof t=="function")return Xxn(e,null,t);t||(t={}),r=PLo(r||WLo);var n=e._writableState,a=e._readableState,o=t.readable||t.readable!==!1&&e.readable,l=t.writable||t.writable!==!1&&e.writable,A=!1,f=function(){e.writable||I()},I=function(){l=!1,o||r.call(e)},C=function(){o=!1,l||r.call(e)},b=function(Q){r.call(e,Q?new Error("exited with error code: "+Q):null)},E=function(Q){r.call(e,Q)},N=function(){process.nextTick(B)},B=function(){if(!A){if(o&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(l&&!(n&&n.ended&&!n.destroyed))return r.call(e,new Error("premature close"))}},F=function(){e.req.on("finish",I)};return OLo(e)?(e.on("complete",I),e.on("abort",N),e.req?F():e.on("request",F)):l&&!n&&(e.on("end",f),e.on("close",f)),MLo(e)&&e.on("exit",b),e.on("end",C),e.on("finish",I),t.error!==!1&&e.on("error",E),e.on("close",N),function(){A=!0,e.removeListener("complete",I),e.removeListener("abort",N),e.removeListener("request",F),e.req&&e.req.removeListener("finish",I),e.removeListener("end",f),e.removeListener("close",f),e.removeListener("finish",I),e.removeListener("exit",b),e.removeListener("end",C),e.removeListener("error",E),e.removeListener("close",N)}};Jxn.exports=Xxn});var jxn=H((J8l,Kxn)=>{var HLo=mgt(),YLo=Uur(),Cgt;try{Cgt=wt("fs")}catch{}var i5e=function(){},QLo=/^v?\.0/.test(process.version),_gt=function(e){return typeof e=="function"},XLo=function(e){return!QLo||!Cgt?!1:(e instanceof(Cgt.ReadStream||i5e)||e instanceof(Cgt.WriteStream||i5e))&&_gt(e.close)},JLo=function(e){return e.setHeader&&_gt(e.abort)},ULo=function(e,t,r,n){n=HLo(n);var a=!1;e.on("close",function(){a=!0}),YLo(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,XLo(e))return e.close(i5e);if(JLo(e))return e.abort();if(_gt(e.destroy))return e.destroy();n(l||new Error("stream was destroyed"))}}},Uxn=function(e){e()},KLo=function(e,t){return e.pipe(t)},jLo=function(){var e=Array.prototype.slice.call(arguments),t=_gt(e[e.length-1]||i5e)&&e.pop()||i5e;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var r,n=e.map(function(a,o){var l=o0;return ULo(a,l,A,function(f){r||(r=f),f&&n.forEach(Uxn),!l&&(n.forEach(Uxn),t(r))})});return e.reduce(KLo)};Kxn.exports=jLo});var qxn=H((U8l,zxn)=>{"use strict";var{PassThrough:zLo}=wt("stream");zxn.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",a=!1;t?a=!(r||n):r=r||"utf8",n&&(r=null);let o=new zLo({objectMode:a});r&&o.setEncoding(r);let l=0,A=[];return o.on("data",f=>{A.push(f),a?l=A.length:l+=f.length}),o.getBufferedValue=()=>t?A:n?Buffer.concat(A,l):A.join(""),o.getBufferedLength=()=>l,o}});var $xn=H((K8l,pve)=>{"use strict";var{constants:qLo}=wt("buffer"),$Lo=jxn(),e9o=qxn(),ygt=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function bgt(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n;return await new Promise((a,o)=>{let l=A=>{A&&n.getBufferedLength()<=qLo.MAX_LENGTH&&(A.bufferedData=n.getBufferedValue()),o(A)};n=$Lo(e,e9o(t),A=>{if(A){l(A);return}a()}),n.on("data",()=>{n.getBufferedLength()>r&&l(new ygt)})}),n.getBufferedValue()}pve.exports=bgt;pve.exports.default=bgt;pve.exports.buffer=(e,t)=>bgt(e,{...t,encoding:"buffer"});pve.exports.array=(e,t)=>bgt(e,{...t,array:!0});pve.exports.MaxBufferError=ygt});var jur=H((z8l,eGn)=>{"use strict";var t9o=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r9o=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),n9o=new Set([500,502,503,504]),i9o={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},s9o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function zfe(e){let t=parseInt(e,10);return isFinite(t)?t:0}function o9o(e){return e?n9o.has(e.status):!0}function Kur(e){let t={};if(!e)return t;let r=e.trim().split(/,/);for(let n of r){let[a,o]=n.split(/=/,2);t[a.trim()]=o===void 0?!0:o.trim().replace(/^"|"$/g,"")}return t}function a9o(e){let t=[];for(let r in e){let n=e[r];t.push(n===!0?r:r+"="+n)}if(t.length)return t.join(", ")}eGn.exports=class{constructor(t,r,{shared:n,cacheHeuristic:a,immutableMinTimeToLive:o,ignoreCargoCult:l,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=n!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=o!==void 0?o:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=Kur(r.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=r.headers.vary?t.headers:null,this._reqcc=Kur(t.headers["cache-control"]),l&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":a9o(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&r9o.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||t9o.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(t){if(!t||!t.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(t){this._assertRequestHasHeaders(t);let r=Kur(t.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(t.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(t,!1)}_requestMatches(t,r){return(!this._url||this._url===t.url)&&this._host===t.headers.host&&(!t.method||this._method===t.method||r&&t.method==="HEAD")&&this._varyMatches(t)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(t){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of r)if(t.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(t){let r={};for(let n in t)i9o[n]||(r[n]=t[n]);if(t.connection){let n=t.connection.trim().split(/\s*,\s*/);for(let a of n)delete r[a]}if(r.warning){let n=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));n.length?r.warning=n.join(",").trim():delete r.warning}return r}responseHeaders(){let t=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(t.warning=(t.warning?`${t.warning}, `:"")+'113 - "rfc7234 5.5.4"'),t.age=`${Math.round(r)}`,t.date=new Date(this.now()).toUTCString(),t}date(){let t=Date.parse(this._resHeaders.date);return isFinite(t)?t:this._responseTime}age(){let t=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return t+r}_ageValue(){return zfe(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return zfe(this._rescc["s-maxage"])}if(this._rescc["max-age"])return zfe(this._rescc["max-age"]);let t=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||nn)return Math.max(t,(r-n)/1e3*this._cacheHeuristic)}return t}timeToLive(){let t=this.maxAge()-this.age(),r=t+zfe(this._rescc["stale-if-error"]),n=t+zfe(this._rescc["stale-while-revalidate"]);return Math.max(0,t,r,n)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+zfe(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+zfe(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(t){return new this(void 0,void 0,{_fromObject:t})}_fromObject(t){if(this._responseTime)throw Error("Reinitialized");if(!t||t.v!==1)throw Error("Invalid serialization");this._responseTime=t.t,this._isShared=t.sh,this._cacheHeuristic=t.ch,this._immutableMinTtl=t.imm!==void 0?t.imm:24*3600*1e3,this._status=t.st,this._resHeaders=t.resh,this._rescc=t.rescc,this._method=t.m,this._url=t.u,this._host=t.h,this._noAuthorization=t.a,this._reqHeaders=t.reqh,this._reqcc=t.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(t){this._assertRequestHasHeaders(t);let r=this._copyWithoutHopByHopHeaders(t.headers);if(delete r["if-range"],!this._requestMatches(t,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(o=>!/^\s*W\//.test(o));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(t,r){if(this._assertRequestHasHeaders(t),this._useStaleIfError()&&o9o(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let n=!1;if(r.status!==void 0&&r.status!=304?n=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?n=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(n=!0),!n)return{policy:new this.constructor(t,r),modified:r.status!=304,matches:!1};let a={};for(let l in this._resHeaders)a[l]=l in r.headers&&!s9o[l]?r.headers[l]:this._resHeaders[l];let o=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(t,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Egt=H((q8l,tGn)=>{"use strict";tGn.exports=e=>{let t={};for(let[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}});var nGn=H(($8l,rGn)=>{"use strict";var c9o=wt("stream").Readable,l9o=Egt(),zur=class extends c9o{constructor(t,r,n,a){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=l9o(r),this.body=n,this.url=a}_read(){this.push(this.body),this.push(null)}};rGn.exports=zur});var sGn=H((ejl,iGn)=>{"use strict";var u9o=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];iGn.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(u9o));for(let n of r)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var aGn=H((tjl,oGn)=>{"use strict";var g9o=wt("stream").PassThrough,A9o=sGn(),d9o=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new g9o;return A9o(e,t),e.pipe(t)};oGn.exports=d9o});var cGn=H(qur=>{qur.stringify=function e(t){if(typeof t>"u")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var r="",n=Array.isArray(t);r=n?"[":"{";var a=!0;for(var o in t){var l=typeof t[o]=="function"||!n&&typeof t[o]>"u";Object.hasOwnProperty.call(t,o)&&!l&&(a||(r+=","),a=!1,n?t[o]==null?r+="null":r+=e(t[o]):t[o]!==void 0&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}",r}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t>"u"?"null":JSON.stringify(t)};qur.parse=function(e){return JSON.parse(e,function(t,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var AGn=H((njl,gGn)=>{"use strict";var p9o=wt("events"),lGn=cGn(),f9o=e=>{let t={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(e.adapter||e.uri){let r=e.adapter||/^[^:+]*/.exec(e.uri)[0];return new(wt(t[r]))(e)}return new Map},uGn=["sqlite","postgres","mysql","mongo","redis","tiered"],$ur=class extends p9o{constructor(t,{emitErrors:r=!0,...n}={}){if(super(),this.opts={namespace:"keyv",serialize:lGn.stringify,deserialize:lGn.parse,...typeof t=="string"?{uri:t}:t,...n},!this.opts.store){let o={...this.opts};this.opts.store=f9o(o)}if(this.opts.compression){let o=this.opts.compression;this.opts.serialize=o.serialize.bind(o),this.opts.deserialize=o.deserialize.bind(o)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace;let a=o=>async function*(){for await(let[l,A]of typeof o=="function"?o(this.opts.store.namespace):o){let f=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!l.includes(this.opts.store.namespace))){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(l);continue}yield[this._getKeyUnprefix(l),f.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return uGn.includes(this.opts.store.opts.dialect)||uGn.findIndex(t=>this.opts.store.opts.url.includes(t))>=0}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}_getKeyPrefixArray(t){return t.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(t){return t.split(":").splice(1).join(":")}get(t,r){let{store:n}=this.opts,a=Array.isArray(t),o=a?this._getKeyPrefixArray(t):this._getKeyPrefix(t);if(a&&n.getMany===void 0){let l=[];for(let A of o)l.push(Promise.resolve().then(()=>n.get(A)).then(f=>typeof f=="string"?this.opts.deserialize(f):this.opts.compression?this.opts.deserialize(f):f).then(f=>{if(f!=null)return typeof f.expires=="number"&&Date.now()>f.expires?this.delete(A).then(()=>{}):r&&r.raw?f:f.value}));return Promise.allSettled(l).then(A=>{let f=[];for(let I of A)f.push(I.value);return f})}return Promise.resolve().then(()=>a?n.getMany(o):n.get(o)).then(l=>typeof l=="string"?this.opts.deserialize(l):this.opts.compression?this.opts.deserialize(l):l).then(l=>{if(l!=null)return a?l.map((A,f)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(t[f]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof l.expires=="number"&&Date.now()>l.expires?this.delete(t).then(()=>{}):r&&r.raw?l:l.value})}set(t,r,n){let a=this._getKeyPrefix(t);typeof n>"u"&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:o}=this.opts;return Promise.resolve().then(()=>{let l=typeof n=="number"?Date.now()+n:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:l},this.opts.serialize(r)}).then(l=>o.set(a,l,n)).then(()=>!0)}delete(t){let{store:r}=this.opts;if(Array.isArray(t)){let a=this._getKeyPrefixArray(t);if(r.deleteMany===void 0){let o=[];for(let l of a)o.push(r.delete(l));return Promise.allSettled(o).then(l=>l.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let n=this._getKeyPrefix(t);return Promise.resolve().then(()=>r.delete(n))}clear(){let{store:t}=this.opts;return Promise.resolve().then(()=>t.clear())}has(t){let r=this._getKeyPrefix(t),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has=="function"?n.has(r):await n.get(r)!==void 0)}disconnect(){let{store:t}=this.opts;if(typeof t.disconnect=="function")return t.disconnect()}};gGn.exports=$ur});var fGn=H((sjl,pGn)=>{"use strict";var I9o=wt("events"),Sgt=wt("url"),h9o=Wxn(),m9o=$xn(),egr=jur(),dGn=nGn(),C9o=Egt(),_9o=aGn(),y9o=AGn(),s5e=class e{constructor(t,r){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new y9o({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(r,n)=>{let a;if(typeof r=="string")a=tgr(Sgt.parse(r)),r={};else if(r instanceof Sgt.URL)a=tgr(Sgt.parse(r.toString())),r={};else{let[b,...E]=(r.path||"").split("?"),N=E.length>0?`?${E.join("?")}`:"";a=tgr({...r,pathname:b,search:N})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...b9o(a)},r.headers=C9o(r.headers);let o=new I9o,l=h9o(Sgt.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${l}`,f=!1,I=!1,C=b=>{I=!0;let E=!1,N,B=new Promise(Q=>{N=()=>{E||(E=!0,Q())}}),F=Q=>{if(f&&!b.forceRefresh){Q.status=Q.statusCode;let ae=egr.fromObject(f.cachePolicy).revalidatedPolicy(b,Q);if(!ae.modified){let ne=ae.policy.responseHeaders();Q=new dGn(f.statusCode,ne,f.body,f.url),Q.cachePolicy=ae.policy,Q.fromCache=!0}}Q.fromCache||(Q.cachePolicy=new egr(b,Q,b),Q.fromCache=!1);let X;b.cache&&Q.cachePolicy.storable()?(X=_9o(Q),(async()=>{try{let ae=m9o.buffer(Q);if(await Promise.race([B,new Promise(ue=>Q.once("end",ue))]),E)return;let ne=await ae,ce={cachePolicy:Q.cachePolicy.toObject(),url:Q.url,statusCode:Q.fromCache?f.statusCode:Q.statusCode,body:ne},fe=b.strictTtl?Q.cachePolicy.timeToLive():void 0;b.maxTtl&&(fe=fe?Math.min(fe,b.maxTtl):b.maxTtl),await this.cache.set(A,ce,fe)}catch(ae){o.emit("error",new e.CacheError(ae))}})()):b.cache&&f&&(async()=>{try{await this.cache.delete(A)}catch(ae){o.emit("error",new e.CacheError(ae))}})(),o.emit("response",X||Q),typeof n=="function"&&n(X||Q)};try{let Q=t(b,F);Q.once("error",N),Q.once("abort",N),o.emit("request",Q)}catch(Q){o.emit("error",new e.RequestError(Q))}};return(async()=>{let b=async N=>{await Promise.resolve();let B=N.cache?await this.cache.get(A):void 0;if(typeof B>"u")return C(N);let F=egr.fromObject(B.cachePolicy);if(F.satisfiesWithoutRevalidation(N)&&!N.forceRefresh){let Q=F.responseHeaders(),X=new dGn(B.statusCode,Q,B.body,B.url);X.cachePolicy=F,X.fromCache=!0,o.emit("response",X),typeof n=="function"&&n(X)}else f=B,N.headers=F.revalidationHeaders(N),C(N)},E=N=>o.emit("error",new e.CacheError(N));this.cache.once("error",E),o.on("response",()=>this.cache.removeListener("error",E));try{await b(r)}catch(N){r.automaticFailover&&!I&&C(r),o.emit("error",new e.CacheError(N))}})(),o}}};function b9o(e){let t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function tgr(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}s5e.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};s5e.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};pGn.exports=s5e});var hGn=H((cjl,IGn)=>{"use strict";var E9o=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];IGn.exports=(e,t)=>{if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(E9o)),n={};for(let a of r)a in t||(n[a]={get(){let o=e[a];return typeof o=="function"?o.bind(e):o},set(o){e[a]=o},enumerable:!0,configurable:!1});return Object.defineProperties(t,n),e.once("aborted",()=>{t.destroy(),t.emit("aborted")}),e.once("close",()=>{e.complete&&t.readable?t.once("end",()=>{t.emit("close")}):t.emit("close")}),t}});var CGn=H((ljl,mGn)=>{"use strict";var{Transform:S9o,PassThrough:v9o}=wt("stream"),rgr=wt("zlib"),B9o=hGn();mGn.exports=e=>{let t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;let r=t==="br";if(r&&typeof rgr.createBrotliDecompress!="function")return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;let n=!0,a=new S9o({transform(A,f,I){n=!1,I(null,A)},flush(A){A()}}),o=new v9o({autoDestroy:!1,destroy(A,f){e.destroy(),f(A)}}),l=r?rgr.createBrotliDecompress():rgr.createUnzip();return l.once("error",A=>{if(n&&!e.readable){o.end();return}o.destroy(A)}),B9o(e,o),e.pipe(a).pipe(l).pipe(o),o}});var igr=H((ujl,_Gn)=>{"use strict";var ngr=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){if(this.cache.set(t,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[n,a]of this.oldCache.entries())this.onEviction(n,a);this.oldCache=this.cache,this.cache=new Map}}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){let r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache)yield t;for(let t of this.oldCache){let[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}};_Gn.exports=ngr});var ogr=H((gjl,SGn)=>{"use strict";var w9o=wt("events"),T9o=wt("tls"),R9o=wt("http2"),N9o=igr(),wZ=Symbol("currentStreamsCount"),yGn=Symbol("request"),aM=Symbol("cachedOriginSet"),fve=Symbol("gracefullyClosing"),D9o=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],k9o=(e,t,r)=>{let n=0,a=e.length;for(;n>>1;r(e[o],t)?n=o+1:a=o}return n},x9o=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,sgr=(e,t)=>{for(let r of e)r[aM].lengtht[aM].includes(n))&&r[wZ]+t[wZ]<=t.remoteSettings.maxConcurrentStreams&&EGn(r)},G9o=(e,t)=>{for(let r of e)t[aM].lengthr[aM].includes(n))&&t[wZ]+r[wZ]<=r.remoteSettings.maxConcurrentStreams&&EGn(t)},bGn=({agent:e,isFree:t})=>{let r={};for(let n in e.sessions){let o=e.sessions[n].filter(l=>{let A=l[qfe.kCurrentStreamsCount]{e[fve]=!0,e[wZ]===0&&e.close()},qfe=class e extends w9o{constructor({timeout:t=6e4,maxSessions:r=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=t,this.maxSessions=r,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new N9o({maxSize:a})}static normalizeOrigin(t,r){return typeof t=="string"&&(t=new URL(t)),r&&t.hostname!==r&&(t.hostname=r),t.origin}normalizeOptions(t){let r="";if(t)for(let n of D9o)t[n]&&(r+=`:${t[n]}`);return r}_tryToCreateNewSession(t,r){if(!(t in this.queue)||!(r in this.queue[t]))return;let n=this.queue[t][r];this._sessionsCount{Array.isArray(n)?(n=[...n],a()):n=[{resolve:a,reject:o}];let l=this.normalizeOptions(r),A=e.normalizeOrigin(t,r&&r.servername);if(A===void 0){for(let{reject:C}of n)C(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(l in this.sessions){let C=this.sessions[l],b=-1,E=-1,N;for(let B of C){let F=B.remoteSettings.maxConcurrentStreams;if(F=F||B[fve]||B.destroyed)continue;N||(b=F),Q>E&&(N=B,E=Q)}}if(N){if(n.length!==1){for(let{reject:B}of n){let F=new Error(`Expected the length of listeners to be 1, got ${n.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return}n[0].resolve(N);return}}if(l in this.queue){if(A in this.queue[l]){this.queue[l][A].listeners.push(...n),this._tryToCreateNewSession(l,A);return}}else this.queue[l]={};let f=()=>{l in this.queue&&this.queue[l][A]===I&&(delete this.queue[l][A],Object.keys(this.queue[l]).length===0&&delete this.queue[l])},I=()=>{let C=`${A}:${l}`,b=!1;try{let E=R9o.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(C),...r});E[wZ]=0,E[fve]=!1;let N=()=>E[wZ]{this.tlsSessionCache.set(C,Q)}),E.once("error",Q=>{for(let{reject:X}of n)X(Q);this.tlsSessionCache.delete(C)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(b){B&&this._freeSessionsCount--,this._sessionsCount--;let Q=this.sessions[l];Q.splice(Q.indexOf(E),1),Q.length===0&&delete this.sessions[l]}else{let Q=new Error("Session closed without receiving a SETTINGS frame");Q.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:X}of n)X(Q);f()}this._tryToCreateNewSession(l,A)});let F=()=>{if(!(!(l in this.queue)||!N())){for(let Q of E[aM])if(Q in this.queue[l]){let{listeners:X}=this.queue[l][Q];for(;X.length!==0&&N();)X.shift().resolve(E);let ae=this.queue[l];if(ae[Q].listeners.length===0&&(delete ae[Q],Object.keys(ae).length===0)){delete this.queue[l];break}if(!N())break}}};E.on("origin",()=>{E[aM]=E.originSet,N()&&(F(),sgr(this.sessions[l],E))}),E.once("remoteSettings",()=>{if(E.ref(),E.unref(),this._sessionsCount++,I.destroyed){let Q=new Error("Agent has been destroyed");for(let X of n)X.reject(Q);E.destroy();return}E[aM]=E.originSet;{let Q=this.sessions;if(l in Q){let X=Q[l];X.splice(k9o(X,E,x9o),0,E)}else Q[l]=[E]}this._freeSessionsCount+=1,b=!0,this.emit("session",E),F(),f(),E[wZ]===0&&this._freeSessionsCount>this.maxFreeSessions&&E.close(),n.length!==0&&(this.getSession(A,r,n),n.length=0),E.on("remoteSettings",()=>{F(),sgr(this.sessions[l],E)})}),E[yGn]=E.request,E.request=(Q,X)=>{if(E[fve])throw new Error("The session is gracefully closing. No new streams are allowed.");let ae=E[yGn](Q,X);return E.ref(),++E[wZ],E[wZ]===E.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,ae.once("close",()=>{if(B=N(),--E[wZ],!E.destroyed&&!E.closed&&(G9o(this.sessions[l],E),N()&&!E.closed)){B||(this._freeSessionsCount++,B=!0);let ne=E[wZ]===0;ne&&E.unref(),ne&&(this._freeSessionsCount>this.maxFreeSessions||E[fve])?E.close():(sgr(this.sessions[l],E),F())}}),ae}}catch(E){for(let N of n)N.reject(E);f()}};I.listeners=n,I.completed=!1,I.destroyed=!1,this.queue[l][A]=I,this._tryToCreateNewSession(l,A)})}request(t,r,n,a){return new Promise((o,l)=>{this.getSession(t,r,[{reject:l,resolve:A=>{try{o(A.request(n,a))}catch(f){l(f)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let n=t.port||443,a=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=a),T9o.connect(n,a,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[wZ]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let n of r)n.destroy(t);for(let r of Object.values(this.queue))for(let n of Object.values(r))n.destroyed=!0;this.queue={}}get freeSessions(){return bGn({agent:this,isFree:!0})}get busySessions(){return bGn({agent:this,isFree:!1})}};qfe.kCurrentStreamsCount=wZ;qfe.kGracefullyClosing=fve;SGn.exports={Agent:qfe,globalAgent:new qfe}});var cgr=H((Ajl,vGn)=>{"use strict";var{Readable:F9o}=wt("stream"),agr=class extends F9o{constructor(t,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};vGn.exports=agr});var lgr=H((djl,BGn)=>{"use strict";BGn.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var TGn=H((pjl,wGn)=>{"use strict";wGn.exports=(e,t,r)=>{for(let n of r)e.on(n,(...a)=>t.emit(n,...a))}});var NGn=H((fjl,RGn)=>{"use strict";RGn.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var kGn=H((hjl,DGn)=>{"use strict";var Ive=(e,t,r)=>{DGn.exports[t]=class extends e{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${t}]`,this.code=t}}};Ive(TypeError,"ERR_INVALID_ARG_TYPE",e=>{let t=e[0].includes(".")?"property":"argument",r=e[1],n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`});Ive(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`);Ive(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`);Ive(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`);Ive(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`);Ive(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)});var pgr=H((mjl,PGn)=>{"use strict";var Z9o=wt("http2"),{Writable:L9o}=wt("stream"),{Agent:xGn,globalAgent:V9o}=ogr(),P9o=cgr(),W9o=lgr(),O9o=TGn(),M9o=NGn(),{ERR_INVALID_ARG_TYPE:ugr,ERR_INVALID_PROTOCOL:H9o,ERR_HTTP_HEADERS_SENT:GGn,ERR_INVALID_HTTP_TOKEN:Y9o,ERR_HTTP_INVALID_HEADER_VALUE:Q9o,ERR_INVALID_CHAR:X9o}=kGn(),{HTTP2_HEADER_STATUS:FGn,HTTP2_HEADER_METHOD:ZGn,HTTP2_HEADER_PATH:LGn,HTTP2_METHOD_CONNECT:J9o}=Z9o.constants,dG=Symbol("headers"),ggr=Symbol("origin"),Agr=Symbol("session"),VGn=Symbol("options"),vgt=Symbol("flushedHeaders"),o5e=Symbol("jobs"),U9o=/^[\^`\-\w!#$%&*+.|~]+$/,K9o=/[^\t\u0020-\u007E\u0080-\u00FF]/,dgr=class extends L9o{constructor(t,r,n){super({autoDestroy:!1});let a=typeof t=="string"||t instanceof URL;if(a&&(t=W9o(t instanceof URL?t:new URL(t))),typeof r=="function"||r===void 0?(n=r,r=a?t:{...t}):r={...t,...r},r.h2session)this[Agr]=r.h2session;else if(r.agent===!1)this.agent=new xGn({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new xGn({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=V9o;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ugr("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new H9o(r.protocol,"https:");let o=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,l=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[dG]=Object.create(null),this[o5e]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[f,I]of Object.entries(r.headers))this.setHeader(f,I);r.auth&&!("authorization"in this[dG])&&(this[dG].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[VGn]=r,o===443?(this[ggr]=`https://${l}`,":authority"in this[dG]||(this[dG][":authority"]=l)):(this[ggr]=`https://${l}:${o}`,":authority"in this[dG]||(this[dG][":authority"]=`${l}:${o}`)),A&&this.setTimeout(A),n&&this.once("response",n),this[vgt]=!1}get method(){return this[dG][ZGn]}set method(t){t&&(this[dG][ZGn]=t.toUpperCase())}get path(){return this[dG][LGn]}set path(t){t&&(this[dG][LGn]=t)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(t,r,n){if(this._mustNotHaveABody){n(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(t,r,n);this._request?a():this[o5e].push(a)}_final(t){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){t();return}this._request.end(t)};this._request?r():this[o5e].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(t,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(t)}async flushHeaders(){if(this[vgt]||this.destroyed)return;this[vgt]=!0;let t=this.method===J9o,r=n=>{if(this._request=n,this.destroyed){n.destroy();return}t||O9o(n,this,["timeout","continue","close","error"]);let a=l=>(...A)=>{!this.writable&&!this.destroyed?l(...A):this.once("finish",()=>{l(...A)})};n.once("response",a((l,A,f)=>{let I=new P9o(this.socket,n.readableHighWaterMark);this.res=I,I.req=this,I.statusCode=l[FGn],I.headers=l,I.rawHeaders=f,I.once("end",()=>{this.aborted?(I.aborted=!0,I.emit("aborted")):(I.complete=!0,I.socket=null,I.connection=null)}),t?(I.upgrade=!0,this.emit("connect",I,n,Buffer.alloc(0))?this.emit("close"):n.destroy()):(n.on("data",C=>{!I._dumped&&!I.push(C)&&n.pause()}),n.once("end",()=>{I.push(null)}),this.emit("response",I)||I._dump())})),n.once("headers",a(l=>this.emit("information",{statusCode:l[FGn]}))),n.once("trailers",a((l,A,f)=>{let{res:I}=this;I.trailers=l,I.rawTrailers=f}));let{socket:o}=n.session;this.socket=o,this.connection=o;for(let l of this[o5e])l();this.emit("socket",this.socket)};if(this[Agr])try{r(this[Agr].request(this[dG]))}catch(n){this.emit("error",n)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[ggr],this[VGn],this[dG]))}catch(n){this.emit("error",n)}}}getHeader(t){if(typeof t!="string")throw new ugr("name","string",t);return this[dG][t.toLowerCase()]}get headersSent(){return this[vgt]}removeHeader(t){if(typeof t!="string")throw new ugr("name","string",t);if(this.headersSent)throw new GGn("remove");delete this[dG][t.toLowerCase()]}setHeader(t,r){if(this.headersSent)throw new GGn("set");if(typeof t!="string"||!U9o.test(t)&&!M9o(t))throw new Y9o("Header name",t);if(typeof r>"u")throw new Q9o(r,t);if(K9o.test(r))throw new X9o("header content",t);this[dG][t.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(t,r){let n=()=>this._request.setTimeout(t,r);return this._request?n():this[o5e].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(t){}};PGn.exports=dgr});var OGn=H((Cjl,WGn)=>{"use strict";var j9o=wt("tls");WGn.exports=(e={},t=j9o.connect)=>new Promise((r,n)=>{let a=!1,o,l=async()=>{await f,o.off("timeout",A),o.off("error",n),e.resolveSocket?(r({alpnProtocol:o.alpnProtocol,socket:o,timeout:a}),a&&(await Promise.resolve(),o.emit("timeout"))):(o.destroy(),r({alpnProtocol:o.alpnProtocol,timeout:a}))},A=async()=>{a=!0,l()},f=(async()=>{try{o=await t(e,l),o.on("error",n),o.once("timeout",A)}catch(I){n(I)}})()})});var HGn=H((_jl,MGn)=>{"use strict";var z9o=wt("net");MGn.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?t=r:t=r.slice(1,-1):t=r.split(":",1)[0]),z9o.isIP(t)?"":t}});var XGn=H((yjl,Igr)=>{"use strict";var YGn=wt("http"),fgr=wt("https"),q9o=OGn(),$9o=igr(),eVo=pgr(),tVo=HGn(),rVo=lgr(),Bgt=new $9o({maxSize:100}),a5e=new Map,QGn=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};let n=()=>{e.emit("free",t,r)};t.on("free",n);let a=()=>{e.removeSocket(t,r)};t.on("close",a);let o=()=>{e.removeSocket(t,r),t.off("close",a),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)},nVo=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!Bgt.has(t)){if(a5e.has(t))return(await a5e.get(t)).alpnProtocol;let{path:r,agent:n}=e;e.path=e.socketPath;let a=q9o(e);a5e.set(t,a);try{let{socket:o,alpnProtocol:l}=await a;if(Bgt.set(t,l),e.path=r,l==="h2")o.destroy();else{let{globalAgent:A}=fgr,f=fgr.Agent.prototype.createConnection;n?n.createConnection===f?QGn(n,o,e):o.destroy():A.createConnection===f?QGn(A,o,e):o.destroy()}return a5e.delete(t),l}catch(o){throw a5e.delete(t),o}}return Bgt.get(t)};Igr.exports=async(e,t,r)=>{if((typeof e=="string"||e instanceof URL)&&(e=rVo(new URL(e))),typeof t=="function"&&(r=t,t=void 0),t={ALPNProtocols:["h2","http/1.1"],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||"https:";let n=t.protocol==="https:";t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||tVo(t),t.port=t.port||(n?443:80),t._defaultAgent=n?fgr.globalAgent:YGn.globalAgent;let a=t.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=a[n?"https":"http"]}return n&&await nVo(t)==="h2"?(a&&(t.agent=a.http2),new eVo(t,r)):YGn.request(t,r)};Igr.exports.protocolCache=Bgt});var UGn=H((bjl,JGn)=>{"use strict";var iVo=wt("http2"),sVo=ogr(),hgr=pgr(),oVo=cgr(),aVo=XGn(),cVo=(e,t,r)=>new hgr(e,t,r),lVo=(e,t,r)=>{let n=new hgr(e,t,r);return n.end(),n};JGn.exports={...iVo,ClientRequest:hgr,IncomingMessage:oVo,...sVo,request:cVo,get:lVo,auto:aVo}});var Cgr=H(mgr=>{"use strict";Object.defineProperty(mgr,"__esModule",{value:!0});var KGn=o$();mgr.default=e=>KGn.default.nodeStream(e)&&KGn.default.function_(e.getBoundary)});var $Gn=H(_gr=>{"use strict";Object.defineProperty(_gr,"__esModule",{value:!0});var zGn=wt("fs"),qGn=wt("util"),jGn=o$(),uVo=Cgr(),gVo=qGn.promisify(zGn.stat);_gr.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(jGn.default.string(e))return Buffer.byteLength(e);if(jGn.default.buffer(e))return e.length;if(uVo.default(e))return qGn.promisify(e.getLength.bind(e))();if(e instanceof zGn.ReadStream){let{size:r}=await gVo(e.path);return r===0?void 0:r}}});var bgr=H(ygr=>{"use strict";Object.defineProperty(ygr,"__esModule",{value:!0});function AVo(e,t,r){let n={};for(let a of r)n[a]=(...o)=>{t.emit(a,...o)},e.on(a,n[a]);return()=>{for(let a of r)e.off(a,n[a])}}ygr.default=AVo});var eFn=H(Egr=>{"use strict";Object.defineProperty(Egr,"__esModule",{value:!0});Egr.default=()=>{let e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(let t of e){let{origin:r,event:n,fn:a}=t;r.removeListener(n,a)}e.length=0}}}});var rFn=H(c5e=>{"use strict";Object.defineProperty(c5e,"__esModule",{value:!0});c5e.TimeoutError=void 0;var dVo=wt("net"),pVo=eFn(),tFn=Symbol("reentry"),fVo=()=>{},wgt=class extends Error{constructor(t,r){super(`Timeout awaiting '${r}' for ${t}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};c5e.TimeoutError=wgt;c5e.default=(e,t,r)=>{if(tFn in e)return fVo;e[tFn]=!0;let n=[],{once:a,unhandleAll:o}=pVo.default(),l=(b,E,N)=>{var B;let F=setTimeout(E,b,b,N);(B=F.unref)===null||B===void 0||B.call(F);let Q=()=>{clearTimeout(F)};return n.push(Q),Q},{host:A,hostname:f}=r,I=(b,E)=>{e.destroy(new wgt(b,E))},C=()=>{for(let b of n)b();o()};if(e.once("error",b=>{if(C(),e.listenerCount("error")===0)throw b}),e.once("close",C),a(e,"response",b=>{a(b,"end",C)}),typeof t.request<"u"&&l(t.request,I,"request"),typeof t.socket<"u"){let b=()=>{I(t.socket,"socket")};e.setTimeout(t.socket,b),n.push(()=>{e.removeListener("timeout",b)})}return a(e,"socket",b=>{var E;let{socketPath:N}=e;if(b.connecting){let B=!!(N??dVo.isIP((E=f??A)!==null&&E!==void 0?E:"")!==0);if(typeof t.lookup<"u"&&!B&&typeof b.address().address>"u"){let F=l(t.lookup,I,"lookup");a(b,"lookup",F)}if(typeof t.connect<"u"){let F=()=>l(t.connect,I,"connect");B?a(b,"connect",F()):a(b,"lookup",Q=>{Q===null&&a(b,"connect",F())})}typeof t.secureConnect<"u"&&r.protocol==="https:"&&a(b,"connect",()=>{let F=l(t.secureConnect,I,"secureConnect");a(b,"secureConnect",F)})}if(typeof t.send<"u"){let B=()=>l(t.send,I,"send");b.connecting?a(b,"connect",()=>{a(e,"upload-complete",B())}):a(e,"upload-complete",B())}}),typeof t.response<"u"&&a(e,"upload-complete",()=>{let b=l(t.response,I,"response");a(e,"response",b)}),C}});var iFn=H(Sgr=>{"use strict";Object.defineProperty(Sgr,"__esModule",{value:!0});var nFn=o$();Sgr.default=e=>{e=e;let t={protocol:e.protocol,hostname:nFn.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return nFn.default.string(e.port)&&e.port.length>0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var sFn=H(vgr=>{"use strict";Object.defineProperty(vgr,"__esModule",{value:!0});var IVo=wt("url"),hVo=["protocol","host","hostname","port","pathname","search"];vgr.default=(e,t)=>{var r,n;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${(n=(r=t.hostname)!==null&&r!==void 0?r:t.host)!==null&&n!==void 0?n:""}`}let a=new IVo.URL(e);if(t.path){let o=t.path.indexOf("?");o===-1?t.pathname=t.path:(t.pathname=t.path.slice(0,o),t.search=t.path.slice(o+1)),delete t.path}for(let o of hVo)t[o]&&(a[o]=t[o].toString());return a}});var oFn=H(wgr=>{"use strict";Object.defineProperty(wgr,"__esModule",{value:!0});var Bgr=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(t,r){typeof t=="object"?this.weakMap.set(t,r):this.map.set(t,r)}get(t){return typeof t=="object"?this.weakMap.get(t):this.map.get(t)}has(t){return typeof t=="object"?this.weakMap.has(t):this.map.has(t)}};wgr.default=Bgr});var Rgr=H(Tgr=>{"use strict";Object.defineProperty(Tgr,"__esModule",{value:!0});var mVo=async e=>{let t=[],r=0;for await(let n of e)t.push(n),r+=Buffer.byteLength(n);return Buffer.isBuffer(t[0])?Buffer.concat(t,r):Buffer.from(t.join(""))};Tgr.default=mVo});var cFn=H($fe=>{"use strict";Object.defineProperty($fe,"__esModule",{value:!0});$fe.dnsLookupIpVersionToFamily=$fe.isDnsLookupIpVersion=void 0;var aFn={auto:0,ipv4:4,ipv6:6};$fe.isDnsLookupIpVersion=e=>e in aFn;$fe.dnsLookupIpVersionToFamily=e=>{if($fe.isDnsLookupIpVersion(e))return aFn[e];throw new Error("Invalid DNS lookup IP version")}});var Ngr=H(Tgt=>{"use strict";Object.defineProperty(Tgt,"__esModule",{value:!0});Tgt.isResponseOk=void 0;Tgt.isResponseOk=e=>{let{statusCode:t}=e,r=e.request.options.followRedirect?299:399;return t>=200&&t<=r||t===304}});var uFn=H(Dgr=>{"use strict";Object.defineProperty(Dgr,"__esModule",{value:!0});var lFn=new Set;Dgr.default=e=>{lFn.has(e)||(lFn.add(e),process.emitWarning(`Got: ${e}`,{type:"DeprecationWarning"}))}});var gFn=H(kgr=>{"use strict";Object.defineProperty(kgr,"__esModule",{value:!0});var G1=o$(),CVo=(e,t)=>{if(G1.default.null_(e.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");G1.assert.any([G1.default.string,G1.default.undefined],e.encoding),G1.assert.any([G1.default.boolean,G1.default.undefined],e.resolveBodyOnly),G1.assert.any([G1.default.boolean,G1.default.undefined],e.methodRewriting),G1.assert.any([G1.default.boolean,G1.default.undefined],e.isStream),G1.assert.any([G1.default.string,G1.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType="text");let{retry:r}=e;if(t?e.retry={...t.retry}:e.retry={calculateDelay:n=>n.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},G1.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(n=>n.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):G1.default.number(r)&&(e.retry.limit=r),G1.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(G1.default.number))),G1.default.object(e.pagination)){t&&(e.pagination={...t.pagination,...e.pagination});let{pagination:n}=e;if(!G1.default.function_(n.transform))throw new Error("`options.pagination.transform` must be implemented");if(!G1.default.function_(n.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!G1.default.function_(n.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!G1.default.function_(n.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return e.responseType==="json"&&e.headers.accept===void 0&&(e.headers.accept="application/json"),e};kgr.default=CVo});var AFn=H(l5e=>{"use strict";Object.defineProperty(l5e,"__esModule",{value:!0});l5e.retryAfterStatusCodes=void 0;l5e.retryAfterStatusCodes=new Set([413,429,503]);var _Vo=({attemptCount:e,retryOptions:t,error:r,retryAfter:n})=>{if(e>t.limit)return 0;let a=t.methods.includes(r.options.method),o=t.errorCodes.includes(r.code),l=r.response&&t.statusCodes.includes(r.response.statusCode);if(!a||!o&&!l)return 0;if(r.response){if(n)return t.maxRetryAfter===void 0||n>t.maxRetryAfter?0:n;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(e-1)*1e3+A};l5e.default=_Vo});var A5e=H(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});O_.UnsupportedProtocolError=O_.ReadError=O_.TimeoutError=O_.UploadError=O_.CacheError=O_.HTTPError=O_.MaxRedirectsError=O_.RequestError=O_.setNonEnumerableProperties=O_.knownHookEvents=O_.withoutBody=O_.kIsNormalizedAlready=void 0;var dFn=wt("util"),pFn=wt("stream"),yVo=wt("fs"),yoe=wt("url"),fFn=wt("http"),xgr=wt("http"),bVo=wt("https"),EVo=Nxn(),SVo=Lxn(),IFn=fGn(),vVo=CGn(),BVo=UGn(),wVo=Egt(),va=o$(),TVo=$Gn(),hFn=Cgr(),RVo=bgr(),mFn=rFn(),NVo=iFn(),CFn=sFn(),DVo=oFn(),kVo=Rgr(),_Fn=cFn(),xVo=Ngr(),boe=uFn(),GVo=gFn(),FVo=AFn(),Ggr,vk=Symbol("request"),Dgt=Symbol("response"),hve=Symbol("responseSize"),mve=Symbol("downloadedSize"),Cve=Symbol("bodySize"),_ve=Symbol("uploadedSize"),Rgt=Symbol("serverResponsesPiped"),yFn=Symbol("unproxyEvents"),bFn=Symbol("isFromCache"),Fgr=Symbol("cancelTimeouts"),EFn=Symbol("startedReading"),yve=Symbol("stopReading"),Ngt=Symbol("triggerRead"),Eoe=Symbol("body"),u5e=Symbol("jobs"),SFn=Symbol("originalResponse"),vFn=Symbol("retryTimeout");O_.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ZVo=va.default.string(process.versions.brotli);O_.withoutBody=new Set(["GET","HEAD"]);O_.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function LVo(e){for(let t in e){let r=e[t];if(!va.default.string(r)&&!va.default.number(r)&&!va.default.boolean(r)&&!va.default.null_(r)&&!va.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function VVo(e){return va.default.object(e)&&!("statusCode"in e)}var Zgr=new DVo.default,PVo=async e=>new Promise((t,r)=>{let n=a=>{r(a)};e.pending||t(),e.once("error",n),e.once("ready",()=>{e.off("error",n),t()})}),WVo=new Set([300,301,302,303,304,307,308]),OVo=["context","body","json","form"];O_.setNonEnumerableProperties=(e,t)=>{let r={};for(let n of e)if(n)for(let a of OVo)a in n&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:n[a]});Object.defineProperties(t,r)};var jB=class extends Error{constructor(t,r,n){var a,o;if(super(t),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=(a=r.code)!==null&&a!==void 0?a:"ERR_GOT_REQUEST_ERROR",n instanceof Vgt?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[Dgt]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=(o=this.request)===null||o===void 0?void 0:o.timings,va.default.string(r.stack)&&va.default.string(this.stack)){let l=this.stack.indexOf(this.message)+this.message.length,A=this.stack.slice(l).split(` + }`,E=Rbo.attempt(()=>new Function(...f,`${C}return ${b}`)(...I));if(E.source=b,E instanceof Error)throw E;return E}hut.template=_Nn;hut.templateSettings=Iut});var far=H(par=>{"use strict";Object.defineProperty(par,Symbol.toStringTag,{value:"Module"});var Fbo=qy();function Zbo(e){return Fbo.toString(e).toLowerCase()}par.toLower=Zbo});var har=H(Iar=>{"use strict";Object.defineProperty(Iar,Symbol.toStringTag,{value:"Module"});var Lbo=qy();function Vbo(e){return Lbo.toString(e).toUpperCase()}Iar.toUpper=Vbo});var Car=H(mar=>{"use strict";Object.defineProperty(mar,Symbol.toStringTag,{value:"Module"});function Pbo(e,t){if(t===void 0)return e.trimEnd();let r=e.length;switch(typeof t){case"string":{if(t.length!==1)throw new Error("The 'chars' parameter should be a single character string.");for(;r>0&&e[r-1]===t;)r--;break}case"object":for(;r>0&&t.includes(e[r-1]);)r--}return e.substring(0,r)}mar.trimEnd=Pbo});var yar=H(_ar=>{"use strict";Object.defineProperty(_ar,Symbol.toStringTag,{value:"Module"});function Wbo(e,t){if(t===void 0)return e.trimStart();let r=0;switch(typeof t){case"string":{for(;r{"use strict";Object.defineProperty(bar,Symbol.toStringTag,{value:"Module"});var Obo=Car(),Mbo=yar();function Hbo(e,t){return t===void 0?e.trim():Mbo.trimStart(Obo.trimEnd(e,t),t)}bar.trim=Hbo});var Bar=H(Sar=>{"use strict";Object.defineProperty(Sar,Symbol.toStringTag,{value:"Module"});var Ear=yNn();function Ybo(e,t,r){if(e==null)return"";if(r!=null||t==null)return e.toString().trim();switch(typeof t){case"object":return Array.isArray(t)?Ear.trim(e,t.flatMap(n=>n.toString().split(""))):Ear.trim(e,t.toString().split(""));default:return Ear.trim(e,t.toString().split(""))}}Sar.trim=Ybo});var Tar=H(war=>{"use strict";Object.defineProperty(war,Symbol.toStringTag,{value:"Module"});var Qbo=Car();function Xbo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimEnd():Qbo.trimEnd(e,t.toString().split(""))}war.trimEnd=Xbo});var Nar=H(Rar=>{"use strict";Object.defineProperty(Rar,Symbol.toStringTag,{value:"Module"});var Jbo=yar();function Ubo(e,t,r){return e==null?"":r!=null||t==null?e.toString().trimStart():Jbo.trimStart(e,t.toString().split(""))}Rar.trimStart=Ubo});var kar=H(Dar=>{"use strict";Object.defineProperty(Dar,Symbol.toStringTag,{value:"Module"});var Kbo=tM(),jbo=/[\u200d\ud800-\udfff\u0300-\u036f\ufe20-\ufe2f\u20d0-\u20ff\ufe0e\ufe0f]/;function zbo(e,t){e=e!=null?`${e}`:"";let r=30,n="...";Kbo.isObject(t)&&(r=qbo(t.length),n="omission"in t?`${t.omission}`:"...");let a=e.length,o=Array.from(n).length,l=Math.max(r-o,0),A;if(jbo.test(e)&&(A=Array.from(e),a=A.length),r>=a)return e;if(a<=o)return n;let I=A===void 0?e.slice(0,l):A?.slice(0,l).join(""),C=t?.separator;if(!C)return I+=n,I;let b=C instanceof RegExp?C.source:C,E="u"+(C instanceof RegExp?C.flags.replace("u",""):""),N=new RegExp(`(?.*(?:(?!${b}).))(?:${b})`,E).exec(I);return(N?.groups?N.groups.result:I)+n}function qbo(e){return e==null?30:e<=0?0:e}Dar.truncate=zbo});var bNn=H(xar=>{"use strict";Object.defineProperty(xar,Symbol.toStringTag,{value:"Module"});var $bo={"&":"&","<":"<",">":">",""":'"',"'":"'"};function eEo(e){return e.replace(/&(?:amp|lt|gt|quot|#(0+)?39);/g,t=>$bo[t]||"'")}xar.unescape=eEo});var Far=H(Gar=>{"use strict";Object.defineProperty(Gar,Symbol.toStringTag,{value:"Module"});var tEo=bNn(),rEo=qy();function nEo(e){return tEo.unescape(rEo.toString(e))}Gar.unescape=nEo});var ENn=H(Zar=>{"use strict";Object.defineProperty(Zar,Symbol.toStringTag,{value:"Module"});var iEo=Hfe();function sEo(e){let t=iEo.words(e),r="";for(let n=0;n{"use strict";Object.defineProperty(Lar,Symbol.toStringTag,{value:"Module"});var oEo=t$(),aEo=ENn(),cEo=Yfe();function lEo(e){return aEo.upperCase(cEo.normalizeForCase(oEo.deburr(e)))}Lar.upperCase=lEo});var SNn=H(War=>{"use strict";Object.defineProperty(War,Symbol.toStringTag,{value:"Module"});function uEo(e){return e.substring(0,1).toUpperCase()+e.substring(1)}War.upperFirst=uEo});var Mar=H(Oar=>{"use strict";Object.defineProperty(Oar,Symbol.toStringTag,{value:"Module"});var gEo=SNn(),AEo=qy();function dEo(e){return gEo.upperFirst(AEo.toString(e))}Oar.upperFirst=dEo});var Yar=H(Har=>{"use strict";Object.defineProperty(Har,Symbol.toStringTag,{value:"Module"});var pEo=qy(),fEo="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\xd7\\xf7",USe="\\p{Lu}",NNn="\\p{Ll}",DNn="(?:[\\p{Lm}\\p{Lo}]\\p{M}*)",X3e="\\d",vNn="(?:['\u2019](?:d|ll|m|re|s|t|ve))?",BNn="(?:['\u2019](?:D|LL|M|RE|S|T|VE))?",wNn=`[\\p{Z}\\p{P}${fEo}]`,IEo=`(?:${USe}|${DNn})`,TNn=`(?:${NNn}|${DNn})`,RNn=RegExp([`${USe}?${NNn}+${vNn}(?=${wNn}|${USe}|$)`,`${IEo}+${BNn}(?=${wNn}|${USe}${TNn}|$)`,`${USe}?${TNn}+${vNn}`,`${USe}+${BNn}`,`${X3e}*(?:1ST|2ND|3RD|(?![123])${X3e}TH)(?=\\b|[a-z_])`,`${X3e}*(?:1st|2nd|3rd|(?![123])${X3e}th)(?=\\b|[A-Z_])`,`${X3e}+`,"\\p{Emoji_Presentation}","\\p{Extended_Pictographic}"].join("|"),"gu");function hEo(e,t=RNn,r){let n=pEo.toString(e);return r&&(t=RNn),typeof t=="number"&&(t=t.toString()),Array.from(n.match(t)??[]).filter(o=>o!=="")}Har.words=hEo});var Xar=H(Qar=>{"use strict";Object.defineProperty(Qar,Symbol.toStringTag,{value:"Module"});var mEo=im(),CEo=coe();function _Eo(e){let t=e.length,r=e.map(n=>{let a=n[0],o=n[1];if(!CEo.isFunction(o))throw new TypeError("Expected a function");return[mEo.iteratee(a),o]});return function(...n){for(let a=0;a{"use strict";Object.defineProperty(Jar,Symbol.toStringTag,{value:"Module"});function yEo(e){return()=>e}Jar.constant=yEo});var jar=H(Kar=>{"use strict";Object.defineProperty(Kar,Symbol.toStringTag,{value:"Module"});function bEo(e,t){return e==null||Number.isNaN(e)?t:e}Kar.defaultTo=bEo});var qar=H(zar=>{"use strict";Object.defineProperty(zar,Symbol.toStringTag,{value:"Module"});var kNn=Q9();function EEo(e,t){return typeof e=="string"&&typeof t=="string"?e>t:kNn.toNumber(e)>kNn.toNumber(t)}zar.gt=EEo});var ecr=H($ar=>{"use strict";Object.defineProperty($ar,Symbol.toStringTag,{value:"Module"});var xNn=Q9();function SEo(e,t){return typeof e=="string"&&typeof t=="string"?e>=t:xNn.toNumber(e)>=xNn.toNumber(t)}$ar.gte=SEo});var U3e=H(tcr=>{"use strict";Object.defineProperty(tcr,Symbol.toStringTag,{value:"Module"});var vEo=$5(),BEo=Kq(),wEo=zq(),GNn=eM();function TEo(e,t,...r){if(r=r.flat(1),e!=null)switch(typeof t){case"string":return typeof e=="object"&&Object.hasOwn(e,t)?J3e(e,[t],r):J3e(e,vEo.toPath(t),r);case"number":case"symbol":return J3e(e,[t],r);default:return Array.isArray(t)?J3e(e,t,r):J3e(e,[t],r)}}function J3e(e,t,r){let n=GNn.get(e,t.slice(0,-1),e);if(n==null)return;let a=wEo.last(t),o=a?.valueOf();return typeof o=="number"?a=BEo.toKey(o):a=String(a),GNn.get(n,a)?.apply(n,r)}tcr.invoke=TEo});var ncr=H(rcr=>{"use strict";Object.defineProperty(rcr,Symbol.toStringTag,{value:"Module"});var FNn=Q9();function REo(e,t){return typeof e=="string"&&typeof t=="string"?e{"use strict";Object.defineProperty(icr,Symbol.toStringTag,{value:"Module"});var ZNn=Q9();function NEo(e,t){return typeof e=="string"&&typeof t=="string"?e<=t:ZNn.toNumber(e)<=ZNn.toNumber(t)}icr.lte=NEo});var acr=H(ocr=>{"use strict";Object.defineProperty(ocr,Symbol.toStringTag,{value:"Module"});var DEo=U3e();function kEo(e,...t){return function(r){return DEo.invoke(r,e,t)}}ocr.method=kEo});var lcr=H(ccr=>{"use strict";Object.defineProperty(ccr,Symbol.toStringTag,{value:"Module"});var xEo=U3e();function GEo(e,...t){return function(r){return xEo.invoke(e,r,t)}}ccr.methodOf=GEo});var gcr=H(ucr=>{"use strict";Object.defineProperty(ucr,Symbol.toStringTag,{value:"Module"});function FEo(){return Date.now()}ucr.now=FEo});var dcr=H(Acr=>{"use strict";Object.defineProperty(Acr,Symbol.toStringTag,{value:"Module"});var ZEo=im();function LEo(...e){e.length===1&&Array.isArray(e[0])&&(e=e[0]);let t=e.map(r=>ZEo.iteratee(r));return function(...r){return t.map(n=>n.apply(this,r))}}Acr.over=LEo});var fcr=H(pcr=>{"use strict";Object.defineProperty(pcr,Symbol.toStringTag,{value:"Module"});var LNn=im();function VEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(Icr,Symbol.toStringTag,{value:"Module"});var VNn=im();function PEo(...e){return function(...t){for(let r=0;r{"use strict";Object.defineProperty(mcr,Symbol.toStringTag,{value:"Module"});function WEo(){return[]}mcr.stubArray=WEo});var ycr=H(_cr=>{"use strict";Object.defineProperty(_cr,Symbol.toStringTag,{value:"Module"});function OEo(){return!1}_cr.stubFalse=OEo});var Ecr=H(bcr=>{"use strict";Object.defineProperty(bcr,Symbol.toStringTag,{value:"Module"});function MEo(){return{}}bcr.stubObject=MEo});var vcr=H(Scr=>{"use strict";Object.defineProperty(Scr,Symbol.toStringTag,{value:"Module"});function HEo(){return""}Scr.stubString=HEo});var wcr=H(Bcr=>{"use strict";Object.defineProperty(Bcr,Symbol.toStringTag,{value:"Module"});function YEo(){return!0}Bcr.stubTrue=YEo});var PNn=H(Tcr=>{"use strict";Object.defineProperty(Tcr,Symbol.toStringTag,{value:"Module"});var QEo=4294967295;Tcr.MAX_ARRAY_LENGTH=QEo});var Ncr=H(Rcr=>{"use strict";Object.defineProperty(Rcr,Symbol.toStringTag,{value:"Module"});var XEo=PNn(),JEo=Ofe();function UEo(e){if(e==null)return 0;let t=Math.floor(Number(e));return JEo.clamp(t,0,XEo.MAX_ARRAY_LENGTH)}Rcr.toLength=UEo});var kcr=H(Dcr=>{"use strict";Object.defineProperty(Dcr,Symbol.toStringTag,{value:"Module"});var KEo=iX();function jEo(e){let t={},r=KEo.keysIn(e);for(let n=0;n{"use strict";Object.defineProperty(xcr,Symbol.toStringTag,{value:"Module"});var zEo=$w(),WNn=$or(),qEo=Ofe();function $Eo(e){return e==null?0:qEo.clamp(zEo.toInteger(e),-WNn.MAX_SAFE_INTEGER,WNn.MAX_SAFE_INTEGER)}xcr.toSafeInteger=$Eo});var Zcr=H(Fcr=>{"use strict";Object.defineProperty(Fcr,Symbol.toStringTag,{value:"Module"});var e1o=0;function t1o(e=""){let t=++e1o;return`${e}${t}`}Fcr.uniqueId=t1o});var JNn=H(Kn=>{"use strict";Object.defineProperty(Kn,Symbol.toStringTag,{value:"Module"});var r1o=E7t(),n1o=R7t(),i1o=k7t(),s1o=F7t(),o1o=pzt(),a1o=Czt(),c1o=Blt(),l1o=wlt(),u1o=xzt(),g1o=Zzt(),A1o=Pzt(),d1o=Mzt(),ONn=Nlt(),MNn=Xzt(),p1o=Kzt(),f1o=$zt(),I1o=Dlt(),h1o=rqt(),m1o=sqt(),C1o=aqt(),_1o=lqt(),HNn=Aqt(),y1o=mqt(),b1o=yqt(),E1o=D3e(),S1o=Pfe(),v1o=Eqt(),B1o=YSe(),w1o=Bqt(),T1o=Tqt(),R1o=Nqt(),N1o=xqt(),D1o=Lqt(),k1o=xlt(),x1o=Glt(),G1o=Jqt(),F1o=Kqt(),Z1o=qqt(),L1o=zq(),V1o=e$t(),P1o=N3e(),W1o=r$t(),O1o=Zlt(),M1o=a$t(),H1o=g$t(),Y1o=d$t(),Q1o=f$t(),X1o=h$t(),J1o=E$t(),U1o=Flt(),K1o=v$t(),j1o=T$t(),z1o=D$t(),q1o=x$t(),$1o=Z$t(),e2o=J$t(),t2o=$$t(),r2o=ter(),n2o=ner(),i2o=ser(),s2o=aer(),o2o=Mlt(),a2o=L3e(),c2o=mer(),l2o=Ylt(),u2o=Hlt(),g2o=ber(),A2o=ver(),d2o=Ter(),p2o=Der(),f2o=Ger(),I2o=Zer(),h2o=Ver(),m2o=Xlt(),C2o=Jlt(),_2o=k3e(),y2o=Jer(),b2o=Ker(),E2o=Ult(),S2o=etr(),v2o=ntr(),B2o=str(),w2o=ltr(),T2o=gtr(),R2o=Itr(),N2o=Ctr(),D2o=Etr(),k2o=vtr(),x2o=wtr(),G2o=jlt(),F2o=zlt(),Z2o=Dtr(),L2o=Gtr(),V2o=Ltr(),P2o=Wtr(),W2o=Htr(),O2o=qlt(),M2o=Jtr(),H2o=Ktr(),Y2o=ztr(),Q2o=rrr(),X2o=srr(),J2o=crr(),U2o=F3e(),K2o=urr(),j2o=drr(),z2o=frr(),q2o=mrr(),$2o=yrr(),eSo=Err(),tSo=Brr(),rSo=Trr(),nSo=Nrr(),iSo=krr(),sSo=Grr(),oSo=Zrr(),aSo=Prr(),cSo=Ofe(),lSo=Orr(),uSo=Hrr(),gSo=Xrr(),ASo=Urr(),dSo=zrr(),pSo=tnr(),fSo=snr(),ISo=anr(),hSo=unr(),mSo=Anr(),CSo=pnr(),_So=Inr(),ySo=Cnr(),bSo=bnr(),ESo=Snr(),SSo=Bnr(),vSo=nut(),BSo=rut(),wSo=xnr(),TSo=HK(),RSo=Fnr(),NSo=Onr(),YNn=Ynr(),QNn=Xnr(),DSo=Unr(),kSo=Llt(),xSo=out(),GSo=WSe(),FSo=v3e(),ZSo=qnr(),LSo=eir(),VSo=Y3e(),PSo=iir(),WSo=air(),OSo=lir(),MSo=gir(),HSo=dir(),YSo=fir(),QSo=hir(),XSo=Cir(),JSo=yir(),USo=Eir(),KSo=eM(),jSo=B3e(),zSo=vir(),qSo=Tir(),$So=Nir(),evo=YK(),tvo=iX(),rvo=xir(),nvo=Zir(),ivo=Mir(),svo=lut(),ovo=Qir(),avo=Jir(),cvo=Kir(),lvo=zir(),uvo=nX(),gvo=$ir(),Avo=tsr(),dvo=P3e(),pvo=nsr(),fvo=ssr(),Ivo=gsr(),hvo=dsr(),mvo=Isr(),Cvo=G3e(),_vo=msr(),yvo=XSe(),bvo=Plt(),Evo=_sr(),Svo=bsr(),vvo=Ssr(),Bvo=Elt(),wvo=Bsr(),Tvo=Tsr(),Rvo=Nsr(),Nvo=xsr(),Dvo=Aut(),kvo=Vfe(),xvo=$q(),Gvo=Zsr(),Fvo=Sf(),Zvo=b2(),Lvo=Vsr(),Vvo=gut(),Pvo=Osr(),Wvo=Hsr(),Ovo=Qsr(),Mvo=Ksr(),Hvo=zsr(),Yvo=$sr(),Qvo=tor(),Xvo=Vlt(),Jvo=_3e(),Uvo=Olt(),Kvo=QSe(),jvo=V3e(),zvo=tM(),qvo=ioe(),$vo=Mfe(),eBo=ior(),tBo=oor(),rBo=lor(),nBo=HSe(),iBo=soe(),sBo=e$(),oBo=Aor(),aBo=Ior(),cBo=OK(),lBo=MK(),uBo=_or(),gBo=bor(),ABo=Tor(),dBo=t$(),pBo=Nor(),fBo=put(),IBo=For(),hBo=Vor(),mBo=Oor(),CBo=Yor(),_Bo=Jor(),yBo=Kor(),bBo=zor(),EBo=tar(),SBo=nar(),vBo=oar(),BBo=car(),wBo=uar(),TBo=Aar(),XNn=dar(),RBo=far(),NBo=har(),DBo=Bar(),kBo=Tar(),xBo=Nar(),GBo=kar(),FBo=Far(),ZBo=Par(),LBo=Mar(),VBo=Yar(),PBo=Xar(),WBo=Uar(),OBo=jar(),MBo=Sk(),HBo=qar(),YBo=ecr(),QBo=U3e(),XBo=im(),JBo=ncr(),UBo=scr(),KBo=acr(),jBo=lcr(),zBo=gcr(),qBo=dcr(),$Bo=fcr(),ewo=hcr(),two=Ccr(),rwo=ycr(),nwo=Ecr(),iwo=vcr(),swo=wcr(),owo=H3e(),awo=Z3e(),cwo=MSe(),lwo=$w(),uwo=Ncr(),gwo=Q9(),Awo=$5(),dwo=kcr(),pwo=Gcr(),fwo=qy(),Iwo=Zcr();Kn.castArray=r1o.castArray;Kn.chunk=n1o.chunk;Kn.compact=i1o.compact;Kn.concat=s1o.concat;Kn.countBy=o1o.countBy;Kn.difference=a1o.difference;Kn.differenceBy=c1o.differenceBy;Kn.differenceWith=l1o.differenceWith;Kn.drop=u1o.drop;Kn.dropRight=g1o.dropRight;Kn.dropRightWhile=A1o.dropRightWhile;Kn.dropWhile=d1o.dropWhile;Kn.each=ONn.forEach;Kn.forEach=ONn.forEach;Kn.eachRight=MNn.forEachRight;Kn.forEachRight=MNn.forEachRight;Kn.every=p1o.every;Kn.fill=f1o.fill;Kn.filter=I1o.filter;Kn.find=h1o.find;Kn.findIndex=m1o.findIndex;Kn.findLast=C1o.findLast;Kn.findLastIndex=_1o.findLastIndex;Kn.first=HNn.head;Kn.head=HNn.head;Kn.flatMap=y1o.flatMap;Kn.flatMapDeep=b1o.flatMapDeep;Kn.flatMapDepth=E1o.flatMapDepth;Kn.flatten=S1o.flatten;Kn.flattenDeep=v1o.flattenDeep;Kn.flattenDepth=B1o.flattenDepth;Kn.groupBy=w1o.groupBy;Kn.includes=T1o.includes;Kn.indexOf=R1o.indexOf;Kn.initial=N1o.initial;Kn.intersection=D1o.intersection;Kn.intersectionBy=k1o.intersectionBy;Kn.intersectionWith=x1o.intersectionWith;Kn.invokeMap=G1o.invokeMap;Kn.join=F1o.join;Kn.keyBy=Z1o.keyBy;Kn.last=L1o.last;Kn.lastIndexOf=V1o.lastIndexOf;Kn.map=P1o.map;Kn.nth=W1o.nth;Kn.orderBy=O1o.orderBy;Kn.partition=M1o.partition;Kn.pull=H1o.pull;Kn.pullAll=Y1o.pullAll;Kn.pullAllBy=Q1o.pullAllBy;Kn.pullAllWith=X1o.pullAllWith;Kn.pullAt=J1o.pullAt;Kn.reduce=U1o.reduce;Kn.reduceRight=K1o.reduceRight;Kn.reject=j1o.reject;Kn.remove=z1o.remove;Kn.reverse=q1o.reverse;Kn.sample=$1o.sample;Kn.sampleSize=e2o.sampleSize;Kn.shuffle=t2o.shuffle;Kn.size=r2o.size;Kn.slice=n2o.slice;Kn.some=i2o.some;Kn.sortBy=s2o.sortBy;Kn.sortedIndex=o2o.sortedIndex;Kn.sortedIndexBy=a2o.sortedIndexBy;Kn.sortedIndexOf=c2o.sortedIndexOf;Kn.sortedLastIndex=l2o.sortedLastIndex;Kn.sortedLastIndexBy=u2o.sortedLastIndexBy;Kn.sortedLastIndexOf=g2o.sortedLastIndexOf;Kn.tail=A2o.tail;Kn.take=d2o.take;Kn.takeRight=p2o.takeRight;Kn.takeRightWhile=f2o.takeRightWhile;Kn.takeWhile=I2o.takeWhile;Kn.union=h2o.union;Kn.unionBy=m2o.unionBy;Kn.unionWith=C2o.unionWith;Kn.uniq=_2o.uniq;Kn.uniqBy=y2o.uniqBy;Kn.uniqWith=b2o.uniqWith;Kn.unzip=E2o.unzip;Kn.unzipWith=S2o.unzipWith;Kn.without=v2o.without;Kn.xor=B2o.xor;Kn.xorBy=w2o.xorBy;Kn.xorWith=T2o.xorWith;Kn.zip=R2o.zip;Kn.zipObject=N2o.zipObject;Kn.zipObjectDeep=D2o.zipObjectDeep;Kn.zipWith=k2o.zipWith;Kn.after=x2o.after;Kn.ary=G2o.ary;Kn.attempt=F2o.attempt;Kn.before=Z2o.before;Kn.bind=L2o.bind;Kn.bindKey=V2o.bindKey;Kn.curry=P2o.curry;Kn.curryRight=W2o.curryRight;Kn.debounce=O2o.debounce;Kn.defer=M2o.defer;Kn.delay=H2o.delay;Kn.flip=Y2o.flip;Kn.flow=Q2o.flow;Kn.flowRight=X2o.flowRight;Kn.memoize=J2o.memoize;Kn.negate=U2o.negate;Kn.nthArg=K2o.nthArg;Kn.once=j2o.once;Kn.overArgs=z2o.overArgs;Kn.partial=q2o.partial;Kn.partialRight=$2o.partialRight;Kn.rearg=eSo.rearg;Kn.rest=tSo.rest;Kn.spread=rSo.spread;Kn.throttle=nSo.throttle;Kn.unary=iSo.unary;Kn.wrap=sSo.wrap;Kn.add=oSo.add;Kn.ceil=aSo.ceil;Kn.clamp=cSo.clamp;Kn.divide=lSo.divide;Kn.floor=uSo.floor;Kn.inRange=gSo.inRange;Kn.max=ASo.max;Kn.maxBy=dSo.maxBy;Kn.mean=pSo.mean;Kn.meanBy=fSo.meanBy;Kn.min=ISo.min;Kn.minBy=hSo.minBy;Kn.multiply=mSo.multiply;Kn.parseInt=CSo.parseInt;Kn.random=_So.random;Kn.range=ySo.range;Kn.rangeRight=bSo.rangeRight;Kn.round=ESo.round;Kn.subtract=SSo.subtract;Kn.sum=vSo.sum;Kn.sumBy=BSo.sumBy;Kn.isEqual=wSo.isEqual;Kn.identity=TSo.identity;Kn.noop=RSo.noop;Kn.assign=NSo.assign;Kn.assignIn=YNn.assignIn;Kn.extend=YNn.assignIn;Kn.assignInWith=QNn.assignInWith;Kn.extendWith=QNn.assignInWith;Kn.assignWith=DSo.assignWith;Kn.at=kSo.at;Kn.clone=xSo.clone;Kn.cloneDeep=GSo.cloneDeep;Kn.cloneDeepWith=FSo.cloneDeepWith;Kn.cloneWith=ZSo.cloneWith;Kn.create=LSo.create;Kn.defaults=VSo.defaults;Kn.defaultsDeep=PSo.defaultsDeep;Kn.findKey=WSo.findKey;Kn.findLastKey=OSo.findLastKey;Kn.forIn=MSo.forIn;Kn.forInRight=HSo.forInRight;Kn.forOwn=YSo.forOwn;Kn.forOwnRight=QSo.forOwnRight;Kn.fromPairs=XSo.fromPairs;Kn.functions=JSo.functions;Kn.functionsIn=USo.functionsIn;Kn.get=KSo.get;Kn.has=jSo.has;Kn.hasIn=zSo.hasIn;Kn.invert=qSo.invert;Kn.invertBy=$So.invertBy;Kn.keys=evo.keys;Kn.keysIn=tvo.keysIn;Kn.mapKeys=rvo.mapKeys;Kn.mapValues=nvo.mapValues;Kn.merge=ivo.merge;Kn.mergeWith=svo.mergeWith;Kn.omit=ovo.omit;Kn.omitBy=avo.omitBy;Kn.pick=cvo.pick;Kn.pickBy=lvo.pickBy;Kn.property=uvo.property;Kn.propertyOf=gvo.propertyOf;Kn.result=Avo.result;Kn.set=dvo.set;Kn.setWith=pvo.setWith;Kn.toDefaulted=fvo.toDefaulted;Kn.toPairs=Ivo.toPairs;Kn.toPairsIn=hvo.toPairsIn;Kn.transform=mvo.transform;Kn.unset=Cvo.unset;Kn.update=_vo.update;Kn.updateWith=yvo.updateWith;Kn.values=bvo.values;Kn.valuesIn=Evo.valuesIn;Kn.isFunction=Svo.isFunction;Kn.isLength=vvo.isLength;Kn.isMatchWith=Bvo.isMatchWith;Kn.isNative=wvo.isNative;Kn.isNull=Tvo.isNull;Kn.isUndefined=Rvo.isUndefined;Kn.conforms=Nvo.conforms;Kn.conformsTo=Dvo.conformsTo;Kn.isArguments=kvo.isArguments;Kn.isArray=xvo.isArray;Kn.isArrayBuffer=Gvo.isArrayBuffer;Kn.isArrayLike=Fvo.isArrayLike;Kn.isArrayLikeObject=Zvo.isArrayLikeObject;Kn.isBoolean=Lvo.isBoolean;Kn.isBuffer=Vvo.isBuffer;Kn.isDate=Pvo.isDate;Kn.isElement=Wvo.isElement;Kn.isEmpty=Ovo.isEmpty;Kn.isEqualWith=Mvo.isEqualWith;Kn.isError=Hvo.isError;Kn.isFinite=Yvo.isFinite;Kn.isInteger=Qvo.isInteger;Kn.isMap=Xvo.isMap;Kn.isMatch=Jvo.isMatch;Kn.isNaN=Uvo.isNaN;Kn.isNil=Kvo.isNil;Kn.isNumber=jvo.isNumber;Kn.isObject=zvo.isObject;Kn.isObjectLike=qvo.isObjectLike;Kn.isPlainObject=$vo.isPlainObject;Kn.isRegExp=eBo.isRegExp;Kn.isSafeInteger=tBo.isSafeInteger;Kn.isSet=rBo.isSet;Kn.isString=nBo.isString;Kn.isSymbol=iBo.isSymbol;Kn.isTypedArray=sBo.isTypedArray;Kn.isWeakMap=oBo.isWeakMap;Kn.isWeakSet=aBo.isWeakSet;Kn.matches=cBo.matches;Kn.matchesProperty=lBo.matchesProperty;Kn.capitalize=uBo.capitalize;Kn.bindAll=gBo.bindAll;Kn.camelCase=ABo.camelCase;Kn.deburr=dBo.deburr;Kn.endsWith=pBo.endsWith;Kn.escape=fBo.escape;Kn.escapeRegExp=IBo.escapeRegExp;Kn.kebabCase=hBo.kebabCase;Kn.lowerCase=mBo.lowerCase;Kn.lowerFirst=CBo.lowerFirst;Kn.pad=_Bo.pad;Kn.padEnd=yBo.padEnd;Kn.padStart=bBo.padStart;Kn.repeat=EBo.repeat;Kn.replace=SBo.replace;Kn.snakeCase=vBo.snakeCase;Kn.split=BBo.split;Kn.startCase=wBo.startCase;Kn.startsWith=TBo.startsWith;Kn.template=XNn.template;Kn.templateSettings=XNn.templateSettings;Kn.toLower=RBo.toLower;Kn.toUpper=NBo.toUpper;Kn.trim=DBo.trim;Kn.trimEnd=kBo.trimEnd;Kn.trimStart=xBo.trimStart;Kn.truncate=GBo.truncate;Kn.unescape=FBo.unescape;Kn.upperCase=ZBo.upperCase;Kn.upperFirst=LBo.upperFirst;Kn.words=VBo.words;Kn.cond=PBo.cond;Kn.constant=WBo.constant;Kn.defaultTo=OBo.defaultTo;Kn.eq=MBo.isEqualsSameValueZero;Kn.gt=HBo.gt;Kn.gte=YBo.gte;Kn.invoke=QBo.invoke;Kn.iteratee=XBo.iteratee;Kn.lt=JBo.lt;Kn.lte=UBo.lte;Kn.method=KBo.method;Kn.methodOf=jBo.methodOf;Kn.now=zBo.now;Kn.over=qBo.over;Kn.overEvery=$Bo.overEvery;Kn.overSome=ewo.overSome;Kn.stubArray=two.stubArray;Kn.stubFalse=rwo.stubFalse;Kn.stubObject=nwo.stubObject;Kn.stubString=iwo.stubString;Kn.stubTrue=swo.stubTrue;Kn.times=owo.times;Kn.toArray=awo.toArray;Kn.toFinite=cwo.toFinite;Kn.toInteger=lwo.toInteger;Kn.toLength=uwo.toLength;Kn.toNumber=gwo.toNumber;Kn.toPath=Awo.toPath;Kn.toPlainObject=dwo.toPlainObject;Kn.toSafeInteger=pwo.toSafeInteger;Kn.toString=fwo.toString;Kn.uniqueId=Iwo.uniqueId});var UNn=H(Lcr=>{"use strict";Object.defineProperty(Lcr,Symbol.toStringTag,{value:"Module"});var hwo=JNn(),KSe=e=>e;Object.assign(KSe,hwo);KSe.partial.placeholder=KSe;KSe.partialRight.placeholder=KSe;Lcr.toolkit=KSe});var kW=H(Jn=>{"use strict";Object.defineProperties(Jn,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var mwo=E7t(),Cwo=R7t(),_wo=k7t(),ywo=F7t(),bwo=pzt(),Ewo=Czt(),Swo=Blt(),vwo=wlt(),Bwo=xzt(),wwo=Zzt(),Two=Pzt(),Rwo=Mzt(),KNn=Nlt(),jNn=Xzt(),Nwo=Kzt(),Dwo=$zt(),kwo=Dlt(),xwo=rqt(),Gwo=sqt(),Fwo=aqt(),Zwo=lqt(),zNn=Aqt(),Lwo=mqt(),Vwo=yqt(),Pwo=D3e(),Wwo=Pfe(),Owo=Eqt(),Mwo=YSe(),Hwo=Bqt(),Ywo=Tqt(),Qwo=Nqt(),Xwo=xqt(),Jwo=Lqt(),Uwo=xlt(),Kwo=Glt(),jwo=Jqt(),zwo=Kqt(),qwo=qqt(),$wo=zq(),eTo=e$t(),tTo=N3e(),rTo=r$t(),nTo=Zlt(),iTo=a$t(),sTo=g$t(),oTo=d$t(),aTo=f$t(),cTo=h$t(),lTo=E$t(),uTo=Flt(),gTo=v$t(),ATo=T$t(),dTo=D$t(),pTo=x$t(),fTo=Z$t(),ITo=J$t(),hTo=$$t(),mTo=ter(),CTo=ner(),_To=ser(),yTo=aer(),bTo=Mlt(),ETo=L3e(),STo=mer(),vTo=Ylt(),BTo=Hlt(),wTo=ber(),TTo=ver(),RTo=Ter(),NTo=Der(),DTo=Ger(),kTo=Zer(),xTo=Ver(),GTo=Xlt(),FTo=Jlt(),ZTo=k3e(),LTo=Jer(),VTo=Ker(),PTo=Ult(),WTo=etr(),OTo=ntr(),MTo=str(),HTo=ltr(),YTo=gtr(),QTo=Itr(),XTo=Ctr(),JTo=Etr(),UTo=vtr(),KTo=wtr(),jTo=jlt(),zTo=zlt(),qTo=Dtr(),$To=Gtr(),eRo=Ltr(),tRo=Wtr(),rRo=Htr(),nRo=qlt(),iRo=Jtr(),sRo=Ktr(),oRo=ztr(),aRo=rrr(),cRo=srr(),lRo=crr(),uRo=F3e(),gRo=urr(),ARo=drr(),dRo=frr(),pRo=mrr(),fRo=yrr(),IRo=Err(),hRo=Brr(),mRo=Trr(),CRo=Nrr(),_Ro=krr(),yRo=Grr(),bRo=Zrr(),ERo=Prr(),SRo=Ofe(),vRo=Orr(),BRo=Hrr(),wRo=Xrr(),TRo=Urr(),RRo=zrr(),NRo=tnr(),DRo=snr(),kRo=anr(),xRo=unr(),GRo=Anr(),FRo=pnr(),ZRo=Inr(),LRo=Cnr(),VRo=bnr(),PRo=Snr(),WRo=Bnr(),ORo=nut(),MRo=rut(),HRo=xnr(),YRo=HK(),QRo=Fnr(),XRo=Onr(),qNn=Ynr(),$Nn=Xnr(),JRo=Unr(),URo=Llt(),KRo=out(),jRo=WSe(),zRo=v3e(),qRo=qnr(),$Ro=eir(),eNo=Y3e(),tNo=iir(),rNo=air(),nNo=lir(),iNo=gir(),sNo=dir(),oNo=fir(),aNo=hir(),cNo=Cir(),lNo=yir(),uNo=Eir(),gNo=eM(),ANo=B3e(),dNo=vir(),pNo=Tir(),fNo=Nir(),INo=YK(),hNo=iX(),mNo=xir(),CNo=Zir(),_No=Mir(),yNo=lut(),bNo=Qir(),ENo=Jir(),SNo=Kir(),vNo=zir(),BNo=nX(),wNo=$ir(),TNo=tsr(),RNo=P3e(),NNo=nsr(),DNo=ssr(),kNo=gsr(),xNo=dsr(),GNo=Isr(),FNo=G3e(),ZNo=msr(),LNo=XSe(),VNo=Plt(),PNo=_sr(),WNo=bsr(),ONo=Ssr(),MNo=Elt(),HNo=Bsr(),YNo=Tsr(),QNo=Nsr(),XNo=xsr(),JNo=Aut(),UNo=Vfe(),KNo=$q(),jNo=Zsr(),zNo=Sf(),qNo=b2(),$No=Vsr(),eDo=gut(),tDo=Osr(),rDo=Hsr(),nDo=Qsr(),iDo=Ksr(),sDo=zsr(),oDo=$sr(),aDo=tor(),cDo=Vlt(),lDo=_3e(),uDo=Olt(),gDo=QSe(),ADo=V3e(),dDo=tM(),pDo=ioe(),fDo=Mfe(),IDo=ior(),hDo=oor(),mDo=lor(),CDo=HSe(),_Do=soe(),yDo=e$(),bDo=Aor(),EDo=Ior(),SDo=OK(),vDo=MK(),BDo=_or(),wDo=bor(),TDo=Tor(),RDo=t$(),NDo=Nor(),DDo=put(),kDo=For(),xDo=Vor(),GDo=Oor(),FDo=Yor(),ZDo=Jor(),LDo=Kor(),VDo=zor(),PDo=tar(),WDo=nar(),ODo=oar(),MDo=car(),HDo=uar(),YDo=Aar(),eDn=dar(),QDo=far(),XDo=har(),JDo=Bar(),UDo=Tar(),KDo=Nar(),jDo=kar(),zDo=Far(),qDo=Par(),$Do=Mar(),eko=Yar(),tko=Xar(),rko=Uar(),nko=jar(),iko=Sk(),sko=qar(),oko=ecr(),ako=U3e(),cko=im(),lko=ncr(),uko=scr(),gko=acr(),Ako=lcr(),dko=gcr(),pko=dcr(),fko=fcr(),Iko=hcr(),hko=Ccr(),mko=ycr(),Cko=Ecr(),_ko=vcr(),yko=wcr(),bko=H3e(),Eko=Z3e(),Sko=MSe(),vko=$w(),Bko=Ncr(),wko=Q9(),Tko=$5(),Rko=kcr(),Nko=Gcr(),Dko=qy(),kko=Zcr(),xko=UNn();Jn.castArray=mwo.castArray;Jn.chunk=Cwo.chunk;Jn.compact=_wo.compact;Jn.concat=ywo.concat;Jn.countBy=bwo.countBy;Jn.difference=Ewo.difference;Jn.differenceBy=Swo.differenceBy;Jn.differenceWith=vwo.differenceWith;Jn.drop=Bwo.drop;Jn.dropRight=wwo.dropRight;Jn.dropRightWhile=Two.dropRightWhile;Jn.dropWhile=Rwo.dropWhile;Jn.each=KNn.forEach;Jn.forEach=KNn.forEach;Jn.eachRight=jNn.forEachRight;Jn.forEachRight=jNn.forEachRight;Jn.every=Nwo.every;Jn.fill=Dwo.fill;Jn.filter=kwo.filter;Jn.find=xwo.find;Jn.findIndex=Gwo.findIndex;Jn.findLast=Fwo.findLast;Jn.findLastIndex=Zwo.findLastIndex;Jn.first=zNn.head;Jn.head=zNn.head;Jn.flatMap=Lwo.flatMap;Jn.flatMapDeep=Vwo.flatMapDeep;Jn.flatMapDepth=Pwo.flatMapDepth;Jn.flatten=Wwo.flatten;Jn.flattenDeep=Owo.flattenDeep;Jn.flattenDepth=Mwo.flattenDepth;Jn.groupBy=Hwo.groupBy;Jn.includes=Ywo.includes;Jn.indexOf=Qwo.indexOf;Jn.initial=Xwo.initial;Jn.intersection=Jwo.intersection;Jn.intersectionBy=Uwo.intersectionBy;Jn.intersectionWith=Kwo.intersectionWith;Jn.invokeMap=jwo.invokeMap;Jn.join=zwo.join;Jn.keyBy=qwo.keyBy;Jn.last=$wo.last;Jn.lastIndexOf=eTo.lastIndexOf;Jn.map=tTo.map;Jn.nth=rTo.nth;Jn.orderBy=nTo.orderBy;Jn.partition=iTo.partition;Jn.pull=sTo.pull;Jn.pullAll=oTo.pullAll;Jn.pullAllBy=aTo.pullAllBy;Jn.pullAllWith=cTo.pullAllWith;Jn.pullAt=lTo.pullAt;Jn.reduce=uTo.reduce;Jn.reduceRight=gTo.reduceRight;Jn.reject=ATo.reject;Jn.remove=dTo.remove;Jn.reverse=pTo.reverse;Jn.sample=fTo.sample;Jn.sampleSize=ITo.sampleSize;Jn.shuffle=hTo.shuffle;Jn.size=mTo.size;Jn.slice=CTo.slice;Jn.some=_To.some;Jn.sortBy=yTo.sortBy;Jn.sortedIndex=bTo.sortedIndex;Jn.sortedIndexBy=ETo.sortedIndexBy;Jn.sortedIndexOf=STo.sortedIndexOf;Jn.sortedLastIndex=vTo.sortedLastIndex;Jn.sortedLastIndexBy=BTo.sortedLastIndexBy;Jn.sortedLastIndexOf=wTo.sortedLastIndexOf;Jn.tail=TTo.tail;Jn.take=RTo.take;Jn.takeRight=NTo.takeRight;Jn.takeRightWhile=DTo.takeRightWhile;Jn.takeWhile=kTo.takeWhile;Jn.union=xTo.union;Jn.unionBy=GTo.unionBy;Jn.unionWith=FTo.unionWith;Jn.uniq=ZTo.uniq;Jn.uniqBy=LTo.uniqBy;Jn.uniqWith=VTo.uniqWith;Jn.unzip=PTo.unzip;Jn.unzipWith=WTo.unzipWith;Jn.without=OTo.without;Jn.xor=MTo.xor;Jn.xorBy=HTo.xorBy;Jn.xorWith=YTo.xorWith;Jn.zip=QTo.zip;Jn.zipObject=XTo.zipObject;Jn.zipObjectDeep=JTo.zipObjectDeep;Jn.zipWith=UTo.zipWith;Jn.after=KTo.after;Jn.ary=jTo.ary;Jn.attempt=zTo.attempt;Jn.before=qTo.before;Jn.bind=$To.bind;Jn.bindKey=eRo.bindKey;Jn.curry=tRo.curry;Jn.curryRight=rRo.curryRight;Jn.debounce=nRo.debounce;Jn.defer=iRo.defer;Jn.delay=sRo.delay;Jn.flip=oRo.flip;Jn.flow=aRo.flow;Jn.flowRight=cRo.flowRight;Jn.memoize=lRo.memoize;Jn.negate=uRo.negate;Jn.nthArg=gRo.nthArg;Jn.once=ARo.once;Jn.overArgs=dRo.overArgs;Jn.partial=pRo.partial;Jn.partialRight=fRo.partialRight;Jn.rearg=IRo.rearg;Jn.rest=hRo.rest;Jn.spread=mRo.spread;Jn.throttle=CRo.throttle;Jn.unary=_Ro.unary;Jn.wrap=yRo.wrap;Jn.add=bRo.add;Jn.ceil=ERo.ceil;Jn.clamp=SRo.clamp;Jn.divide=vRo.divide;Jn.floor=BRo.floor;Jn.inRange=wRo.inRange;Jn.max=TRo.max;Jn.maxBy=RRo.maxBy;Jn.mean=NRo.mean;Jn.meanBy=DRo.meanBy;Jn.min=kRo.min;Jn.minBy=xRo.minBy;Jn.multiply=GRo.multiply;Jn.parseInt=FRo.parseInt;Jn.random=ZRo.random;Jn.range=LRo.range;Jn.rangeRight=VRo.rangeRight;Jn.round=PRo.round;Jn.subtract=WRo.subtract;Jn.sum=ORo.sum;Jn.sumBy=MRo.sumBy;Jn.isEqual=HRo.isEqual;Jn.identity=YRo.identity;Jn.noop=QRo.noop;Jn.assign=XRo.assign;Jn.assignIn=qNn.assignIn;Jn.extend=qNn.assignIn;Jn.assignInWith=$Nn.assignInWith;Jn.extendWith=$Nn.assignInWith;Jn.assignWith=JRo.assignWith;Jn.at=URo.at;Jn.clone=KRo.clone;Jn.cloneDeep=jRo.cloneDeep;Jn.cloneDeepWith=zRo.cloneDeepWith;Jn.cloneWith=qRo.cloneWith;Jn.create=$Ro.create;Jn.defaults=eNo.defaults;Jn.defaultsDeep=tNo.defaultsDeep;Jn.findKey=rNo.findKey;Jn.findLastKey=nNo.findLastKey;Jn.forIn=iNo.forIn;Jn.forInRight=sNo.forInRight;Jn.forOwn=oNo.forOwn;Jn.forOwnRight=aNo.forOwnRight;Jn.fromPairs=cNo.fromPairs;Jn.functions=lNo.functions;Jn.functionsIn=uNo.functionsIn;Jn.get=gNo.get;Jn.has=ANo.has;Jn.hasIn=dNo.hasIn;Jn.invert=pNo.invert;Jn.invertBy=fNo.invertBy;Jn.keys=INo.keys;Jn.keysIn=hNo.keysIn;Jn.mapKeys=mNo.mapKeys;Jn.mapValues=CNo.mapValues;Jn.merge=_No.merge;Jn.mergeWith=yNo.mergeWith;Jn.omit=bNo.omit;Jn.omitBy=ENo.omitBy;Jn.pick=SNo.pick;Jn.pickBy=vNo.pickBy;Jn.property=BNo.property;Jn.propertyOf=wNo.propertyOf;Jn.result=TNo.result;Jn.set=RNo.set;Jn.setWith=NNo.setWith;Jn.toDefaulted=DNo.toDefaulted;Jn.toPairs=kNo.toPairs;Jn.toPairsIn=xNo.toPairsIn;Jn.transform=GNo.transform;Jn.unset=FNo.unset;Jn.update=ZNo.update;Jn.updateWith=LNo.updateWith;Jn.values=VNo.values;Jn.valuesIn=PNo.valuesIn;Jn.isFunction=WNo.isFunction;Jn.isLength=ONo.isLength;Jn.isMatchWith=MNo.isMatchWith;Jn.isNative=HNo.isNative;Jn.isNull=YNo.isNull;Jn.isUndefined=QNo.isUndefined;Jn.conforms=XNo.conforms;Jn.conformsTo=JNo.conformsTo;Jn.isArguments=UNo.isArguments;Jn.isArray=KNo.isArray;Jn.isArrayBuffer=jNo.isArrayBuffer;Jn.isArrayLike=zNo.isArrayLike;Jn.isArrayLikeObject=qNo.isArrayLikeObject;Jn.isBoolean=$No.isBoolean;Jn.isBuffer=eDo.isBuffer;Jn.isDate=tDo.isDate;Jn.isElement=rDo.isElement;Jn.isEmpty=nDo.isEmpty;Jn.isEqualWith=iDo.isEqualWith;Jn.isError=sDo.isError;Jn.isFinite=oDo.isFinite;Jn.isInteger=aDo.isInteger;Jn.isMap=cDo.isMap;Jn.isMatch=lDo.isMatch;Jn.isNaN=uDo.isNaN;Jn.isNil=gDo.isNil;Jn.isNumber=ADo.isNumber;Jn.isObject=dDo.isObject;Jn.isObjectLike=pDo.isObjectLike;Jn.isPlainObject=fDo.isPlainObject;Jn.isRegExp=IDo.isRegExp;Jn.isSafeInteger=hDo.isSafeInteger;Jn.isSet=mDo.isSet;Jn.isString=CDo.isString;Jn.isSymbol=_Do.isSymbol;Jn.isTypedArray=yDo.isTypedArray;Jn.isWeakMap=bDo.isWeakMap;Jn.isWeakSet=EDo.isWeakSet;Jn.matches=SDo.matches;Jn.matchesProperty=vDo.matchesProperty;Jn.capitalize=BDo.capitalize;Jn.bindAll=wDo.bindAll;Jn.camelCase=TDo.camelCase;Jn.deburr=RDo.deburr;Jn.endsWith=NDo.endsWith;Jn.escape=DDo.escape;Jn.escapeRegExp=kDo.escapeRegExp;Jn.kebabCase=xDo.kebabCase;Jn.lowerCase=GDo.lowerCase;Jn.lowerFirst=FDo.lowerFirst;Jn.pad=ZDo.pad;Jn.padEnd=LDo.padEnd;Jn.padStart=VDo.padStart;Jn.repeat=PDo.repeat;Jn.replace=WDo.replace;Jn.snakeCase=ODo.snakeCase;Jn.split=MDo.split;Jn.startCase=HDo.startCase;Jn.startsWith=YDo.startsWith;Jn.template=eDn.template;Jn.templateSettings=eDn.templateSettings;Jn.toLower=QDo.toLower;Jn.toUpper=XDo.toUpper;Jn.trim=JDo.trim;Jn.trimEnd=UDo.trimEnd;Jn.trimStart=KDo.trimStart;Jn.truncate=jDo.truncate;Jn.unescape=zDo.unescape;Jn.upperCase=qDo.upperCase;Jn.upperFirst=$Do.upperFirst;Jn.words=eko.words;Jn.cond=tko.cond;Jn.constant=rko.constant;Jn.defaultTo=nko.defaultTo;Jn.eq=iko.isEqualsSameValueZero;Jn.gt=sko.gt;Jn.gte=oko.gte;Jn.invoke=ako.invoke;Jn.iteratee=cko.iteratee;Jn.lt=lko.lt;Jn.lte=uko.lte;Jn.method=gko.method;Jn.methodOf=Ako.methodOf;Jn.now=dko.now;Jn.over=pko.over;Jn.overEvery=fko.overEvery;Jn.overSome=Iko.overSome;Jn.stubArray=hko.stubArray;Jn.stubFalse=mko.stubFalse;Jn.stubObject=Cko.stubObject;Jn.stubString=_ko.stubString;Jn.stubTrue=yko.stubTrue;Jn.times=bko.times;Jn.toArray=Eko.toArray;Jn.toFinite=Sko.toFinite;Jn.toInteger=vko.toInteger;Jn.toLength=Bko.toLength;Jn.toNumber=wko.toNumber;Jn.toPath=Tko.toPath;Jn.toPlainObject=Rko.toPlainObject;Jn.toSafeInteger=Nko.toSafeInteger;Jn.toString=Dko.toString;Jn.uniqueId=kko.uniqueId;Jn.default=xko.toolkit});var xW=H((exports,module)=>{"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.CachingStrategy=exports.DefaultStream=exports.AsyncActions=exports.BufferStream=void 0;exports.isTaggedYarnVersion=isTaggedYarnVersion;exports.plural=plural;exports.escapeRegExp=escapeRegExp;exports.overrideType=overrideType;exports.assertNever=assertNever;exports.validateEnum=validateEnum;exports.mapAndFilter=mapAndFilter;exports.mapAndFind=mapAndFind;exports.isIndexableObject=isIndexableObject;exports.allSettledSafe=allSettledSafe;exports.convertMapsToIndexableObjects=convertMapsToIndexableObjects;exports.getFactoryWithDefault=getFactoryWithDefault;exports.getArrayWithDefault=getArrayWithDefault;exports.getSetWithDefault=getSetWithDefault;exports.getMapWithDefault=getMapWithDefault;exports.releaseAfterUseAsync=releaseAfterUseAsync;exports.prettifyAsyncErrors=prettifyAsyncErrors;exports.prettifySyncErrors=prettifySyncErrors;exports.bufferStream=bufferStream;exports.makeDeferred=makeDeferred;exports.dynamicRequire=dynamicRequire;exports.sortMap=sortMap;exports.buildIgnorePattern=buildIgnorePattern;exports.replaceEnvVariables=replaceEnvVariables;exports.parseBoolean=parseBoolean;exports.parseOptionalBoolean=parseOptionalBoolean;exports.tryParseOptionalBoolean=tryParseOptionalBoolean;exports.isPathLike=isPathLike;exports.mergeIntoTarget=mergeIntoTarget;exports.toMerged=toMerged;exports.groupBy=groupBy;exports.parseInt=parseInt;exports.parseDuration=parseDuration;var tslib_1=(Pa(),vi(Va)),fslib_1=no(),clipanion_1=($c(),vi(rg)),compat_1=kW(),micromatch_1=tslib_1.__importDefault(Ek()),p_limit_1=tslib_1.__importDefault(Dfe()),semver_1=tslib_1.__importDefault(UC()),stream_1=wt("stream");function isTaggedYarnVersion(e){return!!(semver_1.default.valid(e)&&e.match(/^[^-]+(-rc\.[0-9]+)?$/))}function plural(e,{one:t,more:r,zero:n=r}){return e===0?n:e===1?t:r}function escapeRegExp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function overrideType(e){}function assertNever(e){throw new Error(`Assertion failed: Unexpected object '${e}'`)}function validateEnum(e,t){let r=Object.values(e);if(!r.includes(t))throw new clipanion_1.UsageError(`Invalid value for enumeration: ${JSON.stringify(t)} (expected one of ${r.map(n=>JSON.stringify(n)).join(", ")})`);return t}function mapAndFilter(e,t){let r=[];for(let n of e){let a=t(n);a!==mapAndFilterSkip&&r.push(a)}return r}var mapAndFilterSkip=Symbol();mapAndFilter.skip=mapAndFilterSkip;function mapAndFind(e,t){for(let r of e){let n=t(r);if(n!==mapAndFindSkip)return n}}var mapAndFindSkip=Symbol();mapAndFind.skip=mapAndFindSkip;function isIndexableObject(e){return typeof e=="object"&&e!==null}async function allSettledSafe(e){let t=await Promise.allSettled(e),r=[];for(let n of t){if(n.status==="rejected")throw n.reason;r.push(n.value)}return r}function convertMapsToIndexableObjects(e){if(e instanceof Map&&(e=Object.fromEntries(e)),isIndexableObject(e))for(let t of Object.keys(e)){let r=e[t];isIndexableObject(r)&&(e[t]=convertMapsToIndexableObjects(r))}return e}function getFactoryWithDefault(e,t,r){let n=e.get(t);return typeof n>"u"&&e.set(t,n=r()),n}function getArrayWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=[]),r}function getSetWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Set),r}function getMapWithDefault(e,t){let r=e.get(t);return typeof r>"u"&&e.set(t,r=new Map),r}async function releaseAfterUseAsync(e,t){if(t==null)return await e();try{return await e()}finally{await t()}}async function prettifyAsyncErrors(e,t){try{return await e()}catch(r){throw r.message=t(r.message),r}}function prettifySyncErrors(e,t){try{return e()}catch(r){throw r.message=t(r.message),r}}async function bufferStream(e){return await new Promise((t,r)=>{let n=[];e.on("error",a=>{r(a)}),e.on("data",a=>{n.push(a)}),e.on("end",()=>{t(Buffer.concat(n))})})}var BufferStream=class extends stream_1.Transform{constructor(){super(...arguments),this.chunks=[]}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(t),n(null,null)}_flush(t){t(null,Buffer.concat(this.chunks))}};exports.BufferStream=BufferStream;function makeDeferred(){let e,t;return{promise:new Promise((n,a)=>{e=n,t=a}),resolve:e,reject:t}}var AsyncActions=class{constructor(t){this.deferred=new Map,this.promises=new Map,this.limit=(0,p_limit_1.default)(t)}set(t,r){let n=this.deferred.get(t);typeof n>"u"&&this.deferred.set(t,n=makeDeferred());let a=this.limit(()=>r());return this.promises.set(t,a),a.then(()=>{this.promises.get(t)===a&&n.resolve()},o=>{this.promises.get(t)===a&&n.reject(o)}),n.promise}reduce(t,r){let n=this.promises.get(t)??Promise.resolve();this.set(t,()=>r(n))}async wait(){await Promise.all(this.promises.values())}};exports.AsyncActions=AsyncActions;var DefaultStream=class extends stream_1.Transform{constructor(t=Buffer.alloc(0)){super(),this.active=!0,this.ifEmpty=t}_transform(t,r,n){if(r!=="buffer"||!Buffer.isBuffer(t))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,n(null,t)}_flush(t){this.active&&this.ifEmpty.length>0?t(null,this.ifEmpty):t(null)}};exports.DefaultStream=DefaultStream;var realRequire=eval("require");function dynamicRequireNode(e){return realRequire(fslib_1.npath.fromPortablePath(e))}function dynamicRequireNoCache(path){let physicalPath=fslib_1.npath.fromPortablePath(path),currentCacheEntry=realRequire.cache[physicalPath];delete realRequire.cache[physicalPath];let result;try{result=dynamicRequireNode(physicalPath);let freshCacheEntry=realRequire.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children?dynamicModule.children.indexOf(freshCacheEntry):-1;freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{realRequire.cache[physicalPath]=currentCacheEntry}return result}var dynamicRequireFsTimeCache=new Map;function dynamicRequireFsTime(e){let t=dynamicRequireFsTimeCache.get(e),r=fslib_1.xfs.statSync(e);if(t?.mtime===r.mtimeMs)return t.instance;let n=dynamicRequireNoCache(e);return dynamicRequireFsTimeCache.set(e,{mtime:r.mtimeMs,instance:n}),n}var CachingStrategy;(function(e){e[e.NoCache=0]="NoCache",e[e.FsTime=1]="FsTime",e[e.Node=2]="Node"})(CachingStrategy||(exports.CachingStrategy=CachingStrategy={}));function dynamicRequire(e,{cachingStrategy:t=CachingStrategy.Node}={}){switch(t){case CachingStrategy.NoCache:return dynamicRequireNoCache(e);case CachingStrategy.FsTime:return dynamicRequireFsTime(e);case CachingStrategy.Node:return dynamicRequireNode(e);default:throw new Error("Unsupported caching strategy")}}function sortMap(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function buildIgnorePattern(e){return e.length===0?null:e.map(t=>`(${micromatch_1.default.makeRe(t,{windows:!1,dot:!0}).source})`).join("|")}function replaceEnvVariables(e,{env:t}){let r="",n=0,a=0,o=e.matchAll(/\\(?[\\$}])|\$\{(?[a-zA-Z]\w*)(?:-|-|(?=\}))|(?\$\{)|\}/g),l=()=>{let A=a;for(let{0:f,index:I,groups:{variable:C}={}}of o)if(C)a++;else if(f==="}"&&--a0)throw new clipanion_1.UsageError(`Incomplete variable substitution in input: ${e}`);return r+e.slice(n)}function parseBoolean(e){switch(e){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${e}" as a boolean`)}}function parseOptionalBoolean(e){return typeof e>"u"?e:parseBoolean(e)}function tryParseOptionalBoolean(e){try{return parseOptionalBoolean(e)}catch{return null}}function isPathLike(e){return!!(fslib_1.npath.isAbsolute(e)||e.match(/^(\.{1,2}|~)\//))}function mergeIntoTarget(e,...t){let r=l=>({value:l}),n=r(e),a=t.map(l=>r(l)),{value:o}=(0,compat_1.mergeWith)(n,...a,(l,A)=>{if(Array.isArray(l)&&Array.isArray(A)){for(let f of A)l.find(I=>(0,compat_1.isEqual)(I,f))||l.push(f);return l}});return o}function toMerged(...e){return mergeIntoTarget({},...e)}function groupBy(e,t){let r=Object.create(null);for(let n of e){let a=n[t];r[a]??=[],r[a].push(n)}return r}function parseInt(e){return typeof e=="string"?Number.parseInt(e,10):e}var DURATION_UNITS={ms:1,s:1e3,m:60*1e3,h:60*60*1e3,d:24*60*60*1e3,w:7*24*60*60*1e3},DURATION_REGEXP=new RegExp(`^(?\\d*\\.?\\d+)(?${Object.keys(DURATION_UNITS).join("|")})?$`);function parseDuration(e,t){let r=DURATION_REGEXP.exec(e)?.groups;if(!r)throw new Error(`Couldn't parse "${e}" as a duration`);if(r.unit===void 0)return parseFloat(r.num);let n=DURATION_UNITS[r.unit];if(!n)throw new Error(`Invalid duration unit "${r.unit}"`);return parseFloat(r.num)*n/DURATION_UNITS[t]}});var Qfe=H(loe=>{"use strict";Object.defineProperty(loe,"__esModule",{value:!0});loe.PackageExtensionStatus=loe.PackageExtensionType=loe.LinkType=void 0;var tDn;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(tDn||(loe.LinkType=tDn={}));var rDn;(function(e){e.Dependency="Dependency",e.PeerDependency="PeerDependency",e.PeerDependencyMeta="PeerDependencyMeta"})(rDn||(loe.PackageExtensionType=rDn={}));var nDn;(function(e){e.Inactive="inactive",e.Redundant="redundant",e.Active="active"})(nDn||(loe.PackageExtensionStatus=nDn={}))});var rM=H(Wu=>{"use strict";Object.defineProperty(Wu,"__esModule",{value:!0});Wu.LogLevel=Wu.supportsHyperlinks=Wu.supportsColor=Wu.Style=Wu.Type=Wu.stripAnsi=void 0;Wu.tuple=Vko;Wu.applyStyle=aDn;Wu.applyColor=eb;Wu.applyHyperlink=cDn;Wu.pretty=Xfe;Wu.prettyList=Wko;Wu.json=lDn;Wu.jsonOrPretty=Oko;Wu.mark=Mko;Wu.prettyField=Hko;Wu.prettyTruncatedLocatorList=Yko;Wu.addLogFilterSupport=Qko;var zSe=(Pa(),vi(Va)),iDn=no(),yut=zSe.__importDefault(VK()),Cut=zSe.__importDefault(Nfe()),Gko=($c(),vi(rg)),Fko=zSe.__importDefault(Ek()),oDn=zSe.__importDefault(q5());Wu.stripAnsi=oDn.default;var mut=M9(),Zko=zSe.__importStar(xW()),DE=zSe.__importStar(uG()),jSe=Qfe();Wu.Type={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",STRING:"STRING",BOOLEAN:"BOOLEAN",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"};var but;(function(e){e[e.BOLD=2]="BOLD"})(but||(Wu.Style=but={}));var Pcr=Cut.default.GITHUB_ACTIONS?{level:2}:yut.default.supportsColor?{level:yut.default.supportsColor.level}:{level:0};Wu.supportsColor=Pcr.level!==0;Wu.supportsHyperlinks=Wu.supportsColor&&!Cut.default.GITHUB_ACTIONS&&!Cut.default.CIRCLE&&!Cut.default.GITLAB;var Vcr=new yut.default.Instance(Pcr),Lko=new Map([[Wu.Type.NO_HINT,null],[Wu.Type.NULL,["#a853b5",129]],[Wu.Type.SCOPE,["#d75f00",166]],[Wu.Type.NAME,["#d7875f",173]],[Wu.Type.RANGE,["#00afaf",37]],[Wu.Type.REFERENCE,["#87afff",111]],[Wu.Type.NUMBER,["#ffd700",220]],[Wu.Type.STRING,["#b4bd68",32]],[Wu.Type.BOOLEAN,["#faa023",209]],[Wu.Type.PATH,["#d75fd7",170]],[Wu.Type.URL,["#d75fd7",170]],[Wu.Type.ADDED,["#5faf00",70]],[Wu.Type.REMOVED,["#ff3131",160]],[Wu.Type.CODE,["#87afff",111]],[Wu.Type.SIZE,["#ffd700",220]]]),lG=e=>e;function sDn(e){let t=["KiB","MiB","GiB","TiB"],r=t.length;for(;r>1&&e<1024**r;)r-=1;let n=1024**r;return`${Math.floor(e*100/n)/100} ${t[r-1]}`}function _ut(e,t){if(Array.isArray(t))return t.length===0?eb(e,"[]",Wu.Type.CODE):eb(e,"[ ",Wu.Type.CODE)+t.map(r=>_ut(e,r)).join(", ")+eb(e," ]",Wu.Type.CODE);if(typeof t=="string")return eb(e,JSON.stringify(t),Wu.Type.STRING);if(typeof t=="number")return eb(e,JSON.stringify(t),Wu.Type.NUMBER);if(typeof t=="boolean")return eb(e,JSON.stringify(t),Wu.Type.BOOLEAN);if(t===null)return eb(e,"null",Wu.Type.NULL);if(typeof t=="object"&&Object.getPrototypeOf(t)===Object.prototype){let r=Object.entries(t);return r.length===0?eb(e,"{}",Wu.Type.CODE):eb(e,"{ ",Wu.Type.CODE)+r.map(([n,a])=>`${_ut(e,n)}: ${_ut(e,a)}`).join(", ")+eb(e," }",Wu.Type.CODE)}if(typeof t>"u")return eb(e,"undefined",Wu.Type.NULL);throw new Error("Assertion failed: The value doesn't seem to be a valid JSON object")}var Eut={[Wu.Type.ID]:lG({pretty:(e,t)=>typeof t=="number"?eb(e,`${t}`,Wu.Type.NUMBER):eb(e,t,Wu.Type.CODE),json:e=>e}),[Wu.Type.INSPECT]:lG({pretty:(e,t)=>_ut(e,t),json:e=>e}),[Wu.Type.NUMBER]:lG({pretty:(e,t)=>eb(e,`${t}`,Wu.Type.NUMBER),json:e=>e}),[Wu.Type.IDENT]:lG({pretty:(e,t)=>DE.prettyIdent(e,t),json:e=>DE.stringifyIdent(e)}),[Wu.Type.LOCATOR]:lG({pretty:(e,t)=>DE.prettyLocator(e,t),json:e=>DE.stringifyLocator(e)}),[Wu.Type.DESCRIPTOR]:lG({pretty:(e,t)=>DE.prettyDescriptor(e,t),json:e=>DE.stringifyDescriptor(e)}),[Wu.Type.RESOLUTION]:lG({pretty:(e,{descriptor:t,locator:r})=>DE.prettyResolution(e,t,r),json:({descriptor:e,locator:t})=>({descriptor:DE.stringifyDescriptor(e),locator:t!==null?DE.stringifyLocator(t):null})}),[Wu.Type.DEPENDENT]:lG({pretty:(e,{locator:t,descriptor:r})=>DE.prettyDependent(e,t,r),json:({locator:e,descriptor:t})=>({locator:DE.stringifyLocator(e),descriptor:DE.stringifyDescriptor(t)})}),[Wu.Type.PACKAGE_EXTENSION]:lG({pretty:(e,t)=>{switch(t.type){case jSe.PackageExtensionType.Dependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"dependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependencies",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,t.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.prettyIdent(e,t.parentDescriptor)} \u27A4 ${eb(e,"peerDependenciesMeta",Wu.Type.CODE)} \u27A4 ${DE.prettyIdent(e,DE.parseIdent(t.selector))} \u27A4 ${eb(e,t.key,Wu.Type.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}},json:e=>{switch(e.type){case jSe.PackageExtensionType.Dependency:return`${DE.stringifyIdent(e.parentDescriptor)} > ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependency:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${DE.stringifyIdent(e.descriptor)}`;case jSe.PackageExtensionType.PeerDependencyMeta:return`${DE.stringifyIdent(e.parentDescriptor)} >> ${e.selector} / ${e.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}}}),[Wu.Type.SETTING]:lG({pretty:(e,t)=>(e.get(t),cDn(e,eb(e,t,Wu.Type.CODE),`https://yarnpkg.com/configuration/yarnrc#${t}`)),json:e=>e}),[Wu.Type.DURATION]:lG({pretty:(e,t)=>{if(t>1e3*60){let r=Math.floor(t/1e3/60),n=Math.ceil((t-r*60*1e3)/1e3);return n===0?`${r}m`:`${r}m ${n}s`}else{let r=Math.floor(t/1e3),n=t-r*1e3;return n===0?`${r}s`:`${r}s ${n}ms`}},json:e=>e}),[Wu.Type.SIZE]:lG({pretty:(e,t)=>eb(e,sDn(t),Wu.Type.NUMBER),json:e=>e}),[Wu.Type.SIZE_DIFF]:lG({pretty:(e,t)=>{let r=t>=0?"+":"-",n=r==="+"?Wu.Type.REMOVED:Wu.Type.ADDED;return eb(e,`${r} ${sDn(Math.max(Math.abs(t),1))}`,n)},json:e=>e}),[Wu.Type.PATH]:lG({pretty:(e,t)=>eb(e,iDn.npath.fromPortablePath(t),Wu.Type.PATH),json:e=>iDn.npath.fromPortablePath(e)}),[Wu.Type.MARKDOWN]:lG({pretty:(e,{text:t,format:r,paragraphs:n})=>(0,Gko.formatMarkdownish)(t,{format:r,paragraphs:n}),json:({text:e})=>e}),[Wu.Type.MARKDOWN_INLINE]:lG({pretty:(e,t)=>(t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(r,n,a)=>Xfe(e,n+a+n,Wu.Type.CODE)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,n,a)=>aDn(e,a,but.BOLD)),t),json:e=>e})};function Vko(e,t){return[t,e]}function aDn(e,t,r){return e.get("enableColors")&&r&but.BOLD&&(t=yut.default.bold(t)),t}function eb(e,t,r){if(!e.get("enableColors"))return t;let n=Lko.get(r);if(n===null)return t;let a=typeof n>"u"?r:Pcr.level>=3?n[0]:n[1],o=typeof a=="number"?Vcr.ansi256(a):a.startsWith("#")?Vcr.hex(a):Vcr[a];if(typeof o!="function")throw new Error(`Invalid format type ${a}`);return o(t)}var Pko=!!process.env.KONSOLE_VERSION;function cDn(e,t,r){return e.get("enableHyperlinks")?Pko?`\x1B]8;;${r}\x1B\\${t}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${t}\x1B]8;;\x07`:t}function Xfe(e,t,r){if(t===null)return eb(e,"null",Wu.Type.NULL);if(Object.hasOwn(Eut,r))return Eut[r].pretty(e,t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return eb(e,t,r)}function Wko(e,t,r,{separator:n=", "}={}){return[...t].map(a=>Xfe(e,a,r)).join(n)}function lDn(e,t){if(e===null)return null;if(Object.hasOwn(Eut,t))return Zko.overrideType(t),Eut[t].json(e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return e}function Oko(e,t,[r,n]){return e?lDn(r,n):Xfe(t,r,n)}function Mko(e){return{Check:eb(e,"\u2713","green"),Cross:eb(e,"\u2718","red"),Question:eb(e,"?","cyan")}}function Hko(e,{label:t,value:[r,n]}){return`${Xfe(e,t,Wu.Type.CODE)}: ${Xfe(e,r,n)}`}function Yko(e,t,r){let n=[],a=[...t],o=r;for(;a.length>0;){let I=a[0],C=`${DE.prettyLocator(e,I)}, `,b=DE.prettyLocatorNoColors(I).length+2;if(n.length>0&&oI).join("").slice(0,-2);let l="X".repeat(a.length.toString().length),A=`and ${l} more.`,f=a.length;for(;n.length>1&&oI).join(""),A.replace(l,Xfe(e,f,Wu.Type.NUMBER))].join("")}var uoe;(function(e){e.Error="error",e.Warning="warning",e.Info="info",e.Discard="discard"})(uoe||(Wu.LogLevel=uoe={}));function Qko(e,{configuration:t}){let r=t.get("logFilters"),n=new Map,a=new Map,o=[];for(let b of r){let E=b.get("level");if(typeof E>"u")continue;let N=b.get("code");typeof N<"u"&&n.set(N,E);let B=b.get("text");typeof B<"u"&&a.set(B,E);let F=b.get("pattern");typeof F<"u"&&o.push([Fko.default.matcher(F,{contains:!0}),E])}o.reverse();let l=(b,E,N)=>{if(b===null||b===mut.MessageName.UNNAMED)return N;let B=a.size>0||o.length>0?(0,oDn.default)(E):E;if(a.size>0){let F=a.get(B);if(typeof F<"u")return F??N}if(o.length>0){for(let[F,Q]of o)if(F(B))return Q??N}if(n.size>0){let F=n.get((0,mut.stringifyMessageName)(b));if(typeof F<"u")return F??N}return N},A=e.reportInfo,f=e.reportWarning,I=e.reportError,C=function(b,E,N,B){switch(l(E,N,B)){case uoe.Info:A.call(b,E,N);break;case uoe.Warning:f.call(b,E??mut.MessageName.UNNAMED,N);break;case uoe.Error:I.call(b,E??mut.MessageName.UNNAMED,N);break}};e.reportInfo=function(...b){return C(this,...b,uoe.Info)},e.reportWarning=function(...b){return C(this,...b,uoe.Warning)},e.reportError=function(...b){return C(this,...b,uoe.Error)}}});var uDn=H(qSe=>{"use strict";Object.defineProperty(qSe,"__esModule",{value:!0});qSe.splitWhen=qSe.flatten=void 0;function Xko(e){return e.reduce((t,r)=>[].concat(t,r),[])}qSe.flatten=Xko;function Jko(e,t){let r=[[]],n=0;for(let a of e)t(a)?(n++,r[n]=[]):r[n].push(a);return r}qSe.splitWhen=Jko});var gDn=H(Sut=>{"use strict";Object.defineProperty(Sut,"__esModule",{value:!0});Sut.isEnoentCodeError=void 0;function Uko(e){return e.code==="ENOENT"}Sut.isEnoentCodeError=Uko});var ADn=H(vut=>{"use strict";Object.defineProperty(vut,"__esModule",{value:!0});vut.createDirentFromStats=void 0;var Wcr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Kko(e,t){return new Wcr(e,t)}vut.createDirentFromStats=Kko});var IDn=H(eT=>{"use strict";Object.defineProperty(eT,"__esModule",{value:!0});eT.convertPosixPathToPattern=eT.convertWindowsPathToPattern=eT.convertPathToPattern=eT.escapePosixPath=eT.escapeWindowsPath=eT.escape=eT.removeLeadingDotSegment=eT.makeAbsolute=eT.unixify=void 0;var jko=wt("os"),zko=wt("path"),dDn=jko.platform()==="win32",qko=2,$ko=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,exo=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,txo=/^\\\\([.?])/,rxo=/\\(?![!()+@[\]{}])/g;function nxo(e){return e.replace(/\\/g,"/")}eT.unixify=nxo;function ixo(e,t){return zko.resolve(e,t)}eT.makeAbsolute=ixo;function sxo(e){if(e.charAt(0)==="."){let t=e.charAt(1);if(t==="/"||t==="\\")return e.slice(qko)}return e}eT.removeLeadingDotSegment=sxo;eT.escape=dDn?Ocr:Mcr;function Ocr(e){return e.replace(exo,"\\$2")}eT.escapeWindowsPath=Ocr;function Mcr(e){return e.replace($ko,"\\$2")}eT.escapePosixPath=Mcr;eT.convertPathToPattern=dDn?pDn:fDn;function pDn(e){return Ocr(e).replace(txo,"//$1").replace(rxo,"/")}eT.convertWindowsPathToPattern=pDn;function fDn(e){return Mcr(e)}eT.convertPosixPathToPattern=fDn});var mDn=H((RKl,hDn)=>{hDn.exports=function(t){if(typeof t!="string"||t==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(t);){if(r[2])return!0;t=t.slice(r.index+r[0].length)}return!1}});var yDn=H((NKl,_Dn)=>{var oxo=mDn(),CDn={"{":"}","(":")","[":"]"},axo=function(e){if(e[0]==="!")return!0;for(var t=0,r=-2,n=-2,a=-2,o=-2,l=-2;tt&&(l===-1||l>n||(l=e.indexOf("\\",t),l===-1||l>n)))||a!==-1&&e[t]==="{"&&e[t+1]!=="}"&&(a=e.indexOf("}",t),a>t&&(l=e.indexOf("\\",t),l===-1||l>a))||o!==-1&&e[t]==="("&&e[t+1]==="?"&&/[:!=]/.test(e[t+2])&&e[t+3]!==")"&&(o=e.indexOf(")",t),o>t&&(l=e.indexOf("\\",t),l===-1||l>o))||r!==-1&&e[t]==="("&&e[t+1]!=="|"&&(rr&&(l=e.indexOf("\\",r),l===-1||l>o))))return!0;if(e[t]==="\\"){var A=e[t+1];t+=2;var f=CDn[A];if(f){var I=e.indexOf(f,t);I!==-1&&(t=I+1)}if(e[t]==="!")return!0}else t++}return!1},cxo=function(e){if(e[0]==="!")return!0;for(var t=0;t{"use strict";var lxo=yDn(),uxo=wt("path").posix.dirname,gxo=wt("os").platform()==="win32",Hcr="/",Axo=/\\/g,dxo=/[\{\[].*[\}\]]$/,pxo=/(^|[^\\])([\{\[]|\([^\)]+$)/,fxo=/\\([\!\*\?\|\[\]\(\)\{\}])/g;bDn.exports=function(t,r){var n=Object.assign({flipBackslashes:!0},r);n.flipBackslashes&&gxo&&t.indexOf(Hcr)<0&&(t=t.replace(Axo,Hcr)),dxo.test(t)&&(t+=Hcr),t+="a";do t=uxo(t);while(lxo(t)||pxo.test(t));return t.replace(fxo,"$1")}});var DDn=H(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});oI.removeDuplicateSlashes=oI.matchAny=oI.convertPatternsToRe=oI.makeRe=oI.getPatternParts=oI.expandBraceExpansion=oI.expandPatternsWithBraceExpansion=oI.isAffectDepthOfReadingPattern=oI.endsWithSlashGlobStar=oI.hasGlobStar=oI.getBaseDirectory=oI.isPatternRelatedToParentDirectory=oI.getPatternsOutsideCurrentDirectory=oI.getPatternsInsideCurrentDirectory=oI.getPositivePatterns=oI.getNegativePatterns=oI.isPositivePattern=oI.isNegativePattern=oI.convertToNegativePattern=oI.convertToPositivePattern=oI.isDynamicPattern=oI.isStaticPattern=void 0;var Ixo=wt("path"),hxo=EDn(),Ycr=Ek(),SDn="**",mxo="\\",Cxo=/[*?]|^!/,_xo=/\[[^[]*]/,yxo=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,bxo=/[!*+?@]\([^(]*\)/,Exo=/,|\.\./,Sxo=/(?!^)\/{2,}/g;function vDn(e,t={}){return!BDn(e,t)}oI.isStaticPattern=vDn;function BDn(e,t={}){return e===""?!1:!!(t.caseSensitiveMatch===!1||e.includes(mxo)||Cxo.test(e)||_xo.test(e)||yxo.test(e)||t.extglob!==!1&&bxo.test(e)||t.braceExpansion!==!1&&vxo(e))}oI.isDynamicPattern=BDn;function vxo(e){let t=e.indexOf("{");if(t===-1)return!1;let r=e.indexOf("}",t+1);if(r===-1)return!1;let n=e.slice(t,r);return Exo.test(n)}function Bxo(e){return But(e)?e.slice(1):e}oI.convertToPositivePattern=Bxo;function wxo(e){return"!"+e}oI.convertToNegativePattern=wxo;function But(e){return e.startsWith("!")&&e[1]!=="("}oI.isNegativePattern=But;function wDn(e){return!But(e)}oI.isPositivePattern=wDn;function Txo(e){return e.filter(But)}oI.getNegativePatterns=Txo;function Rxo(e){return e.filter(wDn)}oI.getPositivePatterns=Rxo;function Nxo(e){return e.filter(t=>!Qcr(t))}oI.getPatternsInsideCurrentDirectory=Nxo;function Dxo(e){return e.filter(Qcr)}oI.getPatternsOutsideCurrentDirectory=Dxo;function Qcr(e){return e.startsWith("..")||e.startsWith("./..")}oI.isPatternRelatedToParentDirectory=Qcr;function kxo(e){return hxo(e,{flipBackslashes:!1})}oI.getBaseDirectory=kxo;function xxo(e){return e.includes(SDn)}oI.hasGlobStar=xxo;function TDn(e){return e.endsWith("/"+SDn)}oI.endsWithSlashGlobStar=TDn;function Gxo(e){let t=Ixo.basename(e);return TDn(e)||vDn(t)}oI.isAffectDepthOfReadingPattern=Gxo;function Fxo(e){return e.reduce((t,r)=>t.concat(RDn(r)),[])}oI.expandPatternsWithBraceExpansion=Fxo;function RDn(e){let t=Ycr.braces(e,{expand:!0,nodupes:!0,keepEscaping:!0});return t.sort((r,n)=>r.length-n.length),t.filter(r=>r!=="")}oI.expandBraceExpansion=RDn;function Zxo(e,t){let{parts:r}=Ycr.scan(e,Object.assign(Object.assign({},t),{parts:!0}));return r.length===0&&(r=[e]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}oI.getPatternParts=Zxo;function NDn(e,t){return Ycr.makeRe(e,t)}oI.makeRe=NDn;function Lxo(e,t){return e.map(r=>NDn(r,t))}oI.convertPatternsToRe=Lxo;function Vxo(e,t){return t.some(r=>r.test(e))}oI.matchAny=Vxo;function Pxo(e){return e.replace(Sxo,"/")}oI.removeDuplicateSlashes=Pxo});var Xcr=H((xKl,GDn)=>{"use strict";var Wxo=wt("stream"),kDn=Wxo.PassThrough,Oxo=Array.prototype.slice;GDn.exports=Mxo;function Mxo(){let e=[],t=Oxo.call(arguments),r=!1,n=t[t.length-1];n&&!Array.isArray(n)&&n.pipe==null?t.pop():n={};let a=n.end!==!1,o=n.pipeError===!0;n.objectMode==null&&(n.objectMode=!0),n.highWaterMark==null&&(n.highWaterMark=64*1024);let l=kDn(n);function A(){for(let C=0,b=arguments.length;C0||(r=!1,f())}function N(B){function F(){B.removeListener("merge2UnpipeEnd",F),B.removeListener("end",F),o&&B.removeListener("error",Q),E()}function Q(X){l.emit("error",X)}if(B._readableState.endEmitted)return E();B.on("merge2UnpipeEnd",F),B.on("end",F),o&&B.on("error",Q),B.pipe(l,{end:!1}),B.resume()}for(let B=0;B{"use strict";Object.defineProperty(wut,"__esModule",{value:!0});wut.merge=void 0;var Hxo=Xcr();function Yxo(e){let t=Hxo(e);return e.forEach(r=>{r.once("error",n=>t.emit("error",n))}),t.once("close",()=>FDn(e)),t.once("end",()=>FDn(e)),t}wut.merge=Yxo;function FDn(e){e.forEach(t=>t.emit("close"))}});var LDn=H($Se=>{"use strict";Object.defineProperty($Se,"__esModule",{value:!0});$Se.isEmpty=$Se.isString=void 0;function Qxo(e){return typeof e=="string"}$Se.isString=Qxo;function Xxo(e){return e===""}$Se.isEmpty=Xxo});var r$=H(gG=>{"use strict";Object.defineProperty(gG,"__esModule",{value:!0});gG.string=gG.stream=gG.pattern=gG.path=gG.fs=gG.errno=gG.array=void 0;var Jxo=uDn();gG.array=Jxo;var Uxo=gDn();gG.errno=Uxo;var Kxo=ADn();gG.fs=Kxo;var jxo=IDn();gG.path=jxo;var zxo=DDn();gG.pattern=zxo;var qxo=ZDn();gG.stream=qxo;var $xo=LDn();gG.string=$xo});var ODn=H(AG=>{"use strict";Object.defineProperty(AG,"__esModule",{value:!0});AG.convertPatternGroupToTask=AG.convertPatternGroupsToTasks=AG.groupPatternsByBaseDirectory=AG.getNegativePatternsAsPositive=AG.getPositivePatterns=AG.convertPatternsToTasks=AG.generate=void 0;var sX=r$();function eGo(e,t){let r=VDn(e,t),n=VDn(t.ignore,t),a=PDn(r),o=WDn(r,n),l=a.filter(C=>sX.pattern.isStaticPattern(C,t)),A=a.filter(C=>sX.pattern.isDynamicPattern(C,t)),f=Jcr(l,o,!1),I=Jcr(A,o,!0);return f.concat(I)}AG.generate=eGo;function VDn(e,t){let r=e;return t.braceExpansion&&(r=sX.pattern.expandPatternsWithBraceExpansion(r)),t.baseNameMatch&&(r=r.map(n=>n.includes("/")?n:`**/${n}`)),r.map(n=>sX.pattern.removeDuplicateSlashes(n))}function Jcr(e,t,r){let n=[],a=sX.pattern.getPatternsOutsideCurrentDirectory(e),o=sX.pattern.getPatternsInsideCurrentDirectory(e),l=Ucr(a),A=Ucr(o);return n.push(...Kcr(l,t,r)),"."in A?n.push(jcr(".",o,t,r)):n.push(...Kcr(A,t,r)),n}AG.convertPatternsToTasks=Jcr;function PDn(e){return sX.pattern.getPositivePatterns(e)}AG.getPositivePatterns=PDn;function WDn(e,t){return sX.pattern.getNegativePatterns(e).concat(t).map(sX.pattern.convertToPositivePattern)}AG.getNegativePatternsAsPositive=WDn;function Ucr(e){let t={};return e.reduce((r,n)=>{let a=sX.pattern.getBaseDirectory(n);return a in r?r[a].push(n):r[a]=[n],r},t)}AG.groupPatternsByBaseDirectory=Ucr;function Kcr(e,t,r){return Object.keys(e).map(n=>jcr(n,e[n],t,r))}AG.convertPatternGroupsToTasks=Kcr;function jcr(e,t,r,n){return{dynamic:n,positive:t,negative:r,base:e,patterns:[].concat(t,r.map(sX.pattern.convertToNegativePattern))}}AG.convertPatternGroupToTask=jcr});var HDn=H(Tut=>{"use strict";Object.defineProperty(Tut,"__esModule",{value:!0});Tut.read=void 0;function tGo(e,t,r){t.fs.lstat(e,(n,a)=>{if(n!==null){MDn(r,n);return}if(!a.isSymbolicLink()||!t.followSymbolicLink){zcr(r,a);return}t.fs.stat(e,(o,l)=>{if(o!==null){if(t.throwErrorOnBrokenSymbolicLink){MDn(r,o);return}zcr(r,a);return}t.markSymbolicLink&&(l.isSymbolicLink=()=>!0),zcr(r,l)})})}Tut.read=tGo;function MDn(e,t){e(t)}function zcr(e,t){e(null,t)}});var YDn=H(Rut=>{"use strict";Object.defineProperty(Rut,"__esModule",{value:!0});Rut.read=void 0;function rGo(e,t){let r=t.fs.lstatSync(e);if(!r.isSymbolicLink()||!t.followSymbolicLink)return r;try{let n=t.fs.statSync(e);return t.markSymbolicLink&&(n.isSymbolicLink=()=>!0),n}catch(n){if(!t.throwErrorOnBrokenSymbolicLink)return r;throw n}}Rut.read=rGo});var QDn=H(goe=>{"use strict";Object.defineProperty(goe,"__esModule",{value:!0});goe.createFileSystemAdapter=goe.FILE_SYSTEM_ADAPTER=void 0;var Nut=wt("fs");goe.FILE_SYSTEM_ADAPTER={lstat:Nut.lstat,stat:Nut.stat,lstatSync:Nut.lstatSync,statSync:Nut.statSync};function nGo(e){return e===void 0?goe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},goe.FILE_SYSTEM_ADAPTER),e)}goe.createFileSystemAdapter=nGo});var XDn=H($cr=>{"use strict";Object.defineProperty($cr,"__esModule",{value:!0});var iGo=QDn(),qcr=class{constructor(t={}){this._options=t,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=iGo.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(t,r){return t??r}};$cr.default=qcr});var Jfe=H(Aoe=>{"use strict";Object.defineProperty(Aoe,"__esModule",{value:!0});Aoe.statSync=Aoe.stat=Aoe.Settings=void 0;var JDn=HDn(),sGo=YDn(),elr=XDn();Aoe.Settings=elr.default;function oGo(e,t,r){if(typeof t=="function"){JDn.read(e,tlr(),t);return}JDn.read(e,tlr(t),r)}Aoe.stat=oGo;function aGo(e,t){let r=tlr(t);return sGo.read(e,r)}Aoe.statSync=aGo;function tlr(e={}){return e instanceof elr.default?e:new elr.default(e)}});var jDn=H((HKl,KDn)=>{var UDn;KDn.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):e=>(UDn||(UDn=Promise.resolve())).then(e).catch(t=>setTimeout(()=>{throw t},0))});var qDn=H((YKl,zDn)=>{zDn.exports=lGo;var cGo=jDn();function lGo(e,t){let r,n,a,o=!0;Array.isArray(e)?(r=[],n=e.length):(a=Object.keys(e),r={},n=a.length);function l(f){function I(){t&&t(f,r),t=null}o?cGo(I):I()}function A(f,I,C){r[f]=C,(--n===0||I)&&l(I)}n?a?a.forEach(function(f){e[f](function(I,C){A(f,I,C)})}):e.forEach(function(f,I){f(function(C,b){A(I,C,b)})}):l(null),o=!1}});var rlr=H(kut=>{"use strict";Object.defineProperty(kut,"__esModule",{value:!0});kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var Dut=process.versions.node.split(".");if(Dut[0]===void 0||Dut[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var $Dn=Number.parseInt(Dut[0],10),uGo=Number.parseInt(Dut[1],10),ekn=10,gGo=10,AGo=$Dn>ekn,dGo=$Dn===ekn&&uGo>=gGo;kut.IS_SUPPORT_READDIR_WITH_FILE_TYPES=AGo||dGo});var tkn=H(xut=>{"use strict";Object.defineProperty(xut,"__esModule",{value:!0});xut.createDirentFromStats=void 0;var nlr=class{constructor(t,r){this.name=t,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function pGo(e,t){return new nlr(e,t)}xut.createDirentFromStats=pGo});var ilr=H(Gut=>{"use strict";Object.defineProperty(Gut,"__esModule",{value:!0});Gut.fs=void 0;var fGo=tkn();Gut.fs=fGo});var slr=H(Fut=>{"use strict";Object.defineProperty(Fut,"__esModule",{value:!0});Fut.joinPathSegments=void 0;function IGo(e,t,r){return e.endsWith(r)?e+t:e+r+t}Fut.joinPathSegments=IGo});var akn=H(doe=>{"use strict";Object.defineProperty(doe,"__esModule",{value:!0});doe.readdir=doe.readdirWithFileTypes=doe.read=void 0;var hGo=Jfe(),rkn=qDn(),mGo=rlr(),nkn=ilr(),ikn=slr();function CGo(e,t,r){if(!t.stats&&mGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES){skn(e,t,r);return}okn(e,t,r)}doe.read=CGo;function skn(e,t,r){t.fs.readdir(e,{withFileTypes:!0},(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(A=>({dirent:A,name:A.name,path:ikn.joinPathSegments(e,A.name,t.pathSegmentSeparator)}));if(!t.followSymbolicLinks){olr(r,o);return}let l=o.map(A=>_Go(A,t));rkn(l,(A,f)=>{if(A!==null){Zut(r,A);return}olr(r,f)})})}doe.readdirWithFileTypes=skn;function _Go(e,t){return r=>{if(!e.dirent.isSymbolicLink()){r(null,e);return}t.fs.stat(e.path,(n,a)=>{if(n!==null){if(t.throwErrorOnBrokenSymbolicLink){r(n);return}r(null,e);return}e.dirent=nkn.fs.createDirentFromStats(e.name,a),r(null,e)})}}function okn(e,t,r){t.fs.readdir(e,(n,a)=>{if(n!==null){Zut(r,n);return}let o=a.map(l=>{let A=ikn.joinPathSegments(e,l,t.pathSegmentSeparator);return f=>{hGo.stat(A,t.fsStatSettings,(I,C)=>{if(I!==null){f(I);return}let b={name:l,path:A,dirent:nkn.fs.createDirentFromStats(l,C)};t.stats&&(b.stats=C),f(null,b)})}});rkn(o,(l,A)=>{if(l!==null){Zut(r,l);return}olr(r,A)})})}doe.readdir=okn;function Zut(e,t){e(t)}function olr(e,t){e(null,t)}});var Akn=H(poe=>{"use strict";Object.defineProperty(poe,"__esModule",{value:!0});poe.readdir=poe.readdirWithFileTypes=poe.read=void 0;var yGo=Jfe(),bGo=rlr(),ckn=ilr(),lkn=slr();function EGo(e,t){return!t.stats&&bGo.IS_SUPPORT_READDIR_WITH_FILE_TYPES?ukn(e,t):gkn(e,t)}poe.read=EGo;function ukn(e,t){return t.fs.readdirSync(e,{withFileTypes:!0}).map(n=>{let a={dirent:n,name:n.name,path:lkn.joinPathSegments(e,n.name,t.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&t.followSymbolicLinks)try{let o=t.fs.statSync(a.path);a.dirent=ckn.fs.createDirentFromStats(a.name,o)}catch(o){if(t.throwErrorOnBrokenSymbolicLink)throw o}return a})}poe.readdirWithFileTypes=ukn;function gkn(e,t){return t.fs.readdirSync(e).map(n=>{let a=lkn.joinPathSegments(e,n,t.pathSegmentSeparator),o=yGo.statSync(a,t.fsStatSettings),l={name:n,path:a,dirent:ckn.fs.createDirentFromStats(n,o)};return t.stats&&(l.stats=o),l})}poe.readdir=gkn});var dkn=H(foe=>{"use strict";Object.defineProperty(foe,"__esModule",{value:!0});foe.createFileSystemAdapter=foe.FILE_SYSTEM_ADAPTER=void 0;var eve=wt("fs");foe.FILE_SYSTEM_ADAPTER={lstat:eve.lstat,stat:eve.stat,lstatSync:eve.lstatSync,statSync:eve.statSync,readdir:eve.readdir,readdirSync:eve.readdirSync};function SGo(e){return e===void 0?foe.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},foe.FILE_SYSTEM_ADAPTER),e)}foe.createFileSystemAdapter=SGo});var pkn=H(clr=>{"use strict";Object.defineProperty(clr,"__esModule",{value:!0});var vGo=wt("path"),BGo=Jfe(),wGo=dkn(),alr=class{constructor(t={}){this._options=t,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=wGo.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,vGo.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new BGo.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};clr.default=alr});var Lut=H(Ioe=>{"use strict";Object.defineProperty(Ioe,"__esModule",{value:!0});Ioe.Settings=Ioe.scandirSync=Ioe.scandir=void 0;var fkn=akn(),TGo=Akn(),llr=pkn();Ioe.Settings=llr.default;function RGo(e,t,r){if(typeof t=="function"){fkn.read(e,ulr(),t);return}fkn.read(e,ulr(t),r)}Ioe.scandir=RGo;function NGo(e,t){let r=ulr(t);return TGo.read(e,r)}Ioe.scandirSync=NGo;function ulr(e={}){return e instanceof llr.default?e:new llr.default(e)}});var hkn=H((e8l,Ikn)=>{"use strict";function DGo(e){var t=new e,r=t;function n(){var o=t;return o.next?t=o.next:(t=new e,r=t),o.next=null,o}function a(o){r.next=o,r=o}return{get:n,release:a}}Ikn.exports=DGo});var Ckn=H((t8l,glr)=>{"use strict";var kGo=hkn();function mkn(e,t,r){if(typeof e=="function"&&(r=t,t=e,e=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var n=kGo(xGo),a=null,o=null,l=0,A=null,f={push:F,drain:nM,saturated:nM,pause:C,paused:!1,get concurrency(){return r},set concurrency(fe){if(!(fe>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=fe,!f.paused)for(;a&&l=r||f.paused?o?(o.next=de,o=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function Q(fe,ue){var de=n.get();de.context=e,de.release=X,de.value=fe,de.callback=ue||nM,de.errorHandler=A,l>=r||f.paused?a?(de.next=a,a=de):(a=de,o=de,f.saturated()):(l++,t.call(e,de.value,de.worked))}function X(fe){fe&&n.release(fe);var ue=a;ue&&l<=r?f.paused?l--:(o===a&&(o=null),a=ue.next,ue.next=null,t.call(e,ue.value,ue.worked),o===null&&f.empty()):--l===0&&f.drain()}function ae(){a=null,o=null,f.drain=nM}function ne(){a=null,o=null,f.drain(),f.drain=nM}function ce(fe){A=fe}}function nM(){}function xGo(){this.value=null,this.callback=nM,this.next=null,this.release=nM,this.context=null,this.errorHandler=null;var e=this;this.worked=function(r,n){var a=e.callback,o=e.errorHandler,l=e.value;e.value=null,e.callback=nM,e.errorHandler&&o(r,l),a.call(e.context,r,n),e.release(e)}}function GGo(e,t,r){typeof e=="function"&&(r=t,t=e,e=null);function n(C,b){t.call(this,C).then(function(E){b(null,E)},b)}var a=mkn(e,n,r),o=a.push,l=a.unshift;return a.push=A,a.unshift=f,a.drained=I,a;function A(C){var b=new Promise(function(E,N){o(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function f(C){var b=new Promise(function(E,N){l(C,function(B,F){if(B){N(B);return}E(F)})});return b.catch(nM),b}function I(){if(a.idle())return new Promise(function(E){E()});var C=a.drain,b=new Promise(function(E){a.drain=function(){C(),E()}});return b}}glr.exports=mkn;glr.exports.promise=GGo});var Vut=H(QK=>{"use strict";Object.defineProperty(QK,"__esModule",{value:!0});QK.joinPathSegments=QK.replacePathSegmentSeparator=QK.isAppliedFilter=QK.isFatalError=void 0;function FGo(e,t){return e.errorFilter===null?!0:!e.errorFilter(t)}QK.isFatalError=FGo;function ZGo(e,t){return e===null||e(t)}QK.isAppliedFilter=ZGo;function LGo(e,t){return e.split(/[/\\]/).join(t)}QK.replacePathSegmentSeparator=LGo;function VGo(e,t,r){return e===""?t:e.endsWith(r)?e+t:e+r+t}QK.joinPathSegments=VGo});var plr=H(dlr=>{"use strict";Object.defineProperty(dlr,"__esModule",{value:!0});var PGo=Vut(),Alr=class{constructor(t,r){this._root=t,this._settings=r,this._root=PGo.replacePathSegmentSeparator(t,r.pathSegmentSeparator)}};dlr.default=Alr});var hlr=H(Ilr=>{"use strict";Object.defineProperty(Ilr,"__esModule",{value:!0});var WGo=wt("events"),OGo=Lut(),MGo=Ckn(),Put=Vut(),HGo=plr(),flr=class extends HGo.default{constructor(t,r){super(t,r),this._settings=r,this._scandir=OGo.scandir,this._emitter=new WGo.EventEmitter,this._queue=MGo(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(t){this._emitter.on("entry",t)}onError(t){this._emitter.once("error",t)}onEnd(t){this._emitter.once("end",t)}_pushToQueue(t,r){let n={directory:t,base:r};this._queue.push(n,a=>{a!==null&&this._handleError(a)})}_worker(t,r){this._scandir(t.directory,this._settings.fsScandirSettings,(n,a)=>{if(n!==null){r(n,void 0);return}for(let o of a)this._handleEntry(o,t.base);r(null,void 0)})}_handleError(t){this._isDestroyed||!Put.isFatalError(this._settings,t)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",t))}_handleEntry(t,r){if(this._isDestroyed||this._isFatalError)return;let n=t.path;r!==void 0&&(t.path=Put.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Put.isAppliedFilter(this._settings.entryFilter,t)&&this._emitEntry(t),t.dirent.isDirectory()&&Put.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_emitEntry(t){this._emitter.emit("entry",t)}};Ilr.default=flr});var _kn=H(Clr=>{"use strict";Object.defineProperty(Clr,"__esModule",{value:!0});var YGo=hlr(),mlr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new YGo.default(this._root,this._settings),this._storage=[]}read(t){this._reader.onError(r=>{QGo(t,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{XGo(t,this._storage)}),this._reader.read()}};Clr.default=mlr;function QGo(e,t){e(t)}function XGo(e,t){e(null,t)}});var ykn=H(ylr=>{"use strict";Object.defineProperty(ylr,"__esModule",{value:!0});var JGo=wt("stream"),UGo=hlr(),_lr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new UGo.default(this._root,this._settings),this._stream=new JGo.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(t=>{this._stream.emit("error",t)}),this._reader.onEntry(t=>{this._stream.push(t)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};ylr.default=_lr});var bkn=H(Elr=>{"use strict";Object.defineProperty(Elr,"__esModule",{value:!0});var KGo=Lut(),Wut=Vut(),jGo=plr(),blr=class extends jGo.default{constructor(){super(...arguments),this._scandir=KGo.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(t,r){this._queue.add({directory:t,base:r})}_handleQueue(){for(let t of this._queue.values())this._handleDirectory(t.directory,t.base)}_handleDirectory(t,r){try{let n=this._scandir(t,this._settings.fsScandirSettings);for(let a of n)this._handleEntry(a,r)}catch(n){this._handleError(n)}}_handleError(t){if(Wut.isFatalError(this._settings,t))throw t}_handleEntry(t,r){let n=t.path;r!==void 0&&(t.path=Wut.joinPathSegments(r,t.name,this._settings.pathSegmentSeparator)),Wut.isAppliedFilter(this._settings.entryFilter,t)&&this._pushToStorage(t),t.dirent.isDirectory()&&Wut.isAppliedFilter(this._settings.deepFilter,t)&&this._pushToQueue(n,r===void 0?void 0:t.path)}_pushToStorage(t){this._storage.push(t)}};Elr.default=blr});var Ekn=H(vlr=>{"use strict";Object.defineProperty(vlr,"__esModule",{value:!0});var zGo=bkn(),Slr=class{constructor(t,r){this._root=t,this._settings=r,this._reader=new zGo.default(this._root,this._settings)}read(){return this._reader.read()}};vlr.default=Slr});var Skn=H(wlr=>{"use strict";Object.defineProperty(wlr,"__esModule",{value:!0});var qGo=wt("path"),$Go=Lut(),Blr=class{constructor(t={}){this._options=t,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,qGo.sep),this.fsScandirSettings=new $Go.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(t,r){return t??r}};wlr.default=Blr});var Mut=H(XK=>{"use strict";Object.defineProperty(XK,"__esModule",{value:!0});XK.Settings=XK.walkStream=XK.walkSync=XK.walk=void 0;var vkn=_kn(),eFo=ykn(),tFo=Ekn(),Tlr=Skn();XK.Settings=Tlr.default;function rFo(e,t,r){if(typeof t=="function"){new vkn.default(e,Out()).read(t);return}new vkn.default(e,Out(t)).read(r)}XK.walk=rFo;function nFo(e,t){let r=Out(t);return new tFo.default(e,r).read()}XK.walkSync=nFo;function iFo(e,t){let r=Out(t);return new eFo.default(e,r).read()}XK.walkStream=iFo;function Out(e={}){return e instanceof Tlr.default?e:new Tlr.default(e)}});var Hut=H(Nlr=>{"use strict";Object.defineProperty(Nlr,"__esModule",{value:!0});var sFo=wt("path"),oFo=Jfe(),Bkn=r$(),Rlr=class{constructor(t){this._settings=t,this._fsStatSettings=new oFo.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(t){return sFo.resolve(this._settings.cwd,t)}_makeEntry(t,r){let n={name:r,path:r,dirent:Bkn.fs.createDirentFromStats(r,t)};return this._settings.stats&&(n.stats=t),n}_isFatalError(t){return!Bkn.errno.isEnoentCodeError(t)&&!this._settings.suppressErrors}};Nlr.default=Rlr});var xlr=H(klr=>{"use strict";Object.defineProperty(klr,"__esModule",{value:!0});var aFo=wt("stream"),cFo=Jfe(),lFo=Mut(),uFo=Hut(),Dlr=class extends uFo.default{constructor(){super(...arguments),this._walkStream=lFo.walkStream,this._stat=cFo.stat}dynamic(t,r){return this._walkStream(t,r)}static(t,r){let n=t.map(this._getFullEntryPath,this),a=new aFo.PassThrough({objectMode:!0});a._write=(o,l,A)=>this._getEntry(n[o],t[o],r).then(f=>{f!==null&&r.entryFilter(f)&&a.push(f),o===n.length-1&&a.end(),A()}).catch(A);for(let o=0;othis._makeEntry(a,r)).catch(a=>{if(n.errorFilter(a))return null;throw a})}_getStat(t){return new Promise((r,n)=>{this._stat(t,this._fsStatSettings,(a,o)=>a===null?r(o):n(a))})}};klr.default=Dlr});var wkn=H(Flr=>{"use strict";Object.defineProperty(Flr,"__esModule",{value:!0});var gFo=Mut(),AFo=Hut(),dFo=xlr(),Glr=class extends AFo.default{constructor(){super(...arguments),this._walkAsync=gFo.walk,this._readerStream=new dFo.default(this._settings)}dynamic(t,r){return new Promise((n,a)=>{this._walkAsync(t,r,(o,l)=>{o===null?n(l):a(o)})})}async static(t,r){let n=[],a=this._readerStream.static(t,r);return new Promise((o,l)=>{a.once("error",l),a.on("data",A=>n.push(A)),a.once("end",()=>o(n))})}};Flr.default=Glr});var Tkn=H(Llr=>{"use strict";Object.defineProperty(Llr,"__esModule",{value:!0});var K3e=r$(),Zlr=class{constructor(t,r,n){this._patterns=t,this._settings=r,this._micromatchOptions=n,this._storage=[],this._fillStorage()}_fillStorage(){for(let t of this._patterns){let r=this._getPatternSegments(t),n=this._splitSegmentsIntoSections(r);this._storage.push({complete:n.length<=1,pattern:t,segments:r,sections:n})}}_getPatternSegments(t){return K3e.pattern.getPatternParts(t,this._micromatchOptions).map(n=>K3e.pattern.isDynamicPattern(n,this._settings)?{dynamic:!0,pattern:n,patternRe:K3e.pattern.makeRe(n,this._micromatchOptions)}:{dynamic:!1,pattern:n})}_splitSegmentsIntoSections(t){return K3e.array.splitWhen(t,r=>r.dynamic&&K3e.pattern.hasGlobStar(r.pattern))}};Llr.default=Zlr});var Rkn=H(Plr=>{"use strict";Object.defineProperty(Plr,"__esModule",{value:!0});var pFo=Tkn(),Vlr=class extends pFo.default{match(t){let r=t.split("/"),n=r.length,a=this._storage.filter(o=>!o.complete||o.segments.length>n);for(let o of a){let l=o.sections[0];if(!o.complete&&n>l.length||r.every((f,I)=>{let C=o.segments[I];return!!(C.dynamic&&C.patternRe.test(f)||!C.dynamic&&C.pattern===f)}))return!0}return!1}};Plr.default=Vlr});var Nkn=H(Olr=>{"use strict";Object.defineProperty(Olr,"__esModule",{value:!0});var Yut=r$(),fFo=Rkn(),Wlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r}getFilter(t,r,n){let a=this._getMatcher(r),o=this._getNegativePatternsRe(n);return l=>this._filter(t,l,a,o)}_getMatcher(t){return new fFo.default(t,this._settings,this._micromatchOptions)}_getNegativePatternsRe(t){let r=t.filter(Yut.pattern.isAffectDepthOfReadingPattern);return Yut.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(t,r,n,a){if(this._isSkippedByDeep(t,r.path)||this._isSkippedSymbolicLink(r))return!1;let o=Yut.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,n)?!1:this._isSkippedByNegativePatterns(o,a)}_isSkippedByDeep(t,r){return this._settings.deep===1/0?!1:this._getEntryLevel(t,r)>=this._settings.deep}_getEntryLevel(t,r){let n=r.split("/").length;if(t==="")return n;let a=t.split("/").length;return n-a}_isSkippedSymbolicLink(t){return!this._settings.followSymbolicLinks&&t.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(t,r){return!this._settings.baseNameMatch&&!r.match(t)}_isSkippedByNegativePatterns(t,r){return!Yut.pattern.matchAny(t,r)}};Olr.default=Wlr});var Dkn=H(Hlr=>{"use strict";Object.defineProperty(Hlr,"__esModule",{value:!0});var Ufe=r$(),Mlr=class{constructor(t,r){this._settings=t,this._micromatchOptions=r,this.index=new Map}getFilter(t,r){let n=Ufe.pattern.convertPatternsToRe(t,this._micromatchOptions),a=Ufe.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return o=>this._filter(o,n,a)}_filter(t,r,n){let a=Ufe.path.removeLeadingDotSegment(t.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(t)||this._onlyDirectoryFilter(t)||this._isSkippedByAbsoluteNegativePatterns(a,n))return!1;let o=t.dirent.isDirectory(),l=this._isMatchToPatterns(a,r,o)&&!this._isMatchToPatterns(a,n,o);return this._settings.unique&&l&&this._createIndexRecord(a),l}_isDuplicateEntry(t){return this.index.has(t)}_createIndexRecord(t){this.index.set(t,void 0)}_onlyFileFilter(t){return this._settings.onlyFiles&&!t.dirent.isFile()}_onlyDirectoryFilter(t){return this._settings.onlyDirectories&&!t.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(t,r){if(!this._settings.absolute)return!1;let n=Ufe.path.makeAbsolute(this._settings.cwd,t);return Ufe.pattern.matchAny(n,r)}_isMatchToPatterns(t,r,n){let a=Ufe.pattern.matchAny(t,r);return!a&&n?Ufe.pattern.matchAny(t+"/",r):a}};Hlr.default=Mlr});var kkn=H(Qlr=>{"use strict";Object.defineProperty(Qlr,"__esModule",{value:!0});var IFo=r$(),Ylr=class{constructor(t){this._settings=t}getFilter(){return t=>this._isNonFatalError(t)}_isNonFatalError(t){return IFo.errno.isEnoentCodeError(t)||this._settings.suppressErrors}};Qlr.default=Ylr});var Gkn=H(Jlr=>{"use strict";Object.defineProperty(Jlr,"__esModule",{value:!0});var xkn=r$(),Xlr=class{constructor(t){this._settings=t}getTransformer(){return t=>this._transform(t)}_transform(t){let r=t.path;return this._settings.absolute&&(r=xkn.path.makeAbsolute(this._settings.cwd,r),r=xkn.path.unixify(r)),this._settings.markDirectories&&t.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},t),{path:r}):r}};Jlr.default=Xlr});var Qut=H(Klr=>{"use strict";Object.defineProperty(Klr,"__esModule",{value:!0});var hFo=wt("path"),mFo=Nkn(),CFo=Dkn(),_Fo=kkn(),yFo=Gkn(),Ulr=class{constructor(t){this._settings=t,this.errorFilter=new _Fo.default(this._settings),this.entryFilter=new CFo.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new mFo.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new yFo.default(this._settings)}_getRootDirectory(t){return hFo.resolve(this._settings.cwd,t.base)}_getReaderOptions(t){let r=t.base==="."?"":t.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,t.positive,t.negative),entryFilter:this.entryFilter.getFilter(t.positive,t.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Klr.default=Ulr});var Fkn=H(zlr=>{"use strict";Object.defineProperty(zlr,"__esModule",{value:!0});var bFo=wkn(),EFo=Qut(),jlr=class extends EFo.default{constructor(){super(...arguments),this._reader=new bFo.default(this._settings)}async read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return(await this.api(r,t,n)).map(o=>n.transform(o))}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};zlr.default=jlr});var Zkn=H($lr=>{"use strict";Object.defineProperty($lr,"__esModule",{value:!0});var SFo=wt("stream"),vFo=xlr(),BFo=Qut(),qlr=class extends BFo.default{constructor(){super(...arguments),this._reader=new vFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t),a=this.api(r,t,n),o=new SFo.Readable({objectMode:!0,read:()=>{}});return a.once("error",l=>o.emit("error",l)).on("data",l=>o.emit("data",n.transform(l))).once("end",()=>o.emit("end")),o.once("close",()=>a.destroy()),o}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};$lr.default=qlr});var Lkn=H(tur=>{"use strict";Object.defineProperty(tur,"__esModule",{value:!0});var wFo=Jfe(),TFo=Mut(),RFo=Hut(),eur=class extends RFo.default{constructor(){super(...arguments),this._walkSync=TFo.walkSync,this._statSync=wFo.statSync}dynamic(t,r){return this._walkSync(t,r)}static(t,r){let n=[];for(let a of t){let o=this._getFullEntryPath(a),l=this._getEntry(o,a,r);l===null||!r.entryFilter(l)||n.push(l)}return n}_getEntry(t,r,n){try{let a=this._getStat(t);return this._makeEntry(a,r)}catch(a){if(n.errorFilter(a))return null;throw a}}_getStat(t){return this._statSync(t,this._fsStatSettings)}};tur.default=eur});var Vkn=H(nur=>{"use strict";Object.defineProperty(nur,"__esModule",{value:!0});var NFo=Lkn(),DFo=Qut(),rur=class extends DFo.default{constructor(){super(...arguments),this._reader=new NFo.default(this._settings)}read(t){let r=this._getRootDirectory(t),n=this._getReaderOptions(t);return this.api(r,t,n).map(n.transform)}api(t,r,n){return r.dynamic?this._reader.dynamic(t,n):this._reader.static(r.patterns,n)}};nur.default=rur});var Pkn=H(rve=>{"use strict";Object.defineProperty(rve,"__esModule",{value:!0});rve.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var tve=wt("fs"),kFo=wt("os"),xFo=Math.max(kFo.cpus().length,1);rve.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:tve.lstat,lstatSync:tve.lstatSync,stat:tve.stat,statSync:tve.statSync,readdir:tve.readdir,readdirSync:tve.readdirSync};var iur=class{constructor(t={}){this._options=t,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,xFo),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(t,r){return t===void 0?r:t}_getFileSystemMethods(t={}){return Object.assign(Object.assign({},rve.DEFAULT_FILE_SYSTEM_ADAPTER),t)}};rve.default=iur});var nve=H((B8l,Okn)=>{"use strict";var Wkn=ODn(),GFo=Fkn(),FFo=Zkn(),ZFo=Vkn(),sur=Pkn(),iM=r$();async function our(e,t){oX(e);let r=aur(e,GFo.default,t),n=await Promise.all(r);return iM.array.flatten(n)}(function(e){e.glob=e,e.globSync=t,e.globStream=r,e.async=e;function t(I,C){oX(I);let b=aur(I,ZFo.default,C);return iM.array.flatten(b)}e.sync=t;function r(I,C){oX(I);let b=aur(I,FFo.default,C);return iM.stream.merge(b)}e.stream=r;function n(I,C){oX(I);let b=[].concat(I),E=new sur.default(C);return Wkn.generate(b,E)}e.generateTasks=n;function a(I,C){oX(I);let b=new sur.default(C);return iM.pattern.isDynamicPattern(I,b)}e.isDynamicPattern=a;function o(I){return oX(I),iM.path.escape(I)}e.escapePath=o;function l(I){return oX(I),iM.path.convertPathToPattern(I)}e.convertPathToPattern=l;let A;(function(I){function C(E){return oX(E),iM.path.escapePosixPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertPosixPathToPattern(E)}I.convertPathToPattern=b})(A=e.posix||(e.posix={}));let f;(function(I){function C(E){return oX(E),iM.path.escapeWindowsPath(E)}I.escapePath=C;function b(E){return oX(E),iM.path.convertWindowsPathToPattern(E)}I.convertPathToPattern=b})(f=e.win32||(e.win32={}))})(our||(our={}));function aur(e,t,r){let n=[].concat(e),a=new sur.default(r),o=Wkn.generate(n,a),l=new t(a);return o.map(l.read,l)}function oX(e){if(![].concat(e).every(n=>iM.string.isString(n)&&!iM.string.isEmpty(n)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Okn.exports=our});var moe=H(j3e=>{"use strict";Object.defineProperty(j3e,"__esModule",{value:!0});j3e.makeHash=VFo;j3e.checksumFile=PFo;j3e.checksumPattern=WFo;var LFo=(Pa(),vi(Va)),hoe=no(),cur=wt("crypto"),Mkn=LFo.__importDefault(nve());function VFo(...e){let t=(0,cur.createHash)("sha512"),r="";for(let n of e)typeof n=="string"?r+=n:n&&(r&&(t.update(r),r=""),t.update(n));return r&&t.update(r),t.digest("hex")}async function PFo(e,{baseFs:t,algorithm:r}={baseFs:hoe.xfs,algorithm:"sha512"}){let n=await t.openPromise(e,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=(0,cur.createHash)(r),A=0;for(;(A=await t.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await t.closePromise(n)}}async function WFo(e,{cwd:t}){let n=(await(0,Mkn.default)(e,{cwd:hoe.npath.fromPortablePath(t),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,Mkn.default)([e,...n],{cwd:hoe.npath.fromPortablePath(t),onlyFiles:!1});a.sort();let o=await Promise.all(a.map(async A=>{let f=[Buffer.from(A)],I=hoe.ppath.join(t,hoe.npath.toPortablePath(A)),C=await hoe.xfs.lstatPromise(I);return C.isSymbolicLink()?f.push(Buffer.from(await hoe.xfs.readlinkPromise(I))):C.isFile()&&f.push(await hoe.xfs.readFilePromise(I)),f.join("\0")})),l=(0,cur.createHash)("sha512");for(let A of o)l.update(A);return l.digest("hex")}});var uG=H(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.makeIdent=sve;Xd.makeDescriptor=ave;Xd.makeLocator=cve;Xd.convertToIdent=QFo;Xd.convertDescriptorToLocator=XFo;Xd.convertLocatorToDescriptor=JFo;Xd.convertPackageToLocator=UFo;Xd.renamePackage=Aur;Xd.copyPackage=KFo;Xd.virtualizeDescriptor=jFo;Xd.virtualizePackage=zFo;Xd.isVirtualDescriptor=Jut;Xd.isVirtualLocator=$3e;Xd.devirtualizeDescriptor=Xkn;Xd.devirtualizeLocator=qFo;Xd.ensureDevirtualizedDescriptor=$Fo;Xd.ensureDevirtualizedLocator=eZo;Xd.bindDescriptor=tZo;Xd.bindLocator=rZo;Xd.areIdentsEqual=Jkn;Xd.areDescriptorsEqual=Ukn;Xd.areLocatorsEqual=nZo;Xd.areVirtualPackagesEquivalent=iZo;Xd.parseIdent=sZo;Xd.tryParseIdent=Kkn;Xd.parseDescriptor=aZo;Xd.tryParseDescriptor=jkn;Xd.parseLocator=zkn;Xd.tryParseLocator=qkn;Xd.parseRange=e5e;Xd.tryParseRange=dZo;Xd.parseFileStyleRange=pZo;Xd.makeRange=$kn;Xd.convertToManifestRange=IZo;Xd.stringifyIdent=Kut;Xd.wrapIdentIntoScope=hZo;Xd.unwrapIdentFromScope=mZo;Xd.stringifyDescriptor=CZo;Xd.stringifyLocator=_Zo;Xd.slugifyIdent=uur;Xd.slugifyLocator=bZo;Xd.prettyIdent=jut;Xd.prettyRange=exn;Xd.prettyDescriptor=SZo;Xd.prettyReference=dur;Xd.prettyLocator=Xut;Xd.prettyLocatorNoColors=vZo;Xd.sortDescriptors=BZo;Xd.prettyWorkspace=wZo;Xd.prettyResolution=TZo;Xd.prettyDependent=RZo;Xd.getIdentVendorPath=NZo;Xd.isPackageInRange=DZo;Xd.isPackageCompatible=kZo;Xd.allPeerRequests=xZo;var ove=(Pa(),vi(Va)),q3e=ove.__importDefault(wt("querystring")),Ykn=ove.__importDefault(UC()),OFo=dBn(),vZ=ove.__importStar(rM()),gur=ove.__importStar(moe()),MFo=ove.__importStar(xW()),ive=ove.__importStar(uG()),z3e="virtual:",HFo=5,Qkn=/(os|cpu|libc)=([a-z0-9_-]+)/,YFo=(0,OFo.makeParser)(Qkn);function sve(e,t){if(e?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:gur.makeHash(e,t),scope:e,name:t}}function ave(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:gur.makeHash(e.identHash,t),range:t}}function cve(e,t){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:gur.makeHash(e.identHash,t),reference:t}}function QFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name}}function XFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.descriptorHash,reference:e.range}}function JFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,descriptorHash:e.locatorHash,range:e.reference}}function UFo(e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference}}function Aur(e,t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference,version:e.version,languageName:e.languageName,linkType:e.linkType,conditions:e.conditions,dependencies:new Map(e.dependencies),peerDependencies:new Map(e.peerDependencies),dependenciesMeta:new Map(e.dependenciesMeta),peerDependenciesMeta:new Map(e.peerDependenciesMeta),bin:new Map(e.bin)}}function KFo(e){return Aur(e,e)}function jFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return ave(e,`virtual:${t}#${e.range}`)}function zFo(e,t){if(t.includes("#"))throw new Error("Invalid entropy");return Aur(e,cve(e,`virtual:${t}#${e.reference}`))}function Jut(e){return e.range.startsWith(z3e)}function $3e(e){return e.reference.startsWith(z3e)}var Uut=/^[^#]*#/;function Xkn(e){if(!Jut(e))throw new Error("Not a virtual descriptor");return ave(e,e.range.replace(Uut,""))}function qFo(e){if(!$3e(e))throw new Error("Not a virtual descriptor");return cve(e,e.reference.replace(Uut,""))}function $Fo(e){return Jut(e)?ave(e,e.range.replace(Uut,"")):e}function eZo(e){return $3e(e)?cve(e,e.reference.replace(Uut,"")):e}function tZo(e,t){return e.range.includes("::")?e:ave(e,`${e.range}::${q3e.default.stringify(t)}`)}function rZo(e,t){return e.reference.includes("::")?e:cve(e,`${e.reference}::${q3e.default.stringify(t)}`)}function Jkn(e,t){return e.identHash===t.identHash}function Ukn(e,t){return e.descriptorHash===t.descriptorHash}function nZo(e,t){return e.locatorHash===t.locatorHash}function iZo(e,t){if(!$3e(e))throw new Error("Invalid package type");if(!$3e(t))throw new Error("Invalid package type");if(!Jkn(e,t)||e.dependencies.size!==t.dependencies.size)return!1;for(let r of e.dependencies.values()){let n=t.dependencies.get(r.identHash);if(!n||!Ukn(r,n))return!1}return!0}function sZo(e){let t=Kkn(e);if(!t)throw new Error(`Invalid ident (${e})`);return t}var oZo=/^(?:@([^/]+?)\/)?([^@/]+)$/;function Kkn(e){let t=e.match(oZo);if(!t)return null;let[,r,n]=t;return sve(typeof r<"u"?r:null,n)}function aZo(e,t=!1){let r=jkn(e,t);if(!r)throw new Error(`Invalid descriptor (${e})`);return r}var cZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,lZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/,lur="unknown";function jkn(e,t=!1){let r=t?e.match(cZo):e.match(lZo);if(!r)return null;let[,n,a,o]=r;if(o===lur)throw new Error(`Invalid range (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:lur;return ave(sve(l,a),A)}function zkn(e,t=!1){let r=qkn(e,t);if(!r)throw new Error(`Invalid locator (${e})`);return r}var uZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,gZo=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;function qkn(e,t=!1){let r=t?e.match(uZo):e.match(gZo);if(!r)return null;let[,n,a,o]=r;if(o==="unknown")throw new Error(`Invalid reference (${e})`);let l=typeof n<"u"?n:null,A=typeof o<"u"?o:"unknown";return cve(sve(l,a),A)}var AZo=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;function e5e(e,t){let r=e.match(AZo);if(r===null)throw new Error(`Invalid range (${e})`);let n=typeof r[1]<"u"?r[1]:null;if(typeof t?.requireProtocol=="string"&&n!==t.requireProtocol)throw new Error(`Invalid protocol (${n})`);if(t?.requireProtocol&&n===null)throw new Error(`Missing protocol (${n})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(t?.requireSource&&a===null)throw new Error(`Missing source (${e})`);let o=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),l=t?.parseSelector?q3e.default.parse(o):o,A=typeof r[4]<"u"?q3e.default.parse(r[4]):null;return{protocol:n,source:a,selector:l,params:A}}function dZo(e,t){try{return e5e(e,t)}catch{return null}}function pZo(e,{protocol:t}){let{selector:r,params:n}=e5e(e,{requireProtocol:t,requireBindings:!0});if(typeof n.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${e}`);return{parentLocator:zkn(n.locator,!0),path:r}}function Hkn(e){return e=e.replaceAll("%","%25"),e=e.replaceAll(":","%3A"),e=e.replaceAll("#","%23"),e}function fZo(e){return e===null?!1:Object.entries(e).length>0}function $kn({protocol:e,source:t,selector:r,params:n}){let a="";return e!==null&&(a+=`${e}`),t!==null&&(a+=`${Hkn(t)}#`),a+=Hkn(r),fZo(n)&&(a+=`::${q3e.default.stringify(n)}`),a}function IZo(e){let{params:t,protocol:r,source:n,selector:a}=e5e(e);for(let o in t)o.startsWith("__")&&delete t[o];return $kn({protocol:r,source:n,params:t,selector:a})}function Kut(e){return e.scope?`@${e.scope}/${e.name}`:`${e.name}`}function hZo(e,t){return e.scope?ive.makeIdent(t,`${e.scope}__${e.name}`):ive.makeIdent(t,e.name)}function mZo(e,t){if(e.scope!==t)return e;let r=e.name.indexOf("__");if(r===-1)return sve(null,e.name);let n=e.name.slice(0,r),a=e.name.slice(r+2);return sve(n,a)}function CZo(e){return e.scope?`@${e.scope}/${e.name}@${e.range}`:`${e.name}@${e.range}`}function _Zo(e){return e.scope?`@${e.scope}/${e.name}@${e.reference}`:`${e.name}@${e.reference}`}function uur(e){return e.scope!==null?`@${e.scope}-${e.name}`:e.name}var yZo=/:$/;function bZo(e){let{protocol:t,selector:r}=e5e(e.reference),n=t!==null?t.replace(yZo,""):"exotic",a=Ykn.default.valid(r),o=a!==null?`${n}-${a}`:`${n}`,l=10;return e.scope?`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`:`${uur(e)}-${o}-${e.locatorHash.slice(0,l)}`}function jut(e,t){return t.scope?`${vZ.pretty(e,`@${t.scope}/`,vZ.Type.SCOPE)}${vZ.pretty(e,t.name,vZ.Type.NAME)}`:`${vZ.pretty(e,t.name,vZ.Type.NAME)}`}var EZo=/\?.*/;function zut(e){if(e.startsWith(z3e)){let t=zut(e.substring(e.indexOf("#")+1)),r=e.substring(z3e.length,z3e.length+HFo);return`${t} [${r}]`}else return e.replace(EZo,"?[...]")}function exn(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.RANGE)}`}function SZo(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.RANGE)}${exn(e,t.range)}`}function dur(e,t){return`${vZ.pretty(e,zut(t),vZ.Type.REFERENCE)}`}function Xut(e,t){return`${jut(e,t)}${vZ.pretty(e,"@",vZ.Type.REFERENCE)}${dur(e,t.reference)}`}function vZo(e){return`${Kut(e)}@${zut(e.reference)}`}function BZo(e){return MFo.sortMap(e,[t=>Kut(t),t=>t.range])}function wZo(e,t){return jut(e,t.anchoredLocator)}function TZo(e,t,r){let n=Jut(t)?Xkn(t):t;return r===null?`${ive.prettyDescriptor(e,n)} \u2192 ${vZ.mark(e).Cross}`:n.identHash===r.identHash?`${ive.prettyDescriptor(e,n)} \u2192 ${dur(e,r.reference)}`:`${ive.prettyDescriptor(e,n)} \u2192 ${Xut(e,r)}`}function RZo(e,t,r){return r===null?`${Xut(e,t)}`:`${Xut(e,t)} (via ${ive.prettyRange(e,r.range)})`}function NZo(e){return`node_modules/${Kut(e)}`}function DZo(e,t){return t===lur||!e.version?!0:Ykn.default.satisfies(e.version??"",t)}function kZo(e,t){return e.conditions?YFo(e.conditions,r=>{let[,n,a]=r.match(Qkn),o=t[n];return o?o.includes(a):!0}):!0}function xZo(e){let t=new Set;if("children"in e)t.add(e);else for(let r of e.requests.values())t.add(r);for(let r of t)for(let n of r.children.values())t.add(n);return t}});var txn=H(qut=>{"use strict";Object.defineProperty(qut,"__esModule",{value:!0});qut.CorePlugin=void 0;var GZo=(Pa(),vi(Va)),FZo=M9(),Coe=GZo.__importStar(uG());qut.CorePlugin={hooks:{reduceDependency:(e,t,r,n,{resolver:a,resolveOptions:o})=>{for(let{pattern:l,reference:A}of t.topLevelWorkspace.manifest.resolutions){if(l.from&&(l.from.fullName!==Coe.stringifyIdent(r)||t.configuration.normalizeLocator(Coe.makeLocator(Coe.parseIdent(l.from.fullName),l.from.description??r.reference)).locatorHash!==r.locatorHash)||l.descriptor.fullName!==Coe.stringifyIdent(e)||t.configuration.normalizeDependency(Coe.makeDescriptor(Coe.parseLocator(l.descriptor.fullName),l.descriptor.description??e.range)).descriptorHash!==e.descriptorHash)continue;return a.bindDescriptor(t.configuration.normalizeDependency(Coe.makeDescriptor(e,A)),t.topLevelWorkspace.anchoredLocator,o)}return e},validateProject:async(e,t)=>{for(let r of e.workspaces){let n=Coe.prettyWorkspace(e.configuration,r);await e.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,o)=>t.reportWarning(a,`${n}: ${o}`),reportError:(a,o)=>t.reportError(a,`${n}: ${o}`)})}},validateWorkspace:async(e,t)=>{let{manifest:r}=e;r.resolutions.length&&e.cwd!==e.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let n of r.errors)t.reportWarning(FZo.MessageName.INVALID_MANIFEST,n.message)}}}});var Kfe=H(egt=>{"use strict";Object.defineProperty(egt,"__esModule",{value:!0});egt.WorkspaceResolver=void 0;var ZZo=Qfe(),$ut=class e{supportsDescriptor(t,r){return!!(t.range.startsWith(e.protocol)||r.project.tryWorkspaceByDescriptor(t)!==null)}supportsLocator(t,r){return!!t.reference.startsWith(e.protocol)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[n.project.getWorkspaceByDescriptor(t).anchoredLocator]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let n=r.project.getWorkspaceByCwd(t.reference.slice(e.protocol.length));return{...t,version:n.manifest.version||"0.0.0",languageName:"unknown",linkType:ZZo.LinkType.SOFT,conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...n.manifest.dependencies,...n.manifest.devDependencies])),peerDependencies:new Map([...n.manifest.peerDependencies]),dependenciesMeta:n.manifest.dependenciesMeta,peerDependenciesMeta:n.manifest.peerDependenciesMeta,bin:n.manifest.bin}}};egt.WorkspaceResolver=$ut;$ut.protocol="workspace:"});var n$=H(aX=>{"use strict";Object.defineProperty(aX,"__esModule",{value:!0});aX.SemVer=void 0;aX.satisfiesWithPrereleases=PZo;aX.validRange=ixn;aX.clean=OZo;aX.getComparator=sxn;aX.mergeComparators=pur;aX.stringifyComparator=oxn;aX.simplifyRanges=MZo;var LZo=(Pa(),vi(Va)),_oe=LZo.__importDefault(UC()),VZo=UC();Object.defineProperty(aX,"SemVer",{enumerable:!0,get:function(){return VZo.SemVer}});var rxn=new Map;function PZo(e,t,r=!1){if(!e)return!1;let n=`${t}${r}`,a=rxn.get(n);if(typeof a>"u")try{a=new _oe.default.Range(t,{includePrerelease:!0,loose:r})}catch{return!1}finally{rxn.set(n,a||null)}else if(a===null)return!1;let o;try{o=new _oe.default.SemVer(e,a)}catch{return!1}return a.test(o)?!0:(o.prerelease&&(o.prerelease=[]),a.set.some(l=>{for(let A of l)A.semver.prerelease&&(A.semver.prerelease=[]);return l.every(A=>A.test(o))}))}var nxn=new Map;function ixn(e){if(e.indexOf(":")!==-1)return null;let t=nxn.get(e);if(typeof t<"u")return t;try{t=new _oe.default.Range(e)}catch{t=null}return nxn.set(e,t),t}var WZo=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/;function OZo(e){let t=WZo.exec(e);return t?t[1]:null}function sxn(e){if(e.semver===_oe.default.Comparator.ANY)return{gt:null,lt:null};switch(e.operator){case"":return{gt:[">=",e.semver],lt:["<=",e.semver]};case">":case">=":return{gt:[e.operator,e.semver],lt:null};case"<":case"<=":return{gt:null,lt:[e.operator,e.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${e.operator})`)}}function pur(e){if(e.length===0)return null;let t=null,r=null;for(let n of e){if(n.gt){let a=t!==null?_oe.default.compare(n.gt[1],t[1]):null;(a===null||a>0||a===0&&n.gt[0]===">")&&(t=n.gt)}if(n.lt){let a=r!==null?_oe.default.compare(n.lt[1],r[1]):null;(a===null||a<0||a===0&&n.lt[0]==="<")&&(r=n.lt)}}if(t&&r){let n=_oe.default.compare(t[1],r[1]);if(n===0&&(t[0]===">"||r[0]==="<")||n>0)return null}return{gt:t,lt:r}}function oxn(e){if(e.gt&&e.lt){if(e.gt[0]===">="&&e.lt[0]==="<="&&e.gt[1].version===e.lt[1].version)return e.gt[1].version;if(e.gt[0]===">="&&e.lt[0]==="<"){if(e.lt[1].version===`${e.gt[1].major+1}.0.0-0`)return`^${e.gt[1].version}`;if(e.lt[1].version===`${e.gt[1].major}.${e.gt[1].minor+1}.0-0`)return`~${e.gt[1].version}`}}let t=[];return e.gt&&t.push(e.gt[0]+e.gt[1].version),e.lt&&t.push(e.lt[0]+e.lt[1].version),t.length?t.join(" "):"*"}function MZo(e){let t=e.map(HZo).map(n=>ixn(n).set.map(a=>a.map(o=>sxn(o)))),r=t.shift().map(n=>pur(n)).filter(n=>n!==null);for(let n of t){let a=[];for(let o of r)for(let l of n){let A=pur([o,...l]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(n=>oxn(n)).join(" || ")}function HZo(e){let t=e.split("||");if(t.length>1){let r=new Set;for(let n of t)t.some(a=>a!==n&&_oe.default.subset(n,a))||r.add(n);if(r.size{"use strict";Object.defineProperty(sgt,"__esModule",{value:!0});sgt.Manifest=void 0;var igt=(Pa(),vi(Va)),tgt=no(),axn=TW(),YZo=igt.__importDefault(UC()),QZo=Kfe(),ngt=igt.__importStar(xW()),XZo=igt.__importStar(n$()),O0=igt.__importStar(uG()),lve=class e{constructor(){this.indent=" ",this.name=null,this.version=null,this.os=null,this.cpu=null,this.libc=null,this.type=null,this.packageManager=null,this.private=!1,this.license=null,this.main=null,this.module=null,this.browser=null,this.languageName=null,this.bin=new Map,this.scripts=new Map,this.dependencies=new Map,this.devDependencies=new Map,this.peerDependencies=new Map,this.workspaceDefinitions=[],this.dependenciesMeta=new Map,this.peerDependenciesMeta=new Map,this.resolutions=[],this.files=null,this.publishConfig=null,this.installConfig=null,this.preferUnplugged=null,this.raw={},this.errors=[]}static async tryFind(t,{baseFs:r=new tgt.NodeFS}={}){let n=tgt.ppath.join(t,"package.json");try{return await e.fromFile(n,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(t,{baseFs:r}={}){let n=await e.tryFind(t,{baseFs:r});if(n===null)throw new Error("Manifest not found");return n}static async fromFile(t,{baseFs:r=new tgt.NodeFS}={}){let n=new e;return await n.loadFile(t,{baseFs:r}),n}static fromText(t){let r=new e;return r.loadFromText(t),r}loadFromText(t){let r;try{r=JSON.parse(lxn(t)||"{}")}catch(n){throw n.message+=` (when parsing ${t})`,n}this.load(r),this.indent=cxn(t)}async loadFile(t,{baseFs:r=new tgt.NodeFS}){let n=await r.readFilePromise(t,"utf8"),a;try{a=JSON.parse(lxn(n)||"{}")}catch(o){throw o.message+=` (when parsing ${t})`,o}this.load(a),this.indent=cxn(n)}load(t,{yamlCompatibilityMode:r=!1}={}){if(typeof t!="object"||t===null)throw new Error(`Utterly invalid manifest data (${t})`);this.raw=t;let n=[];if(this.name=null,typeof t.name=="string")try{this.name=O0.parseIdent(t.name)}catch{n.push(new Error("Parsing failed for the 'name' field"))}if(typeof t.version=="string"?this.version=t.version:this.version=null,Array.isArray(t.os)){let o=[];this.os=o;for(let l of t.os)typeof l!="string"?n.push(new Error("Parsing failed for the 'os' field")):o.push(l)}else this.os=null;if(Array.isArray(t.cpu)){let o=[];this.cpu=o;for(let l of t.cpu)typeof l!="string"?n.push(new Error("Parsing failed for the 'cpu' field")):o.push(l)}else this.cpu=null;if(Array.isArray(t.libc)){let o=[];this.libc=o;for(let l of t.libc)typeof l!="string"?n.push(new Error("Parsing failed for the 'libc' field")):o.push(l)}else this.libc=null;if(typeof t.type=="string"?this.type=t.type:this.type=null,typeof t.packageManager=="string"?this.packageManager=t.packageManager:this.packageManager=null,typeof t.private=="boolean"?this.private=t.private:this.private=!1,typeof t.license=="string"?this.license=t.license:this.license=null,typeof t.languageName=="string"?this.languageName=t.languageName:this.languageName=null,typeof t.main=="string"?this.main=BZ(t.main):this.main=null,typeof t.module=="string"?this.module=BZ(t.module):this.module=null,t.browser!=null)if(typeof t.browser=="string")this.browser=BZ(t.browser);else{this.browser=new Map;for(let[o,l]of Object.entries(t.browser))this.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}else this.browser=null;if(this.bin=new Map,typeof t.bin=="string")t.bin.trim()===""?n.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,BZ(t.bin)):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.bin=="object"&&t.bin!==null)for(let[o,l]of Object.entries(t.bin)){if(typeof l!="string"||l.trim()===""){n.push(new Error(`Invalid bin definition for '${o}'`));continue}let A=O0.parseIdent(o);this.bin.set(A.name,BZ(l))}if(this.scripts=new Map,typeof t.scripts=="object"&&t.scripts!==null)for(let[o,l]of Object.entries(t.scripts)){if(typeof l!="string"){n.push(new Error(`Invalid script definition for '${o}'`));continue}this.scripts.set(o,l)}if(this.dependencies=new Map,typeof t.dependencies=="object"&&t.dependencies!==null)for(let[o,l]of Object.entries(t.dependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f)}if(this.devDependencies=new Map,typeof t.devDependencies=="object"&&t.devDependencies!==null)for(let[o,l]of Object.entries(t.devDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.devDependencies.set(f.identHash,f)}if(this.peerDependencies=new Map,typeof t.peerDependencies=="object"&&t.peerDependencies!==null)for(let[o,l]of Object.entries(t.peerDependencies)){let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}(typeof l!="string"||!l.startsWith(QZo.WorkspaceResolver.protocol)&&!XZo.validRange(l))&&(n.push(new Error(`Invalid dependency range for '${o}'`)),l="*");let f=O0.makeDescriptor(A,l);this.peerDependencies.set(f.identHash,f)}typeof t.workspaces=="object"&&t.workspaces!==null&&t.workspaces.nohoist&&n.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(t.workspaces)?t.workspaces:typeof t.workspaces=="object"&&t.workspaces!==null&&Array.isArray(t.workspaces.packages)?t.workspaces.packages:[];this.workspaceDefinitions=[];for(let o of a){if(typeof o!="string"){n.push(new Error(`Invalid workspace definition for '${o}'`));continue}this.workspaceDefinitions.push({pattern:o})}if(this.dependenciesMeta=new Map,typeof t.dependenciesMeta=="object"&&t.dependenciesMeta!==null)for(let[o,l]of Object.entries(t.dependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}`));continue}let A=O0.parseDescriptor(o),f=this.ensureDependencyMeta(A),I=rgt(l.built,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid built meta field for '${o}'`));continue}let C=rgt(l.optional,{yamlCompatibilityMode:r});if(C===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}let b=rgt(l.unplugged,{yamlCompatibilityMode:r});if(b===null){n.push(new Error(`Invalid unplugged meta field for '${o}'`));continue}Object.assign(f,{built:I,optional:C,unplugged:b})}if(this.peerDependenciesMeta=new Map,typeof t.peerDependenciesMeta=="object"&&t.peerDependenciesMeta!==null)for(let[o,l]of Object.entries(t.peerDependenciesMeta)){if(typeof l!="object"||l===null){n.push(new Error(`Invalid meta field for '${o}'`));continue}let A=O0.parseDescriptor(o),f=this.ensurePeerDependencyMeta(A),I=rgt(l.optional,{yamlCompatibilityMode:r});if(I===null){n.push(new Error(`Invalid optional meta field for '${o}'`));continue}Object.assign(f,{optional:I})}if(this.resolutions=[],typeof t.resolutions=="object"&&t.resolutions!==null)for(let[o,l]of Object.entries(t.resolutions)){if(typeof l!="string"){n.push(new Error(`Invalid resolution entry for '${o}'`));continue}try{this.resolutions.push({pattern:(0,axn.parseResolution)(o),reference:l})}catch(A){n.push(A);continue}}if(Array.isArray(t.files)){this.files=new Set;for(let o of t.files){if(typeof o!="string"){n.push(new Error(`Invalid files entry for '${o}'`));continue}this.files.add(o)}}else this.files=null;if(typeof t.publishConfig=="object"&&t.publishConfig!==null){if(this.publishConfig={},typeof t.publishConfig.access=="string"&&(this.publishConfig.access=t.publishConfig.access),typeof t.publishConfig.main=="string"&&(this.publishConfig.main=BZ(t.publishConfig.main)),typeof t.publishConfig.module=="string"&&(this.publishConfig.module=BZ(t.publishConfig.module)),t.publishConfig.browser!=null)if(typeof t.publishConfig.browser=="string")this.publishConfig.browser=BZ(t.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[o,l]of Object.entries(t.publishConfig.browser))this.publishConfig.browser.set(BZ(o),typeof l=="string"?BZ(l):l)}if(typeof t.publishConfig.registry=="string"&&(this.publishConfig.registry=t.publishConfig.registry),typeof t.publishConfig.provenance=="boolean"&&(this.publishConfig.provenance=t.publishConfig.provenance),typeof t.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,BZ(t.publishConfig.bin)]]):n.push(new Error("String bin field, but no attached package name"));else if(typeof t.publishConfig.bin=="object"&&t.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[o,l]of Object.entries(t.publishConfig.bin)){if(typeof l!="string"){n.push(new Error(`Invalid bin definition for '${o}'`));continue}this.publishConfig.bin.set(o,BZ(l))}}if(Array.isArray(t.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let o of t.publishConfig.executableFiles){if(typeof o!="string"){n.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(BZ(o))}}}else this.publishConfig=null;if(typeof t.installConfig=="object"&&t.installConfig!==null){this.installConfig={};for(let o of Object.keys(t.installConfig))o==="hoistingLimits"?typeof t.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=t.installConfig.hoistingLimits:n.push(new Error("Invalid hoisting limits definition")):o=="selfReferences"?typeof t.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=t.installConfig.selfReferences:n.push(new Error("Invalid selfReferences definition, must be a boolean value")):n.push(new Error(`Unrecognized installConfig key: ${o}`))}else this.installConfig=null;if(typeof t.optionalDependencies=="object"&&t.optionalDependencies!==null)for(let[o,l]of Object.entries(t.optionalDependencies)){if(typeof l!="string"){n.push(new Error(`Invalid dependency range for '${o}'`));continue}let A;try{A=O0.parseIdent(o)}catch{n.push(new Error(`Parsing failed for the dependency name '${o}'`));continue}let f=O0.makeDescriptor(A,l);this.dependencies.set(f.identHash,f);let I=O0.makeDescriptor(A,"unknown"),C=this.ensureDependencyMeta(I);Object.assign(C,{optional:!0})}typeof t.preferUnplugged=="boolean"?this.preferUnplugged=t.preferUnplugged:this.preferUnplugged=null,this.errors=n}getForScope(t){switch(t){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${t}")`)}}hasConsumerDependency(t){return!!(this.dependencies.has(t.identHash)||this.peerDependencies.has(t.identHash))}hasHardDependency(t){return!!(this.dependencies.has(t.identHash)||this.devDependencies.has(t.identHash))}hasSoftDependency(t){return!!this.peerDependencies.has(t.identHash)}hasDependency(t){return!!(this.hasHardDependency(t)||this.hasSoftDependency(t))}getConditions(){let t=[];return this.os&&this.os.length>0&&t.push(fur("os",this.os)),this.cpu&&this.cpu.length>0&&t.push(fur("cpu",this.cpu)),this.libc&&this.libc.length>0&&t.push(fur("libc",this.libc)),t.length>0?t.join(" & "):null}ensureDependencyMeta(t){if(t.range!=="unknown"&&!YZo.default.valid(t.range))throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=t.range!=="unknown"?t.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let o=a.get(n);return o||a.set(n,o={}),o}ensurePeerDependencyMeta(t){if(t.range!=="unknown")throw new Error(`Invalid meta field range for '${O0.stringifyDescriptor(t)}'`);let r=O0.stringifyIdent(t),n=this.peerDependenciesMeta.get(r);return n||this.peerDependenciesMeta.set(r,n={}),n}setRawField(t,r,{after:n=[]}={}){let a=new Set(n.filter(o=>Object.hasOwn(this.raw,o)));if(a.size===0||Object.hasOwn(this.raw,t))this.raw[t]=r;else{let o=this.raw,l=this.raw={},A=!1;for(let f of Object.keys(o))l[f]=o[f],A||(a.delete(f),a.size===0&&(l[t]=r,A=!0))}}exportTo(t,{compatibilityMode:r=!0}={}){if(Object.assign(t,this.raw),this.name!==null?t.name=O0.stringifyIdent(this.name):delete t.name,this.version!==null?t.version=this.version:delete t.version,this.os!==null?t.os=this.os:delete t.os,this.cpu!==null?t.cpu=this.cpu:delete t.cpu,this.type!==null?t.type=this.type:delete t.type,this.packageManager!==null?t.packageManager=this.packageManager:delete t.packageManager,this.private?t.private=!0:delete t.private,this.license!==null?t.license=this.license:delete t.license,this.languageName!==null?t.languageName=this.languageName:delete t.languageName,this.main!==null?t.main=this.main:delete t.main,this.module!==null?t.module=this.module:delete t.module,this.browser!==null){let o=this.browser;typeof o=="string"?t.browser=o:o instanceof Map&&(t.browser=Object.assign({},...Array.from(o.keys()).sort().map(l=>({[l]:o.get(l)}))))}else delete t.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?t.bin=this.bin.get(this.name.name):this.bin.size>0?t.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete t.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?t.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:o})=>o)}:t.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?t.workspaces=this.raw.workspaces:delete t.workspaces;let n=[],a=[];for(let o of this.dependencies.values()){let l=this.dependenciesMeta.get(O0.stringifyIdent(o)),A=!1;if(r&&l){let f=l.get(null);f&&f.optional&&(A=!0)}A?a.push(o):n.push(o)}n.length>0?t.dependencies=Object.assign({},...O0.sortDescriptors(n).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.dependencies,a.length>0?t.optionalDependencies=Object.assign({},...O0.sortDescriptors(a).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.optionalDependencies,this.devDependencies.size>0?t.devDependencies=Object.assign({},...O0.sortDescriptors(this.devDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.devDependencies,this.peerDependencies.size>0?t.peerDependencies=Object.assign({},...O0.sortDescriptors(this.peerDependencies.values()).map(o=>({[O0.stringifyIdent(o)]:o.range}))):delete t.peerDependencies,t.dependenciesMeta={};for(let[o,l]of ngt.sortMap(this.dependenciesMeta.entries(),([A,f])=>A))for(let[A,f]of ngt.sortMap(l.entries(),([I,C])=>I!==null?`0${I}`:"1")){let I=A!==null?O0.stringifyDescriptor(O0.makeDescriptor(O0.parseIdent(o),A)):o,C={...f};r&&A===null&&delete C.optional,Object.keys(C).length!==0&&(t.dependenciesMeta[I]=C)}if(Object.keys(t.dependenciesMeta).length===0&&delete t.dependenciesMeta,this.peerDependenciesMeta.size>0?t.peerDependenciesMeta=Object.assign({},...ngt.sortMap(this.peerDependenciesMeta.entries(),([o,l])=>o).map(([o,l])=>({[o]:l}))):delete t.peerDependenciesMeta,this.resolutions.length>0?t.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:l})=>({[(0,axn.stringifyResolution)(o)]:l}))):delete t.resolutions,this.files!==null?t.files=Array.from(this.files):delete t.files,this.preferUnplugged!==null?t.preferUnplugged=this.preferUnplugged:delete t.preferUnplugged,this.scripts!==null&&this.scripts.size>0){t.scripts??={};for(let o of Object.keys(t.scripts))this.scripts.has(o)||delete t.scripts[o];for(let[o,l]of this.scripts.entries())t.scripts[o]=l}else delete t.scripts;return t}};sgt.Manifest=lve;lve.fileName="package.json";lve.allDependencies=["dependencies","devDependencies","peerDependencies"];lve.hardDependencies=["dependencies","devDependencies"];function cxn(e){let t=e.match(/^[ \t]+/m);return t?t[0]:" "}function lxn(e){return e.charCodeAt(0)===65279?e.slice(1):e}function BZ(e){return e.replace(/\\/g,"/")}function rgt(e,{yamlCompatibilityMode:t}){return t?ngt.tryParseOptionalBoolean(e):typeof e>"u"||typeof e=="boolean"?e:null}function uxn(e,t){let r=t.search(/[^!]/);if(r===-1)return"invalid";let n=r%2===0?"":"!",a=t.slice(r);return`${n}${e}=${a}`}function fur(e,t){return t.length===1?uxn(e,t[0]):`(${t.map(r=>uxn(e,r)).join(" | ")})`}});var sM=H(jfe=>{"use strict";Object.defineProperty(jfe,"__esModule",{value:!0});jfe.Report=jfe.ReportError=void 0;jfe.isReportError=gxn;var JZo=kW(),UZo=wt("stream"),KZo=wt("string_decoder"),jZo=M9(),zZo=15,Iur=class extends Error{constructor(t,r,n){super(r),this.reportExtra=n,this.reportCode=t}};jfe.ReportError=Iur;function gxn(e){return typeof e.reportCode<"u"}var hur=class{constructor(){this.cacheHits=new Set,this.cacheMisses=new Set,this.reportedInfos=new Set,this.reportedWarnings=new Set,this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(t){this.cacheHits.add(t.locatorHash)}reportCacheMiss(t,r){this.cacheMisses.add(t.locatorHash)}static progressViaCounter(t){let r=0,n,a=new Promise(f=>{n=f}),o=f=>{let I=n;a=new Promise(C=>{n=C}),r=f,I()},l=(f=0)=>{o(r+1)},A=async function*(){for(;r{r=l}),a=(0,JZo.throttle)(l=>{let A=r;n=new Promise(f=>{r=f}),t=l,A()},1e3/zZo),o=async function*(){for(;;)await n,yield{title:t}}();return{[Symbol.asyncIterator](){return o},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(t,r){let n=this.reportProgress(t);try{return await r(t)}finally{n.stop()}}startProgressSync(t,r){let n=this.reportProgress(t);try{return r(t)}finally{n.stop()}}reportInfoOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(t,r),n?.reportExtra?.(this))}reportWarningOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(t,r),n?.reportExtra?.(this))}reportErrorOnce(t,r,n){let a=n&&n.key?n.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(t,r),n?.reportExtra?.(this))}reportExceptionOnce(t){gxn(t)?this.reportErrorOnce(t.reportCode,t.message,{key:t,reportExtra:t.reportExtra}):this.reportErrorOnce(jZo.MessageName.EXCEPTION,t.stack||t.message,{key:t})}createStreamReporter(t=null){let r=new UZo.PassThrough,n=new KZo.StringDecoder,a="";return r.on("data",o=>{let l=n.write(o),A;do if(A=l.indexOf(` +`),A!==-1){let f=a+l.substring(0,A);l=l.substring(A+1),a="",t!==null?this.reportInfo(null,`${t} ${f}`):this.reportInfo(null,f)}while(A!==-1);a+=l}),r.on("end",()=>{let o=n.end();o!==""&&(t!==null?this.reportInfo(null,`${t} ${o}`):this.reportInfo(null,o))}),r}};jfe.Report=hur});var Cur=H(ogt=>{"use strict";Object.defineProperty(ogt,"__esModule",{value:!0});ogt.MultiFetcher=void 0;var qZo=(Pa(),vi(Va)),$Zo=M9(),eLo=sM(),tLo=qZo.__importStar(uG()),mur=class{constructor(t){this.fetchers=t}supports(t,r){return!!this.tryFetcher(t,r)}getLocalPath(t,r){return this.getFetcher(t,r).getLocalPath(t,r)}async fetch(t,r){return await this.getFetcher(t,r).fetch(t,r)}tryFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));return n||null}getFetcher(t,r){let n=this.fetchers.find(a=>a.supports(t,r));if(!n)throw new eLo.ReportError($Zo.MessageName.FETCHER_NOT_FOUND,`${tLo.prettyLocator(r.project.configuration,t)} isn't supported by any available fetcher`);return n}};ogt.MultiFetcher=mur});var yur=H(agt=>{"use strict";Object.defineProperty(agt,"__esModule",{value:!0});agt.MultiResolver=void 0;var rLo=(Pa(),vi(Va)),Axn=rLo.__importStar(uG()),_ur=class{constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Axn.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Axn.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};agt.MultiResolver=_ur});var vur=H(cgt=>{"use strict";Object.defineProperty(cgt,"__esModule",{value:!0});cgt.VirtualFetcher=void 0;var nLo=(Pa(),vi(Va)),bur=no(),Eur=nLo.__importStar(uG()),Sur=class{supports(t){return!!t.reference.startsWith("virtual:")}getLocalPath(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a);return r.fetcher.getLocalPath(o,r)}async fetch(t,r){let n=t.reference.indexOf("#");if(n===-1)throw new Error("Invalid virtual package reference");let a=t.reference.slice(n+1),o=Eur.makeLocator(t,a),l=await r.fetcher.fetch(o,r);return await this.ensureVirtualLink(t,l,r)}getLocatorFilename(t){return Eur.slugifyLocator(t)}async ensureVirtualLink(t,r,n){let a=r.packageFs.getRealPath(),o=n.project.configuration.get("virtualFolder"),l=this.getLocatorFilename(t),A=bur.VirtualFS.makeVirtualPath(o,l,a),f=new bur.AliasFS(A,{baseFs:r.packageFs,pathUtils:bur.ppath});return{...r,packageFs:f}}};cgt.VirtualFetcher=Sur});var dxn=H(ugt=>{"use strict";Object.defineProperty(ugt,"__esModule",{value:!0});ugt.VirtualResolver=void 0;var lgt=class e{static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};ugt.VirtualResolver=lgt;lgt.protocol="virtual:"});var wur=H(ggt=>{"use strict";Object.defineProperty(ggt,"__esModule",{value:!0});ggt.WorkspaceFetcher=void 0;var pxn=no(),fxn=Kfe(),Bur=class{supports(t){return!!t.reference.startsWith(fxn.WorkspaceResolver.protocol)}getLocalPath(t,r){return this.getWorkspace(t,r).cwd}async fetch(t,r){let n=this.getWorkspace(t,r).cwd;return{packageFs:new pxn.CwdFS(n),prefixPath:pxn.PortablePath.dot,localPath:n}}getWorkspace(t,r){return r.project.getWorkspaceByCwd(t.reference.slice(fxn.WorkspaceResolver.protocol.length))}};ggt.WorkspaceFetcher=Bur});var mxn=H(JK=>{"use strict";Object.defineProperty(JK,"__esModule",{value:!0});JK.RESOLVED_RC_FILE=void 0;JK.resolveRcFiles=aLo;JK.getValue=cLo;JK.getValueByTree=Nur;JK.getSource=lLo;var iLo=(e,t,r)=>{let n=[...e];return n.reverse(),n.findIndex(t,r)};function t5e(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var oM;(function(e){e[e.Object=0]="Object",e[e.Array=1]="Array",e[e.Literal=2]="Literal",e[e.Undefined=3]="Undefined"})(oM||(oM={}));function Ixn(e){return typeof e>"u"?oM.Undefined:t5e(e)?oM.Object:Array.isArray(e)?oM.Array:oM.Literal}function Dur(e,t){return Object.hasOwn(e,t)}function sLo(e){return t5e(e)&&Dur(e,"onConflict")&&typeof e.onConflict=="string"}function oLo(e){if(typeof e>"u")return{onConflict:"default",value:e};if(!sLo(e))return{onConflict:"default",value:e};if(Dur(e,"value"))return e;let{onConflict:t,...r}=e;return{onConflict:t,value:r}}function hxn(e,t){let r=t5e(e)&&Dur(e,t)?e[t]:void 0;return oLo(r)}JK.RESOLVED_RC_FILE=Symbol();function gve(e,t){return[e,t,JK.RESOLVED_RC_FILE]}function kur(e){return Array.isArray(e)?e[2]===JK.RESOLVED_RC_FILE:!1}function Tur(e,t){if(t5e(e)){let r={};for(let n of Object.keys(e))r[n]=Tur(e[n],t);return gve(t,r)}return Array.isArray(e)?gve(t,e.map(r=>Tur(r,t))):gve(t,e)}function Rur(e,t,r,n,a){let o,l=[],A=a,f=0;for(let C=a-1;C>=n;--C){let[b,E]=e[C],{onConflict:N,value:B}=hxn(E,r),F=Ixn(B);if(F!==oM.Undefined){if(o??=F,F!==o||N==="hardReset"){f=A;break}if(F===oM.Literal)return gve(b,B);if(l.unshift([b,B]),N==="reset"){f=C;break}N==="extend"&&C===n&&(n=0),A=C}}if(typeof o>"u")return null;let I=l.map(([C])=>C).join(", ");switch(o){case oM.Array:return gve(I,new Array().concat(...l.map(([C,b])=>b.map(E=>Tur(E,C)))));case oM.Object:{let C=Object.assign({},...l.map(([,F])=>F)),b=Object.keys(C),E={},N=e.map(([F,Q])=>[F,hxn(Q,r).value]),B=iLo(N,([F,Q])=>{let X=Ixn(Q);return X!==oM.Object&&X!==oM.Undefined});if(B!==-1){let F=N.slice(B+1);for(let Q of b)E[Q]=Rur(F,t,Q,0,F.length)}else for(let F of b)E[F]=Rur(N,t,F,f,N.length);return gve(I,E)}default:throw new Error("Assertion failed: Non-extendable value type")}}function aLo(e){return Rur(e.map(([t,r])=>[t,{".":r}]),[],".",0,e.length)}function cLo(e){return kur(e)?e[1]:e}function Nur(e){let t=kur(e)?e[1]:e;if(Array.isArray(t))return t.map(r=>Nur(r));if(t5e(t)){let r={};for(let[n,a]of Object.entries(t))r[n]=Nur(a);return r}return t}function lLo(e){return kur(e)?e[0]:null}});var Agt=H(r5e=>{"use strict";Object.defineProperty(r5e,"__esModule",{value:!0});r5e.getDefaultGlobalFolder=uLo;r5e.getHomeFolder=_xn;r5e.isFolderInside=gLo;var i$=no(),Cxn=wt("os");function uLo(){if(process.platform==="win32"){let e=i$.npath.toPortablePath(process.env.LOCALAPPDATA||i$.npath.join((0,Cxn.homedir)(),"AppData","Local"));return i$.ppath.resolve(e,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let e=i$.npath.toPortablePath(process.env.XDG_DATA_HOME);return i$.ppath.resolve(e,"yarn/berry")}return i$.ppath.resolve(_xn(),".yarn/berry")}function _xn(){return i$.npath.toPortablePath((0,Cxn.homedir)()||"/usr/local/share")}function gLo(e,t){let r=i$.ppath.relative(t,e);return r&&!r.startsWith("..")&&!i$.ppath.isAbsolute(r)}});var Exn=H((O8l,bxn)=>{"use strict";var xur=wt("https"),Gur=wt("http"),{URL:yxn}=wt("url"),Fur=class extends Gur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200?r(null,l):(l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null))}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}},Zur=class extends xur.Agent{constructor(t){let{proxy:r,proxyRequestOptions:n,...a}=t;super(a),this.proxy=typeof r=="string"?new yxn(r):r,this.proxyRequestOptions=n||{}}createConnection(t,r){let n={...this.proxyRequestOptions,method:"CONNECT",host:this.proxy.hostname,port:this.proxy.port,path:`${t.host}:${t.port}`,setHost:!1,headers:{...this.proxyRequestOptions.headers,connection:this.keepAlive?"keep-alive":"close",host:`${t.host}:${t.port}`},agent:!1,timeout:t.timeout||0};if(this.proxy.username||this.proxy.password){let o=Buffer.from(`${decodeURIComponent(this.proxy.username||"")}:${decodeURIComponent(this.proxy.password||"")}`).toString("base64");n.headers["proxy-authorization"]=`Basic ${o}`}this.proxy.protocol==="https:"&&(n.servername=this.proxy.hostname);let a=(this.proxy.protocol==="http:"?Gur:xur).request(n);a.once("connect",(o,l,A)=>{if(a.removeAllListeners(),l.removeAllListeners(),o.statusCode===200){let f=super.createConnection({...t,socket:l});r(null,f)}else l.destroy(),r(new Error(`Bad response: ${o.statusCode}`),null)}),a.once("timeout",()=>{a.destroy(new Error("Proxy timeout"))}),a.once("error",o=>{a.removeAllListeners(),r(o,null)}),a.end()}};bxn.exports={HttpProxyAgent:Fur,HttpsProxyAgent:Zur}});var o$=H((s$,dgt)=>{"use strict";Object.defineProperty(s$,"__esModule",{value:!0});var Sxn=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ALo(e){return Sxn.includes(e)}var dLo=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Sxn];function pLo(e){return dLo.includes(e)}var fLo=["null","undefined","string","number","bigint","boolean","symbol"];function ILo(e){return fLo.includes(e)}function Ave(e){return t=>typeof t===e}var{toString:vxn}=Object.prototype,n5e=e=>{let t=vxn.call(e).slice(8,-1);if(/HTML\w+Element/.test(t)&&Xi.domElement(e))return"HTMLElement";if(pLo(t))return t},Xb=e=>t=>n5e(t)===e;function Xi(e){if(e===null)return"null";switch(typeof e){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Xi.observable(e))return"Observable";if(Xi.array(e))return"Array";if(Xi.buffer(e))return"Buffer";let t=n5e(e);if(t)return t;if(e instanceof String||e instanceof Boolean||e instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Xi.undefined=Ave("undefined");Xi.string=Ave("string");var hLo=Ave("number");Xi.number=e=>hLo(e)&&!Xi.nan(e);Xi.bigint=Ave("bigint");Xi.function_=Ave("function");Xi.null_=e=>e===null;Xi.class_=e=>Xi.function_(e)&&e.toString().startsWith("class ");Xi.boolean=e=>e===!0||e===!1;Xi.symbol=Ave("symbol");Xi.numericString=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e)&&!Number.isNaN(Number(e));Xi.array=(e,t)=>Array.isArray(e)?Xi.function_(t)?e.every(t):!0:!1;Xi.buffer=e=>{var t,r,n,a;return(a=(n=(r=(t=e)===null||t===void 0?void 0:t.constructor)===null||r===void 0?void 0:r.isBuffer)===null||n===void 0?void 0:n.call(r,e))!==null&&a!==void 0?a:!1};Xi.blob=e=>Xb("Blob")(e);Xi.nullOrUndefined=e=>Xi.null_(e)||Xi.undefined(e);Xi.object=e=>!Xi.null_(e)&&(typeof e=="object"||Xi.function_(e));Xi.iterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.iterator])};Xi.asyncIterable=e=>{var t;return Xi.function_((t=e)===null||t===void 0?void 0:t[Symbol.asyncIterator])};Xi.generator=e=>{var t,r;return Xi.iterable(e)&&Xi.function_((t=e)===null||t===void 0?void 0:t.next)&&Xi.function_((r=e)===null||r===void 0?void 0:r.throw)};Xi.asyncGenerator=e=>Xi.asyncIterable(e)&&Xi.function_(e.next)&&Xi.function_(e.throw);Xi.nativePromise=e=>Xb("Promise")(e);var mLo=e=>{var t,r;return Xi.function_((t=e)===null||t===void 0?void 0:t.then)&&Xi.function_((r=e)===null||r===void 0?void 0:r.catch)};Xi.promise=e=>Xi.nativePromise(e)||mLo(e);Xi.generatorFunction=Xb("GeneratorFunction");Xi.asyncGeneratorFunction=e=>n5e(e)==="AsyncGeneratorFunction";Xi.asyncFunction=e=>n5e(e)==="AsyncFunction";Xi.boundFunction=e=>Xi.function_(e)&&!e.hasOwnProperty("prototype");Xi.regExp=Xb("RegExp");Xi.date=Xb("Date");Xi.error=Xb("Error");Xi.map=e=>Xb("Map")(e);Xi.set=e=>Xb("Set")(e);Xi.weakMap=e=>Xb("WeakMap")(e);Xi.weakSet=e=>Xb("WeakSet")(e);Xi.int8Array=Xb("Int8Array");Xi.uint8Array=Xb("Uint8Array");Xi.uint8ClampedArray=Xb("Uint8ClampedArray");Xi.int16Array=Xb("Int16Array");Xi.uint16Array=Xb("Uint16Array");Xi.int32Array=Xb("Int32Array");Xi.uint32Array=Xb("Uint32Array");Xi.float32Array=Xb("Float32Array");Xi.float64Array=Xb("Float64Array");Xi.bigInt64Array=Xb("BigInt64Array");Xi.bigUint64Array=Xb("BigUint64Array");Xi.arrayBuffer=Xb("ArrayBuffer");Xi.sharedArrayBuffer=Xb("SharedArrayBuffer");Xi.dataView=Xb("DataView");Xi.enumCase=(e,t)=>Object.values(t).includes(e);Xi.directInstanceOf=(e,t)=>Object.getPrototypeOf(e)===t.prototype;Xi.urlInstance=e=>Xb("URL")(e);Xi.urlString=e=>{if(!Xi.string(e))return!1;try{return new URL(e),!0}catch{return!1}};Xi.truthy=e=>!!e;Xi.falsy=e=>!e;Xi.nan=e=>Number.isNaN(e);Xi.primitive=e=>Xi.null_(e)||ILo(typeof e);Xi.integer=e=>Number.isInteger(e);Xi.safeInteger=e=>Number.isSafeInteger(e);Xi.plainObject=e=>{if(vxn.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.getPrototypeOf({})};Xi.typedArray=e=>ALo(n5e(e));var CLo=e=>Xi.safeInteger(e)&&e>=0;Xi.arrayLike=e=>!Xi.nullOrUndefined(e)&&!Xi.function_(e)&&CLo(e.length);Xi.inRange=(e,t)=>{if(Xi.number(t))return e>=Math.min(0,t)&&e<=Math.max(t,0);if(Xi.array(t)&&t.length===2)return e>=Math.min(...t)&&e<=Math.max(...t);throw new TypeError(`Invalid range: ${JSON.stringify(t)}`)};var _Lo=1,yLo=["innerHTML","ownerDocument","style","attributes","nodeValue"];Xi.domElement=e=>Xi.object(e)&&e.nodeType===_Lo&&Xi.string(e.nodeName)&&!Xi.plainObject(e)&&yLo.every(t=>t in e);Xi.observable=e=>{var t,r,n,a;return e?e===((r=(t=e)[Symbol.observable])===null||r===void 0?void 0:r.call(t))||e===((a=(n=e)["@@observable"])===null||a===void 0?void 0:a.call(n)):!1};Xi.nodeStream=e=>Xi.object(e)&&Xi.function_(e.pipe)&&!Xi.observable(e);Xi.infinite=e=>e===1/0||e===-1/0;var Bxn=e=>t=>Xi.integer(t)&&Math.abs(t%2)===e;Xi.evenInteger=Bxn(0);Xi.oddInteger=Bxn(1);Xi.emptyArray=e=>Xi.array(e)&&e.length===0;Xi.nonEmptyArray=e=>Xi.array(e)&&e.length>0;Xi.emptyString=e=>Xi.string(e)&&e.length===0;var bLo=e=>Xi.string(e)&&!/\S/.test(e);Xi.emptyStringOrWhitespace=e=>Xi.emptyString(e)||bLo(e);Xi.nonEmptyString=e=>Xi.string(e)&&e.length>0;Xi.nonEmptyStringAndNotWhitespace=e=>Xi.string(e)&&!Xi.emptyStringOrWhitespace(e);Xi.emptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length===0;Xi.nonEmptyObject=e=>Xi.object(e)&&!Xi.map(e)&&!Xi.set(e)&&Object.keys(e).length>0;Xi.emptySet=e=>Xi.set(e)&&e.size===0;Xi.nonEmptySet=e=>Xi.set(e)&&e.size>0;Xi.emptyMap=e=>Xi.map(e)&&e.size===0;Xi.nonEmptyMap=e=>Xi.map(e)&&e.size>0;Xi.propertyKey=e=>Xi.any([Xi.string,Xi.number,Xi.symbol],e);Xi.formData=e=>Xb("FormData")(e);Xi.urlSearchParams=e=>Xb("URLSearchParams")(e);var wxn=(e,t,r)=>{if(!Xi.function_(t))throw new TypeError(`Invalid predicate: ${JSON.stringify(t)}`);if(r.length===0)throw new TypeError("Invalid number of values");return e.call(r,t)};Xi.any=(e,...t)=>(Xi.array(e)?e:[e]).some(n=>wxn(Array.prototype.some,n,t));Xi.all=(e,...t)=>wxn(Array.prototype.every,e,t);var Mu=(e,t,r,n={})=>{if(!e){let{multipleValues:a}=n,o=a?`received values of types ${[...new Set(r.map(l=>`\`${Xi(l)}\``))].join(", ")}`:`received value of type \`${Xi(r)}\``;throw new TypeError(`Expected value which is \`${t}\`, ${o}.`)}};s$.assert={undefined:e=>Mu(Xi.undefined(e),"undefined",e),string:e=>Mu(Xi.string(e),"string",e),number:e=>Mu(Xi.number(e),"number",e),bigint:e=>Mu(Xi.bigint(e),"bigint",e),function_:e=>Mu(Xi.function_(e),"Function",e),null_:e=>Mu(Xi.null_(e),"null",e),class_:e=>Mu(Xi.class_(e),"Class",e),boolean:e=>Mu(Xi.boolean(e),"boolean",e),symbol:e=>Mu(Xi.symbol(e),"symbol",e),numericString:e=>Mu(Xi.numericString(e),"string with a number",e),array:(e,t)=>{Mu(Xi.array(e),"Array",e),t&&e.forEach(t)},buffer:e=>Mu(Xi.buffer(e),"Buffer",e),blob:e=>Mu(Xi.blob(e),"Blob",e),nullOrUndefined:e=>Mu(Xi.nullOrUndefined(e),"null or undefined",e),object:e=>Mu(Xi.object(e),"Object",e),iterable:e=>Mu(Xi.iterable(e),"Iterable",e),asyncIterable:e=>Mu(Xi.asyncIterable(e),"AsyncIterable",e),generator:e=>Mu(Xi.generator(e),"Generator",e),asyncGenerator:e=>Mu(Xi.asyncGenerator(e),"AsyncGenerator",e),nativePromise:e=>Mu(Xi.nativePromise(e),"native Promise",e),promise:e=>Mu(Xi.promise(e),"Promise",e),generatorFunction:e=>Mu(Xi.generatorFunction(e),"GeneratorFunction",e),asyncGeneratorFunction:e=>Mu(Xi.asyncGeneratorFunction(e),"AsyncGeneratorFunction",e),asyncFunction:e=>Mu(Xi.asyncFunction(e),"AsyncFunction",e),boundFunction:e=>Mu(Xi.boundFunction(e),"Function",e),regExp:e=>Mu(Xi.regExp(e),"RegExp",e),date:e=>Mu(Xi.date(e),"Date",e),error:e=>Mu(Xi.error(e),"Error",e),map:e=>Mu(Xi.map(e),"Map",e),set:e=>Mu(Xi.set(e),"Set",e),weakMap:e=>Mu(Xi.weakMap(e),"WeakMap",e),weakSet:e=>Mu(Xi.weakSet(e),"WeakSet",e),int8Array:e=>Mu(Xi.int8Array(e),"Int8Array",e),uint8Array:e=>Mu(Xi.uint8Array(e),"Uint8Array",e),uint8ClampedArray:e=>Mu(Xi.uint8ClampedArray(e),"Uint8ClampedArray",e),int16Array:e=>Mu(Xi.int16Array(e),"Int16Array",e),uint16Array:e=>Mu(Xi.uint16Array(e),"Uint16Array",e),int32Array:e=>Mu(Xi.int32Array(e),"Int32Array",e),uint32Array:e=>Mu(Xi.uint32Array(e),"Uint32Array",e),float32Array:e=>Mu(Xi.float32Array(e),"Float32Array",e),float64Array:e=>Mu(Xi.float64Array(e),"Float64Array",e),bigInt64Array:e=>Mu(Xi.bigInt64Array(e),"BigInt64Array",e),bigUint64Array:e=>Mu(Xi.bigUint64Array(e),"BigUint64Array",e),arrayBuffer:e=>Mu(Xi.arrayBuffer(e),"ArrayBuffer",e),sharedArrayBuffer:e=>Mu(Xi.sharedArrayBuffer(e),"SharedArrayBuffer",e),dataView:e=>Mu(Xi.dataView(e),"DataView",e),enumCase:(e,t)=>Mu(Xi.enumCase(e,t),"EnumCase",e),urlInstance:e=>Mu(Xi.urlInstance(e),"URL",e),urlString:e=>Mu(Xi.urlString(e),"string with a URL",e),truthy:e=>Mu(Xi.truthy(e),"truthy",e),falsy:e=>Mu(Xi.falsy(e),"falsy",e),nan:e=>Mu(Xi.nan(e),"NaN",e),primitive:e=>Mu(Xi.primitive(e),"primitive",e),integer:e=>Mu(Xi.integer(e),"integer",e),safeInteger:e=>Mu(Xi.safeInteger(e),"integer",e),plainObject:e=>Mu(Xi.plainObject(e),"plain object",e),typedArray:e=>Mu(Xi.typedArray(e),"TypedArray",e),arrayLike:e=>Mu(Xi.arrayLike(e),"array-like",e),domElement:e=>Mu(Xi.domElement(e),"HTMLElement",e),observable:e=>Mu(Xi.observable(e),"Observable",e),nodeStream:e=>Mu(Xi.nodeStream(e),"Node.js Stream",e),infinite:e=>Mu(Xi.infinite(e),"infinite number",e),emptyArray:e=>Mu(Xi.emptyArray(e),"empty array",e),nonEmptyArray:e=>Mu(Xi.nonEmptyArray(e),"non-empty array",e),emptyString:e=>Mu(Xi.emptyString(e),"empty string",e),emptyStringOrWhitespace:e=>Mu(Xi.emptyStringOrWhitespace(e),"empty string or whitespace",e),nonEmptyString:e=>Mu(Xi.nonEmptyString(e),"non-empty string",e),nonEmptyStringAndNotWhitespace:e=>Mu(Xi.nonEmptyStringAndNotWhitespace(e),"non-empty string and not whitespace",e),emptyObject:e=>Mu(Xi.emptyObject(e),"empty object",e),nonEmptyObject:e=>Mu(Xi.nonEmptyObject(e),"non-empty object",e),emptySet:e=>Mu(Xi.emptySet(e),"empty set",e),nonEmptySet:e=>Mu(Xi.nonEmptySet(e),"non-empty set",e),emptyMap:e=>Mu(Xi.emptyMap(e),"empty map",e),nonEmptyMap:e=>Mu(Xi.nonEmptyMap(e),"non-empty map",e),propertyKey:e=>Mu(Xi.propertyKey(e),"PropertyKey",e),formData:e=>Mu(Xi.formData(e),"FormData",e),urlSearchParams:e=>Mu(Xi.urlSearchParams(e),"URLSearchParams",e),evenInteger:e=>Mu(Xi.evenInteger(e),"even integer",e),oddInteger:e=>Mu(Xi.oddInteger(e),"odd integer",e),directInstanceOf:(e,t)=>Mu(Xi.directInstanceOf(e,t),"T",e),inRange:(e,t)=>Mu(Xi.inRange(e,t),"in range",e),any:(e,...t)=>Mu(Xi.any(e,...t),"predicate returns truthy for any value",t,{multipleValues:!0}),all:(e,...t)=>Mu(Xi.all(e,...t),"predicate returns truthy for all values",t,{multipleValues:!0})};Object.defineProperties(Xi,{class:{value:Xi.class_},function:{value:Xi.function_},null:{value:Xi.null_}});Object.defineProperties(s$.assert,{class:{value:s$.assert.class_},function:{value:s$.assert.function_},null:{value:s$.assert.null_}});s$.default=Xi;dgt.exports=Xi;dgt.exports.default=Xi;dgt.exports.assert=s$.assert});var Txn=H((M8l,Lur)=>{"use strict";var pgt=class extends Error{constructor(t){super(t||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},fgt=class e{static fn(t){return(...r)=>new e((n,a,o)=>{r.push(o),t(...r).then(n,a)})}constructor(t){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,n)=>{this._reject=n;let a=A=>{(!this._isCanceled||!l.shouldReject)&&(this._isPending=!1,r(A))},o=A=>{this._isPending=!1,n(A)},l=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(l,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),t(a,o,l)})}then(t,r){return this._promise.then(t,r)}catch(t){return this._promise.catch(t)}finally(t){return this._promise.finally(t)}cancel(t){if(!(!this._isPending||this._isCanceled)){if(this._isCanceled=!0,this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r);return}this._rejectOnCancel&&this._reject(new pgt(t))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(fgt.prototype,Promise.prototype);Lur.exports=fgt;Lur.exports.CancelError=pgt});var Rxn=H((Pur,Wur)=>{"use strict";Object.defineProperty(Pur,"__esModule",{value:!0});function ELo(e){return e.encrypted}var Vur=(e,t)=>{let r;typeof t=="function"?r={connect:t}:r=t;let n=typeof r.connect=="function",a=typeof r.secureConnect=="function",o=typeof r.close=="function",l=()=>{n&&r.connect(),ELo(e)&&a&&(e.authorized?r.secureConnect():e.authorizationError||e.once("secureConnect",r.secureConnect)),o&&e.once("close",r.close)};e.writable&&!e.connecting?l():e.connecting?e.once("connect",l):e.destroyed&&o&&r.close(e._hadError)};Pur.default=Vur;Wur.exports=Vur;Wur.exports.default=Vur});var Nxn=H((Mur,Hur)=>{"use strict";Object.defineProperty(Mur,"__esModule",{value:!0});var SLo=Rxn(),vLo=wt("util"),BLo=Number(process.versions.node.split(".")[0]),Our=e=>{if(e.timings)return e.timings;let t={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};e.timings=t;let r=A=>{let f=A.emit.bind(A);A.emit=(I,...C)=>(I==="error"&&(t.error=Date.now(),t.phases.total=t.error-t.start,A.emit=f),f(I,...C))};r(e);let n=()=>{t.abort=Date.now(),(!t.response||BLo>=13)&&(t.phases.total=Date.now()-t.start)};e.prependOnceListener("abort",n);let a=A=>{if(t.socket=Date.now(),t.phases.wait=t.socket-t.start,vLo.types.isProxy(A))return;let f=()=>{t.lookup=Date.now(),t.phases.dns=t.lookup-t.socket};A.prependOnceListener("lookup",f),SLo.default(A,{connect:()=>{t.connect=Date.now(),t.lookup===void 0&&(A.removeListener("lookup",f),t.lookup=t.connect,t.phases.dns=t.lookup-t.socket),t.phases.tcp=t.connect-t.lookup},secureConnect:()=>{t.secureConnect=Date.now(),t.phases.tls=t.secureConnect-t.connect}})};e.socket?a(e.socket):e.prependOnceListener("socket",a);let o=()=>{var A;t.upload=Date.now(),t.phases.request=t.upload-((A=t.secureConnect)!==null&&A!==void 0?A:t.connect)};return(typeof e.writableFinished=="boolean"?e.writableFinished:e.finished&&e.outputSize===0&&(!e.socket||e.socket.writableLength===0))?o():e.prependOnceListener("finish",o),e.prependOnceListener("response",A=>{t.response=Date.now(),t.phases.firstByte=t.response-t.upload,A.timings=t,r(A),A.prependOnceListener("end",()=>{t.end=Date.now(),t.phases.download=t.end-t.response,t.phases.total=t.end-t.start}),A.prependOnceListener("aborted",n)}),t};Mur.default=Our;Hur.exports=Our;Hur.exports.default=Our});var Lxn=H((H8l,Xur)=>{"use strict";var{V4MAPPED:wLo,ADDRCONFIG:TLo,ALL:Zxn,promises:{Resolver:Dxn},lookup:RLo}=wt("dns"),{promisify:Yur}=wt("util"),NLo=wt("os"),dve=Symbol("cacheableLookupCreateConnection"),Qur=Symbol("cacheableLookupInstance"),kxn=Symbol("expires"),DLo=typeof Zxn=="number",xxn=e=>{if(!(e&&typeof e.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},kLo=e=>{for(let t of e)t.family!==6&&(t.address=`::ffff:${t.address}`,t.family=6)},Gxn=()=>{let e=!1,t=!1;for(let r of Object.values(NLo.networkInterfaces()))for(let n of r)if(!n.internal&&(n.family==="IPv6"?t=!0:e=!0,e&&t))return{has4:e,has6:t};return{has4:e,has6:t}},xLo=e=>Symbol.iterator in e,Fxn={ttl:!0},GLo={all:!0},Igt=class{constructor({cache:t=new Map,maxTtl:r=1/0,fallbackDuration:n=3600,errorTtl:a=.15,resolver:o=new Dxn,lookup:l=RLo}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=t,this._resolver=o,this._dnsLookup=Yur(l),this._resolver instanceof Dxn?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Yur(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Yur(this._resolver.resolve6.bind(this._resolver))),this._iface=Gxn(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,n<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},n*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(t){this.clear(),this._resolver.setServers(t)}get servers(){return this._resolver.getServers()}lookup(t,r,n){if(typeof r=="function"?(n=r,r={}):typeof r=="number"&&(r={family:r}),!n)throw new Error("Callback must be a function.");this.lookupAsync(t,r).then(a=>{r.all?n(null,a):n(null,a.address,a.family,a.expires,a.ttl)},n)}async lookupAsync(t,r={}){typeof r=="number"&&(r={family:r});let n=await this.query(t);if(r.family===6){let a=n.filter(o=>o.family===6);r.hints&wLo&&(DLo&&r.hints&Zxn||a.length===0)?kLo(n):n=a}else r.family===4&&(n=n.filter(a=>a.family===4));if(r.hints&TLo){let{_iface:a}=this;n=n.filter(o=>o.family===6?a.has6:a.has4)}if(n.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${t}`);throw a.code="ENOTFOUND",a.hostname=t,a}return r.all?n:n[0]}async query(t){let r=await this._cache.get(t);if(!r){let n=this._pending[t];if(n)r=await n;else{let a=this.queryAndCache(t);this._pending[t]=a;try{r=await a}finally{delete this._pending[t]}}}return r=r.map(n=>({...n})),r}async _resolve(t){let r=async I=>{try{return await I}catch(C){if(C.code==="ENODATA"||C.code==="ENOTFOUND")return[];throw C}},[n,a]=await Promise.all([this._resolve4(t,Fxn),this._resolve6(t,Fxn)].map(I=>r(I))),o=0,l=0,A=0,f=Date.now();for(let I of n)I.family=4,I.expires=f+I.ttl*1e3,o=Math.max(o,I.ttl);for(let I of a)I.family=6,I.expires=f+I.ttl*1e3,l=Math.max(l,I.ttl);return n.length>0?a.length>0?A=Math.min(o,l):A=o:A=l,{entries:[...n,...a],cacheTtl:A}}async _lookup(t){try{return{entries:await this._dnsLookup(t,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(t,r,n){if(this.maxTtl>0&&n>0){n=Math.min(n,this.maxTtl)*1e3,r[kxn]=Date.now()+n;try{await this._cache.set(t,r,n)}catch(a){this.lookupAsync=async()=>{let o=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw o.cause=a,o}}xLo(this._cache)&&this._tick(n)}}async queryAndCache(t){if(this._hostnamesToFallback.has(t))return this._dnsLookup(t,GLo);let r=await this._resolve(t);r.entries.length===0&&this._fallback&&(r=await this._lookup(t),r.entries.length!==0&&this._hostnamesToFallback.add(t));let n=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(t,r.entries,n),r.entries}_tick(t){let r=this._nextRemovalTime;(!r||t{this._nextRemovalTime=!1;let n=1/0,a=Date.now();for(let[o,l]of this._cache){let A=l[kxn];a>=A?this._cache.delete(o):A("lookup"in r||(r.lookup=this.lookup),t[dve](r,n))}uninstall(t){if(xxn(t),t[dve]){if(t[Qur]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");t.createConnection=t[dve],delete t[dve],delete t[Qur]}}updateInterfaceInfo(){let{_iface:t}=this;this._iface=Gxn(),(t.has4&&!this._iface.has4||t.has6&&!this._iface.has6)&&this._cache.clear()}clear(t){if(t){this._cache.delete(t);return}this._cache.clear()}};Xur.exports=Igt;Xur.exports.default=Igt});var Wxn=H((Y8l,Pxn)=>{"use strict";var FLo="text/plain",ZLo="us-ascii",Vxn=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),LLo=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===ZLo)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length!==0||f&&f!==FLo)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`},VLo=(e,t)=>{if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return LLo(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname&&(a.pathname=a.pathname.replace(/(?0){let l=a.pathname.split("/"),A=l[l.length-1];Vxn(A,t.removeDirectoryIndex)&&(l=l.slice(0,l.length-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)(?:[a-z\-\d]{1,63})\.(?:[a-z.\-\d]{2,63})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])Vxn(l,t.removeQueryParameters)&&a.searchParams.delete(l);t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters&&a.searchParams.sort(),t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e};Pxn.exports=VLo});var Hxn=H((Q8l,Mxn)=>{Mxn.exports=Oxn;function Oxn(e,t){if(e&&t)return Oxn(e)(t);if(typeof e!="function")throw new TypeError("need wrapper function");return Object.keys(e).forEach(function(n){r[n]=e[n]}),r;function r(){for(var n=new Array(arguments.length),a=0;a{var Yxn=Hxn();Jur.exports=Yxn(hgt);Jur.exports.strict=Yxn(Qxn);hgt.proto=hgt(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return hgt(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return Qxn(this)},configurable:!0})});function hgt(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function Qxn(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}});var Uur=H((J8l,Jxn)=>{var PLo=mgt(),WLo=function(){},OLo=function(e){return e.setHeader&&typeof e.abort=="function"},MLo=function(e){return e.stdio&&Array.isArray(e.stdio)&&e.stdio.length===3},Xxn=function(e,t,r){if(typeof t=="function")return Xxn(e,null,t);t||(t={}),r=PLo(r||WLo);var n=e._writableState,a=e._readableState,o=t.readable||t.readable!==!1&&e.readable,l=t.writable||t.writable!==!1&&e.writable,A=!1,f=function(){e.writable||I()},I=function(){l=!1,o||r.call(e)},C=function(){o=!1,l||r.call(e)},b=function(Q){r.call(e,Q?new Error("exited with error code: "+Q):null)},E=function(Q){r.call(e,Q)},N=function(){process.nextTick(B)},B=function(){if(!A){if(o&&!(a&&a.ended&&!a.destroyed))return r.call(e,new Error("premature close"));if(l&&!(n&&n.ended&&!n.destroyed))return r.call(e,new Error("premature close"))}},F=function(){e.req.on("finish",I)};return OLo(e)?(e.on("complete",I),e.on("abort",N),e.req?F():e.on("request",F)):l&&!n&&(e.on("end",f),e.on("close",f)),MLo(e)&&e.on("exit",b),e.on("end",C),e.on("finish",I),t.error!==!1&&e.on("error",E),e.on("close",N),function(){A=!0,e.removeListener("complete",I),e.removeListener("abort",N),e.removeListener("request",F),e.req&&e.req.removeListener("finish",I),e.removeListener("end",f),e.removeListener("close",f),e.removeListener("finish",I),e.removeListener("exit",b),e.removeListener("end",C),e.removeListener("error",E),e.removeListener("close",N)}};Jxn.exports=Xxn});var jxn=H((U8l,Kxn)=>{var HLo=mgt(),YLo=Uur(),Cgt;try{Cgt=wt("fs")}catch{}var i5e=function(){},QLo=/^v?\.0/.test(process.version),_gt=function(e){return typeof e=="function"},XLo=function(e){return!QLo||!Cgt?!1:(e instanceof(Cgt.ReadStream||i5e)||e instanceof(Cgt.WriteStream||i5e))&&_gt(e.close)},JLo=function(e){return e.setHeader&&_gt(e.abort)},ULo=function(e,t,r,n){n=HLo(n);var a=!1;e.on("close",function(){a=!0}),YLo(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,XLo(e))return e.close(i5e);if(JLo(e))return e.abort();if(_gt(e.destroy))return e.destroy();n(l||new Error("stream was destroyed"))}}},Uxn=function(e){e()},KLo=function(e,t){return e.pipe(t)},jLo=function(){var e=Array.prototype.slice.call(arguments),t=_gt(e[e.length-1]||i5e)&&e.pop()||i5e;if(Array.isArray(e[0])&&(e=e[0]),e.length<2)throw new Error("pump requires two streams per minimum");var r,n=e.map(function(a,o){var l=o0;return ULo(a,l,A,function(f){r||(r=f),f&&n.forEach(Uxn),!l&&(n.forEach(Uxn),t(r))})});return e.reduce(KLo)};Kxn.exports=jLo});var qxn=H((K8l,zxn)=>{"use strict";var{PassThrough:zLo}=wt("stream");zxn.exports=e=>{e={...e};let{array:t}=e,{encoding:r}=e,n=r==="buffer",a=!1;t?a=!(r||n):r=r||"utf8",n&&(r=null);let o=new zLo({objectMode:a});r&&o.setEncoding(r);let l=0,A=[];return o.on("data",f=>{A.push(f),a?l=A.length:l+=f.length}),o.getBufferedValue=()=>t?A:n?Buffer.concat(A,l):A.join(""),o.getBufferedLength=()=>l,o}});var $xn=H((j8l,pve)=>{"use strict";var{constants:qLo}=wt("buffer"),$Lo=jxn(),e9o=qxn(),ygt=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function bgt(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};let{maxBuffer:r}=t,n;return await new Promise((a,o)=>{let l=A=>{A&&n.getBufferedLength()<=qLo.MAX_LENGTH&&(A.bufferedData=n.getBufferedValue()),o(A)};n=$Lo(e,e9o(t),A=>{if(A){l(A);return}a()}),n.on("data",()=>{n.getBufferedLength()>r&&l(new ygt)})}),n.getBufferedValue()}pve.exports=bgt;pve.exports.default=bgt;pve.exports.buffer=(e,t)=>bgt(e,{...t,encoding:"buffer"});pve.exports.array=(e,t)=>bgt(e,{...t,array:!0});pve.exports.MaxBufferError=ygt});var jur=H((q8l,eGn)=>{"use strict";var t9o=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),r9o=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),n9o=new Set([500,502,503,504]),i9o={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},s9o={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function zfe(e){let t=parseInt(e,10);return isFinite(t)?t:0}function o9o(e){return e?n9o.has(e.status):!0}function Kur(e){let t={};if(!e)return t;let r=e.trim().split(/,/);for(let n of r){let[a,o]=n.split(/=/,2);t[a.trim()]=o===void 0?!0:o.trim().replace(/^"|"$/g,"")}return t}function a9o(e){let t=[];for(let r in e){let n=e[r];t.push(n===!0?r:r+"="+n)}if(t.length)return t.join(", ")}eGn.exports=class{constructor(t,r,{shared:n,cacheHeuristic:a,immutableMinTimeToLive:o,ignoreCargoCult:l,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(t),this._responseTime=this.now(),this._isShared=n!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=o!==void 0?o:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=Kur(r.headers["cache-control"]),this._method="method"in t?t.method:"GET",this._url=t.url,this._host=t.headers.host,this._noAuthorization=!t.headers.authorization,this._reqHeaders=r.headers.vary?t.headers:null,this._reqcc=Kur(t.headers["cache-control"]),l&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":a9o(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&r9o.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||t9o.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(t){if(!t||!t.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(t){this._assertRequestHasHeaders(t);let r=Kur(t.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(t.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(t,!1)}_requestMatches(t,r){return(!this._url||this._url===t.url)&&this._host===t.headers.host&&(!t.method||this._method===t.method||r&&t.method==="HEAD")&&this._varyMatches(t)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(t){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let n of r)if(t.headers[n]!==this._reqHeaders[n])return!1;return!0}_copyWithoutHopByHopHeaders(t){let r={};for(let n in t)i9o[n]||(r[n]=t[n]);if(t.connection){let n=t.connection.trim().split(/\s*,\s*/);for(let a of n)delete r[a]}if(r.warning){let n=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));n.length?r.warning=n.join(",").trim():delete r.warning}return r}responseHeaders(){let t=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(t.warning=(t.warning?`${t.warning}, `:"")+'113 - "rfc7234 5.5.4"'),t.age=`${Math.round(r)}`,t.date=new Date(this.now()).toUTCString(),t}date(){let t=Date.parse(this._resHeaders.date);return isFinite(t)?t:this._responseTime}age(){let t=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return t+r}_ageValue(){return zfe(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return zfe(this._rescc["s-maxage"])}if(this._rescc["max-age"])return zfe(this._rescc["max-age"]);let t=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let n=Date.parse(this._resHeaders.expires);return Number.isNaN(n)||nn)return Math.max(t,(r-n)/1e3*this._cacheHeuristic)}return t}timeToLive(){let t=this.maxAge()-this.age(),r=t+zfe(this._rescc["stale-if-error"]),n=t+zfe(this._rescc["stale-while-revalidate"]);return Math.max(0,t,r,n)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+zfe(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+zfe(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(t){return new this(void 0,void 0,{_fromObject:t})}_fromObject(t){if(this._responseTime)throw Error("Reinitialized");if(!t||t.v!==1)throw Error("Invalid serialization");this._responseTime=t.t,this._isShared=t.sh,this._cacheHeuristic=t.ch,this._immutableMinTtl=t.imm!==void 0?t.imm:24*3600*1e3,this._status=t.st,this._resHeaders=t.resh,this._rescc=t.rescc,this._method=t.m,this._url=t.u,this._host=t.h,this._noAuthorization=t.a,this._reqHeaders=t.reqh,this._reqcc=t.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(t){this._assertRequestHasHeaders(t);let r=this._copyWithoutHopByHopHeaders(t.headers);if(delete r["if-range"],!this._requestMatches(t,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(o=>!/^\s*W\//.test(o));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(t,r){if(this._assertRequestHasHeaders(t),this._useStaleIfError()&&o9o(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let n=!1;if(r.status!==void 0&&r.status!=304?n=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?n=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?n=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?n=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(n=!0),!n)return{policy:new this.constructor(t,r),modified:r.status!=304,matches:!1};let a={};for(let l in this._resHeaders)a[l]=l in r.headers&&!s9o[l]?r.headers[l]:this._resHeaders[l];let o=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(t,o,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Egt=H(($8l,tGn)=>{"use strict";tGn.exports=e=>{let t={};for(let[r,n]of Object.entries(e))t[r.toLowerCase()]=n;return t}});var nGn=H((ejl,rGn)=>{"use strict";var c9o=wt("stream").Readable,l9o=Egt(),zur=class extends c9o{constructor(t,r,n,a){if(typeof t!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(n instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=t,this.headers=l9o(r),this.body=n,this.url=a}_read(){this.push(this.body),this.push(null)}};rGn.exports=zur});var sGn=H((tjl,iGn)=>{"use strict";var u9o=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];iGn.exports=(e,t)=>{let r=new Set(Object.keys(e).concat(u9o));for(let n of r)n in t||(t[n]=typeof e[n]=="function"?e[n].bind(e):e[n])}});var aGn=H((rjl,oGn)=>{"use strict";var g9o=wt("stream").PassThrough,A9o=sGn(),d9o=e=>{if(!(e&&e.pipe))throw new TypeError("Parameter `response` must be a response stream.");let t=new g9o;return A9o(e,t),e.pipe(t)};oGn.exports=d9o});var cGn=H(qur=>{qur.stringify=function e(t){if(typeof t>"u")return t;if(t&&Buffer.isBuffer(t))return JSON.stringify(":base64:"+t.toString("base64"));if(t&&t.toJSON&&(t=t.toJSON()),t&&typeof t=="object"){var r="",n=Array.isArray(t);r=n?"[":"{";var a=!0;for(var o in t){var l=typeof t[o]=="function"||!n&&typeof t[o]>"u";Object.hasOwnProperty.call(t,o)&&!l&&(a||(r+=","),a=!1,n?t[o]==null?r+="null":r+=e(t[o]):t[o]!==void 0&&(r+=e(o)+":"+e(t[o])))}return r+=n?"]":"}",r}else return typeof t=="string"?JSON.stringify(/^:/.test(t)?":"+t:t):typeof t>"u"?"null":JSON.stringify(t)};qur.parse=function(e){return JSON.parse(e,function(t,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var AGn=H((ijl,gGn)=>{"use strict";var p9o=wt("events"),lGn=cGn(),f9o=e=>{let t={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(e.adapter||e.uri){let r=e.adapter||/^[^:+]*/.exec(e.uri)[0];return new(wt(t[r]))(e)}return new Map},uGn=["sqlite","postgres","mysql","mongo","redis","tiered"],$ur=class extends p9o{constructor(t,{emitErrors:r=!0,...n}={}){if(super(),this.opts={namespace:"keyv",serialize:lGn.stringify,deserialize:lGn.parse,...typeof t=="string"?{uri:t}:t,...n},!this.opts.store){let o={...this.opts};this.opts.store=f9o(o)}if(this.opts.compression){let o=this.opts.compression;this.opts.serialize=o.serialize.bind(o),this.opts.deserialize=o.deserialize.bind(o)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace;let a=o=>async function*(){for await(let[l,A]of typeof o=="function"?o(this.opts.store.namespace):o){let f=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!l.includes(this.opts.store.namespace))){if(typeof f.expires=="number"&&Date.now()>f.expires){this.delete(l);continue}yield[this._getKeyUnprefix(l),f.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return uGn.includes(this.opts.store.opts.dialect)||uGn.findIndex(t=>this.opts.store.opts.url.includes(t))>=0}_getKeyPrefix(t){return`${this.opts.namespace}:${t}`}_getKeyPrefixArray(t){return t.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(t){return t.split(":").splice(1).join(":")}get(t,r){let{store:n}=this.opts,a=Array.isArray(t),o=a?this._getKeyPrefixArray(t):this._getKeyPrefix(t);if(a&&n.getMany===void 0){let l=[];for(let A of o)l.push(Promise.resolve().then(()=>n.get(A)).then(f=>typeof f=="string"?this.opts.deserialize(f):this.opts.compression?this.opts.deserialize(f):f).then(f=>{if(f!=null)return typeof f.expires=="number"&&Date.now()>f.expires?this.delete(A).then(()=>{}):r&&r.raw?f:f.value}));return Promise.allSettled(l).then(A=>{let f=[];for(let I of A)f.push(I.value);return f})}return Promise.resolve().then(()=>a?n.getMany(o):n.get(o)).then(l=>typeof l=="string"?this.opts.deserialize(l):this.opts.compression?this.opts.deserialize(l):l).then(l=>{if(l!=null)return a?l.map((A,f)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(t[f]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof l.expires=="number"&&Date.now()>l.expires?this.delete(t).then(()=>{}):r&&r.raw?l:l.value})}set(t,r,n){let a=this._getKeyPrefix(t);typeof n>"u"&&(n=this.opts.ttl),n===0&&(n=void 0);let{store:o}=this.opts;return Promise.resolve().then(()=>{let l=typeof n=="number"?Date.now()+n:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:l},this.opts.serialize(r)}).then(l=>o.set(a,l,n)).then(()=>!0)}delete(t){let{store:r}=this.opts;if(Array.isArray(t)){let a=this._getKeyPrefixArray(t);if(r.deleteMany===void 0){let o=[];for(let l of a)o.push(r.delete(l));return Promise.allSettled(o).then(l=>l.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let n=this._getKeyPrefix(t);return Promise.resolve().then(()=>r.delete(n))}clear(){let{store:t}=this.opts;return Promise.resolve().then(()=>t.clear())}has(t){let r=this._getKeyPrefix(t),{store:n}=this.opts;return Promise.resolve().then(async()=>typeof n.has=="function"?n.has(r):await n.get(r)!==void 0)}disconnect(){let{store:t}=this.opts;if(typeof t.disconnect=="function")return t.disconnect()}};gGn.exports=$ur});var fGn=H((ojl,pGn)=>{"use strict";var I9o=wt("events"),Sgt=wt("url"),h9o=Wxn(),m9o=$xn(),egr=jur(),dGn=nGn(),C9o=Egt(),_9o=aGn(),y9o=AGn(),s5e=class e{constructor(t,r){if(typeof t!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new y9o({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(t)}createCacheableRequest(t){return(r,n)=>{let a;if(typeof r=="string")a=tgr(Sgt.parse(r)),r={};else if(r instanceof Sgt.URL)a=tgr(Sgt.parse(r.toString())),r={};else{let[b,...E]=(r.path||"").split("?"),N=E.length>0?`?${E.join("?")}`:"";a=tgr({...r,pathname:b,search:N})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...b9o(a)},r.headers=C9o(r.headers);let o=new I9o,l=h9o(Sgt.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${l}`,f=!1,I=!1,C=b=>{I=!0;let E=!1,N,B=new Promise(Q=>{N=()=>{E||(E=!0,Q())}}),F=Q=>{if(f&&!b.forceRefresh){Q.status=Q.statusCode;let ae=egr.fromObject(f.cachePolicy).revalidatedPolicy(b,Q);if(!ae.modified){let ne=ae.policy.responseHeaders();Q=new dGn(f.statusCode,ne,f.body,f.url),Q.cachePolicy=ae.policy,Q.fromCache=!0}}Q.fromCache||(Q.cachePolicy=new egr(b,Q,b),Q.fromCache=!1);let X;b.cache&&Q.cachePolicy.storable()?(X=_9o(Q),(async()=>{try{let ae=m9o.buffer(Q);if(await Promise.race([B,new Promise(ue=>Q.once("end",ue))]),E)return;let ne=await ae,ce={cachePolicy:Q.cachePolicy.toObject(),url:Q.url,statusCode:Q.fromCache?f.statusCode:Q.statusCode,body:ne},fe=b.strictTtl?Q.cachePolicy.timeToLive():void 0;b.maxTtl&&(fe=fe?Math.min(fe,b.maxTtl):b.maxTtl),await this.cache.set(A,ce,fe)}catch(ae){o.emit("error",new e.CacheError(ae))}})()):b.cache&&f&&(async()=>{try{await this.cache.delete(A)}catch(ae){o.emit("error",new e.CacheError(ae))}})(),o.emit("response",X||Q),typeof n=="function"&&n(X||Q)};try{let Q=t(b,F);Q.once("error",N),Q.once("abort",N),o.emit("request",Q)}catch(Q){o.emit("error",new e.RequestError(Q))}};return(async()=>{let b=async N=>{await Promise.resolve();let B=N.cache?await this.cache.get(A):void 0;if(typeof B>"u")return C(N);let F=egr.fromObject(B.cachePolicy);if(F.satisfiesWithoutRevalidation(N)&&!N.forceRefresh){let Q=F.responseHeaders(),X=new dGn(B.statusCode,Q,B.body,B.url);X.cachePolicy=F,X.fromCache=!0,o.emit("response",X),typeof n=="function"&&n(X)}else f=B,N.headers=F.revalidationHeaders(N),C(N)},E=N=>o.emit("error",new e.CacheError(N));this.cache.once("error",E),o.on("response",()=>this.cache.removeListener("error",E));try{await b(r)}catch(N){r.automaticFailover&&!I&&C(r),o.emit("error",new e.CacheError(N))}})(),o}}};function b9o(e){let t={...e};return t.path=`${e.pathname||"/"}${e.search||""}`,delete t.pathname,delete t.search,t}function tgr(e){return{protocol:e.protocol,auth:e.auth,hostname:e.hostname||e.host||"localhost",port:e.port,pathname:e.pathname,search:e.search}}s5e.RequestError=class extends Error{constructor(e){super(e.message),this.name="RequestError",Object.assign(this,e)}};s5e.CacheError=class extends Error{constructor(e){super(e.message),this.name="CacheError",Object.assign(this,e)}};pGn.exports=s5e});var hGn=H((ljl,IGn)=>{"use strict";var E9o=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];IGn.exports=(e,t)=>{if(t._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(e).concat(E9o)),n={};for(let a of r)a in t||(n[a]={get(){let o=e[a];return typeof o=="function"?o.bind(e):o},set(o){e[a]=o},enumerable:!0,configurable:!1});return Object.defineProperties(t,n),e.once("aborted",()=>{t.destroy(),t.emit("aborted")}),e.once("close",()=>{e.complete&&t.readable?t.once("end",()=>{t.emit("close")}):t.emit("close")}),t}});var CGn=H((ujl,mGn)=>{"use strict";var{Transform:S9o,PassThrough:v9o}=wt("stream"),rgr=wt("zlib"),B9o=hGn();mGn.exports=e=>{let t=(e.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(t))return e;let r=t==="br";if(r&&typeof rgr.createBrotliDecompress!="function")return e.destroy(new Error("Brotli is not supported on Node.js < 12")),e;let n=!0,a=new S9o({transform(A,f,I){n=!1,I(null,A)},flush(A){A()}}),o=new v9o({autoDestroy:!1,destroy(A,f){e.destroy(),f(A)}}),l=r?rgr.createBrotliDecompress():rgr.createUnzip();return l.once("error",A=>{if(n&&!e.readable){o.end();return}o.destroy(A)}),B9o(e,o),e.pipe(a).pipe(l).pipe(o),o}});var igr=H((gjl,_Gn)=>{"use strict";var ngr=class{constructor(t={}){if(!(t.maxSize&&t.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=t.maxSize,this.onEviction=t.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(t,r){if(this.cache.set(t,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[n,a]of this.oldCache.entries())this.onEviction(n,a);this.oldCache=this.cache,this.cache=new Map}}get(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t)){let r=this.oldCache.get(t);return this.oldCache.delete(t),this._set(t,r),r}}set(t,r){return this.cache.has(t)?this.cache.set(t,r):this._set(t,r),this}has(t){return this.cache.has(t)||this.oldCache.has(t)}peek(t){if(this.cache.has(t))return this.cache.get(t);if(this.oldCache.has(t))return this.oldCache.get(t)}delete(t){let r=this.cache.delete(t);return r&&this._size--,this.oldCache.delete(t)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[t]of this)yield t}*values(){for(let[,t]of this)yield t}*[Symbol.iterator](){for(let t of this.cache)yield t;for(let t of this.oldCache){let[r]=t;this.cache.has(r)||(yield t)}}get size(){let t=0;for(let r of this.oldCache.keys())this.cache.has(r)||t++;return Math.min(this._size+t,this.maxSize)}};_Gn.exports=ngr});var ogr=H((Ajl,SGn)=>{"use strict";var w9o=wt("events"),T9o=wt("tls"),R9o=wt("http2"),N9o=igr(),wZ=Symbol("currentStreamsCount"),yGn=Symbol("request"),aM=Symbol("cachedOriginSet"),fve=Symbol("gracefullyClosing"),D9o=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],k9o=(e,t,r)=>{let n=0,a=e.length;for(;n>>1;r(e[o],t)?n=o+1:a=o}return n},x9o=(e,t)=>e.remoteSettings.maxConcurrentStreams>t.remoteSettings.maxConcurrentStreams,sgr=(e,t)=>{for(let r of e)r[aM].lengtht[aM].includes(n))&&r[wZ]+t[wZ]<=t.remoteSettings.maxConcurrentStreams&&EGn(r)},G9o=(e,t)=>{for(let r of e)t[aM].lengthr[aM].includes(n))&&t[wZ]+r[wZ]<=r.remoteSettings.maxConcurrentStreams&&EGn(t)},bGn=({agent:e,isFree:t})=>{let r={};for(let n in e.sessions){let o=e.sessions[n].filter(l=>{let A=l[qfe.kCurrentStreamsCount]{e[fve]=!0,e[wZ]===0&&e.close()},qfe=class e extends w9o{constructor({timeout:t=6e4,maxSessions:r=1/0,maxFreeSessions:n=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=t,this.maxSessions=r,this.maxFreeSessions=n,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new N9o({maxSize:a})}static normalizeOrigin(t,r){return typeof t=="string"&&(t=new URL(t)),r&&t.hostname!==r&&(t.hostname=r),t.origin}normalizeOptions(t){let r="";if(t)for(let n of D9o)t[n]&&(r+=`:${t[n]}`);return r}_tryToCreateNewSession(t,r){if(!(t in this.queue)||!(r in this.queue[t]))return;let n=this.queue[t][r];this._sessionsCount{Array.isArray(n)?(n=[...n],a()):n=[{resolve:a,reject:o}];let l=this.normalizeOptions(r),A=e.normalizeOrigin(t,r&&r.servername);if(A===void 0){for(let{reject:C}of n)C(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(l in this.sessions){let C=this.sessions[l],b=-1,E=-1,N;for(let B of C){let F=B.remoteSettings.maxConcurrentStreams;if(F=F||B[fve]||B.destroyed)continue;N||(b=F),Q>E&&(N=B,E=Q)}}if(N){if(n.length!==1){for(let{reject:B}of n){let F=new Error(`Expected the length of listeners to be 1, got ${n.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return}n[0].resolve(N);return}}if(l in this.queue){if(A in this.queue[l]){this.queue[l][A].listeners.push(...n),this._tryToCreateNewSession(l,A);return}}else this.queue[l]={};let f=()=>{l in this.queue&&this.queue[l][A]===I&&(delete this.queue[l][A],Object.keys(this.queue[l]).length===0&&delete this.queue[l])},I=()=>{let C=`${A}:${l}`,b=!1;try{let E=R9o.connect(t,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(C),...r});E[wZ]=0,E[fve]=!1;let N=()=>E[wZ]{this.tlsSessionCache.set(C,Q)}),E.once("error",Q=>{for(let{reject:X}of n)X(Q);this.tlsSessionCache.delete(C)}),E.setTimeout(this.timeout,()=>{E.destroy()}),E.once("close",()=>{if(b){B&&this._freeSessionsCount--,this._sessionsCount--;let Q=this.sessions[l];Q.splice(Q.indexOf(E),1),Q.length===0&&delete this.sessions[l]}else{let Q=new Error("Session closed without receiving a SETTINGS frame");Q.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:X}of n)X(Q);f()}this._tryToCreateNewSession(l,A)});let F=()=>{if(!(!(l in this.queue)||!N())){for(let Q of E[aM])if(Q in this.queue[l]){let{listeners:X}=this.queue[l][Q];for(;X.length!==0&&N();)X.shift().resolve(E);let ae=this.queue[l];if(ae[Q].listeners.length===0&&(delete ae[Q],Object.keys(ae).length===0)){delete this.queue[l];break}if(!N())break}}};E.on("origin",()=>{E[aM]=E.originSet,N()&&(F(),sgr(this.sessions[l],E))}),E.once("remoteSettings",()=>{if(E.ref(),E.unref(),this._sessionsCount++,I.destroyed){let Q=new Error("Agent has been destroyed");for(let X of n)X.reject(Q);E.destroy();return}E[aM]=E.originSet;{let Q=this.sessions;if(l in Q){let X=Q[l];X.splice(k9o(X,E,x9o),0,E)}else Q[l]=[E]}this._freeSessionsCount+=1,b=!0,this.emit("session",E),F(),f(),E[wZ]===0&&this._freeSessionsCount>this.maxFreeSessions&&E.close(),n.length!==0&&(this.getSession(A,r,n),n.length=0),E.on("remoteSettings",()=>{F(),sgr(this.sessions[l],E)})}),E[yGn]=E.request,E.request=(Q,X)=>{if(E[fve])throw new Error("The session is gracefully closing. No new streams are allowed.");let ae=E[yGn](Q,X);return E.ref(),++E[wZ],E[wZ]===E.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,ae.once("close",()=>{if(B=N(),--E[wZ],!E.destroyed&&!E.closed&&(G9o(this.sessions[l],E),N()&&!E.closed)){B||(this._freeSessionsCount++,B=!0);let ne=E[wZ]===0;ne&&E.unref(),ne&&(this._freeSessionsCount>this.maxFreeSessions||E[fve])?E.close():(sgr(this.sessions[l],E),F())}}),ae}}catch(E){for(let N of n)N.reject(E);f()}};I.listeners=n,I.completed=!1,I.destroyed=!1,this.queue[l][A]=I,this._tryToCreateNewSession(l,A)})}request(t,r,n,a){return new Promise((o,l)=>{this.getSession(t,r,[{reject:l,resolve:A=>{try{o(A.request(n,a))}catch(f){l(f)}}}])})}createConnection(t,r){return e.connect(t,r)}static connect(t,r){r.ALPNProtocols=["h2"];let n=t.port||443,a=t.hostname||t.host;return typeof r.servername>"u"&&(r.servername=a),T9o.connect(n,a,r)}closeFreeSessions(){for(let t of Object.values(this.sessions))for(let r of t)r[wZ]===0&&r.close()}destroy(t){for(let r of Object.values(this.sessions))for(let n of r)n.destroy(t);for(let r of Object.values(this.queue))for(let n of Object.values(r))n.destroyed=!0;this.queue={}}get freeSessions(){return bGn({agent:this,isFree:!0})}get busySessions(){return bGn({agent:this,isFree:!1})}};qfe.kCurrentStreamsCount=wZ;qfe.kGracefullyClosing=fve;SGn.exports={Agent:qfe,globalAgent:new qfe}});var cgr=H((djl,vGn)=>{"use strict";var{Readable:F9o}=wt("stream"),agr=class extends F9o{constructor(t,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=t,this.connection=t,this._dumped=!1}_destroy(t){this.req._request.destroy(t)}setTimeout(t,r){return this.req.setTimeout(t,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};vGn.exports=agr});var lgr=H((pjl,BGn)=>{"use strict";BGn.exports=e=>{let t={protocol:e.protocol,hostname:typeof e.hostname=="string"&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return typeof e.port=="string"&&e.port.length!==0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var TGn=H((fjl,wGn)=>{"use strict";wGn.exports=(e,t,r)=>{for(let n of r)e.on(n,(...a)=>t.emit(n,...a))}});var NGn=H((Ijl,RGn)=>{"use strict";RGn.exports=e=>{switch(e){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var kGn=H((mjl,DGn)=>{"use strict";var Ive=(e,t,r)=>{DGn.exports[t]=class extends e{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${t}]`,this.code=t}}};Ive(TypeError,"ERR_INVALID_ARG_TYPE",e=>{let t=e[0].includes(".")?"property":"argument",r=e[1],n=Array.isArray(r);return n&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${e[0]}" ${t} must be ${n?"one of":"of"} type ${r}. Received ${typeof e[2]}`});Ive(TypeError,"ERR_INVALID_PROTOCOL",e=>`Protocol "${e[0]}" not supported. Expected "${e[1]}"`);Ive(Error,"ERR_HTTP_HEADERS_SENT",e=>`Cannot ${e[0]} headers after they are sent to the client`);Ive(TypeError,"ERR_INVALID_HTTP_TOKEN",e=>`${e[0]} must be a valid HTTP token [${e[1]}]`);Ive(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",e=>`Invalid value "${e[0]} for header "${e[1]}"`);Ive(TypeError,"ERR_INVALID_CHAR",e=>`Invalid character in ${e[0]} [${e[1]}]`)});var pgr=H((Cjl,PGn)=>{"use strict";var Z9o=wt("http2"),{Writable:L9o}=wt("stream"),{Agent:xGn,globalAgent:V9o}=ogr(),P9o=cgr(),W9o=lgr(),O9o=TGn(),M9o=NGn(),{ERR_INVALID_ARG_TYPE:ugr,ERR_INVALID_PROTOCOL:H9o,ERR_HTTP_HEADERS_SENT:GGn,ERR_INVALID_HTTP_TOKEN:Y9o,ERR_HTTP_INVALID_HEADER_VALUE:Q9o,ERR_INVALID_CHAR:X9o}=kGn(),{HTTP2_HEADER_STATUS:FGn,HTTP2_HEADER_METHOD:ZGn,HTTP2_HEADER_PATH:LGn,HTTP2_METHOD_CONNECT:J9o}=Z9o.constants,dG=Symbol("headers"),ggr=Symbol("origin"),Agr=Symbol("session"),VGn=Symbol("options"),vgt=Symbol("flushedHeaders"),o5e=Symbol("jobs"),U9o=/^[\^`\-\w!#$%&*+.|~]+$/,K9o=/[^\t\u0020-\u007E\u0080-\u00FF]/,dgr=class extends L9o{constructor(t,r,n){super({autoDestroy:!1});let a=typeof t=="string"||t instanceof URL;if(a&&(t=W9o(t instanceof URL?t:new URL(t))),typeof r=="function"||r===void 0?(n=r,r=a?t:{...t}):r={...t,...r},r.h2session)this[Agr]=r.h2session;else if(r.agent===!1)this.agent=new xGn({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new xGn({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=V9o;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ugr("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new H9o(r.protocol,"https:");let o=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,l=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[dG]=Object.create(null),this[o5e]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[f,I]of Object.entries(r.headers))this.setHeader(f,I);r.auth&&!("authorization"in this[dG])&&(this[dG].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[VGn]=r,o===443?(this[ggr]=`https://${l}`,":authority"in this[dG]||(this[dG][":authority"]=l)):(this[ggr]=`https://${l}:${o}`,":authority"in this[dG]||(this[dG][":authority"]=`${l}:${o}`)),A&&this.setTimeout(A),n&&this.once("response",n),this[vgt]=!1}get method(){return this[dG][ZGn]}set method(t){t&&(this[dG][ZGn]=t.toUpperCase())}get path(){return this[dG][LGn]}set path(t){t&&(this[dG][LGn]=t)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(t,r,n){if(this._mustNotHaveABody){n(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(t,r,n);this._request?a():this[o5e].push(a)}_final(t){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){t();return}this._request.end(t)};this._request?r():this[o5e].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(t,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(t)}async flushHeaders(){if(this[vgt]||this.destroyed)return;this[vgt]=!0;let t=this.method===J9o,r=n=>{if(this._request=n,this.destroyed){n.destroy();return}t||O9o(n,this,["timeout","continue","close","error"]);let a=l=>(...A)=>{!this.writable&&!this.destroyed?l(...A):this.once("finish",()=>{l(...A)})};n.once("response",a((l,A,f)=>{let I=new P9o(this.socket,n.readableHighWaterMark);this.res=I,I.req=this,I.statusCode=l[FGn],I.headers=l,I.rawHeaders=f,I.once("end",()=>{this.aborted?(I.aborted=!0,I.emit("aborted")):(I.complete=!0,I.socket=null,I.connection=null)}),t?(I.upgrade=!0,this.emit("connect",I,n,Buffer.alloc(0))?this.emit("close"):n.destroy()):(n.on("data",C=>{!I._dumped&&!I.push(C)&&n.pause()}),n.once("end",()=>{I.push(null)}),this.emit("response",I)||I._dump())})),n.once("headers",a(l=>this.emit("information",{statusCode:l[FGn]}))),n.once("trailers",a((l,A,f)=>{let{res:I}=this;I.trailers=l,I.rawTrailers=f}));let{socket:o}=n.session;this.socket=o,this.connection=o;for(let l of this[o5e])l();this.emit("socket",this.socket)};if(this[Agr])try{r(this[Agr].request(this[dG]))}catch(n){this.emit("error",n)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[ggr],this[VGn],this[dG]))}catch(n){this.emit("error",n)}}}getHeader(t){if(typeof t!="string")throw new ugr("name","string",t);return this[dG][t.toLowerCase()]}get headersSent(){return this[vgt]}removeHeader(t){if(typeof t!="string")throw new ugr("name","string",t);if(this.headersSent)throw new GGn("remove");delete this[dG][t.toLowerCase()]}setHeader(t,r){if(this.headersSent)throw new GGn("set");if(typeof t!="string"||!U9o.test(t)&&!M9o(t))throw new Y9o("Header name",t);if(typeof r>"u")throw new Q9o(r,t);if(K9o.test(r))throw new X9o("header content",t);this[dG][t.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(t,r){let n=()=>this._request.setTimeout(t,r);return this._request?n():this[o5e].push(n),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(t){}};PGn.exports=dgr});var OGn=H((_jl,WGn)=>{"use strict";var j9o=wt("tls");WGn.exports=(e={},t=j9o.connect)=>new Promise((r,n)=>{let a=!1,o,l=async()=>{await f,o.off("timeout",A),o.off("error",n),e.resolveSocket?(r({alpnProtocol:o.alpnProtocol,socket:o,timeout:a}),a&&(await Promise.resolve(),o.emit("timeout"))):(o.destroy(),r({alpnProtocol:o.alpnProtocol,timeout:a}))},A=async()=>{a=!0,l()},f=(async()=>{try{o=await t(e,l),o.on("error",n),o.once("timeout",A)}catch(I){n(I)}})()})});var HGn=H((yjl,MGn)=>{"use strict";var z9o=wt("net");MGn.exports=e=>{let t=e.host,r=e.headers&&e.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?t=r:t=r.slice(1,-1):t=r.split(":",1)[0]),z9o.isIP(t)?"":t}});var XGn=H((bjl,Igr)=>{"use strict";var YGn=wt("http"),fgr=wt("https"),q9o=OGn(),$9o=igr(),eVo=pgr(),tVo=HGn(),rVo=lgr(),Bgt=new $9o({maxSize:100}),a5e=new Map,QGn=(e,t,r)=>{t._httpMessage={shouldKeepAlive:!0};let n=()=>{e.emit("free",t,r)};t.on("free",n);let a=()=>{e.removeSocket(t,r)};t.on("close",a);let o=()=>{e.removeSocket(t,r),t.off("close",a),t.off("free",n),t.off("agentRemove",o)};t.on("agentRemove",o),e.emit("free",t,r)},nVo=async e=>{let t=`${e.host}:${e.port}:${e.ALPNProtocols.sort()}`;if(!Bgt.has(t)){if(a5e.has(t))return(await a5e.get(t)).alpnProtocol;let{path:r,agent:n}=e;e.path=e.socketPath;let a=q9o(e);a5e.set(t,a);try{let{socket:o,alpnProtocol:l}=await a;if(Bgt.set(t,l),e.path=r,l==="h2")o.destroy();else{let{globalAgent:A}=fgr,f=fgr.Agent.prototype.createConnection;n?n.createConnection===f?QGn(n,o,e):o.destroy():A.createConnection===f?QGn(A,o,e):o.destroy()}return a5e.delete(t),l}catch(o){throw a5e.delete(t),o}}return Bgt.get(t)};Igr.exports=async(e,t,r)=>{if((typeof e=="string"||e instanceof URL)&&(e=rVo(new URL(e))),typeof t=="function"&&(r=t,t=void 0),t={ALPNProtocols:["h2","http/1.1"],...e,...t,resolveSocket:!0},!Array.isArray(t.ALPNProtocols)||t.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");t.protocol=t.protocol||"https:";let n=t.protocol==="https:";t.host=t.hostname||t.host||"localhost",t.session=t.tlsSession,t.servername=t.servername||tVo(t),t.port=t.port||(n?443:80),t._defaultAgent=n?fgr.globalAgent:YGn.globalAgent;let a=t.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");t.agent=a[n?"https":"http"]}return n&&await nVo(t)==="h2"?(a&&(t.agent=a.http2),new eVo(t,r)):YGn.request(t,r)};Igr.exports.protocolCache=Bgt});var UGn=H((Ejl,JGn)=>{"use strict";var iVo=wt("http2"),sVo=ogr(),hgr=pgr(),oVo=cgr(),aVo=XGn(),cVo=(e,t,r)=>new hgr(e,t,r),lVo=(e,t,r)=>{let n=new hgr(e,t,r);return n.end(),n};JGn.exports={...iVo,ClientRequest:hgr,IncomingMessage:oVo,...sVo,request:cVo,get:lVo,auto:aVo}});var Cgr=H(mgr=>{"use strict";Object.defineProperty(mgr,"__esModule",{value:!0});var KGn=o$();mgr.default=e=>KGn.default.nodeStream(e)&&KGn.default.function_(e.getBoundary)});var $Gn=H(_gr=>{"use strict";Object.defineProperty(_gr,"__esModule",{value:!0});var zGn=wt("fs"),qGn=wt("util"),jGn=o$(),uVo=Cgr(),gVo=qGn.promisify(zGn.stat);_gr.default=async(e,t)=>{if(t&&"content-length"in t)return Number(t["content-length"]);if(!e)return 0;if(jGn.default.string(e))return Buffer.byteLength(e);if(jGn.default.buffer(e))return e.length;if(uVo.default(e))return qGn.promisify(e.getLength.bind(e))();if(e instanceof zGn.ReadStream){let{size:r}=await gVo(e.path);return r===0?void 0:r}}});var bgr=H(ygr=>{"use strict";Object.defineProperty(ygr,"__esModule",{value:!0});function AVo(e,t,r){let n={};for(let a of r)n[a]=(...o)=>{t.emit(a,...o)},e.on(a,n[a]);return()=>{for(let a of r)e.off(a,n[a])}}ygr.default=AVo});var eFn=H(Egr=>{"use strict";Object.defineProperty(Egr,"__esModule",{value:!0});Egr.default=()=>{let e=[];return{once(t,r,n){t.once(r,n),e.push({origin:t,event:r,fn:n})},unhandleAll(){for(let t of e){let{origin:r,event:n,fn:a}=t;r.removeListener(n,a)}e.length=0}}}});var rFn=H(c5e=>{"use strict";Object.defineProperty(c5e,"__esModule",{value:!0});c5e.TimeoutError=void 0;var dVo=wt("net"),pVo=eFn(),tFn=Symbol("reentry"),fVo=()=>{},wgt=class extends Error{constructor(t,r){super(`Timeout awaiting '${r}' for ${t}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};c5e.TimeoutError=wgt;c5e.default=(e,t,r)=>{if(tFn in e)return fVo;e[tFn]=!0;let n=[],{once:a,unhandleAll:o}=pVo.default(),l=(b,E,N)=>{var B;let F=setTimeout(E,b,b,N);(B=F.unref)===null||B===void 0||B.call(F);let Q=()=>{clearTimeout(F)};return n.push(Q),Q},{host:A,hostname:f}=r,I=(b,E)=>{e.destroy(new wgt(b,E))},C=()=>{for(let b of n)b();o()};if(e.once("error",b=>{if(C(),e.listenerCount("error")===0)throw b}),e.once("close",C),a(e,"response",b=>{a(b,"end",C)}),typeof t.request<"u"&&l(t.request,I,"request"),typeof t.socket<"u"){let b=()=>{I(t.socket,"socket")};e.setTimeout(t.socket,b),n.push(()=>{e.removeListener("timeout",b)})}return a(e,"socket",b=>{var E;let{socketPath:N}=e;if(b.connecting){let B=!!(N??dVo.isIP((E=f??A)!==null&&E!==void 0?E:"")!==0);if(typeof t.lookup<"u"&&!B&&typeof b.address().address>"u"){let F=l(t.lookup,I,"lookup");a(b,"lookup",F)}if(typeof t.connect<"u"){let F=()=>l(t.connect,I,"connect");B?a(b,"connect",F()):a(b,"lookup",Q=>{Q===null&&a(b,"connect",F())})}typeof t.secureConnect<"u"&&r.protocol==="https:"&&a(b,"connect",()=>{let F=l(t.secureConnect,I,"secureConnect");a(b,"secureConnect",F)})}if(typeof t.send<"u"){let B=()=>l(t.send,I,"send");b.connecting?a(b,"connect",()=>{a(e,"upload-complete",B())}):a(e,"upload-complete",B())}}),typeof t.response<"u"&&a(e,"upload-complete",()=>{let b=l(t.response,I,"response");a(e,"response",b)}),C}});var iFn=H(Sgr=>{"use strict";Object.defineProperty(Sgr,"__esModule",{value:!0});var nFn=o$();Sgr.default=e=>{e=e;let t={protocol:e.protocol,hostname:nFn.default.string(e.hostname)&&e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,host:e.host,hash:e.hash,search:e.search,pathname:e.pathname,href:e.href,path:`${e.pathname||""}${e.search||""}`};return nFn.default.string(e.port)&&e.port.length>0&&(t.port=Number(e.port)),(e.username||e.password)&&(t.auth=`${e.username||""}:${e.password||""}`),t}});var sFn=H(vgr=>{"use strict";Object.defineProperty(vgr,"__esModule",{value:!0});var IVo=wt("url"),hVo=["protocol","host","hostname","port","pathname","search"];vgr.default=(e,t)=>{var r,n;if(t.path){if(t.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(t.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(t.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(t.search&&t.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!e){if(!t.protocol)throw new TypeError("No URL protocol specified");e=`${t.protocol}//${(n=(r=t.hostname)!==null&&r!==void 0?r:t.host)!==null&&n!==void 0?n:""}`}let a=new IVo.URL(e);if(t.path){let o=t.path.indexOf("?");o===-1?t.pathname=t.path:(t.pathname=t.path.slice(0,o),t.search=t.path.slice(o+1)),delete t.path}for(let o of hVo)t[o]&&(a[o]=t[o].toString());return a}});var oFn=H(wgr=>{"use strict";Object.defineProperty(wgr,"__esModule",{value:!0});var Bgr=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(t,r){typeof t=="object"?this.weakMap.set(t,r):this.map.set(t,r)}get(t){return typeof t=="object"?this.weakMap.get(t):this.map.get(t)}has(t){return typeof t=="object"?this.weakMap.has(t):this.map.has(t)}};wgr.default=Bgr});var Rgr=H(Tgr=>{"use strict";Object.defineProperty(Tgr,"__esModule",{value:!0});var mVo=async e=>{let t=[],r=0;for await(let n of e)t.push(n),r+=Buffer.byteLength(n);return Buffer.isBuffer(t[0])?Buffer.concat(t,r):Buffer.from(t.join(""))};Tgr.default=mVo});var cFn=H($fe=>{"use strict";Object.defineProperty($fe,"__esModule",{value:!0});$fe.dnsLookupIpVersionToFamily=$fe.isDnsLookupIpVersion=void 0;var aFn={auto:0,ipv4:4,ipv6:6};$fe.isDnsLookupIpVersion=e=>e in aFn;$fe.dnsLookupIpVersionToFamily=e=>{if($fe.isDnsLookupIpVersion(e))return aFn[e];throw new Error("Invalid DNS lookup IP version")}});var Ngr=H(Tgt=>{"use strict";Object.defineProperty(Tgt,"__esModule",{value:!0});Tgt.isResponseOk=void 0;Tgt.isResponseOk=e=>{let{statusCode:t}=e,r=e.request.options.followRedirect?299:399;return t>=200&&t<=r||t===304}});var uFn=H(Dgr=>{"use strict";Object.defineProperty(Dgr,"__esModule",{value:!0});var lFn=new Set;Dgr.default=e=>{lFn.has(e)||(lFn.add(e),process.emitWarning(`Got: ${e}`,{type:"DeprecationWarning"}))}});var gFn=H(kgr=>{"use strict";Object.defineProperty(kgr,"__esModule",{value:!0});var G1=o$(),CVo=(e,t)=>{if(G1.default.null_(e.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");G1.assert.any([G1.default.string,G1.default.undefined],e.encoding),G1.assert.any([G1.default.boolean,G1.default.undefined],e.resolveBodyOnly),G1.assert.any([G1.default.boolean,G1.default.undefined],e.methodRewriting),G1.assert.any([G1.default.boolean,G1.default.undefined],e.isStream),G1.assert.any([G1.default.string,G1.default.undefined],e.responseType),e.responseType===void 0&&(e.responseType="text");let{retry:r}=e;if(t?e.retry={...t.retry}:e.retry={calculateDelay:n=>n.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},G1.default.object(r)?(e.retry={...e.retry,...r},e.retry.methods=[...new Set(e.retry.methods.map(n=>n.toUpperCase()))],e.retry.statusCodes=[...new Set(e.retry.statusCodes)],e.retry.errorCodes=[...new Set(e.retry.errorCodes)]):G1.default.number(r)&&(e.retry.limit=r),G1.default.undefined(e.retry.maxRetryAfter)&&(e.retry.maxRetryAfter=Math.min(...[e.timeout.request,e.timeout.connect].filter(G1.default.number))),G1.default.object(e.pagination)){t&&(e.pagination={...t.pagination,...e.pagination});let{pagination:n}=e;if(!G1.default.function_(n.transform))throw new Error("`options.pagination.transform` must be implemented");if(!G1.default.function_(n.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!G1.default.function_(n.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!G1.default.function_(n.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return e.responseType==="json"&&e.headers.accept===void 0&&(e.headers.accept="application/json"),e};kgr.default=CVo});var AFn=H(l5e=>{"use strict";Object.defineProperty(l5e,"__esModule",{value:!0});l5e.retryAfterStatusCodes=void 0;l5e.retryAfterStatusCodes=new Set([413,429,503]);var _Vo=({attemptCount:e,retryOptions:t,error:r,retryAfter:n})=>{if(e>t.limit)return 0;let a=t.methods.includes(r.options.method),o=t.errorCodes.includes(r.code),l=r.response&&t.statusCodes.includes(r.response.statusCode);if(!a||!o&&!l)return 0;if(r.response){if(n)return t.maxRetryAfter===void 0||n>t.maxRetryAfter?0:n;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(e-1)*1e3+A};l5e.default=_Vo});var A5e=H(O_=>{"use strict";Object.defineProperty(O_,"__esModule",{value:!0});O_.UnsupportedProtocolError=O_.ReadError=O_.TimeoutError=O_.UploadError=O_.CacheError=O_.HTTPError=O_.MaxRedirectsError=O_.RequestError=O_.setNonEnumerableProperties=O_.knownHookEvents=O_.withoutBody=O_.kIsNormalizedAlready=void 0;var dFn=wt("util"),pFn=wt("stream"),yVo=wt("fs"),yoe=wt("url"),fFn=wt("http"),xgr=wt("http"),bVo=wt("https"),EVo=Nxn(),SVo=Lxn(),IFn=fGn(),vVo=CGn(),BVo=UGn(),wVo=Egt(),va=o$(),TVo=$Gn(),hFn=Cgr(),RVo=bgr(),mFn=rFn(),NVo=iFn(),CFn=sFn(),DVo=oFn(),kVo=Rgr(),_Fn=cFn(),xVo=Ngr(),boe=uFn(),GVo=gFn(),FVo=AFn(),Ggr,vk=Symbol("request"),Dgt=Symbol("response"),hve=Symbol("responseSize"),mve=Symbol("downloadedSize"),Cve=Symbol("bodySize"),_ve=Symbol("uploadedSize"),Rgt=Symbol("serverResponsesPiped"),yFn=Symbol("unproxyEvents"),bFn=Symbol("isFromCache"),Fgr=Symbol("cancelTimeouts"),EFn=Symbol("startedReading"),yve=Symbol("stopReading"),Ngt=Symbol("triggerRead"),Eoe=Symbol("body"),u5e=Symbol("jobs"),SFn=Symbol("originalResponse"),vFn=Symbol("retryTimeout");O_.kIsNormalizedAlready=Symbol("isNormalizedAlready");var ZVo=va.default.string(process.versions.brotli);O_.withoutBody=new Set(["GET","HEAD"]);O_.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function LVo(e){for(let t in e){let r=e[t];if(!va.default.string(r)&&!va.default.number(r)&&!va.default.boolean(r)&&!va.default.null_(r)&&!va.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function VVo(e){return va.default.object(e)&&!("statusCode"in e)}var Zgr=new DVo.default,PVo=async e=>new Promise((t,r)=>{let n=a=>{r(a)};e.pending||t(),e.once("error",n),e.once("ready",()=>{e.off("error",n),t()})}),WVo=new Set([300,301,302,303,304,307,308]),OVo=["context","body","json","form"];O_.setNonEnumerableProperties=(e,t)=>{let r={};for(let n of e)if(n)for(let a of OVo)a in n&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:n[a]});Object.defineProperties(t,r)};var jB=class extends Error{constructor(t,r,n){var a,o;if(super(t),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=(a=r.code)!==null&&a!==void 0?a:"ERR_GOT_REQUEST_ERROR",n instanceof Vgt?(Object.defineProperty(this,"request",{enumerable:!1,value:n}),Object.defineProperty(this,"response",{enumerable:!1,value:n[Dgt]}),Object.defineProperty(this,"options",{enumerable:!1,value:n.options})):Object.defineProperty(this,"options",{enumerable:!1,value:n}),this.timings=(o=this.request)===null||o===void 0?void 0:o.timings,va.default.string(r.stack)&&va.default.string(this.stack)){let l=this.stack.indexOf(this.message)+this.message.length,A=this.stack.slice(l).split(` `).reverse(),f=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` `).reverse();for(;f.length!==0&&f[0]===A[0];)A.shift();this.stack=`${this.stack.slice(0,l)}${A.reverse().join(` `)}${f.reverse().join(` @@ -202,7 +202,7 @@ Please report this to https://github.com/szmarczak/http2-wrapper/`);B(F)}return} `),ne.end()}),ne});break;case"<&":B(()=>wZn(Number(e[ae]),pG.Readable,r));break;case">":case">>":{let ne=qK.ppath.resolve(r.cwd,qK.npath.toPortablePath(e[ae]));F(ne==="/dev/null"?new AX.Writable({autoDestroy:!0,emitClose:!0,write(ce,fe,ue){setImmediate(ue)}}):t.baseFs.createWriteStream(ne,E===">>"?{flags:"a"}:void 0))}break;case">&":F(wZn(Number(e[ae]),pG.Writable,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${E}"`)}}if(l.length>0){let b=new AX.PassThrough;n=b;let E=N=>{if(N===l.length)b.end();else{let B=l[N]();B.pipe(b,{end:!1}),B.on("end",()=>{E(N+1)})}};E(0)}if(A.length>0){let b=new AX.PassThrough;a=b;for(let E of A)b.pipe(E)}if(f.length>0){let b=new AX.PassThrough;o=b;for(let E of f)b.pipe(E)}let C=await(0,KN.start)(b5e(e.slice(I+1),t,r),{stdin:new KN.ProtectedStream(n),stdout:new KN.ProtectedStream(a),stderr:new KN.ProtectedStream(o)}).run();return await Promise.all(A.map(b=>new Promise((E,N)=>{b.on("error",B=>{N(B)}),b.on("close",()=>{E()}),b.end()}))),await Promise.all(f.map(b=>new Promise((E,N)=>{b.on("error",B=>{N(B)}),b.on("close",()=>{E()}),b.end()}))),C}]]);async function $Wo(e,t,r){let n=[],a=new AX.PassThrough;return a.on("data",o=>n.push(o)),await pAt(e,t,dAt(r,{stdout:a})),Buffer.concat(n).toString().replace(/[\r\n]+$/,"")}async function TZn(e,t,r){let n=e.map(async o=>{let l=await oIe(o.args,t,r);return{name:o.name,value:l.join(" ")}});return(await Promise.all(n)).reduce((o,l)=>(o[l.name]=l.value,o),{})}function AAt(e){return e.match(/[^ \r\n\t]+/g)||[]}async function kZn(e,t,r,n,a=n){switch(e.name){case"$":n(String(process.pid));break;case"#":n(String(t.args.length));break;case"@":if(e.quoted)for(let o of t.args)a(o);else for(let o of t.args){let l=AAt(o);for(let A=0;A=0&&o"u"&&(e.defaultValue?l=(await oIe(e.defaultValue,t,r)).join(" "):e.alternativeValue&&(l="")),typeof l>"u")throw A?new $K.ShellError(`Unbound argument #${o}`):new $K.ShellError(`Unbound variable "${e.name}"`);if(e.quoted)n(l);else{let f=AAt(l);for(let C=0;Ce+t,subtraction:(e,t)=>e-t,multiplication:(e,t)=>e*t,division:(e,t)=>Math.trunc(e/t)};async function y5e(e,t,r){if(e.type==="number"){if(Number.isInteger(e.value))return e.value;throw new Error(`Invalid number: "${e.value}", only integers are allowed`)}else if(e.type==="variable"){let n=[];await kZn({...e,quoted:!0},t,r,o=>n.push(o));let a=Number(n.join(" "));return Number.isNaN(a)?y5e({type:"variable",name:n.join(" ")},t,r):y5e({type:"number",value:a},t,r)}else return eOo[e.type](await y5e(e.left,t,r),await y5e(e.right,t,r))}async function oIe(e,t,r){let n=new Map,a=[],o=[],l=C=>{o.push(C)},A=()=>{o.length>0&&a.push(o.join("")),o=[]},f=C=>{l(C),A()},I=(C,b,E)=>{let N=JSON.stringify({type:C,fd:b}),B=n.get(N);typeof B>"u"&&n.set(N,B=[]),B.push(E)};for(let C of e){let b=!1;switch(C.type){case"redirection":{let E=await oIe(C.args,t,r);for(let N of E)I(C.subtype,C.fd,N)}break;case"argument":for(let E of C.segments)switch(E.type){case"text":l(E.text);break;case"glob":l(E.pattern),b=!0;break;case"shell":{let N=await $Wo(E.shell,t,r);if(E.quoted)l(N);else{let B=AAt(N);for(let F=0;F"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let N=await t.glob.match(E,{cwd:r.cwd,baseFs:t.baseFs});if(N.length===0){let B=kAr.isBraceExpansion(E)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new $K.ShellError(`No matches found: "${E}"${B}`)}for(let B of N.sort())f(B)}}if(n.size>0){let C=[];for(let[b,E]of n.entries())C.splice(C.length,0,b,String(E.length),...E);a.splice(0,0,"__ysh_set_redirects",...C,"--")}return a}function b5e(e,t,r){t.builtins.has(e[0])||(e=["command",...e]);let n=qK.npath.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:n});let[o,...l]=e;if(o==="command")return(0,RAr.makeProcess)(l[0],l.slice(1),t,{cwd:n,env:a});let A=t.builtins.get(o);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${o}"`);return(0,RAr.makeBuiltin)(async({stdin:f,stdout:I,stderr:C})=>{let{stdin:b,stdout:E,stderr:N}=r;r.stdin=f,r.stdout=I,r.stderr=C;try{return await A(l,t,r)}finally{r.stdin=b,r.stdout=E,r.stderr=N}})}function tOo(e,t,r){return n=>{let a=new AX.PassThrough,o=pAt(e,t,dAt(r,{stdin:a}));return{stdin:a,promise:o}}}function rOo(e,t,r){return n=>{let a=new AX.PassThrough,o=pAt(e,t,r);return{stdin:a,promise:o}}}function RZn(e,t,r,n){if(t.length===0)return e;{let a;do a=String(Math.random());while(Object.hasOwn(n.procedures,a));return n.procedures={...n.procedures},n.procedures[a]=e,b5e([...t,"__ysh_run_procedure",a],r,n)}}async function NZn(e,t,r){let n=e,a=null,o=null;for(;n;){let l=n.then?{...r}:r,A;switch(n.type){case"command":{let f=await oIe(n.args,t,r),I=await TZn(n.envs,t,r);A=n.envs.length?b5e(f,t,dAt(l,{environment:I})):b5e(f,t,l)}break;case"subshell":{let f=await oIe(n.args,t,r),I=tOo(n.subshell,t,l);A=RZn(I,f,t,l)}break;case"group":{let f=await oIe(n.args,t,r),I=rOo(n.group,t,l);A=RZn(I,f,t,l)}break;case"envs":{let f=await TZn(n.envs,t,r);l.environment={...l.environment,...f},A=b5e(["true"],t,l)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)o=(0,KN.start)(A,{stdin:new KN.ProtectedStream(l.stdin),stdout:new KN.ProtectedStream(l.stdout),stderr:new KN.ProtectedStream(l.stderr)});else{if(o===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":o=o.pipeTo(A,KN.Pipe.STDOUT);break;case"|&":o=o.pipeTo(A,KN.Pipe.STDOUT|KN.Pipe.STDERR);break}}n.then?(a=n.then.type,n=n.then.chain):n=null}if(o===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await o.run()}async function nOo(e,t,r,{background:n=!1}={}){function a(o){let l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[o%l.length];return UWo.default.hex(A)}if(n){let o=r.nextBackgroundJobIndex++,l=a(o),A=`[${o}]`,f=l(A),{stdout:I,stderr:C}=(0,RAr.createOutputStreamsWithPrefix)(r,{prefix:f});return r.backgroundJobs.push(NZn(e,t,dAt(r,{stdout:I,stderr:C})).catch(b=>C.write(`${b.message} `)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${f}, '${l((0,DZn.stringifyCommandChain)(e))}' has ended `)})),0}return await NZn(e,t,r)}async function iOo(e,t,r,{background:n=!1}={}){let a,o=A=>{a=A,r.variables["?"]=String(A)},l=async A=>{try{return await nOo(A.chain,t,r,{background:n&&typeof A.then>"u"})}catch(f){if(!(f instanceof $K.ShellError))throw f;return r.stderr.write(`${f.message} -`),1}};for(o(await l(e));e.then;){if(r.exitCode!==null)return r.exitCode;switch(e.then.type){case"&&":a===0&&o(await l(e.then.line));break;case"||":a!==0&&o(await l(e.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${e.then.type}"`)}e=e.then.line}return a}async function pAt(e,t,r){let n=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:o,type:l}of e){if(a=await iOo(o,t,r,{background:l==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=n,a}function xZn(e){switch(e.type){case"variable":return e.name==="@"||e.name==="#"||e.name==="*"||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(t=>E5e(t))||"alternativeValue"in e&&!!e.alternativeValue&&e.alternativeValue.some(t=>E5e(t));case"arithmetic":return NAr(e.arithmetic);case"shell":return xAr(e.shell);default:return!1}}function E5e(e){switch(e.type){case"redirection":return e.args.some(t=>E5e(t));case"argument":return e.segments.some(t=>xZn(t));default:throw new Error(`Assertion failed: Unsupported argument type: "${e.type}"`)}}function NAr(e){switch(e.type){case"variable":return xZn(e);case"number":return!1;default:return NAr(e.left)||NAr(e.right)}}function xAr(e){return e.some(({command:t})=>{for(;t;){let r=t.chain;for(;r;){let n;switch(r.type){case"subshell":n=xAr(r.subshell);break;case"command":n=r.envs.some(a=>a.args.some(o=>E5e(o)))||r.args.some(a=>E5e(a));break}if(n)return!0;if(!r.then)break;r=r.then.chain}if(!t.then)break;t=t.then.line}return!1})}async function sOo(e,t=[],{baseFs:r=new qK.NodeFS,builtins:n={},cwd:a=qK.npath.toPortablePath(process.cwd()),env:o=process.env,stdin:l=process.stdin,stdout:A=process.stdout,stderr:f=process.stderr,variables:I={},glob:C=kAr}={}){let b={};for(let[B,F]of Object.entries(o))typeof F<"u"&&(b[B]=F);let E=new Map(qWo);for(let[B,F]of Object.entries(n))E.set(B,F);l===null&&(l=new AX.PassThrough,l.end());let N=(0,DZn.parseShell)(e,C);if(!xAr(N)&&N.length>0&&t.length>0){let{command:B}=N[N.length-1];for(;B.then;)B=B.then.line;let F=B.chain;for(;F.then;)F=F.then.chain;F.type==="command"&&(F.args=F.args.concat(t.map(Q=>({type:"argument",segments:[{type:"text",text:Q}]}))))}return await pAt(N,{args:t,baseFs:r,builtins:E,initialStdin:l,initialStdout:A,initialStderr:f,glob:C},{cwd:a,environment:b,exitCode:null,procedures:{},stdin:l,stdout:A,stderr:f,variables:Object.assign({},I,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}});var GZn=H((l6l,fAt)=>{function oOo(){var e=0,t=1,r=2,n=3,a=4,o=5,l=6,A=7,f=8,I=9,C=10,b=11,E=12,N=13,B=14,F=15,Q=16,X=17,ae=0,ne=1,ce=2,fe=3,ue=4;function de(k,et){return 55296<=k.charCodeAt(et)&&k.charCodeAt(et)<=56319&&56320<=k.charCodeAt(et+1)&&k.charCodeAt(et+1)<=57343}function be(k,et){et===void 0&&(et=0);var ct=k.charCodeAt(et);if(55296<=ct&&ct<=56319&&et=1){var Me=k.charCodeAt(et-1),je=ct;return 55296<=Me&&Me<=56319?(Me-55296)*1024+(je-56320)+65536:je}return ct}function Se(k,et,ct){var Me=[k].concat(et).concat([ct]),je=Me[Me.length-2],St=ct,At=Me.lastIndexOf(B);if(At>1&&Me.slice(1,At).every(function(Nr){return Nr==n})&&[n,N,X].indexOf(k)==-1)return ce;var Yt=Me.lastIndexOf(a);if(Yt>0&&Me.slice(1,Yt).every(function(Nr){return Nr==a})&&[E,a].indexOf(je)==-1)return Me.filter(function(Nr){return Nr==a}).length%2==1?fe:ue;if(je==e&&St==t)return ae;if(je==r||je==e||je==t)return St==B&&et.every(function(Nr){return Nr==n})?ce:ne;if(St==r||St==e||St==t)return ne;if(je==l&&(St==l||St==A||St==I||St==C))return ae;if((je==I||je==A)&&(St==A||St==f))return ae;if((je==C||je==f)&&St==f)return ae;if(St==n||St==F)return ae;if(St==o)return ae;if(je==E)return ae;var Tr=Me.indexOf(n)!=-1?Me.lastIndexOf(n)-1:Me.length-2;return[N,X].indexOf(Me[Tr])!=-1&&Me.slice(Tr+1,-1).every(function(Nr){return Nr==n})&&St==B||je==F&&[Q,X].indexOf(St)!=-1?ae:et.indexOf(a)!=-1?ce:je==a&&St==a?ae:ne}this.nextBreak=function(k,et){if(et===void 0&&(et=0),et<0)return 0;if(et>=k.length-1)return k.length;for(var ct=De(be(k,et)),Me=[],je=et+1;je{var aOo=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,IAt;function cOo(){if(IAt)return IAt;if(typeof Intl.Segmenter<"u"){let e=new Intl.Segmenter("en",{granularity:"grapheme"});return IAt=t=>Array.from(e.segment(t),({segment:r})=>r)}else{let e=GZn(),t=new e;return IAt=r=>t.splitGraphemes(r)}}FZn.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let n=r-t,a="",o=0,l=0;for(;e.length>0;){let A=e.match(aOo)||[e,e,void 0],f=cOo()(A[1]),I=Math.min(t-o,f.length);f=f.slice(I);let C=Math.min(n-l,f.length);a+=f.slice(0,C).join(""),o+=I,l+=C,typeof A[2]<"u"&&(a+=A[2]),e=e.slice(A[0].length)}return a}});var S5e=H(hAt=>{"use strict";Object.defineProperty(hAt,"__esModule",{value:!0});hAt.YarnVersion=void 0;hAt.YarnVersion=process.env.YARN_IS_TEST_ENV?"0.0.0":"1.2.16-atls"});var v5e=H(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});dM.StreamReport=dM.SUPPORTS_GROUPS=dM.SINGLE_LINE_CHAR=void 0;dM.formatName=ZAr;dM.formatNameWithHyperlink=WZn;dM.reportOptionDeprecations=fOo;var FAr=(Pa(),vi(Va)),lOo=FAr.__importDefault(ZZn()),GAr=FAr.__importDefault(Nfe()),e8=M9(),uOo=sM(),gOo=S5e(),dX=FAr.__importStar(rM());dM.SINGLE_LINE_CHAR="\xB7";var LZn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],VZn=80,Toe=GAr.default.GITHUB_ACTIONS?{start:e=>`::group::${e} +`),1}};for(o(await l(e));e.then;){if(r.exitCode!==null)return r.exitCode;switch(e.then.type){case"&&":a===0&&o(await l(e.then.line));break;case"||":a!==0&&o(await l(e.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${e.then.type}"`)}e=e.then.line}return a}async function pAt(e,t,r){let n=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:o,type:l}of e){if(a=await iOo(o,t,r,{background:l==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=n,a}function xZn(e){switch(e.type){case"variable":return e.name==="@"||e.name==="#"||e.name==="*"||Number.isFinite(parseInt(e.name,10))||"defaultValue"in e&&!!e.defaultValue&&e.defaultValue.some(t=>E5e(t))||"alternativeValue"in e&&!!e.alternativeValue&&e.alternativeValue.some(t=>E5e(t));case"arithmetic":return NAr(e.arithmetic);case"shell":return xAr(e.shell);default:return!1}}function E5e(e){switch(e.type){case"redirection":return e.args.some(t=>E5e(t));case"argument":return e.segments.some(t=>xZn(t));default:throw new Error(`Assertion failed: Unsupported argument type: "${e.type}"`)}}function NAr(e){switch(e.type){case"variable":return xZn(e);case"number":return!1;default:return NAr(e.left)||NAr(e.right)}}function xAr(e){return e.some(({command:t})=>{for(;t;){let r=t.chain;for(;r;){let n;switch(r.type){case"subshell":n=xAr(r.subshell);break;case"command":n=r.envs.some(a=>a.args.some(o=>E5e(o)))||r.args.some(a=>E5e(a));break}if(n)return!0;if(!r.then)break;r=r.then.chain}if(!t.then)break;t=t.then.line}return!1})}async function sOo(e,t=[],{baseFs:r=new qK.NodeFS,builtins:n={},cwd:a=qK.npath.toPortablePath(process.cwd()),env:o=process.env,stdin:l=process.stdin,stdout:A=process.stdout,stderr:f=process.stderr,variables:I={},glob:C=kAr}={}){let b={};for(let[B,F]of Object.entries(o))typeof F<"u"&&(b[B]=F);let E=new Map(qWo);for(let[B,F]of Object.entries(n))E.set(B,F);l===null&&(l=new AX.PassThrough,l.end());let N=(0,DZn.parseShell)(e,C);if(!xAr(N)&&N.length>0&&t.length>0){let{command:B}=N[N.length-1];for(;B.then;)B=B.then.line;let F=B.chain;for(;F.then;)F=F.then.chain;F.type==="command"&&(F.args=F.args.concat(t.map(Q=>({type:"argument",segments:[{type:"text",text:Q}]}))))}return await pAt(N,{args:t,baseFs:r,builtins:E,initialStdin:l,initialStdout:A,initialStderr:f,glob:C},{cwd:a,environment:b,exitCode:null,procedures:{},stdin:l,stdout:A,stderr:f,variables:Object.assign({},I,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}});var GZn=H((u6l,fAt)=>{function oOo(){var e=0,t=1,r=2,n=3,a=4,o=5,l=6,A=7,f=8,I=9,C=10,b=11,E=12,N=13,B=14,F=15,Q=16,X=17,ae=0,ne=1,ce=2,fe=3,ue=4;function de(k,et){return 55296<=k.charCodeAt(et)&&k.charCodeAt(et)<=56319&&56320<=k.charCodeAt(et+1)&&k.charCodeAt(et+1)<=57343}function be(k,et){et===void 0&&(et=0);var ct=k.charCodeAt(et);if(55296<=ct&&ct<=56319&&et=1){var Me=k.charCodeAt(et-1),je=ct;return 55296<=Me&&Me<=56319?(Me-55296)*1024+(je-56320)+65536:je}return ct}function Se(k,et,ct){var Me=[k].concat(et).concat([ct]),je=Me[Me.length-2],St=ct,At=Me.lastIndexOf(B);if(At>1&&Me.slice(1,At).every(function(Nr){return Nr==n})&&[n,N,X].indexOf(k)==-1)return ce;var Yt=Me.lastIndexOf(a);if(Yt>0&&Me.slice(1,Yt).every(function(Nr){return Nr==a})&&[E,a].indexOf(je)==-1)return Me.filter(function(Nr){return Nr==a}).length%2==1?fe:ue;if(je==e&&St==t)return ae;if(je==r||je==e||je==t)return St==B&&et.every(function(Nr){return Nr==n})?ce:ne;if(St==r||St==e||St==t)return ne;if(je==l&&(St==l||St==A||St==I||St==C))return ae;if((je==I||je==A)&&(St==A||St==f))return ae;if((je==C||je==f)&&St==f)return ae;if(St==n||St==F)return ae;if(St==o)return ae;if(je==E)return ae;var Tr=Me.indexOf(n)!=-1?Me.lastIndexOf(n)-1:Me.length-2;return[N,X].indexOf(Me[Tr])!=-1&&Me.slice(Tr+1,-1).every(function(Nr){return Nr==n})&&St==B||je==F&&[Q,X].indexOf(St)!=-1?ae:et.indexOf(a)!=-1?ce:je==a&&St==a?ae:ne}this.nextBreak=function(k,et){if(et===void 0&&(et=0),et<0)return 0;if(et>=k.length-1)return k.length;for(var ct=De(be(k,et)),Me=[],je=et+1;je{var aOo=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,IAt;function cOo(){if(IAt)return IAt;if(typeof Intl.Segmenter<"u"){let e=new Intl.Segmenter("en",{granularity:"grapheme"});return IAt=t=>Array.from(e.segment(t),({segment:r})=>r)}else{let e=GZn(),t=new e;return IAt=r=>t.splitGraphemes(r)}}FZn.exports=(e,t=0,r=e.length)=>{if(t<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let n=r-t,a="",o=0,l=0;for(;e.length>0;){let A=e.match(aOo)||[e,e,void 0],f=cOo()(A[1]),I=Math.min(t-o,f.length);f=f.slice(I);let C=Math.min(n-l,f.length);a+=f.slice(0,C).join(""),o+=I,l+=C,typeof A[2]<"u"&&(a+=A[2]),e=e.slice(A[0].length)}return a}});var S5e=H(hAt=>{"use strict";Object.defineProperty(hAt,"__esModule",{value:!0});hAt.YarnVersion=void 0;hAt.YarnVersion=process.env.YARN_IS_TEST_ENV?"0.0.0":"1.2.16-atls"});var v5e=H(dM=>{"use strict";Object.defineProperty(dM,"__esModule",{value:!0});dM.StreamReport=dM.SUPPORTS_GROUPS=dM.SINGLE_LINE_CHAR=void 0;dM.formatName=ZAr;dM.formatNameWithHyperlink=WZn;dM.reportOptionDeprecations=fOo;var FAr=(Pa(),vi(Va)),lOo=FAr.__importDefault(ZZn()),GAr=FAr.__importDefault(Nfe()),e8=M9(),uOo=sM(),gOo=S5e(),dX=FAr.__importStar(rM());dM.SINGLE_LINE_CHAR="\xB7";var LZn=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],VZn=80,Toe=GAr.default.GITHUB_ACTIONS?{start:e=>`::group::${e} `,end:e=>`::endgroup:: `}:GAr.default.TRAVIS?{start:e=>`travis_fold:start:${e} `,end:e=>`travis_fold:end:${e} @@ -223,7 +223,7 @@ exec "${r}" ${n.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" `);let De=await FW.pipevp("yarn",[...fe,"pack","--filename",tp.npath.fromPortablePath(t)],{cwd:e,env:X,stdin:f,stdout:I,stderr:C});return De.code!==0?De.code:0}],[RZ.Yarn2,async()=>{let fe=a!==null?["workspace",a]:[];X.YARN_ENABLE_INLINE_BUILDS="1";let ue=tp.ppath.join(e,Noe.Filename.lockfile);await tp.xfs.existsPromise(ue)||await tp.xfs.writeFilePromise(ue,"");let de=await FW.pipevp("yarn",[...fe,"pack","--install-if-needed","--filename",tp.npath.fromPortablePath(t)],{cwd:e,env:X,stdin:f,stdout:I,stderr:C});return de.code!==0?de.code:0}],[RZ.Npm,async()=>{if(a!==null){let et=new Bve.PassThrough,ct=aIe.bufferStream(et);et.pipe(I,{end:!1});let Me=await FW.pipevp("npm",["--version"],{cwd:e,env:X,stdin:f,stdout:et,stderr:C,end:FW.EndStrategy.Never});if(et.end(),Me.code!==0)return I.end(),C.end(),Me.code;let je=(await ct).toString().trim();if(!mOo.satisfiesWithPrereleases(je,">=7.x")){let St=tT.makeIdent(null,"npm"),At=tT.makeDescriptor(St,je),Yt=tT.makeDescriptor(St,">=7.x");throw new Error(`Workspaces aren't supported by ${tT.prettyDescriptor(r,At)}; please upgrade to ${tT.prettyDescriptor(r,Yt)} (npm has been detected as the primary package manager for ${t8.pretty(r,e,t8.Type.PATH)})`)}}let fe=a!==null?["--workspace",a]:[];delete X.npm_config_user_agent,delete X.npm_config_production,delete X.NPM_CONFIG_PRODUCTION,delete X.NODE_ENV;let ue=await FW.pipevp("npm",["install","--legacy-peer-deps"],{cwd:e,env:X,stdin:f,stdout:I,stderr:C,end:FW.EndStrategy.ErrorCode});if(ue.code!==0)return ue.code;let de=new Bve.PassThrough,be=aIe.bufferStream(de);de.pipe(I);let Se=await FW.pipevp("npm",["pack","--silent",...fe],{cwd:e,env:X,stdin:f,stdout:de,stderr:C});if(Se.code!==0)return Se.code;let De=(await be).toString().trim().replace(/^.*\n/s,""),k=tp.ppath.resolve(e,tp.npath.toPortablePath(De));return await tp.xfs.renamePromise(k,t),0}]]).get(B);if(typeof ne>"u")throw new Error("Assertion failed: Unsupported workflow");let ce=await ne();if(!(ce===0||typeof ce>"u"))throw tp.xfs.detachTemp(l),new HZn.ReportError(VAr.MessageName.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${ce}, logs can be found here: ${t8.pretty(r,A,t8.Type.PATH)})`)})})})}async function bOo(e,t,{project:r}){let n=r.tryWorkspaceByLocator(e);if(n!==null)return WAr(n,t);let a=r.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${tT.prettyLocator(r.configuration,e)} not found in the project`);return await OZn.ZipOpenFS.openPromise(async o=>{let l=r.configuration,A=r.configuration.getLinkers(),f={project:r,report:new _At.StreamReport({stdout:new Bve.PassThrough,configuration:l})},I=A.find(N=>N.supportsPackage(a,f));if(!I)throw new Error(`The package ${tT.prettyLocator(r.configuration,a)} isn't supported by any of the available linkers`);let C=await I.findPackageLocation(a,f),b=new Noe.CwdFS(C,{baseFs:o});return(await PAr.Manifest.find(Noe.PortablePath.dot,{baseFs:b})).scripts.has(t)})}async function QZn(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A}){return await tp.xfs.mktempPromise(async f=>{let{manifest:I,env:C,cwd:b}=await XZn(e,{project:a,binFolder:f,cwd:n,lifecycleScript:t}),E=I.scripts.get(t);if(typeof E>"u")return 1;let N=async()=>await(0,MZn.execute)(E,r,{cwd:b,env:C,stdin:o,stdout:l,stderr:A});return await(await a.configuration.reduceHook(F=>F.wrapScriptExecution,N,a,e,t,{script:E,args:r,cwd:b,env:C,stdin:o,stdout:l,stderr:A}))()})}async function EOo(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A}){return await tp.xfs.mktempPromise(async f=>{let{env:I,cwd:C}=await XZn(e,{project:a,binFolder:f,cwd:n});return await(0,MZn.execute)(t,r,{cwd:C,env:I,stdin:o,stdout:l,stderr:A})})}async function SOo(e,{binFolder:t,cwd:r,lifecycleScript:n}){let a=await B5e({project:e.project,locator:e.anchoredLocator,binFolder:t,lifecycleScript:n});return await MAr(t,await KZn(e)),typeof r>"u"&&(r=tp.ppath.dirname(await tp.xfs.realpathPromise(tp.ppath.join(e.cwd,"package.json")))),{manifest:e.manifest,binFolder:t,env:a,cwd:r}}async function XZn(e,{project:t,binFolder:r,cwd:n,lifecycleScript:a}){let o=t.tryWorkspaceByLocator(e);if(o!==null)return SOo(o,{binFolder:r,cwd:n,lifecycleScript:a});let l=t.storedPackages.get(e.locatorHash);if(!l)throw new Error(`Package for ${tT.prettyLocator(t.configuration,e)} not found in the project`);return await OZn.ZipOpenFS.openPromise(async A=>{let f=t.configuration,I=t.configuration.getLinkers(),C={project:t,report:new _At.StreamReport({stdout:new Bve.PassThrough,configuration:f})},b=I.find(Q=>Q.supportsPackage(l,C));if(!b)throw new Error(`The package ${tT.prettyLocator(t.configuration,l)} isn't supported by any of the available linkers`);let E=await B5e({project:t,locator:e,binFolder:r,lifecycleScript:a});await MAr(r,await yAt(e,{project:t}));let N=await b.findPackageLocation(l,C),B=new Noe.CwdFS(N,{baseFs:A}),F=await PAr.Manifest.find(Noe.PortablePath.dot,{baseFs:B});return typeof n>"u"&&(n=N),{manifest:F,binFolder:r,env:E,cwd:n}})}async function JZn(e,t,r,{cwd:n,stdin:a,stdout:o,stderr:l}){return await QZn(e.anchoredLocator,t,r,{cwd:n,project:e.project,stdin:a,stdout:o,stderr:l})}function WAr(e,t){return e.manifest.scripts.has(t)}async function UZn(e,t,{cwd:r,report:n}){let{configuration:a}=e.project,o=null;await tp.xfs.mktempPromise(async l=>{let A=tp.ppath.join(l,`${t}.log`),f=`# This file contains the result of Yarn calling the "${t}" lifecycle script inside a workspace ("${tp.npath.fromPortablePath(e.cwd)}") `,{stdout:I,stderr:C}=a.getSubprocessStreams(A,{report:n,prefix:tT.prettyLocator(a,e.anchoredLocator),header:f});n.reportInfo(VAr.MessageName.LIFECYCLE_SCRIPT,`Calling the "${t}" lifecycle script`);let b=await JZn(e,t,[],{cwd:r,stdin:o,stdout:I,stderr:C});if(I.end(),C.end(),b!==0)throw tp.xfs.detachTemp(l),new HZn.ReportError(VAr.MessageName.LIFECYCLE_SCRIPT,`${(0,IOo.capitalize)(t)} script failed (exit code ${t8.pretty(a,b,t8.Type.NUMBER)}, logs can be found here: ${t8.pretty(a,A,t8.Type.PATH)}); run ${t8.pretty(a,`yarn ${t}`,t8.Type.CODE)} to investigate`)})}async function vOo(e,t,r){WAr(e,t)&&await UZn(e,t,r)}function OAr(e){let t=tp.ppath.extname(e);if(t.match(/\.[cm]?[jt]sx?$/))return!0;if(t===".exe"||t===".bin")return!1;let r=Buffer.alloc(4),n;try{n=tp.xfs.openSync(e,"r")}catch{return!0}try{tp.xfs.readSync(n,r,0,r.length,0)}finally{tp.xfs.closeSync(n)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function yAt(e,{project:t}){let r=t.configuration,n=new Map,a=t.storedPackages.get(e.locatorHash);if(!a)throw new Error(`Package for ${tT.prettyLocator(r,e)} not found in the project`);let o=new Bve.Writable,l=r.getLinkers(),A={project:t,report:new _At.StreamReport({configuration:r,stdout:o})},f=new Set([e.locatorHash]);for(let C of a.dependencies.values()){let b=t.storedResolutions.get(C.descriptorHash);if(!b)throw new Error(`Assertion failed: The resolution (${tT.prettyDescriptor(r,C)}) should have been registered`);f.add(b)}let I=await Promise.all(Array.from(f,async C=>{let b=t.storedPackages.get(C);if(!b)throw new Error(`Assertion failed: The package (${C}) should have been registered`);if(b.bin.size===0)return aIe.mapAndFilter.skip;let E=l.find(B=>B.supportsPackage(b,A));if(!E)return aIe.mapAndFilter.skip;let N=null;try{N=await E.findPackageLocation(b,A)}catch(B){if(B.code==="LOCATOR_NOT_INSTALLED")return aIe.mapAndFilter.skip;throw B}return{dependency:b,packageLocation:N}}));for(let C of I){if(C===aIe.mapAndFilter.skip)continue;let{dependency:b,packageLocation:E}=C;for(let[N,B]of b.bin){let F=tp.ppath.resolve(E,B);n.set(N,[b,tp.npath.fromPortablePath(F),OAr(F)])}}return n}async function KZn(e){return await yAt(e.anchoredLocator,{project:e.project})}async function MAr(e,t){await Promise.all(Array.from(t,([r,[,n,a]])=>a?Roe(e,r,process.execPath,[n]):Roe(e,r,n,[])))}async function jZn(e,t,r,{cwd:n,project:a,stdin:o,stdout:l,stderr:A,nodeArgs:f=[],packageAccessibleBinaries:I}){I??=await yAt(e,{project:a});let C=I.get(t);if(!C)throw new Error(`Binary not found (${t}) for ${tT.prettyLocator(a.configuration,e)}`);return await tp.xfs.mktempPromise(async b=>{let[,E]=C,N=await B5e({project:a,locator:e,binFolder:b});await MAr(N.BERRY_BIN_FOLDER,I);let B=OAr(tp.npath.toPortablePath(E))?FW.pipevp(process.execPath,[...f,E,...r],{cwd:n,env:N,stdin:o,stdout:l,stderr:A}):FW.pipevp(E,r,{cwd:n,env:N,stdin:o,stdout:l,stderr:A}),F;try{F=await B}finally{await tp.xfs.removePromise(N.BERRY_BIN_FOLDER)}return F.code})}async function BOo(e,t,r,{cwd:n,stdin:a,stdout:o,stderr:l,packageAccessibleBinaries:A}){return await jZn(e.anchoredLocator,t,r,{project:e.project,cwd:n,stdin:a,stdout:o,stderr:l,packageAccessibleBinaries:A})}});var uLn=H(jC=>{"use strict";var yC=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),w5e=yC(e=>{"use strict";var t=e&&e.__importDefault||function(Fn){return Fn&&Fn.__esModule?Fn:{default:Fn}};Object.defineProperty(e,"__esModule",{value:!0}),e.Minipass=e.isWritable=e.isReadable=e.isStream=void 0;var r=typeof process=="object"&&process?process:{stdout:null,stderr:null},n=wt("node:events"),a=t(wt("node:stream")),o=wt("node:string_decoder"),l=Fn=>!!Fn&&typeof Fn=="object"&&(Fn instanceof jt||Fn instanceof a.default||(0,e.isReadable)(Fn)||(0,e.isWritable)(Fn));e.isStream=l;var A=Fn=>!!Fn&&typeof Fn=="object"&&Fn instanceof n.EventEmitter&&typeof Fn.pipe=="function"&&Fn.pipe!==a.default.Writable.prototype.pipe;e.isReadable=A;var f=Fn=>!!Fn&&typeof Fn=="object"&&Fn instanceof n.EventEmitter&&typeof Fn.write=="function"&&typeof Fn.end=="function";e.isWritable=f;var I=Symbol("EOF"),C=Symbol("maybeEmitEnd"),b=Symbol("emittedEnd"),E=Symbol("emittingEnd"),N=Symbol("emittedError"),B=Symbol("closed"),F=Symbol("read"),Q=Symbol("flush"),X=Symbol("flushChunk"),ae=Symbol("encoding"),ne=Symbol("decoder"),ce=Symbol("flowing"),fe=Symbol("paused"),ue=Symbol("resume"),de=Symbol("buffer"),be=Symbol("pipes"),Se=Symbol("bufferLength"),De=Symbol("bufferPush"),k=Symbol("bufferShift"),et=Symbol("objectMode"),ct=Symbol("destroyed"),Me=Symbol("error"),je=Symbol("emitData"),St=Symbol("emitEnd"),At=Symbol("emitEnd2"),Yt=Symbol("async"),Tr=Symbol("abort"),Nr=Symbol("aborted"),er=Symbol("signal"),vt=Symbol("dataListeners"),xt=Symbol("discarded"),Zr=Fn=>Promise.resolve().then(Fn),qt=Fn=>Fn(),Xt=Fn=>Fn==="end"||Fn==="finish"||Fn==="prefinish",lr=Fn=>Fn instanceof ArrayBuffer||!!Fn&&typeof Fn=="object"&&Fn.constructor&&Fn.constructor.name==="ArrayBuffer"&&Fn.byteLength>=0,cr=Fn=>!Buffer.isBuffer(Fn)&&ArrayBuffer.isView(Fn),Ar=class{src;dest;opts;ondrain;constructor(Fn,Nn,Hi){this.src=Fn,this.dest=Nn,this.opts=Hi,this.ondrain=()=>Fn[ue](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(Fn){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},qr=class extends Ar{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(Fn,Nn,Hi){super(Fn,Nn,Hi),this.proxyErrors=po=>this.dest.emit("error",po),Fn.on("error",this.proxyErrors)}},_n=Fn=>!!Fn.objectMode,ke=Fn=>!Fn.objectMode&&!!Fn.encoding&&Fn.encoding!=="buffer",jt=class extends n.EventEmitter{[ce]=!1;[fe]=!1;[be]=[];[de]=[];[et];[ae];[Yt];[ne];[I]=!1;[b]=!1;[E]=!1;[B]=!1;[N]=null;[Se]=0;[ct]=!1;[er];[Nr]=!1;[vt]=0;[xt]=!1;writable=!0;readable=!0;constructor(...Fn){let Nn=Fn[0]||{};if(super(),Nn.objectMode&&typeof Nn.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");_n(Nn)?(this[et]=!0,this[ae]=null):ke(Nn)?(this[ae]=Nn.encoding,this[et]=!1):(this[et]=!1,this[ae]=null),this[Yt]=!!Nn.async,this[ne]=this[ae]?new o.StringDecoder(this[ae]):null,Nn&&Nn.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[de]}),Nn&&Nn.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[be]});let{signal:Hi}=Nn;Hi&&(this[er]=Hi,Hi.aborted?this[Tr]():Hi.addEventListener("abort",()=>this[Tr]()))}get bufferLength(){return this[Se]}get encoding(){return this[ae]}set encoding(Fn){throw new Error("Encoding must be set at instantiation time")}setEncoding(Fn){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[et]}set objectMode(Fn){throw new Error("objectMode must be set at instantiation time")}get async(){return this[Yt]}set async(Fn){this[Yt]=this[Yt]||!!Fn}[Tr](){this[Nr]=!0,this.emit("abort",this[er]?.reason),this.destroy(this[er]?.reason)}get aborted(){return this[Nr]}set aborted(Fn){}write(Fn,Nn,Hi){if(this[Nr])return!1;if(this[I])throw new Error("write after end");if(this[ct])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof Nn=="function"&&(Hi=Nn,Nn="utf8"),Nn||(Nn="utf8");let po=this[Yt]?Zr:qt;if(!this[et]&&!Buffer.isBuffer(Fn)){if(cr(Fn))Fn=Buffer.from(Fn.buffer,Fn.byteOffset,Fn.byteLength);else if(lr(Fn))Fn=Buffer.from(Fn);else if(typeof Fn!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[et]?(this[ce]&&this[Se]!==0&&this[Q](!0),this[ce]?this.emit("data",Fn):this[De](Fn),this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce]):Fn.length?(typeof Fn=="string"&&!(Nn===this[ae]&&!this[ne]?.lastNeed)&&(Fn=Buffer.from(Fn,Nn)),Buffer.isBuffer(Fn)&&this[ae]&&(Fn=this[ne].write(Fn)),this[ce]&&this[Se]!==0&&this[Q](!0),this[ce]?this.emit("data",Fn):this[De](Fn),this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce]):(this[Se]!==0&&this.emit("readable"),Hi&&po(Hi),this[ce])}read(Fn){if(this[ct])return null;if(this[xt]=!1,this[Se]===0||Fn===0||Fn&&Fn>this[Se])return this[C](),null;this[et]&&(Fn=null),this[de].length>1&&!this[et]&&(this[de]=[this[ae]?this[de].join(""):Buffer.concat(this[de],this[Se])]);let Nn=this[F](Fn||null,this[de][0]);return this[C](),Nn}[F](Fn,Nn){if(this[et])this[k]();else{let Hi=Nn;Fn===Hi.length||Fn===null?this[k]():typeof Hi=="string"?(this[de][0]=Hi.slice(Fn),Nn=Hi.slice(0,Fn),this[Se]-=Fn):(this[de][0]=Hi.subarray(Fn),Nn=Hi.subarray(0,Fn),this[Se]-=Fn)}return this.emit("data",Nn),!this[de].length&&!this[I]&&this.emit("drain"),Nn}end(Fn,Nn,Hi){return typeof Fn=="function"&&(Hi=Fn,Fn=void 0),typeof Nn=="function"&&(Hi=Nn,Nn="utf8"),Fn!==void 0&&this.write(Fn,Nn),Hi&&this.once("end",Hi),this[I]=!0,this.writable=!1,(this[ce]||!this[fe])&&this[C](),this}[ue](){this[ct]||(!this[vt]&&!this[be].length&&(this[xt]=!0),this[fe]=!1,this[ce]=!0,this.emit("resume"),this[de].length?this[Q]():this[I]?this[C]():this.emit("drain"))}resume(){return this[ue]()}pause(){this[ce]=!1,this[fe]=!0,this[xt]=!1}get destroyed(){return this[ct]}get flowing(){return this[ce]}get paused(){return this[fe]}[De](Fn){this[et]?this[Se]+=1:this[Se]+=Fn.length,this[de].push(Fn)}[k](){return this[et]?this[Se]-=1:this[Se]-=this[de][0].length,this[de].shift()}[Q](Fn=!1){do;while(this[X](this[k]())&&this[de].length);!Fn&&!this[de].length&&!this[I]&&this.emit("drain")}[X](Fn){return this.emit("data",Fn),this[ce]}pipe(Fn,Nn){if(this[ct])return Fn;this[xt]=!1;let Hi=this[b];return Nn=Nn||{},Fn===r.stdout||Fn===r.stderr?Nn.end=!1:Nn.end=Nn.end!==!1,Nn.proxyErrors=!!Nn.proxyErrors,Hi?Nn.end&&Fn.end():(this[be].push(Nn.proxyErrors?new qr(this,Fn,Nn):new Ar(this,Fn,Nn)),this[Yt]?Zr(()=>this[ue]()):this[ue]()),Fn}unpipe(Fn){let Nn=this[be].find(Hi=>Hi.dest===Fn);Nn&&(this[be].length===1?(this[ce]&&this[vt]===0&&(this[ce]=!1),this[be]=[]):this[be].splice(this[be].indexOf(Nn),1),Nn.unpipe())}addListener(Fn,Nn){return this.on(Fn,Nn)}on(Fn,Nn){let Hi=super.on(Fn,Nn);if(Fn==="data")this[xt]=!1,this[vt]++,!this[be].length&&!this[ce]&&this[ue]();else if(Fn==="readable"&&this[Se]!==0)super.emit("readable");else if(Xt(Fn)&&this[b])super.emit(Fn),this.removeAllListeners(Fn);else if(Fn==="error"&&this[N]){let po=Nn;this[Yt]?Zr(()=>po.call(this,this[N])):po.call(this,this[N])}return Hi}removeListener(Fn,Nn){return this.off(Fn,Nn)}off(Fn,Nn){let Hi=super.off(Fn,Nn);return Fn==="data"&&(this[vt]=this.listeners("data").length,this[vt]===0&&!this[xt]&&!this[be].length&&(this[ce]=!1)),Hi}removeAllListeners(Fn){let Nn=super.removeAllListeners(Fn);return(Fn==="data"||Fn===void 0)&&(this[vt]=0,!this[xt]&&!this[be].length&&(this[ce]=!1)),Nn}get emittedEnd(){return this[b]}[C](){!this[E]&&!this[b]&&!this[ct]&&this[de].length===0&&this[I]&&(this[E]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[B]&&this.emit("close"),this[E]=!1)}emit(Fn,...Nn){let Hi=Nn[0];if(Fn!=="error"&&Fn!=="close"&&Fn!==ct&&this[ct])return!1;if(Fn==="data")return!this[et]&&!Hi?!1:this[Yt]?(Zr(()=>this[je](Hi)),!0):this[je](Hi);if(Fn==="end")return this[St]();if(Fn==="close"){if(this[B]=!0,!this[b]&&!this[ct])return!1;let Vr=super.emit("close");return this.removeAllListeners("close"),Vr}else if(Fn==="error"){this[N]=Hi,super.emit(Me,Hi);let Vr=!this[er]||this.listeners("error").length?super.emit("error",Hi):!1;return this[C](),Vr}else if(Fn==="resume"){let Vr=super.emit("resume");return this[C](),Vr}else if(Fn==="finish"||Fn==="prefinish"){let Vr=super.emit(Fn);return this.removeAllListeners(Fn),Vr}let po=super.emit(Fn,...Nn);return this[C](),po}[je](Fn){for(let Hi of this[be])Hi.dest.write(Fn)===!1&&this.pause();let Nn=this[xt]?!1:super.emit("data",Fn);return this[C](),Nn}[St](){return this[b]?!1:(this[b]=!0,this.readable=!1,this[Yt]?(Zr(()=>this[At]()),!0):this[At]())}[At](){if(this[ne]){let Nn=this[ne].end();if(Nn){for(let Hi of this[be])Hi.dest.write(Nn);this[xt]||super.emit("data",Nn)}}for(let Nn of this[be])Nn.end();let Fn=super.emit("end");return this.removeAllListeners("end"),Fn}async collect(){let Fn=Object.assign([],{dataLength:0});this[et]||(Fn.dataLength=0);let Nn=this.promise();return this.on("data",Hi=>{Fn.push(Hi),this[et]||(Fn.dataLength+=Hi.length)}),await Nn,Fn}async concat(){if(this[et])throw new Error("cannot concat in objectMode");let Fn=await this.collect();return this[ae]?Fn.join(""):Buffer.concat(Fn,Fn.dataLength)}async promise(){return new Promise((Fn,Nn)=>{this.on(ct,()=>Nn(new Error("stream destroyed"))),this.on("error",Hi=>Nn(Hi)),this.on("end",()=>Fn())})}[Symbol.asyncIterator](){this[xt]=!1;let Fn=!1,Nn=async()=>(this.pause(),Fn=!0,{value:void 0,done:!0});return{next:()=>{if(Fn)return Nn();let Hi=this.read();if(Hi!==null)return Promise.resolve({done:!1,value:Hi});if(this[I])return Nn();let po,Vr,xi=Gc=>{this.off("data",io),this.off("end",ga),this.off(ct,Ya),Nn(),Vr(Gc)},io=Gc=>{this.off("error",xi),this.off("end",ga),this.off(ct,Ya),this.pause(),po({value:Gc,done:!!this[I]})},ga=()=>{this.off("error",xi),this.off("data",io),this.off(ct,Ya),Nn(),po({done:!0,value:void 0})},Ya=()=>xi(new Error("stream destroyed"));return new Promise((Gc,cl)=>{Vr=cl,po=Gc,this.once(ct,Ya),this.once("error",xi),this.once("end",ga),this.once("data",io)})},throw:Nn,return:Nn,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[xt]=!1;let Fn=!1,Nn=()=>(this.pause(),this.off(Me,Nn),this.off(ct,Nn),this.off("end",Nn),Fn=!0,{done:!0,value:void 0}),Hi=()=>{if(Fn)return Nn();let po=this.read();return po===null?Nn():{done:!1,value:po}};return this.once("end",Nn),this.once(Me,Nn),this.once(ct,Nn),{next:Hi,throw:Nn,return:Nn,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(Fn){if(this[ct])return Fn?this.emit("error",Fn):this.emit(ct),this;this[ct]=!0,this[xt]=!0,this[de].length=0,this[Se]=0;let Nn=this;return typeof Nn.close=="function"&&!this[B]&&Nn.close(),Fn?this.emit("error",Fn):this.emit(ct),this}static get isStream(){return e.isStream}};e.Minipass=jt}),T5e=yC(e=>{"use strict";var t=e&&e.__importDefault||function(vt){return vt&&vt.__esModule?vt:{default:vt}};Object.defineProperty(e,"__esModule",{value:!0}),e.WriteStreamSync=e.WriteStream=e.ReadStreamSync=e.ReadStream=void 0;var r=t(wt("events")),n=t(wt("fs")),a=w5e(),o=n.default.writev,l=Symbol("_autoClose"),A=Symbol("_close"),f=Symbol("_ended"),I=Symbol("_fd"),C=Symbol("_finished"),b=Symbol("_flags"),E=Symbol("_flush"),N=Symbol("_handleChunk"),B=Symbol("_makeBuf"),F=Symbol("_mode"),Q=Symbol("_needDrain"),X=Symbol("_onerror"),ae=Symbol("_onopen"),ne=Symbol("_onread"),ce=Symbol("_onwrite"),fe=Symbol("_open"),ue=Symbol("_path"),de=Symbol("_pos"),be=Symbol("_queue"),Se=Symbol("_read"),De=Symbol("_readSize"),k=Symbol("_reading"),et=Symbol("_remain"),ct=Symbol("_size"),Me=Symbol("_write"),je=Symbol("_writing"),St=Symbol("_defaultFlag"),At=Symbol("_errored"),Yt=class extends a.Minipass{[At]=!1;[I];[ue];[De];[k]=!1;[ct];[et];[l];constructor(vt,xt){if(xt=xt||{},super(xt),this.readable=!0,this.writable=!1,typeof vt!="string")throw new TypeError("path must be a string");this[At]=!1,this[I]=typeof xt.fd=="number"?xt.fd:void 0,this[ue]=vt,this[De]=xt.readSize||16*1024*1024,this[k]=!1,this[ct]=typeof xt.size=="number"?xt.size:1/0,this[et]=this[ct],this[l]=typeof xt.autoClose=="boolean"?xt.autoClose:!0,typeof this[I]=="number"?this[Se]():this[fe]()}get fd(){return this[I]}get path(){return this[ue]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[fe](){n.default.open(this[ue],"r",(vt,xt)=>this[ae](vt,xt))}[ae](vt,xt){vt?this[X](vt):(this[I]=xt,this.emit("open",xt),this[Se]())}[B](){return Buffer.allocUnsafe(Math.min(this[De],this[et]))}[Se](){if(!this[k]){this[k]=!0;let vt=this[B]();if(vt.length===0)return process.nextTick(()=>this[ne](null,0,vt));n.default.read(this[I],vt,0,vt.length,null,(xt,Zr,qt)=>this[ne](xt,Zr,qt))}}[ne](vt,xt,Zr){this[k]=!1,vt?this[X](vt):this[N](xt,Zr)&&this[Se]()}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.close(vt,xt=>xt?this.emit("error",xt):this.emit("close"))}}[X](vt){this[k]=!0,this[A](),this.emit("error",vt)}[N](vt,xt){let Zr=!1;return this[et]-=vt,vt>0&&(Zr=super.write(vtthis[ae](vt,xt))}[ae](vt,xt){this[St]&&this[b]==="r+"&&vt&&vt.code==="ENOENT"?(this[b]="w",this[fe]()):vt?this[X](vt):(this[I]=xt,this.emit("open",xt),this[je]||this[E]())}end(vt,xt){return vt&&this.write(vt,xt),this[f]=!0,!this[je]&&!this[be].length&&typeof this[I]=="number"&&this[ce](null,0),this}write(vt,xt){return typeof vt=="string"&&(vt=Buffer.from(vt,xt)),this[f]?(this.emit("error",new Error("write() after end()")),!1):this[I]===void 0||this[je]||this[be].length?(this[be].push(vt),this[Q]=!0,!1):(this[je]=!0,this[Me](vt),!0)}[Me](vt){n.default.write(this[I],vt,0,vt.length,this[de],(xt,Zr)=>this[ce](xt,Zr))}[ce](vt,xt){vt?this[X](vt):(this[de]!==void 0&&typeof xt=="number"&&(this[de]+=xt),this[be].length?this[E]():(this[je]=!1,this[f]&&!this[C]?(this[C]=!0,this[A](),this.emit("finish")):this[Q]&&(this[Q]=!1,this.emit("drain"))))}[E](){if(this[be].length===0)this[f]&&this[ce](null,0);else if(this[be].length===1)this[Me](this[be].pop());else{let vt=this[be];this[be]=[],o(this[I],vt,this[de],(xt,Zr)=>this[ce](xt,Zr))}}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.close(vt,xt=>xt?this.emit("error",xt):this.emit("close"))}}};e.WriteStream=Nr;var er=class extends Nr{[fe](){let vt;if(this[St]&&this[b]==="r+")try{vt=n.default.openSync(this[ue],this[b],this[F])}catch(xt){if(xt?.code==="ENOENT")return this[b]="w",this[fe]();throw xt}else vt=n.default.openSync(this[ue],this[b],this[F]);this[ae](null,vt)}[A](){if(this[l]&&typeof this[I]=="number"){let vt=this[I];this[I]=void 0,n.default.closeSync(vt),this.emit("close")}}[Me](vt){let xt=!0;try{this[ce](null,n.default.writeSync(this[I],vt,0,vt.length,this[de])),xt=!1}finally{if(xt)try{this[A]()}catch{}}}};e.WriteStreamSync=er}),YAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.dealias=e.isNoFile=e.isFile=e.isAsync=e.isSync=e.isAsyncNoFile=e.isSyncNoFile=e.isAsyncFile=e.isSyncFile=void 0;var t=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),r=E=>!!E.sync&&!!E.file;e.isSyncFile=r;var n=E=>!E.sync&&!!E.file;e.isAsyncFile=n;var a=E=>!!E.sync&&!E.file;e.isSyncNoFile=a;var o=E=>!E.sync&&!E.file;e.isAsyncNoFile=o;var l=E=>!!E.sync;e.isSync=l;var A=E=>!E.sync;e.isAsync=A;var f=E=>!!E.file;e.isFile=f;var I=E=>!E.file;e.isNoFile=I;var C=E=>t.get(E)||E,b=(E={})=>{if(!E)return{};let N={};for(let[B,F]of Object.entries(E)){let Q=C(B);N[Q]=F}return N.chmod===void 0&&N.noChmod===!1&&(N.chmod=!0),delete N.noChmod,N};e.dealias=b}),R5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.makeCommand=void 0;var t=YAr(),r=(n,a,o,l,A)=>Object.assign((f=[],I,C)=>{Array.isArray(f)&&(I=f,f={}),typeof I=="function"&&(C=I,I=void 0),I=I?Array.from(I):[];let b=(0,t.dealias)(f);if(A?.(b,I),(0,t.isSyncFile)(b)){if(typeof C=="function")throw new TypeError("callback not supported for sync tar functions");return n(b,I)}else if((0,t.isAsyncFile)(b)){let E=a(b,I);return C?E.then(()=>C(),C):E}else if((0,t.isSyncNoFile)(b)){if(typeof C=="function")throw new TypeError("callback not supported for sync tar functions");return o(b,I)}else if((0,t.isAsyncNoFile)(b)){if(typeof C=="function")throw new TypeError("callback only supported with file option");return l(b,I)}throw new Error("impossible options??")},{syncFile:n,asyncFile:a,syncNoFile:o,asyncNoFile:l,validate:A});e.makeCommand=r}),zZn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(e,"__esModule",{value:!0}),e.constants=void 0;var r=t(wt("zlib")),n=r.default.constants||{ZLIB_VERNUM:4736};e.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},n))}),qZn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(At,Yt,Tr,Nr){Nr===void 0&&(Nr=Tr);var er=Object.getOwnPropertyDescriptor(Yt,Tr);(!er||("get"in er?!Yt.__esModule:er.writable||er.configurable))&&(er={enumerable:!0,get:function(){return Yt[Tr]}}),Object.defineProperty(At,Nr,er)}:function(At,Yt,Tr,Nr){Nr===void 0&&(Nr=Tr),At[Nr]=Yt[Tr]}),r=e&&e.__setModuleDefault||(Object.create?function(At,Yt){Object.defineProperty(At,"default",{enumerable:!0,value:Yt})}:function(At,Yt){At.default=Yt}),n=e&&e.__importStar||function(){var At=function(Yt){return At=Object.getOwnPropertyNames||function(Tr){var Nr=[];for(var er in Tr)Object.prototype.hasOwnProperty.call(Tr,er)&&(Nr[Nr.length]=er);return Nr},At(Yt)};return function(Yt){if(Yt&&Yt.__esModule)return Yt;var Tr={};if(Yt!=null)for(var Nr=At(Yt),er=0;erAt,B=E?.writable===!0||E?.set!==void 0?At=>{l.Buffer.concat=At?N:b}:At=>{},F=Symbol("_superWrite"),Q=class extends Error{code;errno;constructor(At,Yt){super("zlib: "+At.message,{cause:At}),this.code=At.code,this.errno=At.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+At.message,Error.captureStackTrace(this,Yt??this.constructor)}get name(){return"ZlibError"}};e.ZlibError=Q;var X=Symbol("flushFlag"),ae=class extends A.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(At,Yt){if(!At||typeof At!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(At),this.#n=At.flush??0,this.#r=At.finishFlush??0,this.#i=At.fullFlushFlag??0,typeof f[Yt]!="function")throw new TypeError("Compression method not supported: "+Yt);try{this.#s=new f[Yt](At)}catch(Tr){throw new Q(Tr,this.constructor)}this.#o=Tr=>{this.#e||(this.#e=!0,this.close(),this.emit("error",Tr))},this.#s?.on("error",Tr=>this.#o(new Q(Tr))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,o.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(At){this.ended||(typeof At!="number"&&(At=this.#i),this.write(Object.assign(l.Buffer.alloc(0),{[X]:At})))}end(At,Yt,Tr){return typeof At=="function"&&(Tr=At,Yt=void 0,At=void 0),typeof Yt=="function"&&(Tr=Yt,Yt=void 0),At&&(Yt?this.write(At,Yt):this.write(At)),this.flush(this.#r),this.#t=!0,super.end(Tr)}get ended(){return this.#t}[F](At){return super.write(At)}write(At,Yt,Tr){if(typeof Yt=="function"&&(Tr=Yt,Yt="utf8"),typeof At=="string"&&(At=l.Buffer.from(At,Yt)),this.#e)return;(0,o.default)(this.#s,"zlib binding closed");let Nr=this.#s._handle,er=Nr.close;Nr.close=()=>{};let vt=this.#s.close;this.#s.close=()=>{},B(!0);let xt;try{let qt=typeof At[X]=="number"?At[X]:this.#n;xt=this.#s._processChunk(At,qt),B(!1)}catch(qt){B(!1),this.#o(new Q(qt,this.write))}finally{this.#s&&(this.#s._handle=Nr,Nr.close=er,this.#s.close=vt,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",qt=>this.#o(new Q(qt,this.write)));let Zr;if(xt)if(Array.isArray(xt)&&xt.length>0){let qt=xt[0];Zr=this[F](l.Buffer.from(qt));for(let Xt=1;Xt{typeof Nr=="function"&&(er=Nr,Nr=this.flushFlag),this.flush(Nr),er?.()};try{this.handle.params(At,Yt)}finally{this.handle.flush=Tr}this.handle&&(this.#e=At,this.#t=Yt)}}}};e.Zlib=ne;var ce=class extends ne{constructor(At){super(At,"Deflate")}};e.Deflate=ce;var fe=class extends ne{constructor(At){super(At,"Inflate")}};e.Inflate=fe;var ue=class extends ne{#e;constructor(At){super(At,"Gzip"),this.#e=At&&!!At.portable}[F](At){return this.#e?(this.#e=!1,At[9]=255,super[F](At)):super[F](At)}};e.Gzip=ue;var de=class extends ne{constructor(At){super(At,"Gunzip")}};e.Gunzip=de;var be=class extends ne{constructor(At){super(At,"DeflateRaw")}};e.DeflateRaw=be;var Se=class extends ne{constructor(At){super(At,"InflateRaw")}};e.InflateRaw=Se;var De=class extends ne{constructor(At){super(At,"Unzip")}};e.Unzip=De;var k=class extends ae{constructor(At,Yt){At=At||{},At.flush=At.flush||I.constants.BROTLI_OPERATION_PROCESS,At.finishFlush=At.finishFlush||I.constants.BROTLI_OPERATION_FINISH,At.fullFlushFlag=I.constants.BROTLI_OPERATION_FLUSH,super(At,Yt)}},et=class extends k{constructor(At){super(At,"BrotliCompress")}};e.BrotliCompress=et;var ct=class extends k{constructor(At){super(At,"BrotliDecompress")}};e.BrotliDecompress=ct;var Me=class extends ae{constructor(At,Yt){At=At||{},At.flush=At.flush||I.constants.ZSTD_e_continue,At.finishFlush=At.finishFlush||I.constants.ZSTD_e_end,At.fullFlushFlag=I.constants.ZSTD_e_flush,super(At,Yt)}},je=class extends Me{constructor(At){super(At,"ZstdCompress")}};e.ZstdCompress=je;var St=class extends Me{constructor(At){super(At,"ZstdDecompress")}};e.ZstdDecompress=St}),wOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.parse=e.encode=void 0;var t=(I,C)=>{if(Number.isSafeInteger(I))I<0?n(I,C):r(I,C);else throw Error("cannot encode number outside of javascript safe integer range");return C};e.encode=t;var r=(I,C)=>{C[0]=128;for(var b=C.length;b>1;b--)C[b-1]=I&255,I=Math.floor(I/256)},n=(I,C)=>{C[0]=255;var b=!1;I=I*-1;for(var E=C.length;E>1;E--){var N=I&255;I=Math.floor(I/256),b?C[E-1]=A(N):N===0?C[E-1]=0:(b=!0,C[E-1]=f(N))}},a=I=>{let C=I[0],b=C===128?l(I.subarray(1,I.length)):C===255?o(I):null;if(b===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(b))throw Error("parsed number outside of javascript safe integer range");return b};e.parse=a;var o=I=>{for(var C=I.length,b=0,E=!1,N=C-1;N>-1;N--){var B=Number(I[N]),F;E?F=A(B):B===0?F=B:(E=!0,F=f(B)),F!==0&&(b-=F*Math.pow(256,C-N-1))}return b},l=I=>{for(var C=I.length,b=0,E=C-1;E>-1;E--){var N=Number(I[E]);N!==0&&(b+=N*Math.pow(256,C-E-1))}return b},A=I=>(255^I)&255,f=I=>(255^I)+1&255}),$Zn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.code=e.name=e.isName=e.isCode=void 0;var t=n=>e.name.has(n);e.isCode=t;var r=n=>e.code.has(n);e.isName=r,e.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]),e.code=new Map(Array.from(e.name).map(n=>[n[1],n[0]]))}),N5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(de,be,Se,De){De===void 0&&(De=Se);var k=Object.getOwnPropertyDescriptor(be,Se);(!k||("get"in k?!be.__esModule:k.writable||k.configurable))&&(k={enumerable:!0,get:function(){return be[Se]}}),Object.defineProperty(de,De,k)}:function(de,be,Se,De){De===void 0&&(De=Se),de[De]=be[Se]}),r=e&&e.__setModuleDefault||(Object.create?function(de,be){Object.defineProperty(de,"default",{enumerable:!0,value:be})}:function(de,be){de.default=be}),n=e&&e.__importStar||function(){var de=function(be){return de=Object.getOwnPropertyNames||function(Se){var De=[];for(var k in Se)Object.prototype.hasOwnProperty.call(Se,k)&&(De[De.length]=k);return De},de(be)};return function(be){if(be&&be.__esModule)return be;var Se={};if(be!=null)for(var De=de(be),k=0;k=be+512))throw new Error("need 512 bytes for header");this.path=Se?.path??I(de,be,100),this.mode=Se?.mode??De?.mode??E(de,be+100,8),this.uid=Se?.uid??De?.uid??E(de,be+108,8),this.gid=Se?.gid??De?.gid??E(de,be+116,8),this.size=Se?.size??De?.size??E(de,be+124,12),this.mtime=Se?.mtime??De?.mtime??C(de,be+136,12),this.cksum=E(de,be+148,12),De&&this.#t(De,!0),Se&&this.#t(Se);let k=I(de,be+156,1);if(l.isCode(k)&&(this.#e=k||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=I(de,be+157,100),de.subarray(be+257,be+265).toString()==="ustar\x0000")if(this.uname=Se?.uname??De?.uname??I(de,be+265,32),this.gname=Se?.gname??De?.gname??I(de,be+297,32),this.devmaj=Se?.devmaj??De?.devmaj??E(de,be+329,8)??0,this.devmin=Se?.devmin??De?.devmin??E(de,be+337,8)??0,de[be+475]!==0){let ct=I(de,be+345,155);this.path=ct+"/"+this.path}else{let ct=I(de,be+345,130);ct&&(this.path=ct+"/"+this.path),this.atime=Se?.atime??De?.atime??C(de,be+476,12),this.ctime=Se?.ctime??De?.ctime??C(de,be+488,12)}let et=256;for(let ct=be;ct!(De==null||Se==="path"&&be||Se==="linkpath"&&be||Se==="global"))))}encode(de,be=0){if(de||(de=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(de.length>=be+512))throw new Error("need 512 bytes for header");let Se=this.ctime||this.atime?130:155,De=f(this.path||"",Se),k=De[0],et=De[1];this.needPax=!!De[2],this.needPax=ue(de,be,100,k)||this.needPax,this.needPax=Q(de,be+100,8,this.mode)||this.needPax,this.needPax=Q(de,be+108,8,this.uid)||this.needPax,this.needPax=Q(de,be+116,8,this.gid)||this.needPax,this.needPax=Q(de,be+124,12,this.size)||this.needPax,this.needPax=ce(de,be+136,12,this.mtime)||this.needPax,de[be+156]=Number(this.#e.codePointAt(0)),this.needPax=ue(de,be+157,100,this.linkpath)||this.needPax,de.write("ustar\x0000",be+257,8),this.needPax=ue(de,be+265,32,this.uname)||this.needPax,this.needPax=ue(de,be+297,32,this.gname)||this.needPax,this.needPax=Q(de,be+329,8,this.devmaj)||this.needPax,this.needPax=Q(de,be+337,8,this.devmin)||this.needPax,this.needPax=ue(de,be+345,Se,et)||this.needPax,de[be+475]!==0?this.needPax=ue(de,be+345,155,et)||this.needPax:(this.needPax=ue(de,be+345,130,et)||this.needPax,this.needPax=ce(de,be+476,12,this.atime)||this.needPax,this.needPax=ce(de,be+488,12,this.ctime)||this.needPax);let ct=256;for(let Me=be;Me{let Se=de,De="",k,et=a.posix.parse(de).root||".";if(Buffer.byteLength(Se)<100)k=[Se,De,!1];else{De=a.posix.dirname(Se),Se=a.posix.basename(Se);do Buffer.byteLength(Se)<=100&&Buffer.byteLength(De)<=be?k=[Se,De,!1]:Buffer.byteLength(Se)>100&&Buffer.byteLength(De)<=be?k=[Se.slice(0,99),De,!0]:(Se=a.posix.join(a.posix.basename(De),Se),De=a.posix.dirname(De));while(De!==et&&k===void 0);k||(k=[de.slice(0,99),"",!0])}return k},I=(de,be,Se)=>de.subarray(be,be+Se).toString("utf8").replace(/\0.*/,""),C=(de,be,Se)=>b(E(de,be,Se)),b=de=>de===void 0?void 0:new Date(de*1e3),E=(de,be,Se)=>Number(de[be])&128?o.parse(de.subarray(be,be+Se)):B(de,be,Se),N=de=>isNaN(de)?void 0:de,B=(de,be,Se)=>N(parseInt(de.subarray(be,be+Se).toString("utf8").replace(/\0.*$/,"").trim(),8)),F={12:8589934591,8:2097151},Q=(de,be,Se,De)=>De===void 0?!1:De>F[Se]||De<0?(o.encode(De,de.subarray(be,be+Se)),!0):(X(de,be,Se,De),!1),X=(de,be,Se,De)=>de.write(ae(De,Se),be,Se,"ascii"),ae=(de,be)=>ne(Math.floor(de).toString(8),be),ne=(de,be)=>(de.length===be-1?de:new Array(be-de.length-1).join("0")+de+" ")+"\0",ce=(de,be,Se,De)=>De===void 0?!1:Q(de,be,Se,De.getTime()/1e3),fe=new Array(156).join("\0"),ue=(de,be,Se,De)=>De===void 0?!1:(de.write(De+fe,be,Se,"utf8"),De.length!==Buffer.byteLength(De)||De.length>Se)}),QAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Pax=void 0;var t=wt("node:path"),r=N5e(),n=class eLn{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(f,I=!1){this.atime=f.atime,this.charset=f.charset,this.comment=f.comment,this.ctime=f.ctime,this.dev=f.dev,this.gid=f.gid,this.global=I,this.gname=f.gname,this.ino=f.ino,this.linkpath=f.linkpath,this.mtime=f.mtime,this.nlink=f.nlink,this.path=f.path,this.size=f.size,this.uid=f.uid,this.uname=f.uname}encode(){let f=this.encodeBody();if(f==="")return Buffer.allocUnsafe(0);let I=Buffer.byteLength(f),C=512*Math.ceil(1+I/512),b=Buffer.allocUnsafe(C);for(let E=0;E<512;E++)b[E]=0;new r.Header({path:("PaxHeader/"+(0,t.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:I,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(b),b.write(f,512,I,"utf8");for(let E=I+512;E=Math.pow(10,N)&&(N+=1),N+E+b}static parse(f,I,C=!1){return new eLn(a(o(f),I),C)}};e.Pax=n;var a=(A,f)=>f?Object.assign({},f,A):A,o=A=>A.replace(/\n$/,"").split(` -`).reduce(l,Object.create(null)),l=(A,f)=>{let I=parseInt(f,10);if(I!==Buffer.byteLength(f)+1)return A;f=f.slice((I+" ").length);let C=f.split("="),b=C.shift();if(!b)return A;let E=b.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),N=C.join("=");return A[E]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(E)?new Date(Number(N)*1e3):/^[0-9]+$/.test(N)?+N:N,A}}),D5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeWindowsPath=void 0;var t=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;e.normalizeWindowsPath=t!=="win32"?r=>r:r=>r&&r.replaceAll(/\\/g,"/")}),XAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadEntry=void 0;var t=w5e(),r=D5e(),n=class extends t.Minipass{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(a,o,l){switch(super({}),this.pause(),this.extended=o,this.globalExtended=l,this.header=a,this.remain=a.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=a.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!a.path)throw new Error("no path provided for tar.ReadEntry");this.path=(0,r.normalizeWindowsPath)(a.path),this.mode=a.mode,this.mode&&(this.mode=this.mode&4095),this.uid=a.uid,this.gid=a.gid,this.uname=a.uname,this.gname=a.gname,this.size=this.remain,this.mtime=a.mtime,this.atime=a.atime,this.ctime=a.ctime,this.linkpath=a.linkpath?(0,r.normalizeWindowsPath)(a.linkpath):void 0,this.uname=a.uname,this.gname=a.gname,o&&this.#e(o),l&&this.#e(l,!0)}write(a){let o=a.length;if(o>this.blockRemain)throw new Error("writing more to entry than is appropriate");let l=this.remain,A=this.blockRemain;return this.remain=Math.max(0,l-o),this.blockRemain=Math.max(0,A-o),this.ignore?!0:l>=o?super.write(a):super.write(a.subarray(0,l))}#e(a,o=!1){a.path&&(a.path=(0,r.normalizeWindowsPath)(a.path)),a.linkpath&&(a.linkpath=(0,r.normalizeWindowsPath)(a.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(a).filter(([l,A])=>!(A==null||l==="path"&&o))))}};e.ReadEntry=n}),JAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.warnMethod=void 0;var t=(r,n,a,o={})=>{r.file&&(o.file=r.file),r.cwd&&(o.cwd=r.cwd),o.code=a instanceof Error&&a.code||n,o.tarCode=n,!r.strict&&o.recoverable!==!1?(a instanceof Error&&(o=Object.assign(a,o),a=a.message),r.emit("warn",n,a,o)):a instanceof Error?r.emit("error",Object.assign(a,o)):r.emit("error",Object.assign(new Error(`${n}: ${a}`),o))};e.warnMethod=t}),UAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var t=wt("events"),r=qZn(),n=N5e(),a=QAr(),o=XAr(),l=JAr(),A=1024*1024,f=Buffer.from([31,139]),I=Buffer.from([40,181,47,253]),C=Math.max(f.length,I.length),b=Symbol("state"),E=Symbol("writeEntry"),N=Symbol("readEntry"),B=Symbol("nextEntry"),F=Symbol("processEntry"),Q=Symbol("extendedHeader"),X=Symbol("globalExtendedHeader"),ae=Symbol("meta"),ne=Symbol("emitMeta"),ce=Symbol("buffer"),fe=Symbol("queue"),ue=Symbol("ended"),de=Symbol("emittedEnd"),be=Symbol("emit"),Se=Symbol("unzip"),De=Symbol("consumeChunk"),k=Symbol("consumeChunkSub"),et=Symbol("consumeBody"),ct=Symbol("consumeMeta"),Me=Symbol("consumeHeader"),je=Symbol("consuming"),St=Symbol("bufferConcat"),At=Symbol("maybeEnd"),Yt=Symbol("writing"),Tr=Symbol("aborted"),Nr=Symbol("onDone"),er=Symbol("sawValidEntry"),vt=Symbol("sawNullBlock"),xt=Symbol("sawEOF"),Zr=Symbol("closeStream"),qt=()=>!0,Xt=class extends t.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[fe]=[];[ce];[N];[E];[b]="begin";[ae]="";[Q];[X];[ue]=!1;[Se];[Tr]=!1;[er];[vt]=!1;[xt]=!1;[Yt]=!1;[je]=!1;[de]=!1;constructor(lr={}){super(),this.file=lr.file||"",this.on(Nr,()=>{(this[b]==="begin"||this[er]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),lr.ondone?this.on(Nr,lr.ondone):this.on(Nr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!lr.strict,this.maxMetaEntrySize=lr.maxMetaEntrySize||A,this.filter=typeof lr.filter=="function"?lr.filter:qt;let cr=lr.file&&(lr.file.endsWith(".tar.br")||lr.file.endsWith(".tbr"));this.brotli=!(lr.gzip||lr.zstd)&&lr.brotli!==void 0?lr.brotli:cr?void 0:!1;let Ar=lr.file&&(lr.file.endsWith(".tar.zst")||lr.file.endsWith(".tzst"));this.zstd=!(lr.gzip||lr.brotli)&&lr.zstd!==void 0?lr.zstd:Ar?!0:void 0,this.on("end",()=>this[Zr]()),typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn),typeof lr.onReadEntry=="function"&&this.on("entry",lr.onReadEntry)}warn(lr,cr,Ar={}){(0,l.warnMethod)(this,lr,cr,Ar)}[Me](lr,cr){this[er]===void 0&&(this[er]=!1);let Ar;try{Ar=new n.Header(lr,cr,this[Q],this[X])}catch(qr){return this.warn("TAR_ENTRY_INVALID",qr)}if(Ar.nullBlock)this[vt]?(this[xt]=!0,this[b]==="begin"&&(this[b]="header"),this[be]("eof")):(this[vt]=!0,this[be]("nullBlock"));else if(this[vt]=!1,!Ar.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:Ar});else if(!Ar.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:Ar});else{let qr=Ar.type;if(/^(Symbolic)?Link$/.test(qr)&&!Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:Ar});else if(!/^(Symbolic)?Link$/.test(qr)&&!/^(Global)?ExtendedHeader$/.test(qr)&&Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:Ar});else{let _n=this[E]=new o.ReadEntry(Ar,this[Q],this[X]);if(!this[er])if(_n.remain){let ke=()=>{_n.invalid||(this[er]=!0)};_n.on("end",ke)}else this[er]=!0;_n.meta?_n.size>this.maxMetaEntrySize?(_n.ignore=!0,this[be]("ignoredEntry",_n),this[b]="ignore",_n.resume()):_n.size>0&&(this[ae]="",_n.on("data",ke=>this[ae]+=ke),this[b]="meta"):(this[Q]=void 0,_n.ignore=_n.ignore||!this.filter(_n.path,_n),_n.ignore?(this[be]("ignoredEntry",_n),this[b]=_n.remain?"ignore":"header",_n.resume()):(_n.remain?this[b]="body":(this[b]="header",_n.end()),this[N]?this[fe].push(_n):(this[fe].push(_n),this[B]())))}}}[Zr](){queueMicrotask(()=>this.emit("close"))}[F](lr){let cr=!0;if(!lr)this[N]=void 0,cr=!1;else if(Array.isArray(lr)){let[Ar,...qr]=lr;this.emit(Ar,...qr)}else this[N]=lr,this.emit("entry",lr),lr.emittedEnd||(lr.on("end",()=>this[B]()),cr=!1);return cr}[B](){do;while(this[F](this[fe].shift()));if(this[fe].length===0){let lr=this[N];!lr||lr.flowing||lr.size===lr.remain?this[Yt]||this.emit("drain"):lr.once("drain",()=>this.emit("drain"))}}[et](lr,cr){let Ar=this[E];if(!Ar)throw new Error("attempt to consume body without entry??");let qr=Ar.blockRemain??0,_n=qr>=lr.length&&cr===0?lr:lr.subarray(cr,cr+qr);return Ar.write(_n),Ar.blockRemain||(this[b]="header",this[E]=void 0,Ar.end()),_n.length}[ct](lr,cr){let Ar=this[E],qr=this[et](lr,cr);return!this[E]&&Ar&&this[ne](Ar),qr}[be](lr,cr,Ar){this[fe].length===0&&!this[N]?this.emit(lr,cr,Ar):this[fe].push([lr,cr,Ar])}[ne](lr){switch(this[be]("meta",this[ae]),lr.type){case"ExtendedHeader":case"OldExtendedHeader":this[Q]=a.Pax.parse(this[ae],this[Q],!1);break;case"GlobalExtendedHeader":this[X]=a.Pax.parse(this[ae],this[X],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let cr=this[Q]??Object.create(null);this[Q]=cr,cr.path=this[ae].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let cr=this[Q]||Object.create(null);this[Q]=cr,cr.linkpath=this[ae].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+lr.type)}}abort(lr){this[Tr]=!0,this.emit("abort",lr),this.warn("TAR_ABORT",lr,{recoverable:!1})}write(lr,cr,Ar){if(typeof cr=="function"&&(Ar=cr,cr=void 0),typeof lr=="string"&&(lr=Buffer.from(lr,typeof cr=="string"?cr:"utf8")),this[Tr])return Ar?.(),!1;if((this[Se]===void 0||this.brotli===void 0&&this[Se]===!1)&&lr){if(this[ce]&&(lr=Buffer.concat([this[ce],lr]),this[ce]=void 0),lr.lengththis[De](Nn)),this[Se].on("error",Nn=>this.abort(Nn)),this[Se].on("end",()=>{this[ue]=!0,this[De]()}),this[Yt]=!0;let Fn=!!this[Se][jt?"end":"write"](lr);return this[Yt]=!1,Ar?.(),Fn}}this[Yt]=!0,this[Se]?this[Se].write(lr):this[De](lr),this[Yt]=!1;let qr=this[fe].length>0?!1:this[N]?this[N].flowing:!0;return!qr&&this[fe].length===0&&this[N]?.once("drain",()=>this.emit("drain")),Ar?.(),qr}[St](lr){lr&&!this[Tr]&&(this[ce]=this[ce]?Buffer.concat([this[ce],lr]):lr)}[At](){if(this[ue]&&!this[de]&&!this[Tr]&&!this[je]){this[de]=!0;let lr=this[E];if(lr&&lr.blockRemain){let cr=this[ce]?this[ce].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${lr.blockRemain} more bytes, only ${cr} available)`,{entry:lr}),this[ce]&&lr.write(this[ce]),lr.end()}this[be](Nr)}}[De](lr){if(this[je]&&lr)this[St](lr);else if(!lr&&!this[ce])this[At]();else if(lr){if(this[je]=!0,this[ce]){this[St](lr);let cr=this[ce];this[ce]=void 0,this[k](cr)}else this[k](lr);for(;this[ce]&&this[ce]?.length>=512&&!this[Tr]&&!this[xt];){let cr=this[ce];this[ce]=void 0,this[k](cr)}this[je]=!1}(!this[ce]||this[ue])&&this[At]()}[k](lr){let cr=0,Ar=lr.length;for(;cr+512<=Ar&&!this[Tr]&&!this[xt];)switch(this[b]){case"begin":case"header":this[Me](lr,cr),cr+=512;break;case"ignore":case"body":cr+=this[et](lr,cr);break;case"meta":cr+=this[ct](lr,cr);break;default:throw new Error("invalid state: "+this[b])}cr{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripTrailingSlashes=void 0;var t=r=>{let n=r.length-1,a=-1;for(;n>-1&&r.charAt(n)==="/";)a=n,n--;return a===-1?r:r.slice(0,a)};e.stripTrailingSlashes=t}),k5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(F,Q,X,ae){ae===void 0&&(ae=X);var ne=Object.getOwnPropertyDescriptor(Q,X);(!ne||("get"in ne?!Q.__esModule:ne.writable||ne.configurable))&&(ne={enumerable:!0,get:function(){return Q[X]}}),Object.defineProperty(F,ae,ne)}:function(F,Q,X,ae){ae===void 0&&(ae=X),F[ae]=Q[X]}),r=e&&e.__setModuleDefault||(Object.create?function(F,Q){Object.defineProperty(F,"default",{enumerable:!0,value:Q})}:function(F,Q){F.default=Q}),n=e&&e.__importStar||function(){var F=function(Q){return F=Object.getOwnPropertyNames||function(X){var ae=[];for(var ne in X)Object.prototype.hasOwnProperty.call(X,ne)&&(ae[ae.length]=ne);return ae},F(Q)};return function(Q){if(Q&&Q.__esModule)return Q;var X={};if(Q!=null)for(var ae=F(Q),ne=0;ne{let Q=F.onReadEntry;F.onReadEntry=Q?X=>{Q(X),X.resume()}:X=>X.resume()},E=(F,Q)=>{let X=new Map(Q.map(ce=>[(0,C.stripTrailingSlashes)(ce),!0])),ae=F.filter,ne=(ce,fe="")=>{let ue=fe||(0,A.parse)(ce).root||".",de;if(ce===ue)de=!1;else{let be=X.get(ce);de=be!==void 0?be:ne((0,A.dirname)(ce),ue)}return X.set(ce,de),de};F.filter=ae?(ce,fe)=>ae(ce,fe)&&ne((0,C.stripTrailingSlashes)(ce)):ce=>ne((0,C.stripTrailingSlashes)(ce))};e.filesFilter=E;var N=F=>{let Q=new I.Parser(F),X=F.file,ae;try{ae=l.default.openSync(X,"r");let ne=l.default.fstatSync(ae),ce=F.maxReadSize||16*1024*1024;if(ne.size{let X=new I.Parser(F),ae=F.maxReadSize||16*1024*1024,ne=F.file;return new Promise((ce,fe)=>{X.on("error",fe),X.on("end",ce),l.default.stat(ne,(ue,de)=>{if(ue)fe(ue);else{let be=new o.ReadStream(ne,{readSize:ae,size:de.size});be.on("error",fe),be.pipe(X)}})})};e.list=(0,f.makeCommand)(N,B,F=>new I.Parser(F),F=>new I.Parser(F),(F,Q)=>{Q?.length&&(0,e.filesFilter)(F,Q),F.noResume||b(F)})}),TOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.modeFix=void 0;var t=(r,n,a)=>(r&=4095,a&&(r=(r|384)&-19),n&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r);e.modeFix=t}),tLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripAbsolutePath=void 0;var t=wt("node:path"),{isAbsolute:r,parse:n}=t.win32,a=o=>{let l="",A=n(o);for(;r(o)||A.root;){let f=o.charAt(0)==="/"&&o.slice(0,4)!=="//?/"?"/":A.root;o=o.slice(f.length),l+=f,A=n(o)}return[l,o]};e.stripAbsolutePath=a}),rLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decode=e.encode=void 0;var t=["|","<",">","?",":"],r=t.map(A=>String.fromCodePoint(61440+Number(A.codePointAt(0)))),n=new Map(t.map((A,f)=>[A,r[f]])),a=new Map(r.map((A,f)=>[A,t[f]])),o=A=>t.reduce((f,I)=>f.split(I).join(n.get(I)),A);e.encode=o;var l=A=>r.reduce((f,I)=>f.split(I).join(a.get(I)),A);e.decode=l}),nLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(qt,Xt,lr,cr){cr===void 0&&(cr=lr);var Ar=Object.getOwnPropertyDescriptor(Xt,lr);(!Ar||("get"in Ar?!Xt.__esModule:Ar.writable||Ar.configurable))&&(Ar={enumerable:!0,get:function(){return Xt[lr]}}),Object.defineProperty(qt,cr,Ar)}:function(qt,Xt,lr,cr){cr===void 0&&(cr=lr),qt[cr]=Xt[lr]}),r=e&&e.__setModuleDefault||(Object.create?function(qt,Xt){Object.defineProperty(qt,"default",{enumerable:!0,value:Xt})}:function(qt,Xt){qt.default=Xt}),n=e&&e.__importStar||function(){var qt=function(Xt){return qt=Object.getOwnPropertyNames||function(lr){var cr=[];for(var Ar in lr)Object.prototype.hasOwnProperty.call(lr,Ar)&&(cr[cr.length]=Ar);return cr},qt(Xt)};return function(Xt){if(Xt&&Xt.__esModule)return Xt;var lr={};if(Xt!=null)for(var cr=qt(Xt),Ar=0;ArXt?(qt=(0,C.normalizeWindowsPath)(qt).replace(/^\.(\/|$)/,""),(0,B.stripTrailingSlashes)(Xt)+"/"+qt):(0,C.normalizeWindowsPath)(qt),ae=16*1024*1024,ne=Symbol("process"),ce=Symbol("file"),fe=Symbol("directory"),ue=Symbol("symlink"),de=Symbol("hardlink"),be=Symbol("header"),Se=Symbol("read"),De=Symbol("lstat"),k=Symbol("onlstat"),et=Symbol("onread"),ct=Symbol("onreadlink"),Me=Symbol("openfile"),je=Symbol("onopenfile"),St=Symbol("close"),At=Symbol("mode"),Yt=Symbol("awaitDrain"),Tr=Symbol("ondrain"),Nr=Symbol("prefix"),er=class extends l.Minipass{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.path=(0,C.normalizeWindowsPath)(qt),this.portable=!!lr.portable,this.maxReadSize=lr.maxReadSize||ae,this.linkCache=lr.linkCache||new Map,this.statCache=lr.statCache||new Map,this.preservePaths=!!lr.preservePaths,this.cwd=(0,C.normalizeWindowsPath)(lr.cwd||process.cwd()),this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.mtime=lr.mtime,this.prefix=lr.prefix?(0,C.normalizeWindowsPath)(lr.prefix):void 0,this.onWriteEntry=lr.onWriteEntry,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let cr=!1;if(!this.preservePaths){let[qr,_n]=(0,N.stripAbsolutePath)(this.path);qr&&typeof _n=="string"&&(this.path=_n,cr=qr)}this.win32=!!lr.win32||process.platform==="win32",this.win32&&(this.path=Q.decode(this.path.replaceAll(/\\/g,"/")),qt=qt.replaceAll(/\\/g,"/")),this.absolute=(0,C.normalizeWindowsPath)(lr.absolute||A.default.resolve(this.cwd,qt)),this.path===""&&(this.path="./"),cr&&this.warn("TAR_ENTRY_INFO",`stripping ${cr} from absolute path`,{entry:this,path:cr+this.path});let Ar=this.statCache.get(this.absolute);Ar?this[k](Ar):this[De]()}warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}emit(qt,...Xt){return qt==="error"&&(this.#e=!0),super.emit(qt,...Xt)}[De](){o.default.lstat(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[k](Xt)})}[k](qt){this.statCache.set(this.absolute,qt),this.stat=qt,qt.isFile()||(qt.size=0),this.type=Zr(qt),this.emit("stat",qt),this[ne]()}[ne](){switch(this.type){case"File":return this[ce]();case"Directory":return this[fe]();case"SymbolicLink":return this[ue]();default:return this.end()}}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}[Nr](qt){return X(qt,this.prefix)}[be](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this[At](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let qt=this.header?.block;if(!qt)throw new Error("failed to encode header");super.write(qt)}[fe](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[be](),this.end()}[ue](){o.default.readlink(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[ct](Xt)})}[ct](qt){this.linkpath=(0,C.normalizeWindowsPath)(qt),this[be](),this.end()}[de](qt){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=(0,C.normalizeWindowsPath)(A.default.relative(this.cwd,qt)),this.stat.size=0,this[be](),this.end()}[ce](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let qt=`${this.stat.dev}:${this.stat.ino}`,Xt=this.linkCache.get(qt);if(Xt?.indexOf(this.cwd)===0)return this[de](Xt);this.linkCache.set(qt,this.absolute)}if(this[be](),this.stat.size===0)return this.end();this[Me]()}[Me](){o.default.open(this.absolute,"r",(qt,Xt)=>{if(qt)return this.emit("error",qt);this[je](Xt)})}[je](qt){if(this.fd=qt,this.#e)return this[St]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let Xt=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(Xt),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Se]()}[Se](){let{fd:qt,buf:Xt,offset:lr,length:cr,pos:Ar}=this;if(qt===void 0||Xt===void 0)throw new Error("cannot read file without first opening");o.default.read(qt,Xt,lr,cr,Ar,(qr,_n)=>{if(qr)return this[St](()=>this.emit("error",qr));this[et](_n)})}[St](qt=()=>{}){this.fd!==void 0&&o.default.close(this.fd,qt)}[et](qt){if(qt<=0&&this.remain>0){let lr=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(qt>this.remain){let lr=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(qt===this.remain)for(let lr=qt;lrthis[Tr]())}[Yt](qt){this.once("drain",qt)}write(qt,Xt,lr){if(typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8")),this.blockRemainqt?this.emit("error",qt):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Se]()}};e.WriteEntry=er;var vt=class extends er{sync=!0;[De](){this[k](o.default.lstatSync(this.absolute))}[ue](){this[ct](o.default.readlinkSync(this.absolute))}[Me](){this[je](o.default.openSync(this.absolute,"r"))}[Se](){let qt=!0;try{let{fd:Xt,buf:lr,offset:cr,length:Ar,pos:qr}=this;if(Xt===void 0||lr===void 0)throw new Error("fd and buf must be set in READ method");let _n=o.default.readSync(Xt,lr,cr,Ar,qr);this[et](_n),qt=!1}finally{if(qt)try{this[St](()=>{})}catch{}}}[Yt](qt){qt()}[St](qt=()=>{}){this.fd!==void 0&&o.default.closeSync(this.fd),qt()}};e.WriteEntrySync=vt;var xt=class extends l.Minipass{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.preservePaths=!!lr.preservePaths,this.portable=!!lr.portable,this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.onWriteEntry=lr.onWriteEntry,this.readEntry=qt;let{type:cr}=qt;if(cr==="Unsupported")throw new Error("writing entry that should be ignored");this.type=cr,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=lr.prefix,this.path=(0,C.normalizeWindowsPath)(qt.path),this.mode=qt.mode!==void 0?this[At](qt.mode):void 0,this.uid=this.portable?void 0:qt.uid,this.gid=this.portable?void 0:qt.gid,this.uname=this.portable?void 0:qt.uname,this.gname=this.portable?void 0:qt.gname,this.size=qt.size,this.mtime=this.noMtime?void 0:lr.mtime||qt.mtime,this.atime=this.portable?void 0:qt.atime,this.ctime=this.portable?void 0:qt.ctime,this.linkpath=qt.linkpath!==void 0?(0,C.normalizeWindowsPath)(qt.linkpath):void 0,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let Ar=!1;if(!this.preservePaths){let[_n,ke]=(0,N.stripAbsolutePath)(this.path);_n&&typeof ke=="string"&&(this.path=ke,Ar=_n)}this.remain=qt.size,this.blockRemain=qt.startBlockSize,this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),Ar&&this.warn("TAR_ENTRY_INFO",`stripping ${Ar} from absolute path`,{entry:this,path:Ar+this.path}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let qr=this.header?.block;if(!qr)throw new Error("failed to encode header");super.write(qr),qt.pipe(this)}[Nr](qt){return X(qt,this.prefix)}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}write(qt,Xt,lr){typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8"));let cr=qt.length;if(cr>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=cr,super.write(qt,lr)}end(qt,Xt,lr){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof qt=="function"&&(lr=qt,Xt=void 0,qt=void 0),typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,Xt??"utf8")),lr&&this.once("finish",lr),qt?super.end(qt,lr):super.end(lr),this}};e.WriteEntryTar=xt;var Zr=qt=>qt.isFile()?"File":qt.isDirectory()?"Directory":qt.isSymbolicLink()?"SymbolicLink":"Unsupported"}),ROo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Node=e.Yallist=void 0;var t=class Tve{tail;head;length=0;static create(A=[]){return new Tve(A)}constructor(A=[]){for(let f of A)this.push(f)}*[Symbol.iterator](){for(let A=this.head;A;A=A.next)yield A.value}removeNode(A){if(A.list!==this)throw new Error("removing node which does not belong to this list");let f=A.next,I=A.prev;return f&&(f.prev=I),I&&(I.next=f),A===this.head&&(this.head=f),A===this.tail&&(this.tail=I),this.length--,A.next=void 0,A.prev=void 0,A.list=void 0,f}unshiftNode(A){if(A===this.head)return;A.list&&A.list.removeNode(A);let f=this.head;A.list=this,A.next=f,f&&(f.prev=A),this.head=A,this.tail||(this.tail=A),this.length++}pushNode(A){if(A===this.tail)return;A.list&&A.list.removeNode(A);let f=this.tail;A.list=this,A.prev=f,f&&(f.next=A),this.tail=A,this.head||(this.head=A),this.length++}push(...A){for(let f=0,I=A.length;f1)I=f;else if(this.head)C=this.head.next,I=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var b=0;C;b++)I=A(I,C.value,b),C=C.next;return I}reduceReverse(A,f){let I,C=this.tail;if(arguments.length>1)I=f;else if(this.tail)C=this.tail.prev,I=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let b=this.length-1;C;b--)I=A(I,C.value,b),C=C.prev;return I}toArray(){let A=new Array(this.length);for(let f=0,I=this.head;I;f++)A[f]=I.value,I=I.next;return A}toArrayReverse(){let A=new Array(this.length);for(let f=0,I=this.tail;I;f++)A[f]=I.value,I=I.prev;return A}slice(A=0,f=this.length){f<0&&(f+=this.length),A<0&&(A+=this.length);let I=new Tve;if(fthis.length&&(f=this.length);let C=this.head,b=0;for(b=0;C&&bthis.length&&(f=this.length);let C=this.length,b=this.tail;for(;b&&C>f;C--)b=b.prev;for(;b&&C>A;C--,b=b.prev)I.push(b.value);return I}splice(A,f=0,...I){A>this.length&&(A=this.length-1),A<0&&(A=this.length+A);let C=this.head;for(let E=0;C&&E{"use strict";var t=e&&e.__createBinding||(Object.create?function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr);var Xt=Object.getOwnPropertyDescriptor(xt,Zr);(!Xt||("get"in Xt?!xt.__esModule:Xt.writable||Xt.configurable))&&(Xt={enumerable:!0,get:function(){return xt[Zr]}}),Object.defineProperty(vt,qt,Xt)}:function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr),vt[qt]=xt[Zr]}),r=e&&e.__setModuleDefault||(Object.create?function(vt,xt){Object.defineProperty(vt,"default",{enumerable:!0,value:xt})}:function(vt,xt){vt.default=xt}),n=e&&e.__importStar||function(){var vt=function(xt){return vt=Object.getOwnPropertyNames||function(Zr){var qt=[];for(var Xt in Zr)Object.prototype.hasOwnProperty.call(Zr,Xt)&&(qt[qt.length]=Xt);return qt},vt(xt)};return function(xt){if(xt&&xt.__esModule)return xt;var Zr={};if(xt!=null)for(var qt=vt(xt),Xt=0;Xt1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(vt.gzip&&(typeof vt.gzip!="object"&&(vt.gzip={}),this.portable&&(vt.gzip.portable=!0),this.zip=new I.Gzip(vt.gzip)),vt.brotli&&(typeof vt.brotli!="object"&&(vt.brotli={}),this.zip=new I.BrotliCompress(vt.brotli)),vt.zstd&&(typeof vt.zstd!="object"&&(vt.zstd={}),this.zip=new I.ZstdCompress(vt.zstd)),!this.zip)throw new Error("impossible");let xt=this.zip;xt.on("data",Zr=>super.write(Zr)),xt.on("end",()=>super.end()),xt.on("drain",()=>this[At]()),this.on("resume",()=>xt.resume())}else this.on("drain",this[At]);this.noDirRecurse=!!vt.noDirRecurse,this.follow=!!vt.follow,this.noMtime=!!vt.noMtime,vt.mtime&&(this.mtime=vt.mtime),this.filter=typeof vt.filter=="function"?vt.filter:()=>!0,this[Q]=new C.Yallist,this[fe]=0,this.jobs=Number(vt.jobs)||4,this[ne]=!1,this[F]=!1}[St](vt){return super.write(vt)}add(vt){return this.write(vt),this}end(vt,xt,Zr){return typeof vt=="function"&&(Zr=vt,vt=void 0),typeof xt=="function"&&(Zr=xt,xt=void 0),vt&&this.add(vt),this[F]=!0,this[ae](),Zr&&Zr(),this}write(vt){if(this[F])throw new Error("write after end");return vt instanceof b.ReadEntry?this[be](vt):this[de](vt),this.flowing}[be](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt.path));if(!this.filter(vt.path,vt))vt.resume();else{let Zr=new A(vt.path,xt);Zr.entry=new l.WriteEntryTar(vt,this[Me](Zr)),Zr.entry.on("end",()=>this[ue](Zr)),this[fe]+=1,this[Q].push(Zr)}this[ae]()}[de](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt));this[Q].push(new A(vt,xt)),this[ae]()}[Se](vt){vt.pending=!0,this[fe]+=1;let xt=this.follow?"stat":"lstat";o.default[xt](vt.absolute,(Zr,qt)=>{vt.pending=!1,this[fe]-=1,Zr?this.emit("error",Zr):this[B](vt,qt)})}[B](vt,xt){this.statCache.set(vt.absolute,xt),vt.stat=xt,this.filter(vt.path,xt)?xt.isFile()&&xt.nlink>1&&vt===this[X]&&!this.linkCache.get(`${xt.dev}:${xt.ino}`)&&!this.sync&&this[ce](vt):vt.ignore=!0,this[ae]()}[De](vt){vt.pending=!0,this[fe]+=1,o.default.readdir(vt.absolute,(xt,Zr)=>{if(vt.pending=!1,this[fe]-=1,xt)return this.emit("error",xt);this[k](vt,Zr)})}[k](vt,xt){this.readdirCache.set(vt.absolute,xt),vt.readdir=xt,this[ae]()}[ae](){if(!this[ne]){this[ne]=!0;for(let vt=this[Q].head;vt&&this[fe]this.warn(xt,Zr,qt),noPax:this.noPax,cwd:this.cwd,absolute:vt.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[ct](vt){this[fe]+=1;try{return new this[je](vt.path,this[Me](vt)).on("end",()=>this[ue](vt)).on("error",xt=>this.emit("error",xt))}catch(xt){this.emit("error",xt)}}[At](){this[X]&&this[X].entry&&this[X].entry.resume()}[et](vt){vt.piped=!0,vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)});let xt=vt.entry,Zr=this.zip;if(!xt)throw new Error("cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)||xt.pause()}):xt.on("data",qt=>{super.write(qt)||xt.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(vt,xt,Zr={}){(0,E.warnMethod)(this,vt,xt,Zr)}};e.Pack=Nr;var er=class extends Nr{sync=!0;constructor(vt){super(vt),this[je]=l.WriteEntrySync}pause(){}resume(){}[Se](vt){let xt=this.follow?"statSync":"lstatSync";this[B](vt,o.default[xt](vt.absolute))}[De](vt){this[k](vt,o.default.readdirSync(vt.absolute))}[et](vt){let xt=vt.entry,Zr=this.zip;if(vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)}),!xt)throw new Error("Cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)}):xt.on("data",qt=>{super[St](qt)})}};e.PackSync=er}),iLn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(N){return N&&N.__esModule?N:{default:N}};Object.defineProperty(e,"__esModule",{value:!0}),e.create=void 0;var r=T5e(),n=t(wt("node:path")),a=k5e(),o=R5e(),l=jAr(),A=(N,B)=>{let F=new l.PackSync(N),Q=new r.WriteStreamSync(N.file,{mode:N.mode||438});F.pipe(Q),I(F,B)},f=(N,B)=>{let F=new l.Pack(N),Q=new r.WriteStream(N.file,{mode:N.mode||438});F.pipe(Q);let X=new Promise((ae,ne)=>{Q.on("error",ne),Q.on("close",ae),F.on("error",ne)});return C(F,B).catch(ae=>F.emit("error",ae)),X},I=(N,B)=>{B.forEach(F=>{F.charAt(0)==="@"?(0,a.list)({file:n.default.resolve(N.cwd,F.slice(1)),sync:!0,noResume:!0,onReadEntry:Q=>N.add(Q)}):N.add(F)}),N.end()},C=async(N,B)=>{for(let F of B)F.charAt(0)==="@"?await(0,a.list)({file:n.default.resolve(String(N.cwd),F.slice(1)),noResume:!0,onReadEntry:Q=>{N.add(Q)}}):N.add(F);N.end()},b=(N,B)=>{let F=new l.PackSync(N);return I(F,B),F},E=(N,B)=>{let F=new l.Pack(N);return C(F,B).catch(Q=>F.emit("error",Q)),F};e.create=(0,o.makeCommand)(A,f,b,E,(N,B)=>{if(!B?.length)throw new TypeError("no paths specified to add to archive")})}),NOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(e,"__esModule",{value:!0}),e.getWriteFlag=void 0;var r=t(wt("fs")),n=process.platform,a=n==="win32",{O_CREAT:o,O_NOFOLLOW:l,O_TRUNC:A,O_WRONLY:f}=r.default.constants,I=Number(process.env.__FAKE_FS_O_FILENAME__)||r.default.constants.UV_FS_O_FILEMAP||0,C=a&&!!I,b=512*1024,E=I|A|o|f,N=!a&&typeof l=="number"?l|A|o|f:null;e.getWriteFlag=N!==null?()=>N:C?B=>B"w"}),DOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(C){return C&&C.__esModule?C:{default:C}};Object.defineProperty(e,"__esModule",{value:!0}),e.chownrSync=e.chownr=void 0;var r=t(wt("node:fs")),n=t(wt("node:path")),a=(C,b,E)=>{try{return r.default.lchownSync(C,b,E)}catch(N){if(N?.code!=="ENOENT")throw N}},o=(C,b,E,N)=>{r.default.lchown(C,b,E,B=>{N(B&&B?.code!=="ENOENT"?B:null)})},l=(C,b,E,N,B)=>{if(b.isDirectory())(0,e.chownr)(n.default.resolve(C,b.name),E,N,F=>{if(F)return B(F);let Q=n.default.resolve(C,b.name);o(Q,E,N,B)});else{let F=n.default.resolve(C,b.name);o(F,E,N,B)}},A=(C,b,E,N)=>{r.default.readdir(C,{withFileTypes:!0},(B,F)=>{if(B){if(B.code==="ENOENT")return N();if(B.code!=="ENOTDIR"&&B.code!=="ENOTSUP")return N(B)}if(B||!F.length)return o(C,b,E,N);let Q=F.length,X=null,ae=ne=>{if(!X){if(ne)return N(X=ne);if(--Q===0)return o(C,b,E,N)}};for(let ne of F)l(C,ne,b,E,ae)})};e.chownr=A;var f=(C,b,E,N)=>{b.isDirectory()&&(0,e.chownrSync)(n.default.resolve(C,b.name),E,N),a(n.default.resolve(C,b.name),E,N)},I=(C,b,E)=>{let N;try{N=r.default.readdirSync(C,{withFileTypes:!0})}catch(B){let F=B;if(F?.code==="ENOENT")return;if(F?.code==="ENOTDIR"||F?.code==="ENOTSUP")return a(C,b,E);throw F}for(let B of N)f(C,B,b,E);return a(C,b,E)};e.chownrSync=I}),kOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CwdError=void 0;var t=class extends Error{path;code;syscall="chdir";constructor(r,n){super(`${n}: Cannot cd into '${r}'`),this.path=r,this.code=n}get name(){return"CwdError"}};e.CwdError=t}),sLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SymlinkError=void 0;var t=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(r,n){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=r,this.path=n}get name(){return"SymlinkError"}};e.SymlinkError=t}),xOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.mkdirSync=e.mkdir=void 0;var r=DOo(),n=t(wt("node:fs")),a=t(wt("node:fs/promises")),o=t(wt("node:path")),l=kOo(),A=D5e(),f=sLn(),I=(F,Q)=>{n.default.stat(F,(X,ae)=>{(X||!ae.isDirectory())&&(X=new l.CwdError(F,X?.code||"ENOTDIR")),Q(X)})},C=(F,Q,X)=>{F=(0,A.normalizeWindowsPath)(F);let ae=Q.umask??18,ne=Q.mode|448,ce=(ne&ae)!==0,fe=Q.uid,ue=Q.gid,de=typeof fe=="number"&&typeof ue=="number"&&(fe!==Q.processUid||ue!==Q.processGid),be=Q.preserve,Se=Q.unlink,De=(0,A.normalizeWindowsPath)(Q.cwd),k=(ct,Me)=>{ct?X(ct):Me&&de?(0,r.chownr)(Me,fe,ue,je=>k(je)):ce?n.default.chmod(F,ne,X):X()};if(F===De)return I(F,k);if(be)return a.default.mkdir(F,{mode:ne,recursive:!0}).then(ct=>k(null,ct??void 0),k);let et=(0,A.normalizeWindowsPath)(o.default.relative(De,F)).split("/");b(De,et,ne,Se,De,void 0,k)};e.mkdir=C;var b=(F,Q,X,ae,ne,ce,fe)=>{if(Q.length===0)return fe(null,ce);let ue=Q.shift(),de=(0,A.normalizeWindowsPath)(o.default.resolve(F+"/"+ue));n.default.mkdir(de,X,E(de,Q,X,ae,ne,ce,fe))},E=(F,Q,X,ae,ne,ce,fe)=>ue=>{ue?n.default.lstat(F,(de,be)=>{if(de)de.path=de.path&&(0,A.normalizeWindowsPath)(de.path),fe(de);else if(be.isDirectory())b(F,Q,X,ae,ne,ce,fe);else if(ae)n.default.unlink(F,Se=>{if(Se)return fe(Se);n.default.mkdir(F,X,E(F,Q,X,ae,ne,ce,fe))});else{if(be.isSymbolicLink())return fe(new f.SymlinkError(F,F+"/"+Q.join("/")));fe(ue)}}):(ce=ce||F,b(F,Q,X,ae,ne,ce,fe))},N=F=>{let Q=!1,X;try{Q=n.default.statSync(F).isDirectory()}catch(ae){X=ae?.code}finally{if(!Q)throw new l.CwdError(F,X??"ENOTDIR")}},B=(F,Q)=>{F=(0,A.normalizeWindowsPath)(F);let X=Q.umask??18,ae=Q.mode|448,ne=(ae&X)!==0,ce=Q.uid,fe=Q.gid,ue=typeof ce=="number"&&typeof fe=="number"&&(ce!==Q.processUid||fe!==Q.processGid),de=Q.preserve,be=Q.unlink,Se=(0,A.normalizeWindowsPath)(Q.cwd),De=ct=>{ct&&ue&&(0,r.chownrSync)(ct,ce,fe),ne&&n.default.chmodSync(F,ae)};if(F===Se)return N(Se),De();if(de)return De(n.default.mkdirSync(F,{mode:ae,recursive:!0})??void 0);let k=(0,A.normalizeWindowsPath)(o.default.relative(Se,F)).split("/"),et;for(let ct=k.shift(),Me=Se;ct&&(Me+="/"+ct);ct=k.shift()){Me=(0,A.normalizeWindowsPath)(o.default.resolve(Me));try{n.default.mkdirSync(Me,ae),et=et||Me}catch{let je=n.default.lstatSync(Me);if(je.isDirectory())continue;if(be){n.default.unlinkSync(Me),n.default.mkdirSync(Me,ae),et=et||Me;continue}else if(je.isSymbolicLink())return new f.SymlinkError(Me,Me+"/"+k.join("/"))}}return De(et)};e.mkdirSync=B}),GOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeUnicode=void 0;var t=Object.create(null),r=1e4,n=new Set,a=o=>{n.has(o)?n.delete(o):t[o]=o.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),n.add(o);let l=t[o],A=n.size-r;if(A>r/10){for(let f of n)if(n.delete(f),delete t[f],--A<=0)break}return l};e.normalizeUnicode=a}),FOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PathReservations=void 0;var t=wt("node:path"),r=GOo(),n=KAr(),a=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,o=a==="win32",l=f=>f.split("/").slice(0,-1).reduce((I,C)=>{let b=I.at(-1);return b!==void 0&&(C=(0,t.join)(b,C)),I.push(C||"/"),I},[]),A=class{#e=new Map;#t=new Map;#n=new Set;reserve(f,I){f=o?["win32 parallelization disabled"]:f.map(b=>(0,n.stripTrailingSlashes)((0,t.join)((0,r.normalizeUnicode)(b))));let C=new Set(f.map(b=>l(b)).reduce((b,E)=>b.concat(E)));this.#t.set(I,{dirs:C,paths:f});for(let b of f){let E=this.#e.get(b);E?E.push(I):this.#e.set(b,[I])}for(let b of C){let E=this.#e.get(b);if(!E)this.#e.set(b,[new Set([I])]);else{let N=E.at(-1);N instanceof Set?N.add(I):E.push(new Set([I]))}}return this.#i(I)}#r(f){let I=this.#t.get(f);if(!I)throw new Error("function does not have any path reservations");return{paths:I.paths.map(C=>this.#e.get(C)),dirs:[...I.dirs].map(C=>this.#e.get(C))}}check(f){let{paths:I,dirs:C}=this.#r(f);return I.every(b=>b&&b[0]===f)&&C.every(b=>b&&b[0]instanceof Set&&b[0].has(f))}#i(f){return this.#n.has(f)||!this.check(f)?!1:(this.#n.add(f),f(()=>this.#s(f)),!0)}#s(f){if(!this.#n.has(f))return!1;let I=this.#t.get(f);if(!I)throw new Error("invalid reservation");let{paths:C,dirs:b}=I,E=new Set;for(let N of C){let B=this.#e.get(N);if(!B||B?.[0]!==f)continue;let F=B[1];if(!F){this.#e.delete(N);continue}if(B.shift(),typeof F=="function")E.add(F);else for(let Q of F)E.add(Q)}for(let N of b){let B=this.#e.get(N),F=B?.[0];if(!(!B||!(F instanceof Set)))if(F.size===1&&B.length===1){this.#e.delete(N);continue}else if(F.size===1){B.shift();let Q=B[0];typeof Q=="function"&&E.add(Q)}else F.delete(f)}return this.#n.delete(f),E.forEach(N=>this.#i(N)),!0}};e.PathReservations=A}),ZOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.umask=void 0;var t=()=>process.umask();e.umask=t}),oLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(Vr,xi,io,ga){ga===void 0&&(ga=io);var Ya=Object.getOwnPropertyDescriptor(xi,io);(!Ya||("get"in Ya?!xi.__esModule:Ya.writable||Ya.configurable))&&(Ya={enumerable:!0,get:function(){return xi[io]}}),Object.defineProperty(Vr,ga,Ya)}:function(Vr,xi,io,ga){ga===void 0&&(ga=io),Vr[ga]=xi[io]}),r=e&&e.__setModuleDefault||(Object.create?function(Vr,xi){Object.defineProperty(Vr,"default",{enumerable:!0,value:xi})}:function(Vr,xi){Vr.default=xi}),n=e&&e.__importStar||function(){var Vr=function(xi){return Vr=Object.getOwnPropertyNames||function(io){var ga=[];for(var Ya in io)Object.prototype.hasOwnProperty.call(io,Ya)&&(ga[ga.length]=Ya);return ga},Vr(xi)};return function(xi){if(xi&&xi.__esModule)return xi;var io={};if(xi!=null)for(var ga=Vr(xi),Ya=0;Ya{if(!qr)return f.default.unlink(Vr,xi);let io=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.rename(Vr,io,ga=>{if(ga)return xi(ga);f.default.unlink(io,xi)})},jt=Vr=>{if(!qr)return f.default.unlinkSync(Vr);let xi=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.renameSync(Vr,xi),f.default.unlinkSync(xi)},Fn=(Vr,xi,io)=>Vr!==void 0&&Vr===Vr>>>0?Vr:xi!==void 0&&xi===xi>>>0?xi:io,Nn=class extends N.Parser{[vt]=!1;[cr]=!1;[Tr]=0;reservations=new Q.PathReservations;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(Vr={}){if(Vr.ondone=()=>{this[vt]=!0,this[xt]()},super(Vr),this.transform=Vr.transform,this.chmod=!!Vr.chmod,typeof Vr.uid=="number"||typeof Vr.gid=="number"){if(typeof Vr.uid!="number"||typeof Vr.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(Vr.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=Vr.uid,this.gid=Vr.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;this.preserveOwner=Vr.preserveOwner===void 0&&typeof Vr.uid!="number"?!!(process.getuid&&process.getuid()===0):!!Vr.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof Vr.maxDepth=="number"?Vr.maxDepth:_n,this.forceChown=Vr.forceChown===!0,this.win32=!!Vr.win32||qr,this.newer=!!Vr.newer,this.keep=!!Vr.keep,this.noMtime=!!Vr.noMtime,this.preservePaths=!!Vr.preservePaths,this.unlink=!!Vr.unlink,this.cwd=(0,E.normalizeWindowsPath)(I.default.resolve(Vr.cwd||process.cwd())),this.strip=Number(Vr.strip)||0,this.processUmask=this.chmod?typeof Vr.processUmask=="number"?Vr.processUmask:(0,ae.umask)():0,this.umask=typeof Vr.umask=="number"?Vr.umask:this.processUmask,this.dmode=Vr.dmode||511&~this.umask,this.fmode=Vr.fmode||438&~this.umask,this.on("entry",xi=>this[ne](xi))}warn(Vr,xi,io={}){return(Vr==="TAR_BAD_ARCHIVE"||Vr==="TAR_ABORT")&&(io.recoverable=!1),super.warn(Vr,xi,io)}[xt](){this[vt]&&this[Tr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[St](Vr,xi){let io=Vr[xi],{type:ga}=Vr;if(!io||this.preservePaths)return!0;let[Ya,Gc]=(0,B.stripAbsolutePath)(io),cl=Gc.replaceAll(/\\/g,"/").split("/");if(cl.includes("..")||qr&&/^[a-z]:\.\.$/i.test(cl[0]??"")){if(xi==="path"||ga==="Link")return this.warn("TAR_ENTRY_ERROR",`${xi} contains '..'`,{entry:Vr,[xi]:io}),!1;let Sc=I.default.posix.dirname(Vr.path),Hr=I.default.posix.normalize(I.default.posix.join(Sc,cl.join("/")));if(Hr.startsWith("../")||Hr==="..")return this.warn("TAR_ENTRY_ERROR",`${xi} escapes extraction directory`,{entry:Vr,[xi]:io}),!1}return Ya&&(Vr[xi]=String(Gc),this.warn("TAR_ENTRY_INFO",`stripping ${Ya} from absolute ${xi}`,{entry:Vr,[xi]:io})),!0}[je](Vr){let xi=(0,E.normalizeWindowsPath)(Vr.path),io=xi.split("/");if(this.strip){if(io.length=this.strip)Vr.linkpath=ga.slice(this.strip).join("/");else return!1}io.splice(0,this.strip),Vr.path=io.join("/")}if(isFinite(this.maxDepth)&&io.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:Vr,path:xi,depth:io.length,maxDepth:this.maxDepth}),!1;if(!this[St](Vr,"path")||!this[St](Vr,"linkpath"))return!1;if(Vr.absolute=I.default.isAbsolute(Vr.path)?(0,E.normalizeWindowsPath)(I.default.resolve(Vr.path)):(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,Vr.path)),!this.preservePaths&&typeof Vr.absolute=="string"&&Vr.absolute.indexOf(this.cwd+"/")!==0&&Vr.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:Vr,path:(0,E.normalizeWindowsPath)(Vr.path),resolvedPath:Vr.absolute,cwd:this.cwd}),!1;if(Vr.absolute===this.cwd&&Vr.type!=="Directory"&&Vr.type!=="GNUDumpDir")return!1;if(this.win32){let{root:ga}=I.default.win32.parse(String(Vr.absolute));Vr.absolute=ga+F.encode(String(Vr.absolute).slice(ga.length));let{root:Ya}=I.default.win32.parse(Vr.path);Vr.path=Ya+F.encode(Vr.path.slice(Ya.length))}return!0}[ne](Vr){if(!this[je](Vr))return Vr.resume();switch(l.default.equal(typeof Vr.absolute,"string"),Vr.type){case"Directory":case"GNUDumpDir":Vr.mode&&(Vr.mode=Vr.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ce](Vr);default:return this[Me](Vr)}}[Yt](Vr,xi){Vr.name==="CwdError"?this.emit("error",Vr):(this.warn("TAR_ENTRY_ERROR",Vr,{entry:xi}),this[er](),xi.resume())}[At](Vr,xi,io){(0,b.mkdir)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi},io)}[qt](Vr){return this.forceChown||this.preserveOwner&&(typeof Vr.uid=="number"&&Vr.uid!==this.processUid||typeof Vr.gid=="number"&&Vr.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Xt](Vr){return Fn(this.uid,Vr.uid,this.processUid)}[lr](Vr){return Fn(this.gid,Vr.gid,this.processGid)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=new o.WriteStream(String(Vr.absolute),{flags:(0,C.getWriteFlag)(Vr.size),mode:io,autoClose:!1});ga.on("error",Sc=>{ga.fd&&f.default.close(ga.fd,()=>{}),ga.write=()=>!0,this[Yt](Sc,Vr),xi()});let Ya=1,Gc=Sc=>{if(Sc){ga.fd&&f.default.close(ga.fd,()=>{}),this[Yt](Sc,Vr),xi();return}--Ya===0&&ga.fd!==void 0&&f.default.close(ga.fd,Hr=>{Hr?this[Yt](Hr,Vr):this[er](),xi()})};ga.on("finish",()=>{let Sc=String(Vr.absolute),Hr=ga.fd;if(typeof Hr=="number"&&Vr.mtime&&!this.noMtime){Ya++;let Wr=Vr.atime||new Date,Ft=Vr.mtime;f.default.futimes(Hr,Wr,Ft,zr=>zr?f.default.utimes(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}if(typeof Hr=="number"&&this[qt](Vr)){Ya++;let Wr=this[Xt](Vr),Ft=this[lr](Vr);typeof Wr=="number"&&typeof Ft=="number"&&f.default.fchown(Hr,Wr,Ft,zr=>zr?f.default.chown(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}Gc()});let cl=this.transform&&this.transform(Vr)||Vr;cl!==Vr&&(cl.on("error",Sc=>{this[Yt](Sc,Vr),xi()}),Vr.pipe(cl)),cl.pipe(ga)}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode;this[At](String(Vr.absolute),io,ga=>{if(ga){this[Yt](ga,Vr),xi();return}let Ya=1,Gc=()=>{--Ya===0&&(xi(),this[er](),Vr.resume())};Vr.mtime&&!this.noMtime&&(Ya++,f.default.utimes(String(Vr.absolute),Vr.atime||new Date,Vr.mtime,Gc)),this[qt](Vr)&&(Ya++,f.default.chown(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)),Gc)),Gc()})}[Me](Vr){Vr.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${Vr.type}`,{entry:Vr}),Vr.resume()}[k](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.relative(this.cwd,I.default.resolve(I.default.dirname(String(Vr.absolute)),String(Vr.linkpath)))).split("/");this[ct](Vr,this.cwd,io,()=>this[De](Vr,String(Vr.linkpath),"symlink",xi),ga=>{this[Yt](ga,Vr),xi()})}[et](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,String(Vr.linkpath))),ga=(0,E.normalizeWindowsPath)(String(Vr.linkpath)).split("/");this[ct](Vr,this.cwd,ga,()=>this[De](Vr,io,"link",xi),Ya=>{this[Yt](Ya,Vr),xi()})}[ct](Vr,xi,io,ga,Ya){let Gc=io.shift();if(this.preservePaths||Gc===void 0)return ga();let cl=I.default.resolve(xi,Gc);f.default.lstat(cl,(Sc,Hr)=>{if(Sc)return ga();if(Hr?.isSymbolicLink())return Ya(new X.SymlinkError(cl,I.default.resolve(cl,io.join("/"))));this[ct](Vr,cl,io,ga,Ya)})}[Nr](){this[Tr]++}[er](){this[Tr]--,this[xt]()}[Zr](Vr){this[er](),Vr.resume()}[ue](Vr,xi){return Vr.type==="File"&&!this.unlink&&xi.isFile()&&xi.nlink<=1&&!qr}[ce](Vr){this[Nr]();let xi=[Vr.path];Vr.linkpath&&xi.push(Vr.linkpath),this.reservations.reserve(xi,io=>this[fe](Vr,io))}[fe](Vr,xi){let io=cl=>{xi(cl)},ga=()=>{this[At](this.cwd,this.dmode,cl=>{if(cl){this[Yt](cl,Vr),io();return}this[cr]=!0,Ya()})},Ya=()=>{if(Vr.absolute!==this.cwd){let cl=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(cl!==this.cwd)return this[At](cl,this.dmode,Sc=>{if(Sc){this[Yt](Sc,Vr),io();return}Gc()})}Gc()},Gc=()=>{f.default.lstat(String(Vr.absolute),(cl,Sc)=>{if(Sc&&(this.keep||this.newer&&Sc.mtime>(Vr.mtime??Sc.mtime))){this[Zr](Vr),io();return}if(cl||this[ue](Vr,Sc))return this[de](null,Vr,io);if(Sc.isDirectory()){if(Vr.type==="Directory"){let Hr=this.chmod&&Vr.mode&&(Sc.mode&4095)!==Vr.mode,Wr=Ft=>this[de](Ft??null,Vr,io);return Hr?f.default.chmod(String(Vr.absolute),Number(Vr.mode),Wr):Wr()}if(Vr.absolute!==this.cwd)return f.default.rmdir(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))}if(Vr.absolute===this.cwd)return this[de](null,Vr,io);ke(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))})};this[cr]?Ya():ga()}[de](Vr,xi,io){if(Vr){this[Yt](Vr,xi),io();return}switch(xi.type){case"File":case"OldFile":case"ContiguousFile":return this[be](xi,io);case"Link":return this[et](xi,io);case"SymbolicLink":return this[k](xi,io);case"Directory":case"GNUDumpDir":return this[Se](xi,io)}}[De](Vr,xi,io,ga){f.default[io](xi,String(Vr.absolute),Ya=>{Ya?this[Yt](Ya,Vr):(this[er](),Vr.resume()),ga()})}};e.Unpack=Nn;var Hi=Vr=>{try{return[null,Vr()]}catch(xi){return[xi,null]}},po=class extends Nn{sync=!0;[de](Vr,xi){return super[de](Vr,xi,()=>{})}[ce](Vr){if(!this[cr]){let Ya=this[At](this.cwd,this.dmode);if(Ya)return this[Yt](Ya,Vr);this[cr]=!0}if(Vr.absolute!==this.cwd){let Ya=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(Ya!==this.cwd){let Gc=this[At](Ya,this.dmode);if(Gc)return this[Yt](Gc,Vr)}}let[xi,io]=Hi(()=>f.default.lstatSync(String(Vr.absolute)));if(io&&(this.keep||this.newer&&io.mtime>(Vr.mtime??io.mtime)))return this[Zr](Vr);if(xi||this[ue](Vr,io))return this[de](null,Vr);if(io.isDirectory()){if(Vr.type==="Directory"){let Gc=this.chmod&&Vr.mode&&(io.mode&4095)!==Vr.mode,[cl]=Gc?Hi(()=>{f.default.chmodSync(String(Vr.absolute),Number(Vr.mode))}):[];return this[de](cl,Vr)}let[Ya]=Hi(()=>f.default.rmdirSync(String(Vr.absolute)));this[de](Ya,Vr)}let[ga]=Vr.absolute===this.cwd?[]:Hi(()=>jt(String(Vr.absolute)));this[de](ga,Vr)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=cl=>{let Sc;try{f.default.closeSync(Ya)}catch(Hr){Sc=Hr}(cl||Sc)&&this[Yt](cl||Sc,Vr),xi()},Ya;try{Ya=f.default.openSync(String(Vr.absolute),(0,C.getWriteFlag)(Vr.size),io)}catch(cl){return ga(cl)}let Gc=this.transform&&this.transform(Vr)||Vr;Gc!==Vr&&(Gc.on("error",cl=>this[Yt](cl,Vr)),Vr.pipe(Gc)),Gc.on("data",cl=>{try{f.default.writeSync(Ya,cl,0,cl.length)}catch(Sc){ga(Sc)}}),Gc.on("end",()=>{let cl=null;if(Vr.mtime&&!this.noMtime){let Sc=Vr.atime||new Date,Hr=Vr.mtime;try{f.default.futimesSync(Ya,Sc,Hr)}catch(Wr){try{f.default.utimesSync(String(Vr.absolute),Sc,Hr)}catch{cl=Wr}}}if(this[qt](Vr)){let Sc=this[Xt](Vr),Hr=this[lr](Vr);try{f.default.fchownSync(Ya,Number(Sc),Number(Hr))}catch(Wr){try{f.default.chownSync(String(Vr.absolute),Number(Sc),Number(Hr))}catch{cl=cl||Wr}}}ga(cl)})}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode,ga=this[At](String(Vr.absolute),io);if(ga){this[Yt](ga,Vr),xi();return}if(Vr.mtime&&!this.noMtime)try{f.default.utimesSync(String(Vr.absolute),Vr.atime||new Date,Vr.mtime)}catch{}if(this[qt](Vr))try{f.default.chownSync(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)))}catch{}xi(),Vr.resume()}[At](Vr,xi){try{return(0,b.mkdirSync)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi})}catch(io){return io}}[ct](Vr,xi,io,ga,Ya){if(this.preservePaths||io.length===0)return ga();let Gc=xi;for(let cl of io){Gc=I.default.resolve(Gc,cl);let[Sc,Hr]=Hi(()=>f.default.lstatSync(Gc));if(Sc)return ga();if(Hr.isSymbolicLink())return Ya(new X.SymlinkError(Gc,I.default.resolve(xi,io.join("/"))))}ga()}[De](Vr,xi,io,ga){let Ya=`${io}Sync`;try{f.default[Ya](xi,String(Vr.absolute)),ga(),Vr.resume()}catch(Gc){return this[Yt](Gc,Vr)}}};e.UnpackSync=po}),aLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(E,N,B,F){F===void 0&&(F=B);var Q=Object.getOwnPropertyDescriptor(N,B);(!Q||("get"in Q?!N.__esModule:Q.writable||Q.configurable))&&(Q={enumerable:!0,get:function(){return N[B]}}),Object.defineProperty(E,F,Q)}:function(E,N,B,F){F===void 0&&(F=B),E[F]=N[B]}),r=e&&e.__setModuleDefault||(Object.create?function(E,N){Object.defineProperty(E,"default",{enumerable:!0,value:N})}:function(E,N){E.default=N}),n=e&&e.__importStar||function(){var E=function(N){return E=Object.getOwnPropertyNames||function(B){var F=[];for(var Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(F[F.length]=Q);return F},E(N)};return function(N){if(N&&N.__esModule)return N;var B={};if(N!=null)for(var F=E(N),Q=0;Q{let N=new I.UnpackSync(E),B=E.file,F=l.default.statSync(B),Q=E.maxReadSize||16*1024*1024;new o.ReadStreamSync(B,{readSize:Q,size:F.size}).pipe(N)},b=(E,N)=>{let B=new I.Unpack(E),F=E.maxReadSize||16*1024*1024,Q=E.file;return new Promise((X,ae)=>{B.on("error",ae),B.on("close",X),l.default.stat(Q,(ne,ce)=>{if(ne)ae(ne);else{let fe=new o.ReadStream(Q,{readSize:F,size:ce.size});fe.on("error",ae),fe.pipe(B)}})})};e.extract=(0,f.makeCommand)(C,b,E=>new I.UnpackSync(E),E=>new I.Unpack(E),(E,N)=>{N?.length&&(0,A.filesFilter)(E,N)})}),zAr=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.replace=void 0;var r=T5e(),n=t(wt("node:fs")),a=t(wt("node:path")),o=N5e(),l=k5e(),A=R5e(),f=YAr(),I=jAr(),C=(F,Q)=>{let X=new I.PackSync(F),ae=!0,ne,ce;try{try{ne=n.default.openSync(F.file,"r+")}catch(de){if(de?.code==="ENOENT")ne=n.default.openSync(F.file,"w+");else throw de}let fe=n.default.fstatSync(ne),ue=Buffer.alloc(512);e:for(ce=0;cefe.size)break;ce+=be,F.mtimeCache&&de.mtime&&F.mtimeCache.set(String(de.path),de.mtime)}ae=!1,b(F,X,ce,ne,Q)}finally{if(ae)try{n.default.closeSync(ne)}catch{}}},b=(F,Q,X,ae,ne)=>{let ce=new r.WriteStreamSync(F.file,{fd:ae,start:X});Q.pipe(ce),N(Q,ne)},E=(F,Q)=>{Q=Array.from(Q);let X=new I.Pack(F),ae=(ne,ce,fe)=>{let ue=(k,et)=>{k?n.default.close(ne,ct=>fe(k)):fe(null,et)},de=0;if(ce===0)return ue(null,0);let be=0,Se=Buffer.alloc(512),De=(k,et)=>{if(k||et===void 0)return ue(k);if(be+=et,be<512&&et)return n.default.read(ne,Se,be,Se.length-be,de+be,De);if(de===0&&Se[0]===31&&Se[1]===139)return ue(new Error("cannot append to compressed archives"));if(be<512)return ue(null,de);let ct=new o.Header(Se);if(!ct.cksumValid)return ue(null,de);let Me=512*Math.ceil((ct.size??0)/512);if(de+Me+512>ce||(de+=Me+512,de>=ce))return ue(null,de);F.mtimeCache&&ct.mtime&&F.mtimeCache.set(String(ct.path),ct.mtime),be=0,n.default.read(ne,Se,0,512,de,De)};n.default.read(ne,Se,0,512,de,De)};return new Promise((ne,ce)=>{X.on("error",ce);let fe="r+",ue=(de,be)=>{if(de&&de.code==="ENOENT"&&fe==="r+")return fe="w+",n.default.open(F.file,fe,ue);if(de||!be)return ce(de);n.default.fstat(be,(Se,De)=>{if(Se)return n.default.close(be,()=>ce(Se));ae(be,De.size,(k,et)=>{if(k)return ce(k);let ct=new r.WriteStream(F.file,{fd:be,start:et});X.pipe(ct),ct.on("error",ce),ct.on("close",ne),B(X,Q)})})};n.default.open(F.file,fe,ue)})},N=(F,Q)=>{Q.forEach(X=>{X.charAt(0)==="@"?(0,l.list)({file:a.default.resolve(F.cwd,X.slice(1)),sync:!0,noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X)}),F.end()},B=async(F,Q)=>{for(let X of Q)X.charAt(0)==="@"?await(0,l.list)({file:a.default.resolve(String(F.cwd),X.slice(1)),noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X);F.end()};e.replace=(0,A.makeCommand)(C,E,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(F,Q)=>{if(!(0,f.isFile)(F))throw new TypeError("file is required");if(F.gzip||F.brotli||F.zstd||F.file.endsWith(".br")||F.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!Q?.length)throw new TypeError("no paths specified to add/replace")})}),cLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.update=void 0;var t=R5e(),r=zAr();e.update=(0,t.makeCommand)(r.replace.syncFile,r.replace.asyncFile,r.replace.syncNoFile,r.replace.asyncNoFile,(a,o=[])=>{r.replace.validate?.(a,o),n(a)});var n=a=>{let o=a.filter;a.mtimeCache||(a.mtimeCache=new Map),a.filter=o?(l,A)=>o(l,A)&&!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0)):(l,A)=>!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0))}}),lLn=jC&&jC.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LOo=jC&&jC.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pM=jC&&jC.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lLn(t,e,r)},VOo=jC&&jC.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Rve,"__esModule",{value:!0});Rve.WorkerPool=Rve.AsyncPool=void 0;var YOo=(Pa(),vi(Va)),gLn=YOo.__importDefault(Dfe()),QOo=wt("worker_threads"),Doe=Symbol("kTaskInfo"),qAr=class{constructor(t,r){this.fn=t,this.limit=(0,gLn.default)(r.poolSize)}run(t){return this.limit(()=>this.fn(t))}};Rve.AsyncPool=qAr;var $Ar=class{constructor(t,r){this.source=t,this.workers=[],this.limit=(0,gLn.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let n=this.workers.pop();n?n.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let t=new QOo.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return t.on("message",r=>{if(!t[Doe])throw new Error("Assertion failed: Worker sent a result without having a task assigned");t[Doe].resolve(r),t[Doe]=null,t.unref(),this.workers.push(t)}),t.on("error",r=>{t[Doe]?.reject(r),t[Doe]=null}),t.on("exit",r=>{r!==0&&t[Doe]?.reject(new Error(`Worker exited with code ${r}`)),t[Doe]=null}),t}run(t){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((n,a)=>{r[Doe]={resolve:n,reject:a},r.postMessage(t)})})}};Rve.WorkerPool=$Ar});var pLn=H((e7l,dLn)=>{var edr;dLn.exports.getContent=()=>(typeof edr>"u"&&(edr=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),edr)});var yLn=H(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});koe.getDefaultTaskPool=mLn;koe.getTaskPoolForConfiguration=CLn;koe.convertToZipWorker=rdr;koe.makeArchiveFromDirectory=zOo;koe.convertToZip=qOo;koe.extractArchiveTo=_Ln;var fLn=(Pa(),vi(Va)),XOo=Bn(),rb=no(),bAt=zK(),JOo=wt("stream"),UOo=fLn.__importStar(uLn()),EAt=ALn(),ILn=fLn.__importStar(xW()),hLn=pLn();function KOo(e,t){switch(e){case"async":return new EAt.AsyncPool(rdr,{poolSize:t});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:t});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}}var tdr;function mLn(){return typeof tdr>"u"&&(tdr=KOo("workers",XOo.nodeUtils.availableParallelism())),tdr}var jOo=new WeakMap;function CLn(e){return typeof e>"u"?mLn():ILn.getFactoryWithDefault(jOo,e,()=>{let t=e.get("taskPoolMode"),r=e.get("taskPoolConcurrency");switch(t){case"async":return new EAt.AsyncPool(rdr,{poolSize:r});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}})}async function rdr(e){let{tmpFile:t,tgz:r,compressionLevel:n,extractBufferOpts:a}=e,o=new bAt.ZipFS(t,{create:!0,level:n,stats:rb.statUtils.makeDefaultStats()}),l=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await _Ln(l,o,a),o.saveAndClose(),t}async function zOo(e,{baseFs:t=new rb.NodeFS,prefixPath:r=rb.PortablePath.root,compressionLevel:n,inMemory:a=!1}={}){let o;if(a)o=new bAt.ZipFS(null,{level:n});else{let A=await rb.xfs.mktempPromise(),f=rb.ppath.join(A,"archive.zip");o=new bAt.ZipFS(f,{create:!0,level:n})}let l=rb.ppath.resolve(rb.PortablePath.root,r);return await o.copyPromise(l,e,{baseFs:t,stableTime:!0,stableSort:!0}),o}async function qOo(e,t={}){let r=await rb.xfs.mktempPromise(),n=rb.ppath.join(r,"archive.zip"),a=t.compressionLevel??t.configuration?.get("compressionLevel")??"mixed",o={prefixPath:t.prefixPath,stripComponents:t.stripComponents};return await(t.taskPool??CLn(t.configuration)).run({tmpFile:n,tgz:e,compressionLevel:a,extractBufferOpts:o}),new bAt.ZipFS(n,{level:t.compressionLevel})}async function*$Oo(e){let t=new UOo.Parser,r=new JOo.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});t.on("entry",n=>{r.write(n)}),t.on("error",n=>{r.destroy(n)}),t.on("close",()=>{r.destroyed||r.end()}),t.end(e);for await(let n of r){let a=n;yield a,a.resume()}}async function _Ln(e,t,{stripComponents:r=0,prefixPath:n=rb.PortablePath.dot}={}){function a(o){if(o.path[0]==="/")return!0;let l=o.path.split(/\//g);return!!(l.some(A=>A==="..")||l.length<=r)}for await(let o of $Oo(e)){if(a(o))continue;let l=rb.ppath.normalize(rb.npath.toPortablePath(o.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let A=l.slice(r).join("/"),f=rb.ppath.join(n,A),I=420;switch((o.type==="Directory"||(o.mode??0)&73)&&(I|=73),o.type){case"Directory":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.mkdirSync(f,{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"OldFile":case"File":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.writeFileSync(f,await ILn.bufferStream(o),{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"SymbolicLink":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.symlinkSync(o.linkpath,f),t.lutimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break}}return t}});var ELn=H((ndr,bLn)=>{(function(e,t){typeof ndr=="object"?bLn.exports=t():typeof define=="function"&&define.amd?define(t):e.treeify=t()})(ndr,function(){function e(a,o){var l=o?"\u2514":"\u251C";return a?l+="\u2500 ":l+="\u2500\u2500\u2510",l}function t(a,o){var l=[];for(var A in a)a.hasOwnProperty(A)&&(o&&typeof a[A]=="function"||l.push(A));return l}function r(a,o,l,A,f,I,C){var b="",E=0,N,B,F=A.slice(0);if(F.push([o,l])&&A.length>0&&(A.forEach(function(X,ae){ae>0&&(b+=(X[1]?" ":"\u2502")+" "),!B&&X[0]===o&&(B=!0)}),b+=e(a,l)+a,f&&(typeof o!="object"||o instanceof Date)&&(b+=": "+o),B&&(b+=" (circular ref.)"),C(b)),!B&&typeof o=="object"){var Q=t(o,I);Q.forEach(function(X){N=++E===Q.length,r(X,o[X],N,F,f,I,C)})}}var n={};return n.asLines=function(a,o,l,A){var f=typeof l!="function"?l:!1;r(".",a,!1,[],o,f,A||l)},n.asTree=function(a,o,l){var A="";return r(".",a,!1,[],o,l,function(f){A+=f+` +`).reduce(l,Object.create(null)),l=(A,f)=>{let I=parseInt(f,10);if(I!==Buffer.byteLength(f)+1)return A;f=f.slice((I+" ").length);let C=f.split("="),b=C.shift();if(!b)return A;let E=b.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),N=C.join("=");return A[E]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(E)?new Date(Number(N)*1e3):/^[0-9]+$/.test(N)?+N:N,A}}),D5e=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeWindowsPath=void 0;var t=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;e.normalizeWindowsPath=t!=="win32"?r=>r:r=>r&&r.replaceAll(/\\/g,"/")}),XAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.ReadEntry=void 0;var t=w5e(),r=D5e(),n=class extends t.Minipass{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(a,o,l){switch(super({}),this.pause(),this.extended=o,this.globalExtended=l,this.header=a,this.remain=a.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=a.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!a.path)throw new Error("no path provided for tar.ReadEntry");this.path=(0,r.normalizeWindowsPath)(a.path),this.mode=a.mode,this.mode&&(this.mode=this.mode&4095),this.uid=a.uid,this.gid=a.gid,this.uname=a.uname,this.gname=a.gname,this.size=this.remain,this.mtime=a.mtime,this.atime=a.atime,this.ctime=a.ctime,this.linkpath=a.linkpath?(0,r.normalizeWindowsPath)(a.linkpath):void 0,this.uname=a.uname,this.gname=a.gname,o&&this.#e(o),l&&this.#e(l,!0)}write(a){let o=a.length;if(o>this.blockRemain)throw new Error("writing more to entry than is appropriate");let l=this.remain,A=this.blockRemain;return this.remain=Math.max(0,l-o),this.blockRemain=Math.max(0,A-o),this.ignore?!0:l>=o?super.write(a):super.write(a.subarray(0,l))}#e(a,o=!1){a.path&&(a.path=(0,r.normalizeWindowsPath)(a.path)),a.linkpath&&(a.linkpath=(0,r.normalizeWindowsPath)(a.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(a).filter(([l,A])=>!(A==null||l==="path"&&o))))}};e.ReadEntry=n}),JAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.warnMethod=void 0;var t=(r,n,a,o={})=>{r.file&&(o.file=r.file),r.cwd&&(o.cwd=r.cwd),o.code=a instanceof Error&&a.code||n,o.tarCode=n,!r.strict&&o.recoverable!==!1?(a instanceof Error&&(o=Object.assign(a,o),a=a.message),r.emit("warn",n,a,o)):a instanceof Error?r.emit("error",Object.assign(a,o)):r.emit("error",Object.assign(new Error(`${n}: ${a}`),o))};e.warnMethod=t}),UAr=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;var t=wt("events"),r=qZn(),n=N5e(),a=QAr(),o=XAr(),l=JAr(),A=1024*1024,f=Buffer.from([31,139]),I=Buffer.from([40,181,47,253]),C=Math.max(f.length,I.length),b=Symbol("state"),E=Symbol("writeEntry"),N=Symbol("readEntry"),B=Symbol("nextEntry"),F=Symbol("processEntry"),Q=Symbol("extendedHeader"),X=Symbol("globalExtendedHeader"),ae=Symbol("meta"),ne=Symbol("emitMeta"),ce=Symbol("buffer"),fe=Symbol("queue"),ue=Symbol("ended"),de=Symbol("emittedEnd"),be=Symbol("emit"),Se=Symbol("unzip"),De=Symbol("consumeChunk"),k=Symbol("consumeChunkSub"),et=Symbol("consumeBody"),ct=Symbol("consumeMeta"),Me=Symbol("consumeHeader"),je=Symbol("consuming"),St=Symbol("bufferConcat"),At=Symbol("maybeEnd"),Yt=Symbol("writing"),Tr=Symbol("aborted"),Nr=Symbol("onDone"),er=Symbol("sawValidEntry"),vt=Symbol("sawNullBlock"),xt=Symbol("sawEOF"),Zr=Symbol("closeStream"),qt=()=>!0,Xt=class extends t.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[fe]=[];[ce];[N];[E];[b]="begin";[ae]="";[Q];[X];[ue]=!1;[Se];[Tr]=!1;[er];[vt]=!1;[xt]=!1;[Yt]=!1;[je]=!1;[de]=!1;constructor(lr={}){super(),this.file=lr.file||"",this.on(Nr,()=>{(this[b]==="begin"||this[er]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),lr.ondone?this.on(Nr,lr.ondone):this.on(Nr,()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")}),this.strict=!!lr.strict,this.maxMetaEntrySize=lr.maxMetaEntrySize||A,this.filter=typeof lr.filter=="function"?lr.filter:qt;let cr=lr.file&&(lr.file.endsWith(".tar.br")||lr.file.endsWith(".tbr"));this.brotli=!(lr.gzip||lr.zstd)&&lr.brotli!==void 0?lr.brotli:cr?void 0:!1;let Ar=lr.file&&(lr.file.endsWith(".tar.zst")||lr.file.endsWith(".tzst"));this.zstd=!(lr.gzip||lr.brotli)&&lr.zstd!==void 0?lr.zstd:Ar?!0:void 0,this.on("end",()=>this[Zr]()),typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn),typeof lr.onReadEntry=="function"&&this.on("entry",lr.onReadEntry)}warn(lr,cr,Ar={}){(0,l.warnMethod)(this,lr,cr,Ar)}[Me](lr,cr){this[er]===void 0&&(this[er]=!1);let Ar;try{Ar=new n.Header(lr,cr,this[Q],this[X])}catch(qr){return this.warn("TAR_ENTRY_INVALID",qr)}if(Ar.nullBlock)this[vt]?(this[xt]=!0,this[b]==="begin"&&(this[b]="header"),this[be]("eof")):(this[vt]=!0,this[be]("nullBlock"));else if(this[vt]=!1,!Ar.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:Ar});else if(!Ar.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:Ar});else{let qr=Ar.type;if(/^(Symbolic)?Link$/.test(qr)&&!Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:Ar});else if(!/^(Symbolic)?Link$/.test(qr)&&!/^(Global)?ExtendedHeader$/.test(qr)&&Ar.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:Ar});else{let _n=this[E]=new o.ReadEntry(Ar,this[Q],this[X]);if(!this[er])if(_n.remain){let ke=()=>{_n.invalid||(this[er]=!0)};_n.on("end",ke)}else this[er]=!0;_n.meta?_n.size>this.maxMetaEntrySize?(_n.ignore=!0,this[be]("ignoredEntry",_n),this[b]="ignore",_n.resume()):_n.size>0&&(this[ae]="",_n.on("data",ke=>this[ae]+=ke),this[b]="meta"):(this[Q]=void 0,_n.ignore=_n.ignore||!this.filter(_n.path,_n),_n.ignore?(this[be]("ignoredEntry",_n),this[b]=_n.remain?"ignore":"header",_n.resume()):(_n.remain?this[b]="body":(this[b]="header",_n.end()),this[N]?this[fe].push(_n):(this[fe].push(_n),this[B]())))}}}[Zr](){queueMicrotask(()=>this.emit("close"))}[F](lr){let cr=!0;if(!lr)this[N]=void 0,cr=!1;else if(Array.isArray(lr)){let[Ar,...qr]=lr;this.emit(Ar,...qr)}else this[N]=lr,this.emit("entry",lr),lr.emittedEnd||(lr.on("end",()=>this[B]()),cr=!1);return cr}[B](){do;while(this[F](this[fe].shift()));if(this[fe].length===0){let lr=this[N];!lr||lr.flowing||lr.size===lr.remain?this[Yt]||this.emit("drain"):lr.once("drain",()=>this.emit("drain"))}}[et](lr,cr){let Ar=this[E];if(!Ar)throw new Error("attempt to consume body without entry??");let qr=Ar.blockRemain??0,_n=qr>=lr.length&&cr===0?lr:lr.subarray(cr,cr+qr);return Ar.write(_n),Ar.blockRemain||(this[b]="header",this[E]=void 0,Ar.end()),_n.length}[ct](lr,cr){let Ar=this[E],qr=this[et](lr,cr);return!this[E]&&Ar&&this[ne](Ar),qr}[be](lr,cr,Ar){this[fe].length===0&&!this[N]?this.emit(lr,cr,Ar):this[fe].push([lr,cr,Ar])}[ne](lr){switch(this[be]("meta",this[ae]),lr.type){case"ExtendedHeader":case"OldExtendedHeader":this[Q]=a.Pax.parse(this[ae],this[Q],!1);break;case"GlobalExtendedHeader":this[X]=a.Pax.parse(this[ae],this[X],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let cr=this[Q]??Object.create(null);this[Q]=cr,cr.path=this[ae].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let cr=this[Q]||Object.create(null);this[Q]=cr,cr.linkpath=this[ae].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+lr.type)}}abort(lr){this[Tr]=!0,this.emit("abort",lr),this.warn("TAR_ABORT",lr,{recoverable:!1})}write(lr,cr,Ar){if(typeof cr=="function"&&(Ar=cr,cr=void 0),typeof lr=="string"&&(lr=Buffer.from(lr,typeof cr=="string"?cr:"utf8")),this[Tr])return Ar?.(),!1;if((this[Se]===void 0||this.brotli===void 0&&this[Se]===!1)&&lr){if(this[ce]&&(lr=Buffer.concat([this[ce],lr]),this[ce]=void 0),lr.lengththis[De](Nn)),this[Se].on("error",Nn=>this.abort(Nn)),this[Se].on("end",()=>{this[ue]=!0,this[De]()}),this[Yt]=!0;let Fn=!!this[Se][jt?"end":"write"](lr);return this[Yt]=!1,Ar?.(),Fn}}this[Yt]=!0,this[Se]?this[Se].write(lr):this[De](lr),this[Yt]=!1;let qr=this[fe].length>0?!1:this[N]?this[N].flowing:!0;return!qr&&this[fe].length===0&&this[N]?.once("drain",()=>this.emit("drain")),Ar?.(),qr}[St](lr){lr&&!this[Tr]&&(this[ce]=this[ce]?Buffer.concat([this[ce],lr]):lr)}[At](){if(this[ue]&&!this[de]&&!this[Tr]&&!this[je]){this[de]=!0;let lr=this[E];if(lr&&lr.blockRemain){let cr=this[ce]?this[ce].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${lr.blockRemain} more bytes, only ${cr} available)`,{entry:lr}),this[ce]&&lr.write(this[ce]),lr.end()}this[be](Nr)}}[De](lr){if(this[je]&&lr)this[St](lr);else if(!lr&&!this[ce])this[At]();else if(lr){if(this[je]=!0,this[ce]){this[St](lr);let cr=this[ce];this[ce]=void 0,this[k](cr)}else this[k](lr);for(;this[ce]&&this[ce]?.length>=512&&!this[Tr]&&!this[xt];){let cr=this[ce];this[ce]=void 0,this[k](cr)}this[je]=!1}(!this[ce]||this[ue])&&this[At]()}[k](lr){let cr=0,Ar=lr.length;for(;cr+512<=Ar&&!this[Tr]&&!this[xt];)switch(this[b]){case"begin":case"header":this[Me](lr,cr),cr+=512;break;case"ignore":case"body":cr+=this[et](lr,cr);break;case"meta":cr+=this[ct](lr,cr);break;default:throw new Error("invalid state: "+this[b])}cr{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripTrailingSlashes=void 0;var t=r=>{let n=r.length-1,a=-1;for(;n>-1&&r.charAt(n)==="/";)a=n,n--;return a===-1?r:r.slice(0,a)};e.stripTrailingSlashes=t}),k5e=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(F,Q,X,ae){ae===void 0&&(ae=X);var ne=Object.getOwnPropertyDescriptor(Q,X);(!ne||("get"in ne?!Q.__esModule:ne.writable||ne.configurable))&&(ne={enumerable:!0,get:function(){return Q[X]}}),Object.defineProperty(F,ae,ne)}:function(F,Q,X,ae){ae===void 0&&(ae=X),F[ae]=Q[X]}),r=e&&e.__setModuleDefault||(Object.create?function(F,Q){Object.defineProperty(F,"default",{enumerable:!0,value:Q})}:function(F,Q){F.default=Q}),n=e&&e.__importStar||function(){var F=function(Q){return F=Object.getOwnPropertyNames||function(X){var ae=[];for(var ne in X)Object.prototype.hasOwnProperty.call(X,ne)&&(ae[ae.length]=ne);return ae},F(Q)};return function(Q){if(Q&&Q.__esModule)return Q;var X={};if(Q!=null)for(var ae=F(Q),ne=0;ne{let Q=F.onReadEntry;F.onReadEntry=Q?X=>{Q(X),X.resume()}:X=>X.resume()},E=(F,Q)=>{let X=new Map(Q.map(ce=>[(0,C.stripTrailingSlashes)(ce),!0])),ae=F.filter,ne=(ce,fe="")=>{let ue=fe||(0,A.parse)(ce).root||".",de;if(ce===ue)de=!1;else{let be=X.get(ce);de=be!==void 0?be:ne((0,A.dirname)(ce),ue)}return X.set(ce,de),de};F.filter=ae?(ce,fe)=>ae(ce,fe)&&ne((0,C.stripTrailingSlashes)(ce)):ce=>ne((0,C.stripTrailingSlashes)(ce))};e.filesFilter=E;var N=F=>{let Q=new I.Parser(F),X=F.file,ae;try{ae=l.default.openSync(X,"r");let ne=l.default.fstatSync(ae),ce=F.maxReadSize||16*1024*1024;if(ne.size{let X=new I.Parser(F),ae=F.maxReadSize||16*1024*1024,ne=F.file;return new Promise((ce,fe)=>{X.on("error",fe),X.on("end",ce),l.default.stat(ne,(ue,de)=>{if(ue)fe(ue);else{let be=new o.ReadStream(ne,{readSize:ae,size:de.size});be.on("error",fe),be.pipe(X)}})})};e.list=(0,f.makeCommand)(N,B,F=>new I.Parser(F),F=>new I.Parser(F),(F,Q)=>{Q?.length&&(0,e.filesFilter)(F,Q),F.noResume||b(F)})}),TOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.modeFix=void 0;var t=(r,n,a)=>(r&=4095,a&&(r=(r|384)&-19),n&&(r&256&&(r|=64),r&32&&(r|=8),r&4&&(r|=1)),r);e.modeFix=t}),tLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.stripAbsolutePath=void 0;var t=wt("node:path"),{isAbsolute:r,parse:n}=t.win32,a=o=>{let l="",A=n(o);for(;r(o)||A.root;){let f=o.charAt(0)==="/"&&o.slice(0,4)!=="//?/"?"/":A.root;o=o.slice(f.length),l+=f,A=n(o)}return[l,o]};e.stripAbsolutePath=a}),rLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.decode=e.encode=void 0;var t=["|","<",">","?",":"],r=t.map(A=>String.fromCodePoint(61440+Number(A.codePointAt(0)))),n=new Map(t.map((A,f)=>[A,r[f]])),a=new Map(r.map((A,f)=>[A,t[f]])),o=A=>t.reduce((f,I)=>f.split(I).join(n.get(I)),A);e.encode=o;var l=A=>r.reduce((f,I)=>f.split(I).join(a.get(I)),A);e.decode=l}),nLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(qt,Xt,lr,cr){cr===void 0&&(cr=lr);var Ar=Object.getOwnPropertyDescriptor(Xt,lr);(!Ar||("get"in Ar?!Xt.__esModule:Ar.writable||Ar.configurable))&&(Ar={enumerable:!0,get:function(){return Xt[lr]}}),Object.defineProperty(qt,cr,Ar)}:function(qt,Xt,lr,cr){cr===void 0&&(cr=lr),qt[cr]=Xt[lr]}),r=e&&e.__setModuleDefault||(Object.create?function(qt,Xt){Object.defineProperty(qt,"default",{enumerable:!0,value:Xt})}:function(qt,Xt){qt.default=Xt}),n=e&&e.__importStar||function(){var qt=function(Xt){return qt=Object.getOwnPropertyNames||function(lr){var cr=[];for(var Ar in lr)Object.prototype.hasOwnProperty.call(lr,Ar)&&(cr[cr.length]=Ar);return cr},qt(Xt)};return function(Xt){if(Xt&&Xt.__esModule)return Xt;var lr={};if(Xt!=null)for(var cr=qt(Xt),Ar=0;ArXt?(qt=(0,C.normalizeWindowsPath)(qt).replace(/^\.(\/|$)/,""),(0,B.stripTrailingSlashes)(Xt)+"/"+qt):(0,C.normalizeWindowsPath)(qt),ae=16*1024*1024,ne=Symbol("process"),ce=Symbol("file"),fe=Symbol("directory"),ue=Symbol("symlink"),de=Symbol("hardlink"),be=Symbol("header"),Se=Symbol("read"),De=Symbol("lstat"),k=Symbol("onlstat"),et=Symbol("onread"),ct=Symbol("onreadlink"),Me=Symbol("openfile"),je=Symbol("onopenfile"),St=Symbol("close"),At=Symbol("mode"),Yt=Symbol("awaitDrain"),Tr=Symbol("ondrain"),Nr=Symbol("prefix"),er=class extends l.Minipass{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.path=(0,C.normalizeWindowsPath)(qt),this.portable=!!lr.portable,this.maxReadSize=lr.maxReadSize||ae,this.linkCache=lr.linkCache||new Map,this.statCache=lr.statCache||new Map,this.preservePaths=!!lr.preservePaths,this.cwd=(0,C.normalizeWindowsPath)(lr.cwd||process.cwd()),this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.mtime=lr.mtime,this.prefix=lr.prefix?(0,C.normalizeWindowsPath)(lr.prefix):void 0,this.onWriteEntry=lr.onWriteEntry,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let cr=!1;if(!this.preservePaths){let[qr,_n]=(0,N.stripAbsolutePath)(this.path);qr&&typeof _n=="string"&&(this.path=_n,cr=qr)}this.win32=!!lr.win32||process.platform==="win32",this.win32&&(this.path=Q.decode(this.path.replaceAll(/\\/g,"/")),qt=qt.replaceAll(/\\/g,"/")),this.absolute=(0,C.normalizeWindowsPath)(lr.absolute||A.default.resolve(this.cwd,qt)),this.path===""&&(this.path="./"),cr&&this.warn("TAR_ENTRY_INFO",`stripping ${cr} from absolute path`,{entry:this,path:cr+this.path});let Ar=this.statCache.get(this.absolute);Ar?this[k](Ar):this[De]()}warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}emit(qt,...Xt){return qt==="error"&&(this.#e=!0),super.emit(qt,...Xt)}[De](){o.default.lstat(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[k](Xt)})}[k](qt){this.statCache.set(this.absolute,qt),this.stat=qt,qt.isFile()||(qt.size=0),this.type=Zr(qt),this.emit("stat",qt),this[ne]()}[ne](){switch(this.type){case"File":return this[ce]();case"Directory":return this[fe]();case"SymbolicLink":return this[ue]();default:return this.end()}}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}[Nr](qt){return X(qt,this.prefix)}[be](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this[At](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let qt=this.header?.block;if(!qt)throw new Error("failed to encode header");super.write(qt)}[fe](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[be](),this.end()}[ue](){o.default.readlink(this.absolute,(qt,Xt)=>{if(qt)return this.emit("error",qt);this[ct](Xt)})}[ct](qt){this.linkpath=(0,C.normalizeWindowsPath)(qt),this[be](),this.end()}[de](qt){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=(0,C.normalizeWindowsPath)(A.default.relative(this.cwd,qt)),this.stat.size=0,this[be](),this.end()}[ce](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let qt=`${this.stat.dev}:${this.stat.ino}`,Xt=this.linkCache.get(qt);if(Xt?.indexOf(this.cwd)===0)return this[de](Xt);this.linkCache.set(qt,this.absolute)}if(this[be](),this.stat.size===0)return this.end();this[Me]()}[Me](){o.default.open(this.absolute,"r",(qt,Xt)=>{if(qt)return this.emit("error",qt);this[je](Xt)})}[je](qt){if(this.fd=qt,this.#e)return this[St]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let Xt=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(Xt),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[Se]()}[Se](){let{fd:qt,buf:Xt,offset:lr,length:cr,pos:Ar}=this;if(qt===void 0||Xt===void 0)throw new Error("cannot read file without first opening");o.default.read(qt,Xt,lr,cr,Ar,(qr,_n)=>{if(qr)return this[St](()=>this.emit("error",qr));this[et](_n)})}[St](qt=()=>{}){this.fd!==void 0&&o.default.close(this.fd,qt)}[et](qt){if(qt<=0&&this.remain>0){let lr=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(qt>this.remain){let lr=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[St](()=>this.emit("error",lr))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(qt===this.remain)for(let lr=qt;lrthis[Tr]())}[Yt](qt){this.once("drain",qt)}write(qt,Xt,lr){if(typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8")),this.blockRemainqt?this.emit("error",qt):this.end());if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[Se]()}};e.WriteEntry=er;var vt=class extends er{sync=!0;[De](){this[k](o.default.lstatSync(this.absolute))}[ue](){this[ct](o.default.readlinkSync(this.absolute))}[Me](){this[je](o.default.openSync(this.absolute,"r"))}[Se](){let qt=!0;try{let{fd:Xt,buf:lr,offset:cr,length:Ar,pos:qr}=this;if(Xt===void 0||lr===void 0)throw new Error("fd and buf must be set in READ method");let _n=o.default.readSync(Xt,lr,cr,Ar,qr);this[et](_n),qt=!1}finally{if(qt)try{this[St](()=>{})}catch{}}}[Yt](qt){qt()}[St](qt=()=>{}){this.fd!==void 0&&o.default.closeSync(this.fd),qt()}};e.WriteEntrySync=vt;var xt=class extends l.Minipass{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(qt,Xt,lr={}){return(0,F.warnMethod)(this,qt,Xt,lr)}constructor(qt,Xt={}){let lr=(0,b.dealias)(Xt);super(),this.preservePaths=!!lr.preservePaths,this.portable=!!lr.portable,this.strict=!!lr.strict,this.noPax=!!lr.noPax,this.noMtime=!!lr.noMtime,this.onWriteEntry=lr.onWriteEntry,this.readEntry=qt;let{type:cr}=qt;if(cr==="Unsupported")throw new Error("writing entry that should be ignored");this.type=cr,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=lr.prefix,this.path=(0,C.normalizeWindowsPath)(qt.path),this.mode=qt.mode!==void 0?this[At](qt.mode):void 0,this.uid=this.portable?void 0:qt.uid,this.gid=this.portable?void 0:qt.gid,this.uname=this.portable?void 0:qt.uname,this.gname=this.portable?void 0:qt.gname,this.size=qt.size,this.mtime=this.noMtime?void 0:lr.mtime||qt.mtime,this.atime=this.portable?void 0:qt.atime,this.ctime=this.portable?void 0:qt.ctime,this.linkpath=qt.linkpath!==void 0?(0,C.normalizeWindowsPath)(qt.linkpath):void 0,typeof lr.onwarn=="function"&&this.on("warn",lr.onwarn);let Ar=!1;if(!this.preservePaths){let[_n,ke]=(0,N.stripAbsolutePath)(this.path);_n&&typeof ke=="string"&&(this.path=ke,Ar=_n)}this.remain=qt.size,this.blockRemain=qt.startBlockSize,this.onWriteEntry?.(this),this.header=new f.Header({path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),Ar&&this.warn("TAR_ENTRY_INFO",`stripping ${Ar} from absolute path`,{entry:this,path:Ar+this.path}),this.header.encode()&&!this.noPax&&super.write(new E.Pax({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[Nr](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[Nr](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let qr=this.header?.block;if(!qr)throw new Error("failed to encode header");super.write(qr),qt.pipe(this)}[Nr](qt){return X(qt,this.prefix)}[At](qt){return(0,I.modeFix)(qt,this.type==="Directory",this.portable)}write(qt,Xt,lr){typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,typeof Xt=="string"?Xt:"utf8"));let cr=qt.length;if(cr>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=cr,super.write(qt,lr)}end(qt,Xt,lr){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof qt=="function"&&(lr=qt,Xt=void 0,qt=void 0),typeof Xt=="function"&&(lr=Xt,Xt=void 0),typeof qt=="string"&&(qt=Buffer.from(qt,Xt??"utf8")),lr&&this.once("finish",lr),qt?super.end(qt,lr):super.end(lr),this}};e.WriteEntryTar=xt;var Zr=qt=>qt.isFile()?"File":qt.isDirectory()?"Directory":qt.isSymbolicLink()?"SymbolicLink":"Unsupported"}),ROo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Node=e.Yallist=void 0;var t=class Tve{tail;head;length=0;static create(A=[]){return new Tve(A)}constructor(A=[]){for(let f of A)this.push(f)}*[Symbol.iterator](){for(let A=this.head;A;A=A.next)yield A.value}removeNode(A){if(A.list!==this)throw new Error("removing node which does not belong to this list");let f=A.next,I=A.prev;return f&&(f.prev=I),I&&(I.next=f),A===this.head&&(this.head=f),A===this.tail&&(this.tail=I),this.length--,A.next=void 0,A.prev=void 0,A.list=void 0,f}unshiftNode(A){if(A===this.head)return;A.list&&A.list.removeNode(A);let f=this.head;A.list=this,A.next=f,f&&(f.prev=A),this.head=A,this.tail||(this.tail=A),this.length++}pushNode(A){if(A===this.tail)return;A.list&&A.list.removeNode(A);let f=this.tail;A.list=this,A.prev=f,f&&(f.next=A),this.tail=A,this.head||(this.head=A),this.length++}push(...A){for(let f=0,I=A.length;f1)I=f;else if(this.head)C=this.head.next,I=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var b=0;C;b++)I=A(I,C.value,b),C=C.next;return I}reduceReverse(A,f){let I,C=this.tail;if(arguments.length>1)I=f;else if(this.tail)C=this.tail.prev,I=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let b=this.length-1;C;b--)I=A(I,C.value,b),C=C.prev;return I}toArray(){let A=new Array(this.length);for(let f=0,I=this.head;I;f++)A[f]=I.value,I=I.next;return A}toArrayReverse(){let A=new Array(this.length);for(let f=0,I=this.tail;I;f++)A[f]=I.value,I=I.prev;return A}slice(A=0,f=this.length){f<0&&(f+=this.length),A<0&&(A+=this.length);let I=new Tve;if(fthis.length&&(f=this.length);let C=this.head,b=0;for(b=0;C&&bthis.length&&(f=this.length);let C=this.length,b=this.tail;for(;b&&C>f;C--)b=b.prev;for(;b&&C>A;C--,b=b.prev)I.push(b.value);return I}splice(A,f=0,...I){A>this.length&&(A=this.length-1),A<0&&(A=this.length+A);let C=this.head;for(let E=0;C&&E{"use strict";var t=e&&e.__createBinding||(Object.create?function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr);var Xt=Object.getOwnPropertyDescriptor(xt,Zr);(!Xt||("get"in Xt?!xt.__esModule:Xt.writable||Xt.configurable))&&(Xt={enumerable:!0,get:function(){return xt[Zr]}}),Object.defineProperty(vt,qt,Xt)}:function(vt,xt,Zr,qt){qt===void 0&&(qt=Zr),vt[qt]=xt[Zr]}),r=e&&e.__setModuleDefault||(Object.create?function(vt,xt){Object.defineProperty(vt,"default",{enumerable:!0,value:xt})}:function(vt,xt){vt.default=xt}),n=e&&e.__importStar||function(){var vt=function(xt){return vt=Object.getOwnPropertyNames||function(Zr){var qt=[];for(var Xt in Zr)Object.prototype.hasOwnProperty.call(Zr,Xt)&&(qt[qt.length]=Xt);return qt},vt(xt)};return function(xt){if(xt&&xt.__esModule)return xt;var Zr={};if(xt!=null)for(var qt=vt(xt),Xt=0;Xt1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(vt.gzip&&(typeof vt.gzip!="object"&&(vt.gzip={}),this.portable&&(vt.gzip.portable=!0),this.zip=new I.Gzip(vt.gzip)),vt.brotli&&(typeof vt.brotli!="object"&&(vt.brotli={}),this.zip=new I.BrotliCompress(vt.brotli)),vt.zstd&&(typeof vt.zstd!="object"&&(vt.zstd={}),this.zip=new I.ZstdCompress(vt.zstd)),!this.zip)throw new Error("impossible");let xt=this.zip;xt.on("data",Zr=>super.write(Zr)),xt.on("end",()=>super.end()),xt.on("drain",()=>this[At]()),this.on("resume",()=>xt.resume())}else this.on("drain",this[At]);this.noDirRecurse=!!vt.noDirRecurse,this.follow=!!vt.follow,this.noMtime=!!vt.noMtime,vt.mtime&&(this.mtime=vt.mtime),this.filter=typeof vt.filter=="function"?vt.filter:()=>!0,this[Q]=new C.Yallist,this[fe]=0,this.jobs=Number(vt.jobs)||4,this[ne]=!1,this[F]=!1}[St](vt){return super.write(vt)}add(vt){return this.write(vt),this}end(vt,xt,Zr){return typeof vt=="function"&&(Zr=vt,vt=void 0),typeof xt=="function"&&(Zr=xt,xt=void 0),vt&&this.add(vt),this[F]=!0,this[ae](),Zr&&Zr(),this}write(vt){if(this[F])throw new Error("write after end");return vt instanceof b.ReadEntry?this[be](vt):this[de](vt),this.flowing}[be](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt.path));if(!this.filter(vt.path,vt))vt.resume();else{let Zr=new A(vt.path,xt);Zr.entry=new l.WriteEntryTar(vt,this[Me](Zr)),Zr.entry.on("end",()=>this[ue](Zr)),this[fe]+=1,this[Q].push(Zr)}this[ae]()}[de](vt){let xt=(0,Tr.normalizeWindowsPath)(Yt.default.resolve(this.cwd,vt));this[Q].push(new A(vt,xt)),this[ae]()}[Se](vt){vt.pending=!0,this[fe]+=1;let xt=this.follow?"stat":"lstat";o.default[xt](vt.absolute,(Zr,qt)=>{vt.pending=!1,this[fe]-=1,Zr?this.emit("error",Zr):this[B](vt,qt)})}[B](vt,xt){this.statCache.set(vt.absolute,xt),vt.stat=xt,this.filter(vt.path,xt)?xt.isFile()&&xt.nlink>1&&vt===this[X]&&!this.linkCache.get(`${xt.dev}:${xt.ino}`)&&!this.sync&&this[ce](vt):vt.ignore=!0,this[ae]()}[De](vt){vt.pending=!0,this[fe]+=1,o.default.readdir(vt.absolute,(xt,Zr)=>{if(vt.pending=!1,this[fe]-=1,xt)return this.emit("error",xt);this[k](vt,Zr)})}[k](vt,xt){this.readdirCache.set(vt.absolute,xt),vt.readdir=xt,this[ae]()}[ae](){if(!this[ne]){this[ne]=!0;for(let vt=this[Q].head;vt&&this[fe]this.warn(xt,Zr,qt),noPax:this.noPax,cwd:this.cwd,absolute:vt.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[ct](vt){this[fe]+=1;try{return new this[je](vt.path,this[Me](vt)).on("end",()=>this[ue](vt)).on("error",xt=>this.emit("error",xt))}catch(xt){this.emit("error",xt)}}[At](){this[X]&&this[X].entry&&this[X].entry.resume()}[et](vt){vt.piped=!0,vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)});let xt=vt.entry,Zr=this.zip;if(!xt)throw new Error("cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)||xt.pause()}):xt.on("data",qt=>{super.write(qt)||xt.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(vt,xt,Zr={}){(0,E.warnMethod)(this,vt,xt,Zr)}};e.Pack=Nr;var er=class extends Nr{sync=!0;constructor(vt){super(vt),this[je]=l.WriteEntrySync}pause(){}resume(){}[Se](vt){let xt=this.follow?"statSync":"lstatSync";this[B](vt,o.default[xt](vt.absolute))}[De](vt){this[k](vt,o.default.readdirSync(vt.absolute))}[et](vt){let xt=vt.entry,Zr=this.zip;if(vt.readdir&&vt.readdir.forEach(qt=>{let Xt=vt.path,lr=Xt==="./"?"":Xt.replace(/\/*$/,"/");this[de](lr+qt)}),!xt)throw new Error("Cannot pipe without source");Zr?xt.on("data",qt=>{Zr.write(qt)}):xt.on("data",qt=>{super[St](qt)})}};e.PackSync=er}),iLn=yC(e=>{"use strict";var t=e&&e.__importDefault||function(N){return N&&N.__esModule?N:{default:N}};Object.defineProperty(e,"__esModule",{value:!0}),e.create=void 0;var r=T5e(),n=t(wt("node:path")),a=k5e(),o=R5e(),l=jAr(),A=(N,B)=>{let F=new l.PackSync(N),Q=new r.WriteStreamSync(N.file,{mode:N.mode||438});F.pipe(Q),I(F,B)},f=(N,B)=>{let F=new l.Pack(N),Q=new r.WriteStream(N.file,{mode:N.mode||438});F.pipe(Q);let X=new Promise((ae,ne)=>{Q.on("error",ne),Q.on("close",ae),F.on("error",ne)});return C(F,B).catch(ae=>F.emit("error",ae)),X},I=(N,B)=>{B.forEach(F=>{F.charAt(0)==="@"?(0,a.list)({file:n.default.resolve(N.cwd,F.slice(1)),sync:!0,noResume:!0,onReadEntry:Q=>N.add(Q)}):N.add(F)}),N.end()},C=async(N,B)=>{for(let F of B)F.charAt(0)==="@"?await(0,a.list)({file:n.default.resolve(String(N.cwd),F.slice(1)),noResume:!0,onReadEntry:Q=>{N.add(Q)}}):N.add(F);N.end()},b=(N,B)=>{let F=new l.PackSync(N);return I(F,B),F},E=(N,B)=>{let F=new l.Pack(N);return C(F,B).catch(Q=>F.emit("error",Q)),F};e.create=(0,o.makeCommand)(A,f,b,E,(N,B)=>{if(!B?.length)throw new TypeError("no paths specified to add to archive")})}),NOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(B){return B&&B.__esModule?B:{default:B}};Object.defineProperty(e,"__esModule",{value:!0}),e.getWriteFlag=void 0;var r=t(wt("fs")),n=process.platform,a=n==="win32",{O_CREAT:o,O_NOFOLLOW:l,O_TRUNC:A,O_WRONLY:f}=r.default.constants,I=Number(process.env.__FAKE_FS_O_FILENAME__)||r.default.constants.UV_FS_O_FILEMAP||0,C=a&&!!I,b=512*1024,E=I|A|o|f,N=!a&&typeof l=="number"?l|A|o|f:null;e.getWriteFlag=N!==null?()=>N:C?B=>B"w"}),DOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(C){return C&&C.__esModule?C:{default:C}};Object.defineProperty(e,"__esModule",{value:!0}),e.chownrSync=e.chownr=void 0;var r=t(wt("node:fs")),n=t(wt("node:path")),a=(C,b,E)=>{try{return r.default.lchownSync(C,b,E)}catch(N){if(N?.code!=="ENOENT")throw N}},o=(C,b,E,N)=>{r.default.lchown(C,b,E,B=>{N(B&&B?.code!=="ENOENT"?B:null)})},l=(C,b,E,N,B)=>{if(b.isDirectory())(0,e.chownr)(n.default.resolve(C,b.name),E,N,F=>{if(F)return B(F);let Q=n.default.resolve(C,b.name);o(Q,E,N,B)});else{let F=n.default.resolve(C,b.name);o(F,E,N,B)}},A=(C,b,E,N)=>{r.default.readdir(C,{withFileTypes:!0},(B,F)=>{if(B){if(B.code==="ENOENT")return N();if(B.code!=="ENOTDIR"&&B.code!=="ENOTSUP")return N(B)}if(B||!F.length)return o(C,b,E,N);let Q=F.length,X=null,ae=ne=>{if(!X){if(ne)return N(X=ne);if(--Q===0)return o(C,b,E,N)}};for(let ne of F)l(C,ne,b,E,ae)})};e.chownr=A;var f=(C,b,E,N)=>{b.isDirectory()&&(0,e.chownrSync)(n.default.resolve(C,b.name),E,N),a(n.default.resolve(C,b.name),E,N)},I=(C,b,E)=>{let N;try{N=r.default.readdirSync(C,{withFileTypes:!0})}catch(B){let F=B;if(F?.code==="ENOENT")return;if(F?.code==="ENOTDIR"||F?.code==="ENOTSUP")return a(C,b,E);throw F}for(let B of N)f(C,B,b,E);return a(C,b,E)};e.chownrSync=I}),kOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.CwdError=void 0;var t=class extends Error{path;code;syscall="chdir";constructor(r,n){super(`${n}: Cannot cd into '${r}'`),this.path=r,this.code=n}get name(){return"CwdError"}};e.CwdError=t}),sLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SymlinkError=void 0;var t=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(r,n){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=r,this.path=n}get name(){return"SymlinkError"}};e.SymlinkError=t}),xOo=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.mkdirSync=e.mkdir=void 0;var r=DOo(),n=t(wt("node:fs")),a=t(wt("node:fs/promises")),o=t(wt("node:path")),l=kOo(),A=D5e(),f=sLn(),I=(F,Q)=>{n.default.stat(F,(X,ae)=>{(X||!ae.isDirectory())&&(X=new l.CwdError(F,X?.code||"ENOTDIR")),Q(X)})},C=(F,Q,X)=>{F=(0,A.normalizeWindowsPath)(F);let ae=Q.umask??18,ne=Q.mode|448,ce=(ne&ae)!==0,fe=Q.uid,ue=Q.gid,de=typeof fe=="number"&&typeof ue=="number"&&(fe!==Q.processUid||ue!==Q.processGid),be=Q.preserve,Se=Q.unlink,De=(0,A.normalizeWindowsPath)(Q.cwd),k=(ct,Me)=>{ct?X(ct):Me&&de?(0,r.chownr)(Me,fe,ue,je=>k(je)):ce?n.default.chmod(F,ne,X):X()};if(F===De)return I(F,k);if(be)return a.default.mkdir(F,{mode:ne,recursive:!0}).then(ct=>k(null,ct??void 0),k);let et=(0,A.normalizeWindowsPath)(o.default.relative(De,F)).split("/");b(De,et,ne,Se,De,void 0,k)};e.mkdir=C;var b=(F,Q,X,ae,ne,ce,fe)=>{if(Q.length===0)return fe(null,ce);let ue=Q.shift(),de=(0,A.normalizeWindowsPath)(o.default.resolve(F+"/"+ue));n.default.mkdir(de,X,E(de,Q,X,ae,ne,ce,fe))},E=(F,Q,X,ae,ne,ce,fe)=>ue=>{ue?n.default.lstat(F,(de,be)=>{if(de)de.path=de.path&&(0,A.normalizeWindowsPath)(de.path),fe(de);else if(be.isDirectory())b(F,Q,X,ae,ne,ce,fe);else if(ae)n.default.unlink(F,Se=>{if(Se)return fe(Se);n.default.mkdir(F,X,E(F,Q,X,ae,ne,ce,fe))});else{if(be.isSymbolicLink())return fe(new f.SymlinkError(F,F+"/"+Q.join("/")));fe(ue)}}):(ce=ce||F,b(F,Q,X,ae,ne,ce,fe))},N=F=>{let Q=!1,X;try{Q=n.default.statSync(F).isDirectory()}catch(ae){X=ae?.code}finally{if(!Q)throw new l.CwdError(F,X??"ENOTDIR")}},B=(F,Q)=>{F=(0,A.normalizeWindowsPath)(F);let X=Q.umask??18,ae=Q.mode|448,ne=(ae&X)!==0,ce=Q.uid,fe=Q.gid,ue=typeof ce=="number"&&typeof fe=="number"&&(ce!==Q.processUid||fe!==Q.processGid),de=Q.preserve,be=Q.unlink,Se=(0,A.normalizeWindowsPath)(Q.cwd),De=ct=>{ct&&ue&&(0,r.chownrSync)(ct,ce,fe),ne&&n.default.chmodSync(F,ae)};if(F===Se)return N(Se),De();if(de)return De(n.default.mkdirSync(F,{mode:ae,recursive:!0})??void 0);let k=(0,A.normalizeWindowsPath)(o.default.relative(Se,F)).split("/"),et;for(let ct=k.shift(),Me=Se;ct&&(Me+="/"+ct);ct=k.shift()){Me=(0,A.normalizeWindowsPath)(o.default.resolve(Me));try{n.default.mkdirSync(Me,ae),et=et||Me}catch{let je=n.default.lstatSync(Me);if(je.isDirectory())continue;if(be){n.default.unlinkSync(Me),n.default.mkdirSync(Me,ae),et=et||Me;continue}else if(je.isSymbolicLink())return new f.SymlinkError(Me,Me+"/"+k.join("/"))}}return De(et)};e.mkdirSync=B}),GOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.normalizeUnicode=void 0;var t=Object.create(null),r=1e4,n=new Set,a=o=>{n.has(o)?n.delete(o):t[o]=o.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),n.add(o);let l=t[o],A=n.size-r;if(A>r/10){for(let f of n)if(n.delete(f),delete t[f],--A<=0)break}return l};e.normalizeUnicode=a}),FOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.PathReservations=void 0;var t=wt("node:path"),r=GOo(),n=KAr(),a=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,o=a==="win32",l=f=>f.split("/").slice(0,-1).reduce((I,C)=>{let b=I.at(-1);return b!==void 0&&(C=(0,t.join)(b,C)),I.push(C||"/"),I},[]),A=class{#e=new Map;#t=new Map;#n=new Set;reserve(f,I){f=o?["win32 parallelization disabled"]:f.map(b=>(0,n.stripTrailingSlashes)((0,t.join)((0,r.normalizeUnicode)(b))));let C=new Set(f.map(b=>l(b)).reduce((b,E)=>b.concat(E)));this.#t.set(I,{dirs:C,paths:f});for(let b of f){let E=this.#e.get(b);E?E.push(I):this.#e.set(b,[I])}for(let b of C){let E=this.#e.get(b);if(!E)this.#e.set(b,[new Set([I])]);else{let N=E.at(-1);N instanceof Set?N.add(I):E.push(new Set([I]))}}return this.#i(I)}#r(f){let I=this.#t.get(f);if(!I)throw new Error("function does not have any path reservations");return{paths:I.paths.map(C=>this.#e.get(C)),dirs:[...I.dirs].map(C=>this.#e.get(C))}}check(f){let{paths:I,dirs:C}=this.#r(f);return I.every(b=>b&&b[0]===f)&&C.every(b=>b&&b[0]instanceof Set&&b[0].has(f))}#i(f){return this.#n.has(f)||!this.check(f)?!1:(this.#n.add(f),f(()=>this.#s(f)),!0)}#s(f){if(!this.#n.has(f))return!1;let I=this.#t.get(f);if(!I)throw new Error("invalid reservation");let{paths:C,dirs:b}=I,E=new Set;for(let N of C){let B=this.#e.get(N);if(!B||B?.[0]!==f)continue;let F=B[1];if(!F){this.#e.delete(N);continue}if(B.shift(),typeof F=="function")E.add(F);else for(let Q of F)E.add(Q)}for(let N of b){let B=this.#e.get(N),F=B?.[0];if(!(!B||!(F instanceof Set)))if(F.size===1&&B.length===1){this.#e.delete(N);continue}else if(F.size===1){B.shift();let Q=B[0];typeof Q=="function"&&E.add(Q)}else F.delete(f)}return this.#n.delete(f),E.forEach(N=>this.#i(N)),!0}};e.PathReservations=A}),ZOo=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.umask=void 0;var t=()=>process.umask();e.umask=t}),oLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(Vr,xi,io,ga){ga===void 0&&(ga=io);var Ya=Object.getOwnPropertyDescriptor(xi,io);(!Ya||("get"in Ya?!xi.__esModule:Ya.writable||Ya.configurable))&&(Ya={enumerable:!0,get:function(){return xi[io]}}),Object.defineProperty(Vr,ga,Ya)}:function(Vr,xi,io,ga){ga===void 0&&(ga=io),Vr[ga]=xi[io]}),r=e&&e.__setModuleDefault||(Object.create?function(Vr,xi){Object.defineProperty(Vr,"default",{enumerable:!0,value:xi})}:function(Vr,xi){Vr.default=xi}),n=e&&e.__importStar||function(){var Vr=function(xi){return Vr=Object.getOwnPropertyNames||function(io){var ga=[];for(var Ya in io)Object.prototype.hasOwnProperty.call(io,Ya)&&(ga[ga.length]=Ya);return ga},Vr(xi)};return function(xi){if(xi&&xi.__esModule)return xi;var io={};if(xi!=null)for(var ga=Vr(xi),Ya=0;Ya{if(!qr)return f.default.unlink(Vr,xi);let io=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.rename(Vr,io,ga=>{if(ga)return xi(ga);f.default.unlink(io,xi)})},jt=Vr=>{if(!qr)return f.default.unlinkSync(Vr);let xi=Vr+".DELETE."+(0,A.randomBytes)(16).toString("hex");f.default.renameSync(Vr,xi),f.default.unlinkSync(xi)},Fn=(Vr,xi,io)=>Vr!==void 0&&Vr===Vr>>>0?Vr:xi!==void 0&&xi===xi>>>0?xi:io,Nn=class extends N.Parser{[vt]=!1;[cr]=!1;[Tr]=0;reservations=new Q.PathReservations;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(Vr={}){if(Vr.ondone=()=>{this[vt]=!0,this[xt]()},super(Vr),this.transform=Vr.transform,this.chmod=!!Vr.chmod,typeof Vr.uid=="number"||typeof Vr.gid=="number"){if(typeof Vr.uid!="number"||typeof Vr.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(Vr.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=Vr.uid,this.gid=Vr.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;this.preserveOwner=Vr.preserveOwner===void 0&&typeof Vr.uid!="number"?!!(process.getuid&&process.getuid()===0):!!Vr.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof Vr.maxDepth=="number"?Vr.maxDepth:_n,this.forceChown=Vr.forceChown===!0,this.win32=!!Vr.win32||qr,this.newer=!!Vr.newer,this.keep=!!Vr.keep,this.noMtime=!!Vr.noMtime,this.preservePaths=!!Vr.preservePaths,this.unlink=!!Vr.unlink,this.cwd=(0,E.normalizeWindowsPath)(I.default.resolve(Vr.cwd||process.cwd())),this.strip=Number(Vr.strip)||0,this.processUmask=this.chmod?typeof Vr.processUmask=="number"?Vr.processUmask:(0,ae.umask)():0,this.umask=typeof Vr.umask=="number"?Vr.umask:this.processUmask,this.dmode=Vr.dmode||511&~this.umask,this.fmode=Vr.fmode||438&~this.umask,this.on("entry",xi=>this[ne](xi))}warn(Vr,xi,io={}){return(Vr==="TAR_BAD_ARCHIVE"||Vr==="TAR_ABORT")&&(io.recoverable=!1),super.warn(Vr,xi,io)}[xt](){this[vt]&&this[Tr]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[St](Vr,xi){let io=Vr[xi],{type:ga}=Vr;if(!io||this.preservePaths)return!0;let[Ya,Gc]=(0,B.stripAbsolutePath)(io),cl=Gc.replaceAll(/\\/g,"/").split("/");if(cl.includes("..")||qr&&/^[a-z]:\.\.$/i.test(cl[0]??"")){if(xi==="path"||ga==="Link")return this.warn("TAR_ENTRY_ERROR",`${xi} contains '..'`,{entry:Vr,[xi]:io}),!1;let Sc=I.default.posix.dirname(Vr.path),Hr=I.default.posix.normalize(I.default.posix.join(Sc,cl.join("/")));if(Hr.startsWith("../")||Hr==="..")return this.warn("TAR_ENTRY_ERROR",`${xi} escapes extraction directory`,{entry:Vr,[xi]:io}),!1}return Ya&&(Vr[xi]=String(Gc),this.warn("TAR_ENTRY_INFO",`stripping ${Ya} from absolute ${xi}`,{entry:Vr,[xi]:io})),!0}[je](Vr){let xi=(0,E.normalizeWindowsPath)(Vr.path),io=xi.split("/");if(this.strip){if(io.length=this.strip)Vr.linkpath=ga.slice(this.strip).join("/");else return!1}io.splice(0,this.strip),Vr.path=io.join("/")}if(isFinite(this.maxDepth)&&io.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:Vr,path:xi,depth:io.length,maxDepth:this.maxDepth}),!1;if(!this[St](Vr,"path")||!this[St](Vr,"linkpath"))return!1;if(Vr.absolute=I.default.isAbsolute(Vr.path)?(0,E.normalizeWindowsPath)(I.default.resolve(Vr.path)):(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,Vr.path)),!this.preservePaths&&typeof Vr.absolute=="string"&&Vr.absolute.indexOf(this.cwd+"/")!==0&&Vr.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:Vr,path:(0,E.normalizeWindowsPath)(Vr.path),resolvedPath:Vr.absolute,cwd:this.cwd}),!1;if(Vr.absolute===this.cwd&&Vr.type!=="Directory"&&Vr.type!=="GNUDumpDir")return!1;if(this.win32){let{root:ga}=I.default.win32.parse(String(Vr.absolute));Vr.absolute=ga+F.encode(String(Vr.absolute).slice(ga.length));let{root:Ya}=I.default.win32.parse(Vr.path);Vr.path=Ya+F.encode(Vr.path.slice(Ya.length))}return!0}[ne](Vr){if(!this[je](Vr))return Vr.resume();switch(l.default.equal(typeof Vr.absolute,"string"),Vr.type){case"Directory":case"GNUDumpDir":Vr.mode&&(Vr.mode=Vr.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[ce](Vr);default:return this[Me](Vr)}}[Yt](Vr,xi){Vr.name==="CwdError"?this.emit("error",Vr):(this.warn("TAR_ENTRY_ERROR",Vr,{entry:xi}),this[er](),xi.resume())}[At](Vr,xi,io){(0,b.mkdir)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi},io)}[qt](Vr){return this.forceChown||this.preserveOwner&&(typeof Vr.uid=="number"&&Vr.uid!==this.processUid||typeof Vr.gid=="number"&&Vr.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Xt](Vr){return Fn(this.uid,Vr.uid,this.processUid)}[lr](Vr){return Fn(this.gid,Vr.gid,this.processGid)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=new o.WriteStream(String(Vr.absolute),{flags:(0,C.getWriteFlag)(Vr.size),mode:io,autoClose:!1});ga.on("error",Sc=>{ga.fd&&f.default.close(ga.fd,()=>{}),ga.write=()=>!0,this[Yt](Sc,Vr),xi()});let Ya=1,Gc=Sc=>{if(Sc){ga.fd&&f.default.close(ga.fd,()=>{}),this[Yt](Sc,Vr),xi();return}--Ya===0&&ga.fd!==void 0&&f.default.close(ga.fd,Hr=>{Hr?this[Yt](Hr,Vr):this[er](),xi()})};ga.on("finish",()=>{let Sc=String(Vr.absolute),Hr=ga.fd;if(typeof Hr=="number"&&Vr.mtime&&!this.noMtime){Ya++;let Wr=Vr.atime||new Date,Ft=Vr.mtime;f.default.futimes(Hr,Wr,Ft,zr=>zr?f.default.utimes(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}if(typeof Hr=="number"&&this[qt](Vr)){Ya++;let Wr=this[Xt](Vr),Ft=this[lr](Vr);typeof Wr=="number"&&typeof Ft=="number"&&f.default.fchown(Hr,Wr,Ft,zr=>zr?f.default.chown(Sc,Wr,Ft,Rn=>Gc(Rn&&zr)):Gc())}Gc()});let cl=this.transform&&this.transform(Vr)||Vr;cl!==Vr&&(cl.on("error",Sc=>{this[Yt](Sc,Vr),xi()}),Vr.pipe(cl)),cl.pipe(ga)}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode;this[At](String(Vr.absolute),io,ga=>{if(ga){this[Yt](ga,Vr),xi();return}let Ya=1,Gc=()=>{--Ya===0&&(xi(),this[er](),Vr.resume())};Vr.mtime&&!this.noMtime&&(Ya++,f.default.utimes(String(Vr.absolute),Vr.atime||new Date,Vr.mtime,Gc)),this[qt](Vr)&&(Ya++,f.default.chown(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)),Gc)),Gc()})}[Me](Vr){Vr.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${Vr.type}`,{entry:Vr}),Vr.resume()}[k](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.relative(this.cwd,I.default.resolve(I.default.dirname(String(Vr.absolute)),String(Vr.linkpath)))).split("/");this[ct](Vr,this.cwd,io,()=>this[De](Vr,String(Vr.linkpath),"symlink",xi),ga=>{this[Yt](ga,Vr),xi()})}[et](Vr,xi){let io=(0,E.normalizeWindowsPath)(I.default.resolve(this.cwd,String(Vr.linkpath))),ga=(0,E.normalizeWindowsPath)(String(Vr.linkpath)).split("/");this[ct](Vr,this.cwd,ga,()=>this[De](Vr,io,"link",xi),Ya=>{this[Yt](Ya,Vr),xi()})}[ct](Vr,xi,io,ga,Ya){let Gc=io.shift();if(this.preservePaths||Gc===void 0)return ga();let cl=I.default.resolve(xi,Gc);f.default.lstat(cl,(Sc,Hr)=>{if(Sc)return ga();if(Hr?.isSymbolicLink())return Ya(new X.SymlinkError(cl,I.default.resolve(cl,io.join("/"))));this[ct](Vr,cl,io,ga,Ya)})}[Nr](){this[Tr]++}[er](){this[Tr]--,this[xt]()}[Zr](Vr){this[er](),Vr.resume()}[ue](Vr,xi){return Vr.type==="File"&&!this.unlink&&xi.isFile()&&xi.nlink<=1&&!qr}[ce](Vr){this[Nr]();let xi=[Vr.path];Vr.linkpath&&xi.push(Vr.linkpath),this.reservations.reserve(xi,io=>this[fe](Vr,io))}[fe](Vr,xi){let io=cl=>{xi(cl)},ga=()=>{this[At](this.cwd,this.dmode,cl=>{if(cl){this[Yt](cl,Vr),io();return}this[cr]=!0,Ya()})},Ya=()=>{if(Vr.absolute!==this.cwd){let cl=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(cl!==this.cwd)return this[At](cl,this.dmode,Sc=>{if(Sc){this[Yt](Sc,Vr),io();return}Gc()})}Gc()},Gc=()=>{f.default.lstat(String(Vr.absolute),(cl,Sc)=>{if(Sc&&(this.keep||this.newer&&Sc.mtime>(Vr.mtime??Sc.mtime))){this[Zr](Vr),io();return}if(cl||this[ue](Vr,Sc))return this[de](null,Vr,io);if(Sc.isDirectory()){if(Vr.type==="Directory"){let Hr=this.chmod&&Vr.mode&&(Sc.mode&4095)!==Vr.mode,Wr=Ft=>this[de](Ft??null,Vr,io);return Hr?f.default.chmod(String(Vr.absolute),Number(Vr.mode),Wr):Wr()}if(Vr.absolute!==this.cwd)return f.default.rmdir(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))}if(Vr.absolute===this.cwd)return this[de](null,Vr,io);ke(String(Vr.absolute),Hr=>this[de](Hr??null,Vr,io))})};this[cr]?Ya():ga()}[de](Vr,xi,io){if(Vr){this[Yt](Vr,xi),io();return}switch(xi.type){case"File":case"OldFile":case"ContiguousFile":return this[be](xi,io);case"Link":return this[et](xi,io);case"SymbolicLink":return this[k](xi,io);case"Directory":case"GNUDumpDir":return this[Se](xi,io)}}[De](Vr,xi,io,ga){f.default[io](xi,String(Vr.absolute),Ya=>{Ya?this[Yt](Ya,Vr):(this[er](),Vr.resume()),ga()})}};e.Unpack=Nn;var Hi=Vr=>{try{return[null,Vr()]}catch(xi){return[xi,null]}},po=class extends Nn{sync=!0;[de](Vr,xi){return super[de](Vr,xi,()=>{})}[ce](Vr){if(!this[cr]){let Ya=this[At](this.cwd,this.dmode);if(Ya)return this[Yt](Ya,Vr);this[cr]=!0}if(Vr.absolute!==this.cwd){let Ya=(0,E.normalizeWindowsPath)(I.default.dirname(String(Vr.absolute)));if(Ya!==this.cwd){let Gc=this[At](Ya,this.dmode);if(Gc)return this[Yt](Gc,Vr)}}let[xi,io]=Hi(()=>f.default.lstatSync(String(Vr.absolute)));if(io&&(this.keep||this.newer&&io.mtime>(Vr.mtime??io.mtime)))return this[Zr](Vr);if(xi||this[ue](Vr,io))return this[de](null,Vr);if(io.isDirectory()){if(Vr.type==="Directory"){let Gc=this.chmod&&Vr.mode&&(io.mode&4095)!==Vr.mode,[cl]=Gc?Hi(()=>{f.default.chmodSync(String(Vr.absolute),Number(Vr.mode))}):[];return this[de](cl,Vr)}let[Ya]=Hi(()=>f.default.rmdirSync(String(Vr.absolute)));this[de](Ya,Vr)}let[ga]=Vr.absolute===this.cwd?[]:Hi(()=>jt(String(Vr.absolute)));this[de](ga,Vr)}[be](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.fmode,ga=cl=>{let Sc;try{f.default.closeSync(Ya)}catch(Hr){Sc=Hr}(cl||Sc)&&this[Yt](cl||Sc,Vr),xi()},Ya;try{Ya=f.default.openSync(String(Vr.absolute),(0,C.getWriteFlag)(Vr.size),io)}catch(cl){return ga(cl)}let Gc=this.transform&&this.transform(Vr)||Vr;Gc!==Vr&&(Gc.on("error",cl=>this[Yt](cl,Vr)),Vr.pipe(Gc)),Gc.on("data",cl=>{try{f.default.writeSync(Ya,cl,0,cl.length)}catch(Sc){ga(Sc)}}),Gc.on("end",()=>{let cl=null;if(Vr.mtime&&!this.noMtime){let Sc=Vr.atime||new Date,Hr=Vr.mtime;try{f.default.futimesSync(Ya,Sc,Hr)}catch(Wr){try{f.default.utimesSync(String(Vr.absolute),Sc,Hr)}catch{cl=Wr}}}if(this[qt](Vr)){let Sc=this[Xt](Vr),Hr=this[lr](Vr);try{f.default.fchownSync(Ya,Number(Sc),Number(Hr))}catch(Wr){try{f.default.chownSync(String(Vr.absolute),Number(Sc),Number(Hr))}catch{cl=cl||Wr}}}ga(cl)})}[Se](Vr,xi){let io=typeof Vr.mode=="number"?Vr.mode&4095:this.dmode,ga=this[At](String(Vr.absolute),io);if(ga){this[Yt](ga,Vr),xi();return}if(Vr.mtime&&!this.noMtime)try{f.default.utimesSync(String(Vr.absolute),Vr.atime||new Date,Vr.mtime)}catch{}if(this[qt](Vr))try{f.default.chownSync(String(Vr.absolute),Number(this[Xt](Vr)),Number(this[lr](Vr)))}catch{}xi(),Vr.resume()}[At](Vr,xi){try{return(0,b.mkdirSync)((0,E.normalizeWindowsPath)(Vr),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:xi})}catch(io){return io}}[ct](Vr,xi,io,ga,Ya){if(this.preservePaths||io.length===0)return ga();let Gc=xi;for(let cl of io){Gc=I.default.resolve(Gc,cl);let[Sc,Hr]=Hi(()=>f.default.lstatSync(Gc));if(Sc)return ga();if(Hr.isSymbolicLink())return Ya(new X.SymlinkError(Gc,I.default.resolve(xi,io.join("/"))))}ga()}[De](Vr,xi,io,ga){let Ya=`${io}Sync`;try{f.default[Ya](xi,String(Vr.absolute)),ga(),Vr.resume()}catch(Gc){return this[Yt](Gc,Vr)}}};e.UnpackSync=po}),aLn=yC(e=>{"use strict";var t=e&&e.__createBinding||(Object.create?function(E,N,B,F){F===void 0&&(F=B);var Q=Object.getOwnPropertyDescriptor(N,B);(!Q||("get"in Q?!N.__esModule:Q.writable||Q.configurable))&&(Q={enumerable:!0,get:function(){return N[B]}}),Object.defineProperty(E,F,Q)}:function(E,N,B,F){F===void 0&&(F=B),E[F]=N[B]}),r=e&&e.__setModuleDefault||(Object.create?function(E,N){Object.defineProperty(E,"default",{enumerable:!0,value:N})}:function(E,N){E.default=N}),n=e&&e.__importStar||function(){var E=function(N){return E=Object.getOwnPropertyNames||function(B){var F=[];for(var Q in B)Object.prototype.hasOwnProperty.call(B,Q)&&(F[F.length]=Q);return F},E(N)};return function(N){if(N&&N.__esModule)return N;var B={};if(N!=null)for(var F=E(N),Q=0;Q{let N=new I.UnpackSync(E),B=E.file,F=l.default.statSync(B),Q=E.maxReadSize||16*1024*1024;new o.ReadStreamSync(B,{readSize:Q,size:F.size}).pipe(N)},b=(E,N)=>{let B=new I.Unpack(E),F=E.maxReadSize||16*1024*1024,Q=E.file;return new Promise((X,ae)=>{B.on("error",ae),B.on("close",X),l.default.stat(Q,(ne,ce)=>{if(ne)ae(ne);else{let fe=new o.ReadStream(Q,{readSize:F,size:ce.size});fe.on("error",ae),fe.pipe(B)}})})};e.extract=(0,f.makeCommand)(C,b,E=>new I.UnpackSync(E),E=>new I.Unpack(E),(E,N)=>{N?.length&&(0,A.filesFilter)(E,N)})}),zAr=yC(e=>{"use strict";var t=e&&e.__importDefault||function(F){return F&&F.__esModule?F:{default:F}};Object.defineProperty(e,"__esModule",{value:!0}),e.replace=void 0;var r=T5e(),n=t(wt("node:fs")),a=t(wt("node:path")),o=N5e(),l=k5e(),A=R5e(),f=YAr(),I=jAr(),C=(F,Q)=>{let X=new I.PackSync(F),ae=!0,ne,ce;try{try{ne=n.default.openSync(F.file,"r+")}catch(de){if(de?.code==="ENOENT")ne=n.default.openSync(F.file,"w+");else throw de}let fe=n.default.fstatSync(ne),ue=Buffer.alloc(512);e:for(ce=0;cefe.size)break;ce+=be,F.mtimeCache&&de.mtime&&F.mtimeCache.set(String(de.path),de.mtime)}ae=!1,b(F,X,ce,ne,Q)}finally{if(ae)try{n.default.closeSync(ne)}catch{}}},b=(F,Q,X,ae,ne)=>{let ce=new r.WriteStreamSync(F.file,{fd:ae,start:X});Q.pipe(ce),N(Q,ne)},E=(F,Q)=>{Q=Array.from(Q);let X=new I.Pack(F),ae=(ne,ce,fe)=>{let ue=(k,et)=>{k?n.default.close(ne,ct=>fe(k)):fe(null,et)},de=0;if(ce===0)return ue(null,0);let be=0,Se=Buffer.alloc(512),De=(k,et)=>{if(k||et===void 0)return ue(k);if(be+=et,be<512&&et)return n.default.read(ne,Se,be,Se.length-be,de+be,De);if(de===0&&Se[0]===31&&Se[1]===139)return ue(new Error("cannot append to compressed archives"));if(be<512)return ue(null,de);let ct=new o.Header(Se);if(!ct.cksumValid)return ue(null,de);let Me=512*Math.ceil((ct.size??0)/512);if(de+Me+512>ce||(de+=Me+512,de>=ce))return ue(null,de);F.mtimeCache&&ct.mtime&&F.mtimeCache.set(String(ct.path),ct.mtime),be=0,n.default.read(ne,Se,0,512,de,De)};n.default.read(ne,Se,0,512,de,De)};return new Promise((ne,ce)=>{X.on("error",ce);let fe="r+",ue=(de,be)=>{if(de&&de.code==="ENOENT"&&fe==="r+")return fe="w+",n.default.open(F.file,fe,ue);if(de||!be)return ce(de);n.default.fstat(be,(Se,De)=>{if(Se)return n.default.close(be,()=>ce(Se));ae(be,De.size,(k,et)=>{if(k)return ce(k);let ct=new r.WriteStream(F.file,{fd:be,start:et});X.pipe(ct),ct.on("error",ce),ct.on("close",ne),B(X,Q)})})};n.default.open(F.file,fe,ue)})},N=(F,Q)=>{Q.forEach(X=>{X.charAt(0)==="@"?(0,l.list)({file:a.default.resolve(F.cwd,X.slice(1)),sync:!0,noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X)}),F.end()},B=async(F,Q)=>{for(let X of Q)X.charAt(0)==="@"?await(0,l.list)({file:a.default.resolve(String(F.cwd),X.slice(1)),noResume:!0,onReadEntry:ae=>F.add(ae)}):F.add(X);F.end()};e.replace=(0,A.makeCommand)(C,E,()=>{throw new TypeError("file is required")},()=>{throw new TypeError("file is required")},(F,Q)=>{if(!(0,f.isFile)(F))throw new TypeError("file is required");if(F.gzip||F.brotli||F.zstd||F.file.endsWith(".br")||F.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!Q?.length)throw new TypeError("no paths specified to add/replace")})}),cLn=yC(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.update=void 0;var t=R5e(),r=zAr();e.update=(0,t.makeCommand)(r.replace.syncFile,r.replace.asyncFile,r.replace.syncNoFile,r.replace.asyncNoFile,(a,o=[])=>{r.replace.validate?.(a,o),n(a)});var n=a=>{let o=a.filter;a.mtimeCache||(a.mtimeCache=new Map),a.filter=o?(l,A)=>o(l,A)&&!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0)):(l,A)=>!((a.mtimeCache?.get(l)??A.mtime??0)>(A.mtime??0))}}),lLn=jC&&jC.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LOo=jC&&jC.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pM=jC&&jC.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lLn(t,e,r)},VOo=jC&&jC.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Rve,"__esModule",{value:!0});Rve.WorkerPool=Rve.AsyncPool=void 0;var YOo=(Pa(),vi(Va)),gLn=YOo.__importDefault(Dfe()),QOo=wt("worker_threads"),Doe=Symbol("kTaskInfo"),qAr=class{constructor(t,r){this.fn=t,this.limit=(0,gLn.default)(r.poolSize)}run(t){return this.limit(()=>this.fn(t))}};Rve.AsyncPool=qAr;var $Ar=class{constructor(t,r){this.source=t,this.workers=[],this.limit=(0,gLn.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let n=this.workers.pop();n?n.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let t=new QOo.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return t.on("message",r=>{if(!t[Doe])throw new Error("Assertion failed: Worker sent a result without having a task assigned");t[Doe].resolve(r),t[Doe]=null,t.unref(),this.workers.push(t)}),t.on("error",r=>{t[Doe]?.reject(r),t[Doe]=null}),t.on("exit",r=>{r!==0&&t[Doe]?.reject(new Error(`Worker exited with code ${r}`)),t[Doe]=null}),t}run(t){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((n,a)=>{r[Doe]={resolve:n,reject:a},r.postMessage(t)})})}};Rve.WorkerPool=$Ar});var pLn=H((t7l,dLn)=>{var edr;dLn.exports.getContent=()=>(typeof edr>"u"&&(edr=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),edr)});var yLn=H(koe=>{"use strict";Object.defineProperty(koe,"__esModule",{value:!0});koe.getDefaultTaskPool=mLn;koe.getTaskPoolForConfiguration=CLn;koe.convertToZipWorker=rdr;koe.makeArchiveFromDirectory=zOo;koe.convertToZip=qOo;koe.extractArchiveTo=_Ln;var fLn=(Pa(),vi(Va)),XOo=Bn(),rb=no(),bAt=zK(),JOo=wt("stream"),UOo=fLn.__importStar(uLn()),EAt=ALn(),ILn=fLn.__importStar(xW()),hLn=pLn();function KOo(e,t){switch(e){case"async":return new EAt.AsyncPool(rdr,{poolSize:t});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:t});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}}var tdr;function mLn(){return typeof tdr>"u"&&(tdr=KOo("workers",XOo.nodeUtils.availableParallelism())),tdr}var jOo=new WeakMap;function CLn(e){return typeof e>"u"?mLn():ILn.getFactoryWithDefault(jOo,e,()=>{let t=e.get("taskPoolMode"),r=e.get("taskPoolConcurrency");switch(t){case"async":return new EAt.AsyncPool(rdr,{poolSize:r});case"workers":return new EAt.WorkerPool((0,hLn.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}})}async function rdr(e){let{tmpFile:t,tgz:r,compressionLevel:n,extractBufferOpts:a}=e,o=new bAt.ZipFS(t,{create:!0,level:n,stats:rb.statUtils.makeDefaultStats()}),l=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await _Ln(l,o,a),o.saveAndClose(),t}async function zOo(e,{baseFs:t=new rb.NodeFS,prefixPath:r=rb.PortablePath.root,compressionLevel:n,inMemory:a=!1}={}){let o;if(a)o=new bAt.ZipFS(null,{level:n});else{let A=await rb.xfs.mktempPromise(),f=rb.ppath.join(A,"archive.zip");o=new bAt.ZipFS(f,{create:!0,level:n})}let l=rb.ppath.resolve(rb.PortablePath.root,r);return await o.copyPromise(l,e,{baseFs:t,stableTime:!0,stableSort:!0}),o}async function qOo(e,t={}){let r=await rb.xfs.mktempPromise(),n=rb.ppath.join(r,"archive.zip"),a=t.compressionLevel??t.configuration?.get("compressionLevel")??"mixed",o={prefixPath:t.prefixPath,stripComponents:t.stripComponents};return await(t.taskPool??CLn(t.configuration)).run({tmpFile:n,tgz:e,compressionLevel:a,extractBufferOpts:o}),new bAt.ZipFS(n,{level:t.compressionLevel})}async function*$Oo(e){let t=new UOo.Parser,r=new JOo.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});t.on("entry",n=>{r.write(n)}),t.on("error",n=>{r.destroy(n)}),t.on("close",()=>{r.destroyed||r.end()}),t.end(e);for await(let n of r){let a=n;yield a,a.resume()}}async function _Ln(e,t,{stripComponents:r=0,prefixPath:n=rb.PortablePath.dot}={}){function a(o){if(o.path[0]==="/")return!0;let l=o.path.split(/\//g);return!!(l.some(A=>A==="..")||l.length<=r)}for await(let o of $Oo(e)){if(a(o))continue;let l=rb.ppath.normalize(rb.npath.toPortablePath(o.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let A=l.slice(r).join("/"),f=rb.ppath.join(n,A),I=420;switch((o.type==="Directory"||(o.mode??0)&73)&&(I|=73),o.type){case"Directory":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.mkdirSync(f,{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"OldFile":case"File":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.writeFileSync(f,await ILn.bufferStream(o),{mode:I}),t.utimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break;case"SymbolicLink":t.mkdirpSync(rb.ppath.dirname(f),{chmod:493,utimes:[rb.constants.SAFE_TIME,rb.constants.SAFE_TIME]}),t.symlinkSync(o.linkpath,f),t.lutimesSync(f,rb.constants.SAFE_TIME,rb.constants.SAFE_TIME);break}}return t}});var ELn=H((ndr,bLn)=>{(function(e,t){typeof ndr=="object"?bLn.exports=t():typeof define=="function"&&define.amd?define(t):e.treeify=t()})(ndr,function(){function e(a,o){var l=o?"\u2514":"\u251C";return a?l+="\u2500 ":l+="\u2500\u2500\u2510",l}function t(a,o){var l=[];for(var A in a)a.hasOwnProperty(A)&&(o&&typeof a[A]=="function"||l.push(A));return l}function r(a,o,l,A,f,I,C){var b="",E=0,N,B,F=A.slice(0);if(F.push([o,l])&&A.length>0&&(A.forEach(function(X,ae){ae>0&&(b+=(X[1]?" ":"\u2502")+" "),!B&&X[0]===o&&(B=!0)}),b+=e(a,l)+a,f&&(typeof o!="object"||o instanceof Date)&&(b+=": "+o),B&&(b+=" (circular ref.)"),C(b)),!B&&typeof o=="object"){var Q=t(o,I);Q.forEach(function(X){N=++E===Q.length,r(X,o[X],N,F,f,I,C)})}}var n={};return n.asLines=function(a,o,l,A){var f=typeof l!="function"?l:!1;r(".",a,!1,[],o,f,A||l)},n.asTree=function(a,o,l){var A="";return r(".",a,!1,[],o,l,function(f){A+=f+` `}),A},n})});var wLn=H(Nve=>{"use strict";Object.defineProperty(Nve,"__esModule",{value:!0});Nve.treeNodeToTreeify=SLn;Nve.treeNodeToJson=vLn;Nve.emitList=r3o;Nve.emitTree=BLn;var e3o=(Pa(),vi(Va)),t3o=ELn(),cIe=e3o.__importStar(rM());function SLn(e,{configuration:t}){let r={},n=0,a=(o,l)=>{let A=Array.isArray(o)?o.entries():Object.entries(o);for(let[f,I]of A){if(!I)continue;let{label:C,value:b,children:E}=I,N=[];typeof C<"u"&&N.push(cIe.applyStyle(t,C,cIe.Style.BOLD)),typeof b<"u"&&N.push(cIe.pretty(t,b[0],b[1])),N.length===0&&N.push(cIe.applyStyle(t,`${f}`,cIe.Style.BOLD));let B=N.join(": ").trim(),F=`\0${n++}\0`,Q=l[`${F}${B}`]={};typeof E<"u"&&a(E,Q)}};if(typeof e.children>"u")throw new Error("The root node must only contain children");return a(e.children,r),r}function vLn(e){let t=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return cIe.json(r.value[0],r.value[1])}let n=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[o,l]of n)l&&(a[n3o(o)]=t(l));return typeof r.value>"u"?a:{value:cIe.json(r.value[0],r.value[1]),children:a}};return t(e)}function r3o(e,{configuration:t,stdout:r,json:n}){let a=e.map(o=>({value:o}));BLn({children:a},{configuration:t,stdout:r,json:n})}function BLn(e,{configuration:t,stdout:r,json:n,separators:a=0}){if(n){let l=Array.isArray(e.children)?e.children.values():Object.values(e.children??{});for(let A of l)A&&r.write(`${JSON.stringify(vLn(A))} `);return}let o=(0,t3o.asTree)(SLn(e,{configuration:t}),!1,!1);if(o=o.replace(/\0[0-9]+\0/g,""),a>=1&&(o=o.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),a>=2)for(let l=0;l<2;++l)o=o.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 @@ -255,8 +255,8 @@ ${[b,E,N].join(` `,`# Manual changes might be lost - proceed with caution! `].join("")} `+(0,B9n.stringifySyml)(r)}async persistLockfile(){let t=Xf.ppath.join(this.cwd,Xf.Filename.lockfile),r="";try{r=await Xf.xfs.readFilePromise(t,"utf8")}catch{}let n=this.generateLockfile(),a=(0,Xf.normalizeLineEndings)(r,n);a!==r&&(await Xf.xfs.writeFilePromise(t,a),this.lockFileChecksum=F9n(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let t=[];for(let l of Object.values(Hdr))t.push(...l);let r=(0,Odr.pick)(this,t),n=T9n.default.serialize(r),a=r8.makeHash(n);if(this.installStateChecksum===a)return;let o=this.configuration.get("installStatePath");await Xf.xfs.mkdirPromise(Xf.ppath.dirname(o),{recursive:!0}),await Xf.xfs.writeFilePromise(o,await O5o(n)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:t=!0,restoreResolutions:r=!0,restoreBuildState:n=!0}={}){let a=this.configuration.get("installStatePath"),o;try{let l=await M5o(await Xf.xfs.readFilePromise(a));o=T9n.default.deserialize(l),this.installStateChecksum=r8.makeHash(l)}catch{r&&await this.applyLightResolution();return}t&&typeof o.linkersCustomData<"u"&&(this.linkersCustomData=o.linkersCustomData),n&&Object.assign(this,(0,Odr.pick)(o,Hdr.restoreBuildState)),r&&(o.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Odr.pick)(o,Hdr.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new k9n.ThrowReport}),await this.persistInstallStateFile()}async persist(){let t=(0,Mdr.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>t(()=>r.persistManifest()))])}async cacheCleanup({cache:t,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let n=new Set([".gitignore"]);if(!(0,F5o.isFolderInside)(t.cwd,this.cwd)||!await Xf.xfs.existsPromise(t.cwd))return null;let a=[];for(let l of await Xf.xfs.readdirPromise(t.cwd)){if(n.has(l))continue;let A=Xf.ppath.resolve(t.cwd,l);t.markedFiles.has(A)||(t.immutable?r.reportError(Jb.MessageName.IMMUTABLE_CACHE,`${qp.pretty(this.configuration,Xf.ppath.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(Xf.xfs.lstatPromise(A).then(async f=>(await Xf.xfs.removePromise(A),f.size))))}if(a.length===0)return null;let o=await Promise.all(a);return{count:a.length,size:o.reduce((l,A)=>l+A,0)}}};fM.Project=Ydr;function H5o({project:e,allDescriptors:t,allResolutions:r,allPackages:n,accessibleLocators:a=new Set,optionalBuilds:o=new Set,peerRequirements:l=new Map,peerWarnings:A=[],peerRequirementNodes:f=new Map,volatileDescriptors:I=new Set}){let C=new Map,b=[],E=new Map,N=new Map,B=new Map,F=new Map,Q=new Map,X=new Map(e.workspaces.map(ue=>{let de=ue.anchoredLocator.locatorHash,be=n.get(de);if(typeof be>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[de,ng.copyPackage(be)]})),ae=()=>{let ue=Xf.xfs.mktempSync(),de=Xf.ppath.join(ue,"stacktrace.log"),be=String(b.length+1).length,Se=b.map((De,k)=>`${`${k+1}.`.padStart(be," ")} ${ng.stringifyLocator(De)} -`).join("");throw Xf.xfs.writeFileSync(de,Se),Xf.xfs.detachTemp(ue),new Goe.ReportError(Jb.MessageName.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${QAt.npath.fromPortablePath(de)}`)},ne=ue=>{let de=r.get(ue.descriptorHash);if(typeof de>"u")throw new Error("Assertion failed: The resolution should have been registered");let be=n.get(de);if(!be)throw new Error("Assertion failed: The package could not be found");return be},ce=(ue,de,be,{top:Se,optional:De})=>{b.length>1e3&&ae(),b.push(de);let k=fe(ue,de,be,{top:Se,optional:De});return b.pop(),k},fe=(ue,de,be,{top:Se,optional:De})=>{if(De||o.delete(de.locatorHash),a.has(de.locatorHash))return;a.add(de.locatorHash);let k=n.get(de.locatorHash);if(!k)throw new Error(`Assertion failed: The package (${ng.prettyLocator(e.configuration,de)}) should have been registered`);let et=new Set,ct=new Map,Me=[],je=[],St=[],At=[];for(let Yt of Array.from(k.dependencies.values())){if(k.peerDependencies.has(Yt.identHash)&&k.locatorHash!==Se)continue;if(ng.isVirtualDescriptor(Yt))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");I.delete(Yt.descriptorHash);let Tr=De;if(!Tr){let Xt=k.dependenciesMeta.get(ng.stringifyIdent(Yt));if(typeof Xt<"u"){let lr=Xt.get(null);typeof lr<"u"&&lr.optional&&(Tr=!0)}}let Nr=r.get(Yt.descriptorHash);if(!Nr)throw new Error(`Assertion failed: The resolution (${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);let er=X.get(Nr)||n.get(Nr);if(!er)throw new Error(`Assertion failed: The package (${Nr}, resolved from ${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);if(er.peerDependencies.size===0){ce(Yt,er,new Map,{top:Se,optional:Tr});continue}let vt,xt,Zr=new Set,qt=new Map;Me.push(()=>{vt=ng.virtualizeDescriptor(Yt,de.locatorHash),xt=ng.virtualizePackage(er,de.locatorHash),k.dependencies.set(Yt.identHash,vt),r.set(vt.descriptorHash,xt.locatorHash),t.set(vt.descriptorHash,vt),n.set(xt.locatorHash,xt),m_.getSetWithDefault(F,xt.locatorHash).add(vt.descriptorHash),et.add(xt.locatorHash)}),je.push(()=>{Q.set(xt.locatorHash,qt);for(let Xt of xt.peerDependencies.values()){let cr=m_.getFactoryWithDefault(ct,Xt.identHash,()=>{let Ar=be.get(Xt.identHash)??null,qr=k.dependencies.get(Xt.identHash);return!qr&&ng.areIdentsEqual(de,Xt)&&(ue.identHash===de.identHash?qr=ue:(qr=ng.makeDescriptor(de,ue.range),t.set(qr.descriptorHash,qr),r.set(qr.descriptorHash,de.locatorHash),I.delete(qr.descriptorHash),Ar=null)),qr||(qr=ng.makeDescriptor(Xt,"missing:")),{subject:de,ident:Xt,provided:qr,root:!Ar,requests:new Map,hash:`p${r8.makeHash(de.locatorHash,Xt.identHash).slice(0,6)}`}}).provided;if(cr.range==="missing:"&&xt.dependencies.has(Xt.identHash)){xt.peerDependencies.delete(Xt.identHash);continue}if(qt.set(Xt.identHash,{requester:xt,descriptor:Xt,meta:xt.peerDependenciesMeta.get(ng.stringifyIdent(Xt)),children:new Map}),xt.dependencies.set(Xt.identHash,cr),ng.isVirtualDescriptor(cr)){let Ar=r.get(cr.descriptorHash);m_.getSetWithDefault(B,Ar).add(xt.locatorHash)}E.set(cr.identHash,cr),cr.range==="missing:"&&Zr.add(cr.identHash)}xt.dependencies=new Map(m_.sortMap(xt.dependencies,([Xt,lr])=>ng.stringifyIdent(lr)))}),St.push(()=>{if(!n.has(xt.locatorHash))return;let Xt=C.get(er.locatorHash);typeof Xt=="number"&&Xt>=2&&ae();let lr=C.get(er.locatorHash),cr=typeof lr<"u"?lr+1:1;C.set(er.locatorHash,cr),ce(vt,xt,qt,{top:Se,optional:Tr}),C.set(er.locatorHash,cr-1)}),At.push(()=>{let Xt=r.get(vt.descriptorHash);if(typeof Xt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let lr=Q.get(Xt);if(typeof lr>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let cr of ct.values()){let Ar=lr.get(cr.ident.identHash);Ar&&(cr.requests.set(vt.descriptorHash,Ar),f.set(cr.hash,cr),cr.root||be.get(cr.ident.identHash)?.children.set(vt.descriptorHash,Ar))}if(n.has(xt.locatorHash))for(let cr of Zr)xt.dependencies.delete(cr)})}for(let Yt of[...Me,...je])Yt();for(let Yt of et){et.delete(Yt);let Tr=n.get(Yt),Nr=r8.makeHash(ng.devirtualizeLocator(Tr).locatorHash,...Array.from(Tr.dependencies.values(),Zr=>{let qt=Zr.range!=="missing:"?r.get(Zr.descriptorHash):"missing:";if(typeof qt>"u")throw new Error(`Assertion failed: Expected the resolution for ${ng.prettyDescriptor(e.configuration,Zr)} to have been registered`);return qt===Se?`${qt} (top)`:qt})),er=N.get(Nr);if(typeof er>"u"){N.set(Nr,Tr);continue}let vt=m_.getSetWithDefault(F,er.locatorHash);for(let Zr of F.get(Tr.locatorHash)??[])r.set(Zr,er.locatorHash),vt.add(Zr);n.delete(Tr.locatorHash),a.delete(Tr.locatorHash),et.delete(Tr.locatorHash);let xt=B.get(Tr.locatorHash);if(xt!==void 0){let Zr=m_.getSetWithDefault(B,er.locatorHash);for(let qt of xt)Zr.add(qt),et.add(qt)}}for(let Yt of[...St,...At])Yt()};for(let ue of e.workspaces){let de=ue.anchoredLocator;I.delete(ue.anchoredDescriptor.descriptorHash),ce(ue.anchoredDescriptor,de,new Map,{top:de.locatorHash,optional:!1})}for(let ue of f.values()){if(!ue.root)continue;let de=n.get(ue.subject.locatorHash);if(typeof de>"u")continue;for(let Se of ue.requests.values()){let De=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),Se.requester.locatorHash).slice(0,6)}`;l.set(De,{subject:ue.subject.locatorHash,requested:ue.ident,rootRequester:Se.requester.locatorHash,allRequesters:Array.from(ng.allPeerRequests(Se),k=>k.requester.locatorHash)})}let be=[...ng.allPeerRequests(ue)];if(ue.provided.range!=="missing:"){let Se=ne(ue.provided),De=Se.version??"0.0.0",k=ct=>{if(ct.startsWith(XAt.WorkspaceResolver.protocol)){if(!e.tryWorkspaceByLocator(Se))return null;ct=ct.slice(XAt.WorkspaceResolver.protocol.length),(ct==="^"||ct==="~")&&(ct="*")}return ct},et=!0;for(let ct of be){let Me=k(ct.descriptor.range);if(Me===null){et=!1;continue}if(!JAt.satisfiesWithPrereleases(De,Me)){et=!1;let je=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),ct.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotCompatible,subject:de,requested:ue.ident,requester:ct.requester,version:De,hash:je,requirementCount:be.length})}}if(!et){let ct=be.map(Me=>k(Me.descriptor.range));A.push({type:n8.NodeNotCompatible,node:ue,range:ct.includes(null)?null:JAt.simplifyRanges(ct),hash:ue.hash})}}else{let Se=!0;for(let De of be)if(!De.meta?.optional){Se=!1;let k=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),De.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotProvided,subject:de,requested:ue.ident,requester:De.requester,hash:k})}Se||A.push({type:n8.NodeNotProvided,node:ue,hash:ue.hash})}}}function*Y5o(e){let t=new Map;if("children"in e)t.set(e,e);else for(let r of e.requests.values())t.set(r,r);for(let[r,n]of t){yield{request:r,root:n};for(let a of r.children.values())t.has(a)||t.set(a,n)}}function Q5o(e,t){let r=[],n=[],a=!1;for(let o of e.peerWarnings)if(!(o.type===n8.NotCompatible||o.type===n8.NotProvided)){if(!e.tryWorkspaceByLocator(o.node.subject)){a=!0;continue}if(o.type===n8.NodeNotCompatible){let l=e.storedResolutions.get(o.node.provided.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=e.storedPackages.get(l);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let f=m_.mapAndFind(Y5o(o.node),({request:b,root:E})=>JAt.satisfiesWithPrereleases(A.version??"0.0.0",b.descriptor.range)?m_.mapAndFind.skip:b===E?ng.prettyIdent(e.configuration,b.requester):`${ng.prettyIdent(e.configuration,b.requester)} (via ${ng.prettyIdent(e.configuration,E.requester)})`),I=[...ng.allPeerRequests(o.node)].length>1?"and other dependencies request":"requests",C=o.range?ng.prettyRange(e.configuration,o.range):qp.pretty(e.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${ng.prettyIdent(e.configuration,o.node.ident)} is listed by your project with version ${ng.prettyReference(e.configuration,A.version??"0.0.0")} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), which doesn't satisfy what ${f} ${I} (${C}).`)}if(o.type===n8.NodeNotProvided){let l=o.node.requests.size>1?" and other dependencies":"";n.push(`${ng.prettyLocator(e.configuration,o.node.subject)} doesn't provide ${ng.prettyIdent(e.configuration,o.node.ident)} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), requested by ${ng.prettyIdent(e.configuration,o.node.requests.values().next().value.requester)}${l}.`)}}t.startSectionSync({reportFooter:()=>{t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by your project; run ${qp.pretty(e.configuration,"yarn explain peer-requirements ",qp.Type.CODE)} for details, where ${qp.pretty(e.configuration,"",qp.Type.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let o of m_.sortMap(r,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.INCOMPATIBLE_PEER_DEPENDENCY,o);for(let o of m_.sortMap(n,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.MISSING_PEER_DEPENDENCY,o)}),a&&t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by dependencies; run ${qp.pretty(e.configuration,"yarn explain peer-requirements",qp.Type.CODE)} for details.`)}});var O9n=H(AIe=>{"use strict";Object.defineProperty(AIe,"__esModule",{value:!0});AIe.TelemetryManager=AIe.MetricName=void 0;AIe.derive=W9n;var KAt=(Pa(),vi(Va)),i8=no(),P9n=S5e(),X5o=KAt.__importStar(moe()),J5o=KAt.__importStar(Qgt()),UAt=KAt.__importStar(xW()),U5o=KAt.__importStar(n$()),s8;(function(e){e.VERSION="version",e.COMMAND_NAME="commandName",e.PLUGIN_NAME="pluginName",e.INSTALL_COUNT="installCount",e.PROJECT_COUNT="projectCount",e.WORKSPACE_COUNT="workspaceCount",e.DEPENDENCY_COUNT="dependencyCount",e.EXTENSION="packageExtension"})(s8||(AIe.MetricName=s8={}));function W9n(e){let n=Math.floor(e.timeNow/864e5),a=e.updateInterval*864e5,o=e.state.lastUpdate??e.timeNow+a+Math.floor(a*e.randomInitialInterval),l=o+a,A=e.state.lastTips??n*864e5,f=A+864e5+8*36e5-e.timeZone,I=l<=e.timeNow,C=f<=e.timeNow,b=null;return(I||C||!e.state.lastUpdate||!e.state.lastTips)&&(b={},b.lastUpdate=I?e.timeNow:o,b.lastTips=A,b.blocks=I?{}:e.state.blocks,b.displayedTips=e.state.displayedTips),{nextState:b,triggerUpdate:I,triggerTips:C,nextTips:C?n*864e5:A}}var Qdr=class{constructor(t,r){this.values=new Map,this.hits=new Map,this.enumerators=new Map,this.nextTips=0,this.displayedTips=[],this.shouldCommitTips=!1,this.configuration=t;let n=this.getRegistryPath();this.isNew=!i8.xfs.existsSync(n),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(t){let r=new Set(this.displayedTips),n=A=>A&&P9n.YarnVersion?U5o.satisfiesWithPrereleases(P9n.YarnVersion,A):!1,a=t.map((A,f)=>f).filter(A=>t[A]&&n(t[A]?.selector));if(a.length===0)return null;let o=a.filter(A=>!r.has(A));if(o.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],o=a.filter(f=>!r.has(f))}let l=o[Math.floor(Math.random()*o.length)];return this.displayedTips.push(l),this.commitTips(),t[l]}reportVersion(t){this.reportValue(s8.VERSION,t.replace(/-git\..*/,"-git"))}reportCommandName(t){this.reportValue(s8.COMMAND_NAME,t||"")}reportPluginName(t){this.reportValue(s8.PLUGIN_NAME,t)}reportProject(t){this.reportEnumerator(s8.PROJECT_COUNT,t)}reportInstall(t){this.reportHit(s8.INSTALL_COUNT,t)}reportPackageExtension(t){this.reportValue(s8.EXTENSION,t)}reportWorkspaceCount(t){this.reportValue(s8.WORKSPACE_COUNT,String(t))}reportDependencyCount(t){this.reportValue(s8.DEPENDENCY_COUNT,String(t))}reportValue(t,r){UAt.getSetWithDefault(this.values,t).add(r)}reportEnumerator(t,r){UAt.getSetWithDefault(this.enumerators,t).add(X5o.makeHash(r))}reportHit(t,r="*"){let n=UAt.getMapWithDefault(this.hits,t),a=UAt.getFactoryWithDefault(n,r,()=>0);n.set(r,a+1)}getRegistryPath(){let t=this.configuration.get("globalFolder");return i8.ppath.join(t,"telemetry.json")}sendReport(t){let r=this.getRegistryPath(),n;try{n=i8.xfs.readJsonSync(r)}catch{n={}}let{nextState:a,triggerUpdate:o,triggerTips:l,nextTips:A}=W9n({state:n,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=n.displayedTips??[],a!==null)try{i8.xfs.mkdirSync(i8.ppath.dirname(r),{recursive:!0}),i8.xfs.writeJsonSync(r,a)}catch{return!1}if(l&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),o){let f=n.blocks??{};if(Object.keys(f).length===0){let I=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${t}?ddsource=yarn`,C=b=>J5o.post(I,b,{configuration:this.configuration}).catch(()=>{});for(let[b,E]of Object.entries(n.blocks??{})){if(Object.keys(E).length===0)continue;let N=E;N.userId=b,N.reportType="primary";for(let Q of Object.keys(N.enumerators??{}))N.enumerators[Q]=N.enumerators[Q].length;C(N);let B=new Map,F=20;for(let[Q,X]of Object.entries(N.values))X.length>0&&B.set(Q,X.slice(0,F));for(;B.size>0;){let Q={};Q.userId=b,Q.reportType="secondary",Q.metrics={};for(let[X,ae]of B)Q.metrics[X]=ae.shift(),ae.length===0&&B.delete(X);C(Q)}}}}return!0}applyChanges(){let t=this.getRegistryPath(),r;try{r=i8.xfs.readJsonSync(t)}catch{r={}}let n=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},o=a[n]=a[n]??{};for(let l of this.hits.keys()){let A=o.hits=o.hits??{},f=A[l]=A[l]??{};for(let[I,C]of this.hits.get(l))f[I]=(f[I]??0)+C}for(let l of["values","enumerators"])for(let A of this[l].keys()){let f=o[l]=o[l]??{};f[A]=[...new Set([...f[A]??[],...this[l].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),i8.xfs.mkdirSync(i8.ppath.dirname(t),{recursive:!0}),i8.xfs.writeJsonSync(t,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};AIe.TelemetryManager=Qdr});var Bn=H(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.treeUtils=Rl.tgzUtils=Rl.structUtils=Rl.semverUtils=Rl.scriptUtils=Rl.nodeUtils=Rl.miscUtils=Rl.formatUtils=Rl.folderUtils=Rl.execUtils=Rl.httpUtils=Rl.hashUtils=Rl.PackageExtensionStatus=Rl.PackageExtensionType=Rl.LinkType=Rl.YarnVersion=Rl.Workspace=Rl.WorkspaceResolver=Rl.WorkspaceFetcher=Rl.VirtualFetcher=Rl.ThrowReport=Rl.TelemetryManager=Rl.reportOptionDeprecations=Rl.StreamReport=Rl.Report=Rl.ReportError=Rl.InstallMode=Rl.Project=Rl.PeerWarningType=Rl.LOCKFILE_VERSION=Rl.MultiFetcher=Rl.stringifyMessageName=Rl.parseMessageName=Rl.MessageName=Rl.Manifest=Rl.LockfileResolver=Rl.LightReport=Rl.LegacyMigrationResolver=Rl.BuildDirectiveType=Rl.WindowsLinkType=Rl.DurationUnit=Rl.SettingsType=Rl.FormatType=Rl.Configuration=Rl.TAG_REGEXP=Rl.LEGACY_PLUGINS=Rl.DEFAULT_RC_FILENAME=Rl.Cache=Rl.CACHE_CHECKPOINT=Rl.CACHE_VERSION=void 0;var IM=(Pa(),vi(Va)),K5o=IM.__importStar(Jgt());Rl.execUtils=K5o;var j5o=IM.__importStar(Agt());Rl.folderUtils=j5o;var z5o=IM.__importStar(rM());Rl.formatUtils=z5o;var q5o=IM.__importStar(moe());Rl.hashUtils=q5o;var $5o=IM.__importStar(Qgt());Rl.httpUtils=$5o;var eMo=IM.__importStar(xW());Rl.miscUtils=eMo;var tMo=IM.__importStar(Xgt());Rl.nodeUtils=tMo;var rMo=IM.__importStar(HAr());Rl.scriptUtils=rMo;var nMo=IM.__importStar(n$());Rl.semverUtils=nMo;var iMo=IM.__importStar(uG());Rl.structUtils=iMo;var sMo=IM.__importStar(yLn());Rl.tgzUtils=sMo;var oMo=IM.__importStar(wLn());Rl.treeUtils=oMo;var Xdr=adr();Object.defineProperty(Rl,"CACHE_VERSION",{enumerable:!0,get:function(){return Xdr.CACHE_VERSION}});Object.defineProperty(Rl,"CACHE_CHECKPOINT",{enumerable:!0,get:function(){return Xdr.CACHE_CHECKPOINT}});Object.defineProperty(Rl,"Cache",{enumerable:!0,get:function(){return Xdr.Cache}});var Jdr=I5e();Object.defineProperty(Rl,"DEFAULT_RC_FILENAME",{enumerable:!0,get:function(){return Jdr.DEFAULT_RC_FILENAME}});Object.defineProperty(Rl,"LEGACY_PLUGINS",{enumerable:!0,get:function(){return Jdr.LEGACY_PLUGINS}});Object.defineProperty(Rl,"TAG_REGEXP",{enumerable:!0,get:function(){return Jdr.TAG_REGEXP}});var K5e=I5e();Object.defineProperty(Rl,"Configuration",{enumerable:!0,get:function(){return K5e.Configuration}});Object.defineProperty(Rl,"FormatType",{enumerable:!0,get:function(){return K5e.FormatType}});Object.defineProperty(Rl,"SettingsType",{enumerable:!0,get:function(){return K5e.SettingsType}});Object.defineProperty(Rl,"DurationUnit",{enumerable:!0,get:function(){return K5e.DurationUnit}});Object.defineProperty(Rl,"WindowsLinkType",{enumerable:!0,get:function(){return K5e.WindowsLinkType}});var aMo=cdr();Object.defineProperty(Rl,"BuildDirectiveType",{enumerable:!0,get:function(){return aMo.BuildDirectiveType}});var cMo=udr();Object.defineProperty(Rl,"LegacyMigrationResolver",{enumerable:!0,get:function(){return cMo.LegacyMigrationResolver}});var lMo=ZLn();Object.defineProperty(Rl,"LightReport",{enumerable:!0,get:function(){return lMo.LightReport}});var uMo=ddr();Object.defineProperty(Rl,"LockfileResolver",{enumerable:!0,get:function(){return uMo.LockfileResolver}});var gMo=uve();Object.defineProperty(Rl,"Manifest",{enumerable:!0,get:function(){return gMo.Manifest}});var Udr=M9();Object.defineProperty(Rl,"MessageName",{enumerable:!0,get:function(){return Udr.MessageName}});Object.defineProperty(Rl,"parseMessageName",{enumerable:!0,get:function(){return Udr.parseMessageName}});Object.defineProperty(Rl,"stringifyMessageName",{enumerable:!0,get:function(){return Udr.stringifyMessageName}});var AMo=Cur();Object.defineProperty(Rl,"MultiFetcher",{enumerable:!0,get:function(){return AMo.MultiFetcher}});var jAt=V9n();Object.defineProperty(Rl,"LOCKFILE_VERSION",{enumerable:!0,get:function(){return jAt.LOCKFILE_VERSION}});Object.defineProperty(Rl,"PeerWarningType",{enumerable:!0,get:function(){return jAt.PeerWarningType}});Object.defineProperty(Rl,"Project",{enumerable:!0,get:function(){return jAt.Project}});Object.defineProperty(Rl,"InstallMode",{enumerable:!0,get:function(){return jAt.InstallMode}});var M9n=sM();Object.defineProperty(Rl,"ReportError",{enumerable:!0,get:function(){return M9n.ReportError}});Object.defineProperty(Rl,"Report",{enumerable:!0,get:function(){return M9n.Report}});var H9n=v5e();Object.defineProperty(Rl,"StreamReport",{enumerable:!0,get:function(){return H9n.StreamReport}});Object.defineProperty(Rl,"reportOptionDeprecations",{enumerable:!0,get:function(){return H9n.reportOptionDeprecations}});var dMo=O9n();Object.defineProperty(Rl,"TelemetryManager",{enumerable:!0,get:function(){return dMo.TelemetryManager}});var pMo=Ldr();Object.defineProperty(Rl,"ThrowReport",{enumerable:!0,get:function(){return pMo.ThrowReport}});var fMo=vur();Object.defineProperty(Rl,"VirtualFetcher",{enumerable:!0,get:function(){return fMo.VirtualFetcher}});var IMo=wur();Object.defineProperty(Rl,"WorkspaceFetcher",{enumerable:!0,get:function(){return IMo.WorkspaceFetcher}});var hMo=Kfe();Object.defineProperty(Rl,"WorkspaceResolver",{enumerable:!0,get:function(){return hMo.WorkspaceResolver}});var mMo=Pdr();Object.defineProperty(Rl,"Workspace",{enumerable:!0,get:function(){return mMo.Workspace}});var CMo=S5e();Object.defineProperty(Rl,"YarnVersion",{enumerable:!0,get:function(){return CMo.YarnVersion}});var Kdr=Qfe();Object.defineProperty(Rl,"LinkType",{enumerable:!0,get:function(){return Kdr.LinkType}});Object.defineProperty(Rl,"PackageExtensionType",{enumerable:!0,get:function(){return Kdr.PackageExtensionType}});Object.defineProperty(Rl,"PackageExtensionStatus",{enumerable:!0,get:function(){return Kdr.PackageExtensionStatus}})});var zdr=H(zAt=>{"use strict";Object.defineProperty(zAt,"__esModule",{value:!0});zAt.WorkspaceRequiredError=void 0;var _Mo=Bn(),Y9n=no(),yMo=($c(),vi(rg)),jdr=class extends yMo.UsageError{constructor(t,r){let n=Y9n.ppath.relative(t,r),a=Y9n.ppath.join(t,_Mo.Manifest.fileName);super(`This command can only be run from within a workspace of your project (${n} isn't a workspace of ${a}).`)}};zAt.WorkspaceRequiredError=jdr});var qdr=H(qAt=>{"use strict";Object.defineProperty(qAt,"__esModule",{value:!0});qAt.getDynamicLibs=void 0;var d$=(Pa(),vi(Va)),bMo=d$.__importStar(el()),EMo=d$.__importStar(Bn()),SMo=d$.__importStar(no()),vMo=d$.__importStar(zK()),BMo=d$.__importStar(TW()),wMo=d$.__importStar(_5e()),TMo=d$.__importStar(($c(),vi(rg))),RMo=d$.__importStar(UC()),NMo=d$.__importStar((CZ(),vi(mZ))),DMo=()=>new Map([["@yarnpkg/cli",bMo],["@yarnpkg/core",EMo],["@yarnpkg/fslib",SMo],["@yarnpkg/libzip",vMo],["@yarnpkg/parsers",BMo],["@yarnpkg/shell",wMo],["clipanion",TMo],["semver",RMo],["typanion",NMo]]);qAt.getDynamicLibs=DMo});var $dr=H((Z7l,kMo)=>{kMo.exports={name:"@yarnpkg/cli",version:"4.14.1",license:"BSD-2-Clause",main:"./lib/index.js",exports:{".":"./lib/index.js","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"^4.7.0","@yarnpkg/fslib":"^3.1.5","@yarnpkg/libzip":"^3.2.2","@yarnpkg/parsers":"^3.0.3","@yarnpkg/plugin-catalog":"^1.0.2","@yarnpkg/plugin-compat":"^4.0.12","@yarnpkg/plugin-constraints":"^4.0.5","@yarnpkg/plugin-dlx":"^4.0.2","@yarnpkg/plugin-essentials":"^4.5.0","@yarnpkg/plugin-exec":"^3.1.0","@yarnpkg/plugin-file":"^3.0.2","@yarnpkg/plugin-git":"^3.2.0","@yarnpkg/plugin-github":"^3.0.2","@yarnpkg/plugin-http":"^3.0.3","@yarnpkg/plugin-init":"^4.1.2","@yarnpkg/plugin-interactive-tools":"^4.1.0","@yarnpkg/plugin-jsr":"^1.1.1","@yarnpkg/plugin-link":"^3.0.2","@yarnpkg/plugin-nm":"^4.0.8","@yarnpkg/plugin-npm":"^3.5.0","@yarnpkg/plugin-npm-cli":"^4.4.1","@yarnpkg/plugin-pack":"^4.0.4","@yarnpkg/plugin-patch":"^4.0.3","@yarnpkg/plugin-pnp":"^4.1.5","@yarnpkg/plugin-pnpm":"^2.1.2","@yarnpkg/plugin-stage":"^4.0.2","@yarnpkg/plugin-typescript":"^4.1.3","@yarnpkg/plugin-version":"^4.2.0","@yarnpkg/plugin-workspace-tools":"^4.1.7","@yarnpkg/shell":"^4.1.3","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"^4.2.3","@yarnpkg/monorepo":"^0.0.0","@yarnpkg/pnpify":"^4.1.6"},peerDependencies:{"@yarnpkg/core":"^4.7.0"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var tpr=H(epr=>{"use strict";Object.defineProperty(epr,"__esModule",{value:!0});epr.getPluginConfiguration=ZMo;var xMo=(Pa(),vi(Va)),GMo=xMo.__importDefault($dr()),FMo=qdr();function ZMo(){let e=new Set;for(let r of GMo.default["@yarnpkg/builder"].bundles.standard)e.add(r);let t=(0,FMo.getDynamicLibs)();for(let r of e)t.set(r,wt(r).default);return{plugins:e,modules:t}}});var Q9n=H(rpr=>{"use strict";Object.defineProperty(rpr,"__esModule",{value:!0});rpr.openWorkspace=PMo;var LMo=Bn(),VMo=zdr();async function PMo(e,t){let{project:r,workspace:n}=await LMo.Project.find(e,t);if(!n)throw new VMo.WorkspaceRequiredError(r.cwd,t);return n}});var npr=H($At=>{"use strict";Object.defineProperty($At,"__esModule",{value:!0});$At.pluginCommands=void 0;$At.pluginCommands=new Map([])});var K9n=H(edt=>{"use strict";Object.defineProperty(edt,"__esModule",{value:!0});edt.getCli=KMo;edt.runExit=jMo;var p$=Bn(),IX=no(),WMo=wt("child_process"),OMo=Nfe(),Lve=($c(),vi(rg)),MMo=npr(),HMo=tpr();function X9n({cwd:e,pluginConfiguration:t}){let r=new Lve.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:p$.YarnVersion??""});return Object.assign(r,{defaultContext:{...Lve.Cli.defaultContext,cwd:e,plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function YMo(e){if(p$.miscUtils.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,n=">=18.12.0";if(p$.semverUtils.satisfiesWithPrereleases(r,n))return!0;let a=new Lve.UsageError(`This tool requires a Node version compatible with ${n} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Lve.Cli.defaultContext.stdout.write(e.error(a)),!1}async function J9n({selfPath:e,pluginConfiguration:t}){return await p$.Configuration.find(IX.npath.toPortablePath(process.cwd()),t,{strict:!1,usePathCheck:e})}function QMo(e,t,{yarnPath:r}){if(!IX.xfs.existsSync(r))return e.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let n={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,WMo.execFileSync)(process.execPath,[IX.npath.fromPortablePath(r),...t],n)}catch(a){return a.status??1}return 0}function XMo(e,t){let r=null,n=t;return t.length>=2&&t[0]==="--cwd"?(r=IX.npath.toPortablePath(t[1]),n=t.slice(2)):t.length>=1&&t[0].startsWith("--cwd=")?(r=IX.npath.toPortablePath(t[0].slice(6)),n=t.slice(1)):t[0]==="add"&&t[t.length-2]==="--cwd"&&(r=IX.npath.toPortablePath(t[t.length-1]),n=t.slice(0,t.length-2)),e.defaultContext.cwd=r!==null?IX.ppath.resolve(r):IX.ppath.cwd(),n}function JMo(e,{configuration:t}){if(!t.get("enableTelemetry")||OMo.isCI||!process.stdout.isTTY)return;p$.Configuration.telemetry=new p$.TelemetryManager(t,"puba9cdc10ec5790a2cf4969dd413a47270");let n=/^@yarnpkg\/plugin-(.*)$/;for(let a of t.plugins.keys())MMo.pluginCommands.has(a.match(n)?.[1]??"")&&p$.Configuration.telemetry?.reportPluginName(a);e.binaryVersion&&p$.Configuration.telemetry.reportVersion(e.binaryVersion)}function U9n(e,{configuration:t}){for(let r of t.plugins.values())for(let n of r.commands||[])e.register(n)}async function UMo(e,t,{selfPath:r,pluginConfiguration:n}){if(!YMo(e))return 1;let a=await J9n({selfPath:r,pluginConfiguration:n}),o=a.get("yarnPath"),l=a.get("ignorePath");if(o&&!l)return QMo(e,t,{yarnPath:o});delete process.env.YARN_IGNORE_PATH;let A=XMo(e,t);JMo(e,{configuration:a}),U9n(e,{configuration:a});let f=e.process(A,e.defaultContext);return f.help||p$.Configuration.telemetry?.reportCommandName(f.path.join(" ")),await e.run(f,e.defaultContext)}async function KMo({cwd:e=IX.ppath.cwd(),pluginConfiguration:t=(0,HMo.getPluginConfiguration)()}={}){let r=X9n({cwd:e,pluginConfiguration:t}),n=await J9n({pluginConfiguration:t,selfPath:null});return U9n(r,{configuration:n}),r}async function jMo(e,{cwd:t=IX.ppath.cwd(),selfPath:r,pluginConfiguration:n}){let a=X9n({cwd:t,pluginConfiguration:n});function o(){Lve.Cli.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. -Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",o);try{process.exitCode=42,process.exitCode=await UMo(a,e,{selfPath:r,pluginConfiguration:n})}catch(l){Lve.Cli.defaultContext.stdout.write(a.error(l)),process.exitCode=1}finally{process.off("beforeExit",o),await IX.xfs.rmtempPromise()}}});var el=H(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.pluginCommands=jN.runExit=jN.getCli=jN.openWorkspace=jN.getPluginConfiguration=jN.getDynamicLibs=jN.WorkspaceRequiredError=jN.BaseCommand=void 0;var zMo=$yn();Object.defineProperty(jN,"BaseCommand",{enumerable:!0,get:function(){return zMo.BaseCommand}});var qMo=zdr();Object.defineProperty(jN,"WorkspaceRequiredError",{enumerable:!0,get:function(){return qMo.WorkspaceRequiredError}});var $Mo=qdr();Object.defineProperty(jN,"getDynamicLibs",{enumerable:!0,get:function(){return $Mo.getDynamicLibs}});var eHo=tpr();Object.defineProperty(jN,"getPluginConfiguration",{enumerable:!0,get:function(){return eHo.getPluginConfiguration}});var tHo=Q9n();Object.defineProperty(jN,"openWorkspace",{enumerable:!0,get:function(){return tHo.openWorkspace}});var j9n=K9n();Object.defineProperty(jN,"getCli",{enumerable:!0,get:function(){return j9n.getCli}});Object.defineProperty(jN,"runExit",{enumerable:!0,get:function(){return j9n.runExit}});var rHo=npr();Object.defineProperty(jN,"pluginCommands",{enumerable:!0,get:function(){return rHo.pluginCommands}})});var gVn=H((rzl,uVn)=>{"use strict";var aVn=wt("stream").PassThrough,cVn=wt("stream").Writable,lVn=wt("util");lVn.inherits(cpr,aVn);lVn.inherits(lpr,cVn);function cpr(e,t){aVn.call(this,t),this.factory=e,this.opts=t}cpr.prototype._flush=function(e){var t=this.factory();t.pipe(new lpr(this,this.opts)).on("finish",e),t.resume()};function lpr(e,t){cVn.call(this,t),this.target=e}lpr.prototype._write=function(e,t,r){this.target.push(e),r()};function apr(e,t){t=t||{};var r;return typeof e=="function"?r=e:(e.pause(),r=function(){return e}),new cpr(r,t)}apr.obj=function(e,t){return t=t||{},t.objectMode=!0,apr(e,t)};uVn.exports=apr});var pVn=bc(()=>{});function gpr(e,t){return e.map(r=>r.trim()).filter(Boolean).join(t)}function cHo(e,t){if(!e)return fVn;let r=gpr(e,"|");return t?t(r):new RegExp(`^[\\s|*]*(${r})[:\\s]+(.*)`,"i")}function lHo(e,t){if(!e)return fVn;let r=t?"g":"gi";return new RegExp(`(?:.*?)??\\s*([\\w-\\.\\/]*?)??(${gpr(e,"|")})([\\w-]*\\d+)`,r)}function uHo(e){if(!e)return/()(.+)/gi;let t=gpr(e,"|");return new RegExp(`(${t})(?:\\s+(.*?))(?=(?:${t})|$)`,"gi")}function IVn(e={}){let t=cHo(e.noteKeywords,e.notesPattern),r=lHo(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=uHo(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}var fVn,hVn=bc(()=>{fVn=/(?!.*)/});function q5e(e){let t=e.match(/[^\r\n]/);if(typeof t?.index!="number")return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` +`).join("");throw Xf.xfs.writeFileSync(de,Se),Xf.xfs.detachTemp(ue),new Goe.ReportError(Jb.MessageName.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${QAt.npath.fromPortablePath(de)}`)},ne=ue=>{let de=r.get(ue.descriptorHash);if(typeof de>"u")throw new Error("Assertion failed: The resolution should have been registered");let be=n.get(de);if(!be)throw new Error("Assertion failed: The package could not be found");return be},ce=(ue,de,be,{top:Se,optional:De})=>{b.length>1e3&&ae(),b.push(de);let k=fe(ue,de,be,{top:Se,optional:De});return b.pop(),k},fe=(ue,de,be,{top:Se,optional:De})=>{if(De||o.delete(de.locatorHash),a.has(de.locatorHash))return;a.add(de.locatorHash);let k=n.get(de.locatorHash);if(!k)throw new Error(`Assertion failed: The package (${ng.prettyLocator(e.configuration,de)}) should have been registered`);let et=new Set,ct=new Map,Me=[],je=[],St=[],At=[];for(let Yt of Array.from(k.dependencies.values())){if(k.peerDependencies.has(Yt.identHash)&&k.locatorHash!==Se)continue;if(ng.isVirtualDescriptor(Yt))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");I.delete(Yt.descriptorHash);let Tr=De;if(!Tr){let Xt=k.dependenciesMeta.get(ng.stringifyIdent(Yt));if(typeof Xt<"u"){let lr=Xt.get(null);typeof lr<"u"&&lr.optional&&(Tr=!0)}}let Nr=r.get(Yt.descriptorHash);if(!Nr)throw new Error(`Assertion failed: The resolution (${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);let er=X.get(Nr)||n.get(Nr);if(!er)throw new Error(`Assertion failed: The package (${Nr}, resolved from ${ng.prettyDescriptor(e.configuration,Yt)}) should have been registered`);if(er.peerDependencies.size===0){ce(Yt,er,new Map,{top:Se,optional:Tr});continue}let vt,xt,Zr=new Set,qt=new Map;Me.push(()=>{vt=ng.virtualizeDescriptor(Yt,de.locatorHash),xt=ng.virtualizePackage(er,de.locatorHash),k.dependencies.set(Yt.identHash,vt),r.set(vt.descriptorHash,xt.locatorHash),t.set(vt.descriptorHash,vt),n.set(xt.locatorHash,xt),m_.getSetWithDefault(F,xt.locatorHash).add(vt.descriptorHash),et.add(xt.locatorHash)}),je.push(()=>{Q.set(xt.locatorHash,qt);for(let Xt of xt.peerDependencies.values()){let cr=m_.getFactoryWithDefault(ct,Xt.identHash,()=>{let Ar=be.get(Xt.identHash)??null,qr=k.dependencies.get(Xt.identHash);return!qr&&ng.areIdentsEqual(de,Xt)&&(ue.identHash===de.identHash?qr=ue:(qr=ng.makeDescriptor(de,ue.range),t.set(qr.descriptorHash,qr),r.set(qr.descriptorHash,de.locatorHash),I.delete(qr.descriptorHash),Ar=null)),qr||(qr=ng.makeDescriptor(Xt,"missing:")),{subject:de,ident:Xt,provided:qr,root:!Ar,requests:new Map,hash:`p${r8.makeHash(de.locatorHash,Xt.identHash).slice(0,6)}`}}).provided;if(cr.range==="missing:"&&xt.dependencies.has(Xt.identHash)){xt.peerDependencies.delete(Xt.identHash);continue}if(qt.set(Xt.identHash,{requester:xt,descriptor:Xt,meta:xt.peerDependenciesMeta.get(ng.stringifyIdent(Xt)),children:new Map}),xt.dependencies.set(Xt.identHash,cr),ng.isVirtualDescriptor(cr)){let Ar=r.get(cr.descriptorHash);m_.getSetWithDefault(B,Ar).add(xt.locatorHash)}E.set(cr.identHash,cr),cr.range==="missing:"&&Zr.add(cr.identHash)}xt.dependencies=new Map(m_.sortMap(xt.dependencies,([Xt,lr])=>ng.stringifyIdent(lr)))}),St.push(()=>{if(!n.has(xt.locatorHash))return;let Xt=C.get(er.locatorHash);typeof Xt=="number"&&Xt>=2&&ae();let lr=C.get(er.locatorHash),cr=typeof lr<"u"?lr+1:1;C.set(er.locatorHash,cr),ce(vt,xt,qt,{top:Se,optional:Tr}),C.set(er.locatorHash,cr-1)}),At.push(()=>{let Xt=r.get(vt.descriptorHash);if(typeof Xt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let lr=Q.get(Xt);if(typeof lr>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let cr of ct.values()){let Ar=lr.get(cr.ident.identHash);Ar&&(cr.requests.set(vt.descriptorHash,Ar),f.set(cr.hash,cr),cr.root||be.get(cr.ident.identHash)?.children.set(vt.descriptorHash,Ar))}if(n.has(xt.locatorHash))for(let cr of Zr)xt.dependencies.delete(cr)})}for(let Yt of[...Me,...je])Yt();for(let Yt of et){et.delete(Yt);let Tr=n.get(Yt),Nr=r8.makeHash(ng.devirtualizeLocator(Tr).locatorHash,...Array.from(Tr.dependencies.values(),Zr=>{let qt=Zr.range!=="missing:"?r.get(Zr.descriptorHash):"missing:";if(typeof qt>"u")throw new Error(`Assertion failed: Expected the resolution for ${ng.prettyDescriptor(e.configuration,Zr)} to have been registered`);return qt===Se?`${qt} (top)`:qt})),er=N.get(Nr);if(typeof er>"u"){N.set(Nr,Tr);continue}let vt=m_.getSetWithDefault(F,er.locatorHash);for(let Zr of F.get(Tr.locatorHash)??[])r.set(Zr,er.locatorHash),vt.add(Zr);n.delete(Tr.locatorHash),a.delete(Tr.locatorHash),et.delete(Tr.locatorHash);let xt=B.get(Tr.locatorHash);if(xt!==void 0){let Zr=m_.getSetWithDefault(B,er.locatorHash);for(let qt of xt)Zr.add(qt),et.add(qt)}}for(let Yt of[...St,...At])Yt()};for(let ue of e.workspaces){let de=ue.anchoredLocator;I.delete(ue.anchoredDescriptor.descriptorHash),ce(ue.anchoredDescriptor,de,new Map,{top:de.locatorHash,optional:!1})}for(let ue of f.values()){if(!ue.root)continue;let de=n.get(ue.subject.locatorHash);if(typeof de>"u")continue;for(let Se of ue.requests.values()){let De=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),Se.requester.locatorHash).slice(0,6)}`;l.set(De,{subject:ue.subject.locatorHash,requested:ue.ident,rootRequester:Se.requester.locatorHash,allRequesters:Array.from(ng.allPeerRequests(Se),k=>k.requester.locatorHash)})}let be=[...ng.allPeerRequests(ue)];if(ue.provided.range!=="missing:"){let Se=ne(ue.provided),De=Se.version??"0.0.0",k=ct=>{if(ct.startsWith(XAt.WorkspaceResolver.protocol)){if(!e.tryWorkspaceByLocator(Se))return null;ct=ct.slice(XAt.WorkspaceResolver.protocol.length),(ct==="^"||ct==="~")&&(ct="*")}return ct},et=!0;for(let ct of be){let Me=k(ct.descriptor.range);if(Me===null){et=!1;continue}if(!JAt.satisfiesWithPrereleases(De,Me)){et=!1;let je=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),ct.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotCompatible,subject:de,requested:ue.ident,requester:ct.requester,version:De,hash:je,requirementCount:be.length})}}if(!et){let ct=be.map(Me=>k(Me.descriptor.range));A.push({type:n8.NodeNotCompatible,node:ue,range:ct.includes(null)?null:JAt.simplifyRanges(ct),hash:ue.hash})}}else{let Se=!0;for(let De of be)if(!De.meta?.optional){Se=!1;let k=`p${r8.makeHash(ue.subject.locatorHash,ng.stringifyIdent(ue.ident),De.requester.locatorHash).slice(0,6)}`;A.push({type:n8.NotProvided,subject:de,requested:ue.ident,requester:De.requester,hash:k})}Se||A.push({type:n8.NodeNotProvided,node:ue,hash:ue.hash})}}}function*Y5o(e){let t=new Map;if("children"in e)t.set(e,e);else for(let r of e.requests.values())t.set(r,r);for(let[r,n]of t){yield{request:r,root:n};for(let a of r.children.values())t.has(a)||t.set(a,n)}}function Q5o(e,t){let r=[],n=[],a=!1;for(let o of e.peerWarnings)if(!(o.type===n8.NotCompatible||o.type===n8.NotProvided)){if(!e.tryWorkspaceByLocator(o.node.subject)){a=!0;continue}if(o.type===n8.NodeNotCompatible){let l=e.storedResolutions.get(o.node.provided.descriptorHash);if(typeof l>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=e.storedPackages.get(l);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let f=m_.mapAndFind(Y5o(o.node),({request:b,root:E})=>JAt.satisfiesWithPrereleases(A.version??"0.0.0",b.descriptor.range)?m_.mapAndFind.skip:b===E?ng.prettyIdent(e.configuration,b.requester):`${ng.prettyIdent(e.configuration,b.requester)} (via ${ng.prettyIdent(e.configuration,E.requester)})`),I=[...ng.allPeerRequests(o.node)].length>1?"and other dependencies request":"requests",C=o.range?ng.prettyRange(e.configuration,o.range):qp.pretty(e.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${ng.prettyIdent(e.configuration,o.node.ident)} is listed by your project with version ${ng.prettyReference(e.configuration,A.version??"0.0.0")} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), which doesn't satisfy what ${f} ${I} (${C}).`)}if(o.type===n8.NodeNotProvided){let l=o.node.requests.size>1?" and other dependencies":"";n.push(`${ng.prettyLocator(e.configuration,o.node.subject)} doesn't provide ${ng.prettyIdent(e.configuration,o.node.ident)} (${qp.pretty(e.configuration,o.hash,qp.Type.CODE)}), requested by ${ng.prettyIdent(e.configuration,o.node.requests.values().next().value.requester)}${l}.`)}}t.startSectionSync({reportFooter:()=>{t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by your project; run ${qp.pretty(e.configuration,"yarn explain peer-requirements ",qp.Type.CODE)} for details, where ${qp.pretty(e.configuration,"",qp.Type.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let o of m_.sortMap(r,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.INCOMPATIBLE_PEER_DEPENDENCY,o);for(let o of m_.sortMap(n,l=>qp.stripAnsi(l)))t.reportWarning(Jb.MessageName.MISSING_PEER_DEPENDENCY,o)}),a&&t.reportWarning(Jb.MessageName.EXPLAIN_PEER_DEPENDENCIES_CTA,`Some peer dependencies are incorrectly met by dependencies; run ${qp.pretty(e.configuration,"yarn explain peer-requirements",qp.Type.CODE)} for details.`)}});var O9n=H(AIe=>{"use strict";Object.defineProperty(AIe,"__esModule",{value:!0});AIe.TelemetryManager=AIe.MetricName=void 0;AIe.derive=W9n;var KAt=(Pa(),vi(Va)),i8=no(),P9n=S5e(),X5o=KAt.__importStar(moe()),J5o=KAt.__importStar(Qgt()),UAt=KAt.__importStar(xW()),U5o=KAt.__importStar(n$()),s8;(function(e){e.VERSION="version",e.COMMAND_NAME="commandName",e.PLUGIN_NAME="pluginName",e.INSTALL_COUNT="installCount",e.PROJECT_COUNT="projectCount",e.WORKSPACE_COUNT="workspaceCount",e.DEPENDENCY_COUNT="dependencyCount",e.EXTENSION="packageExtension"})(s8||(AIe.MetricName=s8={}));function W9n(e){let n=Math.floor(e.timeNow/864e5),a=e.updateInterval*864e5,o=e.state.lastUpdate??e.timeNow+a+Math.floor(a*e.randomInitialInterval),l=o+a,A=e.state.lastTips??n*864e5,f=A+864e5+8*36e5-e.timeZone,I=l<=e.timeNow,C=f<=e.timeNow,b=null;return(I||C||!e.state.lastUpdate||!e.state.lastTips)&&(b={},b.lastUpdate=I?e.timeNow:o,b.lastTips=A,b.blocks=I?{}:e.state.blocks,b.displayedTips=e.state.displayedTips),{nextState:b,triggerUpdate:I,triggerTips:C,nextTips:C?n*864e5:A}}var Qdr=class{constructor(t,r){this.values=new Map,this.hits=new Map,this.enumerators=new Map,this.nextTips=0,this.displayedTips=[],this.shouldCommitTips=!1,this.configuration=t;let n=this.getRegistryPath();this.isNew=!i8.xfs.existsSync(n),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(t){let r=new Set(this.displayedTips),n=A=>A&&P9n.YarnVersion?U5o.satisfiesWithPrereleases(P9n.YarnVersion,A):!1,a=t.map((A,f)=>f).filter(A=>t[A]&&n(t[A]?.selector));if(a.length===0)return null;let o=a.filter(A=>!r.has(A));if(o.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],o=a.filter(f=>!r.has(f))}let l=o[Math.floor(Math.random()*o.length)];return this.displayedTips.push(l),this.commitTips(),t[l]}reportVersion(t){this.reportValue(s8.VERSION,t.replace(/-git\..*/,"-git"))}reportCommandName(t){this.reportValue(s8.COMMAND_NAME,t||"")}reportPluginName(t){this.reportValue(s8.PLUGIN_NAME,t)}reportProject(t){this.reportEnumerator(s8.PROJECT_COUNT,t)}reportInstall(t){this.reportHit(s8.INSTALL_COUNT,t)}reportPackageExtension(t){this.reportValue(s8.EXTENSION,t)}reportWorkspaceCount(t){this.reportValue(s8.WORKSPACE_COUNT,String(t))}reportDependencyCount(t){this.reportValue(s8.DEPENDENCY_COUNT,String(t))}reportValue(t,r){UAt.getSetWithDefault(this.values,t).add(r)}reportEnumerator(t,r){UAt.getSetWithDefault(this.enumerators,t).add(X5o.makeHash(r))}reportHit(t,r="*"){let n=UAt.getMapWithDefault(this.hits,t),a=UAt.getFactoryWithDefault(n,r,()=>0);n.set(r,a+1)}getRegistryPath(){let t=this.configuration.get("globalFolder");return i8.ppath.join(t,"telemetry.json")}sendReport(t){let r=this.getRegistryPath(),n;try{n=i8.xfs.readJsonSync(r)}catch{n={}}let{nextState:a,triggerUpdate:o,triggerTips:l,nextTips:A}=W9n({state:n,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=n.displayedTips??[],a!==null)try{i8.xfs.mkdirSync(i8.ppath.dirname(r),{recursive:!0}),i8.xfs.writeJsonSync(r,a)}catch{return!1}if(l&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),o){let f=n.blocks??{};if(Object.keys(f).length===0){let I=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${t}?ddsource=yarn`,C=b=>J5o.post(I,b,{configuration:this.configuration}).catch(()=>{});for(let[b,E]of Object.entries(n.blocks??{})){if(Object.keys(E).length===0)continue;let N=E;N.userId=b,N.reportType="primary";for(let Q of Object.keys(N.enumerators??{}))N.enumerators[Q]=N.enumerators[Q].length;C(N);let B=new Map,F=20;for(let[Q,X]of Object.entries(N.values))X.length>0&&B.set(Q,X.slice(0,F));for(;B.size>0;){let Q={};Q.userId=b,Q.reportType="secondary",Q.metrics={};for(let[X,ae]of B)Q.metrics[X]=ae.shift(),ae.length===0&&B.delete(X);C(Q)}}}}return!0}applyChanges(){let t=this.getRegistryPath(),r;try{r=i8.xfs.readJsonSync(t)}catch{r={}}let n=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},o=a[n]=a[n]??{};for(let l of this.hits.keys()){let A=o.hits=o.hits??{},f=A[l]=A[l]??{};for(let[I,C]of this.hits.get(l))f[I]=(f[I]??0)+C}for(let l of["values","enumerators"])for(let A of this[l].keys()){let f=o[l]=o[l]??{};f[A]=[...new Set([...f[A]??[],...this[l].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),i8.xfs.mkdirSync(i8.ppath.dirname(t),{recursive:!0}),i8.xfs.writeJsonSync(t,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};AIe.TelemetryManager=Qdr});var Bn=H(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.treeUtils=Rl.tgzUtils=Rl.structUtils=Rl.semverUtils=Rl.scriptUtils=Rl.nodeUtils=Rl.miscUtils=Rl.formatUtils=Rl.folderUtils=Rl.execUtils=Rl.httpUtils=Rl.hashUtils=Rl.PackageExtensionStatus=Rl.PackageExtensionType=Rl.LinkType=Rl.YarnVersion=Rl.Workspace=Rl.WorkspaceResolver=Rl.WorkspaceFetcher=Rl.VirtualFetcher=Rl.ThrowReport=Rl.TelemetryManager=Rl.reportOptionDeprecations=Rl.StreamReport=Rl.Report=Rl.ReportError=Rl.InstallMode=Rl.Project=Rl.PeerWarningType=Rl.LOCKFILE_VERSION=Rl.MultiFetcher=Rl.stringifyMessageName=Rl.parseMessageName=Rl.MessageName=Rl.Manifest=Rl.LockfileResolver=Rl.LightReport=Rl.LegacyMigrationResolver=Rl.BuildDirectiveType=Rl.WindowsLinkType=Rl.DurationUnit=Rl.SettingsType=Rl.FormatType=Rl.Configuration=Rl.TAG_REGEXP=Rl.LEGACY_PLUGINS=Rl.DEFAULT_RC_FILENAME=Rl.Cache=Rl.CACHE_CHECKPOINT=Rl.CACHE_VERSION=void 0;var IM=(Pa(),vi(Va)),K5o=IM.__importStar(Jgt());Rl.execUtils=K5o;var j5o=IM.__importStar(Agt());Rl.folderUtils=j5o;var z5o=IM.__importStar(rM());Rl.formatUtils=z5o;var q5o=IM.__importStar(moe());Rl.hashUtils=q5o;var $5o=IM.__importStar(Qgt());Rl.httpUtils=$5o;var eMo=IM.__importStar(xW());Rl.miscUtils=eMo;var tMo=IM.__importStar(Xgt());Rl.nodeUtils=tMo;var rMo=IM.__importStar(HAr());Rl.scriptUtils=rMo;var nMo=IM.__importStar(n$());Rl.semverUtils=nMo;var iMo=IM.__importStar(uG());Rl.structUtils=iMo;var sMo=IM.__importStar(yLn());Rl.tgzUtils=sMo;var oMo=IM.__importStar(wLn());Rl.treeUtils=oMo;var Xdr=adr();Object.defineProperty(Rl,"CACHE_VERSION",{enumerable:!0,get:function(){return Xdr.CACHE_VERSION}});Object.defineProperty(Rl,"CACHE_CHECKPOINT",{enumerable:!0,get:function(){return Xdr.CACHE_CHECKPOINT}});Object.defineProperty(Rl,"Cache",{enumerable:!0,get:function(){return Xdr.Cache}});var Jdr=I5e();Object.defineProperty(Rl,"DEFAULT_RC_FILENAME",{enumerable:!0,get:function(){return Jdr.DEFAULT_RC_FILENAME}});Object.defineProperty(Rl,"LEGACY_PLUGINS",{enumerable:!0,get:function(){return Jdr.LEGACY_PLUGINS}});Object.defineProperty(Rl,"TAG_REGEXP",{enumerable:!0,get:function(){return Jdr.TAG_REGEXP}});var K5e=I5e();Object.defineProperty(Rl,"Configuration",{enumerable:!0,get:function(){return K5e.Configuration}});Object.defineProperty(Rl,"FormatType",{enumerable:!0,get:function(){return K5e.FormatType}});Object.defineProperty(Rl,"SettingsType",{enumerable:!0,get:function(){return K5e.SettingsType}});Object.defineProperty(Rl,"DurationUnit",{enumerable:!0,get:function(){return K5e.DurationUnit}});Object.defineProperty(Rl,"WindowsLinkType",{enumerable:!0,get:function(){return K5e.WindowsLinkType}});var aMo=cdr();Object.defineProperty(Rl,"BuildDirectiveType",{enumerable:!0,get:function(){return aMo.BuildDirectiveType}});var cMo=udr();Object.defineProperty(Rl,"LegacyMigrationResolver",{enumerable:!0,get:function(){return cMo.LegacyMigrationResolver}});var lMo=ZLn();Object.defineProperty(Rl,"LightReport",{enumerable:!0,get:function(){return lMo.LightReport}});var uMo=ddr();Object.defineProperty(Rl,"LockfileResolver",{enumerable:!0,get:function(){return uMo.LockfileResolver}});var gMo=uve();Object.defineProperty(Rl,"Manifest",{enumerable:!0,get:function(){return gMo.Manifest}});var Udr=M9();Object.defineProperty(Rl,"MessageName",{enumerable:!0,get:function(){return Udr.MessageName}});Object.defineProperty(Rl,"parseMessageName",{enumerable:!0,get:function(){return Udr.parseMessageName}});Object.defineProperty(Rl,"stringifyMessageName",{enumerable:!0,get:function(){return Udr.stringifyMessageName}});var AMo=Cur();Object.defineProperty(Rl,"MultiFetcher",{enumerable:!0,get:function(){return AMo.MultiFetcher}});var jAt=V9n();Object.defineProperty(Rl,"LOCKFILE_VERSION",{enumerable:!0,get:function(){return jAt.LOCKFILE_VERSION}});Object.defineProperty(Rl,"PeerWarningType",{enumerable:!0,get:function(){return jAt.PeerWarningType}});Object.defineProperty(Rl,"Project",{enumerable:!0,get:function(){return jAt.Project}});Object.defineProperty(Rl,"InstallMode",{enumerable:!0,get:function(){return jAt.InstallMode}});var M9n=sM();Object.defineProperty(Rl,"ReportError",{enumerable:!0,get:function(){return M9n.ReportError}});Object.defineProperty(Rl,"Report",{enumerable:!0,get:function(){return M9n.Report}});var H9n=v5e();Object.defineProperty(Rl,"StreamReport",{enumerable:!0,get:function(){return H9n.StreamReport}});Object.defineProperty(Rl,"reportOptionDeprecations",{enumerable:!0,get:function(){return H9n.reportOptionDeprecations}});var dMo=O9n();Object.defineProperty(Rl,"TelemetryManager",{enumerable:!0,get:function(){return dMo.TelemetryManager}});var pMo=Ldr();Object.defineProperty(Rl,"ThrowReport",{enumerable:!0,get:function(){return pMo.ThrowReport}});var fMo=vur();Object.defineProperty(Rl,"VirtualFetcher",{enumerable:!0,get:function(){return fMo.VirtualFetcher}});var IMo=wur();Object.defineProperty(Rl,"WorkspaceFetcher",{enumerable:!0,get:function(){return IMo.WorkspaceFetcher}});var hMo=Kfe();Object.defineProperty(Rl,"WorkspaceResolver",{enumerable:!0,get:function(){return hMo.WorkspaceResolver}});var mMo=Pdr();Object.defineProperty(Rl,"Workspace",{enumerable:!0,get:function(){return mMo.Workspace}});var CMo=S5e();Object.defineProperty(Rl,"YarnVersion",{enumerable:!0,get:function(){return CMo.YarnVersion}});var Kdr=Qfe();Object.defineProperty(Rl,"LinkType",{enumerable:!0,get:function(){return Kdr.LinkType}});Object.defineProperty(Rl,"PackageExtensionType",{enumerable:!0,get:function(){return Kdr.PackageExtensionType}});Object.defineProperty(Rl,"PackageExtensionStatus",{enumerable:!0,get:function(){return Kdr.PackageExtensionStatus}})});var zdr=H(zAt=>{"use strict";Object.defineProperty(zAt,"__esModule",{value:!0});zAt.WorkspaceRequiredError=void 0;var _Mo=Bn(),Y9n=no(),yMo=($c(),vi(rg)),jdr=class extends yMo.UsageError{constructor(t,r){let n=Y9n.ppath.relative(t,r),a=Y9n.ppath.join(t,_Mo.Manifest.fileName);super(`This command can only be run from within a workspace of your project (${n} isn't a workspace of ${a}).`)}};zAt.WorkspaceRequiredError=jdr});var qdr=H(qAt=>{"use strict";Object.defineProperty(qAt,"__esModule",{value:!0});qAt.getDynamicLibs=void 0;var d$=(Pa(),vi(Va)),bMo=d$.__importStar(el()),EMo=d$.__importStar(Bn()),SMo=d$.__importStar(no()),vMo=d$.__importStar(zK()),BMo=d$.__importStar(TW()),wMo=d$.__importStar(_5e()),TMo=d$.__importStar(($c(),vi(rg))),RMo=d$.__importStar(UC()),NMo=d$.__importStar((CZ(),vi(mZ))),DMo=()=>new Map([["@yarnpkg/cli",bMo],["@yarnpkg/core",EMo],["@yarnpkg/fslib",SMo],["@yarnpkg/libzip",vMo],["@yarnpkg/parsers",BMo],["@yarnpkg/shell",wMo],["clipanion",TMo],["semver",RMo],["typanion",NMo]]);qAt.getDynamicLibs=DMo});var $dr=H((L7l,kMo)=>{kMo.exports={name:"@yarnpkg/cli",version:"4.14.1",license:"BSD-2-Clause",main:"./lib/index.js",exports:{".":"./lib/index.js","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"^4.7.0","@yarnpkg/fslib":"^3.1.5","@yarnpkg/libzip":"^3.2.2","@yarnpkg/parsers":"^3.0.3","@yarnpkg/plugin-catalog":"^1.0.2","@yarnpkg/plugin-compat":"^4.0.12","@yarnpkg/plugin-constraints":"^4.0.5","@yarnpkg/plugin-dlx":"^4.0.2","@yarnpkg/plugin-essentials":"^4.5.0","@yarnpkg/plugin-exec":"^3.1.0","@yarnpkg/plugin-file":"^3.0.2","@yarnpkg/plugin-git":"^3.2.0","@yarnpkg/plugin-github":"^3.0.2","@yarnpkg/plugin-http":"^3.0.3","@yarnpkg/plugin-init":"^4.1.2","@yarnpkg/plugin-interactive-tools":"^4.1.0","@yarnpkg/plugin-jsr":"^1.1.1","@yarnpkg/plugin-link":"^3.0.2","@yarnpkg/plugin-nm":"^4.0.8","@yarnpkg/plugin-npm":"^3.5.0","@yarnpkg/plugin-npm-cli":"^4.4.1","@yarnpkg/plugin-pack":"^4.0.4","@yarnpkg/plugin-patch":"^4.0.3","@yarnpkg/plugin-pnp":"^4.1.5","@yarnpkg/plugin-pnpm":"^2.1.2","@yarnpkg/plugin-stage":"^4.0.2","@yarnpkg/plugin-typescript":"^4.1.3","@yarnpkg/plugin-version":"^4.2.0","@yarnpkg/plugin-workspace-tools":"^4.1.7","@yarnpkg/shell":"^4.1.3","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"^4.2.3","@yarnpkg/monorepo":"^0.0.0","@yarnpkg/pnpify":"^4.1.6"},peerDependencies:{"@yarnpkg/core":"^4.7.0"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"git+https://github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var tpr=H(epr=>{"use strict";Object.defineProperty(epr,"__esModule",{value:!0});epr.getPluginConfiguration=ZMo;var xMo=(Pa(),vi(Va)),GMo=xMo.__importDefault($dr()),FMo=qdr();function ZMo(){let e=new Set;for(let r of GMo.default["@yarnpkg/builder"].bundles.standard)e.add(r);let t=(0,FMo.getDynamicLibs)();for(let r of e)t.set(r,wt(r).default);return{plugins:e,modules:t}}});var Q9n=H(rpr=>{"use strict";Object.defineProperty(rpr,"__esModule",{value:!0});rpr.openWorkspace=PMo;var LMo=Bn(),VMo=zdr();async function PMo(e,t){let{project:r,workspace:n}=await LMo.Project.find(e,t);if(!n)throw new VMo.WorkspaceRequiredError(r.cwd,t);return n}});var npr=H($At=>{"use strict";Object.defineProperty($At,"__esModule",{value:!0});$At.pluginCommands=void 0;$At.pluginCommands=new Map([])});var K9n=H(edt=>{"use strict";Object.defineProperty(edt,"__esModule",{value:!0});edt.getCli=KMo;edt.runExit=jMo;var p$=Bn(),IX=no(),WMo=wt("child_process"),OMo=Nfe(),Lve=($c(),vi(rg)),MMo=npr(),HMo=tpr();function X9n({cwd:e,pluginConfiguration:t}){let r=new Lve.Cli({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:p$.YarnVersion??""});return Object.assign(r,{defaultContext:{...Lve.Cli.defaultContext,cwd:e,plugins:t,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function YMo(e){if(p$.miscUtils.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,n=">=18.12.0";if(p$.semverUtils.satisfiesWithPrereleases(r,n))return!0;let a=new Lve.UsageError(`This tool requires a Node version compatible with ${n} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Lve.Cli.defaultContext.stdout.write(e.error(a)),!1}async function J9n({selfPath:e,pluginConfiguration:t}){return await p$.Configuration.find(IX.npath.toPortablePath(process.cwd()),t,{strict:!1,usePathCheck:e})}function QMo(e,t,{yarnPath:r}){if(!IX.xfs.existsSync(r))return e.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let n={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,WMo.execFileSync)(process.execPath,[IX.npath.fromPortablePath(r),...t],n)}catch(a){return a.status??1}return 0}function XMo(e,t){let r=null,n=t;return t.length>=2&&t[0]==="--cwd"?(r=IX.npath.toPortablePath(t[1]),n=t.slice(2)):t.length>=1&&t[0].startsWith("--cwd=")?(r=IX.npath.toPortablePath(t[0].slice(6)),n=t.slice(1)):t[0]==="add"&&t[t.length-2]==="--cwd"&&(r=IX.npath.toPortablePath(t[t.length-1]),n=t.slice(0,t.length-2)),e.defaultContext.cwd=r!==null?IX.ppath.resolve(r):IX.ppath.cwd(),n}function JMo(e,{configuration:t}){if(!t.get("enableTelemetry")||OMo.isCI||!process.stdout.isTTY)return;p$.Configuration.telemetry=new p$.TelemetryManager(t,"puba9cdc10ec5790a2cf4969dd413a47270");let n=/^@yarnpkg\/plugin-(.*)$/;for(let a of t.plugins.keys())MMo.pluginCommands.has(a.match(n)?.[1]??"")&&p$.Configuration.telemetry?.reportPluginName(a);e.binaryVersion&&p$.Configuration.telemetry.reportVersion(e.binaryVersion)}function U9n(e,{configuration:t}){for(let r of t.plugins.values())for(let n of r.commands||[])e.register(n)}async function UMo(e,t,{selfPath:r,pluginConfiguration:n}){if(!YMo(e))return 1;let a=await J9n({selfPath:r,pluginConfiguration:n}),o=a.get("yarnPath"),l=a.get("ignorePath");if(o&&!l)return QMo(e,t,{yarnPath:o});delete process.env.YARN_IGNORE_PATH;let A=XMo(e,t);JMo(e,{configuration:a}),U9n(e,{configuration:a});let f=e.process(A,e.defaultContext);return f.help||p$.Configuration.telemetry?.reportCommandName(f.path.join(" ")),await e.run(f,e.defaultContext)}async function KMo({cwd:e=IX.ppath.cwd(),pluginConfiguration:t=(0,HMo.getPluginConfiguration)()}={}){let r=X9n({cwd:e,pluginConfiguration:t}),n=await J9n({pluginConfiguration:t,selfPath:null});return U9n(r,{configuration:n}),r}async function jMo(e,{cwd:t=IX.ppath.cwd(),selfPath:r,pluginConfiguration:n}){let a=X9n({cwd:t,pluginConfiguration:n});function o(){Lve.Cli.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",o);try{process.exitCode=42,process.exitCode=await UMo(a,e,{selfPath:r,pluginConfiguration:n})}catch(l){Lve.Cli.defaultContext.stdout.write(a.error(l)),process.exitCode=1}finally{process.off("beforeExit",o),await IX.xfs.rmtempPromise()}}});var el=H(jN=>{"use strict";Object.defineProperty(jN,"__esModule",{value:!0});jN.pluginCommands=jN.runExit=jN.getCli=jN.openWorkspace=jN.getPluginConfiguration=jN.getDynamicLibs=jN.WorkspaceRequiredError=jN.BaseCommand=void 0;var zMo=$yn();Object.defineProperty(jN,"BaseCommand",{enumerable:!0,get:function(){return zMo.BaseCommand}});var qMo=zdr();Object.defineProperty(jN,"WorkspaceRequiredError",{enumerable:!0,get:function(){return qMo.WorkspaceRequiredError}});var $Mo=qdr();Object.defineProperty(jN,"getDynamicLibs",{enumerable:!0,get:function(){return $Mo.getDynamicLibs}});var eHo=tpr();Object.defineProperty(jN,"getPluginConfiguration",{enumerable:!0,get:function(){return eHo.getPluginConfiguration}});var tHo=Q9n();Object.defineProperty(jN,"openWorkspace",{enumerable:!0,get:function(){return tHo.openWorkspace}});var j9n=K9n();Object.defineProperty(jN,"getCli",{enumerable:!0,get:function(){return j9n.getCli}});Object.defineProperty(jN,"runExit",{enumerable:!0,get:function(){return j9n.runExit}});var rHo=npr();Object.defineProperty(jN,"pluginCommands",{enumerable:!0,get:function(){return rHo.pluginCommands}})});var gVn=H((nzl,uVn)=>{"use strict";var aVn=wt("stream").PassThrough,cVn=wt("stream").Writable,lVn=wt("util");lVn.inherits(cpr,aVn);lVn.inherits(lpr,cVn);function cpr(e,t){aVn.call(this,t),this.factory=e,this.opts=t}cpr.prototype._flush=function(e){var t=this.factory();t.pipe(new lpr(this,this.opts)).on("finish",e),t.resume()};function lpr(e,t){cVn.call(this,t),this.target=e}lpr.prototype._write=function(e,t,r){this.target.push(e),r()};function apr(e,t){t=t||{};var r;return typeof e=="function"?r=e:(e.pause(),r=function(){return e}),new cpr(r,t)}apr.obj=function(e,t){return t=t||{},t.objectMode=!0,apr(e,t)};uVn.exports=apr});var pVn=bc(()=>{});function gpr(e,t){return e.map(r=>r.trim()).filter(Boolean).join(t)}function cHo(e,t){if(!e)return fVn;let r=gpr(e,"|");return t?t(r):new RegExp(`^[\\s|*]*(${r})[:\\s]+(.*)`,"i")}function lHo(e,t){if(!e)return fVn;let r=t?"g":"gi";return new RegExp(`(?:.*?)??\\s*([\\w-\\.\\/]*?)??(${gpr(e,"|")})([\\w-]*\\d+)`,r)}function uHo(e){if(!e)return/()(.+)/gi;let t=gpr(e,"|");return new RegExp(`(${t})(?:\\s+(.*?))(?=(?:${t})|$)`,"gi")}function IVn(e={}){let t=cHo(e.noteKeywords,e.notesPattern),r=lHo(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=uHo(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}var fVn,hVn=bc(()=>{fVn=/(?!.*)/});function q5e(e){let t=e.match(/[^\r\n]/);if(typeof t?.index!="number")return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` `;)n--;return e.substring(r,n+1)}function pIe(e,t){return e?`${e} ${t||""}`:t||""}function mVn(e){return e?t=>!t.startsWith(e):()=>!0}function CVn(e){let t=e.indexOf(gHo);return t===-1?e:e.slice(0,t)}function _Vn(e){return!e.match(/^\s*gpg:/)}var gHo,yVn=bc(()=>{gHo="# ------------------------ >8 ------------------------"});var bVn,EVn=bc(()=>{bVn={noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],issuePrefixes:["#"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],fieldPattern:/^-(.*?)-$/}});function Apr(e={}){return{merge:null,revert:null,header:null,body:null,footer:null,notes:[],mentions:[],references:[],...e}}var $5e,dpr=bc(()=>{hVn();yVn();EVn();$5e=class{options;regexes;lines=[];lineIndex=0;commit=Apr();constructor(t={}){this.options={...bVn,...t},this.regexes=IVn(this.options)}currentLine(){return this.lines[this.lineIndex]}nextLine(){return this.lines[this.lineIndex++]}isLineAvailable(){return this.lineIndex{t[l]=o[A+1]||null}),!0):!1}parseHeader(t){t&&this.skipEmptyLines();let{commit:r,options:n}=this,a=n.headerCorrespondence||[],o=this.nextLine(),l=null;o&&(n.breakingHeaderPattern&&(l=o.match(n.breakingHeaderPattern)),!l&&n.headerPattern&&(l=o.match(n.headerPattern))),o&&(r.header=o),l&&a.forEach((A,f)=>{r[A]=l[f+1]||null})}parseMeta(){let{options:t,commit:r}=this;if(!t.fieldPattern||!this.isLineAvailable())return!1;let n,a=null,o=!1;for(;this.isLineAvailable();){if(n=this.currentLine().match(t.fieldPattern),n){a=n[1]||null,this.nextLine();continue}if(a)o=!0,r[a]=pIe(r[a],this.currentLine()),this.nextLine();else break}return o}parseNotes(){let{regexes:t,commit:r}=this;if(!this.isLineAvailable())return!1;let n=this.currentLine().match(t.notes),a=[];if(n){let o={title:n[1],text:n[2]};for(r.notes.push(o),r.footer=pIe(r.footer,this.currentLine()),this.nextLine();this.isLineAvailable();){if(this.parseMeta()||this.parseNotes())return!0;if(a=this.parseReferences(this.currentLine()),a.length?r.references.push(...a):o.text=pIe(o.text,this.currentLine()),r.footer=pIe(r.footer,this.currentLine()),this.nextLine(),a.length)break}return!0}return!1}parseBodyAndFooter(t){let{commit:r}=this;if(!this.isLineAvailable())return t;let n=this.parseReferences(this.currentLine()),a=!n.length&&t;return a?r.body=pIe(r.body,this.currentLine()):(r.references.push(...n),r.footer=pIe(r.footer,this.currentLine())),this.nextLine(),a}parseBreakingHeader(){let{commit:t,options:r}=this;if(!r.breakingHeaderPattern||t.notes.length||!t.header)return;let n=t.header.match(r.breakingHeaderPattern);n&&t.notes.push({title:"BREAKING CHANGE",text:n[3]})}parseMentions(t){let{commit:r,regexes:n}=this,a;for(;a=n.mentions.exec(t),!!a;)r.mentions.push(a[1])}parseRevert(t){let{commit:r,options:n}=this,a=n.revertCorrespondence||[],o=n.revertPattern?t.match(n.revertPattern):null;o&&(r.revert=a.reduce((l,A,f)=>(l[A]=o[f+1]||null,l),{}))}cleanupCommit(){let{commit:t}=this;t.body&&(t.body=q5e(t.body)),t.footer&&(t.footer=q5e(t.footer)),t.notes.forEach(r=>{r.text=q5e(r.text)})}parse(t){if(!t.trim())throw new TypeError("Expected a raw commit");let r=mVn(this.options.commentChar),n=q5e(t).split(/\r?\n/),a=CVn(n).filter(f=>r(f)&&_Vn(f)),o=Apr();this.lines=a,this.lineIndex=0,this.commit=o;let l=this.parseMerge();this.parseHeader(l),o.header&&(o.references=this.parseReferences(o.header));let A=!0;for(;this.isLineAvailable();)this.parseMeta(),this.parseNotes()&&(A=!1),this.parseBodyAndFooter(A)||(A=!1);return this.parseBreakingHeader(),this.parseMentions(t),this.parseRevert(t),this.cleanupCommit(),o}}});import{Transform as AHo}from"stream";function SVn(e={}){let t=e.warn,r=t===!0?n=>{throw n}:t?n=>t(n.toString()):()=>{};return async function*(a){let o=new $5e(e),l;for await(l of a)try{yield o.parse(l.toString())}catch(A){r(A)}}}function ppr(e={}){return AHo.from(SVn(e))}var vVn=bc(()=>{dpr()});var BVn={};sI(BVn,{CommitParser:()=>$5e,createCommitObject:()=>Apr,parseCommits:()=>SVn,parseCommitsStream:()=>ppr});var fpr=bc(()=>{pVn();dpr();vVn()});function dHo(e,t){let r,n;for(let a in t)if(r=e[a],n=t[a],typeof r=="string"&&(r=r.trim()),typeof n=="string"&&(n=n.trim()),r!==n)return!1;return!0}function wVn(e,t){if(!t.size)return null;let r=e.raw||e;for(let n of t)if(n.revert&&dHo(r,n.revert))return n;return null}var TVn=bc(()=>{});var Pve,Ipr=bc(()=>{TVn();Pve=class{hold=new Set;holdRevertsCount=0;*process(t){let{hold:r}=this,n=wVn(t,r);if(n){r.delete(n),this.holdRevertsCount--;return}if(t.revert){r.add(t),this.holdRevertsCount++;return}this.holdRevertsCount>0?r.add(t):(r.size&&(yield*r,r.clear()),yield t)}*flush(){let{hold:t}=this;t.size&&(yield*t,t.clear())}}});import{Transform as pHo}from"stream";async function*RVn(e){let t=new Pve;for await(let r of e)yield*t.process(r);yield*t.flush()}function*hpr(e){let t=new Pve;for(let r of e)yield*t.process(r);yield*t.flush()}function fHo(){return pHo.from(RVn)}var NVn=bc(()=>{Ipr()});var DVn={};sI(DVn,{RevertedCommitsFilter:()=>Pve,filterRevertedCommits:()=>RVn,filterRevertedCommitsStream:()=>fHo,filterRevertedCommitsSync:()=>hpr});var mpr=bc(()=>{Ipr();NVn()});var NZ=H(LW=>{"use strict";LW.__esModule=!0;LW.extend=PVn;LW.indexOf=vHo;LW.escapeExpression=BHo;LW.isEmpty=wHo;LW.createFrame=THo;LW.blockParams=RHo;LW.appendContextPath=NHo;var yHo={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`","=":"="},bHo=/[&<>"'`=]/g,EHo=/[&<>"'`=]/;function SHo(e){return yHo[e]}function PVn(e){for(var t=1;t{"use strict";sdt.__esModule=!0;var bpr=["description","fileName","lineNumber","endLineNumber","message","name","number","stack"];function Epr(e,t){var r=t&&t.loc,n=void 0,a=void 0,o=void 0,l=void 0;r&&(n=r.start.line,a=r.end.line,o=r.start.column,l=r.end.column,e+=" - "+n+":"+o);for(var A=Error.prototype.constructor.call(this,e),f=0;f{"use strict";odt.__esModule=!0;var Spr=NZ();odt.default=function(e){e.registerHelper("blockHelperMissing",function(t,r){var n=r.inverse,a=r.fn;if(t===!0)return a(this);if(t===!1||t==null)return n(this);if(Spr.isArray(t))return t.length>0?(r.ids&&(r.ids=[r.name]),e.helpers.each(t,r)):n(this);if(r.data&&r.ids){var o=Spr.createFrame(r.data);o.contextPath=Spr.appendContextPath(r.data.contextPath,r.name),r={data:o}}return a(t,r)})};MVn.exports=odt.default});var QVn=H((adt,YVn)=>{"use strict";adt.__esModule=!0;function DHo(e){return e&&e.__esModule?e:{default:e}}var rMe=NZ(),kHo=hM(),xHo=DHo(kHo);adt.default=function(e){e.registerHelper("each",function(t,r){if(!r)throw new xHo.default("Must pass iterator to #each");var n=r.fn,a=r.inverse,o=0,l="",A=void 0,f=void 0;r.data&&r.ids&&(f=rMe.appendContextPath(r.data.contextPath,r.ids[0])+"."),rMe.isFunction(t)&&(t=t.call(this)),r.data&&(A=rMe.createFrame(r.data));function I(B,F,Q){A&&(A.key=B,A.index=F,A.first=F===0,A.last=!!Q,f&&(A.contextPath=f+B)),l=l+n(t[B],{data:A,blockParams:rMe.blockParams([t[B],B],[f+B,null])})}if(t&&typeof t=="object")if(rMe.isArray(t))for(var C=t.length;o{"use strict";cdt.__esModule=!0;function GHo(e){return e&&e.__esModule?e:{default:e}}var FHo=hM(),ZHo=GHo(FHo);cdt.default=function(e){e.registerHelper("helperMissing",function(){if(arguments.length!==1)throw new ZHo.default('Missing helper: "'+arguments[arguments.length-1].name+'"')})};XVn.exports=cdt.default});var zVn=H((ldt,jVn)=>{"use strict";ldt.__esModule=!0;function LHo(e){return e&&e.__esModule?e:{default:e}}var UVn=NZ(),VHo=hM(),KVn=LHo(VHo);ldt.default=function(e){e.registerHelper("if",function(t,r){if(arguments.length!=2)throw new KVn.default("#if requires exactly one argument");return UVn.isFunction(t)&&(t=t.call(this)),!r.hash.includeZero&&!t||UVn.isEmpty(t)?r.inverse(this):r.fn(this)}),e.registerHelper("unless",function(t,r){if(arguments.length!=2)throw new KVn.default("#unless requires exactly one argument");return e.helpers.if.call(this,t,{fn:r.inverse,inverse:r.fn,hash:r.hash})})};jVn.exports=ldt.default});var $Vn=H((udt,qVn)=>{"use strict";udt.__esModule=!0;udt.default=function(e){e.registerHelper("log",function(){for(var t=[void 0],r=arguments[arguments.length-1],n=0;n{"use strict";gdt.__esModule=!0;gdt.default=function(e){e.registerHelper("lookup",function(t,r,n){return t&&n.lookupProperty(t,r)})};ePn.exports=gdt.default});var nPn=H((Adt,rPn)=>{"use strict";Adt.__esModule=!0;function PHo(e){return e&&e.__esModule?e:{default:e}}var nMe=NZ(),WHo=hM(),OHo=PHo(WHo);Adt.default=function(e){e.registerHelper("with",function(t,r){if(arguments.length!=2)throw new OHo.default("#with requires exactly one argument");nMe.isFunction(t)&&(t=t.call(this));var n=r.fn;if(nMe.isEmpty(t))return r.inverse(this);var a=r.data;return r.data&&r.ids&&(a=nMe.createFrame(r.data),a.contextPath=nMe.appendContextPath(r.data.contextPath,r.ids[0])),n(t,{data:a,blockParams:nMe.blockParams([t],[a&&a.contextPath])})})};rPn.exports=Adt.default});var vpr=H(ddt=>{"use strict";ddt.__esModule=!0;ddt.registerDefaultHelpers=rYo;ddt.moveHelperToHooks=nYo;function fIe(e){return e&&e.__esModule?e:{default:e}}var MHo=HVn(),HHo=fIe(MHo),YHo=QVn(),QHo=fIe(YHo),XHo=JVn(),JHo=fIe(XHo),UHo=zVn(),KHo=fIe(UHo),jHo=$Vn(),zHo=fIe(jHo),qHo=tPn(),$Ho=fIe(qHo),eYo=nPn(),tYo=fIe(eYo);function rYo(e){HHo.default(e),QHo.default(e),JHo.default(e),KHo.default(e),zHo.default(e),$Ho.default(e),tYo.default(e)}function nYo(e,t,r){e.helpers[t]&&(e.hooks[t]=e.helpers[t],r||delete e.helpers[t])}});var sPn=H((pdt,iPn)=>{"use strict";pdt.__esModule=!0;var iYo=NZ();pdt.default=function(e){e.registerDecorator("inline",function(t,r,n,a){var o=t;return r.partials||(r.partials={},o=function(l,A){var f=n.partials;n.partials=iYo.extend({},f,r.partials);var I=t(l,A);return n.partials=f,I}),r.partials[a.args[0]]=a.fn,o})};iPn.exports=pdt.default});var oPn=H(Bpr=>{"use strict";Bpr.__esModule=!0;Bpr.registerDefaultDecorators=cYo;function sYo(e){return e&&e.__esModule?e:{default:e}}var oYo=sPn(),aYo=sYo(oYo);function cYo(e){aYo.default(e)}});var wpr=H((fdt,aPn)=>{"use strict";fdt.__esModule=!0;var lYo=NZ(),Wve={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(t){if(typeof t=="string"){var r=lYo.indexOf(Wve.methodMap,t.toLowerCase());r>=0?t=r:t=parseInt(t,10)}return t},log:function(t){if(t=Wve.lookupLevel(t),typeof console<"u"&&Wve.lookupLevel(Wve.level)<=t){var r=Wve.methodMap[t];console[r]||(r="log");for(var n=arguments.length,a=Array(n>1?n-1:0),o=1;o{"use strict";Tpr.__esModule=!0;Tpr.createNewLookupObject=gYo;var uYo=NZ();function gYo(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";iMe.__esModule=!0;iMe.createProtoAccessControl=fYo;iMe.resultIsAllowed=IYo;iMe.resetLoggedProperties=mYo;function AYo(e){return e&&e.__esModule?e:{default:e}}var lPn=cPn(),dYo=wpr(),pYo=AYo(dYo),Idt=Object.create(null);function fYo(e){var t=Object.create(null);t.constructor=!1,t.__defineGetter__=!1,t.__defineSetter__=!1,t.__lookupGetter__=!1;var r=Object.create(null);return r.__proto__=!1,{properties:{whitelist:lPn.createNewLookupObject(r,e.allowedProtoProperties),defaultValue:e.allowProtoPropertiesByDefault},methods:{whitelist:lPn.createNewLookupObject(t,e.allowedProtoMethods),defaultValue:e.allowProtoMethodsByDefault}}}function IYo(e,t,r){return uPn(typeof e=="function"?t.methods:t.properties,r)}function uPn(e,t){return e.whitelist[t]!==void 0?e.whitelist[t]===!0:e.defaultValue!==void 0?e.defaultValue:(hYo(t),!1)}function hYo(e){Idt[e]!==!0&&(Idt[e]=!0,pYo.default.log("error",'Handlebars: Access has been denied to resolve the property "'+e+`" because it is not an "own property" of its parent. You can add a runtime option to disable the check or this warning: @@ -280,8 +280,8 @@ Expecting `+Me.join(", ")+", got '"+(this.terminals_[ce]||ce)+"'":je="Parse erro return undefined } `.trim()},blockValue:function(t){var r=this.aliasable("container.hooks.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(t,0,n);var a=this.popStack();n.splice(1,0,a),this.push(this.source.functionCall(r,"call",n))},ambiguousBlockValue:function(){var t=this.aliasable("container.hooks.blockHelperMissing"),r=[this.contextName(0)];this.setupHelperArgs("",0,r,!0),this.flushInline();var n=this.topStack();r.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(t,"call",r),"}"])},appendContent:function(t){this.pendingContent?t=this.pendingContent+t:this.pendingLocation=this.source.currentLocation,this.pendingContent=t},append:function(){if(this.isInline())this.replaceStack(function(r){return[" != null ? ",r,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var t=this.popStack();this.pushSource(["if (",t," != null) { ",this.appendToBuffer(t,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(t){this.lastContext=t},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(t,r,n,a){var o=0;!a&&this.options.compat&&!this.lastContext?this.push(this.depthedLookup(t[o++])):this.pushContext(),this.resolvePath("context",t,o,r,n)},lookupBlockParam:function(t,r){this.useBlockParams=!0,this.push(["blockParams[",t[0],"][",t[1],"]"]),this.resolvePath("context",r,1)},lookupData:function(t,r,n){t?this.pushStackLiteral("container.data(data, "+t+")"):this.pushStackLiteral("data"),this.resolvePath("data",r,0,!0,n)},resolvePath:function(t,r,n,a,o){var l=this;if(this.options.strict||this.options.assumeObjects){this.push(jQo(this.options.strict&&o,this,r,n,t));return}for(var A=r.length;nthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var t=this.inlineStack;this.inlineStack=[];for(var r=0,n=t.length;r{"use strict";Vdt.__esModule=!0;function pMe(e){return e&&e.__esModule?e:{default:e}}var zQo=vPn(),qQo=pMe(zQo),$Qo=Ppr(),eXo=pMe($Qo),lfr=VPn(),ufr=MPn(),tXo=yWn(),rXo=pMe(tXo),nXo=Tdt(),iXo=pMe(nXo),sXo=Fpr(),oXo=pMe(sXo),aXo=qQo.default.create;function bWn(){var e=aXo();return e.compile=function(t,r){return ufr.compile(t,r,e)},e.precompile=function(t,r){return ufr.precompile(t,r,e)},e.AST=eXo.default,e.Compiler=ufr.Compiler,e.JavaScriptCompiler=rXo.default,e.Parser=lfr.parser,e.parse=lfr.parse,e.parseWithoutProcessing=lfr.parseWithoutProcessing,e}var Uve=bWn();Uve.create=bWn;oXo.default(Uve);Uve.Visitor=iXo.default;Uve.default=Uve;Vdt.default=Uve;EWn.exports=Vdt.default});var vWn=H(Pdt=>{"use strict";Pdt.__esModule=!0;Pdt.print=gXo;Pdt.PrintVisitor=Vv;function cXo(e){return e&&e.__esModule?e:{default:e}}var lXo=Tdt(),uXo=cXo(lXo);function gXo(e){return new Vv().accept(e)}function Vv(){this.padding=0}Vv.prototype=new uXo.default;Vv.prototype.pad=function(e){for(var t="",r=0,n=this.padding;r "+t+" }}")};Vv.prototype.PartialBlockStatement=function(e){var t="PARTIAL BLOCK:"+e.name.original;return e.params[0]&&(t+=" "+this.accept(e.params[0])),e.hash&&(t+=" "+this.accept(e.hash)),t+=" "+this.pad("PROGRAM:"),this.padding++,t+=this.accept(e.program),this.padding--,this.pad("{{> "+t+" }}")};Vv.prototype.ContentStatement=function(e){return this.pad("CONTENT[ '"+e.value+"' ]")};Vv.prototype.CommentStatement=function(e){return this.pad("{{! '"+e.value+"' }}")};Vv.prototype.SubExpression=function(e){for(var t=e.params,r=[],n=void 0,a=0,o=t.length;a{"use strict";Object.defineProperty(Mdt,"__esModule",{value:!0});Mdt.LRUCache=void 0;var jve=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,VWn=new Set,Afr=typeof process=="object"&&process?process:{},PWn=(e,t,r,n)=>{typeof Afr.emitWarning=="function"?Afr.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)},Odt=globalThis.AbortController,LWn=globalThis.AbortSignal;if(typeof Odt>"u"){LWn=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,a){this._onabort.push(a)}},Odt=class{constructor(){t()}signal=new LWn;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let a of this.signal._onabort)a(n);this.signal.onabort?.(n)}}};let e=Afr.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,PWn("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var CXo=e=>!VWn.has(e),xql=Symbol("type"),Loe=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),WWn=e=>Loe(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zve:null:null,zve=class extends Array{constructor(t){super(t),this.fill(0)}},dfr=class e{heap;length;static#e=!1;static create(t){let r=WWn(t);if(!r)return[];e.#e=!0;let n=new e(t,r);return e.#e=!1,n}constructor(t,r){if(!e.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},pfr=class e{#e;#t;#n;#r;#i;#s;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#o;#g;#l;#u;#a;#m;#f;#I;#d;#b;#h;#S;#v;#C;#E;#_;#p;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#C,sizes:t.#S,keyMap:t.#l,keyList:t.#u,valList:t.#a,next:t.#m,prev:t.#f,get head(){return t.#I},get tail(){return t.#d},free:t.#b,isBackgroundFetch:r=>t.#A(r),backgroundFetch:(r,n,a,o)=>t.#V(r,n,a,o),moveToTail:r=>t.#W(r),indexes:r=>t.#T(r),rindexes:r=>t.#R(r),isStale:r=>t.#y(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#g}get size(){return this.#o}get fetchMethod(){return this.#i}get memoMethod(){return this.#s}get dispose(){return this.#n}get disposeAfter(){return this.#r}constructor(t){let{max:r=0,ttl:n,ttlResolution:a=1,ttlAutopurge:o,updateAgeOnGet:l,updateAgeOnHas:A,allowStale:f,dispose:I,disposeAfter:C,noDisposeOnSet:b,noUpdateTTL:E,maxSize:N=0,maxEntrySize:B=0,sizeCalculation:F,fetchMethod:Q,memoMethod:X,noDeleteOnFetchRejection:ae,noDeleteOnStaleGet:ne,allowStaleOnFetchRejection:ce,allowStaleOnFetchAbort:fe,ignoreFetchAbort:ue}=t;if(r!==0&&!Loe(r))throw new TypeError("max option must be a nonnegative integer");let de=r?WWn(r):Array;if(!de)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=N,this.maxEntrySize=B||this.#t,this.sizeCalculation=F,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(X!==void 0&&typeof X!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#s=X,Q!==void 0&&typeof Q!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=Q,this.#_=!!Q,this.#l=new Map,this.#u=new Array(r).fill(void 0),this.#a=new Array(r).fill(void 0),this.#m=new de(r),this.#f=new de(r),this.#I=0,this.#d=0,this.#b=dfr.create(r),this.#o=0,this.#g=0,typeof I=="function"&&(this.#n=I),typeof C=="function"?(this.#r=C,this.#h=[]):(this.#r=void 0,this.#h=void 0),this.#E=!!this.#n,this.#p=!!this.#r,this.noDisposeOnSet=!!b,this.noUpdateTTL=!!E,this.noDeleteOnFetchRejection=!!ae,this.allowStaleOnFetchRejection=!!ce,this.allowStaleOnFetchAbort=!!fe,this.ignoreFetchAbort=!!ue,this.maxEntrySize!==0){if(this.#t!==0&&!Loe(this.#t))throw new TypeError("maxSize must be a positive integer if specified");if(!Loe(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#N()}if(this.allowStale=!!f,this.noDeleteOnStaleGet=!!ne,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!A,this.ttlResolution=Loe(a)||a===0?a:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!Loe(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#B()}if(this.#e===0&&this.ttl===0&&this.#t===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#t){let be="LRU_CACHE_UNBOUNDED";CXo(be)&&(VWn.add(be),PWn("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",be,e))}}getRemainingTTL(t){return this.#l.has(t)?1/0:0}#B(){let t=new zve(this.#e),r=new zve(this.#e);this.#C=t,this.#v=r,this.#k=(o,l,A=jve.now())=>{if(r[o]=l!==0?A:0,t[o]=l,l!==0&&this.ttlAutopurge){let f=setTimeout(()=>{this.#y(o)&&this.#D(this.#u[o],"expire")},l+1);f.unref&&f.unref()}},this.#w=o=>{r[o]=t[o]!==0?jve.now():0},this.#c=(o,l)=>{if(t[l]){let A=t[l],f=r[l];if(!A||!f)return;o.ttl=A,o.start=f,o.now=n||a();let I=o.now-f;o.remainingTTL=A-I}};let n=0,a=()=>{let o=jve.now();if(this.ttlResolution>0){n=o;let l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return o};this.getRemainingTTL=o=>{let l=this.#l.get(o);if(l===void 0)return 0;let A=t[l],f=r[l];if(!A||!f)return 1/0;let I=(n||a())-f;return A-I},this.#y=o=>{let l=r[o],A=t[o];return!!A&&!!l&&(n||a())-l>A}}#w=()=>{};#c=()=>{};#k=()=>{};#y=()=>!1;#N(){let t=new zve(this.#e);this.#g=0,this.#S=t,this.#x=r=>{this.#g-=t[r],t[r]=0},this.#F=(r,n,a,o)=>{if(this.#A(n))return 0;if(!Loe(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,r),!Loe(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a},this.#G=(r,n,a)=>{if(t[r]=n,this.#t){let o=this.#t-t[r];for(;this.#g>o;)this.#L(!0)}this.#g+=t[r],a&&(a.entrySize=n,a.totalCalculatedSize=this.#g)}}#x=t=>{};#G=(t,r,n)=>{};#F=(t,r,n,a)=>{if(n||a)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#d;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#I));)r=this.#f[r]}*#R({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#I;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#d));)r=this.#m[r]}#Z(t){return t!==void 0&&this.#l.get(this.#u[t])===t}*entries(){for(let t of this.#T())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*rentries(){for(let t of this.#R())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*keys(){for(let t of this.#T()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*rkeys(){for(let t of this.#R()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*values(){for(let t of this.#T())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}*rvalues(){for(let t of this.#R())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;if(o!==void 0&&t(o,this.#u[n],this))return this.get(this.#u[n],r)}}forEach(t,r=this){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}rforEach(t,r=this){for(let n of this.#R()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}purgeStale(){let t=!1;for(let r of this.#R({allowStale:!0}))this.#y(r)&&(this.#D(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#l.get(t);if(r===void 0)return;let n=this.#a[r],a=this.#A(n)?n.__staleWhileFetching:n;if(a===void 0)return;let o={value:a};if(this.#C&&this.#v){let l=this.#C[r],A=this.#v[r];if(l&&A){let f=l-(jve.now()-A);o.ttl=f,o.start=Date.now()}}return this.#S&&(o.size=this.#S[r]),o}dump(){let t=[];for(let r of this.#T({allowStale:!0})){let n=this.#u[r],a=this.#a[r],o=this.#A(a)?a.__staleWhileFetching:a;if(o===void 0||n===void 0)continue;let l={value:o};if(this.#C&&this.#v){l.ttl=this.#C[r];let A=jve.now()-this.#v[r];l.start=Math.floor(Date.now()-A)}this.#S&&(l.size=this.#S[r]),t.unshift([n,l])}return t}load(t){this.clear();for(let[r,n]of t){if(n.start){let a=Date.now()-n.start;n.start=jve.now()-a}this.set(r,n.value,n)}}set(t,r,n={}){if(r===void 0)return this.delete(t),this;let{ttl:a=this.ttl,start:o,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:A=this.sizeCalculation,status:f}=n,{noUpdateTTL:I=this.noUpdateTTL}=n,C=this.#F(t,r,n.size||0,A);if(this.maxEntrySize&&C>this.maxEntrySize)return f&&(f.set="miss",f.maxEntrySizeExceeded=!0),this.#D(t,"set"),this;let b=this.#o===0?void 0:this.#l.get(t);if(b===void 0)b=this.#o===0?this.#d:this.#b.length!==0?this.#b.pop():this.#o===this.#e?this.#L(!1):this.#o,this.#u[b]=t,this.#a[b]=r,this.#l.set(t,b),this.#m[this.#d]=b,this.#f[b]=this.#d,this.#d=b,this.#o++,this.#G(b,C,f),f&&(f.set="add"),I=!1;else{this.#W(b);let E=this.#a[b];if(r!==E){if(this.#_&&this.#A(E)){E.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:N}=E;N!==void 0&&!l&&(this.#E&&this.#n?.(N,t,"set"),this.#p&&this.#h?.push([N,t,"set"]))}else l||(this.#E&&this.#n?.(E,t,"set"),this.#p&&this.#h?.push([E,t,"set"]));if(this.#x(b),this.#G(b,C,f),this.#a[b]=r,f){f.set="replace";let N=E&&this.#A(E)?E.__staleWhileFetching:E;N!==void 0&&(f.oldValue=N)}}else f&&(f.set="update")}if(a!==0&&!this.#C&&this.#B(),this.#C&&(I||this.#k(b,a,o),f&&this.#c(f,b)),!l&&this.#p&&this.#h){let E=this.#h,N;for(;N=E?.shift();)this.#r?.(...N)}return this}pop(){try{for(;this.#o;){let t=this.#a[this.#I];if(this.#L(!0),this.#A(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#h){let t=this.#h,r;for(;r=t?.shift();)this.#r?.(...r)}}}#L(t){let r=this.#I,n=this.#u[r],a=this.#a[r];return this.#_&&this.#A(a)?a.__abortController.abort(new Error("evicted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(a,n,"evict"),this.#p&&this.#h?.push([a,n,"evict"])),this.#x(r),t&&(this.#u[r]=void 0,this.#a[r]=void 0,this.#b.push(r)),this.#o===1?(this.#I=this.#d=0,this.#b.length=0):this.#I=this.#m[r],this.#l.delete(n),this.#o--,r}has(t,r={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:a}=r,o=this.#l.get(t);if(o!==void 0){let l=this.#a[o];if(this.#A(l)&&l.__staleWhileFetching===void 0)return!1;if(this.#y(o))a&&(a.has="stale",this.#c(a,o));else return n&&this.#w(o),a&&(a.has="hit",this.#c(a,o)),!0}else a&&(a.has="miss");return!1}peek(t,r={}){let{allowStale:n=this.allowStale}=r,a=this.#l.get(t);if(a===void 0||!n&&this.#y(a))return;let o=this.#a[a];return this.#A(o)?o.__staleWhileFetching:o}#V(t,r,n,a){let o=r===void 0?void 0:this.#a[r];if(this.#A(o))return o;let l=new Odt,{signal:A}=n;A?.addEventListener("abort",()=>l.abort(A.reason),{signal:l.signal});let f={signal:l.signal,options:n,context:a},I=(F,Q=!1)=>{let{aborted:X}=l.signal,ae=n.ignoreFetchAbort&&F!==void 0;if(n.status&&(X&&!Q?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ae&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),X&&!ae&&!Q)return b(l.signal.reason);let ne=N;return this.#a[r]===N&&(F===void 0?ne.__staleWhileFetching?this.#a[r]=ne.__staleWhileFetching:this.#D(t,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(t,F,f.options))),F},C=F=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=F),b(F)),b=F=>{let{aborted:Q}=l.signal,X=Q&&n.allowStaleOnFetchAbort,ae=X||n.allowStaleOnFetchRejection,ne=ae||n.noDeleteOnFetchRejection,ce=N;if(this.#a[r]===N&&(!ne||ce.__staleWhileFetching===void 0?this.#D(t,"fetch"):X||(this.#a[r]=ce.__staleWhileFetching)),ae)return n.status&&ce.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),ce.__staleWhileFetching;if(ce.__returned===ce)throw F},E=(F,Q)=>{let X=this.#i?.(t,o,f);X&&X instanceof Promise&&X.then(ae=>F(ae===void 0?void 0:ae),Q),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(F(void 0),n.allowStaleOnFetchAbort&&(F=ae=>I(ae,!0)))})};n.status&&(n.status.fetchDispatched=!0);let N=new Promise(E).then(I,C),B=Object.assign(N,{__abortController:l,__staleWhileFetching:o,__returned:void 0});return r===void 0?(this.set(t,B,{...f.options,status:void 0}),r=this.#l.get(t)):this.#a[r]=B,B}#A(t){if(!this.#_)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof Odt}async fetch(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:A=this.noDisposeOnSet,size:f=0,sizeCalculation:I=this.sizeCalculation,noUpdateTTL:C=this.noUpdateTTL,noDeleteOnFetchRejection:b=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:E=this.allowStaleOnFetchRejection,ignoreFetchAbort:N=this.ignoreFetchAbort,allowStaleOnFetchAbort:B=this.allowStaleOnFetchAbort,context:F,forceRefresh:Q=!1,status:X,signal:ae}=r;if(!this.#_)return X&&(X.fetch="get"),this.get(t,{allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,status:X});let ne={allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,ttl:l,noDisposeOnSet:A,size:f,sizeCalculation:I,noUpdateTTL:C,noDeleteOnFetchRejection:b,allowStaleOnFetchRejection:E,allowStaleOnFetchAbort:B,ignoreFetchAbort:N,status:X,signal:ae},ce=this.#l.get(t);if(ce===void 0){X&&(X.fetch="miss");let fe=this.#V(t,ce,ne,F);return fe.__returned=fe}else{let fe=this.#a[ce];if(this.#A(fe)){let De=n&&fe.__staleWhileFetching!==void 0;return X&&(X.fetch="inflight",De&&(X.returnedStale=!0)),De?fe.__staleWhileFetching:fe.__returned=fe}let ue=this.#y(ce);if(!Q&&!ue)return X&&(X.fetch="hit"),this.#W(ce),a&&this.#w(ce),X&&this.#c(X,ce),fe;let de=this.#V(t,ce,ne,F),Se=de.__staleWhileFetching!==void 0&&n;return X&&(X.fetch=ue?"stale":"refresh",Se&&ue&&(X.returnedStale=!0)),Se?de.__staleWhileFetching:de.__returned=de}}async forceFetch(t,r={}){let n=await this.fetch(t,r);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(t,r={}){let n=this.#s;if(!n)throw new Error("no memoMethod provided to constructor");let{context:a,forceRefresh:o,...l}=r,A=this.get(t,l);if(!o&&A!==void 0)return A;let f=n(t,A,{options:l,context:a});return this.set(t,f,l),f}get(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:l}=r,A=this.#l.get(t);if(A!==void 0){let f=this.#a[A],I=this.#A(f);return l&&this.#c(l,A),this.#y(A)?(l&&(l.get="stale"),I?(l&&n&&f.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?f.__staleWhileFetching:void 0):(o||this.#D(t,"expire"),l&&n&&(l.returnedStale=!0),n?f:void 0)):(l&&(l.get="hit"),I?f.__staleWhileFetching:(this.#W(A),a&&this.#w(A),f))}else l&&(l.get="miss")}#P(t,r){this.#f[r]=t,this.#m[t]=r}#W(t){t!==this.#d&&(t===this.#I?this.#I=this.#m[t]:this.#P(this.#f[t],this.#m[t]),this.#P(this.#d,t),this.#d=t)}delete(t){return this.#D(t,"delete")}#D(t,r){let n=!1;if(this.#o!==0){let a=this.#l.get(t);if(a!==void 0)if(n=!0,this.#o===1)this.#O(r);else{this.#x(a);let o=this.#a[a];if(this.#A(o)?o.__abortController.abort(new Error("deleted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(o,t,r),this.#p&&this.#h?.push([o,t,r])),this.#l.delete(t),this.#u[a]=void 0,this.#a[a]=void 0,a===this.#d)this.#d=this.#f[a];else if(a===this.#I)this.#I=this.#m[a];else{let l=this.#f[a];this.#m[l]=this.#m[a];let A=this.#m[a];this.#f[A]=this.#f[a]}this.#o--,this.#b.push(a)}}if(this.#p&&this.#h?.length){let a=this.#h,o;for(;o=a?.shift();)this.#r?.(...o)}return n}clear(){return this.#O("delete")}#O(t){for(let r of this.#R({allowStale:!0})){let n=this.#a[r];if(this.#A(n))n.__abortController.abort(new Error("deleted"));else{let a=this.#u[r];this.#E&&this.#n?.(n,a,t),this.#p&&this.#h?.push([n,a,t])}}if(this.#l.clear(),this.#a.fill(void 0),this.#u.fill(void 0),this.#C&&this.#v&&(this.#C.fill(0),this.#v.fill(0)),this.#S&&this.#S.fill(0),this.#I=0,this.#d=0,this.#b.length=0,this.#g=0,this.#o=0,this.#p&&this.#h){let r=this.#h,n;for(;n=r?.shift();)this.#r?.(...n)}}};Mdt.LRUCache=pfr});var HWn=H((Fql,MWn)=>{"use strict";var M_=(...e)=>e.every(t=>t)?e.join(""):"",nT=e=>e?encodeURIComponent(e):"",OWn=e=>e.toLowerCase().replace(/^\W+|\/|\W+$/g,"").replace(/\W+/g,"-"),_Xo={sshtemplate:({domain:e,user:t,project:r,committish:n})=>`git@${e}:${t}/${r}.git${M_("#",n)}`,sshurltemplate:({domain:e,user:t,project:r,committish:n})=>`git+ssh://git@${e}/${t}/${r}.git${M_("#",n)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a,path:o})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o)}`,browsetemplate:({domain:e,user:t,project:r,committish:n,treepath:a})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n))}`,browsetreetemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,browseblobtemplate:({domain:e,user:t,project:r,committish:n,blobpath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,docstemplate:({domain:e,user:t,project:r,treepath:n,committish:a})=>`https://${e}/${t}/${r}${M_("/",n,"/",nT(a))}#readme`,httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/raw/${nT(n||"HEAD")}/${a}`,shortcuttemplate:({type:e,user:t,project:r,committish:n})=>`${e}:${t}/${r}${M_("#",n)}`,pathtemplate:({user:e,project:t,committish:r})=>`${e}/${t}${M_("#",r)}`,bugstemplate:({domain:e,user:t,project:r})=>`https://${e}/${t}/${r}/issues`,hashformat:OWn},Voe={};Voe.github={protocols:["git:","http:","git+ssh:","git+https:","ssh:","https:"],domain:"github.com",treepath:"tree",blobpath:"blob",editpath:"edit",filetemplate:({auth:e,user:t,project:r,committish:n,path:a})=>`https://${M_(e,"@")}raw.githubusercontent.com/${t}/${r}/${nT(n||"HEAD")}/${a}`,gittemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://codeload.${e}/${t}/${r}/tar.gz/${nT(n||"HEAD")}`,extract:e=>{let[,t,r,n,a]=e.pathname.split("/",5);if(!(n&&n!=="tree")&&(n||(a=e.hash.slice(1)),r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:a}}};Voe.bitbucket={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"bitbucket.org",treepath:"src",blobpath:"src",editpath:"?mode=edit",edittemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,editpath:l})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o,l)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/get/${nT(n||"HEAD")}.tar.gz`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["get"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};Voe.gitlab={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"gitlab.com",treepath:"tree",blobpath:"tree",editpath:"-/edit",httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/repository/archive.tar.gz?ref=${nT(n||"HEAD")}`,extract:e=>{let t=e.pathname.slice(1);if(t.includes("/-/")||t.includes("/archive.tar.gz"))return;let r=t.split("/"),n=r.pop();n.endsWith(".git")&&(n=n.slice(0,-4));let a=r.join("/");if(!(!a||!n))return{user:a,project:n,committish:e.hash.slice(1)}}};Voe.gist={protocols:["git:","git+ssh:","git+https:","ssh:","https:"],domain:"gist.github.com",editpath:"edit",sshtemplate:({domain:e,project:t,committish:r})=>`git@${e}:${t}.git${M_("#",r)}`,sshurltemplate:({domain:e,project:t,committish:r})=>`git+ssh://git@${e}/${t}.git${M_("#",r)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a})=>`https://${e}/${t}/${r}${M_("/",nT(n))}/${a}`,browsetemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,browsetreetemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,browseblobtemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,docstemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,httpstemplate:({domain:e,project:t,committish:r})=>`git+https://${e}/${t}.git${M_("#",r)}`,filetemplate:({user:e,project:t,committish:r,path:n})=>`https://gist.githubusercontent.com/${e}/${t}/raw${M_("/",nT(r))}/${n}`,shortcuttemplate:({type:e,project:t,committish:r})=>`${e}:${t}${M_("#",r)}`,pathtemplate:({project:e,committish:t})=>`${e}${M_("#",t)}`,bugstemplate:({domain:e,project:t})=>`https://${e}/${t}`,gittemplate:({domain:e,project:t,committish:r})=>`git://${e}/${t}.git${M_("#",r)}`,tarballtemplate:({project:e,committish:t})=>`https://codeload.github.com/gist/${e}/tar.gz/${nT(t||"HEAD")}`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(n!=="raw"){if(!r){if(!t)return;r=t,t=null}return r.endsWith(".git")&&(r=r.slice(0,-4)),{user:t,project:r,committish:e.hash.slice(1)}}},hashformat:function(e){return e&&"file-"+OWn(e)}};Voe.sourcehut={protocols:["git+ssh:","https:"],domain:"git.sr.ht",treepath:"tree",blobpath:"tree",filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/blob/${nT(n)||"HEAD"}/${a}`,httpstemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}.git${M_("#",n)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/archive/${nT(n)||"HEAD"}.tar.gz`,bugstemplate:()=>null,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["archive"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};for(let[e,t]of Object.entries(Voe))Voe[e]=Object.assign({},_Xo,t);MWn.exports=Voe});var Ifr=H((Zql,QWn)=>{var yXo=wt("url"),ffr=(e,t,r)=>{let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)},YWn=e=>{try{return new yXo.URL(e)}catch{}},bXo=(e,t)=>{let r=e.indexOf(":"),n=e.slice(0,r+1);if(Object.prototype.hasOwnProperty.call(t,n))return e;let a=e.indexOf("@");return a>-1?a>r?`git+ssh://${e}`:e:e.indexOf("//")===r+1?e:`${e.slice(0,r+1)}//${e.slice(r+1)}`},EXo=e=>{let t=ffr(e,"@","#"),r=ffr(e,":","#");return r>t&&(e=e.slice(0,r)+"/"+e.slice(r+1)),ffr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`git+ssh://${e}`),e};QWn.exports=(e,t)=>{let r=t?bXo(e,t):e;return YWn(r)||YWn(EXo(r))}});var JWn=H((Lql,XWn)=>{"use strict";var SXo=Ifr(),vXo=e=>{let t=e.indexOf("#"),r=e.indexOf("/"),n=e.indexOf("/",r+1),a=e.indexOf(":"),o=/\s/.exec(e),l=e.indexOf("@"),A=!o||t>-1&&o.index>t,f=l===-1||t>-1&&l>t,I=a===-1||t>-1&&a>t,C=n===-1||t>-1&&n>t,b=r>0,E=t>-1?e[t-1]!=="/":!e.endsWith("/"),N=!e.startsWith(".");return A&&b&&E&&N&&f&&I&&C};XWn.exports=(e,t,{gitHosts:r,protocols:n})=>{if(!e)return;let a=vXo(e)?`github:${e}`:e,o=SXo(a,n);if(!o)return;let l=r.byShortcut[o.protocol],A=r.byDomain[o.hostname.startsWith("www.")?o.hostname.slice(4):o.hostname],f=l||A;if(!f)return;let I=r[l||A],C=null;n[o.protocol]?.auth&&(o.username||o.password)&&(C=`${o.username}${o.password?":"+o.password:""}`);let b=null,E=null,N=null,B=null;try{if(l){let F=o.pathname.startsWith("/")?o.pathname.slice(1):o.pathname,Q=F.indexOf("@");Q>-1&&(F=F.slice(Q+1));let X=F.lastIndexOf("/");X>-1?(E=decodeURIComponent(F.slice(0,X)),E||(E=null),N=decodeURIComponent(F.slice(X+1))):N=decodeURIComponent(F),N.endsWith(".git")&&(N=N.slice(0,-4)),o.hash&&(b=decodeURIComponent(o.hash.slice(1))),B="shortcut"}else{if(!I.protocols.includes(o.protocol))return;let F=I.extract(o);if(!F)return;E=F.user&&decodeURIComponent(F.user),N=decodeURIComponent(F.project),b=decodeURIComponent(F.committish),B=n[o.protocol]?.name||o.protocol.slice(0,-1)}}catch(F){if(F instanceof URIError)return;throw F}return[f,E,C,N,b,B,t]}});var mfr=H((Vql,UWn)=>{"use strict";var{LRUCache:BXo}=yIe(),wXo=HWn(),TXo=JWn(),RXo=Ifr(),hfr=new BXo({max:1e3}),Hdt=class e{constructor(t,r,n,a,o,l,A={}){Object.assign(this,e.#e[t],{type:t,user:r,auth:n,project:a,committish:o,default:l,opts:A})}static#e={byShortcut:{},byDomain:{}};static#t={"git+ssh:":{name:"sshurl"},"ssh:":{name:"sshurl"},"git+https:":{name:"https",auth:!0},"git:":{auth:!0},"http:":{auth:!0},"https:":{auth:!0},"git+http:":{auth:!0}};static addHost(t,r){e.#e[t]=r,e.#e.byDomain[r.domain]=t,e.#e.byShortcut[`${t}:`]=t,e.#t[`${t}:`]={name:t}}static fromUrl(t,r){if(typeof t!="string")return;let n=t+JSON.stringify(r||{});if(!hfr.has(n)){let a=TXo(t,r,{gitHosts:e.#e,protocols:e.#t});hfr.set(n,a?new e(...a):void 0)}return hfr.get(n)}static parseUrl(t){return RXo(t)}#n(t,r){if(typeof t!="function")return null;let n={...this,...this.opts,...r};n.path||(n.path=""),n.path.startsWith("/")&&(n.path=n.path.slice(1)),n.noCommittish&&(n.committish=null);let a=t(n);return n.noGitPlus&&a.startsWith("git+")?a.slice(4):a}hash(){return this.committish?`#${this.committish}`:""}ssh(t){return this.#n(this.sshtemplate,t)}sshurl(t){return this.#n(this.sshurltemplate,t)}browse(t,...r){return typeof t!="string"?this.#n(this.browsetemplate,t):typeof r[0]!="string"?this.#n(this.browsetreetemplate,{...r[0],path:t}):this.#n(this.browsetreetemplate,{...r[1],fragment:r[0],path:t})}browseFile(t,...r){return typeof r[0]!="string"?this.#n(this.browseblobtemplate,{...r[0],path:t}):this.#n(this.browseblobtemplate,{...r[1],fragment:r[0],path:t})}docs(t){return this.#n(this.docstemplate,t)}bugs(t){return this.#n(this.bugstemplate,t)}https(t){return this.#n(this.httpstemplate,t)}git(t){return this.#n(this.gittemplate,t)}shortcut(t){return this.#n(this.shortcuttemplate,t)}path(t){return this.#n(this.pathtemplate,t)}tarball(t){return this.#n(this.tarballtemplate,{...t,noCommittish:!1})}file(t,r){return this.#n(this.filetemplate,{...r,path:t})}edit(t,r){return this.#n(this.edittemplate,{...r,path:t})}getDefaultRepresentation(){return this.default}toString(t){return this.default&&typeof this[this.default]=="function"?this[this.default](t):this.sshurl(t)}};for(let[e,t]of Object.entries(wXo))Hdt.addHost(e,t);UWn.exports=Hdt});var jWn=H((Pql,KWn)=>{"use strict";var{URL:NXo}=wt("url"),DXo=new RegExp(/^\/?:?([/\w-.]+)\/([\w-.]+)\/?$/),kXo=new RegExp(/^\/repos\/([\w-.]+)\/([\w-.]+)\/(?:tarball|zipball)(?:\/.+)?$/),xXo=new RegExp(/^\/([\w-.]+)\/([\w-.]+)\/(?:legacy\.(?:zip|tar\.gz))(?:\/.+)?$/);KWn.exports=e=>{let t=e.replace(/^git@/,"https://git@").replace(/git@([.\w]+):(?!\d)/,"git@$1/").replace(/\.git$/,""),r=new NXo(t,"https://example.com/"),n=a=>({browse:FXo(r,a),domain:r.host,project:a[2]||null,type:GXo(r),user:a[1]||null});if(r.host){if(r.host.includes("api.github.com")){let a=kXo.exec(r.pathname)||[];return n(a)}if(r.host.includes("codeload.github.com")){let a=xXo.exec(r.pathname)||[];return n(a)}}return n(DXo.exec(r.pathname)||[])};function GXo({host:e}){return typeof e!="string"?null:e.indexOf("github")!==-1?"github":e.indexOf("gitlab")!==-1?"gitlab":null}function FXo(e,t){let n=`${e.protocol==="http:"?"http:":"https:"}//${e.host}/${t[1]}/${t[2]}`;return()=>n}});var Cfr=H((Mql,LXo)=>{LXo.exports=["0BSD","3D-Slicer-1.0","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMD-newlib","AMDPLPA","AML","AML-glslang","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Display-PostScript","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Darwin","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-2-Clause-first-lines","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-acpica","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Source-beginning-file","BSD-Systemics","BSD-Systemics-W3Works","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Borceux","Brian-Gladman-2-Clause","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-AU","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CMU-Mach-nodoc","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","Caldera-no-preamble","Catharon","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CrystalStacker","Cube","D-FSL-1.0","DEC-3-Clause","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DRL-1.1","DSDP","DocBook-Schema","DocBook-XML","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFAP-no-warranty-disclaimer","FSFUL","FSFULLR","FSFULLRWD","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GCR-docs","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Giftware","Glide","Glulxe","Graphics-Gems","Gutmann","HIDAPI","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Fenneberg-Livingston","HPND-INRIA-IMAG","HPND-Intel","HPND-Kevlin-Henney","HPND-MIT-disclaimer","HPND-Markus-Kuhn","HPND-Netrek","HPND-Pbmplus","HPND-UC","HPND-UC-export-US","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-acknowledgement","HPND-export-US-modify","HPND-export2-US","HPND-merchantability-variant","HPND-sell-MIT-disclaimer-xserver","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HPND-sell-variant-MIT-disclaimer-rev","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ISC-Veillard","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPD-document","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIT","MIT-0","MIT-CMU","MIT-Festival","MIT-Khronos-old","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","Mackerras-3-Clause","Mackerras-3-Clause-acknowledgment","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCBI-PD","NCGL-UK-2.0","NCL","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTP","NTP-0","Naumen","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OAR","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","OpenSSL-standalone","OpenVision","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PPL","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Pixar","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","Ruby-pty","SAX-PD","SAX-PD-2.0","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMLNJ","SMPPL","SNIA","SPL-1.0","SSH-OpenSSH","SSH-short","SSLeay-standalone","SSPL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","Sun-PPP","Sun-PPP-2000","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TGPPL-1.0","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","UCAR","UCL-1.0","UMich-Merit","UPL-1.0","URT-RLE","Ubuntu-font-1.0","Unicode-3.0","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","X11-swapped","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","any-OSI","bcrypt-Solar-Designer","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","cve-tou","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","gnuplot","gtkbook","hdparm","iMatix","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","mailprio","metamail","mpi-permissive","mpich2","mplus","pkgconf","pnmstitch","psfrag","psutils","python-ldap","radvd","snprintf","softSurfer","ssh-keyscan","swrule","threeparttable","ulem","w3m","xinetd","xkeyboard-config-Zinoviev","xlock","xpp","xzoom","zlib-acknowledgement"]});var qWn=H((Hql,VXo)=>{VXo.exports=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.1","LGPL-3.0","Net-SNMP","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"]});var $Wn=H((Yql,PXo)=>{PXo.exports=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-1.24","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","fmt-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","Gmsh-exception","GNAT-exception","GNOME-examples-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"]});var tOn=H((Qql,eOn)=>{"use strict";var WXo=[].concat(Cfr()).concat(qWn()),OXo=$Wn();eOn.exports=function(e){var t=0;function r(){return t1&&e[t-2]===" ")throw new Error("Space before `+`");return B&&{type:"OPERATOR",string:B}}function l(){return n(/[A-Za-z0-9-.]+/)}function A(){var B=l();if(!B)throw new Error("Expected idstring at offset "+t);return B}function f(){if(n("DocumentRef-")){var B=A();return{type:"DOCUMENTREF",string:B}}}function I(){if(n("LicenseRef-")){var B=A();return{type:"LICENSEREF",string:B}}}function C(){var B=t,F=l();if(WXo.indexOf(F)!==-1)return{type:"LICENSE",string:F};if(OXo.indexOf(F)!==-1)return{type:"EXCEPTION",string:F};t=B}function b(){return o()||f()||I()||C()}for(var E=[];r()&&(a(),!!r());){var N=b();if(!N)throw new Error("Unexpected `"+e[t]+"` at offset "+t);E.push(N)}return E}});var nOn=H((Xql,rOn)=>{"use strict";rOn.exports=function(e){var t=0;function r(){return t{"use strict";var MXo=tOn(),HXo=nOn();iOn.exports=function(e){return HXo(MXo(e))}});var dOn=H((Uql,AOn)=>{var YXo=_fr(),QXo=Cfr();function Ydt(e){try{return YXo(e),!0}catch{return!1}}function gOn(e,t){var r=t[0].length-e[0].length;return r!==0?r:e[0].toUpperCase().localeCompare(t[0].toUpperCase())}var sOn=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(gOn),XXo=0,JXo=1,oOn=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],yfr=QXo.map(function(e){var t=/^(.*)-\d+\.\d+$/.exec(e);return t?[t[0],t[1]]:[e,null]}).reduce(function(e,t){var r=t[1];return e[r]=e[r]||[],e[r].push(t[0]),e},{}),UXo=Object.keys(yfr).map(function(t){return[t,yfr[t]]}).filter(function(t){return t[1].length===1&&t[0]!==null&&t[0]!=="APL"}).map(function(t){return[t[0],t[1][0]]});yfr=void 0;var aOn=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(UXo).sort(gOn),KXo=0,jXo=1,cOn=function(e){for(var t=0;t-1)return n[jXo]}return null},uOn=function(e,t){for(var r=0;r-1){var o=e.replace(a,n[JXo]),l=t(o);if(l!==null)return l}}return null};AOn.exports=function(e,t){t=t||{};var r=t.upgrade===void 0?!0:!!t.upgrade;function n(A){return r?zXo(A):A}var a=typeof e=="string"&&e.trim().length!==0;if(!a)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),Ydt(e))return n(e);var o=e.replace(/\+$/,"").trim();if(Ydt(o))return n(o);var l=cOn(e);return l!==null||(l=uOn(e,function(A){return Ydt(A)?A:cOn(A)}),l!==null)||(l=lOn(e),l!==null)||(l=uOn(e,lOn),l!==null)?n(l):null};function zXo(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}});var hOn=H((Kql,IOn)=>{var qXo=_fr(),$Xo=dOn(),pOn='license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN "',e4o=/^SEE LICEN[CS]E IN (.+)$/;function fOn(e,t){return t.slice(0,e.length)===e}function bfr(e){if(e.hasOwnProperty("license")){var t=e.license;return fOn("LicenseRef",t)||fOn("DocumentRef",t)}else return bfr(e.left)||bfr(e.right)}IOn.exports=function(e){var t;try{t=qXo(e)}catch{var r;if(e==="UNLICENSED"||e==="UNLICENCED")return{validForOldPackages:!0,validForNewPackages:!0,unlicensed:!0};if(r=e4o.exec(e))return{validForOldPackages:!0,validForNewPackages:!0,inFile:r[1]};var n={validForOldPackages:!1,validForNewPackages:!1,warnings:[pOn]};if(e.trim().length!==0){var a=$Xo(e);a&&n.warnings.push('license is similar to the valid expression "'+a+'"')}return n}return bfr(t)?{validForNewPackages:!1,validForOldPackages:!1,spdx:!0,warnings:[pOn]}:{validForNewPackages:!0,validForOldPackages:!0,spdx:!0}}});var COn=H((jql,mOn)=>{mOn.exports=t4o;function t4o(e){if(!e||e==="ERROR: No README data found!")return;e=e.trim().split(` -`);let t=0;for(;e[t]&&e[t].trim().match(/^(#|$)/);)t++;let r=e.length,n=t+1;for(;n{r4o.exports={topLevel:{dependancies:"dependencies",dependecies:"dependencies",depdenencies:"dependencies",devEependencies:"devDependencies",depends:"dependencies","dev-dependencies":"devDependencies",devDependences:"devDependencies",devDepenencies:"devDependencies",devdependencies:"devDependencies",repostitory:"repository",repo:"repository",prefereGlobal:"preferGlobal",hompage:"homepage",hampage:"homepage",autohr:"author",autor:"author",contributers:"contributors",publicationConfig:"publishConfig",script:"scripts"},bugs:{web:"url",name:"url"},script:{server:"start",tests:"test"}}});var SOn=H((qql,EOn)=>{var n4o=k6t(),i4o=x6t(),s4o=hOn(),Qdt=mfr(),o4o=wt("node:module"),a4o=["dependencies","devDependencies","optionalDependencies"],c4o=COn(),Efr=wt("url"),Poe=_On(),yOn=e=>e.includes("@")&&e.indexOf("@")"u"&&(t={});var r=t.strict;if(!e.name&&!r){e.name="";return}if(typeof e.name!="string")throw new Error("name field must be a string.");r||(e.name=e.name.trim()),g4o(e.name,r,t.allowLegacyCase),o4o.builtinModules.includes(e.name)&&this.warn("conflictingName",e.name)},fixDescriptionField:function(e){e.description&&typeof e.description!="string"&&(this.warn("nonStringDescription"),delete e.description),e.readme&&!e.description&&(e.description=c4o(e.readme)),e.description===void 0&&delete e.description,e.description||this.warn("missingDescription")},fixReadmeField:function(e){e.readme||(this.warn("missingReadme"),e.readme="ERROR: No README data found!")},fixBugsField:function(e){if(!e.bugs&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.bugs()&&(e.bugs={url:t.bugs()})}else if(e.bugs){if(typeof e.bugs=="string")yOn(e.bugs)?e.bugs={email:e.bugs}:Efr.parse(e.bugs).protocol?e.bugs={url:e.bugs}:this.warn("nonEmailUrlBugsString");else{h4o(e.bugs,this.warn);var r=e.bugs;e.bugs={},r.url&&(typeof r.url=="string"&&Efr.parse(r.url).protocol?e.bugs.url=r.url:this.warn("nonUrlBugsUrlField")),r.email&&(typeof r.email=="string"&&yOn(r.email)?e.bugs.email=r.email:this.warn("nonEmailBugsEmailField"))}!e.bugs.email&&!e.bugs.url&&(delete e.bugs,this.warn("emptyNormalizedBugs"))}},fixHomepageField:function(e){if(!e.homepage&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.docs()&&(e.homepage=t.docs())}if(e.homepage){if(typeof e.homepage!="string")return this.warn("nonUrlHomepage"),delete e.homepage;Efr.parse(e.homepage).protocol||(e.homepage="http://"+e.homepage)}},fixLicenseField:function(e){let t=e.license||e.licence;if(!t)return this.warn("missingLicense");if(typeof t!="string"||t.length<1||t.trim()==="")return this.warn("invalidLicense");if(!s4o(t).validForNewPackages)return this.warn("invalidLicense")}};function l4o(e){if(e.charAt(0)!=="@")return!1;var t=e.slice(1).split("/");return t.length!==2?!1:t[0]&&t[1]&&t[0]===encodeURIComponent(t[0])&&t[1]===encodeURIComponent(t[1])}function u4o(e){return!e.match(/[/@\s+%:]/)&&e===encodeURIComponent(e)}function g4o(e,t,r){if(e.charAt(0)==="."||!(l4o(e)||u4o(e))||t&&!r&&e!==e.toLowerCase()||e.toLowerCase()==="node_modules"||e.toLowerCase()==="favicon.ico")throw new Error("Invalid name: "+JSON.stringify(e))}function bOn(e,t){return e.author&&(e.author=t(e.author)),["maintainers","contributors"].forEach(function(r){Array.isArray(e[r])&&(e[r]=e[r].map(t))}),e}function A4o(e){if(typeof e=="string")return e;var t=e.name||"",r=e.url||e.web,n=r?" ("+r+")":"",a=e.email||e.mail,o=a?" <"+a+">":"";return t+o+n}function d4o(e){if(typeof e!="string")return e;var t=e.match(/^([^(<]+)/),r=e.match(/\(([^()]+)\)/),n=e.match(/<([^<>]+)>/),a={};return t&&t[0].trim()&&(a.name=t[0].trim()),n&&(a.email=n[1]),r&&(a.url=r[1]),a}function p4o(e){var t=e.optionalDependencies;if(t){var r=e.dependencies||{};Object.keys(t).forEach(function(n){r[n]=t[n]}),e.dependencies=r}}function f4o(e,t,r){if(!e)return{};if(typeof e=="string"&&(e=e.trim().split(/[\n\r\s\t ,]+/)),!Array.isArray(e))return e;r("deprecatedArrayDependencies",t);var n={};return e.filter(function(a){return typeof a=="string"}).forEach(function(a){a=a.trim().split(/(:?[@\s><=])/);var o=a.shift(),l=a.join("");l=l.trim(),l=l.replace(/^@/,""),n[o]=l}),n}function I4o(e,t){a4o.forEach(function(r){e[r]&&(e[r]=f4o(e[r],r,t))})}function h4o(e,t){e&&Object.keys(e).forEach(function(r){Poe.bugs[r]&&(t("typo",r,Poe.bugs[r],"bugs"),e[Poe.bugs[r]]=e[r],delete e[r])})}});var vOn=H(($ql,m4o)=>{m4o.exports={repositories:"'repositories' (plural) Not supported. Please pick one as the 'repository' field",missingRepository:"No repository field.",brokenGitUrl:"Probably broken git url: %s",nonObjectScripts:"scripts must be an object",nonStringScript:"script values must be string commands",nonArrayFiles:"Invalid 'files' member",invalidFilename:"Invalid filename in 'files' list: %s",nonArrayBundleDependencies:"Invalid 'bundleDependencies' list. Must be array of package names",nonStringBundleDependency:"Invalid bundleDependencies member: %s",nonDependencyBundleDependency:"Non-dependency in bundleDependencies: %s",nonObjectDependencies:"%s field must be an object",nonStringDependency:"Invalid dependency: %s %s",deprecatedArrayDependencies:"specifying %s as array is deprecated",deprecatedModules:"modules field is deprecated",nonArrayKeywords:"keywords should be an array of strings",nonStringKeyword:"keywords should be an array of strings",conflictingName:"%s is also the name of a node core module.",nonStringDescription:"'description' field should be a string",missingDescription:"No description",missingReadme:"No README data",missingLicense:"No license field.",nonEmailUrlBugsString:"Bug string field must be url, email, or {email,url}",nonUrlBugsUrlField:"bugs.url field must be a string url. Deleted.",nonEmailBugsEmailField:"bugs.email field must be a string email. Deleted.",emptyNormalizedBugs:"Normalized value of bugs field is an empty object. Deleted.",nonUrlHomepage:"homepage field must be a string url. Deleted.",invalidLicense:"license should be a valid SPDX license expression",typo:"%s should probably be %s."}});var TOn=H((e$l,wOn)=>{var BOn=wt("util"),Sfr=vOn();wOn.exports=function(){var e=Array.prototype.slice.call(arguments,0),t=e.shift();if(t==="typo")return C4o.apply(null,e);var r=Sfr[t]?Sfr[t]:t+": '%s'";return e.unshift(r),BOn.format.apply(null,e)};function C4o(e,t,r){return r&&(e=r+"['"+e+"']",t=r+"['"+t+"']"),BOn.format(Sfr.typo,e,t)}});var wfr=H((t$l,DOn)=>{DOn.exports=ROn;var vfr=SOn();ROn.fixer=vfr;var _4o=TOn(),y4o=["name","version","description","repository","modules","scripts","files","bin","man","bugs","keywords","readme","homepage","license"],b4o=["dependencies","people","typos"],Bfr=y4o.map(function(e){return NOn(e)+"Field"});Bfr=Bfr.concat(b4o);function ROn(e,t,r){t===!0&&(t=null,r=!0),r||(r=!1),(!t||e.private)&&(t=function(){}),e.scripts&&e.scripts.install==="node-gyp rebuild"&&!e.scripts.preinstall&&(e.gypfile=!0),vfr.warn=function(){t(_4o.apply(null,arguments))},Bfr.forEach(function(n){vfr["fix"+NOn(n)](e,r)}),e._id=e.name+"@"+e.version}function NOn(e){return e.charAt(0).toUpperCase()+e.slice(1)}});var Udt=H((s$l,Tfr)=>{var Jdt=process||{},FOn=Jdt.argv||[],Xdt=Jdt.env||{},B4o=!(Xdt.NO_COLOR||FOn.includes("--no-color"))&&(!!Xdt.FORCE_COLOR||FOn.includes("--color")||Jdt.platform==="win32"||(Jdt.stdout||{}).isTTY&&Xdt.TERM!=="dumb"||!!Xdt.CI),w4o=(e,t,r=e)=>n=>{let a=""+n,o=a.indexOf(t,e.length);return~o?e+T4o(a,t,r,o)+t:e+a+t},T4o=(e,t,r,n)=>{let a="",o=0;do a+=e.substring(o,n)+r,o=n+t.length,n=e.indexOf(t,o);while(~n);return a+e.substring(o)},ZOn=(e=B4o)=>{let t=e?w4o:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Tfr.exports=ZOn();Tfr.exports.createColors=ZOn});var Rfr=H(Kdt=>{Object.defineProperty(Kdt,"__esModule",{value:!0});Kdt.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;Kdt.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!!(e[3]||e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}});var OOn=H(fMe=>{"use strict";Object.defineProperty(fMe,"__esModule",{value:!0});fMe.isIdentifierChar=WOn;fMe.isIdentifierName=k4o;fMe.isIdentifierStart=POn;var Dfr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",LOn="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",R4o=new RegExp("["+Dfr+"]"),N4o=new RegExp("["+Dfr+LOn+"]");Dfr=LOn=null;var VOn=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],D4o=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Nfr(e,t){let r=65536;for(let n=0,a=t.length;ne)return!1;if(r+=t[n+1],r>=e)return!0}return!1}function POn(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&R4o.test(String.fromCharCode(e)):Nfr(e,VOn)}function WOn(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&N4o.test(String.fromCharCode(e)):Nfr(e,VOn)||Nfr(e,D4o)}function k4o(e){let t=!0;for(let r=0;r{"use strict";Object.defineProperty(bIe,"__esModule",{value:!0});bIe.isKeyword=L4o;bIe.isReservedWord=MOn;bIe.isStrictBindOnlyReservedWord=YOn;bIe.isStrictBindReservedWord=Z4o;bIe.isStrictReservedWord=HOn;var kfr={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},x4o=new Set(kfr.keyword),G4o=new Set(kfr.strict),F4o=new Set(kfr.strictBind);function MOn(e,t){return t&&e==="await"||e==="enum"}function HOn(e,t){return MOn(e,t)||G4o.has(e)}function YOn(e){return F4o.has(e)}function Z4o(e,t){return HOn(e,t)||YOn(e)}function L4o(e){return x4o.has(e)}});var Gfr=H(c8=>{"use strict";Object.defineProperty(c8,"__esModule",{value:!0});Object.defineProperty(c8,"isIdentifierChar",{enumerable:!0,get:function(){return xfr.isIdentifierChar}});Object.defineProperty(c8,"isIdentifierName",{enumerable:!0,get:function(){return xfr.isIdentifierName}});Object.defineProperty(c8,"isIdentifierStart",{enumerable:!0,get:function(){return xfr.isIdentifierStart}});Object.defineProperty(c8,"isKeyword",{enumerable:!0,get:function(){return IMe.isKeyword}});Object.defineProperty(c8,"isReservedWord",{enumerable:!0,get:function(){return IMe.isReservedWord}});Object.defineProperty(c8,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindOnlyReservedWord}});Object.defineProperty(c8,"isStrictBindReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindReservedWord}});Object.defineProperty(c8,"isStrictReservedWord",{enumerable:!0,get:function(){return IMe.isStrictReservedWord}});var xfr=OOn(),IMe=QOn()});var t3n=H(hMe=>{"use strict";Object.defineProperty(hMe,"__esModule",{value:!0});var Ffr=Udt(),XOn=Rfr(),JOn=Gfr();function V4o(){return typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?!1:Ffr.isColorSupported}var jdt=(e,t)=>r=>e(t(r));function jOn(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:jdt(jdt(e.white,e.bgRed),e.bold),gutter:e.gray,marker:jdt(e.red,e.bold),message:jdt(e.red,e.bold),reset:e.reset}}var P4o=jOn(Ffr.createColors(!0)),W4o=jOn(Ffr.createColors(!1));function zOn(e){return e?P4o:W4o}var O4o=new Set(["as","async","from","get","of","set"]),M4o=/\r\n|[\n\r\u2028\u2029]/,H4o=/^[()[\]{}]$/,qOn;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if(JOn.isKeyword(r.value)||JOn.isStrictReservedWord(r.value,!0)||O4o.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="t[n](o)).join(` +`,t};Vv.prototype.Program=function(e){var t="",r=e.body,n=void 0,a=void 0;if(e.blockParams){var o="BLOCK PARAMS: [";for(n=0,a=e.blockParams.length;n "+t+" }}")};Vv.prototype.PartialBlockStatement=function(e){var t="PARTIAL BLOCK:"+e.name.original;return e.params[0]&&(t+=" "+this.accept(e.params[0])),e.hash&&(t+=" "+this.accept(e.hash)),t+=" "+this.pad("PROGRAM:"),this.padding++,t+=this.accept(e.program),this.padding--,this.pad("{{> "+t+" }}")};Vv.prototype.ContentStatement=function(e){return this.pad("CONTENT[ '"+e.value+"' ]")};Vv.prototype.CommentStatement=function(e){return this.pad("{{! '"+e.value+"' }}")};Vv.prototype.SubExpression=function(e){for(var t=e.params,r=[],n=void 0,a=0,o=t.length;a{"use strict";Object.defineProperty(Mdt,"__esModule",{value:!0});Mdt.LRUCache=void 0;var jve=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,VWn=new Set,Afr=typeof process=="object"&&process?process:{},PWn=(e,t,r,n)=>{typeof Afr.emitWarning=="function"?Afr.emitWarning(e,t,r,n):console.error(`[${r}] ${t}: ${e}`)},Odt=globalThis.AbortController,LWn=globalThis.AbortSignal;if(typeof Odt>"u"){LWn=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(n,a){this._onabort.push(a)}},Odt=class{constructor(){t()}signal=new LWn;abort(n){if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(let a of this.signal._onabort)a(n);this.signal.onabort?.(n)}}};let e=Afr.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{e&&(e=!1,PWn("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}var CXo=e=>!VWn.has(e),Gql=Symbol("type"),Loe=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),WWn=e=>Loe(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zve:null:null,zve=class extends Array{constructor(t){super(t),this.fill(0)}},dfr=class e{heap;length;static#e=!1;static create(t){let r=WWn(t);if(!r)return[];e.#e=!0;let n=new e(t,r);return e.#e=!1,n}constructor(t,r){if(!e.#e)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new r(t),this.length=0}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}},pfr=class e{#e;#t;#n;#r;#i;#s;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#o;#g;#l;#u;#a;#m;#f;#I;#d;#b;#h;#S;#v;#C;#E;#_;#p;static unsafeExposeInternals(t){return{starts:t.#v,ttls:t.#C,sizes:t.#S,keyMap:t.#l,keyList:t.#u,valList:t.#a,next:t.#m,prev:t.#f,get head(){return t.#I},get tail(){return t.#d},free:t.#b,isBackgroundFetch:r=>t.#A(r),backgroundFetch:(r,n,a,o)=>t.#V(r,n,a,o),moveToTail:r=>t.#W(r),indexes:r=>t.#T(r),rindexes:r=>t.#R(r),isStale:r=>t.#y(r)}}get max(){return this.#e}get maxSize(){return this.#t}get calculatedSize(){return this.#g}get size(){return this.#o}get fetchMethod(){return this.#i}get memoMethod(){return this.#s}get dispose(){return this.#n}get disposeAfter(){return this.#r}constructor(t){let{max:r=0,ttl:n,ttlResolution:a=1,ttlAutopurge:o,updateAgeOnGet:l,updateAgeOnHas:A,allowStale:f,dispose:I,disposeAfter:C,noDisposeOnSet:b,noUpdateTTL:E,maxSize:N=0,maxEntrySize:B=0,sizeCalculation:F,fetchMethod:Q,memoMethod:X,noDeleteOnFetchRejection:ae,noDeleteOnStaleGet:ne,allowStaleOnFetchRejection:ce,allowStaleOnFetchAbort:fe,ignoreFetchAbort:ue}=t;if(r!==0&&!Loe(r))throw new TypeError("max option must be a nonnegative integer");let de=r?WWn(r):Array;if(!de)throw new Error("invalid max value: "+r);if(this.#e=r,this.#t=N,this.maxEntrySize=B||this.#t,this.sizeCalculation=F,this.sizeCalculation){if(!this.#t&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(X!==void 0&&typeof X!="function")throw new TypeError("memoMethod must be a function if defined");if(this.#s=X,Q!==void 0&&typeof Q!="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#i=Q,this.#_=!!Q,this.#l=new Map,this.#u=new Array(r).fill(void 0),this.#a=new Array(r).fill(void 0),this.#m=new de(r),this.#f=new de(r),this.#I=0,this.#d=0,this.#b=dfr.create(r),this.#o=0,this.#g=0,typeof I=="function"&&(this.#n=I),typeof C=="function"?(this.#r=C,this.#h=[]):(this.#r=void 0,this.#h=void 0),this.#E=!!this.#n,this.#p=!!this.#r,this.noDisposeOnSet=!!b,this.noUpdateTTL=!!E,this.noDeleteOnFetchRejection=!!ae,this.allowStaleOnFetchRejection=!!ce,this.allowStaleOnFetchAbort=!!fe,this.ignoreFetchAbort=!!ue,this.maxEntrySize!==0){if(this.#t!==0&&!Loe(this.#t))throw new TypeError("maxSize must be a positive integer if specified");if(!Loe(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#N()}if(this.allowStale=!!f,this.noDeleteOnStaleGet=!!ne,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!A,this.ttlResolution=Loe(a)||a===0?a:1,this.ttlAutopurge=!!o,this.ttl=n||0,this.ttl){if(!Loe(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#B()}if(this.#e===0&&this.ttl===0&&this.#t===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#e&&!this.#t){let be="LRU_CACHE_UNBOUNDED";CXo(be)&&(VWn.add(be),PWn("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",be,e))}}getRemainingTTL(t){return this.#l.has(t)?1/0:0}#B(){let t=new zve(this.#e),r=new zve(this.#e);this.#C=t,this.#v=r,this.#k=(o,l,A=jve.now())=>{if(r[o]=l!==0?A:0,t[o]=l,l!==0&&this.ttlAutopurge){let f=setTimeout(()=>{this.#y(o)&&this.#D(this.#u[o],"expire")},l+1);f.unref&&f.unref()}},this.#w=o=>{r[o]=t[o]!==0?jve.now():0},this.#c=(o,l)=>{if(t[l]){let A=t[l],f=r[l];if(!A||!f)return;o.ttl=A,o.start=f,o.now=n||a();let I=o.now-f;o.remainingTTL=A-I}};let n=0,a=()=>{let o=jve.now();if(this.ttlResolution>0){n=o;let l=setTimeout(()=>n=0,this.ttlResolution);l.unref&&l.unref()}return o};this.getRemainingTTL=o=>{let l=this.#l.get(o);if(l===void 0)return 0;let A=t[l],f=r[l];if(!A||!f)return 1/0;let I=(n||a())-f;return A-I},this.#y=o=>{let l=r[o],A=t[o];return!!A&&!!l&&(n||a())-l>A}}#w=()=>{};#c=()=>{};#k=()=>{};#y=()=>!1;#N(){let t=new zve(this.#e);this.#g=0,this.#S=t,this.#x=r=>{this.#g-=t[r],t[r]=0},this.#F=(r,n,a,o)=>{if(this.#A(n))return 0;if(!Loe(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,r),!Loe(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a},this.#G=(r,n,a)=>{if(t[r]=n,this.#t){let o=this.#t-t[r];for(;this.#g>o;)this.#L(!0)}this.#g+=t[r],a&&(a.entrySize=n,a.totalCalculatedSize=this.#g)}}#x=t=>{};#G=(t,r,n)=>{};#F=(t,r,n,a)=>{if(n||a)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#d;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#I));)r=this.#f[r]}*#R({allowStale:t=this.allowStale}={}){if(this.#o)for(let r=this.#I;!(!this.#Z(r)||((t||!this.#y(r))&&(yield r),r===this.#d));)r=this.#m[r]}#Z(t){return t!==void 0&&this.#l.get(this.#u[t])===t}*entries(){for(let t of this.#T())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*rentries(){for(let t of this.#R())this.#a[t]!==void 0&&this.#u[t]!==void 0&&!this.#A(this.#a[t])&&(yield[this.#u[t],this.#a[t]])}*keys(){for(let t of this.#T()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*rkeys(){for(let t of this.#R()){let r=this.#u[t];r!==void 0&&!this.#A(this.#a[t])&&(yield r)}}*values(){for(let t of this.#T())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}*rvalues(){for(let t of this.#R())this.#a[t]!==void 0&&!this.#A(this.#a[t])&&(yield this.#a[t])}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(t,r={}){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;if(o!==void 0&&t(o,this.#u[n],this))return this.get(this.#u[n],r)}}forEach(t,r=this){for(let n of this.#T()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}rforEach(t,r=this){for(let n of this.#R()){let a=this.#a[n],o=this.#A(a)?a.__staleWhileFetching:a;o!==void 0&&t.call(r,o,this.#u[n],this)}}purgeStale(){let t=!1;for(let r of this.#R({allowStale:!0}))this.#y(r)&&(this.#D(this.#u[r],"expire"),t=!0);return t}info(t){let r=this.#l.get(t);if(r===void 0)return;let n=this.#a[r],a=this.#A(n)?n.__staleWhileFetching:n;if(a===void 0)return;let o={value:a};if(this.#C&&this.#v){let l=this.#C[r],A=this.#v[r];if(l&&A){let f=l-(jve.now()-A);o.ttl=f,o.start=Date.now()}}return this.#S&&(o.size=this.#S[r]),o}dump(){let t=[];for(let r of this.#T({allowStale:!0})){let n=this.#u[r],a=this.#a[r],o=this.#A(a)?a.__staleWhileFetching:a;if(o===void 0||n===void 0)continue;let l={value:o};if(this.#C&&this.#v){l.ttl=this.#C[r];let A=jve.now()-this.#v[r];l.start=Math.floor(Date.now()-A)}this.#S&&(l.size=this.#S[r]),t.unshift([n,l])}return t}load(t){this.clear();for(let[r,n]of t){if(n.start){let a=Date.now()-n.start;n.start=jve.now()-a}this.set(r,n.value,n)}}set(t,r,n={}){if(r===void 0)return this.delete(t),this;let{ttl:a=this.ttl,start:o,noDisposeOnSet:l=this.noDisposeOnSet,sizeCalculation:A=this.sizeCalculation,status:f}=n,{noUpdateTTL:I=this.noUpdateTTL}=n,C=this.#F(t,r,n.size||0,A);if(this.maxEntrySize&&C>this.maxEntrySize)return f&&(f.set="miss",f.maxEntrySizeExceeded=!0),this.#D(t,"set"),this;let b=this.#o===0?void 0:this.#l.get(t);if(b===void 0)b=this.#o===0?this.#d:this.#b.length!==0?this.#b.pop():this.#o===this.#e?this.#L(!1):this.#o,this.#u[b]=t,this.#a[b]=r,this.#l.set(t,b),this.#m[this.#d]=b,this.#f[b]=this.#d,this.#d=b,this.#o++,this.#G(b,C,f),f&&(f.set="add"),I=!1;else{this.#W(b);let E=this.#a[b];if(r!==E){if(this.#_&&this.#A(E)){E.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:N}=E;N!==void 0&&!l&&(this.#E&&this.#n?.(N,t,"set"),this.#p&&this.#h?.push([N,t,"set"]))}else l||(this.#E&&this.#n?.(E,t,"set"),this.#p&&this.#h?.push([E,t,"set"]));if(this.#x(b),this.#G(b,C,f),this.#a[b]=r,f){f.set="replace";let N=E&&this.#A(E)?E.__staleWhileFetching:E;N!==void 0&&(f.oldValue=N)}}else f&&(f.set="update")}if(a!==0&&!this.#C&&this.#B(),this.#C&&(I||this.#k(b,a,o),f&&this.#c(f,b)),!l&&this.#p&&this.#h){let E=this.#h,N;for(;N=E?.shift();)this.#r?.(...N)}return this}pop(){try{for(;this.#o;){let t=this.#a[this.#I];if(this.#L(!0),this.#A(t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(this.#p&&this.#h){let t=this.#h,r;for(;r=t?.shift();)this.#r?.(...r)}}}#L(t){let r=this.#I,n=this.#u[r],a=this.#a[r];return this.#_&&this.#A(a)?a.__abortController.abort(new Error("evicted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(a,n,"evict"),this.#p&&this.#h?.push([a,n,"evict"])),this.#x(r),t&&(this.#u[r]=void 0,this.#a[r]=void 0,this.#b.push(r)),this.#o===1?(this.#I=this.#d=0,this.#b.length=0):this.#I=this.#m[r],this.#l.delete(n),this.#o--,r}has(t,r={}){let{updateAgeOnHas:n=this.updateAgeOnHas,status:a}=r,o=this.#l.get(t);if(o!==void 0){let l=this.#a[o];if(this.#A(l)&&l.__staleWhileFetching===void 0)return!1;if(this.#y(o))a&&(a.has="stale",this.#c(a,o));else return n&&this.#w(o),a&&(a.has="hit",this.#c(a,o)),!0}else a&&(a.has="miss");return!1}peek(t,r={}){let{allowStale:n=this.allowStale}=r,a=this.#l.get(t);if(a===void 0||!n&&this.#y(a))return;let o=this.#a[a];return this.#A(o)?o.__staleWhileFetching:o}#V(t,r,n,a){let o=r===void 0?void 0:this.#a[r];if(this.#A(o))return o;let l=new Odt,{signal:A}=n;A?.addEventListener("abort",()=>l.abort(A.reason),{signal:l.signal});let f={signal:l.signal,options:n,context:a},I=(F,Q=!1)=>{let{aborted:X}=l.signal,ae=n.ignoreFetchAbort&&F!==void 0;if(n.status&&(X&&!Q?(n.status.fetchAborted=!0,n.status.fetchError=l.signal.reason,ae&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),X&&!ae&&!Q)return b(l.signal.reason);let ne=N;return this.#a[r]===N&&(F===void 0?ne.__staleWhileFetching?this.#a[r]=ne.__staleWhileFetching:this.#D(t,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(t,F,f.options))),F},C=F=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=F),b(F)),b=F=>{let{aborted:Q}=l.signal,X=Q&&n.allowStaleOnFetchAbort,ae=X||n.allowStaleOnFetchRejection,ne=ae||n.noDeleteOnFetchRejection,ce=N;if(this.#a[r]===N&&(!ne||ce.__staleWhileFetching===void 0?this.#D(t,"fetch"):X||(this.#a[r]=ce.__staleWhileFetching)),ae)return n.status&&ce.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),ce.__staleWhileFetching;if(ce.__returned===ce)throw F},E=(F,Q)=>{let X=this.#i?.(t,o,f);X&&X instanceof Promise&&X.then(ae=>F(ae===void 0?void 0:ae),Q),l.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(F(void 0),n.allowStaleOnFetchAbort&&(F=ae=>I(ae,!0)))})};n.status&&(n.status.fetchDispatched=!0);let N=new Promise(E).then(I,C),B=Object.assign(N,{__abortController:l,__staleWhileFetching:o,__returned:void 0});return r===void 0?(this.set(t,B,{...f.options,status:void 0}),r=this.#l.get(t)):this.#a[r]=B,B}#A(t){if(!this.#_)return!1;let r=t;return!!r&&r instanceof Promise&&r.hasOwnProperty("__staleWhileFetching")&&r.__abortController instanceof Odt}async fetch(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:A=this.noDisposeOnSet,size:f=0,sizeCalculation:I=this.sizeCalculation,noUpdateTTL:C=this.noUpdateTTL,noDeleteOnFetchRejection:b=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:E=this.allowStaleOnFetchRejection,ignoreFetchAbort:N=this.ignoreFetchAbort,allowStaleOnFetchAbort:B=this.allowStaleOnFetchAbort,context:F,forceRefresh:Q=!1,status:X,signal:ae}=r;if(!this.#_)return X&&(X.fetch="get"),this.get(t,{allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,status:X});let ne={allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:o,ttl:l,noDisposeOnSet:A,size:f,sizeCalculation:I,noUpdateTTL:C,noDeleteOnFetchRejection:b,allowStaleOnFetchRejection:E,allowStaleOnFetchAbort:B,ignoreFetchAbort:N,status:X,signal:ae},ce=this.#l.get(t);if(ce===void 0){X&&(X.fetch="miss");let fe=this.#V(t,ce,ne,F);return fe.__returned=fe}else{let fe=this.#a[ce];if(this.#A(fe)){let De=n&&fe.__staleWhileFetching!==void 0;return X&&(X.fetch="inflight",De&&(X.returnedStale=!0)),De?fe.__staleWhileFetching:fe.__returned=fe}let ue=this.#y(ce);if(!Q&&!ue)return X&&(X.fetch="hit"),this.#W(ce),a&&this.#w(ce),X&&this.#c(X,ce),fe;let de=this.#V(t,ce,ne,F),Se=de.__staleWhileFetching!==void 0&&n;return X&&(X.fetch=ue?"stale":"refresh",Se&&ue&&(X.returnedStale=!0)),Se?de.__staleWhileFetching:de.__returned=de}}async forceFetch(t,r={}){let n=await this.fetch(t,r);if(n===void 0)throw new Error("fetch() returned undefined");return n}memo(t,r={}){let n=this.#s;if(!n)throw new Error("no memoMethod provided to constructor");let{context:a,forceRefresh:o,...l}=r,A=this.get(t,l);if(!o&&A!==void 0)return A;let f=n(t,A,{options:l,context:a});return this.set(t,f,l),f}get(t,r={}){let{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:l}=r,A=this.#l.get(t);if(A!==void 0){let f=this.#a[A],I=this.#A(f);return l&&this.#c(l,A),this.#y(A)?(l&&(l.get="stale"),I?(l&&n&&f.__staleWhileFetching!==void 0&&(l.returnedStale=!0),n?f.__staleWhileFetching:void 0):(o||this.#D(t,"expire"),l&&n&&(l.returnedStale=!0),n?f:void 0)):(l&&(l.get="hit"),I?f.__staleWhileFetching:(this.#W(A),a&&this.#w(A),f))}else l&&(l.get="miss")}#P(t,r){this.#f[r]=t,this.#m[t]=r}#W(t){t!==this.#d&&(t===this.#I?this.#I=this.#m[t]:this.#P(this.#f[t],this.#m[t]),this.#P(this.#d,t),this.#d=t)}delete(t){return this.#D(t,"delete")}#D(t,r){let n=!1;if(this.#o!==0){let a=this.#l.get(t);if(a!==void 0)if(n=!0,this.#o===1)this.#O(r);else{this.#x(a);let o=this.#a[a];if(this.#A(o)?o.__abortController.abort(new Error("deleted")):(this.#E||this.#p)&&(this.#E&&this.#n?.(o,t,r),this.#p&&this.#h?.push([o,t,r])),this.#l.delete(t),this.#u[a]=void 0,this.#a[a]=void 0,a===this.#d)this.#d=this.#f[a];else if(a===this.#I)this.#I=this.#m[a];else{let l=this.#f[a];this.#m[l]=this.#m[a];let A=this.#m[a];this.#f[A]=this.#f[a]}this.#o--,this.#b.push(a)}}if(this.#p&&this.#h?.length){let a=this.#h,o;for(;o=a?.shift();)this.#r?.(...o)}return n}clear(){return this.#O("delete")}#O(t){for(let r of this.#R({allowStale:!0})){let n=this.#a[r];if(this.#A(n))n.__abortController.abort(new Error("deleted"));else{let a=this.#u[r];this.#E&&this.#n?.(n,a,t),this.#p&&this.#h?.push([n,a,t])}}if(this.#l.clear(),this.#a.fill(void 0),this.#u.fill(void 0),this.#C&&this.#v&&(this.#C.fill(0),this.#v.fill(0)),this.#S&&this.#S.fill(0),this.#I=0,this.#d=0,this.#b.length=0,this.#g=0,this.#o=0,this.#p&&this.#h){let r=this.#h,n;for(;n=r?.shift();)this.#r?.(...n)}}};Mdt.LRUCache=pfr});var HWn=H((Zql,MWn)=>{"use strict";var M_=(...e)=>e.every(t=>t)?e.join(""):"",nT=e=>e?encodeURIComponent(e):"",OWn=e=>e.toLowerCase().replace(/^\W+|\/|\W+$/g,"").replace(/\W+/g,"-"),_Xo={sshtemplate:({domain:e,user:t,project:r,committish:n})=>`git@${e}:${t}/${r}.git${M_("#",n)}`,sshurltemplate:({domain:e,user:t,project:r,committish:n})=>`git+ssh://git@${e}/${t}/${r}.git${M_("#",n)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a,path:o})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o)}`,browsetemplate:({domain:e,user:t,project:r,committish:n,treepath:a})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n))}`,browsetreetemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,browseblobtemplate:({domain:e,user:t,project:r,committish:n,blobpath:a,path:o,fragment:l,hashformat:A})=>`https://${e}/${t}/${r}/${a}/${nT(n||"HEAD")}/${o}${M_("#",A(l||""))}`,docstemplate:({domain:e,user:t,project:r,treepath:n,committish:a})=>`https://${e}/${t}/${r}${M_("/",n,"/",nT(a))}#readme`,httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/raw/${nT(n||"HEAD")}/${a}`,shortcuttemplate:({type:e,user:t,project:r,committish:n})=>`${e}:${t}/${r}${M_("#",n)}`,pathtemplate:({user:e,project:t,committish:r})=>`${e}/${t}${M_("#",r)}`,bugstemplate:({domain:e,user:t,project:r})=>`https://${e}/${t}/${r}/issues`,hashformat:OWn},Voe={};Voe.github={protocols:["git:","http:","git+ssh:","git+https:","ssh:","https:"],domain:"github.com",treepath:"tree",blobpath:"blob",editpath:"edit",filetemplate:({auth:e,user:t,project:r,committish:n,path:a})=>`https://${M_(e,"@")}raw.githubusercontent.com/${t}/${r}/${nT(n||"HEAD")}/${a}`,gittemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://codeload.${e}/${t}/${r}/tar.gz/${nT(n||"HEAD")}`,extract:e=>{let[,t,r,n,a]=e.pathname.split("/",5);if(!(n&&n!=="tree")&&(n||(a=e.hash.slice(1)),r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:a}}};Voe.bitbucket={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"bitbucket.org",treepath:"src",blobpath:"src",editpath:"?mode=edit",edittemplate:({domain:e,user:t,project:r,committish:n,treepath:a,path:o,editpath:l})=>`https://${e}/${t}/${r}${M_("/",a,"/",nT(n||"HEAD"),"/",o,l)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/get/${nT(n||"HEAD")}.tar.gz`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["get"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};Voe.gitlab={protocols:["git+ssh:","git+https:","ssh:","https:"],domain:"gitlab.com",treepath:"tree",blobpath:"tree",editpath:"-/edit",httpstemplate:({auth:e,domain:t,user:r,project:n,committish:a})=>`git+https://${M_(e,"@")}${t}/${r}/${n}.git${M_("#",a)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/repository/archive.tar.gz?ref=${nT(n||"HEAD")}`,extract:e=>{let t=e.pathname.slice(1);if(t.includes("/-/")||t.includes("/archive.tar.gz"))return;let r=t.split("/"),n=r.pop();n.endsWith(".git")&&(n=n.slice(0,-4));let a=r.join("/");if(!(!a||!n))return{user:a,project:n,committish:e.hash.slice(1)}}};Voe.gist={protocols:["git:","git+ssh:","git+https:","ssh:","https:"],domain:"gist.github.com",editpath:"edit",sshtemplate:({domain:e,project:t,committish:r})=>`git@${e}:${t}.git${M_("#",r)}`,sshurltemplate:({domain:e,project:t,committish:r})=>`git+ssh://git@${e}/${t}.git${M_("#",r)}`,edittemplate:({domain:e,user:t,project:r,committish:n,editpath:a})=>`https://${e}/${t}/${r}${M_("/",nT(n))}/${a}`,browsetemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,browsetreetemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,browseblobtemplate:({domain:e,project:t,committish:r,path:n,hashformat:a})=>`https://${e}/${t}${M_("/",nT(r))}${M_("#",a(n))}`,docstemplate:({domain:e,project:t,committish:r})=>`https://${e}/${t}${M_("/",nT(r))}`,httpstemplate:({domain:e,project:t,committish:r})=>`git+https://${e}/${t}.git${M_("#",r)}`,filetemplate:({user:e,project:t,committish:r,path:n})=>`https://gist.githubusercontent.com/${e}/${t}/raw${M_("/",nT(r))}/${n}`,shortcuttemplate:({type:e,project:t,committish:r})=>`${e}:${t}${M_("#",r)}`,pathtemplate:({project:e,committish:t})=>`${e}${M_("#",t)}`,bugstemplate:({domain:e,project:t})=>`https://${e}/${t}`,gittemplate:({domain:e,project:t,committish:r})=>`git://${e}/${t}.git${M_("#",r)}`,tarballtemplate:({project:e,committish:t})=>`https://codeload.github.com/gist/${e}/tar.gz/${nT(t||"HEAD")}`,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(n!=="raw"){if(!r){if(!t)return;r=t,t=null}return r.endsWith(".git")&&(r=r.slice(0,-4)),{user:t,project:r,committish:e.hash.slice(1)}}},hashformat:function(e){return e&&"file-"+OWn(e)}};Voe.sourcehut={protocols:["git+ssh:","https:"],domain:"git.sr.ht",treepath:"tree",blobpath:"tree",filetemplate:({domain:e,user:t,project:r,committish:n,path:a})=>`https://${e}/${t}/${r}/blob/${nT(n)||"HEAD"}/${a}`,httpstemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}.git${M_("#",n)}`,tarballtemplate:({domain:e,user:t,project:r,committish:n})=>`https://${e}/${t}/${r}/archive/${nT(n)||"HEAD"}.tar.gz`,bugstemplate:()=>null,extract:e=>{let[,t,r,n]=e.pathname.split("/",4);if(!["archive"].includes(n)&&(r&&r.endsWith(".git")&&(r=r.slice(0,-4)),!(!t||!r)))return{user:t,project:r,committish:e.hash.slice(1)}}};for(let[e,t]of Object.entries(Voe))Voe[e]=Object.assign({},_Xo,t);MWn.exports=Voe});var Ifr=H((Lql,QWn)=>{var yXo=wt("url"),ffr=(e,t,r)=>{let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)},YWn=e=>{try{return new yXo.URL(e)}catch{}},bXo=(e,t)=>{let r=e.indexOf(":"),n=e.slice(0,r+1);if(Object.prototype.hasOwnProperty.call(t,n))return e;let a=e.indexOf("@");return a>-1?a>r?`git+ssh://${e}`:e:e.indexOf("//")===r+1?e:`${e.slice(0,r+1)}//${e.slice(r+1)}`},EXo=e=>{let t=ffr(e,"@","#"),r=ffr(e,":","#");return r>t&&(e=e.slice(0,r)+"/"+e.slice(r+1)),ffr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`git+ssh://${e}`),e};QWn.exports=(e,t)=>{let r=t?bXo(e,t):e;return YWn(r)||YWn(EXo(r))}});var JWn=H((Vql,XWn)=>{"use strict";var SXo=Ifr(),vXo=e=>{let t=e.indexOf("#"),r=e.indexOf("/"),n=e.indexOf("/",r+1),a=e.indexOf(":"),o=/\s/.exec(e),l=e.indexOf("@"),A=!o||t>-1&&o.index>t,f=l===-1||t>-1&&l>t,I=a===-1||t>-1&&a>t,C=n===-1||t>-1&&n>t,b=r>0,E=t>-1?e[t-1]!=="/":!e.endsWith("/"),N=!e.startsWith(".");return A&&b&&E&&N&&f&&I&&C};XWn.exports=(e,t,{gitHosts:r,protocols:n})=>{if(!e)return;let a=vXo(e)?`github:${e}`:e,o=SXo(a,n);if(!o)return;let l=r.byShortcut[o.protocol],A=r.byDomain[o.hostname.startsWith("www.")?o.hostname.slice(4):o.hostname],f=l||A;if(!f)return;let I=r[l||A],C=null;n[o.protocol]?.auth&&(o.username||o.password)&&(C=`${o.username}${o.password?":"+o.password:""}`);let b=null,E=null,N=null,B=null;try{if(l){let F=o.pathname.startsWith("/")?o.pathname.slice(1):o.pathname,Q=F.indexOf("@");Q>-1&&(F=F.slice(Q+1));let X=F.lastIndexOf("/");X>-1?(E=decodeURIComponent(F.slice(0,X)),E||(E=null),N=decodeURIComponent(F.slice(X+1))):N=decodeURIComponent(F),N.endsWith(".git")&&(N=N.slice(0,-4)),o.hash&&(b=decodeURIComponent(o.hash.slice(1))),B="shortcut"}else{if(!I.protocols.includes(o.protocol))return;let F=I.extract(o);if(!F)return;E=F.user&&decodeURIComponent(F.user),N=decodeURIComponent(F.project),b=decodeURIComponent(F.committish),B=n[o.protocol]?.name||o.protocol.slice(0,-1)}}catch(F){if(F instanceof URIError)return;throw F}return[f,E,C,N,b,B,t]}});var mfr=H((Pql,UWn)=>{"use strict";var{LRUCache:BXo}=yIe(),wXo=HWn(),TXo=JWn(),RXo=Ifr(),hfr=new BXo({max:1e3}),Hdt=class e{constructor(t,r,n,a,o,l,A={}){Object.assign(this,e.#e[t],{type:t,user:r,auth:n,project:a,committish:o,default:l,opts:A})}static#e={byShortcut:{},byDomain:{}};static#t={"git+ssh:":{name:"sshurl"},"ssh:":{name:"sshurl"},"git+https:":{name:"https",auth:!0},"git:":{auth:!0},"http:":{auth:!0},"https:":{auth:!0},"git+http:":{auth:!0}};static addHost(t,r){e.#e[t]=r,e.#e.byDomain[r.domain]=t,e.#e.byShortcut[`${t}:`]=t,e.#t[`${t}:`]={name:t}}static fromUrl(t,r){if(typeof t!="string")return;let n=t+JSON.stringify(r||{});if(!hfr.has(n)){let a=TXo(t,r,{gitHosts:e.#e,protocols:e.#t});hfr.set(n,a?new e(...a):void 0)}return hfr.get(n)}static parseUrl(t){return RXo(t)}#n(t,r){if(typeof t!="function")return null;let n={...this,...this.opts,...r};n.path||(n.path=""),n.path.startsWith("/")&&(n.path=n.path.slice(1)),n.noCommittish&&(n.committish=null);let a=t(n);return n.noGitPlus&&a.startsWith("git+")?a.slice(4):a}hash(){return this.committish?`#${this.committish}`:""}ssh(t){return this.#n(this.sshtemplate,t)}sshurl(t){return this.#n(this.sshurltemplate,t)}browse(t,...r){return typeof t!="string"?this.#n(this.browsetemplate,t):typeof r[0]!="string"?this.#n(this.browsetreetemplate,{...r[0],path:t}):this.#n(this.browsetreetemplate,{...r[1],fragment:r[0],path:t})}browseFile(t,...r){return typeof r[0]!="string"?this.#n(this.browseblobtemplate,{...r[0],path:t}):this.#n(this.browseblobtemplate,{...r[1],fragment:r[0],path:t})}docs(t){return this.#n(this.docstemplate,t)}bugs(t){return this.#n(this.bugstemplate,t)}https(t){return this.#n(this.httpstemplate,t)}git(t){return this.#n(this.gittemplate,t)}shortcut(t){return this.#n(this.shortcuttemplate,t)}path(t){return this.#n(this.pathtemplate,t)}tarball(t){return this.#n(this.tarballtemplate,{...t,noCommittish:!1})}file(t,r){return this.#n(this.filetemplate,{...r,path:t})}edit(t,r){return this.#n(this.edittemplate,{...r,path:t})}getDefaultRepresentation(){return this.default}toString(t){return this.default&&typeof this[this.default]=="function"?this[this.default](t):this.sshurl(t)}};for(let[e,t]of Object.entries(wXo))Hdt.addHost(e,t);UWn.exports=Hdt});var jWn=H((Wql,KWn)=>{"use strict";var{URL:NXo}=wt("url"),DXo=new RegExp(/^\/?:?([/\w-.]+)\/([\w-.]+)\/?$/),kXo=new RegExp(/^\/repos\/([\w-.]+)\/([\w-.]+)\/(?:tarball|zipball)(?:\/.+)?$/),xXo=new RegExp(/^\/([\w-.]+)\/([\w-.]+)\/(?:legacy\.(?:zip|tar\.gz))(?:\/.+)?$/);KWn.exports=e=>{let t=e.replace(/^git@/,"https://git@").replace(/git@([.\w]+):(?!\d)/,"git@$1/").replace(/\.git$/,""),r=new NXo(t,"https://example.com/"),n=a=>({browse:FXo(r,a),domain:r.host,project:a[2]||null,type:GXo(r),user:a[1]||null});if(r.host){if(r.host.includes("api.github.com")){let a=kXo.exec(r.pathname)||[];return n(a)}if(r.host.includes("codeload.github.com")){let a=xXo.exec(r.pathname)||[];return n(a)}}return n(DXo.exec(r.pathname)||[])};function GXo({host:e}){return typeof e!="string"?null:e.indexOf("github")!==-1?"github":e.indexOf("gitlab")!==-1?"gitlab":null}function FXo(e,t){let n=`${e.protocol==="http:"?"http:":"https:"}//${e.host}/${t[1]}/${t[2]}`;return()=>n}});var Cfr=H((Hql,LXo)=>{LXo.exports=["0BSD","3D-Slicer-1.0","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMD-newlib","AMDPLPA","AML","AML-glslang","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Display-PostScript","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Darwin","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-2-Clause-first-lines","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-acpica","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Source-beginning-file","BSD-Systemics","BSD-Systemics-W3Works","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Borceux","Brian-Gladman-2-Clause","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-AU","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CMU-Mach-nodoc","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","Caldera-no-preamble","Catharon","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CrystalStacker","Cube","D-FSL-1.0","DEC-3-Clause","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DRL-1.1","DSDP","DocBook-Schema","DocBook-XML","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFAP-no-warranty-disclaimer","FSFUL","FSFULLR","FSFULLRWD","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GCR-docs","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Giftware","Glide","Glulxe","Graphics-Gems","Gutmann","HIDAPI","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Fenneberg-Livingston","HPND-INRIA-IMAG","HPND-Intel","HPND-Kevlin-Henney","HPND-MIT-disclaimer","HPND-Markus-Kuhn","HPND-Netrek","HPND-Pbmplus","HPND-UC","HPND-UC-export-US","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-acknowledgement","HPND-export-US-modify","HPND-export2-US","HPND-merchantability-variant","HPND-sell-MIT-disclaimer-xserver","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HPND-sell-variant-MIT-disclaimer-rev","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ISC-Veillard","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPD-document","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIT","MIT-0","MIT-CMU","MIT-Festival","MIT-Khronos-old","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","Mackerras-3-Clause","Mackerras-3-Clause-acknowledgment","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCBI-PD","NCGL-UK-2.0","NCL","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTP","NTP-0","Naumen","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OAR","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","OpenSSL-standalone","OpenVision","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PPL","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Pixar","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","Ruby-pty","SAX-PD","SAX-PD-2.0","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMLNJ","SMPPL","SNIA","SPL-1.0","SSH-OpenSSH","SSH-short","SSLeay-standalone","SSPL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","Sun-PPP","Sun-PPP-2000","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TGPPL-1.0","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","UCAR","UCL-1.0","UMich-Merit","UPL-1.0","URT-RLE","Ubuntu-font-1.0","Unicode-3.0","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","X11-swapped","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","any-OSI","bcrypt-Solar-Designer","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","cve-tou","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","gnuplot","gtkbook","hdparm","iMatix","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","mailprio","metamail","mpi-permissive","mpich2","mplus","pkgconf","pnmstitch","psfrag","psutils","python-ldap","radvd","snprintf","softSurfer","ssh-keyscan","swrule","threeparttable","ulem","w3m","xinetd","xkeyboard-config-Zinoviev","xlock","xpp","xzoom","zlib-acknowledgement"]});var qWn=H((Yql,VXo)=>{VXo.exports=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.1","LGPL-3.0","Net-SNMP","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"]});var $Wn=H((Qql,PXo)=>{PXo.exports=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-1.24","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","fmt-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","Gmsh-exception","GNAT-exception","GNOME-examples-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"]});var tOn=H((Xql,eOn)=>{"use strict";var WXo=[].concat(Cfr()).concat(qWn()),OXo=$Wn();eOn.exports=function(e){var t=0;function r(){return t1&&e[t-2]===" ")throw new Error("Space before `+`");return B&&{type:"OPERATOR",string:B}}function l(){return n(/[A-Za-z0-9-.]+/)}function A(){var B=l();if(!B)throw new Error("Expected idstring at offset "+t);return B}function f(){if(n("DocumentRef-")){var B=A();return{type:"DOCUMENTREF",string:B}}}function I(){if(n("LicenseRef-")){var B=A();return{type:"LICENSEREF",string:B}}}function C(){var B=t,F=l();if(WXo.indexOf(F)!==-1)return{type:"LICENSE",string:F};if(OXo.indexOf(F)!==-1)return{type:"EXCEPTION",string:F};t=B}function b(){return o()||f()||I()||C()}for(var E=[];r()&&(a(),!!r());){var N=b();if(!N)throw new Error("Unexpected `"+e[t]+"` at offset "+t);E.push(N)}return E}});var nOn=H((Jql,rOn)=>{"use strict";rOn.exports=function(e){var t=0;function r(){return t{"use strict";var MXo=tOn(),HXo=nOn();iOn.exports=function(e){return HXo(MXo(e))}});var dOn=H((Kql,AOn)=>{var YXo=_fr(),QXo=Cfr();function Ydt(e){try{return YXo(e),!0}catch{return!1}}function gOn(e,t){var r=t[0].length-e[0].length;return r!==0?r:e[0].toUpperCase().localeCompare(t[0].toUpperCase())}var sOn=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(gOn),XXo=0,JXo=1,oOn=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],yfr=QXo.map(function(e){var t=/^(.*)-\d+\.\d+$/.exec(e);return t?[t[0],t[1]]:[e,null]}).reduce(function(e,t){var r=t[1];return e[r]=e[r]||[],e[r].push(t[0]),e},{}),UXo=Object.keys(yfr).map(function(t){return[t,yfr[t]]}).filter(function(t){return t[1].length===1&&t[0]!==null&&t[0]!=="APL"}).map(function(t){return[t[0],t[1][0]]});yfr=void 0;var aOn=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(UXo).sort(gOn),KXo=0,jXo=1,cOn=function(e){for(var t=0;t-1)return n[jXo]}return null},uOn=function(e,t){for(var r=0;r-1){var o=e.replace(a,n[JXo]),l=t(o);if(l!==null)return l}}return null};AOn.exports=function(e,t){t=t||{};var r=t.upgrade===void 0?!0:!!t.upgrade;function n(A){return r?zXo(A):A}var a=typeof e=="string"&&e.trim().length!==0;if(!a)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),Ydt(e))return n(e);var o=e.replace(/\+$/,"").trim();if(Ydt(o))return n(o);var l=cOn(e);return l!==null||(l=uOn(e,function(A){return Ydt(A)?A:cOn(A)}),l!==null)||(l=lOn(e),l!==null)||(l=uOn(e,lOn),l!==null)?n(l):null};function zXo(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}});var hOn=H((jql,IOn)=>{var qXo=_fr(),$Xo=dOn(),pOn='license should be a valid SPDX license expression (without "LicenseRef"), "UNLICENSED", or "SEE LICENSE IN "',e4o=/^SEE LICEN[CS]E IN (.+)$/;function fOn(e,t){return t.slice(0,e.length)===e}function bfr(e){if(e.hasOwnProperty("license")){var t=e.license;return fOn("LicenseRef",t)||fOn("DocumentRef",t)}else return bfr(e.left)||bfr(e.right)}IOn.exports=function(e){var t;try{t=qXo(e)}catch{var r;if(e==="UNLICENSED"||e==="UNLICENCED")return{validForOldPackages:!0,validForNewPackages:!0,unlicensed:!0};if(r=e4o.exec(e))return{validForOldPackages:!0,validForNewPackages:!0,inFile:r[1]};var n={validForOldPackages:!1,validForNewPackages:!1,warnings:[pOn]};if(e.trim().length!==0){var a=$Xo(e);a&&n.warnings.push('license is similar to the valid expression "'+a+'"')}return n}return bfr(t)?{validForNewPackages:!1,validForOldPackages:!1,spdx:!0,warnings:[pOn]}:{validForNewPackages:!0,validForOldPackages:!0,spdx:!0}}});var COn=H((zql,mOn)=>{mOn.exports=t4o;function t4o(e){if(!e||e==="ERROR: No README data found!")return;e=e.trim().split(` +`);let t=0;for(;e[t]&&e[t].trim().match(/^(#|$)/);)t++;let r=e.length,n=t+1;for(;n{r4o.exports={topLevel:{dependancies:"dependencies",dependecies:"dependencies",depdenencies:"dependencies",devEependencies:"devDependencies",depends:"dependencies","dev-dependencies":"devDependencies",devDependences:"devDependencies",devDepenencies:"devDependencies",devdependencies:"devDependencies",repostitory:"repository",repo:"repository",prefereGlobal:"preferGlobal",hompage:"homepage",hampage:"homepage",autohr:"author",autor:"author",contributers:"contributors",publicationConfig:"publishConfig",script:"scripts"},bugs:{web:"url",name:"url"},script:{server:"start",tests:"test"}}});var SOn=H(($ql,EOn)=>{var n4o=k6t(),i4o=x6t(),s4o=hOn(),Qdt=mfr(),o4o=wt("node:module"),a4o=["dependencies","devDependencies","optionalDependencies"],c4o=COn(),Efr=wt("url"),Poe=_On(),yOn=e=>e.includes("@")&&e.indexOf("@")"u"&&(t={});var r=t.strict;if(!e.name&&!r){e.name="";return}if(typeof e.name!="string")throw new Error("name field must be a string.");r||(e.name=e.name.trim()),g4o(e.name,r,t.allowLegacyCase),o4o.builtinModules.includes(e.name)&&this.warn("conflictingName",e.name)},fixDescriptionField:function(e){e.description&&typeof e.description!="string"&&(this.warn("nonStringDescription"),delete e.description),e.readme&&!e.description&&(e.description=c4o(e.readme)),e.description===void 0&&delete e.description,e.description||this.warn("missingDescription")},fixReadmeField:function(e){e.readme||(this.warn("missingReadme"),e.readme="ERROR: No README data found!")},fixBugsField:function(e){if(!e.bugs&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.bugs()&&(e.bugs={url:t.bugs()})}else if(e.bugs){if(typeof e.bugs=="string")yOn(e.bugs)?e.bugs={email:e.bugs}:Efr.parse(e.bugs).protocol?e.bugs={url:e.bugs}:this.warn("nonEmailUrlBugsString");else{h4o(e.bugs,this.warn);var r=e.bugs;e.bugs={},r.url&&(typeof r.url=="string"&&Efr.parse(r.url).protocol?e.bugs.url=r.url:this.warn("nonUrlBugsUrlField")),r.email&&(typeof r.email=="string"&&yOn(r.email)?e.bugs.email=r.email:this.warn("nonEmailBugsEmailField"))}!e.bugs.email&&!e.bugs.url&&(delete e.bugs,this.warn("emptyNormalizedBugs"))}},fixHomepageField:function(e){if(!e.homepage&&e.repository&&e.repository.url){var t=Qdt.fromUrl(e.repository.url);t&&t.docs()&&(e.homepage=t.docs())}if(e.homepage){if(typeof e.homepage!="string")return this.warn("nonUrlHomepage"),delete e.homepage;Efr.parse(e.homepage).protocol||(e.homepage="http://"+e.homepage)}},fixLicenseField:function(e){let t=e.license||e.licence;if(!t)return this.warn("missingLicense");if(typeof t!="string"||t.length<1||t.trim()==="")return this.warn("invalidLicense");if(!s4o(t).validForNewPackages)return this.warn("invalidLicense")}};function l4o(e){if(e.charAt(0)!=="@")return!1;var t=e.slice(1).split("/");return t.length!==2?!1:t[0]&&t[1]&&t[0]===encodeURIComponent(t[0])&&t[1]===encodeURIComponent(t[1])}function u4o(e){return!e.match(/[/@\s+%:]/)&&e===encodeURIComponent(e)}function g4o(e,t,r){if(e.charAt(0)==="."||!(l4o(e)||u4o(e))||t&&!r&&e!==e.toLowerCase()||e.toLowerCase()==="node_modules"||e.toLowerCase()==="favicon.ico")throw new Error("Invalid name: "+JSON.stringify(e))}function bOn(e,t){return e.author&&(e.author=t(e.author)),["maintainers","contributors"].forEach(function(r){Array.isArray(e[r])&&(e[r]=e[r].map(t))}),e}function A4o(e){if(typeof e=="string")return e;var t=e.name||"",r=e.url||e.web,n=r?" ("+r+")":"",a=e.email||e.mail,o=a?" <"+a+">":"";return t+o+n}function d4o(e){if(typeof e!="string")return e;var t=e.match(/^([^(<]+)/),r=e.match(/\(([^()]+)\)/),n=e.match(/<([^<>]+)>/),a={};return t&&t[0].trim()&&(a.name=t[0].trim()),n&&(a.email=n[1]),r&&(a.url=r[1]),a}function p4o(e){var t=e.optionalDependencies;if(t){var r=e.dependencies||{};Object.keys(t).forEach(function(n){r[n]=t[n]}),e.dependencies=r}}function f4o(e,t,r){if(!e)return{};if(typeof e=="string"&&(e=e.trim().split(/[\n\r\s\t ,]+/)),!Array.isArray(e))return e;r("deprecatedArrayDependencies",t);var n={};return e.filter(function(a){return typeof a=="string"}).forEach(function(a){a=a.trim().split(/(:?[@\s><=])/);var o=a.shift(),l=a.join("");l=l.trim(),l=l.replace(/^@/,""),n[o]=l}),n}function I4o(e,t){a4o.forEach(function(r){e[r]&&(e[r]=f4o(e[r],r,t))})}function h4o(e,t){e&&Object.keys(e).forEach(function(r){Poe.bugs[r]&&(t("typo",r,Poe.bugs[r],"bugs"),e[Poe.bugs[r]]=e[r],delete e[r])})}});var vOn=H((e$l,m4o)=>{m4o.exports={repositories:"'repositories' (plural) Not supported. Please pick one as the 'repository' field",missingRepository:"No repository field.",brokenGitUrl:"Probably broken git url: %s",nonObjectScripts:"scripts must be an object",nonStringScript:"script values must be string commands",nonArrayFiles:"Invalid 'files' member",invalidFilename:"Invalid filename in 'files' list: %s",nonArrayBundleDependencies:"Invalid 'bundleDependencies' list. Must be array of package names",nonStringBundleDependency:"Invalid bundleDependencies member: %s",nonDependencyBundleDependency:"Non-dependency in bundleDependencies: %s",nonObjectDependencies:"%s field must be an object",nonStringDependency:"Invalid dependency: %s %s",deprecatedArrayDependencies:"specifying %s as array is deprecated",deprecatedModules:"modules field is deprecated",nonArrayKeywords:"keywords should be an array of strings",nonStringKeyword:"keywords should be an array of strings",conflictingName:"%s is also the name of a node core module.",nonStringDescription:"'description' field should be a string",missingDescription:"No description",missingReadme:"No README data",missingLicense:"No license field.",nonEmailUrlBugsString:"Bug string field must be url, email, or {email,url}",nonUrlBugsUrlField:"bugs.url field must be a string url. Deleted.",nonEmailBugsEmailField:"bugs.email field must be a string email. Deleted.",emptyNormalizedBugs:"Normalized value of bugs field is an empty object. Deleted.",nonUrlHomepage:"homepage field must be a string url. Deleted.",invalidLicense:"license should be a valid SPDX license expression",typo:"%s should probably be %s."}});var TOn=H((t$l,wOn)=>{var BOn=wt("util"),Sfr=vOn();wOn.exports=function(){var e=Array.prototype.slice.call(arguments,0),t=e.shift();if(t==="typo")return C4o.apply(null,e);var r=Sfr[t]?Sfr[t]:t+": '%s'";return e.unshift(r),BOn.format.apply(null,e)};function C4o(e,t,r){return r&&(e=r+"['"+e+"']",t=r+"['"+t+"']"),BOn.format(Sfr.typo,e,t)}});var wfr=H((r$l,DOn)=>{DOn.exports=ROn;var vfr=SOn();ROn.fixer=vfr;var _4o=TOn(),y4o=["name","version","description","repository","modules","scripts","files","bin","man","bugs","keywords","readme","homepage","license"],b4o=["dependencies","people","typos"],Bfr=y4o.map(function(e){return NOn(e)+"Field"});Bfr=Bfr.concat(b4o);function ROn(e,t,r){t===!0&&(t=null,r=!0),r||(r=!1),(!t||e.private)&&(t=function(){}),e.scripts&&e.scripts.install==="node-gyp rebuild"&&!e.scripts.preinstall&&(e.gypfile=!0),vfr.warn=function(){t(_4o.apply(null,arguments))},Bfr.forEach(function(n){vfr["fix"+NOn(n)](e,r)}),e._id=e.name+"@"+e.version}function NOn(e){return e.charAt(0).toUpperCase()+e.slice(1)}});var Udt=H((o$l,Tfr)=>{var Jdt=process||{},FOn=Jdt.argv||[],Xdt=Jdt.env||{},B4o=!(Xdt.NO_COLOR||FOn.includes("--no-color"))&&(!!Xdt.FORCE_COLOR||FOn.includes("--color")||Jdt.platform==="win32"||(Jdt.stdout||{}).isTTY&&Xdt.TERM!=="dumb"||!!Xdt.CI),w4o=(e,t,r=e)=>n=>{let a=""+n,o=a.indexOf(t,e.length);return~o?e+T4o(a,t,r,o)+t:e+a+t},T4o=(e,t,r,n)=>{let a="",o=0;do a+=e.substring(o,n)+r,o=n+t.length,n=e.indexOf(t,o);while(~n);return a+e.substring(o)},ZOn=(e=B4o)=>{let t=e?w4o:()=>String;return{isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};Tfr.exports=ZOn();Tfr.exports.createColors=ZOn});var Rfr=H(Kdt=>{Object.defineProperty(Kdt,"__esModule",{value:!0});Kdt.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g;Kdt.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!!(e[3]||e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}});var OOn=H(fMe=>{"use strict";Object.defineProperty(fMe,"__esModule",{value:!0});fMe.isIdentifierChar=WOn;fMe.isIdentifierName=k4o;fMe.isIdentifierStart=POn;var Dfr="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",LOn="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",R4o=new RegExp("["+Dfr+"]"),N4o=new RegExp("["+Dfr+LOn+"]");Dfr=LOn=null;var VOn=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],D4o=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Nfr(e,t){let r=65536;for(let n=0,a=t.length;ne)return!1;if(r+=t[n+1],r>=e)return!0}return!1}function POn(e){return e<65?e===36:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&R4o.test(String.fromCharCode(e)):Nfr(e,VOn)}function WOn(e){return e<48?e===36:e<58?!0:e<65?!1:e<=90?!0:e<97?e===95:e<=122?!0:e<=65535?e>=170&&N4o.test(String.fromCharCode(e)):Nfr(e,VOn)||Nfr(e,D4o)}function k4o(e){let t=!0;for(let r=0;r{"use strict";Object.defineProperty(bIe,"__esModule",{value:!0});bIe.isKeyword=L4o;bIe.isReservedWord=MOn;bIe.isStrictBindOnlyReservedWord=YOn;bIe.isStrictBindReservedWord=Z4o;bIe.isStrictReservedWord=HOn;var kfr={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},x4o=new Set(kfr.keyword),G4o=new Set(kfr.strict),F4o=new Set(kfr.strictBind);function MOn(e,t){return t&&e==="await"||e==="enum"}function HOn(e,t){return MOn(e,t)||G4o.has(e)}function YOn(e){return F4o.has(e)}function Z4o(e,t){return HOn(e,t)||YOn(e)}function L4o(e){return x4o.has(e)}});var Gfr=H(c8=>{"use strict";Object.defineProperty(c8,"__esModule",{value:!0});Object.defineProperty(c8,"isIdentifierChar",{enumerable:!0,get:function(){return xfr.isIdentifierChar}});Object.defineProperty(c8,"isIdentifierName",{enumerable:!0,get:function(){return xfr.isIdentifierName}});Object.defineProperty(c8,"isIdentifierStart",{enumerable:!0,get:function(){return xfr.isIdentifierStart}});Object.defineProperty(c8,"isKeyword",{enumerable:!0,get:function(){return IMe.isKeyword}});Object.defineProperty(c8,"isReservedWord",{enumerable:!0,get:function(){return IMe.isReservedWord}});Object.defineProperty(c8,"isStrictBindOnlyReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindOnlyReservedWord}});Object.defineProperty(c8,"isStrictBindReservedWord",{enumerable:!0,get:function(){return IMe.isStrictBindReservedWord}});Object.defineProperty(c8,"isStrictReservedWord",{enumerable:!0,get:function(){return IMe.isStrictReservedWord}});var xfr=OOn(),IMe=QOn()});var t3n=H(hMe=>{"use strict";Object.defineProperty(hMe,"__esModule",{value:!0});var Ffr=Udt(),XOn=Rfr(),JOn=Gfr();function V4o(){return typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?!1:Ffr.isColorSupported}var jdt=(e,t)=>r=>e(t(r));function jOn(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:jdt(jdt(e.white,e.bgRed),e.bold),gutter:e.gray,marker:jdt(e.red,e.bold),message:jdt(e.red,e.bold),reset:e.reset}}var P4o=jOn(Ffr.createColors(!0)),W4o=jOn(Ffr.createColors(!1));function zOn(e){return e?P4o:W4o}var O4o=new Set(["as","async","from","get","of","set"]),M4o=/\r\n|[\n\r\u2028\u2029]/,H4o=/^[()[\]{}]$/,qOn;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if(JOn.isKeyword(r.value)||JOn.isStrictReservedWord(r.value,!0)||O4o.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="t[n](o)).join(` `):r+=a;return r}var UOn=!1,KOn=/\r\n|[\n\r\u2028\u2029]/;function Y4o(e,t,r){let n=Object.assign({column:0,line:-1},e.start),a=Object.assign({},n,e.end),{linesAbove:o=2,linesBelow:l=3}=r||{},A=n.line,f=n.column,I=a.line,C=a.column,b=Math.max(A-(o+1),0),E=Math.min(t.length,I+l);A===-1&&(b=0),I===-1&&(E=t.length);let N=I-A,B={};if(N)for(let F=0;F<=N;F++){let Q=F+A;if(!f)B[Q]=!0;else if(F===0){let X=t[Q-1].length;B[Q]=[f,X-f+1]}else if(F===N)B[Q]=[0,C];else{let X=t[Q-F].length;B[Q]=[0,X]}}else f===C?f?B[A]=[f,0]:B[A]=!0:B[A]=[f,C-f];return{start:b,end:E,markerLines:B}}function e3n(e,t,r={}){let n=r.forceColor||V4o()&&r.highlightCode,a=zOn(n),o=e.split(KOn),{start:l,end:A,markerLines:f}=Y4o(t,o,r),I=t.start&&typeof t.start.column=="number",C=String(A).length,E=(n?$On(e):e).split(KOn,A).slice(l,A).map((N,B)=>{let F=l+1+B,X=` ${` ${F}`.slice(-C)} |`,ae=f[F],ne=!f[F+1];if(ae){let ce="";if(Array.isArray(ae)){let fe=N.slice(0,Math.max(ae[0]-1,0)).replace(/[^\t]/g," "),ue=ae[1]||1;ce=[` `,a.gutter(X.replace(/\d/g," "))," ",fe,a.marker("^").repeat(ue)].join(""),ne&&r.message&&(ce+=" "+a.message(r.message))}return[a.marker(">"),a.gutter(X),N.length>0?` ${N}`:"",ce].join("")}else return` ${a.gutter(X)}${N.length>0?` ${N}`:""}`}).join(` `);return r.message&&!I&&(E=`${" ".repeat(C+1)}${r.message} @@ -290,12 +290,12 @@ ${E}`),n?a.reset(E):E}function Q4o(e,t,r,n={}){if(!UOn){UOn=!0;let o="Passing li `,o-1))a++;return{line:a,column:n}}function zdt(e,t,{oneBased:r=!1}={}){if(t<0||t>=e.length&&e.length>0)throw new RangeError("Index out of bounds");let n=X4o(e,t);return r?{line:n.line+1,column:n.column+1}:n}var r3n,n3n=bc(()=>{r3n=(e,t,r)=>r<0?-1:e.lastIndexOf(t,r)});function Lfr(e,t,r){typeof t=="string"&&(r=t,t=void 0);let n;try{return JSON.parse(e,t)}catch(l){n=l.message}let a;e?(a=U4o(e,n),n=K4o(n)):n+=" while parsing empty string";let o=new Zfr(n);throw o.fileName=r,a&&(o.codeFrame=i3n(e,a),o.rawCodeFrame=i3n(e,a,!1)),o}var s3n,J4o,Zfr,i3n,U4o,K4o,o3n=bc(()=>{s3n=Nt(t3n(),1);n3n();J4o=e=>`\\u{${e.codePointAt(0).toString(16)}}`,Zfr=class e extends Error{name="JSONError";fileName;codeFrame;rawCodeFrame;#e;constructor(t){super(),this.#e=t,Error.captureStackTrace?.(this,e)}get message(){let{fileName:t,codeFrame:r}=this;return`${this.#e}${t?` in ${t}`:""}${r?` ${r} -`:""}`}set message(t){this.#e=t}},i3n=(e,t,r=!0)=>(0,s3n.codeFrameColumns)(e,{start:t},{highlightCode:r}),U4o=(e,t)=>{let r=t.match(/in JSON at position (?\d+)(?: \(line (?\d+) column (?\d+)\))?$/);if(!r)return;let{index:n,line:a,column:o}=r.groups;if(a&&o)return{line:Number(a),column:Number(o)};if(n=Number(n),n===e.length){let{line:l,column:A}=zdt(e,e.length-1,{oneBased:!0});return{line:l,column:A+1}}return zdt(e,n,{oneBased:!0})},K4o=e=>e.replace(/(?<=^Unexpected token )(?')?(.)\k/,(t,r,n)=>`"${n}"(${J4o(n)})`)});var a3n=bc(()=>{});import{fileURLToPath as j4o}from"node:url";function mMe(e){return e instanceof URL?j4o(e):e}var Vfr=bc(()=>{a3n()});var u3n={};sI(u3n,{parsePackage:()=>eJo,readPackage:()=>Wfr,readPackageSync:()=>Ofr});import z4o from"node:fs";import q4o from"node:fs/promises";import $4o from"node:path";async function Wfr({cwd:e,normalize:t=!0}={}){let r=await q4o.readFile(l3n(e),"utf8");return Pfr(r,t)}function Ofr({cwd:e,normalize:t=!0}={}){let r=z4o.readFileSync(l3n(e),"utf8");return Pfr(r,t)}function eJo(e,{normalize:t=!0}={}){let r=e!==null&&typeof e=="object"&&!Array.isArray(e);if(!r&&!(typeof e=="string"))throw new TypeError("`packageFile` should be either an `object` or a `string`.");let a=r?structuredClone(e):e;return Pfr(a,t)}var c3n,l3n,Pfr,Mfr=bc(()=>{o3n();c3n=Nt(wfr(),1);Vfr();l3n=e=>$4o.resolve(mMe(e)??".","package.json"),Pfr=(e,t)=>{let r=typeof e=="string"?Lfr(e):e;return t&&(0,c3n.default)(r),r}});import g3n from"node:process";import tJo from"node:fs/promises";import{fileURLToPath as rJo}from"node:url";import nJo from"node:fs";import _M from"node:path";async function A3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n??o));a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=await tJo.stat(l);if(r==="file"&&A.isFile()||r==="directory"&&A.isDirectory())return l}catch{}a=_M.dirname(a)}}function d3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n)??o);a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=nJo.statSync(l,{throwIfNoEntry:!1});if(r==="file"&&A?.isFile()||r==="directory"&&A?.isDirectory())return l}catch{}a=_M.dirname(a)}}var qdt,p3n=bc(()=>{qdt=e=>e instanceof URL?rJo(e):e});var I3n={};sI(I3n,{readPackageUp:()=>iJo,readPackageUpSync:()=>sJo});import f3n from"node:path";async function iJo(e){let t=await A3n("package.json",e);if(t)return{packageJson:await Wfr({...e,cwd:f3n.dirname(t)}),path:t}}function sJo(e){let t=d3n("package.json",e);if(t)return{packageJson:Ofr({...e,cwd:f3n.dirname(t)}),path:t}}var h3n=bc(()=>{p3n();Mfr()});var w3n=H((reu,B3n)=>{"use strict";B3n.exports=function(e){return Array.isArray(e)?e:[e]}});var R3n=H((neu,T3n)=>{"use strict";T3n.exports=e=>{let t=typeof e;return e!==null&&(t==="object"||t==="function")}});var D3n=H((ieu,N3n)=>{"use strict";var EIe=R3n(),_Jo=["__proto__","prototype","constructor"],yJo=e=>!e.some(t=>_Jo.includes(t));function $dt(e){let t=e.split("."),r=[];for(let n=0;n{"use strict";var bJo=w3n(),k3n=D3n().get;function EJo(e){return function(t,r){var n=0;return bJo(e).some(function(a){var o,l;if(typeof a=="function"?(o=a(t),l=a(r)):typeof a=="string"?(o=k3n(t,a),l=k3n(r,a)):(o=t,l=r),o===l){n=0;return}return typeof o=="string"&&typeof l=="string"?(n=o.localeCompare(l),n!==0):(n=o{"use strict";var RJo=/[|\\{}()[\]^$+*?.]/g;X3n.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(RJo,"\\$&")}});var U3n=H((Geu,J3n)=>{"use strict";J3n.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var zfr=H((Feu,q3n)=>{var SIe=U3n(),z3n={};for(tpt in SIe)SIe.hasOwnProperty(tpt)&&(z3n[SIe[tpt]]=tpt);var tpt,pd=q3n.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(DZ in pd)if(pd.hasOwnProperty(DZ)){if(!("channels"in pd[DZ]))throw new Error("missing channels property: "+DZ);if(!("labels"in pd[DZ]))throw new Error("missing channel labels property: "+DZ);if(pd[DZ].labels.length!==pd[DZ].channels)throw new Error("channel and label counts mismatch: "+DZ);K3n=pd[DZ].channels,j3n=pd[DZ].labels,delete pd[DZ].channels,delete pd[DZ].labels,Object.defineProperty(pd[DZ],"channels",{value:K3n}),Object.defineProperty(pd[DZ],"labels",{value:j3n})}var K3n,j3n,DZ;pd.rgb.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f,I;return o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360),I=(a+o)/2,o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};pd.rgb.hsv=function(e){var t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?a=o=0:(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};pd.rgb.hwb=function(e){var t=e[0],r=e[1],n=e[2],a=pd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};pd.rgb.cmyk=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a,o,l,A;return A=Math.min(1-t,1-r,1-n),a=(1-t-A)/(1-A)||0,o=(1-r-A)/(1-A)||0,l=(1-n-A)/(1-A)||0,[a*100,o*100,l*100,A*100]};function NJo(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}pd.rgb.keyword=function(e){var t=z3n[e];if(t)return t;var r=1/0,n;for(var a in SIe)if(SIe.hasOwnProperty(a)){var o=SIe[a],l=NJo(e,o);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};pd.rgb.lab=function(e){var t=pd.rgb.xyz(e),r=t[0],n=t[1],a=t[2],o,l,A;return r/=95.047,n/=100,a/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=116*n-16,l=500*(r-n),A=200*(n-a),[o,l,A]};pd.hsl.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l,A,f;if(r===0)return f=n*255,[f,f,f];n<.5?o=n*(1+r):o=n+r-n*r,a=2*n-o,A=[0,0,0];for(var I=0;I<3;I++)l=t+1/3*-(I-1),l<0&&l++,l>1&&l--,6*l<1?f=a+(o-a)*6*l:2*l<1?f=o:3*l<2?f=a+(o-a)*(2/3-l)*6:f=a,A[I]=f*255;return A};pd.hsl.hsv=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01),l,A;return n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o,A=(n+r)/2,l=n===0?2*a/(o+a):2*r/(n+r),[t,l*100,A*100]};pd.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};pd.hsv.hsl=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l,A;return A=(2-r)*n,o=(2-r)*a,l=r*a,l/=o<=1?o:2-o,l=l||0,A/=2,[t,l*100,A*100]};pd.hwb.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o,l,A,f;a>1&&(r/=a,n/=a),o=Math.floor(6*t),l=1-n,A=6*t-o,o&1&&(A=1-A),f=r+A*(l-r);var I,C,b;switch(o){default:case 6:case 0:I=l,C=f,b=r;break;case 1:I=f,C=l,b=r;break;case 2:I=r,C=l,b=f;break;case 3:I=r,C=f,b=l;break;case 4:I=f,C=r,b=l;break;case 5:I=l,C=r,b=f;break}return[I*255,C*255,b*255]};pd.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o,l,A;return o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a),[o*255,l*255,A*255]};pd.xyz.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,l=l>.0031308?1.055*Math.pow(l,1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};pd.xyz.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=116*r-16,o=500*(t-r),l=200*(r-n),[a,o,l]};pd.lab.xyz=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;var A=Math.pow(o,3),f=Math.pow(a,3),I=Math.pow(l,3);return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};pd.lab.lch=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return a=Math.atan2(n,r),o=a*360/2/Math.PI,o<0&&(o+=360),l=Math.sqrt(r*r+n*n),[t,l,o]};pd.lch.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return l=n/360*2*Math.PI,a=r*Math.cos(l),o=r*Math.sin(l),[t,a,o]};pd.rgb.ansi16=function(e){var t=e[0],r=e[1],n=e[2],a=1 in arguments?arguments[1]:pd.rgb.hsv(e)[2];if(a=Math.round(a/50),a===0)return 30;var o=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return a===2&&(o+=60),o};pd.hsv.ansi16=function(e){return pd.rgb.ansi16(pd.hsv.rgb(e),e[2])};pd.rgb.ansi256=function(e){var t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var a=16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5);return a};pd.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};pd.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var r,n=Math.floor(e/36)/5*255,a=Math.floor((r=e%36)/6)/5*255,o=r%6/5*255;return[n,a,o]};pd.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};pd.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];t[0].length===3&&(r=r.split("").map(function(A){return A+A}).join(""));var n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};pd.rgb.hcg=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l+4,f/=6,f%=1,[f*360,l*100,A*100]};pd.hsl.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1,a=0;return r<.5?n=2*t*r:n=2*t*(1-r),n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};pd.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};pd.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];var a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};pd.hcg.hsv=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};pd.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100,n=r*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};pd.hcg.hwb=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};pd.hwb.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1-r,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};pd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};pd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};pd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};pd.gray.hsl=pd.gray.hsv=function(e){return[0,0,e[0]]};pd.gray.hwb=function(e){return[0,100,e[0]]};pd.gray.cmyk=function(e){return[0,0,0,e[0]]};pd.gray.lab=function(e){return[e[0],0,0]};pd.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,r=(t<<16)+(t<<8)+t,n=r.toString(16).toUpperCase();return"000000".substring(n.length)+n};pd.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var e5n=H((Zeu,$3n)=>{var rpt=zfr();function DJo(){for(var e={},t=Object.keys(rpt),r=t.length,n=0;n{var qfr=zfr(),FJo=e5n(),$ve={},ZJo=Object.keys(qfr);function LJo(e){var t=function(r){return r==null?r:(arguments.length>1&&(r=Array.prototype.slice.call(arguments)),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function VJo(e){var t=function(r){if(r==null)return r;arguments.length>1&&(r=Array.prototype.slice.call(arguments));var n=e(r);if(typeof n=="object")for(var a=n.length,o=0;o{"use strict";var eBe=r5n(),npt=(e,t)=>function(){return`\x1B[${e.apply(eBe,arguments)+t}m`},ipt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};5;${r}m`},spt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};2;${r[0]};${r[1]};${r[2]}m`};function PJo(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(let a of Object.keys(t)){let o=t[a];for(let l of Object.keys(o)){let A=o[l];t[l]={open:`\x1B[${A[0]}m`,close:`\x1B[${A[1]}m`},o[l]=t[l],e.set(A[0],A[1])}Object.defineProperty(t,a,{value:o,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}let r=a=>a,n=(a,o,l)=>[a,o,l];t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi={ansi:npt(r,0)},t.color.ansi256={ansi256:ipt(r,0)},t.color.ansi16m={rgb:spt(n,0)},t.bgColor.ansi={ansi:npt(r,10)},t.bgColor.ansi256={ansi256:ipt(r,10)},t.bgColor.ansi16m={rgb:spt(n,10)};for(let a of Object.keys(eBe)){if(typeof eBe[a]!="object")continue;let o=eBe[a];a==="ansi16"&&(a="ansi"),"ansi16"in o&&(t.color.ansi[a]=npt(o.ansi16,0),t.bgColor.ansi[a]=npt(o.ansi16,10)),"ansi256"in o&&(t.color.ansi256[a]=ipt(o.ansi256,0),t.bgColor.ansi256[a]=ipt(o.ansi256,10)),"rgb"in o&&(t.color.ansi16m[a]=spt(o.rgb,0),t.bgColor.ansi16m[a]=spt(o.rgb,10))}return t}Object.defineProperty(n5n,"exports",{enumerable:!0,get:PJo})});var o5n=H((Peu,s5n)=>{"use strict";s5n.exports=(e,t)=>{t=t||process.argv;let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1?!0:n{"use strict";var WJo=wt("os"),mX=o5n(),IG=process.env,tBe;mX("no-color")||mX("no-colors")||mX("color=false")?tBe=!1:(mX("color")||mX("colors")||mX("color=true")||mX("color=always"))&&(tBe=!0);"FORCE_COLOR"in IG&&(tBe=IG.FORCE_COLOR.length===0||parseInt(IG.FORCE_COLOR,10)!==0);function OJo(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function MJo(e){if(tBe===!1)return 0;if(mX("color=16m")||mX("color=full")||mX("color=truecolor"))return 3;if(mX("color=256"))return 2;if(e&&!e.isTTY&&tBe!==!0)return 0;let t=tBe?1:0;if(process.platform==="win32"){let r=WJo.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in IG)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(r=>r in IG)||IG.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in IG)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(IG.TEAMCITY_VERSION)?1:0;if(IG.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in IG){let r=parseInt((IG.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(IG.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(IG.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(IG.TERM)||"COLORTERM"in IG?1:(IG.TERM==="dumb",t)}function $fr(e){let t=MJo(e);return OJo(t)}a5n.exports={supportsColor:$fr,stdout:$fr(process.stdout),stderr:$fr(process.stderr)}});var d5n=H((Oeu,A5n)=>{"use strict";var HJo=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,l5n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,YJo=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,QJo=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,XJo=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function g5n(e){return e[0]==="u"&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):XJo.get(e)||e}function JJo(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n)if(!isNaN(o))r.push(Number(o));else if(a=o.match(YJo))r.push(a[2].replace(QJo,(l,A,f)=>A?g5n(A):f));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`);return r}function UJo(e){l5n.lastIndex=0;let t=[],r;for(;(r=l5n.exec(e))!==null;){let n=r[1];if(r[2]){let a=JJo(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function u5n(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let a of Object.keys(r))if(Array.isArray(r[a])){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);r[a].length>0?n=n[a].apply(n,r[a]):n=n[a]}return n}A5n.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(HJo,(o,l,A,f,I,C)=>{if(l)a.push(g5n(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:u5n(e,r)(b)),r.push({inverse:A,styles:UJo(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(u5n(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var m5n=H((Meu,yMe)=>{"use strict";var tIr=jfr(),iT=i5n(),eIr=c5n().stdout,KJo=d5n(),f5n=process.platform==="win32"&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),I5n=["ansi","ansi","ansi256","ansi16m"],h5n=new Set(["gray"]),rBe=Object.create(null);function p5n(e,t){t=t||{};let r=eIr?eIr.level:0;e.level=t.level===void 0?r:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function _Me(e){if(!this||!(this instanceof _Me)||this.template){let t={};return p5n(t,e),t.template=function(){let r=[].slice.call(arguments);return qJo.apply(null,[t.template].concat(r))},Object.setPrototypeOf(t,_Me.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=_Me,t.template}p5n(this,e)}f5n&&(iT.blue.open="\x1B[94m");for(let e of Object.keys(iT))iT[e].closeRe=new RegExp(tIr(iT[e].close),"g"),rBe[e]={get(){let t=iT[e];return opt.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};rBe.visible={get(){return opt.call(this,this._styles||[],!0,"visible")}};iT.color.closeRe=new RegExp(tIr(iT.color.close),"g");for(let e of Object.keys(iT.color.ansi))h5n.has(e)||(rBe[e]={get(){let t=this.level;return function(){let n={open:iT.color[I5n[t]][e].apply(null,arguments),close:iT.color.close,closeRe:iT.color.closeRe};return opt.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}});iT.bgColor.closeRe=new RegExp(tIr(iT.bgColor.close),"g");for(let e of Object.keys(iT.bgColor.ansi)){if(h5n.has(e))continue;let t="bg"+e[0].toUpperCase()+e.slice(1);rBe[t]={get(){let r=this.level;return function(){let a={open:iT.bgColor[I5n[r]][e].apply(null,arguments),close:iT.bgColor.close,closeRe:iT.bgColor.closeRe};return opt.call(this,this._styles?this._styles.concat(a):[a],this._empty,e)}}}}var jJo=Object.defineProperties(()=>{},rBe);function opt(e,t,r){let n=function(){return zJo.apply(n,arguments)};n._styles=e,n._empty=t;let a=this;return Object.defineProperty(n,"level",{enumerable:!0,get(){return a.level},set(o){a.level=o}}),Object.defineProperty(n,"enabled",{enumerable:!0,get(){return a.enabled},set(o){a.enabled=o}}),n.hasGrey=this.hasGrey||r==="gray"||r==="grey",n.__proto__=jJo,n}function zJo(){let e=arguments,t=e.length,r=String(arguments[0]);if(t===0)return"";if(t>1)for(let a=1;a{"use strict";Object.defineProperty(bMe,"__esModule",{value:!0});bMe.default=oUo;bMe.shouldHighlight=v5n;var C5n=Rfr(),_5n=Gfr(),nIr=$Jo(Udt(),!0);function b5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(b5n=function(n){return n?r:t})(e)}function $Jo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=b5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var E5n=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,nIr.createColors)(!1):nIr.default,y5n=(e,t)=>r=>e(t(r)),eUo=new Set(["as","async","from","get","of","set"]);function tUo(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:y5n(y5n(e.white,e.bgRed),e.bold)}}var rUo=/\r\n|[\n\r\u2028\u2029]/,nUo=/^[()[\]{}]$/,S5n;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if((0,_5n.isKeyword)(r.value)||(0,_5n.isStrictReservedWord)(r.value,!0)||eUo.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="o(l)).join(` +`:""}`}set message(t){this.#e=t}},i3n=(e,t,r=!0)=>(0,s3n.codeFrameColumns)(e,{start:t},{highlightCode:r}),U4o=(e,t)=>{let r=t.match(/in JSON at position (?\d+)(?: \(line (?\d+) column (?\d+)\))?$/);if(!r)return;let{index:n,line:a,column:o}=r.groups;if(a&&o)return{line:Number(a),column:Number(o)};if(n=Number(n),n===e.length){let{line:l,column:A}=zdt(e,e.length-1,{oneBased:!0});return{line:l,column:A+1}}return zdt(e,n,{oneBased:!0})},K4o=e=>e.replace(/(?<=^Unexpected token )(?')?(.)\k/,(t,r,n)=>`"${n}"(${J4o(n)})`)});var a3n=bc(()=>{});import{fileURLToPath as j4o}from"node:url";function mMe(e){return e instanceof URL?j4o(e):e}var Vfr=bc(()=>{a3n()});var u3n={};sI(u3n,{parsePackage:()=>eJo,readPackage:()=>Wfr,readPackageSync:()=>Ofr});import z4o from"node:fs";import q4o from"node:fs/promises";import $4o from"node:path";async function Wfr({cwd:e,normalize:t=!0}={}){let r=await q4o.readFile(l3n(e),"utf8");return Pfr(r,t)}function Ofr({cwd:e,normalize:t=!0}={}){let r=z4o.readFileSync(l3n(e),"utf8");return Pfr(r,t)}function eJo(e,{normalize:t=!0}={}){let r=e!==null&&typeof e=="object"&&!Array.isArray(e);if(!r&&!(typeof e=="string"))throw new TypeError("`packageFile` should be either an `object` or a `string`.");let a=r?structuredClone(e):e;return Pfr(a,t)}var c3n,l3n,Pfr,Mfr=bc(()=>{o3n();c3n=Nt(wfr(),1);Vfr();l3n=e=>$4o.resolve(mMe(e)??".","package.json"),Pfr=(e,t)=>{let r=typeof e=="string"?Lfr(e):e;return t&&(0,c3n.default)(r),r}});import g3n from"node:process";import tJo from"node:fs/promises";import{fileURLToPath as rJo}from"node:url";import nJo from"node:fs";import _M from"node:path";async function A3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n??o));a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=await tJo.stat(l);if(r==="file"&&A.isFile()||r==="directory"&&A.isDirectory())return l}catch{}a=_M.dirname(a)}}function d3n(e,{cwd:t=g3n.cwd(),type:r="file",stopAt:n}={}){let a=_M.resolve(qdt(t)??""),{root:o}=_M.parse(a);for(n=_M.resolve(a,qdt(n)??o);a&&a!==n&&a!==o;){let l=_M.isAbsolute(e)?e:_M.join(a,e);try{let A=nJo.statSync(l,{throwIfNoEntry:!1});if(r==="file"&&A?.isFile()||r==="directory"&&A?.isDirectory())return l}catch{}a=_M.dirname(a)}}var qdt,p3n=bc(()=>{qdt=e=>e instanceof URL?rJo(e):e});var I3n={};sI(I3n,{readPackageUp:()=>iJo,readPackageUpSync:()=>sJo});import f3n from"node:path";async function iJo(e){let t=await A3n("package.json",e);if(t)return{packageJson:await Wfr({...e,cwd:f3n.dirname(t)}),path:t}}function sJo(e){let t=d3n("package.json",e);if(t)return{packageJson:Ofr({...e,cwd:f3n.dirname(t)}),path:t}}var h3n=bc(()=>{p3n();Mfr()});var w3n=H((neu,B3n)=>{"use strict";B3n.exports=function(e){return Array.isArray(e)?e:[e]}});var R3n=H((ieu,T3n)=>{"use strict";T3n.exports=e=>{let t=typeof e;return e!==null&&(t==="object"||t==="function")}});var D3n=H((seu,N3n)=>{"use strict";var EIe=R3n(),_Jo=["__proto__","prototype","constructor"],yJo=e=>!e.some(t=>_Jo.includes(t));function $dt(e){let t=e.split("."),r=[];for(let n=0;n{"use strict";var bJo=w3n(),k3n=D3n().get;function EJo(e){return function(t,r){var n=0;return bJo(e).some(function(a){var o,l;if(typeof a=="function"?(o=a(t),l=a(r)):typeof a=="string"?(o=k3n(t,a),l=k3n(r,a)):(o=t,l=r),o===l){n=0;return}return typeof o=="string"&&typeof l=="string"?(n=o.localeCompare(l),n!==0):(n=o{"use strict";var RJo=/[|\\{}()[\]^$+*?.]/g;X3n.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(RJo,"\\$&")}});var U3n=H((Feu,J3n)=>{"use strict";J3n.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var zfr=H((Zeu,q3n)=>{var SIe=U3n(),z3n={};for(tpt in SIe)SIe.hasOwnProperty(tpt)&&(z3n[SIe[tpt]]=tpt);var tpt,pd=q3n.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(DZ in pd)if(pd.hasOwnProperty(DZ)){if(!("channels"in pd[DZ]))throw new Error("missing channels property: "+DZ);if(!("labels"in pd[DZ]))throw new Error("missing channel labels property: "+DZ);if(pd[DZ].labels.length!==pd[DZ].channels)throw new Error("channel and label counts mismatch: "+DZ);K3n=pd[DZ].channels,j3n=pd[DZ].labels,delete pd[DZ].channels,delete pd[DZ].labels,Object.defineProperty(pd[DZ],"channels",{value:K3n}),Object.defineProperty(pd[DZ],"labels",{value:j3n})}var K3n,j3n,DZ;pd.rgb.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.min(t,r,n),o=Math.max(t,r,n),l=o-a,A,f,I;return o===a?A=0:t===o?A=(r-n)/l:r===o?A=2+(n-t)/l:n===o&&(A=4+(t-r)/l),A=Math.min(A*60,360),A<0&&(A+=360),I=(a+o)/2,o===a?f=0:I<=.5?f=l/(o+a):f=l/(2-o-a),[A,f*100,I*100]};pd.rgb.hsv=function(e){var t,r,n,a,o,l=e[0]/255,A=e[1]/255,f=e[2]/255,I=Math.max(l,A,f),C=I-Math.min(l,A,f),b=function(E){return(I-E)/6/C+1/2};return C===0?a=o=0:(o=C/I,t=b(l),r=b(A),n=b(f),l===I?a=n-r:A===I?a=1/3+t-n:f===I&&(a=2/3+r-t),a<0?a+=1:a>1&&(a-=1)),[a*360,o*100,I*100]};pd.rgb.hwb=function(e){var t=e[0],r=e[1],n=e[2],a=pd.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[a,o*100,n*100]};pd.rgb.cmyk=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a,o,l,A;return A=Math.min(1-t,1-r,1-n),a=(1-t-A)/(1-A)||0,o=(1-r-A)/(1-A)||0,l=(1-n-A)/(1-A)||0,[a*100,o*100,l*100,A*100]};function NJo(e,t){return Math.pow(e[0]-t[0],2)+Math.pow(e[1]-t[1],2)+Math.pow(e[2]-t[2],2)}pd.rgb.keyword=function(e){var t=z3n[e];if(t)return t;var r=1/0,n;for(var a in SIe)if(SIe.hasOwnProperty(a)){var o=SIe[a],l=NJo(e,o);l.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;var a=t*.4124+r*.3576+n*.1805,o=t*.2126+r*.7152+n*.0722,l=t*.0193+r*.1192+n*.9505;return[a*100,o*100,l*100]};pd.rgb.lab=function(e){var t=pd.rgb.xyz(e),r=t[0],n=t[1],a=t[2],o,l,A;return r/=95.047,n/=100,a/=108.883,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=116*n-16,l=500*(r-n),A=200*(n-a),[o,l,A]};pd.hsl.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a,o,l,A,f;if(r===0)return f=n*255,[f,f,f];n<.5?o=n*(1+r):o=n+r-n*r,a=2*n-o,A=[0,0,0];for(var I=0;I<3;I++)l=t+1/3*-(I-1),l<0&&l++,l>1&&l--,6*l<1?f=a+(o-a)*6*l:2*l<1?f=o:3*l<2?f=a+(o-a)*(2/3-l)*6:f=a,A[I]=f*255;return A};pd.hsl.hsv=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=r,o=Math.max(n,.01),l,A;return n*=2,r*=n<=1?n:2-n,a*=o<=1?o:2-o,A=(n+r)/2,l=n===0?2*a/(o+a):2*r/(n+r),[t,l*100,A*100]};pd.hsv.rgb=function(e){var t=e[0]/60,r=e[1]/100,n=e[2]/100,a=Math.floor(t)%6,o=t-Math.floor(t),l=255*n*(1-r),A=255*n*(1-r*o),f=255*n*(1-r*(1-o));switch(n*=255,a){case 0:return[n,f,l];case 1:return[A,n,l];case 2:return[l,n,f];case 3:return[l,A,n];case 4:return[f,l,n];case 5:return[n,l,A]}};pd.hsv.hsl=function(e){var t=e[0],r=e[1]/100,n=e[2]/100,a=Math.max(n,.01),o,l,A;return A=(2-r)*n,o=(2-r)*a,l=r*a,l/=o<=1?o:2-o,l=l||0,A/=2,[t,l*100,A*100]};pd.hwb.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,a=r+n,o,l,A,f;a>1&&(r/=a,n/=a),o=Math.floor(6*t),l=1-n,A=6*t-o,o&1&&(A=1-A),f=r+A*(l-r);var I,C,b;switch(o){default:case 6:case 0:I=l,C=f,b=r;break;case 1:I=f,C=l,b=r;break;case 2:I=r,C=l,b=f;break;case 3:I=r,C=f,b=l;break;case 4:I=f,C=r,b=l;break;case 5:I=l,C=r,b=f;break}return[I*255,C*255,b*255]};pd.cmyk.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a=e[3]/100,o,l,A;return o=1-Math.min(1,t*(1-a)+a),l=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,n*(1-a)+a),[o*255,l*255,A*255]};pd.xyz.rgb=function(e){var t=e[0]/100,r=e[1]/100,n=e[2]/100,a,o,l;return a=t*3.2406+r*-1.5372+n*-.4986,o=t*-.9689+r*1.8758+n*.0415,l=t*.0557+r*-.204+n*1.057,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:a*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,l=l>.0031308?1.055*Math.pow(l,1/2.4)-.055:l*12.92,a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),l=Math.min(Math.max(0,l),1),[a*255,o*255,l*255]};pd.xyz.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,a=116*r-16,o=500*(t-r),l=200*(r-n),[a,o,l]};pd.lab.xyz=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;o=(t+16)/116,a=r/500+o,l=o-n/200;var A=Math.pow(o,3),f=Math.pow(a,3),I=Math.pow(l,3);return o=A>.008856?A:(o-16/116)/7.787,a=f>.008856?f:(a-16/116)/7.787,l=I>.008856?I:(l-16/116)/7.787,a*=95.047,o*=100,l*=108.883,[a,o,l]};pd.lab.lch=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return a=Math.atan2(n,r),o=a*360/2/Math.PI,o<0&&(o+=360),l=Math.sqrt(r*r+n*n),[t,l,o]};pd.lch.lab=function(e){var t=e[0],r=e[1],n=e[2],a,o,l;return l=n/360*2*Math.PI,a=r*Math.cos(l),o=r*Math.sin(l),[t,a,o]};pd.rgb.ansi16=function(e){var t=e[0],r=e[1],n=e[2],a=1 in arguments?arguments[1]:pd.rgb.hsv(e)[2];if(a=Math.round(a/50),a===0)return 30;var o=30+(Math.round(n/255)<<2|Math.round(r/255)<<1|Math.round(t/255));return a===2&&(o+=60),o};pd.hsv.ansi16=function(e){return pd.rgb.ansi16(pd.hsv.rgb(e),e[2])};pd.rgb.ansi256=function(e){var t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;var a=16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5);return a};pd.ansi16.rgb=function(e){var t=e%10;if(t===0||t===7)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];var r=(~~(e>50)+1)*.5,n=(t&1)*r*255,a=(t>>1&1)*r*255,o=(t>>2&1)*r*255;return[n,a,o]};pd.ansi256.rgb=function(e){if(e>=232){var t=(e-232)*10+8;return[t,t,t]}e-=16;var r,n=Math.floor(e/36)/5*255,a=Math.floor((r=e%36)/6)/5*255,o=r%6/5*255;return[n,a,o]};pd.rgb.hex=function(e){var t=((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255),r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};pd.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var r=t[0];t[0].length===3&&(r=r.split("").map(function(A){return A+A}).join(""));var n=parseInt(r,16),a=n>>16&255,o=n>>8&255,l=n&255;return[a,o,l]};pd.rgb.hcg=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,a=Math.max(Math.max(t,r),n),o=Math.min(Math.min(t,r),n),l=a-o,A,f;return l<1?A=o/(1-l):A=0,l<=0?f=0:a===t?f=(r-n)/l%6:a===r?f=2+(n-t)/l:f=4+(t-r)/l+4,f/=6,f%=1,[f*360,l*100,A*100]};pd.hsl.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1,a=0;return r<.5?n=2*t*r:n=2*t*(1-r),n<1&&(a=(r-.5*n)/(1-n)),[e[0],n*100,a*100]};pd.hsv.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=t*r,a=0;return n<1&&(a=(r-n)/(1-n)),[e[0],n*100,a*100]};pd.hcg.rgb=function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100;if(r===0)return[n*255,n*255,n*255];var a=[0,0,0],o=t%1*6,l=o%1,A=1-l,f=0;switch(Math.floor(o)){case 0:a[0]=1,a[1]=l,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=l;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=l,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return f=(1-r)*n,[(r*a[0]+f)*255,(r*a[1]+f)*255,(r*a[2]+f)*255]};pd.hcg.hsv=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t),a=0;return n>0&&(a=t/n),[e[0],a*100,n*100]};pd.hcg.hsl=function(e){var t=e[1]/100,r=e[2]/100,n=r*(1-t)+.5*t,a=0;return n>0&&n<.5?a=t/(2*n):n>=.5&&n<1&&(a=t/(2*(1-n))),[e[0],a*100,n*100]};pd.hcg.hwb=function(e){var t=e[1]/100,r=e[2]/100,n=t+r*(1-t);return[e[0],(n-t)*100,(1-n)*100]};pd.hwb.hcg=function(e){var t=e[1]/100,r=e[2]/100,n=1-r,a=n-t,o=0;return a<1&&(o=(n-a)/(1-a)),[e[0],a*100,o*100]};pd.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]};pd.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]};pd.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]};pd.gray.hsl=pd.gray.hsv=function(e){return[0,0,e[0]]};pd.gray.hwb=function(e){return[0,100,e[0]]};pd.gray.cmyk=function(e){return[0,0,0,e[0]]};pd.gray.lab=function(e){return[e[0],0,0]};pd.gray.hex=function(e){var t=Math.round(e[0]/100*255)&255,r=(t<<16)+(t<<8)+t,n=r.toString(16).toUpperCase();return"000000".substring(n.length)+n};pd.rgb.gray=function(e){var t=(e[0]+e[1]+e[2])/3;return[t/255*100]}});var e5n=H((Leu,$3n)=>{var rpt=zfr();function DJo(){for(var e={},t=Object.keys(rpt),r=t.length,n=0;n{var qfr=zfr(),FJo=e5n(),$ve={},ZJo=Object.keys(qfr);function LJo(e){var t=function(r){return r==null?r:(arguments.length>1&&(r=Array.prototype.slice.call(arguments)),e(r))};return"conversion"in e&&(t.conversion=e.conversion),t}function VJo(e){var t=function(r){if(r==null)return r;arguments.length>1&&(r=Array.prototype.slice.call(arguments));var n=e(r);if(typeof n=="object")for(var a=n.length,o=0;o{"use strict";var eBe=r5n(),npt=(e,t)=>function(){return`\x1B[${e.apply(eBe,arguments)+t}m`},ipt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};5;${r}m`},spt=(e,t)=>function(){let r=e.apply(eBe,arguments);return`\x1B[${38+t};2;${r[0]};${r[1]};${r[2]}m`};function PJo(){let e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.grey=t.color.gray;for(let a of Object.keys(t)){let o=t[a];for(let l of Object.keys(o)){let A=o[l];t[l]={open:`\x1B[${A[0]}m`,close:`\x1B[${A[1]}m`},o[l]=t[l],e.set(A[0],A[1])}Object.defineProperty(t,a,{value:o,enumerable:!1}),Object.defineProperty(t,"codes",{value:e,enumerable:!1})}let r=a=>a,n=(a,o,l)=>[a,o,l];t.color.close="\x1B[39m",t.bgColor.close="\x1B[49m",t.color.ansi={ansi:npt(r,0)},t.color.ansi256={ansi256:ipt(r,0)},t.color.ansi16m={rgb:spt(n,0)},t.bgColor.ansi={ansi:npt(r,10)},t.bgColor.ansi256={ansi256:ipt(r,10)},t.bgColor.ansi16m={rgb:spt(n,10)};for(let a of Object.keys(eBe)){if(typeof eBe[a]!="object")continue;let o=eBe[a];a==="ansi16"&&(a="ansi"),"ansi16"in o&&(t.color.ansi[a]=npt(o.ansi16,0),t.bgColor.ansi[a]=npt(o.ansi16,10)),"ansi256"in o&&(t.color.ansi256[a]=ipt(o.ansi256,0),t.bgColor.ansi256[a]=ipt(o.ansi256,10)),"rgb"in o&&(t.color.ansi16m[a]=spt(o.rgb,0),t.bgColor.ansi16m[a]=spt(o.rgb,10))}return t}Object.defineProperty(n5n,"exports",{enumerable:!0,get:PJo})});var o5n=H((Weu,s5n)=>{"use strict";s5n.exports=(e,t)=>{t=t||process.argv;let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1?!0:n{"use strict";var WJo=wt("os"),mX=o5n(),IG=process.env,tBe;mX("no-color")||mX("no-colors")||mX("color=false")?tBe=!1:(mX("color")||mX("colors")||mX("color=true")||mX("color=always"))&&(tBe=!0);"FORCE_COLOR"in IG&&(tBe=IG.FORCE_COLOR.length===0||parseInt(IG.FORCE_COLOR,10)!==0);function OJo(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function MJo(e){if(tBe===!1)return 0;if(mX("color=16m")||mX("color=full")||mX("color=truecolor"))return 3;if(mX("color=256"))return 2;if(e&&!e.isTTY&&tBe!==!0)return 0;let t=tBe?1:0;if(process.platform==="win32"){let r=WJo.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in IG)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(r=>r in IG)||IG.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in IG)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(IG.TEAMCITY_VERSION)?1:0;if(IG.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in IG){let r=parseInt((IG.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(IG.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(IG.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(IG.TERM)||"COLORTERM"in IG?1:(IG.TERM==="dumb",t)}function $fr(e){let t=MJo(e);return OJo(t)}a5n.exports={supportsColor:$fr,stdout:$fr(process.stdout),stderr:$fr(process.stderr)}});var d5n=H((Meu,A5n)=>{"use strict";var HJo=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,l5n=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,YJo=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,QJo=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,XJo=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function g5n(e){return e[0]==="u"&&e.length===5||e[0]==="x"&&e.length===3?String.fromCharCode(parseInt(e.slice(1),16)):XJo.get(e)||e}function JJo(e,t){let r=[],n=t.trim().split(/\s*,\s*/g),a;for(let o of n)if(!isNaN(o))r.push(Number(o));else if(a=o.match(YJo))r.push(a[2].replace(QJo,(l,A,f)=>A?g5n(A):f));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${e}')`);return r}function UJo(e){l5n.lastIndex=0;let t=[],r;for(;(r=l5n.exec(e))!==null;){let n=r[1];if(r[2]){let a=JJo(n,r[2]);t.push([n].concat(a))}else t.push([n])}return t}function u5n(e,t){let r={};for(let a of t)for(let o of a.styles)r[o[0]]=a.inverse?null:o.slice(1);let n=e;for(let a of Object.keys(r))if(Array.isArray(r[a])){if(!(a in n))throw new Error(`Unknown Chalk style: ${a}`);r[a].length>0?n=n[a].apply(n,r[a]):n=n[a]}return n}A5n.exports=(e,t)=>{let r=[],n=[],a=[];if(t.replace(HJo,(o,l,A,f,I,C)=>{if(l)a.push(g5n(l));else if(f){let b=a.join("");a=[],n.push(r.length===0?b:u5n(e,r)(b)),r.push({inverse:A,styles:UJo(f)})}else if(I){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");n.push(u5n(e,r)(a.join(""))),a=[],r.pop()}else a.push(C)}),n.push(a.join("")),r.length>0){let o=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return n.join("")}});var m5n=H((Heu,yMe)=>{"use strict";var tIr=jfr(),iT=i5n(),eIr=c5n().stdout,KJo=d5n(),f5n=process.platform==="win32"&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),I5n=["ansi","ansi","ansi256","ansi16m"],h5n=new Set(["gray"]),rBe=Object.create(null);function p5n(e,t){t=t||{};let r=eIr?eIr.level:0;e.level=t.level===void 0?r:t.level,e.enabled="enabled"in t?t.enabled:e.level>0}function _Me(e){if(!this||!(this instanceof _Me)||this.template){let t={};return p5n(t,e),t.template=function(){let r=[].slice.call(arguments);return qJo.apply(null,[t.template].concat(r))},Object.setPrototypeOf(t,_Me.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=_Me,t.template}p5n(this,e)}f5n&&(iT.blue.open="\x1B[94m");for(let e of Object.keys(iT))iT[e].closeRe=new RegExp(tIr(iT[e].close),"g"),rBe[e]={get(){let t=iT[e];return opt.call(this,this._styles?this._styles.concat(t):[t],this._empty,e)}};rBe.visible={get(){return opt.call(this,this._styles||[],!0,"visible")}};iT.color.closeRe=new RegExp(tIr(iT.color.close),"g");for(let e of Object.keys(iT.color.ansi))h5n.has(e)||(rBe[e]={get(){let t=this.level;return function(){let n={open:iT.color[I5n[t]][e].apply(null,arguments),close:iT.color.close,closeRe:iT.color.closeRe};return opt.call(this,this._styles?this._styles.concat(n):[n],this._empty,e)}}});iT.bgColor.closeRe=new RegExp(tIr(iT.bgColor.close),"g");for(let e of Object.keys(iT.bgColor.ansi)){if(h5n.has(e))continue;let t="bg"+e[0].toUpperCase()+e.slice(1);rBe[t]={get(){let r=this.level;return function(){let a={open:iT.bgColor[I5n[r]][e].apply(null,arguments),close:iT.bgColor.close,closeRe:iT.bgColor.closeRe};return opt.call(this,this._styles?this._styles.concat(a):[a],this._empty,e)}}}}var jJo=Object.defineProperties(()=>{},rBe);function opt(e,t,r){let n=function(){return zJo.apply(n,arguments)};n._styles=e,n._empty=t;let a=this;return Object.defineProperty(n,"level",{enumerable:!0,get(){return a.level},set(o){a.level=o}}),Object.defineProperty(n,"enabled",{enumerable:!0,get(){return a.enabled},set(o){a.enabled=o}}),n.hasGrey=this.hasGrey||r==="gray"||r==="grey",n.__proto__=jJo,n}function zJo(){let e=arguments,t=e.length,r=String(arguments[0]);if(t===0)return"";if(t>1)for(let a=1;a{"use strict";Object.defineProperty(bMe,"__esModule",{value:!0});bMe.default=oUo;bMe.shouldHighlight=v5n;var C5n=Rfr(),_5n=Gfr(),nIr=$Jo(Udt(),!0);function b5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(b5n=function(n){return n?r:t})(e)}function $Jo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=b5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var E5n=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,nIr.createColors)(!1):nIr.default,y5n=(e,t)=>r=>e(t(r)),eUo=new Set(["as","async","from","get","of","set"]);function tUo(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:y5n(y5n(e.white,e.bgRed),e.bold)}}var rUo=/\r\n|[\n\r\u2028\u2029]/,nUo=/^[()[\]{}]$/,S5n;{let e=/^[a-z][\w-]*$/i,t=function(r,n,a){if(r.type==="name"){if((0,_5n.isKeyword)(r.value)||(0,_5n.isStrictReservedWord)(r.value,!0)||eUo.has(r.value))return"keyword";if(e.test(r.value)&&(a[n-1]==="<"||a.slice(n-2,n)==="o(l)).join(` `):r+=a}return r}function v5n(e){return E5n.isColorSupported||e.forceColor}var rIr;function sUo(e){if(e){var t;return(t=rIr)!=null||(rIr=(0,nIr.createColors)(!0)),rIr}return E5n}function oUo(e,t={}){if(e!==""&&v5n(t)){let r=tUo(sUo(t.forceColor));return iUo(r,e)}else return e}{let e,t;bMe.getChalk=({forceColor:r})=>{var n;if((n=e)!=null||(e=m5n()),r){var a;return(a=t)!=null||(t=new e.constructor({enabled:!0,level:1})),t}return e}}});var oIr=H(apt=>{"use strict";Object.defineProperty(apt,"__esModule",{value:!0});apt.codeFrameColumns=k5n;apt.default=AUo;var w5n=B5n(),sIr=aUo(Udt(),!0);function D5n(e){if(typeof WeakMap!="function")return null;var t=new WeakMap,r=new WeakMap;return(D5n=function(n){return n?r:t})(e)}function aUo(e,t){if(!t&&e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var r=D5n(t);if(r&&r.has(e))return r.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(o!=="default"&&{}.hasOwnProperty.call(e,o)){var l=a?Object.getOwnPropertyDescriptor(e,o):null;l&&(l.get||l.set)?Object.defineProperty(n,o,l):n[o]=e[o]}return n.default=e,r&&r.set(e,n),n}var cUo=typeof process=="object"&&(process.env.FORCE_COLOR==="0"||process.env.FORCE_COLOR==="false")?(0,sIr.createColors)(!1):sIr.default,T5n=(e,t)=>r=>e(t(r)),iIr;function lUo(e){if(e){var t;return(t=iIr)!=null||(iIr=(0,sIr.createColors)(!0)),iIr}return cUo}var R5n=!1;function uUo(e){return{gutter:e.gray,marker:T5n(e.red,e.bold),message:T5n(e.red,e.bold)}}var N5n=/\r\n|[\n\r\u2028\u2029]/;function gUo(e,t,r){let n=Object.assign({column:0,line:-1},e.start),a=Object.assign({},n,e.end),{linesAbove:o=2,linesBelow:l=3}=r||{},A=n.line,f=n.column,I=a.line,C=a.column,b=Math.max(A-(o+1),0),E=Math.min(t.length,I+l);A===-1&&(b=0),I===-1&&(E=t.length);let N=I-A,B={};if(N)for(let F=0;F<=N;F++){let Q=F+A;if(!f)B[Q]=!0;else if(F===0){let X=t[Q-1].length;B[Q]=[f,X-f+1]}else if(F===N)B[Q]=[0,C];else{let X=t[Q-F].length;B[Q]=[0,X]}}else f===C?f?B[A]=[f,0]:B[A]=!0:B[A]=[f,C-f];return{start:b,end:E,markerLines:B}}function k5n(e,t,r={}){let n=(r.highlightCode||r.forceColor)&&(0,w5n.shouldHighlight)(r),a=lUo(r.forceColor),o=uUo(a),l=(F,Q)=>n?F(Q):Q,A=e.split(N5n),{start:f,end:I,markerLines:C}=gUo(t,A,r),b=t.start&&typeof t.start.column=="number",E=String(I).length,B=(n?(0,w5n.default)(e,r):e).split(N5n,I).slice(f,I).map((F,Q)=>{let X=f+1+Q,ne=` ${` ${X}`.slice(-E)} |`,ce=C[X],fe=!C[X+1];if(ce){let ue="";if(Array.isArray(ce)){let de=F.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` `,l(o.gutter,ne.replace(/\d/g," "))," ",de,l(o.marker,"^").repeat(be)].join(""),fe&&r.message&&(ue+=" "+l(o.message,r.message))}return[l(o.marker,">"),l(o.gutter,ne),F.length>0?` ${F}`:"",ue].join("")}else return` ${l(o.gutter,ne)}${F.length>0?` ${F}`:""}`}).join(` `);return r.message&&!b&&(B=`${" ".repeat(E+1)}${r.message} -${B}`),n?a.reset(B):B}function AUo(e,t,r,n={}){if(!R5n){R5n=!0;let o="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning)process.emitWarning(o,"DeprecationWarning");else{let l=new Error(o);l.name="DeprecationWarning",console.warn(new Error(o))}}return r=Math.max(r,0),k5n(e,{start:{column:r,line:t}},n)}});var Y5n=H(Lm=>{"use strict";var EMe=Symbol.for("react.element"),dUo=Symbol.for("react.portal"),pUo=Symbol.for("react.fragment"),fUo=Symbol.for("react.strict_mode"),IUo=Symbol.for("react.profiler"),hUo=Symbol.for("react.provider"),mUo=Symbol.for("react.context"),CUo=Symbol.for("react.forward_ref"),_Uo=Symbol.for("react.suspense"),yUo=Symbol.for("react.memo"),bUo=Symbol.for("react.lazy"),x5n=Symbol.iterator;function EUo(e){return e===null||typeof e!="object"?null:(e=x5n&&e[x5n]||e["@@iterator"],typeof e=="function"?e:null)}var Z5n={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L5n=Object.assign,V5n={};function nBe(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}nBe.prototype.isReactComponent={};nBe.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};nBe.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function P5n(){}P5n.prototype=nBe.prototype;function cIr(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}var lIr=cIr.prototype=new P5n;lIr.constructor=cIr;L5n(lIr,nBe.prototype);lIr.isPureReactComponent=!0;var G5n=Array.isArray,W5n=Object.prototype.hasOwnProperty,uIr={current:null},O5n={key:!0,ref:!0,__self:!0,__source:!0};function M5n(e,t,r){var n,a={},o=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(o=""+t.key),t)W5n.call(t,n)&&!O5n.hasOwnProperty(n)&&(a[n]=t[n]);var A=arguments.length-2;if(A===1)a.children=r;else if(1{"use strict";Q5n.exports=Y5n()});var AIr=H((iBe,SMe)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",o="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",A=500,f="__lodash_placeholder__",I=1,C=2,b=4,E=1,N=2,B=1,F=2,Q=4,X=8,ae=16,ne=32,ce=64,fe=128,ue=256,de=512,be=30,Se="...",De=800,k=16,et=1,ct=2,Me=3,je=1/0,St=9007199254740991,At=17976931348623157e292,Yt=NaN,Tr=4294967295,Nr=Tr-1,er=Tr>>>1,vt=[["ary",fe],["bind",B],["bindKey",F],["curry",X],["curryRight",ae],["flip",de],["partial",ne],["partialRight",ce],["rearg",ue]],xt="[object Arguments]",Zr="[object Array]",qt="[object AsyncFunction]",Xt="[object Boolean]",lr="[object Date]",cr="[object DOMException]",Ar="[object Error]",qr="[object Function]",_n="[object GeneratorFunction]",ke="[object Map]",jt="[object Number]",Fn="[object Null]",Nn="[object Object]",Hi="[object Promise]",po="[object Proxy]",Vr="[object RegExp]",xi="[object Set]",io="[object String]",ga="[object Symbol]",Ya="[object Undefined]",Gc="[object WeakMap]",cl="[object WeakSet]",Sc="[object ArrayBuffer]",Hr="[object DataView]",Wr="[object Float32Array]",Ft="[object Float64Array]",zr="[object Int8Array]",Rn="[object Int16Array]",Or="[object Int32Array]",Qi="[object Uint8Array]",ps="[object Uint8ClampedArray]",yo="[object Uint16Array]",bo="[object Uint32Array]",Qa=/\b__p \+= '';/g,gc=/\b(__p \+=) '' \+/g,Cg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Nc=/&(?:amp|lt|gt|quot|#39);/g,iA=/[&<>"']/g,ma=RegExp(Nc.source),vu=RegExp(iA.source),li=/<%-([\s\S]+?)%>/g,Ei=/<%([\s\S]+?)%>/g,Ps=/<%=([\s\S]+?)%>/g,Xa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ac=/^\w*$/,Yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wc=/[\\^$.*+?()[\]{}|]/g,Sg=RegExp(Wc.source),Ul=/^\s+/,Xu=/\s/,Da=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pu=/\{\n\/\* \[wrapped with (.+)\] \*/,_g=/,? & /,mI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qh=/[()=,{}\[\]\/\s]/,Ri=/\\(\\)?/g,Do=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Hu=/^[-+]0x[0-9a-f]+$/i,Ru=/^0b[01]+$/i,Vs=/^\[object .+?Constructor\]$/,Ju=/^0o[0-7]+$/i,Yn=/^(?:0|[1-9]\d*)$/,Ko=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Eg=/($^)/,OA=/['\n\r\u2028\u2029\\]/g,GA="\\ud800-\\udfff",$i="\\u0300-\\u036f",dl="\\ufe20-\\ufe2f",Uf="\\u20d0-\\u20ff",Kd=$i+dl+Uf,oA="\\u2700-\\u27bf",oo="a-z\\xdf-\\xf6\\xf8-\\xff",Ki="\\xac\\xb1\\xd7\\xf7",cc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xs="\\u2000-\\u206f",ws=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Gs="A-Z\\xc0-\\xd6\\xd8-\\xde",Ma="\\ufe0e\\ufe0f",Dc=Ki+cc+Xs+ws,As="['\u2019]",Tf="["+GA+"]",cm="["+Dc+"]",Fl="["+Kd+"]",rc="\\d+",sd="["+oA+"]",Om="["+oo+"]",il="[^"+GA+Dc+rc+oA+oo+Gs+"]",FA="\\ud83c[\\udffb-\\udfff]",ZA="(?:"+Fl+"|"+FA+")",El="[^"+GA+"]",yg="(?:\\ud83c[\\udde6-\\uddff]){2}",Mp="[\\ud800-\\udbff][\\udc00-\\udfff]",MA="["+Gs+"]",Er="\\u200d",Zt="(?:"+Om+"|"+il+")",yn="(?:"+MA+"|"+il+")",ls="(?:"+As+"(?:d|ll|m|re|s|t|ve))?",oa="(?:"+As+"(?:D|LL|M|RE|S|T|VE))?",Fs=ZA+"?",Wa="["+Ma+"]?",Ca="(?:"+Er+"(?:"+[El,yg,Mp].join("|")+")"+Wa+Fs+")*",ld="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Rp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",np=Wa+Fs+Ca,HA="(?:"+[sd,yg,Mp].join("|")+")"+np,df="(?:"+[El+Fl+"?",Fl,yg,Mp,Tf].join("|")+")",Zs=RegExp(As,"g"),so=RegExp(Fl,"g"),Ea=RegExp(FA+"(?="+FA+")|"+df+np,"g"),Ml=RegExp([MA+"?"+Om+"+"+ls+"(?="+[cm,MA,"$"].join("|")+")",yn+"+"+oa+"(?="+[cm,MA+Zt,"$"].join("|")+")",MA+"?"+Zt+"+"+ls,MA+"+"+oa,Rp,ld,rc,HA].join("|"),"g"),Dr=RegExp("["+Er+GA+Kd+Ma+"]"),Wn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,di=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],aa=-1,Bo={};Bo[Wr]=Bo[Ft]=Bo[zr]=Bo[Rn]=Bo[Or]=Bo[Qi]=Bo[ps]=Bo[yo]=Bo[bo]=!0,Bo[xt]=Bo[Zr]=Bo[Sc]=Bo[Xt]=Bo[Hr]=Bo[lr]=Bo[Ar]=Bo[qr]=Bo[ke]=Bo[jt]=Bo[Nn]=Bo[Vr]=Bo[xi]=Bo[io]=Bo[Gc]=!1;var us={};us[xt]=us[Zr]=us[Sc]=us[Hr]=us[Xt]=us[lr]=us[Wr]=us[Ft]=us[zr]=us[Rn]=us[Or]=us[ke]=us[jt]=us[Nn]=us[Vr]=us[xi]=us[io]=us[ga]=us[Qi]=us[ps]=us[yo]=us[bo]=!0,us[Ar]=us[qr]=us[Gc]=!1;var Ql={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},LA={"&":"&","<":"<",">":">",'"':""","'":"'"},pf={"&":"&","<":"<",">":">",""":'"',"'":"'"},ef={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ip=parseFloat,_d=parseInt,j1=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,YA=j1||pw||Function("return this")(),Ac=typeof iBe=="object"&&iBe&&!iBe.nodeType&&iBe,Nm=Ac&&typeof SMe=="object"&&SMe&&!SMe.nodeType&&SMe,HS=Nm&&Nm.exports===Ac,jd=HS&&j1.process,dh=function(){try{var cs=Nm&&Nm.require&&Nm.require("util").types;return cs||jd&&jd.binding&&jd.binding("util")}catch{}}(),Hp=dh&&dh.isArrayBuffer,uC=dh&&dh.isDate,nE=dh&&dh.isMap,J_=dh&&dh.isRegExp,q0=dh&&dh.isSet,XE=dh&&dh.isTypedArray;function TC(cs,na,ko){switch(ko.length){case 0:return cs.call(na);case 1:return cs.call(na,ko[0]);case 2:return cs.call(na,ko[0],ko[1]);case 3:return cs.call(na,ko[0],ko[1],ko[2])}return cs.apply(na,ko)}function t_(cs,na,ko,ki){for(var Kl=-1,fd=cs==null?0:cs.length;++Kl-1}function Kf(cs,na,ko){for(var ki=-1,Kl=cs==null?0:cs.length;++ki-1;);return ko}function z1(cs,na){for(var ko=cs.length;ko--&&Yr(na,cs[ko],0)>-1;);return ko}function T_(cs,na){for(var ko=cs.length,ki=0;ko--;)cs[ko]===na&&++ki;return ki}var RC=kc(Ql),Hm=kc(LA);function YS(cs){return"\\"+ef[cs]}function Fg(cs,na){return cs==null?e:cs[na]}function hb(cs){return Dr.test(cs)}function gC(cs){return Wn.test(cs)}function NC(cs){for(var na,ko=[];!(na=cs.next()).done;)ko.push(na.value);return ko}function Y2(cs){var na=-1,ko=Array(cs.size);return cs.forEach(function(ki,Kl){ko[++na]=[Kl,ki]}),ko}function U_(cs,na){return function(ko){return cs(na(ko))}}function DC(cs,na){for(var ko=-1,ki=cs.length,Kl=0,fd=[];++ko-1}function yb(ie,he){var ze=this.__data__,Ut=gB(ze,ie);return Ut<0?(++this.size,ze.push([ie,he])):ze[Ut][1]=he,this}N_.prototype.clear=e1,N_.prototype.delete=t1,N_.prototype.get=ry,N_.prototype.has=xT,N_.prototype.set=yb;function r_(ie){var he=-1,ze=ie==null?0:ie.length;for(this.clear();++he=he?ie:he)),ie}function bI(ie,he,ze,Ut,Qr,kn){var Fi,rs=he&I,qs=he&C,vc=he&b;if(ze&&(Fi=Qr?ze(ie,Ut,Qr,kn):ze(ie)),Fi!==e)return Fi;if(!WI(ie))return ie;var qa=Ed(ie);if(qa){if(Fi=IE(ie),!rs)return Cl(ie,Fi)}else{var fc=Nh(ie),vl=fc==qr||fc==_n;if(PT(ie))return cA(ie,rs);if(fc==Nn||fc==xt||vl&&!Qr){if(Fi=qs||vl?{}:zR(ie),!rs)return qs?j2(ie,b0(Fi,ie)):$f(ie,GT(Fi,ie))}else{if(!us[fc])return Qr?ie:{};Fi=e3(ie,fc,rs)}}kn||(kn=new lc);var Zu=kn.get(ie);if(Zu)return Zu;kn.set(ie,Fi),wJ(ie)?ie.forEach(function(Sd){Fi.add(bI(Sd,he,ze,Sd,ie,kn))}):Dre(ie)&&ie.forEach(function(Sd,tI){Fi.set(tI,bI(Sd,he,ze,tI,ie,kn))});var VA=vc?qs?Xr:kr:qs?Ew:S0,hf=qa?e:VA(ie);return cp(hf||ie,function(Sd,tI){hf&&(tI=Sd,Sd=ie[tI]),r1(Fi,tI,bI(Sd,he,ze,tI,ie,kn))}),Fi}function ag(ie){var he=S0(ie);return function(ze){return Eb(ze,ie,he)}}function Eb(ie,he,ze){var Ut=ze.length;if(ie==null)return!Ut;for(ie=Ld(ie);Ut--;){var Qr=ze[Ut],kn=he[Qr],Fi=ie[Qr];if(Fi===e&&!(Qr in ie)||!kn(Fi))return!1}return!0}function n1(ie,he,ze){if(typeof ie!="function")throw new Ym(a);return Dd(function(){ie.apply(e,ze)},he)}function U2(ie,he,ze,Ut){var Qr=-1,kn=lm,Fi=!0,rs=ie.length,qs=[],vc=he.length;if(!rs)return qs;ze&&(he=CI(he,lp(ze))),Ut?(kn=Kf,Fi=!1):he.length>=r&&(kn=Na,Fi=!1,he=new q_(he));e:for(;++QrQr?0:Qr+ze),Ut=Ut===e||Ut>Qr?Qr:If(Ut),Ut<0&&(Ut+=Qr),Ut=ze>Ut?0:WT(Ut);ze0&&ze(rs)?he>1?Xh(rs,he-1,ze,Ut,Qr):_I(Qr,rs):Ut||(Qr[Qr.length]=rs)}return Qr}var E0=Yu(),aA=Yu(!0);function fu(ie,he){return ie&&E0(ie,he,S0)}function Jp(ie,he){return ie&&aA(ie,he,S0)}function dC(ie,he){return pe(he,function(ze){return wx(ie[ze])})}function uE(ie,he){he=Ta(he,ie);for(var ze=0,Ut=he.length;ie!=null&&zehe}function gp(ie,he){return ie!=null&&Yp.call(ie,he)}function lF(ie,he){return ie!=null&&he in Ld(ie)}function uF(ie,he,ze){return ie>=BA(he,ze)&&ie<$I(he,ze)}function gE(ie,he,ze){for(var Ut=ze?Kf:lm,Qr=ie[0].length,kn=ie.length,Fi=kn,rs=ko(kn),qs=1/0,vc=[];Fi--;){var qa=ie[Fi];Fi&&he&&(qa=CI(qa,lp(he))),qs=BA(qa.length,qs),rs[Fi]=!ze&&(he||Qr>=120&&qa.length>=120)?new q_(Fi&&qa):e}qa=ie[0];var fc=-1,vl=rs[0];e:for(;++fc-1;)rs!==ie&&Ng.call(rs,qs,1),Ng.call(ie,qs,1);return ie}function r2(ie,he){for(var ze=ie?he.length:0,Ut=ze-1;ze--;){var Qr=he[ze];if(ze==Ut||Qr!==kn){var kn=Qr;zd(Qr)?Ng.call(ie,Qr,1):te(ie,Qr)}}return ie}function i1(ie,he){return ie+jE(zf()*(he-ie+1))}function Of(ie,he,ze,Ut){for(var Qr=-1,kn=$I(wy((he-ie)/(ze||1)),0),Fi=ko(kn);kn--;)Fi[Ut?kn:++Qr]=ie,ie+=ze;return Fi}function pE(ie,he){var ze="";if(!ie||he<1||he>St)return ze;do he%2&&(ze+=ie),he=jE(he/2),he&&(ie+=ie);while(he);return ze}function Vd(ie,he){return ji(ad(ie,he,vw),ie+"")}function j(ie){return uB(GJ(ie))}function Z(ie,he){var ze=GJ(ie);return Ap(ze,yd(he,0,ze.length))}function Id(ie,he,ze,Ut){if(!WI(ie))return ie;he=Ta(he,ie);for(var Qr=-1,kn=he.length,Fi=kn-1,rs=ie;rs!=null&&++QrQr?0:Qr+he),ze=ze>Qr?Qr:ze,ze<0&&(ze+=Qr),Qr=he>ze?0:ze-he>>>0,he>>>=0;for(var kn=ko(Qr);++Ut>>1,Fi=ie[kn];Fi!==null&&!eI(Fi)&&(ze?Fi<=he:Fi=r){var vc=he?null:Uh(ie);if(vc)return kC(vc);Fi=!1,Qr=Na,qs=new q_}else qs=he?[]:rs;e:for(;++Ut=Ut?ie:vb(ie,he,ze)}var Wg=TT||function(ie){return YA.clearTimeout(ie)};function cA(ie,he){if(he)return ie.slice();var ze=ie.length,Ut=Gn?Gn(ze):new ie.constructor(ze);return ie.copy(Ut),Ut}function th(ie){var he=new ie.constructor(ie.byteLength);return new Jr(he).set(new Jr(ie)),he}function xn(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.byteLength)}function rn(ie){var he=new ie.constructor(ie.source,Wt.exec(ie));return he.lastIndex=ie.lastIndex,he}function Ci(ie){return X2?Ld(X2.call(ie)):{}}function Po(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.length)}function ec(ie,he){if(ie!==he){var ze=ie!==e,Ut=ie===null,Qr=ie===ie,kn=eI(ie),Fi=he!==e,rs=he===null,qs=he===he,vc=eI(he);if(!rs&&!vc&&!kn&&ie>he||kn&&Fi&&qs&&!rs&&!vc||Ut&&Fi&&qs||!ze&&qs||!Qr)return 1;if(!Ut&&!kn&&!vc&&ie=rs)return qs;var vc=ze[Ut];return qs*(vc=="desc"?-1:1)}}return ie.index-he.index}function dc(ie,he,ze,Ut){for(var Qr=-1,kn=ie.length,Fi=ze.length,rs=-1,qs=he.length,vc=$I(kn-Fi,0),qa=ko(qs+vc),fc=!Ut;++rs1?ze[Qr-1]:e,Fi=Qr>2?ze[2]:e;for(kn=ie.length>3&&typeof kn=="function"?(Qr--,kn):e,Fi&&wA(ze[0],ze[1],Fi)&&(kn=Qr<3?e:kn,Qr=1),he=Ld(he);++Ut-1?Qr[kn?he[Fi]:Fi]:e}}function LT(ie){return Jt(function(he){var ze=he.length,Ut=ze,Qr=ey.prototype.thru;for(ie&&he.reverse();Ut--;){var kn=he[Ut];if(typeof kn!="function")throw new Ym(a);if(Qr&&!Fi&&Is(kn)=="wrapper")var Fi=new ey([],!0)}for(Ut=Fi?Ut:ze;++Ut1&&rI.reverse(),qa&&qsrs))return!1;var vc=kn.get(ie),qa=kn.get(he);if(vc&&qa)return vc==he&&qa==ie;var fc=-1,vl=!0,Zu=ze&N?new q_:e;for(kn.set(ie,he),kn.set(he,ie);++fc1?"& ":"")+he[Ut],he=he.join(ze>2?", ":" "),ie.replace(Da,`{ +${B}`),n?a.reset(B):B}function AUo(e,t,r,n={}){if(!R5n){R5n=!0;let o="Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";if(process.emitWarning)process.emitWarning(o,"DeprecationWarning");else{let l=new Error(o);l.name="DeprecationWarning",console.warn(new Error(o))}}return r=Math.max(r,0),k5n(e,{start:{column:r,line:t}},n)}});var Y5n=H(Lm=>{"use strict";var EMe=Symbol.for("react.element"),dUo=Symbol.for("react.portal"),pUo=Symbol.for("react.fragment"),fUo=Symbol.for("react.strict_mode"),IUo=Symbol.for("react.profiler"),hUo=Symbol.for("react.provider"),mUo=Symbol.for("react.context"),CUo=Symbol.for("react.forward_ref"),_Uo=Symbol.for("react.suspense"),yUo=Symbol.for("react.memo"),bUo=Symbol.for("react.lazy"),x5n=Symbol.iterator;function EUo(e){return e===null||typeof e!="object"?null:(e=x5n&&e[x5n]||e["@@iterator"],typeof e=="function"?e:null)}var Z5n={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L5n=Object.assign,V5n={};function nBe(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}nBe.prototype.isReactComponent={};nBe.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};nBe.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function P5n(){}P5n.prototype=nBe.prototype;function cIr(e,t,r){this.props=e,this.context=t,this.refs=V5n,this.updater=r||Z5n}var lIr=cIr.prototype=new P5n;lIr.constructor=cIr;L5n(lIr,nBe.prototype);lIr.isPureReactComponent=!0;var G5n=Array.isArray,W5n=Object.prototype.hasOwnProperty,uIr={current:null},O5n={key:!0,ref:!0,__self:!0,__source:!0};function M5n(e,t,r){var n,a={},o=null,l=null;if(t!=null)for(n in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(o=""+t.key),t)W5n.call(t,n)&&!O5n.hasOwnProperty(n)&&(a[n]=t[n]);var A=arguments.length-2;if(A===1)a.children=r;else if(1{"use strict";Q5n.exports=Y5n()});var AIr=H((iBe,SMe)=>{(function(){var e,t="4.17.21",r=200,n="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",a="Expected a function",o="Invalid `variable` option passed into `_.template`",l="__lodash_hash_undefined__",A=500,f="__lodash_placeholder__",I=1,C=2,b=4,E=1,N=2,B=1,F=2,Q=4,X=8,ae=16,ne=32,ce=64,fe=128,ue=256,de=512,be=30,Se="...",De=800,k=16,et=1,ct=2,Me=3,je=1/0,St=9007199254740991,At=17976931348623157e292,Yt=NaN,Tr=4294967295,Nr=Tr-1,er=Tr>>>1,vt=[["ary",fe],["bind",B],["bindKey",F],["curry",X],["curryRight",ae],["flip",de],["partial",ne],["partialRight",ce],["rearg",ue]],xt="[object Arguments]",Zr="[object Array]",qt="[object AsyncFunction]",Xt="[object Boolean]",lr="[object Date]",cr="[object DOMException]",Ar="[object Error]",qr="[object Function]",_n="[object GeneratorFunction]",ke="[object Map]",jt="[object Number]",Fn="[object Null]",Nn="[object Object]",Hi="[object Promise]",po="[object Proxy]",Vr="[object RegExp]",xi="[object Set]",io="[object String]",ga="[object Symbol]",Ya="[object Undefined]",Gc="[object WeakMap]",cl="[object WeakSet]",Sc="[object ArrayBuffer]",Hr="[object DataView]",Wr="[object Float32Array]",Ft="[object Float64Array]",zr="[object Int8Array]",Rn="[object Int16Array]",Or="[object Int32Array]",Qi="[object Uint8Array]",ps="[object Uint8ClampedArray]",yo="[object Uint16Array]",bo="[object Uint32Array]",Qa=/\b__p \+= '';/g,gc=/\b(__p \+=) '' \+/g,Cg=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Nc=/&(?:amp|lt|gt|quot|#39);/g,iA=/[&<>"']/g,ma=RegExp(Nc.source),vu=RegExp(iA.source),li=/<%-([\s\S]+?)%>/g,Ei=/<%([\s\S]+?)%>/g,Ps=/<%=([\s\S]+?)%>/g,Xa=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,ac=/^\w*$/,Yl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Wc=/[\\^$.*+?()[\]{}|]/g,Sg=RegExp(Wc.source),Ul=/^\s+/,Xu=/\s/,Da=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,pu=/\{\n\/\* \[wrapped with (.+)\] \*/,_g=/,? & /,mI=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Qh=/[()=,{}\[\]\/\s]/,Ri=/\\(\\)?/g,Do=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Wt=/\w*$/,Hu=/^[-+]0x[0-9a-f]+$/i,Ru=/^0b[01]+$/i,Vs=/^\[object .+?Constructor\]$/,Ju=/^0o[0-7]+$/i,Yn=/^(?:0|[1-9]\d*)$/,Ko=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Eg=/($^)/,OA=/['\n\r\u2028\u2029\\]/g,GA="\\ud800-\\udfff",$i="\\u0300-\\u036f",dl="\\ufe20-\\ufe2f",Uf="\\u20d0-\\u20ff",Kd=$i+dl+Uf,oA="\\u2700-\\u27bf",oo="a-z\\xdf-\\xf6\\xf8-\\xff",Ki="\\xac\\xb1\\xd7\\xf7",cc="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Xs="\\u2000-\\u206f",ws=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Gs="A-Z\\xc0-\\xd6\\xd8-\\xde",Ma="\\ufe0e\\ufe0f",Dc=Ki+cc+Xs+ws,As="['\u2019]",Tf="["+GA+"]",cm="["+Dc+"]",Fl="["+Kd+"]",rc="\\d+",sd="["+oA+"]",Om="["+oo+"]",il="[^"+GA+Dc+rc+oA+oo+Gs+"]",FA="\\ud83c[\\udffb-\\udfff]",ZA="(?:"+Fl+"|"+FA+")",El="[^"+GA+"]",yg="(?:\\ud83c[\\udde6-\\uddff]){2}",Mp="[\\ud800-\\udbff][\\udc00-\\udfff]",MA="["+Gs+"]",Er="\\u200d",Zt="(?:"+Om+"|"+il+")",yn="(?:"+MA+"|"+il+")",ls="(?:"+As+"(?:d|ll|m|re|s|t|ve))?",oa="(?:"+As+"(?:D|LL|M|RE|S|T|VE))?",Fs=ZA+"?",Wa="["+Ma+"]?",Ca="(?:"+Er+"(?:"+[El,yg,Mp].join("|")+")"+Wa+Fs+")*",ld="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Rp="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",np=Wa+Fs+Ca,HA="(?:"+[sd,yg,Mp].join("|")+")"+np,df="(?:"+[El+Fl+"?",Fl,yg,Mp,Tf].join("|")+")",Zs=RegExp(As,"g"),so=RegExp(Fl,"g"),Ea=RegExp(FA+"(?="+FA+")|"+df+np,"g"),Ml=RegExp([MA+"?"+Om+"+"+ls+"(?="+[cm,MA,"$"].join("|")+")",yn+"+"+oa+"(?="+[cm,MA+Zt,"$"].join("|")+")",MA+"?"+Zt+"+"+ls,MA+"+"+oa,Rp,ld,rc,HA].join("|"),"g"),Dr=RegExp("["+Er+GA+Kd+Ma+"]"),Wn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,di=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],aa=-1,Bo={};Bo[Wr]=Bo[Ft]=Bo[zr]=Bo[Rn]=Bo[Or]=Bo[Qi]=Bo[ps]=Bo[yo]=Bo[bo]=!0,Bo[xt]=Bo[Zr]=Bo[Sc]=Bo[Xt]=Bo[Hr]=Bo[lr]=Bo[Ar]=Bo[qr]=Bo[ke]=Bo[jt]=Bo[Nn]=Bo[Vr]=Bo[xi]=Bo[io]=Bo[Gc]=!1;var us={};us[xt]=us[Zr]=us[Sc]=us[Hr]=us[Xt]=us[lr]=us[Wr]=us[Ft]=us[zr]=us[Rn]=us[Or]=us[ke]=us[jt]=us[Nn]=us[Vr]=us[xi]=us[io]=us[ga]=us[Qi]=us[ps]=us[yo]=us[bo]=!0,us[Ar]=us[qr]=us[Gc]=!1;var Ql={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},LA={"&":"&","<":"<",">":">",'"':""","'":"'"},pf={"&":"&","<":"<",">":">",""":'"',"'":"'"},ef={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ip=parseFloat,_d=parseInt,j1=typeof global=="object"&&global&&global.Object===Object&&global,pw=typeof self=="object"&&self&&self.Object===Object&&self,YA=j1||pw||Function("return this")(),Ac=typeof iBe=="object"&&iBe&&!iBe.nodeType&&iBe,Nm=Ac&&typeof SMe=="object"&&SMe&&!SMe.nodeType&&SMe,HS=Nm&&Nm.exports===Ac,jd=HS&&j1.process,dh=function(){try{var cs=Nm&&Nm.require&&Nm.require("util").types;return cs||jd&&jd.binding&&jd.binding("util")}catch{}}(),Hp=dh&&dh.isArrayBuffer,uC=dh&&dh.isDate,nE=dh&&dh.isMap,J_=dh&&dh.isRegExp,q0=dh&&dh.isSet,XE=dh&&dh.isTypedArray;function TC(cs,na,ko){switch(ko.length){case 0:return cs.call(na);case 1:return cs.call(na,ko[0]);case 2:return cs.call(na,ko[0],ko[1]);case 3:return cs.call(na,ko[0],ko[1],ko[2])}return cs.apply(na,ko)}function t_(cs,na,ko,ki){for(var Kl=-1,fd=cs==null?0:cs.length;++Kl-1}function Kf(cs,na,ko){for(var ki=-1,Kl=cs==null?0:cs.length;++ki-1;);return ko}function z1(cs,na){for(var ko=cs.length;ko--&&Yr(na,cs[ko],0)>-1;);return ko}function T_(cs,na){for(var ko=cs.length,ki=0;ko--;)cs[ko]===na&&++ki;return ki}var RC=kc(Ql),Hm=kc(LA);function YS(cs){return"\\"+ef[cs]}function Fg(cs,na){return cs==null?e:cs[na]}function hb(cs){return Dr.test(cs)}function gC(cs){return Wn.test(cs)}function NC(cs){for(var na,ko=[];!(na=cs.next()).done;)ko.push(na.value);return ko}function Y2(cs){var na=-1,ko=Array(cs.size);return cs.forEach(function(ki,Kl){ko[++na]=[Kl,ki]}),ko}function U_(cs,na){return function(ko){return cs(na(ko))}}function DC(cs,na){for(var ko=-1,ki=cs.length,Kl=0,fd=[];++ko-1}function yb(ie,he){var ze=this.__data__,Ut=gB(ze,ie);return Ut<0?(++this.size,ze.push([ie,he])):ze[Ut][1]=he,this}N_.prototype.clear=e1,N_.prototype.delete=t1,N_.prototype.get=ry,N_.prototype.has=xT,N_.prototype.set=yb;function r_(ie){var he=-1,ze=ie==null?0:ie.length;for(this.clear();++he=he?ie:he)),ie}function bI(ie,he,ze,Ut,Qr,kn){var Fi,rs=he&I,qs=he&C,vc=he&b;if(ze&&(Fi=Qr?ze(ie,Ut,Qr,kn):ze(ie)),Fi!==e)return Fi;if(!WI(ie))return ie;var qa=Ed(ie);if(qa){if(Fi=IE(ie),!rs)return Cl(ie,Fi)}else{var fc=Nh(ie),vl=fc==qr||fc==_n;if(PT(ie))return cA(ie,rs);if(fc==Nn||fc==xt||vl&&!Qr){if(Fi=qs||vl?{}:zR(ie),!rs)return qs?j2(ie,b0(Fi,ie)):$f(ie,GT(Fi,ie))}else{if(!us[fc])return Qr?ie:{};Fi=e3(ie,fc,rs)}}kn||(kn=new lc);var Zu=kn.get(ie);if(Zu)return Zu;kn.set(ie,Fi),wJ(ie)?ie.forEach(function(Sd){Fi.add(bI(Sd,he,ze,Sd,ie,kn))}):Dre(ie)&&ie.forEach(function(Sd,tI){Fi.set(tI,bI(Sd,he,ze,tI,ie,kn))});var VA=vc?qs?Xr:kr:qs?Ew:S0,hf=qa?e:VA(ie);return cp(hf||ie,function(Sd,tI){hf&&(tI=Sd,Sd=ie[tI]),r1(Fi,tI,bI(Sd,he,ze,tI,ie,kn))}),Fi}function ag(ie){var he=S0(ie);return function(ze){return Eb(ze,ie,he)}}function Eb(ie,he,ze){var Ut=ze.length;if(ie==null)return!Ut;for(ie=Ld(ie);Ut--;){var Qr=ze[Ut],kn=he[Qr],Fi=ie[Qr];if(Fi===e&&!(Qr in ie)||!kn(Fi))return!1}return!0}function n1(ie,he,ze){if(typeof ie!="function")throw new Ym(a);return Dd(function(){ie.apply(e,ze)},he)}function U2(ie,he,ze,Ut){var Qr=-1,kn=lm,Fi=!0,rs=ie.length,qs=[],vc=he.length;if(!rs)return qs;ze&&(he=CI(he,lp(ze))),Ut?(kn=Kf,Fi=!1):he.length>=r&&(kn=Na,Fi=!1,he=new q_(he));e:for(;++QrQr?0:Qr+ze),Ut=Ut===e||Ut>Qr?Qr:If(Ut),Ut<0&&(Ut+=Qr),Ut=ze>Ut?0:WT(Ut);ze0&&ze(rs)?he>1?Xh(rs,he-1,ze,Ut,Qr):_I(Qr,rs):Ut||(Qr[Qr.length]=rs)}return Qr}var E0=Yu(),aA=Yu(!0);function fu(ie,he){return ie&&E0(ie,he,S0)}function Jp(ie,he){return ie&&aA(ie,he,S0)}function dC(ie,he){return pe(he,function(ze){return wx(ie[ze])})}function uE(ie,he){he=Ta(he,ie);for(var ze=0,Ut=he.length;ie!=null&&zehe}function gp(ie,he){return ie!=null&&Yp.call(ie,he)}function lF(ie,he){return ie!=null&&he in Ld(ie)}function uF(ie,he,ze){return ie>=BA(he,ze)&&ie<$I(he,ze)}function gE(ie,he,ze){for(var Ut=ze?Kf:lm,Qr=ie[0].length,kn=ie.length,Fi=kn,rs=ko(kn),qs=1/0,vc=[];Fi--;){var qa=ie[Fi];Fi&&he&&(qa=CI(qa,lp(he))),qs=BA(qa.length,qs),rs[Fi]=!ze&&(he||Qr>=120&&qa.length>=120)?new q_(Fi&&qa):e}qa=ie[0];var fc=-1,vl=rs[0];e:for(;++fc-1;)rs!==ie&&Ng.call(rs,qs,1),Ng.call(ie,qs,1);return ie}function r2(ie,he){for(var ze=ie?he.length:0,Ut=ze-1;ze--;){var Qr=he[ze];if(ze==Ut||Qr!==kn){var kn=Qr;zd(Qr)?Ng.call(ie,Qr,1):te(ie,Qr)}}return ie}function i1(ie,he){return ie+jE(zf()*(he-ie+1))}function Of(ie,he,ze,Ut){for(var Qr=-1,kn=$I(wy((he-ie)/(ze||1)),0),Fi=ko(kn);kn--;)Fi[Ut?kn:++Qr]=ie,ie+=ze;return Fi}function pE(ie,he){var ze="";if(!ie||he<1||he>St)return ze;do he%2&&(ze+=ie),he=jE(he/2),he&&(ie+=ie);while(he);return ze}function Vd(ie,he){return ji(ad(ie,he,vw),ie+"")}function j(ie){return uB(GJ(ie))}function Z(ie,he){var ze=GJ(ie);return Ap(ze,yd(he,0,ze.length))}function Id(ie,he,ze,Ut){if(!WI(ie))return ie;he=Ta(he,ie);for(var Qr=-1,kn=he.length,Fi=kn-1,rs=ie;rs!=null&&++QrQr?0:Qr+he),ze=ze>Qr?Qr:ze,ze<0&&(ze+=Qr),Qr=he>ze?0:ze-he>>>0,he>>>=0;for(var kn=ko(Qr);++Ut>>1,Fi=ie[kn];Fi!==null&&!eI(Fi)&&(ze?Fi<=he:Fi=r){var vc=he?null:Uh(ie);if(vc)return kC(vc);Fi=!1,Qr=Na,qs=new q_}else qs=he?[]:rs;e:for(;++Ut=Ut?ie:vb(ie,he,ze)}var Wg=TT||function(ie){return YA.clearTimeout(ie)};function cA(ie,he){if(he)return ie.slice();var ze=ie.length,Ut=Gn?Gn(ze):new ie.constructor(ze);return ie.copy(Ut),Ut}function th(ie){var he=new ie.constructor(ie.byteLength);return new Jr(he).set(new Jr(ie)),he}function xn(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.byteLength)}function rn(ie){var he=new ie.constructor(ie.source,Wt.exec(ie));return he.lastIndex=ie.lastIndex,he}function Ci(ie){return X2?Ld(X2.call(ie)):{}}function Po(ie,he){var ze=he?th(ie.buffer):ie.buffer;return new ie.constructor(ze,ie.byteOffset,ie.length)}function ec(ie,he){if(ie!==he){var ze=ie!==e,Ut=ie===null,Qr=ie===ie,kn=eI(ie),Fi=he!==e,rs=he===null,qs=he===he,vc=eI(he);if(!rs&&!vc&&!kn&&ie>he||kn&&Fi&&qs&&!rs&&!vc||Ut&&Fi&&qs||!ze&&qs||!Qr)return 1;if(!Ut&&!kn&&!vc&&ie=rs)return qs;var vc=ze[Ut];return qs*(vc=="desc"?-1:1)}}return ie.index-he.index}function dc(ie,he,ze,Ut){for(var Qr=-1,kn=ie.length,Fi=ze.length,rs=-1,qs=he.length,vc=$I(kn-Fi,0),qa=ko(qs+vc),fc=!Ut;++rs1?ze[Qr-1]:e,Fi=Qr>2?ze[2]:e;for(kn=ie.length>3&&typeof kn=="function"?(Qr--,kn):e,Fi&&wA(ze[0],ze[1],Fi)&&(kn=Qr<3?e:kn,Qr=1),he=Ld(he);++Ut-1?Qr[kn?he[Fi]:Fi]:e}}function LT(ie){return Jt(function(he){var ze=he.length,Ut=ze,Qr=ey.prototype.thru;for(ie&&he.reverse();Ut--;){var kn=he[Ut];if(typeof kn!="function")throw new Ym(a);if(Qr&&!Fi&&Is(kn)=="wrapper")var Fi=new ey([],!0)}for(Ut=Fi?Ut:ze;++Ut1&&rI.reverse(),qa&&qsrs))return!1;var vc=kn.get(ie),qa=kn.get(he);if(vc&&qa)return vc==he&&qa==ie;var fc=-1,vl=!0,Zu=ze&N?new q_:e;for(kn.set(ie,he),kn.set(he,ie);++fc1?"& ":"")+he[Ut],he=he.join(ze>2?", ":" "),ie.replace(Da,`{ /* [wrapped with `+he+`] */ `)}function EI(ie){return Ed(ie)||_Y(ie)||!!(Rf&&ie&&ie[Rf])}function zd(ie,he){var ze=typeof ie;return he=he??St,!!he&&(ze=="number"||ze!="symbol"&&Yn.test(ie))&&ie>-1&&ie%1==0&&ie0){if(++he>=De)return arguments[0]}else he=0;return ie.apply(e,arguments)}}function Ap(ie,he){var ze=-1,Ut=ie.length,Qr=Ut-1;for(he=he===e?Ut:he;++ze1?ie[he-1]:e;return ze=typeof ze=="function"?(ie.pop(),ze):e,i3(ie,ze)});function q6(ie){var he=pn(ie);return he.__chain__=!0,he}function BL(ie,he){return he(ie),ie}function tN(ie,he){return he(ie)}var pY=Jt(function(ie){var he=ie.length,ze=he?ie[0]:0,Ut=this.__wrapped__,Qr=function(kn){return e2(kn,ie)};return he>1||this.__actions__.length||!(Ut instanceof up)||!zd(ze)?this.thru(Qr):(Ut=Ut.slice(ze,+ze+(he?1:0)),Ut.__actions__.push({func:tN,args:[Qr],thisArg:e}),new ey(Ut,this.__chain__).thru(function(kn){return he&&!kn.length&&kn.push(e),kn}))});function wL(){return q6(this)}function bre(){return new ey(this.value(),this.__chain__)}function LD(){this.__values__===e&&(this.__values__=bB(this.value()));var ie=this.__index__>=this.__values__.length,he=ie?e:this.__values__[this.__index__++];return{done:ie,value:he}}function ige(){return this}function $6(ie){for(var he,ze=this;ze instanceof J2;){var Ut=J6(ze);Ut.__index__=0,Ut.__values__=e,he?Qr.__wrapped__=Ut:he=Ut;var Qr=Ut;ze=ze.__wrapped__}return Qr.__wrapped__=ie,he}function eS(){var ie=this.__wrapped__;if(ie instanceof up){var he=ie;return this.__actions__.length&&(he=new up(this)),he=he.reverse(),he.__actions__.push({func:tN,args:[oP],thisArg:e}),new ey(he,this.__chain__)}return this.thru(oP)}function rN(){return ft(this.__wrapped__,this.__actions__)}var mJ=_x(function(ie,he,ze){Yp.call(ie,ze)?++ie[ze]:ia(ie,ze,1)});function nN(ie,he,ze){var Ut=Ed(ie)?fb:Xp;return ze&&wA(ie,he,ze)&&(he=e),Ut(ie,Rs(he,3))}function sge(ie,he){var ze=Ed(ie)?pe:Ip;return ze(ie,Rs(he,3))}var Ere=iY(uJ),e7=iY(lY);function kp(ie,he){return Xh(fC(ie,he),1)}function TL(ie,he){return Xh(fC(ie,he),je)}function fY(ie,he,ze){return ze=ze===e?1:If(ze),Xh(fC(ie,he),ze)}function pC(ie,he){var ze=Ed(ie)?cp:e0;return ze(ie,Rs(he,3))}function cP(ie,he){var ze=Ed(ie)?Mm:n_;return ze(ie,Rs(he,3))}var VD=_x(function(ie,he,ze){Yp.call(ie,ze)?ie[ze].push(he):ia(ie,ze,[he])});function IY(ie,he,ze,Ut){ie=sN(ie)?ie:GJ(ie),ze=ze&&!Ut?If(ze):0;var Qr=ie.length;return ze<0&&(ze=$I(Qr+ze,0)),TJ(ie)?ze<=Qr&&ie.indexOf(he,ze)>-1:!!Qr&&Yr(ie,he,ze)>-1}var Sre=Vd(function(ie,he,ze){var Ut=-1,Qr=typeof he=="function",kn=sN(ie)?ko(ie.length):[];return e0(ie,function(Fi){kn[++Ut]=Qr?TC(he,Fi,ze):Np(Fi,he,ze)}),kn}),Ig=_x(function(ie,he,ze){ia(ie,ze,he)});function fC(ie,he){var ze=Ed(ie)?CI:K2;return ze(ie,Rs(he,3))}function VI(ie,he,ze,Ut){return ie==null?[]:(Ed(he)||(he=he==null?[]:[he]),ze=Ut?e:ze,Ed(ze)||(ze=ze==null?[]:[ze]),qf(ie,he,ze))}var RL=_x(function(ie,he,ze){ie[ze?0:1].push(he)},function(){return[[],[]]});function bu(ie,he,ze){var Ut=Ed(ie)?H2:Nl,Qr=arguments.length<3;return Ut(ie,Rs(he,4),ze,Qr,e0)}function s3(ie,he,ze){var Ut=Ed(ie)?iE:Nl,Qr=arguments.length<3;return Ut(ie,Rs(he,4),ze,Qr,n_)}function kd(ie,he){var ze=Ed(ie)?pe:Ip;return ze(ie,uP(Rs(he,3)))}function hY(ie){var he=Ed(ie)?uB:j;return he(ie)}function nye(ie,he,ze){(ze?wA(ie,he,ze):he===e)?he=1:he=If(he);var Ut=Ed(ie)?Ih:Z;return Ut(ie,he)}function lP(ie){var he=Ed(ie)?xC:Ny;return he(ie)}function CJ(ie){if(ie==null)return 0;if(sN(ie))return TJ(ie)?Td(ie):ie.length;var he=Nh(ie);return he==ke||he==xi?ie.size:ny(ie).length}function PI(ie,he,ze){var Ut=Ed(ie)?se:xD;return ze&&wA(ie,he,ze)&&(he=e),Ut(ie,Rs(he,3))}var xa=Vd(function(ie,he){if(ie==null)return[];var ze=he.length;return ze>1&&wA(ie,he[0],he[1])?he=[]:ze>2&&wA(he[0],he[1],he[2])&&(he=[he[0]]),qf(ie,Xh(he,1),[])}),yB=sB||function(){return YA.Date.now()};function t0(ie,he){if(typeof he!="function")throw new Ym(a);return ie=If(ie),function(){if(--ie<1)return he.apply(this,arguments)}}function vre(ie,he,ze){return he=ze?e:he,he=ie&&he==null?ie.length:he,Uu(ie,fe,e,e,e,e,he)}function NL(ie,he){var ze;if(typeof he!="function")throw new Ym(a);return ie=If(ie),function(){return--ie>0&&(ze=he.apply(this,arguments)),ie<=1&&(he=e),ze}}var dp=Vd(function(ie,he,ze){var Ut=B;if(ze.length){var Qr=DC(ze,Hs(dp));Ut|=ne}return Uu(ie,Ut,he,ze,Qr)}),Bx=Vd(function(ie,he,ze){var Ut=B|F;if(ze.length){var Qr=DC(ze,Hs(Bx));Ut|=ne}return Uu(he,Ut,ie,ze,Qr)});function mY(ie,he,ze){he=ze?e:he;var Ut=Uu(ie,X,e,e,e,e,e,he);return Ut.placeholder=mY.placeholder,Ut}function yw(ie,he,ze){he=ze?e:he;var Ut=Uu(ie,ae,e,e,e,e,e,he);return Ut.placeholder=yw.placeholder,Ut}function uc(ie,he,ze){var Ut,Qr,kn,Fi,rs,qs,vc=0,qa=!1,fc=!1,vl=!0;if(typeof ie!="function")throw new Ym(a);he=l1(he)||0,WI(ze)&&(qa=!!ze.leading,fc="maxWait"in ze,kn=fc?$I(l1(ze.maxWait)||0,he):kn,vl="trailing"in ze?!!ze.trailing:vl);function Zu(Up){var uv=Ut,ky=Qr;return Ut=Qr=e,vc=Up,Fi=ie.apply(ky,uv),Fi}function VA(Up){return vc=Up,rs=Dd(tI,he),qa?Zu(Up):Fi}function hf(Up){var uv=Up-qs,ky=Up-vc,nS=he-uv;return fc?BA(nS,kn-ky):nS}function Sd(Up){var uv=Up-qs,ky=Up-vc;return qs===e||uv>=he||uv<0||fc&&ky>=kn}function tI(){var Up=yB();if(Sd(Up))return rI(Up);rs=Dd(tI,hf(Up))}function rI(Up){return rs=e,vl&&Ut?Zu(Up):(Ut=Qr=e,Fi)}function OT(){rs!==e&&Wg(rs),vc=0,Ut=qs=Qr=rs=e}function rS(){return rs===e?Fi:rI(yB())}function Dy(){var Up=yB(),uv=Sd(Up);if(Ut=arguments,Qr=this,qs=Up,uv){if(rs===e)return VA(qs);if(fc)return Wg(rs),rs=Dd(tI,he),Zu(qs)}return rs===e&&(rs=Dd(tI,he)),Fi}return Dy.cancel=OT,Dy.flush=rS,Dy}var oge=Vd(function(ie,he){return n1(ie,1,he)}),Nu=Vd(function(ie,he,ze){return n1(ie,l1(he)||0,ze)});function CY(ie){return Uu(ie,de)}function o3(ie,he){if(typeof ie!="function"||he!=null&&typeof he!="function")throw new Ym(a);var ze=function(){var Ut=arguments,Qr=he?he.apply(this,Ut):Ut[0],kn=ze.cache;if(kn.has(Qr))return kn.get(Qr);var Fi=ie.apply(this,Ut);return ze.cache=kn.set(Qr,Fi)||kn,Fi};return ze.cache=new(o3.Cache||r_),ze}o3.Cache=r_;function uP(ie){if(typeof ie!="function")throw new Ym(a);return function(){var he=arguments;switch(he.length){case 0:return!ie.call(this);case 1:return!ie.call(this,he[0]);case 2:return!ie.call(this,he[0],he[1]);case 3:return!ie.call(this,he[0],he[1],he[2])}return!ie.apply(this,he)}}function _J(ie){return NL(2,ie)}var yJ=Sl(function(ie,he){he=he.length==1&&Ed(he[0])?CI(he[0],lp(Rs())):CI(Xh(he,1),lp(Rs()));var ze=he.length;return Vd(function(Ut){for(var Qr=-1,kn=BA(Ut.length,ze);++Qr=he}),_Y=Dm(function(){return arguments}())?Dm:function(ie){return CE(ie)&&Yp.call(ie,"callee")&&!vg.call(ie,"callee")},Ed=ko.isArray,VT=Hp?lp(Hp):Dp;function sN(ie){return ie!=null&&mE(ie.length)&&!wx(ie)}function Db(ie){return CE(ie)&&sN(ie)}function t7(ie){return ie===!0||ie===!1||CE(ie)&&Wf(ie)==Xt}var PT=NT||PJ,DL=uC?lp(uC):t2;function r7(ie){return CE(ie)&&ie.nodeType===1&&!yY(ie)}function n7(ie){if(ie==null)return!0;if(sN(ie)&&(Ed(ie)||typeof ie=="string"||typeof ie.splice=="function"||PT(ie)||c3(ie)||_Y(ie)))return!ie.length;var he=Nh(ie);if(he==ke||he==xi)return!ie.size;if(ye(ie))return!ny(ie).length;for(var ze in ie)if(Yp.call(ie,ze))return!1;return!0}function hE(ie,he){return Ro(ie,he)}function cge(ie,he,ze){ze=typeof ze=="function"?ze:e;var Ut=ze?ze(ie,he):e;return Ut===e?Ro(ie,he,e,ze):!!Ut}function Nre(ie){if(!CE(ie))return!1;var he=Wf(ie);return he==Ar||he==cr||typeof ie.message=="string"&&typeof ie.name=="string"&&!yY(ie)}function oye(ie){return typeof ie=="number"&&tf(ie)}function wx(ie){if(!WI(ie))return!1;var he=Wf(ie);return he==qr||he==_n||he==qt||he==po}function a3(ie){return typeof ie=="number"&&ie==If(ie)}function mE(ie){return typeof ie=="number"&&ie>-1&&ie%1==0&&ie<=St}function WI(ie){var he=typeof ie;return ie!=null&&(he=="object"||he=="function")}function CE(ie){return ie!=null&&typeof ie=="object"}var Dre=nE?lp(nE):AB;function lge(ie,he){return ie===he||Xc(ie,he,ho(he))}function jh(ie,he,ze){return ze=typeof ze=="function"?ze:e,Xc(ie,he,ho(he),ze)}function uge(ie){return kre(ie)&&ie!=+ie}function vJ(ie){if(z(ie))throw new Kl(n);return iu(ie)}function Lc(ie){return ie===null}function gge(ie){return ie==null}function kre(ie){return typeof ie=="number"||CE(ie)&&Wf(ie)==jt}function yY(ie){if(!CE(ie)||Wf(ie)!=Nn)return!1;var he=Ts(ie);if(he===null)return!0;var ze=Yp.call(he,"constructor")&&he.constructor;return typeof ze=="function"&&ze instanceof ze&&KE.call(ze)==fw}var kL=J_?lp(J_):dE;function BJ(ie){return a3(ie)&&ie>=-St&&ie<=St}var wJ=q0?lp(q0):yL;function TJ(ie){return typeof ie=="string"||!Ed(ie)&&CE(ie)&&Wf(ie)==io}function eI(ie){return typeof ie=="symbol"||CE(ie)&&Wf(ie)==ga}var c3=XE?lp(XE):KR;function RJ(ie){return ie===e}function l3(ie){return CE(ie)&&Nh(ie)==Gc}function i7(ie){return CE(ie)&&Wf(ie)==cl}var u3=mB(Am),cv=mB(function(ie,he){return ie<=he});function bB(ie){if(!ie)return[];if(sN(ie))return TJ(ie)?Mc(ie):Cl(ie);if(uI&&ie[uI])return NC(ie[uI]());var he=Nh(ie),ze=he==ke?Y2:he==xi?kC:GJ;return ze(ie)}function Xm(ie){if(!ie)return ie===0?ie:0;if(ie=l1(ie),ie===je||ie===-je){var he=ie<0?-1:1;return he*At}return ie===ie?ie:0}function If(ie){var he=Xm(ie),ze=he%1;return he===he?ze?he-ze:he:0}function WT(ie){return ie?yd(If(ie),0,Tr):0}function l1(ie){if(typeof ie=="number")return ie;if(eI(ie))return Yt;if(WI(ie)){var he=typeof ie.valueOf=="function"?ie.valueOf():ie;ie=WI(he)?he+"":he}if(typeof ie!="string")return ie===0?ie:+ie;ie=lI(ie);var ze=Ru.test(ie);return ze||Ju.test(ie)?_d(ie.slice(2),ze?2:8):Hu.test(ie)?Yt:+ie}function bY(ie){return wl(ie,Ew(ie))}function s7(ie){return ie?yd(If(ie),-St,St):ie===0?ie:0}function IC(ie){return ie==null?"":x(ie)}var xre=z2(function(ie,he){if(ye(he)||sN(he)){wl(he,S0(he),ie);return}for(var ze in he)Yp.call(he,ze)&&r1(ie,ze,he[ze])}),mA=z2(function(ie,he){wl(he,Ew(he),ie)}),Tx=z2(function(ie,he,ze,Ut){wl(he,Ew(he),ie,Ut)}),Gre=z2(function(ie,he,ze,Ut){wl(he,S0(he),ie,Ut)}),EB=Jt(e2);function aye(ie,he){var ze=q1(ie);return he==null?ze:GT(ze,he)}var Fre=Vd(function(ie,he){ie=Ld(ie);var ze=-1,Ut=he.length,Qr=Ut>2?he[2]:e;for(Qr&&wA(he[0],he[1],Qr)&&(Ut=1);++ze1),kn}),wl(ie,Xr(ie),ze),Ut&&(ze=bI(ze,I|C|b,oY));for(var Qr=he.length;Qr--;)te(ze,he[Qr]);return ze});function Vre(ie,he){return xL(ie,uP(Rs(he)))}var Ige=Jt(function(ie,he){return ie==null?{}:Jh(ie,he)});function xL(ie,he){if(ie==null)return{};var ze=CI(Xr(ie),function(Ut){return[Ut]});return he=Rs(he),$S(ie,ze,function(Ut,Qr){return he(Ut,Qr[0])})}function c7(ie,he,ze){he=Ta(he,ie);var Ut=-1,Qr=he.length;for(Qr||(Qr=1,ie=e);++Uthe){var Ut=ie;ie=he,he=Ut}if(ze||ie%1||he%1){var Qr=zf();return BA(ie+Qr*(he-ie+ip("1e-"+((Qr+"").length-1))),he)}return i1(ie,he)}var OD=mw(function(ie,he,ze){return he=he.toLowerCase(),ie+(ze?Cge(he):he)});function Cge(ie){return xp(IC(ie).toLowerCase())}function vY(ie){return ie=IC(ie),ie&&ie.replace(Ko,RC).replace(so,"")}function u7(ie,he,ze){ie=IC(ie),he=x(he);var Ut=ie.length;ze=ze===e?Ut:yd(If(ze),0,Ut);var Qr=ze;return ze-=he.length,ze>=0&&ie.slice(ze,Qr)==he}function sf(ie){return ie=IC(ie),ie&&vu.test(ie)?ie.replace(iA,Hm):ie}function u1(ie){return ie=IC(ie),ie&&Sg.test(ie)?ie.replace(Wc,"\\$&"):ie}var _ge=mw(function(ie,he,ze){return ie+(ze?"-":"")+he.toLowerCase()}),BY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toLowerCase()}),lye=hB("toLowerCase");function uye(ie,he,ze){ie=IC(ie),he=If(he);var Ut=he?Td(ie):0;if(!he||Ut>=he)return ie;var Qr=(he-Ut)/2;return FD(jE(Qr),ze)+ie+FD(wy(Qr),ze)}function gye(ie,he,ze){ie=IC(ie),he=If(he);var Ut=he?Td(ie):0;return he&&Ut>>0,ze?(ie=IC(ie),ie&&(typeof he=="string"||he!=null&&!kL(he))&&(he=x(he),!he&&hb(ie))?Ho(Mc(ie),0,ze):ie.split(he,ze)):[]}var bge=mw(function(ie,he,ze){return ie+(ze?" ":"")+xp(he)});function MD(ie,he,ze){return ie=IC(ie),ze=ze==null?0:yd(If(ze),0,ie.length),he=x(he),ie.slice(ze,ze+he.length)==he}function Mre(ie,he,ze){var Ut=pn.templateSettings;ze&&wA(ie,he,ze)&&(he=e),ie=IC(ie),he=Tx({},he,Ut,iy);var Qr=Tx({},he.imports,Ut.imports,iy),kn=S0(Qr),Fi=Ib(Qr,kn),rs,qs,vc=0,qa=he.interpolate||Eg,fc="__p += '",vl=AC((he.escape||Eg).source+"|"+qa.source+"|"+(qa===Ps?Do:Eg).source+"|"+(he.evaluate||Eg).source+"|$","g"),Zu="//# sourceURL="+(Yp.call(he,"sourceURL")?(he.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++aa+"]")+` `;ie.replace(vl,function(Sd,tI,rI,OT,rS,Dy){return rI||(rI=OT),fc+=ie.slice(vc,Dy).replace(OA,YS),tI&&(rs=!0,fc+=`' + @@ -314,9 +314,9 @@ __p += '`),rI&&(fc+=`' + function print() { __p += __j.call(arguments, '') } `:`; `)+fc+`return __p -}`;var hf=fP(function(){return fd(kn,Zu+"return "+fc).apply(e,Fi)});if(hf.source=fc,Nre(hf))throw hf;return hf}function Ege(ie){return IC(ie).toLowerCase()}function mF(ie){return IC(ie).toUpperCase()}function zFe(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return lI(ie);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=Mc(he),kn=wd(Ut,Qr),Fi=z1(Ut,Qr)+1;return Ho(Ut,kn,Fi).join("")}function wY(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.slice(0,Pf(ie)+1);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=z1(Ut,Mc(he))+1;return Ho(Ut,0,Qr).join("")}function HD(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.replace(Ul,"");if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=wd(Ut,Mc(he));return Ho(Ut,Qr).join("")}function CF(ie,he){var ze=be,Ut=Se;if(WI(he)){var Qr="separator"in he?he.separator:Qr;ze="length"in he?If(he.length):ze,Ut="omission"in he?x(he.omission):Ut}ie=IC(ie);var kn=ie.length;if(hb(ie)){var Fi=Mc(ie);kn=Fi.length}if(ze>=kn)return ie;var rs=ze-Td(Ut);if(rs<1)return Ut;var qs=Fi?Ho(Fi,0,rs).join(""):ie.slice(0,rs);if(Qr===e)return qs+Ut;if(Fi&&(rs+=qs.length-rs),kL(Qr)){if(ie.slice(rs).search(Qr)){var vc,qa=qs;for(Qr.global||(Qr=AC(Qr.source,IC(Wt.exec(Qr))+"g")),Qr.lastIndex=0;vc=Qr.exec(qa);)var fc=vc.index;qs=qs.slice(0,fc===e?rs:fc)}}else if(ie.indexOf(x(Qr),rs)!=rs){var vl=qs.lastIndexOf(Qr);vl>-1&&(qs=qs.slice(0,vl))}return qs+Ut}function lv(ie){return ie=IC(ie),ie&&ma.test(ie)?ie.replace(Nc,sE):ie}var TY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toUpperCase()}),xp=hB("toUpperCase");function Aye(ie,he,ze){return ie=IC(ie),he=ze?e:he,he===e?gC(ie)?XS(ie):we(ie):ie.match(he)||[]}var fP=Vd(function(ie,he){try{return TC(ie,e,he)}catch(ze){return Nre(ze)?ze:new Kl(ze)}}),tA=Jt(function(ie,he){return cp(he,function(ze){ze=Vo(ze),ia(ie,ze,dp(ie[ze],ie))}),ie});function g1(ie){var he=ie==null?0:ie.length,ze=Rs();return ie=he?CI(ie,function(Ut){if(typeof Ut[1]!="function")throw new Ym(a);return[ze(Ut[0]),Ut[1]]}):[],Vd(function(Ut){for(var Qr=-1;++QrSt)return[];var ze=Tr,Ut=BA(ie,Tr);he=Rs(he),ie-=Tr;for(var Qr=$g(Ut,he);++ze0||he<0)?new up(ze):(ie<0?ze=ze.takeRight(-ie):ie&&(ze=ze.drop(ie)),he!==e&&(he=If(he),ze=he<0?ze.dropRight(-he):ze.take(he-ie)),ze)},up.prototype.takeRightWhile=function(ie){return this.reverse().takeWhile(ie).reverse()},up.prototype.toArray=function(){return this.take(Tr)},fu(up.prototype,function(ie,he){var ze=/^(?:filter|find|map|reject)|While$/.test(he),Ut=/^(?:head|last)$/.test(he),Qr=pn[Ut?"take"+(he=="last"?"Right":""):he],kn=Ut||/^find/.test(he);Qr&&(pn.prototype[he]=function(){var Fi=this.__wrapped__,rs=Ut?[1]:arguments,qs=Fi instanceof up,vc=rs[0],qa=qs||Ed(Fi),fc=function(tI){var rI=Qr.apply(pn,_I([tI],rs));return Ut&&vl?rI[0]:rI};qa&&ze&&typeof vc=="function"&&vc.length!=1&&(qs=qa=!1);var vl=this.__chain__,Zu=!!this.__actions__.length,VA=kn&&!vl,hf=qs&&!Zu;if(!kn&&qa){Fi=hf?Fi:new up(this);var Sd=ie.apply(Fi,rs);return Sd.__actions__.push({func:tN,args:[fc],thisArg:e}),new ey(Sd,vl)}return VA&&hf?ie.apply(this,rs):(Sd=this.thru(fc),VA?Ut?Sd.value()[0]:Sd.value():Sd)})}),cp(["pop","push","shift","sort","splice","unshift"],function(ie){var he=vy[ie],ze=/^(?:push|sort|unshift)$/.test(ie)?"tap":"thru",Ut=/^(?:pop|shift)$/.test(ie);pn.prototype[ie]=function(){var Qr=arguments;if(Ut&&!this.__chain__){var kn=this.value();return he.apply(Ed(kn)?kn:[],Qr)}return this[ze](function(Fi){return he.apply(Ed(Fi)?Fi:[],Qr)})}}),fu(up.prototype,function(ie,he){var ze=pn[he];if(ze){var Ut=ze.name+"";Yp.call(oB,Ut)||(oB[Ut]=[]),oB[Ut].push({name:he,func:ze})}}),oB[GD(e,F).name]=[{name:"wrapper",func:e}],up.prototype.clone=Iw,up.prototype.reverse=cB,up.prototype.value=RD,pn.prototype.at=pY,pn.prototype.chain=wL,pn.prototype.commit=bre,pn.prototype.next=LD,pn.prototype.plant=$6,pn.prototype.reverse=eS,pn.prototype.toJSON=pn.prototype.valueOf=pn.prototype.value=rN,pn.prototype.first=pn.prototype.head,uI&&(pn.prototype[uI]=ige),pn},gm=um();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(YA._=gm,define(function(){return gm})):Nm?((Nm.exports=gm)._=gm,Ac._=gm):YA._=gm}).call(iBe)});var BMe=H((Jeu,dIr)=>{"use strict";var bC=dIr.exports;dIr.exports.default=bC;var my="\x1B[",vMe="\x1B]",sBe="\x07",gpt=";",X5n=process.env.TERM_PROGRAM==="Apple_Terminal";bC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?my+(e+1)+"G":my+(t+1)+";"+(e+1)+"H"};bC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=my+-e+"D":e>0&&(r+=my+e+"C"),t<0?r+=my+-t+"A":t>0&&(r+=my+t+"B"),r};bC.cursorUp=(e=1)=>my+e+"A";bC.cursorDown=(e=1)=>my+e+"B";bC.cursorForward=(e=1)=>my+e+"C";bC.cursorBackward=(e=1)=>my+e+"D";bC.cursorLeft=my+"G";bC.cursorSavePosition=X5n?"\x1B7":my+"s";bC.cursorRestorePosition=X5n?"\x1B8":my+"u";bC.cursorGetPosition=my+"6n";bC.cursorNextLine=my+"E";bC.cursorPrevLine=my+"F";bC.cursorHide=my+"?25l";bC.cursorShow=my+"?25h";bC.eraseLines=e=>{let t="";for(let r=0;r[vMe,"8",gpt,gpt,t,sBe,e,vMe,"8",gpt,gpt,sBe].join("");bC.image=(e,t={})=>{let r=`${vMe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+sBe};bC.iTerm={setCwd:(e=process.cwd())=>`${vMe}50;CurrentDir=${e}${sBe}`,annotation:(e,t={})=>{let r=`${vMe}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+sBe}}});var U5n=H((Ueu,pIr)=>{"use strict";var J5n=(e,t)=>{for(let r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};pIr.exports=J5n;pIr.exports.default=J5n});var j5n=H((Keu,dpt)=>{"use strict";var TUo=U5n(),Apt=new WeakMap,K5n=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(Apt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return TUo(o,e),Apt.set(o,n),o};dpt.exports=K5n;dpt.exports.default=K5n;dpt.exports.callCount=e=>{if(!Apt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Apt.get(e)}});var z5n=H((jeu,ppt)=>{ppt.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&ppt.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&ppt.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var mpt=H((zeu,cBe)=>{var S2=global.process,vIe=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};vIe(S2)?(q5n=wt("assert"),oBe=z5n(),$5n=/^win/i.test(S2.platform),wMe=wt("events"),typeof wMe!="function"&&(wMe=wMe.EventEmitter),S2.__signal_exit_emitter__?zN=S2.__signal_exit_emitter__:(zN=S2.__signal_exit_emitter__=new wMe,zN.count=0,zN.emitted={}),zN.infinite||(zN.setMaxListeners(1/0),zN.infinite=!0),cBe.exports=function(e,t){if(!vIe(global.process))return function(){};q5n.equal(typeof e,"function","a callback must be provided for exit handler"),aBe===!1&&fIr();var r="exit";t&&t.alwaysLast&&(r="afterexit");var n=function(){zN.removeListener(r,e),zN.listeners("exit").length===0&&zN.listeners("afterexit").length===0&&fpt()};return zN.on(r,e),n},fpt=function(){!aBe||!vIe(global.process)||(aBe=!1,oBe.forEach(function(t){try{S2.removeListener(t,Ipt[t])}catch{}}),S2.emit=hpt,S2.reallyExit=IIr,zN.count-=1)},cBe.exports.unload=fpt,BIe=function(t,r,n){zN.emitted[t]||(zN.emitted[t]=!0,zN.emit(t,r,n))},Ipt={},oBe.forEach(function(e){Ipt[e]=function(){if(vIe(global.process)){var r=S2.listeners(e);r.length===zN.count&&(fpt(),BIe("exit",null,e),BIe("afterexit",null,e),$5n&&e==="SIGHUP"&&(e="SIGINT"),S2.kill(S2.pid,e))}}}),cBe.exports.signals=function(){return oBe},aBe=!1,fIr=function(){aBe||!vIe(global.process)||(aBe=!0,zN.count+=1,oBe=oBe.filter(function(t){try{return S2.on(t,Ipt[t]),!0}catch{return!1}}),S2.emit=tMn,S2.reallyExit=eMn)},cBe.exports.load=fIr,IIr=S2.reallyExit,eMn=function(t){vIe(global.process)&&(S2.exitCode=t||0,BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),IIr.call(S2,S2.exitCode))},hpt=S2.emit,tMn=function(t,r){if(t==="exit"&&vIe(global.process)){r!==void 0&&(S2.exitCode=r);var n=hpt.apply(this,arguments);return BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),n}else return hpt.apply(this,arguments)}):cBe.exports=function(){return function(){}};var q5n,oBe,$5n,wMe,zN,fpt,BIe,Ipt,aBe,fIr,IIr,eMn,hpt,tMn});var nMn=H((qeu,rMn)=>{"use strict";var RUo=j5n(),NUo=mpt();rMn.exports=RUo(()=>{NUo(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var uBe=H(lBe=>{"use strict";var DUo=nMn(),Cpt=!1;lBe.show=(e=process.stderr)=>{e.isTTY&&(Cpt=!1,e.write("\x1B[?25h"))};lBe.hide=(e=process.stderr)=>{e.isTTY&&(DUo(),Cpt=!0,e.write("\x1B[?25l"))};lBe.toggle=(e,t)=>{e!==void 0&&(Cpt=e),Cpt?lBe.show(t):lBe.hide(t)}});var aMn=H(TMe=>{"use strict";var oMn=TMe&&TMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TMe,"__esModule",{value:!0});var iMn=oMn(BMe()),sMn=oMn(uBe()),kUo=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(sMn.default.hide(),a=!0);let A=l+` +}`;var hf=fP(function(){return fd(kn,Zu+"return "+fc).apply(e,Fi)});if(hf.source=fc,Nre(hf))throw hf;return hf}function Ege(ie){return IC(ie).toLowerCase()}function mF(ie){return IC(ie).toUpperCase()}function zFe(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return lI(ie);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=Mc(he),kn=wd(Ut,Qr),Fi=z1(Ut,Qr)+1;return Ho(Ut,kn,Fi).join("")}function wY(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.slice(0,Pf(ie)+1);if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=z1(Ut,Mc(he))+1;return Ho(Ut,0,Qr).join("")}function HD(ie,he,ze){if(ie=IC(ie),ie&&(ze||he===e))return ie.replace(Ul,"");if(!ie||!(he=x(he)))return ie;var Ut=Mc(ie),Qr=wd(Ut,Mc(he));return Ho(Ut,Qr).join("")}function CF(ie,he){var ze=be,Ut=Se;if(WI(he)){var Qr="separator"in he?he.separator:Qr;ze="length"in he?If(he.length):ze,Ut="omission"in he?x(he.omission):Ut}ie=IC(ie);var kn=ie.length;if(hb(ie)){var Fi=Mc(ie);kn=Fi.length}if(ze>=kn)return ie;var rs=ze-Td(Ut);if(rs<1)return Ut;var qs=Fi?Ho(Fi,0,rs).join(""):ie.slice(0,rs);if(Qr===e)return qs+Ut;if(Fi&&(rs+=qs.length-rs),kL(Qr)){if(ie.slice(rs).search(Qr)){var vc,qa=qs;for(Qr.global||(Qr=AC(Qr.source,IC(Wt.exec(Qr))+"g")),Qr.lastIndex=0;vc=Qr.exec(qa);)var fc=vc.index;qs=qs.slice(0,fc===e?rs:fc)}}else if(ie.indexOf(x(Qr),rs)!=rs){var vl=qs.lastIndexOf(Qr);vl>-1&&(qs=qs.slice(0,vl))}return qs+Ut}function lv(ie){return ie=IC(ie),ie&&ma.test(ie)?ie.replace(Nc,sE):ie}var TY=mw(function(ie,he,ze){return ie+(ze?" ":"")+he.toUpperCase()}),xp=hB("toUpperCase");function Aye(ie,he,ze){return ie=IC(ie),he=ze?e:he,he===e?gC(ie)?XS(ie):we(ie):ie.match(he)||[]}var fP=Vd(function(ie,he){try{return TC(ie,e,he)}catch(ze){return Nre(ze)?ze:new Kl(ze)}}),tA=Jt(function(ie,he){return cp(he,function(ze){ze=Vo(ze),ia(ie,ze,dp(ie[ze],ie))}),ie});function g1(ie){var he=ie==null?0:ie.length,ze=Rs();return ie=he?CI(ie,function(Ut){if(typeof Ut[1]!="function")throw new Ym(a);return[ze(Ut[0]),Ut[1]]}):[],Vd(function(Ut){for(var Qr=-1;++QrSt)return[];var ze=Tr,Ut=BA(ie,Tr);he=Rs(he),ie-=Tr;for(var Qr=$g(Ut,he);++ze0||he<0)?new up(ze):(ie<0?ze=ze.takeRight(-ie):ie&&(ze=ze.drop(ie)),he!==e&&(he=If(he),ze=he<0?ze.dropRight(-he):ze.take(he-ie)),ze)},up.prototype.takeRightWhile=function(ie){return this.reverse().takeWhile(ie).reverse()},up.prototype.toArray=function(){return this.take(Tr)},fu(up.prototype,function(ie,he){var ze=/^(?:filter|find|map|reject)|While$/.test(he),Ut=/^(?:head|last)$/.test(he),Qr=pn[Ut?"take"+(he=="last"?"Right":""):he],kn=Ut||/^find/.test(he);Qr&&(pn.prototype[he]=function(){var Fi=this.__wrapped__,rs=Ut?[1]:arguments,qs=Fi instanceof up,vc=rs[0],qa=qs||Ed(Fi),fc=function(tI){var rI=Qr.apply(pn,_I([tI],rs));return Ut&&vl?rI[0]:rI};qa&&ze&&typeof vc=="function"&&vc.length!=1&&(qs=qa=!1);var vl=this.__chain__,Zu=!!this.__actions__.length,VA=kn&&!vl,hf=qs&&!Zu;if(!kn&&qa){Fi=hf?Fi:new up(this);var Sd=ie.apply(Fi,rs);return Sd.__actions__.push({func:tN,args:[fc],thisArg:e}),new ey(Sd,vl)}return VA&&hf?ie.apply(this,rs):(Sd=this.thru(fc),VA?Ut?Sd.value()[0]:Sd.value():Sd)})}),cp(["pop","push","shift","sort","splice","unshift"],function(ie){var he=vy[ie],ze=/^(?:push|sort|unshift)$/.test(ie)?"tap":"thru",Ut=/^(?:pop|shift)$/.test(ie);pn.prototype[ie]=function(){var Qr=arguments;if(Ut&&!this.__chain__){var kn=this.value();return he.apply(Ed(kn)?kn:[],Qr)}return this[ze](function(Fi){return he.apply(Ed(Fi)?Fi:[],Qr)})}}),fu(up.prototype,function(ie,he){var ze=pn[he];if(ze){var Ut=ze.name+"";Yp.call(oB,Ut)||(oB[Ut]=[]),oB[Ut].push({name:he,func:ze})}}),oB[GD(e,F).name]=[{name:"wrapper",func:e}],up.prototype.clone=Iw,up.prototype.reverse=cB,up.prototype.value=RD,pn.prototype.at=pY,pn.prototype.chain=wL,pn.prototype.commit=bre,pn.prototype.next=LD,pn.prototype.plant=$6,pn.prototype.reverse=eS,pn.prototype.toJSON=pn.prototype.valueOf=pn.prototype.value=rN,pn.prototype.first=pn.prototype.head,uI&&(pn.prototype[uI]=ige),pn},gm=um();typeof define=="function"&&typeof define.amd=="object"&&define.amd?(YA._=gm,define(function(){return gm})):Nm?((Nm.exports=gm)._=gm,Ac._=gm):YA._=gm}).call(iBe)});var BMe=H((Ueu,dIr)=>{"use strict";var bC=dIr.exports;dIr.exports.default=bC;var my="\x1B[",vMe="\x1B]",sBe="\x07",gpt=";",X5n=process.env.TERM_PROGRAM==="Apple_Terminal";bC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?my+(e+1)+"G":my+(t+1)+";"+(e+1)+"H"};bC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=my+-e+"D":e>0&&(r+=my+e+"C"),t<0?r+=my+-t+"A":t>0&&(r+=my+t+"B"),r};bC.cursorUp=(e=1)=>my+e+"A";bC.cursorDown=(e=1)=>my+e+"B";bC.cursorForward=(e=1)=>my+e+"C";bC.cursorBackward=(e=1)=>my+e+"D";bC.cursorLeft=my+"G";bC.cursorSavePosition=X5n?"\x1B7":my+"s";bC.cursorRestorePosition=X5n?"\x1B8":my+"u";bC.cursorGetPosition=my+"6n";bC.cursorNextLine=my+"E";bC.cursorPrevLine=my+"F";bC.cursorHide=my+"?25l";bC.cursorShow=my+"?25h";bC.eraseLines=e=>{let t="";for(let r=0;r[vMe,"8",gpt,gpt,t,sBe,e,vMe,"8",gpt,gpt,sBe].join("");bC.image=(e,t={})=>{let r=`${vMe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+sBe};bC.iTerm={setCwd:(e=process.cwd())=>`${vMe}50;CurrentDir=${e}${sBe}`,annotation:(e,t={})=>{let r=`${vMe}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+sBe}}});var U5n=H((Keu,pIr)=>{"use strict";var J5n=(e,t)=>{for(let r of Reflect.ownKeys(t))Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r));return e};pIr.exports=J5n;pIr.exports.default=J5n});var j5n=H((jeu,dpt)=>{"use strict";var TUo=U5n(),Apt=new WeakMap,K5n=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(Apt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return TUo(o,e),Apt.set(o,n),o};dpt.exports=K5n;dpt.exports.default=K5n;dpt.exports.callCount=e=>{if(!Apt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Apt.get(e)}});var z5n=H((zeu,ppt)=>{ppt.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&ppt.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&ppt.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var mpt=H((qeu,cBe)=>{var S2=global.process,vIe=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};vIe(S2)?(q5n=wt("assert"),oBe=z5n(),$5n=/^win/i.test(S2.platform),wMe=wt("events"),typeof wMe!="function"&&(wMe=wMe.EventEmitter),S2.__signal_exit_emitter__?zN=S2.__signal_exit_emitter__:(zN=S2.__signal_exit_emitter__=new wMe,zN.count=0,zN.emitted={}),zN.infinite||(zN.setMaxListeners(1/0),zN.infinite=!0),cBe.exports=function(e,t){if(!vIe(global.process))return function(){};q5n.equal(typeof e,"function","a callback must be provided for exit handler"),aBe===!1&&fIr();var r="exit";t&&t.alwaysLast&&(r="afterexit");var n=function(){zN.removeListener(r,e),zN.listeners("exit").length===0&&zN.listeners("afterexit").length===0&&fpt()};return zN.on(r,e),n},fpt=function(){!aBe||!vIe(global.process)||(aBe=!1,oBe.forEach(function(t){try{S2.removeListener(t,Ipt[t])}catch{}}),S2.emit=hpt,S2.reallyExit=IIr,zN.count-=1)},cBe.exports.unload=fpt,BIe=function(t,r,n){zN.emitted[t]||(zN.emitted[t]=!0,zN.emit(t,r,n))},Ipt={},oBe.forEach(function(e){Ipt[e]=function(){if(vIe(global.process)){var r=S2.listeners(e);r.length===zN.count&&(fpt(),BIe("exit",null,e),BIe("afterexit",null,e),$5n&&e==="SIGHUP"&&(e="SIGINT"),S2.kill(S2.pid,e))}}}),cBe.exports.signals=function(){return oBe},aBe=!1,fIr=function(){aBe||!vIe(global.process)||(aBe=!0,zN.count+=1,oBe=oBe.filter(function(t){try{return S2.on(t,Ipt[t]),!0}catch{return!1}}),S2.emit=tMn,S2.reallyExit=eMn)},cBe.exports.load=fIr,IIr=S2.reallyExit,eMn=function(t){vIe(global.process)&&(S2.exitCode=t||0,BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),IIr.call(S2,S2.exitCode))},hpt=S2.emit,tMn=function(t,r){if(t==="exit"&&vIe(global.process)){r!==void 0&&(S2.exitCode=r);var n=hpt.apply(this,arguments);return BIe("exit",S2.exitCode,null),BIe("afterexit",S2.exitCode,null),n}else return hpt.apply(this,arguments)}):cBe.exports=function(){return function(){}};var q5n,oBe,$5n,wMe,zN,fpt,BIe,Ipt,aBe,fIr,IIr,eMn,hpt,tMn});var nMn=H(($eu,rMn)=>{"use strict";var RUo=j5n(),NUo=mpt();rMn.exports=RUo(()=>{NUo(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var uBe=H(lBe=>{"use strict";var DUo=nMn(),Cpt=!1;lBe.show=(e=process.stderr)=>{e.isTTY&&(Cpt=!1,e.write("\x1B[?25h"))};lBe.hide=(e=process.stderr)=>{e.isTTY&&(DUo(),Cpt=!0,e.write("\x1B[?25l"))};lBe.toggle=(e,t)=>{e!==void 0&&(Cpt=e),Cpt?lBe.show(t):lBe.hide(t)}});var aMn=H(TMe=>{"use strict";var oMn=TMe&&TMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TMe,"__esModule",{value:!0});var iMn=oMn(BMe()),sMn=oMn(uBe()),kUo=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(sMn.default.hide(),a=!0);let A=l+` `;A!==n&&(n=A,e.write(iMn.default.eraseLines(r)+A),r=A.split(` -`).length)};return o.clear=()=>{e.write(iMn.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(sMn.default.show(),a=!1)},o};TMe.default={create:kUo}});var cMn=H((ttu,xUo)=>{xUo.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var gMn=H(PW=>{"use strict";var uMn=cMn(),l8=process.env;Object.defineProperty(PW,"_vendors",{value:uMn.map(function(e){return e.constant})});PW.name=null;PW.isPR=null;uMn.forEach(function(e){var t=Array.isArray(e.env)?e.env:[e.env],r=t.every(function(n){return lMn(n)});if(PW[e.constant]=r,r)switch(PW.name=e.name,typeof e.pr){case"string":PW.isPR=!!l8[e.pr];break;case"object":"env"in e.pr?PW.isPR=e.pr.env in l8&&l8[e.pr.env]!==e.pr.ne:"any"in e.pr?PW.isPR=e.pr.any.some(function(n){return!!l8[n]}):PW.isPR=lMn(e.pr);break;default:PW.isPR=null}});PW.isCI=!!(l8.CI||l8.CONTINUOUS_INTEGRATION||l8.BUILD_NUMBER||l8.RUN_ID||PW.name);function lMn(e){return typeof e=="string"?!!l8[e]:Object.keys(e).every(function(t){return l8[t]===e[t]})}});var hIr=H((ntu,AMn)=>{"use strict";AMn.exports=gMn().isCI});var mIr=H((itu,dMn)=>{"use strict";var GUo=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};dMn.exports=(e,{include:t,exclude:r}={})=>{let n=a=>{let o=l=>typeof l=="string"?a===l:l.test(a);return t?t.some(o):r?!r.some(o):!0};for(let[a,o]of GUo(e.constructor.prototype)){if(o==="constructor"||!n(o))continue;let l=Reflect.getOwnPropertyDescriptor(a,o);l&&typeof l.value=="function"&&(e[o]=e[o].bind(e))}return e}});var CMn=H(M0=>{"use strict";var ABe,DMe,Ept,vIr;typeof performance=="object"&&typeof performance.now=="function"?(pMn=performance,M0.unstable_now=function(){return pMn.now()}):(CIr=Date,fMn=CIr.now(),M0.unstable_now=function(){return CIr.now()-fMn});var pMn,CIr,fMn;typeof window>"u"||typeof MessageChannel!="function"?(gBe=null,_Ir=null,yIr=function(){if(gBe!==null)try{var e=M0.unstable_now();gBe(!0,e),gBe=null}catch(t){throw setTimeout(yIr,0),t}},ABe=function(e){gBe!==null?setTimeout(ABe,0,e):(gBe=e,setTimeout(yIr,0))},DMe=function(e,t){_Ir=setTimeout(e,t)},Ept=function(){clearTimeout(_Ir)},M0.unstable_shouldYield=function(){return!1},vIr=M0.unstable_forceFrameRate=function(){}):(IMn=window.setTimeout,hMn=window.clearTimeout,typeof console<"u"&&(mMn=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof mMn!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),RMe=!1,NMe=null,_pt=-1,bIr=5,EIr=0,M0.unstable_shouldYield=function(){return M0.unstable_now()>=EIr},vIr=function(){},M0.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[n];if(a!==void 0&&0bpt(l,r))f!==void 0&&0>bpt(f,l)?(e[n]=f,e[A]=r,n=A):(e[n]=l,e[o]=r,n=o);else if(f!==void 0&&0>bpt(f,r))e[n]=f,e[A]=r,n=A;else break e}}return t}return null}function bpt(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}var u8=[],Woe=[],FUo=1,yM=null,hG=3,vpt=!1,wIe=!1,kMe=!1;function wIr(e){for(var t=CX(Woe);t!==null;){if(t.callback===null)Spt(Woe);else if(t.startTime<=e)Spt(Woe),t.sortIndex=t.expirationTime,BIr(u8,t);else break;t=CX(Woe)}}function TIr(e){if(kMe=!1,wIr(e),!wIe)if(CX(u8)!==null)wIe=!0,ABe(RIr);else{var t=CX(Woe);t!==null&&DMe(TIr,t.startTime-e)}}function RIr(e,t){wIe=!1,kMe&&(kMe=!1,Ept()),vpt=!0;var r=hG;try{for(wIr(t),yM=CX(u8);yM!==null&&(!(yM.expirationTime>t)||e&&!M0.unstable_shouldYield());){var n=yM.callback;if(typeof n=="function"){yM.callback=null,hG=yM.priorityLevel;var a=n(yM.expirationTime<=t);t=M0.unstable_now(),typeof a=="function"?yM.callback=a:yM===CX(u8)&&Spt(u8),wIr(t)}else Spt(u8);yM=CX(u8)}if(yM!==null)var o=!0;else{var l=CX(Woe);l!==null&&DMe(TIr,l.startTime-t),o=!1}return o}finally{yM=null,hG=r,vpt=!1}}var ZUo=vIr;M0.unstable_IdlePriority=5;M0.unstable_ImmediatePriority=1;M0.unstable_LowPriority=4;M0.unstable_NormalPriority=3;M0.unstable_Profiling=null;M0.unstable_UserBlockingPriority=2;M0.unstable_cancelCallback=function(e){e.callback=null};M0.unstable_continueExecution=function(){wIe||vpt||(wIe=!0,ABe(RIr))};M0.unstable_getCurrentPriorityLevel=function(){return hG};M0.unstable_getFirstCallbackNode=function(){return CX(u8)};M0.unstable_next=function(e){switch(hG){case 1:case 2:case 3:var t=3;break;default:t=hG}var r=hG;hG=t;try{return e()}finally{hG=r}};M0.unstable_pauseExecution=function(){};M0.unstable_requestPaint=ZUo;M0.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=hG;hG=e;try{return t()}finally{hG=r}};M0.unstable_scheduleCallback=function(e,t,r){var n=M0.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0n?(e.sortIndex=r,BIr(Woe,e),CX(u8)===null&&e===CX(Woe)&&(kMe?Ept():kMe=!0,DMe(TIr,r-n))):(e.sortIndex=a,BIr(u8,e),wIe||vpt||(wIe=!0,ABe(RIr))),e};M0.unstable_wrapCallback=function(e){var t=hG;return function(){var r=hG;hG=t;try{return e.apply(this,arguments)}finally{hG=r}}}});var xMe=H((otu,_Mn)=>{"use strict";_Mn.exports=CMn()});var Bpt=H((atu,bMn)=>{"use strict";var yMn=Object.getOwnPropertySymbols,LUo=Object.prototype.hasOwnProperty,VUo=Object.prototype.propertyIsEnumerable;function PUo(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function WUo(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(n.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(o){a[o]=o}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}bMn.exports=WUo()?Object.assign:function(e,t){for(var r,n=PUo(e),a,o=1;o{GMe.exports=function(t){var r={},n=Bpt(),a=Ec(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;te{e.write(iMn.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(sMn.default.show(),a=!1)},o};TMe.default={create:kUo}});var cMn=H((rtu,xUo)=>{xUo.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var gMn=H(PW=>{"use strict";var uMn=cMn(),l8=process.env;Object.defineProperty(PW,"_vendors",{value:uMn.map(function(e){return e.constant})});PW.name=null;PW.isPR=null;uMn.forEach(function(e){var t=Array.isArray(e.env)?e.env:[e.env],r=t.every(function(n){return lMn(n)});if(PW[e.constant]=r,r)switch(PW.name=e.name,typeof e.pr){case"string":PW.isPR=!!l8[e.pr];break;case"object":"env"in e.pr?PW.isPR=e.pr.env in l8&&l8[e.pr.env]!==e.pr.ne:"any"in e.pr?PW.isPR=e.pr.any.some(function(n){return!!l8[n]}):PW.isPR=lMn(e.pr);break;default:PW.isPR=null}});PW.isCI=!!(l8.CI||l8.CONTINUOUS_INTEGRATION||l8.BUILD_NUMBER||l8.RUN_ID||PW.name);function lMn(e){return typeof e=="string"?!!l8[e]:Object.keys(e).every(function(t){return l8[t]===e[t]})}});var hIr=H((itu,AMn)=>{"use strict";AMn.exports=gMn().isCI});var mIr=H((stu,dMn)=>{"use strict";var GUo=e=>{let t=new Set;do for(let r of Reflect.ownKeys(e))t.add([e,r]);while((e=Reflect.getPrototypeOf(e))&&e!==Object.prototype);return t};dMn.exports=(e,{include:t,exclude:r}={})=>{let n=a=>{let o=l=>typeof l=="string"?a===l:l.test(a);return t?t.some(o):r?!r.some(o):!0};for(let[a,o]of GUo(e.constructor.prototype)){if(o==="constructor"||!n(o))continue;let l=Reflect.getOwnPropertyDescriptor(a,o);l&&typeof l.value=="function"&&(e[o]=e[o].bind(e))}return e}});var CMn=H(M0=>{"use strict";var ABe,DMe,Ept,vIr;typeof performance=="object"&&typeof performance.now=="function"?(pMn=performance,M0.unstable_now=function(){return pMn.now()}):(CIr=Date,fMn=CIr.now(),M0.unstable_now=function(){return CIr.now()-fMn});var pMn,CIr,fMn;typeof window>"u"||typeof MessageChannel!="function"?(gBe=null,_Ir=null,yIr=function(){if(gBe!==null)try{var e=M0.unstable_now();gBe(!0,e),gBe=null}catch(t){throw setTimeout(yIr,0),t}},ABe=function(e){gBe!==null?setTimeout(ABe,0,e):(gBe=e,setTimeout(yIr,0))},DMe=function(e,t){_Ir=setTimeout(e,t)},Ept=function(){clearTimeout(_Ir)},M0.unstable_shouldYield=function(){return!1},vIr=M0.unstable_forceFrameRate=function(){}):(IMn=window.setTimeout,hMn=window.clearTimeout,typeof console<"u"&&(mMn=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof mMn!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),RMe=!1,NMe=null,_pt=-1,bIr=5,EIr=0,M0.unstable_shouldYield=function(){return M0.unstable_now()>=EIr},vIr=function(){},M0.unstable_forceFrameRate=function(e){0>e||125>>1,a=e[n];if(a!==void 0&&0bpt(l,r))f!==void 0&&0>bpt(f,l)?(e[n]=f,e[A]=r,n=A):(e[n]=l,e[o]=r,n=o);else if(f!==void 0&&0>bpt(f,r))e[n]=f,e[A]=r,n=A;else break e}}return t}return null}function bpt(e,t){var r=e.sortIndex-t.sortIndex;return r!==0?r:e.id-t.id}var u8=[],Woe=[],FUo=1,yM=null,hG=3,vpt=!1,wIe=!1,kMe=!1;function wIr(e){for(var t=CX(Woe);t!==null;){if(t.callback===null)Spt(Woe);else if(t.startTime<=e)Spt(Woe),t.sortIndex=t.expirationTime,BIr(u8,t);else break;t=CX(Woe)}}function TIr(e){if(kMe=!1,wIr(e),!wIe)if(CX(u8)!==null)wIe=!0,ABe(RIr);else{var t=CX(Woe);t!==null&&DMe(TIr,t.startTime-e)}}function RIr(e,t){wIe=!1,kMe&&(kMe=!1,Ept()),vpt=!0;var r=hG;try{for(wIr(t),yM=CX(u8);yM!==null&&(!(yM.expirationTime>t)||e&&!M0.unstable_shouldYield());){var n=yM.callback;if(typeof n=="function"){yM.callback=null,hG=yM.priorityLevel;var a=n(yM.expirationTime<=t);t=M0.unstable_now(),typeof a=="function"?yM.callback=a:yM===CX(u8)&&Spt(u8),wIr(t)}else Spt(u8);yM=CX(u8)}if(yM!==null)var o=!0;else{var l=CX(Woe);l!==null&&DMe(TIr,l.startTime-t),o=!1}return o}finally{yM=null,hG=r,vpt=!1}}var ZUo=vIr;M0.unstable_IdlePriority=5;M0.unstable_ImmediatePriority=1;M0.unstable_LowPriority=4;M0.unstable_NormalPriority=3;M0.unstable_Profiling=null;M0.unstable_UserBlockingPriority=2;M0.unstable_cancelCallback=function(e){e.callback=null};M0.unstable_continueExecution=function(){wIe||vpt||(wIe=!0,ABe(RIr))};M0.unstable_getCurrentPriorityLevel=function(){return hG};M0.unstable_getFirstCallbackNode=function(){return CX(u8)};M0.unstable_next=function(e){switch(hG){case 1:case 2:case 3:var t=3;break;default:t=hG}var r=hG;hG=t;try{return e()}finally{hG=r}};M0.unstable_pauseExecution=function(){};M0.unstable_requestPaint=ZUo;M0.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var r=hG;hG=e;try{return t()}finally{hG=r}};M0.unstable_scheduleCallback=function(e,t,r){var n=M0.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0n?(e.sortIndex=r,BIr(Woe,e),CX(u8)===null&&e===CX(Woe)&&(kMe?Ept():kMe=!0,DMe(TIr,r-n))):(e.sortIndex=a,BIr(u8,e),wIe||vpt||(wIe=!0,ABe(RIr))),e};M0.unstable_wrapCallback=function(e){var t=hG;return function(){var r=hG;hG=t;try{return e.apply(this,arguments)}finally{hG=r}}}});var xMe=H((atu,_Mn)=>{"use strict";_Mn.exports=CMn()});var Bpt=H((ctu,bMn)=>{"use strict";var yMn=Object.getOwnPropertySymbols,LUo=Object.prototype.hasOwnProperty,VUo=Object.prototype.propertyIsEnumerable;function PUo(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function WUo(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(o){return t[o]});if(n.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(o){a[o]=o}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}bMn.exports=WUo()?Object.assign:function(e,t){for(var r,n=PUo(e),a,o=1;o{GMe.exports=function(t){var r={},n=Bpt(),a=Ec(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;teUr||Le[dr]!==ft[Ur])return` @@ -328,43 +328,43 @@ Add a component higher in the tree to provide a loading `+(Re.join(" > ")+` No matching component was found for: - `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var vMn=H((ltu,SMn)=>{"use strict";SMn.exports=EMn()});var wMn=H((utu,BMn)=>{"use strict";var OUo={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};BMn.exports=OUo});var DMn=H((gtu,NMn)=>{"use strict";var MUo=Object.assign||function(e){for(var t=1;t"}}]),e}(),TMn=function(){wpt(e,null,[{key:"fromJS",value:function(r){var n=r.width,a=r.height;return new e(n,a)}}]);function e(t,r){DIr(this,e),this.width=t,this.height=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),e}(),RMn=function(){function e(t,r){DIr(this,e),this.unit=t,this.value=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case _X.UNIT_POINT:return String(this.value);case _X.UNIT_PERCENT:return this.value+"%";case _X.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();NMn.exports=function(e,t){function r(l,A,f){var I=l[A];l[A]=function(){for(var C=arguments.length,b=Array(C),E=0;E1?b-1:0),N=1;N1&&arguments[1]!==void 0?arguments[1]:NaN,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:_X.DIRECTION_LTR;return l.call(this,A,f,I)}),MUo({Config:t.Config,Node:t.Node,Layout:e("Layout",HUo),Size:e("Size",TMn),Value:e("Value",RMn),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},_X)}});var kMn=H((exports,module)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t}):typeof module=="object"&&module.exports?module.exports=t:(e.nbind=e.nbind||{}).init=t})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){t(r);return}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof wt=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(t,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var n=nodeFS.readFileSync(t);return r?n:n.toString()},Module.readBinary=function(t){var r=Module.read(t,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(t));var r=read(t,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(e,t){quit(e)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(t,r,n){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):n()},a.onerror=n,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(t){console.log(t)}),Module.printErr||(Module.printErr=function(t){console.warn(t)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(e){document.title=e})}else throw"Unknown runtime environment. Where are we?";function globalEval(e){eval.call(null,e)}!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(e[e.length-1]==="*")return Runtime.QUANTUM_SIZE;if(e[0]==="i"){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}else return 0}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return t==="double"||t==="i64"?e&7&&(assert((e&7)===4),e+=4):assert((e&3)===0),e},getAlignSize:function(e,t,r){return!r&&(e=="i64"||e=="double")?8:e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8)},dynCall:function(e,t,r){return r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t>2],r=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var n=enlargeMemory();if(!n)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var r=e=Math.ceil(e/(t||16))*(t||16);return r},makeBigInt:function(e,t,r){var n=r?+(e>>>0)+ +(t>>>0)*4294967296:+(e>>>0)+ +(t|0)*4294967296;return n},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(e!=null&&e!==0){var r=(e.length<<2)+1;t=Runtime.stackAlloc(r),stringToUTF8(e,t,r)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,r,n,a,o){var l=getCFunc(t),A=[],f=0;if(a)for(var I=0;I>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(e,t,r){switch(t=t||"i8",t.charAt(t.length-1)==="*"&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(e,t,r,n){var a,o;typeof e=="number"?(a=!0,o=e):(a=!1,o=e.length);var l=typeof t=="string"?t:null,A;if(r==ALLOC_NONE?A=n:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(o,l?1:t.length)),a){var n=A,f;for(assert((A&3)==0),f=A+(o&-4);n>2]=0;for(f=A+o;n>0]=0;return A}if(l==="i8")return e.subarray||e.slice?HEAPU8.set(e,A):HEAPU8.set(new Uint8Array(e),A),A;for(var I=0,C,b,E;I>0],r|=n,!(n==0&&!t||(a++,t&&a==t)););t||(t=a);var o="";if(r<128){for(var l=1024,A;t>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,l))),o=o?o+A:A,e+=l,t-=l;return o}return Module.UTF8ToString(e)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(e){for(var t="";;){var r=HEAP8[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var r=t;e[r];)++r;if(r-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var n,a,o,l,A,f,I="";;){if(n=e[t++],!n)return I;if(!(n&128)){I+=String.fromCharCode(n);continue}if(a=e[t++]&63,(n&224)==192){I+=String.fromCharCode((n&31)<<6|a);continue}if(o=e[t++]&63,(n&240)==224?n=(n&15)<<12|a<<6|o:(l=e[t++]&63,(n&248)==240?n=(n&7)<<18|a<<12|o<<6|l:(A=e[t++]&63,(n&252)==248?n=(n&3)<<24|a<<18|o<<12|l<<6|A:(f=e[t++]&63,n=(n&1)<<30|a<<24|o<<18|l<<12|A<<6|f))),n<65536)I+=String.fromCharCode(n);else{var C=n-65536;I+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(e,t,r,n){if(!(n>0))return 0;for(var a=r,o=r+n-1,l=0;l=55296&&A<=57343&&(A=65536+((A&1023)<<10)|e.charCodeAt(++l)&1023),A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|A&63}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=2097151){if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=67108863){if(r+4>=o)break;t[r++]=248|A>>24,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else{if(r+5>=o)break;t[r++]=252|A>>30,t[r++]=128|A>>24&63,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}}return t[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(e,t,r){return stringToUTF8Array(e,HEAPU8,t,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++r)&1023),n<=127?++t:n<=2047?t+=2:n<=65535?t+=3:n<=2097151?t+=4:n<=67108863?t+=5:t+=6}return t}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var r=e.substr(1),n=lengthBytesUTF8(r)+1,a=_malloc(n);stringToUTF8(r,a,n);var o=_malloc(4),l=t(a,0,0,o);if(getValue(o,"i32")===0&&l)return Pointer_stringify(l)}catch{}finally{a&&_free(a),o&&_free(o),l&&_free(l)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(r){var n=demangle(r);return r===n?r:r+" ["+n+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=` + `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var vMn=H((utu,SMn)=>{"use strict";SMn.exports=EMn()});var wMn=H((gtu,BMn)=>{"use strict";var OUo={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};BMn.exports=OUo});var DMn=H((Atu,NMn)=>{"use strict";var MUo=Object.assign||function(e){for(var t=1;t"}}]),e}(),TMn=function(){wpt(e,null,[{key:"fromJS",value:function(r){var n=r.width,a=r.height;return new e(n,a)}}]);function e(t,r){DIr(this,e),this.width=t,this.height=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),e}(),RMn=function(){function e(t,r){DIr(this,e),this.unit=t,this.value=r}return wpt(e,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case _X.UNIT_POINT:return String(this.value);case _X.UNIT_PERCENT:return this.value+"%";case _X.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),e}();NMn.exports=function(e,t){function r(l,A,f){var I=l[A];l[A]=function(){for(var C=arguments.length,b=Array(C),E=0;E1?b-1:0),N=1;N1&&arguments[1]!==void 0?arguments[1]:NaN,f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:_X.DIRECTION_LTR;return l.call(this,A,f,I)}),MUo({Config:t.Config,Node:t.Node,Layout:e("Layout",HUo),Size:e("Size",TMn),Value:e("Value",RMn),getInstanceCount:function(){return t.getInstanceCount.apply(t,arguments)}},_X)}});var kMn=H((exports,module)=>{(function(e,t){typeof define=="function"&&define.amd?define([],function(){return t}):typeof module=="object"&&module.exports?module.exports=t:(e.nbind=e.nbind||{}).init=t})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(e,t){return function(){e&&e.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){t(r);return}t(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof wt=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(t,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),t=nodePath.normalize(t);var n=nodeFS.readFileSync(t);return r?n:n.toString()},Module.readBinary=function(t){var r=Module.read(t,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(t){globalEval(read(t))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(t){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(t));var r=read(t,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(e,t){quit(e)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(t){var r=new XMLHttpRequest;return r.open("GET",t,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(t,r,n){var a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):n()},a.onerror=n,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(t){console.log(t)}),Module.printErr||(Module.printErr=function(t){console.warn(t)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(e){document.title=e})}else throw"Unknown runtime environment. Where are we?";function globalEval(e){eval.call(null,e)}!Module.load&&Module.read&&(Module.load=function(t){globalEval(Module.read(t))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,t){throw t}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(e[e.length-1]==="*")return Runtime.QUANTUM_SIZE;if(e[0]==="i"){var t=parseInt(e.substr(1));return assert(t%8===0),t/8}else return 0}}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,t){return t==="double"||t==="i64"?e&7&&(assert((e&7)===4),e+=4):assert((e&3)===0),e},getAlignSize:function(e,t,r){return!r&&(e=="i64"||e=="double")?8:e?Math.min(t||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(t,8)},dynCall:function(e,t,r){return r&&r.length?Module["dynCall_"+e].apply(null,[t].concat(r)):Module["dynCall_"+e].call(null,t)},functionPointers:[],addFunction:function(e){for(var t=0;t>2],r=(t+e+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var n=enlargeMemory();if(!n)return HEAP32[DYNAMICTOP_PTR>>2]=t,0}return t},alignMemory:function(e,t){var r=e=Math.ceil(e/(t||16))*(t||16);return r},makeBigInt:function(e,t,r){var n=r?+(e>>>0)+ +(t>>>0)*4294967296:+(e>>>0)+ +(t|0)*4294967296;return n},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(e,t){e||abort("Assertion failed: "+t)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var t=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,t),t},stringToC:function(e){var t=0;if(e!=null&&e!==0){var r=(e.length<<2)+1;t=Runtime.stackAlloc(r),stringToUTF8(e,t,r)}return t}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(t,r,n,a,o){var l=getCFunc(t),A=[],f=0;if(a)for(var I=0;I>0]=t;break;case"i8":HEAP8[e>>0]=t;break;case"i16":HEAP16[e>>1]=t;break;case"i32":HEAP32[e>>2]=t;break;case"i64":tempI64=[t>>>0,(tempDouble=t,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=t;break;case"double":HEAPF64[e>>3]=t;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(e,t,r){switch(t=t||"i8",t.charAt(t.length-1)==="*"&&(t="i32"),t){case"i1":return HEAP8[e>>0];case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":return HEAP32[e>>2];case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+t)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(e,t,r,n){var a,o;typeof e=="number"?(a=!0,o=e):(a=!1,o=e.length);var l=typeof t=="string"?t:null,A;if(r==ALLOC_NONE?A=n:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(o,l?1:t.length)),a){var n=A,f;for(assert((A&3)==0),f=A+(o&-4);n>2]=0;for(f=A+o;n>0]=0;return A}if(l==="i8")return e.subarray||e.slice?HEAPU8.set(e,A):HEAPU8.set(new Uint8Array(e),A),A;for(var I=0,C,b,E;I>0],r|=n,!(n==0&&!t||(a++,t&&a==t)););t||(t=a);var o="";if(r<128){for(var l=1024,A;t>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(t,l))),o=o?o+A:A,e+=l,t-=l;return o}return Module.UTF8ToString(e)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(e){for(var t="";;){var r=HEAP8[e++>>0];if(!r)return t;t+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(e,t){return writeAsciiToMemory(e,t,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(e,t){for(var r=t;e[r];)++r;if(r-t>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(t,r));for(var n,a,o,l,A,f,I="";;){if(n=e[t++],!n)return I;if(!(n&128)){I+=String.fromCharCode(n);continue}if(a=e[t++]&63,(n&224)==192){I+=String.fromCharCode((n&31)<<6|a);continue}if(o=e[t++]&63,(n&240)==224?n=(n&15)<<12|a<<6|o:(l=e[t++]&63,(n&248)==240?n=(n&7)<<18|a<<12|o<<6|l:(A=e[t++]&63,(n&252)==248?n=(n&3)<<24|a<<18|o<<12|l<<6|A:(f=e[t++]&63,n=(n&1)<<30|a<<24|o<<18|l<<12|A<<6|f))),n<65536)I+=String.fromCharCode(n);else{var C=n-65536;I+=String.fromCharCode(55296|C>>10,56320|C&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(e,t,r,n){if(!(n>0))return 0;for(var a=r,o=r+n-1,l=0;l=55296&&A<=57343&&(A=65536+((A&1023)<<10)|e.charCodeAt(++l)&1023),A<=127){if(r>=o)break;t[r++]=A}else if(A<=2047){if(r+1>=o)break;t[r++]=192|A>>6,t[r++]=128|A&63}else if(A<=65535){if(r+2>=o)break;t[r++]=224|A>>12,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=2097151){if(r+3>=o)break;t[r++]=240|A>>18,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else if(A<=67108863){if(r+4>=o)break;t[r++]=248|A>>24,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}else{if(r+5>=o)break;t[r++]=252|A>>30,t[r++]=128|A>>24&63,t[r++]=128|A>>18&63,t[r++]=128|A>>12&63,t[r++]=128|A>>6&63,t[r++]=128|A&63}}return t[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(e,t,r){return stringToUTF8Array(e,HEAPU8,t,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(e){for(var t=0,r=0;r=55296&&n<=57343&&(n=65536+((n&1023)<<10)|e.charCodeAt(++r)&1023),n<=127?++t:n<=2047?t+=2:n<=65535?t+=3:n<=2097151?t+=4:n<=67108863?t+=5:t+=6}return t}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(e){var t=Module.___cxa_demangle||Module.__cxa_demangle;if(t){try{var r=e.substr(1),n=lengthBytesUTF8(r)+1,a=_malloc(n);stringToUTF8(r,a,n);var o=_malloc(4),l=t(a,0,0,o);if(getValue(o,"i32")===0&&l)return Pointer_stringify(l)}catch{}finally{a&&_free(a),o&&_free(o),l&&_free(l)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var t=/__Z[\w\d_]+/g;return e.replace(t,function(r){var n=demangle(r);return r===n?r:r+" ["+n+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(t){e=t}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+=` `+Module.extraStackTrace()),demangleAll(e)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var t=e.shift();if(typeof t=="function"){t();continue}var r=t.func;typeof r=="number"?t.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,t.arg):r(t.arg===void 0?null:t.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}Module.addOnPreRun=addOnPreRun;function addOnInit(e){__ATINIT__.unshift(e)}Module.addOnInit=addOnInit;function addOnPreMain(e){__ATMAIN__.unshift(e)}Module.addOnPreMain=addOnPreMain;function addOnExit(e){__ATEXIT__.unshift(e)}Module.addOnExit=addOnExit;function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(e,t,r){var n=r>0?r:lengthBytesUTF8(e)+1,a=new Array(n),o=stringToUTF8Array(e,a,0,a.length);return t&&(a.length=o),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(e){for(var t=[],r=0;r255&&(n&=255),t.push(String.fromCharCode(n))}return t.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(e,t,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var n,a;r&&(a=t+lengthBytesUTF8(e),n=HEAP8[a]),stringToUTF8(e,t,1/0),r&&(HEAP8[a]=n)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(e,t){HEAP8.set(e,t)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(e,t,r){for(var n=0;n>0]=e.charCodeAt(n);r||(HEAP8[t>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function e(t,r){var n=t>>>16,a=t&65535,o=r>>>16,l=r&65535;return a*l+(n*l+a*o<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(e){return froundBuffer[0]=e,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(e){e=e>>>0;for(var t=0;t<32;t++)if(e&1<<31-t)return t;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(e){return e}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var t=dependenciesFulfilled;dependenciesFulfilled=null,t()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(e,t,r,n,a,o,l,A){return _nbind.callbackSignatureList[e].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(e,t,r,n,a,o,l,A){return ASM_CONSTS[e](t,r,n,a,o,l,A)}function _emscripten_asm_const_iiiii(e,t,r,n,a){return ASM_CONSTS[e](t,r,n,a)}function _emscripten_asm_const_iiidddddd(e,t,r,n,a,o,l,A,f){return ASM_CONSTS[e](t,r,n,a,o,l,A,f)}function _emscripten_asm_const_iiididi(e,t,r,n,a,o,l){return ASM_CONSTS[e](t,r,n,a,o,l)}function _emscripten_asm_const_iiii(e,t,r,n){return ASM_CONSTS[e](t,r,n)}function _emscripten_asm_const_iiiid(e,t,r,n,a){return ASM_CONSTS[e](t,r,n,a)}function _emscripten_asm_const_iiiiii(e,t,r,n,a,o){return ASM_CONSTS[e](t,r,n,a,o)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(e,t){__ATEXIT__.unshift({func:e,arg:t})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(e,t,r,n){var a=arguments.length,o=a<3?t:n===null?n=Object.getOwnPropertyDescriptor(t,r):n,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,r,n);else for(var A=e.length-1;A>=0;A--)(l=e[A])&&(o=(a<3?l(o):a>3?l(t,r,o):l(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o}function _defineHidden(e){return function(t,r){Object.defineProperty(t,r,{configurable:!1,enumerable:!1,value:e,writable:!0})}}var _nbind={};function __nbind_free_external(e){_nbind.externalList[e].dereference(e)}function __nbind_reference_external(e){_nbind.externalList[e].reference()}function _llvm_stackrestore(e){var t=_llvm_stacksave,r=t.LLVM_SAVEDSTACKS[e];t.LLVM_SAVEDSTACKS.splice(e,1),Runtime.stackRestore(r)}function __nbind_register_pool(e,t,r,n){_nbind.Pool.pageSize=e,_nbind.Pool.usedPtr=t/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=n/4,HEAP32[t/4]=16909060,HEAP8[t]==1&&(_nbind.bigEndian=!0),HEAP32[t/4]=0,_nbind.makeTypeKindTbl=(o={},o[1024]=_nbind.PrimitiveType,o[64]=_nbind.Int64Type,o[2048]=_nbind.BindClass,o[3072]=_nbind.BindClassPtr,o[4096]=_nbind.SharedClassPtr,o[5120]=_nbind.ArrayType,o[6144]=_nbind.ArrayType,o[7168]=_nbind.CStringType,o[9216]=_nbind.CallbackType,o[10240]=_nbind.BindType,o),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var o}function _emscripten_set_main_loop_timing(e,t){if(Browser.mainLoop.timingMode=e,Browser.mainLoop.timingValue=t,!Browser.mainLoop.func)return 1;if(e==0)Browser.mainLoop.scheduler=function(){var l=Math.max(0,Browser.mainLoop.tickStartTime+t-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,l)},Browser.mainLoop.method="timeout";else if(e==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(e==2){if(!window.setImmediate){let o=function(l){l.source===window&&l.data===n&&(l.stopPropagation(),r.shift()())};var a=o,r=[],n="setimmediate";window.addEventListener("message",o,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:n})):window.postMessage(n,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(e,t,r,n,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=e,Browser.mainLoop.arg=n;var o;typeof n<"u"?o=function(){Module.dynCall_vi(e,n)}:o=function(){Module.dynCall_v(e)};var l=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var f=Date.now(),I=Browser.mainLoop.queue.shift();if(I.func(I.arg),Browser.mainLoop.remainingBlockers){var C=Browser.mainLoop.remainingBlockers,b=C%1==0?C-1:Math.floor(C);I.counted?Browser.mainLoop.remainingBlockers=b:(b=b+.5,Browser.mainLoop.remainingBlockers=(8*C+b)/9)}if(console.log('main loop blocker "'+I.name+'" took '+(Date.now()-f)+" ms"),Browser.mainLoop.updateStatus(),l1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(o),!(l0?_emscripten_set_main_loop_timing(0,1e3/t):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var e=Browser.mainLoop.timingMode,t=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(e,t),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var e=Module.statusMessage||"Please wait...",t=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;t?t"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var e={};e.canHandle=function(o){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(o)},e.handle=function(o,l,A,f){var I=null;if(Browser.hasBlobConstructor)try{I=new Blob([o],{type:Browser.getMimetype(l)}),I.size!==o.length&&(I=new Blob([new Uint8Array(o).buffer],{type:Browser.getMimetype(l)}))}catch(N){Runtime.warnOnce("Blob constructor present but fails: "+N+"; falling back to blob builder")}if(!I){var C=new Browser.BlobBuilder;C.append(new Uint8Array(o).buffer),I=C.getBlob()}var b=Browser.URLObject.createObjectURL(I),E=new Image;E.onload=function(){assert(E.complete,"Image "+l+" could not be decoded");var B=document.createElement("canvas");B.width=E.width,B.height=E.height;var F=B.getContext("2d");F.drawImage(E,0,0),Module.preloadedImages[l]=B,Browser.URLObject.revokeObjectURL(b),A&&A(o)},E.onerror=function(B){console.log("Image "+b+" could not be decoded"),f&&f()},E.src=b},Module.preloadPlugins.push(e);var t={};t.canHandle=function(o){return!Module.noAudioDecoding&&o.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},t.handle=function(o,l,A,f){var I=!1;function C(F){I||(I=!0,Module.preloadedAudios[l]=F,A&&A(o))}function b(){I||(I=!0,Module.preloadedAudios[l]=new Audio,f&&f())}if(Browser.hasBlobConstructor){try{var E=new Blob([o],{type:Browser.getMimetype(l)})}catch{return b()}var N=Browser.URLObject.createObjectURL(E),B=new Audio;B.addEventListener("canplaythrough",function(){C(B)},!1),B.onerror=function(Q){if(I)return;console.log("warning: browser could not fully decode audio "+l+", trying slower base64 approach");function X(ae){for(var ne="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ce="=",fe="",ue=0,de=0,be=0;be=6;){var Se=ue>>de-6&63;de-=6,fe+=ne[Se]}return de==2?(fe+=ne[(ue&3)<<4],fe+=ce+ce):de==4&&(fe+=ne[(ue&15)<<2],fe+=ce),fe}B.src="data:audio/x-"+l.substr(-3)+";base64,"+X(o),C(B)},B.src=N,Browser.safeSetTimeout(function(){C(B)},1e4)}else return b()},Module.preloadPlugins.push(t);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var n=Module.canvas;n&&(n.requestPointerLock=n.requestPointerLock||n.mozRequestPointerLock||n.webkitRequestPointerLock||n.msRequestPointerLock||function(){},n.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},n.exitPointerLock=n.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&n.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(e,t,r,n){if(t&&Module.ctx&&e==Module.canvas)return Module.ctx;var a,o;if(t){var l={antialias:!1,alpha:!1};if(n)for(var A in n)l[A]=n[A];o=GL.createContext(e,l),o&&(a=GL.getContext(o).GLctx)}else a=e.getContext("2d");return a?(r&&(t||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,t&&GL.makeContextCurrent(o),Module.useWebGL=t,Browser.moduleContextCreatedCallbacks.forEach(function(f){f()}),Browser.init()),a):null},destroyContext:function(e,t,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(e,t,r){Browser.lockPointer=e,Browser.resizeCanvas=t,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var n=Module.canvas;function a(){Browser.isFullscreen=!1;var l=n.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===l?(n.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},n.exitFullscreen=n.exitFullscreen.bind(document),Browser.lockPointer&&n.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(l.parentNode.insertBefore(n,l),l.parentNode.removeChild(l),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(n)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var o=document.createElement("div");n.parentNode.insertBefore(o,n),o.appendChild(n),o.requestFullscreen=o.requestFullscreen||o.mozRequestFullScreen||o.msRequestFullscreen||(o.webkitRequestFullscreen?function(){o.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(o.webkitRequestFullScreen?function(){o.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?o.requestFullscreen({vrDisplay:r}):o.requestFullscreen()},requestFullScreen:function(e,t,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(n,a,o){return Browser.requestFullscreen(n,a,o)},Browser.requestFullscreen(e,t,r)},nextRAF:0,fakeRequestAnimationFrame:function(e){var t=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=t+1e3/60;else for(;t+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-t,0);setTimeout(e,r)},requestAnimationFrame:function e(t){typeof window>"u"?Browser.fakeRequestAnimationFrame(t):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(t))},safeCallback:function(e){return function(){if(!ABORT)return e.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var e=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],e.forEach(function(t){t()})}},safeRequestAnimationFrame:function(e){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))})},safeSetTimeout:function(e,t){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?e():Browser.queuedAsyncCallbacks.push(e))},t)},safeSetInterval:function(e,t){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&e()},t)},getMimetype:function(e){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[e.substr(e.lastIndexOf(".")+1)]},getUserMedia:function(e){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(e)},getMovementX:function(e){return e.movementX||e.mozMovementX||e.webkitMovementX||0},getMovementY:function(e){return e.movementY||e.mozMovementY||e.webkitMovementY||0},getMouseWheelDelta:function(e){var t=0;switch(e.type){case"DOMMouseScroll":t=e.detail;break;case"mousewheel":t=e.wheelDelta;break;case"wheel":t=e.deltaY;break;default:throw"unrecognized mouse wheel event: "+e.type}return t},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(e){if(Browser.pointerLock)e.type!="mousemove"&&"mozMovementX"in e?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(e),Browser.mouseMovementY=Browser.getMovementY(e)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var t=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,n=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,o=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(e.type==="touchstart"||e.type==="touchend"||e.type==="touchmove"){var l=e.touch;if(l===void 0)return;var A=l.pageX-(a+t.left),f=l.pageY-(o+t.top);A=A*(r/t.width),f=f*(n/t.height);var I={x:A,y:f};if(e.type==="touchstart")Browser.lastTouches[l.identifier]=I,Browser.touches[l.identifier]=I;else if(e.type==="touchend"||e.type==="touchmove"){var C=Browser.touches[l.identifier];C||(C=I),Browser.lastTouches[l.identifier]=C,Browser.touches[l.identifier]=I}return}var b=e.pageX-(a+t.left),E=e.pageY-(o+t.top);b=b*(r/t.width),E=E*(n/t.height),Browser.mouseMovementX=b-Browser.mouseX,Browser.mouseMovementY=E-Browser.mouseY,Browser.mouseX=b,Browser.mouseY=E}},asyncLoad:function(e,t,r,n){var a=n?"":"al "+e;Module.readAsync(e,function(o){assert(o,'Loading data file "'+e+'" failed (no arrayBuffer).'),t(new Uint8Array(o)),a&&removeRunDependency(a)},function(o){if(r)r();else throw'Loading data file "'+e+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var e=Module.canvas;Browser.resizeListeners.forEach(function(t){t(e.width,e.height)})},setCanvasSize:function(e,t,r){var n=Module.canvas;Browser.updateCanvasDimensions(n,e,t),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var e=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];e=e&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=e}Browser.updateResizeListeners()},updateCanvasDimensions:function(e,t,r){t&&r?(e.widthNative=t,e.heightNative=r):(t=e.widthNative,r=e.heightNative);var n=t,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(n/a>2];return t},getStr:function(){var e=Pointer_stringify(SYSCALLS.get());return e},get64:function(){var e=SYSCALLS.get(),t=SYSCALLS.get();return e>=0?assert(t===0):assert(t===-1),e},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(n){return(typeof FS>"u"||!(n instanceof FS.ErrnoError))&&abort(n),-n.errno}}function ___syscall54(e,t){SYSCALLS.varargs=t;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(e){var t=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(f,I,C,b,E,N){if(I==1){var B=b&896;(B==128||B==256||B==384)&&(f="X const")}var F;return N?F=C.replace("X",f).replace("Y",E):F=f.replace("X",C).replace("Y",E),F.replace(/([*&]) (?=[*&])/g,"$1")}function n(f,I,C,b,E){throw new Error(f+" type "+C.replace("X",I+"?")+(b?" with flag "+b:"")+" in "+E)}function a(f,I,C,b,E,N,B,F){N===void 0&&(N="X"),F===void 0&&(F=1);var Q=C(f);if(Q)return Q;var X=b(f),ae=X.placeholderFlag,ne=t[ae];B&&ne&&(N=r(B[2],B[0],N,ne[0],"?",!0));var ce;ae==0&&(ce="Unbound"),ae>=10&&(ce="Corrupt"),F>20&&(ce="Deeply nested"),ce&&n(ce,f,N,ae,E||"?");var fe=X.paramList[0],ue=a(fe,I,C,b,E,N,ne,F+1),de,be={flags:ne[0],id:f,name:"",paramList:[ue]},Se=[],De="?";switch(X.placeholderFlag){case 1:de=ue.spec;break;case 2:if((ue.flags&15360)==1024&&ue.spec.ptrSize==1){be.flags=7168;break}case 3:case 6:case 5:de=ue.spec,ue.flags&15360;break;case 8:De=""+X.paramList[1],be.paramList.push(X.paramList[1]);break;case 9:for(var k=0,et=X.paramList[1];k>2]=e),e}function _llvm_stacksave(){var e=_llvm_stacksave;return e.LLVM_SAVEDSTACKS||(e.LLVM_SAVEDSTACKS=[]),e.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),e.LLVM_SAVEDSTACKS.length-1}function ___syscall140(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.getStreamFromFD(),n=SYSCALLS.get(),a=SYSCALLS.get(),o=SYSCALLS.get(),l=SYSCALLS.get(),A=a;return FS.llseek(r,A,l),HEAP32[o>>2]=r.position,r.getdents&&A===0&&l===0&&(r.getdents=null),0}catch(f){return(typeof FS>"u"||!(f instanceof FS.ErrnoError))&&abort(f),-f.errno}}function ___syscall146(e,t){SYSCALLS.varargs=t;try{var r=SYSCALLS.get(),n=SYSCALLS.get(),a=SYSCALLS.get(),o=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(C,b){var E=___syscall146.buffers[C];assert(E),b===0||b===10?((C===1?Module.print:Module.printErr)(UTF8ArrayToString(E,0)),E.length=0):E.push(b)});for(var l=0;l>2],f=HEAP32[n+(l*8+4)>>2],I=0;I"u"||!(C instanceof FS.ErrnoError))&&abort(C),-C.errno}}function __nbind_finish(){for(var e=0,t=_nbind.BindClass.list;ee.pageSize/2||t>e.pageSize-r){var n=_nbind.typeNameTbl.NBind.proto;return n.lalloc(t)}else return HEAPU32[e.usedPtr]=r+t,e.rootPtr+r},e.lreset=function(t,r){var n=HEAPU32[e.pagePtr];if(n){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(t,r)}else HEAPU32[e.usedPtr]=t},e}();_nbind.Pool=Pool;function constructType(e,t){var r=e==10240?_nbind.makeTypeNameTbl[t.name]||_nbind.BindType:_nbind.makeTypeKindTbl[e],n=new r(t);return typeIdTbl[t.id]=n,_nbind.typeNameTbl[t.name]=n,n}_nbind.constructType=constructType;function getType(e){return typeIdTbl[e]}_nbind.getType=getType;function queryType(e){var t=HEAPU8[e],r=_nbind.structureList[t][1];e/=4,r<0&&(++e,r=HEAPU32[e]+1);var n=Array.prototype.slice.call(HEAPU32.subarray(e+1,e+1+r));return t==9&&(n=[n[0],n.slice(1)]),{paramList:n,placeholderFlag:t}}_nbind.queryType=queryType;function getTypes(e,t){return e.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,t):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(e,t){return Array.prototype.slice.call(HEAPU32,e/4,e/4+t)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(e){for(var t=e;HEAPU8[t++];);return String.fromCharCode.apply("",HEAPU8.subarray(e,t-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(e){var t={};if(e)for(;;){var r=HEAPU32[e/4];if(!r)break;t[readAsciiString(r)]=!0,e+=4}return t}_nbind.readPolicyList=readPolicyList;function getDynCall(e,t){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},n=e.map(function(o){return r[o.name]||"i"}).join(""),a=Module["dynCall_"+n];if(!a)throw new Error("dynCall_"+n+" not found for "+t+"("+e.map(function(o){return o.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(e,t,r,n){var a=e[t];e.hasOwnProperty(t)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),e[t]=a),a.addMethod(r,n)):(r.arity=n,e[t]=r)}_nbind.addMethod=addMethod;function throwError(e){throw new Error(e)}_nbind.throwError=throwError,_nbind.bigEndian=!1;var _a=_typeModule(_typeModule);_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return t.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},t.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},t}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(e){__extends(t,e);function t(r){var n=e.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return n.heap=a[r.ptrSize*8],n.ptrSize=r.ptrSize,n}return t.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},t.prototype.makeWireWrite=function(r,n){return n&&n.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},t}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(e,t){if(e==null){if(t&&t.Nullable)return 0;throw new Error("Type mismatch")}if(t&&t.Strict){if(typeof e!="string")throw new Error("Type mismatch")}else e=e.toString();var r=Module.lengthBytesUTF8(e)+1,n=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(e,HEAPU8,n,r),n}_nbind.pushCString=pushCString;function popCString(e){return e===0?null:Module.Pointer_stringify(e)}_nbind.popCString=popCString;var CStringType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return t.prototype.makeWireWrite=function(r,n){return function(a){return pushCString(a,n)}},t}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(e){__extends(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r.wireRead=function(n){return!!n},r}return t.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},t.prototype.makeWireRead=function(r){return"!!("+r+")"},t.prototype.makeWireWrite=function(r,n){return n&&n.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},t}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function e(){}return e.prototype.persist=function(){this.__nbindState|=1},e}();_nbind.Wrapper=Wrapper;function makeBound(e,t){var r=function(n){__extends(a,n);function a(o,l,A,f){var I=n.call(this)||this;if(!(I instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var C=l,b=A,E=f;if(o!==_nbind.ptrMarker){var N=I.__nbindConstructor.apply(I,arguments);C=4608,E=HEAPU32[N/4],b=HEAPU32[N/4+1]}var B={configurable:!0,enumerable:!1,value:null,writable:!1},F={__nbindFlags:C,__nbindPtr:b};E&&(F.__nbindShared=E,_nbind.mark(I));for(var Q=0,X=Object.keys(F);Q>=1;var r=_nbind.valueList[e];return _nbind.valueList[e]=firstFreeValue,firstFreeValue=e,r}else{if(t)return _nbind.popShared(e,t);throw new Error("Invalid value slot "+e)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(e){return typeof e=="number"?e:pushValue(e)*4096+valueBase}function pop64(e){return e=3?l=Buffer.from(o):l=new Buffer(o),l.copy(n)}else getBuffer(n).set(o)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var e=0,t=dirtyList;e>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(e,t,r,n,a,o){try{Module.dynCall_viiiii(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_vif(e,t,r){try{Module.dynCall_vif(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vid(e,t,r){try{Module.dynCall_vid(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_fiff(e,t,r,n){try{return Module.dynCall_fiff(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(e,t){try{Module.dynCall_vi(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(e,t,r){try{Module.dynCall_vii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_ii(e,t){try{return Module.dynCall_ii(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(e,t,r,n,a){try{Module.dynCall_viddi(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vidd(e,t,r,n){try{Module.dynCall_vidd(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(e,t,r,n){try{return Module.dynCall_iiii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(e,t,r,n){try{return Module.dynCall_diii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(e,t){try{return Module.dynCall_di(e,t)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(e,t,r){try{return Module.dynCall_iid(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_iii(e,t,r){try{return Module.dynCall_iii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viiddi(e,t,r,n,a,o){try{Module.dynCall_viiddi(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_viiiiii(e,t,r,n,a,o,l){try{Module.dynCall_viiiiii(e,t,r,n,a,o,l)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(e,t,r){try{return Module.dynCall_dii(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_i(e){try{return Module.dynCall_i(e)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_iiiiii(e,t,r,n,a,o){try{return Module.dynCall_iiiiii(e,t,r,n,a,o)}catch(l){if(typeof l!="number"&&l!=="longjmp")throw l;Module.setThrew(1,0)}}function invoke_viiid(e,t,r,n,a){try{Module.dynCall_viiid(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viififi(e,t,r,n,a,o,l){try{Module.dynCall_viififi(e,t,r,n,a,o,l)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(e,t,r,n){try{Module.dynCall_viii(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(t){if(typeof t!="number"&&t!=="longjmp")throw t;Module.setThrew(1,0)}}function invoke_viid(e,t,r,n){try{Module.dynCall_viid(e,t,r,n)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(e,t,r){try{return Module.dynCall_idd(e,t,r)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viiii(e,t,r,n,a){try{Module.dynCall_viiii(e,t,r,n,a)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(e,t,r){var n=new e.Int8Array(r),a=new e.Int16Array(r),o=new e.Int32Array(r),l=new e.Uint8Array(r),A=new e.Uint16Array(r),f=new e.Uint32Array(r),I=new e.Float32Array(r),C=new e.Float64Array(r),b=t.DYNAMICTOP_PTR|0,E=t.tempDoublePtr|0,N=t.ABORT|0,B=t.STACKTOP|0,F=t.STACK_MAX|0,Q=t.cttz_i8|0,X=t.___dso_handle|0,ae=0,ne=0,ce=0,fe=0,ue=e.NaN,de=e.Infinity,be=0,Se=0,De=0,k=0,et=0,ct=0,Me=e.Math.floor,je=e.Math.abs,St=e.Math.sqrt,At=e.Math.pow,Yt=e.Math.cos,Tr=e.Math.sin,Nr=e.Math.tan,er=e.Math.acos,vt=e.Math.asin,xt=e.Math.atan,Zr=e.Math.atan2,qt=e.Math.exp,Xt=e.Math.log,lr=e.Math.ceil,cr=e.Math.imul,Ar=e.Math.min,qr=e.Math.max,_n=e.Math.clz32,ke=e.Math.fround,jt=t.abort,Fn=t.assert,Nn=t.enlargeMemory,Hi=t.getTotalMemory,po=t.abortOnCannotGrowMemory,Vr=t.invoke_viiiii,xi=t.invoke_vif,io=t.invoke_vid,ga=t.invoke_fiff,Ya=t.invoke_vi,Gc=t.invoke_vii,cl=t.invoke_ii,Sc=t.invoke_viddi,Hr=t.invoke_vidd,Wr=t.invoke_iiii,Ft=t.invoke_diii,zr=t.invoke_di,Rn=t.invoke_iid,Or=t.invoke_iii,Qi=t.invoke_viiddi,ps=t.invoke_viiiiii,yo=t.invoke_dii,bo=t.invoke_i,Qa=t.invoke_iiiiii,gc=t.invoke_viiid,Cg=t.invoke_viififi,Nc=t.invoke_viii,iA=t.invoke_v,ma=t.invoke_viid,vu=t.invoke_idd,li=t.invoke_viiii,Ei=t._emscripten_asm_const_iiiii,Ps=t._emscripten_asm_const_iiidddddd,Xa=t._emscripten_asm_const_iiiid,ac=t.__nbind_reference_external,Yl=t._emscripten_asm_const_iiiiiiii,Wc=t._removeAccessorPrefix,Sg=t._typeModule,Ul=t.__nbind_register_pool,Xu=t.__decorate,Da=t._llvm_stackrestore,pu=t.___cxa_atexit,_g=t.__extends,mI=t.__nbind_get_value_object,Qh=t.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Ri=t._emscripten_set_main_loop_timing,Do=t.__nbind_register_primitive,Wt=t.__nbind_register_type,Hu=t._emscripten_memcpy_big,Ru=t.__nbind_register_function,Vs=t.___setErrNo,Ju=t.__nbind_register_class,Yn=t.__nbind_finish,Ko=t._abort,Eg=t._nbind_value,OA=t._llvm_stacksave,GA=t.___syscall54,$i=t._defineHidden,dl=t._emscripten_set_main_loop,Uf=t._emscripten_get_now,Kd=t.__nbind_register_callback_signature,oA=t._emscripten_asm_const_iiiiii,oo=t.__nbind_free_external,Ki=t._emscripten_asm_const_iiii,cc=t._emscripten_asm_const_iiididi,Xs=t.___syscall6,ws=t._atexit,Gs=t.___syscall140,Ma=t.___syscall146,Dc=ke(0);let As=ke(0);function Tf(p){p=p|0;var y=0;return y=B,B=B+p|0,B=B+15&-16,y|0}function cm(){return B|0}function Fl(p){p=p|0,B=p}function rc(p,y){p=p|0,y=y|0,B=p,F=y}function sd(p,y){p=p|0,y=y|0,ae||(ae=p,ne=y)}function Om(p){p=p|0,ct=p}function il(){return ct|0}function FA(){var p=0,y=0;Md(8104,8,400)|0,Md(8504,408,540)|0,p=9044,y=p+44|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));n[9088]=0,n[9089]=1,o[2273]=0,o[2274]=948,o[2275]=948,pu(17,8104,X|0)|0}function ZA(p){p=p|0,aa(p+948|0)}function El(p){return p=ke(p),((kT(p)|0)&2147483647)>>>0>2139095040|0}function yg(p,y,w){p=p|0,y=y|0,w=w|0;e:do if(o[p+(y<<3)+4>>2]|0)p=p+(y<<3)|0;else{if((y|2|0)==3&&o[p+60>>2]|0){p=p+56|0;break}switch(y|0){case 0:case 2:case 4:case 5:{if(o[p+52>>2]|0){p=p+48|0;break e}break}default:}if(o[p+68>>2]|0){p=p+64|0;break}else{p=(y|1|0)==5?948:w;break}}while(!1);return p|0}function Mp(p){p=p|0;var y=0;return y=zne(1e3)|0,MA(p,(y|0)!=0,2456),o[2276]=(o[2276]|0)+1,Md(y|0,8104,1e3)|0,n[p+2>>0]|0&&(o[y+4>>2]=2,o[y+12>>2]=4),o[y+976>>2]=p,y|0}function MA(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;J=B,B=B+16|0,G=J,y||(o[G>>2]=w,JS(p,5,3197,G)),B=J}function Er(){return Mp(956)|0}function Zt(p){p=p|0;var y=0;return y=Ku(1e3)|0,yn(y,p),MA(o[p+976>>2]|0,1,2456),o[2276]=(o[2276]|0)+1,o[y+944>>2]=0,y|0}function yn(p,y){p=p|0,y=y|0;var w=0;Md(p|0,y|0,948)|0,fw(p+948|0,y+948|0),w=p+960|0,p=y+960|0,y=w+40|0;do o[w>>2]=o[p>>2],w=w+4|0,p=p+4|0;while((w|0)<(y|0))}function ls(p){p=p|0;var y=0,w=0,G=0,J=0;if(y=p+944|0,w=o[y>>2]|0,w|0&&(oa(w+948|0,p)|0,o[y>>2]=0),w=Fs(p)|0,w|0){y=0;do o[(Wa(p,y)|0)+944>>2]=0,y=y+1|0;while((y|0)!=(w|0))}w=p+948|0,G=o[w>>2]|0,J=p+952|0,y=o[J>>2]|0,(y|0)!=(G|0)&&(o[J>>2]=y+(~((y+-4-G|0)>>>2)<<2)),Ca(w),qne(p),o[2276]=(o[2276]|0)+-1}function oa(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0;G=o[p>>2]|0,Ge=p+4|0,w=o[Ge>>2]|0,U=w;e:do if((G|0)==(w|0))J=G,le=4;else for(p=G;;){if((o[p>>2]|0)==(y|0)){J=p,le=4;break e}if(p=p+4|0,(p|0)==(w|0)){p=0;break}}while(!1);return(le|0)==4&&((J|0)!=(w|0)?(G=J+4|0,p=U-G|0,y=p>>2,y&&(JT(J|0,G|0,p|0)|0,w=o[Ge>>2]|0),p=J+(y<<2)|0,(w|0)==(p|0)||(o[Ge>>2]=w+(~((w+-4-p|0)>>>2)<<2)),p=1):p=0),p|0}function Fs(p){return p=p|0,(o[p+952>>2]|0)-(o[p+948>>2]|0)>>2|0}function Wa(p,y){p=p|0,y=y|0;var w=0;return w=o[p+948>>2]|0,(o[p+952>>2]|0)-w>>2>>>0>y>>>0?p=o[w+(y<<2)>>2]|0:p=0,p|0}function Ca(p){p=p|0;var y=0,w=0,G=0,J=0;G=B,B=B+32|0,y=G,J=o[p>>2]|0,w=(o[p+4>>2]|0)-J|0,((o[p+8>>2]|0)-J|0)>>>0>w>>>0&&(J=w>>2,pn(y,J,J,p+8|0),q1(p,y),J2(y)),B=G}function ld(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;bt=Fs(p)|0;do if(bt|0){if((o[(Wa(p,0)|0)+944>>2]|0)==(p|0)){if(!(oa(p+948|0,y)|0))break;Md(y+400|0,8504,540)|0,o[y+944>>2]=0,di(p);break}le=o[(o[p+976>>2]|0)+12>>2]|0,Ge=p+948|0,Xe=(le|0)==0,w=0,U=0;do G=o[(o[Ge>>2]|0)+(U<<2)>>2]|0,(G|0)==(y|0)?di(p):(J=Zt(G)|0,o[(o[Ge>>2]|0)+(w<<2)>>2]=J,o[J+944>>2]=p,Xe||Ir[le&15](G,J,p,w),w=w+1|0),U=U+1|0;while((U|0)!=(bt|0));if(w>>>0>>0){Xe=p+948|0,Ge=p+952|0,le=w,w=o[Ge>>2]|0;do U=(o[Xe>>2]|0)+(le<<2)|0,G=U+4|0,J=w-G|0,y=J>>2,y&&(JT(U|0,G|0,J|0)|0,w=o[Ge>>2]|0),J=w,G=U+(y<<2)|0,(J|0)!=(G|0)&&(w=J+(~((J+-4-G|0)>>>2)<<2)|0,o[Ge>>2]=w),le=le+1|0;while((le|0)!=(bt|0))}}while(!1)}function Rp(p){p=p|0;var y=0,w=0,G=0,J=0;np(p,(Fs(p)|0)==0,2491),np(p,(o[p+944>>2]|0)==0,2545),y=p+948|0,w=o[y>>2]|0,G=p+952|0,J=o[G>>2]|0,(J|0)!=(w|0)&&(o[G>>2]=J+(~((J+-4-w|0)>>>2)<<2)),Ca(y),y=p+976|0,w=o[y>>2]|0,Md(p|0,8104,1e3)|0,n[w+2>>0]|0&&(o[p+4>>2]=2,o[p+12>>2]=4),o[y>>2]=w}function np(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;J=B,B=B+16|0,G=J,y||(o[G>>2]=w,fd(p,5,3197,G)),B=J}function HA(){return o[2276]|0}function df(){var p=0;return p=zne(20)|0,Zs((p|0)!=0,2592),o[2277]=(o[2277]|0)+1,o[p>>2]=o[239],o[p+4>>2]=o[240],o[p+8>>2]=o[241],o[p+12>>2]=o[242],o[p+16>>2]=o[243],p|0}function Zs(p,y){p=p|0,y=y|0;var w=0,G=0;G=B,B=B+16|0,w=G,p||(o[w>>2]=y,fd(0,5,3197,w)),B=G}function so(p){p=p|0,qne(p),o[2277]=(o[2277]|0)+-1}function Ea(p,y){p=p|0,y=y|0;var w=0;y?(np(p,(Fs(p)|0)==0,2629),w=1):(w=0,y=0),o[p+964>>2]=y,o[p+988>>2]=w}function Ml(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,U=G+8|0,J=G+4|0,le=G,o[J>>2]=y,np(p,(o[y+944>>2]|0)==0,2709),np(p,(o[p+964>>2]|0)==0,2763),Dr(p),y=p+948|0,o[le>>2]=(o[y>>2]|0)+(w<<2),o[U>>2]=o[le>>2],Wn(y,U,J)|0,o[(o[J>>2]|0)+944>>2]=p,di(p),B=G}function Dr(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;if(w=Fs(p)|0,w|0&&(o[(Wa(p,0)|0)+944>>2]|0)!=(p|0)){G=o[(o[p+976>>2]|0)+12>>2]|0,J=p+948|0,U=(G|0)==0,y=0;do le=o[(o[J>>2]|0)+(y<<2)>>2]|0,Ge=Zt(le)|0,o[(o[J>>2]|0)+(y<<2)>>2]=Ge,o[Ge+944>>2]=p,U||Ir[G&15](le,Ge,p,y),y=y+1|0;while((y|0)!=(w|0))}}function Wn(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0;Ds=B,B=B+64|0,rr=Ds+52|0,Ge=Ds+48|0,an=Ds+28|0,Ks=Ds+24|0,zi=Ds+20|0,Un=Ds,G=o[p>>2]|0,U=G,y=G+((o[y>>2]|0)-U>>2<<2)|0,G=p+4|0,J=o[G>>2]|0,le=p+8|0;do if(J>>>0<(o[le>>2]|0)>>>0){if((y|0)==(J|0)){o[y>>2]=o[w>>2],o[G>>2]=(o[G>>2]|0)+4;break}ey(p,y,J,y+4|0),y>>>0<=w>>>0&&(w=(o[G>>2]|0)>>>0>w>>>0?w+4|0:w),o[y>>2]=o[w>>2]}else{G=(J-U>>2)+1|0,J=ut(p)|0,J>>>0>>0&&me(p),It=o[p>>2]|0,bt=(o[le>>2]|0)-It|0,U=bt>>1,pn(Un,bt>>2>>>0>>1>>>0?U>>>0>>0?G:U:J,y-It>>2,p+8|0),It=Un+8|0,G=o[It>>2]|0,U=Un+12|0,bt=o[U>>2]|0,le=bt,Xe=G;do if((G|0)==(bt|0)){if(bt=Un+4|0,G=o[bt>>2]|0,Si=o[Un>>2]|0,J=Si,G>>>0<=Si>>>0){G=le-J>>1,G=G|0?G:1,pn(an,G,G>>>2,o[Un+16>>2]|0),o[Ks>>2]=o[bt>>2],o[zi>>2]=o[It>>2],o[Ge>>2]=o[Ks>>2],o[rr>>2]=o[zi>>2],Iw(an,Ge,rr),G=o[Un>>2]|0,o[Un>>2]=o[an>>2],o[an>>2]=G,G=an+4|0,Si=o[bt>>2]|0,o[bt>>2]=o[G>>2],o[G>>2]=Si,G=an+8|0,Si=o[It>>2]|0,o[It>>2]=o[G>>2],o[G>>2]=Si,G=an+12|0,Si=o[U>>2]|0,o[U>>2]=o[G>>2],o[G>>2]=Si,J2(an),G=o[It>>2]|0;break}U=G,le=((U-J>>2)+1|0)/-2|0,Ge=G+(le<<2)|0,J=Xe-U|0,U=J>>2,U&&(JT(Ge|0,G|0,J|0)|0,G=o[bt>>2]|0),Si=Ge+(U<<2)|0,o[It>>2]=Si,o[bt>>2]=G+(le<<2),G=Si}while(!1);o[G>>2]=o[w>>2],o[It>>2]=(o[It>>2]|0)+4,y=up(p,Un,y)|0,J2(Un)}while(!1);return B=Ds,y|0}function di(p){p=p|0;var y=0;do{if(y=p+984|0,n[y>>0]|0)break;n[y>>0]=1,I[p+504>>2]=ke(ue),p=o[p+944>>2]|0}while(p|0)}function aa(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function Bo(p){return p=p|0,o[p+944>>2]|0}function us(p){p=p|0,np(p,(o[p+964>>2]|0)!=0,2832),di(p)}function Ql(p){return p=p|0,(n[p+984>>0]|0)!=0|0}function LA(p,y){p=p|0,y=y|0,kLe(p,y,400)|0&&(Md(p|0,y|0,400)|0,di(p))}function pf(p){p=p|0;var y=As;return y=ke(I[p+44>>2]),p=El(y)|0,ke(p?ke(0):y)}function ef(p){p=p|0;var y=As;return y=ke(I[p+48>>2]),El(y)|0&&(y=n[(o[p+976>>2]|0)+2>>0]|0?ke(1):ke(0)),ke(y)}function ip(p,y){p=p|0,y=y|0,o[p+980>>2]=y}function _d(p){return p=p|0,o[p+980>>2]|0}function j1(p,y){p=p|0,y=y|0;var w=0;w=p+4|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function pw(p){return p=p|0,o[p+4>>2]|0}function YA(p,y){p=p|0,y=y|0;var w=0;w=p+8|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function Ac(p){return p=p|0,o[p+8>>2]|0}function Nm(p,y){p=p|0,y=y|0;var w=0;w=p+12|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function HS(p){return p=p|0,o[p+12>>2]|0}function jd(p,y){p=p|0,y=y|0;var w=0;w=p+16|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function dh(p){return p=p|0,o[p+16>>2]|0}function Hp(p,y){p=p|0,y=y|0;var w=0;w=p+20|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function uC(p){return p=p|0,o[p+20>>2]|0}function nE(p,y){p=p|0,y=y|0;var w=0;w=p+24|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function J_(p){return p=p|0,o[p+24>>2]|0}function q0(p,y){p=p|0,y=y|0;var w=0;w=p+28|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function XE(p){return p=p|0,o[p+28>>2]|0}function TC(p,y){p=p|0,y=y|0;var w=0;w=p+32|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function t_(p){return p=p|0,o[p+32>>2]|0}function cp(p,y){p=p|0,y=y|0;var w=0;w=p+36|0,(o[w>>2]|0)!=(y|0)&&(o[w>>2]=y,di(p))}function Mm(p){return p=p|0,o[p+36>>2]|0}function fb(p,y){p=p|0,y=ke(y);var w=0;w=p+40|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function pe(p,y){p=p|0,y=ke(y);var w=0;w=p+44|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function lm(p,y){p=p|0,y=ke(y);var w=0;w=p+48|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function Kf(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+52|0,J=p+56|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function CI(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+52|0,w=p+56|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function _I(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+52|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function H2(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+132+(y<<3)|0,y=p+132+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function iE(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+132+(y<<3)|0,y=p+132+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function se(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+132+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function O(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+60+(y<<3)|0,y=p+60+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function K(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+60+(y<<3)|0,y=p+60+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function we(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+60+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function gt(p,y){p=p|0,y=y|0;var w=0;w=p+60+(y<<3)+4|0,(o[w>>2]|0)!=3&&(I[p+60+(y<<3)>>2]=ke(ue),o[w>>2]=3,di(p))}function sr(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+204+(y<<3)|0,y=p+204+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function Yr(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=U?0:2,J=p+204+(y<<3)|0,y=p+204+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function Lr(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=y+204+(w<<3)|0,y=o[G+4>>2]|0,w=p,o[w>>2]=o[G>>2],o[w+4>>2]=y}function fi(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0,U=0;U=El(w)|0,G=(U^1)&1,J=p+276+(y<<3)|0,y=p+276+(y<<3)+4|0,U|ke(I[J>>2])==w&&(o[y>>2]|0)==(G|0)||(I[J>>2]=w,o[y>>2]=G,di(p))}function $n(p,y){return p=p|0,y=y|0,ke(I[p+276+(y<<3)>>2])}function ra(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+348|0,J=p+352|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function kc(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+348|0,w=p+352|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function Nl(p){p=p|0;var y=0;y=p+352|0,(o[y>>2]|0)!=3&&(I[p+348>>2]=ke(ue),o[y>>2]=3,di(p))}function ca(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+348|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function Bl(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+356|0,J=p+360|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function $g(p,y){p=p|0,y=ke(y);var w=0,G=0;G=p+356|0,w=p+360|0,ke(I[G>>2])==y&&(o[w>>2]|0)==2||(I[G>>2]=y,G=El(y)|0,o[w>>2]=G?3:2,di(p))}function SA(p){p=p|0;var y=0;y=p+360|0,(o[y>>2]|0)!=3&&(I[p+356>>2]=ke(ue),o[y>>2]=3,di(p))}function lI(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+356|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function lp(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+364|0,J=p+368|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Ib(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+364|0,J=p+368|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Na(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+364|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function wd(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+372|0,J=p+376|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function z1(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+372|0,J=p+376|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function T_(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+372|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function RC(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+380|0,J=p+384|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function Hm(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+380|0,J=p+384|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function YS(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+380|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function Fg(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=(U^1)&1,G=p+388|0,J=p+392|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function hb(p,y){p=p|0,y=ke(y);var w=0,G=0,J=0,U=0;U=El(y)|0,w=U?0:2,G=p+388|0,J=p+392|0,U|ke(I[G>>2])==y&&(o[J>>2]|0)==(w|0)||(I[G>>2]=y,o[J>>2]=w,di(p))}function gC(p,y){p=p|0,y=y|0;var w=0,G=0;G=y+388|0,w=o[G+4>>2]|0,y=p,o[y>>2]=o[G>>2],o[y+4>>2]=w}function NC(p,y){p=p|0,y=ke(y);var w=0;w=p+396|0,ke(I[w>>2])!=y&&(I[w>>2]=y,di(p))}function Y2(p){return p=p|0,ke(I[p+396>>2])}function U_(p){return p=p|0,ke(I[p+400>>2])}function DC(p){return p=p|0,ke(I[p+404>>2])}function kC(p){return p=p|0,ke(I[p+408>>2])}function qI(p){return p=p|0,ke(I[p+412>>2])}function ph(p){return p=p|0,ke(I[p+416>>2])}function vA(p){return p=p|0,ke(I[p+420>>2])}function Td(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+424+(y<<2)>>2])}function Mc(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+448+(y<<2)>>2])}function Pf(p,y){switch(p=p|0,y=y|0,np(p,(y|0)<6,2918),y|0){case 0:{y=(o[p+496>>2]|0)==2?5:4;break}case 2:{y=(o[p+496>>2]|0)==2?4:5;break}default:}return ke(I[p+472+(y<<2)>>2])}function sE(p,y){p=p|0,y=y|0;var w=0,G=As;return w=o[p+4>>2]|0,(w|0)==(o[y+4>>2]|0)?w?(G=ke(I[p>>2]),p=ke(je(ke(G-ke(I[y>>2]))))>2]=0,o[G+4>>2]=0,o[G+8>>2]=0,Qh(G|0,p|0,y|0,0),fd(p,3,(n[G+11>>0]|0)<0?o[G>>2]|0:G,w),Gw(G),B=w}function um(p,y,w,G){p=ke(p),y=ke(y),w=w|0,G=G|0;var J=As;p=ke(p*y),J=ke(Az(p,ke(1)));do if(eA(J,ke(0))|0)p=ke(p-J);else{if(p=ke(p-J),eA(J,ke(1))|0){p=ke(p+ke(1));break}if(w){p=ke(p+ke(1));break}G||(J>ke(.5)?J=ke(1):(G=eA(J,ke(.5))|0,J=ke(G?1:0)),p=ke(p+J))}while(!1);return ke(p/y)}function gm(p,y,w,G,J,U,le,Ge,Xe,bt,It,rr,an){p=p|0,y=ke(y),w=w|0,G=ke(G),J=J|0,U=ke(U),le=le|0,Ge=ke(Ge),Xe=ke(Xe),bt=ke(bt),It=ke(It),rr=ke(rr),an=an|0;var Ks=0,zi=As,Un=As,Ds=As,Si=As,So=As,ss=As;return Xe>2]),zi!=ke(0))?(Ds=ke(um(y,zi,0,0)),Si=ke(um(G,zi,0,0)),Un=ke(um(U,zi,0,0)),zi=ke(um(Ge,zi,0,0))):(Un=U,Ds=y,zi=Ge,Si=G),(J|0)==(p|0)?Ks=eA(Un,Ds)|0:Ks=0,(le|0)==(w|0)?an=eA(zi,Si)|0:an=0,!Ks&&(So=ke(y-It),!(cs(p,So,Xe)|0))&&!(na(p,So,J,Xe)|0)?Ks=ko(p,So,J,U,Xe)|0:Ks=1,!an&&(ss=ke(G-rr),!(cs(w,ss,bt)|0))&&!(na(w,ss,le,bt)|0)?an=ko(w,ss,le,Ge,bt)|0:an=1,an=Ks&an),an|0}function cs(p,y,w){return p=p|0,y=ke(y),w=ke(w),(p|0)==1?p=eA(y,w)|0:p=0,p|0}function na(p,y,w,G){return p=p|0,y=ke(y),w=w|0,G=ke(G),(p|0)==2&(w|0)==0?y>=G?p=1:p=eA(y,G)|0:p=0,p|0}function ko(p,y,w,G,J){return p=p|0,y=ke(y),w=w|0,G=ke(G),J=ke(J),(p|0)==2&(w|0)==2&G>y?J<=y?p=1:p=eA(y,J)|0:p=0,p|0}function ki(p,y,w,G,J,U,le,Ge,Xe,bt,It){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=U|0,le=ke(le),Ge=ke(Ge),Xe=Xe|0,bt=bt|0,It=It|0;var rr=0,an=0,Ks=0,zi=0,Un=As,Ds=As,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=As,w0=As,bE=As,nh=0,x_=0;wg=B,B=B+160|0,Tc=wg+152|0,fl=wg+120|0,uu=wg+104|0,ss=wg+72|0,zi=wg+56|0,hl=wg+8|0,So=wg,pi=(o[2279]|0)+1|0,o[2279]=pi,Bg=p+984|0,n[Bg>>0]|0&&(o[p+512>>2]|0)!=(o[2278]|0)?Si=4:(o[p+516>>2]|0)==(G|0)?Dg=0:Si=4,(Si|0)==4&&(o[p+520>>2]=0,o[p+924>>2]=-1,o[p+928>>2]=-1,I[p+932>>2]=ke(-1),I[p+936>>2]=ke(-1),Dg=1);e:do if(o[p+964>>2]|0)if(Un=ke(Kl(p,2,le)),Ds=ke(Kl(p,0,le)),rr=p+916|0,bE=ke(I[rr>>2]),w0=ke(I[p+920>>2]),em=ke(I[p+932>>2]),gm(J,y,U,w,o[p+924>>2]|0,bE,o[p+928>>2]|0,w0,em,ke(I[p+936>>2]),Un,Ds,It)|0)Si=22;else if(Ks=o[p+520>>2]|0,!Ks)Si=21;else for(an=0;;){if(rr=p+524+(an*24|0)|0,em=ke(I[rr>>2]),w0=ke(I[p+524+(an*24|0)+4>>2]),bE=ke(I[p+524+(an*24|0)+16>>2]),gm(J,y,U,w,o[p+524+(an*24|0)+8>>2]|0,em,o[p+524+(an*24|0)+12>>2]|0,w0,bE,ke(I[p+524+(an*24|0)+20>>2]),Un,Ds,It)|0){Si=22;break e}if(an=an+1|0,an>>>0>=Ks>>>0){Si=21;break}}else{if(Xe){if(rr=p+916|0,!(eA(ke(I[rr>>2]),y)|0)){Si=21;break}if(!(eA(ke(I[p+920>>2]),w)|0)){Si=21;break}if((o[p+924>>2]|0)!=(J|0)){Si=21;break}rr=(o[p+928>>2]|0)==(U|0)?rr:0,Si=22;break}if(Ks=o[p+520>>2]|0,!Ks)Si=21;else for(an=0;;){if(rr=p+524+(an*24|0)|0,eA(ke(I[rr>>2]),y)|0&&eA(ke(I[p+524+(an*24|0)+4>>2]),w)|0&&(o[p+524+(an*24|0)+8>>2]|0)==(J|0)&&(o[p+524+(an*24|0)+12>>2]|0)==(U|0)){Si=22;break e}if(an=an+1|0,an>>>0>=Ks>>>0){Si=21;break}}}while(!1);do if((Si|0)==21)n[11697]|0?(rr=0,Si=28):(rr=0,Si=31);else if((Si|0)==22){if(an=(n[11697]|0)!=0,!((rr|0)!=0&(Dg^1)))if(an){Si=28;break}else{Si=31;break}zi=rr+16|0,o[p+908>>2]=o[zi>>2],Ks=rr+20|0,o[p+912>>2]=o[Ks>>2],(n[11698]|0)==0|an^1||(o[So>>2]=jf(pi)|0,o[So+4>>2]=pi,fd(p,4,2972,So),an=o[p+972>>2]|0,an|0&&DF[an&127](p),J=Ld(J,Xe)|0,U=Ld(U,Xe)|0,x_=+ke(I[zi>>2]),nh=+ke(I[Ks>>2]),o[hl>>2]=J,o[hl+4>>2]=U,C[hl+8>>3]=+y,C[hl+16>>3]=+w,C[hl+24>>3]=x_,C[hl+32>>3]=nh,o[hl+40>>2]=bt,fd(p,4,2989,hl))}while(!1);return(Si|0)==28&&(an=jf(pi)|0,o[zi>>2]=an,o[zi+4>>2]=pi,o[zi+8>>2]=Dg?3047:11699,fd(p,4,3038,zi),an=o[p+972>>2]|0,an|0&&DF[an&127](p),hl=Ld(J,Xe)|0,Si=Ld(U,Xe)|0,o[ss>>2]=hl,o[ss+4>>2]=Si,C[ss+8>>3]=+y,C[ss+16>>3]=+w,o[ss+24>>2]=bt,fd(p,4,3049,ss),Si=31),(Si|0)==31&&(AC(p,y,w,G,J,U,le,Ge,Xe,It),n[11697]|0&&(an=o[2279]|0,hl=jf(an)|0,o[uu>>2]=hl,o[uu+4>>2]=an,o[uu+8>>2]=Dg?3047:11699,fd(p,4,3083,uu),an=o[p+972>>2]|0,an|0&&DF[an&127](p),hl=Ld(J,Xe)|0,uu=Ld(U,Xe)|0,nh=+ke(I[p+908>>2]),x_=+ke(I[p+912>>2]),o[fl>>2]=hl,o[fl+4>>2]=uu,C[fl+8>>3]=nh,C[fl+16>>3]=x_,o[fl+24>>2]=bt,fd(p,4,3092,fl)),o[p+516>>2]=G,rr||(an=p+520|0,rr=o[an>>2]|0,(rr|0)==16&&(n[11697]|0&&fd(p,4,3124,Tc),o[an>>2]=0,rr=0),Xe?rr=p+916|0:(o[an>>2]=rr+1,rr=p+524+(rr*24|0)|0),I[rr>>2]=y,I[rr+4>>2]=w,o[rr+8>>2]=J,o[rr+12>>2]=U,o[rr+16>>2]=o[p+908>>2],o[rr+20>>2]=o[p+912>>2],rr=0)),Xe&&(o[p+416>>2]=o[p+908>>2],o[p+420>>2]=o[p+912>>2],n[p+985>>0]=1,n[Bg>>0]=0),o[2279]=(o[2279]|0)+-1,o[p+512>>2]=o[2278],B=wg,Dg|(rr|0)==0|0}function Kl(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(ar(p,y,w)),ke(G+ke(Jr(p,y,w)))}function fd(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=B,B=B+16|0,J=U,o[J>>2]=G,p?G=o[p+976>>2]|0:G=0,By(G,p,y,w,J),B=U}function jf(p){return p=p|0,(p>>>0>60?3201:3201+(60-p)|0)|0}function Ld(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+32|0,w=J+12|0,G=J,o[w>>2]=o[254],o[w+4>>2]=o[255],o[w+8>>2]=o[256],o[G>>2]=o[257],o[G+4>>2]=o[258],o[G+8>>2]=o[259],(p|0)>2?p=11699:p=o[(y?G:w)+(p<<2)>>2]|0,B=J,p|0}function AC(p,y,w,G,J,U,le,Ge,Xe,bt){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=U|0,le=ke(le),Ge=ke(Ge),Xe=Xe|0,bt=bt|0;var It=0,rr=0,an=0,Ks=0,zi=As,Un=As,Ds=As,Si=As,So=As,ss=As,pi=As,hl=0,uu=0,fl=0,Tc=As,Bg=As,Dg=0,wg=As,em=0,w0=0,bE=0,nh=0,x_=0,$D=0,Fw=0,mh=0,kF=0,Zw=0,KT=0,jL=0,zL=0,aS=0,mf=0,d2=0,jT=0,fv=0,Fx=As,xB=As,Iv=As,GB=As,EE=As,Um=0,mN=0,zT=0,Km=0,p2=0,hg=As,OI=As,og=As,jo=As,Yg=As,Zl=As,f2=0,MI=As,xF=As,gI=As,UA=As,lA=As,GF=As,CN=0,qT=0,I1=As,T0=As,ek=0,fo=0,Lw=0,FF=0,Hd=As,of=0,vd=0,yp=0,l_=0,Yd=0,Qg=0,hv=0,Du=As,F3=0,ly=0;hv=B,B=B+16|0,Um=hv+12|0,mN=hv+8|0,zT=hv+4|0,Km=hv,np(p,(J|0)==0|(El(y)|0)^1,3326),np(p,(U|0)==0|(El(w)|0)^1,3406),vd=Qo(p,G)|0,o[p+496>>2]=vd,Yd=vg(2,vd)|0,Qg=vg(0,vd)|0,I[p+440>>2]=ke(ar(p,Yd,le)),I[p+444>>2]=ke(Jr(p,Yd,le)),I[p+428>>2]=ke(ar(p,Qg,le)),I[p+436>>2]=ke(Jr(p,Qg,le)),I[p+464>>2]=ke(Ng(p,Yd)),I[p+468>>2]=ke(Rf(p,Yd)),I[p+452>>2]=ke(Ng(p,Qg)),I[p+460>>2]=ke(Rf(p,Qg)),I[p+488>>2]=ke(uI(p,Yd,le)),I[p+492>>2]=ke(Th(p,Yd,le)),I[p+476>>2]=ke(uI(p,Qg,le)),I[p+484>>2]=ke(Th(p,Qg,le));do if(o[p+964>>2]|0)oE(p,y,w,J,U,le,Ge);else{if(yp=p+948|0,l_=(o[p+952>>2]|0)-(o[yp>>2]|0)>>2,!l_){TT(p,y,w,J,U,le,Ge);break}if(!Xe&&sB(p,y,w,J,U,le,Ge)|0)break;Dr(p),d2=p+508|0,n[d2>>0]=0,Yd=vg(o[p+4>>2]|0,vd)|0,Qg=RT(Yd,vd)|0,of=Gn(Yd)|0,jT=o[p+8>>2]|0,fo=p+28|0,fv=(o[fo>>2]|0)!=0,lA=of?le:Ge,I1=of?Ge:le,Fx=ke(wy(p,Yd,le)),xB=ke(jE(p,Yd,le)),zi=ke(wy(p,Qg,le)),GF=ke(j_(p,Yd,le)),T0=ke(j_(p,Qg,le)),fl=of?J:U,ek=of?U:J,Hd=of?GF:T0,So=of?T0:GF,UA=ke(Kl(p,2,le)),Si=ke(Kl(p,0,le)),Un=ke(ke(od(p+364|0,le))-Hd),Ds=ke(ke(od(p+380|0,le))-Hd),ss=ke(ke(od(p+372|0,Ge))-So),pi=ke(ke(od(p+388|0,Ge))-So),Iv=of?Un:ss,GB=of?Ds:pi,UA=ke(y-UA),y=ke(UA-Hd),El(y)|0?Hd=y:Hd=ke(zs(ke(fU(y,Ds)),Un)),xF=ke(w-Si),y=ke(xF-So),El(y)|0?gI=y:gI=ke(zs(ke(fU(y,pi)),ss)),Un=of?Hd:gI,MI=of?gI:Hd;e:do if((fl|0)==1)for(G=0,rr=0;;){if(It=Wa(p,rr)|0,!G)ke(tf(It))>ke(0)&&ke(Ty(It))>ke(0)?G=It:G=0;else if(NT(It)|0){Ks=0;break e}if(rr=rr+1|0,rr>>>0>=l_>>>0){Ks=G;break}}else Ks=0;while(!1);hl=Ks+500|0,uu=Ks+504|0,G=0,It=0,y=ke(0),an=0;do{if(rr=o[(o[yp>>2]|0)+(an<<2)>>2]|0,(o[rr+36>>2]|0)==1)US(rr),n[rr+985>>0]=1,n[rr+984>>0]=0;else{vy(rr),Xe&&UE(rr,Qo(rr,vd)|0,Un,MI,Hd);do if((o[rr+24>>2]|0)!=1)if((rr|0)==(Ks|0)){o[hl>>2]=o[2278],I[uu>>2]=ke(0);break}else{$I(p,rr,Hd,J,gI,Hd,gI,U,vd,bt);break}else It|0&&(o[It+960>>2]=rr),o[rr+960>>2]=0,It=rr,G=G|0?G:rr;while(!1);Zl=ke(I[rr+504>>2]),y=ke(y+ke(Zl+ke(Kl(rr,Yd,Hd))))}an=an+1|0}while((an|0)!=(l_|0));for(bE=y>Un,f2=fv&((fl|0)==2&bE)?1:fl,em=(ek|0)==1,x_=em&(Xe^1),$D=(f2|0)==1,Fw=(f2|0)==2,mh=976+(Yd<<2)|0,kF=(ek|2|0)==2,aS=em&(fv^1),Zw=1040+(Qg<<2)|0,KT=1040+(Yd<<2)|0,jL=976+(Qg<<2)|0,zL=(ek|0)!=1,bE=fv&((fl|0)!=0&bE),w0=p+976|0,em=em^1,y=Un,Dg=0,nh=0,Zl=ke(0),EE=ke(0);;){e:do if(Dg>>>0>>0)for(uu=o[yp>>2]|0,an=0,pi=ke(0),ss=ke(0),Ds=ke(0),Un=ke(0),rr=0,It=0,Ks=Dg;;){if(hl=o[uu+(Ks<<2)>>2]|0,(o[hl+36>>2]|0)!=1&&(o[hl+940>>2]=nh,(o[hl+24>>2]|0)!=1)){if(Si=ke(Kl(hl,Yd,Hd)),mf=o[mh>>2]|0,w=ke(od(hl+380+(mf<<3)|0,lA)),So=ke(I[hl+504>>2]),w=ke(fU(w,So)),w=ke(zs(ke(od(hl+364+(mf<<3)|0,lA)),w)),fv&(an|0)!=0&ke(Si+ke(ss+w))>y){U=an,Si=pi,fl=Ks;break e}Si=ke(Si+w),w=ke(ss+Si),Si=ke(pi+Si),NT(hl)|0&&(Ds=ke(Ds+ke(tf(hl))),Un=ke(Un-ke(So*ke(Ty(hl))))),It|0&&(o[It+960>>2]=hl),o[hl+960>>2]=0,an=an+1|0,It=hl,rr=rr|0?rr:hl}else Si=pi,w=ss;if(Ks=Ks+1|0,Ks>>>0>>0)pi=Si,ss=w;else{U=an,fl=Ks;break}}else U=0,Si=ke(0),Ds=ke(0),Un=ke(0),rr=0,fl=Dg;while(!1);mf=Ds>ke(0)&Dske(0)&UnGB&((El(GB)|0)^1))y=GB,mf=51;else if(n[(o[w0>>2]|0)+3>>0]|0)mf=51;else{if(Tc!=ke(0)&&ke(tf(p))!=ke(0)){mf=53;break}y=Si,mf=53}while(!1);if((mf|0)==51&&(mf=0,El(y)|0?mf=53:(Bg=ke(y-Si),wg=y)),(mf|0)==53&&(mf=0,Si>2]|0,Ks=Bgke(0),ss=ke(Bg/Tc),Ds=ke(0),Si=ke(0),y=ke(0),It=rr;do w=ke(od(It+380+(an<<3)|0,lA)),Un=ke(od(It+364+(an<<3)|0,lA)),Un=ke(fU(w,ke(zs(Un,ke(I[It+504>>2]))))),Ks?(w=ke(Un*ke(Ty(It))),w!=ke(-0)&&(Du=ke(Un-ke(So*w)),hg=ke(BA(It,Yd,Du,wg,Hd)),Du!=hg)&&(Ds=ke(Ds-ke(hg-Un)),y=ke(y+w))):hl&&(OI=ke(tf(It)),OI!=ke(0))&&(Du=ke(Un+ke(ss*OI)),og=ke(BA(It,Yd,Du,wg,Hd)),Du!=og)&&(Ds=ke(Ds-ke(og-Un)),Si=ke(Si-OI)),It=o[It+960>>2]|0;while(It|0);if(y=ke(pi+y),Un=ke(Bg+Ds),p2)y=ke(0);else{So=ke(Tc+Si),Ks=o[mh>>2]|0,hl=Unke(0),So=ke(Un/So),y=ke(0);do{Du=ke(od(rr+380+(Ks<<3)|0,lA)),Ds=ke(od(rr+364+(Ks<<3)|0,lA)),Ds=ke(fU(Du,ke(zs(Ds,ke(I[rr+504>>2]))))),hl?(Du=ke(Ds*ke(Ty(rr))),Un=ke(-Du),Du!=ke(-0)?(Du=ke(ss*Un),Un=ke(BA(rr,Yd,ke(Ds+(uu?Un:Du)),wg,Hd))):Un=Ds):an&&(jo=ke(tf(rr)),jo!=ke(0))?Un=ke(BA(rr,Yd,ke(Ds+ke(So*jo)),wg,Hd)):Un=Ds,y=ke(y-ke(Un-Ds)),Si=ke(Kl(rr,Yd,Hd)),w=ke(Kl(rr,Qg,Hd)),Un=ke(Un+Si),I[mN>>2]=Un,o[Km>>2]=1,Ds=ke(I[rr+396>>2]);e:do if(El(Ds)|0){It=El(MI)|0;do if(!It){if(bE|(K_(rr,Qg,MI)|0|em)||($A(p,rr)|0)!=4||(o[(Qm(rr,Qg)|0)+4>>2]|0)==3||(o[(zf(rr,Qg)|0)+4>>2]|0)==3)break;I[Um>>2]=MI,o[zT>>2]=1;break e}while(!1);if(K_(rr,Qg,MI)|0){It=o[rr+992+(o[jL>>2]<<2)>>2]|0,Du=ke(w+ke(od(It,MI))),I[Um>>2]=Du,It=zL&(o[It+4>>2]|0)==2,o[zT>>2]=((El(Du)|0|It)^1)&1;break}else{I[Um>>2]=MI,o[zT>>2]=It?0:2;break}}else Du=ke(Un-Si),Tc=ke(Du/Ds),Du=ke(Ds*Du),o[zT>>2]=1,I[Um>>2]=ke(w+(of?Tc:Du));while(!1);mb(rr,Yd,wg,Hd,Km,mN),mb(rr,Qg,MI,Hd,zT,Um);do if(!(K_(rr,Qg,MI)|0)&&($A(p,rr)|0)==4){if((o[(Qm(rr,Qg)|0)+4>>2]|0)==3){It=0;break}It=(o[(zf(rr,Qg)|0)+4>>2]|0)!=3}else It=0;while(!1);Du=ke(I[mN>>2]),Tc=ke(I[Um>>2]),F3=o[Km>>2]|0,ly=o[zT>>2]|0,ki(rr,of?Du:Tc,of?Tc:Du,vd,of?F3:ly,of?ly:F3,Hd,gI,Xe&(It^1),3488,bt)|0,n[d2>>0]=n[d2>>0]|n[rr+508>>0],rr=o[rr+960>>2]|0}while(rr|0)}}else y=ke(0);if(y=ke(Bg+y),ly=y>0]=ly|l[d2>>0],Fw&y>ke(0)?(It=o[mh>>2]|0,o[p+364+(It<<3)+4>>2]|0&&(Yg=ke(od(p+364+(It<<3)|0,lA)),Yg>=ke(0))?Un=ke(zs(ke(0),ke(Yg-ke(wg-y)))):Un=ke(0)):Un=y,hl=Dg>>>0>>0,hl){Ks=o[yp>>2]|0,an=Dg,It=0;do rr=o[Ks+(an<<2)>>2]|0,o[rr+24>>2]|0||(It=((o[(Qm(rr,Yd)|0)+4>>2]|0)==3&1)+It|0,It=It+((o[(zf(rr,Yd)|0)+4>>2]|0)==3&1)|0),an=an+1|0;while((an|0)!=(fl|0));It?(Si=ke(0),w=ke(0)):mf=101}else mf=101;e:do if((mf|0)==101)switch(mf=0,jT|0){case 1:{It=0,Si=ke(Un*ke(.5)),w=ke(0);break e}case 2:{It=0,Si=Un,w=ke(0);break e}case 3:{if(U>>>0<=1){It=0,Si=ke(0),w=ke(0);break e}w=ke((U+-1|0)>>>0),It=0,Si=ke(0),w=ke(ke(zs(Un,ke(0)))/w);break e}case 5:{w=ke(Un/ke((U+1|0)>>>0)),It=0,Si=w;break e}case 4:{w=ke(Un/ke(U>>>0)),It=0,Si=ke(w*ke(.5));break e}default:{It=0,Si=ke(0),w=ke(0);break e}}while(!1);if(y=ke(Fx+Si),hl){Ds=ke(Un/ke(It|0)),an=o[yp>>2]|0,rr=Dg,Un=ke(0);do{It=o[an+(rr<<2)>>2]|0;e:do if((o[It+36>>2]|0)!=1){switch(o[It+24>>2]|0){case 1:{if(R_(It,Yd)|0){if(!Xe)break e;Du=ke(Cb(It,Yd,wg)),Du=ke(Du+ke(Ng(p,Yd))),Du=ke(Du+ke(ar(It,Yd,Hd))),I[It+400+(o[KT>>2]<<2)>>2]=Du;break e}break}case 0:if(ly=(o[(Qm(It,Yd)|0)+4>>2]|0)==3,Du=ke(Ds+y),y=ly?Du:y,Xe&&(ly=It+400+(o[KT>>2]<<2)|0,I[ly>>2]=ke(y+ke(I[ly>>2]))),ly=(o[(zf(It,Yd)|0)+4>>2]|0)==3,Du=ke(Ds+y),y=ly?Du:y,x_){Du=ke(w+ke(Kl(It,Yd,Hd))),Un=MI,y=ke(y+ke(Du+ke(I[It+504>>2])));break e}else{y=ke(y+ke(w+ke(Ry(It,Yd,Hd)))),Un=ke(zs(Un,ke(Ry(It,Qg,Hd))));break e}default:}Xe&&(Du=ke(Si+ke(Ng(p,Yd))),ly=It+400+(o[KT>>2]<<2)|0,I[ly>>2]=ke(Du+ke(I[ly>>2])))}while(!1);rr=rr+1|0}while((rr|0)!=(fl|0))}else Un=ke(0);if(w=ke(xB+y),kF?Si=ke(ke(BA(p,Qg,ke(T0+Un),I1,le))-T0):Si=MI,Ds=ke(ke(BA(p,Qg,ke(T0+(aS?MI:Un)),I1,le))-T0),hl&Xe){rr=Dg;do{an=o[(o[yp>>2]|0)+(rr<<2)>>2]|0;do if((o[an+36>>2]|0)!=1){if((o[an+24>>2]|0)==1){if(R_(an,Qg)|0){if(Du=ke(Cb(an,Qg,MI)),Du=ke(Du+ke(Ng(p,Qg))),Du=ke(Du+ke(ar(an,Qg,Hd))),It=o[Zw>>2]|0,I[an+400+(It<<2)>>2]=Du,!(El(Du)|0))break}else It=o[Zw>>2]|0;Du=ke(Ng(p,Qg)),I[an+400+(It<<2)>>2]=ke(Du+ke(ar(an,Qg,Hd)));break}It=$A(p,an)|0;do if((It|0)==4){if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){mf=139;break}if((o[(zf(an,Qg)|0)+4>>2]|0)==3){mf=139;break}if(K_(an,Qg,MI)|0){y=zi;break}F3=o[an+908+(o[mh>>2]<<2)>>2]|0,o[Um>>2]=F3,y=ke(I[an+396>>2]),ly=El(y)|0,Un=(o[E>>2]=F3,ke(I[E>>2])),ly?y=Ds:(Bg=ke(Kl(an,Qg,Hd)),Du=ke(Un/y),y=ke(y*Un),y=ke(Bg+(of?Du:y))),I[mN>>2]=y,I[Um>>2]=ke(ke(Kl(an,Yd,Hd))+Un),o[zT>>2]=1,o[Km>>2]=1,mb(an,Yd,wg,Hd,zT,Um),mb(an,Qg,MI,Hd,Km,mN),y=ke(I[Um>>2]),Bg=ke(I[mN>>2]),Du=of?y:Bg,y=of?Bg:y,ly=((El(Du)|0)^1)&1,ki(an,Du,y,vd,ly,((El(y)|0)^1)&1,Hd,gI,1,3493,bt)|0,y=zi}else mf=139;while(!1);e:do if((mf|0)==139){mf=0,y=ke(Si-ke(Ry(an,Qg,Hd)));do if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){if((o[(zf(an,Qg)|0)+4>>2]|0)!=3)break;y=ke(zi+ke(zs(ke(0),ke(y*ke(.5)))));break e}while(!1);if((o[(zf(an,Qg)|0)+4>>2]|0)==3){y=zi;break}if((o[(Qm(an,Qg)|0)+4>>2]|0)==3){y=ke(zi+ke(zs(ke(0),y)));break}switch(It|0){case 1:{y=zi;break e}case 2:{y=ke(zi+ke(y*ke(.5)));break e}default:{y=ke(zi+y);break e}}}while(!1);Du=ke(Zl+y),ly=an+400+(o[Zw>>2]<<2)|0,I[ly>>2]=ke(Du+ke(I[ly>>2]))}while(!1);rr=rr+1|0}while((rr|0)!=(fl|0))}if(Zl=ke(Zl+Ds),EE=ke(zs(EE,w)),U=nh+1|0,fl>>>0>=l_>>>0)break;y=wg,Dg=fl,nh=U}do if(Xe){if(It=U>>>0>1,!It&&!(KS(p)|0))break;if(!(El(MI)|0)){y=ke(MI-Zl);e:do switch(o[p+12>>2]|0){case 3:{zi=ke(zi+y),ss=ke(0);break}case 2:{zi=ke(zi+ke(y*ke(.5))),ss=ke(0);break}case 4:{MI>Zl?ss=ke(y/ke(U>>>0)):ss=ke(0);break}case 7:if(MI>Zl){zi=ke(zi+ke(y/ke(U<<1>>>0))),ss=ke(y/ke(U>>>0)),ss=It?ss:ke(0);break e}else{zi=ke(zi+ke(y*ke(.5))),ss=ke(0);break e}case 6:{ss=ke(y/ke(nh>>>0)),ss=MI>Zl&It?ss:ke(0);break}default:ss=ke(0)}while(!1);if(U|0)for(hl=1040+(Qg<<2)|0,uu=976+(Qg<<2)|0,Ks=0,rr=0;;){e:do if(rr>>>0>>0)for(Un=ke(0),Ds=ke(0),y=ke(0),an=rr;;){It=o[(o[yp>>2]|0)+(an<<2)>>2]|0;do if((o[It+36>>2]|0)!=1&&!(o[It+24>>2]|0)){if((o[It+940>>2]|0)!=(Ks|0))break e;if(_b(It,Qg)|0&&(Du=ke(I[It+908+(o[uu>>2]<<2)>>2]),y=ke(zs(y,ke(Du+ke(Kl(It,Qg,Hd)))))),($A(p,It)|0)!=5)break;Yg=ke(z_(It)),Yg=ke(Yg+ke(ar(It,0,Hd))),Du=ke(I[It+912>>2]),Du=ke(ke(Du+ke(Kl(It,0,Hd)))-Yg),Yg=ke(zs(Ds,Yg)),Du=ke(zs(Un,Du)),Un=Du,Ds=Yg,y=ke(zs(y,ke(Yg+Du)))}while(!1);if(It=an+1|0,It>>>0>>0)an=It;else{an=It;break}}else Ds=ke(0),y=ke(0),an=rr;while(!1);if(So=ke(ss+y),w=zi,zi=ke(zi+So),rr>>>0>>0){Si=ke(w+Ds),It=rr;do{rr=o[(o[yp>>2]|0)+(It<<2)>>2]|0;e:do if((o[rr+36>>2]|0)!=1&&!(o[rr+24>>2]|0))switch($A(p,rr)|0){case 1:{Du=ke(w+ke(ar(rr,Qg,Hd))),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 3:{Du=ke(ke(zi-ke(Jr(rr,Qg,Hd)))-ke(I[rr+908+(o[uu>>2]<<2)>>2])),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 2:{Du=ke(w+ke(ke(So-ke(I[rr+908+(o[uu>>2]<<2)>>2]))*ke(.5))),I[rr+400+(o[hl>>2]<<2)>>2]=Du;break e}case 4:{if(Du=ke(w+ke(ar(rr,Qg,Hd))),I[rr+400+(o[hl>>2]<<2)>>2]=Du,K_(rr,Qg,MI)|0||(of?(Un=ke(I[rr+908>>2]),y=ke(Un+ke(Kl(rr,Yd,Hd))),Ds=So):(Ds=ke(I[rr+912>>2]),Ds=ke(Ds+ke(Kl(rr,Qg,Hd))),y=So,Un=ke(I[rr+908>>2])),eA(y,Un)|0&&eA(Ds,ke(I[rr+912>>2]))|0))break e;ki(rr,y,Ds,vd,1,1,Hd,gI,1,3501,bt)|0;break e}case 5:{I[rr+404>>2]=ke(ke(Si-ke(z_(rr)))+ke(Cb(rr,0,MI)));break e}default:break e}while(!1);It=It+1|0}while((It|0)!=(an|0))}if(Ks=Ks+1|0,(Ks|0)==(U|0))break;rr=an}}}while(!1);if(I[p+908>>2]=ke(BA(p,2,UA,le,le)),I[p+912>>2]=ke(BA(p,0,xF,Ge,le)),f2|0&&(CN=o[p+32>>2]|0,qT=(f2|0)==2,!(qT&(CN|0)!=2))?qT&(CN|0)==2&&(y=ke(GF+wg),y=ke(zs(ke(fU(y,ke(zE(p,Yd,EE,lA)))),GF)),mf=198):(y=ke(BA(p,Yd,EE,lA,le)),mf=198),(mf|0)==198&&(I[p+908+(o[976+(Yd<<2)>>2]<<2)>>2]=y),ek|0&&(Lw=o[p+32>>2]|0,FF=(ek|0)==2,!(FF&(Lw|0)!=2))?FF&(Lw|0)==2&&(y=ke(T0+MI),y=ke(zs(ke(fU(y,ke(zE(p,Qg,ke(T0+Zl),I1)))),T0)),mf=204):(y=ke(BA(p,Qg,ke(T0+Zl),I1,le)),mf=204),(mf|0)==204&&(I[p+908+(o[976+(Qg<<2)>>2]<<2)>>2]=y),Xe){if((o[fo>>2]|0)==2){rr=976+(Qg<<2)|0,an=1040+(Qg<<2)|0,It=0;do Ks=Wa(p,It)|0,o[Ks+24>>2]|0||(F3=o[rr>>2]|0,Du=ke(I[p+908+(F3<<2)>>2]),ly=Ks+400+(o[an>>2]<<2)|0,Du=ke(Du-ke(I[ly>>2])),I[ly>>2]=ke(Du-ke(I[Ks+908+(F3<<2)>>2]))),It=It+1|0;while((It|0)!=(l_|0))}if(G|0){It=of?f2:J;do oB(p,G,Hd,It,gI,vd,bt),G=o[G+960>>2]|0;while(G|0)}if(It=(Yd|2|0)==3,rr=(Qg|2|0)==3,It|rr){G=0;do an=o[(o[yp>>2]|0)+(G<<2)>>2]|0,(o[an+36>>2]|0)!=1&&(It&&DT(p,an,Yd),rr&&DT(p,an,Qg)),G=G+1|0;while((G|0)!=(l_|0))}}}while(!1);B=hv}function JE(p,y){p=p|0,y=ke(y);var w=0;MA(p,y>=ke(0),3147),w=y==ke(0),I[p+4>>2]=w?ke(0):y}function Ym(p,y,w,G){p=p|0,y=ke(y),w=ke(w),G=G|0;var J=As,U=As,le=0,Ge=0,Xe=0;o[2278]=(o[2278]|0)+1,vy(p),K_(p,2,y)|0?(J=ke(od(o[p+992>>2]|0,y)),Xe=1,J=ke(J+ke(Kl(p,2,y)))):(J=ke(od(p+380|0,y)),J>=ke(0)?Xe=2:(Xe=((El(y)|0)^1)&1,J=y)),K_(p,0,w)|0?(U=ke(od(o[p+996>>2]|0,w)),Ge=1,U=ke(U+ke(Kl(p,0,y)))):(U=ke(od(p+388|0,w)),U>=ke(0)?Ge=2:(Ge=((El(w)|0)^1)&1,U=w)),le=p+976|0,ki(p,J,U,G,Xe,Ge,y,w,1,3189,o[le>>2]|0)|0&&(UE(p,o[p+496>>2]|0,y,w,y),KE(p,ke(I[(o[le>>2]|0)+4>>2]),ke(0),ke(0)),n[11696]|0)&&QS(p,7)}function vy(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;Ge=B,B=B+32|0,le=Ge+24|0,U=Ge+16|0,G=Ge+8|0,J=Ge,w=0;do y=p+380+(w<<3)|0,o[p+380+(w<<3)+4>>2]|0&&(Xe=y,bt=o[Xe+4>>2]|0,It=G,o[It>>2]=o[Xe>>2],o[It+4>>2]=bt,It=p+364+(w<<3)|0,bt=o[It+4>>2]|0,Xe=J,o[Xe>>2]=o[It>>2],o[Xe+4>>2]=bt,o[U>>2]=o[G>>2],o[U+4>>2]=o[G+4>>2],o[le>>2]=o[J>>2],o[le+4>>2]=o[J+4>>2],sE(U,le)|0)||(y=p+348+(w<<3)|0),o[p+992+(w<<2)>>2]=y,w=w+1|0;while((w|0)!=2);B=Ge}function K_(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0;switch(p=o[p+992+(o[976+(y<<2)>>2]<<2)>>2]|0,o[p+4>>2]|0){case 0:case 3:{p=0;break}case 1:{ke(I[p>>2])>2])>2]|0){case 2:{y=ke(ke(ke(I[p>>2])*y)/ke(100));break}case 1:{y=ke(I[p>>2]);break}default:y=ke(ue)}return ke(y)}function UE(p,y,w,G,J){p=p|0,y=y|0,w=ke(w),G=ke(G),J=ke(J);var U=0,le=As;y=o[p+944>>2]|0?y:1,U=vg(o[p+4>>2]|0,y)|0,y=RT(U,y)|0,w=ke(X2(p,U,w)),G=ke(X2(p,y,G)),le=ke(w+ke(ar(p,U,J))),I[p+400+(o[1040+(U<<2)>>2]<<2)>>2]=le,w=ke(w+ke(Jr(p,U,J))),I[p+400+(o[1e3+(U<<2)>>2]<<2)>>2]=w,w=ke(G+ke(ar(p,y,J))),I[p+400+(o[1040+(y<<2)>>2]<<2)>>2]=w,J=ke(G+ke(Jr(p,y,J))),I[p+400+(o[1e3+(y<<2)>>2]<<2)>>2]=J}function KE(p,y,w,G){p=p|0,y=ke(y),w=ke(w),G=ke(G);var J=0,U=0,le=As,Ge=As,Xe=0,bt=0,It=As,rr=0,an=As,Ks=As,zi=As,Un=As;if(y!=ke(0)&&(J=p+400|0,Un=ke(I[J>>2]),U=p+404|0,zi=ke(I[U>>2]),rr=p+416|0,Ks=ke(I[rr>>2]),bt=p+420|0,le=ke(I[bt>>2]),an=ke(Un+w),It=ke(zi+G),G=ke(an+Ks),Ge=ke(It+le),Xe=(o[p+988>>2]|0)==1,I[J>>2]=ke(um(Un,y,0,Xe)),I[U>>2]=ke(um(zi,y,0,Xe)),w=ke(Az(ke(Ks*y),ke(1))),eA(w,ke(0))|0?U=0:U=(eA(w,ke(1))|0)^1,w=ke(Az(ke(le*y),ke(1))),eA(w,ke(0))|0?J=0:J=(eA(w,ke(1))|0)^1,Un=ke(um(G,y,Xe&U,Xe&(U^1))),I[rr>>2]=ke(Un-ke(um(an,y,0,Xe))),Un=ke(um(Ge,y,Xe&J,Xe&(J^1))),I[bt>>2]=ke(Un-ke(um(It,y,0,Xe))),U=(o[p+952>>2]|0)-(o[p+948>>2]|0)>>2,U|0)){J=0;do KE(Wa(p,J)|0,y,an,It),J=J+1|0;while((J|0)!=(U|0))}}function Yp(p,y,w,G,J){switch(p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,w|0){case 5:case 0:{p=zAe(o[489]|0,G,J)|0;break}default:p=pPt(G,J)|0}return p|0}function JS(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;J=B,B=B+16|0,U=J,o[U>>2]=G,By(p,0,y,w,U),B=J}function By(p,y,w,G,J){if(p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,p=p|0?p:956,ide[o[p+8>>2]&1](p,y,w,G,J)|0,(w|0)==5)Ko();else return}function $0(p,y,w){p=p|0,y=y|0,w=w|0,n[p+y>>0]=w&1}function fw(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(Q2(p,G),xc(p,o[y>>2]|0,o[w>>2]|0,G))}function Q2(p,y){p=p|0,y=y|0;var w=0;if((ut(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function xc(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function ut(p){return p=p|0,1073741823}function ar(p,y,w){return p=p|0,y=y|0,w=ke(w),Gn(y)|0&&o[p+96>>2]|0?p=p+92|0:p=yg(p+60|0,o[1040+(y<<2)>>2]|0,992)|0,ke(Ts(p,w))}function Jr(p,y,w){return p=p|0,y=y|0,w=ke(w),Gn(y)|0&&o[p+104>>2]|0?p=p+100|0:p=yg(p+60|0,o[1e3+(y<<2)>>2]|0,992)|0,ke(Ts(p,w))}function Gn(p){return p=p|0,(p|1|0)==3|0}function Ts(p,y){return p=p|0,y=ke(y),(o[p+4>>2]|0)==3?y=ke(0):y=ke(od(p,y)),ke(y)}function Qo(p,y){return p=p|0,y=y|0,p=o[p>>2]|0,(p|0?p:(y|0)>1?y:1)|0}function vg(p,y){p=p|0,y=y|0;var w=0;e:do if((y|0)==2){switch(p|0){case 2:{p=3;break e}case 3:break;default:{w=4;break e}}p=2}else w=4;while(!1);return p|0}function Ng(p,y){p=p|0,y=y|0;var w=As;return Gn(y)|0&&o[p+312>>2]|0&&(w=ke(I[p+308>>2]),w>=ke(0))||(w=ke(zs(ke(I[(yg(p+276|0,o[1040+(y<<2)>>2]|0,992)|0)>>2]),ke(0)))),ke(w)}function Rf(p,y){p=p|0,y=y|0;var w=As;return Gn(y)|0&&o[p+320>>2]|0&&(w=ke(I[p+316>>2]),w>=ke(0))||(w=ke(zs(ke(I[(yg(p+276|0,o[1e3+(y<<2)>>2]|0,992)|0)>>2]),ke(0)))),ke(w)}function uI(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return Gn(y)|0&&o[p+240>>2]|0&&(G=ke(od(p+236|0,w)),G>=ke(0))||(G=ke(zs(ke(od(yg(p+204|0,o[1040+(y<<2)>>2]|0,992)|0,w)),ke(0)))),ke(G)}function Th(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return Gn(y)|0&&o[p+248>>2]|0&&(G=ke(od(p+244|0,w)),G>=ke(0))||(G=ke(zs(ke(od(yg(p+204|0,o[1e3+(y<<2)>>2]|0,992)|0,w)),ke(0)))),ke(G)}function oE(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=As,Xe=As,bt=As,It=As,rr=As,an=As,Ks=0,zi=0,Un=0;Un=B,B=B+16|0,Ks=Un,zi=p+964|0,np(p,(o[zi>>2]|0)!=0,3519),Ge=ke(j_(p,2,y)),Xe=ke(j_(p,0,y)),bt=ke(Kl(p,2,y)),It=ke(Kl(p,0,y)),El(y)|0?rr=y:rr=ke(zs(ke(0),ke(ke(y-bt)-Ge))),El(w)|0?an=w:an=ke(zs(ke(0),ke(ke(w-It)-Xe))),(G|0)==1&(J|0)==1?(I[p+908>>2]=ke(BA(p,2,ke(y-bt),U,U)),y=ke(BA(p,0,ke(w-It),le,U))):(Cz[o[zi>>2]&1](Ks,p,rr,G,an,J),rr=ke(Ge+ke(I[Ks>>2])),an=ke(y-bt),I[p+908>>2]=ke(BA(p,2,(G|2|0)==2?rr:an,U,U)),an=ke(Xe+ke(I[Ks+4>>2])),y=ke(w-It),y=ke(BA(p,0,(J|2|0)==2?an:y,le,U))),I[p+912>>2]=y,B=Un}function TT(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=As,Xe=As,bt=As,It=As;bt=ke(j_(p,2,U)),Ge=ke(j_(p,0,U)),It=ke(Kl(p,2,U)),Xe=ke(Kl(p,0,U)),y=ke(y-It),I[p+908>>2]=ke(BA(p,2,(G|2|0)==2?bt:y,U,U)),w=ke(w-Xe),I[p+912>>2]=ke(BA(p,0,(J|2|0)==2?Ge:w,le,U))}function sB(p,y,w,G,J,U,le){p=p|0,y=ke(y),w=ke(w),G=G|0,J=J|0,U=ke(U),le=ke(le);var Ge=0,Xe=As,bt=As;return Ge=(G|0)==2,!(y<=ke(0)&Ge)&&!(w<=ke(0)&(J|0)==2)&&!((G|0)==1&(J|0)==1)?p=0:(Xe=ke(Kl(p,0,U)),bt=ke(Kl(p,2,U)),Ge=y>2]=ke(BA(p,2,Ge?ke(0):y,U,U)),y=ke(w-Xe),Ge=w>2]=ke(BA(p,0,Ge?ke(0):y,le,U)),p=1),p|0}function RT(p,y){return p=p|0,y=y|0,aB(p)|0?p=vg(2,y)|0:p=0,p|0}function wy(p,y,w){return p=p|0,y=y|0,w=ke(w),w=ke(uI(p,y,w)),ke(w+ke(Ng(p,y)))}function jE(p,y,w){return p=p|0,y=y|0,w=ke(w),w=ke(Th(p,y,w)),ke(w+ke(Rf(p,y)))}function j_(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(wy(p,y,w)),ke(G+ke(jE(p,y,w)))}function NT(p){return p=p|0,o[p+24>>2]|0?p=0:ke(tf(p))!=ke(0)?p=1:p=ke(Ty(p))!=ke(0),p|0}function tf(p){p=p|0;var y=As;if(o[p+944>>2]|0){if(y=ke(I[p+44>>2]),El(y)|0)return y=ke(I[p+40>>2]),p=y>ke(0)&((El(y)|0)^1),ke(p?y:ke(0))}else y=ke(0);return ke(y)}function Ty(p){p=p|0;var y=As,w=0,G=As;do if(o[p+944>>2]|0){if(y=ke(I[p+48>>2]),El(y)|0){if(w=n[(o[p+976>>2]|0)+2>>0]|0,!(w<<24>>24)&&(G=ke(I[p+40>>2]),G>24?ke(1):ke(0)}}else y=ke(0);while(!1);return ke(y)}function US(p){p=p|0;var y=0,w=0;if(fz(p+400|0,0,540)|0,n[p+985>>0]=1,Dr(p),w=Fs(p)|0,w|0){y=p+948|0,p=0;do US(o[(o[y>>2]|0)+(p<<2)>>2]|0),p=p+1|0;while((p|0)!=(w|0))}}function $I(p,y,w,G,J,U,le,Ge,Xe,bt){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=ke(U),le=ke(le),Ge=Ge|0,Xe=Xe|0,bt=bt|0;var It=0,rr=As,an=0,Ks=0,zi=As,Un=As,Ds=0,Si=As,So=0,ss=As,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0,w0=0;em=B,B=B+16|0,uu=em+12|0,fl=em+8|0,Tc=em+4|0,Bg=em,wg=vg(o[p+4>>2]|0,Xe)|0,pi=Gn(wg)|0,rr=ke(od(jS(y)|0,pi?U:le)),hl=K_(y,2,U)|0,Dg=K_(y,0,le)|0;do if(!(El(rr)|0)&&!(El(pi?w:J)|0)){if(It=y+504|0,!(El(ke(I[It>>2]))|0)&&(!(XR(o[y+976>>2]|0,0)|0)||(o[y+500>>2]|0)==(o[2278]|0)))break;I[It>>2]=ke(zs(rr,ke(j_(y,wg,U))))}else an=7;while(!1);do if((an|0)==7){if(So=pi^1,!(So|hl^1)){le=ke(od(o[y+992>>2]|0,U)),I[y+504>>2]=ke(zs(le,ke(j_(y,2,U))));break}if(!(pi|Dg^1)){le=ke(od(o[y+996>>2]|0,le)),I[y+504>>2]=ke(zs(le,ke(j_(y,0,U))));break}I[uu>>2]=ke(ue),I[fl>>2]=ke(ue),o[Tc>>2]=0,o[Bg>>2]=0,Si=ke(Kl(y,2,U)),ss=ke(Kl(y,0,U)),hl?(zi=ke(Si+ke(od(o[y+992>>2]|0,U))),I[uu>>2]=zi,o[Tc>>2]=1,Ks=1):(Ks=0,zi=ke(ue)),Dg?(rr=ke(ss+ke(od(o[y+996>>2]|0,le))),I[fl>>2]=rr,o[Bg>>2]=1,It=1):(It=0,rr=ke(ue)),an=o[p+32>>2]|0,pi&(an|0)==2?an=2:El(zi)|0&&!(El(w)|0)&&(I[uu>>2]=w,o[Tc>>2]=2,Ks=2,zi=w),!((an|0)==2&So)&&El(rr)|0&&!(El(J)|0)&&(I[fl>>2]=J,o[Bg>>2]=2,It=2,rr=J),Un=ke(I[y+396>>2]),Ds=El(Un)|0;do if(Ds)an=Ks;else{if((Ks|0)==1&So){I[fl>>2]=ke(ke(zi-Si)/Un),o[Bg>>2]=1,It=1,an=1;break}pi&(It|0)==1?(I[uu>>2]=ke(Un*ke(rr-ss)),o[Tc>>2]=1,It=1,an=1):an=Ks}while(!1);w0=El(w)|0,Ks=($A(p,y)|0)!=4,!(pi|hl|((G|0)!=1|w0)|(Ks|(an|0)==1))&&(I[uu>>2]=w,o[Tc>>2]=1,!Ds)&&(I[fl>>2]=ke(ke(w-Si)/Un),o[Bg>>2]=1,It=1),!(Dg|So|((Ge|0)!=1|(El(J)|0))|(Ks|(It|0)==1))&&(I[fl>>2]=J,o[Bg>>2]=1,!Ds)&&(I[uu>>2]=ke(Un*ke(J-ss)),o[Tc>>2]=1),mb(y,2,U,U,Tc,uu),mb(y,0,le,U,Bg,fl),w=ke(I[uu>>2]),J=ke(I[fl>>2]),ki(y,w,J,Xe,o[Tc>>2]|0,o[Bg>>2]|0,U,le,0,3565,bt)|0,le=ke(I[y+908+(o[976+(wg<<2)>>2]<<2)>>2]),I[y+504>>2]=ke(zs(le,ke(j_(y,wg,U))))}while(!1);o[y+500>>2]=o[2278],B=em}function BA(p,y,w,G,J){return p=p|0,y=y|0,w=ke(w),G=ke(G),J=ke(J),G=ke(zE(p,y,w,G)),ke(zs(G,ke(j_(p,y,J))))}function $A(p,y){return p=p|0,y=y|0,y=y+20|0,y=o[(o[y>>2]|0?y:p+16|0)>>2]|0,(y|0)==5&&aB(o[p+4>>2]|0)|0&&(y=1),y|0}function Qm(p,y){return p=p|0,y=y|0,Gn(y)|0&&o[p+96>>2]|0?y=4:y=o[1040+(y<<2)>>2]|0,p+60+(y<<3)|0}function zf(p,y){return p=p|0,y=y|0,Gn(y)|0&&o[p+104>>2]|0?y=5:y=o[1e3+(y<<2)>>2]|0,p+60+(y<<3)|0}function mb(p,y,w,G,J,U){switch(p=p|0,y=y|0,w=ke(w),G=ke(G),J=J|0,U=U|0,w=ke(od(p+380+(o[976+(y<<2)>>2]<<3)|0,w)),w=ke(w+ke(Kl(p,y,G))),o[J>>2]|0){case 2:case 1:{J=El(w)|0,G=ke(I[U>>2]),I[U>>2]=J|G>2]=2,I[U>>2]=w);break}default:}}function R_(p,y){return p=p|0,y=y|0,p=p+132|0,Gn(y)|0&&o[(yg(p,4,948)|0)+4>>2]|0?p=1:p=(o[(yg(p,o[1040+(y<<2)>>2]|0,948)|0)+4>>2]|0)!=0,p|0}function Cb(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0;return p=p+132|0,Gn(y)|0&&(G=yg(p,4,948)|0,(o[G+4>>2]|0)!=0)?J=4:(G=yg(p,o[1040+(y<<2)>>2]|0,948)|0,o[G+4>>2]|0?J=4:w=ke(0)),(J|0)==4&&(w=ke(od(G,w))),ke(w)}function Ry(p,y,w){p=p|0,y=y|0,w=ke(w);var G=As;return G=ke(I[p+908+(o[976+(y<<2)>>2]<<2)>>2]),G=ke(G+ke(ar(p,y,w))),ke(G+ke(Jr(p,y,w)))}function KS(p){p=p|0;var y=0,w=0,G=0;e:do if(aB(o[p+4>>2]|0)|0)y=0;else if((o[p+16>>2]|0)!=5)if(w=Fs(p)|0,!w)y=0;else for(y=0;;){if(G=Wa(p,y)|0,!(o[G+24>>2]|0)&&(o[G+20>>2]|0)==5){y=1;break e}if(y=y+1|0,y>>>0>=w>>>0){y=0;break}}else y=1;while(!1);return y|0}function _b(p,y){p=p|0,y=y|0;var w=As;return w=ke(I[p+908+(o[976+(y<<2)>>2]<<2)>>2]),w>=ke(0)&((El(w)|0)^1)|0}function z_(p){p=p|0;var y=As,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=As;if(w=o[p+968>>2]|0,w)Xe=ke(I[p+908>>2]),y=ke(I[p+912>>2]),y=ke(lie[w&0](p,Xe,y)),np(p,(El(y)|0)^1,3573);else{U=Fs(p)|0;do if(U|0){for(w=0,J=0;;){if(G=Wa(p,J)|0,o[G+940>>2]|0){le=8;break}if((o[G+24>>2]|0)!=1)if(Ge=($A(p,G)|0)==5,Ge){w=G;break}else w=w|0?w:G;if(J=J+1|0,J>>>0>=U>>>0){le=8;break}}if((le|0)==8&&!w)break;return y=ke(z_(w)),ke(y+ke(I[w+404>>2]))}while(!1);y=ke(I[p+912>>2])}return ke(y)}function zE(p,y,w,G){p=p|0,y=y|0,w=ke(w),G=ke(G);var J=As,U=0;return aB(y)|0?(y=1,U=3):Gn(y)|0?(y=0,U=3):(G=ke(ue),J=ke(ue)),(U|0)==3&&(J=ke(od(p+364+(y<<3)|0,G)),G=ke(od(p+380+(y<<3)|0,G))),U=G=ke(0)&((El(G)|0)^1)),w=U?G:w,U=J>=ke(0)&((El(J)|0)^1)&w>2]|0,U)|0,zi=RT(Ds,U)|0,Un=Gn(Ds)|0,rr=ke(Kl(y,2,w)),an=ke(Kl(y,0,w)),K_(y,2,w)|0?Ge=ke(rr+ke(od(o[y+992>>2]|0,w))):R_(y,2)|0&&zS(y,2)|0?(Ge=ke(I[p+908>>2]),Xe=ke(Ng(p,2)),Xe=ke(Ge-ke(Xe+ke(Rf(p,2)))),Ge=ke(Cb(y,2,w)),Ge=ke(BA(y,2,ke(Xe-ke(Ge+ke(qE(y,2,w)))),w,w))):Ge=ke(ue),K_(y,0,J)|0?Xe=ke(an+ke(od(o[y+996>>2]|0,J))):R_(y,0)|0&&zS(y,0)|0?(Xe=ke(I[p+912>>2]),So=ke(Ng(p,0)),So=ke(Xe-ke(So+ke(Rf(p,0)))),Xe=ke(Cb(y,0,J)),Xe=ke(BA(y,0,ke(So-ke(Xe+ke(qE(y,0,J)))),J,w))):Xe=ke(ue),bt=El(Ge)|0,It=El(Xe)|0;do if(bt^It&&(Ks=ke(I[y+396>>2]),!(El(Ks)|0)))if(bt){Ge=ke(rr+ke(ke(Xe-an)*Ks));break}else{So=ke(an+ke(ke(Ge-rr)/Ks)),Xe=It?So:Xe;break}while(!1);It=El(Ge)|0,bt=El(Xe)|0,It|bt&&(ss=(It^1)&1,G=w>ke(0)&((G|0)!=0&It),Ge=Un?Ge:G?w:Ge,ki(y,Ge,Xe,U,Un?ss:G?2:ss,It&(bt^1)&1,Ge,Xe,0,3623,le)|0,Ge=ke(I[y+908>>2]),Ge=ke(Ge+ke(Kl(y,2,w))),Xe=ke(I[y+912>>2]),Xe=ke(Xe+ke(Kl(y,0,w)))),ki(y,Ge,Xe,U,1,1,Ge,Xe,1,3635,le)|0,zS(y,Ds)|0&&!(R_(y,Ds)|0)?(ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),So=ke(So-ke(Rf(p,Ds))),So=ke(So-ke(Jr(y,Ds,w))),So=ke(So-ke(qE(y,Ds,Un?w:J))),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So):Si=21;do if((Si|0)==21){if(!(R_(y,Ds)|0)&&(o[p+8>>2]|0)==1){ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(ke(So-ke(I[y+908+(ss<<2)>>2]))*ke(.5)),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So;break}!(R_(y,Ds)|0)&&(o[p+8>>2]|0)==2&&(ss=o[976+(Ds<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),I[y+400+(o[1040+(Ds<<2)>>2]<<2)>>2]=So)}while(!1);zS(y,zi)|0&&!(R_(y,zi)|0)?(ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),So=ke(So-ke(Rf(p,zi))),So=ke(So-ke(Jr(y,zi,w))),So=ke(So-ke(qE(y,zi,Un?J:w))),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So):Si=30;do if((Si|0)==30&&!(R_(y,zi)|0)){if(($A(p,y)|0)==2){ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(ke(So-ke(I[y+908+(ss<<2)>>2]))*ke(.5)),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So;break}ss=($A(p,y)|0)==3,ss^(o[p+28>>2]|0)==2&&(ss=o[976+(zi<<2)>>2]|0,So=ke(I[p+908+(ss<<2)>>2]),So=ke(So-ke(I[y+908+(ss<<2)>>2])),I[y+400+(o[1040+(zi<<2)>>2]<<2)>>2]=So)}while(!1)}function DT(p,y,w){p=p|0,y=y|0,w=w|0;var G=As,J=0;J=o[976+(w<<2)>>2]|0,G=ke(I[y+908+(J<<2)>>2]),G=ke(ke(I[p+908+(J<<2)>>2])-G),G=ke(G-ke(I[y+400+(o[1040+(w<<2)>>2]<<2)>>2])),I[y+400+(o[1e3+(w<<2)>>2]<<2)>>2]=G}function aB(p){return p=p|0,(p|1|0)==1|0}function jS(p){p=p|0;var y=As;switch(o[p+56>>2]|0){case 0:case 3:{y=ke(I[p+40>>2]),y>ke(0)&((El(y)|0)^1)?p=n[(o[p+976>>2]|0)+2>>0]|0?1056:992:p=1056;break}default:p=p+52|0}return p|0}function XR(p,y){return p=p|0,y=y|0,(n[p+y>>0]|0)!=0|0}function zS(p,y){return p=p|0,y=y|0,p=p+132|0,Gn(y)|0&&o[(yg(p,5,948)|0)+4>>2]|0?p=1:p=(o[(yg(p,o[1e3+(y<<2)>>2]|0,948)|0)+4>>2]|0)!=0,p|0}function qE(p,y,w){p=p|0,y=y|0,w=ke(w);var G=0,J=0;return p=p+132|0,Gn(y)|0&&(G=yg(p,5,948)|0,(o[G+4>>2]|0)!=0)?J=4:(G=yg(p,o[1e3+(y<<2)>>2]|0,948)|0,o[G+4>>2]|0?J=4:w=ke(0)),(J|0)==4&&(w=ke(od(G,w))),ke(w)}function X2(p,y,w){return p=p|0,y=y|0,w=ke(w),R_(p,y)|0?w=ke(Cb(p,y,w)):w=ke(-ke(qE(p,y,w))),ke(w)}function kT(p){return p=ke(p),I[E>>2]=p,o[E>>2]|0|0}function pn(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function q1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function J2(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function ey(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;if(le=p+4|0,Ge=o[le>>2]|0,J=Ge-G|0,U=J>>2,p=y+(U<<2)|0,p>>>0>>0){G=Ge;do o[G>>2]=o[p>>2],p=p+4|0,G=(o[le>>2]|0)+4|0,o[le>>2]=G;while(p>>>0>>0)}U|0&&JT(Ge+(0-U<<2)|0,y|0,J|0)|0}function up(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=y+4|0,Xe=o[Ge>>2]|0,J=o[p>>2]|0,le=w,U=le-J|0,G=Xe+(0-(U>>2)<<2)|0,o[Ge>>2]=G,(U|0)>0&&Md(G|0,J|0,U|0)|0,J=p+4|0,U=y+8|0,G=(o[J>>2]|0)-le|0,(G|0)>0&&(Md(o[U>>2]|0,w|0,G|0)|0,o[U>>2]=(o[U>>2]|0)+(G>>>2<<2)),le=o[p>>2]|0,o[p>>2]=o[Ge>>2],o[Ge>>2]=le,le=o[J>>2]|0,o[J>>2]=o[U>>2],o[U>>2]=le,le=p+8|0,w=y+12|0,p=o[le>>2]|0,o[le>>2]=o[w>>2],o[w>>2]=p,o[y>>2]=o[Ge>>2],Xe|0}function Iw(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;if(le=o[y>>2]|0,U=o[w>>2]|0,(le|0)!=(U|0)){J=p+8|0,w=((U+-4-le|0)>>>2)+1|0,p=le,G=o[J>>2]|0;do o[G>>2]=o[p>>2],G=(o[J>>2]|0)+4|0,o[J>>2]=G,p=p+4|0;while((p|0)!=(U|0));o[y>>2]=le+(w<<2)}}function cB(){FA()}function RD(){var p=0;return p=Ku(4)|0,Rd(p),p|0}function Rd(p){p=p|0,o[p>>2]=df()|0}function JR(p){p=p|0,p|0&&(ty(p),ti(p))}function ty(p){p=p|0,so(o[p>>2]|0)}function cF(p,y,w){p=p|0,y=y|0,w=w|0,$0(o[p>>2]|0,y,w)}function $1(p,y){p=p|0,y=ke(y),JE(o[p>>2]|0,y)}function $E(p,y){return p=p|0,y=y|0,XR(o[p>>2]|0,y)|0}function N_(){var p=0;return p=Ku(8)|0,e1(p,0),p|0}function e1(p,y){p=p|0,y=y|0,y?y=Mp(o[y>>2]|0)|0:y=Er()|0,o[p>>2]=y,o[p+4>>2]=0,ip(y,p)}function t1(p){p=p|0;var y=0;return y=Ku(8)|0,e1(y,p),y|0}function ry(p){p=p|0,p|0&&(xT(p),ti(p))}function xT(p){p=p|0;var y=0;ls(o[p>>2]|0),y=p+4|0,p=o[y>>2]|0,o[y>>2]=0,p|0&&(yb(p),ti(p))}function yb(p){p=p|0,r_(p)}function r_(p){p=p|0,p=o[p>>2]|0,p|0&&oo(p|0)}function Rh(p){return p=p|0,_d(p)|0}function bb(p){p=p|0;var y=0,w=0;w=p+4|0,y=o[w>>2]|0,o[w>>2]=0,y|0&&(yb(y),ti(y)),Rp(o[p>>2]|0)}function lB(p,y){p=p|0,y=y|0,LA(o[p>>2]|0,o[y>>2]|0)}function ND(p,y){p=p|0,y=y|0,nE(o[p>>2]|0,y)}function DD(p,y,w){p=p|0,y=y|0,w=+w,H2(o[p>>2]|0,y,ke(w))}function q_(p,y,w){p=p|0,y=y|0,w=+w,iE(o[p>>2]|0,y,ke(w))}function kD(p,y){p=p|0,y=y|0,Nm(o[p>>2]|0,y)}function UR(p,y){p=p|0,y=y|0,jd(o[p>>2]|0,y)}function lc(p,y){p=p|0,y=y|0,Hp(o[p>>2]|0,y)}function fh(p,y){p=p|0,y=y|0,j1(o[p>>2]|0,y)}function rf(p,y){p=p|0,y=y|0,q0(o[p>>2]|0,y)}function yI(p,y){p=p|0,y=y|0,YA(o[p>>2]|0,y)}function aE(p,y,w){p=p|0,y=y|0,w=+w,O(o[p>>2]|0,y,ke(w))}function qS(p,y,w){p=p|0,y=y|0,w=+w,K(o[p>>2]|0,y,ke(w))}function Qp(p,y){p=p|0,y=y|0,gt(o[p>>2]|0,y)}function uB(p,y){p=p|0,y=y|0,TC(o[p>>2]|0,y)}function Ih(p,y){p=p|0,y=y|0,cp(o[p>>2]|0,y)}function xC(p,y){p=p|0,y=+y,fb(o[p>>2]|0,ke(y))}function $_(p,y){p=p|0,y=+y,Kf(o[p>>2]|0,ke(y))}function r1(p,y){p=p|0,y=+y,CI(o[p>>2]|0,ke(y))}function gB(p,y){p=p|0,y=+y,pe(o[p>>2]|0,ke(y))}function hw(p,y){p=p|0,y=+y,lm(o[p>>2]|0,ke(y))}function GT(p,y){p=p|0,y=+y,ra(o[p>>2]|0,ke(y))}function b0(p,y){p=p|0,y=+y,kc(o[p>>2]|0,ke(y))}function ia(p){p=p|0,Nl(o[p>>2]|0)}function e2(p,y){p=p|0,y=+y,Bl(o[p>>2]|0,ke(y))}function yd(p,y){p=p|0,y=+y,$g(o[p>>2]|0,ke(y))}function bI(p){p=p|0,SA(o[p>>2]|0)}function ag(p,y){p=p|0,y=+y,lp(o[p>>2]|0,ke(y))}function Eb(p,y){p=p|0,y=+y,Ib(o[p>>2]|0,ke(y))}function n1(p,y){p=p|0,y=+y,wd(o[p>>2]|0,ke(y))}function U2(p,y){p=p|0,y=+y,z1(o[p>>2]|0,ke(y))}function e0(p,y){p=p|0,y=+y,RC(o[p>>2]|0,ke(y))}function n_(p,y){p=p|0,y=+y,Hm(o[p>>2]|0,ke(y))}function Xp(p,y){p=p|0,y=+y,Fg(o[p>>2]|0,ke(y))}function cE(p,y){p=p|0,y=+y,hb(o[p>>2]|0,ke(y))}function lE(p,y){p=p|0,y=+y,NC(o[p>>2]|0,ke(y))}function Ip(p,y,w){p=p|0,y=y|0,w=+w,fi(o[p>>2]|0,y,ke(w))}function Xh(p,y,w){p=p|0,y=y|0,w=+w,sr(o[p>>2]|0,y,ke(w))}function E0(p,y,w){p=p|0,y=y|0,w=+w,Yr(o[p>>2]|0,y,ke(w))}function aA(p){return p=p|0,J_(o[p>>2]|0)|0}function fu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,se(J,o[y>>2]|0,w),Jp(p,J),B=G}function Jp(p,y){p=p|0,y=y|0,dC(p,o[y+4>>2]|0,+ke(I[y>>2]))}function dC(p,y,w){p=p|0,y=y|0,w=+w,o[p>>2]=y,C[p+8>>3]=w}function uE(p){return p=p|0,HS(o[p>>2]|0)|0}function eh(p){return p=p|0,dh(o[p>>2]|0)|0}function Wf(p){return p=p|0,uC(o[p>>2]|0)|0}function Mo(p){return p=p|0,pw(o[p>>2]|0)|0}function gp(p){return p=p|0,XE(o[p>>2]|0)|0}function lF(p){return p=p|0,Ac(o[p>>2]|0)|0}function uF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,we(J,o[y>>2]|0,w),Jp(p,J),B=G}function gE(p){return p=p|0,t_(o[p>>2]|0)|0}function FT(p){return p=p|0,Mm(o[p>>2]|0)|0}function Np(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,_I(G,o[y>>2]|0),Jp(p,G),B=w}function Dm(p){return p=p|0,+ +ke(pf(o[p>>2]|0))}function Dp(p){return p=p|0,+ +ke(ef(o[p>>2]|0))}function t2(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,ca(G,o[y>>2]|0),Jp(p,G),B=w}function Ro(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,lI(G,o[y>>2]|0),Jp(p,G),B=w}function AE(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,Na(G,o[y>>2]|0),Jp(p,G),B=w}function AB(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,T_(G,o[y>>2]|0),Jp(p,G),B=w}function Xc(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,YS(G,o[y>>2]|0),Jp(p,G),B=w}function iu(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,gC(G,o[y>>2]|0),Jp(p,G),B=w}function dE(p){return p=p|0,+ +ke(Y2(o[p>>2]|0))}function yL(p,y){return p=p|0,y=y|0,+ +ke($n(o[p>>2]|0,y))}function KR(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,Lr(J,o[y>>2]|0,w),Jp(p,J),B=G}function Ou(p,y,w){p=p|0,y=y|0,w=w|0,Ml(o[p>>2]|0,o[y>>2]|0,w)}function ny(p,y){p=p|0,y=y|0,ld(o[p>>2]|0,o[y>>2]|0)}function hp(p){return p=p|0,Fs(o[p>>2]|0)|0}function Am(p){return p=p|0,p=Bo(o[p>>2]|0)|0,p?p=Rh(p)|0:p=0,p|0}function K2(p,y){return p=p|0,y=y|0,p=Wa(o[p>>2]|0,y)|0,p?p=Rh(p)|0:p=0,p|0}function i_(p,y){p=p|0,y=y|0;var w=0,G=0;G=Ku(4)|0,dB(G,y),w=p+4|0,y=o[w>>2]|0,o[w>>2]=G,y|0&&(yb(y),ti(y)),Ea(o[p>>2]|0,1)}function dB(p,y){p=p|0,y=y|0,vb(p,y)}function ZT(p,y,w,G,J,U){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=U|0;var le=0,Ge=0;le=B,B=B+16|0,Ge=le,Cx(Ge,_d(y)|0,+w,G,+J,U),I[p>>2]=ke(+C[Ge>>3]),I[p+4>>2]=ke(+C[Ge+8>>3]),B=le}function Cx(p,y,w,G,J,U){p=p|0,y=y|0,w=+w,G=G|0,J=+J,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0;le=B,B=B+32|0,It=le+8|0,bt=le+20|0,Xe=le,Ge=le+16|0,C[It>>3]=w,o[bt>>2]=G,C[Xe>>3]=J,o[Ge>>2]=U,pB(p,o[y+4>>2]|0,It,bt,Xe,Ge),B=le}function pB(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0;le=B,B=B+16|0,Ge=le,xw(Ge),y=qf(y)|0,Jh(p,y,+C[w>>3],o[G>>2]|0,+C[J>>3],o[U>>2]|0),oS(Ge),B=le}function qf(p){return p=p|0,o[p>>2]|0}function Jh(p,y,w,G,J,U){p=p|0,y=y|0,w=+w,G=G|0,J=+J,U=U|0;var le=0;le=Sb($S()|0)|0,w=+mp(w),G=r2(G)|0,J=+mp(J),i1(p,cc(0,le|0,y|0,+w,G|0,+J,r2(U)|0)|0)}function $S(){var p=0;return n[7608]|0||(fB(9120),p=7608,o[p>>2]=1,o[p+4>>2]=0),9120}function Sb(p){return p=p|0,o[p+8>>2]|0}function mp(p){return p=+p,+ +Id(p)}function r2(p){return p=p|0,Z(p)|0}function i1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+32|0,w=J,G=y,G&1?(Of(w,0),mI(G|0,w|0)|0,pE(p,w),Vd(w)):(o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2]),B=J}function Of(p,y){p=p|0,y=y|0,j(p,y),o[p+8>>2]=0,n[p+24>>0]=0}function pE(p,y){p=p|0,y=y|0,y=y+8|0,o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2]}function Vd(p){p=p|0,n[p+24>>0]=0}function j(p,y){p=p|0,y=y|0,o[p>>2]=y}function Z(p){return p=p|0,p|0}function Id(p){return p=+p,+p}function fB(p){p=p|0,Ny(p,ev()|0,4)}function ev(){return 1064}function Ny(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=Kd(y|0,w+1|0)|0}function vb(p,y){p=p|0,y=y|0,y=o[y>>2]|0,o[p>>2]=y,ac(y|0)}function xD(p){p=p|0;var y=0,w=0;w=p+4|0,y=o[w>>2]|0,o[w>>2]=0,y|0&&(yb(y),ti(y)),Ea(o[p>>2]|0,0)}function IB(p){p=p|0,us(o[p>>2]|0)}function Bb(p){return p=p|0,Ql(o[p>>2]|0)|0}function bL(p,y,w,G){p=p|0,y=+y,w=+w,G=G|0,Ym(o[p>>2]|0,ke(y),ke(w),G)}function gF(p){return p=p|0,+ +ke(U_(o[p>>2]|0))}function x(p){return p=p|0,+ +ke(kC(o[p>>2]|0))}function L(p){return p=p|0,+ +ke(DC(o[p>>2]|0))}function te(p){return p=p|0,+ +ke(qI(o[p>>2]|0))}function Re(p){return p=p|0,+ +ke(ph(o[p>>2]|0))}function Le(p){return p=p|0,+ +ke(vA(o[p>>2]|0))}function ft(p,y){p=p|0,y=y|0,C[p>>3]=+ke(U_(o[y>>2]|0)),C[p+8>>3]=+ke(kC(o[y>>2]|0)),C[p+16>>3]=+ke(DC(o[y>>2]|0)),C[p+24>>3]=+ke(qI(o[y>>2]|0)),C[p+32>>3]=+ke(ph(o[y>>2]|0)),C[p+40>>3]=+ke(vA(o[y>>2]|0))}function dr(p,y){return p=p|0,y=y|0,+ +ke(Td(o[p>>2]|0,y))}function Ur(p,y){return p=p|0,y=y|0,+ +ke(Mc(o[p>>2]|0,y))}function mi(p,y){return p=p|0,y=y|0,+ +ke(Pf(o[p>>2]|0,y))}function Vi(){return HA()|0}function Ta(){Sl(),Ho(),Wg(),cA(),th(),xn()}function Sl(){kqe(11713,4938,1)}function Ho(){kZe(10448)}function Wg(){TZe(10408)}function cA(){vqe(10324)}function th(){yye(10096)}function xn(){rn(9132)}function rn(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0,w0=0,bE=0,nh=0,x_=0,$D=0,Fw=0,mh=0,kF=0,Zw=0,KT=0,jL=0,zL=0,aS=0,mf=0,d2=0,jT=0,fv=0,Fx=0,xB=0,Iv=0,GB=0,EE=0,Um=0,mN=0,zT=0,Km=0,p2=0,hg=0,OI=0,og=0,jo=0,Yg=0,Zl=0,f2=0,MI=0,xF=0,gI=0,UA=0,lA=0,GF=0,CN=0,qT=0,I1=0,T0=0,ek=0,fo=0,Lw=0,FF=0,Hd=0,of=0,vd=0,yp=0,l_=0,Yd=0,Qg=0,hv=0;y=B,B=B+672|0,w=y+656|0,hv=y+648|0,Qg=y+640|0,Yd=y+632|0,l_=y+624|0,yp=y+616|0,vd=y+608|0,of=y+600|0,Hd=y+592|0,FF=y+584|0,Lw=y+576|0,fo=y+568|0,ek=y+560|0,T0=y+552|0,I1=y+544|0,qT=y+536|0,CN=y+528|0,GF=y+520|0,lA=y+512|0,UA=y+504|0,gI=y+496|0,xF=y+488|0,MI=y+480|0,f2=y+472|0,Zl=y+464|0,Yg=y+456|0,jo=y+448|0,og=y+440|0,OI=y+432|0,hg=y+424|0,p2=y+416|0,Km=y+408|0,zT=y+400|0,mN=y+392|0,Um=y+384|0,EE=y+376|0,GB=y+368|0,Iv=y+360|0,xB=y+352|0,Fx=y+344|0,fv=y+336|0,jT=y+328|0,d2=y+320|0,mf=y+312|0,aS=y+304|0,zL=y+296|0,jL=y+288|0,KT=y+280|0,Zw=y+272|0,kF=y+264|0,mh=y+256|0,Fw=y+248|0,$D=y+240|0,x_=y+232|0,nh=y+224|0,bE=y+216|0,w0=y+208|0,em=y+200|0,wg=y+192|0,Dg=y+184|0,Bg=y+176|0,Tc=y+168|0,fl=y+160|0,uu=y+152|0,hl=y+144|0,pi=y+136|0,ss=y+128|0,So=y+120|0,Si=y+112|0,Ds=y+104|0,Un=y+96|0,zi=y+88|0,Ks=y+80|0,an=y+72|0,rr=y+64|0,It=y+56|0,bt=y+48|0,Xe=y+40|0,Ge=y+32|0,le=y+24|0,U=y+16|0,J=y+8|0,G=y,Ci(p,3646),Po(p,3651,2)|0,ec(p,3665,2)|0,Ra(p,3682,18)|0,o[hv>>2]=19,o[hv+4>>2]=0,o[w>>2]=o[hv>>2],o[w+4>>2]=o[hv+4>>2],dc(p,3690,w)|0,o[Qg>>2]=1,o[Qg+4>>2]=0,o[w>>2]=o[Qg>>2],o[w+4>>2]=o[Qg+4>>2],Iu(p,3696,w)|0,o[Yd>>2]=2,o[Yd+4>>2]=0,o[w>>2]=o[Yd>>2],o[w+4>>2]=o[Yd+4>>2],Cl(p,3706,w)|0,o[l_>>2]=1,o[l_+4>>2]=0,o[w>>2]=o[l_>>2],o[w+4>>2]=o[l_+4>>2],wl(p,3722,w)|0,o[yp>>2]=2,o[yp+4>>2]=0,o[w>>2]=o[yp>>2],o[w+4>>2]=o[yp+4>>2],wl(p,3734,w)|0,o[vd>>2]=3,o[vd+4>>2]=0,o[w>>2]=o[vd>>2],o[w+4>>2]=o[vd+4>>2],Cl(p,3753,w)|0,o[of>>2]=4,o[of+4>>2]=0,o[w>>2]=o[of>>2],o[w+4>>2]=o[of+4>>2],Cl(p,3769,w)|0,o[Hd>>2]=5,o[Hd+4>>2]=0,o[w>>2]=o[Hd>>2],o[w+4>>2]=o[Hd+4>>2],Cl(p,3783,w)|0,o[FF>>2]=6,o[FF+4>>2]=0,o[w>>2]=o[FF>>2],o[w+4>>2]=o[FF+4>>2],Cl(p,3796,w)|0,o[Lw>>2]=7,o[Lw+4>>2]=0,o[w>>2]=o[Lw>>2],o[w+4>>2]=o[Lw+4>>2],Cl(p,3813,w)|0,o[fo>>2]=8,o[fo+4>>2]=0,o[w>>2]=o[fo>>2],o[w+4>>2]=o[fo+4>>2],Cl(p,3825,w)|0,o[ek>>2]=3,o[ek+4>>2]=0,o[w>>2]=o[ek>>2],o[w+4>>2]=o[ek+4>>2],wl(p,3843,w)|0,o[T0>>2]=4,o[T0+4>>2]=0,o[w>>2]=o[T0>>2],o[w+4>>2]=o[T0+4>>2],wl(p,3853,w)|0,o[I1>>2]=9,o[I1+4>>2]=0,o[w>>2]=o[I1>>2],o[w+4>>2]=o[I1+4>>2],Cl(p,3870,w)|0,o[qT>>2]=10,o[qT+4>>2]=0,o[w>>2]=o[qT>>2],o[w+4>>2]=o[qT+4>>2],Cl(p,3884,w)|0,o[CN>>2]=11,o[CN+4>>2]=0,o[w>>2]=o[CN>>2],o[w+4>>2]=o[CN+4>>2],Cl(p,3896,w)|0,o[GF>>2]=1,o[GF+4>>2]=0,o[w>>2]=o[GF>>2],o[w+4>>2]=o[GF+4>>2],$f(p,3907,w)|0,o[lA>>2]=2,o[lA+4>>2]=0,o[w>>2]=o[lA>>2],o[w+4>>2]=o[lA+4>>2],$f(p,3915,w)|0,o[UA>>2]=3,o[UA+4>>2]=0,o[w>>2]=o[UA>>2],o[w+4>>2]=o[UA+4>>2],$f(p,3928,w)|0,o[gI>>2]=4,o[gI+4>>2]=0,o[w>>2]=o[gI>>2],o[w+4>>2]=o[gI+4>>2],$f(p,3948,w)|0,o[xF>>2]=5,o[xF+4>>2]=0,o[w>>2]=o[xF>>2],o[w+4>>2]=o[xF+4>>2],$f(p,3960,w)|0,o[MI>>2]=6,o[MI+4>>2]=0,o[w>>2]=o[MI>>2],o[w+4>>2]=o[MI+4>>2],$f(p,3974,w)|0,o[f2>>2]=7,o[f2+4>>2]=0,o[w>>2]=o[f2>>2],o[w+4>>2]=o[f2+4>>2],$f(p,3983,w)|0,o[Zl>>2]=20,o[Zl+4>>2]=0,o[w>>2]=o[Zl>>2],o[w+4>>2]=o[Zl+4>>2],dc(p,3999,w)|0,o[Yg>>2]=8,o[Yg+4>>2]=0,o[w>>2]=o[Yg>>2],o[w+4>>2]=o[Yg+4>>2],$f(p,4012,w)|0,o[jo>>2]=9,o[jo+4>>2]=0,o[w>>2]=o[jo>>2],o[w+4>>2]=o[jo+4>>2],$f(p,4022,w)|0,o[og>>2]=21,o[og+4>>2]=0,o[w>>2]=o[og>>2],o[w+4>>2]=o[og+4>>2],dc(p,4039,w)|0,o[OI>>2]=10,o[OI+4>>2]=0,o[w>>2]=o[OI>>2],o[w+4>>2]=o[OI+4>>2],$f(p,4053,w)|0,o[hg>>2]=11,o[hg+4>>2]=0,o[w>>2]=o[hg>>2],o[w+4>>2]=o[hg+4>>2],$f(p,4065,w)|0,o[p2>>2]=12,o[p2+4>>2]=0,o[w>>2]=o[p2>>2],o[w+4>>2]=o[p2+4>>2],$f(p,4084,w)|0,o[Km>>2]=13,o[Km+4>>2]=0,o[w>>2]=o[Km>>2],o[w+4>>2]=o[Km+4>>2],$f(p,4097,w)|0,o[zT>>2]=14,o[zT+4>>2]=0,o[w>>2]=o[zT>>2],o[w+4>>2]=o[zT+4>>2],$f(p,4117,w)|0,o[mN>>2]=15,o[mN+4>>2]=0,o[w>>2]=o[mN>>2],o[w+4>>2]=o[mN+4>>2],$f(p,4129,w)|0,o[Um>>2]=16,o[Um+4>>2]=0,o[w>>2]=o[Um>>2],o[w+4>>2]=o[Um+4>>2],$f(p,4148,w)|0,o[EE>>2]=17,o[EE+4>>2]=0,o[w>>2]=o[EE>>2],o[w+4>>2]=o[EE+4>>2],$f(p,4161,w)|0,o[GB>>2]=18,o[GB+4>>2]=0,o[w>>2]=o[GB>>2],o[w+4>>2]=o[GB+4>>2],$f(p,4181,w)|0,o[Iv>>2]=5,o[Iv+4>>2]=0,o[w>>2]=o[Iv>>2],o[w+4>>2]=o[Iv+4>>2],wl(p,4196,w)|0,o[xB>>2]=6,o[xB+4>>2]=0,o[w>>2]=o[xB>>2],o[w+4>>2]=o[xB+4>>2],wl(p,4206,w)|0,o[Fx>>2]=7,o[Fx+4>>2]=0,o[w>>2]=o[Fx>>2],o[w+4>>2]=o[Fx+4>>2],wl(p,4217,w)|0,o[fv>>2]=3,o[fv+4>>2]=0,o[w>>2]=o[fv>>2],o[w+4>>2]=o[fv+4>>2],j2(p,4235,w)|0,o[jT>>2]=1,o[jT+4>>2]=0,o[w>>2]=o[jT>>2],o[w+4>>2]=o[jT+4>>2],_x(p,4251,w)|0,o[d2>>2]=4,o[d2+4>>2]=0,o[w>>2]=o[d2>>2],o[w+4>>2]=o[d2+4>>2],j2(p,4263,w)|0,o[mf>>2]=5,o[mf+4>>2]=0,o[w>>2]=o[mf>>2],o[w+4>>2]=o[mf+4>>2],j2(p,4279,w)|0,o[aS>>2]=6,o[aS+4>>2]=0,o[w>>2]=o[aS>>2],o[w+4>>2]=o[aS+4>>2],j2(p,4293,w)|0,o[zL>>2]=7,o[zL+4>>2]=0,o[w>>2]=o[zL>>2],o[w+4>>2]=o[zL+4>>2],j2(p,4306,w)|0,o[jL>>2]=8,o[jL+4>>2]=0,o[w>>2]=o[jL>>2],o[w+4>>2]=o[jL+4>>2],j2(p,4323,w)|0,o[KT>>2]=9,o[KT+4>>2]=0,o[w>>2]=o[KT>>2],o[w+4>>2]=o[KT+4>>2],j2(p,4335,w)|0,o[Zw>>2]=2,o[Zw+4>>2]=0,o[w>>2]=o[Zw>>2],o[w+4>>2]=o[Zw+4>>2],_x(p,4353,w)|0,o[kF>>2]=12,o[kF+4>>2]=0,o[w>>2]=o[kF>>2],o[w+4>>2]=o[kF+4>>2],z2(p,4363,w)|0,o[mh>>2]=1,o[mh+4>>2]=0,o[w>>2]=o[mh>>2],o[w+4>>2]=o[mh+4>>2],tv(p,4376,w)|0,o[Fw>>2]=2,o[Fw+4>>2]=0,o[w>>2]=o[Fw>>2],o[w+4>>2]=o[Fw+4>>2],tv(p,4388,w)|0,o[$D>>2]=13,o[$D+4>>2]=0,o[w>>2]=o[$D>>2],o[w+4>>2]=o[$D+4>>2],z2(p,4402,w)|0,o[x_>>2]=14,o[x_+4>>2]=0,o[w>>2]=o[x_>>2],o[w+4>>2]=o[x_+4>>2],z2(p,4411,w)|0,o[nh>>2]=15,o[nh+4>>2]=0,o[w>>2]=o[nh>>2],o[w+4>>2]=o[nh+4>>2],z2(p,4421,w)|0,o[bE>>2]=16,o[bE+4>>2]=0,o[w>>2]=o[bE>>2],o[w+4>>2]=o[bE+4>>2],z2(p,4433,w)|0,o[w0>>2]=17,o[w0+4>>2]=0,o[w>>2]=o[w0>>2],o[w+4>>2]=o[w0+4>>2],z2(p,4446,w)|0,o[em>>2]=18,o[em+4>>2]=0,o[w>>2]=o[em>>2],o[w+4>>2]=o[em+4>>2],z2(p,4458,w)|0,o[wg>>2]=3,o[wg+4>>2]=0,o[w>>2]=o[wg>>2],o[w+4>>2]=o[wg+4>>2],tv(p,4471,w)|0,o[Dg>>2]=1,o[Dg+4>>2]=0,o[w>>2]=o[Dg>>2],o[w+4>>2]=o[Dg+4>>2],Yu(p,4486,w)|0,o[Bg>>2]=10,o[Bg+4>>2]=0,o[w>>2]=o[Bg>>2],o[w+4>>2]=o[Bg+4>>2],j2(p,4496,w)|0,o[Tc>>2]=11,o[Tc+4>>2]=0,o[w>>2]=o[Tc>>2],o[w+4>>2]=o[Tc+4>>2],j2(p,4508,w)|0,o[fl>>2]=3,o[fl+4>>2]=0,o[w>>2]=o[fl>>2],o[w+4>>2]=o[fl+4>>2],_x(p,4519,w)|0,o[uu>>2]=4,o[uu+4>>2]=0,o[w>>2]=o[uu>>2],o[w+4>>2]=o[uu+4>>2],qO(p,4530,w)|0,o[hl>>2]=19,o[hl+4>>2]=0,o[w>>2]=o[hl>>2],o[w+4>>2]=o[hl+4>>2],hB(p,4542,w)|0,o[pi>>2]=12,o[pi+4>>2]=0,o[w>>2]=o[pi>>2],o[w+4>>2]=o[pi+4>>2],mw(p,4554,w)|0,o[ss>>2]=13,o[ss+4>>2]=0,o[w>>2]=o[ss>>2],o[w+4>>2]=o[ss+4>>2],AF(p,4568,w)|0,o[So>>2]=2,o[So+4>>2]=0,o[w>>2]=o[So>>2],o[w+4>>2]=o[So+4>>2],$O(p,4578,w)|0,o[Si>>2]=20,o[Si+4>>2]=0,o[w>>2]=o[Si>>2],o[w+4>>2]=o[Si+4>>2],iY(p,4587,w)|0,o[Ds>>2]=22,o[Ds+4>>2]=0,o[w>>2]=o[Ds>>2],o[w+4>>2]=o[Ds+4>>2],dc(p,4602,w)|0,o[Un>>2]=23,o[Un+4>>2]=0,o[w>>2]=o[Un>>2],o[w+4>>2]=o[Un+4>>2],dc(p,4619,w)|0,o[zi>>2]=14,o[zi+4>>2]=0,o[w>>2]=o[zi>>2],o[w+4>>2]=o[zi+4>>2],LT(p,4629,w)|0,o[Ks>>2]=1,o[Ks+4>>2]=0,o[w>>2]=o[Ks>>2],o[w+4>>2]=o[Ks+4>>2],GD(p,4637,w)|0,o[an>>2]=4,o[an+4>>2]=0,o[w>>2]=o[an>>2],o[w+4>>2]=o[an+4>>2],tv(p,4653,w)|0,o[rr>>2]=5,o[rr+4>>2]=0,o[w>>2]=o[rr>>2],o[w+4>>2]=o[rr+4>>2],tv(p,4669,w)|0,o[It>>2]=6,o[It+4>>2]=0,o[w>>2]=o[It>>2],o[w+4>>2]=o[It+4>>2],tv(p,4686,w)|0,o[bt>>2]=7,o[bt+4>>2]=0,o[w>>2]=o[bt>>2],o[w+4>>2]=o[bt+4>>2],tv(p,4701,w)|0,o[Xe>>2]=8,o[Xe+4>>2]=0,o[w>>2]=o[Xe>>2],o[w+4>>2]=o[Xe+4>>2],tv(p,4719,w)|0,o[Ge>>2]=9,o[Ge+4>>2]=0,o[w>>2]=o[Ge>>2],o[w+4>>2]=o[Ge+4>>2],tv(p,4736,w)|0,o[le>>2]=21,o[le+4>>2]=0,o[w>>2]=o[le>>2],o[w+4>>2]=o[le+4>>2],dF(p,4754,w)|0,o[U>>2]=2,o[U+4>>2]=0,o[w>>2]=o[U>>2],o[w+4>>2]=o[U+4>>2],Yu(p,4772,w)|0,o[J>>2]=3,o[J+4>>2]=0,o[w>>2]=o[J>>2],o[w+4>>2]=o[J+4>>2],Yu(p,4790,w)|0,o[G>>2]=4,o[G+4>>2]=0,o[w>>2]=o[G>>2],o[w+4>>2]=o[G+4>>2],Yu(p,4808,w)|0,B=y}function Ci(p,y){p=p|0,y=y|0;var w=0;w=lVt()|0,o[p>>2]=w,gZe(w,y),BF(o[p>>2]|0)}function Po(p,y,w){return p=p|0,y=y|0,w=w|0,Jge(p,ff(y)|0,w,0),p|0}function ec(p,y,w){return p=p|0,y=y|0,w=w|0,Yge(p,ff(y)|0,w,0),p|0}function Ra(p,y,w){return p=p|0,y=y|0,w=w|0,A1(p,ff(y)|0,w,0),p|0}function dc(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],eZe(p,y,J),B=G,p|0}function Iu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],OT(p,y,J),B=G,p|0}function Cl(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],ie(p,y,J),B=G,p|0}function wl(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],IP(p,y,J),B=G,p|0}function $f(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Yre(p,y,J),B=G,p|0}function j2(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],mF(p,y,J),B=G,p|0}function _x(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vY(p,y,J),B=G,p|0}function z2(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],qu(p,y,J),B=G,p|0}function tv(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],WT(p,y,J),B=G,p|0}function Yu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vJ(p,y,J),B=G,p|0}function qO(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Db(p,y,J),B=G,p|0}function hB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],yJ(p,y,J),B=G,p|0}function mw(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],nye(p,y,J),B=G,p|0}function AF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],sge(p,y,J),B=G,p|0}function $O(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],gY(p,y,J),B=G,p|0}function iY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],a1(p,y,J),B=G,p|0}function LT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],vL(p,y,J),B=G,p|0}function GD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],ad(p,y,J),B=G,p|0}function dF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],EL(p,y,J),B=G,p|0}function EL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],FD(p,w,J,1),B=G}function ff(p){return p=p|0,p|0}function FD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=fE()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=n2(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,mB(U,G)|0,G),B=J}function fE(){var p=0,y=0;if(n[7616]|0||(Jt(9136),pu(24,9136,X|0)|0,y=7616,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9136)|0)){p=9136,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Jt(9136)}return 9136}function n2(p){return p=p|0,0}function mB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=fE()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],iy(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(sY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function bd(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0;le=B,B=B+32|0,an=le+24|0,rr=le+20|0,Xe=le+16|0,It=le+12|0,bt=le+8|0,Ge=le+4|0,Ks=le,o[rr>>2]=y,o[Xe>>2]=w,o[It>>2]=G,o[bt>>2]=J,o[Ge>>2]=U,U=p+28|0,o[Ks>>2]=o[U>>2],o[an>>2]=o[Ks>>2],s1(p+24|0,an,rr,It,bt,Xe,Ge)|0,o[U>>2]=o[o[U>>2]>>2],B=le}function s1(p,y,w,G,J,U,le){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,p=Uh(y)|0,y=Ku(24)|0,wb(y+4|0,o[w>>2]|0,o[G>>2]|0,o[J>>2]|0,o[U>>2]|0,o[le>>2]|0),o[y>>2]=o[p>>2],o[p>>2]=y,y|0}function Uh(p){return p=p|0,o[p>>2]|0}function wb(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=G,o[p+12>>2]=J,o[p+16>>2]=U}function Uu(p,y){return p=p|0,y=y|0,y|p|0}function iy(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function sY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=oY(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,jR(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],iy(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,aY(p,Ge),tt(Ge),B=bt;return}}function oY(p){return p=p|0,357913941}function jR(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function aY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function tt(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Jt(p){p=p|0,Is(p)}function kr(p){p=p|0,ui(p+24|0)}function Xr(p){return p=p|0,o[p>>2]|0}function ui(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Is(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,3,y,Rs()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Hs(){return 9228}function Rs(){return 1140}function ja(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=sl(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=Nd(y,G)|0,B=w,y|0}function ho(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,o[p>>2]=y,o[p+4>>2]=w,o[p+8>>2]=G,o[p+12>>2]=J,o[p+16>>2]=U}function sl(p){return p=p|0,(o[(fE()|0)+24>>2]|0)+(p*12|0)|0}function Nd(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+48|0,G=J,w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),qD[w&31](G,p),G=ed(G)|0,B=J,G|0}function ed(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(Og()|0)|0,G?(o1(y,G),Tb(w,y),q2(p,w),p=IE(y)|0):p=zR(p)|0,B=J,p|0}function Og(){var p=0;return n[7632]|0||(ye(9184),pu(25,9184,X|0)|0,p=7632,o[p>>2]=1,o[p+4>>2]=0),9184}function Nh(p){return p=p|0,o[p+36>>2]|0}function o1(p,y){p=p|0,y=y|0,o[p>>2]=y,o[p+4>>2]=p,o[p+8>>2]=0}function Tb(p,y){p=p|0,y=y|0,o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=0}function q2(p,y){p=p|0,y=y|0,wA(y,p,p+8|0,p+16|0,p+24|0,p+32|0,p+40|0)|0}function IE(p){return p=p|0,o[(o[p+4>>2]|0)+8>>2]|0}function zR(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;Xe=B,B=B+16|0,w=Xe+4|0,G=Xe,J=Fb(8)|0,U=J,le=Ku(48)|0,Ge=le,y=Ge+48|0;do o[Ge>>2]=o[p>>2],Ge=Ge+4|0,p=p+4|0;while((Ge|0)<(y|0));return y=U+4|0,o[y>>2]=le,Ge=Ku(8)|0,le=o[y>>2]|0,o[G>>2]=0,o[w>>2]=o[G>>2],e3(Ge,le,w),o[J>>2]=Ge,B=Xe,U|0}function e3(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1092,o[w+12>>2]=y,o[p+4>>2]=w}function IA(p){p=p|0,dz(p),ti(p)}function EI(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function zd(p){p=p|0,ti(p)}function wA(p,y,w,G,J,U,le){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,U=qR(o[p>>2]|0,y,w,G,J,U,le)|0,le=p+4|0,o[(o[le>>2]|0)+8>>2]=U,o[(o[le>>2]|0)+8>>2]|0}function qR(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0;var Ge=0,Xe=0;return Ge=B,B=B+16|0,Xe=Ge,xw(Xe),p=qf(p)|0,le=sy(p,+C[y>>3],+C[w>>3],+C[G>>3],+C[J>>3],+C[U>>3],+C[le>>3])|0,oS(Xe),B=Ge,le|0}function sy(p,y,w,G,J,U,le){p=p|0,y=+y,w=+w,G=+G,J=+J,U=+U,le=+le;var Ge=0;return Ge=Sb($2()|0)|0,y=+mp(y),w=+mp(w),G=+mp(G),J=+mp(J),U=+mp(U),Ps(0,Ge|0,p|0,+y,+w,+G,+J,+U,+ +mp(le))|0}function $2(){var p=0;return n[7624]|0||(Eo(9172),p=7624,o[p>>2]=1,o[p+4>>2]=0),9172}function Eo(p){p=p|0,Ny(p,z()|0,6)}function z(){return 1112}function ye(p){p=p|0,Hc(p)}function Ve(p){p=p|0,Ct(p+24|0),wr(p+16|0)}function Ct(p){p=p|0,Lo(p)}function wr(p){p=p|0,ai(p)}function ai(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function Lo(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function Hc(p){p=p|0;var y=0;o[p+16>>2]=0,o[p+20>>2]=0,y=p+24|0,o[y>>2]=0,o[p+28>>2]=y,o[p+36>>2]=0,n[p+40>>0]=0,n[p+41>>0]=0}function ad(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],dm(p,w,J,0),B=G}function dm(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=rv()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=nv(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,yx(U,G)|0,G),B=J}function rv(){var p=0,y=0;if(n[7640]|0||(Vo(9232),pu(26,9232,X|0)|0,y=7640,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9232)|0)){p=9232,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Vo(9232)}return 9232}function nv(p){return p=p|0,0}function yx(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=rv()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],Dd(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(ji(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function Dd(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function ji(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=SL(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,$l(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],Dd(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Ap(p,Ge),Bc(Ge),B=bt;return}}function SL(p){return p=p|0,357913941}function $l(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Ap(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Bc(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Vo(p){p=p|0,J6(p)}function iv(p){p=p|0,nf(p+24|0)}function nf(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function J6(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,cY()|0,3),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cY(){return 1144}function t3(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+16|0,le=U+8|0,Ge=U,Xe=pF(p)|0,p=o[Xe+4>>2]|0,o[Ge>>2]=o[Xe>>2],o[Ge+4>>2]=p,o[le>>2]=o[Ge>>2],o[le+4>>2]=o[Ge+4>>2],rh(y,le,w,G,J),B=U}function pF(p){return p=p|0,(o[(rv()|0)+24>>2]|0)+(p*12|0)|0}function rh(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;bt=B,B=B+16|0,le=bt+2|0,Ge=bt+1|0,Xe=bt,U=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(U=o[(o[p>>2]|0)+U>>2]|0),Cw(le,w),w=+Il(le,w),Cw(Ge,G),G=+Il(Ge,G),CB(Xe,J),Xe=Rb(Xe,J)|0,eQ[U&1](p,w,G,Xe),B=bt}function Cw(p,y){p=p|0,y=+y}function Il(p,y){return p=p|0,y=+y,+ +Cre(y)}function CB(p,y){p=p|0,y=y|0}function Rb(p,y){return p=p|0,y=y|0,$R(y)|0}function $R(p){return p=p|0,p|0}function Cre(p){return p=+p,+p}function vL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],uJ(p,w,J,1),B=G}function uJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=lY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=r3(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,U6(U,G)|0,G),B=J}function lY(){var p=0,y=0;if(n[7648]|0||(Es(9268),pu(27,9268,X|0)|0,y=7648,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9268)|0)){p=9268,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Es(9268)}return 9268}function r3(p){return p=p|0,0}function U6(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=lY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],gJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(K6(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function gJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function K6(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=uY(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,bx(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],gJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,_re(p,Ge),Ex(Ge),B=bt;return}}function uY(p){return p=p|0,357913941}function bx(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function _re(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Ex(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Es(p){p=p|0,Ua(p)}function Aa(p){p=p|0,ha(p+24|0)}function ha(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Ua(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,4,y,wc()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function wc(){return 1160}function hA(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=Pd(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=Kh(y,G)|0,B=w,y|0}function Pd(p){return p=p|0,(o[(lY()|0)+24>>2]|0)+(p*12|0)|0}function Kh(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),i2(mC[w&31](p)|0)|0}function i2(p){return p=p|0,p&1|0}function a1(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Nb(p,w,J,0),B=G}function Nb(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=sv()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=oP(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,fF(U,G)|0,G),B=J}function sv(){var p=0,y=0;if(n[7656]|0||(dJ(9304),pu(28,9304,X|0)|0,y=7656,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9304)|0)){p=9304,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));dJ(9304)}return 9304}function oP(p){return p=p|0,0}function fF(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=sv()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],ov(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(eN(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function ov(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function eN(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=AJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,j6(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],ov(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sx(p,Ge),c1(Ge),B=bt;return}}function AJ(p){return p=p|0,357913941}function j6(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sx(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c1(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function dJ(p){p=p|0,KFe(p)}function rye(p){p=p|0,pJ(p+24|0)}function pJ(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function KFe(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,ZD()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function ZD(){return 1164}function n3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=_w(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],fJ(y,J,w),B=G}function _w(p){return p=p|0,(o[(sv()|0)+24>>2]|0)+(p*12|0)|0}function fJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),vx(J,w),w=IF(J,w)|0,qD[G&31](p,w),_B(J),B=U}function vx(p,y){p=p|0,y=y|0,GC(p,y)}function IF(p,y){return p=p|0,y=y|0,p|0}function _B(p){p=p|0,yb(p)}function GC(p,y){p=p|0,y=y|0,aP(p,y)}function aP(p,y){p=p|0,y=y|0,o[p>>2]=y}function gY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],i3(p,w,J,0),B=G}function i3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=IJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=s2(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,o2(U,G)|0,G),B=J}function IJ(){var p=0,y=0;if(n[7664]|0||(BL(9340),pu(29,9340,X|0)|0,y=7664,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9340)|0)){p=9340,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));BL(9340)}return 9340}function s2(p){return p=p|0,0}function o2(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=IJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],hJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(AY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function hJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function AY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=yre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,dY(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],hJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,z6(p,Ge),q6(Ge),B=bt;return}}function yre(p){return p=p|0,357913941}function dY(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function z6(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function q6(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function BL(p){p=p|0,wL(p)}function tN(p){p=p|0,pY(p+24|0)}function pY(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function wL(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,4,y,bre()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bre(){return 1180}function LD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=ige(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=$6(y,J,w)|0,B=G,w|0}function ige(p){return p=p|0,(o[(IJ()|0)+24>>2]|0)+(p*12|0)|0}function $6(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),eS(J,w),J=rN(J,w)|0,J=mJ(uie[G&15](p,J)|0)|0,B=U,J|0}function eS(p,y){p=p|0,y=y|0}function rN(p,y){return p=p|0,y=y|0,nN(y)|0}function mJ(p){return p=p|0,p|0}function nN(p){return p=p|0,p|0}function sge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Ere(p,w,J,0),B=G}function Ere(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=e7()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=kp(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,TL(U,G)|0,G),B=J}function e7(){var p=0,y=0;if(n[7672]|0||(Ig(9376),pu(30,9376,X|0)|0,y=7672,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9376)|0)){p=9376,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Ig(9376)}return 9376}function kp(p){return p=p|0,0}function TL(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=e7()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],fY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(pC(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function fY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function pC(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=cP(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,VD(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],fY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,IY(p,Ge),Sre(Ge),B=bt;return}}function cP(p){return p=p|0,357913941}function VD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function IY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Sre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Ig(p){p=p|0,RL(p)}function fC(p){p=p|0,VI(p+24|0)}function VI(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function RL(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,bu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bu(){return 1196}function s3(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=kd(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=hY(y,G)|0,B=w,y|0}function kd(p){return p=p|0,(o[(e7()|0)+24>>2]|0)+(p*12|0)|0}function hY(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),mJ(mC[w&31](p)|0)|0}function nye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],lP(p,w,J,1),B=G}function lP(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=CJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=PI(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,xa(U,G)|0,G),B=J}function CJ(){var p=0,y=0;if(n[7680]|0||(mY(9412),pu(31,9412,X|0)|0,y=7680,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9412)|0)){p=9412,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));mY(9412)}return 9412}function PI(p){return p=p|0,0}function xa(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=CJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],yB(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(t0(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function yB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function t0(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=vre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,NL(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],yB(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,dp(p,Ge),Bx(Ge),B=bt;return}}function vre(p){return p=p|0,357913941}function NL(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function dp(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Bx(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function mY(p){p=p|0,oge(p)}function yw(p){p=p|0,uc(p+24|0)}function uc(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function oge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,Nu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Nu(){return 1200}function CY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=o3(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=uP(y,G)|0,B=w,y|0}function o3(p){return p=p|0,(o[(CJ()|0)+24>>2]|0)+(p*12|0)|0}function uP(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),_J(mC[w&31](p)|0)|0}function _J(p){return p=p|0,p|0}function yJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bJ(p,w,J,0),B=G}function bJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=gP()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Bre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,EJ(U,G)|0,G),B=J}function gP(){var p=0,y=0;if(n[7688]|0||(D_(9448),pu(32,9448,X|0)|0,y=7688,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9448)|0)){p=9448,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));D_(9448)}return 9448}function Bre(p){return p=p|0,0}function EJ(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=gP()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],wre(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(SJ(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function wre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function SJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,hF(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],wre(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,av(p,Ge),AP(Ge),B=bt;return}}function Tre(p){return p=p|0,357913941}function hF(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function av(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function AP(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function D_(p){p=p|0,sye(p)}function iye(p){p=p|0,Rre(p+24|0)}function Rre(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function sye(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,iN()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function iN(){return 1204}function age(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=un(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],_Y(y,J,w),B=G}function un(p){return p=p|0,(o[(gP()|0)+24>>2]|0)+(p*12|0)|0}function _Y(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),Ed(J,w),J=VT(J,w)|0,qD[G&31](p,J),B=U}function Ed(p,y){p=p|0,y=y|0}function VT(p,y){return p=p|0,y=y|0,sN(y)|0}function sN(p){return p=p|0,p|0}function Db(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],t7(p,w,J,0),B=G}function t7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=PT()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=DL(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,r7(U,G)|0,G),B=J}function PT(){var p=0,y=0;if(n[7696]|0||(a3(9484),pu(33,9484,X|0)|0,y=7696,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9484)|0)){p=9484,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));a3(9484)}return 9484}function DL(p){return p=p|0,0}function r7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=PT()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],n7(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(hE(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function n7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function hE(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=cge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Nre(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],n7(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,oye(p,Ge),wx(Ge),B=bt;return}}function cge(p){return p=p|0,357913941}function Nre(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function oye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function wx(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function a3(p){p=p|0,CE(p)}function mE(p){p=p|0,WI(p+24|0)}function WI(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function CE(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,Dre()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Dre(){return 1212}function lge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=jh(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],uge(y,U,w,G),B=J}function jh(p){return p=p|0,(o[(PT()|0)+24>>2]|0)+(p*12|0)|0}function uge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),Ed(U,w),U=VT(U,w)|0,eS(le,G),le=rN(le,G)|0,UT[J&15](p,U,le),B=Ge}function vJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Lc(p,w,J,1),B=G}function Lc(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=gge()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=kre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,yY(U,G)|0,G),B=J}function gge(){var p=0,y=0;if(n[7704]|0||(RJ(9520),pu(34,9520,X|0)|0,y=7704,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9520)|0)){p=9520,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));RJ(9520)}return 9520}function kre(p){return p=p|0,0}function yY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=gge()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],kL(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(BJ(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function kL(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function BJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=wJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,TJ(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],kL(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,eI(p,Ge),c3(Ge),B=bt;return}}function wJ(p){return p=p|0,357913941}function TJ(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function eI(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c3(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function RJ(p){p=p|0,u3(p)}function l3(p){p=p|0,i7(p+24|0)}function i7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function u3(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,cv()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cv(){return 1224}function bB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;return J=B,B=B+16|0,U=J+8|0,le=J,Ge=Xm(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],G=+If(y,U,w),B=J,+G}function Xm(p){return p=p|0,(o[(gge()|0)+24>>2]|0)+(p*12|0)|0}function If(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,le=+Id(+rEe[G&7](p,J)),B=U,+le}function WT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],l1(p,w,J,1),B=G}function l1(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=bY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=s7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,IC(U,G)|0,G),B=J}function bY(){var p=0,y=0;if(n[7712]|0||(Fre(9556),pu(35,9556,X|0)|0,y=7712,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9556)|0)){p=9556,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Fre(9556)}return 9556}function s7(p){return p=p|0,0}function IC(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=bY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],xre(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(mA(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function xre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function mA(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tx(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Gre(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],xre(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,EB(p,Ge),aye(Ge),B=bt;return}}function Tx(p){return p=p|0,357913941}function Gre(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function EB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function aye(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Fre(p){p=p|0,EY(p)}function Zre(p){p=p|0,PD(p+24|0)}function PD(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function EY(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,Lre()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Lre(){return 1232}function Age(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=Cp(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=+dge(y,J),B=G,+w}function Cp(p){return p=p|0,(o[(bY()|0)+24>>2]|0)+(p*12|0)|0}function dge(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),+ +Id(+GP[w&15](p))}function qu(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bw(p,w,J,1),B=G}function bw(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=WD()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=o7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,pge(U,G)|0,G),B=J}function WD(){var p=0,y=0;if(n[7720]|0||(SB(9592),pu(36,9592,X|0)|0,y=7720,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9592)|0)){p=9592,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));SB(9592)}return 9592}function o7(p){return p=p|0,0}function pge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=WD()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],NJ(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(jFe(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function NJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function jFe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=fge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,S0(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],NJ(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Ew(p,Ge),Dh(Ge),B=bt;return}}function fge(p){return p=p|0,357913941}function S0(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Ew(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Dh(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function SB(p){p=p|0,DJ(p)}function a7(p){p=p|0,dP(p+24|0)}function dP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function DJ(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,7,y,Vre()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Vre(){return 1276}function Ige(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=xL(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=c7(y,G)|0,B=w,y|0}function xL(p){return p=p|0,(o[(WD()|0)+24>>2]|0)+(p*12|0)|0}function c7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;return J=B,B=B+16|0,G=J,w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),qD[w&31](G,p),G=kJ(G)|0,B=J,G|0}function kJ(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(l7()|0)|0,G?(o1(y,G),Tb(w,y),cye(p,w),p=IE(y)|0):p=xJ(p)|0,B=J,p|0}function l7(){var p=0;return n[7736]|0||(Cge(9640),pu(25,9640,X|0)|0,p=7736,o[p>>2]=1,o[p+4>>2]=0),9640}function cye(p,y){p=p|0,y=y|0,GJ(y,p,p+8|0)|0}function xJ(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(16)|0,o[Ge>>2]=o[p>>2],o[Ge+4>>2]=o[p+4>>2],o[Ge+8>>2]=o[p+8>>2],o[Ge+12>>2]=o[p+12>>2],U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],oN(p,U,J),o[G>>2]=p,B=w,y|0}function oN(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1244,o[w+12>>2]=y,o[p+4>>2]=w}function hge(p){p=p|0,dz(p),ti(p)}function Pre(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function pP(p){p=p|0,ti(p)}function GJ(p,y,w){return p=p|0,y=y|0,w=w|0,y=ms(o[p>>2]|0,y,w)|0,w=p+4|0,o[(o[w>>2]|0)+8>>2]=y,o[(o[w>>2]|0)+8>>2]|0}function ms(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;return G=B,B=B+16|0,J=G,xw(J),p=qf(p)|0,w=FJ(p,o[y>>2]|0,+C[w>>3])|0,oS(J),B=G,w|0}function FJ(p,y,w){p=p|0,y=y|0,w=+w;var G=0;return G=Sb(SY()|0)|0,y=r2(y)|0,Xa(0,G|0,p|0,y|0,+ +mp(w))|0}function SY(){var p=0;return n[7728]|0||(mge(9628),p=7728,o[p>>2]=1,o[p+4>>2]=0),9628}function mge(p){p=p|0,Ny(p,OD()|0,2)}function OD(){return 1264}function Cge(p){p=p|0,Hc(p)}function vY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],u7(p,w,J,1),B=G}function u7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=sf()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=u1(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,_ge(U,G)|0,G),B=J}function sf(){var p=0,y=0;if(n[7744]|0||(yge(9684),pu(37,9684,X|0)|0,y=7744,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9684)|0)){p=9684,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));yge(9684)}return 9684}function u1(p){return p=p|0,0}function _ge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=sf()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],BY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(lye(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function BY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function lye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=uye(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,gye(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],BY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sw(p,Ge),Wre(Ge),B=bt;return}}function uye(p){return p=p|0,357913941}function gye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Wre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function yge(p){p=p|0,g7(p)}function FL(p){p=p|0,Ore(p+24|0)}function Ore(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function g7(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,5,y,bge()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function bge(){return 1280}function MD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=Mre(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=Ege(y,J,w)|0,B=G,w|0}function Mre(p){return p=p|0,(o[(sf()|0)+24>>2]|0)+(p*12|0)|0}function Ege(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return le=B,B=B+32|0,J=le,U=le+16|0,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(U,w),U=Rb(U,w)|0,UT[G&15](J,p,U),U=kJ(J)|0,B=le,U|0}function mF(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],zFe(p,w,J,1),B=G}function zFe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=wY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=HD(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,CF(U,G)|0,G),B=J}function wY(){var p=0,y=0;if(n[7752]|0||(g1(9720),pu(38,9720,X|0)|0,y=7752,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9720)|0)){p=9720,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));g1(9720)}return 9720}function HD(p){return p=p|0,0}function CF(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=wY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],lv(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(TY(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function lv(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function TY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=xp(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Aye(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],lv(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,fP(p,Ge),tA(Ge),B=bt;return}}function xp(p){return p=p|0,357913941}function Aye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function fP(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function tA(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function g1(p){p=p|0,Sge(p)}function Hre(p){p=p|0,A7(p+24|0)}function A7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Sge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,qFe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function qFe(){return 1288}function vge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;return w=B,B=B+16|0,G=w+8|0,J=w,U=vw(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],y=ZJ(y,G)|0,B=w,y|0}function vw(p){return p=p|0,(o[(wY()|0)+24>>2]|0)+(p*12|0)|0}function ZJ(p,y){p=p|0,y=y|0;var w=0;return w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),Z(mC[w&31](p)|0)|0}function Yre(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],s_(p,w,J,0),B=G}function s_(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=RY()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Qre(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Bge(U,G)|0,G),B=J}function RY(){var p=0,y=0;if(n[7760]|0||(LJ(9756),pu(39,9756,X|0)|0,y=7760,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9756)|0)){p=9756,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));LJ(9756)}return 9756}function Qre(p){return p=p|0,0}function Bge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=RY()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],NY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(wge(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function NY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function wge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=Tge(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,vB(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],NY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,_F(p,Ge),Xre(Ge),B=bt;return}}function Tge(p){return p=p|0,357913941}function vB(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function _F(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Xre(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function LJ(p){p=p|0,Jre(p)}function $Fe(p){p=p|0,g3(p+24|0)}function g3(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Jre(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,VJ()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function VJ(){return 1292}function PJ(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=Ure(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Kre(y,J,w),B=G}function Ure(p){return p=p|0,(o[(RY()|0)+24>>2]|0)+(p*12|0)|0}function Kre(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),Cw(J,w),w=+Il(J,w),u$e[G&31](p,w),B=U}function IP(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],Rge(p,w,J,0),B=G}function Rge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=d7()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=p7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Nge(U,G)|0,G),B=J}function d7(){var p=0,y=0;if(n[7768]|0||(kY(9792),pu(40,9792,X|0)|0,y=7768,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9792)|0)){p=9792,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));kY(9792)}return 9792}function p7(p){return p=p|0,0}function Nge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=d7()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],DY(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(f7(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function DY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function f7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=tS(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Dge(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],DY(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Wd(p,Ge),kge(Ge),B=bt;return}}function tS(p){return p=p|0,357913941}function Dge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Wd(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kge(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function kY(p){p=p|0,oy(p)}function xY(p){p=p|0,hP(p+24|0)}function hP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function oy(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,1,y,mo()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function mo(){return 1300}function A3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=_E(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],Bw(y,U,w,G),B=J}function _E(p){return p=p|0,(o[(d7()|0)+24>>2]|0)+(p*12|0)|0}function Bw(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),CB(U,w),U=Rb(U,w)|0,Cw(le,G),G=+Il(le,G),Aie[J&15](p,U,G),B=Ge}function ie(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],he(p,w,J,0),B=G}function he(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=ze()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Ut(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Qr(U,G)|0,G),B=J}function ze(){var p=0,y=0;if(n[7776]|0||(fc(9828),pu(41,9828,X|0)|0,y=7776,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9828)|0)){p=9828,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));fc(9828)}return 9828}function Ut(p){return p=p|0,0}function Qr(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=ze()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],kn(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(Fi(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function kn(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function Fi(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=rs(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,qs(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],kn(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,vc(p,Ge),qa(Ge),B=bt;return}}function rs(p){return p=p|0,357913941}function qs(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function vc(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function qa(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function fc(p){p=p|0,VA(p)}function vl(p){p=p|0,Zu(p+24|0)}function Zu(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function VA(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,7,y,hf()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function hf(){return 1312}function Sd(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=tI(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],rI(y,J,w),B=G}function tI(p){return p=p|0,(o[(ze()|0)+24>>2]|0)+(p*12|0)|0}function rI(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,qD[G&31](p,J),B=U}function OT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],rS(p,w,J,0),B=G}function rS(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=Dy()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=Up(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,uv(U,G)|0,G),B=J}function Dy(){var p=0,y=0;if(n[7784]|0||(Fge(9864),pu(42,9864,X|0)|0,y=7784,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9864)|0)){p=9864,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Fge(9864)}return 9864}function Up(p){return p=p|0,0}function uv(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=Dy()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],ky(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(nS(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function ky(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function nS(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=jre(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,xge(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],ky(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,tVt(p,Ge),Gge(Ge),B=bt;return}}function jre(p){return p=p|0,357913941}function xge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function tVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Gge(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function Fge(p){p=p|0,nVt(p)}function dye(p){p=p|0,rVt(p+24|0)}function rVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function nVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,8,y,iVt()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function iVt(){return 1320}function sVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=oVt(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],aVt(y,J,w),B=G}function oVt(p){return p=p|0,(o[(Dy()|0)+24>>2]|0)+(p*12|0)|0}function aVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),ww(J,w),J=Iqe(J,w)|0,qD[G&31](p,J),B=U}function ww(p,y){p=p|0,y=y|0}function Iqe(p,y){return p=p|0,y=y|0,yF(y)|0}function yF(p){return p=p|0,p|0}function eZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],pye(p,w,J,0),B=G}function pye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=Zge()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=I7(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,h7(U,G)|0,G),B=J}function Zge(){var p=0,y=0;if(n[7792]|0||(a2(9900),pu(43,9900,X|0)|0,y=7792,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9900)|0)){p=9900,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));a2(9900)}return 9900}function I7(p){return p=p|0,0}function h7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=Zge()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],fye(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(Lge(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function fye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function Lge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=tZe(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,rZe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],fye(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Iye(p,Ge),mP(Ge),B=bt;return}}function tZe(p){return p=p|0,357913941}function rZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Iye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function mP(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function a2(p){p=p|0,iZe(p)}function Vge(p){p=p|0,nZe(p+24|0)}function nZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function iZe(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,22,y,WJ()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function WJ(){return 1344}function m7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0;w=B,B=B+16|0,G=w+8|0,J=w,U=Pge(p)|0,p=o[U+4>>2]|0,o[J>>2]=o[U>>2],o[J+4>>2]=p,o[G>>2]=o[J>>2],o[G+4>>2]=o[J+4>>2],zre(y,G),B=w}function Pge(p){return p=p|0,(o[(Zge()|0)+24>>2]|0)+(p*12|0)|0}function zre(p,y){p=p|0,y=y|0;var w=0;w=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(w=o[(o[p>>2]|0)+w>>2]|0),DF[w&127](p)}function A1(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=Wge()|0,p=hC(w)|0,bd(U,y,J,p,sZe(w,G)|0,G)}function Wge(){var p=0,y=0;if(n[7800]|0||(C7(9936),pu(44,9936,X|0)|0,y=7800,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9936)|0)){p=9936,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));C7(9936)}return 9936}function hC(p){return p=p|0,p|0}function sZe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=Wge()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(qre(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Oge(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function qre(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Oge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=r0(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,oZe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,qre(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Mge(p,J),aZe(J),B=Ge;return}}function r0(p){return p=p|0,536870911}function oZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Mge(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function aZe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function C7(p){p=p|0,$re(p)}function ZL(p){p=p|0,xy(p+24|0)}function xy(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function $re(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,23,y,iN()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Hge(p,y){p=p|0,y=y|0,ene(o[(cZe(p)|0)>>2]|0,y)}function cZe(p){return p=p|0,(o[(Wge()|0)+24>>2]|0)+(p<<3)|0}function ene(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,Ed(G,y),y=VT(G,y)|0,DF[p&127](y),B=w}function Yge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=OJ()|0,p=MJ(w)|0,bd(U,y,J,p,tne(w,G)|0,G)}function OJ(){var p=0,y=0;if(n[7808]|0||(rne(9972),pu(45,9972,X|0)|0,y=7808,o[y>>2]=1,o[y+4>>2]=0),!(Xr(9972)|0)){p=9972,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));rne(9972)}return 9972}function MJ(p){return p=p|0,p|0}function tne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=OJ()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(HJ(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Rx(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function HJ(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Rx(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=hye(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,mye(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,HJ(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,YJ(p,J),MT(J),B=Ge;return}}function hye(p){return p=p|0,536870911}function mye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function YJ(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function MT(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function rne(p){p=p|0,LL(p)}function Qge(p){p=p|0,lZe(p+24|0)}function lZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function LL(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,9,y,_7()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function _7(){return 1348}function Cye(p,y){return p=p|0,y=y|0,aN(o[(d3(p)|0)>>2]|0,y)|0}function d3(p){return p=p|0,(o[(OJ()|0)+24>>2]|0)+(p<<3)|0}function aN(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,n0(G,y),y=wo(G,y)|0,y=mJ(mC[p&31](y)|0)|0,B=w,y|0}function n0(p,y){p=p|0,y=y|0}function wo(p,y){return p=p|0,y=y|0,Xge(y)|0}function Xge(p){return p=p|0,p|0}function Jge(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=GY()|0,p=Uge(w)|0,bd(U,y,J,p,ay(w,G)|0,G)}function GY(){var p=0,y=0;if(n[7816]|0||(sne(10008),pu(46,10008,X|0)|0,y=7816,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10008)|0)){p=10008,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));sne(10008)}return 10008}function Uge(p){return p=p|0,p|0}function ay(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=GY()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(y7(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(CP(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function y7(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function CP(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=uZe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,hqe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,y7(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,nne(p,J),ine(J),B=Ge;return}}function uZe(p){return p=p|0,536870911}function hqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function nne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ine(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function sne(p){p=p|0,E7(p)}function b7(p){p=p|0,one(p+24|0)}function one(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function E7(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,15,y,bu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function cVt(p){return p=p|0,VL(o[(FY(p)|0)>>2]|0)|0}function FY(p){return p=p|0,(o[(GY()|0)+24>>2]|0)+(p<<3)|0}function VL(p){return p=p|0,mJ(mz[p&7]()|0)|0}function lVt(){var p=0;return n[7832]|0||(AZe(10052),pu(25,10052,X|0)|0,p=7832,o[p>>2]=1,o[p+4>>2]=0),10052}function gZe(p,y){p=p|0,y=y|0,o[p>>2]=_ye()|0,o[p+4>>2]=QJ()|0,o[p+12>>2]=y,o[p+8>>2]=ane()|0,o[p+32>>2]=2}function _ye(){return 11709}function QJ(){return 1188}function ane(){return nI()|0}function p3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(cN(w),ti(w)):y|0&&(xT(y),ti(y))}function _P(p,y){return p=p|0,y=y|0,y&p|0}function cN(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function nI(){var p=0;return n[7824]|0||(o[2511]=f3()|0,o[2512]=0,p=7824,o[p>>2]=1,o[p+4>>2]=0),10044}function f3(){return 0}function AZe(p){p=p|0,Hc(p)}function yye(p){p=p|0;var y=0,w=0,G=0,J=0,U=0;y=B,B=B+32|0,w=y+24|0,U=y+16|0,J=y+8|0,G=y,yP(p,4827),Kge(p,4834,3)|0,I3(p,3682,47)|0,o[U>>2]=9,o[U+4>>2]=0,o[w>>2]=o[U>>2],o[w+4>>2]=o[U+4>>2],cne(p,4841,w)|0,o[J>>2]=1,o[J+4>>2]=0,o[w>>2]=o[J>>2],o[w+4>>2]=o[J+4>>2],uVt(p,4871,w)|0,o[G>>2]=10,o[G+4>>2]=0,o[w>>2]=o[G>>2],o[w+4>>2]=o[G+4>>2],gVt(p,4891,w)|0,B=y}function yP(p,y){p=p|0,y=y|0;var w=0;w=HL()|0,o[p>>2]=w,Rw(w,y),BF(o[p>>2]|0)}function Kge(p,y,w){return p=p|0,y=y|0,w=w|0,EZe(p,ff(y)|0,w,0),p|0}function I3(p,y,w){return p=p|0,y=y|0,w=w|0,Ine(p,ff(y)|0,w,0),p|0}function cne(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],mZe(p,y,J),B=G,p|0}function uVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],iS(p,y,J),B=G,p|0}function gVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=o[w+4>>2]|0,o[U>>2]=o[w>>2],o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],jge(p,y,J),B=G,p|0}function jge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],YD(p,w,J,1),B=G}function YD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=XJ()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=bye(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,lne(U,G)|0,G),B=J}function XJ(){var p=0,y=0;if(n[7840]|0||(B7(10100),pu(48,10100,X|0)|0,y=7840,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10100)|0)){p=10100,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));B7(10100)}return 10100}function bye(p){return p=p|0,0}function lne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=XJ()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],Eye(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(S7(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function Eye(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function S7(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=dZe(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,pZe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],Eye(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,ZY(p,Ge),v7(Ge),B=bt;return}}function dZe(p){return p=p|0,357913941}function pZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function ZY(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function v7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function B7(p){p=p|0,JJ(p)}function une(p){p=p|0,LY(p+24|0)}function LY(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function JJ(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,6,y,h3()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function h3(){return 1364}function fZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;return G=B,B=B+16|0,J=G+8|0,U=G,le=VY(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],w=PY(y,J,w)|0,B=G,w|0}function VY(p){return p=p|0,(o[(XJ()|0)+24>>2]|0)+(p*12|0)|0}function PY(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),CB(J,w),J=Rb(J,w)|0,J=i2(uie[G&15](p,J)|0)|0,B=U,J|0}function iS(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],gne(p,w,J,0),B=G}function gne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=IZe()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=mqe(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,Cqe(U,G)|0,G),B=J}function IZe(){var p=0,y=0;if(n[7848]|0||(bqe(10136),pu(49,10136,X|0)|0,y=7848,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10136)|0)){p=10136,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));bqe(10136)}return 10136}function mqe(p){return p=p|0,0}function Cqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=IZe()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],m3(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(_qe(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function m3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function _qe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=UJ(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Ane(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],m3(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,Sye(p,Ge),yqe(Ge),B=bt;return}}function UJ(p){return p=p|0,357913941}function Ane(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function Sye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function yqe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function bqe(p){p=p|0,zge(p)}function vye(p){p=p|0,dne(p+24|0)}function dne(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function zge(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,9,y,Bye()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Bye(){return 1372}function PL(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,J=G+8|0,U=G,le=WL(p)|0,p=o[le+4>>2]|0,o[U>>2]=o[le>>2],o[U+4>>2]=p,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],bP(y,J,w),B=G}function WL(p){return p=p|0,(o[(IZe()|0)+24>>2]|0)+(p*12|0)|0}function bP(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=As;U=B,B=B+16|0,J=U,G=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(G=o[(o[p>>2]|0)+G>>2]|0),KJ(J,w),le=ke(hZe(J,w)),l$e[G&1](p,le),B=U}function KJ(p,y){p=p|0,y=+y}function hZe(p,y){return p=p|0,y=+y,ke(Eqe(y))}function Eqe(p){return p=+p,ke(p)}function mZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,J=G+8|0,U=G,Ge=o[w>>2]|0,le=o[w+4>>2]|0,w=ff(y)|0,o[U>>2]=Ge,o[U+4>>2]=le,o[J>>2]=o[U>>2],o[J+4>>2]=o[U+4>>2],CZe(p,w,J,0),B=G}function CZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;J=B,B=B+32|0,U=J+16|0,It=J+8|0,Ge=J,bt=o[w>>2]|0,Xe=o[w+4>>2]|0,le=o[p>>2]|0,p=QD()|0,o[It>>2]=bt,o[It+4>>2]=Xe,o[U>>2]=o[It>>2],o[U+4>>2]=o[It+4>>2],w=bF(U)|0,o[Ge>>2]=bt,o[Ge+4>>2]=Xe,o[U>>2]=o[Ge>>2],o[U+4>>2]=o[Ge+4>>2],bd(le,y,p,w,AVt(U,G)|0,G),B=J}function QD(){var p=0,y=0;if(n[7856]|0||(wye(10172),pu(50,10172,X|0)|0,y=7856,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10172)|0)){p=10172,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));wye(10172)}return 10172}function bF(p){return p=p|0,0}function AVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;return It=B,B=B+32|0,J=It+24|0,le=It+16|0,Ge=It,Xe=It+8|0,U=o[p>>2]|0,G=o[p+4>>2]|0,o[Ge>>2]=U,o[Ge+4>>2]=G,rr=QD()|0,bt=rr+24|0,p=Uu(y,4)|0,o[Xe>>2]=p,y=rr+28|0,w=o[y>>2]|0,w>>>0<(o[rr+32>>2]|0)>>>0?(o[le>>2]=U,o[le+4>>2]=G,o[J>>2]=o[le>>2],o[J+4>>2]=o[le+4>>2],qge(w,J,p),p=(o[y>>2]|0)+12|0,o[y>>2]=p):(_Ze(bt,Ge,Xe),p=o[y>>2]|0),B=It,((p-(o[bt>>2]|0)|0)/12|0)+-1|0}function qge(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=o[y+4>>2]|0,o[p>>2]=o[y>>2],o[p+4>>2]=G,o[p+8>>2]=w}function _Ze(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;if(bt=B,B=B+48|0,G=bt+32|0,le=bt+24|0,Ge=bt,Xe=p+4|0,J=(((o[Xe>>2]|0)-(o[p>>2]|0)|0)/12|0)+1|0,U=C3(p)|0,U>>>0>>0)me(p);else{It=o[p>>2]|0,an=((o[p+8>>2]|0)-It|0)/12|0,rr=an<<1,Sqe(Ge,an>>>0>>1>>>0?rr>>>0>>0?J:rr:U,((o[Xe>>2]|0)-It|0)/12|0,p+8|0),Xe=Ge+8|0,U=o[Xe>>2]|0,J=o[y+4>>2]|0,w=o[w>>2]|0,o[le>>2]=o[y>>2],o[le+4>>2]=J,o[G>>2]=o[le>>2],o[G+4>>2]=o[le+4>>2],qge(U,G,w),o[Xe>>2]=(o[Xe>>2]|0)+12,pne(p,Ge),gv(Ge),B=bt;return}}function C3(p){return p=p|0,357913941}function Sqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>357913941)Ko();else{J=Ku(y*12|0)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w*12|0)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y*12|0)}function pne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(((J|0)/-12|0)*12|0)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function gv(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~(((G+-12-y|0)>>>0)/12|0)*12|0)),p=o[p>>2]|0,p|0&&ti(p)}function wye(p){p=p|0,Tye(p)}function w7(p){p=p|0,QA(p+24|0)}function QA(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~(((y+-12-G|0)>>>0)/12|0)*12|0)),ti(w))}function Tye(p){p=p|0;var y=0;y=Hs()|0,ho(p,2,3,y,EP()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function EP(){return 1380}function HT(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+8|0,le=J,Ge=T7(p)|0,p=o[Ge+4>>2]|0,o[le>>2]=o[Ge>>2],o[le+4>>2]=p,o[U>>2]=o[le>>2],o[U+4>>2]=o[le+4>>2],fne(y,U,w,G),B=J}function T7(p){return p=p|0,(o[(QD()|0)+24>>2]|0)+(p*12|0)|0}function fne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;Ge=B,B=B+16|0,U=Ge+1|0,le=Ge,J=o[y>>2]|0,y=o[y+4>>2]|0,p=p+(y>>1)|0,y&1&&(J=o[(o[p>>2]|0)+J>>2]|0),CB(U,w),U=Rb(U,w)|0,yZe(le,G),le=Rye(le,G)|0,UT[J&15](p,U,le),B=Ge}function yZe(p,y){p=p|0,y=y|0}function Rye(p,y){return p=p|0,y=y|0,$ge(y)|0}function $ge(p){return p=p|0,(p|0)!=0|0}function Ine(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=hne()|0,p=bZe(w)|0,bd(U,y,J,p,BB(w,G)|0,G)}function hne(){var p=0,y=0;if(n[7864]|0||(v0(10208),pu(51,10208,X|0)|0,y=7864,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10208)|0)){p=10208,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));v0(10208)}return 10208}function bZe(p){return p=p|0,p|0}function BB(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=hne()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(OL(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(jJ(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function OL(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function jJ(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=R7(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,N7(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,OL(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,mne(p,J),ML(J),B=Ge;return}}function R7(p){return p=p|0,536870911}function N7(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function mne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ML(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function v0(p){p=p|0,tAe(p)}function Nye(p){p=p|0,eAe(p+24|0)}function eAe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function tAe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,24,y,Dye()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Dye(){return 1392}function WY(p,y){p=p|0,y=y|0,zJ(o[(kye(p)|0)>>2]|0,y)}function kye(p){return p=p|0,(o[(hne()|0)+24>>2]|0)+(p<<3)|0}function zJ(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,n0(G,y),y=wo(G,y)|0,DF[p&127](y),B=w}function EZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=SI()|0,p=D7(w)|0,bd(U,y,J,p,d1(w,G)|0,G)}function SI(){var p=0,y=0;if(n[7872]|0||(qJ(10244),pu(52,10244,X|0)|0,y=7872,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10244)|0)){p=10244,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));qJ(10244)}return 10244}function D7(p){return p=p|0,p|0}function d1(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=SI()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Cne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(XD(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Cne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function XD(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=rAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,_3(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Cne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Tw(p,J),c2(J),B=Ge;return}}function rAe(p){return p=p|0,536870911}function _3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Tw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function c2(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function qJ(p){p=p|0,SZe(p)}function _ne(p){p=p|0,k7(p+24|0)}function k7(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function SZe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,16,y,dVt()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function dVt(){return 1400}function nAe(p){return p=p|0,kb(o[(xye(p)|0)>>2]|0)|0}function xye(p){return p=p|0,(o[(SI()|0)+24>>2]|0)+(p<<3)|0}function kb(p){return p=p|0,Gye(mz[p&7]()|0)|0}function Gye(p){return p=p|0,p|0}function HL(){var p=0;return n[7880]|0||(x7(10280),pu(25,10280,X|0)|0,p=7880,o[p>>2]=1,o[p+4>>2]=0),10280}function Rw(p,y){p=p|0,y=y|0,o[p>>2]=Fye()|0,o[p+4>>2]=sp()|0,o[p+12>>2]=y,o[p+8>>2]=vZe()|0,o[p+32>>2]=4}function Fye(){return 11711}function sp(){return 1356}function vZe(){return nI()|0}function Zye(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(Lye(w),ti(w)):y|0&&(ty(y),ti(y))}function Lye(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function x7(p){p=p|0,Hc(p)}function vqe(p){p=p|0,BZe(p,4920),yne(p)|0,bne(p)|0}function BZe(p,y){p=p|0,y=y|0;var w=0;w=l7()|0,o[p>>2]=w,iAe(w,y),BF(o[p>>2]|0)}function yne(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,Tqe()|0),p|0}function bne(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,$J()|0),p|0}function $J(){var p=0;return n[7888]|0||(Bqe(10328),pu(53,10328,X|0)|0,p=7888,o[p>>2]=1,o[p+4>>2]=0),Xr(10328)|0||Bqe(10328),10328}function EF(p,y){p=p|0,y=y|0,bd(p,0,y,0,0,0)}function Bqe(p){p=p|0,Pye(p),G7(p,10)}function Vye(p){p=p|0,wZe(p+24|0)}function wZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Pye(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,1,y,wqe()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function pVt(p,y,w){p=p|0,y=y|0,w=+w,fVt(p,y,w)}function G7(p,y){p=p|0,y=y|0,o[p+20>>2]=y}function fVt(p,y,w){p=p|0,y=y|0,w=+w;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+16|0,U=G+8|0,Ge=G+13|0,J=G,le=G+12|0,CB(Ge,y),o[U>>2]=Rb(Ge,y)|0,Cw(le,w),C[J>>3]=+Il(le,w),IVt(p,U,J),B=G}function IVt(p,y,w){p=p|0,y=y|0,w=w|0,dC(p+8|0,o[y>>2]|0,+C[w>>3]),n[p+24>>0]=1}function wqe(){return 1404}function hVt(p,y){return p=p|0,y=+y,YT(p,y)|0}function YT(p,y){p=p|0,y=+y;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+16|0,U=G+4|0,le=G+8|0,Ge=G,J=Fb(8)|0,w=J,Xe=Ku(16)|0,CB(U,p),p=Rb(U,p)|0,Cw(le,y),dC(Xe,p,+Il(le,y)),le=w+4|0,o[le>>2]=Xe,p=Ku(8)|0,le=o[le>>2]|0,o[Ge>>2]=0,o[U>>2]=o[Ge>>2],oN(p,le,U),o[J>>2]=p,B=G,w|0}function Tqe(){var p=0;return n[7896]|0||(Ene(10364),pu(54,10364,X|0)|0,p=7896,o[p>>2]=1,o[p+4>>2]=0),Xr(10364)|0||Ene(10364),10364}function Ene(p){p=p|0,_Vt(p),G7(p,55)}function mVt(p){p=p|0,CVt(p+24|0)}function CVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function _Vt(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,4,y,EVt()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function yVt(p){p=p|0,bVt(p)}function bVt(p){p=p|0,Wye(p)}function Wye(p){p=p|0,l2(p+8|0),n[p+24>>0]=1}function l2(p){p=p|0,o[p>>2]=0,C[p+8>>3]=0}function EVt(){return 1424}function eU(){return Sne()|0}function Sne(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,G=Ku(16)|0,l2(G),U=p+4|0,o[U>>2]=G,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],oN(G,U,J),o[w>>2]=G,B=y,p|0}function iAe(p,y){p=p|0,y=y|0,o[p>>2]=vne()|0,o[p+4>>2]=Bne()|0,o[p+12>>2]=y,o[p+8>>2]=Oye()|0,o[p+32>>2]=5}function vne(){return 11710}function Bne(){return 1416}function Oye(){return F7()|0}function y3(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(JD(w),ti(w)):y|0&&ti(y)}function JD(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function F7(){var p=0;return n[7904]|0||(o[2600]=Rqe()|0,o[2601]=0,p=7904,o[p>>2]=1,o[p+4>>2]=0),10400}function Rqe(){return o[357]|0}function TZe(p){p=p|0,Mye(p,4926),RZe(p)|0}function Mye(p,y){p=p|0,y=y|0;var w=0;w=Og()|0,o[p>>2]=w,Nqe(w,y),BF(o[p>>2]|0)}function RZe(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,NZe()|0),p|0}function NZe(){var p=0;return n[7912]|0||(wne(10412),pu(56,10412,X|0)|0,p=7912,o[p>>2]=1,o[p+4>>2]=0),Xr(10412)|0||wne(10412),10412}function wne(p){p=p|0,Yye(p),G7(p,57)}function sAe(p){p=p|0,Hye(p+24|0)}function Hye(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Yye(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,5,y,cAe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function oAe(p){p=p|0,aAe(p)}function aAe(p){p=p|0,SP(p)}function SP(p){p=p|0;var y=0,w=0;y=p+8|0,w=y+48|0;do o[y>>2]=0,y=y+4|0;while((y|0)<(w|0));n[p+56>>0]=1}function cAe(){return 1432}function DZe(){return lAe()|0}function lAe(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;le=B,B=B+16|0,p=le+4|0,y=le,w=Fb(8)|0,G=w,J=Ku(48)|0,U=J,Ge=U+48|0;do o[U>>2]=0,U=U+4|0;while((U|0)<(Ge|0));return U=G+4|0,o[U>>2]=J,Ge=Ku(8)|0,U=o[U>>2]|0,o[y>>2]=0,o[p>>2]=o[y>>2],e3(Ge,U,p),o[w>>2]=Ge,B=le,G|0}function Nqe(p,y){p=p|0,y=y|0,o[p>>2]=Qye()|0,o[p+4>>2]=Z7()|0,o[p+12>>2]=y,o[p+8>>2]=tU()|0,o[p+32>>2]=6}function Qye(){return 11704}function Z7(){return 1436}function tU(){return F7()|0}function lN(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(L7(w),ti(w)):y|0&&ti(y)}function L7(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function kZe(p){p=p|0,vP(p,4933),SF(p)|0,vF(p)|0}function vP(p,y){p=p|0,y=y|0;var w=0;w=b3()|0,o[p>>2]=w,p1(w,y),BF(o[p>>2]|0)}function SF(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,wVt()|0),p|0}function vF(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,OY()|0),p|0}function OY(){var p=0;return n[7920]|0||(YL(10452),pu(58,10452,X|0)|0,p=7920,o[p>>2]=1,o[p+4>>2]=0),Xr(10452)|0||YL(10452),10452}function YL(p){p=p|0,kh(p),G7(p,1)}function Xye(p){p=p|0,BP(p+24|0)}function BP(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function kh(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,1,y,Jye()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function xZe(p,y,w){p=p|0,y=+y,w=+w,xb(p,y,w)}function xb(p,y,w){p=p|0,y=+y,w=+w;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,U=G+8|0,Ge=G+17|0,J=G,le=G+16|0,Cw(Ge,y),C[U>>3]=+Il(Ge,y),Cw(le,w),C[J>>3]=+Il(le,w),uAe(p,U,J),B=G}function uAe(p,y,w){p=p|0,y=y|0,w=w|0,Dqe(p+8|0,+C[y>>3],+C[w>>3]),n[p+24>>0]=1}function Dqe(p,y,w){p=p|0,y=+y,w=+w,C[p>>3]=y,C[p+8>>3]=w}function Jye(){return 1472}function SVt(p,y){return p=+p,y=+y,vVt(p,y)|0}function vVt(p,y){p=+p,y=+y;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+16|0,le=G+4|0,Ge=G+8|0,Xe=G,J=Fb(8)|0,w=J,U=Ku(16)|0,Cw(le,p),p=+Il(le,p),Cw(Ge,y),Dqe(U,p,+Il(Ge,y)),Ge=w+4|0,o[Ge>>2]=U,U=Ku(8)|0,Ge=o[Ge>>2]|0,o[Xe>>2]=0,o[le>>2]=o[Xe>>2],Uye(U,Ge,le),o[J>>2]=U,B=G,w|0}function Uye(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1452,o[w+12>>2]=y,o[p+4>>2]=w}function BVt(p){p=p|0,dz(p),ti(p)}function GZe(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function rU(p){p=p|0,ti(p)}function wVt(){var p=0;return n[7928]|0||(FZe(10488),pu(59,10488,X|0)|0,p=7928,o[p>>2]=1,o[p+4>>2]=0),Xr(10488)|0||FZe(10488),10488}function FZe(p){p=p|0,Gb(p),G7(p,60)}function Kye(p){p=p|0,ZZe(p+24|0)}function ZZe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Gb(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,6,y,wP()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Ga(p){p=p|0,cg(p)}function cg(p){p=p|0,zh(p)}function zh(p){p=p|0,Tne(p+8|0),n[p+24>>0]=1}function Tne(p){p=p|0,o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,o[p+12>>2]=0}function wP(){return 1492}function jye(){return Nw()|0}function Nw(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,G=Ku(16)|0,Tne(G),U=p+4|0,o[U>>2]=G,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],Uye(G,U,J),o[w>>2]=G,B=y,p|0}function b3(){var p=0;return n[7936]|0||(Nx(10524),pu(25,10524,X|0)|0,p=7936,o[p>>2]=1,o[p+4>>2]=0),10524}function p1(p,y){p=p|0,y=y|0,o[p>>2]=MY()|0,o[p+4>>2]=LZe()|0,o[p+12>>2]=y,o[p+8>>2]=VZe()|0,o[p+32>>2]=7}function MY(){return 11700}function LZe(){return 1484}function VZe(){return F7()|0}function o_(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(PZe(w),ti(w)):y|0&&ti(y)}function PZe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function Nx(p){p=p|0,Hc(p)}function kqe(p,y,w){p=p|0,y=y|0,w=w|0,p=ff(y)|0,y=TVt(w)|0,w=xqe(w,0)|0,QZe(p,y,w,WZe()|0,0)}function TVt(p){return p=p|0,p|0}function xqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=WZe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(gAe(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(AAe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function WZe(){var p=0,y=0;if(n[7944]|0||(zye(10568),pu(61,10568,X|0)|0,y=7944,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10568)|0)){p=10568,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));zye(10568)}return 10568}function zye(p){p=p|0,HY(p)}function qye(p){p=p|0,Dw(p+24|0)}function Dw(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function HY(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,17,y,Nu()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Rne(p){return p=p|0,V7(o[(OZe(p)|0)>>2]|0)|0}function OZe(p){return p=p|0,(o[(WZe()|0)+24>>2]|0)+(p<<3)|0}function V7(p){return p=p|0,_J(mz[p&7]()|0)|0}function gAe(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function AAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=Nne(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,UD(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,gAe(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,$ye(p,J),ebe(J),B=Ge;return}}function Nne(p){return p=p|0,536870911}function UD(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function $ye(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function ebe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function Jm(){Dx()}function Dx(){dAe(10604)}function dAe(p){p=p|0,Od(p,4955)}function Od(p,y){p=p|0,y=y|0;var w=0;w=B0()|0,o[p>>2]=w,Dne(w,y),BF(o[p>>2]|0)}function B0(){var p=0;return n[7952]|0||(W7(10612),pu(25,10612,X|0)|0,p=7952,o[p>>2]=1,o[p+4>>2]=0),10612}function Dne(p,y){p=p|0,y=y|0,o[p>>2]=MZe()|0,o[p+4>>2]=pAe()|0,o[p+12>>2]=y,o[p+8>>2]=HZe()|0,o[p+32>>2]=8}function BF(p){p=p|0;var y=0,w=0;y=B,B=B+16|0,w=y,TP()|0,o[w>>2]=p,wF(10608,w),B=y}function TP(){return n[11714]|0||(o[2652]=0,pu(62,10608,X|0)|0,n[11714]=1),10608}function wF(p,y){p=p|0,y=y|0;var w=0;w=Ku(8)|0,o[w+4>>2]=o[y>>2],o[w>>2]=o[p>>2],o[p>>2]=w}function P7(p){p=p|0,tbe(p)}function tbe(p){p=p|0;var y=0,w=0;if(y=o[p>>2]|0,y|0)do w=y,y=o[y>>2]|0,ti(w);while(y|0);o[p>>2]=0}function MZe(){return 11715}function pAe(){return 1496}function HZe(){return nI()|0}function rbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(YZe(w),ti(w)):y|0&&ti(y)}function YZe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function W7(p){p=p|0,Hc(p)}function RVt(p,y){p=p|0,y=y|0;var w=0,G=0;TP()|0,w=o[2652]|0;e:do if(w|0){for(;G=o[w+4>>2]|0,!(G|0&&!(jqe(O7(G)|0,p)|0));)if(w=o[w>>2]|0,!w)break e;NVt(G,y)}while(!1)}function O7(p){return p=p|0,o[p+12>>2]|0}function NVt(p,y){p=p|0,y=y|0;var w=0;p=p+36|0,w=o[p>>2]|0,w|0&&(yb(w),ti(w)),w=Ku(4)|0,dB(w,y),o[p>>2]=w}function RP(){return n[11716]|0||(o[2664]=0,pu(63,10656,X|0)|0,n[11716]=1),10656}function nbe(){var p=0;return n[11717]|0?p=o[2665]|0:(DVt(),o[2665]=1504,n[11717]=1,p=1504),p|0}function DVt(){n[11740]|0||(n[11718]=Uu(Uu(8,0)|0,0)|0,n[11719]=Uu(Uu(0,0)|0,0)|0,n[11720]=Uu(Uu(0,16)|0,0)|0,n[11721]=Uu(Uu(8,0)|0,0)|0,n[11722]=Uu(Uu(0,0)|0,0)|0,n[11723]=Uu(Uu(8,0)|0,0)|0,n[11724]=Uu(Uu(0,0)|0,0)|0,n[11725]=Uu(Uu(8,0)|0,0)|0,n[11726]=Uu(Uu(0,0)|0,0)|0,n[11727]=Uu(Uu(8,0)|0,0)|0,n[11728]=Uu(Uu(0,0)|0,0)|0,n[11729]=Uu(Uu(0,0)|0,32)|0,n[11730]=Uu(Uu(0,0)|0,32)|0,n[11740]=1)}function ibe(){return 1572}function QZe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0;U=B,B=B+32|0,It=U+16|0,bt=U+12|0,Xe=U+8|0,Ge=U+4|0,le=U,o[It>>2]=p,o[bt>>2]=y,o[Xe>>2]=w,o[Ge>>2]=G,o[le>>2]=J,RP()|0,sbe(10656,It,bt,Xe,Ge,le),B=U}function sbe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0;le=Ku(24)|0,wb(le+4|0,o[y>>2]|0,o[w>>2]|0,o[G>>2]|0,o[J>>2]|0,o[U>>2]|0),o[le>>2]=o[p>>2],o[p>>2]=le}function E3(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0;if(So=B,B=B+32|0,zi=So+20|0,Un=So+8|0,Ds=So+4|0,Si=So,y=o[y>>2]|0,y|0){Ks=zi+4|0,Xe=zi+8|0,bt=Un+4|0,It=Un+8|0,rr=Un+8|0,an=zi+8|0;do{if(le=y+4|0,Ge=nU(le)|0,Ge|0){if(J=f1(Ge)|0,o[zi>>2]=0,o[Ks>>2]=0,o[Xe>>2]=0,G=(fAe(Ge)|0)+1|0,kVt(zi,G),G|0)for(;G=G+-1|0,RB(Un,o[J>>2]|0),U=o[Ks>>2]|0,U>>>0<(o[an>>2]|0)>>>0?(o[U>>2]=o[Un>>2],o[Ks>>2]=(o[Ks>>2]|0)+4):uN(zi,Un),G;)J=J+4|0;G=Gy(Ge)|0,o[Un>>2]=0,o[bt>>2]=0,o[It>>2]=0;e:do if(o[G>>2]|0)for(J=0,U=0;;){if((J|0)==(U|0)?IAe(Un,G):(o[J>>2]=o[G>>2],o[bt>>2]=(o[bt>>2]|0)+4),G=G+4|0,!(o[G>>2]|0))break e;J=o[bt>>2]|0,U=o[rr>>2]|0}while(!1);o[Ds>>2]=KD(le)|0,o[Si>>2]=Xr(Ge)|0,jD(w,p,Ds,Si,zi,Un),Av(Un),QL(zi)}y=o[y>>2]|0}while(y|0)}B=So}function nU(p){return p=p|0,o[p+12>>2]|0}function f1(p){return p=p|0,o[p+12>>2]|0}function fAe(p){return p=p|0,o[p+16>>2]|0}function kVt(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+32|0,w=J,G=o[p>>2]|0,(o[p+8>>2]|0)-G>>2>>>0>>0&&(lbe(w,y,(o[p+4>>2]|0)-G>>2,p+8|0),AN(p,w),la(w)),B=J}function uN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;if(le=B,B=B+32|0,w=le,G=p+4|0,J=((o[G>>2]|0)-(o[p>>2]|0)>>2)+1|0,U=_Ae(p)|0,U>>>0>>0)me(p);else{Ge=o[p>>2]|0,bt=(o[p+8>>2]|0)-Ge|0,Xe=bt>>1,lbe(w,bt>>2>>>0>>1>>>0?Xe>>>0>>0?J:Xe:U,(o[G>>2]|0)-Ge>>2,p+8|0),U=w+8|0,o[o[U>>2]>>2]=o[y>>2],o[U>>2]=(o[U>>2]|0)+4,AN(p,w),la(w),B=le;return}}function Gy(p){return p=p|0,o[p+8>>2]|0}function IAe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;if(le=B,B=B+32|0,w=le,G=p+4|0,J=((o[G>>2]|0)-(o[p>>2]|0)>>2)+1|0,U=B3(p)|0,U>>>0>>0)me(p);else{Ge=o[p>>2]|0,bt=(o[p+8>>2]|0)-Ge|0,Xe=bt>>1,Fy(w,bt>>2>>>0>>1>>>0?Xe>>>0>>0?J:Xe:U,(o[G>>2]|0)-Ge>>2,p+8|0),U=w+8|0,o[o[U>>2]>>2]=o[y>>2],o[U>>2]=(o[U>>2]|0)+4,gN(p,w),Q7(w),B=le;return}}function KD(p){return p=p|0,o[p>>2]|0}function jD(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,S3(p,y,w,G,J,U)}function Av(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function QL(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-4-G|0)>>>2)<<2)),ti(w))}function S3(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+48|0,It=le+40|0,Ge=le+32|0,rr=le+24|0,Xe=le+12|0,bt=le,xw(Ge),p=qf(p)|0,o[rr>>2]=o[y>>2],w=o[w>>2]|0,G=o[G>>2]|0,M7(Xe,J),XZe(bt,U),o[It>>2]=o[rr>>2],JZe(p,It,w,G,Xe,bt),Av(bt),QL(Xe),oS(Ge),B=le}function M7(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(Y7(p,G),xVt(p,o[y>>2]|0,o[w>>2]|0,G))}function XZe(p,y){p=p|0,y=y|0;var w=0,G=0;o[p>>2]=0,o[p+4>>2]=0,o[p+8>>2]=0,w=y+4|0,G=(o[w>>2]|0)-(o[y>>2]|0)>>2,G|0&&(sU(p,G),CAe(p,o[y>>2]|0,o[w>>2]|0,G))}function JZe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+32|0,It=le+28|0,rr=le+24|0,Ge=le+12|0,Xe=le,bt=Sb(kne()|0)|0,o[rr>>2]=o[y>>2],o[It>>2]=o[rr>>2],y=v3(It)|0,w=UZe(w)|0,G=hAe(G)|0,o[Ge>>2]=o[J>>2],It=J+4|0,o[Ge+4>>2]=o[It>>2],rr=J+8|0,o[Ge+8>>2]=o[rr>>2],o[rr>>2]=0,o[It>>2]=0,o[J>>2]=0,J=yE(Ge)|0,o[Xe>>2]=o[U>>2],It=U+4|0,o[Xe+4>>2]=o[It>>2],rr=U+8|0,o[Xe+8>>2]=o[rr>>2],o[rr>>2]=0,o[It>>2]=0,o[U>>2]=0,Yl(0,bt|0,p|0,y|0,w|0,G|0,J|0,H7(Xe)|0)|0,Av(Xe),QL(Ge),B=le}function kne(){var p=0;return n[7968]|0||(u2(10708),p=7968,o[p>>2]=1,o[p+4>>2]=0),10708}function v3(p){return p=p|0,mAe(p)|0}function UZe(p){return p=p|0,obe(p)|0}function hAe(p){return p=p|0,_J(p)|0}function yE(p){return p=p|0,cy(p)|0}function H7(p){return p=p|0,KZe(p)|0}function KZe(p){p=p|0;var y=0,w=0,G=0;if(G=(o[p+4>>2]|0)-(o[p>>2]|0)|0,w=G>>2,G=Fb(G+4|0)|0,o[G>>2]=w,w|0){y=0;do o[G+4+(y<<2)>>2]=obe(o[(o[p>>2]|0)+(y<<2)>>2]|0)|0,y=y+1|0;while((y|0)!=(w|0))}return G|0}function obe(p){return p=p|0,p|0}function cy(p){p=p|0;var y=0,w=0,G=0;if(G=(o[p+4>>2]|0)-(o[p>>2]|0)|0,w=G>>2,G=Fb(G+4|0)|0,o[G>>2]=w,w|0){y=0;do o[G+4+(y<<2)>>2]=mAe((o[p>>2]|0)+(y<<2)|0)|0,y=y+1|0;while((y|0)!=(w|0))}return G|0}function mAe(p){p=p|0;var y=0,w=0,G=0,J=0;return J=B,B=B+32|0,y=J+12|0,w=J,G=Nh(Gqe()|0)|0,G?(o1(y,G),Tb(w,y),Lbe(p,w),p=IE(y)|0):p=abe(p)|0,B=J,p|0}function Gqe(){var p=0;return n[7960]|0||(iI(10664),pu(25,10664,X|0)|0,p=7960,o[p>>2]=1,o[p+4>>2]=0),10664}function abe(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(4)|0,o[Ge>>2]=o[p>>2],U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],iU(p,U,J),o[G>>2]=p,B=w,y|0}function iU(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1656,o[w+12>>2]=y,o[p+4>>2]=w}function xne(p){p=p|0,dz(p),ti(p)}function cbe(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function dv(p){p=p|0,ti(p)}function iI(p){p=p|0,Hc(p)}function u2(p){p=p|0,Ny(p,FC()|0,5)}function FC(){return 1676}function sU(p,y){p=p|0,y=y|0;var w=0;if((B3(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function CAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function B3(p){return p=p|0,1073741823}function Y7(p,y){p=p|0,y=y|0;var w=0;if((_Ae(p)|0)>>>0>>0&&me(p),y>>>0>1073741823)Ko();else{w=Ku(y<<2)|0,o[p+4>>2]=w,o[p>>2]=w,o[p+8>>2]=w+(y<<2);return}}function xVt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,G=p+4|0,p=w-y|0,(p|0)>0&&(Md(o[G>>2]|0,y|0,p|0)|0,o[G>>2]=(o[G>>2]|0)+(p>>>2<<2))}function _Ae(p){return p=p|0,1073741823}function Fy(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function gN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Q7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function lbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>1073741823)Ko();else{J=Ku(y<<2)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<2)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<2)}function AN(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>2)<<2)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function la(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-4-y|0)>>>2)<<2)),p=o[p>>2]|0,p|0&&ti(p)}function yAe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;if(Un=B,B=B+32|0,It=Un+20|0,rr=Un+12|0,bt=Un+16|0,an=Un+4|0,Ks=Un,zi=Un+8|0,Ge=nbe()|0,U=o[Ge>>2]|0,le=o[U>>2]|0,le|0)for(Xe=o[Ge+8>>2]|0,Ge=o[Ge+4>>2]|0;RB(It,le),jZe(p,It,Ge,Xe),U=U+4|0,le=o[U>>2]|0,le;)Xe=Xe+1|0,Ge=Ge+1|0;if(U=ibe()|0,le=o[U>>2]|0,le|0)do RB(It,le),o[rr>>2]=o[U+4>>2],ube(y,It,rr),U=U+8|0,le=o[U>>2]|0;while(le|0);if(U=o[(TP()|0)>>2]|0,U|0)do y=o[U+4>>2]|0,RB(It,o[(Zy(y)|0)>>2]|0),o[rr>>2]=O7(y)|0,YY(w,It,rr),U=o[U>>2]|0;while(U|0);if(RB(bt,0),U=RP()|0,o[It>>2]=o[bt>>2],E3(It,U,J),U=o[(TP()|0)>>2]|0,U|0){p=It+4|0,y=It+8|0,w=It+8|0;do{if(Xe=o[U+4>>2]|0,RB(rr,o[(Zy(Xe)|0)>>2]|0),_p(an,bAe(Xe)|0),le=o[an>>2]|0,le|0){o[It>>2]=0,o[p>>2]=0,o[y>>2]=0;do RB(Ks,o[(Zy(o[le+4>>2]|0)|0)>>2]|0),Ge=o[p>>2]|0,Ge>>>0<(o[w>>2]|0)>>>0?(o[Ge>>2]=o[Ks>>2],o[p>>2]=(o[p>>2]|0)+4):uN(It,Ks),le=o[le>>2]|0;while(le|0);gbe(G,rr,It),QL(It)}o[zi>>2]=o[rr>>2],bt=Gne(Xe)|0,o[It>>2]=o[zi>>2],E3(It,bt,J),wr(an),U=o[U>>2]|0}while(U|0)}B=Un}function jZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,qZe(p,y,w,G)}function ube(p,y,w){p=p|0,y=y|0,w=w|0,Lqe(p,y,w)}function Zy(p){return p=p|0,p|0}function YY(p,y,w){p=p|0,y=y|0,w=w|0,LVt(p,y,w)}function bAe(p){return p=p|0,p+16|0}function _p(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;if(U=B,B=B+16|0,J=U+8|0,w=U,o[p>>2]=0,G=o[y>>2]|0,o[J>>2]=G,o[w>>2]=p,w=ZVt(w)|0,G|0){if(G=Ku(12)|0,le=(Abe(J)|0)+4|0,p=o[le+4>>2]|0,y=G+4|0,o[y>>2]=o[le>>2],o[y+4>>2]=p,y=o[o[J>>2]>>2]|0,o[J>>2]=y,!y)p=G;else for(y=G;p=Ku(12)|0,Xe=(Abe(J)|0)+4|0,Ge=o[Xe+4>>2]|0,le=p+4|0,o[le>>2]=o[Xe>>2],o[le+4>>2]=Ge,o[y>>2]=p,le=o[o[J>>2]>>2]|0,o[J>>2]=le,le;)y=p;o[p>>2]=o[w>>2],o[w>>2]=G}B=U}function gbe(p,y,w){p=p|0,y=y|0,w=w|0,oU(p,y,w)}function Gne(p){return p=p|0,p+24|0}function oU(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,le=G+24|0,J=G+16|0,Ge=G+12|0,U=G,xw(J),p=qf(p)|0,o[Ge>>2]=o[y>>2],M7(U,w),o[le>>2]=o[Ge>>2],zZe(p,le,U),QL(U),oS(J),B=G}function zZe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=B,B=B+32|0,le=G+16|0,Ge=G+12|0,J=G,U=Sb(aU()|0)|0,o[Ge>>2]=o[y>>2],o[le>>2]=o[Ge>>2],y=v3(le)|0,o[J>>2]=o[w>>2],le=w+4|0,o[J+4>>2]=o[le>>2],Ge=w+8|0,o[J+8>>2]=o[Ge>>2],o[Ge>>2]=0,o[le>>2]=0,o[w>>2]=0,Ei(0,U|0,p|0,y|0,yE(J)|0)|0,QL(J),B=G}function aU(){var p=0;return n[7976]|0||(GVt(10720),p=7976,o[p>>2]=1,o[p+4>>2]=0),10720}function GVt(p){p=p|0,Ny(p,FVt()|0,2)}function FVt(){return 1732}function ZVt(p){return p=p|0,o[p>>2]|0}function Abe(p){return p=p|0,o[p>>2]|0}function LVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+32|0,U=G+16|0,J=G+8|0,le=G,xw(J),p=qf(p)|0,o[le>>2]=o[y>>2],w=o[w>>2]|0,o[U>>2]=o[le>>2],Fqe(p,U,w),oS(J),B=G}function Fqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+16|0,U=G+4|0,le=G,J=Sb(VVt()|0)|0,o[le>>2]=o[y>>2],o[U>>2]=o[le>>2],y=v3(U)|0,Ei(0,J|0,p|0,y|0,UZe(w)|0)|0,B=G}function VVt(){var p=0;return n[7984]|0||(ZC(10732),p=7984,o[p>>2]=1,o[p+4>>2]=0),10732}function ZC(p){p=p|0,Ny(p,Zqe()|0,2)}function Zqe(){return 1744}function Lqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;G=B,B=B+32|0,U=G+16|0,J=G+8|0,le=G,xw(J),p=qf(p)|0,o[le>>2]=o[y>>2],w=o[w>>2]|0,o[U>>2]=o[le>>2],Fqe(p,U,w),oS(J),B=G}function qZe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+32|0,le=J+16|0,U=J+8|0,Ge=J,xw(U),p=qf(p)|0,o[Ge>>2]=o[y>>2],w=n[w>>0]|0,G=n[G>>0]|0,o[le>>2]=o[Ge>>2],dN(p,le,w,G),oS(U),B=J}function dN(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,le=J+4|0,Ge=J,U=Sb(EAe()|0)|0,o[Ge>>2]=o[y>>2],o[le>>2]=o[Ge>>2],y=v3(le)|0,w=cU(w)|0,oA(0,U|0,p|0,y|0,w|0,cU(G)|0)|0,B=J}function EAe(){var p=0;return n[7992]|0||(Bu(10744),p=7992,o[p>>2]=1,o[p+4>>2]=0),10744}function cU(p){return p=p|0,$Ze(p)|0}function $Ze(p){return p=p|0,p&255|0}function Bu(p){p=p|0,Ny(p,QY()|0,3)}function QY(){return 1756}function PVt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;switch(an=B,B=B+32|0,Ge=an+8|0,Xe=an+4|0,bt=an+20|0,It=an,aP(p,0),G=Zbe(y)|0,o[Ge>>2]=0,rr=Ge+4|0,o[rr>>2]=0,o[Ge+8>>2]=0,G<<24>>24){case 0:{n[bt>>0]=0,Vqe(Xe,w,bt),XL(p,Xe)|0,r_(Xe);break}case 8:{rr=YAe(y)|0,n[bt>>0]=8,RB(It,o[rr+4>>2]|0),qh(Xe,w,bt,It,rr+8|0),XL(p,Xe)|0,r_(Xe);break}case 9:{if(U=YAe(y)|0,y=o[U+4>>2]|0,y|0)for(le=Ge+8|0,J=U+12|0;y=y+-1|0,RB(Xe,o[J>>2]|0),G=o[rr>>2]|0,G>>>0<(o[le>>2]|0)>>>0?(o[G>>2]=o[Xe>>2],o[rr>>2]=(o[rr>>2]|0)+4):uN(Ge,Xe),y;)J=J+4|0;n[bt>>0]=9,RB(It,o[U+8>>2]|0),XY(Xe,w,bt,It,Ge),XL(p,Xe)|0,r_(Xe);break}default:rr=YAe(y)|0,n[bt>>0]=G,RB(It,o[rr+4>>2]|0),Nf(Xe,w,bt,It),XL(p,Xe)|0,r_(Xe)}QL(Ge),B=an}function Vqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;G=B,B=B+16|0,J=G,xw(J),y=qf(y)|0,fbe(p,y,n[w>>0]|0),oS(J),B=G}function XL(p,y){p=p|0,y=y|0;var w=0;return w=o[p>>2]|0,w|0&&oo(w|0),o[p>>2]=o[y>>2],o[y>>2]=0,p|0}function qh(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+32|0,Ge=U+16|0,le=U+8|0,Xe=U,xw(le),y=qf(y)|0,w=n[w>>0]|0,o[Xe>>2]=o[G>>2],J=o[J>>2]|0,o[Ge>>2]=o[Xe>>2],Pqe(p,y,w,Ge,J),oS(le),B=U}function XY(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;U=B,B=B+32|0,Xe=U+24|0,le=U+16|0,bt=U+12|0,Ge=U,xw(le),y=qf(y)|0,w=n[w>>0]|0,o[bt>>2]=o[G>>2],M7(Ge,J),o[Xe>>2]=o[bt>>2],eLe(p,y,w,Xe,Ge),QL(Ge),oS(le),B=U}function Nf(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+32|0,le=J+16|0,U=J+8|0,Ge=J,xw(U),y=qf(y)|0,w=n[w>>0]|0,o[Ge>>2]=o[G>>2],o[le>>2]=o[Ge>>2],SAe(p,y,w,le),oS(U),B=J}function SAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0,le=0,Ge=0;J=B,B=B+16|0,U=J+4|0,Ge=J,le=Sb(wu()|0)|0,w=cU(w)|0,o[Ge>>2]=o[G>>2],o[U>>2]=o[Ge>>2],Fne(p,Ei(0,le|0,y|0,w|0,v3(U)|0)|0),B=J}function wu(){var p=0;return n[8e3]|0||(dbe(10756),p=8e3,o[p>>2]=1,o[p+4>>2]=0),10756}function Fne(p,y){p=p|0,y=y|0,aP(p,y)}function dbe(p){p=p|0,Ny(p,X7()|0,2)}function X7(){return 1772}function eLe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0;U=B,B=B+32|0,Xe=U+16|0,bt=U+12|0,le=U,Ge=Sb(WVt()|0)|0,w=cU(w)|0,o[bt>>2]=o[G>>2],o[Xe>>2]=o[bt>>2],G=v3(Xe)|0,o[le>>2]=o[J>>2],Xe=J+4|0,o[le+4>>2]=o[Xe>>2],bt=J+8|0,o[le+8>>2]=o[bt>>2],o[bt>>2]=0,o[Xe>>2]=0,o[J>>2]=0,Fne(p,oA(0,Ge|0,y|0,w|0,G|0,yE(le)|0)|0),QL(le),B=U}function WVt(){var p=0;return n[8008]|0||(OVt(10768),p=8008,o[p>>2]=1,o[p+4>>2]=0),10768}function OVt(p){p=p|0,Ny(p,MVt()|0,3)}function MVt(){return 1784}function Pqe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0;U=B,B=B+16|0,Ge=U+4|0,Xe=U,le=Sb(Wqe()|0)|0,w=cU(w)|0,o[Xe>>2]=o[G>>2],o[Ge>>2]=o[Xe>>2],G=v3(Ge)|0,Fne(p,oA(0,le|0,y|0,w|0,G|0,hAe(J)|0)|0),B=U}function Wqe(){var p=0;return n[8016]|0||(vAe(10780),p=8016,o[p>>2]=1,o[p+4>>2]=0),10780}function vAe(p){p=p|0,Ny(p,pbe()|0,3)}function pbe(){return 1800}function fbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;G=Sb(HVt()|0)|0,Fne(p,Ki(0,G|0,y|0,cU(w)|0)|0)}function HVt(){var p=0;return n[8024]|0||(Zne(10792),p=8024,o[p>>2]=1,o[p+4>>2]=0),10792}function Zne(p){p=p|0,Ny(p,Oqe()|0,1)}function Oqe(){return 1816}function YVt(){QVt(),Lne(),Ibe()}function QVt(){o[2702]=pz(65536)|0}function Lne(){nLe(10856)}function Ibe(){Xqr(10816)}function Xqr(p){p=p|0,LC(p,5044),J7(p)|0}function LC(p,y){p=p|0,y=y|0;var w=0;w=Gqe()|0,o[p>>2]=w,DP(w,y),BF(o[p>>2]|0)}function J7(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,tLe()|0),p|0}function tLe(){var p=0;return n[8032]|0||(Mg(10820),pu(64,10820,X|0)|0,p=8032,o[p>>2]=1,o[p+4>>2]=0),Xr(10820)|0||Mg(10820),10820}function Mg(p){p=p|0,rLe(p),G7(p,25)}function i0(p){p=p|0,k_(p+24|0)}function k_(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function rLe(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,18,y,Vne()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function sS(p,y){p=p|0,y=y|0,kw(p,y)}function kw(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;w=B,B=B+16|0,G=w,J=w+4|0,eS(J,y),o[G>>2]=rN(J,y)|0,JY(p,G),B=w}function JY(p,y){p=p|0,y=y|0,U7(p+4|0,o[y>>2]|0),n[p+8>>0]=1}function U7(p,y){p=p|0,y=y|0,o[p>>2]=y}function Vne(){return 1824}function NP(p){return p=p|0,Ly(p)|0}function Ly(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0;return w=B,B=B+16|0,J=w+4|0,le=w,G=Fb(8)|0,y=G,Ge=Ku(4)|0,eS(J,p),U7(Ge,rN(J,p)|0),U=y+4|0,o[U>>2]=Ge,p=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],iU(p,U,J),o[G>>2]=p,B=w,y|0}function Fb(p){p=p|0;var y=0,w=0;return p=p+7&-8,p>>>0<=32768&&(y=o[2701]|0,p>>>0<=(65536-y|0)>>>0)?(w=(o[2702]|0)+y|0,o[2701]=y+p,p=w):(p=pz(p+8|0)|0,o[p>>2]=o[2703],o[2703]=p,p=p+8|0),p|0}function DP(p,y){p=p|0,y=y|0,o[p>>2]=BAe()|0,o[p+4>>2]=TF()|0,o[p+12>>2]=y,o[p+8>>2]=Pne()|0,o[p+32>>2]=9}function BAe(){return 11744}function TF(){return 1832}function Pne(){return F7()|0}function Wne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(wAe(w),ti(w)):y|0&&ti(y)}function wAe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function nLe(p){p=p|0,iLe(p,5052),lU(p)|0,sLe(p,5058,26)|0,a_(p,5069,1)|0,TAe(p,5077,10)|0,hbe(p,5087,19)|0,oLe(p,5094,27)|0}function iLe(p,y){p=p|0,y=y|0;var w=0;w=az()|0,o[p>>2]=w,MAe(w,y),BF(o[p>>2]|0)}function lU(p){p=p|0;var y=0;return y=o[p>>2]|0,EF(y,ELe()|0),p|0}function sLe(p,y,w){return p=p|0,y=y|0,w=w|0,Dbe(p,ff(y)|0,w,0),p|0}function a_(p,y,w){return p=p|0,y=y|0,w=w|0,Xne(p,ff(y)|0,w,0),p|0}function TAe(p,y,w){return p=p|0,y=y|0,w=w|0,$Vt(p,ff(y)|0,w,0),p|0}function hbe(p,y,w){return p=p|0,y=y|0,w=w|0,Qqe(p,ff(y)|0,w,0),p|0}function mbe(p,y){p=p|0,y=y|0;var w=0,G=0;e:for(;;){for(w=o[2703]|0;;){if((w|0)==(y|0))break e;if(G=o[w>>2]|0,o[2703]=G,!w)w=G;else break}ti(w)}o[2701]=p}function oLe(p,y,w){return p=p|0,y=y|0,w=w|0,aLe(p,ff(y)|0,w,0),p|0}function aLe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=K7()|0,p=RAe(w)|0,bd(U,y,J,p,One(w,G)|0,G)}function K7(){var p=0,y=0;if(n[8040]|0||(NAe(10860),pu(65,10860,X|0)|0,y=8040,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10860)|0)){p=10860,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));NAe(10860)}return 10860}function RAe(p){return p=p|0,p|0}function One(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=K7()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Mne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(Cbe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Mne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function Cbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=_be(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,XVt(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Mne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,Mqe(p,J),JVt(J),B=Ge;return}}function _be(p){return p=p|0,536870911}function XVt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function Mqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function JVt(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function NAe(p){p=p|0,UVt(p)}function cLe(p){p=p|0,Hqe(p+24|0)}function Hqe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function UVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,11,y,KVt()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function KVt(){return 1840}function jVt(p,y,w){p=p|0,y=y|0,w=w|0,Yqe(o[(lLe(p)|0)>>2]|0,y,w)}function lLe(p){return p=p|0,(o[(K7()|0)+24>>2]|0)+(p<<3)|0}function Yqe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;G=B,B=B+16|0,U=G+1|0,J=G,eS(U,y),y=rN(U,y)|0,eS(J,w),w=rN(J,w)|0,qD[p&31](y,w),B=G}function Qqe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=ybe()|0,p=uLe(w)|0,bd(U,y,J,p,j7(w,G)|0,G)}function ybe(){var p=0,y=0;if(n[8048]|0||(zD(10896),pu(66,10896,X|0)|0,y=8048,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10896)|0)){p=10896,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));zD(10896)}return 10896}function uLe(p){return p=p|0,p|0}function j7(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=ybe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(Hne(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(bbe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function Hne(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function bbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=Ebe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,DAe(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,Hne(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,gLe(p,J),kAe(J),B=Ge;return}}function Ebe(p){return p=p|0,536870911}function DAe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function gLe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kAe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function zD(p){p=p|0,qVt(p)}function Sbe(p){p=p|0,zVt(p+24|0)}function zVt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function qVt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,11,y,xAe()|0,1),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function xAe(){return 1852}function GAe(p,y){return p=p|0,y=y|0,vbe(o[(FAe(p)|0)>>2]|0,y)|0}function FAe(p){return p=p|0,(o[(ybe()|0)+24>>2]|0)+(p<<3)|0}function vbe(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,eS(G,y),y=rN(G,y)|0,y=_J(mC[p&31](y)|0)|0,B=w,y|0}function $Vt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=ALe()|0,p=ePt(w)|0,bd(U,y,J,p,uU(w,G)|0,G)}function ALe(){var p=0,y=0;if(n[8056]|0||(q7(10932),pu(67,10932,X|0)|0,y=8056,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10932)|0)){p=10932,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));q7(10932)}return 10932}function ePt(p){return p=p|0,p|0}function uU(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=ALe()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(ZAe(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(tPt(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function ZAe(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function tPt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=LAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,Yne(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,ZAe(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,VAe(p,J),z7(J),B=Ge;return}}function LAe(p){return p=p|0,536870911}function Yne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function VAe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function z7(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function q7(p){p=p|0,w3(p)}function rPt(p){p=p|0,pN(p+24|0)}function pN(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function w3(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,7,y,dLe()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function dLe(){return 1860}function pLe(p,y,w){return p=p|0,y=y|0,w=w|0,fLe(o[(nPt(p)|0)>>2]|0,y,w)|0}function nPt(p){return p=p|0,(o[(ALe()|0)+24>>2]|0)+(p<<3)|0}function fLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0;return G=B,B=B+32|0,le=G+12|0,U=G+8|0,Ge=G,Xe=G+16|0,J=G+4|0,iPt(Xe,y),Bbe(Ge,Xe,y),vx(J,w),w=IF(J,w)|0,o[le>>2]=o[Ge>>2],UT[p&15](U,le,w),w=Xqe(U)|0,r_(U),_B(J),B=G,w|0}function iPt(p,y){p=p|0,y=y|0}function Bbe(p,y,w){p=p|0,y=y|0,w=w|0,Qne(p,w)}function Xqe(p){return p=p|0,qf(p)|0}function Qne(p,y){p=p|0,y=y|0;var w=0,G=0,J=0;J=B,B=B+16|0,w=J,G=y,G&1?(ILe(w,0),mI(G|0,w|0)|0,s0(p,w),hLe(w)):o[p>>2]=o[y>>2],B=J}function ILe(p,y){p=p|0,y=y|0,j(p,y),o[p+4>>2]=0,n[p+8>>0]=0}function s0(p,y){p=p|0,y=y|0,o[p>>2]=o[y+4>>2]}function hLe(p){p=p|0,n[p+8>>0]=0}function Xne(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=fN()|0,p=UY(w)|0,bd(U,y,J,p,Jqe(w,G)|0,G)}function fN(){var p=0,y=0;if(n[8064]|0||(QT(10968),pu(68,10968,X|0)|0,y=8064,o[y>>2]=1,o[y+4>>2]=0),!(Xr(10968)|0)){p=10968,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));QT(10968)}return 10968}function UY(p){return p=p|0,p|0}function Jqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=fN()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?($7(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(wB(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function $7(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function wB(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=PAe(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,ez(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,$7(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,tz(p,J),Uqe(J),B=Ge;return}}function PAe(p){return p=p|0,536870911}function ez(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function tz(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function Uqe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function QT(p){p=p|0,Tbe(p)}function rz(p){p=p|0,wbe(p+24|0)}function wbe(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Tbe(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,1,y,Rbe()|0,5),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function Rbe(){return 1872}function lg(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,Nbe(o[(mLe(p)|0)>>2]|0,y,w,G,J,U)}function mLe(p){return p=p|0,(o[(fN()|0)+24>>2]|0)+(p<<3)|0}function Nbe(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0;le=B,B=B+32|0,Ge=le+16|0,Xe=le+12|0,bt=le+8|0,It=le+4|0,rr=le,vx(Ge,y),y=IF(Ge,y)|0,vx(Xe,w),w=IF(Xe,w)|0,vx(bt,G),G=IF(bt,G)|0,vx(It,J),J=IF(It,J)|0,vx(rr,U),U=IF(rr,U)|0,c$e[p&1](y,w,G,J,U),_B(rr),_B(It),_B(bt),_B(Xe),_B(Ge),B=le}function Dbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;U=o[p>>2]|0,J=T3()|0,p=CLe(w)|0,bd(U,y,J,p,Kqe(w,G)|0,G)}function T3(){var p=0,y=0;if(n[8072]|0||(Jne(11004),pu(69,11004,X|0)|0,y=8072,o[y>>2]=1,o[y+4>>2]=0),!(Xr(11004)|0)){p=11004,y=p+36|0;do o[p>>2]=0,p=p+4|0;while((p|0)<(y|0));Jne(11004)}return 11004}function CLe(p){return p=p|0,p|0}function Kqe(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;return Ge=B,B=B+16|0,J=Ge,U=Ge+4|0,o[J>>2]=p,Xe=T3()|0,le=Xe+24|0,y=Uu(y,4)|0,o[U>>2]=y,w=Xe+28|0,G=o[w>>2]|0,G>>>0<(o[Xe+32>>2]|0)>>>0?(gU(G,p,y),y=(o[w>>2]|0)+8|0,o[w>>2]=y):(WAe(le,J,U),y=o[w>>2]|0),B=Ge,(y-(o[le>>2]|0)>>3)+-1|0}function gU(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,o[p+4>>2]=w}function WAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0;if(Ge=B,B=B+32|0,J=Ge,U=p+4|0,le=((o[U>>2]|0)-(o[p>>2]|0)>>3)+1|0,G=nz(p)|0,G>>>0>>0)me(p);else{Xe=o[p>>2]|0,It=(o[p+8>>2]|0)-Xe|0,bt=It>>2,kP(J,It>>3>>>0>>1>>>0?bt>>>0>>0?le:bt:G,(o[U>>2]|0)-Xe>>3,p+8|0),le=J+8|0,gU(o[le>>2]|0,o[y>>2]|0,o[w>>2]|0),o[le>>2]=(o[le>>2]|0)+8,_Le(p,J),kbe(J),B=Ge;return}}function nz(p){return p=p|0,536870911}function kP(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0;o[p+12>>2]=0,o[p+16>>2]=G;do if(y)if(y>>>0>536870911)Ko();else{J=Ku(y<<3)|0;break}else J=0;while(!1);o[p>>2]=J,G=J+(w<<3)|0,o[p+8>>2]=G,o[p+4>>2]=G,o[p+12>>2]=J+(y<<3)}function _Le(p,y){p=p|0,y=y|0;var w=0,G=0,J=0,U=0,le=0;G=o[p>>2]|0,le=p+4|0,U=y+4|0,J=(o[le>>2]|0)-G|0,w=(o[U>>2]|0)+(0-(J>>3)<<3)|0,o[U>>2]=w,(J|0)>0?(Md(w|0,G|0,J|0)|0,G=U,w=o[U>>2]|0):G=U,U=o[p>>2]|0,o[p>>2]=w,o[G>>2]=U,U=y+8|0,J=o[le>>2]|0,o[le>>2]=o[U>>2],o[U>>2]=J,U=p+8|0,le=y+12|0,p=o[U>>2]|0,o[U>>2]=o[le>>2],o[le>>2]=p,o[y>>2]=o[G>>2]}function kbe(p){p=p|0;var y=0,w=0,G=0;y=o[p+4>>2]|0,w=p+8|0,G=o[w>>2]|0,(G|0)!=(y|0)&&(o[w>>2]=G+(~((G+-8-y|0)>>>3)<<3)),p=o[p>>2]|0,p|0&&ti(p)}function Jne(p){p=p|0,oPt(p)}function JL(p){p=p|0,sPt(p+24|0)}function sPt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function oPt(p){p=p|0;var y=0;y=Hs()|0,ho(p,1,12,y,aPt()|0,2),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function aPt(){return 1896}function yLe(p,y,w){p=p|0,y=y|0,w=w|0,iz(o[(bLe(p)|0)>>2]|0,y,w)}function bLe(p){return p=p|0,(o[(T3()|0)+24>>2]|0)+(p<<3)|0}function iz(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;G=B,B=B+16|0,U=G+4|0,J=G,AU(U,y),y=TB(U,y)|0,vx(J,w),w=IF(J,w)|0,qD[p&31](y,w),_B(J),B=G}function AU(p,y){p=p|0,y=y|0}function TB(p,y){return p=p|0,y=y|0,xbe(y)|0}function xbe(p){return p=p|0,p|0}function ELe(){var p=0;return n[8080]|0||(XA(11040),pu(70,11040,X|0)|0,p=8080,o[p>>2]=1,o[p+4>>2]=0),Xr(11040)|0||XA(11040),11040}function XA(p){p=p|0,Gbe(p),G7(p,71)}function UL(p){p=p|0,cPt(p+24|0)}function cPt(p){p=p|0;var y=0,w=0,G=0;w=o[p>>2]|0,G=w,w|0&&(p=p+4|0,y=o[p>>2]|0,(y|0)!=(w|0)&&(o[p>>2]=y+(~((y+-8-G|0)>>>3)<<3)),ti(w))}function Gbe(p){p=p|0;var y=0;y=Hs()|0,ho(p,5,7,y,OAe()|0,0),o[p+24>>2]=0,o[p+28>>2]=0,o[p+32>>2]=0}function SLe(p){p=p|0,sz(p)}function sz(p){p=p|0,vLe(p)}function vLe(p){p=p|0,n[p+8>>0]=1}function OAe(){return 1936}function oz(){return BLe()|0}function BLe(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0;return y=B,B=B+16|0,J=y+4|0,le=y,w=Fb(8)|0,p=w,U=p+4|0,o[U>>2]=Ku(1)|0,G=Ku(8)|0,U=o[U>>2]|0,o[le>>2]=0,o[J>>2]=o[le>>2],RF(G,U,J),o[w>>2]=G,B=y,p|0}function RF(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]=y,w=Ku(16)|0,o[w+4>>2]=0,o[w+8>>2]=0,o[w>>2]=1916,o[w+12>>2]=y,o[p+4>>2]=w}function xP(p){p=p|0,dz(p),ti(p)}function IN(p){p=p|0,p=o[p+12>>2]|0,p|0&&ti(p)}function Une(p){p=p|0,ti(p)}function az(){var p=0;return n[8088]|0||(HAe(11076),pu(25,11076,X|0)|0,p=8088,o[p>>2]=1,o[p+4>>2]=0),11076}function MAe(p,y){p=p|0,y=y|0,o[p>>2]=KY()|0,o[p+4>>2]=Kne()|0,o[p+12>>2]=y,o[p+8>>2]=jne()|0,o[p+32>>2]=10}function KY(){return 11745}function Kne(){return 1940}function jne(){return nI()|0}function Fbe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,(_P(G,896)|0)==512?w|0&&(wLe(w),ti(w)):y|0&&ti(y)}function wLe(p){p=p|0,p=o[p+4>>2]|0,p|0&&IU(p)}function HAe(p){p=p|0,Hc(p)}function RB(p,y){p=p|0,y=y|0,o[p>>2]=y}function YAe(p){return p=p|0,o[p>>2]|0}function Zbe(p){return p=p|0,n[o[p>>2]>>0]|0}function Lbe(p,y){p=p|0,y=y|0;var w=0,G=0;w=B,B=B+16|0,G=w,o[G>>2]=o[p>>2],QAe(y,G)|0,B=w}function QAe(p,y){p=p|0,y=y|0;var w=0;return w=cz(o[p>>2]|0,y)|0,y=p+4|0,o[(o[y>>2]|0)+8>>2]=w,o[(o[y>>2]|0)+8>>2]|0}function cz(p,y){p=p|0,y=y|0;var w=0,G=0;return w=B,B=B+16|0,G=w,xw(G),p=qf(p)|0,y=TLe(p,o[y>>2]|0)|0,oS(G),B=w,y|0}function xw(p){p=p|0,o[p>>2]=o[2701],o[p+4>>2]=o[2703]}function TLe(p,y){p=p|0,y=y|0;var w=0;return w=Sb(lz()|0)|0,Ki(0,w|0,p|0,hAe(y)|0)|0}function oS(p){p=p|0,mbe(o[p>>2]|0,o[p+4>>2]|0)}function lz(){var p=0;return n[8096]|0||(Vbe(11120),p=8096,o[p>>2]=1,o[p+4>>2]=0),11120}function Vbe(p){p=p|0,Ny(p,g2()|0,1)}function g2(){return 1948}function A2(){jY()}function jY(){var p=0,y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;if(zi=B,B=B+16|0,It=zi+4|0,rr=zi,Ul(65536,10804,o[2702]|0,10812),w=nbe()|0,y=o[w>>2]|0,p=o[y>>2]|0,p|0)for(G=o[w+8>>2]|0,w=o[w+4>>2]|0;Do(p|0,l[w>>0]|0|0,n[G>>0]|0),y=y+4|0,p=o[y>>2]|0,p;)G=G+1|0,w=w+1|0;if(p=ibe()|0,y=o[p>>2]|0,y|0)do Wt(y|0,o[p+4>>2]|0),p=p+8|0,y=o[p>>2]|0;while(y|0);Wt(RLe()|0,5167),bt=TP()|0,p=o[bt>>2]|0;e:do if(p|0){do lPt(o[p+4>>2]|0),p=o[p>>2]|0;while(p|0);if(p=o[bt>>2]|0,p|0){Xe=bt;do{for(;J=p,p=o[p>>2]|0,J=o[J+4>>2]|0,!!(R3(J)|0);)if(o[rr>>2]=Xe,o[It>>2]=o[rr>>2],XAe(bt,It)|0,!p)break e;if(NLe(J),Xe=o[Xe>>2]|0,y=$h(J)|0,U=OA()|0,le=B,B=B+((1*(y<<2)|0)+15&-16)|0,Ge=B,B=B+((1*(y<<2)|0)+15&-16)|0,y=o[(bAe(J)|0)>>2]|0,y|0)for(w=le,G=Ge;o[w>>2]=o[(Zy(o[y+4>>2]|0)|0)>>2],o[G>>2]=o[y+8>>2],y=o[y>>2]|0,y;)w=w+4|0,G=G+4|0;Un=Zy(J)|0,y=DLe(J)|0,w=$h(J)|0,G=Pbe(J)|0,Ju(Un|0,y|0,le|0,Ge|0,w|0,G|0,O7(J)|0),Da(U|0)}while(p|0)}}while(!1);if(p=o[(RP()|0)>>2]|0,p|0)do Un=p+4|0,bt=nU(Un)|0,J=Gy(bt)|0,U=f1(bt)|0,le=(fAe(bt)|0)+1|0,Ge=zY(bt)|0,Xe=JAe(Un)|0,bt=Xr(bt)|0,It=KD(Un)|0,rr=uz(Un)|0,Ru(0,J|0,U|0,le|0,Ge|0,Xe|0,bt|0,It|0,rr|0,UAe(Un)|0),p=o[p>>2]|0;while(p|0);p=o[(TP()|0)>>2]|0;e:do if(p|0){t:for(;;){if(y=o[p+4>>2]|0,y|0&&(an=o[(Zy(y)|0)>>2]|0,Ks=o[(Gne(y)|0)>>2]|0,Ks|0)){w=Ks;do{y=w+4|0,G=nU(y)|0;r:do if(G|0)switch(Xr(G)|0){case 0:break t;case 4:case 3:case 2:{Ge=Gy(G)|0,Xe=f1(G)|0,bt=(fAe(G)|0)+1|0,It=zY(G)|0,rr=Xr(G)|0,Un=KD(y)|0,Ru(an|0,Ge|0,Xe|0,bt|0,It|0,0,rr|0,Un|0,uz(y)|0,UAe(y)|0);break r}case 1:{le=Gy(G)|0,Ge=f1(G)|0,Xe=(fAe(G)|0)+1|0,bt=zY(G)|0,It=JAe(y)|0,rr=Xr(G)|0,Un=KD(y)|0,Ru(an|0,le|0,Ge|0,Xe|0,bt|0,It|0,rr|0,Un|0,uz(y)|0,UAe(y)|0);break r}case 5:{bt=Gy(G)|0,It=f1(G)|0,rr=(fAe(G)|0)+1|0,Un=zY(G)|0,Ru(an|0,bt|0,It|0,rr|0,Un|0,KAe(G)|0,Xr(G)|0,0,0,0);break r}default:break r}while(!1);w=o[w>>2]|0}while(w|0)}if(p=o[p>>2]|0,!p)break e}Ko()}while(!1);Yn(),B=zi}function RLe(){return 11703}function lPt(p){p=p|0,n[p+40>>0]=0}function R3(p){return p=p|0,(n[p+40>>0]|0)!=0|0}function XAe(p,y){return p=p|0,y=y|0,y=Wbe(y)|0,p=o[y>>2]|0,o[y>>2]=o[p>>2],ti(p),o[y>>2]|0}function NLe(p){p=p|0,n[p+40>>0]=1}function $h(p){return p=p|0,o[p+20>>2]|0}function DLe(p){return p=p|0,o[p+8>>2]|0}function Pbe(p){return p=p|0,o[p+32>>2]|0}function zY(p){return p=p|0,o[p+4>>2]|0}function JAe(p){return p=p|0,o[p+4>>2]|0}function uz(p){return p=p|0,o[p+8>>2]|0}function UAe(p){return p=p|0,o[p+16>>2]|0}function KAe(p){return p=p|0,o[p+20>>2]|0}function Wbe(p){return p=p|0,o[p>>2]|0}function zne(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0;hl=B,B=B+16|0,an=hl;do if(p>>>0<245){if(bt=p>>>0<11?16:p+11&-8,p=bt>>>3,rr=o[2783]|0,w=rr>>>p,w&3|0)return y=(w&1^1)+p|0,p=11172+(y<<1<<2)|0,w=p+8|0,G=o[w>>2]|0,J=G+8|0,U=o[J>>2]|0,(p|0)==(U|0)?o[2783]=rr&~(1<>2]=p,o[w>>2]=U),pi=y<<3,o[G+4>>2]=pi|3,pi=G+pi+4|0,o[pi>>2]=o[pi>>2]|1,pi=J,B=hl,pi|0;if(It=o[2785]|0,bt>>>0>It>>>0){if(w|0)return y=2<>>12&16,y=y>>>le,w=y>>>5&8,y=y>>>w,J=y>>>2&4,y=y>>>J,p=y>>>1&2,y=y>>>p,G=y>>>1&1,G=(w|le|J|p|G)+(y>>>G)|0,y=11172+(G<<1<<2)|0,p=y+8|0,J=o[p>>2]|0,le=J+8|0,w=o[le>>2]|0,(y|0)==(w|0)?(p=rr&~(1<>2]=y,o[p>>2]=w,p=rr),U=(G<<3)-bt|0,o[J+4>>2]=bt|3,G=J+bt|0,o[G+4>>2]=U|1,o[G+U>>2]=U,It|0&&(J=o[2788]|0,y=It>>>3,w=11172+(y<<1<<2)|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=J,o[y+12>>2]=J,o[J+8>>2]=y,o[J+12>>2]=w),o[2785]=U,o[2788]=G,pi=le,B=hl,pi|0;if(Ge=o[2784]|0,Ge){if(w=(Ge&0-Ge)+-1|0,le=w>>>12&16,w=w>>>le,U=w>>>5&8,w=w>>>U,Xe=w>>>2&4,w=w>>>Xe,G=w>>>1&2,w=w>>>G,p=w>>>1&1,p=o[11436+((U|le|Xe|G|p)+(w>>>p)<<2)>>2]|0,w=(o[p+4>>2]&-8)-bt|0,G=o[p+16+(((o[p+16>>2]|0)==0&1)<<2)>>2]|0,!G)Xe=p,U=w;else{do le=(o[G+4>>2]&-8)-bt|0,Xe=le>>>0>>0,w=Xe?le:w,p=Xe?G:p,G=o[G+16+(((o[G+16>>2]|0)==0&1)<<2)>>2]|0;while(G|0);Xe=p,U=w}if(le=Xe+bt|0,Xe>>>0>>0){J=o[Xe+24>>2]|0,y=o[Xe+12>>2]|0;do if((y|0)==(Xe|0)){if(p=Xe+20|0,y=o[p>>2]|0,!y&&(p=Xe+16|0,y=o[p>>2]|0,!y)){w=0;break}for(;;){if(w=y+20|0,G=o[w>>2]|0,G|0){y=G,p=w;continue}if(w=y+16|0,G=o[w>>2]|0,G)y=G,p=w;else break}o[p>>2]=0,w=y}else w=o[Xe+8>>2]|0,o[w+12>>2]=y,o[y+8>>2]=w,w=y;while(!1);do if(J|0){if(y=o[Xe+28>>2]|0,p=11436+(y<<2)|0,(Xe|0)==(o[p>>2]|0)){if(o[p>>2]=w,!w){o[2784]=Ge&~(1<>2]|0)!=(Xe|0)&1)<<2)>>2]=w,!w)break;o[w+24>>2]=J,y=o[Xe+16>>2]|0,y|0&&(o[w+16>>2]=y,o[y+24>>2]=w),y=o[Xe+20>>2]|0,y|0&&(o[w+20>>2]=y,o[y+24>>2]=w)}while(!1);return U>>>0<16?(pi=U+bt|0,o[Xe+4>>2]=pi|3,pi=Xe+pi+4|0,o[pi>>2]=o[pi>>2]|1):(o[Xe+4>>2]=bt|3,o[le+4>>2]=U|1,o[le+U>>2]=U,It|0&&(G=o[2788]|0,y=It>>>3,w=11172+(y<<1<<2)|0,y=1<>2]|0):(o[2783]=rr|y,y=w,p=w+8|0),o[p>>2]=G,o[y+12>>2]=G,o[G+8>>2]=y,o[G+12>>2]=w),o[2785]=U,o[2788]=le),pi=Xe+8|0,B=hl,pi|0}else rr=bt}else rr=bt}else rr=bt}else if(p>>>0<=4294967231)if(p=p+11|0,bt=p&-8,Xe=o[2784]|0,Xe){G=0-bt|0,p=p>>>8,p?bt>>>0>16777215?Ge=31:(rr=(p+1048320|0)>>>16&8,ss=p<>>16&4,ss=ss<>>16&2,Ge=14-(It|rr|Ge)+(ss<>>15)|0,Ge=bt>>>(Ge+7|0)&1|Ge<<1):Ge=0,w=o[11436+(Ge<<2)>>2]|0;e:do if(!w)w=0,p=0,ss=57;else for(p=0,le=bt<<((Ge|0)==31?0:25-(Ge>>>1)|0),U=0;;){if(J=(o[w+4>>2]&-8)-bt|0,J>>>0>>0)if(J)p=w,G=J;else{p=w,G=0,J=w,ss=61;break e}if(J=o[w+20>>2]|0,w=o[w+16+(le>>>31<<2)>>2]|0,U=(J|0)==0|(J|0)==(w|0)?U:J,J=(w|0)==0,J){w=U,ss=57;break}else le=le<<((J^1)&1)}while(!1);if((ss|0)==57){if((w|0)==0&(p|0)==0){if(p=2<>>12&16,rr=rr>>>le,U=rr>>>5&8,rr=rr>>>U,Ge=rr>>>2&4,rr=rr>>>Ge,It=rr>>>1&2,rr=rr>>>It,w=rr>>>1&1,p=0,w=o[11436+((U|le|Ge|It|w)+(rr>>>w)<<2)>>2]|0}w?(J=w,ss=61):(Ge=p,le=G)}if((ss|0)==61)for(;;)if(ss=0,w=(o[J+4>>2]&-8)-bt|0,rr=w>>>0>>0,w=rr?w:G,p=rr?J:p,J=o[J+16+(((o[J+16>>2]|0)==0&1)<<2)>>2]|0,J)G=w,ss=61;else{Ge=p,le=w;break}if(Ge|0&&le>>>0<((o[2785]|0)-bt|0)>>>0){if(U=Ge+bt|0,Ge>>>0>=U>>>0)return pi=0,B=hl,pi|0;J=o[Ge+24>>2]|0,y=o[Ge+12>>2]|0;do if((y|0)==(Ge|0)){if(p=Ge+20|0,y=o[p>>2]|0,!y&&(p=Ge+16|0,y=o[p>>2]|0,!y)){y=0;break}for(;;){if(w=y+20|0,G=o[w>>2]|0,G|0){y=G,p=w;continue}if(w=y+16|0,G=o[w>>2]|0,G)y=G,p=w;else break}o[p>>2]=0}else pi=o[Ge+8>>2]|0,o[pi+12>>2]=y,o[y+8>>2]=pi;while(!1);do if(J){if(p=o[Ge+28>>2]|0,w=11436+(p<<2)|0,(Ge|0)==(o[w>>2]|0)){if(o[w>>2]=y,!y){G=Xe&~(1<>2]|0)!=(Ge|0)&1)<<2)>>2]=y,!y){G=Xe;break}o[y+24>>2]=J,p=o[Ge+16>>2]|0,p|0&&(o[y+16>>2]=p,o[p+24>>2]=y),p=o[Ge+20>>2]|0,p&&(o[y+20>>2]=p,o[p+24>>2]=y),G=Xe}else G=Xe;while(!1);do if(le>>>0>=16){if(o[Ge+4>>2]=bt|3,o[U+4>>2]=le|1,o[U+le>>2]=le,y=le>>>3,le>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=U,o[y+12>>2]=U,o[U+8>>2]=y,o[U+12>>2]=w;break}if(y=le>>>8,y?le>>>0>16777215?y=31:(ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,y=14-(So|ss|y)+(pi<>>15)|0,y=le>>>(y+7|0)&1|y<<1):y=0,w=11436+(y<<2)|0,o[U+28>>2]=y,p=U+16|0,o[p+4>>2]=0,o[p>>2]=0,p=1<>2]=U,o[U+24>>2]=w,o[U+12>>2]=U,o[U+8>>2]=U;break}for(p=le<<((y|0)==31?0:25-(y>>>1)|0),w=o[w>>2]|0;;){if((o[w+4>>2]&-8|0)==(le|0)){ss=97;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=96;break}}if((ss|0)==96){o[G>>2]=U,o[U+24>>2]=w,o[U+12>>2]=U,o[U+8>>2]=U;break}else if((ss|0)==97){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=U,o[ss>>2]=U,o[U+8>>2]=pi,o[U+12>>2]=w,o[U+24>>2]=0;break}}else pi=le+bt|0,o[Ge+4>>2]=pi|3,pi=Ge+pi+4|0,o[pi>>2]=o[pi>>2]|1;while(!1);return pi=Ge+8|0,B=hl,pi|0}else rr=bt}else rr=bt;else rr=-1;while(!1);if(w=o[2785]|0,w>>>0>=rr>>>0)return y=w-rr|0,p=o[2788]|0,y>>>0>15?(pi=p+rr|0,o[2788]=pi,o[2785]=y,o[pi+4>>2]=y|1,o[pi+y>>2]=y,o[p+4>>2]=rr|3):(o[2785]=0,o[2788]=0,o[p+4>>2]=w|3,pi=p+w+4|0,o[pi>>2]=o[pi>>2]|1),pi=p+8|0,B=hl,pi|0;if(le=o[2786]|0,le>>>0>rr>>>0)return So=le-rr|0,o[2786]=So,pi=o[2789]|0,ss=pi+rr|0,o[2789]=ss,o[ss+4>>2]=So|1,o[pi+4>>2]=rr|3,pi=pi+8|0,B=hl,pi|0;if(o[2901]|0?p=o[2903]|0:(o[2903]=4096,o[2902]=4096,o[2904]=-1,o[2905]=-1,o[2906]=0,o[2894]=0,p=an&-16^1431655768,o[an>>2]=p,o[2901]=p,p=4096),Ge=rr+48|0,Xe=rr+47|0,U=p+Xe|0,J=0-p|0,bt=U&J,bt>>>0<=rr>>>0||(p=o[2893]|0,p|0&&(It=o[2891]|0,an=It+bt|0,an>>>0<=It>>>0|an>>>0>p>>>0)))return pi=0,B=hl,pi|0;e:do if(o[2894]&4)y=0,ss=133;else{w=o[2789]|0;t:do if(w){for(G=11580;p=o[G>>2]|0,!(p>>>0<=w>>>0&&(Un=G+4|0,(p+(o[Un>>2]|0)|0)>>>0>w>>>0));)if(p=o[G+8>>2]|0,p)G=p;else{ss=118;break t}if(y=U-le&J,y>>>0<2147483647)if(p=kB(y|0)|0,(p|0)==((o[G>>2]|0)+(o[Un>>2]|0)|0)){if((p|0)!=-1){le=y,U=p,ss=135;break e}}else G=p,ss=126;else y=0}else ss=118;while(!1);do if((ss|0)==118)if(w=kB(0)|0,(w|0)!=-1&&(y=w,Ks=o[2902]|0,zi=Ks+-1|0,y=(zi&y|0?(zi+y&0-Ks)-y|0:0)+bt|0,Ks=o[2891]|0,zi=y+Ks|0,y>>>0>rr>>>0&y>>>0<2147483647)){if(Un=o[2893]|0,Un|0&&zi>>>0<=Ks>>>0|zi>>>0>Un>>>0){y=0;break}if(p=kB(y|0)|0,(p|0)==(w|0)){le=y,U=w,ss=135;break e}else G=p,ss=126}else y=0;while(!1);do if((ss|0)==126){if(w=0-y|0,!(Ge>>>0>y>>>0&(y>>>0<2147483647&(G|0)!=-1)))if((G|0)==-1){y=0;break}else{le=y,U=G,ss=135;break e}if(p=o[2903]|0,p=Xe-y+p&0-p,p>>>0>=2147483647){le=y,U=G,ss=135;break e}if((kB(p|0)|0)==-1){kB(w|0)|0,y=0;break}else{le=p+y|0,U=G,ss=135;break e}}while(!1);o[2894]=o[2894]|4,ss=133}while(!1);if((ss|0)==133&&bt>>>0<2147483647&&(So=kB(bt|0)|0,Un=kB(0)|0,Ds=Un-So|0,Si=Ds>>>0>(rr+40|0)>>>0,!((So|0)==-1|Si^1|So>>>0>>0&((So|0)!=-1&(Un|0)!=-1)^1))&&(le=Si?Ds:y,U=So,ss=135),(ss|0)==135){y=(o[2891]|0)+le|0,o[2891]=y,y>>>0>(o[2892]|0)>>>0&&(o[2892]=y),Xe=o[2789]|0;do if(Xe){for(y=11580;;){if(p=o[y>>2]|0,w=y+4|0,G=o[w>>2]|0,(U|0)==(p+G|0)){ss=145;break}if(J=o[y+8>>2]|0,J)y=J;else break}if((ss|0)==145&&!(o[y+12>>2]&8|0)&&Xe>>>0>>0&Xe>>>0>=p>>>0){o[w>>2]=G+le,pi=Xe+8|0,pi=pi&7|0?0-pi&7:0,ss=Xe+pi|0,pi=(o[2786]|0)+(le-pi)|0,o[2789]=ss,o[2786]=pi,o[ss+4>>2]=pi|1,o[ss+pi+4>>2]=40,o[2790]=o[2905];break}for(U>>>0<(o[2787]|0)>>>0&&(o[2787]=U),w=U+le|0,y=11580;;){if((o[y>>2]|0)==(w|0)){ss=153;break}if(p=o[y+8>>2]|0,p)y=p;else break}if((ss|0)==153&&!(o[y+12>>2]&8|0)){o[y>>2]=U,It=y+4|0,o[It>>2]=(o[It>>2]|0)+le,It=U+8|0,It=U+(It&7|0?0-It&7:0)|0,y=w+8|0,y=w+(y&7|0?0-y&7:0)|0,bt=It+rr|0,Ge=y-It-rr|0,o[It+4>>2]=rr|3;do if((y|0)!=(Xe|0)){if((y|0)==(o[2788]|0)){pi=(o[2785]|0)+Ge|0,o[2785]=pi,o[2788]=bt,o[bt+4>>2]=pi|1,o[bt+pi>>2]=pi;break}if(p=o[y+4>>2]|0,(p&3|0)==1){le=p&-8,G=p>>>3;e:do if(p>>>0<256)if(p=o[y+8>>2]|0,w=o[y+12>>2]|0,(w|0)==(p|0)){o[2783]=o[2783]&~(1<>2]=w,o[w+8>>2]=p;break}else{U=o[y+24>>2]|0,p=o[y+12>>2]|0;do if((p|0)==(y|0)){if(G=y+16|0,w=G+4|0,p=o[w>>2]|0,!p)if(p=o[G>>2]|0,p)w=G;else{p=0;break}for(;;){if(G=p+20|0,J=o[G>>2]|0,J|0){p=J,w=G;continue}if(G=p+16|0,J=o[G>>2]|0,J)p=J,w=G;else break}o[w>>2]=0}else pi=o[y+8>>2]|0,o[pi+12>>2]=p,o[p+8>>2]=pi;while(!1);if(!U)break;w=o[y+28>>2]|0,G=11436+(w<<2)|0;do if((y|0)!=(o[G>>2]|0)){if(o[U+16+(((o[U+16>>2]|0)!=(y|0)&1)<<2)>>2]=p,!p)break e}else{if(o[G>>2]=p,p|0)break;o[2784]=o[2784]&~(1<>2]=U,w=y+16|0,G=o[w>>2]|0,G|0&&(o[p+16>>2]=G,o[G+24>>2]=p),w=o[w+4>>2]|0,!w)break;o[p+20>>2]=w,o[w+24>>2]=p}while(!1);y=y+le|0,J=le+Ge|0}else J=Ge;if(y=y+4|0,o[y>>2]=o[y>>2]&-2,o[bt+4>>2]=J|1,o[bt+J>>2]=J,y=J>>>3,J>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=bt,o[y+12>>2]=bt,o[bt+8>>2]=y,o[bt+12>>2]=w;break}y=J>>>8;do if(!y)y=0;else{if(J>>>0>16777215){y=31;break}ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,y=14-(So|ss|y)+(pi<>>15)|0,y=J>>>(y+7|0)&1|y<<1}while(!1);if(G=11436+(y<<2)|0,o[bt+28>>2]=y,p=bt+16|0,o[p+4>>2]=0,o[p>>2]=0,p=o[2784]|0,w=1<>2]=bt,o[bt+24>>2]=G,o[bt+12>>2]=bt,o[bt+8>>2]=bt;break}for(p=J<<((y|0)==31?0:25-(y>>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(J|0)){ss=194;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=193;break}}if((ss|0)==193){o[G>>2]=bt,o[bt+24>>2]=w,o[bt+12>>2]=bt,o[bt+8>>2]=bt;break}else if((ss|0)==194){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=bt,o[ss>>2]=bt,o[bt+8>>2]=pi,o[bt+12>>2]=w,o[bt+24>>2]=0;break}}else pi=(o[2786]|0)+Ge|0,o[2786]=pi,o[2789]=bt,o[bt+4>>2]=pi|1;while(!1);return pi=It+8|0,B=hl,pi|0}for(y=11580;p=o[y>>2]|0,!(p>>>0<=Xe>>>0&&(pi=p+(o[y+4>>2]|0)|0,pi>>>0>Xe>>>0));)y=o[y+8>>2]|0;J=pi+-47|0,p=J+8|0,p=J+(p&7|0?0-p&7:0)|0,J=Xe+16|0,p=p>>>0>>0?Xe:p,y=p+8|0,w=U+8|0,w=w&7|0?0-w&7:0,ss=U+w|0,w=le+-40-w|0,o[2789]=ss,o[2786]=w,o[ss+4>>2]=w|1,o[ss+w+4>>2]=40,o[2790]=o[2905],w=p+4|0,o[w>>2]=27,o[y>>2]=o[2895],o[y+4>>2]=o[2896],o[y+8>>2]=o[2897],o[y+12>>2]=o[2898],o[2895]=U,o[2896]=le,o[2898]=0,o[2897]=y,y=p+24|0;do ss=y,y=y+4|0,o[y>>2]=7;while((ss+8|0)>>>0>>0);if((p|0)!=(Xe|0)){if(U=p-Xe|0,o[w>>2]=o[w>>2]&-2,o[Xe+4>>2]=U|1,o[p>>2]=U,y=U>>>3,U>>>0<256){w=11172+(y<<1<<2)|0,p=o[2783]|0,y=1<>2]|0):(o[2783]=p|y,y=w,p=w+8|0),o[p>>2]=Xe,o[y+12>>2]=Xe,o[Xe+8>>2]=y,o[Xe+12>>2]=w;break}if(y=U>>>8,y?U>>>0>16777215?w=31:(ss=(y+1048320|0)>>>16&8,pi=y<>>16&4,pi=pi<>>16&2,w=14-(So|ss|w)+(pi<>>15)|0,w=U>>>(w+7|0)&1|w<<1):w=0,G=11436+(w<<2)|0,o[Xe+28>>2]=w,o[Xe+20>>2]=0,o[J>>2]=0,y=o[2784]|0,p=1<>2]=Xe,o[Xe+24>>2]=G,o[Xe+12>>2]=Xe,o[Xe+8>>2]=Xe;break}for(p=U<<((w|0)==31?0:25-(w>>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(U|0)){ss=216;break}if(G=w+16+(p>>>31<<2)|0,y=o[G>>2]|0,y)p=p<<1,w=y;else{ss=215;break}}if((ss|0)==215){o[G>>2]=Xe,o[Xe+24>>2]=w,o[Xe+12>>2]=Xe,o[Xe+8>>2]=Xe;break}else if((ss|0)==216){ss=w+8|0,pi=o[ss>>2]|0,o[pi+12>>2]=Xe,o[ss>>2]=Xe,o[Xe+8>>2]=pi,o[Xe+12>>2]=w,o[Xe+24>>2]=0;break}}}else{pi=o[2787]|0,(pi|0)==0|U>>>0>>0&&(o[2787]=U),o[2895]=U,o[2896]=le,o[2898]=0,o[2792]=o[2901],o[2791]=-1,y=0;do pi=11172+(y<<1<<2)|0,o[pi+12>>2]=pi,o[pi+8>>2]=pi,y=y+1|0;while((y|0)!=32);pi=U+8|0,pi=pi&7|0?0-pi&7:0,ss=U+pi|0,pi=le+-40-pi|0,o[2789]=ss,o[2786]=pi,o[ss+4>>2]=pi|1,o[ss+pi+4>>2]=40,o[2790]=o[2905]}while(!1);if(y=o[2786]|0,y>>>0>rr>>>0)return So=y-rr|0,o[2786]=So,pi=o[2789]|0,ss=pi+rr|0,o[2789]=ss,o[ss+4>>2]=So|1,o[pi+4>>2]=rr|3,pi=pi+8|0,B=hl,pi|0}return o[(qY()|0)>>2]=12,pi=0,B=hl,pi|0}function qne(p){p=p|0;var y=0,w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0;if(p){w=p+-8|0,J=o[2787]|0,p=o[p+-4>>2]|0,y=p&-8,Xe=w+y|0;do if(p&1)Ge=w,le=w;else{if(G=o[w>>2]|0,!(p&3)||(le=w+(0-G)|0,U=G+y|0,le>>>0>>0))return;if((le|0)==(o[2788]|0)){if(p=Xe+4|0,y=o[p>>2]|0,(y&3|0)!=3){Ge=le,y=U;break}o[2785]=U,o[p>>2]=y&-2,o[le+4>>2]=U|1,o[le+U>>2]=U;return}if(w=G>>>3,G>>>0<256)if(p=o[le+8>>2]|0,y=o[le+12>>2]|0,(y|0)==(p|0)){o[2783]=o[2783]&~(1<>2]=y,o[y+8>>2]=p,Ge=le,y=U;break}J=o[le+24>>2]|0,p=o[le+12>>2]|0;do if((p|0)==(le|0)){if(w=le+16|0,y=w+4|0,p=o[y>>2]|0,!p)if(p=o[w>>2]|0,p)y=w;else{p=0;break}for(;;){if(w=p+20|0,G=o[w>>2]|0,G|0){p=G,y=w;continue}if(w=p+16|0,G=o[w>>2]|0,G)p=G,y=w;else break}o[y>>2]=0}else Ge=o[le+8>>2]|0,o[Ge+12>>2]=p,o[p+8>>2]=Ge;while(!1);if(J){if(y=o[le+28>>2]|0,w=11436+(y<<2)|0,(le|0)==(o[w>>2]|0)){if(o[w>>2]=p,!p){o[2784]=o[2784]&~(1<>2]|0)!=(le|0)&1)<<2)>>2]=p,!p){Ge=le,y=U;break}o[p+24>>2]=J,y=le+16|0,w=o[y>>2]|0,w|0&&(o[p+16>>2]=w,o[w+24>>2]=p),y=o[y+4>>2]|0,y?(o[p+20>>2]=y,o[y+24>>2]=p,Ge=le,y=U):(Ge=le,y=U)}else Ge=le,y=U}while(!1);if(!(le>>>0>=Xe>>>0)&&(p=Xe+4|0,G=o[p>>2]|0,!!(G&1))){if(G&2)o[p>>2]=G&-2,o[Ge+4>>2]=y|1,o[le+y>>2]=y,J=y;else{if(p=o[2788]|0,(Xe|0)==(o[2789]|0)){if(Xe=(o[2786]|0)+y|0,o[2786]=Xe,o[2789]=Ge,o[Ge+4>>2]=Xe|1,(Ge|0)!=(p|0))return;o[2788]=0,o[2785]=0;return}if((Xe|0)==(p|0)){Xe=(o[2785]|0)+y|0,o[2785]=Xe,o[2788]=le,o[Ge+4>>2]=Xe|1,o[le+Xe>>2]=Xe;return}J=(G&-8)+y|0,w=G>>>3;do if(G>>>0<256)if(y=o[Xe+8>>2]|0,p=o[Xe+12>>2]|0,(p|0)==(y|0)){o[2783]=o[2783]&~(1<>2]=p,o[p+8>>2]=y;break}else{U=o[Xe+24>>2]|0,p=o[Xe+12>>2]|0;do if((p|0)==(Xe|0)){if(w=Xe+16|0,y=w+4|0,p=o[y>>2]|0,!p)if(p=o[w>>2]|0,p)y=w;else{w=0;break}for(;;){if(w=p+20|0,G=o[w>>2]|0,G|0){p=G,y=w;continue}if(w=p+16|0,G=o[w>>2]|0,G)p=G,y=w;else break}o[y>>2]=0,w=p}else w=o[Xe+8>>2]|0,o[w+12>>2]=p,o[p+8>>2]=w,w=p;while(!1);if(U|0){if(p=o[Xe+28>>2]|0,y=11436+(p<<2)|0,(Xe|0)==(o[y>>2]|0)){if(o[y>>2]=w,!w){o[2784]=o[2784]&~(1<>2]|0)!=(Xe|0)&1)<<2)>>2]=w,!w)break;o[w+24>>2]=U,p=Xe+16|0,y=o[p>>2]|0,y|0&&(o[w+16>>2]=y,o[y+24>>2]=w),p=o[p+4>>2]|0,p|0&&(o[w+20>>2]=p,o[p+24>>2]=w)}}while(!1);if(o[Ge+4>>2]=J|1,o[le+J>>2]=J,(Ge|0)==(o[2788]|0)){o[2785]=J;return}}if(p=J>>>3,J>>>0<256){w=11172+(p<<1<<2)|0,y=o[2783]|0,p=1<>2]|0):(o[2783]=y|p,p=w,y=w+8|0),o[y>>2]=Ge,o[p+12>>2]=Ge,o[Ge+8>>2]=p,o[Ge+12>>2]=w;return}p=J>>>8,p?J>>>0>16777215?p=31:(le=(p+1048320|0)>>>16&8,Xe=p<>>16&4,Xe=Xe<>>16&2,p=14-(U|le|p)+(Xe<

>>15)|0,p=J>>>(p+7|0)&1|p<<1):p=0,G=11436+(p<<2)|0,o[Ge+28>>2]=p,o[Ge+20>>2]=0,o[Ge+16>>2]=0,y=o[2784]|0,w=1<>>1)|0),w=o[G>>2]|0;;){if((o[w+4>>2]&-8|0)==(J|0)){p=73;break}if(G=w+16+(y>>>31<<2)|0,p=o[G>>2]|0,p)y=y<<1,w=p;else{p=72;break}}if((p|0)==72){o[G>>2]=Ge,o[Ge+24>>2]=w,o[Ge+12>>2]=Ge,o[Ge+8>>2]=Ge;break}else if((p|0)==73){le=w+8|0,Xe=o[le>>2]|0,o[Xe+12>>2]=Ge,o[le>>2]=Ge,o[Ge+8>>2]=Xe,o[Ge+12>>2]=w,o[Ge+24>>2]=0;break}}else o[2784]=y|w,o[G>>2]=Ge,o[Ge+24>>2]=G,o[Ge+12>>2]=Ge,o[Ge+8>>2]=Ge;while(!1);if(Xe=(o[2791]|0)+-1|0,o[2791]=Xe,!Xe)p=11588;else return;for(;p=o[p>>2]|0,p;)p=p+8|0;o[2791]=-1}}}function jAe(){return 11628}function dU(p){p=p|0;var y=0,w=0;return y=B,B=B+16|0,w=y,o[w>>2]=gz(o[p+60>>2]|0)|0,p=eie(Xs(6,w|0)|0)|0,B=y,p|0}function $ne(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0;rr=B,B=B+48|0,bt=rr+16|0,U=rr,J=rr+32|0,Ge=p+28|0,G=o[Ge>>2]|0,o[J>>2]=G,Xe=p+20|0,G=(o[Xe>>2]|0)-G|0,o[J+4>>2]=G,o[J+8>>2]=y,o[J+12>>2]=w,G=G+w|0,le=p+60|0,o[U>>2]=o[le>>2],o[U+4>>2]=J,o[U+8>>2]=2,U=eie(Ma(146,U|0)|0)|0;e:do if((G|0)!=(U|0)){for(y=2;!((U|0)<0);)if(G=G-U|0,Ks=o[J+4>>2]|0,an=U>>>0>Ks>>>0,J=an?J+8|0:J,y=(an<<31>>31)+y|0,Ks=U-(an?Ks:0)|0,o[J>>2]=(o[J>>2]|0)+Ks,an=J+4|0,o[an>>2]=(o[an>>2]|0)-Ks,o[bt>>2]=o[le>>2],o[bt+4>>2]=J,o[bt+8>>2]=y,U=eie(Ma(146,bt|0)|0)|0,(G|0)==(U|0)){It=3;break e}o[p+16>>2]=0,o[Ge>>2]=0,o[Xe>>2]=0,o[p>>2]=o[p>>2]|32,(y|0)==2?w=0:w=w-(o[J+4>>2]|0)|0}else It=3;while(!1);return(It|0)==3&&(Ks=o[p+44>>2]|0,o[p+16>>2]=Ks+(o[p+48>>2]|0),o[Ge>>2]=Ks,o[Xe>>2]=Ks),B=rr,w|0}function uPt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;return J=B,B=B+32|0,U=J,G=J+20|0,o[U>>2]=o[p+60>>2],o[U+4>>2]=0,o[U+8>>2]=y,o[U+12>>2]=G,o[U+16>>2]=w,(eie(Gs(140,U|0)|0)|0)<0?(o[G>>2]=-1,p=-1):p=o[G>>2]|0,B=J,p|0}function eie(p){return p=p|0,p>>>0>4294963200&&(o[(qY()|0)>>2]=0-p,p=-1),p|0}function qY(){return(Obe()|0)+64|0}function Obe(){return tie()|0}function tie(){return 2084}function gz(p){return p=p|0,p|0}function Mbe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;return J=B,B=B+32|0,G=J,o[p+36>>2]=1,!(o[p>>2]&64|0)&&(o[G>>2]=o[p+60>>2],o[G+4>>2]=21523,o[G+8>>2]=J+16,GA(54,G|0)|0)&&(n[p+75>>0]=-1),G=$ne(p,y,w)|0,B=J,G|0}function jqe(p,y){p=p|0,y=y|0;var w=0,G=0;if(w=n[p>>0]|0,G=n[y>>0]|0,!(w<<24>>24)||w<<24>>24!=G<<24>>24)p=G;else{do p=p+1|0,y=y+1|0,w=n[p>>0]|0,G=n[y>>0]|0;while(!(!(w<<24>>24)||w<<24>>24!=G<<24>>24));p=G}return(w&255)-(p&255)|0}function kLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0;e:do if(!w)p=0;else{for(;G=n[p>>0]|0,J=n[y>>0]|0,G<<24>>24==J<<24>>24;)if(w=w+-1|0,w)p=p+1|0,y=y+1|0;else{p=0;break e}p=(G&255)-(J&255)|0}while(!1);return p|0}function zAe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0;Un=B,B=B+224|0,It=Un+120|0,rr=Un+80|0,Ks=Un,zi=Un+136|0,G=rr,J=G+40|0;do o[G>>2]=0,G=G+4|0;while((G|0)<(J|0));return o[It>>2]=o[w>>2],(JA(0,y,It,Ks,rr)|0)<0?w=-1:((o[p+76>>2]|0)>-1?an=rie(p)|0:an=0,w=o[p>>2]|0,bt=w&32,(n[p+74>>0]|0)<1&&(o[p>>2]=w&-33),G=p+48|0,o[G>>2]|0?w=JA(p,y,It,Ks,rr)|0:(J=p+44|0,U=o[J>>2]|0,o[J>>2]=zi,le=p+28|0,o[le>>2]=zi,Ge=p+20|0,o[Ge>>2]=zi,o[G>>2]=80,Xe=p+16|0,o[Xe>>2]=zi+80,w=JA(p,y,It,Ks,rr)|0,U&&(KL[o[p+36>>2]&7](p,0,0)|0,w=o[Ge>>2]|0?w:-1,o[J>>2]=U,o[G>>2]=0,o[Xe>>2]=0,o[le>>2]=0,o[Ge>>2]=0)),G=o[p>>2]|0,o[p>>2]=G|bt,an|0&&zqe(p),w=G&32|0?-1:w),B=Un,w|0}function JA(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0;wg=B,B=B+64|0,fl=wg+16|0,Tc=wg,hl=wg+24|0,Bg=wg+8|0,Dg=wg+20|0,o[fl>>2]=y,So=(p|0)!=0,ss=hl+40|0,pi=ss,hl=hl+39|0,uu=Bg+4|0,le=0,U=0,It=0;e:for(;;){do if((U|0)>-1)if((le|0)>(2147483647-U|0)){o[(qY()|0)>>2]=75,U=-1;break}else{U=le+U|0;break}while(!1);if(le=n[y>>0]|0,le<<24>>24)Ge=y;else{Si=87;break}t:for(;;){switch(le<<24>>24){case 37:{le=Ge,Si=9;break t}case 0:{le=Ge;break t}default:}Ds=Ge+1|0,o[fl>>2]=Ds,le=n[Ds>>0]|0,Ge=Ds}t:do if((Si|0)==9)for(;;){if(Si=0,(n[Ge+1>>0]|0)!=37)break t;if(le=le+1|0,Ge=Ge+2|0,o[fl>>2]=Ge,(n[Ge>>0]|0)==37)Si=9;else break}while(!1);if(le=le-y|0,So&&o0(p,y,le),le|0){y=Ge;continue}Xe=Ge+1|0,le=(n[Xe>>0]|0)+-48|0,le>>>0<10?(Ds=(n[Ge+2>>0]|0)==36,Un=Ds?le:-1,It=Ds?1:It,Xe=Ds?Ge+3|0:Xe):Un=-1,o[fl>>2]=Xe,le=n[Xe>>0]|0,Ge=(le<<24>>24)+-32|0;t:do if(Ge>>>0<32)for(bt=0,rr=le;;){if(le=1<>2]=Xe,le=n[Xe>>0]|0,Ge=(le<<24>>24)+-32|0,Ge>>>0>=32)break;rr=le}else bt=0;while(!1);if(le<<24>>24==42){if(Ge=Xe+1|0,le=(n[Ge>>0]|0)+-48|0,le>>>0<10&&(n[Xe+2>>0]|0)==36)o[J+(le<<2)>>2]=10,le=o[G+((n[Ge>>0]|0)+-48<<3)>>2]|0,It=1,Xe=Xe+3|0;else{if(It|0){U=-1;break}So?(It=(o[w>>2]|0)+3&-4,le=o[It>>2]|0,o[w>>2]=It+4,It=0,Xe=Ge):(le=0,It=0,Xe=Ge)}o[fl>>2]=Xe,Ds=(le|0)<0,le=Ds?0-le|0:le,bt=Ds?bt|8192:bt}else{if(le=qAe(fl)|0,(le|0)<0){U=-1;break}Xe=o[fl>>2]|0}do if((n[Xe>>0]|0)==46){if((n[Xe+1>>0]|0)!=42){o[fl>>2]=Xe+1,Ge=qAe(fl)|0,Xe=o[fl>>2]|0;break}if(rr=Xe+2|0,Ge=(n[rr>>0]|0)+-48|0,Ge>>>0<10&&(n[Xe+3>>0]|0)==36){o[J+(Ge<<2)>>2]=10,Ge=o[G+((n[rr>>0]|0)+-48<<3)>>2]|0,Xe=Xe+4|0,o[fl>>2]=Xe;break}if(It|0){U=-1;break e}So?(Ds=(o[w>>2]|0)+3&-4,Ge=o[Ds>>2]|0,o[w>>2]=Ds+4):Ge=0,o[fl>>2]=rr,Xe=rr}else Ge=-1;while(!1);for(zi=0;;){if(((n[Xe>>0]|0)+-65|0)>>>0>57){U=-1;break e}if(Ds=Xe+1|0,o[fl>>2]=Ds,rr=n[(n[Xe>>0]|0)+-65+(5178+(zi*58|0))>>0]|0,an=rr&255,(an+-1|0)>>>0<8)zi=an,Xe=Ds;else break}if(!(rr<<24>>24)){U=-1;break}Ks=(Un|0)>-1;do if(rr<<24>>24==19)if(Ks){U=-1;break e}else Si=49;else{if(Ks){o[J+(Un<<2)>>2]=an,Ks=G+(Un<<3)|0,Un=o[Ks+4>>2]|0,Si=Tc,o[Si>>2]=o[Ks>>2],o[Si+4>>2]=Un,Si=49;break}if(!So){U=0;break e}Vy(Tc,an,w)}while(!1);if((Si|0)==49&&(Si=0,!So)){le=0,y=Ds;continue}Xe=n[Xe>>0]|0,Xe=(zi|0)!=0&(Xe&15|0)==3?Xe&-33:Xe,Ks=bt&-65537,Un=bt&8192|0?Ks:bt;t:do switch(Xe|0){case 110:switch((zi&255)<<24>>24){case 0:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 1:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 2:{le=o[Tc>>2]|0,o[le>>2]=U,o[le+4>>2]=((U|0)<0)<<31>>31,le=0,y=Ds;continue e}case 3:{a[o[Tc>>2]>>1]=U,le=0,y=Ds;continue e}case 4:{n[o[Tc>>2]>>0]=U,le=0,y=Ds;continue e}case 6:{o[o[Tc>>2]>>2]=U,le=0,y=Ds;continue e}case 7:{le=o[Tc>>2]|0,o[le>>2]=U,o[le+4>>2]=((U|0)<0)<<31>>31,le=0,y=Ds;continue e}default:{le=0,y=Ds;continue e}}case 112:{Xe=120,Ge=Ge>>>0>8?Ge:8,y=Un|8,Si=61;break}case 88:case 120:{y=Un,Si=61;break}case 111:{Xe=Tc,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,an=xLe(y,Xe,ss)|0,Ks=pi-an|0,bt=0,rr=5642,Ge=(Un&8|0)==0|(Ge|0)>(Ks|0)?Ge:Ks+1|0,Ks=Un,Si=67;break}case 105:case 100:if(Xe=Tc,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,(Xe|0)<0){y=XT(0,0,y|0,Xe|0)|0,Xe=ct,bt=Tc,o[bt>>2]=y,o[bt+4>>2]=Xe,bt=1,rr=5642,Si=66;break t}else{bt=(Un&2049|0)!=0&1,rr=Un&2048|0?5643:Un&1|0?5644:5642,Si=66;break t}case 117:{Xe=Tc,bt=0,rr=5642,y=o[Xe>>2]|0,Xe=o[Xe+4>>2]|0,Si=66;break}case 99:{n[hl>>0]=o[Tc>>2],y=hl,bt=0,rr=5642,an=ss,Xe=1,Ge=Ks;break}case 109:{Xe=gPt(o[(qY()|0)>>2]|0)|0,Si=71;break}case 115:{Xe=o[Tc>>2]|0,Xe=Xe|0?Xe:5652,Si=71;break}case 67:{o[Bg>>2]=o[Tc>>2],o[uu>>2]=0,o[Tc>>2]=Bg,an=-1,Xe=Bg,Si=75;break}case 83:{y=o[Tc>>2]|0,Ge?(an=Ge,Xe=y,Si=75):(pv(p,32,le,0,Un),y=0,Si=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{le=FLe(p,+C[Tc>>3],le,Ge,Un,Xe)|0,y=Ds;continue e}default:bt=0,rr=5642,an=ss,Xe=Ge,Ge=Un}while(!1);t:do if((Si|0)==61)Un=Tc,zi=o[Un>>2]|0,Un=o[Un+4>>2]|0,an=Hbe(zi,Un,ss,Xe&32)|0,rr=(y&8|0)==0|(zi|0)==0&(Un|0)==0,bt=rr?0:2,rr=rr?5642:5642+(Xe>>4)|0,Ks=y,y=zi,Xe=Un,Si=67;else if((Si|0)==66)an=pU(y,Xe,ss)|0,Ks=Un,Si=67;else if((Si|0)==71)Si=0,Un=GLe(Xe,0,Ge)|0,zi=(Un|0)==0,y=Xe,bt=0,rr=5642,an=zi?Xe+Ge|0:Un,Xe=zi?Ge:Un-Xe|0,Ge=Ks;else if((Si|0)==75){for(Si=0,rr=Xe,y=0,Ge=0;bt=o[rr>>2]|0,!(!bt||(Ge=Ybe(Dg,bt)|0,(Ge|0)<0|Ge>>>0>(an-y|0)>>>0));)if(y=Ge+y|0,an>>>0>y>>>0)rr=rr+4|0;else break;if((Ge|0)<0){U=-1;break e}if(pv(p,32,le,y,Un),!y)y=0,Si=84;else for(bt=0;;){if(Ge=o[Xe>>2]|0,!Ge){Si=84;break t}if(Ge=Ybe(Dg,Ge)|0,bt=Ge+bt|0,(bt|0)>(y|0)){Si=84;break t}if(o0(p,Dg,Ge),bt>>>0>=y>>>0){Si=84;break}else Xe=Xe+4|0}}while(!1);if((Si|0)==67)Si=0,Xe=(y|0)!=0|(Xe|0)!=0,Un=(Ge|0)!=0|Xe,Xe=((Xe^1)&1)+(pi-an)|0,y=Un?an:ss,an=ss,Xe=Un?(Ge|0)>(Xe|0)?Ge:Xe:Ge,Ge=(Ge|0)>-1?Ks&-65537:Ks;else if((Si|0)==84){Si=0,pv(p,32,le,y,Un^8192),le=(le|0)>(y|0)?le:y,y=Ds;continue}zi=an-y|0,Ks=(Xe|0)<(zi|0)?zi:Xe,Un=Ks+bt|0,le=(le|0)<(Un|0)?Un:le,pv(p,32,le,Un,Ge),o0(p,rr,bt),pv(p,48,le,Un,Ge^65536),pv(p,48,Ks,zi,0),o0(p,y,zi),pv(p,32,le,Un,Ge^8192),y=Ds}e:do if((Si|0)==87&&!p)if(!It)U=0;else{for(U=1;y=o[J+(U<<2)>>2]|0,!!y;)if(Vy(G+(U<<3)|0,y,w),U=U+1|0,(U|0)>=10){U=1;break e}for(;;){if(o[J+(U<<2)>>2]|0){U=-1;break e}if(U=U+1|0,(U|0)>=10){U=1;break}}}while(!1);return B=wg,U|0}function rie(p){return p=p|0,0}function zqe(p){p=p|0}function o0(p,y,w){p=p|0,y=y|0,w=w|0,o[p>>2]&32||iie(y,w,p)|0}function qAe(p){p=p|0;var y=0,w=0,G=0;if(w=o[p>>2]|0,G=(n[w>>0]|0)+-48|0,G>>>0<10){y=0;do y=G+(y*10|0)|0,w=w+1|0,o[p>>2]=w,G=(n[w>>0]|0)+-48|0;while(G>>>0<10)}else y=0;return y|0}function Vy(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;e:do if(y>>>0<=20)do switch(y|0){case 9:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,o[p>>2]=y;break e}case 10:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,G=p,o[G>>2]=y,o[G+4>>2]=((y|0)<0)<<31>>31;break e}case 11:{G=(o[w>>2]|0)+3&-4,y=o[G>>2]|0,o[w>>2]=G+4,G=p,o[G>>2]=y,o[G+4>>2]=0;break e}case 12:{G=(o[w>>2]|0)+7&-8,y=G,J=o[y>>2]|0,y=o[y+4>>2]|0,o[w>>2]=G+8,G=p,o[G>>2]=J,o[G+4>>2]=y;break e}case 13:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,G=(G&65535)<<16>>16,J=p,o[J>>2]=G,o[J+4>>2]=((G|0)<0)<<31>>31;break e}case 14:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,J=p,o[J>>2]=G&65535,o[J+4>>2]=0;break e}case 15:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,G=(G&255)<<24>>24,J=p,o[J>>2]=G,o[J+4>>2]=((G|0)<0)<<31>>31;break e}case 16:{J=(o[w>>2]|0)+3&-4,G=o[J>>2]|0,o[w>>2]=J+4,J=p,o[J>>2]=G&255,o[J+4>>2]=0;break e}case 17:{J=(o[w>>2]|0)+7&-8,U=+C[J>>3],o[w>>2]=J+8,C[p>>3]=U;break e}case 18:{J=(o[w>>2]|0)+7&-8,U=+C[J>>3],o[w>>2]=J+8,C[p>>3]=U;break e}default:break e}while(!1);while(!1)}function Hbe(p,y,w,G){if(p=p|0,y=y|0,w=w|0,G=G|0,!((p|0)==0&(y|0)==0))do w=w+-1|0,n[w>>0]=l[5694+(p&15)>>0]|0|G,p=D3(p|0,y|0,4)|0,y=ct;while(!((p|0)==0&(y|0)==0));return w|0}function xLe(p,y,w){if(p=p|0,y=y|0,w=w|0,!((p|0)==0&(y|0)==0))do w=w+-1|0,n[w>>0]=p&7|48,p=D3(p|0,y|0,3)|0,y=ct;while(!((p|0)==0&(y|0)==0));return w|0}function pU(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;if(y>>>0>0|(y|0)==0&p>>>0>4294967295){for(;G=hU(p|0,y|0,10,0)|0,w=w+-1|0,n[w>>0]=G&255|48,G=p,p=k3(p|0,y|0,10,0)|0,y>>>0>9|(y|0)==9&G>>>0>4294967295;)y=ct;y=p}else y=p;if(y)for(;w=w+-1|0,n[w>>0]=(y>>>0)%10|0|48,!(y>>>0<10);)y=(y>>>0)/10|0;return w|0}function gPt(p){return p=p|0,Ube(p,o[(nie()|0)+188>>2]|0)|0}function GLe(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;U=y&255,G=(w|0)!=0;e:do if(G&(p&3|0)!=0)for(J=y&255;;){if((n[p>>0]|0)==J<<24>>24){le=6;break e}if(p=p+1|0,w=w+-1|0,G=(w|0)!=0,!(G&(p&3|0)!=0)){le=5;break}}else le=5;while(!1);(le|0)==5&&(G?le=6:w=0);e:do if((le|0)==6&&(J=y&255,(n[p>>0]|0)!=J<<24>>24)){G=cr(U,16843009)|0;t:do if(w>>>0>3){for(;U=o[p>>2]^G,!((U&-2139062144^-2139062144)&U+-16843009|0);)if(p=p+4|0,w=w+-4|0,w>>>0<=3){le=11;break t}}else le=11;while(!1);if((le|0)==11&&!w){w=0;break}for(;;){if((n[p>>0]|0)==J<<24>>24)break e;if(p=p+1|0,w=w+-1|0,!w){w=0;break}}}while(!1);return(w|0?p:0)|0}function pv(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0;if(le=B,B=B+256|0,U=le,(w|0)>(G|0)&(J&73728|0)==0){if(J=w-G|0,fz(U|0,y|0,(J>>>0<256?J:256)|0)|0,J>>>0>255){y=w-G|0;do o0(p,U,256),J=J+-256|0;while(J>>>0>255);J=y&255}o0(p,U,J)}B=le}function Ybe(p,y){return p=p|0,y=y|0,p?p=qqe(p,y,0)|0:p=0,p|0}function FLe(p,y,w,G,J,U){p=p|0,y=+y,w=w|0,G=G|0,J=J|0,U=U|0;var le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0,Un=0,Ds=0,Si=0,So=0,ss=0,pi=0,hl=0,uu=0,fl=0,Tc=0,Bg=0,Dg=0,wg=0,em=0;em=B,B=B+560|0,Xe=em+8|0,Ds=em,wg=em+524|0,Dg=wg,bt=em+512|0,o[Ds>>2]=0,Bg=bt+12|0,Qbe(y)|0,(ct|0)<0?(y=-y,fl=1,uu=5659):(fl=(J&2049|0)!=0&1,uu=J&2048|0?5662:J&1|0?5665:5660),Qbe(y)|0,Tc=ct&2146435072;do if(Tc>>>0<2146435072|(Tc|0)==2146435072&!1){if(Ks=+Xbe(y,Ds)*2,le=Ks!=0,le&&(o[Ds>>2]=(o[Ds>>2]|0)+-1),So=U|32,(So|0)==97){zi=U&32,an=zi|0?uu+9|0:uu,rr=fl|2,le=12-G|0;do if(G>>>0>11|(le|0)==0)y=Ks;else{y=8;do le=le+-1|0,y=y*16;while(le|0);if((n[an>>0]|0)==45){y=-(y+(-Ks-y));break}else{y=Ks+y-y;break}}while(!1);Ge=o[Ds>>2]|0,le=(Ge|0)<0?0-Ge|0:Ge,le=pU(le,((le|0)<0)<<31>>31,Bg)|0,(le|0)==(Bg|0)&&(le=bt+11|0,n[le>>0]=48),n[le+-1>>0]=(Ge>>31&2)+43,It=le+-2|0,n[It>>0]=U+15,bt=(G|0)<1,Xe=(J&8|0)==0,le=wg;do Tc=~~y,Ge=le+1|0,n[le>>0]=l[5694+Tc>>0]|zi,y=(y-+(Tc|0))*16,(Ge-Dg|0)==1&&!(Xe&(bt&y==0))?(n[Ge>>0]=46,le=le+2|0):le=Ge;while(y!=0);Tc=le-Dg|0,Dg=Bg-It|0,Bg=(G|0)!=0&(Tc+-2|0)<(G|0)?G+2|0:Tc,le=Dg+rr+Bg|0,pv(p,32,w,le,J),o0(p,an,rr),pv(p,48,w,le,J^65536),o0(p,wg,Tc),pv(p,48,Bg-Tc|0,0,0),o0(p,It,Dg),pv(p,32,w,le,J^8192);break}Ge=(G|0)<0?6:G,le?(le=(o[Ds>>2]|0)+-28|0,o[Ds>>2]=le,y=Ks*268435456):(y=Ks,le=o[Ds>>2]|0),Tc=(le|0)<0?Xe:Xe+288|0,Xe=Tc;do pi=~~y>>>0,o[Xe>>2]=pi,Xe=Xe+4|0,y=(y-+(pi>>>0))*1e9;while(y!=0);if((le|0)>0)for(bt=Tc,rr=Xe;;){if(It=(le|0)<29?le:29,le=rr+-4|0,le>>>0>=bt>>>0){Xe=0;do ss=Kbe(o[le>>2]|0,0,It|0)|0,ss=Hg(ss|0,ct|0,Xe|0,0)|0,pi=ct,Si=hU(ss|0,pi|0,1e9,0)|0,o[le>>2]=Si,Xe=k3(ss|0,pi|0,1e9,0)|0,le=le+-4|0;while(le>>>0>=bt>>>0);Xe&&(bt=bt+-4|0,o[bt>>2]=Xe)}for(Xe=rr;!(Xe>>>0<=bt>>>0);)if(le=Xe+-4|0,!(o[le>>2]|0))Xe=le;else break;if(le=(o[Ds>>2]|0)-It|0,o[Ds>>2]=le,(le|0)>0)rr=Xe;else break}else bt=Tc;if((le|0)<0){G=((Ge+25|0)/9|0)+1|0,Un=(So|0)==102;do{if(zi=0-le|0,zi=(zi|0)<9?zi:9,bt>>>0>>0){It=(1<>>zi,an=0,le=bt;do pi=o[le>>2]|0,o[le>>2]=(pi>>>zi)+an,an=cr(pi&It,rr)|0,le=le+4|0;while(le>>>0>>0);le=o[bt>>2]|0?bt:bt+4|0,an?(o[Xe>>2]=an,bt=le,le=Xe+4|0):(bt=le,le=Xe)}else bt=o[bt>>2]|0?bt:bt+4|0,le=Xe;Xe=Un?Tc:bt,Xe=(le-Xe>>2|0)>(G|0)?Xe+(G<<2)|0:le,le=(o[Ds>>2]|0)+zi|0,o[Ds>>2]=le}while((le|0)<0);le=bt,G=Xe}else le=bt,G=Xe;if(pi=Tc,le>>>0>>0){if(Xe=(pi-le>>2)*9|0,It=o[le>>2]|0,It>>>0>=10){bt=10;do bt=bt*10|0,Xe=Xe+1|0;while(It>>>0>=bt>>>0)}}else Xe=0;if(Un=(So|0)==103,Si=(Ge|0)!=0,bt=Ge-((So|0)!=102?Xe:0)+((Si&Un)<<31>>31)|0,(bt|0)<(((G-pi>>2)*9|0)+-9|0)){if(bt=bt+9216|0,zi=Tc+4+(((bt|0)/9|0)+-1024<<2)|0,bt=((bt|0)%9|0)+1|0,(bt|0)<9){It=10;do It=It*10|0,bt=bt+1|0;while((bt|0)!=9)}else It=10;if(rr=o[zi>>2]|0,an=(rr>>>0)%(It>>>0)|0,bt=(zi+4|0)==(G|0),bt&(an|0)==0)bt=zi;else if(Ks=((rr>>>0)/(It>>>0)|0)&1|0?9007199254740994:9007199254740992,ss=(It|0)/2|0,y=an>>>0>>0?.5:bt&(an|0)==(ss|0)?1:1.5,fl&&(ss=(n[uu>>0]|0)==45,y=ss?-y:y,Ks=ss?-Ks:Ks),bt=rr-an|0,o[zi>>2]=bt,Ks+y!=Ks){if(ss=bt+It|0,o[zi>>2]=ss,ss>>>0>999999999)for(Xe=zi;bt=Xe+-4|0,o[Xe>>2]=0,bt>>>0>>0&&(le=le+-4|0,o[le>>2]=0),ss=(o[bt>>2]|0)+1|0,o[bt>>2]=ss,ss>>>0>999999999;)Xe=bt;else bt=zi;if(Xe=(pi-le>>2)*9|0,rr=o[le>>2]|0,rr>>>0>=10){It=10;do It=It*10|0,Xe=Xe+1|0;while(rr>>>0>=It>>>0)}}else bt=zi;bt=bt+4|0,bt=G>>>0>bt>>>0?bt:G,ss=le}else bt=G,ss=le;for(So=bt;;){if(So>>>0<=ss>>>0){Ds=0;break}if(le=So+-4|0,!(o[le>>2]|0))So=le;else{Ds=1;break}}G=0-Xe|0;do if(Un)if(le=((Si^1)&1)+Ge|0,(le|0)>(Xe|0)&(Xe|0)>-5?(It=U+-1|0,Ge=le+-1-Xe|0):(It=U+-2|0,Ge=le+-1|0),le=J&8,le)zi=le;else{if(Ds&&(hl=o[So+-4>>2]|0,(hl|0)!=0))if((hl>>>0)%10|0)bt=0;else{bt=0,le=10;do le=le*10|0,bt=bt+1|0;while(!((hl>>>0)%(le>>>0)|0|0))}else bt=9;if(le=((So-pi>>2)*9|0)+-9|0,(It|32|0)==102){zi=le-bt|0,zi=(zi|0)>0?zi:0,Ge=(Ge|0)<(zi|0)?Ge:zi,zi=0;break}else{zi=le+Xe-bt|0,zi=(zi|0)>0?zi:0,Ge=(Ge|0)<(zi|0)?Ge:zi,zi=0;break}}else It=U,zi=J&8;while(!1);if(Un=Ge|zi,rr=(Un|0)!=0&1,an=(It|32|0)==102,an)Si=0,le=(Xe|0)>0?Xe:0;else{if(le=(Xe|0)<0?G:Xe,le=pU(le,((le|0)<0)<<31>>31,Bg)|0,bt=Bg,(bt-le|0)<2)do le=le+-1|0,n[le>>0]=48;while((bt-le|0)<2);n[le+-1>>0]=(Xe>>31&2)+43,le=le+-2|0,n[le>>0]=It,Si=le,le=bt-le|0}if(le=fl+1+Ge+rr+le|0,pv(p,32,w,le,J),o0(p,uu,fl),pv(p,48,w,le,J^65536),an){It=ss>>>0>Tc>>>0?Tc:ss,zi=wg+9|0,rr=zi,an=wg+8|0,bt=It;do{if(Xe=pU(o[bt>>2]|0,0,zi)|0,(bt|0)==(It|0))(Xe|0)==(zi|0)&&(n[an>>0]=48,Xe=an);else if(Xe>>>0>wg>>>0){fz(wg|0,48,Xe-Dg|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}o0(p,Xe,rr-Xe|0),bt=bt+4|0}while(bt>>>0<=Tc>>>0);if(Un|0&&o0(p,5710,1),bt>>>0>>0&(Ge|0)>0)for(;;){if(Xe=pU(o[bt>>2]|0,0,zi)|0,Xe>>>0>wg>>>0){fz(wg|0,48,Xe-Dg|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}if(o0(p,Xe,(Ge|0)<9?Ge:9),bt=bt+4|0,Xe=Ge+-9|0,bt>>>0>>0&(Ge|0)>9)Ge=Xe;else{Ge=Xe;break}}pv(p,48,Ge+9|0,9,0)}else{if(Un=Ds?So:ss+4|0,(Ge|0)>-1){Ds=wg+9|0,zi=(zi|0)==0,G=Ds,rr=0-Dg|0,an=wg+8|0,It=ss;do{Xe=pU(o[It>>2]|0,0,Ds)|0,(Xe|0)==(Ds|0)&&(n[an>>0]=48,Xe=an);do if((It|0)==(ss|0)){if(bt=Xe+1|0,o0(p,Xe,1),zi&(Ge|0)<1){Xe=bt;break}o0(p,5710,1),Xe=bt}else{if(Xe>>>0<=wg>>>0)break;fz(wg|0,48,Xe+rr|0)|0;do Xe=Xe+-1|0;while(Xe>>>0>wg>>>0)}while(!1);Dg=G-Xe|0,o0(p,Xe,(Ge|0)>(Dg|0)?Dg:Ge),Ge=Ge-Dg|0,It=It+4|0}while(It>>>0>>0&(Ge|0)>-1)}pv(p,48,Ge+18|0,18,0),o0(p,Si,Bg-Si|0)}pv(p,32,w,le,J^8192)}else wg=(U&32|0)!=0,le=fl+3|0,pv(p,32,w,le,J&-65537),o0(p,uu,fl),o0(p,y!=y|!1?wg?5686:5690:wg?5678:5682,3),pv(p,32,w,le,J^8192);while(!1);return B=em,((le|0)<(w|0)?w:le)|0}function Qbe(p){p=+p;var y=0;return C[E>>3]=p,y=o[E>>2]|0,ct=o[E+4>>2]|0,y|0}function Xbe(p,y){return p=+p,y=y|0,+ +Jbe(p,y)}function Jbe(p,y){p=+p,y=y|0;var w=0,G=0,J=0;switch(C[E>>3]=p,w=o[E>>2]|0,G=o[E+4>>2]|0,J=D3(w|0,G|0,52)|0,J&2047){case 0:{p!=0?(p=+Jbe(p*18446744073709552e3,y),w=(o[y>>2]|0)+-64|0):w=0,o[y>>2]=w;break}case 2047:break;default:o[y>>2]=(J&2047)+-1022,o[E>>2]=w,o[E+4>>2]=G&-2146435073|1071644672,p=+C[E>>3]}return+p}function qqe(p,y,w){p=p|0,y=y|0,w=w|0;do if(p){if(y>>>0<128){n[p>>0]=y,p=1;break}if(!(o[o[($qe()|0)+188>>2]>>2]|0))if((y&-128|0)==57216){n[p>>0]=y,p=1;break}else{o[(qY()|0)>>2]=84,p=-1;break}if(y>>>0<2048){n[p>>0]=y>>>6|192,n[p+1>>0]=y&63|128,p=2;break}if(y>>>0<55296|(y&-8192|0)==57344){n[p>>0]=y>>>12|224,n[p+1>>0]=y>>>6&63|128,n[p+2>>0]=y&63|128,p=3;break}if((y+-65536|0)>>>0<1048576){n[p>>0]=y>>>18|240,n[p+1>>0]=y>>>12&63|128,n[p+2>>0]=y>>>6&63|128,n[p+3>>0]=y&63|128,p=4;break}else{o[(qY()|0)>>2]=84,p=-1;break}}else p=1;while(!1);return p|0}function $qe(){return tie()|0}function nie(){return tie()|0}function Ube(p,y){p=p|0,y=y|0;var w=0,G=0;for(G=0;;){if((l[5712+G>>0]|0)==(p|0)){p=2;break}if(w=G+1|0,(w|0)==87){w=5800,G=87,p=5;break}else G=w}if((p|0)==2&&(G?(w=5800,p=5):w=5800),(p|0)==5)for(;;){do p=w,w=w+1|0;while(n[p>>0]|0);if(G=G+-1|0,G)p=5;else break}return kx(w,o[y+20>>2]|0)|0}function kx(p,y){return p=p|0,y=y|0,e$e(p,y)|0}function e$e(p,y){return p=p|0,y=y|0,y?y=APt(o[y>>2]|0,o[y+4>>2]|0,p)|0:y=0,(y|0?y:p)|0}function APt(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0;an=(o[p>>2]|0)+1794895138|0,U=NB(o[p+8>>2]|0,an)|0,G=NB(o[p+12>>2]|0,an)|0,J=NB(o[p+16>>2]|0,an)|0;e:do if(U>>>0>>2>>>0&&(rr=y-(U<<2)|0,G>>>0>>0&J>>>0>>0)&&!((J|G)&3|0)){for(rr=G>>>2,It=J>>>2,bt=0;;){if(Ge=U>>>1,Xe=bt+Ge|0,le=Xe<<1,J=le+rr|0,G=NB(o[p+(J<<2)>>2]|0,an)|0,J=NB(o[p+(J+1<<2)>>2]|0,an)|0,!(J>>>0>>0&G>>>0<(y-J|0)>>>0)){G=0;break e}if(n[p+(J+G)>>0]|0){G=0;break e}if(G=jqe(w,p+J|0)|0,!G)break;if(G=(G|0)<0,(U|0)==1){G=0;break e}else bt=G?bt:Xe,U=G?Ge:U-Ge|0}G=le+It|0,J=NB(o[p+(G<<2)>>2]|0,an)|0,G=NB(o[p+(G+1<<2)>>2]|0,an)|0,G>>>0>>0&J>>>0<(y-G|0)>>>0?G=n[p+(G+J)>>0]|0?0:p+G|0:G=0}else G=0;while(!1);return G|0}function NB(p,y){p=p|0,y=y|0;var w=0;return w=x3(p|0)|0,(y|0?w:p)|0}function iie(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0,Ge=0;G=w+16|0,J=o[G>>2]|0,J?U=5:dPt(w)|0?G=0:(J=o[G>>2]|0,U=5);e:do if((U|0)==5){if(Ge=w+20|0,le=o[Ge>>2]|0,G=le,(J-le|0)>>>0>>0){G=KL[o[w+36>>2]&7](w,p,y)|0;break}t:do if((n[w+75>>0]|0)>-1){for(le=y;;){if(!le){U=0,J=p;break t}if(J=le+-1|0,(n[p+J>>0]|0)==10)break;le=J}if(G=KL[o[w+36>>2]&7](w,p,le)|0,G>>>0>>0)break e;U=le,J=p+le|0,y=y-le|0,G=o[Ge>>2]|0}else U=0,J=p;while(!1);Md(G|0,J|0,y|0)|0,o[Ge>>2]=(o[Ge>>2]|0)+y,G=U+y|0}while(!1);return G|0}function dPt(p){p=p|0;var y=0,w=0;return y=p+74|0,w=n[y>>0]|0,n[y>>0]=w+255|w,y=o[p>>2]|0,y&8?(o[p>>2]=y|32,p=-1):(o[p+8>>2]=0,o[p+4>>2]=0,w=o[p+44>>2]|0,o[p+28>>2]=w,o[p+20>>2]=w,o[p+16>>2]=w+(o[p+48>>2]|0),p=0),p|0}function zs(p,y){p=ke(p),y=ke(y);var w=0,G=0;w=CA(p)|0;do if((w&2147483647)>>>0<=2139095040){if(G=CA(y)|0,(G&2147483647)>>>0<=2139095040)if((G^w|0)<0){p=(w|0)<0?y:p;break}else{p=p>2]=p,o[E>>2]|0|0}function fU(p,y){p=ke(p),y=ke(y);var w=0,G=0;w=t$e(p)|0;do if((w&2147483647)>>>0<=2139095040){if(G=t$e(y)|0,(G&2147483647)>>>0<=2139095040)if((G^w|0)<0){p=(w|0)<0?p:y;break}else{p=p>2]=p,o[E>>2]|0|0}function Az(p,y){p=ke(p),y=ke(y);var w=0,G=0,J=0,U=0,le=0,Ge=0,Xe=0,bt=0;U=(I[E>>2]=p,o[E>>2]|0),Ge=(I[E>>2]=y,o[E>>2]|0),w=U>>>23&255,le=Ge>>>23&255,Xe=U&-2147483648,J=Ge<<1;e:do if(J|0&&!((w|0)==255|(($Ae(y)|0)&2147483647)>>>0>2139095040)){if(G=U<<1,G>>>0<=J>>>0)return y=ke(p*ke(0)),ke((G|0)==(J|0)?y:p);if(w)G=U&8388607|8388608;else{if(w=U<<9,(w|0)>-1){G=w,w=0;do w=w+-1|0,G=G<<1;while((G|0)>-1)}else w=0;G=U<<1-w}if(le)Ge=Ge&8388607|8388608;else{if(U=Ge<<9,(U|0)>-1){J=0;do J=J+-1|0,U=U<<1;while((U|0)>-1)}else J=0;le=J,Ge=Ge<<1-J}J=G-Ge|0,U=(J|0)>-1;t:do if((w|0)>(le|0)){for(;;){if(U)if(J)G=J;else break;if(G=G<<1,w=w+-1|0,J=G-Ge|0,U=(J|0)>-1,(w|0)<=(le|0))break t}y=ke(p*ke(0));break e}while(!1);if(U)if(J)G=J;else{y=ke(p*ke(0));break}if(G>>>0<8388608)do G=G<<1,w=w+-1|0;while(G>>>0<8388608);(w|0)>0?w=G+-8388608|w<<23:w=G>>>(1-w|0),y=(o[E>>2]=w|Xe,ke(I[E>>2]))}else bt=3;while(!1);return(bt|0)==3&&(y=ke(p*y),y=ke(y/y)),ke(y)}function $Ae(p){return p=ke(p),I[E>>2]=p,o[E>>2]|0|0}function pPt(p,y){return p=p|0,y=y|0,zAe(o[582]|0,p,y)|0}function me(p){p=p|0,Ko()}function dz(p){p=p|0}function r$e(p,y){return p=p|0,y=y|0,0}function ua(p){return p=p|0,(n$e(p+4|0)|0)==-1?(DF[o[(o[p>>2]|0)+8>>2]&127](p),p=1):p=0,p|0}function n$e(p){p=p|0;var y=0;return y=o[p>>2]|0,o[p>>2]=y+-1,y+-1|0}function IU(p){p=p|0,ua(p)|0&&c_(p)}function c_(p){p=p|0;var y=0;y=p+8|0,o[y>>2]|0&&(n$e(y)|0)!=-1||DF[o[(o[p>>2]|0)+16>>2]&127](p)}function Ku(p){p=p|0;var y=0;for(y=p|0?p:1;p=zne(y)|0,!(p|0);){if(p=sie()|0,!p){p=0;break}nEe[p&0]()}return p|0}function pz(p){return p=p|0,Ku(p)|0}function ti(p){p=p|0,qne(p)}function Gw(p){p=p|0,(n[p+11>>0]|0)<0&&ti(o[p>>2]|0)}function sie(){var p=0;return p=o[2923]|0,o[2923]=p+0,p|0}function N3(){}function XT(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,G=y-G-(w>>>0>p>>>0|0)>>>0,ct=G,p-w>>>0|0|0}function Hg(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,w=p+w>>>0,ct=y+G+(w>>>0

>>0|0)>>>0,w|0|0}function fz(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0,le=0;if(U=p+w|0,y=y&255,(w|0)>=67){for(;p&3;)n[p>>0]=y,p=p+1|0;for(G=U&-4|0,J=G-64|0,le=y|y<<8|y<<16|y<<24;(p|0)<=(J|0);)o[p>>2]=le,o[p+4>>2]=le,o[p+8>>2]=le,o[p+12>>2]=le,o[p+16>>2]=le,o[p+20>>2]=le,o[p+24>>2]=le,o[p+28>>2]=le,o[p+32>>2]=le,o[p+36>>2]=le,o[p+40>>2]=le,o[p+44>>2]=le,o[p+48>>2]=le,o[p+52>>2]=le,o[p+56>>2]=le,o[p+60>>2]=le,p=p+64|0;for(;(p|0)<(G|0);)o[p>>2]=le,p=p+4|0}for(;(p|0)<(U|0);)n[p>>0]=y,p=p+1|0;return U-w|0}function Kbe(p,y,w){return p=p|0,y=y|0,w=w|0,(w|0)<32?(ct=y<>>32-w,p<>>w,p>>>w|(y&(1<>>w-32|0)}function Md(p,y,w){p=p|0,y=y|0,w=w|0;var G=0,J=0,U=0;if((w|0)>=8192)return Hu(p|0,y|0,w|0)|0;if(U=p|0,J=p+w|0,(p&3)==(y&3)){for(;p&3;){if(!w)return U|0;n[p>>0]=n[y>>0]|0,p=p+1|0,y=y+1|0,w=w-1|0}for(w=J&-4|0,G=w-64|0;(p|0)<=(G|0);)o[p>>2]=o[y>>2],o[p+4>>2]=o[y+4>>2],o[p+8>>2]=o[y+8>>2],o[p+12>>2]=o[y+12>>2],o[p+16>>2]=o[y+16>>2],o[p+20>>2]=o[y+20>>2],o[p+24>>2]=o[y+24>>2],o[p+28>>2]=o[y+28>>2],o[p+32>>2]=o[y+32>>2],o[p+36>>2]=o[y+36>>2],o[p+40>>2]=o[y+40>>2],o[p+44>>2]=o[y+44>>2],o[p+48>>2]=o[y+48>>2],o[p+52>>2]=o[y+52>>2],o[p+56>>2]=o[y+56>>2],o[p+60>>2]=o[y+60>>2],p=p+64|0,y=y+64|0;for(;(p|0)<(w|0);)o[p>>2]=o[y>>2],p=p+4|0,y=y+4|0}else for(w=J-4|0;(p|0)<(w|0);)n[p>>0]=n[y>>0]|0,n[p+1>>0]=n[y+1>>0]|0,n[p+2>>0]=n[y+2>>0]|0,n[p+3>>0]=n[y+3>>0]|0,p=p+4|0,y=y+4|0;for(;(p|0)<(J|0);)n[p>>0]=n[y>>0]|0,p=p+1|0,y=y+1|0;return U|0}function DB(p){p=p|0;var y=0;return y=n[Q+(p&255)>>0]|0,(y|0)<8?y|0:(y=n[Q+(p>>8&255)>>0]|0,(y|0)<8?y+8|0:(y=n[Q+(p>>16&255)>>0]|0,(y|0)<8?y+16|0:(n[Q+(p>>>24)>>0]|0)+24|0))}function hh(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0;var U=0,le=0,Ge=0,Xe=0,bt=0,It=0,rr=0,an=0,Ks=0,zi=0;if(It=p,Xe=y,bt=Xe,le=w,an=G,Ge=an,!bt)return U=(J|0)!=0,Ge?U?(o[J>>2]=p|0,o[J+4>>2]=y&0,an=0,J=0,ct=an,J|0):(an=0,J=0,ct=an,J|0):(U&&(o[J>>2]=(It>>>0)%(le>>>0),o[J+4>>2]=0),an=0,J=(It>>>0)/(le>>>0)>>>0,ct=an,J|0);U=(Ge|0)==0;do if(le){if(!U){if(U=(_n(Ge|0)|0)-(_n(bt|0)|0)|0,U>>>0<=31){rr=U+1|0,Ge=31-U|0,y=U-31>>31,le=rr,p=It>>>(rr>>>0)&y|bt<>>(rr>>>0)&y,U=0,Ge=It<>2]=p|0,o[J+4>>2]=Xe|y&0,an=0,J=0,ct=an,J|0):(an=0,J=0,ct=an,J|0)}if(U=le-1|0,U&le|0){Ge=(_n(le|0)|0)+33-(_n(bt|0)|0)|0,zi=64-Ge|0,rr=32-Ge|0,Xe=rr>>31,Ks=Ge-32|0,y=Ks>>31,le=Ge,p=rr-1>>31&bt>>>(Ks>>>0)|(bt<>>(Ge>>>0))&y,y=y&bt>>>(Ge>>>0),U=It<>>(Ks>>>0))&Xe|It<>31;break}return J|0&&(o[J>>2]=U&It,o[J+4>>2]=0),(le|0)==1?(Ks=Xe|y&0,zi=p|0|0,ct=Ks,zi|0):(zi=DB(le|0)|0,Ks=bt>>>(zi>>>0)|0,zi=bt<<32-zi|It>>>(zi>>>0)|0,ct=Ks,zi|0)}else{if(U)return J|0&&(o[J>>2]=(bt>>>0)%(le>>>0),o[J+4>>2]=0),Ks=0,zi=(bt>>>0)/(le>>>0)>>>0,ct=Ks,zi|0;if(!It)return J|0&&(o[J>>2]=0,o[J+4>>2]=(bt>>>0)%(Ge>>>0)),Ks=0,zi=(bt>>>0)/(Ge>>>0)>>>0,ct=Ks,zi|0;if(U=Ge-1|0,!(U&Ge))return J|0&&(o[J>>2]=p|0,o[J+4>>2]=U&bt|y&0),Ks=0,zi=bt>>>((DB(Ge|0)|0)>>>0),ct=Ks,zi|0;if(U=(_n(Ge|0)|0)-(_n(bt|0)|0)|0,U>>>0<=30){y=U+1|0,Ge=31-U|0,le=y,p=bt<>>(y>>>0),y=bt>>>(y>>>0),U=0,Ge=It<>2]=p|0,o[J+4>>2]=Xe|y&0,Ks=0,zi=0,ct=Ks,zi|0):(Ks=0,zi=0,ct=Ks,zi|0)}while(!1);if(!le)bt=Ge,Xe=0,Ge=0;else{rr=w|0|0,It=an|G&0,bt=Hg(rr|0,It|0,-1,-1)|0,w=ct,Xe=Ge,Ge=0;do G=Xe,Xe=U>>>31|Xe<<1,U=Ge|U<<1,G=p<<1|G>>>31|0,an=p>>>31|y<<1|0,XT(bt|0,w|0,G|0,an|0)|0,zi=ct,Ks=zi>>31|((zi|0)<0?-1:0)<<1,Ge=Ks&1,p=XT(G|0,an|0,Ks&rr|0,(((zi|0)<0?-1:0)>>31|((zi|0)<0?-1:0)<<1)&It|0)|0,y=ct,le=le-1|0;while(le|0);bt=Xe,Xe=0}return le=0,J|0&&(o[J>>2]=p,o[J+4>>2]=y),Ks=(U|0)>>>31|(bt|le)<<1|(le<<1|U>>>31)&0|Xe,zi=(U<<1|0)&-2|Ge,ct=Ks,zi|0}function k3(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,hh(p,y,w,G,0)|0}function kB(p){p=p|0;var y=0,w=0;return w=p+15&-16|0,y=o[b>>2]|0,p=y+w|0,(w|0)>0&(p|0)<(y|0)|(p|0)<0?(po()|0,Vs(12),-1):(o[b>>2]=p,(p|0)>(Hi()|0)&&!(Nn()|0)?(o[b>>2]=y,Vs(12),-1):y|0)}function JT(p,y,w){p=p|0,y=y|0,w=w|0;var G=0;if((y|0)<(p|0)&(p|0)<(y+w|0)){for(G=p,y=y+w|0,p=p+w|0;(w|0)>0;)p=p-1|0,y=y-1|0,w=w-1|0,n[p>>0]=n[y>>0]|0;p=G}else Md(p,y,w)|0;return p|0}function hU(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0;var J=0,U=0;return U=B,B=B+16|0,J=U|0,hh(p,y,w,G,J)|0,B=U,ct=o[J+4>>2]|0,o[J>>2]|0|0}function x3(p){return p=p|0,(p&255)<<24|(p>>8&255)<<16|(p>>16&255)<<8|p>>>24|0}function Iz(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,c$e[p&1](y|0,w|0,G|0,J|0,U|0)}function ZLe(p,y,w){p=p|0,y=y|0,w=ke(w),l$e[p&1](y|0,ke(w))}function LLe(p,y,w){p=p|0,y=y|0,w=+w,u$e[p&31](y|0,+w)}function VLe(p,y,w,G){return p=p|0,y=y|0,w=ke(w),G=ke(G),ke(lie[p&0](y|0,ke(w),ke(G)))}function $Y(p,y){p=p|0,y=y|0,DF[p&127](y|0)}function hN(p,y,w){p=p|0,y=y|0,w=w|0,qD[p&31](y|0,w|0)}function i$e(p,y){return p=p|0,y=y|0,mC[p&31](y|0)|0}function jbe(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0,eQ[p&1](y|0,+w,+G,J|0)}function PLe(p,y,w,G){p=p|0,y=y|0,w=+w,G=+G,Zg[p&1](y|0,+w,+G)}function zbe(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,KL[p&7](y|0,w|0,G|0)|0}function qbe(p,y,w,G){return p=p|0,y=y|0,w=w|0,G=G|0,+tEe[p&1](y|0,w|0,G|0)}function $be(p,y){return p=p|0,y=y|0,+GP[p&15](y|0)}function WLe(p,y,w){return p=p|0,y=y|0,w=+w,tQ[p&1](y|0,+w)|0}function OLe(p,y,w){return p=p|0,y=y|0,w=w|0,uie[p&15](y|0,w|0)|0}function xx(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=+G,J=+J,U=U|0,rde[p&1](y|0,w|0,+G,+J,U|0)}function G3(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,le=le|0,nde[p&1](y|0,w|0,G|0,J|0,U|0,le|0)}function oie(p,y,w){return p=p|0,y=y|0,w=w|0,+rEe[p&7](y|0,w|0)}function s$e(p){return p=p|0,mz[p&7]()|0}function MLe(p,y,w,G,J,U){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,ide[p&1](y|0,w|0,G|0,J|0,U|0)|0}function HLe(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=+J,gie[p&1](y|0,w|0,G|0,+J)}function YLe(p,y,w,G,J,U,le){p=p|0,y=y|0,w=w|0,G=ke(G),J=J|0,U=ke(U),le=le|0,Cz[p&1](y|0,w|0,ke(G),J|0,ke(U),le|0)}function QLe(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,UT[p&15](y|0,w|0,G|0)}function XLe(p){p=p|0,nEe[p&0]()}function o$e(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G,Aie[p&15](y|0,w|0,+G)}function fPt(p,y,w){return p=p|0,y=+y,w=+w,KLe[p&1](+y,+w)|0}function IPt(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,Ir[p&15](y|0,w|0,G|0,J|0)}function hPt(p,y,w,G,J){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,jt(0)}function mPt(p,y){p=p|0,y=ke(y),jt(1)}function Gx(p,y){p=p|0,y=+y,jt(2)}function CPt(p,y,w){return p=p|0,y=ke(y),w=ke(w),jt(3),As}function td(p){p=p|0,jt(4)}function ede(p,y){p=p|0,y=y|0,jt(5)}function NF(p){return p=p|0,jt(6),0}function _Pt(p,y,w,G){p=p|0,y=+y,w=+w,G=G|0,jt(7)}function yPt(p,y,w){p=p|0,y=+y,w=+w,jt(8)}function bPt(p,y,w){return p=p|0,y=y|0,w=w|0,jt(9),0}function EPt(p,y,w){return p=p|0,y=y|0,w=w|0,jt(10),0}function hz(p){return p=p|0,jt(11),0}function SPt(p,y){return p=p|0,y=+y,jt(12),0}function tde(p,y){return p=p|0,y=y|0,jt(13),0}function vPt(p,y,w,G,J){p=p|0,y=y|0,w=+w,G=+G,J=J|0,jt(14)}function BPt(p,y,w,G,J,U){p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,U=U|0,jt(15)}function JLe(p,y){return p=p|0,y=y|0,jt(16),0}function wPt(){return jt(17),0}function ULe(p,y,w,G,J){return p=p|0,y=y|0,w=w|0,G=G|0,J=J|0,jt(18),0}function TPt(p,y,w,G){p=p|0,y=y|0,w=w|0,G=+G,jt(19)}function a$e(p,y,w,G,J,U){p=p|0,y=y|0,w=ke(w),G=G|0,J=ke(J),U=U|0,jt(20)}function eEe(p,y,w){p=p|0,y=y|0,w=w|0,jt(21)}function RPt(){jt(22)}function aie(p,y,w){p=p|0,y=y|0,w=+w,jt(23)}function NPt(p,y){return p=+p,y=+y,jt(24),0}function cie(p,y,w,G){p=p|0,y=y|0,w=w|0,G=G|0,jt(25)}var c$e=[hPt,yAe],l$e=[mPt,$1],u$e=[Gx,xC,$_,r1,gB,hw,GT,b0,e2,yd,ag,Eb,n1,U2,e0,n_,Xp,cE,lE,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx,Gx],lie=[CPt],DF=[td,dz,IA,EI,zd,hge,Pre,pP,BVt,GZe,rU,xne,cbe,dv,xP,IN,Une,ZA,ry,bb,ia,bI,xD,IB,kr,Ve,iv,Aa,rye,tN,fC,yw,iye,mE,l3,Zre,a7,FL,Hre,$Fe,xY,vl,dye,Vge,ZL,Qge,b7,JR,une,vye,w7,Nye,_ne,Vye,mVt,yVt,sAe,oAe,Xye,Kye,Ga,qye,P7,Ct,i0,cLe,Sbe,rPt,rz,JL,UL,SLe,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td,td],qD=[ede,lB,ND,kD,UR,lc,fh,rf,yI,Qp,uB,Ih,Np,t2,Ro,AE,AB,Xc,iu,ny,i_,ft,m7,Hge,WY,sS,RVt,mbe,ede,ede,ede,ede],mC=[NF,dU,t1,aA,uE,eh,Wf,Mo,gp,lF,gE,FT,hp,Am,Bb,cVt,nAe,Rne,NP,Fb,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF,NF],eQ=[_Pt,bL],Zg=[yPt,xZe],KL=[bPt,$ne,uPt,Mbe,LD,MD,fZe,pLe],tEe=[EPt,bB],GP=[hz,Dm,Dp,dE,gF,x,L,te,Re,Le,hz,hz,hz,hz,hz,hz],tQ=[SPt,hVt],uie=[tde,r$e,K2,ja,hA,s3,CY,Ige,vge,Cye,$E,GAe,tde,tde,tde,tde],rde=[vPt,t3],nde=[BPt,lg],rEe=[JLe,yL,dr,Ur,mi,Age,JLe,JLe],mz=[wPt,Vi,N_,RD,eU,DZe,jye,oz],ide=[ULe,Yp],gie=[TPt,A3],Cz=[a$e,ZT],UT=[eEe,fu,uF,KR,Ou,n3,age,Sd,sVt,cF,PVt,jVt,yLe,eEe,eEe,eEe],nEe=[RPt],Aie=[aie,DD,q_,aE,qS,Ip,Xh,E0,PJ,PL,pVt,aie,aie,aie,aie,aie],KLe=[NPt,SVt],Ir=[cie,lge,p3,HT,Zye,y3,lN,o_,rbe,Wne,Fbe,cie,cie,cie,cie,cie];return{_llvm_bswap_i32:x3,dynCall_idd:fPt,dynCall_i:s$e,_i64Subtract:XT,___udivdi3:k3,dynCall_vif:ZLe,setThrew:sd,dynCall_viii:QLe,_bitshift64Lshr:D3,_bitshift64Shl:Kbe,dynCall_vi:$Y,dynCall_viiddi:xx,dynCall_diii:qbe,dynCall_iii:OLe,_memset:fz,_sbrk:kB,_memcpy:Md,__GLOBAL__sub_I_Yoga_cpp:cB,dynCall_vii:hN,___uremdi3:hU,dynCall_vid:LLe,stackAlloc:Tf,_nbind_init:A2,getTempRet0:il,dynCall_di:$be,dynCall_iid:WLe,setTempRet0:Om,_i64Add:Hg,dynCall_fiff:VLe,dynCall_iiii:zbe,_emscripten_get_global_libc:jAe,dynCall_viid:o$e,dynCall_viiid:HLe,dynCall_viififi:YLe,dynCall_ii:i$e,__GLOBAL__sub_I_Binding_cc:YVt,dynCall_viiii:IPt,dynCall_iiiiii:MLe,stackSave:cm,dynCall_viiiii:Iz,__GLOBAL__sub_I_nbind_cc:Ta,dynCall_vidd:PLe,_free:qne,runPostSets:N3,dynCall_viiiiii:G3,establishStackSpace:rc,_memmove:JT,stackRestore:Fl,_malloc:zne,__GLOBAL__sub_I_common_cc:Jm,dynCall_viddi:jbe,dynCall_dii:oie,dynCall_v:XLe}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function e(t){t=t||[],ensureInitRuntime();var r=t.length+1;function n(){for(var f=0;f<3;f++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];n();for(var o=0;o0||(preRun(),runDependencies>0)||Module.calledRun)return;function t(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),t()},1)):t()}Module.run=Module.run=run;function exit(e,t){t&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(e){Module.onAbort&&Module.onAbort(e),e!==void 0?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var t=` -If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(n){r=n(r,e)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var WW=H((dtu,xMn)=>{"use strict";var YUo=DMn(),QUo=kMn(),kIr=!1,xIr=null;QUo({},function(e,t){if(!kIr){if(kIr=!0,e)throw e;xIr=t}});if(!kIr)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");xMn.exports=YUo(xIr.bind,xIr.lib)});var FIr=H((ptu,GIr)=>{"use strict";var GMn=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);GIr.exports=GMn;GIr.exports.default=GMn});var ZMn=H((ftu,FMn)=>{"use strict";FMn.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var dBe=H((Itu,ZIr)=>{"use strict";var XUo=q5(),JUo=FIr(),UUo=ZMn(),LMn=e=>{if(typeof e!="string"||e.length===0||(e=XUo(e),e.length===0))return 0;e=e.replace(UUo()," ");let t=0;for(let r=0;r=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=JUo(n)?2:1)}return t};ZIr.exports=LMn;ZIr.exports.default=LMn});var FMe=H((htu,LIr)=>{"use strict";var KUo=dBe(),VMn=e=>{let t=0;for(let r of e.split(` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+e+") at "+stackTrace()+t;throw abortDecorators&&abortDecorators.forEach(function(n){r=n(r,e)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var WW=H((ptu,xMn)=>{"use strict";var YUo=DMn(),QUo=kMn(),kIr=!1,xIr=null;QUo({},function(e,t){if(!kIr){if(kIr=!0,e)throw e;xIr=t}});if(!kIr)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");xMn.exports=YUo(xIr.bind,xIr.lib)});var FIr=H((ftu,GIr)=>{"use strict";var GMn=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);GIr.exports=GMn;GIr.exports.default=GMn});var ZMn=H((Itu,FMn)=>{"use strict";FMn.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var dBe=H((htu,ZIr)=>{"use strict";var XUo=q5(),JUo=FIr(),UUo=ZMn(),LMn=e=>{if(typeof e!="string"||e.length===0||(e=XUo(e),e.length===0))return 0;e=e.replace(UUo()," ");let t=0;for(let r=0;r=127&&n<=159||n>=768&&n<=879||(n>65535&&r++,t+=JUo(n)?2:1)}return t};ZIr.exports=LMn;ZIr.exports.default=LMn});var FMe=H((mtu,LIr)=>{"use strict";var KUo=dBe(),VMn=e=>{let t=0;for(let r of e.split(` `))t=Math.max(t,KUo(r));return t};LIr.exports=VMn;LIr.exports.default=VMn});var PMn=H(ZMe=>{"use strict";var jUo=ZMe&&ZMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZMe,"__esModule",{value:!0});var zUo=jUo(FMe()),VIr={};ZMe.default=e=>{if(e.length===0)return{width:0,height:0};if(VIr[e])return VIr[e];let t=zUo.default(e),r=e.split(` -`).length;return VIr[e]={width:t,height:r},{width:t,height:r}}});var WMn=H(LMe=>{"use strict";var qUo=LMe&&LMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LMe,"__esModule",{value:!0});var C_=qUo(WW()),$Uo=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?C_.default.POSITION_TYPE_ABSOLUTE:C_.default.POSITION_TYPE_RELATIVE)},eKo=(e,t)=>{"marginLeft"in t&&e.setMargin(C_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(C_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(C_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(C_.default.EDGE_BOTTOM,t.marginBottom||0)},tKo=(e,t)=>{"paddingLeft"in t&&e.setPadding(C_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(C_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(C_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(C_.default.EDGE_BOTTOM,t.paddingBottom||0)},rKo=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(C_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(C_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(C_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(C_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(C_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(C_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(C_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(C_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(C_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_AROUND))},nKo=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},iKo=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?C_.default.DISPLAY_FLEX:C_.default.DISPLAY_NONE)},sKo=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(C_.default.EDGE_TOP,r),e.setBorder(C_.default.EDGE_BOTTOM,r),e.setBorder(C_.default.EDGE_LEFT,r),e.setBorder(C_.default.EDGE_RIGHT,r)}};LMe.default=(e,t={})=>{$Uo(e,t),eKo(e,t),tKo(e,t),rKo(e,t),nKo(e,t),iKo(e,t),sKo(e,t)}});var OIr=H((_tu,MMn)=>{"use strict";var VMe=dBe(),oKo=q5(),aKo=ult(),WIr=new Set(["\x1B","\x9B"]),cKo=39,OMn=e=>`${WIr.values().next().value}[${e}m`,lKo=e=>e.split(" ").map(t=>VMe(t)),PIr=(e,t,r)=>{let n=[...t],a=!1,o=VMe(oKo(e[e.length-1]));for(let[l,A]of n.entries()){let f=VMe(A);if(o+f<=r?e[e.length-1]+=A:(e.push(A),o=0),WIr.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(o+=f,o===r&&l0&&e.length>1&&(e[e.length-2]+=e.pop())},uKo=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(VMe(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},gKo=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",a="",o,l=lKo(e),A=[""];for(let[f,I]of e.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let C=VMe(A[A.length-1]);if(f!==0&&(C>=t&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),C=0),(C>0||r.trim===!1)&&(A[A.length-1]+=" ",C++)),r.hard&&l[f]>t){let b=t-C,E=1+Math.floor((l[f]-b-1)/t);Math.floor((l[f]-1)/t)t&&C>0&&l[f]>0){if(r.wordWrap===!1&&Ct&&r.wordWrap===!1){PIr(A,I,t);continue}A[A.length-1]+=I}r.trim!==!1&&(A=A.map(uKo)),n=A.join(` +`).length;return VIr[e]={width:t,height:r},{width:t,height:r}}});var WMn=H(LMe=>{"use strict";var qUo=LMe&&LMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LMe,"__esModule",{value:!0});var C_=qUo(WW()),$Uo=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?C_.default.POSITION_TYPE_ABSOLUTE:C_.default.POSITION_TYPE_RELATIVE)},eKo=(e,t)=>{"marginLeft"in t&&e.setMargin(C_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(C_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(C_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(C_.default.EDGE_BOTTOM,t.marginBottom||0)},tKo=(e,t)=>{"paddingLeft"in t&&e.setPadding(C_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(C_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(C_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(C_.default.EDGE_BOTTOM,t.paddingBottom||0)},rKo=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(C_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(C_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(C_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(C_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(C_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(C_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(C_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(C_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(C_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(C_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(C_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(C_.default.JUSTIFY_SPACE_AROUND))},nKo=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},iKo=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?C_.default.DISPLAY_FLEX:C_.default.DISPLAY_NONE)},sKo=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(C_.default.EDGE_TOP,r),e.setBorder(C_.default.EDGE_BOTTOM,r),e.setBorder(C_.default.EDGE_LEFT,r),e.setBorder(C_.default.EDGE_RIGHT,r)}};LMe.default=(e,t={})=>{$Uo(e,t),eKo(e,t),tKo(e,t),rKo(e,t),nKo(e,t),iKo(e,t),sKo(e,t)}});var OIr=H((ytu,MMn)=>{"use strict";var VMe=dBe(),oKo=q5(),aKo=ult(),WIr=new Set(["\x1B","\x9B"]),cKo=39,OMn=e=>`${WIr.values().next().value}[${e}m`,lKo=e=>e.split(" ").map(t=>VMe(t)),PIr=(e,t,r)=>{let n=[...t],a=!1,o=VMe(oKo(e[e.length-1]));for(let[l,A]of n.entries()){let f=VMe(A);if(o+f<=r?e[e.length-1]+=A:(e.push(A),o=0),WIr.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(o+=f,o===r&&l0&&e.length>1&&(e[e.length-2]+=e.pop())},uKo=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(VMe(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},gKo=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let n="",a="",o,l=lKo(e),A=[""];for(let[f,I]of e.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let C=VMe(A[A.length-1]);if(f!==0&&(C>=t&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),C=0),(C>0||r.trim===!1)&&(A[A.length-1]+=" ",C++)),r.hard&&l[f]>t){let b=t-C,E=1+Math.floor((l[f]-b-1)/t);Math.floor((l[f]-1)/t)t&&C>0&&l[f]>0){if(r.wordWrap===!1&&Ct&&r.wordWrap===!1){PIr(A,I,t);continue}A[A.length-1]+=I}r.trim!==!1&&(A=A.map(uKo)),n=A.join(` `);for(let[f,I]of[...n].entries()){if(a+=I,WIr.has(I)){let b=parseFloat(/\d[^m]*/.exec(n.slice(f,f+4)));o=b===cKo?null:b}let C=aKo.codes.get(Number(o));o&&C&&(n[f+1]===` `?a+=OMn(C):I===` `&&(a+=OMn(o)))}return a};MMn.exports=(e,t,r)=>String(e).normalize().replace(/\r\n/g,` `).split(` `).map(n=>gKo(n,t,r)).join(` -`)});var QMn=H((ytu,YMn)=>{"use strict";var HMn="[\uD800-\uDBFF][\uDC00-\uDFFF]",AKo=e=>e&&e.exact?new RegExp(`^${HMn}$`):new RegExp(HMn,"g");YMn.exports=AKo});var Rpt=H((btu,KMn)=>{"use strict";var dKo=FIr(),pKo=QMn(),XMn=ult(),UMn=["\x1B","\x9B"],Tpt=e=>`${UMn[0]}[${e}m`,JMn=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let l=XMn.codes.get(parseInt(a,10));if(l){let A=e.indexOf(l.toString());A>=0?e.splice(A,1):n.push(Tpt(t?l:o))}else if(t){n.push(Tpt(0));break}else n.push(Tpt(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=Tpt(XMn.codes.get(parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")};KMn.exports=(e,t,r)=>{let n=[...e.normalize()],a=[];r=typeof r=="number"?r:n.length;let o=!1,l,A=0,f="";for(let[I,C]of n.entries()){let b=!1;if(UMn.includes(C)){let E=/\d[^m]*/.exec(e.slice(I,I+18));l=E&&E.length>0?E[0]:void 0,At&&A<=r)f+=C;else if(A===t&&!o&&l!==void 0)f=JMn(a);else if(A>=r){f+=JMn(a,!0,l);break}}return f}});var MIr=H((Etu,jMn)=>{"use strict";var Ooe=Rpt(),fKo=dBe();function Npt(e,t,r){if(e.charAt(t)===" ")return t;for(let n=1;n<=3;n++)if(r){if(e.charAt(t+n)===" ")return t+n}else if(e.charAt(t-n)===" ")return t-n;return t}jMn.exports=(e,t,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:n,space:a,preferTruncationOnSpace:o}=r,l="\u2026",A=1;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let f=fKo(e);if(f<=t)return e;if(n==="start"){if(o){let I=Npt(e,f-t+1,!0);return l+Ooe(e,I,f).trim()}return a===!0&&(l+=" ",A=2),l+Ooe(e,f-t+A,f)}if(n==="middle"){a===!0&&(l=" "+l+" ",A=3);let I=Math.floor(t/2);if(o){let C=Npt(e,I),b=Npt(e,f-(t-I)+1,!0);return Ooe(e,0,C)+l+Ooe(e,b,f).trim()}return Ooe(e,0,I)+l+Ooe(e,f-(t-I)+A,f)}if(n==="end"){if(o){let I=Npt(e,t-1);return Ooe(e,0,I)+l}return a===!0&&(l=" "+l,A=2),Ooe(e,0,t-A)+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}});var YIr=H(PMe=>{"use strict";var zMn=PMe&&PMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PMe,"__esModule",{value:!0});var IKo=zMn(OIr()),hKo=zMn(MIr()),HIr={};PMe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(HIr[n])return HIr[n];let a=e;if(r==="wrap"&&(a=IKo.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=hKo.default(e,t,{position:o})}return HIr[n]=a,a}});var XIr=H(QIr=>{"use strict";Object.defineProperty(QIr,"__esModule",{value:!0});var qMn=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=qMn(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};QIr.default=qMn});var JIr=H(Z1=>{"use strict";var WMe=Z1&&Z1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Z1,"__esModule",{value:!0});Z1.setTextNodeValue=Z1.createTextNode=Z1.setStyle=Z1.setAttribute=Z1.removeChildNode=Z1.insertBeforeNode=Z1.appendChildNode=Z1.createNode=Z1.TEXT_NAME=void 0;var mKo=WMe(WW()),$Mn=WMe(PMn()),CKo=WMe(WMn()),_Ko=WMe(YIr()),yKo=WMe(XIr());Z1.TEXT_NAME="#text";Z1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:mKo.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(bKo.bind(null,r))),r};Z1.appendChildNode=(e,t)=>{var r;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Z1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&CKo.default(e.yogaNode,t)};Z1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Z1.setTextNodeValue(t,e),t};var bKo=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:yKo.default(e),o=$Mn.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=_Ko.default(a,t,l);return $Mn.default(A)},eHn=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:eHn(e.parentNode)},Dpt=e=>{let t=eHn(e);t?.markDirty()};Z1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Dpt(e)}});var sHn=H(OMe=>{"use strict";var iHn=OMe&&OMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OMe,"__esModule",{value:!0});var tHn=xMe(),EKo=iHn(vMn()),rHn=iHn(WW()),mG=JIr(),nHn=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};OMe.default=EKo.default({schedulePassiveEffects:tHn.unstable_scheduleCallback,cancelPassiveEffects:tHn.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=mG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?mG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:mG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return mG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{mG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{mG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_FLEX)},appendInitialChild:mG.appendChildNode,appendChild:mG.appendChildNode,insertBefore:mG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:mG.appendChildNode,insertInContainerBefore:mG.insertBeforeNode,removeChildFromContainer:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?mG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:mG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{mG.setTextNodeValue(e,r)},removeChild:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)}})});var UIr=H((Ttu,oHn)=>{"use strict";oHn.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var aHn=H(MMe=>{"use strict";var SKo=MMe&&MMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MMe,"__esModule",{value:!0});var kpt=SKo(WW());MMe.default=e=>e.getComputedWidth()-e.getComputedPadding(kpt.default.EDGE_LEFT)-e.getComputedPadding(kpt.default.EDGE_RIGHT)-e.getComputedBorder(kpt.default.EDGE_LEFT)-e.getComputedBorder(kpt.default.EDGE_RIGHT)});var cHn=H((Ntu,vKo)=>{vKo.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var jIr=H((Dtu,KIr)=>{"use strict";var lHn=cHn();KIr.exports=lHn;KIr.exports.default=lHn});var zIr=H(YMe=>{"use strict";var BKo=YMe&&YMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YMe,"__esModule",{value:!0});var HMe=BKo(VK()),wKo=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,TKo=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,xpt=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);YMe.default=(e,t,r)=>{if(!t)return e;if(t in HMe.default){let a=xpt(t,r);return HMe.default[a](e)}if(t.startsWith("#")){let a=xpt("hex",r);return HMe.default[a](t)(e)}if(t.startsWith("ansi")){let a=TKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]);return HMe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=wKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return HMe.default[o](l,A,f)(e)}return e}});var gHn=H(QMe=>{"use strict";var uHn=QMe&&QMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QMe,"__esModule",{value:!0});var RKo=uHn(jIr()),qIr=uHn(zIr());QMe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=RKo.default[r.style.borderStyle],f=qIr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qIr.default(A.vertical,l,"foreground")+` +`)});var QMn=H((btu,YMn)=>{"use strict";var HMn="[\uD800-\uDBFF][\uDC00-\uDFFF]",AKo=e=>e&&e.exact?new RegExp(`^${HMn}$`):new RegExp(HMn,"g");YMn.exports=AKo});var Rpt=H((Etu,KMn)=>{"use strict";var dKo=FIr(),pKo=QMn(),XMn=ult(),UMn=["\x1B","\x9B"],Tpt=e=>`${UMn[0]}[${e}m`,JMn=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let l=XMn.codes.get(parseInt(a,10));if(l){let A=e.indexOf(l.toString());A>=0?e.splice(A,1):n.push(Tpt(t?l:o))}else if(t){n.push(Tpt(0));break}else n.push(Tpt(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=Tpt(XMn.codes.get(parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")};KMn.exports=(e,t,r)=>{let n=[...e.normalize()],a=[];r=typeof r=="number"?r:n.length;let o=!1,l,A=0,f="";for(let[I,C]of n.entries()){let b=!1;if(UMn.includes(C)){let E=/\d[^m]*/.exec(e.slice(I,I+18));l=E&&E.length>0?E[0]:void 0,At&&A<=r)f+=C;else if(A===t&&!o&&l!==void 0)f=JMn(a);else if(A>=r){f+=JMn(a,!0,l);break}}return f}});var MIr=H((Stu,jMn)=>{"use strict";var Ooe=Rpt(),fKo=dBe();function Npt(e,t,r){if(e.charAt(t)===" ")return t;for(let n=1;n<=3;n++)if(r){if(e.charAt(t+n)===" ")return t+n}else if(e.charAt(t-n)===" ")return t-n;return t}jMn.exports=(e,t,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:n,space:a,preferTruncationOnSpace:o}=r,l="\u2026",A=1;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let f=fKo(e);if(f<=t)return e;if(n==="start"){if(o){let I=Npt(e,f-t+1,!0);return l+Ooe(e,I,f).trim()}return a===!0&&(l+=" ",A=2),l+Ooe(e,f-t+A,f)}if(n==="middle"){a===!0&&(l=" "+l+" ",A=3);let I=Math.floor(t/2);if(o){let C=Npt(e,I),b=Npt(e,f-(t-I)+1,!0);return Ooe(e,0,C)+l+Ooe(e,b,f).trim()}return Ooe(e,0,I)+l+Ooe(e,f-(t-I)+A,f)}if(n==="end"){if(o){let I=Npt(e,t-1);return Ooe(e,0,I)+l}return a===!0&&(l=" "+l,A=2),Ooe(e,0,t-A)+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}});var YIr=H(PMe=>{"use strict";var zMn=PMe&&PMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PMe,"__esModule",{value:!0});var IKo=zMn(OIr()),hKo=zMn(MIr()),HIr={};PMe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(HIr[n])return HIr[n];let a=e;if(r==="wrap"&&(a=IKo.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=hKo.default(e,t,{position:o})}return HIr[n]=a,a}});var XIr=H(QIr=>{"use strict";Object.defineProperty(QIr,"__esModule",{value:!0});var qMn=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=qMn(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};QIr.default=qMn});var JIr=H(Z1=>{"use strict";var WMe=Z1&&Z1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Z1,"__esModule",{value:!0});Z1.setTextNodeValue=Z1.createTextNode=Z1.setStyle=Z1.setAttribute=Z1.removeChildNode=Z1.insertBeforeNode=Z1.appendChildNode=Z1.createNode=Z1.TEXT_NAME=void 0;var mKo=WMe(WW()),$Mn=WMe(PMn()),CKo=WMe(WMn()),_Ko=WMe(YIr()),yKo=WMe(XIr());Z1.TEXT_NAME="#text";Z1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:mKo.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(bKo.bind(null,r))),r};Z1.appendChildNode=(e,t)=>{var r;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Z1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&Dpt(e)};Z1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Z1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&CKo.default(e.yogaNode,t)};Z1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Z1.setTextNodeValue(t,e),t};var bKo=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:yKo.default(e),o=$Mn.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=_Ko.default(a,t,l);return $Mn.default(A)},eHn=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:eHn(e.parentNode)},Dpt=e=>{let t=eHn(e);t?.markDirty()};Z1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,Dpt(e)}});var sHn=H(OMe=>{"use strict";var iHn=OMe&&OMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OMe,"__esModule",{value:!0});var tHn=xMe(),EKo=iHn(vMn()),rHn=iHn(WW()),mG=JIr(),nHn=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};OMe.default=EKo.default({schedulePassiveEffects:tHn.unstable_scheduleCallback,cancelPassiveEffects:tHn.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=mG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?mG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:mG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return mG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{mG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{mG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(rHn.default.DISPLAY_FLEX)},appendInitialChild:mG.appendChildNode,appendChild:mG.appendChildNode,insertBefore:mG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:mG.appendChildNode,insertInContainerBefore:mG.insertBeforeNode,removeChildFromContainer:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?mG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:mG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{mG.setTextNodeValue(e,r)},removeChild:(e,t)=>{mG.removeChildNode(e,t),nHn(t.yogaNode)}})});var UIr=H((Rtu,oHn)=>{"use strict";oHn.exports=(e,t=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof e!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof e}\``);if(typeof t!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof t}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(t===0)return e;let n=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return e.replace(n,r.indent.repeat(t))}});var aHn=H(MMe=>{"use strict";var SKo=MMe&&MMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MMe,"__esModule",{value:!0});var kpt=SKo(WW());MMe.default=e=>e.getComputedWidth()-e.getComputedPadding(kpt.default.EDGE_LEFT)-e.getComputedPadding(kpt.default.EDGE_RIGHT)-e.getComputedBorder(kpt.default.EDGE_LEFT)-e.getComputedBorder(kpt.default.EDGE_RIGHT)});var cHn=H((Dtu,vKo)=>{vKo.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var jIr=H((ktu,KIr)=>{"use strict";var lHn=cHn();KIr.exports=lHn;KIr.exports.default=lHn});var zIr=H(YMe=>{"use strict";var BKo=YMe&&YMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YMe,"__esModule",{value:!0});var HMe=BKo(VK()),wKo=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,TKo=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,xpt=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);YMe.default=(e,t,r)=>{if(!t)return e;if(t in HMe.default){let a=xpt(t,r);return HMe.default[a](e)}if(t.startsWith("#")){let a=xpt("hex",r);return HMe.default[a](t)(e)}if(t.startsWith("ansi")){let a=TKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]);return HMe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=wKo.exec(t);if(!a)return e;let o=xpt(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return HMe.default[o](l,A,f)(e)}return e}});var gHn=H(QMe=>{"use strict";var uHn=QMe&&QMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QMe,"__esModule",{value:!0});var RKo=uHn(jIr()),qIr=uHn(zIr());QMe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=RKo.default[r.style.borderStyle],f=qIr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qIr.default(A.vertical,l,"foreground")+` `).repeat(o-2),C=qIr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var dHn=H(XMe=>{"use strict";var TIe=XMe&&XMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XMe,"__esModule",{value:!0});var NKo=TIe(WW()),DKo=TIe(FMe()),kKo=TIe(UIr()),xKo=TIe(YIr()),GKo=TIe(aHn()),FKo=TIe(XIr()),ZKo=TIe(gHn()),LKo=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` `.repeat(o)+kKo.default(t,a)}return t},AHn=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===NKo.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=FKo.default(e);if(E.length>0){let N=DKo.default(E),B=GKo.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=xKo.default(E,B,F)}E=LKo(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&ZKo.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)AHn(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};XMe.default=AHn});var IHn=H(JMe=>{"use strict";var fHn=JMe&&JMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JMe,"__esModule",{value:!0});var pHn=fHn(Rpt()),VKo=fHn(dBe()),$Ir=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` `),height:t.length}}};JMe.default=$Ir});var CHn=H(UMe=>{"use strict";var ehr=UMe&&UMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UMe,"__esModule",{value:!0});var PKo=ehr(WW()),hHn=ehr(dHn()),mHn=ehr(IHn());UMe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,PKo.default.DIRECTION_LTR);let n=new mHn.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});hHn.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new mHn.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),hHn.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rhr=H((Ltu,bHn)=>{"use strict";var _Hn=wt("stream"),yHn=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],thr={},WKo=e=>{let t=new _Hn.PassThrough,r=new _Hn.PassThrough;t.write=a=>e("stdout",a),r.write=a=>e("stderr",a);let n=new console.Console(t,r);for(let a of yHn)thr[a]=console[a],console[a]=n[a];return()=>{for(let a of yHn)console[a]=thr[a];thr={}}};bHn.exports=WKo});var ihr=H(nhr=>{"use strict";Object.defineProperty(nhr,"__esModule",{value:!0});nhr.default=new WeakMap});var ohr=H(shr=>{"use strict";Object.defineProperty(shr,"__esModule",{value:!0});var OKo=Ec(),EHn=OKo.createContext({exit:()=>{}});EHn.displayName="InternalAppContext";shr.default=EHn});var chr=H(ahr=>{"use strict";Object.defineProperty(ahr,"__esModule",{value:!0});var MKo=Ec(),SHn=MKo.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});SHn.displayName="InternalStdinContext";ahr.default=SHn});var uhr=H(lhr=>{"use strict";Object.defineProperty(lhr,"__esModule",{value:!0});var HKo=Ec(),vHn=HKo.createContext({stdout:void 0,write:()=>{}});vHn.displayName="InternalStdoutContext";lhr.default=vHn});var Ahr=H(ghr=>{"use strict";Object.defineProperty(ghr,"__esModule",{value:!0});var YKo=Ec(),BHn=YKo.createContext({stderr:void 0,write:()=>{}});BHn.displayName="InternalStderrContext";ghr.default=BHn});var Gpt=H(dhr=>{"use strict";Object.defineProperty(dhr,"__esModule",{value:!0});var QKo=Ec(),wHn=QKo.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});wHn.displayName="InternalFocusContext";dhr.default=wHn});var RHn=H((Ytu,THn)=>{"use strict";var XKo=/[|\\{}()[\]^$+*?.-]/g;THn.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(XKo,"\\$&")}});var Fpt=H((Qtu,kHn)=>{"use strict";var JKo=RHn(),UKo=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",DHn=[].concat(wt("module").builtinModules,"bootstrap_node","node").map(e=>new RegExp(`(?:\\((?:node:)?${e}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${e}(?:\\.js)?:\\d+:\\d+$)`));DHn.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var phr=class e{constructor(t){t={ignoredPackages:[],...t},"internals"in t||(t.internals=e.nodeInternals()),"cwd"in t||(t.cwd=UKo),this._cwd=t.cwd.replace(/\\/g,"/"),this._internals=[].concat(t.internals,KKo(t.ignoredPackages)),this._wrapCallSite=t.wrapCallSite||!1}static nodeInternals(){return[...DHn]}clean(t,r=0){r=" ".repeat(r),Array.isArray(t)||(t=t.split(` +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rhr=H((Vtu,bHn)=>{"use strict";var _Hn=wt("stream"),yHn=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],thr={},WKo=e=>{let t=new _Hn.PassThrough,r=new _Hn.PassThrough;t.write=a=>e("stdout",a),r.write=a=>e("stderr",a);let n=new console.Console(t,r);for(let a of yHn)thr[a]=console[a],console[a]=n[a];return()=>{for(let a of yHn)console[a]=thr[a];thr={}}};bHn.exports=WKo});var ihr=H(nhr=>{"use strict";Object.defineProperty(nhr,"__esModule",{value:!0});nhr.default=new WeakMap});var ohr=H(shr=>{"use strict";Object.defineProperty(shr,"__esModule",{value:!0});var OKo=Ec(),EHn=OKo.createContext({exit:()=>{}});EHn.displayName="InternalAppContext";shr.default=EHn});var chr=H(ahr=>{"use strict";Object.defineProperty(ahr,"__esModule",{value:!0});var MKo=Ec(),SHn=MKo.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});SHn.displayName="InternalStdinContext";ahr.default=SHn});var uhr=H(lhr=>{"use strict";Object.defineProperty(lhr,"__esModule",{value:!0});var HKo=Ec(),vHn=HKo.createContext({stdout:void 0,write:()=>{}});vHn.displayName="InternalStdoutContext";lhr.default=vHn});var Ahr=H(ghr=>{"use strict";Object.defineProperty(ghr,"__esModule",{value:!0});var YKo=Ec(),BHn=YKo.createContext({stderr:void 0,write:()=>{}});BHn.displayName="InternalStderrContext";ghr.default=BHn});var Gpt=H(dhr=>{"use strict";Object.defineProperty(dhr,"__esModule",{value:!0});var QKo=Ec(),wHn=QKo.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});wHn.displayName="InternalFocusContext";dhr.default=wHn});var RHn=H((Qtu,THn)=>{"use strict";var XKo=/[|\\{}()[\]^$+*?.-]/g;THn.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(XKo,"\\$&")}});var Fpt=H((Xtu,kHn)=>{"use strict";var JKo=RHn(),UKo=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",DHn=[].concat(wt("module").builtinModules,"bootstrap_node","node").map(e=>new RegExp(`(?:\\((?:node:)?${e}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${e}(?:\\.js)?:\\d+:\\d+$)`));DHn.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var phr=class e{constructor(t){t={ignoredPackages:[],...t},"internals"in t||(t.internals=e.nodeInternals()),"cwd"in t||(t.cwd=UKo),this._cwd=t.cwd.replace(/\\/g,"/"),this._internals=[].concat(t.internals,KKo(t.ignoredPackages)),this._wrapCallSite=t.wrapCallSite||!1}static nodeInternals(){return[...DHn]}clean(t,r=0){r=" ".repeat(r),Array.isArray(t)||(t=t.split(` `)),!/^\s*at /.test(t[0])&&/^\s*at /.test(t[1])&&(t=t.slice(1));let n=!1,a=null,o=[];return t.forEach(l=>{if(l=l.replace(/\\/g,"/"),this._internals.some(f=>f.test(l)))return;let A=/^\s*at /.test(l);n?l=l.trimEnd().replace(/^(\s+)at /,"$1"):(l=l.trim(),A&&(l=l.slice(3))),l=l.replace(`${this._cwd}/`,""),l&&(A?(a&&(o.push(a),a=null),o.push(l)):(n=!0,a=l))}),o.map(l=>`${r}${l} -`).join("")}captureString(t,r=this.captureString){typeof t=="function"&&(r=t,t=1/0);let{stackTraceLimit:n}=Error;t&&(Error.stackTraceLimit=t);let a={};Error.captureStackTrace(a,r);let{stack:o}=a;return Error.stackTraceLimit=n,this.clean(o)}capture(t,r=this.capture){typeof t=="function"&&(r=t,t=1/0);let{prepareStackTrace:n,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,f)=>this._wrapCallSite?f.map(this._wrapCallSite):f,t&&(Error.stackTraceLimit=t);let o={};Error.captureStackTrace(o,r);let{stack:l}=o;return Object.assign(Error,{prepareStackTrace:n,stackTraceLimit:a}),l}at(t=this.at){let[r]=this.capture(1,t);if(!r)return{};let n={line:r.getLineNumber(),column:r.getColumnNumber()};NHn(n,r.getFileName(),this._cwd),r.isConstructor()&&Object.defineProperty(n,"constructor",{value:!0,configurable:!0}),r.isEval()&&(n.evalOrigin=r.getEvalOrigin()),r.isNative()&&(n.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(n.type=a);let o=r.getFunctionName();o&&(n.function=o);let l=r.getMethodName();return l&&o!==l&&(n.method=l),n}parseLine(t){let r=t&&t.match(jKo);if(!r)return null;let n=r[1]==="new",a=r[2],o=r[3],l=r[4],A=Number(r[5]),f=Number(r[6]),I=r[7],C=r[8],b=r[9],E=r[10]==="native",N=r[11]===")",B,F={};if(C&&(F.line=Number(C)),b&&(F.column=Number(b)),N&&I){let Q=0;for(let X=I.length-1;X>0;X--)if(I.charAt(X)===")")Q++;else if(I.charAt(X)==="("&&I.charAt(X-1)===" "&&(Q--,Q===-1&&I.charAt(X-1)===" ")){let ae=I.slice(0,X-1);I=I.slice(X+1),a+=` (${ae}`;break}}if(a){let Q=a.match(zKo);Q&&(a=Q[1],B=Q[2])}return NHn(F,I,this._cwd),n&&Object.defineProperty(F,"constructor",{value:!0,configurable:!0}),o&&(F.evalOrigin=o,F.evalLine=A,F.evalColumn=f,F.evalFile=l&&l.replace(/\\/g,"/")),E&&(F.native=!0),a&&(F.function=a),B&&a!==B&&(F.method=B),F}};function NHn(e,t,r){t&&(t=t.replace(/\\/g,"/"),t.startsWith(`${r}/`)&&(t=t.slice(r.length+1)),e.file=t)}function KKo(e){if(e.length===0)return[];let t=e.map(r=>JKo(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${t.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var jKo=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),zKo=/^(.*?) \[as (.*?)\]$/;kHn.exports=phr});var GHn=H((Xtu,xHn)=>{"use strict";xHn.exports=(e,t)=>e.replace(/^\t+/gm,r=>" ".repeat(r.length*(t||2)))});var fhr=H((Jtu,FHn)=>{"use strict";var qKo=GHn(),$Ko=(e,t)=>{let r=[],n=e-t,a=e+t;for(let o=n;o<=a;o++)r.push(o);return r};FHn.exports=(e,t,r)=>{if(typeof e!="string")throw new TypeError("Source code is missing.");if(!t||t<1)throw new TypeError("Line number must start from `1`.");if(e=qKo(e).split(/\r?\n/),!(t>e.length))return r={around:3,...r},$Ko(t,r.around).filter(n=>e[n-1]!==void 0).map(n=>({line:n,value:e[n-1]}))}});var Zpt=H(yX=>{"use strict";var e8o=yX&&yX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),t8o=yX&&yX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r8o=yX&&yX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&e8o(t,e,r);return t8o(t,e),t},n8o=yX&&yX.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=n8o(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return ZHn.default.createElement("ink-box",{ref:t,style:a},r)});Ihr.displayName="Box";Ihr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};yX.default=Ihr});var Chr=H(KMe=>{"use strict";var hhr=KMe&&KMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(KMe,"__esModule",{value:!0});var i8o=hhr(Ec()),pBe=hhr(VK()),LHn=hhr(zIr()),mhr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=pBe.default.dim(b)),e&&(b=LHn.default(b,e,"foreground")),t&&(b=LHn.default(b,t,"background")),n&&(b=pBe.default.bold(b)),a&&(b=pBe.default.italic(b)),o&&(b=pBe.default.underline(b)),l&&(b=pBe.default.strikethrough(b)),A&&(b=pBe.default.inverse(b)),b);return i8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};mhr.displayName="Text";mhr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};KMe.default=mhr});var OHn=H(bX=>{"use strict";var s8o=bX&&bX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o8o=bX&&bX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a8o=bX&&bX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&s8o(t,e,r);return o8o(t,e),t},jMe=bX&&bX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bX,"__esModule",{value:!0});var VHn=a8o(wt("fs")),wR=jMe(Ec()),PHn=jMe(Fpt()),c8o=jMe(fhr()),C$=jMe(Zpt()),g8=jMe(Chr()),WHn=new PHn.default({cwd:process.cwd(),internals:PHn.default.nodeInternals()}),l8o=({error:e})=>{let t=e.stack?e.stack.split(` +`).join("")}captureString(t,r=this.captureString){typeof t=="function"&&(r=t,t=1/0);let{stackTraceLimit:n}=Error;t&&(Error.stackTraceLimit=t);let a={};Error.captureStackTrace(a,r);let{stack:o}=a;return Error.stackTraceLimit=n,this.clean(o)}capture(t,r=this.capture){typeof t=="function"&&(r=t,t=1/0);let{prepareStackTrace:n,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,f)=>this._wrapCallSite?f.map(this._wrapCallSite):f,t&&(Error.stackTraceLimit=t);let o={};Error.captureStackTrace(o,r);let{stack:l}=o;return Object.assign(Error,{prepareStackTrace:n,stackTraceLimit:a}),l}at(t=this.at){let[r]=this.capture(1,t);if(!r)return{};let n={line:r.getLineNumber(),column:r.getColumnNumber()};NHn(n,r.getFileName(),this._cwd),r.isConstructor()&&Object.defineProperty(n,"constructor",{value:!0,configurable:!0}),r.isEval()&&(n.evalOrigin=r.getEvalOrigin()),r.isNative()&&(n.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(n.type=a);let o=r.getFunctionName();o&&(n.function=o);let l=r.getMethodName();return l&&o!==l&&(n.method=l),n}parseLine(t){let r=t&&t.match(jKo);if(!r)return null;let n=r[1]==="new",a=r[2],o=r[3],l=r[4],A=Number(r[5]),f=Number(r[6]),I=r[7],C=r[8],b=r[9],E=r[10]==="native",N=r[11]===")",B,F={};if(C&&(F.line=Number(C)),b&&(F.column=Number(b)),N&&I){let Q=0;for(let X=I.length-1;X>0;X--)if(I.charAt(X)===")")Q++;else if(I.charAt(X)==="("&&I.charAt(X-1)===" "&&(Q--,Q===-1&&I.charAt(X-1)===" ")){let ae=I.slice(0,X-1);I=I.slice(X+1),a+=` (${ae}`;break}}if(a){let Q=a.match(zKo);Q&&(a=Q[1],B=Q[2])}return NHn(F,I,this._cwd),n&&Object.defineProperty(F,"constructor",{value:!0,configurable:!0}),o&&(F.evalOrigin=o,F.evalLine=A,F.evalColumn=f,F.evalFile=l&&l.replace(/\\/g,"/")),E&&(F.native=!0),a&&(F.function=a),B&&a!==B&&(F.method=B),F}};function NHn(e,t,r){t&&(t=t.replace(/\\/g,"/"),t.startsWith(`${r}/`)&&(t=t.slice(r.length+1)),e.file=t)}function KKo(e){if(e.length===0)return[];let t=e.map(r=>JKo(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${t.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var jKo=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),zKo=/^(.*?) \[as (.*?)\]$/;kHn.exports=phr});var GHn=H((Jtu,xHn)=>{"use strict";xHn.exports=(e,t)=>e.replace(/^\t+/gm,r=>" ".repeat(r.length*(t||2)))});var fhr=H((Utu,FHn)=>{"use strict";var qKo=GHn(),$Ko=(e,t)=>{let r=[],n=e-t,a=e+t;for(let o=n;o<=a;o++)r.push(o);return r};FHn.exports=(e,t,r)=>{if(typeof e!="string")throw new TypeError("Source code is missing.");if(!t||t<1)throw new TypeError("Line number must start from `1`.");if(e=qKo(e).split(/\r?\n/),!(t>e.length))return r={around:3,...r},$Ko(t,r.around).filter(n=>e[n-1]!==void 0).map(n=>({line:n,value:e[n-1]}))}});var Zpt=H(yX=>{"use strict";var e8o=yX&&yX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),t8o=yX&&yX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r8o=yX&&yX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&e8o(t,e,r);return t8o(t,e),t},n8o=yX&&yX.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=n8o(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return ZHn.default.createElement("ink-box",{ref:t,style:a},r)});Ihr.displayName="Box";Ihr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};yX.default=Ihr});var Chr=H(KMe=>{"use strict";var hhr=KMe&&KMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(KMe,"__esModule",{value:!0});var i8o=hhr(Ec()),pBe=hhr(VK()),LHn=hhr(zIr()),mhr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=pBe.default.dim(b)),e&&(b=LHn.default(b,e,"foreground")),t&&(b=LHn.default(b,t,"background")),n&&(b=pBe.default.bold(b)),a&&(b=pBe.default.italic(b)),o&&(b=pBe.default.underline(b)),l&&(b=pBe.default.strikethrough(b)),A&&(b=pBe.default.inverse(b)),b);return i8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};mhr.displayName="Text";mhr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};KMe.default=mhr});var OHn=H(bX=>{"use strict";var s8o=bX&&bX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o8o=bX&&bX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a8o=bX&&bX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&s8o(t,e,r);return o8o(t,e),t},jMe=bX&&bX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bX,"__esModule",{value:!0});var VHn=a8o(wt("fs")),wR=jMe(Ec()),PHn=jMe(Fpt()),c8o=jMe(fhr()),C$=jMe(Zpt()),g8=jMe(Chr()),WHn=new PHn.default({cwd:process.cwd(),internals:PHn.default.nodeInternals()}),l8o=({error:e})=>{let t=e.stack?e.stack.split(` `).slice(1):void 0,r=t?WHn.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&VHn.existsSync(r.file)){let o=VHn.readFileSync(r.file,"utf8");if(n=c8o.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return wR.default.createElement(C$.default,{flexDirection:"column",padding:1},wR.default.createElement(C$.default,null,wR.default.createElement(g8.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),wR.default.createElement(g8.default,null," ",e.message)),r&&wR.default.createElement(C$.default,{marginTop:1},wR.default.createElement(g8.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&wR.default.createElement(C$.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>wR.default.createElement(C$.default,{key:o},wR.default.createElement(C$.default,{width:a+1},wR.default.createElement(g8.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),wR.default.createElement(g8.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&wR.default.createElement(C$.default,{marginTop:1,flexDirection:"column"},e.stack.split(` `).slice(1).map(o=>{let l=WHn.parseLine(o);return l?wR.default.createElement(C$.default,{key:o},wR.default.createElement(g8.default,{dimColor:!0},"- "),wR.default.createElement(g8.default,{dimColor:!0,bold:!0},l.function),wR.default.createElement(g8.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):wR.default.createElement(C$.default,{key:o},wR.default.createElement(g8.default,{dimColor:!0},"- "),wR.default.createElement(g8.default,{dimColor:!0,bold:!0},o))})))};bX.default=l8o});var HHn=H(EX=>{"use strict";var u8o=EX&&EX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),g8o=EX&&EX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),A8o=EX&&EX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&u8o(t,e,r);return g8o(t,e),t},NIe=EX&&EX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EX,"__esModule",{value:!0});var RIe=A8o(Ec()),MHn=NIe(uBe()),d8o=NIe(ohr()),p8o=NIe(chr()),f8o=NIe(uhr()),I8o=NIe(Ahr()),h8o=NIe(Gpt()),m8o=NIe(OHn()),C8o=" ",_8o="\x1B[Z",y8o="\x1B",Lpt=class extends RIe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===y8o&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===C8o&&this.focusNext(),t===_8o&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return RIe.default.createElement(d8o.default.Provider,{value:{exit:this.handleExit}},RIe.default.createElement(p8o.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},RIe.default.createElement(f8o.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},RIe.default.createElement(I8o.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},RIe.default.createElement(h8o.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?RIe.default.createElement(m8o.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){MHn.default.hide(this.props.stdout)}componentWillUnmount(){MHn.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};EX.default=Lpt;Lpt.displayName="InternalApp"});var XHn=H(SX=>{"use strict";var b8o=SX&&SX.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),E8o=SX&&SX.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S8o=SX&&SX.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&b8o(t,e,r);return E8o(t,e),t},vX=SX&&SX.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SX,"__esModule",{value:!0});var v8o=vX(Ec()),YHn=AIr(),B8o=vX(aMn()),w8o=vX(BMe()),T8o=vX(hIr()),R8o=vX(mIr()),_hr=vX(sHn()),N8o=vX(CHn()),D8o=vX(mpt()),k8o=vX(rhr()),x8o=S8o(JIr()),G8o=vX(ihr()),F8o=vX(HHn()),fBe=process.env.CI==="false"?!1:T8o.default,QHn=()=>{},yhr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=N8o.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` `;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(fBe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(w8o.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},R8o.default(this),this.options=t,this.rootNode=x8o.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:YHn.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=B8o.default.create(t.stdout),this.throttledLog=t.debug?this.log:YHn.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=_hr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=D8o.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),fBe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=v8o.default.createElement(F8o.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);_hr.default.updateContainer(r,this.container,null,QHn)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(fBe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(fBe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),fBe?this.options.stdout.write(this.lastOutput+` `):this.options.debug||this.log.done(),this.isUnmounted=!0,_hr.default.updateContainer(null,this.container,null,QHn),G8o.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!fBe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=k8o.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};SX.default=yhr});var UHn=H(zMe=>{"use strict";var JHn=zMe&&zMe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zMe,"__esModule",{value:!0});var Z8o=JHn(XHn()),Vpt=JHn(ihr()),L8o=wt("stream"),V8o=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},P8o(t)),n=W8o(r.stdout,()=>new Z8o.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>Vpt.default.delete(r.stdout),clear:n.clear}};zMe.default=V8o;var P8o=(e={})=>e instanceof L8o.Stream?{stdout:e,stdin:process.stdin}:e,W8o=(e,t)=>{let r;return Vpt.default.has(e)?r=Vpt.default.get(e):(r=t(),Vpt.default.set(e,r)),r}});var jHn=H(_$=>{"use strict";var O8o=_$&&_$.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),M8o=_$&&_$.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),H8o=_$&&_$.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&O8o(t,e,r);return M8o(t,e),t};Object.defineProperty(_$,"__esModule",{value:!0});var qMe=H8o(Ec()),KHn=e=>{let{items:t,children:r,style:n}=e,[a,o]=qMe.useState(0),l=qMe.useMemo(()=>t.slice(a),[t,a]);qMe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=qMe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return qMe.default.createElement("ink-box",{internal_static:!0,style:f},A)};KHn.displayName="Static";_$.default=KHn});var qHn=H($Me=>{"use strict";var Y8o=$Me&&$Me.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($Me,"__esModule",{value:!0});var Q8o=Y8o(Ec()),zHn=({children:e,transform:t})=>e==null?null:Q8o.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);zHn.displayName="Transform";$Me.default=zHn});var eYn=H(eHe=>{"use strict";var X8o=eHe&&eHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(eHe,"__esModule",{value:!0});var J8o=X8o(Ec()),$Hn=({count:e=1})=>J8o.default.createElement("ink-text",null,` -`.repeat(e));$Hn.displayName="Newline";eHe.default=$Hn});var nYn=H(tHe=>{"use strict";var tYn=tHe&&tHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tHe,"__esModule",{value:!0});var U8o=tYn(Ec()),K8o=tYn(Zpt()),rYn=()=>U8o.default.createElement(K8o.default,{flexGrow:1});rYn.displayName="Spacer";tHe.default=rYn});var Ppt=H(rHe=>{"use strict";var j8o=rHe&&rHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(rHe,"__esModule",{value:!0});var z8o=Ec(),q8o=j8o(chr()),$8o=()=>z8o.useContext(q8o.default);rHe.default=$8o});var sYn=H(nHe=>{"use strict";var ejo=nHe&&nHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(nHe,"__esModule",{value:!0});var iYn=Ec(),tjo=ejo(Ppt()),rjo=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=tjo.default();iYn.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),iYn.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};nHe.default=rjo});var oYn=H(iHe=>{"use strict";var njo=iHe&&iHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(iHe,"__esModule",{value:!0});var ijo=Ec(),sjo=njo(ohr()),ojo=()=>ijo.useContext(sjo.default);iHe.default=ojo});var aYn=H(sHe=>{"use strict";var ajo=sHe&&sHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sHe,"__esModule",{value:!0});var cjo=Ec(),ljo=ajo(uhr()),ujo=()=>cjo.useContext(ljo.default);sHe.default=ujo});var cYn=H(oHe=>{"use strict";var gjo=oHe&&oHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oHe,"__esModule",{value:!0});var Ajo=Ec(),djo=gjo(Ahr()),pjo=()=>Ajo.useContext(djo.default);oHe.default=pjo});var uYn=H(cHe=>{"use strict";var lYn=cHe&&cHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cHe,"__esModule",{value:!0});var aHe=Ec(),fjo=lYn(Gpt()),Ijo=lYn(Ppt()),hjo=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=Ijo.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=aHe.useContext(fjo.default),b=aHe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return aHe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),aHe.useEffect(()=>{e?f(b):I(b)},[e,b]),aHe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};cHe.default=hjo});var gYn=H(lHe=>{"use strict";var mjo=lHe&&lHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lHe,"__esModule",{value:!0});var Cjo=Ec(),_jo=mjo(Gpt()),yjo=()=>{let e=Cjo.useContext(_jo.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};lHe.default=yjo});var AYn=H(bhr=>{"use strict";Object.defineProperty(bhr,"__esModule",{value:!0});bhr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var Al=H(wk=>{"use strict";Object.defineProperty(wk,"__esModule",{value:!0});var bjo=UHn();Object.defineProperty(wk,"render",{enumerable:!0,get:function(){return bjo.default}});var Ejo=Zpt();Object.defineProperty(wk,"Box",{enumerable:!0,get:function(){return Ejo.default}});var Sjo=Chr();Object.defineProperty(wk,"Text",{enumerable:!0,get:function(){return Sjo.default}});var vjo=jHn();Object.defineProperty(wk,"Static",{enumerable:!0,get:function(){return vjo.default}});var Bjo=qHn();Object.defineProperty(wk,"Transform",{enumerable:!0,get:function(){return Bjo.default}});var wjo=eYn();Object.defineProperty(wk,"Newline",{enumerable:!0,get:function(){return wjo.default}});var Tjo=nYn();Object.defineProperty(wk,"Spacer",{enumerable:!0,get:function(){return Tjo.default}});var Rjo=sYn();Object.defineProperty(wk,"useInput",{enumerable:!0,get:function(){return Rjo.default}});var Njo=oYn();Object.defineProperty(wk,"useApp",{enumerable:!0,get:function(){return Njo.default}});var Djo=Ppt();Object.defineProperty(wk,"useStdin",{enumerable:!0,get:function(){return Djo.default}});var kjo=aYn();Object.defineProperty(wk,"useStdout",{enumerable:!0,get:function(){return kjo.default}});var xjo=cYn();Object.defineProperty(wk,"useStderr",{enumerable:!0,get:function(){return xjo.default}});var Gjo=uYn();Object.defineProperty(wk,"useFocus",{enumerable:!0,get:function(){return Gjo.default}});var Fjo=gYn();Object.defineProperty(wk,"useFocusManager",{enumerable:!0,get:function(){return Fjo.default}});var Zjo=AYn();Object.defineProperty(wk,"measureElement",{enumerable:!0,get:function(){return Zjo.default}})});var pYn=H(Wpt=>{"use strict";var Ljo=Ec(),Vjo=Symbol.for("react.element"),Pjo=Symbol.for("react.fragment"),Wjo=Object.prototype.hasOwnProperty,Ojo=Ljo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Mjo={key:!0,ref:!0,__self:!0,__source:!0};function dYn(e,t,r){var n,a={},o=null,l=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(n in t)Wjo.call(t,n)&&!Mjo.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Vjo,type:e,key:o,ref:l,props:a,_owner:Ojo.current}}Wpt.Fragment=Pjo;Wpt.jsx=dYn;Wpt.jsxs=dYn});var Pc=H((pru,fYn)=>{"use strict";fYn.exports=pYn()});var NYn=H(kIe=>{"use strict";var{promisify:$jo}=wt("util"),RYn=wt("fs");async function Thr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await $jo(RYn[e])(r))[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}function Rhr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return RYn[e](r)[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}kIe.isFile=Thr.bind(null,"stat","isFile");kIe.isDirectory=Thr.bind(null,"stat","isDirectory");kIe.isSymlink=Thr.bind(null,"lstat","isSymbolicLink");kIe.isFileSync=Rhr.bind(null,"statSync","isFile");kIe.isDirectorySync=Rhr.bind(null,"statSync","isDirectory");kIe.isSymlinkSync=Rhr.bind(null,"lstatSync","isSymbolicLink")});var FYn=H((Jru,Nhr)=>{"use strict";var xIe=wt("path"),DYn=NYn(),kYn=e=>e.length>1?`{${e.join(",")}}`:e[0],xYn=(e,t)=>{let r=e[0]==="!"?e.slice(1):e;return xIe.isAbsolute(r)?r:xIe.join(t,r)},e6o=(e,t)=>xIe.extname(e)?`**/${e}`:`**/${e}.${kYn(t)}`,GYn=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>xIe.posix.join(e,e6o(r,t.extensions))):t.files?t.files.map(r=>xIe.posix.join(e,`**/${r}`)):t.extensions?[xIe.posix.join(e,`**/*.${kYn(t.extensions)}`)]:[xIe.posix.join(e,"**")]};Nhr.exports=async(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=await Promise.all([].concat(e).map(async n=>await DYn.isDirectory(xYn(n,t.cwd))?GYn(n,t):n));return[].concat.apply([],r)};Nhr.exports.sync=(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=[].concat(e).map(n=>DYn.isDirectorySync(xYn(n,t.cwd))?GYn(n,t):n);return[].concat.apply([],r)}});var uHe=H((Uru,HYn)=>{function ZYn(e){return Array.isArray(e)?e:[e]}var xhr="",LYn=" ",Dhr="\\",t6o=/^\s+$/,r6o=/(?:[^\\]|^)\\$/,n6o=/^\\!/,i6o=/^\\#/,s6o=/\r?\n/g,o6o=/^\.*\/|^\.+$/,khr="/",WYn="node-ignore";typeof Symbol<"u"&&(WYn=Symbol.for("node-ignore"));var VYn=WYn,a6o=(e,t,r)=>Object.defineProperty(e,t,{value:r}),c6o=/([0-z])-([0-z])/g,OYn=()=>!1,l6o=e=>e.replace(c6o,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:xhr),u6o=e=>{let{length:t}=e;return e.slice(0,t-t%2)},g6o=[[/^\uFEFF/,()=>xhr],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?LYn:xhr)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+LYn}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Dhr],[/\\\\/g,()=>Dhr],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,a)=>t===Dhr?`\\[${r}${u6o(n)}${a}`:a==="]"&&n.length%2===0?`[${l6o(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],PYn=Object.create(null),A6o=(e,t)=>{let r=PYn[e];return r||(r=g6o.reduce((n,[a,o])=>n.replace(a,o.bind(e)),e),PYn[e]=r),t?new RegExp(r,"i"):new RegExp(r)},Zhr=e=>typeof e=="string",d6o=e=>e&&Zhr(e)&&!t6o.test(e)&&!r6o.test(e)&&e.indexOf("#")!==0,p6o=e=>e.split(s6o),Ghr=class{constructor(t,r,n,a){this.origin=t,this.pattern=r,this.negative=n,this.regex=a}},f6o=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(n6o,"!").replace(i6o,"#");let a=A6o(e,t);return new Ghr(r,e,n,a)},I6o=(e,t)=>{throw new t(e)},y$=(e,t,r)=>Zhr(e)?e?y$.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),MYn=e=>o6o.test(e);y$.isNotRelative=MYn;y$.convert=e=>e;var Fhr=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){a6o(this,VYn,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[VYn]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(d6o(t)){let r=f6o(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,ZYn(Zhr(t)?p6o(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,a=!1;return this._rules.forEach(o=>{let{negative:l}=o;if(a===l&&n!==a||l&&!n&&!a&&!r)return;o.regex.test(t)&&(n=!l,a=l)}),{ignored:n,unignored:a}}_test(t,r,n,a){let o=t&&y$.convert(t);return y$(o,t,this._allowRelativePaths?OYn:I6o),this._t(o,r,n,a)}_t(t,r,n,a){if(t in r)return r[t];if(a||(a=t.split(khr)),a.pop(),!a.length)return r[t]=this._testOne(t,n);let o=this._t(a.join(khr)+khr,r,n,a);return r[t]=o.ignored?o:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return ZYn(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Hpt=e=>new Fhr(e),h6o=e=>y$(e&&y$.convert(e),e,OYn);Hpt.isPathValid=h6o;Hpt.default=Hpt;HYn.exports=Hpt;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");y$.convert=e;let t=/^[a-z]:\//i;y$.isNotRelative=r=>t.test(r)||MYn(r)}});var Mhr=H(Upt=>{"use strict";Object.defineProperty(Upt,"__esModule",{value:!0});Upt.Context=void 0;var pQn=wt("fs"),P6o=wt("os"),Ohr=class{constructor(){var t,r,n;if(this.payload={},process.env.GITHUB_EVENT_PATH)if((0,pQn.existsSync)(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse((0,pQn.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let a=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${a} does not exist${P6o.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10),this.apiUrl=(t=process.env.GITHUB_API_URL)!==null&&t!==void 0?t:"https://api.github.com",this.serverUrl=(r=process.env.GITHUB_SERVER_URL)!==null&&r!==void 0?r:"https://github.com",this.graphqlUrl=(n=process.env.GITHUB_GRAPHQL_URL)!==null&&n!==void 0?n:"https://api.github.com/graphql"}get issue(){let t=this.payload;return Object.assign(Object.assign({},this.repo),{number:(t.issue||t.pull_request||t).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[t,r]=process.env.GITHUB_REPOSITORY.split("/");return{owner:t,repo:r}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};Upt.Context=Ohr});var IQn=H(_Be=>{"use strict";Object.defineProperty(_Be,"__esModule",{value:!0});_Be.checkBypass=_Be.getProxyUrl=void 0;function W6o(e){let t=e.protocol==="https:";if(fQn(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new Kpt(r)}catch{if(!r.startsWith("http://")&&!r.startsWith("https://"))return new Kpt(`http://${r}`)}else return}_Be.getProxyUrl=W6o;function fQn(e){if(!e.hostname)return!1;let t=e.hostname;if(O6o(t))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let n;e.port?n=Number(e.port):e.protocol==="http:"?n=80:e.protocol==="https:"&&(n=443);let a=[e.hostname.toUpperCase()];typeof n=="number"&&a.push(`${a[0]}:${n}`);for(let o of r.split(",").map(l=>l.trim().toUpperCase()).filter(l=>l))if(o==="*"||a.some(l=>l===o||l.endsWith(`.${o}`)||o.startsWith(".")&&l.endsWith(`${o}`)))return!0;return!1}_Be.checkBypass=fQn;function O6o(e){let t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}var Kpt=class extends URL{constructor(t,r){super(t,r),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}});var _Qn=H(yBe=>{"use strict";var Pnu=wt("net"),M6o=wt("tls"),Hhr=wt("http"),hQn=wt("https"),H6o=wt("events"),Wnu=wt("assert"),Y6o=wt("util");yBe.httpOverHttp=Q6o;yBe.httpsOverHttp=X6o;yBe.httpOverHttps=J6o;yBe.httpsOverHttps=U6o;function Q6o(e){var t=new E$(e);return t.request=Hhr.request,t}function X6o(e){var t=new E$(e);return t.request=Hhr.request,t.createSocket=mQn,t.defaultPort=443,t}function J6o(e){var t=new E$(e);return t.request=hQn.request,t}function U6o(e){var t=new E$(e);return t.request=hQn.request,t.createSocket=mQn,t.defaultPort=443,t}function E$(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Hhr.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,a,o,l){for(var A=CQn(a,o,l),f=0,I=t.requests.length;f=this.maxSockets){o.requests.push(l);return}o.createSocket(l,function(A){A.on("free",f),A.on("close",I),A.on("agentRemove",I),t.onSocket(A);function f(){o.emit("free",A,l)}function I(C){o.removeSocket(A),A.removeListener("free",f),A.removeListener("close",I),A.removeListener("agentRemove",I)}})};E$.prototype.createSocket=function(t,r){var n=this,a={};n.sockets.push(a);var o=Yhr({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1,headers:{host:t.host+":"+t.port}});t.localAddress&&(o.localAddress=t.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),Hoe("making CONNECT request");var l=n.request(o);l.useChunkedEncodingByDefault=!1,l.once("response",A),l.once("upgrade",f),l.once("connect",I),l.once("error",C),l.end();function A(b){b.upgrade=!0}function f(b,E,N){process.nextTick(function(){I(b,E,N)})}function I(b,E,N){if(l.removeAllListeners(),E.removeAllListeners(),b.statusCode!==200){Hoe("tunneling socket could not be established, statusCode=%d",b.statusCode),E.destroy();var B=new Error("tunneling socket could not be established, statusCode="+b.statusCode);B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}if(N.length>0){Hoe("got illegal response body from proxy"),E.destroy();var B=new Error("got illegal response body from proxy");B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}return Hoe("tunneling connection has established"),n.sockets[n.sockets.indexOf(a)]=E,r(E)}function C(b){l.removeAllListeners(),Hoe(`tunneling socket could not be established, cause=%s -`,b.message,b.stack);var E=new Error("tunneling socket could not be established, cause="+b.message);E.code="ECONNRESET",t.request.emit("error",E),n.removeSocket(a)}};E$.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(a){n.request.onSocket(a)})}};function mQn(e,t){var r=this;E$.prototype.createSocket.call(r,e,function(n){var a=e.request.getHeader("host"),o=Yhr({},r.options,{socket:n,servername:a?a.replace(/:.*$/,""):e.host}),l=M6o.connect(0,o);r.sockets[r.sockets.indexOf(n)]=l,t(l)})}function CQn(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Yhr(e){for(var t=1,r=arguments.length;t{yQn.exports=_Qn()});var GE=H((Hnu,EQn)=>{EQn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}});var Ub=H((Ynu,SQn)=>{"use strict";var qB=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Xhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Uhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},Khr=class e extends qB{constructor(t,r,n,a){super(t),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},zhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$hr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},emr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},tmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},rmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},nmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},imr=class e extends qB{constructor(t,r){super(t),Error.captureStackTrace(this,e),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},jpt=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},smr=class extends qB{constructor(t){super(t),Error.captureStackTrace(this,jpt),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},omr=class e extends Error{constructor(t,r,n){super(t),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},amr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},cmr=class e extends qB{constructor(t,r,{headers:n,data:a}){super(t),Error.captureStackTrace(this,e),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}};SQn.exports={HTTPParserError:omr,UndiciError:qB,HeadersTimeoutError:Xhr,HeadersOverflowError:Jhr,BodyTimeoutError:Uhr,RequestContentLengthMismatchError:emr,ConnectTimeoutError:Qhr,ResponseStatusCodeError:Khr,InvalidArgumentError:jhr,InvalidReturnValueError:zhr,RequestAbortedError:qhr,ClientDestroyedError:rmr,ClientClosedError:nmr,InformationalError:$hr,SocketError:imr,NotSupportedError:jpt,ResponseContentLengthMismatchError:tmr,BalancedPoolMissingUpstreamError:smr,ResponseExceededMaxSizeError:amr,RequestRetryError:cmr}});var BQn=H((Qnu,vQn)=>{"use strict";var zpt={},lmr=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var NQn=wt("assert"),{kDestroyed:DQn,kBodyUsed:wQn}=GE(),{IncomingMessage:K6o}=wt("http"),bBe=wt("stream"),j6o=wt("net"),{InvalidArgumentError:Tk}=Ub(),{Blob:TQn}=wt("buffer"),qpt=wt("util"),{stringify:z6o}=wt("querystring"),{headerNameLowerCasedRecord:q6o}=BQn(),[umr,RQn]=process.versions.node.split(".").map(e=>Number(e));function $6o(){}function gmr(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function kQn(e){return TQn&&e instanceof TQn||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function e7o(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=z6o(t);return r&&(e+="?"+r),e}function xQn(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Tk("Invalid URL: The URL argument must be a non-null object.");if(!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Tk("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Tk("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Tk("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Tk("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Tk("Invalid URL origin: the origin must be a string or null/undefined.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;r.endsWith("/")&&(r=r.substring(0,r.length-1)),n&&!n.startsWith("/")&&(n=`/${n}`),e=new URL(r+n)}return e}function t7o(e){if(e=xQn(e),e.pathname!=="/"||e.search||e.hash)throw new Tk("invalid url");return e}function r7o(e){if(e[0]==="["){let r=e.indexOf("]");return NQn(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function n7o(e){if(!e)return null;NQn.strictEqual(typeof e,"string");let t=r7o(e);return j6o.isIP(t)?"":t}function i7o(e){return JSON.parse(JSON.stringify(e))}function s7o(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function o7o(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function a7o(e){if(e==null)return 0;if(gmr(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(kQn(e))return e.size!=null?e.size:null;if(FQn(e))return e.byteLength}return null}function Amr(e){return!e||!!(e.destroyed||e[DQn])}function GQn(e){let t=e&&e._readableState;return Amr(e)&&t&&!t.endEmitted}function c7o(e,t){e==null||!gmr(e)||Amr(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===K6o&&(e.socket=null),e.destroy(t)):t&&process.nextTick((r,n)=>{r.emit("error",n)},e,t),e.destroyed!==!0&&(e[DQn]=!0))}var l7o=/timeout=(\d+)/;function u7o(e){let t=e.toString().match(l7o);return t?parseInt(t[1],10)*1e3:null}function g7o(e){return q6o[e]||e.toLowerCase()}function A7o(e,t={}){if(!Array.isArray(e))return e;for(let r=0;ro.toString("utf8")):t[n]=e[r+1].toString("utf8")}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function d7o(e){let t=[],r=!1,n=-1;for(let a=0;a{r.close()});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()}},0)}function y7o(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function b7o(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let t=new Error("The operation was aborted");throw t.name="AbortError",t}}}function E7o(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var S7o=!!String.prototype.toWellFormed;function v7o(e){return S7o?`${e}`.toWellFormed():qpt.toUSVString?qpt.toUSVString(e):`${e}`}function B7o(e){if(e==null||e==="")return{start:0,end:null,size:null};let t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}var ZQn=Object.create(null);ZQn.enumerable=!0;LQn.exports={kEnumerableProperty:ZQn,nop:$6o,isDisturbed:f7o,isErrored:I7o,isReadable:h7o,toUSVString:v7o,isReadableAborted:GQn,isBlobLike:kQn,parseOrigin:t7o,parseURL:xQn,getServerName:n7o,isStream:gmr,isIterable:o7o,isAsyncIterable:s7o,isDestroyed:Amr,headerNameToString:g7o,parseRawHeaders:d7o,parseHeaders:A7o,parseKeepAliveTimeout:u7o,destroy:c7o,bodyLength:a7o,deepClone:i7o,ReadableStreamFrom:_7o,isBuffer:FQn,validateHandler:p7o,getSocketInfo:m7o,isFormDataLike:y7o,buildURL:e7o,throwIfAborted:b7o,addAbortListener:E7o,parseRangeHeader:B7o,nodeMajor:umr,nodeMinor:RQn,nodeHasAutoSelectFamily:umr>18||umr===18&&RQn>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}});var WQn=H((Jnu,PQn)=>{"use strict";var dmr=Date.now(),Yoe,Qoe=[];function w7o(){dmr=Date.now();let e=Qoe.length,t=0;for(;t0&&dmr>=r.state&&(r.state=-1,r.callback(r.opaque)),r.state===-1?(r.state=-2,t!==e-1?Qoe[t]=Qoe.pop():Qoe.pop(),e-=1):t+=1}Qoe.length>0&&VQn()}function VQn(){Yoe&&Yoe.refresh?Yoe.refresh():(clearTimeout(Yoe),Yoe=setTimeout(w7o,1e3),Yoe.unref&&Yoe.unref())}var $pt=class{constructor(t,r,n){this.callback=t,this.delay=r,this.opaque=n,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Qoe.push(this),(!Yoe||Qoe.length===1)&&VQn()),this.state=0}clear(){this.state=-1}};PQn.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new $pt(e,t,r)},clearTimeout(e){e instanceof $pt?e.clear():clearTimeout(e)}}});var pmr=H((Unu,OQn)=>{"use strict";var T7o=wt("node:events").EventEmitter,R7o=wt("node:util").inherits;function GIe(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(t);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let A=this._lookbehind_size+o;return A>0&&this.emit("info",!1,this._lookbehind,0,A),this._lookbehind.copy(this._lookbehind,0,A,this._lookbehind_size-A),this._lookbehind_size-=A,e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o+=(o>=0)*this._bufpos,e.indexOf(r,o)!==-1)return o=e.indexOf(r,o),++this.matches,o>0?this.emit("info",!0,e,this._bufpos,o):this.emit("info",!0),this._bufpos=o+n;for(o=t-n;o0&&this.emit("info",!1,e,this._bufpos,o{"use strict";var N7o=wt("node:util").inherits,MQn=wt("node:stream").Readable;function fmr(e){MQn.call(this,e)}N7o(fmr,MQn);fmr.prototype._read=function(e){};HQn.exports=fmr});var eft=H((jnu,QQn)=>{"use strict";QQn.exports=function(t,r,n){if(!t||t[r]===void 0||t[r]===null)return n;if(typeof t[r]!="number"||isNaN(t[r]))throw new TypeError("Limit "+r+" is not a valid number");return t[r]}});var KQn=H((znu,UQn)=>{"use strict";var JQn=wt("node:events").EventEmitter,D7o=wt("node:util").inherits,XQn=eft(),k7o=pmr(),x7o=Buffer.from(`\r +`.repeat(e));$Hn.displayName="Newline";eHe.default=$Hn});var nYn=H(tHe=>{"use strict";var tYn=tHe&&tHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(tHe,"__esModule",{value:!0});var U8o=tYn(Ec()),K8o=tYn(Zpt()),rYn=()=>U8o.default.createElement(K8o.default,{flexGrow:1});rYn.displayName="Spacer";tHe.default=rYn});var Ppt=H(rHe=>{"use strict";var j8o=rHe&&rHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(rHe,"__esModule",{value:!0});var z8o=Ec(),q8o=j8o(chr()),$8o=()=>z8o.useContext(q8o.default);rHe.default=$8o});var sYn=H(nHe=>{"use strict";var ejo=nHe&&nHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(nHe,"__esModule",{value:!0});var iYn=Ec(),tjo=ejo(Ppt()),rjo=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=tjo.default();iYn.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),iYn.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};nHe.default=rjo});var oYn=H(iHe=>{"use strict";var njo=iHe&&iHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(iHe,"__esModule",{value:!0});var ijo=Ec(),sjo=njo(ohr()),ojo=()=>ijo.useContext(sjo.default);iHe.default=ojo});var aYn=H(sHe=>{"use strict";var ajo=sHe&&sHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sHe,"__esModule",{value:!0});var cjo=Ec(),ljo=ajo(uhr()),ujo=()=>cjo.useContext(ljo.default);sHe.default=ujo});var cYn=H(oHe=>{"use strict";var gjo=oHe&&oHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oHe,"__esModule",{value:!0});var Ajo=Ec(),djo=gjo(Ahr()),pjo=()=>Ajo.useContext(djo.default);oHe.default=pjo});var uYn=H(cHe=>{"use strict";var lYn=cHe&&cHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cHe,"__esModule",{value:!0});var aHe=Ec(),fjo=lYn(Gpt()),Ijo=lYn(Ppt()),hjo=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=Ijo.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=aHe.useContext(fjo.default),b=aHe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return aHe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),aHe.useEffect(()=>{e?f(b):I(b)},[e,b]),aHe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};cHe.default=hjo});var gYn=H(lHe=>{"use strict";var mjo=lHe&&lHe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lHe,"__esModule",{value:!0});var Cjo=Ec(),_jo=mjo(Gpt()),yjo=()=>{let e=Cjo.useContext(_jo.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};lHe.default=yjo});var AYn=H(bhr=>{"use strict";Object.defineProperty(bhr,"__esModule",{value:!0});bhr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var Al=H(wk=>{"use strict";Object.defineProperty(wk,"__esModule",{value:!0});var bjo=UHn();Object.defineProperty(wk,"render",{enumerable:!0,get:function(){return bjo.default}});var Ejo=Zpt();Object.defineProperty(wk,"Box",{enumerable:!0,get:function(){return Ejo.default}});var Sjo=Chr();Object.defineProperty(wk,"Text",{enumerable:!0,get:function(){return Sjo.default}});var vjo=jHn();Object.defineProperty(wk,"Static",{enumerable:!0,get:function(){return vjo.default}});var Bjo=qHn();Object.defineProperty(wk,"Transform",{enumerable:!0,get:function(){return Bjo.default}});var wjo=eYn();Object.defineProperty(wk,"Newline",{enumerable:!0,get:function(){return wjo.default}});var Tjo=nYn();Object.defineProperty(wk,"Spacer",{enumerable:!0,get:function(){return Tjo.default}});var Rjo=sYn();Object.defineProperty(wk,"useInput",{enumerable:!0,get:function(){return Rjo.default}});var Njo=oYn();Object.defineProperty(wk,"useApp",{enumerable:!0,get:function(){return Njo.default}});var Djo=Ppt();Object.defineProperty(wk,"useStdin",{enumerable:!0,get:function(){return Djo.default}});var kjo=aYn();Object.defineProperty(wk,"useStdout",{enumerable:!0,get:function(){return kjo.default}});var xjo=cYn();Object.defineProperty(wk,"useStderr",{enumerable:!0,get:function(){return xjo.default}});var Gjo=uYn();Object.defineProperty(wk,"useFocus",{enumerable:!0,get:function(){return Gjo.default}});var Fjo=gYn();Object.defineProperty(wk,"useFocusManager",{enumerable:!0,get:function(){return Fjo.default}});var Zjo=AYn();Object.defineProperty(wk,"measureElement",{enumerable:!0,get:function(){return Zjo.default}})});var pYn=H(Wpt=>{"use strict";var Ljo=Ec(),Vjo=Symbol.for("react.element"),Pjo=Symbol.for("react.fragment"),Wjo=Object.prototype.hasOwnProperty,Ojo=Ljo.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Mjo={key:!0,ref:!0,__self:!0,__source:!0};function dYn(e,t,r){var n,a={},o=null,l=null;r!==void 0&&(o=""+r),t.key!==void 0&&(o=""+t.key),t.ref!==void 0&&(l=t.ref);for(n in t)Wjo.call(t,n)&&!Mjo.hasOwnProperty(n)&&(a[n]=t[n]);if(e&&e.defaultProps)for(n in t=e.defaultProps,t)a[n]===void 0&&(a[n]=t[n]);return{$$typeof:Vjo,type:e,key:o,ref:l,props:a,_owner:Ojo.current}}Wpt.Fragment=Pjo;Wpt.jsx=dYn;Wpt.jsxs=dYn});var Pc=H((fru,fYn)=>{"use strict";fYn.exports=pYn()});var NYn=H(kIe=>{"use strict";var{promisify:$jo}=wt("util"),RYn=wt("fs");async function Thr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await $jo(RYn[e])(r))[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}function Rhr(e,t,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return RYn[e](r)[t]()}catch(n){if(n.code==="ENOENT")return!1;throw n}}kIe.isFile=Thr.bind(null,"stat","isFile");kIe.isDirectory=Thr.bind(null,"stat","isDirectory");kIe.isSymlink=Thr.bind(null,"lstat","isSymbolicLink");kIe.isFileSync=Rhr.bind(null,"statSync","isFile");kIe.isDirectorySync=Rhr.bind(null,"statSync","isDirectory");kIe.isSymlinkSync=Rhr.bind(null,"lstatSync","isSymbolicLink")});var FYn=H((Uru,Nhr)=>{"use strict";var xIe=wt("path"),DYn=NYn(),kYn=e=>e.length>1?`{${e.join(",")}}`:e[0],xYn=(e,t)=>{let r=e[0]==="!"?e.slice(1):e;return xIe.isAbsolute(r)?r:xIe.join(t,r)},e6o=(e,t)=>xIe.extname(e)?`**/${e}`:`**/${e}.${kYn(t)}`,GYn=(e,t)=>{if(t.files&&!Array.isArray(t.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof t.files}\``);if(t.extensions&&!Array.isArray(t.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof t.extensions}\``);return t.files&&t.extensions?t.files.map(r=>xIe.posix.join(e,e6o(r,t.extensions))):t.files?t.files.map(r=>xIe.posix.join(e,`**/${r}`)):t.extensions?[xIe.posix.join(e,`**/*.${kYn(t.extensions)}`)]:[xIe.posix.join(e,"**")]};Nhr.exports=async(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=await Promise.all([].concat(e).map(async n=>await DYn.isDirectory(xYn(n,t.cwd))?GYn(n,t):n));return[].concat.apply([],r)};Nhr.exports.sync=(e,t)=>{if(t={cwd:process.cwd(),...t},typeof t.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof t.cwd}\``);let r=[].concat(e).map(n=>DYn.isDirectorySync(xYn(n,t.cwd))?GYn(n,t):n);return[].concat.apply([],r)}});var uHe=H((Kru,HYn)=>{function ZYn(e){return Array.isArray(e)?e:[e]}var xhr="",LYn=" ",Dhr="\\",t6o=/^\s+$/,r6o=/(?:[^\\]|^)\\$/,n6o=/^\\!/,i6o=/^\\#/,s6o=/\r?\n/g,o6o=/^\.*\/|^\.+$/,khr="/",WYn="node-ignore";typeof Symbol<"u"&&(WYn=Symbol.for("node-ignore"));var VYn=WYn,a6o=(e,t,r)=>Object.defineProperty(e,t,{value:r}),c6o=/([0-z])-([0-z])/g,OYn=()=>!1,l6o=e=>e.replace(c6o,(t,r,n)=>r.charCodeAt(0)<=n.charCodeAt(0)?t:xhr),u6o=e=>{let{length:t}=e;return e.slice(0,t-t%2)},g6o=[[/^\uFEFF/,()=>xhr],[/((?:\\\\)*?)(\\?\s+)$/,(e,t,r)=>t+(r.indexOf("\\")===0?LYn:xhr)],[/(\\+?)\s/g,(e,t)=>{let{length:r}=t;return t.slice(0,r-r%2)+LYn}],[/[\\$.|*+(){^]/g,e=>`\\${e}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(e,t,r)=>t+6{let n=r.replace(/\\\*/g,"[^\\/]*");return t+n}],[/\\\\\\(?=[$.|*+(){^])/g,()=>Dhr],[/\\\\/g,()=>Dhr],[/(\\)?\[([^\]/]*?)(\\*)($|\])/g,(e,t,r,n,a)=>t===Dhr?`\\[${r}${u6o(n)}${a}`:a==="]"&&n.length%2===0?`[${l6o(r)}${n}]`:"[]"],[/(?:[^*])$/,e=>/\/$/.test(e)?`${e}$`:`${e}(?=$|\\/$)`],[/(\^|\\\/)?\\\*$/,(e,t)=>`${t?`${t}[^/]+`:"[^/]*"}(?=$|\\/$)`]],PYn=Object.create(null),A6o=(e,t)=>{let r=PYn[e];return r||(r=g6o.reduce((n,[a,o])=>n.replace(a,o.bind(e)),e),PYn[e]=r),t?new RegExp(r,"i"):new RegExp(r)},Zhr=e=>typeof e=="string",d6o=e=>e&&Zhr(e)&&!t6o.test(e)&&!r6o.test(e)&&e.indexOf("#")!==0,p6o=e=>e.split(s6o),Ghr=class{constructor(t,r,n,a){this.origin=t,this.pattern=r,this.negative=n,this.regex=a}},f6o=(e,t)=>{let r=e,n=!1;e.indexOf("!")===0&&(n=!0,e=e.substr(1)),e=e.replace(n6o,"!").replace(i6o,"#");let a=A6o(e,t);return new Ghr(r,e,n,a)},I6o=(e,t)=>{throw new t(e)},y$=(e,t,r)=>Zhr(e)?e?y$.isNotRelative(e)?r(`path should be a \`path.relative()\`d string, but got "${t}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${t}\``,TypeError),MYn=e=>o6o.test(e);y$.isNotRelative=MYn;y$.convert=e=>e;var Fhr=class{constructor({ignorecase:t=!0,ignoreCase:r=t,allowRelativePaths:n=!1}={}){a6o(this,VYn,!0),this._rules=[],this._ignoreCase=r,this._allowRelativePaths=n,this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(t){if(t&&t[VYn]){this._rules=this._rules.concat(t._rules),this._added=!0;return}if(d6o(t)){let r=f6o(t,this._ignoreCase);this._added=!0,this._rules.push(r)}}add(t){return this._added=!1,ZYn(Zhr(t)?p6o(t):t).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(t){return this.add(t)}_testOne(t,r){let n=!1,a=!1;return this._rules.forEach(o=>{let{negative:l}=o;if(a===l&&n!==a||l&&!n&&!a&&!r)return;o.regex.test(t)&&(n=!l,a=l)}),{ignored:n,unignored:a}}_test(t,r,n,a){let o=t&&y$.convert(t);return y$(o,t,this._allowRelativePaths?OYn:I6o),this._t(o,r,n,a)}_t(t,r,n,a){if(t in r)return r[t];if(a||(a=t.split(khr)),a.pop(),!a.length)return r[t]=this._testOne(t,n);let o=this._t(a.join(khr)+khr,r,n,a);return r[t]=o.ignored?o:this._testOne(t,n)}ignores(t){return this._test(t,this._ignoreCache,!1).ignored}createFilter(){return t=>!this.ignores(t)}filter(t){return ZYn(t).filter(this.createFilter())}test(t){return this._test(t,this._testCache,!0)}},Hpt=e=>new Fhr(e),h6o=e=>y$(e&&y$.convert(e),e,OYn);Hpt.isPathValid=h6o;Hpt.default=Hpt;HYn.exports=Hpt;if(typeof process<"u"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let e=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");y$.convert=e;let t=/^[a-z]:\//i;y$.isNotRelative=r=>t.test(r)||MYn(r)}});var Mhr=H(Upt=>{"use strict";Object.defineProperty(Upt,"__esModule",{value:!0});Upt.Context=void 0;var pQn=wt("fs"),P6o=wt("os"),Ohr=class{constructor(){var t,r,n;if(this.payload={},process.env.GITHUB_EVENT_PATH)if((0,pQn.existsSync)(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse((0,pQn.readFileSync)(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{let a=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${a} does not exist${P6o.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10),this.apiUrl=(t=process.env.GITHUB_API_URL)!==null&&t!==void 0?t:"https://api.github.com",this.serverUrl=(r=process.env.GITHUB_SERVER_URL)!==null&&r!==void 0?r:"https://github.com",this.graphqlUrl=(n=process.env.GITHUB_GRAPHQL_URL)!==null&&n!==void 0?n:"https://api.github.com/graphql"}get issue(){let t=this.payload;return Object.assign(Object.assign({},this.repo),{number:(t.issue||t.pull_request||t).number})}get repo(){if(process.env.GITHUB_REPOSITORY){let[t,r]=process.env.GITHUB_REPOSITORY.split("/");return{owner:t,repo:r}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}};Upt.Context=Ohr});var IQn=H(_Be=>{"use strict";Object.defineProperty(_Be,"__esModule",{value:!0});_Be.checkBypass=_Be.getProxyUrl=void 0;function W6o(e){let t=e.protocol==="https:";if(fQn(e))return;let r=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY;if(r)try{return new Kpt(r)}catch{if(!r.startsWith("http://")&&!r.startsWith("https://"))return new Kpt(`http://${r}`)}else return}_Be.getProxyUrl=W6o;function fQn(e){if(!e.hostname)return!1;let t=e.hostname;if(O6o(t))return!0;let r=process.env.no_proxy||process.env.NO_PROXY||"";if(!r)return!1;let n;e.port?n=Number(e.port):e.protocol==="http:"?n=80:e.protocol==="https:"&&(n=443);let a=[e.hostname.toUpperCase()];typeof n=="number"&&a.push(`${a[0]}:${n}`);for(let o of r.split(",").map(l=>l.trim().toUpperCase()).filter(l=>l))if(o==="*"||a.some(l=>l===o||l.endsWith(`.${o}`)||o.startsWith(".")&&l.endsWith(`${o}`)))return!0;return!1}_Be.checkBypass=fQn;function O6o(e){let t=e.toLowerCase();return t==="localhost"||t.startsWith("127.")||t.startsWith("[::1]")||t.startsWith("[0:0:0:0:0:0:0:1]")}var Kpt=class extends URL{constructor(t,r){super(t,r),this._decodedUsername=decodeURIComponent(super.username),this._decodedPassword=decodeURIComponent(super.password)}get username(){return this._decodedUsername}get password(){return this._decodedPassword}}});var _Qn=H(yBe=>{"use strict";var Wnu=wt("net"),M6o=wt("tls"),Hhr=wt("http"),hQn=wt("https"),H6o=wt("events"),Onu=wt("assert"),Y6o=wt("util");yBe.httpOverHttp=Q6o;yBe.httpsOverHttp=X6o;yBe.httpOverHttps=J6o;yBe.httpsOverHttps=U6o;function Q6o(e){var t=new E$(e);return t.request=Hhr.request,t}function X6o(e){var t=new E$(e);return t.request=Hhr.request,t.createSocket=mQn,t.defaultPort=443,t}function J6o(e){var t=new E$(e);return t.request=hQn.request,t}function U6o(e){var t=new E$(e);return t.request=hQn.request,t.createSocket=mQn,t.defaultPort=443,t}function E$(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||Hhr.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(n,a,o,l){for(var A=CQn(a,o,l),f=0,I=t.requests.length;f=this.maxSockets){o.requests.push(l);return}o.createSocket(l,function(A){A.on("free",f),A.on("close",I),A.on("agentRemove",I),t.onSocket(A);function f(){o.emit("free",A,l)}function I(C){o.removeSocket(A),A.removeListener("free",f),A.removeListener("close",I),A.removeListener("agentRemove",I)}})};E$.prototype.createSocket=function(t,r){var n=this,a={};n.sockets.push(a);var o=Yhr({},n.proxyOptions,{method:"CONNECT",path:t.host+":"+t.port,agent:!1,headers:{host:t.host+":"+t.port}});t.localAddress&&(o.localAddress=t.localAddress),o.proxyAuth&&(o.headers=o.headers||{},o.headers["Proxy-Authorization"]="Basic "+new Buffer(o.proxyAuth).toString("base64")),Hoe("making CONNECT request");var l=n.request(o);l.useChunkedEncodingByDefault=!1,l.once("response",A),l.once("upgrade",f),l.once("connect",I),l.once("error",C),l.end();function A(b){b.upgrade=!0}function f(b,E,N){process.nextTick(function(){I(b,E,N)})}function I(b,E,N){if(l.removeAllListeners(),E.removeAllListeners(),b.statusCode!==200){Hoe("tunneling socket could not be established, statusCode=%d",b.statusCode),E.destroy();var B=new Error("tunneling socket could not be established, statusCode="+b.statusCode);B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}if(N.length>0){Hoe("got illegal response body from proxy"),E.destroy();var B=new Error("got illegal response body from proxy");B.code="ECONNRESET",t.request.emit("error",B),n.removeSocket(a);return}return Hoe("tunneling connection has established"),n.sockets[n.sockets.indexOf(a)]=E,r(E)}function C(b){l.removeAllListeners(),Hoe(`tunneling socket could not be established, cause=%s +`,b.message,b.stack);var E=new Error("tunneling socket could not be established, cause="+b.message);E.code="ECONNRESET",t.request.emit("error",E),n.removeSocket(a)}};E$.prototype.removeSocket=function(t){var r=this.sockets.indexOf(t);if(r!==-1){this.sockets.splice(r,1);var n=this.requests.shift();n&&this.createSocket(n,function(a){n.request.onSocket(a)})}};function mQn(e,t){var r=this;E$.prototype.createSocket.call(r,e,function(n){var a=e.request.getHeader("host"),o=Yhr({},r.options,{socket:n,servername:a?a.replace(/:.*$/,""):e.host}),l=M6o.connect(0,o);r.sockets[r.sockets.indexOf(n)]=l,t(l)})}function CQn(e,t,r){return typeof e=="string"?{host:e,port:t,localAddress:r}:e}function Yhr(e){for(var t=1,r=arguments.length;t{yQn.exports=_Qn()});var GE=H((Ynu,EQn)=>{EQn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kHeadersList:Symbol("headers list"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kHTTP2BuildRequest:Symbol("http2 build request"),kHTTP1BuildRequest:Symbol("http1 build request"),kHTTP2CopyHeaders:Symbol("http2 copy headers"),kHTTPConnVersion:Symbol("http connection version"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable")}});var Ub=H((Qnu,SQn)=>{"use strict";var qB=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},Xhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},Jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},Uhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},Khr=class e extends qB{constructor(t,r,n,a){super(t),Error.captureStackTrace(this,e),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},jhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},zhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},qhr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$hr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},emr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},tmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},rmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},nmr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},imr=class e extends qB{constructor(t,r){super(t),Error.captureStackTrace(this,e),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},jpt=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},smr=class extends qB{constructor(t){super(t),Error.captureStackTrace(this,jpt),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},omr=class e extends Error{constructor(t,r,n){super(t),Error.captureStackTrace(this,e),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},amr=class e extends qB{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},cmr=class e extends qB{constructor(t,r,{headers:n,data:a}){super(t),Error.captureStackTrace(this,e),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}};SQn.exports={HTTPParserError:omr,UndiciError:qB,HeadersTimeoutError:Xhr,HeadersOverflowError:Jhr,BodyTimeoutError:Uhr,RequestContentLengthMismatchError:emr,ConnectTimeoutError:Qhr,ResponseStatusCodeError:Khr,InvalidArgumentError:jhr,InvalidReturnValueError:zhr,RequestAbortedError:qhr,ClientDestroyedError:rmr,ClientClosedError:nmr,InformationalError:$hr,SocketError:imr,NotSupportedError:jpt,ResponseContentLengthMismatchError:tmr,BalancedPoolMissingUpstreamError:smr,ResponseExceededMaxSizeError:amr,RequestRetryError:cmr}});var BQn=H((Xnu,vQn)=>{"use strict";var zpt={},lmr=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var NQn=wt("assert"),{kDestroyed:DQn,kBodyUsed:wQn}=GE(),{IncomingMessage:K6o}=wt("http"),bBe=wt("stream"),j6o=wt("net"),{InvalidArgumentError:Tk}=Ub(),{Blob:TQn}=wt("buffer"),qpt=wt("util"),{stringify:z6o}=wt("querystring"),{headerNameLowerCasedRecord:q6o}=BQn(),[umr,RQn]=process.versions.node.split(".").map(e=>Number(e));function $6o(){}function gmr(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function kQn(e){return TQn&&e instanceof TQn||e&&typeof e=="object"&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&/^(Blob|File)$/.test(e[Symbol.toStringTag])}function e7o(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=z6o(t);return r&&(e+="?"+r),e}function xQn(e){if(typeof e=="string"){if(e=new URL(e),!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new Tk("Invalid URL: The URL argument must be a non-null object.");if(!/^https?:/.test(e.origin||e.protocol))throw new Tk("Invalid URL protocol: the URL must start with `http:` or `https:`.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&!Number.isFinite(parseInt(e.port)))throw new Tk("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new Tk("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new Tk("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new Tk("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new Tk("Invalid URL origin: the origin must be a string or null/undefined.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol}//${e.hostname}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;r.endsWith("/")&&(r=r.substring(0,r.length-1)),n&&!n.startsWith("/")&&(n=`/${n}`),e=new URL(r+n)}return e}function t7o(e){if(e=xQn(e),e.pathname!=="/"||e.search||e.hash)throw new Tk("invalid url");return e}function r7o(e){if(e[0]==="["){let r=e.indexOf("]");return NQn(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function n7o(e){if(!e)return null;NQn.strictEqual(typeof e,"string");let t=r7o(e);return j6o.isIP(t)?"":t}function i7o(e){return JSON.parse(JSON.stringify(e))}function s7o(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function o7o(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function a7o(e){if(e==null)return 0;if(gmr(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(kQn(e))return e.size!=null?e.size:null;if(FQn(e))return e.byteLength}return null}function Amr(e){return!e||!!(e.destroyed||e[DQn])}function GQn(e){let t=e&&e._readableState;return Amr(e)&&t&&!t.endEmitted}function c7o(e,t){e==null||!gmr(e)||Amr(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===K6o&&(e.socket=null),e.destroy(t)):t&&process.nextTick((r,n)=>{r.emit("error",n)},e,t),e.destroyed!==!0&&(e[DQn]=!0))}var l7o=/timeout=(\d+)/;function u7o(e){let t=e.toString().match(l7o);return t?parseInt(t[1],10)*1e3:null}function g7o(e){return q6o[e]||e.toLowerCase()}function A7o(e,t={}){if(!Array.isArray(e))return e;for(let r=0;ro.toString("utf8")):t[n]=e[r+1].toString("utf8")}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function d7o(e){let t=[],r=!1,n=-1;for(let a=0;a{r.close()});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()}},0)}function y7o(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function b7o(e){if(e){if(typeof e.throwIfAborted=="function")e.throwIfAborted();else if(e.aborted){let t=new Error("The operation was aborted");throw t.name="AbortError",t}}}function E7o(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var S7o=!!String.prototype.toWellFormed;function v7o(e){return S7o?`${e}`.toWellFormed():qpt.toUSVString?qpt.toUSVString(e):`${e}`}function B7o(e){if(e==null||e==="")return{start:0,end:null,size:null};let t=e?e.match(/^bytes (\d+)-(\d+)\/(\d+)?$/):null;return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]?parseInt(t[3]):null}:null}var ZQn=Object.create(null);ZQn.enumerable=!0;LQn.exports={kEnumerableProperty:ZQn,nop:$6o,isDisturbed:f7o,isErrored:I7o,isReadable:h7o,toUSVString:v7o,isReadableAborted:GQn,isBlobLike:kQn,parseOrigin:t7o,parseURL:xQn,getServerName:n7o,isStream:gmr,isIterable:o7o,isAsyncIterable:s7o,isDestroyed:Amr,headerNameToString:g7o,parseRawHeaders:d7o,parseHeaders:A7o,parseKeepAliveTimeout:u7o,destroy:c7o,bodyLength:a7o,deepClone:i7o,ReadableStreamFrom:_7o,isBuffer:FQn,validateHandler:p7o,getSocketInfo:m7o,isFormDataLike:y7o,buildURL:e7o,throwIfAborted:b7o,addAbortListener:E7o,parseRangeHeader:B7o,nodeMajor:umr,nodeMinor:RQn,nodeHasAutoSelectFamily:umr>18||umr===18&&RQn>=13,safeHTTPMethods:["GET","HEAD","OPTIONS","TRACE"]}});var WQn=H((Unu,PQn)=>{"use strict";var dmr=Date.now(),Yoe,Qoe=[];function w7o(){dmr=Date.now();let e=Qoe.length,t=0;for(;t0&&dmr>=r.state&&(r.state=-1,r.callback(r.opaque)),r.state===-1?(r.state=-2,t!==e-1?Qoe[t]=Qoe.pop():Qoe.pop(),e-=1):t+=1}Qoe.length>0&&VQn()}function VQn(){Yoe&&Yoe.refresh?Yoe.refresh():(clearTimeout(Yoe),Yoe=setTimeout(w7o,1e3),Yoe.unref&&Yoe.unref())}var $pt=class{constructor(t,r,n){this.callback=t,this.delay=r,this.opaque=n,this.state=-2,this.refresh()}refresh(){this.state===-2&&(Qoe.push(this),(!Yoe||Qoe.length===1)&&VQn()),this.state=0}clear(){this.state=-1}};PQn.exports={setTimeout(e,t,r){return t<1e3?setTimeout(e,t,r):new $pt(e,t,r)},clearTimeout(e){e instanceof $pt?e.clear():clearTimeout(e)}}});var pmr=H((Knu,OQn)=>{"use strict";var T7o=wt("node:events").EventEmitter,R7o=wt("node:util").inherits;function GIe(e){if(typeof e=="string"&&(e=Buffer.from(e)),!Buffer.isBuffer(e))throw new TypeError("The needle has to be a String or a Buffer.");let t=e.length;if(t===0)throw new Error("The needle cannot be an empty String/Buffer.");if(t>256)throw new Error("The needle cannot have a length bigger than 256.");this.maxMatches=1/0,this.matches=0,this._occ=new Array(256).fill(t),this._lookbehind_size=0,this._needle=e,this._bufpos=0,this._lookbehind=Buffer.alloc(t);for(var r=0;r=0)this.emit("info",!1,this._lookbehind,0,this._lookbehind_size),this._lookbehind_size=0;else{let A=this._lookbehind_size+o;return A>0&&this.emit("info",!1,this._lookbehind,0,A),this._lookbehind.copy(this._lookbehind,0,A,this._lookbehind_size-A),this._lookbehind_size-=A,e.copy(this._lookbehind,this._lookbehind_size),this._lookbehind_size+=t,this._bufpos=t,t}}if(o+=(o>=0)*this._bufpos,e.indexOf(r,o)!==-1)return o=e.indexOf(r,o),++this.matches,o>0?this.emit("info",!0,e,this._bufpos,o):this.emit("info",!0),this._bufpos=o+n;for(o=t-n;o0&&this.emit("info",!1,e,this._bufpos,o{"use strict";var N7o=wt("node:util").inherits,MQn=wt("node:stream").Readable;function fmr(e){MQn.call(this,e)}N7o(fmr,MQn);fmr.prototype._read=function(e){};HQn.exports=fmr});var eft=H((znu,QQn)=>{"use strict";QQn.exports=function(t,r,n){if(!t||t[r]===void 0||t[r]===null)return n;if(typeof t[r]!="number"||isNaN(t[r]))throw new TypeError("Limit "+r+" is not a valid number");return t[r]}});var KQn=H((qnu,UQn)=>{"use strict";var JQn=wt("node:events").EventEmitter,D7o=wt("node:util").inherits,XQn=eft(),k7o=pmr(),x7o=Buffer.from(`\r \r -`),G7o=/\r\n/g,F7o=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function EBe(e){JQn.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=XQn(e,"maxHeaderPairs",2e3),this.maxHeaderSize=XQn(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k7o(x7o),this.ss.on("info",function(r,n,a,o){n&&!t.maxed&&(t.nread+o-a>=t.maxHeaderSize?(o=t.maxHeaderSize-t.nread+a,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=o-a,t.buffer+=n.toString("binary",a,o)),r&&t._finish()})}D7o(EBe,JQn);EBe.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};EBe.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};EBe.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};EBe.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(G7o),t=e.length,r,n;for(var a=0;a{"use strict";var Imr=wt("node:stream").Writable,Z7o=wt("node:util").inherits,L7o=pmr(),jQn=YQn(),V7o=KQn(),P7o=45,W7o=Buffer.from("-"),O7o=Buffer.from(`\r +`),G7o=/\r\n/g,F7o=/^([^:]+):[ \t]?([\x00-\xFF]+)?$/;function EBe(e){JQn.call(this),e=e||{};let t=this;this.nread=0,this.maxed=!1,this.npairs=0,this.maxHeaderPairs=XQn(e,"maxHeaderPairs",2e3),this.maxHeaderSize=XQn(e,"maxHeaderSize",80*1024),this.buffer="",this.header={},this.finished=!1,this.ss=new k7o(x7o),this.ss.on("info",function(r,n,a,o){n&&!t.maxed&&(t.nread+o-a>=t.maxHeaderSize?(o=t.maxHeaderSize-t.nread+a,t.nread=t.maxHeaderSize,t.maxed=!0):t.nread+=o-a,t.buffer+=n.toString("binary",a,o)),r&&t._finish()})}D7o(EBe,JQn);EBe.prototype.push=function(e){let t=this.ss.push(e);if(this.finished)return t};EBe.prototype.reset=function(){this.finished=!1,this.buffer="",this.header={},this.ss.reset()};EBe.prototype._finish=function(){this.buffer&&this._parseHeader(),this.ss.matches=this.ss.maxMatches;let e=this.header;this.header={},this.buffer="",this.finished=!0,this.nread=this.npairs=0,this.maxed=!1,this.emit("header",e)};EBe.prototype._parseHeader=function(){if(this.npairs===this.maxHeaderPairs)return;let e=this.buffer.split(G7o),t=e.length,r,n;for(var a=0;a{"use strict";var Imr=wt("node:stream").Writable,Z7o=wt("node:util").inherits,L7o=pmr(),jQn=YQn(),V7o=KQn(),P7o=45,W7o=Buffer.from("-"),O7o=Buffer.from(`\r `),M7o=function(){};function BX(e){if(!(this instanceof BX))return new BX(e);if(Imr.call(this,e),!e||!e.headerFirst&&typeof e.boundary!="string")throw new TypeError("Boundary required");typeof e.boundary=="string"?this.setBoundary(e.boundary):this._bparser=void 0,this._headerFirst=e.headerFirst,this._dashes=0,this._parts=0,this._finished=!1,this._realFinish=!1,this._isPreamble=!0,this._justMatched=!1,this._firstWrite=!0,this._inHeader=!0,this._part=void 0,this._cb=void 0,this._ignoreData=!1,this._partOpts={highWaterMark:e.partHwm},this._pause=!1;let t=this;this._hparser=new V7o(e),this._hparser.on("header",function(r){t._inHeader=!1,t._part.emit("header",r)})}Z7o(BX,Imr);BX.prototype.emit=function(e){if(e==="finish"&&!this._realFinish){if(!this._finished){let t=this;process.nextTick(function(){if(t.emit("error",new Error("Unexpected end of multipart data")),t._part&&!t._ignoreData){let r=t._isPreamble?"Preamble":"Part";t._part.emit("error",new Error(r+" terminated early due to unexpected end of multipart data")),t._part.push(null),process.nextTick(function(){t._realFinish=!0,t.emit("finish"),t._realFinish=!1});return}t._realFinish=!0,t.emit("finish"),t._realFinish=!1})}}else Imr.prototype.emit.apply(this,arguments)};BX.prototype._write=function(e,t,r){if(!this._hparser&&!this._bparser)return r();if(this._headerFirst&&this._isPreamble){this._part||(this._part=new jQn(this._partOpts),this.listenerCount("preamble")!==0?this.emit("preamble",this._part):this._ignore());let n=this._hparser.push(e);if(!this._inHeader&&n!==void 0&&n{"use strict";var qQn=new TextDecoder("utf-8"),$Qn=new Map([["utf-8",qQn],["utf8",qQn]]);function H7o(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return fHe.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return fHe.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return fHe.utf16le;case"base64":return fHe.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return fHe.other.bind(e)}}var fHe={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),$Qn.has(mmr.toString()))try{return $Qn.get(mmr).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y7o(e,t,r){return e&&H7o(r)(e,t)}eXn.exports=Y7o});var _mr=H(($nu,sXn)=>{"use strict";var rft=tft(),tXn=/%[a-fA-F0-9][a-fA-F0-9]/g,Q7o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` +--`+e),this._bparser.on("info",function(r,n,a,o){t._oninfo(r,n,a,o)})};BX.prototype._ignore=function(){this._part&&!this._ignoreData&&(this._ignoreData=!0,this._part.on("error",M7o),this._part.resume())};BX.prototype._oninfo=function(e,t,r,n){let a,o=this,l=0,A,f=!0;if(!this._part&&this._justMatched&&t){for(;this._dashes<2&&r+l{"use strict";var qQn=new TextDecoder("utf-8"),$Qn=new Map([["utf-8",qQn],["utf8",qQn]]);function H7o(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return fHe.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return fHe.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return fHe.utf16le;case"base64":return fHe.base64;default:if(t===void 0){t=!0,e=e.toLowerCase();continue}return fHe.other.bind(e)}}var fHe={utf8:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.utf8Slice(0,e.length)),latin1:(e,t)=>e.length===0?"":typeof e=="string"?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.ucs2Slice(0,e.length)),base64:(e,t)=>e.length===0?"":(typeof e=="string"&&(e=Buffer.from(e,t)),e.base64Slice(0,e.length)),other:(e,t)=>{if(e.length===0)return"";if(typeof e=="string"&&(e=Buffer.from(e,t)),$Qn.has(mmr.toString()))try{return $Qn.get(mmr).decode(e)}catch{}return typeof e=="string"?e:e.toString()}};function Y7o(e,t,r){return e&&H7o(r)(e,t)}eXn.exports=Y7o});var _mr=H((eiu,sXn)=>{"use strict";var rft=tft(),tXn=/%[a-fA-F0-9][a-fA-F0-9]/g,Q7o={"%00":"\0","%01":"","%02":"","%03":"","%04":"","%05":"","%06":"","%07":"\x07","%08":"\b","%09":" ","%0a":` `,"%0A":` -`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function rXn(e){return Q7o[e]}var nft=0,nXn=1,Cmr=2,iXn=3;function X7o(e){let t=[],r=nft,n="",a=!1,o=!1,l=0,A="",f=e.length;for(var I=0;I{"use strict";oXn.exports=function(t){if(typeof t!="string")return"";for(var r=t.length-1;r>=0;--r)switch(t.charCodeAt(r)){case 47:case 92:return t=t.slice(r+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var gXn=H((tiu,uXn)=>{"use strict";var{Readable:lXn}=wt("node:stream"),{inherits:J7o}=wt("node:util"),U7o=hmr(),cXn=_mr(),K7o=tft(),j7o=aXn(),FIe=eft(),z7o=/^boundary$/i,q7o=/^form-data$/i,$7o=/^charset$/i,ezo=/^filename$/i,tzo=/^name$/i;ift.detect=/^multipart\/form-data/i;function ift(e,t){let r,n,a=this,o,l=t.limits,A=t.isPartAFile||((k,et,ct)=>et==="application/octet-stream"||ct!==void 0),f=t.parsedConType||[],I=t.defCharset||"utf8",C=t.preservePath,b={highWaterMark:t.fileHwm};for(r=0,n=f.length;rX)return a.parser.removeListener("part",k),a.parser.on("part",SBe),e.hitPartsLimit=!0,e.emit("partsLimit"),SBe(et);if(be){let ct=be;ct.emit("end"),ct.removeAllListeners("end")}et.on("header",function(ct){let Me,je,St,At,Yt,Tr,Nr=0;if(ct["content-type"]&&(St=cXn(ct["content-type"][0]),St[0])){for(Me=St[0].toLowerCase(),r=0,n=St.length;rB){let qt=B-Nr+Zr.length;qt>0&&xt.push(Zr.slice(0,qt)),xt.truncated=!0,xt.bytesRead=B,et.removeAllListeners("data"),xt.emit("limit");return}else xt.push(Zr)||(a._pause=!0);xt.bytesRead=Nr},vt=function(){de=void 0,xt.push(null)}}else{if(fe===Q)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),SBe(et);++fe,++ue;let xt="",Zr=!1;be=et,er=function(qt){if((Nr+=qt.length)>N){let Xt=N-(Nr-qt.length);xt+=qt.toString("binary",0,Xt),Zr=!0,et.removeAllListeners("data")}else xt+=qt.toString("binary")},vt=function(){be=void 0,xt.length&&(xt=K7o(xt,"binary",At)),e.emit("field",je,xt,!1,Zr,Yt,Me),--ue,E()}}et._readableState.sync=!1,et.on("data",er),et.on("end",vt)}).on("error",function(ct){de&&de.emit("error",ct)})}).on("error",function(k){e.emit("error",k)}).on("finish",function(){Se=!0,E()})}ift.prototype.write=function(e,t){let r=this.parser.write(e);r&&!this._pause?t():(this._needDrain=!r,this._cb=t)};ift.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function SBe(e){e.resume()}function ymr(e){lXn.call(this,e),this.bytesRead=0,this.truncated=!1}J7o(ymr,lXn);ymr.prototype._read=function(e){};uXn.exports=ift});var dXn=H((riu,AXn)=>{"use strict";var rzo=/\+/g,nzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function bmr(){this.buffer=void 0}bmr.prototype.write=function(e){e=e.replace(rzo," ");let t="",r=0,n=0,a=e.length;for(;rn&&(t+=e.substring(n,r),n=r),this.buffer="",++n);return n{"use strict";var izo=dXn(),vBe=tft(),Emr=eft(),szo=/^charset$/i;sft.detect=/^application\/x-www-form-urlencoded/i;function sft(e,t){let r=t.limits,n=t.parsedConType;this.boy=e,this.fieldSizeLimit=Emr(r,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=Emr(r,"fieldNameSize",100),this.fieldsLimit=Emr(r,"fields",1/0);let a;for(var o=0,l=n.length;oo&&(this._key+=this.decoder.write(e.toString("binary",o,r))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),o=r+1;else if(n!==void 0){++this._fields;let A,f=this._keyTrunc;if(n>o?A=this._key+=this.decoder.write(e.toString("binary",o,n)):A=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),A.length&&this.boy.emit("field",vBe(A,"binary",this.charset),"",f,!1),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._key+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(oo&&(this._val+=this.decoder.write(e.toString("binary",o,n))),this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._val+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(o0?this.boy.emit("field",vBe(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};pXn.exports=sft});var mXn=H((iiu,IHe)=>{"use strict";var Smr=wt("node:stream").Writable,{inherits:ozo}=wt("node:util"),azo=hmr(),IXn=gXn(),hXn=fXn(),czo=_mr();function S$(e){if(!(this instanceof S$))return new S$(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...r}=e;this.opts={autoDestroy:!1,...r},Smr.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}ozo(S$,Smr);S$.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}Smr.prototype.emit.apply(this,arguments)};S$.prototype.getParserByHeaders=function(e){let t=czo(e["content-type"]),r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(IXn.detect.test(t[0]))return new IXn(this,r);if(hXn.detect.test(t[0]))return new hXn(this,r);throw new Error("Unsupported Content-Type.")};S$.prototype._write=function(e,t,r){this._parser.write(e,r)};IHe.exports=S$;IHe.exports.default=S$;IHe.exports.Busboy=S$;IHe.exports.Dicer=azo});var Xoe=H((siu,BXn)=>{"use strict";var{MessageChannel:lzo,receiveMessageOnPort:uzo}=wt("worker_threads"),CXn=["GET","HEAD","POST"],gzo=new Set(CXn),Azo=[101,204,205,304],_Xn=[301,302,303,307,308],dzo=new Set(_Xn),yXn=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],pzo=new Set(yXn),bXn=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],fzo=new Set(bXn),Izo=["follow","manual","error"],EXn=["GET","HEAD","OPTIONS","TRACE"],hzo=new Set(EXn),mzo=["navigate","same-origin","no-cors","cors"],Czo=["omit","same-origin","include"],_zo=["default","no-store","reload","no-cache","force-cache","only-if-cached"],yzo=["content-encoding","content-language","content-location","content-type","content-length"],bzo=["half"],SXn=["CONNECT","TRACE","TRACK"],Ezo=new Set(SXn),vXn=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Szo=new Set(vXn),vzo=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),BBe,Bzo=globalThis.structuredClone??function(t,r=void 0){if(arguments.length===0)throw new TypeError("missing argument");return BBe||(BBe=new lzo),BBe.port1.unref(),BBe.port2.unref(),BBe.port1.postMessage(t,r?.transfer),uzo(BBe.port2).message};BXn.exports={DOMException:vzo,structuredClone:Bzo,subresource:vXn,forbiddenMethods:SXn,requestBodyHeader:yzo,referrerPolicy:bXn,requestRedirect:Izo,requestMode:mzo,requestCredentials:Czo,requestCache:_zo,redirectStatus:_Xn,corsSafeListedMethods:CXn,nullBodyStatus:Azo,safeMethods:EXn,badPorts:yXn,requestDuplex:bzo,subresourceSet:Szo,badPortsSet:pzo,redirectStatusSet:dzo,corsSafeListedMethodsSet:gzo,safeMethodsSet:hzo,forbiddenMethodsSet:Ezo,referrerPolicySet:fzo}});var wBe=H((oiu,wXn)=>{"use strict";var vmr=Symbol.for("undici.globalOrigin.1");function wzo(){return globalThis[vmr]}function Tzo(e){if(e===void 0){Object.defineProperty(globalThis,vmr,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,vmr,{value:t,writable:!0,enumerable:!1,configurable:!1})}wXn.exports={getGlobalOrigin:wzo,setGlobalOrigin:Tzo}});var EM=H((aiu,FXn)=>{"use strict";var{redirectStatusSet:Rzo,referrerPolicySet:Nzo,badPortsSet:Dzo}=Xoe(),{getGlobalOrigin:kzo}=wBe(),{performance:xzo}=wt("perf_hooks"),{isBlobLike:Gzo,toUSVString:Fzo,ReadableStreamFrom:Zzo}=zC(),TBe=wt("assert"),{isUint8Array:Lzo}=wt("util/types"),TXn=[],oft;try{oft=wt("crypto");let e=["sha256","sha384","sha512"];TXn=oft.getHashes().filter(t=>e.includes(t))}catch{}function RXn(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function Vzo(e,t){if(!Rzo.has(e.status))return null;let r=e.headersList.get("location");return r!==null&&DXn(r)&&(r=new URL(r,RXn(e))),r&&!r.hash&&(r.hash=t),r}function mHe(e){return e.urlList[e.urlList.length-1]}function Pzo(e){let t=mHe(e);return GXn(t)&&Dzo.has(t.port)?"blocked":"allowed"}function Wzo(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Ozo(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}function Mzo(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function NXn(e){if(e.length===0)return!1;for(let t=0;t0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(Nzo.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function Qzo(){return"allowed"}function Xzo(){return"success"}function Jzo(){return"success"}function Uzo(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t)}function Kzo(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")t&&e.headersList.append("origin",t);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Tmr(e.origin)&&!Tmr(mHe(e))&&(t=null);break;case"same-origin":aft(e,mHe(e))||(t=null);break;default:}t&&e.headersList.append("origin",t)}}function jzo(e){return xzo.now()}function zzo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function qzo(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function $zo(e){return{referrerPolicy:e.referrerPolicy}}function eqo(e){let t=e.referrerPolicy;TBe(t);let r=null;if(e.referrer==="client"){let A=kzo();if(!A||A.origin==="null")return"no-referrer";r=new URL(A)}else e.referrer instanceof URL&&(r=e.referrer);let n=Bmr(r),a=Bmr(r,!0);n.toString().length>4096&&(n=a);let o=aft(e,n),l=hHe(n)&&!hHe(e.url);switch(t){case"origin":return a??Bmr(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=mHe(e);return aft(n,A)?n:hHe(n)&&!hHe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function Bmr(e,t){return TBe(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function hHe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function tqo(e,t){if(oft===void 0)return!0;let r=kXn(t);if(r==="no metadata"||r.length===0)return!0;let n=nqo(r),a=iqo(r,n);for(let o of a){let l=o.algo,A=o.hash,f=oft.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),sqo(f,A))return!0}return!1}var rqo=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function kXn(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=rqo.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();TXn.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function nqo(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function cqo(e){return e.controller.state==="aborted"}function lqo(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}var Rmr={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(Rmr,null);function uqo(e){return Rmr[e.toLowerCase()]??e}function gqo(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return TBe(typeof t=="string"),t}var Aqo=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function dqo(e,t,r){let n={index:0,kind:r,target:e},a={next(){if(Object.getPrototypeOf(this)!==a)throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let{index:o,kind:l,target:A}=n,f=A(),I=f.length;if(o>=I)return{value:void 0,done:!0};let C=f[o];return n.index=o+1,pqo(C,l)},[Symbol.toStringTag]:`${t} Iterator`};return Object.setPrototypeOf(a,Aqo),Object.setPrototypeOf({},a)}function pqo(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:!1}}async function fqo(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{let l=await xXn(o);n(l)}catch(l){a(l)}}var wmr=globalThis.ReadableStream;function Iqo(e){return wmr||(wmr=wt("stream/web").ReadableStream),e instanceof wmr||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var hqo=65535;function mqo(e){return e.lengtht+String.fromCharCode(r),"")}function Cqo(e){try{e.close()}catch(t){if(!t.message.includes("Controller is already closed"))throw t}}function _qo(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));FXn.exports={isAborted:cqo,isCancelled:lqo,createDeferredPromise:aqo,ReadableStreamFrom:Zzo,toUSVString:Fzo,tryUpgradeRequestToAPotentiallyTrustworthyURL:oqo,coarsenedSharedCurrentTime:jzo,determineRequestsReferrer:eqo,makePolicyContainer:qzo,clonePolicyContainer:$zo,appendFetchMetadata:Uzo,appendRequestOriginHeader:Kzo,TAOCheck:Jzo,corsCheck:Xzo,crossOriginResourcePolicyCheck:Qzo,createOpaqueTimingInfo:zzo,setRequestReferrerPolicyOnRedirect:Yzo,isValidHTTPToken:NXn,requestBadPort:Pzo,requestCurrentURL:mHe,responseURL:RXn,responseLocationURL:Vzo,isBlobLike:Gzo,isURLPotentiallyTrustworthy:hHe,isValidReasonPhrase:Ozo,sameOrigin:aft,normalizeMethod:uqo,serializeJavascriptValueToJSONString:gqo,makeIterator:dqo,isValidHeaderName:Hzo,isValidHeaderValue:DXn,hasOwn:bqo,isErrorLike:Wzo,fullyReadBody:fqo,bytesMatch:tqo,isReadableStreamLike:Iqo,readableStreamClose:Cqo,isomorphicEncode:_qo,isomorphicDecode:mqo,urlIsLocal:yqo,urlHasHttpsScheme:Tmr,urlIsHttpHttpsScheme:GXn,readAllBytes:xXn,normalizeMethodRecord:Rmr,parseMetadata:kXn}});var v$=H((ciu,ZXn)=>{"use strict";ZXn.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var xZ=H((liu,VXn)=>{"use strict";var{types:p8}=wt("util"),{hasOwn:LXn,toUSVString:Eqo}=EM(),pg={};pg.converters={};pg.util={};pg.errors={};pg.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};pg.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return pg.errors.exception({header:e.prefix,message:r})};pg.errors.invalidArgument=function(e){return pg.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};pg.brandCheck=function(e,t,r=void 0){if(r?.strict!==!1&&!(e instanceof t))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]};pg.argumentLengthCheck=function({length:e},t,r){if(ea)throw pg.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=pg.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};pg.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};pg.sequenceConverter=function(e){return t=>{if(pg.util.Type(t)!=="Object")throw pg.errors.exception({header:"Sequence",message:`Value of type ${pg.util.Type(t)} is not an Object.`});let r=t?.[Symbol.iterator]?.(),n=[];if(r===void 0||typeof r.next!="function")throw pg.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:a,value:o}=r.next();if(a)break;n.push(e(o))}return n}};pg.recordConverter=function(e,t){return r=>{if(pg.util.Type(r)!=="Object")throw pg.errors.exception({header:"Record",message:`Value of type ${pg.util.Type(r)} is not an Object.`});let n={};if(!p8.isProxy(r)){let o=Object.keys(r);for(let l of o){let A=e(l),f=t(r[l]);n[A]=f}return n}let a=Reflect.ownKeys(r);for(let o of a)if(Reflect.getOwnPropertyDescriptor(r,o)?.enumerable){let A=e(o),f=t(r[o]);n[A]=f}return n}};pg.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==!1&&!(t instanceof e))throw pg.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`});return t}};pg.dictionaryConverter=function(e){return t=>{let r=pg.util.Type(t),n={};if(r==="Null"||r==="Undefined")return n;if(r!=="Object")throw pg.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:o,defaultValue:l,required:A,converter:f}=a;if(A===!0&&!LXn(t,o))throw pg.errors.exception({header:"Dictionary",message:`Missing required key "${o}".`});let I=t[o],C=LXn(a,"defaultValue");if(C&&I!==null&&(I=I??l),A||C||I!==void 0){if(I=f(I),a.allowedValues&&!a.allowedValues.includes(I))throw pg.errors.exception({header:"Dictionary",message:`${I} is not an accepted type. Expected one of ${a.allowedValues.join(", ")}.`});n[o]=I}}return n}};pg.nullableConverter=function(e){return t=>t===null?t:e(t)};pg.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};pg.converters.ByteString=function(e){let t=pg.converters.DOMString(e);for(let r=0;r255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${r} has a value of ${t.charCodeAt(r)} which is greater than 255.`);return t};pg.converters.USVString=Eqo;pg.converters.boolean=function(e){return!!e};pg.converters.any=function(e){return e};pg.converters["long long"]=function(e){return pg.util.ConvertToInt(e,64,"signed")};pg.converters["unsigned long long"]=function(e){return pg.util.ConvertToInt(e,64,"unsigned")};pg.converters["unsigned long"]=function(e){return pg.util.ConvertToInt(e,32,"unsigned")};pg.converters["unsigned short"]=function(e,t){return pg.util.ConvertToInt(e,16,"unsigned",t)};pg.converters.ArrayBuffer=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isAnyArrayBuffer(e))throw pg.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.TypedArray=function(e,t,r={}){if(pg.util.Type(e)!=="Object"||!p8.isTypedArray(e)||e.constructor.name!==t.name)throw pg.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]});if(r.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.DataView=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isDataView(e))throw pg.errors.exception({header:"DataView",message:"Object is not a DataView."});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.BufferSource=function(e,t={}){if(p8.isAnyArrayBuffer(e))return pg.converters.ArrayBuffer(e,t);if(p8.isTypedArray(e))return pg.converters.TypedArray(e,e.constructor);if(p8.isDataView(e))return pg.converters.DataView(e,t);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};pg.converters["sequence"]=pg.sequenceConverter(pg.converters.ByteString);pg.converters["sequence>"]=pg.sequenceConverter(pg.converters["sequence"]);pg.converters["record"]=pg.recordConverter(pg.converters.ByteString,pg.converters.ByteString);VXn.exports={webidl:pg}});var wX=H((uiu,YXn)=>{var lft=wt("assert"),{atob:Sqo}=wt("buffer"),{isomorphicDecode:vqo}=EM(),Bqo=new TextEncoder,cft=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,wqo=/(\u000A|\u000D|\u0009|\u0020)/,Tqo=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Rqo(e){lft(e.protocol==="data:");let t=OXn(e,!0);t=t.slice(5);let r={position:0},n=RBe(",",t,r),a=n.length;if(n=xqo(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=MXn(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=vqo(l);if(l=Dqo(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=Dmr(n);return A==="failure"&&(A=Dmr("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function OXn(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function uft(e,t,r){let n="";for(;r.positione.length)return"failure";t.position++;let n=RBe(";",e,t);if(n=Nmr(n,!1,!0),n.length===0||!cft.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionwqo.test(I),e,t);let A=uft(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=HXn(e,t,!0),RBe(";",e,t);else if(f=RBe(";",e,t),f=Nmr(f,!1,!0),f.length===0)continue;A.length!==0&&cft.test(A)&&(f.length===0||Tqo.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Dqo(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let t=Sqo(e),r=new Uint8Array(t.length);for(let n=0;nl!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{lft(o==='"');break}}return r?a:e.slice(n,t.position)}function kqo(e){lft(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",cft.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function PXn(e){return e==="\r"||e===` +`,"%0b":"\v","%0B":"\v","%0c":"\f","%0C":"\f","%0d":"\r","%0D":"\r","%0e":"","%0E":"","%0f":"","%0F":"","%10":"","%11":"","%12":"","%13":"","%14":"","%15":"","%16":"","%17":"","%18":"","%19":"","%1a":"","%1A":"","%1b":"\x1B","%1B":"\x1B","%1c":"","%1C":"","%1d":"","%1D":"","%1e":"","%1E":"","%1f":"","%1F":"","%20":" ","%21":"!","%22":'"',"%23":"#","%24":"$","%25":"%","%26":"&","%27":"'","%28":"(","%29":")","%2a":"*","%2A":"*","%2b":"+","%2B":"+","%2c":",","%2C":",","%2d":"-","%2D":"-","%2e":".","%2E":".","%2f":"/","%2F":"/","%30":"0","%31":"1","%32":"2","%33":"3","%34":"4","%35":"5","%36":"6","%37":"7","%38":"8","%39":"9","%3a":":","%3A":":","%3b":";","%3B":";","%3c":"<","%3C":"<","%3d":"=","%3D":"=","%3e":">","%3E":">","%3f":"?","%3F":"?","%40":"@","%41":"A","%42":"B","%43":"C","%44":"D","%45":"E","%46":"F","%47":"G","%48":"H","%49":"I","%4a":"J","%4A":"J","%4b":"K","%4B":"K","%4c":"L","%4C":"L","%4d":"M","%4D":"M","%4e":"N","%4E":"N","%4f":"O","%4F":"O","%50":"P","%51":"Q","%52":"R","%53":"S","%54":"T","%55":"U","%56":"V","%57":"W","%58":"X","%59":"Y","%5a":"Z","%5A":"Z","%5b":"[","%5B":"[","%5c":"\\","%5C":"\\","%5d":"]","%5D":"]","%5e":"^","%5E":"^","%5f":"_","%5F":"_","%60":"`","%61":"a","%62":"b","%63":"c","%64":"d","%65":"e","%66":"f","%67":"g","%68":"h","%69":"i","%6a":"j","%6A":"j","%6b":"k","%6B":"k","%6c":"l","%6C":"l","%6d":"m","%6D":"m","%6e":"n","%6E":"n","%6f":"o","%6F":"o","%70":"p","%71":"q","%72":"r","%73":"s","%74":"t","%75":"u","%76":"v","%77":"w","%78":"x","%79":"y","%7a":"z","%7A":"z","%7b":"{","%7B":"{","%7c":"|","%7C":"|","%7d":"}","%7D":"}","%7e":"~","%7E":"~","%7f":"\x7F","%7F":"\x7F","%80":"\x80","%81":"\x81","%82":"\x82","%83":"\x83","%84":"\x84","%85":"\x85","%86":"\x86","%87":"\x87","%88":"\x88","%89":"\x89","%8a":"\x8A","%8A":"\x8A","%8b":"\x8B","%8B":"\x8B","%8c":"\x8C","%8C":"\x8C","%8d":"\x8D","%8D":"\x8D","%8e":"\x8E","%8E":"\x8E","%8f":"\x8F","%8F":"\x8F","%90":"\x90","%91":"\x91","%92":"\x92","%93":"\x93","%94":"\x94","%95":"\x95","%96":"\x96","%97":"\x97","%98":"\x98","%99":"\x99","%9a":"\x9A","%9A":"\x9A","%9b":"\x9B","%9B":"\x9B","%9c":"\x9C","%9C":"\x9C","%9d":"\x9D","%9D":"\x9D","%9e":"\x9E","%9E":"\x9E","%9f":"\x9F","%9F":"\x9F","%a0":"\xA0","%A0":"\xA0","%a1":"\xA1","%A1":"\xA1","%a2":"\xA2","%A2":"\xA2","%a3":"\xA3","%A3":"\xA3","%a4":"\xA4","%A4":"\xA4","%a5":"\xA5","%A5":"\xA5","%a6":"\xA6","%A6":"\xA6","%a7":"\xA7","%A7":"\xA7","%a8":"\xA8","%A8":"\xA8","%a9":"\xA9","%A9":"\xA9","%aa":"\xAA","%Aa":"\xAA","%aA":"\xAA","%AA":"\xAA","%ab":"\xAB","%Ab":"\xAB","%aB":"\xAB","%AB":"\xAB","%ac":"\xAC","%Ac":"\xAC","%aC":"\xAC","%AC":"\xAC","%ad":"\xAD","%Ad":"\xAD","%aD":"\xAD","%AD":"\xAD","%ae":"\xAE","%Ae":"\xAE","%aE":"\xAE","%AE":"\xAE","%af":"\xAF","%Af":"\xAF","%aF":"\xAF","%AF":"\xAF","%b0":"\xB0","%B0":"\xB0","%b1":"\xB1","%B1":"\xB1","%b2":"\xB2","%B2":"\xB2","%b3":"\xB3","%B3":"\xB3","%b4":"\xB4","%B4":"\xB4","%b5":"\xB5","%B5":"\xB5","%b6":"\xB6","%B6":"\xB6","%b7":"\xB7","%B7":"\xB7","%b8":"\xB8","%B8":"\xB8","%b9":"\xB9","%B9":"\xB9","%ba":"\xBA","%Ba":"\xBA","%bA":"\xBA","%BA":"\xBA","%bb":"\xBB","%Bb":"\xBB","%bB":"\xBB","%BB":"\xBB","%bc":"\xBC","%Bc":"\xBC","%bC":"\xBC","%BC":"\xBC","%bd":"\xBD","%Bd":"\xBD","%bD":"\xBD","%BD":"\xBD","%be":"\xBE","%Be":"\xBE","%bE":"\xBE","%BE":"\xBE","%bf":"\xBF","%Bf":"\xBF","%bF":"\xBF","%BF":"\xBF","%c0":"\xC0","%C0":"\xC0","%c1":"\xC1","%C1":"\xC1","%c2":"\xC2","%C2":"\xC2","%c3":"\xC3","%C3":"\xC3","%c4":"\xC4","%C4":"\xC4","%c5":"\xC5","%C5":"\xC5","%c6":"\xC6","%C6":"\xC6","%c7":"\xC7","%C7":"\xC7","%c8":"\xC8","%C8":"\xC8","%c9":"\xC9","%C9":"\xC9","%ca":"\xCA","%Ca":"\xCA","%cA":"\xCA","%CA":"\xCA","%cb":"\xCB","%Cb":"\xCB","%cB":"\xCB","%CB":"\xCB","%cc":"\xCC","%Cc":"\xCC","%cC":"\xCC","%CC":"\xCC","%cd":"\xCD","%Cd":"\xCD","%cD":"\xCD","%CD":"\xCD","%ce":"\xCE","%Ce":"\xCE","%cE":"\xCE","%CE":"\xCE","%cf":"\xCF","%Cf":"\xCF","%cF":"\xCF","%CF":"\xCF","%d0":"\xD0","%D0":"\xD0","%d1":"\xD1","%D1":"\xD1","%d2":"\xD2","%D2":"\xD2","%d3":"\xD3","%D3":"\xD3","%d4":"\xD4","%D4":"\xD4","%d5":"\xD5","%D5":"\xD5","%d6":"\xD6","%D6":"\xD6","%d7":"\xD7","%D7":"\xD7","%d8":"\xD8","%D8":"\xD8","%d9":"\xD9","%D9":"\xD9","%da":"\xDA","%Da":"\xDA","%dA":"\xDA","%DA":"\xDA","%db":"\xDB","%Db":"\xDB","%dB":"\xDB","%DB":"\xDB","%dc":"\xDC","%Dc":"\xDC","%dC":"\xDC","%DC":"\xDC","%dd":"\xDD","%Dd":"\xDD","%dD":"\xDD","%DD":"\xDD","%de":"\xDE","%De":"\xDE","%dE":"\xDE","%DE":"\xDE","%df":"\xDF","%Df":"\xDF","%dF":"\xDF","%DF":"\xDF","%e0":"\xE0","%E0":"\xE0","%e1":"\xE1","%E1":"\xE1","%e2":"\xE2","%E2":"\xE2","%e3":"\xE3","%E3":"\xE3","%e4":"\xE4","%E4":"\xE4","%e5":"\xE5","%E5":"\xE5","%e6":"\xE6","%E6":"\xE6","%e7":"\xE7","%E7":"\xE7","%e8":"\xE8","%E8":"\xE8","%e9":"\xE9","%E9":"\xE9","%ea":"\xEA","%Ea":"\xEA","%eA":"\xEA","%EA":"\xEA","%eb":"\xEB","%Eb":"\xEB","%eB":"\xEB","%EB":"\xEB","%ec":"\xEC","%Ec":"\xEC","%eC":"\xEC","%EC":"\xEC","%ed":"\xED","%Ed":"\xED","%eD":"\xED","%ED":"\xED","%ee":"\xEE","%Ee":"\xEE","%eE":"\xEE","%EE":"\xEE","%ef":"\xEF","%Ef":"\xEF","%eF":"\xEF","%EF":"\xEF","%f0":"\xF0","%F0":"\xF0","%f1":"\xF1","%F1":"\xF1","%f2":"\xF2","%F2":"\xF2","%f3":"\xF3","%F3":"\xF3","%f4":"\xF4","%F4":"\xF4","%f5":"\xF5","%F5":"\xF5","%f6":"\xF6","%F6":"\xF6","%f7":"\xF7","%F7":"\xF7","%f8":"\xF8","%F8":"\xF8","%f9":"\xF9","%F9":"\xF9","%fa":"\xFA","%Fa":"\xFA","%fA":"\xFA","%FA":"\xFA","%fb":"\xFB","%Fb":"\xFB","%fB":"\xFB","%FB":"\xFB","%fc":"\xFC","%Fc":"\xFC","%fC":"\xFC","%FC":"\xFC","%fd":"\xFD","%Fd":"\xFD","%fD":"\xFD","%FD":"\xFD","%fe":"\xFE","%Fe":"\xFE","%fE":"\xFE","%FE":"\xFE","%ff":"\xFF","%Ff":"\xFF","%fF":"\xFF","%FF":"\xFF"};function rXn(e){return Q7o[e]}var nft=0,nXn=1,Cmr=2,iXn=3;function X7o(e){let t=[],r=nft,n="",a=!1,o=!1,l=0,A="",f=e.length;for(var I=0;I{"use strict";oXn.exports=function(t){if(typeof t!="string")return"";for(var r=t.length-1;r>=0;--r)switch(t.charCodeAt(r)){case 47:case 92:return t=t.slice(r+1),t===".."||t==="."?"":t}return t===".."||t==="."?"":t}});var gXn=H((riu,uXn)=>{"use strict";var{Readable:lXn}=wt("node:stream"),{inherits:J7o}=wt("node:util"),U7o=hmr(),cXn=_mr(),K7o=tft(),j7o=aXn(),FIe=eft(),z7o=/^boundary$/i,q7o=/^form-data$/i,$7o=/^charset$/i,ezo=/^filename$/i,tzo=/^name$/i;ift.detect=/^multipart\/form-data/i;function ift(e,t){let r,n,a=this,o,l=t.limits,A=t.isPartAFile||((k,et,ct)=>et==="application/octet-stream"||ct!==void 0),f=t.parsedConType||[],I=t.defCharset||"utf8",C=t.preservePath,b={highWaterMark:t.fileHwm};for(r=0,n=f.length;rX)return a.parser.removeListener("part",k),a.parser.on("part",SBe),e.hitPartsLimit=!0,e.emit("partsLimit"),SBe(et);if(be){let ct=be;ct.emit("end"),ct.removeAllListeners("end")}et.on("header",function(ct){let Me,je,St,At,Yt,Tr,Nr=0;if(ct["content-type"]&&(St=cXn(ct["content-type"][0]),St[0])){for(Me=St[0].toLowerCase(),r=0,n=St.length;rB){let qt=B-Nr+Zr.length;qt>0&&xt.push(Zr.slice(0,qt)),xt.truncated=!0,xt.bytesRead=B,et.removeAllListeners("data"),xt.emit("limit");return}else xt.push(Zr)||(a._pause=!0);xt.bytesRead=Nr},vt=function(){de=void 0,xt.push(null)}}else{if(fe===Q)return e.hitFieldsLimit||(e.hitFieldsLimit=!0,e.emit("fieldsLimit")),SBe(et);++fe,++ue;let xt="",Zr=!1;be=et,er=function(qt){if((Nr+=qt.length)>N){let Xt=N-(Nr-qt.length);xt+=qt.toString("binary",0,Xt),Zr=!0,et.removeAllListeners("data")}else xt+=qt.toString("binary")},vt=function(){be=void 0,xt.length&&(xt=K7o(xt,"binary",At)),e.emit("field",je,xt,!1,Zr,Yt,Me),--ue,E()}}et._readableState.sync=!1,et.on("data",er),et.on("end",vt)}).on("error",function(ct){de&&de.emit("error",ct)})}).on("error",function(k){e.emit("error",k)}).on("finish",function(){Se=!0,E()})}ift.prototype.write=function(e,t){let r=this.parser.write(e);r&&!this._pause?t():(this._needDrain=!r,this._cb=t)};ift.prototype.end=function(){let e=this;e.parser.writable?e.parser.end():e._boy._done||process.nextTick(function(){e._boy._done=!0,e._boy.emit("finish")})};function SBe(e){e.resume()}function ymr(e){lXn.call(this,e),this.bytesRead=0,this.truncated=!1}J7o(ymr,lXn);ymr.prototype._read=function(e){};uXn.exports=ift});var dXn=H((niu,AXn)=>{"use strict";var rzo=/\+/g,nzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];function bmr(){this.buffer=void 0}bmr.prototype.write=function(e){e=e.replace(rzo," ");let t="",r=0,n=0,a=e.length;for(;rn&&(t+=e.substring(n,r),n=r),this.buffer="",++n);return n{"use strict";var izo=dXn(),vBe=tft(),Emr=eft(),szo=/^charset$/i;sft.detect=/^application\/x-www-form-urlencoded/i;function sft(e,t){let r=t.limits,n=t.parsedConType;this.boy=e,this.fieldSizeLimit=Emr(r,"fieldSize",1*1024*1024),this.fieldNameSizeLimit=Emr(r,"fieldNameSize",100),this.fieldsLimit=Emr(r,"fields",1/0);let a;for(var o=0,l=n.length;oo&&(this._key+=this.decoder.write(e.toString("binary",o,r))),this._state="val",this._hitLimit=!1,this._checkingBytes=!0,this._val="",this._bytesVal=0,this._valTrunc=!1,this.decoder.reset(),o=r+1;else if(n!==void 0){++this._fields;let A,f=this._keyTrunc;if(n>o?A=this._key+=this.decoder.write(e.toString("binary",o,n)):A=this._key,this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),A.length&&this.boy.emit("field",vBe(A,"binary",this.charset),"",f,!1),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._key+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._bytesKey=this._key.length)===this.fieldNameSizeLimit&&(this._checkingBytes=!1,this._keyTrunc=!0)):(oo&&(this._val+=this.decoder.write(e.toString("binary",o,n))),this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this._state="key",this._hitLimit=!1,this._checkingBytes=!0,this._key="",this._bytesKey=0,this._keyTrunc=!1,this.decoder.reset(),o=n+1,this._fields===this.fieldsLimit)return t()}else this._hitLimit?(a>o&&(this._val+=this.decoder.write(e.toString("binary",o,a))),o=a,(this._val===""&&this.fieldSizeLimit===0||(this._bytesVal=this._val.length)===this.fieldSizeLimit)&&(this._checkingBytes=!1,this._valTrunc=!0)):(o0?this.boy.emit("field",vBe(this._key,"binary",this.charset),"",this._keyTrunc,!1):this._state==="val"&&this.boy.emit("field",vBe(this._key,"binary",this.charset),vBe(this._val,"binary",this.charset),this._keyTrunc,this._valTrunc),this.boy._done=!0,this.boy.emit("finish"))};pXn.exports=sft});var mXn=H((siu,IHe)=>{"use strict";var Smr=wt("node:stream").Writable,{inherits:ozo}=wt("node:util"),azo=hmr(),IXn=gXn(),hXn=fXn(),czo=_mr();function S$(e){if(!(this instanceof S$))return new S$(e);if(typeof e!="object")throw new TypeError("Busboy expected an options-Object.");if(typeof e.headers!="object")throw new TypeError("Busboy expected an options-Object with headers-attribute.");if(typeof e.headers["content-type"]!="string")throw new TypeError("Missing Content-Type-header.");let{headers:t,...r}=e;this.opts={autoDestroy:!1,...r},Smr.call(this,this.opts),this._done=!1,this._parser=this.getParserByHeaders(t),this._finished=!1}ozo(S$,Smr);S$.prototype.emit=function(e){if(e==="finish"){if(this._done){if(this._finished)return}else{this._parser?.end();return}this._finished=!0}Smr.prototype.emit.apply(this,arguments)};S$.prototype.getParserByHeaders=function(e){let t=czo(e["content-type"]),r={defCharset:this.opts.defCharset,fileHwm:this.opts.fileHwm,headers:e,highWaterMark:this.opts.highWaterMark,isPartAFile:this.opts.isPartAFile,limits:this.opts.limits,parsedConType:t,preservePath:this.opts.preservePath};if(IXn.detect.test(t[0]))return new IXn(this,r);if(hXn.detect.test(t[0]))return new hXn(this,r);throw new Error("Unsupported Content-Type.")};S$.prototype._write=function(e,t,r){this._parser.write(e,r)};IHe.exports=S$;IHe.exports.default=S$;IHe.exports.Busboy=S$;IHe.exports.Dicer=azo});var Xoe=H((oiu,BXn)=>{"use strict";var{MessageChannel:lzo,receiveMessageOnPort:uzo}=wt("worker_threads"),CXn=["GET","HEAD","POST"],gzo=new Set(CXn),Azo=[101,204,205,304],_Xn=[301,302,303,307,308],dzo=new Set(_Xn),yXn=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","5060","5061","6000","6566","6665","6666","6667","6668","6669","6697","10080"],pzo=new Set(yXn),bXn=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],fzo=new Set(bXn),Izo=["follow","manual","error"],EXn=["GET","HEAD","OPTIONS","TRACE"],hzo=new Set(EXn),mzo=["navigate","same-origin","no-cors","cors"],Czo=["omit","same-origin","include"],_zo=["default","no-store","reload","no-cache","force-cache","only-if-cached"],yzo=["content-encoding","content-language","content-location","content-type","content-length"],bzo=["half"],SXn=["CONNECT","TRACE","TRACK"],Ezo=new Set(SXn),vXn=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Szo=new Set(vXn),vzo=globalThis.DOMException??(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),BBe,Bzo=globalThis.structuredClone??function(t,r=void 0){if(arguments.length===0)throw new TypeError("missing argument");return BBe||(BBe=new lzo),BBe.port1.unref(),BBe.port2.unref(),BBe.port1.postMessage(t,r?.transfer),uzo(BBe.port2).message};BXn.exports={DOMException:vzo,structuredClone:Bzo,subresource:vXn,forbiddenMethods:SXn,requestBodyHeader:yzo,referrerPolicy:bXn,requestRedirect:Izo,requestMode:mzo,requestCredentials:Czo,requestCache:_zo,redirectStatus:_Xn,corsSafeListedMethods:CXn,nullBodyStatus:Azo,safeMethods:EXn,badPorts:yXn,requestDuplex:bzo,subresourceSet:Szo,badPortsSet:pzo,redirectStatusSet:dzo,corsSafeListedMethodsSet:gzo,safeMethodsSet:hzo,forbiddenMethodsSet:Ezo,referrerPolicySet:fzo}});var wBe=H((aiu,wXn)=>{"use strict";var vmr=Symbol.for("undici.globalOrigin.1");function wzo(){return globalThis[vmr]}function Tzo(e){if(e===void 0){Object.defineProperty(globalThis,vmr,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,vmr,{value:t,writable:!0,enumerable:!1,configurable:!1})}wXn.exports={getGlobalOrigin:wzo,setGlobalOrigin:Tzo}});var EM=H((ciu,FXn)=>{"use strict";var{redirectStatusSet:Rzo,referrerPolicySet:Nzo,badPortsSet:Dzo}=Xoe(),{getGlobalOrigin:kzo}=wBe(),{performance:xzo}=wt("perf_hooks"),{isBlobLike:Gzo,toUSVString:Fzo,ReadableStreamFrom:Zzo}=zC(),TBe=wt("assert"),{isUint8Array:Lzo}=wt("util/types"),TXn=[],oft;try{oft=wt("crypto");let e=["sha256","sha384","sha512"];TXn=oft.getHashes().filter(t=>e.includes(t))}catch{}function RXn(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function Vzo(e,t){if(!Rzo.has(e.status))return null;let r=e.headersList.get("location");return r!==null&&DXn(r)&&(r=new URL(r,RXn(e))),r&&!r.hash&&(r.hash=t),r}function mHe(e){return e.urlList[e.urlList.length-1]}function Pzo(e){let t=mHe(e);return GXn(t)&&Dzo.has(t.port)?"blocked":"allowed"}function Wzo(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function Ozo(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}function Mzo(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function NXn(e){if(e.length===0)return!1;for(let t=0;t0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(Nzo.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function Qzo(){return"allowed"}function Xzo(){return"success"}function Jzo(){return"success"}function Uzo(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t)}function Kzo(e){let t=e.origin;if(e.responseTainting==="cors"||e.mode==="websocket")t&&e.headersList.append("origin",t);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&Tmr(e.origin)&&!Tmr(mHe(e))&&(t=null);break;case"same-origin":aft(e,mHe(e))||(t=null);break;default:}t&&e.headersList.append("origin",t)}}function jzo(e){return xzo.now()}function zzo(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function qzo(){return{referrerPolicy:"strict-origin-when-cross-origin"}}function $zo(e){return{referrerPolicy:e.referrerPolicy}}function eqo(e){let t=e.referrerPolicy;TBe(t);let r=null;if(e.referrer==="client"){let A=kzo();if(!A||A.origin==="null")return"no-referrer";r=new URL(A)}else e.referrer instanceof URL&&(r=e.referrer);let n=Bmr(r),a=Bmr(r,!0);n.toString().length>4096&&(n=a);let o=aft(e,n),l=hHe(n)&&!hHe(e.url);switch(t){case"origin":return a??Bmr(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=mHe(e);return aft(n,A)?n:hHe(n)&&!hHe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function Bmr(e,t){return TBe(e instanceof URL),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function hHe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function tqo(e,t){if(oft===void 0)return!0;let r=kXn(t);if(r==="no metadata"||r.length===0)return!0;let n=nqo(r),a=iqo(r,n);for(let o of a){let l=o.algo,A=o.hash,f=oft.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),sqo(f,A))return!0}return!1}var rqo=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function kXn(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=rqo.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();TXn.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function nqo(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function cqo(e){return e.controller.state==="aborted"}function lqo(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}var Rmr={delete:"DELETE",DELETE:"DELETE",get:"GET",GET:"GET",head:"HEAD",HEAD:"HEAD",options:"OPTIONS",OPTIONS:"OPTIONS",post:"POST",POST:"POST",put:"PUT",PUT:"PUT"};Object.setPrototypeOf(Rmr,null);function uqo(e){return Rmr[e.toLowerCase()]??e}function gqo(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return TBe(typeof t=="string"),t}var Aqo=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function dqo(e,t,r){let n={index:0,kind:r,target:e},a={next(){if(Object.getPrototypeOf(this)!==a)throw new TypeError(`'next' called on an object that does not implement interface ${t} Iterator.`);let{index:o,kind:l,target:A}=n,f=A(),I=f.length;if(o>=I)return{value:void 0,done:!0};let C=f[o];return n.index=o+1,pqo(C,l)},[Symbol.toStringTag]:`${t} Iterator`};return Object.setPrototypeOf(a,Aqo),Object.setPrototypeOf({},a)}function pqo(e,t){let r;switch(t){case"key":{r=e[0];break}case"value":{r=e[1];break}case"key+value":{r=e;break}}return{value:r,done:!1}}async function fqo(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{let l=await xXn(o);n(l)}catch(l){a(l)}}var wmr=globalThis.ReadableStream;function Iqo(e){return wmr||(wmr=wt("stream/web").ReadableStream),e instanceof wmr||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}var hqo=65535;function mqo(e){return e.lengtht+String.fromCharCode(r),"")}function Cqo(e){try{e.close()}catch(t){if(!t.message.includes("Controller is already closed"))throw t}}function _qo(e){for(let t=0;tObject.prototype.hasOwnProperty.call(e,t));FXn.exports={isAborted:cqo,isCancelled:lqo,createDeferredPromise:aqo,ReadableStreamFrom:Zzo,toUSVString:Fzo,tryUpgradeRequestToAPotentiallyTrustworthyURL:oqo,coarsenedSharedCurrentTime:jzo,determineRequestsReferrer:eqo,makePolicyContainer:qzo,clonePolicyContainer:$zo,appendFetchMetadata:Uzo,appendRequestOriginHeader:Kzo,TAOCheck:Jzo,corsCheck:Xzo,crossOriginResourcePolicyCheck:Qzo,createOpaqueTimingInfo:zzo,setRequestReferrerPolicyOnRedirect:Yzo,isValidHTTPToken:NXn,requestBadPort:Pzo,requestCurrentURL:mHe,responseURL:RXn,responseLocationURL:Vzo,isBlobLike:Gzo,isURLPotentiallyTrustworthy:hHe,isValidReasonPhrase:Ozo,sameOrigin:aft,normalizeMethod:uqo,serializeJavascriptValueToJSONString:gqo,makeIterator:dqo,isValidHeaderName:Hzo,isValidHeaderValue:DXn,hasOwn:bqo,isErrorLike:Wzo,fullyReadBody:fqo,bytesMatch:tqo,isReadableStreamLike:Iqo,readableStreamClose:Cqo,isomorphicEncode:_qo,isomorphicDecode:mqo,urlIsLocal:yqo,urlHasHttpsScheme:Tmr,urlIsHttpHttpsScheme:GXn,readAllBytes:xXn,normalizeMethodRecord:Rmr,parseMetadata:kXn}});var v$=H((liu,ZXn)=>{"use strict";ZXn.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kGuard:Symbol("guard"),kRealm:Symbol("realm")}});var xZ=H((uiu,VXn)=>{"use strict";var{types:p8}=wt("util"),{hasOwn:LXn,toUSVString:Eqo}=EM(),pg={};pg.converters={};pg.util={};pg.errors={};pg.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};pg.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return pg.errors.exception({header:e.prefix,message:r})};pg.errors.invalidArgument=function(e){return pg.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};pg.brandCheck=function(e,t,r=void 0){if(r?.strict!==!1&&!(e instanceof t))throw new TypeError("Illegal invocation");return e?.[Symbol.toStringTag]===t.prototype[Symbol.toStringTag]};pg.argumentLengthCheck=function({length:e},t,r){if(ea)throw pg.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=pg.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};pg.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};pg.sequenceConverter=function(e){return t=>{if(pg.util.Type(t)!=="Object")throw pg.errors.exception({header:"Sequence",message:`Value of type ${pg.util.Type(t)} is not an Object.`});let r=t?.[Symbol.iterator]?.(),n=[];if(r===void 0||typeof r.next!="function")throw pg.errors.exception({header:"Sequence",message:"Object is not an iterator."});for(;;){let{done:a,value:o}=r.next();if(a)break;n.push(e(o))}return n}};pg.recordConverter=function(e,t){return r=>{if(pg.util.Type(r)!=="Object")throw pg.errors.exception({header:"Record",message:`Value of type ${pg.util.Type(r)} is not an Object.`});let n={};if(!p8.isProxy(r)){let o=Object.keys(r);for(let l of o){let A=e(l),f=t(r[l]);n[A]=f}return n}let a=Reflect.ownKeys(r);for(let o of a)if(Reflect.getOwnPropertyDescriptor(r,o)?.enumerable){let A=e(o),f=t(r[o]);n[A]=f}return n}};pg.interfaceConverter=function(e){return(t,r={})=>{if(r.strict!==!1&&!(t instanceof e))throw pg.errors.exception({header:e.name,message:`Expected ${t} to be an instance of ${e.name}.`});return t}};pg.dictionaryConverter=function(e){return t=>{let r=pg.util.Type(t),n={};if(r==="Null"||r==="Undefined")return n;if(r!=="Object")throw pg.errors.exception({header:"Dictionary",message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:o,defaultValue:l,required:A,converter:f}=a;if(A===!0&&!LXn(t,o))throw pg.errors.exception({header:"Dictionary",message:`Missing required key "${o}".`});let I=t[o],C=LXn(a,"defaultValue");if(C&&I!==null&&(I=I??l),A||C||I!==void 0){if(I=f(I),a.allowedValues&&!a.allowedValues.includes(I))throw pg.errors.exception({header:"Dictionary",message:`${I} is not an accepted type. Expected one of ${a.allowedValues.join(", ")}.`});n[o]=I}}return n}};pg.nullableConverter=function(e){return t=>t===null?t:e(t)};pg.converters.DOMString=function(e,t={}){if(e===null&&t.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw new TypeError("Could not convert argument of type symbol to string.");return String(e)};pg.converters.ByteString=function(e){let t=pg.converters.DOMString(e);for(let r=0;r255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${r} has a value of ${t.charCodeAt(r)} which is greater than 255.`);return t};pg.converters.USVString=Eqo;pg.converters.boolean=function(e){return!!e};pg.converters.any=function(e){return e};pg.converters["long long"]=function(e){return pg.util.ConvertToInt(e,64,"signed")};pg.converters["unsigned long long"]=function(e){return pg.util.ConvertToInt(e,64,"unsigned")};pg.converters["unsigned long"]=function(e){return pg.util.ConvertToInt(e,32,"unsigned")};pg.converters["unsigned short"]=function(e,t){return pg.util.ConvertToInt(e,16,"unsigned",t)};pg.converters.ArrayBuffer=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isAnyArrayBuffer(e))throw pg.errors.conversionFailed({prefix:`${e}`,argument:`${e}`,types:["ArrayBuffer"]});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.TypedArray=function(e,t,r={}){if(pg.util.Type(e)!=="Object"||!p8.isTypedArray(e)||e.constructor.name!==t.name)throw pg.errors.conversionFailed({prefix:`${t.name}`,argument:`${e}`,types:[t.name]});if(r.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.DataView=function(e,t={}){if(pg.util.Type(e)!=="Object"||!p8.isDataView(e))throw pg.errors.exception({header:"DataView",message:"Object is not a DataView."});if(t.allowShared===!1&&p8.isSharedArrayBuffer(e.buffer))throw pg.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});return e};pg.converters.BufferSource=function(e,t={}){if(p8.isAnyArrayBuffer(e))return pg.converters.ArrayBuffer(e,t);if(p8.isTypedArray(e))return pg.converters.TypedArray(e,e.constructor);if(p8.isDataView(e))return pg.converters.DataView(e,t);throw new TypeError(`Could not convert ${e} to a BufferSource.`)};pg.converters["sequence"]=pg.sequenceConverter(pg.converters.ByteString);pg.converters["sequence>"]=pg.sequenceConverter(pg.converters["sequence"]);pg.converters["record"]=pg.recordConverter(pg.converters.ByteString,pg.converters.ByteString);VXn.exports={webidl:pg}});var wX=H((giu,YXn)=>{var lft=wt("assert"),{atob:Sqo}=wt("buffer"),{isomorphicDecode:vqo}=EM(),Bqo=new TextEncoder,cft=/^[!#$%&'*+-.^_|~A-Za-z0-9]+$/,wqo=/(\u000A|\u000D|\u0009|\u0020)/,Tqo=/[\u0009|\u0020-\u007E|\u0080-\u00FF]/;function Rqo(e){lft(e.protocol==="data:");let t=OXn(e,!0);t=t.slice(5);let r={position:0},n=RBe(",",t,r),a=n.length;if(n=xqo(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=MXn(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=vqo(l);if(l=Dqo(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=Dmr(n);return A==="failure"&&(A=Dmr("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function OXn(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length;return n===0?r:r.substring(0,r.length-n)}function uft(e,t,r){let n="";for(;r.positione.length)return"failure";t.position++;let n=RBe(";",e,t);if(n=Nmr(n,!1,!0),n.length===0||!cft.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionwqo.test(I),e,t);let A=uft(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=HXn(e,t,!0),RBe(";",e,t);else if(f=RBe(";",e,t),f=Nmr(f,!1,!0),f.length===0)continue;A.length!==0&&cft.test(A)&&(f.length===0||Tqo.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Dqo(e){if(e=e.replace(/[\u0009\u000A\u000C\u000D\u0020]/g,""),e.length%4===0&&(e=e.replace(/=?=$/,"")),e.length%4===1||/[^+/0-9A-Za-z]/.test(e))return"failure";let t=Sqo(e),r=new Uint8Array(t.length);for(let n=0;nl!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{lft(o==='"');break}}return r?a:e.slice(n,t.position)}function kqo(e){lft(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",cft.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function PXn(e){return e==="\r"||e===` `||e===" "||e===" "}function Nmr(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&PXn(e[a]);a--);return e.slice(n,a+1)}function WXn(e){return e==="\r"||e===` -`||e===" "||e==="\f"||e===" "}function xqo(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&WXn(e[a]);a--);return e.slice(n,a+1)}YXn.exports={dataURLProcessor:Rqo,URLSerializer:OXn,collectASequenceOfCodePoints:uft,collectASequenceOfCodePointsFast:RBe,stringPercentDecode:MXn,parseMIMEType:Dmr,collectAnHTTPQuotedString:HXn,serializeAMimeType:kqo}});var gft=H((giu,KXn)=>{"use strict";var{Blob:JXn,File:QXn}=wt("buffer"),{types:kmr}=wt("util"),{kState:MW}=v$(),{isBlobLike:UXn}=EM(),{webidl:H0}=xZ(),{parseMIMEType:Gqo,serializeAMimeType:Fqo}=wX(),{kEnumerableProperty:XXn}=zC(),Zqo=new TextEncoder,CHe=class e extends JXn{constructor(t,r,n={}){H0.argumentLengthCheck(arguments,2,{header:"File constructor"}),t=H0.converters["sequence"](t),r=H0.converters.USVString(r),n=H0.converters.FilePropertyBag(n);let a=r,o=n.type,l;e:{if(o){if(o=Gqo(o),o==="failure"){o="";break e}o=Fqo(o).toLowerCase()}l=n.lastModified}super(Lqo(t,n),{type:o}),this[MW]={name:a,lastModified:l,type:o}}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get type(){return H0.brandCheck(this,e),this[MW].type}},xmr=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[MW]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return H0.brandCheck(this,e),this[MW].blobLike.stream(...t)}arrayBuffer(...t){return H0.brandCheck(this,e),this[MW].blobLike.arrayBuffer(...t)}slice(...t){return H0.brandCheck(this,e),this[MW].blobLike.slice(...t)}text(...t){return H0.brandCheck(this,e),this[MW].blobLike.text(...t)}get size(){return H0.brandCheck(this,e),this[MW].blobLike.size}get type(){return H0.brandCheck(this,e),this[MW].blobLike.type}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(CHe.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:XXn,lastModified:XXn});H0.converters.Blob=H0.interfaceConverter(JXn);H0.converters.BlobPart=function(e,t){if(H0.util.Type(e)==="Object"){if(UXn(e))return H0.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||kmr.isAnyArrayBuffer(e))return H0.converters.BufferSource(e,t)}return H0.converters.USVString(e,t)};H0.converters["sequence"]=H0.sequenceConverter(H0.converters.BlobPart);H0.converters.FilePropertyBag=H0.dictionaryConverter([{key:"lastModified",converter:H0.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H0.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H0.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function Lqo(e,t){let r=[];for(let n of e)if(typeof n=="string"){let a=n;t.endings==="native"&&(a=Vqo(a)),r.push(Zqo.encode(a))}else kmr.isAnyArrayBuffer(n)||kmr.isTypedArray(n)?n.buffer?r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)):r.push(new Uint8Array(n)):UXn(n)&&r.push(n);return r}function Vqo(e){let t=` +`||e===" "||e==="\f"||e===" "}function xqo(e,t=!0,r=!0){let n=0,a=e.length-1;if(t)for(;n0&&WXn(e[a]);a--);return e.slice(n,a+1)}YXn.exports={dataURLProcessor:Rqo,URLSerializer:OXn,collectASequenceOfCodePoints:uft,collectASequenceOfCodePointsFast:RBe,stringPercentDecode:MXn,parseMIMEType:Dmr,collectAnHTTPQuotedString:HXn,serializeAMimeType:kqo}});var gft=H((Aiu,KXn)=>{"use strict";var{Blob:JXn,File:QXn}=wt("buffer"),{types:kmr}=wt("util"),{kState:MW}=v$(),{isBlobLike:UXn}=EM(),{webidl:H0}=xZ(),{parseMIMEType:Gqo,serializeAMimeType:Fqo}=wX(),{kEnumerableProperty:XXn}=zC(),Zqo=new TextEncoder,CHe=class e extends JXn{constructor(t,r,n={}){H0.argumentLengthCheck(arguments,2,{header:"File constructor"}),t=H0.converters["sequence"](t),r=H0.converters.USVString(r),n=H0.converters.FilePropertyBag(n);let a=r,o=n.type,l;e:{if(o){if(o=Gqo(o),o==="failure"){o="";break e}o=Fqo(o).toLowerCase()}l=n.lastModified}super(Lqo(t,n),{type:o}),this[MW]={name:a,lastModified:l,type:o}}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get type(){return H0.brandCheck(this,e),this[MW].type}},xmr=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[MW]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return H0.brandCheck(this,e),this[MW].blobLike.stream(...t)}arrayBuffer(...t){return H0.brandCheck(this,e),this[MW].blobLike.arrayBuffer(...t)}slice(...t){return H0.brandCheck(this,e),this[MW].blobLike.slice(...t)}text(...t){return H0.brandCheck(this,e),this[MW].blobLike.text(...t)}get size(){return H0.brandCheck(this,e),this[MW].blobLike.size}get type(){return H0.brandCheck(this,e),this[MW].blobLike.type}get name(){return H0.brandCheck(this,e),this[MW].name}get lastModified(){return H0.brandCheck(this,e),this[MW].lastModified}get[Symbol.toStringTag](){return"File"}};Object.defineProperties(CHe.prototype,{[Symbol.toStringTag]:{value:"File",configurable:!0},name:XXn,lastModified:XXn});H0.converters.Blob=H0.interfaceConverter(JXn);H0.converters.BlobPart=function(e,t){if(H0.util.Type(e)==="Object"){if(UXn(e))return H0.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||kmr.isAnyArrayBuffer(e))return H0.converters.BufferSource(e,t)}return H0.converters.USVString(e,t)};H0.converters["sequence"]=H0.sequenceConverter(H0.converters.BlobPart);H0.converters.FilePropertyBag=H0.dictionaryConverter([{key:"lastModified",converter:H0.converters["long long"],get defaultValue(){return Date.now()}},{key:"type",converter:H0.converters.DOMString,defaultValue:""},{key:"endings",converter:e=>(e=H0.converters.DOMString(e),e=e.toLowerCase(),e!=="native"&&(e="transparent"),e),defaultValue:"transparent"}]);function Lqo(e,t){let r=[];for(let n of e)if(typeof n=="string"){let a=n;t.endings==="native"&&(a=Vqo(a)),r.push(Zqo.encode(a))}else kmr.isAnyArrayBuffer(n)||kmr.isTypedArray(n)?n.buffer?r.push(new Uint8Array(n.buffer,n.byteOffset,n.byteLength)):r.push(new Uint8Array(n)):UXn(n)&&r.push(n);return r}function Vqo(e){let t=` `;return process.platform==="win32"&&(t=`\r -`),e.replace(/\r?\n/g,t)}function Pqo(e){return QXn&&e instanceof QXn||e instanceof CHe||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}KXn.exports={File:CHe,FileLike:xmr,isFileLike:Pqo}});var dft=H((Aiu,e4n)=>{"use strict";var{isBlobLike:Aft,toUSVString:Wqo,makeIterator:Gmr}=EM(),{kState:CG}=v$(),{File:$Xn,FileLike:jXn,isFileLike:Oqo}=gft(),{webidl:Cy}=xZ(),{Blob:Mqo,File:Fmr}=wt("buffer"),zXn=Fmr??$Xn,NBe=class e{constructor(t){if(t!==void 0)throw Cy.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[CG]=[]}append(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Cy.converters.USVString(n):void 0;let a=qXn(t,r,n);this[CG].push(a)}delete(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),t=Cy.converters.USVString(t),this[CG]=this[CG].filter(r=>r.name!==t)}get(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.get"}),t=Cy.converters.USVString(t);let r=this[CG].findIndex(n=>n.name===t);return r===-1?null:this[CG][r].value}getAll(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),t=Cy.converters.USVString(t),this[CG].filter(r=>r.name===t).map(r=>r.value)}has(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.has"}),t=Cy.converters.USVString(t),this[CG].findIndex(r=>r.name===t)!==-1}set(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Wqo(n):void 0;let a=qXn(t,r,n),o=this[CG].findIndex(l=>l.name===t);o!==-1?this[CG]=[...this[CG].slice(0,o),a,...this[CG].slice(o+1).filter(l=>l.name!==t)]:this[CG].push(a)}entries(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key+value")}keys(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key")}values(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","value")}forEach(t,r=globalThis){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}};NBe.prototype[Symbol.iterator]=NBe.prototype.entries;Object.defineProperties(NBe.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function qXn(e,t,r){if(e=Buffer.from(e).toString("utf8"),typeof t=="string")t=Buffer.from(t).toString("utf8");else if(Oqo(t)||(t=t instanceof Mqo?new zXn([t],"blob",{type:t.type}):new jXn(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=Fmr&&t instanceof Fmr||t instanceof $Xn?new zXn([t],r,n):new jXn(t,r,n)}return{name:e,value:t}}e4n.exports={FormData:NBe}});var _He=H((diu,l4n)=>{"use strict";var Hqo=mXn(),DBe=zC(),{ReadableStreamFrom:Yqo,isBlobLike:t4n,isReadableStreamLike:Qqo,readableStreamClose:Xqo,createDeferredPromise:Jqo,fullyReadBody:Uqo}=EM(),{FormData:r4n}=dft(),{kState:w$}=v$(),{webidl:Zmr}=xZ(),{DOMException:s4n,structuredClone:Kqo}=Xoe(),{Blob:jqo,File:zqo}=wt("buffer"),{kBodyUsed:qqo}=GE(),Lmr=wt("assert"),{isErrored:$qo}=zC(),{isUint8Array:o4n,isArrayBuffer:e$o}=wt("util/types"),{File:t$o}=gft(),{parseMIMEType:r$o,serializeAMimeType:n$o}=wX(),B$=globalThis.ReadableStream,n4n=zqo??t$o,pft=new TextEncoder,i$o=new TextDecoder;function a4n(e,t=!1){B$||(B$=wt("stream/web").ReadableStream);let r=null;e instanceof B$?r=e:t4n(e)?r=e.stream():r=new B$({async pull(f){f.enqueue(typeof a=="string"?pft.encode(a):a),queueMicrotask(()=>Xqo(f))},start(){},type:void 0}),Lmr(Qqo(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(e$o(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(DBe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r +`),e.replace(/\r?\n/g,t)}function Pqo(e){return QXn&&e instanceof QXn||e instanceof CHe||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}KXn.exports={File:CHe,FileLike:xmr,isFileLike:Pqo}});var dft=H((diu,e4n)=>{"use strict";var{isBlobLike:Aft,toUSVString:Wqo,makeIterator:Gmr}=EM(),{kState:CG}=v$(),{File:$Xn,FileLike:jXn,isFileLike:Oqo}=gft(),{webidl:Cy}=xZ(),{Blob:Mqo,File:Fmr}=wt("buffer"),zXn=Fmr??$Xn,NBe=class e{constructor(t){if(t!==void 0)throw Cy.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[CG]=[]}append(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.append"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Cy.converters.USVString(n):void 0;let a=qXn(t,r,n);this[CG].push(a)}delete(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.delete"}),t=Cy.converters.USVString(t),this[CG]=this[CG].filter(r=>r.name!==t)}get(t){Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.get"}),t=Cy.converters.USVString(t);let r=this[CG].findIndex(n=>n.name===t);return r===-1?null:this[CG][r].value}getAll(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.getAll"}),t=Cy.converters.USVString(t),this[CG].filter(r=>r.name===t).map(r=>r.value)}has(t){return Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.has"}),t=Cy.converters.USVString(t),this[CG].findIndex(r=>r.name===t)!==-1}set(t,r,n=void 0){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,2,{header:"FormData.set"}),arguments.length===3&&!Aft(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=Cy.converters.USVString(t),r=Aft(r)?Cy.converters.Blob(r,{strict:!1}):Cy.converters.USVString(r),n=arguments.length===3?Wqo(n):void 0;let a=qXn(t,r,n),o=this[CG].findIndex(l=>l.name===t);o!==-1?this[CG]=[...this[CG].slice(0,o),a,...this[CG].slice(o+1).filter(l=>l.name!==t)]:this[CG].push(a)}entries(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key+value")}keys(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","key")}values(){return Cy.brandCheck(this,e),Gmr(()=>this[CG].map(t=>[t.name,t.value]),"FormData","value")}forEach(t,r=globalThis){if(Cy.brandCheck(this,e),Cy.argumentLengthCheck(arguments,1,{header:"FormData.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}};NBe.prototype[Symbol.iterator]=NBe.prototype.entries;Object.defineProperties(NBe.prototype,{[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function qXn(e,t,r){if(e=Buffer.from(e).toString("utf8"),typeof t=="string")t=Buffer.from(t).toString("utf8");else if(Oqo(t)||(t=t instanceof Mqo?new zXn([t],"blob",{type:t.type}):new jXn(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=Fmr&&t instanceof Fmr||t instanceof $Xn?new zXn([t],r,n):new jXn(t,r,n)}return{name:e,value:t}}e4n.exports={FormData:NBe}});var _He=H((piu,l4n)=>{"use strict";var Hqo=mXn(),DBe=zC(),{ReadableStreamFrom:Yqo,isBlobLike:t4n,isReadableStreamLike:Qqo,readableStreamClose:Xqo,createDeferredPromise:Jqo,fullyReadBody:Uqo}=EM(),{FormData:r4n}=dft(),{kState:w$}=v$(),{webidl:Zmr}=xZ(),{DOMException:s4n,structuredClone:Kqo}=Xoe(),{Blob:jqo,File:zqo}=wt("buffer"),{kBodyUsed:qqo}=GE(),Lmr=wt("assert"),{isErrored:$qo}=zC(),{isUint8Array:o4n,isArrayBuffer:e$o}=wt("util/types"),{File:t$o}=gft(),{parseMIMEType:r$o,serializeAMimeType:n$o}=wX(),B$=globalThis.ReadableStream,n4n=zqo??t$o,pft=new TextEncoder,i$o=new TextDecoder;function a4n(e,t=!1){B$||(B$=wt("stream/web").ReadableStream);let r=null;e instanceof B$?r=e:t4n(e)?r=e.stream():r=new B$({async pull(f){f.enqueue(typeof a=="string"?pft.encode(a):a),queueMicrotask(()=>Xqo(f))},start(){},type:void 0}),Lmr(Qqo(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(e$o(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(DBe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r Content-Disposition: form-data`;let C=Q=>Q.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),b=Q=>Q.replace(/\r?\n|\r/g,`\r `),E=[],N=new Uint8Array([13,10]);o=0;let B=!1;for(let[Q,X]of e)if(typeof X=="string"){let ae=pft.encode(I+`; name="${C(b(Q))}"\r \r @@ -372,11 +372,11 @@ ${b(X)}\r `);E.push(ae),o+=ae.byteLength}else{let ae=pft.encode(`${I}; name="${C(b(Q))}"`+(X.name?`; filename="${C(X.name)}"`:"")+`\r Content-Type: ${X.type||"application/octet-stream"}\r \r -`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=pft.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l="multipart/form-data; boundary="+f}else if(t4n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(DBe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof B$?e:Yqo(e)}if((typeof a=="string"||DBe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new B$({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();return b?queueMicrotask(()=>{I.close()}):$qo(r)||I.enqueue(new Uint8Array(C)),I.desiredSize>0},async cancel(I){await f.return()},type:void 0})}return[{stream:r,source:a,length:o},l]}function s$o(e,t=!1){return B$||(B$=wt("stream/web").ReadableStream),e instanceof B$&&(Lmr(!DBe.isDisturbed(e),"The body has already been consumed."),Lmr(!e.locked,"The stream is locked.")),a4n(e,t)}function o$o(e){let[t,r]=e.stream.tee(),n=Kqo(r,{transfer:[r]}),[,a]=n.tee();return e.stream=t,{stream:a,length:e.length,source:e.source}}async function*i4n(e){if(e)if(o4n(e))yield e;else{let t=e.stream;if(DBe.isDisturbed(t))throw new TypeError("The body has already been consumed.");if(t.locked)throw new TypeError("The stream is locked.");t[qqo]=!0,yield*t}}function Vmr(e){if(e.aborted)throw new s4n("The operation was aborted.","AbortError")}function a$o(e){return{blob(){return fft(this,r=>{let n=g$o(this);return n==="failure"?n="":n&&(n=n$o(n)),new jqo([r],{type:n})},e)},arrayBuffer(){return fft(this,r=>new Uint8Array(r).buffer,e)},text(){return fft(this,c4n,e)},json(){return fft(this,u$o,e)},async formData(){Zmr.brandCheck(this,e),Vmr(this[w$]);let r=this.headers.get("Content-Type");if(/multipart\/form-data/.test(r)){let n={};for(let[A,f]of this.headers)n[A.toLowerCase()]=f;let a=new r4n,o;try{o=new Hqo({headers:n,preservePath:!0})}catch(A){throw new s4n(`${A}`,"AbortError")}o.on("field",(A,f)=>{a.append(A,f)}),o.on("file",(A,f,I,C,b)=>{let E=[];if(C==="base64"||C.toLowerCase()==="base64"){let N="";f.on("data",B=>{N+=B.toString().replace(/[\r\n]/gm,"");let F=N.length-N.length%4;E.push(Buffer.from(N.slice(0,F),"base64")),N=N.slice(F)}),f.on("end",()=>{E.push(Buffer.from(N,"base64")),a.append(A,new n4n(E,I,{type:b}))})}else f.on("data",N=>{E.push(N)}),f.on("end",()=>{a.append(A,new n4n(E,I,{type:b}))})});let l=new Promise((A,f)=>{o.on("finish",A),o.on("error",I=>f(new TypeError(I)))});if(this.body!==null)for await(let A of i4n(this[w$].body))o.write(A);return o.end(),await l,a}else if(/application\/x-www-form-urlencoded/.test(r)){let n;try{let o="",l=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let A of i4n(this[w$].body)){if(!o4n(A))throw new TypeError("Expected Uint8Array chunk");o+=l.decode(A,{stream:!0})}o+=l.decode(),n=new URLSearchParams(o)}catch(o){throw Object.assign(new TypeError,{cause:o})}let a=new r4n;for(let[o,l]of n)a.append(o,l);return a}else throw await Promise.resolve(),Vmr(this[w$]),Zmr.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function c$o(e){Object.assign(e.prototype,a$o(e))}async function fft(e,t,r){if(Zmr.brandCheck(e,r),Vmr(e[w$]),l$o(e[w$].body))throw new TypeError("Body is unusable");let n=Jqo(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[w$].body==null?(o(new Uint8Array),n.promise):(await Uqo(e[w$].body,o,a),n.promise)}function l$o(e){return e!=null&&(e.stream.locked||DBe.isDisturbed(e.stream))}function c4n(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),i$o.decode(e))}function u$o(e){return JSON.parse(c4n(e))}function g$o(e){let{headersList:t}=e[w$],r=t.get("content-type");return r===null?"failure":r$o(r)}l4n.exports={extractBody:a4n,safelyExtractBody:s$o,cloneBody:o$o,mixinBody:c$o}});var d4n=H((piu,A4n)=>{"use strict";var{InvalidArgumentError:FE,NotSupportedError:A$o}=Ub(),T$=wt("assert"),{kHTTP2BuildRequest:d$o,kHTTP2CopyHeaders:p$o,kHTTP1BuildRequest:f$o}=GE(),U9=zC(),u4n=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,g4n=/[^\t\x20-\x7e\x80-\xff]/,I$o=/[^\u0021-\u00ff]/,TX=Symbol("handler"),sT={},Pmr;try{let e=wt("diagnostics_channel");sT.create=e.channel("undici:request:create"),sT.bodySent=e.channel("undici:request:bodySent"),sT.headers=e.channel("undici:request:headers"),sT.trailers=e.channel("undici:request:trailers"),sT.error=e.channel("undici:request:error")}catch{sT.create={hasSubscribers:!1},sT.bodySent={hasSubscribers:!1},sT.headers={hasSubscribers:!1},sT.trailers={hasSubscribers:!1},sT.error={hasSubscribers:!1}}var Wmr=class e{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B},F){if(typeof r!="string")throw new FE("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new FE("path must be an absolute URL or start with a slash");if(I$o.exec(r)!==null)throw new FE("invalid request path");if(typeof n!="string")throw new FE("method must be a string");if(u4n.exec(n)===null)throw new FE("invalid request method");if(I&&typeof I!="string")throw new FE("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new FE("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new FE("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new FE("invalid reset");if(B!=null&&typeof B!="boolean")throw new FE("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(U9.isStream(a)){this.body=a;let Q=this.body._readableState;(!Q||!Q.autoDestroy)&&(this.endHandler=function(){U9.destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=X=>{this.abort?this.abort(X):this.error=X},this.body.on("error",this.errorHandler)}else if(U9.isBuffer(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(U9.isFormDataLike(a)||U9.isIterable(a)||U9.isBlobLike(a))this.body=a;else throw new FE("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?U9.buildURL(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new FE("headers array must be even");for(let Q=0;Q{I.close()}):$qo(r)||I.enqueue(new Uint8Array(C)),I.desiredSize>0},async cancel(I){await f.return()},type:void 0})}return[{stream:r,source:a,length:o},l]}function s$o(e,t=!1){return B$||(B$=wt("stream/web").ReadableStream),e instanceof B$&&(Lmr(!DBe.isDisturbed(e),"The body has already been consumed."),Lmr(!e.locked,"The stream is locked.")),a4n(e,t)}function o$o(e){let[t,r]=e.stream.tee(),n=Kqo(r,{transfer:[r]}),[,a]=n.tee();return e.stream=t,{stream:a,length:e.length,source:e.source}}async function*i4n(e){if(e)if(o4n(e))yield e;else{let t=e.stream;if(DBe.isDisturbed(t))throw new TypeError("The body has already been consumed.");if(t.locked)throw new TypeError("The stream is locked.");t[qqo]=!0,yield*t}}function Vmr(e){if(e.aborted)throw new s4n("The operation was aborted.","AbortError")}function a$o(e){return{blob(){return fft(this,r=>{let n=g$o(this);return n==="failure"?n="":n&&(n=n$o(n)),new jqo([r],{type:n})},e)},arrayBuffer(){return fft(this,r=>new Uint8Array(r).buffer,e)},text(){return fft(this,c4n,e)},json(){return fft(this,u$o,e)},async formData(){Zmr.brandCheck(this,e),Vmr(this[w$]);let r=this.headers.get("Content-Type");if(/multipart\/form-data/.test(r)){let n={};for(let[A,f]of this.headers)n[A.toLowerCase()]=f;let a=new r4n,o;try{o=new Hqo({headers:n,preservePath:!0})}catch(A){throw new s4n(`${A}`,"AbortError")}o.on("field",(A,f)=>{a.append(A,f)}),o.on("file",(A,f,I,C,b)=>{let E=[];if(C==="base64"||C.toLowerCase()==="base64"){let N="";f.on("data",B=>{N+=B.toString().replace(/[\r\n]/gm,"");let F=N.length-N.length%4;E.push(Buffer.from(N.slice(0,F),"base64")),N=N.slice(F)}),f.on("end",()=>{E.push(Buffer.from(N,"base64")),a.append(A,new n4n(E,I,{type:b}))})}else f.on("data",N=>{E.push(N)}),f.on("end",()=>{a.append(A,new n4n(E,I,{type:b}))})});let l=new Promise((A,f)=>{o.on("finish",A),o.on("error",I=>f(new TypeError(I)))});if(this.body!==null)for await(let A of i4n(this[w$].body))o.write(A);return o.end(),await l,a}else if(/application\/x-www-form-urlencoded/.test(r)){let n;try{let o="",l=new TextDecoder("utf-8",{ignoreBOM:!0});for await(let A of i4n(this[w$].body)){if(!o4n(A))throw new TypeError("Expected Uint8Array chunk");o+=l.decode(A,{stream:!0})}o+=l.decode(),n=new URLSearchParams(o)}catch(o){throw Object.assign(new TypeError,{cause:o})}let a=new r4n;for(let[o,l]of n)a.append(o,l);return a}else throw await Promise.resolve(),Vmr(this[w$]),Zmr.errors.exception({header:`${e.name}.formData`,message:"Could not parse content as FormData."})}}}function c$o(e){Object.assign(e.prototype,a$o(e))}async function fft(e,t,r){if(Zmr.brandCheck(e,r),Vmr(e[w$]),l$o(e[w$].body))throw new TypeError("Body is unusable");let n=Jqo(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[w$].body==null?(o(new Uint8Array),n.promise):(await Uqo(e[w$].body,o,a),n.promise)}function l$o(e){return e!=null&&(e.stream.locked||DBe.isDisturbed(e.stream))}function c4n(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),i$o.decode(e))}function u$o(e){return JSON.parse(c4n(e))}function g$o(e){let{headersList:t}=e[w$],r=t.get("content-type");return r===null?"failure":r$o(r)}l4n.exports={extractBody:a4n,safelyExtractBody:s$o,cloneBody:o$o,mixinBody:c$o}});var d4n=H((fiu,A4n)=>{"use strict";var{InvalidArgumentError:FE,NotSupportedError:A$o}=Ub(),T$=wt("assert"),{kHTTP2BuildRequest:d$o,kHTTP2CopyHeaders:p$o,kHTTP1BuildRequest:f$o}=GE(),U9=zC(),u4n=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/,g4n=/[^\t\x20-\x7e\x80-\xff]/,I$o=/[^\u0021-\u00ff]/,TX=Symbol("handler"),sT={},Pmr;try{let e=wt("diagnostics_channel");sT.create=e.channel("undici:request:create"),sT.bodySent=e.channel("undici:request:bodySent"),sT.headers=e.channel("undici:request:headers"),sT.trailers=e.channel("undici:request:trailers"),sT.error=e.channel("undici:request:error")}catch{sT.create={hasSubscribers:!1},sT.bodySent={hasSubscribers:!1},sT.headers={hasSubscribers:!1},sT.trailers={hasSubscribers:!1},sT.error={hasSubscribers:!1}}var Wmr=class e{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B},F){if(typeof r!="string")throw new FE("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new FE("path must be an absolute URL or start with a slash");if(I$o.exec(r)!==null)throw new FE("invalid request path");if(typeof n!="string")throw new FE("method must be a string");if(u4n.exec(n)===null)throw new FE("invalid request method");if(I&&typeof I!="string")throw new FE("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new FE("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new FE("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new FE("invalid reset");if(B!=null&&typeof B!="boolean")throw new FE("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(U9.isStream(a)){this.body=a;let Q=this.body._readableState;(!Q||!Q.autoDestroy)&&(this.endHandler=function(){U9.destroy(this)},this.body.on("end",this.endHandler)),this.errorHandler=X=>{this.abort?this.abort(X):this.error=X},this.body.on("error",this.errorHandler)}else if(U9.isBuffer(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(U9.isFormDataLike(a)||U9.isIterable(a)||U9.isBlobLike(a))this.body=a;else throw new FE("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?U9.buildURL(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers="",this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new FE("headers array must be even");for(let Q=0;Q{"use strict";var h$o=wt("events"),Omr=class extends h$o{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};p4n.exports=Omr});var EHe=H((Iiu,f4n)=>{"use strict";var m$o=Ift(),{ClientDestroyedError:Mmr,ClientClosedError:C$o,InvalidArgumentError:kBe}=Ub(),{kDestroy:_$o,kClose:y$o,kDispatch:Hmr,kInterceptors:LIe}=GE(),xBe=Symbol("destroyed"),bHe=Symbol("closed"),R$=Symbol("onDestroyed"),GBe=Symbol("onClosed"),hft=Symbol("Intercepted Dispatch"),Ymr=class extends m$o{constructor(){super(),this[xBe]=!1,this[R$]=null,this[bHe]=!1,this[GBe]=[]}get destroyed(){return this[xBe]}get closed(){return this[bHe]}get interceptors(){return this[LIe]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[LIe][r]!="function")throw new kBe("interceptor must be an function")}this[LIe]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new kBe("invalid callback");if(this[xBe]){queueMicrotask(()=>t(new Mmr,null));return}if(this[bHe]){this[GBe]?this[GBe].push(t):queueMicrotask(()=>t(null,null));return}this[bHe]=!0,this[GBe].push(t);let r=()=>{let n=this[GBe];this[GBe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new kBe("invalid callback");if(this[xBe]){this[R$]?this[R$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new Mmr),this[xBe]=!0,this[R$]=this[R$]||[],this[R$].push(r);let n=()=>{let a=this[R$];this[R$]=null;for(let o=0;o{queueMicrotask(n)})}[hft](t,r){if(!this[LIe]||this[LIe].length===0)return this[hft]=this[Hmr],this[Hmr](t,r);let n=this[Hmr].bind(this);for(let a=this[LIe].length-1;a>=0;a--)n=this[LIe][a](n);return this[hft]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new kBe("handler must be an object");try{if(!t||typeof t!="object")throw new kBe("opts must be an object.");if(this[xBe]||this[R$])throw new Mmr;if(this[bHe])throw new C$o;return this[hft](t,r)}catch(n){if(typeof r.onError!="function")throw new kBe("invalid onError method");return r.onError(n),!1}}};f4n.exports=Ymr});var SHe=H((Ciu,m4n)=>{"use strict";var b$o=wt("net"),I4n=wt("assert"),h4n=zC(),{InvalidArgumentError:E$o,ConnectTimeoutError:S$o}=Ub(),Qmr,Xmr;global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE?Xmr=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function v$o({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,...a}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new E$o("maxCachedSessions must be a positive integer or zero");let o={path:r,...a},l=new Xmr(t??100);return n=n??1e4,e=e??!1,function({hostname:f,host:I,protocol:C,port:b,servername:E,localAddress:N,httpSocket:B},F){let Q;if(C==="https:"){Qmr||(Qmr=wt("tls")),E=E||o.servername||h4n.getServerName(I)||null;let ae=E||f,ne=l.get(ae)||null;I4n(ae),Q=Qmr.connect({highWaterMark:16384,...o,servername:E,session:ne,localAddress:N,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:B,port:b||443,host:f}),Q.on("session",function(ce){l.set(ae,ce)})}else I4n(!B,"httpSocket can only be sent on TLS update"),Q=b$o.connect({highWaterMark:64*1024,...o,localAddress:N,port:b||80,host:f});if(o.keepAlive==null||o.keepAlive){let ae=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;Q.setKeepAlive(!0,ae)}let X=B$o(()=>w$o(Q),n);return Q.setNoDelay(!0).once(C==="https:"?"secureConnect":"connect",function(){if(X(),F){let ae=F;F=null,ae(null,this)}}).on("error",function(ae){if(X(),F){let ne=F;F=null,ne(ae)}}),Q}}function B$o(e,t){if(!t)return()=>{};let r=null,n=null,a=setTimeout(()=>{r=setImmediate(()=>{process.platform==="win32"?n=setImmediate(()=>e()):e()})},t);return()=>{clearTimeout(a),clearImmediate(r),clearImmediate(n)}}function w$o(e){h4n.destroy(e,new S$o)}m4n.exports=v$o});var C4n=H(mft=>{"use strict";Object.defineProperty(mft,"__esModule",{value:!0});mft.enumToMap=void 0;function T$o(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}mft.enumToMap=T$o});var _4n=H(xu=>{"use strict";Object.defineProperty(xu,"__esModule",{value:!0});xu.SPECIAL_HEADERS=xu.HEADER_STATE=xu.MINOR=xu.MAJOR=xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS=xu.TOKEN=xu.STRICT_TOKEN=xu.HEX=xu.URL_CHAR=xu.STRICT_URL_CHAR=xu.USERINFO_CHARS=xu.MARK=xu.ALPHANUM=xu.NUM=xu.HEX_MAP=xu.NUM_MAP=xu.ALPHA=xu.FINISH=xu.H_METHOD_MAP=xu.METHOD_MAP=xu.METHODS_RTSP=xu.METHODS_ICE=xu.METHODS_HTTP=xu.METHODS=xu.LENIENT_FLAGS=xu.FLAGS=xu.TYPE=xu.ERROR=void 0;var R$o=C4n(),N$o;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(N$o=xu.ERROR||(xu.ERROR={}));var D$o;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(D$o=xu.TYPE||(xu.TYPE={}));var k$o;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(k$o=xu.FLAGS||(xu.FLAGS={}));var x$o;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(x$o=xu.LENIENT_FLAGS||(xu.LENIENT_FLAGS={}));var Zp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Zp=xu.METHODS||(xu.METHODS={}));xu.METHODS_HTTP=[Zp.DELETE,Zp.GET,Zp.HEAD,Zp.POST,Zp.PUT,Zp.CONNECT,Zp.OPTIONS,Zp.TRACE,Zp.COPY,Zp.LOCK,Zp.MKCOL,Zp.MOVE,Zp.PROPFIND,Zp.PROPPATCH,Zp.SEARCH,Zp.UNLOCK,Zp.BIND,Zp.REBIND,Zp.UNBIND,Zp.ACL,Zp.REPORT,Zp.MKACTIVITY,Zp.CHECKOUT,Zp.MERGE,Zp["M-SEARCH"],Zp.NOTIFY,Zp.SUBSCRIBE,Zp.UNSUBSCRIBE,Zp.PATCH,Zp.PURGE,Zp.MKCALENDAR,Zp.LINK,Zp.UNLINK,Zp.PRI,Zp.SOURCE];xu.METHODS_ICE=[Zp.SOURCE];xu.METHODS_RTSP=[Zp.OPTIONS,Zp.DESCRIBE,Zp.ANNOUNCE,Zp.SETUP,Zp.PLAY,Zp.PAUSE,Zp.TEARDOWN,Zp.GET_PARAMETER,Zp.SET_PARAMETER,Zp.REDIRECT,Zp.RECORD,Zp.FLUSH,Zp.GET,Zp.POST];xu.METHOD_MAP=R$o.enumToMap(Zp);xu.H_METHOD_MAP={};Object.keys(xu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(xu.H_METHOD_MAP[e]=xu.METHOD_MAP[e])});var G$o;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(G$o=xu.FINISH||(xu.FINISH={}));xu.ALPHA=[];for(let e=65;e<=90;e++)xu.ALPHA.push(String.fromCharCode(e)),xu.ALPHA.push(String.fromCharCode(e+32));xu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};xu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};xu.NUM=["0","1","2","3","4","5","6","7","8","9"];xu.ALPHANUM=xu.ALPHA.concat(xu.NUM);xu.MARK=["-","_",".","!","~","*","'","(",")"];xu.USERINFO_CHARS=xu.ALPHANUM.concat(xu.MARK).concat(["%",";",":","&","=","+","$",","]);xu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(xu.ALPHANUM);xu.URL_CHAR=xu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)xu.URL_CHAR.push(e);xu.HEX=xu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);xu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(xu.ALPHANUM);xu.TOKEN=xu.STRICT_TOKEN.concat([" "]);xu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&xu.HEADER_CHARS.push(e);xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS.filter(e=>e!==44);xu.MAJOR=xu.NUM_MAP;xu.MINOR=xu.MAJOR;var FBe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(FBe=xu.HEADER_STATE||(xu.HEADER_STATE={}));xu.SPECIAL_HEADERS={connection:FBe.CONNECTION,"content-length":FBe.CONTENT_LENGTH,"proxy-connection":FBe.CONNECTION,"transfer-encoding":FBe.TRANSFER_ENCODING,upgrade:FBe.UPGRADE}});var Kmr=H((biu,E4n)=>{"use strict";var N$=zC(),{kBodyUsed:vHe}=GE(),Umr=wt("assert"),{InvalidArgumentError:F$o}=Ub(),Z$o=wt("events"),L$o=[300,301,302,303,307,308],y4n=Symbol("body"),Cft=class{constructor(t){this[y4n]=t,this[vHe]=!1}async*[Symbol.asyncIterator](){Umr(!this[vHe],"disturbed"),this[vHe]=!0,yield*this[y4n]}},Jmr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new F$o("maxRedirections must be a positive number");N$.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],N$.isStream(this.opts.body)?(N$.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Umr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[vHe]=!1,Z$o.prototype.on.call(this.opts.body,"data",function(){this[vHe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Cft(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&N$.isIterable(this.opts.body)&&(this.opts.body=new Cft(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||N$.isDisturbed(this.opts.body)?null:V$o(t,r),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=N$.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=P$o(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function V$o(e,t){if(L$o.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var W$o=Kmr();function O$o({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new W$o(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}S4n.exports=O$o});var jmr=H((Siu,v4n)=>{v4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var w4n=H((viu,B4n)=>{B4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var kHe=H((Biu,X4n)=>{"use strict";var kA=wt("assert"),N4n=wt("net"),M$o=wt("http"),{pipeline:H$o}=wt("stream"),vp=zC(),zmr=WQn(),$mr=d4n(),Y$o=EHe(),{RequestContentLengthMismatchError:D$,ResponseContentLengthMismatchError:Q$o,InvalidArgumentError:$B,RequestAbortedError:aCr,HeadersTimeoutError:X$o,HeadersOverflowError:J$o,SocketError:LBe,InformationalError:m8,BodyTimeoutError:U$o,HTTPParserError:K$o,ResponseExceededMaxSizeError:j$o,ClientDestroyedError:z$o}=Ub(),q$o=SHe(),{kUrl:Rk,kReset:GZ,kServerName:Joe,kClient:C8,kBusy:eCr,kParser:Pv,kConnect:$$o,kBlocking:VBe,kResuming:VIe,kRunning:TS,kPending:WIe,kSize:PIe,kWriting:k$,kQueue:L1,kConnected:eea,kConnecting:ZBe,kNeedDrain:Koe,kNoRef:BHe,kKeepAliveDefaultTimeout:tCr,kHostHeader:D4n,kPendingIdx:HW,kRunningIdx:V1,kError:Nk,kPipelining:joe,kSocket:Wv,kKeepAliveTimeoutValue:RHe,kMaxHeadersSize:Eft,kKeepAliveMaxTimeout:k4n,kKeepAliveTimeoutThreshold:x4n,kHeadersTimeout:G4n,kBodyTimeout:F4n,kStrictContentLength:NHe,kConnector:wHe,kMaxRedirections:tea,kMaxRequests:DHe,kCounter:Z4n,kClose:rea,kDestroy:nea,kDispatch:iea,kInterceptors:sea,kLocalAddress:THe,kMaxResponseSize:L4n,kHTTPConnVersion:_8,kHost:V4n,kHTTP2Session:YW,kHTTP2SessionState:vft,kHTTP2BuildRequest:oea,kHTTP2CopyHeaders:aea,kHTTP1BuildRequest:cea}=GE(),Bft;try{Bft=wt("http2")}catch{Bft={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:lea,HTTP2_HEADER_METHOD:uea,HTTP2_HEADER_PATH:gea,HTTP2_HEADER_SCHEME:Aea,HTTP2_HEADER_CONTENT_LENGTH:dea,HTTP2_HEADER_EXPECT:pea,HTTP2_HEADER_STATUS:fea}}=Bft,T4n=!1,yft=Buffer[Symbol.species],Uoe=Symbol("kClosedResolve"),_G={};try{let e=wt("diagnostics_channel");_G.sendHeaders=e.channel("undici:client:sendHeaders"),_G.beforeConnect=e.channel("undici:client:beforeConnect"),_G.connectError=e.channel("undici:client:connectError"),_G.connected=e.channel("undici:client:connected")}catch{_G.sendHeaders={hasSubscribers:!1},_G.beforeConnect={hasSubscribers:!1},_G.connectError={hasSubscribers:!1},_G.connected={hasSubscribers:!1}}var rCr=class extends Y$o{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,allowH2:k,maxConcurrentStreams:et}={}){if(super(),C!==void 0)throw new $B("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new $B("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new $B("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new $B("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new $B("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new $B("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new $B("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new $B("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new $B("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new $B("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new $B("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new $B("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new $B("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new $B("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new $B("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new $B("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||N4n.isIP(de)===0))throw new $B("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new $B("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new $B("autoSelectFamilyAttemptTimeout must be a positive number");if(k!=null&&typeof k!="boolean")throw new $B("allowH2 must be a valid boolean value");if(et!=null&&(typeof et!="number"||et<1))throw new $B("maxConcurrentStreams must be a possitive integer, greater than 0");typeof fe!="function"&&(fe=q$o({...X,maxCachedSessions:ne,allowH2:k,socketPath:F,timeout:A,...vp.nodeHasAutoSelectFamily&&Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),this[sea]=r&&r.Client&&Array.isArray(r.Client)?r.Client:[_ea({maxRedirections:ce})],this[Rk]=vp.parseOrigin(t),this[wHe]=fe,this[Wv]=null,this[joe]=Q??1,this[Eft]=n||M$o.maxHeaderSize,this[tCr]=b??4e3,this[k4n]=N??6e5,this[x4n]=B??1e3,this[RHe]=this[tCr],this[Joe]=null,this[THe]=de??null,this[VIe]=0,this[Koe]=0,this[D4n]=`host: ${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}\r +`}function yHe(e,t,r,n=!1){if(r&&typeof r=="object"&&!Array.isArray(r))throw new FE(`invalid ${t} header`);if(r===void 0)return;if(e.host===null&&t.length===4&&t.toLowerCase()==="host"){if(g4n.exec(r)!==null)throw new FE(`invalid ${t} header`);e.host=r}else if(e.contentLength===null&&t.length===14&&t.toLowerCase()==="content-length"){if(e.contentLength=parseInt(r,10),!Number.isFinite(e.contentLength))throw new FE("invalid content-length header")}else if(e.contentType===null&&t.length===12&&t.toLowerCase()==="content-type")e.contentType=r,n?e.headers[t]=ZIe(t,r,n):e.headers+=ZIe(t,r);else{if(t.length===17&&t.toLowerCase()==="transfer-encoding")throw new FE("invalid transfer-encoding header");if(t.length===10&&t.toLowerCase()==="connection"){let a=typeof r=="string"?r.toLowerCase():null;if(a!=="close"&&a!=="keep-alive")throw new FE("invalid connection header");a==="close"&&(e.reset=!0)}else{if(t.length===10&&t.toLowerCase()==="keep-alive")throw new FE("invalid keep-alive header");if(t.length===7&&t.toLowerCase()==="upgrade")throw new FE("invalid upgrade header");if(t.length===6&&t.toLowerCase()==="expect")throw new A$o("expect header not supported");if(u4n.exec(t)===null)throw new FE("invalid header key");if(Array.isArray(r))for(let a=0;a{"use strict";var h$o=wt("events"),Omr=class extends h$o{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}};p4n.exports=Omr});var EHe=H((hiu,f4n)=>{"use strict";var m$o=Ift(),{ClientDestroyedError:Mmr,ClientClosedError:C$o,InvalidArgumentError:kBe}=Ub(),{kDestroy:_$o,kClose:y$o,kDispatch:Hmr,kInterceptors:LIe}=GE(),xBe=Symbol("destroyed"),bHe=Symbol("closed"),R$=Symbol("onDestroyed"),GBe=Symbol("onClosed"),hft=Symbol("Intercepted Dispatch"),Ymr=class extends m$o{constructor(){super(),this[xBe]=!1,this[R$]=null,this[bHe]=!1,this[GBe]=[]}get destroyed(){return this[xBe]}get closed(){return this[bHe]}get interceptors(){return this[LIe]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[LIe][r]!="function")throw new kBe("interceptor must be an function")}this[LIe]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new kBe("invalid callback");if(this[xBe]){queueMicrotask(()=>t(new Mmr,null));return}if(this[bHe]){this[GBe]?this[GBe].push(t):queueMicrotask(()=>t(null,null));return}this[bHe]=!0,this[GBe].push(t);let r=()=>{let n=this[GBe];this[GBe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new kBe("invalid callback");if(this[xBe]){this[R$]?this[R$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new Mmr),this[xBe]=!0,this[R$]=this[R$]||[],this[R$].push(r);let n=()=>{let a=this[R$];this[R$]=null;for(let o=0;o{queueMicrotask(n)})}[hft](t,r){if(!this[LIe]||this[LIe].length===0)return this[hft]=this[Hmr],this[Hmr](t,r);let n=this[Hmr].bind(this);for(let a=this[LIe].length-1;a>=0;a--)n=this[LIe][a](n);return this[hft]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new kBe("handler must be an object");try{if(!t||typeof t!="object")throw new kBe("opts must be an object.");if(this[xBe]||this[R$])throw new Mmr;if(this[bHe])throw new C$o;return this[hft](t,r)}catch(n){if(typeof r.onError!="function")throw new kBe("invalid onError method");return r.onError(n),!1}}};f4n.exports=Ymr});var SHe=H((_iu,m4n)=>{"use strict";var b$o=wt("net"),I4n=wt("assert"),h4n=zC(),{InvalidArgumentError:E$o,ConnectTimeoutError:S$o}=Ub(),Qmr,Xmr;global.FinalizationRegistry&&!process.env.NODE_V8_COVERAGE?Xmr=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function v$o({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,...a}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new E$o("maxCachedSessions must be a positive integer or zero");let o={path:r,...a},l=new Xmr(t??100);return n=n??1e4,e=e??!1,function({hostname:f,host:I,protocol:C,port:b,servername:E,localAddress:N,httpSocket:B},F){let Q;if(C==="https:"){Qmr||(Qmr=wt("tls")),E=E||o.servername||h4n.getServerName(I)||null;let ae=E||f,ne=l.get(ae)||null;I4n(ae),Q=Qmr.connect({highWaterMark:16384,...o,servername:E,session:ne,localAddress:N,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:B,port:b||443,host:f}),Q.on("session",function(ce){l.set(ae,ce)})}else I4n(!B,"httpSocket can only be sent on TLS update"),Q=b$o.connect({highWaterMark:64*1024,...o,localAddress:N,port:b||80,host:f});if(o.keepAlive==null||o.keepAlive){let ae=o.keepAliveInitialDelay===void 0?6e4:o.keepAliveInitialDelay;Q.setKeepAlive(!0,ae)}let X=B$o(()=>w$o(Q),n);return Q.setNoDelay(!0).once(C==="https:"?"secureConnect":"connect",function(){if(X(),F){let ae=F;F=null,ae(null,this)}}).on("error",function(ae){if(X(),F){let ne=F;F=null,ne(ae)}}),Q}}function B$o(e,t){if(!t)return()=>{};let r=null,n=null,a=setTimeout(()=>{r=setImmediate(()=>{process.platform==="win32"?n=setImmediate(()=>e()):e()})},t);return()=>{clearTimeout(a),clearImmediate(r),clearImmediate(n)}}function w$o(e){h4n.destroy(e,new S$o)}m4n.exports=v$o});var C4n=H(mft=>{"use strict";Object.defineProperty(mft,"__esModule",{value:!0});mft.enumToMap=void 0;function T$o(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}mft.enumToMap=T$o});var _4n=H(xu=>{"use strict";Object.defineProperty(xu,"__esModule",{value:!0});xu.SPECIAL_HEADERS=xu.HEADER_STATE=xu.MINOR=xu.MAJOR=xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS=xu.TOKEN=xu.STRICT_TOKEN=xu.HEX=xu.URL_CHAR=xu.STRICT_URL_CHAR=xu.USERINFO_CHARS=xu.MARK=xu.ALPHANUM=xu.NUM=xu.HEX_MAP=xu.NUM_MAP=xu.ALPHA=xu.FINISH=xu.H_METHOD_MAP=xu.METHOD_MAP=xu.METHODS_RTSP=xu.METHODS_ICE=xu.METHODS_HTTP=xu.METHODS=xu.LENIENT_FLAGS=xu.FLAGS=xu.TYPE=xu.ERROR=void 0;var R$o=C4n(),N$o;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(N$o=xu.ERROR||(xu.ERROR={}));var D$o;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(D$o=xu.TYPE||(xu.TYPE={}));var k$o;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(k$o=xu.FLAGS||(xu.FLAGS={}));var x$o;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(x$o=xu.LENIENT_FLAGS||(xu.LENIENT_FLAGS={}));var Zp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Zp=xu.METHODS||(xu.METHODS={}));xu.METHODS_HTTP=[Zp.DELETE,Zp.GET,Zp.HEAD,Zp.POST,Zp.PUT,Zp.CONNECT,Zp.OPTIONS,Zp.TRACE,Zp.COPY,Zp.LOCK,Zp.MKCOL,Zp.MOVE,Zp.PROPFIND,Zp.PROPPATCH,Zp.SEARCH,Zp.UNLOCK,Zp.BIND,Zp.REBIND,Zp.UNBIND,Zp.ACL,Zp.REPORT,Zp.MKACTIVITY,Zp.CHECKOUT,Zp.MERGE,Zp["M-SEARCH"],Zp.NOTIFY,Zp.SUBSCRIBE,Zp.UNSUBSCRIBE,Zp.PATCH,Zp.PURGE,Zp.MKCALENDAR,Zp.LINK,Zp.UNLINK,Zp.PRI,Zp.SOURCE];xu.METHODS_ICE=[Zp.SOURCE];xu.METHODS_RTSP=[Zp.OPTIONS,Zp.DESCRIBE,Zp.ANNOUNCE,Zp.SETUP,Zp.PLAY,Zp.PAUSE,Zp.TEARDOWN,Zp.GET_PARAMETER,Zp.SET_PARAMETER,Zp.REDIRECT,Zp.RECORD,Zp.FLUSH,Zp.GET,Zp.POST];xu.METHOD_MAP=R$o.enumToMap(Zp);xu.H_METHOD_MAP={};Object.keys(xu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(xu.H_METHOD_MAP[e]=xu.METHOD_MAP[e])});var G$o;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(G$o=xu.FINISH||(xu.FINISH={}));xu.ALPHA=[];for(let e=65;e<=90;e++)xu.ALPHA.push(String.fromCharCode(e)),xu.ALPHA.push(String.fromCharCode(e+32));xu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};xu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};xu.NUM=["0","1","2","3","4","5","6","7","8","9"];xu.ALPHANUM=xu.ALPHA.concat(xu.NUM);xu.MARK=["-","_",".","!","~","*","'","(",")"];xu.USERINFO_CHARS=xu.ALPHANUM.concat(xu.MARK).concat(["%",";",":","&","=","+","$",","]);xu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(xu.ALPHANUM);xu.URL_CHAR=xu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)xu.URL_CHAR.push(e);xu.HEX=xu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);xu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(xu.ALPHANUM);xu.TOKEN=xu.STRICT_TOKEN.concat([" "]);xu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&xu.HEADER_CHARS.push(e);xu.CONNECTION_TOKEN_CHARS=xu.HEADER_CHARS.filter(e=>e!==44);xu.MAJOR=xu.NUM_MAP;xu.MINOR=xu.MAJOR;var FBe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(FBe=xu.HEADER_STATE||(xu.HEADER_STATE={}));xu.SPECIAL_HEADERS={connection:FBe.CONNECTION,"content-length":FBe.CONTENT_LENGTH,"proxy-connection":FBe.CONNECTION,"transfer-encoding":FBe.TRANSFER_ENCODING,upgrade:FBe.UPGRADE}});var Kmr=H((Eiu,E4n)=>{"use strict";var N$=zC(),{kBodyUsed:vHe}=GE(),Umr=wt("assert"),{InvalidArgumentError:F$o}=Ub(),Z$o=wt("events"),L$o=[300,301,302,303,307,308],y4n=Symbol("body"),Cft=class{constructor(t){this[y4n]=t,this[vHe]=!1}async*[Symbol.asyncIterator](){Umr(!this[vHe],"disturbed"),this[vHe]=!0,yield*this[y4n]}},Jmr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new F$o("maxRedirections must be a positive number");N$.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],N$.isStream(this.opts.body)?(N$.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){Umr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[vHe]=!1,Z$o.prototype.on.call(this.opts.body,"data",function(){this[vHe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new Cft(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&N$.isIterable(this.opts.body)&&(this.opts.body=new Cft(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||N$.isDisturbed(this.opts.body)?null:V$o(t,r),this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=N$.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=P$o(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function V$o(e,t){if(L$o.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var W$o=Kmr();function O$o({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new W$o(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}S4n.exports=O$o});var jmr=H((viu,v4n)=>{v4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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ADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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FCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAU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YWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8="});var w4n=H((Biu,B4n)=>{B4n.exports="AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJs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IAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEB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QAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQID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YWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw=="});var kHe=H((wiu,X4n)=>{"use strict";var kA=wt("assert"),N4n=wt("net"),M$o=wt("http"),{pipeline:H$o}=wt("stream"),vp=zC(),zmr=WQn(),$mr=d4n(),Y$o=EHe(),{RequestContentLengthMismatchError:D$,ResponseContentLengthMismatchError:Q$o,InvalidArgumentError:$B,RequestAbortedError:aCr,HeadersTimeoutError:X$o,HeadersOverflowError:J$o,SocketError:LBe,InformationalError:m8,BodyTimeoutError:U$o,HTTPParserError:K$o,ResponseExceededMaxSizeError:j$o,ClientDestroyedError:z$o}=Ub(),q$o=SHe(),{kUrl:Rk,kReset:GZ,kServerName:Joe,kClient:C8,kBusy:eCr,kParser:Pv,kConnect:$$o,kBlocking:VBe,kResuming:VIe,kRunning:TS,kPending:WIe,kSize:PIe,kWriting:k$,kQueue:L1,kConnected:eea,kConnecting:ZBe,kNeedDrain:Koe,kNoRef:BHe,kKeepAliveDefaultTimeout:tCr,kHostHeader:D4n,kPendingIdx:HW,kRunningIdx:V1,kError:Nk,kPipelining:joe,kSocket:Wv,kKeepAliveTimeoutValue:RHe,kMaxHeadersSize:Eft,kKeepAliveMaxTimeout:k4n,kKeepAliveTimeoutThreshold:x4n,kHeadersTimeout:G4n,kBodyTimeout:F4n,kStrictContentLength:NHe,kConnector:wHe,kMaxRedirections:tea,kMaxRequests:DHe,kCounter:Z4n,kClose:rea,kDestroy:nea,kDispatch:iea,kInterceptors:sea,kLocalAddress:THe,kMaxResponseSize:L4n,kHTTPConnVersion:_8,kHost:V4n,kHTTP2Session:YW,kHTTP2SessionState:vft,kHTTP2BuildRequest:oea,kHTTP2CopyHeaders:aea,kHTTP1BuildRequest:cea}=GE(),Bft;try{Bft=wt("http2")}catch{Bft={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:lea,HTTP2_HEADER_METHOD:uea,HTTP2_HEADER_PATH:gea,HTTP2_HEADER_SCHEME:Aea,HTTP2_HEADER_CONTENT_LENGTH:dea,HTTP2_HEADER_EXPECT:pea,HTTP2_HEADER_STATUS:fea}}=Bft,T4n=!1,yft=Buffer[Symbol.species],Uoe=Symbol("kClosedResolve"),_G={};try{let e=wt("diagnostics_channel");_G.sendHeaders=e.channel("undici:client:sendHeaders"),_G.beforeConnect=e.channel("undici:client:beforeConnect"),_G.connectError=e.channel("undici:client:connectError"),_G.connected=e.channel("undici:client:connected")}catch{_G.sendHeaders={hasSubscribers:!1},_G.beforeConnect={hasSubscribers:!1},_G.connectError={hasSubscribers:!1},_G.connected={hasSubscribers:!1}}var rCr=class extends Y$o{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,allowH2:k,maxConcurrentStreams:et}={}){if(super(),C!==void 0)throw new $B("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new $B("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new $B("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new $B("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new $B("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new $B("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new $B("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new $B("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new $B("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new $B("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new $B("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new $B("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new $B("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new $B("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new $B("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new $B("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||N4n.isIP(de)===0))throw new $B("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new $B("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new $B("autoSelectFamilyAttemptTimeout must be a positive number");if(k!=null&&typeof k!="boolean")throw new $B("allowH2 must be a valid boolean value");if(et!=null&&(typeof et!="number"||et<1))throw new $B("maxConcurrentStreams must be a possitive integer, greater than 0");typeof fe!="function"&&(fe=q$o({...X,maxCachedSessions:ne,allowH2:k,socketPath:F,timeout:A,...vp.nodeHasAutoSelectFamily&&Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),this[sea]=r&&r.Client&&Array.isArray(r.Client)?r.Client:[_ea({maxRedirections:ce})],this[Rk]=vp.parseOrigin(t),this[wHe]=fe,this[Wv]=null,this[joe]=Q??1,this[Eft]=n||M$o.maxHeaderSize,this[tCr]=b??4e3,this[k4n]=N??6e5,this[x4n]=B??1e3,this[RHe]=this[tCr],this[Joe]=null,this[THe]=de??null,this[VIe]=0,this[Koe]=0,this[D4n]=`host: ${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}\r `,this[F4n]=f??3e5,this[G4n]=a??3e5,this[NHe]=ae??!0,this[tea]=ce,this[DHe]=ue,this[Uoe]=null,this[L4n]=be>-1?be:-1,this[_8]="h1",this[YW]=null,this[vft]=k?{openStreams:0,maxConcurrentStreams:et??100}:null,this[V4n]=`${this[Rk].hostname}${this[Rk].port?`:${this[Rk].port}`:""}`,this[L1]=[],this[V1]=0,this[HW]=0}get pipelining(){return this[joe]}set pipelining(t){this[joe]=t,QW(this,!0)}get[WIe](){return this[L1].length-this[HW]}get[TS](){return this[HW]-this[V1]}get[PIe](){return this[L1].length-this[V1]}get[eea](){return!!this[Wv]&&!this[ZBe]&&!this[Wv].destroyed}get[eCr](){let t=this[Wv];return t&&(t[GZ]||t[k$]||t[VBe])||this[PIe]>=(this[joe]||1)||this[WIe]>0}[$$o](t){M4n(this),this.once("connect",t)}[iea](t,r){let n=t.origin||this[Rk].origin,a=this[_8]==="h2"?$mr[oea](n,t,r):$mr[cea](n,t,r);return this[L1].push(a),this[VIe]||(vp.bodyLength(a.body)==null&&vp.isIterable(a.body)?(this[VIe]=1,process.nextTick(QW,this)):QW(this,!0)),this[VIe]&&this[Koe]!==2&&this[eCr]&&(this[Koe]=2),this[Koe]<2}async[rea](){return new Promise(t=>{this[PIe]?this[Uoe]=t:t(null)})}async[nea](t){return new Promise(r=>{let n=this[L1].splice(this[HW]);for(let o=0;o{this[Uoe]&&(this[Uoe](),this[Uoe]=null),r()};this[YW]!=null&&(vp.destroy(this[YW],t),this[YW]=null,this[vft]=null),this[Wv]?vp.destroy(this[Wv].on("close",a),t):queueMicrotask(a),QW(this)})}};function Iea(e){kA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[Wv][Nk]=e,Rft(this[C8],e)}function hea(e,t,r){let n=new m8(`HTTP/2: "frameError" received - type ${e}, code ${t}`);r===0&&(this[Wv][Nk]=n,Rft(this[C8],n))}function mea(){vp.destroy(this,new LBe("other side closed")),vp.destroy(this[Wv],new LBe("other side closed"))}function Cea(e){let t=this[C8],r=new m8(`HTTP/2: "GOAWAY" frame received with code ${e}`);if(t[Wv]=null,t[YW]=null,t.destroyed){kA(this[WIe]===0);let n=t[L1].splice(t[V1]);for(let a=0;a0){let n=t[L1][t[V1]];t[L1][t[V1]++]=null,FZ(t,n,r)}t[HW]=t[V1],kA(t[TS]===0),t.emit("disconnect",t[Rk],[t],r),QW(t)}var f8=_4n(),_ea=_ft(),yea=Buffer.alloc(0);async function bea(){let e=process.env.JEST_WORKER_ID?jmr():void 0,t;try{t=await WebAssembly.compile(Buffer.from(w4n(),"base64"))}catch{t=await WebAssembly.compile(Buffer.from(e||jmr(),"base64"))}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onStatus(new yft(I8.buffer,o,a))||0},wasm_on_message_begin:r=>(kA.strictEqual(TR.ptr,r),TR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onHeaderField(new yft(I8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onHeaderValue(new yft(I8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(kA.strictEqual(TR.ptr,r),TR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{kA.strictEqual(TR.ptr,r);let o=n-h8+I8.byteOffset;return TR.onBody(new yft(I8.buffer,o,a))||0},wasm_on_message_complete:r=>(kA.strictEqual(TR.ptr,r),TR.onMessageComplete()||0)}})}var qmr=null,nCr=bea();nCr.catch();var TR=null,I8=null,bft=0,h8=null,PBe=1,Sft=2,iCr=3,sCr=class{constructor(t,r,{exports:n}){kA(Number.isFinite(t[Eft])&&t[Eft]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(f8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[Eft],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[L4n]}setTimeout(t,r){this.timeoutType=r,t!==this.timeoutValue?(zmr.clearTimeout(this.timeout),t?(this.timeout=zmr.setTimeout(Eea,t,this),this.timeout.unref&&this.timeout.unref()):this.timeout=null,this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh()}resume(){this.socket.destroyed||!this.paused||(kA(this.ptr!=null),kA(TR==null),this.llhttp.llhttp_resume(this.ptr),kA(this.timeoutType===Sft),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||yea),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){kA(this.ptr!=null),kA(TR==null),kA(!this.paused);let{socket:r,llhttp:n}=this;t.length>bft&&(h8&&n.free(h8),bft=Math.ceil(t.length/4096)*4096,h8=n.malloc(bft)),new Uint8Array(n.memory.buffer,h8,bft).set(t);try{let a;try{I8=t,TR=this,a=n.llhttp_execute(this.ptr,h8,t.length)}catch(l){throw l}finally{TR=null,I8=null}let o=n.llhttp_get_error_pos(this.ptr)-h8;if(a===f8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===f8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==f8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new K$o(A,f8.ERROR[a],t.slice(o))}}catch(a){vp.destroy(r,a)}}destroy(){kA(this.ptr!=null),kA(TR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,zmr.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed||!r[L1][r[V1]])return-1}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];n.length===10&&n.toString().toLowerCase()==="keep-alive"?this.keepAlive+=t.toString():n.length===10&&n.toString().toLowerCase()==="connection"?this.connection+=t.toString():n.length===14&&n.toString().toLowerCase()==="content-length"&&(this.contentLength+=t.toString()),this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&vp.destroy(this.socket,new J$o)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;kA(r);let A=n[L1][n[V1]];kA(A),kA(!a.destroyed),kA(a===n[Wv]),kA(!this.paused),kA(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,a.unshift(t),a[Pv].destroy(),a[Pv]=null,a[C8]=null,a[Nk]=null,a.removeListener("error",W4n).removeListener("readable",P4n).removeListener("end",O4n).removeListener("close",oCr),n[Wv]=null,n[L1][n[V1]++]=null,n.emit("disconnect",n[Rk],[n],new m8("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){vp.destroy(a,f)}QW(n)}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[L1][a[V1]];if(!f)return-1;if(kA(!this.upgrade),kA(this.statusCode<200),t===100)return vp.destroy(o,new LBe("bad response",vp.getSocketInfo(o))),-1;if(r&&!f.upgrade)return vp.destroy(o,new LBe("bad upgrade",vp.getSocketInfo(o))),-1;if(kA.strictEqual(this.timeoutType,PBe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[GZ]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[F4n];this.setTimeout(C,Sft)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return kA(a[TS]===1),this.upgrade=!0,2;if(r)return kA(a[TS]===1),this.upgrade=!0,2;if(kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[joe]){let C=this.keepAlive?vp.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[x4n],a[k4n]);b<=0?o[GZ]=!0:a[RHe]=b}else a[RHe]=a[tCr]}else o[GZ]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[VBe]&&(o[VBe]=!1,QW(a)),I?f8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[L1][r[V1]];if(kA(l),kA.strictEqual(this.timeoutType,Sft),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),kA(a>=200),o>-1&&this.bytesRead+t.length>o)return vp.destroy(n,new j$o),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return f8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;let I=t[L1][t[V1]];if(kA(I),kA(n>=100),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",kA(this.headers.length%2===0),this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return vp.destroy(r,new Q$o),-1;if(I.onComplete(o),t[L1][t[V1]++]=null,r[k$])return kA.strictEqual(t[TS],0),vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED;if(f){if(r[GZ]&&t[TS]===0)return vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED;t[joe]===1?setImmediate(QW,t):QW(t)}else return vp.destroy(r,new m8("reset")),f8.ERROR.PAUSED}}};function Eea(e){let{socket:t,timeoutType:r,client:n}=e;r===PBe?(!t[k$]||t.writableNeedDrain||n[TS]>1)&&(kA(!e.paused,"cannot be paused while waiting for headers"),vp.destroy(t,new X$o)):r===Sft?e.paused||vp.destroy(t,new U$o):r===iCr&&(kA(n[TS]===0&&n[RHe]),vp.destroy(t,new m8("socket idle timeout")))}function P4n(){let{[Pv]:e}=this;e&&e.readMore()}function W4n(e){let{[C8]:t,[Pv]:r}=this;if(kA(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),t[_8]!=="h2"&&e.code==="ECONNRESET"&&r.statusCode&&!r.shouldKeepAlive){r.onMessageComplete();return}this[Nk]=e,Rft(this[C8],e)}function Rft(e,t){if(e[TS]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){kA(e[HW]===e[V1]);let r=e[L1].splice(e[V1]);for(let n=0;n0&&r.code!=="UND_ERR_INFO"){let n=e[L1][e[V1]];e[L1][e[V1]++]=null,FZ(e,n,r)}e[HW]=e[V1],kA(e[TS]===0),e.emit("disconnect",e[Rk],[e],r),QW(e)}async function M4n(e){kA(!e[ZBe]),kA(!e[Wv]);let{host:t,hostname:r,protocol:n,port:a}=e[Rk];if(r[0]==="["){let o=r.indexOf("]");kA(o!==-1);let l=r.substring(1,o);kA(N4n.isIP(l)),r=l}e[ZBe]=!0,_G.beforeConnect.hasSubscribers&&_G.beforeConnect.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe]});try{let o=await new Promise((A,f)=>{e[wHe]({host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},(I,C)=>{I?f(I):A(C)})});if(e.destroyed){vp.destroy(o.on("error",()=>{}),new z$o);return}if(e[ZBe]=!1,kA(o),o.alpnProtocol==="h2"){T4n||(T4n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let A=Bft.connect(e[Rk],{createConnection:()=>o,peerMaxConcurrentStreams:e[vft].maxConcurrentStreams});e[_8]="h2",A[C8]=e,A[Wv]=o,A.on("error",Iea),A.on("frameError",hea),A.on("end",mea),A.on("goaway",Cea),A.on("close",oCr),A.unref(),e[YW]=A,o[YW]=A}else qmr||(qmr=await nCr,nCr=null),o[BHe]=!1,o[k$]=!1,o[GZ]=!1,o[VBe]=!1,o[Pv]=new sCr(e,o,qmr);o[Z4n]=0,o[DHe]=e[DHe],o[C8]=e,o[Nk]=null,o.on("error",W4n).on("readable",P4n).on("end",O4n).on("close",oCr),e[Wv]=o,_G.connected.hasSubscribers&&_G.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe],socket:o}),e.emit("connect",e[Rk],[e])}catch(o){if(e.destroyed)return;if(e[ZBe]=!1,_G.connectError.hasSubscribers&&_G.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,servername:e[Joe],localAddress:e[THe]},connector:e[wHe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(kA(e[TS]===0);e[WIe]>0&&e[L1][e[HW]].servername===e[Joe];){let l=e[L1][e[HW]++];FZ(e,l,o)}else Rft(e,o);e.emit("connectionError",e[Rk],[e],o)}QW(e)}function R4n(e){e[Koe]=0,e.emit("drain",e[Rk],[e])}function QW(e,t){e[VIe]!==2&&(e[VIe]=2,Sea(e,t),e[VIe]=0,e[V1]>256&&(e[L1].splice(0,e[V1]),e[HW]-=e[V1],e[V1]=0))}function Sea(e,t){for(;;){if(e.destroyed){kA(e[WIe]===0);return}if(e[Uoe]&&!e[PIe]){e[Uoe](),e[Uoe]=null;return}let r=e[Wv];if(r&&!r.destroyed&&r.alpnProtocol!=="h2"){if(e[PIe]===0?!r[BHe]&&r.unref&&(r.unref(),r[BHe]=!0):r[BHe]&&r.ref&&(r.ref(),r[BHe]=!1),e[PIe]===0)r[Pv].timeoutType!==iCr&&r[Pv].setTimeout(e[RHe],iCr);else if(e[TS]>0&&r[Pv].statusCode<200&&r[Pv].timeoutType!==PBe){let a=e[L1][e[V1]],o=a.headersTimeout!=null?a.headersTimeout:e[G4n];r[Pv].setTimeout(o,PBe)}}if(e[eCr])e[Koe]=2;else if(e[Koe]===2){t?(e[Koe]=1,process.nextTick(R4n,e)):R4n(e);continue}if(e[WIe]===0||e[TS]>=(e[joe]||1))return;let n=e[L1][e[HW]];if(e[Rk].protocol==="https:"&&e[Joe]!==n.servername){if(e[TS]>0)return;if(e[Joe]=n.servername,r&&r.servername!==n.servername){vp.destroy(r,new m8("servername changed"));return}}if(e[ZBe])return;if(!r&&!e[YW]){M4n(e);return}if(r.destroyed||r[k$]||r[GZ]||r[VBe]||e[TS]>0&&!n.idempotent||e[TS]>0&&(n.upgrade||n.method==="CONNECT")||e[TS]>0&&vp.bodyLength(n.body)!==0&&(vp.isStream(n.body)||vp.isAsyncIterable(n.body)))return;!n.aborted&&vea(e,n)?e[HW]++:e[L1].splice(e[HW],1)}}function H4n(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function vea(e,t){if(e[_8]==="h2"){Bea(e,e[YW],t);return}let{body:r,method:n,path:a,host:o,upgrade:l,headers:A,blocking:f,reset:I}=t,C=n==="PUT"||n==="POST"||n==="PATCH";r&&typeof r.read=="function"&&r.read(0);let b=vp.bodyLength(r),E=b;if(E===null&&(E=t.contentLength),E===0&&!C&&(E=null),H4n(n)&&E>0&&t.contentLength!==null&&t.contentLength!==E){if(e[NHe])return FZ(e,t,new D$),!1;process.emitWarning(new D$)}let N=e[Wv];try{t.onConnect(F=>{t.aborted||t.completed||(FZ(e,t,F||new aCr),vp.destroy(N,new m8("aborted")))})}catch(F){FZ(e,t,F)}if(t.aborted)return!1;n==="HEAD"&&(N[GZ]=!0),(l||n==="CONNECT")&&(N[GZ]=!0),I!=null&&(N[GZ]=I),e[DHe]&&N[Z4n]++>=e[DHe]&&(N[GZ]=!0),f&&(N[VBe]=!0);let B=`${n} ${a} HTTP/1.1\r `;return typeof o=="string"?B+=`host: ${o}\r `:B+=e[D4n],l?B+=`connection: upgrade\r @@ -401,14 +401,14 @@ ${I.toString(16)}\r `,"latin1"):r===null&&t.write(`\r 0\r \r -`,"latin1"),r!==null&&a!==r){if(n[NHe])throw new D$;process.emitWarning(new D$)}t[Pv].timeout&&t[Pv].timeoutType===PBe&&t[Pv].timeout.refresh&&t[Pv].timeout.refresh(),QW(n)}}destroy(t){let{socket:r,client:n}=this;r[k$]=!1,t&&(kA(n[TS]<=1,"pipeline should only contain this request"),vp.destroy(r,t))}};function FZ(e,t,r){try{t.onError(r),kA(t.aborted)}catch(n){e.emit("error",n)}}X4n.exports=rCr});var U4n=H((Tiu,J4n)=>{"use strict";var Nft=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};J4n.exports=class{constructor(){this.head=this.tail=new Nft}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Nft),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var j4n=H((Riu,K4n)=>{var{kFree:wea,kConnected:Tea,kPending:Rea,kQueued:Nea,kRunning:Dea,kSize:kea}=GE(),OIe=Symbol("pool"),cCr=class{constructor(t){this[OIe]=t}get connected(){return this[OIe][Tea]}get free(){return this[OIe][wea]}get pending(){return this[OIe][Rea]}get queued(){return this[OIe][Nea]}get running(){return this[OIe][Dea]}get size(){return this[OIe][kea]}};K4n.exports=cCr});var pCr=H((Niu,oJn)=>{"use strict";var xea=EHe(),Gea=U4n(),{kConnected:lCr,kSize:z4n,kRunning:q4n,kPending:$4n,kQueued:xHe,kBusy:Fea,kFree:Zea,kUrl:Lea,kClose:Vea,kDestroy:Pea,kDispatch:Wea}=GE(),Oea=j4n(),K9=Symbol("clients"),ZZ=Symbol("needDrain"),GHe=Symbol("queue"),uCr=Symbol("closed resolve"),gCr=Symbol("onDrain"),eJn=Symbol("onConnect"),tJn=Symbol("onDisconnect"),rJn=Symbol("onConnectionError"),ACr=Symbol("get dispatcher"),iJn=Symbol("add client"),sJn=Symbol("remove client"),nJn=Symbol("stats"),dCr=class extends xea{constructor(){super(),this[GHe]=new Gea,this[K9]=[],this[xHe]=0;let t=this;this[gCr]=function(n,a){let o=t[GHe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[xHe]--,l=!this.dispatch(A.opts,A.handler)}this[ZZ]=l,!this[ZZ]&&t[ZZ]&&(t[ZZ]=!1,t.emit("drain",n,[t,...a])),t[uCr]&&o.isEmpty()&&Promise.all(t[K9].map(A=>A.close())).then(t[uCr])},this[eJn]=(r,n)=>{t.emit("connect",r,[t,...n])},this[tJn]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[rJn]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[nJn]=new Oea(this)}get[Fea](){return this[ZZ]}get[lCr](){return this[K9].filter(t=>t[lCr]).length}get[Zea](){return this[K9].filter(t=>t[lCr]&&!t[ZZ]).length}get[$4n](){let t=this[xHe];for(let{[$4n]:r}of this[K9])t+=r;return t}get[q4n](){let t=0;for(let{[q4n]:r}of this[K9])t+=r;return t}get[z4n](){let t=this[xHe];for(let{[z4n]:r}of this[K9])t+=r;return t}get stats(){return this[nJn]}async[Vea](){return this[GHe].isEmpty()?Promise.all(this[K9].map(t=>t.close())):new Promise(t=>{this[uCr]=t})}async[Pea](t){for(;;){let r=this[GHe].shift();if(!r)break;r.handler.onError(t)}return Promise.all(this[K9].map(r=>r.destroy(t)))}[Wea](t,r){let n=this[ACr]();return n?n.dispatch(t,r)||(n[ZZ]=!0,this[ZZ]=!this[ACr]()):(this[ZZ]=!0,this[GHe].push({opts:t,handler:r}),this[xHe]++),!this[ZZ]}[iJn](t){return t.on("drain",this[gCr]).on("connect",this[eJn]).on("disconnect",this[tJn]).on("connectionError",this[rJn]),this[K9].push(t),this[ZZ]&&process.nextTick(()=>{this[ZZ]&&this[gCr](t[Lea],[this,t])}),this}[sJn](t){t.close(()=>{let r=this[K9].indexOf(t);r!==-1&&this[K9].splice(r,1)}),this[ZZ]=this[K9].some(r=>!r[ZZ]&&r.closed!==!0&&r.destroyed!==!0)}};oJn.exports={PoolBase:dCr,kClients:K9,kNeedDrain:ZZ,kAddClient:iJn,kRemoveClient:sJn,kGetDispatcher:ACr}});var WBe=H((Diu,uJn)=>{"use strict";var{PoolBase:Mea,kClients:aJn,kNeedDrain:Hea,kAddClient:Yea,kGetDispatcher:Qea}=pCr(),Xea=kHe(),{InvalidArgumentError:fCr}=Ub(),ICr=zC(),{kUrl:cJn,kInterceptors:Jea}=GE(),Uea=SHe(),hCr=Symbol("options"),mCr=Symbol("connections"),lJn=Symbol("factory");function Kea(e,t){return new Xea(e,t)}var CCr=class extends Mea{constructor(t,{connections:r,factory:n=Kea,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new fCr("invalid connections");if(typeof n!="function")throw new fCr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new fCr("connect must be a function or an object");typeof a!="function"&&(a=Uea({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...ICr.nodeHasAutoSelectFamily&&I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[Jea]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[mCr]=r||null,this[cJn]=ICr.parseOrigin(t),this[hCr]={...ICr.deepClone(E),connect:a,allowH2:b},this[hCr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[lJn]=n}[Qea](){let t=this[aJn].find(r=>!r[Hea]);return t||((!this[mCr]||this[aJn].length{"use strict";var{BalancedPoolMissingUpstreamError:jea,InvalidArgumentError:zea}=Ub(),{PoolBase:qea,kClients:LZ,kNeedDrain:FHe,kAddClient:$ea,kRemoveClient:eta,kGetDispatcher:tta}=pCr(),rta=WBe(),{kUrl:_Cr,kInterceptors:nta}=GE(),{parseOrigin:gJn}=zC(),AJn=Symbol("factory"),Dft=Symbol("options"),dJn=Symbol("kGreatestCommonDivisor"),MIe=Symbol("kCurrentWeight"),HIe=Symbol("kIndex"),SM=Symbol("kWeight"),kft=Symbol("kMaxWeightPerServer"),xft=Symbol("kErrorPenalty");function pJn(e,t){return t===0?e:pJn(t,e%t)}function ita(e,t){return new rta(e,t)}var yCr=class extends qea{constructor(t=[],{factory:r=ita,...n}={}){if(super(),this[Dft]=n,this[HIe]=-1,this[MIe]=0,this[kft]=this[Dft].maxWeightPerServer||100,this[xft]=this[Dft].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new zea("factory must be a function.");this[nta]=n.interceptors&&n.interceptors.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[AJn]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=gJn(t).origin;if(this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[AJn](r,Object.assign({},this[Dft]));this[$ea](n),n.on("connect",()=>{n[SM]=Math.min(this[kft],n[SM]+this[xft])}),n.on("connectionError",()=>{n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats())});for(let a of this[LZ])a[SM]=this[kft];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[dJn]=this[LZ].map(t=>t[SM]).reduce(pJn,0)}removeUpstream(t){let r=gJn(t).origin,n=this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[eta](n),this}get upstreams(){return this[LZ].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[_Cr].origin)}[tta](){if(this[LZ].length===0)throw new jea;if(!this[LZ].find(o=>!o[FHe]&&o.closed!==!0&&o.destroyed!==!0)||this[LZ].map(o=>o[FHe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[LZ].findIndex(o=>!o[FHe]);for(;n++this[LZ][a][SM]&&!o[FHe]&&(a=this[HIe]),this[HIe]===0&&(this[MIe]=this[MIe]-this[dJn],this[MIe]<=0&&(this[MIe]=this[kft])),o[SM]>=this[MIe]&&!o[FHe])return o}return this[MIe]=this[LZ][a][SM],this[HIe]=a,this[LZ][a]}};fJn.exports=yCr});var bCr=H((xiu,CJn)=>{"use strict";var{kConnected:hJn,kSize:mJn}=GE(),Gft=class{constructor(t){this.value=t}deref(){return this.value[hJn]===0&&this.value[mJn]===0?void 0:this.value}},Fft=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[hJn]===0&&t[mJn]===0&&this.finalizer(r)})}};CJn.exports=function(){return process.env.NODE_V8_COVERAGE?{WeakRef:Gft,FinalizationRegistry:Fft}:{WeakRef:global.WeakRef||Gft,FinalizationRegistry:global.FinalizationRegistry||Fft}}});var ZHe=H((Giu,wJn)=>{"use strict";var{InvalidArgumentError:Zft}=Ub(),{kClients:zoe,kRunning:_Jn,kClose:sta,kDestroy:ota,kDispatch:ata,kInterceptors:cta}=GE(),lta=EHe(),uta=WBe(),gta=kHe(),Ata=zC(),dta=_ft(),{WeakRef:pta,FinalizationRegistry:fta}=bCr()(),yJn=Symbol("onConnect"),bJn=Symbol("onDisconnect"),EJn=Symbol("onConnectionError"),Ita=Symbol("maxRedirections"),SJn=Symbol("onDrain"),vJn=Symbol("factory"),BJn=Symbol("finalizer"),ECr=Symbol("options");function hta(e,t){return t&&t.connections===1?new gta(e,t):new uta(e,t)}var SCr=class extends lta{constructor({factory:t=hta,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new Zft("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new Zft("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new Zft("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[cta]=a.interceptors&&a.interceptors.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[dta({maxRedirections:r})],this[ECr]={...Ata.deepClone(a),connect:n},this[ECr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[Ita]=r,this[vJn]=t,this[zoe]=new Map,this[BJn]=new fta(l=>{let A=this[zoe].get(l);A!==void 0&&A.deref()===void 0&&this[zoe].delete(l)});let o=this;this[SJn]=(l,A)=>{o.emit("drain",l,[o,...A])},this[yJn]=(l,A)=>{o.emit("connect",l,[o,...A])},this[bJn]=(l,A,f)=>{o.emit("disconnect",l,[o,...A],f)},this[EJn]=(l,A,f)=>{o.emit("connectionError",l,[o,...A],f)}}get[_Jn](){let t=0;for(let r of this[zoe].values()){let n=r.deref();n&&(t+=n[_Jn])}return t}[ata](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new Zft("opts.origin must be a non-empty string or URL.");let a=this[zoe].get(n),o=a?a.deref():null;return o||(o=this[vJn](t.origin,this[ECr]).on("drain",this[SJn]).on("connect",this[yJn]).on("disconnect",this[bJn]).on("connectionError",this[EJn]),this[zoe].set(n,new pta(o)),this[BJn].register(o,n)),o.dispatch(t,r)}async[sta](){let t=[];for(let r of this[zoe].values()){let n=r.deref();n&&t.push(n.close())}await Promise.all(t)}async[ota](t){let r=[];for(let n of this[zoe].values()){let a=n.deref();a&&r.push(a.destroy(t))}await Promise.all(r)}};wJn.exports=SCr});var ZJn=H((Ziu,FJn)=>{"use strict";var DJn=wt("assert"),{Readable:mta}=wt("stream"),{RequestAbortedError:kJn,NotSupportedError:Cta,InvalidArgumentError:_ta}=Ub(),Pft=zC(),{ReadableStreamFrom:yta,toUSVString:bta}=zC(),vCr,XW=Symbol("kConsume"),Lft=Symbol("kReading"),qoe=Symbol("kBody"),TJn=Symbol("abort"),xJn=Symbol("kContentType"),RJn=()=>{};FJn.exports=class extends mta{constructor({resume:t,abort:r,contentType:n="",highWaterMark:a=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:a}),this._readableState.dataEmitted=!1,this[TJn]=r,this[XW]=null,this[qoe]=null,this[xJn]=n,this[Lft]=!1}destroy(t){return this.destroyed?this:(!t&&!this._readableState.endEmitted&&(t=new kJn),t&&this[TJn](),super.destroy(t))}emit(t,...r){return t==="data"?this._readableState.dataEmitted=!0:t==="error"&&(this._readableState.errorEmitted=!0),super.emit(t,...r)}on(t,...r){return(t==="data"||t==="readable")&&(this[Lft]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[Lft]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[XW]&&t!==null&&this.readableLength===0?(GJn(this[XW],t),this[Lft]?super.push(t):!0):super.push(t)}async text(){return Vft(this,"text")}async json(){return Vft(this,"json")}async blob(){return Vft(this,"blob")}async arrayBuffer(){return Vft(this,"arrayBuffer")}async formData(){throw new Cta}get bodyUsed(){return Pft.isDisturbed(this)}get body(){return this[qoe]||(this[qoe]=yta(this),this[XW]&&(this[qoe].getReader(),DJn(this[qoe].locked))),this[qoe]}dump(t){let r=t&&Number.isFinite(t.limit)?t.limit:262144,n=t&&t.signal;if(n)try{if(typeof n!="object"||!("aborted"in n))throw new _ta("signal must be an AbortSignal");Pft.throwIfAborted(n)}catch(a){return Promise.reject(a)}return this.closed?Promise.resolve(null):new Promise((a,o)=>{let l=n?Pft.addAbortListener(n,()=>{this.destroy()}):RJn;this.on("close",function(){l(),n&&n.aborted?o(n.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"})):a(null)}).on("error",RJn).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Eta(e){return e[qoe]&&e[qoe].locked===!0||e[XW]}function Sta(e){return Pft.isDisturbed(e)||Eta(e)}async function Vft(e,t){if(Sta(e))throw new TypeError("unusable");return DJn(!e[XW]),new Promise((r,n)=>{e[XW]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){BCr(this[XW],a)}).on("close",function(){this[XW].body!==null&&BCr(this[XW],new kJn)}),process.nextTick(vta,e[XW])})}function vta(e){if(e.body===null)return;let{_readableState:t}=e.stream;for(let r of t.buffer)GJn(e,r);for(t.endEmitted?NJn(this[XW]):e.stream.on("end",function(){NJn(this[XW])}),e.stream.resume();e.stream.read()!=null;);}function NJn(e){let{type:t,body:r,resolve:n,stream:a,length:o}=e;try{if(t==="text")n(bta(Buffer.concat(r)));else if(t==="json")n(JSON.parse(Buffer.concat(r)));else if(t==="arrayBuffer"){let l=new Uint8Array(o),A=0;for(let f of r)l.set(f,A),A+=f.byteLength;n(l.buffer)}else t==="blob"&&(vCr||(vCr=wt("buffer").Blob),n(new vCr(r,{type:a[xJn]})));BCr(e)}catch(l){a.destroy(l)}}function GJn(e,t){e.length+=t.length,e.body.push(t)}function BCr(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var wCr=H((Liu,VJn)=>{var Bta=wt("assert"),{ResponseStatusCodeError:Wft}=Ub(),{toUSVString:LJn}=zC();async function wta({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Bta(t);let l=[],A=0;for await(let f of t)if(l.push(f),A+=f.length,A>128*1024){l=null;break}if(n===204||!r||!l){process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o));return}try{if(r.startsWith("application/json")){let f=JSON.parse(LJn(Buffer.concat(l)));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}if(r.startsWith("text/")){let f=LJn(Buffer.concat(l));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}}catch{}process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o))}VJn.exports={getResolveErrorBodyCallback:wta}});var MBe=H((Viu,WJn)=>{var{addAbortListener:Tta}=zC(),{RequestAbortedError:Rta}=Ub(),OBe=Symbol("kListener"),$oe=Symbol("kSignal");function PJn(e){e.abort?e.abort():e.onError(new Rta)}function Nta(e,t){if(e[$oe]=null,e[OBe]=null,!!t){if(t.aborted){PJn(e);return}e[$oe]=t,e[OBe]=()=>{PJn(e)},Tta(e[$oe],e[OBe])}}function Dta(e){e[$oe]&&("removeEventListener"in e[$oe]?e[$oe].removeEventListener("abort",e[OBe]):e[$oe].removeListener("abort",e[OBe]),e[$oe]=null,e[OBe]=null)}WJn.exports={addSignal:Nta,removeSignal:Dta}});var HJn=H((Piu,TCr)=>{"use strict";var kta=ZJn(),{InvalidArgumentError:HBe,RequestAbortedError:xta}=Ub(),y8=zC(),{getResolveErrorBodyCallback:Gta}=wCr(),{AsyncResource:Fta}=wt("async_hooks"),{addSignal:Zta,removeSignal:OJn}=MBe(),Oft=class extends Fta{constructor(t,r){if(!t||typeof t!="object")throw new HBe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new HBe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new HBe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new HBe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new HBe("invalid method");if(A&&typeof A!="function")throw new HBe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw y8.isStream(l)&&y8.destroy(l.on("error",y8.nop),b),b}this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,y8.isStream(l)&&l.on("error",b=>{this.onError(b)}),Zta(this,n)}onConnect(t,r){if(!this.callback)throw new xta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?y8.parseRawHeaders(r):y8.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let N=(I==="raw"?y8.parseHeaders(r):b)["content-type"],B=new kta({resume:n,abort:A,contentType:N,highWaterMark:C});this.callback=null,this.res=B,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Gta,null,{callback:o,body:B,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:B,context:f}))}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;OJn(this),y8.parseHeaders(t,this.trailers),r.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;OJn(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{y8.destroy(r,t)})),a&&(this.body=null,y8.destroy(a,t))}};function MJn(e,t){if(t===void 0)return new Promise((r,n)=>{MJn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Oft(e,t))}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}TCr.exports=MJn;TCr.exports.RequestHandler=Oft});var JJn=H((Wiu,XJn)=>{"use strict";var{finished:Lta,PassThrough:Vta}=wt("stream"),{InvalidArgumentError:YBe,InvalidReturnValueError:Pta,RequestAbortedError:Wta}=Ub(),RX=zC(),{getResolveErrorBodyCallback:Ota}=wCr(),{AsyncResource:Mta}=wt("async_hooks"),{addSignal:Hta,removeSignal:YJn}=MBe(),RCr=class extends Mta{constructor(t,r,n){if(!t||typeof t!="object")throw new YBe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new YBe("invalid callback");if(typeof r!="function")throw new YBe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new YBe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new YBe("invalid method");if(f&&typeof f!="function")throw new YBe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw RX.isStream(A)&&RX.destroy(A.on("error",RX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,RX.isStream(A)&&A.on("error",b=>{this.onError(b)}),Hta(this,a)}onConnect(t,r){if(!this.callback)throw new Wta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?RX.parseRawHeaders(r):RX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?RX.parseHeaders(r):C)["content-type"];b=new Vta,this.callback=null,this.runInAsyncScope(Ota,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new Pta("expected Writable");Lta(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&RX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState&&b._writableState.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;YJn(this),r&&(this.trailers=RX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;YJn(this),this.factory=null,r?(this.res=null,RX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,RX.destroy(o,t))}};function QJn(e,t,r){if(r===void 0)return new Promise((n,a)=>{QJn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new RCr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e&&e.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}XJn.exports=QJn});var jJn=H((Oiu,KJn)=>{"use strict";var{Readable:UJn,Duplex:Yta,PassThrough:Qta}=wt("stream"),{InvalidArgumentError:LHe,InvalidReturnValueError:Xta,RequestAbortedError:Mft}=Ub(),vM=zC(),{AsyncResource:Jta}=wt("async_hooks"),{addSignal:Uta,removeSignal:Kta}=MBe(),jta=wt("assert"),QBe=Symbol("resume"),NCr=class extends UJn{constructor(){super({autoDestroy:!0}),this[QBe]=null}_read(){let{[QBe]:t}=this;t&&(this[QBe]=null,t())}_destroy(t,r){this._read(),r(t)}},DCr=class extends UJn{constructor(t){super({autoDestroy:!0}),this[QBe]=t}_read(){this[QBe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Mft),r(t)}},kCr=class extends Jta{constructor(t,r){if(!t||typeof t!="object")throw new LHe("invalid opts");if(typeof r!="function")throw new LHe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new LHe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new LHe("invalid method");if(l&&typeof l!="function")throw new LHe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new NCr().on("error",vM.nop),this.ret=new Yta({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f&&f.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[QBe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Mft),B&&f&&B(),vM.destroy(C,f),vM.destroy(b,f),vM.destroy(E,f),Kta(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,Uta(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(jta(!a,"pipeline cannot be retried"),n.destroyed)throw new Mft;this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new DCr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",vM.nop),f}if(!A||typeof A.on!="function")throw new Xta("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;vM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||vM.destroy(f,new Mft)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,vM.destroy(r,t)}};function zta(e,t){try{let r=new kCr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new Qta().destroy(r)}}KJn.exports=zta});var tUn=H((Miu,eUn)=>{"use strict";var{InvalidArgumentError:xCr,RequestAbortedError:qta,SocketError:$ta}=Ub(),{AsyncResource:era}=wt("async_hooks"),zJn=zC(),{addSignal:tra,removeSignal:qJn}=MBe(),rra=wt("assert"),GCr=class extends era{constructor(t,r){if(!t||typeof t!="object")throw new xCr("invalid opts");if(typeof r!="function")throw new xCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new xCr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,tra(this,n)}onConnect(t,r){if(!this.callback)throw new qta;this.abort=t,this.context=null}onHeaders(){throw new $ta("bad upgrade",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;rra.strictEqual(t,101),qJn(this),this.callback=null;let A=this.responseHeaders==="raw"?zJn.parseRawHeaders(r):zJn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;qJn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $Jn(e,t){if(t===void 0)return new Promise((r,n)=>{$Jn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new GCr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eUn.exports=$Jn});var oUn=H((Hiu,sUn)=>{"use strict";var{AsyncResource:nra}=wt("async_hooks"),{InvalidArgumentError:FCr,RequestAbortedError:ira,SocketError:sra}=Ub(),rUn=zC(),{addSignal:ora,removeSignal:nUn}=MBe(),ZCr=class extends nra{constructor(t,r){if(!t||typeof t!="object")throw new FCr("invalid opts");if(typeof r!="function")throw new FCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new FCr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,ora(this,n)}onConnect(t,r){if(!this.callback)throw new ira;this.abort=t,this.context=r}onHeaders(){throw new sra("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nUn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rUn.parseRawHeaders(r):rUn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nUn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iUn(e,t){if(t===void 0)return new Promise((r,n)=>{iUn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new ZCr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sUn.exports=iUn});var aUn=H((Yiu,XBe)=>{"use strict";XBe.exports.request=HJn();XBe.exports.stream=JJn();XBe.exports.pipeline=jJn();XBe.exports.upgrade=tUn();XBe.exports.connect=oUn()});var VCr=H((Qiu,cUn)=>{"use strict";var{UndiciError:ara}=Ub(),LCr=class e extends ara{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cUn.exports={MockNotMatchedError:LCr}});var JBe=H((Xiu,lUn)=>{"use strict";lUn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var VHe=H((Jiu,yUn)=>{"use strict";var{MockNotMatchedError:YIe}=VCr(),{kDispatches:Hft,kMockAgent:cra,kOriginalDispatch:lra,kOrigin:ura,kGetNetConnect:gra}=JBe(),{buildURL:Ara,nop:dra}=zC(),{STATUS_CODES:pra}=wt("http"),{types:{isPromise:fra}}=wt("util");function x$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gUn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function AUn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=AUn(t,r);if(!x$(n,a))return!1}return!0}function uUn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function Ira(e,{path:t,method:r,body:n,headers:a}){let o=x$(e.path,t),l=x$(e.method,r),A=typeof e.body<"u"?x$(e.body,n):!0,f=pUn(e,a);return o&&l&&A&&f}function fUn(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function IUn(e,t){let r=t.query?Ara(t.path,t.query):t.path,n=typeof r=="string"?uUn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>x$(uUn(o),n));if(a.length===0)throw new YIe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>x$(o,t.method)),a.length===0)throw new YIe(`Mock dispatch not matched for method '${t.method}'`);if(a=a.filter(({body:o})=>typeof o<"u"?x$(o,t.body):!0),a.length===0)throw new YIe(`Mock dispatch not matched for body '${t.body}'`);if(a=a.filter(o=>pUn(o,t.headers)),a.length===0)throw new YIe(`Mock dispatch not matched for headers '${typeof t.headers=="object"?JSON.stringify(t.headers):t.headers}'`);return a[0]}function hra(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function PCr(e,t){let r=e.findIndex(n=>n.consumed?Ira(n,t):!1);r!==-1&&e.splice(r,1)}function hUn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function WCr(e){return Object.entries(e).reduce((t,[r,n])=>[...t,Buffer.from(`${r}`),Array.isArray(n)?n.map(a=>Buffer.from(`${a}`)):Buffer.from(`${n}`)],[])}function mUn(e){return pra[e]||"unknown"}async function mra(e){let t=[];for await(let r of e)t.push(r);return Buffer.concat(t).toString("utf8")}function CUn(e,t){let r=hUn(e),n=IUn(this[Hft],r);n.timesInvoked++,n.data.callback&&(n.data={...n.data,...n.data.callback(e)});let{data:{statusCode:a,data:o,headers:l,trailers:A,error:f},delay:I,persist:C}=n,{timesInvoked:b,times:E}=n;if(n.consumed=!C&&b>=E,n.pending=b0?setTimeout(()=>{N(this[Hft])},I):N(this[Hft]);function N(F,Q=o){let X=Array.isArray(e.headers)?dUn(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(fra(ae)){ae.then(ue=>N(F,ue));return}let ne=fUn(ae),ce=WCr(l),fe=WCr(A);t.abort=dra,t.onHeaders(a,ce,B,mUn(a)),t.onData(Buffer.from(ne)),t.onComplete(fe),PCr(F,r)}function B(){}return!0}function Cra(){let e=this[cra],t=this[ura],r=this[lra];return function(a,o){if(e.isMockActive)try{CUn.call(this,a,o)}catch(l){if(l instanceof YIe){let A=e[gra]();if(A===!1)throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(_Un(A,t))r.call(this,a,o);else throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function _Un(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>x$(n,r.host)))}function _ra(e){if(e){let{agent:t,...r}=e;return r}}yUn.exports={getResponseData:fUn,getMockDispatch:IUn,addMockDispatch:hra,deleteMockDispatch:PCr,buildKey:hUn,generateKeyValues:WCr,matchValue:x$,getResponse:mra,getStatusText:mUn,mockDispatch:CUn,buildMockDispatch:Cra,checkNetConnect:_Un,buildMockOptions:_ra,getHeaderByName:AUn}});var JCr=H((Uiu,XCr)=>{"use strict";var{getResponseData:yra,buildKey:bra,addMockDispatch:OCr}=VHe(),{kDispatches:Yft,kDispatchKey:Qft,kDefaultHeaders:MCr,kDefaultTrailers:HCr,kContentLength:YCr,kMockDispatch:Xft}=JBe(),{InvalidArgumentError:NX}=Ub(),{buildURL:Era}=zC(),UBe=class{constructor(t){this[Xft]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("waitInMs must be a valid integer > 0");return this[Xft].delay=t,this}persist(){return this[Xft].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("repeatTimes must be a valid integer > 0");return this[Xft].times=t,this}},QCr=class{constructor(t,r){if(typeof t!="object")throw new NX("opts must be an object");if(typeof t.path>"u")throw new NX("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=Era(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Qft]=bra(t),this[Yft]=r,this[MCr]={},this[HCr]={},this[YCr]=!1}createMockScopeDispatchData(t,r,n={}){let a=yra(r),o=this[YCr]?{"content-length":a.length}:{},l={...this[MCr],...o,...n.headers},A={...this[HCr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t,r,n){if(typeof t>"u")throw new NX("statusCode must be defined");if(typeof r>"u")throw new NX("data must be defined");if(typeof n!="object")throw new NX("responseOptions must be an object")}reply(t){if(typeof t=="function"){let A=I=>{let C=t(I);if(typeof C!="object")throw new NX("reply options callback must return an object");let{statusCode:b,data:E="",responseOptions:N={}}=C;return this.validateReplyParameters(b,E,N),{...this.createMockScopeDispatchData(b,E,N)}},f=OCr(this[Yft],this[Qft],A);return new UBe(f)}let[r,n="",a={}]=[...arguments];this.validateReplyParameters(r,n,a);let o=this.createMockScopeDispatchData(r,n,a),l=OCr(this[Yft],this[Qft],o);return new UBe(l)}replyWithError(t){if(typeof t>"u")throw new NX("error must be defined");let r=OCr(this[Yft],this[Qft],{error:t});return new UBe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new NX("headers must be defined");return this[MCr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new NX("trailers must be defined");return this[HCr]=t,this}replyContentLength(){return this[YCr]=!0,this}};XCr.exports.MockInterceptor=QCr;XCr.exports.MockScope=UBe});var jCr=H((Kiu,TUn)=>{"use strict";var{promisify:Sra}=wt("util"),vra=kHe(),{buildMockDispatch:Bra}=VHe(),{kDispatches:bUn,kMockAgent:EUn,kClose:SUn,kOriginalClose:vUn,kOrigin:BUn,kOriginalDispatch:wra,kConnected:UCr}=JBe(),{MockInterceptor:Tra}=JCr(),wUn=GE(),{InvalidArgumentError:Rra}=Ub(),KCr=class extends vra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Rra("Argument opts.agent must implement Agent");this[EUn]=r.agent,this[BUn]=t,this[bUn]=[],this[UCr]=1,this[wra]=this.dispatch,this[vUn]=this.close.bind(this),this.dispatch=Bra.call(this),this.close=this[SUn]}get[wUn.kConnected](){return this[UCr]}intercept(t){return new Tra(t,this[bUn])}async[SUn](){await Sra(this[vUn])(),this[UCr]=0,this[EUn][wUn.kClients].delete(this[BUn])}};TUn.exports=KCr});var $Cr=H((jiu,FUn)=>{"use strict";var{promisify:Nra}=wt("util"),Dra=WBe(),{buildMockDispatch:kra}=VHe(),{kDispatches:RUn,kMockAgent:NUn,kClose:DUn,kOriginalClose:kUn,kOrigin:xUn,kOriginalDispatch:xra,kConnected:zCr}=JBe(),{MockInterceptor:Gra}=JCr(),GUn=GE(),{InvalidArgumentError:Fra}=Ub(),qCr=class extends Dra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Fra("Argument opts.agent must implement Agent");this[NUn]=r.agent,this[xUn]=t,this[RUn]=[],this[zCr]=1,this[xra]=this.dispatch,this[kUn]=this.close.bind(this),this.dispatch=kra.call(this),this.close=this[DUn]}get[GUn.kConnected](){return this[zCr]}intercept(t){return new Gra(t,this[RUn])}async[DUn](){await Nra(this[kUn])(),this[zCr]=0,this[NUn][GUn.kClients].delete(this[xUn])}};FUn.exports=qCr});var LUn=H((qiu,ZUn)=>{"use strict";var Zra={pronoun:"it",is:"is",was:"was",this:"this"},Lra={pronoun:"they",is:"are",was:"were",this:"these"};ZUn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Zra:Lra,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var PUn=H((esu,VUn)=>{"use strict";var{Transform:Vra}=wt("stream"),{Console:Pra}=wt("console");VUn.exports=class{constructor({disableColors:t}={}){this.transform=new Vra({transform(r,n,a){a(null,r)}}),this.logger=new Pra({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?"\u2705":"\u274C",Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var HUn=H((tsu,MUn)=>{"use strict";var{kClients:QIe}=GE(),Wra=ZHe(),{kAgent:e_r,kMockAgentSet:Jft,kMockAgentGet:WUn,kDispatches:t_r,kIsMockActive:Uft,kNetConnect:XIe,kGetNetConnect:Ora,kOptions:Kft,kFactory:jft}=JBe(),Mra=jCr(),Hra=$Cr(),{matchValue:Yra,buildMockOptions:Qra}=VHe(),{InvalidArgumentError:OUn,UndiciError:Xra}=Ub(),Jra=Ift(),Ura=LUn(),Kra=PUn(),r_r=class{constructor(t){this.value=t}deref(){return this.value}},n_r=class extends Jra{constructor(t){if(super(t),this[XIe]=!0,this[Uft]=!0,t&&t.agent&&typeof t.agent.dispatch!="function")throw new OUn("Argument opts.agent must implement Agent");let r=t&&t.agent?t.agent:new Wra(t);this[e_r]=r,this[QIe]=r[QIe],this[Kft]=Qra(t)}get(t){let r=this[WUn](t);return r||(r=this[jft](t),this[Jft](t,r)),r}dispatch(t,r){return this.get(t.origin),this[e_r].dispatch(t,r)}async close(){await this[e_r].close(),this[QIe].clear()}deactivate(){this[Uft]=!1}activate(){this[Uft]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[XIe])?this[XIe].push(t):this[XIe]=[t];else if(typeof t>"u")this[XIe]=!0;else throw new OUn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[XIe]=!1}get isMockActive(){return this[Uft]}[Jft](t,r){this[QIe].set(t,new r_r(r))}[jft](t){let r=Object.assign({agent:this},this[Kft]);return this[Kft]&&this[Kft].connections===1?new Mra(t,r):new Hra(t,r)}[WUn](t){let r=this[QIe].get(t);if(r)return r.deref();if(typeof t!="string"){let n=this[jft]("http://localhost:9999");return this[Jft](t,n),n}for(let[n,a]of Array.from(this[QIe])){let o=a.deref();if(o&&typeof n!="string"&&Yra(n,t)){let l=this[jft](t);return this[Jft](t,l),l[t_r]=o[t_r],l}}}[Ora](){return this[XIe]}pendingInterceptors(){let t=this[QIe];return Array.from(t.entries()).flatMap(([r,n])=>n.deref()[t_r].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new Kra}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new Ura("interceptor","interceptors").pluralize(r.length);throw new Xra(` +`,"latin1"),r!==null&&a!==r){if(n[NHe])throw new D$;process.emitWarning(new D$)}t[Pv].timeout&&t[Pv].timeoutType===PBe&&t[Pv].timeout.refresh&&t[Pv].timeout.refresh(),QW(n)}}destroy(t){let{socket:r,client:n}=this;r[k$]=!1,t&&(kA(n[TS]<=1,"pipeline should only contain this request"),vp.destroy(r,t))}};function FZ(e,t,r){try{t.onError(r),kA(t.aborted)}catch(n){e.emit("error",n)}}X4n.exports=rCr});var U4n=H((Riu,J4n)=>{"use strict";var Nft=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};J4n.exports=class{constructor(){this.head=this.tail=new Nft}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Nft),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var j4n=H((Niu,K4n)=>{var{kFree:wea,kConnected:Tea,kPending:Rea,kQueued:Nea,kRunning:Dea,kSize:kea}=GE(),OIe=Symbol("pool"),cCr=class{constructor(t){this[OIe]=t}get connected(){return this[OIe][Tea]}get free(){return this[OIe][wea]}get pending(){return this[OIe][Rea]}get queued(){return this[OIe][Nea]}get running(){return this[OIe][Dea]}get size(){return this[OIe][kea]}};K4n.exports=cCr});var pCr=H((Diu,oJn)=>{"use strict";var xea=EHe(),Gea=U4n(),{kConnected:lCr,kSize:z4n,kRunning:q4n,kPending:$4n,kQueued:xHe,kBusy:Fea,kFree:Zea,kUrl:Lea,kClose:Vea,kDestroy:Pea,kDispatch:Wea}=GE(),Oea=j4n(),K9=Symbol("clients"),ZZ=Symbol("needDrain"),GHe=Symbol("queue"),uCr=Symbol("closed resolve"),gCr=Symbol("onDrain"),eJn=Symbol("onConnect"),tJn=Symbol("onDisconnect"),rJn=Symbol("onConnectionError"),ACr=Symbol("get dispatcher"),iJn=Symbol("add client"),sJn=Symbol("remove client"),nJn=Symbol("stats"),dCr=class extends xea{constructor(){super(),this[GHe]=new Gea,this[K9]=[],this[xHe]=0;let t=this;this[gCr]=function(n,a){let o=t[GHe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[xHe]--,l=!this.dispatch(A.opts,A.handler)}this[ZZ]=l,!this[ZZ]&&t[ZZ]&&(t[ZZ]=!1,t.emit("drain",n,[t,...a])),t[uCr]&&o.isEmpty()&&Promise.all(t[K9].map(A=>A.close())).then(t[uCr])},this[eJn]=(r,n)=>{t.emit("connect",r,[t,...n])},this[tJn]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[rJn]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[nJn]=new Oea(this)}get[Fea](){return this[ZZ]}get[lCr](){return this[K9].filter(t=>t[lCr]).length}get[Zea](){return this[K9].filter(t=>t[lCr]&&!t[ZZ]).length}get[$4n](){let t=this[xHe];for(let{[$4n]:r}of this[K9])t+=r;return t}get[q4n](){let t=0;for(let{[q4n]:r}of this[K9])t+=r;return t}get[z4n](){let t=this[xHe];for(let{[z4n]:r}of this[K9])t+=r;return t}get stats(){return this[nJn]}async[Vea](){return this[GHe].isEmpty()?Promise.all(this[K9].map(t=>t.close())):new Promise(t=>{this[uCr]=t})}async[Pea](t){for(;;){let r=this[GHe].shift();if(!r)break;r.handler.onError(t)}return Promise.all(this[K9].map(r=>r.destroy(t)))}[Wea](t,r){let n=this[ACr]();return n?n.dispatch(t,r)||(n[ZZ]=!0,this[ZZ]=!this[ACr]()):(this[ZZ]=!0,this[GHe].push({opts:t,handler:r}),this[xHe]++),!this[ZZ]}[iJn](t){return t.on("drain",this[gCr]).on("connect",this[eJn]).on("disconnect",this[tJn]).on("connectionError",this[rJn]),this[K9].push(t),this[ZZ]&&process.nextTick(()=>{this[ZZ]&&this[gCr](t[Lea],[this,t])}),this}[sJn](t){t.close(()=>{let r=this[K9].indexOf(t);r!==-1&&this[K9].splice(r,1)}),this[ZZ]=this[K9].some(r=>!r[ZZ]&&r.closed!==!0&&r.destroyed!==!0)}};oJn.exports={PoolBase:dCr,kClients:K9,kNeedDrain:ZZ,kAddClient:iJn,kRemoveClient:sJn,kGetDispatcher:ACr}});var WBe=H((kiu,uJn)=>{"use strict";var{PoolBase:Mea,kClients:aJn,kNeedDrain:Hea,kAddClient:Yea,kGetDispatcher:Qea}=pCr(),Xea=kHe(),{InvalidArgumentError:fCr}=Ub(),ICr=zC(),{kUrl:cJn,kInterceptors:Jea}=GE(),Uea=SHe(),hCr=Symbol("options"),mCr=Symbol("connections"),lJn=Symbol("factory");function Kea(e,t){return new Xea(e,t)}var CCr=class extends Mea{constructor(t,{connections:r,factory:n=Kea,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new fCr("invalid connections");if(typeof n!="function")throw new fCr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new fCr("connect must be a function or an object");typeof a!="function"&&(a=Uea({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...ICr.nodeHasAutoSelectFamily&&I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[Jea]=E.interceptors&&E.interceptors.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[mCr]=r||null,this[cJn]=ICr.parseOrigin(t),this[hCr]={...ICr.deepClone(E),connect:a,allowH2:b},this[hCr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[lJn]=n}[Qea](){let t=this[aJn].find(r=>!r[Hea]);return t||((!this[mCr]||this[aJn].length{"use strict";var{BalancedPoolMissingUpstreamError:jea,InvalidArgumentError:zea}=Ub(),{PoolBase:qea,kClients:LZ,kNeedDrain:FHe,kAddClient:$ea,kRemoveClient:eta,kGetDispatcher:tta}=pCr(),rta=WBe(),{kUrl:_Cr,kInterceptors:nta}=GE(),{parseOrigin:gJn}=zC(),AJn=Symbol("factory"),Dft=Symbol("options"),dJn=Symbol("kGreatestCommonDivisor"),MIe=Symbol("kCurrentWeight"),HIe=Symbol("kIndex"),SM=Symbol("kWeight"),kft=Symbol("kMaxWeightPerServer"),xft=Symbol("kErrorPenalty");function pJn(e,t){return t===0?e:pJn(t,e%t)}function ita(e,t){return new rta(e,t)}var yCr=class extends qea{constructor(t=[],{factory:r=ita,...n}={}){if(super(),this[Dft]=n,this[HIe]=-1,this[MIe]=0,this[kft]=this[Dft].maxWeightPerServer||100,this[xft]=this[Dft].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new zea("factory must be a function.");this[nta]=n.interceptors&&n.interceptors.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[AJn]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=gJn(t).origin;if(this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[AJn](r,Object.assign({},this[Dft]));this[$ea](n),n.on("connect",()=>{n[SM]=Math.min(this[kft],n[SM]+this[xft])}),n.on("connectionError",()=>{n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[SM]=Math.max(1,n[SM]-this[xft]),this._updateBalancedPoolStats())});for(let a of this[LZ])a[SM]=this[kft];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){this[dJn]=this[LZ].map(t=>t[SM]).reduce(pJn,0)}removeUpstream(t){let r=gJn(t).origin,n=this[LZ].find(a=>a[_Cr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[eta](n),this}get upstreams(){return this[LZ].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[_Cr].origin)}[tta](){if(this[LZ].length===0)throw new jea;if(!this[LZ].find(o=>!o[FHe]&&o.closed!==!0&&o.destroyed!==!0)||this[LZ].map(o=>o[FHe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[LZ].findIndex(o=>!o[FHe]);for(;n++this[LZ][a][SM]&&!o[FHe]&&(a=this[HIe]),this[HIe]===0&&(this[MIe]=this[MIe]-this[dJn],this[MIe]<=0&&(this[MIe]=this[kft])),o[SM]>=this[MIe]&&!o[FHe])return o}return this[MIe]=this[LZ][a][SM],this[HIe]=a,this[LZ][a]}};fJn.exports=yCr});var bCr=H((Giu,CJn)=>{"use strict";var{kConnected:hJn,kSize:mJn}=GE(),Gft=class{constructor(t){this.value=t}deref(){return this.value[hJn]===0&&this.value[mJn]===0?void 0:this.value}},Fft=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[hJn]===0&&t[mJn]===0&&this.finalizer(r)})}};CJn.exports=function(){return process.env.NODE_V8_COVERAGE?{WeakRef:Gft,FinalizationRegistry:Fft}:{WeakRef:global.WeakRef||Gft,FinalizationRegistry:global.FinalizationRegistry||Fft}}});var ZHe=H((Fiu,wJn)=>{"use strict";var{InvalidArgumentError:Zft}=Ub(),{kClients:zoe,kRunning:_Jn,kClose:sta,kDestroy:ota,kDispatch:ata,kInterceptors:cta}=GE(),lta=EHe(),uta=WBe(),gta=kHe(),Ata=zC(),dta=_ft(),{WeakRef:pta,FinalizationRegistry:fta}=bCr()(),yJn=Symbol("onConnect"),bJn=Symbol("onDisconnect"),EJn=Symbol("onConnectionError"),Ita=Symbol("maxRedirections"),SJn=Symbol("onDrain"),vJn=Symbol("factory"),BJn=Symbol("finalizer"),ECr=Symbol("options");function hta(e,t){return t&&t.connections===1?new gta(e,t):new uta(e,t)}var SCr=class extends lta{constructor({factory:t=hta,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new Zft("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new Zft("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new Zft("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[cta]=a.interceptors&&a.interceptors.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[dta({maxRedirections:r})],this[ECr]={...Ata.deepClone(a),connect:n},this[ECr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[Ita]=r,this[vJn]=t,this[zoe]=new Map,this[BJn]=new fta(l=>{let A=this[zoe].get(l);A!==void 0&&A.deref()===void 0&&this[zoe].delete(l)});let o=this;this[SJn]=(l,A)=>{o.emit("drain",l,[o,...A])},this[yJn]=(l,A)=>{o.emit("connect",l,[o,...A])},this[bJn]=(l,A,f)=>{o.emit("disconnect",l,[o,...A],f)},this[EJn]=(l,A,f)=>{o.emit("connectionError",l,[o,...A],f)}}get[_Jn](){let t=0;for(let r of this[zoe].values()){let n=r.deref();n&&(t+=n[_Jn])}return t}[ata](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new Zft("opts.origin must be a non-empty string or URL.");let a=this[zoe].get(n),o=a?a.deref():null;return o||(o=this[vJn](t.origin,this[ECr]).on("drain",this[SJn]).on("connect",this[yJn]).on("disconnect",this[bJn]).on("connectionError",this[EJn]),this[zoe].set(n,new pta(o)),this[BJn].register(o,n)),o.dispatch(t,r)}async[sta](){let t=[];for(let r of this[zoe].values()){let n=r.deref();n&&t.push(n.close())}await Promise.all(t)}async[ota](t){let r=[];for(let n of this[zoe].values()){let a=n.deref();a&&r.push(a.destroy(t))}await Promise.all(r)}};wJn.exports=SCr});var ZJn=H((Liu,FJn)=>{"use strict";var DJn=wt("assert"),{Readable:mta}=wt("stream"),{RequestAbortedError:kJn,NotSupportedError:Cta,InvalidArgumentError:_ta}=Ub(),Pft=zC(),{ReadableStreamFrom:yta,toUSVString:bta}=zC(),vCr,XW=Symbol("kConsume"),Lft=Symbol("kReading"),qoe=Symbol("kBody"),TJn=Symbol("abort"),xJn=Symbol("kContentType"),RJn=()=>{};FJn.exports=class extends mta{constructor({resume:t,abort:r,contentType:n="",highWaterMark:a=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:a}),this._readableState.dataEmitted=!1,this[TJn]=r,this[XW]=null,this[qoe]=null,this[xJn]=n,this[Lft]=!1}destroy(t){return this.destroyed?this:(!t&&!this._readableState.endEmitted&&(t=new kJn),t&&this[TJn](),super.destroy(t))}emit(t,...r){return t==="data"?this._readableState.dataEmitted=!0:t==="error"&&(this._readableState.errorEmitted=!0),super.emit(t,...r)}on(t,...r){return(t==="data"||t==="readable")&&(this[Lft]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[Lft]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[XW]&&t!==null&&this.readableLength===0?(GJn(this[XW],t),this[Lft]?super.push(t):!0):super.push(t)}async text(){return Vft(this,"text")}async json(){return Vft(this,"json")}async blob(){return Vft(this,"blob")}async arrayBuffer(){return Vft(this,"arrayBuffer")}async formData(){throw new Cta}get bodyUsed(){return Pft.isDisturbed(this)}get body(){return this[qoe]||(this[qoe]=yta(this),this[XW]&&(this[qoe].getReader(),DJn(this[qoe].locked))),this[qoe]}dump(t){let r=t&&Number.isFinite(t.limit)?t.limit:262144,n=t&&t.signal;if(n)try{if(typeof n!="object"||!("aborted"in n))throw new _ta("signal must be an AbortSignal");Pft.throwIfAborted(n)}catch(a){return Promise.reject(a)}return this.closed?Promise.resolve(null):new Promise((a,o)=>{let l=n?Pft.addAbortListener(n,()=>{this.destroy()}):RJn;this.on("close",function(){l(),n&&n.aborted?o(n.reason||Object.assign(new Error("The operation was aborted"),{name:"AbortError"})):a(null)}).on("error",RJn).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Eta(e){return e[qoe]&&e[qoe].locked===!0||e[XW]}function Sta(e){return Pft.isDisturbed(e)||Eta(e)}async function Vft(e,t){if(Sta(e))throw new TypeError("unusable");return DJn(!e[XW]),new Promise((r,n)=>{e[XW]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){BCr(this[XW],a)}).on("close",function(){this[XW].body!==null&&BCr(this[XW],new kJn)}),process.nextTick(vta,e[XW])})}function vta(e){if(e.body===null)return;let{_readableState:t}=e.stream;for(let r of t.buffer)GJn(e,r);for(t.endEmitted?NJn(this[XW]):e.stream.on("end",function(){NJn(this[XW])}),e.stream.resume();e.stream.read()!=null;);}function NJn(e){let{type:t,body:r,resolve:n,stream:a,length:o}=e;try{if(t==="text")n(bta(Buffer.concat(r)));else if(t==="json")n(JSON.parse(Buffer.concat(r)));else if(t==="arrayBuffer"){let l=new Uint8Array(o),A=0;for(let f of r)l.set(f,A),A+=f.byteLength;n(l.buffer)}else t==="blob"&&(vCr||(vCr=wt("buffer").Blob),n(new vCr(r,{type:a[xJn]})));BCr(e)}catch(l){a.destroy(l)}}function GJn(e,t){e.length+=t.length,e.body.push(t)}function BCr(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}});var wCr=H((Viu,VJn)=>{var Bta=wt("assert"),{ResponseStatusCodeError:Wft}=Ub(),{toUSVString:LJn}=zC();async function wta({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Bta(t);let l=[],A=0;for await(let f of t)if(l.push(f),A+=f.length,A>128*1024){l=null;break}if(n===204||!r||!l){process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o));return}try{if(r.startsWith("application/json")){let f=JSON.parse(LJn(Buffer.concat(l)));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}if(r.startsWith("text/")){let f=LJn(Buffer.concat(l));process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o,f));return}}catch{}process.nextTick(e,new Wft(`Response status code ${n}${a?`: ${a}`:""}`,n,o))}VJn.exports={getResolveErrorBodyCallback:wta}});var MBe=H((Piu,WJn)=>{var{addAbortListener:Tta}=zC(),{RequestAbortedError:Rta}=Ub(),OBe=Symbol("kListener"),$oe=Symbol("kSignal");function PJn(e){e.abort?e.abort():e.onError(new Rta)}function Nta(e,t){if(e[$oe]=null,e[OBe]=null,!!t){if(t.aborted){PJn(e);return}e[$oe]=t,e[OBe]=()=>{PJn(e)},Tta(e[$oe],e[OBe])}}function Dta(e){e[$oe]&&("removeEventListener"in e[$oe]?e[$oe].removeEventListener("abort",e[OBe]):e[$oe].removeListener("abort",e[OBe]),e[$oe]=null,e[OBe]=null)}WJn.exports={addSignal:Nta,removeSignal:Dta}});var HJn=H((Wiu,TCr)=>{"use strict";var kta=ZJn(),{InvalidArgumentError:HBe,RequestAbortedError:xta}=Ub(),y8=zC(),{getResolveErrorBodyCallback:Gta}=wCr(),{AsyncResource:Fta}=wt("async_hooks"),{addSignal:Zta,removeSignal:OJn}=MBe(),Oft=class extends Fta{constructor(t,r){if(!t||typeof t!="object")throw new HBe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new HBe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new HBe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new HBe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new HBe("invalid method");if(A&&typeof A!="function")throw new HBe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw y8.isStream(l)&&y8.destroy(l.on("error",y8.nop),b),b}this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,y8.isStream(l)&&l.on("error",b=>{this.onError(b)}),Zta(this,n)}onConnect(t,r){if(!this.callback)throw new xta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?y8.parseRawHeaders(r):y8.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let N=(I==="raw"?y8.parseHeaders(r):b)["content-type"],B=new kta({resume:n,abort:A,contentType:N,highWaterMark:C});this.callback=null,this.res=B,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Gta,null,{callback:o,body:B,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:B,context:f}))}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;OJn(this),y8.parseHeaders(t,this.trailers),r.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;OJn(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{y8.destroy(r,t)})),a&&(this.body=null,y8.destroy(a,t))}};function MJn(e,t){if(t===void 0)return new Promise((r,n)=>{MJn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Oft(e,t))}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}TCr.exports=MJn;TCr.exports.RequestHandler=Oft});var JJn=H((Oiu,XJn)=>{"use strict";var{finished:Lta,PassThrough:Vta}=wt("stream"),{InvalidArgumentError:YBe,InvalidReturnValueError:Pta,RequestAbortedError:Wta}=Ub(),RX=zC(),{getResolveErrorBodyCallback:Ota}=wCr(),{AsyncResource:Mta}=wt("async_hooks"),{addSignal:Hta,removeSignal:YJn}=MBe(),RCr=class extends Mta{constructor(t,r,n){if(!t||typeof t!="object")throw new YBe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new YBe("invalid callback");if(typeof r!="function")throw new YBe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new YBe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new YBe("invalid method");if(f&&typeof f!="function")throw new YBe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw RX.isStream(A)&&RX.destroy(A.on("error",RX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,RX.isStream(A)&&A.on("error",b=>{this.onError(b)}),Hta(this,a)}onConnect(t,r){if(!this.callback)throw new Wta;this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?RX.parseRawHeaders(r):RX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?RX.parseHeaders(r):C)["content-type"];b=new Vta,this.callback=null,this.runInAsyncScope(Ota,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new Pta("expected Writable");Lta(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&RX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState&&b._writableState.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;YJn(this),r&&(this.trailers=RX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;YJn(this),this.factory=null,r?(this.res=null,RX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,RX.destroy(o,t))}};function QJn(e,t,r){if(r===void 0)return new Promise((n,a)=>{QJn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new RCr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e&&e.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}XJn.exports=QJn});var jJn=H((Miu,KJn)=>{"use strict";var{Readable:UJn,Duplex:Yta,PassThrough:Qta}=wt("stream"),{InvalidArgumentError:LHe,InvalidReturnValueError:Xta,RequestAbortedError:Mft}=Ub(),vM=zC(),{AsyncResource:Jta}=wt("async_hooks"),{addSignal:Uta,removeSignal:Kta}=MBe(),jta=wt("assert"),QBe=Symbol("resume"),NCr=class extends UJn{constructor(){super({autoDestroy:!0}),this[QBe]=null}_read(){let{[QBe]:t}=this;t&&(this[QBe]=null,t())}_destroy(t,r){this._read(),r(t)}},DCr=class extends UJn{constructor(t){super({autoDestroy:!0}),this[QBe]=t}_read(){this[QBe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Mft),r(t)}},kCr=class extends Jta{constructor(t,r){if(!t||typeof t!="object")throw new LHe("invalid opts");if(typeof r!="function")throw new LHe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new LHe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new LHe("invalid method");if(l&&typeof l!="function")throw new LHe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new NCr().on("error",vM.nop),this.ret=new Yta({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f&&f.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[QBe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Mft),B&&f&&B(),vM.destroy(C,f),vM.destroy(b,f),vM.destroy(E,f),Kta(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,Uta(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(jta(!a,"pipeline cannot be retried"),n.destroyed)throw new Mft;this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new DCr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?vM.parseRawHeaders(r):vM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",vM.nop),f}if(!A||typeof A.on!="function")throw new Xta("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;vM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||vM.destroy(f,new Mft)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,vM.destroy(r,t)}};function zta(e,t){try{let r=new kCr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new Qta().destroy(r)}}KJn.exports=zta});var tUn=H((Hiu,eUn)=>{"use strict";var{InvalidArgumentError:xCr,RequestAbortedError:qta,SocketError:$ta}=Ub(),{AsyncResource:era}=wt("async_hooks"),zJn=zC(),{addSignal:tra,removeSignal:qJn}=MBe(),rra=wt("assert"),GCr=class extends era{constructor(t,r){if(!t||typeof t!="object")throw new xCr("invalid opts");if(typeof r!="function")throw new xCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new xCr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,tra(this,n)}onConnect(t,r){if(!this.callback)throw new qta;this.abort=t,this.context=null}onHeaders(){throw new $ta("bad upgrade",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;rra.strictEqual(t,101),qJn(this),this.callback=null;let A=this.responseHeaders==="raw"?zJn.parseRawHeaders(r):zJn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;qJn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $Jn(e,t){if(t===void 0)return new Promise((r,n)=>{$Jn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new GCr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eUn.exports=$Jn});var oUn=H((Yiu,sUn)=>{"use strict";var{AsyncResource:nra}=wt("async_hooks"),{InvalidArgumentError:FCr,RequestAbortedError:ira,SocketError:sra}=Ub(),rUn=zC(),{addSignal:ora,removeSignal:nUn}=MBe(),ZCr=class extends nra{constructor(t,r){if(!t||typeof t!="object")throw new FCr("invalid opts");if(typeof r!="function")throw new FCr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new FCr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,ora(this,n)}onConnect(t,r){if(!this.callback)throw new ira;this.abort=t,this.context=r}onHeaders(){throw new sra("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nUn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rUn.parseRawHeaders(r):rUn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nUn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iUn(e,t){if(t===void 0)return new Promise((r,n)=>{iUn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new ZCr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e&&e.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sUn.exports=iUn});var aUn=H((Qiu,XBe)=>{"use strict";XBe.exports.request=HJn();XBe.exports.stream=JJn();XBe.exports.pipeline=jJn();XBe.exports.upgrade=tUn();XBe.exports.connect=oUn()});var VCr=H((Xiu,cUn)=>{"use strict";var{UndiciError:ara}=Ub(),LCr=class e extends ara{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cUn.exports={MockNotMatchedError:LCr}});var JBe=H((Jiu,lUn)=>{"use strict";lUn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var VHe=H((Uiu,yUn)=>{"use strict";var{MockNotMatchedError:YIe}=VCr(),{kDispatches:Hft,kMockAgent:cra,kOriginalDispatch:lra,kOrigin:ura,kGetNetConnect:gra}=JBe(),{buildURL:Ara,nop:dra}=zC(),{STATUS_CODES:pra}=wt("http"),{types:{isPromise:fra}}=wt("util");function x$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gUn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function AUn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=AUn(t,r);if(!x$(n,a))return!1}return!0}function uUn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function Ira(e,{path:t,method:r,body:n,headers:a}){let o=x$(e.path,t),l=x$(e.method,r),A=typeof e.body<"u"?x$(e.body,n):!0,f=pUn(e,a);return o&&l&&A&&f}function fUn(e){return Buffer.isBuffer(e)?e:typeof e=="object"?JSON.stringify(e):e.toString()}function IUn(e,t){let r=t.query?Ara(t.path,t.query):t.path,n=typeof r=="string"?uUn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>x$(uUn(o),n));if(a.length===0)throw new YIe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>x$(o,t.method)),a.length===0)throw new YIe(`Mock dispatch not matched for method '${t.method}'`);if(a=a.filter(({body:o})=>typeof o<"u"?x$(o,t.body):!0),a.length===0)throw new YIe(`Mock dispatch not matched for body '${t.body}'`);if(a=a.filter(o=>pUn(o,t.headers)),a.length===0)throw new YIe(`Mock dispatch not matched for headers '${typeof t.headers=="object"?JSON.stringify(t.headers):t.headers}'`);return a[0]}function hra(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function PCr(e,t){let r=e.findIndex(n=>n.consumed?Ira(n,t):!1);r!==-1&&e.splice(r,1)}function hUn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function WCr(e){return Object.entries(e).reduce((t,[r,n])=>[...t,Buffer.from(`${r}`),Array.isArray(n)?n.map(a=>Buffer.from(`${a}`)):Buffer.from(`${n}`)],[])}function mUn(e){return pra[e]||"unknown"}async function mra(e){let t=[];for await(let r of e)t.push(r);return Buffer.concat(t).toString("utf8")}function CUn(e,t){let r=hUn(e),n=IUn(this[Hft],r);n.timesInvoked++,n.data.callback&&(n.data={...n.data,...n.data.callback(e)});let{data:{statusCode:a,data:o,headers:l,trailers:A,error:f},delay:I,persist:C}=n,{timesInvoked:b,times:E}=n;if(n.consumed=!C&&b>=E,n.pending=b0?setTimeout(()=>{N(this[Hft])},I):N(this[Hft]);function N(F,Q=o){let X=Array.isArray(e.headers)?dUn(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(fra(ae)){ae.then(ue=>N(F,ue));return}let ne=fUn(ae),ce=WCr(l),fe=WCr(A);t.abort=dra,t.onHeaders(a,ce,B,mUn(a)),t.onData(Buffer.from(ne)),t.onComplete(fe),PCr(F,r)}function B(){}return!0}function Cra(){let e=this[cra],t=this[ura],r=this[lra];return function(a,o){if(e.isMockActive)try{CUn.call(this,a,o)}catch(l){if(l instanceof YIe){let A=e[gra]();if(A===!1)throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(_Un(A,t))r.call(this,a,o);else throw new YIe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function _Un(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>x$(n,r.host)))}function _ra(e){if(e){let{agent:t,...r}=e;return r}}yUn.exports={getResponseData:fUn,getMockDispatch:IUn,addMockDispatch:hra,deleteMockDispatch:PCr,buildKey:hUn,generateKeyValues:WCr,matchValue:x$,getResponse:mra,getStatusText:mUn,mockDispatch:CUn,buildMockDispatch:Cra,checkNetConnect:_Un,buildMockOptions:_ra,getHeaderByName:AUn}});var JCr=H((Kiu,XCr)=>{"use strict";var{getResponseData:yra,buildKey:bra,addMockDispatch:OCr}=VHe(),{kDispatches:Yft,kDispatchKey:Qft,kDefaultHeaders:MCr,kDefaultTrailers:HCr,kContentLength:YCr,kMockDispatch:Xft}=JBe(),{InvalidArgumentError:NX}=Ub(),{buildURL:Era}=zC(),UBe=class{constructor(t){this[Xft]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("waitInMs must be a valid integer > 0");return this[Xft].delay=t,this}persist(){return this[Xft].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new NX("repeatTimes must be a valid integer > 0");return this[Xft].times=t,this}},QCr=class{constructor(t,r){if(typeof t!="object")throw new NX("opts must be an object");if(typeof t.path>"u")throw new NX("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=Era(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Qft]=bra(t),this[Yft]=r,this[MCr]={},this[HCr]={},this[YCr]=!1}createMockScopeDispatchData(t,r,n={}){let a=yra(r),o=this[YCr]?{"content-length":a.length}:{},l={...this[MCr],...o,...n.headers},A={...this[HCr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t,r,n){if(typeof t>"u")throw new NX("statusCode must be defined");if(typeof r>"u")throw new NX("data must be defined");if(typeof n!="object")throw new NX("responseOptions must be an object")}reply(t){if(typeof t=="function"){let A=I=>{let C=t(I);if(typeof C!="object")throw new NX("reply options callback must return an object");let{statusCode:b,data:E="",responseOptions:N={}}=C;return this.validateReplyParameters(b,E,N),{...this.createMockScopeDispatchData(b,E,N)}},f=OCr(this[Yft],this[Qft],A);return new UBe(f)}let[r,n="",a={}]=[...arguments];this.validateReplyParameters(r,n,a);let o=this.createMockScopeDispatchData(r,n,a),l=OCr(this[Yft],this[Qft],o);return new UBe(l)}replyWithError(t){if(typeof t>"u")throw new NX("error must be defined");let r=OCr(this[Yft],this[Qft],{error:t});return new UBe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new NX("headers must be defined");return this[MCr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new NX("trailers must be defined");return this[HCr]=t,this}replyContentLength(){return this[YCr]=!0,this}};XCr.exports.MockInterceptor=QCr;XCr.exports.MockScope=UBe});var jCr=H((jiu,TUn)=>{"use strict";var{promisify:Sra}=wt("util"),vra=kHe(),{buildMockDispatch:Bra}=VHe(),{kDispatches:bUn,kMockAgent:EUn,kClose:SUn,kOriginalClose:vUn,kOrigin:BUn,kOriginalDispatch:wra,kConnected:UCr}=JBe(),{MockInterceptor:Tra}=JCr(),wUn=GE(),{InvalidArgumentError:Rra}=Ub(),KCr=class extends vra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Rra("Argument opts.agent must implement Agent");this[EUn]=r.agent,this[BUn]=t,this[bUn]=[],this[UCr]=1,this[wra]=this.dispatch,this[vUn]=this.close.bind(this),this.dispatch=Bra.call(this),this.close=this[SUn]}get[wUn.kConnected](){return this[UCr]}intercept(t){return new Tra(t,this[bUn])}async[SUn](){await Sra(this[vUn])(),this[UCr]=0,this[EUn][wUn.kClients].delete(this[BUn])}};TUn.exports=KCr});var $Cr=H((ziu,FUn)=>{"use strict";var{promisify:Nra}=wt("util"),Dra=WBe(),{buildMockDispatch:kra}=VHe(),{kDispatches:RUn,kMockAgent:NUn,kClose:DUn,kOriginalClose:kUn,kOrigin:xUn,kOriginalDispatch:xra,kConnected:zCr}=JBe(),{MockInterceptor:Gra}=JCr(),GUn=GE(),{InvalidArgumentError:Fra}=Ub(),qCr=class extends Dra{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Fra("Argument opts.agent must implement Agent");this[NUn]=r.agent,this[xUn]=t,this[RUn]=[],this[zCr]=1,this[xra]=this.dispatch,this[kUn]=this.close.bind(this),this.dispatch=kra.call(this),this.close=this[DUn]}get[GUn.kConnected](){return this[zCr]}intercept(t){return new Gra(t,this[RUn])}async[DUn](){await Nra(this[kUn])(),this[zCr]=0,this[NUn][GUn.kClients].delete(this[xUn])}};FUn.exports=qCr});var LUn=H(($iu,ZUn)=>{"use strict";var Zra={pronoun:"it",is:"is",was:"was",this:"this"},Lra={pronoun:"they",is:"are",was:"were",this:"these"};ZUn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Zra:Lra,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var PUn=H((tsu,VUn)=>{"use strict";var{Transform:Vra}=wt("stream"),{Console:Pra}=wt("console");VUn.exports=class{constructor({disableColors:t}={}){this.transform=new Vra({transform(r,n,a){a(null,r)}}),this.logger=new Pra({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?"\u2705":"\u274C",Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var HUn=H((rsu,MUn)=>{"use strict";var{kClients:QIe}=GE(),Wra=ZHe(),{kAgent:e_r,kMockAgentSet:Jft,kMockAgentGet:WUn,kDispatches:t_r,kIsMockActive:Uft,kNetConnect:XIe,kGetNetConnect:Ora,kOptions:Kft,kFactory:jft}=JBe(),Mra=jCr(),Hra=$Cr(),{matchValue:Yra,buildMockOptions:Qra}=VHe(),{InvalidArgumentError:OUn,UndiciError:Xra}=Ub(),Jra=Ift(),Ura=LUn(),Kra=PUn(),r_r=class{constructor(t){this.value=t}deref(){return this.value}},n_r=class extends Jra{constructor(t){if(super(t),this[XIe]=!0,this[Uft]=!0,t&&t.agent&&typeof t.agent.dispatch!="function")throw new OUn("Argument opts.agent must implement Agent");let r=t&&t.agent?t.agent:new Wra(t);this[e_r]=r,this[QIe]=r[QIe],this[Kft]=Qra(t)}get(t){let r=this[WUn](t);return r||(r=this[jft](t),this[Jft](t,r)),r}dispatch(t,r){return this.get(t.origin),this[e_r].dispatch(t,r)}async close(){await this[e_r].close(),this[QIe].clear()}deactivate(){this[Uft]=!1}activate(){this[Uft]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[XIe])?this[XIe].push(t):this[XIe]=[t];else if(typeof t>"u")this[XIe]=!0;else throw new OUn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[XIe]=!1}get isMockActive(){return this[Uft]}[Jft](t,r){this[QIe].set(t,new r_r(r))}[jft](t){let r=Object.assign({agent:this},this[Kft]);return this[Kft]&&this[Kft].connections===1?new Mra(t,r):new Hra(t,r)}[WUn](t){let r=this[QIe].get(t);if(r)return r.deref();if(typeof t!="string"){let n=this[jft]("http://localhost:9999");return this[Jft](t,n),n}for(let[n,a]of Array.from(this[QIe])){let o=a.deref();if(o&&typeof n!="string"&&Yra(n,t)){let l=this[jft](t);return this[Jft](t,l),l[t_r]=o[t_r],l}}}[Ora](){return this[XIe]}pendingInterceptors(){let t=this[QIe];return Array.from(t.entries()).flatMap(([r,n])=>n.deref()[t_r].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new Kra}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new Ura("interceptor","interceptors").pluralize(r.length);throw new Xra(` ${n.count} ${n.noun} ${n.is} pending: ${t.format(r)} -`.trim())}};MUn.exports=n_r});var KUn=H((rsu,UUn)=>{"use strict";var{kProxy:jra,kClose:zra,kDestroy:qra,kInterceptors:$ra}=GE(),{URL:YUn}=wt("url"),QUn=ZHe(),ena=WBe(),tna=EHe(),{InvalidArgumentError:OHe,RequestAbortedError:rna}=Ub(),XUn=SHe(),PHe=Symbol("proxy agent"),zft=Symbol("proxy client"),WHe=Symbol("proxy headers"),i_r=Symbol("request tls settings"),nna=Symbol("proxy tls settings"),JUn=Symbol("connect endpoint function");function ina(e){return e==="https:"?443:80}function sna(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new OHe("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function ona(e,t){return new ena(e,t)}var s_r=class extends tna{constructor(t){if(super(t),this[jra]=sna(t),this[PHe]=new QUn(t),this[$ra]=t.interceptors&&t.interceptors.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],typeof t=="string"&&(t={uri:t}),!t||!t.uri)throw new OHe("Proxy opts.uri is mandatory");let{clientFactory:r=ona}=t;if(typeof r!="function")throw new OHe("Proxy opts.clientFactory must be a function.");this[i_r]=t.requestTls,this[nna]=t.proxyTls,this[WHe]=t.headers||{};let n=new YUn(t.uri),{origin:a,port:o,host:l,username:A,password:f}=n;if(t.auth&&t.token)throw new OHe("opts.auth cannot be used in combination with opts.token");t.auth?this[WHe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[WHe]["proxy-authorization"]=t.token:A&&f&&(this[WHe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(A)}:${decodeURIComponent(f)}`).toString("base64")}`);let I=XUn({...t.proxyTls});this[JUn]=XUn({...t.requestTls}),this[zft]=r(n,{connect:I}),this[PHe]=new QUn({...t,connect:async(C,b)=>{let E=C.host;C.port||(E+=`:${ina(C.protocol)}`);try{let{socket:N,statusCode:B}=await this[zft].connect({origin:a,port:o,path:E,signal:C.signal,headers:{...this[WHe],host:l}});if(B!==200&&(N.on("error",()=>{}).destroy(),b(new rna(`Proxy response (${B}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){b(null,N);return}let F;this[i_r]?F=this[i_r].servername:F=C.servername,this[JUn]({...C,servername:F,httpSocket:N},b)}catch(N){b(N)}}})}dispatch(t,r){let{host:n}=new YUn(t.origin),a=ana(t.headers);return cna(a),this[PHe].dispatch({...t,headers:{...a,host:n}},r)}async[zra](){await this[PHe].close(),await this[zft].close()}async[qra](){await this[PHe].destroy(),await this[zft].destroy()}};function ana(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new OHe("Proxy-Authorization should be sent in ProxyAgent constructor")}UUn.exports=s_r});var eKn=H((nsu,$Un)=>{var JIe=wt("assert"),{kRetryHandlerDefaultRetry:jUn}=GE(),{RequestRetryError:qft}=Ub(),{isDisturbed:zUn,parseHeaders:lna,parseRangeHeader:qUn}=zC();function una(e){let t=Date.now();return new Date(e).getTime()-t}var o_r=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts=a,this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[jUn],retryAfter:E??!0,maxTimeout:A??30*1e3,timeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]},this.retryCount=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[jUn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,timeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X,currentTimeout:ae}=r;if(ae=ae!=null&&ae>0?ae:b,l&&l!=="UND_ERR_REQ_RETRY"&&l!=="UND_ERR_SOCKET"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ne=A!=null&&A["retry-after"];ne&&(ne=Number(ne),ne=isNaN(ne)?una(ne):ne*1e3);let ce=ne>0?Math.min(ne,E):Math.min(ae*N**X,E);r.currentTimeout=ce,setTimeout(()=>a(null),ce)}onHeaders(t,r,n,a){let o=lna(r);if(this.retryCount+=1,t>=300)return this.abort(new qft("Request failed",t,{headers:o,count:this.retryCount})),!1;if(this.resume!=null){if(this.resume=null,t!==206)return!0;let A=qUn(o["content-range"]);if(!A)return this.abort(new qft("Content-Range mismatch",t,{headers:o,count:this.retryCount})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new qft("ETag mismatch",t,{headers:o,count:this.retryCount})),!1;let{start:f,size:I,end:C=I}=A;return JIe(this.start===f,"content-range mismatch"),JIe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=qUn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;JIe(f!=null&&Number.isFinite(f)&&this.start!==f,"content-range mismatch"),JIe(Number.isFinite(f)),JIe(C!=null&&Number.isFinite(C)&&this.end!==C,"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return JIe(Number.isFinite(this.start)),JIe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.handler.onHeaders(t,r,n,a)}let l=new qft("Request failed",t,{headers:o,count:this.retryCount});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||zUn(this.opts.body))return this.handler.onError(t);this.retryOpts.retry(t,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||zUn(this.opts.body))return this.handler.onError(n);this.start!==0&&(this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}});try{this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};$Un.exports=o_r});var KBe=H((isu,iKn)=>{"use strict";var tKn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:gna}=Ub(),Ana=ZHe();nKn()===void 0&&rKn(new Ana);function rKn(e){if(!e||typeof e.dispatch!="function")throw new gna("Argument agent must implement Agent");Object.defineProperty(globalThis,tKn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function nKn(){return globalThis[tKn]}iKn.exports={setGlobalDispatcher:rKn,getGlobalDispatcher:nKn}});var oKn=H((osu,sKn)=>{"use strict";sKn.exports=class{constructor(t){this.handler=t}onConnect(...t){return this.handler.onConnect(...t)}onError(...t){return this.handler.onError(...t)}onUpgrade(...t){return this.handler.onUpgrade(...t)}onHeaders(...t){return this.handler.onHeaders(...t)}onData(...t){return this.handler.onData(...t)}onComplete(...t){return this.handler.onComplete(...t)}onBodySent(...t){return this.handler.onBodySent(...t)}}});var UIe=H((asu,gKn)=>{"use strict";var{kHeadersList:z9,kConstruct:dna}=GE(),{kGuard:E8}=v$(),{kEnumerableProperty:b8}=zC(),{makeIterator:jBe,isValidHeaderName:MHe,isValidHeaderValue:cKn}=EM(),{webidl:sm}=xZ(),pna=wt("assert"),j9=Symbol("headers map"),Dk=Symbol("headers map sorted");function aKn(e){return e===10||e===13||e===9||e===32}function lKn(e){let t=0,r=e.length;for(;r>t&&aKn(e.charCodeAt(r-1));)--r;for(;r>t&&aKn(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function uKn(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function a_r(e,t,r){if(r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(e[E8]==="immutable")throw new TypeError("immutable");return e[E8],e[z9].append(t,r)}var $ft=class e{cookies=null;constructor(t){t instanceof e?(this[j9]=new Map(t[j9]),this[Dk]=t[Dk],this.cookies=t.cookies===null?null:[...t.cookies]):(this[j9]=new Map(t),this[Dk]=null)}contains(t){return t=t.toLowerCase(),this[j9].has(t)}clear(){this[j9].clear(),this[Dk]=null,this.cookies=null}append(t,r){this[Dk]=null;let n=t.toLowerCase(),a=this[j9].get(n);if(a){let o=n==="cookie"?"; ":", ";this[j9].set(n,{name:a.name,value:`${a.value}${o}${r}`})}else this[j9].set(n,{name:t,value:r});n==="set-cookie"&&(this.cookies??=[],this.cookies.push(r))}set(t,r){this[Dk]=null;let n=t.toLowerCase();n==="set-cookie"&&(this.cookies=[r]),this[j9].set(n,{name:t,value:r})}delete(t){this[Dk]=null,t=t.toLowerCase(),t==="set-cookie"&&(this.cookies=null),this[j9].delete(t)}get(t){let r=this[j9].get(t.toLowerCase());return r===void 0?null:r.value}*[Symbol.iterator](){for(let[t,{value:r}]of this[j9])yield[t,r]}get entries(){let t={};if(this[j9].size)for(let{name:r,value:n}of this[j9].values())t[r]=n;return t}},zBe=class e{constructor(t=void 0){t!==dna&&(this[z9]=new $ft,this[E8]="none",t!==void 0&&(t=sm.converters.HeadersInit(t),uKn(this,t)))}append(t,r){return sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.append"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),a_r(this,t,r)}delete(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].contains(t)&&this[z9].delete(t)}get(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.get"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.get",value:t,type:"header name"});return this[z9].get(t)}has(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.has"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.has",value:t,type:"header name"});return this[z9].contains(t)}set(t,r){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.set"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.set",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].set(t,r)}getSetCookie(){sm.brandCheck(this,e);let t=this[z9].cookies;return t?[...t]:[]}get[Dk](){if(this[z9][Dk])return this[z9][Dk];let t=[],r=[...this[z9]].sort((a,o)=>a[0]t,"Headers","key")}return jBe(()=>[...this[Dk].values()],"Headers","key")}values(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","value")}return jBe(()=>[...this[Dk].values()],"Headers","value")}entries(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","key+value")}return jBe(()=>[...this[Dk].values()],"Headers","key+value")}forEach(t,r=globalThis){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}[Symbol.for("nodejs.util.inspect.custom")](){return sm.brandCheck(this,e),this[z9]}};zBe.prototype[Symbol.iterator]=zBe.prototype.entries;Object.defineProperties(zBe.prototype,{append:b8,delete:b8,get:b8,has:b8,set:b8,getSetCookie:b8,keys:b8,values:b8,entries:b8,forEach:b8,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});sm.converters.HeadersInit=function(e){if(sm.util.Type(e)==="Object")return e[Symbol.iterator]?sm.converters["sequence>"](e):sm.converters["record"](e);throw sm.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};gKn.exports={fill:uKn,Headers:zBe,HeadersList:$ft}});var nIt=H((csu,CKn)=>{"use strict";var{Headers:fna,HeadersList:AKn,fill:Ina}=UIe(),{extractBody:dKn,cloneBody:hna,mixinBody:mna}=_He(),u_r=zC(),{kEnumerableProperty:UW}=u_r,{isValidReasonPhrase:Cna,isCancelled:_na,isAborted:yna,isBlobLike:bna,serializeJavascriptValueToJSONString:Ena,isErrorLike:Sna,isomorphicEncode:vna}=EM(),{redirectStatusSet:Bna,nullBodyStatus:wna,DOMException:pKn}=Xoe(),{kState:v2,kHeaders:$N,kGuard:qBe,kRealm:JW}=v$(),{webidl:Wh}=xZ(),{FormData:Tna}=dft(),{getGlobalOrigin:Rna}=wBe(),{URLSerializer:fKn}=wX(),{kHeadersList:c_r,kConstruct:Nna}=GE(),g_r=wt("assert"),{types:l_r}=wt("util"),hKn=globalThis.ReadableStream||wt("stream/web").ReadableStream,Dna=new TextEncoder("utf-8"),$Be=class e{static error(){let t={settingsObject:{}},r=new e;return r[v2]=tIt(),r[JW]=t,r[$N][c_r]=r[v2].headersList,r[$N][qBe]="immutable",r[$N][JW]=t,r}static json(t,r={}){Wh.argumentLengthCheck(arguments,1,{header:"Response.json"}),r!==null&&(r=Wh.converters.ResponseInit(r));let n=Dna.encode(Ena(t)),a=dKn(n),o={settingsObject:{}},l=new e;return l[JW]=o,l[$N][qBe]="response",l[$N][JW]=o,IKn(l,r,{body:a[0],type:"application/json"}),l}static redirect(t,r=302){let n={settingsObject:{}};Wh.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),t=Wh.converters.USVString(t),r=Wh.converters["unsigned short"](r);let a;try{a=new URL(t,Rna())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+t),{cause:A})}if(!Bna.has(r))throw new RangeError("Invalid status code "+r);let o=new e;o[JW]=n,o[$N][qBe]="immutable",o[$N][JW]=n,o[v2].status=r;let l=vna(fKn(a));return o[v2].headersList.append("location",l),o}constructor(t=null,r={}){t!==null&&(t=Wh.converters.BodyInit(t)),r=Wh.converters.ResponseInit(r),this[JW]={settingsObject:{}},this[v2]=rIt({}),this[$N]=new fna(Nna),this[$N][qBe]="response",this[$N][c_r]=this[v2].headersList,this[$N][JW]=this[JW];let n=null;if(t!=null){let[a,o]=dKn(t);n={body:a,type:o}}IKn(this,r,n)}get type(){return Wh.brandCheck(this,e),this[v2].type}get url(){Wh.brandCheck(this,e);let t=this[v2].urlList,r=t[t.length-1]??null;return r===null?"":fKn(r,!0)}get redirected(){return Wh.brandCheck(this,e),this[v2].urlList.length>1}get status(){return Wh.brandCheck(this,e),this[v2].status}get ok(){return Wh.brandCheck(this,e),this[v2].status>=200&&this[v2].status<=299}get statusText(){return Wh.brandCheck(this,e),this[v2].statusText}get headers(){return Wh.brandCheck(this,e),this[$N]}get body(){return Wh.brandCheck(this,e),this[v2].body?this[v2].body.stream:null}get bodyUsed(){return Wh.brandCheck(this,e),!!this[v2].body&&u_r.isDisturbed(this[v2].body.stream)}clone(){if(Wh.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw Wh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=A_r(this[v2]),r=new e;return r[v2]=t,r[JW]=this[JW],r[$N][c_r]=t.headersList,r[$N][qBe]=this[$N][qBe],r[$N][JW]=this[$N][JW],r}};mna($Be);Object.defineProperties($Be.prototype,{type:UW,url:UW,status:UW,ok:UW,redirected:UW,statusText:UW,headers:UW,clone:UW,body:UW,bodyUsed:UW,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties($Be,{json:UW,redirect:UW,error:UW});function A_r(e){if(e.internalResponse)return mKn(A_r(e.internalResponse),e.type);let t=rIt({...e,body:null});return e.body!=null&&(t.body=hna(e.body)),t}function rIt(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new AKn(e.headersList):new AKn,urlList:e.urlList?[...e.urlList]:[]}}function tIt(e){let t=Sna(e);return rIt({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function eIt(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return g_r(!(n in t)),r[n]=a,!0}})}function mKn(e,t){if(t==="basic")return eIt(e,{type:"basic",headersList:e.headersList});if(t==="cors")return eIt(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return eIt(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return eIt(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});g_r(!1)}function kna(e,t=null){return g_r(_na(e)),yna(e)?tIt(Object.assign(new pKn("The operation was aborted.","AbortError"),{cause:t})):tIt(Object.assign(new pKn("Request was cancelled."),{cause:t}))}function IKn(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!Cna(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[v2].status=t.status),"statusText"in t&&t.statusText!=null&&(e[v2].statusText=t.statusText),"headers"in t&&t.headers!=null&&Ina(e[$N],t.headers),r){if(wna.includes(e.status))throw Wh.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[v2].body=r.body,r.type!=null&&!e[v2].headersList.contains("Content-Type")&&e[v2].headersList.append("content-type",r.type)}}Wh.converters.ReadableStream=Wh.interfaceConverter(hKn);Wh.converters.FormData=Wh.interfaceConverter(Tna);Wh.converters.URLSearchParams=Wh.interfaceConverter(URLSearchParams);Wh.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?Wh.converters.USVString(e):bna(e)?Wh.converters.Blob(e,{strict:!1}):l_r.isArrayBuffer(e)||l_r.isTypedArray(e)||l_r.isDataView(e)?Wh.converters.BufferSource(e):u_r.isFormDataLike(e)?Wh.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?Wh.converters.URLSearchParams(e):Wh.converters.DOMString(e)};Wh.converters.BodyInit=function(e){return e instanceof hKn?Wh.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:Wh.converters.XMLHttpRequestBodyInit(e)};Wh.converters.ResponseInit=Wh.dictionaryConverter([{key:"status",converter:Wh.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:Wh.converters.ByteString,defaultValue:""},{key:"headers",converter:Wh.converters.HeadersInit}]);CKn.exports={makeNetworkError:tIt,makeResponse:rIt,makeAppropriateNetworkError:kna,filterResponse:mKn,Response:$Be,cloneResponse:A_r}});var QHe=H((lsu,vKn)=>{"use strict";var{extractBody:xna,mixinBody:Gna,cloneBody:Fna}=_He(),{Headers:_Kn,fill:Zna,HeadersList:aIt}=UIe(),{FinalizationRegistry:Lna}=bCr()(),YHe=zC(),{isValidHTTPToken:Vna,sameOrigin:yKn,normalizeMethod:Pna,makePolicyContainer:Wna,normalizeMethodRecord:Ona}=EM(),{forbiddenMethodsSet:Mna,corsSafeListedMethodsSet:Hna,referrerPolicy:Yna,requestRedirect:Qna,requestMode:Xna,requestCredentials:Jna,requestCache:Una,requestDuplex:Kna}=Xoe(),{kEnumerableProperty:oT}=YHe,{kHeaders:yG,kSignal:HHe,kState:P1,kGuard:iIt,kRealm:KW}=v$(),{webidl:Ff}=xZ(),{getGlobalOrigin:jna}=wBe(),{URLSerializer:zna}=wX(),{kHeadersList:sIt,kConstruct:oIt}=GE(),qna=wt("assert"),{getMaxListeners:bKn,setMaxListeners:EKn,getEventListeners:$na,defaultMaxListeners:SKn}=wt("events"),d_r=globalThis.TransformStream,eia=Symbol("abortController"),tia=new Lna(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),KIe=class e{constructor(t,r={}){if(t===oIt)return;Ff.argumentLengthCheck(arguments,1,{header:"Request constructor"}),t=Ff.converters.RequestInfo(t),r=Ff.converters.RequestInit(r),this[KW]={settingsObject:{baseUrl:jna(),get origin(){return this.baseUrl?.origin},policyContainer:Wna()}};let n=null,a=null,o=this[KW].settingsObject.baseUrl,l=null;if(typeof t=="string"){let Q;try{Q=new URL(t,o)}catch(X){throw new TypeError("Failed to parse URL from "+t,{cause:X})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);n=cIt({urlList:[Q]}),a="cors"}else qna(t instanceof e),n=t[P1],l=t[HHe];let A=this[KW].settingsObject.origin,f="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&yKn(n.window,A)&&(f=n.window),r.window!=null)throw new TypeError(`'window' option '${f}' must be null`);"window"in r&&(f="no-window"),n=cIt({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[KW].settingsObject,window:f,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let I=Object.keys(r).length!==0;if(I&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),r.referrer!==void 0){let Q=r.referrer;if(Q==="")n.referrer="no-referrer";else{let X;try{X=new URL(Q,o)}catch(ae){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:ae})}X.protocol==="about:"&&X.hostname==="client"||A&&!yKn(X,this[KW].settingsObject.baseUrl)?n.referrer="client":n.referrer=X}}r.referrerPolicy!==void 0&&(n.referrerPolicy=r.referrerPolicy);let C;if(r.mode!==void 0?C=r.mode:C=a,C==="navigate")throw Ff.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(C!=null&&(n.mode=C),r.credentials!==void 0&&(n.credentials=r.credentials),r.cache!==void 0&&(n.cache=r.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(n.redirect=r.redirect),r.integrity!=null&&(n.integrity=String(r.integrity)),r.keepalive!==void 0&&(n.keepalive=!!r.keepalive),r.method!==void 0){let Q=r.method;if(!Vna(Q))throw new TypeError(`'${Q}' is not a valid HTTP method.`);if(Mna.has(Q.toUpperCase()))throw new TypeError(`'${Q}' HTTP method is unsupported.`);Q=Ona[Q]??Pna(Q),n.method=Q}r.signal!==void 0&&(l=r.signal),this[P1]=n;let b=new AbortController;if(this[HHe]=b.signal,this[HHe][KW]=this[KW],l!=null){if(!l||typeof l.aborted!="boolean"||typeof l.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(l.aborted)b.abort(l.reason);else{this[eia]=b;let Q=new WeakRef(b),X=function(){let ae=Q.deref();ae!==void 0&&ae.abort(this.reason)};try{(typeof bKn=="function"&&bKn(l)===SKn||$na(l,"abort").length>=SKn)&&EKn(100,l)}catch{}YHe.addAbortListener(l,X),tia.register(b,{signal:l,abort:X})}}if(this[yG]=new _Kn(oIt),this[yG][sIt]=n.headersList,this[yG][iIt]="request",this[yG][KW]=this[KW],C==="no-cors"){if(!Hna.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);this[yG][iIt]="request-no-cors"}if(I){let Q=this[yG][sIt],X=r.headers!==void 0?r.headers:new aIt(Q);if(Q.clear(),X instanceof aIt){for(let[ae,ne]of X)Q.append(ae,ne);Q.cookies=X.cookies}else Zna(this[yG],X)}let E=t instanceof e?t[P1].body:null;if((r.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let N=null;if(r.body!=null){let[Q,X]=xna(r.body,n.keepalive);N=Q,X&&!this[yG][sIt].contains("content-type")&&this[yG].append("content-type",X)}let B=N??E;if(B!=null&&B.source==null){if(N!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let F=B;if(N==null&&E!=null){if(YHe.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");d_r||(d_r=wt("stream/web").TransformStream);let Q=new d_r;E.stream.pipeThrough(Q),F={source:E.source,length:E.length,stream:Q.readable}}this[P1].body=F}get method(){return Ff.brandCheck(this,e),this[P1].method}get url(){return Ff.brandCheck(this,e),zna(this[P1].url)}get headers(){return Ff.brandCheck(this,e),this[yG]}get destination(){return Ff.brandCheck(this,e),this[P1].destination}get referrer(){return Ff.brandCheck(this,e),this[P1].referrer==="no-referrer"?"":this[P1].referrer==="client"?"about:client":this[P1].referrer.toString()}get referrerPolicy(){return Ff.brandCheck(this,e),this[P1].referrerPolicy}get mode(){return Ff.brandCheck(this,e),this[P1].mode}get credentials(){return this[P1].credentials}get cache(){return Ff.brandCheck(this,e),this[P1].cache}get redirect(){return Ff.brandCheck(this,e),this[P1].redirect}get integrity(){return Ff.brandCheck(this,e),this[P1].integrity}get keepalive(){return Ff.brandCheck(this,e),this[P1].keepalive}get isReloadNavigation(){return Ff.brandCheck(this,e),this[P1].reloadNavigation}get isHistoryNavigation(){return Ff.brandCheck(this,e),this[P1].historyNavigation}get signal(){return Ff.brandCheck(this,e),this[HHe]}get body(){return Ff.brandCheck(this,e),this[P1].body?this[P1].body.stream:null}get bodyUsed(){return Ff.brandCheck(this,e),!!this[P1].body&&YHe.isDisturbed(this[P1].body.stream)}get duplex(){return Ff.brandCheck(this,e),"half"}clone(){if(Ff.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let t=ria(this[P1]),r=new e(oIt);r[P1]=t,r[KW]=this[KW],r[yG]=new _Kn(oIt),r[yG][sIt]=t.headersList,r[yG][iIt]=this[yG][iIt],r[yG][KW]=this[yG][KW];let n=new AbortController;return this.signal.aborted?n.abort(this.signal.reason):YHe.addAbortListener(this.signal,()=>{n.abort(this.signal.reason)}),r[HHe]=n.signal,r}};Gna(KIe);function cIt(e){let t={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new aIt(e.headersList):new aIt};return t.url=t.urlList[0],t}function ria(e){let t=cIt({...e,body:null});return e.body!=null&&(t.body=Fna(e.body)),t}Object.defineProperties(KIe.prototype,{method:oT,url:oT,headers:oT,redirect:oT,clone:oT,signal:oT,duplex:oT,destination:oT,body:oT,bodyUsed:oT,isHistoryNavigation:oT,isReloadNavigation:oT,keepalive:oT,integrity:oT,cache:oT,credentials:oT,attribute:oT,referrerPolicy:oT,referrer:oT,mode:oT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});Ff.converters.Request=Ff.interfaceConverter(KIe);Ff.converters.RequestInfo=function(e){return typeof e=="string"?Ff.converters.USVString(e):e instanceof KIe?Ff.converters.Request(e):Ff.converters.USVString(e)};Ff.converters.AbortSignal=Ff.interfaceConverter(AbortSignal);Ff.converters.RequestInit=Ff.dictionaryConverter([{key:"method",converter:Ff.converters.ByteString},{key:"headers",converter:Ff.converters.HeadersInit},{key:"body",converter:Ff.nullableConverter(Ff.converters.BodyInit)},{key:"referrer",converter:Ff.converters.USVString},{key:"referrerPolicy",converter:Ff.converters.DOMString,allowedValues:Yna},{key:"mode",converter:Ff.converters.DOMString,allowedValues:Xna},{key:"credentials",converter:Ff.converters.DOMString,allowedValues:Jna},{key:"cache",converter:Ff.converters.DOMString,allowedValues:Una},{key:"redirect",converter:Ff.converters.DOMString,allowedValues:Qna},{key:"integrity",converter:Ff.converters.DOMString},{key:"keepalive",converter:Ff.converters.boolean},{key:"signal",converter:Ff.nullableConverter(e=>Ff.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:Ff.converters.any},{key:"duplex",converter:Ff.converters.DOMString,allowedValues:Kna}]);vKn.exports={Request:KIe,makeRequest:cIt}});var fIt=H((usu,PKn)=>{"use strict";var{Response:nia,makeNetworkError:Kb,makeAppropriateNetworkError:lIt,filterResponse:p_r,makeResponse:uIt}=nIt(),{Headers:BKn}=UIe(),{Request:iia,makeRequest:sia}=QHe(),XHe=wt("zlib"),{bytesMatch:oia,makePolicyContainer:aia,clonePolicyContainer:cia,requestBadPort:lia,TAOCheck:uia,appendRequestOriginHeader:gia,responseLocationURL:Aia,requestCurrentURL:S8,setRequestReferrerPolicyOnRedirect:dia,tryUpgradeRequestToAPotentiallyTrustworthyURL:pia,createOpaqueTimingInfo:E_r,appendFetchMetadata:fia,corsCheck:Iia,crossOriginResourcePolicyCheck:hia,determineRequestsReferrer:mia,coarsenedSharedCurrentTime:S_r,createDeferredPromise:Cia,isBlobLike:_ia,sameOrigin:__r,isCancelled:twe,isAborted:wKn,isErrorLike:yia,fullyReadBody:DKn,readableStreamClose:bia,isomorphicEncode:y_r,urlIsLocal:Eia,urlIsHttpHttpsScheme:v_r,urlHasHttpsScheme:Sia}=EM(),{kState:b_r,kHeaders:f_r,kGuard:via,kRealm:TKn}=v$(),rwe=wt("assert"),{safelyExtractBody:gIt}=_He(),{redirectStatusSet:kKn,nullBodyStatus:xKn,safeMethodsSet:Bia,requestBodyHeader:wia,subresourceSet:Tia,DOMException:AIt}=Xoe(),{kHeadersList:ewe}=GE(),Ria=wt("events"),{Readable:Nia,pipeline:Dia}=wt("stream"),{addAbortListener:kia,isErrored:xia,isReadable:dIt,nodeMajor:RKn,nodeMinor:Gia}=zC(),{dataURLProcessor:Fia,serializeAMimeType:Zia}=wX(),{TransformStream:Lia}=wt("stream/web"),{getGlobalDispatcher:Via}=KBe(),{webidl:Pia}=xZ(),{STATUS_CODES:Wia}=wt("http"),Oia=["GET","HEAD"],I_r,h_r=globalThis.ReadableStream,pIt=class extends Ria{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new AIt("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function Mia(e,t={}){Pia.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let r=Cia(),n;try{n=new iia(e,t)}catch(E){return r.reject(E),r.promise}let a=n[b_r];if(n.signal.aborted)return m_r(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=null,f=!1,I=null;return kia(n.signal,()=>{f=!0,rwe(I!=null),I.abort(n.signal.reason),m_r(r,a,l,n.signal.reason)}),I=FKn({request:a,processResponseEndOfBody:E=>GKn(E,"fetch"),processResponse:E=>{if(f)return Promise.resolve();if(E.aborted)return m_r(r,a,l,I.serializedAbortReason),Promise.resolve();if(E.type==="error")return r.reject(Object.assign(new TypeError("fetch failed"),{cause:E.error})),Promise.resolve();l=new nia,l[b_r]=E,l[TKn]=A,l[f_r][ewe]=E.headersList,l[f_r][via]="immutable",l[f_r][TKn]=A,r.resolve(l)},dispatcher:t.dispatcher??Via()}),r.promise}function GKn(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;v_r(r)&&n!==null&&(e.timingAllowPassed||(n=E_r({startTime:n.startTime}),a=""),n.endTime=S_r(),e.timingInfo=n,Hia(n,r,t,globalThis,a))}function Hia(e,t,r,n,a){(RKn>18||RKn===18&&Gia>=2)&&performance.markResourceTiming(e,t.href,r,n,a)}function m_r(e,t,r,n){if(n||(n=new AIt("The operation was aborted.","AbortError")),e.reject(n),t.body!=null&&dIt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[b_r];a.body!=null&&dIt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function FKn({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A}){let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=S_r(I),b=E_r({startTime:C}),E={controller:new pIt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return rwe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=cia(e.client.policyContainer):e.policyContainer=aia()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,Tia.has(e.destination),ZKn(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function ZKn(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!Eia(S8(r))&&(n=Kb("local URLs only")),pia(r),lia(r)==="blocked"&&(n=Kb("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=mia(r)),n===null&&(n=await(async()=>{let o=S8(r);return __r(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await NKn(e)):r.mode==="same-origin"?Kb('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?Kb('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await NKn(e)):v_r(S8(r))?(r.responseTainting="cors",await LKn(e)):Kb("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=p_r(n,"basic"):r.responseTainting==="cors"?n=p_r(n,"cors"):r.responseTainting==="opaque"?n=p_r(n,"opaque"):rwe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range")&&(n=a=Kb()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||xKn.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>C_r(e,Kb(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!oia(A,r.integrity)){o("integrity mismatch");return}n.body=gIt(A)[0],C_r(e,n)};await DKn(n.body,l,o)}else C_r(e,n)}function NKn(e){if(twe(e)&&e.request.redirectCount===0)return Promise.resolve(lIt(e));let{request:t}=e,{protocol:r}=S8(t);switch(r){case"about:":return Promise.resolve(Kb("about scheme is not supported"));case"blob:":{I_r||(I_r=wt("buffer").resolveObjectURL);let n=S8(t);if(n.search.length!==0)return Promise.resolve(Kb("NetworkError when attempting to fetch resource."));let a=I_r(n.toString());if(t.method!=="GET"||!_ia(a))return Promise.resolve(Kb("invalid method"));let o=gIt(a),l=o[0],A=y_r(`${l.length}`),f=o[1]??"",I=uIt({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:A}],["content-type",{name:"Content-Type",value:f}]]});return I.body=l,Promise.resolve(I)}case"data:":{let n=S8(t),a=Fia(n);if(a==="failure")return Promise.resolve(Kb("failed to fetch the data URL"));let o=Zia(a.mimeType);return Promise.resolve(uIt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:gIt(a.body)[0]}))}case"file:":return Promise.resolve(Kb("not implemented... yet..."));case"http:":case"https:":return LKn(e).catch(n=>Kb(n));default:return Promise.resolve(Kb("unknown scheme"))}}function Yia(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function C_r(e,t){t.type==="error"&&(t.urlList=[e.request.urlList[0]],t.timingInfo=E_r({startTime:e.timingInfo.startTime}));let r=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(t)),t.body==null)r();else{let n=(o,l)=>{l.enqueue(o)},a=new Lia({start(){},transform:n,flush:r},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(a)}}if(e.processResponseConsumeBody!=null){let n=o=>e.processResponseConsumeBody(t,o),a=o=>e.processResponseConsumeBody(t,o);if(t.body==null)queueMicrotask(()=>n(null));else return DKn(t.body,n,a);return Promise.resolve()}}async function LKn(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await VKn(e),t.responseTainting==="cors"&&Iia(t,r)==="failure")return Kb("cors failure");uia(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&hia(t.origin,t.client,t.destination,n)==="blocked"?Kb("blocked"):(kKn.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(),t.redirect==="error"?r=Kb("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await Qia(e,r):rwe(!1)),r.timingInfo=a,r)}function Qia(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=Aia(n,S8(r).hash),a==null)return t}catch(l){return Promise.resolve(Kb(l))}if(!v_r(a))return Promise.resolve(Kb("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(Kb("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!__r(r,a))return Promise.resolve(Kb('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(Kb('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(Kb());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!Oia.includes(r.method)){r.method="GET",r.body=null;for(let l of wia)r.headersList.delete(l)}__r(S8(r),a)||(r.headersList.delete("authorization"),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie"),r.headersList.delete("host")),r.body!=null&&(rwe(r.body.source!=null),r.body=gIt(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=S_r(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),dia(r,n),ZKn(e,!0)}async function VKn(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=sia(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=y_r(`${C}`)),b!=null&&o.headersList.append("content-length",b),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",y_r(o.referrer.href)),gia(o),fia(o),o.headersList.contains("user-agent")||o.headersList.append("user-agent",typeof esbuildDetection>"u"?"undici":"node"),o.cache==="default"&&(o.headersList.contains("if-modified-since")||o.headersList.contains("if-none-match")||o.headersList.contains("if-unmodified-since")||o.headersList.contains("if-match")||o.headersList.contains("if-range"))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control")&&o.headersList.append("cache-control","max-age=0"),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma")||o.headersList.append("pragma","no-cache"),o.headersList.contains("cache-control")||o.headersList.append("cache-control","no-cache")),o.headersList.contains("range")&&o.headersList.append("accept-encoding","identity"),o.headersList.contains("accept-encoding")||(Sia(S8(o))?o.headersList.append("accept-encoding","br, gzip, deflate"):o.headersList.append("accept-encoding","gzip, deflate")),o.headersList.delete("host"),A==null&&(o.cache="no-store"),o.mode!=="no-store"&&o.mode,l==null){if(o.mode==="only-if-cached")return Kb("only if cached");let E=await Xia(a,I,r);!Bia.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range")&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?Kb():twe(e)?lIt(e):Kb("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(twe(e))return lIt(e);e.controller.connection.destroy(),l=await VKn(e,t,!0)}return l}async function Xia(e,t=!1,r=!1){rwe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B){this.destroyed||(this.destroyed=!0,this.abort?.(B??new AIt("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){twe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{twe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{twe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=uIt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=uIt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),lIt(e,B)):Kb(B)}let I=()=>{e.controller.resume()},C=B=>{e.controller.abort(B)};h_r||(h_r=wt("stream/web").ReadableStream);let b=new h_r({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)}},{highWaterMark:0,size(){return 1}});a.body={stream:b},e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:Q,value:X}=await e.controller.next();if(wKn(e))break;B=Q?void 0:X}catch(Q){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=Q,F=!0)}if(B===void 0){bia(e.controller.controller),Yia(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}if(e.controller.controller.enqueue(new Uint8Array(B)),xia(b)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function E(B){wKn(e)?(a.aborted=!0,dIt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):dIt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:yia(B)?B:void 0})),e.controller.connection.destroy()}return a;async function N({body:B}){let F=S8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;ce.destroyed?ne(new AIt("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new BKn;if(Array.isArray(ce))for(let et=0;etje.trim()):ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}else{let et=Object.keys(ce);for(let ct of et){let Me=ce[ct];ct.toLowerCase()==="content-encoding"?de=Me.toLowerCase().split(",").map(je=>je.trim()).reverse():ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}}this.body=new Nia({read:fe});let De=[],k=n.redirect==="follow"&&be&&kKn.has(ne);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!xKn.includes(ne)&&!k)for(let et of de)if(et==="x-gzip"||et==="gzip")De.push(XHe.createGunzip({flush:XHe.constants.Z_SYNC_FLUSH,finishFlush:XHe.constants.Z_SYNC_FLUSH}));else if(et==="deflate")De.push(XHe.createInflate());else if(et==="br")De.push(XHe.createBrotliDecompress());else{De.length=0;break}return X({status:ne,statusText:ue,headersList:Se[ewe],body:De.length?Dia(this.body,...De,()=>{}):this.body.on("error",()=>{})}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new BKn;for(let de=0;de{"use strict";WKn.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var MKn=H((Asu,OKn)=>{"use strict";var{webidl:jW}=xZ(),IIt=Symbol("ProgressEvent state"),w_r=class e extends Event{constructor(t,r={}){t=jW.converters.DOMString(t),r=jW.converters.ProgressEventInit(r??{}),super(t,r),this[IIt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return jW.brandCheck(this,e),this[IIt].lengthComputable}get loaded(){return jW.brandCheck(this,e),this[IIt].loaded}get total(){return jW.brandCheck(this,e),this[IIt].total}};jW.converters.ProgressEventInit=jW.dictionaryConverter([{key:"lengthComputable",converter:jW.converters.boolean,defaultValue:!1},{key:"loaded",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"total",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:jW.converters.boolean,defaultValue:!1},{key:"cancelable",converter:jW.converters.boolean,defaultValue:!1},{key:"composed",converter:jW.converters.boolean,defaultValue:!1}]);OKn.exports={ProgressEvent:w_r}});var YKn=H((dsu,HKn)=>{"use strict";function Jia(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}HKn.exports={getEncoding:Jia}});var qKn=H((psu,zKn)=>{"use strict";var{kState:nwe,kError:T_r,kResult:QKn,kAborted:JHe,kLastProgressEventFired:R_r}=B_r(),{ProgressEvent:Uia}=MKn(),{getEncoding:XKn}=YKn(),{DOMException:Kia}=Xoe(),{serializeAMimeType:jia,parseMIMEType:JKn}=wX(),{types:zia}=wt("util"),{StringDecoder:UKn}=wt("string_decoder"),{btoa:KKn}=wt("buffer"),qia={enumerable:!0,writable:!1,configurable:!1};function $ia(e,t,r,n){if(e[nwe]==="loading")throw new Kia("Invalid state","InvalidStateError");e[nwe]="loading",e[QKn]=null,e[T_r]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[JHe];)try{let{done:I,value:C}=await A;if(f&&!e[JHe]&&queueMicrotask(()=>{eae("loadstart",e)}),f=!1,!I&&zia.isUint8Array(C))l.push(C),(e[R_r]===void 0||Date.now()-e[R_r]>=50)&&!e[JHe]&&(e[R_r]=Date.now(),queueMicrotask(()=>{eae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[nwe]="done";try{let b=esa(l,r,t.type,n);if(e[JHe])return;e[QKn]=b,eae("load",e)}catch(b){e[T_r]=b,eae("error",e)}e[nwe]!=="loading"&&eae("loadend",e)});break}}catch(I){if(e[JHe])return;queueMicrotask(()=>{e[nwe]="done",e[T_r]=I,eae("error",e),e[nwe]!=="loading"&&eae("loadend",e)});break}})()}function eae(e,t){let r=new Uia(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function esa(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=JKn(r||"application/octet-stream");o!=="failure"&&(a+=jia(o)),a+=";base64,";let l=new UKn("latin1");for(let A of e)a+=KKn(l.write(A));return a+=KKn(l.end()),a}case"Text":{let a="failure";if(n&&(a=XKn(n)),a==="failure"&&r){let o=JKn(r);o!=="failure"&&(a=XKn(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),tsa(e,a)}case"ArrayBuffer":return jKn(e).buffer;case"BinaryString":{let a="",o=new UKn("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function tsa(e,t){let r=jKn(e),n=rsa(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function rsa(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function jKn(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}zKn.exports={staticPropertyDescriptors:qia,readOperation:$ia,fireAProgressEvent:eae}});var r8n=H((fsu,t8n)=>{"use strict";var{staticPropertyDescriptors:iwe,readOperation:hIt,fireAProgressEvent:$Kn}=qKn(),{kState:jIe,kError:e8n,kResult:mIt,kEvents:I0,kAborted:nsa}=B_r(),{webidl:nb}=xZ(),{kEnumerableProperty:q9}=zC(),DX=class e extends EventTarget{constructor(){super(),this[jIe]="empty",this[mIt]=null,this[e8n]=null,this[I0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"ArrayBuffer")}readAsBinaryString(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"BinaryString")}readAsText(t,r=void 0){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),t=nb.converters.Blob(t,{strict:!1}),r!==void 0&&(r=nb.converters.DOMString(r)),hIt(this,t,"Text",r)}readAsDataURL(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"DataURL")}abort(){if(this[jIe]==="empty"||this[jIe]==="done"){this[mIt]=null;return}this[jIe]==="loading"&&(this[jIe]="done",this[mIt]=null),this[nsa]=!0,$Kn("abort",this),this[jIe]!=="loading"&&$Kn("loadend",this)}get readyState(){switch(nb.brandCheck(this,e),this[jIe]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return nb.brandCheck(this,e),this[mIt]}get error(){return nb.brandCheck(this,e),this[e8n]}get onloadend(){return nb.brandCheck(this,e),this[I0].loadend}set onloadend(t){nb.brandCheck(this,e),this[I0].loadend&&this.removeEventListener("loadend",this[I0].loadend),typeof t=="function"?(this[I0].loadend=t,this.addEventListener("loadend",t)):this[I0].loadend=null}get onerror(){return nb.brandCheck(this,e),this[I0].error}set onerror(t){nb.brandCheck(this,e),this[I0].error&&this.removeEventListener("error",this[I0].error),typeof t=="function"?(this[I0].error=t,this.addEventListener("error",t)):this[I0].error=null}get onloadstart(){return nb.brandCheck(this,e),this[I0].loadstart}set onloadstart(t){nb.brandCheck(this,e),this[I0].loadstart&&this.removeEventListener("loadstart",this[I0].loadstart),typeof t=="function"?(this[I0].loadstart=t,this.addEventListener("loadstart",t)):this[I0].loadstart=null}get onprogress(){return nb.brandCheck(this,e),this[I0].progress}set onprogress(t){nb.brandCheck(this,e),this[I0].progress&&this.removeEventListener("progress",this[I0].progress),typeof t=="function"?(this[I0].progress=t,this.addEventListener("progress",t)):this[I0].progress=null}get onload(){return nb.brandCheck(this,e),this[I0].load}set onload(t){nb.brandCheck(this,e),this[I0].load&&this.removeEventListener("load",this[I0].load),typeof t=="function"?(this[I0].load=t,this.addEventListener("load",t)):this[I0].load=null}get onabort(){return nb.brandCheck(this,e),this[I0].abort}set onabort(t){nb.brandCheck(this,e),this[I0].abort&&this.removeEventListener("abort",this[I0].abort),typeof t=="function"?(this[I0].abort=t,this.addEventListener("abort",t)):this[I0].abort=null}};DX.EMPTY=DX.prototype.EMPTY=0;DX.LOADING=DX.prototype.LOADING=1;DX.DONE=DX.prototype.DONE=2;Object.defineProperties(DX.prototype,{EMPTY:iwe,LOADING:iwe,DONE:iwe,readAsArrayBuffer:q9,readAsBinaryString:q9,readAsText:q9,readAsDataURL:q9,abort:q9,readyState:q9,result:q9,error:q9,onloadstart:q9,onprogress:q9,onload:q9,onabort:q9,onerror:q9,onloadend:q9,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(DX,{EMPTY:iwe,LOADING:iwe,DONE:iwe});t8n.exports={FileReader:DX}});var CIt=H((Isu,n8n)=>{"use strict";n8n.exports={kConstruct:GE().kConstruct}});var o8n=H((hsu,s8n)=>{"use strict";var isa=wt("assert"),{URLSerializer:i8n}=wX(),{isValidHeaderName:ssa}=EM();function osa(e,t,r=!1){let n=i8n(e,r),a=i8n(t,r);return n===a}function asa(e){isa(e!==null);let t=[];for(let r of e.split(",")){if(r=r.trim(),r.length){if(!ssa(r))continue}else continue;t.push(r)}return t}s8n.exports={urlEquals:osa,fieldValues:asa}});var A8n=H((msu,g8n)=>{"use strict";var{kConstruct:csa}=CIt(),{urlEquals:lsa,fieldValues:N_r}=o8n(),{kEnumerableProperty:zIe,isDisturbed:usa}=zC(),{kHeadersList:a8n}=GE(),{webidl:Lp}=xZ(),{Response:l8n,cloneResponse:gsa}=nIt(),{Request:v8}=QHe(),{kState:VZ,kHeaders:_It,kGuard:c8n,kRealm:Asa}=v$(),{fetching:dsa}=fIt(),{urlIsHttpHttpsScheme:yIt,createDeferredPromise:swe,readAllBytes:psa}=EM(),D_r=wt("assert"),{getGlobalDispatcher:fsa}=KBe(),bIt=class e{#e;constructor(){arguments[0]!==csa&&Lp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.match"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=await this.matchAll(t,r);if(n.length!==0)return n[0]}async matchAll(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=[];if(t===void 0)for(let l of this.#e)a.push(l[1]);else{let l=this.#n(n,r);for(let A of l)a.push(A[1])}let o=[];for(let l of a){let A=new l8n(l.body?.source??null),f=A[VZ].body;A[VZ]=l,A[VZ].body=f,A[_It][a8n]=l.headersList,A[_It][c8n]="immutable",o.push(A)}return Object.freeze(o)}async add(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.add"}),t=Lp.converters.RequestInfo(t);let r=[t];return await this.addAll(r)}async addAll(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),t=Lp.converters["sequence"](t);let r=[],n=[];for(let b of t){if(typeof b=="string")continue;let E=b[VZ];if(!yIt(E.url)||E.method!=="GET")throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let a=[];for(let b of t){let E=new v8(b)[VZ];if(!yIt(E.url))throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let N=swe();a.push(dsa({request:E,dispatcher:fsa(),processResponse(B){if(B.type==="error"||B.status===206||B.status<200||B.status>299)N.reject(Lp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(B.headersList.contains("vary")){let F=N_r(B.headersList.get("vary"));for(let Q of F)if(Q==="*"){N.reject(Lp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let X of a)X.abort();return}}},processResponseEndOfBody(B){if(B.aborted){N.reject(new DOMException("aborted","AbortError"));return}N.resolve(B)}})),r.push(N.promise)}let l=await Promise.all(r),A=[],f=0;for(let b of l){let E={type:"put",request:n[f],response:b};A.push(E),f++}let I=swe(),C=null;try{this.#t(A)}catch(b){C=b}return queueMicrotask(()=>{C===null?I.resolve(void 0):I.reject(C)}),I.promise}async put(t,r){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,2,{header:"Cache.put"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.Response(r);let n=null;if(t instanceof v8?n=t[VZ]:n=new v8(t)[VZ],!yIt(n.url)||n.method!=="GET")throw Lp.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let a=r[VZ];if(a.status===206)throw Lp.errors.exception({header:"Cache.put",message:"Got 206 status"});if(a.headersList.contains("vary")){let E=N_r(a.headersList.get("vary"));for(let N of E)if(N==="*")throw Lp.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(a.body&&(usa(a.body.stream)||a.body.stream.locked))throw Lp.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let o=gsa(a),l=swe();if(a.body!=null){let N=a.body.stream.getReader();psa(N).then(l.resolve,l.reject)}else l.resolve(void 0);let A=[],f={type:"put",request:n,response:o};A.push(f);let I=await l.promise;o.body!=null&&(o.body.source=I);let C=swe(),b=null;try{this.#t(A)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve():C.reject(b)}),C.promise}async delete(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return!1}else D_r(typeof t=="string"),n=new v8(t)[VZ];let a=[],o={type:"delete",request:n,options:r};a.push(o);let l=swe(),A=null,f;try{f=this.#t(a)}catch(I){A=I}return queueMicrotask(()=>{A===null?l.resolve(!!f?.length):l.reject(A)}),l.promise}async keys(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=swe(),o=[];if(t===void 0)for(let l of this.#e)o.push(l[0]);else{let l=this.#n(n,r);for(let A of l)o.push(A[0])}return queueMicrotask(()=>{let l=[];for(let A of o){let f=new v8("https://a");f[VZ]=A,f[_It][a8n]=A.headersList,f[_It][c8n]="immutable",f[Asa]=A.client,l.push(f)}a.resolve(Object.freeze(l))}),a.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);D_r(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!yIt(f.url))throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);D_r(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!lsa(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=N_r(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}};Object.defineProperties(bIt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:zIe,matchAll:zIe,add:zIe,addAll:zIe,put:zIe,delete:zIe,keys:zIe});var u8n=[{key:"ignoreSearch",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:Lp.converters.boolean,defaultValue:!1}];Lp.converters.CacheQueryOptions=Lp.dictionaryConverter(u8n);Lp.converters.MultiCacheQueryOptions=Lp.dictionaryConverter([...u8n,{key:"cacheName",converter:Lp.converters.DOMString}]);Lp.converters.Response=Lp.interfaceConverter(l8n);Lp.converters["sequence"]=Lp.sequenceConverter(Lp.converters.RequestInfo);g8n.exports={Cache:bIt}});var p8n=H((Csu,d8n)=>{"use strict";var{kConstruct:UHe}=CIt(),{Cache:EIt}=A8n(),{webidl:PZ}=xZ(),{kEnumerableProperty:KHe}=zC(),SIt=class e{#e=new Map;constructor(){arguments[0]!==UHe&&PZ.illegalConstructor()}async match(t,r={}){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),t=PZ.converters.RequestInfo(t),r=PZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new EIt(UHe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new EIt(UHe,n).match(t,r);if(o!==void 0)return o}}async has(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),t=PZ.converters.DOMString(t),this.#e.has(t)}async open(t){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),t=PZ.converters.DOMString(t),this.#e.has(t)){let n=this.#e.get(t);return new EIt(UHe,n)}let r=[];return this.#e.set(t,r),new EIt(UHe,r)}async delete(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),t=PZ.converters.DOMString(t),this.#e.delete(t)}async keys(){return PZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(SIt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:KHe,has:KHe,open:KHe,delete:KHe,keys:KHe});d8n.exports={CacheStorage:SIt}});var I8n=H((_su,f8n)=>{"use strict";f8n.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var k_r=H((ysu,C8n)=>{"use strict";var h8n=wt("assert"),{kHeadersList:m8n}=GE();function Isa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r>=0||r<=8||r>=10||r<=31||r===127)return!1}}function hsa(e){for(let t of e){let r=t.charCodeAt(0);if(r<=32||r>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}")throw new Error("Invalid cookie name")}}function msa(e){for(let t of e){let r=t.charCodeAt(0);if(r<33||r===34||r===44||r===59||r===92||r>126)throw new Error("Invalid header value")}}function Csa(e){for(let t of e)if(t.charCodeAt(0)<33||t===";")throw new Error("Invalid cookie path")}function _sa(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function ysa(e){typeof e=="number"&&(e=new Date(e));let t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=t[e.getUTCDay()],a=e.getUTCDate().toString().padStart(2,"0"),o=r[e.getUTCMonth()],l=e.getUTCFullYear(),A=e.getUTCHours().toString().padStart(2,"0"),f=e.getUTCMinutes().toString().padStart(2,"0"),I=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${a} ${o} ${l} ${A}:${f}:${I} GMT`}function bsa(e){if(e<0)throw new Error("Invalid cookie max-age")}function Esa(e){if(e.name.length===0)return null;hsa(e.name),msa(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(bsa(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(_sa(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(Csa(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${ysa(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}var vIt;function Ssa(e){if(e[m8n])return e[m8n];vIt||(vIt=Object.getOwnPropertySymbols(e).find(r=>r.description==="headers list"),h8n(vIt,"Headers cannot be parsed"));let t=e[vIt];return h8n(t),t}C8n.exports={isCTLExcludingHtab:Isa,stringify:Esa,getHeadersList:Ssa}});var y8n=H((bsu,_8n)=>{"use strict";var{maxNameValuePairSize:vsa,maxAttributeValueSize:Bsa}=I8n(),{isCTLExcludingHtab:wsa}=k_r(),{collectASequenceOfCodePointsFast:BIt}=wX(),Tsa=wt("assert");function Rsa(e){if(wsa(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=BIt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=BIt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>vsa?null:{name:n,value:a,...owe(r)}}function owe(e,t={}){if(e.length===0)return t;Tsa(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=BIt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=BIt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Bsa)return owe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return owe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return owe(e,t)}_8n.exports={parseSetCookie:Rsa,parseUnparsedAttributes:owe}});var v8n=H((Esu,S8n)=>{"use strict";var{parseSetCookie:Nsa}=y8n(),{stringify:b8n,getHeadersList:Dsa}=k_r(),{webidl:rC}=xZ(),{Headers:wIt}=UIe();function ksa(e){rC.argumentLengthCheck(arguments,1,{header:"getCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function xsa(e,t,r){rC.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.DOMString(t),r=rC.converters.DeleteCookieAttributes(r),E8n(e,{name:t,value:"",expires:new Date(0),...r})}function Gsa(e){rC.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=Dsa(e).cookies;return t?t.map(r=>Nsa(Array.isArray(r)?r[1]:r)):[]}function E8n(e,t){rC.argumentLengthCheck(arguments,2,{header:"setCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.Cookie(t),b8n(t)&&e.append("Set-Cookie",b8n(t))}rC.converters.DeleteCookieAttributes=rC.dictionaryConverter([{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null}]);rC.converters.Cookie=rC.dictionaryConverter([{converter:rC.converters.DOMString,key:"name"},{converter:rC.converters.DOMString,key:"value"},{converter:rC.nullableConverter(e=>typeof e=="number"?rC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:rC.nullableConverter(rC.converters["long long"]),key:"maxAge",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"secure",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"httpOnly",defaultValue:null},{converter:rC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:rC.sequenceConverter(rC.converters.DOMString),key:"unparsed",defaultValue:[]}]);S8n.exports={getCookies:ksa,deleteCookie:xsa,getSetCookies:Gsa,setCookie:E8n}});var awe=H((Ssu,B8n)=>{"use strict";var Fsa="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Zsa={enumerable:!0,writable:!1,configurable:!1},Lsa={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Vsa={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Psa=2**16-1,Wsa={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Osa=Buffer.allocUnsafe(0);B8n.exports={uid:Fsa,staticPropertyDescriptors:Zsa,states:Lsa,opcodes:Vsa,maxUnsigned16Bit:Psa,parserStates:Wsa,emptyBuffer:Osa}});var jHe=H((vsu,w8n)=>{"use strict";w8n.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var G_r=H((Bsu,T8n)=>{"use strict";var{webidl:Vp}=xZ(),{kEnumerableProperty:$9}=zC(),{MessagePort:Msa}=wt("worker_threads"),TIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.MessageEventInit(r),super(t,r),this.#e=r}get data(){return Vp.brandCheck(this,e),this.#e.data}get origin(){return Vp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Vp.brandCheck(this,e),this.#e.lastEventId}get source(){return Vp.brandCheck(this,e),this.#e.source}get ports(){return Vp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Vp.brandCheck(this,e),Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}},RIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Vp.brandCheck(this,e),this.#e.wasClean}get code(){return Vp.brandCheck(this,e),this.#e.code}get reason(){return Vp.brandCheck(this,e),this.#e.reason}},NIt=class e extends Event{#e;constructor(t,r){Vp.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(t,r),t=Vp.converters.DOMString(t),r=Vp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Vp.brandCheck(this,e),this.#e.message}get filename(){return Vp.brandCheck(this,e),this.#e.filename}get lineno(){return Vp.brandCheck(this,e),this.#e.lineno}get colno(){return Vp.brandCheck(this,e),this.#e.colno}get error(){return Vp.brandCheck(this,e),this.#e.error}};Object.defineProperties(TIt.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:$9,origin:$9,lastEventId:$9,source:$9,ports:$9,initMessageEvent:$9});Object.defineProperties(RIt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:$9,code:$9,wasClean:$9});Object.defineProperties(NIt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:$9,filename:$9,lineno:$9,colno:$9,error:$9});Vp.converters.MessagePort=Vp.interfaceConverter(Msa);Vp.converters["sequence"]=Vp.sequenceConverter(Vp.converters.MessagePort);var x_r=[{key:"bubbles",converter:Vp.converters.boolean,defaultValue:!1},{key:"cancelable",converter:Vp.converters.boolean,defaultValue:!1},{key:"composed",converter:Vp.converters.boolean,defaultValue:!1}];Vp.converters.MessageEventInit=Vp.dictionaryConverter([...x_r,{key:"data",converter:Vp.converters.any,defaultValue:null},{key:"origin",converter:Vp.converters.USVString,defaultValue:""},{key:"lastEventId",converter:Vp.converters.DOMString,defaultValue:""},{key:"source",converter:Vp.nullableConverter(Vp.converters.MessagePort),defaultValue:null},{key:"ports",converter:Vp.converters["sequence"],get defaultValue(){return[]}}]);Vp.converters.CloseEventInit=Vp.dictionaryConverter([...x_r,{key:"wasClean",converter:Vp.converters.boolean,defaultValue:!1},{key:"code",converter:Vp.converters["unsigned short"],defaultValue:0},{key:"reason",converter:Vp.converters.USVString,defaultValue:""}]);Vp.converters.ErrorEventInit=Vp.dictionaryConverter([...x_r,{key:"message",converter:Vp.converters.DOMString,defaultValue:""},{key:"filename",converter:Vp.converters.USVString,defaultValue:""},{key:"lineno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"colno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"error",converter:Vp.converters.any}]);T8n.exports={MessageEvent:TIt,CloseEvent:RIt,ErrorEvent:NIt}});var xIt=H((wsu,D8n)=>{"use strict";var{kReadyState:DIt,kController:Hsa,kResponse:Ysa,kBinaryType:Qsa,kWebSocketURL:Xsa}=jHe(),{states:kIt,opcodes:R8n}=awe(),{MessageEvent:Jsa,ErrorEvent:Usa}=G_r();function Ksa(e){return e[DIt]===kIt.OPEN}function jsa(e){return e[DIt]===kIt.CLOSING}function zsa(e){return e[DIt]===kIt.CLOSED}function F_r(e,t,r=Event,n){let a=new r(e,n);t.dispatchEvent(a)}function qsa(e,t,r){if(e[DIt]!==kIt.OPEN)return;let n;if(t===R8n.TEXT)try{n=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{N8n(e,"Received invalid UTF-8 in text frame.");return}else t===R8n.BINARY&&(e[Qsa]==="blob"?n=new Blob([r]):n=new Uint8Array(r).buffer);F_r("message",e,Jsa,{origin:e[Xsa].origin,data:n})}function $sa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r<33||r>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||r===32||r===9)return!1}return!0}function eoa(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function N8n(e,t){let{[Hsa]:r,[Ysa]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&F_r("error",e,Usa,{error:new Error(t)})}D8n.exports={isEstablished:Ksa,isClosing:jsa,isClosed:zsa,fireEvent:F_r,isValidSubprotocol:$sa,isValidStatusCode:eoa,failWebsocketConnection:N8n,websocketMessageReceived:qsa}});var L8n=H((Tsu,Z8n)=>{"use strict";var L_r=wt("diagnostics_channel"),{uid:toa,states:x8n}=awe(),{kReadyState:G8n,kSentClose:k8n,kByteParser:F8n,kReceivedClose:roa}=jHe(),{fireEvent:noa,failWebsocketConnection:qIe}=xIt(),{CloseEvent:ioa}=G_r(),{makeRequest:soa}=QHe(),{fetching:ooa}=fIt(),{Headers:aoa}=UIe(),{getGlobalDispatcher:coa}=KBe(),{kHeadersList:loa}=GE(),G$={};G$.open=L_r.channel("undici:websocket:open");G$.close=L_r.channel("undici:websocket:close");G$.socketError=L_r.channel("undici:websocket:socket_error");var Z_r;try{Z_r=wt("crypto")}catch{}function uoa(e,t,r,n,a){let o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";let l=soa({urlList:[o],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(a.headers){let C=new aoa(a.headers)[loa];l.headersList=C}let A=Z_r.randomBytes(16).toString("base64");l.headersList.append("sec-websocket-key",A),l.headersList.append("sec-websocket-version","13");for(let C of t)l.headersList.append("sec-websocket-protocol",C);let f="";return ooa({request:l,useParallelQueue:!0,dispatcher:a.dispatcher??coa(),processResponse(C){if(C.type==="error"||C.status!==101){qIe(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!C.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Server did not respond with sent protocols.");return}if(C.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){qIe(r,'Server did not set Upgrade header to "websocket".');return}if(C.headersList.get("Connection")?.toLowerCase()!=="upgrade"){qIe(r,'Server did not set Connection header to "upgrade".');return}let b=C.headersList.get("Sec-WebSocket-Accept"),E=Z_r.createHash("sha1").update(A+toa).digest("base64");if(b!==E){qIe(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let N=C.headersList.get("Sec-WebSocket-Extensions");if(N!==null&&N!==f){qIe(r,"Received different permessage-deflate than the one set.");return}let B=C.headersList.get("Sec-WebSocket-Protocol");if(B!==null&&B!==l.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Protocol was not set in the opening handshake.");return}C.socket.on("data",goa),C.socket.on("close",Aoa),C.socket.on("error",doa),G$.open.hasSubscribers&&G$.open.publish({address:C.socket.address(),protocol:B,extensions:N}),n(C)}})}function goa(e){this.ws[F8n].write(e)||this.pause()}function Aoa(){let{ws:e}=this,t=e[k8n]&&e[roa],r=1005,n="",a=e[F8n].closingInfo;a?(r=a.code??1005,n=a.reason):e[k8n]||(r=1006),e[G8n]=x8n.CLOSED,noa("close",e,ioa,{wasClean:t,code:r,reason:n}),G$.close.hasSubscribers&&G$.close.publish({websocket:e,code:r,reason:n})}function doa(e){let{ws:t}=this;t[G8n]=x8n.CLOSING,G$.socketError.hasSubscribers&&G$.socketError.publish(e),this.destroy()}Z8n.exports={establishWebSocketConnection:uoa}});var P_r=H((Rsu,P8n)=>{"use strict";var{maxUnsigned16Bit:poa}=awe(),V8n;try{V8n=wt("crypto")}catch{}var V_r=class{constructor(t){this.frameData=t,this.maskKey=V8n.randomBytes(4)}createFrame(t){let r=this.frameData?.byteLength??0,n=r,a=6;r>poa?(a+=8,n=127):r>125&&(a+=2,n=126);let o=Buffer.allocUnsafe(r+a);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+t;o[a-4]=this.maskKey[0],o[a-3]=this.maskKey[1],o[a-2]=this.maskKey[2],o[a-1]=this.maskKey[3],o[1]=n,n===126?o.writeUInt16BE(r,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(r,4,6)),o[1]|=128;for(let l=0;l{"use strict";var{Writable:foa}=wt("stream"),Q8n=wt("diagnostics_channel"),{parserStates:BM,opcodes:wM,states:Ioa,emptyBuffer:hoa}=awe(),{kReadyState:moa,kSentClose:W8n,kResponse:O8n,kReceivedClose:M8n}=jHe(),{isValidStatusCode:H8n,failWebsocketConnection:zHe,websocketMessageReceived:Coa}=xIt(),{WebsocketFrameSend:Y8n}=P_r(),cwe={};cwe.ping=Q8n.channel("undici:websocket:ping");cwe.pong=Q8n.channel("undici:websocket:pong");var W_r=class extends foa{#e=[];#t=0;#n=BM.INFO;#r={};#i=[];constructor(t){super(),this.ws=t}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.run(n)}run(t){for(;;){if(this.#n===BM.INFO){if(this.#t<2)return t();let r=this.consume(2);if(this.#r.fin=(r[0]&128)!==0,this.#r.opcode=r[0]&15,this.#r.originalOpcode??=this.#r.opcode,this.#r.fragmented=!this.#r.fin&&this.#r.opcode!==wM.CONTINUATION,this.#r.fragmented&&this.#r.opcode!==wM.BINARY&&this.#r.opcode!==wM.TEXT){zHe(this.ws,"Invalid frame type was fragmented.");return}let n=r[1]&127;if(n<=125?(this.#r.payloadLength=n,this.#n=BM.READ_DATA):n===126?this.#n=BM.PAYLOADLENGTH_16:n===127&&(this.#n=BM.PAYLOADLENGTH_64),this.#r.fragmented&&n>125){zHe(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#r.opcode===wM.PING||this.#r.opcode===wM.PONG||this.#r.opcode===wM.CLOSE)&&n>125){zHe(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#r.opcode===wM.CLOSE){if(n===1){zHe(this.ws,"Received close frame with a 1-byte body.");return}let a=this.consume(n);if(this.#r.closeInfo=this.parseCloseBody(!1,a),!this.ws[W8n]){let o=Buffer.allocUnsafe(2);o.writeUInt16BE(this.#r.closeInfo.code,0);let l=new Y8n(o);this.ws[O8n].socket.write(l.createFrame(wM.CLOSE),A=>{A||(this.ws[W8n]=!0)})}this.ws[moa]=Ioa.CLOSING,this.ws[M8n]=!0,this.end();return}else if(this.#r.opcode===wM.PING){let a=this.consume(n);if(!this.ws[M8n]){let o=new Y8n(a);this.ws[O8n].socket.write(o.createFrame(wM.PONG)),cwe.ping.hasSubscribers&&cwe.ping.publish({payload:a})}if(this.#n=BM.INFO,this.#t>0)continue;t();return}else if(this.#r.opcode===wM.PONG){let a=this.consume(n);if(cwe.pong.hasSubscribers&&cwe.pong.publish({payload:a}),this.#t>0)continue;t();return}}else if(this.#n===BM.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#r.payloadLength=r.readUInt16BE(0),this.#n=BM.READ_DATA}else if(this.#n===BM.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){zHe(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#r.payloadLength=(n<<8)+a,this.#n=BM.READ_DATA}else if(this.#n===BM.READ_DATA){if(this.#t=this.#r.payloadLength){let r=this.consume(this.#r.payloadLength);if(this.#i.push(r),!this.#r.fragmented||this.#r.fin&&this.#r.opcode===wM.CONTINUATION){let n=Buffer.concat(this.#i);Coa(this.ws,this.#r.originalOpcode,n),this.#r={},this.#i.length=0}this.#n=BM.INFO}}if(!(this.#t>0)){t();break}}}consume(t){if(t>this.#t)return null;if(t===0)return hoa;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t,r){let n;if(r.length>=2&&(n=r.readUInt16BE(0)),t)return H8n(n)?{code:n}:null;let a=r.subarray(2);if(a[0]===239&&a[1]===187&&a[2]===191&&(a=a.subarray(3)),n!==void 0&&!H8n(n))return null;try{a=new TextDecoder("utf-8",{fatal:!0}).decode(a)}catch{return null}return{code:n,reason:a}}get closingInfo(){return this.#r.closeInfo}};X8n.exports={ByteParser:W_r}});var tjn=H((Dsu,ejn)=>{"use strict";var{webidl:fI}=xZ(),{DOMException:tae}=Xoe(),{URLSerializer:_oa}=wX(),{getGlobalOrigin:yoa}=wBe(),{staticPropertyDescriptors:rae,states:lwe,opcodes:qHe,emptyBuffer:boa}=awe(),{kWebSocketURL:U8n,kReadyState:F$,kController:Eoa,kBinaryType:GIt,kResponse:FIt,kSentClose:Soa,kByteParser:voa}=jHe(),{isEstablished:K8n,isClosing:j8n,isValidSubprotocol:Boa,failWebsocketConnection:woa,fireEvent:Toa}=xIt(),{establishWebSocketConnection:Roa}=L8n(),{WebsocketFrameSend:$He}=P_r(),{ByteParser:Noa}=J8n(),{kEnumerableProperty:TM,isBlobLike:q8n}=zC(),{getGlobalDispatcher:Doa}=KBe(),{types:$8n}=wt("util"),z8n=!1,zW=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";constructor(t,r=[]){super(),fI.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),z8n||(z8n=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let n=fI.converters["DOMString or sequence or WebSocketInit"](r);t=fI.converters.USVString(t),r=n.protocols;let a=yoa(),o;try{o=new URL(t,a)}catch(l){throw new tae(l,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new tae(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new tae("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(l=>l.toLowerCase())).size)throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(l=>Boa(l)))throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[U8n]=new URL(o.href),this[Eoa]=Roa(o,r,this,l=>this.#i(l),n),this[F$]=e.CONNECTING,this[GIt]="blob"}close(t=void 0,r=void 0){if(fI.brandCheck(this,e),t!==void 0&&(t=fI.converters["unsigned short"](t,{clamp:!0})),r!==void 0&&(r=fI.converters.USVString(r)),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new tae("invalid code","InvalidAccessError");let n=0;if(r!==void 0&&(n=Buffer.byteLength(r),n>123))throw new tae(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");if(!(this[F$]===e.CLOSING||this[F$]===e.CLOSED))if(!K8n(this))woa(this,"Connection was closed before it was established."),this[F$]=e.CLOSING;else if(j8n(this))this[F$]=e.CLOSING;else{let a=new $He;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=boa,this[FIt].socket.write(a.createFrame(qHe.CLOSE),l=>{l||(this[Soa]=!0)}),this[F$]=lwe.CLOSING}}send(t){if(fI.brandCheck(this,e),fI.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),t=fI.converters.WebSocketSendData(t),this[F$]===e.CONNECTING)throw new tae("Sent before connected.","InvalidStateError");if(!K8n(this)||j8n(this))return;let r=this[FIt].socket;if(typeof t=="string"){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.TEXT);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if($8n.isArrayBuffer(t)){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(ArrayBuffer.isView(t)){let n=Buffer.from(t,t.byteOffset,t.byteLength),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(q8n(t)){let n=new $He;t.arrayBuffer().then(a=>{let o=Buffer.from(a);n.frameData=o;let l=n.createFrame(qHe.BINARY);this.#t+=o.byteLength,r.write(l,()=>{this.#t-=o.byteLength})})}}get readyState(){return fI.brandCheck(this,e),this[F$]}get bufferedAmount(){return fI.brandCheck(this,e),this.#t}get url(){return fI.brandCheck(this,e),_oa(this[U8n])}get extensions(){return fI.brandCheck(this,e),this.#r}get protocol(){return fI.brandCheck(this,e),this.#n}get onopen(){return fI.brandCheck(this,e),this.#e.open}set onopen(t){fI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return fI.brandCheck(this,e),this.#e.error}set onerror(t){fI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return fI.brandCheck(this,e),this.#e.close}set onclose(t){fI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return fI.brandCheck(this,e),this.#e.message}set onmessage(t){fI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return fI.brandCheck(this,e),this[GIt]}set binaryType(t){fI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[GIt]="blob":this[GIt]=t}#i(t){this[FIt]=t;let r=new Noa(this);r.on("drain",function(){this.ws[FIt].socket.resume()}),t.socket.ws=this,this[voa]=r,this[F$]=lwe.OPEN;let n=t.headersList.get("sec-websocket-extensions");n!==null&&(this.#r=n);let a=t.headersList.get("sec-websocket-protocol");a!==null&&(this.#n=a),Toa("open",this)}};zW.CONNECTING=zW.prototype.CONNECTING=lwe.CONNECTING;zW.OPEN=zW.prototype.OPEN=lwe.OPEN;zW.CLOSING=zW.prototype.CLOSING=lwe.CLOSING;zW.CLOSED=zW.prototype.CLOSED=lwe.CLOSED;Object.defineProperties(zW.prototype,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae,url:TM,readyState:TM,bufferedAmount:TM,onopen:TM,onerror:TM,onclose:TM,close:TM,onmessage:TM,binaryType:TM,send:TM,extensions:TM,protocol:TM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(zW,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae});fI.converters["sequence"]=fI.sequenceConverter(fI.converters.DOMString);fI.converters["DOMString or sequence"]=function(e){return fI.util.Type(e)==="Object"&&Symbol.iterator in e?fI.converters["sequence"](e):fI.converters.DOMString(e)};fI.converters.WebSocketInit=fI.dictionaryConverter([{key:"protocols",converter:fI.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return Doa()}},{key:"headers",converter:fI.nullableConverter(fI.converters.HeadersInit)}]);fI.converters["DOMString or sequence or WebSocketInit"]=function(e){return fI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?fI.converters.WebSocketInit(e):{protocols:fI.converters["DOMString or sequence"](e)}};fI.converters.WebSocketSendData=function(e){if(fI.util.Type(e)==="Object"){if(q8n(e))return fI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||$8n.isAnyArrayBuffer(e))return fI.converters.BufferSource(e)}return fI.converters.USVString(e)};ejn.exports={WebSocket:zW}});var sjn=H((ksu,Eh)=>{"use strict";var koa=kHe(),rjn=Ift(),njn=Ub(),xoa=WBe(),Goa=IJn(),Foa=ZHe(),$Ie=zC(),{InvalidArgumentError:ZIt}=njn,uwe=aUn(),Zoa=SHe(),Loa=jCr(),Voa=HUn(),Poa=$Cr(),Woa=VCr(),Ooa=KUn(),Moa=eKn(),{getGlobalDispatcher:ijn,setGlobalDispatcher:Hoa}=KBe(),Yoa=oKn(),Qoa=Kmr(),Xoa=_ft(),O_r;try{wt("crypto"),O_r=!0}catch{O_r=!1}Object.assign(rjn.prototype,uwe);Eh.exports.Dispatcher=rjn;Eh.exports.Client=koa;Eh.exports.Pool=xoa;Eh.exports.BalancedPool=Goa;Eh.exports.Agent=Foa;Eh.exports.ProxyAgent=Ooa;Eh.exports.RetryHandler=Moa;Eh.exports.DecoratorHandler=Yoa;Eh.exports.RedirectHandler=Qoa;Eh.exports.createRedirectInterceptor=Xoa;Eh.exports.buildConnector=Zoa;Eh.exports.errors=njn;function eYe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new ZIt("invalid url");if(r!=null&&typeof r!="object")throw new ZIt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new ZIt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL($Ie.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=$Ie.parseURL(t);let{agent:a,dispatcher:o=ijn()}=r;if(a)throw new ZIt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Eh.exports.setGlobalDispatcher=Hoa;Eh.exports.getGlobalDispatcher=ijn;if($Ie.nodeMajor>16||$Ie.nodeMajor===16&&$Ie.nodeMinor>=8){let e=null;Eh.exports.fetch=async function(l){e||(e=fIt().fetch);try{return await e(...arguments)}catch(A){throw typeof A=="object"&&Error.captureStackTrace(A,this),A}},Eh.exports.Headers=UIe().Headers,Eh.exports.Response=nIt().Response,Eh.exports.Request=QHe().Request,Eh.exports.FormData=dft().FormData,Eh.exports.File=gft().File,Eh.exports.FileReader=r8n().FileReader;let{setGlobalOrigin:t,getGlobalOrigin:r}=wBe();Eh.exports.setGlobalOrigin=t,Eh.exports.getGlobalOrigin=r;let{CacheStorage:n}=p8n(),{kConstruct:a}=CIt();Eh.exports.caches=new n(a)}if($Ie.nodeMajor>=16){let{deleteCookie:e,getCookies:t,getSetCookies:r,setCookie:n}=v8n();Eh.exports.deleteCookie=e,Eh.exports.getCookies=t,Eh.exports.getSetCookies=r,Eh.exports.setCookie=n;let{parseMIMEType:a,serializeAMimeType:o}=wX();Eh.exports.parseMIMEType=a,Eh.exports.serializeAMimeType=o}if($Ie.nodeMajor>=18&&O_r){let{WebSocket:e}=tjn();Eh.exports.WebSocket=e}Eh.exports.request=eYe(uwe.request);Eh.exports.stream=eYe(uwe.stream);Eh.exports.pipeline=eYe(uwe.pipeline);Eh.exports.connect=eYe(uwe.connect);Eh.exports.upgrade=eYe(uwe.upgrade);Eh.exports.MockClient=Loa;Eh.exports.MockPool=Poa;Eh.exports.MockAgent=Voa;Eh.exports.mockErrors=Woa});var ajn=H(ZE=>{"use strict";var Joa=ZE&&ZE.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uoa=ZE&&ZE.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIt=ZE&&ZE.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Joa(t,e,r);return Uoa(t,e),t},ew=ZE&&ZE.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(ZE,"__esModule",{value:!0});ZE.HttpClient=ZE.isHttps=ZE.HttpClientResponse=ZE.HttpClientError=ZE.getProxyUrl=ZE.MediaTypes=ZE.Headers=ZE.HttpCodes=void 0;var M_r=OIt(wt("http")),ojn=OIt(wt("https")),H_r=OIt(IQn()),LIt=OIt(bQn()),Koa=sjn(),RM;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(RM||(ZE.HttpCodes=RM={}));var bG;(function(e){e.Accept="accept",e.ContentType="content-type"})(bG||(ZE.Headers=bG={}));var Z$;(function(e){e.ApplicationJson="application/json"})(Z$||(ZE.MediaTypes=Z$={}));function joa(e){let t=H_r.getProxyUrl(new URL(e));return t?t.href:""}ZE.getProxyUrl=joa;var zoa=[RM.MovedPermanently,RM.ResourceMoved,RM.SeeOther,RM.TemporaryRedirect,RM.PermanentRedirect],qoa=[RM.BadGateway,RM.ServiceUnavailable,RM.GatewayTimeout],$oa=["OPTIONS","GET","DELETE","HEAD"],eaa=10,taa=5,PIt=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}};ZE.HttpClientError=PIt;var WIt=class{constructor(t){this.message=t}readBody(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=Buffer.alloc(0);this.message.on("data",n=>{r=Buffer.concat([r,n])}),this.message.on("end",()=>{t(r.toString())})}))})}readBodyBuffer(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=[];this.message.on("data",n=>{r.push(n)}),this.message.on("end",()=>{t(Buffer.concat(r))})}))})}};ZE.HttpClientResponse=WIt;function raa(e){return new URL(e).protocol==="https:"}ZE.isHttps=raa;var Y_r=class{constructor(t,r,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=t,this.handlers=r||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(t,r){return ew(this,void 0,void 0,function*(){return this.request("OPTIONS",t,null,r||{})})}get(t,r){return ew(this,void 0,void 0,function*(){return this.request("GET",t,null,r||{})})}del(t,r){return ew(this,void 0,void 0,function*(){return this.request("DELETE",t,null,r||{})})}post(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("POST",t,r,n||{})})}patch(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PATCH",t,r,n||{})})}put(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PUT",t,r,n||{})})}head(t,r){return ew(this,void 0,void 0,function*(){return this.request("HEAD",t,null,r||{})})}sendStream(t,r,n,a){return ew(this,void 0,void 0,function*(){return this.request(t,r,n,a)})}getJson(t,r={}){return ew(this,void 0,void 0,function*(){r[bG.Accept]=this._getExistingOrDefaultHeader(r,bG.Accept,Z$.ApplicationJson);let n=yield this.get(t,r);return this._processResponse(n,this.requestOptions)})}postJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.post(t,a,n);return this._processResponse(o,this.requestOptions)})}putJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.put(t,a,n);return this._processResponse(o,this.requestOptions)})}patchJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.patch(t,a,n);return this._processResponse(o,this.requestOptions)})}request(t,r,n,a){return ew(this,void 0,void 0,function*(){if(this._disposed)throw new Error("Client has already been disposed.");let o=new URL(r),l=this._prepareRequest(t,o,a),A=this._allowRetries&&$oa.includes(t)?this._maxRetries+1:1,f=0,I;do{if(I=yield this.requestRaw(l,n),I&&I.message&&I.message.statusCode===RM.Unauthorized){let b;for(let E of this.handlers)if(E.canHandleAuthentication(I)){b=E;break}return b?b.handleAuthentication(this,l,n):I}let C=this._maxRedirects;for(;I.message.statusCode&&zoa.includes(I.message.statusCode)&&this._allowRedirects&&C>0;){let b=I.message.headers.location;if(!b)break;let E=new URL(b);if(o.protocol==="https:"&&o.protocol!==E.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield I.readBody(),E.hostname!==o.hostname)for(let N in a)N.toLowerCase()==="authorization"&&delete a[N];l=this._prepareRequest(t,E,a),I=yield this.requestRaw(l,n),C--}if(!I.message.statusCode||!qoa.includes(I.message.statusCode))return I;f+=1,f{function o(l,A){l?a(l):A?n(A):a(new Error("Unknown error"))}this.requestRawWithCallback(t,r,o)})})}requestRawWithCallback(t,r,n){typeof r=="string"&&(t.options.headers||(t.options.headers={}),t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let a=!1;function o(f,I){a||(a=!0,n(f,I))}let l=t.httpModule.request(t.options,f=>{let I=new WIt(f);o(void 0,I)}),A;l.on("socket",f=>{A=f}),l.setTimeout(this._socketTimeout||3*6e4,()=>{A&&A.end(),o(new Error(`Request timeout: ${t.options.path}`))}),l.on("error",function(f){o(f)}),r&&typeof r=="string"&&l.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){l.end()}),r.pipe(l)):l.end()}getAgent(t){let r=new URL(t);return this._getAgent(r)}getAgentDispatcher(t){let r=new URL(t),n=H_r.getProxyUrl(r);if(n&&n.hostname)return this._getProxyAgentDispatcher(r,n)}_prepareRequest(t,r,n){let a={};a.parsedUrl=r;let o=a.parsedUrl.protocol==="https:";a.httpModule=o?ojn:M_r;let l=o?443:80;if(a.options={},a.options.host=a.parsedUrl.hostname,a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):l,a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||""),a.options.method=t,a.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(a.options.headers["user-agent"]=this.userAgent),a.options.agent=this._getAgent(a.parsedUrl),this.handlers)for(let A of this.handlers)A.prepareRequest(a.options);return a}_mergeHeaders(t){return this.requestOptions&&this.requestOptions.headers?Object.assign({},VIt(this.requestOptions.headers),VIt(t||{})):VIt(t||{})}_getExistingOrDefaultHeader(t,r,n){let a;return this.requestOptions&&this.requestOptions.headers&&(a=VIt(this.requestOptions.headers)[r]),t[r]||a||n}_getAgent(t){let r,n=H_r.getProxyUrl(t),a=n&&n.hostname;if(this._keepAlive&&a&&(r=this._proxyAgent),a||(r=this._agent),r)return r;let o=t.protocol==="https:",l=100;if(this.requestOptions&&(l=this.requestOptions.maxSockets||M_r.globalAgent.maxSockets),n&&n.hostname){let A={maxSockets:l,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},f,I=n.protocol==="https:";o?f=I?LIt.httpsOverHttps:LIt.httpsOverHttp:f=I?LIt.httpOverHttps:LIt.httpOverHttp,r=f(A),this._proxyAgent=r}if(!r){let A={keepAlive:this._keepAlive,maxSockets:l};r=o?new ojn.Agent(A):new M_r.Agent(A),this._agent=r}return o&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_getProxyAgentDispatcher(t,r){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let a=t.protocol==="https:";return n=new Koa.ProxyAgent(Object.assign({uri:r.href,pipelining:this._keepAlive?1:0},(r.username||r.password)&&{token:`Basic ${Buffer.from(`${r.username}:${r.password}`).toString("base64")}`})),this._proxyAgentDispatcher=n,a&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_performExponentialBackoff(t){return ew(this,void 0,void 0,function*(){t=Math.min(eaa,t);let r=taa*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))})}_processResponse(t,r){return ew(this,void 0,void 0,function*(){return new Promise((n,a)=>ew(this,void 0,void 0,function*(){let o=t.message.statusCode||0,l={statusCode:o,result:null,headers:{}};o===RM.NotFound&&n(l);function A(C,b){if(typeof b=="string"){let E=new Date(b);if(!isNaN(E.valueOf()))return E}return b}let f,I;try{I=yield t.readBody(),I&&I.length>0&&(r&&r.deserializeDates?f=JSON.parse(I,A):f=JSON.parse(I),l.result=f),l.headers=t.message.headers}catch{}if(o>299){let C;f&&f.message?C=f.message:I&&I.length>0?C=I:C=`Failed request: (${o})`;let b=new PIt(C,o);b.result=l.result,a(b)}else n(l)}))})}};ZE.HttpClient=Y_r;var VIt=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{})});var B2=H((Gsu,cjn)=>{cjn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Y0=H((Fsu,ljn)=>{"use strict";var RS=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Q_r=class extends RS{constructor(t){super(t),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},X_r=class extends RS{constructor(t){super(t),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},J_r=class extends RS{constructor(t){super(t),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},U_r=class extends RS{constructor(t){super(t),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},K_r=class extends RS{constructor(t,r,n,a){super(t),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},j_r=class extends RS{constructor(t){super(t),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},z_r=class extends RS{constructor(t){super(t),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},MIt=class extends RS{constructor(t){super(t),this.name="AbortError",this.message=t||"The operation was aborted"}},q_r=class extends MIt{constructor(t){super(t),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$_r=class extends RS{constructor(t){super(t),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},e0r=class extends RS{constructor(t){super(t),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},t0r=class extends RS{constructor(t){super(t),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},r0r=class extends RS{constructor(t){super(t),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},n0r=class extends RS{constructor(t){super(t),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},i0r=class extends RS{constructor(t,r){super(t),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},s0r=class extends RS{constructor(t){super(t),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},o0r=class extends RS{constructor(t){super(t),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},a0r=class extends Error{constructor(t,r,n){super(t),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},c0r=class extends RS{constructor(t){super(t),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},l0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}},u0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="ResponseError",this.message=t||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=r,this.data=a,this.headers=n}},g0r=class extends RS{constructor(t,r,n){super(r,{cause:t,...n??{}}),this.name="SecureProxyConnectionError",this.message=r||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=t}};ljn.exports={AbortError:MIt,HTTPParserError:a0r,UndiciError:RS,HeadersTimeoutError:X_r,HeadersOverflowError:J_r,BodyTimeoutError:U_r,RequestContentLengthMismatchError:e0r,ConnectTimeoutError:Q_r,ResponseStatusCodeError:K_r,InvalidArgumentError:j_r,InvalidReturnValueError:z_r,RequestAbortedError:q_r,ClientDestroyedError:r0r,ClientClosedError:n0r,InformationalError:$_r,SocketError:i0r,NotSupportedError:s0r,ResponseContentLengthMismatchError:t0r,BalancedPoolMissingUpstreamError:o0r,ResponseExceededMaxSizeError:c0r,RequestRetryError:l0r,ResponseError:u0r,SecureProxyConnectionError:g0r}});var YIt=H((Zsu,ujn)=>{"use strict";var HIt={},A0r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var{wellknownHeaderNames:gjn,headerNameLowerCasedRecord:naa}=YIt(),d0r=class e{value=null;left=null;middle=null;right=null;code;constructor(t,r,n){if(n===void 0||n>=t.length)throw new TypeError("Unreachable");if((this.code=t.charCodeAt(n))>127)throw new TypeError("key must be ascii string");t.length!==++n?this.middle=new e(t,r,n):this.value=r}add(t,r){let n=t.length;if(n===0)throw new TypeError("Unreachable");let a=0,o=this;for(;;){let l=t.charCodeAt(a);if(l>127)throw new TypeError("key must be ascii string");if(o.code===l)if(n===++a){o.value=r;break}else if(o.middle!==null)o=o.middle;else{o.middle=new e(t,r,a);break}else if(o.code=65&&(o|=32);a!==null;){if(o===a.code){if(r===++n)return a;a=a.middle;break}a=a.code{"use strict";var tYe=wt("node:assert"),{kDestroyed:Ijn,kBodyUsed:gwe,kListeners:p0r,kBody:fjn}=B2(),{IncomingMessage:iaa}=wt("node:http"),UIt=wt("node:stream"),saa=wt("node:net"),{Blob:oaa}=wt("node:buffer"),aaa=wt("node:util"),{stringify:caa}=wt("node:querystring"),{EventEmitter:laa}=wt("node:events"),{InvalidArgumentError:eD}=Y0(),{headerNameLowerCasedRecord:uaa}=YIt(),{tree:hjn}=pjn(),[gaa,Aaa]=process.versions.node.split(".").map(e=>Number(e)),JIt=class{constructor(t){this[fjn]=t,this[gwe]=!1}async*[Symbol.asyncIterator](){tYe(!this[gwe],"disturbed"),this[gwe]=!0,yield*this[fjn]}};function daa(e){return KIt(e)?(bjn(e)===0&&e.on("data",function(){tYe(!1)}),typeof e.readableDidRead!="boolean"&&(e[gwe]=!1,laa.prototype.on.call(e,"data",function(){this[gwe]=!0})),e):e&&typeof e.pipeTo=="function"?new JIt(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&yjn(e)?new JIt(e):e}function paa(){}function KIt(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function mjn(e){if(e===null)return!1;if(e instanceof oaa)return!0;if(typeof e!="object")return!1;{let t=e[Symbol.toStringTag];return(t==="Blob"||t==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function faa(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=caa(t);return r&&(e+="?"+r),e}function Cjn(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function XIt(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function _jn(e){if(typeof e=="string"){if(e=new URL(e),!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new eD("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Cjn(e.port)===!1)throw new eD("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new eD("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new eD("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new eD("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new eD("Invalid URL origin: the origin must be a string or null/undefined.");if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return r[r.length-1]==="/"&&(r=r.slice(0,r.length-1)),n&&n[0]!=="/"&&(n=`/${n}`),new URL(`${r}${n}`)}if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Iaa(e){if(e=_jn(e),e.pathname!=="/"||e.search||e.hash)throw new eD("invalid url");return e}function haa(e){if(e[0]==="["){let r=e.indexOf("]");return tYe(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function maa(e){if(!e)return null;tYe(typeof e=="string");let t=haa(e);return saa.isIP(t)?"":t}function Caa(e){return JSON.parse(JSON.stringify(e))}function _aa(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function yjn(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function bjn(e){if(e==null)return 0;if(KIt(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(mjn(e))return e.size!=null?e.size:null;if(vjn(e))return e.byteLength}return null}function Ejn(e){return e&&!!(e.destroyed||e[Ijn]||UIt.isDestroyed?.(e))}function yaa(e,t){e==null||!KIt(e)||Ejn(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===iaa&&(e.socket=null),e.destroy(t)):t&&queueMicrotask(()=>{e.emit("error",t)}),e.destroyed!==!0&&(e[Ijn]=!0))}var baa=/timeout=(\d+)/;function Eaa(e){let t=e.toString().match(baa);return t?parseInt(t[1],10)*1e3:null}function Sjn(e){return typeof e=="string"?uaa[e]??e.toLowerCase():hjn.lookup(e)??e.toString("latin1").toLowerCase()}function Saa(e){return hjn.lookup(e)??e.toString("latin1").toLowerCase()}function vaa(e,t){t===void 0&&(t={});for(let r=0;rl.toString("utf8")):o.toString("utf8")}}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function Baa(e){let t=e.length,r=new Array(t),n=!1,a=-1,o,l,A=0;for(let f=0;f{r.close(),r.byobRequest?.respond(0)});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);o.byteLength&&r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()},type:"bytes"})}function xaa(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Gaa(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var Faa=typeof String.prototype.toWellFormed=="function",Zaa=typeof String.prototype.isWellFormed=="function";function Bjn(e){return Faa?`${e}`.toWellFormed():aaa.toUSVString(e)}function Laa(e){return Zaa?`${e}`.isWellFormed():Bjn(e)===`${e}`}function wjn(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Vaa(e){if(e.length===0)return!1;for(let t=0;t{"use strict";var Q0=wt("node:diagnostics_channel"),h0r=wt("node:util"),jIt=h0r.debuglog("undici"),I0r=h0r.debuglog("fetch"),ehe=h0r.debuglog("websocket"),Djn=!1,Qaa={beforeConnect:Q0.channel("undici:client:beforeConnect"),connected:Q0.channel("undici:client:connected"),connectError:Q0.channel("undici:client:connectError"),sendHeaders:Q0.channel("undici:client:sendHeaders"),create:Q0.channel("undici:request:create"),bodySent:Q0.channel("undici:request:bodySent"),headers:Q0.channel("undici:request:headers"),trailers:Q0.channel("undici:request:trailers"),error:Q0.channel("undici:request:error"),open:Q0.channel("undici:websocket:open"),close:Q0.channel("undici:websocket:close"),socketError:Q0.channel("undici:websocket:socket_error"),ping:Q0.channel("undici:websocket:ping"),pong:Q0.channel("undici:websocket:pong")};if(jIt.enabled||I0r.enabled){let e=I0r.enabled?I0r:jIt;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s using %s%s errored - %s",`${o}${a?`:${a}`:""}`,n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)}),Q0.channel("undici:request:headers").subscribe(t=>{let{request:{method:r,path:n,origin:a},response:{statusCode:o}}=t;e("received response to %s %s/%s - HTTP %d",r,a,n,o)}),Q0.channel("undici:request:trailers").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("trailers received from %s %s/%s",r,a,n)}),Q0.channel("undici:request:error").subscribe(t=>{let{request:{method:r,path:n,origin:a},error:o}=t;e("request to %s %s/%s errored - %s",r,a,n,o.message)}),Djn=!0}if(ehe.enabled){if(!Djn){let e=jIt.enabled?jIt:ehe;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s%s using %s%s errored - %s",o,a?`:${a}`:"",n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)})}Q0.channel("undici:websocket:open").subscribe(e=>{let{address:{address:t,port:r}}=e;ehe("connection opened %s%s",t,r?`:${r}`:"")}),Q0.channel("undici:websocket:close").subscribe(e=>{let{websocket:t,code:r,reason:n}=e;ehe("closed connection to %s - %s %s",t.url,r,n)}),Q0.channel("undici:websocket:socket_error").subscribe(e=>{ehe("connection errored - %s",e.message)}),Q0.channel("undici:websocket:ping").subscribe(e=>{ehe("ping received")}),Q0.channel("undici:websocket:pong").subscribe(e=>{ehe("pong received")})}kjn.exports={channels:Qaa}});var Ljn=H((Wsu,Zjn)=>{"use strict";var{InvalidArgumentError:NS,NotSupportedError:Xaa}=Y0(),L$=wt("node:assert"),{isValidHTTPToken:Fjn,isValidHeaderValue:xjn,isStream:Jaa,destroy:Uaa,isBuffer:Kaa,isFormDataLike:jaa,isIterable:zaa,isBlobLike:qaa,buildURL:$aa,validateHandler:eca,getServerName:tca,normalizedMethodRecords:rca}=Em(),{channels:B8}=Awe(),{headerNameLowerCasedRecord:Gjn}=YIt(),nca=/[^\u0021-\u00ff]/,NM=Symbol("handler"),m0r=class{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B,servername:F},Q){if(typeof r!="string")throw new NS("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new NS("path must be an absolute URL or start with a slash");if(nca.test(r))throw new NS("invalid request path");if(typeof n!="string")throw new NS("method must be a string");if(rca[n]===void 0&&!Fjn(n))throw new NS("invalid request method");if(I&&typeof I!="string")throw new NS("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new NS("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new NS("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new NS("invalid reset");if(B!=null&&typeof B!="boolean")throw new NS("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(Jaa(a)){this.body=a;let X=this.body._readableState;(!X||!X.autoDestroy)&&(this.endHandler=function(){Uaa(this)},this.body.on("end",this.endHandler)),this.errorHandler=ae=>{this.abort?this.abort(ae):this.error=ae},this.body.on("error",this.errorHandler)}else if(Kaa(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(jaa(a)||zaa(a)||qaa(a))this.body=a;else throw new NS("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?$aa(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new NS("headers array must be even");for(let X=0;X{"use strict";var ica=wt("node:events"),qIt=class extends ica{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...t){let r=Array.isArray(t[0])?t[0]:t,n=this.dispatch.bind(this);for(let a of r)if(a!=null){if(typeof a!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof a}`);if(n=a(n),n==null||typeof n!="function"||n.length!==2)throw new TypeError("invalid interceptor")}return new C0r(this,n)}},C0r=class extends qIt{#e=null;#t=null;constructor(t,r){super(),this.#e=t,this.#t=r}dispatch(...t){this.#t(...t)}close(...t){return this.#e.close(...t)}destroy(...t){return this.#e.destroy(...t)}};Vjn.exports=qIt});var Iwe=H((Msu,Pjn)=>{"use strict";var sca=rYe(),{ClientDestroyedError:_0r,ClientClosedError:oca,InvalidArgumentError:dwe}=Y0(),{kDestroy:aca,kClose:cca,kClosed:nYe,kDestroyed:pwe,kDispatch:y0r,kInterceptors:the}=B2(),V$=Symbol("onDestroyed"),fwe=Symbol("onClosed"),$It=Symbol("Intercepted Dispatch"),b0r=class extends sca{constructor(){super(),this[pwe]=!1,this[V$]=null,this[nYe]=!1,this[fwe]=[]}get destroyed(){return this[pwe]}get closed(){return this[nYe]}get interceptors(){return this[the]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[the][r]!="function")throw new dwe("interceptor must be an function")}this[the]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new dwe("invalid callback");if(this[pwe]){queueMicrotask(()=>t(new _0r,null));return}if(this[nYe]){this[fwe]?this[fwe].push(t):queueMicrotask(()=>t(null,null));return}this[nYe]=!0,this[fwe].push(t);let r=()=>{let n=this[fwe];this[fwe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new dwe("invalid callback");if(this[pwe]){this[V$]?this[V$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new _0r),this[pwe]=!0,this[V$]=this[V$]||[],this[V$].push(r);let n=()=>{let a=this[V$];this[V$]=null;for(let o=0;o{queueMicrotask(n)})}[$It](t,r){if(!this[the]||this[the].length===0)return this[$It]=this[y0r],this[y0r](t,r);let n=this[y0r].bind(this);for(let a=this[the].length-1;a>=0;a--)n=this[the][a](n);return this[$It]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new dwe("handler must be an object");try{if(!t||typeof t!="object")throw new dwe("opts must be an object.");if(this[pwe]||this[V$])throw new _0r;if(this[nYe])throw new oca;return this[$It](t,r)}catch(n){if(typeof r.onError!="function")throw new dwe("invalid onError method");return r.onError(n),!1}}};Pjn.exports=b0r});var R0r=H((Hsu,Hjn)=>{"use strict";var hwe=0,E0r=1e3,S0r=(E0r>>1)-1,P$,v0r=Symbol("kFastTimer"),W$=[],B0r=-2,w0r=-1,Ojn=0,Wjn=1;function T0r(){hwe+=S0r;let e=0,t=W$.length;for(;e=r._idleStart+r._idleTimeout&&(r._state=w0r,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===w0r?(r._state=B0r,--t!==0&&(W$[e]=W$[t])):++e}W$.length=t,W$.length!==0&&Mjn()}function Mjn(){P$?P$.refresh():(clearTimeout(P$),P$=setTimeout(T0r,S0r),P$.unref&&P$.unref())}var eht=class{[v0r]=!0;_state=B0r;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(t,r,n){this._onTimeout=t,this._idleTimeout=r,this._timerArg=n,this.refresh()}refresh(){this._state===B0r&&W$.push(this),(!P$||W$.length===1)&&Mjn(),this._state=Ojn}clear(){this._state=w0r,this._idleStart=-1}};Hjn.exports={setTimeout(e,t,r){return t<=E0r?setTimeout(e,t,r):new eht(e,t,r)},clearTimeout(e){e[v0r]?e.clear():clearTimeout(e)},setFastTimeout(e,t,r){return new eht(e,t,r)},clearFastTimeout(e){e.clear()},now(){return hwe},tick(e=0){hwe+=e-E0r+1,T0r(),T0r()},reset(){hwe=0,W$.length=0,clearTimeout(P$),P$=null},kFastTimer:v0r}});var iYe=H((Xsu,Ujn)=>{"use strict";var lca=wt("node:net"),Yjn=wt("node:assert"),Jjn=Em(),{InvalidArgumentError:uca,ConnectTimeoutError:gca}=Y0(),tht=R0r();function Qjn(){}var N0r,D0r;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?D0r=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function Aca({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,session:a,...o}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new uca("maxCachedSessions must be a positive integer or zero");let l={path:r,...o},A=new D0r(t??100);return n=n??1e4,e=e??!1,function({hostname:I,host:C,protocol:b,port:E,servername:N,localAddress:B,httpSocket:F},Q){let X;if(b==="https:"){N0r||(N0r=wt("node:tls")),N=N||l.servername||Jjn.getServerName(C)||null;let ne=N||I;Yjn(ne);let ce=a||A.get(ne)||null;E=E||443,X=N0r.connect({highWaterMark:16384,...l,servername:N,session:ce,localAddress:B,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:F,port:E,host:I}),X.on("session",function(fe){A.set(ne,fe)})}else Yjn(!F,"httpSocket can only be sent on TLS update"),E=E||80,X=lca.connect({highWaterMark:64*1024,...l,localAddress:B,port:E,host:I});if(l.keepAlive==null||l.keepAlive){let ne=l.keepAliveInitialDelay===void 0?6e4:l.keepAliveInitialDelay;X.setKeepAlive(!0,ne)}let ae=dca(new WeakRef(X),{timeout:n,hostname:I,port:E});return X.setNoDelay(!0).once(b==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(ae),Q){let ne=Q;Q=null,ne(null,this)}}).on("error",function(ne){if(queueMicrotask(ae),Q){let ce=Q;Q=null,ce(ne)}}),X}}var dca=process.platform==="win32"?(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=null,a=tht.setFastTimeout(()=>{r=setImmediate(()=>{n=setImmediate(()=>Xjn(e.deref(),t))})},t.timeout);return()=>{tht.clearFastTimeout(a),clearImmediate(r),clearImmediate(n)}}:(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=tht.setFastTimeout(()=>{r=setImmediate(()=>{Xjn(e.deref(),t)})},t.timeout);return()=>{tht.clearFastTimeout(n),clearImmediate(r)}};function Xjn(e,t){let r="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:r+=` (attempted address: ${t.hostname}:${t.port},`,r+=` timeout: ${t.timeout}ms)`,Jjn.destroy(e,new gca(r))}Ujn.exports=Aca});var Kjn=H(rht=>{"use strict";Object.defineProperty(rht,"__esModule",{value:!0});rht.enumToMap=void 0;function pca(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}rht.enumToMap=pca});var jjn=H(Gu=>{"use strict";Object.defineProperty(Gu,"__esModule",{value:!0});Gu.SPECIAL_HEADERS=Gu.HEADER_STATE=Gu.MINOR=Gu.MAJOR=Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS=Gu.TOKEN=Gu.STRICT_TOKEN=Gu.HEX=Gu.URL_CHAR=Gu.STRICT_URL_CHAR=Gu.USERINFO_CHARS=Gu.MARK=Gu.ALPHANUM=Gu.NUM=Gu.HEX_MAP=Gu.NUM_MAP=Gu.ALPHA=Gu.FINISH=Gu.H_METHOD_MAP=Gu.METHOD_MAP=Gu.METHODS_RTSP=Gu.METHODS_ICE=Gu.METHODS_HTTP=Gu.METHODS=Gu.LENIENT_FLAGS=Gu.FLAGS=Gu.TYPE=Gu.ERROR=void 0;var fca=Kjn(),Ica;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Ica=Gu.ERROR||(Gu.ERROR={}));var hca;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(hca=Gu.TYPE||(Gu.TYPE={}));var mca;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(mca=Gu.FLAGS||(Gu.FLAGS={}));var Cca;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Cca=Gu.LENIENT_FLAGS||(Gu.LENIENT_FLAGS={}));var Pp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Pp=Gu.METHODS||(Gu.METHODS={}));Gu.METHODS_HTTP=[Pp.DELETE,Pp.GET,Pp.HEAD,Pp.POST,Pp.PUT,Pp.CONNECT,Pp.OPTIONS,Pp.TRACE,Pp.COPY,Pp.LOCK,Pp.MKCOL,Pp.MOVE,Pp.PROPFIND,Pp.PROPPATCH,Pp.SEARCH,Pp.UNLOCK,Pp.BIND,Pp.REBIND,Pp.UNBIND,Pp.ACL,Pp.REPORT,Pp.MKACTIVITY,Pp.CHECKOUT,Pp.MERGE,Pp["M-SEARCH"],Pp.NOTIFY,Pp.SUBSCRIBE,Pp.UNSUBSCRIBE,Pp.PATCH,Pp.PURGE,Pp.MKCALENDAR,Pp.LINK,Pp.UNLINK,Pp.PRI,Pp.SOURCE];Gu.METHODS_ICE=[Pp.SOURCE];Gu.METHODS_RTSP=[Pp.OPTIONS,Pp.DESCRIBE,Pp.ANNOUNCE,Pp.SETUP,Pp.PLAY,Pp.PAUSE,Pp.TEARDOWN,Pp.GET_PARAMETER,Pp.SET_PARAMETER,Pp.REDIRECT,Pp.RECORD,Pp.FLUSH,Pp.GET,Pp.POST];Gu.METHOD_MAP=fca.enumToMap(Pp);Gu.H_METHOD_MAP={};Object.keys(Gu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(Gu.H_METHOD_MAP[e]=Gu.METHOD_MAP[e])});var _ca;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_ca=Gu.FINISH||(Gu.FINISH={}));Gu.ALPHA=[];for(let e=65;e<=90;e++)Gu.ALPHA.push(String.fromCharCode(e)),Gu.ALPHA.push(String.fromCharCode(e+32));Gu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};Gu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};Gu.NUM=["0","1","2","3","4","5","6","7","8","9"];Gu.ALPHANUM=Gu.ALPHA.concat(Gu.NUM);Gu.MARK=["-","_",".","!","~","*","'","(",")"];Gu.USERINFO_CHARS=Gu.ALPHANUM.concat(Gu.MARK).concat(["%",";",":","&","=","+","$",","]);Gu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(Gu.ALPHANUM);Gu.URL_CHAR=Gu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)Gu.URL_CHAR.push(e);Gu.HEX=Gu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);Gu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(Gu.ALPHANUM);Gu.TOKEN=Gu.STRICT_TOKEN.concat([" "]);Gu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&Gu.HEADER_CHARS.push(e);Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS.filter(e=>e!==44);Gu.MAJOR=Gu.NUM_MAP;Gu.MINOR=Gu.MAJOR;var mwe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(mwe=Gu.HEADER_STATE||(Gu.HEADER_STATE={}));Gu.SPECIAL_HEADERS={connection:mwe.CONNECTION,"content-length":mwe.CONTENT_LENGTH,"proxy-connection":mwe.CONNECTION,"transfer-encoding":mwe.TRANSFER_ENCODING,upgrade:mwe.UPGRADE}});var k0r=H((Ksu,zjn)=>{"use strict";var{Buffer:yca}=wt("node:buffer");zjn.exports=yca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var $jn=H((jsu,qjn)=>{"use strict";var{Buffer:bca}=wt("node:buffer");qjn.exports=bca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB9ysPC0GQMQ8LQdcxDwtBoi0PC0HUJw8LQeArDwtBnywPC0HrMQ8LQdUfDwtByjEPC0HeJQ8LQdQeDwtB9BwPC0GnMg8LQbEdDwtBoB0PC0G5MQ8LQbwwDwtBkiEPC0GzJg8LQeksDwtBrB4PC0HUKw8LQfcmDwtBgCYPC0GwIQ8LQf4eDwtBjSMPC0GJLQ8LQfciDwtBoDEPC0GuHw8LQcYlDwtB6B4PC0GTIg8LQcIvDwtBwx0PC0GLLA8LQeEdDwtBjS8PC0HqIQ8LQbQtDwtB0i8PC0HfMg8LQdIyDwtB8DAPC0GpIg8LQfkjDwtBmR4PC0G1LA8LQZswDwtBkjIPC0G2Kw8LQcIiDwtB+DIPC0GeJQ8LQdAiDwtBuh4PC0GBHg8LAAtB1iEhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCz4BAn8CQCAAKAI4IgNFDQAgAygCBCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBxhE2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCCCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9go2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCDCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7Ro2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCECIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlRA2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCFCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBqhs2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCGCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB7RM2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCKCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABB9gg2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCHCIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBwhk2AhBBGCEECyAECz4BAn8CQCAAKAI4IgNFDQAgAygCICIDRQ0AIAAgASACIAFrIAMRAQAiBEF/Rw0AIABBlBQ2AhBBGCEECyAEC1kBAn8CQCAALQAoQQFGDQAgAC8BMiIBQeQAa0HkAEkNACABQcwBRg0AIAFBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhAiAAQYgEcUGABEYNACAAQShxRSECCyACC4wBAQJ/AkACQAJAIAAtACpFDQAgAC0AK0UNACAALwEwIgFBAnFFDQEMAgsgAC8BMCIBQQFxRQ0BC0EBIQIgAC0AKEEBRg0AIAAvATIiAEHkAGtB5ABJDQAgAEHMAUYNACAAQbACRg0AIAFBwABxDQBBACECIAFBiARxQYAERg0AIAFBKHFBAEchAgsgAgtzACAAQRBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAA/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQTBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQSBq/QwAAAAAAAAAAAAAAAAAAAAA/QsDACAAQd0BNgIcCwYAIAAQMguaLQELfyMAQRBrIgokAEGk0AAoAgAiCUUEQEHk0wAoAgAiBUUEQEHw0wBCfzcCAEHo0wBCgICEgICAwAA3AgBB5NMAIApBCGpBcHFB2KrVqgVzIgU2AgBB+NMAQQA2AgBByNMAQQA2AgALQczTAEGA1AQ2AgBBnNAAQYDUBDYCAEGw0AAgBTYCAEGs0ABBfzYCAEHQ0wBBgKwDNgIAA0AgAUHI0ABqIAFBvNAAaiICNgIAIAIgAUG00ABqIgM2AgAgAUHA0ABqIAM2AgAgAUHQ0ABqIAFBxNAAaiIDNgIAIAMgAjYCACABQdjQAGogAUHM0ABqIgI2AgAgAiADNgIAIAFB1NAAaiACNgIAIAFBIGoiAUGAAkcNAAtBjNQEQcGrAzYCAEGo0ABB9NMAKAIANgIAQZjQAEHAqwM2AgBBpNAAQYjUBDYCAEHM/wdBODYCAEGI1AQhCQsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQewBTQRAQYzQACgCACIGQRAgAEETakFwcSAAQQtJGyIEQQN2IgB2IgFBA3EEQAJAIAFBAXEgAHJBAXMiAkEDdCIAQbTQAGoiASAAQbzQAGooAgAiACgCCCIDRgRAQYzQACAGQX4gAndxNgIADAELIAEgAzYCCCADIAE2AgwLIABBCGohASAAIAJBA3QiAkEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwRC0GU0AAoAgAiCCAETw0BIAEEQAJAQQIgAHQiAkEAIAJrciABIAB0cWgiAEEDdCICQbTQAGoiASACQbzQAGooAgAiAigCCCIDRgRAQYzQACAGQX4gAHdxIgY2AgAMAQsgASADNgIIIAMgATYCDAsgAiAEQQNyNgIEIABBA3QiACAEayEFIAAgAmogBTYCACACIARqIgQgBUEBcjYCBCAIBEAgCEF4cUG00ABqIQBBoNAAKAIAIQMCf0EBIAhBA3Z0IgEgBnFFBEBBjNAAIAEgBnI2AgAgAAwBCyAAKAIICyIBIAM2AgwgACADNgIIIAMgADYCDCADIAE2AggLIAJBCGohAUGg0AAgBDYCAEGU0AAgBTYCAAwRC0GQ0AAoAgAiC0UNASALaEECdEG80gBqKAIAIgAoAgRBeHEgBGshBSAAIQIDQAJAIAIoAhAiAUUEQCACQRRqKAIAIgFFDQELIAEoAgRBeHEgBGsiAyAFSSECIAMgBSACGyEFIAEgACACGyEAIAEhAgwBCwsgACgCGCEJIAAoAgwiAyAARwRAQZzQACgCABogAyAAKAIIIgE2AgggASADNgIMDBALIABBFGoiAigCACIBRQRAIAAoAhAiAUUNAyAAQRBqIQILA0AgAiEHIAEiA0EUaiICKAIAIgENACADQRBqIQIgAygCECIBDQALIAdBADYCAAwPC0F/IQQgAEG/f0sNACAAQRNqIgFBcHEhBEGQ0AAoAgAiCEUNAEEAIARrIQUCQAJAAkACf0EAIARBgAJJDQAaQR8gBEH///8HSw0AGiAEQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qCyIGQQJ0QbzSAGooAgAiAkUEQEEAIQFBACEDDAELQQAhASAEQRkgBkEBdmtBACAGQR9HG3QhAEEAIQMDQAJAIAIoAgRBeHEgBGsiByAFTw0AIAIhAyAHIgUNAEEAIQUgAiEBDAMLIAEgAkEUaigCACIHIAcgAiAAQR12QQRxakEQaigCACICRhsgASAHGyEBIABBAXQhACACDQALCyABIANyRQRAQQAhA0ECIAZ0IgBBACAAa3IgCHEiAEUNAyAAaEECdEG80gBqKAIAIQELIAFFDQELA0AgASgCBEF4cSAEayICIAVJIQAgAiAFIAAbIQUgASADIAAbIQMgASgCECIABH8gAAUgAUEUaigCAAsiAQ0ACwsgA0UNACAFQZTQACgCACAEa08NACADKAIYIQcgAyADKAIMIgBHBEBBnNAAKAIAGiAAIAMoAggiATYCCCABIAA2AgwMDgsgA0EUaiICKAIAIgFFBEAgAygCECIBRQ0DIANBEGohAgsDQCACIQYgASIAQRRqIgIoAgAiAQ0AIABBEGohAiAAKAIQIgENAAsgBkEANgIADA0LQZTQACgCACIDIARPBEBBoNAAKAIAIQECQCADIARrIgJBEE8EQCABIARqIgAgAkEBcjYCBCABIANqIAI2AgAgASAEQQNyNgIEDAELIAEgA0EDcjYCBCABIANqIgAgACgCBEEBcjYCBEEAIQBBACECC0GU0AAgAjYCAEGg0AAgADYCACABQQhqIQEMDwtBmNAAKAIAIgMgBEsEQCAEIAlqIgAgAyAEayIBQQFyNgIEQaTQACAANgIAQZjQACABNgIAIAkgBEEDcjYCBCAJQQhqIQEMDwtBACEBIAQCf0Hk0wAoAgAEQEHs0wAoAgAMAQtB8NMAQn83AgBB6NMAQoCAhICAgMAANwIAQeTTACAKQQxqQXBxQdiq1aoFczYCAEH40wBBADYCAEHI0wBBADYCAEGAgAQLIgAgBEHHAGoiBWoiBkEAIABrIgdxIgJPBEBB/NMAQTA2AgAMDwsCQEHE0wAoAgAiAUUNAEG80wAoAgAiCCACaiEAIAAgAU0gACAIS3ENAEEAIQFB/NMAQTA2AgAMDwtByNMALQAAQQRxDQQCQAJAIAkEQEHM0wAhAQNAIAEoAgAiACAJTQRAIAAgASgCBGogCUsNAwsgASgCCCIBDQALC0EAEDMiAEF/Rg0FIAIhBkHo0wAoAgAiAUEBayIDIABxBEAgAiAAayAAIANqQQAgAWtxaiEGCyAEIAZPDQUgBkH+////B0sNBUHE0wAoAgAiAwRAQbzTACgCACIHIAZqIQEgASAHTQ0GIAEgA0sNBgsgBhAzIgEgAEcNAQwHCyAGIANrIAdxIgZB/v///wdLDQQgBhAzIQAgACABKAIAIAEoAgRqRg0DIAAhAQsCQCAGIARByABqTw0AIAFBf0YNAEHs0wAoAgAiACAFIAZrakEAIABrcSIAQf7///8HSwRAIAEhAAwHCyAAEDNBf0cEQCAAIAZqIQYgASEADAcLQQAgBmsQMxoMBAsgASIAQX9HDQUMAwtBACEDDAwLQQAhAAwKCyAAQX9HDQILQcjTAEHI0wAoAgBBBHI2AgALIAJB/v///wdLDQEgAhAzIQBBABAzIQEgAEF/Rg0BIAFBf0YNASAAIAFPDQEgASAAayIGIARBOGpNDQELQbzTAEG80wAoAgAgBmoiATYCAEHA0wAoAgAgAUkEQEHA0wAgATYCAAsCQAJAAkBBpNAAKAIAIgIEQEHM0wAhAQNAIAAgASgCACIDIAEoAgQiBWpGDQIgASgCCCIBDQALDAILQZzQACgCACIBQQBHIAAgAU9xRQRAQZzQACAANgIAC0EAIQFB0NMAIAY2AgBBzNMAIAA2AgBBrNAAQX82AgBBsNAAQeTTACgCADYCAEHY0wBBADYCAANAIAFByNAAaiABQbzQAGoiAjYCACACIAFBtNAAaiIDNgIAIAFBwNAAaiADNgIAIAFB0NAAaiABQcTQAGoiAzYCACADIAI2AgAgAUHY0ABqIAFBzNAAaiICNgIAIAIgAzYCACABQdTQAGogAjYCACABQSBqIgFBgAJHDQALQXggAGtBD3EiASAAaiICIAZBOGsiAyABayIBQQFyNgIEQajQAEH00wAoAgA2AgBBmNAAIAE2AgBBpNAAIAI2AgAgACADakE4NgIEDAILIAAgAk0NACACIANJDQAgASgCDEEIcQ0AQXggAmtBD3EiACACaiIDQZjQACgCACAGaiIHIABrIgBBAXI2AgQgASAFIAZqNgIEQajQAEH00wAoAgA2AgBBmNAAIAA2AgBBpNAAIAM2AgAgAiAHakE4NgIEDAELIABBnNAAKAIASQRAQZzQACAANgIACyAAIAZqIQNBzNMAIQECQAJAAkADQCADIAEoAgBHBEAgASgCCCIBDQEMAgsLIAEtAAxBCHFFDQELQczTACEBA0AgASgCACIDIAJNBEAgAyABKAIEaiIFIAJLDQMLIAEoAgghAQwACwALIAEgADYCACABIAEoAgQgBmo2AgQgAEF4IABrQQ9xaiIJIARBA3I2AgQgA0F4IANrQQ9xaiIGIAQgCWoiBGshASACIAZGBEBBpNAAIAQ2AgBBmNAAQZjQACgCACABaiIANgIAIAQgAEEBcjYCBAwIC0Gg0AAoAgAgBkYEQEGg0AAgBDYCAEGU0ABBlNAAKAIAIAFqIgA2AgAgBCAAQQFyNgIEIAAgBGogADYCAAwICyAGKAIEIgVBA3FBAUcNBiAFQXhxIQggBUH/AU0EQCAFQQN2IQMgBigCCCIAIAYoAgwiAkYEQEGM0ABBjNAAKAIAQX4gA3dxNgIADAcLIAIgADYCCCAAIAI2AgwMBgsgBigCGCEHIAYgBigCDCIARwRAIAAgBigCCCICNgIIIAIgADYCDAwFCyAGQRRqIgIoAgAiBUUEQCAGKAIQIgVFDQQgBkEQaiECCwNAIAIhAyAFIgBBFGoiAigCACIFDQAgAEEQaiECIAAoAhAiBQ0ACyADQQA2AgAMBAtBeCAAa0EPcSIBIABqIgcgBkE4ayIDIAFrIgFBAXI2AgQgACADakE4NgIEIAIgBUE3IAVrQQ9xakE/ayIDIAMgAkEQakkbIgNBIzYCBEGo0ABB9NMAKAIANgIAQZjQACABNgIAQaTQACAHNgIAIANBEGpB1NMAKQIANwIAIANBzNMAKQIANwIIQdTTACADQQhqNgIAQdDTACAGNgIAQczTACAANgIAQdjTAEEANgIAIANBJGohAQNAIAFBBzYCACAFIAFBBGoiAUsNAAsgAiADRg0AIAMgAygCBEF+cTYCBCADIAMgAmsiBTYCACACIAVBAXI2AgQgBUH/AU0EQCAFQXhxQbTQAGohAAJ/QYzQACgCACIBQQEgBUEDdnQiA3FFBEBBjNAAIAEgA3I2AgAgAAwBCyAAKAIICyIBIAI2AgwgACACNgIIIAIgADYCDCACIAE2AggMAQtBHyEBIAVB////B00EQCAFQSYgBUEIdmciAGt2QQFxIABBAXRrQT5qIQELIAIgATYCHCACQgA3AhAgAUECdEG80gBqIQBBkNAAKAIAIgNBASABdCIGcUUEQCAAIAI2AgBBkNAAIAMgBnI2AgAgAiAANgIYIAIgAjYCCCACIAI2AgwMAQsgBUEZIAFBAXZrQQAgAUEfRxt0IQEgACgCACEDAkADQCADIgAoAgRBeHEgBUYNASABQR12IQMgAUEBdCEBIAAgA0EEcWpBEGoiBigCACIDDQALIAYgAjYCACACIAA2AhggAiACNgIMIAIgAjYCCAwBCyAAKAIIIgEgAjYCDCAAIAI2AgggAkEANgIYIAIgADYCDCACIAE2AggLQZjQACgCACIBIARNDQBBpNAAKAIAIgAgBGoiAiABIARrIgFBAXI2AgRBmNAAIAE2AgBBpNAAIAI2AgAgACAEQQNyNgIEIABBCGohAQwIC0EAIQFB/NMAQTA2AgAMBwtBACEACyAHRQ0AAkAgBigCHCICQQJ0QbzSAGoiAygCACAGRgRAIAMgADYCACAADQFBkNAAQZDQACgCAEF+IAJ3cTYCAAwCCyAHQRBBFCAHKAIQIAZGG2ogADYCACAARQ0BCyAAIAc2AhggBigCECICBEAgACACNgIQIAIgADYCGAsgBkEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgCGohASAGIAhqIgYoAgQhBQsgBiAFQX5xNgIEIAEgBGogATYCACAEIAFBAXI2AgQgAUH/AU0EQCABQXhxQbTQAGohAAJ/QYzQACgCACICQQEgAUEDdnQiAXFFBEBBjNAAIAEgAnI2AgAgAAwBCyAAKAIICyIBIAQ2AgwgACAENgIIIAQgADYCDCAEIAE2AggMAQtBHyEFIAFB////B00EQCABQSYgAUEIdmciAGt2QQFxIABBAXRrQT5qIQULIAQgBTYCHCAEQgA3AhAgBUECdEG80gBqIQBBkNAAKAIAIgJBASAFdCIDcUUEQCAAIAQ2AgBBkNAAIAIgA3I2AgAgBCAANgIYIAQgBDYCCCAEIAQ2AgwMAQsgAUEZIAVBAXZrQQAgBUEfRxt0IQUgACgCACEAAkADQCAAIgIoAgRBeHEgAUYNASAFQR12IQAgBUEBdCEFIAIgAEEEcWpBEGoiAygCACIADQALIAMgBDYCACAEIAI2AhggBCAENgIMIAQgBDYCCAwBCyACKAIIIgAgBDYCDCACIAQ2AgggBEEANgIYIAQgAjYCDCAEIAA2AggLIAlBCGohAQwCCwJAIAdFDQACQCADKAIcIgFBAnRBvNIAaiICKAIAIANGBEAgAiAANgIAIAANAUGQ0AAgCEF+IAF3cSIINgIADAILIAdBEEEUIAcoAhAgA0YbaiAANgIAIABFDQELIAAgBzYCGCADKAIQIgEEQCAAIAE2AhAgASAANgIYCyADQRRqKAIAIgFFDQAgAEEUaiABNgIAIAEgADYCGAsCQCAFQQ9NBEAgAyAEIAVqIgBBA3I2AgQgACADaiIAIAAoAgRBAXI2AgQMAQsgAyAEaiICIAVBAXI2AgQgAyAEQQNyNgIEIAIgBWogBTYCACAFQf8BTQRAIAVBeHFBtNAAaiEAAn9BjNAAKAIAIgFBASAFQQN2dCIFcUUEQEGM0AAgASAFcjYCACAADAELIAAoAggLIgEgAjYCDCAAIAI2AgggAiAANgIMIAIgATYCCAwBC0EfIQEgBUH///8HTQRAIAVBJiAFQQh2ZyIAa3ZBAXEgAEEBdGtBPmohAQsgAiABNgIcIAJCADcCECABQQJ0QbzSAGohAEEBIAF0IgQgCHFFBEAgACACNgIAQZDQACAEIAhyNgIAIAIgADYCGCACIAI2AgggAiACNgIMDAELIAVBGSABQQF2a0EAIAFBH0cbdCEBIAAoAgAhBAJAA0AgBCIAKAIEQXhxIAVGDQEgAUEddiEEIAFBAXQhASAAIARBBHFqQRBqIgYoAgAiBA0ACyAGIAI2AgAgAiAANgIYIAIgAjYCDCACIAI2AggMAQsgACgCCCIBIAI2AgwgACACNgIIIAJBADYCGCACIAA2AgwgAiABNgIICyADQQhqIQEMAQsCQCAJRQ0AAkAgACgCHCIBQQJ0QbzSAGoiAigCACAARgRAIAIgAzYCACADDQFBkNAAIAtBfiABd3E2AgAMAgsgCUEQQRQgCSgCECAARhtqIAM2AgAgA0UNAQsgAyAJNgIYIAAoAhAiAQRAIAMgATYCECABIAM2AhgLIABBFGooAgAiAUUNACADQRRqIAE2AgAgASADNgIYCwJAIAVBD00EQCAAIAQgBWoiAUEDcjYCBCAAIAFqIgEgASgCBEEBcjYCBAwBCyAAIARqIgcgBUEBcjYCBCAAIARBA3I2AgQgBSAHaiAFNgIAIAgEQCAIQXhxQbTQAGohAUGg0AAoAgAhAwJ/QQEgCEEDdnQiAiAGcUUEQEGM0AAgAiAGcjYCACABDAELIAEoAggLIgIgAzYCDCABIAM2AgggAyABNgIMIAMgAjYCCAtBoNAAIAc2AgBBlNAAIAU2AgALIABBCGohAQsgCkEQaiQAIAELQwAgAEUEQD8AQRB0DwsCQCAAQf//A3ENACAAQQBIDQAgAEEQdkAAIgBBf0YEQEH80wBBMDYCAEF/DwsgAEEQdA8LAAsL3D8iAEGACAsJAQAAAAIAAAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var sYe=H((zsu,a6n)=>{"use strict";var e6n=["GET","HEAD","POST"],Eca=new Set(e6n),Sca=[101,204,205,304],t6n=[301,302,303,307,308],vca=new Set(t6n),r6n=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Bca=new Set(r6n),n6n=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],wca=new Set(n6n),Tca=["follow","manual","error"],i6n=["GET","HEAD","OPTIONS","TRACE"],Rca=new Set(i6n),Nca=["navigate","same-origin","no-cors","cors"],Dca=["omit","same-origin","include"],kca=["default","no-store","reload","no-cache","force-cache","only-if-cached"],xca=["content-encoding","content-language","content-location","content-type","content-length"],Gca=["half"],s6n=["CONNECT","TRACE","TRACK"],Fca=new Set(s6n),o6n=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Zca=new Set(o6n);a6n.exports={subresource:o6n,forbiddenMethods:s6n,requestBodyHeader:xca,referrerPolicy:n6n,requestRedirect:Tca,requestMode:Nca,requestCredentials:Dca,requestCache:kca,redirectStatus:t6n,corsSafeListedMethods:e6n,nullBodyStatus:Sca,safeMethods:i6n,badPorts:r6n,requestDuplex:Gca,subresourceSet:Zca,badPortsSet:Bca,redirectStatusSet:vca,corsSafeListedMethodsSet:Eca,safeMethodsSet:Rca,forbiddenMethodsSet:Fca,referrerPolicySet:wca}});var G0r=H((qsu,c6n)=>{"use strict";var x0r=Symbol.for("undici.globalOrigin.1");function Lca(){return globalThis[x0r]}function Vca(e){if(e===void 0){Object.defineProperty(globalThis,x0r,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,x0r,{value:t,writable:!0,enumerable:!1,configurable:!1})}c6n.exports={getGlobalOrigin:Lca,setGlobalOrigin:Vca}});var eV=H(($su,f6n)=>{"use strict";var iht=wt("node:assert"),Pca=new TextEncoder,oYe=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Wca=/[\u000A\u000D\u0009\u0020]/,Oca=/[\u0009\u000A\u000C\u000D\u0020]/g,Mca=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Hca(e){iht(e.protocol==="data:");let t=g6n(e,!0);t=t.slice(5);let r={position:0},n=Cwe(",",t,r),a=n.length;if(n=Kca(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=A6n(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=p6n(l);if(l=Qca(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=F0r(n);return A==="failure"&&(A=F0r("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function g6n(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length,a=n===0?r:r.substring(0,r.length-n);return!n&&r.endsWith("#")?a.slice(0,-1):a}function sht(e,t,r){let n="";for(;r.position=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function u6n(e){return e>=48&&e<=57?e-48:(e&223)-55}function Yca(e){let t=e.length,r=new Uint8Array(t),n=0;for(let a=0;ae.length)return"failure";t.position++;let n=Cwe(";",e,t);if(n=nht(n,!1,!0),n.length===0||!oYe.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionWca.test(I),e,t);let A=sht(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=d6n(e,t,!0),Cwe(";",e,t);else if(f=Cwe(";",e,t),f=nht(f,!1,!0),f.length===0)continue;A.length!==0&&oYe.test(A)&&(f.length===0||Mca.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Qca(e){e=e.replace(Oca,"");let t=e.length;if(t%4===0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4===1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return"failure";let r=Buffer.from(e,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function d6n(e,t,r){let n=t.position,a="";for(iht(e[t.position]==='"'),t.position++;a+=sht(l=>l!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{iht(o==='"');break}}return r?a:e.slice(n,t.position)}function Xca(e){iht(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",oYe.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function Jca(e){return e===13||e===10||e===9||e===32}function nht(e,t=!0,r=!0){return Z0r(e,t,r,Jca)}function Uca(e){return e===13||e===10||e===9||e===12||e===32}function Kca(e,t=!0,r=!0){return Z0r(e,t,r,Uca)}function Z0r(e,t,r,n){let a=0,o=e.length-1;if(t)for(;a0&&n(e.charCodeAt(o));)o--;return a===0&&o===e.length-1?e:e.slice(a,o+1)}function p6n(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let r="",n=0,a=65535;for(;nt&&(a=t-n),r+=String.fromCharCode.apply(null,e.subarray(n,n+=a));return r}function jca(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}f6n.exports={dataURLProcessor:Hca,URLSerializer:g6n,collectASequenceOfCodePoints:sht,collectASequenceOfCodePointsFast:Cwe,stringPercentDecode:A6n,parseMIMEType:F0r,collectAnHTTPQuotedString:d6n,serializeAMimeType:Xca,removeChars:Z0r,removeHTTPWhitespace:nht,minimizeSupportedMimeType:jca,HTTP_TOKEN_CODEPOINTS:oYe,isomorphicDecode:p6n}});var kk=H((eou,I6n)=>{"use strict";var{types:w8,inspect:zca}=wt("node:util"),{toUSVString:qca}=Em(),Cu={};Cu.converters={};Cu.util={};Cu.errors={};Cu.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};Cu.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return Cu.errors.exception({header:e.prefix,message:r})};Cu.errors.invalidArgument=function(e){return Cu.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};Cu.brandCheck=function(e,t,r){if(r?.strict!==!1){if(!(e instanceof t)){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}}else if(e?.[Symbol.toStringTag]!==t.prototype[Symbol.toStringTag]){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}};Cu.argumentLengthCheck=function({length:e},t,r){if(ea)throw Cu.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n?.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=Cu.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};Cu.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};Cu.util.Stringify=function(e){switch(Cu.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return zca(e);case"String":return`"${e}"`;default:return`${e}`}};Cu.sequenceConverter=function(e){return(t,r,n,a)=>{if(Cu.util.Type(t)!=="Object")throw Cu.errors.exception({header:r,message:`${n} (${Cu.util.Stringify(t)}) is not iterable.`});let o=typeof a=="function"?a():t?.[Symbol.iterator]?.(),l=[],A=0;if(o===void 0||typeof o.next!="function")throw Cu.errors.exception({header:r,message:`${n} is not iterable.`});for(;;){let{done:f,value:I}=o.next();if(f)break;l.push(e(I,r,`${n}[${A++}]`))}return l}};Cu.recordConverter=function(e,t){return(r,n,a)=>{if(Cu.util.Type(r)!=="Object")throw Cu.errors.exception({header:n,message:`${a} ("${Cu.util.Type(r)}") is not an Object.`});let o={};if(!w8.isProxy(r)){let A=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let f of A){let I=e(f,n,a),C=t(r[f],n,a);o[I]=C}return o}let l=Reflect.ownKeys(r);for(let A of l)if(Reflect.getOwnPropertyDescriptor(r,A)?.enumerable){let I=e(A,n,a),C=t(r[A],n,a);o[I]=C}return o}};Cu.interfaceConverter=function(e){return(t,r,n,a)=>{if(a?.strict!==!1&&!(t instanceof e))throw Cu.errors.exception({header:r,message:`Expected ${n} ("${Cu.util.Stringify(t)}") to be an instance of ${e.name}.`});return t}};Cu.dictionaryConverter=function(e){return(t,r,n)=>{let a=Cu.util.Type(t),o={};if(a==="Null"||a==="Undefined")return o;if(a!=="Object")throw Cu.errors.exception({header:r,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let l of e){let{key:A,defaultValue:f,required:I,converter:C}=l;if(I===!0&&!Object.hasOwn(t,A))throw Cu.errors.exception({header:r,message:`Missing required key "${A}".`});let b=t[A],E=Object.hasOwn(l,"defaultValue");if(E&&b!==null&&(b??=f()),I||E||b!==void 0){if(b=C(b,r,`${n}.${A}`),l.allowedValues&&!l.allowedValues.includes(b))throw Cu.errors.exception({header:r,message:`${b} is not an accepted type. Expected one of ${l.allowedValues.join(", ")}.`});o[A]=b}}return o}};Cu.nullableConverter=function(e){return(t,r,n)=>t===null?t:e(t,r,n)};Cu.converters.DOMString=function(e,t,r,n){if(e===null&&n?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw Cu.errors.exception({header:t,message:`${r} is a symbol, which cannot be converted to a DOMString.`});return String(e)};Cu.converters.ByteString=function(e,t,r){let n=Cu.converters.DOMString(e,t,r);for(let a=0;a255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${a} has a value of ${n.charCodeAt(a)} which is greater than 255.`);return n};Cu.converters.USVString=qca;Cu.converters.boolean=function(e){return!!e};Cu.converters.any=function(e){return e};Cu.converters["long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"signed",void 0,t,r)};Cu.converters["unsigned long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"unsigned",void 0,t,r)};Cu.converters["unsigned long"]=function(e,t,r){return Cu.util.ConvertToInt(e,32,"unsigned",void 0,t,r)};Cu.converters["unsigned short"]=function(e,t,r,n){return Cu.util.ConvertToInt(e,16,"unsigned",n,t,r)};Cu.converters.ArrayBuffer=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isAnyArrayBuffer(e))throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.TypedArray=function(e,t,r,n,a){if(Cu.util.Type(e)!=="Object"||!w8.isTypedArray(e)||e.constructor.name!==t.name)throw Cu.errors.conversionFailed({prefix:r,argument:`${n} ("${Cu.util.Stringify(e)}")`,types:[t.name]});if(a?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.DataView=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isDataView(e))throw Cu.errors.exception({header:t,message:`${r} is not a DataView.`});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.BufferSource=function(e,t,r,n){if(w8.isAnyArrayBuffer(e))return Cu.converters.ArrayBuffer(e,t,r,{...n,allowShared:!1});if(w8.isTypedArray(e))return Cu.converters.TypedArray(e,e.constructor,t,r,{...n,allowShared:!1});if(w8.isDataView(e))return Cu.converters.DataView(e,t,r,{...n,allowShared:!1});throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["BufferSource"]})};Cu.converters["sequence"]=Cu.sequenceConverter(Cu.converters.ByteString);Cu.converters["sequence>"]=Cu.sequenceConverter(Cu.converters["sequence"]);Cu.converters["record"]=Cu.recordConverter(Cu.converters.ByteString,Cu.converters.ByteString);I6n.exports={webidl:Cu}});var qW=H((tou,N6n)=>{"use strict";var{Transform:$ca}=wt("node:stream"),h6n=wt("node:zlib"),{redirectStatusSet:ela,referrerPolicySet:tla,badPortsSet:rla}=sYe(),{getGlobalOrigin:m6n}=G0r(),{collectASequenceOfCodePoints:rhe,collectAnHTTPQuotedString:nla,removeChars:ila,parseMIMEType:sla}=eV(),{performance:ola}=wt("node:perf_hooks"),{isBlobLike:ala,ReadableStreamFrom:cla,isValidHTTPToken:C6n,normalizedMethodRecordsBase:lla}=Em(),nhe=wt("node:assert"),{isUint8Array:ula}=wt("node:util/types"),{webidl:aYe}=kk(),_6n=[],aht;try{aht=wt("node:crypto");let e=["sha256","sha384","sha512"];_6n=aht.getHashes().filter(t=>e.includes(t))}catch{}function y6n(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function gla(e,t){if(!ela.has(e.status))return null;let r=e.headersList.get("location",!0);return r!==null&&E6n(r)&&(b6n(r)||(r=Ala(r)),r=new URL(r,y6n(e))),r&&!r.hash&&(r.hash=t),r}function b6n(e){for(let t=0;t126||r<32)return!1}return!0}function Ala(e){return Buffer.from(e,"binary").toString("utf8")}function lYe(e){return e.urlList[e.urlList.length-1]}function dla(e){let t=lYe(e);return T6n(t)&&rla.has(t.port)?"blocked":"allowed"}function pla(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function fla(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}var Ila=C6n;function E6n(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(` -`)||e.includes("\r")||e.includes("\0"))===!1}function hla(e,t){let{headersList:r}=t,n=(r.get("referrer-policy",!0)??"").split(","),a="";if(n.length>0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(tla.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function mla(){return"allowed"}function Cla(){return"success"}function _la(){return"success"}function yla(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t,!0)}function bla(e){let t=e.origin;if(!(t==="client"||t===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",t,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&V0r(e.origin)&&!V0r(lYe(e))&&(t=null);break;case"same-origin":cht(e,lYe(e))||(t=null);break;default:}e.headersList.append("origin",t,!0)}}}function _we(e,t){return e}function Ela(e,t,r){return!e?.startTime||e.startTime4096&&(n=a);let o=cht(e,n),l=cYe(n)&&!cYe(e.url);switch(t){case"origin":return a??L0r(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=lYe(e);return cht(n,A)?n:cYe(n)&&!cYe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function L0r(e,t){return nhe(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function cYe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function Tla(e,t){if(aht===void 0)return!0;let r=v6n(t);if(r==="no metadata"||r.length===0)return!0;let n=Nla(r),a=Dla(r,n);for(let o of a){let l=o.algo,A=o.hash,f=aht.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),kla(f,A))return!0}return!1}var Rla=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function v6n(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=Rla.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();_6n.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function Nla(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function Fla(e){return e.controller.state==="aborted"}function Zla(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Lla(e){return lla[e.toLowerCase()]??e}function Vla(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return nhe(typeof t=="string"),t}var Pla=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function B6n(e,t,r=0,n=1){class a{#e;#t;#n;constructor(l,A){this.#e=l,this.#t=A,this.#n=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let l=this.#n,A=this.#e[t],f=A.length;if(l>=f)return{value:void 0,done:!0};let{[r]:I,[n]:C}=A[l];this.#n=l+1;let b;switch(this.#t){case"key":b=I;break;case"value":b=C;break;case"key+value":b=[I,C];break}return{value:b,done:!1}}}return delete a.prototype.constructor,Object.setPrototypeOf(a.prototype,Pla),Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(o,l){return new a(o,l)}}function Wla(e,t,r,n=0,a=1){let o=B6n(e,r,n,a),l={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(f,I=globalThis){if(aYe.brandCheck(this,t),aYe.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof f!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:C,1:b}of o(this,"key+value"))f.call(I,b,C,this)}}};return Object.defineProperties(t.prototype,{...l,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:l.entries.value}})}async function Ola(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{n(await w6n(o))}catch(l){a(l)}}function Mla(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Hla(e){try{e.close(),e.byobRequest?.respond(0)}catch(t){if(!t.message.includes("Controller is already closed")&&!t.message.includes("ReadableStream is already closed"))throw t}}var Yla=/[^\x00-\xFF]/;function oht(e){return nhe(!Yla.test(e)),e}async function w6n(e){let t=[],r=0;for(;;){let{done:n,value:a}=await e.read();if(n)return Buffer.concat(t,r);if(!ula(a))throw new TypeError("Received non-Uint8Array chunk");t.push(a),r+=a.length}}function Qla(e){nhe("protocol"in e);let t=e.protocol;return t==="about:"||t==="blob:"||t==="data:"}function V0r(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function T6n(e){nhe("protocol"in e);let t=e.protocol;return t==="http:"||t==="https:"}function Xla(e,t){let r=e;if(!r.startsWith("bytes"))return"failure";let n={position:5};if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==61)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let a=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),o=a.length?Number(a):null;if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==45)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let l=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),A=l.length?Number(l):null;return n.positionA?"failure":{rangeStartValue:o,rangeEndValue:A}}function Jla(e,t,r){let n="bytes ";return n+=oht(`${e}`),n+="-",n+=oht(`${t}`),n+="/",n+=oht(`${r}`),n}var P0r=class extends $ca{#e;constructor(t){super(),this.#e=t}_transform(t,r,n){if(!this._inflateStream){if(t.length===0){n();return}this._inflateStream=(t[0]&15)===8?h6n.createInflate(this.#e):h6n.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",a=>this.destroy(a))}this._inflateStream.write(t,r,n)}_final(t){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),t()}};function Ula(e){return new P0r(e)}function Kla(e){let t=null,r=null,n=null,a=R6n("content-type",e);if(a===null)return"failure";for(let o of a){let l=sla(o);l==="failure"||l.essence==="*/*"||(n=l,n.essence!==r?(t=null,n.parameters.has("charset")&&(t=n.parameters.get("charset")),r=n.essence):!n.parameters.has("charset")&&t!==null&&n.parameters.set("charset",t))}return n??"failure"}function jla(e){let t=e,r={position:0},n=[],a="";for(;r.positiono!=='"'&&o!==",",t,r),r.positiono===9||o===32),n.push(a),a=""}return n}function R6n(e,t){let r=t.get(e,!0);return r===null?null:jla(r)}var zla=new TextDecoder;function qla(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),zla.decode(e))}var W0r=class{get baseUrl(){return m6n()}get origin(){return this.baseUrl?.origin}policyContainer=S6n()},O0r=class{settingsObject=new W0r},$la=new O0r;N6n.exports={isAborted:Fla,isCancelled:Zla,isValidEncodedURL:b6n,createDeferredPromise:Gla,ReadableStreamFrom:cla,tryUpgradeRequestToAPotentiallyTrustworthyURL:xla,clampAndCoarsenConnectionTimingInfo:Ela,coarsenedSharedCurrentTime:Sla,determineRequestsReferrer:wla,makePolicyContainer:S6n,clonePolicyContainer:Bla,appendFetchMetadata:yla,appendRequestOriginHeader:bla,TAOCheck:_la,corsCheck:Cla,crossOriginResourcePolicyCheck:mla,createOpaqueTimingInfo:vla,setRequestReferrerPolicyOnRedirect:hla,isValidHTTPToken:C6n,requestBadPort:dla,requestCurrentURL:lYe,responseURL:y6n,responseLocationURL:gla,isBlobLike:ala,isURLPotentiallyTrustworthy:cYe,isValidReasonPhrase:fla,sameOrigin:cht,normalizeMethod:Lla,serializeJavascriptValueToJSONString:Vla,iteratorMixin:Wla,createIterator:B6n,isValidHeaderName:Ila,isValidHeaderValue:E6n,isErrorLike:pla,fullyReadBody:Ola,bytesMatch:Tla,isReadableStreamLike:Mla,readableStreamClose:Hla,isomorphicEncode:oht,urlIsLocal:Qla,urlHasHttpsScheme:V0r,urlIsHttpHttpsScheme:T6n,readAllBytes:w6n,simpleRangeHeaderValue:Xla,buildContentRange:Jla,parseMetadata:v6n,createInflate:Ula,extractMimeType:Kla,getDecodeSplit:R6n,utf8DecodeBytes:qla,environmentSettingsObject:$la}});var nae=H((rou,D6n)=>{"use strict";D6n.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var H0r=H((nou,k6n)=>{"use strict";var{Blob:eua,File:tua}=wt("node:buffer"),{kState:O$}=nae(),{webidl:T8}=kk(),M0r=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[O$]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return T8.brandCheck(this,e),this[O$].blobLike.stream(...t)}arrayBuffer(...t){return T8.brandCheck(this,e),this[O$].blobLike.arrayBuffer(...t)}slice(...t){return T8.brandCheck(this,e),this[O$].blobLike.slice(...t)}text(...t){return T8.brandCheck(this,e),this[O$].blobLike.text(...t)}get size(){return T8.brandCheck(this,e),this[O$].blobLike.size}get type(){return T8.brandCheck(this,e),this[O$].blobLike.type}get name(){return T8.brandCheck(this,e),this[O$].name}get lastModified(){return T8.brandCheck(this,e),this[O$].lastModified}get[Symbol.toStringTag](){return"File"}};T8.converters.Blob=T8.interfaceConverter(eua);function rua(e){return e instanceof tua||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}k6n.exports={FileLike:M0r,isFileLike:rua}});var gYe=H((iou,L6n)=>{"use strict";var{isBlobLike:lht,iteratorMixin:nua}=qW(),{kState:WZ}=nae(),{kEnumerableProperty:ywe}=Em(),{FileLike:x6n,isFileLike:iua}=H0r(),{webidl:W1}=kk(),{File:Z6n}=wt("node:buffer"),G6n=wt("node:util"),F6n=globalThis.File??Z6n,uYe=class e{constructor(t){if(t!==void 0)throw W1.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[WZ]=[]}append(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.append";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"value",{strict:!1}):W1.converters.USVString(r,a,"value"),n=arguments.length===3?W1.converters.USVString(n,a,"filename"):void 0;let o=Y0r(t,r,n);this[WZ].push(o)}delete(t){W1.brandCheck(this,e);let r="FormData.delete";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ]=this[WZ].filter(n=>n.name!==t)}get(t){W1.brandCheck(this,e);let r="FormData.get";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name");let n=this[WZ].findIndex(a=>a.name===t);return n===-1?null:this[WZ][n].value}getAll(t){W1.brandCheck(this,e);let r="FormData.getAll";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].filter(n=>n.name===t).map(n=>n.value)}has(t){W1.brandCheck(this,e);let r="FormData.has";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].findIndex(n=>n.name===t)!==-1}set(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.set";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"name",{strict:!1}):W1.converters.USVString(r,a,"name"),n=arguments.length===3?W1.converters.USVString(n,a,"name"):void 0;let o=Y0r(t,r,n),l=this[WZ].findIndex(A=>A.name===t);l!==-1?this[WZ]=[...this[WZ].slice(0,l),o,...this[WZ].slice(l+1).filter(A=>A.name!==t)]:this[WZ].push(o)}[G6n.inspect.custom](t,r){let n=this[WZ].reduce((o,l)=>(o[l.name]?Array.isArray(o[l.name])?o[l.name].push(l.value):o[l.name]=[o[l.name],l.value]:o[l.name]=l.value,o),{__proto__:null});r.depth??=t,r.colors??=!0;let a=G6n.formatWithOptions(r,n);return`FormData ${a.slice(a.indexOf("]")+2)}`}};nua("FormData",uYe,WZ,"name","value");Object.defineProperties(uYe.prototype,{append:ywe,delete:ywe,get:ywe,getAll:ywe,has:ywe,set:ywe,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Y0r(e,t,r){if(typeof t!="string"){if(iua(t)||(t=t instanceof Blob?new F6n([t],"blob",{type:t.type}):new x6n(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=t instanceof Z6n?new F6n([t],r,n):new x6n(t,r,n)}}return{name:e,value:t}}L6n.exports={FormData:uYe,makeEntry:Y0r}});var H6n=H((sou,M6n)=>{"use strict";var{isUSVString:V6n,bufferToLowerCasedHeaderName:sua}=Em(),{utf8DecodeBytes:oua}=qW(),{HTTP_TOKEN_CODEPOINTS:aua,isomorphicDecode:P6n}=eV(),{isFileLike:cua}=H0r(),{makeEntry:lua}=gYe(),uht=wt("node:assert"),{File:uua}=wt("node:buffer"),gua=globalThis.File??uua,Aua=Buffer.from('form-data; name="'),W6n=Buffer.from("; filename"),dua=Buffer.from("--"),pua=Buffer.from(`--\r +`.trim())}};MUn.exports=n_r});var KUn=H((nsu,UUn)=>{"use strict";var{kProxy:jra,kClose:zra,kDestroy:qra,kInterceptors:$ra}=GE(),{URL:YUn}=wt("url"),QUn=ZHe(),ena=WBe(),tna=EHe(),{InvalidArgumentError:OHe,RequestAbortedError:rna}=Ub(),XUn=SHe(),PHe=Symbol("proxy agent"),zft=Symbol("proxy client"),WHe=Symbol("proxy headers"),i_r=Symbol("request tls settings"),nna=Symbol("proxy tls settings"),JUn=Symbol("connect endpoint function");function ina(e){return e==="https:"?443:80}function sna(e){if(typeof e=="string"&&(e={uri:e}),!e||!e.uri)throw new OHe("Proxy opts.uri is mandatory");return{uri:e.uri,protocol:e.protocol||"https"}}function ona(e,t){return new ena(e,t)}var s_r=class extends tna{constructor(t){if(super(t),this[jra]=sna(t),this[PHe]=new QUn(t),this[$ra]=t.interceptors&&t.interceptors.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],typeof t=="string"&&(t={uri:t}),!t||!t.uri)throw new OHe("Proxy opts.uri is mandatory");let{clientFactory:r=ona}=t;if(typeof r!="function")throw new OHe("Proxy opts.clientFactory must be a function.");this[i_r]=t.requestTls,this[nna]=t.proxyTls,this[WHe]=t.headers||{};let n=new YUn(t.uri),{origin:a,port:o,host:l,username:A,password:f}=n;if(t.auth&&t.token)throw new OHe("opts.auth cannot be used in combination with opts.token");t.auth?this[WHe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[WHe]["proxy-authorization"]=t.token:A&&f&&(this[WHe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(A)}:${decodeURIComponent(f)}`).toString("base64")}`);let I=XUn({...t.proxyTls});this[JUn]=XUn({...t.requestTls}),this[zft]=r(n,{connect:I}),this[PHe]=new QUn({...t,connect:async(C,b)=>{let E=C.host;C.port||(E+=`:${ina(C.protocol)}`);try{let{socket:N,statusCode:B}=await this[zft].connect({origin:a,port:o,path:E,signal:C.signal,headers:{...this[WHe],host:l}});if(B!==200&&(N.on("error",()=>{}).destroy(),b(new rna(`Proxy response (${B}) !== 200 when HTTP Tunneling`))),C.protocol!=="https:"){b(null,N);return}let F;this[i_r]?F=this[i_r].servername:F=C.servername,this[JUn]({...C,servername:F,httpSocket:N},b)}catch(N){b(N)}}})}dispatch(t,r){let{host:n}=new YUn(t.origin),a=ana(t.headers);return cna(a),this[PHe].dispatch({...t,headers:{...a,host:n}},r)}async[zra](){await this[PHe].close(),await this[zft].close()}async[qra](){await this[PHe].destroy(),await this[zft].destroy()}};function ana(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new OHe("Proxy-Authorization should be sent in ProxyAgent constructor")}UUn.exports=s_r});var eKn=H((isu,$Un)=>{var JIe=wt("assert"),{kRetryHandlerDefaultRetry:jUn}=GE(),{RequestRetryError:qft}=Ub(),{isDisturbed:zUn,parseHeaders:lna,parseRangeHeader:qUn}=zC();function una(e){let t=Date.now();return new Date(e).getTime()-t}var o_r=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts=a,this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[jUn],retryAfter:E??!0,maxTimeout:A??30*1e3,timeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE"]},this.retryCount=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[jUn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,timeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X,currentTimeout:ae}=r;if(ae=ae!=null&&ae>0?ae:b,l&&l!=="UND_ERR_REQ_RETRY"&&l!=="UND_ERR_SOCKET"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ne=A!=null&&A["retry-after"];ne&&(ne=Number(ne),ne=isNaN(ne)?una(ne):ne*1e3);let ce=ne>0?Math.min(ne,E):Math.min(ae*N**X,E);r.currentTimeout=ce,setTimeout(()=>a(null),ce)}onHeaders(t,r,n,a){let o=lna(r);if(this.retryCount+=1,t>=300)return this.abort(new qft("Request failed",t,{headers:o,count:this.retryCount})),!1;if(this.resume!=null){if(this.resume=null,t!==206)return!0;let A=qUn(o["content-range"]);if(!A)return this.abort(new qft("Content-Range mismatch",t,{headers:o,count:this.retryCount})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new qft("ETag mismatch",t,{headers:o,count:this.retryCount})),!1;let{start:f,size:I,end:C=I}=A;return JIe(this.start===f,"content-range mismatch"),JIe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=qUn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;JIe(f!=null&&Number.isFinite(f)&&this.start!==f,"content-range mismatch"),JIe(Number.isFinite(f)),JIe(C!=null&&Number.isFinite(C)&&this.end!==C,"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return JIe(Number.isFinite(this.start)),JIe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.handler.onHeaders(t,r,n,a)}let l=new qft("Request failed",t,{headers:o,count:this.retryCount});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||zUn(this.opts.body))return this.handler.onError(t);this.retryOpts.retry(t,{state:{counter:this.retryCount++,currentTimeout:this.retryAfter},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||zUn(this.opts.body))return this.handler.onError(n);this.start!==0&&(this.opts={...this.opts,headers:{...this.opts.headers,range:`bytes=${this.start}-${this.end??""}`}});try{this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};$Un.exports=o_r});var KBe=H((ssu,iKn)=>{"use strict";var tKn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:gna}=Ub(),Ana=ZHe();nKn()===void 0&&rKn(new Ana);function rKn(e){if(!e||typeof e.dispatch!="function")throw new gna("Argument agent must implement Agent");Object.defineProperty(globalThis,tKn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function nKn(){return globalThis[tKn]}iKn.exports={setGlobalDispatcher:rKn,getGlobalDispatcher:nKn}});var oKn=H((asu,sKn)=>{"use strict";sKn.exports=class{constructor(t){this.handler=t}onConnect(...t){return this.handler.onConnect(...t)}onError(...t){return this.handler.onError(...t)}onUpgrade(...t){return this.handler.onUpgrade(...t)}onHeaders(...t){return this.handler.onHeaders(...t)}onData(...t){return this.handler.onData(...t)}onComplete(...t){return this.handler.onComplete(...t)}onBodySent(...t){return this.handler.onBodySent(...t)}}});var UIe=H((csu,gKn)=>{"use strict";var{kHeadersList:z9,kConstruct:dna}=GE(),{kGuard:E8}=v$(),{kEnumerableProperty:b8}=zC(),{makeIterator:jBe,isValidHeaderName:MHe,isValidHeaderValue:cKn}=EM(),{webidl:sm}=xZ(),pna=wt("assert"),j9=Symbol("headers map"),Dk=Symbol("headers map sorted");function aKn(e){return e===10||e===13||e===9||e===32}function lKn(e){let t=0,r=e.length;for(;r>t&&aKn(e.charCodeAt(r-1));)--r;for(;r>t&&aKn(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function uKn(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function a_r(e,t,r){if(r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(e[E8]==="immutable")throw new TypeError("immutable");return e[E8],e[z9].append(t,r)}var $ft=class e{cookies=null;constructor(t){t instanceof e?(this[j9]=new Map(t[j9]),this[Dk]=t[Dk],this.cookies=t.cookies===null?null:[...t.cookies]):(this[j9]=new Map(t),this[Dk]=null)}contains(t){return t=t.toLowerCase(),this[j9].has(t)}clear(){this[j9].clear(),this[Dk]=null,this.cookies=null}append(t,r){this[Dk]=null;let n=t.toLowerCase(),a=this[j9].get(n);if(a){let o=n==="cookie"?"; ":", ";this[j9].set(n,{name:a.name,value:`${a.value}${o}${r}`})}else this[j9].set(n,{name:t,value:r});n==="set-cookie"&&(this.cookies??=[],this.cookies.push(r))}set(t,r){this[Dk]=null;let n=t.toLowerCase();n==="set-cookie"&&(this.cookies=[r]),this[j9].set(n,{name:t,value:r})}delete(t){this[Dk]=null,t=t.toLowerCase(),t==="set-cookie"&&(this.cookies=null),this[j9].delete(t)}get(t){let r=this[j9].get(t.toLowerCase());return r===void 0?null:r.value}*[Symbol.iterator](){for(let[t,{value:r}]of this[j9])yield[t,r]}get entries(){let t={};if(this[j9].size)for(let{name:r,value:n}of this[j9].values())t[r]=n;return t}},zBe=class e{constructor(t=void 0){t!==dna&&(this[z9]=new $ft,this[E8]="none",t!==void 0&&(t=sm.converters.HeadersInit(t),uKn(this,t)))}append(t,r){return sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.append"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),a_r(this,t,r)}delete(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.delete"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].contains(t)&&this[z9].delete(t)}get(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.get"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.get",value:t,type:"header name"});return this[z9].get(t)}has(t){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.has"}),t=sm.converters.ByteString(t),!MHe(t))throw sm.errors.invalidArgument({prefix:"Headers.has",value:t,type:"header name"});return this[z9].contains(t)}set(t,r){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,2,{header:"Headers.set"}),t=sm.converters.ByteString(t),r=sm.converters.ByteString(r),r=lKn(r),MHe(t)){if(!cKn(r))throw sm.errors.invalidArgument({prefix:"Headers.set",value:r,type:"header value"})}else throw sm.errors.invalidArgument({prefix:"Headers.set",value:t,type:"header name"});if(this[E8]==="immutable")throw new TypeError("immutable");this[E8],this[z9].set(t,r)}getSetCookie(){sm.brandCheck(this,e);let t=this[z9].cookies;return t?[...t]:[]}get[Dk](){if(this[z9][Dk])return this[z9][Dk];let t=[],r=[...this[z9]].sort((a,o)=>a[0]t,"Headers","key")}return jBe(()=>[...this[Dk].values()],"Headers","key")}values(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","value")}return jBe(()=>[...this[Dk].values()],"Headers","value")}entries(){if(sm.brandCheck(this,e),this[E8]==="immutable"){let t=this[Dk];return jBe(()=>t,"Headers","key+value")}return jBe(()=>[...this[Dk].values()],"Headers","key+value")}forEach(t,r=globalThis){if(sm.brandCheck(this,e),sm.argumentLengthCheck(arguments,1,{header:"Headers.forEach"}),typeof t!="function")throw new TypeError("Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'.");for(let[n,a]of this)t.apply(r,[a,n,this])}[Symbol.for("nodejs.util.inspect.custom")](){return sm.brandCheck(this,e),this[z9]}};zBe.prototype[Symbol.iterator]=zBe.prototype.entries;Object.defineProperties(zBe.prototype,{append:b8,delete:b8,get:b8,has:b8,set:b8,getSetCookie:b8,keys:b8,values:b8,entries:b8,forEach:b8,[Symbol.iterator]:{enumerable:!1},[Symbol.toStringTag]:{value:"Headers",configurable:!0}});sm.converters.HeadersInit=function(e){if(sm.util.Type(e)==="Object")return e[Symbol.iterator]?sm.converters["sequence>"](e):sm.converters["record"](e);throw sm.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};gKn.exports={fill:uKn,Headers:zBe,HeadersList:$ft}});var nIt=H((lsu,CKn)=>{"use strict";var{Headers:fna,HeadersList:AKn,fill:Ina}=UIe(),{extractBody:dKn,cloneBody:hna,mixinBody:mna}=_He(),u_r=zC(),{kEnumerableProperty:UW}=u_r,{isValidReasonPhrase:Cna,isCancelled:_na,isAborted:yna,isBlobLike:bna,serializeJavascriptValueToJSONString:Ena,isErrorLike:Sna,isomorphicEncode:vna}=EM(),{redirectStatusSet:Bna,nullBodyStatus:wna,DOMException:pKn}=Xoe(),{kState:v2,kHeaders:$N,kGuard:qBe,kRealm:JW}=v$(),{webidl:Wh}=xZ(),{FormData:Tna}=dft(),{getGlobalOrigin:Rna}=wBe(),{URLSerializer:fKn}=wX(),{kHeadersList:c_r,kConstruct:Nna}=GE(),g_r=wt("assert"),{types:l_r}=wt("util"),hKn=globalThis.ReadableStream||wt("stream/web").ReadableStream,Dna=new TextEncoder("utf-8"),$Be=class e{static error(){let t={settingsObject:{}},r=new e;return r[v2]=tIt(),r[JW]=t,r[$N][c_r]=r[v2].headersList,r[$N][qBe]="immutable",r[$N][JW]=t,r}static json(t,r={}){Wh.argumentLengthCheck(arguments,1,{header:"Response.json"}),r!==null&&(r=Wh.converters.ResponseInit(r));let n=Dna.encode(Ena(t)),a=dKn(n),o={settingsObject:{}},l=new e;return l[JW]=o,l[$N][qBe]="response",l[$N][JW]=o,IKn(l,r,{body:a[0],type:"application/json"}),l}static redirect(t,r=302){let n={settingsObject:{}};Wh.argumentLengthCheck(arguments,1,{header:"Response.redirect"}),t=Wh.converters.USVString(t),r=Wh.converters["unsigned short"](r);let a;try{a=new URL(t,Rna())}catch(A){throw Object.assign(new TypeError("Failed to parse URL from "+t),{cause:A})}if(!Bna.has(r))throw new RangeError("Invalid status code "+r);let o=new e;o[JW]=n,o[$N][qBe]="immutable",o[$N][JW]=n,o[v2].status=r;let l=vna(fKn(a));return o[v2].headersList.append("location",l),o}constructor(t=null,r={}){t!==null&&(t=Wh.converters.BodyInit(t)),r=Wh.converters.ResponseInit(r),this[JW]={settingsObject:{}},this[v2]=rIt({}),this[$N]=new fna(Nna),this[$N][qBe]="response",this[$N][c_r]=this[v2].headersList,this[$N][JW]=this[JW];let n=null;if(t!=null){let[a,o]=dKn(t);n={body:a,type:o}}IKn(this,r,n)}get type(){return Wh.brandCheck(this,e),this[v2].type}get url(){Wh.brandCheck(this,e);let t=this[v2].urlList,r=t[t.length-1]??null;return r===null?"":fKn(r,!0)}get redirected(){return Wh.brandCheck(this,e),this[v2].urlList.length>1}get status(){return Wh.brandCheck(this,e),this[v2].status}get ok(){return Wh.brandCheck(this,e),this[v2].status>=200&&this[v2].status<=299}get statusText(){return Wh.brandCheck(this,e),this[v2].statusText}get headers(){return Wh.brandCheck(this,e),this[$N]}get body(){return Wh.brandCheck(this,e),this[v2].body?this[v2].body.stream:null}get bodyUsed(){return Wh.brandCheck(this,e),!!this[v2].body&&u_r.isDisturbed(this[v2].body.stream)}clone(){if(Wh.brandCheck(this,e),this.bodyUsed||this.body&&this.body.locked)throw Wh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=A_r(this[v2]),r=new e;return r[v2]=t,r[JW]=this[JW],r[$N][c_r]=t.headersList,r[$N][qBe]=this[$N][qBe],r[$N][JW]=this[$N][JW],r}};mna($Be);Object.defineProperties($Be.prototype,{type:UW,url:UW,status:UW,ok:UW,redirected:UW,statusText:UW,headers:UW,clone:UW,body:UW,bodyUsed:UW,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties($Be,{json:UW,redirect:UW,error:UW});function A_r(e){if(e.internalResponse)return mKn(A_r(e.internalResponse),e.type);let t=rIt({...e,body:null});return e.body!=null&&(t.body=hna(e.body)),t}function rIt(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e.headersList?new AKn(e.headersList):new AKn,urlList:e.urlList?[...e.urlList]:[]}}function tIt(e){let t=Sna(e);return rIt({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function eIt(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return g_r(!(n in t)),r[n]=a,!0}})}function mKn(e,t){if(t==="basic")return eIt(e,{type:"basic",headersList:e.headersList});if(t==="cors")return eIt(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return eIt(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return eIt(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});g_r(!1)}function kna(e,t=null){return g_r(_na(e)),yna(e)?tIt(Object.assign(new pKn("The operation was aborted.","AbortError"),{cause:t})):tIt(Object.assign(new pKn("Request was cancelled."),{cause:t}))}function IKn(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!Cna(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[v2].status=t.status),"statusText"in t&&t.statusText!=null&&(e[v2].statusText=t.statusText),"headers"in t&&t.headers!=null&&Ina(e[$N],t.headers),r){if(wna.includes(e.status))throw Wh.errors.exception({header:"Response constructor",message:"Invalid response status code "+e.status});e[v2].body=r.body,r.type!=null&&!e[v2].headersList.contains("Content-Type")&&e[v2].headersList.append("content-type",r.type)}}Wh.converters.ReadableStream=Wh.interfaceConverter(hKn);Wh.converters.FormData=Wh.interfaceConverter(Tna);Wh.converters.URLSearchParams=Wh.interfaceConverter(URLSearchParams);Wh.converters.XMLHttpRequestBodyInit=function(e){return typeof e=="string"?Wh.converters.USVString(e):bna(e)?Wh.converters.Blob(e,{strict:!1}):l_r.isArrayBuffer(e)||l_r.isTypedArray(e)||l_r.isDataView(e)?Wh.converters.BufferSource(e):u_r.isFormDataLike(e)?Wh.converters.FormData(e,{strict:!1}):e instanceof URLSearchParams?Wh.converters.URLSearchParams(e):Wh.converters.DOMString(e)};Wh.converters.BodyInit=function(e){return e instanceof hKn?Wh.converters.ReadableStream(e):e?.[Symbol.asyncIterator]?e:Wh.converters.XMLHttpRequestBodyInit(e)};Wh.converters.ResponseInit=Wh.dictionaryConverter([{key:"status",converter:Wh.converters["unsigned short"],defaultValue:200},{key:"statusText",converter:Wh.converters.ByteString,defaultValue:""},{key:"headers",converter:Wh.converters.HeadersInit}]);CKn.exports={makeNetworkError:tIt,makeResponse:rIt,makeAppropriateNetworkError:kna,filterResponse:mKn,Response:$Be,cloneResponse:A_r}});var QHe=H((usu,vKn)=>{"use strict";var{extractBody:xna,mixinBody:Gna,cloneBody:Fna}=_He(),{Headers:_Kn,fill:Zna,HeadersList:aIt}=UIe(),{FinalizationRegistry:Lna}=bCr()(),YHe=zC(),{isValidHTTPToken:Vna,sameOrigin:yKn,normalizeMethod:Pna,makePolicyContainer:Wna,normalizeMethodRecord:Ona}=EM(),{forbiddenMethodsSet:Mna,corsSafeListedMethodsSet:Hna,referrerPolicy:Yna,requestRedirect:Qna,requestMode:Xna,requestCredentials:Jna,requestCache:Una,requestDuplex:Kna}=Xoe(),{kEnumerableProperty:oT}=YHe,{kHeaders:yG,kSignal:HHe,kState:P1,kGuard:iIt,kRealm:KW}=v$(),{webidl:Ff}=xZ(),{getGlobalOrigin:jna}=wBe(),{URLSerializer:zna}=wX(),{kHeadersList:sIt,kConstruct:oIt}=GE(),qna=wt("assert"),{getMaxListeners:bKn,setMaxListeners:EKn,getEventListeners:$na,defaultMaxListeners:SKn}=wt("events"),d_r=globalThis.TransformStream,eia=Symbol("abortController"),tia=new Lna(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),KIe=class e{constructor(t,r={}){if(t===oIt)return;Ff.argumentLengthCheck(arguments,1,{header:"Request constructor"}),t=Ff.converters.RequestInfo(t),r=Ff.converters.RequestInit(r),this[KW]={settingsObject:{baseUrl:jna(),get origin(){return this.baseUrl?.origin},policyContainer:Wna()}};let n=null,a=null,o=this[KW].settingsObject.baseUrl,l=null;if(typeof t=="string"){let Q;try{Q=new URL(t,o)}catch(X){throw new TypeError("Failed to parse URL from "+t,{cause:X})}if(Q.username||Q.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);n=cIt({urlList:[Q]}),a="cors"}else qna(t instanceof e),n=t[P1],l=t[HHe];let A=this[KW].settingsObject.origin,f="client";if(n.window?.constructor?.name==="EnvironmentSettingsObject"&&yKn(n.window,A)&&(f=n.window),r.window!=null)throw new TypeError(`'window' option '${f}' must be null`);"window"in r&&(f="no-window"),n=cIt({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:this[KW].settingsObject,window:f,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let I=Object.keys(r).length!==0;if(I&&(n.mode==="navigate"&&(n.mode="same-origin"),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin="client",n.referrer="client",n.referrerPolicy="",n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),r.referrer!==void 0){let Q=r.referrer;if(Q==="")n.referrer="no-referrer";else{let X;try{X=new URL(Q,o)}catch(ae){throw new TypeError(`Referrer "${Q}" is not a valid URL.`,{cause:ae})}X.protocol==="about:"&&X.hostname==="client"||A&&!yKn(X,this[KW].settingsObject.baseUrl)?n.referrer="client":n.referrer=X}}r.referrerPolicy!==void 0&&(n.referrerPolicy=r.referrerPolicy);let C;if(r.mode!==void 0?C=r.mode:C=a,C==="navigate")throw Ff.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(C!=null&&(n.mode=C),r.credentials!==void 0&&(n.credentials=r.credentials),r.cache!==void 0&&(n.cache=r.cache),n.cache==="only-if-cached"&&n.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(n.redirect=r.redirect),r.integrity!=null&&(n.integrity=String(r.integrity)),r.keepalive!==void 0&&(n.keepalive=!!r.keepalive),r.method!==void 0){let Q=r.method;if(!Vna(Q))throw new TypeError(`'${Q}' is not a valid HTTP method.`);if(Mna.has(Q.toUpperCase()))throw new TypeError(`'${Q}' HTTP method is unsupported.`);Q=Ona[Q]??Pna(Q),n.method=Q}r.signal!==void 0&&(l=r.signal),this[P1]=n;let b=new AbortController;if(this[HHe]=b.signal,this[HHe][KW]=this[KW],l!=null){if(!l||typeof l.aborted!="boolean"||typeof l.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(l.aborted)b.abort(l.reason);else{this[eia]=b;let Q=new WeakRef(b),X=function(){let ae=Q.deref();ae!==void 0&&ae.abort(this.reason)};try{(typeof bKn=="function"&&bKn(l)===SKn||$na(l,"abort").length>=SKn)&&EKn(100,l)}catch{}YHe.addAbortListener(l,X),tia.register(b,{signal:l,abort:X})}}if(this[yG]=new _Kn(oIt),this[yG][sIt]=n.headersList,this[yG][iIt]="request",this[yG][KW]=this[KW],C==="no-cors"){if(!Hna.has(n.method))throw new TypeError(`'${n.method} is unsupported in no-cors mode.`);this[yG][iIt]="request-no-cors"}if(I){let Q=this[yG][sIt],X=r.headers!==void 0?r.headers:new aIt(Q);if(Q.clear(),X instanceof aIt){for(let[ae,ne]of X)Q.append(ae,ne);Q.cookies=X.cookies}else Zna(this[yG],X)}let E=t instanceof e?t[P1].body:null;if((r.body!=null||E!=null)&&(n.method==="GET"||n.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let N=null;if(r.body!=null){let[Q,X]=xna(r.body,n.keepalive);N=Q,X&&!this[yG][sIt].contains("content-type")&&this[yG].append("content-type",X)}let B=N??E;if(B!=null&&B.source==null){if(N!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(n.mode!=="same-origin"&&n.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');n.useCORSPreflightFlag=!0}let F=B;if(N==null&&E!=null){if(YHe.isDisturbed(E.stream)||E.stream.locked)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");d_r||(d_r=wt("stream/web").TransformStream);let Q=new d_r;E.stream.pipeThrough(Q),F={source:E.source,length:E.length,stream:Q.readable}}this[P1].body=F}get method(){return Ff.brandCheck(this,e),this[P1].method}get url(){return Ff.brandCheck(this,e),zna(this[P1].url)}get headers(){return Ff.brandCheck(this,e),this[yG]}get destination(){return Ff.brandCheck(this,e),this[P1].destination}get referrer(){return Ff.brandCheck(this,e),this[P1].referrer==="no-referrer"?"":this[P1].referrer==="client"?"about:client":this[P1].referrer.toString()}get referrerPolicy(){return Ff.brandCheck(this,e),this[P1].referrerPolicy}get mode(){return Ff.brandCheck(this,e),this[P1].mode}get credentials(){return this[P1].credentials}get cache(){return Ff.brandCheck(this,e),this[P1].cache}get redirect(){return Ff.brandCheck(this,e),this[P1].redirect}get integrity(){return Ff.brandCheck(this,e),this[P1].integrity}get keepalive(){return Ff.brandCheck(this,e),this[P1].keepalive}get isReloadNavigation(){return Ff.brandCheck(this,e),this[P1].reloadNavigation}get isHistoryNavigation(){return Ff.brandCheck(this,e),this[P1].historyNavigation}get signal(){return Ff.brandCheck(this,e),this[HHe]}get body(){return Ff.brandCheck(this,e),this[P1].body?this[P1].body.stream:null}get bodyUsed(){return Ff.brandCheck(this,e),!!this[P1].body&&YHe.isDisturbed(this[P1].body.stream)}get duplex(){return Ff.brandCheck(this,e),"half"}clone(){if(Ff.brandCheck(this,e),this.bodyUsed||this.body?.locked)throw new TypeError("unusable");let t=ria(this[P1]),r=new e(oIt);r[P1]=t,r[KW]=this[KW],r[yG]=new _Kn(oIt),r[yG][sIt]=t.headersList,r[yG][iIt]=this[yG][iIt],r[yG][KW]=this[yG][KW];let n=new AbortController;return this.signal.aborted?n.abort(this.signal.reason):YHe.addAbortListener(this.signal,()=>{n.abort(this.signal.reason)}),r[HHe]=n.signal,r}};Gna(KIe);function cIt(e){let t={method:"GET",localURLsOnly:!1,unsafeRequest:!1,body:null,client:null,reservedClient:null,replacesClientId:"",window:"client",keepalive:!1,serviceWorkers:"all",initiator:"",destination:"",priority:null,origin:"client",policyContainer:"client",referrer:"client",referrerPolicy:"",mode:"no-cors",useCORSPreflightFlag:!1,credentials:"same-origin",useCredentials:!1,cache:"default",redirect:"follow",integrity:"",cryptoGraphicsNonceMetadata:"",parserMetadata:"",reloadNavigation:!1,historyNavigation:!1,userActivation:!1,taintedOrigin:!1,redirectCount:0,responseTainting:"basic",preventNoCacheCacheControlHeaderModification:!1,done:!1,timingAllowFailed:!1,...e,headersList:e.headersList?new aIt(e.headersList):new aIt};return t.url=t.urlList[0],t}function ria(e){let t=cIt({...e,body:null});return e.body!=null&&(t.body=Fna(e.body)),t}Object.defineProperties(KIe.prototype,{method:oT,url:oT,headers:oT,redirect:oT,clone:oT,signal:oT,duplex:oT,destination:oT,body:oT,bodyUsed:oT,isHistoryNavigation:oT,isReloadNavigation:oT,keepalive:oT,integrity:oT,cache:oT,credentials:oT,attribute:oT,referrerPolicy:oT,referrer:oT,mode:oT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});Ff.converters.Request=Ff.interfaceConverter(KIe);Ff.converters.RequestInfo=function(e){return typeof e=="string"?Ff.converters.USVString(e):e instanceof KIe?Ff.converters.Request(e):Ff.converters.USVString(e)};Ff.converters.AbortSignal=Ff.interfaceConverter(AbortSignal);Ff.converters.RequestInit=Ff.dictionaryConverter([{key:"method",converter:Ff.converters.ByteString},{key:"headers",converter:Ff.converters.HeadersInit},{key:"body",converter:Ff.nullableConverter(Ff.converters.BodyInit)},{key:"referrer",converter:Ff.converters.USVString},{key:"referrerPolicy",converter:Ff.converters.DOMString,allowedValues:Yna},{key:"mode",converter:Ff.converters.DOMString,allowedValues:Xna},{key:"credentials",converter:Ff.converters.DOMString,allowedValues:Jna},{key:"cache",converter:Ff.converters.DOMString,allowedValues:Una},{key:"redirect",converter:Ff.converters.DOMString,allowedValues:Qna},{key:"integrity",converter:Ff.converters.DOMString},{key:"keepalive",converter:Ff.converters.boolean},{key:"signal",converter:Ff.nullableConverter(e=>Ff.converters.AbortSignal(e,{strict:!1}))},{key:"window",converter:Ff.converters.any},{key:"duplex",converter:Ff.converters.DOMString,allowedValues:Kna}]);vKn.exports={Request:KIe,makeRequest:cIt}});var fIt=H((gsu,PKn)=>{"use strict";var{Response:nia,makeNetworkError:Kb,makeAppropriateNetworkError:lIt,filterResponse:p_r,makeResponse:uIt}=nIt(),{Headers:BKn}=UIe(),{Request:iia,makeRequest:sia}=QHe(),XHe=wt("zlib"),{bytesMatch:oia,makePolicyContainer:aia,clonePolicyContainer:cia,requestBadPort:lia,TAOCheck:uia,appendRequestOriginHeader:gia,responseLocationURL:Aia,requestCurrentURL:S8,setRequestReferrerPolicyOnRedirect:dia,tryUpgradeRequestToAPotentiallyTrustworthyURL:pia,createOpaqueTimingInfo:E_r,appendFetchMetadata:fia,corsCheck:Iia,crossOriginResourcePolicyCheck:hia,determineRequestsReferrer:mia,coarsenedSharedCurrentTime:S_r,createDeferredPromise:Cia,isBlobLike:_ia,sameOrigin:__r,isCancelled:twe,isAborted:wKn,isErrorLike:yia,fullyReadBody:DKn,readableStreamClose:bia,isomorphicEncode:y_r,urlIsLocal:Eia,urlIsHttpHttpsScheme:v_r,urlHasHttpsScheme:Sia}=EM(),{kState:b_r,kHeaders:f_r,kGuard:via,kRealm:TKn}=v$(),rwe=wt("assert"),{safelyExtractBody:gIt}=_He(),{redirectStatusSet:kKn,nullBodyStatus:xKn,safeMethodsSet:Bia,requestBodyHeader:wia,subresourceSet:Tia,DOMException:AIt}=Xoe(),{kHeadersList:ewe}=GE(),Ria=wt("events"),{Readable:Nia,pipeline:Dia}=wt("stream"),{addAbortListener:kia,isErrored:xia,isReadable:dIt,nodeMajor:RKn,nodeMinor:Gia}=zC(),{dataURLProcessor:Fia,serializeAMimeType:Zia}=wX(),{TransformStream:Lia}=wt("stream/web"),{getGlobalDispatcher:Via}=KBe(),{webidl:Pia}=xZ(),{STATUS_CODES:Wia}=wt("http"),Oia=["GET","HEAD"],I_r,h_r=globalThis.ReadableStream,pIt=class extends Ria{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing",this.setMaxListeners(21)}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new AIt("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function Mia(e,t={}){Pia.argumentLengthCheck(arguments,1,{header:"globalThis.fetch"});let r=Cia(),n;try{n=new iia(e,t)}catch(E){return r.reject(E),r.promise}let a=n[b_r];if(n.signal.aborted)return m_r(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=null,f=!1,I=null;return kia(n.signal,()=>{f=!0,rwe(I!=null),I.abort(n.signal.reason),m_r(r,a,l,n.signal.reason)}),I=FKn({request:a,processResponseEndOfBody:E=>GKn(E,"fetch"),processResponse:E=>{if(f)return Promise.resolve();if(E.aborted)return m_r(r,a,l,I.serializedAbortReason),Promise.resolve();if(E.type==="error")return r.reject(Object.assign(new TypeError("fetch failed"),{cause:E.error})),Promise.resolve();l=new nia,l[b_r]=E,l[TKn]=A,l[f_r][ewe]=E.headersList,l[f_r][via]="immutable",l[f_r][TKn]=A,r.resolve(l)},dispatcher:t.dispatcher??Via()}),r.promise}function GKn(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;v_r(r)&&n!==null&&(e.timingAllowPassed||(n=E_r({startTime:n.startTime}),a=""),n.endTime=S_r(),e.timingInfo=n,Hia(n,r,t,globalThis,a))}function Hia(e,t,r,n,a){(RKn>18||RKn===18&&Gia>=2)&&performance.markResourceTiming(e,t.href,r,n,a)}function m_r(e,t,r,n){if(n||(n=new AIt("The operation was aborted.","AbortError")),e.reject(n),t.body!=null&&dIt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[b_r];a.body!=null&&dIt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function FKn({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A}){let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=S_r(I),b=E_r({startTime:C}),E={controller:new pIt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return rwe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client?.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=cia(e.client.policyContainer):e.policyContainer=aia()),e.headersList.contains("accept")||e.headersList.append("accept","*/*"),e.headersList.contains("accept-language")||e.headersList.append("accept-language","*"),e.priority,Tia.has(e.destination),ZKn(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function ZKn(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!Eia(S8(r))&&(n=Kb("local URLs only")),pia(r),lia(r)==="blocked"&&(n=Kb("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=mia(r)),n===null&&(n=await(async()=>{let o=S8(r);return __r(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await NKn(e)):r.mode==="same-origin"?Kb('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?Kb('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await NKn(e)):v_r(S8(r))?(r.responseTainting="cors",await LKn(e)):Kb("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=p_r(n,"basic"):r.responseTainting==="cors"?n=p_r(n,"cors"):r.responseTainting==="opaque"?n=p_r(n,"opaque"):rwe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range")&&(n=a=Kb()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||xKn.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>C_r(e,Kb(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!oia(A,r.integrity)){o("integrity mismatch");return}n.body=gIt(A)[0],C_r(e,n)};await DKn(n.body,l,o)}else C_r(e,n)}function NKn(e){if(twe(e)&&e.request.redirectCount===0)return Promise.resolve(lIt(e));let{request:t}=e,{protocol:r}=S8(t);switch(r){case"about:":return Promise.resolve(Kb("about scheme is not supported"));case"blob:":{I_r||(I_r=wt("buffer").resolveObjectURL);let n=S8(t);if(n.search.length!==0)return Promise.resolve(Kb("NetworkError when attempting to fetch resource."));let a=I_r(n.toString());if(t.method!=="GET"||!_ia(a))return Promise.resolve(Kb("invalid method"));let o=gIt(a),l=o[0],A=y_r(`${l.length}`),f=o[1]??"",I=uIt({statusText:"OK",headersList:[["content-length",{name:"Content-Length",value:A}],["content-type",{name:"Content-Type",value:f}]]});return I.body=l,Promise.resolve(I)}case"data:":{let n=S8(t),a=Fia(n);if(a==="failure")return Promise.resolve(Kb("failed to fetch the data URL"));let o=Zia(a.mimeType);return Promise.resolve(uIt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:gIt(a.body)[0]}))}case"file:":return Promise.resolve(Kb("not implemented... yet..."));case"http:":case"https:":return LKn(e).catch(n=>Kb(n));default:return Promise.resolve(Kb("unknown scheme"))}}function Yia(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function C_r(e,t){t.type==="error"&&(t.urlList=[e.request.urlList[0]],t.timingInfo=E_r({startTime:e.timingInfo.startTime}));let r=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t))};if(e.processResponse!=null&&queueMicrotask(()=>e.processResponse(t)),t.body==null)r();else{let n=(o,l)=>{l.enqueue(o)},a=new Lia({start(){},transform:n,flush:r},{size(){return 1}},{size(){return 1}});t.body={stream:t.body.stream.pipeThrough(a)}}if(e.processResponseConsumeBody!=null){let n=o=>e.processResponseConsumeBody(t,o),a=o=>e.processResponseConsumeBody(t,o);if(t.body==null)queueMicrotask(()=>n(null));else return DKn(t.body,n,a);return Promise.resolve()}}async function LKn(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await VKn(e),t.responseTainting==="cors"&&Iia(t,r)==="failure")return Kb("cors failure");uia(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&hia(t.origin,t.client,t.destination,n)==="blocked"?Kb("blocked"):(kKn.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(),t.redirect==="error"?r=Kb("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await Qia(e,r):rwe(!1)),r.timingInfo=a,r)}function Qia(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=Aia(n,S8(r).hash),a==null)return t}catch(l){return Promise.resolve(Kb(l))}if(!v_r(a))return Promise.resolve(Kb("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(Kb("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!__r(r,a))return Promise.resolve(Kb('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(Kb('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(Kb());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!Oia.includes(r.method)){r.method="GET",r.body=null;for(let l of wia)r.headersList.delete(l)}__r(S8(r),a)||(r.headersList.delete("authorization"),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie"),r.headersList.delete("host")),r.body!=null&&(rwe(r.body.source!=null),r.body=gIt(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=S_r(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),dia(r,n),ZKn(e,!0)}async function VKn(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=sia(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=y_r(`${C}`)),b!=null&&o.headersList.append("content-length",b),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",y_r(o.referrer.href)),gia(o),fia(o),o.headersList.contains("user-agent")||o.headersList.append("user-agent",typeof esbuildDetection>"u"?"undici":"node"),o.cache==="default"&&(o.headersList.contains("if-modified-since")||o.headersList.contains("if-none-match")||o.headersList.contains("if-unmodified-since")||o.headersList.contains("if-match")||o.headersList.contains("if-range"))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control")&&o.headersList.append("cache-control","max-age=0"),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma")||o.headersList.append("pragma","no-cache"),o.headersList.contains("cache-control")||o.headersList.append("cache-control","no-cache")),o.headersList.contains("range")&&o.headersList.append("accept-encoding","identity"),o.headersList.contains("accept-encoding")||(Sia(S8(o))?o.headersList.append("accept-encoding","br, gzip, deflate"):o.headersList.append("accept-encoding","gzip, deflate")),o.headersList.delete("host"),A==null&&(o.cache="no-store"),o.mode!=="no-store"&&o.mode,l==null){if(o.mode==="only-if-cached")return Kb("only if cached");let E=await Xia(a,I,r);!Bia.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range")&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?Kb():twe(e)?lIt(e):Kb("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(twe(e))return lIt(e);e.controller.connection.destroy(),l=await VKn(e,t,!0)}return l}async function Xia(e,t=!1,r=!1){rwe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B){this.destroyed||(this.destroyed=!0,this.abort?.(B??new AIt("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){twe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{twe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{twe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=uIt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=uIt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),lIt(e,B)):Kb(B)}let I=()=>{e.controller.resume()},C=B=>{e.controller.abort(B)};h_r||(h_r=wt("stream/web").ReadableStream);let b=new h_r({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)}},{highWaterMark:0,size(){return 1}});a.body={stream:b},e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:Q,value:X}=await e.controller.next();if(wKn(e))break;B=Q?void 0:X}catch(Q){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=Q,F=!0)}if(B===void 0){bia(e.controller.controller),Yia(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}if(e.controller.controller.enqueue(new Uint8Array(B)),xia(b)){e.controller.terminate();return}if(!e.controller.controller.desiredSize)return}};function E(B){wKn(e)?(a.aborted=!0,dIt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):dIt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:yia(B)?B:void 0})),e.controller.connection.destroy()}return a;async function N({body:B}){let F=S8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:e.controller.dispatcher.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;ce.destroyed?ne(new AIt("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new BKn;if(Array.isArray(ce))for(let et=0;etje.trim()):ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}else{let et=Object.keys(ce);for(let ct of et){let Me=ce[ct];ct.toLowerCase()==="content-encoding"?de=Me.toLowerCase().split(",").map(je=>je.trim()).reverse():ct.toLowerCase()==="location"&&(be=Me),Se[ewe].append(ct,Me)}}this.body=new Nia({read:fe});let De=[],k=n.redirect==="follow"&&be&&kKn.has(ne);if(n.method!=="HEAD"&&n.method!=="CONNECT"&&!xKn.includes(ne)&&!k)for(let et of de)if(et==="x-gzip"||et==="gzip")De.push(XHe.createGunzip({flush:XHe.constants.Z_SYNC_FLUSH,finishFlush:XHe.constants.Z_SYNC_FLUSH}));else if(et==="deflate")De.push(XHe.createInflate());else if(et==="br")De.push(XHe.createBrotliDecompress());else{De.length=0;break}return X({status:ne,statusText:ue,headersList:Se[ewe],body:De.length?Dia(this.body,...De,()=>{}):this.body.on("error",()=>{})}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new BKn;for(let de=0;de{"use strict";WKn.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var MKn=H((dsu,OKn)=>{"use strict";var{webidl:jW}=xZ(),IIt=Symbol("ProgressEvent state"),w_r=class e extends Event{constructor(t,r={}){t=jW.converters.DOMString(t),r=jW.converters.ProgressEventInit(r??{}),super(t,r),this[IIt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return jW.brandCheck(this,e),this[IIt].lengthComputable}get loaded(){return jW.brandCheck(this,e),this[IIt].loaded}get total(){return jW.brandCheck(this,e),this[IIt].total}};jW.converters.ProgressEventInit=jW.dictionaryConverter([{key:"lengthComputable",converter:jW.converters.boolean,defaultValue:!1},{key:"loaded",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"total",converter:jW.converters["unsigned long long"],defaultValue:0},{key:"bubbles",converter:jW.converters.boolean,defaultValue:!1},{key:"cancelable",converter:jW.converters.boolean,defaultValue:!1},{key:"composed",converter:jW.converters.boolean,defaultValue:!1}]);OKn.exports={ProgressEvent:w_r}});var YKn=H((psu,HKn)=>{"use strict";function Jia(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}HKn.exports={getEncoding:Jia}});var qKn=H((fsu,zKn)=>{"use strict";var{kState:nwe,kError:T_r,kResult:QKn,kAborted:JHe,kLastProgressEventFired:R_r}=B_r(),{ProgressEvent:Uia}=MKn(),{getEncoding:XKn}=YKn(),{DOMException:Kia}=Xoe(),{serializeAMimeType:jia,parseMIMEType:JKn}=wX(),{types:zia}=wt("util"),{StringDecoder:UKn}=wt("string_decoder"),{btoa:KKn}=wt("buffer"),qia={enumerable:!0,writable:!1,configurable:!1};function $ia(e,t,r,n){if(e[nwe]==="loading")throw new Kia("Invalid state","InvalidStateError");e[nwe]="loading",e[QKn]=null,e[T_r]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[JHe];)try{let{done:I,value:C}=await A;if(f&&!e[JHe]&&queueMicrotask(()=>{eae("loadstart",e)}),f=!1,!I&&zia.isUint8Array(C))l.push(C),(e[R_r]===void 0||Date.now()-e[R_r]>=50)&&!e[JHe]&&(e[R_r]=Date.now(),queueMicrotask(()=>{eae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[nwe]="done";try{let b=esa(l,r,t.type,n);if(e[JHe])return;e[QKn]=b,eae("load",e)}catch(b){e[T_r]=b,eae("error",e)}e[nwe]!=="loading"&&eae("loadend",e)});break}}catch(I){if(e[JHe])return;queueMicrotask(()=>{e[nwe]="done",e[T_r]=I,eae("error",e),e[nwe]!=="loading"&&eae("loadend",e)});break}})()}function eae(e,t){let r=new Uia(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function esa(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=JKn(r||"application/octet-stream");o!=="failure"&&(a+=jia(o)),a+=";base64,";let l=new UKn("latin1");for(let A of e)a+=KKn(l.write(A));return a+=KKn(l.end()),a}case"Text":{let a="failure";if(n&&(a=XKn(n)),a==="failure"&&r){let o=JKn(r);o!=="failure"&&(a=XKn(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),tsa(e,a)}case"ArrayBuffer":return jKn(e).buffer;case"BinaryString":{let a="",o=new UKn("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function tsa(e,t){let r=jKn(e),n=rsa(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function rsa(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function jKn(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}zKn.exports={staticPropertyDescriptors:qia,readOperation:$ia,fireAProgressEvent:eae}});var r8n=H((Isu,t8n)=>{"use strict";var{staticPropertyDescriptors:iwe,readOperation:hIt,fireAProgressEvent:$Kn}=qKn(),{kState:jIe,kError:e8n,kResult:mIt,kEvents:I0,kAborted:nsa}=B_r(),{webidl:nb}=xZ(),{kEnumerableProperty:q9}=zC(),DX=class e extends EventTarget{constructor(){super(),this[jIe]="empty",this[mIt]=null,this[e8n]=null,this[I0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsArrayBuffer"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"ArrayBuffer")}readAsBinaryString(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsBinaryString"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"BinaryString")}readAsText(t,r=void 0){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsText"}),t=nb.converters.Blob(t,{strict:!1}),r!==void 0&&(r=nb.converters.DOMString(r)),hIt(this,t,"Text",r)}readAsDataURL(t){nb.brandCheck(this,e),nb.argumentLengthCheck(arguments,1,{header:"FileReader.readAsDataURL"}),t=nb.converters.Blob(t,{strict:!1}),hIt(this,t,"DataURL")}abort(){if(this[jIe]==="empty"||this[jIe]==="done"){this[mIt]=null;return}this[jIe]==="loading"&&(this[jIe]="done",this[mIt]=null),this[nsa]=!0,$Kn("abort",this),this[jIe]!=="loading"&&$Kn("loadend",this)}get readyState(){switch(nb.brandCheck(this,e),this[jIe]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return nb.brandCheck(this,e),this[mIt]}get error(){return nb.brandCheck(this,e),this[e8n]}get onloadend(){return nb.brandCheck(this,e),this[I0].loadend}set onloadend(t){nb.brandCheck(this,e),this[I0].loadend&&this.removeEventListener("loadend",this[I0].loadend),typeof t=="function"?(this[I0].loadend=t,this.addEventListener("loadend",t)):this[I0].loadend=null}get onerror(){return nb.brandCheck(this,e),this[I0].error}set onerror(t){nb.brandCheck(this,e),this[I0].error&&this.removeEventListener("error",this[I0].error),typeof t=="function"?(this[I0].error=t,this.addEventListener("error",t)):this[I0].error=null}get onloadstart(){return nb.brandCheck(this,e),this[I0].loadstart}set onloadstart(t){nb.brandCheck(this,e),this[I0].loadstart&&this.removeEventListener("loadstart",this[I0].loadstart),typeof t=="function"?(this[I0].loadstart=t,this.addEventListener("loadstart",t)):this[I0].loadstart=null}get onprogress(){return nb.brandCheck(this,e),this[I0].progress}set onprogress(t){nb.brandCheck(this,e),this[I0].progress&&this.removeEventListener("progress",this[I0].progress),typeof t=="function"?(this[I0].progress=t,this.addEventListener("progress",t)):this[I0].progress=null}get onload(){return nb.brandCheck(this,e),this[I0].load}set onload(t){nb.brandCheck(this,e),this[I0].load&&this.removeEventListener("load",this[I0].load),typeof t=="function"?(this[I0].load=t,this.addEventListener("load",t)):this[I0].load=null}get onabort(){return nb.brandCheck(this,e),this[I0].abort}set onabort(t){nb.brandCheck(this,e),this[I0].abort&&this.removeEventListener("abort",this[I0].abort),typeof t=="function"?(this[I0].abort=t,this.addEventListener("abort",t)):this[I0].abort=null}};DX.EMPTY=DX.prototype.EMPTY=0;DX.LOADING=DX.prototype.LOADING=1;DX.DONE=DX.prototype.DONE=2;Object.defineProperties(DX.prototype,{EMPTY:iwe,LOADING:iwe,DONE:iwe,readAsArrayBuffer:q9,readAsBinaryString:q9,readAsText:q9,readAsDataURL:q9,abort:q9,readyState:q9,result:q9,error:q9,onloadstart:q9,onprogress:q9,onload:q9,onabort:q9,onerror:q9,onloadend:q9,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(DX,{EMPTY:iwe,LOADING:iwe,DONE:iwe});t8n.exports={FileReader:DX}});var CIt=H((hsu,n8n)=>{"use strict";n8n.exports={kConstruct:GE().kConstruct}});var o8n=H((msu,s8n)=>{"use strict";var isa=wt("assert"),{URLSerializer:i8n}=wX(),{isValidHeaderName:ssa}=EM();function osa(e,t,r=!1){let n=i8n(e,r),a=i8n(t,r);return n===a}function asa(e){isa(e!==null);let t=[];for(let r of e.split(",")){if(r=r.trim(),r.length){if(!ssa(r))continue}else continue;t.push(r)}return t}s8n.exports={urlEquals:osa,fieldValues:asa}});var A8n=H((Csu,g8n)=>{"use strict";var{kConstruct:csa}=CIt(),{urlEquals:lsa,fieldValues:N_r}=o8n(),{kEnumerableProperty:zIe,isDisturbed:usa}=zC(),{kHeadersList:a8n}=GE(),{webidl:Lp}=xZ(),{Response:l8n,cloneResponse:gsa}=nIt(),{Request:v8}=QHe(),{kState:VZ,kHeaders:_It,kGuard:c8n,kRealm:Asa}=v$(),{fetching:dsa}=fIt(),{urlIsHttpHttpsScheme:yIt,createDeferredPromise:swe,readAllBytes:psa}=EM(),D_r=wt("assert"),{getGlobalDispatcher:fsa}=KBe(),bIt=class e{#e;constructor(){arguments[0]!==csa&&Lp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.match"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=await this.matchAll(t,r);if(n.length!==0)return n[0]}async matchAll(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=[];if(t===void 0)for(let l of this.#e)a.push(l[1]);else{let l=this.#n(n,r);for(let A of l)a.push(A[1])}let o=[];for(let l of a){let A=new l8n(l.body?.source??null),f=A[VZ].body;A[VZ]=l,A[VZ].body=f,A[_It][a8n]=l.headersList,A[_It][c8n]="immutable",o.push(A)}return Object.freeze(o)}async add(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.add"}),t=Lp.converters.RequestInfo(t);let r=[t];return await this.addAll(r)}async addAll(t){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.addAll"}),t=Lp.converters["sequence"](t);let r=[],n=[];for(let b of t){if(typeof b=="string")continue;let E=b[VZ];if(!yIt(E.url)||E.method!=="GET")throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme when method is not GET."})}let a=[];for(let b of t){let E=new v8(b)[VZ];if(!yIt(E.url))throw Lp.errors.exception({header:"Cache.addAll",message:"Expected http/s scheme."});E.initiator="fetch",E.destination="subresource",n.push(E);let N=swe();a.push(dsa({request:E,dispatcher:fsa(),processResponse(B){if(B.type==="error"||B.status===206||B.status<200||B.status>299)N.reject(Lp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(B.headersList.contains("vary")){let F=N_r(B.headersList.get("vary"));for(let Q of F)if(Q==="*"){N.reject(Lp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let X of a)X.abort();return}}},processResponseEndOfBody(B){if(B.aborted){N.reject(new DOMException("aborted","AbortError"));return}N.resolve(B)}})),r.push(N.promise)}let l=await Promise.all(r),A=[],f=0;for(let b of l){let E={type:"put",request:n[f],response:b};A.push(E),f++}let I=swe(),C=null;try{this.#t(A)}catch(b){C=b}return queueMicrotask(()=>{C===null?I.resolve(void 0):I.reject(C)}),I.promise}async put(t,r){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,2,{header:"Cache.put"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.Response(r);let n=null;if(t instanceof v8?n=t[VZ]:n=new v8(t)[VZ],!yIt(n.url)||n.method!=="GET")throw Lp.errors.exception({header:"Cache.put",message:"Expected an http/s scheme when method is not GET"});let a=r[VZ];if(a.status===206)throw Lp.errors.exception({header:"Cache.put",message:"Got 206 status"});if(a.headersList.contains("vary")){let E=N_r(a.headersList.get("vary"));for(let N of E)if(N==="*")throw Lp.errors.exception({header:"Cache.put",message:"Got * vary field value"})}if(a.body&&(usa(a.body.stream)||a.body.stream.locked))throw Lp.errors.exception({header:"Cache.put",message:"Response body is locked or disturbed"});let o=gsa(a),l=swe();if(a.body!=null){let N=a.body.stream.getReader();psa(N).then(l.resolve,l.reject)}else l.resolve(void 0);let A=[],f={type:"put",request:n,response:o};A.push(f);let I=await l.promise;o.body!=null&&(o.body.source=I);let C=swe(),b=null;try{this.#t(A)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve():C.reject(b)}),C.promise}async delete(t,r={}){Lp.brandCheck(this,e),Lp.argumentLengthCheck(arguments,1,{header:"Cache.delete"}),t=Lp.converters.RequestInfo(t),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return!1}else D_r(typeof t=="string"),n=new v8(t)[VZ];let a=[],o={type:"delete",request:n,options:r};a.push(o);let l=swe(),A=null,f;try{f=this.#t(a)}catch(I){A=I}return queueMicrotask(()=>{A===null?l.resolve(!!f?.length):l.reject(A)}),l.promise}async keys(t=void 0,r={}){Lp.brandCheck(this,e),t!==void 0&&(t=Lp.converters.RequestInfo(t)),r=Lp.converters.CacheQueryOptions(r);let n=null;if(t!==void 0)if(t instanceof v8){if(n=t[VZ],n.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(n=new v8(t)[VZ]);let a=swe(),o=[];if(t===void 0)for(let l of this.#e)o.push(l[0]);else{let l=this.#n(n,r);for(let A of l)o.push(A[0])}return queueMicrotask(()=>{let l=[];for(let A of o){let f=new v8("https://a");f[VZ]=A,f[_It][a8n]=A.headersList,f[_It][c8n]="immutable",f[Asa]=A.client,l.push(f)}a.resolve(Object.freeze(l))}),a.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);D_r(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!yIt(f.url))throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Lp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);D_r(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!lsa(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=N_r(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}};Object.defineProperties(bIt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:zIe,matchAll:zIe,add:zIe,addAll:zIe,put:zIe,delete:zIe,keys:zIe});var u8n=[{key:"ignoreSearch",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreMethod",converter:Lp.converters.boolean,defaultValue:!1},{key:"ignoreVary",converter:Lp.converters.boolean,defaultValue:!1}];Lp.converters.CacheQueryOptions=Lp.dictionaryConverter(u8n);Lp.converters.MultiCacheQueryOptions=Lp.dictionaryConverter([...u8n,{key:"cacheName",converter:Lp.converters.DOMString}]);Lp.converters.Response=Lp.interfaceConverter(l8n);Lp.converters["sequence"]=Lp.sequenceConverter(Lp.converters.RequestInfo);g8n.exports={Cache:bIt}});var p8n=H((_su,d8n)=>{"use strict";var{kConstruct:UHe}=CIt(),{Cache:EIt}=A8n(),{webidl:PZ}=xZ(),{kEnumerableProperty:KHe}=zC(),SIt=class e{#e=new Map;constructor(){arguments[0]!==UHe&&PZ.illegalConstructor()}async match(t,r={}){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.match"}),t=PZ.converters.RequestInfo(t),r=PZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new EIt(UHe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new EIt(UHe,n).match(t,r);if(o!==void 0)return o}}async has(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.has"}),t=PZ.converters.DOMString(t),this.#e.has(t)}async open(t){if(PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.open"}),t=PZ.converters.DOMString(t),this.#e.has(t)){let n=this.#e.get(t);return new EIt(UHe,n)}let r=[];return this.#e.set(t,r),new EIt(UHe,r)}async delete(t){return PZ.brandCheck(this,e),PZ.argumentLengthCheck(arguments,1,{header:"CacheStorage.delete"}),t=PZ.converters.DOMString(t),this.#e.delete(t)}async keys(){return PZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(SIt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:KHe,has:KHe,open:KHe,delete:KHe,keys:KHe});d8n.exports={CacheStorage:SIt}});var I8n=H((ysu,f8n)=>{"use strict";f8n.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var k_r=H((bsu,C8n)=>{"use strict";var h8n=wt("assert"),{kHeadersList:m8n}=GE();function Isa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r>=0||r<=8||r>=10||r<=31||r===127)return!1}}function hsa(e){for(let t of e){let r=t.charCodeAt(0);if(r<=32||r>127||t==="("||t===")"||t===">"||t==="<"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}")throw new Error("Invalid cookie name")}}function msa(e){for(let t of e){let r=t.charCodeAt(0);if(r<33||r===34||r===44||r===59||r===92||r>126)throw new Error("Invalid header value")}}function Csa(e){for(let t of e)if(t.charCodeAt(0)<33||t===";")throw new Error("Invalid cookie path")}function _sa(e){if(e.startsWith("-")||e.endsWith(".")||e.endsWith("-"))throw new Error("Invalid cookie domain")}function ysa(e){typeof e=="number"&&(e=new Date(e));let t=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],n=t[e.getUTCDay()],a=e.getUTCDate().toString().padStart(2,"0"),o=r[e.getUTCMonth()],l=e.getUTCFullYear(),A=e.getUTCHours().toString().padStart(2,"0"),f=e.getUTCMinutes().toString().padStart(2,"0"),I=e.getUTCSeconds().toString().padStart(2,"0");return`${n}, ${a} ${o} ${l} ${A}:${f}:${I} GMT`}function bsa(e){if(e<0)throw new Error("Invalid cookie max-age")}function Esa(e){if(e.name.length===0)return null;hsa(e.name),msa(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(bsa(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(_sa(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(Csa(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${ysa(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}var vIt;function Ssa(e){if(e[m8n])return e[m8n];vIt||(vIt=Object.getOwnPropertySymbols(e).find(r=>r.description==="headers list"),h8n(vIt,"Headers cannot be parsed"));let t=e[vIt];return h8n(t),t}C8n.exports={isCTLExcludingHtab:Isa,stringify:Esa,getHeadersList:Ssa}});var y8n=H((Esu,_8n)=>{"use strict";var{maxNameValuePairSize:vsa,maxAttributeValueSize:Bsa}=I8n(),{isCTLExcludingHtab:wsa}=k_r(),{collectASequenceOfCodePointsFast:BIt}=wX(),Tsa=wt("assert");function Rsa(e){if(wsa(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=BIt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=BIt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>vsa?null:{name:n,value:a,...owe(r)}}function owe(e,t={}){if(e.length===0)return t;Tsa(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=BIt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=BIt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Bsa)return owe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return owe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return owe(e,t)}_8n.exports={parseSetCookie:Rsa,parseUnparsedAttributes:owe}});var v8n=H((Ssu,S8n)=>{"use strict";var{parseSetCookie:Nsa}=y8n(),{stringify:b8n,getHeadersList:Dsa}=k_r(),{webidl:rC}=xZ(),{Headers:wIt}=UIe();function ksa(e){rC.argumentLengthCheck(arguments,1,{header:"getCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function xsa(e,t,r){rC.argumentLengthCheck(arguments,2,{header:"deleteCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.DOMString(t),r=rC.converters.DeleteCookieAttributes(r),E8n(e,{name:t,value:"",expires:new Date(0),...r})}function Gsa(e){rC.argumentLengthCheck(arguments,1,{header:"getSetCookies"}),rC.brandCheck(e,wIt,{strict:!1});let t=Dsa(e).cookies;return t?t.map(r=>Nsa(Array.isArray(r)?r[1]:r)):[]}function E8n(e,t){rC.argumentLengthCheck(arguments,2,{header:"setCookie"}),rC.brandCheck(e,wIt,{strict:!1}),t=rC.converters.Cookie(t),b8n(t)&&e.append("Set-Cookie",b8n(t))}rC.converters.DeleteCookieAttributes=rC.dictionaryConverter([{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null}]);rC.converters.Cookie=rC.dictionaryConverter([{converter:rC.converters.DOMString,key:"name"},{converter:rC.converters.DOMString,key:"value"},{converter:rC.nullableConverter(e=>typeof e=="number"?rC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:null},{converter:rC.nullableConverter(rC.converters["long long"]),key:"maxAge",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"domain",defaultValue:null},{converter:rC.nullableConverter(rC.converters.DOMString),key:"path",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"secure",defaultValue:null},{converter:rC.nullableConverter(rC.converters.boolean),key:"httpOnly",defaultValue:null},{converter:rC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:rC.sequenceConverter(rC.converters.DOMString),key:"unparsed",defaultValue:[]}]);S8n.exports={getCookies:ksa,deleteCookie:xsa,getSetCookies:Gsa,setCookie:E8n}});var awe=H((vsu,B8n)=>{"use strict";var Fsa="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Zsa={enumerable:!0,writable:!1,configurable:!1},Lsa={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},Vsa={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},Psa=2**16-1,Wsa={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},Osa=Buffer.allocUnsafe(0);B8n.exports={uid:Fsa,staticPropertyDescriptors:Zsa,states:Lsa,opcodes:Vsa,maxUnsigned16Bit:Psa,parserStates:Wsa,emptyBuffer:Osa}});var jHe=H((Bsu,w8n)=>{"use strict";w8n.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var G_r=H((wsu,T8n)=>{"use strict";var{webidl:Vp}=xZ(),{kEnumerableProperty:$9}=zC(),{MessagePort:Msa}=wt("worker_threads"),TIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.MessageEventInit(r),super(t,r),this.#e=r}get data(){return Vp.brandCheck(this,e),this.#e.data}get origin(){return Vp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Vp.brandCheck(this,e),this.#e.lastEventId}get source(){return Vp.brandCheck(this,e),this.#e.source}get ports(){return Vp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Vp.brandCheck(this,e),Vp.argumentLengthCheck(arguments,1,{header:"MessageEvent.initMessageEvent"}),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}},RIt=class e extends Event{#e;constructor(t,r={}){Vp.argumentLengthCheck(arguments,1,{header:"CloseEvent constructor"}),t=Vp.converters.DOMString(t),r=Vp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Vp.brandCheck(this,e),this.#e.wasClean}get code(){return Vp.brandCheck(this,e),this.#e.code}get reason(){return Vp.brandCheck(this,e),this.#e.reason}},NIt=class e extends Event{#e;constructor(t,r){Vp.argumentLengthCheck(arguments,1,{header:"ErrorEvent constructor"}),super(t,r),t=Vp.converters.DOMString(t),r=Vp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Vp.brandCheck(this,e),this.#e.message}get filename(){return Vp.brandCheck(this,e),this.#e.filename}get lineno(){return Vp.brandCheck(this,e),this.#e.lineno}get colno(){return Vp.brandCheck(this,e),this.#e.colno}get error(){return Vp.brandCheck(this,e),this.#e.error}};Object.defineProperties(TIt.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:$9,origin:$9,lastEventId:$9,source:$9,ports:$9,initMessageEvent:$9});Object.defineProperties(RIt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:$9,code:$9,wasClean:$9});Object.defineProperties(NIt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:$9,filename:$9,lineno:$9,colno:$9,error:$9});Vp.converters.MessagePort=Vp.interfaceConverter(Msa);Vp.converters["sequence"]=Vp.sequenceConverter(Vp.converters.MessagePort);var x_r=[{key:"bubbles",converter:Vp.converters.boolean,defaultValue:!1},{key:"cancelable",converter:Vp.converters.boolean,defaultValue:!1},{key:"composed",converter:Vp.converters.boolean,defaultValue:!1}];Vp.converters.MessageEventInit=Vp.dictionaryConverter([...x_r,{key:"data",converter:Vp.converters.any,defaultValue:null},{key:"origin",converter:Vp.converters.USVString,defaultValue:""},{key:"lastEventId",converter:Vp.converters.DOMString,defaultValue:""},{key:"source",converter:Vp.nullableConverter(Vp.converters.MessagePort),defaultValue:null},{key:"ports",converter:Vp.converters["sequence"],get defaultValue(){return[]}}]);Vp.converters.CloseEventInit=Vp.dictionaryConverter([...x_r,{key:"wasClean",converter:Vp.converters.boolean,defaultValue:!1},{key:"code",converter:Vp.converters["unsigned short"],defaultValue:0},{key:"reason",converter:Vp.converters.USVString,defaultValue:""}]);Vp.converters.ErrorEventInit=Vp.dictionaryConverter([...x_r,{key:"message",converter:Vp.converters.DOMString,defaultValue:""},{key:"filename",converter:Vp.converters.USVString,defaultValue:""},{key:"lineno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"colno",converter:Vp.converters["unsigned long"],defaultValue:0},{key:"error",converter:Vp.converters.any}]);T8n.exports={MessageEvent:TIt,CloseEvent:RIt,ErrorEvent:NIt}});var xIt=H((Tsu,D8n)=>{"use strict";var{kReadyState:DIt,kController:Hsa,kResponse:Ysa,kBinaryType:Qsa,kWebSocketURL:Xsa}=jHe(),{states:kIt,opcodes:R8n}=awe(),{MessageEvent:Jsa,ErrorEvent:Usa}=G_r();function Ksa(e){return e[DIt]===kIt.OPEN}function jsa(e){return e[DIt]===kIt.CLOSING}function zsa(e){return e[DIt]===kIt.CLOSED}function F_r(e,t,r=Event,n){let a=new r(e,n);t.dispatchEvent(a)}function qsa(e,t,r){if(e[DIt]!==kIt.OPEN)return;let n;if(t===R8n.TEXT)try{n=new TextDecoder("utf-8",{fatal:!0}).decode(r)}catch{N8n(e,"Received invalid UTF-8 in text frame.");return}else t===R8n.BINARY&&(e[Qsa]==="blob"?n=new Blob([r]):n=new Uint8Array(r).buffer);F_r("message",e,Jsa,{origin:e[Xsa].origin,data:n})}function $sa(e){if(e.length===0)return!1;for(let t of e){let r=t.charCodeAt(0);if(r<33||r>126||t==="("||t===")"||t==="<"||t===">"||t==="@"||t===","||t===";"||t===":"||t==="\\"||t==='"'||t==="/"||t==="["||t==="]"||t==="?"||t==="="||t==="{"||t==="}"||r===32||r===9)return!1}return!0}function eoa(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function N8n(e,t){let{[Hsa]:r,[Ysa]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&F_r("error",e,Usa,{error:new Error(t)})}D8n.exports={isEstablished:Ksa,isClosing:jsa,isClosed:zsa,fireEvent:F_r,isValidSubprotocol:$sa,isValidStatusCode:eoa,failWebsocketConnection:N8n,websocketMessageReceived:qsa}});var L8n=H((Rsu,Z8n)=>{"use strict";var L_r=wt("diagnostics_channel"),{uid:toa,states:x8n}=awe(),{kReadyState:G8n,kSentClose:k8n,kByteParser:F8n,kReceivedClose:roa}=jHe(),{fireEvent:noa,failWebsocketConnection:qIe}=xIt(),{CloseEvent:ioa}=G_r(),{makeRequest:soa}=QHe(),{fetching:ooa}=fIt(),{Headers:aoa}=UIe(),{getGlobalDispatcher:coa}=KBe(),{kHeadersList:loa}=GE(),G$={};G$.open=L_r.channel("undici:websocket:open");G$.close=L_r.channel("undici:websocket:close");G$.socketError=L_r.channel("undici:websocket:socket_error");var Z_r;try{Z_r=wt("crypto")}catch{}function uoa(e,t,r,n,a){let o=e;o.protocol=e.protocol==="ws:"?"http:":"https:";let l=soa({urlList:[o],serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(a.headers){let C=new aoa(a.headers)[loa];l.headersList=C}let A=Z_r.randomBytes(16).toString("base64");l.headersList.append("sec-websocket-key",A),l.headersList.append("sec-websocket-version","13");for(let C of t)l.headersList.append("sec-websocket-protocol",C);let f="";return ooa({request:l,useParallelQueue:!0,dispatcher:a.dispatcher??coa(),processResponse(C){if(C.type==="error"||C.status!==101){qIe(r,"Received network error or non-101 status code.");return}if(t.length!==0&&!C.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Server did not respond with sent protocols.");return}if(C.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){qIe(r,'Server did not set Upgrade header to "websocket".');return}if(C.headersList.get("Connection")?.toLowerCase()!=="upgrade"){qIe(r,'Server did not set Connection header to "upgrade".');return}let b=C.headersList.get("Sec-WebSocket-Accept"),E=Z_r.createHash("sha1").update(A+toa).digest("base64");if(b!==E){qIe(r,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let N=C.headersList.get("Sec-WebSocket-Extensions");if(N!==null&&N!==f){qIe(r,"Received different permessage-deflate than the one set.");return}let B=C.headersList.get("Sec-WebSocket-Protocol");if(B!==null&&B!==l.headersList.get("Sec-WebSocket-Protocol")){qIe(r,"Protocol was not set in the opening handshake.");return}C.socket.on("data",goa),C.socket.on("close",Aoa),C.socket.on("error",doa),G$.open.hasSubscribers&&G$.open.publish({address:C.socket.address(),protocol:B,extensions:N}),n(C)}})}function goa(e){this.ws[F8n].write(e)||this.pause()}function Aoa(){let{ws:e}=this,t=e[k8n]&&e[roa],r=1005,n="",a=e[F8n].closingInfo;a?(r=a.code??1005,n=a.reason):e[k8n]||(r=1006),e[G8n]=x8n.CLOSED,noa("close",e,ioa,{wasClean:t,code:r,reason:n}),G$.close.hasSubscribers&&G$.close.publish({websocket:e,code:r,reason:n})}function doa(e){let{ws:t}=this;t[G8n]=x8n.CLOSING,G$.socketError.hasSubscribers&&G$.socketError.publish(e),this.destroy()}Z8n.exports={establishWebSocketConnection:uoa}});var P_r=H((Nsu,P8n)=>{"use strict";var{maxUnsigned16Bit:poa}=awe(),V8n;try{V8n=wt("crypto")}catch{}var V_r=class{constructor(t){this.frameData=t,this.maskKey=V8n.randomBytes(4)}createFrame(t){let r=this.frameData?.byteLength??0,n=r,a=6;r>poa?(a+=8,n=127):r>125&&(a+=2,n=126);let o=Buffer.allocUnsafe(r+a);o[0]=o[1]=0,o[0]|=128,o[0]=(o[0]&240)+t;o[a-4]=this.maskKey[0],o[a-3]=this.maskKey[1],o[a-2]=this.maskKey[2],o[a-1]=this.maskKey[3],o[1]=n,n===126?o.writeUInt16BE(r,2):n===127&&(o[2]=o[3]=0,o.writeUIntBE(r,4,6)),o[1]|=128;for(let l=0;l{"use strict";var{Writable:foa}=wt("stream"),Q8n=wt("diagnostics_channel"),{parserStates:BM,opcodes:wM,states:Ioa,emptyBuffer:hoa}=awe(),{kReadyState:moa,kSentClose:W8n,kResponse:O8n,kReceivedClose:M8n}=jHe(),{isValidStatusCode:H8n,failWebsocketConnection:zHe,websocketMessageReceived:Coa}=xIt(),{WebsocketFrameSend:Y8n}=P_r(),cwe={};cwe.ping=Q8n.channel("undici:websocket:ping");cwe.pong=Q8n.channel("undici:websocket:pong");var W_r=class extends foa{#e=[];#t=0;#n=BM.INFO;#r={};#i=[];constructor(t){super(),this.ws=t}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.run(n)}run(t){for(;;){if(this.#n===BM.INFO){if(this.#t<2)return t();let r=this.consume(2);if(this.#r.fin=(r[0]&128)!==0,this.#r.opcode=r[0]&15,this.#r.originalOpcode??=this.#r.opcode,this.#r.fragmented=!this.#r.fin&&this.#r.opcode!==wM.CONTINUATION,this.#r.fragmented&&this.#r.opcode!==wM.BINARY&&this.#r.opcode!==wM.TEXT){zHe(this.ws,"Invalid frame type was fragmented.");return}let n=r[1]&127;if(n<=125?(this.#r.payloadLength=n,this.#n=BM.READ_DATA):n===126?this.#n=BM.PAYLOADLENGTH_16:n===127&&(this.#n=BM.PAYLOADLENGTH_64),this.#r.fragmented&&n>125){zHe(this.ws,"Fragmented frame exceeded 125 bytes.");return}else if((this.#r.opcode===wM.PING||this.#r.opcode===wM.PONG||this.#r.opcode===wM.CLOSE)&&n>125){zHe(this.ws,"Payload length for control frame exceeded 125 bytes.");return}else if(this.#r.opcode===wM.CLOSE){if(n===1){zHe(this.ws,"Received close frame with a 1-byte body.");return}let a=this.consume(n);if(this.#r.closeInfo=this.parseCloseBody(!1,a),!this.ws[W8n]){let o=Buffer.allocUnsafe(2);o.writeUInt16BE(this.#r.closeInfo.code,0);let l=new Y8n(o);this.ws[O8n].socket.write(l.createFrame(wM.CLOSE),A=>{A||(this.ws[W8n]=!0)})}this.ws[moa]=Ioa.CLOSING,this.ws[M8n]=!0,this.end();return}else if(this.#r.opcode===wM.PING){let a=this.consume(n);if(!this.ws[M8n]){let o=new Y8n(a);this.ws[O8n].socket.write(o.createFrame(wM.PONG)),cwe.ping.hasSubscribers&&cwe.ping.publish({payload:a})}if(this.#n=BM.INFO,this.#t>0)continue;t();return}else if(this.#r.opcode===wM.PONG){let a=this.consume(n);if(cwe.pong.hasSubscribers&&cwe.pong.publish({payload:a}),this.#t>0)continue;t();return}}else if(this.#n===BM.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#r.payloadLength=r.readUInt16BE(0),this.#n=BM.READ_DATA}else if(this.#n===BM.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){zHe(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#r.payloadLength=(n<<8)+a,this.#n=BM.READ_DATA}else if(this.#n===BM.READ_DATA){if(this.#t=this.#r.payloadLength){let r=this.consume(this.#r.payloadLength);if(this.#i.push(r),!this.#r.fragmented||this.#r.fin&&this.#r.opcode===wM.CONTINUATION){let n=Buffer.concat(this.#i);Coa(this.ws,this.#r.originalOpcode,n),this.#r={},this.#i.length=0}this.#n=BM.INFO}}if(!(this.#t>0)){t();break}}}consume(t){if(t>this.#t)return null;if(t===0)return hoa;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t,r){let n;if(r.length>=2&&(n=r.readUInt16BE(0)),t)return H8n(n)?{code:n}:null;let a=r.subarray(2);if(a[0]===239&&a[1]===187&&a[2]===191&&(a=a.subarray(3)),n!==void 0&&!H8n(n))return null;try{a=new TextDecoder("utf-8",{fatal:!0}).decode(a)}catch{return null}return{code:n,reason:a}}get closingInfo(){return this.#r.closeInfo}};X8n.exports={ByteParser:W_r}});var tjn=H((ksu,ejn)=>{"use strict";var{webidl:fI}=xZ(),{DOMException:tae}=Xoe(),{URLSerializer:_oa}=wX(),{getGlobalOrigin:yoa}=wBe(),{staticPropertyDescriptors:rae,states:lwe,opcodes:qHe,emptyBuffer:boa}=awe(),{kWebSocketURL:U8n,kReadyState:F$,kController:Eoa,kBinaryType:GIt,kResponse:FIt,kSentClose:Soa,kByteParser:voa}=jHe(),{isEstablished:K8n,isClosing:j8n,isValidSubprotocol:Boa,failWebsocketConnection:woa,fireEvent:Toa}=xIt(),{establishWebSocketConnection:Roa}=L8n(),{WebsocketFrameSend:$He}=P_r(),{ByteParser:Noa}=J8n(),{kEnumerableProperty:TM,isBlobLike:q8n}=zC(),{getGlobalDispatcher:Doa}=KBe(),{types:$8n}=wt("util"),z8n=!1,zW=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";constructor(t,r=[]){super(),fI.argumentLengthCheck(arguments,1,{header:"WebSocket constructor"}),z8n||(z8n=!0,process.emitWarning("WebSockets are experimental, expect them to change at any time.",{code:"UNDICI-WS"}));let n=fI.converters["DOMString or sequence or WebSocketInit"](r);t=fI.converters.USVString(t),r=n.protocols;let a=yoa(),o;try{o=new URL(t,a)}catch(l){throw new tae(l,"SyntaxError")}if(o.protocol==="http:"?o.protocol="ws:":o.protocol==="https:"&&(o.protocol="wss:"),o.protocol!=="ws:"&&o.protocol!=="wss:")throw new tae(`Expected a ws: or wss: protocol, got ${o.protocol}`,"SyntaxError");if(o.hash||o.href.endsWith("#"))throw new tae("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(l=>l.toLowerCase())).size)throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(l=>Boa(l)))throw new tae("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[U8n]=new URL(o.href),this[Eoa]=Roa(o,r,this,l=>this.#i(l),n),this[F$]=e.CONNECTING,this[GIt]="blob"}close(t=void 0,r=void 0){if(fI.brandCheck(this,e),t!==void 0&&(t=fI.converters["unsigned short"](t,{clamp:!0})),r!==void 0&&(r=fI.converters.USVString(r)),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new tae("invalid code","InvalidAccessError");let n=0;if(r!==void 0&&(n=Buffer.byteLength(r),n>123))throw new tae(`Reason must be less than 123 bytes; received ${n}`,"SyntaxError");if(!(this[F$]===e.CLOSING||this[F$]===e.CLOSED))if(!K8n(this))woa(this,"Connection was closed before it was established."),this[F$]=e.CLOSING;else if(j8n(this))this[F$]=e.CLOSING;else{let a=new $He;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=boa,this[FIt].socket.write(a.createFrame(qHe.CLOSE),l=>{l||(this[Soa]=!0)}),this[F$]=lwe.CLOSING}}send(t){if(fI.brandCheck(this,e),fI.argumentLengthCheck(arguments,1,{header:"WebSocket.send"}),t=fI.converters.WebSocketSendData(t),this[F$]===e.CONNECTING)throw new tae("Sent before connected.","InvalidStateError");if(!K8n(this)||j8n(this))return;let r=this[FIt].socket;if(typeof t=="string"){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.TEXT);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if($8n.isArrayBuffer(t)){let n=Buffer.from(t),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(ArrayBuffer.isView(t)){let n=Buffer.from(t,t.byteOffset,t.byteLength),o=new $He(n).createFrame(qHe.BINARY);this.#t+=n.byteLength,r.write(o,()=>{this.#t-=n.byteLength})}else if(q8n(t)){let n=new $He;t.arrayBuffer().then(a=>{let o=Buffer.from(a);n.frameData=o;let l=n.createFrame(qHe.BINARY);this.#t+=o.byteLength,r.write(l,()=>{this.#t-=o.byteLength})})}}get readyState(){return fI.brandCheck(this,e),this[F$]}get bufferedAmount(){return fI.brandCheck(this,e),this.#t}get url(){return fI.brandCheck(this,e),_oa(this[U8n])}get extensions(){return fI.brandCheck(this,e),this.#r}get protocol(){return fI.brandCheck(this,e),this.#n}get onopen(){return fI.brandCheck(this,e),this.#e.open}set onopen(t){fI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return fI.brandCheck(this,e),this.#e.error}set onerror(t){fI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return fI.brandCheck(this,e),this.#e.close}set onclose(t){fI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return fI.brandCheck(this,e),this.#e.message}set onmessage(t){fI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return fI.brandCheck(this,e),this[GIt]}set binaryType(t){fI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[GIt]="blob":this[GIt]=t}#i(t){this[FIt]=t;let r=new Noa(this);r.on("drain",function(){this.ws[FIt].socket.resume()}),t.socket.ws=this,this[voa]=r,this[F$]=lwe.OPEN;let n=t.headersList.get("sec-websocket-extensions");n!==null&&(this.#r=n);let a=t.headersList.get("sec-websocket-protocol");a!==null&&(this.#n=a),Toa("open",this)}};zW.CONNECTING=zW.prototype.CONNECTING=lwe.CONNECTING;zW.OPEN=zW.prototype.OPEN=lwe.OPEN;zW.CLOSING=zW.prototype.CLOSING=lwe.CLOSING;zW.CLOSED=zW.prototype.CLOSED=lwe.CLOSED;Object.defineProperties(zW.prototype,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae,url:TM,readyState:TM,bufferedAmount:TM,onopen:TM,onerror:TM,onclose:TM,close:TM,onmessage:TM,binaryType:TM,send:TM,extensions:TM,protocol:TM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(zW,{CONNECTING:rae,OPEN:rae,CLOSING:rae,CLOSED:rae});fI.converters["sequence"]=fI.sequenceConverter(fI.converters.DOMString);fI.converters["DOMString or sequence"]=function(e){return fI.util.Type(e)==="Object"&&Symbol.iterator in e?fI.converters["sequence"](e):fI.converters.DOMString(e)};fI.converters.WebSocketInit=fI.dictionaryConverter([{key:"protocols",converter:fI.converters["DOMString or sequence"],get defaultValue(){return[]}},{key:"dispatcher",converter:e=>e,get defaultValue(){return Doa()}},{key:"headers",converter:fI.nullableConverter(fI.converters.HeadersInit)}]);fI.converters["DOMString or sequence or WebSocketInit"]=function(e){return fI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?fI.converters.WebSocketInit(e):{protocols:fI.converters["DOMString or sequence"](e)}};fI.converters.WebSocketSendData=function(e){if(fI.util.Type(e)==="Object"){if(q8n(e))return fI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||$8n.isAnyArrayBuffer(e))return fI.converters.BufferSource(e)}return fI.converters.USVString(e)};ejn.exports={WebSocket:zW}});var sjn=H((xsu,Eh)=>{"use strict";var koa=kHe(),rjn=Ift(),njn=Ub(),xoa=WBe(),Goa=IJn(),Foa=ZHe(),$Ie=zC(),{InvalidArgumentError:ZIt}=njn,uwe=aUn(),Zoa=SHe(),Loa=jCr(),Voa=HUn(),Poa=$Cr(),Woa=VCr(),Ooa=KUn(),Moa=eKn(),{getGlobalDispatcher:ijn,setGlobalDispatcher:Hoa}=KBe(),Yoa=oKn(),Qoa=Kmr(),Xoa=_ft(),O_r;try{wt("crypto"),O_r=!0}catch{O_r=!1}Object.assign(rjn.prototype,uwe);Eh.exports.Dispatcher=rjn;Eh.exports.Client=koa;Eh.exports.Pool=xoa;Eh.exports.BalancedPool=Goa;Eh.exports.Agent=Foa;Eh.exports.ProxyAgent=Ooa;Eh.exports.RetryHandler=Moa;Eh.exports.DecoratorHandler=Yoa;Eh.exports.RedirectHandler=Qoa;Eh.exports.createRedirectInterceptor=Xoa;Eh.exports.buildConnector=Zoa;Eh.exports.errors=njn;function eYe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new ZIt("invalid url");if(r!=null&&typeof r!="object")throw new ZIt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new ZIt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL($Ie.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=$Ie.parseURL(t);let{agent:a,dispatcher:o=ijn()}=r;if(a)throw new ZIt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Eh.exports.setGlobalDispatcher=Hoa;Eh.exports.getGlobalDispatcher=ijn;if($Ie.nodeMajor>16||$Ie.nodeMajor===16&&$Ie.nodeMinor>=8){let e=null;Eh.exports.fetch=async function(l){e||(e=fIt().fetch);try{return await e(...arguments)}catch(A){throw typeof A=="object"&&Error.captureStackTrace(A,this),A}},Eh.exports.Headers=UIe().Headers,Eh.exports.Response=nIt().Response,Eh.exports.Request=QHe().Request,Eh.exports.FormData=dft().FormData,Eh.exports.File=gft().File,Eh.exports.FileReader=r8n().FileReader;let{setGlobalOrigin:t,getGlobalOrigin:r}=wBe();Eh.exports.setGlobalOrigin=t,Eh.exports.getGlobalOrigin=r;let{CacheStorage:n}=p8n(),{kConstruct:a}=CIt();Eh.exports.caches=new n(a)}if($Ie.nodeMajor>=16){let{deleteCookie:e,getCookies:t,getSetCookies:r,setCookie:n}=v8n();Eh.exports.deleteCookie=e,Eh.exports.getCookies=t,Eh.exports.getSetCookies=r,Eh.exports.setCookie=n;let{parseMIMEType:a,serializeAMimeType:o}=wX();Eh.exports.parseMIMEType=a,Eh.exports.serializeAMimeType=o}if($Ie.nodeMajor>=18&&O_r){let{WebSocket:e}=tjn();Eh.exports.WebSocket=e}Eh.exports.request=eYe(uwe.request);Eh.exports.stream=eYe(uwe.stream);Eh.exports.pipeline=eYe(uwe.pipeline);Eh.exports.connect=eYe(uwe.connect);Eh.exports.upgrade=eYe(uwe.upgrade);Eh.exports.MockClient=Loa;Eh.exports.MockPool=Poa;Eh.exports.MockAgent=Voa;Eh.exports.mockErrors=Woa});var ajn=H(ZE=>{"use strict";var Joa=ZE&&ZE.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uoa=ZE&&ZE.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIt=ZE&&ZE.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Joa(t,e,r);return Uoa(t,e),t},ew=ZE&&ZE.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(ZE,"__esModule",{value:!0});ZE.HttpClient=ZE.isHttps=ZE.HttpClientResponse=ZE.HttpClientError=ZE.getProxyUrl=ZE.MediaTypes=ZE.Headers=ZE.HttpCodes=void 0;var M_r=OIt(wt("http")),ojn=OIt(wt("https")),H_r=OIt(IQn()),LIt=OIt(bQn()),Koa=sjn(),RM;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(RM||(ZE.HttpCodes=RM={}));var bG;(function(e){e.Accept="accept",e.ContentType="content-type"})(bG||(ZE.Headers=bG={}));var Z$;(function(e){e.ApplicationJson="application/json"})(Z$||(ZE.MediaTypes=Z$={}));function joa(e){let t=H_r.getProxyUrl(new URL(e));return t?t.href:""}ZE.getProxyUrl=joa;var zoa=[RM.MovedPermanently,RM.ResourceMoved,RM.SeeOther,RM.TemporaryRedirect,RM.PermanentRedirect],qoa=[RM.BadGateway,RM.ServiceUnavailable,RM.GatewayTimeout],$oa=["OPTIONS","GET","DELETE","HEAD"],eaa=10,taa=5,PIt=class e extends Error{constructor(t,r){super(t),this.name="HttpClientError",this.statusCode=r,Object.setPrototypeOf(this,e.prototype)}};ZE.HttpClientError=PIt;var WIt=class{constructor(t){this.message=t}readBody(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=Buffer.alloc(0);this.message.on("data",n=>{r=Buffer.concat([r,n])}),this.message.on("end",()=>{t(r.toString())})}))})}readBodyBuffer(){return ew(this,void 0,void 0,function*(){return new Promise(t=>ew(this,void 0,void 0,function*(){let r=[];this.message.on("data",n=>{r.push(n)}),this.message.on("end",()=>{t(Buffer.concat(r))})}))})}};ZE.HttpClientResponse=WIt;function raa(e){return new URL(e).protocol==="https:"}ZE.isHttps=raa;var Y_r=class{constructor(t,r,n){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=t,this.handlers=r||[],this.requestOptions=n,n&&(n.ignoreSslError!=null&&(this._ignoreSslError=n.ignoreSslError),this._socketTimeout=n.socketTimeout,n.allowRedirects!=null&&(this._allowRedirects=n.allowRedirects),n.allowRedirectDowngrade!=null&&(this._allowRedirectDowngrade=n.allowRedirectDowngrade),n.maxRedirects!=null&&(this._maxRedirects=Math.max(n.maxRedirects,0)),n.keepAlive!=null&&(this._keepAlive=n.keepAlive),n.allowRetries!=null&&(this._allowRetries=n.allowRetries),n.maxRetries!=null&&(this._maxRetries=n.maxRetries))}options(t,r){return ew(this,void 0,void 0,function*(){return this.request("OPTIONS",t,null,r||{})})}get(t,r){return ew(this,void 0,void 0,function*(){return this.request("GET",t,null,r||{})})}del(t,r){return ew(this,void 0,void 0,function*(){return this.request("DELETE",t,null,r||{})})}post(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("POST",t,r,n||{})})}patch(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PATCH",t,r,n||{})})}put(t,r,n){return ew(this,void 0,void 0,function*(){return this.request("PUT",t,r,n||{})})}head(t,r){return ew(this,void 0,void 0,function*(){return this.request("HEAD",t,null,r||{})})}sendStream(t,r,n,a){return ew(this,void 0,void 0,function*(){return this.request(t,r,n,a)})}getJson(t,r={}){return ew(this,void 0,void 0,function*(){r[bG.Accept]=this._getExistingOrDefaultHeader(r,bG.Accept,Z$.ApplicationJson);let n=yield this.get(t,r);return this._processResponse(n,this.requestOptions)})}postJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.post(t,a,n);return this._processResponse(o,this.requestOptions)})}putJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.put(t,a,n);return this._processResponse(o,this.requestOptions)})}patchJson(t,r,n={}){return ew(this,void 0,void 0,function*(){let a=JSON.stringify(r,null,2);n[bG.Accept]=this._getExistingOrDefaultHeader(n,bG.Accept,Z$.ApplicationJson),n[bG.ContentType]=this._getExistingOrDefaultHeader(n,bG.ContentType,Z$.ApplicationJson);let o=yield this.patch(t,a,n);return this._processResponse(o,this.requestOptions)})}request(t,r,n,a){return ew(this,void 0,void 0,function*(){if(this._disposed)throw new Error("Client has already been disposed.");let o=new URL(r),l=this._prepareRequest(t,o,a),A=this._allowRetries&&$oa.includes(t)?this._maxRetries+1:1,f=0,I;do{if(I=yield this.requestRaw(l,n),I&&I.message&&I.message.statusCode===RM.Unauthorized){let b;for(let E of this.handlers)if(E.canHandleAuthentication(I)){b=E;break}return b?b.handleAuthentication(this,l,n):I}let C=this._maxRedirects;for(;I.message.statusCode&&zoa.includes(I.message.statusCode)&&this._allowRedirects&&C>0;){let b=I.message.headers.location;if(!b)break;let E=new URL(b);if(o.protocol==="https:"&&o.protocol!==E.protocol&&!this._allowRedirectDowngrade)throw new Error("Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.");if(yield I.readBody(),E.hostname!==o.hostname)for(let N in a)N.toLowerCase()==="authorization"&&delete a[N];l=this._prepareRequest(t,E,a),I=yield this.requestRaw(l,n),C--}if(!I.message.statusCode||!qoa.includes(I.message.statusCode))return I;f+=1,f{function o(l,A){l?a(l):A?n(A):a(new Error("Unknown error"))}this.requestRawWithCallback(t,r,o)})})}requestRawWithCallback(t,r,n){typeof r=="string"&&(t.options.headers||(t.options.headers={}),t.options.headers["Content-Length"]=Buffer.byteLength(r,"utf8"));let a=!1;function o(f,I){a||(a=!0,n(f,I))}let l=t.httpModule.request(t.options,f=>{let I=new WIt(f);o(void 0,I)}),A;l.on("socket",f=>{A=f}),l.setTimeout(this._socketTimeout||3*6e4,()=>{A&&A.end(),o(new Error(`Request timeout: ${t.options.path}`))}),l.on("error",function(f){o(f)}),r&&typeof r=="string"&&l.write(r,"utf8"),r&&typeof r!="string"?(r.on("close",function(){l.end()}),r.pipe(l)):l.end()}getAgent(t){let r=new URL(t);return this._getAgent(r)}getAgentDispatcher(t){let r=new URL(t),n=H_r.getProxyUrl(r);if(n&&n.hostname)return this._getProxyAgentDispatcher(r,n)}_prepareRequest(t,r,n){let a={};a.parsedUrl=r;let o=a.parsedUrl.protocol==="https:";a.httpModule=o?ojn:M_r;let l=o?443:80;if(a.options={},a.options.host=a.parsedUrl.hostname,a.options.port=a.parsedUrl.port?parseInt(a.parsedUrl.port):l,a.options.path=(a.parsedUrl.pathname||"")+(a.parsedUrl.search||""),a.options.method=t,a.options.headers=this._mergeHeaders(n),this.userAgent!=null&&(a.options.headers["user-agent"]=this.userAgent),a.options.agent=this._getAgent(a.parsedUrl),this.handlers)for(let A of this.handlers)A.prepareRequest(a.options);return a}_mergeHeaders(t){return this.requestOptions&&this.requestOptions.headers?Object.assign({},VIt(this.requestOptions.headers),VIt(t||{})):VIt(t||{})}_getExistingOrDefaultHeader(t,r,n){let a;return this.requestOptions&&this.requestOptions.headers&&(a=VIt(this.requestOptions.headers)[r]),t[r]||a||n}_getAgent(t){let r,n=H_r.getProxyUrl(t),a=n&&n.hostname;if(this._keepAlive&&a&&(r=this._proxyAgent),a||(r=this._agent),r)return r;let o=t.protocol==="https:",l=100;if(this.requestOptions&&(l=this.requestOptions.maxSockets||M_r.globalAgent.maxSockets),n&&n.hostname){let A={maxSockets:l,keepAlive:this._keepAlive,proxy:Object.assign(Object.assign({},(n.username||n.password)&&{proxyAuth:`${n.username}:${n.password}`}),{host:n.hostname,port:n.port})},f,I=n.protocol==="https:";o?f=I?LIt.httpsOverHttps:LIt.httpsOverHttp:f=I?LIt.httpOverHttps:LIt.httpOverHttp,r=f(A),this._proxyAgent=r}if(!r){let A={keepAlive:this._keepAlive,maxSockets:l};r=o?new ojn.Agent(A):new M_r.Agent(A),this._agent=r}return o&&this._ignoreSslError&&(r.options=Object.assign(r.options||{},{rejectUnauthorized:!1})),r}_getProxyAgentDispatcher(t,r){let n;if(this._keepAlive&&(n=this._proxyAgentDispatcher),n)return n;let a=t.protocol==="https:";return n=new Koa.ProxyAgent(Object.assign({uri:r.href,pipelining:this._keepAlive?1:0},(r.username||r.password)&&{token:`Basic ${Buffer.from(`${r.username}:${r.password}`).toString("base64")}`})),this._proxyAgentDispatcher=n,a&&this._ignoreSslError&&(n.options=Object.assign(n.options.requestTls||{},{rejectUnauthorized:!1})),n}_performExponentialBackoff(t){return ew(this,void 0,void 0,function*(){t=Math.min(eaa,t);let r=taa*Math.pow(2,t);return new Promise(n=>setTimeout(()=>n(),r))})}_processResponse(t,r){return ew(this,void 0,void 0,function*(){return new Promise((n,a)=>ew(this,void 0,void 0,function*(){let o=t.message.statusCode||0,l={statusCode:o,result:null,headers:{}};o===RM.NotFound&&n(l);function A(C,b){if(typeof b=="string"){let E=new Date(b);if(!isNaN(E.valueOf()))return E}return b}let f,I;try{I=yield t.readBody(),I&&I.length>0&&(r&&r.deserializeDates?f=JSON.parse(I,A):f=JSON.parse(I),l.result=f),l.headers=t.message.headers}catch{}if(o>299){let C;f&&f.message?C=f.message:I&&I.length>0?C=I:C=`Failed request: (${o})`;let b=new PIt(C,o);b.result=l.result,a(b)}else n(l)}))})}};ZE.HttpClient=Y_r;var VIt=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{})});var B2=H((Fsu,cjn)=>{cjn.exports={kClose:Symbol("close"),kDestroy:Symbol("destroy"),kDispatch:Symbol("dispatch"),kUrl:Symbol("url"),kWriting:Symbol("writing"),kResuming:Symbol("resuming"),kQueue:Symbol("queue"),kConnect:Symbol("connect"),kConnecting:Symbol("connecting"),kKeepAliveDefaultTimeout:Symbol("default keep alive timeout"),kKeepAliveMaxTimeout:Symbol("max keep alive timeout"),kKeepAliveTimeoutThreshold:Symbol("keep alive timeout threshold"),kKeepAliveTimeoutValue:Symbol("keep alive timeout"),kKeepAlive:Symbol("keep alive"),kHeadersTimeout:Symbol("headers timeout"),kBodyTimeout:Symbol("body timeout"),kServerName:Symbol("server name"),kLocalAddress:Symbol("local address"),kHost:Symbol("host"),kNoRef:Symbol("no ref"),kBodyUsed:Symbol("used"),kBody:Symbol("abstracted request body"),kRunning:Symbol("running"),kBlocking:Symbol("blocking"),kPending:Symbol("pending"),kSize:Symbol("size"),kBusy:Symbol("busy"),kQueued:Symbol("queued"),kFree:Symbol("free"),kConnected:Symbol("connected"),kClosed:Symbol("closed"),kNeedDrain:Symbol("need drain"),kReset:Symbol("reset"),kDestroyed:Symbol.for("nodejs.stream.destroyed"),kResume:Symbol("resume"),kOnError:Symbol("on error"),kMaxHeadersSize:Symbol("max headers size"),kRunningIdx:Symbol("running index"),kPendingIdx:Symbol("pending index"),kError:Symbol("error"),kClients:Symbol("clients"),kClient:Symbol("client"),kParser:Symbol("parser"),kOnDestroyed:Symbol("destroy callbacks"),kPipelining:Symbol("pipelining"),kSocket:Symbol("socket"),kHostHeader:Symbol("host header"),kConnector:Symbol("connector"),kStrictContentLength:Symbol("strict content length"),kMaxRedirections:Symbol("maxRedirections"),kMaxRequests:Symbol("maxRequestsPerClient"),kProxy:Symbol("proxy agent options"),kCounter:Symbol("socket request counter"),kInterceptors:Symbol("dispatch interceptors"),kMaxResponseSize:Symbol("max response size"),kHTTP2Session:Symbol("http2Session"),kHTTP2SessionState:Symbol("http2Session state"),kRetryHandlerDefaultRetry:Symbol("retry agent default retry"),kConstruct:Symbol("constructable"),kListeners:Symbol("listeners"),kHTTPContext:Symbol("http context"),kMaxConcurrentStreams:Symbol("max concurrent streams"),kNoProxyAgent:Symbol("no proxy agent"),kHttpProxyAgent:Symbol("http proxy agent"),kHttpsProxyAgent:Symbol("https proxy agent")}});var Y0=H((Zsu,ljn)=>{"use strict";var RS=class extends Error{constructor(t){super(t),this.name="UndiciError",this.code="UND_ERR"}},Q_r=class extends RS{constructor(t){super(t),this.name="ConnectTimeoutError",this.message=t||"Connect Timeout Error",this.code="UND_ERR_CONNECT_TIMEOUT"}},X_r=class extends RS{constructor(t){super(t),this.name="HeadersTimeoutError",this.message=t||"Headers Timeout Error",this.code="UND_ERR_HEADERS_TIMEOUT"}},J_r=class extends RS{constructor(t){super(t),this.name="HeadersOverflowError",this.message=t||"Headers Overflow Error",this.code="UND_ERR_HEADERS_OVERFLOW"}},U_r=class extends RS{constructor(t){super(t),this.name="BodyTimeoutError",this.message=t||"Body Timeout Error",this.code="UND_ERR_BODY_TIMEOUT"}},K_r=class extends RS{constructor(t,r,n,a){super(t),this.name="ResponseStatusCodeError",this.message=t||"Response Status Code Error",this.code="UND_ERR_RESPONSE_STATUS_CODE",this.body=a,this.status=r,this.statusCode=r,this.headers=n}},j_r=class extends RS{constructor(t){super(t),this.name="InvalidArgumentError",this.message=t||"Invalid Argument Error",this.code="UND_ERR_INVALID_ARG"}},z_r=class extends RS{constructor(t){super(t),this.name="InvalidReturnValueError",this.message=t||"Invalid Return Value Error",this.code="UND_ERR_INVALID_RETURN_VALUE"}},MIt=class extends RS{constructor(t){super(t),this.name="AbortError",this.message=t||"The operation was aborted"}},q_r=class extends MIt{constructor(t){super(t),this.name="AbortError",this.message=t||"Request aborted",this.code="UND_ERR_ABORTED"}},$_r=class extends RS{constructor(t){super(t),this.name="InformationalError",this.message=t||"Request information",this.code="UND_ERR_INFO"}},e0r=class extends RS{constructor(t){super(t),this.name="RequestContentLengthMismatchError",this.message=t||"Request body length does not match content-length header",this.code="UND_ERR_REQ_CONTENT_LENGTH_MISMATCH"}},t0r=class extends RS{constructor(t){super(t),this.name="ResponseContentLengthMismatchError",this.message=t||"Response body length does not match content-length header",this.code="UND_ERR_RES_CONTENT_LENGTH_MISMATCH"}},r0r=class extends RS{constructor(t){super(t),this.name="ClientDestroyedError",this.message=t||"The client is destroyed",this.code="UND_ERR_DESTROYED"}},n0r=class extends RS{constructor(t){super(t),this.name="ClientClosedError",this.message=t||"The client is closed",this.code="UND_ERR_CLOSED"}},i0r=class extends RS{constructor(t,r){super(t),this.name="SocketError",this.message=t||"Socket error",this.code="UND_ERR_SOCKET",this.socket=r}},s0r=class extends RS{constructor(t){super(t),this.name="NotSupportedError",this.message=t||"Not supported error",this.code="UND_ERR_NOT_SUPPORTED"}},o0r=class extends RS{constructor(t){super(t),this.name="MissingUpstreamError",this.message=t||"No upstream has been added to the BalancedPool",this.code="UND_ERR_BPL_MISSING_UPSTREAM"}},a0r=class extends Error{constructor(t,r,n){super(t),this.name="HTTPParserError",this.code=r?`HPE_${r}`:void 0,this.data=n?n.toString():void 0}},c0r=class extends RS{constructor(t){super(t),this.name="ResponseExceededMaxSizeError",this.message=t||"Response content exceeded max size",this.code="UND_ERR_RES_EXCEEDED_MAX_SIZE"}},l0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="RequestRetryError",this.message=t||"Request retry error",this.code="UND_ERR_REQ_RETRY",this.statusCode=r,this.data=a,this.headers=n}},u0r=class extends RS{constructor(t,r,{headers:n,data:a}){super(t),this.name="ResponseError",this.message=t||"Response error",this.code="UND_ERR_RESPONSE",this.statusCode=r,this.data=a,this.headers=n}},g0r=class extends RS{constructor(t,r,n){super(r,{cause:t,...n??{}}),this.name="SecureProxyConnectionError",this.message=r||"Secure Proxy Connection failed",this.code="UND_ERR_PRX_TLS",this.cause=t}};ljn.exports={AbortError:MIt,HTTPParserError:a0r,UndiciError:RS,HeadersTimeoutError:X_r,HeadersOverflowError:J_r,BodyTimeoutError:U_r,RequestContentLengthMismatchError:e0r,ConnectTimeoutError:Q_r,ResponseStatusCodeError:K_r,InvalidArgumentError:j_r,InvalidReturnValueError:z_r,RequestAbortedError:q_r,ClientDestroyedError:r0r,ClientClosedError:n0r,InformationalError:$_r,SocketError:i0r,NotSupportedError:s0r,ResponseContentLengthMismatchError:t0r,BalancedPoolMissingUpstreamError:o0r,ResponseExceededMaxSizeError:c0r,RequestRetryError:l0r,ResponseError:u0r,SecureProxyConnectionError:g0r}});var YIt=H((Lsu,ujn)=>{"use strict";var HIt={},A0r=["Accept","Accept-Encoding","Accept-Language","Accept-Ranges","Access-Control-Allow-Credentials","Access-Control-Allow-Headers","Access-Control-Allow-Methods","Access-Control-Allow-Origin","Access-Control-Expose-Headers","Access-Control-Max-Age","Access-Control-Request-Headers","Access-Control-Request-Method","Age","Allow","Alt-Svc","Alt-Used","Authorization","Cache-Control","Clear-Site-Data","Connection","Content-Disposition","Content-Encoding","Content-Language","Content-Length","Content-Location","Content-Range","Content-Security-Policy","Content-Security-Policy-Report-Only","Content-Type","Cookie","Cross-Origin-Embedder-Policy","Cross-Origin-Opener-Policy","Cross-Origin-Resource-Policy","Date","Device-Memory","Downlink","ECT","ETag","Expect","Expect-CT","Expires","Forwarded","From","Host","If-Match","If-Modified-Since","If-None-Match","If-Range","If-Unmodified-Since","Keep-Alive","Last-Modified","Link","Location","Max-Forwards","Origin","Permissions-Policy","Pragma","Proxy-Authenticate","Proxy-Authorization","RTT","Range","Referer","Referrer-Policy","Refresh","Retry-After","Sec-WebSocket-Accept","Sec-WebSocket-Extensions","Sec-WebSocket-Key","Sec-WebSocket-Protocol","Sec-WebSocket-Version","Server","Server-Timing","Service-Worker-Allowed","Service-Worker-Navigation-Preload","Set-Cookie","SourceMap","Strict-Transport-Security","Supports-Loading-Mode","TE","Timing-Allow-Origin","Trailer","Transfer-Encoding","Upgrade","Upgrade-Insecure-Requests","User-Agent","Vary","Via","WWW-Authenticate","X-Content-Type-Options","X-DNS-Prefetch-Control","X-Frame-Options","X-Permitted-Cross-Domain-Policies","X-Powered-By","X-Requested-With","X-XSS-Protection"];for(let e=0;e{"use strict";var{wellknownHeaderNames:gjn,headerNameLowerCasedRecord:naa}=YIt(),d0r=class e{value=null;left=null;middle=null;right=null;code;constructor(t,r,n){if(n===void 0||n>=t.length)throw new TypeError("Unreachable");if((this.code=t.charCodeAt(n))>127)throw new TypeError("key must be ascii string");t.length!==++n?this.middle=new e(t,r,n):this.value=r}add(t,r){let n=t.length;if(n===0)throw new TypeError("Unreachable");let a=0,o=this;for(;;){let l=t.charCodeAt(a);if(l>127)throw new TypeError("key must be ascii string");if(o.code===l)if(n===++a){o.value=r;break}else if(o.middle!==null)o=o.middle;else{o.middle=new e(t,r,a);break}else if(o.code=65&&(o|=32);a!==null;){if(o===a.code){if(r===++n)return a;a=a.middle;break}a=a.code{"use strict";var tYe=wt("node:assert"),{kDestroyed:Ijn,kBodyUsed:gwe,kListeners:p0r,kBody:fjn}=B2(),{IncomingMessage:iaa}=wt("node:http"),UIt=wt("node:stream"),saa=wt("node:net"),{Blob:oaa}=wt("node:buffer"),aaa=wt("node:util"),{stringify:caa}=wt("node:querystring"),{EventEmitter:laa}=wt("node:events"),{InvalidArgumentError:eD}=Y0(),{headerNameLowerCasedRecord:uaa}=YIt(),{tree:hjn}=pjn(),[gaa,Aaa]=process.versions.node.split(".").map(e=>Number(e)),JIt=class{constructor(t){this[fjn]=t,this[gwe]=!1}async*[Symbol.asyncIterator](){tYe(!this[gwe],"disturbed"),this[gwe]=!0,yield*this[fjn]}};function daa(e){return KIt(e)?(bjn(e)===0&&e.on("data",function(){tYe(!1)}),typeof e.readableDidRead!="boolean"&&(e[gwe]=!1,laa.prototype.on.call(e,"data",function(){this[gwe]=!0})),e):e&&typeof e.pipeTo=="function"?new JIt(e):e&&typeof e!="string"&&!ArrayBuffer.isView(e)&&yjn(e)?new JIt(e):e}function paa(){}function KIt(e){return e&&typeof e=="object"&&typeof e.pipe=="function"&&typeof e.on=="function"}function mjn(e){if(e===null)return!1;if(e instanceof oaa)return!0;if(typeof e!="object")return!1;{let t=e[Symbol.toStringTag];return(t==="Blob"||t==="File")&&("stream"in e&&typeof e.stream=="function"||"arrayBuffer"in e&&typeof e.arrayBuffer=="function")}}function faa(e,t){if(e.includes("?")||e.includes("#"))throw new Error('Query params cannot be passed when url already contains "?" or "#".');let r=caa(t);return r&&(e+="?"+r),e}function Cjn(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function XIt(e){return e!=null&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&(e[4]===":"||e[4]==="s"&&e[5]===":")}function _jn(e){if(typeof e=="string"){if(e=new URL(e),!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!="object")throw new eD("Invalid URL: The URL argument must be a non-null object.");if(!(e instanceof URL)){if(e.port!=null&&e.port!==""&&Cjn(e.port)===!1)throw new eD("Invalid URL: port must be a valid integer or a string representation of an integer.");if(e.path!=null&&typeof e.path!="string")throw new eD("Invalid URL path: the path must be a string or null/undefined.");if(e.pathname!=null&&typeof e.pathname!="string")throw new eD("Invalid URL pathname: the pathname must be a string or null/undefined.");if(e.hostname!=null&&typeof e.hostname!="string")throw new eD("Invalid URL hostname: the hostname must be a string or null/undefined.");if(e.origin!=null&&typeof e.origin!="string")throw new eD("Invalid URL origin: the origin must be a string or null/undefined.");if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port!=null?e.port:e.protocol==="https:"?443:80,r=e.origin!=null?e.origin:`${e.protocol||""}//${e.hostname||""}:${t}`,n=e.path!=null?e.path:`${e.pathname||""}${e.search||""}`;return r[r.length-1]==="/"&&(r=r.slice(0,r.length-1)),n&&n[0]!=="/"&&(n=`/${n}`),new URL(`${r}${n}`)}if(!XIt(e.origin||e.protocol))throw new eD("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function Iaa(e){if(e=_jn(e),e.pathname!=="/"||e.search||e.hash)throw new eD("invalid url");return e}function haa(e){if(e[0]==="["){let r=e.indexOf("]");return tYe(r!==-1),e.substring(1,r)}let t=e.indexOf(":");return t===-1?e:e.substring(0,t)}function maa(e){if(!e)return null;tYe(typeof e=="string");let t=haa(e);return saa.isIP(t)?"":t}function Caa(e){return JSON.parse(JSON.stringify(e))}function _aa(e){return e!=null&&typeof e[Symbol.asyncIterator]=="function"}function yjn(e){return e!=null&&(typeof e[Symbol.iterator]=="function"||typeof e[Symbol.asyncIterator]=="function")}function bjn(e){if(e==null)return 0;if(KIt(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}else{if(mjn(e))return e.size!=null?e.size:null;if(vjn(e))return e.byteLength}return null}function Ejn(e){return e&&!!(e.destroyed||e[Ijn]||UIt.isDestroyed?.(e))}function yaa(e,t){e==null||!KIt(e)||Ejn(e)||(typeof e.destroy=="function"?(Object.getPrototypeOf(e).constructor===iaa&&(e.socket=null),e.destroy(t)):t&&queueMicrotask(()=>{e.emit("error",t)}),e.destroyed!==!0&&(e[Ijn]=!0))}var baa=/timeout=(\d+)/;function Eaa(e){let t=e.toString().match(baa);return t?parseInt(t[1],10)*1e3:null}function Sjn(e){return typeof e=="string"?uaa[e]??e.toLowerCase():hjn.lookup(e)??e.toString("latin1").toLowerCase()}function Saa(e){return hjn.lookup(e)??e.toString("latin1").toLowerCase()}function vaa(e,t){t===void 0&&(t={});for(let r=0;rl.toString("utf8")):o.toString("utf8")}}return"content-length"in t&&"content-disposition"in t&&(t["content-disposition"]=Buffer.from(t["content-disposition"]).toString("latin1")),t}function Baa(e){let t=e.length,r=new Array(t),n=!1,a=-1,o,l,A=0;for(let f=0;f{r.close(),r.byobRequest?.respond(0)});else{let o=Buffer.isBuffer(a)?a:Buffer.from(a);o.byteLength&&r.enqueue(new Uint8Array(o))}return r.desiredSize>0},async cancel(r){await t.return()},type:"bytes"})}function xaa(e){return e&&typeof e=="object"&&typeof e.append=="function"&&typeof e.delete=="function"&&typeof e.get=="function"&&typeof e.getAll=="function"&&typeof e.has=="function"&&typeof e.set=="function"&&e[Symbol.toStringTag]==="FormData"}function Gaa(e,t){return"addEventListener"in e?(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)):(e.addListener("abort",t),()=>e.removeListener("abort",t))}var Faa=typeof String.prototype.toWellFormed=="function",Zaa=typeof String.prototype.isWellFormed=="function";function Bjn(e){return Faa?`${e}`.toWellFormed():aaa.toUSVString(e)}function Laa(e){return Zaa?`${e}`.isWellFormed():Bjn(e)===`${e}`}function wjn(e){switch(e){case 34:case 40:case 41:case 44:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 123:case 125:return!1;default:return e>=33&&e<=126}}function Vaa(e){if(e.length===0)return!1;for(let t=0;t{"use strict";var Q0=wt("node:diagnostics_channel"),h0r=wt("node:util"),jIt=h0r.debuglog("undici"),I0r=h0r.debuglog("fetch"),ehe=h0r.debuglog("websocket"),Djn=!1,Qaa={beforeConnect:Q0.channel("undici:client:beforeConnect"),connected:Q0.channel("undici:client:connected"),connectError:Q0.channel("undici:client:connectError"),sendHeaders:Q0.channel("undici:client:sendHeaders"),create:Q0.channel("undici:request:create"),bodySent:Q0.channel("undici:request:bodySent"),headers:Q0.channel("undici:request:headers"),trailers:Q0.channel("undici:request:trailers"),error:Q0.channel("undici:request:error"),open:Q0.channel("undici:websocket:open"),close:Q0.channel("undici:websocket:close"),socketError:Q0.channel("undici:websocket:socket_error"),ping:Q0.channel("undici:websocket:ping"),pong:Q0.channel("undici:websocket:pong")};if(jIt.enabled||I0r.enabled){let e=I0r.enabled?I0r:jIt;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s using %s%s",`${o}${a?`:${a}`:""}`,n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s using %s%s errored - %s",`${o}${a?`:${a}`:""}`,n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)}),Q0.channel("undici:request:headers").subscribe(t=>{let{request:{method:r,path:n,origin:a},response:{statusCode:o}}=t;e("received response to %s %s/%s - HTTP %d",r,a,n,o)}),Q0.channel("undici:request:trailers").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("trailers received from %s %s/%s",r,a,n)}),Q0.channel("undici:request:error").subscribe(t=>{let{request:{method:r,path:n,origin:a},error:o}=t;e("request to %s %s/%s errored - %s",r,a,n,o.message)}),Djn=!0}if(ehe.enabled){if(!Djn){let e=jIt.enabled?jIt:ehe;Q0.channel("undici:client:beforeConnect").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connecting to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connected").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o}}=t;e("connected to %s%s using %s%s",o,a?`:${a}`:"",n,r)}),Q0.channel("undici:client:connectError").subscribe(t=>{let{connectParams:{version:r,protocol:n,port:a,host:o},error:l}=t;e("connection to %s%s using %s%s errored - %s",o,a?`:${a}`:"",n,r,l.message)}),Q0.channel("undici:client:sendHeaders").subscribe(t=>{let{request:{method:r,path:n,origin:a}}=t;e("sending request to %s %s/%s",r,a,n)})}Q0.channel("undici:websocket:open").subscribe(e=>{let{address:{address:t,port:r}}=e;ehe("connection opened %s%s",t,r?`:${r}`:"")}),Q0.channel("undici:websocket:close").subscribe(e=>{let{websocket:t,code:r,reason:n}=e;ehe("closed connection to %s - %s %s",t.url,r,n)}),Q0.channel("undici:websocket:socket_error").subscribe(e=>{ehe("connection errored - %s",e.message)}),Q0.channel("undici:websocket:ping").subscribe(e=>{ehe("ping received")}),Q0.channel("undici:websocket:pong").subscribe(e=>{ehe("pong received")})}kjn.exports={channels:Qaa}});var Ljn=H((Osu,Zjn)=>{"use strict";var{InvalidArgumentError:NS,NotSupportedError:Xaa}=Y0(),L$=wt("node:assert"),{isValidHTTPToken:Fjn,isValidHeaderValue:xjn,isStream:Jaa,destroy:Uaa,isBuffer:Kaa,isFormDataLike:jaa,isIterable:zaa,isBlobLike:qaa,buildURL:$aa,validateHandler:eca,getServerName:tca,normalizedMethodRecords:rca}=Em(),{channels:B8}=Awe(),{headerNameLowerCasedRecord:Gjn}=YIt(),nca=/[^\u0021-\u00ff]/,NM=Symbol("handler"),m0r=class{constructor(t,{path:r,method:n,body:a,headers:o,query:l,idempotent:A,blocking:f,upgrade:I,headersTimeout:C,bodyTimeout:b,reset:E,throwOnError:N,expectContinue:B,servername:F},Q){if(typeof r!="string")throw new NS("path must be a string");if(r[0]!=="/"&&!(r.startsWith("http://")||r.startsWith("https://"))&&n!=="CONNECT")throw new NS("path must be an absolute URL or start with a slash");if(nca.test(r))throw new NS("invalid request path");if(typeof n!="string")throw new NS("method must be a string");if(rca[n]===void 0&&!Fjn(n))throw new NS("invalid request method");if(I&&typeof I!="string")throw new NS("upgrade must be a string");if(C!=null&&(!Number.isFinite(C)||C<0))throw new NS("invalid headersTimeout");if(b!=null&&(!Number.isFinite(b)||b<0))throw new NS("invalid bodyTimeout");if(E!=null&&typeof E!="boolean")throw new NS("invalid reset");if(B!=null&&typeof B!="boolean")throw new NS("invalid expectContinue");if(this.headersTimeout=C,this.bodyTimeout=b,this.throwOnError=N===!0,this.method=n,this.abort=null,a==null)this.body=null;else if(Jaa(a)){this.body=a;let X=this.body._readableState;(!X||!X.autoDestroy)&&(this.endHandler=function(){Uaa(this)},this.body.on("end",this.endHandler)),this.errorHandler=ae=>{this.abort?this.abort(ae):this.error=ae},this.body.on("error",this.errorHandler)}else if(Kaa(a))this.body=a.byteLength?a:null;else if(ArrayBuffer.isView(a))this.body=a.buffer.byteLength?Buffer.from(a.buffer,a.byteOffset,a.byteLength):null;else if(a instanceof ArrayBuffer)this.body=a.byteLength?Buffer.from(a):null;else if(typeof a=="string")this.body=a.length?Buffer.from(a):null;else if(jaa(a)||zaa(a)||qaa(a))this.body=a;else throw new NS("body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable");if(this.completed=!1,this.aborted=!1,this.upgrade=I||null,this.path=l?$aa(r,l):r,this.origin=t,this.idempotent=A??(n==="HEAD"||n==="GET"),this.blocking=f??!1,this.reset=E??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=B??!1,Array.isArray(o)){if(o.length%2!==0)throw new NS("headers array must be even");for(let X=0;X{"use strict";var ica=wt("node:events"),qIt=class extends ica{dispatch(){throw new Error("not implemented")}close(){throw new Error("not implemented")}destroy(){throw new Error("not implemented")}compose(...t){let r=Array.isArray(t[0])?t[0]:t,n=this.dispatch.bind(this);for(let a of r)if(a!=null){if(typeof a!="function")throw new TypeError(`invalid interceptor, expected function received ${typeof a}`);if(n=a(n),n==null||typeof n!="function"||n.length!==2)throw new TypeError("invalid interceptor")}return new C0r(this,n)}},C0r=class extends qIt{#e=null;#t=null;constructor(t,r){super(),this.#e=t,this.#t=r}dispatch(...t){this.#t(...t)}close(...t){return this.#e.close(...t)}destroy(...t){return this.#e.destroy(...t)}};Vjn.exports=qIt});var Iwe=H((Hsu,Pjn)=>{"use strict";var sca=rYe(),{ClientDestroyedError:_0r,ClientClosedError:oca,InvalidArgumentError:dwe}=Y0(),{kDestroy:aca,kClose:cca,kClosed:nYe,kDestroyed:pwe,kDispatch:y0r,kInterceptors:the}=B2(),V$=Symbol("onDestroyed"),fwe=Symbol("onClosed"),$It=Symbol("Intercepted Dispatch"),b0r=class extends sca{constructor(){super(),this[pwe]=!1,this[V$]=null,this[nYe]=!1,this[fwe]=[]}get destroyed(){return this[pwe]}get closed(){return this[nYe]}get interceptors(){return this[the]}set interceptors(t){if(t){for(let r=t.length-1;r>=0;r--)if(typeof this[the][r]!="function")throw new dwe("interceptor must be an function")}this[the]=t}close(t){if(t===void 0)return new Promise((n,a)=>{this.close((o,l)=>o?a(o):n(l))});if(typeof t!="function")throw new dwe("invalid callback");if(this[pwe]){queueMicrotask(()=>t(new _0r,null));return}if(this[nYe]){this[fwe]?this[fwe].push(t):queueMicrotask(()=>t(null,null));return}this[nYe]=!0,this[fwe].push(t);let r=()=>{let n=this[fwe];this[fwe]=null;for(let a=0;athis.destroy()).then(()=>{queueMicrotask(r)})}destroy(t,r){if(typeof t=="function"&&(r=t,t=null),r===void 0)return new Promise((a,o)=>{this.destroy(t,(l,A)=>l?o(l):a(A))});if(typeof r!="function")throw new dwe("invalid callback");if(this[pwe]){this[V$]?this[V$].push(r):queueMicrotask(()=>r(null,null));return}t||(t=new _0r),this[pwe]=!0,this[V$]=this[V$]||[],this[V$].push(r);let n=()=>{let a=this[V$];this[V$]=null;for(let o=0;o{queueMicrotask(n)})}[$It](t,r){if(!this[the]||this[the].length===0)return this[$It]=this[y0r],this[y0r](t,r);let n=this[y0r].bind(this);for(let a=this[the].length-1;a>=0;a--)n=this[the][a](n);return this[$It]=n,n(t,r)}dispatch(t,r){if(!r||typeof r!="object")throw new dwe("handler must be an object");try{if(!t||typeof t!="object")throw new dwe("opts must be an object.");if(this[pwe]||this[V$])throw new _0r;if(this[nYe])throw new oca;return this[$It](t,r)}catch(n){if(typeof r.onError!="function")throw new dwe("invalid onError method");return r.onError(n),!1}}};Pjn.exports=b0r});var R0r=H((Ysu,Hjn)=>{"use strict";var hwe=0,E0r=1e3,S0r=(E0r>>1)-1,P$,v0r=Symbol("kFastTimer"),W$=[],B0r=-2,w0r=-1,Ojn=0,Wjn=1;function T0r(){hwe+=S0r;let e=0,t=W$.length;for(;e=r._idleStart+r._idleTimeout&&(r._state=w0r,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===w0r?(r._state=B0r,--t!==0&&(W$[e]=W$[t])):++e}W$.length=t,W$.length!==0&&Mjn()}function Mjn(){P$?P$.refresh():(clearTimeout(P$),P$=setTimeout(T0r,S0r),P$.unref&&P$.unref())}var eht=class{[v0r]=!0;_state=B0r;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(t,r,n){this._onTimeout=t,this._idleTimeout=r,this._timerArg=n,this.refresh()}refresh(){this._state===B0r&&W$.push(this),(!P$||W$.length===1)&&Mjn(),this._state=Ojn}clear(){this._state=w0r,this._idleStart=-1}};Hjn.exports={setTimeout(e,t,r){return t<=E0r?setTimeout(e,t,r):new eht(e,t,r)},clearTimeout(e){e[v0r]?e.clear():clearTimeout(e)},setFastTimeout(e,t,r){return new eht(e,t,r)},clearFastTimeout(e){e.clear()},now(){return hwe},tick(e=0){hwe+=e-E0r+1,T0r(),T0r()},reset(){hwe=0,W$.length=0,clearTimeout(P$),P$=null},kFastTimer:v0r}});var iYe=H((Jsu,Ujn)=>{"use strict";var lca=wt("node:net"),Yjn=wt("node:assert"),Jjn=Em(),{InvalidArgumentError:uca,ConnectTimeoutError:gca}=Y0(),tht=R0r();function Qjn(){}var N0r,D0r;global.FinalizationRegistry&&!(process.env.NODE_V8_COVERAGE||process.env.UNDICI_NO_FG)?D0r=class{constructor(t){this._maxCachedSessions=t,this._sessionCache=new Map,this._sessionRegistry=new global.FinalizationRegistry(r=>{if(this._sessionCache.size=this._maxCachedSessions){let{value:n}=this._sessionCache.keys().next();this._sessionCache.delete(n)}this._sessionCache.set(t,r)}}};function Aca({allowH2:e,maxCachedSessions:t,socketPath:r,timeout:n,session:a,...o}){if(t!=null&&(!Number.isInteger(t)||t<0))throw new uca("maxCachedSessions must be a positive integer or zero");let l={path:r,...o},A=new D0r(t??100);return n=n??1e4,e=e??!1,function({hostname:I,host:C,protocol:b,port:E,servername:N,localAddress:B,httpSocket:F},Q){let X;if(b==="https:"){N0r||(N0r=wt("node:tls")),N=N||l.servername||Jjn.getServerName(C)||null;let ne=N||I;Yjn(ne);let ce=a||A.get(ne)||null;E=E||443,X=N0r.connect({highWaterMark:16384,...l,servername:N,session:ce,localAddress:B,ALPNProtocols:e?["http/1.1","h2"]:["http/1.1"],socket:F,port:E,host:I}),X.on("session",function(fe){A.set(ne,fe)})}else Yjn(!F,"httpSocket can only be sent on TLS update"),E=E||80,X=lca.connect({highWaterMark:64*1024,...l,localAddress:B,port:E,host:I});if(l.keepAlive==null||l.keepAlive){let ne=l.keepAliveInitialDelay===void 0?6e4:l.keepAliveInitialDelay;X.setKeepAlive(!0,ne)}let ae=dca(new WeakRef(X),{timeout:n,hostname:I,port:E});return X.setNoDelay(!0).once(b==="https:"?"secureConnect":"connect",function(){if(queueMicrotask(ae),Q){let ne=Q;Q=null,ne(null,this)}}).on("error",function(ne){if(queueMicrotask(ae),Q){let ce=Q;Q=null,ce(ne)}}),X}}var dca=process.platform==="win32"?(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=null,a=tht.setFastTimeout(()=>{r=setImmediate(()=>{n=setImmediate(()=>Xjn(e.deref(),t))})},t.timeout);return()=>{tht.clearFastTimeout(a),clearImmediate(r),clearImmediate(n)}}:(e,t)=>{if(!t.timeout)return Qjn;let r=null,n=tht.setFastTimeout(()=>{r=setImmediate(()=>{Xjn(e.deref(),t)})},t.timeout);return()=>{tht.clearFastTimeout(n),clearImmediate(r)}};function Xjn(e,t){let r="Connect Timeout Error";Array.isArray(e.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(", ")},`:r+=` (attempted address: ${t.hostname}:${t.port},`,r+=` timeout: ${t.timeout}ms)`,Jjn.destroy(e,new gca(r))}Ujn.exports=Aca});var Kjn=H(rht=>{"use strict";Object.defineProperty(rht,"__esModule",{value:!0});rht.enumToMap=void 0;function pca(e){let t={};return Object.keys(e).forEach(r=>{let n=e[r];typeof n=="number"&&(t[r]=n)}),t}rht.enumToMap=pca});var jjn=H(Gu=>{"use strict";Object.defineProperty(Gu,"__esModule",{value:!0});Gu.SPECIAL_HEADERS=Gu.HEADER_STATE=Gu.MINOR=Gu.MAJOR=Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS=Gu.TOKEN=Gu.STRICT_TOKEN=Gu.HEX=Gu.URL_CHAR=Gu.STRICT_URL_CHAR=Gu.USERINFO_CHARS=Gu.MARK=Gu.ALPHANUM=Gu.NUM=Gu.HEX_MAP=Gu.NUM_MAP=Gu.ALPHA=Gu.FINISH=Gu.H_METHOD_MAP=Gu.METHOD_MAP=Gu.METHODS_RTSP=Gu.METHODS_ICE=Gu.METHODS_HTTP=Gu.METHODS=Gu.LENIENT_FLAGS=Gu.FLAGS=Gu.TYPE=Gu.ERROR=void 0;var fca=Kjn(),Ica;(function(e){e[e.OK=0]="OK",e[e.INTERNAL=1]="INTERNAL",e[e.STRICT=2]="STRICT",e[e.LF_EXPECTED=3]="LF_EXPECTED",e[e.UNEXPECTED_CONTENT_LENGTH=4]="UNEXPECTED_CONTENT_LENGTH",e[e.CLOSED_CONNECTION=5]="CLOSED_CONNECTION",e[e.INVALID_METHOD=6]="INVALID_METHOD",e[e.INVALID_URL=7]="INVALID_URL",e[e.INVALID_CONSTANT=8]="INVALID_CONSTANT",e[e.INVALID_VERSION=9]="INVALID_VERSION",e[e.INVALID_HEADER_TOKEN=10]="INVALID_HEADER_TOKEN",e[e.INVALID_CONTENT_LENGTH=11]="INVALID_CONTENT_LENGTH",e[e.INVALID_CHUNK_SIZE=12]="INVALID_CHUNK_SIZE",e[e.INVALID_STATUS=13]="INVALID_STATUS",e[e.INVALID_EOF_STATE=14]="INVALID_EOF_STATE",e[e.INVALID_TRANSFER_ENCODING=15]="INVALID_TRANSFER_ENCODING",e[e.CB_MESSAGE_BEGIN=16]="CB_MESSAGE_BEGIN",e[e.CB_HEADERS_COMPLETE=17]="CB_HEADERS_COMPLETE",e[e.CB_MESSAGE_COMPLETE=18]="CB_MESSAGE_COMPLETE",e[e.CB_CHUNK_HEADER=19]="CB_CHUNK_HEADER",e[e.CB_CHUNK_COMPLETE=20]="CB_CHUNK_COMPLETE",e[e.PAUSED=21]="PAUSED",e[e.PAUSED_UPGRADE=22]="PAUSED_UPGRADE",e[e.PAUSED_H2_UPGRADE=23]="PAUSED_H2_UPGRADE",e[e.USER=24]="USER"})(Ica=Gu.ERROR||(Gu.ERROR={}));var hca;(function(e){e[e.BOTH=0]="BOTH",e[e.REQUEST=1]="REQUEST",e[e.RESPONSE=2]="RESPONSE"})(hca=Gu.TYPE||(Gu.TYPE={}));var mca;(function(e){e[e.CONNECTION_KEEP_ALIVE=1]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=2]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=4]="CONNECTION_UPGRADE",e[e.CHUNKED=8]="CHUNKED",e[e.UPGRADE=16]="UPGRADE",e[e.CONTENT_LENGTH=32]="CONTENT_LENGTH",e[e.SKIPBODY=64]="SKIPBODY",e[e.TRAILING=128]="TRAILING",e[e.TRANSFER_ENCODING=512]="TRANSFER_ENCODING"})(mca=Gu.FLAGS||(Gu.FLAGS={}));var Cca;(function(e){e[e.HEADERS=1]="HEADERS",e[e.CHUNKED_LENGTH=2]="CHUNKED_LENGTH",e[e.KEEP_ALIVE=4]="KEEP_ALIVE"})(Cca=Gu.LENIENT_FLAGS||(Gu.LENIENT_FLAGS={}));var Pp;(function(e){e[e.DELETE=0]="DELETE",e[e.GET=1]="GET",e[e.HEAD=2]="HEAD",e[e.POST=3]="POST",e[e.PUT=4]="PUT",e[e.CONNECT=5]="CONNECT",e[e.OPTIONS=6]="OPTIONS",e[e.TRACE=7]="TRACE",e[e.COPY=8]="COPY",e[e.LOCK=9]="LOCK",e[e.MKCOL=10]="MKCOL",e[e.MOVE=11]="MOVE",e[e.PROPFIND=12]="PROPFIND",e[e.PROPPATCH=13]="PROPPATCH",e[e.SEARCH=14]="SEARCH",e[e.UNLOCK=15]="UNLOCK",e[e.BIND=16]="BIND",e[e.REBIND=17]="REBIND",e[e.UNBIND=18]="UNBIND",e[e.ACL=19]="ACL",e[e.REPORT=20]="REPORT",e[e.MKACTIVITY=21]="MKACTIVITY",e[e.CHECKOUT=22]="CHECKOUT",e[e.MERGE=23]="MERGE",e[e["M-SEARCH"]=24]="M-SEARCH",e[e.NOTIFY=25]="NOTIFY",e[e.SUBSCRIBE=26]="SUBSCRIBE",e[e.UNSUBSCRIBE=27]="UNSUBSCRIBE",e[e.PATCH=28]="PATCH",e[e.PURGE=29]="PURGE",e[e.MKCALENDAR=30]="MKCALENDAR",e[e.LINK=31]="LINK",e[e.UNLINK=32]="UNLINK",e[e.SOURCE=33]="SOURCE",e[e.PRI=34]="PRI",e[e.DESCRIBE=35]="DESCRIBE",e[e.ANNOUNCE=36]="ANNOUNCE",e[e.SETUP=37]="SETUP",e[e.PLAY=38]="PLAY",e[e.PAUSE=39]="PAUSE",e[e.TEARDOWN=40]="TEARDOWN",e[e.GET_PARAMETER=41]="GET_PARAMETER",e[e.SET_PARAMETER=42]="SET_PARAMETER",e[e.REDIRECT=43]="REDIRECT",e[e.RECORD=44]="RECORD",e[e.FLUSH=45]="FLUSH"})(Pp=Gu.METHODS||(Gu.METHODS={}));Gu.METHODS_HTTP=[Pp.DELETE,Pp.GET,Pp.HEAD,Pp.POST,Pp.PUT,Pp.CONNECT,Pp.OPTIONS,Pp.TRACE,Pp.COPY,Pp.LOCK,Pp.MKCOL,Pp.MOVE,Pp.PROPFIND,Pp.PROPPATCH,Pp.SEARCH,Pp.UNLOCK,Pp.BIND,Pp.REBIND,Pp.UNBIND,Pp.ACL,Pp.REPORT,Pp.MKACTIVITY,Pp.CHECKOUT,Pp.MERGE,Pp["M-SEARCH"],Pp.NOTIFY,Pp.SUBSCRIBE,Pp.UNSUBSCRIBE,Pp.PATCH,Pp.PURGE,Pp.MKCALENDAR,Pp.LINK,Pp.UNLINK,Pp.PRI,Pp.SOURCE];Gu.METHODS_ICE=[Pp.SOURCE];Gu.METHODS_RTSP=[Pp.OPTIONS,Pp.DESCRIBE,Pp.ANNOUNCE,Pp.SETUP,Pp.PLAY,Pp.PAUSE,Pp.TEARDOWN,Pp.GET_PARAMETER,Pp.SET_PARAMETER,Pp.REDIRECT,Pp.RECORD,Pp.FLUSH,Pp.GET,Pp.POST];Gu.METHOD_MAP=fca.enumToMap(Pp);Gu.H_METHOD_MAP={};Object.keys(Gu.METHOD_MAP).forEach(e=>{/^H/.test(e)&&(Gu.H_METHOD_MAP[e]=Gu.METHOD_MAP[e])});var _ca;(function(e){e[e.SAFE=0]="SAFE",e[e.SAFE_WITH_CB=1]="SAFE_WITH_CB",e[e.UNSAFE=2]="UNSAFE"})(_ca=Gu.FINISH||(Gu.FINISH={}));Gu.ALPHA=[];for(let e=65;e<=90;e++)Gu.ALPHA.push(String.fromCharCode(e)),Gu.ALPHA.push(String.fromCharCode(e+32));Gu.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9};Gu.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};Gu.NUM=["0","1","2","3","4","5","6","7","8","9"];Gu.ALPHANUM=Gu.ALPHA.concat(Gu.NUM);Gu.MARK=["-","_",".","!","~","*","'","(",")"];Gu.USERINFO_CHARS=Gu.ALPHANUM.concat(Gu.MARK).concat(["%",";",":","&","=","+","$",","]);Gu.STRICT_URL_CHAR=["!",'"',"$","%","&","'","(",")","*","+",",","-",".","/",":",";","<","=",">","@","[","\\","]","^","_","`","{","|","}","~"].concat(Gu.ALPHANUM);Gu.URL_CHAR=Gu.STRICT_URL_CHAR.concat([" ","\f"]);for(let e=128;e<=255;e++)Gu.URL_CHAR.push(e);Gu.HEX=Gu.NUM.concat(["a","b","c","d","e","f","A","B","C","D","E","F"]);Gu.STRICT_TOKEN=["!","#","$","%","&","'","*","+","-",".","^","_","`","|","~"].concat(Gu.ALPHANUM);Gu.TOKEN=Gu.STRICT_TOKEN.concat([" "]);Gu.HEADER_CHARS=[" "];for(let e=32;e<=255;e++)e!==127&&Gu.HEADER_CHARS.push(e);Gu.CONNECTION_TOKEN_CHARS=Gu.HEADER_CHARS.filter(e=>e!==44);Gu.MAJOR=Gu.NUM_MAP;Gu.MINOR=Gu.MAJOR;var mwe;(function(e){e[e.GENERAL=0]="GENERAL",e[e.CONNECTION=1]="CONNECTION",e[e.CONTENT_LENGTH=2]="CONTENT_LENGTH",e[e.TRANSFER_ENCODING=3]="TRANSFER_ENCODING",e[e.UPGRADE=4]="UPGRADE",e[e.CONNECTION_KEEP_ALIVE=5]="CONNECTION_KEEP_ALIVE",e[e.CONNECTION_CLOSE=6]="CONNECTION_CLOSE",e[e.CONNECTION_UPGRADE=7]="CONNECTION_UPGRADE",e[e.TRANSFER_ENCODING_CHUNKED=8]="TRANSFER_ENCODING_CHUNKED"})(mwe=Gu.HEADER_STATE||(Gu.HEADER_STATE={}));Gu.SPECIAL_HEADERS={connection:mwe.CONNECTION,"content-length":mwe.CONTENT_LENGTH,"proxy-connection":mwe.CONNECTION,"transfer-encoding":mwe.TRANSFER_ENCODING,upgrade:mwe.UPGRADE}});var k0r=H((jsu,zjn)=>{"use strict";var{Buffer:yca}=wt("node:buffer");zjn.exports=yca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDsYBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHyAhIyUmKCorLC8wMTIzNDU2Nzk6Ozw9lANAQkRFRklLTk9QUVJTVFVWWFpbXF1eX2BhYmNkZWZnaGpsb3Bxc3V2eHl6e3x/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcsBzAHNAc4BzwGKA4kDiAOHA4QDgwOAA/sC+gL5AvgC9wL0AvMC8gLLAsECsALZAQsgASAERw3wAkHdASEDDLMDCyABIARHDcgBQcMBIQMMsgMLIAEgBEcNe0H3ACEDDLEDCyABIARHDXBB7wAhAwywAwsgASAERw1pQeoAIQMMrwMLIAEgBEcNZUHoACEDDK4DCyABIARHDWJB5gAhAwytAwsgASAERw0aQRghAwysAwsgASAERw0VQRIhAwyrAwsgASAERw1CQcUAIQMMqgMLIAEgBEcNNEE/IQMMqQMLIAEgBEcNMkE8IQMMqAMLIAEgBEcNK0ExIQMMpwMLIAItAC5BAUYNnwMMwQILQQAhAAJAAkACQCACLQAqRQ0AIAItACtFDQAgAi8BMCIDQQJxRQ0BDAILIAIvATAiA0EBcUUNAQtBASEAIAItAChBAUYNACACLwEyIgVB5ABrQeQASQ0AIAVBzAFGDQAgBUGwAkYNACADQcAAcQ0AQQAhACADQYgEcUGABEYNACADQShxQQBHIQALIAJBADsBMCACQQA6AC8gAEUN3wIgAkIANwMgDOACC0EAIQACQCACKAI4IgNFDQAgAygCLCIDRQ0AIAIgAxEAACEACyAARQ3MASAAQRVHDd0CIAJBBDYCHCACIAE2AhQgAkGwGDYCECACQRU2AgxBACEDDKQDCyABIARGBEBBBiEDDKQDCyABQQFqIQFBACEAAkAgAigCOCIDRQ0AIAMoAlQiA0UNACACIAMRAAAhAAsgAA3ZAgwcCyACQgA3AyBBEiEDDIkDCyABIARHDRZBHSEDDKEDCyABIARHBEAgAUEBaiEBQRAhAwyIAwtBByEDDKADCyACIAIpAyAiCiAEIAFrrSILfSIMQgAgCiAMWhs3AyAgCiALWA3UAkEIIQMMnwMLIAEgBEcEQCACQQk2AgggAiABNgIEQRQhAwyGAwtBCSEDDJ4DCyACKQMgQgBSDccBIAIgAi8BMEGAAXI7ATAMQgsgASAERw0/QdAAIQMMnAMLIAEgBEYEQEELIQMMnAMLIAFBAWohAUEAIQACQCACKAI4IgNFDQAgAygCUCIDRQ0AIAIgAxEAACEACyAADc8CDMYBC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ3GASAAQRVHDc0CIAJBCzYCHCACIAE2AhQgAkGCGTYCECACQRU2AgxBACEDDJoDC0EAIQACQCACKAI4IgNFDQAgAygCSCIDRQ0AIAIgAxEAACEACyAARQ0MIABBFUcNygIgAkEaNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMmQMLQQAhAAJAIAIoAjgiA0UNACADKAJMIgNFDQAgAiADEQAAIQALIABFDcQBIABBFUcNxwIgAkELNgIcIAIgATYCFCACQZEXNgIQIAJBFTYCDEEAIQMMmAMLIAEgBEYEQEEPIQMMmAMLIAEtAAAiAEE7Rg0HIABBDUcNxAIgAUEBaiEBDMMBC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3DASAAQRVHDcICIAJBDzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJYDCwNAIAEtAABB8DVqLQAAIgBBAUcEQCAAQQJHDcECIAIoAgQhAEEAIQMgAkEANgIEIAIgACABQQFqIgEQLSIADcICDMUBCyAEIAFBAWoiAUcNAAtBEiEDDJUDC0EAIQACQCACKAI4IgNFDQAgAygCTCIDRQ0AIAIgAxEAACEACyAARQ3FASAAQRVHDb0CIAJBGzYCHCACIAE2AhQgAkGRFzYCECACQRU2AgxBACEDDJQDCyABIARGBEBBFiEDDJQDCyACQQo2AgggAiABNgIEQQAhAAJAIAIoAjgiA0UNACADKAJIIgNFDQAgAiADEQAAIQALIABFDcIBIABBFUcNuQIgAkEVNgIcIAIgATYCFCACQYIZNgIQIAJBFTYCDEEAIQMMkwMLIAEgBEcEQANAIAEtAABB8DdqLQAAIgBBAkcEQAJAIABBAWsOBMQCvQIAvgK9AgsgAUEBaiEBQQghAwz8AgsgBCABQQFqIgFHDQALQRUhAwyTAwtBFSEDDJIDCwNAIAEtAABB8DlqLQAAIgBBAkcEQCAAQQFrDgTFArcCwwK4ArcCCyAEIAFBAWoiAUcNAAtBGCEDDJEDCyABIARHBEAgAkELNgIIIAIgATYCBEEHIQMM+AILQRkhAwyQAwsgAUEBaiEBDAILIAEgBEYEQEEaIQMMjwMLAkAgAS0AAEENaw4UtQG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwG/Ab8BvwEAvwELQQAhAyACQQA2AhwgAkGvCzYCECACQQI2AgwgAiABQQFqNgIUDI4DCyABIARGBEBBGyEDDI4DCyABLQAAIgBBO0cEQCAAQQ1HDbECIAFBAWohAQy6AQsgAUEBaiEBC0EiIQMM8wILIAEgBEYEQEEcIQMMjAMLQgAhCgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAS0AAEEwaw43wQLAAgABAgMEBQYH0AHQAdAB0AHQAdAB0AEICQoLDA3QAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdABDg8QERIT0AELQgIhCgzAAgtCAyEKDL8CC0IEIQoMvgILQgUhCgy9AgtCBiEKDLwCC0IHIQoMuwILQgghCgy6AgtCCSEKDLkCC0IKIQoMuAILQgshCgy3AgtCDCEKDLYCC0INIQoMtQILQg4hCgy0AgtCDyEKDLMCC0IKIQoMsgILQgshCgyxAgtCDCEKDLACC0INIQoMrwILQg4hCgyuAgtCDyEKDK0CC0IAIQoCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEtAABBMGsON8ACvwIAAQIDBAUGB74CvgK+Ar4CvgK+Ar4CCAkKCwwNvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ar4CvgK+Ag4PEBESE74CC0ICIQoMvwILQgMhCgy+AgtCBCEKDL0CC0IFIQoMvAILQgYhCgy7AgtCByEKDLoCC0IIIQoMuQILQgkhCgy4AgtCCiEKDLcCC0ILIQoMtgILQgwhCgy1AgtCDSEKDLQCC0IOIQoMswILQg8hCgyyAgtCCiEKDLECC0ILIQoMsAILQgwhCgyvAgtCDSEKDK4CC0IOIQoMrQILQg8hCgysAgsgAiACKQMgIgogBCABa60iC30iDEIAIAogDFobNwMgIAogC1gNpwJBHyEDDIkDCyABIARHBEAgAkEJNgIIIAIgATYCBEElIQMM8AILQSAhAwyIAwtBASEFIAIvATAiA0EIcUUEQCACKQMgQgBSIQULAkAgAi0ALgRAQQEhACACLQApQQVGDQEgA0HAAHFFIAVxRQ0BC0EAIQAgA0HAAHENAEECIQAgA0EIcQ0AIANBgARxBEACQCACLQAoQQFHDQAgAi0ALUEKcQ0AQQUhAAwCC0EEIQAMAQsgA0EgcUUEQAJAIAItAChBAUYNACACLwEyIgBB5ABrQeQASQ0AIABBzAFGDQAgAEGwAkYNAEEEIQAgA0EocUUNAiADQYgEcUGABEYNAgtBACEADAELQQBBAyACKQMgUBshAAsgAEEBaw4FvgIAsAEBpAKhAgtBESEDDO0CCyACQQE6AC8MhAMLIAEgBEcNnQJBJCEDDIQDCyABIARHDRxBxgAhAwyDAwtBACEAAkAgAigCOCIDRQ0AIAMoAkQiA0UNACACIAMRAAAhAAsgAEUNJyAAQRVHDZgCIAJB0AA2AhwgAiABNgIUIAJBkRg2AhAgAkEVNgIMQQAhAwyCAwsgASAERgRAQSghAwyCAwtBACEDIAJBADYCBCACQQw2AgggAiABIAEQKiIARQ2UAiACQSc2AhwgAiABNgIUIAIgADYCDAyBAwsgASAERgRAQSkhAwyBAwsgAS0AACIAQSBGDRMgAEEJRw2VAiABQQFqIQEMFAsgASAERwRAIAFBAWohAQwWC0EqIQMM/wILIAEgBEYEQEErIQMM/wILIAEtAAAiAEEJRyAAQSBHcQ2QAiACLQAsQQhHDd0CIAJBADoALAzdAgsgASAERgRAQSwhAwz+AgsgAS0AAEEKRw2OAiABQQFqIQEMsAELIAEgBEcNigJBLyEDDPwCCwNAIAEtAAAiAEEgRwRAIABBCmsOBIQCiAKIAoQChgILIAQgAUEBaiIBRw0AC0ExIQMM+wILQTIhAyABIARGDfoCIAIoAgAiACAEIAFraiEHIAEgAGtBA2ohBgJAA0AgAEHwO2otAAAgAS0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDQEgAEEDRgRAQQYhAQziAgsgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAc2AgAM+wILIAJBADYCAAyGAgtBMyEDIAQgASIARg35AiAEIAFrIAIoAgAiAWohByAAIAFrQQhqIQYCQANAIAFB9DtqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBCEYEQEEFIQEM4QILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPoCCyACQQA2AgAgACEBDIUCC0E0IQMgBCABIgBGDfgCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgJAA0AgAUHQwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw0BIAFBBUYEQEEHIQEM4AILIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADPkCCyACQQA2AgAgACEBDIQCCyABIARHBEADQCABLQAAQYA+ai0AACIAQQFHBEAgAEECRg0JDIECCyAEIAFBAWoiAUcNAAtBMCEDDPgCC0EwIQMM9wILIAEgBEcEQANAIAEtAAAiAEEgRwRAIABBCmsOBP8B/gH+Af8B/gELIAQgAUEBaiIBRw0AC0E4IQMM9wILQTghAwz2AgsDQCABLQAAIgBBIEcgAEEJR3EN9gEgBCABQQFqIgFHDQALQTwhAwz1AgsDQCABLQAAIgBBIEcEQAJAIABBCmsOBPkBBAT5AQALIABBLEYN9QEMAwsgBCABQQFqIgFHDQALQT8hAwz0AgtBwAAhAyABIARGDfMCIAIoAgAiACAEIAFraiEFIAEgAGtBBmohBgJAA0AgAEGAQGstAAAgAS0AAEEgckcNASAAQQZGDdsCIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADPQCCyACQQA2AgALQTYhAwzZAgsgASAERgRAQcEAIQMM8gILIAJBDDYCCCACIAE2AgQgAi0ALEEBaw4E+wHuAewB6wHUAgsgAUEBaiEBDPoBCyABIARHBEADQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxIgBBCUYNACAAQSBGDQACQAJAAkACQCAAQeMAaw4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIQMM3AILIAFBAWohAUEyIQMM2wILIAFBAWohAUEzIQMM2gILDP4BCyAEIAFBAWoiAUcNAAtBNSEDDPACC0E1IQMM7wILIAEgBEcEQANAIAEtAABBgDxqLQAAQQFHDfcBIAQgAUEBaiIBRw0AC0E9IQMM7wILQT0hAwzuAgtBACEAAkAgAigCOCIDRQ0AIAMoAkAiA0UNACACIAMRAAAhAAsgAEUNASAAQRVHDeYBIAJBwgA2AhwgAiABNgIUIAJB4xg2AhAgAkEVNgIMQQAhAwztAgsgAUEBaiEBC0E8IQMM0gILIAEgBEYEQEHCACEDDOsCCwJAA0ACQCABLQAAQQlrDhgAAswCzALRAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAswCzALMAgDMAgsgBCABQQFqIgFHDQALQcIAIQMM6wILIAFBAWohASACLQAtQQFxRQ3+AQtBLCEDDNACCyABIARHDd4BQcQAIQMM6AILA0AgAS0AAEGQwABqLQAAQQFHDZwBIAQgAUEBaiIBRw0AC0HFACEDDOcCCyABLQAAIgBBIEYN/gEgAEE6Rw3AAiACKAIEIQBBACEDIAJBADYCBCACIAAgARApIgAN3gEM3QELQccAIQMgBCABIgBGDeUCIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFBkMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvwIgAUEFRg3CAiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzlAgtByAAhAyAEIAEiAEYN5AIgBCABayACKAIAIgFqIQcgACABa0EJaiEGA0AgAUGWwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw2+AkECIAFBCUYNwgIaIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOQCCyABIARGBEBByQAhAwzkAgsCQAJAIAEtAAAiAEEgciAAIABBwQBrQf8BcUEaSRtB/wFxQe4Aaw4HAL8CvwK/Ar8CvwIBvwILIAFBAWohAUE+IQMMywILIAFBAWohAUE/IQMMygILQcoAIQMgBCABIgBGDeICIAQgAWsgAigCACIBaiEGIAAgAWtBAWohBwNAIAFBoMIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNvAIgAUEBRg2+AiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBjYCAAziAgtBywAhAyAEIAEiAEYN4QIgBCABayACKAIAIgFqIQcgACABa0EOaiEGA0AgAUGiwgBqLQAAIAAtAAAiBUEgciAFIAVBwQBrQf8BcUEaSRtB/wFxRw27AiABQQ5GDb4CIAFBAWohASAEIABBAWoiAEcNAAsgAiAHNgIADOECC0HMACEDIAQgASIARg3gAiAEIAFrIAIoAgAiAWohByAAIAFrQQ9qIQYDQCABQcDCAGotAAAgAC0AACIFQSByIAUgBUHBAGtB/wFxQRpJG0H/AXFHDboCQQMgAUEPRg2+AhogAUEBaiEBIAQgAEEBaiIARw0ACyACIAc2AgAM4AILQc0AIQMgBCABIgBGDd8CIAQgAWsgAigCACIBaiEHIAAgAWtBBWohBgNAIAFB0MIAai0AACAALQAAIgVBIHIgBSAFQcEAa0H/AXFBGkkbQf8BcUcNuQJBBCABQQVGDb0CGiABQQFqIQEgBCAAQQFqIgBHDQALIAIgBzYCAAzfAgsgASAERgRAQc4AIQMM3wILAkACQAJAAkAgAS0AACIAQSByIAAgAEHBAGtB/wFxQRpJG0H/AXFB4wBrDhMAvAK8ArwCvAK8ArwCvAK8ArwCvAK8ArwCAbwCvAK8AgIDvAILIAFBAWohAUHBACEDDMgCCyABQQFqIQFBwgAhAwzHAgsgAUEBaiEBQcMAIQMMxgILIAFBAWohAUHEACEDDMUCCyABIARHBEAgAkENNgIIIAIgATYCBEHFACEDDMUCC0HPACEDDN0CCwJAAkAgAS0AAEEKaw4EAZABkAEAkAELIAFBAWohAQtBKCEDDMMCCyABIARGBEBB0QAhAwzcAgsgAS0AAEEgRw0AIAFBAWohASACLQAtQQFxRQ3QAQtBFyEDDMECCyABIARHDcsBQdIAIQMM2QILQdMAIQMgASAERg3YAiACKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABB1sIAai0AAEcNxwEgAEEBRg3KASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBjYCAAzYAgsgASAERgRAQdUAIQMM2AILIAEtAABBCkcNwgEgAUEBaiEBDMoBCyABIARGBEBB1gAhAwzXAgsCQAJAIAEtAABBCmsOBADDAcMBAcMBCyABQQFqIQEMygELIAFBAWohAUHKACEDDL0CC0EAIQACQCACKAI4IgNFDQAgAygCPCIDRQ0AIAIgAxEAACEACyAADb8BQc0AIQMMvAILIAItAClBIkYNzwIMiQELIAQgASIFRgRAQdsAIQMM1AILQQAhAEEBIQFBASEGQQAhAwJAAn8CQAJAAkACQAJAAkACQCAFLQAAQTBrDgrFAcQBAAECAwQFBgjDAQtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshA0EAIQFBACEGDL0BC0EJIQNBASEAQQAhAUEAIQYMvAELIAEgBEYEQEHdACEDDNMCCyABLQAAQS5HDbgBIAFBAWohAQyIAQsgASAERw22AUHfACEDDNECCyABIARHBEAgAkEONgIIIAIgATYCBEHQACEDDLgCC0HgACEDDNACC0HhACEDIAEgBEYNzwIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGA0AgAS0AACAAQeLCAGotAABHDbEBIABBA0YNswEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMzwILQeIAIQMgASAERg3OAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYDQCABLQAAIABB5sIAai0AAEcNsAEgAEECRg2vASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAzOAgtB4wAhAyABIARGDc0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgNAIAEtAAAgAEHpwgBqLQAARw2vASAAQQNGDa0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADM0CCyABIARGBEBB5QAhAwzNAgsgAUEBaiEBQQAhAAJAIAIoAjgiA0UNACADKAIwIgNFDQAgAiADEQAAIQALIAANqgFB1gAhAwyzAgsgASAERwRAA0AgAS0AACIAQSBHBEACQAJAAkAgAEHIAGsOCwABswGzAbMBswGzAbMBswGzAQKzAQsgAUEBaiEBQdIAIQMMtwILIAFBAWohAUHTACEDDLYCCyABQQFqIQFB1AAhAwy1AgsgBCABQQFqIgFHDQALQeQAIQMMzAILQeQAIQMMywILA0AgAS0AAEHwwgBqLQAAIgBBAUcEQCAAQQJrDgOnAaYBpQGkAQsgBCABQQFqIgFHDQALQeYAIQMMygILIAFBAWogASAERw0CGkHnACEDDMkCCwNAIAEtAABB8MQAai0AACIAQQFHBEACQCAAQQJrDgSiAaEBoAEAnwELQdcAIQMMsQILIAQgAUEBaiIBRw0AC0HoACEDDMgCCyABIARGBEBB6QAhAwzIAgsCQCABLQAAIgBBCmsOGrcBmwGbAbQBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBmwGbAZsBpAGbAZsBAJkBCyABQQFqCyEBQQYhAwytAgsDQCABLQAAQfDGAGotAABBAUcNfSAEIAFBAWoiAUcNAAtB6gAhAwzFAgsgAUEBaiABIARHDQIaQesAIQMMxAILIAEgBEYEQEHsACEDDMQCCyABQQFqDAELIAEgBEYEQEHtACEDDMMCCyABQQFqCyEBQQQhAwyoAgsgASAERgRAQe4AIQMMwQILAkACQAJAIAEtAABB8MgAai0AAEEBaw4HkAGPAY4BAHwBAo0BCyABQQFqIQEMCwsgAUEBagyTAQtBACEDIAJBADYCHCACQZsSNgIQIAJBBzYCDCACIAFBAWo2AhQMwAILAkADQCABLQAAQfDIAGotAAAiAEEERwRAAkACQCAAQQFrDgeUAZMBkgGNAQAEAY0BC0HaACEDDKoCCyABQQFqIQFB3AAhAwypAgsgBCABQQFqIgFHDQALQe8AIQMMwAILIAFBAWoMkQELIAQgASIARgRAQfAAIQMMvwILIAAtAABBL0cNASAAQQFqIQEMBwsgBCABIgBGBEBB8QAhAwy+AgsgAC0AACIBQS9GBEAgAEEBaiEBQd0AIQMMpQILIAFBCmsiA0EWSw0AIAAhAUEBIAN0QYmAgAJxDfkBC0EAIQMgAkEANgIcIAIgADYCFCACQYwcNgIQIAJBBzYCDAy8AgsgASAERwRAIAFBAWohAUHeACEDDKMCC0HyACEDDLsCCyABIARGBEBB9AAhAwy7AgsCQCABLQAAQfDMAGotAABBAWsOA/cBcwCCAQtB4QAhAwyhAgsgASAERwRAA0AgAS0AAEHwygBqLQAAIgBBA0cEQAJAIABBAWsOAvkBAIUBC0HfACEDDKMCCyAEIAFBAWoiAUcNAAtB8wAhAwy6AgtB8wAhAwy5AgsgASAERwRAIAJBDzYCCCACIAE2AgRB4AAhAwygAgtB9QAhAwy4AgsgASAERgRAQfYAIQMMuAILIAJBDzYCCCACIAE2AgQLQQMhAwydAgsDQCABLQAAQSBHDY4CIAQgAUEBaiIBRw0AC0H3ACEDDLUCCyABIARGBEBB+AAhAwy1AgsgAS0AAEEgRw16IAFBAWohAQxbC0EAIQACQCACKAI4IgNFDQAgAygCOCIDRQ0AIAIgAxEAACEACyAADXgMgAILIAEgBEYEQEH6ACEDDLMCCyABLQAAQcwARw10IAFBAWohAUETDHYLQfsAIQMgASAERg2xAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYDQCABLQAAIABB8M4Aai0AAEcNcyAAQQVGDXUgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMsQILIAEgBEYEQEH8ACEDDLECCwJAAkAgAS0AAEHDAGsODAB0dHR0dHR0dHR0AXQLIAFBAWohAUHmACEDDJgCCyABQQFqIQFB5wAhAwyXAgtB/QAhAyABIARGDa8CIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQe3PAGotAABHDXIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADLACCyACQQA2AgAgBkEBaiEBQRAMcwtB/gAhAyABIARGDa4CIAIoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQfbOAGotAABHDXEgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK8CCyACQQA2AgAgBkEBaiEBQRYMcgtB/wAhAyABIARGDa0CIAIoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQfzOAGotAABHDXAgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADK4CCyACQQA2AgAgBkEBaiEBQQUMcQsgASAERgRAQYABIQMMrQILIAEtAABB2QBHDW4gAUEBaiEBQQgMcAsgASAERgRAQYEBIQMMrAILAkACQCABLQAAQc4Aaw4DAG8BbwsgAUEBaiEBQesAIQMMkwILIAFBAWohAUHsACEDDJICCyABIARGBEBBggEhAwyrAgsCQAJAIAEtAABByABrDggAbm5ubm5uAW4LIAFBAWohAUHqACEDDJICCyABQQFqIQFB7QAhAwyRAgtBgwEhAyABIARGDakCIAIoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQYDPAGotAABHDWwgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKoCCyACQQA2AgAgBkEBaiEBQQAMbQtBhAEhAyABIARGDagCIAIoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQYPPAGotAABHDWsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAiAFNgIADKkCCyACQQA2AgAgBkEBaiEBQSMMbAsgASAERgRAQYUBIQMMqAILAkACQCABLQAAQcwAaw4IAGtra2trawFrCyABQQFqIQFB7wAhAwyPAgsgAUEBaiEBQfAAIQMMjgILIAEgBEYEQEGGASEDDKcCCyABLQAAQcUARw1oIAFBAWohAQxgC0GHASEDIAEgBEYNpQIgAigCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBiM8Aai0AAEcNaCAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpgILIAJBADYCACAGQQFqIQFBLQxpC0GIASEDIAEgBEYNpAIgAigCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABB0M8Aai0AAEcNZyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMpQILIAJBADYCACAGQQFqIQFBKQxoCyABIARGBEBBiQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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CABB3AgLii1JbnZhbGlkIGNoYXIgaW4gdXJsIHF1ZXJ5AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fYm9keQBDb250ZW50LUxlbmd0aCBvdmVyZmxvdwBDaHVuayBzaXplIG92ZXJmbG93AFJlc3BvbnNlIG92ZXJmbG93AEludmFsaWQgbWV0aG9kIGZvciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zAFVzZXIgY2FsbGJhY2sgZXJyb3IAYG9uX3Jlc2V0YCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfaGVhZGVyYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9iZWdpbmAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3N0YXR1c19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3ZlcnNpb25fY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl91cmxfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXRob2RfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfZmllbGRfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fbmFtZWAgY2FsbGJhY2sgZXJyb3IAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzZXJ2ZXIASW52YWxpZCBoZWFkZXIgdmFsdWUgY2hhcgBJbnZhbGlkIGhlYWRlciBmaWVsZCBjaGFyAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdmVyc2lvbgBJbnZhbGlkIG1pbm9yIHZlcnNpb24ASW52YWxpZCBtYWpvciB2ZXJzaW9uAEV4cGVjdGVkIHNwYWNlIGFmdGVyIHZlcnNpb24ARXhwZWN0ZWQgQ1JMRiBhZnRlciB2ZXJzaW9uAEludmFsaWQgSFRUUCB2ZXJzaW9uAEludmFsaWQgaGVhZGVyIHRva2VuAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fdXJsAEludmFsaWQgY2hhcmFjdGVycyBpbiB1cmwAVW5leHBlY3RlZCBzdGFydCBjaGFyIGluIHVybABEb3VibGUgQCBpbiB1cmwARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgARHVwbGljYXRlIENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhciBpbiB1cmwgcGF0aABDb250ZW50LUxlbmd0aCBjYW4ndCBiZSBwcmVzZW50IHdpdGggVHJhbnNmZXItRW5jb2RpbmcASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgc2l6ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl92YWx1ZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlZCB2YWx1ZQBQYXVzZWQgYnkgb25faGVhZGVyc19jb21wbGV0ZQBJbnZhbGlkIEVPRiBzdGF0ZQBvbl9yZXNldCBwYXVzZQBvbl9jaHVua19oZWFkZXIgcGF1c2UAb25fbWVzc2FnZV9iZWdpbiBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fdmFsdWUgcGF1c2UAb25fc3RhdHVzX2NvbXBsZXRlIHBhdXNlAG9uX3ZlcnNpb25fY29tcGxldGUgcGF1c2UAb25fdXJsX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl92YWx1ZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXNzYWdlX2NvbXBsZXRlIHBhdXNlAG9uX21ldGhvZF9jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfZmllbGRfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUgcGF1c2UAVW5leHBlY3RlZCBzcGFjZSBhZnRlciBzdGFydCBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAFBhdXNlIG9uIENPTk5FQ1QvVXBncmFkZQBQYXVzZSBvbiBQUkkvVXBncmFkZQBFeHBlY3RlZCBIVFRQLzIgQ29ubmVjdGlvbiBQcmVmYWNlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fbWV0aG9kAEV4cGVjdGVkIHNwYWNlIGFmdGVyIG1ldGhvZABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2hlYWRlcl9maWVsZABQYXVzZWQASW52YWxpZCB3b3JkIGVuY291bnRlcmVkAEludmFsaWQgbWV0aG9kIGVuY291bnRlcmVkAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2NoZW1hAFJlcXVlc3QgaGFzIGludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYABTV0lUQ0hfUFJPWFkAVVNFX1BST1hZAE1LQUNUSVZJVFkAVU5QUk9DRVNTQUJMRV9FTlRJVFkAQ09QWQBNT1ZFRF9QRVJNQU5FTlRMWQBUT09fRUFSTFkATk9USUZZAEZBSUxFRF9ERVBFTkRFTkNZAEJBRF9HQVRFV0FZAFBMQVkAUFVUAENIRUNLT1VUAEdBVEVXQVlfVElNRU9VVABSRVFVRVNUX1RJTUVPVVQATkVUV09SS19DT05ORUNUX1RJTUVPVVQAQ09OTkVDVElPTl9USU1FT1VUAExPR0lOX1RJTUVPVVQATkVUV09SS19SRUFEX1RJTUVPVVQAUE9TVABNSVNESVJFQ1RFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX0xPQURfQkFMQU5DRURfUkVRVUVTVABCQURfUkVRVUVTVABIVFRQX1JFUVVFU1RfU0VOVF9UT19IVFRQU19QT1JUAFJFUE9SVABJTV9BX1RFQVBPVABSRVNFVF9DT05URU5UAE5PX0NPTlRFTlQAUEFSVElBTF9DT05URU5UAEhQRV9JTlZBTElEX0NPTlNUQU5UAEhQRV9DQl9SRVNFVABHRVQASFBFX1NUUklDVABDT05GTElDVABURU1QT1JBUllfUkVESVJFQ1QAUEVSTUFORU5UX1JFRElSRUNUAENPTk5FQ1QATVVMVElfU1RBVFVTAEhQRV9JTlZBTElEX1NUQVRVUwBUT09fTUFOWV9SRVFVRVNUUwBFQVJMWV9ISU5UUwBVTkFWQUlMQUJMRV9GT1JfTEVHQUxfUkVBU09OUwBPUFRJT05TAFNXSVRDSElOR19QUk9UT0NPTFMAVkFSSUFOVF9BTFNPX05FR09USUFURVMATVVMVElQTEVfQ0hPSUNFUwBJTlRFUk5BTF9TRVJWRVJfRVJST1IAV0VCX1NFUlZFUl9VTktOT1dOX0VSUk9SAFJBSUxHVU5fRVJST1IASURFTlRJVFlfUFJPVklERVJfQVVUSEVOVElDQVRJT05fRVJST1IAU1NMX0NFUlRJRklDQVRFX0VSUk9SAElOVkFMSURfWF9GT1JXQVJERURfRk9SAFNFVF9QQVJBTUVURVIAR0VUX1BBUkFNRVRFUgBIUEVfVVNFUgBTRUVfT1RIRVIASFBFX0NCX0NIVU5LX0hFQURFUgBNS0NBTEVOREFSAFNFVFVQAFdFQl9TRVJWRVJfSVNfRE9XTgBURUFSRE9XTgBIUEVfQ0xPU0VEX0NPTk5FQ1RJT04ASEVVUklTVElDX0VYUElSQVRJT04ARElTQ09OTkVDVEVEX09QRVJBVElPTgBOT05fQVVUSE9SSVRBVElWRV9JTkZPUk1BVElPTgBIUEVfSU5WQUxJRF9WRVJTSU9OAEhQRV9DQl9NRVNTQUdFX0JFR0lOAFNJVEVfSVNfRlJPWkVOAEhQRV9JTlZBTElEX0hFQURFUl9UT0tFTgBJTlZBTElEX1RPS0VOAEZPUkJJRERFTgBFTkhBTkNFX1lPVVJfQ0FMTQBIUEVfSU5WQUxJRF9VUkwAQkxPQ0tFRF9CWV9QQVJFTlRBTF9DT05UUk9MAE1LQ09MAEFDTABIUEVfSU5URVJOQUwAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRV9VTk9GRklDSUFMAEhQRV9PSwBVTkxJTksAVU5MT0NLAFBSSQBSRVRSWV9XSVRIAEhQRV9JTlZBTElEX0NPTlRFTlRfTEVOR1RIAEhQRV9VTkVYUEVDVEVEX0NPTlRFTlRfTEVOR1RIAEZMVVNIAFBST1BQQVRDSABNLVNFQVJDSABVUklfVE9PX0xPTkcAUFJPQ0VTU0lORwBNSVNDRUxMQU5FT1VTX1BFUlNJU1RFTlRfV0FSTklORwBNSVNDRUxMQU5FT1VTX1dBUk5JTkcASFBFX0lOVkFMSURfVFJBTlNGRVJfRU5DT0RJTkcARXhwZWN0ZWQgQ1JMRgBIUEVfSU5WQUxJRF9DSFVOS19TSVpFAE1PVkUAQ09OVElOVUUASFBFX0NCX1NUQVRVU19DT01QTEVURQBIUEVfQ0JfSEVBREVSU19DT01QTEVURQBIUEVfQ0JfVkVSU0lPTl9DT01QTEVURQBIUEVfQ0JfVVJMX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8AAF4TAAAmEwAAMBAAAPAXAACdEwAAFRIAADkXAADwEgAAChAAAHUSAACtEgAAghMAAE8UAAB/EAAAoBUAACMUAACJEgAAixQAAE0VAADUEQAAzxQAABAYAADJFgAA3BYAAMERAADgFwAAuxQAAHQUAAB8FQAA5RQAAAgXAAAfEAAAZRUAAKMUAAAoFQAAAhUAAJkVAAAsEAAAixkAAE8PAADUDgAAahAAAM4QAAACFwAAiQ4AAG4TAAAcEwAAZhQAAFYXAADBEwAAzRMAAGwTAABoFwAAZhcAAF8XAAAiEwAAzg8AAGkOAADYDgAAYxYAAMsTAACqDgAAKBcAACYXAADFEwAAXRYAAOgRAABnEwAAZRMAAPIWAABzEwAAHRcAAPkWAADzEQAAzw4AAM4VAAAMEgAAsxEAAKURAABhEAAAMhcAALsTAEH5NQsBAQBBkDYL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB/TcLAQEAQZE4C14CAwICAgICAAACAgACAgACAgICAgICAgICAAQAAAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEH9OQsBAQBBkToLXgIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAQfA7Cw1sb3NlZWVwLWFsaXZlAEGJPAsBAQBBoDwL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBiT4LAQEAQaA+C+cBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAEGwwAALXwEBAAEBAQEBAAABAQABAQABAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAEGQwgALIWVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgBBwMIACy1yYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AQfnCAAsFAQIAAQMAQZDDAAvgAQQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH5xAALBQECAAEDAEGQxQAL4AEEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cYACwQBAAABAEGRxwAL3wEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAEH6yAALBAEAAAIAQZDJAAtfAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAQfrKAAsEAQAAAQBBkMsACwEBAEGqywALQQIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEH6zAALBAEAAAEAQZDNAAsBAQBBms0ACwYCAAAAAAIAQbHNAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB8M4AC5YBTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRU9SRElSRUNUT1JUUkNIUEFSQU1FVEVSVVJDRUJTQ1JJQkVBUkRPV05BQ0VJTkROS0NLVUJTQ1JJQkVIVFRQL0FEVFAv","base64")});var $jn=H((zsu,qjn)=>{"use strict";var{Buffer:bca}=wt("node:buffer");qjn.exports=bca.from("AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAX8AYAJ/fwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAy0sBQYAAAIAAAAAAAACAQIAAgICAAADAAAAAAMDAwMBAQEBAQEBAQEAAAIAAAAEBQFwARISBQMBAAIGCAF/AUGA1AQLB9EFIgZtZW1vcnkCAAtfaW5pdGlhbGl6ZQAIGV9faW5kaXJlY3RfZnVuY3Rpb25fdGFibGUBAAtsbGh0dHBfaW5pdAAJGGxsaHR0cF9zaG91bGRfa2VlcF9hbGl2ZQAvDGxsaHR0cF9hbGxvYwALBm1hbGxvYwAxC2xsaHR0cF9mcmVlAAwEZnJlZQAMD2xsaHR0cF9nZXRfdHlwZQANFWxsaHR0cF9nZXRfaHR0cF9tYWpvcgAOFWxsaHR0cF9nZXRfaHR0cF9taW5vcgAPEWxsaHR0cF9nZXRfbWV0aG9kABAWbGxodHRwX2dldF9zdGF0dXNfY29kZQAREmxsaHR0cF9nZXRfdXBncmFkZQASDGxsaHR0cF9yZXNldAATDmxsaHR0cF9leGVjdXRlABQUbGxodHRwX3NldHRpbmdzX2luaXQAFQ1sbGh0dHBfZmluaXNoABYMbGxodHRwX3BhdXNlABcNbGxodHRwX3Jlc3VtZQAYG2xsaHR0cF9yZXN1bWVfYWZ0ZXJfdXBncmFkZQAZEGxsaHR0cF9nZXRfZXJybm8AGhdsbGh0dHBfZ2V0X2Vycm9yX3JlYXNvbgAbF2xsaHR0cF9zZXRfZXJyb3JfcmVhc29uABwUbGxodHRwX2dldF9lcnJvcl9wb3MAHRFsbGh0dHBfZXJybm9fbmFtZQAeEmxsaHR0cF9tZXRob2RfbmFtZQAfEmxsaHR0cF9zdGF0dXNfbmFtZQAgGmxsaHR0cF9zZXRfbGVu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PgtBhwEMPQtBiAEMPAtBiQEMOwtBigEMOgtBiwEMOQtBjAEMOAtBjQEMNwtBjgEMNgtBjwEMNQtBkAEMNAtBkQEMMwtBkgEMMgtBkwEMMQtBlAEMMAtBlQEMLwtBlgEMLgtBlwEMLQtBmAEMLAtBmQEMKwtBmgEMKgtBmwEMKQtBnAEMKAtBnQEMJwtBngEMJgtBnwEMJQtBoAEMJAtBoQEMIwtBogEMIgtBowEMIQtBpAEMIAtBpQEMHwtBpgEMHgtBpwEMHQtBqAEMHAtBqQEMGwtBqgEMGgtBqwEMGQtBrAEMGAtBrQEMFwtBrgEMFgtBAQwVC0GvAQwUC0GwAQwTC0GxAQwSC0GzAQwRC0GyAQwQC0G0AQwPC0G1AQwOC0G2AQwNC0G3AQwMC0G4AQwLC0G5AQwKC0G6AQwJC0G7AQwIC0HGAQwHC0G8AQwGC0G9AQwFC0G+AQwEC0G/AQwDC0HAAQwCC0HCAQwBC0HBAQshAwNAAkACQAJAAkACQAJAAkACQAJAIAICfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAgJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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iQEhAwykAgtBASABLQAAQd8ARw1nGiABQQFqIQEMXgtBigEhAyABIARGDaICIAIoAgAiACAEIAFraiEFIAEgAGtBAWohBgNAIAEtAAAgAEGMzwBqLQAARw1kIABBAUYN+gEgAEEBaiEAIAQgAUEBaiIBRw0ACyACIAU2AgAMogILQYsBIQMgASAERg2hAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGOzwBqLQAARw1kIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyiAgsgAkEANgIAIAZBAWohAUECDGULQYwBIQMgASAERg2gAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHwzwBqLQAARw1jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyhAgsgAkEANgIAIAZBAWohAUEfDGQLQY0BIQMgASAERg2fAiACKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHyzwBqLQAARw1iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAygAgsgAkEANgIAIAZBAWohAUEJDGMLIAEgBEYEQEGOASEDDJ8CCwJAAkAgAS0AAEHJAGsOBwBiYmJiYgFiCyABQQFqIQFB+AAhAwyGAgsgAUEBaiEBQfkAIQMMhQILQY8BIQMgASAERg2dAiACKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGRzwBqLQAARw1gIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAyeAgsgAkEANgIAIAZBAWohAUEYDGELQZABIQMgASAERg2cAiACKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGXzwBqLQAARw1fIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAydAgsgAkEANgIAIAZBAWohAUEXDGALQZEBIQMgASAERg2bAiACKAIAIgAgBCABa2ohBSABIABrQQZqIQYCQANAIAEtAAAgAEGazwBqLQAARw1eIABBBkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAIgBTYCAAycAgsgAkEANgIAIAZBAWohAUEV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JSIARQ0RIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMtAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0gIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMswELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0iIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMsgELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0OIAJB5QA2AhwgAiABNgIUIAIgADYCDEEAIQMMsQELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0dIAJB0wA2AhwgAiABNgIUIAIgADYCDEEAIQMMsAELIAIoAgQhACACQQA2AgQgAiAAIAEQJSIARQ0fIAJB0gA2AhwgAiABNgIUIAIgADYCDEEAIQMMrwELIABBP0cNASABQQFqCyEBQQUhAwyUAQtBACEDIAJBADYCHCACIAE2AhQgAkH9EjYCECACQQc2AgwMrAELIAJBADYCHCACIAE2AhQgAkHcCDYCECACQQc2AgxBACEDDKsBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNByACQeUANgIcIAIgATYCFCACIAA2AgxBACEDDKoBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNFiACQdMANgIcIAIgATYCFCACIAA2AgxBACEDDKkBCyACKAIEIQAgAkEANgIEIAIgACABECUiAEUNGCACQdIANgIcIAIgATYCFCACIAA2AgxBACEDDKgBCyACQQA2AhwgAiABNgIUIAJBxgo2AhAgAkEHNgIMQQAhAwynAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQMgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwymAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRIgAkHTADYCHCACIAE2AhQgAiAANgIMQQAhAwylAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDRQgAkHSADYCHCACIAE2AhQgAiAANgIMQQAhAwykAQsgAigCBCEAIAJBADYCBCACIAAgARAlIgBFDQAgAkHlADYCHCACIAE2AhQgAiAANgIMQQAhAwyjAQtB1QAhAwyJAQsgAEEVRwRAIAJBADYCHCACIAE2AhQgAkG5DTYCECACQRo2AgxB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AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB5ABrDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0HhJw8LQaQhDwtByywPC0H+MQ8LQcAkDwtBqyQPC0GNKA8LQeImDwtBgDAPC0G5Lw8LQdckDwtB7x8PC0HhHw8LQfofDwtB8iAPC0GoLw8LQa4yDwtBiDAPC0HsJw8LQYIiDwtBjh0PC0HQLg8LQcojDwtBxTIPC0HfHA8LQdIcDwtBxCAPC0HXIA8LQaIfDwtB7S4PC0GrMA8LQdQlDwtBzC4PC0H6Lg8LQfwrDwtB0jAPC0HxHQ8LQbsgDwtB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AAADAEGUCAsFBAAAAAUAQaQICwkGAAAABwAAAAgAQdwIC4otSW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwBB+TULAQEAQZA2C+ABAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQf03CwEBAEGROAteAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgBB/TkLAQEAQZE6C14CAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAEHwOwsNbG9zZWVlcC1hbGl2ZQBBiTwLAQEAQaA8C+ABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQYk+CwEBAEGgPgvnAQEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZABBsMAAC18BAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBBkMIACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQcDCAAstcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQoNClNNDQoNClRUUC9DRS9UU1AvAEH5wgALBQECAAEDAEGQwwAL4AEEAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+cQACwUBAgABAwBBkMUAC+ABBAEBBQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAQfnGAAsEAQAAAQBBkccAC98BAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBB+sgACwQBAAACAEGQyQALXwMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAEH6ygALBAEAAAEAQZDLAAsBAQBBqssAC0ECAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBB+swACwQBAAABAEGQzQALAQEAQZrNAAsGAgAAAAACAEGxzQALOgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQfDOAAuWAU5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==","base64")});var sYe=H((qsu,a6n)=>{"use strict";var e6n=["GET","HEAD","POST"],Eca=new Set(e6n),Sca=[101,204,205,304],t6n=[301,302,303,307,308],vca=new Set(t6n),r6n=["1","7","9","11","13","15","17","19","20","21","22","23","25","37","42","43","53","69","77","79","87","95","101","102","103","104","109","110","111","113","115","117","119","123","135","137","139","143","161","179","389","427","465","512","513","514","515","526","530","531","532","540","548","554","556","563","587","601","636","989","990","993","995","1719","1720","1723","2049","3659","4045","4190","5060","5061","6000","6566","6665","6666","6667","6668","6669","6679","6697","10080"],Bca=new Set(r6n),n6n=["","no-referrer","no-referrer-when-downgrade","same-origin","origin","strict-origin","origin-when-cross-origin","strict-origin-when-cross-origin","unsafe-url"],wca=new Set(n6n),Tca=["follow","manual","error"],i6n=["GET","HEAD","OPTIONS","TRACE"],Rca=new Set(i6n),Nca=["navigate","same-origin","no-cors","cors"],Dca=["omit","same-origin","include"],kca=["default","no-store","reload","no-cache","force-cache","only-if-cached"],xca=["content-encoding","content-language","content-location","content-type","content-length"],Gca=["half"],s6n=["CONNECT","TRACE","TRACK"],Fca=new Set(s6n),o6n=["audio","audioworklet","font","image","manifest","paintworklet","script","style","track","video","xslt",""],Zca=new Set(o6n);a6n.exports={subresource:o6n,forbiddenMethods:s6n,requestBodyHeader:xca,referrerPolicy:n6n,requestRedirect:Tca,requestMode:Nca,requestCredentials:Dca,requestCache:kca,redirectStatus:t6n,corsSafeListedMethods:e6n,nullBodyStatus:Sca,safeMethods:i6n,badPorts:r6n,requestDuplex:Gca,subresourceSet:Zca,badPortsSet:Bca,redirectStatusSet:vca,corsSafeListedMethodsSet:Eca,safeMethodsSet:Rca,forbiddenMethodsSet:Fca,referrerPolicySet:wca}});var G0r=H(($su,c6n)=>{"use strict";var x0r=Symbol.for("undici.globalOrigin.1");function Lca(){return globalThis[x0r]}function Vca(e){if(e===void 0){Object.defineProperty(globalThis,x0r,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!=="http:"&&t.protocol!=="https:")throw new TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,x0r,{value:t,writable:!0,enumerable:!1,configurable:!1})}c6n.exports={getGlobalOrigin:Lca,setGlobalOrigin:Vca}});var eV=H((eou,f6n)=>{"use strict";var iht=wt("node:assert"),Pca=new TextEncoder,oYe=/^[!#$%&'*+\-.^_|~A-Za-z0-9]+$/,Wca=/[\u000A\u000D\u0009\u0020]/,Oca=/[\u0009\u000A\u000C\u000D\u0020]/g,Mca=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/;function Hca(e){iht(e.protocol==="data:");let t=g6n(e,!0);t=t.slice(5);let r={position:0},n=Cwe(",",t,r),a=n.length;if(n=Kca(n,!0,!0),r.position>=t.length)return"failure";r.position++;let o=t.slice(a+1),l=A6n(o);if(/;(\u0020){0,}base64$/i.test(n)){let f=p6n(l);if(l=Qca(f),l==="failure")return"failure";n=n.slice(0,-6),n=n.replace(/(\u0020)+$/,""),n=n.slice(0,-1)}n.startsWith(";")&&(n="text/plain"+n);let A=F0r(n);return A==="failure"&&(A=F0r("text/plain;charset=US-ASCII")),{mimeType:A,body:l}}function g6n(e,t=!1){if(!t)return e.href;let r=e.href,n=e.hash.length,a=n===0?r:r.substring(0,r.length-n);return!n&&r.endsWith("#")?a.slice(0,-1):a}function sht(e,t,r){let n="";for(;r.position=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function u6n(e){return e>=48&&e<=57?e-48:(e&223)-55}function Yca(e){let t=e.length,r=new Uint8Array(t),n=0;for(let a=0;ae.length)return"failure";t.position++;let n=Cwe(";",e,t);if(n=nht(n,!1,!0),n.length===0||!oYe.test(n))return"failure";let a=r.toLowerCase(),o=n.toLowerCase(),l={type:a,subtype:o,parameters:new Map,essence:`${a}/${o}`};for(;t.positionWca.test(I),e,t);let A=sht(I=>I!==";"&&I!=="=",e,t);if(A=A.toLowerCase(),t.positione.length)break;let f=null;if(e[t.position]==='"')f=d6n(e,t,!0),Cwe(";",e,t);else if(f=Cwe(";",e,t),f=nht(f,!1,!0),f.length===0)continue;A.length!==0&&oYe.test(A)&&(f.length===0||Mca.test(f))&&!l.parameters.has(A)&&l.parameters.set(A,f)}return l}function Qca(e){e=e.replace(Oca,"");let t=e.length;if(t%4===0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4===1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return"failure";let r=Buffer.from(e,"base64");return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function d6n(e,t,r){let n=t.position,a="";for(iht(e[t.position]==='"'),t.position++;a+=sht(l=>l!=='"'&&l!=="\\",e,t),!(t.position>=e.length);){let o=e[t.position];if(t.position++,o==="\\"){if(t.position>=e.length){a+="\\";break}a+=e[t.position],t.position++}else{iht(o==='"');break}}return r?a:e.slice(n,t.position)}function Xca(e){iht(e!=="failure");let{parameters:t,essence:r}=e,n=r;for(let[a,o]of t.entries())n+=";",n+=a,n+="=",oYe.test(o)||(o=o.replace(/(\\|")/g,"\\$1"),o='"'+o,o+='"'),n+=o;return n}function Jca(e){return e===13||e===10||e===9||e===32}function nht(e,t=!0,r=!0){return Z0r(e,t,r,Jca)}function Uca(e){return e===13||e===10||e===9||e===12||e===32}function Kca(e,t=!0,r=!0){return Z0r(e,t,r,Uca)}function Z0r(e,t,r,n){let a=0,o=e.length-1;if(t)for(;a0&&n(e.charCodeAt(o));)o--;return a===0&&o===e.length-1?e:e.slice(a,o+1)}function p6n(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let r="",n=0,a=65535;for(;nt&&(a=t-n),r+=String.fromCharCode.apply(null,e.subarray(n,n+=a));return r}function jca(e){switch(e.essence){case"application/ecmascript":case"application/javascript":case"application/x-ecmascript":case"application/x-javascript":case"text/ecmascript":case"text/javascript":case"text/javascript1.0":case"text/javascript1.1":case"text/javascript1.2":case"text/javascript1.3":case"text/javascript1.4":case"text/javascript1.5":case"text/jscript":case"text/livescript":case"text/x-ecmascript":case"text/x-javascript":return"text/javascript";case"application/json":case"text/json":return"application/json";case"image/svg+xml":return"image/svg+xml";case"text/xml":case"application/xml":return"application/xml"}return e.subtype.endsWith("+json")?"application/json":e.subtype.endsWith("+xml")?"application/xml":""}f6n.exports={dataURLProcessor:Hca,URLSerializer:g6n,collectASequenceOfCodePoints:sht,collectASequenceOfCodePointsFast:Cwe,stringPercentDecode:A6n,parseMIMEType:F0r,collectAnHTTPQuotedString:d6n,serializeAMimeType:Xca,removeChars:Z0r,removeHTTPWhitespace:nht,minimizeSupportedMimeType:jca,HTTP_TOKEN_CODEPOINTS:oYe,isomorphicDecode:p6n}});var kk=H((tou,I6n)=>{"use strict";var{types:w8,inspect:zca}=wt("node:util"),{toUSVString:qca}=Em(),Cu={};Cu.converters={};Cu.util={};Cu.errors={};Cu.errors.exception=function(e){return new TypeError(`${e.header}: ${e.message}`)};Cu.errors.conversionFailed=function(e){let t=e.types.length===1?"":" one of",r=`${e.argument} could not be converted to${t}: ${e.types.join(", ")}.`;return Cu.errors.exception({header:e.prefix,message:r})};Cu.errors.invalidArgument=function(e){return Cu.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})};Cu.brandCheck=function(e,t,r){if(r?.strict!==!1){if(!(e instanceof t)){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}}else if(e?.[Symbol.toStringTag]!==t.prototype[Symbol.toStringTag]){let n=new TypeError("Illegal invocation");throw n.code="ERR_INVALID_THIS",n}};Cu.argumentLengthCheck=function({length:e},t,r){if(ea)throw Cu.errors.exception({header:"Integer conversion",message:`Value must be between ${o}-${a}, got ${l}.`});return l}return!Number.isNaN(l)&&n?.clamp===!0?(l=Math.min(Math.max(l,o),a),Math.floor(l)%2===0?l=Math.floor(l):l=Math.ceil(l),l):Number.isNaN(l)||l===0&&Object.is(0,l)||l===Number.POSITIVE_INFINITY||l===Number.NEGATIVE_INFINITY?0:(l=Cu.util.IntegerPart(l),l=l%Math.pow(2,t),r==="signed"&&l>=Math.pow(2,t)-1?l-Math.pow(2,t):l)};Cu.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t};Cu.util.Stringify=function(e){switch(Cu.util.Type(e)){case"Symbol":return`Symbol(${e.description})`;case"Object":return zca(e);case"String":return`"${e}"`;default:return`${e}`}};Cu.sequenceConverter=function(e){return(t,r,n,a)=>{if(Cu.util.Type(t)!=="Object")throw Cu.errors.exception({header:r,message:`${n} (${Cu.util.Stringify(t)}) is not iterable.`});let o=typeof a=="function"?a():t?.[Symbol.iterator]?.(),l=[],A=0;if(o===void 0||typeof o.next!="function")throw Cu.errors.exception({header:r,message:`${n} is not iterable.`});for(;;){let{done:f,value:I}=o.next();if(f)break;l.push(e(I,r,`${n}[${A++}]`))}return l}};Cu.recordConverter=function(e,t){return(r,n,a)=>{if(Cu.util.Type(r)!=="Object")throw Cu.errors.exception({header:n,message:`${a} ("${Cu.util.Type(r)}") is not an Object.`});let o={};if(!w8.isProxy(r)){let A=[...Object.getOwnPropertyNames(r),...Object.getOwnPropertySymbols(r)];for(let f of A){let I=e(f,n,a),C=t(r[f],n,a);o[I]=C}return o}let l=Reflect.ownKeys(r);for(let A of l)if(Reflect.getOwnPropertyDescriptor(r,A)?.enumerable){let I=e(A,n,a),C=t(r[A],n,a);o[I]=C}return o}};Cu.interfaceConverter=function(e){return(t,r,n,a)=>{if(a?.strict!==!1&&!(t instanceof e))throw Cu.errors.exception({header:r,message:`Expected ${n} ("${Cu.util.Stringify(t)}") to be an instance of ${e.name}.`});return t}};Cu.dictionaryConverter=function(e){return(t,r,n)=>{let a=Cu.util.Type(t),o={};if(a==="Null"||a==="Undefined")return o;if(a!=="Object")throw Cu.errors.exception({header:r,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let l of e){let{key:A,defaultValue:f,required:I,converter:C}=l;if(I===!0&&!Object.hasOwn(t,A))throw Cu.errors.exception({header:r,message:`Missing required key "${A}".`});let b=t[A],E=Object.hasOwn(l,"defaultValue");if(E&&b!==null&&(b??=f()),I||E||b!==void 0){if(b=C(b,r,`${n}.${A}`),l.allowedValues&&!l.allowedValues.includes(b))throw Cu.errors.exception({header:r,message:`${b} is not an accepted type. Expected one of ${l.allowedValues.join(", ")}.`});o[A]=b}}return o}};Cu.nullableConverter=function(e){return(t,r,n)=>t===null?t:e(t,r,n)};Cu.converters.DOMString=function(e,t,r,n){if(e===null&&n?.legacyNullToEmptyString)return"";if(typeof e=="symbol")throw Cu.errors.exception({header:t,message:`${r} is a symbol, which cannot be converted to a DOMString.`});return String(e)};Cu.converters.ByteString=function(e,t,r){let n=Cu.converters.DOMString(e,t,r);for(let a=0;a255)throw new TypeError(`Cannot convert argument to a ByteString because the character at index ${a} has a value of ${n.charCodeAt(a)} which is greater than 255.`);return n};Cu.converters.USVString=qca;Cu.converters.boolean=function(e){return!!e};Cu.converters.any=function(e){return e};Cu.converters["long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"signed",void 0,t,r)};Cu.converters["unsigned long long"]=function(e,t,r){return Cu.util.ConvertToInt(e,64,"unsigned",void 0,t,r)};Cu.converters["unsigned long"]=function(e,t,r){return Cu.util.ConvertToInt(e,32,"unsigned",void 0,t,r)};Cu.converters["unsigned short"]=function(e,t,r,n){return Cu.util.ConvertToInt(e,16,"unsigned",n,t,r)};Cu.converters.ArrayBuffer=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isAnyArrayBuffer(e))throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["ArrayBuffer"]});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.resizable||e.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.TypedArray=function(e,t,r,n,a){if(Cu.util.Type(e)!=="Object"||!w8.isTypedArray(e)||e.constructor.name!==t.name)throw Cu.errors.conversionFailed({prefix:r,argument:`${n} ("${Cu.util.Stringify(e)}")`,types:[t.name]});if(a?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.DataView=function(e,t,r,n){if(Cu.util.Type(e)!=="Object"||!w8.isDataView(e))throw Cu.errors.exception({header:t,message:`${r} is not a DataView.`});if(n?.allowShared===!1&&w8.isSharedArrayBuffer(e.buffer))throw Cu.errors.exception({header:"ArrayBuffer",message:"SharedArrayBuffer is not allowed."});if(e.buffer.resizable||e.buffer.growable)throw Cu.errors.exception({header:"ArrayBuffer",message:"Received a resizable ArrayBuffer."});return e};Cu.converters.BufferSource=function(e,t,r,n){if(w8.isAnyArrayBuffer(e))return Cu.converters.ArrayBuffer(e,t,r,{...n,allowShared:!1});if(w8.isTypedArray(e))return Cu.converters.TypedArray(e,e.constructor,t,r,{...n,allowShared:!1});if(w8.isDataView(e))return Cu.converters.DataView(e,t,r,{...n,allowShared:!1});throw Cu.errors.conversionFailed({prefix:t,argument:`${r} ("${Cu.util.Stringify(e)}")`,types:["BufferSource"]})};Cu.converters["sequence"]=Cu.sequenceConverter(Cu.converters.ByteString);Cu.converters["sequence>"]=Cu.sequenceConverter(Cu.converters["sequence"]);Cu.converters["record"]=Cu.recordConverter(Cu.converters.ByteString,Cu.converters.ByteString);I6n.exports={webidl:Cu}});var qW=H((rou,N6n)=>{"use strict";var{Transform:$ca}=wt("node:stream"),h6n=wt("node:zlib"),{redirectStatusSet:ela,referrerPolicySet:tla,badPortsSet:rla}=sYe(),{getGlobalOrigin:m6n}=G0r(),{collectASequenceOfCodePoints:rhe,collectAnHTTPQuotedString:nla,removeChars:ila,parseMIMEType:sla}=eV(),{performance:ola}=wt("node:perf_hooks"),{isBlobLike:ala,ReadableStreamFrom:cla,isValidHTTPToken:C6n,normalizedMethodRecordsBase:lla}=Em(),nhe=wt("node:assert"),{isUint8Array:ula}=wt("node:util/types"),{webidl:aYe}=kk(),_6n=[],aht;try{aht=wt("node:crypto");let e=["sha256","sha384","sha512"];_6n=aht.getHashes().filter(t=>e.includes(t))}catch{}function y6n(e){let t=e.urlList,r=t.length;return r===0?null:t[r-1].toString()}function gla(e,t){if(!ela.has(e.status))return null;let r=e.headersList.get("location",!0);return r!==null&&E6n(r)&&(b6n(r)||(r=Ala(r)),r=new URL(r,y6n(e))),r&&!r.hash&&(r.hash=t),r}function b6n(e){for(let t=0;t126||r<32)return!1}return!0}function Ala(e){return Buffer.from(e,"binary").toString("utf8")}function lYe(e){return e.urlList[e.urlList.length-1]}function dla(e){let t=lYe(e);return T6n(t)&&rla.has(t.port)?"blocked":"allowed"}function pla(e){return e instanceof Error||e?.constructor?.name==="Error"||e?.constructor?.name==="DOMException"}function fla(e){for(let t=0;t=32&&r<=126||r>=128&&r<=255))return!1}return!0}var Ila=C6n;function E6n(e){return(e[0]===" "||e[0]===" "||e[e.length-1]===" "||e[e.length-1]===" "||e.includes(` +`)||e.includes("\r")||e.includes("\0"))===!1}function hla(e,t){let{headersList:r}=t,n=(r.get("referrer-policy",!0)??"").split(","),a="";if(n.length>0)for(let o=n.length;o!==0;o--){let l=n[o-1].trim();if(tla.has(l)){a=l;break}}a!==""&&(e.referrerPolicy=a)}function mla(){return"allowed"}function Cla(){return"success"}function _la(){return"success"}function yla(e){let t=null;t=e.mode,e.headersList.set("sec-fetch-mode",t,!0)}function bla(e){let t=e.origin;if(!(t==="client"||t===void 0)){if(e.responseTainting==="cors"||e.mode==="websocket")e.headersList.append("origin",t,!0);else if(e.method!=="GET"&&e.method!=="HEAD"){switch(e.referrerPolicy){case"no-referrer":t=null;break;case"no-referrer-when-downgrade":case"strict-origin":case"strict-origin-when-cross-origin":e.origin&&V0r(e.origin)&&!V0r(lYe(e))&&(t=null);break;case"same-origin":cht(e,lYe(e))||(t=null);break;default:}e.headersList.append("origin",t,!0)}}}function _we(e,t){return e}function Ela(e,t,r){return!e?.startTime||e.startTime4096&&(n=a);let o=cht(e,n),l=cYe(n)&&!cYe(e.url);switch(t){case"origin":return a??L0r(r,!0);case"unsafe-url":return n;case"same-origin":return o?a:"no-referrer";case"origin-when-cross-origin":return o?n:a;case"strict-origin-when-cross-origin":{let A=lYe(e);return cht(n,A)?n:cYe(n)&&!cYe(A)?"no-referrer":a}case"strict-origin":case"no-referrer-when-downgrade":default:return l?"no-referrer":a}}function L0r(e,t){return nhe(e instanceof URL),e=new URL(e),e.protocol==="file:"||e.protocol==="about:"||e.protocol==="blank:"?"no-referrer":(e.username="",e.password="",e.hash="",t&&(e.pathname="",e.search=""),e)}function cYe(e){if(!(e instanceof URL))return!1;if(e.href==="about:blank"||e.href==="about:srcdoc"||e.protocol==="data:"||e.protocol==="file:")return!0;return t(e.origin);function t(r){if(r==null||r==="null")return!1;let n=new URL(r);return!!(n.protocol==="https:"||n.protocol==="wss:"||/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(n.hostname)||n.hostname==="localhost"||n.hostname.includes("localhost.")||n.hostname.endsWith(".localhost"))}}function Tla(e,t){if(aht===void 0)return!0;let r=v6n(t);if(r==="no metadata"||r.length===0)return!0;let n=Nla(r),a=Dla(r,n);for(let o of a){let l=o.algo,A=o.hash,f=aht.createHash(l).update(e).digest("base64");if(f[f.length-1]==="="&&(f[f.length-2]==="="?f=f.slice(0,-2):f=f.slice(0,-1)),kla(f,A))return!0}return!1}var Rla=/(?sha256|sha384|sha512)-((?[A-Za-z0-9+/]+|[A-Za-z0-9_-]+)={0,2}(?:\s|$)( +[!-~]*)?)?/i;function v6n(e){let t=[],r=!0;for(let n of e.split(" ")){r=!1;let a=Rla.exec(n);if(a===null||a.groups===void 0||a.groups.algo===void 0)continue;let o=a.groups.algo.toLowerCase();_6n.includes(o)&&t.push(a.groups)}return r===!0?"no metadata":t}function Nla(e){let t=e[0].algo;if(t[3]==="5")return t;for(let r=1;r{e=n,t=a}),resolve:e,reject:t}}function Fla(e){return e.controller.state==="aborted"}function Zla(e){return e.controller.state==="aborted"||e.controller.state==="terminated"}function Lla(e){return lla[e.toLowerCase()]??e}function Vla(e){let t=JSON.stringify(e);if(t===void 0)throw new TypeError("Value is not JSON serializable");return nhe(typeof t=="string"),t}var Pla=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function B6n(e,t,r=0,n=1){class a{#e;#t;#n;constructor(l,A){this.#e=l,this.#t=A,this.#n=0}next(){if(typeof this!="object"||this===null||!(#e in this))throw new TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let l=this.#n,A=this.#e[t],f=A.length;if(l>=f)return{value:void 0,done:!0};let{[r]:I,[n]:C}=A[l];this.#n=l+1;let b;switch(this.#t){case"key":b=I;break;case"value":b=C;break;case"key+value":b=[I,C];break}return{value:b,done:!1}}}return delete a.prototype.constructor,Object.setPrototypeOf(a.prototype,Pla),Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(o,l){return new a(o,l)}}function Wla(e,t,r,n=0,a=1){let o=B6n(e,r,n,a),l={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key")}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"value")}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return aYe.brandCheck(this,t),o(this,"key+value")}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(f,I=globalThis){if(aYe.brandCheck(this,t),aYe.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof f!="function")throw new TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:C,1:b}of o(this,"key+value"))f.call(I,b,C,this)}}};return Object.defineProperties(t.prototype,{...l,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:l.entries.value}})}async function Ola(e,t,r){let n=t,a=r,o;try{o=e.stream.getReader()}catch(l){a(l);return}try{n(await w6n(o))}catch(l){a(l)}}function Mla(e){return e instanceof ReadableStream||e[Symbol.toStringTag]==="ReadableStream"&&typeof e.tee=="function"}function Hla(e){try{e.close(),e.byobRequest?.respond(0)}catch(t){if(!t.message.includes("Controller is already closed")&&!t.message.includes("ReadableStream is already closed"))throw t}}var Yla=/[^\x00-\xFF]/;function oht(e){return nhe(!Yla.test(e)),e}async function w6n(e){let t=[],r=0;for(;;){let{done:n,value:a}=await e.read();if(n)return Buffer.concat(t,r);if(!ula(a))throw new TypeError("Received non-Uint8Array chunk");t.push(a),r+=a.length}}function Qla(e){nhe("protocol"in e);let t=e.protocol;return t==="about:"||t==="blob:"||t==="data:"}function V0r(e){return typeof e=="string"&&e[5]===":"&&e[0]==="h"&&e[1]==="t"&&e[2]==="t"&&e[3]==="p"&&e[4]==="s"||e.protocol==="https:"}function T6n(e){nhe("protocol"in e);let t=e.protocol;return t==="http:"||t==="https:"}function Xla(e,t){let r=e;if(!r.startsWith("bytes"))return"failure";let n={position:5};if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==61)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let a=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),o=a.length?Number(a):null;if(t&&rhe(f=>f===" "||f===" ",r,n),r.charCodeAt(n.position)!==45)return"failure";n.position++,t&&rhe(f=>f===" "||f===" ",r,n);let l=rhe(f=>{let I=f.charCodeAt(0);return I>=48&&I<=57},r,n),A=l.length?Number(l):null;return n.positionA?"failure":{rangeStartValue:o,rangeEndValue:A}}function Jla(e,t,r){let n="bytes ";return n+=oht(`${e}`),n+="-",n+=oht(`${t}`),n+="/",n+=oht(`${r}`),n}var P0r=class extends $ca{#e;constructor(t){super(),this.#e=t}_transform(t,r,n){if(!this._inflateStream){if(t.length===0){n();return}this._inflateStream=(t[0]&15)===8?h6n.createInflate(this.#e):h6n.createInflateRaw(this.#e),this._inflateStream.on("data",this.push.bind(this)),this._inflateStream.on("end",()=>this.push(null)),this._inflateStream.on("error",a=>this.destroy(a))}this._inflateStream.write(t,r,n)}_final(t){this._inflateStream&&(this._inflateStream.end(),this._inflateStream=null),t()}};function Ula(e){return new P0r(e)}function Kla(e){let t=null,r=null,n=null,a=R6n("content-type",e);if(a===null)return"failure";for(let o of a){let l=sla(o);l==="failure"||l.essence==="*/*"||(n=l,n.essence!==r?(t=null,n.parameters.has("charset")&&(t=n.parameters.get("charset")),r=n.essence):!n.parameters.has("charset")&&t!==null&&n.parameters.set("charset",t))}return n??"failure"}function jla(e){let t=e,r={position:0},n=[],a="";for(;r.positiono!=='"'&&o!==",",t,r),r.positiono===9||o===32),n.push(a),a=""}return n}function R6n(e,t){let r=t.get(e,!0);return r===null?null:jla(r)}var zla=new TextDecoder;function qla(e){return e.length===0?"":(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),zla.decode(e))}var W0r=class{get baseUrl(){return m6n()}get origin(){return this.baseUrl?.origin}policyContainer=S6n()},O0r=class{settingsObject=new W0r},$la=new O0r;N6n.exports={isAborted:Fla,isCancelled:Zla,isValidEncodedURL:b6n,createDeferredPromise:Gla,ReadableStreamFrom:cla,tryUpgradeRequestToAPotentiallyTrustworthyURL:xla,clampAndCoarsenConnectionTimingInfo:Ela,coarsenedSharedCurrentTime:Sla,determineRequestsReferrer:wla,makePolicyContainer:S6n,clonePolicyContainer:Bla,appendFetchMetadata:yla,appendRequestOriginHeader:bla,TAOCheck:_la,corsCheck:Cla,crossOriginResourcePolicyCheck:mla,createOpaqueTimingInfo:vla,setRequestReferrerPolicyOnRedirect:hla,isValidHTTPToken:C6n,requestBadPort:dla,requestCurrentURL:lYe,responseURL:y6n,responseLocationURL:gla,isBlobLike:ala,isURLPotentiallyTrustworthy:cYe,isValidReasonPhrase:fla,sameOrigin:cht,normalizeMethod:Lla,serializeJavascriptValueToJSONString:Vla,iteratorMixin:Wla,createIterator:B6n,isValidHeaderName:Ila,isValidHeaderValue:E6n,isErrorLike:pla,fullyReadBody:Ola,bytesMatch:Tla,isReadableStreamLike:Mla,readableStreamClose:Hla,isomorphicEncode:oht,urlIsLocal:Qla,urlHasHttpsScheme:V0r,urlIsHttpHttpsScheme:T6n,readAllBytes:w6n,simpleRangeHeaderValue:Xla,buildContentRange:Jla,parseMetadata:v6n,createInflate:Ula,extractMimeType:Kla,getDecodeSplit:R6n,utf8DecodeBytes:qla,environmentSettingsObject:$la}});var nae=H((nou,D6n)=>{"use strict";D6n.exports={kUrl:Symbol("url"),kHeaders:Symbol("headers"),kSignal:Symbol("signal"),kState:Symbol("state"),kDispatcher:Symbol("dispatcher")}});var H0r=H((iou,k6n)=>{"use strict";var{Blob:eua,File:tua}=wt("node:buffer"),{kState:O$}=nae(),{webidl:T8}=kk(),M0r=class e{constructor(t,r,n={}){let a=r,o=n.type,l=n.lastModified??Date.now();this[O$]={blobLike:t,name:a,type:o,lastModified:l}}stream(...t){return T8.brandCheck(this,e),this[O$].blobLike.stream(...t)}arrayBuffer(...t){return T8.brandCheck(this,e),this[O$].blobLike.arrayBuffer(...t)}slice(...t){return T8.brandCheck(this,e),this[O$].blobLike.slice(...t)}text(...t){return T8.brandCheck(this,e),this[O$].blobLike.text(...t)}get size(){return T8.brandCheck(this,e),this[O$].blobLike.size}get type(){return T8.brandCheck(this,e),this[O$].blobLike.type}get name(){return T8.brandCheck(this,e),this[O$].name}get lastModified(){return T8.brandCheck(this,e),this[O$].lastModified}get[Symbol.toStringTag](){return"File"}};T8.converters.Blob=T8.interfaceConverter(eua);function rua(e){return e instanceof tua||e&&(typeof e.stream=="function"||typeof e.arrayBuffer=="function")&&e[Symbol.toStringTag]==="File"}k6n.exports={FileLike:M0r,isFileLike:rua}});var gYe=H((sou,L6n)=>{"use strict";var{isBlobLike:lht,iteratorMixin:nua}=qW(),{kState:WZ}=nae(),{kEnumerableProperty:ywe}=Em(),{FileLike:x6n,isFileLike:iua}=H0r(),{webidl:W1}=kk(),{File:Z6n}=wt("node:buffer"),G6n=wt("node:util"),F6n=globalThis.File??Z6n,uYe=class e{constructor(t){if(t!==void 0)throw W1.errors.conversionFailed({prefix:"FormData constructor",argument:"Argument 1",types:["undefined"]});this[WZ]=[]}append(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.append";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"value",{strict:!1}):W1.converters.USVString(r,a,"value"),n=arguments.length===3?W1.converters.USVString(n,a,"filename"):void 0;let o=Y0r(t,r,n);this[WZ].push(o)}delete(t){W1.brandCheck(this,e);let r="FormData.delete";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ]=this[WZ].filter(n=>n.name!==t)}get(t){W1.brandCheck(this,e);let r="FormData.get";W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name");let n=this[WZ].findIndex(a=>a.name===t);return n===-1?null:this[WZ][n].value}getAll(t){W1.brandCheck(this,e);let r="FormData.getAll";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].filter(n=>n.name===t).map(n=>n.value)}has(t){W1.brandCheck(this,e);let r="FormData.has";return W1.argumentLengthCheck(arguments,1,r),t=W1.converters.USVString(t,r,"name"),this[WZ].findIndex(n=>n.name===t)!==-1}set(t,r,n=void 0){W1.brandCheck(this,e);let a="FormData.set";if(W1.argumentLengthCheck(arguments,2,a),arguments.length===3&&!lht(r))throw new TypeError("Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'");t=W1.converters.USVString(t,a,"name"),r=lht(r)?W1.converters.Blob(r,a,"name",{strict:!1}):W1.converters.USVString(r,a,"name"),n=arguments.length===3?W1.converters.USVString(n,a,"name"):void 0;let o=Y0r(t,r,n),l=this[WZ].findIndex(A=>A.name===t);l!==-1?this[WZ]=[...this[WZ].slice(0,l),o,...this[WZ].slice(l+1).filter(A=>A.name!==t)]:this[WZ].push(o)}[G6n.inspect.custom](t,r){let n=this[WZ].reduce((o,l)=>(o[l.name]?Array.isArray(o[l.name])?o[l.name].push(l.value):o[l.name]=[o[l.name],l.value]:o[l.name]=l.value,o),{__proto__:null});r.depth??=t,r.colors??=!0;let a=G6n.formatWithOptions(r,n);return`FormData ${a.slice(a.indexOf("]")+2)}`}};nua("FormData",uYe,WZ,"name","value");Object.defineProperties(uYe.prototype,{append:ywe,delete:ywe,get:ywe,getAll:ywe,has:ywe,set:ywe,[Symbol.toStringTag]:{value:"FormData",configurable:!0}});function Y0r(e,t,r){if(typeof t!="string"){if(iua(t)||(t=t instanceof Blob?new F6n([t],"blob",{type:t.type}):new x6n(t,"blob",{type:t.type})),r!==void 0){let n={type:t.type,lastModified:t.lastModified};t=t instanceof Z6n?new F6n([t],r,n):new x6n(t,r,n)}}return{name:e,value:t}}L6n.exports={FormData:uYe,makeEntry:Y0r}});var H6n=H((oou,M6n)=>{"use strict";var{isUSVString:V6n,bufferToLowerCasedHeaderName:sua}=Em(),{utf8DecodeBytes:oua}=qW(),{HTTP_TOKEN_CODEPOINTS:aua,isomorphicDecode:P6n}=eV(),{isFileLike:cua}=H0r(),{makeEntry:lua}=gYe(),uht=wt("node:assert"),{File:uua}=wt("node:buffer"),gua=globalThis.File??uua,Aua=Buffer.from('form-data; name="'),W6n=Buffer.from("; filename"),dua=Buffer.from("--"),pua=Buffer.from(`--\r `);function fua(e){for(let t=0;t70)return!1;for(let r=0;r=48&&n<=57||n>=65&&n<=90||n>=97&&n<=122||n===39||n===45||n===95))return!1}return!0}function hua(e,t){uht(t!=="failure"&&t.essence==="multipart/form-data");let r=t.parameters.get("boundary");if(r===void 0)return"failure";let n=Buffer.from(`--${r}`,"utf8"),a=[],o={position:0};for(;e[o.position]===13&&e[o.position+1]===10;)o.position+=2;let l=e.length;for(;e[l-1]===10&&e[l-2]===13;)l-=2;for(l!==e.length&&(e=e.subarray(0,l));;){if(e.subarray(o.position,o.position+n.length).equals(n))o.position+=n.length;else return"failure";if(o.position===e.length-2&&ght(e,dua,o)||o.position===e.length-4&&ght(e,pua,o))return a;if(e[o.position]!==13||e[o.position+1]!==10)return"failure";o.position+=2;let A=mua(e,o);if(A==="failure")return"failure";let{name:f,filename:I,contentType:C,encoding:b}=A;o.position+=2;let E;{let B=e.indexOf(n.subarray(2),o.position);if(B===-1)return"failure";E=e.subarray(o.position,B-4),o.position+=E.length,b==="base64"&&(E=Buffer.from(E.toString(),"base64"))}if(e[o.position]!==13||e[o.position+1]!==10)return"failure";o.position+=2;let N;I!==null?(C??="text/plain",fua(C)||(C=""),N=new gua([E],I,{type:C})):N=oua(Buffer.from(E)),uht(V6n(f)),uht(typeof N=="string"&&V6n(N)||cua(N)),a.push(lua(f,N,I))}}function mua(e,t){let r=null,n=null,a=null,o=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10)return r===null?"failure":{name:r,filename:n,contentType:a,encoding:o};let l=bwe(A=>A!==10&&A!==13&&A!==58,e,t);if(l=Q0r(l,!0,!0,A=>A===9||A===32),!aua.test(l.toString())||e[t.position]!==58)return"failure";switch(t.position++,bwe(A=>A===32||A===9,e,t),sua(l)){case"content-disposition":{if(r=n=null,!ght(e,Aua,t)||(t.position+=17,r=O6n(e,t),r===null))return"failure";if(ght(e,W6n,t)){let A=t.position+W6n.length;if(e[A]===42&&(t.position+=1,A+=1),e[A]!==61||e[A+1]!==34||(t.position+=12,n=O6n(e,t),n===null))return"failure"}break}case"content-type":{let A=bwe(f=>f!==10&&f!==13,e,t);A=Q0r(A,!1,!0,f=>f===9||f===32),a=P6n(A);break}case"content-transfer-encoding":{let A=bwe(f=>f!==10&&f!==13,e,t);A=Q0r(A,!1,!0,f=>f===9||f===32),o=P6n(A);break}default:bwe(A=>A!==10&&A!==13,e,t)}if(e[t.position]!==13&&e[t.position+1]!==10)return"failure";t.position+=2}}function O6n(e,t){uht(e[t.position-1]===34);let r=bwe(n=>n!==10&&n!==13&&n!==34,e,t);return e[t.position]!==34?null:(t.position++,r=new TextDecoder().decode(r).replace(/%0A/ig,` -`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),r)}function bwe(e,t,r){let n=r.position;for(;n0&&n(e[o]);)o--;return a===0&&o===e.length-1?e:e.subarray(a,o+1)}function ght(e,t,r){if(e.length{"use strict";var AYe=Em(),{ReadableStreamFrom:Cua,isBlobLike:Y6n,isReadableStreamLike:_ua,readableStreamClose:yua,createDeferredPromise:bua,fullyReadBody:Eua,extractMimeType:Sua,utf8DecodeBytes:J6n}=qW(),{FormData:Q6n}=gYe(),{kState:Swe}=nae(),{webidl:vua}=kk(),{Blob:Bua}=wt("node:buffer"),X0r=wt("node:assert"),{isErrored:U6n,isDisturbed:wua}=wt("node:stream"),{isArrayBuffer:Tua}=wt("node:util/types"),{serializeAMimeType:Rua}=eV(),{multipartFormDataParser:Nua}=H6n(),Aht=new TextEncoder;function Dua(){}var J0r=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,U0r;J0r&&(U0r=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!wua(t)&&!U6n(t)&&t.cancel("Response object has been garbage collected").catch(Dua)}));function K6n(e,t=!1){let r=null;e instanceof ReadableStream?r=e:Y6n(e)?r=e.stream():r=new ReadableStream({async pull(f){let I=typeof a=="string"?Aht.encode(a):a;I.byteLength&&f.enqueue(I),queueMicrotask(()=>yua(f))},start(){},type:"bytes"}),X0r(_ua(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(Tua(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(AYe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r +`).replace(/%0D/ig,"\r").replace(/%22/g,'"'),r)}function bwe(e,t,r){let n=r.position;for(;n0&&n(e[o]);)o--;return a===0&&o===e.length-1?e:e.subarray(a,o+1)}function ght(e,t,r){if(e.length{"use strict";var AYe=Em(),{ReadableStreamFrom:Cua,isBlobLike:Y6n,isReadableStreamLike:_ua,readableStreamClose:yua,createDeferredPromise:bua,fullyReadBody:Eua,extractMimeType:Sua,utf8DecodeBytes:J6n}=qW(),{FormData:Q6n}=gYe(),{kState:Swe}=nae(),{webidl:vua}=kk(),{Blob:Bua}=wt("node:buffer"),X0r=wt("node:assert"),{isErrored:U6n,isDisturbed:wua}=wt("node:stream"),{isArrayBuffer:Tua}=wt("node:util/types"),{serializeAMimeType:Rua}=eV(),{multipartFormDataParser:Nua}=H6n(),Aht=new TextEncoder;function Dua(){}var J0r=globalThis.FinalizationRegistry&&process.version.indexOf("v18")!==0,U0r;J0r&&(U0r=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!wua(t)&&!U6n(t)&&t.cancel("Response object has been garbage collected").catch(Dua)}));function K6n(e,t=!1){let r=null;e instanceof ReadableStream?r=e:Y6n(e)?r=e.stream():r=new ReadableStream({async pull(f){let I=typeof a=="string"?Aht.encode(a):a;I.byteLength&&f.enqueue(I),queueMicrotask(()=>yua(f))},start(){},type:"bytes"}),X0r(_ua(r));let n=null,a=null,o=null,l=null;if(typeof e=="string")a=e,l="text/plain;charset=UTF-8";else if(e instanceof URLSearchParams)a=e.toString(),l="application/x-www-form-urlencoded;charset=UTF-8";else if(Tua(e))a=new Uint8Array(e.slice());else if(ArrayBuffer.isView(e))a=new Uint8Array(e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength));else if(AYe.isFormDataLike(e)){let f=`----formdata-undici-0${`${Math.floor(Math.random()*1e11)}`.padStart(11,"0")}`,I=`--${f}\r Content-Disposition: form-data`;let C=Q=>Q.replace(/\n/g,"%0A").replace(/\r/g,"%0D").replace(/"/g,"%22"),b=Q=>Q.replace(/\r?\n|\r/g,`\r `),E=[],N=new Uint8Array([13,10]);o=0;let B=!1;for(let[Q,X]of e)if(typeof X=="string"){let ae=Aht.encode(I+`; name="${C(b(Q))}"\r \r @@ -416,7 +416,7 @@ ${b(X)}\r `);E.push(ae),o+=ae.byteLength}else{let ae=Aht.encode(`${I}; name="${C(b(Q))}"`+(X.name?`; filename="${C(X.name)}"`:"")+`\r Content-Type: ${X.type||"application/octet-stream"}\r \r -`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=Aht.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l=`multipart/form-data; boundary=${f}`}else if(Y6n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(AYe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof ReadableStream?e:Cua(e)}if((typeof a=="string"||AYe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new ReadableStream({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();if(b)queueMicrotask(()=>{I.close(),I.byobRequest?.respond(0)});else if(!U6n(r)){let E=new Uint8Array(C);E.byteLength&&I.enqueue(E)}return I.desiredSize>0},async cancel(I){await f.return()},type:"bytes"})}return[{stream:r,source:a,length:o},l]}function kua(e,t=!1){return e instanceof ReadableStream&&(X0r(!AYe.isDisturbed(e),"The body has already been consumed."),X0r(!e.locked,"The stream is locked.")),K6n(e,t)}function xua(e,t){let[r,n]=t.stream.tee();return J0r&&U0r.register(e,new WeakRef(r)),t.stream=r,{stream:n,length:t.length,source:t.source}}function Gua(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Fua(e){return{blob(){return Ewe(this,r=>{let n=X6n(this);return n===null?n="":n&&(n=Rua(n)),new Bua([r],{type:n})},e)},arrayBuffer(){return Ewe(this,r=>new Uint8Array(r).buffer,e)},text(){return Ewe(this,J6n,e)},json(){return Ewe(this,Lua,e)},formData(){return Ewe(this,r=>{let n=X6n(this);if(n!==null)switch(n.essence){case"multipart/form-data":{let a=Nua(r,n);if(a==="failure")throw new TypeError("Failed to parse body as FormData.");let o=new Q6n;return o[Swe]=a,o}case"application/x-www-form-urlencoded":{let a=new URLSearchParams(r.toString()),o=new Q6n;for(let[l,A]of a)o.append(l,A);return o}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return Ewe(this,r=>new Uint8Array(r),e)}}}function Zua(e){Object.assign(e.prototype,Fua(e))}async function Ewe(e,t,r){if(vua.brandCheck(e,r),j6n(e))throw new TypeError("Body is unusable: Body has already been read");Gua(e[Swe]);let n=bua(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[Swe].body==null?(o(Buffer.allocUnsafe(0)),n.promise):(await Eua(e[Swe].body,o,a),n.promise)}function j6n(e){let t=e[Swe].body;return t!=null&&(t.stream.locked||AYe.isDisturbed(t.stream))}function Lua(e){return JSON.parse(J6n(e))}function X6n(e){let t=e[Swe].headersList,r=Sua(t);return r==="failure"?null:r}z6n.exports={extractBody:K6n,safelyExtractBody:kua,cloneBody:xua,mixinBody:Zua,streamRegistry:U0r,hasFinalizationRegistry:J0r,bodyUnusable:j6n}});var c7n=H((aou,a7n)=>{"use strict";var Af=wt("node:assert"),II=Em(),{channels:q6n}=Awe(),K0r=R0r(),{RequestContentLengthMismatchError:ihe,ResponseContentLengthMismatchError:Vua,RequestAbortedError:i7n,HeadersTimeoutError:Pua,HeadersOverflowError:Wua,SocketError:mht,InformationalError:vwe,BodyTimeoutError:Oua,HTTPParserError:Mua,ResponseExceededMaxSizeError:Hua}=Y0(),{kUrl:s7n,kReset:tV,kClient:$0r,kParser:Ov,kBlocking:IYe,kRunning:EG,kPending:Yua,kSize:$6n,kWriting:sae,kQueue:kX,kNoRef:pYe,kKeepAliveDefaultTimeout:Qua,kHostHeader:Xua,kPendingIdx:Jua,kRunningIdx:DM,kError:kM,kPipelining:Iht,kSocket:Bwe,kKeepAliveTimeoutValue:Cht,kMaxHeadersSize:j0r,kKeepAliveMaxTimeout:Uua,kKeepAliveTimeoutThreshold:Kua,kHeadersTimeout:jua,kBodyTimeout:zua,kStrictContentLength:eyr,kMaxRequests:e7n,kCounter:qua,kMaxResponseSize:$ua,kOnError:ega,kResume:iae,kHTTPContext:o7n}=B2(),R8=jjn(),tga=Buffer.alloc(0),dht=Buffer[Symbol.species],pht=II.addListener,rga=II.removeAllListeners,z0r;async function nga(){let e=process.env.JEST_WORKER_ID?k0r():void 0,t;try{t=await WebAssembly.compile($jn())}catch{t=await WebAssembly.compile(e||k0r())}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onStatus(new dht(N8.buffer,o,a))||0},wasm_on_message_begin:r=>(Af(RR.ptr===r),RR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderField(new dht(N8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderValue(new dht(N8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(Af(RR.ptr===r),RR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onBody(new dht(N8.buffer,o,a))||0},wasm_on_message_complete:r=>(Af(RR.ptr===r),RR.onMessageComplete()||0)}})}var q0r=null,tyr=nga();tyr.catch();var RR=null,N8=null,fht=0,D8=null,iga=0,fYe=1,wwe=2|fYe,hht=4|fYe,ryr=8|iga,nyr=class{constructor(t,r,{exports:n}){Af(Number.isFinite(t[j0r])&&t[j0r]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(R8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[j0r],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[$ua]}setTimeout(t,r){t!==this.timeoutValue||r&fYe^this.timeoutType&fYe?(this.timeout&&(K0r.clearTimeout(this.timeout),this.timeout=null),t&&(r&fYe?this.timeout=K0r.setFastTimeout(t7n,t,new WeakRef(this)):(this.timeout=setTimeout(t7n,t,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=r}resume(){this.socket.destroyed||!this.paused||(Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_resume(this.ptr),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||tga),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){Af(this.ptr!=null),Af(RR==null),Af(!this.paused);let{socket:r,llhttp:n}=this;t.length>fht&&(D8&&n.free(D8),fht=Math.ceil(t.length/4096)*4096,D8=n.malloc(fht)),new Uint8Array(n.memory.buffer,D8,fht).set(t);try{let a;try{N8=t,RR=this,a=n.llhttp_execute(this.ptr,D8,t.length)}catch(l){throw l}finally{RR=null,N8=null}let o=n.llhttp_get_error_pos(this.ptr)-D8;if(a===R8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===R8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==R8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new Mua(A,R8.ERROR[a],t.slice(o))}}catch(a){II.destroy(r,a)}}destroy(){Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&K0r.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed)return-1;let n=r[kX][r[DM]];if(!n)return-1;n.onResponseStarted()}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];if(n.length===10){let a=II.bufferToLowerCasedHeaderName(n);a==="keep-alive"?this.keepAlive+=t.toString():a==="connection"&&(this.connection+=t.toString())}else n.length===14&&II.bufferToLowerCasedHeaderName(n)==="content-length"&&(this.contentLength+=t.toString());this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&II.destroy(this.socket,new Wua)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;Af(r),Af(n[Bwe]===a),Af(!a.destroyed),Af(!this.paused),Af((o.length&1)===0);let A=n[kX][n[DM]];Af(A),Af(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,a.unshift(t),a[Ov].destroy(),a[Ov]=null,a[$0r]=null,a[kM]=null,rga(a),n[Bwe]=null,n[o7n]=null,n[kX][n[DM]++]=null,n.emit("disconnect",n[s7n],[n],new vwe("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){II.destroy(a,f)}n[iae]()}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[kX][a[DM]];if(!f)return-1;if(Af(!this.upgrade),Af(this.statusCode<200),t===100)return II.destroy(o,new mht("bad response",II.getSocketInfo(o))),-1;if(r&&!f.upgrade)return II.destroy(o,new mht("bad upgrade",II.getSocketInfo(o))),-1;if(Af(this.timeoutType===wwe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[tV]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[zua];this.setTimeout(C,hht)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return Af(a[EG]===1),this.upgrade=!0,2;if(r)return Af(a[EG]===1),this.upgrade=!0,2;if(Af((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[Iht]){let C=this.keepAlive?II.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[Kua],a[Uua]);b<=0?o[tV]=!0:a[Cht]=b}else a[Cht]=a[Qua]}else o[tV]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[IYe]&&(o[IYe]=!1,a[iae]()),I?R8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[kX][r[DM]];if(Af(l),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),Af(a>=200),o>-1&&this.bytesRead+t.length>o)return II.destroy(n,new Hua),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return R8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;Af(n>=100),Af((this.headers.length&1)===0);let I=t[kX][t[DM]];if(Af(I),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return II.destroy(r,new Vua),-1;if(I.onComplete(o),t[kX][t[DM]++]=null,r[sae])return Af(t[EG]===0),II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;if(f){if(r[tV]&&t[EG]===0)return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;t[Iht]==null||t[Iht]===1?setImmediate(()=>t[iae]()):t[iae]()}else return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED}}};function t7n(e){let{socket:t,timeoutType:r,client:n,paused:a}=e.deref();r===wwe?(!t[sae]||t.writableNeedDrain||n[EG]>1)&&(Af(!a,"cannot be paused while waiting for headers"),II.destroy(t,new Pua)):r===hht?a||II.destroy(t,new Oua):r===ryr&&(Af(n[EG]===0&&n[Cht]),II.destroy(t,new vwe("socket idle timeout")))}async function sga(e,t){e[Bwe]=t,q0r||(q0r=await tyr,tyr=null),t[pYe]=!1,t[sae]=!1,t[tV]=!1,t[IYe]=!1,t[Ov]=new nyr(e,t,q0r),pht(t,"error",function(n){Af(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let a=this[Ov];if(n.code==="ECONNRESET"&&a.statusCode&&!a.shouldKeepAlive){a.onMessageComplete();return}this[kM]=n,this[$0r][ega](n)}),pht(t,"readable",function(){let n=this[Ov];n&&n.readMore()}),pht(t,"end",function(){let n=this[Ov];if(n.statusCode&&!n.shouldKeepAlive){n.onMessageComplete();return}II.destroy(this,new mht("other side closed",II.getSocketInfo(this)))}),pht(t,"close",function(){let n=this[$0r],a=this[Ov];a&&(!this[kM]&&a.statusCode&&!a.shouldKeepAlive&&a.onMessageComplete(),this[Ov].destroy(),this[Ov]=null);let o=this[kM]||new mht("closed",II.getSocketInfo(this));if(n[Bwe]=null,n[o7n]=null,n.destroyed){Af(n[Yua]===0);let l=n[kX].splice(n[DM]);for(let A=0;A0&&o.code!=="UND_ERR_INFO"){let l=n[kX][n[DM]];n[kX][n[DM]++]=null,II.errorRequest(n,l,o)}n[Jua]=n[DM],Af(n[EG]===0),n.emit("disconnect",n[s7n],[n],o),n[iae]()});let r=!1;return t.on("close",()=>{r=!0}),{version:"h1",defaultPipelining:1,write(...n){return cga(e,...n)},resume(){oga(e)},destroy(n,a){r?queueMicrotask(a):t.destroy(n).on("close",a)},get destroyed(){return t.destroyed},busy(n){return!!(t[sae]||t[tV]||t[IYe]||n&&(e[EG]>0&&!n.idempotent||e[EG]>0&&(n.upgrade||n.method==="CONNECT")||e[EG]>0&&II.bodyLength(n.body)!==0&&(II.isStream(n.body)||II.isAsyncIterable(n.body)||II.isFormDataLike(n.body))))}}}function oga(e){let t=e[Bwe];if(t&&!t.destroyed){if(e[$6n]===0?!t[pYe]&&t.unref&&(t.unref(),t[pYe]=!0):t[pYe]&&t.ref&&(t.ref(),t[pYe]=!1),e[$6n]===0)t[Ov].timeoutType!==ryr&&t[Ov].setTimeout(e[Cht],ryr);else if(e[EG]>0&&t[Ov].statusCode<200&&t[Ov].timeoutType!==wwe){let r=e[kX][e[DM]],n=r.headersTimeout!=null?r.headersTimeout:e[jua];t[Ov].setTimeout(n,wwe)}}}function aga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function cga(e,t){let{method:r,path:n,host:a,upgrade:o,blocking:l,reset:A}=t,{body:f,headers:I,contentLength:C}=t,b=r==="PUT"||r==="POST"||r==="PATCH"||r==="QUERY"||r==="PROPFIND"||r==="PROPPATCH";if(II.isFormDataLike(f)){z0r||(z0r=dYe().extractBody);let[Q,X]=z0r(f);t.contentType==null&&I.push("content-type",X),f=Q.stream,C=Q.length}else II.isBlobLike(f)&&t.contentType==null&&f.type&&I.push("content-type",f.type);f&&typeof f.read=="function"&&f.read(0);let E=II.bodyLength(f);if(C=E??C,C===null&&(C=t.contentLength),C===0&&!b&&(C=null),aga(r)&&C>0&&t.contentLength!==null&&t.contentLength!==C){if(e[eyr])return II.errorRequest(e,t,new ihe),!1;process.emitWarning(new ihe)}let N=e[Bwe],B=Q=>{t.aborted||t.completed||(II.errorRequest(e,t,Q||new i7n),II.destroy(f),II.destroy(N,new vwe("aborted")))};try{t.onConnect(B)}catch(Q){II.errorRequest(e,t,Q)}if(t.aborted)return!1;r==="HEAD"&&(N[tV]=!0),(o||r==="CONNECT")&&(N[tV]=!0),A!=null&&(N[tV]=A),e[e7n]&&N[qua]++>=e[e7n]&&(N[tV]=!0),l&&(N[IYe]=!0);let F=`${r} ${n} HTTP/1.1\r +`);E.push(ae,X,N),typeof X.size=="number"?o+=ae.byteLength+X.size+N.byteLength:B=!0}let F=Aht.encode(`--${f}--`);E.push(F),o+=F.byteLength,B&&(o=null),a=e,n=async function*(){for(let Q of E)Q.stream?yield*Q.stream():yield Q},l=`multipart/form-data; boundary=${f}`}else if(Y6n(e))a=e,o=e.size,e.type&&(l=e.type);else if(typeof e[Symbol.asyncIterator]=="function"){if(t)throw new TypeError("keepalive");if(AYe.isDisturbed(e)||e.locked)throw new TypeError("Response body object should not be disturbed or locked");r=e instanceof ReadableStream?e:Cua(e)}if((typeof a=="string"||AYe.isBuffer(a))&&(o=Buffer.byteLength(a)),n!=null){let f;r=new ReadableStream({async start(){f=n(e)[Symbol.asyncIterator]()},async pull(I){let{value:C,done:b}=await f.next();if(b)queueMicrotask(()=>{I.close(),I.byobRequest?.respond(0)});else if(!U6n(r)){let E=new Uint8Array(C);E.byteLength&&I.enqueue(E)}return I.desiredSize>0},async cancel(I){await f.return()},type:"bytes"})}return[{stream:r,source:a,length:o},l]}function kua(e,t=!1){return e instanceof ReadableStream&&(X0r(!AYe.isDisturbed(e),"The body has already been consumed."),X0r(!e.locked,"The stream is locked.")),K6n(e,t)}function xua(e,t){let[r,n]=t.stream.tee();return J0r&&U0r.register(e,new WeakRef(r)),t.stream=r,{stream:n,length:t.length,source:t.source}}function Gua(e){if(e.aborted)throw new DOMException("The operation was aborted.","AbortError")}function Fua(e){return{blob(){return Ewe(this,r=>{let n=X6n(this);return n===null?n="":n&&(n=Rua(n)),new Bua([r],{type:n})},e)},arrayBuffer(){return Ewe(this,r=>new Uint8Array(r).buffer,e)},text(){return Ewe(this,J6n,e)},json(){return Ewe(this,Lua,e)},formData(){return Ewe(this,r=>{let n=X6n(this);if(n!==null)switch(n.essence){case"multipart/form-data":{let a=Nua(r,n);if(a==="failure")throw new TypeError("Failed to parse body as FormData.");let o=new Q6n;return o[Swe]=a,o}case"application/x-www-form-urlencoded":{let a=new URLSearchParams(r.toString()),o=new Q6n;for(let[l,A]of a)o.append(l,A);return o}}throw new TypeError('Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".')},e)},bytes(){return Ewe(this,r=>new Uint8Array(r),e)}}}function Zua(e){Object.assign(e.prototype,Fua(e))}async function Ewe(e,t,r){if(vua.brandCheck(e,r),j6n(e))throw new TypeError("Body is unusable: Body has already been read");Gua(e[Swe]);let n=bua(),a=l=>n.reject(l),o=l=>{try{n.resolve(t(l))}catch(A){a(A)}};return e[Swe].body==null?(o(Buffer.allocUnsafe(0)),n.promise):(await Eua(e[Swe].body,o,a),n.promise)}function j6n(e){let t=e[Swe].body;return t!=null&&(t.stream.locked||AYe.isDisturbed(t.stream))}function Lua(e){return JSON.parse(J6n(e))}function X6n(e){let t=e[Swe].headersList,r=Sua(t);return r==="failure"?null:r}z6n.exports={extractBody:K6n,safelyExtractBody:kua,cloneBody:xua,mixinBody:Zua,streamRegistry:U0r,hasFinalizationRegistry:J0r,bodyUnusable:j6n}});var c7n=H((cou,a7n)=>{"use strict";var Af=wt("node:assert"),II=Em(),{channels:q6n}=Awe(),K0r=R0r(),{RequestContentLengthMismatchError:ihe,ResponseContentLengthMismatchError:Vua,RequestAbortedError:i7n,HeadersTimeoutError:Pua,HeadersOverflowError:Wua,SocketError:mht,InformationalError:vwe,BodyTimeoutError:Oua,HTTPParserError:Mua,ResponseExceededMaxSizeError:Hua}=Y0(),{kUrl:s7n,kReset:tV,kClient:$0r,kParser:Ov,kBlocking:IYe,kRunning:EG,kPending:Yua,kSize:$6n,kWriting:sae,kQueue:kX,kNoRef:pYe,kKeepAliveDefaultTimeout:Qua,kHostHeader:Xua,kPendingIdx:Jua,kRunningIdx:DM,kError:kM,kPipelining:Iht,kSocket:Bwe,kKeepAliveTimeoutValue:Cht,kMaxHeadersSize:j0r,kKeepAliveMaxTimeout:Uua,kKeepAliveTimeoutThreshold:Kua,kHeadersTimeout:jua,kBodyTimeout:zua,kStrictContentLength:eyr,kMaxRequests:e7n,kCounter:qua,kMaxResponseSize:$ua,kOnError:ega,kResume:iae,kHTTPContext:o7n}=B2(),R8=jjn(),tga=Buffer.alloc(0),dht=Buffer[Symbol.species],pht=II.addListener,rga=II.removeAllListeners,z0r;async function nga(){let e=process.env.JEST_WORKER_ID?k0r():void 0,t;try{t=await WebAssembly.compile($jn())}catch{t=await WebAssembly.compile(e||k0r())}return await WebAssembly.instantiate(t,{env:{wasm_on_url:(r,n,a)=>0,wasm_on_status:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onStatus(new dht(N8.buffer,o,a))||0},wasm_on_message_begin:r=>(Af(RR.ptr===r),RR.onMessageBegin()||0),wasm_on_header_field:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderField(new dht(N8.buffer,o,a))||0},wasm_on_header_value:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onHeaderValue(new dht(N8.buffer,o,a))||0},wasm_on_headers_complete:(r,n,a,o)=>(Af(RR.ptr===r),RR.onHeadersComplete(n,!!a,!!o)||0),wasm_on_body:(r,n,a)=>{Af(RR.ptr===r);let o=n-D8+N8.byteOffset;return RR.onBody(new dht(N8.buffer,o,a))||0},wasm_on_message_complete:r=>(Af(RR.ptr===r),RR.onMessageComplete()||0)}})}var q0r=null,tyr=nga();tyr.catch();var RR=null,N8=null,fht=0,D8=null,iga=0,fYe=1,wwe=2|fYe,hht=4|fYe,ryr=8|iga,nyr=class{constructor(t,r,{exports:n}){Af(Number.isFinite(t[j0r])&&t[j0r]>0),this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(R8.TYPE.RESPONSE),this.client=t,this.socket=r,this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.statusCode=null,this.statusText="",this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=t[j0r],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive="",this.contentLength="",this.connection="",this.maxResponseSize=t[$ua]}setTimeout(t,r){t!==this.timeoutValue||r&fYe^this.timeoutType&fYe?(this.timeout&&(K0r.clearTimeout(this.timeout),this.timeout=null),t&&(r&fYe?this.timeout=K0r.setFastTimeout(t7n,t,new WeakRef(this)):(this.timeout=setTimeout(t7n,t,new WeakRef(this)),this.timeout.unref())),this.timeoutValue=t):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=r}resume(){this.socket.destroyed||!this.paused||(Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_resume(this.ptr),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||tga),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let t=this.socket.read();if(t===null)break;this.execute(t)}}execute(t){Af(this.ptr!=null),Af(RR==null),Af(!this.paused);let{socket:r,llhttp:n}=this;t.length>fht&&(D8&&n.free(D8),fht=Math.ceil(t.length/4096)*4096,D8=n.malloc(fht)),new Uint8Array(n.memory.buffer,D8,fht).set(t);try{let a;try{N8=t,RR=this,a=n.llhttp_execute(this.ptr,D8,t.length)}catch(l){throw l}finally{RR=null,N8=null}let o=n.llhttp_get_error_pos(this.ptr)-D8;if(a===R8.ERROR.PAUSED_UPGRADE)this.onUpgrade(t.slice(o));else if(a===R8.ERROR.PAUSED)this.paused=!0,r.unshift(t.slice(o));else if(a!==R8.ERROR.OK){let l=n.llhttp_get_error_reason(this.ptr),A="";if(l){let f=new Uint8Array(n.memory.buffer,l).indexOf(0);A="Response does not match the HTTP/1.1 protocol ("+Buffer.from(n.memory.buffer,l,f).toString()+")"}throw new Mua(A,R8.ERROR[a],t.slice(o))}}catch(a){II.destroy(r,a)}}destroy(){Af(this.ptr!=null),Af(RR==null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&K0r.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(t){this.statusText=t.toString()}onMessageBegin(){let{socket:t,client:r}=this;if(t.destroyed)return-1;let n=r[kX][r[DM]];if(!n)return-1;n.onResponseStarted()}onHeaderField(t){let r=this.headers.length;r&1?this.headers[r-1]=Buffer.concat([this.headers[r-1],t]):this.headers.push(t),this.trackHeader(t.length)}onHeaderValue(t){let r=this.headers.length;(r&1)===1?(this.headers.push(t),r+=1):this.headers[r-1]=Buffer.concat([this.headers[r-1],t]);let n=this.headers[r-2];if(n.length===10){let a=II.bufferToLowerCasedHeaderName(n);a==="keep-alive"?this.keepAlive+=t.toString():a==="connection"&&(this.connection+=t.toString())}else n.length===14&&II.bufferToLowerCasedHeaderName(n)==="content-length"&&(this.contentLength+=t.toString());this.trackHeader(t.length)}trackHeader(t){this.headersSize+=t,this.headersSize>=this.headersMaxSize&&II.destroy(this.socket,new Wua)}onUpgrade(t){let{upgrade:r,client:n,socket:a,headers:o,statusCode:l}=this;Af(r),Af(n[Bwe]===a),Af(!a.destroyed),Af(!this.paused),Af((o.length&1)===0);let A=n[kX][n[DM]];Af(A),Af(A.upgrade||A.method==="CONNECT"),this.statusCode=null,this.statusText="",this.shouldKeepAlive=null,this.headers=[],this.headersSize=0,a.unshift(t),a[Ov].destroy(),a[Ov]=null,a[$0r]=null,a[kM]=null,rga(a),n[Bwe]=null,n[o7n]=null,n[kX][n[DM]++]=null,n.emit("disconnect",n[s7n],[n],new vwe("upgrade"));try{A.onUpgrade(l,o,a)}catch(f){II.destroy(a,f)}n[iae]()}onHeadersComplete(t,r,n){let{client:a,socket:o,headers:l,statusText:A}=this;if(o.destroyed)return-1;let f=a[kX][a[DM]];if(!f)return-1;if(Af(!this.upgrade),Af(this.statusCode<200),t===100)return II.destroy(o,new mht("bad response",II.getSocketInfo(o))),-1;if(r&&!f.upgrade)return II.destroy(o,new mht("bad upgrade",II.getSocketInfo(o))),-1;if(Af(this.timeoutType===wwe),this.statusCode=t,this.shouldKeepAlive=n||f.method==="HEAD"&&!o[tV]&&this.connection.toLowerCase()==="keep-alive",this.statusCode>=200){let C=f.bodyTimeout!=null?f.bodyTimeout:a[zua];this.setTimeout(C,hht)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(f.method==="CONNECT")return Af(a[EG]===1),this.upgrade=!0,2;if(r)return Af(a[EG]===1),this.upgrade=!0,2;if(Af((this.headers.length&1)===0),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[Iht]){let C=this.keepAlive?II.parseKeepAliveTimeout(this.keepAlive):null;if(C!=null){let b=Math.min(C-a[Kua],a[Uua]);b<=0?o[tV]=!0:a[Cht]=b}else a[Cht]=a[Qua]}else o[tV]=!0;let I=f.onHeaders(t,l,this.resume,A)===!1;return f.aborted?-1:f.method==="HEAD"||t<200?1:(o[IYe]&&(o[IYe]=!1,a[iae]()),I?R8.ERROR.PAUSED:0)}onBody(t){let{client:r,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let l=r[kX][r[DM]];if(Af(l),Af(this.timeoutType===hht),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),Af(a>=200),o>-1&&this.bytesRead+t.length>o)return II.destroy(n,new Hua),-1;if(this.bytesRead+=t.length,l.onData(t)===!1)return R8.ERROR.PAUSED}onMessageComplete(){let{client:t,socket:r,statusCode:n,upgrade:a,headers:o,contentLength:l,bytesRead:A,shouldKeepAlive:f}=this;if(r.destroyed&&(!n||f))return-1;if(a)return;Af(n>=100),Af((this.headers.length&1)===0);let I=t[kX][t[DM]];if(Af(I),this.statusCode=null,this.statusText="",this.bytesRead=0,this.contentLength="",this.keepAlive="",this.connection="",this.headers=[],this.headersSize=0,!(n<200)){if(I.method!=="HEAD"&&l&&A!==parseInt(l,10))return II.destroy(r,new Vua),-1;if(I.onComplete(o),t[kX][t[DM]++]=null,r[sae])return Af(t[EG]===0),II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;if(f){if(r[tV]&&t[EG]===0)return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED;t[Iht]==null||t[Iht]===1?setImmediate(()=>t[iae]()):t[iae]()}else return II.destroy(r,new vwe("reset")),R8.ERROR.PAUSED}}};function t7n(e){let{socket:t,timeoutType:r,client:n,paused:a}=e.deref();r===wwe?(!t[sae]||t.writableNeedDrain||n[EG]>1)&&(Af(!a,"cannot be paused while waiting for headers"),II.destroy(t,new Pua)):r===hht?a||II.destroy(t,new Oua):r===ryr&&(Af(n[EG]===0&&n[Cht]),II.destroy(t,new vwe("socket idle timeout")))}async function sga(e,t){e[Bwe]=t,q0r||(q0r=await tyr,tyr=null),t[pYe]=!1,t[sae]=!1,t[tV]=!1,t[IYe]=!1,t[Ov]=new nyr(e,t,q0r),pht(t,"error",function(n){Af(n.code!=="ERR_TLS_CERT_ALTNAME_INVALID");let a=this[Ov];if(n.code==="ECONNRESET"&&a.statusCode&&!a.shouldKeepAlive){a.onMessageComplete();return}this[kM]=n,this[$0r][ega](n)}),pht(t,"readable",function(){let n=this[Ov];n&&n.readMore()}),pht(t,"end",function(){let n=this[Ov];if(n.statusCode&&!n.shouldKeepAlive){n.onMessageComplete();return}II.destroy(this,new mht("other side closed",II.getSocketInfo(this)))}),pht(t,"close",function(){let n=this[$0r],a=this[Ov];a&&(!this[kM]&&a.statusCode&&!a.shouldKeepAlive&&a.onMessageComplete(),this[Ov].destroy(),this[Ov]=null);let o=this[kM]||new mht("closed",II.getSocketInfo(this));if(n[Bwe]=null,n[o7n]=null,n.destroyed){Af(n[Yua]===0);let l=n[kX].splice(n[DM]);for(let A=0;A0&&o.code!=="UND_ERR_INFO"){let l=n[kX][n[DM]];n[kX][n[DM]++]=null,II.errorRequest(n,l,o)}n[Jua]=n[DM],Af(n[EG]===0),n.emit("disconnect",n[s7n],[n],o),n[iae]()});let r=!1;return t.on("close",()=>{r=!0}),{version:"h1",defaultPipelining:1,write(...n){return cga(e,...n)},resume(){oga(e)},destroy(n,a){r?queueMicrotask(a):t.destroy(n).on("close",a)},get destroyed(){return t.destroyed},busy(n){return!!(t[sae]||t[tV]||t[IYe]||n&&(e[EG]>0&&!n.idempotent||e[EG]>0&&(n.upgrade||n.method==="CONNECT")||e[EG]>0&&II.bodyLength(n.body)!==0&&(II.isStream(n.body)||II.isAsyncIterable(n.body)||II.isFormDataLike(n.body))))}}}function oga(e){let t=e[Bwe];if(t&&!t.destroyed){if(e[$6n]===0?!t[pYe]&&t.unref&&(t.unref(),t[pYe]=!0):t[pYe]&&t.ref&&(t.ref(),t[pYe]=!1),e[$6n]===0)t[Ov].timeoutType!==ryr&&t[Ov].setTimeout(e[Cht],ryr);else if(e[EG]>0&&t[Ov].statusCode<200&&t[Ov].timeoutType!==wwe){let r=e[kX][e[DM]],n=r.headersTimeout!=null?r.headersTimeout:e[jua];t[Ov].setTimeout(n,wwe)}}}function aga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function cga(e,t){let{method:r,path:n,host:a,upgrade:o,blocking:l,reset:A}=t,{body:f,headers:I,contentLength:C}=t,b=r==="PUT"||r==="POST"||r==="PATCH"||r==="QUERY"||r==="PROPFIND"||r==="PROPPATCH";if(II.isFormDataLike(f)){z0r||(z0r=dYe().extractBody);let[Q,X]=z0r(f);t.contentType==null&&I.push("content-type",X),f=Q.stream,C=Q.length}else II.isBlobLike(f)&&t.contentType==null&&f.type&&I.push("content-type",f.type);f&&typeof f.read=="function"&&f.read(0);let E=II.bodyLength(f);if(C=E??C,C===null&&(C=t.contentLength),C===0&&!b&&(C=null),aga(r)&&C>0&&t.contentLength!==null&&t.contentLength!==C){if(e[eyr])return II.errorRequest(e,t,new ihe),!1;process.emitWarning(new ihe)}let N=e[Bwe],B=Q=>{t.aborted||t.completed||(II.errorRequest(e,t,Q||new i7n),II.destroy(f),II.destroy(N,new vwe("aborted")))};try{t.onConnect(B)}catch(Q){II.errorRequest(e,t,Q)}if(t.aborted)return!1;r==="HEAD"&&(N[tV]=!0),(o||r==="CONNECT")&&(N[tV]=!0),A!=null&&(N[tV]=A),e[e7n]&&N[qua]++>=e[e7n]&&(N[tV]=!0),l&&(N[IYe]=!0);let F=`${r} ${n} HTTP/1.1\r `;if(typeof a=="string"?F+=`host: ${a}\r `:F+=e[Xua],o?F+=`connection: upgrade\r upgrade: ${o}\r @@ -442,28 +442,28 @@ ${I.toString(16)}\r `,"latin1"):r===null&&t.write(`\r 0\r \r -`,"latin1"),r!==null&&a!==r){if(n[eyr])throw new ihe;process.emitWarning(new ihe)}t[Ov].timeout&&t[Ov].timeoutType===wwe&&t[Ov].timeout.refresh&&t[Ov].timeout.refresh(),n[iae]()}}destroy(t){let{socket:r,client:n,abort:a}=this;r[sae]=!1,t&&(Af(n[EG]<=1,"pipeline should only contain this request"),a(t))}};a7n.exports=sga});var f7n=H((cou,p7n)=>{"use strict";var xM=wt("node:assert"),{pipeline:gga}=wt("node:stream"),EC=Em(),{RequestContentLengthMismatchError:iyr,RequestAbortedError:l7n,SocketError:hYe,InformationalError:syr}=Y0(),{kUrl:yht,kReset:Eht,kClient:Twe,kRunning:Sht,kPending:Aga,kQueue:she,kPendingIdx:oyr,kRunningIdx:k8,kError:GX,kSocket:tD,kStrictContentLength:dga,kOnError:ayr,kMaxConcurrentStreams:d7n,kHTTP2Session:xX,kResume:oae,kSize:pga,kHTTPContext:fga}=B2(),M$=Symbol("open streams"),u7n=!1,bht;try{bht=wt("node:http2")}catch{bht={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:Iga,HTTP2_HEADER_METHOD:hga,HTTP2_HEADER_PATH:mga,HTTP2_HEADER_SCHEME:Cga,HTTP2_HEADER_CONTENT_LENGTH:_ga,HTTP2_HEADER_EXPECT:yga,HTTP2_HEADER_STATUS:bga}}=bht;function Ega(e){let t=[];for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let a of n)t.push(Buffer.from(r),Buffer.from(a));else t.push(Buffer.from(r),Buffer.from(n));return t}async function Sga(e,t){e[tD]=t,u7n||(u7n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let r=bht.connect(e[yht],{createConnection:()=>t,peerMaxConcurrentStreams:e[d7n]});r[M$]=0,r[Twe]=e,r[tD]=t,EC.addListener(r,"error",Bga),EC.addListener(r,"frameError",wga),EC.addListener(r,"end",Tga),EC.addListener(r,"goaway",Rga),EC.addListener(r,"close",function(){let{[Twe]:a}=this,{[tD]:o}=a,l=this[tD][GX]||this[GX]||new hYe("closed",EC.getSocketInfo(o));if(a[xX]=null,a.destroyed){xM(a[Aga]===0);let A=a[she].splice(a[k8]);for(let f=0;f{n=!0}),{version:"h2",defaultPipelining:1/0,write(...a){return Dga(e,...a)},resume(){vga(e)},destroy(a,o){n?queueMicrotask(o):t.destroy(a).on("close",o)},get destroyed(){return t.destroyed},busy(){return!1}}}function vga(e){let t=e[tD];t?.destroyed===!1&&(e[pga]===0&&e[d7n]===0?(t.unref(),e[xX].unref()):(t.ref(),e[xX].ref()))}function Bga(e){xM(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[tD][GX]=e,this[Twe][ayr](e)}function wga(e,t,r){if(r===0){let n=new syr(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[tD][GX]=n,this[Twe][ayr](n)}}function Tga(){let e=new hYe("other side closed",EC.getSocketInfo(this[tD]));this.destroy(e),EC.destroy(this[tD],e)}function Rga(e){let t=this[GX]||new hYe(`HTTP/2: "GOAWAY" frame received with code ${e}`,EC.getSocketInfo(this)),r=this[Twe];r[tD]=null,r[fga]=null,this[xX]!=null&&(this[xX].destroy(t),this[xX]=null),EC.destroy(this[tD],t);let n=r[she][r[k8]];r[she][r[k8]++]=null,EC.errorRequest(r,n,t),r[oyr]=r[k8],xM(r[Sht]===0),r.emit("disconnect",r[yht],[r],t),r[oae]()}function Nga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function Dga(e,t){let r=e[xX],{body:n,method:a,path:o,host:l,upgrade:A,expectContinue:f,signal:I,headers:C}=t;if(A)return EC.errorRequest(e,t,new Error("Upgrade not supported for H2")),!1;let b={};for(let ce=0;ce{t.aborted||t.completed||(ce=ce||new l7n,EC.errorRequest(e,t,ce),E!=null&&EC.destroy(E,ce),EC.destroy(n,ce),e[she][e[k8]++]=null,e[oae]())};try{t.onConnect(F)}catch(ce){EC.errorRequest(e,t,ce)}if(t.aborted)return!1;if(a==="CONNECT")return r.ref(),E=r.request(b,{endStream:!1,signal:I}),E.id&&!E.pending?(t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null):E.once("ready",()=>{t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),!0;b[mga]=o,b[Cga]="https";let Q=a==="PUT"||a==="POST"||a==="PATCH";n&&typeof n.read=="function"&&n.read(0);let X=EC.bodyLength(n);if(X==null&&(X=t.contentLength),(X===0||!Q)&&(X=null),Nga(a)&&X>0&&t.contentLength!=null&&t.contentLength!==X){if(e[dga])return EC.errorRequest(e,t,new iyr),!1;process.emitWarning(new iyr)}X!=null&&(xM(n,"no body must not have content length"),b[_ga]=`${X}`),r.ref();let ae=a==="GET"||a==="HEAD"||n===null;return f?(b[yga]="100-continue",E=r.request(b,{endStream:ae,signal:I}),E.once("continue",ne)):(E=r.request(b,{endStream:ae,signal:I}),ne()),++r[M$],E.once("response",ce=>{let{[bga]:fe,...ue}=ce;if(t.onResponseStarted(),t.aborted){let de=new l7n;EC.errorRequest(e,t,de),EC.destroy(E,de);return}t.onHeaders(Number(fe),Ega(ue),E.resume.bind(E),"")===!1&&E.pause(),E.on("data",de=>{t.onData(de)===!1&&E.pause()})}),E.once("end",()=>{(E.state?.state==null||E.state.state<6)&&t.onComplete([]),r[M$]===0&&r.unref(),F(new syr("HTTP/2: stream half-closed (remote)")),e[she][e[k8]++]=null,e[oyr]=e[k8],e[oae]()}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),E.once("error",function(ce){F(ce)}),E.once("frameError",(ce,fe)=>{F(new syr(`HTTP/2: "frameError" received - type ${ce}, code ${fe}`))}),!0;function ne(){!n||X===0?g7n(F,E,null,e,t,e[tD],X,Q):EC.isBuffer(n)?g7n(F,E,n,e,t,e[tD],X,Q):EC.isBlobLike(n)?typeof n.stream=="function"?A7n(F,E,n.stream(),e,t,e[tD],X,Q):xga(F,E,n,e,t,e[tD],X,Q):EC.isStream(n)?kga(F,e[tD],Q,E,n,e,t,X):EC.isIterable(n)?A7n(F,E,n,e,t,e[tD],X,Q):xM(!1)}}function g7n(e,t,r,n,a,o,l,A){try{r!=null&&EC.isBuffer(r)&&(xM(l===r.byteLength,"buffer body must have content length"),t.cork(),t.write(r),t.uncork(),t.end(),a.onBodySent(r)),A||(o[Eht]=!0),a.onRequestSent(),n[oae]()}catch(f){e(f)}}function kga(e,t,r,n,a,o,l,A){xM(A!==0||o[Sht]===0,"stream body cannot be pipelined");let f=gga(a,n,C=>{C?(EC.destroy(f,C),e(C)):(EC.removeAllListeners(f),l.onRequestSent(),r||(t[Eht]=!0),o[oae]())});EC.addListener(f,"data",I);function I(C){l.onBodySent(C)}}async function xga(e,t,r,n,a,o,l,A){xM(l===r.size,"blob body must have content length");try{if(l!=null&&l!==r.size)throw new iyr;let f=Buffer.from(await r.arrayBuffer());t.cork(),t.write(f),t.uncork(),t.end(),a.onBodySent(f),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(f){e(f)}}async function A7n(e,t,r,n,a,o,l,A){xM(l!==0||n[Sht]===0,"iterator body cannot be pipelined");let f=null;function I(){if(f){let b=f;f=null,b()}}let C=()=>new Promise((b,E)=>{xM(f===null),o[GX]?E(o[GX]):f=b});t.on("close",I).on("drain",I);try{for await(let b of r){if(o[GX])throw o[GX];let E=t.write(b);a.onBodySent(b),E||await C()}t.end(),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(b){e(b)}finally{t.off("close",I).off("drain",I)}}p7n.exports=Sga});var Bht=H((lou,m7n)=>{"use strict";var x8=Em(),{kBodyUsed:mYe}=B2(),lyr=wt("node:assert"),{InvalidArgumentError:Gga}=Y0(),Fga=wt("node:events"),Zga=[300,301,302,303,307,308],I7n=Symbol("body"),vht=class{constructor(t){this[I7n]=t,this[mYe]=!1}async*[Symbol.asyncIterator](){lyr(!this[mYe],"disturbed"),this[mYe]=!0,yield*this[I7n]}},cyr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new Gga("maxRedirections must be a positive number");x8.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],this.redirectionLimitReached=!1,x8.isStream(this.opts.body)?(x8.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){lyr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[mYe]=!1,Fga.prototype.on.call(this.opts.body,"data",function(){this[mYe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new vht(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&x8.isIterable(this.opts.body)&&(this.opts.body=new vht(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||x8.isDisturbed(this.opts.body)?null:Lga(t,r),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=x8.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=Vga(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function Lga(e,t){if(Zga.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var Pga=Bht();function Wga({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new Pga(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}C7n.exports=Wga});var vYe=H((gou,R7n)=>{"use strict";var H$=wt("node:assert"),v7n=wt("node:net"),Oga=wt("node:http"),ohe=Em(),{channels:Rwe}=Awe(),Mga=Ljn(),Hga=Iwe(),{InvalidArgumentError:tw,InformationalError:Yga,ClientDestroyedError:Qga}=Y0(),Xga=iYe(),{kUrl:G8,kServerName:aae,kClient:Jga,kBusy:uyr,kConnect:Uga,kResuming:ahe,kRunning:EYe,kPending:SYe,kSize:bYe,kQueue:FX,kConnected:Kga,kConnecting:Nwe,kNeedDrain:lae,kKeepAliveDefaultTimeout:_7n,kHostHeader:jga,kPendingIdx:ZX,kRunningIdx:Y$,kError:zga,kPipelining:Tht,kKeepAliveTimeoutValue:qga,kMaxHeadersSize:$ga,kKeepAliveMaxTimeout:eAa,kKeepAliveTimeoutThreshold:tAa,kHeadersTimeout:rAa,kBodyTimeout:nAa,kStrictContentLength:iAa,kConnector:CYe,kMaxRedirections:sAa,kMaxRequests:gyr,kCounter:oAa,kClose:aAa,kDestroy:cAa,kDispatch:lAa,kInterceptors:y7n,kLocalAddress:_Ye,kMaxResponseSize:uAa,kOnError:gAa,kHTTPContext:rw,kMaxConcurrentStreams:AAa,kResume:yYe}=B2(),dAa=c7n(),pAa=f7n(),b7n=!1,cae=Symbol("kClosedResolve"),E7n=()=>{};function B7n(e){return e[Tht]??e[rw]?.defaultPipelining??1}var Ayr=class extends Hga{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,maxConcurrentStreams:k,allowH2:et}={}){if(super(),C!==void 0)throw new tw("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new tw("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new tw("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new tw("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new tw("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new tw("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new tw("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new tw("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new tw("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new tw("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new tw("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new tw("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new tw("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new tw("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new tw("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new tw("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||v7n.isIP(de)===0))throw new tw("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new tw("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new tw("autoSelectFamilyAttemptTimeout must be a positive number");if(et!=null&&typeof et!="boolean")throw new tw("allowH2 must be a valid boolean value");if(k!=null&&(typeof k!="number"||k<1))throw new tw("maxConcurrentStreams must be a positive integer, greater than 0");typeof fe!="function"&&(fe=Xga({...X,maxCachedSessions:ne,allowH2:et,socketPath:F,timeout:A,...Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),r?.Client&&Array.isArray(r.Client)?(this[y7n]=r.Client,b7n||(b7n=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[y7n]=[fAa({maxRedirections:ce})],this[G8]=ohe.parseOrigin(t),this[CYe]=fe,this[Tht]=Q??1,this[$ga]=n||Oga.maxHeaderSize,this[_7n]=b??4e3,this[eAa]=N??6e5,this[tAa]=B??2e3,this[qga]=this[_7n],this[aae]=null,this[_Ye]=de??null,this[ahe]=0,this[lae]=0,this[jga]=`host: ${this[G8].hostname}${this[G8].port?`:${this[G8].port}`:""}\r -`,this[nAa]=f??3e5,this[rAa]=a??3e5,this[iAa]=ae??!0,this[sAa]=ce,this[gyr]=ue,this[cae]=null,this[uAa]=be>-1?be:-1,this[AAa]=k??100,this[rw]=null,this[FX]=[],this[Y$]=0,this[ZX]=0,this[yYe]=ct=>dyr(this,ct),this[gAa]=ct=>w7n(this,ct)}get pipelining(){return this[Tht]}set pipelining(t){this[Tht]=t,this[yYe](!0)}get[SYe](){return this[FX].length-this[ZX]}get[EYe](){return this[ZX]-this[Y$]}get[bYe](){return this[FX].length-this[Y$]}get[Kga](){return!!this[rw]&&!this[Nwe]&&!this[rw].destroyed}get[uyr](){return!!(this[rw]?.busy(null)||this[bYe]>=(B7n(this)||1)||this[SYe]>0)}[Uga](t){T7n(this),this.once("connect",t)}[lAa](t,r){let n=t.origin||this[G8].origin,a=new Mga(n,t,r);return this[FX].push(a),this[ahe]||(ohe.bodyLength(a.body)==null&&ohe.isIterable(a.body)?(this[ahe]=1,queueMicrotask(()=>dyr(this))):this[yYe](!0)),this[ahe]&&this[lae]!==2&&this[uyr]&&(this[lae]=2),this[lae]<2}async[aAa](){return new Promise(t=>{this[bYe]?this[cae]=t:t(null)})}async[cAa](t){return new Promise(r=>{let n=this[FX].splice(this[ZX]);for(let o=0;o{this[cae]&&(this[cae](),this[cae]=null),r(null)};this[rw]?(this[rw].destroy(t,a),this[rw]=null):queueMicrotask(a),this[yYe]()})}},fAa=wht();function w7n(e,t){if(e[EYe]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){H$(e[ZX]===e[Y$]);let r=e[FX].splice(e[Y$]);for(let n=0;n{e[CYe]({host:t,hostname:r,protocol:n,port:a,servername:e[aae],localAddress:e[_Ye]},(f,I)=>{f?A(f):l(I)})});if(e.destroyed){ohe.destroy(o.on("error",E7n),new Qga);return}H$(o);try{e[rw]=o.alpnProtocol==="h2"?await pAa(e,o):await dAa(e,o)}catch(l){throw o.destroy().on("error",E7n),l}e[Nwe]=!1,o[oAa]=0,o[gyr]=e[gyr],o[Jga]=e,o[zga]=null,Rwe.connected.hasSubscribers&&Rwe.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],socket:o}),e.emit("connect",e[G8],[e])}catch(o){if(e.destroyed)return;if(e[Nwe]=!1,Rwe.connectError.hasSubscribers&&Rwe.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(H$(e[EYe]===0);e[SYe]>0&&e[FX][e[ZX]].servername===e[aae];){let l=e[FX][e[ZX]++];ohe.errorRequest(e,l,o)}else w7n(e,o);e.emit("connectionError",e[G8],[e],o)}e[yYe]()}function S7n(e){e[lae]=0,e.emit("drain",e[G8],[e])}function dyr(e,t){e[ahe]!==2&&(e[ahe]=2,IAa(e,t),e[ahe]=0,e[Y$]>256&&(e[FX].splice(0,e[Y$]),e[ZX]-=e[Y$],e[Y$]=0))}function IAa(e,t){for(;;){if(e.destroyed){H$(e[SYe]===0);return}if(e[cae]&&!e[bYe]){e[cae](),e[cae]=null;return}if(e[rw]&&e[rw].resume(),e[uyr])e[lae]=2;else if(e[lae]===2){t?(e[lae]=1,queueMicrotask(()=>S7n(e))):S7n(e);continue}if(e[SYe]===0||e[EYe]>=(B7n(e)||1))return;let r=e[FX][e[ZX]];if(e[G8].protocol==="https:"&&e[aae]!==r.servername){if(e[EYe]>0)return;e[aae]=r.servername,e[rw]?.destroy(new Yga("servername changed"),()=>{e[rw]=null,dyr(e)})}if(e[Nwe])return;if(!e[rw]){T7n(e);return}if(e[rw].destroyed||e[rw].busy(r))return;!r.aborted&&e[rw].write(r)?e[ZX]++:e[FX].splice(e[ZX],1)}}R7n.exports=Ayr});var pyr=H((dou,N7n)=>{"use strict";var Rht=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};N7n.exports=class{constructor(){this.head=this.tail=new Rht}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Rht),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var k7n=H((pou,D7n)=>{var{kFree:hAa,kConnected:mAa,kPending:CAa,kQueued:_Aa,kRunning:yAa,kSize:bAa}=B2(),che=Symbol("pool"),fyr=class{constructor(t){this[che]=t}get connected(){return this[che][mAa]}get free(){return this[che][hAa]}get pending(){return this[che][CAa]}get queued(){return this[che][_Aa]}get running(){return this[che][yAa]}get size(){return this[che][bAa]}};D7n.exports=fyr});var yyr=H((fou,M7n)=>{"use strict";var EAa=Iwe(),SAa=pyr(),{kConnected:Iyr,kSize:x7n,kRunning:G7n,kPending:F7n,kQueued:BYe,kBusy:vAa,kFree:BAa,kUrl:wAa,kClose:TAa,kDestroy:RAa,kDispatch:NAa}=B2(),DAa=k7n(),rV=Symbol("clients"),OZ=Symbol("needDrain"),wYe=Symbol("queue"),hyr=Symbol("closed resolve"),myr=Symbol("onDrain"),Z7n=Symbol("onConnect"),L7n=Symbol("onDisconnect"),V7n=Symbol("onConnectionError"),Cyr=Symbol("get dispatcher"),W7n=Symbol("add client"),O7n=Symbol("remove client"),P7n=Symbol("stats"),_yr=class extends EAa{constructor(){super(),this[wYe]=new SAa,this[rV]=[],this[BYe]=0;let t=this;this[myr]=function(n,a){let o=t[wYe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[BYe]--,l=!this.dispatch(A.opts,A.handler)}this[OZ]=l,!this[OZ]&&t[OZ]&&(t[OZ]=!1,t.emit("drain",n,[t,...a])),t[hyr]&&o.isEmpty()&&Promise.all(t[rV].map(A=>A.close())).then(t[hyr])},this[Z7n]=(r,n)=>{t.emit("connect",r,[t,...n])},this[L7n]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[V7n]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[P7n]=new DAa(this)}get[vAa](){return this[OZ]}get[Iyr](){return this[rV].filter(t=>t[Iyr]).length}get[BAa](){return this[rV].filter(t=>t[Iyr]&&!t[OZ]).length}get[F7n](){let t=this[BYe];for(let{[F7n]:r}of this[rV])t+=r;return t}get[G7n](){let t=0;for(let{[G7n]:r}of this[rV])t+=r;return t}get[x7n](){let t=this[BYe];for(let{[x7n]:r}of this[rV])t+=r;return t}get stats(){return this[P7n]}async[TAa](){this[wYe].isEmpty()?await Promise.all(this[rV].map(t=>t.close())):await new Promise(t=>{this[hyr]=t})}async[RAa](t){for(;;){let r=this[wYe].shift();if(!r)break;r.handler.onError(t)}await Promise.all(this[rV].map(r=>r.destroy(t)))}[NAa](t,r){let n=this[Cyr]();return n?n.dispatch(t,r)||(n[OZ]=!0,this[OZ]=!this[Cyr]()):(this[OZ]=!0,this[wYe].push({opts:t,handler:r}),this[BYe]++),!this[OZ]}[W7n](t){return t.on("drain",this[myr]).on("connect",this[Z7n]).on("disconnect",this[L7n]).on("connectionError",this[V7n]),this[rV].push(t),this[OZ]&&queueMicrotask(()=>{this[OZ]&&this[myr](t[wAa],[this,t])}),this}[O7n](t){t.close(()=>{let r=this[rV].indexOf(t);r!==-1&&this[rV].splice(r,1)}),this[OZ]=this[rV].some(r=>!r[OZ]&&r.closed!==!0&&r.destroyed!==!0)}};M7n.exports={PoolBase:_yr,kClients:rV,kNeedDrain:OZ,kAddClient:W7n,kRemoveClient:O7n,kGetDispatcher:Cyr}});var Dwe=H((Iou,J7n)=>{"use strict";var{PoolBase:kAa,kClients:H7n,kNeedDrain:xAa,kAddClient:GAa,kGetDispatcher:FAa}=yyr(),ZAa=vYe(),{InvalidArgumentError:byr}=Y0(),Y7n=Em(),{kUrl:Q7n,kInterceptors:LAa}=B2(),VAa=iYe(),Eyr=Symbol("options"),Syr=Symbol("connections"),X7n=Symbol("factory");function PAa(e,t){return new ZAa(e,t)}var vyr=class extends kAa{constructor(t,{connections:r,factory:n=PAa,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new byr("invalid connections");if(typeof n!="function")throw new byr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new byr("connect must be a function or an object");typeof a!="function"&&(a=VAa({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[LAa]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Syr]=r||null,this[Q7n]=Y7n.parseOrigin(t),this[Eyr]={...Y7n.deepClone(E),connect:a,allowH2:b},this[Eyr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[X7n]=n}[FAa](){for(let t of this[H7n])if(!t[xAa])return t;if(!this[Syr]||this[H7n].length{"use strict";var{BalancedPoolMissingUpstreamError:WAa,InvalidArgumentError:OAa}=Y0(),{PoolBase:MAa,kClients:SG,kNeedDrain:TYe,kAddClient:HAa,kRemoveClient:YAa,kGetDispatcher:QAa}=yyr(),XAa=Dwe(),{kUrl:Byr,kInterceptors:JAa}=B2(),{parseOrigin:U7n}=Em(),K7n=Symbol("factory"),Nht=Symbol("options"),j7n=Symbol("kGreatestCommonDivisor"),lhe=Symbol("kCurrentWeight"),uhe=Symbol("kIndex"),GM=Symbol("kWeight"),Dht=Symbol("kMaxWeightPerServer"),kht=Symbol("kErrorPenalty");function UAa(e,t){if(e===0)return t;for(;t!==0;){let r=t;t=e%t,e=r}return e}function KAa(e,t){return new XAa(e,t)}var wyr=class extends MAa{constructor(t=[],{factory:r=KAa,...n}={}){if(super(),this[Nht]=n,this[uhe]=-1,this[lhe]=0,this[Dht]=this[Nht].maxWeightPerServer||100,this[kht]=this[Nht].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new OAa("factory must be a function.");this[JAa]=n.interceptors?.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[K7n]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=U7n(t).origin;if(this[SG].find(a=>a[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[K7n](r,Object.assign({},this[Nht]));this[HAa](n),n.on("connect",()=>{n[GM]=Math.min(this[Dht],n[GM]+this[kht])}),n.on("connectionError",()=>{n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats())});for(let a of this[SG])a[GM]=this[Dht];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let t=0;for(let r=0;ra[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[YAa](n),this}get upstreams(){return this[SG].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[Byr].origin)}[QAa](){if(this[SG].length===0)throw new WAa;if(!this[SG].find(o=>!o[TYe]&&o.closed!==!0&&o.destroyed!==!0)||this[SG].map(o=>o[TYe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[SG].findIndex(o=>!o[TYe]);for(;n++this[SG][a][GM]&&!o[TYe]&&(a=this[uhe]),this[uhe]===0&&(this[lhe]=this[lhe]-this[j7n],this[lhe]<=0&&(this[lhe]=this[Dht])),o[GM]>=this[lhe]&&!o[TYe])return o}return this[lhe]=this[SG][a][GM],this[uhe]=a,this[SG][a]}};z7n.exports=wyr});var kwe=H((mou,szn)=>{"use strict";var{InvalidArgumentError:xht}=Y0(),{kClients:uae,kRunning:$7n,kClose:jAa,kDestroy:zAa,kDispatch:qAa,kInterceptors:$Aa}=B2(),eda=Iwe(),tda=Dwe(),rda=vYe(),nda=Em(),ida=wht(),ezn=Symbol("onConnect"),tzn=Symbol("onDisconnect"),rzn=Symbol("onConnectionError"),sda=Symbol("maxRedirections"),nzn=Symbol("onDrain"),izn=Symbol("factory"),Tyr=Symbol("options");function oda(e,t){return t&&t.connections===1?new rda(e,t):new tda(e,t)}var Ryr=class extends eda{constructor({factory:t=oda,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new xht("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new xht("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new xht("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[$Aa]=a.interceptors?.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[ida({maxRedirections:r})],this[Tyr]={...nda.deepClone(a),connect:n},this[Tyr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[sda]=r,this[izn]=t,this[uae]=new Map,this[nzn]=(o,l)=>{this.emit("drain",o,[this,...l])},this[ezn]=(o,l)=>{this.emit("connect",o,[this,...l])},this[tzn]=(o,l,A)=>{this.emit("disconnect",o,[this,...l],A)},this[rzn]=(o,l,A)=>{this.emit("connectionError",o,[this,...l],A)}}get[$7n](){let t=0;for(let r of this[uae].values())t+=r[$7n];return t}[qAa](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new xht("opts.origin must be a non-empty string or URL.");let a=this[uae].get(n);return a||(a=this[izn](t.origin,this[Tyr]).on("drain",this[nzn]).on("connect",this[ezn]).on("disconnect",this[tzn]).on("connectionError",this[rzn]),this[uae].set(n,a)),a.dispatch(t,r)}async[jAa](){let t=[];for(let r of this[uae].values())t.push(r.close());this[uae].clear(),await Promise.all(t)}async[zAa](t){let r=[];for(let n of this[uae].values())r.push(n.destroy(t));this[uae].clear(),await Promise.all(r)}};szn.exports=Ryr});var kyr=H((Cou,lzn)=>{"use strict";var{kProxy:ada,kClose:cda,kDestroy:lda,kInterceptors:uda}=B2(),{URL:RYe}=wt("node:url"),gda=kwe(),Ada=Dwe(),dda=Iwe(),{InvalidArgumentError:Zht,RequestAbortedError:pda,SecureProxyConnectionError:fda}=Y0(),ozn=iYe(),Ght=Symbol("proxy agent"),Fht=Symbol("proxy client"),NYe=Symbol("proxy headers"),Nyr=Symbol("request tls settings"),azn=Symbol("proxy tls settings"),czn=Symbol("connect endpoint function");function Ida(e){return e==="https:"?443:80}function hda(e,t){return new Ada(e,t)}var mda=()=>{},Dyr=class extends dda{constructor(t){if(super(),!t||typeof t=="object"&&!(t instanceof RYe)&&!t.uri)throw new Zht("Proxy uri is mandatory");let{clientFactory:r=hda}=t;if(typeof r!="function")throw new Zht("Proxy opts.clientFactory must be a function.");let n=this.#e(t),{href:a,origin:o,port:l,protocol:A,username:f,password:I,hostname:C}=n;if(this[ada]={uri:a,protocol:A},this[uda]=t.interceptors?.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],this[Nyr]=t.requestTls,this[azn]=t.proxyTls,this[NYe]=t.headers||{},t.auth&&t.token)throw new Zht("opts.auth cannot be used in combination with opts.token");t.auth?this[NYe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[NYe]["proxy-authorization"]=t.token:f&&I&&(this[NYe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(f)}:${decodeURIComponent(I)}`).toString("base64")}`);let b=ozn({...t.proxyTls});this[czn]=ozn({...t.requestTls}),this[Fht]=r(n,{connect:b}),this[Ght]=new gda({...t,connect:async(E,N)=>{let B=E.host;E.port||(B+=`:${Ida(E.protocol)}`);try{let{socket:F,statusCode:Q}=await this[Fht].connect({origin:o,port:l,path:B,signal:E.signal,headers:{...this[NYe],host:E.host},servername:this[azn]?.servername||C});if(Q!==200&&(F.on("error",mda).destroy(),N(new pda(`Proxy response (${Q}) !== 200 when HTTP Tunneling`))),E.protocol!=="https:"){N(null,F);return}let X;this[Nyr]?X=this[Nyr].servername:X=E.servername,this[czn]({...E,servername:X,httpSocket:F},N)}catch(F){F.code==="ERR_TLS_CERT_ALTNAME_INVALID"?N(new fda(F)):N(F)}}})}dispatch(t,r){let n=Cda(t.headers);if(_da(n),n&&!("host"in n)&&!("Host"in n)){let{host:a}=new RYe(t.origin);n.host=a}return this[Ght].dispatch({...t,headers:n},r)}#e(t){return typeof t=="string"?new RYe(t):t instanceof RYe?t:new RYe(t.uri)}async[cda](){await this[Ght].close(),await this[Fht].close()}async[lda](){await this[Ght].destroy(),await this[Fht].destroy()}};function Cda(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new Zht("Proxy-Authorization should be sent in ProxyAgent constructor")}lzn.exports=Dyr});var fzn=H((_ou,pzn)=>{"use strict";var yda=Iwe(),{kClose:bda,kDestroy:Eda,kClosed:uzn,kDestroyed:gzn,kDispatch:Sda,kNoProxyAgent:DYe,kHttpProxyAgent:gae,kHttpsProxyAgent:ghe}=B2(),Azn=kyr(),vda=kwe(),Bda={"http:":80,"https:":443},dzn=!1,xyr=class extends yda{#e=null;#t=null;#n=null;constructor(t={}){super(),this.#n=t,dzn||(dzn=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:r,httpsProxy:n,noProxy:a,...o}=t;this[DYe]=new vda(o);let l=r??process.env.http_proxy??process.env.HTTP_PROXY;l?this[gae]=new Azn({...o,uri:l}):this[gae]=this[DYe];let A=n??process.env.https_proxy??process.env.HTTPS_PROXY;A?this[ghe]=new Azn({...o,uri:A}):this[ghe]=this[gae],this.#s()}[Sda](t,r){let n=new URL(t.origin);return this.#r(n).dispatch(t,r)}async[bda](){await this[DYe].close(),this[gae][uzn]||await this[gae].close(),this[ghe][uzn]||await this[ghe].close()}async[Eda](t){await this[DYe].destroy(t),this[gae][gzn]||await this[gae].destroy(t),this[ghe][gzn]||await this[ghe].destroy(t)}#r(t){let{protocol:r,host:n,port:a}=t;return n=n.replace(/:\d*$/,"").toLowerCase(),a=Number.parseInt(a,10)||Bda[r]||0,this.#i(n,a)?r==="https:"?this[ghe]:this[gae]:this[DYe]}#i(t,r){if(this.#o&&this.#s(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let n=0;n{"use strict";var xwe=wt("node:assert"),{kRetryHandlerDefaultRetry:Izn}=B2(),{RequestRetryError:kYe}=Y0(),{isDisturbed:hzn,parseHeaders:wda,parseRangeHeader:mzn,wrapRequestBody:Tda}=Em();function Rda(e){let t=Date.now();return new Date(e).getTime()-t}var Gyr=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts={...a,body:Tda(t.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[Izn],retryAfter:E??!0,maxTimeout:A??30*1e3,minTimeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[Izn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,minTimeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X}=r;if(l&&l!=="UND_ERR_REQ_RETRY"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ae=A?.["retry-after"];ae&&(ae=Number(ae),ae=Number.isNaN(ae)?Rda(ae):ae*1e3);let ne=ae>0?Math.min(ae,E):Math.min(b*N**(X-1),E);setTimeout(()=>a(null),ne)}onHeaders(t,r,n,a){let o=wda(r);if(this.retryCount+=1,t>=300)return this.retryOpts.statusCodes.includes(t)===!1?this.handler.onHeaders(t,r,n,a):(this.abort(new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,t!==206&&(this.start>0||t!==200))return this.abort(new kYe("server does not support the range header and the payload was partially consumed",t,{headers:o,data:{count:this.retryCount}})),!1;let A=mzn(o["content-range"]);if(!A)return this.abort(new kYe("Content-Range mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new kYe("ETag mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;let{start:f,size:I,end:C=I}=A;return xwe(this.start===f,"content-range mismatch"),xwe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=mzn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;xwe(f!=null&&Number.isFinite(f),"content-range mismatch"),xwe(C!=null&&Number.isFinite(C),"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return xwe(Number.isFinite(this.start)),xwe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(t,r,n,a)}let l=new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||hzn(this.opts.body))return this.handler.onError(t);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||hzn(this.opts.body))return this.handler.onError(n);if(this.start!==0){let a={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(a["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...a}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};Czn.exports=Gyr});var yzn=H((bou,_zn)=>{"use strict";var Nda=rYe(),Dda=Lht(),Fyr=class extends Nda{#e=null;#t=null;constructor(t,r={}){super(r),this.#e=t,this.#t=r}dispatch(t,r){let n=new Dda({...t,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:r});return this.#e.dispatch(t,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};_zn.exports=Fyr});var Oyr=H((Eou,Nzn)=>{"use strict";var Bzn=wt("node:assert"),{Readable:kda}=wt("node:stream"),{RequestAbortedError:wzn,NotSupportedError:xda,InvalidArgumentError:Gda,AbortError:Zyr}=Y0(),Tzn=Em(),{ReadableStreamFrom:Fda}=Em(),$W=Symbol("kConsume"),xYe=Symbol("kReading"),Aae=Symbol("kBody"),bzn=Symbol("kAbort"),Rzn=Symbol("kContentType"),Ezn=Symbol("kContentLength"),Zda=()=>{},Lyr=class extends kda{constructor({resume:t,abort:r,contentType:n="",contentLength:a,highWaterMark:o=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:o}),this._readableState.dataEmitted=!1,this[bzn]=r,this[$W]=null,this[Aae]=null,this[Rzn]=n,this[Ezn]=a,this[xYe]=!1}destroy(t){return!t&&!this._readableState.endEmitted&&(t=new wzn),t&&this[bzn](),super.destroy(t)}_destroy(t,r){this[xYe]?r(t):setImmediate(()=>{r(t)})}on(t,...r){return(t==="data"||t==="readable")&&(this[xYe]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[xYe]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[$W]&&t!==null?(Pyr(this[$W],t),this[xYe]?super.push(t):!0):super.push(t)}async text(){return GYe(this,"text")}async json(){return GYe(this,"json")}async blob(){return GYe(this,"blob")}async bytes(){return GYe(this,"bytes")}async arrayBuffer(){return GYe(this,"arrayBuffer")}async formData(){throw new xda}get bodyUsed(){return Tzn.isDisturbed(this)}get body(){return this[Aae]||(this[Aae]=Fda(this),this[$W]&&(this[Aae].getReader(),Bzn(this[Aae].locked))),this[Aae]}async dump(t){let r=Number.isFinite(t?.limit)?t.limit:131072,n=t?.signal;if(n!=null&&(typeof n!="object"||!("aborted"in n)))throw new Gda("signal must be an AbortSignal");return n?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((a,o)=>{this[Ezn]>r&&this.destroy(new Zyr);let l=()=>{this.destroy(n.reason??new Zyr)};n?.addEventListener("abort",l),this.on("close",function(){n?.removeEventListener("abort",l),n?.aborted?o(n.reason??new Zyr):a(null)}).on("error",Zda).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Lda(e){return e[Aae]&&e[Aae].locked===!0||e[$W]}function Vda(e){return Tzn.isDisturbed(e)||Lda(e)}async function GYe(e,t){return Bzn(!e[$W]),new Promise((r,n)=>{if(Vda(e)){let a=e._readableState;a.destroyed&&a.closeEmitted===!1?e.on("error",o=>{n(o)}).on("close",()=>{n(new TypeError("unusable"))}):n(a.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[$W]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){Wyr(this[$W],a)}).on("close",function(){this[$W].body!==null&&Wyr(this[$W],new wzn)}),Pda(e[$W])})})}function Pda(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let r=t.bufferIndex,n=t.buffer.length;for(let a=r;a2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return r.utf8Slice(a,n)}function Szn(e,t){if(e.length===0||t===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let r=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),n=0;for(let a=0;a{var Wda=wt("node:assert"),{ResponseStatusCodeError:Dzn}=Y0(),{chunksDecode:kzn}=Oyr(),Oda=128*1024;async function Mda({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Wda(t);let l=[],A=0;try{for await(let b of t)if(l.push(b),A+=b.length,A>Oda){l=[],A=0;break}}catch{l=[],A=0}let f=`Response status code ${n}${a?`: ${a}`:""}`;if(n===204||!r||!A){queueMicrotask(()=>e(new Dzn(f,n,o)));return}let I=Error.stackTraceLimit;Error.stackTraceLimit=0;let C;try{xzn(r)?C=JSON.parse(kzn(l,A)):Gzn(r)&&(C=kzn(l,A))}catch{}finally{Error.stackTraceLimit=I}queueMicrotask(()=>e(new Dzn(f,n,o,C)))}var xzn=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",Gzn=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";Fzn.exports={getResolveErrorBodyCallback:Mda,isContentTypeApplicationJson:xzn,isContentTypeText:Gzn}});var Vzn=H((vou,Hyr)=>{"use strict";var Hda=wt("node:assert"),{Readable:Yda}=Oyr(),{InvalidArgumentError:Gwe,RequestAbortedError:Zzn}=Y0(),FM=Em(),{getResolveErrorBodyCallback:Qda}=Myr(),{AsyncResource:Xda}=wt("node:async_hooks"),Vht=class extends Xda{constructor(t,r){if(!t||typeof t!="object")throw new Gwe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new Gwe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new Gwe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Gwe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new Gwe("invalid method");if(A&&typeof A!="function")throw new Gwe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw FM.isStream(l)&&FM.destroy(l.on("error",FM.nop),b),b}this.method=a,this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,this.signal=n,this.reason=null,this.removeAbortListener=null,FM.isStream(l)&&l.on("error",b=>{this.onError(b)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new Zzn:this.removeAbortListener=FM.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new Zzn,this.res?FM.destroy(this.res,this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(t,r){if(this.reason){t(this.reason);return}Hda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?FM.parseRawHeaders(r):FM.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let E=I==="raw"?FM.parseHeaders(r):b,N=E["content-type"],B=E["content-length"],F=new Yda({resume:n,abort:A,contentType:N,contentLength:this.method!=="HEAD"&&B?Number(B):null,highWaterMark:C});this.removeAbortListener&&F.on("close",this.removeAbortListener),this.callback=null,this.res=F,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Qda,null,{callback:o,body:F,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:F,context:f}))}onData(t){return this.res.push(t)}onComplete(t){FM.parseHeaders(t,this.trailers),this.res.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{FM.destroy(r,t)})),a&&(this.body=null,FM.destroy(a,t)),this.removeAbortListener&&(r?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function Lzn(e,t){if(t===void 0)return new Promise((r,n)=>{Lzn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Vht(e,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}Hyr.exports=Lzn;Hyr.exports.RequestHandler=Vht});var FYe=H((Bou,Ozn)=>{var{addAbortListener:Jda}=Em(),{RequestAbortedError:Uda}=Y0(),Fwe=Symbol("kListener"),F8=Symbol("kSignal");function Pzn(e){e.abort?e.abort(e[F8]?.reason):e.reason=e[F8]?.reason??new Uda,Wzn(e)}function Kda(e,t){if(e.reason=null,e[F8]=null,e[Fwe]=null,!!t){if(t.aborted){Pzn(e);return}e[F8]=t,e[Fwe]=()=>{Pzn(e)},Jda(e[F8],e[Fwe])}}function Wzn(e){e[F8]&&("removeEventListener"in e[F8]?e[F8].removeEventListener("abort",e[Fwe]):e[F8].removeListener("abort",e[Fwe]),e[F8]=null,e[Fwe]=null)}Ozn.exports={addSignal:Kda,removeSignal:Wzn}});var Qzn=H((wou,Yzn)=>{"use strict";var jda=wt("node:assert"),{finished:zda,PassThrough:qda}=wt("node:stream"),{InvalidArgumentError:Zwe,InvalidReturnValueError:$da}=Y0(),LX=Em(),{getResolveErrorBodyCallback:epa}=Myr(),{AsyncResource:tpa}=wt("node:async_hooks"),{addSignal:rpa,removeSignal:Mzn}=FYe(),Yyr=class extends tpa{constructor(t,r,n){if(!t||typeof t!="object")throw new Zwe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new Zwe("invalid callback");if(typeof r!="function")throw new Zwe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Zwe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new Zwe("invalid method");if(f&&typeof f!="function")throw new Zwe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw LX.isStream(A)&&LX.destroy(A.on("error",LX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,LX.isStream(A)&&A.on("error",b=>{this.onError(b)}),rpa(this,a)}onConnect(t,r){if(this.reason){t(this.reason);return}jda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?LX.parseRawHeaders(r):LX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?LX.parseHeaders(r):C)["content-type"];b=new qda,this.callback=null,this.runInAsyncScope(epa,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new $da("expected Writable");zda(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&LX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState?.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;Mzn(this),r&&(this.trailers=LX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;Mzn(this),this.factory=null,r?(this.res=null,LX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,LX.destroy(o,t))}};function Hzn(e,t,r){if(r===void 0)return new Promise((n,a)=>{Hzn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new Yyr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e?.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}Yzn.exports=Hzn});var Kzn=H((Tou,Uzn)=>{"use strict";var{Readable:Jzn,Duplex:npa,PassThrough:ipa}=wt("node:stream"),{InvalidArgumentError:ZYe,InvalidReturnValueError:spa,RequestAbortedError:Qyr}=Y0(),ZM=Em(),{AsyncResource:opa}=wt("node:async_hooks"),{addSignal:apa,removeSignal:cpa}=FYe(),Xzn=wt("node:assert"),Lwe=Symbol("resume"),Xyr=class extends Jzn{constructor(){super({autoDestroy:!0}),this[Lwe]=null}_read(){let{[Lwe]:t}=this;t&&(this[Lwe]=null,t())}_destroy(t,r){this._read(),r(t)}},Jyr=class extends Jzn{constructor(t){super({autoDestroy:!0}),this[Lwe]=t}_read(){this[Lwe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Qyr),r(t)}},Uyr=class extends opa{constructor(t,r){if(!t||typeof t!="object")throw new ZYe("invalid opts");if(typeof r!="function")throw new ZYe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new ZYe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new ZYe("invalid method");if(l&&typeof l!="function")throw new ZYe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new Xyr().on("error",ZM.nop),this.ret=new npa({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f?.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[Lwe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Qyr),B&&f&&B(),ZM.destroy(C,f),ZM.destroy(b,f),ZM.destroy(E,f),cpa(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,apa(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(this.reason){t(this.reason);return}Xzn(!a,"pipeline cannot be retried"),Xzn(!n.destroyed),this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new Jyr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",ZM.nop),f}if(!A||typeof A.on!="function")throw new spa("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;ZM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||ZM.destroy(f,new Qyr)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,ZM.destroy(r,t)}};function lpa(e,t){try{let r=new Uyr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new ipa().destroy(r)}}Uzn.exports=lpa});var tqn=H((Rou,eqn)=>{"use strict";var{InvalidArgumentError:Kyr,SocketError:upa}=Y0(),{AsyncResource:gpa}=wt("node:async_hooks"),jzn=Em(),{addSignal:Apa,removeSignal:zzn}=FYe(),qzn=wt("node:assert"),jyr=class extends gpa{constructor(t,r){if(!t||typeof t!="object")throw new Kyr("invalid opts");if(typeof r!="function")throw new Kyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Kyr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,Apa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}qzn(this.callback),this.abort=t,this.context=null}onHeaders(){throw new upa("bad upgrade",null)}onUpgrade(t,r,n){qzn(t===101);let{callback:a,opaque:o,context:l}=this;zzn(this),this.callback=null;let A=this.responseHeaders==="raw"?jzn.parseRawHeaders(r):jzn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;zzn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $zn(e,t){if(t===void 0)return new Promise((r,n)=>{$zn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new jyr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eqn.exports=$zn});var oqn=H((Nou,sqn)=>{"use strict";var dpa=wt("node:assert"),{AsyncResource:ppa}=wt("node:async_hooks"),{InvalidArgumentError:zyr,SocketError:fpa}=Y0(),rqn=Em(),{addSignal:Ipa,removeSignal:nqn}=FYe(),qyr=class extends ppa{constructor(t,r){if(!t||typeof t!="object")throw new zyr("invalid opts");if(typeof r!="function")throw new zyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new zyr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,Ipa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}dpa(this.callback),this.abort=t,this.context=r}onHeaders(){throw new fpa("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nqn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rqn.parseRawHeaders(r):rqn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nqn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iqn(e,t){if(t===void 0)return new Promise((r,n)=>{iqn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new qyr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sqn.exports=iqn});var aqn=H((Dou,Vwe)=>{"use strict";Vwe.exports.request=Vzn();Vwe.exports.stream=Qzn();Vwe.exports.pipeline=Kzn();Vwe.exports.upgrade=tqn();Vwe.exports.connect=oqn()});var ebr=H((kou,cqn)=>{"use strict";var{UndiciError:hpa}=Y0(),$yr=class e extends hpa{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cqn.exports={MockNotMatchedError:$yr}});var Pwe=H((xou,lqn)=>{"use strict";lqn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var LYe=H((Gou,_qn)=>{"use strict";var{MockNotMatchedError:Ahe}=ebr(),{kDispatches:Pht,kMockAgent:mpa,kOriginalDispatch:Cpa,kOrigin:_pa,kGetNetConnect:ypa}=Pwe(),{buildURL:bpa}=Em(),{STATUS_CODES:Epa}=wt("node:http"),{types:{isPromise:Spa}}=wt("node:util");function Q$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gqn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function Aqn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=Aqn(t,r);if(!Q$(n,a))return!1}return!0}function uqn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function vpa(e,{path:t,method:r,body:n,headers:a}){let o=Q$(e.path,t),l=Q$(e.method,r),A=typeof e.body<"u"?Q$(e.body,n):!0,f=dqn(e,a);return o&&l&&A&&f}function pqn(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function fqn(e,t){let r=t.query?bpa(t.path,t.query):t.path,n=typeof r=="string"?uqn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>Q$(uqn(o),n));if(a.length===0)throw new Ahe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>Q$(o,t.method)),a.length===0)throw new Ahe(`Mock dispatch not matched for method '${t.method}' on path '${n}'`);if(a=a.filter(({body:o})=>typeof o<"u"?Q$(o,t.body):!0),a.length===0)throw new Ahe(`Mock dispatch not matched for body '${t.body}' on path '${n}'`);if(a=a.filter(o=>dqn(o,t.headers)),a.length===0){let o=typeof t.headers=="object"?JSON.stringify(t.headers):t.headers;throw new Ahe(`Mock dispatch not matched for headers '${o}' on path '${n}'`)}return a[0]}function Bpa(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function tbr(e,t){let r=e.findIndex(n=>n.consumed?vpa(n,t):!1);r!==-1&&e.splice(r,1)}function Iqn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function rbr(e){let t=Object.keys(e),r=[];for(let n=0;n=E,n.pending=b0?setTimeout(()=>{N(this[Pht])},I):N(this[Pht]);function N(F,Q=o){let X=Array.isArray(e.headers)?nbr(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(Spa(ae)){ae.then(ue=>N(F,ue));return}let ne=pqn(ae),ce=rbr(l),fe=rbr(A);t.onConnect?.(ue=>t.onError(ue),null),t.onHeaders?.(a,ce,B,hqn(a)),t.onData?.(Buffer.from(ne)),t.onComplete?.(fe),tbr(F,r)}function B(){}return!0}function Tpa(){let e=this[mpa],t=this[_pa],r=this[Cpa];return function(a,o){if(e.isMockActive)try{mqn.call(this,a,o)}catch(l){if(l instanceof Ahe){let A=e[ypa]();if(A===!1)throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(Cqn(A,t))r.call(this,a,o);else throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function Cqn(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>Q$(n,r.host)))}function Rpa(e){if(e){let{agent:t,...r}=e;return r}}_qn.exports={getResponseData:pqn,getMockDispatch:fqn,addMockDispatch:Bpa,deleteMockDispatch:tbr,buildKey:Iqn,generateKeyValues:rbr,matchValue:Q$,getResponse:wpa,getStatusText:hqn,mockDispatch:mqn,buildMockDispatch:Tpa,checkNetConnect:Cqn,buildMockOptions:Rpa,getHeaderByName:Aqn,buildHeadersFromArray:nbr}});var ubr=H((Fou,lbr)=>{"use strict";var{getResponseData:Npa,buildKey:Dpa,addMockDispatch:ibr}=LYe(),{kDispatches:Wht,kDispatchKey:Oht,kDefaultHeaders:sbr,kDefaultTrailers:obr,kContentLength:abr,kMockDispatch:Mht}=Pwe(),{InvalidArgumentError:Z8}=Y0(),{buildURL:kpa}=Em(),Wwe=class{constructor(t){this[Mht]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("waitInMs must be a valid integer > 0");return this[Mht].delay=t,this}persist(){return this[Mht].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("repeatTimes must be a valid integer > 0");return this[Mht].times=t,this}},cbr=class{constructor(t,r){if(typeof t!="object")throw new Z8("opts must be an object");if(typeof t.path>"u")throw new Z8("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=kpa(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Oht]=Dpa(t),this[Wht]=r,this[sbr]={},this[obr]={},this[abr]=!1}createMockScopeDispatchData({statusCode:t,data:r,responseOptions:n}){let a=Npa(r),o=this[abr]?{"content-length":a.length}:{},l={...this[sbr],...o,...n.headers},A={...this[obr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t){if(typeof t.statusCode>"u")throw new Z8("statusCode must be defined");if(typeof t.responseOptions!="object"||t.responseOptions===null)throw new Z8("responseOptions must be an object")}reply(t){if(typeof t=="function"){let o=A=>{let f=t(A);if(typeof f!="object"||f===null)throw new Z8("reply options callback must return an object");let I={data:"",responseOptions:{},...f};return this.validateReplyParameters(I),{...this.createMockScopeDispatchData(I)}},l=ibr(this[Wht],this[Oht],o);return new Wwe(l)}let r={statusCode:t,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(r);let n=this.createMockScopeDispatchData(r),a=ibr(this[Wht],this[Oht],n);return new Wwe(a)}replyWithError(t){if(typeof t>"u")throw new Z8("error must be defined");let r=ibr(this[Wht],this[Oht],{error:t});return new Wwe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new Z8("headers must be defined");return this[sbr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new Z8("trailers must be defined");return this[obr]=t,this}replyContentLength(){return this[abr]=!0,this}};lbr.exports.MockInterceptor=cbr;lbr.exports.MockScope=Wwe});var dbr=H((Zou,wqn)=>{"use strict";var{promisify:xpa}=wt("node:util"),Gpa=vYe(),{buildMockDispatch:Fpa}=LYe(),{kDispatches:yqn,kMockAgent:bqn,kClose:Eqn,kOriginalClose:Sqn,kOrigin:vqn,kOriginalDispatch:Zpa,kConnected:gbr}=Pwe(),{MockInterceptor:Lpa}=ubr(),Bqn=B2(),{InvalidArgumentError:Vpa}=Y0(),Abr=class extends Gpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Vpa("Argument opts.agent must implement Agent");this[bqn]=r.agent,this[vqn]=t,this[yqn]=[],this[gbr]=1,this[Zpa]=this.dispatch,this[Sqn]=this.close.bind(this),this.dispatch=Fpa.call(this),this.close=this[Eqn]}get[Bqn.kConnected](){return this[gbr]}intercept(t){return new Lpa(t,this[yqn])}async[Eqn](){await xpa(this[Sqn])(),this[gbr]=0,this[bqn][Bqn.kClients].delete(this[vqn])}};wqn.exports=Abr});var Ibr=H((Lou,Gqn)=>{"use strict";var{promisify:Ppa}=wt("node:util"),Wpa=Dwe(),{buildMockDispatch:Opa}=LYe(),{kDispatches:Tqn,kMockAgent:Rqn,kClose:Nqn,kOriginalClose:Dqn,kOrigin:kqn,kOriginalDispatch:Mpa,kConnected:pbr}=Pwe(),{MockInterceptor:Hpa}=ubr(),xqn=B2(),{InvalidArgumentError:Ypa}=Y0(),fbr=class extends Wpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Ypa("Argument opts.agent must implement Agent");this[Rqn]=r.agent,this[kqn]=t,this[Tqn]=[],this[pbr]=1,this[Mpa]=this.dispatch,this[Dqn]=this.close.bind(this),this.dispatch=Opa.call(this),this.close=this[Nqn]}get[xqn.kConnected](){return this[pbr]}intercept(t){return new Hpa(t,this[Tqn])}async[Nqn](){await Ppa(this[Dqn])(),this[pbr]=0,this[Rqn][xqn.kClients].delete(this[kqn])}};Gqn.exports=fbr});var Zqn=H((Pou,Fqn)=>{"use strict";var Qpa={pronoun:"it",is:"is",was:"was",this:"this"},Xpa={pronoun:"they",is:"are",was:"were",this:"these"};Fqn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Qpa:Xpa,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var Vqn=H((Oou,Lqn)=>{"use strict";var{Transform:Jpa}=wt("node:stream"),{Console:Upa}=wt("node:console"),Kpa=process.versions.icu?"\u2705":"Y ",jpa=process.versions.icu?"\u274C":"N ";Lqn.exports=class{constructor({disableColors:t}={}){this.transform=new Jpa({transform(r,n,a){a(null,r)}}),this.logger=new Upa({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?Kpa:jpa,Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var Mqn=H((Mou,Oqn)=>{"use strict";var{kClients:dhe}=B2(),zpa=kwe(),{kAgent:hbr,kMockAgentSet:Hht,kMockAgentGet:Pqn,kDispatches:mbr,kIsMockActive:Yht,kNetConnect:phe,kGetNetConnect:qpa,kOptions:Qht,kFactory:Xht}=Pwe(),$pa=dbr(),efa=Ibr(),{matchValue:tfa,buildMockOptions:rfa}=LYe(),{InvalidArgumentError:Wqn,UndiciError:nfa}=Y0(),ifa=rYe(),sfa=Zqn(),ofa=Vqn(),Cbr=class extends ifa{constructor(t){if(super(t),this[phe]=!0,this[Yht]=!0,t?.agent&&typeof t.agent.dispatch!="function")throw new Wqn("Argument opts.agent must implement Agent");let r=t?.agent?t.agent:new zpa(t);this[hbr]=r,this[dhe]=r[dhe],this[Qht]=rfa(t)}get(t){let r=this[Pqn](t);return r||(r=this[Xht](t),this[Hht](t,r)),r}dispatch(t,r){return this.get(t.origin),this[hbr].dispatch(t,r)}async close(){await this[hbr].close(),this[dhe].clear()}deactivate(){this[Yht]=!1}activate(){this[Yht]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[phe])?this[phe].push(t):this[phe]=[t];else if(typeof t>"u")this[phe]=!0;else throw new Wqn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[phe]=!1}get isMockActive(){return this[Yht]}[Hht](t,r){this[dhe].set(t,r)}[Xht](t){let r=Object.assign({agent:this},this[Qht]);return this[Qht]&&this[Qht].connections===1?new $pa(t,r):new efa(t,r)}[Pqn](t){let r=this[dhe].get(t);if(r)return r;if(typeof t!="string"){let n=this[Xht]("http://localhost:9999");return this[Hht](t,n),n}for(let[n,a]of Array.from(this[dhe]))if(a&&typeof n!="string"&&tfa(n,t)){let o=this[Xht](t);return this[Hht](t,o),o[mbr]=a[mbr],o}}[qpa](){return this[phe]}pendingInterceptors(){let t=this[dhe];return Array.from(t.entries()).flatMap(([r,n])=>n[mbr].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new ofa}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new sfa("interceptor","interceptors").pluralize(r.length);throw new nfa(` +`,"latin1"),r!==null&&a!==r){if(n[eyr])throw new ihe;process.emitWarning(new ihe)}t[Ov].timeout&&t[Ov].timeoutType===wwe&&t[Ov].timeout.refresh&&t[Ov].timeout.refresh(),n[iae]()}}destroy(t){let{socket:r,client:n,abort:a}=this;r[sae]=!1,t&&(Af(n[EG]<=1,"pipeline should only contain this request"),a(t))}};a7n.exports=sga});var f7n=H((lou,p7n)=>{"use strict";var xM=wt("node:assert"),{pipeline:gga}=wt("node:stream"),EC=Em(),{RequestContentLengthMismatchError:iyr,RequestAbortedError:l7n,SocketError:hYe,InformationalError:syr}=Y0(),{kUrl:yht,kReset:Eht,kClient:Twe,kRunning:Sht,kPending:Aga,kQueue:she,kPendingIdx:oyr,kRunningIdx:k8,kError:GX,kSocket:tD,kStrictContentLength:dga,kOnError:ayr,kMaxConcurrentStreams:d7n,kHTTP2Session:xX,kResume:oae,kSize:pga,kHTTPContext:fga}=B2(),M$=Symbol("open streams"),u7n=!1,bht;try{bht=wt("node:http2")}catch{bht={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:Iga,HTTP2_HEADER_METHOD:hga,HTTP2_HEADER_PATH:mga,HTTP2_HEADER_SCHEME:Cga,HTTP2_HEADER_CONTENT_LENGTH:_ga,HTTP2_HEADER_EXPECT:yga,HTTP2_HEADER_STATUS:bga}}=bht;function Ega(e){let t=[];for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let a of n)t.push(Buffer.from(r),Buffer.from(a));else t.push(Buffer.from(r),Buffer.from(n));return t}async function Sga(e,t){e[tD]=t,u7n||(u7n=!0,process.emitWarning("H2 support is experimental, expect them to change at any time.",{code:"UNDICI-H2"}));let r=bht.connect(e[yht],{createConnection:()=>t,peerMaxConcurrentStreams:e[d7n]});r[M$]=0,r[Twe]=e,r[tD]=t,EC.addListener(r,"error",Bga),EC.addListener(r,"frameError",wga),EC.addListener(r,"end",Tga),EC.addListener(r,"goaway",Rga),EC.addListener(r,"close",function(){let{[Twe]:a}=this,{[tD]:o}=a,l=this[tD][GX]||this[GX]||new hYe("closed",EC.getSocketInfo(o));if(a[xX]=null,a.destroyed){xM(a[Aga]===0);let A=a[she].splice(a[k8]);for(let f=0;f{n=!0}),{version:"h2",defaultPipelining:1/0,write(...a){return Dga(e,...a)},resume(){vga(e)},destroy(a,o){n?queueMicrotask(o):t.destroy(a).on("close",o)},get destroyed(){return t.destroyed},busy(){return!1}}}function vga(e){let t=e[tD];t?.destroyed===!1&&(e[pga]===0&&e[d7n]===0?(t.unref(),e[xX].unref()):(t.ref(),e[xX].ref()))}function Bga(e){xM(e.code!=="ERR_TLS_CERT_ALTNAME_INVALID"),this[tD][GX]=e,this[Twe][ayr](e)}function wga(e,t,r){if(r===0){let n=new syr(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[tD][GX]=n,this[Twe][ayr](n)}}function Tga(){let e=new hYe("other side closed",EC.getSocketInfo(this[tD]));this.destroy(e),EC.destroy(this[tD],e)}function Rga(e){let t=this[GX]||new hYe(`HTTP/2: "GOAWAY" frame received with code ${e}`,EC.getSocketInfo(this)),r=this[Twe];r[tD]=null,r[fga]=null,this[xX]!=null&&(this[xX].destroy(t),this[xX]=null),EC.destroy(this[tD],t);let n=r[she][r[k8]];r[she][r[k8]++]=null,EC.errorRequest(r,n,t),r[oyr]=r[k8],xM(r[Sht]===0),r.emit("disconnect",r[yht],[r],t),r[oae]()}function Nga(e){return e!=="GET"&&e!=="HEAD"&&e!=="OPTIONS"&&e!=="TRACE"&&e!=="CONNECT"}function Dga(e,t){let r=e[xX],{body:n,method:a,path:o,host:l,upgrade:A,expectContinue:f,signal:I,headers:C}=t;if(A)return EC.errorRequest(e,t,new Error("Upgrade not supported for H2")),!1;let b={};for(let ce=0;ce{t.aborted||t.completed||(ce=ce||new l7n,EC.errorRequest(e,t,ce),E!=null&&EC.destroy(E,ce),EC.destroy(n,ce),e[she][e[k8]++]=null,e[oae]())};try{t.onConnect(F)}catch(ce){EC.errorRequest(e,t,ce)}if(t.aborted)return!1;if(a==="CONNECT")return r.ref(),E=r.request(b,{endStream:!1,signal:I}),E.id&&!E.pending?(t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null):E.once("ready",()=>{t.onUpgrade(null,null,E),++r[M$],e[she][e[k8]++]=null}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),!0;b[mga]=o,b[Cga]="https";let Q=a==="PUT"||a==="POST"||a==="PATCH";n&&typeof n.read=="function"&&n.read(0);let X=EC.bodyLength(n);if(X==null&&(X=t.contentLength),(X===0||!Q)&&(X=null),Nga(a)&&X>0&&t.contentLength!=null&&t.contentLength!==X){if(e[dga])return EC.errorRequest(e,t,new iyr),!1;process.emitWarning(new iyr)}X!=null&&(xM(n,"no body must not have content length"),b[_ga]=`${X}`),r.ref();let ae=a==="GET"||a==="HEAD"||n===null;return f?(b[yga]="100-continue",E=r.request(b,{endStream:ae,signal:I}),E.once("continue",ne)):(E=r.request(b,{endStream:ae,signal:I}),ne()),++r[M$],E.once("response",ce=>{let{[bga]:fe,...ue}=ce;if(t.onResponseStarted(),t.aborted){let de=new l7n;EC.errorRequest(e,t,de),EC.destroy(E,de);return}t.onHeaders(Number(fe),Ega(ue),E.resume.bind(E),"")===!1&&E.pause(),E.on("data",de=>{t.onData(de)===!1&&E.pause()})}),E.once("end",()=>{(E.state?.state==null||E.state.state<6)&&t.onComplete([]),r[M$]===0&&r.unref(),F(new syr("HTTP/2: stream half-closed (remote)")),e[she][e[k8]++]=null,e[oyr]=e[k8],e[oae]()}),E.once("close",()=>{r[M$]-=1,r[M$]===0&&r.unref()}),E.once("error",function(ce){F(ce)}),E.once("frameError",(ce,fe)=>{F(new syr(`HTTP/2: "frameError" received - type ${ce}, code ${fe}`))}),!0;function ne(){!n||X===0?g7n(F,E,null,e,t,e[tD],X,Q):EC.isBuffer(n)?g7n(F,E,n,e,t,e[tD],X,Q):EC.isBlobLike(n)?typeof n.stream=="function"?A7n(F,E,n.stream(),e,t,e[tD],X,Q):xga(F,E,n,e,t,e[tD],X,Q):EC.isStream(n)?kga(F,e[tD],Q,E,n,e,t,X):EC.isIterable(n)?A7n(F,E,n,e,t,e[tD],X,Q):xM(!1)}}function g7n(e,t,r,n,a,o,l,A){try{r!=null&&EC.isBuffer(r)&&(xM(l===r.byteLength,"buffer body must have content length"),t.cork(),t.write(r),t.uncork(),t.end(),a.onBodySent(r)),A||(o[Eht]=!0),a.onRequestSent(),n[oae]()}catch(f){e(f)}}function kga(e,t,r,n,a,o,l,A){xM(A!==0||o[Sht]===0,"stream body cannot be pipelined");let f=gga(a,n,C=>{C?(EC.destroy(f,C),e(C)):(EC.removeAllListeners(f),l.onRequestSent(),r||(t[Eht]=!0),o[oae]())});EC.addListener(f,"data",I);function I(C){l.onBodySent(C)}}async function xga(e,t,r,n,a,o,l,A){xM(l===r.size,"blob body must have content length");try{if(l!=null&&l!==r.size)throw new iyr;let f=Buffer.from(await r.arrayBuffer());t.cork(),t.write(f),t.uncork(),t.end(),a.onBodySent(f),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(f){e(f)}}async function A7n(e,t,r,n,a,o,l,A){xM(l!==0||n[Sht]===0,"iterator body cannot be pipelined");let f=null;function I(){if(f){let b=f;f=null,b()}}let C=()=>new Promise((b,E)=>{xM(f===null),o[GX]?E(o[GX]):f=b});t.on("close",I).on("drain",I);try{for await(let b of r){if(o[GX])throw o[GX];let E=t.write(b);a.onBodySent(b),E||await C()}t.end(),a.onRequestSent(),A||(o[Eht]=!0),n[oae]()}catch(b){e(b)}finally{t.off("close",I).off("drain",I)}}p7n.exports=Sga});var Bht=H((uou,m7n)=>{"use strict";var x8=Em(),{kBodyUsed:mYe}=B2(),lyr=wt("node:assert"),{InvalidArgumentError:Gga}=Y0(),Fga=wt("node:events"),Zga=[300,301,302,303,307,308],I7n=Symbol("body"),vht=class{constructor(t){this[I7n]=t,this[mYe]=!1}async*[Symbol.asyncIterator](){lyr(!this[mYe],"disturbed"),this[mYe]=!0,yield*this[I7n]}},cyr=class{constructor(t,r,n,a){if(r!=null&&(!Number.isInteger(r)||r<0))throw new Gga("maxRedirections must be a positive number");x8.validateHandler(a,n.method,n.upgrade),this.dispatch=t,this.location=null,this.abort=null,this.opts={...n,maxRedirections:0},this.maxRedirections=r,this.handler=a,this.history=[],this.redirectionLimitReached=!1,x8.isStream(this.opts.body)?(x8.bodyLength(this.opts.body)===0&&this.opts.body.on("data",function(){lyr(!1)}),typeof this.opts.body.readableDidRead!="boolean"&&(this.opts.body[mYe]=!1,Fga.prototype.on.call(this.opts.body,"data",function(){this[mYe]=!0}))):this.opts.body&&typeof this.opts.body.pipeTo=="function"?this.opts.body=new vht(this.opts.body):this.opts.body&&typeof this.opts.body!="string"&&!ArrayBuffer.isView(this.opts.body)&&x8.isIterable(this.opts.body)&&(this.opts.body=new vht(this.opts.body))}onConnect(t){this.abort=t,this.handler.onConnect(t,{history:this.history})}onUpgrade(t,r,n){this.handler.onUpgrade(t,r,n)}onError(t){this.handler.onError(t)}onHeaders(t,r,n,a){if(this.location=this.history.length>=this.maxRedirections||x8.isDisturbed(this.opts.body)?null:Lga(t,r),this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections){this.request&&this.request.abort(new Error("max redirects")),this.redirectionLimitReached=!0,this.abort(new Error("max redirects"));return}if(this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location)return this.handler.onHeaders(t,r,n,a);let{origin:o,pathname:l,search:A}=x8.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),f=A?`${l}${A}`:l;this.opts.headers=Vga(this.opts.headers,t===303,this.opts.origin!==o),this.opts.path=f,this.opts.origin=o,this.opts.maxRedirections=0,this.opts.query=null,t===303&&this.opts.method!=="HEAD"&&(this.opts.method="GET",this.opts.body=null)}onData(t){if(!this.location)return this.handler.onData(t)}onComplete(t){this.location?(this.location=null,this.abort=null,this.dispatch(this.opts,this)):this.handler.onComplete(t)}onBodySent(t){this.handler.onBodySent&&this.handler.onBodySent(t)}};function Lga(e,t){if(Zga.indexOf(e)===-1)return null;for(let r=0;r{"use strict";var Pga=Bht();function Wga({maxRedirections:e}){return t=>function(n,a){let{maxRedirections:o=e}=n;if(!o)return t(n,a);let l=new Pga(t,o,n,a);return n={...n,maxRedirections:0},t(n,l)}}C7n.exports=Wga});var vYe=H((Aou,R7n)=>{"use strict";var H$=wt("node:assert"),v7n=wt("node:net"),Oga=wt("node:http"),ohe=Em(),{channels:Rwe}=Awe(),Mga=Ljn(),Hga=Iwe(),{InvalidArgumentError:tw,InformationalError:Yga,ClientDestroyedError:Qga}=Y0(),Xga=iYe(),{kUrl:G8,kServerName:aae,kClient:Jga,kBusy:uyr,kConnect:Uga,kResuming:ahe,kRunning:EYe,kPending:SYe,kSize:bYe,kQueue:FX,kConnected:Kga,kConnecting:Nwe,kNeedDrain:lae,kKeepAliveDefaultTimeout:_7n,kHostHeader:jga,kPendingIdx:ZX,kRunningIdx:Y$,kError:zga,kPipelining:Tht,kKeepAliveTimeoutValue:qga,kMaxHeadersSize:$ga,kKeepAliveMaxTimeout:eAa,kKeepAliveTimeoutThreshold:tAa,kHeadersTimeout:rAa,kBodyTimeout:nAa,kStrictContentLength:iAa,kConnector:CYe,kMaxRedirections:sAa,kMaxRequests:gyr,kCounter:oAa,kClose:aAa,kDestroy:cAa,kDispatch:lAa,kInterceptors:y7n,kLocalAddress:_Ye,kMaxResponseSize:uAa,kOnError:gAa,kHTTPContext:rw,kMaxConcurrentStreams:AAa,kResume:yYe}=B2(),dAa=c7n(),pAa=f7n(),b7n=!1,cae=Symbol("kClosedResolve"),E7n=()=>{};function B7n(e){return e[Tht]??e[rw]?.defaultPipelining??1}var Ayr=class extends Hga{constructor(t,{interceptors:r,maxHeaderSize:n,headersTimeout:a,socketTimeout:o,requestTimeout:l,connectTimeout:A,bodyTimeout:f,idleTimeout:I,keepAlive:C,keepAliveTimeout:b,maxKeepAliveTimeout:E,keepAliveMaxTimeout:N,keepAliveTimeoutThreshold:B,socketPath:F,pipelining:Q,tls:X,strictContentLength:ae,maxCachedSessions:ne,maxRedirections:ce,connect:fe,maxRequestsPerClient:ue,localAddress:de,maxResponseSize:be,autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De,maxConcurrentStreams:k,allowH2:et}={}){if(super(),C!==void 0)throw new tw("unsupported keepAlive, use pipelining=0 instead");if(o!==void 0)throw new tw("unsupported socketTimeout, use headersTimeout & bodyTimeout instead");if(l!==void 0)throw new tw("unsupported requestTimeout, use headersTimeout & bodyTimeout instead");if(I!==void 0)throw new tw("unsupported idleTimeout, use keepAliveTimeout instead");if(E!==void 0)throw new tw("unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead");if(n!=null&&!Number.isFinite(n))throw new tw("invalid maxHeaderSize");if(F!=null&&typeof F!="string")throw new tw("invalid socketPath");if(A!=null&&(!Number.isFinite(A)||A<0))throw new tw("invalid connectTimeout");if(b!=null&&(!Number.isFinite(b)||b<=0))throw new tw("invalid keepAliveTimeout");if(N!=null&&(!Number.isFinite(N)||N<=0))throw new tw("invalid keepAliveMaxTimeout");if(B!=null&&!Number.isFinite(B))throw new tw("invalid keepAliveTimeoutThreshold");if(a!=null&&(!Number.isInteger(a)||a<0))throw new tw("headersTimeout must be a positive integer or zero");if(f!=null&&(!Number.isInteger(f)||f<0))throw new tw("bodyTimeout must be a positive integer or zero");if(fe!=null&&typeof fe!="function"&&typeof fe!="object")throw new tw("connect must be a function or an object");if(ce!=null&&(!Number.isInteger(ce)||ce<0))throw new tw("maxRedirections must be a positive number");if(ue!=null&&(!Number.isInteger(ue)||ue<0))throw new tw("maxRequestsPerClient must be a positive number");if(de!=null&&(typeof de!="string"||v7n.isIP(de)===0))throw new tw("localAddress must be valid string IP address");if(be!=null&&(!Number.isInteger(be)||be<-1))throw new tw("maxResponseSize must be a positive number");if(De!=null&&(!Number.isInteger(De)||De<-1))throw new tw("autoSelectFamilyAttemptTimeout must be a positive number");if(et!=null&&typeof et!="boolean")throw new tw("allowH2 must be a valid boolean value");if(k!=null&&(typeof k!="number"||k<1))throw new tw("maxConcurrentStreams must be a positive integer, greater than 0");typeof fe!="function"&&(fe=Xga({...X,maxCachedSessions:ne,allowH2:et,socketPath:F,timeout:A,...Se?{autoSelectFamily:Se,autoSelectFamilyAttemptTimeout:De}:void 0,...fe})),r?.Client&&Array.isArray(r.Client)?(this[y7n]=r.Client,b7n||(b7n=!0,process.emitWarning("Client.Options#interceptor is deprecated. Use Dispatcher#compose instead.",{code:"UNDICI-CLIENT-INTERCEPTOR-DEPRECATED"}))):this[y7n]=[fAa({maxRedirections:ce})],this[G8]=ohe.parseOrigin(t),this[CYe]=fe,this[Tht]=Q??1,this[$ga]=n||Oga.maxHeaderSize,this[_7n]=b??4e3,this[eAa]=N??6e5,this[tAa]=B??2e3,this[qga]=this[_7n],this[aae]=null,this[_Ye]=de??null,this[ahe]=0,this[lae]=0,this[jga]=`host: ${this[G8].hostname}${this[G8].port?`:${this[G8].port}`:""}\r +`,this[nAa]=f??3e5,this[rAa]=a??3e5,this[iAa]=ae??!0,this[sAa]=ce,this[gyr]=ue,this[cae]=null,this[uAa]=be>-1?be:-1,this[AAa]=k??100,this[rw]=null,this[FX]=[],this[Y$]=0,this[ZX]=0,this[yYe]=ct=>dyr(this,ct),this[gAa]=ct=>w7n(this,ct)}get pipelining(){return this[Tht]}set pipelining(t){this[Tht]=t,this[yYe](!0)}get[SYe](){return this[FX].length-this[ZX]}get[EYe](){return this[ZX]-this[Y$]}get[bYe](){return this[FX].length-this[Y$]}get[Kga](){return!!this[rw]&&!this[Nwe]&&!this[rw].destroyed}get[uyr](){return!!(this[rw]?.busy(null)||this[bYe]>=(B7n(this)||1)||this[SYe]>0)}[Uga](t){T7n(this),this.once("connect",t)}[lAa](t,r){let n=t.origin||this[G8].origin,a=new Mga(n,t,r);return this[FX].push(a),this[ahe]||(ohe.bodyLength(a.body)==null&&ohe.isIterable(a.body)?(this[ahe]=1,queueMicrotask(()=>dyr(this))):this[yYe](!0)),this[ahe]&&this[lae]!==2&&this[uyr]&&(this[lae]=2),this[lae]<2}async[aAa](){return new Promise(t=>{this[bYe]?this[cae]=t:t(null)})}async[cAa](t){return new Promise(r=>{let n=this[FX].splice(this[ZX]);for(let o=0;o{this[cae]&&(this[cae](),this[cae]=null),r(null)};this[rw]?(this[rw].destroy(t,a),this[rw]=null):queueMicrotask(a),this[yYe]()})}},fAa=wht();function w7n(e,t){if(e[EYe]===0&&t.code!=="UND_ERR_INFO"&&t.code!=="UND_ERR_SOCKET"){H$(e[ZX]===e[Y$]);let r=e[FX].splice(e[Y$]);for(let n=0;n{e[CYe]({host:t,hostname:r,protocol:n,port:a,servername:e[aae],localAddress:e[_Ye]},(f,I)=>{f?A(f):l(I)})});if(e.destroyed){ohe.destroy(o.on("error",E7n),new Qga);return}H$(o);try{e[rw]=o.alpnProtocol==="h2"?await pAa(e,o):await dAa(e,o)}catch(l){throw o.destroy().on("error",E7n),l}e[Nwe]=!1,o[oAa]=0,o[gyr]=e[gyr],o[Jga]=e,o[zga]=null,Rwe.connected.hasSubscribers&&Rwe.connected.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],socket:o}),e.emit("connect",e[G8],[e])}catch(o){if(e.destroyed)return;if(e[Nwe]=!1,Rwe.connectError.hasSubscribers&&Rwe.connectError.publish({connectParams:{host:t,hostname:r,protocol:n,port:a,version:e[rw]?.version,servername:e[aae],localAddress:e[_Ye]},connector:e[CYe],error:o}),o.code==="ERR_TLS_CERT_ALTNAME_INVALID")for(H$(e[EYe]===0);e[SYe]>0&&e[FX][e[ZX]].servername===e[aae];){let l=e[FX][e[ZX]++];ohe.errorRequest(e,l,o)}else w7n(e,o);e.emit("connectionError",e[G8],[e],o)}e[yYe]()}function S7n(e){e[lae]=0,e.emit("drain",e[G8],[e])}function dyr(e,t){e[ahe]!==2&&(e[ahe]=2,IAa(e,t),e[ahe]=0,e[Y$]>256&&(e[FX].splice(0,e[Y$]),e[ZX]-=e[Y$],e[Y$]=0))}function IAa(e,t){for(;;){if(e.destroyed){H$(e[SYe]===0);return}if(e[cae]&&!e[bYe]){e[cae](),e[cae]=null;return}if(e[rw]&&e[rw].resume(),e[uyr])e[lae]=2;else if(e[lae]===2){t?(e[lae]=1,queueMicrotask(()=>S7n(e))):S7n(e);continue}if(e[SYe]===0||e[EYe]>=(B7n(e)||1))return;let r=e[FX][e[ZX]];if(e[G8].protocol==="https:"&&e[aae]!==r.servername){if(e[EYe]>0)return;e[aae]=r.servername,e[rw]?.destroy(new Yga("servername changed"),()=>{e[rw]=null,dyr(e)})}if(e[Nwe])return;if(!e[rw]){T7n(e);return}if(e[rw].destroyed||e[rw].busy(r))return;!r.aborted&&e[rw].write(r)?e[ZX]++:e[FX].splice(e[ZX],1)}}R7n.exports=Ayr});var pyr=H((pou,N7n)=>{"use strict";var Rht=class{constructor(){this.bottom=0,this.top=0,this.list=new Array(2048),this.next=null}isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&2047)===this.bottom}push(t){this.list[this.top]=t,this.top=this.top+1&2047}shift(){let t=this.list[this.bottom];return t===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&2047,t)}};N7n.exports=class{constructor(){this.head=this.tail=new Rht}isEmpty(){return this.head.isEmpty()}push(t){this.head.isFull()&&(this.head=this.head.next=new Rht),this.head.push(t)}shift(){let t=this.tail,r=t.shift();return t.isEmpty()&&t.next!==null&&(this.tail=t.next),r}}});var k7n=H((fou,D7n)=>{var{kFree:hAa,kConnected:mAa,kPending:CAa,kQueued:_Aa,kRunning:yAa,kSize:bAa}=B2(),che=Symbol("pool"),fyr=class{constructor(t){this[che]=t}get connected(){return this[che][mAa]}get free(){return this[che][hAa]}get pending(){return this[che][CAa]}get queued(){return this[che][_Aa]}get running(){return this[che][yAa]}get size(){return this[che][bAa]}};D7n.exports=fyr});var yyr=H((Iou,M7n)=>{"use strict";var EAa=Iwe(),SAa=pyr(),{kConnected:Iyr,kSize:x7n,kRunning:G7n,kPending:F7n,kQueued:BYe,kBusy:vAa,kFree:BAa,kUrl:wAa,kClose:TAa,kDestroy:RAa,kDispatch:NAa}=B2(),DAa=k7n(),rV=Symbol("clients"),OZ=Symbol("needDrain"),wYe=Symbol("queue"),hyr=Symbol("closed resolve"),myr=Symbol("onDrain"),Z7n=Symbol("onConnect"),L7n=Symbol("onDisconnect"),V7n=Symbol("onConnectionError"),Cyr=Symbol("get dispatcher"),W7n=Symbol("add client"),O7n=Symbol("remove client"),P7n=Symbol("stats"),_yr=class extends EAa{constructor(){super(),this[wYe]=new SAa,this[rV]=[],this[BYe]=0;let t=this;this[myr]=function(n,a){let o=t[wYe],l=!1;for(;!l;){let A=o.shift();if(!A)break;t[BYe]--,l=!this.dispatch(A.opts,A.handler)}this[OZ]=l,!this[OZ]&&t[OZ]&&(t[OZ]=!1,t.emit("drain",n,[t,...a])),t[hyr]&&o.isEmpty()&&Promise.all(t[rV].map(A=>A.close())).then(t[hyr])},this[Z7n]=(r,n)=>{t.emit("connect",r,[t,...n])},this[L7n]=(r,n,a)=>{t.emit("disconnect",r,[t,...n],a)},this[V7n]=(r,n,a)=>{t.emit("connectionError",r,[t,...n],a)},this[P7n]=new DAa(this)}get[vAa](){return this[OZ]}get[Iyr](){return this[rV].filter(t=>t[Iyr]).length}get[BAa](){return this[rV].filter(t=>t[Iyr]&&!t[OZ]).length}get[F7n](){let t=this[BYe];for(let{[F7n]:r}of this[rV])t+=r;return t}get[G7n](){let t=0;for(let{[G7n]:r}of this[rV])t+=r;return t}get[x7n](){let t=this[BYe];for(let{[x7n]:r}of this[rV])t+=r;return t}get stats(){return this[P7n]}async[TAa](){this[wYe].isEmpty()?await Promise.all(this[rV].map(t=>t.close())):await new Promise(t=>{this[hyr]=t})}async[RAa](t){for(;;){let r=this[wYe].shift();if(!r)break;r.handler.onError(t)}await Promise.all(this[rV].map(r=>r.destroy(t)))}[NAa](t,r){let n=this[Cyr]();return n?n.dispatch(t,r)||(n[OZ]=!0,this[OZ]=!this[Cyr]()):(this[OZ]=!0,this[wYe].push({opts:t,handler:r}),this[BYe]++),!this[OZ]}[W7n](t){return t.on("drain",this[myr]).on("connect",this[Z7n]).on("disconnect",this[L7n]).on("connectionError",this[V7n]),this[rV].push(t),this[OZ]&&queueMicrotask(()=>{this[OZ]&&this[myr](t[wAa],[this,t])}),this}[O7n](t){t.close(()=>{let r=this[rV].indexOf(t);r!==-1&&this[rV].splice(r,1)}),this[OZ]=this[rV].some(r=>!r[OZ]&&r.closed!==!0&&r.destroyed!==!0)}};M7n.exports={PoolBase:_yr,kClients:rV,kNeedDrain:OZ,kAddClient:W7n,kRemoveClient:O7n,kGetDispatcher:Cyr}});var Dwe=H((hou,J7n)=>{"use strict";var{PoolBase:kAa,kClients:H7n,kNeedDrain:xAa,kAddClient:GAa,kGetDispatcher:FAa}=yyr(),ZAa=vYe(),{InvalidArgumentError:byr}=Y0(),Y7n=Em(),{kUrl:Q7n,kInterceptors:LAa}=B2(),VAa=iYe(),Eyr=Symbol("options"),Syr=Symbol("connections"),X7n=Symbol("factory");function PAa(e,t){return new ZAa(e,t)}var vyr=class extends kAa{constructor(t,{connections:r,factory:n=PAa,connect:a,connectTimeout:o,tls:l,maxCachedSessions:A,socketPath:f,autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C,allowH2:b,...E}={}){if(super(),r!=null&&(!Number.isFinite(r)||r<0))throw new byr("invalid connections");if(typeof n!="function")throw new byr("factory must be a function.");if(a!=null&&typeof a!="function"&&typeof a!="object")throw new byr("connect must be a function or an object");typeof a!="function"&&(a=VAa({...l,maxCachedSessions:A,allowH2:b,socketPath:f,timeout:o,...I?{autoSelectFamily:I,autoSelectFamilyAttemptTimeout:C}:void 0,...a})),this[LAa]=E.interceptors?.Pool&&Array.isArray(E.interceptors.Pool)?E.interceptors.Pool:[],this[Syr]=r||null,this[Q7n]=Y7n.parseOrigin(t),this[Eyr]={...Y7n.deepClone(E),connect:a,allowH2:b},this[Eyr].interceptors=E.interceptors?{...E.interceptors}:void 0,this[X7n]=n}[FAa](){for(let t of this[H7n])if(!t[xAa])return t;if(!this[Syr]||this[H7n].length{"use strict";var{BalancedPoolMissingUpstreamError:WAa,InvalidArgumentError:OAa}=Y0(),{PoolBase:MAa,kClients:SG,kNeedDrain:TYe,kAddClient:HAa,kRemoveClient:YAa,kGetDispatcher:QAa}=yyr(),XAa=Dwe(),{kUrl:Byr,kInterceptors:JAa}=B2(),{parseOrigin:U7n}=Em(),K7n=Symbol("factory"),Nht=Symbol("options"),j7n=Symbol("kGreatestCommonDivisor"),lhe=Symbol("kCurrentWeight"),uhe=Symbol("kIndex"),GM=Symbol("kWeight"),Dht=Symbol("kMaxWeightPerServer"),kht=Symbol("kErrorPenalty");function UAa(e,t){if(e===0)return t;for(;t!==0;){let r=t;t=e%t,e=r}return e}function KAa(e,t){return new XAa(e,t)}var wyr=class extends MAa{constructor(t=[],{factory:r=KAa,...n}={}){if(super(),this[Nht]=n,this[uhe]=-1,this[lhe]=0,this[Dht]=this[Nht].maxWeightPerServer||100,this[kht]=this[Nht].errorPenalty||15,Array.isArray(t)||(t=[t]),typeof r!="function")throw new OAa("factory must be a function.");this[JAa]=n.interceptors?.BalancedPool&&Array.isArray(n.interceptors.BalancedPool)?n.interceptors.BalancedPool:[],this[K7n]=r;for(let a of t)this.addUpstream(a);this._updateBalancedPoolStats()}addUpstream(t){let r=U7n(t).origin;if(this[SG].find(a=>a[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0))return this;let n=this[K7n](r,Object.assign({},this[Nht]));this[HAa](n),n.on("connect",()=>{n[GM]=Math.min(this[Dht],n[GM]+this[kht])}),n.on("connectionError",()=>{n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats()}),n.on("disconnect",(...a)=>{let o=a[2];o&&o.code==="UND_ERR_SOCKET"&&(n[GM]=Math.max(1,n[GM]-this[kht]),this._updateBalancedPoolStats())});for(let a of this[SG])a[GM]=this[Dht];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let t=0;for(let r=0;ra[Byr].origin===r&&a.closed!==!0&&a.destroyed!==!0);return n&&this[YAa](n),this}get upstreams(){return this[SG].filter(t=>t.closed!==!0&&t.destroyed!==!0).map(t=>t[Byr].origin)}[QAa](){if(this[SG].length===0)throw new WAa;if(!this[SG].find(o=>!o[TYe]&&o.closed!==!0&&o.destroyed!==!0)||this[SG].map(o=>o[TYe]).reduce((o,l)=>o&&l,!0))return;let n=0,a=this[SG].findIndex(o=>!o[TYe]);for(;n++this[SG][a][GM]&&!o[TYe]&&(a=this[uhe]),this[uhe]===0&&(this[lhe]=this[lhe]-this[j7n],this[lhe]<=0&&(this[lhe]=this[Dht])),o[GM]>=this[lhe]&&!o[TYe])return o}return this[lhe]=this[SG][a][GM],this[uhe]=a,this[SG][a]}};z7n.exports=wyr});var kwe=H((Cou,szn)=>{"use strict";var{InvalidArgumentError:xht}=Y0(),{kClients:uae,kRunning:$7n,kClose:jAa,kDestroy:zAa,kDispatch:qAa,kInterceptors:$Aa}=B2(),eda=Iwe(),tda=Dwe(),rda=vYe(),nda=Em(),ida=wht(),ezn=Symbol("onConnect"),tzn=Symbol("onDisconnect"),rzn=Symbol("onConnectionError"),sda=Symbol("maxRedirections"),nzn=Symbol("onDrain"),izn=Symbol("factory"),Tyr=Symbol("options");function oda(e,t){return t&&t.connections===1?new rda(e,t):new tda(e,t)}var Ryr=class extends eda{constructor({factory:t=oda,maxRedirections:r=0,connect:n,...a}={}){if(super(),typeof t!="function")throw new xht("factory must be a function.");if(n!=null&&typeof n!="function"&&typeof n!="object")throw new xht("connect must be a function or an object");if(!Number.isInteger(r)||r<0)throw new xht("maxRedirections must be a positive number");n&&typeof n!="function"&&(n={...n}),this[$Aa]=a.interceptors?.Agent&&Array.isArray(a.interceptors.Agent)?a.interceptors.Agent:[ida({maxRedirections:r})],this[Tyr]={...nda.deepClone(a),connect:n},this[Tyr].interceptors=a.interceptors?{...a.interceptors}:void 0,this[sda]=r,this[izn]=t,this[uae]=new Map,this[nzn]=(o,l)=>{this.emit("drain",o,[this,...l])},this[ezn]=(o,l)=>{this.emit("connect",o,[this,...l])},this[tzn]=(o,l,A)=>{this.emit("disconnect",o,[this,...l],A)},this[rzn]=(o,l,A)=>{this.emit("connectionError",o,[this,...l],A)}}get[$7n](){let t=0;for(let r of this[uae].values())t+=r[$7n];return t}[qAa](t,r){let n;if(t.origin&&(typeof t.origin=="string"||t.origin instanceof URL))n=String(t.origin);else throw new xht("opts.origin must be a non-empty string or URL.");let a=this[uae].get(n);return a||(a=this[izn](t.origin,this[Tyr]).on("drain",this[nzn]).on("connect",this[ezn]).on("disconnect",this[tzn]).on("connectionError",this[rzn]),this[uae].set(n,a)),a.dispatch(t,r)}async[jAa](){let t=[];for(let r of this[uae].values())t.push(r.close());this[uae].clear(),await Promise.all(t)}async[zAa](t){let r=[];for(let n of this[uae].values())r.push(n.destroy(t));this[uae].clear(),await Promise.all(r)}};szn.exports=Ryr});var kyr=H((_ou,lzn)=>{"use strict";var{kProxy:ada,kClose:cda,kDestroy:lda,kInterceptors:uda}=B2(),{URL:RYe}=wt("node:url"),gda=kwe(),Ada=Dwe(),dda=Iwe(),{InvalidArgumentError:Zht,RequestAbortedError:pda,SecureProxyConnectionError:fda}=Y0(),ozn=iYe(),Ght=Symbol("proxy agent"),Fht=Symbol("proxy client"),NYe=Symbol("proxy headers"),Nyr=Symbol("request tls settings"),azn=Symbol("proxy tls settings"),czn=Symbol("connect endpoint function");function Ida(e){return e==="https:"?443:80}function hda(e,t){return new Ada(e,t)}var mda=()=>{},Dyr=class extends dda{constructor(t){if(super(),!t||typeof t=="object"&&!(t instanceof RYe)&&!t.uri)throw new Zht("Proxy uri is mandatory");let{clientFactory:r=hda}=t;if(typeof r!="function")throw new Zht("Proxy opts.clientFactory must be a function.");let n=this.#e(t),{href:a,origin:o,port:l,protocol:A,username:f,password:I,hostname:C}=n;if(this[ada]={uri:a,protocol:A},this[uda]=t.interceptors?.ProxyAgent&&Array.isArray(t.interceptors.ProxyAgent)?t.interceptors.ProxyAgent:[],this[Nyr]=t.requestTls,this[azn]=t.proxyTls,this[NYe]=t.headers||{},t.auth&&t.token)throw new Zht("opts.auth cannot be used in combination with opts.token");t.auth?this[NYe]["proxy-authorization"]=`Basic ${t.auth}`:t.token?this[NYe]["proxy-authorization"]=t.token:f&&I&&(this[NYe]["proxy-authorization"]=`Basic ${Buffer.from(`${decodeURIComponent(f)}:${decodeURIComponent(I)}`).toString("base64")}`);let b=ozn({...t.proxyTls});this[czn]=ozn({...t.requestTls}),this[Fht]=r(n,{connect:b}),this[Ght]=new gda({...t,connect:async(E,N)=>{let B=E.host;E.port||(B+=`:${Ida(E.protocol)}`);try{let{socket:F,statusCode:Q}=await this[Fht].connect({origin:o,port:l,path:B,signal:E.signal,headers:{...this[NYe],host:E.host},servername:this[azn]?.servername||C});if(Q!==200&&(F.on("error",mda).destroy(),N(new pda(`Proxy response (${Q}) !== 200 when HTTP Tunneling`))),E.protocol!=="https:"){N(null,F);return}let X;this[Nyr]?X=this[Nyr].servername:X=E.servername,this[czn]({...E,servername:X,httpSocket:F},N)}catch(F){F.code==="ERR_TLS_CERT_ALTNAME_INVALID"?N(new fda(F)):N(F)}}})}dispatch(t,r){let n=Cda(t.headers);if(_da(n),n&&!("host"in n)&&!("Host"in n)){let{host:a}=new RYe(t.origin);n.host=a}return this[Ght].dispatch({...t,headers:n},r)}#e(t){return typeof t=="string"?new RYe(t):t instanceof RYe?t:new RYe(t.uri)}async[cda](){await this[Ght].close(),await this[Fht].close()}async[lda](){await this[Ght].destroy(),await this[Fht].destroy()}};function Cda(e){if(Array.isArray(e)){let t={};for(let r=0;rr.toLowerCase()==="proxy-authorization"))throw new Zht("Proxy-Authorization should be sent in ProxyAgent constructor")}lzn.exports=Dyr});var fzn=H((you,pzn)=>{"use strict";var yda=Iwe(),{kClose:bda,kDestroy:Eda,kClosed:uzn,kDestroyed:gzn,kDispatch:Sda,kNoProxyAgent:DYe,kHttpProxyAgent:gae,kHttpsProxyAgent:ghe}=B2(),Azn=kyr(),vda=kwe(),Bda={"http:":80,"https:":443},dzn=!1,xyr=class extends yda{#e=null;#t=null;#n=null;constructor(t={}){super(),this.#n=t,dzn||(dzn=!0,process.emitWarning("EnvHttpProxyAgent is experimental, expect them to change at any time.",{code:"UNDICI-EHPA"}));let{httpProxy:r,httpsProxy:n,noProxy:a,...o}=t;this[DYe]=new vda(o);let l=r??process.env.http_proxy??process.env.HTTP_PROXY;l?this[gae]=new Azn({...o,uri:l}):this[gae]=this[DYe];let A=n??process.env.https_proxy??process.env.HTTPS_PROXY;A?this[ghe]=new Azn({...o,uri:A}):this[ghe]=this[gae],this.#s()}[Sda](t,r){let n=new URL(t.origin);return this.#r(n).dispatch(t,r)}async[bda](){await this[DYe].close(),this[gae][uzn]||await this[gae].close(),this[ghe][uzn]||await this[ghe].close()}async[Eda](t){await this[DYe].destroy(t),this[gae][gzn]||await this[gae].destroy(t),this[ghe][gzn]||await this[ghe].destroy(t)}#r(t){let{protocol:r,host:n,port:a}=t;return n=n.replace(/:\d*$/,"").toLowerCase(),a=Number.parseInt(a,10)||Bda[r]||0,this.#i(n,a)?r==="https:"?this[ghe]:this[gae]:this[DYe]}#i(t,r){if(this.#o&&this.#s(),this.#t.length===0)return!0;if(this.#e==="*")return!1;for(let n=0;n{"use strict";var xwe=wt("node:assert"),{kRetryHandlerDefaultRetry:Izn}=B2(),{RequestRetryError:kYe}=Y0(),{isDisturbed:hzn,parseHeaders:wda,parseRangeHeader:mzn,wrapRequestBody:Tda}=Em();function Rda(e){let t=Date.now();return new Date(e).getTime()-t}var Gyr=class e{constructor(t,r){let{retryOptions:n,...a}=t,{retry:o,maxRetries:l,maxTimeout:A,minTimeout:f,timeoutFactor:I,methods:C,errorCodes:b,retryAfter:E,statusCodes:N}=n??{};this.dispatch=r.dispatch,this.handler=r.handler,this.opts={...a,body:Tda(t.body)},this.abort=null,this.aborted=!1,this.retryOpts={retry:o??e[Izn],retryAfter:E??!0,maxTimeout:A??30*1e3,minTimeout:f??500,timeoutFactor:I??2,maxRetries:l??5,methods:C??["GET","HEAD","OPTIONS","PUT","DELETE","TRACE"],statusCodes:N??[500,502,503,504,429],errorCodes:b??["ECONNRESET","ECONNREFUSED","ENOTFOUND","ENETDOWN","ENETUNREACH","EHOSTDOWN","EHOSTUNREACH","EPIPE","UND_ERR_SOCKET"]},this.retryCount=0,this.retryCountCheckpoint=0,this.start=0,this.end=null,this.etag=null,this.resume=null,this.handler.onConnect(B=>{this.aborted=!0,this.abort?this.abort(B):this.reason=B})}onRequestSent(){this.handler.onRequestSent&&this.handler.onRequestSent()}onUpgrade(t,r,n){this.handler.onUpgrade&&this.handler.onUpgrade(t,r,n)}onConnect(t){this.aborted?t(this.reason):this.abort=t}onBodySent(t){if(this.handler.onBodySent)return this.handler.onBodySent(t)}static[Izn](t,{state:r,opts:n},a){let{statusCode:o,code:l,headers:A}=t,{method:f,retryOptions:I}=n,{maxRetries:C,minTimeout:b,maxTimeout:E,timeoutFactor:N,statusCodes:B,errorCodes:F,methods:Q}=I,{counter:X}=r;if(l&&l!=="UND_ERR_REQ_RETRY"&&!F.includes(l)){a(t);return}if(Array.isArray(Q)&&!Q.includes(f)){a(t);return}if(o!=null&&Array.isArray(B)&&!B.includes(o)){a(t);return}if(X>C){a(t);return}let ae=A?.["retry-after"];ae&&(ae=Number(ae),ae=Number.isNaN(ae)?Rda(ae):ae*1e3);let ne=ae>0?Math.min(ae,E):Math.min(b*N**(X-1),E);setTimeout(()=>a(null),ne)}onHeaders(t,r,n,a){let o=wda(r);if(this.retryCount+=1,t>=300)return this.retryOpts.statusCodes.includes(t)===!1?this.handler.onHeaders(t,r,n,a):(this.abort(new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}})),!1);if(this.resume!=null){if(this.resume=null,t!==206&&(this.start>0||t!==200))return this.abort(new kYe("server does not support the range header and the payload was partially consumed",t,{headers:o,data:{count:this.retryCount}})),!1;let A=mzn(o["content-range"]);if(!A)return this.abort(new kYe("Content-Range mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;if(this.etag!=null&&this.etag!==o.etag)return this.abort(new kYe("ETag mismatch",t,{headers:o,data:{count:this.retryCount}})),!1;let{start:f,size:I,end:C=I}=A;return xwe(this.start===f,"content-range mismatch"),xwe(this.end==null||this.end===C,"content-range mismatch"),this.resume=n,!0}if(this.end==null){if(t===206){let A=mzn(o["content-range"]);if(A==null)return this.handler.onHeaders(t,r,n,a);let{start:f,size:I,end:C=I}=A;xwe(f!=null&&Number.isFinite(f),"content-range mismatch"),xwe(C!=null&&Number.isFinite(C),"invalid content-length"),this.start=f,this.end=C}if(this.end==null){let A=o["content-length"];this.end=A!=null?Number(A):null}return xwe(Number.isFinite(this.start)),xwe(this.end==null||Number.isFinite(this.end),"invalid content-length"),this.resume=n,this.etag=o.etag!=null?o.etag:null,this.etag!=null&&this.etag.startsWith("W/")&&(this.etag=null),this.handler.onHeaders(t,r,n,a)}let l=new kYe("Request failed",t,{headers:o,data:{count:this.retryCount}});return this.abort(l),!1}onData(t){return this.start+=t.length,this.handler.onData(t)}onComplete(t){return this.retryCount=0,this.handler.onComplete(t)}onError(t){if(this.aborted||hzn(this.opts.body))return this.handler.onError(t);this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},r.bind(this));function r(n){if(n!=null||this.aborted||hzn(this.opts.body))return this.handler.onError(n);if(this.start!==0){let a={range:`bytes=${this.start}-${this.end??""}`};this.etag!=null&&(a["if-match"]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...a}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(a){this.handler.onError(a)}}}};Czn.exports=Gyr});var yzn=H((Eou,_zn)=>{"use strict";var Nda=rYe(),Dda=Lht(),Fyr=class extends Nda{#e=null;#t=null;constructor(t,r={}){super(r),this.#e=t,this.#t=r}dispatch(t,r){let n=new Dda({...t,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:r});return this.#e.dispatch(t,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}};_zn.exports=Fyr});var Oyr=H((Sou,Nzn)=>{"use strict";var Bzn=wt("node:assert"),{Readable:kda}=wt("node:stream"),{RequestAbortedError:wzn,NotSupportedError:xda,InvalidArgumentError:Gda,AbortError:Zyr}=Y0(),Tzn=Em(),{ReadableStreamFrom:Fda}=Em(),$W=Symbol("kConsume"),xYe=Symbol("kReading"),Aae=Symbol("kBody"),bzn=Symbol("kAbort"),Rzn=Symbol("kContentType"),Ezn=Symbol("kContentLength"),Zda=()=>{},Lyr=class extends kda{constructor({resume:t,abort:r,contentType:n="",contentLength:a,highWaterMark:o=64*1024}){super({autoDestroy:!0,read:t,highWaterMark:o}),this._readableState.dataEmitted=!1,this[bzn]=r,this[$W]=null,this[Aae]=null,this[Rzn]=n,this[Ezn]=a,this[xYe]=!1}destroy(t){return!t&&!this._readableState.endEmitted&&(t=new wzn),t&&this[bzn](),super.destroy(t)}_destroy(t,r){this[xYe]?r(t):setImmediate(()=>{r(t)})}on(t,...r){return(t==="data"||t==="readable")&&(this[xYe]=!0),super.on(t,...r)}addListener(t,...r){return this.on(t,...r)}off(t,...r){let n=super.off(t,...r);return(t==="data"||t==="readable")&&(this[xYe]=this.listenerCount("data")>0||this.listenerCount("readable")>0),n}removeListener(t,...r){return this.off(t,...r)}push(t){return this[$W]&&t!==null?(Pyr(this[$W],t),this[xYe]?super.push(t):!0):super.push(t)}async text(){return GYe(this,"text")}async json(){return GYe(this,"json")}async blob(){return GYe(this,"blob")}async bytes(){return GYe(this,"bytes")}async arrayBuffer(){return GYe(this,"arrayBuffer")}async formData(){throw new xda}get bodyUsed(){return Tzn.isDisturbed(this)}get body(){return this[Aae]||(this[Aae]=Fda(this),this[$W]&&(this[Aae].getReader(),Bzn(this[Aae].locked))),this[Aae]}async dump(t){let r=Number.isFinite(t?.limit)?t.limit:131072,n=t?.signal;if(n!=null&&(typeof n!="object"||!("aborted"in n)))throw new Gda("signal must be an AbortSignal");return n?.throwIfAborted(),this._readableState.closeEmitted?null:await new Promise((a,o)=>{this[Ezn]>r&&this.destroy(new Zyr);let l=()=>{this.destroy(n.reason??new Zyr)};n?.addEventListener("abort",l),this.on("close",function(){n?.removeEventListener("abort",l),n?.aborted?o(n.reason??new Zyr):a(null)}).on("error",Zda).on("data",function(A){r-=A.length,r<=0&&this.destroy()}).resume()})}};function Lda(e){return e[Aae]&&e[Aae].locked===!0||e[$W]}function Vda(e){return Tzn.isDisturbed(e)||Lda(e)}async function GYe(e,t){return Bzn(!e[$W]),new Promise((r,n)=>{if(Vda(e)){let a=e._readableState;a.destroyed&&a.closeEmitted===!1?e.on("error",o=>{n(o)}).on("close",()=>{n(new TypeError("unusable"))}):n(a.errored??new TypeError("unusable"))}else queueMicrotask(()=>{e[$W]={type:t,stream:e,resolve:r,reject:n,length:0,body:[]},e.on("error",function(a){Wyr(this[$W],a)}).on("close",function(){this[$W].body!==null&&Wyr(this[$W],new wzn)}),Pda(e[$W])})})}function Pda(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let r=t.bufferIndex,n=t.buffer.length;for(let a=r;a2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return r.utf8Slice(a,n)}function Szn(e,t){if(e.length===0||t===0)return new Uint8Array(0);if(e.length===1)return new Uint8Array(e[0]);let r=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),n=0;for(let a=0;a{var Wda=wt("node:assert"),{ResponseStatusCodeError:Dzn}=Y0(),{chunksDecode:kzn}=Oyr(),Oda=128*1024;async function Mda({callback:e,body:t,contentType:r,statusCode:n,statusMessage:a,headers:o}){Wda(t);let l=[],A=0;try{for await(let b of t)if(l.push(b),A+=b.length,A>Oda){l=[],A=0;break}}catch{l=[],A=0}let f=`Response status code ${n}${a?`: ${a}`:""}`;if(n===204||!r||!A){queueMicrotask(()=>e(new Dzn(f,n,o)));return}let I=Error.stackTraceLimit;Error.stackTraceLimit=0;let C;try{xzn(r)?C=JSON.parse(kzn(l,A)):Gzn(r)&&(C=kzn(l,A))}catch{}finally{Error.stackTraceLimit=I}queueMicrotask(()=>e(new Dzn(f,n,o,C)))}var xzn=e=>e.length>15&&e[11]==="/"&&e[0]==="a"&&e[1]==="p"&&e[2]==="p"&&e[3]==="l"&&e[4]==="i"&&e[5]==="c"&&e[6]==="a"&&e[7]==="t"&&e[8]==="i"&&e[9]==="o"&&e[10]==="n"&&e[12]==="j"&&e[13]==="s"&&e[14]==="o"&&e[15]==="n",Gzn=e=>e.length>4&&e[4]==="/"&&e[0]==="t"&&e[1]==="e"&&e[2]==="x"&&e[3]==="t";Fzn.exports={getResolveErrorBodyCallback:Mda,isContentTypeApplicationJson:xzn,isContentTypeText:Gzn}});var Vzn=H((Bou,Hyr)=>{"use strict";var Hda=wt("node:assert"),{Readable:Yda}=Oyr(),{InvalidArgumentError:Gwe,RequestAbortedError:Zzn}=Y0(),FM=Em(),{getResolveErrorBodyCallback:Qda}=Myr(),{AsyncResource:Xda}=wt("node:async_hooks"),Vht=class extends Xda{constructor(t,r){if(!t||typeof t!="object")throw new Gwe("invalid opts");let{signal:n,method:a,opaque:o,body:l,onInfo:A,responseHeaders:f,throwOnError:I,highWaterMark:C}=t;try{if(typeof r!="function")throw new Gwe("invalid callback");if(C&&(typeof C!="number"||C<0))throw new Gwe("invalid highWaterMark");if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Gwe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new Gwe("invalid method");if(A&&typeof A!="function")throw new Gwe("invalid onInfo callback");super("UNDICI_REQUEST")}catch(b){throw FM.isStream(l)&&FM.destroy(l.on("error",FM.nop),b),b}this.method=a,this.responseHeaders=f||null,this.opaque=o||null,this.callback=r,this.res=null,this.abort=null,this.body=l,this.trailers={},this.context=null,this.onInfo=A||null,this.throwOnError=I,this.highWaterMark=C,this.signal=n,this.reason=null,this.removeAbortListener=null,FM.isStream(l)&&l.on("error",b=>{this.onError(b)}),this.signal&&(this.signal.aborted?this.reason=this.signal.reason??new Zzn:this.removeAbortListener=FM.addAbortListener(this.signal,()=>{this.reason=this.signal.reason??new Zzn,this.res?FM.destroy(this.res,this.reason):this.abort&&this.abort(this.reason),this.removeAbortListener&&(this.res?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}))}onConnect(t,r){if(this.reason){t(this.reason);return}Hda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{callback:o,opaque:l,abort:A,context:f,responseHeaders:I,highWaterMark:C}=this,b=I==="raw"?FM.parseRawHeaders(r):FM.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:b});return}let E=I==="raw"?FM.parseHeaders(r):b,N=E["content-type"],B=E["content-length"],F=new Yda({resume:n,abort:A,contentType:N,contentLength:this.method!=="HEAD"&&B?Number(B):null,highWaterMark:C});this.removeAbortListener&&F.on("close",this.removeAbortListener),this.callback=null,this.res=F,o!==null&&(this.throwOnError&&t>=400?this.runInAsyncScope(Qda,null,{callback:o,body:F,contentType:N,statusCode:t,statusMessage:a,headers:b}):this.runInAsyncScope(o,null,null,{statusCode:t,headers:b,trailers:this.trailers,opaque:l,body:F,context:f}))}onData(t){return this.res.push(t)}onComplete(t){FM.parseHeaders(t,this.trailers),this.res.push(null)}onError(t){let{res:r,callback:n,body:a,opaque:o}=this;n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:o})})),r&&(this.res=null,queueMicrotask(()=>{FM.destroy(r,t)})),a&&(this.body=null,FM.destroy(a,t)),this.removeAbortListener&&(r?.off("close",this.removeAbortListener),this.removeAbortListener(),this.removeAbortListener=null)}};function Lzn(e,t){if(t===void 0)return new Promise((r,n)=>{Lzn.call(this,e,(a,o)=>a?n(a):r(o))});try{this.dispatch(e,new Vht(e,t))}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}Hyr.exports=Lzn;Hyr.exports.RequestHandler=Vht});var FYe=H((wou,Ozn)=>{var{addAbortListener:Jda}=Em(),{RequestAbortedError:Uda}=Y0(),Fwe=Symbol("kListener"),F8=Symbol("kSignal");function Pzn(e){e.abort?e.abort(e[F8]?.reason):e.reason=e[F8]?.reason??new Uda,Wzn(e)}function Kda(e,t){if(e.reason=null,e[F8]=null,e[Fwe]=null,!!t){if(t.aborted){Pzn(e);return}e[F8]=t,e[Fwe]=()=>{Pzn(e)},Jda(e[F8],e[Fwe])}}function Wzn(e){e[F8]&&("removeEventListener"in e[F8]?e[F8].removeEventListener("abort",e[Fwe]):e[F8].removeListener("abort",e[Fwe]),e[F8]=null,e[Fwe]=null)}Ozn.exports={addSignal:Kda,removeSignal:Wzn}});var Qzn=H((Tou,Yzn)=>{"use strict";var jda=wt("node:assert"),{finished:zda,PassThrough:qda}=wt("node:stream"),{InvalidArgumentError:Zwe,InvalidReturnValueError:$da}=Y0(),LX=Em(),{getResolveErrorBodyCallback:epa}=Myr(),{AsyncResource:tpa}=wt("node:async_hooks"),{addSignal:rpa,removeSignal:Mzn}=FYe(),Yyr=class extends tpa{constructor(t,r,n){if(!t||typeof t!="object")throw new Zwe("invalid opts");let{signal:a,method:o,opaque:l,body:A,onInfo:f,responseHeaders:I,throwOnError:C}=t;try{if(typeof n!="function")throw new Zwe("invalid callback");if(typeof r!="function")throw new Zwe("invalid factory");if(a&&typeof a.on!="function"&&typeof a.addEventListener!="function")throw new Zwe("signal must be an EventEmitter or EventTarget");if(o==="CONNECT")throw new Zwe("invalid method");if(f&&typeof f!="function")throw new Zwe("invalid onInfo callback");super("UNDICI_STREAM")}catch(b){throw LX.isStream(A)&&LX.destroy(A.on("error",LX.nop),b),b}this.responseHeaders=I||null,this.opaque=l||null,this.factory=r,this.callback=n,this.res=null,this.abort=null,this.context=null,this.trailers=null,this.body=A,this.onInfo=f||null,this.throwOnError=C||!1,LX.isStream(A)&&A.on("error",b=>{this.onError(b)}),rpa(this,a)}onConnect(t,r){if(this.reason){t(this.reason);return}jda(this.callback),this.abort=t,this.context=r}onHeaders(t,r,n,a){let{factory:o,opaque:l,context:A,callback:f,responseHeaders:I}=this,C=I==="raw"?LX.parseRawHeaders(r):LX.parseHeaders(r);if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:C});return}this.factory=null;let b;if(this.throwOnError&&t>=400){let B=(I==="raw"?LX.parseHeaders(r):C)["content-type"];b=new qda,this.callback=null,this.runInAsyncScope(epa,null,{callback:f,body:b,contentType:B,statusCode:t,statusMessage:a,headers:C})}else{if(o===null)return;if(b=this.runInAsyncScope(o,null,{statusCode:t,headers:C,opaque:l,context:A}),!b||typeof b.write!="function"||typeof b.end!="function"||typeof b.on!="function")throw new $da("expected Writable");zda(b,{readable:!1},N=>{let{callback:B,res:F,opaque:Q,trailers:X,abort:ae}=this;this.res=null,(N||!F.readable)&&LX.destroy(F,N),this.callback=null,this.runInAsyncScope(B,null,N||null,{opaque:Q,trailers:X}),N&&ae()})}return b.on("drain",n),this.res=b,(b.writableNeedDrain!==void 0?b.writableNeedDrain:b._writableState?.needDrain)!==!0}onData(t){let{res:r}=this;return r?r.write(t):!0}onComplete(t){let{res:r}=this;Mzn(this),r&&(this.trailers=LX.parseHeaders(t),r.end())}onError(t){let{res:r,callback:n,opaque:a,body:o}=this;Mzn(this),this.factory=null,r?(this.res=null,LX.destroy(r,t)):n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:a})})),o&&(this.body=null,LX.destroy(o,t))}};function Hzn(e,t,r){if(r===void 0)return new Promise((n,a)=>{Hzn.call(this,e,t,(o,l)=>o?a(o):n(l))});try{this.dispatch(e,new Yyr(e,t,r))}catch(n){if(typeof r!="function")throw n;let a=e?.opaque;queueMicrotask(()=>r(n,{opaque:a}))}}Yzn.exports=Hzn});var Kzn=H((Rou,Uzn)=>{"use strict";var{Readable:Jzn,Duplex:npa,PassThrough:ipa}=wt("node:stream"),{InvalidArgumentError:ZYe,InvalidReturnValueError:spa,RequestAbortedError:Qyr}=Y0(),ZM=Em(),{AsyncResource:opa}=wt("node:async_hooks"),{addSignal:apa,removeSignal:cpa}=FYe(),Xzn=wt("node:assert"),Lwe=Symbol("resume"),Xyr=class extends Jzn{constructor(){super({autoDestroy:!0}),this[Lwe]=null}_read(){let{[Lwe]:t}=this;t&&(this[Lwe]=null,t())}_destroy(t,r){this._read(),r(t)}},Jyr=class extends Jzn{constructor(t){super({autoDestroy:!0}),this[Lwe]=t}_read(){this[Lwe]()}_destroy(t,r){!t&&!this._readableState.endEmitted&&(t=new Qyr),r(t)}},Uyr=class extends opa{constructor(t,r){if(!t||typeof t!="object")throw new ZYe("invalid opts");if(typeof r!="function")throw new ZYe("invalid handler");let{signal:n,method:a,opaque:o,onInfo:l,responseHeaders:A}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new ZYe("signal must be an EventEmitter or EventTarget");if(a==="CONNECT")throw new ZYe("invalid method");if(l&&typeof l!="function")throw new ZYe("invalid onInfo callback");super("UNDICI_PIPELINE"),this.opaque=o||null,this.responseHeaders=A||null,this.handler=r,this.abort=null,this.context=null,this.onInfo=l||null,this.req=new Xyr().on("error",ZM.nop),this.ret=new npa({readableObjectMode:t.objectMode,autoDestroy:!0,read:()=>{let{body:f}=this;f?.resume&&f.resume()},write:(f,I,C)=>{let{req:b}=this;b.push(f,I)||b._readableState.destroyed?C():b[Lwe]=C},destroy:(f,I)=>{let{body:C,req:b,res:E,ret:N,abort:B}=this;!f&&!N._readableState.endEmitted&&(f=new Qyr),B&&f&&B(),ZM.destroy(C,f),ZM.destroy(b,f),ZM.destroy(E,f),cpa(this),I(f)}}).on("prefinish",()=>{let{req:f}=this;f.push(null)}),this.res=null,apa(this,n)}onConnect(t,r){let{ret:n,res:a}=this;if(this.reason){t(this.reason);return}Xzn(!a,"pipeline cannot be retried"),Xzn(!n.destroyed),this.abort=t,this.context=r}onHeaders(t,r,n){let{opaque:a,handler:o,context:l}=this;if(t<200){if(this.onInfo){let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);this.onInfo({statusCode:t,headers:f})}return}this.res=new Jyr(n);let A;try{this.handler=null;let f=this.responseHeaders==="raw"?ZM.parseRawHeaders(r):ZM.parseHeaders(r);A=this.runInAsyncScope(o,null,{statusCode:t,headers:f,opaque:a,body:this.res,context:l})}catch(f){throw this.res.on("error",ZM.nop),f}if(!A||typeof A.on!="function")throw new spa("expected Readable");A.on("data",f=>{let{ret:I,body:C}=this;!I.push(f)&&C.pause&&C.pause()}).on("error",f=>{let{ret:I}=this;ZM.destroy(I,f)}).on("end",()=>{let{ret:f}=this;f.push(null)}).on("close",()=>{let{ret:f}=this;f._readableState.ended||ZM.destroy(f,new Qyr)}),this.body=A}onData(t){let{res:r}=this;return r.push(t)}onComplete(t){let{res:r}=this;r.push(null)}onError(t){let{ret:r}=this;this.handler=null,ZM.destroy(r,t)}};function lpa(e,t){try{let r=new Uyr(e,t);return this.dispatch({...e,body:r.req},r),r.ret}catch(r){return new ipa().destroy(r)}}Uzn.exports=lpa});var tqn=H((Nou,eqn)=>{"use strict";var{InvalidArgumentError:Kyr,SocketError:upa}=Y0(),{AsyncResource:gpa}=wt("node:async_hooks"),jzn=Em(),{addSignal:Apa,removeSignal:zzn}=FYe(),qzn=wt("node:assert"),jyr=class extends gpa{constructor(t,r){if(!t||typeof t!="object")throw new Kyr("invalid opts");if(typeof r!="function")throw new Kyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new Kyr("signal must be an EventEmitter or EventTarget");super("UNDICI_UPGRADE"),this.responseHeaders=o||null,this.opaque=a||null,this.callback=r,this.abort=null,this.context=null,Apa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}qzn(this.callback),this.abort=t,this.context=null}onHeaders(){throw new upa("bad upgrade",null)}onUpgrade(t,r,n){qzn(t===101);let{callback:a,opaque:o,context:l}=this;zzn(this),this.callback=null;let A=this.responseHeaders==="raw"?jzn.parseRawHeaders(r):jzn.parseHeaders(r);this.runInAsyncScope(a,null,null,{headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;zzn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function $zn(e,t){if(t===void 0)return new Promise((r,n)=>{$zn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new jyr(e,t);this.dispatch({...e,method:e.method||"GET",upgrade:e.protocol||"Websocket"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}eqn.exports=$zn});var oqn=H((Dou,sqn)=>{"use strict";var dpa=wt("node:assert"),{AsyncResource:ppa}=wt("node:async_hooks"),{InvalidArgumentError:zyr,SocketError:fpa}=Y0(),rqn=Em(),{addSignal:Ipa,removeSignal:nqn}=FYe(),qyr=class extends ppa{constructor(t,r){if(!t||typeof t!="object")throw new zyr("invalid opts");if(typeof r!="function")throw new zyr("invalid callback");let{signal:n,opaque:a,responseHeaders:o}=t;if(n&&typeof n.on!="function"&&typeof n.addEventListener!="function")throw new zyr("signal must be an EventEmitter or EventTarget");super("UNDICI_CONNECT"),this.opaque=a||null,this.responseHeaders=o||null,this.callback=r,this.abort=null,Ipa(this,n)}onConnect(t,r){if(this.reason){t(this.reason);return}dpa(this.callback),this.abort=t,this.context=r}onHeaders(){throw new fpa("bad connect",null)}onUpgrade(t,r,n){let{callback:a,opaque:o,context:l}=this;nqn(this),this.callback=null;let A=r;A!=null&&(A=this.responseHeaders==="raw"?rqn.parseRawHeaders(r):rqn.parseHeaders(r)),this.runInAsyncScope(a,null,null,{statusCode:t,headers:A,socket:n,opaque:o,context:l})}onError(t){let{callback:r,opaque:n}=this;nqn(this),r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:n})}))}};function iqn(e,t){if(t===void 0)return new Promise((r,n)=>{iqn.call(this,e,(a,o)=>a?n(a):r(o))});try{let r=new qyr(e,t);this.dispatch({...e,method:"CONNECT"},r)}catch(r){if(typeof t!="function")throw r;let n=e?.opaque;queueMicrotask(()=>t(r,{opaque:n}))}}sqn.exports=iqn});var aqn=H((kou,Vwe)=>{"use strict";Vwe.exports.request=Vzn();Vwe.exports.stream=Qzn();Vwe.exports.pipeline=Kzn();Vwe.exports.upgrade=tqn();Vwe.exports.connect=oqn()});var ebr=H((xou,cqn)=>{"use strict";var{UndiciError:hpa}=Y0(),$yr=class e extends hpa{constructor(t){super(t),Error.captureStackTrace(this,e),this.name="MockNotMatchedError",this.message=t||"The request does not match any registered mock dispatches",this.code="UND_MOCK_ERR_MOCK_NOT_MATCHED"}};cqn.exports={MockNotMatchedError:$yr}});var Pwe=H((Gou,lqn)=>{"use strict";lqn.exports={kAgent:Symbol("agent"),kOptions:Symbol("options"),kFactory:Symbol("factory"),kDispatches:Symbol("dispatches"),kDispatchKey:Symbol("dispatch key"),kDefaultHeaders:Symbol("default headers"),kDefaultTrailers:Symbol("default trailers"),kContentLength:Symbol("content length"),kMockAgent:Symbol("mock agent"),kMockAgentSet:Symbol("mock agent set"),kMockAgentGet:Symbol("mock agent get"),kMockDispatch:Symbol("mock dispatch"),kClose:Symbol("close"),kOriginalClose:Symbol("original agent close"),kOrigin:Symbol("origin"),kIsMockActive:Symbol("is mock active"),kNetConnect:Symbol("net connect"),kGetNetConnect:Symbol("get net connect"),kConnected:Symbol("connected")}});var LYe=H((Fou,_qn)=>{"use strict";var{MockNotMatchedError:Ahe}=ebr(),{kDispatches:Pht,kMockAgent:mpa,kOriginalDispatch:Cpa,kOrigin:_pa,kGetNetConnect:ypa}=Pwe(),{buildURL:bpa}=Em(),{STATUS_CODES:Epa}=wt("node:http"),{types:{isPromise:Spa}}=wt("node:util");function Q$(e,t){return typeof e=="string"?e===t:e instanceof RegExp?e.test(t):typeof e=="function"?e(t)===!0:!1}function gqn(e){return Object.fromEntries(Object.entries(e).map(([t,r])=>[t.toLocaleLowerCase(),r]))}function Aqn(e,t){if(Array.isArray(e)){for(let r=0;r"u")return!0;if(typeof t!="object"||typeof e.headers!="object")return!1;for(let[r,n]of Object.entries(e.headers)){let a=Aqn(t,r);if(!Q$(n,a))return!1}return!0}function uqn(e){if(typeof e!="string")return e;let t=e.split("?");if(t.length!==2)return e;let r=new URLSearchParams(t.pop());return r.sort(),[...t,r.toString()].join("?")}function vpa(e,{path:t,method:r,body:n,headers:a}){let o=Q$(e.path,t),l=Q$(e.method,r),A=typeof e.body<"u"?Q$(e.body,n):!0,f=dqn(e,a);return o&&l&&A&&f}function pqn(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:typeof e=="object"?JSON.stringify(e):e.toString()}function fqn(e,t){let r=t.query?bpa(t.path,t.query):t.path,n=typeof r=="string"?uqn(r):r,a=e.filter(({consumed:o})=>!o).filter(({path:o})=>Q$(uqn(o),n));if(a.length===0)throw new Ahe(`Mock dispatch not matched for path '${n}'`);if(a=a.filter(({method:o})=>Q$(o,t.method)),a.length===0)throw new Ahe(`Mock dispatch not matched for method '${t.method}' on path '${n}'`);if(a=a.filter(({body:o})=>typeof o<"u"?Q$(o,t.body):!0),a.length===0)throw new Ahe(`Mock dispatch not matched for body '${t.body}' on path '${n}'`);if(a=a.filter(o=>dqn(o,t.headers)),a.length===0){let o=typeof t.headers=="object"?JSON.stringify(t.headers):t.headers;throw new Ahe(`Mock dispatch not matched for headers '${o}' on path '${n}'`)}return a[0]}function Bpa(e,t,r){let n={timesInvoked:0,times:1,persist:!1,consumed:!1},a=typeof r=="function"?{callback:r}:{...r},o={...n,...t,pending:!0,data:{error:null,...a}};return e.push(o),o}function tbr(e,t){let r=e.findIndex(n=>n.consumed?vpa(n,t):!1);r!==-1&&e.splice(r,1)}function Iqn(e){let{path:t,method:r,body:n,headers:a,query:o}=e;return{path:t,method:r,body:n,headers:a,query:o}}function rbr(e){let t=Object.keys(e),r=[];for(let n=0;n=E,n.pending=b0?setTimeout(()=>{N(this[Pht])},I):N(this[Pht]);function N(F,Q=o){let X=Array.isArray(e.headers)?nbr(e.headers):e.headers,ae=typeof Q=="function"?Q({...e,headers:X}):Q;if(Spa(ae)){ae.then(ue=>N(F,ue));return}let ne=pqn(ae),ce=rbr(l),fe=rbr(A);t.onConnect?.(ue=>t.onError(ue),null),t.onHeaders?.(a,ce,B,hqn(a)),t.onData?.(Buffer.from(ne)),t.onComplete?.(fe),tbr(F,r)}function B(){}return!0}function Tpa(){let e=this[mpa],t=this[_pa],r=this[Cpa];return function(a,o){if(e.isMockActive)try{mqn.call(this,a,o)}catch(l){if(l instanceof Ahe){let A=e[ypa]();if(A===!1)throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)`);if(Cqn(A,t))r.call(this,a,o);else throw new Ahe(`${l.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)`)}else throw l}else r.call(this,a,o)}}function Cqn(e,t){let r=new URL(t);return e===!0?!0:!!(Array.isArray(e)&&e.some(n=>Q$(n,r.host)))}function Rpa(e){if(e){let{agent:t,...r}=e;return r}}_qn.exports={getResponseData:pqn,getMockDispatch:fqn,addMockDispatch:Bpa,deleteMockDispatch:tbr,buildKey:Iqn,generateKeyValues:rbr,matchValue:Q$,getResponse:wpa,getStatusText:hqn,mockDispatch:mqn,buildMockDispatch:Tpa,checkNetConnect:Cqn,buildMockOptions:Rpa,getHeaderByName:Aqn,buildHeadersFromArray:nbr}});var ubr=H((Zou,lbr)=>{"use strict";var{getResponseData:Npa,buildKey:Dpa,addMockDispatch:ibr}=LYe(),{kDispatches:Wht,kDispatchKey:Oht,kDefaultHeaders:sbr,kDefaultTrailers:obr,kContentLength:abr,kMockDispatch:Mht}=Pwe(),{InvalidArgumentError:Z8}=Y0(),{buildURL:kpa}=Em(),Wwe=class{constructor(t){this[Mht]=t}delay(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("waitInMs must be a valid integer > 0");return this[Mht].delay=t,this}persist(){return this[Mht].persist=!0,this}times(t){if(typeof t!="number"||!Number.isInteger(t)||t<=0)throw new Z8("repeatTimes must be a valid integer > 0");return this[Mht].times=t,this}},cbr=class{constructor(t,r){if(typeof t!="object")throw new Z8("opts must be an object");if(typeof t.path>"u")throw new Z8("opts.path must be defined");if(typeof t.method>"u"&&(t.method="GET"),typeof t.path=="string")if(t.query)t.path=kpa(t.path,t.query);else{let n=new URL(t.path,"data://");t.path=n.pathname+n.search}typeof t.method=="string"&&(t.method=t.method.toUpperCase()),this[Oht]=Dpa(t),this[Wht]=r,this[sbr]={},this[obr]={},this[abr]=!1}createMockScopeDispatchData({statusCode:t,data:r,responseOptions:n}){let a=Npa(r),o=this[abr]?{"content-length":a.length}:{},l={...this[sbr],...o,...n.headers},A={...this[obr],...n.trailers};return{statusCode:t,data:r,headers:l,trailers:A}}validateReplyParameters(t){if(typeof t.statusCode>"u")throw new Z8("statusCode must be defined");if(typeof t.responseOptions!="object"||t.responseOptions===null)throw new Z8("responseOptions must be an object")}reply(t){if(typeof t=="function"){let o=A=>{let f=t(A);if(typeof f!="object"||f===null)throw new Z8("reply options callback must return an object");let I={data:"",responseOptions:{},...f};return this.validateReplyParameters(I),{...this.createMockScopeDispatchData(I)}},l=ibr(this[Wht],this[Oht],o);return new Wwe(l)}let r={statusCode:t,data:arguments[1]===void 0?"":arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(r);let n=this.createMockScopeDispatchData(r),a=ibr(this[Wht],this[Oht],n);return new Wwe(a)}replyWithError(t){if(typeof t>"u")throw new Z8("error must be defined");let r=ibr(this[Wht],this[Oht],{error:t});return new Wwe(r)}defaultReplyHeaders(t){if(typeof t>"u")throw new Z8("headers must be defined");return this[sbr]=t,this}defaultReplyTrailers(t){if(typeof t>"u")throw new Z8("trailers must be defined");return this[obr]=t,this}replyContentLength(){return this[abr]=!0,this}};lbr.exports.MockInterceptor=cbr;lbr.exports.MockScope=Wwe});var dbr=H((Lou,wqn)=>{"use strict";var{promisify:xpa}=wt("node:util"),Gpa=vYe(),{buildMockDispatch:Fpa}=LYe(),{kDispatches:yqn,kMockAgent:bqn,kClose:Eqn,kOriginalClose:Sqn,kOrigin:vqn,kOriginalDispatch:Zpa,kConnected:gbr}=Pwe(),{MockInterceptor:Lpa}=ubr(),Bqn=B2(),{InvalidArgumentError:Vpa}=Y0(),Abr=class extends Gpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Vpa("Argument opts.agent must implement Agent");this[bqn]=r.agent,this[vqn]=t,this[yqn]=[],this[gbr]=1,this[Zpa]=this.dispatch,this[Sqn]=this.close.bind(this),this.dispatch=Fpa.call(this),this.close=this[Eqn]}get[Bqn.kConnected](){return this[gbr]}intercept(t){return new Lpa(t,this[yqn])}async[Eqn](){await xpa(this[Sqn])(),this[gbr]=0,this[bqn][Bqn.kClients].delete(this[vqn])}};wqn.exports=Abr});var Ibr=H((Vou,Gqn)=>{"use strict";var{promisify:Ppa}=wt("node:util"),Wpa=Dwe(),{buildMockDispatch:Opa}=LYe(),{kDispatches:Tqn,kMockAgent:Rqn,kClose:Nqn,kOriginalClose:Dqn,kOrigin:kqn,kOriginalDispatch:Mpa,kConnected:pbr}=Pwe(),{MockInterceptor:Hpa}=ubr(),xqn=B2(),{InvalidArgumentError:Ypa}=Y0(),fbr=class extends Wpa{constructor(t,r){if(super(t,r),!r||!r.agent||typeof r.agent.dispatch!="function")throw new Ypa("Argument opts.agent must implement Agent");this[Rqn]=r.agent,this[kqn]=t,this[Tqn]=[],this[pbr]=1,this[Mpa]=this.dispatch,this[Dqn]=this.close.bind(this),this.dispatch=Opa.call(this),this.close=this[Nqn]}get[xqn.kConnected](){return this[pbr]}intercept(t){return new Hpa(t,this[Tqn])}async[Nqn](){await Ppa(this[Dqn])(),this[pbr]=0,this[Rqn][xqn.kClients].delete(this[kqn])}};Gqn.exports=fbr});var Zqn=H((Wou,Fqn)=>{"use strict";var Qpa={pronoun:"it",is:"is",was:"was",this:"this"},Xpa={pronoun:"they",is:"are",was:"were",this:"these"};Fqn.exports=class{constructor(t,r){this.singular=t,this.plural=r}pluralize(t){let r=t===1,n=r?Qpa:Xpa,a=r?this.singular:this.plural;return{...n,count:t,noun:a}}}});var Vqn=H((Mou,Lqn)=>{"use strict";var{Transform:Jpa}=wt("node:stream"),{Console:Upa}=wt("node:console"),Kpa=process.versions.icu?"\u2705":"Y ",jpa=process.versions.icu?"\u274C":"N ";Lqn.exports=class{constructor({disableColors:t}={}){this.transform=new Jpa({transform(r,n,a){a(null,r)}}),this.logger=new Upa({stdout:this.transform,inspectOptions:{colors:!t&&!process.env.CI}})}format(t){let r=t.map(({method:n,path:a,data:{statusCode:o},persist:l,times:A,timesInvoked:f,origin:I})=>({Method:n,Origin:I,Path:a,"Status code":o,Persistent:l?Kpa:jpa,Invocations:f,Remaining:l?1/0:A-f}));return this.logger.table(r),this.transform.read().toString()}}});var Mqn=H((Hou,Oqn)=>{"use strict";var{kClients:dhe}=B2(),zpa=kwe(),{kAgent:hbr,kMockAgentSet:Hht,kMockAgentGet:Pqn,kDispatches:mbr,kIsMockActive:Yht,kNetConnect:phe,kGetNetConnect:qpa,kOptions:Qht,kFactory:Xht}=Pwe(),$pa=dbr(),efa=Ibr(),{matchValue:tfa,buildMockOptions:rfa}=LYe(),{InvalidArgumentError:Wqn,UndiciError:nfa}=Y0(),ifa=rYe(),sfa=Zqn(),ofa=Vqn(),Cbr=class extends ifa{constructor(t){if(super(t),this[phe]=!0,this[Yht]=!0,t?.agent&&typeof t.agent.dispatch!="function")throw new Wqn("Argument opts.agent must implement Agent");let r=t?.agent?t.agent:new zpa(t);this[hbr]=r,this[dhe]=r[dhe],this[Qht]=rfa(t)}get(t){let r=this[Pqn](t);return r||(r=this[Xht](t),this[Hht](t,r)),r}dispatch(t,r){return this.get(t.origin),this[hbr].dispatch(t,r)}async close(){await this[hbr].close(),this[dhe].clear()}deactivate(){this[Yht]=!1}activate(){this[Yht]=!0}enableNetConnect(t){if(typeof t=="string"||typeof t=="function"||t instanceof RegExp)Array.isArray(this[phe])?this[phe].push(t):this[phe]=[t];else if(typeof t>"u")this[phe]=!0;else throw new Wqn("Unsupported matcher. Must be one of String|Function|RegExp.")}disableNetConnect(){this[phe]=!1}get isMockActive(){return this[Yht]}[Hht](t,r){this[dhe].set(t,r)}[Xht](t){let r=Object.assign({agent:this},this[Qht]);return this[Qht]&&this[Qht].connections===1?new $pa(t,r):new efa(t,r)}[Pqn](t){let r=this[dhe].get(t);if(r)return r;if(typeof t!="string"){let n=this[Xht]("http://localhost:9999");return this[Hht](t,n),n}for(let[n,a]of Array.from(this[dhe]))if(a&&typeof n!="string"&&tfa(n,t)){let o=this[Xht](t);return this[Hht](t,o),o[mbr]=a[mbr],o}}[qpa](){return this[phe]}pendingInterceptors(){let t=this[dhe];return Array.from(t.entries()).flatMap(([r,n])=>n[mbr].map(a=>({...a,origin:r}))).filter(({pending:r})=>r)}assertNoPendingInterceptors({pendingInterceptorsFormatter:t=new ofa}={}){let r=this.pendingInterceptors();if(r.length===0)return;let n=new sfa("interceptor","interceptors").pluralize(r.length);throw new nfa(` ${n.count} ${n.noun} ${n.is} pending: ${t.format(r)} -`.trim())}};Oqn.exports=Cbr});var Jht=H((Hou,Xqn)=>{"use strict";var Hqn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:afa}=Y0(),cfa=kwe();Qqn()===void 0&&Yqn(new cfa);function Yqn(e){if(!e||typeof e.dispatch!="function")throw new afa("Argument agent must implement Agent");Object.defineProperty(globalThis,Hqn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function Qqn(){return globalThis[Hqn]}Xqn.exports={setGlobalDispatcher:Yqn,getGlobalDispatcher:Qqn}});var _br=H((Qou,Jqn)=>{"use strict";Jqn.exports=class{#e;constructor(t){if(typeof t!="object"||t===null)throw new TypeError("handler must be an object");this.#e=t}onConnect(...t){return this.#e.onConnect?.(...t)}onError(...t){return this.#e.onError?.(...t)}onUpgrade(...t){return this.#e.onUpgrade?.(...t)}onResponseStarted(...t){return this.#e.onResponseStarted?.(...t)}onHeaders(...t){return this.#e.onHeaders?.(...t)}onData(...t){return this.#e.onData?.(...t)}onComplete(...t){return this.#e.onComplete?.(...t)}onBodySent(...t){return this.#e.onBodySent?.(...t)}}});var Kqn=H((Xou,Uqn)=>{"use strict";var lfa=Bht();Uqn.exports=e=>{let t=e?.maxRedirections;return r=>function(a,o){let{maxRedirections:l=t,...A}=a;if(!l)return r(a,o);let f=new lfa(r,l,a,o);return r(A,f)}}});var zqn=H((Jou,jqn)=>{"use strict";var ufa=Lht();jqn.exports=e=>t=>function(n,a){return t(n,new ufa({...n,retryOptions:{...e,...n.retryOptions}},{handler:a,dispatch:t}))}});var $qn=H((Uou,qqn)=>{"use strict";var gfa=Em(),{InvalidArgumentError:Afa,RequestAbortedError:dfa}=Y0(),pfa=_br(),ybr=class extends pfa{#e=1024*1024;#t=null;#n=!1;#r=!1;#i=0;#s=null;#o=null;constructor({maxSize:t},r){if(super(r),t!=null&&(!Number.isFinite(t)||t<1))throw new Afa("maxSize must be a number greater than 0");this.#e=t??this.#e,this.#o=r}onConnect(t){this.#t=t,this.#o.onConnect(this.#g.bind(this))}#g(t){this.#r=!0,this.#s=t}onHeaders(t,r,n,a){let l=gfa.parseHeaders(r)["content-length"];if(l!=null&&l>this.#e)throw new dfa(`Response size (${l}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#o.onHeaders(t,r,n,a)}onError(t){this.#n||(t=this.#s??t,this.#o.onError(t))}onData(t){return this.#i=this.#i+t.length,this.#i>=this.#e&&(this.#n=!0,this.#r?this.#o.onError(this.#s):this.#o.onComplete([])),!0}onComplete(t){if(!this.#n){if(this.#r){this.#o.onError(this.reason);return}this.#o.onComplete(t)}}};function ffa({maxSize:e}={maxSize:1024*1024}){return t=>function(n,a){let{dumpMaxSize:o=e}=n,l=new ybr({maxSize:o},a);return t(n,l)}}qqn.exports=ffa});var fhe=H((Kou,o$n)=>{"use strict";var{kConstruct:Ifa}=B2(),{kEnumerableProperty:Owe}=Em(),{iteratorMixin:hfa,isValidHeaderName:VYe,isValidHeaderValue:t$n}=qW(),{webidl:__}=kk(),bbr=wt("node:assert"),Uht=wt("node:util"),aT=Symbol("headers map"),eO=Symbol("headers map sorted");function e$n(e){return e===10||e===13||e===9||e===32}function r$n(e){let t=0,r=e.length;for(;r>t&&e$n(e.charCodeAt(r-1));)--r;for(;r>t&&e$n(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function n$n(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function Ebr(e,t,r){if(r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(s$n(e)==="immutable")throw new TypeError("immutable");return Sbr(e).append(t,r,!1)}function i$n(e,t){return e[0]>1),r[I][0]<=C[0]?f=I+1:A=I;if(o!==I){for(l=o;l>f;)r[l]=r[--l];r[f]=C}}if(!n.next().done)throw new TypeError("Unreachable");return r}else{let n=0;for(let{0:a,1:{value:o}}of this[aT])r[n++]=[a,o],bbr(o!==null);return r.sort(i$n)}}},VX=class e{#e;#t;constructor(t=void 0){t!==Ifa&&(this.#t=new Kht,this.#e="none",t!==void 0&&(t=__.converters.HeadersInit(t,"Headers contructor","init"),n$n(this,t)))}append(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.append");let n="Headers.append";return t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),Ebr(this,t,r)}delete(t){if(__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.delete"),t=__.converters.ByteString(t,"Headers.delete","name"),!VYe(t))throw __.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.get");let r="Headers.get";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.get(t,!1)}has(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.has");let r="Headers.has";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.contains(t,!1)}set(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.set");let n="Headers.set";if(t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:n,value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:n,value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(t,r,!1)}getSetCookie(){__.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}get[eO](){if(this.#t[eO])return this.#t[eO];let t=[],r=this.#t.toSortedArray(),n=this.#t.cookies;if(n===null||n.length===1)return this.#t[eO]=r;for(let a=0;a>"](e,t,r,n.bind(e)):__.converters["record"](e,t,r)}throw __.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};o$n.exports={fill:n$n,compareHeaderName:i$n,Headers:VX,HeadersList:Kht,getHeadersGuard:s$n,setHeadersGuard:mfa,setHeadersList:Cfa,getHeadersList:Sbr}});var WYe=H((jou,I$n)=>{"use strict";var{Headers:A$n,HeadersList:a$n,fill:_fa,getHeadersGuard:yfa,setHeadersGuard:d$n,setHeadersList:p$n}=fhe(),{extractBody:c$n,cloneBody:bfa,mixinBody:Efa,hasFinalizationRegistry:Sfa,streamRegistry:vfa,bodyUnusable:Bfa}=dYe(),vbr=Em(),l$n=wt("node:util"),{kEnumerableProperty:tO}=vbr,{isValidReasonPhrase:wfa,isCancelled:Tfa,isAborted:Rfa,isBlobLike:Nfa,serializeJavascriptValueToJSONString:Dfa,isErrorLike:kfa,isomorphicEncode:xfa,environmentSettingsObject:Gfa}=qW(),{redirectStatusSet:Ffa,nullBodyStatus:Zfa}=sYe(),{kState:Mv,kHeaders:X$}=nae(),{webidl:Oh}=kk(),{FormData:Lfa}=gYe(),{URLSerializer:u$n}=eV(),{kConstruct:zht}=B2(),Bbr=wt("node:assert"),{types:Vfa}=wt("node:util"),Pfa=new TextEncoder("utf-8"),Ihe=class e{static error(){return PYe(qht(),"immutable")}static json(t,r={}){Oh.argumentLengthCheck(arguments,1,"Response.json"),r!==null&&(r=Oh.converters.ResponseInit(r));let n=Pfa.encode(Dfa(t)),a=c$n(n),o=PYe(Mwe({}),"response");return g$n(o,r,{body:a[0],type:"application/json"}),o}static redirect(t,r=302){Oh.argumentLengthCheck(arguments,1,"Response.redirect"),t=Oh.converters.USVString(t),r=Oh.converters["unsigned short"](r);let n;try{n=new URL(t,Gfa.settingsObject.baseUrl)}catch(l){throw new TypeError(`Failed to parse URL from ${t}`,{cause:l})}if(!Ffa.has(r))throw new RangeError(`Invalid status code ${r}`);let a=PYe(Mwe({}),"immutable");a[Mv].status=r;let o=xfa(u$n(n));return a[Mv].headersList.append("location",o,!0),a}constructor(t=null,r={}){if(t===zht)return;t!==null&&(t=Oh.converters.BodyInit(t)),r=Oh.converters.ResponseInit(r),this[Mv]=Mwe({}),this[X$]=new A$n(zht),d$n(this[X$],"response"),p$n(this[X$],this[Mv].headersList);let n=null;if(t!=null){let[a,o]=c$n(t);n={body:a,type:o}}g$n(this,r,n)}get type(){return Oh.brandCheck(this,e),this[Mv].type}get url(){Oh.brandCheck(this,e);let t=this[Mv].urlList,r=t[t.length-1]??null;return r===null?"":u$n(r,!0)}get redirected(){return Oh.brandCheck(this,e),this[Mv].urlList.length>1}get status(){return Oh.brandCheck(this,e),this[Mv].status}get ok(){return Oh.brandCheck(this,e),this[Mv].status>=200&&this[Mv].status<=299}get statusText(){return Oh.brandCheck(this,e),this[Mv].statusText}get headers(){return Oh.brandCheck(this,e),this[X$]}get body(){return Oh.brandCheck(this,e),this[Mv].body?this[Mv].body.stream:null}get bodyUsed(){return Oh.brandCheck(this,e),!!this[Mv].body&&vbr.isDisturbed(this[Mv].body.stream)}clone(){if(Oh.brandCheck(this,e),Bfa(this))throw Oh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=wbr(this[Mv]);return PYe(t,yfa(this[X$]))}[l$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${l$n.formatWithOptions(r,n)}`}};Efa(Ihe);Object.defineProperties(Ihe.prototype,{type:tO,url:tO,status:tO,ok:tO,redirected:tO,statusText:tO,headers:tO,clone:tO,body:tO,bodyUsed:tO,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ihe,{json:tO,redirect:tO,error:tO});function wbr(e){if(e.internalResponse)return f$n(wbr(e.internalResponse),e.type);let t=Mwe({...e,body:null});return e.body!=null&&(t.body=bfa(t,e.body)),t}function Mwe(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new a$n(e?.headersList):new a$n,urlList:e?.urlList?[...e.urlList]:[]}}function qht(e){let t=kfa(e);return Mwe({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Wfa(e){return e.type==="error"&&e.status===0}function jht(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return Bbr(!(n in t)),r[n]=a,!0}})}function f$n(e,t){if(t==="basic")return jht(e,{type:"basic",headersList:e.headersList});if(t==="cors")return jht(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return jht(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return jht(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Bbr(!1)}function Ofa(e,t=null){return Bbr(Tfa(e)),Rfa(e)?qht(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:t})):qht(Object.assign(new DOMException("Request was cancelled."),{cause:t}))}function g$n(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!wfa(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[Mv].status=t.status),"statusText"in t&&t.statusText!=null&&(e[Mv].statusText=t.statusText),"headers"in t&&t.headers!=null&&_fa(e[X$],t.headers),r){if(Zfa.includes(e.status))throw Oh.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[Mv].body=r.body,r.type!=null&&!e[Mv].headersList.contains("content-type",!0)&&e[Mv].headersList.append("content-type",r.type,!0)}}function PYe(e,t){let r=new Ihe(zht);return r[Mv]=e,r[X$]=new A$n(zht),p$n(r[X$],e.headersList),d$n(r[X$],t),Sfa&&e.body?.stream&&vfa.register(r,new WeakRef(e.body.stream)),r}Oh.converters.ReadableStream=Oh.interfaceConverter(ReadableStream);Oh.converters.FormData=Oh.interfaceConverter(Lfa);Oh.converters.URLSearchParams=Oh.interfaceConverter(URLSearchParams);Oh.converters.XMLHttpRequestBodyInit=function(e,t,r){return typeof e=="string"?Oh.converters.USVString(e,t,r):Nfa(e)?Oh.converters.Blob(e,t,r,{strict:!1}):ArrayBuffer.isView(e)||Vfa.isArrayBuffer(e)?Oh.converters.BufferSource(e,t,r):vbr.isFormDataLike(e)?Oh.converters.FormData(e,t,r,{strict:!1}):e instanceof URLSearchParams?Oh.converters.URLSearchParams(e,t,r):Oh.converters.DOMString(e,t,r)};Oh.converters.BodyInit=function(e,t,r){return e instanceof ReadableStream?Oh.converters.ReadableStream(e,t,r):e?.[Symbol.asyncIterator]?e:Oh.converters.XMLHttpRequestBodyInit(e,t,r)};Oh.converters.ResponseInit=Oh.dictionaryConverter([{key:"status",converter:Oh.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:Oh.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:Oh.converters.HeadersInit}]);I$n.exports={isNetworkError:Wfa,makeNetworkError:qht,makeResponse:Mwe,makeAppropriateNetworkError:Ofa,filterResponse:f$n,Response:Ihe,cloneResponse:wbr,fromInnerResponse:PYe}});var _$n=H((zou,C$n)=>{"use strict";var{kConnected:h$n,kSize:m$n}=B2(),Tbr=class{constructor(t){this.value=t}deref(){return this.value[h$n]===0&&this.value[m$n]===0?void 0:this.value}},Rbr=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[h$n]===0&&t[m$n]===0&&this.finalizer(r)})}unregister(t){}};C$n.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Tbr,FinalizationRegistry:Rbr}):{WeakRef,FinalizationRegistry}}});var Hwe=H((qou,F$n)=>{"use strict";var{extractBody:Mfa,mixinBody:Hfa,cloneBody:Yfa,bodyUnusable:y$n}=dYe(),{Headers:N$n,fill:Qfa,HeadersList:rmt,setHeadersGuard:Dbr,getHeadersGuard:Xfa,setHeadersList:D$n,getHeadersList:b$n}=fhe(),{FinalizationRegistry:Jfa}=_$n()(),emt=Em(),E$n=wt("node:util"),{isValidHTTPToken:Ufa,sameOrigin:S$n,environmentSettingsObject:$ht}=qW(),{forbiddenMethodsSet:Kfa,corsSafeListedMethodsSet:jfa,referrerPolicy:zfa,requestRedirect:qfa,requestMode:$fa,requestCredentials:eIa,requestCache:tIa,requestDuplex:rIa}=sYe(),{kEnumerableProperty:cT,normalizedMethodRecordsBase:nIa,normalizedMethodRecords:iIa}=emt,{kHeaders:rO,kSignal:tmt,kState:O1,kDispatcher:Nbr}=nae(),{webidl:vf}=kk(),{URLSerializer:sIa}=eV(),{kConstruct:nmt}=B2(),oIa=wt("node:assert"),{getMaxListeners:v$n,setMaxListeners:B$n,getEventListeners:aIa,defaultMaxListeners:w$n}=wt("node:events"),cIa=Symbol("abortController"),k$n=new Jfa(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),imt=new WeakMap;function T$n(e){return t;function t(){let r=e.deref();if(r!==void 0){k$n.unregister(t),this.removeEventListener("abort",t),r.abort(this.reason);let n=imt.get(r.signal);if(n!==void 0){if(n.size!==0){for(let a of n){let o=a.deref();o!==void 0&&o.abort(this.reason)}n.clear()}imt.delete(r.signal)}}}}var R$n=!1,dae=class e{constructor(t,r={}){if(t===nmt)return;let n="Request constructor";vf.argumentLengthCheck(arguments,1,n),t=vf.converters.RequestInfo(t,n,"input"),r=vf.converters.RequestInit(r,n,"init");let a=null,o=null,l=$ht.settingsObject.baseUrl,A=null;if(typeof t=="string"){this[Nbr]=r.dispatcher;let X;try{X=new URL(t,l)}catch(ae){throw new TypeError("Failed to parse URL from "+t,{cause:ae})}if(X.username||X.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);a=smt({urlList:[X]}),o="cors"}else this[Nbr]=r.dispatcher||t[Nbr],oIa(t instanceof e),a=t[O1],A=t[tmt];let f=$ht.settingsObject.origin,I="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&S$n(a.window,f)&&(I=a.window),r.window!=null)throw new TypeError(`'window' option '${I}' must be null`);"window"in r&&(I="no-window"),a=smt({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:$ht.settingsObject,window:I,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]});let C=Object.keys(r).length!==0;if(C&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),r.referrer!==void 0){let X=r.referrer;if(X==="")a.referrer="no-referrer";else{let ae;try{ae=new URL(X,l)}catch(ne){throw new TypeError(`Referrer "${X}" is not a valid URL.`,{cause:ne})}ae.protocol==="about:"&&ae.hostname==="client"||f&&!S$n(ae,$ht.settingsObject.baseUrl)?a.referrer="client":a.referrer=ae}}r.referrerPolicy!==void 0&&(a.referrerPolicy=r.referrerPolicy);let b;if(r.mode!==void 0?b=r.mode:b=o,b==="navigate")throw vf.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(b!=null&&(a.mode=b),r.credentials!==void 0&&(a.credentials=r.credentials),r.cache!==void 0&&(a.cache=r.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(a.redirect=r.redirect),r.integrity!=null&&(a.integrity=String(r.integrity)),r.keepalive!==void 0&&(a.keepalive=!!r.keepalive),r.method!==void 0){let X=r.method,ae=iIa[X];if(ae!==void 0)a.method=ae;else{if(!Ufa(X))throw new TypeError(`'${X}' is not a valid HTTP method.`);let ne=X.toUpperCase();if(Kfa.has(ne))throw new TypeError(`'${X}' HTTP method is unsupported.`);X=nIa[ne]??X,a.method=X}!R$n&&a.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),R$n=!0)}r.signal!==void 0&&(A=r.signal),this[O1]=a;let E=new AbortController;if(this[tmt]=E.signal,A!=null){if(!A||typeof A.aborted!="boolean"||typeof A.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(A.aborted)E.abort(A.reason);else{this[cIa]=E;let X=new WeakRef(E),ae=T$n(X);try{(typeof v$n=="function"&&v$n(A)===w$n||aIa(A,"abort").length>=w$n)&&B$n(1500,A)}catch{}emt.addAbortListener(A,ae),k$n.register(E,{signal:A,abort:ae},ae)}}if(this[rO]=new N$n(nmt),D$n(this[rO],a.headersList),Dbr(this[rO],"request"),b==="no-cors"){if(!jfa.has(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);Dbr(this[rO],"request-no-cors")}if(C){let X=b$n(this[rO]),ae=r.headers!==void 0?r.headers:new rmt(X);if(X.clear(),ae instanceof rmt){for(let{name:ne,value:ce}of ae.rawValues())X.append(ne,ce,!1);X.cookies=ae.cookies}else Qfa(this[rO],ae)}let N=t instanceof e?t[O1].body:null;if((r.body!=null||N!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(r.body!=null){let[X,ae]=Mfa(r.body,a.keepalive);B=X,ae&&!b$n(this[rO]).contains("content-type",!0)&&this[rO].append("content-type",ae)}let F=B??N;if(F!=null&&F.source==null){if(B!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let Q=F;if(B==null&&N!=null){if(y$n(t))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let X=new TransformStream;N.stream.pipeThrough(X),Q={source:N.source,length:N.length,stream:X.readable}}this[O1].body=Q}get method(){return vf.brandCheck(this,e),this[O1].method}get url(){return vf.brandCheck(this,e),sIa(this[O1].url)}get headers(){return vf.brandCheck(this,e),this[rO]}get destination(){return vf.brandCheck(this,e),this[O1].destination}get referrer(){return vf.brandCheck(this,e),this[O1].referrer==="no-referrer"?"":this[O1].referrer==="client"?"about:client":this[O1].referrer.toString()}get referrerPolicy(){return vf.brandCheck(this,e),this[O1].referrerPolicy}get mode(){return vf.brandCheck(this,e),this[O1].mode}get credentials(){return this[O1].credentials}get cache(){return vf.brandCheck(this,e),this[O1].cache}get redirect(){return vf.brandCheck(this,e),this[O1].redirect}get integrity(){return vf.brandCheck(this,e),this[O1].integrity}get keepalive(){return vf.brandCheck(this,e),this[O1].keepalive}get isReloadNavigation(){return vf.brandCheck(this,e),this[O1].reloadNavigation}get isHistoryNavigation(){return vf.brandCheck(this,e),this[O1].historyNavigation}get signal(){return vf.brandCheck(this,e),this[tmt]}get body(){return vf.brandCheck(this,e),this[O1].body?this[O1].body.stream:null}get bodyUsed(){return vf.brandCheck(this,e),!!this[O1].body&&emt.isDisturbed(this[O1].body.stream)}get duplex(){return vf.brandCheck(this,e),"half"}clone(){if(vf.brandCheck(this,e),y$n(this))throw new TypeError("unusable");let t=x$n(this[O1]),r=new AbortController;if(this.signal.aborted)r.abort(this.signal.reason);else{let n=imt.get(this.signal);n===void 0&&(n=new Set,imt.set(this.signal,n));let a=new WeakRef(r);n.add(a),emt.addAbortListener(r.signal,T$n(a))}return G$n(t,r.signal,Xfa(this[rO]))}[E$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${E$n.formatWithOptions(r,n)}`}};Hfa(dae);function smt(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new rmt(e.headersList):new rmt}}function x$n(e){let t=smt({...e,body:null});return e.body!=null&&(t.body=Yfa(t,e.body)),t}function G$n(e,t,r){let n=new dae(nmt);return n[O1]=e,n[tmt]=t,n[rO]=new N$n(nmt),D$n(n[rO],e.headersList),Dbr(n[rO],r),n}Object.defineProperties(dae.prototype,{method:cT,url:cT,headers:cT,redirect:cT,clone:cT,signal:cT,duplex:cT,destination:cT,body:cT,bodyUsed:cT,isHistoryNavigation:cT,isReloadNavigation:cT,keepalive:cT,integrity:cT,cache:cT,credentials:cT,attribute:cT,referrerPolicy:cT,referrer:cT,mode:cT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});vf.converters.Request=vf.interfaceConverter(dae);vf.converters.RequestInfo=function(e,t,r){return typeof e=="string"?vf.converters.USVString(e,t,r):e instanceof dae?vf.converters.Request(e,t,r):vf.converters.USVString(e,t,r)};vf.converters.AbortSignal=vf.interfaceConverter(AbortSignal);vf.converters.RequestInit=vf.dictionaryConverter([{key:"method",converter:vf.converters.ByteString},{key:"headers",converter:vf.converters.HeadersInit},{key:"body",converter:vf.nullableConverter(vf.converters.BodyInit)},{key:"referrer",converter:vf.converters.USVString},{key:"referrerPolicy",converter:vf.converters.DOMString,allowedValues:zfa},{key:"mode",converter:vf.converters.DOMString,allowedValues:$fa},{key:"credentials",converter:vf.converters.DOMString,allowedValues:eIa},{key:"cache",converter:vf.converters.DOMString,allowedValues:tIa},{key:"redirect",converter:vf.converters.DOMString,allowedValues:qfa},{key:"integrity",converter:vf.converters.DOMString},{key:"keepalive",converter:vf.converters.boolean},{key:"signal",converter:vf.nullableConverter(e=>vf.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:vf.converters.any},{key:"duplex",converter:vf.converters.DOMString,allowedValues:rIa},{key:"dispatcher",converter:vf.converters.any}]);F$n.exports={Request:dae,makeRequest:smt,fromInnerRequest:G$n,cloneRequest:x$n}});var MYe=H(($ou,j$n)=>{"use strict";var{makeNetworkError:_y,makeAppropriateNetworkError:omt,filterResponse:kbr,makeResponse:amt,fromInnerResponse:lIa}=WYe(),{HeadersList:Z$n}=fhe(),{Request:uIa,cloneRequest:gIa}=Hwe(),pae=wt("node:zlib"),{bytesMatch:AIa,makePolicyContainer:dIa,clonePolicyContainer:pIa,requestBadPort:fIa,TAOCheck:IIa,appendRequestOriginHeader:hIa,responseLocationURL:mIa,requestCurrentURL:L8,setRequestReferrerPolicyOnRedirect:CIa,tryUpgradeRequestToAPotentiallyTrustworthyURL:_Ia,createOpaqueTimingInfo:Lbr,appendFetchMetadata:yIa,corsCheck:bIa,crossOriginResourcePolicyCheck:EIa,determineRequestsReferrer:SIa,coarsenedSharedCurrentTime:OYe,createDeferredPromise:vIa,isBlobLike:BIa,sameOrigin:Zbr,isCancelled:hhe,isAborted:L$n,isErrorLike:wIa,fullyReadBody:TIa,readableStreamClose:RIa,isomorphicEncode:cmt,urlIsLocal:NIa,urlIsHttpHttpsScheme:Vbr,urlHasHttpsScheme:DIa,clampAndCoarsenConnectionTimingInfo:kIa,simpleRangeHeaderValue:xIa,buildContentRange:GIa,createInflate:FIa,extractMimeType:ZIa}=qW(),{kState:O$n,kDispatcher:LIa}=nae(),mhe=wt("node:assert"),{safelyExtractBody:Pbr,extractBody:V$n}=dYe(),{redirectStatusSet:M$n,nullBodyStatus:H$n,safeMethodsSet:VIa,requestBodyHeader:PIa,subresourceSet:WIa}=sYe(),OIa=wt("node:events"),{Readable:MIa,pipeline:HIa,finished:YIa}=wt("node:stream"),{addAbortListener:QIa,isErrored:XIa,isReadable:lmt,bufferToLowerCasedHeaderName:P$n}=Em(),{dataURLProcessor:JIa,serializeAMimeType:UIa,minimizeSupportedMimeType:KIa}=eV(),{getGlobalDispatcher:jIa}=Jht(),{webidl:zIa}=kk(),{STATUS_CODES:qIa}=wt("node:http"),$Ia=["GET","HEAD"],eha=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",xbr,umt=class extends OIa{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function tha(e){Y$n(e,"fetch")}function rha(e,t=void 0){zIa.argumentLengthCheck(arguments,1,"globalThis.fetch");let r=vIa(),n;try{n=new uIa(e,t)}catch(C){return r.reject(C),r.promise}let a=n[O$n];if(n.signal.aborted)return Gbr(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=!1,f=null;return QIa(n.signal,()=>{A=!0,mhe(f!=null),f.abort(n.signal.reason);let C=l?.deref();Gbr(r,a,C,n.signal.reason)}),f=X$n({request:a,processResponseEndOfBody:tha,processResponse:C=>{if(!A){if(C.aborted){Gbr(r,a,l,f.serializedAbortReason);return}if(C.type==="error"){r.reject(new TypeError("fetch failed",{cause:C.error}));return}l=new WeakRef(lIa(C,"immutable")),r.resolve(l.deref()),r=null}},dispatcher:n[LIa]}),r.promise}function Y$n(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;Vbr(r)&&n!==null&&(e.timingAllowPassed||(n=Lbr({startTime:n.startTime}),a=""),n.endTime=OYe(),e.timingInfo=n,Q$n(n,r.href,t,globalThis,a))}var Q$n=performance.markResourceTiming;function Gbr(e,t,r,n){if(e&&e.reject(n),t.body!=null&&lmt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[O$n];a.body!=null&&lmt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function X$n({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A=jIa()}){mhe(A);let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=OYe(I),b=Lbr({startTime:C}),E={controller:new umt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return mhe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=pIa(e.client.policyContainer):e.policyContainer=dIa()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,WIa.has(e.destination),J$n(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function J$n(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!NIa(L8(r))&&(n=_y("local URLs only")),_Ia(r),fIa(r)==="blocked"&&(n=_y("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=SIa(r)),n===null&&(n=await(async()=>{let o=L8(r);return Zbr(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await W$n(e)):r.mode==="same-origin"?_y('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?_y('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await W$n(e)):Vbr(L8(r))?(r.responseTainting="cors",await U$n(e)):_y("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=kbr(n,"basic"):r.responseTainting==="cors"?n=kbr(n,"cors"):r.responseTainting==="opaque"?n=kbr(n,"opaque"):mhe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range",!0)&&(n=a=_y()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||H$n.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>Fbr(e,_y(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!AIa(A,r.integrity)){o("integrity mismatch");return}n.body=Pbr(A)[0],Fbr(e,n)};await TIa(n.body,l,o)}else Fbr(e,n)}function W$n(e){if(hhe(e)&&e.request.redirectCount===0)return Promise.resolve(omt(e));let{request:t}=e,{protocol:r}=L8(t);switch(r){case"about:":return Promise.resolve(_y("about scheme is not supported"));case"blob:":{xbr||(xbr=wt("node:buffer").resolveObjectURL);let n=L8(t);if(n.search.length!==0)return Promise.resolve(_y("NetworkError when attempting to fetch resource."));let a=xbr(n.toString());if(t.method!=="GET"||!BIa(a))return Promise.resolve(_y("invalid method"));let o=amt(),l=a.size,A=cmt(`${l}`),f=a.type;if(t.headersList.contains("range",!0)){o.rangeRequested=!0;let I=t.headersList.get("range",!0),C=xIa(I,!0);if(C==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let{rangeStartValue:b,rangeEndValue:E}=C;if(b===null)b=l-E,E=b+E-1;else{if(b>=l)return Promise.resolve(_y("Range start is greater than the blob's size."));(E===null||E>=l)&&(E=l-1)}let N=a.slice(b,E,f),B=V$n(N);o.body=B[0];let F=cmt(`${N.size}`),Q=GIa(b,E,l);o.status=206,o.statusText="Partial Content",o.headersList.set("content-length",F,!0),o.headersList.set("content-type",f,!0),o.headersList.set("content-range",Q,!0)}else{let I=V$n(a);o.statusText="OK",o.body=I[0],o.headersList.set("content-length",A,!0),o.headersList.set("content-type",f,!0)}return Promise.resolve(o)}case"data:":{let n=L8(t),a=JIa(n);if(a==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let o=UIa(a.mimeType);return Promise.resolve(amt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:Pbr(a.body)[0]}))}case"file:":return Promise.resolve(_y("not implemented... yet..."));case"http:":case"https:":return U$n(e).catch(n=>_y(n));default:return Promise.resolve(_y("unknown scheme"))}}function nha(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Fbr(e,t){let r=e.timingInfo,n=()=>{let o=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=r),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;r.endTime=o;let A=t.cacheState,f=t.bodyInfo;t.timingAllowPassed||(r=Lbr(r),A="");let I=0;if(e.request.mode!=="navigator"||!t.hasCrossOriginRedirects){I=t.status;let C=ZIa(t.headersList);C!=="failure"&&(f.contentType=KIa(C))}e.request.initiatorType!=null&&Q$n(r,e.request.url.href,e.request.initiatorType,globalThis,A,f,I)};let l=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>l())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let a=t.type==="error"?t:t.internalResponse??t;a.body==null?n():YIa(a.body.stream,()=>{n()})}async function U$n(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await K$n(e),t.responseTainting==="cors"&&bIa(t,r)==="failure")return _y("cors failure");IIa(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&EIa(t.origin,t.client,t.destination,n)==="blocked"?_y("blocked"):(M$n.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),t.redirect==="error"?r=_y("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await iha(e,r):mhe(!1)),r.timingInfo=a,r)}function iha(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=mIa(n,L8(r).hash),a==null)return t}catch(l){return Promise.resolve(_y(l))}if(!Vbr(a))return Promise.resolve(_y("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(_y("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!Zbr(r,a))return Promise.resolve(_y('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(_y('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(_y());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!$Ia.includes(r.method)){r.method="GET",r.body=null;for(let l of PIa)r.headersList.delete(l)}Zbr(L8(r),a)||(r.headersList.delete("authorization",!0),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie",!0),r.headersList.delete("host",!0)),r.body!=null&&(mhe(r.body.source!=null),r.body=Pbr(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=OYe(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),CIa(r,n),J$n(e,!0)}async function K$n(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=gIa(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=cmt(`${C}`)),b!=null&&o.headersList.append("content-length",b,!0),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",cmt(o.referrer.href),!0),hIa(o),yIa(o),o.headersList.contains("user-agent",!0)||o.headersList.append("user-agent",eha),o.cache==="default"&&(o.headersList.contains("if-modified-since",!0)||o.headersList.contains("if-none-match",!0)||o.headersList.contains("if-unmodified-since",!0)||o.headersList.contains("if-match",!0)||o.headersList.contains("if-range",!0))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control",!0)&&o.headersList.append("cache-control","max-age=0",!0),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma",!0)||o.headersList.append("pragma","no-cache",!0),o.headersList.contains("cache-control",!0)||o.headersList.append("cache-control","no-cache",!0)),o.headersList.contains("range",!0)&&o.headersList.append("accept-encoding","identity",!0),o.headersList.contains("accept-encoding",!0)||(DIa(L8(o))?o.headersList.append("accept-encoding","br, gzip, deflate",!0):o.headersList.append("accept-encoding","gzip, deflate",!0)),o.headersList.delete("host",!0),A==null&&(o.cache="no-store"),o.cache!=="no-store"&&o.cache,l==null){if(o.cache==="only-if-cached")return _y("only if cached");let E=await sha(a,I,r);!VIa.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range",!0)&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?_y():hhe(e)?omt(e):_y("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(hhe(e))return omt(e);e.controller.connection.destroy(),l=await K$n(e,t,!0)}return l}async function sha(e,t=!1,r=!1){mhe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B,F=!0){this.destroyed||(this.destroyed=!0,F&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){hhe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{hhe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{hhe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=amt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=amt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),omt(e,B)):_y(B)}let I=async()=>{await e.controller.resume()},C=B=>{hhe(e)||e.controller.abort(B)},b=new ReadableStream({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)},type:"bytes"});a.body={stream:b,source:null,length:null},e.controller.onAborted=E,e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:X,value:ae}=await e.controller.next();if(L$n(e))break;B=X?void 0:ae}catch(X){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=X,F=!0)}if(B===void 0){RIa(e.controller.controller),nha(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}let Q=new Uint8Array(B);if(Q.byteLength&&e.controller.controller.enqueue(Q),XIa(b)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(B){L$n(e)?(a.aborted=!0,lmt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):lmt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:wIa(B)?B:void 0})),e.controller.connection.destroy()}return a;function N({body:B}){let F=L8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:Q.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;o.finalConnectionTimingInfo=kIa(void 0,o.postRedirectStartTime,e.crossOriginIsolatedCapability),ce.destroyed?ne(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne),o.finalNetworkRequestStartTime=OYe(e.crossOriginIsolatedCapability)},onResponseStarted(){o.finalNetworkResponseStartTime=OYe(e.crossOriginIsolatedCapability)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new Z$n;for(let Me=0;MeMe.trim())),be=Se.get("location",!0),this.body=new MIa({read:fe});let k=[],et=be&&n.redirect==="follow"&&M$n.has(ne);if(de.length!==0&&n.method!=="HEAD"&&n.method!=="CONNECT"&&!H$n.includes(ne)&&!et)for(let Me=0;Me{Me&&this.onError(Me)}).on("error",ct):this.body.on("error",ct)}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new Z$n;for(let de=0;de{"use strict";z$n.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var $$n=H((tau,q$n)=>{"use strict";var{webidl:nO}=kk(),gmt=Symbol("ProgressEvent state"),Obr=class e extends Event{constructor(t,r={}){t=nO.converters.DOMString(t,"ProgressEvent constructor","type"),r=nO.converters.ProgressEventInit(r??{}),super(t,r),this[gmt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return nO.brandCheck(this,e),this[gmt].lengthComputable}get loaded(){return nO.brandCheck(this,e),this[gmt].loaded}get total(){return nO.brandCheck(this,e),this[gmt].total}};nO.converters.ProgressEventInit=nO.dictionaryConverter([{key:"lengthComputable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:nO.converters.boolean,defaultValue:()=>!1}]);q$n.exports={ProgressEvent:Obr}});var tei=H((rau,eei)=>{"use strict";function oha(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}eei.exports={getEncoding:oha}});var lei=H((nau,cei)=>{"use strict";var{kState:Ywe,kError:Mbr,kResult:rei,kAborted:HYe,kLastProgressEventFired:Hbr}=Wbr(),{ProgressEvent:aha}=$$n(),{getEncoding:nei}=tei(),{serializeAMimeType:cha,parseMIMEType:iei}=eV(),{types:lha}=wt("node:util"),{StringDecoder:sei}=wt("string_decoder"),{btoa:oei}=wt("node:buffer"),uha={enumerable:!0,writable:!1,configurable:!1};function gha(e,t,r,n){if(e[Ywe]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Ywe]="loading",e[rei]=null,e[Mbr]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[HYe];)try{let{done:I,value:C}=await A;if(f&&!e[HYe]&&queueMicrotask(()=>{fae("loadstart",e)}),f=!1,!I&&lha.isUint8Array(C))l.push(C),(e[Hbr]===void 0||Date.now()-e[Hbr]>=50)&&!e[HYe]&&(e[Hbr]=Date.now(),queueMicrotask(()=>{fae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[Ywe]="done";try{let b=Aha(l,r,t.type,n);if(e[HYe])return;e[rei]=b,fae("load",e)}catch(b){e[Mbr]=b,fae("error",e)}e[Ywe]!=="loading"&&fae("loadend",e)});break}}catch(I){if(e[HYe])return;queueMicrotask(()=>{e[Ywe]="done",e[Mbr]=I,fae("error",e),e[Ywe]!=="loading"&&fae("loadend",e)});break}})()}function fae(e,t){let r=new aha(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function Aha(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=iei(r||"application/octet-stream");o!=="failure"&&(a+=cha(o)),a+=";base64,";let l=new sei("latin1");for(let A of e)a+=oei(l.write(A));return a+=oei(l.end()),a}case"Text":{let a="failure";if(n&&(a=nei(n)),a==="failure"&&r){let o=iei(r);o!=="failure"&&(a=nei(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),dha(e,a)}case"ArrayBuffer":return aei(e).buffer;case"BinaryString":{let a="",o=new sei("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function dha(e,t){let r=aei(e),n=pha(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function pha(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function aei(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}cei.exports={staticPropertyDescriptors:uha,readOperation:gha,fireAProgressEvent:fae}});var dei=H((iau,Aei)=>{"use strict";var{staticPropertyDescriptors:Qwe,readOperation:Amt,fireAProgressEvent:uei}=lei(),{kState:Che,kError:gei,kResult:dmt,kEvents:h0,kAborted:fha}=Wbr(),{webidl:ib}=kk(),{kEnumerableProperty:nV}=Em(),PX=class e extends EventTarget{constructor(){super(),this[Che]="empty",this[dmt]=null,this[gei]=null,this[h0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"ArrayBuffer")}readAsBinaryString(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"BinaryString")}readAsText(t,r=void 0){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsText"),t=ib.converters.Blob(t,{strict:!1}),r!==void 0&&(r=ib.converters.DOMString(r,"FileReader.readAsText","encoding")),Amt(this,t,"Text",r)}readAsDataURL(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"DataURL")}abort(){if(this[Che]==="empty"||this[Che]==="done"){this[dmt]=null;return}this[Che]==="loading"&&(this[Che]="done",this[dmt]=null),this[fha]=!0,uei("abort",this),this[Che]!=="loading"&&uei("loadend",this)}get readyState(){switch(ib.brandCheck(this,e),this[Che]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return ib.brandCheck(this,e),this[dmt]}get error(){return ib.brandCheck(this,e),this[gei]}get onloadend(){return ib.brandCheck(this,e),this[h0].loadend}set onloadend(t){ib.brandCheck(this,e),this[h0].loadend&&this.removeEventListener("loadend",this[h0].loadend),typeof t=="function"?(this[h0].loadend=t,this.addEventListener("loadend",t)):this[h0].loadend=null}get onerror(){return ib.brandCheck(this,e),this[h0].error}set onerror(t){ib.brandCheck(this,e),this[h0].error&&this.removeEventListener("error",this[h0].error),typeof t=="function"?(this[h0].error=t,this.addEventListener("error",t)):this[h0].error=null}get onloadstart(){return ib.brandCheck(this,e),this[h0].loadstart}set onloadstart(t){ib.brandCheck(this,e),this[h0].loadstart&&this.removeEventListener("loadstart",this[h0].loadstart),typeof t=="function"?(this[h0].loadstart=t,this.addEventListener("loadstart",t)):this[h0].loadstart=null}get onprogress(){return ib.brandCheck(this,e),this[h0].progress}set onprogress(t){ib.brandCheck(this,e),this[h0].progress&&this.removeEventListener("progress",this[h0].progress),typeof t=="function"?(this[h0].progress=t,this.addEventListener("progress",t)):this[h0].progress=null}get onload(){return ib.brandCheck(this,e),this[h0].load}set onload(t){ib.brandCheck(this,e),this[h0].load&&this.removeEventListener("load",this[h0].load),typeof t=="function"?(this[h0].load=t,this.addEventListener("load",t)):this[h0].load=null}get onabort(){return ib.brandCheck(this,e),this[h0].abort}set onabort(t){ib.brandCheck(this,e),this[h0].abort&&this.removeEventListener("abort",this[h0].abort),typeof t=="function"?(this[h0].abort=t,this.addEventListener("abort",t)):this[h0].abort=null}};PX.EMPTY=PX.prototype.EMPTY=0;PX.LOADING=PX.prototype.LOADING=1;PX.DONE=PX.prototype.DONE=2;Object.defineProperties(PX.prototype,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe,readAsArrayBuffer:nV,readAsBinaryString:nV,readAsText:nV,readAsDataURL:nV,abort:nV,readyState:nV,result:nV,error:nV,onloadstart:nV,onprogress:nV,onload:nV,onabort:nV,onerror:nV,onloadend:nV,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(PX,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe});Aei.exports={FileReader:PX}});var pmt=H((sau,pei)=>{"use strict";pei.exports={kConstruct:B2().kConstruct}});var hei=H((oau,Iei)=>{"use strict";var Iha=wt("node:assert"),{URLSerializer:fei}=eV(),{isValidHeaderName:hha}=qW();function mha(e,t,r=!1){let n=fei(e,r),a=fei(t,r);return n===a}function Cha(e){Iha(e!==null);let t=[];for(let r of e.split(","))r=r.trim(),hha(r)&&t.push(r);return t}Iei.exports={urlEquals:mha,getFieldValues:Cha}});var _ei=H((aau,Cei)=>{"use strict";var{kConstruct:_ha}=pmt(),{urlEquals:yha,getFieldValues:Ybr}=hei(),{kEnumerableProperty:_he,isDisturbed:bha}=Em(),{webidl:Bp}=kk(),{Response:Eha,cloneResponse:Sha,fromInnerResponse:vha}=WYe(),{Request:J$,fromInnerRequest:Bha}=Hwe(),{kState:WX}=nae(),{fetching:wha}=MYe(),{urlIsHttpHttpsScheme:fmt,createDeferredPromise:Xwe,readAllBytes:Tha}=qW(),Qbr=wt("node:assert"),Imt=class e{#e;constructor(){arguments[0]!==_ha&&Bp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Bp.brandCheck(this,e);let n="Cache.match";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=this.#i(t,r,1);if(a.length!==0)return a[0]}async matchAll(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.matchAll";return t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options"),this.#i(t,r)}async add(t){Bp.brandCheck(this,e);let r="Cache.add";Bp.argumentLengthCheck(arguments,1,r),t=Bp.converters.RequestInfo(t,r,"request");let n=[t];return await this.addAll(n)}async addAll(t){Bp.brandCheck(this,e);let r="Cache.addAll";Bp.argumentLengthCheck(arguments,1,r);let n=[],a=[];for(let E of t){if(E===void 0)throw Bp.errors.conversionFailed({prefix:r,argument:"Argument 1",types:["undefined is not allowed"]});if(E=Bp.converters.RequestInfo(E),typeof E=="string")continue;let N=E[WX];if(!fmt(N.url)||N.method!=="GET")throw Bp.errors.exception({header:r,message:"Expected http/s scheme when method is not GET."})}let o=[];for(let E of t){let N=new J$(E)[WX];if(!fmt(N.url))throw Bp.errors.exception({header:r,message:"Expected http/s scheme."});N.initiator="fetch",N.destination="subresource",a.push(N);let B=Xwe();o.push(wha({request:N,processResponse(F){if(F.type==="error"||F.status===206||F.status<200||F.status>299)B.reject(Bp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(F.headersList.contains("vary")){let Q=Ybr(F.headersList.get("vary"));for(let X of Q)if(X==="*"){B.reject(Bp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let ae of o)ae.abort();return}}},processResponseEndOfBody(F){if(F.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(F)}})),n.push(B.promise)}let A=await Promise.all(n),f=[],I=0;for(let E of A){let N={type:"put",request:a[I],response:E};f.push(N),I++}let C=Xwe(),b=null;try{this.#t(f)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve(void 0):C.reject(b)}),C.promise}async put(t,r){Bp.brandCheck(this,e);let n="Cache.put";Bp.argumentLengthCheck(arguments,2,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.Response(r,n,"response");let a=null;if(t instanceof J$?a=t[WX]:a=new J$(t)[WX],!fmt(a.url)||a.method!=="GET")throw Bp.errors.exception({header:n,message:"Expected an http/s scheme when method is not GET"});let o=r[WX];if(o.status===206)throw Bp.errors.exception({header:n,message:"Got 206 status"});if(o.headersList.contains("vary")){let N=Ybr(o.headersList.get("vary"));for(let B of N)if(B==="*")throw Bp.errors.exception({header:n,message:"Got * vary field value"})}if(o.body&&(bha(o.body.stream)||o.body.stream.locked))throw Bp.errors.exception({header:n,message:"Response body is locked or disturbed"});let l=Sha(o),A=Xwe();if(o.body!=null){let B=o.body.stream.getReader();Tha(B).then(A.resolve,A.reject)}else A.resolve(void 0);let f=[],I={type:"put",request:a,response:l};f.push(I);let C=await A.promise;l.body!=null&&(l.body.source=C);let b=Xwe(),E=null;try{this.#t(f)}catch(N){E=N}return queueMicrotask(()=>{E===null?b.resolve():b.reject(E)}),b.promise}async delete(t,r={}){Bp.brandCheck(this,e);let n="Cache.delete";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return!1}else Qbr(typeof t=="string"),a=new J$(t)[WX];let o=[],l={type:"delete",request:a,options:r};o.push(l);let A=Xwe(),f=null,I;try{I=this.#t(o)}catch(C){f=C}return queueMicrotask(()=>{f===null?A.resolve(!!I?.length):A.reject(f)}),A.promise}async keys(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.keys";t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=Xwe(),l=[];if(t===void 0)for(let A of this.#e)l.push(A[0]);else{let A=this.#n(a,r);for(let f of A)l.push(f[0])}return queueMicrotask(()=>{let A=[];for(let f of l){let I=Bha(f,new AbortController().signal,"immutable");A.push(I)}o.resolve(Object.freeze(A))}),o.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);Qbr(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!fmt(f.url))throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);Qbr(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!yha(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=Ybr(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}#i(t,r,n=1/0){let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=[];if(t===void 0)for(let A of this.#e)o.push(A[1]);else{let A=this.#n(a,r);for(let f of A)o.push(f[1])}let l=[];for(let A of o){let f=vha(A,"immutable");if(l.push(f.clone()),l.length>=n)break}return Object.freeze(l)}};Object.defineProperties(Imt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:_he,matchAll:_he,add:_he,addAll:_he,put:_he,delete:_he,keys:_he});var mei=[{key:"ignoreSearch",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:Bp.converters.boolean,defaultValue:()=>!1}];Bp.converters.CacheQueryOptions=Bp.dictionaryConverter(mei);Bp.converters.MultiCacheQueryOptions=Bp.dictionaryConverter([...mei,{key:"cacheName",converter:Bp.converters.DOMString}]);Bp.converters.Response=Bp.interfaceConverter(Eha);Bp.converters["sequence"]=Bp.sequenceConverter(Bp.converters.RequestInfo);Cei.exports={Cache:Imt}});var bei=H((cau,yei)=>{"use strict";var{kConstruct:YYe}=pmt(),{Cache:hmt}=_ei(),{webidl:MZ}=kk(),{kEnumerableProperty:QYe}=Em(),mmt=class e{#e=new Map;constructor(){arguments[0]!==YYe&&MZ.illegalConstructor()}async match(t,r={}){if(MZ.brandCheck(this,e),MZ.argumentLengthCheck(arguments,1,"CacheStorage.match"),t=MZ.converters.RequestInfo(t),r=MZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new hmt(YYe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new hmt(YYe,n).match(t,r);if(o!==void 0)return o}}async has(t){MZ.brandCheck(this,e);let r="CacheStorage.has";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)}async open(t){MZ.brandCheck(this,e);let r="CacheStorage.open";if(MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)){let a=this.#e.get(t);return new hmt(YYe,a)}let n=[];return this.#e.set(t,n),new hmt(YYe,n)}async delete(t){MZ.brandCheck(this,e);let r="CacheStorage.delete";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.delete(t)}async keys(){return MZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(mmt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:QYe,has:QYe,open:QYe,delete:QYe,keys:QYe});yei.exports={CacheStorage:mmt}});var Sei=H((lau,Eei)=>{"use strict";Eei.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Xbr=H((uau,Rei)=>{"use strict";function Rha(e){for(let t=0;t=0&&r<=8||r>=10&&r<=31||r===127)return!0}return!1}function vei(e){for(let t=0;t126||r===34||r===40||r===41||r===60||r===62||r===64||r===44||r===59||r===58||r===92||r===47||r===91||r===93||r===63||r===61||r===123||r===125)throw new Error("Invalid cookie name")}}function Bei(e){let t=e.length,r=0;if(e[0]==='"'){if(t===1||e[t-1]!=='"')throw new Error("Invalid cookie value");--t,++r}for(;r126||n===34||n===44||n===59||n===92)throw new Error("Invalid cookie value")}}function wei(e){for(let t=0;tt.toString().padStart(2,"0"));function Tei(e){return typeof e=="number"&&(e=new Date(e)),`${Dha[e.getUTCDay()]}, ${Cmt[e.getUTCDate()]} ${kha[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Cmt[e.getUTCHours()]}:${Cmt[e.getUTCMinutes()]}:${Cmt[e.getUTCSeconds()]} GMT`}function xha(e){if(e<0)throw new Error("Invalid cookie max-age")}function Gha(e){if(e.name.length===0)return null;vei(e.name),Bei(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(xha(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(Nha(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(wei(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${Tei(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}Rei.exports={isCTLExcludingHtab:Rha,validateCookieName:vei,validateCookiePath:wei,validateCookieValue:Bei,toIMFDate:Tei,stringify:Gha}});var Dei=H((gau,Nei)=>{"use strict";var{maxNameValuePairSize:Fha,maxAttributeValueSize:Zha}=Sei(),{isCTLExcludingHtab:Lha}=Xbr(),{collectASequenceOfCodePointsFast:_mt}=eV(),Vha=wt("node:assert");function Pha(e){if(Lha(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=_mt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=_mt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>Fha?null:{name:n,value:a,...Jwe(r)}}function Jwe(e,t={}){if(e.length===0)return t;Vha(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=_mt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=_mt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Zha)return Jwe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return Jwe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return Jwe(e,t)}Nei.exports={parseSetCookie:Pha,parseUnparsedAttributes:Jwe}});var Gei=H((Aau,xei)=>{"use strict";var{parseSetCookie:Wha}=Dei(),{stringify:Oha}=Xbr(),{webidl:nC}=kk(),{Headers:ymt}=fhe();function Mha(e){nC.argumentLengthCheck(arguments,1,"getCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function Hha(e,t,r){nC.brandCheck(e,ymt,{strict:!1});let n="deleteCookie";nC.argumentLengthCheck(arguments,2,n),t=nC.converters.DOMString(t,n,"name"),r=nC.converters.DeleteCookieAttributes(r),kei(e,{name:t,value:"",expires:new Date(0),...r})}function Yha(e){nC.argumentLengthCheck(arguments,1,"getSetCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.getSetCookie();return t?t.map(r=>Wha(r)):[]}function kei(e,t){nC.argumentLengthCheck(arguments,2,"setCookie"),nC.brandCheck(e,ymt,{strict:!1}),t=nC.converters.Cookie(t);let r=Oha(t);r&&e.append("Set-Cookie",r)}nC.converters.DeleteCookieAttributes=nC.dictionaryConverter([{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null}]);nC.converters.Cookie=nC.dictionaryConverter([{converter:nC.converters.DOMString,key:"name"},{converter:nC.converters.DOMString,key:"value"},{converter:nC.nullableConverter(e=>typeof e=="number"?nC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"secure",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:nC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:nC.sequenceConverter(nC.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);xei.exports={getCookies:Mha,deleteCookie:Hha,getSetCookies:Yha,setCookie:kei}});var Kwe=H((dau,Zei)=>{"use strict";var{webidl:Wp}=kk(),{kEnumerableProperty:iV}=Em(),{kConstruct:Fei}=B2(),{MessagePort:Qha}=wt("node:worker_threads"),Uwe=class e extends Event{#e;constructor(t,r={}){if(t===Fei){super(arguments[1],arguments[2]);return}let n="MessageEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.MessageEventInit(r,n,"eventInitDict"),super(t,r),this.#e=r}get data(){return Wp.brandCheck(this,e),this.#e.data}get origin(){return Wp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Wp.brandCheck(this,e),this.#e.lastEventId}get source(){return Wp.brandCheck(this,e),this.#e.source}get ports(){return Wp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Wp.brandCheck(this,e),Wp.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}static createFastMessageEvent(t,r){let n=new e(Fei,t,r);return n.#e=r,n.#e.data??=null,n.#e.origin??="",n.#e.lastEventId??="",n.#e.source??=null,n.#e.ports??=[],n}},{createFastMessageEvent:Xha}=Uwe;delete Uwe.createFastMessageEvent;var bmt=class e extends Event{#e;constructor(t,r={}){let n="CloseEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Wp.brandCheck(this,e),this.#e.wasClean}get code(){return Wp.brandCheck(this,e),this.#e.code}get reason(){return Wp.brandCheck(this,e),this.#e.reason}},Emt=class e extends Event{#e;constructor(t,r){let n="ErrorEvent constructor";Wp.argumentLengthCheck(arguments,1,n),super(t,r),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Wp.brandCheck(this,e),this.#e.message}get filename(){return Wp.brandCheck(this,e),this.#e.filename}get lineno(){return Wp.brandCheck(this,e),this.#e.lineno}get colno(){return Wp.brandCheck(this,e),this.#e.colno}get error(){return Wp.brandCheck(this,e),this.#e.error}};Object.defineProperties(Uwe.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:iV,origin:iV,lastEventId:iV,source:iV,ports:iV,initMessageEvent:iV});Object.defineProperties(bmt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:iV,code:iV,wasClean:iV});Object.defineProperties(Emt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:iV,filename:iV,lineno:iV,colno:iV,error:iV});Wp.converters.MessagePort=Wp.interfaceConverter(Qha);Wp.converters["sequence"]=Wp.sequenceConverter(Wp.converters.MessagePort);var Jbr=[{key:"bubbles",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Wp.converters.boolean,defaultValue:()=>!1}];Wp.converters.MessageEventInit=Wp.dictionaryConverter([...Jbr,{key:"data",converter:Wp.converters.any,defaultValue:()=>null},{key:"origin",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"source",converter:Wp.nullableConverter(Wp.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:Wp.converters["sequence"],defaultValue:()=>new Array(0)}]);Wp.converters.CloseEventInit=Wp.dictionaryConverter([...Jbr,{key:"wasClean",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"code",converter:Wp.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:Wp.converters.USVString,defaultValue:()=>""}]);Wp.converters.ErrorEventInit=Wp.dictionaryConverter([...Jbr,{key:"message",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:Wp.converters.any}]);Zei.exports={MessageEvent:Uwe,CloseEvent:bmt,ErrorEvent:Emt,createFastMessageEvent:Xha}});var yhe=H((pau,Lei)=>{"use strict";var Jha="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Uha={enumerable:!0,writable:!1,configurable:!1},Kha={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},jha={NOT_SENT:0,PROCESSING:1,SENT:2},zha={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},qha=2**16-1,$ha={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ema=Buffer.allocUnsafe(0),tma={string:1,typedArray:2,arrayBuffer:3,blob:4};Lei.exports={uid:Jha,sentCloseFrameState:jha,staticPropertyDescriptors:Uha,states:Kha,opcodes:zha,maxUnsigned16Bit:qha,parserStates:$ha,emptyBuffer:ema,sendHints:tma}});var XYe=H((fau,Vei)=>{"use strict";Vei.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var KYe=H((Iau,Jei)=>{"use strict";var{kReadyState:JYe,kController:rma,kResponse:nma,kBinaryType:ima,kWebSocketURL:sma}=XYe(),{states:UYe,opcodes:Iae}=yhe(),{ErrorEvent:oma,createFastMessageEvent:ama}=Kwe(),{isUtf8:cma}=wt("node:buffer"),{collectASequenceOfCodePointsFast:lma,removeHTTPWhitespace:Pei}=eV();function uma(e){return e[JYe]===UYe.CONNECTING}function gma(e){return e[JYe]===UYe.OPEN}function Ama(e){return e[JYe]===UYe.CLOSING}function dma(e){return e[JYe]===UYe.CLOSED}function Ubr(e,t,r=(a,o)=>new Event(a,o),n={}){let a=r(e,n);t.dispatchEvent(a)}function pma(e,t,r){if(e[JYe]!==UYe.OPEN)return;let n;if(t===Iae.TEXT)try{n=Xei(r)}catch{Oei(e,"Received invalid UTF-8 in text frame.");return}else t===Iae.BINARY&&(e[ima]==="blob"?n=new Blob([r]):n=fma(r));Ubr("message",e,ama,{origin:e[sma].origin,data:n})}function fma(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function Ima(e){if(e.length===0)return!1;for(let t=0;t126||r===34||r===40||r===41||r===44||r===47||r===58||r===59||r===60||r===61||r===62||r===63||r===64||r===91||r===92||r===93||r===123||r===125)return!1}return!0}function hma(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function Oei(e,t){let{[rma]:r,[nma]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&Ubr("error",e,(a,o)=>new oma(a,o),{error:new Error(t),message:t})}function Mei(e){return e===Iae.CLOSE||e===Iae.PING||e===Iae.PONG}function Hei(e){return e===Iae.CONTINUATION}function Yei(e){return e===Iae.TEXT||e===Iae.BINARY}function mma(e){return Yei(e)||Hei(e)||Mei(e)}function Cma(e){let t={position:0},r=new Map;for(;t.position57)return!1}return!0}var Qei=typeof process.versions.icu=="string",Wei=Qei?new TextDecoder("utf-8",{fatal:!0}):void 0,Xei=Qei?Wei.decode.bind(Wei):function(e){if(cma(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Jei.exports={isConnecting:uma,isEstablished:gma,isClosing:Ama,isClosed:dma,fireEvent:Ubr,isValidSubprotocol:Ima,isValidStatusCode:hma,failWebsocketConnection:Oei,websocketMessageReceived:pma,utf8Decode:Xei,isControlFrame:Mei,isContinuationFrame:Hei,isTextBinaryFrame:Yei,isValidOpcode:mma,parseExtensions:Cma,isValidClientWindowBits:_ma}});var vmt=H((hau,Uei)=>{"use strict";var{maxUnsigned16Bit:yma}=yhe(),Smt=16386,Kbr,jYe=null,jwe=Smt;try{Kbr=wt("node:crypto")}catch{Kbr={randomFillSync:function(t,r,n){for(let a=0;ayma?(l+=8,o=127):a>125&&(l+=2,o=126);let A=Buffer.allocUnsafe(a+l);A[0]=A[1]=0,A[0]|=128,A[0]=(A[0]&240)+t;A[l-4]=n[0],A[l-3]=n[1],A[l-2]=n[2],A[l-1]=n[3],A[1]=o,o===126?A.writeUInt16BE(a,2):o===127&&(A[2]=A[3]=0,A.writeUIntBE(a,4,6)),A[1]|=128;for(let f=0;f{"use strict";var{uid:Ema,states:zYe,sentCloseFrameState:Bmt,emptyBuffer:Sma,opcodes:vma}=yhe(),{kReadyState:qYe,kSentClose:wmt,kByteParser:jei,kReceivedClose:Kei,kResponse:zei}=XYe(),{fireEvent:Bma,failWebsocketConnection:hae,isClosing:wma,isClosed:Tma,isEstablished:Rma,parseExtensions:Nma}=KYe(),{channels:zwe}=Awe(),{CloseEvent:Dma}=Kwe(),{makeRequest:kma}=Hwe(),{fetching:xma}=MYe(),{Headers:Gma,getHeadersList:Fma}=fhe(),{getDecodeSplit:Zma}=qW(),{WebsocketFrameSend:Lma}=vmt(),zbr;try{zbr=wt("node:crypto")}catch{}function Vma(e,t,r,n,a,o){let l=e;l.protocol=e.protocol==="ws:"?"http:":"https:";let A=kma({urlList:[l],client:r,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){let b=Fma(new Gma(o.headers));A.headersList=b}let f=zbr.randomBytes(16).toString("base64");A.headersList.append("sec-websocket-key",f),A.headersList.append("sec-websocket-version","13");for(let b of t)A.headersList.append("sec-websocket-protocol",b);return A.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),xma({request:A,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(b){if(b.type==="error"||b.status!==101){hae(n,"Received network error or non-101 status code.");return}if(t.length!==0&&!b.headersList.get("Sec-WebSocket-Protocol")){hae(n,"Server did not respond with sent protocols.");return}if(b.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){hae(n,'Server did not set Upgrade header to "websocket".');return}if(b.headersList.get("Connection")?.toLowerCase()!=="upgrade"){hae(n,'Server did not set Connection header to "upgrade".');return}let E=b.headersList.get("Sec-WebSocket-Accept"),N=zbr.createHash("sha1").update(f+Ema).digest("base64");if(E!==N){hae(n,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=b.headersList.get("Sec-WebSocket-Extensions"),F;if(B!==null&&(F=Nma(B),!F.has("permessage-deflate"))){hae(n,"Sec-WebSocket-Extensions header does not match.");return}let Q=b.headersList.get("Sec-WebSocket-Protocol");if(Q!==null&&!Zma("sec-websocket-protocol",A.headersList).includes(Q)){hae(n,"Protocol was not set in the opening handshake.");return}b.socket.on("data",qei),b.socket.on("close",$ei),b.socket.on("error",eti),zwe.open.hasSubscribers&&zwe.open.publish({address:b.socket.address(),protocol:Q,extensions:B}),a(b,F)}})}function Pma(e,t,r,n){if(!(wma(e)||Tma(e)))if(!Rma(e))hae(e,"Connection was closed before it was established."),e[qYe]=zYe.CLOSING;else if(e[wmt]===Bmt.NOT_SENT){e[wmt]=Bmt.PROCESSING;let a=new Lma;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=Sma,e[zei].socket.write(a.createFrame(vma.CLOSE)),e[wmt]=Bmt.SENT,e[qYe]=zYe.CLOSING}else e[qYe]=zYe.CLOSING}function qei(e){this.ws[jei].write(e)||this.pause()}function $ei(){let{ws:e}=this,{[zei]:t}=e;t.socket.off("data",qei),t.socket.off("close",$ei),t.socket.off("error",eti);let r=e[wmt]===Bmt.SENT&&e[Kei],n=1005,a="",o=e[jei].closingInfo;o&&!o.error?(n=o.code??1005,a=o.reason):e[Kei]||(n=1006),e[qYe]=zYe.CLOSED,Bma("close",e,(l,A)=>new Dma(l,A),{wasClean:r,code:n,reason:a}),zwe.close.hasSubscribers&&zwe.close.publish({websocket:e,code:n,reason:a})}function eti(e){let{ws:t}=this;t[qYe]=zYe.CLOSING,zwe.socketError.hasSubscribers&&zwe.socketError.publish(e),this.destroy()}tti.exports={establishWebSocketConnection:Vma,closeWebSocketConnection:Pma}});var nti=H((Cau,rti)=>{"use strict";var{createInflateRaw:Wma,Z_DEFAULT_WINDOWBITS:Oma}=wt("node:zlib"),{isValidClientWindowBits:Mma}=KYe(),Hma=Buffer.from([0,0,255,255]),Tmt=Symbol("kBuffer"),Rmt=Symbol("kLength"),$br=class{#e;#t={};constructor(t){this.#t.serverNoContextTakeover=t.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=t.get("server_max_window_bits")}decompress(t,r,n){if(!this.#e){let a=Oma;if(this.#t.serverMaxWindowBits){if(!Mma(this.#t.serverMaxWindowBits)){n(new Error("Invalid server_max_window_bits"));return}a=Number.parseInt(this.#t.serverMaxWindowBits)}this.#e=Wma({windowBits:a}),this.#e[Tmt]=[],this.#e[Rmt]=0,this.#e.on("data",o=>{this.#e[Tmt].push(o),this.#e[Rmt]+=o.length}),this.#e.on("error",o=>{this.#e=null,n(o)})}this.#e.write(t),r&&this.#e.write(Hma),this.#e.flush(()=>{let a=Buffer.concat(this.#e[Tmt],this.#e[Rmt]);this.#e[Tmt].length=0,this.#e[Rmt]=0,n(null,a)})}};rti.exports={PerMessageDeflate:$br}});var pti=H((_au,dti)=>{"use strict";var{Writable:Yma}=wt("node:stream"),Qma=wt("node:assert"),{parserStates:sV,opcodes:qwe,states:Xma,emptyBuffer:iti,sentCloseFrameState:sti}=yhe(),{kReadyState:Jma,kSentClose:oti,kResponse:ati,kReceivedClose:cti}=XYe(),{channels:Nmt}=Awe(),{isValidStatusCode:Uma,isValidOpcode:Kma,failWebsocketConnection:LM,websocketMessageReceived:lti,utf8Decode:jma,isControlFrame:uti,isTextBinaryFrame:eEr,isContinuationFrame:zma}=KYe(),{WebsocketFrameSend:gti}=vmt(),{closeWebSocketConnection:Ati}=qbr(),{PerMessageDeflate:qma}=nti(),tEr=class extends Yma{#e=[];#t=0;#n=!1;#r=sV.INFO;#i={};#s=[];#o;constructor(t,r){super(),this.ws=t,this.#o=r??new Map,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new qma(r))}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.#n=!0,this.run(n)}run(t){for(;this.#n;)if(this.#r===sV.INFO){if(this.#t<2)return t();let r=this.consume(2),n=(r[0]&128)!==0,a=r[0]&15,o=(r[1]&128)===128,l=!n&&a!==qwe.CONTINUATION,A=r[1]&127,f=r[0]&64,I=r[0]&32,C=r[0]&16;if(!Kma(a))return LM(this.ws,"Invalid opcode received"),t();if(o)return LM(this.ws,"Frame cannot be masked"),t();if(f!==0&&!this.#o.has("permessage-deflate")){LM(this.ws,"Expected RSV1 to be clear.");return}if(I!==0||C!==0){LM(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(l&&!eEr(a)){LM(this.ws,"Invalid frame type was fragmented.");return}if(eEr(a)&&this.#s.length>0){LM(this.ws,"Expected continuation frame");return}if(this.#i.fragmented&&l){LM(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((A>125||l)&&uti(a)){LM(this.ws,"Control frame either too large or fragmented");return}if(zma(a)&&this.#s.length===0&&!this.#i.compressed){LM(this.ws,"Unexpected continuation frame");return}A<=125?(this.#i.payloadLength=A,this.#r=sV.READ_DATA):A===126?this.#r=sV.PAYLOADLENGTH_16:A===127&&(this.#r=sV.PAYLOADLENGTH_64),eEr(a)&&(this.#i.binaryType=a,this.#i.compressed=f!==0),this.#i.opcode=a,this.#i.masked=o,this.#i.fin=n,this.#i.fragmented=l}else if(this.#r===sV.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#i.payloadLength=r.readUInt16BE(0),this.#r=sV.READ_DATA}else if(this.#r===sV.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){LM(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#i.payloadLength=(n<<8)+a,this.#r=sV.READ_DATA}else if(this.#r===sV.READ_DATA){if(this.#t{if(n){Ati(this.ws,1007,n.message,n.message.length);return}if(this.#s.push(a),!this.#i.fin){this.#r=sV.INFO,this.#n=!0,this.run(t);return}lti(this.ws,this.#i.binaryType,Buffer.concat(this.#s)),this.#n=!0,this.#r=sV.INFO,this.#s.length=0,this.run(t)}),this.#n=!1;break}else{if(this.#s.push(r),!this.#i.fragmented&&this.#i.fin){let n=Buffer.concat(this.#s);lti(this.ws,this.#i.binaryType,n),this.#s.length=0}this.#r=sV.INFO}}}consume(t){if(t>this.#t)throw new Error("Called consume() before buffers satiated.");if(t===0)return iti;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t){Qma(t.length!==1);let r;if(t.length>=2&&(r=t.readUInt16BE(0)),r!==void 0&&!Uma(r))return{code:1002,reason:"Invalid status code",error:!0};let n=t.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=jma(n)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:r,reason:n,error:!1}}parseControlFrame(t){let{opcode:r,payloadLength:n}=this.#i;if(r===qwe.CLOSE){if(n===1)return LM(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#i.closeInfo=this.parseCloseBody(t),this.#i.closeInfo.error){let{code:a,reason:o}=this.#i.closeInfo;return Ati(this.ws,a,o,o.length),LM(this.ws,o),!1}if(this.ws[oti]!==sti.SENT){let a=iti;this.#i.closeInfo.code&&(a=Buffer.allocUnsafe(2),a.writeUInt16BE(this.#i.closeInfo.code,0));let o=new gti(a);this.ws[ati].socket.write(o.createFrame(qwe.CLOSE),l=>{l||(this.ws[oti]=sti.SENT)})}return this.ws[Jma]=Xma.CLOSING,this.ws[cti]=!0,!1}else if(r===qwe.PING){if(!this.ws[cti]){let a=new gti(t);this.ws[ati].socket.write(a.createFrame(qwe.PONG)),Nmt.ping.hasSubscribers&&Nmt.ping.publish({payload:t})}}else r===qwe.PONG&&Nmt.pong.hasSubscribers&&Nmt.pong.publish({payload:t});return!0}get closingInfo(){return this.#i.closeInfo}};dti.exports={ByteParser:tEr}});var Cti=H((yau,mti)=>{"use strict";var{WebsocketFrameSend:$ma}=vmt(),{opcodes:fti,sendHints:$we}=yhe(),eCa=pyr(),Iti=Buffer[Symbol.species],rEr=class{#e=new eCa;#t=!1;#n;constructor(t){this.#n=t}add(t,r,n){if(n!==$we.blob){let o=hti(t,n);if(!this.#t)this.#n.write(o,r);else{let l={promise:null,callback:r,frame:o};this.#e.push(l)}return}let a={promise:t.arrayBuffer().then(o=>{a.promise=null,a.frame=hti(o,n)}),callback:r,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let t=this.#e;for(;!t.isEmpty();){let r=t.shift();r.promise!==null&&await r.promise,this.#n.write(r.frame,r.callback),r.callback=r.frame=null}this.#t=!1}};function hti(e,t){return new $ma(tCa(e,t)).createFrame(t===$we.string?fti.TEXT:fti.BINARY)}function tCa(e,t){switch(t){case $we.string:return Buffer.from(e);case $we.arrayBuffer:case $we.blob:return new Iti(e);case $we.typedArray:return new Iti(e.buffer,e.byteOffset,e.byteLength)}}mti.exports={SendQueue:rEr}});var Tti=H((bau,wti)=>{"use strict";var{webidl:aI}=kk(),{URLSerializer:rCa}=eV(),{environmentSettingsObject:_ti}=qW(),{staticPropertyDescriptors:mae,states:$Ye,sentCloseFrameState:nCa,sendHints:Dmt}=yhe(),{kWebSocketURL:yti,kReadyState:nEr,kController:iCa,kBinaryType:kmt,kResponse:bti,kSentClose:sCa,kByteParser:oCa}=XYe(),{isConnecting:aCa,isEstablished:cCa,isClosing:lCa,isValidSubprotocol:uCa,fireEvent:Eti}=KYe(),{establishWebSocketConnection:gCa,closeWebSocketConnection:Sti}=qbr(),{ByteParser:ACa}=pti(),{kEnumerableProperty:VM,isBlobLike:vti}=Em(),{getGlobalDispatcher:dCa}=Jht(),{types:Bti}=wt("node:util"),{ErrorEvent:pCa,CloseEvent:fCa}=Kwe(),{SendQueue:ICa}=Cti(),iO=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";#i;constructor(t,r=[]){super();let n="WebSocket constructor";aI.argumentLengthCheck(arguments,1,n);let a=aI.converters["DOMString or sequence or WebSocketInit"](r,n,"options");t=aI.converters.USVString(t,n,"url"),r=a.protocols;let o=_ti.settingsObject.baseUrl,l;try{l=new URL(t,o)}catch(f){throw new DOMException(f,"SyntaxError")}if(l.protocol==="http:"?l.protocol="ws:":l.protocol==="https:"&&(l.protocol="wss:"),l.protocol!=="ws:"&&l.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${l.protocol}`,"SyntaxError");if(l.hash||l.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(f=>f.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(f=>uCa(f)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[yti]=new URL(l.href);let A=_ti.settingsObject;this[iCa]=gCa(l,r,A,this,(f,I)=>this.#s(f,I),a),this[nEr]=e.CONNECTING,this[sCa]=nCa.NOT_SENT,this[kmt]="blob"}close(t=void 0,r=void 0){aI.brandCheck(this,e);let n="WebSocket.close";if(t!==void 0&&(t=aI.converters["unsigned short"](t,n,"code",{clamp:!0})),r!==void 0&&(r=aI.converters.USVString(r,n,"reason")),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");let a=0;if(r!==void 0&&(a=Buffer.byteLength(r),a>123))throw new DOMException(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");Sti(this,t,r,a)}send(t){aI.brandCheck(this,e);let r="WebSocket.send";if(aI.argumentLengthCheck(arguments,1,r),t=aI.converters.WebSocketSendData(t,r,"data"),aCa(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!cCa(this)||lCa(this)))if(typeof t=="string"){let n=Buffer.byteLength(t);this.#t+=n,this.#i.add(t,()=>{this.#t-=n},Dmt.string)}else Bti.isArrayBuffer(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.typedArray)):vti(t)&&(this.#t+=t.size,this.#i.add(t,()=>{this.#t-=t.size},Dmt.blob))}get readyState(){return aI.brandCheck(this,e),this[nEr]}get bufferedAmount(){return aI.brandCheck(this,e),this.#t}get url(){return aI.brandCheck(this,e),rCa(this[yti])}get extensions(){return aI.brandCheck(this,e),this.#r}get protocol(){return aI.brandCheck(this,e),this.#n}get onopen(){return aI.brandCheck(this,e),this.#e.open}set onopen(t){aI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return aI.brandCheck(this,e),this.#e.error}set onerror(t){aI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return aI.brandCheck(this,e),this.#e.close}set onclose(t){aI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return aI.brandCheck(this,e),this.#e.message}set onmessage(t){aI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return aI.brandCheck(this,e),this[kmt]}set binaryType(t){aI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[kmt]="blob":this[kmt]=t}#s(t,r){this[bti]=t;let n=new ACa(this,r);n.on("drain",hCa),n.on("error",mCa.bind(this)),t.socket.ws=this,this[oCa]=n,this.#i=new ICa(t.socket),this[nEr]=$Ye.OPEN;let a=t.headersList.get("sec-websocket-extensions");a!==null&&(this.#r=a);let o=t.headersList.get("sec-websocket-protocol");o!==null&&(this.#n=o),Eti("open",this)}};iO.CONNECTING=iO.prototype.CONNECTING=$Ye.CONNECTING;iO.OPEN=iO.prototype.OPEN=$Ye.OPEN;iO.CLOSING=iO.prototype.CLOSING=$Ye.CLOSING;iO.CLOSED=iO.prototype.CLOSED=$Ye.CLOSED;Object.defineProperties(iO.prototype,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae,url:VM,readyState:VM,bufferedAmount:VM,onopen:VM,onerror:VM,onclose:VM,close:VM,onmessage:VM,binaryType:VM,send:VM,extensions:VM,protocol:VM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(iO,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae});aI.converters["sequence"]=aI.sequenceConverter(aI.converters.DOMString);aI.converters["DOMString or sequence"]=function(e,t,r){return aI.util.Type(e)==="Object"&&Symbol.iterator in e?aI.converters["sequence"](e):aI.converters.DOMString(e,t,r)};aI.converters.WebSocketInit=aI.dictionaryConverter([{key:"protocols",converter:aI.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:aI.converters.any,defaultValue:()=>dCa()},{key:"headers",converter:aI.nullableConverter(aI.converters.HeadersInit)}]);aI.converters["DOMString or sequence or WebSocketInit"]=function(e){return aI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?aI.converters.WebSocketInit(e):{protocols:aI.converters["DOMString or sequence"](e)}};aI.converters.WebSocketSendData=function(e){if(aI.util.Type(e)==="Object"){if(vti(e))return aI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Bti.isArrayBuffer(e))return aI.converters.BufferSource(e)}return aI.converters.USVString(e)};function hCa(){this.ws[bti].socket.resume()}function mCa(e){let t,r;e instanceof fCa?(t=e.reason,r=e.code):t=e.message,Eti("error",this,()=>new pCa("error",{error:e,message:t})),Sti(this,r)}wti.exports={WebSocket:iO}});var iEr=H((Eau,Rti)=>{"use strict";function CCa(e){return e.indexOf("\0")===-1}function _Ca(e){if(e.length===0)return!1;for(let t=0;t57)return!1;return!0}function yCa(e){return new Promise(t=>{setTimeout(t,e).unref()})}Rti.exports={isValidLastEventId:CCa,isASCIINumber:_Ca,delay:yCa}});var xti=H((Sau,kti)=>{"use strict";var{Transform:bCa}=wt("node:stream"),{isASCIINumber:Nti,isValidLastEventId:Dti}=iEr(),U$=[239,187,191],sEr=10,xmt=13,ECa=58,SCa=32,oEr=class extends bCa{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(t={}){t.readableObjectMode=!0,super(t),this.state=t.eventSourceSettings||{},t.push&&(this.push=t.push)}_transform(t,r,n){if(t.length===0){n();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===U$[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos0&&(r[a]=o);break}}processEvent(t){t.retry&&Nti(t.retry)&&(this.state.reconnectionTime=parseInt(t.retry,10)),t.id&&Dti(t.id)&&(this.state.lastEventId=t.id),t.data!==void 0&&this.push({type:t.event||"message",options:{data:t.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};kti.exports={EventSourceStream:oEr}});var Oti=H((vau,Wti)=>{"use strict";var{pipeline:vCa}=wt("node:stream"),{fetching:BCa}=MYe(),{makeRequest:wCa}=Hwe(),{webidl:Cae}=kk(),{EventSourceStream:TCa}=xti(),{parseMIMEType:RCa}=eV(),{createFastMessageEvent:NCa}=Kwe(),{isNetworkError:Gti}=WYe(),{delay:DCa}=iEr(),{kEnumerableProperty:bhe}=Em(),{environmentSettingsObject:Fti}=qW(),Zti=!1,Lti=3e3,eQe=0,Vti=1,tQe=2,kCa="anonymous",xCa="use-credentials",eTe=class e extends EventTarget{#e={open:null,error:null,message:null};#t=null;#n=!1;#r=eQe;#i=null;#s=null;#o;#g;constructor(t,r={}){super();let n="EventSource constructor";Cae.argumentLengthCheck(arguments,1,n),Zti||(Zti=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),t=Cae.converters.USVString(t,n,"url"),r=Cae.converters.EventSourceInitDict(r,n,"eventSourceInitDict"),this.#o=r.dispatcher,this.#g={lastEventId:"",reconnectionTime:Lti};let a=Fti,o;try{o=new URL(t,a.settingsObject.baseUrl),this.#g.origin=o.origin}catch(f){throw new DOMException(f,"SyntaxError")}this.#t=o.href;let l=kCa;r.withCredentials&&(l=xCa,this.#n=!0);let A={redirect:"follow",keepalive:!0,mode:"cors",credentials:l==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};A.client=Fti.settingsObject,A.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],A.cache="no-store",A.initiator="other",A.urlList=[new URL(this.#t)],this.#i=wCa(A),this.#l()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#l(){if(this.#r===tQe)return;this.#r=eQe;let t={request:this.#i,dispatcher:this.#o},r=n=>{Gti(n)&&(this.dispatchEvent(new Event("error")),this.close()),this.#u()};t.processResponseEndOfBody=r,t.processResponse=n=>{if(Gti(n))if(n.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#u();return}let a=n.headersList.get("content-type",!0),o=a!==null?RCa(a):"failure",l=o!=="failure"&&o.essence==="text/event-stream";if(n.status!==200||l===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=Vti,this.dispatchEvent(new Event("open")),this.#g.origin=n.urlList[n.urlList.length-1].origin;let A=new TCa({eventSourceSettings:this.#g,push:f=>{this.dispatchEvent(NCa(f.type,f.options))}});vCa(n.body.stream,A,f=>{f?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#s=BCa(t)}async#u(){this.#r!==tQe&&(this.#r=eQe,this.dispatchEvent(new Event("error")),await DCa(this.#g.reconnectionTime),this.#r===eQe&&(this.#g.lastEventId.length&&this.#i.headersList.set("last-event-id",this.#g.lastEventId,!0),this.#l()))}close(){Cae.brandCheck(this,e),this.#r!==tQe&&(this.#r=tQe,this.#s.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(t){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(t){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(t){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}},Pti={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:eQe,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Vti,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:tQe,writable:!1}};Object.defineProperties(eTe,Pti);Object.defineProperties(eTe.prototype,Pti);Object.defineProperties(eTe.prototype,{close:bhe,onerror:bhe,onmessage:bhe,onopen:bhe,readyState:bhe,url:bhe,withCredentials:bhe});Cae.converters.EventSourceInitDict=Cae.dictionaryConverter([{key:"withCredentials",converter:Cae.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Cae.converters.any}]);Wti.exports={EventSource:eTe,defaultReconnectionTime:Lti}});var Qti=H((Bau,Bf)=>{"use strict";var GCa=vYe(),Mti=rYe(),FCa=Dwe(),ZCa=q7n(),LCa=kwe(),VCa=kyr(),PCa=fzn(),WCa=yzn(),Hti=Y0(),Fmt=Em(),{InvalidArgumentError:Gmt}=Hti,tTe=aqn(),OCa=iYe(),MCa=dbr(),HCa=Mqn(),YCa=Ibr(),QCa=ebr(),XCa=Lht(),{getGlobalDispatcher:Yti,setGlobalDispatcher:JCa}=Jht(),UCa=_br(),KCa=Bht(),jCa=wht();Object.assign(Mti.prototype,tTe);Bf.exports.Dispatcher=Mti;Bf.exports.Client=GCa;Bf.exports.Pool=FCa;Bf.exports.BalancedPool=ZCa;Bf.exports.Agent=LCa;Bf.exports.ProxyAgent=VCa;Bf.exports.EnvHttpProxyAgent=PCa;Bf.exports.RetryAgent=WCa;Bf.exports.RetryHandler=XCa;Bf.exports.DecoratorHandler=UCa;Bf.exports.RedirectHandler=KCa;Bf.exports.createRedirectInterceptor=jCa;Bf.exports.interceptors={redirect:Kqn(),retry:zqn(),dump:$qn()};Bf.exports.buildConnector=OCa;Bf.exports.errors=Hti;Bf.exports.util={parseHeaders:Fmt.parseHeaders,headerNameToString:Fmt.headerNameToString};function rQe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new Gmt("invalid url");if(r!=null&&typeof r!="object")throw new Gmt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new Gmt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL(Fmt.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=Fmt.parseURL(t);let{agent:a,dispatcher:o=Yti()}=r;if(a)throw new Gmt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Bf.exports.setGlobalDispatcher=JCa;Bf.exports.getGlobalDispatcher=Yti;var zCa=MYe().fetch;Bf.exports.fetch=async function(t,r=void 0){try{return await zCa(t,r)}catch(n){throw n&&typeof n=="object"&&Error.captureStackTrace(n),n}};Bf.exports.Headers=fhe().Headers;Bf.exports.Response=WYe().Response;Bf.exports.Request=Hwe().Request;Bf.exports.FormData=gYe().FormData;Bf.exports.File=globalThis.File??wt("node:buffer").File;Bf.exports.FileReader=dei().FileReader;var{setGlobalOrigin:qCa,getGlobalOrigin:$Ca}=G0r();Bf.exports.setGlobalOrigin=qCa;Bf.exports.getGlobalOrigin=$Ca;var{CacheStorage:e_a}=bei(),{kConstruct:t_a}=pmt();Bf.exports.caches=new e_a(t_a);var{deleteCookie:r_a,getCookies:n_a,getSetCookies:i_a,setCookie:s_a}=Gei();Bf.exports.deleteCookie=r_a;Bf.exports.getCookies=n_a;Bf.exports.getSetCookies=i_a;Bf.exports.setCookie=s_a;var{parseMIMEType:o_a,serializeAMimeType:a_a}=eV();Bf.exports.parseMIMEType=o_a;Bf.exports.serializeAMimeType=a_a;var{CloseEvent:c_a,ErrorEvent:l_a,MessageEvent:u_a}=Kwe();Bf.exports.WebSocket=Tti().WebSocket;Bf.exports.CloseEvent=c_a;Bf.exports.ErrorEvent=l_a;Bf.exports.MessageEvent=u_a;Bf.exports.request=rQe(tTe.request);Bf.exports.stream=rQe(tTe.stream);Bf.exports.pipeline=rQe(tTe.pipeline);Bf.exports.connect=rQe(tTe.connect);Bf.exports.upgrade=rQe(tTe.upgrade);Bf.exports.MockClient=MCa;Bf.exports.MockPool=YCa;Bf.exports.MockAgent=HCa;Bf.exports.mockErrors=QCa;var{EventSource:g_a}=Oti();Bf.exports.EventSource=g_a});var Uti=H(lT=>{"use strict";var A_a=lT&&lT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),d_a=lT&&lT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p_a=lT&&lT.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&A_a(t,e,r);return d_a(t,e),t},f_a=lT&&lT.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(lT,"__esModule",{value:!0});lT.getApiBaseUrl=lT.getProxyFetch=lT.getProxyAgentDispatcher=lT.getProxyAgent=lT.getAuthString=void 0;var Xti=p_a(ajn()),I_a=Qti();function h_a(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof t.auth=="string"?t.auth:`token ${e}`}lT.getAuthString=h_a;function m_a(e){return new Xti.HttpClient().getAgent(e)}lT.getProxyAgent=m_a;function Jti(e){return new Xti.HttpClient().getAgentDispatcher(e)}lT.getProxyAgentDispatcher=Jti;function C_a(e){let t=Jti(e);return(n,a)=>f_a(this,void 0,void 0,function*(){return(0,I_a.fetch)(n,Object.assign(Object.assign({},a),{dispatcher:t}))})}lT.getProxyFetch=C_a;function __a(){return process.env.GITHUB_API_URL||"https://api.github.com"}lT.getApiBaseUrl=__a});var nQe=H(aEr=>{"use strict";Object.defineProperty(aEr,"__esModule",{value:!0});function y_a(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}aEr.getUserAgent=y_a});var zti=H((Rau,jti)=>{jti.exports=Kti;function Kti(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(a,o){return Kti.bind(null,e,o,a,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(a,o){return o.hook.bind(null,a,n)},r)():r(n)})}});var $ti=H((Nau,qti)=>{qti.exports=b_a;function b_a(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(o,l){return Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))}),t==="after"&&(n=function(o,l){var A;return Promise.resolve().then(o.bind(null,l)).then(function(f){return A=f,a(A,l)}).then(function(){return A})}),t==="error"&&(n=function(o,l){return Promise.resolve().then(o.bind(null,l)).catch(function(A){return a(A,l)})}),e.registry[r].push({hook:n,orig:a})}});var tri=H((Dau,eri)=>{eri.exports=E_a;function E_a(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(a){return a.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var cri=H((kau,iQe)=>{var sri=zti(),S_a=$ti(),v_a=tri(),rri=Function.bind,nri=rri.bind(rri);function ori(e,t,r){var n=nri(v_a,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(a){var o=r?[t,a,r]:[t,a];e[a]=e.api[a]=nri(S_a,null).apply(null,o)})}function B_a(){var e="h",t={registry:{}},r=sri.bind(null,t,e);return ori(r,t,e),r}function ari(){var e={registry:{}},t=sri.bind(null,e);return ori(t,e),t}var iri=!1;function rTe(){return iri||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),iri=!0),ari()}rTe.Singular=B_a.bind();rTe.Collection=ari.bind();iQe.exports=rTe;iQe.exports.Hook=rTe;iQe.exports.Singular=rTe.Singular;iQe.exports.Collection=rTe.Collection});var hri=H((xau,Iri)=>{"use strict";var uEr=Object.defineProperty,w_a=Object.getOwnPropertyDescriptor,T_a=Object.getOwnPropertyNames,R_a=Object.prototype.hasOwnProperty,N_a=(e,t)=>{for(var r in t)uEr(e,r,{get:t[r],enumerable:!0})},D_a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of T_a(t))!R_a.call(e,a)&&a!==r&&uEr(e,a,{get:()=>t[a],enumerable:!(n=w_a(t,a))||n.enumerable});return e},k_a=e=>D_a(uEr({},"__esModule",{value:!0}),e),gri={};N_a(gri,{endpoint:()=>J_a});Iri.exports=k_a(gri);var x_a=nQe(),G_a="9.0.5",F_a=`octokit-endpoint.js/${G_a} ${(0,x_a.getUserAgent)()}`,Z_a={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":F_a},mediaType:{format:""}};function L_a(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function V_a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ari(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{V_a(t[n])?n in e?r[n]=Ari(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function lri(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function lEr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=L_a(r.headers),lri(r),lri(r.headers);let n=Ari(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function P_a(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var W_a=/\{[^}]+\}/g;function O_a(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function M_a(e){let t=e.match(W_a);return t?t.map(O_a).reduce((r,n)=>r.concat(n),[]):[]}function uri(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function dri(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function iTe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function sQe(e,t,r){return t=e==="+"||e==="#"?dri(t):iTe(t),r?iTe(r)+"="+t:t}function nTe(e){return e!=null}function cEr(e){return e===";"||e==="&"||e==="?"}function H_a(e,t,r,n){var a=e[r],o=[];if(nTe(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(sQe(t,a,cEr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter(nTe).forEach(function(l){o.push(sQe(t,l,cEr(t)?r:""))}):Object.keys(a).forEach(function(l){nTe(a[l])&&o.push(sQe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter(nTe).forEach(function(A){l.push(sQe(t,A))}):Object.keys(a).forEach(function(A){nTe(a[A])&&(l.push(iTe(A)),l.push(sQe(t,a[A].toString())))}),cEr(t)?o.push(iTe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?nTe(a)&&o.push(iTe(r)):a===""&&(t==="&"||t==="?")?o.push(iTe(r)+"="):a===""&&o.push("");return o}function Y_a(e){return{expand:Q_a.bind(null,e)}}function Q_a(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(H_a(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return dri(o)}),e==="/"?e:e.replace(/\/$/,"")}function pri(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=uri(e,["method","baseUrl","url","headers","request","mediaType"]),l=M_a(r);r=Y_a(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=uri(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=P_a(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function X_a(e,t,r){return pri(lEr(e,t,r))}function fri(e,t){let r=lEr(e,t),n=X_a.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:fri.bind(null,r),merge:lEr.bind(null,r),parse:pri})}var J_a=fri(null,Z_a)});var mri=H(AEr=>{"use strict";Object.defineProperty(AEr,"__esModule",{value:!0});var gEr=class extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};AEr.Deprecation=gEr});var Sri=H((Fau,Eri)=>{"use strict";var U_a=Object.create,Zmt=Object.defineProperty,K_a=Object.getOwnPropertyDescriptor,j_a=Object.getOwnPropertyNames,z_a=Object.getPrototypeOf,q_a=Object.prototype.hasOwnProperty,$_a=(e,t)=>{for(var r in t)Zmt(e,r,{get:t[r],enumerable:!0})},_ri=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of j_a(t))!q_a.call(e,a)&&a!==r&&Zmt(e,a,{get:()=>t[a],enumerable:!(n=K_a(t,a))||n.enumerable});return e},e0a=(e,t,r)=>(r=e!=null?U_a(z_a(e)):{},_ri(t||!e||!e.__esModule?Zmt(r,"default",{value:e,enumerable:!0}):r,e)),t0a=e=>_ri(Zmt({},"__esModule",{value:!0}),e),yri={};$_a(yri,{RequestError:()=>i0a});Eri.exports=t0a(yri);var Cri=mri(),bri=e0a(mgt()),r0a=(0,bri.default)(e=>console.warn(e)),n0a=(0,bri.default)(e=>console.warn(e)),i0a=class extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t;let n;"headers"in r&&typeof r.headers<"u"&&(n=r.headers),"response"in r&&(this.response=r.response,n=r.response.headers);let a=Object.assign({},r.request);r.request.headers.authorization&&(a.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a,Object.defineProperty(this,"code",{get(){return r0a(new Cri.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),Object.defineProperty(this,"headers",{get(){return n0a(new Cri.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),n||{}}})}}});var aQe=H((Lau,wri)=>{"use strict";var fEr=Object.defineProperty,s0a=Object.getOwnPropertyDescriptor,o0a=Object.getOwnPropertyNames,a0a=Object.prototype.hasOwnProperty,c0a=(e,t)=>{for(var r in t)fEr(e,r,{get:t[r],enumerable:!0})},l0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of o0a(t))!a0a.call(e,a)&&a!==r&&fEr(e,a,{get:()=>t[a],enumerable:!(n=s0a(t,a))||n.enumerable});return e},u0a=e=>l0a(fEr({},"__esModule",{value:!0}),e),Bri={};c0a(Bri,{request:()=>h0a});wri.exports=u0a(Bri);var g0a=hri(),A0a=nQe(),d0a="8.4.0";function p0a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var oQe=Sri();function f0a(e){return e.arrayBuffer()}function vri(e){var t,r,n,a;let o=e.request&&e.request.log?e.request.log:console,l=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==!1;(p0a(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let A={},f,I,{fetch:C}=globalThis;if((r=e.request)!=null&&r.fetch&&(C=e.request.fetch),!C)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");return C(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(a=e.request)==null?void 0:a.signal,...e.body&&{duplex:"half"}}).then(async b=>{I=b.url,f=b.status;for(let E of b.headers)A[E[0]]=E[1];if("deprecation"in A){let E=A.link&&A.link.match(/<([^>]+)>; rel="deprecation"/),N=E&&E.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${A.sunset}${N?`. See ${N}`:""}`)}if(!(f===204||f===205)){if(e.method==="HEAD"){if(f<400)return;throw new oQe.RequestError(b.statusText,f,{response:{url:I,status:f,headers:A,data:void 0},request:e})}if(f===304)throw new oQe.RequestError("Not modified",f,{response:{url:I,status:f,headers:A,data:await dEr(b)},request:e});if(f>=400){let E=await dEr(b);throw new oQe.RequestError(I0a(E),f,{response:{url:I,status:f,headers:A,data:E},request:e})}return l?await dEr(b):b.body}}).then(b=>({status:f,url:I,headers:A,data:b})).catch(b=>{if(b instanceof oQe.RequestError)throw b;if(b.name==="AbortError")throw b;let E=b.message;throw b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause)),new oQe.RequestError(E,500,{request:e})})}async function dEr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():f0a(e)}function I0a(e){if(typeof e=="string")return e;let t;return"documentation_url"in e?t=` - ${e.documentation_url}`:t="","message"in e?Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`:`${e.message}${t}`:`Unknown error: ${JSON.stringify(e)}`}function pEr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return vri(r.parse(l));let A=(f,I)=>vri(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:pEr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:pEr.bind(null,r)})}var h0a=pEr(g0a.endpoint,{headers:{"user-agent":`octokit-request.js/${d0a} ${(0,A0a.getUserAgent)()}`}})});var kri=H((Wau,Dri)=>{"use strict";var IEr=Object.defineProperty,m0a=Object.getOwnPropertyDescriptor,C0a=Object.getOwnPropertyNames,_0a=Object.prototype.hasOwnProperty,y0a=(e,t)=>{for(var r in t)IEr(e,r,{get:t[r],enumerable:!0})},b0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of C0a(t))!_0a.call(e,a)&&a!==r&&IEr(e,a,{get:()=>t[a],enumerable:!(n=m0a(t,a))||n.enumerable});return e},E0a=e=>b0a(IEr({},"__esModule",{value:!0}),e),Rri={};y0a(Rri,{GraphqlResponseError:()=>Nri,graphql:()=>D0a,withCustomRequest:()=>k0a});Dri.exports=E0a(Rri);var S0a=aQe(),v0a=nQe(),B0a="7.1.0",Vau=aQe(),Pau=aQe();function w0a(e){return`Request failed due to following response errors: +`.trim())}};Oqn.exports=Cbr});var Jht=H((You,Xqn)=>{"use strict";var Hqn=Symbol.for("undici.globalDispatcher.1"),{InvalidArgumentError:afa}=Y0(),cfa=kwe();Qqn()===void 0&&Yqn(new cfa);function Yqn(e){if(!e||typeof e.dispatch!="function")throw new afa("Argument agent must implement Agent");Object.defineProperty(globalThis,Hqn,{value:e,writable:!0,enumerable:!1,configurable:!1})}function Qqn(){return globalThis[Hqn]}Xqn.exports={setGlobalDispatcher:Yqn,getGlobalDispatcher:Qqn}});var _br=H((Xou,Jqn)=>{"use strict";Jqn.exports=class{#e;constructor(t){if(typeof t!="object"||t===null)throw new TypeError("handler must be an object");this.#e=t}onConnect(...t){return this.#e.onConnect?.(...t)}onError(...t){return this.#e.onError?.(...t)}onUpgrade(...t){return this.#e.onUpgrade?.(...t)}onResponseStarted(...t){return this.#e.onResponseStarted?.(...t)}onHeaders(...t){return this.#e.onHeaders?.(...t)}onData(...t){return this.#e.onData?.(...t)}onComplete(...t){return this.#e.onComplete?.(...t)}onBodySent(...t){return this.#e.onBodySent?.(...t)}}});var Kqn=H((Jou,Uqn)=>{"use strict";var lfa=Bht();Uqn.exports=e=>{let t=e?.maxRedirections;return r=>function(a,o){let{maxRedirections:l=t,...A}=a;if(!l)return r(a,o);let f=new lfa(r,l,a,o);return r(A,f)}}});var zqn=H((Uou,jqn)=>{"use strict";var ufa=Lht();jqn.exports=e=>t=>function(n,a){return t(n,new ufa({...n,retryOptions:{...e,...n.retryOptions}},{handler:a,dispatch:t}))}});var $qn=H((Kou,qqn)=>{"use strict";var gfa=Em(),{InvalidArgumentError:Afa,RequestAbortedError:dfa}=Y0(),pfa=_br(),ybr=class extends pfa{#e=1024*1024;#t=null;#n=!1;#r=!1;#i=0;#s=null;#o=null;constructor({maxSize:t},r){if(super(r),t!=null&&(!Number.isFinite(t)||t<1))throw new Afa("maxSize must be a number greater than 0");this.#e=t??this.#e,this.#o=r}onConnect(t){this.#t=t,this.#o.onConnect(this.#g.bind(this))}#g(t){this.#r=!0,this.#s=t}onHeaders(t,r,n,a){let l=gfa.parseHeaders(r)["content-length"];if(l!=null&&l>this.#e)throw new dfa(`Response size (${l}) larger than maxSize (${this.#e})`);return this.#r?!0:this.#o.onHeaders(t,r,n,a)}onError(t){this.#n||(t=this.#s??t,this.#o.onError(t))}onData(t){return this.#i=this.#i+t.length,this.#i>=this.#e&&(this.#n=!0,this.#r?this.#o.onError(this.#s):this.#o.onComplete([])),!0}onComplete(t){if(!this.#n){if(this.#r){this.#o.onError(this.reason);return}this.#o.onComplete(t)}}};function ffa({maxSize:e}={maxSize:1024*1024}){return t=>function(n,a){let{dumpMaxSize:o=e}=n,l=new ybr({maxSize:o},a);return t(n,l)}}qqn.exports=ffa});var fhe=H((jou,o$n)=>{"use strict";var{kConstruct:Ifa}=B2(),{kEnumerableProperty:Owe}=Em(),{iteratorMixin:hfa,isValidHeaderName:VYe,isValidHeaderValue:t$n}=qW(),{webidl:__}=kk(),bbr=wt("node:assert"),Uht=wt("node:util"),aT=Symbol("headers map"),eO=Symbol("headers map sorted");function e$n(e){return e===10||e===13||e===9||e===32}function r$n(e){let t=0,r=e.length;for(;r>t&&e$n(e.charCodeAt(r-1));)--r;for(;r>t&&e$n(e.charCodeAt(t));)++t;return t===0&&r===e.length?e:e.substring(t,r)}function n$n(e,t){if(Array.isArray(t))for(let r=0;r>","record"]})}function Ebr(e,t,r){if(r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:"Headers.append",value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:"Headers.append",value:t,type:"header name"});if(s$n(e)==="immutable")throw new TypeError("immutable");return Sbr(e).append(t,r,!1)}function i$n(e,t){return e[0]>1),r[I][0]<=C[0]?f=I+1:A=I;if(o!==I){for(l=o;l>f;)r[l]=r[--l];r[f]=C}}if(!n.next().done)throw new TypeError("Unreachable");return r}else{let n=0;for(let{0:a,1:{value:o}}of this[aT])r[n++]=[a,o],bbr(o!==null);return r.sort(i$n)}}},VX=class e{#e;#t;constructor(t=void 0){t!==Ifa&&(this.#t=new Kht,this.#e="none",t!==void 0&&(t=__.converters.HeadersInit(t,"Headers contructor","init"),n$n(this,t)))}append(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.append");let n="Headers.append";return t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),Ebr(this,t,r)}delete(t){if(__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.delete"),t=__.converters.ByteString(t,"Headers.delete","name"),!VYe(t))throw __.errors.invalidArgument({prefix:"Headers.delete",value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.get");let r="Headers.get";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.get(t,!1)}has(t){__.brandCheck(this,e),__.argumentLengthCheck(arguments,1,"Headers.has");let r="Headers.has";if(t=__.converters.ByteString(t,r,"name"),!VYe(t))throw __.errors.invalidArgument({prefix:r,value:t,type:"header name"});return this.#t.contains(t,!1)}set(t,r){__.brandCheck(this,e),__.argumentLengthCheck(arguments,2,"Headers.set");let n="Headers.set";if(t=__.converters.ByteString(t,n,"name"),r=__.converters.ByteString(r,n,"value"),r=r$n(r),VYe(t)){if(!t$n(r))throw __.errors.invalidArgument({prefix:n,value:r,type:"header value"})}else throw __.errors.invalidArgument({prefix:n,value:t,type:"header name"});if(this.#e==="immutable")throw new TypeError("immutable");this.#t.set(t,r,!1)}getSetCookie(){__.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}get[eO](){if(this.#t[eO])return this.#t[eO];let t=[],r=this.#t.toSortedArray(),n=this.#t.cookies;if(n===null||n.length===1)return this.#t[eO]=r;for(let a=0;a>"](e,t,r,n.bind(e)):__.converters["record"](e,t,r)}throw __.errors.conversionFailed({prefix:"Headers constructor",argument:"Argument 1",types:["sequence>","record"]})};o$n.exports={fill:n$n,compareHeaderName:i$n,Headers:VX,HeadersList:Kht,getHeadersGuard:s$n,setHeadersGuard:mfa,setHeadersList:Cfa,getHeadersList:Sbr}});var WYe=H((zou,I$n)=>{"use strict";var{Headers:A$n,HeadersList:a$n,fill:_fa,getHeadersGuard:yfa,setHeadersGuard:d$n,setHeadersList:p$n}=fhe(),{extractBody:c$n,cloneBody:bfa,mixinBody:Efa,hasFinalizationRegistry:Sfa,streamRegistry:vfa,bodyUnusable:Bfa}=dYe(),vbr=Em(),l$n=wt("node:util"),{kEnumerableProperty:tO}=vbr,{isValidReasonPhrase:wfa,isCancelled:Tfa,isAborted:Rfa,isBlobLike:Nfa,serializeJavascriptValueToJSONString:Dfa,isErrorLike:kfa,isomorphicEncode:xfa,environmentSettingsObject:Gfa}=qW(),{redirectStatusSet:Ffa,nullBodyStatus:Zfa}=sYe(),{kState:Mv,kHeaders:X$}=nae(),{webidl:Oh}=kk(),{FormData:Lfa}=gYe(),{URLSerializer:u$n}=eV(),{kConstruct:zht}=B2(),Bbr=wt("node:assert"),{types:Vfa}=wt("node:util"),Pfa=new TextEncoder("utf-8"),Ihe=class e{static error(){return PYe(qht(),"immutable")}static json(t,r={}){Oh.argumentLengthCheck(arguments,1,"Response.json"),r!==null&&(r=Oh.converters.ResponseInit(r));let n=Pfa.encode(Dfa(t)),a=c$n(n),o=PYe(Mwe({}),"response");return g$n(o,r,{body:a[0],type:"application/json"}),o}static redirect(t,r=302){Oh.argumentLengthCheck(arguments,1,"Response.redirect"),t=Oh.converters.USVString(t),r=Oh.converters["unsigned short"](r);let n;try{n=new URL(t,Gfa.settingsObject.baseUrl)}catch(l){throw new TypeError(`Failed to parse URL from ${t}`,{cause:l})}if(!Ffa.has(r))throw new RangeError(`Invalid status code ${r}`);let a=PYe(Mwe({}),"immutable");a[Mv].status=r;let o=xfa(u$n(n));return a[Mv].headersList.append("location",o,!0),a}constructor(t=null,r={}){if(t===zht)return;t!==null&&(t=Oh.converters.BodyInit(t)),r=Oh.converters.ResponseInit(r),this[Mv]=Mwe({}),this[X$]=new A$n(zht),d$n(this[X$],"response"),p$n(this[X$],this[Mv].headersList);let n=null;if(t!=null){let[a,o]=c$n(t);n={body:a,type:o}}g$n(this,r,n)}get type(){return Oh.brandCheck(this,e),this[Mv].type}get url(){Oh.brandCheck(this,e);let t=this[Mv].urlList,r=t[t.length-1]??null;return r===null?"":u$n(r,!0)}get redirected(){return Oh.brandCheck(this,e),this[Mv].urlList.length>1}get status(){return Oh.brandCheck(this,e),this[Mv].status}get ok(){return Oh.brandCheck(this,e),this[Mv].status>=200&&this[Mv].status<=299}get statusText(){return Oh.brandCheck(this,e),this[Mv].statusText}get headers(){return Oh.brandCheck(this,e),this[X$]}get body(){return Oh.brandCheck(this,e),this[Mv].body?this[Mv].body.stream:null}get bodyUsed(){return Oh.brandCheck(this,e),!!this[Mv].body&&vbr.isDisturbed(this[Mv].body.stream)}clone(){if(Oh.brandCheck(this,e),Bfa(this))throw Oh.errors.exception({header:"Response.clone",message:"Body has already been consumed."});let t=wbr(this[Mv]);return PYe(t,yfa(this[X$]))}[l$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${l$n.formatWithOptions(r,n)}`}};Efa(Ihe);Object.defineProperties(Ihe.prototype,{type:tO,url:tO,status:tO,ok:tO,redirected:tO,statusText:tO,headers:tO,clone:tO,body:tO,bodyUsed:tO,[Symbol.toStringTag]:{value:"Response",configurable:!0}});Object.defineProperties(Ihe,{json:tO,redirect:tO,error:tO});function wbr(e){if(e.internalResponse)return f$n(wbr(e.internalResponse),e.type);let t=Mwe({...e,body:null});return e.body!=null&&(t.body=bfa(t,e.body)),t}function Mwe(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:"default",status:200,timingInfo:null,cacheState:"",statusText:"",...e,headersList:e?.headersList?new a$n(e?.headersList):new a$n,urlList:e?.urlList?[...e.urlList]:[]}}function qht(e){let t=kfa(e);return Mwe({type:"error",status:0,error:t?e:new Error(e&&String(e)),aborted:e&&e.name==="AbortError"})}function Wfa(e){return e.type==="error"&&e.status===0}function jht(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(r,n){return n in t?t[n]:r[n]},set(r,n,a){return Bbr(!(n in t)),r[n]=a,!0}})}function f$n(e,t){if(t==="basic")return jht(e,{type:"basic",headersList:e.headersList});if(t==="cors")return jht(e,{type:"cors",headersList:e.headersList});if(t==="opaque")return jht(e,{type:"opaque",urlList:Object.freeze([]),status:0,statusText:"",body:null});if(t==="opaqueredirect")return jht(e,{type:"opaqueredirect",status:0,statusText:"",headersList:[],body:null});Bbr(!1)}function Ofa(e,t=null){return Bbr(Tfa(e)),Rfa(e)?qht(Object.assign(new DOMException("The operation was aborted.","AbortError"),{cause:t})):qht(Object.assign(new DOMException("Request was cancelled."),{cause:t}))}function g$n(e,t,r){if(t.status!==null&&(t.status<200||t.status>599))throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.');if("statusText"in t&&t.statusText!=null&&!wfa(String(t.statusText)))throw new TypeError("Invalid statusText");if("status"in t&&t.status!=null&&(e[Mv].status=t.status),"statusText"in t&&t.statusText!=null&&(e[Mv].statusText=t.statusText),"headers"in t&&t.headers!=null&&_fa(e[X$],t.headers),r){if(Zfa.includes(e.status))throw Oh.errors.exception({header:"Response constructor",message:`Invalid response status code ${e.status}`});e[Mv].body=r.body,r.type!=null&&!e[Mv].headersList.contains("content-type",!0)&&e[Mv].headersList.append("content-type",r.type,!0)}}function PYe(e,t){let r=new Ihe(zht);return r[Mv]=e,r[X$]=new A$n(zht),p$n(r[X$],e.headersList),d$n(r[X$],t),Sfa&&e.body?.stream&&vfa.register(r,new WeakRef(e.body.stream)),r}Oh.converters.ReadableStream=Oh.interfaceConverter(ReadableStream);Oh.converters.FormData=Oh.interfaceConverter(Lfa);Oh.converters.URLSearchParams=Oh.interfaceConverter(URLSearchParams);Oh.converters.XMLHttpRequestBodyInit=function(e,t,r){return typeof e=="string"?Oh.converters.USVString(e,t,r):Nfa(e)?Oh.converters.Blob(e,t,r,{strict:!1}):ArrayBuffer.isView(e)||Vfa.isArrayBuffer(e)?Oh.converters.BufferSource(e,t,r):vbr.isFormDataLike(e)?Oh.converters.FormData(e,t,r,{strict:!1}):e instanceof URLSearchParams?Oh.converters.URLSearchParams(e,t,r):Oh.converters.DOMString(e,t,r)};Oh.converters.BodyInit=function(e,t,r){return e instanceof ReadableStream?Oh.converters.ReadableStream(e,t,r):e?.[Symbol.asyncIterator]?e:Oh.converters.XMLHttpRequestBodyInit(e,t,r)};Oh.converters.ResponseInit=Oh.dictionaryConverter([{key:"status",converter:Oh.converters["unsigned short"],defaultValue:()=>200},{key:"statusText",converter:Oh.converters.ByteString,defaultValue:()=>""},{key:"headers",converter:Oh.converters.HeadersInit}]);I$n.exports={isNetworkError:Wfa,makeNetworkError:qht,makeResponse:Mwe,makeAppropriateNetworkError:Ofa,filterResponse:f$n,Response:Ihe,cloneResponse:wbr,fromInnerResponse:PYe}});var _$n=H((qou,C$n)=>{"use strict";var{kConnected:h$n,kSize:m$n}=B2(),Tbr=class{constructor(t){this.value=t}deref(){return this.value[h$n]===0&&this.value[m$n]===0?void 0:this.value}},Rbr=class{constructor(t){this.finalizer=t}register(t,r){t.on&&t.on("disconnect",()=>{t[h$n]===0&&t[m$n]===0&&this.finalizer(r)})}unregister(t){}};C$n.exports=function(){return process.env.NODE_V8_COVERAGE&&process.version.startsWith("v18")?(process._rawDebug("Using compatibility WeakRef and FinalizationRegistry"),{WeakRef:Tbr,FinalizationRegistry:Rbr}):{WeakRef,FinalizationRegistry}}});var Hwe=H(($ou,F$n)=>{"use strict";var{extractBody:Mfa,mixinBody:Hfa,cloneBody:Yfa,bodyUnusable:y$n}=dYe(),{Headers:N$n,fill:Qfa,HeadersList:rmt,setHeadersGuard:Dbr,getHeadersGuard:Xfa,setHeadersList:D$n,getHeadersList:b$n}=fhe(),{FinalizationRegistry:Jfa}=_$n()(),emt=Em(),E$n=wt("node:util"),{isValidHTTPToken:Ufa,sameOrigin:S$n,environmentSettingsObject:$ht}=qW(),{forbiddenMethodsSet:Kfa,corsSafeListedMethodsSet:jfa,referrerPolicy:zfa,requestRedirect:qfa,requestMode:$fa,requestCredentials:eIa,requestCache:tIa,requestDuplex:rIa}=sYe(),{kEnumerableProperty:cT,normalizedMethodRecordsBase:nIa,normalizedMethodRecords:iIa}=emt,{kHeaders:rO,kSignal:tmt,kState:O1,kDispatcher:Nbr}=nae(),{webidl:vf}=kk(),{URLSerializer:sIa}=eV(),{kConstruct:nmt}=B2(),oIa=wt("node:assert"),{getMaxListeners:v$n,setMaxListeners:B$n,getEventListeners:aIa,defaultMaxListeners:w$n}=wt("node:events"),cIa=Symbol("abortController"),k$n=new Jfa(({signal:e,abort:t})=>{e.removeEventListener("abort",t)}),imt=new WeakMap;function T$n(e){return t;function t(){let r=e.deref();if(r!==void 0){k$n.unregister(t),this.removeEventListener("abort",t),r.abort(this.reason);let n=imt.get(r.signal);if(n!==void 0){if(n.size!==0){for(let a of n){let o=a.deref();o!==void 0&&o.abort(this.reason)}n.clear()}imt.delete(r.signal)}}}}var R$n=!1,dae=class e{constructor(t,r={}){if(t===nmt)return;let n="Request constructor";vf.argumentLengthCheck(arguments,1,n),t=vf.converters.RequestInfo(t,n,"input"),r=vf.converters.RequestInit(r,n,"init");let a=null,o=null,l=$ht.settingsObject.baseUrl,A=null;if(typeof t=="string"){this[Nbr]=r.dispatcher;let X;try{X=new URL(t,l)}catch(ae){throw new TypeError("Failed to parse URL from "+t,{cause:ae})}if(X.username||X.password)throw new TypeError("Request cannot be constructed from a URL that includes credentials: "+t);a=smt({urlList:[X]}),o="cors"}else this[Nbr]=r.dispatcher||t[Nbr],oIa(t instanceof e),a=t[O1],A=t[tmt];let f=$ht.settingsObject.origin,I="client";if(a.window?.constructor?.name==="EnvironmentSettingsObject"&&S$n(a.window,f)&&(I=a.window),r.window!=null)throw new TypeError(`'window' option '${I}' must be null`);"window"in r&&(I="no-window"),a=smt({method:a.method,headersList:a.headersList,unsafeRequest:a.unsafeRequest,client:$ht.settingsObject,window:I,priority:a.priority,origin:a.origin,referrer:a.referrer,referrerPolicy:a.referrerPolicy,mode:a.mode,credentials:a.credentials,cache:a.cache,redirect:a.redirect,integrity:a.integrity,keepalive:a.keepalive,reloadNavigation:a.reloadNavigation,historyNavigation:a.historyNavigation,urlList:[...a.urlList]});let C=Object.keys(r).length!==0;if(C&&(a.mode==="navigate"&&(a.mode="same-origin"),a.reloadNavigation=!1,a.historyNavigation=!1,a.origin="client",a.referrer="client",a.referrerPolicy="",a.url=a.urlList[a.urlList.length-1],a.urlList=[a.url]),r.referrer!==void 0){let X=r.referrer;if(X==="")a.referrer="no-referrer";else{let ae;try{ae=new URL(X,l)}catch(ne){throw new TypeError(`Referrer "${X}" is not a valid URL.`,{cause:ne})}ae.protocol==="about:"&&ae.hostname==="client"||f&&!S$n(ae,$ht.settingsObject.baseUrl)?a.referrer="client":a.referrer=ae}}r.referrerPolicy!==void 0&&(a.referrerPolicy=r.referrerPolicy);let b;if(r.mode!==void 0?b=r.mode:b=o,b==="navigate")throw vf.errors.exception({header:"Request constructor",message:"invalid request mode navigate."});if(b!=null&&(a.mode=b),r.credentials!==void 0&&(a.credentials=r.credentials),r.cache!==void 0&&(a.cache=r.cache),a.cache==="only-if-cached"&&a.mode!=="same-origin")throw new TypeError("'only-if-cached' can be set only with 'same-origin' mode");if(r.redirect!==void 0&&(a.redirect=r.redirect),r.integrity!=null&&(a.integrity=String(r.integrity)),r.keepalive!==void 0&&(a.keepalive=!!r.keepalive),r.method!==void 0){let X=r.method,ae=iIa[X];if(ae!==void 0)a.method=ae;else{if(!Ufa(X))throw new TypeError(`'${X}' is not a valid HTTP method.`);let ne=X.toUpperCase();if(Kfa.has(ne))throw new TypeError(`'${X}' HTTP method is unsupported.`);X=nIa[ne]??X,a.method=X}!R$n&&a.method==="patch"&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:"UNDICI-FETCH-patch"}),R$n=!0)}r.signal!==void 0&&(A=r.signal),this[O1]=a;let E=new AbortController;if(this[tmt]=E.signal,A!=null){if(!A||typeof A.aborted!="boolean"||typeof A.addEventListener!="function")throw new TypeError("Failed to construct 'Request': member signal is not of type AbortSignal.");if(A.aborted)E.abort(A.reason);else{this[cIa]=E;let X=new WeakRef(E),ae=T$n(X);try{(typeof v$n=="function"&&v$n(A)===w$n||aIa(A,"abort").length>=w$n)&&B$n(1500,A)}catch{}emt.addAbortListener(A,ae),k$n.register(E,{signal:A,abort:ae},ae)}}if(this[rO]=new N$n(nmt),D$n(this[rO],a.headersList),Dbr(this[rO],"request"),b==="no-cors"){if(!jfa.has(a.method))throw new TypeError(`'${a.method} is unsupported in no-cors mode.`);Dbr(this[rO],"request-no-cors")}if(C){let X=b$n(this[rO]),ae=r.headers!==void 0?r.headers:new rmt(X);if(X.clear(),ae instanceof rmt){for(let{name:ne,value:ce}of ae.rawValues())X.append(ne,ce,!1);X.cookies=ae.cookies}else Qfa(this[rO],ae)}let N=t instanceof e?t[O1].body:null;if((r.body!=null||N!=null)&&(a.method==="GET"||a.method==="HEAD"))throw new TypeError("Request with GET/HEAD method cannot have body.");let B=null;if(r.body!=null){let[X,ae]=Mfa(r.body,a.keepalive);B=X,ae&&!b$n(this[rO]).contains("content-type",!0)&&this[rO].append("content-type",ae)}let F=B??N;if(F!=null&&F.source==null){if(B!=null&&r.duplex==null)throw new TypeError("RequestInit: duplex option is required when sending a body.");if(a.mode!=="same-origin"&&a.mode!=="cors")throw new TypeError('If request is made from ReadableStream, mode should be "same-origin" or "cors"');a.useCORSPreflightFlag=!0}let Q=F;if(B==null&&N!=null){if(y$n(t))throw new TypeError("Cannot construct a Request with a Request object that has already been used.");let X=new TransformStream;N.stream.pipeThrough(X),Q={source:N.source,length:N.length,stream:X.readable}}this[O1].body=Q}get method(){return vf.brandCheck(this,e),this[O1].method}get url(){return vf.brandCheck(this,e),sIa(this[O1].url)}get headers(){return vf.brandCheck(this,e),this[rO]}get destination(){return vf.brandCheck(this,e),this[O1].destination}get referrer(){return vf.brandCheck(this,e),this[O1].referrer==="no-referrer"?"":this[O1].referrer==="client"?"about:client":this[O1].referrer.toString()}get referrerPolicy(){return vf.brandCheck(this,e),this[O1].referrerPolicy}get mode(){return vf.brandCheck(this,e),this[O1].mode}get credentials(){return this[O1].credentials}get cache(){return vf.brandCheck(this,e),this[O1].cache}get redirect(){return vf.brandCheck(this,e),this[O1].redirect}get integrity(){return vf.brandCheck(this,e),this[O1].integrity}get keepalive(){return vf.brandCheck(this,e),this[O1].keepalive}get isReloadNavigation(){return vf.brandCheck(this,e),this[O1].reloadNavigation}get isHistoryNavigation(){return vf.brandCheck(this,e),this[O1].historyNavigation}get signal(){return vf.brandCheck(this,e),this[tmt]}get body(){return vf.brandCheck(this,e),this[O1].body?this[O1].body.stream:null}get bodyUsed(){return vf.brandCheck(this,e),!!this[O1].body&&emt.isDisturbed(this[O1].body.stream)}get duplex(){return vf.brandCheck(this,e),"half"}clone(){if(vf.brandCheck(this,e),y$n(this))throw new TypeError("unusable");let t=x$n(this[O1]),r=new AbortController;if(this.signal.aborted)r.abort(this.signal.reason);else{let n=imt.get(this.signal);n===void 0&&(n=new Set,imt.set(this.signal,n));let a=new WeakRef(r);n.add(a),emt.addAbortListener(r.signal,T$n(a))}return G$n(t,r.signal,Xfa(this[rO]))}[E$n.inspect.custom](t,r){r.depth===null&&(r.depth=2),r.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${E$n.formatWithOptions(r,n)}`}};Hfa(dae);function smt(e){return{method:e.method??"GET",localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??"",window:e.window??"client",keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??"all",initiator:e.initiator??"",destination:e.destination??"",priority:e.priority??null,origin:e.origin??"client",policyContainer:e.policyContainer??"client",referrer:e.referrer??"client",referrerPolicy:e.referrerPolicy??"",mode:e.mode??"no-cors",useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??"same-origin",useCredentials:e.useCredentials??!1,cache:e.cache??"default",redirect:e.redirect??"follow",integrity:e.integrity??"",cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??"",parserMetadata:e.parserMetadata??"",reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??"basic",preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new rmt(e.headersList):new rmt}}function x$n(e){let t=smt({...e,body:null});return e.body!=null&&(t.body=Yfa(t,e.body)),t}function G$n(e,t,r){let n=new dae(nmt);return n[O1]=e,n[tmt]=t,n[rO]=new N$n(nmt),D$n(n[rO],e.headersList),Dbr(n[rO],r),n}Object.defineProperties(dae.prototype,{method:cT,url:cT,headers:cT,redirect:cT,clone:cT,signal:cT,duplex:cT,destination:cT,body:cT,bodyUsed:cT,isHistoryNavigation:cT,isReloadNavigation:cT,keepalive:cT,integrity:cT,cache:cT,credentials:cT,attribute:cT,referrerPolicy:cT,referrer:cT,mode:cT,[Symbol.toStringTag]:{value:"Request",configurable:!0}});vf.converters.Request=vf.interfaceConverter(dae);vf.converters.RequestInfo=function(e,t,r){return typeof e=="string"?vf.converters.USVString(e,t,r):e instanceof dae?vf.converters.Request(e,t,r):vf.converters.USVString(e,t,r)};vf.converters.AbortSignal=vf.interfaceConverter(AbortSignal);vf.converters.RequestInit=vf.dictionaryConverter([{key:"method",converter:vf.converters.ByteString},{key:"headers",converter:vf.converters.HeadersInit},{key:"body",converter:vf.nullableConverter(vf.converters.BodyInit)},{key:"referrer",converter:vf.converters.USVString},{key:"referrerPolicy",converter:vf.converters.DOMString,allowedValues:zfa},{key:"mode",converter:vf.converters.DOMString,allowedValues:$fa},{key:"credentials",converter:vf.converters.DOMString,allowedValues:eIa},{key:"cache",converter:vf.converters.DOMString,allowedValues:tIa},{key:"redirect",converter:vf.converters.DOMString,allowedValues:qfa},{key:"integrity",converter:vf.converters.DOMString},{key:"keepalive",converter:vf.converters.boolean},{key:"signal",converter:vf.nullableConverter(e=>vf.converters.AbortSignal(e,"RequestInit","signal",{strict:!1}))},{key:"window",converter:vf.converters.any},{key:"duplex",converter:vf.converters.DOMString,allowedValues:rIa},{key:"dispatcher",converter:vf.converters.any}]);F$n.exports={Request:dae,makeRequest:smt,fromInnerRequest:G$n,cloneRequest:x$n}});var MYe=H((eau,j$n)=>{"use strict";var{makeNetworkError:_y,makeAppropriateNetworkError:omt,filterResponse:kbr,makeResponse:amt,fromInnerResponse:lIa}=WYe(),{HeadersList:Z$n}=fhe(),{Request:uIa,cloneRequest:gIa}=Hwe(),pae=wt("node:zlib"),{bytesMatch:AIa,makePolicyContainer:dIa,clonePolicyContainer:pIa,requestBadPort:fIa,TAOCheck:IIa,appendRequestOriginHeader:hIa,responseLocationURL:mIa,requestCurrentURL:L8,setRequestReferrerPolicyOnRedirect:CIa,tryUpgradeRequestToAPotentiallyTrustworthyURL:_Ia,createOpaqueTimingInfo:Lbr,appendFetchMetadata:yIa,corsCheck:bIa,crossOriginResourcePolicyCheck:EIa,determineRequestsReferrer:SIa,coarsenedSharedCurrentTime:OYe,createDeferredPromise:vIa,isBlobLike:BIa,sameOrigin:Zbr,isCancelled:hhe,isAborted:L$n,isErrorLike:wIa,fullyReadBody:TIa,readableStreamClose:RIa,isomorphicEncode:cmt,urlIsLocal:NIa,urlIsHttpHttpsScheme:Vbr,urlHasHttpsScheme:DIa,clampAndCoarsenConnectionTimingInfo:kIa,simpleRangeHeaderValue:xIa,buildContentRange:GIa,createInflate:FIa,extractMimeType:ZIa}=qW(),{kState:O$n,kDispatcher:LIa}=nae(),mhe=wt("node:assert"),{safelyExtractBody:Pbr,extractBody:V$n}=dYe(),{redirectStatusSet:M$n,nullBodyStatus:H$n,safeMethodsSet:VIa,requestBodyHeader:PIa,subresourceSet:WIa}=sYe(),OIa=wt("node:events"),{Readable:MIa,pipeline:HIa,finished:YIa}=wt("node:stream"),{addAbortListener:QIa,isErrored:XIa,isReadable:lmt,bufferToLowerCasedHeaderName:P$n}=Em(),{dataURLProcessor:JIa,serializeAMimeType:UIa,minimizeSupportedMimeType:KIa}=eV(),{getGlobalDispatcher:jIa}=Jht(),{webidl:zIa}=kk(),{STATUS_CODES:qIa}=wt("node:http"),$Ia=["GET","HEAD"],eha=typeof __UNDICI_IS_NODE__<"u"||typeof esbuildDetection<"u"?"node":"undici",xbr,umt=class extends OIa{constructor(t){super(),this.dispatcher=t,this.connection=null,this.dump=!1,this.state="ongoing"}terminate(t){this.state==="ongoing"&&(this.state="terminated",this.connection?.destroy(t),this.emit("terminated",t))}abort(t){this.state==="ongoing"&&(this.state="aborted",t||(t=new DOMException("The operation was aborted.","AbortError")),this.serializedAbortReason=t,this.connection?.destroy(t),this.emit("terminated",t))}};function tha(e){Y$n(e,"fetch")}function rha(e,t=void 0){zIa.argumentLengthCheck(arguments,1,"globalThis.fetch");let r=vIa(),n;try{n=new uIa(e,t)}catch(C){return r.reject(C),r.promise}let a=n[O$n];if(n.signal.aborted)return Gbr(r,a,null,n.signal.reason),r.promise;a.client.globalObject?.constructor?.name==="ServiceWorkerGlobalScope"&&(a.serviceWorkers="none");let l=null,A=!1,f=null;return QIa(n.signal,()=>{A=!0,mhe(f!=null),f.abort(n.signal.reason);let C=l?.deref();Gbr(r,a,C,n.signal.reason)}),f=X$n({request:a,processResponseEndOfBody:tha,processResponse:C=>{if(!A){if(C.aborted){Gbr(r,a,l,f.serializedAbortReason);return}if(C.type==="error"){r.reject(new TypeError("fetch failed",{cause:C.error}));return}l=new WeakRef(lIa(C,"immutable")),r.resolve(l.deref()),r=null}},dispatcher:n[LIa]}),r.promise}function Y$n(e,t="other"){if(e.type==="error"&&e.aborted||!e.urlList?.length)return;let r=e.urlList[0],n=e.timingInfo,a=e.cacheState;Vbr(r)&&n!==null&&(e.timingAllowPassed||(n=Lbr({startTime:n.startTime}),a=""),n.endTime=OYe(),e.timingInfo=n,Q$n(n,r.href,t,globalThis,a))}var Q$n=performance.markResourceTiming;function Gbr(e,t,r,n){if(e&&e.reject(n),t.body!=null&&lmt(t.body?.stream)&&t.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o}),r==null)return;let a=r[O$n];a.body!=null&&lmt(a.body?.stream)&&a.body.stream.cancel(n).catch(o=>{if(o.code!=="ERR_INVALID_STATE")throw o})}function X$n({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseEndOfBody:a,processResponseConsumeBody:o,useParallelQueue:l=!1,dispatcher:A=jIa()}){mhe(A);let f=null,I=!1;e.client!=null&&(f=e.client.globalObject,I=e.client.crossOriginIsolatedCapability);let C=OYe(I),b=Lbr({startTime:C}),E={controller:new umt(A),request:e,timingInfo:b,processRequestBodyChunkLength:t,processRequestEndOfBody:r,processResponse:n,processResponseConsumeBody:o,processResponseEndOfBody:a,taskDestination:f,crossOriginIsolatedCapability:I};return mhe(!e.body||e.body.stream),e.window==="client"&&(e.window=e.client?.globalObject?.constructor?.name==="Window"?e.client:"no-window"),e.origin==="client"&&(e.origin=e.client.origin),e.policyContainer==="client"&&(e.client!=null?e.policyContainer=pIa(e.client.policyContainer):e.policyContainer=dIa()),e.headersList.contains("accept",!0)||e.headersList.append("accept","*/*",!0),e.headersList.contains("accept-language",!0)||e.headersList.append("accept-language","*",!0),e.priority,WIa.has(e.destination),J$n(E).catch(N=>{E.controller.terminate(N)}),E.controller}async function J$n(e,t=!1){let r=e.request,n=null;if(r.localURLsOnly&&!NIa(L8(r))&&(n=_y("local URLs only")),_Ia(r),fIa(r)==="blocked"&&(n=_y("bad port")),r.referrerPolicy===""&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!=="no-referrer"&&(r.referrer=SIa(r)),n===null&&(n=await(async()=>{let o=L8(r);return Zbr(o,r.url)&&r.responseTainting==="basic"||o.protocol==="data:"||r.mode==="navigate"||r.mode==="websocket"?(r.responseTainting="basic",await W$n(e)):r.mode==="same-origin"?_y('request mode cannot be "same-origin"'):r.mode==="no-cors"?r.redirect!=="follow"?_y('redirect mode cannot be "follow" for "no-cors" request'):(r.responseTainting="opaque",await W$n(e)):Vbr(L8(r))?(r.responseTainting="cors",await U$n(e)):_y("URL scheme must be a HTTP(S) scheme")})()),t)return n;n.status!==0&&!n.internalResponse&&(r.responseTainting,r.responseTainting==="basic"?n=kbr(n,"basic"):r.responseTainting==="cors"?n=kbr(n,"cors"):r.responseTainting==="opaque"?n=kbr(n,"opaque"):mhe(!1));let a=n.status===0?n:n.internalResponse;if(a.urlList.length===0&&a.urlList.push(...r.urlList),r.timingAllowFailed||(n.timingAllowPassed=!0),n.type==="opaque"&&a.status===206&&a.rangeRequested&&!r.headers.contains("range",!0)&&(n=a=_y()),n.status!==0&&(r.method==="HEAD"||r.method==="CONNECT"||H$n.includes(a.status))&&(a.body=null,e.controller.dump=!0),r.integrity){let o=A=>Fbr(e,_y(A));if(r.responseTainting==="opaque"||n.body==null){o(n.error);return}let l=A=>{if(!AIa(A,r.integrity)){o("integrity mismatch");return}n.body=Pbr(A)[0],Fbr(e,n)};await TIa(n.body,l,o)}else Fbr(e,n)}function W$n(e){if(hhe(e)&&e.request.redirectCount===0)return Promise.resolve(omt(e));let{request:t}=e,{protocol:r}=L8(t);switch(r){case"about:":return Promise.resolve(_y("about scheme is not supported"));case"blob:":{xbr||(xbr=wt("node:buffer").resolveObjectURL);let n=L8(t);if(n.search.length!==0)return Promise.resolve(_y("NetworkError when attempting to fetch resource."));let a=xbr(n.toString());if(t.method!=="GET"||!BIa(a))return Promise.resolve(_y("invalid method"));let o=amt(),l=a.size,A=cmt(`${l}`),f=a.type;if(t.headersList.contains("range",!0)){o.rangeRequested=!0;let I=t.headersList.get("range",!0),C=xIa(I,!0);if(C==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let{rangeStartValue:b,rangeEndValue:E}=C;if(b===null)b=l-E,E=b+E-1;else{if(b>=l)return Promise.resolve(_y("Range start is greater than the blob's size."));(E===null||E>=l)&&(E=l-1)}let N=a.slice(b,E,f),B=V$n(N);o.body=B[0];let F=cmt(`${N.size}`),Q=GIa(b,E,l);o.status=206,o.statusText="Partial Content",o.headersList.set("content-length",F,!0),o.headersList.set("content-type",f,!0),o.headersList.set("content-range",Q,!0)}else{let I=V$n(a);o.statusText="OK",o.body=I[0],o.headersList.set("content-length",A,!0),o.headersList.set("content-type",f,!0)}return Promise.resolve(o)}case"data:":{let n=L8(t),a=JIa(n);if(a==="failure")return Promise.resolve(_y("failed to fetch the data URL"));let o=UIa(a.mimeType);return Promise.resolve(amt({statusText:"OK",headersList:[["content-type",{name:"Content-Type",value:o}]],body:Pbr(a.body)[0]}))}case"file:":return Promise.resolve(_y("not implemented... yet..."));case"http:":case"https:":return U$n(e).catch(n=>_y(n));default:return Promise.resolve(_y("unknown scheme"))}}function nha(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Fbr(e,t){let r=e.timingInfo,n=()=>{let o=Date.now();e.request.destination==="document"&&(e.controller.fullTimingInfo=r),e.controller.reportTimingSteps=()=>{if(e.request.url.protocol!=="https:")return;r.endTime=o;let A=t.cacheState,f=t.bodyInfo;t.timingAllowPassed||(r=Lbr(r),A="");let I=0;if(e.request.mode!=="navigator"||!t.hasCrossOriginRedirects){I=t.status;let C=ZIa(t.headersList);C!=="failure"&&(f.contentType=KIa(C))}e.request.initiatorType!=null&&Q$n(r,e.request.url.href,e.request.initiatorType,globalThis,A,f,I)};let l=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>l())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let a=t.type==="error"?t:t.internalResponse??t;a.body==null?n():YIa(a.body.stream,()=>{n()})}async function U$n(e){let t=e.request,r=null,n=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect==="follow"&&(t.serviceWorkers="none"),n=r=await K$n(e),t.responseTainting==="cors"&&bIa(t,r)==="failure")return _y("cors failure");IIa(t,r)==="failure"&&(t.timingAllowFailed=!0)}return(t.responseTainting==="opaque"||r.type==="opaque")&&EIa(t.origin,t.client,t.destination,n)==="blocked"?_y("blocked"):(M$n.has(n.status)&&(t.redirect!=="manual"&&e.controller.connection.destroy(void 0,!1),t.redirect==="error"?r=_y("unexpected redirect"):t.redirect==="manual"?r=n:t.redirect==="follow"?r=await iha(e,r):mhe(!1)),r.timingInfo=a,r)}function iha(e,t){let r=e.request,n=t.internalResponse?t.internalResponse:t,a;try{if(a=mIa(n,L8(r).hash),a==null)return t}catch(l){return Promise.resolve(_y(l))}if(!Vbr(a))return Promise.resolve(_y("URL scheme must be a HTTP(S) scheme"));if(r.redirectCount===20)return Promise.resolve(_y("redirect count exceeded"));if(r.redirectCount+=1,r.mode==="cors"&&(a.username||a.password)&&!Zbr(r,a))return Promise.resolve(_y('cross origin not allowed for request mode "cors"'));if(r.responseTainting==="cors"&&(a.username||a.password))return Promise.resolve(_y('URL cannot contain credentials for request mode "cors"'));if(n.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(_y());if([301,302].includes(n.status)&&r.method==="POST"||n.status===303&&!$Ia.includes(r.method)){r.method="GET",r.body=null;for(let l of PIa)r.headersList.delete(l)}Zbr(L8(r),a)||(r.headersList.delete("authorization",!0),r.headersList.delete("proxy-authorization",!0),r.headersList.delete("cookie",!0),r.headersList.delete("host",!0)),r.body!=null&&(mhe(r.body.source!=null),r.body=Pbr(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=OYe(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),CIa(r,n),J$n(e,!0)}async function K$n(e,t=!1,r=!1){let n=e.request,a=null,o=null,l=null,A=null,f=!1;n.window==="no-window"&&n.redirect==="error"?(a=e,o=n):(o=gIa(n),a={...e},a.request=o);let I=n.credentials==="include"||n.credentials==="same-origin"&&n.responseTainting==="basic",C=o.body?o.body.length:null,b=null;if(o.body==null&&["POST","PUT"].includes(o.method)&&(b="0"),C!=null&&(b=cmt(`${C}`)),b!=null&&o.headersList.append("content-length",b,!0),C!=null&&o.keepalive,o.referrer instanceof URL&&o.headersList.append("referer",cmt(o.referrer.href),!0),hIa(o),yIa(o),o.headersList.contains("user-agent",!0)||o.headersList.append("user-agent",eha),o.cache==="default"&&(o.headersList.contains("if-modified-since",!0)||o.headersList.contains("if-none-match",!0)||o.headersList.contains("if-unmodified-since",!0)||o.headersList.contains("if-match",!0)||o.headersList.contains("if-range",!0))&&(o.cache="no-store"),o.cache==="no-cache"&&!o.preventNoCacheCacheControlHeaderModification&&!o.headersList.contains("cache-control",!0)&&o.headersList.append("cache-control","max-age=0",!0),(o.cache==="no-store"||o.cache==="reload")&&(o.headersList.contains("pragma",!0)||o.headersList.append("pragma","no-cache",!0),o.headersList.contains("cache-control",!0)||o.headersList.append("cache-control","no-cache",!0)),o.headersList.contains("range",!0)&&o.headersList.append("accept-encoding","identity",!0),o.headersList.contains("accept-encoding",!0)||(DIa(L8(o))?o.headersList.append("accept-encoding","br, gzip, deflate",!0):o.headersList.append("accept-encoding","gzip, deflate",!0)),o.headersList.delete("host",!0),A==null&&(o.cache="no-store"),o.cache!=="no-store"&&o.cache,l==null){if(o.cache==="only-if-cached")return _y("only if cached");let E=await sha(a,I,r);!VIa.has(o.method)&&E.status>=200&&E.status<=399,f&&E.status,l==null&&(l=E)}if(l.urlList=[...o.urlList],o.headersList.contains("range",!0)&&(l.rangeRequested=!0),l.requestIncludesCredentials=I,l.status===407)return n.window==="no-window"?_y():hhe(e)?omt(e):_y("proxy authentication required");if(l.status===421&&!r&&(n.body==null||n.body.source!=null)){if(hhe(e))return omt(e);e.controller.connection.destroy(),l=await K$n(e,t,!0)}return l}async function sha(e,t=!1,r=!1){mhe(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(B,F=!0){this.destroyed||(this.destroyed=!0,F&&this.abort?.(B??new DOMException("The operation was aborted.","AbortError")))}};let n=e.request,a=null,o=e.timingInfo;null==null&&(n.cache="no-store");let A=r?"yes":"no";n.mode;let f=null;if(n.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(n.body!=null){let B=async function*(X){hhe(e)||(yield X,e.processRequestBodyChunkLength?.(X.byteLength))},F=()=>{hhe(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},Q=X=>{hhe(e)||(X.name==="AbortError"?e.controller.abort():e.controller.terminate(X))};f=async function*(){try{for await(let X of n.body.stream)yield*B(X);F()}catch(X){Q(X)}}()}try{let{body:B,status:F,statusText:Q,headersList:X,socket:ae}=await N({body:f});if(ae)a=amt({status:F,statusText:Q,headersList:X,socket:ae});else{let ne=B[Symbol.asyncIterator]();e.controller.next=()=>ne.next(),a=amt({status:F,statusText:Q,headersList:X})}}catch(B){return B.name==="AbortError"?(e.controller.connection.destroy(),omt(e,B)):_y(B)}let I=async()=>{await e.controller.resume()},C=B=>{hhe(e)||e.controller.abort(B)},b=new ReadableStream({async start(B){e.controller.controller=B},async pull(B){await I(B)},async cancel(B){await C(B)},type:"bytes"});a.body={stream:b,source:null,length:null},e.controller.onAborted=E,e.controller.on("terminated",E),e.controller.resume=async()=>{for(;;){let B,F;try{let{done:X,value:ae}=await e.controller.next();if(L$n(e))break;B=X?void 0:ae}catch(X){e.controller.ended&&!o.encodedBodySize?B=void 0:(B=X,F=!0)}if(B===void 0){RIa(e.controller.controller),nha(e,a);return}if(o.decodedBodySize+=B?.byteLength??0,F){e.controller.terminate(B);return}let Q=new Uint8Array(B);if(Q.byteLength&&e.controller.controller.enqueue(Q),XIa(b)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function E(B){L$n(e)?(a.aborted=!0,lmt(b)&&e.controller.controller.error(e.controller.serializedAbortReason)):lmt(b)&&e.controller.controller.error(new TypeError("terminated",{cause:wIa(B)?B:void 0})),e.controller.connection.destroy()}return a;function N({body:B}){let F=L8(n),Q=e.controller.dispatcher;return new Promise((X,ae)=>Q.dispatch({path:F.pathname+F.search,origin:F.origin,method:n.method,body:Q.isMockActive?n.body&&(n.body.source||n.body.stream):B,headers:n.headersList.entries,maxRedirections:0,upgrade:n.mode==="websocket"?"websocket":void 0},{body:null,abort:null,onConnect(ne){let{connection:ce}=e.controller;o.finalConnectionTimingInfo=kIa(void 0,o.postRedirectStartTime,e.crossOriginIsolatedCapability),ce.destroyed?ne(new DOMException("The operation was aborted.","AbortError")):(e.controller.on("terminated",ne),this.abort=ce.abort=ne),o.finalNetworkRequestStartTime=OYe(e.crossOriginIsolatedCapability)},onResponseStarted(){o.finalNetworkResponseStartTime=OYe(e.crossOriginIsolatedCapability)},onHeaders(ne,ce,fe,ue){if(ne<200)return;let de=[],be="",Se=new Z$n;for(let Me=0;MeMe.trim())),be=Se.get("location",!0),this.body=new MIa({read:fe});let k=[],et=be&&n.redirect==="follow"&&M$n.has(ne);if(de.length!==0&&n.method!=="HEAD"&&n.method!=="CONNECT"&&!H$n.includes(ne)&&!et)for(let Me=0;Me{Me&&this.onError(Me)}).on("error",ct):this.body.on("error",ct)}),!0},onData(ne){if(e.controller.dump)return;let ce=ne;return o.encodedBodySize+=ce.byteLength,this.body.push(ce)},onComplete(){this.abort&&e.controller.off("terminated",this.abort),e.controller.onAborted&&e.controller.off("terminated",e.controller.onAborted),e.controller.ended=!0,this.body.push(null)},onError(ne){this.abort&&e.controller.off("terminated",this.abort),this.body?.destroy(ne),e.controller.terminate(ne),ae(ne)},onUpgrade(ne,ce,fe){if(ne!==101)return;let ue=new Z$n;for(let de=0;de{"use strict";z$n.exports={kState:Symbol("FileReader state"),kResult:Symbol("FileReader result"),kError:Symbol("FileReader error"),kLastProgressEventFired:Symbol("FileReader last progress event fired timestamp"),kEvents:Symbol("FileReader events"),kAborted:Symbol("FileReader aborted")}});var $$n=H((rau,q$n)=>{"use strict";var{webidl:nO}=kk(),gmt=Symbol("ProgressEvent state"),Obr=class e extends Event{constructor(t,r={}){t=nO.converters.DOMString(t,"ProgressEvent constructor","type"),r=nO.converters.ProgressEventInit(r??{}),super(t,r),this[gmt]={lengthComputable:r.lengthComputable,loaded:r.loaded,total:r.total}}get lengthComputable(){return nO.brandCheck(this,e),this[gmt].lengthComputable}get loaded(){return nO.brandCheck(this,e),this[gmt].loaded}get total(){return nO.brandCheck(this,e),this[gmt].total}};nO.converters.ProgressEventInit=nO.dictionaryConverter([{key:"lengthComputable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"loaded",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"total",converter:nO.converters["unsigned long long"],defaultValue:()=>0},{key:"bubbles",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:nO.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:nO.converters.boolean,defaultValue:()=>!1}]);q$n.exports={ProgressEvent:Obr}});var tei=H((nau,eei)=>{"use strict";function oha(e){if(!e)return"failure";switch(e.trim().toLowerCase()){case"unicode-1-1-utf-8":case"unicode11utf8":case"unicode20utf8":case"utf-8":case"utf8":case"x-unicode20utf8":return"UTF-8";case"866":case"cp866":case"csibm866":case"ibm866":return"IBM866";case"csisolatin2":case"iso-8859-2":case"iso-ir-101":case"iso8859-2":case"iso88592":case"iso_8859-2":case"iso_8859-2:1987":case"l2":case"latin2":return"ISO-8859-2";case"csisolatin3":case"iso-8859-3":case"iso-ir-109":case"iso8859-3":case"iso88593":case"iso_8859-3":case"iso_8859-3:1988":case"l3":case"latin3":return"ISO-8859-3";case"csisolatin4":case"iso-8859-4":case"iso-ir-110":case"iso8859-4":case"iso88594":case"iso_8859-4":case"iso_8859-4:1988":case"l4":case"latin4":return"ISO-8859-4";case"csisolatincyrillic":case"cyrillic":case"iso-8859-5":case"iso-ir-144":case"iso8859-5":case"iso88595":case"iso_8859-5":case"iso_8859-5:1988":return"ISO-8859-5";case"arabic":case"asmo-708":case"csiso88596e":case"csiso88596i":case"csisolatinarabic":case"ecma-114":case"iso-8859-6":case"iso-8859-6-e":case"iso-8859-6-i":case"iso-ir-127":case"iso8859-6":case"iso88596":case"iso_8859-6":case"iso_8859-6:1987":return"ISO-8859-6";case"csisolatingreek":case"ecma-118":case"elot_928":case"greek":case"greek8":case"iso-8859-7":case"iso-ir-126":case"iso8859-7":case"iso88597":case"iso_8859-7":case"iso_8859-7:1987":case"sun_eu_greek":return"ISO-8859-7";case"csiso88598e":case"csisolatinhebrew":case"hebrew":case"iso-8859-8":case"iso-8859-8-e":case"iso-ir-138":case"iso8859-8":case"iso88598":case"iso_8859-8":case"iso_8859-8:1988":case"visual":return"ISO-8859-8";case"csiso88598i":case"iso-8859-8-i":case"logical":return"ISO-8859-8-I";case"csisolatin6":case"iso-8859-10":case"iso-ir-157":case"iso8859-10":case"iso885910":case"l6":case"latin6":return"ISO-8859-10";case"iso-8859-13":case"iso8859-13":case"iso885913":return"ISO-8859-13";case"iso-8859-14":case"iso8859-14":case"iso885914":return"ISO-8859-14";case"csisolatin9":case"iso-8859-15":case"iso8859-15":case"iso885915":case"iso_8859-15":case"l9":return"ISO-8859-15";case"iso-8859-16":return"ISO-8859-16";case"cskoi8r":case"koi":case"koi8":case"koi8-r":case"koi8_r":return"KOI8-R";case"koi8-ru":case"koi8-u":return"KOI8-U";case"csmacintosh":case"mac":case"macintosh":case"x-mac-roman":return"macintosh";case"iso-8859-11":case"iso8859-11":case"iso885911":case"tis-620":case"windows-874":return"windows-874";case"cp1250":case"windows-1250":case"x-cp1250":return"windows-1250";case"cp1251":case"windows-1251":case"x-cp1251":return"windows-1251";case"ansi_x3.4-1968":case"ascii":case"cp1252":case"cp819":case"csisolatin1":case"ibm819":case"iso-8859-1":case"iso-ir-100":case"iso8859-1":case"iso88591":case"iso_8859-1":case"iso_8859-1:1987":case"l1":case"latin1":case"us-ascii":case"windows-1252":case"x-cp1252":return"windows-1252";case"cp1253":case"windows-1253":case"x-cp1253":return"windows-1253";case"cp1254":case"csisolatin5":case"iso-8859-9":case"iso-ir-148":case"iso8859-9":case"iso88599":case"iso_8859-9":case"iso_8859-9:1989":case"l5":case"latin5":case"windows-1254":case"x-cp1254":return"windows-1254";case"cp1255":case"windows-1255":case"x-cp1255":return"windows-1255";case"cp1256":case"windows-1256":case"x-cp1256":return"windows-1256";case"cp1257":case"windows-1257":case"x-cp1257":return"windows-1257";case"cp1258":case"windows-1258":case"x-cp1258":return"windows-1258";case"x-mac-cyrillic":case"x-mac-ukrainian":return"x-mac-cyrillic";case"chinese":case"csgb2312":case"csiso58gb231280":case"gb2312":case"gb_2312":case"gb_2312-80":case"gbk":case"iso-ir-58":case"x-gbk":return"GBK";case"gb18030":return"gb18030";case"big5":case"big5-hkscs":case"cn-big5":case"csbig5":case"x-x-big5":return"Big5";case"cseucpkdfmtjapanese":case"euc-jp":case"x-euc-jp":return"EUC-JP";case"csiso2022jp":case"iso-2022-jp":return"ISO-2022-JP";case"csshiftjis":case"ms932":case"ms_kanji":case"shift-jis":case"shift_jis":case"sjis":case"windows-31j":case"x-sjis":return"Shift_JIS";case"cseuckr":case"csksc56011987":case"euc-kr":case"iso-ir-149":case"korean":case"ks_c_5601-1987":case"ks_c_5601-1989":case"ksc5601":case"ksc_5601":case"windows-949":return"EUC-KR";case"csiso2022kr":case"hz-gb-2312":case"iso-2022-cn":case"iso-2022-cn-ext":case"iso-2022-kr":case"replacement":return"replacement";case"unicodefffe":case"utf-16be":return"UTF-16BE";case"csunicode":case"iso-10646-ucs-2":case"ucs-2":case"unicode":case"unicodefeff":case"utf-16":case"utf-16le":return"UTF-16LE";case"x-user-defined":return"x-user-defined";default:return"failure"}}eei.exports={getEncoding:oha}});var lei=H((iau,cei)=>{"use strict";var{kState:Ywe,kError:Mbr,kResult:rei,kAborted:HYe,kLastProgressEventFired:Hbr}=Wbr(),{ProgressEvent:aha}=$$n(),{getEncoding:nei}=tei(),{serializeAMimeType:cha,parseMIMEType:iei}=eV(),{types:lha}=wt("node:util"),{StringDecoder:sei}=wt("string_decoder"),{btoa:oei}=wt("node:buffer"),uha={enumerable:!0,writable:!1,configurable:!1};function gha(e,t,r,n){if(e[Ywe]==="loading")throw new DOMException("Invalid state","InvalidStateError");e[Ywe]="loading",e[rei]=null,e[Mbr]=null;let o=t.stream().getReader(),l=[],A=o.read(),f=!0;(async()=>{for(;!e[HYe];)try{let{done:I,value:C}=await A;if(f&&!e[HYe]&&queueMicrotask(()=>{fae("loadstart",e)}),f=!1,!I&&lha.isUint8Array(C))l.push(C),(e[Hbr]===void 0||Date.now()-e[Hbr]>=50)&&!e[HYe]&&(e[Hbr]=Date.now(),queueMicrotask(()=>{fae("progress",e)})),A=o.read();else if(I){queueMicrotask(()=>{e[Ywe]="done";try{let b=Aha(l,r,t.type,n);if(e[HYe])return;e[rei]=b,fae("load",e)}catch(b){e[Mbr]=b,fae("error",e)}e[Ywe]!=="loading"&&fae("loadend",e)});break}}catch(I){if(e[HYe])return;queueMicrotask(()=>{e[Ywe]="done",e[Mbr]=I,fae("error",e),e[Ywe]!=="loading"&&fae("loadend",e)});break}})()}function fae(e,t){let r=new aha(e,{bubbles:!1,cancelable:!1});t.dispatchEvent(r)}function Aha(e,t,r,n){switch(t){case"DataURL":{let a="data:",o=iei(r||"application/octet-stream");o!=="failure"&&(a+=cha(o)),a+=";base64,";let l=new sei("latin1");for(let A of e)a+=oei(l.write(A));return a+=oei(l.end()),a}case"Text":{let a="failure";if(n&&(a=nei(n)),a==="failure"&&r){let o=iei(r);o!=="failure"&&(a=nei(o.parameters.get("charset")))}return a==="failure"&&(a="UTF-8"),dha(e,a)}case"ArrayBuffer":return aei(e).buffer;case"BinaryString":{let a="",o=new sei("latin1");for(let l of e)a+=o.write(l);return a+=o.end(),a}}}function dha(e,t){let r=aei(e),n=pha(r),a=0;n!==null&&(t=n,a=n==="UTF-8"?3:2);let o=r.slice(a);return new TextDecoder(t).decode(o)}function pha(e){let[t,r,n]=e;return t===239&&r===187&&n===191?"UTF-8":t===254&&r===255?"UTF-16BE":t===255&&r===254?"UTF-16LE":null}function aei(e){let t=e.reduce((n,a)=>n+a.byteLength,0),r=0;return e.reduce((n,a)=>(n.set(a,r),r+=a.byteLength,n),new Uint8Array(t))}cei.exports={staticPropertyDescriptors:uha,readOperation:gha,fireAProgressEvent:fae}});var dei=H((sau,Aei)=>{"use strict";var{staticPropertyDescriptors:Qwe,readOperation:Amt,fireAProgressEvent:uei}=lei(),{kState:Che,kError:gei,kResult:dmt,kEvents:h0,kAborted:fha}=Wbr(),{webidl:ib}=kk(),{kEnumerableProperty:nV}=Em(),PX=class e extends EventTarget{constructor(){super(),this[Che]="empty",this[dmt]=null,this[gei]=null,this[h0]={loadend:null,error:null,abort:null,load:null,progress:null,loadstart:null}}readAsArrayBuffer(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsArrayBuffer"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"ArrayBuffer")}readAsBinaryString(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsBinaryString"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"BinaryString")}readAsText(t,r=void 0){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsText"),t=ib.converters.Blob(t,{strict:!1}),r!==void 0&&(r=ib.converters.DOMString(r,"FileReader.readAsText","encoding")),Amt(this,t,"Text",r)}readAsDataURL(t){ib.brandCheck(this,e),ib.argumentLengthCheck(arguments,1,"FileReader.readAsDataURL"),t=ib.converters.Blob(t,{strict:!1}),Amt(this,t,"DataURL")}abort(){if(this[Che]==="empty"||this[Che]==="done"){this[dmt]=null;return}this[Che]==="loading"&&(this[Che]="done",this[dmt]=null),this[fha]=!0,uei("abort",this),this[Che]!=="loading"&&uei("loadend",this)}get readyState(){switch(ib.brandCheck(this,e),this[Che]){case"empty":return this.EMPTY;case"loading":return this.LOADING;case"done":return this.DONE}}get result(){return ib.brandCheck(this,e),this[dmt]}get error(){return ib.brandCheck(this,e),this[gei]}get onloadend(){return ib.brandCheck(this,e),this[h0].loadend}set onloadend(t){ib.brandCheck(this,e),this[h0].loadend&&this.removeEventListener("loadend",this[h0].loadend),typeof t=="function"?(this[h0].loadend=t,this.addEventListener("loadend",t)):this[h0].loadend=null}get onerror(){return ib.brandCheck(this,e),this[h0].error}set onerror(t){ib.brandCheck(this,e),this[h0].error&&this.removeEventListener("error",this[h0].error),typeof t=="function"?(this[h0].error=t,this.addEventListener("error",t)):this[h0].error=null}get onloadstart(){return ib.brandCheck(this,e),this[h0].loadstart}set onloadstart(t){ib.brandCheck(this,e),this[h0].loadstart&&this.removeEventListener("loadstart",this[h0].loadstart),typeof t=="function"?(this[h0].loadstart=t,this.addEventListener("loadstart",t)):this[h0].loadstart=null}get onprogress(){return ib.brandCheck(this,e),this[h0].progress}set onprogress(t){ib.brandCheck(this,e),this[h0].progress&&this.removeEventListener("progress",this[h0].progress),typeof t=="function"?(this[h0].progress=t,this.addEventListener("progress",t)):this[h0].progress=null}get onload(){return ib.brandCheck(this,e),this[h0].load}set onload(t){ib.brandCheck(this,e),this[h0].load&&this.removeEventListener("load",this[h0].load),typeof t=="function"?(this[h0].load=t,this.addEventListener("load",t)):this[h0].load=null}get onabort(){return ib.brandCheck(this,e),this[h0].abort}set onabort(t){ib.brandCheck(this,e),this[h0].abort&&this.removeEventListener("abort",this[h0].abort),typeof t=="function"?(this[h0].abort=t,this.addEventListener("abort",t)):this[h0].abort=null}};PX.EMPTY=PX.prototype.EMPTY=0;PX.LOADING=PX.prototype.LOADING=1;PX.DONE=PX.prototype.DONE=2;Object.defineProperties(PX.prototype,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe,readAsArrayBuffer:nV,readAsBinaryString:nV,readAsText:nV,readAsDataURL:nV,abort:nV,readyState:nV,result:nV,error:nV,onloadstart:nV,onprogress:nV,onload:nV,onabort:nV,onerror:nV,onloadend:nV,[Symbol.toStringTag]:{value:"FileReader",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(PX,{EMPTY:Qwe,LOADING:Qwe,DONE:Qwe});Aei.exports={FileReader:PX}});var pmt=H((oau,pei)=>{"use strict";pei.exports={kConstruct:B2().kConstruct}});var hei=H((aau,Iei)=>{"use strict";var Iha=wt("node:assert"),{URLSerializer:fei}=eV(),{isValidHeaderName:hha}=qW();function mha(e,t,r=!1){let n=fei(e,r),a=fei(t,r);return n===a}function Cha(e){Iha(e!==null);let t=[];for(let r of e.split(","))r=r.trim(),hha(r)&&t.push(r);return t}Iei.exports={urlEquals:mha,getFieldValues:Cha}});var _ei=H((cau,Cei)=>{"use strict";var{kConstruct:_ha}=pmt(),{urlEquals:yha,getFieldValues:Ybr}=hei(),{kEnumerableProperty:_he,isDisturbed:bha}=Em(),{webidl:Bp}=kk(),{Response:Eha,cloneResponse:Sha,fromInnerResponse:vha}=WYe(),{Request:J$,fromInnerRequest:Bha}=Hwe(),{kState:WX}=nae(),{fetching:wha}=MYe(),{urlIsHttpHttpsScheme:fmt,createDeferredPromise:Xwe,readAllBytes:Tha}=qW(),Qbr=wt("node:assert"),Imt=class e{#e;constructor(){arguments[0]!==_ha&&Bp.illegalConstructor(),this.#e=arguments[1]}async match(t,r={}){Bp.brandCheck(this,e);let n="Cache.match";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=this.#i(t,r,1);if(a.length!==0)return a[0]}async matchAll(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.matchAll";return t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options"),this.#i(t,r)}async add(t){Bp.brandCheck(this,e);let r="Cache.add";Bp.argumentLengthCheck(arguments,1,r),t=Bp.converters.RequestInfo(t,r,"request");let n=[t];return await this.addAll(n)}async addAll(t){Bp.brandCheck(this,e);let r="Cache.addAll";Bp.argumentLengthCheck(arguments,1,r);let n=[],a=[];for(let E of t){if(E===void 0)throw Bp.errors.conversionFailed({prefix:r,argument:"Argument 1",types:["undefined is not allowed"]});if(E=Bp.converters.RequestInfo(E),typeof E=="string")continue;let N=E[WX];if(!fmt(N.url)||N.method!=="GET")throw Bp.errors.exception({header:r,message:"Expected http/s scheme when method is not GET."})}let o=[];for(let E of t){let N=new J$(E)[WX];if(!fmt(N.url))throw Bp.errors.exception({header:r,message:"Expected http/s scheme."});N.initiator="fetch",N.destination="subresource",a.push(N);let B=Xwe();o.push(wha({request:N,processResponse(F){if(F.type==="error"||F.status===206||F.status<200||F.status>299)B.reject(Bp.errors.exception({header:"Cache.addAll",message:"Received an invalid status code or the request failed."}));else if(F.headersList.contains("vary")){let Q=Ybr(F.headersList.get("vary"));for(let X of Q)if(X==="*"){B.reject(Bp.errors.exception({header:"Cache.addAll",message:"invalid vary field value"}));for(let ae of o)ae.abort();return}}},processResponseEndOfBody(F){if(F.aborted){B.reject(new DOMException("aborted","AbortError"));return}B.resolve(F)}})),n.push(B.promise)}let A=await Promise.all(n),f=[],I=0;for(let E of A){let N={type:"put",request:a[I],response:E};f.push(N),I++}let C=Xwe(),b=null;try{this.#t(f)}catch(E){b=E}return queueMicrotask(()=>{b===null?C.resolve(void 0):C.reject(b)}),C.promise}async put(t,r){Bp.brandCheck(this,e);let n="Cache.put";Bp.argumentLengthCheck(arguments,2,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.Response(r,n,"response");let a=null;if(t instanceof J$?a=t[WX]:a=new J$(t)[WX],!fmt(a.url)||a.method!=="GET")throw Bp.errors.exception({header:n,message:"Expected an http/s scheme when method is not GET"});let o=r[WX];if(o.status===206)throw Bp.errors.exception({header:n,message:"Got 206 status"});if(o.headersList.contains("vary")){let N=Ybr(o.headersList.get("vary"));for(let B of N)if(B==="*")throw Bp.errors.exception({header:n,message:"Got * vary field value"})}if(o.body&&(bha(o.body.stream)||o.body.stream.locked))throw Bp.errors.exception({header:n,message:"Response body is locked or disturbed"});let l=Sha(o),A=Xwe();if(o.body!=null){let B=o.body.stream.getReader();Tha(B).then(A.resolve,A.reject)}else A.resolve(void 0);let f=[],I={type:"put",request:a,response:l};f.push(I);let C=await A.promise;l.body!=null&&(l.body.source=C);let b=Xwe(),E=null;try{this.#t(f)}catch(N){E=N}return queueMicrotask(()=>{E===null?b.resolve():b.reject(E)}),b.promise}async delete(t,r={}){Bp.brandCheck(this,e);let n="Cache.delete";Bp.argumentLengthCheck(arguments,1,n),t=Bp.converters.RequestInfo(t,n,"request"),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return!1}else Qbr(typeof t=="string"),a=new J$(t)[WX];let o=[],l={type:"delete",request:a,options:r};o.push(l);let A=Xwe(),f=null,I;try{I=this.#t(o)}catch(C){f=C}return queueMicrotask(()=>{f===null?A.resolve(!!I?.length):A.reject(f)}),A.promise}async keys(t=void 0,r={}){Bp.brandCheck(this,e);let n="Cache.keys";t!==void 0&&(t=Bp.converters.RequestInfo(t,n,"request")),r=Bp.converters.CacheQueryOptions(r,n,"options");let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=Xwe(),l=[];if(t===void 0)for(let A of this.#e)l.push(A[0]);else{let A=this.#n(a,r);for(let f of A)l.push(f[0])}return queueMicrotask(()=>{let A=[];for(let f of l){let I=Bha(f,new AbortController().signal,"immutable");A.push(I)}o.resolve(Object.freeze(A))}),o.promise}#t(t){let r=this.#e,n=[...r],a=[],o=[];try{for(let l of t){if(l.type!=="delete"&&l.type!=="put")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:'operation type does not match "delete" or "put"'});if(l.type==="delete"&&l.response!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"delete operation should not have an associated response"});if(this.#n(l.request,l.options,a).length)throw new DOMException("???","InvalidStateError");let A;if(l.type==="delete"){if(A=this.#n(l.request,l.options),A.length===0)return[];for(let f of A){let I=r.indexOf(f);Qbr(I!==-1),r.splice(I,1)}}else if(l.type==="put"){if(l.response==null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"put operation should have an associated response"});let f=l.request;if(!fmt(f.url))throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"expected http or https scheme"});if(f.method!=="GET")throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"not get method"});if(l.options!=null)throw Bp.errors.exception({header:"Cache.#batchCacheOperations",message:"options must not be defined"});A=this.#n(l.request);for(let I of A){let C=r.indexOf(I);Qbr(C!==-1),r.splice(C,1)}r.push([l.request,l.response]),a.push([l.request,l.response])}o.push([l.request,l.response])}return o}catch(l){throw this.#e.length=0,this.#e=n,l}}#n(t,r,n){let a=[],o=n??this.#e;for(let l of o){let[A,f]=l;this.#r(t,A,f,r)&&a.push(l)}return a}#r(t,r,n=null,a){let o=new URL(t.url),l=new URL(r.url);if(a?.ignoreSearch&&(l.search="",o.search=""),!yha(o,l,!0))return!1;if(n==null||a?.ignoreVary||!n.headersList.contains("vary"))return!0;let A=Ybr(n.headersList.get("vary"));for(let f of A){if(f==="*")return!1;let I=r.headersList.get(f),C=t.headersList.get(f);if(I!==C)return!1}return!0}#i(t,r,n=1/0){let a=null;if(t!==void 0)if(t instanceof J$){if(a=t[WX],a.method!=="GET"&&!r.ignoreMethod)return[]}else typeof t=="string"&&(a=new J$(t)[WX]);let o=[];if(t===void 0)for(let A of this.#e)o.push(A[1]);else{let A=this.#n(a,r);for(let f of A)o.push(f[1])}let l=[];for(let A of o){let f=vha(A,"immutable");if(l.push(f.clone()),l.length>=n)break}return Object.freeze(l)}};Object.defineProperties(Imt.prototype,{[Symbol.toStringTag]:{value:"Cache",configurable:!0},match:_he,matchAll:_he,add:_he,addAll:_he,put:_he,delete:_he,keys:_he});var mei=[{key:"ignoreSearch",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreMethod",converter:Bp.converters.boolean,defaultValue:()=>!1},{key:"ignoreVary",converter:Bp.converters.boolean,defaultValue:()=>!1}];Bp.converters.CacheQueryOptions=Bp.dictionaryConverter(mei);Bp.converters.MultiCacheQueryOptions=Bp.dictionaryConverter([...mei,{key:"cacheName",converter:Bp.converters.DOMString}]);Bp.converters.Response=Bp.interfaceConverter(Eha);Bp.converters["sequence"]=Bp.sequenceConverter(Bp.converters.RequestInfo);Cei.exports={Cache:Imt}});var bei=H((lau,yei)=>{"use strict";var{kConstruct:YYe}=pmt(),{Cache:hmt}=_ei(),{webidl:MZ}=kk(),{kEnumerableProperty:QYe}=Em(),mmt=class e{#e=new Map;constructor(){arguments[0]!==YYe&&MZ.illegalConstructor()}async match(t,r={}){if(MZ.brandCheck(this,e),MZ.argumentLengthCheck(arguments,1,"CacheStorage.match"),t=MZ.converters.RequestInfo(t),r=MZ.converters.MultiCacheQueryOptions(r),r.cacheName!=null){if(this.#e.has(r.cacheName)){let n=this.#e.get(r.cacheName);return await new hmt(YYe,n).match(t,r)}}else for(let n of this.#e.values()){let o=await new hmt(YYe,n).match(t,r);if(o!==void 0)return o}}async has(t){MZ.brandCheck(this,e);let r="CacheStorage.has";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)}async open(t){MZ.brandCheck(this,e);let r="CacheStorage.open";if(MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.has(t)){let a=this.#e.get(t);return new hmt(YYe,a)}let n=[];return this.#e.set(t,n),new hmt(YYe,n)}async delete(t){MZ.brandCheck(this,e);let r="CacheStorage.delete";return MZ.argumentLengthCheck(arguments,1,r),t=MZ.converters.DOMString(t,r,"cacheName"),this.#e.delete(t)}async keys(){return MZ.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(mmt.prototype,{[Symbol.toStringTag]:{value:"CacheStorage",configurable:!0},match:QYe,has:QYe,open:QYe,delete:QYe,keys:QYe});yei.exports={CacheStorage:mmt}});var Sei=H((uau,Eei)=>{"use strict";Eei.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}});var Xbr=H((gau,Rei)=>{"use strict";function Rha(e){for(let t=0;t=0&&r<=8||r>=10&&r<=31||r===127)return!0}return!1}function vei(e){for(let t=0;t126||r===34||r===40||r===41||r===60||r===62||r===64||r===44||r===59||r===58||r===92||r===47||r===91||r===93||r===63||r===61||r===123||r===125)throw new Error("Invalid cookie name")}}function Bei(e){let t=e.length,r=0;if(e[0]==='"'){if(t===1||e[t-1]!=='"')throw new Error("Invalid cookie value");--t,++r}for(;r126||n===34||n===44||n===59||n===92)throw new Error("Invalid cookie value")}}function wei(e){for(let t=0;tt.toString().padStart(2,"0"));function Tei(e){return typeof e=="number"&&(e=new Date(e)),`${Dha[e.getUTCDay()]}, ${Cmt[e.getUTCDate()]} ${kha[e.getUTCMonth()]} ${e.getUTCFullYear()} ${Cmt[e.getUTCHours()]}:${Cmt[e.getUTCMinutes()]}:${Cmt[e.getUTCSeconds()]} GMT`}function xha(e){if(e<0)throw new Error("Invalid cookie max-age")}function Gha(e){if(e.name.length===0)return null;vei(e.name),Bei(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith("__Secure-")&&(e.secure=!0),e.name.startsWith("__Host-")&&(e.secure=!0,e.domain=null,e.path="/"),e.secure&&t.push("Secure"),e.httpOnly&&t.push("HttpOnly"),typeof e.maxAge=="number"&&(xha(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(Nha(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(wei(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!=="Invalid Date"&&t.push(`Expires=${Tei(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let r of e.unparsed){if(!r.includes("="))throw new Error("Invalid unparsed");let[n,...a]=r.split("=");t.push(`${n.trim()}=${a.join("=")}`)}return t.join("; ")}Rei.exports={isCTLExcludingHtab:Rha,validateCookieName:vei,validateCookiePath:wei,validateCookieValue:Bei,toIMFDate:Tei,stringify:Gha}});var Dei=H((Aau,Nei)=>{"use strict";var{maxNameValuePairSize:Fha,maxAttributeValueSize:Zha}=Sei(),{isCTLExcludingHtab:Lha}=Xbr(),{collectASequenceOfCodePointsFast:_mt}=eV(),Vha=wt("node:assert");function Pha(e){if(Lha(e))return null;let t="",r="",n="",a="";if(e.includes(";")){let o={position:0};t=_mt(";",e,o),r=e.slice(o.position)}else t=e;if(!t.includes("="))a=t;else{let o={position:0};n=_mt("=",t,o),a=t.slice(o.position+1)}return n=n.trim(),a=a.trim(),n.length+a.length>Fha?null:{name:n,value:a,...Jwe(r)}}function Jwe(e,t={}){if(e.length===0)return t;Vha(e[0]===";"),e=e.slice(1);let r="";e.includes(";")?(r=_mt(";",e,{position:0}),e=e.slice(r.length)):(r=e,e="");let n="",a="";if(r.includes("=")){let l={position:0};n=_mt("=",r,l),a=r.slice(l.position+1)}else n=r;if(n=n.trim(),a=a.trim(),a.length>Zha)return Jwe(e,t);let o=n.toLowerCase();if(o==="expires"){let l=new Date(a);t.expires=l}else if(o==="max-age"){let l=a.charCodeAt(0);if((l<48||l>57)&&a[0]!=="-"||!/^\d+$/.test(a))return Jwe(e,t);let A=Number(a);t.maxAge=A}else if(o==="domain"){let l=a;l[0]==="."&&(l=l.slice(1)),l=l.toLowerCase(),t.domain=l}else if(o==="path"){let l="";a.length===0||a[0]!=="/"?l="/":l=a,t.path=l}else if(o==="secure")t.secure=!0;else if(o==="httponly")t.httpOnly=!0;else if(o==="samesite"){let l="Default",A=a.toLowerCase();A.includes("none")&&(l="None"),A.includes("strict")&&(l="Strict"),A.includes("lax")&&(l="Lax"),t.sameSite=l}else t.unparsed??=[],t.unparsed.push(`${n}=${a}`);return Jwe(e,t)}Nei.exports={parseSetCookie:Pha,parseUnparsedAttributes:Jwe}});var Gei=H((dau,xei)=>{"use strict";var{parseSetCookie:Wha}=Dei(),{stringify:Oha}=Xbr(),{webidl:nC}=kk(),{Headers:ymt}=fhe();function Mha(e){nC.argumentLengthCheck(arguments,1,"getCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.get("cookie"),r={};if(!t)return r;for(let n of t.split(";")){let[a,...o]=n.split("=");r[a.trim()]=o.join("=")}return r}function Hha(e,t,r){nC.brandCheck(e,ymt,{strict:!1});let n="deleteCookie";nC.argumentLengthCheck(arguments,2,n),t=nC.converters.DOMString(t,n,"name"),r=nC.converters.DeleteCookieAttributes(r),kei(e,{name:t,value:"",expires:new Date(0),...r})}function Yha(e){nC.argumentLengthCheck(arguments,1,"getSetCookies"),nC.brandCheck(e,ymt,{strict:!1});let t=e.getSetCookie();return t?t.map(r=>Wha(r)):[]}function kei(e,t){nC.argumentLengthCheck(arguments,2,"setCookie"),nC.brandCheck(e,ymt,{strict:!1}),t=nC.converters.Cookie(t);let r=Oha(t);r&&e.append("Set-Cookie",r)}nC.converters.DeleteCookieAttributes=nC.dictionaryConverter([{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null}]);nC.converters.Cookie=nC.dictionaryConverter([{converter:nC.converters.DOMString,key:"name"},{converter:nC.converters.DOMString,key:"value"},{converter:nC.nullableConverter(e=>typeof e=="number"?nC.converters["unsigned long long"](e):new Date(e)),key:"expires",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters["long long"]),key:"maxAge",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"domain",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.DOMString),key:"path",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"secure",defaultValue:()=>null},{converter:nC.nullableConverter(nC.converters.boolean),key:"httpOnly",defaultValue:()=>null},{converter:nC.converters.USVString,key:"sameSite",allowedValues:["Strict","Lax","None"]},{converter:nC.sequenceConverter(nC.converters.DOMString),key:"unparsed",defaultValue:()=>new Array(0)}]);xei.exports={getCookies:Mha,deleteCookie:Hha,getSetCookies:Yha,setCookie:kei}});var Kwe=H((pau,Zei)=>{"use strict";var{webidl:Wp}=kk(),{kEnumerableProperty:iV}=Em(),{kConstruct:Fei}=B2(),{MessagePort:Qha}=wt("node:worker_threads"),Uwe=class e extends Event{#e;constructor(t,r={}){if(t===Fei){super(arguments[1],arguments[2]);return}let n="MessageEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.MessageEventInit(r,n,"eventInitDict"),super(t,r),this.#e=r}get data(){return Wp.brandCheck(this,e),this.#e.data}get origin(){return Wp.brandCheck(this,e),this.#e.origin}get lastEventId(){return Wp.brandCheck(this,e),this.#e.lastEventId}get source(){return Wp.brandCheck(this,e),this.#e.source}get ports(){return Wp.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,n=!1,a=null,o="",l="",A=null,f=[]){return Wp.brandCheck(this,e),Wp.argumentLengthCheck(arguments,1,"MessageEvent.initMessageEvent"),new e(t,{bubbles:r,cancelable:n,data:a,origin:o,lastEventId:l,source:A,ports:f})}static createFastMessageEvent(t,r){let n=new e(Fei,t,r);return n.#e=r,n.#e.data??=null,n.#e.origin??="",n.#e.lastEventId??="",n.#e.source??=null,n.#e.ports??=[],n}},{createFastMessageEvent:Xha}=Uwe;delete Uwe.createFastMessageEvent;var bmt=class e extends Event{#e;constructor(t,r={}){let n="CloseEvent constructor";Wp.argumentLengthCheck(arguments,1,n),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.CloseEventInit(r),super(t,r),this.#e=r}get wasClean(){return Wp.brandCheck(this,e),this.#e.wasClean}get code(){return Wp.brandCheck(this,e),this.#e.code}get reason(){return Wp.brandCheck(this,e),this.#e.reason}},Emt=class e extends Event{#e;constructor(t,r){let n="ErrorEvent constructor";Wp.argumentLengthCheck(arguments,1,n),super(t,r),t=Wp.converters.DOMString(t,n,"type"),r=Wp.converters.ErrorEventInit(r??{}),this.#e=r}get message(){return Wp.brandCheck(this,e),this.#e.message}get filename(){return Wp.brandCheck(this,e),this.#e.filename}get lineno(){return Wp.brandCheck(this,e),this.#e.lineno}get colno(){return Wp.brandCheck(this,e),this.#e.colno}get error(){return Wp.brandCheck(this,e),this.#e.error}};Object.defineProperties(Uwe.prototype,{[Symbol.toStringTag]:{value:"MessageEvent",configurable:!0},data:iV,origin:iV,lastEventId:iV,source:iV,ports:iV,initMessageEvent:iV});Object.defineProperties(bmt.prototype,{[Symbol.toStringTag]:{value:"CloseEvent",configurable:!0},reason:iV,code:iV,wasClean:iV});Object.defineProperties(Emt.prototype,{[Symbol.toStringTag]:{value:"ErrorEvent",configurable:!0},message:iV,filename:iV,lineno:iV,colno:iV,error:iV});Wp.converters.MessagePort=Wp.interfaceConverter(Qha);Wp.converters["sequence"]=Wp.sequenceConverter(Wp.converters.MessagePort);var Jbr=[{key:"bubbles",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"cancelable",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"composed",converter:Wp.converters.boolean,defaultValue:()=>!1}];Wp.converters.MessageEventInit=Wp.dictionaryConverter([...Jbr,{key:"data",converter:Wp.converters.any,defaultValue:()=>null},{key:"origin",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lastEventId",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"source",converter:Wp.nullableConverter(Wp.converters.MessagePort),defaultValue:()=>null},{key:"ports",converter:Wp.converters["sequence"],defaultValue:()=>new Array(0)}]);Wp.converters.CloseEventInit=Wp.dictionaryConverter([...Jbr,{key:"wasClean",converter:Wp.converters.boolean,defaultValue:()=>!1},{key:"code",converter:Wp.converters["unsigned short"],defaultValue:()=>0},{key:"reason",converter:Wp.converters.USVString,defaultValue:()=>""}]);Wp.converters.ErrorEventInit=Wp.dictionaryConverter([...Jbr,{key:"message",converter:Wp.converters.DOMString,defaultValue:()=>""},{key:"filename",converter:Wp.converters.USVString,defaultValue:()=>""},{key:"lineno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"colno",converter:Wp.converters["unsigned long"],defaultValue:()=>0},{key:"error",converter:Wp.converters.any}]);Zei.exports={MessageEvent:Uwe,CloseEvent:bmt,ErrorEvent:Emt,createFastMessageEvent:Xha}});var yhe=H((fau,Lei)=>{"use strict";var Jha="258EAFA5-E914-47DA-95CA-C5AB0DC85B11",Uha={enumerable:!0,writable:!1,configurable:!1},Kha={CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},jha={NOT_SENT:0,PROCESSING:1,SENT:2},zha={CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},qha=2**16-1,$ha={INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},ema=Buffer.allocUnsafe(0),tma={string:1,typedArray:2,arrayBuffer:3,blob:4};Lei.exports={uid:Jha,sentCloseFrameState:jha,staticPropertyDescriptors:Uha,states:Kha,opcodes:zha,maxUnsigned16Bit:qha,parserStates:$ha,emptyBuffer:ema,sendHints:tma}});var XYe=H((Iau,Vei)=>{"use strict";Vei.exports={kWebSocketURL:Symbol("url"),kReadyState:Symbol("ready state"),kController:Symbol("controller"),kResponse:Symbol("response"),kBinaryType:Symbol("binary type"),kSentClose:Symbol("sent close"),kReceivedClose:Symbol("received close"),kByteParser:Symbol("byte parser")}});var KYe=H((hau,Jei)=>{"use strict";var{kReadyState:JYe,kController:rma,kResponse:nma,kBinaryType:ima,kWebSocketURL:sma}=XYe(),{states:UYe,opcodes:Iae}=yhe(),{ErrorEvent:oma,createFastMessageEvent:ama}=Kwe(),{isUtf8:cma}=wt("node:buffer"),{collectASequenceOfCodePointsFast:lma,removeHTTPWhitespace:Pei}=eV();function uma(e){return e[JYe]===UYe.CONNECTING}function gma(e){return e[JYe]===UYe.OPEN}function Ama(e){return e[JYe]===UYe.CLOSING}function dma(e){return e[JYe]===UYe.CLOSED}function Ubr(e,t,r=(a,o)=>new Event(a,o),n={}){let a=r(e,n);t.dispatchEvent(a)}function pma(e,t,r){if(e[JYe]!==UYe.OPEN)return;let n;if(t===Iae.TEXT)try{n=Xei(r)}catch{Oei(e,"Received invalid UTF-8 in text frame.");return}else t===Iae.BINARY&&(e[ima]==="blob"?n=new Blob([r]):n=fma(r));Ubr("message",e,ama,{origin:e[sma].origin,data:n})}function fma(e){return e.byteLength===e.buffer.byteLength?e.buffer:e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function Ima(e){if(e.length===0)return!1;for(let t=0;t126||r===34||r===40||r===41||r===44||r===47||r===58||r===59||r===60||r===61||r===62||r===63||r===64||r===91||r===92||r===93||r===123||r===125)return!1}return!0}function hma(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function Oei(e,t){let{[rma]:r,[nma]:n}=e;r.abort(),n?.socket&&!n.socket.destroyed&&n.socket.destroy(),t&&Ubr("error",e,(a,o)=>new oma(a,o),{error:new Error(t),message:t})}function Mei(e){return e===Iae.CLOSE||e===Iae.PING||e===Iae.PONG}function Hei(e){return e===Iae.CONTINUATION}function Yei(e){return e===Iae.TEXT||e===Iae.BINARY}function mma(e){return Yei(e)||Hei(e)||Mei(e)}function Cma(e){let t={position:0},r=new Map;for(;t.position57)return!1}return!0}var Qei=typeof process.versions.icu=="string",Wei=Qei?new TextDecoder("utf-8",{fatal:!0}):void 0,Xei=Qei?Wei.decode.bind(Wei):function(e){if(cma(e))return e.toString("utf-8");throw new TypeError("Invalid utf-8 received.")};Jei.exports={isConnecting:uma,isEstablished:gma,isClosing:Ama,isClosed:dma,fireEvent:Ubr,isValidSubprotocol:Ima,isValidStatusCode:hma,failWebsocketConnection:Oei,websocketMessageReceived:pma,utf8Decode:Xei,isControlFrame:Mei,isContinuationFrame:Hei,isTextBinaryFrame:Yei,isValidOpcode:mma,parseExtensions:Cma,isValidClientWindowBits:_ma}});var vmt=H((mau,Uei)=>{"use strict";var{maxUnsigned16Bit:yma}=yhe(),Smt=16386,Kbr,jYe=null,jwe=Smt;try{Kbr=wt("node:crypto")}catch{Kbr={randomFillSync:function(t,r,n){for(let a=0;ayma?(l+=8,o=127):a>125&&(l+=2,o=126);let A=Buffer.allocUnsafe(a+l);A[0]=A[1]=0,A[0]|=128,A[0]=(A[0]&240)+t;A[l-4]=n[0],A[l-3]=n[1],A[l-2]=n[2],A[l-1]=n[3],A[1]=o,o===126?A.writeUInt16BE(a,2):o===127&&(A[2]=A[3]=0,A.writeUIntBE(a,4,6)),A[1]|=128;for(let f=0;f{"use strict";var{uid:Ema,states:zYe,sentCloseFrameState:Bmt,emptyBuffer:Sma,opcodes:vma}=yhe(),{kReadyState:qYe,kSentClose:wmt,kByteParser:jei,kReceivedClose:Kei,kResponse:zei}=XYe(),{fireEvent:Bma,failWebsocketConnection:hae,isClosing:wma,isClosed:Tma,isEstablished:Rma,parseExtensions:Nma}=KYe(),{channels:zwe}=Awe(),{CloseEvent:Dma}=Kwe(),{makeRequest:kma}=Hwe(),{fetching:xma}=MYe(),{Headers:Gma,getHeadersList:Fma}=fhe(),{getDecodeSplit:Zma}=qW(),{WebsocketFrameSend:Lma}=vmt(),zbr;try{zbr=wt("node:crypto")}catch{}function Vma(e,t,r,n,a,o){let l=e;l.protocol=e.protocol==="ws:"?"http:":"https:";let A=kma({urlList:[l],client:r,serviceWorkers:"none",referrer:"no-referrer",mode:"websocket",credentials:"include",cache:"no-store",redirect:"error"});if(o.headers){let b=Fma(new Gma(o.headers));A.headersList=b}let f=zbr.randomBytes(16).toString("base64");A.headersList.append("sec-websocket-key",f),A.headersList.append("sec-websocket-version","13");for(let b of t)A.headersList.append("sec-websocket-protocol",b);return A.headersList.append("sec-websocket-extensions","permessage-deflate; client_max_window_bits"),xma({request:A,useParallelQueue:!0,dispatcher:o.dispatcher,processResponse(b){if(b.type==="error"||b.status!==101){hae(n,"Received network error or non-101 status code.");return}if(t.length!==0&&!b.headersList.get("Sec-WebSocket-Protocol")){hae(n,"Server did not respond with sent protocols.");return}if(b.headersList.get("Upgrade")?.toLowerCase()!=="websocket"){hae(n,'Server did not set Upgrade header to "websocket".');return}if(b.headersList.get("Connection")?.toLowerCase()!=="upgrade"){hae(n,'Server did not set Connection header to "upgrade".');return}let E=b.headersList.get("Sec-WebSocket-Accept"),N=zbr.createHash("sha1").update(f+Ema).digest("base64");if(E!==N){hae(n,"Incorrect hash received in Sec-WebSocket-Accept header.");return}let B=b.headersList.get("Sec-WebSocket-Extensions"),F;if(B!==null&&(F=Nma(B),!F.has("permessage-deflate"))){hae(n,"Sec-WebSocket-Extensions header does not match.");return}let Q=b.headersList.get("Sec-WebSocket-Protocol");if(Q!==null&&!Zma("sec-websocket-protocol",A.headersList).includes(Q)){hae(n,"Protocol was not set in the opening handshake.");return}b.socket.on("data",qei),b.socket.on("close",$ei),b.socket.on("error",eti),zwe.open.hasSubscribers&&zwe.open.publish({address:b.socket.address(),protocol:Q,extensions:B}),a(b,F)}})}function Pma(e,t,r,n){if(!(wma(e)||Tma(e)))if(!Rma(e))hae(e,"Connection was closed before it was established."),e[qYe]=zYe.CLOSING;else if(e[wmt]===Bmt.NOT_SENT){e[wmt]=Bmt.PROCESSING;let a=new Lma;t!==void 0&&r===void 0?(a.frameData=Buffer.allocUnsafe(2),a.frameData.writeUInt16BE(t,0)):t!==void 0&&r!==void 0?(a.frameData=Buffer.allocUnsafe(2+n),a.frameData.writeUInt16BE(t,0),a.frameData.write(r,2,"utf-8")):a.frameData=Sma,e[zei].socket.write(a.createFrame(vma.CLOSE)),e[wmt]=Bmt.SENT,e[qYe]=zYe.CLOSING}else e[qYe]=zYe.CLOSING}function qei(e){this.ws[jei].write(e)||this.pause()}function $ei(){let{ws:e}=this,{[zei]:t}=e;t.socket.off("data",qei),t.socket.off("close",$ei),t.socket.off("error",eti);let r=e[wmt]===Bmt.SENT&&e[Kei],n=1005,a="",o=e[jei].closingInfo;o&&!o.error?(n=o.code??1005,a=o.reason):e[Kei]||(n=1006),e[qYe]=zYe.CLOSED,Bma("close",e,(l,A)=>new Dma(l,A),{wasClean:r,code:n,reason:a}),zwe.close.hasSubscribers&&zwe.close.publish({websocket:e,code:n,reason:a})}function eti(e){let{ws:t}=this;t[qYe]=zYe.CLOSING,zwe.socketError.hasSubscribers&&zwe.socketError.publish(e),this.destroy()}tti.exports={establishWebSocketConnection:Vma,closeWebSocketConnection:Pma}});var nti=H((_au,rti)=>{"use strict";var{createInflateRaw:Wma,Z_DEFAULT_WINDOWBITS:Oma}=wt("node:zlib"),{isValidClientWindowBits:Mma}=KYe(),Hma=Buffer.from([0,0,255,255]),Tmt=Symbol("kBuffer"),Rmt=Symbol("kLength"),$br=class{#e;#t={};constructor(t){this.#t.serverNoContextTakeover=t.has("server_no_context_takeover"),this.#t.serverMaxWindowBits=t.get("server_max_window_bits")}decompress(t,r,n){if(!this.#e){let a=Oma;if(this.#t.serverMaxWindowBits){if(!Mma(this.#t.serverMaxWindowBits)){n(new Error("Invalid server_max_window_bits"));return}a=Number.parseInt(this.#t.serverMaxWindowBits)}this.#e=Wma({windowBits:a}),this.#e[Tmt]=[],this.#e[Rmt]=0,this.#e.on("data",o=>{this.#e[Tmt].push(o),this.#e[Rmt]+=o.length}),this.#e.on("error",o=>{this.#e=null,n(o)})}this.#e.write(t),r&&this.#e.write(Hma),this.#e.flush(()=>{let a=Buffer.concat(this.#e[Tmt],this.#e[Rmt]);this.#e[Tmt].length=0,this.#e[Rmt]=0,n(null,a)})}};rti.exports={PerMessageDeflate:$br}});var pti=H((yau,dti)=>{"use strict";var{Writable:Yma}=wt("node:stream"),Qma=wt("node:assert"),{parserStates:sV,opcodes:qwe,states:Xma,emptyBuffer:iti,sentCloseFrameState:sti}=yhe(),{kReadyState:Jma,kSentClose:oti,kResponse:ati,kReceivedClose:cti}=XYe(),{channels:Nmt}=Awe(),{isValidStatusCode:Uma,isValidOpcode:Kma,failWebsocketConnection:LM,websocketMessageReceived:lti,utf8Decode:jma,isControlFrame:uti,isTextBinaryFrame:eEr,isContinuationFrame:zma}=KYe(),{WebsocketFrameSend:gti}=vmt(),{closeWebSocketConnection:Ati}=qbr(),{PerMessageDeflate:qma}=nti(),tEr=class extends Yma{#e=[];#t=0;#n=!1;#r=sV.INFO;#i={};#s=[];#o;constructor(t,r){super(),this.ws=t,this.#o=r??new Map,this.#o.has("permessage-deflate")&&this.#o.set("permessage-deflate",new qma(r))}_write(t,r,n){this.#e.push(t),this.#t+=t.length,this.#n=!0,this.run(n)}run(t){for(;this.#n;)if(this.#r===sV.INFO){if(this.#t<2)return t();let r=this.consume(2),n=(r[0]&128)!==0,a=r[0]&15,o=(r[1]&128)===128,l=!n&&a!==qwe.CONTINUATION,A=r[1]&127,f=r[0]&64,I=r[0]&32,C=r[0]&16;if(!Kma(a))return LM(this.ws,"Invalid opcode received"),t();if(o)return LM(this.ws,"Frame cannot be masked"),t();if(f!==0&&!this.#o.has("permessage-deflate")){LM(this.ws,"Expected RSV1 to be clear.");return}if(I!==0||C!==0){LM(this.ws,"RSV1, RSV2, RSV3 must be clear");return}if(l&&!eEr(a)){LM(this.ws,"Invalid frame type was fragmented.");return}if(eEr(a)&&this.#s.length>0){LM(this.ws,"Expected continuation frame");return}if(this.#i.fragmented&&l){LM(this.ws,"Fragmented frame exceeded 125 bytes.");return}if((A>125||l)&&uti(a)){LM(this.ws,"Control frame either too large or fragmented");return}if(zma(a)&&this.#s.length===0&&!this.#i.compressed){LM(this.ws,"Unexpected continuation frame");return}A<=125?(this.#i.payloadLength=A,this.#r=sV.READ_DATA):A===126?this.#r=sV.PAYLOADLENGTH_16:A===127&&(this.#r=sV.PAYLOADLENGTH_64),eEr(a)&&(this.#i.binaryType=a,this.#i.compressed=f!==0),this.#i.opcode=a,this.#i.masked=o,this.#i.fin=n,this.#i.fragmented=l}else if(this.#r===sV.PAYLOADLENGTH_16){if(this.#t<2)return t();let r=this.consume(2);this.#i.payloadLength=r.readUInt16BE(0),this.#r=sV.READ_DATA}else if(this.#r===sV.PAYLOADLENGTH_64){if(this.#t<8)return t();let r=this.consume(8),n=r.readUInt32BE(0);if(n>2**31-1){LM(this.ws,"Received payload length > 2^31 bytes.");return}let a=r.readUInt32BE(4);this.#i.payloadLength=(n<<8)+a,this.#r=sV.READ_DATA}else if(this.#r===sV.READ_DATA){if(this.#t{if(n){Ati(this.ws,1007,n.message,n.message.length);return}if(this.#s.push(a),!this.#i.fin){this.#r=sV.INFO,this.#n=!0,this.run(t);return}lti(this.ws,this.#i.binaryType,Buffer.concat(this.#s)),this.#n=!0,this.#r=sV.INFO,this.#s.length=0,this.run(t)}),this.#n=!1;break}else{if(this.#s.push(r),!this.#i.fragmented&&this.#i.fin){let n=Buffer.concat(this.#s);lti(this.ws,this.#i.binaryType,n),this.#s.length=0}this.#r=sV.INFO}}}consume(t){if(t>this.#t)throw new Error("Called consume() before buffers satiated.");if(t===0)return iti;if(this.#e[0].length===t)return this.#t-=this.#e[0].length,this.#e.shift();let r=Buffer.allocUnsafe(t),n=0;for(;n!==t;){let a=this.#e[0],{length:o}=a;if(o+n===t){r.set(this.#e.shift(),n);break}else if(o+n>t){r.set(a.subarray(0,t-n),n),this.#e[0]=a.subarray(t-n);break}else r.set(this.#e.shift(),n),n+=a.length}return this.#t-=t,r}parseCloseBody(t){Qma(t.length!==1);let r;if(t.length>=2&&(r=t.readUInt16BE(0)),r!==void 0&&!Uma(r))return{code:1002,reason:"Invalid status code",error:!0};let n=t.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=jma(n)}catch{return{code:1007,reason:"Invalid UTF-8",error:!0}}return{code:r,reason:n,error:!1}}parseControlFrame(t){let{opcode:r,payloadLength:n}=this.#i;if(r===qwe.CLOSE){if(n===1)return LM(this.ws,"Received close frame with a 1-byte body."),!1;if(this.#i.closeInfo=this.parseCloseBody(t),this.#i.closeInfo.error){let{code:a,reason:o}=this.#i.closeInfo;return Ati(this.ws,a,o,o.length),LM(this.ws,o),!1}if(this.ws[oti]!==sti.SENT){let a=iti;this.#i.closeInfo.code&&(a=Buffer.allocUnsafe(2),a.writeUInt16BE(this.#i.closeInfo.code,0));let o=new gti(a);this.ws[ati].socket.write(o.createFrame(qwe.CLOSE),l=>{l||(this.ws[oti]=sti.SENT)})}return this.ws[Jma]=Xma.CLOSING,this.ws[cti]=!0,!1}else if(r===qwe.PING){if(!this.ws[cti]){let a=new gti(t);this.ws[ati].socket.write(a.createFrame(qwe.PONG)),Nmt.ping.hasSubscribers&&Nmt.ping.publish({payload:t})}}else r===qwe.PONG&&Nmt.pong.hasSubscribers&&Nmt.pong.publish({payload:t});return!0}get closingInfo(){return this.#i.closeInfo}};dti.exports={ByteParser:tEr}});var Cti=H((bau,mti)=>{"use strict";var{WebsocketFrameSend:$ma}=vmt(),{opcodes:fti,sendHints:$we}=yhe(),eCa=pyr(),Iti=Buffer[Symbol.species],rEr=class{#e=new eCa;#t=!1;#n;constructor(t){this.#n=t}add(t,r,n){if(n!==$we.blob){let o=hti(t,n);if(!this.#t)this.#n.write(o,r);else{let l={promise:null,callback:r,frame:o};this.#e.push(l)}return}let a={promise:t.arrayBuffer().then(o=>{a.promise=null,a.frame=hti(o,n)}),callback:r,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let t=this.#e;for(;!t.isEmpty();){let r=t.shift();r.promise!==null&&await r.promise,this.#n.write(r.frame,r.callback),r.callback=r.frame=null}this.#t=!1}};function hti(e,t){return new $ma(tCa(e,t)).createFrame(t===$we.string?fti.TEXT:fti.BINARY)}function tCa(e,t){switch(t){case $we.string:return Buffer.from(e);case $we.arrayBuffer:case $we.blob:return new Iti(e);case $we.typedArray:return new Iti(e.buffer,e.byteOffset,e.byteLength)}}mti.exports={SendQueue:rEr}});var Tti=H((Eau,wti)=>{"use strict";var{webidl:aI}=kk(),{URLSerializer:rCa}=eV(),{environmentSettingsObject:_ti}=qW(),{staticPropertyDescriptors:mae,states:$Ye,sentCloseFrameState:nCa,sendHints:Dmt}=yhe(),{kWebSocketURL:yti,kReadyState:nEr,kController:iCa,kBinaryType:kmt,kResponse:bti,kSentClose:sCa,kByteParser:oCa}=XYe(),{isConnecting:aCa,isEstablished:cCa,isClosing:lCa,isValidSubprotocol:uCa,fireEvent:Eti}=KYe(),{establishWebSocketConnection:gCa,closeWebSocketConnection:Sti}=qbr(),{ByteParser:ACa}=pti(),{kEnumerableProperty:VM,isBlobLike:vti}=Em(),{getGlobalDispatcher:dCa}=Jht(),{types:Bti}=wt("node:util"),{ErrorEvent:pCa,CloseEvent:fCa}=Kwe(),{SendQueue:ICa}=Cti(),iO=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n="";#r="";#i;constructor(t,r=[]){super();let n="WebSocket constructor";aI.argumentLengthCheck(arguments,1,n);let a=aI.converters["DOMString or sequence or WebSocketInit"](r,n,"options");t=aI.converters.USVString(t,n,"url"),r=a.protocols;let o=_ti.settingsObject.baseUrl,l;try{l=new URL(t,o)}catch(f){throw new DOMException(f,"SyntaxError")}if(l.protocol==="http:"?l.protocol="ws:":l.protocol==="https:"&&(l.protocol="wss:"),l.protocol!=="ws:"&&l.protocol!=="wss:")throw new DOMException(`Expected a ws: or wss: protocol, got ${l.protocol}`,"SyntaxError");if(l.hash||l.href.endsWith("#"))throw new DOMException("Got fragment","SyntaxError");if(typeof r=="string"&&(r=[r]),r.length!==new Set(r.map(f=>f.toLowerCase())).size)throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");if(r.length>0&&!r.every(f=>uCa(f)))throw new DOMException("Invalid Sec-WebSocket-Protocol value","SyntaxError");this[yti]=new URL(l.href);let A=_ti.settingsObject;this[iCa]=gCa(l,r,A,this,(f,I)=>this.#s(f,I),a),this[nEr]=e.CONNECTING,this[sCa]=nCa.NOT_SENT,this[kmt]="blob"}close(t=void 0,r=void 0){aI.brandCheck(this,e);let n="WebSocket.close";if(t!==void 0&&(t=aI.converters["unsigned short"](t,n,"code",{clamp:!0})),r!==void 0&&(r=aI.converters.USVString(r,n,"reason")),t!==void 0&&t!==1e3&&(t<3e3||t>4999))throw new DOMException("invalid code","InvalidAccessError");let a=0;if(r!==void 0&&(a=Buffer.byteLength(r),a>123))throw new DOMException(`Reason must be less than 123 bytes; received ${a}`,"SyntaxError");Sti(this,t,r,a)}send(t){aI.brandCheck(this,e);let r="WebSocket.send";if(aI.argumentLengthCheck(arguments,1,r),t=aI.converters.WebSocketSendData(t,r,"data"),aCa(this))throw new DOMException("Sent before connected.","InvalidStateError");if(!(!cCa(this)||lCa(this)))if(typeof t=="string"){let n=Buffer.byteLength(t);this.#t+=n,this.#i.add(t,()=>{this.#t-=n},Dmt.string)}else Bti.isArrayBuffer(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#i.add(t,()=>{this.#t-=t.byteLength},Dmt.typedArray)):vti(t)&&(this.#t+=t.size,this.#i.add(t,()=>{this.#t-=t.size},Dmt.blob))}get readyState(){return aI.brandCheck(this,e),this[nEr]}get bufferedAmount(){return aI.brandCheck(this,e),this.#t}get url(){return aI.brandCheck(this,e),rCa(this[yti])}get extensions(){return aI.brandCheck(this,e),this.#r}get protocol(){return aI.brandCheck(this,e),this.#n}get onopen(){return aI.brandCheck(this,e),this.#e.open}set onopen(t){aI.brandCheck(this,e),this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onerror(){return aI.brandCheck(this,e),this.#e.error}set onerror(t){aI.brandCheck(this,e),this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}get onclose(){return aI.brandCheck(this,e),this.#e.close}set onclose(t){aI.brandCheck(this,e),this.#e.close&&this.removeEventListener("close",this.#e.close),typeof t=="function"?(this.#e.close=t,this.addEventListener("close",t)):this.#e.close=null}get onmessage(){return aI.brandCheck(this,e),this.#e.message}set onmessage(t){aI.brandCheck(this,e),this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get binaryType(){return aI.brandCheck(this,e),this[kmt]}set binaryType(t){aI.brandCheck(this,e),t!=="blob"&&t!=="arraybuffer"?this[kmt]="blob":this[kmt]=t}#s(t,r){this[bti]=t;let n=new ACa(this,r);n.on("drain",hCa),n.on("error",mCa.bind(this)),t.socket.ws=this,this[oCa]=n,this.#i=new ICa(t.socket),this[nEr]=$Ye.OPEN;let a=t.headersList.get("sec-websocket-extensions");a!==null&&(this.#r=a);let o=t.headersList.get("sec-websocket-protocol");o!==null&&(this.#n=o),Eti("open",this)}};iO.CONNECTING=iO.prototype.CONNECTING=$Ye.CONNECTING;iO.OPEN=iO.prototype.OPEN=$Ye.OPEN;iO.CLOSING=iO.prototype.CLOSING=$Ye.CLOSING;iO.CLOSED=iO.prototype.CLOSED=$Ye.CLOSED;Object.defineProperties(iO.prototype,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae,url:VM,readyState:VM,bufferedAmount:VM,onopen:VM,onerror:VM,onclose:VM,close:VM,onmessage:VM,binaryType:VM,send:VM,extensions:VM,protocol:VM,[Symbol.toStringTag]:{value:"WebSocket",writable:!1,enumerable:!1,configurable:!0}});Object.defineProperties(iO,{CONNECTING:mae,OPEN:mae,CLOSING:mae,CLOSED:mae});aI.converters["sequence"]=aI.sequenceConverter(aI.converters.DOMString);aI.converters["DOMString or sequence"]=function(e,t,r){return aI.util.Type(e)==="Object"&&Symbol.iterator in e?aI.converters["sequence"](e):aI.converters.DOMString(e,t,r)};aI.converters.WebSocketInit=aI.dictionaryConverter([{key:"protocols",converter:aI.converters["DOMString or sequence"],defaultValue:()=>new Array(0)},{key:"dispatcher",converter:aI.converters.any,defaultValue:()=>dCa()},{key:"headers",converter:aI.nullableConverter(aI.converters.HeadersInit)}]);aI.converters["DOMString or sequence or WebSocketInit"]=function(e){return aI.util.Type(e)==="Object"&&!(Symbol.iterator in e)?aI.converters.WebSocketInit(e):{protocols:aI.converters["DOMString or sequence"](e)}};aI.converters.WebSocketSendData=function(e){if(aI.util.Type(e)==="Object"){if(vti(e))return aI.converters.Blob(e,{strict:!1});if(ArrayBuffer.isView(e)||Bti.isArrayBuffer(e))return aI.converters.BufferSource(e)}return aI.converters.USVString(e)};function hCa(){this.ws[bti].socket.resume()}function mCa(e){let t,r;e instanceof fCa?(t=e.reason,r=e.code):t=e.message,Eti("error",this,()=>new pCa("error",{error:e,message:t})),Sti(this,r)}wti.exports={WebSocket:iO}});var iEr=H((Sau,Rti)=>{"use strict";function CCa(e){return e.indexOf("\0")===-1}function _Ca(e){if(e.length===0)return!1;for(let t=0;t57)return!1;return!0}function yCa(e){return new Promise(t=>{setTimeout(t,e).unref()})}Rti.exports={isValidLastEventId:CCa,isASCIINumber:_Ca,delay:yCa}});var xti=H((vau,kti)=>{"use strict";var{Transform:bCa}=wt("node:stream"),{isASCIINumber:Nti,isValidLastEventId:Dti}=iEr(),U$=[239,187,191],sEr=10,xmt=13,ECa=58,SCa=32,oEr=class extends bCa{state=null;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;buffer=null;pos=0;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(t={}){t.readableObjectMode=!0,super(t),this.state=t.eventSourceSettings||{},t.push&&(this.push=t.push)}_transform(t,r,n){if(t.length===0){n();return}if(this.buffer?this.buffer=Buffer.concat([this.buffer,t]):this.buffer=t,this.checkBOM)switch(this.buffer.length){case 1:if(this.buffer[0]===U$[0]){n();return}this.checkBOM=!1,n();return;case 2:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]){n();return}this.checkBOM=!1;break;case 3:if(this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]){this.buffer=Buffer.alloc(0),this.checkBOM=!1,n();return}this.checkBOM=!1;break;default:this.buffer[0]===U$[0]&&this.buffer[1]===U$[1]&&this.buffer[2]===U$[2]&&(this.buffer=this.buffer.subarray(3)),this.checkBOM=!1;break}for(;this.pos0&&(r[a]=o);break}}processEvent(t){t.retry&&Nti(t.retry)&&(this.state.reconnectionTime=parseInt(t.retry,10)),t.id&&Dti(t.id)&&(this.state.lastEventId=t.id),t.data!==void 0&&this.push({type:t.event||"message",options:{data:t.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event={data:void 0,event:void 0,id:void 0,retry:void 0}}};kti.exports={EventSourceStream:oEr}});var Oti=H((Bau,Wti)=>{"use strict";var{pipeline:vCa}=wt("node:stream"),{fetching:BCa}=MYe(),{makeRequest:wCa}=Hwe(),{webidl:Cae}=kk(),{EventSourceStream:TCa}=xti(),{parseMIMEType:RCa}=eV(),{createFastMessageEvent:NCa}=Kwe(),{isNetworkError:Gti}=WYe(),{delay:DCa}=iEr(),{kEnumerableProperty:bhe}=Em(),{environmentSettingsObject:Fti}=qW(),Zti=!1,Lti=3e3,eQe=0,Vti=1,tQe=2,kCa="anonymous",xCa="use-credentials",eTe=class e extends EventTarget{#e={open:null,error:null,message:null};#t=null;#n=!1;#r=eQe;#i=null;#s=null;#o;#g;constructor(t,r={}){super();let n="EventSource constructor";Cae.argumentLengthCheck(arguments,1,n),Zti||(Zti=!0,process.emitWarning("EventSource is experimental, expect them to change at any time.",{code:"UNDICI-ES"})),t=Cae.converters.USVString(t,n,"url"),r=Cae.converters.EventSourceInitDict(r,n,"eventSourceInitDict"),this.#o=r.dispatcher,this.#g={lastEventId:"",reconnectionTime:Lti};let a=Fti,o;try{o=new URL(t,a.settingsObject.baseUrl),this.#g.origin=o.origin}catch(f){throw new DOMException(f,"SyntaxError")}this.#t=o.href;let l=kCa;r.withCredentials&&(l=xCa,this.#n=!0);let A={redirect:"follow",keepalive:!0,mode:"cors",credentials:l==="anonymous"?"same-origin":"omit",referrer:"no-referrer"};A.client=Fti.settingsObject,A.headersList=[["accept",{name:"accept",value:"text/event-stream"}]],A.cache="no-store",A.initiator="other",A.urlList=[new URL(this.#t)],this.#i=wCa(A),this.#l()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#l(){if(this.#r===tQe)return;this.#r=eQe;let t={request:this.#i,dispatcher:this.#o},r=n=>{Gti(n)&&(this.dispatchEvent(new Event("error")),this.close()),this.#u()};t.processResponseEndOfBody=r,t.processResponse=n=>{if(Gti(n))if(n.aborted){this.close(),this.dispatchEvent(new Event("error"));return}else{this.#u();return}let a=n.headersList.get("content-type",!0),o=a!==null?RCa(a):"failure",l=o!=="failure"&&o.essence==="text/event-stream";if(n.status!==200||l===!1){this.close(),this.dispatchEvent(new Event("error"));return}this.#r=Vti,this.dispatchEvent(new Event("open")),this.#g.origin=n.urlList[n.urlList.length-1].origin;let A=new TCa({eventSourceSettings:this.#g,push:f=>{this.dispatchEvent(NCa(f.type,f.options))}});vCa(n.body.stream,A,f=>{f?.aborted===!1&&(this.close(),this.dispatchEvent(new Event("error")))})},this.#s=BCa(t)}async#u(){this.#r!==tQe&&(this.#r=eQe,this.dispatchEvent(new Event("error")),await DCa(this.#g.reconnectionTime),this.#r===eQe&&(this.#g.lastEventId.length&&this.#i.headersList.set("last-event-id",this.#g.lastEventId,!0),this.#l()))}close(){Cae.brandCheck(this,e),this.#r!==tQe&&(this.#r=tQe,this.#s.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(t){this.#e.open&&this.removeEventListener("open",this.#e.open),typeof t=="function"?(this.#e.open=t,this.addEventListener("open",t)):this.#e.open=null}get onmessage(){return this.#e.message}set onmessage(t){this.#e.message&&this.removeEventListener("message",this.#e.message),typeof t=="function"?(this.#e.message=t,this.addEventListener("message",t)):this.#e.message=null}get onerror(){return this.#e.error}set onerror(t){this.#e.error&&this.removeEventListener("error",this.#e.error),typeof t=="function"?(this.#e.error=t,this.addEventListener("error",t)):this.#e.error=null}},Pti={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:eQe,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:Vti,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:tQe,writable:!1}};Object.defineProperties(eTe,Pti);Object.defineProperties(eTe.prototype,Pti);Object.defineProperties(eTe.prototype,{close:bhe,onerror:bhe,onmessage:bhe,onopen:bhe,readyState:bhe,url:bhe,withCredentials:bhe});Cae.converters.EventSourceInitDict=Cae.dictionaryConverter([{key:"withCredentials",converter:Cae.converters.boolean,defaultValue:()=>!1},{key:"dispatcher",converter:Cae.converters.any}]);Wti.exports={EventSource:eTe,defaultReconnectionTime:Lti}});var Qti=H((wau,Bf)=>{"use strict";var GCa=vYe(),Mti=rYe(),FCa=Dwe(),ZCa=q7n(),LCa=kwe(),VCa=kyr(),PCa=fzn(),WCa=yzn(),Hti=Y0(),Fmt=Em(),{InvalidArgumentError:Gmt}=Hti,tTe=aqn(),OCa=iYe(),MCa=dbr(),HCa=Mqn(),YCa=Ibr(),QCa=ebr(),XCa=Lht(),{getGlobalDispatcher:Yti,setGlobalDispatcher:JCa}=Jht(),UCa=_br(),KCa=Bht(),jCa=wht();Object.assign(Mti.prototype,tTe);Bf.exports.Dispatcher=Mti;Bf.exports.Client=GCa;Bf.exports.Pool=FCa;Bf.exports.BalancedPool=ZCa;Bf.exports.Agent=LCa;Bf.exports.ProxyAgent=VCa;Bf.exports.EnvHttpProxyAgent=PCa;Bf.exports.RetryAgent=WCa;Bf.exports.RetryHandler=XCa;Bf.exports.DecoratorHandler=UCa;Bf.exports.RedirectHandler=KCa;Bf.exports.createRedirectInterceptor=jCa;Bf.exports.interceptors={redirect:Kqn(),retry:zqn(),dump:$qn()};Bf.exports.buildConnector=OCa;Bf.exports.errors=Hti;Bf.exports.util={parseHeaders:Fmt.parseHeaders,headerNameToString:Fmt.headerNameToString};function rQe(e){return(t,r,n)=>{if(typeof r=="function"&&(n=r,r=null),!t||typeof t!="string"&&typeof t!="object"&&!(t instanceof URL))throw new Gmt("invalid url");if(r!=null&&typeof r!="object")throw new Gmt("invalid opts");if(r&&r.path!=null){if(typeof r.path!="string")throw new Gmt("invalid opts.path");let l=r.path;r.path.startsWith("/")||(l=`/${l}`),t=new URL(Fmt.parseOrigin(t).origin+l)}else r||(r=typeof t=="object"?t:{}),t=Fmt.parseURL(t);let{agent:a,dispatcher:o=Yti()}=r;if(a)throw new Gmt("unsupported opts.agent. Did you mean opts.client?");return e.call(o,{...r,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:r.method||(r.body?"PUT":"GET")},n)}}Bf.exports.setGlobalDispatcher=JCa;Bf.exports.getGlobalDispatcher=Yti;var zCa=MYe().fetch;Bf.exports.fetch=async function(t,r=void 0){try{return await zCa(t,r)}catch(n){throw n&&typeof n=="object"&&Error.captureStackTrace(n),n}};Bf.exports.Headers=fhe().Headers;Bf.exports.Response=WYe().Response;Bf.exports.Request=Hwe().Request;Bf.exports.FormData=gYe().FormData;Bf.exports.File=globalThis.File??wt("node:buffer").File;Bf.exports.FileReader=dei().FileReader;var{setGlobalOrigin:qCa,getGlobalOrigin:$Ca}=G0r();Bf.exports.setGlobalOrigin=qCa;Bf.exports.getGlobalOrigin=$Ca;var{CacheStorage:e_a}=bei(),{kConstruct:t_a}=pmt();Bf.exports.caches=new e_a(t_a);var{deleteCookie:r_a,getCookies:n_a,getSetCookies:i_a,setCookie:s_a}=Gei();Bf.exports.deleteCookie=r_a;Bf.exports.getCookies=n_a;Bf.exports.getSetCookies=i_a;Bf.exports.setCookie=s_a;var{parseMIMEType:o_a,serializeAMimeType:a_a}=eV();Bf.exports.parseMIMEType=o_a;Bf.exports.serializeAMimeType=a_a;var{CloseEvent:c_a,ErrorEvent:l_a,MessageEvent:u_a}=Kwe();Bf.exports.WebSocket=Tti().WebSocket;Bf.exports.CloseEvent=c_a;Bf.exports.ErrorEvent=l_a;Bf.exports.MessageEvent=u_a;Bf.exports.request=rQe(tTe.request);Bf.exports.stream=rQe(tTe.stream);Bf.exports.pipeline=rQe(tTe.pipeline);Bf.exports.connect=rQe(tTe.connect);Bf.exports.upgrade=rQe(tTe.upgrade);Bf.exports.MockClient=MCa;Bf.exports.MockPool=YCa;Bf.exports.MockAgent=HCa;Bf.exports.mockErrors=QCa;var{EventSource:g_a}=Oti();Bf.exports.EventSource=g_a});var Uti=H(lT=>{"use strict";var A_a=lT&&lT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),d_a=lT&&lT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),p_a=lT&&lT.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&A_a(t,e,r);return d_a(t,e),t},f_a=lT&&lT.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(lT,"__esModule",{value:!0});lT.getApiBaseUrl=lT.getProxyFetch=lT.getProxyAgentDispatcher=lT.getProxyAgent=lT.getAuthString=void 0;var Xti=p_a(ajn()),I_a=Qti();function h_a(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return typeof t.auth=="string"?t.auth:`token ${e}`}lT.getAuthString=h_a;function m_a(e){return new Xti.HttpClient().getAgent(e)}lT.getProxyAgent=m_a;function Jti(e){return new Xti.HttpClient().getAgentDispatcher(e)}lT.getProxyAgentDispatcher=Jti;function C_a(e){let t=Jti(e);return(n,a)=>f_a(this,void 0,void 0,function*(){return(0,I_a.fetch)(n,Object.assign(Object.assign({},a),{dispatcher:t}))})}lT.getProxyFetch=C_a;function __a(){return process.env.GITHUB_API_URL||"https://api.github.com"}lT.getApiBaseUrl=__a});var nQe=H(aEr=>{"use strict";Object.defineProperty(aEr,"__esModule",{value:!0});function y_a(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}aEr.getUserAgent=y_a});var zti=H((Nau,jti)=>{jti.exports=Kti;function Kti(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce(function(a,o){return Kti.bind(null,e,o,a,n)},r)():Promise.resolve().then(function(){return e.registry[t]?e.registry[t].reduce(function(a,o){return o.hook.bind(null,a,n)},r)():r(n)})}});var $ti=H((Dau,qti)=>{qti.exports=b_a;function b_a(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=function(o,l){return Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))}),t==="after"&&(n=function(o,l){var A;return Promise.resolve().then(o.bind(null,l)).then(function(f){return A=f,a(A,l)}).then(function(){return A})}),t==="error"&&(n=function(o,l){return Promise.resolve().then(o.bind(null,l)).catch(function(A){return a(A,l)})}),e.registry[r].push({hook:n,orig:a})}});var tri=H((kau,eri)=>{eri.exports=E_a;function E_a(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(a){return a.orig}).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}}});var cri=H((xau,iQe)=>{var sri=zti(),S_a=$ti(),v_a=tri(),rri=Function.bind,nri=rri.bind(rri);function ori(e,t,r){var n=nri(v_a,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(a){var o=r?[t,a,r]:[t,a];e[a]=e.api[a]=nri(S_a,null).apply(null,o)})}function B_a(){var e="h",t={registry:{}},r=sri.bind(null,t,e);return ori(r,t,e),r}function ari(){var e={registry:{}},t=sri.bind(null,e);return ori(t,e),t}var iri=!1;function rTe(){return iri||(console.warn('[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4'),iri=!0),ari()}rTe.Singular=B_a.bind();rTe.Collection=ari.bind();iQe.exports=rTe;iQe.exports.Hook=rTe;iQe.exports.Singular=rTe.Singular;iQe.exports.Collection=rTe.Collection});var hri=H((Gau,Iri)=>{"use strict";var uEr=Object.defineProperty,w_a=Object.getOwnPropertyDescriptor,T_a=Object.getOwnPropertyNames,R_a=Object.prototype.hasOwnProperty,N_a=(e,t)=>{for(var r in t)uEr(e,r,{get:t[r],enumerable:!0})},D_a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of T_a(t))!R_a.call(e,a)&&a!==r&&uEr(e,a,{get:()=>t[a],enumerable:!(n=w_a(t,a))||n.enumerable});return e},k_a=e=>D_a(uEr({},"__esModule",{value:!0}),e),gri={};N_a(gri,{endpoint:()=>J_a});Iri.exports=k_a(gri);var x_a=nQe(),G_a="9.0.5",F_a=`octokit-endpoint.js/${G_a} ${(0,x_a.getUserAgent)()}`,Z_a={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":F_a},mediaType:{format:""}};function L_a(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function V_a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Ari(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{V_a(t[n])?n in e?r[n]=Ari(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function lri(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function lEr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=L_a(r.headers),lri(r),lri(r.headers);let n=Ari(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function P_a(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var W_a=/\{[^}]+\}/g;function O_a(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function M_a(e){let t=e.match(W_a);return t?t.map(O_a).reduce((r,n)=>r.concat(n),[]):[]}function uri(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function dri(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function iTe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function sQe(e,t,r){return t=e==="+"||e==="#"?dri(t):iTe(t),r?iTe(r)+"="+t:t}function nTe(e){return e!=null}function cEr(e){return e===";"||e==="&"||e==="?"}function H_a(e,t,r,n){var a=e[r],o=[];if(nTe(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(sQe(t,a,cEr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter(nTe).forEach(function(l){o.push(sQe(t,l,cEr(t)?r:""))}):Object.keys(a).forEach(function(l){nTe(a[l])&&o.push(sQe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter(nTe).forEach(function(A){l.push(sQe(t,A))}):Object.keys(a).forEach(function(A){nTe(a[A])&&(l.push(iTe(A)),l.push(sQe(t,a[A].toString())))}),cEr(t)?o.push(iTe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?nTe(a)&&o.push(iTe(r)):a===""&&(t==="&"||t==="?")?o.push(iTe(r)+"="):a===""&&o.push("");return o}function Y_a(e){return{expand:Q_a.bind(null,e)}}function Q_a(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(H_a(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return dri(o)}),e==="/"?e:e.replace(/\/$/,"")}function pri(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=uri(e,["method","baseUrl","url","headers","request","mediaType"]),l=M_a(r);r=Y_a(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=uri(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=P_a(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function X_a(e,t,r){return pri(lEr(e,t,r))}function fri(e,t){let r=lEr(e,t),n=X_a.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:fri.bind(null,r),merge:lEr.bind(null,r),parse:pri})}var J_a=fri(null,Z_a)});var mri=H(AEr=>{"use strict";Object.defineProperty(AEr,"__esModule",{value:!0});var gEr=class extends Error{constructor(t){super(t),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="Deprecation"}};AEr.Deprecation=gEr});var Sri=H((Zau,Eri)=>{"use strict";var U_a=Object.create,Zmt=Object.defineProperty,K_a=Object.getOwnPropertyDescriptor,j_a=Object.getOwnPropertyNames,z_a=Object.getPrototypeOf,q_a=Object.prototype.hasOwnProperty,$_a=(e,t)=>{for(var r in t)Zmt(e,r,{get:t[r],enumerable:!0})},_ri=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of j_a(t))!q_a.call(e,a)&&a!==r&&Zmt(e,a,{get:()=>t[a],enumerable:!(n=K_a(t,a))||n.enumerable});return e},e0a=(e,t,r)=>(r=e!=null?U_a(z_a(e)):{},_ri(t||!e||!e.__esModule?Zmt(r,"default",{value:e,enumerable:!0}):r,e)),t0a=e=>_ri(Zmt({},"__esModule",{value:!0}),e),yri={};$_a(yri,{RequestError:()=>i0a});Eri.exports=t0a(yri);var Cri=mri(),bri=e0a(mgt()),r0a=(0,bri.default)(e=>console.warn(e)),n0a=(0,bri.default)(e=>console.warn(e)),i0a=class extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t;let n;"headers"in r&&typeof r.headers<"u"&&(n=r.headers),"response"in r&&(this.response=r.response,n=r.response.headers);let a=Object.assign({},r.request);r.request.headers.authorization&&(a.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a,Object.defineProperty(this,"code",{get(){return r0a(new Cri.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),Object.defineProperty(this,"headers",{get(){return n0a(new Cri.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")),n||{}}})}}});var aQe=H((Vau,wri)=>{"use strict";var fEr=Object.defineProperty,s0a=Object.getOwnPropertyDescriptor,o0a=Object.getOwnPropertyNames,a0a=Object.prototype.hasOwnProperty,c0a=(e,t)=>{for(var r in t)fEr(e,r,{get:t[r],enumerable:!0})},l0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of o0a(t))!a0a.call(e,a)&&a!==r&&fEr(e,a,{get:()=>t[a],enumerable:!(n=s0a(t,a))||n.enumerable});return e},u0a=e=>l0a(fEr({},"__esModule",{value:!0}),e),Bri={};c0a(Bri,{request:()=>h0a});wri.exports=u0a(Bri);var g0a=hri(),A0a=nQe(),d0a="8.4.0";function p0a(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var oQe=Sri();function f0a(e){return e.arrayBuffer()}function vri(e){var t,r,n,a;let o=e.request&&e.request.log?e.request.log:console,l=((t=e.request)==null?void 0:t.parseSuccessResponseBody)!==!1;(p0a(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let A={},f,I,{fetch:C}=globalThis;if((r=e.request)!=null&&r.fetch&&(C=e.request.fetch),!C)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");return C(e.url,{method:e.method,body:e.body,redirect:(n=e.request)==null?void 0:n.redirect,headers:e.headers,signal:(a=e.request)==null?void 0:a.signal,...e.body&&{duplex:"half"}}).then(async b=>{I=b.url,f=b.status;for(let E of b.headers)A[E[0]]=E[1];if("deprecation"in A){let E=A.link&&A.link.match(/<([^>]+)>; rel="deprecation"/),N=E&&E.pop();o.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${A.sunset}${N?`. See ${N}`:""}`)}if(!(f===204||f===205)){if(e.method==="HEAD"){if(f<400)return;throw new oQe.RequestError(b.statusText,f,{response:{url:I,status:f,headers:A,data:void 0},request:e})}if(f===304)throw new oQe.RequestError("Not modified",f,{response:{url:I,status:f,headers:A,data:await dEr(b)},request:e});if(f>=400){let E=await dEr(b);throw new oQe.RequestError(I0a(E),f,{response:{url:I,status:f,headers:A,data:E},request:e})}return l?await dEr(b):b.body}}).then(b=>({status:f,url:I,headers:A,data:b})).catch(b=>{if(b instanceof oQe.RequestError)throw b;if(b.name==="AbortError")throw b;let E=b.message;throw b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause)),new oQe.RequestError(E,500,{request:e})})}async function dEr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():f0a(e)}function I0a(e){if(typeof e=="string")return e;let t;return"documentation_url"in e?t=` - ${e.documentation_url}`:t="","message"in e?Array.isArray(e.errors)?`${e.message}: ${e.errors.map(JSON.stringify).join(", ")}${t}`:`${e.message}${t}`:`Unknown error: ${JSON.stringify(e)}`}function pEr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return vri(r.parse(l));let A=(f,I)=>vri(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:pEr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:pEr.bind(null,r)})}var h0a=pEr(g0a.endpoint,{headers:{"user-agent":`octokit-request.js/${d0a} ${(0,A0a.getUserAgent)()}`}})});var kri=H((Oau,Dri)=>{"use strict";var IEr=Object.defineProperty,m0a=Object.getOwnPropertyDescriptor,C0a=Object.getOwnPropertyNames,_0a=Object.prototype.hasOwnProperty,y0a=(e,t)=>{for(var r in t)IEr(e,r,{get:t[r],enumerable:!0})},b0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of C0a(t))!_0a.call(e,a)&&a!==r&&IEr(e,a,{get:()=>t[a],enumerable:!(n=m0a(t,a))||n.enumerable});return e},E0a=e=>b0a(IEr({},"__esModule",{value:!0}),e),Rri={};y0a(Rri,{GraphqlResponseError:()=>Nri,graphql:()=>D0a,withCustomRequest:()=>k0a});Dri.exports=E0a(Rri);var S0a=aQe(),v0a=nQe(),B0a="7.1.0",Pau=aQe(),Wau=aQe();function w0a(e){return`Request failed due to following response errors: `+e.errors.map(t=>` - ${t.message}`).join(` -`)}var Nri=class extends Error{constructor(e,t,r){super(w0a(r)),this.request=e,this.headers=t,this.response=r,this.name="GraphqlResponseError",this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},T0a=["method","baseUrl","url","headers","request","query","mediaType"],R0a=["query","method","url"],Tri=/\/api\/v3\/?$/;function N0a(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(R0a.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>T0a.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Tri.test(o)&&(a.url=o.replace(Tri,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Nri(a,A,l.data)}return l.data.data})}function hEr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>N0a(r,a,o),{defaults:hEr.bind(null,r),endpoint:r.endpoint})}var D0a=hEr(S0a.request,{headers:{"user-agent":`octokit-graphql.js/${B0a} ${(0,v0a.getUserAgent)()}`},method:"POST",url:"/graphql"});function k0a(e){return hEr(e,{method:"POST",url:"/graphql"})}});var Fri=H((Mau,Gri)=>{"use strict";var mEr=Object.defineProperty,x0a=Object.getOwnPropertyDescriptor,G0a=Object.getOwnPropertyNames,F0a=Object.prototype.hasOwnProperty,Z0a=(e,t)=>{for(var r in t)mEr(e,r,{get:t[r],enumerable:!0})},L0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of G0a(t))!F0a.call(e,a)&&a!==r&&mEr(e,a,{get:()=>t[a],enumerable:!(n=x0a(t,a))||n.enumerable});return e},V0a=e=>L0a(mEr({},"__esModule",{value:!0}),e),xri={};Z0a(xri,{createTokenAuth:()=>Q0a});Gri.exports=V0a(xri);var P0a=/^v1\./,W0a=/^ghs_/,O0a=/^ghu_/;async function M0a(e){let t=e.split(/\./).length===3,r=P0a.test(e)||W0a.test(e),n=O0a.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function H0a(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Y0a(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=H0a(e),t(a)}var Q0a=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(M0a.bind(null,t),{hook:Y0a.bind(null,t)})}});var Mri=H((Hau,Ori)=>{"use strict";var CEr=Object.defineProperty,X0a=Object.getOwnPropertyDescriptor,J0a=Object.getOwnPropertyNames,U0a=Object.prototype.hasOwnProperty,K0a=(e,t)=>{for(var r in t)CEr(e,r,{get:t[r],enumerable:!0})},j0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of J0a(t))!U0a.call(e,a)&&a!==r&&CEr(e,a,{get:()=>t[a],enumerable:!(n=X0a(t,a))||n.enumerable});return e},z0a=e=>j0a(CEr({},"__esModule",{value:!0}),e),Pri={};K0a(Pri,{Octokit:()=>iya});Ori.exports=z0a(Pri);var q0a=nQe(),$0a=cri(),Zri=aQe(),eya=kri(),tya=Fri(),Wri="5.2.0",Lri=()=>{},rya=console.warn.bind(console),nya=console.error.bind(console),Vri=`octokit-core.js/${Wri} ${(0,q0a.getUserAgent)()}`,iya=class{static{this.VERSION=Wri}static defaults(e){return class extends this{constructor(...r){let n=r[0]||{};if(typeof e=="function"){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static{this.plugins=[]}static plugin(...e){let t=this.plugins;return class extends this{static{this.plugins=t.concat(e.filter(n=>!t.includes(n)))}}}constructor(e={}){let t=new $0a.Collection,r={baseUrl:Zri.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${Vri}`:Vri,e.baseUrl&&(r.baseUrl=e.baseUrl),e.previews&&(r.mediaType.previews=e.previews),e.timeZone&&(r.headers["time-zone"]=e.timeZone),this.request=Zri.request.defaults(r),this.graphql=(0,eya.withCustomRequest)(this.request).defaults(r),this.log=Object.assign({debug:Lri,info:Lri,warn:rya,error:nya},e.log),this.hook=t,e.authStrategy){let{authStrategy:a,...o}=e,l=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},e.auth));t.wrap("request",l.hook),this.auth=l}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{let a=(0,tya.createTokenAuth)(e.auth);t.wrap("request",a.hook),this.auth=a}let n=this.constructor;for(let a=0;a{"use strict";var _Er=Object.defineProperty,sya=Object.getOwnPropertyDescriptor,oya=Object.getOwnPropertyNames,aya=Object.prototype.hasOwnProperty,cya=(e,t)=>{for(var r in t)_Er(e,r,{get:t[r],enumerable:!0})},lya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oya(t))!aya.call(e,a)&&a!==r&&_Er(e,a,{get:()=>t[a],enumerable:!(n=sya(t,a))||n.enumerable});return e},uya=e=>lya(_Er({},"__esModule",{value:!0}),e),Hri={};cya(Hri,{legacyRestEndpointMethods:()=>Jri,restEndpointMethods:()=>Xri});Uri.exports=uya(Hri);var Yri="10.4.1",gya={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Aya=gya,Ehe=new Map;for(let[e,t]of Object.entries(Aya))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);Ehe.has(e)||Ehe.set(e,new Map),Ehe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var dya={has({scope:e},t){return Ehe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Ehe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=Ehe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=pya(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function Qri(e){let t={};for(let r of Ehe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},dya);return t}function pya(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function Xri(e){return{rest:Qri(e)}}Xri.VERSION=Yri;function Jri(e){let t=Qri(e);return{...t,rest:t}}Jri.VERSION=Yri});var rni=H((Uau,tni)=>{"use strict";var yEr=Object.defineProperty,fya=Object.getOwnPropertyDescriptor,Iya=Object.getOwnPropertyNames,hya=Object.prototype.hasOwnProperty,mya=(e,t)=>{for(var r in t)yEr(e,r,{get:t[r],enumerable:!0})},Cya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Iya(t))!hya.call(e,a)&&a!==r&&yEr(e,a,{get:()=>t[a],enumerable:!(n=fya(t,a))||n.enumerable});return e},_ya=e=>Cya(yEr({},"__esModule",{value:!0}),e),jri={};mya(jri,{composePaginateRest:()=>Eya,isPaginatingEndpoint:()=>Sya,paginateRest:()=>eni,paginatingEndpoints:()=>$ri});tni.exports=_ya(jri);var yya="9.2.1";function bya(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function bEr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=bya(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function zri(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),qri(e,[],bEr(e,t,r)[Symbol.asyncIterator](),n)}function qri(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:qri(e,t,r,n)})}var Eya=Object.assign(zri,{iterator:bEr}),$ri=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Sya(e){return typeof e=="string"?$ri.includes(e):!1}function eni(e){return{paginate:Object.assign(zri.bind(null,e),{iterator:bEr.bind(null,e)})}}eni.VERSION=yya});var ini=H(xk=>{"use strict";var vya=xk&&xk.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bya=xk&&xk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nni=xk&&xk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&vya(t,e,r);return Bya(t,e),t};Object.defineProperty(xk,"__esModule",{value:!0});xk.getOctokitOptions=xk.GitHub=xk.defaults=xk.context=void 0;var wya=nni(Mhr()),Lmt=nni(Uti()),Tya=Mri(),Rya=Kri(),Nya=rni();xk.context=new wya.Context;var EEr=Lmt.getApiBaseUrl();xk.defaults={baseUrl:EEr,request:{agent:Lmt.getProxyAgent(EEr),fetch:Lmt.getProxyFetch(EEr)}};xk.GitHub=Tya.Octokit.plugin(Rya.restEndpointMethods,Nya.paginateRest).defaults(xk.defaults);function Dya(e,t){let r=Object.assign({},t||{}),n=Lmt.getAuthString(e,r);return n&&(r.auth=n),r}xk.getOctokitOptions=Dya});var sTe=H(PM=>{"use strict";var kya=PM&&PM.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xya=PM&&PM.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Gya=PM&&PM.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&kya(t,e,r);return xya(t,e),t};Object.defineProperty(PM,"__esModule",{value:!0});PM.getOctokit=PM.context=void 0;var Fya=Gya(Mhr()),sni=ini();PM.context=new Fya.Context;function Zya(e,t,...r){let n=sni.GitHub.plugin(...r);return new n((0,sni.getOctokitOptions)(e,t))}PM.getOctokit=Zya});function kEr({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var Tni=bc(()=>{});function K$(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace($ya,"")}var $ya,AQe=bc(()=>{Tni();$ya=kEr()});var wii=H((yuu,Bii)=>{"use strict";function Eba(e,t){var r=e;t.slice(0,-1).forEach(function(a){r=r[a]||{}});var n=t[t.length-1];return n in r}function Sii(e){return typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function vii(e,t){return t==="constructor"&&typeof e[t]=="function"||t==="__proto__"}Bii.exports=function(e,t){t||(t={});var r={bools:{},strings:{},unknownFn:null};typeof t.unknown=="function"&&(r.unknownFn=t.unknown),typeof t.boolean=="boolean"&&t.boolean?r.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach(function(ce){r.bools[ce]=!0});var n={};function a(ce){return n[ce].some(function(fe){return r.bools[fe]})}Object.keys(t.alias||{}).forEach(function(ce){n[ce]=[].concat(t.alias[ce]),n[ce].forEach(function(fe){n[fe]=[ce].concat(n[ce].filter(function(ue){return fe!==ue}))})}),[].concat(t.string).filter(Boolean).forEach(function(ce){r.strings[ce]=!0,n[ce]&&[].concat(n[ce]).forEach(function(fe){r.strings[fe]=!0})});var o=t.default||{},l={_:[]};function A(ce,fe){return r.allBools&&/^--[^=]+$/.test(fe)||r.strings[ce]||r.bools[ce]||n[ce]}function f(ce,fe,ue){for(var de=ce,be=0;be{"use strict";var{Transform:Sba}=wt("stream"),{StringDecoder:vba}=wt("string_decoder"),_ae=Symbol("last"),Umt=Symbol("decoder");function Bba(e,t,r){let n;if(this.overflow){if(n=this[Umt].write(e).split(this.matcher),n.length===1)return r();n.shift(),this.overflow=!1}else this[_ae]+=this[Umt].write(e),n=this[_ae].split(this.matcher);this[_ae]=n.pop();for(let a=0;athis.maxLength,this.overflow&&!this.skipOverflow){r(new Error("maximum buffer reached"));return}r()}function wba(e){if(this[_ae]+=this[Umt].end(),this[_ae])try{Rii(this,this.mapper(this[_ae]))}catch(t){return e(t)}e()}function Rii(e,t){t!==void 0&&e.push(t)}function Tii(e){return e}function Tba(e,t,r){switch(e=e||/\r?\n/,t=t||Tii,r=r||{},arguments.length){case 1:typeof e=="function"?(t=e,e=/\r?\n/):typeof e=="object"&&!(e instanceof RegExp)&&!e[Symbol.split]&&(r=e,e=/\r?\n/);break;case 2:typeof e=="function"?(r=t,t=e,e=/\r?\n/):typeof t=="object"&&(r=t,t=Tii)}r=Object.assign({},r),r.autoDestroy=!0,r.transform=Bba,r.flush=wba,r.readableObjectMode=!0;let n=new Sba(r);return n[_ae]="",n[Umt]=new vba("utf8"),n.matcher=e,n.mapper=t,n.maxLength=r.maxLength,n.skipOverflow=r.skipOverflow||!1,n.overflow=!1,n._destroy=function(a,o){this._writableState.errorEmitted=!1,o(a)},n}Nii.exports=Tba});var Gii={};sI(Gii,{default:()=>xii});function xii(e,t){let r=[],n=[],a=[];t={useEquals:!0,shortFlag:!0,...t};let o=(A,f)=>{let I=t.shortFlag&&A.length===1?"-":"--",C=t.allowCamelCase?A:A.replace(/[A-Z]/g,"-$&").toLowerCase();A=I+C,t.useEquals?r.push(A+(f?`=${f}`:"")):(r.push(A),f&&r.push(f))},l=(A,f)=>{r.push(`-${A}`),f&&r.push(f)};for(let[A,f]of Object.entries(e)){let I=o;if(!(Array.isArray(t.excludes)&&kii(t.excludes,A))&&!(Array.isArray(t.includes)&&!kii(t.includes,A))){if(typeof t.aliases=="object"&&t.aliases[A]&&(A=t.aliases[A],I=l),A==="--"){if(!Array.isArray(f))throw new TypeError(`Expected key \`--\` to be Array, got ${typeof f}`);a=f;continue}if(A==="_"){if(!Array.isArray(f))throw new TypeError(`Expected key \`_\` to be Array, got ${typeof f}`);n=f;continue}if(f===!0&&!t.ignoreTrue&&I(A,""),f===!1&&!t.ignoreFalse&&I(`no-${A}`),typeof f=="string"&&I(A,f),typeof f=="number"&&!Number.isNaN(f)&&I(A,String(f)),Array.isArray(f))for(let C of f)I(A,C)}}for(let A of n)r.push(String(A));a.length>0&&r.push("--");for(let A of a)r.push(String(A));return r}var kii,Fii=bc(()=>{kii=(e,t)=>e.some(r=>r instanceof RegExp?r.test(t):r===t)});var Pii=H((Euu,Vii)=>{var{Readable:Rba,Transform:Zii}=wt("stream"),{execFile:Nba}=wt("child_process"),Dba=Dii(),Lii="------------------------ >8 ------------------------";function kba(e){return e=e||{},e.cwd=e.cwd||process.cwd(),e}function xba(e){return e=e||{},e.format=e.format||"%B",e.from=e.from||"",e.to=e.to||"HEAD",e}async function Gba(e){let{default:t}=await Promise.resolve().then(()=>(Fii(),Gii)),r=`--format=${e.format||""}%n${Lii}`,n=[e.from,e.to].filter(Boolean).join(".."),a=["log",r,n].concat(t(e,{excludes:["debug","from","to","format","path","ignore"]}));return e.path&&a.push("--",...Array.isArray(e.path)?e.path:[e.path]),a}function Fba(e,t){let r=new Rba;r._read=()=>{};let n=xba(e),a=kba(t),o=!1;return Gba(n).then(l=>{n.debug&&n.debug(`Your git-log command is: +`)}var Nri=class extends Error{constructor(e,t,r){super(w0a(r)),this.request=e,this.headers=t,this.response=r,this.name="GraphqlResponseError",this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},T0a=["method","baseUrl","url","headers","request","query","mediaType"],R0a=["query","method","url"],Tri=/\/api\/v3\/?$/;function N0a(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(R0a.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>T0a.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return Tri.test(o)&&(a.url=o.replace(Tri,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Nri(a,A,l.data)}return l.data.data})}function hEr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>N0a(r,a,o),{defaults:hEr.bind(null,r),endpoint:r.endpoint})}var D0a=hEr(S0a.request,{headers:{"user-agent":`octokit-graphql.js/${B0a} ${(0,v0a.getUserAgent)()}`},method:"POST",url:"/graphql"});function k0a(e){return hEr(e,{method:"POST",url:"/graphql"})}});var Fri=H((Hau,Gri)=>{"use strict";var mEr=Object.defineProperty,x0a=Object.getOwnPropertyDescriptor,G0a=Object.getOwnPropertyNames,F0a=Object.prototype.hasOwnProperty,Z0a=(e,t)=>{for(var r in t)mEr(e,r,{get:t[r],enumerable:!0})},L0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of G0a(t))!F0a.call(e,a)&&a!==r&&mEr(e,a,{get:()=>t[a],enumerable:!(n=x0a(t,a))||n.enumerable});return e},V0a=e=>L0a(mEr({},"__esModule",{value:!0}),e),xri={};Z0a(xri,{createTokenAuth:()=>Q0a});Gri.exports=V0a(xri);var P0a=/^v1\./,W0a=/^ghs_/,O0a=/^ghu_/;async function M0a(e){let t=e.split(/\./).length===3,r=P0a.test(e)||W0a.test(e),n=O0a.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function H0a(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function Y0a(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=H0a(e),t(a)}var Q0a=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(M0a.bind(null,t),{hook:Y0a.bind(null,t)})}});var Mri=H((Yau,Ori)=>{"use strict";var CEr=Object.defineProperty,X0a=Object.getOwnPropertyDescriptor,J0a=Object.getOwnPropertyNames,U0a=Object.prototype.hasOwnProperty,K0a=(e,t)=>{for(var r in t)CEr(e,r,{get:t[r],enumerable:!0})},j0a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of J0a(t))!U0a.call(e,a)&&a!==r&&CEr(e,a,{get:()=>t[a],enumerable:!(n=X0a(t,a))||n.enumerable});return e},z0a=e=>j0a(CEr({},"__esModule",{value:!0}),e),Pri={};K0a(Pri,{Octokit:()=>iya});Ori.exports=z0a(Pri);var q0a=nQe(),$0a=cri(),Zri=aQe(),eya=kri(),tya=Fri(),Wri="5.2.0",Lri=()=>{},rya=console.warn.bind(console),nya=console.error.bind(console),Vri=`octokit-core.js/${Wri} ${(0,q0a.getUserAgent)()}`,iya=class{static{this.VERSION=Wri}static defaults(e){return class extends this{constructor(...r){let n=r[0]||{};if(typeof e=="function"){super(e(n));return}super(Object.assign({},e,n,n.userAgent&&e.userAgent?{userAgent:`${n.userAgent} ${e.userAgent}`}:null))}}}static{this.plugins=[]}static plugin(...e){let t=this.plugins;return class extends this{static{this.plugins=t.concat(e.filter(n=>!t.includes(n)))}}}constructor(e={}){let t=new $0a.Collection,r={baseUrl:Zri.request.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},e.request,{hook:t.bind(null,"request")}),mediaType:{previews:[],format:""}};if(r.headers["user-agent"]=e.userAgent?`${e.userAgent} ${Vri}`:Vri,e.baseUrl&&(r.baseUrl=e.baseUrl),e.previews&&(r.mediaType.previews=e.previews),e.timeZone&&(r.headers["time-zone"]=e.timeZone),this.request=Zri.request.defaults(r),this.graphql=(0,eya.withCustomRequest)(this.request).defaults(r),this.log=Object.assign({debug:Lri,info:Lri,warn:rya,error:nya},e.log),this.hook=t,e.authStrategy){let{authStrategy:a,...o}=e,l=a(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:o},e.auth));t.wrap("request",l.hook),this.auth=l}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{let a=(0,tya.createTokenAuth)(e.auth);t.wrap("request",a.hook),this.auth=a}let n=this.constructor;for(let a=0;a{"use strict";var _Er=Object.defineProperty,sya=Object.getOwnPropertyDescriptor,oya=Object.getOwnPropertyNames,aya=Object.prototype.hasOwnProperty,cya=(e,t)=>{for(var r in t)_Er(e,r,{get:t[r],enumerable:!0})},lya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of oya(t))!aya.call(e,a)&&a!==r&&_Er(e,a,{get:()=>t[a],enumerable:!(n=sya(t,a))||n.enumerable});return e},uya=e=>lya(_Er({},"__esModule",{value:!0}),e),Hri={};cya(Hri,{legacyRestEndpointMethods:()=>Jri,restEndpointMethods:()=>Xri});Uri.exports=uya(Hri);var Yri="10.4.1",gya={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repositories/{repository_id}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repositories/{repository_id}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repositories/{repository_id}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repositories/{repository_id}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.cancelImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#cancel-an-import"}],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors",{},{deprecated:"octokit.rest.migrations.getCommitAuthors() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-commit-authors"}],getImportStatus:["GET /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.getImportStatus() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-an-import-status"}],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files",{},{deprecated:"octokit.rest.migrations.getLargeFiles() is deprecated, see https://docs.github.com/rest/migrations/source-imports#get-large-files"}],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}",{},{deprecated:"octokit.rest.migrations.mapCommitAuthor() is deprecated, see https://docs.github.com/rest/migrations/source-imports#map-a-commit-author"}],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs",{},{deprecated:"octokit.rest.migrations.setLfsPreference() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference"}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.startImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#start-an-import"}],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"],updateImport:["PATCH /repos/{owner}/{repo}/import",{},{deprecated:"octokit.rest.migrations.updateImport() is deprecated, see https://docs.github.com/rest/migrations/source-imports#update-an-import"}]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Aya=gya,Ehe=new Map;for(let[e,t]of Object.entries(Aya))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);Ehe.has(e)||Ehe.set(e,new Map),Ehe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var dya={has({scope:e},t){return Ehe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Ehe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=Ehe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=pya(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function Qri(e){let t={};for(let r of Ehe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},dya);return t}function pya(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function Xri(e){return{rest:Qri(e)}}Xri.VERSION=Yri;function Jri(e){let t=Qri(e);return{...t,rest:t}}Jri.VERSION=Yri});var rni=H((Kau,tni)=>{"use strict";var yEr=Object.defineProperty,fya=Object.getOwnPropertyDescriptor,Iya=Object.getOwnPropertyNames,hya=Object.prototype.hasOwnProperty,mya=(e,t)=>{for(var r in t)yEr(e,r,{get:t[r],enumerable:!0})},Cya=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Iya(t))!hya.call(e,a)&&a!==r&&yEr(e,a,{get:()=>t[a],enumerable:!(n=fya(t,a))||n.enumerable});return e},_ya=e=>Cya(yEr({},"__esModule",{value:!0}),e),jri={};mya(jri,{composePaginateRest:()=>Eya,isPaginatingEndpoint:()=>Sya,paginateRest:()=>eni,paginatingEndpoints:()=>$ri});tni.exports=_ya(jri);var yya="9.2.1";function bya(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function bEr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=bya(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function zri(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),qri(e,[],bEr(e,t,r)[Symbol.asyncIterator](),n)}function qri(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:qri(e,t,r,n)})}var Eya=Object.assign(zri,{iterator:bEr}),$ri=["GET /advisories","GET /app/hook/deliveries","GET /app/installation-requests","GET /app/installations","GET /assignments/{assignment_id}/accepted_assignments","GET /classrooms","GET /classrooms/{classroom_id}/assignments","GET /enterprises/{enterprise}/dependabot/alerts","GET /enterprises/{enterprise}/secret-scanning/alerts","GET /events","GET /gists","GET /gists/public","GET /gists/starred","GET /gists/{gist_id}/comments","GET /gists/{gist_id}/commits","GET /gists/{gist_id}/forks","GET /installation/repositories","GET /issues","GET /licenses","GET /marketplace_listing/plans","GET /marketplace_listing/plans/{plan_id}/accounts","GET /marketplace_listing/stubbed/plans","GET /marketplace_listing/stubbed/plans/{plan_id}/accounts","GET /networks/{owner}/{repo}/events","GET /notifications","GET /organizations","GET /orgs/{org}/actions/cache/usage-by-repository","GET /orgs/{org}/actions/permissions/repositories","GET /orgs/{org}/actions/runners","GET /orgs/{org}/actions/secrets","GET /orgs/{org}/actions/secrets/{secret_name}/repositories","GET /orgs/{org}/actions/variables","GET /orgs/{org}/actions/variables/{name}/repositories","GET /orgs/{org}/blocks","GET /orgs/{org}/code-scanning/alerts","GET /orgs/{org}/codespaces","GET /orgs/{org}/codespaces/secrets","GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories","GET /orgs/{org}/copilot/billing/seats","GET /orgs/{org}/dependabot/alerts","GET /orgs/{org}/dependabot/secrets","GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories","GET /orgs/{org}/events","GET /orgs/{org}/failed_invitations","GET /orgs/{org}/hooks","GET /orgs/{org}/hooks/{hook_id}/deliveries","GET /orgs/{org}/installations","GET /orgs/{org}/invitations","GET /orgs/{org}/invitations/{invitation_id}/teams","GET /orgs/{org}/issues","GET /orgs/{org}/members","GET /orgs/{org}/members/{username}/codespaces","GET /orgs/{org}/migrations","GET /orgs/{org}/migrations/{migration_id}/repositories","GET /orgs/{org}/organization-roles/{role_id}/teams","GET /orgs/{org}/organization-roles/{role_id}/users","GET /orgs/{org}/outside_collaborators","GET /orgs/{org}/packages","GET /orgs/{org}/packages/{package_type}/{package_name}/versions","GET /orgs/{org}/personal-access-token-requests","GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories","GET /orgs/{org}/personal-access-tokens","GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories","GET /orgs/{org}/projects","GET /orgs/{org}/properties/values","GET /orgs/{org}/public_members","GET /orgs/{org}/repos","GET /orgs/{org}/rulesets","GET /orgs/{org}/rulesets/rule-suites","GET /orgs/{org}/secret-scanning/alerts","GET /orgs/{org}/security-advisories","GET /orgs/{org}/teams","GET /orgs/{org}/teams/{team_slug}/discussions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions","GET /orgs/{org}/teams/{team_slug}/invitations","GET /orgs/{org}/teams/{team_slug}/members","GET /orgs/{org}/teams/{team_slug}/projects","GET /orgs/{org}/teams/{team_slug}/repos","GET /orgs/{org}/teams/{team_slug}/teams","GET /projects/columns/{column_id}/cards","GET /projects/{project_id}/collaborators","GET /projects/{project_id}/columns","GET /repos/{owner}/{repo}/actions/artifacts","GET /repos/{owner}/{repo}/actions/caches","GET /repos/{owner}/{repo}/actions/organization-secrets","GET /repos/{owner}/{repo}/actions/organization-variables","GET /repos/{owner}/{repo}/actions/runners","GET /repos/{owner}/{repo}/actions/runs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts","GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs","GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs","GET /repos/{owner}/{repo}/actions/secrets","GET /repos/{owner}/{repo}/actions/variables","GET /repos/{owner}/{repo}/actions/workflows","GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs","GET /repos/{owner}/{repo}/activity","GET /repos/{owner}/{repo}/assignees","GET /repos/{owner}/{repo}/branches","GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations","GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs","GET /repos/{owner}/{repo}/code-scanning/alerts","GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances","GET /repos/{owner}/{repo}/code-scanning/analyses","GET /repos/{owner}/{repo}/codespaces","GET /repos/{owner}/{repo}/codespaces/devcontainers","GET /repos/{owner}/{repo}/codespaces/secrets","GET /repos/{owner}/{repo}/collaborators","GET /repos/{owner}/{repo}/comments","GET /repos/{owner}/{repo}/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/commits","GET /repos/{owner}/{repo}/commits/{commit_sha}/comments","GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls","GET /repos/{owner}/{repo}/commits/{ref}/check-runs","GET /repos/{owner}/{repo}/commits/{ref}/check-suites","GET /repos/{owner}/{repo}/commits/{ref}/status","GET /repos/{owner}/{repo}/commits/{ref}/statuses","GET /repos/{owner}/{repo}/contributors","GET /repos/{owner}/{repo}/dependabot/alerts","GET /repos/{owner}/{repo}/dependabot/secrets","GET /repos/{owner}/{repo}/deployments","GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses","GET /repos/{owner}/{repo}/environments","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies","GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps","GET /repos/{owner}/{repo}/events","GET /repos/{owner}/{repo}/forks","GET /repos/{owner}/{repo}/hooks","GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries","GET /repos/{owner}/{repo}/invitations","GET /repos/{owner}/{repo}/issues","GET /repos/{owner}/{repo}/issues/comments","GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/issues/events","GET /repos/{owner}/{repo}/issues/{issue_number}/comments","GET /repos/{owner}/{repo}/issues/{issue_number}/events","GET /repos/{owner}/{repo}/issues/{issue_number}/labels","GET /repos/{owner}/{repo}/issues/{issue_number}/reactions","GET /repos/{owner}/{repo}/issues/{issue_number}/timeline","GET /repos/{owner}/{repo}/keys","GET /repos/{owner}/{repo}/labels","GET /repos/{owner}/{repo}/milestones","GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels","GET /repos/{owner}/{repo}/notifications","GET /repos/{owner}/{repo}/pages/builds","GET /repos/{owner}/{repo}/projects","GET /repos/{owner}/{repo}/pulls","GET /repos/{owner}/{repo}/pulls/comments","GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions","GET /repos/{owner}/{repo}/pulls/{pull_number}/comments","GET /repos/{owner}/{repo}/pulls/{pull_number}/commits","GET /repos/{owner}/{repo}/pulls/{pull_number}/files","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews","GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments","GET /repos/{owner}/{repo}/releases","GET /repos/{owner}/{repo}/releases/{release_id}/assets","GET /repos/{owner}/{repo}/releases/{release_id}/reactions","GET /repos/{owner}/{repo}/rules/branches/{branch}","GET /repos/{owner}/{repo}/rulesets","GET /repos/{owner}/{repo}/rulesets/rule-suites","GET /repos/{owner}/{repo}/secret-scanning/alerts","GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations","GET /repos/{owner}/{repo}/security-advisories","GET /repos/{owner}/{repo}/stargazers","GET /repos/{owner}/{repo}/subscribers","GET /repos/{owner}/{repo}/tags","GET /repos/{owner}/{repo}/teams","GET /repos/{owner}/{repo}/topics","GET /repositories","GET /repositories/{repository_id}/environments/{environment_name}/secrets","GET /repositories/{repository_id}/environments/{environment_name}/variables","GET /search/code","GET /search/commits","GET /search/issues","GET /search/labels","GET /search/repositories","GET /search/topics","GET /search/users","GET /teams/{team_id}/discussions","GET /teams/{team_id}/discussions/{discussion_number}/comments","GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions","GET /teams/{team_id}/discussions/{discussion_number}/reactions","GET /teams/{team_id}/invitations","GET /teams/{team_id}/members","GET /teams/{team_id}/projects","GET /teams/{team_id}/repos","GET /teams/{team_id}/teams","GET /user/blocks","GET /user/codespaces","GET /user/codespaces/secrets","GET /user/emails","GET /user/followers","GET /user/following","GET /user/gpg_keys","GET /user/installations","GET /user/installations/{installation_id}/repositories","GET /user/issues","GET /user/keys","GET /user/marketplace_purchases","GET /user/marketplace_purchases/stubbed","GET /user/memberships/orgs","GET /user/migrations","GET /user/migrations/{migration_id}/repositories","GET /user/orgs","GET /user/packages","GET /user/packages/{package_type}/{package_name}/versions","GET /user/public_emails","GET /user/repos","GET /user/repository_invitations","GET /user/social_accounts","GET /user/ssh_signing_keys","GET /user/starred","GET /user/subscriptions","GET /user/teams","GET /users","GET /users/{username}/events","GET /users/{username}/events/orgs/{org}","GET /users/{username}/events/public","GET /users/{username}/followers","GET /users/{username}/following","GET /users/{username}/gists","GET /users/{username}/gpg_keys","GET /users/{username}/keys","GET /users/{username}/orgs","GET /users/{username}/packages","GET /users/{username}/projects","GET /users/{username}/received_events","GET /users/{username}/received_events/public","GET /users/{username}/repos","GET /users/{username}/social_accounts","GET /users/{username}/ssh_signing_keys","GET /users/{username}/starred","GET /users/{username}/subscriptions"];function Sya(e){return typeof e=="string"?$ri.includes(e):!1}function eni(e){return{paginate:Object.assign(zri.bind(null,e),{iterator:bEr.bind(null,e)})}}eni.VERSION=yya});var ini=H(xk=>{"use strict";var vya=xk&&xk.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bya=xk&&xk.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nni=xk&&xk.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&vya(t,e,r);return Bya(t,e),t};Object.defineProperty(xk,"__esModule",{value:!0});xk.getOctokitOptions=xk.GitHub=xk.defaults=xk.context=void 0;var wya=nni(Mhr()),Lmt=nni(Uti()),Tya=Mri(),Rya=Kri(),Nya=rni();xk.context=new wya.Context;var EEr=Lmt.getApiBaseUrl();xk.defaults={baseUrl:EEr,request:{agent:Lmt.getProxyAgent(EEr),fetch:Lmt.getProxyFetch(EEr)}};xk.GitHub=Tya.Octokit.plugin(Rya.restEndpointMethods,Nya.paginateRest).defaults(xk.defaults);function Dya(e,t){let r=Object.assign({},t||{}),n=Lmt.getAuthString(e,r);return n&&(r.auth=n),r}xk.getOctokitOptions=Dya});var sTe=H(PM=>{"use strict";var kya=PM&&PM.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xya=PM&&PM.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Gya=PM&&PM.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&kya(t,e,r);return xya(t,e),t};Object.defineProperty(PM,"__esModule",{value:!0});PM.getOctokit=PM.context=void 0;var Fya=Gya(Mhr()),sni=ini();PM.context=new Fya.Context;function Zya(e,t,...r){let n=sni.GitHub.plugin(...r);return new n((0,sni.getOctokitOptions)(e,t))}PM.getOctokit=Zya});function kEr({onlyFirst:e=!1}={}){let r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(r,e?void 0:"g")}var Tni=bc(()=>{});function K$(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace($ya,"")}var $ya,AQe=bc(()=>{Tni();$ya=kEr()});var wii=H((buu,Bii)=>{"use strict";function Eba(e,t){var r=e;t.slice(0,-1).forEach(function(a){r=r[a]||{}});var n=t[t.length-1];return n in r}function Sii(e){return typeof e=="number"||/^0x[0-9a-f]+$/i.test(e)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function vii(e,t){return t==="constructor"&&typeof e[t]=="function"||t==="__proto__"}Bii.exports=function(e,t){t||(t={});var r={bools:{},strings:{},unknownFn:null};typeof t.unknown=="function"&&(r.unknownFn=t.unknown),typeof t.boolean=="boolean"&&t.boolean?r.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach(function(ce){r.bools[ce]=!0});var n={};function a(ce){return n[ce].some(function(fe){return r.bools[fe]})}Object.keys(t.alias||{}).forEach(function(ce){n[ce]=[].concat(t.alias[ce]),n[ce].forEach(function(fe){n[fe]=[ce].concat(n[ce].filter(function(ue){return fe!==ue}))})}),[].concat(t.string).filter(Boolean).forEach(function(ce){r.strings[ce]=!0,n[ce]&&[].concat(n[ce]).forEach(function(fe){r.strings[fe]=!0})});var o=t.default||{},l={_:[]};function A(ce,fe){return r.allBools&&/^--[^=]+$/.test(fe)||r.strings[ce]||r.bools[ce]||n[ce]}function f(ce,fe,ue){for(var de=ce,be=0;be{"use strict";var{Transform:Sba}=wt("stream"),{StringDecoder:vba}=wt("string_decoder"),_ae=Symbol("last"),Umt=Symbol("decoder");function Bba(e,t,r){let n;if(this.overflow){if(n=this[Umt].write(e).split(this.matcher),n.length===1)return r();n.shift(),this.overflow=!1}else this[_ae]+=this[Umt].write(e),n=this[_ae].split(this.matcher);this[_ae]=n.pop();for(let a=0;athis.maxLength,this.overflow&&!this.skipOverflow){r(new Error("maximum buffer reached"));return}r()}function wba(e){if(this[_ae]+=this[Umt].end(),this[_ae])try{Rii(this,this.mapper(this[_ae]))}catch(t){return e(t)}e()}function Rii(e,t){t!==void 0&&e.push(t)}function Tii(e){return e}function Tba(e,t,r){switch(e=e||/\r?\n/,t=t||Tii,r=r||{},arguments.length){case 1:typeof e=="function"?(t=e,e=/\r?\n/):typeof e=="object"&&!(e instanceof RegExp)&&!e[Symbol.split]&&(r=e,e=/\r?\n/);break;case 2:typeof e=="function"?(r=t,t=e,e=/\r?\n/):typeof t=="object"&&(r=t,t=Tii)}r=Object.assign({},r),r.autoDestroy=!0,r.transform=Bba,r.flush=wba,r.readableObjectMode=!0;let n=new Sba(r);return n[_ae]="",n[Umt]=new vba("utf8"),n.matcher=e,n.mapper=t,n.maxLength=r.maxLength,n.skipOverflow=r.skipOverflow||!1,n.overflow=!1,n._destroy=function(a,o){this._writableState.errorEmitted=!1,o(a)},n}Nii.exports=Tba});var Gii={};sI(Gii,{default:()=>xii});function xii(e,t){let r=[],n=[],a=[];t={useEquals:!0,shortFlag:!0,...t};let o=(A,f)=>{let I=t.shortFlag&&A.length===1?"-":"--",C=t.allowCamelCase?A:A.replace(/[A-Z]/g,"-$&").toLowerCase();A=I+C,t.useEquals?r.push(A+(f?`=${f}`:"")):(r.push(A),f&&r.push(f))},l=(A,f)=>{r.push(`-${A}`),f&&r.push(f)};for(let[A,f]of Object.entries(e)){let I=o;if(!(Array.isArray(t.excludes)&&kii(t.excludes,A))&&!(Array.isArray(t.includes)&&!kii(t.includes,A))){if(typeof t.aliases=="object"&&t.aliases[A]&&(A=t.aliases[A],I=l),A==="--"){if(!Array.isArray(f))throw new TypeError(`Expected key \`--\` to be Array, got ${typeof f}`);a=f;continue}if(A==="_"){if(!Array.isArray(f))throw new TypeError(`Expected key \`_\` to be Array, got ${typeof f}`);n=f;continue}if(f===!0&&!t.ignoreTrue&&I(A,""),f===!1&&!t.ignoreFalse&&I(`no-${A}`),typeof f=="string"&&I(A,f),typeof f=="number"&&!Number.isNaN(f)&&I(A,String(f)),Array.isArray(f))for(let C of f)I(A,C)}}for(let A of n)r.push(String(A));a.length>0&&r.push("--");for(let A of a)r.push(String(A));return r}var kii,Fii=bc(()=>{kii=(e,t)=>e.some(r=>r instanceof RegExp?r.test(t):r===t)});var Pii=H((Suu,Vii)=>{var{Readable:Rba,Transform:Zii}=wt("stream"),{execFile:Nba}=wt("child_process"),Dba=Dii(),Lii="------------------------ >8 ------------------------";function kba(e){return e=e||{},e.cwd=e.cwd||process.cwd(),e}function xba(e){return e=e||{},e.format=e.format||"%B",e.from=e.from||"",e.to=e.to||"HEAD",e}async function Gba(e){let{default:t}=await Promise.resolve().then(()=>(Fii(),Gii)),r=`--format=${e.format||""}%n${Lii}`,n=[e.from,e.to].filter(Boolean).join(".."),a=["log",r,n].concat(t(e,{excludes:["debug","from","to","format","path","ignore"]}));return e.path&&a.push("--",...Array.isArray(e.path)?e.path:[e.path]),a}function Fba(e,t){let r=new Rba;r._read=()=>{};let n=xba(e),a=kba(t),o=!1;return Gba(n).then(l=>{n.debug&&n.debug(`Your git-log command is: git `+l.join(" "));let A=typeof n.ignore=="string"?new RegExp(n.ignore):n.ignore,f=A?C=>!A.test(C.toString()):()=>!0,I=Nba("git",l,{cwd:a.cwd,maxBuffer:1/0});I.stdout.pipe(Dba(Lii+` -`)).pipe(new Zii({transform(C,b,E){o=!1,setImmediate(()=>{f(C)&&r.push(C),E()})},flush(C){setImmediate(()=>{o||(r.push(null),r.emit("close")),C()})}})),I.stderr.pipe(new Zii({objectMode:!0,highWaterMark:16,transform(C){o=!0,r.emit("error",new Error(C)),r.emit("close")}}))}),r}Vii.exports=Fba});var Bhe,ssi=bc(()=>{Bhe=[];Bhe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bhe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bhe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var rCt,A1r,d1r,mEa,p1r,nCt,CEa,f1r,I1r,h1r,iCt,Ngu,Dgu,m1r=bc(()=>{ssi();rCt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",A1r=Symbol.for("signal-exit emitter"),d1r=globalThis,mEa=Object.defineProperty.bind(Object),p1r=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(d1r[A1r])return d1r[A1r];mEa(d1r,A1r,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],a=n.indexOf(r);a!==-1&&(a===0&&n.length===1?n.length=0:n.splice(a,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let a=!1;for(let o of this.listeners[t])a=o(r,n)===!0||a;return t==="exit"&&(a=this.emit("afterExit",r,n)||a),a}},nCt=class{},CEa=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),f1r=class extends nCt{onExit(){return()=>{}}load(){}unload(){}},I1r=class extends nCt{#e=h1r.platform==="win32"?"SIGINT":"SIGHUP";#t=new p1r;#n;#r;#i;#s={};#o=!1;constructor(t){super(),this.#n=t,this.#s={};for(let r of Bhe)this.#s[r]=()=>{let n=this.#n.listeners(r),{count:a}=this.#t,o=t;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(a+=o.__signal_exit_emitter__.count),n.length===a){this.unload();let l=this.#t.emit("exit",null,r),A=r==="SIGHUP"?this.#e:r;l||t.kill(t.pid,A)}};this.#i=t.reallyExit,this.#r=t.emit}onExit(t,r){if(!rCt(this.#n))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Bhe)try{let r=this.#s[t];r&&this.#n.on(t,r)}catch{}this.#n.emit=(t,...r)=>this.#l(t,...r),this.#n.reallyExit=t=>this.#g(t)}}unload(){this.#o&&(this.#o=!1,Bhe.forEach(t=>{let r=this.#s[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#n.removeListener(t,r)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,this.#t.count-=1)}#g(t){return rCt(this.#n)?(this.#n.exitCode=t||0,this.#t.emit("exit",this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#l(t,...r){let n=this.#r;if(t==="exit"&&rCt(this.#n)){typeof r[0]=="number"&&(this.#n.exitCode=r[0]);let a=n.call(this.#n,t,...r);return this.#t.emit("exit",this.#n.exitCode,null),a}else return n.call(this.#n,t,...r)}},h1r=globalThis.process,{onExit:iCt,load:Ngu,unload:Dgu}=CEa(rCt(h1r)?new I1r(h1r):new f1r)});var bsi=H((aAu,ysi)=>{"use strict";var{PassThrough:JEa}=wt("stream");ysi.exports=function(){var e=[],t=new JEa({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(r),t;function r(o){return Array.isArray(o)?(o.forEach(r),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function n(){return e.length==0}function a(o){e=e.filter(function(l){return l!==o}),!e.length&&t.readable&&t.end()}}});var soi=H((Cdu,ioi)=>{"use strict";var V1a=/()(.+)/gi,P1a="# ------------------------ >8 ------------------------";function mCt(e){let t=e.match(/[^\r\n]/);if(!t)return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` +`)).pipe(new Zii({transform(C,b,E){o=!1,setImmediate(()=>{f(C)&&r.push(C),E()})},flush(C){setImmediate(()=>{o||(r.push(null),r.emit("close")),C()})}})),I.stderr.pipe(new Zii({objectMode:!0,highWaterMark:16,transform(C){o=!0,r.emit("error",new Error(C)),r.emit("close")}}))}),r}Vii.exports=Fba});var Bhe,ssi=bc(()=>{Bhe=[];Bhe.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bhe.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bhe.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});var rCt,A1r,d1r,mEa,p1r,nCt,CEa,f1r,I1r,h1r,iCt,Dgu,kgu,m1r=bc(()=>{ssi();rCt=e=>!!e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function",A1r=Symbol.for("signal-exit emitter"),d1r=globalThis,mEa=Object.defineProperty.bind(Object),p1r=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(d1r[A1r])return d1r[A1r];mEa(d1r,A1r,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(t,r){this.listeners[t].push(r)}removeListener(t,r){let n=this.listeners[t],a=n.indexOf(r);a!==-1&&(a===0&&n.length===1?n.length=0:n.splice(a,1))}emit(t,r,n){if(this.emitted[t])return!1;this.emitted[t]=!0;let a=!1;for(let o of this.listeners[t])a=o(r,n)===!0||a;return t==="exit"&&(a=this.emit("afterExit",r,n)||a),a}},nCt=class{},CEa=e=>({onExit(t,r){return e.onExit(t,r)},load(){return e.load()},unload(){return e.unload()}}),f1r=class extends nCt{onExit(){return()=>{}}load(){}unload(){}},I1r=class extends nCt{#e=h1r.platform==="win32"?"SIGINT":"SIGHUP";#t=new p1r;#n;#r;#i;#s={};#o=!1;constructor(t){super(),this.#n=t,this.#s={};for(let r of Bhe)this.#s[r]=()=>{let n=this.#n.listeners(r),{count:a}=this.#t,o=t;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(a+=o.__signal_exit_emitter__.count),n.length===a){this.unload();let l=this.#t.emit("exit",null,r),A=r==="SIGHUP"?this.#e:r;l||t.kill(t.pid,A)}};this.#i=t.reallyExit,this.#r=t.emit}onExit(t,r){if(!rCt(this.#n))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#t.on(n,t),()=>{this.#t.removeListener(n,t),this.#t.listeners.exit.length===0&&this.#t.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#t.count+=1;for(let t of Bhe)try{let r=this.#s[t];r&&this.#n.on(t,r)}catch{}this.#n.emit=(t,...r)=>this.#l(t,...r),this.#n.reallyExit=t=>this.#g(t)}}unload(){this.#o&&(this.#o=!1,Bhe.forEach(t=>{let r=this.#s[t];if(!r)throw new Error("Listener not defined for signal: "+t);try{this.#n.removeListener(t,r)}catch{}}),this.#n.emit=this.#r,this.#n.reallyExit=this.#i,this.#t.count-=1)}#g(t){return rCt(this.#n)?(this.#n.exitCode=t||0,this.#t.emit("exit",this.#n.exitCode,null),this.#i.call(this.#n,this.#n.exitCode)):0}#l(t,...r){let n=this.#r;if(t==="exit"&&rCt(this.#n)){typeof r[0]=="number"&&(this.#n.exitCode=r[0]);let a=n.call(this.#n,t,...r);return this.#t.emit("exit",this.#n.exitCode,null),a}else return n.call(this.#n,t,...r)}},h1r=globalThis.process,{onExit:iCt,load:Dgu,unload:kgu}=CEa(rCt(h1r)?new I1r(h1r):new f1r)});var bsi=H((cAu,ysi)=>{"use strict";var{PassThrough:JEa}=wt("stream");ysi.exports=function(){var e=[],t=new JEa({objectMode:!0});return t.setMaxListeners(0),t.add=r,t.isEmpty=n,t.on("unpipe",a),Array.prototype.slice.call(arguments).forEach(r),t;function r(o){return Array.isArray(o)?(o.forEach(r),this):(e.push(o),o.once("end",a.bind(null,o)),o.once("error",t.emit.bind(t,"error")),o.pipe(t,{end:!1}),this)}function n(){return e.length==0}function a(o){e=e.filter(function(l){return l!==o}),!e.length&&t.readable&&t.end()}}});var soi=H((_du,ioi)=>{"use strict";var V1a=/()(.+)/gi,P1a="# ------------------------ >8 ------------------------";function mCt(e){let t=e.match(/[^\r\n]/);if(!t)return"";let r=t.index,n=e.length-1;for(;e[n]==="\r"||e[n]===` `;)n--;return e.substring(r,n+1)}function whe(e,t){return e?e+=` -`+t:e=t,e}function W1a(e){return function(t){return t.charAt(0)!==e}}function O1a(e){let t=e.indexOf(P1a);return t===-1?e:e.slice(0,t)}function noi(e,t){let r=[],n,a,o=e.match(t.references)!==null?t.references:V1a;for(;n=o.exec(e);){let l=n[1]||null,A=n[2];for(;a=t.referenceParts.exec(A);){let f=null,I=a[1]||"",C=I.split("/");C.length>1&&(f=C.shift(),I=C.join("/"));let b={action:l,owner:f,repository:I||null,issue:a[3],raw:a[0],prefix:a[2]};r.push(b)}}return r}function M1a(){return!0}function H1a(e,t,r){if(!e||!e.trim())throw new TypeError("Expected a raw commit");if(!t||typeof t=="object"&&!Object.keys(t).length)throw new TypeError("Expected options");if(!r)throw new TypeError("Expected regex");let n,a,o={},l=typeof t.commentChar=="string"?W1a(t.commentChar):M1a,A=ct=>!ct.match(/^\s*gpg:/),f=mCt(e).split(/\r?\n/),I=O1a(f).filter(l).filter(A),C=!1,b=!0,E=t.headerCorrespondence?.map(function(ct){return ct.trim()})||[],N=t.revertCorrespondence?.map(function(ct){return ct.trim()})||[],B=t.mergeCorrespondence?.map(function(ct){return ct.trim()})||[],F=null,Q=null,X=null,ae=[],ne=null,ce=[],fe=[],ue=null;if(I.length===0)return{body:F,footer:Q,header:X,mentions:ae,merge:ne,notes:ce,references:fe,revert:ue,scope:null,subject:null,type:null};ne=I.shift();let de={},be={};F="",Q="";let Se=ne.match(t.mergePattern);if(Se&&t.mergePattern){for(ne=Se[0],X=I.shift();X!==void 0&&!X.trim();)X=I.shift();X||(X=""),B.forEach(function(ct,Me){let je=Se[Me+1]||null;de[ct]=je})}else X=ne,ne=null,B.forEach(function(ct){de[ct]=null});let De=X.match(t.headerPattern);if(De?E.forEach(function(ct,Me){let je=De[Me+1]||null;be[ct]=je}):E.forEach(function(ct){be[ct]=null}),fe.push(...noi(X,{references:r.references,referenceParts:r.referenceParts})),I.forEach(function(ct){if(t.fieldPattern){let At=t.fieldPattern.exec(ct);if(At){n=At[1];return}if(n){o[n]=whe(o[n],ct);return}}let Me,je=ct.match(r.notes);if(je){C=!0,b=!1,Q=whe(Q,ct);let At={title:je[1],text:je[2]};ce.push(At);return}let St=noi(ct,{references:r.references,referenceParts:r.referenceParts});if(St.length>0&&(b=!1,Me=!0,C=!1),Array.prototype.push.apply(fe,St),Me){Q=whe(Q,ct);return}if(C){ce[ce.length-1].text=whe(ce[ce.length-1].text,ct),Q=whe(Q,ct);return}b?F=whe(F,ct):Q=whe(Q,ct)}),t.breakingHeaderPattern&&ce.length===0){let ct=X.match(t.breakingHeaderPattern);if(ct){let Me=ct[3];ce.push({title:"BREAKING CHANGE",text:Me})}}for(;a=r.mentions.exec(e);)ae.push(a[1]);let k=e.match(t.revertPattern);return k?(ue={},N.forEach(function(ct,Me){let je=k[Me+1]||null;ue[ct]=je})):ue=null,ce.forEach(function(ct){ct.text=mCt(ct.text)}),{...be,...de,merge:ne,header:X,body:F?mCt(F):null,footer:Q?mCt(Q):null,notes:ce,references:fe,mentions:ae,revert:ue,...o}}ioi.exports=H1a});var coi=H((_du,aoi)=>{"use strict";var ooi=/(?!.*)/;function V1r(e,t){return e.map(function(r){return r.trim()}).filter(function(r){return r.length}).join(t)}function Y1a(e,t){if(!e)return ooi;let r=V1r(e,"|");return t?t(r):new RegExp("^[\\s|*]*("+r+")[:\\s]+(.*)","i")}function Q1a(e,t){if(!e)return ooi;let r=t?"g":"gi";return new RegExp("(?:.*?)??\\s*([\\w-\\.\\/]*?)??("+V1r(e,"|")+")([\\w-]*\\d+)",r)}function X1a(e){if(!e)return/()(.+)/gi;let t=V1r(e,"|");return new RegExp("("+t+")(?:\\s+(.*?))(?=(?:"+t+")|$)","gi")}aoi.exports=function(e){e=e||{};let t=Y1a(e.noteKeywords,e.notesPattern),r=Q1a(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=X1a(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}});var Aoi=H((ydu,P1r)=>{"use strict";var{Transform:J1a}=wt("stream"),loi=soi(),uoi=coi();function goi(e){return e={headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],issuePrefixes:["#"],noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],fieldPattern:/^-(.*?)-$/,revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],warn:function(){},mergePattern:null,mergeCorrespondence:null,...e},typeof e.headerPattern=="string"&&(e.headerPattern=new RegExp(e.headerPattern)),typeof e.headerCorrespondence=="string"&&(e.headerCorrespondence=e.headerCorrespondence.split(",")),typeof e.referenceActions=="string"&&(e.referenceActions=e.referenceActions.split(",")),typeof e.issuePrefixes=="string"&&(e.issuePrefixes=e.issuePrefixes.split(",")),typeof e.noteKeywords=="string"&&(e.noteKeywords=e.noteKeywords.split(",")),typeof e.fieldPattern=="string"&&(e.fieldPattern=new RegExp(e.fieldPattern)),typeof e.revertPattern=="string"&&(e.revertPattern=new RegExp(e.revertPattern)),typeof e.revertCorrespondence=="string"&&(e.revertCorrespondence=e.revertCorrespondence.split(",")),typeof e.mergePattern=="string"&&(e.mergePattern=new RegExp(e.mergePattern)),e}function U1a(e){e=goi(e);let t=uoi(e);return new J1a({objectMode:!0,highWaterMark:16,transform(r,n,a){let o;try{o=loi(r.toString(),e,t),a(null,o)}catch(l){e.warn===!0?a(l):(e.warn(l.toString()),a(null,""))}}})}function K1a(e,t){t=goi(t);let r=uoi(t);return loi(e,t,r)}P1r.exports=U1a;P1r.exports.sync=K1a});var poi=H((bdu,doi)=>{"use strict";function j1a(){return{headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i,revertCorrespondence:["header","hash"]}}doi.exports.createParserOpts=j1a});var Ioi=H((Edu,foi)=>{"use strict";var z1a=Xfr();async function q1a(){let e=$1a();return e.mainTemplate="",e.headerPartial="",e.commitPartial="",e.footerPartial="",e}foi.exports.createWriterOpts=q1a;function $1a(){return{transform:(e,t)=>{let r=!0,n=[];if(e.notes.forEach(a=>{a.title="BREAKING CHANGES",r=!1}),e.type==="feat")e.type="Features";else if(e.type==="fix")e.type="Bug Fixes";else if(e.type==="perf")e.type="Performance Improvements";else if(e.type==="revert"||e.revert)e.type="Reverts";else{if(r)return;e.type==="docs"?e.type="Documentation":e.type==="style"?e.type="Styles":e.type==="refactor"?e.type="Code Refactoring":e.type==="test"?e.type="Tests":e.type==="build"?e.type="Build System":e.type==="ci"&&(e.type="Continuous Integration")}if(e.scope==="*"&&(e.scope=""),typeof e.hash=="string"&&(e.shortHash=e.hash.substring(0,7)),typeof e.subject=="string"){let a=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;a&&(a=`${a}/issues/`,e.subject=e.subject.replace(/#([0-9]+)/g,(o,l)=>(n.push(l),`[#${l}](${a}${l})`))),t.host&&(e.subject=e.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(o,l)=>l.includes("/")?`@${l}`:`[@${l}](${t.host}/${l})`))}return e.references=e.references.filter(a=>n.indexOf(a.issue)===-1),e},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:z1a}}});var moi=H((Sdu,hoi)=>{"use strict";function e2a(e,t){return{parserOpts:e,writerOpts:t}}hoi.exports.createConventionalChangelogOpts=e2a});var _oi=H((vdu,Coi)=>{"use strict";function t2a(e){return{parserOpts:e,whatBump(t){let r=2,n=0,a=0;return t.forEach(o=>{o.notes.length>0?(n+=o.notes.length,r=0):o.type==="feat"&&(a+=1,r===2&&(r=1))}),{level:r,reason:n===1?`There is ${n} BREAKING CHANGE and ${a} features`:`There are ${n} BREAKING CHANGES and ${a} features`}}}}Coi.exports.createConventionalRecommendedBumpOpts=t2a});var boi=H((Bdu,yoi)=>{"use strict";var{createParserOpts:r2a}=poi(),{createWriterOpts:n2a}=Ioi(),{createConventionalChangelogOpts:i2a}=moi(),{createConventionalRecommendedBumpOpts:s2a}=_oi();async function o2a(){let e=r2a(),t=await n2a(),r=s2a(e),n=i2a(e,t);return{parserOpts:e,writerOpts:t,recommendedBumpOpts:r,conventionalChangelog:n}}yoi.exports=o2a});var joi=H((Tdu,Koi)=>{var c2a=1/0,l2a="[object Symbol]",u2a=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,g2a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_Ct="\\ud800-\\udfff",xoi="\\u0300-\\u036f\\ufe20-\\ufe23",Goi="\\u20d0-\\u20f0",Foi="\\u2700-\\u27bf",Zoi="a-z\\xdf-\\xf6\\xf8-\\xff",A2a="\\xac\\xb1\\xd7\\xf7",d2a="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",p2a="\\u2000-\\u206f",f2a=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Loi="A-Z\\xc0-\\xd6\\xd8-\\xde",Voi="\\ufe0e\\ufe0f",Poi=A2a+d2a+p2a+f2a,O1r="['\u2019]",I2a="["+_Ct+"]",Boi="["+Poi+"]",CCt="["+xoi+Goi+"]",Woi="\\d+",h2a="["+Foi+"]",Ooi="["+Zoi+"]",Moi="[^"+_Ct+Poi+Woi+Foi+Zoi+Loi+"]",W1r="\\ud83c[\\udffb-\\udfff]",m2a="(?:"+CCt+"|"+W1r+")",Hoi="[^"+_Ct+"]",M1r="(?:\\ud83c[\\udde6-\\uddff]){2}",H1r="[\\ud800-\\udbff][\\udc00-\\udfff]",ATe="["+Loi+"]",Yoi="\\u200d",woi="(?:"+Ooi+"|"+Moi+")",C2a="(?:"+ATe+"|"+Moi+")",Toi="(?:"+O1r+"(?:d|ll|m|re|s|t|ve))?",Roi="(?:"+O1r+"(?:D|LL|M|RE|S|T|VE))?",Qoi=m2a+"?",Xoi="["+Voi+"]?",_2a="(?:"+Yoi+"(?:"+[Hoi,M1r,H1r].join("|")+")"+Xoi+Qoi+")*",Joi=Xoi+Qoi+_2a,y2a="(?:"+[h2a,M1r,H1r].join("|")+")"+Joi,b2a="(?:"+[Hoi+CCt+"?",CCt,M1r,H1r,I2a].join("|")+")",E2a=RegExp(O1r,"g"),S2a=RegExp(CCt,"g"),v2a=RegExp(W1r+"(?="+W1r+")|"+b2a+Joi,"g"),B2a=RegExp([ATe+"?"+Ooi+"+"+Toi+"(?="+[Boi,ATe,"$"].join("|")+")",C2a+"+"+Roi+"(?="+[Boi,ATe+woi,"$"].join("|")+")",ATe+"?"+woi+"+"+Toi,ATe+"+"+Roi,Woi,y2a].join("|"),"g"),w2a=RegExp("["+Yoi+_Ct+xoi+Goi+Voi+"]"),T2a=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,R2a={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},N2a=typeof global=="object"&&global&&global.Object===Object&&global,D2a=typeof self=="object"&&self&&self.Object===Object&&self,k2a=N2a||D2a||Function("return this")();function x2a(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:Y2a(e,t,r)}function J2a(e){return function(t){t=yCt(t);var r=Uoi(t)?P2a(t):void 0,n=r?r[0]:t.charAt(0),a=r?X2a(r,1).join(""):t.slice(1);return n[e]()+a}}function U2a(e){return function(t){return x2a(tSa($2a(t).replace(E2a,"")),e,"")}}function K2a(e){return!!e&&typeof e=="object"}function j2a(e){return typeof e=="symbol"||K2a(e)&&H2a.call(e)==l2a}function yCt(e){return e==null?"":Q2a(e)}var z2a=U2a(function(e,t,r){return t=t.toLowerCase(),e+(r?q2a(t):t)});function q2a(e){return eSa(yCt(e).toLowerCase())}function $2a(e){return e=yCt(e),e&&e.replace(g2a,L2a).replace(S2a,"")}var eSa=J2a("toUpperCase");function tSa(e,t,r){return e=yCt(e),t=r?void 0:t,t===void 0?V2a(e)?O2a(e):F2a(e):e.match(t)||[]}Koi.exports=z2a});var Cai=H((Rdu,mai)=>{var rSa=1/0,nSa="[object Symbol]",iSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,sSa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iai="\\ud800-\\udfff",oSa="\\u0300-\\u036f\\ufe20-\\ufe23",aSa="\\u20d0-\\u20f0",sai="\\u2700-\\u27bf",oai="a-z\\xdf-\\xf6\\xf8-\\xff",cSa="\\xac\\xb1\\xd7\\xf7",lSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",uSa="\\u2000-\\u206f",gSa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aai="A-Z\\xc0-\\xd6\\xd8-\\xde",ASa="\\ufe0e\\ufe0f",cai=cSa+lSa+uSa+gSa,Y1r="['\u2019]",zoi="["+cai+"]",lai="["+oSa+aSa+"]",uai="\\d+",dSa="["+sai+"]",gai="["+oai+"]",Aai="[^"+iai+cai+uai+sai+oai+aai+"]",pSa="\\ud83c[\\udffb-\\udfff]",fSa="(?:"+lai+"|"+pSa+")",ISa="[^"+iai+"]",dai="(?:\\ud83c[\\udde6-\\uddff]){2}",pai="[\\ud800-\\udbff][\\udc00-\\udfff]",dTe="["+aai+"]",hSa="\\u200d",qoi="(?:"+gai+"|"+Aai+")",mSa="(?:"+dTe+"|"+Aai+")",$oi="(?:"+Y1r+"(?:d|ll|m|re|s|t|ve))?",eai="(?:"+Y1r+"(?:D|LL|M|RE|S|T|VE))?",fai=fSa+"?",Iai="["+ASa+"]?",CSa="(?:"+hSa+"(?:"+[ISa,dai,pai].join("|")+")"+Iai+fai+")*",_Sa=Iai+fai+CSa,ySa="(?:"+[dSa,dai,pai].join("|")+")"+_Sa,bSa=RegExp(Y1r,"g"),ESa=RegExp(lai,"g"),SSa=RegExp([dTe+"?"+gai+"+"+$oi+"(?="+[zoi,dTe,"$"].join("|")+")",mSa+"+"+eai+"(?="+[zoi,dTe+qoi,"$"].join("|")+")",dTe+"?"+qoi+"+"+$oi,dTe+"+"+eai,uai,ySa].join("|"),"g"),vSa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BSa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wSa=typeof global=="object"&&global&&global.Object===Object&&global,TSa=typeof self=="object"&&self&&self.Object===Object&&self,RSa=wSa||TSa||Function("return this")();function NSa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var QSa=1/0,XSa="[object Symbol]",JSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,USa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wai="\\ud800-\\udfff",KSa="\\u0300-\\u036f\\ufe20-\\ufe23",jSa="\\u20d0-\\u20f0",Tai="\\u2700-\\u27bf",Rai="a-z\\xdf-\\xf6\\xf8-\\xff",zSa="\\xac\\xb1\\xd7\\xf7",qSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",$Sa="\\u2000-\\u206f",eva=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Nai="A-Z\\xc0-\\xd6\\xd8-\\xde",tva="\\ufe0e\\ufe0f",Dai=zSa+qSa+$Sa+eva,Q1r="['\u2019]",_ai="["+Dai+"]",kai="["+KSa+jSa+"]",xai="\\d+",rva="["+Tai+"]",Gai="["+Rai+"]",Fai="[^"+wai+Dai+xai+Tai+Rai+Nai+"]",nva="\\ud83c[\\udffb-\\udfff]",iva="(?:"+kai+"|"+nva+")",sva="[^"+wai+"]",Zai="(?:\\ud83c[\\udde6-\\uddff]){2}",Lai="[\\ud800-\\udbff][\\udc00-\\udfff]",pTe="["+Nai+"]",ova="\\u200d",yai="(?:"+Gai+"|"+Fai+")",ava="(?:"+pTe+"|"+Fai+")",bai="(?:"+Q1r+"(?:d|ll|m|re|s|t|ve))?",Eai="(?:"+Q1r+"(?:D|LL|M|RE|S|T|VE))?",Vai=iva+"?",Pai="["+tva+"]?",cva="(?:"+ova+"(?:"+[sva,Zai,Lai].join("|")+")"+Pai+Vai+")*",lva=Pai+Vai+cva,uva="(?:"+[rva,Zai,Lai].join("|")+")"+lva,gva=RegExp(Q1r,"g"),Ava=RegExp(kai,"g"),dva=RegExp([pTe+"?"+Gai+"+"+bai+"(?="+[_ai,pTe,"$"].join("|")+")",ava+"+"+Eai+"(?="+[_ai,pTe+yai,"$"].join("|")+")",pTe+"?"+yai+"+"+bai,pTe+"+"+Eai,xai,uva].join("|"),"g"),pva=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fva={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},Iva=typeof global=="object"&&global&&global.Object===Object&&global,hva=typeof self=="object"&&self&&self.Object===Object&&self,mva=Iva||hva||Function("return this")();function Cva(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var Gva=1/0,Fva="[object Symbol]",U1r="\\ud800-\\udfff",Xai="\\u0300-\\u036f\\ufe20-\\ufe23",Jai="\\u20d0-\\u20f0",Uai="\\ufe0e\\ufe0f",Zva="["+U1r+"]",X1r="["+Xai+Jai+"]",J1r="\\ud83c[\\udffb-\\udfff]",Lva="(?:"+X1r+"|"+J1r+")",Kai="[^"+U1r+"]",jai="(?:\\ud83c[\\udde6-\\uddff]){2}",zai="[\\ud800-\\udbff][\\udc00-\\udfff]",qai="\\u200d",$ai=Lva+"?",eci="["+Uai+"]?",Vva="(?:"+qai+"(?:"+[Kai,jai,zai].join("|")+")"+eci+$ai+")*",Pva=eci+$ai+Vva,Wva="(?:"+[Kai+X1r+"?",X1r,jai,zai,Zva].join("|")+")",Ova=RegExp(J1r+"(?="+J1r+")|"+Wva+Pva,"g"),Mva=RegExp("["+qai+U1r+Xai+Jai+Uai+"]"),Hva=typeof global=="object"&&global&&global.Object===Object&&global,Yva=typeof self=="object"&&self&&self.Object===Object&&self,Qva=Hva||Yva||Function("return this")();function Xva(e){return e.split("")}function tci(e){return Mva.test(e)}function Jva(e){return tci(e)?Uva(e):Xva(e)}function Uva(e){return e.match(Ova)||[]}var Kva=Object.prototype,jva=Kva.toString,Hai=Qva.Symbol,Yai=Hai?Hai.prototype:void 0,Qai=Yai?Yai.toString:void 0;function zva(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:zva(e,t,r)}function eBa(e){return function(t){t=nBa(t);var r=tci(t)?Jva(t):void 0,n=r?r[0]:t.charAt(0),a=r?$va(r,1).join(""):t.slice(1);return n[e]()+a}}function tBa(e){return!!e&&typeof e=="object"}function rBa(e){return typeof e=="symbol"||tBa(e)&&jva.call(e)==Fva}function nBa(e){return e==null?"":qva(e)}var iBa=eBa("toUpperCase");rci.exports=iBa});var Tci=H((kdu,wci)=>{var sBa=1/0,oBa="[object Symbol]",aBa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,cBa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ECt="\\ud800-\\udfff",gci="\\u0300-\\u036f\\ufe20-\\ufe23",Aci="\\u20d0-\\u20f0",dci="\\u2700-\\u27bf",pci="a-z\\xdf-\\xf6\\xf8-\\xff",lBa="\\xac\\xb1\\xd7\\xf7",uBa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",gBa="\\u2000-\\u206f",ABa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",fci="A-Z\\xc0-\\xd6\\xd8-\\xde",Ici="\\ufe0e\\ufe0f",hci=lBa+uBa+gBa+ABa,j1r="['\u2019]",dBa="["+ECt+"]",ici="["+hci+"]",bCt="["+gci+Aci+"]",mci="\\d+",pBa="["+dci+"]",Cci="["+pci+"]",_ci="[^"+ECt+hci+mci+dci+pci+fci+"]",K1r="\\ud83c[\\udffb-\\udfff]",fBa="(?:"+bCt+"|"+K1r+")",yci="[^"+ECt+"]",z1r="(?:\\ud83c[\\udde6-\\uddff]){2}",q1r="[\\ud800-\\udbff][\\udc00-\\udfff]",fTe="["+fci+"]",bci="\\u200d",sci="(?:"+Cci+"|"+_ci+")",IBa="(?:"+fTe+"|"+_ci+")",oci="(?:"+j1r+"(?:d|ll|m|re|s|t|ve))?",aci="(?:"+j1r+"(?:D|LL|M|RE|S|T|VE))?",Eci=fBa+"?",Sci="["+Ici+"]?",hBa="(?:"+bci+"(?:"+[yci,z1r,q1r].join("|")+")"+Sci+Eci+")*",vci=Sci+Eci+hBa,mBa="(?:"+[pBa,z1r,q1r].join("|")+")"+vci,CBa="(?:"+[yci+bCt+"?",bCt,z1r,q1r,dBa].join("|")+")",_Ba=RegExp(j1r,"g"),yBa=RegExp(bCt,"g"),bBa=RegExp(K1r+"(?="+K1r+")|"+CBa+vci,"g"),EBa=RegExp([fTe+"?"+Cci+"+"+oci+"(?="+[ici,fTe,"$"].join("|")+")",IBa+"+"+aci+"(?="+[ici,fTe+sci,"$"].join("|")+")",fTe+"?"+sci+"+"+oci,fTe+"+"+aci,mci,mBa].join("|"),"g"),SBa=RegExp("["+bci+ECt+gci+Aci+Ici+"]"),vBa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BBa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wBa=typeof global=="object"&&global&&global.Object===Object&&global,TBa=typeof self=="object"&&self&&self.Object===Object&&self,RBa=wBa||TBa||Function("return this")();function NBa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:OBa(e,t,r)}function YBa(e){return function(t){t=$1r(t);var r=Bci(t)?ZBa(t):void 0,n=r?r[0]:t.charAt(0),a=r?HBa(r,1).join(""):t.slice(1);return n[e]()+a}}function QBa(e){return function(t){return NBa(zBa(UBa(t).replace(_Ba,"")),e,"")}}function XBa(e){return!!e&&typeof e=="object"}function JBa(e){return typeof e=="symbol"||XBa(e)&&WBa.call(e)==oBa}function $1r(e){return e==null?"":MBa(e)}function UBa(e){return e=$1r(e),e&&e.replace(cBa,GBa).replace(yBa,"")}var KBa=QBa(function(e,t,r){return e+(r?" ":"")+jBa(t)}),jBa=YBa("toUpperCase");function zBa(e,t,r){return e=$1r(e),t=r?void 0:t,t===void 0?FBa(e)?VBa(e):kBa(e):e.match(t)||[]}wci.exports=KBa});var yli=H(Rhe=>{"use strict";Object.defineProperty(Rhe,"__esModule",{value:!0});Rhe.Application=Rhe.MinistoreContext=void 0;var nwa=(Pa(),vi(Va)),iwa=Al(),DQe=nwa.__importStar(Ec()),swa=wt("readline");Rhe.MinistoreContext=DQe.default.createContext(null);var owa=({children:e})=>{let{stdin:t,setRawMode:r}=(0,iwa.useStdin)();(0,DQe.useEffect)(()=>{r&&r(!0),t&&(0,swa.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,DQe.useState)(new Map),o=(0,DQe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(new Map([...n,[l,A]]))}),[n,a]);return DQe.default.createElement(Rhe.MinistoreContext.Provider,{value:o,children:e})};Rhe.Application=owa});var Eli=H(l2r=>{"use strict";Object.defineProperty(l2r,"__esModule",{value:!0});l2r.useKeypress=cwa;var awa=Al(),bli=Ec();function cwa({active:e},t,r){let{stdin:n}=(0,awa.useStdin)(),a=(0,bli.useCallback)((o,l)=>t(o,l),r);(0,bli.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var Bli=H(u2r=>{"use strict";Object.defineProperty(u2r,"__esModule",{value:!0});u2r.renderForm=Awa;var lwa=(Pa(),vi(Va)),Sli=Al(),vli=lwa.__importDefault(Ec()),uwa=yli(),gwa=Eli();async function Awa(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,Sli.useApp)();(0,gwa.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,Sli.render)(vli.default.createElement(uwa.Application,null,vli.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var Rli=H(wCt=>{"use strict";Object.defineProperty(wCt,"__esModule",{value:!0});wCt.forceStdinTty=void 0;var wli=Tli(wt("fs")),dwa=Tli(wt("tty"));function Tli(e){return e&&e.__esModule?e:{default:e}}var pwa=function(){if(process.stdin.isTTY)return!1;var t=wli.default.constants,r=t.O_RDONLY,n=t.O_NOCTTY,a=wli.default.openSync("/dev/tty",r+n),o=new dwa.default.ReadStream(a);return Object.defineProperty(process,"stdin",{configurable:!0,enumerable:!0,get:function(){return o}}),!0};wCt.forceStdinTty=pwa});var Dli=H((JIu,Nli)=>{function fwa(e){let t=e.length-1,r=e[t];for(;r===" "||r===" ";)r=e[--t];return e.substring(0,t+1)}function Iwa(e){return e.split(` +`+t:e=t,e}function W1a(e){return function(t){return t.charAt(0)!==e}}function O1a(e){let t=e.indexOf(P1a);return t===-1?e:e.slice(0,t)}function noi(e,t){let r=[],n,a,o=e.match(t.references)!==null?t.references:V1a;for(;n=o.exec(e);){let l=n[1]||null,A=n[2];for(;a=t.referenceParts.exec(A);){let f=null,I=a[1]||"",C=I.split("/");C.length>1&&(f=C.shift(),I=C.join("/"));let b={action:l,owner:f,repository:I||null,issue:a[3],raw:a[0],prefix:a[2]};r.push(b)}}return r}function M1a(){return!0}function H1a(e,t,r){if(!e||!e.trim())throw new TypeError("Expected a raw commit");if(!t||typeof t=="object"&&!Object.keys(t).length)throw new TypeError("Expected options");if(!r)throw new TypeError("Expected regex");let n,a,o={},l=typeof t.commentChar=="string"?W1a(t.commentChar):M1a,A=ct=>!ct.match(/^\s*gpg:/),f=mCt(e).split(/\r?\n/),I=O1a(f).filter(l).filter(A),C=!1,b=!0,E=t.headerCorrespondence?.map(function(ct){return ct.trim()})||[],N=t.revertCorrespondence?.map(function(ct){return ct.trim()})||[],B=t.mergeCorrespondence?.map(function(ct){return ct.trim()})||[],F=null,Q=null,X=null,ae=[],ne=null,ce=[],fe=[],ue=null;if(I.length===0)return{body:F,footer:Q,header:X,mentions:ae,merge:ne,notes:ce,references:fe,revert:ue,scope:null,subject:null,type:null};ne=I.shift();let de={},be={};F="",Q="";let Se=ne.match(t.mergePattern);if(Se&&t.mergePattern){for(ne=Se[0],X=I.shift();X!==void 0&&!X.trim();)X=I.shift();X||(X=""),B.forEach(function(ct,Me){let je=Se[Me+1]||null;de[ct]=je})}else X=ne,ne=null,B.forEach(function(ct){de[ct]=null});let De=X.match(t.headerPattern);if(De?E.forEach(function(ct,Me){let je=De[Me+1]||null;be[ct]=je}):E.forEach(function(ct){be[ct]=null}),fe.push(...noi(X,{references:r.references,referenceParts:r.referenceParts})),I.forEach(function(ct){if(t.fieldPattern){let At=t.fieldPattern.exec(ct);if(At){n=At[1];return}if(n){o[n]=whe(o[n],ct);return}}let Me,je=ct.match(r.notes);if(je){C=!0,b=!1,Q=whe(Q,ct);let At={title:je[1],text:je[2]};ce.push(At);return}let St=noi(ct,{references:r.references,referenceParts:r.referenceParts});if(St.length>0&&(b=!1,Me=!0,C=!1),Array.prototype.push.apply(fe,St),Me){Q=whe(Q,ct);return}if(C){ce[ce.length-1].text=whe(ce[ce.length-1].text,ct),Q=whe(Q,ct);return}b?F=whe(F,ct):Q=whe(Q,ct)}),t.breakingHeaderPattern&&ce.length===0){let ct=X.match(t.breakingHeaderPattern);if(ct){let Me=ct[3];ce.push({title:"BREAKING CHANGE",text:Me})}}for(;a=r.mentions.exec(e);)ae.push(a[1]);let k=e.match(t.revertPattern);return k?(ue={},N.forEach(function(ct,Me){let je=k[Me+1]||null;ue[ct]=je})):ue=null,ce.forEach(function(ct){ct.text=mCt(ct.text)}),{...be,...de,merge:ne,header:X,body:F?mCt(F):null,footer:Q?mCt(Q):null,notes:ce,references:fe,mentions:ae,revert:ue,...o}}ioi.exports=H1a});var coi=H((ydu,aoi)=>{"use strict";var ooi=/(?!.*)/;function V1r(e,t){return e.map(function(r){return r.trim()}).filter(function(r){return r.length}).join(t)}function Y1a(e,t){if(!e)return ooi;let r=V1r(e,"|");return t?t(r):new RegExp("^[\\s|*]*("+r+")[:\\s]+(.*)","i")}function Q1a(e,t){if(!e)return ooi;let r=t?"g":"gi";return new RegExp("(?:.*?)??\\s*([\\w-\\.\\/]*?)??("+V1r(e,"|")+")([\\w-]*\\d+)",r)}function X1a(e){if(!e)return/()(.+)/gi;let t=V1r(e,"|");return new RegExp("("+t+")(?:\\s+(.*?))(?=(?:"+t+")|$)","gi")}aoi.exports=function(e){e=e||{};let t=Y1a(e.noteKeywords,e.notesPattern),r=Q1a(e.issuePrefixes,e.issuePrefixesCaseSensitive),n=X1a(e.referenceActions);return{notes:t,referenceParts:r,references:n,mentions:/@([\w-]+)/g}}});var Aoi=H((bdu,P1r)=>{"use strict";var{Transform:J1a}=wt("stream"),loi=soi(),uoi=coi();function goi(e){return e={headerPattern:/^(\w*)(?:\(([\w$.\-*/ ]*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],referenceActions:["close","closes","closed","fix","fixes","fixed","resolve","resolves","resolved"],issuePrefixes:["#"],noteKeywords:["BREAKING CHANGE","BREAKING-CHANGE"],fieldPattern:/^-(.*?)-$/,revertPattern:/^Revert\s"([\s\S]*)"\s*This reverts commit (\w*)\./,revertCorrespondence:["header","hash"],warn:function(){},mergePattern:null,mergeCorrespondence:null,...e},typeof e.headerPattern=="string"&&(e.headerPattern=new RegExp(e.headerPattern)),typeof e.headerCorrespondence=="string"&&(e.headerCorrespondence=e.headerCorrespondence.split(",")),typeof e.referenceActions=="string"&&(e.referenceActions=e.referenceActions.split(",")),typeof e.issuePrefixes=="string"&&(e.issuePrefixes=e.issuePrefixes.split(",")),typeof e.noteKeywords=="string"&&(e.noteKeywords=e.noteKeywords.split(",")),typeof e.fieldPattern=="string"&&(e.fieldPattern=new RegExp(e.fieldPattern)),typeof e.revertPattern=="string"&&(e.revertPattern=new RegExp(e.revertPattern)),typeof e.revertCorrespondence=="string"&&(e.revertCorrespondence=e.revertCorrespondence.split(",")),typeof e.mergePattern=="string"&&(e.mergePattern=new RegExp(e.mergePattern)),e}function U1a(e){e=goi(e);let t=uoi(e);return new J1a({objectMode:!0,highWaterMark:16,transform(r,n,a){let o;try{o=loi(r.toString(),e,t),a(null,o)}catch(l){e.warn===!0?a(l):(e.warn(l.toString()),a(null,""))}}})}function K1a(e,t){t=goi(t);let r=uoi(t);return loi(e,t,r)}P1r.exports=U1a;P1r.exports.sync=K1a});var poi=H((Edu,doi)=>{"use strict";function j1a(){return{headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w*)\./i,revertCorrespondence:["header","hash"]}}doi.exports.createParserOpts=j1a});var Ioi=H((Sdu,foi)=>{"use strict";var z1a=Xfr();async function q1a(){let e=$1a();return e.mainTemplate="",e.headerPartial="",e.commitPartial="",e.footerPartial="",e}foi.exports.createWriterOpts=q1a;function $1a(){return{transform:(e,t)=>{let r=!0,n=[];if(e.notes.forEach(a=>{a.title="BREAKING CHANGES",r=!1}),e.type==="feat")e.type="Features";else if(e.type==="fix")e.type="Bug Fixes";else if(e.type==="perf")e.type="Performance Improvements";else if(e.type==="revert"||e.revert)e.type="Reverts";else{if(r)return;e.type==="docs"?e.type="Documentation":e.type==="style"?e.type="Styles":e.type==="refactor"?e.type="Code Refactoring":e.type==="test"?e.type="Tests":e.type==="build"?e.type="Build System":e.type==="ci"&&(e.type="Continuous Integration")}if(e.scope==="*"&&(e.scope=""),typeof e.hash=="string"&&(e.shortHash=e.hash.substring(0,7)),typeof e.subject=="string"){let a=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;a&&(a=`${a}/issues/`,e.subject=e.subject.replace(/#([0-9]+)/g,(o,l)=>(n.push(l),`[#${l}](${a}${l})`))),t.host&&(e.subject=e.subject.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(o,l)=>l.includes("/")?`@${l}`:`[@${l}](${t.host}/${l})`))}return e.references=e.references.filter(a=>n.indexOf(a.issue)===-1),e},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:z1a}}});var moi=H((vdu,hoi)=>{"use strict";function e2a(e,t){return{parserOpts:e,writerOpts:t}}hoi.exports.createConventionalChangelogOpts=e2a});var _oi=H((Bdu,Coi)=>{"use strict";function t2a(e){return{parserOpts:e,whatBump(t){let r=2,n=0,a=0;return t.forEach(o=>{o.notes.length>0?(n+=o.notes.length,r=0):o.type==="feat"&&(a+=1,r===2&&(r=1))}),{level:r,reason:n===1?`There is ${n} BREAKING CHANGE and ${a} features`:`There are ${n} BREAKING CHANGES and ${a} features`}}}}Coi.exports.createConventionalRecommendedBumpOpts=t2a});var boi=H((wdu,yoi)=>{"use strict";var{createParserOpts:r2a}=poi(),{createWriterOpts:n2a}=Ioi(),{createConventionalChangelogOpts:i2a}=moi(),{createConventionalRecommendedBumpOpts:s2a}=_oi();async function o2a(){let e=r2a(),t=await n2a(),r=s2a(e),n=i2a(e,t);return{parserOpts:e,writerOpts:t,recommendedBumpOpts:r,conventionalChangelog:n}}yoi.exports=o2a});var joi=H((Rdu,Koi)=>{var c2a=1/0,l2a="[object Symbol]",u2a=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,g2a=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,_Ct="\\ud800-\\udfff",xoi="\\u0300-\\u036f\\ufe20-\\ufe23",Goi="\\u20d0-\\u20f0",Foi="\\u2700-\\u27bf",Zoi="a-z\\xdf-\\xf6\\xf8-\\xff",A2a="\\xac\\xb1\\xd7\\xf7",d2a="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",p2a="\\u2000-\\u206f",f2a=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Loi="A-Z\\xc0-\\xd6\\xd8-\\xde",Voi="\\ufe0e\\ufe0f",Poi=A2a+d2a+p2a+f2a,O1r="['\u2019]",I2a="["+_Ct+"]",Boi="["+Poi+"]",CCt="["+xoi+Goi+"]",Woi="\\d+",h2a="["+Foi+"]",Ooi="["+Zoi+"]",Moi="[^"+_Ct+Poi+Woi+Foi+Zoi+Loi+"]",W1r="\\ud83c[\\udffb-\\udfff]",m2a="(?:"+CCt+"|"+W1r+")",Hoi="[^"+_Ct+"]",M1r="(?:\\ud83c[\\udde6-\\uddff]){2}",H1r="[\\ud800-\\udbff][\\udc00-\\udfff]",ATe="["+Loi+"]",Yoi="\\u200d",woi="(?:"+Ooi+"|"+Moi+")",C2a="(?:"+ATe+"|"+Moi+")",Toi="(?:"+O1r+"(?:d|ll|m|re|s|t|ve))?",Roi="(?:"+O1r+"(?:D|LL|M|RE|S|T|VE))?",Qoi=m2a+"?",Xoi="["+Voi+"]?",_2a="(?:"+Yoi+"(?:"+[Hoi,M1r,H1r].join("|")+")"+Xoi+Qoi+")*",Joi=Xoi+Qoi+_2a,y2a="(?:"+[h2a,M1r,H1r].join("|")+")"+Joi,b2a="(?:"+[Hoi+CCt+"?",CCt,M1r,H1r,I2a].join("|")+")",E2a=RegExp(O1r,"g"),S2a=RegExp(CCt,"g"),v2a=RegExp(W1r+"(?="+W1r+")|"+b2a+Joi,"g"),B2a=RegExp([ATe+"?"+Ooi+"+"+Toi+"(?="+[Boi,ATe,"$"].join("|")+")",C2a+"+"+Roi+"(?="+[Boi,ATe+woi,"$"].join("|")+")",ATe+"?"+woi+"+"+Toi,ATe+"+"+Roi,Woi,y2a].join("|"),"g"),w2a=RegExp("["+Yoi+_Ct+xoi+Goi+Voi+"]"),T2a=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,R2a={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},N2a=typeof global=="object"&&global&&global.Object===Object&&global,D2a=typeof self=="object"&&self&&self.Object===Object&&self,k2a=N2a||D2a||Function("return this")();function x2a(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:Y2a(e,t,r)}function J2a(e){return function(t){t=yCt(t);var r=Uoi(t)?P2a(t):void 0,n=r?r[0]:t.charAt(0),a=r?X2a(r,1).join(""):t.slice(1);return n[e]()+a}}function U2a(e){return function(t){return x2a(tSa($2a(t).replace(E2a,"")),e,"")}}function K2a(e){return!!e&&typeof e=="object"}function j2a(e){return typeof e=="symbol"||K2a(e)&&H2a.call(e)==l2a}function yCt(e){return e==null?"":Q2a(e)}var z2a=U2a(function(e,t,r){return t=t.toLowerCase(),e+(r?q2a(t):t)});function q2a(e){return eSa(yCt(e).toLowerCase())}function $2a(e){return e=yCt(e),e&&e.replace(g2a,L2a).replace(S2a,"")}var eSa=J2a("toUpperCase");function tSa(e,t,r){return e=yCt(e),t=r?void 0:t,t===void 0?V2a(e)?O2a(e):F2a(e):e.match(t)||[]}Koi.exports=z2a});var Cai=H((Ndu,mai)=>{var rSa=1/0,nSa="[object Symbol]",iSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,sSa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,iai="\\ud800-\\udfff",oSa="\\u0300-\\u036f\\ufe20-\\ufe23",aSa="\\u20d0-\\u20f0",sai="\\u2700-\\u27bf",oai="a-z\\xdf-\\xf6\\xf8-\\xff",cSa="\\xac\\xb1\\xd7\\xf7",lSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",uSa="\\u2000-\\u206f",gSa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",aai="A-Z\\xc0-\\xd6\\xd8-\\xde",ASa="\\ufe0e\\ufe0f",cai=cSa+lSa+uSa+gSa,Y1r="['\u2019]",zoi="["+cai+"]",lai="["+oSa+aSa+"]",uai="\\d+",dSa="["+sai+"]",gai="["+oai+"]",Aai="[^"+iai+cai+uai+sai+oai+aai+"]",pSa="\\ud83c[\\udffb-\\udfff]",fSa="(?:"+lai+"|"+pSa+")",ISa="[^"+iai+"]",dai="(?:\\ud83c[\\udde6-\\uddff]){2}",pai="[\\ud800-\\udbff][\\udc00-\\udfff]",dTe="["+aai+"]",hSa="\\u200d",qoi="(?:"+gai+"|"+Aai+")",mSa="(?:"+dTe+"|"+Aai+")",$oi="(?:"+Y1r+"(?:d|ll|m|re|s|t|ve))?",eai="(?:"+Y1r+"(?:D|LL|M|RE|S|T|VE))?",fai=fSa+"?",Iai="["+ASa+"]?",CSa="(?:"+hSa+"(?:"+[ISa,dai,pai].join("|")+")"+Iai+fai+")*",_Sa=Iai+fai+CSa,ySa="(?:"+[dSa,dai,pai].join("|")+")"+_Sa,bSa=RegExp(Y1r,"g"),ESa=RegExp(lai,"g"),SSa=RegExp([dTe+"?"+gai+"+"+$oi+"(?="+[zoi,dTe,"$"].join("|")+")",mSa+"+"+eai+"(?="+[zoi,dTe+qoi,"$"].join("|")+")",dTe+"?"+qoi+"+"+$oi,dTe+"+"+eai,uai,ySa].join("|"),"g"),vSa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BSa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wSa=typeof global=="object"&&global&&global.Object===Object&&global,TSa=typeof self=="object"&&self&&self.Object===Object&&self,RSa=wSa||TSa||Function("return this")();function NSa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var QSa=1/0,XSa="[object Symbol]",JSa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,USa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,wai="\\ud800-\\udfff",KSa="\\u0300-\\u036f\\ufe20-\\ufe23",jSa="\\u20d0-\\u20f0",Tai="\\u2700-\\u27bf",Rai="a-z\\xdf-\\xf6\\xf8-\\xff",zSa="\\xac\\xb1\\xd7\\xf7",qSa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",$Sa="\\u2000-\\u206f",eva=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Nai="A-Z\\xc0-\\xd6\\xd8-\\xde",tva="\\ufe0e\\ufe0f",Dai=zSa+qSa+$Sa+eva,Q1r="['\u2019]",_ai="["+Dai+"]",kai="["+KSa+jSa+"]",xai="\\d+",rva="["+Tai+"]",Gai="["+Rai+"]",Fai="[^"+wai+Dai+xai+Tai+Rai+Nai+"]",nva="\\ud83c[\\udffb-\\udfff]",iva="(?:"+kai+"|"+nva+")",sva="[^"+wai+"]",Zai="(?:\\ud83c[\\udde6-\\uddff]){2}",Lai="[\\ud800-\\udbff][\\udc00-\\udfff]",pTe="["+Nai+"]",ova="\\u200d",yai="(?:"+Gai+"|"+Fai+")",ava="(?:"+pTe+"|"+Fai+")",bai="(?:"+Q1r+"(?:d|ll|m|re|s|t|ve))?",Eai="(?:"+Q1r+"(?:D|LL|M|RE|S|T|VE))?",Vai=iva+"?",Pai="["+tva+"]?",cva="(?:"+ova+"(?:"+[sva,Zai,Lai].join("|")+")"+Pai+Vai+")*",lva=Pai+Vai+cva,uva="(?:"+[rva,Zai,Lai].join("|")+")"+lva,gva=RegExp(Q1r,"g"),Ava=RegExp(kai,"g"),dva=RegExp([pTe+"?"+Gai+"+"+bai+"(?="+[_ai,pTe,"$"].join("|")+")",ava+"+"+Eai+"(?="+[_ai,pTe+yai,"$"].join("|")+")",pTe+"?"+yai+"+"+bai,pTe+"+"+Eai,xai,uva].join("|"),"g"),pva=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,fva={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},Iva=typeof global=="object"&&global&&global.Object===Object&&global,hva=typeof self=="object"&&self&&self.Object===Object&&self,mva=Iva||hva||Function("return this")();function Cva(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a{var Gva=1/0,Fva="[object Symbol]",U1r="\\ud800-\\udfff",Xai="\\u0300-\\u036f\\ufe20-\\ufe23",Jai="\\u20d0-\\u20f0",Uai="\\ufe0e\\ufe0f",Zva="["+U1r+"]",X1r="["+Xai+Jai+"]",J1r="\\ud83c[\\udffb-\\udfff]",Lva="(?:"+X1r+"|"+J1r+")",Kai="[^"+U1r+"]",jai="(?:\\ud83c[\\udde6-\\uddff]){2}",zai="[\\ud800-\\udbff][\\udc00-\\udfff]",qai="\\u200d",$ai=Lva+"?",eci="["+Uai+"]?",Vva="(?:"+qai+"(?:"+[Kai,jai,zai].join("|")+")"+eci+$ai+")*",Pva=eci+$ai+Vva,Wva="(?:"+[Kai+X1r+"?",X1r,jai,zai,Zva].join("|")+")",Ova=RegExp(J1r+"(?="+J1r+")|"+Wva+Pva,"g"),Mva=RegExp("["+qai+U1r+Xai+Jai+Uai+"]"),Hva=typeof global=="object"&&global&&global.Object===Object&&global,Yva=typeof self=="object"&&self&&self.Object===Object&&self,Qva=Hva||Yva||Function("return this")();function Xva(e){return e.split("")}function tci(e){return Mva.test(e)}function Jva(e){return tci(e)?Uva(e):Xva(e)}function Uva(e){return e.match(Ova)||[]}var Kva=Object.prototype,jva=Kva.toString,Hai=Qva.Symbol,Yai=Hai?Hai.prototype:void 0,Qai=Yai?Yai.toString:void 0;function zva(e,t,r){var n=-1,a=e.length;t<0&&(t=-t>a?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:zva(e,t,r)}function eBa(e){return function(t){t=nBa(t);var r=tci(t)?Jva(t):void 0,n=r?r[0]:t.charAt(0),a=r?$va(r,1).join(""):t.slice(1);return n[e]()+a}}function tBa(e){return!!e&&typeof e=="object"}function rBa(e){return typeof e=="symbol"||tBa(e)&&jva.call(e)==Fva}function nBa(e){return e==null?"":qva(e)}var iBa=eBa("toUpperCase");rci.exports=iBa});var Tci=H((xdu,wci)=>{var sBa=1/0,oBa="[object Symbol]",aBa=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,cBa=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ECt="\\ud800-\\udfff",gci="\\u0300-\\u036f\\ufe20-\\ufe23",Aci="\\u20d0-\\u20f0",dci="\\u2700-\\u27bf",pci="a-z\\xdf-\\xf6\\xf8-\\xff",lBa="\\xac\\xb1\\xd7\\xf7",uBa="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",gBa="\\u2000-\\u206f",ABa=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",fci="A-Z\\xc0-\\xd6\\xd8-\\xde",Ici="\\ufe0e\\ufe0f",hci=lBa+uBa+gBa+ABa,j1r="['\u2019]",dBa="["+ECt+"]",ici="["+hci+"]",bCt="["+gci+Aci+"]",mci="\\d+",pBa="["+dci+"]",Cci="["+pci+"]",_ci="[^"+ECt+hci+mci+dci+pci+fci+"]",K1r="\\ud83c[\\udffb-\\udfff]",fBa="(?:"+bCt+"|"+K1r+")",yci="[^"+ECt+"]",z1r="(?:\\ud83c[\\udde6-\\uddff]){2}",q1r="[\\ud800-\\udbff][\\udc00-\\udfff]",fTe="["+fci+"]",bci="\\u200d",sci="(?:"+Cci+"|"+_ci+")",IBa="(?:"+fTe+"|"+_ci+")",oci="(?:"+j1r+"(?:d|ll|m|re|s|t|ve))?",aci="(?:"+j1r+"(?:D|LL|M|RE|S|T|VE))?",Eci=fBa+"?",Sci="["+Ici+"]?",hBa="(?:"+bci+"(?:"+[yci,z1r,q1r].join("|")+")"+Sci+Eci+")*",vci=Sci+Eci+hBa,mBa="(?:"+[pBa,z1r,q1r].join("|")+")"+vci,CBa="(?:"+[yci+bCt+"?",bCt,z1r,q1r,dBa].join("|")+")",_Ba=RegExp(j1r,"g"),yBa=RegExp(bCt,"g"),bBa=RegExp(K1r+"(?="+K1r+")|"+CBa+vci,"g"),EBa=RegExp([fTe+"?"+Cci+"+"+oci+"(?="+[ici,fTe,"$"].join("|")+")",IBa+"+"+aci+"(?="+[ici,fTe+sci,"$"].join("|")+")",fTe+"?"+sci+"+"+oci,fTe+"+"+aci,mci,mBa].join("|"),"g"),SBa=RegExp("["+bci+ECt+gci+Aci+Ici+"]"),vBa=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,BBa={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"ss"},wBa=typeof global=="object"&&global&&global.Object===Object&&global,TBa=typeof self=="object"&&self&&self.Object===Object&&self,RBa=wBa||TBa||Function("return this")();function NBa(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++aa?0:a+t),r=r>a?a:r,r<0&&(r+=a),a=t>r?0:r-t>>>0,t>>>=0;for(var o=Array(a);++n=n?e:OBa(e,t,r)}function YBa(e){return function(t){t=$1r(t);var r=Bci(t)?ZBa(t):void 0,n=r?r[0]:t.charAt(0),a=r?HBa(r,1).join(""):t.slice(1);return n[e]()+a}}function QBa(e){return function(t){return NBa(zBa(UBa(t).replace(_Ba,"")),e,"")}}function XBa(e){return!!e&&typeof e=="object"}function JBa(e){return typeof e=="symbol"||XBa(e)&&WBa.call(e)==oBa}function $1r(e){return e==null?"":MBa(e)}function UBa(e){return e=$1r(e),e&&e.replace(cBa,GBa).replace(yBa,"")}var KBa=QBa(function(e,t,r){return e+(r?" ":"")+jBa(t)}),jBa=YBa("toUpperCase");function zBa(e,t,r){return e=$1r(e),t=r?void 0:t,t===void 0?FBa(e)?VBa(e):kBa(e):e.match(t)||[]}wci.exports=KBa});var yli=H(Rhe=>{"use strict";Object.defineProperty(Rhe,"__esModule",{value:!0});Rhe.Application=Rhe.MinistoreContext=void 0;var nwa=(Pa(),vi(Va)),iwa=Al(),DQe=nwa.__importStar(Ec()),swa=wt("readline");Rhe.MinistoreContext=DQe.default.createContext(null);var owa=({children:e})=>{let{stdin:t,setRawMode:r}=(0,iwa.useStdin)();(0,DQe.useEffect)(()=>{r&&r(!0),t&&(0,swa.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,DQe.useState)(new Map),o=(0,DQe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(new Map([...n,[l,A]]))}),[n,a]);return DQe.default.createElement(Rhe.MinistoreContext.Provider,{value:o,children:e})};Rhe.Application=owa});var Eli=H(l2r=>{"use strict";Object.defineProperty(l2r,"__esModule",{value:!0});l2r.useKeypress=cwa;var awa=Al(),bli=Ec();function cwa({active:e},t,r){let{stdin:n}=(0,awa.useStdin)(),a=(0,bli.useCallback)((o,l)=>t(o,l),r);(0,bli.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var Bli=H(u2r=>{"use strict";Object.defineProperty(u2r,"__esModule",{value:!0});u2r.renderForm=Awa;var lwa=(Pa(),vi(Va)),Sli=Al(),vli=lwa.__importDefault(Ec()),uwa=yli(),gwa=Eli();async function Awa(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,Sli.useApp)();(0,gwa.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,Sli.render)(vli.default.createElement(uwa.Application,null,vli.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var Rli=H(wCt=>{"use strict";Object.defineProperty(wCt,"__esModule",{value:!0});wCt.forceStdinTty=void 0;var wli=Tli(wt("fs")),dwa=Tli(wt("tty"));function Tli(e){return e&&e.__esModule?e:{default:e}}var pwa=function(){if(process.stdin.isTTY)return!1;var t=wli.default.constants,r=t.O_RDONLY,n=t.O_NOCTTY,a=wli.default.openSync("/dev/tty",r+n),o=new dwa.default.ReadStream(a);return Object.defineProperty(process,"stdin",{configurable:!0,enumerable:!0,get:function(){return o}}),!0};wCt.forceStdinTty=pwa});var Dli=H((UIu,Nli)=>{function fwa(e){let t=e.length-1,r=e[t];for(;r===" "||r===" ";)r=e[--t];return e.substring(0,t+1)}function Iwa(e){return e.split(` `).map(n=>fwa(n)).join(` `)}Nli.exports=function(e,t){if(t=t||{},e==null)return e;var r=t.width||50,n=typeof t.indent=="string"?t.indent:" ",a=t.newline||` `+n,o=typeof t.escape=="function"?t.escape:hwa,l=".{1,"+r+"}";t.cut!==!0&&(l+="([\\s\u200B]+|$)|[^\\s\u200B]+?([\\s\u200B]+|$)");var A=new RegExp(l,"g"),f=e.match(A)||[],I=n+f.map(function(C){return C.slice(-1)===` -`&&(C=C.slice(0,C.length-1)),o(C)}).join(a);return t.trim===!0&&(I=Iwa(I)),I};function hwa(e){return e}});var xli=H((UIu,kli)=>{"use strict";var mwa="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";kli.exports=mwa});var Lli=H((KIu,Zli)=>{"use strict";var Cwa=xli();function Gli(){}function Fli(){}Fli.resetWarningCache=Gli;Zli.exports=function(){function e(n,a,o,l,A,f){if(f!==Cwa){var I=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw I.name="Invariant Violation",I}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Fli,resetWarningCache:Gli};return r.PropTypes=r,r}});var mTe=H((qIu,Vli)=>{Vli.exports=Lli()();var jIu,zIu});var b2r=H((kQe,_Te)=>{var _wa=200,y2r="__lodash_hash_undefined__",FCt=1,jli=2,zli=9007199254740991,TCt="[object Arguments]",p2r="[object Array]",ywa="[object AsyncFunction]",qli="[object Boolean]",$li="[object Date]",eui="[object Error]",tui="[object Function]",bwa="[object GeneratorFunction]",RCt="[object Map]",rui="[object Number]",Ewa="[object Null]",CTe="[object Object]",Pli="[object Promise]",Swa="[object Proxy]",nui="[object RegExp]",NCt="[object Set]",iui="[object String]",vwa="[object Symbol]",Bwa="[object Undefined]",f2r="[object WeakMap]",sui="[object ArrayBuffer]",DCt="[object DataView]",wwa="[object Float32Array]",Twa="[object Float64Array]",Rwa="[object Int8Array]",Nwa="[object Int16Array]",Dwa="[object Int32Array]",kwa="[object Uint8Array]",xwa="[object Uint8ClampedArray]",Gwa="[object Uint16Array]",Fwa="[object Uint32Array]",Zwa=/[\\^$.*+?()[\]{}|]/g,Lwa=/^\[object .+?Constructor\]$/,Vwa=/^(?:0|[1-9]\d*)$/,M1={};M1[wwa]=M1[Twa]=M1[Rwa]=M1[Nwa]=M1[Dwa]=M1[kwa]=M1[xwa]=M1[Gwa]=M1[Fwa]=!0;M1[TCt]=M1[p2r]=M1[sui]=M1[qli]=M1[DCt]=M1[$li]=M1[eui]=M1[tui]=M1[RCt]=M1[rui]=M1[CTe]=M1[nui]=M1[NCt]=M1[iui]=M1[f2r]=!1;var oui=typeof global=="object"&&global&&global.Object===Object&&global,Pwa=typeof self=="object"&&self&&self.Object===Object&&self,z$=oui||Pwa||Function("return this")(),aui=typeof kQe=="object"&&kQe&&!kQe.nodeType&&kQe,Wli=aui&&typeof _Te=="object"&&_Te&&!_Te.nodeType&&_Te,cui=Wli&&Wli.exports===aui,g2r=cui&&oui.process,Oli=function(){try{return g2r&&g2r.binding&&g2r.binding("util")}catch{}}(),Mli=Oli&&Oli.isTypedArray;function Wwa(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r-1}function ITa(e,t){var r=this.__data__,n=LCt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}q$.prototype.clear=ATa;q$.prototype.delete=dTa;q$.prototype.get=pTa;q$.prototype.has=fTa;q$.prototype.set=ITa;function khe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tA))return!1;var I=o.get(e);if(I&&o.get(t))return I==t;var C=-1,b=!0,E=r&jli?new xCt:void 0;for(o.set(e,t),o.set(t,e);++C-1&&e%1==0&&e-1&&e%1==0&&e<=zli}function hui(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function FQe(e){return e!=null&&typeof e=="object"}var mui=Mli?Ywa(Mli):xTa;function JTa(e){return QTa(e)?RTa(e):GTa(e)}function UTa(){return[]}function KTa(){return!1}_Te.exports=XTa});var _ui=H(($Iu,Cui)=>{"use strict";Cui.exports=(e,t)=>{if(!Array.isArray(e))throw new TypeError(`Expected an array, got ${typeof e}`);let r=e.slice(),n=typeof t=="number"?t:0;return r.splice(-n%r.length).concat(r)}});var E2r=H((ehu,bui)=>{"use strict";var jTa=jfr(),yui=process.platform,YX={tick:"\u2714",cross:"\u2716",star:"\u2605",square:"\u2587",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",play:"\u25B6",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",circleQuestionMark:"?\u20DD",bullet:"\u25CF",dot:"\u2024",line:"\u2500",ellipsis:"\u2026",pointer:"\u276F",pointerSmall:"\u203A",info:"\u2139",warning:"\u26A0",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",heart:"\u2665",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",questionMarkPrefix:"?\u20DD",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneSeventh:"\u2150",oneEighth:"\u215B",oneNinth:"\u2151",oneTenth:"\u2152",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E"},zTa={tick:"\u221A",cross:"\xD7",star:"*",square:"\u2588",squareSmall:"[ ]",squareSmallFilled:"[\u2588]",play:"\u25BA",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"\u2500",ellipsis:"...",pointer:">",pointerSmall:"\xBB",info:"i",warning:"\u203C",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",heart:YX.heart,arrowUp:YX.arrowUp,arrowDown:YX.arrowDown,arrowLeft:YX.arrowLeft,arrowRight:YX.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",questionMarkPrefix:"\uFF1F",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};yui==="linux"&&(YX.questionMarkPrefix="?");var PCt=yui==="win32"?zTa:YX,qTa=e=>(PCt===YX||Object.keys(YX).forEach(t=>{YX[t]!==PCt[t]&&(e=e.replace(new RegExp(jTa(YX[t]),"g"),PCt[t]))}),e);bui.exports=Object.assign(qTa,PCt)});var vui=H(WCt=>{"use strict";Object.defineProperty(WCt,"__esModule",{value:!0});WCt.default=void 0;var Eui=S2r(Ec()),$Ta=S2r(mTe()),Sui=Al(),eRa=S2r(E2r());function S2r(e){return e&&e.__esModule?e:{default:e}}var v2r=({isHighlighted:e})=>Eui.default.createElement(Sui.Box,{marginRight:1},Eui.default.createElement(Sui.Text,{color:e?"blue":void 0},e?eRa.default.pointer:" "));v2r.propTypes={isHighlighted:$Ta.default.bool};v2r.defaultProps={isHighlighted:!1};var tRa=v2r;WCt.default=tRa});var Tui=H(OCt=>{"use strict";Object.defineProperty(OCt,"__esModule",{value:!0});OCt.default=void 0;var rRa=wui(Ec()),Bui=wui(mTe()),nRa=Al();function wui(e){return e&&e.__esModule?e:{default:e}}var B2r=({isHighlighted:e,label:t})=>rRa.default.createElement(nRa.Text,{color:e?"blue":void 0},t);B2r.propTypes={isHighlighted:Bui.default.bool,label:Bui.default.string.isRequired};B2r.defaultProps={isHighlighted:!1};var iRa=B2r;OCt.default=iRa});var kui=H(MCt=>{"use strict";Object.defineProperty(MCt,"__esModule",{value:!0});MCt.default=void 0;var Rui=w2r(Ec()),sRa=w2r(mTe()),Nui=Al(),Dui=w2r(E2r());function w2r(e){return e&&e.__esModule?e:{default:e}}var T2r=({isSelected:e})=>Rui.default.createElement(Nui.Box,{marginRight:1},Rui.default.createElement(Nui.Text,{color:"green"},e?Dui.default.circleFilled:Dui.default.circle));T2r.propTypes={isSelected:sRa.default.bool};T2r.defaultProps={isSelected:!1};var oRa=T2r;MCt.default=oRa});var Lui=H(Fhe=>{"use strict";Object.defineProperty(Fhe,"__esModule",{value:!0});Object.defineProperty(Fhe,"Indicator",{enumerable:!0,get:function(){return xui.default}});Object.defineProperty(Fhe,"Item",{enumerable:!0,get:function(){return Gui.default}});Object.defineProperty(Fhe,"CheckBox",{enumerable:!0,get:function(){return Fui.default}});Fhe.default=void 0;var Ghe=cRa(Ec()),YZ=bTe(mTe()),aRa=bTe(b2r()),HCt=bTe(_ui()),R2r=Al(),xui=bTe(vui()),Gui=bTe(Tui()),Fui=bTe(kui());function bTe(e){return e&&e.__esModule?e:{default:e}}function Zui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Zui=function(){return e},e}function cRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Zui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}function N2r(){return N2r=Object.assign||function(e){for(var t=1;t{let{items:n,focus:a,onHighlight:o,onSubmit:l}=this.props,{rotateIndex:A,highlightedIndex:f}=this.state,I=this.props.selected||this.state.selected,{limit:C,hasLimit:b}=this;if(a===!1)return;let E=String(r);if(E===lRa||E==="k"){let N=(b?C:n.length)-1,B=f===0,F=b?f:N,Q=B?A+1:A,X=B?F:f-1;this.setState({rotateIndex:Q,highlightedIndex:X});let ae=b?(0,HCt.default)(n,Q).slice(0,C):n;o(ae[X])}if(E===uRa||E==="j"){let N=f===(b?C:n.length)-1,B=b?f:0,F=N?A-1:A,Q=N?B:f+1;this.setState({rotateIndex:F,highlightedIndex:Q});let X=b?(0,HCt.default)(n,F).slice(0,C):n;o(X[Q])}if(E===ARa){let B=(b?(0,HCt.default)(n,A).slice(0,C):n)[f];this.setSelectedState(this.selectItem(B))}E===gRa&&l(I)})}render(){let{items:t,indicatorComponent:r,itemComponent:n,checkboxComponent:a}=this.props,{rotateIndex:o,highlightedIndex:l}=this.state,{limit:A,hasLimit:f}=this,I=f?(0,HCt.default)(t,o).slice(0,A):t;return Ghe.default.createElement(R2r.Box,{flexDirection:"column"},I.map((C,b)=>{let E=C.key||C.value,N=b===l,B=this.isSelected(C.value);return Ghe.default.createElement(R2r.Box,{key:E},Ghe.default.createElement(r,{isHighlighted:N}),Ghe.default.createElement(a,{isSelected:B}),Ghe.default.createElement(n,{...C,isHighlighted:N}))}))}componentDidMount(){let{stdin:t,setRawMode:r}=this.props;r(!0),t.on("data",this.handleInput)}componentWillUnmount(){let{stdin:t,setRawMode:r}=this.props;t.removeListener("data",this.handleInput),r(!1)}componentDidUpdate(t){(0,aRa.default)(t.items,this.props.items)||this.setState({rotateIndex:0,highlightedIndex:0})}isSelected(t){return(this.props.selected||this.state.selected).map(({value:n})=>n).includes(t)}selectItem(t){let{onSelect:r,onUnselect:n}=this.props,a=this.props.selected||this.state.selected;return this.isSelected(t.value)?(n(t),a.filter(({value:o})=>o!==t.value)):(r(t),[...a,t])}setSelectedState(t){this.setState({selected:t})}get hasLimit(){let{limit:t,items:r}=this.props;return typeof t=="number"&&r.length>t}get limit(){let{limit:t,items:r}=this.props;return this.hasLimit?Math.min(t,r.length):r.length}};YCt(LQe,"propTypes",{items:YZ.default.array,selected:YZ.default.array,defaultSelected:YZ.default.array,focus:YZ.default.bool,initialIndex:YZ.default.number,indicatorComponent:YZ.default.func,checkboxComponent:YZ.default.func,itemComponent:YZ.default.func,limit:YZ.default.number,onSelect:YZ.default.func,onUnselect:YZ.default.func,onSubmit:YZ.default.func,onHighlight:YZ.default.func,stdin:YZ.default.any.isRequired,setRawMode:YZ.default.func.isRequired});YCt(LQe,"defaultProps",{items:[],selected:void 0,defaultSelected:[],focus:!0,initialIndex:0,indicatorComponent:xui.default,checkboxComponent:Fui.default,itemComponent:Gui.default,limit:null,onSelect(){},onUnselect(){},onSubmit(){},onHighlight(){}});var dRa=e=>{let{stdin:t,setRawMode:r}=(0,R2r.useStdin)();return Ghe.default.createElement(LQe,N2r({},e,{stdin:t,setRawMode:r}))};Fhe.default=dRa});var Pui=H(ETe=>{"use strict";Object.defineProperty(ETe,"__esModule",{value:!0});Object.defineProperty(ETe,"default",{enumerable:!0,get:function(){return QCt.default}});Object.defineProperty(ETe,"Item",{enumerable:!0,get:function(){return QCt.Item}});Object.defineProperty(ETe,"Indicator",{enumerable:!0,get:function(){return QCt.Indicator}});Object.defineProperty(ETe,"CheckBox",{enumerable:!0,get:function(){return QCt.CheckBox}});var QCt=pRa(Lui());function Vui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Vui=function(){return e},e}function pRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Vui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}});var X2r=H((pmu,Igi)=>{var xTe=1e3,GTe=xTe*60,FTe=GTe*60,Zhe=FTe*24,NRa=Zhe*7,DRa=Zhe*365.25;Igi.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return kRa(e);if(r==="number"&&isFinite(e))return t.long?GRa(e):xRa(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function kRa(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*DRa;case"weeks":case"week":case"w":return r*NRa;case"days":case"day":case"d":return r*Zhe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*FTe;case"minutes":case"minute":case"mins":case"min":case"m":return r*GTe;case"seconds":case"second":case"secs":case"sec":case"s":return r*xTe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function xRa(e){var t=Math.abs(e);return t>=Zhe?Math.round(e/Zhe)+"d":t>=FTe?Math.round(e/FTe)+"h":t>=GTe?Math.round(e/GTe)+"m":t>=xTe?Math.round(e/xTe)+"s":e+"ms"}function GRa(e){var t=Math.abs(e);return t>=Zhe?t_t(e,t,Zhe,"day"):t>=FTe?t_t(e,t,FTe,"hour"):t>=GTe?t_t(e,t,GTe,"minute"):t>=xTe?t_t(e,t,xTe,"second"):e+" ms"}function t_t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var J2r=H((fmu,hgi)=>{function FRa(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{lO.formatArgs=LRa;lO.save=VRa;lO.load=PRa;lO.useColors=ZRa;lO.storage=WRa();lO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();lO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ZRa(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function LRa(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+r_t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}lO.log=console.debug||console.log||(()=>{});function VRa(e){try{e?lO.storage.setItem("debug",e):lO.storage.removeItem("debug")}catch{}}function PRa(){let e;try{e=lO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function WRa(){try{return localStorage}catch{}}r_t.exports=J2r()(lO);var{formatters:ORa}=r_t.exports;ORa.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _gi=H((rD,i_t)=>{var MRa=wt("tty"),n_t=wt("util");rD.init=KRa;rD.log=XRa;rD.formatArgs=YRa;rD.save=JRa;rD.load=URa;rD.useColors=HRa;rD.destroy=n_t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");rD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(rD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}rD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function HRa(){return"colors"in rD.inspectOpts?!!rD.inspectOpts.colors:MRa.isatty(process.stderr.fd)}function YRa(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +`&&(C=C.slice(0,C.length-1)),o(C)}).join(a);return t.trim===!0&&(I=Iwa(I)),I};function hwa(e){return e}});var xli=H((KIu,kli)=>{"use strict";var mwa="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";kli.exports=mwa});var Lli=H((jIu,Zli)=>{"use strict";var Cwa=xli();function Gli(){}function Fli(){}Fli.resetWarningCache=Gli;Zli.exports=function(){function e(n,a,o,l,A,f){if(f!==Cwa){var I=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw I.name="Invariant Violation",I}}e.isRequired=e;function t(){return e}var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Fli,resetWarningCache:Gli};return r.PropTypes=r,r}});var mTe=H(($Iu,Vli)=>{Vli.exports=Lli()();var zIu,qIu});var b2r=H((kQe,_Te)=>{var _wa=200,y2r="__lodash_hash_undefined__",FCt=1,jli=2,zli=9007199254740991,TCt="[object Arguments]",p2r="[object Array]",ywa="[object AsyncFunction]",qli="[object Boolean]",$li="[object Date]",eui="[object Error]",tui="[object Function]",bwa="[object GeneratorFunction]",RCt="[object Map]",rui="[object Number]",Ewa="[object Null]",CTe="[object Object]",Pli="[object Promise]",Swa="[object Proxy]",nui="[object RegExp]",NCt="[object Set]",iui="[object String]",vwa="[object Symbol]",Bwa="[object Undefined]",f2r="[object WeakMap]",sui="[object ArrayBuffer]",DCt="[object DataView]",wwa="[object Float32Array]",Twa="[object Float64Array]",Rwa="[object Int8Array]",Nwa="[object Int16Array]",Dwa="[object Int32Array]",kwa="[object Uint8Array]",xwa="[object Uint8ClampedArray]",Gwa="[object Uint16Array]",Fwa="[object Uint32Array]",Zwa=/[\\^$.*+?()[\]{}|]/g,Lwa=/^\[object .+?Constructor\]$/,Vwa=/^(?:0|[1-9]\d*)$/,M1={};M1[wwa]=M1[Twa]=M1[Rwa]=M1[Nwa]=M1[Dwa]=M1[kwa]=M1[xwa]=M1[Gwa]=M1[Fwa]=!0;M1[TCt]=M1[p2r]=M1[sui]=M1[qli]=M1[DCt]=M1[$li]=M1[eui]=M1[tui]=M1[RCt]=M1[rui]=M1[CTe]=M1[nui]=M1[NCt]=M1[iui]=M1[f2r]=!1;var oui=typeof global=="object"&&global&&global.Object===Object&&global,Pwa=typeof self=="object"&&self&&self.Object===Object&&self,z$=oui||Pwa||Function("return this")(),aui=typeof kQe=="object"&&kQe&&!kQe.nodeType&&kQe,Wli=aui&&typeof _Te=="object"&&_Te&&!_Te.nodeType&&_Te,cui=Wli&&Wli.exports===aui,g2r=cui&&oui.process,Oli=function(){try{return g2r&&g2r.binding&&g2r.binding("util")}catch{}}(),Mli=Oli&&Oli.isTypedArray;function Wwa(e,t){for(var r=-1,n=e==null?0:e.length,a=0,o=[];++r-1}function ITa(e,t){var r=this.__data__,n=LCt(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}q$.prototype.clear=ATa;q$.prototype.delete=dTa;q$.prototype.get=pTa;q$.prototype.has=fTa;q$.prototype.set=ITa;function khe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++tA))return!1;var I=o.get(e);if(I&&o.get(t))return I==t;var C=-1,b=!0,E=r&jli?new xCt:void 0;for(o.set(e,t),o.set(t,e);++C-1&&e%1==0&&e-1&&e%1==0&&e<=zli}function hui(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function FQe(e){return e!=null&&typeof e=="object"}var mui=Mli?Ywa(Mli):xTa;function JTa(e){return QTa(e)?RTa(e):GTa(e)}function UTa(){return[]}function KTa(){return!1}_Te.exports=XTa});var _ui=H((ehu,Cui)=>{"use strict";Cui.exports=(e,t)=>{if(!Array.isArray(e))throw new TypeError(`Expected an array, got ${typeof e}`);let r=e.slice(),n=typeof t=="number"?t:0;return r.splice(-n%r.length).concat(r)}});var E2r=H((thu,bui)=>{"use strict";var jTa=jfr(),yui=process.platform,YX={tick:"\u2714",cross:"\u2716",star:"\u2605",square:"\u2587",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",play:"\u25B6",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",circleQuestionMark:"?\u20DD",bullet:"\u25CF",dot:"\u2024",line:"\u2500",ellipsis:"\u2026",pointer:"\u276F",pointerSmall:"\u203A",info:"\u2139",warning:"\u26A0",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",heart:"\u2665",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",questionMarkPrefix:"?\u20DD",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneSeventh:"\u2150",oneEighth:"\u215B",oneNinth:"\u2151",oneTenth:"\u2152",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E"},zTa={tick:"\u221A",cross:"\xD7",star:"*",square:"\u2588",squareSmall:"[ ]",squareSmallFilled:"[\u2588]",play:"\u25BA",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",circleQuestionMark:"(?)",bullet:"*",dot:".",line:"\u2500",ellipsis:"...",pointer:">",pointerSmall:"\xBB",info:"i",warning:"\u203C",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",heart:YX.heart,arrowUp:YX.arrowUp,arrowDown:YX.arrowDown,arrowLeft:YX.arrowLeft,arrowRight:YX.arrowRight,radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",questionMarkPrefix:"\uFF1F",oneHalf:"1/2",oneThird:"1/3",oneQuarter:"1/4",oneFifth:"1/5",oneSixth:"1/6",oneSeventh:"1/7",oneEighth:"1/8",oneNinth:"1/9",oneTenth:"1/10",twoThirds:"2/3",twoFifths:"2/5",threeQuarters:"3/4",threeFifths:"3/5",threeEighths:"3/8",fourFifths:"4/5",fiveSixths:"5/6",fiveEighths:"5/8",sevenEighths:"7/8"};yui==="linux"&&(YX.questionMarkPrefix="?");var PCt=yui==="win32"?zTa:YX,qTa=e=>(PCt===YX||Object.keys(YX).forEach(t=>{YX[t]!==PCt[t]&&(e=e.replace(new RegExp(jTa(YX[t]),"g"),PCt[t]))}),e);bui.exports=Object.assign(qTa,PCt)});var vui=H(WCt=>{"use strict";Object.defineProperty(WCt,"__esModule",{value:!0});WCt.default=void 0;var Eui=S2r(Ec()),$Ta=S2r(mTe()),Sui=Al(),eRa=S2r(E2r());function S2r(e){return e&&e.__esModule?e:{default:e}}var v2r=({isHighlighted:e})=>Eui.default.createElement(Sui.Box,{marginRight:1},Eui.default.createElement(Sui.Text,{color:e?"blue":void 0},e?eRa.default.pointer:" "));v2r.propTypes={isHighlighted:$Ta.default.bool};v2r.defaultProps={isHighlighted:!1};var tRa=v2r;WCt.default=tRa});var Tui=H(OCt=>{"use strict";Object.defineProperty(OCt,"__esModule",{value:!0});OCt.default=void 0;var rRa=wui(Ec()),Bui=wui(mTe()),nRa=Al();function wui(e){return e&&e.__esModule?e:{default:e}}var B2r=({isHighlighted:e,label:t})=>rRa.default.createElement(nRa.Text,{color:e?"blue":void 0},t);B2r.propTypes={isHighlighted:Bui.default.bool,label:Bui.default.string.isRequired};B2r.defaultProps={isHighlighted:!1};var iRa=B2r;OCt.default=iRa});var kui=H(MCt=>{"use strict";Object.defineProperty(MCt,"__esModule",{value:!0});MCt.default=void 0;var Rui=w2r(Ec()),sRa=w2r(mTe()),Nui=Al(),Dui=w2r(E2r());function w2r(e){return e&&e.__esModule?e:{default:e}}var T2r=({isSelected:e})=>Rui.default.createElement(Nui.Box,{marginRight:1},Rui.default.createElement(Nui.Text,{color:"green"},e?Dui.default.circleFilled:Dui.default.circle));T2r.propTypes={isSelected:sRa.default.bool};T2r.defaultProps={isSelected:!1};var oRa=T2r;MCt.default=oRa});var Lui=H(Fhe=>{"use strict";Object.defineProperty(Fhe,"__esModule",{value:!0});Object.defineProperty(Fhe,"Indicator",{enumerable:!0,get:function(){return xui.default}});Object.defineProperty(Fhe,"Item",{enumerable:!0,get:function(){return Gui.default}});Object.defineProperty(Fhe,"CheckBox",{enumerable:!0,get:function(){return Fui.default}});Fhe.default=void 0;var Ghe=cRa(Ec()),YZ=bTe(mTe()),aRa=bTe(b2r()),HCt=bTe(_ui()),R2r=Al(),xui=bTe(vui()),Gui=bTe(Tui()),Fui=bTe(kui());function bTe(e){return e&&e.__esModule?e:{default:e}}function Zui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Zui=function(){return e},e}function cRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Zui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}function N2r(){return N2r=Object.assign||function(e){for(var t=1;t{let{items:n,focus:a,onHighlight:o,onSubmit:l}=this.props,{rotateIndex:A,highlightedIndex:f}=this.state,I=this.props.selected||this.state.selected,{limit:C,hasLimit:b}=this;if(a===!1)return;let E=String(r);if(E===lRa||E==="k"){let N=(b?C:n.length)-1,B=f===0,F=b?f:N,Q=B?A+1:A,X=B?F:f-1;this.setState({rotateIndex:Q,highlightedIndex:X});let ae=b?(0,HCt.default)(n,Q).slice(0,C):n;o(ae[X])}if(E===uRa||E==="j"){let N=f===(b?C:n.length)-1,B=b?f:0,F=N?A-1:A,Q=N?B:f+1;this.setState({rotateIndex:F,highlightedIndex:Q});let X=b?(0,HCt.default)(n,F).slice(0,C):n;o(X[Q])}if(E===ARa){let B=(b?(0,HCt.default)(n,A).slice(0,C):n)[f];this.setSelectedState(this.selectItem(B))}E===gRa&&l(I)})}render(){let{items:t,indicatorComponent:r,itemComponent:n,checkboxComponent:a}=this.props,{rotateIndex:o,highlightedIndex:l}=this.state,{limit:A,hasLimit:f}=this,I=f?(0,HCt.default)(t,o).slice(0,A):t;return Ghe.default.createElement(R2r.Box,{flexDirection:"column"},I.map((C,b)=>{let E=C.key||C.value,N=b===l,B=this.isSelected(C.value);return Ghe.default.createElement(R2r.Box,{key:E},Ghe.default.createElement(r,{isHighlighted:N}),Ghe.default.createElement(a,{isSelected:B}),Ghe.default.createElement(n,{...C,isHighlighted:N}))}))}componentDidMount(){let{stdin:t,setRawMode:r}=this.props;r(!0),t.on("data",this.handleInput)}componentWillUnmount(){let{stdin:t,setRawMode:r}=this.props;t.removeListener("data",this.handleInput),r(!1)}componentDidUpdate(t){(0,aRa.default)(t.items,this.props.items)||this.setState({rotateIndex:0,highlightedIndex:0})}isSelected(t){return(this.props.selected||this.state.selected).map(({value:n})=>n).includes(t)}selectItem(t){let{onSelect:r,onUnselect:n}=this.props,a=this.props.selected||this.state.selected;return this.isSelected(t.value)?(n(t),a.filter(({value:o})=>o!==t.value)):(r(t),[...a,t])}setSelectedState(t){this.setState({selected:t})}get hasLimit(){let{limit:t,items:r}=this.props;return typeof t=="number"&&r.length>t}get limit(){let{limit:t,items:r}=this.props;return this.hasLimit?Math.min(t,r.length):r.length}};YCt(LQe,"propTypes",{items:YZ.default.array,selected:YZ.default.array,defaultSelected:YZ.default.array,focus:YZ.default.bool,initialIndex:YZ.default.number,indicatorComponent:YZ.default.func,checkboxComponent:YZ.default.func,itemComponent:YZ.default.func,limit:YZ.default.number,onSelect:YZ.default.func,onUnselect:YZ.default.func,onSubmit:YZ.default.func,onHighlight:YZ.default.func,stdin:YZ.default.any.isRequired,setRawMode:YZ.default.func.isRequired});YCt(LQe,"defaultProps",{items:[],selected:void 0,defaultSelected:[],focus:!0,initialIndex:0,indicatorComponent:xui.default,checkboxComponent:Fui.default,itemComponent:Gui.default,limit:null,onSelect(){},onUnselect(){},onSubmit(){},onHighlight(){}});var dRa=e=>{let{stdin:t,setRawMode:r}=(0,R2r.useStdin)();return Ghe.default.createElement(LQe,N2r({},e,{stdin:t,setRawMode:r}))};Fhe.default=dRa});var Pui=H(ETe=>{"use strict";Object.defineProperty(ETe,"__esModule",{value:!0});Object.defineProperty(ETe,"default",{enumerable:!0,get:function(){return QCt.default}});Object.defineProperty(ETe,"Item",{enumerable:!0,get:function(){return QCt.Item}});Object.defineProperty(ETe,"Indicator",{enumerable:!0,get:function(){return QCt.Indicator}});Object.defineProperty(ETe,"CheckBox",{enumerable:!0,get:function(){return QCt.CheckBox}});var QCt=pRa(Lui());function Vui(){if(typeof WeakMap!="function")return null;var e=new WeakMap;return Vui=function(){return e},e}function pRa(e){if(e&&e.__esModule)return e;if(e===null||typeof e!="object"&&typeof e!="function")return{default:e};var t=Vui();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){var o=n?Object.getOwnPropertyDescriptor(e,a):null;o&&(o.get||o.set)?Object.defineProperty(r,a,o):r[a]=e[a]}return r.default=e,t&&t.set(e,r),r}});var X2r=H((fmu,Igi)=>{var xTe=1e3,GTe=xTe*60,FTe=GTe*60,Zhe=FTe*24,NRa=Zhe*7,DRa=Zhe*365.25;Igi.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return kRa(e);if(r==="number"&&isFinite(e))return t.long?GRa(e):xRa(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function kRa(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*DRa;case"weeks":case"week":case"w":return r*NRa;case"days":case"day":case"d":return r*Zhe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*FTe;case"minutes":case"minute":case"mins":case"min":case"m":return r*GTe;case"seconds":case"second":case"secs":case"sec":case"s":return r*xTe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function xRa(e){var t=Math.abs(e);return t>=Zhe?Math.round(e/Zhe)+"d":t>=FTe?Math.round(e/FTe)+"h":t>=GTe?Math.round(e/GTe)+"m":t>=xTe?Math.round(e/xTe)+"s":e+"ms"}function GRa(e){var t=Math.abs(e);return t>=Zhe?t_t(e,t,Zhe,"day"):t>=FTe?t_t(e,t,FTe,"hour"):t>=GTe?t_t(e,t,GTe,"minute"):t>=xTe?t_t(e,t,xTe,"second"):e+" ms"}function t_t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var J2r=H((Imu,hgi)=>{function FRa(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{lO.formatArgs=LRa;lO.save=VRa;lO.load=PRa;lO.useColors=ZRa;lO.storage=WRa();lO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();lO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ZRa(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function LRa(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+r_t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}lO.log=console.debug||console.log||(()=>{});function VRa(e){try{e?lO.storage.setItem("debug",e):lO.storage.removeItem("debug")}catch{}}function PRa(){let e;try{e=lO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function WRa(){try{return localStorage}catch{}}r_t.exports=J2r()(lO);var{formatters:ORa}=r_t.exports;ORa.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _gi=H((rD,i_t)=>{var MRa=wt("tty"),n_t=wt("util");rD.init=KRa;rD.log=XRa;rD.formatArgs=YRa;rD.save=JRa;rD.load=URa;rD.useColors=HRa;rD.destroy=n_t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");rD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(rD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}rD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function HRa(){return"colors"in rD.inspectOpts?!!rD.inspectOpts.colors:MRa.isatty(process.stderr.fd)}function YRa(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` `+o),e.push(a+"m+"+i_t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=QRa()+t+" "+e[0]}function QRa(){return rD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function XRa(...e){return process.stderr.write(n_t.formatWithOptions(rD.inspectOpts,...e)+` `)}function JRa(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function URa(){return process.env.DEBUG}function KRa(e){e.inspectOpts={};let t=Object.keys(rD.inspectOpts);for(let r=0;rt.trim()).join(" ")};Cgi.O=function(e){return this.inspectOpts.colors=this.useColors,n_t.inspect(e,this.inspectOpts)}});var uT=H((Imu,U2r)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?U2r.exports=mgi():U2r.exports=_gi()});var Egi=H((Cmu,K2r)=>{"use strict";var $Ra=Object.prototype.hasOwnProperty,XZ="~";function OQe(){}Object.create&&(OQe.prototype=Object.create(null),new OQe().__proto__||(XZ=!1));function eNa(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function bgi(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new eNa(r,n||e,a),l=XZ?XZ+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s_t(e,t){--e._eventsCount===0?e._events=new OQe:delete e._events[t]}function BG(){this._events=new OQe,this._eventsCount=0}BG.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$Ra.call(r,n)&&t.push(XZ?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};BG.prototype.listeners=function(t){var r=XZ?XZ+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,l=new Array(o);a{"use strict";Ngi.exports=uNa;function ZTe(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function uNa(e){if(e=e||{},e.circles)return gNa(e);let t=new Map;if(t.set(Date,l=>new Date(l)),t.set(Map,(l,A)=>new Map(n(Array.from(l),A))),t.set(Set,(l,A)=>new Set(n(Array.from(l),A))),e.constructorHandlers)for(let l of e.constructorHandlers)t.set(l[0],l[1]);let r=null;return e.proto?o:a;function n(l,A){let f=Object.keys(l),I=new Array(f.length);for(let C=0;Cnew Date(f)),n.set(Map,(f,I)=>new Map(o(Array.from(f),I))),n.set(Set,(f,I)=>new Set(o(Array.from(f),I))),e.constructorHandlers)for(let f of e.constructorHandlers)n.set(f[0],f[1]);let a=null;return e.proto?A:l;function o(f,I){let C=Object.keys(f),b=new Array(C.length);for(let E=0;E{a_t=globalThis.window?.document!==void 0,uCu=globalThis.process?.versions?.node!==void 0,gCu=globalThis.process?.versions?.bun!==void 0,ACu=globalThis.Deno?.version?.deno!==void 0,dCu=globalThis.process?.versions?.electron!==void 0,pCu=globalThis.navigator?.userAgent?.includes("jsdom")===!0,fCu=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,ICu=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,hCu=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,mCu=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,MQe=globalThis.navigator?.userAgentData?.platform,CCu=MQe==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",_Cu=MQe==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",yCu=MQe==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",bCu=MQe==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),ECu=MQe==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var QQe={};sI(QQe,{beep:()=>LNa,clearScreen:()=>xNa,clearTerminal:()=>GNa,cursorBackward:()=>mNa,cursorDown:()=>INa,cursorForward:()=>hNa,cursorGetPosition:()=>yNa,cursorHide:()=>SNa,cursorLeft:()=>Fgi,cursorMove:()=>fNa,cursorNextLine:()=>bNa,cursorPrevLine:()=>ENa,cursorRestorePosition:()=>_Na,cursorSavePosition:()=>CNa,cursorShow:()=>vNa,cursorTo:()=>pNa,cursorUp:()=>Ggi,enterAlternativeScreen:()=>FNa,eraseDown:()=>RNa,eraseEndLine:()=>wNa,eraseLine:()=>Zgi,eraseLines:()=>BNa,eraseScreen:()=>z2r,eraseStartLine:()=>TNa,eraseUp:()=>NNa,exitAlternativeScreen:()=>ZNa,iTerm:()=>WNa,image:()=>PNa,link:()=>VNa,scrollDown:()=>kNa,scrollUp:()=>DNa});import q2r from"node:process";var m0,YQe,LTe,HQe,xgi,ANa,dNa,pNa,fNa,Ggi,INa,hNa,mNa,Fgi,CNa,_Na,yNa,bNa,ENa,SNa,vNa,BNa,wNa,TNa,Zgi,RNa,NNa,z2r,DNa,kNa,xNa,GNa,FNa,ZNa,LNa,VNa,PNa,WNa,$2r=bc(()=>{kgi();m0="\x1B[",YQe="\x1B]",LTe="\x07",HQe=";",xgi=!a_t&&q2r.env.TERM_PROGRAM==="Apple_Terminal",ANa=!a_t&&q2r.platform==="win32",dNa=a_t?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:q2r.cwd,pNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?m0+(e+1)+"G":m0+(t+1)+HQe+(e+1)+"H"},fNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=m0+-e+"D":e>0&&(r+=m0+e+"C"),t<0?r+=m0+-t+"A":t>0&&(r+=m0+t+"B"),r},Ggi=(e=1)=>m0+e+"A",INa=(e=1)=>m0+e+"B",hNa=(e=1)=>m0+e+"C",mNa=(e=1)=>m0+e+"D",Fgi=m0+"G",CNa=xgi?"\x1B7":m0+"s",_Na=xgi?"\x1B8":m0+"u",yNa=m0+"6n",bNa=m0+"E",ENa=m0+"F",SNa=m0+"?25l",vNa=m0+"?25h",BNa=e=>{let t="";for(let r=0;r[YQe,"8",HQe,HQe,t,LTe,e,YQe,"8",HQe,HQe,LTe].join(""),PNa=(e,t={})=>{let r=`${YQe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+Buffer.from(e).toString("base64")+LTe},WNa={setCwd:(e=dNa())=>`${YQe}50;CurrentDir=${e}${LTe}`,annotation(e,t={}){let r=`${YQe}1337;`,n=t.x!==void 0,a=t.y!==void 0;if((n||a)&&!(n&&a&&t.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+LTe}}});var Lgi=bc(()=>{$2r();$2r()});function eSr(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))ONa(e,t,a,r);return HNa(e,t),JNa(e,t,n),e}var ONa,MNa,HNa,YNa,QNa,XNa,JNa,Vgi=bc(()=>{ONa=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!MNa(a,o)&&n||Object.defineProperty(e,r,o)},MNa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},HNa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},YNa=(e,t)=>`/* Wrapped ${e}*/ -${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),JNa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=YNa.bind(null,n,t.toString());Object.defineProperty(a,"name",XNa);let{writable:o,enumerable:l,configurable:A}=QNa;Object.defineProperty(e,"toString",{value:a,writable:o,enumerable:l,configurable:A})}});var c_t,Pgi,Wgi,Ogi=bc(()=>{Vgi();c_t=new WeakMap,Pgi=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(c_t.set(o,++n),n===1)r=e.apply(this,l),e=void 0;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return eSr(o,e),c_t.set(o,n),o};Pgi.callCount=e=>{if(!c_t.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return c_t.get(e)};Wgi=Pgi});import l_t from"node:process";var Mgi,UNa,Hgi,Ygi=bc(()=>{Ogi();m1r();Mgi=l_t.stderr.isTTY?l_t.stderr:l_t.stdout.isTTY?l_t.stdout:void 0,UNa=Mgi?Wgi(()=>{iCt(()=>{Mgi.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},Hgi=UNa});import Qgi from"node:process";var u_t,VTe,tSr,Xgi=bc(()=>{Ygi();u_t=!1,VTe={};VTe.show=(e=Qgi.stderr)=>{e.isTTY&&(u_t=!1,e.write("\x1B[?25h"))};VTe.hide=(e=Qgi.stderr)=>{e.isTTY&&(Hgi(),u_t=!0,e.write("\x1B[?25l"))};VTe.toggle=(e,t)=>{e!==void 0&&(u_t=e),u_t?VTe.show(t):VTe.hide(t)};tSr=VTe});function Jgi(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function Ugi(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Kgi(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var jgi=bc(()=>{});function KNa(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function g_t(e,{ambiguousAsWide:t=!1}={}){return KNa(e),Ugi(e)||Kgi(e)||t&&Jgi(e)?2:1}var rSr=bc(()=>{jgi()});var qgi=H((HCu,zgi)=>{zgi.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function MM(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=t;if(n||(e=K$(e)),e.length===0)return 0;let a=0,o={ambiguousAsWide:!r};for(let{segment:l}of jNa.segment(e)){let A=l.codePointAt(0);if(!(A<=31||A>=127&&A<=159)&&!(A>=8203&&A<=8207||A===65279)&&!(A>=768&&A<=879||A>=6832&&A<=6911||A>=7616&&A<=7679||A>=8400&&A<=8447||A>=65056&&A<=65071)&&!(A>=55296&&A<=57343)&&!(A>=65024&&A<=65039)&&!zNa.test(l)){if((0,$gi.default)().test(l)){a+=2;continue}a+=g_t(A,o)}}return a}var $gi,jNa,zNa,nSr=bc(()=>{AQe();rSr();$gi=Nt(qgi(),1),jNa=new Intl.Segmenter,zNa=/^\p{Default_Ignorable_Code_Point}$/u});function eDa(){let e=new Map;for(let[t,r]of Object.entries(T2)){for(let[n,a]of Object.entries(r))T2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=T2[n],e.set(a[0],a[1]);Object.defineProperty(T2,t,{value:r,enumerable:!1})}return Object.defineProperty(T2,"codes",{value:e,enumerable:!1}),T2.color.close="\x1B[39m",T2.bgColor.close="\x1B[49m",T2.color.ansi=eAi(),T2.color.ansi256=tAi(),T2.color.ansi16m=rAi(),T2.bgColor.ansi=eAi(10),T2.bgColor.ansi256=tAi(10),T2.bgColor.ansi16m=rAi(10),Object.defineProperties(T2,{rgbToAnsi256:{value:(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>T2.rgbToAnsi256(...T2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>T2.ansi256ToAnsi(T2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>T2.ansi256ToAnsi(T2.hexToAnsi256(t)),enumerable:!1}}),T2}var eAi,tAi,rAi,T2,JCu,qNa,$Na,UCu,tDa,aV,A_t=bc(()=>{eAi=(e=0)=>t=>`\x1B[${t+e}m`,tAi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,rAi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,T2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},JCu=Object.keys(T2.modifier),qNa=Object.keys(T2.color),$Na=Object.keys(T2.bgColor),UCu=[...qNa,...$Na];tDa=eDa(),aV=tDa});var aAi={};sI(aAi,{default:()=>f_t});function f_t(e,t,r){return String(e).normalize().replaceAll(`\r +`).map(t=>t.trim()).join(" ")};Cgi.O=function(e){return this.inspectOpts.colors=this.useColors,n_t.inspect(e,this.inspectOpts)}});var uT=H((hmu,U2r)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?U2r.exports=mgi():U2r.exports=_gi()});var Egi=H((_mu,K2r)=>{"use strict";var $Ra=Object.prototype.hasOwnProperty,XZ="~";function OQe(){}Object.create&&(OQe.prototype=Object.create(null),new OQe().__proto__||(XZ=!1));function eNa(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function bgi(e,t,r,n,a){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new eNa(r,n||e,a),l=XZ?XZ+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s_t(e,t){--e._eventsCount===0?e._events=new OQe:delete e._events[t]}function BG(){this._events=new OQe,this._eventsCount=0}BG.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$Ra.call(r,n)&&t.push(XZ?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};BG.prototype.listeners=function(t){var r=XZ?XZ+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,o=n.length,l=new Array(o);a{"use strict";Ngi.exports=uNa;function ZTe(e){return e instanceof Buffer?Buffer.from(e):new e.constructor(e.buffer.slice(),e.byteOffset,e.length)}function uNa(e){if(e=e||{},e.circles)return gNa(e);let t=new Map;if(t.set(Date,l=>new Date(l)),t.set(Map,(l,A)=>new Map(n(Array.from(l),A))),t.set(Set,(l,A)=>new Set(n(Array.from(l),A))),e.constructorHandlers)for(let l of e.constructorHandlers)t.set(l[0],l[1]);let r=null;return e.proto?o:a;function n(l,A){let f=Object.keys(l),I=new Array(f.length);for(let C=0;Cnew Date(f)),n.set(Map,(f,I)=>new Map(o(Array.from(f),I))),n.set(Set,(f,I)=>new Set(o(Array.from(f),I))),e.constructorHandlers)for(let f of e.constructorHandlers)n.set(f[0],f[1]);let a=null;return e.proto?A:l;function o(f,I){let C=Object.keys(f),b=new Array(C.length);for(let E=0;E{a_t=globalThis.window?.document!==void 0,gCu=globalThis.process?.versions?.node!==void 0,ACu=globalThis.process?.versions?.bun!==void 0,dCu=globalThis.Deno?.version?.deno!==void 0,pCu=globalThis.process?.versions?.electron!==void 0,fCu=globalThis.navigator?.userAgent?.includes("jsdom")===!0,ICu=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,hCu=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,mCu=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,CCu=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,MQe=globalThis.navigator?.userAgentData?.platform,_Cu=MQe==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",yCu=MQe==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",bCu=MQe==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",ECu=MQe==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),SCu=MQe==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android"});var QQe={};sI(QQe,{beep:()=>LNa,clearScreen:()=>xNa,clearTerminal:()=>GNa,cursorBackward:()=>mNa,cursorDown:()=>INa,cursorForward:()=>hNa,cursorGetPosition:()=>yNa,cursorHide:()=>SNa,cursorLeft:()=>Fgi,cursorMove:()=>fNa,cursorNextLine:()=>bNa,cursorPrevLine:()=>ENa,cursorRestorePosition:()=>_Na,cursorSavePosition:()=>CNa,cursorShow:()=>vNa,cursorTo:()=>pNa,cursorUp:()=>Ggi,enterAlternativeScreen:()=>FNa,eraseDown:()=>RNa,eraseEndLine:()=>wNa,eraseLine:()=>Zgi,eraseLines:()=>BNa,eraseScreen:()=>z2r,eraseStartLine:()=>TNa,eraseUp:()=>NNa,exitAlternativeScreen:()=>ZNa,iTerm:()=>WNa,image:()=>PNa,link:()=>VNa,scrollDown:()=>kNa,scrollUp:()=>DNa});import q2r from"node:process";var m0,YQe,LTe,HQe,xgi,ANa,dNa,pNa,fNa,Ggi,INa,hNa,mNa,Fgi,CNa,_Na,yNa,bNa,ENa,SNa,vNa,BNa,wNa,TNa,Zgi,RNa,NNa,z2r,DNa,kNa,xNa,GNa,FNa,ZNa,LNa,VNa,PNa,WNa,$2r=bc(()=>{kgi();m0="\x1B[",YQe="\x1B]",LTe="\x07",HQe=";",xgi=!a_t&&q2r.env.TERM_PROGRAM==="Apple_Terminal",ANa=!a_t&&q2r.platform==="win32",dNa=a_t?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:q2r.cwd,pNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?m0+(e+1)+"G":m0+(t+1)+HQe+(e+1)+"H"},fNa=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=m0+-e+"D":e>0&&(r+=m0+e+"C"),t<0?r+=m0+-t+"A":t>0&&(r+=m0+t+"B"),r},Ggi=(e=1)=>m0+e+"A",INa=(e=1)=>m0+e+"B",hNa=(e=1)=>m0+e+"C",mNa=(e=1)=>m0+e+"D",Fgi=m0+"G",CNa=xgi?"\x1B7":m0+"s",_Na=xgi?"\x1B8":m0+"u",yNa=m0+"6n",bNa=m0+"E",ENa=m0+"F",SNa=m0+"?25l",vNa=m0+"?25h",BNa=e=>{let t="";for(let r=0;r[YQe,"8",HQe,HQe,t,LTe,e,YQe,"8",HQe,HQe,LTe].join(""),PNa=(e,t={})=>{let r=`${YQe}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+Buffer.from(e).toString("base64")+LTe},WNa={setCwd:(e=dNa())=>`${YQe}50;CurrentDir=${e}${LTe}`,annotation(e,t={}){let r=`${YQe}1337;`,n=t.x!==void 0,a=t.y!==void 0;if((n||a)&&!(n&&a&&t.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+LTe}}});var Lgi=bc(()=>{$2r();$2r()});function eSr(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))ONa(e,t,a,r);return HNa(e,t),JNa(e,t,n),e}var ONa,MNa,HNa,YNa,QNa,XNa,JNa,Vgi=bc(()=>{ONa=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!MNa(a,o)&&n||Object.defineProperty(e,r,o)},MNa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},HNa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},YNa=(e,t)=>`/* Wrapped ${e}*/ +${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),JNa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=YNa.bind(null,n,t.toString());Object.defineProperty(a,"name",XNa);let{writable:o,enumerable:l,configurable:A}=QNa;Object.defineProperty(e,"toString",{value:a,writable:o,enumerable:l,configurable:A})}});var c_t,Pgi,Wgi,Ogi=bc(()=>{Vgi();c_t=new WeakMap,Pgi=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(c_t.set(o,++n),n===1)r=e.apply(this,l),e=void 0;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return eSr(o,e),c_t.set(o,n),o};Pgi.callCount=e=>{if(!c_t.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return c_t.get(e)};Wgi=Pgi});import l_t from"node:process";var Mgi,UNa,Hgi,Ygi=bc(()=>{Ogi();m1r();Mgi=l_t.stderr.isTTY?l_t.stderr:l_t.stdout.isTTY?l_t.stdout:void 0,UNa=Mgi?Wgi(()=>{iCt(()=>{Mgi.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},Hgi=UNa});import Qgi from"node:process";var u_t,VTe,tSr,Xgi=bc(()=>{Ygi();u_t=!1,VTe={};VTe.show=(e=Qgi.stderr)=>{e.isTTY&&(u_t=!1,e.write("\x1B[?25h"))};VTe.hide=(e=Qgi.stderr)=>{e.isTTY&&(Hgi(),u_t=!0,e.write("\x1B[?25l"))};VTe.toggle=(e,t)=>{e!==void 0&&(u_t=e),u_t?VTe.show(t):VTe.hide(t)};tSr=VTe});function Jgi(e){return e===161||e===164||e===167||e===168||e===170||e===173||e===174||e>=176&&e<=180||e>=182&&e<=186||e>=188&&e<=191||e===198||e===208||e===215||e===216||e>=222&&e<=225||e===230||e>=232&&e<=234||e===236||e===237||e===240||e===242||e===243||e>=247&&e<=250||e===252||e===254||e===257||e===273||e===275||e===283||e===294||e===295||e===299||e>=305&&e<=307||e===312||e>=319&&e<=322||e===324||e>=328&&e<=331||e===333||e===338||e===339||e===358||e===359||e===363||e===462||e===464||e===466||e===468||e===470||e===472||e===474||e===476||e===593||e===609||e===708||e===711||e>=713&&e<=715||e===717||e===720||e>=728&&e<=731||e===733||e===735||e>=768&&e<=879||e>=913&&e<=929||e>=931&&e<=937||e>=945&&e<=961||e>=963&&e<=969||e===1025||e>=1040&&e<=1103||e===1105||e===8208||e>=8211&&e<=8214||e===8216||e===8217||e===8220||e===8221||e>=8224&&e<=8226||e>=8228&&e<=8231||e===8240||e===8242||e===8243||e===8245||e===8251||e===8254||e===8308||e===8319||e>=8321&&e<=8324||e===8364||e===8451||e===8453||e===8457||e===8467||e===8470||e===8481||e===8482||e===8486||e===8491||e===8531||e===8532||e>=8539&&e<=8542||e>=8544&&e<=8555||e>=8560&&e<=8569||e===8585||e>=8592&&e<=8601||e===8632||e===8633||e===8658||e===8660||e===8679||e===8704||e===8706||e===8707||e===8711||e===8712||e===8715||e===8719||e===8721||e===8725||e===8730||e>=8733&&e<=8736||e===8739||e===8741||e>=8743&&e<=8748||e===8750||e>=8756&&e<=8759||e===8764||e===8765||e===8776||e===8780||e===8786||e===8800||e===8801||e>=8804&&e<=8807||e===8810||e===8811||e===8814||e===8815||e===8834||e===8835||e===8838||e===8839||e===8853||e===8857||e===8869||e===8895||e===8978||e>=9312&&e<=9449||e>=9451&&e<=9547||e>=9552&&e<=9587||e>=9600&&e<=9615||e>=9618&&e<=9621||e===9632||e===9633||e>=9635&&e<=9641||e===9650||e===9651||e===9654||e===9655||e===9660||e===9661||e===9664||e===9665||e>=9670&&e<=9672||e===9675||e>=9678&&e<=9681||e>=9698&&e<=9701||e===9711||e===9733||e===9734||e===9737||e===9742||e===9743||e===9756||e===9758||e===9792||e===9794||e===9824||e===9825||e>=9827&&e<=9829||e>=9831&&e<=9834||e===9836||e===9837||e===9839||e===9886||e===9887||e===9919||e>=9926&&e<=9933||e>=9935&&e<=9939||e>=9941&&e<=9953||e===9955||e===9960||e===9961||e>=9963&&e<=9969||e===9972||e>=9974&&e<=9977||e===9979||e===9980||e===9982||e===9983||e===10045||e>=10102&&e<=10111||e>=11094&&e<=11097||e>=12872&&e<=12879||e>=57344&&e<=63743||e>=65024&&e<=65039||e===65533||e>=127232&&e<=127242||e>=127248&&e<=127277||e>=127280&&e<=127337||e>=127344&&e<=127373||e===127375||e===127376||e>=127387&&e<=127404||e>=917760&&e<=917999||e>=983040&&e<=1048573||e>=1048576&&e<=1114109}function Ugi(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function Kgi(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var jgi=bc(()=>{});function KNa(e){if(!Number.isSafeInteger(e))throw new TypeError(`Expected a code point, got \`${typeof e}\`.`)}function g_t(e,{ambiguousAsWide:t=!1}={}){return KNa(e),Ugi(e)||Kgi(e)||t&&Jgi(e)?2:1}var rSr=bc(()=>{jgi()});var qgi=H((YCu,zgi)=>{zgi.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});function MM(e,t={}){if(typeof e!="string"||e.length===0)return 0;let{ambiguousIsNarrow:r=!0,countAnsiEscapeCodes:n=!1}=t;if(n||(e=K$(e)),e.length===0)return 0;let a=0,o={ambiguousAsWide:!r};for(let{segment:l}of jNa.segment(e)){let A=l.codePointAt(0);if(!(A<=31||A>=127&&A<=159)&&!(A>=8203&&A<=8207||A===65279)&&!(A>=768&&A<=879||A>=6832&&A<=6911||A>=7616&&A<=7679||A>=8400&&A<=8447||A>=65056&&A<=65071)&&!(A>=55296&&A<=57343)&&!(A>=65024&&A<=65039)&&!zNa.test(l)){if((0,$gi.default)().test(l)){a+=2;continue}a+=g_t(A,o)}}return a}var $gi,jNa,zNa,nSr=bc(()=>{AQe();rSr();$gi=Nt(qgi(),1),jNa=new Intl.Segmenter,zNa=/^\p{Default_Ignorable_Code_Point}$/u});function eDa(){let e=new Map;for(let[t,r]of Object.entries(T2)){for(let[n,a]of Object.entries(r))T2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=T2[n],e.set(a[0],a[1]);Object.defineProperty(T2,t,{value:r,enumerable:!1})}return Object.defineProperty(T2,"codes",{value:e,enumerable:!1}),T2.color.close="\x1B[39m",T2.bgColor.close="\x1B[49m",T2.color.ansi=eAi(),T2.color.ansi256=tAi(),T2.color.ansi16m=rAi(),T2.bgColor.ansi=eAi(10),T2.bgColor.ansi256=tAi(10),T2.bgColor.ansi16m=rAi(10),Object.defineProperties(T2,{rgbToAnsi256:{value:(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>T2.rgbToAnsi256(...T2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>T2.ansi256ToAnsi(T2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>T2.ansi256ToAnsi(T2.hexToAnsi256(t)),enumerable:!1}}),T2}var eAi,tAi,rAi,T2,UCu,qNa,$Na,KCu,tDa,aV,A_t=bc(()=>{eAi=(e=0)=>t=>`\x1B[${t+e}m`,tAi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,rAi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,T2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},UCu=Object.keys(T2.modifier),qNa=Object.keys(T2.color),$Na=Object.keys(T2.bgColor),KCu=[...qNa,...$Na];tDa=eDa(),aV=tDa});var aAi={};sI(aAi,{default:()=>f_t});function f_t(e,t,r){return String(e).normalize().replaceAll(`\r `,` `).split(` `).map(n=>oDa(n,t,r)).join(` @@ -474,7 +474,7 @@ ${t}`,QNa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),XNa=Obj `),I=gSr(e);f===a&&n===I||(a=f,n=I,f=f_t(f,I,{trim:!1,hard:!0,wordWrap:!1}),e.write(QQe.eraseLines(r)+f),r=f.split(` `).length)};return l.clear=()=>{e.write(QQe.eraseLines(r)),o()},l.done=()=>{o(),t||tSr.show()},l}var fDa,gSr,IDa,hDa,mDa,CDa,dAi=bc(()=>{Lgi();Xgi();oSr();uAi();AQe();fDa=24,gSr=({columns:e=80})=>e,IDa=(e,t)=>{let r=e.rows??fDa,n=t.split(` `),a=Math.max(0,n.length-r);return a?uSr(t,K$(n.slice(0,a).join(` -`)).length+1):t};hDa=ASr(gAi.stdout),mDa=hDa,CDa=ASr(gAi.stderr)});function dSr(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var pAi=bc(()=>{});function X8(e,t,r){let n=[...e],a=[],o=typeof r=="number"?r:n.length,l=!1,A,f=0,I="";for(let[C,b]of n.entries()){let E=!1;if(IAi.includes(b)){let N=/\d[^m]*/.exec(e.slice(C,C+18));A=N&&N.length>0?N[0]:void 0,ft&&f<=o)I+=b;else if(f===t&&!l&&A!==void 0)I=fAi(a);else if(f>=o){I+=fAi(a,!0,A);break}}return I}var _Da,IAi,I_t,fAi,hAi=bc(()=>{pAi();A_t();_Da=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,IAi=["\x1B","\x9B"],I_t=e=>`${IAi[0]}[${e}m`,fAi=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.includes(";")&&(a=a.split(";")[0][0]+"0");let l=aV.codes.get(Number.parseInt(a,10));if(l){let A=e.indexOf(l.toString());A===-1?n.push(I_t(t?l:o)):e.splice(A,1)}else if(t){n.push(I_t(0));break}else n.push(I_t(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=I_t(aV.codes.get(Number.parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")}});var CAi={};sI(CAi,{default:()=>mAi});function h_t(e,t,r){if(e.charAt(t)===" ")return t;let n=r?1:-1;for(let a=0;a<=3;a++){let o=t+a*n;if(e.charAt(o)===" ")return o}return t}function mAi(e,t,r={}){let{position:n="end",space:a=!1,preferTruncationOnSpace:o=!1}=r,{truncationCharacter:l="\u2026"}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let A=MM(e);if(A<=t)return e;if(n==="start"){if(o){let f=h_t(e,A-t+1,!0);return l+X8(e,f,A).trim()}return a===!0&&(l+=" "),l+X8(e,A-t+MM(l),A)}if(n==="middle"){a===!0&&(l=` ${l} `);let f=Math.floor(t/2);if(o){let I=h_t(e,f),C=h_t(e,A-(t-f)+1,!0);return X8(e,0,I)+l+X8(e,C,A).trim()}return X8(e,0,f)+l+X8(e,A-(t-f)+MM(l),A)}if(n==="end"){if(o){let f=h_t(e,t-1);return X8(e,0,f)+l}return a===!0&&(l=` ${l}`),X8(e,0,t-MM(l))+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}var _Ai=bc(()=>{hAi();nSr()});var LSr=H((G0u,bdi)=>{"use strict";var oka=wt("child_process").spawn;function aka(e){if(e){e=e.trim();var t=/your \d+x\d+ screen size is bogus\. expect trouble/gi;return e=e.replace(t,""),e.trim()}}function cka(e,t,r,n){typeof r=="function"&&(n=r,r=void 0);var a=!1,o=oka(e,t,r),l="",A="";o.stdout.on("data",function(f){l+=f.toString()}),o.stderr.on("data",function(f){A+=f.toString()}),o.on("error",function(f){a||(a=!0,n(new Error(f)))}),o.on("close",function(f){if(!a){if(a=!0,A=aka(A),A)return n(new Error(A));n(null,l,f)}})}bdi.exports=cka});var Sdi=H((F0u,Edi)=>{"use strict";var lka=wt("os"),uka=LSr();function gka(e){var t=["-A","-o","ppid,pid"];uka("ps",t,function(r,n,a){if(r)return e(r);if(a!==0)return e(new Error("pidtree ps command exited with code "+a));try{n=n.split(lka.EOL);for(var o=[],l=1;l{"use strict";var Aka=wt("os"),dka=LSr();function pka(e){var t=["PROCESS","get","ParentProcessId,ProcessId"],r={windowsHide:!0,windowsVerbatimArguments:!0};dka("wmic",t,r,function(n,a,o){if(n){e(n);return}if(o!==0){e(new Error("pidtree wmic command exited with code "+o));return}try{a=a.split(Aka.EOL);for(var l=[],A=1;A{"use strict";var Tdi=wt("os"),fka={darwin:"ps",sunos:"ps",freebsd:"ps",netbsd:"ps",win:"wmic",linux:"ps",aix:"ps"},Ika={ps:()=>Sdi(),wmic:()=>Bdi()},VSr=Tdi.platform();VSr.startsWith("win")&&(VSr="win");var wdi=fka[VSr];function hka(e){wdi===void 0&&e(new Error(Tdi.platform()+" is not supported yet, please open an issue (https://github.com/simonepri/pidtree)"));var t=Ika[wdi]();t(e)}Rdi.exports=hka});var kdi=H((V0u,Ddi)=>{"use strict";var mka=Ndi();function Cka(e,t,r){if(typeof t=="function"&&(r=t,t={}),typeof t!="object"&&(t={}),e=parseInt(e,10),isNaN(e)||e<-1){r(new TypeError("The pid provided is invalid"));return}mka(function(n,a){if(n){r(n);return}if(e===-1){for(var o=0;o0;){var I=a.pop();f[I[0]]?f[I[0]].push(I[1]):f[I[0]]=[I[1]]}for(var C=0,b=[l];C{"use strict";function _ka(e,t,r){return new Promise(function(n,a){e(t,r,function(o,l){if(o)return a(o);n(l)})})}String.prototype.startsWith||(String.prototype.startsWith=function(e){return this.substring(0,e.length)===e});var xdi=kdi();function yka(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof r=="function"){xdi(e,t,r);return}return _ka(xdi,e,t)}Gdi.exports=yka});var C0=H(Gk=>{"use strict";var MSr=Symbol.for("yaml.alias"),zdi=Symbol.for("yaml.document"),N_t=Symbol.for("yaml.map"),qdi=Symbol.for("yaml.pair"),HSr=Symbol.for("yaml.scalar"),D_t=Symbol.for("yaml.seq"),tee=Symbol.for("yaml.node.type"),Tka=e=>!!e&&typeof e=="object"&&e[tee]===MSr,Rka=e=>!!e&&typeof e=="object"&&e[tee]===zdi,Nka=e=>!!e&&typeof e=="object"&&e[tee]===N_t,Dka=e=>!!e&&typeof e=="object"&&e[tee]===qdi,$di=e=>!!e&&typeof e=="object"&&e[tee]===HSr,kka=e=>!!e&&typeof e=="object"&&e[tee]===D_t;function epi(e){if(e&&typeof e=="object")switch(e[tee]){case N_t:case D_t:return!0}return!1}function xka(e){if(e&&typeof e=="object")switch(e[tee]){case MSr:case N_t:case HSr:case D_t:return!0}return!1}var Gka=e=>($di(e)||epi(e))&&!!e.anchor;Gk.ALIAS=MSr;Gk.DOC=zdi;Gk.MAP=N_t;Gk.NODE_TYPE=tee;Gk.PAIR=qdi;Gk.SCALAR=HSr;Gk.SEQ=D_t;Gk.hasAnchor=Gka;Gk.isAlias=Tka;Gk.isCollection=epi;Gk.isDocument=Rka;Gk.isMap=Nka;Gk.isNode=xka;Gk.isPair=Dka;Gk.isScalar=$di;Gk.isSeq=kka});var tXe=H(YSr=>{"use strict";var NR=C0(),cV=Symbol("break visit"),tpi=Symbol("skip children"),J8=Symbol("remove node");function k_t(e,t){let r=rpi(t);NR.isDocument(e)?QTe(null,e.contents,r,Object.freeze([e]))===J8&&(e.contents=null):QTe(null,e,r,Object.freeze([]))}k_t.BREAK=cV;k_t.SKIP=tpi;k_t.REMOVE=J8;function QTe(e,t,r,n){let a=npi(e,t,r,n);if(NR.isNode(a)||NR.isPair(a))return ipi(e,n,a),QTe(e,a,r,n);if(typeof a!="symbol"){if(NR.isCollection(t)){n=Object.freeze(n.concat(t));for(let o=0;o{"use strict";var spi=C0(),Fka=tXe(),Zka={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Lka=e=>e.replace(/[!,[\]{}]/g,t=>Zka[t]),rXe=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let n=t.trim().split(/[ \t]+/),a=n.shift();switch(a){case"%TAG":{if(n.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[o,l]=n;return this.tags[o]=l,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[o]=n;if(o==="1.1"||o==="1.2")return this.yaml.version=o,!0;{let l=/^\d+\.\d+$/.test(o);return r(6,`Unsupported YAML version ${o}`,l),!1}}default:return r(0,`Unknown directive ${a}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let l=t.slice(2,-1);return l==="!"||l==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),l)}let[,n,a]=t.match(/^(.*!)([^!]*)$/s);a||r(`The ${t} tag has no suffix`);let o=this.tags[n];if(o)try{return o+decodeURIComponent(a)}catch(l){return r(String(l)),null}return n==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,n]of Object.entries(this.tags))if(t.startsWith(n))return r+Lka(t.substring(n.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),a;if(t&&n.length>0&&spi.isNode(t.contents)){let o={};Fka.visit(t.contents,(l,A)=>{spi.isNode(A)&&A.tag&&(o[A.tag]=!0)}),a=Object.keys(o)}else a=[];for(let[o,l]of n)o==="!!"&&l==="tag:yaml.org,2002:"||(!t||a.some(A=>A.startsWith(l)))&&r.push(`%TAG ${o} ${l}`);return r.join(` +`)).length+1):t};hDa=ASr(gAi.stdout),mDa=hDa,CDa=ASr(gAi.stderr)});function dSr(e){return Number.isInteger(e)?e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141):!1}var pAi=bc(()=>{});function X8(e,t,r){let n=[...e],a=[],o=typeof r=="number"?r:n.length,l=!1,A,f=0,I="";for(let[C,b]of n.entries()){let E=!1;if(IAi.includes(b)){let N=/\d[^m]*/.exec(e.slice(C,C+18));A=N&&N.length>0?N[0]:void 0,ft&&f<=o)I+=b;else if(f===t&&!l&&A!==void 0)I=fAi(a);else if(f>=o){I+=fAi(a,!0,A);break}}return I}var _Da,IAi,I_t,fAi,hAi=bc(()=>{pAi();A_t();_Da=/^[\uD800-\uDBFF][\uDC00-\uDFFF]$/,IAi=["\x1B","\x9B"],I_t=e=>`${IAi[0]}[${e}m`,fAi=(e,t,r)=>{let n=[];e=[...e];for(let a of e){let o=a;a.includes(";")&&(a=a.split(";")[0][0]+"0");let l=aV.codes.get(Number.parseInt(a,10));if(l){let A=e.indexOf(l.toString());A===-1?n.push(I_t(t?l:o)):e.splice(A,1)}else if(t){n.push(I_t(0));break}else n.push(I_t(o))}if(t&&(n=n.filter((a,o)=>n.indexOf(a)===o),r!==void 0)){let a=I_t(aV.codes.get(Number.parseInt(r,10)));n=n.reduce((o,l)=>l===a?[l,...o]:[...o,l],[])}return n.join("")}});var CAi={};sI(CAi,{default:()=>mAi});function h_t(e,t,r){if(e.charAt(t)===" ")return t;let n=r?1:-1;for(let a=0;a<=3;a++){let o=t+a*n;if(e.charAt(o)===" ")return o}return t}function mAi(e,t,r={}){let{position:n="end",space:a=!1,preferTruncationOnSpace:o=!1}=r,{truncationCharacter:l="\u2026"}=r;if(typeof e!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof e}`);if(typeof t!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof t}`);if(t<1)return"";if(t===1)return l;let A=MM(e);if(A<=t)return e;if(n==="start"){if(o){let f=h_t(e,A-t+1,!0);return l+X8(e,f,A).trim()}return a===!0&&(l+=" "),l+X8(e,A-t+MM(l),A)}if(n==="middle"){a===!0&&(l=` ${l} `);let f=Math.floor(t/2);if(o){let I=h_t(e,f),C=h_t(e,A-(t-f)+1,!0);return X8(e,0,I)+l+X8(e,C,A).trim()}return X8(e,0,f)+l+X8(e,A-(t-f)+MM(l),A)}if(n==="end"){if(o){let f=h_t(e,t-1);return X8(e,0,f)+l}return a===!0&&(l=` ${l}`),X8(e,0,t-MM(l))+l}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${n}`)}var _Ai=bc(()=>{hAi();nSr()});var LSr=H((F0u,bdi)=>{"use strict";var oka=wt("child_process").spawn;function aka(e){if(e){e=e.trim();var t=/your \d+x\d+ screen size is bogus\. expect trouble/gi;return e=e.replace(t,""),e.trim()}}function cka(e,t,r,n){typeof r=="function"&&(n=r,r=void 0);var a=!1,o=oka(e,t,r),l="",A="";o.stdout.on("data",function(f){l+=f.toString()}),o.stderr.on("data",function(f){A+=f.toString()}),o.on("error",function(f){a||(a=!0,n(new Error(f)))}),o.on("close",function(f){if(!a){if(a=!0,A=aka(A),A)return n(new Error(A));n(null,l,f)}})}bdi.exports=cka});var Sdi=H((Z0u,Edi)=>{"use strict";var lka=wt("os"),uka=LSr();function gka(e){var t=["-A","-o","ppid,pid"];uka("ps",t,function(r,n,a){if(r)return e(r);if(a!==0)return e(new Error("pidtree ps command exited with code "+a));try{n=n.split(lka.EOL);for(var o=[],l=1;l{"use strict";var Aka=wt("os"),dka=LSr();function pka(e){var t=["PROCESS","get","ParentProcessId,ProcessId"],r={windowsHide:!0,windowsVerbatimArguments:!0};dka("wmic",t,r,function(n,a,o){if(n){e(n);return}if(o!==0){e(new Error("pidtree wmic command exited with code "+o));return}try{a=a.split(Aka.EOL);for(var l=[],A=1;A{"use strict";var Tdi=wt("os"),fka={darwin:"ps",sunos:"ps",freebsd:"ps",netbsd:"ps",win:"wmic",linux:"ps",aix:"ps"},Ika={ps:()=>Sdi(),wmic:()=>Bdi()},VSr=Tdi.platform();VSr.startsWith("win")&&(VSr="win");var wdi=fka[VSr];function hka(e){wdi===void 0&&e(new Error(Tdi.platform()+" is not supported yet, please open an issue (https://github.com/simonepri/pidtree)"));var t=Ika[wdi]();t(e)}Rdi.exports=hka});var kdi=H((P0u,Ddi)=>{"use strict";var mka=Ndi();function Cka(e,t,r){if(typeof t=="function"&&(r=t,t={}),typeof t!="object"&&(t={}),e=parseInt(e,10),isNaN(e)||e<-1){r(new TypeError("The pid provided is invalid"));return}mka(function(n,a){if(n){r(n);return}if(e===-1){for(var o=0;o0;){var I=a.pop();f[I[0]]?f[I[0]].push(I[1]):f[I[0]]=[I[1]]}for(var C=0,b=[l];C{"use strict";function _ka(e,t,r){return new Promise(function(n,a){e(t,r,function(o,l){if(o)return a(o);n(l)})})}String.prototype.startsWith||(String.prototype.startsWith=function(e){return this.substring(0,e.length)===e});var xdi=kdi();function yka(e,t,r){if(typeof t=="function"&&(r=t,t=void 0),typeof r=="function"){xdi(e,t,r);return}return _ka(xdi,e,t)}Gdi.exports=yka});var C0=H(Gk=>{"use strict";var MSr=Symbol.for("yaml.alias"),zdi=Symbol.for("yaml.document"),N_t=Symbol.for("yaml.map"),qdi=Symbol.for("yaml.pair"),HSr=Symbol.for("yaml.scalar"),D_t=Symbol.for("yaml.seq"),tee=Symbol.for("yaml.node.type"),Tka=e=>!!e&&typeof e=="object"&&e[tee]===MSr,Rka=e=>!!e&&typeof e=="object"&&e[tee]===zdi,Nka=e=>!!e&&typeof e=="object"&&e[tee]===N_t,Dka=e=>!!e&&typeof e=="object"&&e[tee]===qdi,$di=e=>!!e&&typeof e=="object"&&e[tee]===HSr,kka=e=>!!e&&typeof e=="object"&&e[tee]===D_t;function epi(e){if(e&&typeof e=="object")switch(e[tee]){case N_t:case D_t:return!0}return!1}function xka(e){if(e&&typeof e=="object")switch(e[tee]){case MSr:case N_t:case HSr:case D_t:return!0}return!1}var Gka=e=>($di(e)||epi(e))&&!!e.anchor;Gk.ALIAS=MSr;Gk.DOC=zdi;Gk.MAP=N_t;Gk.NODE_TYPE=tee;Gk.PAIR=qdi;Gk.SCALAR=HSr;Gk.SEQ=D_t;Gk.hasAnchor=Gka;Gk.isAlias=Tka;Gk.isCollection=epi;Gk.isDocument=Rka;Gk.isMap=Nka;Gk.isNode=xka;Gk.isPair=Dka;Gk.isScalar=$di;Gk.isSeq=kka});var tXe=H(YSr=>{"use strict";var NR=C0(),cV=Symbol("break visit"),tpi=Symbol("skip children"),J8=Symbol("remove node");function k_t(e,t){let r=rpi(t);NR.isDocument(e)?QTe(null,e.contents,r,Object.freeze([e]))===J8&&(e.contents=null):QTe(null,e,r,Object.freeze([]))}k_t.BREAK=cV;k_t.SKIP=tpi;k_t.REMOVE=J8;function QTe(e,t,r,n){let a=npi(e,t,r,n);if(NR.isNode(a)||NR.isPair(a))return ipi(e,n,a),QTe(e,a,r,n);if(typeof a!="symbol"){if(NR.isCollection(t)){n=Object.freeze(n.concat(t));for(let o=0;o{"use strict";var spi=C0(),Fka=tXe(),Zka={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Lka=e=>e.replace(/[!,[\]{}]/g,t=>Zka[t]),rXe=class e{constructor(t,r){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},e.defaultYaml,t),this.tags=Object.assign({},e.defaultTags,r)}clone(){let t=new e(this.yaml,this.tags);return t.docStart=this.docStart,t}atDocument(){let t=new e(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:e.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},e.defaultTags);break}return t}add(t,r){this.atNextDocument&&(this.yaml={explicit:e.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},e.defaultTags),this.atNextDocument=!1);let n=t.trim().split(/[ \t]+/),a=n.shift();switch(a){case"%TAG":{if(n.length!==2&&(r(0,"%TAG directive should contain exactly two parts"),n.length<2))return!1;let[o,l]=n;return this.tags[o]=l,!0}case"%YAML":{if(this.yaml.explicit=!0,n.length!==1)return r(0,"%YAML directive should contain exactly one part"),!1;let[o]=n;if(o==="1.1"||o==="1.2")return this.yaml.version=o,!0;{let l=/^\d+\.\d+$/.test(o);return r(6,`Unsupported YAML version ${o}`,l),!1}}default:return r(0,`Unknown directive ${a}`,!0),!1}}tagName(t,r){if(t==="!")return"!";if(t[0]!=="!")return r(`Not a valid tag: ${t}`),null;if(t[1]==="<"){let l=t.slice(2,-1);return l==="!"||l==="!!"?(r(`Verbatim tags aren't resolved, so ${t} is invalid.`),null):(t[t.length-1]!==">"&&r("Verbatim tags must end with a >"),l)}let[,n,a]=t.match(/^(.*!)([^!]*)$/s);a||r(`The ${t} tag has no suffix`);let o=this.tags[n];if(o)try{return o+decodeURIComponent(a)}catch(l){return r(String(l)),null}return n==="!"?t:(r(`Could not resolve tag: ${t}`),null)}tagString(t){for(let[r,n]of Object.entries(this.tags))if(t.startsWith(n))return r+Lka(t.substring(n.length));return t[0]==="!"?t:`!<${t}>`}toString(t){let r=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],n=Object.entries(this.tags),a;if(t&&n.length>0&&spi.isNode(t.contents)){let o={};Fka.visit(t.contents,(l,A)=>{spi.isNode(A)&&A.tag&&(o[A.tag]=!0)}),a=Object.keys(o)}else a=[];for(let[o,l]of n)o==="!!"&&l==="tag:yaml.org,2002:"||(!t||a.some(A=>A.startsWith(l)))&&r.push(`%TAG ${o} ${l}`);return r.join(` `)}};rXe.defaultYaml={explicit:!1,version:"1.2"};rXe.defaultTags={"!!":"tag:yaml.org,2002:"};opi.Directives=rXe});var G_t=H(nXe=>{"use strict";var api=C0(),Vka=tXe();function Pka(e){if(/[\x00-\x19\s,[\]{}]/.test(e)){let r=`Anchor must not contain whitespace or control characters: ${JSON.stringify(e)}`;throw new Error(r)}return!0}function cpi(e){let t=new Set;return Vka.visit(e,{Value(r,n){n.anchor&&t.add(n.anchor)}}),t}function lpi(e,t){for(let r=1;;++r){let n=`${e}${r}`;if(!t.has(n))return n}}function Wka(e,t){let r=[],n=new Map,a=null;return{onAnchor:o=>{r.push(o),a||(a=cpi(e));let l=lpi(t,a);return a.add(l),l},setAnchors:()=>{for(let o of r){let l=n.get(o);if(typeof l=="object"&&l.anchor&&(api.isScalar(l.node)||api.isCollection(l.node)))l.node.anchor=l.anchor;else{let A=new Error("Failed to resolve repeated object (this should not happen)");throw A.source=o,A}}},sourceObjects:n}}nXe.anchorIsValid=Pka;nXe.anchorNames=cpi;nXe.createNodeAnchors=Wka;nXe.findNewAnchor=lpi});var XSr=H(upi=>{"use strict";function iXe(e,t,r,n){if(n&&typeof n=="object")if(Array.isArray(n))for(let a=0,o=n.length;a{"use strict";var Oka=C0();function gpi(e,t,r){if(Array.isArray(e))return e.map((n,a)=>gpi(n,String(a),r));if(e&&typeof e.toJSON=="function"){if(!r||!Oka.hasAnchor(e))return e.toJSON(t,r);let n={aliasCount:0,count:1,res:void 0};r.anchors.set(e,n),r.onCreate=o=>{n.res=o,delete r.onCreate};let a=e.toJSON(t,r);return r.onCreate&&r.onCreate(a),a}return typeof e=="bigint"&&!r?.keep?Number(e):e}Api.toJS=gpi});var F_t=H(ppi=>{"use strict";var Mka=XSr(),dpi=C0(),Hka=Nae(),JSr=class{constructor(t){Object.defineProperty(this,dpi.NODE_TYPE,{value:t})}clone(){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(t.range=this.range.slice()),t}toJS(t,{mapAsMap:r,maxAliasCount:n,onAnchor:a,reviver:o}={}){if(!dpi.isDocument(t))throw new TypeError("A document argument is required");let l={anchors:new Map,doc:t,keep:!0,mapAsMap:r===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},A=Hka.toJS(this,"",l);if(typeof a=="function")for(let{count:f,res:I}of l.anchors.values())a(I,f);return typeof o=="function"?Mka.applyReviver(o,{"":A},"",A):A}};ppi.NodeBase=JSr});var sXe=H(Ipi=>{"use strict";var Yka=G_t(),fpi=tXe(),Z_t=C0(),Qka=F_t(),Xka=Nae(),USr=class extends Qka.NodeBase{constructor(t){super(Z_t.ALIAS),this.source=t,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(t){let r;return fpi.visit(t,{Node:(n,a)=>{if(a===this)return fpi.visit.BREAK;a.anchor===this.source&&(r=a)}}),r}toJSON(t,r){if(!r)return{source:this.source};let{anchors:n,doc:a,maxAliasCount:o}=r,l=this.resolve(a);if(!l){let f=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(f)}let A=n.get(l);if(A||(Xka.toJS(l,null,r),A=n.get(l)),!A||A.res===void 0){let f="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(f)}if(o>=0&&(A.count+=1,A.aliasCount===0&&(A.aliasCount=L_t(a,l,n)),A.count*A.aliasCount>o)){let f="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(f)}return A.res}toString(t,r,n){let a=`*${this.source}`;if(t){if(Yka.anchorIsValid(this.source),t.options.verifyAliasOrder&&!t.anchors.has(this.source)){let o=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(o)}if(t.implicitKey)return`${a} `}return a}};function L_t(e,t,r){if(Z_t.isAlias(t)){let n=t.resolve(e),a=r&&n&&r.get(n);return a?a.count*a.aliasCount:0}else if(Z_t.isCollection(t)){let n=0;for(let a of t.items){let o=L_t(e,a,r);o>n&&(n=o)}return n}else if(Z_t.isPair(t)){let n=L_t(e,t.key,r),a=L_t(e,t.value,r);return Math.max(n,a)}return 1}Ipi.Alias=USr});var gT=H(KSr=>{"use strict";var Jka=C0(),Uka=F_t(),Kka=Nae(),jka=e=>!e||typeof e!="function"&&typeof e!="object",Dae=class extends Uka.NodeBase{constructor(t){super(Jka.SCALAR),this.value=t}toJSON(t,r){return r?.keep?this.value:Kka.toJS(this.value,t,r)}toString(){return String(this.value)}};Dae.BLOCK_FOLDED="BLOCK_FOLDED";Dae.BLOCK_LITERAL="BLOCK_LITERAL";Dae.PLAIN="PLAIN";Dae.QUOTE_DOUBLE="QUOTE_DOUBLE";Dae.QUOTE_SINGLE="QUOTE_SINGLE";KSr.Scalar=Dae;KSr.isScalarValue=jka});var oXe=H(mpi=>{"use strict";var zka=sXe(),Whe=C0(),hpi=gT(),qka="tag:yaml.org,2002:";function $ka(e,t,r){if(t){let n=r.filter(o=>o.tag===t),a=n.find(o=>!o.format)??n[0];if(!a)throw new Error(`Tag ${t} not found`);return a}return r.find(n=>n.identify?.(e)&&!n.format)}function exa(e,t,r){if(Whe.isDocument(e)&&(e=e.contents),Whe.isNode(e))return e;if(Whe.isPair(e)){let b=r.schema[Whe.MAP].createNode?.(r.schema,null,r);return b.items.push(e),b}(e instanceof String||e instanceof Number||e instanceof Boolean||typeof BigInt<"u"&&e instanceof BigInt)&&(e=e.valueOf());let{aliasDuplicateObjects:n,onAnchor:a,onTagObj:o,schema:l,sourceObjects:A}=r,f;if(n&&e&&typeof e=="object"){if(f=A.get(e),f)return f.anchor||(f.anchor=a(e)),new zka.Alias(f.anchor);f={anchor:null,node:null},A.set(e,f)}t?.startsWith("!!")&&(t=qka+t.slice(2));let I=$ka(e,t,l.tags);if(!I){if(e&&typeof e.toJSON=="function"&&(e=e.toJSON()),!e||typeof e!="object"){let b=new hpi.Scalar(e);return f&&(f.node=b),b}I=e instanceof Map?l[Whe.MAP]:Symbol.iterator in Object(e)?l[Whe.SEQ]:l[Whe.MAP]}o&&(o(I),delete r.onTagObj);let C=I?.createNode?I.createNode(r.schema,e,r):typeof I?.nodeClass?.from=="function"?I.nodeClass.from(r.schema,e,r):new hpi.Scalar(e);return t?C.tag=t:I.default||(C.tag=I.tag),f&&(f.node=C),C}mpi.createNode=exa});var P_t=H(V_t=>{"use strict";var txa=oXe(),U8=C0(),rxa=F_t();function jSr(e,t,r){let n=r;for(let a=t.length-1;a>=0;--a){let o=t[a];if(typeof o=="number"&&Number.isInteger(o)&&o>=0){let l=[];l[o]=n,n=l}else n=new Map([[o,n]])}return txa.createNode(n,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:e,sourceObjects:new Map})}var Cpi=e=>e==null||typeof e=="object"&&!!e[Symbol.iterator]().next().done,zSr=class extends rxa.NodeBase{constructor(t,r){super(t),Object.defineProperty(this,"schema",{value:r,configurable:!0,enumerable:!1,writable:!0})}clone(t){let r=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return t&&(r.schema=t),r.items=r.items.map(n=>U8.isNode(n)||U8.isPair(n)?n.clone(t):n),this.range&&(r.range=this.range.slice()),r}addIn(t,r){if(Cpi(t))this.add(r);else{let[n,...a]=t,o=this.get(n,!0);if(U8.isCollection(o))o.addIn(a,r);else if(o===void 0&&this.schema)this.set(n,jSr(this.schema,a,r));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}deleteIn(t){let[r,...n]=t;if(n.length===0)return this.delete(r);let a=this.get(r,!0);if(U8.isCollection(a))return a.deleteIn(n);throw new Error(`Expected YAML collection at ${r}. Remaining path: ${n}`)}getIn(t,r){let[n,...a]=t,o=this.get(n,!0);return a.length===0?!r&&U8.isScalar(o)?o.value:o:U8.isCollection(o)?o.getIn(a,r):void 0}hasAllNullValues(t){return this.items.every(r=>{if(!U8.isPair(r))return!1;let n=r.value;return n==null||t&&U8.isScalar(n)&&n.value==null&&!n.commentBefore&&!n.comment&&!n.tag})}hasIn(t){let[r,...n]=t;if(n.length===0)return this.has(r);let a=this.get(r,!0);return U8.isCollection(a)?a.hasIn(n):!1}setIn(t,r){let[n,...a]=t;if(a.length===0)this.set(n,r);else{let o=this.get(n,!0);if(U8.isCollection(o))o.setIn(a,r);else if(o===void 0&&this.schema)this.set(n,jSr(this.schema,a,r));else throw new Error(`Expected YAML collection at ${n}. Remaining path: ${a}`)}}};V_t.Collection=zSr;V_t.collectionFromPath=jSr;V_t.isEmptyPath=Cpi});var aXe=H(W_t=>{"use strict";var nxa=e=>e.replace(/^(?!$)(?: $)?/gm,"#");function qSr(e,t){return/^\n+$/.test(e)?e.substring(1):t?e.replace(/^(?! *$)/gm,t):e}var ixa=(e,t,r)=>e.endsWith(` `)?qSr(r,t):r.includes(` `)?` @@ -612,23 +612,23 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(` `,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){let a=t.items[t.items.length-2]?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,r.start),a.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){let n=!this.onKeyLine&&this.indent===t.indent,a=n&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind",o=[];if(a&&r.sep&&!r.value){let l=[];for(let A=0;At.indent&&(l.length=0);break;default:l.length=0}}l.length>=2&&(o=r.sep.splice(l[1]))}switch(this.type){case"anchor":case"tag":a||r.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):a||r.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(Qhe(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(wIi(r.key)&&!Qhe(r.sep,"newline")){let l=rRe(r.start),A=r.key,f=r.sep;f.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:l,key:A,sep:f}]})}else o.length>0?r.sep=r.sep.concat(o,this.sourceToken):r.sep.push(this.sourceToken);else if(Qhe(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{let l=rRe(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:l,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||a?t.items.push({start:o,key:null,sep:[this.sourceToken]}):Qhe(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let l=this.flowScalar(this.type);a||r.value?(t.items.push({start:o,key:l,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(l):(Object.assign(r,{key:l,sep:[]}),this.onKeyLine=!0);return}default:{let l=this.startBlockValue(t);if(l){n&&l.type!=="block-seq"&&t.items.push({start:o}),this.stack.push(l);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){let r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){let n="end"in r.value?r.value.end:void 0;(Array.isArray(n)?n[n.length-1]:void 0)?.type==="comment"?n?.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){let a=t.items[t.items.length-2]?.value?.end;if(Array.isArray(a)){Array.prototype.push.apply(a,r.start),a.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||Qhe(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){let n=this.startBlockValue(t);if(n){this.stack.push(n);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){let r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while(n&&n.type==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let a=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:a,sep:[]}):r.sep?this.stack.push(a):Object.assign(r,{key:a,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}let n=this.startBlockValue(t);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===t.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){let a=y0t(n),o=rRe(a);BIi(t);let l=t.end.splice(1,t.end.length);l.push(this.sourceToken);let A={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:o,key:t,sep:l}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=A}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(` `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(` -`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};TIi.Parser=CBr});var xIi=H(TXe=>{"use strict";var RIi=oBr(),kZa=CXe(),wXe=bXe(),xZa=ivr(),GZa=mBr(),NIi=_Br();function DIi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new GZa.LineCounter||null,prettyErrors:t}}function FZa(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=Array.from(o.compose(a.parse(e)));if(n&&r)for(let A of l)A.errors.forEach(wXe.prettifyError(e,r)),A.warnings.forEach(wXe.prettifyError(e,r));return l.length>0?l:Object.assign([],{empty:!0},o.streamInfo())}function kIi(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=null;for(let A of o.compose(a.parse(e),!0,e.length))if(!l)l=A;else if(l.options.logLevel!=="silent"){l.errors.push(new wXe.YAMLParseError(A.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(l.errors.forEach(wXe.prettifyError(e,r)),l.warnings.forEach(wXe.prettifyError(e,r))),l}function ZZa(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let a=kIi(e,r);if(!a)return null;if(a.warnings.forEach(o=>xZa.warn(a.options.logLevel,o)),a.errors.length>0){if(a.options.logLevel!=="silent")throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:n},r))}function LZa(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let a=Math.round(r);r=a<1?void 0:a>8?{indent:8}:{indent:a}}if(e===void 0){let{keepUndefined:a}=r??t??{};if(!a)return}return new kZa.Document(e,n,r).toString(r)}TXe.parse=ZZa;TXe.parseAllDocuments=FZa;TXe.parseDocument=kIi;TXe.stringify=LZa});var FIi=H(J0=>{"use strict";var VZa=oBr(),PZa=CXe(),WZa=Wvr(),yBr=bXe(),OZa=sXe(),Vae=C0(),MZa=Gae(),HZa=gT(),YZa=Zae(),QZa=Lae(),XZa=C0t(),JZa=IBr(),UZa=mBr(),KZa=_Br(),b0t=xIi(),GIi=tXe();J0.Composer=VZa.Composer;J0.Document=PZa.Document;J0.Schema=WZa.Schema;J0.YAMLError=yBr.YAMLError;J0.YAMLParseError=yBr.YAMLParseError;J0.YAMLWarning=yBr.YAMLWarning;J0.Alias=OZa.Alias;J0.isAlias=Vae.isAlias;J0.isCollection=Vae.isCollection;J0.isDocument=Vae.isDocument;J0.isMap=Vae.isMap;J0.isNode=Vae.isNode;J0.isPair=Vae.isPair;J0.isScalar=Vae.isScalar;J0.isSeq=Vae.isSeq;J0.Pair=MZa.Pair;J0.Scalar=HZa.Scalar;J0.YAMLMap=YZa.YAMLMap;J0.YAMLSeq=QZa.YAMLSeq;J0.CST=XZa;J0.Lexer=JZa.Lexer;J0.LineCounter=UZa.LineCounter;J0.Parser=KZa.Parser;J0.parse=b0t.parse;J0.parseAllDocuments=b0t.parseAllDocuments;J0.parseDocument=b0t.parseDocument;J0.stringify=b0t.stringify;J0.visit=GIi.visit;J0.visitAsync=GIi.visitAsync});var HIi=H((Bbu,NXe)=>{var JX=wt("path"),RXe=wt("fs"),qZa=wt("os"),LIi=RXe.promises.readFile;function $Za(e,t){return["package.json",`.${e}rc.json`,`.${e}rc.js`,`.${e}rc.cjs`,...t?[]:[`.${e}rc.mjs`],`.config/${e}rc`,`.config/${e}rc.json`,`.config/${e}rc.js`,`.config/${e}rc.cjs`,...t?[]:[`.config/${e}rc.mjs`],`${e}.config.js`,`${e}.config.cjs`,...t?[]:[`${e}.config.mjs`]]}function T0t(e){return JX.dirname(e)||JX.sep}var SBr=(e,t)=>JSON.parse(t),w0t=typeof __webpack_require__=="function"?__non_webpack_require__:wt,VIi=Object.freeze({".js":w0t,".json":w0t,".cjs":w0t,noExt:SBr});NXe.exports.defaultLoadersSync=VIi;var EBr=async e=>{try{return(await import(e)).default}catch(t){try{return w0t(e)}catch(r){throw r.code==="ERR_REQUIRE_ESM"||r instanceof SyntaxError&&r.toString().includes("Cannot use import statement outside a module")?t:r}}},PIi=Object.freeze({".js":EBr,".mjs":EBr,".cjs":EBr,".json":SBr,noExt:SBr});NXe.exports.defaultLoaders=PIi;function WIi(e,t,r){let n={stopDir:qZa.homedir(),searchPlaces:$Za(e,r),ignoreEmptySearchPlaces:!0,cache:!0,transform:a=>a,packageProp:[e],...t,loaders:{...r?VIi:PIi,...t.loaders}};return n.searchPlaces.forEach(a=>{let o=JX.extname(a)||"noExt",l=n.loaders[o];if(!l)throw new Error(`Missing loader for extension "${a}"`);if(typeof l!="function")throw new Error(`Loader for extension "${a}" is not a function: Received ${typeof l}.`)}),n}function R0t(e,t){return typeof e=="string"&&e in t?t[e]:(Array.isArray(e)?e:e.split(".")).reduce((r,n)=>r===void 0?r:r[n],t)||null}function OIi(e){if(!e)throw new Error("load must pass a non-empty string")}function N0t(e,t){if(!e)throw new Error(`No loader specified for extension "${t}"`);if(typeof e!="function")throw new Error("loader is not a function")}var MIi=e=>(t,r,n)=>(e&&t.set(r,n),n);NXe.exports.lilconfig=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!1),C=new Map,b=new Map,E=MIi(I);return{async search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{await RXe.promises.access(ne)}catch{continue}let ce=String(await LIi(ne)),fe=JX.extname(ae)||"noExt",ue=a[fe];if(ae==="package.json"){let be=await ue(ne,ce),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ce.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(ue,fe),B.config=await ue(ne,ce)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},async load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(await LIi(B));if(F==="package.json"){let ue=await ae(B,ne);return E(b,B,f({config:R0t(o,ue),filepath:B}))}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({config:void 0,filepath:B,isEmpty:!0})):(ce.config=fe?void 0:await ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}};NXe.exports.lilconfigSync=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!0),C=new Map,b=new Map,E=MIi(I);return{search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{RXe.accessSync(ne)}catch{continue}let ce=JX.extname(ae)||"noExt",fe=a[ce],ue=String(RXe.readFileSync(ne));if(ae==="package.json"){let be=fe(ne,ue),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ue.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(fe,ce),B.config=fe(ne,ue)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(RXe.readFileSync(B));if(F==="package.json"){let ue=ae(B,ne);return f({config:R0t(o,ue),filepath:B})}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({filepath:B,config:void 0,isEmpty:!0})):(ce.config=fe?void 0:ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}}});var DBr=H((qEu,Ehi)=>{Ehi.exports=wt("stream")});var Rhi=H(($Eu,Thi)=>{"use strict";function Shi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vhi(e){for(var t=1;t0?this.tail.next=n:this.head=n,this.tail=n,++this.length}},{key:"unshift",value:function(r){var n={data:r,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var n=this.head,a=""+n.data;n=n.next;)a+=r+n.data;return a}},{key:"concat",value:function(r){if(this.length===0)return L0t.alloc(0);for(var n=L0t.allocUnsafe(r>>>0),a=this.head,o=0;a;)PLa(a.data,n,o),o+=a.data.length,a=a.next;return n}},{key:"consume",value:function(r,n){var a;return rl.length?l.length:r;if(A===l.length?o+=l:o+=l.slice(0,r),r-=A,r===0){A===l.length?(++a,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=l.slice(A));break}++a}return this.length-=a,o}},{key:"_getBuffer",value:function(r){var n=L0t.allocUnsafe(r),a=this.head,o=1;for(a.data.copy(n),r-=a.data.length;a=a.next;){var l=a.data,A=r>l.length?l.length:r;if(l.copy(n,n.length-r,0,A),r-=A,r===0){A===l.length?(++o,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=l.slice(A));break}++o}return this.length-=o,n}},{key:VLa,value:function(r,n){return kBr(this,vhi(vhi({},n),{},{depth:0,customInspect:!1}))}}]),e}()});var GBr=H((e1u,Dhi)=>{"use strict";function WLa(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return n||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(xBr,this,e)):process.nextTick(xBr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(o){!t&&o?r._writableState?r._writableState.errorEmitted?process.nextTick(V0t,r):(r._writableState.errorEmitted=!0,process.nextTick(Nhi,r,o)):process.nextTick(Nhi,r,o):t?(process.nextTick(V0t,r),t(o)):process.nextTick(V0t,r)}),this)}function Nhi(e,t){xBr(e,t),V0t(e)}function V0t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function OLa(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function xBr(e,t){e.emit("error",t)}function MLa(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}Dhi.exports={destroy:WLa,undestroy:OLa,errorOrDestroy:MLa}});var Pae=H((t1u,Ghi)=>{"use strict";var xhi={};function QM(e,t,r){r||(r=Error);function n(o,l,A){return typeof t=="string"?t:t(o,l,A)}class a extends r{constructor(l,A,f){super(n(l,A,f))}}a.prototype.name=r.name,a.prototype.code=e,xhi[e]=a}function khi(e,t){if(Array.isArray(e)){let r=e.length;return e=e.map(n=>String(n)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:r===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function HLa(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function YLa(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function QLa(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}QM("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);QM("ERR_INVALID_ARG_TYPE",function(e,t,r){let n;typeof t=="string"&&HLa(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";let a;if(YLa(e," argument"))a=`The ${e} ${n} ${khi(t,"type")}`;else{let o=QLa(e,".")?"property":"argument";a=`The "${e}" ${o} ${n} ${khi(t,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);QM("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");QM("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});QM("ERR_STREAM_PREMATURE_CLOSE","Premature close");QM("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});QM("ERR_MULTIPLE_CALLBACK","Callback called multiple times");QM("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");QM("ERR_STREAM_WRITE_AFTER_END","write after end");QM("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);QM("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);QM("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ghi.exports.codes=xhi});var FBr=H((r1u,Fhi)=>{"use strict";var XLa=Pae().codes.ERR_INVALID_OPT_VALUE;function JLa(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function ULa(e,t,r,n){var a=JLa(t,n,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=n?r:"highWaterMark";throw new XLa(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}Fhi.exports={getHighWaterMark:ULa}});var Zhi=H((n1u,ZBr)=>{typeof Object.create=="function"?ZBr.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ZBr.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var Wae=H((i1u,VBr)=>{try{if(LBr=wt("util"),typeof LBr.inherits!="function")throw"";VBr.exports=LBr.inherits}catch{VBr.exports=Zhi()}var LBr});var Vhi=H((s1u,Lhi)=>{Lhi.exports=wt("util").deprecate});var OBr=H((o1u,Yhi)=>{"use strict";Yhi.exports=Hv;function Whi(e){var t=this;this.next=null,this.entry=null,this.finish=function(){y9a(t,e)}}var sRe;Hv.WritableState=LXe;var KLa={deprecate:Vhi()},Ohi=DBr(),W0t=wt("buffer").Buffer,jLa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function zLa(e){return W0t.from(e)}function qLa(e){return W0t.isBuffer(e)||e instanceof jLa}var WBr=GBr(),$La=FBr(),e9a=$La.getHighWaterMark,Oae=Pae().codes,t9a=Oae.ERR_INVALID_ARG_TYPE,r9a=Oae.ERR_METHOD_NOT_IMPLEMENTED,n9a=Oae.ERR_MULTIPLE_CALLBACK,i9a=Oae.ERR_STREAM_CANNOT_PIPE,s9a=Oae.ERR_STREAM_DESTROYED,o9a=Oae.ERR_STREAM_NULL_VALUES,a9a=Oae.ERR_STREAM_WRITE_AFTER_END,c9a=Oae.ERR_UNKNOWN_ENCODING,oRe=WBr.errorOrDestroy;Wae()(Hv,Ohi);function l9a(){}function LXe(e,t,r){sRe=sRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof sRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=e9a(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){I9a(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Whi(this)}LXe.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(LXe.prototype,"buffer",{get:KLa.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var P0t;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(P0t=Function.prototype[Symbol.hasInstance],Object.defineProperty(Hv,Symbol.hasInstance,{value:function(t){return P0t.call(this,t)?!0:this!==Hv?!1:t&&t._writableState instanceof LXe}})):P0t=function(t){return t instanceof this};function Hv(e){sRe=sRe||Xhe();var t=this instanceof sRe;if(!t&&!P0t.call(Hv,this))return new Hv(e);this._writableState=new LXe(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Ohi.call(this)}Hv.prototype.pipe=function(){oRe(this,new i9a)};function u9a(e,t){var r=new a9a;oRe(e,r),process.nextTick(t,r)}function g9a(e,t,r,n){var a;return r===null?a=new o9a:typeof r!="string"&&!t.objectMode&&(a=new t9a("chunk",["string","Buffer"],r)),a?(oRe(e,a),process.nextTick(n,a),!1):!0}Hv.prototype.write=function(e,t,r){var n=this._writableState,a=!1,o=!n.objectMode&&qLa(e);return o&&!W0t.isBuffer(e)&&(e=zLa(e)),typeof t=="function"&&(r=t,t=null),o?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=l9a),n.ending?u9a(this,r):(o||g9a(this,n,e,r))&&(n.pendingcb++,a=d9a(this,n,o,e,t,r)),a};Hv.prototype.cork=function(){this._writableState.corked++};Hv.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Mhi(this,e))};Hv.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 c9a(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(Hv.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function A9a(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=W0t.from(t,r)),t}Object.defineProperty(Hv.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function d9a(e,t,r,n,a,o){if(!r){var l=A9a(t,n,a);n!==l&&(r=!0,a="buffer",n=l)}var A=t.objectMode?1:n.length;t.length+=A;var f=t.length{"use strict";var b9a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};Xhi.exports=j8;var Qhi=YBr(),HBr=OBr();Wae()(j8,Qhi);for(MBr=b9a(HBr.prototype),O0t=0;O0t{var H0t=wt("buffer"),z8=H0t.Buffer;function Jhi(e,t){for(var r in e)t[r]=e[r]}z8.from&&z8.alloc&&z8.allocUnsafe&&z8.allocUnsafeSlow?Uhi.exports=H0t:(Jhi(H0t,QBr),QBr.Buffer=Jhe);function Jhe(e,t,r){return z8(e,t,r)}Jhe.prototype=Object.create(z8.prototype);Jhi(z8,Jhe);Jhe.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return z8(e,t,r)};Jhe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=z8(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Jhe.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return z8(e)};Jhe.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return H0t.SlowBuffer(e)}});var UBr=H(zhi=>{"use strict";var JBr=Khi().Buffer,jhi=JBr.isEncoding||function(e){switch(e=""+e,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 v9a(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function B9a(e){var t=v9a(e);if(typeof t!="string"&&(JBr.isEncoding===jhi||!jhi(e)))throw new Error("Unknown encoding: "+e);return t||e}zhi.StringDecoder=VXe;function VXe(e){this.encoding=B9a(e);var t;switch(this.encoding){case"utf16le":this.text=k9a,this.end=x9a,t=4;break;case"utf8":this.fillLast=R9a,t=4;break;case"base64":this.text=G9a,this.end=F9a,t=3;break;default:this.write=Z9a,this.end=L9a;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=JBr.allocUnsafe(t)}VXe.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function w9a(e,t,r){var n=t.length-1;if(n=0?(a>0&&(e.lastNeed=a-1),a):--n=0?(a>0&&(e.lastNeed=a-2),a):--n=0?(a>0&&(a===2?a=0:e.lastNeed=a-3),a):0))}function T9a(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function R9a(e){var t=this.lastTotal-this.lastNeed,r=T9a(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function N9a(e,t){var r=w9a(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function D9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function k9a(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function x9a(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function G9a(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function F9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Z9a(e){return e.toString(this.encoding)}function L9a(e){return e&&e.length?this.write(e):""}});var Y0t=H((l1u,emi)=>{"use strict";var qhi=Pae().codes.ERR_STREAM_PREMATURE_CLOSE;function V9a(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a{"use strict";var Q0t;function Mae(e,t,r){return t=O9a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O9a(e){var t=M9a(e,"string");return typeof t=="symbol"?t:String(t)}function M9a(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var H9a=Y0t(),Hae=Symbol("lastResolve"),Uhe=Symbol("lastReject"),PXe=Symbol("error"),X0t=Symbol("ended"),Khe=Symbol("lastPromise"),KBr=Symbol("handlePromise"),jhe=Symbol("stream");function Yae(e,t){return{value:e,done:t}}function Y9a(e){var t=e[Hae];if(t!==null){var r=e[jhe].read();r!==null&&(e[Khe]=null,e[Hae]=null,e[Uhe]=null,t(Yae(r,!1)))}}function Q9a(e){process.nextTick(Y9a,e)}function X9a(e,t){return function(r,n){e.then(function(){if(t[X0t]){r(Yae(void 0,!0));return}t[KBr](r,n)},n)}}var J9a=Object.getPrototypeOf(function(){}),U9a=Object.setPrototypeOf((Q0t={get stream(){return this[jhe]},next:function(){var t=this,r=this[PXe];if(r!==null)return Promise.reject(r);if(this[X0t])return Promise.resolve(Yae(void 0,!0));if(this[jhe].destroyed)return new Promise(function(l,A){process.nextTick(function(){t[PXe]?A(t[PXe]):l(Yae(void 0,!0))})});var n=this[Khe],a;if(n)a=new Promise(X9a(n,this));else{var o=this[jhe].read();if(o!==null)return Promise.resolve(Yae(o,!1));a=new Promise(this[KBr])}return this[Khe]=a,a}},Mae(Q0t,Symbol.asyncIterator,function(){return this}),Mae(Q0t,"return",function(){var t=this;return new Promise(function(r,n){t[jhe].destroy(null,function(a){if(a){n(a);return}r(Yae(void 0,!0))})})}),Q0t),J9a),K9a=function(t){var r,n=Object.create(U9a,(r={},Mae(r,jhe,{value:t,writable:!0}),Mae(r,Hae,{value:null,writable:!0}),Mae(r,Uhe,{value:null,writable:!0}),Mae(r,PXe,{value:null,writable:!0}),Mae(r,X0t,{value:t._readableState.endEmitted,writable:!0}),Mae(r,KBr,{value:function(o,l){var A=n[jhe].read();A?(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(Yae(A,!1))):(n[Hae]=o,n[Uhe]=l)},writable:!0}),r));return n[Khe]=null,H9a(t,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var o=n[Uhe];o!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(a)),n[PXe]=a;return}var l=n[Hae];l!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,l(Yae(void 0,!0))),n[X0t]=!0}),t.on("readable",Q9a.bind(null,n)),n};tmi.exports=K9a});var omi=H((g1u,smi)=>{"use strict";function nmi(e,t,r,n,a,o,l){try{var A=e[o](l),f=A.value}catch(I){r(I);return}A.done?t(f):Promise.resolve(f).then(n,a)}function j9a(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(f){nmi(o,n,a,l,A,"next",f)}function A(f){nmi(o,n,a,l,A,"throw",f)}l(void 0)})}}function imi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function z9a(e){for(var t=1;t{"use strict";Imi.exports=y_;var aRe;y_.ReadableState=umi;var A1u=wt("events").EventEmitter,lmi=function(t,r){return t.listeners(r).length},OXe=DBr(),J0t=wt("buffer").Buffer,nVa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iVa(e){return J0t.from(e)}function sVa(e){return J0t.isBuffer(e)||e instanceof nVa}var jBr=wt("util"),Sm;jBr&&jBr.debuglog?Sm=jBr.debuglog("stream"):Sm=function(){};var oVa=Rhi(),nwr=GBr(),aVa=FBr(),cVa=aVa.getHighWaterMark,U0t=Pae().codes,lVa=U0t.ERR_INVALID_ARG_TYPE,uVa=U0t.ERR_STREAM_PUSH_AFTER_EOF,gVa=U0t.ERR_METHOD_NOT_IMPLEMENTED,AVa=U0t.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,cRe,zBr,qBr;Wae()(y_,OXe);var WXe=nwr.errorOrDestroy,$Br=["error","close","destroy","pause","resume"];function dVa(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 umi(e,t,r){aRe=aRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof aRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cVa(this,e,"readableHighWaterMark",r),this.buffer=new oVa,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.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(cRe||(cRe=UBr().StringDecoder),this.decoder=new cRe(e.encoding),this.encoding=e.encoding)}function y_(e){if(aRe=aRe||Xhe(),!(this instanceof y_))return new y_(e);var t=this instanceof aRe;this._readableState=new umi(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),OXe.call(this)}Object.defineProperty(y_.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});y_.prototype.destroy=nwr.destroy;y_.prototype._undestroy=nwr.undestroy;y_.prototype._destroy=function(e,t){t(e)};y_.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=J0t.from(e,t),t=""),n=!0),gmi(this,e,t,!1,n)};y_.prototype.unshift=function(e){return gmi(this,e,null,!0,!1)};function gmi(e,t,r,n,a){Sm("readableAddChunk",t);var o=e._readableState;if(t===null)o.reading=!1,IVa(e,o);else{var l;if(a||(l=pVa(o,t)),l)WXe(e,l);else if(o.objectMode||t&&t.length>0)if(typeof t!="string"&&!o.objectMode&&Object.getPrototypeOf(t)!==J0t.prototype&&(t=iVa(t)),n)o.endEmitted?WXe(e,new AVa):ewr(e,o,t,!0);else if(o.ended)WXe(e,new uVa);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||t.length!==0?ewr(e,o,t,!1):rwr(e,o)):ewr(e,o,t,!1)}else n||(o.reading=!1,rwr(e,o))}return!o.ended&&(o.length=ami?e=ami:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function cmi(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=fVa(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}y_.prototype.read=function(e){Sm("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Sm("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?twr(this):K0t(this),null;if(e=cmi(e,t),e===0&&t.ended)return t.length===0&&twr(this),null;var n=t.needReadable;Sm("need readable",n),(t.length===0||t.length-e0?a=pmi(e,t):a=null,a===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&twr(this)),a!==null&&this.emit("data",a),a};function IVa(e,t){if(Sm("onEofChunk"),!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,t.sync?K0t(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Ami(e)))}}function K0t(e){var t=e._readableState;Sm("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Sm("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Ami,e))}function Ami(e){var t=e._readableState;Sm("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,iwr(e)}function rwr(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(hVa,e,t))}function hVa(e,t){for(;!t.reading&&!t.ended&&(t.length1&&fmi(n.pipes,e)!==-1)&&!I&&(Sm("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function E(Q){Sm("onerror",Q),F(),e.removeListener("error",E),lmi(e,"error")===0&&WXe(e,Q)}dVa(e,"error",E);function N(){e.removeListener("finish",B),F()}e.once("close",N);function B(){Sm("onfinish"),e.removeListener("close",N),F()}e.once("finish",B);function F(){Sm("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Sm("pipe resume"),r.resume()),e};function mVa(e){return function(){var r=e._readableState;Sm("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&lmi(e,"data")&&(r.flowing=!0,iwr(e))}}y_.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};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,r),this);if(!e){var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Sm("on readable",n.length,n.reading),n.length?K0t(this):n.reading||process.nextTick(CVa,this)),r};y_.prototype.addListener=y_.prototype.on;y_.prototype.removeListener=function(e,t){var r=OXe.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(dmi,this),r};y_.prototype.removeAllListeners=function(e){var t=OXe.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(dmi,this),t};function dmi(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function CVa(e){Sm("readable nexttick read 0"),e.read(0)}y_.prototype.resume=function(){var e=this._readableState;return e.flowing||(Sm("resume"),e.flowing=!e.readableListening,_Va(this,e)),e.paused=!1,this};function _Va(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(yVa,e,t))}function yVa(e,t){Sm("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),iwr(e),t.flowing&&!t.reading&&e.read(0)}y_.prototype.pause=function(){return Sm("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Sm("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iwr(e){var t=e._readableState;for(Sm("flow",t.flowing);t.flowing&&e.read()!==null;);}y_.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;e.on("end",function(){if(Sm("wrapped end"),r.decoder&&!r.ended){var l=r.decoder.end();l&&l.length&&t.push(l)}t.push(null)}),e.on("data",function(l){if(Sm("wrapped data"),r.decoder&&(l=r.decoder.write(l)),!(r.objectMode&&l==null)&&!(!r.objectMode&&(!l||!l.length))){var A=t.push(l);A||(n=!0,e.pause())}});for(var a in e)this[a]===void 0&&typeof e[a]=="function"&&(this[a]=function(A){return function(){return e[A].apply(e,arguments)}}(a));for(var o=0;o<$Br.length;o++)e.on($Br[o],this.emit.bind(this,$Br[o]));return this._read=function(l){Sm("wrapped _read",l),n&&(n=!1,e.resume())},this};typeof Symbol=="function"&&(y_.prototype[Symbol.asyncIterator]=function(){return zBr===void 0&&(zBr=rmi()),zBr(this)});Object.defineProperty(y_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(y_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(y_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}});y_._fromList=pmi;Object.defineProperty(y_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function pmi(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.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function twr(e){var t=e._readableState;Sm("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(bVa,t,e))}function bVa(e,t){if(Sm("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(y_.from=function(e,t){return qBr===void 0&&(qBr=omi()),qBr(y_,e,t)});function fmi(e,t){for(var r=0,n=e.length;r{"use strict";mmi.exports=iee;var j0t=Pae().codes,EVa=j0t.ERR_METHOD_NOT_IMPLEMENTED,SVa=j0t.ERR_MULTIPLE_CALLBACK,vVa=j0t.ERR_TRANSFORM_ALREADY_TRANSFORMING,BVa=j0t.ERR_TRANSFORM_WITH_LENGTH_0,z0t=Xhe();Wae()(iee,z0t);function wVa(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new SVa);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";_mi.exports=MXe;var Cmi=swr();Wae()(MXe,Cmi);function MXe(e){if(!(this instanceof MXe))return new MXe(e);Cmi.call(this,e)}MXe.prototype._transform=function(e,t,r){r(null,e)}});var Bmi=H((I1u,vmi)=>{"use strict";var owr;function RVa(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Smi=Pae().codes,NVa=Smi.ERR_MISSING_ARGS,DVa=Smi.ERR_STREAM_DESTROYED;function bmi(e){if(e)throw e}function kVa(e){return e.setHeader&&typeof e.abort=="function"}function xVa(e,t,r,n){n=RVa(n);var a=!1;e.on("close",function(){a=!0}),owr===void 0&&(owr=Y0t()),owr(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,kVa(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(l||new DVa("pipe"))}}}function Emi(e){e()}function GVa(e,t){return e.pipe(t)}function FVa(e){return!e.length||typeof e[e.length-1]!="function"?bmi:e.pop()}function ZVa(){for(var e=arguments.length,t=new Array(e),r=0;r0;return xVa(l,f,I,function(C){a||(a=C),C&&o.forEach(Emi),!f&&(o.forEach(Emi),n(a))})});return t.reduce(GVa)}vmi.exports=ZVa});var lRe=H((XM,YXe)=>{var HXe=wt("stream");process.env.READABLE_STREAM==="disable"&&HXe?(YXe.exports=HXe.Readable,Object.assign(YXe.exports,HXe),YXe.exports.Stream=HXe):(XM=YXe.exports=YBr(),XM.Stream=HXe||XM,XM.Readable=XM,XM.Writable=OBr(),XM.Duplex=Xhe(),XM.Transform=swr(),XM.PassThrough=ymi(),XM.finished=Y0t(),XM.pipeline=Bmi())});var Rmi=H((h1u,Tmi)=>{"use strict";var{Buffer:UX}=wt("buffer"),wmi=Symbol.for("BufferList");function LE(e){if(!(this instanceof LE))return new LE(e);LE._init.call(this,e)}LE._init=function(t){Object.defineProperty(this,wmi,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};LE.prototype._new=function(t){return new LE(t)};LE.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let n=0;nthis.length||t<0)return;let r=this._offset(t);return this._bufs[r[0]][r[1]]};LE.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};LE.prototype.copy=function(t,r,n,a){if((typeof n!="number"||n<0)&&(n=0),(typeof a!="number"||a>this.length)&&(a=this.length),n>=this.length||a<=0)return t||UX.alloc(0);let o=!!t,l=this._offset(n),A=a-n,f=A,I=o&&r||0,C=l[1];if(n===0&&a===this.length){if(!o)return this._bufs.length===1?this._bufs[0]:UX.concat(this._bufs,this.length);for(let b=0;bE)this._bufs[b].copy(t,I,C),I+=E;else{this._bufs[b].copy(t,I,C,C+f),I+=E;break}f-=E,C&&(C=0)}return t.length>I?t.slice(0,I):t};LE.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();let n=this._offset(t),a=this._offset(r),o=this._bufs.slice(n[0],a[0]+1);return a[1]===0?o.pop():o[o.length-1]=o[o.length-1].slice(0,a[1]),n[1]!==0&&(o[0]=o[0].slice(n[1])),this._new(o)};LE.prototype.toString=function(t,r,n){return this.slice(r,n).toString(t)};LE.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};LE.prototype.duplicate=function(){let t=this._new();for(let r=0;rthis.length?this.length:t;let n=this._offset(t),a=n[0],o=n[1];for(;a=e.length){let f=l.indexOf(e,o);if(f!==-1)return this._reverseOffset([a,f]);o=l.length-e.length+1}else{let f=this._reverseOffset([a,o]);if(this._match(f,e))return f;o++}o=0}return-1};LE.prototype._match=function(e,t){if(this.length-e{"use strict";var awr=lRe().Duplex,LVa=Wae(),QXe=Rmi();function TG(e){if(!(this instanceof TG))return new TG(e);if(typeof e=="function"){this._callback=e;let t=function(n){this._callback&&(this._callback(n),this._callback=null)}.bind(this);this.on("pipe",function(n){n.on("error",t)}),this.on("unpipe",function(n){n.removeListener("error",t)}),e=null}QXe._init.call(this,e),awr.call(this)}LVa(TG,awr);Object.assign(TG.prototype,QXe.prototype);TG.prototype._new=function(t){return new TG(t)};TG.prototype._write=function(t,r,n){this._appendBuffer(t),typeof n=="function"&&n()};TG.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};TG.prototype.end=function(t){awr.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};TG.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};TG.prototype._isBufferList=function(t){return t instanceof TG||t instanceof QXe||TG.isBufferList(t)};TG.isBufferList=QXe.isBufferList;q0t.exports=TG;q0t.exports.BufferListStream=TG;q0t.exports.BufferList=QXe});var gwr=H(gRe=>{var VVa=Buffer.alloc,PVa="0000000000000000000",WVa="7777777777777777777",Nmi=48,Dmi=Buffer.from("ustar\0","binary"),OVa=Buffer.from("00","binary"),MVa=Buffer.from("ustar ","binary"),HVa=Buffer.from(" \0","binary"),YVa=parseInt("7777",8),XXe=257,uwr=263,QVa=function(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)},XVa=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},JVa=function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},kmi=function(e,t,r,n){for(;rt?WVa.slice(0,t)+" ":PVa.slice(0,t-e.length)+e+" "};function UVa(e){var t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;for(var r=[],n=e.length-1;n>0;n--){var a=e[n];t?r.push(a):r.push(255-a)}var o=0,l=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e};gRe.decodeLongPath=function(e,t){return uRe(e,0,e.length,t)};gRe.encodePax=function(e){var t="";e.name&&(t+=lwr(" path="+e.name+` +`,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let r=y0t(t),n=rRe(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}};TIi.Parser=CBr});var xIi=H(TXe=>{"use strict";var RIi=oBr(),kZa=CXe(),wXe=bXe(),xZa=ivr(),GZa=mBr(),NIi=_Br();function DIi(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new GZa.LineCounter||null,prettyErrors:t}}function FZa(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=Array.from(o.compose(a.parse(e)));if(n&&r)for(let A of l)A.errors.forEach(wXe.prettifyError(e,r)),A.warnings.forEach(wXe.prettifyError(e,r));return l.length>0?l:Object.assign([],{empty:!0},o.streamInfo())}function kIi(e,t={}){let{lineCounter:r,prettyErrors:n}=DIi(t),a=new NIi.Parser(r?.addNewLine),o=new RIi.Composer(t),l=null;for(let A of o.compose(a.parse(e),!0,e.length))if(!l)l=A;else if(l.options.logLevel!=="silent"){l.errors.push(new wXe.YAMLParseError(A.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(l.errors.forEach(wXe.prettifyError(e,r)),l.warnings.forEach(wXe.prettifyError(e,r))),l}function ZZa(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);let a=kIi(e,r);if(!a)return null;if(a.warnings.forEach(o=>xZa.warn(a.options.logLevel,o)),a.errors.length>0){if(a.options.logLevel!=="silent")throw a.errors[0];a.errors=[]}return a.toJS(Object.assign({reviver:n},r))}function LZa(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){let a=Math.round(r);r=a<1?void 0:a>8?{indent:8}:{indent:a}}if(e===void 0){let{keepUndefined:a}=r??t??{};if(!a)return}return new kZa.Document(e,n,r).toString(r)}TXe.parse=ZZa;TXe.parseAllDocuments=FZa;TXe.parseDocument=kIi;TXe.stringify=LZa});var FIi=H(J0=>{"use strict";var VZa=oBr(),PZa=CXe(),WZa=Wvr(),yBr=bXe(),OZa=sXe(),Vae=C0(),MZa=Gae(),HZa=gT(),YZa=Zae(),QZa=Lae(),XZa=C0t(),JZa=IBr(),UZa=mBr(),KZa=_Br(),b0t=xIi(),GIi=tXe();J0.Composer=VZa.Composer;J0.Document=PZa.Document;J0.Schema=WZa.Schema;J0.YAMLError=yBr.YAMLError;J0.YAMLParseError=yBr.YAMLParseError;J0.YAMLWarning=yBr.YAMLWarning;J0.Alias=OZa.Alias;J0.isAlias=Vae.isAlias;J0.isCollection=Vae.isCollection;J0.isDocument=Vae.isDocument;J0.isMap=Vae.isMap;J0.isNode=Vae.isNode;J0.isPair=Vae.isPair;J0.isScalar=Vae.isScalar;J0.isSeq=Vae.isSeq;J0.Pair=MZa.Pair;J0.Scalar=HZa.Scalar;J0.YAMLMap=YZa.YAMLMap;J0.YAMLSeq=QZa.YAMLSeq;J0.CST=XZa;J0.Lexer=JZa.Lexer;J0.LineCounter=UZa.LineCounter;J0.Parser=KZa.Parser;J0.parse=b0t.parse;J0.parseAllDocuments=b0t.parseAllDocuments;J0.parseDocument=b0t.parseDocument;J0.stringify=b0t.stringify;J0.visit=GIi.visit;J0.visitAsync=GIi.visitAsync});var HIi=H((wbu,NXe)=>{var JX=wt("path"),RXe=wt("fs"),qZa=wt("os"),LIi=RXe.promises.readFile;function $Za(e,t){return["package.json",`.${e}rc.json`,`.${e}rc.js`,`.${e}rc.cjs`,...t?[]:[`.${e}rc.mjs`],`.config/${e}rc`,`.config/${e}rc.json`,`.config/${e}rc.js`,`.config/${e}rc.cjs`,...t?[]:[`.config/${e}rc.mjs`],`${e}.config.js`,`${e}.config.cjs`,...t?[]:[`${e}.config.mjs`]]}function T0t(e){return JX.dirname(e)||JX.sep}var SBr=(e,t)=>JSON.parse(t),w0t=typeof __webpack_require__=="function"?__non_webpack_require__:wt,VIi=Object.freeze({".js":w0t,".json":w0t,".cjs":w0t,noExt:SBr});NXe.exports.defaultLoadersSync=VIi;var EBr=async e=>{try{return(await import(e)).default}catch(t){try{return w0t(e)}catch(r){throw r.code==="ERR_REQUIRE_ESM"||r instanceof SyntaxError&&r.toString().includes("Cannot use import statement outside a module")?t:r}}},PIi=Object.freeze({".js":EBr,".mjs":EBr,".cjs":EBr,".json":SBr,noExt:SBr});NXe.exports.defaultLoaders=PIi;function WIi(e,t,r){let n={stopDir:qZa.homedir(),searchPlaces:$Za(e,r),ignoreEmptySearchPlaces:!0,cache:!0,transform:a=>a,packageProp:[e],...t,loaders:{...r?VIi:PIi,...t.loaders}};return n.searchPlaces.forEach(a=>{let o=JX.extname(a)||"noExt",l=n.loaders[o];if(!l)throw new Error(`Missing loader for extension "${a}"`);if(typeof l!="function")throw new Error(`Loader for extension "${a}" is not a function: Received ${typeof l}.`)}),n}function R0t(e,t){return typeof e=="string"&&e in t?t[e]:(Array.isArray(e)?e:e.split(".")).reduce((r,n)=>r===void 0?r:r[n],t)||null}function OIi(e){if(!e)throw new Error("load must pass a non-empty string")}function N0t(e,t){if(!e)throw new Error(`No loader specified for extension "${t}"`);if(typeof e!="function")throw new Error("loader is not a function")}var MIi=e=>(t,r,n)=>(e&&t.set(r,n),n);NXe.exports.lilconfig=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!1),C=new Map,b=new Map,E=MIi(I);return{async search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{await RXe.promises.access(ne)}catch{continue}let ce=String(await LIi(ne)),fe=JX.extname(ae)||"noExt",ue=a[fe];if(ae==="package.json"){let be=await ue(ne,ce),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ce.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(ue,fe),B.config=await ue(ne,ce)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},async load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(await LIi(B));if(F==="package.json"){let ue=await ae(B,ne);return E(b,B,f({config:R0t(o,ue),filepath:B}))}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({config:void 0,filepath:B,isEmpty:!0})):(ce.config=fe?void 0:await ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}};NXe.exports.lilconfigSync=function(t,r){let{ignoreEmptySearchPlaces:n,loaders:a,packageProp:o,searchPlaces:l,stopDir:A,transform:f,cache:I}=WIi(t,r??{},!0),C=new Map,b=new Map,E=MIi(I);return{search(N=process.cwd()){let B={config:null,filepath:""},F=new Set,Q=N;e:for(;;){if(I){let ae=C.get(Q);if(ae!==void 0){for(let ne of F)C.set(ne,ae);return ae}F.add(Q)}for(let ae of l){let ne=JX.join(Q,ae);try{RXe.accessSync(ne)}catch{continue}let ce=JX.extname(ae)||"noExt",fe=a[ce],ue=String(RXe.readFileSync(ne));if(ae==="package.json"){let be=fe(ne,ue),Se=R0t(o,be);if(Se!=null){B.config=Se,B.filepath=ne;break e}continue}let de=ue.trim()==="";if(!(de&&n)){de?(B.isEmpty=!0,B.config=void 0):(N0t(fe,ce),B.config=fe(ne,ue)),B.filepath=ne;break e}}if(Q===A||Q===T0t(Q))break e;Q=T0t(Q)}let X=B.filepath===""&&B.config===null?f(null):f(B);if(I)for(let ae of F)C.set(ae,X);return X},load(N){OIi(N);let B=JX.resolve(process.cwd(),N);if(I&&b.has(B))return b.get(B);let{base:F,ext:Q}=JX.parse(B),X=Q||"noExt",ae=a[X];N0t(ae,X);let ne=String(RXe.readFileSync(B));if(F==="package.json"){let ue=ae(B,ne);return f({config:R0t(o,ue),filepath:B})}let ce={config:null,filepath:B},fe=ne.trim()==="";return fe&&n?E(b,B,f({filepath:B,config:void 0,isEmpty:!0})):(ce.config=fe?void 0:ae(B,ne),E(b,B,f(fe?{...ce,isEmpty:fe,config:void 0}:ce)))},clearLoadCache(){I&&b.clear()},clearSearchCache(){I&&C.clear()},clearCaches(){I&&(b.clear(),C.clear())}}}});var DBr=H(($Eu,Ehi)=>{Ehi.exports=wt("stream")});var Rhi=H((e1u,Thi)=>{"use strict";function Shi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function vhi(e){for(var t=1;t0?this.tail.next=n:this.head=n,this.tail=n,++this.length}},{key:"unshift",value:function(r){var n={data:r,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var n=this.head,a=""+n.data;n=n.next;)a+=r+n.data;return a}},{key:"concat",value:function(r){if(this.length===0)return L0t.alloc(0);for(var n=L0t.allocUnsafe(r>>>0),a=this.head,o=0;a;)PLa(a.data,n,o),o+=a.data.length,a=a.next;return n}},{key:"consume",value:function(r,n){var a;return rl.length?l.length:r;if(A===l.length?o+=l:o+=l.slice(0,r),r-=A,r===0){A===l.length?(++a,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=l.slice(A));break}++a}return this.length-=a,o}},{key:"_getBuffer",value:function(r){var n=L0t.allocUnsafe(r),a=this.head,o=1;for(a.data.copy(n),r-=a.data.length;a=a.next;){var l=a.data,A=r>l.length?l.length:r;if(l.copy(n,n.length-r,0,A),r-=A,r===0){A===l.length?(++o,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=l.slice(A));break}++o}return this.length-=o,n}},{key:VLa,value:function(r,n){return kBr(this,vhi(vhi({},n),{},{depth:0,customInspect:!1}))}}]),e}()});var GBr=H((t1u,Dhi)=>{"use strict";function WLa(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return n||a?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(xBr,this,e)):process.nextTick(xBr,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(o){!t&&o?r._writableState?r._writableState.errorEmitted?process.nextTick(V0t,r):(r._writableState.errorEmitted=!0,process.nextTick(Nhi,r,o)):process.nextTick(Nhi,r,o):t?(process.nextTick(V0t,r),t(o)):process.nextTick(V0t,r)}),this)}function Nhi(e,t){xBr(e,t),V0t(e)}function V0t(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function OLa(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function xBr(e,t){e.emit("error",t)}function MLa(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}Dhi.exports={destroy:WLa,undestroy:OLa,errorOrDestroy:MLa}});var Pae=H((r1u,Ghi)=>{"use strict";var xhi={};function QM(e,t,r){r||(r=Error);function n(o,l,A){return typeof t=="string"?t:t(o,l,A)}class a extends r{constructor(l,A,f){super(n(l,A,f))}}a.prototype.name=r.name,a.prototype.code=e,xhi[e]=a}function khi(e,t){if(Array.isArray(e)){let r=e.length;return e=e.map(n=>String(n)),r>2?`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]:r===2?`one of ${t} ${e[0]} or ${e[1]}`:`of ${t} ${e[0]}`}else return`of ${t} ${String(e)}`}function HLa(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function YLa(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function QLa(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}QM("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);QM("ERR_INVALID_ARG_TYPE",function(e,t,r){let n;typeof t=="string"&&HLa(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";let a;if(YLa(e," argument"))a=`The ${e} ${n} ${khi(t,"type")}`;else{let o=QLa(e,".")?"property":"argument";a=`The "${e}" ${o} ${n} ${khi(t,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);QM("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");QM("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});QM("ERR_STREAM_PREMATURE_CLOSE","Premature close");QM("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});QM("ERR_MULTIPLE_CALLBACK","Callback called multiple times");QM("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");QM("ERR_STREAM_WRITE_AFTER_END","write after end");QM("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);QM("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);QM("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Ghi.exports.codes=xhi});var FBr=H((n1u,Fhi)=>{"use strict";var XLa=Pae().codes.ERR_INVALID_OPT_VALUE;function JLa(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function ULa(e,t,r,n){var a=JLa(t,n,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=n?r:"highWaterMark";throw new XLa(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}Fhi.exports={getHighWaterMark:ULa}});var Zhi=H((i1u,ZBr)=>{typeof Object.create=="function"?ZBr.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:ZBr.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var Wae=H((s1u,VBr)=>{try{if(LBr=wt("util"),typeof LBr.inherits!="function")throw"";VBr.exports=LBr.inherits}catch{VBr.exports=Zhi()}var LBr});var Vhi=H((o1u,Lhi)=>{Lhi.exports=wt("util").deprecate});var OBr=H((a1u,Yhi)=>{"use strict";Yhi.exports=Hv;function Whi(e){var t=this;this.next=null,this.entry=null,this.finish=function(){y9a(t,e)}}var sRe;Hv.WritableState=LXe;var KLa={deprecate:Vhi()},Ohi=DBr(),W0t=wt("buffer").Buffer,jLa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function zLa(e){return W0t.from(e)}function qLa(e){return W0t.isBuffer(e)||e instanceof jLa}var WBr=GBr(),$La=FBr(),e9a=$La.getHighWaterMark,Oae=Pae().codes,t9a=Oae.ERR_INVALID_ARG_TYPE,r9a=Oae.ERR_METHOD_NOT_IMPLEMENTED,n9a=Oae.ERR_MULTIPLE_CALLBACK,i9a=Oae.ERR_STREAM_CANNOT_PIPE,s9a=Oae.ERR_STREAM_DESTROYED,o9a=Oae.ERR_STREAM_NULL_VALUES,a9a=Oae.ERR_STREAM_WRITE_AFTER_END,c9a=Oae.ERR_UNKNOWN_ENCODING,oRe=WBr.errorOrDestroy;Wae()(Hv,Ohi);function l9a(){}function LXe(e,t,r){sRe=sRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof sRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=e9a(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){I9a(t,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Whi(this)}LXe.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(LXe.prototype,"buffer",{get:KLa.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var P0t;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(P0t=Function.prototype[Symbol.hasInstance],Object.defineProperty(Hv,Symbol.hasInstance,{value:function(t){return P0t.call(this,t)?!0:this!==Hv?!1:t&&t._writableState instanceof LXe}})):P0t=function(t){return t instanceof this};function Hv(e){sRe=sRe||Xhe();var t=this instanceof sRe;if(!t&&!P0t.call(Hv,this))return new Hv(e);this._writableState=new LXe(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),Ohi.call(this)}Hv.prototype.pipe=function(){oRe(this,new i9a)};function u9a(e,t){var r=new a9a;oRe(e,r),process.nextTick(t,r)}function g9a(e,t,r,n){var a;return r===null?a=new o9a:typeof r!="string"&&!t.objectMode&&(a=new t9a("chunk",["string","Buffer"],r)),a?(oRe(e,a),process.nextTick(n,a),!1):!0}Hv.prototype.write=function(e,t,r){var n=this._writableState,a=!1,o=!n.objectMode&&qLa(e);return o&&!W0t.isBuffer(e)&&(e=zLa(e)),typeof t=="function"&&(r=t,t=null),o?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=l9a),n.ending?u9a(this,r):(o||g9a(this,n,e,r))&&(n.pendingcb++,a=d9a(this,n,o,e,t,r)),a};Hv.prototype.cork=function(){this._writableState.corked++};Hv.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&Mhi(this,e))};Hv.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 c9a(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(Hv.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function A9a(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=W0t.from(t,r)),t}Object.defineProperty(Hv.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function d9a(e,t,r,n,a,o){if(!r){var l=A9a(t,n,a);n!==l&&(r=!0,a="buffer",n=l)}var A=t.objectMode?1:n.length;t.length+=A;var f=t.length{"use strict";var b9a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};Xhi.exports=j8;var Qhi=YBr(),HBr=OBr();Wae()(j8,Qhi);for(MBr=b9a(HBr.prototype),O0t=0;O0t{var H0t=wt("buffer"),z8=H0t.Buffer;function Jhi(e,t){for(var r in e)t[r]=e[r]}z8.from&&z8.alloc&&z8.allocUnsafe&&z8.allocUnsafeSlow?Uhi.exports=H0t:(Jhi(H0t,QBr),QBr.Buffer=Jhe);function Jhe(e,t,r){return z8(e,t,r)}Jhe.prototype=Object.create(z8.prototype);Jhi(z8,Jhe);Jhe.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return z8(e,t,r)};Jhe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=z8(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};Jhe.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return z8(e)};Jhe.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return H0t.SlowBuffer(e)}});var UBr=H(zhi=>{"use strict";var JBr=Khi().Buffer,jhi=JBr.isEncoding||function(e){switch(e=""+e,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 v9a(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function B9a(e){var t=v9a(e);if(typeof t!="string"&&(JBr.isEncoding===jhi||!jhi(e)))throw new Error("Unknown encoding: "+e);return t||e}zhi.StringDecoder=VXe;function VXe(e){this.encoding=B9a(e);var t;switch(this.encoding){case"utf16le":this.text=k9a,this.end=x9a,t=4;break;case"utf8":this.fillLast=R9a,t=4;break;case"base64":this.text=G9a,this.end=F9a,t=3;break;default:this.write=Z9a,this.end=L9a;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=JBr.allocUnsafe(t)}VXe.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function w9a(e,t,r){var n=t.length-1;if(n=0?(a>0&&(e.lastNeed=a-1),a):--n=0?(a>0&&(e.lastNeed=a-2),a):--n=0?(a>0&&(a===2?a=0:e.lastNeed=a-3),a):0))}function T9a(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function R9a(e){var t=this.lastTotal-this.lastNeed,r=T9a(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function N9a(e,t){var r=w9a(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function D9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function k9a(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function x9a(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function G9a(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function F9a(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function Z9a(e){return e.toString(this.encoding)}function L9a(e){return e&&e.length?this.write(e):""}});var Y0t=H((u1u,emi)=>{"use strict";var qhi=Pae().codes.ERR_STREAM_PREMATURE_CLOSE;function V9a(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),a=0;a{"use strict";var Q0t;function Mae(e,t,r){return t=O9a(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function O9a(e){var t=M9a(e,"string");return typeof t=="symbol"?t:String(t)}function M9a(e,t){if(typeof e!="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var H9a=Y0t(),Hae=Symbol("lastResolve"),Uhe=Symbol("lastReject"),PXe=Symbol("error"),X0t=Symbol("ended"),Khe=Symbol("lastPromise"),KBr=Symbol("handlePromise"),jhe=Symbol("stream");function Yae(e,t){return{value:e,done:t}}function Y9a(e){var t=e[Hae];if(t!==null){var r=e[jhe].read();r!==null&&(e[Khe]=null,e[Hae]=null,e[Uhe]=null,t(Yae(r,!1)))}}function Q9a(e){process.nextTick(Y9a,e)}function X9a(e,t){return function(r,n){e.then(function(){if(t[X0t]){r(Yae(void 0,!0));return}t[KBr](r,n)},n)}}var J9a=Object.getPrototypeOf(function(){}),U9a=Object.setPrototypeOf((Q0t={get stream(){return this[jhe]},next:function(){var t=this,r=this[PXe];if(r!==null)return Promise.reject(r);if(this[X0t])return Promise.resolve(Yae(void 0,!0));if(this[jhe].destroyed)return new Promise(function(l,A){process.nextTick(function(){t[PXe]?A(t[PXe]):l(Yae(void 0,!0))})});var n=this[Khe],a;if(n)a=new Promise(X9a(n,this));else{var o=this[jhe].read();if(o!==null)return Promise.resolve(Yae(o,!1));a=new Promise(this[KBr])}return this[Khe]=a,a}},Mae(Q0t,Symbol.asyncIterator,function(){return this}),Mae(Q0t,"return",function(){var t=this;return new Promise(function(r,n){t[jhe].destroy(null,function(a){if(a){n(a);return}r(Yae(void 0,!0))})})}),Q0t),J9a),K9a=function(t){var r,n=Object.create(U9a,(r={},Mae(r,jhe,{value:t,writable:!0}),Mae(r,Hae,{value:null,writable:!0}),Mae(r,Uhe,{value:null,writable:!0}),Mae(r,PXe,{value:null,writable:!0}),Mae(r,X0t,{value:t._readableState.endEmitted,writable:!0}),Mae(r,KBr,{value:function(o,l){var A=n[jhe].read();A?(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(Yae(A,!1))):(n[Hae]=o,n[Uhe]=l)},writable:!0}),r));return n[Khe]=null,H9a(t,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var o=n[Uhe];o!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,o(a)),n[PXe]=a;return}var l=n[Hae];l!==null&&(n[Khe]=null,n[Hae]=null,n[Uhe]=null,l(Yae(void 0,!0))),n[X0t]=!0}),t.on("readable",Q9a.bind(null,n)),n};tmi.exports=K9a});var omi=H((A1u,smi)=>{"use strict";function nmi(e,t,r,n,a,o,l){try{var A=e[o](l),f=A.value}catch(I){r(I);return}A.done?t(f):Promise.resolve(f).then(n,a)}function j9a(e){return function(){var t=this,r=arguments;return new Promise(function(n,a){var o=e.apply(t,r);function l(f){nmi(o,n,a,l,A,"next",f)}function A(f){nmi(o,n,a,l,A,"throw",f)}l(void 0)})}}function imi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function z9a(e){for(var t=1;t{"use strict";Imi.exports=y_;var aRe;y_.ReadableState=umi;var d1u=wt("events").EventEmitter,lmi=function(t,r){return t.listeners(r).length},OXe=DBr(),J0t=wt("buffer").Buffer,nVa=(typeof global<"u"?global:typeof window<"u"?window:typeof self<"u"?self:{}).Uint8Array||function(){};function iVa(e){return J0t.from(e)}function sVa(e){return J0t.isBuffer(e)||e instanceof nVa}var jBr=wt("util"),Sm;jBr&&jBr.debuglog?Sm=jBr.debuglog("stream"):Sm=function(){};var oVa=Rhi(),nwr=GBr(),aVa=FBr(),cVa=aVa.getHighWaterMark,U0t=Pae().codes,lVa=U0t.ERR_INVALID_ARG_TYPE,uVa=U0t.ERR_STREAM_PUSH_AFTER_EOF,gVa=U0t.ERR_METHOD_NOT_IMPLEMENTED,AVa=U0t.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,cRe,zBr,qBr;Wae()(y_,OXe);var WXe=nwr.errorOrDestroy,$Br=["error","close","destroy","pause","resume"];function dVa(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 umi(e,t,r){aRe=aRe||Xhe(),e=e||{},typeof r!="boolean"&&(r=t instanceof aRe),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=cVa(this,e,"readableHighWaterMark",r),this.buffer=new oVa,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.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(cRe||(cRe=UBr().StringDecoder),this.decoder=new cRe(e.encoding),this.encoding=e.encoding)}function y_(e){if(aRe=aRe||Xhe(),!(this instanceof y_))return new y_(e);var t=this instanceof aRe;this._readableState=new umi(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),OXe.call(this)}Object.defineProperty(y_.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});y_.prototype.destroy=nwr.destroy;y_.prototype._undestroy=nwr.undestroy;y_.prototype._destroy=function(e,t){t(e)};y_.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=J0t.from(e,t),t=""),n=!0),gmi(this,e,t,!1,n)};y_.prototype.unshift=function(e){return gmi(this,e,null,!0,!1)};function gmi(e,t,r,n,a){Sm("readableAddChunk",t);var o=e._readableState;if(t===null)o.reading=!1,IVa(e,o);else{var l;if(a||(l=pVa(o,t)),l)WXe(e,l);else if(o.objectMode||t&&t.length>0)if(typeof t!="string"&&!o.objectMode&&Object.getPrototypeOf(t)!==J0t.prototype&&(t=iVa(t)),n)o.endEmitted?WXe(e,new AVa):ewr(e,o,t,!0);else if(o.ended)WXe(e,new uVa);else{if(o.destroyed)return!1;o.reading=!1,o.decoder&&!r?(t=o.decoder.write(t),o.objectMode||t.length!==0?ewr(e,o,t,!1):rwr(e,o)):ewr(e,o,t,!1)}else n||(o.reading=!1,rwr(e,o))}return!o.ended&&(o.length=ami?e=ami:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function cmi(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=fVa(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}y_.prototype.read=function(e){Sm("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Sm("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?twr(this):K0t(this),null;if(e=cmi(e,t),e===0&&t.ended)return t.length===0&&twr(this),null;var n=t.needReadable;Sm("need readable",n),(t.length===0||t.length-e0?a=pmi(e,t):a=null,a===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&twr(this)),a!==null&&this.emit("data",a),a};function IVa(e,t){if(Sm("onEofChunk"),!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,t.sync?K0t(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,Ami(e)))}}function K0t(e){var t=e._readableState;Sm("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Sm("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(Ami,e))}function Ami(e){var t=e._readableState;Sm("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,iwr(e)}function rwr(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(hVa,e,t))}function hVa(e,t){for(;!t.reading&&!t.ended&&(t.length1&&fmi(n.pipes,e)!==-1)&&!I&&(Sm("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function E(Q){Sm("onerror",Q),F(),e.removeListener("error",E),lmi(e,"error")===0&&WXe(e,Q)}dVa(e,"error",E);function N(){e.removeListener("finish",B),F()}e.once("close",N);function B(){Sm("onfinish"),e.removeListener("close",N),F()}e.once("finish",B);function F(){Sm("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Sm("pipe resume"),r.resume()),e};function mVa(e){return function(){var r=e._readableState;Sm("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&lmi(e,"data")&&(r.flowing=!0,iwr(e))}}y_.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};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,r),this);if(!e){var n=t.pipes,a=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var o=0;o0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Sm("on readable",n.length,n.reading),n.length?K0t(this):n.reading||process.nextTick(CVa,this)),r};y_.prototype.addListener=y_.prototype.on;y_.prototype.removeListener=function(e,t){var r=OXe.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(dmi,this),r};y_.prototype.removeAllListeners=function(e){var t=OXe.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(dmi,this),t};function dmi(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function CVa(e){Sm("readable nexttick read 0"),e.read(0)}y_.prototype.resume=function(){var e=this._readableState;return e.flowing||(Sm("resume"),e.flowing=!e.readableListening,_Va(this,e)),e.paused=!1,this};function _Va(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(yVa,e,t))}function yVa(e,t){Sm("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),iwr(e),t.flowing&&!t.reading&&e.read(0)}y_.prototype.pause=function(){return Sm("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Sm("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iwr(e){var t=e._readableState;for(Sm("flow",t.flowing);t.flowing&&e.read()!==null;);}y_.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;e.on("end",function(){if(Sm("wrapped end"),r.decoder&&!r.ended){var l=r.decoder.end();l&&l.length&&t.push(l)}t.push(null)}),e.on("data",function(l){if(Sm("wrapped data"),r.decoder&&(l=r.decoder.write(l)),!(r.objectMode&&l==null)&&!(!r.objectMode&&(!l||!l.length))){var A=t.push(l);A||(n=!0,e.pause())}});for(var a in e)this[a]===void 0&&typeof e[a]=="function"&&(this[a]=function(A){return function(){return e[A].apply(e,arguments)}}(a));for(var o=0;o<$Br.length;o++)e.on($Br[o],this.emit.bind(this,$Br[o]));return this._read=function(l){Sm("wrapped _read",l),n&&(n=!1,e.resume())},this};typeof Symbol=="function"&&(y_.prototype[Symbol.asyncIterator]=function(){return zBr===void 0&&(zBr=rmi()),zBr(this)});Object.defineProperty(y_.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(y_.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(y_.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}});y_._fromList=pmi;Object.defineProperty(y_.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function pmi(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.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function twr(e){var t=e._readableState;Sm("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(bVa,t,e))}function bVa(e,t){if(Sm("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(y_.from=function(e,t){return qBr===void 0&&(qBr=omi()),qBr(y_,e,t)});function fmi(e,t){for(var r=0,n=e.length;r{"use strict";mmi.exports=iee;var j0t=Pae().codes,EVa=j0t.ERR_METHOD_NOT_IMPLEMENTED,SVa=j0t.ERR_MULTIPLE_CALLBACK,vVa=j0t.ERR_TRANSFORM_ALREADY_TRANSFORMING,BVa=j0t.ERR_TRANSFORM_WITH_LENGTH_0,z0t=Xhe();Wae()(iee,z0t);function wVa(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new SVa);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";_mi.exports=MXe;var Cmi=swr();Wae()(MXe,Cmi);function MXe(e){if(!(this instanceof MXe))return new MXe(e);Cmi.call(this,e)}MXe.prototype._transform=function(e,t,r){r(null,e)}});var Bmi=H((h1u,vmi)=>{"use strict";var owr;function RVa(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var Smi=Pae().codes,NVa=Smi.ERR_MISSING_ARGS,DVa=Smi.ERR_STREAM_DESTROYED;function bmi(e){if(e)throw e}function kVa(e){return e.setHeader&&typeof e.abort=="function"}function xVa(e,t,r,n){n=RVa(n);var a=!1;e.on("close",function(){a=!0}),owr===void 0&&(owr=Y0t()),owr(e,{readable:t,writable:r},function(l){if(l)return n(l);a=!0,n()});var o=!1;return function(l){if(!a&&!o){if(o=!0,kVa(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(l||new DVa("pipe"))}}}function Emi(e){e()}function GVa(e,t){return e.pipe(t)}function FVa(e){return!e.length||typeof e[e.length-1]!="function"?bmi:e.pop()}function ZVa(){for(var e=arguments.length,t=new Array(e),r=0;r0;return xVa(l,f,I,function(C){a||(a=C),C&&o.forEach(Emi),!f&&(o.forEach(Emi),n(a))})});return t.reduce(GVa)}vmi.exports=ZVa});var lRe=H((XM,YXe)=>{var HXe=wt("stream");process.env.READABLE_STREAM==="disable"&&HXe?(YXe.exports=HXe.Readable,Object.assign(YXe.exports,HXe),YXe.exports.Stream=HXe):(XM=YXe.exports=YBr(),XM.Stream=HXe||XM,XM.Readable=XM,XM.Writable=OBr(),XM.Duplex=Xhe(),XM.Transform=swr(),XM.PassThrough=ymi(),XM.finished=Y0t(),XM.pipeline=Bmi())});var Rmi=H((m1u,Tmi)=>{"use strict";var{Buffer:UX}=wt("buffer"),wmi=Symbol.for("BufferList");function LE(e){if(!(this instanceof LE))return new LE(e);LE._init.call(this,e)}LE._init=function(t){Object.defineProperty(this,wmi,{value:!0}),this._bufs=[],this.length=0,t&&this.append(t)};LE.prototype._new=function(t){return new LE(t)};LE.prototype._offset=function(t){if(t===0)return[0,0];let r=0;for(let n=0;nthis.length||t<0)return;let r=this._offset(t);return this._bufs[r[0]][r[1]]};LE.prototype.slice=function(t,r){return typeof t=="number"&&t<0&&(t+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,t,r)};LE.prototype.copy=function(t,r,n,a){if((typeof n!="number"||n<0)&&(n=0),(typeof a!="number"||a>this.length)&&(a=this.length),n>=this.length||a<=0)return t||UX.alloc(0);let o=!!t,l=this._offset(n),A=a-n,f=A,I=o&&r||0,C=l[1];if(n===0&&a===this.length){if(!o)return this._bufs.length===1?this._bufs[0]:UX.concat(this._bufs,this.length);for(let b=0;bE)this._bufs[b].copy(t,I,C),I+=E;else{this._bufs[b].copy(t,I,C,C+f),I+=E;break}f-=E,C&&(C=0)}return t.length>I?t.slice(0,I):t};LE.prototype.shallowSlice=function(t,r){if(t=t||0,r=typeof r!="number"?this.length:r,t<0&&(t+=this.length),r<0&&(r+=this.length),t===r)return this._new();let n=this._offset(t),a=this._offset(r),o=this._bufs.slice(n[0],a[0]+1);return a[1]===0?o.pop():o[o.length-1]=o[o.length-1].slice(0,a[1]),n[1]!==0&&(o[0]=o[0].slice(n[1])),this._new(o)};LE.prototype.toString=function(t,r,n){return this.slice(r,n).toString(t)};LE.prototype.consume=function(t){if(t=Math.trunc(t),Number.isNaN(t)||t<=0)return this;for(;this._bufs.length;)if(t>=this._bufs[0].length)t-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(t),this.length-=t;break}return this};LE.prototype.duplicate=function(){let t=this._new();for(let r=0;rthis.length?this.length:t;let n=this._offset(t),a=n[0],o=n[1];for(;a=e.length){let f=l.indexOf(e,o);if(f!==-1)return this._reverseOffset([a,f]);o=l.length-e.length+1}else{let f=this._reverseOffset([a,o]);if(this._match(f,e))return f;o++}o=0}return-1};LE.prototype._match=function(e,t){if(this.length-e{"use strict";var awr=lRe().Duplex,LVa=Wae(),QXe=Rmi();function TG(e){if(!(this instanceof TG))return new TG(e);if(typeof e=="function"){this._callback=e;let t=function(n){this._callback&&(this._callback(n),this._callback=null)}.bind(this);this.on("pipe",function(n){n.on("error",t)}),this.on("unpipe",function(n){n.removeListener("error",t)}),e=null}QXe._init.call(this,e),awr.call(this)}LVa(TG,awr);Object.assign(TG.prototype,QXe.prototype);TG.prototype._new=function(t){return new TG(t)};TG.prototype._write=function(t,r,n){this._appendBuffer(t),typeof n=="function"&&n()};TG.prototype._read=function(t){if(!this.length)return this.push(null);t=Math.min(t,this.length),this.push(this.slice(0,t)),this.consume(t)};TG.prototype.end=function(t){awr.prototype.end.call(this,t),this._callback&&(this._callback(null,this.slice()),this._callback=null)};TG.prototype._destroy=function(t,r){this._bufs.length=0,this.length=0,r(t)};TG.prototype._isBufferList=function(t){return t instanceof TG||t instanceof QXe||TG.isBufferList(t)};TG.isBufferList=QXe.isBufferList;q0t.exports=TG;q0t.exports.BufferListStream=TG;q0t.exports.BufferList=QXe});var gwr=H(gRe=>{var VVa=Buffer.alloc,PVa="0000000000000000000",WVa="7777777777777777777",Nmi=48,Dmi=Buffer.from("ustar\0","binary"),OVa=Buffer.from("00","binary"),MVa=Buffer.from("ustar ","binary"),HVa=Buffer.from(" \0","binary"),YVa=parseInt("7777",8),XXe=257,uwr=263,QVa=function(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)},XVa=function(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},JVa=function(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},kmi=function(e,t,r,n){for(;rt?WVa.slice(0,t)+" ":PVa.slice(0,t-e.length)+e+" "};function UVa(e){var t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;for(var r=[],n=e.length-1;n>0;n--){var a=e[n];t?r.push(a):r.push(255-a)}var o=0,l=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e};gRe.decodeLongPath=function(e,t){return uRe(e,0,e.length,t)};gRe.encodePax=function(e){var t="";e.name&&(t+=lwr(" path="+e.name+` `)),e.linkname&&(t+=lwr(" linkpath="+e.linkname+` `));var r=e.pax;if(r)for(var n in r)t+=lwr(" "+n+"="+r[n]+` -`);return Buffer.from(t)};gRe.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;n+=n?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(n)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(r),t.write(Qae(e.mode&YVa,6),100),t.write(Qae(e.uid,6),108),t.write(Qae(e.gid,6),116),t.write(Qae(e.size,11),124),t.write(Qae(e.mtime.getTime()/1e3|0,11),136),t[156]=Nmi+JVa(e.type),e.linkname&&t.write(e.linkname,157),Dmi.copy(t,XXe),OVa.copy(t,uwr),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(Qae(e.devmajor||0,6),329),t.write(Qae(e.devminor||0,6),337),n&&t.write(n,345),t.write(Qae(xmi(t),6),148),t)};gRe.decode=function(e,t,r){var n=e[156]===0?0:e[156]-Nmi,a=uRe(e,0,100,t),o=Xae(e,100,8),l=Xae(e,108,8),A=Xae(e,116,8),f=Xae(e,124,12),I=Xae(e,136,12),C=XVa(n),b=e[157]===0?null:uRe(e,157,100,t),E=uRe(e,265,32),N=uRe(e,297,32),B=Xae(e,329,8),F=Xae(e,337,8),Q=xmi(e);if(Q===8*32)return null;if(Q!==Xae(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Dmi.compare(e,XXe,XXe+6)===0)e[345]&&(a=uRe(e,345,155,t)+"/"+a);else if(!(MVa.compare(e,XXe,XXe+6)===0&&HVa.compare(e,uwr,uwr+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return n===0&&a&&a[a.length-1]==="/"&&(n=5),{name:a,mode:o,uid:l,gid:A,size:f,mtime:new Date(1e3*I),type:C,linkname:b,uname:E,gname:N,devmajor:B,devminor:F}}});var Wmi=H((_1u,Pmi)=>{var Fmi=wt("util"),KVa=cwr(),JXe=gwr(),Zmi=lRe().Writable,Lmi=lRe().PassThrough,Vmi=function(){},Gmi=function(e){return e&=511,e&&512-e},jVa=function(e,t){var r=new $0t(e,t);return r.end(),r},zVa=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},$0t=function(e,t){this._parent=e,this.offset=t,Lmi.call(this,{autoDestroy:!1})};Fmi.inherits($0t,Lmi);$0t.prototype.destroy=function(e){this._parent.destroy(e)};var see=function(e){if(!(this instanceof see))return new see(e);Zmi.call(this,e),e=e||{},this._offset=0,this._buffer=KVa(),this._missing=0,this._partial=!1,this._onparse=Vmi,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},a=function(E){if(t._locked=!1,E)return t.destroy(E);t._stream||n()},o=function(){t._stream=null;var E=Gmi(t._header.size);E?t._parse(E,l):t._parse(512,b),t._locked||n()},l=function(){t._buffer.consume(Gmi(t._header.size)),t._parse(512,b),n()},A=function(){var E=t._header.size;t._paxGlobal=JXe.decodePax(r.slice(0,E)),r.consume(E),o()},f=function(){var E=t._header.size;t._pax=JXe.decodePax(r.slice(0,E)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(E),o()},I=function(){var E=t._header.size;this._gnuLongPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},C=function(){var E=t._header.size;this._gnuLongLinkPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},b=function(){var E=t._offset,N;try{N=t._header=JXe.decode(r.slice(0,512),e.filenameEncoding,e.allowUnknownFormat)}catch(B){t.emit("error",B)}if(r.consume(512),!N){t._parse(512,b),n();return}if(N.type==="gnu-long-path"){t._parse(N.size,I),n();return}if(N.type==="gnu-long-link-path"){t._parse(N.size,C),n();return}if(N.type==="pax-global-header"){t._parse(N.size,A),n();return}if(N.type==="pax-header"){t._parse(N.size,f),n();return}if(t._gnuLongPath&&(N.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(N.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=N=zVa(N,t._pax),t._pax=null),t._locked=!0,!N.size||N.type==="directory"){t._parse(512,b),t.emit("entry",N,jVa(t,E),a);return}t._stream=new $0t(t,E),t.emit("entry",N,t._stream,a),t._parse(N.size,o),n()};this._onheader=b,this._parse(512,b)};Fmi.inherits(see,Zmi);see.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};see.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};see.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=Vmi,this._overflow?this._write(this._overflow,void 0,e):e()}};see.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(l=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=l,this._onparse()}};see.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()};Pmi.exports=see});var Mmi=H((y1u,Omi)=>{Omi.exports=wt("fs").constants||wt("constants")});var Jmi=H((b1u,Xmi)=>{var ARe=Mmi(),Hmi=Uur(),tyt=Wae(),qVa=Buffer.alloc,Ymi=lRe().Readable,dRe=lRe().Writable,$Va=wt("string_decoder").StringDecoder,eyt=gwr(),ePa=parseInt("755",8),tPa=parseInt("644",8),Qmi=qVa(1024),dwr=function(){},Awr=function(e,t){t&=511,t&&e.push(Qmi.slice(0,512-t))};function rPa(e){switch(e&ARe.S_IFMT){case ARe.S_IFBLK:return"block-device";case ARe.S_IFCHR:return"character-device";case ARe.S_IFDIR:return"directory";case ARe.S_IFIFO:return"fifo";case ARe.S_IFLNK:return"symlink"}return"file"}var ryt=function(e){dRe.call(this),this.written=0,this._to=e,this._destroyed=!1};tyt(ryt,dRe);ryt.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r};ryt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var nyt=function(){dRe.call(this),this.linkname="",this._decoder=new $Va("utf-8"),this._destroyed=!1};tyt(nyt,dRe);nyt.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()};nyt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var UXe=function(){dRe.call(this),this._destroyed=!1};tyt(UXe,dRe);UXe.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))};UXe.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var q8=function(e){if(!(this instanceof q8))return new q8(e);Ymi.call(this,e),this._drain=dwr,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};tyt(q8,Ymi);q8.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof t=="function"&&(r=t,t=null),r||(r=dwr);var n=this;if((!e.size||e.type==="symlink")&&(e.size=0),e.type||(e.type=rPa(e.mode)),e.mode||(e.mode=e.type==="directory"?ePa:tPa),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),typeof t=="string"&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var a=this.push(t);return Awr(n,e.size),a?process.nextTick(r):this._drain=r,new UXe}if(e.type==="symlink"&&!e.linkname){var o=new nyt;return Hmi(o,function(A){if(A)return n.destroy(),r(A);e.linkname=o.linkname,n._encode(e),r()}),o}if(this._encode(e),e.type!=="file"&&e.type!=="contiguous-file")return process.nextTick(r),new UXe;var l=new ryt(this);return this._stream=l,Hmi(l,function(A){if(n._stream=null,A)return n.destroy(),r(A);if(l.written!==e.size)return n.destroy(),r(new Error("size mismatch"));Awr(n,e.size),n._finalizing&&n.finalize(),r()}),l}};q8.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Qmi),this.push(null))};q8.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};q8.prototype._encode=function(e){if(!e.pax){var t=eyt.encode(e);if(t){this.push(t);return}}this._encodePax(e)};q8.prototype._encodePax=function(e){var t=eyt.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(eyt.encode(r)),this.push(t),Awr(this,t.length),r.size=e.size,r.type=e.type,this.push(eyt.encode(r))};q8.prototype._read=function(e){var t=this._drain;this._drain=dwr,t()};Xmi.exports=q8});var Umi=H(pwr=>{pwr.extract=Wmi();pwr.pack=Jmi()});var fwr=H(zhe=>{"use strict";Object.defineProperty(zhe,"__esModule",{value:!0});zhe.hasPackScripts=aPa;zhe.prepareForPack=cPa;zhe.genPackStream=lPa;zhe.genPackageManifest=eCi;zhe.genPackList=tCi;var $mi=(Pa(),vi(Va)),KXe=Bn(),Mh=no(),Kmi=$mi.__importDefault(Ek()),nPa=$mi.__importDefault(Umi()),iPa=wt("zlib"),sPa=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],oPa=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function aPa(e){return!!(KXe.scriptUtils.hasWorkspaceScript(e,"prepack")||KXe.scriptUtils.hasWorkspaceScript(e,"postpack"))}async function cPa(e,{report:t},r){await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"prepack",{report:t});try{let n=Mh.ppath.join(e.cwd,KXe.Manifest.fileName);await Mh.xfs.existsPromise(n)&&await e.manifest.loadFile(n,{baseFs:Mh.xfs}),await r()}finally{await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"postpack",{report:t})}}async function lPa(e,t){typeof t>"u"&&(t=await tCi(e));let r=new Set;for(let o of e.manifest.publishConfig?.executableFiles??new Set)r.add(Mh.ppath.normalize(o));for(let o of e.manifest.bin.values())r.add(Mh.ppath.normalize(o));let n=nPa.default.pack();process.nextTick(async()=>{for(let o of t){let l=Mh.ppath.normalize(o),A=Mh.ppath.resolve(e.cwd,l),f=Mh.ppath.join("package",l),I=await Mh.xfs.lstatPromise(A),C={name:f,mtime:new Date(Mh.constants.SAFE_TIME*1e3)},b=r.has(l)?493:420,E,N,B=new Promise((Q,X)=>{E=Q,N=X}),F=Q=>{Q?N(Q):E()};if(I.isFile()){let Q;l==="package.json"?Q=Buffer.from(JSON.stringify(await eCi(e),null,2)):Q=await Mh.xfs.readFilePromise(A),n.entry({...C,mode:b,type:"file"},Q,F)}else I.isSymbolicLink()?n.entry({...C,mode:b,type:"symlink",linkname:await Mh.xfs.readlinkPromise(A)},F):F(new Error(`Unsupported file type ${I.mode} for ${Mh.npath.fromPortablePath(l)}`));await B}n.finalize()});let a=(0,iPa.createGzip)();return n.pipe(a),a}async function eCi(e){let t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,e,t),t}async function tCi(e){let t=e.project,r=t.configuration,n={accept:[],reject:[]};for(let b of oPa)n.reject.push(b);for(let b of sPa)n.accept.push(b);n.reject.push(r.get("rcFilename"));let a=b=>{if(b===null||!b.startsWith(`${e.cwd}/`))return;let E=Mh.ppath.relative(e.cwd,b),N=Mh.ppath.resolve(Mh.PortablePath.root,E);n.reject.push(N)};a(Mh.ppath.resolve(t.cwd,Mh.Filename.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,t,b=>{a(b)});for(let b of t.workspaces){let E=Mh.ppath.relative(e.cwd,b.cwd);E!==""&&!E.match(/^(\.\.)?\//)&&n.reject.push(`/${E}`)}let o={accept:[],reject:[]},l=e.manifest.publishConfig?.main??e.manifest.main,A=e.manifest.publishConfig?.module??e.manifest.module,f=e.manifest.publishConfig?.browser??e.manifest.browser,I=e.manifest.publishConfig?.bin??e.manifest.bin;l!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,l)),A!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,A)),typeof f=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,f));for(let b of I.values())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b));if(f instanceof Map)for(let[b,E]of f.entries())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b)),typeof E=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,E));let C=e.manifest.files!==null;if(C){o.reject.push("/*");for(let b of e.manifest.files)rCi(o.accept,b,{cwd:Mh.PortablePath.root})}return await uPa(e.cwd,{hasExplicitFileList:C,globalList:n,ignoreList:o})}async function uPa(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){let a=[],o=new Mh.JailFS(e),l=[[Mh.PortablePath.root,[n]]];for(;l.length>0;){let[A,f]=l.pop(),I=await o.lstatPromise(A);if(!zmi(A,{globalList:r,ignoreLists:I.isDirectory()?null:f}))if(I.isDirectory()){let C=await o.readdirPromise(A),b=!1,E=!1;if(!t||A!==Mh.PortablePath.root)for(let F of C)b=b||F===".gitignore",E=E||F===".npmignore";let N=E?await jmi(o,A,".npmignore"):b?await jmi(o,A,".gitignore"):null,B=N!==null?[N].concat(f):f;zmi(A,{globalList:r,ignoreLists:f})&&(B=[...f,{accept:[],reject:["**/*"]}]);for(let F of C)l.push([Mh.ppath.resolve(A,F),B])}else(I.isFile()||I.isSymbolicLink())&&a.push(Mh.ppath.relative(Mh.PortablePath.root,A))}return a.sort()}async function jmi(e,t,r){let n={accept:[],reject:[]},a=await e.readFilePromise(Mh.ppath.join(t,r),"utf8");for(let o of a.split(/\n/g))rCi(n.reject,o,{cwd:t});return n}function gPa(e,{cwd:t}){let r=e[0]==="!";return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=Mh.ppath.resolve(t,e)),r&&(e=`!${e}`),e}function rCi(e,t,{cwd:r}){let n=t.trim();n===""||n[0]==="#"||e.push(gPa(n,{cwd:r}))}var uO;(function(e){e[e.None=0]="None",e[e.Match=1]="Match",e[e.NegatedMatch=2]="NegatedMatch"})(uO||(uO={}));function zmi(e,{globalList:t,ignoreLists:r}){let n=iyt(e,t.accept);if(n!==uO.None)return n===uO.NegatedMatch;let a=iyt(e,t.reject);if(a!==uO.None)return a===uO.Match;if(r!==null)for(let o of r){let l=iyt(e,o.accept);if(l!==uO.None)return l===uO.NegatedMatch;let A=iyt(e,o.reject);if(A!==uO.None)return A===uO.Match}return!1}function iyt(e,t){let r=t,n=[];for(let a=0;a{"use strict";Object.defineProperty(Iwr,"__esModule",{value:!0});var APa=(Pa(),vi(Va)),nCi=el(),oee=Bn(),$8=no(),pRe=($c(),vi(rg)),syt=APa.__importStar(fwr()),jXe=class extends nCi.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=pRe.Option.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"}),this.dryRun=pRe.Option.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"}),this.json=pRe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.out=pRe.Option.String("-o,--out",{description:"Create the archive at the specified path"}),this.filename=pRe.Option.String("--filename",{hidden:!0})}async execute(){let t=await oee.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oee.Project.find(t,this.context.cwd);if(!n)throw new nCi.WorkspaceRequiredError(r.cwd,this.context.cwd);await syt.hasPackScripts(n)&&(this.installIfNeeded?await r.install({cache:await oee.Cache.find(t),report:new oee.ThrowReport}):await r.restoreInstallState());let a=this.out??this.filename,o=typeof a<"u"?$8.ppath.resolve(this.context.cwd,dPa(a,{workspace:n})):$8.ppath.resolve(n.cwd,"package.tgz");return(await oee.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async A=>{await syt.prepareForPack(n,{report:A},async()=>{A.reportJson({base:$8.npath.fromPortablePath(n.cwd)});let f=await syt.genPackList(n);for(let I of f)A.reportInfo(null,$8.npath.fromPortablePath(I)),A.reportJson({location:$8.npath.fromPortablePath(I)});if(!this.dryRun){let I=await syt.genPackStream(n,f);await $8.xfs.mkdirPromise($8.ppath.dirname(o),{recursive:!0});let C=$8.xfs.createWriteStream(o);I.pipe(C),await new Promise(b=>{C.on("finish",b)})}}),this.dryRun||(A.reportInfo(oee.MessageName.UNNAMED,`Package archive generated in ${oee.formatUtils.pretty(t,o,oee.formatUtils.Type.PATH)}`),A.reportJson({output:$8.npath.fromPortablePath(o)}))})).exitCode()}};jXe.paths=[["pack"]];jXe.usage=pRe.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});Iwr.default=jXe;function dPa(e,{workspace:t}){let r=e.replace("%s",pPa(t)).replace("%v",fPa(t));return $8.npath.toPortablePath(r)}function pPa(e){return e.manifest.name!==null?oee.structUtils.slugifyIdent(e.manifest.name):"package"}function fPa(e){return e.manifest.version!==null?e.manifest.version:"unknown"}});var $he=H(qhe=>{"use strict";Object.defineProperty(qhe,"__esModule",{value:!0});qhe.packUtils=qhe.PackCommand=void 0;var oCi=(Pa(),vi(Va)),zXe=Bn(),sCi=Bn(),aCi=oCi.__importDefault(iCi());qhe.PackCommand=aCi.default;var IPa=oCi.__importStar(fwr());qhe.packUtils=IPa;var hPa=["dependencies","devDependencies","peerDependencies"],mPa="workspace:",CPa=(e,t)=>{t.publishConfig&&(t.publishConfig.type&&(t.type=t.publishConfig.type),t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.exports&&(t.exports=t.publishConfig.exports),t.publishConfig.imports&&(t.imports=t.publishConfig.imports),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));let r=e.project;for(let n of hPa)for(let a of e.manifest.getForScope(n).values()){let o=r.tryWorkspaceByDescriptor(a),l=zXe.structUtils.parseRange(a.range);if(l.protocol===mPa)if(o===null){if(r.tryWorkspaceByIdent(a)===null)throw new sCi.ReportError(sCi.MessageName.WORKSPACE_NOT_FOUND,`${zXe.structUtils.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;zXe.structUtils.areDescriptorsEqual(a,o.anchoredDescriptor)||l.selector==="*"?A=o.manifest.version??"0.0.0":l.selector==="~"||l.selector==="^"?A=`${l.selector}${o.manifest.version??"0.0.0"}`:A=l.selector;let f=n==="dependencies"?zXe.structUtils.makeDescriptor(a,"unknown"):null,I=f!==null&&e.manifest.ensureDependencyMeta(f).optional?"optionalDependencies":n;t[I][zXe.structUtils.stringifyIdent(a)]=A}}},_Pa={hooks:{beforeWorkspacePacking:CPa},commands:[aCi.default]};qhe.default=_Pa});var fCi=H((T1u,pCi)=>{pCi.exports=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e)});var hCi=H((R1u,ICi)=>{ICi.exports=typeof process<"u"&&typeof process.nextTick=="function"?process.nextTick.bind(process):fCi()});var CCi=H((D1u,mCi)=>{mCi.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Cwr=H((x1u,yCi)=>{var _Ci=CCi();yCi.exports=class{constructor(t){this.hwm=t||16,this.head=new _Ci(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(t){if(this.length++,!this.head.push(t)){let r=this.head;this.head=r.next=new _Ci(2*this.head.buffer.length),this.head.push(t)}}shift(){this.length!==0&&this.length--;let t=this.tail.shift();if(t===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return t}peek(){let t=this.tail.peek();return t===void 0&&this.tail.next?this.tail.next.peek():t}isEmpty(){return this.length===0}}});var ECi=H((F1u,bCi)=>{bCi.exports=class{constructor(t){this.encoding=t}get remaining(){return 0}decode(t){return t.toString(this.encoding)}flush(){return""}}});var vCi=H((L1u,SCi)=>{SCi.exports=class{constructor(){this.codePoint=0,this.bytesSeen=0,this.bytesNeeded=0,this.lowerBoundary=128,this.upperBoundary=191}get remaining(){return this.bytesSeen}decode(t){if(this.bytesNeeded===0){let n=!0;for(let a=Math.max(0,t.byteLength-4),o=t.byteLength;a=194&&o<=223?(this.bytesNeeded=2,this.codePoint=o&31):o>=224&&o<=239?(o===224?this.lowerBoundary=160:o===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.codePoint=o&15):o>=240&&o<=244?(o===240&&(this.lowerBoundary=144),o===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.codePoint=o&7):r+="\uFFFD");continue}if(othis.upperBoundary){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,r+="\uFFFD";continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|o&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(r+=String.fromCodePoint(this.codePoint),this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0)}return r}flush(){let t=this.bytesNeeded>0?"\uFFFD":"";return this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,t}}});var wCi=H((P1u,BCi)=>{var yPa=ECi(),bPa=vCi();BCi.exports=class{constructor(t="utf8"){switch(this.encoding=EPa(t),this.encoding){case"utf8":this.decoder=new bPa;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new yPa(this.encoding)}}get remaining(){return this.decoder.remaining}push(t){return typeof t=="string"?t:this.decoder.decode(t)}write(t){return this.push(t)}end(t){let r="";return t&&(r=this.push(t)),r+=this.decoder.flush(),r}};function EPa(e){switch(e=e.toLowerCase(),e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:throw new Error("Unknown encoding: "+e)}}});var Fwr=H((W1u,qCi)=>{var{EventEmitter:SPa}=wt("events"),Ayt=new Error("Stream was destroyed"),_wr=new Error("Premature close"),xCi=hCi(),GCi=Cwr(),vPa=wCi(),kS=(1<<29)-1,ime=1,wwr=2,eme=4,qXe=8,FCi=kS^ime,BPa=kS^wwr,i4e=16,$Xe=32,CRe=64,Jae=128,s4e=256,Twr=512,tme=1024,ywr=2048,Rwr=4096,Nwr=8192,KX=16384,fRe=32768,dyt=65536,rme=131072,ZCi=s4e|Twr,wPa=i4e|dyt,TPa=CRe|i4e,RPa=Rwr|Jae,Dwr=s4e|rme,NPa=kS^i4e,DPa=kS^CRe,kPa=kS^(CRe|dyt),TCi=kS^dyt,xPa=kS^s4e,GPa=kS^(Jae|Nwr),FPa=kS^tme,RCi=kS^ZCi,LCi=kS^fRe,ZPa=kS^$Xe,VCi=kS^rme,LPa=kS^Dwr,Uae=1<<18,hRe=2<<18,o4e=4<<18,nme=8<<18,a4e=16<<18,sme=32<<18,bwr=64<<18,IRe=128<<18,kwr=256<<18,mRe=512<<18,pyt=1024<<18,PCi=kS^(Uae|kwr),WCi=kS^o4e,VPa=kS^mRe,PPa=kS^a4e,WPa=kS^nme,OCi=kS^IRe,OPa=kS^hRe,MCi=kS^pyt,e4e=i4e|Uae,HCi=kS^e4e,xwr=KX|sme,aee=eme|qXe|wwr,gO=aee|ime,YCi=aee|xwr,MPa=WCi&DPa,Gwr=IRe|fRe,HPa=Gwr&HCi,QCi=gO|HPa,YPa=gO|tme|KX,NCi=gO|KX|Jae,QPa=gO|tme|Jae,XPa=gO|Rwr|Jae|Nwr,JPa=gO|i4e|tme|KX|dyt|rme,UPa=aee|tme|KX,KPa=$Xe|gO|fRe|CRe,jPa=gO|mRe|sme,zPa=nme|a4e,XCi=nme|Uae,qPa=nme|a4e|gO|Uae,DCi=gO|Uae|nme|pyt,$Pa=o4e|Uae,eWa=Uae|kwr,tWa=gO|mRe|XCi|sme,rWa=a4e|aee|mRe|sme,nWa=hRe|gO|IRe|o4e,ayt=Symbol.asyncIterator||Symbol("asyncIterator"),cyt=class{constructor(t,{highWaterMark:r=16384,map:n=null,mapWritable:a,byteLength:o,byteLengthWritable:l}={}){this.stream=t,this.queue=new GCi,this.highWaterMark=r,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=l||o||zCi,this.map=a||n,this.afterWrite=oWa.bind(this),this.afterUpdateNextTick=lWa.bind(this)}get ended(){return(this.stream._duplexState&sme)!==0}push(t){return this.map!==null&&(t=this.map(t)),this.buffered+=this.byteLength(t),this.queue.push(t),this.buffered0,this.error=null,this.pipeline=null,this.byteLength=l||o||zCi,this.map=a||n,this.pipeTo=null,this.afterRead=aWa.bind(this),this.afterUpdateNextTick=cWa.bind(this)}get ended(){return(this.stream._duplexState&KX)!==0}pipe(t,r){if(this.pipeTo!==null)throw new Error("Can only pipe to one destination");if(typeof r!="function"&&(r=null),this.stream._duplexState|=Twr,this.pipeTo=t,this.pipeline=new vwr(this.stream,t,r),r&&this.stream.on("error",kCi),n4e(t))t._writableState.pipeline=this.pipeline,r&&t.on("error",kCi),t.on("finish",this.pipeline.finished.bind(this.pipeline));else{let n=this.pipeline.done.bind(this.pipeline,t),a=this.pipeline.done.bind(this.pipeline,t,null);t.on("error",n),t.on("close",a),t.on("finish",this.pipeline.finished.bind(this.pipeline))}t.on("drain",iWa.bind(this)),this.stream.emit("piping",t),t.emit("pipe",this.stream)}push(t){let r=this.stream;return t===null?(this.highWaterMark=0,r._duplexState=(r._duplexState|tme)&kPa,!1):this.map!==null&&(t=this.map(t),t===null)?(r._duplexState&=TCi,this.buffered0;)r.push(this.shift());for(let n=0;n0;)n.drains.shift().resolve(!1);n.pipeline!==null&&n.pipeline.done(t,e)}}function oWa(e){let t=this.stream;e&&t.destroy(e),t._duplexState&=PCi,this.drains!==null&&uWa(this.drains),(t._duplexState&qPa)===a4e&&(t._duplexState&=PPa,(t._duplexState&bwr)===bwr&&t.emit("drain")),this.updateCallback()}function aWa(e){e&&this.stream.destroy(e),this.stream._duplexState&=NPa,this.readAhead===!1&&!(this.stream._duplexState&s4e)&&(this.stream._duplexState&=VCi),this.updateCallback()}function cWa(){this.stream._duplexState&$Xe||(this.stream._duplexState&=LCi,this.update())}function lWa(){this.stream._duplexState&hRe||(this.stream._duplexState&=OCi,this.update())}function uWa(e){for(let t=0;t0)?null:n(l)}}_read(t){t(null)}pipe(t,r){return this._readableState.updateNextTick(),this._readableState.pipe(t,r),t}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(t){return this._readableState.updateNextTick(),this._readableState.push(t)}unshift(t){return this._readableState.updateNextTick(),this._readableState.unshift(t)}resume(){return this._duplexState|=Dwr,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?LPa:xPa,this}static _fromAsyncIterator(t,r){let n,a=new e({...r,read(l){t.next().then(o).then(l.bind(null,null)).catch(l)},predestroy(){n=t.return()},destroy(l){if(!n)return l(null);n.then(l.bind(null,null)).catch(l)}});return a;function o(l){l.done?a.push(null):a.push(l.value)}}static from(t,r){if(CWa(t))return t;if(t[ayt])return this._fromAsyncIterator(t[ayt](),r);Array.isArray(t)||(t=t===void 0?[]:[t]);let n=0;return new e({...r,read(a){this.push(n===t.length?null:t[n++]),a(null)}})}static isBackpressured(t){return(t._duplexState&UPa)!==0||t._readableState.buffered>=t._readableState.highWaterMark}static isPaused(t){return(t._duplexState&s4e)===0}[ayt](){let t=this,r=null,n=null,a=null;return this.on("error",I=>{r=I}),this.on("readable",o),this.on("close",l),{[ayt](){return this},next(){return new Promise(function(I,C){n=I,a=C;let b=t.read();b!==null?A(b):t._duplexState&qXe&&A(null)})},return(){return f(null)},throw(I){return f(I)}};function o(){n!==null&&A(t.read())}function l(){n!==null&&A(null)}function A(I){a!==null&&(r?a(r):I===null&&!(t._duplexState&KX)?a(Ayt):n({value:I,done:I===null}),a=n=null)}function f(I){return t.destroy(I),new Promise((C,b)=>{if(t._duplexState&qXe)return C({value:void 0,done:!0});t.once("close",function(){I?b(I):C({value:void 0,done:!0})})})}}},uyt=class extends t4e{constructor(t){super(t),this._duplexState|=ime|KX,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final),t.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}static isBackpressured(t){return(t._duplexState&rWa)!==0}static drained(t){if(t.destroyed)return Promise.resolve(!1);let r=t._writableState,a=(bWa(t)?Math.min(1,r.queue.length):r.queue.length)+(t._duplexState&kwr?1:0);return a===0?Promise.resolve(!0):(r.drains===null&&(r.drains=[]),new Promise(o=>{r.drains.push({writes:a,resolve:o})}))}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},r4e=class extends lyt{constructor(t){super(t),this._duplexState=ime|this._duplexState&rme,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final))}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},gyt=class extends r4e{constructor(t){super(t),this._transformState=new Swr(this),t&&(t.transform&&(this._transform=t.transform),t.flush&&(this._flush=t.flush))}_write(t,r){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=t:this._transform(t,this._transformState.afterTransform)}_read(t){if(this._transformState.data!==null){let r=this._transformState.data;this._transformState.data=null,t(null),this._transform(r,this._transformState.afterTransform)}else t(null)}destroy(t){super.destroy(t),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(t,r){r(null,t)}_flush(t){t(null)}_final(t){this._transformState.afterFinal=t,this._flush(dWa.bind(this))}},Bwr=class extends gyt{};function dWa(e,t){let r=this._transformState.afterFinal;if(e)return r(e);t!=null&&this.push(t),this.push(null),r(null)}function pWa(...e){return new Promise((t,r)=>KCi(...e,n=>{if(n)return r(n);t()}))}function KCi(e,...t){let r=Array.isArray(e)?[...e,...t]:[e,...t],n=r.length&&typeof r[r.length-1]=="function"?r.pop():null;if(r.length<2)throw new Error("Pipeline requires at least 2 streams");let a=r[0],o=null,l=null;for(let I=1;I1,f),a.pipe(o)),a=o;if(n){let I=!1,C=n4e(o)||!!(o._writableState&&o._writableState.autoDestroy);o.on("error",b=>{l===null&&(l=b)}),o.on("finish",()=>{I=!0,C||n(l)}),C&&o.on("close",()=>n(l||(I?null:_wr)))}return o;function A(I,C,b,E){I.on("error",E),I.on("close",N);function N(){if(C&&I._readableState&&!I._readableState.ended||b&&I._writableState&&!I._writableState.ended)return E(_wr)}}function f(I){if(!(!I||l)){l=I;for(let C of r)C.destroy(I)}}}function fWa(e){return e}function jCi(e){return!!e._readableState||!!e._writableState}function n4e(e){return typeof e._duplexState=="number"&&jCi(e)}function IWa(e){return!!e._readableState&&e._readableState.ended}function hWa(e){return!!e._writableState&&e._writableState.ended}function mWa(e,t={}){let r=e._readableState&&e._readableState.error||e._writableState&&e._writableState.error;return!t.all&&r===Ayt?null:r}function CWa(e){return n4e(e)&&e.readable}function _Wa(e){return typeof e=="object"&&e!==null&&typeof e.byteLength=="number"}function zCi(e){return _Wa(e)?e.byteLength:1024}function kCi(){}function yWa(){this.destroy(new Error("Stream aborted."))}function bWa(e){return e._writev!==uyt.prototype._writev&&e._writev!==r4e.prototype._writev}qCi.exports={pipeline:KCi,pipelinePromise:pWa,isStream:jCi,isStreamx:n4e,isEnded:IWa,isFinished:hWa,getStreamError:mWa,Stream:t4e,Writable:uyt,Readable:lyt,Duplex:r4e,Transform:gyt,PassThrough:Bwr}});var fyt=H((O1u,$Ci)=>{function EWa(e){return Buffer.isBuffer(e)||e instanceof Uint8Array}function SWa(e){return Buffer.isEncoding(e)}function vWa(e,t,r){return Buffer.alloc(e,t,r)}function BWa(e){return Buffer.allocUnsafe(e)}function wWa(e){return Buffer.allocUnsafeSlow(e)}function TWa(e,t){return Buffer.byteLength(e,t)}function RWa(e,t){return Buffer.compare(e,t)}function NWa(e,t){return Buffer.concat(e,t)}function DWa(e,t,r,n,a){return ob(e).copy(t,r,n,a)}function kWa(e,t){return ob(e).equals(t)}function xWa(e,t,r,n,a){return ob(e).fill(t,r,n,a)}function GWa(e,t,r){return Buffer.from(e,t,r)}function FWa(e,t,r,n){return ob(e).includes(t,r,n)}function ZWa(e,t,r,n){return ob(e).indexOf(t,r,n)}function LWa(e,t,r,n){return ob(e).lastIndexOf(t,r,n)}function VWa(e){return ob(e).swap16()}function PWa(e){return ob(e).swap32()}function WWa(e){return ob(e).swap64()}function ob(e){return Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function OWa(e,t,r,n){return ob(e).toString(t,r,n)}function MWa(e,t,r,n,a){return ob(e).write(t,r,n,a)}function HWa(e,t,r){return ob(e).writeDoubleLE(t,r)}function YWa(e,t,r){return ob(e).writeFloatLE(t,r)}function QWa(e,t,r){return ob(e).writeUInt32LE(t,r)}function XWa(e,t,r){return ob(e).writeInt32LE(t,r)}function JWa(e,t){return ob(e).readDoubleLE(t)}function UWa(e,t){return ob(e).readFloatLE(t)}function KWa(e,t){return ob(e).readUInt32LE(t)}function jWa(e,t){return ob(e).readInt32LE(t)}function zWa(e,t,r){return ob(e).writeDoubleBE(t,r)}function qWa(e,t,r){return ob(e).writeFloatBE(t,r)}function $Wa(e,t,r){return ob(e).writeUInt32BE(t,r)}function eOa(e,t,r){return ob(e).writeInt32BE(t,r)}function tOa(e,t){return ob(e).readDoubleBE(t)}function rOa(e,t){return ob(e).readFloatBE(t)}function nOa(e,t){return ob(e).readUInt32BE(t)}function iOa(e,t){return ob(e).readInt32BE(t)}$Ci.exports={isBuffer:EWa,isEncoding:SWa,alloc:vWa,allocUnsafe:BWa,allocUnsafeSlow:wWa,byteLength:TWa,compare:RWa,concat:NWa,copy:DWa,equals:kWa,fill:xWa,from:GWa,includes:FWa,indexOf:ZWa,lastIndexOf:LWa,swap16:VWa,swap32:PWa,swap64:WWa,toBuffer:ob,toString:OWa,write:MWa,writeDoubleLE:HWa,writeFloatLE:YWa,writeUInt32LE:QWa,writeInt32LE:XWa,readDoubleLE:JWa,readFloatLE:UWa,readUInt32LE:KWa,readInt32LE:jWa,writeDoubleBE:zWa,writeFloatBE:qWa,writeUInt32BE:$Wa,writeInt32BE:eOa,readDoubleBE:tOa,readFloatBE:rOa,readUInt32BE:nOa,readInt32BE:iOa}});var Vwr=H(yRe=>{var qC=fyt(),sOa="0000000000000000000",oOa="7777777777777777777",Iyt=48,e_i=qC.from([117,115,116,97,114,0]),aOa=qC.from([Iyt,Iyt]),cOa=qC.from([117,115,116,97,114,32]),lOa=qC.from([32,0]),uOa=4095,c4e=257,Lwr=263;yRe.decodeLongPath=function(t,r){return _Re(t,0,t.length,r)};yRe.encodePax=function(t){let r="";t.name&&(r+=Zwr(" path="+t.name+` +`);return Buffer.from(t)};gRe.decodePax=function(e){for(var t={};e.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;n+=n?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(n)>155||e.linkname&&Buffer.byteLength(e.linkname)>100?null:(t.write(r),t.write(Qae(e.mode&YVa,6),100),t.write(Qae(e.uid,6),108),t.write(Qae(e.gid,6),116),t.write(Qae(e.size,11),124),t.write(Qae(e.mtime.getTime()/1e3|0,11),136),t[156]=Nmi+JVa(e.type),e.linkname&&t.write(e.linkname,157),Dmi.copy(t,XXe),OVa.copy(t,uwr),e.uname&&t.write(e.uname,265),e.gname&&t.write(e.gname,297),t.write(Qae(e.devmajor||0,6),329),t.write(Qae(e.devminor||0,6),337),n&&t.write(n,345),t.write(Qae(xmi(t),6),148),t)};gRe.decode=function(e,t,r){var n=e[156]===0?0:e[156]-Nmi,a=uRe(e,0,100,t),o=Xae(e,100,8),l=Xae(e,108,8),A=Xae(e,116,8),f=Xae(e,124,12),I=Xae(e,136,12),C=XVa(n),b=e[157]===0?null:uRe(e,157,100,t),E=uRe(e,265,32),N=uRe(e,297,32),B=Xae(e,329,8),F=Xae(e,337,8),Q=xmi(e);if(Q===8*32)return null;if(Q!==Xae(e,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Dmi.compare(e,XXe,XXe+6)===0)e[345]&&(a=uRe(e,345,155,t)+"/"+a);else if(!(MVa.compare(e,XXe,XXe+6)===0&&HVa.compare(e,uwr,uwr+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return n===0&&a&&a[a.length-1]==="/"&&(n=5),{name:a,mode:o,uid:l,gid:A,size:f,mtime:new Date(1e3*I),type:C,linkname:b,uname:E,gname:N,devmajor:B,devminor:F}}});var Wmi=H((y1u,Pmi)=>{var Fmi=wt("util"),KVa=cwr(),JXe=gwr(),Zmi=lRe().Writable,Lmi=lRe().PassThrough,Vmi=function(){},Gmi=function(e){return e&=511,e&&512-e},jVa=function(e,t){var r=new $0t(e,t);return r.end(),r},zVa=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},$0t=function(e,t){this._parent=e,this.offset=t,Lmi.call(this,{autoDestroy:!1})};Fmi.inherits($0t,Lmi);$0t.prototype.destroy=function(e){this._parent.destroy(e)};var see=function(e){if(!(this instanceof see))return new see(e);Zmi.call(this,e),e=e||{},this._offset=0,this._buffer=KVa(),this._missing=0,this._partial=!1,this._onparse=Vmi,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},a=function(E){if(t._locked=!1,E)return t.destroy(E);t._stream||n()},o=function(){t._stream=null;var E=Gmi(t._header.size);E?t._parse(E,l):t._parse(512,b),t._locked||n()},l=function(){t._buffer.consume(Gmi(t._header.size)),t._parse(512,b),n()},A=function(){var E=t._header.size;t._paxGlobal=JXe.decodePax(r.slice(0,E)),r.consume(E),o()},f=function(){var E=t._header.size;t._pax=JXe.decodePax(r.slice(0,E)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(E),o()},I=function(){var E=t._header.size;this._gnuLongPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},C=function(){var E=t._header.size;this._gnuLongLinkPath=JXe.decodeLongPath(r.slice(0,E),e.filenameEncoding),r.consume(E),o()},b=function(){var E=t._offset,N;try{N=t._header=JXe.decode(r.slice(0,512),e.filenameEncoding,e.allowUnknownFormat)}catch(B){t.emit("error",B)}if(r.consume(512),!N){t._parse(512,b),n();return}if(N.type==="gnu-long-path"){t._parse(N.size,I),n();return}if(N.type==="gnu-long-link-path"){t._parse(N.size,C),n();return}if(N.type==="pax-global-header"){t._parse(N.size,A),n();return}if(N.type==="pax-header"){t._parse(N.size,f),n();return}if(t._gnuLongPath&&(N.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(N.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=N=zVa(N,t._pax),t._pax=null),t._locked=!0,!N.size||N.type==="directory"){t._parse(512,b),t.emit("entry",N,jVa(t,E),a);return}t._stream=new $0t(t,E),t.emit("entry",N,t._stream,a),t._parse(N.size,o),n()};this._onheader=b,this._parse(512,b)};Fmi.inherits(see,Zmi);see.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))};see.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)};see.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=Vmi,this._overflow?this._write(this._overflow,void 0,e):e()}};see.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(l=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=l,this._onparse()}};see.prototype._final=function(e){if(this._partial)return this.destroy(new Error("Unexpected end of data"));e()};Pmi.exports=see});var Mmi=H((b1u,Omi)=>{Omi.exports=wt("fs").constants||wt("constants")});var Jmi=H((E1u,Xmi)=>{var ARe=Mmi(),Hmi=Uur(),tyt=Wae(),qVa=Buffer.alloc,Ymi=lRe().Readable,dRe=lRe().Writable,$Va=wt("string_decoder").StringDecoder,eyt=gwr(),ePa=parseInt("755",8),tPa=parseInt("644",8),Qmi=qVa(1024),dwr=function(){},Awr=function(e,t){t&=511,t&&e.push(Qmi.slice(0,512-t))};function rPa(e){switch(e&ARe.S_IFMT){case ARe.S_IFBLK:return"block-device";case ARe.S_IFCHR:return"character-device";case ARe.S_IFDIR:return"directory";case ARe.S_IFIFO:return"fifo";case ARe.S_IFLNK:return"symlink"}return"file"}var ryt=function(e){dRe.call(this),this.written=0,this._to=e,this._destroyed=!1};tyt(ryt,dRe);ryt.prototype._write=function(e,t,r){if(this.written+=e.length,this._to.push(e))return r();this._to._drain=r};ryt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var nyt=function(){dRe.call(this),this.linkname="",this._decoder=new $Va("utf-8"),this._destroyed=!1};tyt(nyt,dRe);nyt.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()};nyt.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var UXe=function(){dRe.call(this),this._destroyed=!1};tyt(UXe,dRe);UXe.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))};UXe.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var q8=function(e){if(!(this instanceof q8))return new q8(e);Ymi.call(this,e),this._drain=dwr,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};tyt(q8,Ymi);q8.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof t=="function"&&(r=t,t=null),r||(r=dwr);var n=this;if((!e.size||e.type==="symlink")&&(e.size=0),e.type||(e.type=rPa(e.mode)),e.mode||(e.mode=e.type==="directory"?ePa:tPa),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),typeof t=="string"&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var a=this.push(t);return Awr(n,e.size),a?process.nextTick(r):this._drain=r,new UXe}if(e.type==="symlink"&&!e.linkname){var o=new nyt;return Hmi(o,function(A){if(A)return n.destroy(),r(A);e.linkname=o.linkname,n._encode(e),r()}),o}if(this._encode(e),e.type!=="file"&&e.type!=="contiguous-file")return process.nextTick(r),new UXe;var l=new ryt(this);return this._stream=l,Hmi(l,function(A){if(n._stream=null,A)return n.destroy(),r(A);if(l.written!==e.size)return n.destroy(),r(new Error("size mismatch"));Awr(n,e.size),n._finalizing&&n.finalize(),r()}),l}};q8.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(Qmi),this.push(null))};q8.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};q8.prototype._encode=function(e){if(!e.pax){var t=eyt.encode(e);if(t){this.push(t);return}}this._encodePax(e)};q8.prototype._encodePax=function(e){var t=eyt.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(eyt.encode(r)),this.push(t),Awr(this,t.length),r.size=e.size,r.type=e.type,this.push(eyt.encode(r))};q8.prototype._read=function(e){var t=this._drain;this._drain=dwr,t()};Xmi.exports=q8});var Umi=H(pwr=>{pwr.extract=Wmi();pwr.pack=Jmi()});var fwr=H(zhe=>{"use strict";Object.defineProperty(zhe,"__esModule",{value:!0});zhe.hasPackScripts=aPa;zhe.prepareForPack=cPa;zhe.genPackStream=lPa;zhe.genPackageManifest=eCi;zhe.genPackList=tCi;var $mi=(Pa(),vi(Va)),KXe=Bn(),Mh=no(),Kmi=$mi.__importDefault(Ek()),nPa=$mi.__importDefault(Umi()),iPa=wt("zlib"),sPa=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],oPa=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function aPa(e){return!!(KXe.scriptUtils.hasWorkspaceScript(e,"prepack")||KXe.scriptUtils.hasWorkspaceScript(e,"postpack"))}async function cPa(e,{report:t},r){await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"prepack",{report:t});try{let n=Mh.ppath.join(e.cwd,KXe.Manifest.fileName);await Mh.xfs.existsPromise(n)&&await e.manifest.loadFile(n,{baseFs:Mh.xfs}),await r()}finally{await KXe.scriptUtils.maybeExecuteWorkspaceLifecycleScript(e,"postpack",{report:t})}}async function lPa(e,t){typeof t>"u"&&(t=await tCi(e));let r=new Set;for(let o of e.manifest.publishConfig?.executableFiles??new Set)r.add(Mh.ppath.normalize(o));for(let o of e.manifest.bin.values())r.add(Mh.ppath.normalize(o));let n=nPa.default.pack();process.nextTick(async()=>{for(let o of t){let l=Mh.ppath.normalize(o),A=Mh.ppath.resolve(e.cwd,l),f=Mh.ppath.join("package",l),I=await Mh.xfs.lstatPromise(A),C={name:f,mtime:new Date(Mh.constants.SAFE_TIME*1e3)},b=r.has(l)?493:420,E,N,B=new Promise((Q,X)=>{E=Q,N=X}),F=Q=>{Q?N(Q):E()};if(I.isFile()){let Q;l==="package.json"?Q=Buffer.from(JSON.stringify(await eCi(e),null,2)):Q=await Mh.xfs.readFilePromise(A),n.entry({...C,mode:b,type:"file"},Q,F)}else I.isSymbolicLink()?n.entry({...C,mode:b,type:"symlink",linkname:await Mh.xfs.readlinkPromise(A)},F):F(new Error(`Unsupported file type ${I.mode} for ${Mh.npath.fromPortablePath(l)}`));await B}n.finalize()});let a=(0,iPa.createGzip)();return n.pipe(a),a}async function eCi(e){let t=JSON.parse(JSON.stringify(e.manifest.raw));return await e.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,e,t),t}async function tCi(e){let t=e.project,r=t.configuration,n={accept:[],reject:[]};for(let b of oPa)n.reject.push(b);for(let b of sPa)n.accept.push(b);n.reject.push(r.get("rcFilename"));let a=b=>{if(b===null||!b.startsWith(`${e.cwd}/`))return;let E=Mh.ppath.relative(e.cwd,b),N=Mh.ppath.resolve(Mh.PortablePath.root,E);n.reject.push(N)};a(Mh.ppath.resolve(t.cwd,Mh.Filename.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,t,b=>{a(b)});for(let b of t.workspaces){let E=Mh.ppath.relative(e.cwd,b.cwd);E!==""&&!E.match(/^(\.\.)?\//)&&n.reject.push(`/${E}`)}let o={accept:[],reject:[]},l=e.manifest.publishConfig?.main??e.manifest.main,A=e.manifest.publishConfig?.module??e.manifest.module,f=e.manifest.publishConfig?.browser??e.manifest.browser,I=e.manifest.publishConfig?.bin??e.manifest.bin;l!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,l)),A!=null&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,A)),typeof f=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,f));for(let b of I.values())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b));if(f instanceof Map)for(let[b,E]of f.entries())o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,b)),typeof E=="string"&&o.accept.push(Mh.ppath.resolve(Mh.PortablePath.root,E));let C=e.manifest.files!==null;if(C){o.reject.push("/*");for(let b of e.manifest.files)rCi(o.accept,b,{cwd:Mh.PortablePath.root})}return await uPa(e.cwd,{hasExplicitFileList:C,globalList:n,ignoreList:o})}async function uPa(e,{hasExplicitFileList:t,globalList:r,ignoreList:n}){let a=[],o=new Mh.JailFS(e),l=[[Mh.PortablePath.root,[n]]];for(;l.length>0;){let[A,f]=l.pop(),I=await o.lstatPromise(A);if(!zmi(A,{globalList:r,ignoreLists:I.isDirectory()?null:f}))if(I.isDirectory()){let C=await o.readdirPromise(A),b=!1,E=!1;if(!t||A!==Mh.PortablePath.root)for(let F of C)b=b||F===".gitignore",E=E||F===".npmignore";let N=E?await jmi(o,A,".npmignore"):b?await jmi(o,A,".gitignore"):null,B=N!==null?[N].concat(f):f;zmi(A,{globalList:r,ignoreLists:f})&&(B=[...f,{accept:[],reject:["**/*"]}]);for(let F of C)l.push([Mh.ppath.resolve(A,F),B])}else(I.isFile()||I.isSymbolicLink())&&a.push(Mh.ppath.relative(Mh.PortablePath.root,A))}return a.sort()}async function jmi(e,t,r){let n={accept:[],reject:[]},a=await e.readFilePromise(Mh.ppath.join(t,r),"utf8");for(let o of a.split(/\n/g))rCi(n.reject,o,{cwd:t});return n}function gPa(e,{cwd:t}){let r=e[0]==="!";return r&&(e=e.slice(1)),e.match(/\.{0,1}\//)&&(e=Mh.ppath.resolve(t,e)),r&&(e=`!${e}`),e}function rCi(e,t,{cwd:r}){let n=t.trim();n===""||n[0]==="#"||e.push(gPa(n,{cwd:r}))}var uO;(function(e){e[e.None=0]="None",e[e.Match=1]="Match",e[e.NegatedMatch=2]="NegatedMatch"})(uO||(uO={}));function zmi(e,{globalList:t,ignoreLists:r}){let n=iyt(e,t.accept);if(n!==uO.None)return n===uO.NegatedMatch;let a=iyt(e,t.reject);if(a!==uO.None)return a===uO.Match;if(r!==null)for(let o of r){let l=iyt(e,o.accept);if(l!==uO.None)return l===uO.NegatedMatch;let A=iyt(e,o.reject);if(A!==uO.None)return A===uO.Match}return!1}function iyt(e,t){let r=t,n=[];for(let a=0;a{"use strict";Object.defineProperty(Iwr,"__esModule",{value:!0});var APa=(Pa(),vi(Va)),nCi=el(),oee=Bn(),$8=no(),pRe=($c(),vi(rg)),syt=APa.__importStar(fwr()),jXe=class extends nCi.BaseCommand{constructor(){super(...arguments),this.installIfNeeded=pRe.Option.Boolean("--install-if-needed",!1,{description:"Run a preliminary `yarn install` if the package contains build scripts"}),this.dryRun=pRe.Option.Boolean("-n,--dry-run",!1,{description:"Print the file paths without actually generating the package archive"}),this.json=pRe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.out=pRe.Option.String("-o,--out",{description:"Create the archive at the specified path"}),this.filename=pRe.Option.String("--filename",{hidden:!0})}async execute(){let t=await oee.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oee.Project.find(t,this.context.cwd);if(!n)throw new nCi.WorkspaceRequiredError(r.cwd,this.context.cwd);await syt.hasPackScripts(n)&&(this.installIfNeeded?await r.install({cache:await oee.Cache.find(t),report:new oee.ThrowReport}):await r.restoreInstallState());let a=this.out??this.filename,o=typeof a<"u"?$8.ppath.resolve(this.context.cwd,dPa(a,{workspace:n})):$8.ppath.resolve(n.cwd,"package.tgz");return(await oee.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async A=>{await syt.prepareForPack(n,{report:A},async()=>{A.reportJson({base:$8.npath.fromPortablePath(n.cwd)});let f=await syt.genPackList(n);for(let I of f)A.reportInfo(null,$8.npath.fromPortablePath(I)),A.reportJson({location:$8.npath.fromPortablePath(I)});if(!this.dryRun){let I=await syt.genPackStream(n,f);await $8.xfs.mkdirPromise($8.ppath.dirname(o),{recursive:!0});let C=$8.xfs.createWriteStream(o);I.pipe(C),await new Promise(b=>{C.on("finish",b)})}}),this.dryRun||(A.reportInfo(oee.MessageName.UNNAMED,`Package archive generated in ${oee.formatUtils.pretty(t,o,oee.formatUtils.Type.PATH)}`),A.reportJson({output:$8.npath.fromPortablePath(o)}))})).exitCode()}};jXe.paths=[["pack"]];jXe.usage=pRe.Command.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,--out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});Iwr.default=jXe;function dPa(e,{workspace:t}){let r=e.replace("%s",pPa(t)).replace("%v",fPa(t));return $8.npath.toPortablePath(r)}function pPa(e){return e.manifest.name!==null?oee.structUtils.slugifyIdent(e.manifest.name):"package"}function fPa(e){return e.manifest.version!==null?e.manifest.version:"unknown"}});var $he=H(qhe=>{"use strict";Object.defineProperty(qhe,"__esModule",{value:!0});qhe.packUtils=qhe.PackCommand=void 0;var oCi=(Pa(),vi(Va)),zXe=Bn(),sCi=Bn(),aCi=oCi.__importDefault(iCi());qhe.PackCommand=aCi.default;var IPa=oCi.__importStar(fwr());qhe.packUtils=IPa;var hPa=["dependencies","devDependencies","peerDependencies"],mPa="workspace:",CPa=(e,t)=>{t.publishConfig&&(t.publishConfig.type&&(t.type=t.publishConfig.type),t.publishConfig.main&&(t.main=t.publishConfig.main),t.publishConfig.browser&&(t.browser=t.publishConfig.browser),t.publishConfig.module&&(t.module=t.publishConfig.module),t.publishConfig.exports&&(t.exports=t.publishConfig.exports),t.publishConfig.imports&&(t.imports=t.publishConfig.imports),t.publishConfig.bin&&(t.bin=t.publishConfig.bin));let r=e.project;for(let n of hPa)for(let a of e.manifest.getForScope(n).values()){let o=r.tryWorkspaceByDescriptor(a),l=zXe.structUtils.parseRange(a.range);if(l.protocol===mPa)if(o===null){if(r.tryWorkspaceByIdent(a)===null)throw new sCi.ReportError(sCi.MessageName.WORKSPACE_NOT_FOUND,`${zXe.structUtils.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;zXe.structUtils.areDescriptorsEqual(a,o.anchoredDescriptor)||l.selector==="*"?A=o.manifest.version??"0.0.0":l.selector==="~"||l.selector==="^"?A=`${l.selector}${o.manifest.version??"0.0.0"}`:A=l.selector;let f=n==="dependencies"?zXe.structUtils.makeDescriptor(a,"unknown"):null,I=f!==null&&e.manifest.ensureDependencyMeta(f).optional?"optionalDependencies":n;t[I][zXe.structUtils.stringifyIdent(a)]=A}}},_Pa={hooks:{beforeWorkspacePacking:CPa},commands:[aCi.default]};qhe.default=_Pa});var fCi=H((R1u,pCi)=>{pCi.exports=typeof queueMicrotask=="function"?queueMicrotask:e=>Promise.resolve().then(e)});var hCi=H((N1u,ICi)=>{ICi.exports=typeof process<"u"&&typeof process.nextTick=="function"?process.nextTick.bind(process):fCi()});var CCi=H((k1u,mCi)=>{mCi.exports=class{constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Cwr=H((G1u,yCi)=>{var _Ci=CCi();yCi.exports=class{constructor(t){this.hwm=t||16,this.head=new _Ci(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(t){if(this.length++,!this.head.push(t)){let r=this.head;this.head=r.next=new _Ci(2*this.head.buffer.length),this.head.push(t)}}shift(){this.length!==0&&this.length--;let t=this.tail.shift();if(t===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return t}peek(){let t=this.tail.peek();return t===void 0&&this.tail.next?this.tail.next.peek():t}isEmpty(){return this.length===0}}});var ECi=H((Z1u,bCi)=>{bCi.exports=class{constructor(t){this.encoding=t}get remaining(){return 0}decode(t){return t.toString(this.encoding)}flush(){return""}}});var vCi=H((V1u,SCi)=>{SCi.exports=class{constructor(){this.codePoint=0,this.bytesSeen=0,this.bytesNeeded=0,this.lowerBoundary=128,this.upperBoundary=191}get remaining(){return this.bytesSeen}decode(t){if(this.bytesNeeded===0){let n=!0;for(let a=Math.max(0,t.byteLength-4),o=t.byteLength;a=194&&o<=223?(this.bytesNeeded=2,this.codePoint=o&31):o>=224&&o<=239?(o===224?this.lowerBoundary=160:o===237&&(this.upperBoundary=159),this.bytesNeeded=3,this.codePoint=o&15):o>=240&&o<=244?(o===240&&(this.lowerBoundary=144),o===244&&(this.upperBoundary=143),this.bytesNeeded=4,this.codePoint=o&7):r+="\uFFFD");continue}if(othis.upperBoundary){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,r+="\uFFFD";continue}this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|o&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded&&(r+=String.fromCodePoint(this.codePoint),this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0)}return r}flush(){let t=this.bytesNeeded>0?"\uFFFD":"";return this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191,t}}});var wCi=H((W1u,BCi)=>{var yPa=ECi(),bPa=vCi();BCi.exports=class{constructor(t="utf8"){switch(this.encoding=EPa(t),this.encoding){case"utf8":this.decoder=new bPa;break;case"utf16le":case"base64":throw new Error("Unsupported encoding: "+this.encoding);default:this.decoder=new yPa(this.encoding)}}get remaining(){return this.decoder.remaining}push(t){return typeof t=="string"?t:this.decoder.decode(t)}write(t){return this.push(t)}end(t){let r="";return t&&(r=this.push(t)),r+=this.decoder.flush(),r}};function EPa(e){switch(e=e.toLowerCase(),e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:throw new Error("Unknown encoding: "+e)}}});var Fwr=H((O1u,qCi)=>{var{EventEmitter:SPa}=wt("events"),Ayt=new Error("Stream was destroyed"),_wr=new Error("Premature close"),xCi=hCi(),GCi=Cwr(),vPa=wCi(),kS=(1<<29)-1,ime=1,wwr=2,eme=4,qXe=8,FCi=kS^ime,BPa=kS^wwr,i4e=16,$Xe=32,CRe=64,Jae=128,s4e=256,Twr=512,tme=1024,ywr=2048,Rwr=4096,Nwr=8192,KX=16384,fRe=32768,dyt=65536,rme=131072,ZCi=s4e|Twr,wPa=i4e|dyt,TPa=CRe|i4e,RPa=Rwr|Jae,Dwr=s4e|rme,NPa=kS^i4e,DPa=kS^CRe,kPa=kS^(CRe|dyt),TCi=kS^dyt,xPa=kS^s4e,GPa=kS^(Jae|Nwr),FPa=kS^tme,RCi=kS^ZCi,LCi=kS^fRe,ZPa=kS^$Xe,VCi=kS^rme,LPa=kS^Dwr,Uae=1<<18,hRe=2<<18,o4e=4<<18,nme=8<<18,a4e=16<<18,sme=32<<18,bwr=64<<18,IRe=128<<18,kwr=256<<18,mRe=512<<18,pyt=1024<<18,PCi=kS^(Uae|kwr),WCi=kS^o4e,VPa=kS^mRe,PPa=kS^a4e,WPa=kS^nme,OCi=kS^IRe,OPa=kS^hRe,MCi=kS^pyt,e4e=i4e|Uae,HCi=kS^e4e,xwr=KX|sme,aee=eme|qXe|wwr,gO=aee|ime,YCi=aee|xwr,MPa=WCi&DPa,Gwr=IRe|fRe,HPa=Gwr&HCi,QCi=gO|HPa,YPa=gO|tme|KX,NCi=gO|KX|Jae,QPa=gO|tme|Jae,XPa=gO|Rwr|Jae|Nwr,JPa=gO|i4e|tme|KX|dyt|rme,UPa=aee|tme|KX,KPa=$Xe|gO|fRe|CRe,jPa=gO|mRe|sme,zPa=nme|a4e,XCi=nme|Uae,qPa=nme|a4e|gO|Uae,DCi=gO|Uae|nme|pyt,$Pa=o4e|Uae,eWa=Uae|kwr,tWa=gO|mRe|XCi|sme,rWa=a4e|aee|mRe|sme,nWa=hRe|gO|IRe|o4e,ayt=Symbol.asyncIterator||Symbol("asyncIterator"),cyt=class{constructor(t,{highWaterMark:r=16384,map:n=null,mapWritable:a,byteLength:o,byteLengthWritable:l}={}){this.stream=t,this.queue=new GCi,this.highWaterMark=r,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=l||o||zCi,this.map=a||n,this.afterWrite=oWa.bind(this),this.afterUpdateNextTick=lWa.bind(this)}get ended(){return(this.stream._duplexState&sme)!==0}push(t){return this.map!==null&&(t=this.map(t)),this.buffered+=this.byteLength(t),this.queue.push(t),this.buffered0,this.error=null,this.pipeline=null,this.byteLength=l||o||zCi,this.map=a||n,this.pipeTo=null,this.afterRead=aWa.bind(this),this.afterUpdateNextTick=cWa.bind(this)}get ended(){return(this.stream._duplexState&KX)!==0}pipe(t,r){if(this.pipeTo!==null)throw new Error("Can only pipe to one destination");if(typeof r!="function"&&(r=null),this.stream._duplexState|=Twr,this.pipeTo=t,this.pipeline=new vwr(this.stream,t,r),r&&this.stream.on("error",kCi),n4e(t))t._writableState.pipeline=this.pipeline,r&&t.on("error",kCi),t.on("finish",this.pipeline.finished.bind(this.pipeline));else{let n=this.pipeline.done.bind(this.pipeline,t),a=this.pipeline.done.bind(this.pipeline,t,null);t.on("error",n),t.on("close",a),t.on("finish",this.pipeline.finished.bind(this.pipeline))}t.on("drain",iWa.bind(this)),this.stream.emit("piping",t),t.emit("pipe",this.stream)}push(t){let r=this.stream;return t===null?(this.highWaterMark=0,r._duplexState=(r._duplexState|tme)&kPa,!1):this.map!==null&&(t=this.map(t),t===null)?(r._duplexState&=TCi,this.buffered0;)r.push(this.shift());for(let n=0;n0;)n.drains.shift().resolve(!1);n.pipeline!==null&&n.pipeline.done(t,e)}}function oWa(e){let t=this.stream;e&&t.destroy(e),t._duplexState&=PCi,this.drains!==null&&uWa(this.drains),(t._duplexState&qPa)===a4e&&(t._duplexState&=PPa,(t._duplexState&bwr)===bwr&&t.emit("drain")),this.updateCallback()}function aWa(e){e&&this.stream.destroy(e),this.stream._duplexState&=NPa,this.readAhead===!1&&!(this.stream._duplexState&s4e)&&(this.stream._duplexState&=VCi),this.updateCallback()}function cWa(){this.stream._duplexState&$Xe||(this.stream._duplexState&=LCi,this.update())}function lWa(){this.stream._duplexState&hRe||(this.stream._duplexState&=OCi,this.update())}function uWa(e){for(let t=0;t0)?null:n(l)}}_read(t){t(null)}pipe(t,r){return this._readableState.updateNextTick(),this._readableState.pipe(t,r),t}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(t){return this._readableState.updateNextTick(),this._readableState.push(t)}unshift(t){return this._readableState.updateNextTick(),this._readableState.unshift(t)}resume(){return this._duplexState|=Dwr,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?LPa:xPa,this}static _fromAsyncIterator(t,r){let n,a=new e({...r,read(l){t.next().then(o).then(l.bind(null,null)).catch(l)},predestroy(){n=t.return()},destroy(l){if(!n)return l(null);n.then(l.bind(null,null)).catch(l)}});return a;function o(l){l.done?a.push(null):a.push(l.value)}}static from(t,r){if(CWa(t))return t;if(t[ayt])return this._fromAsyncIterator(t[ayt](),r);Array.isArray(t)||(t=t===void 0?[]:[t]);let n=0;return new e({...r,read(a){this.push(n===t.length?null:t[n++]),a(null)}})}static isBackpressured(t){return(t._duplexState&UPa)!==0||t._readableState.buffered>=t._readableState.highWaterMark}static isPaused(t){return(t._duplexState&s4e)===0}[ayt](){let t=this,r=null,n=null,a=null;return this.on("error",I=>{r=I}),this.on("readable",o),this.on("close",l),{[ayt](){return this},next(){return new Promise(function(I,C){n=I,a=C;let b=t.read();b!==null?A(b):t._duplexState&qXe&&A(null)})},return(){return f(null)},throw(I){return f(I)}};function o(){n!==null&&A(t.read())}function l(){n!==null&&A(null)}function A(I){a!==null&&(r?a(r):I===null&&!(t._duplexState&KX)?a(Ayt):n({value:I,done:I===null}),a=n=null)}function f(I){return t.destroy(I),new Promise((C,b)=>{if(t._duplexState&qXe)return C({value:void 0,done:!0});t.once("close",function(){I?b(I):C({value:void 0,done:!0})})})}}},uyt=class extends t4e{constructor(t){super(t),this._duplexState|=ime|KX,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final),t.eagerOpen&&this._writableState.updateNextTick())}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}static isBackpressured(t){return(t._duplexState&rWa)!==0}static drained(t){if(t.destroyed)return Promise.resolve(!1);let r=t._writableState,a=(bWa(t)?Math.min(1,r.queue.length):r.queue.length)+(t._duplexState&kwr?1:0);return a===0?Promise.resolve(!0):(r.drains===null&&(r.drains=[]),new Promise(o=>{r.drains.push({writes:a,resolve:o})}))}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},r4e=class extends lyt{constructor(t){super(t),this._duplexState=ime|this._duplexState&rme,this._writableState=new cyt(this,t),t&&(t.writev&&(this._writev=t.writev),t.write&&(this._write=t.write),t.final&&(this._final=t.final))}cork(){this._duplexState|=pyt}uncork(){this._duplexState&=MCi,this._writableState.updateNextTick()}_writev(t,r){r(null)}_write(t,r){this._writableState.autoBatch(t,r)}_final(t){t(null)}write(t){return this._writableState.updateNextTick(),this._writableState.push(t)}end(t){return this._writableState.updateNextTick(),this._writableState.end(t),this}},gyt=class extends r4e{constructor(t){super(t),this._transformState=new Swr(this),t&&(t.transform&&(this._transform=t.transform),t.flush&&(this._flush=t.flush))}_write(t,r){this._readableState.buffered>=this._readableState.highWaterMark?this._transformState.data=t:this._transform(t,this._transformState.afterTransform)}_read(t){if(this._transformState.data!==null){let r=this._transformState.data;this._transformState.data=null,t(null),this._transform(r,this._transformState.afterTransform)}else t(null)}destroy(t){super.destroy(t),this._transformState.data!==null&&(this._transformState.data=null,this._transformState.afterTransform())}_transform(t,r){r(null,t)}_flush(t){t(null)}_final(t){this._transformState.afterFinal=t,this._flush(dWa.bind(this))}},Bwr=class extends gyt{};function dWa(e,t){let r=this._transformState.afterFinal;if(e)return r(e);t!=null&&this.push(t),this.push(null),r(null)}function pWa(...e){return new Promise((t,r)=>KCi(...e,n=>{if(n)return r(n);t()}))}function KCi(e,...t){let r=Array.isArray(e)?[...e,...t]:[e,...t],n=r.length&&typeof r[r.length-1]=="function"?r.pop():null;if(r.length<2)throw new Error("Pipeline requires at least 2 streams");let a=r[0],o=null,l=null;for(let I=1;I1,f),a.pipe(o)),a=o;if(n){let I=!1,C=n4e(o)||!!(o._writableState&&o._writableState.autoDestroy);o.on("error",b=>{l===null&&(l=b)}),o.on("finish",()=>{I=!0,C||n(l)}),C&&o.on("close",()=>n(l||(I?null:_wr)))}return o;function A(I,C,b,E){I.on("error",E),I.on("close",N);function N(){if(C&&I._readableState&&!I._readableState.ended||b&&I._writableState&&!I._writableState.ended)return E(_wr)}}function f(I){if(!(!I||l)){l=I;for(let C of r)C.destroy(I)}}}function fWa(e){return e}function jCi(e){return!!e._readableState||!!e._writableState}function n4e(e){return typeof e._duplexState=="number"&&jCi(e)}function IWa(e){return!!e._readableState&&e._readableState.ended}function hWa(e){return!!e._writableState&&e._writableState.ended}function mWa(e,t={}){let r=e._readableState&&e._readableState.error||e._writableState&&e._writableState.error;return!t.all&&r===Ayt?null:r}function CWa(e){return n4e(e)&&e.readable}function _Wa(e){return typeof e=="object"&&e!==null&&typeof e.byteLength=="number"}function zCi(e){return _Wa(e)?e.byteLength:1024}function kCi(){}function yWa(){this.destroy(new Error("Stream aborted."))}function bWa(e){return e._writev!==uyt.prototype._writev&&e._writev!==r4e.prototype._writev}qCi.exports={pipeline:KCi,pipelinePromise:pWa,isStream:jCi,isStreamx:n4e,isEnded:IWa,isFinished:hWa,getStreamError:mWa,Stream:t4e,Writable:uyt,Readable:lyt,Duplex:r4e,Transform:gyt,PassThrough:Bwr}});var fyt=H((M1u,$Ci)=>{function EWa(e){return Buffer.isBuffer(e)||e instanceof Uint8Array}function SWa(e){return Buffer.isEncoding(e)}function vWa(e,t,r){return Buffer.alloc(e,t,r)}function BWa(e){return Buffer.allocUnsafe(e)}function wWa(e){return Buffer.allocUnsafeSlow(e)}function TWa(e,t){return Buffer.byteLength(e,t)}function RWa(e,t){return Buffer.compare(e,t)}function NWa(e,t){return Buffer.concat(e,t)}function DWa(e,t,r,n,a){return ob(e).copy(t,r,n,a)}function kWa(e,t){return ob(e).equals(t)}function xWa(e,t,r,n,a){return ob(e).fill(t,r,n,a)}function GWa(e,t,r){return Buffer.from(e,t,r)}function FWa(e,t,r,n){return ob(e).includes(t,r,n)}function ZWa(e,t,r,n){return ob(e).indexOf(t,r,n)}function LWa(e,t,r,n){return ob(e).lastIndexOf(t,r,n)}function VWa(e){return ob(e).swap16()}function PWa(e){return ob(e).swap32()}function WWa(e){return ob(e).swap64()}function ob(e){return Buffer.isBuffer(e)?e:Buffer.from(e.buffer,e.byteOffset,e.byteLength)}function OWa(e,t,r,n){return ob(e).toString(t,r,n)}function MWa(e,t,r,n,a){return ob(e).write(t,r,n,a)}function HWa(e,t,r){return ob(e).writeDoubleLE(t,r)}function YWa(e,t,r){return ob(e).writeFloatLE(t,r)}function QWa(e,t,r){return ob(e).writeUInt32LE(t,r)}function XWa(e,t,r){return ob(e).writeInt32LE(t,r)}function JWa(e,t){return ob(e).readDoubleLE(t)}function UWa(e,t){return ob(e).readFloatLE(t)}function KWa(e,t){return ob(e).readUInt32LE(t)}function jWa(e,t){return ob(e).readInt32LE(t)}function zWa(e,t,r){return ob(e).writeDoubleBE(t,r)}function qWa(e,t,r){return ob(e).writeFloatBE(t,r)}function $Wa(e,t,r){return ob(e).writeUInt32BE(t,r)}function eOa(e,t,r){return ob(e).writeInt32BE(t,r)}function tOa(e,t){return ob(e).readDoubleBE(t)}function rOa(e,t){return ob(e).readFloatBE(t)}function nOa(e,t){return ob(e).readUInt32BE(t)}function iOa(e,t){return ob(e).readInt32BE(t)}$Ci.exports={isBuffer:EWa,isEncoding:SWa,alloc:vWa,allocUnsafe:BWa,allocUnsafeSlow:wWa,byteLength:TWa,compare:RWa,concat:NWa,copy:DWa,equals:kWa,fill:xWa,from:GWa,includes:FWa,indexOf:ZWa,lastIndexOf:LWa,swap16:VWa,swap32:PWa,swap64:WWa,toBuffer:ob,toString:OWa,write:MWa,writeDoubleLE:HWa,writeFloatLE:YWa,writeUInt32LE:QWa,writeInt32LE:XWa,readDoubleLE:JWa,readFloatLE:UWa,readUInt32LE:KWa,readInt32LE:jWa,writeDoubleBE:zWa,writeFloatBE:qWa,writeUInt32BE:$Wa,writeInt32BE:eOa,readDoubleBE:tOa,readFloatBE:rOa,readUInt32BE:nOa,readInt32BE:iOa}});var Vwr=H(yRe=>{var qC=fyt(),sOa="0000000000000000000",oOa="7777777777777777777",Iyt=48,e_i=qC.from([117,115,116,97,114,0]),aOa=qC.from([Iyt,Iyt]),cOa=qC.from([117,115,116,97,114,32]),lOa=qC.from([32,0]),uOa=4095,c4e=257,Lwr=263;yRe.decodeLongPath=function(t,r){return _Re(t,0,t.length,r)};yRe.encodePax=function(t){let r="";t.name&&(r+=Zwr(" path="+t.name+` `)),t.linkname&&(r+=Zwr(" linkpath="+t.linkname+` `));let n=t.pax;if(n)for(let a in n)r+=Zwr(" "+a+"="+n[a]+` -`);return qC.from(r)};yRe.decodePax=function(t){let r={};for(;t.length;){let n=0;for(;n100;){let o=n.indexOf("/");if(o===-1)return null;a+=a?"/"+n.slice(0,o):n.slice(0,o),n=n.slice(o+1)}return qC.byteLength(n)>100||qC.byteLength(a)>155||t.linkname&&qC.byteLength(t.linkname)>100?null:(qC.write(r,n),qC.write(r,jae(t.mode&uOa,6),100),qC.write(r,jae(t.uid,6),108),qC.write(r,jae(t.gid,6),116),hOa(t.size,r,124),qC.write(r,jae(t.mtime.getTime()/1e3|0,11),136),r[156]=Iyt+fOa(t.type),t.linkname&&qC.write(r,t.linkname,157),qC.copy(e_i,r,c4e),qC.copy(aOa,r,Lwr),t.uname&&qC.write(r,t.uname,265),t.gname&&qC.write(r,t.gname,297),qC.write(r,jae(t.devmajor||0,6),329),qC.write(r,jae(t.devminor||0,6),337),a&&qC.write(r,a,345),qC.write(r,jae(r_i(r),6),148),r)};yRe.decode=function(t,r,n){let a=t[156]===0?0:t[156]-Iyt,o=_Re(t,0,100,r),l=Kae(t,100,8),A=Kae(t,108,8),f=Kae(t,116,8),I=Kae(t,124,12),C=Kae(t,136,12),b=pOa(a),E=t[157]===0?null:_Re(t,157,100,r),N=_Re(t,265,32),B=_Re(t,297,32),F=Kae(t,329,8),Q=Kae(t,337,8),X=r_i(t);if(X===8*32)return null;if(X!==Kae(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(gOa(t))t[345]&&(o=_Re(t,345,155,r)+"/"+o);else if(!AOa(t)){if(!n)throw new Error("Invalid tar header: unknown format.")}return a===0&&o&&o[o.length-1]==="/"&&(a=5),{name:o,mode:l,uid:A,gid:f,size:I,mtime:new Date(1e3*C),type:b,linkname:E,uname:N,gname:B,devmajor:F,devminor:Q,pax:null}};function gOa(e){return qC.equals(e_i,e.subarray(c4e,c4e+6))}function AOa(e){return qC.equals(cOa,e.subarray(c4e,c4e+6))&&qC.equals(lOa,e.subarray(Lwr,Lwr+2))}function dOa(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)}function pOa(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function fOa(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function t_i(e,t,r,n){for(;rt?oOa.slice(0,t)+" ":sOa.slice(0,t-e.length)+e+" "}function IOa(e,t,r){t[r]=128;for(let n=11;n>0;n--)t[r+n]=e&255,e=Math.floor(e/256)}function hOa(e,t,r){e.toString(8).length>11?IOa(e,t,r):qC.write(t,jae(e,11),r)}function mOa(e){let t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;let r=[],n;for(n=e.length-1;n>0;n--){let l=e[n];t?r.push(l):r.push(255-l)}let a=0,o=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e}});var a_i=H((H1u,o_i)=>{var{Writable:COa,Readable:_Oa,getStreamError:n_i}=Fwr(),yOa=Cwr(),i_i=fyt(),bRe=Vwr(),bOa=i_i.alloc(0),Wwr=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new yOa,this._offset=0}push(t){this.buffered+=t.byteLength,this.queue.push(t)}shiftFirst(t){return this._buffered===0?null:this._next(t)}shift(t){if(t>this.buffered)return null;if(t===0)return bOa;let r=this._next(t);if(t===r.byteLength)return r;let n=[r];for(;(t-=r.byteLength)>0;)r=this._next(t),n.push(r);return i_i.concat(n)}_next(t){let r=this.queue.peek(),n=r.byteLength-this._offset;if(t>=n){let a=this._offset?r.subarray(this._offset,r.byteLength):r;return this.queue.shift(),this._offset=0,this.buffered-=n,this.shifted+=n,a}return this.buffered-=t,this.shifted+=t,r.subarray(this._offset,this._offset+=t)}},Owr=class extends _Oa{constructor(t,r,n){super(),this.header=r,this.offset=n,this._parent=t}_read(t){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),t(null)}_predestroy(){this._parent.destroy(n_i(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=s_i(this.header.size),this._parent._update())}_destroy(t){this._detach(),t(null)}},Mwr=class extends COa{constructor(t){super(t),t||(t={}),this._buffer=new Wwr,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=Pwr,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=t.filenameEncoding||"utf-8",this._allowUnknownFormat=!!t.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(t){if(this._locked=!1,t){this.destroy(t),this._continueWrite(t);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=bRe.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(t){return this._continueWrite(t),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}return this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(t){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=bRe.decodePax(t);break;case"pax-header":this._pax=this._paxGlobal===null?bRe.decodePax(t):Object.assign({},this._paxGlobal,bRe.decodePax(t));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=s_i(this._header.size);let t=this._buffer.shift(this._header.size);try{this._decodeLongHeader(t)}catch(r){return this._continueWrite(r),!1}return!0}_consumeStream(){let t=this._buffer.shiftFirst(this._missing);if(t===null)return!1;this._missing-=t.byteLength;let r=this._stream.push(t);return this._missing===0?(this._stream.push(null),r&&this._stream._detach(),r&&this._locked===!1):r}_createStream(){return new Owr(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let t=this._buffer.shiftFirst(this._missing);t!==null&&(this._missing-=t.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(t){let r=this._callback;this._callback=Pwr,r(t)}_write(t,r){this._callback=r,this._buffer.push(t),this._update()}_final(t){this._finished=this._missing===0&&this._buffer.buffered===0,t(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(t){this._stream&&this._stream.destroy(n_i(this)),t(null)}[Symbol.asyncIterator](){let t=null,r=null,n=null,a=null,o=null,l=this;return this.on("entry",I),this.on("error",E=>{t=E}),this.on("close",C),{[Symbol.asyncIterator](){return this},next(){return new Promise(f)},return(){return b(null)},throw(E){return b(E)}};function A(E){if(!o)return;let N=o;o=null,N(E)}function f(E,N){if(t)return N(t);if(a){E({value:a,done:!1}),a=null;return}r=E,n=N,A(null),l._finished&&r&&(r({value:void 0,done:!0}),r=n=null)}function I(E,N,B){o=B,N.on("error",Pwr),r?(r({value:N,done:!1}),r=n=null):a=N}function C(){A(t),r&&(t?n(t):r({value:void 0,done:!0}),r=n=null)}function b(E){return l.destroy(E),A(E),new Promise((N,B)=>{if(l.destroyed)return N({value:void 0,done:!0});l.once("close",function(){E?B(E):N({value:void 0,done:!0})})})}}};o_i.exports=function(t){return new Mwr(t)};function Pwr(){}function s_i(e){return e&=511,e&&512-e}});var l_i=H((Y1u,Hwr)=>{var c_i={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{Hwr.exports=wt("fs").constants||c_i}catch{Hwr.exports=c_i}});var p_i=H((Q1u,d_i)=>{var{Readable:EOa,Writable:SOa,getStreamError:u_i}=Fwr(),ome=fyt(),ERe=l_i(),hyt=Vwr(),vOa=493,BOa=420,g_i=ome.alloc(1024),Qwr=class extends SOa{constructor(t,r,n){super({mapWritable:TOa,eagerOpen:!0}),this.written=0,this.header=r,this._callback=n,this._linkname=null,this._isLinkname=r.type==="symlink"&&!r.linkname,this._isVoid=r.type!=="file"&&r.type!=="contiguous-file",this._finished=!1,this._pack=t,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(t){this._openCallback=t,this._pack._stream===this&&this._continueOpen()}_continuePack(t){if(this._callback===null)return;let r=this._callback;this._callback=null,r(t)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let t=this._openCallback;if(this._openCallback=null,t!==null){if(this._pack.destroying)return t(new Error("pack stream destroyed"));if(this._pack._finalized)return t(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),t(null)}}_write(t,r){if(this._isLinkname)return this._linkname=this._linkname?ome.concat([this._linkname,t]):t,r(null);if(this._isVoid)return t.byteLength>0?r(new Error("No body allowed for this entry")):r();if(this.written+=t.byteLength,this._pack.push(t))return r();this._pack._drain=r}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?ome.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),A_i(this._pack,this.header.size),this._pack._done(this))}_final(t){if(this.written!==this.header.size)return t(new Error("Size mismatch"));this._finish(),t(null)}_getError(){return u_i(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(t){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),t()}},Xwr=class extends EOa{constructor(t){super(t),this._drain=Ywr,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(t,r,n){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof r=="function"&&(n=r,r=null),n||(n=Ywr),(!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=wOa(t.mode)),t.mode||(t.mode=t.type==="directory"?vOa:BOa),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof r=="string"&&(r=ome.from(r));let a=new Qwr(this,t,n);return ome.isBuffer(r)?(t.size=r.byteLength,a.write(r),a.end(),a):(a._isVoid,a)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(g_i),this.push(null))}_done(t){t===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(t){if(!t.pax){let r=hyt.encode(t);if(r){this.push(r);return}}this._encodePax(t)}_encodePax(t){let r=hyt.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),n={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:r.byteLength,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(hyt.encode(n)),this.push(r),A_i(this,r.byteLength),n.size=t.size,n.type=t.type,this.push(hyt.encode(n))}_doDrain(){let t=this._drain;this._drain=Ywr,t()}_predestroy(){let t=u_i(this);for(this._stream&&this._stream.destroy(t);this._pending.length;){let r=this._pending.shift();r.destroy(t),r._continueOpen()}this._doDrain()}_read(t){this._doDrain(),t()}};d_i.exports=function(t){return new Xwr(t)};function wOa(e){switch(e&ERe.S_IFMT){case ERe.S_IFBLK:return"block-device";case ERe.S_IFCHR:return"character-device";case ERe.S_IFDIR:return"directory";case ERe.S_IFIFO:return"fifo";case ERe.S_IFLNK:return"symlink"}return"file"}function Ywr(){}function A_i(e,t){t&=511,t&&e.push(g_i.subarray(0,512-t))}function TOa(e){return ome.isBuffer(e)?e:ome.from(e)}});var f_i=H(Jwr=>{Jwr.extract=a_i();Jwr.pack=p_i()});var z_i=H((D2u,j_i)=>{"use strict";var VOa=e7t(),BRe=z6t();function K_i(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function iTr(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(BRe("no-hyperlink")||BRe("no-hyperlinks")||BRe("hyperlink=false")||BRe("hyperlink=never"))return!1;if(BRe("hyperlink=true")||BRe("hyperlink=always")||"NETLIFY"in t)return!0;if(!VOa.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=K_i(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=K_i(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}j_i.exports={supportsHyperlink:iTr,stdout:iTr(process.stdout),stderr:iTr(process.stderr)}});var oTr=H((iSu,a0i)=>{"use strict";var QOa=function(t){return XOa(t)&&!JOa(t)};function XOa(e){return!!e&&typeof e=="object"}function JOa(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||jOa(e)}var UOa=typeof Symbol=="function"&&Symbol.for,KOa=UOa?Symbol.for("react.element"):60103;function jOa(e){return e.$$typeof===KOa}function zOa(e){return Array.isArray(e)?[]:{}}function g4e(e,t){return t.clone!==!1&&t.isMergeableObject(e)?TRe(zOa(e),e,t):e}function qOa(e,t,r){return e.concat(t).map(function(n){return g4e(n,r)})}function $Oa(e,t){if(!t.customMerge)return TRe;var r=t.customMerge(e);return typeof r=="function"?r:TRe}function e3a(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function s0i(e){return Object.keys(e).concat(e3a(e))}function o0i(e,t){try{return t in e}catch{return!1}}function t3a(e,t){return o0i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function r3a(e,t,r){var n={};return r.isMergeableObject(e)&&s0i(e).forEach(function(a){n[a]=g4e(e[a],r)}),s0i(t).forEach(function(a){t3a(e,a)||(o0i(e,a)&&r.isMergeableObject(t[a])?n[a]=$Oa(a,r)(e[a],t[a],r):n[a]=g4e(t[a],r))}),n}function TRe(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qOa,r.isMergeableObject=r.isMergeableObject||QOa,r.cloneUnlessOtherwiseSpecified=g4e;var n=Array.isArray(t),a=Array.isArray(e),o=n===a;return o?n?r.arrayMerge(e,t,r):r3a(e,t,r):g4e(t,r)}TRe.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,a){return TRe(n,a,r)},{})};var n3a=TRe;a0i.exports=n3a});var mRi=H((pNu,hRi)=>{hRi.exports=function(t,r){var n,a;typeof r=="function"?a=r:n=r;var o=Object.keys(t);return(n||[]).concat(o.sort(a)).reduce(function(l,A){return o.indexOf(A)!==-1&&(l[A]=t[A]),l},Object.create(null))}});var TRi=H((ENu,FEt)=>{"use strict";FEt.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");var t=e.match(/(?:\r?\n)/g)||[];if(t.length===0)return null;var r=t.filter(function(a){return a===`\r +`);return qC.from(r)};yRe.decodePax=function(t){let r={};for(;t.length;){let n=0;for(;n100;){let o=n.indexOf("/");if(o===-1)return null;a+=a?"/"+n.slice(0,o):n.slice(0,o),n=n.slice(o+1)}return qC.byteLength(n)>100||qC.byteLength(a)>155||t.linkname&&qC.byteLength(t.linkname)>100?null:(qC.write(r,n),qC.write(r,jae(t.mode&uOa,6),100),qC.write(r,jae(t.uid,6),108),qC.write(r,jae(t.gid,6),116),hOa(t.size,r,124),qC.write(r,jae(t.mtime.getTime()/1e3|0,11),136),r[156]=Iyt+fOa(t.type),t.linkname&&qC.write(r,t.linkname,157),qC.copy(e_i,r,c4e),qC.copy(aOa,r,Lwr),t.uname&&qC.write(r,t.uname,265),t.gname&&qC.write(r,t.gname,297),qC.write(r,jae(t.devmajor||0,6),329),qC.write(r,jae(t.devminor||0,6),337),a&&qC.write(r,a,345),qC.write(r,jae(r_i(r),6),148),r)};yRe.decode=function(t,r,n){let a=t[156]===0?0:t[156]-Iyt,o=_Re(t,0,100,r),l=Kae(t,100,8),A=Kae(t,108,8),f=Kae(t,116,8),I=Kae(t,124,12),C=Kae(t,136,12),b=pOa(a),E=t[157]===0?null:_Re(t,157,100,r),N=_Re(t,265,32),B=_Re(t,297,32),F=Kae(t,329,8),Q=Kae(t,337,8),X=r_i(t);if(X===8*32)return null;if(X!==Kae(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(gOa(t))t[345]&&(o=_Re(t,345,155,r)+"/"+o);else if(!AOa(t)){if(!n)throw new Error("Invalid tar header: unknown format.")}return a===0&&o&&o[o.length-1]==="/"&&(a=5),{name:o,mode:l,uid:A,gid:f,size:I,mtime:new Date(1e3*C),type:b,linkname:E,uname:N,gname:B,devmajor:F,devminor:Q,pax:null}};function gOa(e){return qC.equals(e_i,e.subarray(c4e,c4e+6))}function AOa(e){return qC.equals(cOa,e.subarray(c4e,c4e+6))&&qC.equals(lOa,e.subarray(Lwr,Lwr+2))}function dOa(e,t,r){return typeof e!="number"?r:(e=~~e,e>=t?t:e>=0||(e+=t,e>=0)?e:0)}function pOa(e){switch(e){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function fOa(e){switch(e){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function t_i(e,t,r,n){for(;rt?oOa.slice(0,t)+" ":sOa.slice(0,t-e.length)+e+" "}function IOa(e,t,r){t[r]=128;for(let n=11;n>0;n--)t[r+n]=e&255,e=Math.floor(e/256)}function hOa(e,t,r){e.toString(8).length>11?IOa(e,t,r):qC.write(t,jae(e,11),r)}function mOa(e){let t;if(e[0]===128)t=!0;else if(e[0]===255)t=!1;else return null;let r=[],n;for(n=e.length-1;n>0;n--){let l=e[n];t?r.push(l):r.push(255-l)}let a=0,o=r.length;for(n=0;n=Math.pow(10,r)&&r++,t+r+e}});var a_i=H((Y1u,o_i)=>{var{Writable:COa,Readable:_Oa,getStreamError:n_i}=Fwr(),yOa=Cwr(),i_i=fyt(),bRe=Vwr(),bOa=i_i.alloc(0),Wwr=class{constructor(){this.buffered=0,this.shifted=0,this.queue=new yOa,this._offset=0}push(t){this.buffered+=t.byteLength,this.queue.push(t)}shiftFirst(t){return this._buffered===0?null:this._next(t)}shift(t){if(t>this.buffered)return null;if(t===0)return bOa;let r=this._next(t);if(t===r.byteLength)return r;let n=[r];for(;(t-=r.byteLength)>0;)r=this._next(t),n.push(r);return i_i.concat(n)}_next(t){let r=this.queue.peek(),n=r.byteLength-this._offset;if(t>=n){let a=this._offset?r.subarray(this._offset,r.byteLength):r;return this.queue.shift(),this._offset=0,this.buffered-=n,this.shifted+=n,a}return this.buffered-=t,this.shifted+=t,r.subarray(this._offset,this._offset+=t)}},Owr=class extends _Oa{constructor(t,r,n){super(),this.header=r,this.offset=n,this._parent=t}_read(t){this.header.size===0&&this.push(null),this._parent._stream===this&&this._parent._update(),t(null)}_predestroy(){this._parent.destroy(n_i(this))}_detach(){this._parent._stream===this&&(this._parent._stream=null,this._parent._missing=s_i(this.header.size),this._parent._update())}_destroy(t){this._detach(),t(null)}},Mwr=class extends COa{constructor(t){super(t),t||(t={}),this._buffer=new Wwr,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=Pwr,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=t.filenameEncoding||"utf-8",this._allowUnknownFormat=!!t.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(t){if(this._locked=!1,t){this.destroy(t),this._continueWrite(t);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=bRe.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(t){return this._continueWrite(t),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}return this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory"?(this.emit("entry",this._header,this._createStream(),this._unlockBound),!0):(this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0)}_applyLongHeaders(){this._gnuLongPath&&(this._header.name=this._gnuLongPath,this._gnuLongPath=null),this._gnuLongLinkPath&&(this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null),this._pax&&(this._pax.path&&(this._header.name=this._pax.path),this._pax.linkpath&&(this._header.linkname=this._pax.linkpath),this._pax.size&&(this._header.size=parseInt(this._pax.size,10)),this._header.pax=this._pax,this._pax=null)}_decodeLongHeader(t){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=bRe.decodeLongPath(t,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=bRe.decodePax(t);break;case"pax-header":this._pax=this._paxGlobal===null?bRe.decodePax(t):Object.assign({},this._paxGlobal,bRe.decodePax(t));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=s_i(this._header.size);let t=this._buffer.shift(this._header.size);try{this._decodeLongHeader(t)}catch(r){return this._continueWrite(r),!1}return!0}_consumeStream(){let t=this._buffer.shiftFirst(this._missing);if(t===null)return!1;this._missing-=t.byteLength;let r=this._stream.push(t);return this._missing===0?(this._stream.push(null),r&&this._stream._detach(),r&&this._locked===!1):r}_createStream(){return new Owr(this,this._header,this._offset)}_update(){for(;this._buffer.buffered>0&&!this.destroying;){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let t=this._buffer.shiftFirst(this._missing);t!==null&&(this._missing-=t.byteLength);continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(t){let r=this._callback;this._callback=Pwr,r(t)}_write(t,r){this._callback=r,this._buffer.push(t),this._update()}_final(t){this._finished=this._missing===0&&this._buffer.buffered===0,t(this._finished?null:new Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(t){this._stream&&this._stream.destroy(n_i(this)),t(null)}[Symbol.asyncIterator](){let t=null,r=null,n=null,a=null,o=null,l=this;return this.on("entry",I),this.on("error",E=>{t=E}),this.on("close",C),{[Symbol.asyncIterator](){return this},next(){return new Promise(f)},return(){return b(null)},throw(E){return b(E)}};function A(E){if(!o)return;let N=o;o=null,N(E)}function f(E,N){if(t)return N(t);if(a){E({value:a,done:!1}),a=null;return}r=E,n=N,A(null),l._finished&&r&&(r({value:void 0,done:!0}),r=n=null)}function I(E,N,B){o=B,N.on("error",Pwr),r?(r({value:N,done:!1}),r=n=null):a=N}function C(){A(t),r&&(t?n(t):r({value:void 0,done:!0}),r=n=null)}function b(E){return l.destroy(E),A(E),new Promise((N,B)=>{if(l.destroyed)return N({value:void 0,done:!0});l.once("close",function(){E?B(E):N({value:void 0,done:!0})})})}}};o_i.exports=function(t){return new Mwr(t)};function Pwr(){}function s_i(e){return e&=511,e&&512-e}});var l_i=H((Q1u,Hwr)=>{var c_i={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{Hwr.exports=wt("fs").constants||c_i}catch{Hwr.exports=c_i}});var p_i=H((X1u,d_i)=>{var{Readable:EOa,Writable:SOa,getStreamError:u_i}=Fwr(),ome=fyt(),ERe=l_i(),hyt=Vwr(),vOa=493,BOa=420,g_i=ome.alloc(1024),Qwr=class extends SOa{constructor(t,r,n){super({mapWritable:TOa,eagerOpen:!0}),this.written=0,this.header=r,this._callback=n,this._linkname=null,this._isLinkname=r.type==="symlink"&&!r.linkname,this._isVoid=r.type!=="file"&&r.type!=="contiguous-file",this._finished=!1,this._pack=t,this._openCallback=null,this._pack._stream===null?this._pack._stream=this:this._pack._pending.push(this)}_open(t){this._openCallback=t,this._pack._stream===this&&this._continueOpen()}_continuePack(t){if(this._callback===null)return;let r=this._callback;this._callback=null,r(t)}_continueOpen(){this._pack._stream===null&&(this._pack._stream=this);let t=this._openCallback;if(this._openCallback=null,t!==null){if(this._pack.destroying)return t(new Error("pack stream destroyed"));if(this._pack._finalized)return t(new Error("pack stream is already finalized"));this._pack._stream=this,this._isLinkname||this._pack._encode(this.header),this._isVoid&&(this._finish(),this._continuePack(null)),t(null)}}_write(t,r){if(this._isLinkname)return this._linkname=this._linkname?ome.concat([this._linkname,t]):t,r(null);if(this._isVoid)return t.byteLength>0?r(new Error("No body allowed for this entry")):r();if(this.written+=t.byteLength,this._pack.push(t))return r();this._pack._drain=r}_finish(){this._finished||(this._finished=!0,this._isLinkname&&(this.header.linkname=this._linkname?ome.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header)),A_i(this._pack,this.header.size),this._pack._done(this))}_final(t){if(this.written!==this.header.size)return t(new Error("Size mismatch"));this._finish(),t(null)}_getError(){return u_i(this)||new Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(t){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),t()}},Xwr=class extends EOa{constructor(t){super(t),this._drain=Ywr,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(t,r,n){if(this._finalized||this.destroying)throw new Error("already finalized or destroyed");typeof r=="function"&&(n=r,r=null),n||(n=Ywr),(!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=wOa(t.mode)),t.mode||(t.mode=t.type==="directory"?vOa:BOa),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof r=="string"&&(r=ome.from(r));let a=new Qwr(this,t,n);return ome.isBuffer(r)?(t.size=r.byteLength,a.write(r),a.end(),a):(a._isVoid,a)}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(g_i),this.push(null))}_done(t){t===this._stream&&(this._stream=null,this._finalizing&&this.finalize(),this._pending.length&&this._pending.shift()._continueOpen())}_encode(t){if(!t.pax){let r=hyt.encode(t);if(r){this.push(r);return}}this._encodePax(t)}_encodePax(t){let r=hyt.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),n={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:r.byteLength,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(hyt.encode(n)),this.push(r),A_i(this,r.byteLength),n.size=t.size,n.type=t.type,this.push(hyt.encode(n))}_doDrain(){let t=this._drain;this._drain=Ywr,t()}_predestroy(){let t=u_i(this);for(this._stream&&this._stream.destroy(t);this._pending.length;){let r=this._pending.shift();r.destroy(t),r._continueOpen()}this._doDrain()}_read(t){this._doDrain(),t()}};d_i.exports=function(t){return new Xwr(t)};function wOa(e){switch(e&ERe.S_IFMT){case ERe.S_IFBLK:return"block-device";case ERe.S_IFCHR:return"character-device";case ERe.S_IFDIR:return"directory";case ERe.S_IFIFO:return"fifo";case ERe.S_IFLNK:return"symlink"}return"file"}function Ywr(){}function A_i(e,t){t&=511,t&&e.push(g_i.subarray(0,512-t))}function TOa(e){return ome.isBuffer(e)?e:ome.from(e)}});var f_i=H(Jwr=>{Jwr.extract=a_i();Jwr.pack=p_i()});var z_i=H((k2u,j_i)=>{"use strict";var VOa=e7t(),BRe=z6t();function K_i(e){if(/^\d{3,4}$/.test(e)){let r=/(\d{1,2})(\d{2})/.exec(e);return{major:0,minor:parseInt(r[1],10),patch:parseInt(r[2],10)}}let t=(e||"").split(".").map(r=>parseInt(r,10));return{major:t[0],minor:t[1],patch:t[2]}}function iTr(e){let{env:t}=process;if("FORCE_HYPERLINK"in t)return!(t.FORCE_HYPERLINK.length>0&&parseInt(t.FORCE_HYPERLINK,10)===0);if(BRe("no-hyperlink")||BRe("no-hyperlinks")||BRe("hyperlink=false")||BRe("hyperlink=never"))return!1;if(BRe("hyperlink=true")||BRe("hyperlink=always")||"NETLIFY"in t)return!0;if(!VOa.supportsColor(e)||e&&!e.isTTY||process.platform==="win32"||"CI"in t||"TEAMCITY_VERSION"in t)return!1;if("TERM_PROGRAM"in t){let r=K_i(t.TERM_PROGRAM_VERSION);switch(t.TERM_PROGRAM){case"iTerm.app":return r.major===3?r.minor>=1:r.major>3;case"WezTerm":return r.major>=20200620;case"vscode":return r.major>1||r.major===1&&r.minor>=72}}if("VTE_VERSION"in t){if(t.VTE_VERSION==="0.50.0")return!1;let r=K_i(t.VTE_VERSION);return r.major>0||r.minor>=50}return!1}j_i.exports={supportsHyperlink:iTr,stdout:iTr(process.stdout),stderr:iTr(process.stderr)}});var oTr=H((sSu,a0i)=>{"use strict";var QOa=function(t){return XOa(t)&&!JOa(t)};function XOa(e){return!!e&&typeof e=="object"}function JOa(e){var t=Object.prototype.toString.call(e);return t==="[object RegExp]"||t==="[object Date]"||jOa(e)}var UOa=typeof Symbol=="function"&&Symbol.for,KOa=UOa?Symbol.for("react.element"):60103;function jOa(e){return e.$$typeof===KOa}function zOa(e){return Array.isArray(e)?[]:{}}function g4e(e,t){return t.clone!==!1&&t.isMergeableObject(e)?TRe(zOa(e),e,t):e}function qOa(e,t,r){return e.concat(t).map(function(n){return g4e(n,r)})}function $Oa(e,t){if(!t.customMerge)return TRe;var r=t.customMerge(e);return typeof r=="function"?r:TRe}function e3a(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(t){return Object.propertyIsEnumerable.call(e,t)}):[]}function s0i(e){return Object.keys(e).concat(e3a(e))}function o0i(e,t){try{return t in e}catch{return!1}}function t3a(e,t){return o0i(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}function r3a(e,t,r){var n={};return r.isMergeableObject(e)&&s0i(e).forEach(function(a){n[a]=g4e(e[a],r)}),s0i(t).forEach(function(a){t3a(e,a)||(o0i(e,a)&&r.isMergeableObject(t[a])?n[a]=$Oa(a,r)(e[a],t[a],r):n[a]=g4e(t[a],r))}),n}function TRe(e,t,r){r=r||{},r.arrayMerge=r.arrayMerge||qOa,r.isMergeableObject=r.isMergeableObject||QOa,r.cloneUnlessOtherwiseSpecified=g4e;var n=Array.isArray(t),a=Array.isArray(e),o=n===a;return o?n?r.arrayMerge(e,t,r):r3a(e,t,r):g4e(t,r)}TRe.all=function(t,r){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce(function(n,a){return TRe(n,a,r)},{})};var n3a=TRe;a0i.exports=n3a});var mRi=H((fNu,hRi)=>{hRi.exports=function(t,r){var n,a;typeof r=="function"?a=r:n=r;var o=Object.keys(t);return(n||[]).concat(o.sort(a)).reduce(function(l,A){return o.indexOf(A)!==-1&&(l[A]=t[A]),l},Object.create(null))}});var TRi=H((SNu,FEt)=>{"use strict";FEt.exports=function(e){if(typeof e!="string")throw new TypeError("Expected a string");var t=e.match(/(?:\r?\n)/g)||[];if(t.length===0)return null;var r=t.filter(function(a){return a===`\r `}).length,n=t.length-r;return r>n?`\r `:` `};FEt.exports.graceful=function(e){return FEt.exports(e)||` -`}});var Skr=H((SNu,RRi)=>{"use strict";var Xlc=wt("os");RRi.exports=Xlc.homedir||function(){var t=process.env.HOME,r=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return process.platform==="win32"?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||t||null:process.platform==="darwin"?t||(r?"/Users/"+r:null):process.platform==="linux"?t||(process.getuid()===0?"/root":r?"/home/"+r:null):t||null}});var vkr=H((vNu,NRi)=>{NRi.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(r,n){return n};var t=new Error().stack;return Error.prepareStackTrace=e,t[2].getFileName()}});var DRi=H((BNu,JJe)=>{"use strict";var Jlc=process.platform==="win32",Ulc=/^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/,Bkr={};function Klc(e){return Ulc.exec(e).slice(1)}Bkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=Klc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0]===t[1]?t[0]:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};var jlc=/^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/,wkr={};function zlc(e){return jlc.exec(e).slice(1)}wkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=zlc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};Jlc?JJe.exports=Bkr.parse:JJe.exports=wkr.parse;JJe.exports.posix=wkr.parse;JJe.exports.win32=Bkr.parse});var Tkr=H((wNu,FRi)=>{var GRi=wt("path"),kRi=GRi.parse||DRi(),xRi=function(t,r){var n="/";/^([A-Za-z]:)/.test(t)?n="":/^\\\\/.test(t)&&(n="\\\\");for(var a=[t],o=kRi(t);o.dir!==a[a.length-1];)a.push(o.dir),o=kRi(o.dir);return a.reduce(function(l,A){return l.concat(r.map(function(f){return GRi.resolve(n,A,f)}))},[])};FRi.exports=function(t,r,n){var a=r&&r.moduleDirectory?[].concat(r.moduleDirectory):["node_modules"];if(r&&typeof r.paths=="function")return r.paths(n,t,function(){return xRi(t,a)},r);var o=xRi(t,a);return r&&r.paths?o.concat(r.paths):o}});var Rkr=H((TNu,ZRi)=>{var UJe=wt("path");ZRi.exports=function(e,t){if(t=t||{},t.forceNodeResolution||!process.versions.pnp)return t;let{findPnpApi:r}=wt("module"),n=(I,C)=>{let b=I.match(/^((?:@[^/]+\/)?[^/]+)(\/.*)?/);if(!b)throw new Error(`Assertion failed: Expected the "resolve" package to call the "paths" callback with package names only (got "${I}")`);C.charAt(C.length-1)!=="/"&&(C=UJe.join(C,"/"));let E=r(C);if(E===null)return;let N;try{N=E.resolveToUnqualified(`${b[1]}/package.json`,C,{considerBuiltins:!1})}catch{return null}if(N===null)throw new Error(`Assertion failed: The resolution thinks that "${b[1]}" is a Node builtin`);let B=UJe.dirname(N),F=typeof b[2]<"u"?UJe.join(B,b[2]):B;return{packagePath:B,unqualifiedPath:F}},a=(I,C)=>{for(let b=0;b{let N=[C].concat(o),B=a(I,N);return B==null?b():[B.unqualifiedPath]},A=(I,C,b,E)=>{let N=[C].concat(o),B=a(I,N);if(B==null)return b().concat(o);let F=UJe.dirname(B.packagePath);return I.match(/^@[^/]+\//)&&(F=UJe.dirname(F)),[F]},f=!1;return t.__skipPackageIterator||(t.packageIterator=function(I,C,b,E){f=!0;try{return l(I,C,b,E)}finally{f=!1}}),t.paths=function(I,C,b,E){return f?b().concat(o):A(I,C,b,E)},t}});var PRi=H((RNu,VRi)=>{"use strict";var qlc="Function.prototype.bind called on incompatible ",$lc=Object.prototype.toString,euc=Math.max,tuc="[object Function]",LRi=function(t,r){for(var n=[],a=0;a{"use strict";var iuc=PRi();WRi.exports=Function.prototype.bind||iuc});var HRi=H((DNu,MRi)=>{"use strict";var suc=Function.prototype.call,ouc=Object.prototype.hasOwnProperty,auc=ORi();MRi.exports=auc.call(suc,ouc)});var YRi=H((kNu,cuc)=>{cuc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],"node:sea":[">= 20.12 && < 21",">= 21.7"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"test/mock_loader":">= 22.3 && < 22.7","node:test/mock_loader":">= 22.3 && < 22.7","node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var KJe=H((xNu,JRi)=>{"use strict";var luc=HRi();function uuc(e,t){for(var r=e.split("."),n=t.split(" "),a=n.length>1?n[0]:"=",o=(n.length>1?n[1]:n[0]).split("."),l=0;l<3;++l){var A=parseInt(r[l]||0,10),f=parseInt(o[l]||0,10);if(A!==f)return a==="<"?A="?A>=f:!1}return a===">="}function QRi(e,t){var r=t.split(/ ?&& ?/);if(r.length===0)return!1;for(var n=0;n"u"?process.versions&&process.versions.node:e;if(typeof r!="string")throw new TypeError(typeof e>"u"?"Unable to determine current node version":"If provided, a valid node version is required");if(t&&typeof t=="object"){for(var n=0;n{var aCe=wt("fs"),Auc=Skr(),pT=wt("path"),duc=vkr(),puc=Tkr(),fuc=Rkr(),Iuc=KJe(),huc=process.platform!=="win32"&&aCe.realpath&&typeof aCe.realpath.native=="function"?aCe.realpath.native:aCe.realpath,URi=Auc(),muc=function(){return[pT.join(URi,".node_modules"),pT.join(URi,".node_libraries")]},Cuc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isFile()||a.isFIFO())})},_uc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isDirectory())})},yuc=function(t,r){huc(t,function(n,a){n&&n.code!=="ENOENT"?r(n):r(null,n?t:a)})},jJe=function(t,r,n,a){n&&n.preserveSymlinks===!1?t(r,a):a(null,r)},buc=function(t,r,n){t(r,function(a,o){if(a)n(a);else try{var l=JSON.parse(o);n(null,l)}catch{n(null)}})},Euc=function(t,r,n){for(var a=puc(r,n,t),o=0;o{Suc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var tNi=H((ZNu,eNi)=>{"use strict";var vuc=KJe(),qRi=zRi(),$Ri={};for(ZEt in qRi)Object.prototype.hasOwnProperty.call(qRi,ZEt)&&($Ri[ZEt]=vuc(ZEt));var ZEt;eNi.exports=$Ri});var nNi=H((LNu,rNi)=>{var Buc=KJe();rNi.exports=function(t){return Buc(t)}});var oNi=H((VNu,sNi)=>{var wuc=KJe(),cCe=wt("fs"),xG=wt("path"),Tuc=Skr(),Ruc=vkr(),Nuc=Tkr(),Duc=Rkr(),kuc=process.platform!=="win32"&&cCe.realpathSync&&typeof cCe.realpathSync.native=="function"?cCe.realpathSync.native:cCe.realpathSync,iNi=Tuc(),xuc=function(){return[xG.join(iNi,".node_modules"),xG.join(iNi,".node_libraries")]},Guc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&(r.isFile()||r.isFIFO())},Fuc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&r.isDirectory()},Zuc=function(t){try{return kuc(t)}catch(r){if(r.code!=="ENOENT")throw r}return t},zJe=function(t,r,n){return n&&n.preserveSymlinks===!1?t(r):r},Luc=function(t,r){var n=t(r);try{var a=JSON.parse(n);return a}catch{}},Vuc=function(t,r,n){for(var a=Nuc(r,n,t),o=0;o{var LEt=jRi();LEt.core=tNi();LEt.isCore=nNi();LEt.sync=oNi();aNi.exports=LEt});var uNi=H((WNu,lNi)=>{"use strict";var{builtinModules:Puc}=wt("module"),Wuc=["sys"];lNi.exports=(Puc||(process.binding?Object.keys(process.binding("natives")):[])||[]).filter(e=>!/^_|^(internal|v8|node-inspect)\/|\//.test(e)&&!Wuc.includes(e)).sort()});var dNi=H((ONu,ANi)=>{"use strict";var Ouc=uNi(),Muc=new Set(Ouc),gNi="node:";ANi.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");e.startsWith(gNi)&&(e=e.slice(gNi.length));let t=e.indexOf("/");return t!==-1&&t!==e.length-1&&(e=e.slice(0,t)),Muc.has(e)}});var INi=H(Nkr=>{"use strict";Object.defineProperty(Nkr,"__esModule",{value:!0});var Huc=wt("path"),Yuc=cNi(),Quc=dNi();function Xuc(e){if(e.length===1){let r=e;return n=>{let a=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return r(a)}}let t=e;return(r,n)=>{let a=r.defaultMember||r.namespaceMember||r.namedMembers[0].alias,o=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return t(a,o)}}function Juc(e){if(e.length===1){let r=e;return n=>{let a=n.moduleName;return r(a)}}let t=e;return(r,n)=>{let a=r.moduleName,o=n.moduleName;return t(a,o)}}function Uuc(e){return(t,r)=>e(t.name,r.name)}function Kuc(e){return(t,r)=>e(t.alias,r.alias)}function juc(){return!0}function zuc(e){return t=>!e(t)}function quc(...e){return t=>e.every(r=>r(t))}function $uc(...e){return t=>e.some(r=>r(t))}function qJe(e){return!!e.defaultMember}function XNe(e){return!!e.namespaceMember}function $Je(e){return e.namedMembers.length>0}function pNi(e){return qJe(e)||XNe(e)||$Je(e)}function egc(e){return!pNi(e)}function tgc(e){return qJe(e)&&!XNe(e)&&!$Je(e)}function rgc(e){return!qJe(e)&&XNe(e)&&!$Je(e)}function ngc(e){return!qJe(e)&&!XNe(e)&&$Je(e)}function igc(e){return e.namedMembers.length+(e.defaultMember?1:0)+(e.namespaceMember?1:0)>1}function sgc(e){return e.namedMembers.length+(e.defaultMember?1:0)===1&&!XNe(e)}function ogc(e){return Quc(e.moduleName)}function fNi(e){return e.moduleName.indexOf(".")===0}function agc(e){return!fNi(e)}function cgc(e){return t=>{try{return Yuc.sync(t.moduleName,{basedir:Huc.dirname(e)}).includes("node_modules")}catch{return!1}}}function lgc(e){return e.moduleName.startsWith("@")}function ugc(e){let t=e.charAt(0);return e.charAt(0)===t.toUpperCase()}function ggc(e){let t=e.charAt(0);return e.charAt(0)===t.toLowerCase()}function Agc(e){return!!e.match(/^[A-Za-z0-9]/)}function dgc(...e){return t=>e.some(r=>t.startsWith(r))}function pgc(e,t){return e.localeCompare(t,"en")}function fgc(e,t){return et?1:0}function Igc(e,t){let r=/\.+(?=\/)/g,n=(e.moduleName.match(r)||[]).join("").length,a=(t.moduleName.match(r)||[]).join("").length;return n>a?-1:n{"use strict";Object.defineProperty(eUe,"__esModule",{value:!0});var mgc=TRi(),Cgc=INi();function _gc(e,t,r,n,a){let o,l=typeof t=="string"?wt(t):t;return typeof r=="string"?(o=wt(r),o.default&&(o=o.default)):o=r,hNi(e,l,o,n,a)}eUe.default=_gc;function hNi(e,t,r,n,a){let o=Egc(r,n,a||{})(Cgc.default),l=o.map(()=>[]),A=t.parseImports(e,{file:n});if(A.length===0)return{code:e,changes:[]};let f=mgc.graceful(e),I=[];for(let fe of A){let ue=fe,de=o.findIndex(be=>(ue=ygc(fe,be.sortNamedMembers),!!be.match&&be.match(ue)));de!==-1&&l[de].push(ue)}l.forEach((fe,ue)=>{let{sort:de}=o[ue];if(!de)return;if(!Array.isArray(de)){fe.sort(de);return}let be=de;if(be.length===0)return;let Se=(De,k)=>{let et=0,ct=0;for(;ct===0&&be[et];)ct=be[et](De,k),et+=1;return ct};fe.sort(Se)});let C="",b=!1;l.forEach((fe,ue)=>{fe.length>0&&b&&(C+=f,b=!1),fe.forEach(de=>{let be=t.formatImport(e,de,f);C+=be+f}),o[ue].separator&&C!==""&&(b=!0)});let E=e;A.slice().reverse().forEach(fe=>{let ue=fe.end;E.charAt(fe.end).match(/\s/)&&(ue+=1),I.push({start:fe.start,end:ue,code:"",note:"import-remove"}),E=E.slice(0,fe.start)+E.slice(ue,e.length)});let{start:N}=A[0],B=e.substring(0,N),F=E.substring(N,E.length),Q=B.length,X=F.length,ae,ne;B=B.replace(/\s+$/,fe=>(ae={start:N-fe.length,end:N,code:f+f,note:"before-collapse"},f+f)),F=F.replace(/^\s+/,fe=>(ne={start:N,end:N+fe.length,code:f,note:"after-collapse"},f)),B.match(/^\s+$/)&&(ae={start:N-Q,end:N,code:"",note:"before-trim"},B=""),F.match(/^\s+$/)&&(ne={start:N,end:N+X,code:"",note:"after-trim"},F=""),ne&&I.push(ne),ae&&I.push(ae);let ce={start:B.length,end:B.length,code:C,note:"imports"};return I.push(ce),e===B+C+F?{code:e,changes:[]}:{code:B+C+F,changes:I}}eUe.sortImports=hNi;function ygc(e,t){let r=t;if(!r)return e;if(!Array.isArray(r)){let l=Object.assign({},e);return l.namedMembers=[...e.namedMembers].sort(r),l}let n=r;if(n.length===0)return e;let a=(l,A)=>{let f=0,I=0;for(;I===0&&n[f];)I=n[f](l,A),f+=1;return I},o=Object.assign({},e);return o.namedMembers=[...e.namedMembers].sort(a),o}function bgc(e,t){let r=e;for(let n of t)r=r.slice(0,n.start)+n.code+r.slice(n.end,r.length);return r}eUe.applyChanges=bgc;function Egc(e,t,r){return n=>{let a=[{separator:!0},{match:n.always}];return e(n,t,r).concat(a)}}});var XNi=H((jDu,QNi)=>{"use strict";var lCe=class e extends Error{constructor(t,r,n){super("[ParserError] "+t,r,n),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}},WEt=class{constructor(t){this.parser=t,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null}},rUe=class{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new WEt(this.parseStart)}parse(t){if(t.length===0||t.length==null)return;this._buf=String(t),this.ii=-1,this.char=-1;let r;for(;r===!1||this.nextChar();)r=this.runOne();this._buf=null}nextChar(){return this.char===10&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer()}haveBuffer(){return this.ii{"use strict";JNi.exports=e=>{let t=new Date(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var OEt=H((qDu,KNi)=>{"use strict";KNi.exports=(e,t)=>{for(t=String(t);t.length{"use strict";var JNe=OEt(),Gkr=class extends Date{constructor(t){super(t+"Z"),this.isFloating=!0}toISOString(){let t=`${this.getUTCFullYear()}-${JNe(2,this.getUTCMonth()+1)}-${JNe(2,this.getUTCDate())}`,r=`${JNe(2,this.getUTCHours())}:${JNe(2,this.getUTCMinutes())}:${JNe(2,this.getUTCSeconds())}.${JNe(3,this.getUTCMilliseconds())}`;return`${t}T${r}`}};jNi.exports=e=>{let t=new Gkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var eDi=H((eku,$Ni)=>{"use strict";var qNi=OEt(),Xgc=global.Date,Fkr=class extends Xgc{constructor(t){super(t),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${qNi(2,this.getUTCMonth()+1)}-${qNi(2,this.getUTCDate())}`}};$Ni.exports=e=>{let t=new Fkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var rDi=H((tku,tDi)=>{"use strict";var MEt=OEt(),Zkr=class extends Date{constructor(t){super(`0000-01-01T${t}Z`),this.isTime=!0}toISOString(){return`${MEt(2,this.getUTCHours())}:${MEt(2,this.getUTCMinutes())}:${MEt(2,this.getUTCSeconds())}.${MEt(3,this.getUTCMilliseconds())}`}};tDi.exports=e=>{let t=new Zkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var HEt=H((exports,module)=>{"use strict";module.exports=makeParserClass(XNi());module.exports.makeParserClass=makeParserClass;var TomlError=class e extends Error{constructor(t){super(t),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,e),this.fromTOML=!0,this.wrapped=null}};TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t};module.exports.TomlError=TomlError;var createDateTime=UNi(),createDateTimeFloat=zNi(),createDate=eDi(),createTime=rDi(),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:` -`,[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}var _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return hasOwnProperty.call(e,t)?!0:(t==="__proto__"&&defineProperty(e,"__proto__",descriptor),!1)}var INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_TABLE}var TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return e===null||typeof e!="object"?!1:e[_type]===TABLE}var _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_LIST}var LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return e===null||typeof e!="object"?!1:e[_type]===LIST}var _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(e){}var _inspect=_custom||"inspect",BoxedBigInt=class{constructor(t){try{this.value=global.BigInt.asIntN(64,t)}catch{this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return this.value===null}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}},INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return Object.is(t,-0)&&(t=0),global.BigInt&&!Number.isSafeInteger(t)?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return e===null||typeof e!="object"?!1:e[_type]===INTEGER}var FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return e===null||typeof e!="object"?!1:e[_type]===FLOAT}function tomlType(e){let t=typeof e;if(t==="object"){if(e===null)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(n){let a=this.ctx,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(n){return this.state.resultTable?this.state.resultTable.push(n):this.state.resultTable=[n],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){if(this.char===CHAR_PERIOD)return this.next(this.parseAssignKeywordPostDot);if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.goto(this.parseAssignEqual)}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(n){return this.returnNow({key:this.state.resultTable,value:n})}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar())}parseTableOrList(){if(this.char===CHAR_LSQB)this.next(this.parseList);else return this.goto(this.parseTable)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)&&(!isTable(this.ctx[n])||this.ctx[n][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[n]=this.ctx[n]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else throw this.error(new TomlError("Can't redefine existing key"));return this.next(this.parseTableNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)||(this.ctx[n]=List()),isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[n])){let a=Table();this.ctx[n].push(a),this.ctx=a}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else{if(isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline table"));if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else throw this.error(new TomlError("Can't redefine an existing key"))}return this.next(this.parseListNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(n){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(n){return this.returnNow(n)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return this.state.buf==="-"?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else{if(this.state.buf.length===0)throw this.error(new TomlError("Empty bare keys are not allowed"));return this.returnNow()}}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}recordEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}errorControlCharInString(){let n="\\u00";return this.char<16&&(n+="0"),n+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${n} instead`))}recordMultiEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(n){try{let a=parseInt(n,16);if(a>=SURROGATE_FIRST&&a<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(a))}catch(a){throw this.error(TomlError.wrap(a))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder):this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_HYPHEN?this.goto(this.parseDateTime):this.char===CHAR_COLON?this.goto(this.parseOnlyTimeHour):this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}else{if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}}parseNumberBaseOrDateTime(){return this.char===CHAR_b?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin)):this.char===CHAR_o?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct)):this.char===CHAR_x?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex)):this.char===CHAR_PERIOD?this.goto(this.parseNumberInteger):isDigit(this.char)?this.goto(this.parseDateTimeOnly):this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}else{if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);throw this.error(new TomlError("Incomplete datetime"))}}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);throw this.error(new TomlError("Incomplete time"))}}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char===CHAR_PERIOD)this.state.buf="",this.next(this.parseOnlyTimeFraction);else return this.return(createTime(this.state.result))}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(this.state.buf.length===0)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else{if(this.state.buf.length===1)throw this.error(new TomlError("Expected digit in milliseconds"));if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){if(this.char===CHAR_t)return this.consume(),this.next(this.parseTrue_r);if(this.char===CHAR_f)return this.consume(),this.next(this.parseFalse_a)}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(n){if(this.state.resultArr){let a=this.state.resultArr[_contentType],o=tomlType(n);if(a!==o)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${a} and ${o}`))}else this.state.resultArr=InlineList(tomlType(n));return isFloat(n)||isInteger(n)?this.state.resultArr.push(n.valueOf()):this.state.resultArr.push(n),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(n){let a=this.state.resultTable,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}}return t}});var YEt=H((rku,nDi)=>{"use strict";nDi.exports=Jgc;function Jgc(e,t){if(e.pos==null||e.line==null)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: +`}});var Skr=H((vNu,RRi)=>{"use strict";var Xlc=wt("os");RRi.exports=Xlc.homedir||function(){var t=process.env.HOME,r=process.env.LOGNAME||process.env.USER||process.env.LNAME||process.env.USERNAME;return process.platform==="win32"?process.env.USERPROFILE||process.env.HOMEDRIVE+process.env.HOMEPATH||t||null:process.platform==="darwin"?t||(r?"/Users/"+r:null):process.platform==="linux"?t||(process.getuid()===0?"/root":r?"/home/"+r:null):t||null}});var vkr=H((BNu,NRi)=>{NRi.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(r,n){return n};var t=new Error().stack;return Error.prepareStackTrace=e,t[2].getFileName()}});var DRi=H((wNu,JJe)=>{"use strict";var Jlc=process.platform==="win32",Ulc=/^(((?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?[\\\/]?)(?:[^\\\/]*[\\\/])*)((\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))[\\\/]*$/,Bkr={};function Klc(e){return Ulc.exec(e).slice(1)}Bkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=Klc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0]===t[1]?t[0]:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};var jlc=/^((\/?)(?:[^\/]*\/)*)((\.{1,2}|[^\/]+?|)(\.[^.\/]*|))[\/]*$/,wkr={};function zlc(e){return jlc.exec(e).slice(1)}wkr.parse=function(e){if(typeof e!="string")throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=zlc(e);if(!t||t.length!==5)throw new TypeError("Invalid path '"+e+"'");return{root:t[1],dir:t[0].slice(0,-1),base:t[2],ext:t[4],name:t[3]}};Jlc?JJe.exports=Bkr.parse:JJe.exports=wkr.parse;JJe.exports.posix=wkr.parse;JJe.exports.win32=Bkr.parse});var Tkr=H((TNu,FRi)=>{var GRi=wt("path"),kRi=GRi.parse||DRi(),xRi=function(t,r){var n="/";/^([A-Za-z]:)/.test(t)?n="":/^\\\\/.test(t)&&(n="\\\\");for(var a=[t],o=kRi(t);o.dir!==a[a.length-1];)a.push(o.dir),o=kRi(o.dir);return a.reduce(function(l,A){return l.concat(r.map(function(f){return GRi.resolve(n,A,f)}))},[])};FRi.exports=function(t,r,n){var a=r&&r.moduleDirectory?[].concat(r.moduleDirectory):["node_modules"];if(r&&typeof r.paths=="function")return r.paths(n,t,function(){return xRi(t,a)},r);var o=xRi(t,a);return r&&r.paths?o.concat(r.paths):o}});var Rkr=H((RNu,ZRi)=>{var UJe=wt("path");ZRi.exports=function(e,t){if(t=t||{},t.forceNodeResolution||!process.versions.pnp)return t;let{findPnpApi:r}=wt("module"),n=(I,C)=>{let b=I.match(/^((?:@[^/]+\/)?[^/]+)(\/.*)?/);if(!b)throw new Error(`Assertion failed: Expected the "resolve" package to call the "paths" callback with package names only (got "${I}")`);C.charAt(C.length-1)!=="/"&&(C=UJe.join(C,"/"));let E=r(C);if(E===null)return;let N;try{N=E.resolveToUnqualified(`${b[1]}/package.json`,C,{considerBuiltins:!1})}catch{return null}if(N===null)throw new Error(`Assertion failed: The resolution thinks that "${b[1]}" is a Node builtin`);let B=UJe.dirname(N),F=typeof b[2]<"u"?UJe.join(B,b[2]):B;return{packagePath:B,unqualifiedPath:F}},a=(I,C)=>{for(let b=0;b{let N=[C].concat(o),B=a(I,N);return B==null?b():[B.unqualifiedPath]},A=(I,C,b,E)=>{let N=[C].concat(o),B=a(I,N);if(B==null)return b().concat(o);let F=UJe.dirname(B.packagePath);return I.match(/^@[^/]+\//)&&(F=UJe.dirname(F)),[F]},f=!1;return t.__skipPackageIterator||(t.packageIterator=function(I,C,b,E){f=!0;try{return l(I,C,b,E)}finally{f=!1}}),t.paths=function(I,C,b,E){return f?b().concat(o):A(I,C,b,E)},t}});var PRi=H((NNu,VRi)=>{"use strict";var qlc="Function.prototype.bind called on incompatible ",$lc=Object.prototype.toString,euc=Math.max,tuc="[object Function]",LRi=function(t,r){for(var n=[],a=0;a{"use strict";var iuc=PRi();WRi.exports=Function.prototype.bind||iuc});var HRi=H((kNu,MRi)=>{"use strict";var suc=Function.prototype.call,ouc=Object.prototype.hasOwnProperty,auc=ORi();MRi.exports=auc.call(suc,ouc)});var YRi=H((xNu,cuc)=>{cuc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],"node:sea":[">= 20.12 && < 21",">= 21.7"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"test/mock_loader":">= 22.3 && < 22.7","node:test/mock_loader":">= 22.3 && < 22.7","node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var KJe=H((GNu,JRi)=>{"use strict";var luc=HRi();function uuc(e,t){for(var r=e.split("."),n=t.split(" "),a=n.length>1?n[0]:"=",o=(n.length>1?n[1]:n[0]).split("."),l=0;l<3;++l){var A=parseInt(r[l]||0,10),f=parseInt(o[l]||0,10);if(A!==f)return a==="<"?A="?A>=f:!1}return a===">="}function QRi(e,t){var r=t.split(/ ?&& ?/);if(r.length===0)return!1;for(var n=0;n"u"?process.versions&&process.versions.node:e;if(typeof r!="string")throw new TypeError(typeof e>"u"?"Unable to determine current node version":"If provided, a valid node version is required");if(t&&typeof t=="object"){for(var n=0;n{var aCe=wt("fs"),Auc=Skr(),pT=wt("path"),duc=vkr(),puc=Tkr(),fuc=Rkr(),Iuc=KJe(),huc=process.platform!=="win32"&&aCe.realpath&&typeof aCe.realpath.native=="function"?aCe.realpath.native:aCe.realpath,URi=Auc(),muc=function(){return[pT.join(URi,".node_modules"),pT.join(URi,".node_libraries")]},Cuc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isFile()||a.isFIFO())})},_uc=function(t,r){aCe.stat(t,function(n,a){return n?n.code==="ENOENT"||n.code==="ENOTDIR"?r(null,!1):r(n):r(null,a.isDirectory())})},yuc=function(t,r){huc(t,function(n,a){n&&n.code!=="ENOENT"?r(n):r(null,n?t:a)})},jJe=function(t,r,n,a){n&&n.preserveSymlinks===!1?t(r,a):a(null,r)},buc=function(t,r,n){t(r,function(a,o){if(a)n(a);else try{var l=JSON.parse(o);n(null,l)}catch{n(null)}})},Euc=function(t,r,n){for(var a=puc(r,n,t),o=0;o{Suc.exports={assert:!0,"node:assert":[">= 14.18 && < 15",">= 16"],"assert/strict":">= 15","node:assert/strict":">= 16",async_hooks:">= 8","node:async_hooks":[">= 14.18 && < 15",">= 16"],buffer_ieee754:">= 0.5 && < 0.9.7",buffer:!0,"node:buffer":[">= 14.18 && < 15",">= 16"],child_process:!0,"node:child_process":[">= 14.18 && < 15",">= 16"],cluster:">= 0.5","node:cluster":[">= 14.18 && < 15",">= 16"],console:!0,"node:console":[">= 14.18 && < 15",">= 16"],constants:!0,"node:constants":[">= 14.18 && < 15",">= 16"],crypto:!0,"node:crypto":[">= 14.18 && < 15",">= 16"],_debug_agent:">= 1 && < 8",_debugger:"< 8",dgram:!0,"node:dgram":[">= 14.18 && < 15",">= 16"],diagnostics_channel:[">= 14.17 && < 15",">= 15.1"],"node:diagnostics_channel":[">= 14.18 && < 15",">= 16"],dns:!0,"node:dns":[">= 14.18 && < 15",">= 16"],"dns/promises":">= 15","node:dns/promises":">= 16",domain:">= 0.7.12","node:domain":[">= 14.18 && < 15",">= 16"],events:!0,"node:events":[">= 14.18 && < 15",">= 16"],freelist:"< 6",fs:!0,"node:fs":[">= 14.18 && < 15",">= 16"],"fs/promises":[">= 10 && < 10.1",">= 14"],"node:fs/promises":[">= 14.18 && < 15",">= 16"],_http_agent:">= 0.11.1","node:_http_agent":[">= 14.18 && < 15",">= 16"],_http_client:">= 0.11.1","node:_http_client":[">= 14.18 && < 15",">= 16"],_http_common:">= 0.11.1","node:_http_common":[">= 14.18 && < 15",">= 16"],_http_incoming:">= 0.11.1","node:_http_incoming":[">= 14.18 && < 15",">= 16"],_http_outgoing:">= 0.11.1","node:_http_outgoing":[">= 14.18 && < 15",">= 16"],_http_server:">= 0.11.1","node:_http_server":[">= 14.18 && < 15",">= 16"],http:!0,"node:http":[">= 14.18 && < 15",">= 16"],http2:">= 8.8","node:http2":[">= 14.18 && < 15",">= 16"],https:!0,"node:https":[">= 14.18 && < 15",">= 16"],inspector:">= 8","node:inspector":[">= 14.18 && < 15",">= 16"],"inspector/promises":[">= 19"],"node:inspector/promises":[">= 19"],_linklist:"< 8",module:!0,"node:module":[">= 14.18 && < 15",">= 16"],net:!0,"node:net":[">= 14.18 && < 15",">= 16"],"node-inspect/lib/_inspect":">= 7.6 && < 12","node-inspect/lib/internal/inspect_client":">= 7.6 && < 12","node-inspect/lib/internal/inspect_repl":">= 7.6 && < 12",os:!0,"node:os":[">= 14.18 && < 15",">= 16"],path:!0,"node:path":[">= 14.18 && < 15",">= 16"],"path/posix":">= 15.3","node:path/posix":">= 16","path/win32":">= 15.3","node:path/win32":">= 16",perf_hooks:">= 8.5","node:perf_hooks":[">= 14.18 && < 15",">= 16"],process:">= 1","node:process":[">= 14.18 && < 15",">= 16"],punycode:">= 0.5","node:punycode":[">= 14.18 && < 15",">= 16"],querystring:!0,"node:querystring":[">= 14.18 && < 15",">= 16"],readline:!0,"node:readline":[">= 14.18 && < 15",">= 16"],"readline/promises":">= 17","node:readline/promises":">= 17",repl:!0,"node:repl":[">= 14.18 && < 15",">= 16"],smalloc:">= 0.11.5 && < 3",_stream_duplex:">= 0.9.4","node:_stream_duplex":[">= 14.18 && < 15",">= 16"],_stream_transform:">= 0.9.4","node:_stream_transform":[">= 14.18 && < 15",">= 16"],_stream_wrap:">= 1.4.1","node:_stream_wrap":[">= 14.18 && < 15",">= 16"],_stream_passthrough:">= 0.9.4","node:_stream_passthrough":[">= 14.18 && < 15",">= 16"],_stream_readable:">= 0.9.4","node:_stream_readable":[">= 14.18 && < 15",">= 16"],_stream_writable:">= 0.9.4","node:_stream_writable":[">= 14.18 && < 15",">= 16"],stream:!0,"node:stream":[">= 14.18 && < 15",">= 16"],"stream/consumers":">= 16.7","node:stream/consumers":">= 16.7","stream/promises":">= 15","node:stream/promises":">= 16","stream/web":">= 16.5","node:stream/web":">= 16.5",string_decoder:!0,"node:string_decoder":[">= 14.18 && < 15",">= 16"],sys:[">= 0.4 && < 0.7",">= 0.8"],"node:sys":[">= 14.18 && < 15",">= 16"],"test/reporters":">= 19.9 && < 20.2","node:test/reporters":[">= 18.17 && < 19",">= 19.9",">= 20"],"node:test":[">= 16.17 && < 17",">= 18"],timers:!0,"node:timers":[">= 14.18 && < 15",">= 16"],"timers/promises":">= 15","node:timers/promises":">= 16",_tls_common:">= 0.11.13","node:_tls_common":[">= 14.18 && < 15",">= 16"],_tls_legacy:">= 0.11.3 && < 10",_tls_wrap:">= 0.11.3","node:_tls_wrap":[">= 14.18 && < 15",">= 16"],tls:!0,"node:tls":[">= 14.18 && < 15",">= 16"],trace_events:">= 10","node:trace_events":[">= 14.18 && < 15",">= 16"],tty:!0,"node:tty":[">= 14.18 && < 15",">= 16"],url:!0,"node:url":[">= 14.18 && < 15",">= 16"],util:!0,"node:util":[">= 14.18 && < 15",">= 16"],"util/types":">= 15.3","node:util/types":">= 16","v8/tools/arguments":">= 10 && < 12","v8/tools/codemap":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/consarray":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/csvparser":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/logreader":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/profile_view":[">= 4.4 && < 5",">= 5.2 && < 12"],"v8/tools/splaytree":[">= 4.4 && < 5",">= 5.2 && < 12"],v8:">= 1","node:v8":[">= 14.18 && < 15",">= 16"],vm:!0,"node:vm":[">= 14.18 && < 15",">= 16"],wasi:[">= 13.4 && < 13.5",">= 18.17 && < 19",">= 20"],"node:wasi":[">= 18.17 && < 19",">= 20"],worker_threads:">= 11.7","node:worker_threads":[">= 14.18 && < 15",">= 16"],zlib:">= 0.5","node:zlib":[">= 14.18 && < 15",">= 16"]}});var tNi=H((LNu,eNi)=>{"use strict";var vuc=KJe(),qRi=zRi(),$Ri={};for(ZEt in qRi)Object.prototype.hasOwnProperty.call(qRi,ZEt)&&($Ri[ZEt]=vuc(ZEt));var ZEt;eNi.exports=$Ri});var nNi=H((VNu,rNi)=>{var Buc=KJe();rNi.exports=function(t){return Buc(t)}});var oNi=H((PNu,sNi)=>{var wuc=KJe(),cCe=wt("fs"),xG=wt("path"),Tuc=Skr(),Ruc=vkr(),Nuc=Tkr(),Duc=Rkr(),kuc=process.platform!=="win32"&&cCe.realpathSync&&typeof cCe.realpathSync.native=="function"?cCe.realpathSync.native:cCe.realpathSync,iNi=Tuc(),xuc=function(){return[xG.join(iNi,".node_modules"),xG.join(iNi,".node_libraries")]},Guc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&(r.isFile()||r.isFIFO())},Fuc=function(t){try{var r=cCe.statSync(t,{throwIfNoEntry:!1})}catch(n){if(n&&(n.code==="ENOENT"||n.code==="ENOTDIR"))return!1;throw n}return!!r&&r.isDirectory()},Zuc=function(t){try{return kuc(t)}catch(r){if(r.code!=="ENOENT")throw r}return t},zJe=function(t,r,n){return n&&n.preserveSymlinks===!1?t(r):r},Luc=function(t,r){var n=t(r);try{var a=JSON.parse(n);return a}catch{}},Vuc=function(t,r,n){for(var a=Nuc(r,n,t),o=0;o{var LEt=jRi();LEt.core=tNi();LEt.isCore=nNi();LEt.sync=oNi();aNi.exports=LEt});var uNi=H((ONu,lNi)=>{"use strict";var{builtinModules:Puc}=wt("module"),Wuc=["sys"];lNi.exports=(Puc||(process.binding?Object.keys(process.binding("natives")):[])||[]).filter(e=>!/^_|^(internal|v8|node-inspect)\/|\//.test(e)&&!Wuc.includes(e)).sort()});var dNi=H((MNu,ANi)=>{"use strict";var Ouc=uNi(),Muc=new Set(Ouc),gNi="node:";ANi.exports=e=>{if(typeof e!="string")throw new TypeError("Expected a string");e.startsWith(gNi)&&(e=e.slice(gNi.length));let t=e.indexOf("/");return t!==-1&&t!==e.length-1&&(e=e.slice(0,t)),Muc.has(e)}});var INi=H(Nkr=>{"use strict";Object.defineProperty(Nkr,"__esModule",{value:!0});var Huc=wt("path"),Yuc=cNi(),Quc=dNi();function Xuc(e){if(e.length===1){let r=e;return n=>{let a=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return r(a)}}let t=e;return(r,n)=>{let a=r.defaultMember||r.namespaceMember||r.namedMembers[0].alias,o=n.defaultMember||n.namespaceMember||n.namedMembers[0].alias;return t(a,o)}}function Juc(e){if(e.length===1){let r=e;return n=>{let a=n.moduleName;return r(a)}}let t=e;return(r,n)=>{let a=r.moduleName,o=n.moduleName;return t(a,o)}}function Uuc(e){return(t,r)=>e(t.name,r.name)}function Kuc(e){return(t,r)=>e(t.alias,r.alias)}function juc(){return!0}function zuc(e){return t=>!e(t)}function quc(...e){return t=>e.every(r=>r(t))}function $uc(...e){return t=>e.some(r=>r(t))}function qJe(e){return!!e.defaultMember}function XNe(e){return!!e.namespaceMember}function $Je(e){return e.namedMembers.length>0}function pNi(e){return qJe(e)||XNe(e)||$Je(e)}function egc(e){return!pNi(e)}function tgc(e){return qJe(e)&&!XNe(e)&&!$Je(e)}function rgc(e){return!qJe(e)&&XNe(e)&&!$Je(e)}function ngc(e){return!qJe(e)&&!XNe(e)&&$Je(e)}function igc(e){return e.namedMembers.length+(e.defaultMember?1:0)+(e.namespaceMember?1:0)>1}function sgc(e){return e.namedMembers.length+(e.defaultMember?1:0)===1&&!XNe(e)}function ogc(e){return Quc(e.moduleName)}function fNi(e){return e.moduleName.indexOf(".")===0}function agc(e){return!fNi(e)}function cgc(e){return t=>{try{return Yuc.sync(t.moduleName,{basedir:Huc.dirname(e)}).includes("node_modules")}catch{return!1}}}function lgc(e){return e.moduleName.startsWith("@")}function ugc(e){let t=e.charAt(0);return e.charAt(0)===t.toUpperCase()}function ggc(e){let t=e.charAt(0);return e.charAt(0)===t.toLowerCase()}function Agc(e){return!!e.match(/^[A-Za-z0-9]/)}function dgc(...e){return t=>e.some(r=>t.startsWith(r))}function pgc(e,t){return e.localeCompare(t,"en")}function fgc(e,t){return et?1:0}function Igc(e,t){let r=/\.+(?=\/)/g,n=(e.moduleName.match(r)||[]).join("").length,a=(t.moduleName.match(r)||[]).join("").length;return n>a?-1:n{"use strict";Object.defineProperty(eUe,"__esModule",{value:!0});var mgc=TRi(),Cgc=INi();function _gc(e,t,r,n,a){let o,l=typeof t=="string"?wt(t):t;return typeof r=="string"?(o=wt(r),o.default&&(o=o.default)):o=r,hNi(e,l,o,n,a)}eUe.default=_gc;function hNi(e,t,r,n,a){let o=Egc(r,n,a||{})(Cgc.default),l=o.map(()=>[]),A=t.parseImports(e,{file:n});if(A.length===0)return{code:e,changes:[]};let f=mgc.graceful(e),I=[];for(let fe of A){let ue=fe,de=o.findIndex(be=>(ue=ygc(fe,be.sortNamedMembers),!!be.match&&be.match(ue)));de!==-1&&l[de].push(ue)}l.forEach((fe,ue)=>{let{sort:de}=o[ue];if(!de)return;if(!Array.isArray(de)){fe.sort(de);return}let be=de;if(be.length===0)return;let Se=(De,k)=>{let et=0,ct=0;for(;ct===0&&be[et];)ct=be[et](De,k),et+=1;return ct};fe.sort(Se)});let C="",b=!1;l.forEach((fe,ue)=>{fe.length>0&&b&&(C+=f,b=!1),fe.forEach(de=>{let be=t.formatImport(e,de,f);C+=be+f}),o[ue].separator&&C!==""&&(b=!0)});let E=e;A.slice().reverse().forEach(fe=>{let ue=fe.end;E.charAt(fe.end).match(/\s/)&&(ue+=1),I.push({start:fe.start,end:ue,code:"",note:"import-remove"}),E=E.slice(0,fe.start)+E.slice(ue,e.length)});let{start:N}=A[0],B=e.substring(0,N),F=E.substring(N,E.length),Q=B.length,X=F.length,ae,ne;B=B.replace(/\s+$/,fe=>(ae={start:N-fe.length,end:N,code:f+f,note:"before-collapse"},f+f)),F=F.replace(/^\s+/,fe=>(ne={start:N,end:N+fe.length,code:f,note:"after-collapse"},f)),B.match(/^\s+$/)&&(ae={start:N-Q,end:N,code:"",note:"before-trim"},B=""),F.match(/^\s+$/)&&(ne={start:N,end:N+X,code:"",note:"after-trim"},F=""),ne&&I.push(ne),ae&&I.push(ae);let ce={start:B.length,end:B.length,code:C,note:"imports"};return I.push(ce),e===B+C+F?{code:e,changes:[]}:{code:B+C+F,changes:I}}eUe.sortImports=hNi;function ygc(e,t){let r=t;if(!r)return e;if(!Array.isArray(r)){let l=Object.assign({},e);return l.namedMembers=[...e.namedMembers].sort(r),l}let n=r;if(n.length===0)return e;let a=(l,A)=>{let f=0,I=0;for(;I===0&&n[f];)I=n[f](l,A),f+=1;return I},o=Object.assign({},e);return o.namedMembers=[...e.namedMembers].sort(a),o}function bgc(e,t){let r=e;for(let n of t)r=r.slice(0,n.start)+n.code+r.slice(n.end,r.length);return r}eUe.applyChanges=bgc;function Egc(e,t,r){return n=>{let a=[{separator:!0},{match:n.always}];return e(n,t,r).concat(a)}}});var XNi=H((zDu,QNi)=>{"use strict";var lCe=class e extends Error{constructor(t,r,n){super("[ParserError] "+t,r,n),this.name="ParserError",this.code="ParserError",Error.captureStackTrace&&Error.captureStackTrace(this,e)}},WEt=class{constructor(t){this.parser=t,this.buf="",this.returned=null,this.result=null,this.resultTable=null,this.resultArr=null}},rUe=class{constructor(){this.pos=0,this.col=0,this.line=0,this.obj={},this.ctx=this.obj,this.stack=[],this._buf="",this.char=null,this.ii=0,this.state=new WEt(this.parseStart)}parse(t){if(t.length===0||t.length==null)return;this._buf=String(t),this.ii=-1,this.char=-1;let r;for(;r===!1||this.nextChar();)r=this.runOne();this._buf=null}nextChar(){return this.char===10&&(++this.line,this.col=-1),++this.ii,this.char=this._buf.codePointAt(this.ii),++this.pos,++this.col,this.haveBuffer()}haveBuffer(){return this.ii{"use strict";JNi.exports=e=>{let t=new Date(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var OEt=H(($Du,KNi)=>{"use strict";KNi.exports=(e,t)=>{for(t=String(t);t.length{"use strict";var JNe=OEt(),Gkr=class extends Date{constructor(t){super(t+"Z"),this.isFloating=!0}toISOString(){let t=`${this.getUTCFullYear()}-${JNe(2,this.getUTCMonth()+1)}-${JNe(2,this.getUTCDate())}`,r=`${JNe(2,this.getUTCHours())}:${JNe(2,this.getUTCMinutes())}:${JNe(2,this.getUTCSeconds())}.${JNe(3,this.getUTCMilliseconds())}`;return`${t}T${r}`}};jNi.exports=e=>{let t=new Gkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var eDi=H((tku,$Ni)=>{"use strict";var qNi=OEt(),Xgc=global.Date,Fkr=class extends Xgc{constructor(t){super(t),this.isDate=!0}toISOString(){return`${this.getUTCFullYear()}-${qNi(2,this.getUTCMonth()+1)}-${qNi(2,this.getUTCDate())}`}};$Ni.exports=e=>{let t=new Fkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var rDi=H((rku,tDi)=>{"use strict";var MEt=OEt(),Zkr=class extends Date{constructor(t){super(`0000-01-01T${t}Z`),this.isTime=!0}toISOString(){return`${MEt(2,this.getUTCHours())}:${MEt(2,this.getUTCMinutes())}:${MEt(2,this.getUTCSeconds())}.${MEt(3,this.getUTCMilliseconds())}`}};tDi.exports=e=>{let t=new Zkr(e);if(isNaN(t))throw new TypeError("Invalid Datetime");return t}});var HEt=H((exports,module)=>{"use strict";module.exports=makeParserClass(XNi());module.exports.makeParserClass=makeParserClass;var TomlError=class e extends Error{constructor(t){super(t),this.name="TomlError",Error.captureStackTrace&&Error.captureStackTrace(this,e),this.fromTOML=!0,this.wrapped=null}};TomlError.wrap=e=>{let t=new TomlError(e.message);return t.code=e.code,t.wrapped=e,t};module.exports.TomlError=TomlError;var createDateTime=UNi(),createDateTimeFloat=zNi(),createDate=eDi(),createTime=rDi(),CTRL_I=9,CTRL_J=10,CTRL_M=13,CTRL_CHAR_BOUNDARY=31,CHAR_SP=32,CHAR_QUOT=34,CHAR_NUM=35,CHAR_APOS=39,CHAR_PLUS=43,CHAR_COMMA=44,CHAR_HYPHEN=45,CHAR_PERIOD=46,CHAR_0=48,CHAR_1=49,CHAR_7=55,CHAR_9=57,CHAR_COLON=58,CHAR_EQUALS=61,CHAR_A=65,CHAR_E=69,CHAR_F=70,CHAR_T=84,CHAR_U=85,CHAR_Z=90,CHAR_LOWBAR=95,CHAR_a=97,CHAR_b=98,CHAR_e=101,CHAR_f=102,CHAR_i=105,CHAR_l=108,CHAR_n=110,CHAR_o=111,CHAR_r=114,CHAR_s=115,CHAR_t=116,CHAR_u=117,CHAR_x=120,CHAR_z=122,CHAR_LCUB=123,CHAR_RCUB=125,CHAR_LSQB=91,CHAR_BSOL=92,CHAR_RSQB=93,CHAR_DEL=127,SURROGATE_FIRST=55296,SURROGATE_LAST=57343,escapes={[CHAR_b]:"\b",[CHAR_t]:" ",[CHAR_n]:` +`,[CHAR_f]:"\f",[CHAR_r]:"\r",[CHAR_QUOT]:'"',[CHAR_BSOL]:"\\"};function isDigit(e){return e>=CHAR_0&&e<=CHAR_9}function isHexit(e){return e>=CHAR_A&&e<=CHAR_F||e>=CHAR_a&&e<=CHAR_f||e>=CHAR_0&&e<=CHAR_9}function isBit(e){return e===CHAR_1||e===CHAR_0}function isOctit(e){return e>=CHAR_0&&e<=CHAR_7}function isAlphaNumQuoteHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_APOS||e===CHAR_QUOT||e===CHAR_LOWBAR||e===CHAR_HYPHEN}function isAlphaNumHyphen(e){return e>=CHAR_A&&e<=CHAR_Z||e>=CHAR_a&&e<=CHAR_z||e>=CHAR_0&&e<=CHAR_9||e===CHAR_LOWBAR||e===CHAR_HYPHEN}var _type=Symbol("type"),_declared=Symbol("declared"),hasOwnProperty=Object.prototype.hasOwnProperty,defineProperty=Object.defineProperty,descriptor={configurable:!0,enumerable:!0,writable:!0,value:void 0};function hasKey(e,t){return hasOwnProperty.call(e,t)?!0:(t==="__proto__"&&defineProperty(e,"__proto__",descriptor),!1)}var INLINE_TABLE=Symbol("inline-table");function InlineTable(){return Object.defineProperties({},{[_type]:{value:INLINE_TABLE}})}function isInlineTable(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_TABLE}var TABLE=Symbol("table");function Table(){return Object.defineProperties({},{[_type]:{value:TABLE},[_declared]:{value:!1,writable:!0}})}function isTable(e){return e===null||typeof e!="object"?!1:e[_type]===TABLE}var _contentType=Symbol("content-type"),INLINE_LIST=Symbol("inline-list");function InlineList(e){return Object.defineProperties([],{[_type]:{value:INLINE_LIST},[_contentType]:{value:e}})}function isInlineList(e){return e===null||typeof e!="object"?!1:e[_type]===INLINE_LIST}var LIST=Symbol("list");function List(){return Object.defineProperties([],{[_type]:{value:LIST}})}function isList(e){return e===null||typeof e!="object"?!1:e[_type]===LIST}var _custom;try{let utilInspect=eval("require('util').inspect");_custom=utilInspect.custom}catch(e){}var _inspect=_custom||"inspect",BoxedBigInt=class{constructor(t){try{this.value=global.BigInt.asIntN(64,t)}catch{this.value=null}Object.defineProperty(this,_type,{value:INTEGER})}isNaN(){return this.value===null}toString(){return String(this.value)}[_inspect](){return`[BigInt: ${this.toString()}]}`}valueOf(){return this.value}},INTEGER=Symbol("integer");function Integer(e){let t=Number(e);return Object.is(t,-0)&&(t=0),global.BigInt&&!Number.isSafeInteger(t)?new BoxedBigInt(e):Object.defineProperties(new Number(t),{isNaN:{value:function(){return isNaN(this)}},[_type]:{value:INTEGER},[_inspect]:{value:()=>`[Integer: ${e}]`}})}function isInteger(e){return e===null||typeof e!="object"?!1:e[_type]===INTEGER}var FLOAT=Symbol("float");function Float(e){return Object.defineProperties(new Number(e),{[_type]:{value:FLOAT},[_inspect]:{value:()=>`[Float: ${e}]`}})}function isFloat(e){return e===null||typeof e!="object"?!1:e[_type]===FLOAT}function tomlType(e){let t=typeof e;if(t==="object"){if(e===null)return"null";if(e instanceof Date)return"datetime";if(_type in e)switch(e[_type]){case INLINE_TABLE:return"inline-table";case INLINE_LIST:return"inline-list";case TABLE:return"table";case LIST:return"list";case FLOAT:return"float";case INTEGER:return"integer"}}return t}function makeParserClass(e){class t extends e{constructor(){super(),this.ctx=this.obj=Table()}atEndOfWord(){return this.char===CHAR_NUM||this.char===CTRL_I||this.char===CHAR_SP||this.atEndOfLine()}atEndOfLine(){return this.char===e.END||this.char===CTRL_J||this.char===CTRL_M}parseStart(){if(this.char===e.END)return null;if(this.char===CHAR_LSQB)return this.call(this.parseTableOrList);if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(isAlphaNumQuoteHyphen(this.char))return this.callNow(this.parseAssignStatement);throw this.error(new TomlError(`Unknown character "${this.char}"`))}parseWhitespaceToEOL(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M)return null;if(this.char===CHAR_NUM)return this.goto(this.parseComment);if(this.char===e.END||this.char===CTRL_J)return this.return();throw this.error(new TomlError("Unexpected character, expected only whitespace or comments till end of line"))}parseAssignStatement(){return this.callNow(this.parseAssign,this.recordAssignStatement)}recordAssignStatement(n){let a=this.ctx,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseWhitespaceToEOL)}parseAssign(){return this.callNow(this.parseKeyword,this.recordAssignKeyword)}recordAssignKeyword(n){return this.state.resultTable?this.state.resultTable.push(n):this.state.resultTable=[n],this.goto(this.parseAssignKeywordPreDot)}parseAssignKeywordPreDot(){if(this.char===CHAR_PERIOD)return this.next(this.parseAssignKeywordPostDot);if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.goto(this.parseAssignEqual)}parseAssignKeywordPostDot(){if(this.char!==CHAR_SP&&this.char!==CTRL_I)return this.callNow(this.parseKeyword,this.recordAssignKeyword)}parseAssignEqual(){if(this.char===CHAR_EQUALS)return this.next(this.parseAssignPreValue);throw this.error(new TomlError('Invalid character, expected "="'))}parseAssignPreValue(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseValue,this.recordAssignValue)}recordAssignValue(n){return this.returnNow({key:this.state.resultTable,value:n})}parseComment(){do if(this.char===e.END||this.char===CTRL_J)return this.return();while(this.nextChar())}parseTableOrList(){if(this.char===CHAR_LSQB)this.next(this.parseList);else return this.goto(this.parseTable)}parseTable(){return this.ctx=this.obj,this.goto(this.parseTableNext)}parseTableNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseTableMore)}parseTableMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)&&(!isTable(this.ctx[n])||this.ctx[n][_declared]))throw this.error(new TomlError("Can't redefine existing key"));return this.ctx=this.ctx[n]=this.ctx[n]||Table(),this.ctx[_declared]=!0,this.next(this.parseWhitespaceToEOL)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else throw this.error(new TomlError("Can't redefine existing key"));return this.next(this.parseTableNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseList(){return this.ctx=this.obj,this.goto(this.parseListNext)}parseListNext(){return this.char===CHAR_SP||this.char===CTRL_I?null:this.callNow(this.parseKeyword,this.parseListMore)}parseListMore(n){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CHAR_RSQB){if(hasKey(this.ctx,n)||(this.ctx[n]=List()),isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isList(this.ctx[n])){let a=Table();this.ctx[n].push(a),this.ctx=a}else throw this.error(new TomlError("Can't redefine an existing key"));return this.next(this.parseListEnd)}else if(this.char===CHAR_PERIOD){if(!hasKey(this.ctx,n))this.ctx=this.ctx[n]=Table();else{if(isInlineList(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline array"));if(isInlineTable(this.ctx[n]))throw this.error(new TomlError("Can't extend an inline table"));if(isList(this.ctx[n]))this.ctx=this.ctx[n][this.ctx[n].length-1];else if(isTable(this.ctx[n]))this.ctx=this.ctx[n];else throw this.error(new TomlError("Can't redefine an existing key"))}return this.next(this.parseListNext)}else throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseListEnd(n){if(this.char===CHAR_RSQB)return this.next(this.parseWhitespaceToEOL);throw this.error(new TomlError("Unexpected character, expected whitespace, . or ]"))}parseValue(){if(this.char===e.END)throw this.error(new TomlError("Key without value"));if(this.char===CHAR_QUOT)return this.next(this.parseDoubleString);if(this.char===CHAR_APOS)return this.next(this.parseSingleString);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)return this.goto(this.parseNumberSign);if(this.char===CHAR_i)return this.next(this.parseInf);if(this.char===CHAR_n)return this.next(this.parseNan);if(isDigit(this.char))return this.goto(this.parseNumberOrDateTime);if(this.char===CHAR_t||this.char===CHAR_f)return this.goto(this.parseBoolean);if(this.char===CHAR_LSQB)return this.call(this.parseInlineList,this.recordValue);if(this.char===CHAR_LCUB)return this.call(this.parseInlineTable,this.recordValue);throw this.error(new TomlError("Unexpected character, expecting string, number, datetime, boolean, inline array or inline table"))}recordValue(n){return this.returnNow(n)}parseInf(){if(this.char===CHAR_n)return this.next(this.parseInf2);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseInf2(){if(this.char===CHAR_f)return this.state.buf==="-"?this.return(-1/0):this.return(1/0);throw this.error(new TomlError('Unexpected character, expected "inf", "+inf" or "-inf"'))}parseNan(){if(this.char===CHAR_a)return this.next(this.parseNan2);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseNan2(){if(this.char===CHAR_n)return this.return(NaN);throw this.error(new TomlError('Unexpected character, expected "nan"'))}parseKeyword(){return this.char===CHAR_QUOT?this.next(this.parseBasicString):this.char===CHAR_APOS?this.next(this.parseLiteralString):this.goto(this.parseBareKey)}parseBareKey(){do{if(this.char===e.END)throw this.error(new TomlError("Key ended without value"));if(isAlphaNumHyphen(this.char))this.consume();else{if(this.state.buf.length===0)throw this.error(new TomlError("Empty bare keys are not allowed"));return this.returnNow()}}while(this.nextChar())}parseSingleString(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiStringMaybe):this.goto(this.parseLiteralString)}parseLiteralString(){do{if(this.char===CHAR_APOS)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiStringMaybe(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiString):this.returnNow()}parseLiteralMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseLiteralMultiStringContent):this.goto(this.parseLiteralMultiStringContent)}parseLiteralMultiStringContent(){do{if(this.char===CHAR_APOS)return this.next(this.parseLiteralMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}parseLiteralMultiEnd(){return this.char===CHAR_APOS?this.next(this.parseLiteralMultiEnd2):(this.state.buf+="'",this.goto(this.parseLiteralMultiStringContent))}parseLiteralMultiEnd2(){return this.char===CHAR_APOS?this.return():(this.state.buf+="''",this.goto(this.parseLiteralMultiStringContent))}parseDoubleString(){return this.char===CHAR_QUOT?this.next(this.parseMultiStringMaybe):this.goto(this.parseBasicString)}parseBasicString(){do{if(this.char===CHAR_BSOL)return this.call(this.parseEscape,this.recordEscapeReplacement);if(this.char===CHAR_QUOT)return this.return();if(this.atEndOfLine())throw this.error(new TomlError("Unterminated string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}recordEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseBasicString)}parseMultiStringMaybe(){return this.char===CHAR_QUOT?this.next(this.parseMultiString):this.returnNow()}parseMultiString(){return this.char===CTRL_M?null:this.char===CTRL_J?this.next(this.parseMultiStringContent):this.goto(this.parseMultiStringContent)}parseMultiStringContent(){do{if(this.char===CHAR_BSOL)return this.call(this.parseMultiEscape,this.recordMultiEscapeReplacement);if(this.char===CHAR_QUOT)return this.next(this.parseMultiEnd);if(this.char===e.END)throw this.error(new TomlError("Unterminated multi-line string"));if(this.char===CHAR_DEL||this.char<=CTRL_CHAR_BOUNDARY&&this.char!==CTRL_I&&this.char!==CTRL_J&&this.char!==CTRL_M)throw this.errorControlCharInString();this.consume()}while(this.nextChar())}errorControlCharInString(){let n="\\u00";return this.char<16&&(n+="0"),n+=this.char.toString(16),this.error(new TomlError(`Control characters (codes < 0x1f and 0x7f) are not allowed in strings, use ${n} instead`))}recordMultiEscapeReplacement(n){return this.state.buf+=n,this.goto(this.parseMultiStringContent)}parseMultiEnd(){return this.char===CHAR_QUOT?this.next(this.parseMultiEnd2):(this.state.buf+='"',this.goto(this.parseMultiStringContent))}parseMultiEnd2(){return this.char===CHAR_QUOT?this.return():(this.state.buf+='""',this.goto(this.parseMultiStringContent))}parseMultiEscape(){return this.char===CTRL_M||this.char===CTRL_J?this.next(this.parseMultiTrim):this.char===CHAR_SP||this.char===CTRL_I?this.next(this.parsePreMultiTrim):this.goto(this.parseEscape)}parsePreMultiTrim(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===CTRL_M||this.char===CTRL_J)return this.next(this.parseMultiTrim);throw this.error(new TomlError("Can't escape whitespace"))}parseMultiTrim(){return this.char===CTRL_J||this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M?null:this.returnNow()}parseEscape(){if(this.char in escapes)return this.return(escapes[this.char]);if(this.char===CHAR_u)return this.call(this.parseSmallUnicode,this.parseUnicodeReturn);if(this.char===CHAR_U)return this.call(this.parseLargeUnicode,this.parseUnicodeReturn);throw this.error(new TomlError("Unknown escape character: "+this.char))}parseUnicodeReturn(n){try{let a=parseInt(n,16);if(a>=SURROGATE_FIRST&&a<=SURROGATE_LAST)throw this.error(new TomlError("Invalid unicode, character in range 0xD800 - 0xDFFF is reserved"));return this.returnNow(String.fromCodePoint(a))}catch(a){throw this.error(TomlError.wrap(a))}}parseSmallUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=4)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseLargeUnicode(){if(isHexit(this.char)){if(this.consume(),this.state.buf.length>=8)return this.return()}else throw this.error(new TomlError("Invalid character in unicode sequence, expected hex"))}parseNumberSign(){return this.consume(),this.next(this.parseMaybeSignedInfOrNan)}parseMaybeSignedInfOrNan(){return this.char===CHAR_i?this.next(this.parseInf):this.char===CHAR_n?this.next(this.parseNan):this.callNow(this.parseNoUnder,this.parseNumberIntegerStart)}parseNumberIntegerStart(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberIntegerExponentOrDecimal)):this.goto(this.parseNumberInteger)}parseNumberIntegerExponentOrDecimal(){return this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Integer(this.state.buf))}parseNumberInteger(){if(isDigit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder);if(this.char===CHAR_E||this.char===CHAR_e)return this.consume(),this.next(this.parseNumberExponentSign);if(this.char===CHAR_PERIOD)return this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseNoUnder(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD||this.char===CHAR_E||this.char===CHAR_e)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNoUnderHexOctBinLiteral(){if(this.char===CHAR_LOWBAR||this.char===CHAR_PERIOD)throw this.error(new TomlError("Unexpected character, expected digit"));if(this.atEndOfWord())throw this.error(new TomlError("Incomplete number"));return this.returnNow()}parseNumberFloat(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberFloat);if(isDigit(this.char))this.consume();else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.returnNow(Float(this.state.buf))}parseNumberExponentSign(){if(isDigit(this.char))return this.goto(this.parseNumberExponent);if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.call(this.parseNoUnder,this.parseNumberExponent);else throw this.error(new TomlError("Unexpected character, expected -, + or digit"))}parseNumberExponent(){if(isDigit(this.char))this.consume();else return this.char===CHAR_LOWBAR?this.call(this.parseNoUnder):this.returnNow(Float(this.state.buf))}parseNumberOrDateTime(){return this.char===CHAR_0?(this.consume(),this.next(this.parseNumberBaseOrDateTime)):this.goto(this.parseNumberOrDateTimeOnly)}parseNumberOrDateTimeOnly(){if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnder,this.parseNumberInteger);if(isDigit(this.char))this.consume(),this.state.buf.length>4&&this.next(this.parseNumberInteger);else return this.char===CHAR_E||this.char===CHAR_e?(this.consume(),this.next(this.parseNumberExponentSign)):this.char===CHAR_PERIOD?(this.consume(),this.call(this.parseNoUnder,this.parseNumberFloat)):this.char===CHAR_HYPHEN?this.goto(this.parseDateTime):this.char===CHAR_COLON?this.goto(this.parseOnlyTimeHour):this.returnNow(Integer(this.state.buf))}parseDateTimeOnly(){if(this.state.buf.length<4){if(isDigit(this.char))return this.consume();if(this.char===CHAR_COLON)return this.goto(this.parseOnlyTimeHour);throw this.error(new TomlError("Expected digit while parsing year part of a date"))}else{if(this.char===CHAR_HYPHEN)return this.goto(this.parseDateTime);throw this.error(new TomlError("Expected hyphen (-) while parsing year part of date"))}}parseNumberBaseOrDateTime(){return this.char===CHAR_b?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerBin)):this.char===CHAR_o?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerOct)):this.char===CHAR_x?(this.consume(),this.call(this.parseNoUnderHexOctBinLiteral,this.parseIntegerHex)):this.char===CHAR_PERIOD?this.goto(this.parseNumberInteger):isDigit(this.char)?this.goto(this.parseDateTimeOnly):this.returnNow(Integer(this.state.buf))}parseIntegerHex(){if(isHexit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerOct(){if(isOctit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseIntegerBin(){if(isBit(this.char))this.consume();else{if(this.char===CHAR_LOWBAR)return this.call(this.parseNoUnderHexOctBinLiteral);{let n=Integer(this.state.buf);if(n.isNaN())throw this.error(new TomlError("Invalid number"));return this.returnNow(n)}}}parseDateTime(){if(this.state.buf.length<4)throw this.error(new TomlError("Years less than 1000 must be zero padded to four characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseDateMonth)}parseDateMonth(){if(this.char===CHAR_HYPHEN){if(this.state.buf.length<2)throw this.error(new TomlError("Months less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseDateDay)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseDateDay(){if(this.char===CHAR_T||this.char===CHAR_SP){if(this.state.buf.length<2)throw this.error(new TomlError("Days less than 10 must be zero padded to two characters"));return this.state.result+="-"+this.state.buf,this.state.buf="",this.next(this.parseStartTimeHour)}else{if(this.atEndOfWord())return this.returnNow(createDate(this.state.result+"-"+this.state.buf));if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}}parseStartTimeHour(){return this.atEndOfWord()?this.returnNow(createDate(this.state.result)):this.goto(this.parseTimeHour)}parseTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result+="T"+this.state.buf,this.state.buf="",this.next(this.parseTimeMin)}else if(isDigit(this.char))this.consume();else throw this.error(new TomlError("Incomplete datetime"))}parseTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeSec);throw this.error(new TomlError("Incomplete datetime"))}}parseTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseTimeZoneOrFraction)}else throw this.error(new TomlError("Incomplete datetime"))}parseOnlyTimeHour(){if(this.char===CHAR_COLON){if(this.state.buf.length<2)throw this.error(new TomlError("Hours less than 10 must be zero padded to two characters"));return this.state.result=this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeMin)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeMin(){if(this.state.buf.length<2&&isDigit(this.char))this.consume();else{if(this.state.buf.length===2&&this.char===CHAR_COLON)return this.state.result+=":"+this.state.buf,this.state.buf="",this.next(this.parseOnlyTimeSec);throw this.error(new TomlError("Incomplete time"))}}parseOnlyTimeSec(){if(isDigit(this.char)){if(this.consume(),this.state.buf.length===2)return this.next(this.parseOnlyTimeFractionMaybe)}else throw this.error(new TomlError("Incomplete time"))}parseOnlyTimeFractionMaybe(){if(this.state.result+=":"+this.state.buf,this.char===CHAR_PERIOD)this.state.buf="",this.next(this.parseOnlyTimeFraction);else return this.return(createTime(this.state.result))}parseOnlyTimeFraction(){if(isDigit(this.char))this.consume();else if(this.atEndOfWord()){if(this.state.buf.length===0)throw this.error(new TomlError("Expected digit in milliseconds"));return this.returnNow(createTime(this.state.result+"."+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}parseTimeZoneOrFraction(){if(this.char===CHAR_PERIOD)this.consume(),this.next(this.parseDateTimeFraction);else if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}parseDateTimeFraction(){if(isDigit(this.char))this.consume();else{if(this.state.buf.length===1)throw this.error(new TomlError("Expected digit in milliseconds"));if(this.char===CHAR_HYPHEN||this.char===CHAR_PLUS)this.consume(),this.next(this.parseTimeZoneHour);else{if(this.char===CHAR_Z)return this.consume(),this.return(createDateTime(this.state.result+this.state.buf));if(this.atEndOfWord())return this.returnNow(createDateTimeFloat(this.state.result+this.state.buf));throw this.error(new TomlError("Unexpected character in datetime, expected period (.), minus (-), plus (+) or Z"))}}}parseTimeZoneHour(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.next(this.parseTimeZoneSep)}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseTimeZoneSep(){if(this.char===CHAR_COLON)this.consume(),this.next(this.parseTimeZoneMin);else throw this.error(new TomlError("Unexpected character in datetime, expected colon"))}parseTimeZoneMin(){if(isDigit(this.char)){if(this.consume(),/\d\d$/.test(this.state.buf))return this.return(createDateTime(this.state.result+this.state.buf))}else throw this.error(new TomlError("Unexpected character in datetime, expected digit"))}parseBoolean(){if(this.char===CHAR_t)return this.consume(),this.next(this.parseTrue_r);if(this.char===CHAR_f)return this.consume(),this.next(this.parseFalse_a)}parseTrue_r(){if(this.char===CHAR_r)return this.consume(),this.next(this.parseTrue_u);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_u(){if(this.char===CHAR_u)return this.consume(),this.next(this.parseTrue_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseTrue_e(){if(this.char===CHAR_e)return this.return(!0);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_a(){if(this.char===CHAR_a)return this.consume(),this.next(this.parseFalse_l);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_l(){if(this.char===CHAR_l)return this.consume(),this.next(this.parseFalse_s);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_s(){if(this.char===CHAR_s)return this.consume(),this.next(this.parseFalse_e);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseFalse_e(){if(this.char===CHAR_e)return this.return(!1);throw this.error(new TomlError("Invalid boolean, expected true or false"))}parseInlineList(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===e.END)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_NUM?this.call(this.parseComment):this.char===CHAR_RSQB?this.return(this.state.resultArr||InlineList()):this.callNow(this.parseValue,this.recordInlineListValue)}recordInlineListValue(n){if(this.state.resultArr){let a=this.state.resultArr[_contentType],o=tomlType(n);if(a!==o)throw this.error(new TomlError(`Inline lists must be a single type, not a mix of ${a} and ${o}`))}else this.state.resultArr=InlineList(tomlType(n));return isFloat(n)||isInteger(n)?this.state.resultArr.push(n.valueOf()):this.state.resultArr.push(n),this.goto(this.parseInlineListNext)}parseInlineListNext(){if(this.char===CHAR_SP||this.char===CTRL_I||this.char===CTRL_M||this.char===CTRL_J)return null;if(this.char===CHAR_NUM)return this.call(this.parseComment);if(this.char===CHAR_COMMA)return this.next(this.parseInlineList);if(this.char===CHAR_RSQB)return this.goto(this.parseInlineList);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}parseInlineTable(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));return this.char===CHAR_RCUB?this.return(this.state.resultTable||InlineTable()):(this.state.resultTable||(this.state.resultTable=InlineTable()),this.callNow(this.parseAssign,this.recordInlineTableValue))}recordInlineTableValue(n){let a=this.state.resultTable,o=n.key.pop();for(let l of n.key){if(hasKey(a,l)&&(!isTable(a[l])||a[l][_declared]))throw this.error(new TomlError("Can't redefine existing key"));a=a[l]=a[l]||Table()}if(hasKey(a,o))throw this.error(new TomlError("Can't redefine existing key"));return isInteger(n.value)||isFloat(n.value)?a[o]=n.value.valueOf():a[o]=n.value,this.goto(this.parseInlineTableNext)}parseInlineTableNext(){if(this.char===CHAR_SP||this.char===CTRL_I)return null;if(this.char===e.END||this.char===CHAR_NUM||this.char===CTRL_J||this.char===CTRL_M)throw this.error(new TomlError("Unterminated inline array"));if(this.char===CHAR_COMMA)return this.next(this.parseInlineTable);if(this.char===CHAR_RCUB)return this.goto(this.parseInlineTable);throw this.error(new TomlError("Invalid character, expected whitespace, comma (,) or close bracket (])"))}}return t}});var YEt=H((nku,nDi)=>{"use strict";nDi.exports=Jgc;function Jgc(e,t){if(e.pos==null||e.line==null)return e;let r=e.message;if(r+=` at row ${e.line+1}, col ${e.col+1}, pos ${e.pos}: `,t&&t.split){let n=t.split(/\n/),a=String(Math.min(n.length,e.line+3)).length,o=" ";for(;o.length "+n[l]+` `,r+=o+" ";for(let f=0;f{"use strict";iDi.exports=jgc;var Ugc=HEt(),Kgc=YEt();function jgc(e){global.Buffer&&global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new Ugc;try{return t.parse(e),t.finish()}catch(r){throw Kgc(r,e)}}});var cDi=H((iku,aDi)=>{"use strict";aDi.exports=qgc;var zgc=HEt(),oDi=YEt();function qgc(e,t){t||(t={});let r=0,n=t.blocksize||40960,a=new zgc;return new Promise((l,A)=>{setImmediate(o,r,n,l,A)});function o(l,A,f,I){if(l>=e.length)try{return f(a.finish())}catch(C){return I(oDi(C,e))}try{a.parse(e.slice(l,l+A)),setImmediate(o,l+A,A,f,I)}catch(C){I(oDi(C,e))}}}});var gDi=H((sku,uDi)=>{"use strict";uDi.exports=eAc;var $gc=wt("stream"),lDi=HEt();function eAc(e){return e?tAc(e):rAc(e)}function tAc(e){let t=new lDi;return e.setEncoding("utf8"),new Promise((r,n)=>{let a,o=!1,l=!1;function A(){if(o=!0,!a)try{r(t.finish())}catch(C){n(C)}}function f(C){l=!0,n(C)}e.once("end",A),e.once("error",f),I();function I(){a=!0;let C;for(;(C=e.read())!==null;)try{t.parse(C)}catch(b){return f(b)}if(a=!1,o)return A();l||e.once("readable",I)}})}function rAc(){let e=new lDi;return new $gc.Transform({objectMode:!0,transform(t,r,n){try{e.parse(t.toString(r))}catch(a){this.emit("error",a)}n()},flush(t){try{this.push(e.finish())}catch(r){this.emit("error",r)}t()}})}});var ADi=H((oku,nUe)=>{"use strict";nUe.exports=sDi();nUe.exports.async=cDi();nUe.exports.stream=gDi();nUe.exports.prettyError=YEt()});var _Di=H((aku,Pkr)=>{"use strict";Pkr.exports=nAc;Pkr.exports.value=Vkr;function nAc(e){if(e===null)throw uCe("null");if(e===void 0)throw uCe("undefined");if(typeof e!="object")throw uCe(typeof e);if(typeof e.toJSON=="function"&&(e=e.toJSON()),e==null)return null;let t=vV(e);if(t!=="table")throw uCe(t);return Lkr("","",e)}function uCe(e){return new Error("Can only stringify objects, not "+e)}function iAc(){return new Error("Array values can't have mixed types")}function dDi(e){return Object.keys(e).filter(t=>pDi(e[t]))}function sAc(e){return Object.keys(e).filter(t=>!pDi(e[t]))}function QEt(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))e[r]&&typeof e[r].toJSON=="function"&&!("toISOString"in e[r])?t[r]=e[r].toJSON():t[r]=e[r];return t}function Lkr(e,t,r){r=QEt(r);var n,a;n=dDi(r),a=sAc(r);var o=[],l=t||"";n.forEach(f=>{var I=vV(r[f]);I!=="undefined"&&I!=="null"&&o.push(l+XEt(f)+" = "+hDi(r[f],!0))}),o.length>0&&o.push("");var A=e&&n.length>0?t+" ":"";return a.forEach(f=>{o.push(IAc(e,A,f,r[f]))}),o.join(` +`,e}});var sDi=H((iku,iDi)=>{"use strict";iDi.exports=jgc;var Ugc=HEt(),Kgc=YEt();function jgc(e){global.Buffer&&global.Buffer.isBuffer(e)&&(e=e.toString("utf8"));let t=new Ugc;try{return t.parse(e),t.finish()}catch(r){throw Kgc(r,e)}}});var cDi=H((sku,aDi)=>{"use strict";aDi.exports=qgc;var zgc=HEt(),oDi=YEt();function qgc(e,t){t||(t={});let r=0,n=t.blocksize||40960,a=new zgc;return new Promise((l,A)=>{setImmediate(o,r,n,l,A)});function o(l,A,f,I){if(l>=e.length)try{return f(a.finish())}catch(C){return I(oDi(C,e))}try{a.parse(e.slice(l,l+A)),setImmediate(o,l+A,A,f,I)}catch(C){I(oDi(C,e))}}}});var gDi=H((oku,uDi)=>{"use strict";uDi.exports=eAc;var $gc=wt("stream"),lDi=HEt();function eAc(e){return e?tAc(e):rAc(e)}function tAc(e){let t=new lDi;return e.setEncoding("utf8"),new Promise((r,n)=>{let a,o=!1,l=!1;function A(){if(o=!0,!a)try{r(t.finish())}catch(C){n(C)}}function f(C){l=!0,n(C)}e.once("end",A),e.once("error",f),I();function I(){a=!0;let C;for(;(C=e.read())!==null;)try{t.parse(C)}catch(b){return f(b)}if(a=!1,o)return A();l||e.once("readable",I)}})}function rAc(){let e=new lDi;return new $gc.Transform({objectMode:!0,transform(t,r,n){try{e.parse(t.toString(r))}catch(a){this.emit("error",a)}n()},flush(t){try{this.push(e.finish())}catch(r){this.emit("error",r)}t()}})}});var ADi=H((aku,nUe)=>{"use strict";nUe.exports=sDi();nUe.exports.async=cDi();nUe.exports.stream=gDi();nUe.exports.prettyError=YEt()});var _Di=H((cku,Pkr)=>{"use strict";Pkr.exports=nAc;Pkr.exports.value=Vkr;function nAc(e){if(e===null)throw uCe("null");if(e===void 0)throw uCe("undefined");if(typeof e!="object")throw uCe(typeof e);if(typeof e.toJSON=="function"&&(e=e.toJSON()),e==null)return null;let t=vV(e);if(t!=="table")throw uCe(t);return Lkr("","",e)}function uCe(e){return new Error("Can only stringify objects, not "+e)}function iAc(){return new Error("Array values can't have mixed types")}function dDi(e){return Object.keys(e).filter(t=>pDi(e[t]))}function sAc(e){return Object.keys(e).filter(t=>!pDi(e[t]))}function QEt(e){let t=Array.isArray(e)?[]:Object.prototype.hasOwnProperty.call(e,"__proto__")?{["__proto__"]:void 0}:{};for(let r of Object.keys(e))e[r]&&typeof e[r].toJSON=="function"&&!("toISOString"in e[r])?t[r]=e[r].toJSON():t[r]=e[r];return t}function Lkr(e,t,r){r=QEt(r);var n,a;n=dDi(r),a=sAc(r);var o=[],l=t||"";n.forEach(f=>{var I=vV(r[f]);I!=="undefined"&&I!=="null"&&o.push(l+XEt(f)+" = "+hDi(r[f],!0))}),o.length>0&&o.push("");var A=e&&n.length>0?t+" ":"";return a.forEach(f=>{o.push(IAc(e,A,f,r[f]))}),o.join(` `)}function pDi(e){switch(vV(e)){case"undefined":case"null":case"integer":case"nan":case"float":case"boolean":case"string":case"datetime":return!0;case"array":return e.length===0||vV(e[0])!=="table";case"table":return Object.keys(e).length===0;default:return!1}}function vV(e){return e===void 0?"undefined":e===null?"null":typeof e=="bigint"||Number.isInteger(e)&&!Object.is(e,-0)?"integer":typeof e=="number"?"float":typeof e=="boolean"?"boolean":typeof e=="string"?"string":"toISOString"in e?isNaN(e)?"undefined":"datetime":Array.isArray(e)?"array":"table"}function XEt(e){var t=String(e);return/^[-A-Za-z0-9_]+$/.test(t)?t:fDi(t)}function fDi(e){return'"'+IDi(e).replace(/"/g,'\\"')+'"'}function oAc(e){return"'"+e+"'"}function aAc(e,t){for(;t.length"\\u"+aAc(4,t.codePointAt(0).toString(16)))}function cAc(e){let t=e.split(/\n/).map(r=>IDi(r).replace(/"(?="")/g,'\\"')).join(` `);return t.slice(-1)==='"'&&(t+=`\\ `),`""" @@ -638,7 +638,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus `:r+=" "+n.join(", ")+(n.length>0?" ":""),r+"]"}function fAc(e){e=QEt(e);var t=[];return Object.keys(e).forEach(r=>{t.push(XEt(r)+" = "+hDi(e[r],!1))}),"{ "+t.join(", ")+(t.length>0?" ":"")+"}"}function IAc(e,t,r,n){var a=vV(n);if(a==="array")return hAc(e,t,r,n);if(a==="table")return mAc(e,t,r,n);throw uCe(a)}function hAc(e,t,r,n){n=QEt(n),CDi(n);var a=vV(n[0]);if(a!=="table")throw uCe(a);var o=e+XEt(r),l="";return n.forEach(A=>{l.length>0&&(l+=` `),l+=t+"[["+o+`]] `,l+=Lkr(o+".",t,A)}),l}function mAc(e,t,r,n){var a=e+XEt(r),o="";return dDi(n).length>0&&(o+=t+"["+a+`] -`),o+Lkr(a+".",t,n)}});var yDi=H(Wkr=>{"use strict";Wkr.parse=ADi();Wkr.stringify=_Di()});var KDi=H((Vku,UEt)=>{var ODi={};(e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(s,c)=>{for(var g in c)t(s,g,{get:c[g],enumerable:!0})},l=(s,c,g,d)=>{if(c&&typeof c=="object"||typeof c=="function")for(let h of n(c))!a.call(s,h)&&h!==g&&t(s,h,{get:()=>c[h],enumerable:!(d=r(c,h))||d.enumerable});return s},A=s=>s,f={};o(f,{ANONYMOUS:()=>rnt,AccessFlags:()=>Ty,AssertionLevel:()=>El,AssignmentDeclarationKind:()=>Ry,AssignmentKind:()=>mZe,Associativity:()=>vZe,BreakpointResolver:()=>eit,BuilderFileEmit:()=>N3t,BuilderProgramKind:()=>V3t,BuilderState:()=>nR,CallHierarchy:()=>Mz,CharacterCodes:()=>J2,CheckFlags:()=>sB,CheckMode:()=>vet,ClassificationType:()=>drt,ClassificationTypeNames:()=>W5t,CommentDirectiveType:()=>JS,Comparison:()=>b,CompletionInfoFlags:()=>x5t,CompletionTriggerKind:()=>grt,Completions:()=>Jz,ContainerFlags:()=>uOt,ContextFlags:()=>Ts,Debug:()=>pe,DiagnosticCategory:()=>KS,Diagnostics:()=>Z,DocumentHighlights:()=>hPe,ElementFlags:()=>tf,EmitFlags:()=>cB,EmitHint:()=>ty,EmitOnly:()=>Q2,EndOfLineState:()=>Z5t,ExitStatus:()=>ut,ExportKind:()=>NMt,Extension:()=>ey,ExternalEmitHelpers:()=>JR,FileIncludeKind:()=>$0,FilePreprocessingDiagnosticsKind:()=>fw,FileSystemEntryKind:()=>r1,FileWatcherEventKind:()=>yb,FindAllReferences:()=>Kp,FlattenLevel:()=>kOt,FlowFlags:()=>Yp,ForegroundColorEscapeSequences:()=>_3t,FunctionFlags:()=>EZe,GeneratedIdentifierFlags:()=>od,GetLiteralTextFlags:()=>A7,GoToDefinition:()=>nse,HighlightSpanKind:()=>D5t,IdentifierNameMap:()=>kie,ImportKind:()=>RMt,ImportsNotUsedAsValues:()=>zS,IndentStyle:()=>k5t,IndexFlags:()=>US,IndexKind:()=>Qm,InferenceFlags:()=>R_,InferencePriority:()=>mb,InlayHintKind:()=>N5t,InlayHints:()=>Qit,InternalEmitFlags:()=>RD,InternalNodeBuilderFlags:()=>vg,InternalSymbolName:()=>RT,IntersectionFlags:()=>Gn,InvalidatedProjectKind:()=>a5t,JSDocParsingMode:()=>t1,JsDoc:()=>n5,JsTyping:()=>YP,JsxEmit:()=>XR,JsxFlags:()=>Ym,JsxReferenceKind:()=>$I,LanguageFeatureMinimumTarget:()=>Rd,LanguageServiceMode:()=>T5t,LanguageVariant:()=>pn,LexicalEnvironmentFlags:()=>$1,ListFormat:()=>$E,LogLevel:()=>fb,MapCode:()=>Xit,MemberOverrideStatus:()=>ar,ModifierFlags:()=>JE,ModuleDetectionKind:()=>zE,ModuleInstanceState:()=>cOt,ModuleKind:()=>jS,ModuleResolutionKind:()=>z_,ModuleSpecifierEnding:()=>pLe,NavigateTo:()=>eHt,NavigationBar:()=>rHt,NewLineKind:()=>qE,NodeBuilderFlags:()=>Qo,NodeCheckFlags:()=>wy,NodeFactoryFlags:()=>Jbe,NodeFlags:()=>AC,NodeResolutionFeatures:()=>jWt,ObjectFlags:()=>j_,OperationCanceledException:()=>By,OperatorPrecedence:()=>BZe,OrganizeImports:()=>i5,OrganizeImportsMode:()=>urt,OuterExpressionKinds:()=>cF,OutliningElementsCollector:()=>Uit,OutliningSpanKind:()=>G5t,OutputFileType:()=>F5t,PackageJsonAutoImportPreference:()=>w5t,PackageJsonDependencyGroup:()=>B5t,PatternMatchKind:()=>ynt,PollingInterval:()=>r_,PollingWatchKind:()=>aB,PragmaKindFlags:()=>N_,PredicateSemantics:()=>K_,PreparePasteEdits:()=>lst,PrivateIdentifierKind:()=>YLe,ProcessLevel:()=>ZOt,ProgramUpdateLevel:()=>f3t,QuotePreference:()=>cMt,RegularExpressionFlags:()=>UE,RelationComparisonResult:()=>vy,Rename:()=>eWe,ScriptElementKind:()=>V5t,ScriptElementKindModifier:()=>P5t,ScriptKind:()=>X2,ScriptSnapshot:()=>RVe,ScriptTarget:()=>kT,SemanticClassificationFormat:()=>R5t,SemanticMeaning:()=>O5t,SemicolonPreference:()=>Art,SignatureCheckMode:()=>Bet,SignatureFlags:()=>$A,SignatureHelp:()=>X1e,SignatureInfo:()=>R3t,SignatureKind:()=>BA,SmartSelectionRange:()=>zit,SnippetKind:()=>Iw,StatisticType:()=>I5t,StructureIsReused:()=>xc,SymbolAccessibility:()=>uI,SymbolDisplay:()=>i9,SymbolDisplayPartKind:()=>DVe,SymbolFlags:()=>TT,SymbolFormatFlags:()=>Rf,SyntaxKind:()=>Ld,Ternary:()=>Cb,ThrottledCancellationToken:()=>uYt,TokenClass:()=>L5t,TokenFlags:()=>KE,TransformFlags:()=>up,TypeFacts:()=>Eet,TypeFlags:()=>jE,TypeFormatFlags:()=>Ng,TypeMapKind:()=>zf,TypePredicateKind:()=>Th,TypeReferenceSerializationKind:()=>oE,UnionReduction:()=>Jr,UpToDateStatusType:()=>e5t,VarianceFlags:()=>NT,Version:()=>O,VersionRange:()=>gt,WatchDirectoryFlags:()=>q1,WatchDirectoryKind:()=>DT,WatchFileKind:()=>oB,WatchLogLevel:()=>h3t,WatchType:()=>jm,accessPrivateIdentifier:()=>DOt,addEmitFlags:()=>Gw,addEmitHelper:()=>$Y,addEmitHelpers:()=>hN,addInternalEmitFlags:()=>N3,addNodeFactoryPatcher:()=>$qe,addObjectAllocatorPatcher:()=>Lqe,addRange:()=>Or,addRelatedInfo:()=>lg,addSyntheticLeadingComment:()=>JT,addSyntheticTrailingComment:()=>Iz,addToSeen:()=>Zy,advancedAsyncSuperHelper:()=>DF,affectsDeclarationPathOptionDeclarations:()=>yWt,affectsEmitOptionDeclarations:()=>_Wt,allKeysStartWithDot:()=>G9e,altDirectorySeparator:()=>Eb,and:()=>dh,append:()=>Ft,appendIfUnique:()=>ps,arrayFrom:()=>Do,arrayIsEqualTo:()=>Sc,arrayIsHomogeneous:()=>bLe,arrayOf:()=>Ri,arrayReverseIterator:()=>Qa,arrayToMap:()=>Ru,arrayToMultiMap:()=>Ju,arrayToNumericMap:()=>Vs,assertType:()=>nE,assign:()=>Wt,asyncSuperHelper:()=>lie,attachFileToDiagnostics:()=>XL,base64decode:()=>QZe,base64encode:()=>ibe,binarySearch:()=>Wc,binarySearchKey:()=>Sg,bindSourceFile:()=>gOt,breakIntoCharacterSpans:()=>XMt,breakIntoWordSpans:()=>JMt,buildLinkParts:()=>IMt,buildOpts:()=>CEe,buildOverload:()=>vpn,bundlerModuleNameResolver:()=>zWt,canBeConvertedToAsync:()=>wnt,canHaveDecorators:()=>oQ,canHaveExportModifier:()=>Kne,canHaveFlowNode:()=>UJ,canHaveIllegalDecorators:()=>k$e,canHaveIllegalModifiers:()=>tWt,canHaveIllegalType:()=>c$r,canHaveIllegalTypeParameters:()=>eWt,canHaveJSDoc:()=>Ane,canHaveLocals:()=>WI,canHaveModifiers:()=>LB,canHaveModuleSpecifier:()=>pZe,canHaveSymbol:()=>mE,canIncludeBindAndCheckDiagnostics:()=>gU,canJsonReportNoInputFiles:()=>vEe,canProduceDiagnostics:()=>ZEe,canUsePropertyAccess:()=>Fbe,canWatchAffectingLocation:()=>X3t,canWatchAtTypes:()=>Q3t,canWatchDirectoryOrFile:()=>wtt,canWatchDirectoryOrFilePath:()=>zEe,cartesianProduct:()=>XE,cast:()=>Ma,chainBundle:()=>rR,chainDiagnosticMessages:()=>wu,changeAnyExtension:()=>K2,changeCompilerHostLikeToUseCache:()=>Gde,changeExtension:()=>fN,changeFullExtension:()=>i_,changesAffectModuleResolution:()=>NJ,changesAffectingProgramStructure:()=>fge,characterCodeToRegularExpressionFlag:()=>Wg,childIsDecorated:()=>HJ,classElementOrClassElementParameterIsDecorated:()=>hye,classHasClassThisAssignment:()=>Oet,classHasDeclaredOrExplicitlyAssignedName:()=>Met,classHasExplicitlyAssignedName:()=>J9e,classOrConstructorParameterIsDecorated:()=>Rx,classicNameResolver:()=>oOt,classifier:()=>pYt,cleanExtendedConfigCache:()=>$9e,clear:()=>St,clearMap:()=>Fy,clearSharedExtendedConfigFileWatcher:()=>rtt,climbPastPropertyAccess:()=>GVe,clone:()=>Eg,cloneCompilerOptions:()=>krt,closeFileWatcher:()=>dv,closeFileWatcherOf:()=>Cv,codefix:()=>x0,collapseTextChangeRangesAcrossMultipleVersions:()=>z,collectExternalModuleInfo:()=>Let,combine:()=>zr,combinePaths:()=>Ro,commandLineOptionOfCustomType:()=>SWt,commentPragmas:()=>e1,commonOptionsWithBuild:()=>p9e,compact:()=>Hr,compareBooleans:()=>Ml,compareDataObjects:()=>_Ae,compareDiagnostics:()=>X7,compareEmitHelpers:()=>XLe,compareNumberOfDirectorySeparators:()=>Qne,comparePaths:()=>qf,comparePathsCaseInsensitive:()=>pB,comparePathsCaseSensitive:()=>Cx,comparePatternKeys:()=>Iet,compareProperties:()=>Ea,compareStringsCaseInsensitive:()=>Fs,compareStringsCaseInsensitiveEslintCompatible:()=>Wa,compareStringsCaseSensitive:()=>Ca,compareStringsCaseSensitiveUI:()=>so,compareTextSpans:()=>yn,compareValues:()=>Zt,compilerOptionsAffectDeclarationPath:()=>aLe,compilerOptionsAffectEmit:()=>oLe,compilerOptionsAffectSemanticDiagnostics:()=>mbe,compilerOptionsDidYouMeanDiagnostics:()=>m9e,compilerOptionsIndicateEsModules:()=>Vrt,computeCommonSourceDirectoryOfFilenames:()=>m3t,computeLineAndCharacterOfPosition:()=>Ci,computeLineOfPosition:()=>Po,computeLineStarts:()=>cA,computePositionOfLineAndCharacter:()=>xn,computeSignatureWithDiagnostics:()=>ytt,computeSuggestionDiagnostics:()=>Snt,computedOptions:()=>J7,concatenate:()=>Nn,concatenateDiagnosticMessageChains:()=>Fne,consumesNodeCoreModules:()=>cPe,contains:()=>k,containsIgnoredPath:()=>sz,containsObjectRestOrSpread:()=>fEe,containsParseError:()=>pP,containsPath:()=>Jh,convertCompilerOptionsForTelemetry:()=>PWt,convertCompilerOptionsFromJson:()=>hen,convertJsonOption:()=>vU,convertToBase64:()=>nbe,convertToJson:()=>bEe,convertToObject:()=>xWt,convertToOptionsWithAbsolutePaths:()=>b9e,convertToRelativePath:()=>r2,convertToTSConfig:()=>q$e,convertTypeAcquisitionFromJson:()=>men,copyComments:()=>xU,copyEntries:()=>a7,copyLeadingComments:()=>Uie,copyProperties:()=>GA,copyTrailingAsLeadingComments:()=>m1e,copyTrailingComments:()=>jde,couldStartTrivia:()=>tv,countWhere:()=>ct,createAbstractBuilder:()=>Brn,createAccessorPropertyBackingField:()=>F$e,createAccessorPropertyGetRedirector:()=>lWt,createAccessorPropertySetRedirector:()=>uWt,createBaseNodeFactory:()=>GLe,createBinaryExpressionTrampoline:()=>l9e,createBuilderProgram:()=>btt,createBuilderProgramUsingIncrementalBuildInfo:()=>M3t,createBuilderStatusReporter:()=>yVe,createCacheableExportInfoMap:()=>dnt,createCachedDirectoryStructureHost:()=>z9e,createClassifier:()=>rin,createCommentDirectivesMap:()=>bge,createCompilerDiagnostic:()=>Nf,createCompilerDiagnosticForInvalidCustomType:()=>vWt,createCompilerDiagnosticFromMessageChain:()=>SAe,createCompilerHost:()=>C3t,createCompilerHostFromProgramHost:()=>Mtt,createCompilerHostWorker:()=>eVe,createDetachedDiagnostic:()=>QY,createDiagnosticCollection:()=>EF,createDiagnosticForFileFromMessageChain:()=>Ut,createDiagnosticForNode:()=>mo,createDiagnosticForNodeArray:()=>A3,createDiagnosticForNodeArrayFromMessageChain:()=>ie,createDiagnosticForNodeFromMessageChain:()=>Bw,createDiagnosticForNodeInSourceFile:()=>_E,createDiagnosticForRange:()=>kn,createDiagnosticMessageChainFromDiagnostic:()=>Qr,createDiagnosticReporter:()=>Gz,createDocumentPositionMapper:()=>BOt,createDocumentRegistry:()=>FMt,createDocumentRegistryInternal:()=>mnt,createEmitAndSemanticDiagnosticsBuilderProgram:()=>Btt,createEmitHelperFactory:()=>QLe,createEmptyExports:()=>aEe,createEvaluator:()=>DLe,createExpressionForJsxElement:()=>UPt,createExpressionForJsxFragment:()=>KPt,createExpressionForObjectLiteralElementLike:()=>jPt,createExpressionForPropertyName:()=>B$e,createExpressionFromEntityName:()=>cEe,createExternalHelpersImportDeclarationIfNeeded:()=>R$e,createFileDiagnostic:()=>qh,createFileDiagnosticFromMessageChain:()=>ze,createFlowNode:()=>rk,createForOfBindingStatement:()=>v$e,createFutureSourceFile:()=>pPe,createGetCanonicalFileName:()=>_d,createGetIsolatedDeclarationErrors:()=>s3t,createGetSourceFile:()=>att,createGetSymbolAccessibilityDiagnosticForNode:()=>J3,createGetSymbolAccessibilityDiagnosticForNodeName:()=>i3t,createGetSymbolWalker:()=>AOt,createIncrementalCompilerHost:()=>_Ve,createIncrementalProgram:()=>$3t,createJsxFactoryExpression:()=>S$e,createLanguageService:()=>gYt,createLanguageServiceSourceFile:()=>xPe,createMemberAccessForPropertyName:()=>EU,createModeAwareCache:()=>wie,createModeAwareCacheKey:()=>Cde,createModeMismatchDetails:()=>l7,createModuleNotFoundChain:()=>kJ,createModuleResolutionCache:()=>Tie,createModuleResolutionLoader:()=>dtt,createModuleResolutionLoaderUsingGlobalCache:()=>j3t,createModuleSpecifierResolutionHost:()=>z3,createMultiMap:()=>dl,createNameResolver:()=>JAe,createNodeConverters:()=>FLe,createNodeFactory:()=>nie,createOptionNameMap:()=>I9e,createOverload:()=>gst,createPackageJsonImportFilter:()=>jie,createPackageJsonInfo:()=>snt,createParenthesizerRules:()=>pv,createPatternMatcher:()=>WMt,createPrinter:()=>MP,createPrinterWithDefaults:()=>d3t,createPrinterWithRemoveComments:()=>gQ,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>p3t,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>ttt,createProgram:()=>UEe,createProgramDiagnostics:()=>w3t,createProgramHost:()=>Htt,createPropertyNameNodeForIdentifierOrLiteral:()=>Une,createQueue:()=>oA,createRange:()=>Gy,createRedirectedBuilderProgram:()=>vtt,createResolutionCache:()=>Rtt,createRuntimeTypeSerializer:()=>OOt,createScanner:()=>wb,createSemanticDiagnosticsBuilderProgram:()=>vrn,createSet:()=>oo,createSolutionBuilder:()=>i5t,createSolutionBuilderHost:()=>r5t,createSolutionBuilderWithWatch:()=>s5t,createSolutionBuilderWithWatchHost:()=>n5t,createSortedArray:()=>Ya,createSourceFile:()=>vz,createSourceMapGenerator:()=>yOt,createSourceMapSource:()=>r$e,createSuperAccessVariableStatement:()=>K9e,createSymbolTable:()=>qu,createSymlinkCache:()=>_be,createSyntacticTypeNodeBuilder:()=>E5t,createSystemWatchFunctions:()=>ia,createTextChange:()=>g1e,createTextChangeFromStartLength:()=>JVe,createTextChangeRange:()=>$2,createTextRangeFromNode:()=>Frt,createTextRangeFromSpan:()=>XVe,createTextSpan:()=>zd,createTextSpanFromBounds:()=>wA,createTextSpanFromNode:()=>Oy,createTextSpanFromRange:()=>t9,createTextSpanFromStringLiteralLikeContent:()=>Grt,createTextWriter:()=>Bne,createTokenRange:()=>QL,createTypeChecker:()=>COt,createTypeReferenceDirectiveResolutionCache:()=>k9e,createTypeReferenceResolutionLoader:()=>nVe,createWatchCompilerHost:()=>Zrn,createWatchCompilerHostOfConfigFile:()=>Ytt,createWatchCompilerHostOfFilesAndCompilerOptions:()=>Qtt,createWatchFactory:()=>Ott,createWatchHost:()=>Wtt,createWatchProgram:()=>Xtt,createWatchStatusReporter:()=>Ntt,createWriteFileMeasuringIO:()=>ctt,declarationNameToString:()=>Wd,decodeMappings:()=>Get,decodedTextSpanIntersectsWith:()=>IE,deduplicate:()=>io,defaultHoverMaximumTruncationLength:()=>Age,defaultInitCompilerOptions:()=>L$r,defaultMaximumTruncationLength:()=>EY,diagnosticCategoryName:()=>_b,diagnosticToString:()=>IQ,diagnosticsEqualityComparer:()=>vAe,directoryProbablyExists:()=>f1,directorySeparator:()=>ag,displayPart:()=>SE,displayPartsToString:()=>D1e,disposeEmitNodes:()=>Ku,documentSpansEqual:()=>Qrt,dumpTracingLegend:()=>jf,elementAt:()=>Cg,elideNodes:()=>cWt,emitDetachedComments:()=>GZe,emitFiles:()=>$et,emitFilesAndReportErrors:()=>IVe,emitFilesAndReportErrorsAndGetExitStatus:()=>Ptt,emitModuleKindIsNonNodeESM:()=>Wne,emitNewLineBeforeLeadingCommentOfPosition:()=>Uye,emitResolverSkipsTypeChecking:()=>qet,emitSkippedWithNoDiagnostics:()=>Itt,emptyArray:()=>E,emptyFileSystemEntries:()=>wbe,emptyMap:()=>N,emptyOptions:()=>VB,endsWith:()=>di,ensurePathIsNonModuleName:()=>Am,ensureScriptKind:()=>xAe,ensureTrailingDirectorySeparator:()=>hp,entityNameToString:()=>oy,enumerateInsertsAndDeletes:()=>q0,equalOwnProperties:()=>Hu,equateStringsCaseInsensitive:()=>Mp,equateStringsCaseSensitive:()=>MA,equateValues:()=>yg,escapeJsxAttributeString:()=>Wye,escapeLeadingUnderscores:()=>Ap,escapeNonAsciiString:()=>Ene,escapeSnippetText:()=>xP,escapeString:()=>YT,escapeTemplateSubstitution:()=>Vye,evaluatorResult:()=>$h,every:()=>ue,exclusivelyPrefixedNodeCoreModules:()=>jAe,executeCommandLine:()=>fnn,expandPreOrPostfixIncrementOrDecrementExpression:()=>i9e,explainFiles:()=>Gtt,explainIfFileIsRedirectAndImpliedFormat:()=>Ftt,exportAssignmentIsAlias:()=>Ine,expressionResultIsUnused:()=>SLe,extend:()=>OA,extensionFromPath:()=>tz,extensionIsTS:()=>PAe,extensionsNotSupportingExtensionlessResolution:()=>VAe,externalHelpersModuleNameText:()=>PD,factory:()=>me,fileExtensionIs:()=>aA,fileExtensionIsOneOf:()=>fu,fileIncludeReasonToDiagnostics:()=>Vtt,fileShouldUseJavaScriptRequire:()=>Ant,filter:()=>Me,filterMutate:()=>je,filterSemanticDiagnostics:()=>aVe,find:()=>de,findAncestor:()=>ji,findBestPatternMatch:()=>YA,findChildOfKind:()=>qd,findComputedPropertyNameCacheAssignment:()=>u9e,findConfigFile:()=>stt,findConstructorDeclaration:()=>zY,findContainingList:()=>PVe,findDiagnosticForNode:()=>BMt,findFirstNonJsxWhitespaceToken:()=>K5t,findIndex:()=>Se,findLast:()=>be,findLastIndex:()=>De,findListItemInfo:()=>U5t,findModifier:()=>Qie,findNextToken:()=>fQ,findPackageJson:()=>vMt,findPackageJsons:()=>int,findPrecedingMatchingToken:()=>YVe,findPrecedingToken:()=>Gm,findSuperStatementIndexPath:()=>H9e,findTokenOnLeftOfPosition:()=>Hde,findUseStrictPrologue:()=>T$e,first:()=>ma,firstDefined:()=>X,firstDefinedIterator:()=>ae,firstIterator:()=>vu,firstOrOnly:()=>cnt,firstOrUndefined:()=>Nc,firstOrUndefinedIterator:()=>iA,fixupCompilerOptions:()=>Tnt,flatMap:()=>er,flatMapIterator:()=>xt,flatMapToMutable:()=>vt,flatten:()=>Nr,flattenCommaList:()=>gWt,flattenDestructuringAssignment:()=>TU,flattenDestructuringBinding:()=>uQ,flattenDiagnosticMessageText:()=>wN,forEach:()=>F,forEachAncestor:()=>Ew,forEachAncestorDirectory:()=>pE,forEachAncestorDirectoryStoppingAtGlobalCache:()=>vN,forEachChild:()=>Lu,forEachChildRecursively:()=>Sz,forEachDynamicImportOrRequireCall:()=>$ne,forEachEmittedFile:()=>Uet,forEachEnclosingBlockScopeContainer:()=>Dge,forEachEntry:()=>Dh,forEachExternalModuleToImportFrom:()=>fnt,forEachImportClauseDeclaration:()=>fZe,forEachKey:()=>SB,forEachLeadingCommentRange:()=>GD,forEachNameInAccessChainWalkingLeft:()=>zZe,forEachNameOfDefaultExport:()=>IPe,forEachOptionsSyntaxByName:()=>zAe,forEachProjectReference:()=>gz,forEachPropertyAssignment:()=>WJ,forEachResolvedProjectReference:()=>tie,forEachReturnStatement:()=>yF,forEachRight:()=>Q,forEachTrailingCommentRange:()=>dF,forEachTsConfigPropArray:()=>zre,forEachUnique:()=>Jrt,forEachYieldExpression:()=>eZe,formatColorAndReset:()=>AQ,formatDiagnostic:()=>ltt,formatDiagnostics:()=>$tn,formatDiagnosticsWithColorAndContext:()=>E3t,formatGeneratedName:()=>M3,formatGeneratedNamePart:()=>Eie,formatLocation:()=>utt,formatMessage:()=>XY,formatStringFromArgs:()=>dN,formatting:()=>Im,generateDjb2Hash:()=>ry,generateTSConfig:()=>GWt,getAdjustedReferenceLocation:()=>Brt,getAdjustedRenameLocation:()=>OVe,getAliasDeclarationFromName:()=>Rye,getAllAccessorDeclarations:()=>BP,getAllDecoratorsOfClass:()=>Pet,getAllDecoratorsOfClassElement:()=>Q9e,getAllJSDocTags:()=>dJ,getAllJSDocTagsOfKind:()=>rye,getAllKeys:()=>mI,getAllProjectOutputs:()=>j9e,getAllSuperTypeNodes:()=>R7,getAllowImportingTsExtensions:()=>tLe,getAllowJSCompilerOption:()=>TF,getAllowSyntheticDefaultImports:()=>JY,getAncestor:()=>ML,getAnyExtensionFromPath:()=>gE,getAreDeclarationMapsEnabled:()=>BAe,getAssignedExpandoInitializer:()=>FY,getAssignedName:()=>CB,getAssignmentDeclarationKind:()=>nI,getAssignmentDeclarationPropertyAccessKind:()=>XJ,getAssignmentTargetKind:()=>QD,getAutomaticTypeDirectiveNames:()=>N9e,getBaseFileName:()=>gp,getBinaryOperatorPrecedence:()=>bne,getBuildInfo:()=>ett,getBuildInfoFileVersionMap:()=>Stt,getBuildInfoText:()=>g3t,getBuildOrderFromAnyBuildOrder:()=>$Ee,getBuilderCreationParameters:()=>gVe,getBuilderFileEmit:()=>HP,getCanonicalDiagnostic:()=>Fi,getCheckFlags:()=>iI,getClassExtendsHeritageElement:()=>OL,getClassLikeDeclarationOfSymbol:()=>AN,getCombinedLocalAndExportSymbolFlags:()=>sU,getCombinedModifierFlags:()=>Hc,getCombinedNodeFlags:()=>dm,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>ad,getCommentRange:()=>DB,getCommonSourceDirectory:()=>xde,getCommonSourceDirectoryOfConfig:()=>RU,getCompilerOptionValue:()=>K7,getConditions:()=>PP,getConfigFileParsingDiagnostics:()=>dQ,getConstantValue:()=>LLe,getContainerFlags:()=>met,getContainerNode:()=>kU,getContainingClass:()=>hC,getContainingClassExcludingClassDecorators:()=>Oge,getContainingClassStaticBlock:()=>sZe,getContainingFunction:()=>A1,getContainingFunctionDeclaration:()=>Wge,getContainingFunctionOrClassStaticBlock:()=>qre,getContainingNodeArray:()=>vLe,getContainingObjectLiteralElement:()=>k1e,getContextualTypeFromParent:()=>rPe,getContextualTypeFromParentOrAncestorTypeNode:()=>WVe,getDeclarationDiagnostics:()=>o3t,getDeclarationEmitExtensionForPath:()=>sAe,getDeclarationEmitOutputFilePath:()=>NZe,getDeclarationEmitOutputFilePathWorker:()=>wne,getDeclarationFileExtension:()=>A9e,getDeclarationFromName:()=>T7,getDeclarationModifierFlagsFromSymbol:()=>u2,getDeclarationOfKind:()=>Cp,getDeclarationsOfKind:()=>dge,getDeclaredExpandoInitializer:()=>E7,getDecorators:()=>Rb,getDefaultCompilerOptions:()=>kPe,getDefaultFormatCodeSettings:()=>NVe,getDefaultLibFileName:()=>Hs,getDefaultLibFilePath:()=>AYt,getDefaultLikeExportInfo:()=>fPe,getDefaultLikeExportNameFromDeclaration:()=>lnt,getDefaultResolutionModeForFileWorker:()=>oVe,getDiagnosticText:()=>Zb,getDiagnosticsWithinSpan:()=>wMt,getDirectoryPath:()=>Mo,getDirectoryToWatchFailedLookupLocation:()=>Ttt,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>U3t,getDocumentPositionMapper:()=>Ent,getDocumentSpansEqualityComparer:()=>Xrt,getESModuleInterop:()=>kw,getEditsForFileRename:()=>LMt,getEffectiveBaseTypeNode:()=>BB,getEffectiveConstraintOfTypeParameter:()=>n3,getEffectiveContainerForJSDocTemplateTag:()=>zge,getEffectiveImplementsTypeNodes:()=>jJ,getEffectiveInitializer:()=>one,getEffectiveJSDocHost:()=>WL,getEffectiveModifierFlags:()=>o_,getEffectiveModifierFlagsAlwaysIncludeJSDoc:()=>PZe,getEffectiveModifierFlagsNoCache:()=>zye,getEffectiveReturnTypeNode:()=>xb,getEffectiveSetAccessorTypeAnnotationNode:()=>Jye,getEffectiveTypeAnnotationNode:()=>kh,getEffectiveTypeParameterDeclarations:()=>ZD,getEffectiveTypeRoots:()=>mde,getElementOrPropertyAccessArgumentExpressionOrName:()=>jge,getElementOrPropertyAccessName:()=>YD,getElementsOfBindingOrAssignmentPattern:()=>bie,getEmitDeclarations:()=>Ly,getEmitFlags:()=>tA,getEmitHelpers:()=>jbe,getEmitModuleDetectionKind:()=>rLe,getEmitModuleFormatOfFileWorker:()=>Lde,getEmitModuleKind:()=>i0,getEmitModuleResolutionKind:()=>k_,getEmitScriptTarget:()=>Mg,getEmitStandardClassFields:()=>hbe,getEnclosingBlockScopeContainer:()=>tS,getEnclosingContainer:()=>f7,getEncodedSemanticClassifications:()=>Int,getEncodedSyntacticClassifications:()=>hnt,getEndLinePosition:()=>vY,getEntityNameFromTypeNode:()=>ene,getEntrypointsFromPackageJsonInfo:()=>det,getErrorCountForSummary:()=>pVe,getErrorSpanForNode:()=>qa,getErrorSummaryText:()=>ktt,getEscapedTextOfIdentifierOrLiteral:()=>qJ,getEscapedTextOfJsxAttributeName:()=>cz,getEscapedTextOfJsxNamespacedName:()=>oS,getExpandoInitializer:()=>VL,getExportAssignmentExpression:()=>hne,getExportInfoMap:()=>S1e,getExportNeedsImportStarHelper:()=>wOt,getExpressionAssociativity:()=>Zye,getExpressionPrecedence:()=>x7,getExternalHelpersModuleName:()=>uEe,getExternalModuleImportEqualsDeclarationExpression:()=>_7,getExternalModuleName:()=>LY,getExternalModuleNameFromDeclaration:()=>TZe,getExternalModuleNameFromPath:()=>Mye,getExternalModuleNameLiteral:()=>Ez,getExternalModuleRequireArgument:()=>Cye,getFallbackOptions:()=>QEe,getFileEmitOutput:()=>T3t,getFileMatcherPatterns:()=>kAe,getFileNamesFromConfigSpecs:()=>Ide,getFileWatcherEventKind:()=>qS,getFilesInErrorForSummary:()=>fVe,getFirstConstructorWithBody:()=>lN,getFirstIdentifier:()=>B0,getFirstNonSpaceCharacterPosition:()=>CMt,getFirstProjectOutput:()=>zet,getFixableErrorSpanExpression:()=>ont,getFormatCodeSettingsForWriting:()=>APe,getFullWidth:()=>DJ,getFunctionFlags:()=>SI,getHeritageClause:()=>mne,getHostSignatureFromJSDoc:()=>PL,getIdentifierAutoGenerate:()=>s$e,getIdentifierGeneratedImportReference:()=>HLe,getIdentifierTypeArguments:()=>G3,getImmediatelyInvokedFunctionExpression:()=>ZL,getImpliedNodeFormatForEmitWorker:()=>NU,getImpliedNodeFormatForFile:()=>JEe,getImpliedNodeFormatForFileWorker:()=>sVe,getImportNeedsImportDefaultHelper:()=>Zet,getImportNeedsImportStarHelper:()=>O9e,getIndentString:()=>iAe,getInferredLibraryNameResolveFrom:()=>iVe,getInitializedVariables:()=>iU,getInitializerOfBinaryExpression:()=>bye,getInitializerOfBindingOrAssignmentElement:()=>AEe,getInterfaceBaseTypeNodes:()=>N7,getInternalEmitFlags:()=>g1,getInvokedExpression:()=>Yge,getIsFileExcluded:()=>kMt,getIsolatedModules:()=>sS,getJSDocAugmentsTag:()=>K6,getJSDocClassTag:()=>bx,getJSDocCommentRanges:()=>dye,getJSDocCommentsAndTags:()=>Sye,getJSDocDeprecatedTag:()=>Kh,getJSDocDeprecatedTagNoCache:()=>i2,getJSDocEnumTag:()=>a1,getJSDocHost:()=>bP,getJSDocImplementsTags:()=>uY,getJSDocOverloadTags:()=>Bye,getJSDocOverrideTagNoCache:()=>Pd,getJSDocParameterTags:()=>vL,getJSDocParameterTagsNoCache:()=>uJ,getJSDocPrivateTag:()=>Es,getJSDocPrivateTagNoCache:()=>Aa,getJSDocProtectedTag:()=>ha,getJSDocProtectedTagNoCache:()=>Ua,getJSDocPublicTag:()=>_re,getJSDocPublicTagNoCache:()=>Ex,getJSDocReadonlyTag:()=>wc,getJSDocReadonlyTagNoCache:()=>hA,getJSDocReturnTag:()=>sv,getJSDocReturnType:()=>AJ,getJSDocRoot:()=>KJ,getJSDocSatisfiesExpressionType:()=>Lbe,getJSDocSatisfiesTag:()=>fF,getJSDocTags:()=>Sx,getJSDocTemplateTag:()=>oP,getJSDocThisTag:()=>Nb,getJSDocType:()=>eN,getJSDocTypeAliasName:()=>D$e,getJSDocTypeAssertionType:()=>_ie,getJSDocTypeParameterDeclarations:()=>uAe,getJSDocTypeParameterTags:()=>r3,getJSDocTypeParameterTagsNoCache:()=>U6,getJSDocTypeTag:()=>ov,getJSXImplicitImportBase:()=>One,getJSXRuntimeImport:()=>Mne,getJSXTransformEnabled:()=>RAe,getKeyForCompilerOptions:()=>aet,getLanguageVariant:()=>Zne,getLastChild:()=>ube,getLeadingCommentRanges:()=>fE,getLeadingCommentRangesOfNode:()=>Fge,getLeftmostAccessExpression:()=>oU,getLeftmostExpression:()=>aU,getLibFileNameFromLibReference:()=>Obe,getLibNameFromLibReference:()=>qY,getLibraryNameFromLibFileName:()=>ptt,getLineAndCharacterOfPosition:()=>Ra,getLineInfo:()=>xet,getLineOfLocalPosition:()=>Z7,getLineStartPositionForPosition:()=>PB,getLineStarts:()=>rn,getLinesBetweenPositionAndNextNonWhitespaceCharacter:()=>obe,getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter:()=>KZe,getLinesBetweenPositions:()=>ec,getLinesBetweenRangeEndAndRangeStart:()=>v3,getLinesBetweenRangeEndPositions:()=>UZe,getLiteralText:()=>Sge,getLocalNameForExternalImport:()=>yie,getLocalSymbolForExportDefault:()=>W7,getLocaleSpecificMessage:()=>Bu,getLocaleTimeString:()=>qEe,getMappedContextSpan:()=>Urt,getMappedDocumentSpan:()=>$Ve,getMappedLocation:()=>Jde,getMatchedFileSpec:()=>Ztt,getMatchedIncludeSpec:()=>Ltt,getMeaningFromDeclaration:()=>kVe,getMeaningFromLocation:()=>DU,getMembersOfDeclaration:()=>Zge,getModeForFileReference:()=>S3t,getModeForResolutionAtIndex:()=>srn,getModeForUsageLocation:()=>Att,getModifiedTime:()=>bb,getModifiers:()=>$R,getModuleInstanceState:()=>PF,getModuleNameStringLiteralAt:()=>KEe,getModuleSpecifierEndingPreference:()=>fLe,getModuleSpecifierResolverHost:()=>Prt,getNameForExportedSymbol:()=>lPe,getNameFromImportAttribute:()=>XAe,getNameFromIndexInfo:()=>kge,getNameFromPropertyName:()=>d1e,getNameOfAccessExpression:()=>gbe,getNameOfCompilerOptionValue:()=>y9e,getNameOfDeclaration:()=>Il,getNameOfExpando:()=>_ye,getNameOfJSDocTypedef:()=>pF,getNameOfScriptTarget:()=>TAe,getNameOrArgument:()=>cne,getNameTable:()=>$nt,getNamespaceDeclarationNode:()=>JJ,getNewLineCharacter:()=>uN,getNewLineKind:()=>E1e,getNewLineOrDefaultFromHost:()=>OF,getNewTargetContainer:()=>aZe,getNextJSDocCommentLocation:()=>vye,getNodeChildren:()=>b$e,getNodeForGeneratedName:()=>pEe,getNodeId:()=>rd,getNodeKind:()=>pQ,getNodeModifiers:()=>Yde,getNodeModulePathParts:()=>MAe,getNonAssignedNameOfDeclaration:()=>Cw,getNonAssignmentOperatorForCompoundAssignment:()=>Bde,getNonAugmentationDeclaration:()=>LJ,getNonDecoratorTokenPosOfNode:()=>Mre,getNonIncrementalBuildInfoRoots:()=>H3t,getNonModifierTokenPosOfNode:()=>Ege,getNormalizedAbsolutePath:()=>Xc,getNormalizedAbsolutePathWithoutRoot:()=>KR,getNormalizedPathComponents:()=>AB,getObjectFlags:()=>la,getOperatorAssociativity:()=>Lye,getOperatorPrecedence:()=>yne,getOptionFromName:()=>J$e,getOptionsForLibraryResolution:()=>cet,getOptionsNameMap:()=>vie,getOptionsSyntaxByArrayElementValue:()=>Mbe,getOptionsSyntaxByValue:()=>kLe,getOrCreateEmitNode:()=>c_,getOrUpdate:()=>cr,getOriginalNode:()=>Dd,getOriginalNodeId:()=>Wy,getOutputDeclarationFileName:()=>kde,getOutputDeclarationFileNameWorker:()=>Ket,getOutputExtension:()=>MEe,getOutputFileNames:()=>ztn,getOutputJSFileNameWorker:()=>jet,getOutputPathsFor:()=>Dde,getOwnEmitOutputFilePath:()=>RZe,getOwnKeys:()=>_g,getOwnValues:()=>Qh,getPackageJsonTypesVersionsPaths:()=>R9e,getPackageNameFromTypesPackageName:()=>bde,getPackageScopeForPath:()=>yde,getParameterSymbolFromJSDoc:()=>dne,getParentNodeInSpan:()=>f1e,getParseTreeNode:()=>$l,getParsedCommandLineOfConfigFile:()=>_Ee,getPathComponents:()=>Np,getPathFromPathComponents:()=>Dm,getPathUpdater:()=>_nt,getPathsBasePath:()=>oAe,getPatternFromSpec:()=>Ebe,getPendingEmitKindWithSeen:()=>uVe,getPositionOfLineAndCharacter:()=>th,getPossibleGenericSignatures:()=>Trt,getPossibleOriginalInputExtensionForExtension:()=>Hye,getPossibleOriginalInputPathWithoutChangingExt:()=>Yye,getPossibleTypeArgumentsInfo:()=>Rrt,getPreEmitDiagnostics:()=>qtn,getPrecedingNonSpaceCharacterPosition:()=>ePe,getPrivateIdentifier:()=>Wet,getProperties:()=>Vet,getProperty:()=>pu,getPropertyAssignmentAliasLikeExpression:()=>bZe,getPropertyNameForPropertyNameNode:()=>_3,getPropertyNameFromType:()=>A2,getPropertyNameOfBindingOrAssignmentElement:()=>N$e,getPropertySymbolFromBindingElement:()=>qVe,getPropertySymbolsFromContextualType:()=>GPe,getQuoteFromPreference:()=>Ort,getQuotePreference:()=>_1,getRangesWhere:()=>Fn,getRefactorContextSpan:()=>Vz,getReferencedFileLocation:()=>Zde,getRegexFromPattern:()=>zD,getRegularExpressionForWildcard:()=>j7,getRegularExpressionsForWildcards:()=>Hne,getRelativePathFromDirectory:()=>mp,getRelativePathFromFile:()=>i1,getRelativePathToDirectoryOrUrl:()=>Of,getRenameLocation:()=>h1e,getReplacementSpanForContextToken:()=>xrt,getResolutionDiagnostic:()=>mtt,getResolutionModeOverride:()=>Gie,getResolveJsonModule:()=>NP,getResolvePackageJsonExports:()=>U7,getResolvePackageJsonImports:()=>Vne,getResolvedExternalModuleName:()=>F7,getResolvedModuleFromResolution:()=>xL,getResolvedTypeReferenceDirectiveFromResolution:()=>c7,getRestIndicatorOfBindingOrAssignmentElement:()=>a9e,getRestParameterElementType:()=>pye,getRightMostAssignedExpression:()=>ane,getRootDeclaration:()=>Rw,getRootDirectoryOfResolutionCache:()=>K3t,getRootLength:()=>Wf,getScriptKind:()=>qrt,getScriptKindFromFileName:()=>GAe,getScriptTargetFeatures:()=>Hre,getSelectedEffectiveModifierFlags:()=>MY,getSelectedSyntacticModifierFlags:()=>LZe,getSemanticClassifications:()=>xMt,getSemanticJsxChildren:()=>$J,getSetAccessorTypeAnnotationNode:()=>kZe,getSetAccessorValueParameter:()=>L7,getSetExternalModuleIndicator:()=>Lne,getShebang:()=>mB,getSingleVariableOfVariableStatement:()=>m3,getSnapshotText:()=>Lz,getSnippetElement:()=>zbe,getSourceFileOfModule:()=>FJ,getSourceFileOfNode:()=>ms,getSourceFilePathInNewDir:()=>cAe,getSourceFileVersionAsHashFromText:()=>hVe,getSourceFilesToEmit:()=>aAe,getSourceMapRange:()=>XT,getSourceMapper:()=>KMt,getSourceTextOfNodeFromSourceFile:()=>mF,getSpanOfTokenAtPosition:()=>rs,getSpellingSuggestion:()=>Dr,getStartPositionOfLine:()=>OD,getStartPositionOfRange:()=>H7,getStartsOnNewLine:()=>D3,getStaticPropertiesAndClassStaticBlock:()=>Y9e,getStrictOptionValue:()=>a_,getStringComparer:()=>ld,getSubPatternFromSpec:()=>DAe,getSuperCallFromStatement:()=>M9e,getSuperContainer:()=>C7,getSupportedCodeFixes:()=>znt,getSupportedExtensions:()=>z7,getSupportedExtensionsWithJsonIfResolveJsonModule:()=>q7,getSwitchedType:()=>tnt,getSymbolId:()=>kg,getSymbolNameForPrivateIdentifier:()=>_ne,getSymbolTarget:()=>$rt,getSyntacticClassifications:()=>GMt,getSyntacticModifierFlags:()=>Nx,getSyntacticModifierFlagsNoCache:()=>qye,getSynthesizedDeepClone:()=>JA,getSynthesizedDeepCloneWithReplacements:()=>rie,getSynthesizedDeepClones:()=>o0,getSynthesizedDeepClonesWithReplacements:()=>qAe,getSyntheticLeadingComments:()=>k3,getSyntheticTrailingComments:()=>hU,getTargetLabel:()=>FVe,getTargetOfBindingOrAssignmentElement:()=>ZP,getTemporaryModuleResolutionState:()=>_de,getTextOfConstantValue:()=>vge,getTextOfIdentifierOrLiteral:()=>c2,getTextOfJSDocComment:()=>pJ,getTextOfJsxAttributeName:()=>xw,getTextOfJsxNamespacedName:()=>lz,getTextOfNode:()=>xp,getTextOfNodeFromSourceText:()=>TY,getTextOfPropertyName:()=>hP,getThisContainer:()=>r0,getThisParameter:()=>vP,getTokenAtPosition:()=>Jc,getTokenPosOfNode:()=>MD,getTokenSourceMapRange:()=>fz,getTouchingPropertyName:()=>Lb,getTouchingToken:()=>Hie,getTrailingCommentRanges:()=>n2,getTrailingSemicolonDeferringWriter:()=>Oye,getTransformers:()=>c3t,getTsBuildInfoEmitOutputFilePath:()=>U3,getTsConfigObjectLiteralExpression:()=>m7,getTsConfigPropArrayElementValue:()=>Pge,getTypeAnnotationNode:()=>xZe,getTypeArgumentOrTypeParameterList:()=>rMt,getTypeKeywordOfTypeOnlyImport:()=>Yrt,getTypeNode:()=>OLe,getTypeNodeIfAccessible:()=>qde,getTypeParameterFromJsDoc:()=>hZe,getTypeParameterOwner:()=>ye,getTypesPackageName:()=>F9e,getUILocale:()=>df,getUniqueName:()=>GU,getUniqueSymbolId:()=>mMt,getUseDefineForClassFields:()=>Pne,getWatchErrorSummaryDiagnosticMessage:()=>Dtt,getWatchFactory:()=>itt,group:()=>Yn,groupBy:()=>Ko,guessIndentation:()=>xre,handleNoEmitOptions:()=>htt,handleWatchOptionsConfigDirTemplateSubstitution:()=>E9e,hasAbstractModifier:()=>wP,hasAccessorModifier:()=>Nw,hasAmbientModifier:()=>jye,hasChangesInResolutions:()=>Pre,hasContextSensitiveParameters:()=>OAe,hasDecorators:()=>p1,hasDocComment:()=>eMt,hasDynamicName:()=>XD,hasEffectiveModifier:()=>Gb,hasEffectiveModifiers:()=>Kye,hasEffectiveReadonlyModifier:()=>b3,hasExtension:()=>E0,hasImplementationTSFileExtension:()=>dLe,hasIndexSignature:()=>ent,hasInferredType:()=>KAe,hasInitializer:()=>WT,hasInvalidEscape:()=>Pye,hasJSDocNodes:()=>Xm,hasJSDocParameterTags:()=>gJ,hasJSFileExtension:()=>pN,hasJsonModuleEmitEnabled:()=>wAe,hasOnlyExpressionInitializer:()=>l1,hasOverrideModifier:()=>Tne,hasPossibleExternalModuleReference:()=>Nge,hasProperty:()=>Da,hasPropertyAccessExpressionWithName:()=>s1e,hasQuestionToken:()=>VY,hasRecordedExternalHelpers:()=>$Pt,hasResolutionModeOverride:()=>RLe,hasRestParameter:()=>Gre,hasScopeMarker:()=>Db,hasStaticModifier:()=>zh,hasSyntacticModifier:()=>Ga,hasSyntacticModifiers:()=>ZZe,hasTSFileExtension:()=>w3,hasTabstop:()=>wLe,hasTrailingDirectorySeparator:()=>Jp,hasType:()=>If,hasTypeArguments:()=>Eqe,hasZeroOrOneAsteriskCharacter:()=>Cbe,hostGetCanonicalFileName:()=>JD,hostUsesCaseSensitiveFileNames:()=>y3,idText:()=>Vo,identifierIsThisKeyword:()=>Xye,identifierToKeywordKind:()=>iv,identity:()=>Fl,identitySourceMapConsumer:()=>Fet,ignoreSourceNewlines:()=>$be,ignoredPaths:()=>Qp,importFromModuleSpecifier:()=>v7,importSyntaxAffectsModuleResolution:()=>Ibe,indexOfAnyCharCode:()=>et,indexOfNode:()=>fP,indicesOf:()=>po,inferredTypesContainingFile:()=>Fde,injectClassNamedEvaluationHelperBlockIfMissing:()=>U9e,injectClassThisAssignmentIfMissing:()=>FOt,insertImports:()=>Hrt,insertSorted:()=>Gc,insertStatementAfterCustomPrologue:()=>FL,insertStatementAfterStandardPrologue:()=>yge,insertStatementsAfterCustomPrologue:()=>Wre,insertStatementsAfterStandardPrologue:()=>Sw,intersperse:()=>fe,intrinsicTagNameToString:()=>Vbe,introducesArgumentsExoticObject:()=>rZe,inverseJsxOptionMap:()=>mEe,isAbstractConstructorSymbol:()=>lbe,isAbstractModifier:()=>Xe,isAccessExpression:()=>_p,isAccessibilityModifier:()=>Drt,isAccessor:()=>yB,isAccessorModifier:()=>It,isAliasableExpression:()=>$ge,isAmbientModule:()=>s_,isAmbientPropertyDeclaration:()=>VJ,isAnyDirectorySeparator:()=>e0,isAnyImportOrBareOrAccessedRequire:()=>Rge,isAnyImportOrReExport:()=>DY,isAnyImportOrRequireStatement:()=>d7,isAnyImportSyntax:()=>IP,isAnySupportedFileExtension:()=>Uqe,isApplicableVersionedTypesKey:()=>REe,isArgumentExpressionOfElementAccess:()=>_rt,isArray:()=>Ki,isArrayBindingElement:()=>o3,isArrayBindingOrAssignmentElement:()=>EJ,isArrayBindingOrAssignmentPattern:()=>Bre,isArrayBindingPattern:()=>p2,isArrayLiteralExpression:()=>OI,isArrayLiteralOrObjectLiteralDestructuringPattern:()=>e9,isArrayTypeNode:()=>kF,isArrowFunction:()=>lA,isAsExpression:()=>Yd,isAssertClause:()=>xPt,isAssertEntry:()=>qqr,isAssertionExpression:()=>Ed,isAssertsKeyword:()=>J,isAssignmentDeclaration:()=>b7,isAssignmentExpression:()=>Jm,isAssignmentOperator:()=>UD,isAssignmentPattern:()=>CY,isAssignmentTarget:()=>bF,isAsteriskToken:()=>gie,isAsyncFunction:()=>D7,isAsyncModifier:()=>G,isAutoAccessorPropertyDeclaration:()=>t0,isAwaitExpression:()=>I1,isAwaitKeyword:()=>U,isBigIntLiteral:()=>eQ,isBinaryExpression:()=>fo,isBinaryLogicalOperator:()=>Rne,isBinaryOperatorToken:()=>aWt,isBindableObjectDefinePropertyCall:()=>f3,isBindableStaticAccessExpression:()=>yP,isBindableStaticElementAccessExpression:()=>Kge,isBindableStaticNameExpression:()=>I3,isBindingElement:()=>hg,isBindingElementOfBareOrAccessedRequire:()=>uZe,isBindingName:()=>RL,isBindingOrAssignmentElement:()=>_J,isBindingOrAssignmentPattern:()=>yJ,isBindingPattern:()=>Nu,isBlock:()=>$u,isBlockLike:()=>Pz,isBlockOrCatchScoped:()=>ZJ,isBlockScope:()=>PJ,isBlockScopedContainerTopLevel:()=>Tge,isBooleanLiteral:()=>hY,isBreakOrContinueStatement:()=>AY,isBreakStatement:()=>Kqr,isBuildCommand:()=>h5t,isBuildInfoFile:()=>l3t,isBuilderProgram:()=>xtt,isBundle:()=>LPt,isCallChain:()=>_B,isCallExpression:()=>Zl,isCallExpressionTarget:()=>prt,isCallLikeExpression:()=>hF,isCallLikeOrFunctionLikeExpression:()=>Tre,isCallOrNewExpression:()=>av,isCallOrNewExpressionTarget:()=>frt,isCallSignatureDeclaration:()=>wg,isCallToHelper:()=>qD,isCaseBlock:()=>ade,isCaseClause:()=>fie,isCaseKeyword:()=>Ks,isCaseOrDefaultClause:()=>RJ,isCatchClause:()=>iQ,isCatchClauseVariableDeclaration:()=>BLe,isCatchClauseVariableDeclarationOrBindingElement:()=>Yre,isCheckJsEnabledForFile:()=>rz,isCircularBuildOrder:()=>Fz,isClassDeclaration:()=>pm,isClassElement:()=>PI,isClassExpression:()=>vd,isClassInstanceProperty:()=>vre,isClassLike:()=>xa,isClassMemberModifier:()=>Sre,isClassNamedEvaluationHelperBlock:()=>kz,isClassOrTypeElement:()=>mY,isClassStaticBlockDeclaration:()=>fl,isClassThisAssignmentBlock:()=>Tde,isColonToken:()=>nEe,isCommaExpression:()=>lEe,isCommaListExpression:()=>sde,isCommaSequence:()=>Ade,isCommaToken:()=>rEe,isComment:()=>QVe,isCommonJsExportPropertyAssignment:()=>Lge,isCommonJsExportedExpression:()=>fye,isCompoundAssignment:()=>vde,isComputedNonLiteralName:()=>kY,isComputedPropertyName:()=>Un,isConciseBody:()=>r7,isConditionalExpression:()=>Lw,isConditionalTypeNode:()=>d2,isConstAssertion:()=>Pbe,isConstTypeReference:()=>s2,isConstructSignatureDeclaration:()=>em,isConstructorDeclaration:()=>Tc,isConstructorTypeNode:()=>$D,isContextualKeyword:()=>tAe,isContinueStatement:()=>Uqr,isCustomPrologue:()=>jre,isDebuggerStatement:()=>jqr,isDeclaration:()=>jh,isDeclarationBindingElement:()=>uP,isDeclarationFileName:()=>PC,isDeclarationName:()=>HT,isDeclarationNameOfEnumOrNamespace:()=>abe,isDeclarationReadonly:()=>hf,isDeclarationStatement:()=>uge,isDeclarationWithTypeParameterChildren:()=>Kre,isDeclarationWithTypeParameters:()=>Ure,isDecorator:()=>So,isDecoratorTarget:()=>H5t,isDefaultClause:()=>cde,isDefaultImport:()=>h3,isDefaultModifier:()=>w,isDefaultedExpandoInitializer:()=>gZe,isDeleteExpression:()=>GF,isDeleteTarget:()=>Tye,isDeprecatedDeclaration:()=>uPe,isDestructuringAssignment:()=>Dx,isDiskPathRoot:()=>cE,isDoStatement:()=>Jqr,isDocumentRegistryEntry:()=>v1e,isDotDotDotToken:()=>nde,isDottedName:()=>Dne,isDynamicName:()=>rAe,isEffectiveExternalModule:()=>g3,isEffectiveStrictModeSourceFile:()=>Jre,isElementAccessChain:()=>IF,isElementAccessExpression:()=>Yg,isEmittedFileOfProgram:()=>I3t,isEmptyArrayLiteral:()=>YZe,isEmptyBindingElement:()=>wr,isEmptyBindingPattern:()=>Ct,isEmptyObjectLiteral:()=>rbe,isEmptyStatement:()=>g$e,isEmptyStringLiteral:()=>mye,isEntityName:()=>fC,isEntityNameExpression:()=>Od,isEnumConst:()=>VA,isEnumDeclaration:()=>V3,isEnumMember:()=>LF,isEqualityOperatorKind:()=>nPe,isEqualsGreaterThanToken:()=>KLe,isExclamationToken:()=>Cz,isExcludedFile:()=>ZWt,isExclusivelyTypeOnlyImportOrExport:()=>gtt,isExpandoPropertyDeclaration:()=>jY,isExportAssignment:()=>Cf,isExportDeclaration:()=>Gh,isExportModifier:()=>y,isExportName:()=>s9e,isExportNamespaceAsDefaultDeclaration:()=>wY,isExportOrDefaultModifier:()=>dEe,isExportSpecifier:()=>R0,isExportsIdentifier:()=>p3,isExportsOrModuleExportsOrAlias:()=>cQ,isExpression:()=>un,isExpressionNode:()=>MT,isExpressionOfExternalModuleImportEqualsDeclaration:()=>X5t,isExpressionOfOptionalChainRoot:()=>gY,isExpressionStatement:()=>VC,isExpressionWithTypeArguments:()=>l_,isExpressionWithTypeArgumentsInClassExtendsClause:()=>dAe,isExternalModule:()=>xm,isExternalModuleAugmentation:()=>_F,isExternalModuleImportEqualsDeclaration:()=>LL,isExternalModuleIndicator:()=>PT,isExternalModuleNameRelative:()=>Xr,isExternalModuleReference:()=>ZF,isExternalModuleSymbol:()=>WD,isExternalOrCommonJsModule:()=>vl,isFileLevelReservedGeneratedIdentifier:()=>fY,isFileLevelUniqueName:()=>u7,isFileProbablyExternalModule:()=>IEe,isFirstDeclarationOfSymbolParameter:()=>Krt,isFixablePromiseHandler:()=>Bnt,isForInOrOfStatement:()=>DL,isForInStatement:()=>jLe,isForInitializer:()=>hE,isForOfStatement:()=>iEe,isForStatement:()=>L3,isFullSourceFile:()=>aN,isFunctionBlock:()=>mP,isFunctionBody:()=>n7,isFunctionDeclaration:()=>ih,isFunctionExpression:()=>UA,isFunctionExpressionOrArrowFunction:()=>RF,isFunctionLike:()=>bu,isFunctionLikeDeclaration:()=>kd,isFunctionLikeKind:()=>lP,isFunctionLikeOrClassStaticBlockDeclaration:()=>s3,isFunctionOrConstructorTypeNode:()=>oge,isFunctionOrModuleBlock:()=>CJ,isFunctionSymbol:()=>dZe,isFunctionTypeNode:()=>x_,isGeneratedIdentifier:()=>kp,isGeneratedPrivateIdentifier:()=>TL,isGetAccessor:()=>bB,isGetAccessorDeclaration:()=>Bg,isGetOrSetAccessorDeclaration:()=>fJ,isGlobalScopeAugmentation:()=>vB,isGlobalSourceFile:()=>fc,isGrammarError:()=>_ge,isHeritageClause:()=>h1,isHoistedFunction:()=>xge,isHoistedVariableStatement:()=>Gge,isIdentifier:()=>Ir,isIdentifierANonContextualKeyword:()=>kye,isIdentifierName:()=>yZe,isIdentifierOrThisTypeNode:()=>nWt,isIdentifierPart:()=>s1,isIdentifierStart:()=>bd,isIdentifierText:()=>Uh,isIdentifierTypePredicate:()=>nZe,isIdentifierTypeReference:()=>yLe,isIfStatement:()=>Z3,isIgnoredFileFromWildCardWatching:()=>YEe,isImplicitGlob:()=>bbe,isImportAttribute:()=>GPt,isImportAttributeName:()=>e7,isImportAttributes:()=>CU,isImportCall:()=>Up,isImportClause:()=>Vw,isImportDeclaration:()=>Mf,isImportEqualsDeclaration:()=>km,isImportKeyword:()=>an,isImportMeta:()=>uv,isImportOrExportSpecifier:()=>eS,isImportOrExportSpecifierName:()=>hMt,isImportSpecifier:()=>uy,isImportTypeAssertionContainer:()=>zqr,isImportTypeNode:()=>Um,isImportable:()=>pnt,isInComment:()=>$L,isInCompoundLikeAssignment:()=>qge,isInExpressionContext:()=>rne,isInJSDoc:()=>GY,isInJSFile:()=>wo,isInJSXText:()=>$5t,isInJsonFile:()=>Xge,isInNonReferenceComment:()=>sMt,isInReferenceComment:()=>iMt,isInRightSideOfInternalImportEqualsDeclaration:()=>xVe,isInString:()=>Zz,isInTemplateString:()=>wrt,isInTopLevelContext:()=>Mge,isInTypeQuery:()=>OY,isIncrementalBuildInfo:()=>jEe,isIncrementalBundleEmitBuildInfo:()=>L3t,isIncrementalCompilation:()=>DP,isIndexSignatureDeclaration:()=>w0,isIndexedAccessTypeNode:()=>Iv,isInferTypeNode:()=>jT,isInfinityOrNaNString:()=>oz,isInitializedProperty:()=>GEe,isInitializedVariable:()=>xne,isInsideJsxElement:()=>HVe,isInsideJsxElementOrAttribute:()=>q5t,isInsideNodeModules:()=>_1e,isInsideTemplateLiteral:()=>u1e,isInstanceOfExpression:()=>pAe,isInstantiatedModule:()=>Tet,isInterfaceDeclaration:()=>g_,isInternalDeclaration:()=>Fre,isInternalModuleImportEqualsDeclaration:()=>d3,isInternalName:()=>w$e,isIntersectionTypeNode:()=>mf,isIntrinsicJsxName:()=>eU,isIterationStatement:()=>VT,isJSDoc:()=>tR,isJSDocAllType:()=>WPt,isJSDocAugmentsTag:()=>bz,isJSDocAuthorTag:()=>r$r,isJSDocCallbackTag:()=>f$e,isJSDocClassTag:()=>MPt,isJSDocCommentContainingNode:()=>i7,isJSDocConstructSignature:()=>PY,isJSDocDeprecatedTag:()=>_$e,isJSDocEnumTag:()=>oEe,isJSDocFunctionType:()=>hie,isJSDocImplementsTag:()=>r9e,isJSDocImportTag:()=>SN,isJSDocIndexSignature:()=>Uge,isJSDocLikeText:()=>Z$e,isJSDocLink:()=>VPt,isJSDocLinkCode:()=>PPt,isJSDocLinkLike:()=>Tx,isJSDocLinkPlain:()=>e$r,isJSDocMemberName:()=>O3,isJSDocNameReference:()=>lde,isJSDocNamepathType:()=>t$r,isJSDocNamespaceBody:()=>oye,isJSDocNode:()=>l3,isJSDocNonNullableType:()=>qLe,isJSDocNullableType:()=>Iie,isJSDocOptionalParameter:()=>HAe,isJSDocOptionalType:()=>p$e,isJSDocOverloadTag:()=>mie,isJSDocOverrideTag:()=>e9e,isJSDocParameterTag:()=>cS,isJSDocPrivateTag:()=>h$e,isJSDocPropertyLikeTag:()=>dY,isJSDocPropertyTag:()=>HPt,isJSDocProtectedTag:()=>m$e,isJSDocPublicTag:()=>I$e,isJSDocReadonlyTag:()=>C$e,isJSDocReturnTag:()=>t9e,isJSDocSatisfiesExpression:()=>Zbe,isJSDocSatisfiesTag:()=>n9e,isJSDocSeeTag:()=>n$r,isJSDocSignature:()=>qL,isJSDocTag:()=>u3,isJSDocTemplateTag:()=>ZB,isJSDocThisTag:()=>y$e,isJSDocThrowsTag:()=>s$r,isJSDocTypeAlias:()=>iS,isJSDocTypeAssertion:()=>sQ,isJSDocTypeExpression:()=>W3,isJSDocTypeLiteral:()=>yU,isJSDocTypeTag:()=>ude,isJSDocTypedefTag:()=>bU,isJSDocUnknownTag:()=>i$r,isJSDocUnknownType:()=>OPt,isJSDocVariadicType:()=>$Le,isJSXTagName:()=>YJ,isJsonEqual:()=>WAe,isJsonSourceFile:()=>Zu,isJsxAttribute:()=>EN,isJsxAttributeLike:()=>wJ,isJsxAttributeName:()=>TLe,isJsxAttributes:()=>nQ,isJsxCallLike:()=>c3,isJsxChild:()=>BJ,isJsxClosingElement:()=>rQ,isJsxClosingFragment:()=>ZPt,isJsxElement:()=>bN,isJsxExpression:()=>pie,isJsxFragment:()=>P3,isJsxNamespacedName:()=>eR,isJsxOpeningElement:()=>$T,isJsxOpeningFragment:()=>Pw,isJsxOpeningLikeElement:()=>eI,isJsxOpeningLikeElementTagName:()=>Y5t,isJsxSelfClosingElement:()=>_U,isJsxSpreadAttribute:()=>yz,isJsxTagNameExpression:()=>kL,isJsxText:()=>KL,isJumpStatementTarget:()=>o1e,isKeyword:()=>v0,isKeywordOrPunctuation:()=>eAe,isKnownSymbol:()=>k7,isLabelName:()=>mrt,isLabelOfLabeledStatement:()=>hrt,isLabeledStatement:()=>FP,isLateVisibilityPaintedStatement:()=>p7,isLeftHandSideExpression:()=>D_,isLet:()=>rS,isLineBreak:()=>Cl,isLiteralComputedPropertyDeclarationName:()=>fne,isLiteralExpression:()=>wL,isLiteralExpressionOfObject:()=>bre,isLiteralImportTypeNode:()=>ky,isLiteralKind:()=>pY,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>ZVe,isLiteralTypeLiteral:()=>age,isLiteralTypeNode:()=>EE,isLocalName:()=>VF,isLogicalOperator:()=>OZe,isLogicalOrCoalescingAssignmentExpression:()=>gAe,isLogicalOrCoalescingAssignmentOperator:()=>V7,isLogicalOrCoalescingBinaryExpression:()=>Nne,isLogicalOrCoalescingBinaryOperator:()=>AAe,isMappedTypeNode:()=>GB,isMemberName:()=>_w,isMetaProperty:()=>Du,isMethodDeclaration:()=>uu,isMethodOrAccessor:()=>NL,isMethodSignature:()=>hl,isMinusToken:()=>ide,isMissingDeclaration:()=>$qr,isMissingPackageJsonInfo:()=>JWt,isModifier:()=>Ig,isModifierKind:()=>VD,isModifierLike:()=>dp,isModuleAugmentationExternal:()=>Xre,isModuleBlock:()=>_N,isModuleBody:()=>cge,isModuleDeclaration:()=>xh,isModuleExportName:()=>zLe,isModuleExportsAccessExpression:()=>cN,isModuleIdentifier:()=>_P,isModuleName:()=>oWt,isModuleOrEnumDeclaration:()=>a3,isModuleReference:()=>yY,isModuleSpecifierLike:()=>zVe,isModuleWithStringLiteralName:()=>RY,isNameOfFunctionDeclaration:()=>brt,isNameOfModuleDeclaration:()=>yrt,isNamedDeclaration:()=>rh,isNamedEvaluation:()=>kb,isNamedEvaluationSource:()=>xye,isNamedExportBindings:()=>yre,isNamedExports:()=>mv,isNamedImportBindings:()=>wx,isNamedImports:()=>yN,isNamedImportsOrExports:()=>Gne,isNamedTupleMember:()=>KT,isNamespaceBody:()=>Nre,isNamespaceExport:()=>tk,isNamespaceExportDeclaration:()=>sEe,isNamespaceImport:()=>Zx,isNamespaceReexportDeclaration:()=>lZe,isNewExpression:()=>f2,isNewExpressionTarget:()=>Ode,isNewScopeNode:()=>eie,isNoSubstitutionTemplateLiteral:()=>GP,isNodeArray:()=>tN,isNodeArrayMultiLine:()=>hAe,isNodeDescendantOf:()=>EP,isNodeKind:()=>z6,isNodeLikeSystem:()=>Mm,isNodeModulesDirectory:()=>Vd,isNodeWithPossibleHoistedDeclaration:()=>_Ze,isNonContextualKeyword:()=>Dye,isNonGlobalAmbientModule:()=>Qre,isNonNullAccess:()=>YAe,isNonNullChain:()=>hJ,isNonNullExpression:()=>hv,isNonStaticMethodOrAccessorWithPrivateName:()=>TOt,isNotEmittedStatement:()=>FPt,isNullishCoalesce:()=>IJ,isNumber:()=>ws,isNumericLiteral:()=>mC,isNumericLiteralName:()=>IN,isObjectBindingElementWithoutPropertyName:()=>p1e,isObjectBindingOrAssignmentElement:()=>gP,isObjectBindingOrAssignmentPattern:()=>bJ,isObjectBindingPattern:()=>Km,isObjectLiteralElement:()=>bY,isObjectLiteralElementLike:()=>yw,isObjectLiteralExpression:()=>og,isObjectLiteralMethod:()=>a2,isObjectLiteralOrClassExpressionMethodOrAccessor:()=>Vge,isObjectTypeDeclaration:()=>YY,isOmittedExpression:()=>yp,isOptionalChain:()=>GC,isOptionalChainRoot:()=>aP,isOptionalDeclaration:()=>RB,isOptionalJSDocPropertyLikeTag:()=>jne,isOptionalTypeNode:()=>jL,isOuterExpression:()=>o9e,isOutermostOptionalChain:()=>i3,isOverrideModifier:()=>bt,isPackageJsonInfo:()=>D9e,isPackedArrayLiteral:()=>Gbe,isParameter:()=>Si,isParameterPropertyDeclaration:()=>Ve,isParameterPropertyModifier:()=>IY,isParenthesizedExpression:()=>gI,isParenthesizedTypeNode:()=>fv,isParseTreeNode:()=>SL,isPartOfParameterDeclaration:()=>HL,isPartOfTypeNode:()=>ww,isPartOfTypeOnlyImportOrExportDeclaration:()=>sge,isPartOfTypeQuery:()=>Qge,isPartiallyEmittedExpression:()=>ly,isPatternMatch:()=>jd,isPinnedComment:()=>g7,isPlainJsFile:()=>SY,isPlusToken:()=>mz,isPossiblyTypeArgumentPosition:()=>l1e,isPostfixUnaryExpression:()=>ek,isPrefixUnaryExpression:()=>T0,isPrimitiveLiteralValue:()=>uz,isPrivateIdentifier:()=>p,isPrivateIdentifierClassElementDeclaration:()=>pC,isPrivateIdentifierPropertyAccessExpression:()=>cP,isPrivateIdentifierSymbol:()=>SZe,isProgramUptoDate:()=>ftt,isPrologueDirective:()=>nS,isPropertyAccessChain:()=>vx,isPropertyAccessEntityNameExpression:()=>BF,isPropertyAccessExpression:()=>jo,isPropertyAccessOrQualifiedName:()=>SJ,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>wre,isPropertyAssignment:()=>fm,isPropertyDeclaration:()=>pi,isPropertyName:()=>VI,isPropertyNameLiteral:()=>Tw,isPropertySignature:()=>ss,isPrototypeAccess:()=>wF,isPrototypePropertyAssignment:()=>lne,isPunctuation:()=>Nye,isPushOrUnshiftIdentifier:()=>Gye,isQualifiedName:()=>zi,isQuestionDotToken:()=>Aie,isQuestionOrExclamationToken:()=>rWt,isQuestionOrPlusOrMinusToken:()=>sWt,isQuestionToken:()=>UT,isReadonlyKeyword:()=>le,isReadonlyKeywordOrPlusOrMinusToken:()=>iWt,isRecognizedTripleSlashComment:()=>Ore,isReferenceFileLocation:()=>Fie,isReferencedFile:()=>K3,isRegularExpressionLiteral:()=>tEe,isRequireCall:()=>ay,isRequireVariableStatement:()=>nne,isRestParameter:()=>EB,isRestTypeNode:()=>zL,isReturnStatement:()=>I2,isReturnStatementWithFixablePromiseHandler:()=>mPe,isRightSideOfAccessExpression:()=>tbe,isRightSideOfInstanceofExpression:()=>HZe,isRightSideOfPropertyAccess:()=>Wie,isRightSideOfQualifiedName:()=>Q5t,isRightSideOfQualifiedNameOrPropertyAccess:()=>P7,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>MZe,isRootedDiskPath:()=>Xp,isSameEntityName:()=>QJ,isSatisfiesExpression:()=>Qg,isSemicolonClassElement:()=>DPt,isSetAccessor:()=>cv,isSetAccessorDeclaration:()=>Dg,isShiftOperatorOrHigher:()=>x$e,isShorthandAmbientModuleSymbol:()=>NY,isShorthandPropertyAssignment:()=>a0,isSideEffectImport:()=>Wbe,isSignedNumericLiteral:()=>Cne,isSimpleCopiableExpression:()=>lQ,isSimpleInlineableExpression:()=>BN,isSimpleParameterList:()=>FEe,isSingleOrDoubleQuote:()=>ine,isSolutionConfig:()=>ret,isSourceElement:()=>NLe,isSourceFile:()=>ll,isSourceFileFromLibrary:()=>zie,isSourceFileJS:()=>n0,isSourceFileNotJson:()=>Jge,isSourceMapping:()=>vOt,isSpecialPropertyDeclaration:()=>Eye,isSpreadAssignment:()=>Lx,isSpreadElement:()=>of,isStatement:()=>Lc,isStatementButNotDeclaration:()=>vJ,isStatementOrBlock:()=>kre,isStatementWithLocals:()=>mge,isStatic:()=>cg,isStaticModifier:()=>Ge,isString:()=>Xs,isStringANonContextualKeyword:()=>WY,isStringAndEmptyAnonymousObjectIntersection:()=>nMt,isStringDoubleQuoted:()=>sne,isStringLiteral:()=>Zg,isStringLiteralLike:()=>mA,isStringLiteralOrJsxExpression:()=>TJ,isStringLiteralOrTemplate:()=>yMt,isStringOrNumericLiteralLike:()=>d1,isStringOrRegularExpressionOrTemplateLiteral:()=>Nrt,isStringTextContainingNode:()=>Ere,isSuperCall:()=>Dy,isSuperKeyword:()=>rr,isSuperProperty:()=>xy,isSupportedSourceFileName:()=>Bbe,isSwitchStatement:()=>ode,isSyntaxList:()=>Cie,isSyntheticExpression:()=>F3,isSyntheticReference:()=>_z,isTagName:()=>Crt,isTaggedTemplateExpression:()=>MI,isTaggedTemplateTag:()=>M5t,isTemplateExpression:()=>FF,isTemplateHead:()=>tQ,isTemplateLiteral:()=>AP,isTemplateLiteralKind:()=>LD,isTemplateLiteralToken:()=>ige,isTemplateLiteralTypeNode:()=>zT,isTemplateLiteralTypeSpan:()=>mN,isTemplateMiddle:()=>uie,isTemplateMiddleOrTemplateTail:()=>$6,isTemplateSpan:()=>die,isTemplateTail:()=>rde,isTextWhiteSpaceLike:()=>lMt,isThis:()=>Oie,isThisContainerOrFunctionBlock:()=>oZe,isThisIdentifier:()=>vF,isThisInTypeQuery:()=>YL,isThisInitializedDeclaration:()=>Hge,isThisInitializedObjectBindingExpression:()=>cZe,isThisProperty:()=>$re,isThisTypeNode:()=>Fx,isThisTypeParameter:()=>az,isThisTypePredicate:()=>iZe,isThrowStatement:()=>d$e,isToken:()=>BL,isTokenKind:()=>q6,isTraceEnabled:()=>VP,isTransientSymbol:()=>bw,isTrivia:()=>zJ,isTryStatement:()=>mU,isTupleTypeNode:()=>Zw,isTypeAlias:()=>gne,isTypeAliasDeclaration:()=>FB,isTypeAssertionExpression:()=>xF,isTypeDeclaration:()=>KY,isTypeElement:()=>Bx,isTypeKeyword:()=>Qde,isTypeKeywordTokenOrIdentifier:()=>UVe,isTypeLiteralNode:()=>mh,isTypeNode:()=>uc,isTypeNodeKind:()=>bAe,isTypeOfExpression:()=>CN,isTypeOnlyExportDeclaration:()=>mJ,isTypeOnlyImportDeclaration:()=>rN,isTypeOnlyImportOrExportDeclaration:()=>nN,isTypeOperatorNode:()=>xB,isTypeParameterDeclaration:()=>Ds,isTypePredicateNode:()=>bE,isTypeQueryNode:()=>Fw,isTypeReferenceNode:()=>nh,isTypeReferenceType:()=>s7,isTypeUsableAsPropertyName:()=>g2,isUMDExportSymbol:()=>yAe,isUnaryExpression:()=>Rre,isUnaryExpressionWithWrite:()=>iN,isUnicodeIdentifierStart:()=>ft,isUnionTypeNode:()=>aS,isUrl:()=>n_,isValidBigIntString:()=>Jne,isValidESSymbolDeclaration:()=>tZe,isValidTypeOnlyAliasUseSite:()=>JL,isValueSignatureDeclaration:()=>C3,isVarAwaitUsing:()=>Sd,isVarConst:()=>rI,isVarConstLike:()=>OT,isVarUsing:()=>tI,isVariableDeclaration:()=>nc,isVariableDeclarationInVariableStatement:()=>h7,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>CP,isVariableDeclarationInitializedToRequire:()=>y7,isVariableDeclarationList:()=>u_,isVariableLike:()=>I7,isVariableStatement:()=>Ch,isVoidExpression:()=>qT,isWatchSet:()=>cbe,isWhileStatement:()=>A$e,isWhiteSpaceLike:()=>dc,isWhiteSpaceSingleLine:()=>Iu,isWithStatement:()=>kPt,isWriteAccess:()=>B3,isWriteOnlyAccess:()=>CAe,isYieldExpression:()=>Hd,jsxModeNeedsExplicitImport:()=>gnt,keywordPart:()=>y1,last:()=>Ei,lastOrUndefined:()=>li,length:()=>B,libMap:()=>O$e,libs:()=>d9e,lineBreakPart:()=>Jie,loadModuleFromGlobalCache:()=>aOt,loadWithModeAwareCache:()=>XEe,makeIdentifierFromModuleName:()=>vw,makeImport:()=>QP,makeStringLiteral:()=>Xde,mangleScopedPackageName:()=>Nie,map:()=>At,mapAllOrFail:()=>qt,mapDefined:()=>Xt,mapDefinedIterator:()=>lr,mapEntries:()=>ke,mapIterator:()=>Yt,mapOneOrMany:()=>ant,mapToDisplayParts:()=>XP,matchFiles:()=>Sbe,matchPatternOrExact:()=>Tbe,matchedText:()=>pw,matchesExclude:()=>B9e,matchesExcludeWorker:()=>w9e,maxBy:()=>ls,maybeBind:()=>$i,maybeSetLocalizedDiagnosticMessages:()=>$Ze,memoize:()=>FA,memoizeOne:()=>ZA,min:()=>oa,minAndMax:()=>mLe,missingFileModifiedTime:()=>Rh,modifierToFlag:()=>HY,modifiersToFlags:()=>Dw,moduleExportNameIsDefault:()=>lv,moduleExportNameTextEscaped:()=>CF,moduleExportNameTextUnescaped:()=>HD,moduleOptionDeclaration:()=>mWt,moduleResolutionIsEqualTo:()=>Ige,moduleResolutionNameAndModeGetter:()=>rVe,moduleResolutionOptionDeclarations:()=>H$e,moduleResolutionSupportsPackageJsonExportsAndImports:()=>lU,moduleResolutionUsesNodeModules:()=>KVe,moduleSpecifierToValidIdentifier:()=>b1e,moduleSpecifiers:()=>WF,moduleSupportsImportAttributes:()=>sLe,moduleSymbolToValidIdentifier:()=>y1e,moveEmitHelpers:()=>PLe,moveRangeEnd:()=>IAe,moveRangePastDecorators:()=>jD,moveRangePastModifiers:()=>Av,moveRangePos:()=>KD,moveSyntheticComments:()=>ZLe,mutateMap:()=>Q7,mutateMapSkippingNewValues:()=>gN,needsParentheses:()=>tPe,needsScopeMarker:()=>t7,newCaseClauseTracker:()=>dPe,newPrivateEnvironment:()=>NOt,noEmitNotification:()=>PEe,noEmitSubstitution:()=>Nde,noTransformers:()=>a3t,noTruncationMaximumTruncationLength:()=>Lre,nodeCanBeDecorated:()=>OJ,nodeCoreModules:()=>dU,nodeHasName:()=>t3,nodeIsDecorated:()=>MJ,nodeIsMissing:()=>sf,nodeIsPresent:()=>u1,nodeIsSynthesized:()=>sp,nodeModuleNameResolver:()=>qWt,nodeModulesPathPart:()=>Vx,nodeNextJsonConfigResolver:()=>$Wt,nodeOrChildIsDecorated:()=>tne,nodeOverlapsWithStartEnd:()=>LVe,nodePosToString:()=>Cge,nodeSeenTracker:()=>Yie,nodeStartsNewLexicalEnvironment:()=>Fye,noop:()=>Dc,noopFileWatcher:()=>Vie,normalizePath:()=>iu,normalizeSlashes:()=>Dp,normalizeSpans:()=>EI,not:()=>uC,notImplemented:()=>il,notImplementedResolver:()=>A3t,nullNodeConverters:()=>Qbe,nullParenthesizerRules:()=>Ybe,nullTransformationContext:()=>OEe,objectAllocator:()=>ZC,operatorPart:()=>Ude,optionDeclarations:()=>Ww,optionMapToObject:()=>_9e,optionsAffectingProgramStructure:()=>bWt,optionsForBuild:()=>Q$e,optionsForWatch:()=>wz,optionsHaveChanges:()=>S0,or:()=>Hp,orderedRemoveItem:()=>Ql,orderedRemoveItemAt:()=>LA,packageIdToPackageName:()=>xJ,packageIdToString:()=>oN,parameterIsThisKeyword:()=>SF,parameterNamePart:()=>gMt,parseBaseNodeFactory:()=>AWt,parseBigInt:()=>_Le,parseBuildCommand:()=>NWt,parseCommandLine:()=>TWt,parseCommandLineWorker:()=>X$e,parseConfigFileTextToJson:()=>U$e,parseConfigFileWithSystem:()=>z3t,parseConfigHostFromCompilerHostLike:()=>cVe,parseCustomTypeOption:()=>h9e,parseIsolatedEntityName:()=>Bz,parseIsolatedJSDocComment:()=>pWt,parseJSDocTypeExpressionForTests:()=>R$r,parseJsonConfigFileContent:()=>sen,parseJsonSourceFileConfigFileContent:()=>EEe,parseJsonText:()=>hEe,parseListTypeOption:()=>BWt,parseNodeFactory:()=>H3,parseNodeModuleFromPath:()=>wEe,parsePackageName:()=>TEe,parsePseudoBigInt:()=>nz,parseValidBigInt:()=>kbe,pasteEdits:()=>ust,patchWriteFileEnsuringDirectory:()=>e2,pathContainsNodeModules:()=>WP,pathIsAbsolute:()=>lE,pathIsBareSpecifier:()=>Xh,pathIsRelative:()=>Ip,patternText:()=>j1,performIncrementalCompilation:()=>q3t,performance:()=>hb,positionBelongsToNode:()=>Ert,positionIsASICandidate:()=>iPe,positionIsSynthesized:()=>wB,positionsAreOnSameLine:()=>yE,preProcessFile:()=>Iin,probablyUsesSemicolons:()=>C1e,processCommentPragmas:()=>P$e,processPragmasIntoFields:()=>W$e,processTaggedTemplateExpression:()=>Het,programContainsEsModules:()=>aMt,programContainsModules:()=>oMt,projectReferenceIsEqualTo:()=>Vre,propertyNamePart:()=>AMt,pseudoBigIntToString:()=>kP,punctuationPart:()=>k0,pushIfUnique:()=>Qi,quote:()=>zde,quotePreferenceFromString:()=>Wrt,rangeContainsPosition:()=>Mie,rangeContainsPositionExclusive:()=>a1e,rangeContainsRange:()=>cy,rangeContainsRangeExclusive:()=>J5t,rangeContainsStartEnd:()=>c1e,rangeEndIsOnSameLineAsRangeStart:()=>kne,rangeEndPositionsAreOnSameLine:()=>XZe,rangeEquals:()=>gc,rangeIsOnSingleLine:()=>S3,rangeOfNode:()=>Nbe,rangeOfTypeParameters:()=>Dbe,rangeOverlapsWithStartEnd:()=>Mde,rangeStartIsOnSameLineAsRangeEnd:()=>JZe,rangeStartPositionsAreOnSameLine:()=>M7,readBuilderProgram:()=>CVe,readConfigFile:()=>yEe,readJson:()=>E3,readJsonConfigFile:()=>DWt,readJsonOrUndefined:()=>sbe,reduceEachLeadingCommentRange:()=>EL,reduceEachTrailingCommentRange:()=>ff,reduceLeft:()=>Ul,reduceLeftIterator:()=>ne,reducePathComponents:()=>t2,refactor:()=>Oz,regExpEscape:()=>Hqe,regularExpressionFlagToCharacterCode:()=>Ho,relativeComplement:()=>Wr,removeAllComments:()=>pz,removeEmitHelper:()=>i$e,removeExtension:()=>Xne,removeFileExtension:()=>s0,removeIgnoredPath:()=>AVe,removeMinAndVersionNumbers:()=>us,removePrefix:()=>Nm,removeSuffix:()=>aa,removeTrailingDirectorySeparator:()=>ny,repeatString:()=>A1e,replaceElement:()=>Yl,replaceFirstStar:()=>R3,resolutionExtensionIsTSOrJson:()=>ez,resolveConfigFileProjectName:()=>Jtt,resolveJSModule:()=>KWt,resolveLibrary:()=>x9e,resolveModuleName:()=>BU,resolveModuleNameFromCache:()=>Len,resolvePackageNameToPackageJson:()=>oet,resolvePath:()=>AE,resolveProjectReferencePath:()=>xz,resolveTripleslashReference:()=>ott,resolveTypeReferenceDirective:()=>QWt,resolvingEmptyArray:()=>Zre,returnFalse:()=>As,returnNoopFileWatcher:()=>Vde,returnTrue:()=>Tf,returnUndefined:()=>cm,returnsPromise:()=>vnt,rewriteModuleSpecifier:()=>Nz,sameFlatMap:()=>Zr,sameMap:()=>Tr,sameMapping:()=>wtn,scanTokenAtPosition:()=>qs,scanner:()=>A_,semanticDiagnosticsOptionDeclarations:()=>CWt,serializeCompilerOptions:()=>$$e,server:()=>Cfn,servicesVersion:()=>son,setCommentRange:()=>hh,setConfigFileInOptions:()=>eet,setConstantValue:()=>VLe,setEmitFlags:()=>ti,setGetSourceFileAsHashVersioned:()=>mVe,setIdentifierAutoGenerate:()=>oie,setIdentifierGeneratedImportReference:()=>MLe,setIdentifierTypeArguments:()=>xx,setInternalEmitFlags:()=>sie,setLocalizedDiagnosticMessages:()=>cU,setNodeChildren:()=>YPt,setNodeFlags:()=>ELe,setObjectAllocator:()=>qZe,setOriginalNode:()=>ua,setParent:()=>XA,setParentRecursive:()=>UL,setPrivateIdentifier:()=>wU,setSnippetElement:()=>qbe,setSourceMapRange:()=>Hg,setStackTraceLimit:()=>xT,setStartsOnNewLine:()=>Md,setSyntheticLeadingComments:()=>kB,setSyntheticTrailingComments:()=>x3,setSys:()=>bI,setSysLog:()=>xC,setTextRange:()=>gn,setTextRangeEnd:()=>AU,setTextRangePos:()=>iz,setTextRangePosEnd:()=>TB,setTextRangePosWidth:()=>xbe,setTokenSourceMapRange:()=>Kbe,setTypeNode:()=>WLe,setUILocale:()=>Zs,setValueDeclaration:()=>S7,shouldAllowImportingTsExtension:()=>Die,shouldPreserveConstEnums:()=>Fb,shouldRewriteModuleSpecifier:()=>une,shouldUseUriStyleNodeCoreModules:()=>gPe,showModuleSpecifier:()=>jZe,signatureHasRestParameter:()=>D0,signatureToDisplayParts:()=>zrt,single:()=>Xa,singleElementArray:()=>J_,singleIterator:()=>qr,singleOrMany:()=>ac,singleOrUndefined:()=>Ps,skipAlias:()=>FC,skipConstraint:()=>Lrt,skipOuterExpressions:()=>HI,skipParentheses:()=>QA,skipPartiallyEmittedExpressions:()=>o2,skipTrivia:()=>Yu,skipTypeChecking:()=>T3,skipTypeCheckingIgnoringNoCheck:()=>CLe,skipTypeParentheses:()=>w7,skipWhile:()=>cp,sliceAfter:()=>Rbe,some:()=>jt,sortAndDeduplicate:()=>cl,sortAndDeduplicateDiagnostics:()=>ui,sourceFileAffectingCompilerOptions:()=>Y$e,sourceFileMayBeEmitted:()=>SP,sourceMapCommentRegExp:()=>Det,sourceMapCommentRegExpDontCareLineStart:()=>bOt,spacePart:()=>BI,spanMap:()=>_n,startEndContainsRange:()=>mAe,startEndOverlapsWithStartEnd:()=>VVe,startOnNewLine:()=>N0,startTracing:()=>fd,startsWith:()=>Ac,startsWithDirectory:()=>$S,startsWithUnderscore:()=>unt,startsWithUseStrict:()=>zPt,stringContainsAt:()=>TMt,stringToToken:()=>Ta,stripQuotes:()=>l2,supportedDeclarationExtensions:()=>LAe,supportedJSExtensionsFlat:()=>uU,supportedLocaleDirectories:()=>nv,supportedTSExtensionsFlat:()=>vbe,supportedTSImplementationExtensions:()=>Yne,suppressLeadingAndTrailingTrivia:()=>Vy,suppressLeadingTrivia:()=>Hbe,suppressTrailingTrivia:()=>xLe,symbolEscapedNameNoDefault:()=>jVe,symbolName:()=>nf,symbolNameNoDefault:()=>Mrt,symbolToDisplayParts:()=>Kde,sys:()=>yd,sysLog:()=>Ih,tagNamesAreEquivalent:()=>Q3,takeWhile:()=>t_,targetOptionDeclaration:()=>M$e,targetToLibMap:()=>Is,testFormatSettings:()=>Vnn,textChangeRangeIsUnchanged:()=>sy,textChangeRangeNewSpan:()=>qR,textChanges:()=>xo,textOrKeywordPart:()=>jrt,textPart:()=>gS,textRangeContainsPositionInclusive:()=>sl,textRangeContainsTextSpan:()=>Og,textRangeIntersectsWithTextSpan:()=>e3,textSpanContainsPosition:()=>ho,textSpanContainsTextRange:()=>ed,textSpanContainsTextSpan:()=>Nd,textSpanEnd:()=>Rs,textSpanIntersection:()=>IA,textSpanIntersectsWith:()=>q2,textSpanIntersectsWithPosition:()=>zR,textSpanIntersectsWithTextSpan:()=>Tb,textSpanIsEmpty:()=>ja,textSpanOverlap:()=>o1,textSpanOverlapsWith:()=>Nh,textSpansEqual:()=>Xie,textToKeywordObj:()=>ev,timestamp:()=>Fg,toArray:()=>cc,toBuilderFileEmit:()=>W3t,toBuilderStateFileInfoForMultiEmit:()=>P3t,toEditorSettings:()=>N1e,toFileNameLowerCase:()=>Om,toPath:()=>Ou,toProgramEmitPending:()=>O3t,toSorted:()=>bo,tokenIsIdentifierOrKeyword:()=>Id,tokenIsIdentifierOrKeywordOrGreaterThan:()=>fB,tokenToString:()=>Vi,trace:()=>eu,tracing:()=>ki,tracingEnabled:()=>Kl,transferSourceFileChildren:()=>QPt,transform:()=>fon,transformClassFields:()=>WOt,transformDeclarations:()=>Jet,transformECMAScriptModule:()=>Xet,transformES2015:()=>e3t,transformES2016:()=>$Ot,transformES2017:()=>YOt,transformES2018:()=>QOt,transformES2019:()=>XOt,transformES2020:()=>JOt,transformES2021:()=>UOt,transformESDecorators:()=>HOt,transformESNext:()=>KOt,transformGenerators:()=>t3t,transformImpliedNodeFormatDependentModule:()=>n3t,transformJsx:()=>qOt,transformLegacyDecorators:()=>MOt,transformModule:()=>Qet,transformNamedEvaluation:()=>m1,transformNodes:()=>WEe,transformSystemModule:()=>r3t,transformTypeScript:()=>POt,transpile:()=>vin,transpileDeclaration:()=>Ein,transpileModule:()=>zMt,transpileOptionValueCompilerOptions:()=>EWt,tryAddToSet:()=>Ar,tryAndIgnoreErrors:()=>aPe,tryCast:()=>Gs,tryDirectoryExists:()=>oPe,tryExtractTSExtension:()=>O7,tryFileExists:()=>Kie,tryGetClassExtendingExpressionWithTypeArguments:()=>$ye,tryGetClassImplementingOrExtendingExpressionWithTypeArguments:()=>ebe,tryGetDirectories:()=>sPe,tryGetExtensionFromPath:()=>QT,tryGetImportFromModuleSpecifier:()=>B7,tryGetJSDocSatisfiesTypeNode:()=>QAe,tryGetModuleNameFromFile:()=>gEe,tryGetModuleSpecifierFromDeclaration:()=>ZY,tryGetNativePerformanceHooks:()=>YS,tryGetPropertyAccessOrIdentifierToString:()=>TP,tryGetPropertyNameOfBindingOrAssignmentElement:()=>c9e,tryGetSourceMappingURL:()=>EOt,tryGetTextOfPropertyName:()=>xY,tryParseJson:()=>nU,tryParsePattern:()=>UY,tryParsePatterns:()=>$7,tryParseRawSourceMap:()=>SOt,tryReadDirectory:()=>nnt,tryReadFile:()=>fde,tryRemoveDirectoryPrefix:()=>NAe,tryRemoveExtension:()=>hLe,tryRemovePrefix:()=>HS,tryRemoveSuffix:()=>Bo,tscBuildOption:()=>SU,typeAcquisitionDeclarations:()=>f9e,typeAliasNamePart:()=>dMt,typeDirectiveIsEqualTo:()=>hge,typeKeywords:()=>Zrt,typeParameterNamePart:()=>pMt,typeToDisplayParts:()=>I1e,unchangedPollThresholds:()=>q_,unchangedTextChangeRange:()=>Eo,unescapeLeadingUnderscores:()=>Bc,unmangleScopedPackageName:()=>NEe,unorderedRemoveItem:()=>ef,unprefixedNodeCoreModules:()=>qne,unreachableCodeIsError:()=>nLe,unsetNodeChildren:()=>E$e,unusedLabelIsError:()=>iLe,unwrapInnermostStatementOfLabel:()=>Iye,unwrapParenthesizedExpression:()=>UAe,updateErrorForNoInputFiles:()=>v9e,updateLanguageServiceSourceFile:()=>qnt,updateMissingFilePathsWatch:()=>ntt,updateResolutionField:()=>Bie,updateSharedExtendedConfigFileWatcher:()=>q9e,updateSourceFile:()=>L$e,updateWatchingWildcardDirectories:()=>HEe,usingSingleLineStringWriter:()=>dP,utf16EncodeAsString:()=>jR,validateLocaleAndSetLanguage:()=>yx,version:()=>C,versionMajorMinor:()=>I,visitArray:()=>Ede,visitCommaListElements:()=>xEe,visitEachChild:()=>_s,visitFunctionBody:()=>uS,visitIterationBody:()=>Py,visitLexicalEnvironment:()=>Net,visitNode:()=>Mr,visitNodes:()=>Ws,visitParameterList:()=>vI,walkUpBindingElementsAndPatterns:()=>ai,walkUpOuterExpressions:()=>qPt,walkUpParenthesizedExpressions:()=>gv,walkUpParenthesizedTypes:()=>pne,walkUpParenthesizedTypesAndGetParentAndChild:()=>wye,whitespaceOrMapCommentRegExp:()=>ket,writeCommentRange:()=>rU,writeFile:()=>lAe,writeFileEnsuringDirectories:()=>Qye,zipWith:()=>ce}),e.exports=A(f);var I="5.9",C="5.9.3",b=(s=>(s[s.LessThan=-1]="LessThan",s[s.EqualTo=0]="EqualTo",s[s.GreaterThan=1]="GreaterThan",s))(b||{}),E=[],N=new Map;function B(s){return s!==void 0?s.length:0}function F(s,c){if(s!==void 0)for(let g=0;g=0;g--){let d=c(s[g],g);if(d)return d}}function X(s,c){if(s!==void 0)for(let g=0;g=0;d--){let h=s[d];if(c(h,d))return h}}function Se(s,c,g){if(s===void 0)return-1;for(let d=g??0;d=0;d--)if(c(s[d],d))return d;return-1}function k(s,c,g=yg){if(s!==void 0){for(let d=0;d{let[_,S]=c(h,d);g.set(_,S)}),g}function jt(s,c){if(s!==void 0)if(c!==void 0){for(let g=0;g0;return!1}function Fn(s,c,g){let d;for(let h=0;hs[S])}function xi(s,c){let g=[];for(let d=0;d0&&d(c,s[S-1]))return!1;if(S0&&pe.assertGreaterThanOrEqual(g(c[_],c[_-1]),0);t:for(let S=h;hS&&pe.assertGreaterThanOrEqual(g(s[h],s[h-1]),0),g(c[_],s[h])){case-1:d.push(c[_]);continue e;case 0:continue e;case 1:continue t}}return d}function Ft(s,c){return c===void 0?s:s===void 0?[c]:(s.push(c),s)}function zr(s,c){return s===void 0?c:c===void 0?s:Ki(s)?Ki(c)?Nn(s,c):Ft(s,c):Ki(c)?Ft(c,s):[s,c]}function Rn(s,c){return c<0?s.length+c:c}function Or(s,c,g,d){if(c===void 0||c.length===0)return s;if(s===void 0)return c.slice(g,d);g=g===void 0?0:Rn(c,g),d=d===void 0?c.length:Rn(c,d);for(let h=g;hg(s[d],s[h])||Zt(d,h))}function bo(s,c){return s.length===0?E:s.slice().sort(c)}function*Qa(s){for(let c=s.length-1;c>=0;c--)yield s[c]}function gc(s,c,g,d){for(;gs?.at(c):(s,c)=>{if(s!==void 0&&(c=Rn(s,c),c>1),T=g(s[R],R);switch(d(T,c)){case-1:_=R+1;break;case 0:return R;case 1:S=R-1;break}}return~_}function Ul(s,c,g,d,h){if(s&&s.length>0){let _=s.length;if(_>0){let S=d===void 0||d<0?0:d,R=h===void 0||S+h>_-1?_-1:S+h,T;for(arguments.length<=2?(T=s[S],S++):T=g;S<=R;)T=c(T,s[S],S),S++;return T}}return g}var Xu=Object.prototype.hasOwnProperty;function Da(s,c){return Xu.call(s,c)}function pu(s,c){return Xu.call(s,c)?s[c]:void 0}function _g(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(g);return c}function mI(s){let c=[];do{let g=Object.getOwnPropertyNames(s);for(let d of g)Qi(c,d)}while(s=Object.getPrototypeOf(s));return c}function Qh(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(s[g]);return c}function Ri(s,c){let g=new Array(s);for(let d=0;d100&&g>c.length>>1){let R=c.length-g;c.copyWithin(0,g),c.length=R,g=0}return S}return{enqueue:h,dequeue:_,isEmpty:d}}function oo(s,c){let g=new Map,d=0;function*h(){for(let S of g.values())Ki(S)?yield*S:yield S}let _={has(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);return Ki(T)?k(T,S,c):c(T,S)},add(S){let R=s(S);if(g.has(R)){let T=g.get(R);if(Ki(T))k(T,S,c)||(T.push(S),d++);else{let W=T;c(W,S)||(g.set(R,[W,S]),d++)}}else g.set(R,S),d++;return this},delete(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);if(Ki(T)){for(let W=0;Wh(),[Symbol.toStringTag]:g[Symbol.toStringTag]};return _}function Ki(s){return Array.isArray(s)}function cc(s){return Ki(s)?s:[s]}function Xs(s){return typeof s=="string"}function ws(s){return typeof s=="number"}function Gs(s,c){return s!==void 0&&c(s)?s:void 0}function Ma(s,c){return s!==void 0&&c(s)?s:pe.fail(`Invalid cast. The supplied value ${s} did not pass the test '${pe.getFunctionName(c)}'.`)}function Dc(s){}function As(){return!1}function Tf(){return!0}function cm(){}function Fl(s){return s}function rc(s){return s.toLowerCase()}var sd=/[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g;function Om(s){return sd.test(s)?s.replace(sd,rc):s}function il(){throw new Error("Not implemented")}function FA(s){let c;return()=>(s&&(c=s(),s=void 0),c)}function ZA(s){let c=new Map;return g=>{let d=`${typeof g}:${g}`,h=c.get(d);return h===void 0&&!c.has(d)&&(h=s(g),c.set(d,h)),h}}var El=(s=>(s[s.None=0]="None",s[s.Normal=1]="Normal",s[s.Aggressive=2]="Aggressive",s[s.VeryAggressive=3]="VeryAggressive",s))(El||{});function yg(s,c){return s===c}function Mp(s,c){return s===c||s!==void 0&&c!==void 0&&s.toUpperCase()===c.toUpperCase()}function MA(s,c){return yg(s,c)}function Er(s,c){return s===c?0:s===void 0?-1:c===void 0?1:sc(g,d)===-1?g:d)}function Fs(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toUpperCase(),c=c.toUpperCase(),sc?1:0)}function Wa(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toLowerCase(),c=c.toLowerCase(),sc?1:0)}function Ca(s,c){return Er(s,c)}function ld(s){return s?Fs:Ca}var Rp=(()=>{return c;function s(g,d,h){if(g===d)return 0;if(g===void 0)return-1;if(d===void 0)return 1;let _=h(g,d);return _<0?-1:_>0?1:0}function c(g){let d=new Intl.Collator(g,{usage:"sort",sensitivity:"variant",numeric:!0}).compare;return(h,_)=>s(h,_,d)}})(),np,HA;function df(){return HA}function Zs(s){HA!==s&&(HA=s,np=void 0)}function so(s,c){return np??(np=Rp(HA)),np(s,c)}function Ea(s,c,g,d){return s===c?0:s===void 0?-1:c===void 0?1:d(s[g],c[g])}function Ml(s,c){return Zt(s?1:0,c?1:0)}function Dr(s,c,g){let d=Math.max(2,Math.floor(s.length*.34)),h=Math.floor(s.length*.4)+1,_;for(let S of c){let R=g(S);if(R!==void 0&&Math.abs(R.length-s.length)<=d){if(R===s||R.length<3&&R.toLowerCase()!==s.toLowerCase())continue;let T=Wn(s,R,h-.1);if(T===void 0)continue;pe.assert(Tg?R-g:1),V=Math.floor(c.length>g+R?g+R:c.length);h[0]=R;let M=R;for(let re=1;reg)return;let ee=d;d=h,h=ee}let S=d[c.length];return S>g?void 0:S}function di(s,c,g){let d=s.length-c.length;return d>=0&&(g?Mp(s.slice(d),c):s.indexOf(c,d)===d)}function aa(s,c){return di(s,c)?s.slice(0,s.length-c.length):s}function Bo(s,c){return di(s,c)?s.slice(0,s.length-c.length):void 0}function us(s){let c=s.length;for(let g=c-1;g>0;g--){let d=s.charCodeAt(g);if(d>=48&&d<=57)do--g,d=s.charCodeAt(g);while(g>0&&d>=48&&d<=57);else if(g>4&&(d===110||d===78)){if(--g,d=s.charCodeAt(g),d!==105&&d!==73||(--g,d=s.charCodeAt(g),d!==109&&d!==77))break;--g,d=s.charCodeAt(g)}else break;if(d!==45&&d!==46)break;c=g}return c===s.length?s:s.slice(0,c)}function Ql(s,c){for(let g=0;gg===c)}function ip(s,c){for(let g=0;gh&&jd(R,g)&&(h=R.prefix.length,d=S)}return d}function Ac(s,c,g){return g?Mp(s.slice(0,c.length),c):s.lastIndexOf(c,0)===0}function Nm(s,c){return Ac(s,c)?s.substr(c.length):s}function HS(s,c,g=Fl){return Ac(g(s),g(c))?s.substring(c.length):void 0}function jd({prefix:s,suffix:c},g){return g.length>=s.length+c.length&&Ac(g,s)&&di(g,c)}function dh(s,c){return g=>s(g)&&c(g)}function Hp(...s){return(...c)=>{let g;for(let d of s)if(g=d(...c),g)return g;return g}}function uC(s){return(...c)=>!s(...c)}function nE(s){}function J_(s){return s===void 0?void 0:[s]}function q0(s,c,g,d,h,_){_??(_=Dc);let S=0,R=0,T=s.length,W=c.length,V=!1;for(;S(s[s.Off=0]="Off",s[s.Error=1]="Error",s[s.Warning=2]="Warning",s[s.Info=3]="Info",s[s.Verbose=4]="Verbose",s))(fb||{}),pe;(s=>{let c=0;s.currentLogLevel=2,s.isDebugging=!1;function g(yr){return s.currentLogLevel<=yr}s.shouldLog=g;function d(yr,hn){s.loggingHost&&g(yr)&&s.loggingHost.log(yr,hn)}function h(yr){d(3,yr)}s.log=h,(yr=>{function hn(Oa){d(1,Oa)}yr.error=hn;function Oi(Oa){d(2,Oa)}yr.warn=Oi;function lo(Oa){d(3,Oa)}yr.log=lo;function pa(Oa){d(4,Oa)}yr.trace=pa})(h=s.log||(s.log={}));let _={};function S(){return c}s.getAssertionLevel=S;function R(yr){let hn=c;if(c=yr,yr>hn)for(let Oi of _g(_)){let lo=_[Oi];lo!==void 0&&s[Oi]!==lo.assertion&&yr>=lo.level&&(s[Oi]=lo,_[Oi]=void 0)}}s.setAssertionLevel=R;function T(yr){return c>=yr}s.shouldAssert=T;function W(yr,hn){return T(yr)?!0:(_[hn]={level:yr,assertion:s[hn]},s[hn]=Dc,!1)}function V(yr,hn){debugger;let Oi=new Error(yr?`Debug Failure. ${yr}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Oi,hn||V),Oi}s.fail=V;function M(yr,hn,Oi){return V(`${hn||"Unexpected node."}\r +`),o+Lkr(a+".",t,n)}});var yDi=H(Wkr=>{"use strict";Wkr.parse=ADi();Wkr.stringify=_Di()});var KDi=H((Pku,UEt)=>{var ODi={};(e=>{"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,o=(s,c)=>{for(var g in c)t(s,g,{get:c[g],enumerable:!0})},l=(s,c,g,d)=>{if(c&&typeof c=="object"||typeof c=="function")for(let h of n(c))!a.call(s,h)&&h!==g&&t(s,h,{get:()=>c[h],enumerable:!(d=r(c,h))||d.enumerable});return s},A=s=>s,f={};o(f,{ANONYMOUS:()=>rnt,AccessFlags:()=>Ty,AssertionLevel:()=>El,AssignmentDeclarationKind:()=>Ry,AssignmentKind:()=>mZe,Associativity:()=>vZe,BreakpointResolver:()=>eit,BuilderFileEmit:()=>N3t,BuilderProgramKind:()=>V3t,BuilderState:()=>nR,CallHierarchy:()=>Mz,CharacterCodes:()=>J2,CheckFlags:()=>sB,CheckMode:()=>vet,ClassificationType:()=>drt,ClassificationTypeNames:()=>W5t,CommentDirectiveType:()=>JS,Comparison:()=>b,CompletionInfoFlags:()=>x5t,CompletionTriggerKind:()=>grt,Completions:()=>Jz,ContainerFlags:()=>uOt,ContextFlags:()=>Ts,Debug:()=>pe,DiagnosticCategory:()=>KS,Diagnostics:()=>Z,DocumentHighlights:()=>hPe,ElementFlags:()=>tf,EmitFlags:()=>cB,EmitHint:()=>ty,EmitOnly:()=>Q2,EndOfLineState:()=>Z5t,ExitStatus:()=>ut,ExportKind:()=>NMt,Extension:()=>ey,ExternalEmitHelpers:()=>JR,FileIncludeKind:()=>$0,FilePreprocessingDiagnosticsKind:()=>fw,FileSystemEntryKind:()=>r1,FileWatcherEventKind:()=>yb,FindAllReferences:()=>Kp,FlattenLevel:()=>kOt,FlowFlags:()=>Yp,ForegroundColorEscapeSequences:()=>_3t,FunctionFlags:()=>EZe,GeneratedIdentifierFlags:()=>od,GetLiteralTextFlags:()=>A7,GoToDefinition:()=>nse,HighlightSpanKind:()=>D5t,IdentifierNameMap:()=>kie,ImportKind:()=>RMt,ImportsNotUsedAsValues:()=>zS,IndentStyle:()=>k5t,IndexFlags:()=>US,IndexKind:()=>Qm,InferenceFlags:()=>R_,InferencePriority:()=>mb,InlayHintKind:()=>N5t,InlayHints:()=>Qit,InternalEmitFlags:()=>RD,InternalNodeBuilderFlags:()=>vg,InternalSymbolName:()=>RT,IntersectionFlags:()=>Gn,InvalidatedProjectKind:()=>a5t,JSDocParsingMode:()=>t1,JsDoc:()=>n5,JsTyping:()=>YP,JsxEmit:()=>XR,JsxFlags:()=>Ym,JsxReferenceKind:()=>$I,LanguageFeatureMinimumTarget:()=>Rd,LanguageServiceMode:()=>T5t,LanguageVariant:()=>pn,LexicalEnvironmentFlags:()=>$1,ListFormat:()=>$E,LogLevel:()=>fb,MapCode:()=>Xit,MemberOverrideStatus:()=>ar,ModifierFlags:()=>JE,ModuleDetectionKind:()=>zE,ModuleInstanceState:()=>cOt,ModuleKind:()=>jS,ModuleResolutionKind:()=>z_,ModuleSpecifierEnding:()=>pLe,NavigateTo:()=>eHt,NavigationBar:()=>rHt,NewLineKind:()=>qE,NodeBuilderFlags:()=>Qo,NodeCheckFlags:()=>wy,NodeFactoryFlags:()=>Jbe,NodeFlags:()=>AC,NodeResolutionFeatures:()=>jWt,ObjectFlags:()=>j_,OperationCanceledException:()=>By,OperatorPrecedence:()=>BZe,OrganizeImports:()=>i5,OrganizeImportsMode:()=>urt,OuterExpressionKinds:()=>cF,OutliningElementsCollector:()=>Uit,OutliningSpanKind:()=>G5t,OutputFileType:()=>F5t,PackageJsonAutoImportPreference:()=>w5t,PackageJsonDependencyGroup:()=>B5t,PatternMatchKind:()=>ynt,PollingInterval:()=>r_,PollingWatchKind:()=>aB,PragmaKindFlags:()=>N_,PredicateSemantics:()=>K_,PreparePasteEdits:()=>lst,PrivateIdentifierKind:()=>YLe,ProcessLevel:()=>ZOt,ProgramUpdateLevel:()=>f3t,QuotePreference:()=>cMt,RegularExpressionFlags:()=>UE,RelationComparisonResult:()=>vy,Rename:()=>eWe,ScriptElementKind:()=>V5t,ScriptElementKindModifier:()=>P5t,ScriptKind:()=>X2,ScriptSnapshot:()=>RVe,ScriptTarget:()=>kT,SemanticClassificationFormat:()=>R5t,SemanticMeaning:()=>O5t,SemicolonPreference:()=>Art,SignatureCheckMode:()=>Bet,SignatureFlags:()=>$A,SignatureHelp:()=>X1e,SignatureInfo:()=>R3t,SignatureKind:()=>BA,SmartSelectionRange:()=>zit,SnippetKind:()=>Iw,StatisticType:()=>I5t,StructureIsReused:()=>xc,SymbolAccessibility:()=>uI,SymbolDisplay:()=>i9,SymbolDisplayPartKind:()=>DVe,SymbolFlags:()=>TT,SymbolFormatFlags:()=>Rf,SyntaxKind:()=>Ld,Ternary:()=>Cb,ThrottledCancellationToken:()=>uYt,TokenClass:()=>L5t,TokenFlags:()=>KE,TransformFlags:()=>up,TypeFacts:()=>Eet,TypeFlags:()=>jE,TypeFormatFlags:()=>Ng,TypeMapKind:()=>zf,TypePredicateKind:()=>Th,TypeReferenceSerializationKind:()=>oE,UnionReduction:()=>Jr,UpToDateStatusType:()=>e5t,VarianceFlags:()=>NT,Version:()=>O,VersionRange:()=>gt,WatchDirectoryFlags:()=>q1,WatchDirectoryKind:()=>DT,WatchFileKind:()=>oB,WatchLogLevel:()=>h3t,WatchType:()=>jm,accessPrivateIdentifier:()=>DOt,addEmitFlags:()=>Gw,addEmitHelper:()=>$Y,addEmitHelpers:()=>hN,addInternalEmitFlags:()=>N3,addNodeFactoryPatcher:()=>$qe,addObjectAllocatorPatcher:()=>Lqe,addRange:()=>Or,addRelatedInfo:()=>lg,addSyntheticLeadingComment:()=>JT,addSyntheticTrailingComment:()=>Iz,addToSeen:()=>Zy,advancedAsyncSuperHelper:()=>DF,affectsDeclarationPathOptionDeclarations:()=>yWt,affectsEmitOptionDeclarations:()=>_Wt,allKeysStartWithDot:()=>G9e,altDirectorySeparator:()=>Eb,and:()=>dh,append:()=>Ft,appendIfUnique:()=>ps,arrayFrom:()=>Do,arrayIsEqualTo:()=>Sc,arrayIsHomogeneous:()=>bLe,arrayOf:()=>Ri,arrayReverseIterator:()=>Qa,arrayToMap:()=>Ru,arrayToMultiMap:()=>Ju,arrayToNumericMap:()=>Vs,assertType:()=>nE,assign:()=>Wt,asyncSuperHelper:()=>lie,attachFileToDiagnostics:()=>XL,base64decode:()=>QZe,base64encode:()=>ibe,binarySearch:()=>Wc,binarySearchKey:()=>Sg,bindSourceFile:()=>gOt,breakIntoCharacterSpans:()=>XMt,breakIntoWordSpans:()=>JMt,buildLinkParts:()=>IMt,buildOpts:()=>CEe,buildOverload:()=>vpn,bundlerModuleNameResolver:()=>zWt,canBeConvertedToAsync:()=>wnt,canHaveDecorators:()=>oQ,canHaveExportModifier:()=>Kne,canHaveFlowNode:()=>UJ,canHaveIllegalDecorators:()=>k$e,canHaveIllegalModifiers:()=>tWt,canHaveIllegalType:()=>c$r,canHaveIllegalTypeParameters:()=>eWt,canHaveJSDoc:()=>Ane,canHaveLocals:()=>WI,canHaveModifiers:()=>LB,canHaveModuleSpecifier:()=>pZe,canHaveSymbol:()=>mE,canIncludeBindAndCheckDiagnostics:()=>gU,canJsonReportNoInputFiles:()=>vEe,canProduceDiagnostics:()=>ZEe,canUsePropertyAccess:()=>Fbe,canWatchAffectingLocation:()=>X3t,canWatchAtTypes:()=>Q3t,canWatchDirectoryOrFile:()=>wtt,canWatchDirectoryOrFilePath:()=>zEe,cartesianProduct:()=>XE,cast:()=>Ma,chainBundle:()=>rR,chainDiagnosticMessages:()=>wu,changeAnyExtension:()=>K2,changeCompilerHostLikeToUseCache:()=>Gde,changeExtension:()=>fN,changeFullExtension:()=>i_,changesAffectModuleResolution:()=>NJ,changesAffectingProgramStructure:()=>fge,characterCodeToRegularExpressionFlag:()=>Wg,childIsDecorated:()=>HJ,classElementOrClassElementParameterIsDecorated:()=>hye,classHasClassThisAssignment:()=>Oet,classHasDeclaredOrExplicitlyAssignedName:()=>Met,classHasExplicitlyAssignedName:()=>J9e,classOrConstructorParameterIsDecorated:()=>Rx,classicNameResolver:()=>oOt,classifier:()=>pYt,cleanExtendedConfigCache:()=>$9e,clear:()=>St,clearMap:()=>Fy,clearSharedExtendedConfigFileWatcher:()=>rtt,climbPastPropertyAccess:()=>GVe,clone:()=>Eg,cloneCompilerOptions:()=>krt,closeFileWatcher:()=>dv,closeFileWatcherOf:()=>Cv,codefix:()=>x0,collapseTextChangeRangesAcrossMultipleVersions:()=>z,collectExternalModuleInfo:()=>Let,combine:()=>zr,combinePaths:()=>Ro,commandLineOptionOfCustomType:()=>SWt,commentPragmas:()=>e1,commonOptionsWithBuild:()=>p9e,compact:()=>Hr,compareBooleans:()=>Ml,compareDataObjects:()=>_Ae,compareDiagnostics:()=>X7,compareEmitHelpers:()=>XLe,compareNumberOfDirectorySeparators:()=>Qne,comparePaths:()=>qf,comparePathsCaseInsensitive:()=>pB,comparePathsCaseSensitive:()=>Cx,comparePatternKeys:()=>Iet,compareProperties:()=>Ea,compareStringsCaseInsensitive:()=>Fs,compareStringsCaseInsensitiveEslintCompatible:()=>Wa,compareStringsCaseSensitive:()=>Ca,compareStringsCaseSensitiveUI:()=>so,compareTextSpans:()=>yn,compareValues:()=>Zt,compilerOptionsAffectDeclarationPath:()=>aLe,compilerOptionsAffectEmit:()=>oLe,compilerOptionsAffectSemanticDiagnostics:()=>mbe,compilerOptionsDidYouMeanDiagnostics:()=>m9e,compilerOptionsIndicateEsModules:()=>Vrt,computeCommonSourceDirectoryOfFilenames:()=>m3t,computeLineAndCharacterOfPosition:()=>Ci,computeLineOfPosition:()=>Po,computeLineStarts:()=>cA,computePositionOfLineAndCharacter:()=>xn,computeSignatureWithDiagnostics:()=>ytt,computeSuggestionDiagnostics:()=>Snt,computedOptions:()=>J7,concatenate:()=>Nn,concatenateDiagnosticMessageChains:()=>Fne,consumesNodeCoreModules:()=>cPe,contains:()=>k,containsIgnoredPath:()=>sz,containsObjectRestOrSpread:()=>fEe,containsParseError:()=>pP,containsPath:()=>Jh,convertCompilerOptionsForTelemetry:()=>PWt,convertCompilerOptionsFromJson:()=>hen,convertJsonOption:()=>vU,convertToBase64:()=>nbe,convertToJson:()=>bEe,convertToObject:()=>xWt,convertToOptionsWithAbsolutePaths:()=>b9e,convertToRelativePath:()=>r2,convertToTSConfig:()=>q$e,convertTypeAcquisitionFromJson:()=>men,copyComments:()=>xU,copyEntries:()=>a7,copyLeadingComments:()=>Uie,copyProperties:()=>GA,copyTrailingAsLeadingComments:()=>m1e,copyTrailingComments:()=>jde,couldStartTrivia:()=>tv,countWhere:()=>ct,createAbstractBuilder:()=>Brn,createAccessorPropertyBackingField:()=>F$e,createAccessorPropertyGetRedirector:()=>lWt,createAccessorPropertySetRedirector:()=>uWt,createBaseNodeFactory:()=>GLe,createBinaryExpressionTrampoline:()=>l9e,createBuilderProgram:()=>btt,createBuilderProgramUsingIncrementalBuildInfo:()=>M3t,createBuilderStatusReporter:()=>yVe,createCacheableExportInfoMap:()=>dnt,createCachedDirectoryStructureHost:()=>z9e,createClassifier:()=>rin,createCommentDirectivesMap:()=>bge,createCompilerDiagnostic:()=>Nf,createCompilerDiagnosticForInvalidCustomType:()=>vWt,createCompilerDiagnosticFromMessageChain:()=>SAe,createCompilerHost:()=>C3t,createCompilerHostFromProgramHost:()=>Mtt,createCompilerHostWorker:()=>eVe,createDetachedDiagnostic:()=>QY,createDiagnosticCollection:()=>EF,createDiagnosticForFileFromMessageChain:()=>Ut,createDiagnosticForNode:()=>mo,createDiagnosticForNodeArray:()=>A3,createDiagnosticForNodeArrayFromMessageChain:()=>ie,createDiagnosticForNodeFromMessageChain:()=>Bw,createDiagnosticForNodeInSourceFile:()=>_E,createDiagnosticForRange:()=>kn,createDiagnosticMessageChainFromDiagnostic:()=>Qr,createDiagnosticReporter:()=>Gz,createDocumentPositionMapper:()=>BOt,createDocumentRegistry:()=>FMt,createDocumentRegistryInternal:()=>mnt,createEmitAndSemanticDiagnosticsBuilderProgram:()=>Btt,createEmitHelperFactory:()=>QLe,createEmptyExports:()=>aEe,createEvaluator:()=>DLe,createExpressionForJsxElement:()=>UPt,createExpressionForJsxFragment:()=>KPt,createExpressionForObjectLiteralElementLike:()=>jPt,createExpressionForPropertyName:()=>B$e,createExpressionFromEntityName:()=>cEe,createExternalHelpersImportDeclarationIfNeeded:()=>R$e,createFileDiagnostic:()=>qh,createFileDiagnosticFromMessageChain:()=>ze,createFlowNode:()=>rk,createForOfBindingStatement:()=>v$e,createFutureSourceFile:()=>pPe,createGetCanonicalFileName:()=>_d,createGetIsolatedDeclarationErrors:()=>s3t,createGetSourceFile:()=>att,createGetSymbolAccessibilityDiagnosticForNode:()=>J3,createGetSymbolAccessibilityDiagnosticForNodeName:()=>i3t,createGetSymbolWalker:()=>AOt,createIncrementalCompilerHost:()=>_Ve,createIncrementalProgram:()=>$3t,createJsxFactoryExpression:()=>S$e,createLanguageService:()=>gYt,createLanguageServiceSourceFile:()=>xPe,createMemberAccessForPropertyName:()=>EU,createModeAwareCache:()=>wie,createModeAwareCacheKey:()=>Cde,createModeMismatchDetails:()=>l7,createModuleNotFoundChain:()=>kJ,createModuleResolutionCache:()=>Tie,createModuleResolutionLoader:()=>dtt,createModuleResolutionLoaderUsingGlobalCache:()=>j3t,createModuleSpecifierResolutionHost:()=>z3,createMultiMap:()=>dl,createNameResolver:()=>JAe,createNodeConverters:()=>FLe,createNodeFactory:()=>nie,createOptionNameMap:()=>I9e,createOverload:()=>gst,createPackageJsonImportFilter:()=>jie,createPackageJsonInfo:()=>snt,createParenthesizerRules:()=>pv,createPatternMatcher:()=>WMt,createPrinter:()=>MP,createPrinterWithDefaults:()=>d3t,createPrinterWithRemoveComments:()=>gQ,createPrinterWithRemoveCommentsNeverAsciiEscape:()=>p3t,createPrinterWithRemoveCommentsOmitTrailingSemicolon:()=>ttt,createProgram:()=>UEe,createProgramDiagnostics:()=>w3t,createProgramHost:()=>Htt,createPropertyNameNodeForIdentifierOrLiteral:()=>Une,createQueue:()=>oA,createRange:()=>Gy,createRedirectedBuilderProgram:()=>vtt,createResolutionCache:()=>Rtt,createRuntimeTypeSerializer:()=>OOt,createScanner:()=>wb,createSemanticDiagnosticsBuilderProgram:()=>vrn,createSet:()=>oo,createSolutionBuilder:()=>i5t,createSolutionBuilderHost:()=>r5t,createSolutionBuilderWithWatch:()=>s5t,createSolutionBuilderWithWatchHost:()=>n5t,createSortedArray:()=>Ya,createSourceFile:()=>vz,createSourceMapGenerator:()=>yOt,createSourceMapSource:()=>r$e,createSuperAccessVariableStatement:()=>K9e,createSymbolTable:()=>qu,createSymlinkCache:()=>_be,createSyntacticTypeNodeBuilder:()=>E5t,createSystemWatchFunctions:()=>ia,createTextChange:()=>g1e,createTextChangeFromStartLength:()=>JVe,createTextChangeRange:()=>$2,createTextRangeFromNode:()=>Frt,createTextRangeFromSpan:()=>XVe,createTextSpan:()=>zd,createTextSpanFromBounds:()=>wA,createTextSpanFromNode:()=>Oy,createTextSpanFromRange:()=>t9,createTextSpanFromStringLiteralLikeContent:()=>Grt,createTextWriter:()=>Bne,createTokenRange:()=>QL,createTypeChecker:()=>COt,createTypeReferenceDirectiveResolutionCache:()=>k9e,createTypeReferenceResolutionLoader:()=>nVe,createWatchCompilerHost:()=>Zrn,createWatchCompilerHostOfConfigFile:()=>Ytt,createWatchCompilerHostOfFilesAndCompilerOptions:()=>Qtt,createWatchFactory:()=>Ott,createWatchHost:()=>Wtt,createWatchProgram:()=>Xtt,createWatchStatusReporter:()=>Ntt,createWriteFileMeasuringIO:()=>ctt,declarationNameToString:()=>Wd,decodeMappings:()=>Get,decodedTextSpanIntersectsWith:()=>IE,deduplicate:()=>io,defaultHoverMaximumTruncationLength:()=>Age,defaultInitCompilerOptions:()=>L$r,defaultMaximumTruncationLength:()=>EY,diagnosticCategoryName:()=>_b,diagnosticToString:()=>IQ,diagnosticsEqualityComparer:()=>vAe,directoryProbablyExists:()=>f1,directorySeparator:()=>ag,displayPart:()=>SE,displayPartsToString:()=>D1e,disposeEmitNodes:()=>Ku,documentSpansEqual:()=>Qrt,dumpTracingLegend:()=>jf,elementAt:()=>Cg,elideNodes:()=>cWt,emitDetachedComments:()=>GZe,emitFiles:()=>$et,emitFilesAndReportErrors:()=>IVe,emitFilesAndReportErrorsAndGetExitStatus:()=>Ptt,emitModuleKindIsNonNodeESM:()=>Wne,emitNewLineBeforeLeadingCommentOfPosition:()=>Uye,emitResolverSkipsTypeChecking:()=>qet,emitSkippedWithNoDiagnostics:()=>Itt,emptyArray:()=>E,emptyFileSystemEntries:()=>wbe,emptyMap:()=>N,emptyOptions:()=>VB,endsWith:()=>di,ensurePathIsNonModuleName:()=>Am,ensureScriptKind:()=>xAe,ensureTrailingDirectorySeparator:()=>hp,entityNameToString:()=>oy,enumerateInsertsAndDeletes:()=>q0,equalOwnProperties:()=>Hu,equateStringsCaseInsensitive:()=>Mp,equateStringsCaseSensitive:()=>MA,equateValues:()=>yg,escapeJsxAttributeString:()=>Wye,escapeLeadingUnderscores:()=>Ap,escapeNonAsciiString:()=>Ene,escapeSnippetText:()=>xP,escapeString:()=>YT,escapeTemplateSubstitution:()=>Vye,evaluatorResult:()=>$h,every:()=>ue,exclusivelyPrefixedNodeCoreModules:()=>jAe,executeCommandLine:()=>fnn,expandPreOrPostfixIncrementOrDecrementExpression:()=>i9e,explainFiles:()=>Gtt,explainIfFileIsRedirectAndImpliedFormat:()=>Ftt,exportAssignmentIsAlias:()=>Ine,expressionResultIsUnused:()=>SLe,extend:()=>OA,extensionFromPath:()=>tz,extensionIsTS:()=>PAe,extensionsNotSupportingExtensionlessResolution:()=>VAe,externalHelpersModuleNameText:()=>PD,factory:()=>me,fileExtensionIs:()=>aA,fileExtensionIsOneOf:()=>fu,fileIncludeReasonToDiagnostics:()=>Vtt,fileShouldUseJavaScriptRequire:()=>Ant,filter:()=>Me,filterMutate:()=>je,filterSemanticDiagnostics:()=>aVe,find:()=>de,findAncestor:()=>ji,findBestPatternMatch:()=>YA,findChildOfKind:()=>qd,findComputedPropertyNameCacheAssignment:()=>u9e,findConfigFile:()=>stt,findConstructorDeclaration:()=>zY,findContainingList:()=>PVe,findDiagnosticForNode:()=>BMt,findFirstNonJsxWhitespaceToken:()=>K5t,findIndex:()=>Se,findLast:()=>be,findLastIndex:()=>De,findListItemInfo:()=>U5t,findModifier:()=>Qie,findNextToken:()=>fQ,findPackageJson:()=>vMt,findPackageJsons:()=>int,findPrecedingMatchingToken:()=>YVe,findPrecedingToken:()=>Gm,findSuperStatementIndexPath:()=>H9e,findTokenOnLeftOfPosition:()=>Hde,findUseStrictPrologue:()=>T$e,first:()=>ma,firstDefined:()=>X,firstDefinedIterator:()=>ae,firstIterator:()=>vu,firstOrOnly:()=>cnt,firstOrUndefined:()=>Nc,firstOrUndefinedIterator:()=>iA,fixupCompilerOptions:()=>Tnt,flatMap:()=>er,flatMapIterator:()=>xt,flatMapToMutable:()=>vt,flatten:()=>Nr,flattenCommaList:()=>gWt,flattenDestructuringAssignment:()=>TU,flattenDestructuringBinding:()=>uQ,flattenDiagnosticMessageText:()=>wN,forEach:()=>F,forEachAncestor:()=>Ew,forEachAncestorDirectory:()=>pE,forEachAncestorDirectoryStoppingAtGlobalCache:()=>vN,forEachChild:()=>Lu,forEachChildRecursively:()=>Sz,forEachDynamicImportOrRequireCall:()=>$ne,forEachEmittedFile:()=>Uet,forEachEnclosingBlockScopeContainer:()=>Dge,forEachEntry:()=>Dh,forEachExternalModuleToImportFrom:()=>fnt,forEachImportClauseDeclaration:()=>fZe,forEachKey:()=>SB,forEachLeadingCommentRange:()=>GD,forEachNameInAccessChainWalkingLeft:()=>zZe,forEachNameOfDefaultExport:()=>IPe,forEachOptionsSyntaxByName:()=>zAe,forEachProjectReference:()=>gz,forEachPropertyAssignment:()=>WJ,forEachResolvedProjectReference:()=>tie,forEachReturnStatement:()=>yF,forEachRight:()=>Q,forEachTrailingCommentRange:()=>dF,forEachTsConfigPropArray:()=>zre,forEachUnique:()=>Jrt,forEachYieldExpression:()=>eZe,formatColorAndReset:()=>AQ,formatDiagnostic:()=>ltt,formatDiagnostics:()=>$tn,formatDiagnosticsWithColorAndContext:()=>E3t,formatGeneratedName:()=>M3,formatGeneratedNamePart:()=>Eie,formatLocation:()=>utt,formatMessage:()=>XY,formatStringFromArgs:()=>dN,formatting:()=>Im,generateDjb2Hash:()=>ry,generateTSConfig:()=>GWt,getAdjustedReferenceLocation:()=>Brt,getAdjustedRenameLocation:()=>OVe,getAliasDeclarationFromName:()=>Rye,getAllAccessorDeclarations:()=>BP,getAllDecoratorsOfClass:()=>Pet,getAllDecoratorsOfClassElement:()=>Q9e,getAllJSDocTags:()=>dJ,getAllJSDocTagsOfKind:()=>rye,getAllKeys:()=>mI,getAllProjectOutputs:()=>j9e,getAllSuperTypeNodes:()=>R7,getAllowImportingTsExtensions:()=>tLe,getAllowJSCompilerOption:()=>TF,getAllowSyntheticDefaultImports:()=>JY,getAncestor:()=>ML,getAnyExtensionFromPath:()=>gE,getAreDeclarationMapsEnabled:()=>BAe,getAssignedExpandoInitializer:()=>FY,getAssignedName:()=>CB,getAssignmentDeclarationKind:()=>nI,getAssignmentDeclarationPropertyAccessKind:()=>XJ,getAssignmentTargetKind:()=>QD,getAutomaticTypeDirectiveNames:()=>N9e,getBaseFileName:()=>gp,getBinaryOperatorPrecedence:()=>bne,getBuildInfo:()=>ett,getBuildInfoFileVersionMap:()=>Stt,getBuildInfoText:()=>g3t,getBuildOrderFromAnyBuildOrder:()=>$Ee,getBuilderCreationParameters:()=>gVe,getBuilderFileEmit:()=>HP,getCanonicalDiagnostic:()=>Fi,getCheckFlags:()=>iI,getClassExtendsHeritageElement:()=>OL,getClassLikeDeclarationOfSymbol:()=>AN,getCombinedLocalAndExportSymbolFlags:()=>sU,getCombinedModifierFlags:()=>Hc,getCombinedNodeFlags:()=>dm,getCombinedNodeFlagsAlwaysIncludeJSDoc:()=>ad,getCommentRange:()=>DB,getCommonSourceDirectory:()=>xde,getCommonSourceDirectoryOfConfig:()=>RU,getCompilerOptionValue:()=>K7,getConditions:()=>PP,getConfigFileParsingDiagnostics:()=>dQ,getConstantValue:()=>LLe,getContainerFlags:()=>met,getContainerNode:()=>kU,getContainingClass:()=>hC,getContainingClassExcludingClassDecorators:()=>Oge,getContainingClassStaticBlock:()=>sZe,getContainingFunction:()=>A1,getContainingFunctionDeclaration:()=>Wge,getContainingFunctionOrClassStaticBlock:()=>qre,getContainingNodeArray:()=>vLe,getContainingObjectLiteralElement:()=>k1e,getContextualTypeFromParent:()=>rPe,getContextualTypeFromParentOrAncestorTypeNode:()=>WVe,getDeclarationDiagnostics:()=>o3t,getDeclarationEmitExtensionForPath:()=>sAe,getDeclarationEmitOutputFilePath:()=>NZe,getDeclarationEmitOutputFilePathWorker:()=>wne,getDeclarationFileExtension:()=>A9e,getDeclarationFromName:()=>T7,getDeclarationModifierFlagsFromSymbol:()=>u2,getDeclarationOfKind:()=>Cp,getDeclarationsOfKind:()=>dge,getDeclaredExpandoInitializer:()=>E7,getDecorators:()=>Rb,getDefaultCompilerOptions:()=>kPe,getDefaultFormatCodeSettings:()=>NVe,getDefaultLibFileName:()=>Hs,getDefaultLibFilePath:()=>AYt,getDefaultLikeExportInfo:()=>fPe,getDefaultLikeExportNameFromDeclaration:()=>lnt,getDefaultResolutionModeForFileWorker:()=>oVe,getDiagnosticText:()=>Zb,getDiagnosticsWithinSpan:()=>wMt,getDirectoryPath:()=>Mo,getDirectoryToWatchFailedLookupLocation:()=>Ttt,getDirectoryToWatchFailedLookupLocationFromTypeRoot:()=>U3t,getDocumentPositionMapper:()=>Ent,getDocumentSpansEqualityComparer:()=>Xrt,getESModuleInterop:()=>kw,getEditsForFileRename:()=>LMt,getEffectiveBaseTypeNode:()=>BB,getEffectiveConstraintOfTypeParameter:()=>n3,getEffectiveContainerForJSDocTemplateTag:()=>zge,getEffectiveImplementsTypeNodes:()=>jJ,getEffectiveInitializer:()=>one,getEffectiveJSDocHost:()=>WL,getEffectiveModifierFlags:()=>o_,getEffectiveModifierFlagsAlwaysIncludeJSDoc:()=>PZe,getEffectiveModifierFlagsNoCache:()=>zye,getEffectiveReturnTypeNode:()=>xb,getEffectiveSetAccessorTypeAnnotationNode:()=>Jye,getEffectiveTypeAnnotationNode:()=>kh,getEffectiveTypeParameterDeclarations:()=>ZD,getEffectiveTypeRoots:()=>mde,getElementOrPropertyAccessArgumentExpressionOrName:()=>jge,getElementOrPropertyAccessName:()=>YD,getElementsOfBindingOrAssignmentPattern:()=>bie,getEmitDeclarations:()=>Ly,getEmitFlags:()=>tA,getEmitHelpers:()=>jbe,getEmitModuleDetectionKind:()=>rLe,getEmitModuleFormatOfFileWorker:()=>Lde,getEmitModuleKind:()=>i0,getEmitModuleResolutionKind:()=>k_,getEmitScriptTarget:()=>Mg,getEmitStandardClassFields:()=>hbe,getEnclosingBlockScopeContainer:()=>tS,getEnclosingContainer:()=>f7,getEncodedSemanticClassifications:()=>Int,getEncodedSyntacticClassifications:()=>hnt,getEndLinePosition:()=>vY,getEntityNameFromTypeNode:()=>ene,getEntrypointsFromPackageJsonInfo:()=>det,getErrorCountForSummary:()=>pVe,getErrorSpanForNode:()=>qa,getErrorSummaryText:()=>ktt,getEscapedTextOfIdentifierOrLiteral:()=>qJ,getEscapedTextOfJsxAttributeName:()=>cz,getEscapedTextOfJsxNamespacedName:()=>oS,getExpandoInitializer:()=>VL,getExportAssignmentExpression:()=>hne,getExportInfoMap:()=>S1e,getExportNeedsImportStarHelper:()=>wOt,getExpressionAssociativity:()=>Zye,getExpressionPrecedence:()=>x7,getExternalHelpersModuleName:()=>uEe,getExternalModuleImportEqualsDeclarationExpression:()=>_7,getExternalModuleName:()=>LY,getExternalModuleNameFromDeclaration:()=>TZe,getExternalModuleNameFromPath:()=>Mye,getExternalModuleNameLiteral:()=>Ez,getExternalModuleRequireArgument:()=>Cye,getFallbackOptions:()=>QEe,getFileEmitOutput:()=>T3t,getFileMatcherPatterns:()=>kAe,getFileNamesFromConfigSpecs:()=>Ide,getFileWatcherEventKind:()=>qS,getFilesInErrorForSummary:()=>fVe,getFirstConstructorWithBody:()=>lN,getFirstIdentifier:()=>B0,getFirstNonSpaceCharacterPosition:()=>CMt,getFirstProjectOutput:()=>zet,getFixableErrorSpanExpression:()=>ont,getFormatCodeSettingsForWriting:()=>APe,getFullWidth:()=>DJ,getFunctionFlags:()=>SI,getHeritageClause:()=>mne,getHostSignatureFromJSDoc:()=>PL,getIdentifierAutoGenerate:()=>s$e,getIdentifierGeneratedImportReference:()=>HLe,getIdentifierTypeArguments:()=>G3,getImmediatelyInvokedFunctionExpression:()=>ZL,getImpliedNodeFormatForEmitWorker:()=>NU,getImpliedNodeFormatForFile:()=>JEe,getImpliedNodeFormatForFileWorker:()=>sVe,getImportNeedsImportDefaultHelper:()=>Zet,getImportNeedsImportStarHelper:()=>O9e,getIndentString:()=>iAe,getInferredLibraryNameResolveFrom:()=>iVe,getInitializedVariables:()=>iU,getInitializerOfBinaryExpression:()=>bye,getInitializerOfBindingOrAssignmentElement:()=>AEe,getInterfaceBaseTypeNodes:()=>N7,getInternalEmitFlags:()=>g1,getInvokedExpression:()=>Yge,getIsFileExcluded:()=>kMt,getIsolatedModules:()=>sS,getJSDocAugmentsTag:()=>K6,getJSDocClassTag:()=>bx,getJSDocCommentRanges:()=>dye,getJSDocCommentsAndTags:()=>Sye,getJSDocDeprecatedTag:()=>Kh,getJSDocDeprecatedTagNoCache:()=>i2,getJSDocEnumTag:()=>a1,getJSDocHost:()=>bP,getJSDocImplementsTags:()=>uY,getJSDocOverloadTags:()=>Bye,getJSDocOverrideTagNoCache:()=>Pd,getJSDocParameterTags:()=>vL,getJSDocParameterTagsNoCache:()=>uJ,getJSDocPrivateTag:()=>Es,getJSDocPrivateTagNoCache:()=>Aa,getJSDocProtectedTag:()=>ha,getJSDocProtectedTagNoCache:()=>Ua,getJSDocPublicTag:()=>_re,getJSDocPublicTagNoCache:()=>Ex,getJSDocReadonlyTag:()=>wc,getJSDocReadonlyTagNoCache:()=>hA,getJSDocReturnTag:()=>sv,getJSDocReturnType:()=>AJ,getJSDocRoot:()=>KJ,getJSDocSatisfiesExpressionType:()=>Lbe,getJSDocSatisfiesTag:()=>fF,getJSDocTags:()=>Sx,getJSDocTemplateTag:()=>oP,getJSDocThisTag:()=>Nb,getJSDocType:()=>eN,getJSDocTypeAliasName:()=>D$e,getJSDocTypeAssertionType:()=>_ie,getJSDocTypeParameterDeclarations:()=>uAe,getJSDocTypeParameterTags:()=>r3,getJSDocTypeParameterTagsNoCache:()=>U6,getJSDocTypeTag:()=>ov,getJSXImplicitImportBase:()=>One,getJSXRuntimeImport:()=>Mne,getJSXTransformEnabled:()=>RAe,getKeyForCompilerOptions:()=>aet,getLanguageVariant:()=>Zne,getLastChild:()=>ube,getLeadingCommentRanges:()=>fE,getLeadingCommentRangesOfNode:()=>Fge,getLeftmostAccessExpression:()=>oU,getLeftmostExpression:()=>aU,getLibFileNameFromLibReference:()=>Obe,getLibNameFromLibReference:()=>qY,getLibraryNameFromLibFileName:()=>ptt,getLineAndCharacterOfPosition:()=>Ra,getLineInfo:()=>xet,getLineOfLocalPosition:()=>Z7,getLineStartPositionForPosition:()=>PB,getLineStarts:()=>rn,getLinesBetweenPositionAndNextNonWhitespaceCharacter:()=>obe,getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter:()=>KZe,getLinesBetweenPositions:()=>ec,getLinesBetweenRangeEndAndRangeStart:()=>v3,getLinesBetweenRangeEndPositions:()=>UZe,getLiteralText:()=>Sge,getLocalNameForExternalImport:()=>yie,getLocalSymbolForExportDefault:()=>W7,getLocaleSpecificMessage:()=>Bu,getLocaleTimeString:()=>qEe,getMappedContextSpan:()=>Urt,getMappedDocumentSpan:()=>$Ve,getMappedLocation:()=>Jde,getMatchedFileSpec:()=>Ztt,getMatchedIncludeSpec:()=>Ltt,getMeaningFromDeclaration:()=>kVe,getMeaningFromLocation:()=>DU,getMembersOfDeclaration:()=>Zge,getModeForFileReference:()=>S3t,getModeForResolutionAtIndex:()=>srn,getModeForUsageLocation:()=>Att,getModifiedTime:()=>bb,getModifiers:()=>$R,getModuleInstanceState:()=>PF,getModuleNameStringLiteralAt:()=>KEe,getModuleSpecifierEndingPreference:()=>fLe,getModuleSpecifierResolverHost:()=>Prt,getNameForExportedSymbol:()=>lPe,getNameFromImportAttribute:()=>XAe,getNameFromIndexInfo:()=>kge,getNameFromPropertyName:()=>d1e,getNameOfAccessExpression:()=>gbe,getNameOfCompilerOptionValue:()=>y9e,getNameOfDeclaration:()=>Il,getNameOfExpando:()=>_ye,getNameOfJSDocTypedef:()=>pF,getNameOfScriptTarget:()=>TAe,getNameOrArgument:()=>cne,getNameTable:()=>$nt,getNamespaceDeclarationNode:()=>JJ,getNewLineCharacter:()=>uN,getNewLineKind:()=>E1e,getNewLineOrDefaultFromHost:()=>OF,getNewTargetContainer:()=>aZe,getNextJSDocCommentLocation:()=>vye,getNodeChildren:()=>b$e,getNodeForGeneratedName:()=>pEe,getNodeId:()=>rd,getNodeKind:()=>pQ,getNodeModifiers:()=>Yde,getNodeModulePathParts:()=>MAe,getNonAssignedNameOfDeclaration:()=>Cw,getNonAssignmentOperatorForCompoundAssignment:()=>Bde,getNonAugmentationDeclaration:()=>LJ,getNonDecoratorTokenPosOfNode:()=>Mre,getNonIncrementalBuildInfoRoots:()=>H3t,getNonModifierTokenPosOfNode:()=>Ege,getNormalizedAbsolutePath:()=>Xc,getNormalizedAbsolutePathWithoutRoot:()=>KR,getNormalizedPathComponents:()=>AB,getObjectFlags:()=>la,getOperatorAssociativity:()=>Lye,getOperatorPrecedence:()=>yne,getOptionFromName:()=>J$e,getOptionsForLibraryResolution:()=>cet,getOptionsNameMap:()=>vie,getOptionsSyntaxByArrayElementValue:()=>Mbe,getOptionsSyntaxByValue:()=>kLe,getOrCreateEmitNode:()=>c_,getOrUpdate:()=>cr,getOriginalNode:()=>Dd,getOriginalNodeId:()=>Wy,getOutputDeclarationFileName:()=>kde,getOutputDeclarationFileNameWorker:()=>Ket,getOutputExtension:()=>MEe,getOutputFileNames:()=>ztn,getOutputJSFileNameWorker:()=>jet,getOutputPathsFor:()=>Dde,getOwnEmitOutputFilePath:()=>RZe,getOwnKeys:()=>_g,getOwnValues:()=>Qh,getPackageJsonTypesVersionsPaths:()=>R9e,getPackageNameFromTypesPackageName:()=>bde,getPackageScopeForPath:()=>yde,getParameterSymbolFromJSDoc:()=>dne,getParentNodeInSpan:()=>f1e,getParseTreeNode:()=>$l,getParsedCommandLineOfConfigFile:()=>_Ee,getPathComponents:()=>Np,getPathFromPathComponents:()=>Dm,getPathUpdater:()=>_nt,getPathsBasePath:()=>oAe,getPatternFromSpec:()=>Ebe,getPendingEmitKindWithSeen:()=>uVe,getPositionOfLineAndCharacter:()=>th,getPossibleGenericSignatures:()=>Trt,getPossibleOriginalInputExtensionForExtension:()=>Hye,getPossibleOriginalInputPathWithoutChangingExt:()=>Yye,getPossibleTypeArgumentsInfo:()=>Rrt,getPreEmitDiagnostics:()=>qtn,getPrecedingNonSpaceCharacterPosition:()=>ePe,getPrivateIdentifier:()=>Wet,getProperties:()=>Vet,getProperty:()=>pu,getPropertyAssignmentAliasLikeExpression:()=>bZe,getPropertyNameForPropertyNameNode:()=>_3,getPropertyNameFromType:()=>A2,getPropertyNameOfBindingOrAssignmentElement:()=>N$e,getPropertySymbolFromBindingElement:()=>qVe,getPropertySymbolsFromContextualType:()=>GPe,getQuoteFromPreference:()=>Ort,getQuotePreference:()=>_1,getRangesWhere:()=>Fn,getRefactorContextSpan:()=>Vz,getReferencedFileLocation:()=>Zde,getRegexFromPattern:()=>zD,getRegularExpressionForWildcard:()=>j7,getRegularExpressionsForWildcards:()=>Hne,getRelativePathFromDirectory:()=>mp,getRelativePathFromFile:()=>i1,getRelativePathToDirectoryOrUrl:()=>Of,getRenameLocation:()=>h1e,getReplacementSpanForContextToken:()=>xrt,getResolutionDiagnostic:()=>mtt,getResolutionModeOverride:()=>Gie,getResolveJsonModule:()=>NP,getResolvePackageJsonExports:()=>U7,getResolvePackageJsonImports:()=>Vne,getResolvedExternalModuleName:()=>F7,getResolvedModuleFromResolution:()=>xL,getResolvedTypeReferenceDirectiveFromResolution:()=>c7,getRestIndicatorOfBindingOrAssignmentElement:()=>a9e,getRestParameterElementType:()=>pye,getRightMostAssignedExpression:()=>ane,getRootDeclaration:()=>Rw,getRootDirectoryOfResolutionCache:()=>K3t,getRootLength:()=>Wf,getScriptKind:()=>qrt,getScriptKindFromFileName:()=>GAe,getScriptTargetFeatures:()=>Hre,getSelectedEffectiveModifierFlags:()=>MY,getSelectedSyntacticModifierFlags:()=>LZe,getSemanticClassifications:()=>xMt,getSemanticJsxChildren:()=>$J,getSetAccessorTypeAnnotationNode:()=>kZe,getSetAccessorValueParameter:()=>L7,getSetExternalModuleIndicator:()=>Lne,getShebang:()=>mB,getSingleVariableOfVariableStatement:()=>m3,getSnapshotText:()=>Lz,getSnippetElement:()=>zbe,getSourceFileOfModule:()=>FJ,getSourceFileOfNode:()=>ms,getSourceFilePathInNewDir:()=>cAe,getSourceFileVersionAsHashFromText:()=>hVe,getSourceFilesToEmit:()=>aAe,getSourceMapRange:()=>XT,getSourceMapper:()=>KMt,getSourceTextOfNodeFromSourceFile:()=>mF,getSpanOfTokenAtPosition:()=>rs,getSpellingSuggestion:()=>Dr,getStartPositionOfLine:()=>OD,getStartPositionOfRange:()=>H7,getStartsOnNewLine:()=>D3,getStaticPropertiesAndClassStaticBlock:()=>Y9e,getStrictOptionValue:()=>a_,getStringComparer:()=>ld,getSubPatternFromSpec:()=>DAe,getSuperCallFromStatement:()=>M9e,getSuperContainer:()=>C7,getSupportedCodeFixes:()=>znt,getSupportedExtensions:()=>z7,getSupportedExtensionsWithJsonIfResolveJsonModule:()=>q7,getSwitchedType:()=>tnt,getSymbolId:()=>kg,getSymbolNameForPrivateIdentifier:()=>_ne,getSymbolTarget:()=>$rt,getSyntacticClassifications:()=>GMt,getSyntacticModifierFlags:()=>Nx,getSyntacticModifierFlagsNoCache:()=>qye,getSynthesizedDeepClone:()=>JA,getSynthesizedDeepCloneWithReplacements:()=>rie,getSynthesizedDeepClones:()=>o0,getSynthesizedDeepClonesWithReplacements:()=>qAe,getSyntheticLeadingComments:()=>k3,getSyntheticTrailingComments:()=>hU,getTargetLabel:()=>FVe,getTargetOfBindingOrAssignmentElement:()=>ZP,getTemporaryModuleResolutionState:()=>_de,getTextOfConstantValue:()=>vge,getTextOfIdentifierOrLiteral:()=>c2,getTextOfJSDocComment:()=>pJ,getTextOfJsxAttributeName:()=>xw,getTextOfJsxNamespacedName:()=>lz,getTextOfNode:()=>xp,getTextOfNodeFromSourceText:()=>TY,getTextOfPropertyName:()=>hP,getThisContainer:()=>r0,getThisParameter:()=>vP,getTokenAtPosition:()=>Jc,getTokenPosOfNode:()=>MD,getTokenSourceMapRange:()=>fz,getTouchingPropertyName:()=>Lb,getTouchingToken:()=>Hie,getTrailingCommentRanges:()=>n2,getTrailingSemicolonDeferringWriter:()=>Oye,getTransformers:()=>c3t,getTsBuildInfoEmitOutputFilePath:()=>U3,getTsConfigObjectLiteralExpression:()=>m7,getTsConfigPropArrayElementValue:()=>Pge,getTypeAnnotationNode:()=>xZe,getTypeArgumentOrTypeParameterList:()=>rMt,getTypeKeywordOfTypeOnlyImport:()=>Yrt,getTypeNode:()=>OLe,getTypeNodeIfAccessible:()=>qde,getTypeParameterFromJsDoc:()=>hZe,getTypeParameterOwner:()=>ye,getTypesPackageName:()=>F9e,getUILocale:()=>df,getUniqueName:()=>GU,getUniqueSymbolId:()=>mMt,getUseDefineForClassFields:()=>Pne,getWatchErrorSummaryDiagnosticMessage:()=>Dtt,getWatchFactory:()=>itt,group:()=>Yn,groupBy:()=>Ko,guessIndentation:()=>xre,handleNoEmitOptions:()=>htt,handleWatchOptionsConfigDirTemplateSubstitution:()=>E9e,hasAbstractModifier:()=>wP,hasAccessorModifier:()=>Nw,hasAmbientModifier:()=>jye,hasChangesInResolutions:()=>Pre,hasContextSensitiveParameters:()=>OAe,hasDecorators:()=>p1,hasDocComment:()=>eMt,hasDynamicName:()=>XD,hasEffectiveModifier:()=>Gb,hasEffectiveModifiers:()=>Kye,hasEffectiveReadonlyModifier:()=>b3,hasExtension:()=>E0,hasImplementationTSFileExtension:()=>dLe,hasIndexSignature:()=>ent,hasInferredType:()=>KAe,hasInitializer:()=>WT,hasInvalidEscape:()=>Pye,hasJSDocNodes:()=>Xm,hasJSDocParameterTags:()=>gJ,hasJSFileExtension:()=>pN,hasJsonModuleEmitEnabled:()=>wAe,hasOnlyExpressionInitializer:()=>l1,hasOverrideModifier:()=>Tne,hasPossibleExternalModuleReference:()=>Nge,hasProperty:()=>Da,hasPropertyAccessExpressionWithName:()=>s1e,hasQuestionToken:()=>VY,hasRecordedExternalHelpers:()=>$Pt,hasResolutionModeOverride:()=>RLe,hasRestParameter:()=>Gre,hasScopeMarker:()=>Db,hasStaticModifier:()=>zh,hasSyntacticModifier:()=>Ga,hasSyntacticModifiers:()=>ZZe,hasTSFileExtension:()=>w3,hasTabstop:()=>wLe,hasTrailingDirectorySeparator:()=>Jp,hasType:()=>If,hasTypeArguments:()=>Eqe,hasZeroOrOneAsteriskCharacter:()=>Cbe,hostGetCanonicalFileName:()=>JD,hostUsesCaseSensitiveFileNames:()=>y3,idText:()=>Vo,identifierIsThisKeyword:()=>Xye,identifierToKeywordKind:()=>iv,identity:()=>Fl,identitySourceMapConsumer:()=>Fet,ignoreSourceNewlines:()=>$be,ignoredPaths:()=>Qp,importFromModuleSpecifier:()=>v7,importSyntaxAffectsModuleResolution:()=>Ibe,indexOfAnyCharCode:()=>et,indexOfNode:()=>fP,indicesOf:()=>po,inferredTypesContainingFile:()=>Fde,injectClassNamedEvaluationHelperBlockIfMissing:()=>U9e,injectClassThisAssignmentIfMissing:()=>FOt,insertImports:()=>Hrt,insertSorted:()=>Gc,insertStatementAfterCustomPrologue:()=>FL,insertStatementAfterStandardPrologue:()=>yge,insertStatementsAfterCustomPrologue:()=>Wre,insertStatementsAfterStandardPrologue:()=>Sw,intersperse:()=>fe,intrinsicTagNameToString:()=>Vbe,introducesArgumentsExoticObject:()=>rZe,inverseJsxOptionMap:()=>mEe,isAbstractConstructorSymbol:()=>lbe,isAbstractModifier:()=>Xe,isAccessExpression:()=>_p,isAccessibilityModifier:()=>Drt,isAccessor:()=>yB,isAccessorModifier:()=>It,isAliasableExpression:()=>$ge,isAmbientModule:()=>s_,isAmbientPropertyDeclaration:()=>VJ,isAnyDirectorySeparator:()=>e0,isAnyImportOrBareOrAccessedRequire:()=>Rge,isAnyImportOrReExport:()=>DY,isAnyImportOrRequireStatement:()=>d7,isAnyImportSyntax:()=>IP,isAnySupportedFileExtension:()=>Uqe,isApplicableVersionedTypesKey:()=>REe,isArgumentExpressionOfElementAccess:()=>_rt,isArray:()=>Ki,isArrayBindingElement:()=>o3,isArrayBindingOrAssignmentElement:()=>EJ,isArrayBindingOrAssignmentPattern:()=>Bre,isArrayBindingPattern:()=>p2,isArrayLiteralExpression:()=>OI,isArrayLiteralOrObjectLiteralDestructuringPattern:()=>e9,isArrayTypeNode:()=>kF,isArrowFunction:()=>lA,isAsExpression:()=>Yd,isAssertClause:()=>xPt,isAssertEntry:()=>qqr,isAssertionExpression:()=>Ed,isAssertsKeyword:()=>J,isAssignmentDeclaration:()=>b7,isAssignmentExpression:()=>Jm,isAssignmentOperator:()=>UD,isAssignmentPattern:()=>CY,isAssignmentTarget:()=>bF,isAsteriskToken:()=>gie,isAsyncFunction:()=>D7,isAsyncModifier:()=>G,isAutoAccessorPropertyDeclaration:()=>t0,isAwaitExpression:()=>I1,isAwaitKeyword:()=>U,isBigIntLiteral:()=>eQ,isBinaryExpression:()=>fo,isBinaryLogicalOperator:()=>Rne,isBinaryOperatorToken:()=>aWt,isBindableObjectDefinePropertyCall:()=>f3,isBindableStaticAccessExpression:()=>yP,isBindableStaticElementAccessExpression:()=>Kge,isBindableStaticNameExpression:()=>I3,isBindingElement:()=>hg,isBindingElementOfBareOrAccessedRequire:()=>uZe,isBindingName:()=>RL,isBindingOrAssignmentElement:()=>_J,isBindingOrAssignmentPattern:()=>yJ,isBindingPattern:()=>Nu,isBlock:()=>$u,isBlockLike:()=>Pz,isBlockOrCatchScoped:()=>ZJ,isBlockScope:()=>PJ,isBlockScopedContainerTopLevel:()=>Tge,isBooleanLiteral:()=>hY,isBreakOrContinueStatement:()=>AY,isBreakStatement:()=>Kqr,isBuildCommand:()=>h5t,isBuildInfoFile:()=>l3t,isBuilderProgram:()=>xtt,isBundle:()=>LPt,isCallChain:()=>_B,isCallExpression:()=>Zl,isCallExpressionTarget:()=>prt,isCallLikeExpression:()=>hF,isCallLikeOrFunctionLikeExpression:()=>Tre,isCallOrNewExpression:()=>av,isCallOrNewExpressionTarget:()=>frt,isCallSignatureDeclaration:()=>wg,isCallToHelper:()=>qD,isCaseBlock:()=>ade,isCaseClause:()=>fie,isCaseKeyword:()=>Ks,isCaseOrDefaultClause:()=>RJ,isCatchClause:()=>iQ,isCatchClauseVariableDeclaration:()=>BLe,isCatchClauseVariableDeclarationOrBindingElement:()=>Yre,isCheckJsEnabledForFile:()=>rz,isCircularBuildOrder:()=>Fz,isClassDeclaration:()=>pm,isClassElement:()=>PI,isClassExpression:()=>vd,isClassInstanceProperty:()=>vre,isClassLike:()=>xa,isClassMemberModifier:()=>Sre,isClassNamedEvaluationHelperBlock:()=>kz,isClassOrTypeElement:()=>mY,isClassStaticBlockDeclaration:()=>fl,isClassThisAssignmentBlock:()=>Tde,isColonToken:()=>nEe,isCommaExpression:()=>lEe,isCommaListExpression:()=>sde,isCommaSequence:()=>Ade,isCommaToken:()=>rEe,isComment:()=>QVe,isCommonJsExportPropertyAssignment:()=>Lge,isCommonJsExportedExpression:()=>fye,isCompoundAssignment:()=>vde,isComputedNonLiteralName:()=>kY,isComputedPropertyName:()=>Un,isConciseBody:()=>r7,isConditionalExpression:()=>Lw,isConditionalTypeNode:()=>d2,isConstAssertion:()=>Pbe,isConstTypeReference:()=>s2,isConstructSignatureDeclaration:()=>em,isConstructorDeclaration:()=>Tc,isConstructorTypeNode:()=>$D,isContextualKeyword:()=>tAe,isContinueStatement:()=>Uqr,isCustomPrologue:()=>jre,isDebuggerStatement:()=>jqr,isDeclaration:()=>jh,isDeclarationBindingElement:()=>uP,isDeclarationFileName:()=>PC,isDeclarationName:()=>HT,isDeclarationNameOfEnumOrNamespace:()=>abe,isDeclarationReadonly:()=>hf,isDeclarationStatement:()=>uge,isDeclarationWithTypeParameterChildren:()=>Kre,isDeclarationWithTypeParameters:()=>Ure,isDecorator:()=>So,isDecoratorTarget:()=>H5t,isDefaultClause:()=>cde,isDefaultImport:()=>h3,isDefaultModifier:()=>w,isDefaultedExpandoInitializer:()=>gZe,isDeleteExpression:()=>GF,isDeleteTarget:()=>Tye,isDeprecatedDeclaration:()=>uPe,isDestructuringAssignment:()=>Dx,isDiskPathRoot:()=>cE,isDoStatement:()=>Jqr,isDocumentRegistryEntry:()=>v1e,isDotDotDotToken:()=>nde,isDottedName:()=>Dne,isDynamicName:()=>rAe,isEffectiveExternalModule:()=>g3,isEffectiveStrictModeSourceFile:()=>Jre,isElementAccessChain:()=>IF,isElementAccessExpression:()=>Yg,isEmittedFileOfProgram:()=>I3t,isEmptyArrayLiteral:()=>YZe,isEmptyBindingElement:()=>wr,isEmptyBindingPattern:()=>Ct,isEmptyObjectLiteral:()=>rbe,isEmptyStatement:()=>g$e,isEmptyStringLiteral:()=>mye,isEntityName:()=>fC,isEntityNameExpression:()=>Od,isEnumConst:()=>VA,isEnumDeclaration:()=>V3,isEnumMember:()=>LF,isEqualityOperatorKind:()=>nPe,isEqualsGreaterThanToken:()=>KLe,isExclamationToken:()=>Cz,isExcludedFile:()=>ZWt,isExclusivelyTypeOnlyImportOrExport:()=>gtt,isExpandoPropertyDeclaration:()=>jY,isExportAssignment:()=>Cf,isExportDeclaration:()=>Gh,isExportModifier:()=>y,isExportName:()=>s9e,isExportNamespaceAsDefaultDeclaration:()=>wY,isExportOrDefaultModifier:()=>dEe,isExportSpecifier:()=>R0,isExportsIdentifier:()=>p3,isExportsOrModuleExportsOrAlias:()=>cQ,isExpression:()=>un,isExpressionNode:()=>MT,isExpressionOfExternalModuleImportEqualsDeclaration:()=>X5t,isExpressionOfOptionalChainRoot:()=>gY,isExpressionStatement:()=>VC,isExpressionWithTypeArguments:()=>l_,isExpressionWithTypeArgumentsInClassExtendsClause:()=>dAe,isExternalModule:()=>xm,isExternalModuleAugmentation:()=>_F,isExternalModuleImportEqualsDeclaration:()=>LL,isExternalModuleIndicator:()=>PT,isExternalModuleNameRelative:()=>Xr,isExternalModuleReference:()=>ZF,isExternalModuleSymbol:()=>WD,isExternalOrCommonJsModule:()=>vl,isFileLevelReservedGeneratedIdentifier:()=>fY,isFileLevelUniqueName:()=>u7,isFileProbablyExternalModule:()=>IEe,isFirstDeclarationOfSymbolParameter:()=>Krt,isFixablePromiseHandler:()=>Bnt,isForInOrOfStatement:()=>DL,isForInStatement:()=>jLe,isForInitializer:()=>hE,isForOfStatement:()=>iEe,isForStatement:()=>L3,isFullSourceFile:()=>aN,isFunctionBlock:()=>mP,isFunctionBody:()=>n7,isFunctionDeclaration:()=>ih,isFunctionExpression:()=>UA,isFunctionExpressionOrArrowFunction:()=>RF,isFunctionLike:()=>bu,isFunctionLikeDeclaration:()=>kd,isFunctionLikeKind:()=>lP,isFunctionLikeOrClassStaticBlockDeclaration:()=>s3,isFunctionOrConstructorTypeNode:()=>oge,isFunctionOrModuleBlock:()=>CJ,isFunctionSymbol:()=>dZe,isFunctionTypeNode:()=>x_,isGeneratedIdentifier:()=>kp,isGeneratedPrivateIdentifier:()=>TL,isGetAccessor:()=>bB,isGetAccessorDeclaration:()=>Bg,isGetOrSetAccessorDeclaration:()=>fJ,isGlobalScopeAugmentation:()=>vB,isGlobalSourceFile:()=>fc,isGrammarError:()=>_ge,isHeritageClause:()=>h1,isHoistedFunction:()=>xge,isHoistedVariableStatement:()=>Gge,isIdentifier:()=>Ir,isIdentifierANonContextualKeyword:()=>kye,isIdentifierName:()=>yZe,isIdentifierOrThisTypeNode:()=>nWt,isIdentifierPart:()=>s1,isIdentifierStart:()=>bd,isIdentifierText:()=>Uh,isIdentifierTypePredicate:()=>nZe,isIdentifierTypeReference:()=>yLe,isIfStatement:()=>Z3,isIgnoredFileFromWildCardWatching:()=>YEe,isImplicitGlob:()=>bbe,isImportAttribute:()=>GPt,isImportAttributeName:()=>e7,isImportAttributes:()=>CU,isImportCall:()=>Up,isImportClause:()=>Vw,isImportDeclaration:()=>Mf,isImportEqualsDeclaration:()=>km,isImportKeyword:()=>an,isImportMeta:()=>uv,isImportOrExportSpecifier:()=>eS,isImportOrExportSpecifierName:()=>hMt,isImportSpecifier:()=>uy,isImportTypeAssertionContainer:()=>zqr,isImportTypeNode:()=>Um,isImportable:()=>pnt,isInComment:()=>$L,isInCompoundLikeAssignment:()=>qge,isInExpressionContext:()=>rne,isInJSDoc:()=>GY,isInJSFile:()=>wo,isInJSXText:()=>$5t,isInJsonFile:()=>Xge,isInNonReferenceComment:()=>sMt,isInReferenceComment:()=>iMt,isInRightSideOfInternalImportEqualsDeclaration:()=>xVe,isInString:()=>Zz,isInTemplateString:()=>wrt,isInTopLevelContext:()=>Mge,isInTypeQuery:()=>OY,isIncrementalBuildInfo:()=>jEe,isIncrementalBundleEmitBuildInfo:()=>L3t,isIncrementalCompilation:()=>DP,isIndexSignatureDeclaration:()=>w0,isIndexedAccessTypeNode:()=>Iv,isInferTypeNode:()=>jT,isInfinityOrNaNString:()=>oz,isInitializedProperty:()=>GEe,isInitializedVariable:()=>xne,isInsideJsxElement:()=>HVe,isInsideJsxElementOrAttribute:()=>q5t,isInsideNodeModules:()=>_1e,isInsideTemplateLiteral:()=>u1e,isInstanceOfExpression:()=>pAe,isInstantiatedModule:()=>Tet,isInterfaceDeclaration:()=>g_,isInternalDeclaration:()=>Fre,isInternalModuleImportEqualsDeclaration:()=>d3,isInternalName:()=>w$e,isIntersectionTypeNode:()=>mf,isIntrinsicJsxName:()=>eU,isIterationStatement:()=>VT,isJSDoc:()=>tR,isJSDocAllType:()=>WPt,isJSDocAugmentsTag:()=>bz,isJSDocAuthorTag:()=>r$r,isJSDocCallbackTag:()=>f$e,isJSDocClassTag:()=>MPt,isJSDocCommentContainingNode:()=>i7,isJSDocConstructSignature:()=>PY,isJSDocDeprecatedTag:()=>_$e,isJSDocEnumTag:()=>oEe,isJSDocFunctionType:()=>hie,isJSDocImplementsTag:()=>r9e,isJSDocImportTag:()=>SN,isJSDocIndexSignature:()=>Uge,isJSDocLikeText:()=>Z$e,isJSDocLink:()=>VPt,isJSDocLinkCode:()=>PPt,isJSDocLinkLike:()=>Tx,isJSDocLinkPlain:()=>e$r,isJSDocMemberName:()=>O3,isJSDocNameReference:()=>lde,isJSDocNamepathType:()=>t$r,isJSDocNamespaceBody:()=>oye,isJSDocNode:()=>l3,isJSDocNonNullableType:()=>qLe,isJSDocNullableType:()=>Iie,isJSDocOptionalParameter:()=>HAe,isJSDocOptionalType:()=>p$e,isJSDocOverloadTag:()=>mie,isJSDocOverrideTag:()=>e9e,isJSDocParameterTag:()=>cS,isJSDocPrivateTag:()=>h$e,isJSDocPropertyLikeTag:()=>dY,isJSDocPropertyTag:()=>HPt,isJSDocProtectedTag:()=>m$e,isJSDocPublicTag:()=>I$e,isJSDocReadonlyTag:()=>C$e,isJSDocReturnTag:()=>t9e,isJSDocSatisfiesExpression:()=>Zbe,isJSDocSatisfiesTag:()=>n9e,isJSDocSeeTag:()=>n$r,isJSDocSignature:()=>qL,isJSDocTag:()=>u3,isJSDocTemplateTag:()=>ZB,isJSDocThisTag:()=>y$e,isJSDocThrowsTag:()=>s$r,isJSDocTypeAlias:()=>iS,isJSDocTypeAssertion:()=>sQ,isJSDocTypeExpression:()=>W3,isJSDocTypeLiteral:()=>yU,isJSDocTypeTag:()=>ude,isJSDocTypedefTag:()=>bU,isJSDocUnknownTag:()=>i$r,isJSDocUnknownType:()=>OPt,isJSDocVariadicType:()=>$Le,isJSXTagName:()=>YJ,isJsonEqual:()=>WAe,isJsonSourceFile:()=>Zu,isJsxAttribute:()=>EN,isJsxAttributeLike:()=>wJ,isJsxAttributeName:()=>TLe,isJsxAttributes:()=>nQ,isJsxCallLike:()=>c3,isJsxChild:()=>BJ,isJsxClosingElement:()=>rQ,isJsxClosingFragment:()=>ZPt,isJsxElement:()=>bN,isJsxExpression:()=>pie,isJsxFragment:()=>P3,isJsxNamespacedName:()=>eR,isJsxOpeningElement:()=>$T,isJsxOpeningFragment:()=>Pw,isJsxOpeningLikeElement:()=>eI,isJsxOpeningLikeElementTagName:()=>Y5t,isJsxSelfClosingElement:()=>_U,isJsxSpreadAttribute:()=>yz,isJsxTagNameExpression:()=>kL,isJsxText:()=>KL,isJumpStatementTarget:()=>o1e,isKeyword:()=>v0,isKeywordOrPunctuation:()=>eAe,isKnownSymbol:()=>k7,isLabelName:()=>mrt,isLabelOfLabeledStatement:()=>hrt,isLabeledStatement:()=>FP,isLateVisibilityPaintedStatement:()=>p7,isLeftHandSideExpression:()=>D_,isLet:()=>rS,isLineBreak:()=>Cl,isLiteralComputedPropertyDeclarationName:()=>fne,isLiteralExpression:()=>wL,isLiteralExpressionOfObject:()=>bre,isLiteralImportTypeNode:()=>ky,isLiteralKind:()=>pY,isLiteralNameOfPropertyDeclarationOrIndexAccess:()=>ZVe,isLiteralTypeLiteral:()=>age,isLiteralTypeNode:()=>EE,isLocalName:()=>VF,isLogicalOperator:()=>OZe,isLogicalOrCoalescingAssignmentExpression:()=>gAe,isLogicalOrCoalescingAssignmentOperator:()=>V7,isLogicalOrCoalescingBinaryExpression:()=>Nne,isLogicalOrCoalescingBinaryOperator:()=>AAe,isMappedTypeNode:()=>GB,isMemberName:()=>_w,isMetaProperty:()=>Du,isMethodDeclaration:()=>uu,isMethodOrAccessor:()=>NL,isMethodSignature:()=>hl,isMinusToken:()=>ide,isMissingDeclaration:()=>$qr,isMissingPackageJsonInfo:()=>JWt,isModifier:()=>Ig,isModifierKind:()=>VD,isModifierLike:()=>dp,isModuleAugmentationExternal:()=>Xre,isModuleBlock:()=>_N,isModuleBody:()=>cge,isModuleDeclaration:()=>xh,isModuleExportName:()=>zLe,isModuleExportsAccessExpression:()=>cN,isModuleIdentifier:()=>_P,isModuleName:()=>oWt,isModuleOrEnumDeclaration:()=>a3,isModuleReference:()=>yY,isModuleSpecifierLike:()=>zVe,isModuleWithStringLiteralName:()=>RY,isNameOfFunctionDeclaration:()=>brt,isNameOfModuleDeclaration:()=>yrt,isNamedDeclaration:()=>rh,isNamedEvaluation:()=>kb,isNamedEvaluationSource:()=>xye,isNamedExportBindings:()=>yre,isNamedExports:()=>mv,isNamedImportBindings:()=>wx,isNamedImports:()=>yN,isNamedImportsOrExports:()=>Gne,isNamedTupleMember:()=>KT,isNamespaceBody:()=>Nre,isNamespaceExport:()=>tk,isNamespaceExportDeclaration:()=>sEe,isNamespaceImport:()=>Zx,isNamespaceReexportDeclaration:()=>lZe,isNewExpression:()=>f2,isNewExpressionTarget:()=>Ode,isNewScopeNode:()=>eie,isNoSubstitutionTemplateLiteral:()=>GP,isNodeArray:()=>tN,isNodeArrayMultiLine:()=>hAe,isNodeDescendantOf:()=>EP,isNodeKind:()=>z6,isNodeLikeSystem:()=>Mm,isNodeModulesDirectory:()=>Vd,isNodeWithPossibleHoistedDeclaration:()=>_Ze,isNonContextualKeyword:()=>Dye,isNonGlobalAmbientModule:()=>Qre,isNonNullAccess:()=>YAe,isNonNullChain:()=>hJ,isNonNullExpression:()=>hv,isNonStaticMethodOrAccessorWithPrivateName:()=>TOt,isNotEmittedStatement:()=>FPt,isNullishCoalesce:()=>IJ,isNumber:()=>ws,isNumericLiteral:()=>mC,isNumericLiteralName:()=>IN,isObjectBindingElementWithoutPropertyName:()=>p1e,isObjectBindingOrAssignmentElement:()=>gP,isObjectBindingOrAssignmentPattern:()=>bJ,isObjectBindingPattern:()=>Km,isObjectLiteralElement:()=>bY,isObjectLiteralElementLike:()=>yw,isObjectLiteralExpression:()=>og,isObjectLiteralMethod:()=>a2,isObjectLiteralOrClassExpressionMethodOrAccessor:()=>Vge,isObjectTypeDeclaration:()=>YY,isOmittedExpression:()=>yp,isOptionalChain:()=>GC,isOptionalChainRoot:()=>aP,isOptionalDeclaration:()=>RB,isOptionalJSDocPropertyLikeTag:()=>jne,isOptionalTypeNode:()=>jL,isOuterExpression:()=>o9e,isOutermostOptionalChain:()=>i3,isOverrideModifier:()=>bt,isPackageJsonInfo:()=>D9e,isPackedArrayLiteral:()=>Gbe,isParameter:()=>Si,isParameterPropertyDeclaration:()=>Ve,isParameterPropertyModifier:()=>IY,isParenthesizedExpression:()=>gI,isParenthesizedTypeNode:()=>fv,isParseTreeNode:()=>SL,isPartOfParameterDeclaration:()=>HL,isPartOfTypeNode:()=>ww,isPartOfTypeOnlyImportOrExportDeclaration:()=>sge,isPartOfTypeQuery:()=>Qge,isPartiallyEmittedExpression:()=>ly,isPatternMatch:()=>jd,isPinnedComment:()=>g7,isPlainJsFile:()=>SY,isPlusToken:()=>mz,isPossiblyTypeArgumentPosition:()=>l1e,isPostfixUnaryExpression:()=>ek,isPrefixUnaryExpression:()=>T0,isPrimitiveLiteralValue:()=>uz,isPrivateIdentifier:()=>p,isPrivateIdentifierClassElementDeclaration:()=>pC,isPrivateIdentifierPropertyAccessExpression:()=>cP,isPrivateIdentifierSymbol:()=>SZe,isProgramUptoDate:()=>ftt,isPrologueDirective:()=>nS,isPropertyAccessChain:()=>vx,isPropertyAccessEntityNameExpression:()=>BF,isPropertyAccessExpression:()=>jo,isPropertyAccessOrQualifiedName:()=>SJ,isPropertyAccessOrQualifiedNameOrImportTypeNode:()=>wre,isPropertyAssignment:()=>fm,isPropertyDeclaration:()=>pi,isPropertyName:()=>VI,isPropertyNameLiteral:()=>Tw,isPropertySignature:()=>ss,isPrototypeAccess:()=>wF,isPrototypePropertyAssignment:()=>lne,isPunctuation:()=>Nye,isPushOrUnshiftIdentifier:()=>Gye,isQualifiedName:()=>zi,isQuestionDotToken:()=>Aie,isQuestionOrExclamationToken:()=>rWt,isQuestionOrPlusOrMinusToken:()=>sWt,isQuestionToken:()=>UT,isReadonlyKeyword:()=>le,isReadonlyKeywordOrPlusOrMinusToken:()=>iWt,isRecognizedTripleSlashComment:()=>Ore,isReferenceFileLocation:()=>Fie,isReferencedFile:()=>K3,isRegularExpressionLiteral:()=>tEe,isRequireCall:()=>ay,isRequireVariableStatement:()=>nne,isRestParameter:()=>EB,isRestTypeNode:()=>zL,isReturnStatement:()=>I2,isReturnStatementWithFixablePromiseHandler:()=>mPe,isRightSideOfAccessExpression:()=>tbe,isRightSideOfInstanceofExpression:()=>HZe,isRightSideOfPropertyAccess:()=>Wie,isRightSideOfQualifiedName:()=>Q5t,isRightSideOfQualifiedNameOrPropertyAccess:()=>P7,isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName:()=>MZe,isRootedDiskPath:()=>Xp,isSameEntityName:()=>QJ,isSatisfiesExpression:()=>Qg,isSemicolonClassElement:()=>DPt,isSetAccessor:()=>cv,isSetAccessorDeclaration:()=>Dg,isShiftOperatorOrHigher:()=>x$e,isShorthandAmbientModuleSymbol:()=>NY,isShorthandPropertyAssignment:()=>a0,isSideEffectImport:()=>Wbe,isSignedNumericLiteral:()=>Cne,isSimpleCopiableExpression:()=>lQ,isSimpleInlineableExpression:()=>BN,isSimpleParameterList:()=>FEe,isSingleOrDoubleQuote:()=>ine,isSolutionConfig:()=>ret,isSourceElement:()=>NLe,isSourceFile:()=>ll,isSourceFileFromLibrary:()=>zie,isSourceFileJS:()=>n0,isSourceFileNotJson:()=>Jge,isSourceMapping:()=>vOt,isSpecialPropertyDeclaration:()=>Eye,isSpreadAssignment:()=>Lx,isSpreadElement:()=>of,isStatement:()=>Lc,isStatementButNotDeclaration:()=>vJ,isStatementOrBlock:()=>kre,isStatementWithLocals:()=>mge,isStatic:()=>cg,isStaticModifier:()=>Ge,isString:()=>Xs,isStringANonContextualKeyword:()=>WY,isStringAndEmptyAnonymousObjectIntersection:()=>nMt,isStringDoubleQuoted:()=>sne,isStringLiteral:()=>Zg,isStringLiteralLike:()=>mA,isStringLiteralOrJsxExpression:()=>TJ,isStringLiteralOrTemplate:()=>yMt,isStringOrNumericLiteralLike:()=>d1,isStringOrRegularExpressionOrTemplateLiteral:()=>Nrt,isStringTextContainingNode:()=>Ere,isSuperCall:()=>Dy,isSuperKeyword:()=>rr,isSuperProperty:()=>xy,isSupportedSourceFileName:()=>Bbe,isSwitchStatement:()=>ode,isSyntaxList:()=>Cie,isSyntheticExpression:()=>F3,isSyntheticReference:()=>_z,isTagName:()=>Crt,isTaggedTemplateExpression:()=>MI,isTaggedTemplateTag:()=>M5t,isTemplateExpression:()=>FF,isTemplateHead:()=>tQ,isTemplateLiteral:()=>AP,isTemplateLiteralKind:()=>LD,isTemplateLiteralToken:()=>ige,isTemplateLiteralTypeNode:()=>zT,isTemplateLiteralTypeSpan:()=>mN,isTemplateMiddle:()=>uie,isTemplateMiddleOrTemplateTail:()=>$6,isTemplateSpan:()=>die,isTemplateTail:()=>rde,isTextWhiteSpaceLike:()=>lMt,isThis:()=>Oie,isThisContainerOrFunctionBlock:()=>oZe,isThisIdentifier:()=>vF,isThisInTypeQuery:()=>YL,isThisInitializedDeclaration:()=>Hge,isThisInitializedObjectBindingExpression:()=>cZe,isThisProperty:()=>$re,isThisTypeNode:()=>Fx,isThisTypeParameter:()=>az,isThisTypePredicate:()=>iZe,isThrowStatement:()=>d$e,isToken:()=>BL,isTokenKind:()=>q6,isTraceEnabled:()=>VP,isTransientSymbol:()=>bw,isTrivia:()=>zJ,isTryStatement:()=>mU,isTupleTypeNode:()=>Zw,isTypeAlias:()=>gne,isTypeAliasDeclaration:()=>FB,isTypeAssertionExpression:()=>xF,isTypeDeclaration:()=>KY,isTypeElement:()=>Bx,isTypeKeyword:()=>Qde,isTypeKeywordTokenOrIdentifier:()=>UVe,isTypeLiteralNode:()=>mh,isTypeNode:()=>uc,isTypeNodeKind:()=>bAe,isTypeOfExpression:()=>CN,isTypeOnlyExportDeclaration:()=>mJ,isTypeOnlyImportDeclaration:()=>rN,isTypeOnlyImportOrExportDeclaration:()=>nN,isTypeOperatorNode:()=>xB,isTypeParameterDeclaration:()=>Ds,isTypePredicateNode:()=>bE,isTypeQueryNode:()=>Fw,isTypeReferenceNode:()=>nh,isTypeReferenceType:()=>s7,isTypeUsableAsPropertyName:()=>g2,isUMDExportSymbol:()=>yAe,isUnaryExpression:()=>Rre,isUnaryExpressionWithWrite:()=>iN,isUnicodeIdentifierStart:()=>ft,isUnionTypeNode:()=>aS,isUrl:()=>n_,isValidBigIntString:()=>Jne,isValidESSymbolDeclaration:()=>tZe,isValidTypeOnlyAliasUseSite:()=>JL,isValueSignatureDeclaration:()=>C3,isVarAwaitUsing:()=>Sd,isVarConst:()=>rI,isVarConstLike:()=>OT,isVarUsing:()=>tI,isVariableDeclaration:()=>nc,isVariableDeclarationInVariableStatement:()=>h7,isVariableDeclarationInitializedToBareOrAccessedRequire:()=>CP,isVariableDeclarationInitializedToRequire:()=>y7,isVariableDeclarationList:()=>u_,isVariableLike:()=>I7,isVariableStatement:()=>Ch,isVoidExpression:()=>qT,isWatchSet:()=>cbe,isWhileStatement:()=>A$e,isWhiteSpaceLike:()=>dc,isWhiteSpaceSingleLine:()=>Iu,isWithStatement:()=>kPt,isWriteAccess:()=>B3,isWriteOnlyAccess:()=>CAe,isYieldExpression:()=>Hd,jsxModeNeedsExplicitImport:()=>gnt,keywordPart:()=>y1,last:()=>Ei,lastOrUndefined:()=>li,length:()=>B,libMap:()=>O$e,libs:()=>d9e,lineBreakPart:()=>Jie,loadModuleFromGlobalCache:()=>aOt,loadWithModeAwareCache:()=>XEe,makeIdentifierFromModuleName:()=>vw,makeImport:()=>QP,makeStringLiteral:()=>Xde,mangleScopedPackageName:()=>Nie,map:()=>At,mapAllOrFail:()=>qt,mapDefined:()=>Xt,mapDefinedIterator:()=>lr,mapEntries:()=>ke,mapIterator:()=>Yt,mapOneOrMany:()=>ant,mapToDisplayParts:()=>XP,matchFiles:()=>Sbe,matchPatternOrExact:()=>Tbe,matchedText:()=>pw,matchesExclude:()=>B9e,matchesExcludeWorker:()=>w9e,maxBy:()=>ls,maybeBind:()=>$i,maybeSetLocalizedDiagnosticMessages:()=>$Ze,memoize:()=>FA,memoizeOne:()=>ZA,min:()=>oa,minAndMax:()=>mLe,missingFileModifiedTime:()=>Rh,modifierToFlag:()=>HY,modifiersToFlags:()=>Dw,moduleExportNameIsDefault:()=>lv,moduleExportNameTextEscaped:()=>CF,moduleExportNameTextUnescaped:()=>HD,moduleOptionDeclaration:()=>mWt,moduleResolutionIsEqualTo:()=>Ige,moduleResolutionNameAndModeGetter:()=>rVe,moduleResolutionOptionDeclarations:()=>H$e,moduleResolutionSupportsPackageJsonExportsAndImports:()=>lU,moduleResolutionUsesNodeModules:()=>KVe,moduleSpecifierToValidIdentifier:()=>b1e,moduleSpecifiers:()=>WF,moduleSupportsImportAttributes:()=>sLe,moduleSymbolToValidIdentifier:()=>y1e,moveEmitHelpers:()=>PLe,moveRangeEnd:()=>IAe,moveRangePastDecorators:()=>jD,moveRangePastModifiers:()=>Av,moveRangePos:()=>KD,moveSyntheticComments:()=>ZLe,mutateMap:()=>Q7,mutateMapSkippingNewValues:()=>gN,needsParentheses:()=>tPe,needsScopeMarker:()=>t7,newCaseClauseTracker:()=>dPe,newPrivateEnvironment:()=>NOt,noEmitNotification:()=>PEe,noEmitSubstitution:()=>Nde,noTransformers:()=>a3t,noTruncationMaximumTruncationLength:()=>Lre,nodeCanBeDecorated:()=>OJ,nodeCoreModules:()=>dU,nodeHasName:()=>t3,nodeIsDecorated:()=>MJ,nodeIsMissing:()=>sf,nodeIsPresent:()=>u1,nodeIsSynthesized:()=>sp,nodeModuleNameResolver:()=>qWt,nodeModulesPathPart:()=>Vx,nodeNextJsonConfigResolver:()=>$Wt,nodeOrChildIsDecorated:()=>tne,nodeOverlapsWithStartEnd:()=>LVe,nodePosToString:()=>Cge,nodeSeenTracker:()=>Yie,nodeStartsNewLexicalEnvironment:()=>Fye,noop:()=>Dc,noopFileWatcher:()=>Vie,normalizePath:()=>iu,normalizeSlashes:()=>Dp,normalizeSpans:()=>EI,not:()=>uC,notImplemented:()=>il,notImplementedResolver:()=>A3t,nullNodeConverters:()=>Qbe,nullParenthesizerRules:()=>Ybe,nullTransformationContext:()=>OEe,objectAllocator:()=>ZC,operatorPart:()=>Ude,optionDeclarations:()=>Ww,optionMapToObject:()=>_9e,optionsAffectingProgramStructure:()=>bWt,optionsForBuild:()=>Q$e,optionsForWatch:()=>wz,optionsHaveChanges:()=>S0,or:()=>Hp,orderedRemoveItem:()=>Ql,orderedRemoveItemAt:()=>LA,packageIdToPackageName:()=>xJ,packageIdToString:()=>oN,parameterIsThisKeyword:()=>SF,parameterNamePart:()=>gMt,parseBaseNodeFactory:()=>AWt,parseBigInt:()=>_Le,parseBuildCommand:()=>NWt,parseCommandLine:()=>TWt,parseCommandLineWorker:()=>X$e,parseConfigFileTextToJson:()=>U$e,parseConfigFileWithSystem:()=>z3t,parseConfigHostFromCompilerHostLike:()=>cVe,parseCustomTypeOption:()=>h9e,parseIsolatedEntityName:()=>Bz,parseIsolatedJSDocComment:()=>pWt,parseJSDocTypeExpressionForTests:()=>R$r,parseJsonConfigFileContent:()=>sen,parseJsonSourceFileConfigFileContent:()=>EEe,parseJsonText:()=>hEe,parseListTypeOption:()=>BWt,parseNodeFactory:()=>H3,parseNodeModuleFromPath:()=>wEe,parsePackageName:()=>TEe,parsePseudoBigInt:()=>nz,parseValidBigInt:()=>kbe,pasteEdits:()=>ust,patchWriteFileEnsuringDirectory:()=>e2,pathContainsNodeModules:()=>WP,pathIsAbsolute:()=>lE,pathIsBareSpecifier:()=>Xh,pathIsRelative:()=>Ip,patternText:()=>j1,performIncrementalCompilation:()=>q3t,performance:()=>hb,positionBelongsToNode:()=>Ert,positionIsASICandidate:()=>iPe,positionIsSynthesized:()=>wB,positionsAreOnSameLine:()=>yE,preProcessFile:()=>Iin,probablyUsesSemicolons:()=>C1e,processCommentPragmas:()=>P$e,processPragmasIntoFields:()=>W$e,processTaggedTemplateExpression:()=>Het,programContainsEsModules:()=>aMt,programContainsModules:()=>oMt,projectReferenceIsEqualTo:()=>Vre,propertyNamePart:()=>AMt,pseudoBigIntToString:()=>kP,punctuationPart:()=>k0,pushIfUnique:()=>Qi,quote:()=>zde,quotePreferenceFromString:()=>Wrt,rangeContainsPosition:()=>Mie,rangeContainsPositionExclusive:()=>a1e,rangeContainsRange:()=>cy,rangeContainsRangeExclusive:()=>J5t,rangeContainsStartEnd:()=>c1e,rangeEndIsOnSameLineAsRangeStart:()=>kne,rangeEndPositionsAreOnSameLine:()=>XZe,rangeEquals:()=>gc,rangeIsOnSingleLine:()=>S3,rangeOfNode:()=>Nbe,rangeOfTypeParameters:()=>Dbe,rangeOverlapsWithStartEnd:()=>Mde,rangeStartIsOnSameLineAsRangeEnd:()=>JZe,rangeStartPositionsAreOnSameLine:()=>M7,readBuilderProgram:()=>CVe,readConfigFile:()=>yEe,readJson:()=>E3,readJsonConfigFile:()=>DWt,readJsonOrUndefined:()=>sbe,reduceEachLeadingCommentRange:()=>EL,reduceEachTrailingCommentRange:()=>ff,reduceLeft:()=>Ul,reduceLeftIterator:()=>ne,reducePathComponents:()=>t2,refactor:()=>Oz,regExpEscape:()=>Hqe,regularExpressionFlagToCharacterCode:()=>Ho,relativeComplement:()=>Wr,removeAllComments:()=>pz,removeEmitHelper:()=>i$e,removeExtension:()=>Xne,removeFileExtension:()=>s0,removeIgnoredPath:()=>AVe,removeMinAndVersionNumbers:()=>us,removePrefix:()=>Nm,removeSuffix:()=>aa,removeTrailingDirectorySeparator:()=>ny,repeatString:()=>A1e,replaceElement:()=>Yl,replaceFirstStar:()=>R3,resolutionExtensionIsTSOrJson:()=>ez,resolveConfigFileProjectName:()=>Jtt,resolveJSModule:()=>KWt,resolveLibrary:()=>x9e,resolveModuleName:()=>BU,resolveModuleNameFromCache:()=>Len,resolvePackageNameToPackageJson:()=>oet,resolvePath:()=>AE,resolveProjectReferencePath:()=>xz,resolveTripleslashReference:()=>ott,resolveTypeReferenceDirective:()=>QWt,resolvingEmptyArray:()=>Zre,returnFalse:()=>As,returnNoopFileWatcher:()=>Vde,returnTrue:()=>Tf,returnUndefined:()=>cm,returnsPromise:()=>vnt,rewriteModuleSpecifier:()=>Nz,sameFlatMap:()=>Zr,sameMap:()=>Tr,sameMapping:()=>wtn,scanTokenAtPosition:()=>qs,scanner:()=>A_,semanticDiagnosticsOptionDeclarations:()=>CWt,serializeCompilerOptions:()=>$$e,server:()=>Cfn,servicesVersion:()=>son,setCommentRange:()=>hh,setConfigFileInOptions:()=>eet,setConstantValue:()=>VLe,setEmitFlags:()=>ti,setGetSourceFileAsHashVersioned:()=>mVe,setIdentifierAutoGenerate:()=>oie,setIdentifierGeneratedImportReference:()=>MLe,setIdentifierTypeArguments:()=>xx,setInternalEmitFlags:()=>sie,setLocalizedDiagnosticMessages:()=>cU,setNodeChildren:()=>YPt,setNodeFlags:()=>ELe,setObjectAllocator:()=>qZe,setOriginalNode:()=>ua,setParent:()=>XA,setParentRecursive:()=>UL,setPrivateIdentifier:()=>wU,setSnippetElement:()=>qbe,setSourceMapRange:()=>Hg,setStackTraceLimit:()=>xT,setStartsOnNewLine:()=>Md,setSyntheticLeadingComments:()=>kB,setSyntheticTrailingComments:()=>x3,setSys:()=>bI,setSysLog:()=>xC,setTextRange:()=>gn,setTextRangeEnd:()=>AU,setTextRangePos:()=>iz,setTextRangePosEnd:()=>TB,setTextRangePosWidth:()=>xbe,setTokenSourceMapRange:()=>Kbe,setTypeNode:()=>WLe,setUILocale:()=>Zs,setValueDeclaration:()=>S7,shouldAllowImportingTsExtension:()=>Die,shouldPreserveConstEnums:()=>Fb,shouldRewriteModuleSpecifier:()=>une,shouldUseUriStyleNodeCoreModules:()=>gPe,showModuleSpecifier:()=>jZe,signatureHasRestParameter:()=>D0,signatureToDisplayParts:()=>zrt,single:()=>Xa,singleElementArray:()=>J_,singleIterator:()=>qr,singleOrMany:()=>ac,singleOrUndefined:()=>Ps,skipAlias:()=>FC,skipConstraint:()=>Lrt,skipOuterExpressions:()=>HI,skipParentheses:()=>QA,skipPartiallyEmittedExpressions:()=>o2,skipTrivia:()=>Yu,skipTypeChecking:()=>T3,skipTypeCheckingIgnoringNoCheck:()=>CLe,skipTypeParentheses:()=>w7,skipWhile:()=>cp,sliceAfter:()=>Rbe,some:()=>jt,sortAndDeduplicate:()=>cl,sortAndDeduplicateDiagnostics:()=>ui,sourceFileAffectingCompilerOptions:()=>Y$e,sourceFileMayBeEmitted:()=>SP,sourceMapCommentRegExp:()=>Det,sourceMapCommentRegExpDontCareLineStart:()=>bOt,spacePart:()=>BI,spanMap:()=>_n,startEndContainsRange:()=>mAe,startEndOverlapsWithStartEnd:()=>VVe,startOnNewLine:()=>N0,startTracing:()=>fd,startsWith:()=>Ac,startsWithDirectory:()=>$S,startsWithUnderscore:()=>unt,startsWithUseStrict:()=>zPt,stringContainsAt:()=>TMt,stringToToken:()=>Ta,stripQuotes:()=>l2,supportedDeclarationExtensions:()=>LAe,supportedJSExtensionsFlat:()=>uU,supportedLocaleDirectories:()=>nv,supportedTSExtensionsFlat:()=>vbe,supportedTSImplementationExtensions:()=>Yne,suppressLeadingAndTrailingTrivia:()=>Vy,suppressLeadingTrivia:()=>Hbe,suppressTrailingTrivia:()=>xLe,symbolEscapedNameNoDefault:()=>jVe,symbolName:()=>nf,symbolNameNoDefault:()=>Mrt,symbolToDisplayParts:()=>Kde,sys:()=>yd,sysLog:()=>Ih,tagNamesAreEquivalent:()=>Q3,takeWhile:()=>t_,targetOptionDeclaration:()=>M$e,targetToLibMap:()=>Is,testFormatSettings:()=>Vnn,textChangeRangeIsUnchanged:()=>sy,textChangeRangeNewSpan:()=>qR,textChanges:()=>xo,textOrKeywordPart:()=>jrt,textPart:()=>gS,textRangeContainsPositionInclusive:()=>sl,textRangeContainsTextSpan:()=>Og,textRangeIntersectsWithTextSpan:()=>e3,textSpanContainsPosition:()=>ho,textSpanContainsTextRange:()=>ed,textSpanContainsTextSpan:()=>Nd,textSpanEnd:()=>Rs,textSpanIntersection:()=>IA,textSpanIntersectsWith:()=>q2,textSpanIntersectsWithPosition:()=>zR,textSpanIntersectsWithTextSpan:()=>Tb,textSpanIsEmpty:()=>ja,textSpanOverlap:()=>o1,textSpanOverlapsWith:()=>Nh,textSpansEqual:()=>Xie,textToKeywordObj:()=>ev,timestamp:()=>Fg,toArray:()=>cc,toBuilderFileEmit:()=>W3t,toBuilderStateFileInfoForMultiEmit:()=>P3t,toEditorSettings:()=>N1e,toFileNameLowerCase:()=>Om,toPath:()=>Ou,toProgramEmitPending:()=>O3t,toSorted:()=>bo,tokenIsIdentifierOrKeyword:()=>Id,tokenIsIdentifierOrKeywordOrGreaterThan:()=>fB,tokenToString:()=>Vi,trace:()=>eu,tracing:()=>ki,tracingEnabled:()=>Kl,transferSourceFileChildren:()=>QPt,transform:()=>fon,transformClassFields:()=>WOt,transformDeclarations:()=>Jet,transformECMAScriptModule:()=>Xet,transformES2015:()=>e3t,transformES2016:()=>$Ot,transformES2017:()=>YOt,transformES2018:()=>QOt,transformES2019:()=>XOt,transformES2020:()=>JOt,transformES2021:()=>UOt,transformESDecorators:()=>HOt,transformESNext:()=>KOt,transformGenerators:()=>t3t,transformImpliedNodeFormatDependentModule:()=>n3t,transformJsx:()=>qOt,transformLegacyDecorators:()=>MOt,transformModule:()=>Qet,transformNamedEvaluation:()=>m1,transformNodes:()=>WEe,transformSystemModule:()=>r3t,transformTypeScript:()=>POt,transpile:()=>vin,transpileDeclaration:()=>Ein,transpileModule:()=>zMt,transpileOptionValueCompilerOptions:()=>EWt,tryAddToSet:()=>Ar,tryAndIgnoreErrors:()=>aPe,tryCast:()=>Gs,tryDirectoryExists:()=>oPe,tryExtractTSExtension:()=>O7,tryFileExists:()=>Kie,tryGetClassExtendingExpressionWithTypeArguments:()=>$ye,tryGetClassImplementingOrExtendingExpressionWithTypeArguments:()=>ebe,tryGetDirectories:()=>sPe,tryGetExtensionFromPath:()=>QT,tryGetImportFromModuleSpecifier:()=>B7,tryGetJSDocSatisfiesTypeNode:()=>QAe,tryGetModuleNameFromFile:()=>gEe,tryGetModuleSpecifierFromDeclaration:()=>ZY,tryGetNativePerformanceHooks:()=>YS,tryGetPropertyAccessOrIdentifierToString:()=>TP,tryGetPropertyNameOfBindingOrAssignmentElement:()=>c9e,tryGetSourceMappingURL:()=>EOt,tryGetTextOfPropertyName:()=>xY,tryParseJson:()=>nU,tryParsePattern:()=>UY,tryParsePatterns:()=>$7,tryParseRawSourceMap:()=>SOt,tryReadDirectory:()=>nnt,tryReadFile:()=>fde,tryRemoveDirectoryPrefix:()=>NAe,tryRemoveExtension:()=>hLe,tryRemovePrefix:()=>HS,tryRemoveSuffix:()=>Bo,tscBuildOption:()=>SU,typeAcquisitionDeclarations:()=>f9e,typeAliasNamePart:()=>dMt,typeDirectiveIsEqualTo:()=>hge,typeKeywords:()=>Zrt,typeParameterNamePart:()=>pMt,typeToDisplayParts:()=>I1e,unchangedPollThresholds:()=>q_,unchangedTextChangeRange:()=>Eo,unescapeLeadingUnderscores:()=>Bc,unmangleScopedPackageName:()=>NEe,unorderedRemoveItem:()=>ef,unprefixedNodeCoreModules:()=>qne,unreachableCodeIsError:()=>nLe,unsetNodeChildren:()=>E$e,unusedLabelIsError:()=>iLe,unwrapInnermostStatementOfLabel:()=>Iye,unwrapParenthesizedExpression:()=>UAe,updateErrorForNoInputFiles:()=>v9e,updateLanguageServiceSourceFile:()=>qnt,updateMissingFilePathsWatch:()=>ntt,updateResolutionField:()=>Bie,updateSharedExtendedConfigFileWatcher:()=>q9e,updateSourceFile:()=>L$e,updateWatchingWildcardDirectories:()=>HEe,usingSingleLineStringWriter:()=>dP,utf16EncodeAsString:()=>jR,validateLocaleAndSetLanguage:()=>yx,version:()=>C,versionMajorMinor:()=>I,visitArray:()=>Ede,visitCommaListElements:()=>xEe,visitEachChild:()=>_s,visitFunctionBody:()=>uS,visitIterationBody:()=>Py,visitLexicalEnvironment:()=>Net,visitNode:()=>Mr,visitNodes:()=>Ws,visitParameterList:()=>vI,walkUpBindingElementsAndPatterns:()=>ai,walkUpOuterExpressions:()=>qPt,walkUpParenthesizedExpressions:()=>gv,walkUpParenthesizedTypes:()=>pne,walkUpParenthesizedTypesAndGetParentAndChild:()=>wye,whitespaceOrMapCommentRegExp:()=>ket,writeCommentRange:()=>rU,writeFile:()=>lAe,writeFileEnsuringDirectories:()=>Qye,zipWith:()=>ce}),e.exports=A(f);var I="5.9",C="5.9.3",b=(s=>(s[s.LessThan=-1]="LessThan",s[s.EqualTo=0]="EqualTo",s[s.GreaterThan=1]="GreaterThan",s))(b||{}),E=[],N=new Map;function B(s){return s!==void 0?s.length:0}function F(s,c){if(s!==void 0)for(let g=0;g=0;g--){let d=c(s[g],g);if(d)return d}}function X(s,c){if(s!==void 0)for(let g=0;g=0;d--){let h=s[d];if(c(h,d))return h}}function Se(s,c,g){if(s===void 0)return-1;for(let d=g??0;d=0;d--)if(c(s[d],d))return d;return-1}function k(s,c,g=yg){if(s!==void 0){for(let d=0;d{let[_,S]=c(h,d);g.set(_,S)}),g}function jt(s,c){if(s!==void 0)if(c!==void 0){for(let g=0;g0;return!1}function Fn(s,c,g){let d;for(let h=0;hs[S])}function xi(s,c){let g=[];for(let d=0;d0&&d(c,s[S-1]))return!1;if(S0&&pe.assertGreaterThanOrEqual(g(c[_],c[_-1]),0);t:for(let S=h;hS&&pe.assertGreaterThanOrEqual(g(s[h],s[h-1]),0),g(c[_],s[h])){case-1:d.push(c[_]);continue e;case 0:continue e;case 1:continue t}}return d}function Ft(s,c){return c===void 0?s:s===void 0?[c]:(s.push(c),s)}function zr(s,c){return s===void 0?c:c===void 0?s:Ki(s)?Ki(c)?Nn(s,c):Ft(s,c):Ki(c)?Ft(c,s):[s,c]}function Rn(s,c){return c<0?s.length+c:c}function Or(s,c,g,d){if(c===void 0||c.length===0)return s;if(s===void 0)return c.slice(g,d);g=g===void 0?0:Rn(c,g),d=d===void 0?c.length:Rn(c,d);for(let h=g;hg(s[d],s[h])||Zt(d,h))}function bo(s,c){return s.length===0?E:s.slice().sort(c)}function*Qa(s){for(let c=s.length-1;c>=0;c--)yield s[c]}function gc(s,c,g,d){for(;gs?.at(c):(s,c)=>{if(s!==void 0&&(c=Rn(s,c),c>1),T=g(s[R],R);switch(d(T,c)){case-1:_=R+1;break;case 0:return R;case 1:S=R-1;break}}return~_}function Ul(s,c,g,d,h){if(s&&s.length>0){let _=s.length;if(_>0){let S=d===void 0||d<0?0:d,R=h===void 0||S+h>_-1?_-1:S+h,T;for(arguments.length<=2?(T=s[S],S++):T=g;S<=R;)T=c(T,s[S],S),S++;return T}}return g}var Xu=Object.prototype.hasOwnProperty;function Da(s,c){return Xu.call(s,c)}function pu(s,c){return Xu.call(s,c)?s[c]:void 0}function _g(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(g);return c}function mI(s){let c=[];do{let g=Object.getOwnPropertyNames(s);for(let d of g)Qi(c,d)}while(s=Object.getPrototypeOf(s));return c}function Qh(s){let c=[];for(let g in s)Xu.call(s,g)&&c.push(s[g]);return c}function Ri(s,c){let g=new Array(s);for(let d=0;d100&&g>c.length>>1){let R=c.length-g;c.copyWithin(0,g),c.length=R,g=0}return S}return{enqueue:h,dequeue:_,isEmpty:d}}function oo(s,c){let g=new Map,d=0;function*h(){for(let S of g.values())Ki(S)?yield*S:yield S}let _={has(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);return Ki(T)?k(T,S,c):c(T,S)},add(S){let R=s(S);if(g.has(R)){let T=g.get(R);if(Ki(T))k(T,S,c)||(T.push(S),d++);else{let W=T;c(W,S)||(g.set(R,[W,S]),d++)}}else g.set(R,S),d++;return this},delete(S){let R=s(S);if(!g.has(R))return!1;let T=g.get(R);if(Ki(T)){for(let W=0;Wh(),[Symbol.toStringTag]:g[Symbol.toStringTag]};return _}function Ki(s){return Array.isArray(s)}function cc(s){return Ki(s)?s:[s]}function Xs(s){return typeof s=="string"}function ws(s){return typeof s=="number"}function Gs(s,c){return s!==void 0&&c(s)?s:void 0}function Ma(s,c){return s!==void 0&&c(s)?s:pe.fail(`Invalid cast. The supplied value ${s} did not pass the test '${pe.getFunctionName(c)}'.`)}function Dc(s){}function As(){return!1}function Tf(){return!0}function cm(){}function Fl(s){return s}function rc(s){return s.toLowerCase()}var sd=/[^\u0130\u0131\u00DFa-z0-9\\/:\-_. ]+/g;function Om(s){return sd.test(s)?s.replace(sd,rc):s}function il(){throw new Error("Not implemented")}function FA(s){let c;return()=>(s&&(c=s(),s=void 0),c)}function ZA(s){let c=new Map;return g=>{let d=`${typeof g}:${g}`,h=c.get(d);return h===void 0&&!c.has(d)&&(h=s(g),c.set(d,h)),h}}var El=(s=>(s[s.None=0]="None",s[s.Normal=1]="Normal",s[s.Aggressive=2]="Aggressive",s[s.VeryAggressive=3]="VeryAggressive",s))(El||{});function yg(s,c){return s===c}function Mp(s,c){return s===c||s!==void 0&&c!==void 0&&s.toUpperCase()===c.toUpperCase()}function MA(s,c){return yg(s,c)}function Er(s,c){return s===c?0:s===void 0?-1:c===void 0?1:sc(g,d)===-1?g:d)}function Fs(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toUpperCase(),c=c.toUpperCase(),sc?1:0)}function Wa(s,c){return s===c?0:s===void 0?-1:c===void 0?1:(s=s.toLowerCase(),c=c.toLowerCase(),sc?1:0)}function Ca(s,c){return Er(s,c)}function ld(s){return s?Fs:Ca}var Rp=(()=>{return c;function s(g,d,h){if(g===d)return 0;if(g===void 0)return-1;if(d===void 0)return 1;let _=h(g,d);return _<0?-1:_>0?1:0}function c(g){let d=new Intl.Collator(g,{usage:"sort",sensitivity:"variant",numeric:!0}).compare;return(h,_)=>s(h,_,d)}})(),np,HA;function df(){return HA}function Zs(s){HA!==s&&(HA=s,np=void 0)}function so(s,c){return np??(np=Rp(HA)),np(s,c)}function Ea(s,c,g,d){return s===c?0:s===void 0?-1:c===void 0?1:d(s[g],c[g])}function Ml(s,c){return Zt(s?1:0,c?1:0)}function Dr(s,c,g){let d=Math.max(2,Math.floor(s.length*.34)),h=Math.floor(s.length*.4)+1,_;for(let S of c){let R=g(S);if(R!==void 0&&Math.abs(R.length-s.length)<=d){if(R===s||R.length<3&&R.toLowerCase()!==s.toLowerCase())continue;let T=Wn(s,R,h-.1);if(T===void 0)continue;pe.assert(Tg?R-g:1),V=Math.floor(c.length>g+R?g+R:c.length);h[0]=R;let M=R;for(let re=1;reg)return;let ee=d;d=h,h=ee}let S=d[c.length];return S>g?void 0:S}function di(s,c,g){let d=s.length-c.length;return d>=0&&(g?Mp(s.slice(d),c):s.indexOf(c,d)===d)}function aa(s,c){return di(s,c)?s.slice(0,s.length-c.length):s}function Bo(s,c){return di(s,c)?s.slice(0,s.length-c.length):void 0}function us(s){let c=s.length;for(let g=c-1;g>0;g--){let d=s.charCodeAt(g);if(d>=48&&d<=57)do--g,d=s.charCodeAt(g);while(g>0&&d>=48&&d<=57);else if(g>4&&(d===110||d===78)){if(--g,d=s.charCodeAt(g),d!==105&&d!==73||(--g,d=s.charCodeAt(g),d!==109&&d!==77))break;--g,d=s.charCodeAt(g)}else break;if(d!==45&&d!==46)break;c=g}return c===s.length?s:s.slice(0,c)}function Ql(s,c){for(let g=0;gg===c)}function ip(s,c){for(let g=0;gh&&jd(R,g)&&(h=R.prefix.length,d=S)}return d}function Ac(s,c,g){return g?Mp(s.slice(0,c.length),c):s.lastIndexOf(c,0)===0}function Nm(s,c){return Ac(s,c)?s.substr(c.length):s}function HS(s,c,g=Fl){return Ac(g(s),g(c))?s.substring(c.length):void 0}function jd({prefix:s,suffix:c},g){return g.length>=s.length+c.length&&Ac(g,s)&&di(g,c)}function dh(s,c){return g=>s(g)&&c(g)}function Hp(...s){return(...c)=>{let g;for(let d of s)if(g=d(...c),g)return g;return g}}function uC(s){return(...c)=>!s(...c)}function nE(s){}function J_(s){return s===void 0?void 0:[s]}function q0(s,c,g,d,h,_){_??(_=Dc);let S=0,R=0,T=s.length,W=c.length,V=!1;for(;S(s[s.Off=0]="Off",s[s.Error=1]="Error",s[s.Warning=2]="Warning",s[s.Info=3]="Info",s[s.Verbose=4]="Verbose",s))(fb||{}),pe;(s=>{let c=0;s.currentLogLevel=2,s.isDebugging=!1;function g(yr){return s.currentLogLevel<=yr}s.shouldLog=g;function d(yr,hn){s.loggingHost&&g(yr)&&s.loggingHost.log(yr,hn)}function h(yr){d(3,yr)}s.log=h,(yr=>{function hn(Oa){d(1,Oa)}yr.error=hn;function Oi(Oa){d(2,Oa)}yr.warn=Oi;function lo(Oa){d(3,Oa)}yr.log=lo;function pa(Oa){d(4,Oa)}yr.trace=pa})(h=s.log||(s.log={}));let _={};function S(){return c}s.getAssertionLevel=S;function R(yr){let hn=c;if(c=yr,yr>hn)for(let Oi of _g(_)){let lo=_[Oi];lo!==void 0&&s[Oi]!==lo.assertion&&yr>=lo.level&&(s[Oi]=lo,_[Oi]=void 0)}}s.setAssertionLevel=R;function T(yr){return c>=yr}s.shouldAssert=T;function W(yr,hn){return T(yr)?!0:(_[hn]={level:yr,assertion:s[hn]},s[hn]=Dc,!1)}function V(yr,hn){debugger;let Oi=new Error(yr?`Debug Failure. ${yr}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Oi,hn||V),Oi}s.fail=V;function M(yr,hn,Oi){return V(`${hn||"Unexpected node."}\r Node ${Pt(yr.kind)} was unexpected.`,Oi||M)}s.failBadSyntaxKind=M;function ee(yr,hn,Oi,lo){yr||(hn=hn?`False expression: ${hn}`:"False expression.",Oi&&(hn+=`\r Verbose Debug Information: `+(typeof Oi=="string"?Oi:Oi())),V(hn,lo||ee))}s.assert=ee;function re(yr,hn,Oi,lo,pa){if(yr!==hn){let Oa=Oi?lo?`${Oi} ${lo}`:Oi:"";V(`Expected ${yr} === ${hn}. ${Oa}`,pa||re)}}s.assertEqual=re;function ge(yr,hn,Oi,lo){yr>=hn&&V(`Expected ${yr} < ${hn}. ${Oi||""}`,lo||ge)}s.assertLessThan=ge;function Ie(yr,hn,Oi){yr>hn&&V(`Expected ${yr} <= ${hn}`,Oi||Ie)}s.assertLessThanOrEqual=Ie;function _e(yr,hn,Oi){yr= ${hn}`,Oi||_e)}s.assertGreaterThanOrEqual=_e;function Ee(yr,hn,Oi){yr==null&&V(hn,Oi||Ee)}s.assertIsDefined=Ee;function Ne(yr,hn,Oi){return Ee(yr,hn,Oi||Ne),yr}s.checkDefined=Ne;function Te(yr,hn,Oi){for(let lo of yr)Ee(lo,hn,Oi||Te)}s.assertEachIsDefined=Te;function Ze(yr,hn,Oi){return Te(yr,hn,Oi||Ze),yr}s.checkEachDefined=Ze;function We(yr,hn="Illegal value:",Oi){let lo=typeof yr=="object"&&Da(yr,"kind")&&Da(yr,"pos")?"SyntaxKind: "+Pt(yr.kind):JSON.stringify(yr);return V(`${hn} ${lo}`,Oi||We)}s.assertNever=We;function Ue(yr,hn,Oi,lo){W(1,"assertEachNode")&&ee(hn===void 0||ue(yr,hn),Oi||"Unexpected node.",()=>`Node array did not pass test '${ht(hn)}'.`,lo||Ue)}s.assertEachNode=Ue;function $e(yr,hn,Oi,lo){W(1,"assertNode")&&ee(yr!==void 0&&(hn===void 0||hn(yr)),Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} did not pass test '${ht(hn)}'.`,lo||$e)}s.assertNode=$e;function Ye(yr,hn,Oi,lo){W(1,"assertNotNode")&&ee(yr===void 0||hn===void 0||!hn(yr),Oi||"Unexpected node.",()=>`Node ${Pt(yr.kind)} should not have passed test '${ht(hn)}'.`,lo||Ye)}s.assertNotNode=Ye;function Tt(yr,hn,Oi,lo){W(1,"assertOptionalNode")&&ee(hn===void 0||yr===void 0||hn(yr),Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} did not pass test '${ht(hn)}'.`,lo||Tt)}s.assertOptionalNode=Tt;function ot(yr,hn,Oi,lo){W(1,"assertOptionalToken")&&ee(hn===void 0||yr===void 0||yr.kind===hn,Oi||"Unexpected node.",()=>`Node ${Pt(yr?.kind)} was not a '${Pt(hn)}' token.`,lo||ot)}s.assertOptionalToken=ot;function Qe(yr,hn,Oi){W(1,"assertMissingNode")&&ee(yr===void 0,hn||"Unexpected node.",()=>`Node ${Pt(yr.kind)} was unexpected'.`,Oi||Qe)}s.assertMissingNode=Qe;function mt(yr){}s.type=mt;function ht(yr){if(typeof yr!="function")return"";if(Da(yr,"name"))return yr.name;{let hn=Function.prototype.toString.call(yr),Oi=/^function\s+([\w$]+)\s*\(/.exec(hn);return Oi?Oi[1]:""}}s.getFunctionName=ht;function _t(yr){return`{ name: ${Bc(yr.escapedName)}; flags: ${dt(yr.flags)}; declarations: ${At(yr.declarations,hn=>Pt(hn.kind))} }`}s.formatSymbol=_t;function Rt(yr=0,hn,Oi){let lo=Ke(hn);if(yr===0)return lo.length>0&&lo[0][0]===0?lo[0][1]:"0";if(Oi){let pa=[],Oa=yr;for(let[tl,Qu]of lo){if(tl>yr)break;tl!==0&&tl&yr&&(pa.push(Qu),Oa&=~tl)}if(Oa===0)return pa.join("|")}else for(let[pa,Oa]of lo)if(pa===yr)return Oa;return yr.toString()}s.formatEnum=Rt;let Lt=new Map;function Ke(yr){let hn=Lt.get(yr);if(hn)return hn;let Oi=[];for(let pa in yr){let Oa=yr[pa];typeof Oa=="number"&&Oi.push([Oa,pa])}let lo=bo(Oi,(pa,Oa)=>Zt(pa[0],Oa[0]));return Lt.set(yr,lo),lo}function Pt(yr){return Rt(yr,Ld,!1)}s.formatSyntaxKind=Pt;function _r(yr){return Rt(yr,Iw,!1)}s.formatSnippetKind=_r;function Gt(yr){return Rt(yr,X2,!1)}s.formatScriptKind=Gt;function nt(yr){return Rt(yr,AC,!0)}s.formatNodeFlags=nt;function Dt(yr){return Rt(yr,wy,!0)}s.formatNodeCheckFlags=Dt;function tr(yr){return Rt(yr,JE,!0)}s.formatModifierFlags=tr;function ur(yr){return Rt(yr,up,!0)}s.formatTransformFlags=ur;function Gr(yr){return Rt(yr,cB,!0)}s.formatEmitFlags=Gr;function dt(yr){return Rt(yr,TT,!0)}s.formatSymbolFlags=dt;function pr(yr){return Rt(yr,jE,!0)}s.formatTypeFlags=pr;function st(yr){return Rt(yr,$A,!0)}s.formatSignatureFlags=st;function ir(yr){return Rt(yr,j_,!0)}s.formatObjectFlags=ir;function zt(yr){return Rt(yr,Yp,!0)}s.formatFlowFlags=zt;function Ht(yr){return Rt(yr,vy,!0)}s.formatRelationComparisonResult=Ht;function Br(yr){return Rt(yr,vet,!0)}s.formatCheckMode=Br;function mn(yr){return Rt(yr,Bet,!0)}s.formatSignatureCheckMode=mn;function jn(yr){return Rt(yr,Eet,!0)}s.formatTypeFacts=jn;let Zi=!1,Ns;function An(yr){"__debugFlowFlags"in yr||Object.defineProperties(yr,{__tsDebuggerDisplay:{value(){let hn=this.flags&2?"FlowStart":this.flags&4?"FlowBranchLabel":this.flags&8?"FlowLoopLabel":this.flags&16?"FlowAssignment":this.flags&32?"FlowTrueCondition":this.flags&64?"FlowFalseCondition":this.flags&128?"FlowSwitchClause":this.flags&256?"FlowArrayMutation":this.flags&512?"FlowCall":this.flags&1024?"FlowReduceLabel":this.flags&1?"FlowUnreachable":"UnknownFlow",Oi=this.flags&-2048;return`${hn}${Oi?` (${zt(Oi)})`:""}`}},__debugFlowFlags:{get(){return Rt(this.flags,Yp,!0)}},__debugToString:{value(){return hc(this)}}})}function si(yr){return Zi&&(typeof Object.setPrototypeOf=="function"?(Ns||(Ns=Object.create(Object.prototype),An(Ns)),Object.setPrototypeOf(yr,Ns)):An(yr)),yr}s.attachFlowNodeDebugInfo=si;let ks;function Ic(yr){"__tsDebuggerDisplay"in yr||Object.defineProperties(yr,{__tsDebuggerDisplay:{value(hn){return hn=String(hn).replace(/(?:,[\s\w]+:[^,]+)+\]$/,"]"),`NodeArray ${hn}`}}})}function su(yr){Zi&&(typeof Object.setPrototypeOf=="function"?(ks||(ks=Object.create(Array.prototype),Ic(ks)),Object.setPrototypeOf(yr,ks)):Ic(yr))}s.attachNodeArrayDebugInfo=su;function Zn(){if(Zi)return;let yr=new WeakMap,hn=new WeakMap;Object.defineProperties(ZC.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){let lo=this.flags&33554432?"TransientSymbol":"Symbol",pa=this.flags&-33554433;return`${lo} '${nf(this)}'${pa?` (${dt(pa)})`:""}`}},__debugFlags:{get(){return dt(this.flags)}}}),Object.defineProperties(ZC.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){let lo=this.flags&67359327?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:""}`:this.flags&98304?"NullableType":this.flags&384?`LiteralType ${JSON.stringify(this.value)}`:this.flags&2048?`LiteralType ${this.value.negative?"-":""}${this.value.base10Value}n`:this.flags&8192?"UniqueESSymbolType":this.flags&32?"EnumType":this.flags&1048576?"UnionType":this.flags&2097152?"IntersectionType":this.flags&4194304?"IndexType":this.flags&8388608?"IndexedAccessType":this.flags&16777216?"ConditionalType":this.flags&33554432?"SubstitutionType":this.flags&262144?"TypeParameter":this.flags&524288?this.objectFlags&3?"InterfaceType":this.objectFlags&4?"TypeReference":this.objectFlags&8?"TupleType":this.objectFlags&16?"AnonymousType":this.objectFlags&32?"MappedType":this.objectFlags&1024?"ReverseMappedType":this.objectFlags&256?"EvolvingArrayType":"ObjectType":"Type",pa=this.flags&524288?this.objectFlags&-1344:0;return`${lo}${this.symbol?` '${nf(this.symbol)}'`:""}${pa?` (${ir(pa)})`:""}`}},__debugFlags:{get(){return pr(this.flags)}},__debugObjectFlags:{get(){return this.flags&524288?ir(this.objectFlags):""}},__debugTypeToString:{value(){let lo=yr.get(this);return lo===void 0&&(lo=this.checker.typeToString(this),yr.set(this,lo)),lo}}}),Object.defineProperties(ZC.getSignatureConstructor().prototype,{__debugFlags:{get(){return st(this.flags)}},__debugSignatureToString:{value(){var lo;return(lo=this.checker)==null?void 0:lo.signatureToString(this)}}});let Oi=[ZC.getNodeConstructor(),ZC.getIdentifierConstructor(),ZC.getTokenConstructor(),ZC.getSourceFileConstructor()];for(let lo of Oi)Da(lo.prototype,"__debugKind")||Object.defineProperties(lo.prototype,{__tsDebuggerDisplay:{value(){return`${kp(this)?"GeneratedIdentifier":Ir(this)?`Identifier '${Vo(this)}'`:p(this)?`PrivateIdentifier '${Vo(this)}'`:Zg(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+"...")}`:mC(this)?`NumericLiteral ${this.text}`:eQ(this)?`BigIntLiteral ${this.text}n`:Ds(this)?"TypeParameterDeclaration":Si(this)?"ParameterDeclaration":Tc(this)?"ConstructorDeclaration":Bg(this)?"GetAccessorDeclaration":Dg(this)?"SetAccessorDeclaration":wg(this)?"CallSignatureDeclaration":em(this)?"ConstructSignatureDeclaration":w0(this)?"IndexSignatureDeclaration":bE(this)?"TypePredicateNode":nh(this)?"TypeReferenceNode":x_(this)?"FunctionTypeNode":$D(this)?"ConstructorTypeNode":Fw(this)?"TypeQueryNode":mh(this)?"TypeLiteralNode":kF(this)?"ArrayTypeNode":Zw(this)?"TupleTypeNode":jL(this)?"OptionalTypeNode":zL(this)?"RestTypeNode":aS(this)?"UnionTypeNode":mf(this)?"IntersectionTypeNode":d2(this)?"ConditionalTypeNode":jT(this)?"InferTypeNode":fv(this)?"ParenthesizedTypeNode":Fx(this)?"ThisTypeNode":xB(this)?"TypeOperatorNode":Iv(this)?"IndexedAccessTypeNode":GB(this)?"MappedTypeNode":EE(this)?"LiteralTypeNode":KT(this)?"NamedTupleMember":Um(this)?"ImportTypeNode":Pt(this.kind)}${this.flags?` (${nt(this.flags)})`:""}`}},__debugKind:{get(){return Pt(this.kind)}},__debugNodeFlags:{get(){return nt(this.flags)}},__debugModifierFlags:{get(){return tr(zye(this))}},__debugTransformFlags:{get(){return ur(this.transformFlags)}},__debugIsParseTreeNode:{get(){return SL(this)}},__debugEmitFlags:{get(){return Gr(tA(this))}},__debugGetText:{value(pa){if(sp(this))return"";let Oa=hn.get(this);if(Oa===void 0){let tl=$l(this),Qu=tl&&ms(tl);Oa=Qu?mF(Qu,tl,pa):"",hn.set(this,Oa)}return Oa}}});Zi=!0}s.enableDebugInfo=Zn;function ya(yr){let hn=yr&7,Oi=hn===0?"in out":hn===3?"[bivariant]":hn===2?"in":hn===1?"out":hn===4?"[independent]":"";return yr&8?Oi+=" (unmeasurable)":yr&16&&(Oi+=" (unreliable)"),Oi}s.formatVariance=ya;class Gl{__debugToString(){var hn;switch(this.kind){case 3:return((hn=this.debugInfo)==null?void 0:hn.call(this))||"(function mapper)";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return ce(this.sources,this.targets||At(this.sources,()=>"any"),(Oi,lo)=>`${Oi.__debugTypeToString()} -> ${typeof lo=="string"?lo:lo.__debugTypeToString()}`).join(", ");case 2:return ce(this.sources,this.targets,(Oi,lo)=>`${Oi.__debugTypeToString()} -> ${lo().__debugTypeToString()}`).join(", ");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split(` `).join(` @@ -1070,9 +1070,9 @@ Project '${R.projectName}' (${fpe[R.projectKind]}) ${_} `,_++};this.projectService.externalProjects.forEach(S),this.projectService.configuredProjects.forEach(S),this.projectService.inferredProjects.forEach(S)}}this.logger.msg(h,"Err")}send(c){if(c.type==="event"&&!this.canUseEvents){this.logger.hasLevel(3)&&this.logger.info(`Session does not support events: ignored event: ${j3(c)}`);return}this.writeMessage(c)}writeMessage(c){let g=oJt(c,this.logger,this.byteLength,this.host.newLine);this.host.write(g)}event(c,g){this.send(aJt(g,c))}doOutput(c,g,d,h,_,S){let R={seq:0,type:"response",command:g,request_seq:d,success:h,performanceData:_&&dfn(_)};if(h){let T;if(Ki(c))R.body=c,T=c.metadata,delete c.metadata;else if(typeof c=="object")if(c.metadata){let{metadata:W,...V}=c;R.body=V,T=W}else R.body=c;else R.body=c;T&&(R.metadata=T)}else pe.assert(c===void 0);S&&(R.message=S),this.send(R)}semanticCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"semanticCheck",{file:c,configFilePath:g.canonicalConfigFilePath});let S=rfn(g,c)?zm:g.getLanguageService().getSemanticDiagnostics(c).filter(R=>!!R.file);this.sendDiagnosticsEvent(c,g,S,"semanticDiag",_),(h=ki)==null||h.pop()}syntacticCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"syntacticCheck",{file:c,configFilePath:g.canonicalConfigFilePath}),this.sendDiagnosticsEvent(c,g,g.getLanguageService().getSyntacticDiagnostics(c),"syntaxDiag",_),(h=ki)==null||h.pop()}suggestionCheck(c,g){var d,h;let _=Fg();(d=ki)==null||d.push(ki.Phase.Session,"suggestionCheck",{file:c,configFilePath:g.canonicalConfigFilePath}),this.sendDiagnosticsEvent(c,g,g.getLanguageService().getSuggestionDiagnostics(c),"suggestionDiag",_),(h=ki)==null||h.pop()}regionSemanticCheck(c,g,d){var h,_,S;let R=Fg();(h=ki)==null||h.push(ki.Phase.Session,"regionSemanticCheck",{file:c,configFilePath:g.canonicalConfigFilePath});let T;if(!this.shouldDoRegionCheck(c)||!(T=g.getLanguageService().getRegionSemanticDiagnostics(c,d))){(_=ki)==null||_.pop();return}this.sendDiagnosticsEvent(c,g,T.diagnostics,"regionSemanticDiag",R,T.spans),(S=ki)==null||S.pop()}shouldDoRegionCheck(c){var g;let d=(g=this.projectService.getScriptInfoForNormalizedPath(c))==null?void 0:g.textStorage.getLineInfo().getLineCount();return!!(d&&d>=this.regionDiagLineCountThreshold)}sendDiagnosticsEvent(c,g,d,h,_,S){try{let R=pe.checkDefined(g.getScriptInfo(c)),T=Fg()-_,W={file:c,diagnostics:d.map(V=>nfn(c,g,V)),spans:S?.map(V=>kN(V,R))};this.event(W,h),this.addDiagnosticsPerformanceData(c,h,T)}catch(R){this.logError(R,h)}}updateErrorCheck(c,g,d,h=!0){if(g.length===0)return;pe.assert(!this.suppressDiagnosticEvents);let _=this.changeSeq,S=Math.min(d,200),R=0,T=()=>{if(R++,g.length>R)return c.delay("checkOne",S,V)},W=(M,ee)=>{if(this.semanticCheck(M,ee),this.changeSeq===_){if(this.getPreferences(M).disableSuggestions)return T();c.immediate("suggestionCheck",()=>{this.suggestionCheck(M,ee),T()})}},V=()=>{if(this.changeSeq!==_)return;let M,ee=g[R];if(Xs(ee)?ee=this.toPendingErrorCheck(ee):"ranges"in ee&&(M=ee.ranges,ee=this.toPendingErrorCheck(ee.file)),!ee)return T();let{fileName:re,project:ge}=ee;if(_v(ge),!!ge.containsFile(re,h)&&(this.syntacticCheck(re,ge),this.changeSeq===_)){if(ge.projectService.serverMode!==0)return T();if(M)return c.immediate("regionSemanticCheck",()=>{let Ie=this.projectService.getScriptInfoForNormalizedPath(re);Ie&&this.regionSemanticCheck(re,ge,M.map(_e=>this.getRange({file:re,..._e},Ie))),this.changeSeq===_&&c.immediate("semanticCheck",()=>W(re,ge))});c.immediate("semanticCheck",()=>W(re,ge))}};g.length>R&&this.changeSeq===_&&c.delay("checkOne",d,V)}cleanProjects(c,g){if(g){this.logger.info(`cleaning ${c}`);for(let d of g)d.getLanguageService(!1).cleanupSemanticCache(),d.cleanupProgram()}}cleanup(){this.cleanProjects("inferred projects",this.projectService.inferredProjects),this.cleanProjects("configured projects",Do(this.projectService.configuredProjects.values())),this.cleanProjects("external projects",this.projectService.externalProjects),this.host.gc&&(this.logger.info("host.gc()"),this.host.gc())}getEncodedSyntacticClassifications(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c);return d.getEncodedSyntacticClassifications(g,c)}getEncodedSemanticClassifications(c){let{file:g,project:d}=this.getFileAndProject(c),h=c.format==="2020"?"2020":"original";return d.getLanguageService().getEncodedSemanticClassifications(g,c,h)}getProject(c){return c===void 0?void 0:this.projectService.findProject(c)}getConfigFileAndProject(c){let g=this.getProject(c.projectFileName),d=op(c.file);return{configFile:g&&g.hasConfigFile(d)?d:void 0,project:g}}getConfigFileDiagnostics(c,g,d){let h=g.getAllProjectErrors(),_=g.getLanguageService().getCompilerOptionsDiagnostics(),S=Me(Nn(h,_),R=>!!R.file&&R.file.fileName===c);return d?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(S):At(S,R=>o2e(R,!1))}convertToDiagnosticsWithLinePositionFromDiagnosticFile(c){return c.map(g=>({message:wN(g.messageText,this.host.newLine),start:g.start,length:g.length,category:_b(g),code:g.code,source:g.source,startLocation:g.file&&cse(Ra(g.file,g.start)),endLocation:g.file&&cse(Ra(g.file,g.start+g.length)),reportsUnnecessary:g.reportsUnnecessary,reportsDeprecated:g.reportsDeprecated,relatedInformation:At(g.relatedInformation,kst)}))}getCompilerOptionsDiagnostics(c){let g=this.getProject(c.projectFileName);return this.convertToDiagnosticsWithLinePosition(Me(g.getLanguageService().getCompilerOptionsDiagnostics(),d=>!d.file),void 0)}convertToDiagnosticsWithLinePosition(c,g){return c.map(d=>({message:wN(d.messageText,this.host.newLine),start:d.start,length:d.length,category:_b(d),code:d.code,source:d.source,startLocation:g&&g.positionToLineOffset(d.start),endLocation:g&&g.positionToLineOffset(d.start+d.length),reportsUnnecessary:d.reportsUnnecessary,reportsDeprecated:d.reportsDeprecated,relatedInformation:At(d.relatedInformation,kst)}))}getDiagnosticsWorker(c,g,d,h){let{project:_,file:S}=this.getFileAndProject(c);if(g&&rfn(_,S))return zm;let R=_.getScriptInfoForNormalizedPath(S),T=d(_,S);return h?this.convertToDiagnosticsWithLinePosition(T,R):T.map(W=>nfn(S,_,W))}getDefinition(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=this.mapDefinitionInfoLocations(h.getLanguageService().getDefinitionAtPosition(d,_)||zm,h);return g?this.mapDefinitionInfo(S,h):S.map(JEt.mapToOriginalLocation)}mapDefinitionInfoLocations(c,g){return c.map(d=>{let h=ufn(d,g);return h?{...h,containerKind:d.containerKind,containerName:d.containerName,kind:d.kind,name:d.name,failedAliasResolution:d.failedAliasResolution,...d.unverified&&{unverified:d.unverified}}:d})}getDefinitionAndBoundSpan(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=pe.checkDefined(h.getScriptInfo(d)),R=h.getLanguageService().getDefinitionAndBoundSpan(d,_);if(!R||!R.definitions)return{definitions:zm,textSpan:void 0};let T=this.mapDefinitionInfoLocations(R.definitions,h),{textSpan:W}=R;return g?{definitions:this.mapDefinitionInfo(T,h),textSpan:kN(W,S)}:{definitions:T.map(JEt.mapToOriginalLocation),textSpan:W}}findSourceDefinition(c){var g;let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=h.getLanguageService().getDefinitionAtPosition(d,_),R=this.mapDefinitionInfoLocations(S||zm,h).slice();if(this.projectService.serverMode===0&&(!jt(R,re=>op(re.fileName)!==d&&!re.isAmbient)||jt(R,re=>!!re.failedAliasResolution))){let re=oo(Ee=>Ee.textSpan.start,Xrt(this.host.useCaseSensitiveFileNames));R?.forEach(Ee=>re.add(Ee));let ge=h.getNoDtsResolutionProject(d),Ie=ge.getLanguageService(),_e=(g=Ie.getDefinitionAtPosition(d,_,!0,!1))==null?void 0:g.filter(Ee=>op(Ee.fileName)!==d);if(jt(_e))for(let Ee of _e){if(Ee.unverified){let Ne=M(Ee,h.getLanguageService().getProgram(),Ie.getProgram());if(jt(Ne)){for(let Te of Ne)re.add(Te);continue}}re.add(Ee)}else{let Ee=R.filter(Ne=>op(Ne.fileName)!==d&&Ne.isAmbient);for(let Ne of jt(Ee)?Ee:V()){let Te=W(Ne.fileName,d,ge);if(!Te)continue;let Ze=this.projectService.getOrCreateScriptInfoNotOpenedByClient(Te,ge.currentDirectory,ge.directoryStructureHost,!1);if(!Ze)continue;ge.containsScriptInfo(Ze)||(ge.addRoot(Ze),ge.updateGraph());let We=Ie.getProgram(),Ue=pe.checkDefined(We.getSourceFile(Te));for(let $e of ee(Ne.name,Ue,We))re.add($e)}}R=Do(re.values())}return R=R.filter(re=>!re.isAmbient&&!re.failedAliasResolution),this.mapDefinitionInfo(R,h);function W(re,ge,Ie){var _e,Ee,Ne;let Te=MAe(re);if(Te&&re.lastIndexOf(Vx)===Te.topLevelNodeModulesIndex){let Ze=re.substring(0,Te.packageRootIndex),We=(_e=h.getModuleResolutionCache())==null?void 0:_e.getPackageJsonInfoCache(),Ue=h.getCompilationSettings(),$e=yde(Xc(Ze,h.getCurrentDirectory()),_de(We,h,Ue));if(!$e)return;let Ye=det($e,{moduleResolution:2},h,h.getModuleResolutionCache()),Tt=re.substring(Te.topLevelPackageNameIndex+1,Te.packageRootIndex),ot=bde(NEe(Tt)),Qe=h.toPath(re);if(Ye&&jt(Ye,mt=>h.toPath(mt)===Qe))return(Ee=Ie.resolutionCache.resolveSingleModuleNameWithoutWatching(ot,ge).resolvedModule)==null?void 0:Ee.resolvedFileName;{let mt=re.substring(Te.packageRootIndex+1),ht=`${ot}/${s0(mt)}`;return(Ne=Ie.resolutionCache.resolveSingleModuleNameWithoutWatching(ht,ge).resolvedModule)==null?void 0:Ne.resolvedFileName}}}function V(){let re=h.getLanguageService(),ge=re.getProgram(),Ie=Lb(ge.getSourceFile(d),_);return(mA(Ie)||Ir(Ie))&&_p(Ie.parent)&&zZe(Ie,_e=>{var Ee;if(_e===Ie)return;let Ne=(Ee=re.getDefinitionAtPosition(d,_e.getStart(),!0,!1))==null?void 0:Ee.filter(Te=>op(Te.fileName)!==d&&Te.isAmbient).map(Te=>({fileName:Te.fileName,name:c2(Ie)}));if(jt(Ne))return Ne})||zm}function M(re,ge,Ie){var _e;let Ee=Ie.getSourceFile(re.fileName);if(!Ee)return;let Ne=Lb(ge.getSourceFile(d),_),Te=ge.getTypeChecker().getSymbolAtLocation(Ne),Ze=Te&&Cp(Te,277);if(!Ze)return;let We=((_e=Ze.propertyName)==null?void 0:_e.text)||Ze.name.text;return ee(We,Ee,Ie)}function ee(re,ge,Ie){let _e=Kp.Core.getTopMostDeclarationNamesInFile(re,ge);return Xt(_e,Ee=>{let Ne=Ie.getTypeChecker().getSymbolAtLocation(Ee),Te=T7(Ee);if(Ne&&Te)return nse.createDefinitionInfo(Te,Ie.getTypeChecker(),Ne,Te,!0)})}}getEmitOutput(c){let{file:g,project:d}=this.getFileAndProject(c);if(!d.shouldEmitFile(d.getScriptInfo(g)))return{emitSkipped:!0,outputFiles:[],diagnostics:[]};let h=d.getLanguageService().getEmitOutput(g);return c.richResponse?{...h,diagnostics:c.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(h.diagnostics):h.diagnostics.map(_=>o2e(_,!0))}:h}mapJSDocTagInfo(c,g,d){return c?c.map(h=>{var _;return{...h,text:d?this.mapDisplayParts(h.text,g):(_=h.text)==null?void 0:_.map(S=>S.text).join("")}}):[]}mapDisplayParts(c,g){return c?c.map(d=>d.kind!=="linkName"?d:{...d,target:this.toFileSpan(d.target.fileName,d.target.textSpan,g)}):[]}mapSignatureHelpItems(c,g,d){return c.map(h=>({...h,documentation:this.mapDisplayParts(h.documentation,g),parameters:h.parameters.map(_=>({..._,documentation:this.mapDisplayParts(_.documentation,g)})),tags:this.mapJSDocTagInfo(h.tags,g,d)}))}mapDefinitionInfo(c,g){return c.map(d=>({...this.toFileSpanWithContext(d.fileName,d.textSpan,d.contextSpan,g),...d.unverified&&{unverified:d.unverified}}))}static mapToOriginalLocation(c){return c.originalFileName?(pe.assert(c.originalTextSpan!==void 0,"originalTextSpan should be present if originalFileName is"),{...c,fileName:c.originalFileName,textSpan:c.originalTextSpan,targetFileName:c.fileName,targetTextSpan:c.textSpan,contextSpan:c.originalContextSpan,targetContextSpan:c.contextSpan}):c}toFileSpan(c,g,d){let h=d.getLanguageService(),_=h.toLineColumnOffset(c,g.start),S=h.toLineColumnOffset(c,Rs(g));return{file:c,start:{line:_.line+1,offset:_.character+1},end:{line:S.line+1,offset:S.character+1}}}toFileSpanWithContext(c,g,d,h){let _=this.toFileSpan(c,g,h),S=d&&this.toFileSpan(c,d,h);return S?{..._,contextStart:S.start,contextEnd:S.end}:_}getTypeDefinition(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getPositionInFile(c,g),_=this.mapDefinitionInfoLocations(d.getLanguageService().getTypeDefinitionAtPosition(g,h)||zm,d);return this.mapDefinitionInfo(_,d)}mapImplementationLocations(c,g){return c.map(d=>{let h=ufn(d,g);return h?{...h,kind:d.kind,displayParts:d.displayParts}:d})}getImplementation(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=this.mapImplementationLocations(h.getLanguageService().getImplementationAtPosition(d,_)||zm,h);return g?S.map(({fileName:R,textSpan:T,contextSpan:W})=>this.toFileSpanWithContext(R,T,W,h)):S.map(JEt.mapToOriginalLocation)}getSyntacticDiagnosticsSync(c){let{configFile:g}=this.getConfigFileAndProject(c);return g?zm:this.getDiagnosticsWorker(c,!1,(d,h)=>d.getLanguageService().getSyntacticDiagnostics(h),!!c.includeLinePosition)}getSemanticDiagnosticsSync(c){let{configFile:g,project:d}=this.getConfigFileAndProject(c);return g?this.getConfigFileDiagnostics(g,d,!!c.includeLinePosition):this.getDiagnosticsWorker(c,!0,(h,_)=>h.getLanguageService().getSemanticDiagnostics(_).filter(S=>!!S.file),!!c.includeLinePosition)}getSuggestionDiagnosticsSync(c){let{configFile:g}=this.getConfigFileAndProject(c);return g?zm:this.getDiagnosticsWorker(c,!0,(d,h)=>d.getLanguageService().getSuggestionDiagnostics(h),!!c.includeLinePosition)}getJsxClosingTag(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=d.getJsxClosingTagAtPosition(g,h);return _===void 0?void 0:{newText:_.newText,caretOffset:0}}getLinkedEditingRange(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=d.getLinkedEditingRangeAtPosition(g,h),S=this.projectService.getScriptInfoForNormalizedPath(g);if(!(S===void 0||_===void 0))return rOs(_,S)}getDocumentHighlights(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.getPositionInFile(c,d),S=h.getLanguageService().getDocumentHighlights(d,_,c.filesToSearch);return S?g?S.map(({fileName:R,highlightSpans:T})=>{let W=h.getScriptInfo(R);return{file:R,highlightSpans:T.map(({textSpan:V,kind:M,contextSpan:ee})=>({...lJt(V,ee,W),kind:M}))}}):S:zm}provideInlayHints(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.projectService.getScriptInfoForNormalizedPath(g);return d.getLanguageService().provideInlayHints(g,c,this.getPreferences(g)).map(S=>{let{position:R,displayParts:T}=S;return{...S,position:h.positionToLineOffset(R),displayParts:T?.map(({text:W,span:V,file:M})=>{if(V){pe.assertIsDefined(M,"Target file should be defined together with its span.");let ee=this.projectService.getScriptInfo(M);return{text:W,span:{start:ee.positionToLineOffset(V.start),end:ee.positionToLineOffset(V.start+V.length),file:M}}}else return{text:W}})}})}mapCode(c){var g;let d=this.getHostFormatOptions(),h=this.getHostPreferences(),{file:_,languageService:S}=this.getFileAndLanguageServiceForSyntacticOperation(c),R=this.projectService.getScriptInfoForNormalizedPath(_),T=(g=c.mapping.focusLocations)==null?void 0:g.map(V=>V.map(M=>{let ee=R.lineOffsetToPosition(M.start.line,M.start.offset),re=R.lineOffsetToPosition(M.end.line,M.end.offset);return{start:ee,length:re-ee}})),W=S.mapCode(_,c.mapping.contents,T,d,h);return this.mapTextChangesToCodeEdits(W)}getCopilotRelatedInfo(){return{relatedFiles:[]}}setCompilerOptionsForInferredProjects(c){this.projectService.setCompilerOptionsForInferredProjects(c.options,c.projectRootPath)}getProjectInfo(c){return this.getProjectInfoWorker(c.file,c.projectFileName,c.needFileNameList,c.needDefaultConfiguredProjectInfo,!1)}getProjectInfoWorker(c,g,d,h,_){let{project:S}=this.getFileAndProjectWorker(c,g);return _v(S),{configFileName:S.getProjectName(),languageServiceDisabled:!S.languageServiceEnabled,fileNames:d?S.getFileNames(!1,_):void 0,configuredProjectInfo:h?this.getDefaultConfiguredProjectInfo(c):void 0}}getDefaultConfiguredProjectInfo(c){var g;let d=this.projectService.getScriptInfo(c);if(!d)return;let h=this.projectService.findDefaultConfiguredProjectWorker(d,3);if(!h)return;let _,S;return h.seenProjects.forEach((R,T)=>{T!==h.defaultProject&&(R!==3?(_??(_=[])).push(op(T.getConfigFilePath())):(S??(S=[])).push(op(T.getConfigFilePath())))}),(g=h.seenConfigs)==null||g.forEach(R=>(_??(_=[])).push(R)),{notMatchedByConfig:_,notInProject:S,defaultProject:h.defaultProject&&op(h.defaultProject.getConfigFilePath())}}getRenameInfo(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getPositionInFile(c,g),_=this.getPreferences(g);return d.getLanguageService().getRenameInfo(g,h,_)}getProjects(c,g,d){let h,_;if(c.projectFileName){let S=this.getProject(c.projectFileName);S&&(h=[S])}else{let S=g?this.projectService.getScriptInfoEnsuringProjectsUptoDate(c.file):this.projectService.getScriptInfo(c.file);if(S)g||this.projectService.ensureDefaultProjectForFile(S);else return d?zm:(this.projectService.logErrorForScriptInfoNotFound(c.file),QF.ThrowNoProject());h=S.containingProjects,_=this.projectService.getSymlinkedProjects(S)}return h=Me(h,S=>S.languageServiceEnabled&&!S.isOrphan()),!d&&(!h||!h.length)&&!_?(this.projectService.logErrorForScriptInfoNotFound(c.file??c.projectFileName),QF.ThrowNoProject()):_?{projects:h,symLinkedProjects:_}:h}getDefaultProject(c){if(c.projectFileName){let d=this.getProject(c.projectFileName);if(d)return d;if(!c.file)return QF.ThrowNoProject()}return this.projectService.getScriptInfo(c.file).getDefaultProject()}getRenameLocations(c,g){let d=op(c.file),h=this.getPositionInFile(c,d),_=this.getProjects(c),S=this.getDefaultProject(c),R=this.getPreferences(d),T=this.mapRenameInfo(S.getLanguageService().getRenameInfo(d,h,R),pe.checkDefined(this.projectService.getScriptInfo(d)));if(!T.canRename)return g?{info:T,locs:[]}:[];let W=jWs(_,S,{fileName:c.file,pos:h},!!c.findInStrings,!!c.findInComments,R,this.host.useCaseSensitiveFileNames);return g?{info:T,locs:this.toSpanGroups(W)}:W}mapRenameInfo(c,g){if(c.canRename){let{canRename:d,fileToRename:h,displayName:_,fullDisplayName:S,kind:R,kindModifiers:T,triggerSpan:W}=c;return{canRename:d,fileToRename:h,displayName:_,fullDisplayName:S,kind:R,kindModifiers:T,triggerSpan:kN(W,g)}}else return c}toSpanGroups(c){let g=new Map;for(let{fileName:d,textSpan:h,contextSpan:_,originalContextSpan:S,originalTextSpan:R,originalFileName:T,...W}of c){let V=g.get(d);V||g.set(d,V={file:d,locs:[]});let M=pe.checkDefined(this.projectService.getScriptInfo(d));V.locs.push({...lJt(h,_,M),...W})}return Do(g.values())}getReferences(c,g){let d=op(c.file),h=this.getProjects(c),_=this.getPositionInFile(c,d),S=zWs(h,this.getDefaultProject(c),{fileName:c.file,pos:_},this.host.useCaseSensitiveFileNames,this.logger);if(!g)return S;let R=this.getPreferences(d),T=this.getDefaultProject(c),W=T.getScriptInfoForNormalizedPath(d),V=T.getLanguageService().getQuickInfoAtPosition(d,_),M=V?D1e(V.displayParts):"",ee=V&&V.textSpan,re=ee?W.positionToLineOffset(ee.start).offset:0,ge=ee?W.getSnapshot().getText(ee.start,Rs(ee)):"";return{refs:er(S,_e=>_e.references.map(Ee=>ffn(this.projectService,Ee,R))),symbolName:ge,symbolStartOffset:re,symbolDisplayString:M}}getFileReferences(c,g){let d=this.getProjects(c),h=op(c.file),_=this.getPreferences(h),S={fileName:h,pos:0},R=cJt(d,this.getDefaultProject(c),S,S,afn,V=>(this.logger.info(`Finding references to file ${h} in project ${V.getProjectName()}`),V.getLanguageService().getFileReferences(h))),T;if(Ki(R))T=R;else{T=[];let V=xst(this.host.useCaseSensitiveFileNames);R.forEach(M=>{for(let ee of M)V.has(ee)||(T.push(ee),V.add(ee))})}return g?{refs:T.map(V=>ffn(this.projectService,V,_)),symbolName:`"${c.file}"`}:T}openClientFile(c,g,d,h){this.projectService.openClientFileWithNormalizedPath(c,g,d,!1,h)}getPosition(c,g){return c.position!==void 0?c.position:g.lineOffsetToPosition(c.line,c.offset)}getPositionInFile(c,g){let d=this.projectService.getScriptInfoForNormalizedPath(g);return this.getPosition(c,d)}getFileAndProject(c){return this.getFileAndProjectWorker(c.file,c.projectFileName)}getFileAndLanguageServiceForSyntacticOperation(c){let{file:g,project:d}=this.getFileAndProject(c);return{file:g,languageService:d.getLanguageService(!1)}}getFileAndProjectWorker(c,g){let d=op(c),h=this.getProject(g)||this.projectService.ensureDefaultProjectForFile(d);return{file:d,project:h}}getOutliningSpans(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getOutliningSpans(d);if(g){let S=this.projectService.getScriptInfoForNormalizedPath(d);return _.map(R=>({textSpan:kN(R.textSpan,S),hintSpan:kN(R.hintSpan,S),bannerText:R.bannerText,autoCollapse:R.autoCollapse,kind:R.kind}))}else return _}getTodoComments(c){let{file:g,project:d}=this.getFileAndProject(c);return d.getLanguageService().getTodoComments(g,c.descriptors)}getDocCommentTemplate(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getDocCommentTemplateAtPosition(g,h,this.getPreferences(g),this.getFormatOptions(g))}getSpanOfEnclosingComment(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.onlyMultiLine,_=this.getPositionInFile(c,g);return d.getSpanOfEnclosingComment(g,_,h)}getIndentation(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g),_=c.options?ase(c.options):this.getFormatOptions(g),S=d.getIndentationAtPosition(g,h,_);return{position:h,indentation:S}}getBreakpointStatement(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getBreakpointStatementAtPosition(g,h)}getNameOrDottedNameSpan(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.getNameOrDottedNameSpan(g,h,h)}isValidBraceCompletion(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.getPositionInFile(c,g);return d.isValidBraceCompletionAtPosition(g,h,c.openingBrace.charCodeAt(0))}getQuickInfoWorker(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPreferences(d),R=h.getLanguageService().getQuickInfoAtPosition(d,this.getPosition(c,_),S.maximumHoverLength,c.verbosityLevel);if(!R)return;let T=!!S.displayPartsForJSDoc;if(g){let W=D1e(R.displayParts);return{kind:R.kind,kindModifiers:R.kindModifiers,start:_.positionToLineOffset(R.textSpan.start),end:_.positionToLineOffset(Rs(R.textSpan)),displayString:W,documentation:T?this.mapDisplayParts(R.documentation,h):D1e(R.documentation),tags:this.mapJSDocTagInfo(R.tags,h,T),canIncreaseVerbosityLevel:R.canIncreaseVerbosityLevel}}else return T?R:{...R,tags:this.mapJSDocTagInfo(R.tags,h,!1)}}getFormattingEditsForRange(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.projectService.getScriptInfoForNormalizedPath(g),_=h.lineOffsetToPosition(c.line,c.offset),S=h.lineOffsetToPosition(c.endLine,c.endOffset),R=d.getFormattingEditsForRange(g,_,S,this.getFormatOptions(g));if(R)return R.map(T=>this.convertTextChangeToCodeEdit(T,h))}getFormattingEditsForRangeFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsForRange(g,c.position,c.endPosition,h)}getFormattingEditsForDocumentFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsForDocument(g,h)}getFormattingEditsAfterKeystrokeFull(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=c.options?ase(c.options):this.getFormatOptions(g);return d.getFormattingEditsAfterKeystroke(g,c.position,c.key,h)}getFormattingEditsAfterKeystroke(c){let{file:g,languageService:d}=this.getFileAndLanguageServiceForSyntacticOperation(c),h=this.projectService.getScriptInfoForNormalizedPath(g),_=h.lineOffsetToPosition(c.line,c.offset),S=this.getFormatOptions(g),R=d.getFormattingEditsAfterKeystroke(g,_,c.key,S);if(c.key===` `&&(!R||R.length===0||JWs(R,_))){let{lineText:T,absolutePosition:W}=h.textStorage.getAbsolutePositionAndLineText(c.line);if(T&&T.search("\\S")<0){let V=d.getIndentationAtPosition(g,_,S),M=0,ee,re;for(ee=0,re=T.length;ee({start:h.positionToLineOffset(T.span.start),end:h.positionToLineOffset(Rs(T.span)),newText:T.newText?T.newText:""}))}getCompletions(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getLanguageService().getCompletionsAtPosition(d,S,{...Y4t(this.getPreferences(d)),triggerCharacter:c.triggerCharacter,triggerKind:c.triggerKind,includeExternalModuleExports:c.includeExternalModuleExports,includeInsertTextCompletions:c.includeInsertTextCompletions},h.projectService.getFormatCodeOptions(d));if(R===void 0)return;if(g==="completions-full")return R;let T=c.prefix||"",W=Xt(R.entries,M=>{if(R.isMemberCompletion||Ac(M.name.toLowerCase(),T.toLowerCase())){let ee=M.replacementSpan?kN(M.replacementSpan,_):void 0;return{...M,replacementSpan:ee,hasAction:M.hasAction||void 0,symbol:void 0}}});return g==="completions"?(R.metadata&&(W.metadata=R.metadata),W):{...R,optionalReplacementSpan:R.optionalReplacementSpan&&kN(R.optionalReplacementSpan,_),entries:W}}getCompletionEntryDetails(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.projectService.getFormatCodeOptions(d),T=!!this.getPreferences(d).displayPartsForJSDoc,W=Xt(c.entryNames,V=>{let{name:M,source:ee,data:re}=typeof V=="string"?{name:V,source:void 0,data:void 0}:V;return h.getLanguageService().getCompletionEntryDetails(d,S,M,R,ee,this.getPreferences(d),re?Ma(re,aOs):void 0)});return g?T?W:W.map(V=>({...V,tags:this.mapJSDocTagInfo(V.tags,h,!1)})):W.map(V=>({...V,codeActions:At(V.codeActions,M=>this.mapCodeAction(M)),documentation:this.mapDisplayParts(V.documentation,h),tags:this.mapJSDocTagInfo(V.tags,h,T)}))}getCompileOnSaveAffectedFileList(c){let g=this.getProjects(c,!0,!0),d=this.projectService.getScriptInfo(c.file);return d?KWs(d,h=>this.projectService.getScriptInfoForPath(h),g,(h,_)=>{if(!h.compileOnSaveEnabled||!h.languageServiceEnabled||h.isOrphan())return;let S=h.getCompilationSettings();if(!(S.noEmit||PC(_.fileName)&&!XWs(S)))return{projectFileName:h.getProjectName(),fileNames:h.getCompileOnSaveAffectedFileList(_),projectUsesOutFile:!!S.outFile}}):zm}emitFile(c){let{file:g,project:d}=this.getFileAndProject(c);if(d||QF.ThrowNoProject(),!d.languageServiceEnabled)return c.richResponse?{emitSkipped:!0,diagnostics:[]}:!1;let h=d.getScriptInfo(g),{emitSkipped:_,diagnostics:S}=d.emitFile(h,(R,T,W)=>this.host.writeFile(R,T,W));return c.richResponse?{emitSkipped:_,diagnostics:c.includeLinePosition?this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(S):S.map(R=>o2e(R,!0))}:!_}getSignatureHelpItems(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getLanguageService().getSignatureHelpItems(d,S,c),T=!!this.getPreferences(d).displayPartsForJSDoc;if(R&&g){let W=R.applicableSpan;return{...R,applicableSpan:{start:_.positionToLineOffset(W.start),end:_.positionToLineOffset(W.start+W.length)},items:this.mapSignatureHelpItems(R.items,h,T)}}else return T||!R?R:{...R,items:R.items.map(W=>({...W,tags:this.mapJSDocTagInfo(W.tags,h,!1)}))}}toPendingErrorCheck(c){let g=op(c),d=this.projectService.tryGetDefaultProjectForFile(g);return d&&{fileName:g,project:d}}getDiagnostics(c,g,d){this.suppressDiagnosticEvents||d.length>0&&this.updateErrorCheck(c,d,g)}change(c){let g=this.projectService.getScriptInfo(c.file);pe.assert(!!g),g.textStorage.switchToScriptVersionCache();let d=g.lineOffsetToPosition(c.line,c.offset),h=g.lineOffsetToPosition(c.endLine,c.endOffset);d>=0&&(this.changeSeq++,this.projectService.applyChangesToFile(g,qr({span:{start:d,length:h-d},newText:c.insertString})))}reload(c){let g=op(c.file),d=c.tmpfile===void 0?void 0:op(c.tmpfile),h=this.projectService.getScriptInfoForNormalizedPath(g);h&&(this.changeSeq++,h.reloadFromFile(d))}saveToTmp(c,g){let d=this.projectService.getScriptInfo(c);d&&d.saveTo(g)}closeClientFile(c){if(!c)return;let g=iu(c);this.projectService.closeClientFile(g)}mapLocationNavigationBarItems(c,g){return At(c,d=>({text:d.text,kind:d.kind,kindModifiers:d.kindModifiers,spans:d.spans.map(h=>kN(h,g)),childItems:this.mapLocationNavigationBarItems(d.childItems,g),indent:d.indent}))}getNavigationBarItems(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getNavigationBarItems(d);return _?g?this.mapLocationNavigationBarItems(_,this.projectService.getScriptInfoForNormalizedPath(d)):_:void 0}toLocationNavigationTree(c,g){return{text:c.text,kind:c.kind,kindModifiers:c.kindModifiers,spans:c.spans.map(d=>kN(d,g)),nameSpan:c.nameSpan&&kN(c.nameSpan,g),childItems:At(c.childItems,d=>this.toLocationNavigationTree(d,g))}}getNavigationTree(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=h.getNavigationTree(d);return _?g?this.toLocationNavigationTree(_,this.projectService.getScriptInfoForNormalizedPath(d)):_:void 0}getNavigateToItems(c,g){let d=this.getFullNavigateToItems(c);return g?er(d,({project:h,navigateToItems:_})=>_.map(S=>{let R=h.getScriptInfo(S.fileName),T={name:S.name,kind:S.kind,kindModifiers:S.kindModifiers,isCaseSensitive:S.isCaseSensitive,matchKind:S.matchKind,file:S.fileName,start:R.positionToLineOffset(S.textSpan.start),end:R.positionToLineOffset(Rs(S.textSpan))};return S.kindModifiers&&S.kindModifiers!==""&&(T.kindModifiers=S.kindModifiers),S.containerName&&S.containerName.length>0&&(T.containerName=S.containerName),S.containerKind&&S.containerKind.length>0&&(T.containerKind=S.containerKind),T})):er(d,({navigateToItems:h})=>h)}getFullNavigateToItems(c){let{currentFileOnly:g,searchValue:d,maxResultCount:h,projectFileName:_}=c;if(g){pe.assertIsDefined(c.file);let{file:ee,project:re}=this.getFileAndProject(c);return[{project:re,navigateToItems:re.getLanguageService().getNavigateToItems(d,h,ee)}]}let S=this.getHostPreferences(),R=[],T=new Map;if(!c.file&&!_)this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(ee=>W(ee));else{let ee=this.getProjects(c);ofn(ee,void 0,re=>W(re))}return R;function W(ee){let re=ee.getLanguageService().getNavigateToItems(d,h,void 0,ee.isNonTsProject(),S.excludeLibrarySymbolsInNavTo),ge=Me(re,Ie=>V(Ie)&&!Gst(Ipe(Ie),ee));ge.length&&R.push({project:ee,navigateToItems:ge})}function V(ee){let re=ee.name;if(!T.has(re))return T.set(re,[ee]),!0;let ge=T.get(re);for(let Ie of ge)if(M(Ie,ee))return!1;return ge.push(ee),!0}function M(ee,re){return ee===re?!0:!ee||!re?!1:ee.containerKind===re.containerKind&&ee.containerName===re.containerName&&ee.fileName===re.fileName&&ee.isCaseSensitive===re.isCaseSensitive&&ee.kind===re.kind&&ee.kindModifiers===re.kindModifiers&&ee.matchKind===re.matchKind&&ee.name===re.name&&ee.textSpan.start===re.textSpan.start&&ee.textSpan.length===re.textSpan.length}}getSupportedCodeFixes(c){if(!c)return znt();if(c.file){let{file:d,project:h}=this.getFileAndProject(c);return h.getLanguageService().getSupportedCodeFixes(d)}let g=this.getProject(c.projectFileName);return g||QF.ThrowNoProject(),g.getLanguageService().getSupportedCodeFixes()}isLocation(c){return c.line!==void 0}extractPositionOrRange(c,g){let d,h;return this.isLocation(c)?d=_(c):h=this.getRange(c,g),pe.checkDefined(d===void 0?h:d);function _(S){return S.position!==void 0?S.position:g.lineOffsetToPosition(S.line,S.offset)}}getRange(c,g){let{startPosition:d,endPosition:h}=this.getStartAndEndPosition(c,g);return{pos:d,end:h}}getApplicableRefactors(c){let{file:g,project:d}=this.getFileAndProject(c),h=d.getScriptInfoForNormalizedPath(g);return d.getLanguageService().getApplicableRefactors(g,this.extractPositionOrRange(c,h),this.getPreferences(g),c.triggerReason,c.kind,c.includeInteractiveActions).map(S=>({...S,actions:S.actions.map(R=>({...R,range:R.range?{start:cse({line:R.range.start.line,character:R.range.start.offset}),end:cse({line:R.range.end.line,character:R.range.end.offset})}:void 0}))}))}getEditsForRefactor(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=h.getScriptInfoForNormalizedPath(d),S=h.getLanguageService().getEditsForRefactor(d,this.getFormatOptions(d),this.extractPositionOrRange(c,_),c.refactor,c.action,this.getPreferences(d),c.interactiveRefactorArguments);if(S===void 0)return{edits:[]};if(g){let{renameFilename:R,renameLocation:T,edits:W}=S,V;if(R!==void 0&&T!==void 0){let M=h.getScriptInfoForNormalizedPath(op(R));V=uJt(Lz(M.getSnapshot()),R,T,W)}return{renameLocation:V,renameFilename:R,edits:this.mapTextChangesToCodeEdits(W),notApplicableReason:S.notApplicableReason}}return S}getMoveToRefactoringFileSuggestions(c){let{file:g,project:d}=this.getFileAndProject(c),h=d.getScriptInfoForNormalizedPath(g);return d.getLanguageService().getMoveToRefactoringFileSuggestions(g,this.extractPositionOrRange(c,h),this.getPreferences(g))}preparePasteEdits(c){let{file:g,project:d}=this.getFileAndProject(c);return d.getLanguageService().preparePasteEditsForFile(g,c.copiedTextSpan.map(h=>this.getRange({file:g,startLine:h.start.line,startOffset:h.start.offset,endLine:h.end.line,endOffset:h.end.offset},this.projectService.getScriptInfoForNormalizedPath(g))))}getPasteEdits(c){let{file:g,project:d}=this.getFileAndProject(c);if(ppe(g))return;let h=c.copiedFrom?{file:c.copiedFrom.file,range:c.copiedFrom.spans.map(S=>this.getRange({file:c.copiedFrom.file,startLine:S.start.line,startOffset:S.start.offset,endLine:S.end.line,endOffset:S.end.offset},d.getScriptInfoForNormalizedPath(op(c.copiedFrom.file))))}:void 0,_=d.getLanguageService().getPasteEdits({targetFile:g,pastedText:c.pastedText,pasteLocations:c.pasteLocations.map(S=>this.getRange({file:g,startLine:S.start.line,startOffset:S.start.offset,endLine:S.end.line,endOffset:S.end.offset},d.getScriptInfoForNormalizedPath(g))),copiedFrom:h,preferences:this.getPreferences(g)},this.getFormatOptions(g));return _&&this.mapPasteEditsAction(_)}organizeImports(c,g){pe.assert(c.scope.type==="file");let{file:d,project:h}=this.getFileAndProject(c.scope.args),_=h.getLanguageService().organizeImports({fileName:d,mode:c.mode??(c.skipDestructiveCodeActions?"SortAndCombine":void 0),type:"file"},this.getFormatOptions(d),this.getPreferences(d));return g?this.mapTextChangesToCodeEdits(_):_}getEditsForFileRename(c,g){let d=op(c.oldFilePath),h=op(c.newFilePath),_=this.getHostFormatOptions(),S=this.getHostPreferences(),R=new Set,T=[];return this.projectService.loadAncestorProjectTree(),this.projectService.forEachEnabledProject(W=>{let V=W.getLanguageService().getEditsForFileRename(d,h,_,S),M=[];for(let ee of V)R.has(ee.fileName)||(T.push(ee),M.push(ee.fileName));for(let ee of M)R.add(ee)}),g?T.map(W=>this.mapTextChangeToCodeEdit(W)):T}getCodeFixes(c,g){let{file:d,project:h}=this.getFileAndProject(c),_=h.getScriptInfoForNormalizedPath(d),{startPosition:S,endPosition:R}=this.getStartAndEndPosition(c,_),T;try{T=h.getLanguageService().getCodeFixesAtPosition(d,S,R,c.errorCodes,this.getFormatOptions(d),this.getPreferences(d))}catch(W){let V=W instanceof Error?W:new Error(W),M=h.getLanguageService(),ee=[...M.getSyntacticDiagnostics(d),...M.getSemanticDiagnostics(d),...M.getSuggestionDiagnostics(d)].filter(ge=>IE(S,R-S,ge.start,ge.length)).map(ge=>ge.code),re=c.errorCodes.find(ge=>!ee.includes(ge));throw re!==void 0&&(V.message+=` Additional information: BADCLIENT: Bad error code, ${re} not found in range ${S}..${R} (found: ${ee.join(", ")})`),V}return g?T.map(W=>this.mapCodeFixAction(W)):T}getCombinedCodeFix({scope:c,fixId:g},d){pe.assert(c.type==="file");let{file:h,project:_}=this.getFileAndProject(c.args),S=_.getLanguageService().getCombinedCodeFix({type:"file",fileName:h},g,this.getFormatOptions(h),this.getPreferences(h));return d?{changes:this.mapTextChangesToCodeEdits(S.changes),commands:S.commands}:S}applyCodeActionCommand(c){let g=c.command;for(let d of cc(g)){let{file:h,project:_}=this.getFileAndProject(d);_.getLanguageService().applyCodeActionCommand(d,this.getFormatOptions(h)).then(S=>{},S=>{})}return{}}getStartAndEndPosition(c,g){let d,h;return c.startPosition!==void 0?d=c.startPosition:(d=g.lineOffsetToPosition(c.startLine,c.startOffset),c.startPosition=d),c.endPosition!==void 0?h=c.endPosition:(h=g.lineOffsetToPosition(c.endLine,c.endOffset),c.endPosition=h),{startPosition:d,endPosition:h}}mapCodeAction({description:c,changes:g,commands:d}){return{description:c,changes:this.mapTextChangesToCodeEdits(g),commands:d}}mapCodeFixAction({fixName:c,description:g,changes:d,commands:h,fixId:_,fixAllDescription:S}){return{fixName:c,description:g,changes:this.mapTextChangesToCodeEdits(d),commands:h,fixId:_,fixAllDescription:S}}mapPasteEditsAction({edits:c,fixId:g}){return{edits:this.mapTextChangesToCodeEdits(c),fixId:g}}mapTextChangesToCodeEdits(c){return c.map(g=>this.mapTextChangeToCodeEdit(g))}mapTextChangeToCodeEdit(c){let g=this.projectService.getScriptInfoOrConfig(c.fileName);return!!c.isNewFile==!!g&&(g||this.projectService.logErrorForScriptInfoNotFound(c.fileName),pe.fail("Expected isNewFile for (only) new files. "+JSON.stringify({isNewFile:!!c.isNewFile,hasScriptInfo:!!g}))),g?{fileName:c.fileName,textChanges:c.textChanges.map(d=>tOs(d,g))}:iOs(c)}convertTextChangeToCodeEdit(c,g){return{start:g.positionToLineOffset(c.span.start),end:g.positionToLineOffset(c.span.start+c.span.length),newText:c.newText?c.newText:""}}getBraceMatching(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getPosition(c,_),R=h.getBraceMatchingAtPosition(d,S);return R?g?R.map(T=>kN(T,_)):R:void 0}getDiagnosticsForProject(c,g,d){if(this.suppressDiagnosticEvents)return;let{fileNames:h,languageServiceDisabled:_}=this.getProjectInfoWorker(d,void 0,!0,void 0,!0);if(_)return;let S=h.filter(Ie=>!Ie.includes("lib.d.ts"));if(S.length===0)return;let R=[],T=[],W=[],V=[],M=op(d),ee=this.projectService.ensureDefaultProjectForFile(M);for(let Ie of S)this.getCanonicalFileName(Ie)===this.getCanonicalFileName(d)?R.push(Ie):this.projectService.getScriptInfo(Ie).isScriptOpen()?T.push(Ie):PC(Ie)?V.push(Ie):W.push(Ie);let ge=[...R,...T,...W,...V].map(Ie=>({fileName:Ie,project:ee}));this.updateErrorCheck(c,ge,g,!1)}configurePlugin(c){this.projectService.configurePlugin(c)}getSmartSelectionRange(c,g){let{locations:d}=c,{file:h,languageService:_}=this.getFileAndLanguageServiceForSyntacticOperation(c),S=pe.checkDefined(this.projectService.getScriptInfo(h));return At(d,R=>{let T=this.getPosition(R,S),W=_.getSmartSelectionRange(h,T);return g?this.mapSelectionRange(W,S):W})}toggleLineComment(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfo(d),S=this.getRange(c,_),R=h.toggleLineComment(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}toggleMultilineComment(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.toggleMultilineComment(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}commentSelection(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.commentSelection(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}uncommentSelection(c,g){let{file:d,languageService:h}=this.getFileAndLanguageServiceForSyntacticOperation(c),_=this.projectService.getScriptInfoForNormalizedPath(d),S=this.getRange(c,_),R=h.uncommentSelection(d,S);if(g){let T=this.projectService.getScriptInfoForNormalizedPath(d);return R.map(W=>this.convertTextChangeToCodeEdit(W,T))}return R}mapSelectionRange(c,g){let d={textSpan:kN(c.textSpan,g)};return c.parent&&(d.parent=this.mapSelectionRange(c.parent,g)),d}getScriptInfoFromProjectService(c){let g=op(c),d=this.projectService.getScriptInfoForNormalizedPath(g);return d||(this.projectService.logErrorForScriptInfoNotFound(g),QF.ThrowNoProject())}toProtocolCallHierarchyItem(c){let g=this.getScriptInfoFromProjectService(c.file);return{name:c.name,kind:c.kind,kindModifiers:c.kindModifiers,file:c.file,containerName:c.containerName,span:kN(c.span,g),selectionSpan:kN(c.selectionSpan,g)}}toProtocolCallHierarchyIncomingCall(c){let g=this.getScriptInfoFromProjectService(c.from.file);return{from:this.toProtocolCallHierarchyItem(c.from),fromSpans:c.fromSpans.map(d=>kN(d,g))}}toProtocolCallHierarchyOutgoingCall(c,g){return{to:this.toProtocolCallHierarchyItem(c.to),fromSpans:c.fromSpans.map(d=>kN(d,g))}}prepareCallHierarchy(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.projectService.getScriptInfoForNormalizedPath(g);if(h){let _=this.getPosition(c,h),S=d.getLanguageService().prepareCallHierarchy(g,_);return S&&ant(S,R=>this.toProtocolCallHierarchyItem(R))}}provideCallHierarchyIncomingCalls(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getScriptInfoFromProjectService(g);return d.getLanguageService().provideCallHierarchyIncomingCalls(g,this.getPosition(c,h)).map(S=>this.toProtocolCallHierarchyIncomingCall(S))}provideCallHierarchyOutgoingCalls(c){let{file:g,project:d}=this.getFileAndProject(c),h=this.getScriptInfoFromProjectService(g);return d.getLanguageService().provideCallHierarchyOutgoingCalls(g,this.getPosition(c,h)).map(S=>this.toProtocolCallHierarchyOutgoingCall(S,h))}getCanonicalFileName(c){let g=this.host.useCaseSensitiveFileNames?c:Om(c);return iu(g)}exit(){}notRequired(c){return c&&this.doOutput(void 0,c.command,c.seq,!0,this.performanceData),{responseRequired:!1,performanceData:this.performanceData}}requiredResponse(c){return{response:c,responseRequired:!0,performanceData:this.performanceData}}addProtocolHandler(c,g){if(this.handlers.has(c))throw new Error(`Protocol handler already exists for command "${c}"`);this.handlers.set(c,g)}setCurrentRequest(c){pe.assert(this.currentRequestId===void 0),this.currentRequestId=c,this.cancellationToken.setRequest(c)}resetCurrentRequest(c){pe.assert(this.currentRequestId===c),this.currentRequestId=void 0,this.cancellationToken.resetRequest(c)}executeWithRequestId(c,g,d){let h=this.performanceData;try{return this.performanceData=d,this.setCurrentRequest(c),g()}finally{this.resetCurrentRequest(c),this.performanceData=h}}executeCommand(c){let g=this.handlers.get(c.command);if(g){let d=this.executeWithRequestId(c.seq,()=>g(c),void 0);return this.projectService.enableRequestedPlugins(),d}else return this.logger.msg(`Unrecognized JSON command:${j3(c)}`,"Err"),this.doOutput(void 0,"unknown",c.seq,!1,void 0,`Unrecognized JSON command: ${c.command}`),{responseRequired:!1}}onMessage(c){var g,d,h,_,S,R,T;this.gcTimer.scheduleCollect();let W,V=this.performanceData;this.logger.hasLevel(2)&&(W=this.hrtime(),this.logger.hasLevel(3)&&this.logger.info(`request:${Wde(this.toStringMessage(c))}`));let M,ee;try{M=this.parseMessage(c),ee=M.arguments&&M.arguments.file?M.arguments:void 0,(g=ki)==null||g.instant(ki.Phase.Session,"request",{seq:M.seq,command:M.command}),(d=ki)==null||d.push(ki.Phase.Session,"executeCommand",{seq:M.seq,command:M.command},!0);let{response:re,responseRequired:ge,performanceData:Ie}=this.executeCommand(M);if((h=ki)==null||h.pop(),this.logger.hasLevel(2)){let _e=QWs(this.hrtime(W)).toFixed(4);ge?this.logger.perftrc(`${M.seq}::${M.command}: elapsed time (in milliseconds) ${_e}`):this.logger.perftrc(`${M.seq}::${M.command}: async elapsed time (in milliseconds) ${_e}`)}(_=ki)==null||_.instant(ki.Phase.Session,"response",{seq:M.seq,command:M.command,success:!!re}),re?this.doOutput(re,M.command,M.seq,!0,Ie):ge&&this.doOutput(void 0,M.command,M.seq,!1,Ie,"No content available.")}catch(re){if((S=ki)==null||S.popAll(),re instanceof By){(R=ki)==null||R.instant(ki.Phase.Session,"commandCanceled",{seq:M?.seq,command:M?.command}),this.doOutput({canceled:!0},M.command,M.seq,!0,this.performanceData);return}this.logErrorWorker(re,this.toStringMessage(c),ee),(T=ki)==null||T.instant(ki.Phase.Session,"commandError",{seq:M?.seq,command:M?.command,message:re.message}),this.doOutput(void 0,M?M.command:"unknown",M?M.seq:0,!1,this.performanceData,"Error processing request. "+re.message+` -`+re.stack)}finally{this.performanceData=V}}parseMessage(c){return JSON.parse(c)}toStringMessage(c){return c}getFormatOptions(c){return this.projectService.getFormatCodeOptions(c)}getPreferences(c){return this.projectService.getPreferences(c)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function dfn(s){let c=s.diagnosticsDuration&&Do(s.diagnosticsDuration,([g,d])=>({...d,file:g}));return{...s,diagnosticsDuration:c}}function kN(s,c){return{start:c.positionToLineOffset(s.start),end:c.positionToLineOffset(Rs(s))}}function lJt(s,c,g){let d=kN(s,g),h=c&&kN(c,g);return h?{...d,contextStart:h.start,contextEnd:h.end}:d}function tOs(s,c){return{start:pfn(c,s.span.start),end:pfn(c,Rs(s.span)),newText:s.newText}}function pfn(s,c){return rJt(s)?nOs(s.getLineAndCharacterOfPosition(c)):s.positionToLineOffset(c)}function rOs(s,c){let g=s.ranges.map(d=>({start:c.positionToLineOffset(d.start),end:c.positionToLineOffset(d.start+d.length)}));return s.wordPattern?{ranges:g,wordPattern:s.wordPattern}:{ranges:g}}function nOs(s){return{line:s.line+1,offset:s.character+1}}function iOs(s){pe.assert(s.textChanges.length===1);let c=ma(s.textChanges);return pe.assert(c.span.start===0&&c.span.length===0),{fileName:s.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:c.newText}]}}function uJt(s,c,g,d){let h=sOs(s,c,d),{line:_,character:S}=Ci(cA(h),g);return{line:_+1,offset:S+1}}function sOs(s,c,g){for(let{fileName:d,textChanges:h}of g)if(d===c)for(let _=h.length-1;_>=0;_--){let{newText:S,span:{start:R,length:T}}=h[_];s=s.slice(0,R)+S+s.slice(R+T)}return s}function ffn(s,{fileName:c,textSpan:g,contextSpan:d,isWriteAccess:h,isDefinition:_},{disableLineTextInReferences:S}){let R=pe.checkDefined(s.getScriptInfo(c)),T=lJt(g,d,R),W=S?void 0:oOs(R,T);return{file:c,...T,lineText:W,isWriteAccess:h,isDefinition:_}}function oOs(s,c){let g=s.lineToTextSpan(c.start.line-1);return s.getSnapshot().getText(g.start,Rs(g)).replace(/\r|\n/g,"")}function aOs(s){return s===void 0||s&&typeof s=="object"&&typeof s.exportName=="string"&&(s.fileName===void 0||typeof s.fileName=="string")&&(s.ambientModuleName===void 0||typeof s.ambientModuleName=="string"&&(s.isPackageJsonImport===void 0||typeof s.isPackageJsonImport=="boolean"))}var lse=4,gJt=(s=>(s[s.PreStart=0]="PreStart",s[s.Start=1]="Start",s[s.Entire=2]="Entire",s[s.Mid=3]="Mid",s[s.End=4]="End",s[s.PostEnd=5]="PostEnd",s))(gJt||{}),cOs=class{constructor(){this.goSubtree=!0,this.lineIndex=new a2e,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new use,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(s,c){c&&(this.trailingText=""),s?s=this.initialText+s+this.trailingText:s=this.initialText+this.trailingText;let d=a2e.linesFromText(s).lines;d.length>1&&d[d.length-1]===""&&d.pop();let h,_;for(let R=this.endBranch.length-1;R>=0;R--)this.endBranch[R].updateCounts(),this.endBranch[R].charCount()===0&&(_=this.endBranch[R],R>0?h=this.endBranch[R-1]:h=this.branchNode);_&&h.remove(_);let S=this.startPath[this.startPath.length-1];if(d.length>0)if(S.text=d[0],d.length>1){let R=new Array(d.length-1),T=S;for(let M=1;M=0;){let M=this.startPath[W];R=M.insertAt(T,R),W--,T=M}let V=R.length;for(;V>0;){let M=new use;M.add(this.lineIndex.root),R=M.insertAt(this.lineIndex.root,R),V=R.length,this.lineIndex.root=M}this.lineIndex.root.updateCounts()}else for(let R=this.startPath.length-2;R>=0;R--)this.startPath[R].updateCounts();else{this.startPath[this.startPath.length-2].remove(S);for(let T=this.startPath.length-2;T>=0;T--)this.startPath[T].updateCounts()}return this.lineIndex}post(s,c,g){g===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(s,c,g,d,h){let _=this.stack[this.stack.length-1];this.state===2&&h===1&&(this.state=1,this.branchNode=_,this.lineCollectionAtBranch=g);let S;function R(T){return T.isLeaf()?new lWe(""):new use}switch(h){case 0:this.goSubtree=!1,this.state!==4&&_.add(g);break;case 1:this.state===4?this.goSubtree=!1:(S=R(g),_.add(S),this.startPath.push(S));break;case 2:this.state!==4?(S=R(g),_.add(S),this.startPath.push(S)):g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 5:this.goSubtree=!1,this.state!==1&&_.add(g);break}this.goSubtree&&this.stack.push(S)}leaf(s,c,g){this.state===1?this.initialText=g.text.substring(0,s):this.state===2?(this.initialText=g.text.substring(0,s),this.trailingText=g.text.substring(s+c)):this.trailingText=g.text.substring(s+c)}},lOs=class{constructor(s,c,g){this.pos=s,this.deleteLen=c,this.insertedText=g}getTextChangeRange(){return $2(zd(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},Fst=class yj{constructor(){this.changes=[],this.versions=new Array(yj.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(c){if(!(cthis.currentVersion))return c%yj.maxVersions}currentVersionToIndex(){return this.currentVersion%yj.maxVersions}edit(c,g,d){this.changes.push(new lOs(c,g,d)),(this.changes.length>yj.changeNumberThreshold||g>yj.changeLengthThreshold||d&&d.length>yj.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let c=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let g=c.index;for(let d of this.changes)g=g.edit(d.pos,d.deleteLen,d.insertedText);c=new Ifn(this.currentVersion+1,this,g,this.changes),this.currentVersion=c.version,this.versions[this.currentVersionToIndex()]=c,this.changes=[],this.currentVersion-this.minVersion>=yj.maxVersions&&(this.minVersion=this.currentVersion-yj.maxVersions+1)}return c}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(c){return this._getSnapshot().index.lineNumberToInfo(c)}lineOffsetToPosition(c,g){return this._getSnapshot().index.absolutePositionOfStartOfLine(c)+(g-1)}positionToLineOffset(c){return this._getSnapshot().index.positionToLineOffset(c)}lineToTextSpan(c){let g=this._getSnapshot().index,{lineText:d,absolutePosition:h}=g.lineNumberToInfo(c+1),_=d!==void 0?d.length:g.absolutePositionOfStartOfLine(c+2)-h;return zd(h,_)}getTextChangesBetweenVersions(c,g){if(c=this.minVersion){let d=[];for(let h=c+1;h<=g;h++){let _=this.versions[this.versionToIndex(h)];for(let S of _.changesSincePreviousVersion)d.push(S.getTextChangeRange())}return z(d)}else return;else return Eo}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(c){let g=new yj,d=new Ifn(0,g,new a2e);g.versions[g.currentVersion]=d;let h=a2e.linesFromText(c);return d.index.load(h.lines),g}};Fst.changeNumberThreshold=8,Fst.changeLengthThreshold=256,Fst.maxVersions=8;var Zst=Fst,Ifn=class JDi{constructor(c,g,d,h=zm){this.version=c,this.cache=g,this.index=d,this.changesSincePreviousVersion=h}getText(c,g){return this.index.getText(c,g-c)}getLength(){return this.index.getLength()}getChangeRange(c){if(c instanceof JDi&&this.cache===c.cache)return this.version<=c.version?Eo:this.cache.getTextChangesBetweenVersions(c.version,this.version)}},a2e=class zkr{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(c){return this.lineNumberToInfo(c).absolutePosition}positionToLineOffset(c){let{oneBasedLine:g,zeroBasedColumn:d}=this.root.charOffsetToLineInfo(1,c);return{line:g,offset:d+1}}positionToColumnAndLineText(c){return this.root.charOffsetToLineInfo(1,c)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(c){let g=this.getLineCount();if(c<=g){let{position:d,leaf:h}=this.root.lineNumberToInfo(c,0);return{absolutePosition:d,lineText:h&&h.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(c){if(c.length>0){let g=[];for(let d=0;d0&&c{d=d.concat(S.text.substring(h,h+_))}}),d}getLength(){return this.root.charCount()}every(c,g,d){d||(d=this.root.charCount());let h={goSubtree:!0,done:!1,leaf(_,S,R){c(R,_,S)||(this.done=!0)}};return this.walk(g,d-g,h),!h.done}edit(c,g,d){if(this.root.charCount()===0)return pe.assert(g===0),d!==void 0?(this.load(zkr.linesFromText(d).lines),this):void 0;{let h;if(this.checkEdits){let R=this.getText(0,this.root.charCount());h=R.slice(0,c)+d+R.slice(c+g)}let _=new cOs,S=!1;if(c>=this.root.charCount()){c=this.root.charCount()-1;let R=this.getText(c,1);d?d=R+d:d=R,g=0,S=!0}else if(g>0){let R=c+g,{zeroBasedColumn:T,lineText:W}=this.positionToColumnAndLineText(R);T===0&&(g+=W.length,d=d?d+W:W)}if(this.root.walk(c,g,_),_.insertLines(d,S),this.checkEdits){let R=_.lineIndex.getText(0,_.lineIndex.getLength());pe.assert(h===R,"buffer edit mismatch")}return _.lineIndex}}static buildTreeFromBottom(c){if(c.length0?d[h]=_:d.pop(),{lines:d,lineMap:g}}},use=class qkr{constructor(c=[]){this.children=c,this.totalChars=0,this.totalLines=0,c.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let c of this.children)this.totalChars+=c.charCount(),this.totalLines+=c.lineCount()}execWalk(c,g,d,h,_){return d.pre&&d.pre(c,g,this.children[h],this,_),d.goSubtree?(this.children[h].walk(c,g,d),d.post&&d.post(c,g,this.children[h],this,_)):d.goSubtree=!0,d.done}skipChild(c,g,d,h,_){h.pre&&!h.done&&(h.pre(c,g,this.children[d],this,_),h.goSubtree=!0)}walk(c,g,d){if(this.children.length===0)return;let h=0,_=this.children[h].charCount(),S=c;for(;S>=_;)this.skipChild(S,g,h,d,0),S-=_,h++,_=this.children[h].charCount();if(S+g<=_){if(this.execWalk(S,g,d,h,2))return}else{if(this.execWalk(S,_-S,d,h,1))return;let R=g-(_-S);for(h++,_=this.children[h].charCount();R>_;){if(this.execWalk(0,_,d,h,3))return;R-=_,h++,_=this.children[h].charCount()}if(R>0&&this.execWalk(0,R,d,h,4))return}if(d.pre){let R=this.children.length;if(hg)return _.isLeaf()?{oneBasedLine:c,zeroBasedColumn:g,lineText:_.text}:_.charOffsetToLineInfo(c,g);g-=_.charCount(),c+=_.lineCount()}let d=this.lineCount();if(d===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let h=pe.checkDefined(this.lineNumberToInfo(d,0).leaf);return{oneBasedLine:d,zeroBasedColumn:h.charCount(),lineText:void 0}}lineNumberToInfo(c,g){for(let d of this.children){let h=d.lineCount();if(h>=c)return d.isLeaf()?{position:g,leaf:d}:d.lineNumberToInfo(c,g);c-=h,g+=d.charCount()}return{position:g,leaf:void 0}}splitAfter(c){let g,d=this.children.length;c++;let h=c;if(c=0;ee--)T[ee].children.length===0&&T.pop()}S&&T.push(S),this.updateCounts();for(let V=0;V{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:h,reject:_})});return this.installer.send(g),d}attach(c){this.projectService=c,this.installer=this.createInstallerProcess()}onProjectClosed(c){this.installer.send({projectName:c.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(c,g,d){let h=m4t(c,g,d);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${j3(h)}`),this.activeRequestCount0?this.activeRequestCount--:pe.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let h=this.requestQueue.dequeue();if(this.requestMap.get(h.projectName)===h){this.requestMap.delete(h.projectName),this.scheduleRequest(h);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${h.projectName}`)}this.projectService.updateTypingsForProject(c),this.event(c,"setTypings");break}case n1e:this.projectService.watchTypingLocations(c);break;default:}}scheduleRequest(c){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${c.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${j3(c)}`),this.installer.send(c)},UDi.requestDelayMillis,`${c.projectName}::${c.kind}`)}};hfn.requestDelayMillis=100;var mfn=hfn,Cfn={};o(Cfn,{ActionInvalidate:()=>wVe,ActionPackageInstalled:()=>TVe,ActionSet:()=>BVe,ActionWatchTypingLocations:()=>n1e,Arguments:()=>lrt,AutoImportProviderProject:()=>P4t,AuxiliaryProject:()=>L4t,CharRangeSection:()=>gJt,CloseFileWatcherEvent:()=>Sst,CommandNames:()=>ifn,ConfigFileDiagEvent:()=>Cst,ConfiguredProject:()=>W4t,ConfiguredProjectLoadKind:()=>X4t,CreateDirectoryWatcherEvent:()=>Est,CreateFileWatcherEvent:()=>bst,Errors:()=>QF,EventBeginInstallTypes:()=>art,EventEndInstallTypes:()=>crt,EventInitializationFailed:()=>S5t,EventTypesRegistry:()=>ort,ExternalProject:()=>dst,GcTimer:()=>v4t,InferredProject:()=>Z4t,LargeFileReferencedEvent:()=>mst,LineIndex:()=>a2e,LineLeaf:()=>lWe,LineNode:()=>use,LogLevel:()=>I4t,Msg:()=>h4t,OpenFileInfoTelemetryEvent:()=>O4t,Project:()=>zz,ProjectInfoTelemetryEvent:()=>yst,ProjectKind:()=>fpe,ProjectLanguageServiceStateEvent:()=>_st,ProjectLoadingFinishEvent:()=>hst,ProjectLoadingStartEvent:()=>Ist,ProjectService:()=>tJt,ProjectsUpdatedInBackgroundEvent:()=>oWe,ScriptInfo:()=>R4t,ScriptVersionCache:()=>Zst,Session:()=>Afn,TextStorage:()=>T4t,ThrottledOperations:()=>S4t,TypingsInstallerAdapter:()=>mfn,allFilesAreJsOrDts:()=>x4t,allRootFilesAreJsOrDts:()=>k4t,asNormalizedPath:()=>Npn,convertCompilerOptions:()=>aWe,convertFormatOptions:()=>ase,convertScriptKindName:()=>Bst,convertTypeAcquisition:()=>H4t,convertUserPreferences:()=>Y4t,convertWatchOptions:()=>s2e,countEachFileTypes:()=>t2e,createInstallTypingsRequest:()=>m4t,createModuleSpecifierCache:()=>iJt,createNormalizedPathMap:()=>Dpn,createPackageJsonCache:()=>sJt,createSortedArray:()=>E4t,emptyArray:()=>zm,findArgument:()=>Nnn,formatDiagnosticToProtocol:()=>o2e,formatMessage:()=>oJt,getBaseConfigFileName:()=>Ast,getDetailWatchInfo:()=>Nst,getLocationInNewDocument:()=>uJt,hasArgument:()=>Rnn,hasNoTypeScriptSource:()=>G4t,indent:()=>Wde,isBackgroundProject:()=>n2e,isConfigFile:()=>rJt,isConfiguredProject:()=>s9,isDynamicFileName:()=>ppe,isExternalProject:()=>r2e,isInferredProject:()=>ose,isInferredProjectName:()=>C4t,isProjectDeferredClose:()=>i2e,makeAutoImportProviderProjectName:()=>y4t,makeAuxiliaryProjectName:()=>b4t,makeInferredProjectName:()=>_4t,maxFileSize:()=>fst,maxProgramSizeForNonTsFiles:()=>pst,normalizedPathToPath:()=>sse,nowString:()=>Dnn,nullCancellationToken:()=>tfn,nullTypingsInstaller:()=>cWe,protocol:()=>B4t,scriptInfoIsContainedByBackgroundProject:()=>N4t,scriptInfoIsContainedByDeferredClosedProject:()=>D4t,stringifyIndented:()=>j3,toEvent:()=>aJt,toNormalizedPath:()=>op,tryConvertScriptKindName:()=>vst,typingsInstaller:()=>f4t,updateProjectIfDirty:()=>_v}),typeof console<"u"&&(pe.loggingHost={log(s,c){switch(s){case 1:return console.error(c);case 2:return console.warn(c);case 3:return console.log(c);case 4:return console.log(c)}}})})({get exports(){return ODi},set exports(e){ODi=e,typeof UEt<"u"&&UEt.exports&&(UEt.exports=e)}})});var bxr=H((rZu,fxi)=>{"use strict";fxi.exports=function(t,r){r===!0&&(r=0);var n="";if(typeof t=="string")try{n=new URL(t).protocol}catch{}else t&&t.constructor===URL&&(n=t.protocol);var a=n.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hxi=H((nZu,Ixi)=>{"use strict";var Apc=bxr();function dpc(e){var t={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:e,query:{},parse_failed:!1};try{var r=new URL(e);t.protocols=Apc(r),t.protocol=t.protocols[0],t.port=r.port,t.resource=r.hostname,t.host=r.host,t.user=r.username||"",t.password=r.password||"",t.pathname=r.pathname,t.hash=r.hash.slice(1),t.search=r.search.slice(1),t.href=r.href,t.query=Object.fromEntries(r.searchParams)}catch{t.protocols=["file"],t.protocol=t.protocols[0],t.port="",t.resource="",t.user="",t.pathname="",t.hash="",t.search="",t.href=e,t.query={},t.parse_failed=!0}return t}Ixi.exports=dpc});var _xi=H((iZu,Cxi)=>{"use strict";var ppc=hxi();function fpc(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var Ipc=fpc(ppc),hpc="text/plain",mpc="us-ascii",mxi=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),Cpc=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===mpc)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length>0||f&&f!==hpc)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`};function _pc(e,t){if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return Cpc(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let l=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,f="";for(;;){let C=l.exec(a.pathname);if(!C)break;let b=C[0],E=C.index,N=a.pathname.slice(A,E);f+=N.replace(/\/{2,}/g,"/"),f+=b,A=E+b.length}let I=a.pathname.slice(A,a.pathname.length);f+=I.replace(/\/{2,}/g,"/"),a.pathname=f}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let l=a.pathname.split("/"),A=l[l.length-1];mxi(A,t.removeDirectoryIndex)&&(l=l.slice(0,-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])mxi(l,t.removeQueryParameters)&&a.searchParams.delete(l);if(t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e}var Exr=(e,t=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,n=o=>{let l=new Error(o);throw l.subject_url=e,l};(typeof e!="string"||!e.trim())&&n("Invalid url."),e.length>Exr.MAX_INPUT_LENGTH&&n("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),t&&(typeof t!="object"&&(t={stripHash:!1}),e=_pc(e,t));let a=Ipc.default(e);if(a.parse_failed){let o=a.href.match(r);o?(a.protocols=["ssh"],a.protocol="ssh",a.resource=o[2],a.host=o[2],a.user=o[1],a.pathname=`/${o[3]}`,a.parse_failed=!1):n("URL parsing failed.")}return a};Exr.MAX_INPUT_LENGTH=2048;Cxi.exports=Exr});var Exi=H((sZu,bxi)=>{"use strict";var ypc=bxr();function yxi(e){if(Array.isArray(e))return e.indexOf("ssh")!==-1||e.indexOf("rsync")!==-1;if(typeof e!="string")return!1;var t=ypc(e);if(e=e.substring(e.indexOf("://")+3),yxi(t))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!e.match(r)&&e.indexOf("@"){"use strict";var bpc=_xi(),Sxi=Exi();function Epc(e){var t=bpc(e);return t.token="",t.password==="x-oauth-basic"?t.token=t.user:t.user==="x-token-auth"&&(t.token=t.password),Sxi(t.protocols)||t.protocols.length===0&&Sxi(e)?t.protocol="ssh":t.protocols.length?t.protocol=t.protocols[0]:(t.protocol="file",t.protocols=["file"]),t.href=t.href.replace(/\/$/,""),t}vxi.exports=Epc});var Txi=H((aZu,wxi)=>{"use strict";var Spc=Bxi();function Sxr(e){if(typeof e!="string")throw new Error("The url must be a string.");var t=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;t.test(e)&&(e="https://github.com/"+e);var r=Spc(e),n=r.resource.split("."),a=null;switch(r.toString=function(Q){return Sxr.stringify(this,Q)},r.source=n.length>2?n.slice(1-n.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=n[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var o=a.length-1;if(a.length>=2){var l=a.indexOf("-",2),A=a.indexOf("blob",2),f=a.indexOf("tree",2),I=a.indexOf("commit",2),C=a.indexOf("src",2),b=a.indexOf("raw",2),E=a.indexOf("edit",2);o=l>0?l-1:A>0?A-1:f>0?f-1:I>0?I-1:C>0?C-1:b>0?b-1:E>0?E-1:o,r.owner=a.slice(0,o).join("/"),r.name=a[o],I&&(r.commit=a[o+2])}r.ref="",r.filepathtype="",r.filepath="";var N=a.length>o&&a[o+1]==="-"?o+1:o;a.length>N+2&&["raw","src","blob","tree","edit"].indexOf(a[N+1])>=0&&(r.filepathtype=a[N+1],r.ref=a[N+2],a.length>N+3&&(r.filepath=a.slice(N+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var B=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,F=B.exec(r.pathname);return F!=null&&(r.source="bitbucket-server",F[1]==="users"?r.owner="~"+F[2]:r.owner=F[2],r.organization=r.owner,r.name=F[3],a=F[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Sxr.stringify=function(e,t){t=t||(e.protocols&&e.protocols.length?e.protocols.join("+"):e.protocol);var r=e.port?":"+e.port:"",n=e.user||"git",a=e.git_suffix?".git":"";switch(t){case"ssh":return r?"ssh://"+n+"@"+e.resource+r+"/"+e.full_name+a:n+"@"+e.resource+":"+e.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return t+"://"+n+"@"+e.resource+r+"/"+e.full_name+a;case"http":case"https":var o=e.token?vpc(e):e.user&&(e.protocols.includes("http")||e.protocols.includes("https"))?e.user+"@":"";return t+"://"+o+e.resource+r+"/"+Bpc(e)+a;default:return e.href}};function vpc(e){switch(e.source){case"bitbucket.org":return"x-token-auth:"+e.token+"@";default:return e.token+"@"}}function Bpc(e){switch(e.source){case"bitbucket-server":return"scm/"+e.full_name;default:return""+e.full_name}}wxi.exports=Sxr});var Nxi=H(Bxr=>{"use strict";Object.defineProperty(Bxr,"__esModule",{value:!0});Bxr.tryParseGitURL=Tpc;function vxr(e,t,r){let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)}function Rxi(e){try{return new URL(e)}catch{return}}function wpc(e){let t=vxr(e,"@","#"),r=vxr(e,":","#");return r>t&&(e=`${e.slice(0,r)}/${e.slice(r+1)}`),vxr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`ssh://${e}`),e}function Tpc(e){return Rxi(e)||Rxi(wpc(e))}});var Dxi=H(wxr=>{"use strict";Object.defineProperty(wxr,"__esModule",{value:!0});wxr.normalizeRepoUrl=Npc;var Rpc=Nxi();function Npc(e,{git:t=!1}={}){if(e=e.replace(/^git\+https:/,"https:"),e=e.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),e=e.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let r=(0,Rpc.tryParseGitURL)(e);r&&(e=r.href),e=e.replace(/^git\+([^:]+):/,"$1:")}return e}});var o1t=H(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.TreeishProtocols=Xk.normalizeRepoUrl=void 0;Xk.isGitUrl=Gpc;Xk.splitRepoUrl=s1t;Xk.normalizeLocator=Fpc;Xk.validateRepoUrl=Nxr;Xk.lsRemote=Gxi;Xk.resolveUrl=Zpc;Xk.clone=Lpc;Xk.fetchRoot=Fxi;Xk.fetchBase=Zxi;Xk.fetchChangedFiles=Lxi;Xk.fetchChangedWorkspaces=Vpc;var Rxr=(Pa(),vi(Va)),Ey=Bn(),qZ=no(),i1t=($c(),vi(rg)),Dpc=kW(),kpc=Rxr.__importDefault(Txi()),dUe=Rxr.__importDefault(wt("querystring")),kxi=Rxr.__importDefault(UC()),pUe=Dxi();Object.defineProperty(Xk,"normalizeRepoUrl",{enumerable:!0,get:function(){return pUe.normalizeRepoUrl}});function xxi(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var xpc=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],_O;(function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"})(_O||(Xk.TreeishProtocols=_O={}));function Gpc(e){return e?xpc.some(t=>!!e.match(t)):!1}function s1t(e){e=(0,pUe.normalizeRepoUrl)(e);let t=e.indexOf("#");if(t===-1)return{repo:e,treeish:{protocol:_O.Head,request:"HEAD"},extra:{}};let r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){let a=dUe.default.parse(n);for(let[f,I]of Object.entries(a))if(typeof I!="string")throw new Error(`Assertion failed: The ${f} parameter must be a literal string`);let o=Object.values(_O).find(f=>Object.hasOwn(a,f)),[l,A]=typeof o<"u"?[o,a[o]]:[_O.Head,"HEAD"];for(let f of Object.values(_O))delete a[f];return{repo:r,treeish:{protocol:l,request:A},extra:a}}else{let a=n.indexOf(":"),[o,l]=a===-1?[null,n]:[n.slice(0,a),n.slice(a+1)];return{repo:r,treeish:{protocol:o,request:l},extra:{}}}}function Fpc(e){return Ey.structUtils.makeLocator(e,(0,pUe.normalizeRepoUrl)(e.reference))}function Nxr(e,{configuration:t}){let{repo:r}=s1t(e),n=(0,pUe.normalizeRepoUrl)(r,{git:!0});if(!Ey.httpUtils.getNetworkSettings(`https://${(0,kpc.default)(n).resource}`,{configuration:t}).enableNetwork)throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because of your configuration settings`);let o=Ey.miscUtils.buildIgnorePattern(t.get("approvedGitRepositories"));if(o===null||!n.match(o))throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because it doesn't match any of the patterns in 'approvedGitRepositories'`);return n}async function Gxi(e,t){let r=Nxr(e,{configuration:t}),n=await Txr("listing refs",["ls-remote",r],{cwd:t.startingCwd,env:xxi()},{configuration:t,normalizedRepoUrl:r}),a=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,l;for(;(l=o.exec(n.stdout))!==null;)a.set(l[2],l[1]);return a}async function Zpc(e,t){let{repo:r,treeish:{protocol:n,request:a},extra:o}=s1t(e),l=await Gxi(r,t),A=(I,C)=>{switch(I){case _O.Commit:{if(!C.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return dUe.default.stringify({...o,commit:C})}case _O.Head:{let b=l.get(C==="HEAD"?C:`refs/heads/${C}`);if(typeof b>"u")throw new Error(`Unknown head ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Tag:{let b=l.get(`refs/tags/${C}`);if(typeof b>"u")throw new Error(`Unknown tag ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Semver:{let b=Ey.semverUtils.validRange(C);if(!b)throw new Error(`Invalid range ("${C}")`);let E=new Map([...l.entries()].filter(([B])=>B.startsWith("refs/tags/")).map(([B,F])=>[kxi.default.parse(B.slice(10)),F]).filter(B=>B[0]!==null)),N=kxi.default.maxSatisfying([...E.keys()],b);if(N===null)throw new Error(`No matching range ("${C}")`);return dUe.default.stringify({...o,commit:E.get(N)})}case null:{let b;if((b=f(_O.Commit,C))!==null||(b=f(_O.Tag,C))!==null||(b=f(_O.Head,C))!==null)return b;throw C.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${I}")`)}},f=(I,C)=>{try{return A(I,C)}catch{return null}};return(0,pUe.normalizeRepoUrl)(`${r}#${A(n,a)}`)}async function Lpc(e,t){return await t.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:n,request:a}}=s1t(e);if(n!=="commit")throw new Error("Invalid treeish protocol when cloning");let o=Nxr(r,{configuration:t}),l=await qZ.xfs.mktempPromise(),A={cwd:l,env:xxi()};return await Txr("cloning the repository",["clone","-c","core.autocrlf=false",o,qZ.npath.fromPortablePath(l)],A,{configuration:t,normalizedRepoUrl:o}),await Txr("switching branch",["checkout",`${a}`],A,{configuration:t,normalizedRepoUrl:o}),l})}async function Fxi(e){let t,r=e;do{if(t=r,await qZ.xfs.existsPromise(qZ.ppath.join(t,".git")))return t;r=qZ.ppath.dirname(t)}while(r!==t);return null}async function Zxi(e,{baseRefs:t}){if(t.length===0)throw new i1t.UsageError("Can't run this command with zero base refs specified.");let r=[];for(let A of t){let{code:f}=await Ey.execUtils.execvp("git",["merge-base",A,"HEAD"],{cwd:e});f===0&&r.push(A)}if(r.length===0)throw new i1t.UsageError(`No ancestor could be found between any of HEAD and ${t.join(", ")}`);let{stdout:n}=await Ey.execUtils.execvp("git",["merge-base","HEAD",...r],{cwd:e,strict:!0}),a=n.trim(),{stdout:o}=await Ey.execUtils.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:e,strict:!0}),l=o.trim();return{hash:a,title:l}}async function Lxi(e,{base:t,project:r}){let n=Ey.miscUtils.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ey.execUtils.execvp("git",["diff","--name-only",`${t}`],{cwd:e,strict:!0}),o=a.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),{stdout:l}=await Ey.execUtils.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:e,strict:!0}),A=l.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),f=[...new Set([...o,...A].sort())];return n?f.filter(I=>!qZ.ppath.relative(r.cwd,I).match(n)):f}async function Vpc({ref:e,project:t}){if(t.configuration.projectCwd===null)throw new i1t.UsageError("This command can only be run from within a Yarn project");let r=[qZ.ppath.resolve(t.cwd,qZ.Filename.lockfile),qZ.ppath.resolve(t.cwd,t.configuration.get("cacheFolder")),qZ.ppath.resolve(t.cwd,t.configuration.get("installStatePath")),qZ.ppath.resolve(t.cwd,t.configuration.get("virtualFolder"))];await t.configuration.triggerHook(l=>l.populateYarnPaths,t,l=>{l!=null&&r.push(l)});let n=await Fxi(t.configuration.projectCwd);if(n==null)throw new i1t.UsageError("This command can only be run on Git repositories");let a=await Zxi(n,{baseRefs:typeof e=="string"?[e]:t.configuration.get("changesetBaseRefs")}),o=await Lxi(n,{base:a.hash,project:t});return new Set(Ey.miscUtils.mapAndFilter(o,l=>{let A=t.tryWorkspaceByFilePath(l);return A===null||r.some(f=>l.startsWith(f))?Ey.miscUtils.mapAndFilter.skip:A}))}async function Txr(e,t,r,{configuration:n,normalizedRepoUrl:a}){try{return await Ey.execUtils.execvp("git",t,{...r,strict:!0})}catch(o){if(!(o instanceof Ey.execUtils.ExecError))throw o;let l=o.reportExtra,A=o.stderr.toString();throw new Ey.ReportError(Ey.MessageName.EXCEPTION,`Failed ${e}`,f=>{f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:"Repository URL",value:Ey.formatUtils.tuple(Ey.formatUtils.Type.URL,a)})}`);for(let I of A.matchAll(/^(.+?): (.*)$/gm)){let[,C,b]=I;C=C.toLowerCase();let E=C==="error"?"Error":`${(0,Dpc.capitalize)(C)} Error`;f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:E,value:Ey.formatUtils.tuple(Ey.formatUtils.Type.NO_HINT,b)})}`)}l?.(f)})}}});var Vxi=H(c1t=>{"use strict";Object.defineProperty(c1t,"__esModule",{value:!0});c1t.GitFetcher=void 0;var Ppc=(Pa(),vi(Va)),tDe=Bn(),a1t=no(),Dxr=Ppc.__importStar(o1t()),kxr=class{supports(t,r){return Dxr.isGitUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,a=new Map(r.checksums);a.set(t.locatorHash,n);let o={...r,checksums:a},l=await this.downloadHosted(t,o);if(l!==null)return l;let[A,f,I]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${tDe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(t,o),...r.cacheOptions});return{packageFs:A,releaseFs:f,prefixPath:tDe.structUtils.getIdentVendorPath(t),checksum:I}}async downloadHosted(t,r){return r.project.configuration.reduceHook(n=>n.fetchHostedRepository,null,t,r)}async cloneFromRemote(t,r){let n=Dxr.splitRepoUrl(t.reference),a=await Dxr.clone(t.reference,r.project.configuration),o=a1t.ppath.resolve(a,n.extra.cwd??a1t.PortablePath.dot),l=a1t.ppath.join(o,"package.tgz");await tDe.scriptUtils.prepareExternalProject(o,l,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:t});let A=await a1t.xfs.readFilePromise(l);return await tDe.miscUtils.releaseAfterUseAsync(async()=>await tDe.tgzUtils.convertToZip(A,{configuration:r.project.configuration,prefixPath:tDe.structUtils.getIdentVendorPath(t),stripComponents:1}))}};c1t.GitFetcher=kxr});var Wxi=H(l1t=>{"use strict";Object.defineProperty(l1t,"__esModule",{value:!0});l1t.GitResolver=void 0;var Wpc=(Pa(),vi(Va)),Pxi=Bn(),Opc=Bn(),Mpc=Bn(),rDe=Wpc.__importStar(o1t()),xxr=class{supportsDescriptor(t,r){return rDe.isGitUrl(t.range)}supportsLocator(t,r){return rDe.isGitUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=await rDe.resolveUrl(t.range,n.project.configuration);return[Pxi.structUtils.makeLocator(t,a)]}async getSatisfying(t,r,n,a){let o=rDe.splitRepoUrl(t.range);return{locators:n.filter(A=>{if(A.identHash!==t.identHash)return!1;let f=rDe.splitRepoUrl(A.reference);return!(o.repo!==f.repo||o.treeish.protocol===rDe.TreeishProtocols.Commit&&o.treeish.request!==f.treeish.request)}),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Pxi.miscUtils.releaseAfterUseAsync(async()=>await Mpc.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Opc.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};l1t.GitResolver=xxr});var nDe=H(Mee=>{"use strict";Object.defineProperty(Mee,"__esModule",{value:!0});Mee.GitResolver=Mee.GitFetcher=Mee.gitUtils=void 0;var Hpc=(Pa(),vi(Va)),u1t=Bn(),Oxi=Vxi();Object.defineProperty(Mee,"GitFetcher",{enumerable:!0,get:function(){return Oxi.GitFetcher}});var Mxi=Wxi();Object.defineProperty(Mee,"GitResolver",{enumerable:!0,get:function(){return Mxi.GitResolver}});var Ypc=Hpc.__importStar(o1t());Mee.gitUtils=Ypc;var Qpc={configuration:{approvedGitRepositories:{description:"Array of git repository URL glob patterns that are allowed to be fetched",type:u1t.SettingsType.STRING,default:[],isArray:!0},changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:u1t.SettingsType.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:u1t.SettingsType.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:u1t.SettingsType.NUMBER,default:2}},fetchers:[Oxi.GitFetcher],resolvers:[Mxi.GitResolver]};Mee.default=Qpc});var hUe=H(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.Decision=void 0;GG.validateReleaseDecision=IUe;GG.resolveVersionFiles=Kpc;GG.clearVersionFiles=jpc;GG.updateVersionFiles=zpc;GG.openVersionFile=qpc;GG.requireMoreDecisions=$pc;GG.getUndecidedWorkspaces=Hxi;GG.getUndecidedDependentWorkspaces=Yxi;GG.suggestStrategy=efc;GG.applyStrategy=Fxr;GG.applyReleases=tfc;GG.applyPrerelease=Qxi;var Xpc=(Pa(),vi(Va)),PE=Bn(),Xv=no(),pCe=TW(),Gxr=nDe(),fUe=($c(),vi(rg)),Jpc=kW(),Hee=Xpc.__importDefault(UC()),Upc=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,aH;(function(e){e.UNDECIDED="undecided",e.DECLINE="decline",e.MAJOR="major",e.MINOR="minor",e.PATCH="patch",e.PREMAJOR="premajor",e.PREMINOR="preminor",e.PREPATCH="prepatch",e.PRERELEASE="prerelease"})(aH||(GG.Decision=aH={}));function IUe(e){let t=Hee.default.valid(e);return t||PE.miscUtils.validateEnum((0,Jpc.omit)(aH,"UNDECIDED"),e)}async function Kpc(e,{prerelease:t=null}={}){let r=new Map,n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return r;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A);for(let[I,C]of Object.entries(f.releases||{})){if(C===aH.DECLINE)continue;let b=PE.structUtils.parseIdent(I),E=e.tryWorkspaceByIdent(b);if(E===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${Xv.ppath.basename(l)} references ${I})`);if(E.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${PE.structUtils.prettyLocator(e.configuration,E.anchoredLocator)})`);let N=E.manifest.raw.stableVersion??E.manifest.version,B=r.get(E),F=aH.PRERELEASE===C?Fxr(E.manifest.version,IUe(C)):Fxr(N,IUe(C));if(F===null)throw new Error(`Assertion failed: Expected ${N} to support being bumped via strategy ${C}`);let Q=typeof B<"u"?Hee.default.gt(F,B)?F:B:F;r.set(E,Q)}}return t&&(r=new Map([...r].map(([o,l])=>[o,Qxi(l,{current:o.manifest.version,prerelease:t})]))),r}async function jpc(e){let t=e.configuration.get("deferredVersionFolder");Xv.xfs.existsSync(t)&&await Xv.xfs.removePromise(t)}async function zpc(e,t){let r=new Set(t),n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A),I=f?.releases;if(I){for(let C of Object.keys(I)){let b=PE.structUtils.parseIdent(C),E=e.tryWorkspaceByIdent(b);(E===null||r.has(E))&&delete f.releases[C]}Object.keys(f.releases).length>0?await Xv.xfs.changeFilePromise(l,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering(f))):await Xv.xfs.unlinkPromise(l)}}}async function qpc(e,{allowEmpty:t=!1}={}){let r=e.configuration;if(r.projectCwd===null)throw new fUe.UsageError("This command can only be run from within a Yarn project");let n=await Gxr.gitUtils.fetchRoot(r.projectCwd),a=n!==null?await Gxr.gitUtils.fetchBase(n,{baseRefs:r.get("changesetBaseRefs")}):null,o=n!==null?await Gxr.gitUtils.fetchChangedFiles(n,{base:a.hash,project:e}):[],l=r.get("deferredVersionFolder"),A=o.filter(N=>Xv.ppath.contains(l,N)!==null);if(A.length>1)throw new fUe.UsageError(`Your current branch contains multiple versioning files; this isn't supported: +`+re.stack)}finally{this.performanceData=V}}parseMessage(c){return JSON.parse(c)}toStringMessage(c){return c}getFormatOptions(c){return this.projectService.getFormatCodeOptions(c)}getPreferences(c){return this.projectService.getPreferences(c)}getHostFormatOptions(){return this.projectService.getHostFormatCodeOptions()}getHostPreferences(){return this.projectService.getHostPreferences()}};function dfn(s){let c=s.diagnosticsDuration&&Do(s.diagnosticsDuration,([g,d])=>({...d,file:g}));return{...s,diagnosticsDuration:c}}function kN(s,c){return{start:c.positionToLineOffset(s.start),end:c.positionToLineOffset(Rs(s))}}function lJt(s,c,g){let d=kN(s,g),h=c&&kN(c,g);return h?{...d,contextStart:h.start,contextEnd:h.end}:d}function tOs(s,c){return{start:pfn(c,s.span.start),end:pfn(c,Rs(s.span)),newText:s.newText}}function pfn(s,c){return rJt(s)?nOs(s.getLineAndCharacterOfPosition(c)):s.positionToLineOffset(c)}function rOs(s,c){let g=s.ranges.map(d=>({start:c.positionToLineOffset(d.start),end:c.positionToLineOffset(d.start+d.length)}));return s.wordPattern?{ranges:g,wordPattern:s.wordPattern}:{ranges:g}}function nOs(s){return{line:s.line+1,offset:s.character+1}}function iOs(s){pe.assert(s.textChanges.length===1);let c=ma(s.textChanges);return pe.assert(c.span.start===0&&c.span.length===0),{fileName:s.fileName,textChanges:[{start:{line:0,offset:0},end:{line:0,offset:0},newText:c.newText}]}}function uJt(s,c,g,d){let h=sOs(s,c,d),{line:_,character:S}=Ci(cA(h),g);return{line:_+1,offset:S+1}}function sOs(s,c,g){for(let{fileName:d,textChanges:h}of g)if(d===c)for(let _=h.length-1;_>=0;_--){let{newText:S,span:{start:R,length:T}}=h[_];s=s.slice(0,R)+S+s.slice(R+T)}return s}function ffn(s,{fileName:c,textSpan:g,contextSpan:d,isWriteAccess:h,isDefinition:_},{disableLineTextInReferences:S}){let R=pe.checkDefined(s.getScriptInfo(c)),T=lJt(g,d,R),W=S?void 0:oOs(R,T);return{file:c,...T,lineText:W,isWriteAccess:h,isDefinition:_}}function oOs(s,c){let g=s.lineToTextSpan(c.start.line-1);return s.getSnapshot().getText(g.start,Rs(g)).replace(/\r|\n/g,"")}function aOs(s){return s===void 0||s&&typeof s=="object"&&typeof s.exportName=="string"&&(s.fileName===void 0||typeof s.fileName=="string")&&(s.ambientModuleName===void 0||typeof s.ambientModuleName=="string"&&(s.isPackageJsonImport===void 0||typeof s.isPackageJsonImport=="boolean"))}var lse=4,gJt=(s=>(s[s.PreStart=0]="PreStart",s[s.Start=1]="Start",s[s.Entire=2]="Entire",s[s.Mid=3]="Mid",s[s.End=4]="End",s[s.PostEnd=5]="PostEnd",s))(gJt||{}),cOs=class{constructor(){this.goSubtree=!0,this.lineIndex=new a2e,this.endBranch=[],this.state=2,this.initialText="",this.trailingText="",this.lineIndex.root=new use,this.startPath=[this.lineIndex.root],this.stack=[this.lineIndex.root]}get done(){return!1}insertLines(s,c){c&&(this.trailingText=""),s?s=this.initialText+s+this.trailingText:s=this.initialText+this.trailingText;let d=a2e.linesFromText(s).lines;d.length>1&&d[d.length-1]===""&&d.pop();let h,_;for(let R=this.endBranch.length-1;R>=0;R--)this.endBranch[R].updateCounts(),this.endBranch[R].charCount()===0&&(_=this.endBranch[R],R>0?h=this.endBranch[R-1]:h=this.branchNode);_&&h.remove(_);let S=this.startPath[this.startPath.length-1];if(d.length>0)if(S.text=d[0],d.length>1){let R=new Array(d.length-1),T=S;for(let M=1;M=0;){let M=this.startPath[W];R=M.insertAt(T,R),W--,T=M}let V=R.length;for(;V>0;){let M=new use;M.add(this.lineIndex.root),R=M.insertAt(this.lineIndex.root,R),V=R.length,this.lineIndex.root=M}this.lineIndex.root.updateCounts()}else for(let R=this.startPath.length-2;R>=0;R--)this.startPath[R].updateCounts();else{this.startPath[this.startPath.length-2].remove(S);for(let T=this.startPath.length-2;T>=0;T--)this.startPath[T].updateCounts()}return this.lineIndex}post(s,c,g){g===this.lineCollectionAtBranch&&(this.state=4),this.stack.pop()}pre(s,c,g,d,h){let _=this.stack[this.stack.length-1];this.state===2&&h===1&&(this.state=1,this.branchNode=_,this.lineCollectionAtBranch=g);let S;function R(T){return T.isLeaf()?new lWe(""):new use}switch(h){case 0:this.goSubtree=!1,this.state!==4&&_.add(g);break;case 1:this.state===4?this.goSubtree=!1:(S=R(g),_.add(S),this.startPath.push(S));break;case 2:this.state!==4?(S=R(g),_.add(S),this.startPath.push(S)):g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 3:this.goSubtree=!1;break;case 4:this.state!==4?this.goSubtree=!1:g.isLeaf()||(S=R(g),_.add(S),this.endBranch.push(S));break;case 5:this.goSubtree=!1,this.state!==1&&_.add(g);break}this.goSubtree&&this.stack.push(S)}leaf(s,c,g){this.state===1?this.initialText=g.text.substring(0,s):this.state===2?(this.initialText=g.text.substring(0,s),this.trailingText=g.text.substring(s+c)):this.trailingText=g.text.substring(s+c)}},lOs=class{constructor(s,c,g){this.pos=s,this.deleteLen=c,this.insertedText=g}getTextChangeRange(){return $2(zd(this.pos,this.deleteLen),this.insertedText?this.insertedText.length:0)}},Fst=class yj{constructor(){this.changes=[],this.versions=new Array(yj.maxVersions),this.minVersion=0,this.currentVersion=0}versionToIndex(c){if(!(cthis.currentVersion))return c%yj.maxVersions}currentVersionToIndex(){return this.currentVersion%yj.maxVersions}edit(c,g,d){this.changes.push(new lOs(c,g,d)),(this.changes.length>yj.changeNumberThreshold||g>yj.changeLengthThreshold||d&&d.length>yj.changeLengthThreshold)&&this.getSnapshot()}getSnapshot(){return this._getSnapshot()}_getSnapshot(){let c=this.versions[this.currentVersionToIndex()];if(this.changes.length>0){let g=c.index;for(let d of this.changes)g=g.edit(d.pos,d.deleteLen,d.insertedText);c=new Ifn(this.currentVersion+1,this,g,this.changes),this.currentVersion=c.version,this.versions[this.currentVersionToIndex()]=c,this.changes=[],this.currentVersion-this.minVersion>=yj.maxVersions&&(this.minVersion=this.currentVersion-yj.maxVersions+1)}return c}getSnapshotVersion(){return this._getSnapshot().version}getAbsolutePositionAndLineText(c){return this._getSnapshot().index.lineNumberToInfo(c)}lineOffsetToPosition(c,g){return this._getSnapshot().index.absolutePositionOfStartOfLine(c)+(g-1)}positionToLineOffset(c){return this._getSnapshot().index.positionToLineOffset(c)}lineToTextSpan(c){let g=this._getSnapshot().index,{lineText:d,absolutePosition:h}=g.lineNumberToInfo(c+1),_=d!==void 0?d.length:g.absolutePositionOfStartOfLine(c+2)-h;return zd(h,_)}getTextChangesBetweenVersions(c,g){if(c=this.minVersion){let d=[];for(let h=c+1;h<=g;h++){let _=this.versions[this.versionToIndex(h)];for(let S of _.changesSincePreviousVersion)d.push(S.getTextChangeRange())}return z(d)}else return;else return Eo}getLineCount(){return this._getSnapshot().index.getLineCount()}static fromString(c){let g=new yj,d=new Ifn(0,g,new a2e);g.versions[g.currentVersion]=d;let h=a2e.linesFromText(c);return d.index.load(h.lines),g}};Fst.changeNumberThreshold=8,Fst.changeLengthThreshold=256,Fst.maxVersions=8;var Zst=Fst,Ifn=class JDi{constructor(c,g,d,h=zm){this.version=c,this.cache=g,this.index=d,this.changesSincePreviousVersion=h}getText(c,g){return this.index.getText(c,g-c)}getLength(){return this.index.getLength()}getChangeRange(c){if(c instanceof JDi&&this.cache===c.cache)return this.version<=c.version?Eo:this.cache.getTextChangesBetweenVersions(c.version,this.version)}},a2e=class zkr{constructor(){this.checkEdits=!1}absolutePositionOfStartOfLine(c){return this.lineNumberToInfo(c).absolutePosition}positionToLineOffset(c){let{oneBasedLine:g,zeroBasedColumn:d}=this.root.charOffsetToLineInfo(1,c);return{line:g,offset:d+1}}positionToColumnAndLineText(c){return this.root.charOffsetToLineInfo(1,c)}getLineCount(){return this.root.lineCount()}lineNumberToInfo(c){let g=this.getLineCount();if(c<=g){let{position:d,leaf:h}=this.root.lineNumberToInfo(c,0);return{absolutePosition:d,lineText:h&&h.text}}else return{absolutePosition:this.root.charCount(),lineText:void 0}}load(c){if(c.length>0){let g=[];for(let d=0;d0&&c{d=d.concat(S.text.substring(h,h+_))}}),d}getLength(){return this.root.charCount()}every(c,g,d){d||(d=this.root.charCount());let h={goSubtree:!0,done:!1,leaf(_,S,R){c(R,_,S)||(this.done=!0)}};return this.walk(g,d-g,h),!h.done}edit(c,g,d){if(this.root.charCount()===0)return pe.assert(g===0),d!==void 0?(this.load(zkr.linesFromText(d).lines),this):void 0;{let h;if(this.checkEdits){let R=this.getText(0,this.root.charCount());h=R.slice(0,c)+d+R.slice(c+g)}let _=new cOs,S=!1;if(c>=this.root.charCount()){c=this.root.charCount()-1;let R=this.getText(c,1);d?d=R+d:d=R,g=0,S=!0}else if(g>0){let R=c+g,{zeroBasedColumn:T,lineText:W}=this.positionToColumnAndLineText(R);T===0&&(g+=W.length,d=d?d+W:W)}if(this.root.walk(c,g,_),_.insertLines(d,S),this.checkEdits){let R=_.lineIndex.getText(0,_.lineIndex.getLength());pe.assert(h===R,"buffer edit mismatch")}return _.lineIndex}}static buildTreeFromBottom(c){if(c.length0?d[h]=_:d.pop(),{lines:d,lineMap:g}}},use=class qkr{constructor(c=[]){this.children=c,this.totalChars=0,this.totalLines=0,c.length&&this.updateCounts()}isLeaf(){return!1}updateCounts(){this.totalChars=0,this.totalLines=0;for(let c of this.children)this.totalChars+=c.charCount(),this.totalLines+=c.lineCount()}execWalk(c,g,d,h,_){return d.pre&&d.pre(c,g,this.children[h],this,_),d.goSubtree?(this.children[h].walk(c,g,d),d.post&&d.post(c,g,this.children[h],this,_)):d.goSubtree=!0,d.done}skipChild(c,g,d,h,_){h.pre&&!h.done&&(h.pre(c,g,this.children[d],this,_),h.goSubtree=!0)}walk(c,g,d){if(this.children.length===0)return;let h=0,_=this.children[h].charCount(),S=c;for(;S>=_;)this.skipChild(S,g,h,d,0),S-=_,h++,_=this.children[h].charCount();if(S+g<=_){if(this.execWalk(S,g,d,h,2))return}else{if(this.execWalk(S,_-S,d,h,1))return;let R=g-(_-S);for(h++,_=this.children[h].charCount();R>_;){if(this.execWalk(0,_,d,h,3))return;R-=_,h++,_=this.children[h].charCount()}if(R>0&&this.execWalk(0,R,d,h,4))return}if(d.pre){let R=this.children.length;if(hg)return _.isLeaf()?{oneBasedLine:c,zeroBasedColumn:g,lineText:_.text}:_.charOffsetToLineInfo(c,g);g-=_.charCount(),c+=_.lineCount()}let d=this.lineCount();if(d===0)return{oneBasedLine:1,zeroBasedColumn:0,lineText:void 0};let h=pe.checkDefined(this.lineNumberToInfo(d,0).leaf);return{oneBasedLine:d,zeroBasedColumn:h.charCount(),lineText:void 0}}lineNumberToInfo(c,g){for(let d of this.children){let h=d.lineCount();if(h>=c)return d.isLeaf()?{position:g,leaf:d}:d.lineNumberToInfo(c,g);c-=h,g+=d.charCount()}return{position:g,leaf:void 0}}splitAfter(c){let g,d=this.children.length;c++;let h=c;if(c=0;ee--)T[ee].children.length===0&&T.pop()}S&&T.push(S),this.updateCounts();for(let V=0;V{(this.packageInstalledPromise??(this.packageInstalledPromise=new Map)).set(this.packageInstallId,{resolve:h,reject:_})});return this.installer.send(g),d}attach(c){this.projectService=c,this.installer=this.createInstallerProcess()}onProjectClosed(c){this.installer.send({projectName:c.getProjectName(),kind:"closeProject"})}enqueueInstallTypingsRequest(c,g,d){let h=m4t(c,g,d);this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling throttled operation:${j3(h)}`),this.activeRequestCount0?this.activeRequestCount--:pe.fail("TIAdapter:: Received too many responses");!this.requestQueue.isEmpty();){let h=this.requestQueue.dequeue();if(this.requestMap.get(h.projectName)===h){this.requestMap.delete(h.projectName),this.scheduleRequest(h);break}this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Skipping defunct request for: ${h.projectName}`)}this.projectService.updateTypingsForProject(c),this.event(c,"setTypings");break}case n1e:this.projectService.watchTypingLocations(c);break;default:}}scheduleRequest(c){this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Scheduling request for: ${c.projectName}`),this.activeRequestCount++,this.host.setTimeout(()=>{this.logger.hasLevel(3)&&this.logger.info(`TIAdapter:: Sending request:${j3(c)}`),this.installer.send(c)},UDi.requestDelayMillis,`${c.projectName}::${c.kind}`)}};hfn.requestDelayMillis=100;var mfn=hfn,Cfn={};o(Cfn,{ActionInvalidate:()=>wVe,ActionPackageInstalled:()=>TVe,ActionSet:()=>BVe,ActionWatchTypingLocations:()=>n1e,Arguments:()=>lrt,AutoImportProviderProject:()=>P4t,AuxiliaryProject:()=>L4t,CharRangeSection:()=>gJt,CloseFileWatcherEvent:()=>Sst,CommandNames:()=>ifn,ConfigFileDiagEvent:()=>Cst,ConfiguredProject:()=>W4t,ConfiguredProjectLoadKind:()=>X4t,CreateDirectoryWatcherEvent:()=>Est,CreateFileWatcherEvent:()=>bst,Errors:()=>QF,EventBeginInstallTypes:()=>art,EventEndInstallTypes:()=>crt,EventInitializationFailed:()=>S5t,EventTypesRegistry:()=>ort,ExternalProject:()=>dst,GcTimer:()=>v4t,InferredProject:()=>Z4t,LargeFileReferencedEvent:()=>mst,LineIndex:()=>a2e,LineLeaf:()=>lWe,LineNode:()=>use,LogLevel:()=>I4t,Msg:()=>h4t,OpenFileInfoTelemetryEvent:()=>O4t,Project:()=>zz,ProjectInfoTelemetryEvent:()=>yst,ProjectKind:()=>fpe,ProjectLanguageServiceStateEvent:()=>_st,ProjectLoadingFinishEvent:()=>hst,ProjectLoadingStartEvent:()=>Ist,ProjectService:()=>tJt,ProjectsUpdatedInBackgroundEvent:()=>oWe,ScriptInfo:()=>R4t,ScriptVersionCache:()=>Zst,Session:()=>Afn,TextStorage:()=>T4t,ThrottledOperations:()=>S4t,TypingsInstallerAdapter:()=>mfn,allFilesAreJsOrDts:()=>x4t,allRootFilesAreJsOrDts:()=>k4t,asNormalizedPath:()=>Npn,convertCompilerOptions:()=>aWe,convertFormatOptions:()=>ase,convertScriptKindName:()=>Bst,convertTypeAcquisition:()=>H4t,convertUserPreferences:()=>Y4t,convertWatchOptions:()=>s2e,countEachFileTypes:()=>t2e,createInstallTypingsRequest:()=>m4t,createModuleSpecifierCache:()=>iJt,createNormalizedPathMap:()=>Dpn,createPackageJsonCache:()=>sJt,createSortedArray:()=>E4t,emptyArray:()=>zm,findArgument:()=>Nnn,formatDiagnosticToProtocol:()=>o2e,formatMessage:()=>oJt,getBaseConfigFileName:()=>Ast,getDetailWatchInfo:()=>Nst,getLocationInNewDocument:()=>uJt,hasArgument:()=>Rnn,hasNoTypeScriptSource:()=>G4t,indent:()=>Wde,isBackgroundProject:()=>n2e,isConfigFile:()=>rJt,isConfiguredProject:()=>s9,isDynamicFileName:()=>ppe,isExternalProject:()=>r2e,isInferredProject:()=>ose,isInferredProjectName:()=>C4t,isProjectDeferredClose:()=>i2e,makeAutoImportProviderProjectName:()=>y4t,makeAuxiliaryProjectName:()=>b4t,makeInferredProjectName:()=>_4t,maxFileSize:()=>fst,maxProgramSizeForNonTsFiles:()=>pst,normalizedPathToPath:()=>sse,nowString:()=>Dnn,nullCancellationToken:()=>tfn,nullTypingsInstaller:()=>cWe,protocol:()=>B4t,scriptInfoIsContainedByBackgroundProject:()=>N4t,scriptInfoIsContainedByDeferredClosedProject:()=>D4t,stringifyIndented:()=>j3,toEvent:()=>aJt,toNormalizedPath:()=>op,tryConvertScriptKindName:()=>vst,typingsInstaller:()=>f4t,updateProjectIfDirty:()=>_v}),typeof console<"u"&&(pe.loggingHost={log(s,c){switch(s){case 1:return console.error(c);case 2:return console.warn(c);case 3:return console.log(c);case 4:return console.log(c)}}})})({get exports(){return ODi},set exports(e){ODi=e,typeof UEt<"u"&&UEt.exports&&(UEt.exports=e)}})});var bxr=H((nZu,fxi)=>{"use strict";fxi.exports=function(t,r){r===!0&&(r=0);var n="";if(typeof t=="string")try{n=new URL(t).protocol}catch{}else t&&t.constructor===URL&&(n=t.protocol);var a=n.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var hxi=H((iZu,Ixi)=>{"use strict";var dpc=bxr();function ppc(e){var t={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:e,query:{},parse_failed:!1};try{var r=new URL(e);t.protocols=dpc(r),t.protocol=t.protocols[0],t.port=r.port,t.resource=r.hostname,t.host=r.host,t.user=r.username||"",t.password=r.password||"",t.pathname=r.pathname,t.hash=r.hash.slice(1),t.search=r.search.slice(1),t.href=r.href,t.query=Object.fromEntries(r.searchParams)}catch{t.protocols=["file"],t.protocol=t.protocols[0],t.port="",t.resource="",t.user="",t.pathname="",t.hash="",t.search="",t.href=e,t.query={},t.parse_failed=!0}return t}Ixi.exports=ppc});var _xi=H((sZu,Cxi)=>{"use strict";var fpc=hxi();function Ipc(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var hpc=Ipc(fpc),mpc="text/plain",Cpc="us-ascii",mxi=(e,t)=>t.some(r=>r instanceof RegExp?r.test(e):r===e),_pc=(e,{stripHash:t})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(e);if(!r)throw new Error(`Invalid URL: ${e}`);let{type:n,data:a,hash:o}=r.groups,l=n.split(";");o=t?"":o;let A=!1;l[l.length-1]==="base64"&&(l.pop(),A=!0);let f=(l.shift()||"").toLowerCase(),C=[...l.map(b=>{let[E,N=""]=b.split("=").map(B=>B.trim());return E==="charset"&&(N=N.toLowerCase(),N===Cpc)?"":`${E}${N?`=${N}`:""}`}).filter(Boolean)];return A&&C.push("base64"),(C.length>0||f&&f!==mpc)&&C.unshift(f),`data:${C.join(";")},${A?a.trim():a}${o?`#${o}`:""}`};function ypc(e,t){if(t={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...t},e=e.trim(),/^data:/i.test(e))return _pc(e,t);if(/^view-source:/i.test(e))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=e.startsWith("//");!r&&/^\.*\//.test(e)||(e=e.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,t.defaultProtocol));let a=new URL(e);if(t.forceHttp&&t.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(t.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),t.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),t.stripAuthentication&&(a.username="",a.password=""),t.stripHash?a.hash="":t.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let l=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,f="";for(;;){let C=l.exec(a.pathname);if(!C)break;let b=C[0],E=C.index,N=a.pathname.slice(A,E);f+=N.replace(/\/{2,}/g,"/"),f+=b,A=E+b.length}let I=a.pathname.slice(A,a.pathname.length);f+=I.replace(/\/{2,}/g,"/"),a.pathname=f}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(t.removeDirectoryIndex===!0&&(t.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(t.removeDirectoryIndex)&&t.removeDirectoryIndex.length>0){let l=a.pathname.split("/"),A=l[l.length-1];mxi(A,t.removeDirectoryIndex)&&(l=l.slice(0,-1),a.pathname=l.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),t.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(t.removeQueryParameters))for(let l of[...a.searchParams.keys()])mxi(l,t.removeQueryParameters)&&a.searchParams.delete(l);if(t.removeQueryParameters===!0&&(a.search=""),t.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}t.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let o=e;return e=a.toString(),!t.removeSingleSlash&&a.pathname==="/"&&!o.endsWith("/")&&a.hash===""&&(e=e.replace(/\/$/,"")),(t.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&t.removeSingleSlash&&(e=e.replace(/\/$/,"")),r&&!t.normalizeProtocol&&(e=e.replace(/^http:\/\//,"//")),t.stripProtocol&&(e=e.replace(/^(?:https?:)?\/\//,"")),e}var Exr=(e,t=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,n=o=>{let l=new Error(o);throw l.subject_url=e,l};(typeof e!="string"||!e.trim())&&n("Invalid url."),e.length>Exr.MAX_INPUT_LENGTH&&n("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),t&&(typeof t!="object"&&(t={stripHash:!1}),e=ypc(e,t));let a=hpc.default(e);if(a.parse_failed){let o=a.href.match(r);o?(a.protocols=["ssh"],a.protocol="ssh",a.resource=o[2],a.host=o[2],a.user=o[1],a.pathname=`/${o[3]}`,a.parse_failed=!1):n("URL parsing failed.")}return a};Exr.MAX_INPUT_LENGTH=2048;Cxi.exports=Exr});var Exi=H((oZu,bxi)=>{"use strict";var bpc=bxr();function yxi(e){if(Array.isArray(e))return e.indexOf("ssh")!==-1||e.indexOf("rsync")!==-1;if(typeof e!="string")return!1;var t=bpc(e);if(e=e.substring(e.indexOf("://")+3),yxi(t))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!e.match(r)&&e.indexOf("@"){"use strict";var Epc=_xi(),Sxi=Exi();function Spc(e){var t=Epc(e);return t.token="",t.password==="x-oauth-basic"?t.token=t.user:t.user==="x-token-auth"&&(t.token=t.password),Sxi(t.protocols)||t.protocols.length===0&&Sxi(e)?t.protocol="ssh":t.protocols.length?t.protocol=t.protocols[0]:(t.protocol="file",t.protocols=["file"]),t.href=t.href.replace(/\/$/,""),t}vxi.exports=Spc});var Txi=H((cZu,wxi)=>{"use strict";var vpc=Bxi();function Sxr(e){if(typeof e!="string")throw new Error("The url must be a string.");var t=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;t.test(e)&&(e="https://github.com/"+e);var r=vpc(e),n=r.resource.split("."),a=null;switch(r.toString=function(Q){return Sxr.stringify(this,Q)},r.source=n.length>2?n.slice(1-n.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=n[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var o=a.length-1;if(a.length>=2){var l=a.indexOf("-",2),A=a.indexOf("blob",2),f=a.indexOf("tree",2),I=a.indexOf("commit",2),C=a.indexOf("src",2),b=a.indexOf("raw",2),E=a.indexOf("edit",2);o=l>0?l-1:A>0?A-1:f>0?f-1:I>0?I-1:C>0?C-1:b>0?b-1:E>0?E-1:o,r.owner=a.slice(0,o).join("/"),r.name=a[o],I&&(r.commit=a[o+2])}r.ref="",r.filepathtype="",r.filepath="";var N=a.length>o&&a[o+1]==="-"?o+1:o;a.length>N+2&&["raw","src","blob","tree","edit"].indexOf(a[N+1])>=0&&(r.filepathtype=a[N+1],r.ref=a[N+2],a.length>N+3&&(r.filepath=a.slice(N+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var B=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,F=B.exec(r.pathname);return F!=null&&(r.source="bitbucket-server",F[1]==="users"?r.owner="~"+F[2]:r.owner=F[2],r.organization=r.owner,r.name=F[3],a=F[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Sxr.stringify=function(e,t){t=t||(e.protocols&&e.protocols.length?e.protocols.join("+"):e.protocol);var r=e.port?":"+e.port:"",n=e.user||"git",a=e.git_suffix?".git":"";switch(t){case"ssh":return r?"ssh://"+n+"@"+e.resource+r+"/"+e.full_name+a:n+"@"+e.resource+":"+e.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return t+"://"+n+"@"+e.resource+r+"/"+e.full_name+a;case"http":case"https":var o=e.token?Bpc(e):e.user&&(e.protocols.includes("http")||e.protocols.includes("https"))?e.user+"@":"";return t+"://"+o+e.resource+r+"/"+wpc(e)+a;default:return e.href}};function Bpc(e){switch(e.source){case"bitbucket.org":return"x-token-auth:"+e.token+"@";default:return e.token+"@"}}function wpc(e){switch(e.source){case"bitbucket-server":return"scm/"+e.full_name;default:return""+e.full_name}}wxi.exports=Sxr});var Nxi=H(Bxr=>{"use strict";Object.defineProperty(Bxr,"__esModule",{value:!0});Bxr.tryParseGitURL=Rpc;function vxr(e,t,r){let n=e.indexOf(r);return e.lastIndexOf(t,n>-1?n:1/0)}function Rxi(e){try{return new URL(e)}catch{return}}function Tpc(e){let t=vxr(e,"@","#"),r=vxr(e,":","#");return r>t&&(e=`${e.slice(0,r)}/${e.slice(r+1)}`),vxr(e,":","#")===-1&&e.indexOf("//")===-1&&(e=`ssh://${e}`),e}function Rpc(e){return Rxi(e)||Rxi(Tpc(e))}});var Dxi=H(wxr=>{"use strict";Object.defineProperty(wxr,"__esModule",{value:!0});wxr.normalizeRepoUrl=Dpc;var Npc=Nxi();function Dpc(e,{git:t=!1}={}){if(e=e.replace(/^git\+https:/,"https:"),e=e.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),e=e.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),t){let r=(0,Npc.tryParseGitURL)(e);r&&(e=r.href),e=e.replace(/^git\+([^:]+):/,"$1:")}return e}});var o1t=H(Xk=>{"use strict";Object.defineProperty(Xk,"__esModule",{value:!0});Xk.TreeishProtocols=Xk.normalizeRepoUrl=void 0;Xk.isGitUrl=Fpc;Xk.splitRepoUrl=s1t;Xk.normalizeLocator=Zpc;Xk.validateRepoUrl=Nxr;Xk.lsRemote=Gxi;Xk.resolveUrl=Lpc;Xk.clone=Vpc;Xk.fetchRoot=Fxi;Xk.fetchBase=Zxi;Xk.fetchChangedFiles=Lxi;Xk.fetchChangedWorkspaces=Ppc;var Rxr=(Pa(),vi(Va)),Ey=Bn(),qZ=no(),i1t=($c(),vi(rg)),kpc=kW(),xpc=Rxr.__importDefault(Txi()),dUe=Rxr.__importDefault(wt("querystring")),kxi=Rxr.__importDefault(UC()),pUe=Dxi();Object.defineProperty(Xk,"normalizeRepoUrl",{enumerable:!0,get:function(){return pUe.normalizeRepoUrl}});function xxi(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Gpc=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],_O;(function(e){e.Commit="commit",e.Head="head",e.Tag="tag",e.Semver="semver"})(_O||(Xk.TreeishProtocols=_O={}));function Fpc(e){return e?Gpc.some(t=>!!e.match(t)):!1}function s1t(e){e=(0,pUe.normalizeRepoUrl)(e);let t=e.indexOf("#");if(t===-1)return{repo:e,treeish:{protocol:_O.Head,request:"HEAD"},extra:{}};let r=e.slice(0,t),n=e.slice(t+1);if(n.match(/^[a-z]+=/)){let a=dUe.default.parse(n);for(let[f,I]of Object.entries(a))if(typeof I!="string")throw new Error(`Assertion failed: The ${f} parameter must be a literal string`);let o=Object.values(_O).find(f=>Object.hasOwn(a,f)),[l,A]=typeof o<"u"?[o,a[o]]:[_O.Head,"HEAD"];for(let f of Object.values(_O))delete a[f];return{repo:r,treeish:{protocol:l,request:A},extra:a}}else{let a=n.indexOf(":"),[o,l]=a===-1?[null,n]:[n.slice(0,a),n.slice(a+1)];return{repo:r,treeish:{protocol:o,request:l},extra:{}}}}function Zpc(e){return Ey.structUtils.makeLocator(e,(0,pUe.normalizeRepoUrl)(e.reference))}function Nxr(e,{configuration:t}){let{repo:r}=s1t(e),n=(0,pUe.normalizeRepoUrl)(r,{git:!0});if(!Ey.httpUtils.getNetworkSettings(`https://${(0,xpc.default)(n).resource}`,{configuration:t}).enableNetwork)throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because of your configuration settings`);let o=Ey.miscUtils.buildIgnorePattern(t.get("approvedGitRepositories"));if(o===null||!n.match(o))throw new Ey.ReportError(Ey.MessageName.NETWORK_DISABLED,`Request to '${n}' has been blocked because it doesn't match any of the patterns in 'approvedGitRepositories'`);return n}async function Gxi(e,t){let r=Nxr(e,{configuration:t}),n=await Txr("listing refs",["ls-remote",r],{cwd:t.startingCwd,env:xxi()},{configuration:t,normalizedRepoUrl:r}),a=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,l;for(;(l=o.exec(n.stdout))!==null;)a.set(l[2],l[1]);return a}async function Lpc(e,t){let{repo:r,treeish:{protocol:n,request:a},extra:o}=s1t(e),l=await Gxi(r,t),A=(I,C)=>{switch(I){case _O.Commit:{if(!C.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return dUe.default.stringify({...o,commit:C})}case _O.Head:{let b=l.get(C==="HEAD"?C:`refs/heads/${C}`);if(typeof b>"u")throw new Error(`Unknown head ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Tag:{let b=l.get(`refs/tags/${C}`);if(typeof b>"u")throw new Error(`Unknown tag ("${C}")`);return dUe.default.stringify({...o,commit:b})}case _O.Semver:{let b=Ey.semverUtils.validRange(C);if(!b)throw new Error(`Invalid range ("${C}")`);let E=new Map([...l.entries()].filter(([B])=>B.startsWith("refs/tags/")).map(([B,F])=>[kxi.default.parse(B.slice(10)),F]).filter(B=>B[0]!==null)),N=kxi.default.maxSatisfying([...E.keys()],b);if(N===null)throw new Error(`No matching range ("${C}")`);return dUe.default.stringify({...o,commit:E.get(N)})}case null:{let b;if((b=f(_O.Commit,C))!==null||(b=f(_O.Tag,C))!==null||(b=f(_O.Head,C))!==null)return b;throw C.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${C}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${I}")`)}},f=(I,C)=>{try{return A(I,C)}catch{return null}};return(0,pUe.normalizeRepoUrl)(`${r}#${A(n,a)}`)}async function Vpc(e,t){return await t.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:n,request:a}}=s1t(e);if(n!=="commit")throw new Error("Invalid treeish protocol when cloning");let o=Nxr(r,{configuration:t}),l=await qZ.xfs.mktempPromise(),A={cwd:l,env:xxi()};return await Txr("cloning the repository",["clone","-c","core.autocrlf=false",o,qZ.npath.fromPortablePath(l)],A,{configuration:t,normalizedRepoUrl:o}),await Txr("switching branch",["checkout",`${a}`],A,{configuration:t,normalizedRepoUrl:o}),l})}async function Fxi(e){let t,r=e;do{if(t=r,await qZ.xfs.existsPromise(qZ.ppath.join(t,".git")))return t;r=qZ.ppath.dirname(t)}while(r!==t);return null}async function Zxi(e,{baseRefs:t}){if(t.length===0)throw new i1t.UsageError("Can't run this command with zero base refs specified.");let r=[];for(let A of t){let{code:f}=await Ey.execUtils.execvp("git",["merge-base",A,"HEAD"],{cwd:e});f===0&&r.push(A)}if(r.length===0)throw new i1t.UsageError(`No ancestor could be found between any of HEAD and ${t.join(", ")}`);let{stdout:n}=await Ey.execUtils.execvp("git",["merge-base","HEAD",...r],{cwd:e,strict:!0}),a=n.trim(),{stdout:o}=await Ey.execUtils.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:e,strict:!0}),l=o.trim();return{hash:a,title:l}}async function Lxi(e,{base:t,project:r}){let n=Ey.miscUtils.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ey.execUtils.execvp("git",["diff","--name-only",`${t}`],{cwd:e,strict:!0}),o=a.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),{stdout:l}=await Ey.execUtils.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:e,strict:!0}),A=l.split(/\r\n|\r|\n/).filter(I=>I.length>0).map(I=>qZ.ppath.resolve(e,qZ.npath.toPortablePath(I))),f=[...new Set([...o,...A].sort())];return n?f.filter(I=>!qZ.ppath.relative(r.cwd,I).match(n)):f}async function Ppc({ref:e,project:t}){if(t.configuration.projectCwd===null)throw new i1t.UsageError("This command can only be run from within a Yarn project");let r=[qZ.ppath.resolve(t.cwd,qZ.Filename.lockfile),qZ.ppath.resolve(t.cwd,t.configuration.get("cacheFolder")),qZ.ppath.resolve(t.cwd,t.configuration.get("installStatePath")),qZ.ppath.resolve(t.cwd,t.configuration.get("virtualFolder"))];await t.configuration.triggerHook(l=>l.populateYarnPaths,t,l=>{l!=null&&r.push(l)});let n=await Fxi(t.configuration.projectCwd);if(n==null)throw new i1t.UsageError("This command can only be run on Git repositories");let a=await Zxi(n,{baseRefs:typeof e=="string"?[e]:t.configuration.get("changesetBaseRefs")}),o=await Lxi(n,{base:a.hash,project:t});return new Set(Ey.miscUtils.mapAndFilter(o,l=>{let A=t.tryWorkspaceByFilePath(l);return A===null||r.some(f=>l.startsWith(f))?Ey.miscUtils.mapAndFilter.skip:A}))}async function Txr(e,t,r,{configuration:n,normalizedRepoUrl:a}){try{return await Ey.execUtils.execvp("git",t,{...r,strict:!0})}catch(o){if(!(o instanceof Ey.execUtils.ExecError))throw o;let l=o.reportExtra,A=o.stderr.toString();throw new Ey.ReportError(Ey.MessageName.EXCEPTION,`Failed ${e}`,f=>{f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:"Repository URL",value:Ey.formatUtils.tuple(Ey.formatUtils.Type.URL,a)})}`);for(let I of A.matchAll(/^(.+?): (.*)$/gm)){let[,C,b]=I;C=C.toLowerCase();let E=C==="error"?"Error":`${(0,kpc.capitalize)(C)} Error`;f.reportError(Ey.MessageName.EXCEPTION,` ${Ey.formatUtils.prettyField(n,{label:E,value:Ey.formatUtils.tuple(Ey.formatUtils.Type.NO_HINT,b)})}`)}l?.(f)})}}});var Vxi=H(c1t=>{"use strict";Object.defineProperty(c1t,"__esModule",{value:!0});c1t.GitFetcher=void 0;var Wpc=(Pa(),vi(Va)),tDe=Bn(),a1t=no(),Dxr=Wpc.__importStar(o1t()),kxr=class{supports(t,r){return Dxr.isGitUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,a=new Map(r.checksums);a.set(t.locatorHash,n);let o={...r,checksums:a},l=await this.downloadHosted(t,o);if(l!==null)return l;let[A,f,I]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${tDe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(t,o),...r.cacheOptions});return{packageFs:A,releaseFs:f,prefixPath:tDe.structUtils.getIdentVendorPath(t),checksum:I}}async downloadHosted(t,r){return r.project.configuration.reduceHook(n=>n.fetchHostedRepository,null,t,r)}async cloneFromRemote(t,r){let n=Dxr.splitRepoUrl(t.reference),a=await Dxr.clone(t.reference,r.project.configuration),o=a1t.ppath.resolve(a,n.extra.cwd??a1t.PortablePath.dot),l=a1t.ppath.join(o,"package.tgz");await tDe.scriptUtils.prepareExternalProject(o,l,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:t});let A=await a1t.xfs.readFilePromise(l);return await tDe.miscUtils.releaseAfterUseAsync(async()=>await tDe.tgzUtils.convertToZip(A,{configuration:r.project.configuration,prefixPath:tDe.structUtils.getIdentVendorPath(t),stripComponents:1}))}};c1t.GitFetcher=kxr});var Wxi=H(l1t=>{"use strict";Object.defineProperty(l1t,"__esModule",{value:!0});l1t.GitResolver=void 0;var Opc=(Pa(),vi(Va)),Pxi=Bn(),Mpc=Bn(),Hpc=Bn(),rDe=Opc.__importStar(o1t()),xxr=class{supportsDescriptor(t,r){return rDe.isGitUrl(t.range)}supportsLocator(t,r){return rDe.isGitUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=await rDe.resolveUrl(t.range,n.project.configuration);return[Pxi.structUtils.makeLocator(t,a)]}async getSatisfying(t,r,n,a){let o=rDe.splitRepoUrl(t.range);return{locators:n.filter(A=>{if(A.identHash!==t.identHash)return!1;let f=rDe.splitRepoUrl(A.reference);return!(o.repo!==f.repo||o.treeish.protocol===rDe.TreeishProtocols.Commit&&o.treeish.request!==f.treeish.request)}),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Pxi.miscUtils.releaseAfterUseAsync(async()=>await Hpc.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:Mpc.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};l1t.GitResolver=xxr});var nDe=H(Mee=>{"use strict";Object.defineProperty(Mee,"__esModule",{value:!0});Mee.GitResolver=Mee.GitFetcher=Mee.gitUtils=void 0;var Ypc=(Pa(),vi(Va)),u1t=Bn(),Oxi=Vxi();Object.defineProperty(Mee,"GitFetcher",{enumerable:!0,get:function(){return Oxi.GitFetcher}});var Mxi=Wxi();Object.defineProperty(Mee,"GitResolver",{enumerable:!0,get:function(){return Mxi.GitResolver}});var Qpc=Ypc.__importStar(o1t());Mee.gitUtils=Qpc;var Xpc={configuration:{approvedGitRepositories:{description:"Array of git repository URL glob patterns that are allowed to be fetched",type:u1t.SettingsType.STRING,default:[],isArray:!0},changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:u1t.SettingsType.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:u1t.SettingsType.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:u1t.SettingsType.NUMBER,default:2}},fetchers:[Oxi.GitFetcher],resolvers:[Mxi.GitResolver]};Mee.default=Xpc});var hUe=H(GG=>{"use strict";Object.defineProperty(GG,"__esModule",{value:!0});GG.Decision=void 0;GG.validateReleaseDecision=IUe;GG.resolveVersionFiles=jpc;GG.clearVersionFiles=zpc;GG.updateVersionFiles=qpc;GG.openVersionFile=$pc;GG.requireMoreDecisions=efc;GG.getUndecidedWorkspaces=Hxi;GG.getUndecidedDependentWorkspaces=Yxi;GG.suggestStrategy=tfc;GG.applyStrategy=Fxr;GG.applyReleases=rfc;GG.applyPrerelease=Qxi;var Jpc=(Pa(),vi(Va)),PE=Bn(),Xv=no(),pCe=TW(),Gxr=nDe(),fUe=($c(),vi(rg)),Upc=kW(),Hee=Jpc.__importDefault(UC()),Kpc=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,aH;(function(e){e.UNDECIDED="undecided",e.DECLINE="decline",e.MAJOR="major",e.MINOR="minor",e.PATCH="patch",e.PREMAJOR="premajor",e.PREMINOR="preminor",e.PREPATCH="prepatch",e.PRERELEASE="prerelease"})(aH||(GG.Decision=aH={}));function IUe(e){let t=Hee.default.valid(e);return t||PE.miscUtils.validateEnum((0,Upc.omit)(aH,"UNDECIDED"),e)}async function jpc(e,{prerelease:t=null}={}){let r=new Map,n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return r;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A);for(let[I,C]of Object.entries(f.releases||{})){if(C===aH.DECLINE)continue;let b=PE.structUtils.parseIdent(I),E=e.tryWorkspaceByIdent(b);if(E===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${Xv.ppath.basename(l)} references ${I})`);if(E.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${PE.structUtils.prettyLocator(e.configuration,E.anchoredLocator)})`);let N=E.manifest.raw.stableVersion??E.manifest.version,B=r.get(E),F=aH.PRERELEASE===C?Fxr(E.manifest.version,IUe(C)):Fxr(N,IUe(C));if(F===null)throw new Error(`Assertion failed: Expected ${N} to support being bumped via strategy ${C}`);let Q=typeof B<"u"?Hee.default.gt(F,B)?F:B:F;r.set(E,Q)}}return t&&(r=new Map([...r].map(([o,l])=>[o,Qxi(l,{current:o.manifest.version,prerelease:t})]))),r}async function zpc(e){let t=e.configuration.get("deferredVersionFolder");Xv.xfs.existsSync(t)&&await Xv.xfs.removePromise(t)}async function qpc(e,t){let r=new Set(t),n=e.configuration.get("deferredVersionFolder");if(!Xv.xfs.existsSync(n))return;let a=await Xv.xfs.readdirPromise(n);for(let o of a){if(!o.endsWith(".yml"))continue;let l=Xv.ppath.join(n,o),A=await Xv.xfs.readFilePromise(l,"utf8"),f=(0,pCe.parseSyml)(A),I=f?.releases;if(I){for(let C of Object.keys(I)){let b=PE.structUtils.parseIdent(C),E=e.tryWorkspaceByIdent(b);(E===null||r.has(E))&&delete f.releases[C]}Object.keys(f.releases).length>0?await Xv.xfs.changeFilePromise(l,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering(f))):await Xv.xfs.unlinkPromise(l)}}}async function $pc(e,{allowEmpty:t=!1}={}){let r=e.configuration;if(r.projectCwd===null)throw new fUe.UsageError("This command can only be run from within a Yarn project");let n=await Gxr.gitUtils.fetchRoot(r.projectCwd),a=n!==null?await Gxr.gitUtils.fetchBase(n,{baseRefs:r.get("changesetBaseRefs")}):null,o=n!==null?await Gxr.gitUtils.fetchChangedFiles(n,{base:a.hash,project:e}):[],l=r.get("deferredVersionFolder"),A=o.filter(N=>Xv.ppath.contains(l,N)!==null);if(A.length>1)throw new fUe.UsageError(`Your current branch contains multiple versioning files; this isn't supported: - ${A.map(N=>Xv.npath.fromPortablePath(N)).join(` -- `)}`);let f=new Set(PE.miscUtils.mapAndFilter(o,N=>{let B=e.tryWorkspaceByFilePath(N);return B===null?PE.miscUtils.mapAndFilter.skip:B}));if(A.length===0&&f.size===0&&!t)return null;let I=A.length===1?A[0]:Xv.ppath.join(l,`${PE.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),C=Xv.xfs.existsSync(I)?await Xv.xfs.readFilePromise(I,"utf8"):"{}",b=(0,pCe.parseSyml)(C),E=new Map;for(let N of b.declined||[]){let B=PE.structUtils.parseIdent(N),F=e.getWorkspaceByIdent(B);E.set(F,aH.DECLINE)}for(let[N,B]of Object.entries(b.releases||{})){let F=PE.structUtils.parseIdent(N),Q=e.getWorkspaceByIdent(F);E.set(Q,IUe(B))}return{project:e,root:n,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(o),changedWorkspaces:f,releaseRoots:new Set([...f].filter(N=>N.manifest.version!==null)),releases:E,async saveAll(){let N={},B=[],F=[];for(let Q of e.workspaces){if(Q.manifest.version===null)continue;let X=PE.structUtils.stringifyIdent(Q.anchoredLocator),ae=E.get(Q);ae===aH.DECLINE?B.push(X):typeof ae<"u"?N[X]=IUe(ae):f.has(Q)&&F.push(X)}await Xv.xfs.mkdirPromise(Xv.ppath.dirname(I),{recursive:!0}),await Xv.xfs.changeFilePromise(I,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering({releases:Object.keys(N).length>0?N:void 0,declined:B.length>0?B:void 0,undecided:F.length>0?F:void 0})))}}}function $pc(e){return Hxi(e).size>0||Yxi(e).length>0}function Hxi(e){let t=new Set;for(let r of e.changedWorkspaces)r.manifest.version!==null&&(e.releases.has(r)||t.add(r));return t}function Yxi(e,{include:t=new Set}={}){let r=[],n=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l===aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o])),a=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l!==aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o]));for(let o of e.project.workspaces)if(!(!t.has(o)&&(a.has(o.anchoredLocator.locatorHash)||n.has(o.anchoredLocator.locatorHash)))&&o.manifest.version!==null)for(let l of PE.Manifest.hardDependencies)for(let A of o.manifest.getForScope(l).values()){let f=e.project.tryWorkspaceByDescriptor(A);f!==null&&n.has(f.anchoredLocator.locatorHash)&&r.push([o,f])}return r}function efc(e,t){let r=Hee.default.clean(t);for(let n of Object.values(aH))if(n!==aH.UNDECIDED&&n!==aH.DECLINE&&Hee.default.inc(e,n)===r)return n;return null}function Fxr(e,t){if(Hee.default.valid(t))return t;if(e===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" unless the workspace already has a valid version`);if(!Hee.default.valid(e))throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on a non-semver version (${e})`);let r=Hee.default.inc(e,t);if(r===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on the specified version (${e})`);return r}function tfc(e,t,{report:r,exact:n}){let a=new Map;for(let o of e.workspaces)for(let l of PE.Manifest.allDependencies)for(let A of o.manifest[l].values()){let f=e.tryWorkspaceByDescriptor(A);if(f===null||!t.has(f))continue;PE.miscUtils.getArrayWithDefault(a,f).push([o,l,A.identHash])}for(let[o,l]of t){let A=o.manifest.version;o.manifest.version=l,Hee.default.prerelease(l)===null?delete o.manifest.raw.stableVersion:o.manifest.raw.stableVersion||(o.manifest.raw.stableVersion=A);let f=o.manifest.name!==null?PE.structUtils.stringifyIdent(o.manifest.name):null;r.reportInfo(PE.MessageName.UNNAMED,`${PE.structUtils.prettyLocator(e.configuration,o.anchoredLocator)}: Bumped to ${l}`),r.reportJson({cwd:Xv.npath.fromPortablePath(o.cwd),ident:f,oldVersion:A,newVersion:l});let I=a.get(o);if(!(typeof I>"u"))for(let[C,b,E]of I){let N=C.manifest[b].get(E);if(typeof N>"u")throw new Error("Assertion failed: The dependency should have existed");let B=N.range,F=!1;if(B.startsWith(PE.WorkspaceResolver.protocol)&&(B=B.slice(PE.WorkspaceResolver.protocol.length),F=!0,B===o.relativeCwd))continue;let Q=B.match(Upc);if(!Q){r.reportWarning(PE.MessageName.UNNAMED,`Couldn't auto-upgrade range ${B} (in ${PE.structUtils.prettyLocator(e.configuration,C.anchoredLocator)})`);continue}let X=n?`${l}`:`${Q[1]}${l}`;F&&(X=`${PE.WorkspaceResolver.protocol}${X}`);let ae=PE.structUtils.makeDescriptor(N,X);C.manifest[b].set(E,ae)}}}var rfc=new Map([["%n",{extract:e=>e.length>=1?[e[0],e.slice(1)]:null,generate:(e=0)=>`${e+1}`}]]);function Qxi(e,{current:t,prerelease:r}){let n=new Hee.default.SemVer(t),a=n.prerelease.slice(),o=[];n.prerelease=[],n.format()!==e&&(a.length=0);let l=!0,A=r.split(/\./g);for(let f of A){let I=rfc.get(f);if(typeof I>"u")o.push(f),a[0]===f?a.shift():l=!1;else{let C=l?I.extract(a):null;C!==null&&typeof C[0]=="number"?(o.push(I.generate(C[0])),a=C[1]):(o.push(I.generate()),l=!1)}}return n.prerelease&&(n.prerelease=[]),`${e}-${o.join(".")}`}});var Uxi=H(Lxr=>{"use strict";Object.defineProperty(Lxr,"__esModule",{value:!0});var nfc=(Pa(),vi(Va)),Xxi=el(),Zxr=Bn(),Jxi=Bn(),fCe=($c(),vi(rg)),g1t=nfc.__importStar(hUe()),mUe=class extends Xxi.BaseCommand{constructor(){super(...arguments),this.all=fCe.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"}),this.dryRun=fCe.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"}),this.prerelease=fCe.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0}),this.exact=fCe.Option.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."}),this.recursive=fCe.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"}),this.json=fCe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Zxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Jxi.Project.find(t,this.context.cwd),a=await Zxr.Cache.find(t);if(!n)throw new Xxi.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=await Jxi.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,f=await g1t.resolveVersionFiles(r,{prerelease:A}),I=new Map;if(this.all)I=f;else{let C=this.recursive?n.getRecursiveWorkspaceDependencies():[n];for(let b of C){let E=f.get(b);typeof E<"u"&&I.set(b,E)}}if(I.size===0){let C=f.size>0?" Did you want to add --all?":"";l.reportWarning(Zxr.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${C}`);return}g1t.applyReleases(r,I,{report:l,exact:this.exact}),this.dryRun||(A||(this.all?await g1t.clearVersionFiles(r):await g1t.updateVersionFiles(r,[...I.keys()])),l.reportSeparator())});return this.dryRun||o.hasErrors()?o.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};mUe.paths=[["version","apply"]];mUe.usage=fCe.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` +- `)}`);let f=new Set(PE.miscUtils.mapAndFilter(o,N=>{let B=e.tryWorkspaceByFilePath(N);return B===null?PE.miscUtils.mapAndFilter.skip:B}));if(A.length===0&&f.size===0&&!t)return null;let I=A.length===1?A[0]:Xv.ppath.join(l,`${PE.hashUtils.makeHash(Math.random().toString()).slice(0,8)}.yml`),C=Xv.xfs.existsSync(I)?await Xv.xfs.readFilePromise(I,"utf8"):"{}",b=(0,pCe.parseSyml)(C),E=new Map;for(let N of b.declined||[]){let B=PE.structUtils.parseIdent(N),F=e.getWorkspaceByIdent(B);E.set(F,aH.DECLINE)}for(let[N,B]of Object.entries(b.releases||{})){let F=PE.structUtils.parseIdent(N),Q=e.getWorkspaceByIdent(F);E.set(Q,IUe(B))}return{project:e,root:n,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(o),changedWorkspaces:f,releaseRoots:new Set([...f].filter(N=>N.manifest.version!==null)),releases:E,async saveAll(){let N={},B=[],F=[];for(let Q of e.workspaces){if(Q.manifest.version===null)continue;let X=PE.structUtils.stringifyIdent(Q.anchoredLocator),ae=E.get(Q);ae===aH.DECLINE?B.push(X):typeof ae<"u"?N[X]=IUe(ae):f.has(Q)&&F.push(X)}await Xv.xfs.mkdirPromise(Xv.ppath.dirname(I),{recursive:!0}),await Xv.xfs.changeFilePromise(I,(0,pCe.stringifySyml)(new pCe.stringifySyml.PreserveOrdering({releases:Object.keys(N).length>0?N:void 0,declined:B.length>0?B:void 0,undecided:F.length>0?F:void 0})))}}}function efc(e){return Hxi(e).size>0||Yxi(e).length>0}function Hxi(e){let t=new Set;for(let r of e.changedWorkspaces)r.manifest.version!==null&&(e.releases.has(r)||t.add(r));return t}function Yxi(e,{include:t=new Set}={}){let r=[],n=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l===aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o])),a=new Map(PE.miscUtils.mapAndFilter([...e.releases],([o,l])=>l!==aH.DECLINE?PE.miscUtils.mapAndFilter.skip:[o.anchoredLocator.locatorHash,o]));for(let o of e.project.workspaces)if(!(!t.has(o)&&(a.has(o.anchoredLocator.locatorHash)||n.has(o.anchoredLocator.locatorHash)))&&o.manifest.version!==null)for(let l of PE.Manifest.hardDependencies)for(let A of o.manifest.getForScope(l).values()){let f=e.project.tryWorkspaceByDescriptor(A);f!==null&&n.has(f.anchoredLocator.locatorHash)&&r.push([o,f])}return r}function tfc(e,t){let r=Hee.default.clean(t);for(let n of Object.values(aH))if(n!==aH.UNDECIDED&&n!==aH.DECLINE&&Hee.default.inc(e,n)===r)return n;return null}function Fxr(e,t){if(Hee.default.valid(t))return t;if(e===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" unless the workspace already has a valid version`);if(!Hee.default.valid(e))throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on a non-semver version (${e})`);let r=Hee.default.inc(e,t);if(r===null)throw new fUe.UsageError(`Cannot apply the release strategy "${t}" on the specified version (${e})`);return r}function rfc(e,t,{report:r,exact:n}){let a=new Map;for(let o of e.workspaces)for(let l of PE.Manifest.allDependencies)for(let A of o.manifest[l].values()){let f=e.tryWorkspaceByDescriptor(A);if(f===null||!t.has(f))continue;PE.miscUtils.getArrayWithDefault(a,f).push([o,l,A.identHash])}for(let[o,l]of t){let A=o.manifest.version;o.manifest.version=l,Hee.default.prerelease(l)===null?delete o.manifest.raw.stableVersion:o.manifest.raw.stableVersion||(o.manifest.raw.stableVersion=A);let f=o.manifest.name!==null?PE.structUtils.stringifyIdent(o.manifest.name):null;r.reportInfo(PE.MessageName.UNNAMED,`${PE.structUtils.prettyLocator(e.configuration,o.anchoredLocator)}: Bumped to ${l}`),r.reportJson({cwd:Xv.npath.fromPortablePath(o.cwd),ident:f,oldVersion:A,newVersion:l});let I=a.get(o);if(!(typeof I>"u"))for(let[C,b,E]of I){let N=C.manifest[b].get(E);if(typeof N>"u")throw new Error("Assertion failed: The dependency should have existed");let B=N.range,F=!1;if(B.startsWith(PE.WorkspaceResolver.protocol)&&(B=B.slice(PE.WorkspaceResolver.protocol.length),F=!0,B===o.relativeCwd))continue;let Q=B.match(Kpc);if(!Q){r.reportWarning(PE.MessageName.UNNAMED,`Couldn't auto-upgrade range ${B} (in ${PE.structUtils.prettyLocator(e.configuration,C.anchoredLocator)})`);continue}let X=n?`${l}`:`${Q[1]}${l}`;F&&(X=`${PE.WorkspaceResolver.protocol}${X}`);let ae=PE.structUtils.makeDescriptor(N,X);C.manifest[b].set(E,ae)}}}var nfc=new Map([["%n",{extract:e=>e.length>=1?[e[0],e.slice(1)]:null,generate:(e=0)=>`${e+1}`}]]);function Qxi(e,{current:t,prerelease:r}){let n=new Hee.default.SemVer(t),a=n.prerelease.slice(),o=[];n.prerelease=[],n.format()!==e&&(a.length=0);let l=!0,A=r.split(/\./g);for(let f of A){let I=nfc.get(f);if(typeof I>"u")o.push(f),a[0]===f?a.shift():l=!1;else{let C=l?I.extract(a):null;C!==null&&typeof C[0]=="number"?(o.push(I.generate(C[0])),a=C[1]):(o.push(I.generate()),l=!1)}}return n.prerelease&&(n.prerelease=[]),`${e}-${o.join(".")}`}});var Uxi=H(Lxr=>{"use strict";Object.defineProperty(Lxr,"__esModule",{value:!0});var ifc=(Pa(),vi(Va)),Xxi=el(),Zxr=Bn(),Jxi=Bn(),fCe=($c(),vi(rg)),g1t=ifc.__importStar(hUe()),mUe=class extends Xxi.BaseCommand{constructor(){super(...arguments),this.all=fCe.Option.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"}),this.dryRun=fCe.Option.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"}),this.prerelease=fCe.Option.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0}),this.exact=fCe.Option.Boolean("--exact",!1,{description:"Use the exact version of each package, removes any range. Useful for nightly releases where the range might match another version."}),this.recursive=fCe.Option.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"}),this.json=fCe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Zxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Jxi.Project.find(t,this.context.cwd),a=await Zxr.Cache.find(t);if(!n)throw new Xxi.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=await Jxi.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,f=await g1t.resolveVersionFiles(r,{prerelease:A}),I=new Map;if(this.all)I=f;else{let C=this.recursive?n.getRecursiveWorkspaceDependencies():[n];for(let b of C){let E=f.get(b);typeof E<"u"&&I.set(b,E)}}if(I.size===0){let C=f.size>0?" Did you want to add --all?":"";l.reportWarning(Zxr.MessageName.UNNAMED,`The current workspace doesn't seem to require a version bump.${C}`);return}g1t.applyReleases(r,I,{report:l,exact:this.exact}),this.dryRun||(A||(this.all?await g1t.clearVersionFiles(r):await g1t.updateVersionFiles(r,[...I.keys()])),l.reportSeparator())});return this.dryRun||o.hasErrors()?o.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};mUe.paths=[["version","apply"]];mUe.usage=fCe.Command.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` This command will apply the deferred version changes and remove their definitions from the repository. Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. @@ -1083,9 +1083,9 @@ Additional information: BADCLIENT: Bad error code, ${re} not found in range ${S} - \`--all\` to apply the version bump on all packages in the repository Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. - `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Lxr.default=mUe});var A1t=H(Vxr=>{"use strict";Object.defineProperty(Vxr,"__esModule",{value:!0});Vxr.checkRequirements=ofc;var ifc=(Pa(),vi(Va)),sfc=ifc.__importDefault(wt("os"));function ofc({stdout:e}){if(sfc.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!e.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}});var uGi=H(E_=>{"use strict";var Wxr=Bpt(),iDe=60103,zxi=60106;E_.Fragment=60107;E_.StrictMode=60108;E_.Profiler=60114;var qxi=60109,$xi=60110,eGi=60112;E_.Suspense=60113;var tGi=60115,rGi=60116;typeof Symbol=="function"&&Symbol.for&&(cH=Symbol.for,iDe=cH("react.element"),zxi=cH("react.portal"),E_.Fragment=cH("react.fragment"),E_.StrictMode=cH("react.strict_mode"),E_.Profiler=cH("react.profiler"),qxi=cH("react.provider"),$xi=cH("react.context"),eGi=cH("react.forward_ref"),E_.Suspense=cH("react.suspense"),tGi=cH("react.memo"),rGi=cH("react.lazy"));var cH,Kxi=typeof Symbol=="function"&&Symbol.iterator;function afc(e){return e===null||typeof e!="object"?null:(e=Kxi&&e[Kxi]||e["@@iterator"],typeof e=="function"?e:null)}function CUe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r{"use strict";gGi.exports=uGi()});var fGi=H(_Ue=>{"use strict";var pGi=_Ue&&_Ue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Ue,"__esModule",{value:!0});var AGi=pGi(BMe()),dGi=pGi(uBe()),Afc=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(dGi.default.hide(),a=!0);let A=l+` + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Lxr.default=mUe});var A1t=H(Vxr=>{"use strict";Object.defineProperty(Vxr,"__esModule",{value:!0});Vxr.checkRequirements=afc;var sfc=(Pa(),vi(Va)),ofc=sfc.__importDefault(wt("os"));function afc({stdout:e}){if(ofc.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!e.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}});var uGi=H(E_=>{"use strict";var Wxr=Bpt(),iDe=60103,zxi=60106;E_.Fragment=60107;E_.StrictMode=60108;E_.Profiler=60114;var qxi=60109,$xi=60110,eGi=60112;E_.Suspense=60113;var tGi=60115,rGi=60116;typeof Symbol=="function"&&Symbol.for&&(cH=Symbol.for,iDe=cH("react.element"),zxi=cH("react.portal"),E_.Fragment=cH("react.fragment"),E_.StrictMode=cH("react.strict_mode"),E_.Profiler=cH("react.profiler"),qxi=cH("react.provider"),$xi=cH("react.context"),eGi=cH("react.forward_ref"),E_.Suspense=cH("react.suspense"),tGi=cH("react.memo"),rGi=cH("react.lazy"));var cH,Kxi=typeof Symbol=="function"&&Symbol.iterator;function cfc(e){return e===null||typeof e!="object"?null:(e=Kxi&&e[Kxi]||e["@@iterator"],typeof e=="function"?e:null)}function CUe(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r{"use strict";gGi.exports=uGi()});var fGi=H(_Ue=>{"use strict";var pGi=_Ue&&_Ue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Ue,"__esModule",{value:!0});var AGi=pGi(BMe()),dGi=pGi(uBe()),dfc=(e,{showCursor:t=!1}={})=>{let r=0,n="",a=!1,o=l=>{!t&&!a&&(dGi.default.hide(),a=!0);let A=l+` `;A!==n&&(n=A,e.write(AGi.default.eraseLines(r)+A),r=A.split(` -`).length)};return o.clear=()=>{e.write(AGi.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(dGi.default.show(),a=!1)},o};_Ue.default={create:Afc}});var IGi=H((_Zu,yUe)=>{yUe.exports=function(t){var r={},n=Bpt(),a=sC(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;te{e.write(AGi.default.eraseLines(r)),n="",r=0},o.done=()=>{n="",r=0,t||(dGi.default.show(),a=!1)},o};_Ue.default={create:dfc}});var IGi=H((yZu,yUe)=>{yUe.exports=function(t){var r={},n=Bpt(),a=sC(),o=xMe();function l(x){for(var L="https://reactjs.org/docs/error-decoder.html?invariant="+x,te=1;teUr||Le[dr]!==ft[Ur])return` @@ -1097,30 +1097,30 @@ Add a component higher in the tree to provide a loading `+(Re.join(" > ")+` No matching component was found for: - `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var mGi=H((yZu,hGi)=>{"use strict";hGi.exports=IGi()});var CGi=H(bUe=>{"use strict";var dfc=bUe&&bUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bUe,"__esModule",{value:!0});var pfc=dfc(FMe()),Qxr={};bUe.default=e=>{if(e.length===0)return{width:0,height:0};if(Qxr[e])return Qxr[e];let t=pfc.default(e),r=e.split(` -`).length;return Qxr[e]={width:t,height:r},{width:t,height:r}}});var _Gi=H(EUe=>{"use strict";var ffc=EUe&&EUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EUe,"__esModule",{value:!0});var S_=ffc(WW()),Ifc=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?S_.default.POSITION_TYPE_ABSOLUTE:S_.default.POSITION_TYPE_RELATIVE)},hfc=(e,t)=>{"marginLeft"in t&&e.setMargin(S_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(S_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(S_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(S_.default.EDGE_BOTTOM,t.marginBottom||0)},mfc=(e,t)=>{"paddingLeft"in t&&e.setPadding(S_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(S_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(S_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(S_.default.EDGE_BOTTOM,t.paddingBottom||0)},Cfc=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(S_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(S_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(S_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(S_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(S_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(S_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(S_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(S_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(S_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_AROUND))},_fc=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},yfc=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?S_.default.DISPLAY_FLEX:S_.default.DISPLAY_NONE)},bfc=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(S_.default.EDGE_TOP,r),e.setBorder(S_.default.EDGE_BOTTOM,r),e.setBorder(S_.default.EDGE_LEFT,r),e.setBorder(S_.default.EDGE_RIGHT,r)}};EUe.default=(e,t={})=>{Ifc(e,t),hfc(e,t),mfc(e,t),Cfc(e,t),_fc(e,t),yfc(e,t),bfc(e,t)}});var Jxr=H(SUe=>{"use strict";var yGi=SUe&&SUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SUe,"__esModule",{value:!0});var Efc=yGi(OIr()),Sfc=yGi(MIr()),Xxr={};SUe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(Xxr[n])return Xxr[n];let a=e;if(r==="wrap"&&(a=Efc.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=Sfc.default(e,t,{position:o})}return Xxr[n]=a,a}});var Kxr=H(Uxr=>{"use strict";Object.defineProperty(Uxr,"__esModule",{value:!0});var bGi=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=bGi(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};Uxr.default=bGi});var jxr=H(Y1=>{"use strict";var vUe=Y1&&Y1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y1,"__esModule",{value:!0});Y1.setTextNodeValue=Y1.createTextNode=Y1.setStyle=Y1.setAttribute=Y1.removeChildNode=Y1.insertBeforeNode=Y1.appendChildNode=Y1.createNode=Y1.TEXT_NAME=void 0;var vfc=vUe(WW()),EGi=vUe(CGi()),Bfc=vUe(_Gi()),wfc=vUe(Jxr()),Tfc=vUe(Kxr());Y1.TEXT_NAME="#text";Y1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:vfc.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(Rfc.bind(null,r))),r};Y1.appendChildNode=(e,t)=>{var r;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Y1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&Bfc.default(e.yogaNode,t)};Y1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Y1.setTextNodeValue(t,e),t};var Rfc=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:Tfc.default(e),o=EGi.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=wfc.default(a,t,l);return EGi.default(A)},SGi=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:SGi(e.parentNode)},f1t=e=>{let t=SGi(e);t?.markDirty()};Y1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,f1t(e)}});var RGi=H(BUe=>{"use strict";var TGi=BUe&&BUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BUe,"__esModule",{value:!0});var vGi=xMe(),Nfc=TGi(mGi()),BGi=TGi(WW()),FG=jxr(),wGi=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};BUe.default=Nfc.default({schedulePassiveEffects:vGi.unstable_scheduleCallback,cancelPassiveEffects:vGi.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=FG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?FG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:FG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return FG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{FG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{FG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_FLEX)},appendInitialChild:FG.appendChildNode,appendChild:FG.appendChildNode,insertBefore:FG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:FG.appendChildNode,insertInContainerBefore:FG.insertBeforeNode,removeChildFromContainer:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?FG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:FG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{FG.setTextNodeValue(e,r)},removeChild:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)}})});var NGi=H(wUe=>{"use strict";var Dfc=wUe&&wUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wUe,"__esModule",{value:!0});var I1t=Dfc(WW());wUe.default=e=>e.getComputedWidth()-e.getComputedPadding(I1t.default.EDGE_LEFT)-e.getComputedPadding(I1t.default.EDGE_RIGHT)-e.getComputedBorder(I1t.default.EDGE_LEFT)-e.getComputedBorder(I1t.default.EDGE_RIGHT)});var zxr=H(RUe=>{"use strict";var kfc=RUe&&RUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RUe,"__esModule",{value:!0});var TUe=kfc(VK()),xfc=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Gfc=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,h1t=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);RUe.default=(e,t,r)=>{if(!t)return e;if(t in TUe.default){let a=h1t(t,r);return TUe.default[a](e)}if(t.startsWith("#")){let a=h1t("hex",r);return TUe.default[a](t)(e)}if(t.startsWith("ansi")){let a=Gfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]);return TUe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=xfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return TUe.default[o](l,A,f)(e)}return e}});var kGi=H(NUe=>{"use strict";var DGi=NUe&&NUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(NUe,"__esModule",{value:!0});var Ffc=DGi(jIr()),qxr=DGi(zxr());NUe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=Ffc.default[r.style.borderStyle],f=qxr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qxr.default(A.vertical,l,"foreground")+` -`).repeat(o-2),C=qxr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var GGi=H(DUe=>{"use strict";var ICe=DUe&&DUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DUe,"__esModule",{value:!0});var Zfc=ICe(WW()),Lfc=ICe(FMe()),Vfc=ICe(UIr()),Pfc=ICe(Jxr()),Wfc=ICe(NGi()),Ofc=ICe(Kxr()),Mfc=ICe(kGi()),Hfc=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` -`.repeat(o)+Vfc.default(t,a)}return t},xGi=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===Zfc.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=Ofc.default(e);if(E.length>0){let N=Lfc.default(E),B=Wfc.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=Pfc.default(E,B,F)}E=Hfc(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&Mfc.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)xGi(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};DUe.default=xGi});var LGi=H(kUe=>{"use strict";var ZGi=kUe&&kUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kUe,"__esModule",{value:!0});var FGi=ZGi(Rpt()),Yfc=ZGi(dBe()),$xr=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` -`),height:t.length}}};kUe.default=$xr});var WGi=H(xUe=>{"use strict";var eGr=xUe&&xUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xUe,"__esModule",{value:!0});var Qfc=eGr(WW()),VGi=eGr(GGi()),PGi=eGr(LGi());xUe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,Qfc.default.DIRECTION_LTR);let n=new PGi.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});VGi.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new PGi.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),VGi.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} -`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rGr=H(tGr=>{"use strict";Object.defineProperty(tGr,"__esModule",{value:!0});tGr.default=new WeakMap});var iGr=H(nGr=>{"use strict";Object.defineProperty(nGr,"__esModule",{value:!0});var Xfc=sC(),OGi=Xfc.createContext({exit:()=>{}});OGi.displayName="InternalAppContext";nGr.default=OGi});var oGr=H(sGr=>{"use strict";Object.defineProperty(sGr,"__esModule",{value:!0});var Jfc=sC(),MGi=Jfc.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});MGi.displayName="InternalStdinContext";sGr.default=MGi});var cGr=H(aGr=>{"use strict";Object.defineProperty(aGr,"__esModule",{value:!0});var Ufc=sC(),HGi=Ufc.createContext({stdout:void 0,write:()=>{}});HGi.displayName="InternalStdoutContext";aGr.default=HGi});var uGr=H(lGr=>{"use strict";Object.defineProperty(lGr,"__esModule",{value:!0});var Kfc=sC(),YGi=Kfc.createContext({stderr:void 0,write:()=>{}});YGi.displayName="InternalStderrContext";lGr.default=YGi});var m1t=H(gGr=>{"use strict";Object.defineProperty(gGr,"__esModule",{value:!0});var jfc=sC(),QGi=jfc.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});QGi.displayName="InternalFocusContext";gGr.default=QGi});var C1t=H(l4=>{"use strict";var zfc=l4&&l4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qfc=l4&&l4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),$fc=l4&&l4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&zfc(t,e,r);return qfc(t,e),t},eIc=l4&&l4.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=eIc(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return XGi.default.createElement("ink-box",{ref:t,style:a},r)});AGr.displayName="Box";AGr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};l4.default=AGr});var fGr=H(GUe=>{"use strict";var dGr=GUe&&GUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GUe,"__esModule",{value:!0});var tIc=dGr(sC()),oDe=dGr(VK()),JGi=dGr(zxr()),pGr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=oDe.default.dim(b)),e&&(b=JGi.default(b,e,"foreground")),t&&(b=JGi.default(b,t,"background")),n&&(b=oDe.default.bold(b)),a&&(b=oDe.default.italic(b)),o&&(b=oDe.default.underline(b)),l&&(b=oDe.default.strikethrough(b)),A&&(b=oDe.default.inverse(b)),b);return tIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};pGr.displayName="Text";pGr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};GUe.default=pGr});var zGi=H(u4=>{"use strict";var rIc=u4&&u4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),nIc=u4&&u4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),iIc=u4&&u4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&rIc(t,e,r);return nIc(t,e),t},FUe=u4&&u4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u4,"__esModule",{value:!0});var UGi=iIc(wt("fs")),GR=FUe(sC()),KGi=FUe(Fpt()),sIc=FUe(fhr()),Qee=FUe(C1t()),Ej=FUe(fGr()),jGi=new KGi.default({cwd:process.cwd(),internals:KGi.default.nodeInternals()}),oIc=({error:e})=>{let t=e.stack?e.stack.split(` -`).slice(1):void 0,r=t?jGi.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&UGi.existsSync(r.file)){let o=UGi.readFileSync(r.file,"utf8");if(n=sIc.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return GR.default.createElement(Qee.default,{flexDirection:"column",padding:1},GR.default.createElement(Qee.default,null,GR.default.createElement(Ej.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),GR.default.createElement(Ej.default,null," ",e.message)),r&&GR.default.createElement(Qee.default,{marginTop:1},GR.default.createElement(Ej.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Qee.default,{width:a+1},GR.default.createElement(Ej.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),GR.default.createElement(Ej.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},e.stack.split(` -`).slice(1).map(o=>{let l=jGi.parseLine(o);return l?GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},l.function),GR.default.createElement(Ej.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},o))})))};u4.default=oIc});var $Gi=H(g4=>{"use strict";var aIc=g4&&g4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cIc=g4&&g4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lIc=g4&&g4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&aIc(t,e,r);return cIc(t,e),t},mCe=g4&&g4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(g4,"__esModule",{value:!0});var hCe=lIc(sC()),qGi=mCe(uBe()),uIc=mCe(iGr()),gIc=mCe(oGr()),AIc=mCe(cGr()),dIc=mCe(uGr()),pIc=mCe(m1t()),fIc=mCe(zGi()),IIc=" ",hIc="\x1B[Z",mIc="\x1B",_1t=class extends hCe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. + `)+x.join(" > ")}return null},r.getPublicRootInstance=function(x){if(x=x.current,!x.child)return null;switch(x.child.tag){case 5:return Yt(x.child.stateNode);default:return x.child.stateNode}},r.injectIntoDevTools=function(x){if(x={bundleType:x.bundleType,version:x.version,rendererPackageName:x.rendererPackageName,rendererConfig:x.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:bL,findFiberByHostInstance:x.findFiberByHostInstance||gF,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")x=!1;else{var L=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!L.isDisabled&&L.supportsFiber)try{As=L.inject(x),Tf=L}catch{}x=!0}return x},r.observeVisibleRects=function(x,L,te,Re){if(!Ya)throw Error(l(363));x=bb(x,L);var Le=zr(x,te,Re).disconnect;return{disconnect:function(){Le()}}},r.registerMutableSourceForHydration=function(x,L){var te=L._getVersion;te=te(L._source),x.mutableSourceEagerHydrationData==null?x.mutableSourceEagerHydrationData=[L,te]:x.mutableSourceEagerHydrationData.push(L,te)},r.runWithPriority=function(x,L){var te=Fl;try{return Fl=x,L()}finally{Fl=te}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(x,L){var te=lc;lc&=-2,lc|=8;try{return x(L)}finally{lc=te,lc===0&&(b0(),ip())}},r.updateContainer=function(x,L,te,Re){var Le=L.current,ft=fu(),dr=Jp(Le);e:if(te){te=te._reactInternals;t:{if(et(te)!==te||te.tag!==1)throw Error(l(170));var Ur=te;do{switch(Ur.tag){case 3:Ur=Ur.stateNode.context;break t;case 1:if(cc(Ur.type)){Ur=Ur.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ur=Ur.return}while(Ur!==null);throw Error(l(171))}if(te.tag===1){var mi=te.type;if(cc(mi)){te=Gs(te,mi,Ur);break e}}te=Ur}else te=Uf;return L.context===null?L.context=te:L.pendingContext=te,L=lm(ft,dr),L.payload={element:x},Re=Re===void 0?null:Re,Re!==null&&(L.callback=Re),Kf(Le,L),dC(Le,dr,ft),dr},r}});var mGi=H((bZu,hGi)=>{"use strict";hGi.exports=IGi()});var CGi=H(bUe=>{"use strict";var pfc=bUe&&bUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(bUe,"__esModule",{value:!0});var ffc=pfc(FMe()),Qxr={};bUe.default=e=>{if(e.length===0)return{width:0,height:0};if(Qxr[e])return Qxr[e];let t=ffc.default(e),r=e.split(` +`).length;return Qxr[e]={width:t,height:r},{width:t,height:r}}});var _Gi=H(EUe=>{"use strict";var Ifc=EUe&&EUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EUe,"__esModule",{value:!0});var S_=Ifc(WW()),hfc=(e,t)=>{"position"in t&&e.setPositionType(t.position==="absolute"?S_.default.POSITION_TYPE_ABSOLUTE:S_.default.POSITION_TYPE_RELATIVE)},mfc=(e,t)=>{"marginLeft"in t&&e.setMargin(S_.default.EDGE_START,t.marginLeft||0),"marginRight"in t&&e.setMargin(S_.default.EDGE_END,t.marginRight||0),"marginTop"in t&&e.setMargin(S_.default.EDGE_TOP,t.marginTop||0),"marginBottom"in t&&e.setMargin(S_.default.EDGE_BOTTOM,t.marginBottom||0)},Cfc=(e,t)=>{"paddingLeft"in t&&e.setPadding(S_.default.EDGE_LEFT,t.paddingLeft||0),"paddingRight"in t&&e.setPadding(S_.default.EDGE_RIGHT,t.paddingRight||0),"paddingTop"in t&&e.setPadding(S_.default.EDGE_TOP,t.paddingTop||0),"paddingBottom"in t&&e.setPadding(S_.default.EDGE_BOTTOM,t.paddingBottom||0)},_fc=(e,t)=>{var r;"flexGrow"in t&&e.setFlexGrow((r=t.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in t&&e.setFlexShrink(typeof t.flexShrink=="number"?t.flexShrink:1),"flexDirection"in t&&(t.flexDirection==="row"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW),t.flexDirection==="row-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_ROW_REVERSE),t.flexDirection==="column"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN),t.flexDirection==="column-reverse"&&e.setFlexDirection(S_.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in t&&(typeof t.flexBasis=="number"?e.setFlexBasis(t.flexBasis):typeof t.flexBasis=="string"?e.setFlexBasisPercent(Number.parseInt(t.flexBasis,10)):e.setFlexBasis(NaN)),"alignItems"in t&&((t.alignItems==="stretch"||!t.alignItems)&&e.setAlignItems(S_.default.ALIGN_STRETCH),t.alignItems==="flex-start"&&e.setAlignItems(S_.default.ALIGN_FLEX_START),t.alignItems==="center"&&e.setAlignItems(S_.default.ALIGN_CENTER),t.alignItems==="flex-end"&&e.setAlignItems(S_.default.ALIGN_FLEX_END)),"alignSelf"in t&&((t.alignSelf==="auto"||!t.alignSelf)&&e.setAlignSelf(S_.default.ALIGN_AUTO),t.alignSelf==="flex-start"&&e.setAlignSelf(S_.default.ALIGN_FLEX_START),t.alignSelf==="center"&&e.setAlignSelf(S_.default.ALIGN_CENTER),t.alignSelf==="flex-end"&&e.setAlignSelf(S_.default.ALIGN_FLEX_END)),"justifyContent"in t&&((t.justifyContent==="flex-start"||!t.justifyContent)&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_START),t.justifyContent==="center"&&e.setJustifyContent(S_.default.JUSTIFY_CENTER),t.justifyContent==="flex-end"&&e.setJustifyContent(S_.default.JUSTIFY_FLEX_END),t.justifyContent==="space-between"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_BETWEEN),t.justifyContent==="space-around"&&e.setJustifyContent(S_.default.JUSTIFY_SPACE_AROUND))},yfc=(e,t)=>{var r,n;"width"in t&&(typeof t.width=="number"?e.setWidth(t.width):typeof t.width=="string"?e.setWidthPercent(Number.parseInt(t.width,10)):e.setWidthAuto()),"height"in t&&(typeof t.height=="number"?e.setHeight(t.height):typeof t.height=="string"?e.setHeightPercent(Number.parseInt(t.height,10)):e.setHeightAuto()),"minWidth"in t&&(typeof t.minWidth=="string"?e.setMinWidthPercent(Number.parseInt(t.minWidth,10)):e.setMinWidth((r=t.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in t&&(typeof t.minHeight=="string"?e.setMinHeightPercent(Number.parseInt(t.minHeight,10)):e.setMinHeight((n=t.minHeight)!==null&&n!==void 0?n:0))},bfc=(e,t)=>{"display"in t&&e.setDisplay(t.display==="flex"?S_.default.DISPLAY_FLEX:S_.default.DISPLAY_NONE)},Efc=(e,t)=>{if("borderStyle"in t){let r=typeof t.borderStyle=="string"?1:0;e.setBorder(S_.default.EDGE_TOP,r),e.setBorder(S_.default.EDGE_BOTTOM,r),e.setBorder(S_.default.EDGE_LEFT,r),e.setBorder(S_.default.EDGE_RIGHT,r)}};EUe.default=(e,t={})=>{hfc(e,t),mfc(e,t),Cfc(e,t),_fc(e,t),yfc(e,t),bfc(e,t),Efc(e,t)}});var Jxr=H(SUe=>{"use strict";var yGi=SUe&&SUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(SUe,"__esModule",{value:!0});var Sfc=yGi(OIr()),vfc=yGi(MIr()),Xxr={};SUe.default=(e,t,r)=>{let n=e+String(t)+String(r);if(Xxr[n])return Xxr[n];let a=e;if(r==="wrap"&&(a=Sfc.default(e,t,{trim:!1,hard:!0})),r.startsWith("truncate")){let o="end";r==="truncate-middle"&&(o="middle"),r==="truncate-start"&&(o="start"),a=vfc.default(e,t,{position:o})}return Xxr[n]=a,a}});var Kxr=H(Uxr=>{"use strict";Object.defineProperty(Uxr,"__esModule",{value:!0});var bGi=e=>{let t="";if(e.childNodes.length>0)for(let r of e.childNodes){let n="";r.nodeName==="#text"?n=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(n=bGi(r)),n.length>0&&typeof r.internal_transform=="function"&&(n=r.internal_transform(n))),t+=n}return t};Uxr.default=bGi});var jxr=H(Y1=>{"use strict";var vUe=Y1&&Y1.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Y1,"__esModule",{value:!0});Y1.setTextNodeValue=Y1.createTextNode=Y1.setStyle=Y1.setAttribute=Y1.removeChildNode=Y1.insertBeforeNode=Y1.appendChildNode=Y1.createNode=Y1.TEXT_NAME=void 0;var Bfc=vUe(WW()),EGi=vUe(CGi()),wfc=vUe(_Gi()),Tfc=vUe(Jxr()),Rfc=vUe(Kxr());Y1.TEXT_NAME="#text";Y1.createNode=e=>{var t;let r={nodeName:e,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:e==="ink-virtual-text"?void 0:Bfc.default.Node.create()};return e==="ink-text"&&((t=r.yogaNode)===null||t===void 0||t.setMeasureFunc(Nfc.bind(null,r))),r};Y1.appendChildNode=(e,t)=>{var r;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e,e.childNodes.push(t),t.yogaNode&&((r=e.yogaNode)===null||r===void 0||r.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.insertBeforeNode=(e,t,r)=>{var n,a;t.parentNode&&Y1.removeChildNode(t.parentNode,t),t.parentNode=e;let o=e.childNodes.indexOf(r);if(o>=0){e.childNodes.splice(o,0,t),t.yogaNode&&((n=e.yogaNode)===null||n===void 0||n.insertChild(t.yogaNode,o));return}e.childNodes.push(t),t.yogaNode&&((a=e.yogaNode)===null||a===void 0||a.insertChild(t.yogaNode,e.yogaNode.getChildCount())),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.removeChildNode=(e,t)=>{var r,n;t.yogaNode&&((n=(r=t.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||n===void 0||n.removeChild(t.yogaNode)),t.parentNode=null;let a=e.childNodes.indexOf(t);a>=0&&e.childNodes.splice(a,1),(e.nodeName==="ink-text"||e.nodeName==="ink-virtual-text")&&f1t(e)};Y1.setAttribute=(e,t,r)=>{e.attributes[t]=r};Y1.setStyle=(e,t)=>{e.style=t,e.yogaNode&&wfc.default(e.yogaNode,t)};Y1.createTextNode=e=>{let t={nodeName:"#text",nodeValue:e,yogaNode:void 0,parentNode:null,style:{}};return Y1.setTextNodeValue(t,e),t};var Nfc=function(e,t){var r,n;let a=e.nodeName==="#text"?e.nodeValue:Rfc.default(e),o=EGi.default(a);if(o.width<=t||o.width>=1&&t>0&&t<1)return o;let l=(n=(r=e.style)===null||r===void 0?void 0:r.textWrap)!==null&&n!==void 0?n:"wrap",A=Tfc.default(a,t,l);return EGi.default(A)},SGi=e=>{var t;if(!(!e||!e.parentNode))return(t=e.yogaNode)!==null&&t!==void 0?t:SGi(e.parentNode)},f1t=e=>{let t=SGi(e);t?.markDirty()};Y1.setTextNodeValue=(e,t)=>{typeof t!="string"&&(t=String(t)),e.nodeValue=t,f1t(e)}});var RGi=H(BUe=>{"use strict";var TGi=BUe&&BUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BUe,"__esModule",{value:!0});var vGi=xMe(),Dfc=TGi(mGi()),BGi=TGi(WW()),FG=jxr(),wGi=e=>{e?.unsetMeasureFunc(),e?.freeRecursive()};BUe.default=Dfc.default({schedulePassiveEffects:vGi.unstable_scheduleCallback,cancelPassiveEffects:vGi.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:e=>{if(e.isStaticDirty){e.isStaticDirty=!1,typeof e.onImmediateRender=="function"&&e.onImmediateRender();return}typeof e.onRender=="function"&&e.onRender()},getChildHostContext:(e,t)=>{let r=e.isInsideText,n=t==="ink-text"||t==="ink-virtual-text";return r===n?e:{isInsideText:n}},shouldSetTextContent:()=>!1,createInstance:(e,t,r,n)=>{if(n.isInsideText&&e==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=e==="ink-text"&&n.isInsideText?"ink-virtual-text":e,o=FG.createNode(a);for(let[l,A]of Object.entries(t))l!=="children"&&(l==="style"?FG.setStyle(o,A):l==="internal_transform"?o.internal_transform=A:l==="internal_static"?o.internal_static=!0:FG.setAttribute(o,l,A));return o},createTextInstance:(e,t,r)=>{if(!r.isInsideText)throw new Error(`Text string "${e}" must be rendered inside component`);return FG.createTextNode(e)},resetTextContent:()=>{},hideTextInstance:e=>{FG.setTextNodeValue(e,"")},unhideTextInstance:(e,t)=>{FG.setTextNodeValue(e,t)},getPublicInstance:e=>e,hideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_NONE)},unhideInstance:e=>{var t;(t=e.yogaNode)===null||t===void 0||t.setDisplay(BGi.default.DISPLAY_FLEX)},appendInitialChild:FG.appendChildNode,appendChild:FG.appendChildNode,insertBefore:FG.insertBeforeNode,finalizeInitialChildren:(e,t,r,n)=>(e.internal_static&&(n.isStaticDirty=!0,n.staticNode=e),!1),supportsMutation:!0,appendChildToContainer:FG.appendChildNode,insertInContainerBefore:FG.insertBeforeNode,removeChildFromContainer:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)},prepareUpdate:(e,t,r,n,a)=>{e.internal_static&&(a.isStaticDirty=!0);let o={},l=Object.keys(n);for(let A of l)if(n[A]!==r[A]){if(A==="style"&&typeof n.style=="object"&&typeof r.style=="object"){let I=n.style,C=r.style,b=Object.keys(I);for(let E of b){if(E==="borderStyle"||E==="borderColor"){if(typeof o.style!="object"){let N={};o.style=N}o.style.borderStyle=I.borderStyle,o.style.borderColor=I.borderColor}if(I[E]!==C[E]){if(typeof o.style!="object"){let N={};o.style=N}o.style[E]=I[E]}}continue}o[A]=n[A]}return o},commitUpdate:(e,t)=>{for(let[r,n]of Object.entries(t))r!=="children"&&(r==="style"?FG.setStyle(e,n):r==="internal_transform"?e.internal_transform=n:r==="internal_static"?e.internal_static=!0:FG.setAttribute(e,r,n))},commitTextUpdate:(e,t,r)=>{FG.setTextNodeValue(e,r)},removeChild:(e,t)=>{FG.removeChildNode(e,t),wGi(t.yogaNode)}})});var NGi=H(wUe=>{"use strict";var kfc=wUe&&wUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wUe,"__esModule",{value:!0});var I1t=kfc(WW());wUe.default=e=>e.getComputedWidth()-e.getComputedPadding(I1t.default.EDGE_LEFT)-e.getComputedPadding(I1t.default.EDGE_RIGHT)-e.getComputedBorder(I1t.default.EDGE_LEFT)-e.getComputedBorder(I1t.default.EDGE_RIGHT)});var zxr=H(RUe=>{"use strict";var xfc=RUe&&RUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RUe,"__esModule",{value:!0});var TUe=xfc(VK()),Gfc=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,Ffc=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,h1t=(e,t)=>t==="foreground"?e:"bg"+e[0].toUpperCase()+e.slice(1);RUe.default=(e,t,r)=>{if(!t)return e;if(t in TUe.default){let a=h1t(t,r);return TUe.default[a](e)}if(t.startsWith("#")){let a=h1t("hex",r);return TUe.default[a](t)(e)}if(t.startsWith("ansi")){let a=Ffc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]);return TUe.default[o](l)(e)}if(t.startsWith("rgb")||t.startsWith("hsl")||t.startsWith("hsv")||t.startsWith("hwb")){let a=Gfc.exec(t);if(!a)return e;let o=h1t(a[1],r),l=Number(a[2]),A=Number(a[3]),f=Number(a[4]);return TUe.default[o](l,A,f)(e)}return e}});var kGi=H(NUe=>{"use strict";var DGi=NUe&&NUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(NUe,"__esModule",{value:!0});var Zfc=DGi(jIr()),qxr=DGi(zxr());NUe.default=(e,t,r,n)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),o=r.yogaNode.getComputedHeight(),l=r.style.borderColor,A=Zfc.default[r.style.borderStyle],f=qxr.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,l,"foreground"),I=(qxr.default(A.vertical,l,"foreground")+` +`).repeat(o-2),C=qxr.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,l,"foreground");n.write(e,t,f,{transformers:[]}),n.write(e,t+1,I,{transformers:[]}),n.write(e+a-1,t+1,I,{transformers:[]}),n.write(e,t+o-1,C,{transformers:[]})}}});var GGi=H(DUe=>{"use strict";var ICe=DUe&&DUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DUe,"__esModule",{value:!0});var Lfc=ICe(WW()),Vfc=ICe(FMe()),Pfc=ICe(UIr()),Wfc=ICe(Jxr()),Ofc=ICe(NGi()),Mfc=ICe(Kxr()),Hfc=ICe(kGi()),Yfc=(e,t)=>{var r;let n=(r=e.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(n){let a=n.getComputedLeft(),o=n.getComputedTop();t=` +`.repeat(o)+Pfc.default(t,a)}return t},xGi=(e,t,r)=>{var n;let{offsetX:a=0,offsetY:o=0,transformers:l=[],skipStaticElements:A}=r;if(A&&e.internal_static)return;let{yogaNode:f}=e;if(f){if(f.getDisplay()===Lfc.default.DISPLAY_NONE)return;let I=a+f.getComputedLeft(),C=o+f.getComputedTop(),b=l;if(typeof e.internal_transform=="function"&&(b=[e.internal_transform,...l]),e.nodeName==="ink-text"){let E=Mfc.default(e);if(E.length>0){let N=Vfc.default(E),B=Ofc.default(f);if(N>B){let F=(n=e.style.textWrap)!==null&&n!==void 0?n:"wrap";E=Wfc.default(E,B,F)}E=Yfc(e,E),t.write(I,C,E,{transformers:b})}return}if(e.nodeName==="ink-box"&&Hfc.default(I,C,e,t),e.nodeName==="ink-root"||e.nodeName==="ink-box")for(let E of e.childNodes)xGi(E,t,{offsetX:I,offsetY:C,transformers:b,skipStaticElements:A})}};DUe.default=xGi});var LGi=H(kUe=>{"use strict";var ZGi=kUe&&kUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kUe,"__esModule",{value:!0});var FGi=ZGi(Rpt()),Qfc=ZGi(dBe()),$xr=class{constructor(t){this.writes=[];let{width:r,height:n}=t;this.width=r,this.height=n}write(t,r,n,a){let{transformers:o}=a;n&&this.writes.push({x:t,y:r,text:n,transformers:o})}get(){let t=[];for(let n=0;nn.trimRight()).join(` +`),height:t.length}}};kUe.default=$xr});var WGi=H(xUe=>{"use strict";var eGr=xUe&&xUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xUe,"__esModule",{value:!0});var Xfc=eGr(WW()),VGi=eGr(GGi()),PGi=eGr(LGi());xUe.default=(e,t)=>{var r;if(e.yogaNode.setWidth(t),e.yogaNode){e.yogaNode.calculateLayout(void 0,void 0,Xfc.default.DIRECTION_LTR);let n=new PGi.default({width:e.yogaNode.getComputedWidth(),height:e.yogaNode.getComputedHeight()});VGi.default(e,n,{skipStaticElements:!0});let a;!((r=e.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new PGi.default({width:e.staticNode.yogaNode.getComputedWidth(),height:e.staticNode.yogaNode.getComputedHeight()}),VGi.default(e.staticNode,a,{skipStaticElements:!1}));let{output:o,height:l}=n.get();return{output:o,outputHeight:l,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var rGr=H(tGr=>{"use strict";Object.defineProperty(tGr,"__esModule",{value:!0});tGr.default=new WeakMap});var iGr=H(nGr=>{"use strict";Object.defineProperty(nGr,"__esModule",{value:!0});var Jfc=sC(),OGi=Jfc.createContext({exit:()=>{}});OGi.displayName="InternalAppContext";nGr.default=OGi});var oGr=H(sGr=>{"use strict";Object.defineProperty(sGr,"__esModule",{value:!0});var Ufc=sC(),MGi=Ufc.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});MGi.displayName="InternalStdinContext";sGr.default=MGi});var cGr=H(aGr=>{"use strict";Object.defineProperty(aGr,"__esModule",{value:!0});var Kfc=sC(),HGi=Kfc.createContext({stdout:void 0,write:()=>{}});HGi.displayName="InternalStdoutContext";aGr.default=HGi});var uGr=H(lGr=>{"use strict";Object.defineProperty(lGr,"__esModule",{value:!0});var jfc=sC(),YGi=jfc.createContext({stderr:void 0,write:()=>{}});YGi.displayName="InternalStderrContext";lGr.default=YGi});var m1t=H(gGr=>{"use strict";Object.defineProperty(gGr,"__esModule",{value:!0});var zfc=sC(),QGi=zfc.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});QGi.displayName="InternalFocusContext";gGr.default=QGi});var C1t=H(l4=>{"use strict";var qfc=l4&&l4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$fc=l4&&l4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),eIc=l4&&l4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&qfc(t,e,r);return $fc(t,e),t},tIc=l4&&l4.__rest||function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(e);a{var{children:r}=e,n=tIc(e,["children"]);let a=Object.assign(Object.assign({},n),{marginLeft:n.marginLeft||n.marginX||n.margin||0,marginRight:n.marginRight||n.marginX||n.margin||0,marginTop:n.marginTop||n.marginY||n.margin||0,marginBottom:n.marginBottom||n.marginY||n.margin||0,paddingLeft:n.paddingLeft||n.paddingX||n.padding||0,paddingRight:n.paddingRight||n.paddingX||n.padding||0,paddingTop:n.paddingTop||n.paddingY||n.padding||0,paddingBottom:n.paddingBottom||n.paddingY||n.padding||0});return XGi.default.createElement("ink-box",{ref:t,style:a},r)});AGr.displayName="Box";AGr.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};l4.default=AGr});var fGr=H(GUe=>{"use strict";var dGr=GUe&&GUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GUe,"__esModule",{value:!0});var rIc=dGr(sC()),oDe=dGr(VK()),JGi=dGr(zxr()),pGr=({color:e,backgroundColor:t,dimColor:r,bold:n,italic:a,underline:o,strikethrough:l,inverse:A,wrap:f,children:I})=>{if(I==null)return null;let C=b=>(r&&(b=oDe.default.dim(b)),e&&(b=JGi.default(b,e,"foreground")),t&&(b=JGi.default(b,t,"background")),n&&(b=oDe.default.bold(b)),a&&(b=oDe.default.italic(b)),o&&(b=oDe.default.underline(b)),l&&(b=oDe.default.strikethrough(b)),A&&(b=oDe.default.inverse(b)),b);return rIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:f},internal_transform:C},I)};pGr.displayName="Text";pGr.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};GUe.default=pGr});var zGi=H(u4=>{"use strict";var nIc=u4&&u4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iIc=u4&&u4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),sIc=u4&&u4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&nIc(t,e,r);return iIc(t,e),t},FUe=u4&&u4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(u4,"__esModule",{value:!0});var UGi=sIc(wt("fs")),GR=FUe(sC()),KGi=FUe(Fpt()),oIc=FUe(fhr()),Qee=FUe(C1t()),Ej=FUe(fGr()),jGi=new KGi.default({cwd:process.cwd(),internals:KGi.default.nodeInternals()}),aIc=({error:e})=>{let t=e.stack?e.stack.split(` +`).slice(1):void 0,r=t?jGi.parseLine(t[0]):void 0,n,a=0;if(r?.file&&r?.line&&UGi.existsSync(r.file)){let o=UGi.readFileSync(r.file,"utf8");if(n=oIc.default(o,r.line),n)for(let{line:l}of n)a=Math.max(a,String(l).length)}return GR.default.createElement(Qee.default,{flexDirection:"column",padding:1},GR.default.createElement(Qee.default,null,GR.default.createElement(Ej.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),GR.default.createElement(Ej.default,null," ",e.message)),r&&GR.default.createElement(Qee.default,{marginTop:1},GR.default.createElement(Ej.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&n&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},n.map(({line:o,value:l})=>GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Qee.default,{width:a+1},GR.default.createElement(Ej.default,{dimColor:o!==r.line,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0},String(o).padStart(a," "),":")),GR.default.createElement(Ej.default,{key:o,backgroundColor:o===r.line?"red":void 0,color:o===r.line?"white":void 0}," "+l)))),e.stack&&GR.default.createElement(Qee.default,{marginTop:1,flexDirection:"column"},e.stack.split(` +`).slice(1).map(o=>{let l=jGi.parseLine(o);return l?GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},l.function),GR.default.createElement(Ej.default,{dimColor:!0,color:"gray"}," ","(",l.file,":",l.line,":",l.column,")")):GR.default.createElement(Qee.default,{key:o},GR.default.createElement(Ej.default,{dimColor:!0},"- "),GR.default.createElement(Ej.default,{dimColor:!0,bold:!0},o))})))};u4.default=aIc});var $Gi=H(g4=>{"use strict";var cIc=g4&&g4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lIc=g4&&g4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uIc=g4&&g4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&cIc(t,e,r);return lIc(t,e),t},mCe=g4&&g4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(g4,"__esModule",{value:!0});var hCe=uIc(sC()),qGi=mCe(uBe()),gIc=mCe(iGr()),AIc=mCe(oGr()),dIc=mCe(cGr()),pIc=mCe(uGr()),fIc=mCe(m1t()),IIc=mCe(zGi()),hIc=" ",mIc="\x1B[Z",CIc="\x1B",_1t=class extends hCe.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=t=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. -Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===mIc&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===IIc&&this.focusNext(),t===hIc&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return hCe.default.createElement(uIc.default.Provider,{value:{exit:this.handleExit}},hCe.default.createElement(gIc.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},hCe.default.createElement(AIc.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},hCe.default.createElement(dIc.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},hCe.default.createElement(pIc.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?hCe.default.createElement(fIc.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){qGi.default.hide(this.props.stdout)}componentWillUnmount(){qGi.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};g4.default=_1t;_1t.displayName="InternalApp"});var rFi=H(A4=>{"use strict";var CIc=A4&&A4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_Ic=A4&&A4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),yIc=A4&&A4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&CIc(t,e,r);return _Ic(t,e),t},d4=A4&&A4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A4,"__esModule",{value:!0});var bIc=d4(sC()),eFi=AIr(),EIc=d4(fGi()),SIc=d4(BMe()),vIc=d4(hIr()),BIc=d4(mIr()),IGr=d4(RGi()),wIc=d4(WGi()),TIc=d4(mpt()),RIc=d4(rhr()),NIc=yIc(jxr()),DIc=d4(rGr()),kIc=d4($Gi()),aDe=process.env.CI==="false"?!1:vIc.default,tFi=()=>{},hGr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=wIc.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` -`;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(aDe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(SIc.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},BIc.default(this),this.options=t,this.rootNode=NIc.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:eFi.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=EIc.default.create(t.stdout),this.throttledLog=t.debug?this.log:eFi.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=IGr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=TIc.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),aDe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=bIc.default.createElement(kIc.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);IGr.default.updateContainer(r,this.container,null,tFi)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),aDe?this.options.stdout.write(this.lastOutput+` -`):this.options.debug||this.log.done(),this.isUnmounted=!0,IGr.default.updateContainer(null,this.container,null,tFi),DIc.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!aDe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=RIc.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};A4.default=hGr});var iFi=H(ZUe=>{"use strict";var nFi=ZUe&&ZUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZUe,"__esModule",{value:!0});var xIc=nFi(rFi()),y1t=nFi(rGr()),GIc=wt("stream"),FIc=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},ZIc(t)),n=LIc(r.stdout,()=>new xIc.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>y1t.default.delete(r.stdout),clear:n.clear}};ZUe.default=FIc;var ZIc=(e={})=>e instanceof GIc.Stream?{stdout:e,stdin:process.stdin}:e,LIc=(e,t)=>{let r;return y1t.default.has(e)?r=y1t.default.get(e):(r=t(),y1t.default.set(e,r)),r}});var oFi=H(Xee=>{"use strict";var VIc=Xee&&Xee.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),PIc=Xee&&Xee.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),WIc=Xee&&Xee.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&VIc(t,e,r);return PIc(t,e),t};Object.defineProperty(Xee,"__esModule",{value:!0});var LUe=WIc(sC()),sFi=e=>{let{items:t,children:r,style:n}=e,[a,o]=LUe.useState(0),l=LUe.useMemo(()=>t.slice(a),[t,a]);LUe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=LUe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return LUe.default.createElement("ink-box",{internal_static:!0,style:f},A)};sFi.displayName="Static";Xee.default=sFi});var cFi=H(VUe=>{"use strict";var OIc=VUe&&VUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(VUe,"__esModule",{value:!0});var MIc=OIc(sC()),aFi=({children:e,transform:t})=>e==null?null:MIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);aFi.displayName="Transform";VUe.default=aFi});var uFi=H(PUe=>{"use strict";var HIc=PUe&&PUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PUe,"__esModule",{value:!0});var YIc=HIc(sC()),lFi=({count:e=1})=>YIc.default.createElement("ink-text",null,` -`.repeat(e));lFi.displayName="Newline";PUe.default=lFi});var dFi=H(WUe=>{"use strict";var gFi=WUe&&WUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WUe,"__esModule",{value:!0});var QIc=gFi(sC()),XIc=gFi(C1t()),AFi=()=>QIc.default.createElement(XIc.default,{flexGrow:1});AFi.displayName="Spacer";WUe.default=AFi});var b1t=H(OUe=>{"use strict";var JIc=OUe&&OUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OUe,"__esModule",{value:!0});var UIc=sC(),KIc=JIc(oGr()),jIc=()=>UIc.useContext(KIc.default);OUe.default=jIc});var fFi=H(MUe=>{"use strict";var zIc=MUe&&MUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MUe,"__esModule",{value:!0});var pFi=sC(),qIc=zIc(b1t()),$Ic=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=qIc.default();pFi.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),pFi.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};MUe.default=$Ic});var IFi=H(HUe=>{"use strict";var ehc=HUe&&HUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HUe,"__esModule",{value:!0});var thc=sC(),rhc=ehc(iGr()),nhc=()=>thc.useContext(rhc.default);HUe.default=nhc});var hFi=H(YUe=>{"use strict";var ihc=YUe&&YUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YUe,"__esModule",{value:!0});var shc=sC(),ohc=ihc(cGr()),ahc=()=>shc.useContext(ohc.default);YUe.default=ahc});var mFi=H(QUe=>{"use strict";var chc=QUe&&QUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QUe,"__esModule",{value:!0});var lhc=sC(),uhc=chc(uGr()),ghc=()=>lhc.useContext(uhc.default);QUe.default=ghc});var _Fi=H(JUe=>{"use strict";var CFi=JUe&&JUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JUe,"__esModule",{value:!0});var XUe=sC(),Ahc=CFi(m1t()),dhc=CFi(b1t()),phc=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=dhc.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=XUe.useContext(Ahc.default),b=XUe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return XUe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),XUe.useEffect(()=>{e?f(b):I(b)},[e,b]),XUe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};JUe.default=phc});var yFi=H(UUe=>{"use strict";var fhc=UUe&&UUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UUe,"__esModule",{value:!0});var Ihc=sC(),hhc=fhc(m1t()),mhc=()=>{let e=Ihc.useContext(hhc.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};UUe.default=mhc});var bFi=H(mGr=>{"use strict";Object.defineProperty(mGr,"__esModule",{value:!0});mGr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var lH=H(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});var Chc=iFi();Object.defineProperty(Jk,"render",{enumerable:!0,get:function(){return Chc.default}});var _hc=C1t();Object.defineProperty(Jk,"Box",{enumerable:!0,get:function(){return _hc.default}});var yhc=fGr();Object.defineProperty(Jk,"Text",{enumerable:!0,get:function(){return yhc.default}});var bhc=oFi();Object.defineProperty(Jk,"Static",{enumerable:!0,get:function(){return bhc.default}});var Ehc=cFi();Object.defineProperty(Jk,"Transform",{enumerable:!0,get:function(){return Ehc.default}});var Shc=uFi();Object.defineProperty(Jk,"Newline",{enumerable:!0,get:function(){return Shc.default}});var vhc=dFi();Object.defineProperty(Jk,"Spacer",{enumerable:!0,get:function(){return vhc.default}});var Bhc=fFi();Object.defineProperty(Jk,"useInput",{enumerable:!0,get:function(){return Bhc.default}});var whc=IFi();Object.defineProperty(Jk,"useApp",{enumerable:!0,get:function(){return whc.default}});var Thc=b1t();Object.defineProperty(Jk,"useStdin",{enumerable:!0,get:function(){return Thc.default}});var Rhc=hFi();Object.defineProperty(Jk,"useStdout",{enumerable:!0,get:function(){return Rhc.default}});var Nhc=mFi();Object.defineProperty(Jk,"useStderr",{enumerable:!0,get:function(){return Nhc.default}});var Dhc=_Fi();Object.defineProperty(Jk,"useFocus",{enumerable:!0,get:function(){return Dhc.default}});var khc=yFi();Object.defineProperty(Jk,"useFocusManager",{enumerable:!0,get:function(){return khc.default}});var xhc=bFi();Object.defineProperty(Jk,"measureElement",{enumerable:!0,get:function(){return xhc.default}})});var v1t=H(S1t=>{"use strict";Object.defineProperty(S1t,"__esModule",{value:!0});S1t.Gem=void 0;var Ghc=(Pa(),vi(Va)),Fhc=lH(),E1t=Ghc.__importStar(sC());S1t.Gem=(0,E1t.memo)(({active:e})=>{let t=(0,E1t.useMemo)(()=>e?"\u25C9":"\u25EF",[e]),r=(0,E1t.useMemo)(()=>e?"green":"yellow",[e]);return E1t.default.createElement(Fhc.Text,{color:r},t)})});var cDe=H(CGr=>{"use strict";Object.defineProperty(CGr,"__esModule",{value:!0});CGr.useKeypress=Lhc;var Zhc=lH(),EFi=sC();function Lhc({active:e},t,r){let{stdin:n}=(0,Zhc.useStdin)(),a=(0,EFi.useCallback)((o,l)=>t(o,l),r);(0,EFi.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var _Gr=H(lDe=>{"use strict";Object.defineProperty(lDe,"__esModule",{value:!0});lDe.useFocusRequest=lDe.FocusRequest=void 0;var Vhc=cDe(),B1t;(function(e){e.BEFORE="before",e.AFTER="after"})(B1t||(lDe.FocusRequest=B1t={}));var Phc=function({active:e},t,r){(0,Vhc.useKeypress)({active:e},(n,a)=>{a.name==="tab"&&(a.shift?t(B1t.BEFORE):t(B1t.AFTER))},r)};lDe.useFocusRequest=Phc});var T1t=H(w1t=>{"use strict";Object.defineProperty(w1t,"__esModule",{value:!0});w1t.useListInput=void 0;var Whc=cDe(),Ohc=function(e,t,{active:r,minus:n,plus:a,set:o,loop:l=!0}){(0,Whc.useKeypress)({active:r},(A,f)=>{let I=t.indexOf(e);switch(f.name){case n:{let C=I-1;if(l){o(t[(t.length+C)%t.length]);return}if(C<0)return;o(t[C])}break;case a:{let C=I+1;if(l){o(t[C%t.length]);return}if(C>=t.length)return;o(t[C])}break}},[t,e,a,o,l])};w1t.useListInput=Ohc});var N1t=H(R1t=>{"use strict";Object.defineProperty(R1t,"__esModule",{value:!0});R1t.ScrollableItems=void 0;var Mhc=(Pa(),vi(Va)),uDe=lH(),p4=Mhc.__importStar(sC()),Hhc=_Gr(),Yhc=T1t(),Qhc=({active:e=!0,children:t=[],radius:r=10,size:n=1,loop:a=!0,onFocusRequest:o,willReachEnd:l})=>{let A=Q=>{if(Q.key===null)throw new Error("Expected all children to have a key");return Q.key},f=p4.default.Children.map(t,Q=>A(Q)),I=f[0],[C,b]=(0,p4.useState)(I),E=f.indexOf(C);(0,p4.useEffect)(()=>{f.includes(C)||b(I)},[t]),(0,p4.useEffect)(()=>{l&&E>=f.length-2&&l()},[E]),(0,Hhc.useFocusRequest)({active:e&&!!o},Q=>{o?.(Q)},[o]),(0,Yhc.useListInput)(C,f,{active:e,minus:"up",plus:"down",set:b,loop:a});let N=E-r,B=E+r;B>f.length&&(N-=B-f.length,B=f.length),N<0&&(B+=-N,N=0),B>=f.length&&(B=f.length-1);let F=[];for(let Q=N;Q<=B;++Q){let X=f[Q],ae=e&&X===C;F.push(p4.default.createElement(uDe.Box,{key:X,height:n},p4.default.createElement(uDe.Box,{marginLeft:1,marginRight:1},p4.default.createElement(uDe.Text,null,ae?p4.default.createElement(uDe.Text,{color:"cyan",bold:!0},">"):" ")),p4.default.createElement(uDe.Box,null,p4.default.cloneElement(t[Q],{active:ae}))))}return p4.default.createElement(uDe.Box,{flexDirection:"column",width:"100%"},F)};R1t.ScrollableItems=Qhc});var yGr=H(CCe=>{"use strict";Object.defineProperty(CCe,"__esModule",{value:!0});CCe.Application=CCe.MinistoreContext=void 0;var Xhc=(Pa(),vi(Va)),Jhc=lH(),KUe=Xhc.__importStar(sC()),Uhc=wt("readline");CCe.MinistoreContext=KUe.default.createContext(null);var Khc=({children:e})=>{let{stdin:t,setRawMode:r}=(0,Jhc.useStdin)();(0,KUe.useEffect)(()=>{r&&r(!0),t&&(0,Uhc.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,KUe.useState)(new Map),o=(0,KUe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(f=>new Map([...f,[l,A]])),setAll:l=>a(A=>new Map([...A,...l]))}),[n,a]);return KUe.default.createElement(CCe.MinistoreContext.Provider,{value:o,children:e})};CCe.Application=Khc});var D1t=H(bGr=>{"use strict";Object.defineProperty(bGr,"__esModule",{value:!0});bGr.renderForm=$hc;var jhc=(Pa(),vi(Va)),SFi=lH(),vFi=jhc.__importDefault(sC()),zhc=yGr(),qhc=cDe();async function $hc(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,SFi.useApp)();(0,qhc.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,SFi.render)(vFi.default.createElement(zhc.Application,null,vFi.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var BFi=H(vGr=>{"use strict";Object.defineProperty(vGr,"__esModule",{value:!0});var vj=(Pa(),vi(Va)),EGr=el(),FR=Bn(),Sj=no(),emc=vj.__importStar(A1t()),k1t=($c(),vi(rg)),SGr=vj.__importDefault(UC()),ZG=vj.__importStar(hUe()),jUe=class extends EGr.BaseCommand{constructor(){super(...arguments),this.interactive=k1t.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){emc.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vj.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vj.__importStar(N1t())),{FocusRequest:n}=await Promise.resolve().then(()=>vj.__importStar(_Gr())),{useListInput:a}=await Promise.resolve().then(()=>vj.__importStar(T1t())),{renderForm:o}=await Promise.resolve().then(()=>vj.__importStar(D1t())),{Box:l,Text:A}=await Promise.resolve().then(()=>vj.__importStar(lH())),{default:f,useCallback:I,useState:C}=await Promise.resolve().then(()=>vj.__importStar(sC())),b=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:E,workspace:N}=await FR.Project.find(b,this.context.cwd);if(!N)throw new EGr.WorkspaceRequiredError(E.cwd,this.context.cwd);await E.restoreInstallState();let B=await ZG.openVersionFile(E);if(B===null||B.releaseRoots.size===0)return 0;if(B.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");let F=()=>f.createElement(l,{flexDirection:"row",paddingBottom:1},f.createElement(l,{flexDirection:"column",width:60},f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),f.createElement(l,{flexDirection:"column"},f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to save.")),f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),Q=({workspace:ue,active:de,decision:be,setDecision:Se})=>{let De=ue.manifest.raw.stableVersion??ue.manifest.version;if(De===null)throw new Error(`Assertion failed: The version should have been set (${FR.structUtils.prettyLocator(b,ue.anchoredLocator)})`);if(SGr.default.prerelease(De)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${De})`);let k=[ZG.Decision.UNDECIDED,ZG.Decision.DECLINE,ZG.Decision.PATCH,ZG.Decision.MINOR,ZG.Decision.MAJOR];a(be,k,{active:de,minus:"left",plus:"right",set:Se});let et=be===ZG.Decision.UNDECIDED?f.createElement(A,{color:"yellow"},De):be===ZG.Decision.DECLINE?f.createElement(A,{color:"green"},De):f.createElement(A,null,f.createElement(A,{color:"magenta"},De)," \u2192 ",f.createElement(A,{color:"green"},SGr.default.valid(be)?be:SGr.default.inc(De,be)));return f.createElement(l,{flexDirection:"column"},f.createElement(l,null,f.createElement(A,null,FR.structUtils.prettyLocator(b,ue.anchoredLocator)," - ",et)),f.createElement(l,null,k.map(ct=>{let Me=ct===be;return f.createElement(l,{key:ct,paddingLeft:2},f.createElement(A,null,f.createElement(t,{active:Me})," ",ct))})))},X=ue=>{let de=new Set(B.releaseRoots),be=new Map([...ue].filter(([Se])=>de.has(Se)));for(;;){let Se=ZG.getUndecidedDependentWorkspaces({project:B.project,releases:be}),De=!1;if(Se.length>0){for(let[k]of Se)if(!de.has(k)){de.add(k),De=!0;let et=ue.get(k);typeof et<"u"&&be.set(k,et)}}if(!De)break}return{relevantWorkspaces:de,relevantReleases:be}},ae=()=>{let[ue,de]=C(()=>new Map(B.releases)),be=I((Se,De)=>{let k=new Map(ue);De!==ZG.Decision.UNDECIDED?k.set(Se,De):k.delete(Se);let{relevantReleases:et}=X(k);de(et)},[ue,de]);return[ue,be]},ne=({workspaces:ue,releases:de})=>{let be=[];be.push(`${ue.size} total`);let Se=0,De=0;for(let k of ue){let et=de.get(k);typeof et>"u"?De+=1:et!==ZG.Decision.DECLINE&&(Se+=1)}return be.push(`${Se} release${Se===1?"":"s"}`),be.push(`${De} remaining`),f.createElement(A,{color:"yellow"},be.join(", "))},fe=await o(({useSubmit:ue})=>{let[de,be]=ae();ue(de);let{relevantWorkspaces:Se}=X(de),De=new Set([...Se].filter(Me=>!B.releaseRoots.has(Me))),[k,et]=C(0),ct=I(Me=>{switch(Me){case n.BEFORE:et(k-1);break;case n.AFTER:et(k+1);break}},[k,et]);return f.createElement(l,{flexDirection:"column"},f.createElement(F,null),f.createElement(l,null,f.createElement(A,{wrap:"wrap"},"The following files have been modified in your local checkout.")),f.createElement(l,{flexDirection:"column",marginTop:1,paddingLeft:2},[...B.changedFiles].map(Me=>f.createElement(l,{key:Me},f.createElement(A,null,f.createElement(A,{color:"grey"},Sj.npath.fromPortablePath(B.root)),Sj.npath.sep,Sj.npath.relative(Sj.npath.fromPortablePath(B.root),Sj.npath.fromPortablePath(Me)))))),B.releaseRoots.size>0&&f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),De.size>3?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:B.releaseRoots,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===0,radius:1,size:2,onFocusRequest:ct},[...B.releaseRoots].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))),De.size>0?f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),f.createElement(l,null,f.createElement(A,null,"(Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),De.size>5?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:De,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===1,radius:2,size:2,onFocusRequest:ct},[...De].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))):null)},{versionFile:B},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof fe>"u")return 1;B.releases.clear();for(let[ue,de]of fe)B.releases.set(ue,de);await B.saveAll()}async executeStandard(){let t=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await FR.Project.find(t,this.context.cwd);if(!n)throw new EGr.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await FR.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{let l=await ZG.openVersionFile(r);if(l===null||l.releaseRoots.size===0)return;if(l.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");if(o.reportInfo(FR.MessageName.UNNAMED,`Your PR was started right after ${FR.formatUtils.pretty(t,l.baseHash.slice(0,7),"yellow")} ${FR.formatUtils.pretty(t,l.baseTitle,"magenta")}`),l.changedFiles.size>0){o.reportInfo(FR.MessageName.UNNAMED,"You have changed the following files since then:"),o.reportSeparator();for(let b of l.changedFiles)o.reportInfo(null,`${FR.formatUtils.pretty(t,Sj.npath.fromPortablePath(l.root),"gray")}${Sj.npath.sep}${Sj.npath.relative(Sj.npath.fromPortablePath(l.root),Sj.npath.fromPortablePath(b))}`)}let A=!1,f=!1,I=ZG.getUndecidedWorkspaces(l);if(I.size>0){A||o.reportSeparator();for(let b of I)o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} has been modified but doesn't have a release strategy attached`);A=!0}let C=ZG.getUndecidedDependentWorkspaces(l);for(let[b,E]of C)f||o.reportSeparator(),o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} doesn't have a release strategy attached, but depends on ${FR.structUtils.prettyWorkspace(t,E)} which is planned for release.`),f=!0;(A||f)&&(o.reportSeparator(),o.reportInfo(FR.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),o.reportInfo(FR.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};jUe.paths=[["version","check"]];jUe.usage=k1t.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});vGr.default=jUe});var NFi=H(wGr=>{"use strict";Object.defineProperty(wGr,"__esModule",{value:!0});var RFi=(Pa(),vi(Va)),wFi=el(),TFi=Bn(),yCe=($c(),vi(rg)),BGr=RFi.__importDefault(UC()),_Ce=RFi.__importStar(hUe()),zUe=class extends wFi.BaseCommand{constructor(){super(...arguments),this.deferred=yCe.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"}),this.immediate=yCe.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"}),this.strategy=yCe.Option.String()}async execute(){let t=await TFi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TFi.Project.find(t,this.context.cwd);if(!n)throw new wFi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=t.get("preferDeferredVersions");this.deferred&&(a=!0),this.immediate&&(a=!1);let o=BGr.default.valid(this.strategy),l=this.strategy===_Ce.Decision.DECLINE,A;if(o)if(n.manifest.version!==null){let I=_Ce.suggestStrategy(n.manifest.version,this.strategy);I!==null?A=I:A=this.strategy}else A=this.strategy;else{let I=n.manifest.version;if(!l){if(I===null)throw new yCe.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof I!="string"||!BGr.default.valid(I))throw new yCe.UsageError(`Can't bump the version (${I}) if it's not valid semver`)}A=_Ce.validateReleaseDecision(this.strategy)}if(!a){let C=(await _Ce.resolveVersionFiles(r)).get(n);if(typeof C<"u"&&A!==_Ce.Decision.DECLINE){let b=_Ce.applyStrategy(n.manifest.version,A);if(BGr.default.lt(b,C))throw new yCe.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let f=await _Ce.openVersionFile(r,{allowEmpty:!0});return f.releases.set(n,A),await f.saveAll(),a?0:await this.cli.run(["version","apply"])}};zUe.paths=[["version"]];zUe.usage=yCe.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});wGr.default=zUe});var TGr=H(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.versionUtils=f4.VersionCommand=f4.VersionCheckCommand=f4.VersionApplyCommand=void 0;var x1t=(Pa(),vi(Va)),DFi=Bn(),kFi=x1t.__importDefault(Uxi());f4.VersionApplyCommand=kFi.default;var xFi=x1t.__importDefault(BFi());f4.VersionCheckCommand=xFi.default;var GFi=x1t.__importDefault(NFi());f4.VersionCommand=GFi.default;var tmc=x1t.__importStar(hUe());f4.versionUtils=tmc;var rmc={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:DFi.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:DFi.SettingsType.BOOLEAN,default:!1}},commands:[kFi.default,xFi.default,GFi.default]};f4.default=rmc});var XZi=H((d9u,QZi)=>{"use strict";var HZi=wt("path"),nCc=Jjt(),iCc=Kjt();function YZi(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=nCc.sync(e.command,{path:r[iCc({env:r})],pathExt:t?HZi.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=HZi.resolve(a?e.options.cwd:"",l)),l}function sCc(e){return YZi(e)||YZi(e,!0)}QZi.exports=sCc});var JZi=H((p9u,$Gr)=>{"use strict";var qGr=/([()\][%!^"`<>&|;, *?])/g;function oCc(e){return e=e.replace(qGr,"^$1"),e}function aCc(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(qGr,"^$1"),t&&(e=e.replace(qGr,"^$1")),e}$Gr.exports.command=oCc;$Gr.exports.argument=aCc});var KZi=H((f9u,UZi)=>{"use strict";var eFr=wt("fs"),cCc=qjt();function lCc(e){let r=Buffer.alloc(150),n;try{n=eFr.openSync(e,"r"),eFr.readSync(n,r,0,150,0),eFr.closeSync(n)}catch{}return cCc(r.toString())}UZi.exports=lCc});var $Zi=H((I9u,qZi)=>{"use strict";var uCc=wt("path"),jZi=XZi(),zZi=JZi(),gCc=KZi(),ACc=process.platform==="win32",dCc=/\.(?:com|exe)$/i,pCc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function fCc(e){e.file=jZi(e);let t=e.file&&gCc(e.file);return t?(e.args.unshift(e.file),e.command=t,jZi(e)):e.file}function ICc(e){if(!ACc)return e;let t=fCc(e),r=!dCc.test(t);if(e.options.forceShell||r){let n=pCc.test(t);e.command=uCc.normalize(e.command),e.command=zZi.command(e.command),e.args=e.args.map(o=>zZi.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function hCc(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:ICc(n)}qZi.exports=hCc});var rLi=H((h9u,tLi)=>{"use strict";var tFr=process.platform==="win32";function rFr(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function mCc(e,t){if(!tFr)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=eLi(a,t,"spawn");if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function eLi(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawn"):null}function CCc(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawnSync"):null}tLi.exports={hookChildProcess:mCc,verifyENOENT:eLi,verifyENOENTSync:CCc,notFoundError:rFr}});var sLi=H((m9u,dDe)=>{"use strict";var nLi=wt("child_process"),nFr=$Zi(),iFr=rLi();function iLi(e,t,r){let n=nFr(e,t,r),a=nLi.spawn(n.command,n.args,n.options);return iFr.hookChildProcess(a,n),a}function _Cc(e,t,r){let n=nFr(e,t,r),a=nLi.spawnSync(n.command,n.args,n.options);return a.error=a.error||iFr.verifyENOENTSync(a.status,n),a}dDe.exports=iLi;dDe.exports.spawn=iLi;dDe.exports.sync=_Cc;dDe.exports._parse=nFr;dDe.exports._enoent=iFr});var sFr=H((C9u,oLi)=>{"use strict";oLi.exports=function(t,r){return function(){for(var a=new Array(arguments.length),o=0;o{"use strict";var yCc=sFr(),ECe=Object.prototype.toString;function cFr(e){return ECe.call(e)==="[object Array]"}function oFr(e){return typeof e>"u"}function bCc(e){return e!==null&&!oFr(e)&&e.constructor!==null&&!oFr(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function ECc(e){return ECe.call(e)==="[object ArrayBuffer]"}function SCc(e){return typeof FormData<"u"&&e instanceof FormData}function vCc(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function BCc(e){return typeof e=="string"}function wCc(e){return typeof e=="number"}function aLi(e){return e!==null&&typeof e=="object"}function V1t(e){if(ECe.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function TCc(e){return ECe.call(e)==="[object Date]"}function RCc(e){return ECe.call(e)==="[object File]"}function NCc(e){return ECe.call(e)==="[object Blob]"}function cLi(e){return ECe.call(e)==="[object Function]"}function DCc(e){return aLi(e)&&cLi(e.pipe)}function kCc(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function xCc(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function GCc(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function lFr(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),cFr(e))for(var r=0,n=e.length;r{"use strict";var pDe=$Z();function uLi(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}gLi.exports=function(t,r,n){if(!r)return t;var a;if(n)a=n(r);else if(pDe.isURLSearchParams(r))a=r.toString();else{var o=[];pDe.forEach(r,function(f,I){f===null||typeof f>"u"||(pDe.isArray(f)?I=I+"[]":f=[f],pDe.forEach(f,function(b){pDe.isDate(b)?b=b.toISOString():pDe.isObject(b)&&(b=JSON.stringify(b)),o.push(uLi(I)+"="+uLi(b))}))}),a=o.join("&")}if(a){var l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+a}return t}});var dLi=H((b9u,ALi)=>{"use strict";var LCc=$Z();function W1t(){this.handlers=[]}W1t.prototype.use=function(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};W1t.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};W1t.prototype.forEach=function(t){LCc.forEach(this.handlers,function(n){n!==null&&t(n)})};ALi.exports=W1t});var fLi=H((E9u,pLi)=>{"use strict";var VCc=$Z();pLi.exports=function(t,r){VCc.forEach(t,function(a,o){o!==r&&o.toUpperCase()===r.toUpperCase()&&(t[r]=a,delete t[o])})}});var O1t=H((S9u,ILi)=>{"use strict";ILi.exports=function(t,r,n,a,o){return t.config=r,n&&(t.code=n),t.request=a,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var M1t=H((v9u,hLi)=>{"use strict";var PCc=O1t();hLi.exports=function(t,r,n,a,o){var l=new Error(t);return PCc(l,r,n,a,o)}});var uFr=H((B9u,mLi)=>{"use strict";var WCc=M1t();mLi.exports=function(t,r,n){var a=n.config.validateStatus;!n.status||!a||a(n.status)?t(n):r(WCc("Request failed with status code "+n.status,n.config,null,n.request,n))}});var _Li=H((w9u,CLi)=>{"use strict";var H1t=$Z();CLi.exports=H1t.isStandardBrowserEnv()?function(){return{write:function(r,n,a,o,l,A){var f=[];f.push(r+"="+encodeURIComponent(n)),H1t.isNumber(a)&&f.push("expires="+new Date(a).toGMTString()),H1t.isString(o)&&f.push("path="+o),H1t.isString(l)&&f.push("domain="+l),A===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var bLi=H((T9u,yLi)=>{"use strict";yLi.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var SLi=H((R9u,ELi)=>{"use strict";ELi.exports=function(t,r){return r?t.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):t}});var gFr=H((N9u,vLi)=>{"use strict";var OCc=bLi(),MCc=SLi();vLi.exports=function(t,r){return t&&!OCc(r)?MCc(t,r):r}});var wLi=H((D9u,BLi)=>{"use strict";var AFr=$Z(),HCc=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];BLi.exports=function(t){var r={},n,a,o;return t&&AFr.forEach(t.split(` -`),function(A){if(o=A.indexOf(":"),n=AFr.trim(A.substr(0,o)).toLowerCase(),a=AFr.trim(A.substr(o+1)),n){if(r[n]&&HCc.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([a]):r[n]=r[n]?r[n]+", "+a:a}}),r}});var NLi=H((k9u,RLi)=>{"use strict";var TLi=$Z();RLi.exports=TLi.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function a(o){var l=o;return t&&(r.setAttribute("href",l),l=r.href),r.setAttribute("href",l),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=a(window.location.href),function(l){var A=TLi.isString(l)?a(l):l;return A.protocol===n.protocol&&A.host===n.host}}():function(){return function(){return!0}}()});var kLi=H((x9u,DLi)=>{"use strict";var Y1t=$Z(),YCc=uFr(),QCc=_Li(),XCc=P1t(),JCc=gFr(),UCc=wLi(),KCc=NLi(),dFr=M1t();DLi.exports=function(t){return new Promise(function(n,a){var o=t.data,l=t.headers,A=t.responseType;Y1t.isFormData(o)&&delete l["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var I=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";l.Authorization="Basic "+btoa(I+":"+C)}var b=JCc(t.baseURL,t.url);f.open(t.method.toUpperCase(),XCc(b,t.params,t.paramsSerializer),!0),f.timeout=t.timeout;function E(){if(f){var B="getAllResponseHeaders"in f?UCc(f.getAllResponseHeaders()):null,F=!A||A==="text"||A==="json"?f.responseText:f.response,Q={data:F,status:f.status,statusText:f.statusText,headers:B,config:t,request:f};YCc(n,a,Q),f=null}}if("onloadend"in f?f.onloadend=E:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(E)},f.onabort=function(){f&&(a(dFr("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){a(dFr("Network Error",t,null,f)),f=null},f.ontimeout=function(){var F="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(F=t.timeoutErrorMessage),a(dFr(F,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},Y1t.isStandardBrowserEnv()){var N=(t.withCredentials||KCc(b))&&t.xsrfCookieName?QCc.read(t.xsrfCookieName):void 0;N&&(l[t.xsrfHeaderName]=N)}"setRequestHeader"in f&&Y1t.forEach(l,function(F,Q){typeof o>"u"&&Q.toLowerCase()==="content-type"?delete l[Q]:f.setRequestHeader(Q,F)}),Y1t.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),A&&A!=="json"&&(f.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&f.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(F){f&&(f.abort(),a(F),f=null)}),o||(o=null),f.send(o)})}});var GLi=H((G9u,xLi)=>{var eKe;xLi.exports=function(){if(!eKe){try{eKe=wt("debug")("follow-redirects")}catch{}typeof eKe!="function"&&(eKe=function(){})}eKe.apply(null,arguments)}});var BFr=H((F9u,vFr)=>{var rKe=wt("url"),tKe=rKe.URL,jCc=wt("http"),zCc=wt("https"),mFr=wt("stream").Writable,CFr=wt("assert"),FLi=GLi();(function(){var t=typeof process<"u",r=typeof window<"u"&&typeof document<"u",n=vCe(Error.captureStackTrace);!t&&(r||!n)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var _Fr=!1;try{CFr(new tKe(""))}catch(e){_Fr=e.code==="ERR_INVALID_URL"}var qCc=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],yFr=["abort","aborted","connect","error","socket","timeout"],bFr=Object.create(null);yFr.forEach(function(e){bFr[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var fFr=nKe("ERR_INVALID_URL","Invalid URL",TypeError),IFr=nKe("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),$Cc=nKe("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",IFr),e_c=nKe("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),t_c=nKe("ERR_STREAM_WRITE_AFTER_END","write after end"),r_c=mFr.prototype.destroy||LLi;function BV(e,t){mFr.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(n){try{r._processResponse(n)}catch(a){r.emit("error",a instanceof IFr?a:new IFr({cause:a}))}},this._performRequest()}BV.prototype=Object.create(mFr.prototype);BV.prototype.abort=function(){SFr(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};BV.prototype.destroy=function(e){return SFr(this._currentRequest,e),r_c.call(this,e),this};BV.prototype.write=function(e,t,r){if(this._ending)throw new t_c;if(!SCe(e)&&!s_c(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(vCe(t)&&(r=t,t=null),e.length===0){r&&r();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new e_c),this.abort())};BV.prototype.end=function(e,t,r){if(vCe(e)?(r=e,e=t=null):vCe(t)&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}};BV.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};BV.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};BV.prototype.setTimeout=function(e,t){var r=this;function n(l){l.setTimeout(e),l.removeListener("timeout",l.destroy),l.addListener("timeout",l.destroy)}function a(l){r._timeout&&clearTimeout(r._timeout),r._timeout=setTimeout(function(){r.emit("timeout"),o()},e),n(l)}function o(){r._timeout&&(clearTimeout(r._timeout),r._timeout=null),r.removeListener("abort",o),r.removeListener("error",o),r.removeListener("response",o),r.removeListener("close",o),t&&r.removeListener("timeout",t),r.socket||r._currentRequest.removeListener("socket",a)}return t&&this.on("timeout",t),this.socket?a(this.socket):this._currentRequest.once("socket",a),this.on("socket",n),this.on("abort",o),this.on("error",o),this.on("response",o),this.on("close",o),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){BV.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(BV.prototype,e,{get:function(){return this._currentRequest[e]}})});BV.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};BV.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);n._redirectable=this;for(var a of yFr)n.on(a,bFr[a]);if(this._currentUrl=/^\//.test(this._options.path)?rKe.format(this._options):this._options.path,this._isRedirect){var o=0,l=this,A=this._requestBodyBuffers;(function f(I){if(n===l._currentRequest)if(I)l.emit("error",I);else if(o=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(SFr(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new $Cc;var n,a=this._options.beforeRedirect;a&&(n=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var o=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],pFr(/^content-/i,this._options.headers));var l=pFr(/^host$/i,this._options.headers),A=EFr(this._currentUrl),f=l||A.host,I=/^\w+:/.test(r)?this._currentUrl:rKe.format(Object.assign(A,{host:f})),C=n_c(r,I);if(FLi("redirecting to",C.href),this._isRedirect=!0,hFr(C,this._options),(C.protocol!==A.protocol&&C.protocol!=="https:"||C.host!==f&&!i_c(C.host,f))&&pFr(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),vCe(a)){var b={headers:e.headers,statusCode:t},E={url:I,method:o,headers:n};a(this._options,b,E),this._sanitizeOptions(this._options)}this._performRequest()};function ZLi(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(n){var a=n+":",o=r[a]=e[n],l=t[n]=Object.create(o);function A(I,C,b){return o_c(I)?I=hFr(I):SCe(I)?I=hFr(EFr(I)):(b=C,C=VLi(I),I={protocol:a}),vCe(C)&&(b=C,C=null),C=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},I,C),C.nativeProtocols=r,!SCe(C.host)&&!SCe(C.hostname)&&(C.hostname="::1"),CFr.equal(C.protocol,a,"protocol mismatch"),FLi("options",C),new BV(C,b)}function f(I,C,b){var E=l.request(I,C,b);return E.end(),E}Object.defineProperties(l,{request:{value:A,configurable:!0,enumerable:!0,writable:!0},get:{value:f,configurable:!0,enumerable:!0,writable:!0}})}),t}function LLi(){}function EFr(e){var t;if(_Fr)t=new tKe(e);else if(t=VLi(rKe.parse(e)),!SCe(t.protocol))throw new fFr({input:e});return t}function n_c(e,t){return _Fr?new tKe(e,t):EFr(rKe.resolve(t,e))}function VLi(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new fFr({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new fFr({input:e.href||e});return e}function hFr(e,t){var r=t||{};for(var n of qCc)r[n]=e[n];return r.hostname.startsWith("[")&&(r.hostname=r.hostname.slice(1,-1)),r.port!==""&&(r.port=Number(r.port)),r.path=r.search?r.pathname+r.search:r.pathname,r}function pFr(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r===null||typeof r>"u"?void 0:String(r).trim()}function nKe(e,t,r){function n(a){vCe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,a||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return n.prototype=new(r||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function SFr(e,t){for(var r of yFr)e.removeListener(r,bFr[r]);e.on("error",LLi),e.destroy(t)}function i_c(e,t){CFr(SCe(e)&&SCe(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function SCe(e){return typeof e=="string"||e instanceof String}function vCe(e){return typeof e=="function"}function s_c(e){return typeof e=="object"&&"length"in e}function o_c(e){return tKe&&e instanceof tKe}vFr.exports=ZLi({http:jCc,https:zCc});vFr.exports.wrap=ZLi});var wFr=H((Z9u,a_c)=>{a_c.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var YLi=H((L9u,HLi)=>{"use strict";var iKe=$Z(),PLi=uFr(),c_c=gFr(),l_c=P1t(),u_c=wt("http"),g_c=wt("https"),A_c=BFr().http,d_c=BFr().https,WLi=wt("url"),p_c=wt("zlib"),f_c=wFr(),Q1t=M1t(),TFr=O1t(),OLi=/https:?/;function MLi(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var n=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+n}e.beforeRedirect=function(o){o.headers.host=o.host,MLi(o,t,o.href)}}HLi.exports=function(t){return new Promise(function(n,a){var o=function(Yt){n(Yt)},l=function(Yt){a(Yt)},A=t.data,f=t.headers;if("User-Agent"in f||"user-agent"in f?!f["User-Agent"]&&!f["user-agent"]&&(delete f["User-Agent"],delete f["user-agent"]):f["User-Agent"]="axios/"+f_c.version,A&&!iKe.isStream(A)){if(!Buffer.isBuffer(A))if(iKe.isArrayBuffer(A))A=Buffer.from(new Uint8Array(A));else if(iKe.isString(A))A=Buffer.from(A,"utf-8");else return l(Q1t("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));f["Content-Length"]=A.length}var I=void 0;if(t.auth){var C=t.auth.username||"",b=t.auth.password||"";I=C+":"+b}var E=c_c(t.baseURL,t.url),N=WLi.parse(E),B=N.protocol||"http:";if(!I&&N.auth){var F=N.auth.split(":"),Q=F[0]||"",X=F[1]||"";I=Q+":"+X}I&&delete f.Authorization;var ae=OLi.test(B),ne=ae?t.httpsAgent:t.httpAgent,ce={path:l_c(N.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:f,agent:ne,agents:{http:t.httpAgent,https:t.httpsAgent},auth:I};t.socketPath?ce.socketPath=t.socketPath:(ce.hostname=N.hostname,ce.port=N.port);var fe=t.proxy;if(!fe&&fe!==!1){var ue=B.slice(0,-1)+"_proxy",de=process.env[ue]||process.env[ue.toUpperCase()];if(de){var be=WLi.parse(de),Se=process.env.no_proxy||process.env.NO_PROXY,De=!0;if(Se){var k=Se.split(",").map(function(Yt){return Yt.trim()});De=!k.some(function(Yt){return Yt?Yt==="*"||Yt[0]==="."&&N.hostname.substr(N.hostname.length-Yt.length)===Yt?!0:N.hostname===Yt:!1})}if(De&&(fe={host:be.hostname,port:be.port,protocol:be.protocol},be.auth)){var et=be.auth.split(":");fe.auth={username:et[0],password:et[1]}}}}fe&&(ce.headers.host=N.hostname+(N.port?":"+N.port:""),MLi(ce,fe,B+"//"+N.hostname+(N.port?":"+N.port:"")+ce.path));var ct,Me=ae&&(fe?OLi.test(fe.protocol):!0);t.transport?ct=t.transport:t.maxRedirects===0?ct=Me?g_c:u_c:(t.maxRedirects&&(ce.maxRedirects=t.maxRedirects),ct=Me?d_c:A_c),t.maxBodyLength>-1&&(ce.maxBodyLength=t.maxBodyLength);var je=ct.request(ce,function(Yt){if(!je.aborted){var Tr=Yt,Nr=Yt.req||je;if(Yt.statusCode!==204&&Nr.method!=="HEAD"&&t.decompress!==!1)switch(Yt.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Tr=Tr.pipe(p_c.createUnzip()),delete Yt.headers["content-encoding"];break}var er={status:Yt.statusCode,statusText:Yt.statusMessage,headers:Yt.headers,config:t,request:Nr};if(t.responseType==="stream")er.data=Tr,PLi(o,l,er);else{var vt=[],xt=0;Tr.on("data",function(qt){vt.push(qt),xt+=qt.length,t.maxContentLength>-1&&xt>t.maxContentLength&&(Tr.destroy(),l(Q1t("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,Nr)))}),Tr.on("error",function(qt){je.aborted||l(TFr(qt,t,null,Nr))}),Tr.on("end",function(){var qt=Buffer.concat(vt);t.responseType!=="arraybuffer"&&(qt=qt.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(qt=iKe.stripBOM(qt))),er.data=qt,PLi(o,l,er)})}}});if(je.on("error",function(Yt){je.aborted&&Yt.code!=="ERR_FR_TOO_MANY_REDIRECTS"||l(TFr(Yt,t,null,je))}),t.timeout){var St=parseInt(t.timeout,10);if(isNaN(St)){l(Q1t("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",je));return}je.setTimeout(St,function(){je.abort(),l(Q1t("timeout of "+St+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",je))})}t.cancelToken&&t.cancelToken.promise.then(function(Yt){je.aborted||(je.abort(),l(Yt))}),iKe.isStream(A)?A.on("error",function(Yt){l(TFr(Yt,t,null,je))}).pipe(je):je.end(A)})}});var J1t=H((V9u,JLi)=>{"use strict";var Uk=$Z(),QLi=fLi(),I_c=O1t(),h_c={"Content-Type":"application/x-www-form-urlencoded"};function XLi(e,t){!Uk.isUndefined(e)&&Uk.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function m_c(){var e;return typeof XMLHttpRequest<"u"?e=kLi():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=YLi()),e}function C_c(e,t,r){if(Uk.isString(e))try{return(t||JSON.parse)(e),Uk.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var X1t={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:m_c(),transformRequest:[function(t,r){return QLi(r,"Accept"),QLi(r,"Content-Type"),Uk.isFormData(t)||Uk.isArrayBuffer(t)||Uk.isBuffer(t)||Uk.isStream(t)||Uk.isFile(t)||Uk.isBlob(t)?t:Uk.isArrayBufferView(t)?t.buffer:Uk.isURLSearchParams(t)?(XLi(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Uk.isObject(t)||r&&r["Content-Type"]==="application/json"?(XLi(r,"application/json"),C_c(t)):t}],transformResponse:[function(t){var r=this.transitional,n=r&&r.silentJSONParsing,a=r&&r.forcedJSONParsing,o=!n&&this.responseType==="json";if(o||a&&Uk.isString(t)&&t.length)try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?I_c(l,this,"E_JSON_PARSE"):l}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};X1t.headers={common:{Accept:"application/json, text/plain, */*"}};Uk.forEach(["delete","get","head"],function(t){X1t.headers[t]={}});Uk.forEach(["post","put","patch"],function(t){X1t.headers[t]=Uk.merge(h_c)});JLi.exports=X1t});var KLi=H((P9u,ULi)=>{"use strict";var __c=$Z(),y_c=J1t();ULi.exports=function(t,r,n){var a=this||y_c;return __c.forEach(n,function(l){t=l.call(a,t,r)}),t}});var RFr=H((W9u,jLi)=>{"use strict";jLi.exports=function(t){return!!(t&&t.__CANCEL__)}});var $Li=H((O9u,qLi)=>{"use strict";var zLi=$Z(),NFr=KLi(),b_c=RFr(),E_c=J1t();function DFr(e){e.cancelToken&&e.cancelToken.throwIfRequested()}qLi.exports=function(t){DFr(t),t.headers=t.headers||{},t.data=NFr.call(t,t.data,t.headers,t.transformRequest),t.headers=zLi.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),zLi.forEach(["delete","get","head","post","put","patch","common"],function(a){delete t.headers[a]});var r=t.adapter||E_c.adapter;return r(t).then(function(a){return DFr(t),a.data=NFr.call(t,a.data,a.headers,t.transformResponse),a},function(a){return b_c(a)||(DFr(t),a&&a.response&&(a.response.data=NFr.call(t,a.response.data,a.response.headers,t.transformResponse))),Promise.reject(a)})}});var kFr=H((M9u,e9i)=>{"use strict";var LG=$Z();e9i.exports=function(t,r){r=r||{};var n={},a=["url","method","data"],o=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],A=["validateStatus"];function f(E,N){return LG.isPlainObject(E)&&LG.isPlainObject(N)?LG.merge(E,N):LG.isPlainObject(N)?LG.merge({},N):LG.isArray(N)?N.slice():N}function I(E){LG.isUndefined(r[E])?LG.isUndefined(t[E])||(n[E]=f(void 0,t[E])):n[E]=f(t[E],r[E])}LG.forEach(a,function(N){LG.isUndefined(r[N])||(n[N]=f(void 0,r[N]))}),LG.forEach(o,I),LG.forEach(l,function(N){LG.isUndefined(r[N])?LG.isUndefined(t[N])||(n[N]=f(void 0,t[N])):n[N]=f(void 0,r[N])}),LG.forEach(A,function(N){N in r?n[N]=f(t[N],r[N]):N in t&&(n[N]=f(void 0,t[N]))});var C=a.concat(o).concat(l).concat(A),b=Object.keys(t).concat(Object.keys(r)).filter(function(N){return C.indexOf(N)===-1});return LG.forEach(b,I),n}});var s9i=H((H9u,i9i)=>{"use strict";var r9i=wFr(),xFr={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){xFr[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var t9i={},S_c=r9i.version.split(".");function n9i(e,t){for(var r=t?t.split("."):S_c,n=e.split("."),a=0;a<3;a++){if(r[a]>n[a])return!0;if(r[a]0;){var o=n[a],l=t[o];if(l){var A=e[o],f=A===void 0||l(A,o,e);if(f!==!0)throw new TypeError("option "+o+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+o)}}i9i.exports={isOlderVersion:n9i,assertOptions:v_c,validators:xFr}});var g9i=H((Y9u,u9i)=>{"use strict";var c9i=$Z(),B_c=P1t(),o9i=dLi(),a9i=$Li(),U1t=kFr(),l9i=s9i(),fDe=l9i.validators;function sKe(e){this.defaults=e,this.interceptors={request:new o9i,response:new o9i}}sKe.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=U1t(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;r!==void 0&&l9i.assertOptions(r,{silentJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),forcedJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),clarifyTimeoutError:fDe.transitional(fDe.boolean,"1.0.0")},!1);var n=[],a=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(t)===!1||(a=a&&E.synchronous,n.unshift(E.fulfilled,E.rejected))});var o=[];this.interceptors.response.forEach(function(E){o.push(E.fulfilled,E.rejected)});var l;if(!a){var A=[a9i,void 0];for(Array.prototype.unshift.apply(A,n),A=A.concat(o),l=Promise.resolve(t);A.length;)l=l.then(A.shift(),A.shift());return l}for(var f=t;n.length;){var I=n.shift(),C=n.shift();try{f=I(f)}catch(b){C(b);break}}try{l=a9i(f)}catch(b){return Promise.reject(b)}for(;o.length;)l=l.then(o.shift(),o.shift());return l};sKe.prototype.getUri=function(t){return t=U1t(this.defaults,t),B_c(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};c9i.forEach(["delete","get","head","options"],function(t){sKe.prototype[t]=function(r,n){return this.request(U1t(n||{},{method:t,url:r,data:(n||{}).data}))}});c9i.forEach(["post","put","patch"],function(t){sKe.prototype[t]=function(r,n,a){return this.request(U1t(a||{},{method:t,url:r,data:n}))}});u9i.exports=sKe});var FFr=H((Q9u,A9i)=>{"use strict";function GFr(e){this.message=e}GFr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};GFr.prototype.__CANCEL__=!0;A9i.exports=GFr});var p9i=H((X9u,d9i)=>{"use strict";var w_c=FFr();function K1t(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(a){t=a});var r=this;e(function(a){r.reason||(r.reason=new w_c(a),t(r.reason))})}K1t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};K1t.source=function(){var t,r=new K1t(function(a){t=a});return{token:r,cancel:t}};d9i.exports=K1t});var I9i=H((J9u,f9i)=>{"use strict";f9i.exports=function(t){return function(n){return t.apply(null,n)}}});var m9i=H((U9u,h9i)=>{"use strict";h9i.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var y9i=H((K9u,ZFr)=>{"use strict";var C9i=$Z(),T_c=sFr(),j1t=g9i(),R_c=kFr(),N_c=J1t();function _9i(e){var t=new j1t(e),r=T_c(j1t.prototype.request,t);return C9i.extend(r,j1t.prototype,t),C9i.extend(r,t),r}var I4=_9i(N_c);I4.Axios=j1t;I4.create=function(t){return _9i(R_c(I4.defaults,t))};I4.Cancel=FFr();I4.CancelToken=p9i();I4.isCancel=RFr();I4.all=function(t){return Promise.all(t)};I4.spread=I9i();I4.isAxiosError=m9i();ZFr.exports=I4;ZFr.exports.default=I4});var E9i=H((j9u,b9i)=>{b9i.exports=y9i()});var v9i=H((z9u,S9i)=>{var IDe=1e3,hDe=IDe*60,mDe=hDe*60,BCe=mDe*24,D_c=BCe*7,k_c=BCe*365.25;S9i.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return x_c(e);if(r==="number"&&isFinite(e))return t.long?F_c(e):G_c(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function x_c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*k_c;case"weeks":case"week":case"w":return r*D_c;case"days":case"day":case"d":return r*BCe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mDe;case"minutes":case"minute":case"mins":case"min":case"m":return r*hDe;case"seconds":case"second":case"secs":case"sec":case"s":return r*IDe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function G_c(e){var t=Math.abs(e);return t>=BCe?Math.round(e/BCe)+"d":t>=mDe?Math.round(e/mDe)+"h":t>=hDe?Math.round(e/hDe)+"m":t>=IDe?Math.round(e/IDe)+"s":e+"ms"}function F_c(e){var t=Math.abs(e);return t>=BCe?z1t(e,t,BCe,"day"):t>=mDe?z1t(e,t,mDe,"hour"):t>=hDe?z1t(e,t,hDe,"minute"):t>=IDe?z1t(e,t,IDe,"second"):e+" ms"}function z1t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var LFr=H((q9u,B9i)=>{function Z_c(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=v9i(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{yO.formatArgs=V_c;yO.save=P_c;yO.load=W_c;yO.useColors=L_c;yO.storage=O_c();yO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function L_c(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function V_c(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+q1t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}yO.log=console.debug||console.log||(()=>{});function P_c(e){try{e?yO.storage.setItem("debug",e):yO.storage.removeItem("debug")}catch{}}function W_c(){let e;try{e=yO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function O_c(){try{return localStorage}catch{}}q1t.exports=LFr()(yO);var{formatters:M_c}=q1t.exports;M_c.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var R9i=H((Kk,e2t)=>{var H_c=wt("tty"),$1t=wt("util");Kk.init=j_c;Kk.log=J_c;Kk.formatArgs=Q_c;Kk.save=U_c;Kk.load=K_c;Kk.useColors=Y_c;Kk.destroy=$1t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Kk.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(Kk.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Kk.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function Y_c(){return"colors"in Kk.inspectOpts?!!Kk.inspectOpts.colors:H_c.isatty(process.stderr.fd)}function Q_c(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),t){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=t=>{t===""&&this.props.exitOnCtrlC&&this.handleExit(),t===CIc&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(t===hIc&&this.focusNext(),t===mIc&&this.focusPrevious())},this.handleExit=t=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(t)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=t=>{this.setState(r=>r.focusables.some(a=>a?.id===t)?{activeFocusId:t}:r)},this.focusNext=()=>{this.setState(t=>{var r;let n=(r=t.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(t)||n}})},this.focusPrevious=()=>{this.setState(t=>{var r;let n=(r=t.focusables[t.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(t)||n}})},this.addFocusable=(t,{autoFocus:r})=>{this.setState(n=>{let a=n.activeFocusId;return!a&&r&&(a=t),{activeFocusId:a,focusables:[...n.focusables,{id:t,isActive:!0}]}})},this.removeFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.filter(n=>n.id!==t)}))},this.activateFocusable=t=>{this.setState(r=>({focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!0})}))},this.deactivateFocusable=t=>{this.setState(r=>({activeFocusId:r.activeFocusId===t?void 0:r.activeFocusId,focusables:r.focusables.map(n=>n.id!==t?n:{id:t,isActive:!1})}))},this.findNextFocusable=t=>{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n+1;a{var r;let n=t.focusables.findIndex(a=>a.id===t.activeFocusId);for(let a=n-1;a>=0;a--)if(!((r=t.focusables[a])===null||r===void 0)&&r.isActive)return t.focusables[a].id}}static getDerivedStateFromError(t){return{error:t}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return hCe.default.createElement(gIc.default.Provider,{value:{exit:this.handleExit}},hCe.default.createElement(AIc.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},hCe.default.createElement(dIc.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},hCe.default.createElement(pIc.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},hCe.default.createElement(fIc.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?hCe.default.createElement(IIc.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){qGi.default.hide(this.props.stdout)}componentWillUnmount(){qGi.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(t){this.handleExit(t)}};g4.default=_1t;_1t.displayName="InternalApp"});var rFi=H(A4=>{"use strict";var _Ic=A4&&A4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yIc=A4&&A4.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),bIc=A4&&A4.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&_Ic(t,e,r);return yIc(t,e),t},d4=A4&&A4.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(A4,"__esModule",{value:!0});var EIc=d4(sC()),eFi=AIr(),SIc=d4(fGi()),vIc=d4(BMe()),BIc=d4(hIr()),wIc=d4(mIr()),IGr=d4(RGi()),TIc=d4(WGi()),RIc=d4(mpt()),NIc=d4(rhr()),DIc=bIc(jxr()),kIc=d4(rGr()),xIc=d4($Gi()),aDe=process.env.CI==="false"?!1:BIc.default,tFi=()=>{},hGr=class{constructor(t){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:n,staticOutput:a}=TIc.default(this.rootNode,this.options.stdout.columns||80),o=a&&a!==` +`;if(this.options.debug){o&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(aDe){o&&this.options.stdout.write(a),this.lastOutput=r;return}if(o&&(this.fullStaticOutput+=a),n>=this.options.stdout.rows){this.options.stdout.write(vIc.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}o&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!o&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},wIc.default(this),this.options=t,this.rootNode=DIc.createNode("ink-root"),this.rootNode.onRender=t.debug?this.onRender:eFi.throttle(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=SIc.default.create(t.stdout),this.throttledLog=t.debug?this.log:eFi.throttle(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=IGr.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=RIc.default(this.unmount,{alwaysLast:!1}),t.patchConsole&&this.patchConsole(),aDe||(t.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{t.stdout.off("resize",this.onRender)})}render(t){let r=EIc.default.createElement(xIc.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},t);IGr.default.updateContainer(r,this.container,null,tFi)}writeToStdout(t){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(t+this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stdout.write(t);return}this.log.clear(),this.options.stdout.write(t),this.log(this.lastOutput)}}writeToStderr(t){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(t),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(aDe){this.options.stderr.write(t);return}this.log.clear(),this.options.stderr.write(t),this.log(this.lastOutput)}}unmount(t){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),aDe?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,IGr.default.updateContainer(null,this.container,null,tFi),kIc.default.delete(this.options.stdout),t instanceof Error?this.rejectExitPromise(t):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((t,r)=>{this.resolveExitPromise=t,this.rejectExitPromise=r})),this.exitPromise}clear(){!aDe&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=NIc.default((t,r)=>{t==="stdout"&&this.writeToStdout(r),t==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};A4.default=hGr});var iFi=H(ZUe=>{"use strict";var nFi=ZUe&&ZUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ZUe,"__esModule",{value:!0});var GIc=nFi(rFi()),y1t=nFi(rGr()),FIc=wt("stream"),ZIc=(e,t)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},LIc(t)),n=VIc(r.stdout,()=>new GIc.default(r));return n.render(e),{rerender:n.render,unmount:()=>n.unmount(),waitUntilExit:n.waitUntilExit,cleanup:()=>y1t.default.delete(r.stdout),clear:n.clear}};ZUe.default=ZIc;var LIc=(e={})=>e instanceof FIc.Stream?{stdout:e,stdin:process.stdin}:e,VIc=(e,t)=>{let r;return y1t.default.has(e)?r=y1t.default.get(e):(r=t(),y1t.default.set(e,r)),r}});var oFi=H(Xee=>{"use strict";var PIc=Xee&&Xee.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WIc=Xee&&Xee.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),OIc=Xee&&Xee.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.hasOwnProperty.call(e,r)&&PIc(t,e,r);return WIc(t,e),t};Object.defineProperty(Xee,"__esModule",{value:!0});var LUe=OIc(sC()),sFi=e=>{let{items:t,children:r,style:n}=e,[a,o]=LUe.useState(0),l=LUe.useMemo(()=>t.slice(a),[t,a]);LUe.useLayoutEffect(()=>{o(t.length)},[t.length]);let A=l.map((I,C)=>r(I,a+C)),f=LUe.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},n),[n]);return LUe.default.createElement("ink-box",{internal_static:!0,style:f},A)};sFi.displayName="Static";Xee.default=sFi});var cFi=H(VUe=>{"use strict";var MIc=VUe&&VUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(VUe,"__esModule",{value:!0});var HIc=MIc(sC()),aFi=({children:e,transform:t})=>e==null?null:HIc.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:t},e);aFi.displayName="Transform";VUe.default=aFi});var uFi=H(PUe=>{"use strict";var YIc=PUe&&PUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PUe,"__esModule",{value:!0});var QIc=YIc(sC()),lFi=({count:e=1})=>QIc.default.createElement("ink-text",null,` +`.repeat(e));lFi.displayName="Newline";PUe.default=lFi});var dFi=H(WUe=>{"use strict";var gFi=WUe&&WUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WUe,"__esModule",{value:!0});var XIc=gFi(sC()),JIc=gFi(C1t()),AFi=()=>XIc.default.createElement(JIc.default,{flexGrow:1});AFi.displayName="Spacer";WUe.default=AFi});var b1t=H(OUe=>{"use strict";var UIc=OUe&&OUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(OUe,"__esModule",{value:!0});var KIc=sC(),jIc=UIc(oGr()),zIc=()=>KIc.useContext(jIc.default);OUe.default=zIc});var fFi=H(MUe=>{"use strict";var qIc=MUe&&MUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(MUe,"__esModule",{value:!0});var pFi=sC(),$Ic=qIc(b1t()),ehc=(e,t={})=>{let{stdin:r,setRawMode:n,internal_exitOnCtrlC:a}=$Ic.default();pFi.useEffect(()=>{if(t.isActive!==!1)return n(!0),()=>{n(!1)}},[t.isActive,n]),pFi.useEffect(()=>{if(t.isActive===!1)return;let o=l=>{let A=String(l),f={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!f.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),f.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),f.meta=!0);let I=A>="A"&&A<="Z",C=A>="\u0410"&&A<="\u042F";A.length===1&&(I||C)&&(f.shift=!0),f.tab&&A==="[Z"&&(f.shift=!0),(f.tab||f.backspace||f.delete)&&(A=""),(!(A==="c"&&f.ctrl)||!a)&&e(A,f)};return r?.on("data",o),()=>{r?.off("data",o)}},[t.isActive,r,a,e])};MUe.default=ehc});var IFi=H(HUe=>{"use strict";var thc=HUe&&HUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HUe,"__esModule",{value:!0});var rhc=sC(),nhc=thc(iGr()),ihc=()=>rhc.useContext(nhc.default);HUe.default=ihc});var hFi=H(YUe=>{"use strict";var shc=YUe&&YUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(YUe,"__esModule",{value:!0});var ohc=sC(),ahc=shc(cGr()),chc=()=>ohc.useContext(ahc.default);YUe.default=chc});var mFi=H(QUe=>{"use strict";var lhc=QUe&&QUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QUe,"__esModule",{value:!0});var uhc=sC(),ghc=lhc(uGr()),Ahc=()=>uhc.useContext(ghc.default);QUe.default=Ahc});var _Fi=H(JUe=>{"use strict";var CFi=JUe&&JUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(JUe,"__esModule",{value:!0});var XUe=sC(),dhc=CFi(m1t()),phc=CFi(b1t()),fhc=({isActive:e=!0,autoFocus:t=!1,id:r}={})=>{let{isRawModeSupported:n,setRawMode:a}=phc.default(),{activeId:o,add:l,remove:A,activate:f,deactivate:I,focus:C}=XUe.useContext(dhc.default),b=XUe.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return XUe.useEffect(()=>(l(b,{autoFocus:t}),()=>{A(b)}),[b,t]),XUe.useEffect(()=>{e?f(b):I(b)},[e,b]),XUe.useEffect(()=>{if(!(!n||!e))return a(!0),()=>{a(!1)}},[e]),{isFocused:!!b&&o===b,focus:C}};JUe.default=fhc});var yFi=H(UUe=>{"use strict";var Ihc=UUe&&UUe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UUe,"__esModule",{value:!0});var hhc=sC(),mhc=Ihc(m1t()),Chc=()=>{let e=hhc.useContext(mhc.default);return{enableFocus:e.enableFocus,disableFocus:e.disableFocus,focusNext:e.focusNext,focusPrevious:e.focusPrevious,focus:e.focus}};UUe.default=Chc});var bFi=H(mGr=>{"use strict";Object.defineProperty(mGr,"__esModule",{value:!0});mGr.default=e=>{var t,r,n,a;return{width:(r=(t=e.yogaNode)===null||t===void 0?void 0:t.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(n=e.yogaNode)===null||n===void 0?void 0:n.getComputedHeight())!==null&&a!==void 0?a:0}}});var lH=H(Jk=>{"use strict";Object.defineProperty(Jk,"__esModule",{value:!0});var _hc=iFi();Object.defineProperty(Jk,"render",{enumerable:!0,get:function(){return _hc.default}});var yhc=C1t();Object.defineProperty(Jk,"Box",{enumerable:!0,get:function(){return yhc.default}});var bhc=fGr();Object.defineProperty(Jk,"Text",{enumerable:!0,get:function(){return bhc.default}});var Ehc=oFi();Object.defineProperty(Jk,"Static",{enumerable:!0,get:function(){return Ehc.default}});var Shc=cFi();Object.defineProperty(Jk,"Transform",{enumerable:!0,get:function(){return Shc.default}});var vhc=uFi();Object.defineProperty(Jk,"Newline",{enumerable:!0,get:function(){return vhc.default}});var Bhc=dFi();Object.defineProperty(Jk,"Spacer",{enumerable:!0,get:function(){return Bhc.default}});var whc=fFi();Object.defineProperty(Jk,"useInput",{enumerable:!0,get:function(){return whc.default}});var Thc=IFi();Object.defineProperty(Jk,"useApp",{enumerable:!0,get:function(){return Thc.default}});var Rhc=b1t();Object.defineProperty(Jk,"useStdin",{enumerable:!0,get:function(){return Rhc.default}});var Nhc=hFi();Object.defineProperty(Jk,"useStdout",{enumerable:!0,get:function(){return Nhc.default}});var Dhc=mFi();Object.defineProperty(Jk,"useStderr",{enumerable:!0,get:function(){return Dhc.default}});var khc=_Fi();Object.defineProperty(Jk,"useFocus",{enumerable:!0,get:function(){return khc.default}});var xhc=yFi();Object.defineProperty(Jk,"useFocusManager",{enumerable:!0,get:function(){return xhc.default}});var Ghc=bFi();Object.defineProperty(Jk,"measureElement",{enumerable:!0,get:function(){return Ghc.default}})});var v1t=H(S1t=>{"use strict";Object.defineProperty(S1t,"__esModule",{value:!0});S1t.Gem=void 0;var Fhc=(Pa(),vi(Va)),Zhc=lH(),E1t=Fhc.__importStar(sC());S1t.Gem=(0,E1t.memo)(({active:e})=>{let t=(0,E1t.useMemo)(()=>e?"\u25C9":"\u25EF",[e]),r=(0,E1t.useMemo)(()=>e?"green":"yellow",[e]);return E1t.default.createElement(Zhc.Text,{color:r},t)})});var cDe=H(CGr=>{"use strict";Object.defineProperty(CGr,"__esModule",{value:!0});CGr.useKeypress=Vhc;var Lhc=lH(),EFi=sC();function Vhc({active:e},t,r){let{stdin:n}=(0,Lhc.useStdin)(),a=(0,EFi.useCallback)((o,l)=>t(o,l),r);(0,EFi.useEffect)(()=>{if(!(!e||!n))return n.on("keypress",a),()=>{n.off("keypress",a)}},[e,a,n])}});var _Gr=H(lDe=>{"use strict";Object.defineProperty(lDe,"__esModule",{value:!0});lDe.useFocusRequest=lDe.FocusRequest=void 0;var Phc=cDe(),B1t;(function(e){e.BEFORE="before",e.AFTER="after"})(B1t||(lDe.FocusRequest=B1t={}));var Whc=function({active:e},t,r){(0,Phc.useKeypress)({active:e},(n,a)=>{a.name==="tab"&&(a.shift?t(B1t.BEFORE):t(B1t.AFTER))},r)};lDe.useFocusRequest=Whc});var T1t=H(w1t=>{"use strict";Object.defineProperty(w1t,"__esModule",{value:!0});w1t.useListInput=void 0;var Ohc=cDe(),Mhc=function(e,t,{active:r,minus:n,plus:a,set:o,loop:l=!0}){(0,Ohc.useKeypress)({active:r},(A,f)=>{let I=t.indexOf(e);switch(f.name){case n:{let C=I-1;if(l){o(t[(t.length+C)%t.length]);return}if(C<0)return;o(t[C])}break;case a:{let C=I+1;if(l){o(t[C%t.length]);return}if(C>=t.length)return;o(t[C])}break}},[t,e,a,o,l])};w1t.useListInput=Mhc});var N1t=H(R1t=>{"use strict";Object.defineProperty(R1t,"__esModule",{value:!0});R1t.ScrollableItems=void 0;var Hhc=(Pa(),vi(Va)),uDe=lH(),p4=Hhc.__importStar(sC()),Yhc=_Gr(),Qhc=T1t(),Xhc=({active:e=!0,children:t=[],radius:r=10,size:n=1,loop:a=!0,onFocusRequest:o,willReachEnd:l})=>{let A=Q=>{if(Q.key===null)throw new Error("Expected all children to have a key");return Q.key},f=p4.default.Children.map(t,Q=>A(Q)),I=f[0],[C,b]=(0,p4.useState)(I),E=f.indexOf(C);(0,p4.useEffect)(()=>{f.includes(C)||b(I)},[t]),(0,p4.useEffect)(()=>{l&&E>=f.length-2&&l()},[E]),(0,Yhc.useFocusRequest)({active:e&&!!o},Q=>{o?.(Q)},[o]),(0,Qhc.useListInput)(C,f,{active:e,minus:"up",plus:"down",set:b,loop:a});let N=E-r,B=E+r;B>f.length&&(N-=B-f.length,B=f.length),N<0&&(B+=-N,N=0),B>=f.length&&(B=f.length-1);let F=[];for(let Q=N;Q<=B;++Q){let X=f[Q],ae=e&&X===C;F.push(p4.default.createElement(uDe.Box,{key:X,height:n},p4.default.createElement(uDe.Box,{marginLeft:1,marginRight:1},p4.default.createElement(uDe.Text,null,ae?p4.default.createElement(uDe.Text,{color:"cyan",bold:!0},">"):" ")),p4.default.createElement(uDe.Box,null,p4.default.cloneElement(t[Q],{active:ae}))))}return p4.default.createElement(uDe.Box,{flexDirection:"column",width:"100%"},F)};R1t.ScrollableItems=Xhc});var yGr=H(CCe=>{"use strict";Object.defineProperty(CCe,"__esModule",{value:!0});CCe.Application=CCe.MinistoreContext=void 0;var Jhc=(Pa(),vi(Va)),Uhc=lH(),KUe=Jhc.__importStar(sC()),Khc=wt("readline");CCe.MinistoreContext=KUe.default.createContext(null);var jhc=({children:e})=>{let{stdin:t,setRawMode:r}=(0,Uhc.useStdin)();(0,KUe.useEffect)(()=>{r&&r(!0),t&&(0,Khc.emitKeypressEvents)(t)},[t,r]);let[n,a]=(0,KUe.useState)(new Map),o=(0,KUe.useMemo)(()=>({getAll:()=>n,get:l=>n.get(l),set:(l,A)=>a(f=>new Map([...f,[l,A]])),setAll:l=>a(A=>new Map([...A,...l]))}),[n,a]);return KUe.default.createElement(CCe.MinistoreContext.Provider,{value:o,children:e})};CCe.Application=jhc});var D1t=H(bGr=>{"use strict";Object.defineProperty(bGr,"__esModule",{value:!0});bGr.renderForm=emc;var zhc=(Pa(),vi(Va)),SFi=lH(),vFi=zhc.__importDefault(sC()),qhc=yGr(),$hc=cDe();async function emc(e,t,{stdin:r,stdout:n,stderr:a}){let o,l=f=>{let{exit:I}=(0,SFi.useApp)();(0,$hc.useKeypress)({active:!0},(C,b)=>{b.name==="return"&&(o=f,I())},[I,f])},{waitUntilExit:A}=(0,SFi.render)(vFi.default.createElement(qhc.Application,null,vFi.default.createElement(e,{...t,useSubmit:l})),{stdin:r,stdout:n,stderr:a});return await A(),o}});var BFi=H(vGr=>{"use strict";Object.defineProperty(vGr,"__esModule",{value:!0});var vj=(Pa(),vi(Va)),EGr=el(),FR=Bn(),Sj=no(),tmc=vj.__importStar(A1t()),k1t=($c(),vi(rg)),SGr=vj.__importDefault(UC()),ZG=vj.__importStar(hUe()),jUe=class extends EGr.BaseCommand{constructor(){super(...arguments),this.interactive=k1t.Option.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){tmc.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vj.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vj.__importStar(N1t())),{FocusRequest:n}=await Promise.resolve().then(()=>vj.__importStar(_Gr())),{useListInput:a}=await Promise.resolve().then(()=>vj.__importStar(T1t())),{renderForm:o}=await Promise.resolve().then(()=>vj.__importStar(D1t())),{Box:l,Text:A}=await Promise.resolve().then(()=>vj.__importStar(lH())),{default:f,useCallback:I,useState:C}=await Promise.resolve().then(()=>vj.__importStar(sC())),b=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:E,workspace:N}=await FR.Project.find(b,this.context.cwd);if(!N)throw new EGr.WorkspaceRequiredError(E.cwd,this.context.cwd);await E.restoreInstallState();let B=await ZG.openVersionFile(E);if(B===null||B.releaseRoots.size===0)return 0;if(B.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");let F=()=>f.createElement(l,{flexDirection:"row",paddingBottom:1},f.createElement(l,{flexDirection:"column",width:60},f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),f.createElement(l,null,f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},""),"/",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),f.createElement(l,{flexDirection:"column"},f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to save.")),f.createElement(l,{marginLeft:1},f.createElement(A,null,"Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),Q=({workspace:ue,active:de,decision:be,setDecision:Se})=>{let De=ue.manifest.raw.stableVersion??ue.manifest.version;if(De===null)throw new Error(`Assertion failed: The version should have been set (${FR.structUtils.prettyLocator(b,ue.anchoredLocator)})`);if(SGr.default.prerelease(De)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${De})`);let k=[ZG.Decision.UNDECIDED,ZG.Decision.DECLINE,ZG.Decision.PATCH,ZG.Decision.MINOR,ZG.Decision.MAJOR];a(be,k,{active:de,minus:"left",plus:"right",set:Se});let et=be===ZG.Decision.UNDECIDED?f.createElement(A,{color:"yellow"},De):be===ZG.Decision.DECLINE?f.createElement(A,{color:"green"},De):f.createElement(A,null,f.createElement(A,{color:"magenta"},De)," \u2192 ",f.createElement(A,{color:"green"},SGr.default.valid(be)?be:SGr.default.inc(De,be)));return f.createElement(l,{flexDirection:"column"},f.createElement(l,null,f.createElement(A,null,FR.structUtils.prettyLocator(b,ue.anchoredLocator)," - ",et)),f.createElement(l,null,k.map(ct=>{let Me=ct===be;return f.createElement(l,{key:ct,paddingLeft:2},f.createElement(A,null,f.createElement(t,{active:Me})," ",ct))})))},X=ue=>{let de=new Set(B.releaseRoots),be=new Map([...ue].filter(([Se])=>de.has(Se)));for(;;){let Se=ZG.getUndecidedDependentWorkspaces({project:B.project,releases:be}),De=!1;if(Se.length>0){for(let[k]of Se)if(!de.has(k)){de.add(k),De=!0;let et=ue.get(k);typeof et<"u"&&be.set(k,et)}}if(!De)break}return{relevantWorkspaces:de,relevantReleases:be}},ae=()=>{let[ue,de]=C(()=>new Map(B.releases)),be=I((Se,De)=>{let k=new Map(ue);De!==ZG.Decision.UNDECIDED?k.set(Se,De):k.delete(Se);let{relevantReleases:et}=X(k);de(et)},[ue,de]);return[ue,be]},ne=({workspaces:ue,releases:de})=>{let be=[];be.push(`${ue.size} total`);let Se=0,De=0;for(let k of ue){let et=de.get(k);typeof et>"u"?De+=1:et!==ZG.Decision.DECLINE&&(Se+=1)}return be.push(`${Se} release${Se===1?"":"s"}`),be.push(`${De} remaining`),f.createElement(A,{color:"yellow"},be.join(", "))},fe=await o(({useSubmit:ue})=>{let[de,be]=ae();ue(de);let{relevantWorkspaces:Se}=X(de),De=new Set([...Se].filter(Me=>!B.releaseRoots.has(Me))),[k,et]=C(0),ct=I(Me=>{switch(Me){case n.BEFORE:et(k-1);break;case n.AFTER:et(k+1);break}},[k,et]);return f.createElement(l,{flexDirection:"column"},f.createElement(F,null),f.createElement(l,null,f.createElement(A,{wrap:"wrap"},"The following files have been modified in your local checkout.")),f.createElement(l,{flexDirection:"column",marginTop:1,paddingLeft:2},[...B.changedFiles].map(Me=>f.createElement(l,{key:Me},f.createElement(A,null,f.createElement(A,{color:"grey"},Sj.npath.fromPortablePath(B.root)),Sj.npath.sep,Sj.npath.relative(Sj.npath.fromPortablePath(B.root),Sj.npath.fromPortablePath(Me)))))),B.releaseRoots.size>0&&f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),De.size>3?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:B.releaseRoots,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===0,radius:1,size:2,onFocusRequest:ct},[...B.releaseRoots].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))),De.size>0?f.createElement(f.Fragment,null,f.createElement(l,{marginTop:1},f.createElement(A,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),f.createElement(l,null,f.createElement(A,null,"(Press ",f.createElement(A,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),De.size>5?f.createElement(l,{marginTop:1},f.createElement(ne,{workspaces:De,releases:de})):null,f.createElement(l,{marginTop:1,flexDirection:"column"},f.createElement(r,{active:k%2===1,radius:2,size:2,onFocusRequest:ct},[...De].map(Me=>f.createElement(Q,{key:Me.cwd,workspace:Me,decision:de.get(Me)||ZG.Decision.UNDECIDED,setDecision:je=>be(Me,je)}))))):null)},{versionFile:B},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof fe>"u")return 1;B.releases.clear();for(let[ue,de]of fe)B.releases.set(ue,de);await B.saveAll()}async executeStandard(){let t=await FR.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await FR.Project.find(t,this.context.cwd);if(!n)throw new EGr.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await FR.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{let l=await ZG.openVersionFile(r);if(l===null||l.releaseRoots.size===0)return;if(l.root===null)throw new k1t.UsageError("This command can only be run on Git repositories");if(o.reportInfo(FR.MessageName.UNNAMED,`Your PR was started right after ${FR.formatUtils.pretty(t,l.baseHash.slice(0,7),"yellow")} ${FR.formatUtils.pretty(t,l.baseTitle,"magenta")}`),l.changedFiles.size>0){o.reportInfo(FR.MessageName.UNNAMED,"You have changed the following files since then:"),o.reportSeparator();for(let b of l.changedFiles)o.reportInfo(null,`${FR.formatUtils.pretty(t,Sj.npath.fromPortablePath(l.root),"gray")}${Sj.npath.sep}${Sj.npath.relative(Sj.npath.fromPortablePath(l.root),Sj.npath.fromPortablePath(b))}`)}let A=!1,f=!1,I=ZG.getUndecidedWorkspaces(l);if(I.size>0){A||o.reportSeparator();for(let b of I)o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} has been modified but doesn't have a release strategy attached`);A=!0}let C=ZG.getUndecidedDependentWorkspaces(l);for(let[b,E]of C)f||o.reportSeparator(),o.reportError(FR.MessageName.UNNAMED,`${FR.structUtils.prettyLocator(t,b.anchoredLocator)} doesn't have a release strategy attached, but depends on ${FR.structUtils.prettyWorkspace(t,E)} which is planned for release.`),f=!0;(A||f)&&(o.reportSeparator(),o.reportInfo(FR.MessageName.UNNAMED,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),o.reportInfo(FR.MessageName.UNNAMED,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};jUe.paths=[["version","check"]];jUe.usage=k1t.Command.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});vGr.default=jUe});var NFi=H(wGr=>{"use strict";Object.defineProperty(wGr,"__esModule",{value:!0});var RFi=(Pa(),vi(Va)),wFi=el(),TFi=Bn(),yCe=($c(),vi(rg)),BGr=RFi.__importDefault(UC()),_Ce=RFi.__importStar(hUe()),zUe=class extends wFi.BaseCommand{constructor(){super(...arguments),this.deferred=yCe.Option.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"}),this.immediate=yCe.Option.Boolean("-i,--immediate",{description:"Bump the version immediately"}),this.strategy=yCe.Option.String()}async execute(){let t=await TFi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TFi.Project.find(t,this.context.cwd);if(!n)throw new wFi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=t.get("preferDeferredVersions");this.deferred&&(a=!0),this.immediate&&(a=!1);let o=BGr.default.valid(this.strategy),l=this.strategy===_Ce.Decision.DECLINE,A;if(o)if(n.manifest.version!==null){let I=_Ce.suggestStrategy(n.manifest.version,this.strategy);I!==null?A=I:A=this.strategy}else A=this.strategy;else{let I=n.manifest.version;if(!l){if(I===null)throw new yCe.UsageError("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof I!="string"||!BGr.default.valid(I))throw new yCe.UsageError(`Can't bump the version (${I}) if it's not valid semver`)}A=_Ce.validateReleaseDecision(this.strategy)}if(!a){let C=(await _Ce.resolveVersionFiles(r)).get(n);if(typeof C<"u"&&A!==_Ce.Decision.DECLINE){let b=_Ce.applyStrategy(n.manifest.version,A);if(BGr.default.lt(b,C))throw new yCe.UsageError(`Can't bump the version to one that would be lower than the current deferred one (${C})`)}}let f=await _Ce.openVersionFile(r,{allowEmpty:!0});return f.releases.set(n,A),await f.saveAll(),a?0:await this.cli.run(["version","apply"])}};zUe.paths=[["version"]];zUe.usage=yCe.Command.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});wGr.default=zUe});var TGr=H(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});f4.versionUtils=f4.VersionCommand=f4.VersionCheckCommand=f4.VersionApplyCommand=void 0;var x1t=(Pa(),vi(Va)),DFi=Bn(),kFi=x1t.__importDefault(Uxi());f4.VersionApplyCommand=kFi.default;var xFi=x1t.__importDefault(BFi());f4.VersionCheckCommand=xFi.default;var GFi=x1t.__importDefault(NFi());f4.VersionCommand=GFi.default;var rmc=x1t.__importStar(hUe());f4.versionUtils=rmc;var nmc={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:DFi.SettingsType.ABSOLUTE_PATH,default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:DFi.SettingsType.BOOLEAN,default:!1}},commands:[kFi.default,xFi.default,GFi.default]};f4.default=nmc});var XZi=H((p9u,QZi)=>{"use strict";var HZi=wt("path"),iCc=Jjt(),sCc=Kjt();function YZi(e,t){let r=e.options.env||process.env,n=process.cwd(),a=e.options.cwd!=null,o=a&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let l;try{l=iCc.sync(e.command,{path:r[sCc({env:r})],pathExt:t?HZi.delimiter:void 0})}catch{}finally{o&&process.chdir(n)}return l&&(l=HZi.resolve(a?e.options.cwd:"",l)),l}function oCc(e){return YZi(e)||YZi(e,!0)}QZi.exports=oCc});var JZi=H((f9u,$Gr)=>{"use strict";var qGr=/([()\][%!^"`<>&|;, *?])/g;function aCc(e){return e=e.replace(qGr,"^$1"),e}function cCc(e,t){return e=`${e}`,e=e.replace(/(\\*)"/g,'$1$1\\"'),e=e.replace(/(\\*)$/,"$1$1"),e=`"${e}"`,e=e.replace(qGr,"^$1"),t&&(e=e.replace(qGr,"^$1")),e}$Gr.exports.command=aCc;$Gr.exports.argument=cCc});var KZi=H((I9u,UZi)=>{"use strict";var eFr=wt("fs"),lCc=qjt();function uCc(e){let r=Buffer.alloc(150),n;try{n=eFr.openSync(e,"r"),eFr.readSync(n,r,0,150,0),eFr.closeSync(n)}catch{}return lCc(r.toString())}UZi.exports=uCc});var $Zi=H((h9u,qZi)=>{"use strict";var gCc=wt("path"),jZi=XZi(),zZi=JZi(),ACc=KZi(),dCc=process.platform==="win32",pCc=/\.(?:com|exe)$/i,fCc=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function ICc(e){e.file=jZi(e);let t=e.file&&ACc(e.file);return t?(e.args.unshift(e.file),e.command=t,jZi(e)):e.file}function hCc(e){if(!dCc)return e;let t=ICc(e),r=!pCc.test(t);if(e.options.forceShell||r){let n=fCc.test(t);e.command=gCc.normalize(e.command),e.command=zZi.command(e.command),e.args=e.args.map(o=>zZi.argument(o,n));let a=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${a}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function mCc(e,t,r){t&&!Array.isArray(t)&&(r=t,t=null),t=t?t.slice(0):[],r=Object.assign({},r);let n={command:e,args:t,options:r,file:void 0,original:{command:e,args:t}};return r.shell?n:hCc(n)}qZi.exports=mCc});var rLi=H((m9u,tLi)=>{"use strict";var tFr=process.platform==="win32";function rFr(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function CCc(e,t){if(!tFr)return;let r=e.emit;e.emit=function(n,a){if(n==="exit"){let o=eLi(a,t,"spawn");if(o)return r.call(e,"error",o)}return r.apply(e,arguments)}}function eLi(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawn"):null}function _Cc(e,t){return tFr&&e===1&&!t.file?rFr(t.original,"spawnSync"):null}tLi.exports={hookChildProcess:CCc,verifyENOENT:eLi,verifyENOENTSync:_Cc,notFoundError:rFr}});var sLi=H((C9u,dDe)=>{"use strict";var nLi=wt("child_process"),nFr=$Zi(),iFr=rLi();function iLi(e,t,r){let n=nFr(e,t,r),a=nLi.spawn(n.command,n.args,n.options);return iFr.hookChildProcess(a,n),a}function yCc(e,t,r){let n=nFr(e,t,r),a=nLi.spawnSync(n.command,n.args,n.options);return a.error=a.error||iFr.verifyENOENTSync(a.status,n),a}dDe.exports=iLi;dDe.exports.spawn=iLi;dDe.exports.sync=yCc;dDe.exports._parse=nFr;dDe.exports._enoent=iFr});var sFr=H((_9u,oLi)=>{"use strict";oLi.exports=function(t,r){return function(){for(var a=new Array(arguments.length),o=0;o{"use strict";var bCc=sFr(),ECe=Object.prototype.toString;function cFr(e){return ECe.call(e)==="[object Array]"}function oFr(e){return typeof e>"u"}function ECc(e){return e!==null&&!oFr(e)&&e.constructor!==null&&!oFr(e.constructor)&&typeof e.constructor.isBuffer=="function"&&e.constructor.isBuffer(e)}function SCc(e){return ECe.call(e)==="[object ArrayBuffer]"}function vCc(e){return typeof FormData<"u"&&e instanceof FormData}function BCc(e){var t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&e.buffer instanceof ArrayBuffer,t}function wCc(e){return typeof e=="string"}function TCc(e){return typeof e=="number"}function aLi(e){return e!==null&&typeof e=="object"}function V1t(e){if(ECe.call(e)!=="[object Object]")return!1;var t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function RCc(e){return ECe.call(e)==="[object Date]"}function NCc(e){return ECe.call(e)==="[object File]"}function DCc(e){return ECe.call(e)==="[object Blob]"}function cLi(e){return ECe.call(e)==="[object Function]"}function kCc(e){return aLi(e)&&cLi(e.pipe)}function xCc(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}function GCc(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}function FCc(){return typeof navigator<"u"&&(navigator.product==="ReactNative"||navigator.product==="NativeScript"||navigator.product==="NS")?!1:typeof window<"u"&&typeof document<"u"}function lFr(e,t){if(!(e===null||typeof e>"u"))if(typeof e!="object"&&(e=[e]),cFr(e))for(var r=0,n=e.length;r{"use strict";var pDe=$Z();function uLi(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}gLi.exports=function(t,r,n){if(!r)return t;var a;if(n)a=n(r);else if(pDe.isURLSearchParams(r))a=r.toString();else{var o=[];pDe.forEach(r,function(f,I){f===null||typeof f>"u"||(pDe.isArray(f)?I=I+"[]":f=[f],pDe.forEach(f,function(b){pDe.isDate(b)?b=b.toISOString():pDe.isObject(b)&&(b=JSON.stringify(b)),o.push(uLi(I)+"="+uLi(b))}))}),a=o.join("&")}if(a){var l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+a}return t}});var dLi=H((E9u,ALi)=>{"use strict";var VCc=$Z();function W1t(){this.handlers=[]}W1t.prototype.use=function(t,r,n){return this.handlers.push({fulfilled:t,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1};W1t.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)};W1t.prototype.forEach=function(t){VCc.forEach(this.handlers,function(n){n!==null&&t(n)})};ALi.exports=W1t});var fLi=H((S9u,pLi)=>{"use strict";var PCc=$Z();pLi.exports=function(t,r){PCc.forEach(t,function(a,o){o!==r&&o.toUpperCase()===r.toUpperCase()&&(t[r]=a,delete t[o])})}});var O1t=H((v9u,ILi)=>{"use strict";ILi.exports=function(t,r,n,a,o){return t.config=r,n&&(t.code=n),t.request=a,t.response=o,t.isAxiosError=!0,t.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},t}});var M1t=H((B9u,hLi)=>{"use strict";var WCc=O1t();hLi.exports=function(t,r,n,a,o){var l=new Error(t);return WCc(l,r,n,a,o)}});var uFr=H((w9u,mLi)=>{"use strict";var OCc=M1t();mLi.exports=function(t,r,n){var a=n.config.validateStatus;!n.status||!a||a(n.status)?t(n):r(OCc("Request failed with status code "+n.status,n.config,null,n.request,n))}});var _Li=H((T9u,CLi)=>{"use strict";var H1t=$Z();CLi.exports=H1t.isStandardBrowserEnv()?function(){return{write:function(r,n,a,o,l,A){var f=[];f.push(r+"="+encodeURIComponent(n)),H1t.isNumber(a)&&f.push("expires="+new Date(a).toGMTString()),H1t.isString(o)&&f.push("path="+o),H1t.isString(l)&&f.push("domain="+l),A===!0&&f.push("secure"),document.cookie=f.join("; ")},read:function(r){var n=document.cookie.match(new RegExp("(^|;\\s*)("+r+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(r){this.write(r,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()});var bLi=H((R9u,yLi)=>{"use strict";yLi.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}});var SLi=H((N9u,ELi)=>{"use strict";ELi.exports=function(t,r){return r?t.replace(/\/+$/,"")+"/"+r.replace(/^\/+/,""):t}});var gFr=H((D9u,vLi)=>{"use strict";var MCc=bLi(),HCc=SLi();vLi.exports=function(t,r){return t&&!MCc(r)?HCc(t,r):r}});var wLi=H((k9u,BLi)=>{"use strict";var AFr=$Z(),YCc=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];BLi.exports=function(t){var r={},n,a,o;return t&&AFr.forEach(t.split(` +`),function(A){if(o=A.indexOf(":"),n=AFr.trim(A.substr(0,o)).toLowerCase(),a=AFr.trim(A.substr(o+1)),n){if(r[n]&&YCc.indexOf(n)>=0)return;n==="set-cookie"?r[n]=(r[n]?r[n]:[]).concat([a]):r[n]=r[n]?r[n]+", "+a:a}}),r}});var NLi=H((x9u,RLi)=>{"use strict";var TLi=$Z();RLi.exports=TLi.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),n;function a(o){var l=o;return t&&(r.setAttribute("href",l),l=r.href),r.setAttribute("href",l),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:r.pathname.charAt(0)==="/"?r.pathname:"/"+r.pathname}}return n=a(window.location.href),function(l){var A=TLi.isString(l)?a(l):l;return A.protocol===n.protocol&&A.host===n.host}}():function(){return function(){return!0}}()});var kLi=H((G9u,DLi)=>{"use strict";var Y1t=$Z(),QCc=uFr(),XCc=_Li(),JCc=P1t(),UCc=gFr(),KCc=wLi(),jCc=NLi(),dFr=M1t();DLi.exports=function(t){return new Promise(function(n,a){var o=t.data,l=t.headers,A=t.responseType;Y1t.isFormData(o)&&delete l["Content-Type"];var f=new XMLHttpRequest;if(t.auth){var I=t.auth.username||"",C=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";l.Authorization="Basic "+btoa(I+":"+C)}var b=UCc(t.baseURL,t.url);f.open(t.method.toUpperCase(),JCc(b,t.params,t.paramsSerializer),!0),f.timeout=t.timeout;function E(){if(f){var B="getAllResponseHeaders"in f?KCc(f.getAllResponseHeaders()):null,F=!A||A==="text"||A==="json"?f.responseText:f.response,Q={data:F,status:f.status,statusText:f.statusText,headers:B,config:t,request:f};QCc(n,a,Q),f=null}}if("onloadend"in f?f.onloadend=E:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(E)},f.onabort=function(){f&&(a(dFr("Request aborted",t,"ECONNABORTED",f)),f=null)},f.onerror=function(){a(dFr("Network Error",t,null,f)),f=null},f.ontimeout=function(){var F="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(F=t.timeoutErrorMessage),a(dFr(F,t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",f)),f=null},Y1t.isStandardBrowserEnv()){var N=(t.withCredentials||jCc(b))&&t.xsrfCookieName?XCc.read(t.xsrfCookieName):void 0;N&&(l[t.xsrfHeaderName]=N)}"setRequestHeader"in f&&Y1t.forEach(l,function(F,Q){typeof o>"u"&&Q.toLowerCase()==="content-type"?delete l[Q]:f.setRequestHeader(Q,F)}),Y1t.isUndefined(t.withCredentials)||(f.withCredentials=!!t.withCredentials),A&&A!=="json"&&(f.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&f.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(F){f&&(f.abort(),a(F),f=null)}),o||(o=null),f.send(o)})}});var GLi=H((F9u,xLi)=>{var eKe;xLi.exports=function(){if(!eKe){try{eKe=wt("debug")("follow-redirects")}catch{}typeof eKe!="function"&&(eKe=function(){})}eKe.apply(null,arguments)}});var BFr=H((Z9u,vFr)=>{var rKe=wt("url"),tKe=rKe.URL,zCc=wt("http"),qCc=wt("https"),mFr=wt("stream").Writable,CFr=wt("assert"),FLi=GLi();(function(){var t=typeof process<"u",r=typeof window<"u"&&typeof document<"u",n=vCe(Error.captureStackTrace);!t&&(r||!n)&&console.warn("The follow-redirects package should be excluded from browser builds.")})();var _Fr=!1;try{CFr(new tKe(""))}catch(e){_Fr=e.code==="ERR_INVALID_URL"}var $Cc=["auth","host","hostname","href","path","pathname","port","protocol","query","search","hash"],yFr=["abort","aborted","connect","error","socket","timeout"],bFr=Object.create(null);yFr.forEach(function(e){bFr[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var fFr=nKe("ERR_INVALID_URL","Invalid URL",TypeError),IFr=nKe("ERR_FR_REDIRECTION_FAILURE","Redirected request failed"),e_c=nKe("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded",IFr),t_c=nKe("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),r_c=nKe("ERR_STREAM_WRITE_AFTER_END","write after end"),n_c=mFr.prototype.destroy||LLi;function BV(e,t){mFr.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(n){try{r._processResponse(n)}catch(a){r.emit("error",a instanceof IFr?a:new IFr({cause:a}))}},this._performRequest()}BV.prototype=Object.create(mFr.prototype);BV.prototype.abort=function(){SFr(this._currentRequest),this._currentRequest.abort(),this.emit("abort")};BV.prototype.destroy=function(e){return SFr(this._currentRequest,e),n_c.call(this,e),this};BV.prototype.write=function(e,t,r){if(this._ending)throw new r_c;if(!SCe(e)&&!o_c(e))throw new TypeError("data should be a string, Buffer or Uint8Array");if(vCe(t)&&(r=t,t=null),e.length===0){r&&r();return}this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new t_c),this.abort())};BV.prototype.end=function(e,t,r){if(vCe(e)?(r=e,e=t=null):vCe(t)&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}};BV.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)};BV.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)};BV.prototype.setTimeout=function(e,t){var r=this;function n(l){l.setTimeout(e),l.removeListener("timeout",l.destroy),l.addListener("timeout",l.destroy)}function a(l){r._timeout&&clearTimeout(r._timeout),r._timeout=setTimeout(function(){r.emit("timeout"),o()},e),n(l)}function o(){r._timeout&&(clearTimeout(r._timeout),r._timeout=null),r.removeListener("abort",o),r.removeListener("error",o),r.removeListener("response",o),r.removeListener("close",o),t&&r.removeListener("timeout",t),r.socket||r._currentRequest.removeListener("socket",a)}return t&&this.on("timeout",t),this.socket?a(this.socket):this._currentRequest.once("socket",a),this.on("socket",n),this.on("abort",o),this.on("error",o),this.on("response",o),this.on("close",o),this};["flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){BV.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}});["aborted","connection","socket"].forEach(function(e){Object.defineProperty(BV.prototype,e,{get:function(){return this._currentRequest[e]}})});BV.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(e.hostname||(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");t<0?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}};BV.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)throw new TypeError("Unsupported protocol "+e);if(this._options.agents){var r=e.slice(0,-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);n._redirectable=this;for(var a of yFr)n.on(a,bFr[a]);if(this._currentUrl=/^\//.test(this._options.path)?rKe.format(this._options):this._options.path,this._isRedirect){var o=0,l=this,A=this._requestBodyBuffers;(function f(I){if(n===l._currentRequest)if(I)l.emit("error",I);else if(o=400){e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[];return}if(SFr(this._currentRequest),e.destroy(),++this._redirectCount>this._options.maxRedirects)throw new e_c;var n,a=this._options.beforeRedirect;a&&(n=Object.assign({Host:e.req.getHeader("host")},this._options.headers));var o=this._options.method;((t===301||t===302)&&this._options.method==="POST"||t===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],pFr(/^content-/i,this._options.headers));var l=pFr(/^host$/i,this._options.headers),A=EFr(this._currentUrl),f=l||A.host,I=/^\w+:/.test(r)?this._currentUrl:rKe.format(Object.assign(A,{host:f})),C=i_c(r,I);if(FLi("redirecting to",C.href),this._isRedirect=!0,hFr(C,this._options),(C.protocol!==A.protocol&&C.protocol!=="https:"||C.host!==f&&!s_c(C.host,f))&&pFr(/^(?:(?:proxy-)?authorization|cookie)$/i,this._options.headers),vCe(a)){var b={headers:e.headers,statusCode:t},E={url:I,method:o,headers:n};a(this._options,b,E),this._sanitizeOptions(this._options)}this._performRequest()};function ZLi(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(n){var a=n+":",o=r[a]=e[n],l=t[n]=Object.create(o);function A(I,C,b){return a_c(I)?I=hFr(I):SCe(I)?I=hFr(EFr(I)):(b=C,C=VLi(I),I={protocol:a}),vCe(C)&&(b=C,C=null),C=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},I,C),C.nativeProtocols=r,!SCe(C.host)&&!SCe(C.hostname)&&(C.hostname="::1"),CFr.equal(C.protocol,a,"protocol mismatch"),FLi("options",C),new BV(C,b)}function f(I,C,b){var E=l.request(I,C,b);return E.end(),E}Object.defineProperties(l,{request:{value:A,configurable:!0,enumerable:!0,writable:!0},get:{value:f,configurable:!0,enumerable:!0,writable:!0}})}),t}function LLi(){}function EFr(e){var t;if(_Fr)t=new tKe(e);else if(t=VLi(rKe.parse(e)),!SCe(t.protocol))throw new fFr({input:e});return t}function i_c(e,t){return _Fr?new tKe(e,t):EFr(rKe.resolve(t,e))}function VLi(e){if(/^\[/.test(e.hostname)&&!/^\[[:0-9a-f]+\]$/i.test(e.hostname))throw new fFr({input:e.href||e});if(/^\[/.test(e.host)&&!/^\[[:0-9a-f]+\](:\d+)?$/i.test(e.host))throw new fFr({input:e.href||e});return e}function hFr(e,t){var r=t||{};for(var n of $Cc)r[n]=e[n];return r.hostname.startsWith("[")&&(r.hostname=r.hostname.slice(1,-1)),r.port!==""&&(r.port=Number(r.port)),r.path=r.search?r.pathname+r.search:r.pathname,r}function pFr(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r===null||typeof r>"u"?void 0:String(r).trim()}function nKe(e,t,r){function n(a){vCe(Error.captureStackTrace)&&Error.captureStackTrace(this,this.constructor),Object.assign(this,a||{}),this.code=e,this.message=this.cause?t+": "+this.cause.message:t}return n.prototype=new(r||Error),Object.defineProperties(n.prototype,{constructor:{value:n,enumerable:!1},name:{value:"Error ["+e+"]",enumerable:!1}}),n}function SFr(e,t){for(var r of yFr)e.removeListener(r,bFr[r]);e.on("error",LLi),e.destroy(t)}function s_c(e,t){CFr(SCe(e)&&SCe(t));var r=e.length-t.length-1;return r>0&&e[r]==="."&&e.endsWith(t)}function SCe(e){return typeof e=="string"||e instanceof String}function vCe(e){return typeof e=="function"}function o_c(e){return typeof e=="object"&&"length"in e}function a_c(e){return tKe&&e instanceof tKe}vFr.exports=ZLi({http:zCc,https:qCc});vFr.exports.wrap=ZLi});var wFr=H((L9u,c_c)=>{c_c.exports={name:"axios",version:"0.21.4",description:"Promise based HTTP client for the browser and node.js",main:"index.js",scripts:{test:"grunt test",start:"node ./sandbox/server.js",build:"NODE_ENV=production grunt build",preversion:"npm test",version:"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json",postversion:"git push && git push --tags",examples:"node ./examples/server.js",coveralls:"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js",fix:"eslint --fix lib/**/*.js"},repository:{type:"git",url:"https://github.com/axios/axios.git"},keywords:["xhr","http","ajax","promise","node"],author:"Matt Zabriskie",license:"MIT",bugs:{url:"https://github.com/axios/axios/issues"},homepage:"https://axios-http.com",devDependencies:{coveralls:"^3.0.0","es6-promise":"^4.2.4",grunt:"^1.3.0","grunt-banner":"^0.6.0","grunt-cli":"^1.2.0","grunt-contrib-clean":"^1.1.0","grunt-contrib-watch":"^1.0.0","grunt-eslint":"^23.0.0","grunt-karma":"^4.0.0","grunt-mocha-test":"^0.13.3","grunt-ts":"^6.0.0-beta.19","grunt-webpack":"^4.0.2","istanbul-instrumenter-loader":"^1.0.0","jasmine-core":"^2.4.1",karma:"^6.3.2","karma-chrome-launcher":"^3.1.0","karma-firefox-launcher":"^2.1.0","karma-jasmine":"^1.1.1","karma-jasmine-ajax":"^0.1.13","karma-safari-launcher":"^1.0.0","karma-sauce-launcher":"^4.3.6","karma-sinon":"^1.0.5","karma-sourcemap-loader":"^0.3.8","karma-webpack":"^4.0.2","load-grunt-tasks":"^3.5.2",minimist:"^1.2.0",mocha:"^8.2.1",sinon:"^4.5.0","terser-webpack-plugin":"^4.2.3",typescript:"^4.0.5","url-search-params":"^0.10.0",webpack:"^4.44.2","webpack-dev-server":"^3.11.0"},browser:{"./lib/adapters/http.js":"./lib/adapters/xhr.js"},jsdelivr:"dist/axios.min.js",unpkg:"dist/axios.min.js",typings:"./index.d.ts",dependencies:{"follow-redirects":"^1.14.0"},bundlesize:[{path:"./dist/axios.min.js",threshold:"5kB"}]}});var YLi=H((V9u,HLi)=>{"use strict";var iKe=$Z(),PLi=uFr(),l_c=gFr(),u_c=P1t(),g_c=wt("http"),A_c=wt("https"),d_c=BFr().http,p_c=BFr().https,WLi=wt("url"),f_c=wt("zlib"),I_c=wFr(),Q1t=M1t(),TFr=O1t(),OLi=/https:?/;function MLi(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var n=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+n}e.beforeRedirect=function(o){o.headers.host=o.host,MLi(o,t,o.href)}}HLi.exports=function(t){return new Promise(function(n,a){var o=function(Yt){n(Yt)},l=function(Yt){a(Yt)},A=t.data,f=t.headers;if("User-Agent"in f||"user-agent"in f?!f["User-Agent"]&&!f["user-agent"]&&(delete f["User-Agent"],delete f["user-agent"]):f["User-Agent"]="axios/"+I_c.version,A&&!iKe.isStream(A)){if(!Buffer.isBuffer(A))if(iKe.isArrayBuffer(A))A=Buffer.from(new Uint8Array(A));else if(iKe.isString(A))A=Buffer.from(A,"utf-8");else return l(Q1t("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",t));f["Content-Length"]=A.length}var I=void 0;if(t.auth){var C=t.auth.username||"",b=t.auth.password||"";I=C+":"+b}var E=l_c(t.baseURL,t.url),N=WLi.parse(E),B=N.protocol||"http:";if(!I&&N.auth){var F=N.auth.split(":"),Q=F[0]||"",X=F[1]||"";I=Q+":"+X}I&&delete f.Authorization;var ae=OLi.test(B),ne=ae?t.httpsAgent:t.httpAgent,ce={path:u_c(N.path,t.params,t.paramsSerializer).replace(/^\?/,""),method:t.method.toUpperCase(),headers:f,agent:ne,agents:{http:t.httpAgent,https:t.httpsAgent},auth:I};t.socketPath?ce.socketPath=t.socketPath:(ce.hostname=N.hostname,ce.port=N.port);var fe=t.proxy;if(!fe&&fe!==!1){var ue=B.slice(0,-1)+"_proxy",de=process.env[ue]||process.env[ue.toUpperCase()];if(de){var be=WLi.parse(de),Se=process.env.no_proxy||process.env.NO_PROXY,De=!0;if(Se){var k=Se.split(",").map(function(Yt){return Yt.trim()});De=!k.some(function(Yt){return Yt?Yt==="*"||Yt[0]==="."&&N.hostname.substr(N.hostname.length-Yt.length)===Yt?!0:N.hostname===Yt:!1})}if(De&&(fe={host:be.hostname,port:be.port,protocol:be.protocol},be.auth)){var et=be.auth.split(":");fe.auth={username:et[0],password:et[1]}}}}fe&&(ce.headers.host=N.hostname+(N.port?":"+N.port:""),MLi(ce,fe,B+"//"+N.hostname+(N.port?":"+N.port:"")+ce.path));var ct,Me=ae&&(fe?OLi.test(fe.protocol):!0);t.transport?ct=t.transport:t.maxRedirects===0?ct=Me?A_c:g_c:(t.maxRedirects&&(ce.maxRedirects=t.maxRedirects),ct=Me?p_c:d_c),t.maxBodyLength>-1&&(ce.maxBodyLength=t.maxBodyLength);var je=ct.request(ce,function(Yt){if(!je.aborted){var Tr=Yt,Nr=Yt.req||je;if(Yt.statusCode!==204&&Nr.method!=="HEAD"&&t.decompress!==!1)switch(Yt.headers["content-encoding"]){case"gzip":case"compress":case"deflate":Tr=Tr.pipe(f_c.createUnzip()),delete Yt.headers["content-encoding"];break}var er={status:Yt.statusCode,statusText:Yt.statusMessage,headers:Yt.headers,config:t,request:Nr};if(t.responseType==="stream")er.data=Tr,PLi(o,l,er);else{var vt=[],xt=0;Tr.on("data",function(qt){vt.push(qt),xt+=qt.length,t.maxContentLength>-1&&xt>t.maxContentLength&&(Tr.destroy(),l(Q1t("maxContentLength size of "+t.maxContentLength+" exceeded",t,null,Nr)))}),Tr.on("error",function(qt){je.aborted||l(TFr(qt,t,null,Nr))}),Tr.on("end",function(){var qt=Buffer.concat(vt);t.responseType!=="arraybuffer"&&(qt=qt.toString(t.responseEncoding),(!t.responseEncoding||t.responseEncoding==="utf8")&&(qt=iKe.stripBOM(qt))),er.data=qt,PLi(o,l,er)})}}});if(je.on("error",function(Yt){je.aborted&&Yt.code!=="ERR_FR_TOO_MANY_REDIRECTS"||l(TFr(Yt,t,null,je))}),t.timeout){var St=parseInt(t.timeout,10);if(isNaN(St)){l(Q1t("error trying to parse `config.timeout` to int",t,"ERR_PARSE_TIMEOUT",je));return}je.setTimeout(St,function(){je.abort(),l(Q1t("timeout of "+St+"ms exceeded",t,t.transitional&&t.transitional.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",je))})}t.cancelToken&&t.cancelToken.promise.then(function(Yt){je.aborted||(je.abort(),l(Yt))}),iKe.isStream(A)?A.on("error",function(Yt){l(TFr(Yt,t,null,je))}).pipe(je):je.end(A)})}});var J1t=H((P9u,JLi)=>{"use strict";var Uk=$Z(),QLi=fLi(),h_c=O1t(),m_c={"Content-Type":"application/x-www-form-urlencoded"};function XLi(e,t){!Uk.isUndefined(e)&&Uk.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function C_c(){var e;return typeof XMLHttpRequest<"u"?e=kLi():typeof process<"u"&&Object.prototype.toString.call(process)==="[object process]"&&(e=YLi()),e}function __c(e,t,r){if(Uk.isString(e))try{return(t||JSON.parse)(e),Uk.trim(e)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(e)}var X1t={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:C_c(),transformRequest:[function(t,r){return QLi(r,"Accept"),QLi(r,"Content-Type"),Uk.isFormData(t)||Uk.isArrayBuffer(t)||Uk.isBuffer(t)||Uk.isStream(t)||Uk.isFile(t)||Uk.isBlob(t)?t:Uk.isArrayBufferView(t)?t.buffer:Uk.isURLSearchParams(t)?(XLi(r,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Uk.isObject(t)||r&&r["Content-Type"]==="application/json"?(XLi(r,"application/json"),__c(t)):t}],transformResponse:[function(t){var r=this.transitional,n=r&&r.silentJSONParsing,a=r&&r.forcedJSONParsing,o=!n&&this.responseType==="json";if(o||a&&Uk.isString(t)&&t.length)try{return JSON.parse(t)}catch(l){if(o)throw l.name==="SyntaxError"?h_c(l,this,"E_JSON_PARSE"):l}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300}};X1t.headers={common:{Accept:"application/json, text/plain, */*"}};Uk.forEach(["delete","get","head"],function(t){X1t.headers[t]={}});Uk.forEach(["post","put","patch"],function(t){X1t.headers[t]=Uk.merge(m_c)});JLi.exports=X1t});var KLi=H((W9u,ULi)=>{"use strict";var y_c=$Z(),b_c=J1t();ULi.exports=function(t,r,n){var a=this||b_c;return y_c.forEach(n,function(l){t=l.call(a,t,r)}),t}});var RFr=H((O9u,jLi)=>{"use strict";jLi.exports=function(t){return!!(t&&t.__CANCEL__)}});var $Li=H((M9u,qLi)=>{"use strict";var zLi=$Z(),NFr=KLi(),E_c=RFr(),S_c=J1t();function DFr(e){e.cancelToken&&e.cancelToken.throwIfRequested()}qLi.exports=function(t){DFr(t),t.headers=t.headers||{},t.data=NFr.call(t,t.data,t.headers,t.transformRequest),t.headers=zLi.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),zLi.forEach(["delete","get","head","post","put","patch","common"],function(a){delete t.headers[a]});var r=t.adapter||S_c.adapter;return r(t).then(function(a){return DFr(t),a.data=NFr.call(t,a.data,a.headers,t.transformResponse),a},function(a){return E_c(a)||(DFr(t),a&&a.response&&(a.response.data=NFr.call(t,a.response.data,a.response.headers,t.transformResponse))),Promise.reject(a)})}});var kFr=H((H9u,e9i)=>{"use strict";var LG=$Z();e9i.exports=function(t,r){r=r||{};var n={},a=["url","method","data"],o=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],A=["validateStatus"];function f(E,N){return LG.isPlainObject(E)&&LG.isPlainObject(N)?LG.merge(E,N):LG.isPlainObject(N)?LG.merge({},N):LG.isArray(N)?N.slice():N}function I(E){LG.isUndefined(r[E])?LG.isUndefined(t[E])||(n[E]=f(void 0,t[E])):n[E]=f(t[E],r[E])}LG.forEach(a,function(N){LG.isUndefined(r[N])||(n[N]=f(void 0,r[N]))}),LG.forEach(o,I),LG.forEach(l,function(N){LG.isUndefined(r[N])?LG.isUndefined(t[N])||(n[N]=f(void 0,t[N])):n[N]=f(void 0,r[N])}),LG.forEach(A,function(N){N in r?n[N]=f(t[N],r[N]):N in t&&(n[N]=f(void 0,t[N]))});var C=a.concat(o).concat(l).concat(A),b=Object.keys(t).concat(Object.keys(r)).filter(function(N){return C.indexOf(N)===-1});return LG.forEach(b,I),n}});var s9i=H((Y9u,i9i)=>{"use strict";var r9i=wFr(),xFr={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){xFr[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});var t9i={},v_c=r9i.version.split(".");function n9i(e,t){for(var r=t?t.split("."):v_c,n=e.split("."),a=0;a<3;a++){if(r[a]>n[a])return!0;if(r[a]0;){var o=n[a],l=t[o];if(l){var A=e[o],f=A===void 0||l(A,o,e);if(f!==!0)throw new TypeError("option "+o+" must be "+f);continue}if(r!==!0)throw Error("Unknown option "+o)}}i9i.exports={isOlderVersion:n9i,assertOptions:B_c,validators:xFr}});var g9i=H((Q9u,u9i)=>{"use strict";var c9i=$Z(),w_c=P1t(),o9i=dLi(),a9i=$Li(),U1t=kFr(),l9i=s9i(),fDe=l9i.validators;function sKe(e){this.defaults=e,this.interceptors={request:new o9i,response:new o9i}}sKe.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=U1t(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;r!==void 0&&l9i.assertOptions(r,{silentJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),forcedJSONParsing:fDe.transitional(fDe.boolean,"1.0.0"),clarifyTimeoutError:fDe.transitional(fDe.boolean,"1.0.0")},!1);var n=[],a=!0;this.interceptors.request.forEach(function(E){typeof E.runWhen=="function"&&E.runWhen(t)===!1||(a=a&&E.synchronous,n.unshift(E.fulfilled,E.rejected))});var o=[];this.interceptors.response.forEach(function(E){o.push(E.fulfilled,E.rejected)});var l;if(!a){var A=[a9i,void 0];for(Array.prototype.unshift.apply(A,n),A=A.concat(o),l=Promise.resolve(t);A.length;)l=l.then(A.shift(),A.shift());return l}for(var f=t;n.length;){var I=n.shift(),C=n.shift();try{f=I(f)}catch(b){C(b);break}}try{l=a9i(f)}catch(b){return Promise.reject(b)}for(;o.length;)l=l.then(o.shift(),o.shift());return l};sKe.prototype.getUri=function(t){return t=U1t(this.defaults,t),w_c(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};c9i.forEach(["delete","get","head","options"],function(t){sKe.prototype[t]=function(r,n){return this.request(U1t(n||{},{method:t,url:r,data:(n||{}).data}))}});c9i.forEach(["post","put","patch"],function(t){sKe.prototype[t]=function(r,n,a){return this.request(U1t(a||{},{method:t,url:r,data:n}))}});u9i.exports=sKe});var FFr=H((X9u,A9i)=>{"use strict";function GFr(e){this.message=e}GFr.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};GFr.prototype.__CANCEL__=!0;A9i.exports=GFr});var p9i=H((J9u,d9i)=>{"use strict";var T_c=FFr();function K1t(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(a){t=a});var r=this;e(function(a){r.reason||(r.reason=new T_c(a),t(r.reason))})}K1t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason};K1t.source=function(){var t,r=new K1t(function(a){t=a});return{token:r,cancel:t}};d9i.exports=K1t});var I9i=H((U9u,f9i)=>{"use strict";f9i.exports=function(t){return function(n){return t.apply(null,n)}}});var m9i=H((K9u,h9i)=>{"use strict";h9i.exports=function(t){return typeof t=="object"&&t.isAxiosError===!0}});var y9i=H((j9u,ZFr)=>{"use strict";var C9i=$Z(),R_c=sFr(),j1t=g9i(),N_c=kFr(),D_c=J1t();function _9i(e){var t=new j1t(e),r=R_c(j1t.prototype.request,t);return C9i.extend(r,j1t.prototype,t),C9i.extend(r,t),r}var I4=_9i(D_c);I4.Axios=j1t;I4.create=function(t){return _9i(N_c(I4.defaults,t))};I4.Cancel=FFr();I4.CancelToken=p9i();I4.isCancel=RFr();I4.all=function(t){return Promise.all(t)};I4.spread=I9i();I4.isAxiosError=m9i();ZFr.exports=I4;ZFr.exports.default=I4});var E9i=H((z9u,b9i)=>{b9i.exports=y9i()});var v9i=H((q9u,S9i)=>{var IDe=1e3,hDe=IDe*60,mDe=hDe*60,BCe=mDe*24,k_c=BCe*7,x_c=BCe*365.25;S9i.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return G_c(e);if(r==="number"&&isFinite(e))return t.long?Z_c(e):F_c(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function G_c(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*x_c;case"weeks":case"week":case"w":return r*k_c;case"days":case"day":case"d":return r*BCe;case"hours":case"hour":case"hrs":case"hr":case"h":return r*mDe;case"minutes":case"minute":case"mins":case"min":case"m":return r*hDe;case"seconds":case"second":case"secs":case"sec":case"s":return r*IDe;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function F_c(e){var t=Math.abs(e);return t>=BCe?Math.round(e/BCe)+"d":t>=mDe?Math.round(e/mDe)+"h":t>=hDe?Math.round(e/hDe)+"m":t>=IDe?Math.round(e/IDe)+"s":e+"ms"}function Z_c(e){var t=Math.abs(e);return t>=BCe?z1t(e,t,BCe,"day"):t>=mDe?z1t(e,t,mDe,"hour"):t>=hDe?z1t(e,t,hDe,"minute"):t>=IDe?z1t(e,t,IDe,"second"):e+" ms"}function z1t(e,t,r,n){var a=t>=r*1.5;return Math.round(e/r)+" "+n+(a?"s":"")}});var LFr=H(($9u,B9i)=>{function L_c(e){r.debug=r,r.default=r,r.coerce=f,r.disable=o,r.enable=a,r.enabled=l,r.humanize=v9i(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b,E=(typeof C=="string"?C:"").split(/[\s,]+/),N=E.length;for(b=0;b"-"+b)].join(",");return r.enable(""),C}function l(C){if(C[C.length-1]==="*")return!0;let b,E;for(b=0,E=r.skips.length;b{yO.formatArgs=P_c;yO.save=W_c;yO.load=O_c;yO.useColors=V_c;yO.storage=M_c();yO.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();yO.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function V_c(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function P_c(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+q1t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}yO.log=console.debug||console.log||(()=>{});function W_c(e){try{e?yO.storage.setItem("debug",e):yO.storage.removeItem("debug")}catch{}}function O_c(){let e;try{e=yO.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function M_c(){try{return localStorage}catch{}}q1t.exports=LFr()(yO);var{formatters:H_c}=q1t.exports;H_c.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var R9i=H((Kk,e2t)=>{var Y_c=wt("tty"),$1t=wt("util");Kk.init=z_c;Kk.log=U_c;Kk.formatArgs=X_c;Kk.save=K_c;Kk.load=j_c;Kk.useColors=Q_c;Kk.destroy=$1t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");Kk.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(Kk.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}Kk.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function Q_c(){return"colors"in Kk.inspectOpts?!!Kk.inspectOpts.colors:Y_c.isatty(process.stderr.fd)}function X_c(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` -`+o),e.push(a+"m+"+e2t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=X_c()+t+" "+e[0]}function X_c(){return Kk.inspectOpts.hideDate?"":new Date().toISOString()+" "}function J_c(...e){return process.stderr.write($1t.format(...e)+` -`)}function U_c(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function K_c(){return process.env.DEBUG}function j_c(e){e.inspectOpts={};let t=Object.keys(Kk.inspectOpts);for(let r=0;rt.trim()).join(" ")};T9i.O=function(e){return this.inspectOpts.colors=this.useColors,$1t.inspect(e,this.inspectOpts)}});var PFr=H(($9u,VFr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?VFr.exports=w9i():VFr.exports=R9i()});var D9i=H((eVu,N9i)=>{var{Transform:z_c}=wt("stream"),WFr=class extends z_c{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,r,n){n(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(a,o)=>(this.replaced=!0,o+this.host)))}};N9i.exports=WFr});var G9i=H((rVu,x9i)=>{var{EventEmitter:q_c}=wt("events"),Bj=PFr()("localtunnel:client"),OFr=wt("fs"),k9i=wt("net"),$_c=wt("tls"),e0c=D9i();x9i.exports=class extends q_c{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,r=t.remote_ip||t.remote_host,n=t.remote_port,a=t.local_host||"localhost",o=t.local_port,l=t.local_https?"https":"http",A=t.allow_invalid_cert;Bj("establishing tunnel %s://%s:%s <> %s:%s",l,a,o,r,n);let f=k9i.connect({host:r,port:n});f.setKeepAlive(!0),f.on("error",C=>{Bj("got remote connection error",C.message),C.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${r}:${n} (check your firewall settings)`)),f.end()});let I=()=>{if(f.destroyed){Bj("remote destroyed"),this.emit("dead");return}Bj("connecting locally to %s://%s:%d",l,a,o),f.pause(),A&&Bj("allowing invalid certificates");let C=()=>A?{rejectUnauthorized:!1}:{cert:OFr.readFileSync(t.local_cert),key:OFr.readFileSync(t.local_key),ca:t.local_ca?[OFr.readFileSync(t.local_ca)]:void 0},b=t.local_https?$_c.connect({host:a,port:o,...C()}):k9i.connect({host:a,port:o}),E=()=>{Bj("remote close"),this.emit("dead"),b.end()};f.once("close",E),b.once("error",N=>{if(Bj("local error %s",N.message),b.end(),f.removeListener("close",E),N.code!=="ECONNREFUSED")return f.end();setTimeout(I,1e3)}),b.once("connect",()=>{Bj("connected locally"),f.resume();let N=f;t.local_host&&(Bj("transform Host header to %s",t.local_host),N=f.pipe(new e0c({host:t.local_host}))),N.pipe(b).pipe(f),b.once("close",B=>{Bj("local connection closed [%s]",B)})})};f.on("data",C=>{let b=C.toString().match(/^(\w+) (\S+)/);b&&this.emit("request",{method:b[1],path:b[2]})}),f.once("connect",()=>{this.emit("open",f),I()})}}});var L9i=H((iVu,Z9i)=>{var{parse:t0c}=wt("url"),{EventEmitter:F9i}=wt("events"),r0c=E9i(),oKe=PFr()("localtunnel:client"),n0c=G9i();Z9i.exports=class extends F9i{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:r,ip:n,port:a,url:o,cached_url:l,max_conn_count:A}=t,{host:f,port:I,local_host:C}=this.opts,{local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}=this.opts;return{name:r,url:o,cached_url:l,max_conn:A||1,remote_host:t0c(f).hostname,remote_ip:n,remote_port:a,local_port:I,local_host:C,local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}}_init(t){let r=this.opts,n=this._getInfo.bind(this),a={responseType:"json"},o=`${r.host}/`,l=r.subdomain,A=o+(l||"?new");(function f(){r0c.get(A,a).then(I=>{let C=I.data;if(oKe("got tunnel information",I.data),I.status!==200){let b=new Error(C&&C.message||"localtunnel server returned an error, please try again");return t(b)}t(null,n(C))}).catch(I=>(oKe(`tunnel server offline: ${I.message}, retry 1s`),setTimeout(f,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(F9i.defaultMaxListeners||10)),this.tunnelCluster=new n0c(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",n=>{oKe("got socket error",n.message),this.emit("error",n)});let r=0;this.tunnelCluster.on("open",n=>{r++,oKe("tunnel open [total: %d]",r);let a=()=>{n.destroy()};if(this.closed)return a();this.once("close",a),n.once("close",()=>{this.removeListener("close",a)})}),this.tunnelCluster.on("dead",()=>{r--,oKe("tunnel dead [total: %d]",r),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",n=>{this.emit("request",n)});for(let n=0;n{if(r)return t(r);this.clientId=n.name,this.url=n.url,n.cached_url&&(this.cachedUrl=n.cached_url),this._establish(n),t()})}close(){this.closed=!0,this.emit("close")}}});var P9i=H((sVu,V9i)=>{var i0c=L9i();V9i.exports=function(t,r,n){let a=typeof t=="object"?t:{...r,port:t},o=typeof t=="object"?r:n,l=new i0c(a);return o?(l.open(A=>A?o(A):o(null,l)),l):new Promise((A,f)=>l.open(I=>I?f(I):A(l)))}});var lVi=H(cVi=>{"use strict";Object.defineProperty(cVi,"__esModule",{value:!0})});var gVi=H(uVi=>{"use strict";Object.defineProperty(uVi,"__esModule",{value:!0})});var AVi=H(AKe=>{"use strict";Object.defineProperty(AKe,"__esModule",{value:!0});AKe.SeverityNumber=void 0;var B0c;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(B0c=AKe.SeverityNumber||(AKe.SeverityNumber={}))});var pVi=H(dVi=>{"use strict";Object.defineProperty(dVi,"__esModule",{value:!0})});var QFr=H(CDe=>{"use strict";Object.defineProperty(CDe,"__esModule",{value:!0});CDe.NOOP_LOGGER=CDe.NoopLogger=void 0;var a2t=class{emit(t){}};CDe.NoopLogger=a2t;CDe.NOOP_LOGGER=new a2t});var XFr=H(_De=>{"use strict";Object.defineProperty(_De,"__esModule",{value:!0});_De.NOOP_LOGGER_PROVIDER=_De.NoopLoggerProvider=void 0;var w0c=QFr(),c2t=class{getLogger(t,r,n){return new w0c.NoopLogger}};_De.NoopLoggerProvider=c2t;_De.NOOP_LOGGER_PROVIDER=new c2t});var fVi=H(l2t=>{"use strict";Object.defineProperty(l2t,"__esModule",{value:!0});l2t._globalThis=void 0;l2t._globalThis=typeof globalThis=="object"?globalThis:global});var IVi=H(TCe=>{"use strict";var T0c=TCe&&TCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),R0c=TCe&&TCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T0c(t,e,r)};Object.defineProperty(TCe,"__esModule",{value:!0});R0c(fVi(),TCe)});var hVi=H(RCe=>{"use strict";var N0c=RCe&&RCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),D0c=RCe&&RCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&N0c(t,e,r)};Object.defineProperty(RCe,"__esModule",{value:!0});D0c(IVi(),RCe)});var mVi=H(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj.API_BACKWARDS_COMPATIBILITY_VERSION=wj.makeGetter=wj._global=wj.GLOBAL_LOGS_API_KEY=void 0;var k0c=hVi();wj.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");wj._global=k0c._globalThis;function x0c(e,t,r){return n=>n===e?t:r}wj.makeGetter=x0c;wj.API_BACKWARDS_COMPATIBILITY_VERSION=1});var _Vi=H(u2t=>{"use strict";Object.defineProperty(u2t,"__esModule",{value:!0});u2t.LogsAPI=void 0;var gH=mVi(),CVi=XFr(),JFr=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return gH._global[gH.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(gH._global[gH.GLOBAL_LOGS_API_KEY]=(0,gH.makeGetter)(gH.API_BACKWARDS_COMPATIBILITY_VERSION,t,CVi.NOOP_LOGGER_PROVIDER),t)}getLoggerProvider(){var t,r;return(r=(t=gH._global[gH.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(gH._global,gH.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&r!==void 0?r:CVi.NOOP_LOGGER_PROVIDER}getLogger(t,r,n){return this.getLoggerProvider().getLogger(t,r,n)}disable(){delete gH._global[gH.GLOBAL_LOGS_API_KEY]}};u2t.LogsAPI=JFr});var bDe=H(wV=>{"use strict";var G0c=wV&&wV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yDe=wV&&wV.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&G0c(t,e,r)};Object.defineProperty(wV,"__esModule",{value:!0});wV.logs=void 0;yDe(lVi(),wV);yDe(gVi(),wV);yDe(AVi(),wV);yDe(pVi(),wV);yDe(QFr(),wV);yDe(XFr(),wV);var F0c=_Vi();wV.logs=F0c.LogsAPI.getInstance()});var yVi,bVi=bc(()=>{yVi=typeof globalThis=="object"?globalThis:global});var EVi=bc(()=>{bVi()});var SVi=bc(()=>{EVi()});var Uee,UFr=bc(()=>{Uee="1.9.0"});function Z0c(e){var t=new Set([e]),r=new Set,n=e.match(vVi);if(!n)return function(){return!1};var a={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(a.prerelease!=null)return function(f){return f===e};function o(A){return r.add(A),!1}function l(A){return t.add(A),!0}return function(f){if(t.has(f))return!0;if(r.has(f))return!1;var I=f.match(vVi);if(!I)return o(f);var C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};return C.prerelease!=null||a.major!==C.major?o(f):a.major===0?a.minor===C.minor&&a.patch<=C.patch?l(f):o(f):a.minor<=C.minor?l(f):o(f)}}var vVi,BVi,wVi=bc(()=>{UFr();vVi=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;BVi=Z0c(Uee)});function Tj(e,t,r,n){var a;n===void 0&&(n=!1);var o=pKe[dKe]=(a=pKe[dKe])!==null&&a!==void 0?a:{version:Uee};if(!n&&o[e]){var l=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(l.stack||l.message),!1}if(o.version!==Uee){var l=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+Uee);return r.error(l.stack||l.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+Uee+"."),!0}function bO(e){var t,r,n=(t=pKe[dKe])===null||t===void 0?void 0:t.version;if(!(!n||!BVi(n)))return(r=pKe[dKe])===null||r===void 0?void 0:r[e]}function Rj(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+Uee+".");var r=pKe[dKe];r&&delete r[e]}var L0c,dKe,pKe,NCe=bc(()=>{SVi();UFr();wVi();L0c=Uee.split(".")[0],dKe=Symbol.for("opentelemetry.js.api."+L0c),pKe=yVi});function fKe(e,t,r){var n=bO("diag");if(n)return r.unshift(t),n[e].apply(n,P0c([],V0c(r),!1))}var V0c,P0c,TVi,RVi=bc(()=>{NCe();V0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},P0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(jk||(jk={}))});function NVi(e,t){ejk.ALL&&(e=jk.ALL),t=t||{};function r(n,a){var o=t[n];return typeof o=="function"&&e>=a?o.bind(t):function(){}}return{error:r("error",jk.ERROR),warn:r("warn",jk.WARN),info:r("info",jk.INFO),debug:r("debug",jk.DEBUG),verbose:r("verbose",jk.VERBOSE)}}var DVi=bc(()=>{g2t()});var W0c,O0c,M0c,VG,DCe=bc(()=>{RVi();DVi();g2t();NCe();W0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},O0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n";C.warn("Current logger will be overwritten from "+E),b.warn("Current logger will overwrite one already registered from "+E)}return Tj("diag",b,r,!0)};r.setLogger=n,r.disable=function(){Rj(M0c,r)},r.createComponentLogger=function(a){return new TVi(a)},r.verbose=t("verbose"),r.debug=t("debug"),r.info=t("info"),r.warn=t("warn"),r.error=t("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}()});var H0c,Y0c,kVi,xVi=bc(()=>{H0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Y0c=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},kVi=function(){function e(t){this._entries=t?new Map(t):new Map}return e.prototype.getEntry=function(t){var r=this._entries.get(t);if(r)return Object.assign({},r)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(t){var r=H0c(t,2),n=r[0],a=r[1];return[n,a]})},e.prototype.setEntry=function(t,r){var n=new e(this._entries);return n._entries.set(t,r),n},e.prototype.removeEntry=function(t){var r=new e(this._entries);return r._entries.delete(t),r},e.prototype.removeEntries=function(){for(var t,r,n=[],a=0;a{GVi=Symbol("BaggageEntryMetadata")});function ZVi(e){return e===void 0&&(e={}),new kVi(new Map(Object.entries(e)))}function LVi(e){return typeof e!="string"&&(Q0c.error("Cannot create baggage metadata from unknown type: "+typeof e),e=""),{__TYPE__:GVi,toString:function(){return e}}}var Q0c,KFr=bc(()=>{DCe();xVi();FVi();Q0c=VG.instance()});function EDe(e){return Symbol.for(e)}var X0c,A2t,IKe=bc(()=>{X0c=function(){function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,a){var o=new e(r._currentContext);return o._currentContext.set(n,a),o},r.deleteValue=function(n){var a=new e(r._currentContext);return a._currentContext.delete(n),a}}return e}(),A2t=new X0c});var jFr,VVi,PVi=bc(()=>{jFr=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],VVi=function(){function e(){function t(n){return function(){for(var a=[],o=0;o{kCe=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),J0c=function(){function e(){}return e.prototype.createGauge=function(t,r){return ryc},e.prototype.createHistogram=function(t,r){return nyc},e.prototype.createCounter=function(t,r){return tyc},e.prototype.createUpDownCounter=function(t,r){return iyc},e.prototype.createObservableGauge=function(t,r){return oyc},e.prototype.createObservableCounter=function(t,r){return syc},e.prototype.createObservableUpDownCounter=function(t,r){return ayc},e.prototype.addBatchObservableCallback=function(t,r){},e.prototype.removeBatchObservableCallback=function(t){},e}(),d2t=function(){function e(){}return e}(),U0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),K0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),j0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),z0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),zFr=function(){function e(){}return e.prototype.addCallback=function(t){},e.prototype.removeCallback=function(t){},e}(),q0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),$0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),eyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),qFr=new J0c,tyc=new U0c,ryc=new j0c,nyc=new z0c,iyc=new K0c,syc=new q0c,oyc=new $0c,ayc=new eyc});var p2t,OVi=bc(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(p2t||(p2t={}))});var f2t,I2t,eZr=bc(()=>{f2t={get:function(e,t){if(e!=null)return e[t]},keys:function(e){return e==null?[]:Object.keys(e)}},I2t={set:function(e,t,r){e!=null&&(e[t]=r)}}});var cyc,lyc,MVi,HVi=bc(()=>{IKe();cyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},lyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{HVi();NCe();DCe();uyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},gyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(SDe||(SDe={}))});var mKe,CKe,h2t,m2t=bc(()=>{rZr();mKe="0000000000000000",CKe="00000000000000000000000000000000",h2t={traceId:CKe,spanId:mKe,traceFlags:SDe.NONE}});var Oce,C2t=bc(()=>{m2t();Oce=function(){function e(t){t===void 0&&(t=h2t),this._spanContext=t}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(t,r){return this},e.prototype.setAttributes=function(t){return this},e.prototype.addEvent=function(t,r){return this},e.prototype.addLink=function(t){return this},e.prototype.addLinks=function(t){return this},e.prototype.setStatus=function(t){return this},e.prototype.updateName=function(t){return this},e.prototype.end=function(t){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(t,r){},e}()});function _2t(e){return e.getValue(nZr)||void 0}function YVi(){return _2t(Wce.getInstance().active())}function _Ke(e,t){return e.setValue(nZr,t)}function QVi(e){return e.deleteValue(nZr)}function XVi(e,t){return _Ke(e,new Oce(t))}function y2t(e){var t;return(t=_2t(e))===null||t===void 0?void 0:t.spanContext()}var nZr,iZr=bc(()=>{IKe();C2t();hKe();nZr=EDe("OpenTelemetry Context Key SPAN")});function sZr(e){return dyc.test(e)&&e!==CKe}function oZr(e){return pyc.test(e)&&e!==mKe}function vDe(e){return sZr(e.traceId)&&oZr(e.spanId)}function JVi(e){return new Oce(e)}var dyc,pyc,b2t=bc(()=>{m2t();C2t();dyc=/^([0-9a-f]{32})$/i,pyc=/^[0-9a-f]{16}$/i});function fyc(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var aZr,E2t,cZr=bc(()=>{hKe();iZr();C2t();b2t();aZr=Wce.getInstance(),E2t=function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=aZr.active());var a=!!r?.root;if(a)return new Oce;var o=n&&y2t(n);return fyc(o)&&vDe(o)?new Oce(o):new Oce},e.prototype.startActiveSpan=function(t,r,n,a){var o,l,A;if(!(arguments.length<2)){arguments.length===2?A=r:arguments.length===3?(o=r,A=n):(o=r,l=n,A=a);var f=l??aZr.active(),I=this.startSpan(t,o,f),C=_Ke(f,I);return aZr.with(C,A,void 0,I)}},e}()});var Iyc,S2t,lZr=bc(()=>{cZr();Iyc=new E2t,S2t=function(){function e(t,r,n,a){this._provider=t,this.name=r,this.version=n,this.options=a}return e.prototype.startSpan=function(t,r,n){return this._getTracer().startSpan(t,r,n)},e.prototype.startActiveSpan=function(t,r,n,a){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):Iyc},e}()});var UVi,KVi=bc(()=>{cZr();UVi=function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new E2t},e}()});var hyc,yKe,uZr=bc(()=>{lZr();KVi();hyc=new UVi,yKe=function(){function e(){}return e.prototype.getTracer=function(t,r,n){var a;return(a=this.getDelegateTracer(t,r,n))!==null&&a!==void 0?a:new S2t(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:hyc},e.prototype.setDelegate=function(t){this._delegate=t},e.prototype.getDelegateTracer=function(t,r,n){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(t,r,n)},e}()});var v2t,jVi=bc(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v2t||(v2t={}))});var B2t,zVi=bc(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})(B2t||(B2t={}))});var w2t,qVi=bc(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(w2t||(w2t={}))});function $Vi(e){return _yc.test(e)}function ePi(e){return yyc.test(e)&&!byc.test(e)}var gZr,myc,Cyc,_yc,yyc,byc,tPi=bc(()=>{gZr="[_0-9a-z-*/]",myc="[a-z]"+gZr+"{0,255}",Cyc="[a-z0-9]"+gZr+"{0,240}@[a-z]"+gZr+"{0,13}",_yc=new RegExp("^(?:"+myc+"|"+Cyc+")$"),yyc=/^[ -~]{0,255}[!-~]$/,byc=/,|=/});var rPi,Eyc,nPi,iPi,sPi,oPi=bc(()=>{tPi();rPi=32,Eyc=512,nPi=",",iPi="=",sPi=function(){function e(t){this._internalState=new Map,t&&this._parse(t)}return e.prototype.set=function(t,r){var n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n},e.prototype.unset=function(t){var r=this._clone();return r._internalState.delete(t),r},e.prototype.get=function(t){return this._internalState.get(t)},e.prototype.serialize=function(){var t=this;return this._keys().reduce(function(r,n){return r.push(n+iPi+t.get(n)),r},[]).join(nPi)},e.prototype._parse=function(t){t.length>Eyc||(this._internalState=t.split(nPi).reverse().reduce(function(r,n){var a=n.trim(),o=a.indexOf(iPi);if(o!==-1){var l=a.slice(0,o),A=a.slice(o+1,n.length);$Vi(l)&&ePi(A)&&r.set(l,A)}return r},new Map),this._internalState.size>rPi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,rPi))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}()});function aPi(e){return new sPi(e)}var cPi=bc(()=>{oPi()});var AZr,lPi=bc(()=>{hKe();AZr=Wce.getInstance()});var dZr,uPi=bc(()=>{DCe();dZr=VG.instance()});var Syc,gPi,APi=bc(()=>{$Fr();Syc=function(){function e(){}return e.prototype.getMeter=function(t,r,n){return qFr},e}(),gPi=new Syc});var pZr,dPi,pPi=bc(()=>{APi();NCe();DCe();pZr="metrics",dPi=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalMeterProvider=function(t){return Tj(pZr,t,VG.instance())},e.prototype.getMeterProvider=function(){return bO(pZr)||gPi},e.prototype.getMeter=function(t,r,n){return this.getMeterProvider().getMeter(t,r,n)},e.prototype.disable=function(){Rj(pZr,VG.instance())},e}()});var fZr,fPi=bc(()=>{pPi();fZr=dPi.getInstance()});var IPi,hPi=bc(()=>{IPi=function(){function e(){}return e.prototype.inject=function(t,r){},e.prototype.extract=function(t,r){return t},e.prototype.fields=function(){return[]},e}()});function hZr(e){return e.getValue(IZr)||void 0}function mPi(){return hZr(Wce.getInstance().active())}function CPi(e,t){return e.setValue(IZr,t)}function _Pi(e){return e.deleteValue(IZr)}var IZr,yPi=bc(()=>{hKe();IKe();IZr=EDe("OpenTelemetry Baggage Key")});var mZr,vyc,bPi,EPi=bc(()=>{NCe();hPi();eZr();yPi();KFr();DCe();mZr="propagation",vyc=new IPi,bPi=function(){function e(){this.createBaggage=ZVi,this.getBaggage=hZr,this.getActiveBaggage=mPi,this.setBaggage=CPi,this.deleteBaggage=_Pi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalPropagator=function(t){return Tj(mZr,t,VG.instance())},e.prototype.inject=function(t,r,n){return n===void 0&&(n=I2t),this._getGlobalPropagator().inject(t,r,n)},e.prototype.extract=function(t,r,n){return n===void 0&&(n=f2t),this._getGlobalPropagator().extract(t,r,n)},e.prototype.fields=function(){return this._getGlobalPropagator().fields()},e.prototype.disable=function(){Rj(mZr,VG.instance())},e.prototype._getGlobalPropagator=function(){return bO(mZr)||vyc},e}()});var CZr,SPi=bc(()=>{EPi();CZr=bPi.getInstance()});var _Zr,vPi,BPi=bc(()=>{NCe();uZr();b2t();iZr();DCe();_Zr="trace",vPi=function(){function e(){this._proxyTracerProvider=new yKe,this.wrapSpanContext=JVi,this.isSpanContextValid=vDe,this.deleteSpan=QVi,this.getSpan=_2t,this.getActiveSpan=YVi,this.getSpanContext=y2t,this.setSpan=_Ke,this.setSpanContext=XVi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(t){var r=Tj(_Zr,this._proxyTracerProvider,VG.instance());return r&&this._proxyTracerProvider.setDelegate(t),r},e.prototype.getTracerProvider=function(){return bO(_Zr)||this._proxyTracerProvider},e.prototype.getTracer=function(t,r){return this.getTracerProvider().getTracer(t,r)},e.prototype.disable=function(){Rj(_Zr,VG.instance()),this._proxyTracerProvider=new yKe},e}()});var yZr,wPi=bc(()=>{BPi();yZr=vPi.getInstance()});var xI={};sI(xI,{DiagConsoleLogger:()=>VVi,DiagLogLevel:()=>jk,INVALID_SPANID:()=>mKe,INVALID_SPAN_CONTEXT:()=>h2t,INVALID_TRACEID:()=>CKe,ProxyTracer:()=>S2t,ProxyTracerProvider:()=>yKe,ROOT_CONTEXT:()=>A2t,SamplingDecision:()=>v2t,SpanKind:()=>B2t,SpanStatusCode:()=>w2t,TraceFlags:()=>SDe,ValueType:()=>p2t,baggageEntryMetadataFromString:()=>LVi,context:()=>AZr,createContextKey:()=>EDe,createNoopMeter:()=>WVi,createTraceState:()=>aPi,default:()=>Byc,defaultTextMapGetter:()=>f2t,defaultTextMapSetter:()=>I2t,diag:()=>dZr,isSpanContextValid:()=>vDe,isValidSpanId:()=>oZr,isValidTraceId:()=>sZr,metrics:()=>fZr,propagation:()=>CZr,trace:()=>yZr});var Byc,GI=bc(()=>{KFr();IKe();PVi();g2t();$Fr();OVi();eZr();lZr();uZr();jVi();zVi();qVi();rZr();cPi();b2t();m2t();lPi();uPi();fPi();SPi();wPi();Byc={context:AZr,diag:dZr,metrics:fZr,propagation:CZr,trace:yZr}});var TPi=H(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});K0.MessageTypeValues=K0.RpcGrpcStatusCodeValues=K0.MessagingOperationValues=K0.MessagingDestinationKindValues=K0.HttpFlavorValues=K0.NetHostConnectionSubtypeValues=K0.NetHostConnectionTypeValues=K0.NetTransportValues=K0.FaasInvokedProviderValues=K0.FaasDocumentOperationValues=K0.FaasTriggerValues=K0.DbCassandraConsistencyLevelValues=K0.DbSystemValues=K0.SemanticAttributes=void 0;K0.SemanticAttributes={AWS_LAMBDA_INVOKED_ARN:"aws.lambda.invoked_arn",DB_SYSTEM:"db.system",DB_CONNECTION_STRING:"db.connection_string",DB_USER:"db.user",DB_JDBC_DRIVER_CLASSNAME:"db.jdbc.driver_classname",DB_NAME:"db.name",DB_STATEMENT:"db.statement",DB_OPERATION:"db.operation",DB_MSSQL_INSTANCE_NAME:"db.mssql.instance_name",DB_CASSANDRA_KEYSPACE:"db.cassandra.keyspace",DB_CASSANDRA_PAGE_SIZE:"db.cassandra.page_size",DB_CASSANDRA_CONSISTENCY_LEVEL:"db.cassandra.consistency_level",DB_CASSANDRA_TABLE:"db.cassandra.table",DB_CASSANDRA_IDEMPOTENCE:"db.cassandra.idempotence",DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:"db.cassandra.speculative_execution_count",DB_CASSANDRA_COORDINATOR_ID:"db.cassandra.coordinator.id",DB_CASSANDRA_COORDINATOR_DC:"db.cassandra.coordinator.dc",DB_HBASE_NAMESPACE:"db.hbase.namespace",DB_REDIS_DATABASE_INDEX:"db.redis.database_index",DB_MONGODB_COLLECTION:"db.mongodb.collection",DB_SQL_TABLE:"db.sql.table",EXCEPTION_TYPE:"exception.type",EXCEPTION_MESSAGE:"exception.message",EXCEPTION_STACKTRACE:"exception.stacktrace",EXCEPTION_ESCAPED:"exception.escaped",FAAS_TRIGGER:"faas.trigger",FAAS_EXECUTION:"faas.execution",FAAS_DOCUMENT_COLLECTION:"faas.document.collection",FAAS_DOCUMENT_OPERATION:"faas.document.operation",FAAS_DOCUMENT_TIME:"faas.document.time",FAAS_DOCUMENT_NAME:"faas.document.name",FAAS_TIME:"faas.time",FAAS_CRON:"faas.cron",FAAS_COLDSTART:"faas.coldstart",FAAS_INVOKED_NAME:"faas.invoked_name",FAAS_INVOKED_PROVIDER:"faas.invoked_provider",FAAS_INVOKED_REGION:"faas.invoked_region",NET_TRANSPORT:"net.transport",NET_PEER_IP:"net.peer.ip",NET_PEER_PORT:"net.peer.port",NET_PEER_NAME:"net.peer.name",NET_HOST_IP:"net.host.ip",NET_HOST_PORT:"net.host.port",NET_HOST_NAME:"net.host.name",NET_HOST_CONNECTION_TYPE:"net.host.connection.type",NET_HOST_CONNECTION_SUBTYPE:"net.host.connection.subtype",NET_HOST_CARRIER_NAME:"net.host.carrier.name",NET_HOST_CARRIER_MCC:"net.host.carrier.mcc",NET_HOST_CARRIER_MNC:"net.host.carrier.mnc",NET_HOST_CARRIER_ICC:"net.host.carrier.icc",PEER_SERVICE:"peer.service",ENDUSER_ID:"enduser.id",ENDUSER_ROLE:"enduser.role",ENDUSER_SCOPE:"enduser.scope",THREAD_ID:"thread.id",THREAD_NAME:"thread.name",CODE_FUNCTION:"code.function",CODE_NAMESPACE:"code.namespace",CODE_FILEPATH:"code.filepath",CODE_LINENO:"code.lineno",HTTP_METHOD:"http.method",HTTP_URL:"http.url",HTTP_TARGET:"http.target",HTTP_HOST:"http.host",HTTP_SCHEME:"http.scheme",HTTP_STATUS_CODE:"http.status_code",HTTP_FLAVOR:"http.flavor",HTTP_USER_AGENT:"http.user_agent",HTTP_REQUEST_CONTENT_LENGTH:"http.request_content_length",HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:"http.request_content_length_uncompressed",HTTP_RESPONSE_CONTENT_LENGTH:"http.response_content_length",HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:"http.response_content_length_uncompressed",HTTP_SERVER_NAME:"http.server_name",HTTP_ROUTE:"http.route",HTTP_CLIENT_IP:"http.client_ip",AWS_DYNAMODB_TABLE_NAMES:"aws.dynamodb.table_names",AWS_DYNAMODB_CONSUMED_CAPACITY:"aws.dynamodb.consumed_capacity",AWS_DYNAMODB_ITEM_COLLECTION_METRICS:"aws.dynamodb.item_collection_metrics",AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:"aws.dynamodb.provisioned_read_capacity",AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:"aws.dynamodb.provisioned_write_capacity",AWS_DYNAMODB_CONSISTENT_READ:"aws.dynamodb.consistent_read",AWS_DYNAMODB_PROJECTION:"aws.dynamodb.projection",AWS_DYNAMODB_LIMIT:"aws.dynamodb.limit",AWS_DYNAMODB_ATTRIBUTES_TO_GET:"aws.dynamodb.attributes_to_get",AWS_DYNAMODB_INDEX_NAME:"aws.dynamodb.index_name",AWS_DYNAMODB_SELECT:"aws.dynamodb.select",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:"aws.dynamodb.global_secondary_indexes",AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:"aws.dynamodb.local_secondary_indexes",AWS_DYNAMODB_EXCLUSIVE_START_TABLE:"aws.dynamodb.exclusive_start_table",AWS_DYNAMODB_TABLE_COUNT:"aws.dynamodb.table_count",AWS_DYNAMODB_SCAN_FORWARD:"aws.dynamodb.scan_forward",AWS_DYNAMODB_SEGMENT:"aws.dynamodb.segment",AWS_DYNAMODB_TOTAL_SEGMENTS:"aws.dynamodb.total_segments",AWS_DYNAMODB_COUNT:"aws.dynamodb.count",AWS_DYNAMODB_SCANNED_COUNT:"aws.dynamodb.scanned_count",AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:"aws.dynamodb.attribute_definitions",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:"aws.dynamodb.global_secondary_index_updates",MESSAGING_SYSTEM:"messaging.system",MESSAGING_DESTINATION:"messaging.destination",MESSAGING_DESTINATION_KIND:"messaging.destination_kind",MESSAGING_TEMP_DESTINATION:"messaging.temp_destination",MESSAGING_PROTOCOL:"messaging.protocol",MESSAGING_PROTOCOL_VERSION:"messaging.protocol_version",MESSAGING_URL:"messaging.url",MESSAGING_MESSAGE_ID:"messaging.message_id",MESSAGING_CONVERSATION_ID:"messaging.conversation_id",MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:"messaging.message_payload_size_bytes",MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:"messaging.message_payload_compressed_size_bytes",MESSAGING_OPERATION:"messaging.operation",MESSAGING_CONSUMER_ID:"messaging.consumer_id",MESSAGING_RABBITMQ_ROUTING_KEY:"messaging.rabbitmq.routing_key",MESSAGING_KAFKA_MESSAGE_KEY:"messaging.kafka.message_key",MESSAGING_KAFKA_CONSUMER_GROUP:"messaging.kafka.consumer_group",MESSAGING_KAFKA_CLIENT_ID:"messaging.kafka.client_id",MESSAGING_KAFKA_PARTITION:"messaging.kafka.partition",MESSAGING_KAFKA_TOMBSTONE:"messaging.kafka.tombstone",RPC_SYSTEM:"rpc.system",RPC_SERVICE:"rpc.service",RPC_METHOD:"rpc.method",RPC_GRPC_STATUS_CODE:"rpc.grpc.status_code",RPC_JSONRPC_VERSION:"rpc.jsonrpc.version",RPC_JSONRPC_REQUEST_ID:"rpc.jsonrpc.request_id",RPC_JSONRPC_ERROR_CODE:"rpc.jsonrpc.error_code",RPC_JSONRPC_ERROR_MESSAGE:"rpc.jsonrpc.error_message",MESSAGE_TYPE:"message.type",MESSAGE_ID:"message.id",MESSAGE_COMPRESSED_SIZE:"message.compressed_size",MESSAGE_UNCOMPRESSED_SIZE:"message.uncompressed_size"};K0.DbSystemValues={OTHER_SQL:"other_sql",MSSQL:"mssql",MYSQL:"mysql",ORACLE:"oracle",DB2:"db2",POSTGRESQL:"postgresql",REDSHIFT:"redshift",HIVE:"hive",CLOUDSCAPE:"cloudscape",HSQLDB:"hsqldb",PROGRESS:"progress",MAXDB:"maxdb",HANADB:"hanadb",INGRES:"ingres",FIRSTSQL:"firstsql",EDB:"edb",CACHE:"cache",ADABAS:"adabas",FIREBIRD:"firebird",DERBY:"derby",FILEMAKER:"filemaker",INFORMIX:"informix",INSTANTDB:"instantdb",INTERBASE:"interbase",MARIADB:"mariadb",NETEZZA:"netezza",PERVASIVE:"pervasive",POINTBASE:"pointbase",SQLITE:"sqlite",SYBASE:"sybase",TERADATA:"teradata",VERTICA:"vertica",H2:"h2",COLDFUSION:"coldfusion",CASSANDRA:"cassandra",HBASE:"hbase",MONGODB:"mongodb",REDIS:"redis",COUCHBASE:"couchbase",COUCHDB:"couchdb",COSMOSDB:"cosmosdb",DYNAMODB:"dynamodb",NEO4J:"neo4j",GEODE:"geode",ELASTICSEARCH:"elasticsearch",MEMCACHED:"memcached",COCKROACHDB:"cockroachdb"};K0.DbCassandraConsistencyLevelValues={ALL:"all",EACH_QUORUM:"each_quorum",QUORUM:"quorum",LOCAL_QUORUM:"local_quorum",ONE:"one",TWO:"two",THREE:"three",LOCAL_ONE:"local_one",ANY:"any",SERIAL:"serial",LOCAL_SERIAL:"local_serial"};K0.FaasTriggerValues={DATASOURCE:"datasource",HTTP:"http",PUBSUB:"pubsub",TIMER:"timer",OTHER:"other"};K0.FaasDocumentOperationValues={INSERT:"insert",EDIT:"edit",DELETE:"delete"};K0.FaasInvokedProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};K0.NetTransportValues={IP_TCP:"ip_tcp",IP_UDP:"ip_udp",IP:"ip",UNIX:"unix",PIPE:"pipe",INPROC:"inproc",OTHER:"other"};K0.NetHostConnectionTypeValues={WIFI:"wifi",WIRED:"wired",CELL:"cell",UNAVAILABLE:"unavailable",UNKNOWN:"unknown"};K0.NetHostConnectionSubtypeValues={GPRS:"gprs",EDGE:"edge",UMTS:"umts",CDMA:"cdma",EVDO_0:"evdo_0",EVDO_A:"evdo_a",CDMA2000_1XRTT:"cdma2000_1xrtt",HSDPA:"hsdpa",HSUPA:"hsupa",HSPA:"hspa",IDEN:"iden",EVDO_B:"evdo_b",LTE:"lte",EHRPD:"ehrpd",HSPAP:"hspap",GSM:"gsm",TD_SCDMA:"td_scdma",IWLAN:"iwlan",NR:"nr",NRNSA:"nrnsa",LTE_CA:"lte_ca"};K0.HttpFlavorValues={HTTP_1_0:"1.0",HTTP_1_1:"1.1",HTTP_2_0:"2.0",SPDY:"SPDY",QUIC:"QUIC"};K0.MessagingDestinationKindValues={QUEUE:"queue",TOPIC:"topic"};K0.MessagingOperationValues={RECEIVE:"receive",PROCESS:"process"};K0.RpcGrpcStatusCodeValues={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15,UNAUTHENTICATED:16};K0.MessageTypeValues={SENT:"SENT",RECEIVED:"RECEIVED"}});var RPi=H(xCe=>{"use strict";var wyc=xCe&&xCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Tyc=xCe&&xCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&wyc(t,e,r)};Object.defineProperty(xCe,"__esModule",{value:!0});Tyc(TPi(),xCe)});var NPi=H(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.TelemetrySdkLanguageValues=PG.OsTypeValues=PG.HostArchValues=PG.AwsEcsLaunchtypeValues=PG.CloudPlatformValues=PG.CloudProviderValues=PG.SemanticResourceAttributes=void 0;PG.SemanticResourceAttributes={CLOUD_PROVIDER:"cloud.provider",CLOUD_ACCOUNT_ID:"cloud.account.id",CLOUD_REGION:"cloud.region",CLOUD_AVAILABILITY_ZONE:"cloud.availability_zone",CLOUD_PLATFORM:"cloud.platform",AWS_ECS_CONTAINER_ARN:"aws.ecs.container.arn",AWS_ECS_CLUSTER_ARN:"aws.ecs.cluster.arn",AWS_ECS_LAUNCHTYPE:"aws.ecs.launchtype",AWS_ECS_TASK_ARN:"aws.ecs.task.arn",AWS_ECS_TASK_FAMILY:"aws.ecs.task.family",AWS_ECS_TASK_REVISION:"aws.ecs.task.revision",AWS_EKS_CLUSTER_ARN:"aws.eks.cluster.arn",AWS_LOG_GROUP_NAMES:"aws.log.group.names",AWS_LOG_GROUP_ARNS:"aws.log.group.arns",AWS_LOG_STREAM_NAMES:"aws.log.stream.names",AWS_LOG_STREAM_ARNS:"aws.log.stream.arns",CONTAINER_NAME:"container.name",CONTAINER_ID:"container.id",CONTAINER_RUNTIME:"container.runtime",CONTAINER_IMAGE_NAME:"container.image.name",CONTAINER_IMAGE_TAG:"container.image.tag",DEPLOYMENT_ENVIRONMENT:"deployment.environment",DEVICE_ID:"device.id",DEVICE_MODEL_IDENTIFIER:"device.model.identifier",DEVICE_MODEL_NAME:"device.model.name",FAAS_NAME:"faas.name",FAAS_ID:"faas.id",FAAS_VERSION:"faas.version",FAAS_INSTANCE:"faas.instance",FAAS_MAX_MEMORY:"faas.max_memory",HOST_ID:"host.id",HOST_NAME:"host.name",HOST_TYPE:"host.type",HOST_ARCH:"host.arch",HOST_IMAGE_NAME:"host.image.name",HOST_IMAGE_ID:"host.image.id",HOST_IMAGE_VERSION:"host.image.version",K8S_CLUSTER_NAME:"k8s.cluster.name",K8S_NODE_NAME:"k8s.node.name",K8S_NODE_UID:"k8s.node.uid",K8S_NAMESPACE_NAME:"k8s.namespace.name",K8S_POD_UID:"k8s.pod.uid",K8S_POD_NAME:"k8s.pod.name",K8S_CONTAINER_NAME:"k8s.container.name",K8S_REPLICASET_UID:"k8s.replicaset.uid",K8S_REPLICASET_NAME:"k8s.replicaset.name",K8S_DEPLOYMENT_UID:"k8s.deployment.uid",K8S_DEPLOYMENT_NAME:"k8s.deployment.name",K8S_STATEFULSET_UID:"k8s.statefulset.uid",K8S_STATEFULSET_NAME:"k8s.statefulset.name",K8S_DAEMONSET_UID:"k8s.daemonset.uid",K8S_DAEMONSET_NAME:"k8s.daemonset.name",K8S_JOB_UID:"k8s.job.uid",K8S_JOB_NAME:"k8s.job.name",K8S_CRONJOB_UID:"k8s.cronjob.uid",K8S_CRONJOB_NAME:"k8s.cronjob.name",OS_TYPE:"os.type",OS_DESCRIPTION:"os.description",OS_NAME:"os.name",OS_VERSION:"os.version",PROCESS_PID:"process.pid",PROCESS_EXECUTABLE_NAME:"process.executable.name",PROCESS_EXECUTABLE_PATH:"process.executable.path",PROCESS_COMMAND:"process.command",PROCESS_COMMAND_LINE:"process.command_line",PROCESS_COMMAND_ARGS:"process.command_args",PROCESS_OWNER:"process.owner",PROCESS_RUNTIME_NAME:"process.runtime.name",PROCESS_RUNTIME_VERSION:"process.runtime.version",PROCESS_RUNTIME_DESCRIPTION:"process.runtime.description",SERVICE_NAME:"service.name",SERVICE_NAMESPACE:"service.namespace",SERVICE_INSTANCE_ID:"service.instance.id",SERVICE_VERSION:"service.version",TELEMETRY_SDK_NAME:"telemetry.sdk.name",TELEMETRY_SDK_LANGUAGE:"telemetry.sdk.language",TELEMETRY_SDK_VERSION:"telemetry.sdk.version",TELEMETRY_AUTO_VERSION:"telemetry.auto.version",WEBENGINE_NAME:"webengine.name",WEBENGINE_VERSION:"webengine.version",WEBENGINE_DESCRIPTION:"webengine.description"};PG.CloudProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};PG.CloudPlatformValues={ALIBABA_CLOUD_ECS:"alibaba_cloud_ecs",ALIBABA_CLOUD_FC:"alibaba_cloud_fc",AWS_EC2:"aws_ec2",AWS_ECS:"aws_ecs",AWS_EKS:"aws_eks",AWS_LAMBDA:"aws_lambda",AWS_ELASTIC_BEANSTALK:"aws_elastic_beanstalk",AZURE_VM:"azure_vm",AZURE_CONTAINER_INSTANCES:"azure_container_instances",AZURE_AKS:"azure_aks",AZURE_FUNCTIONS:"azure_functions",AZURE_APP_SERVICE:"azure_app_service",GCP_COMPUTE_ENGINE:"gcp_compute_engine",GCP_CLOUD_RUN:"gcp_cloud_run",GCP_KUBERNETES_ENGINE:"gcp_kubernetes_engine",GCP_CLOUD_FUNCTIONS:"gcp_cloud_functions",GCP_APP_ENGINE:"gcp_app_engine"};PG.AwsEcsLaunchtypeValues={EC2:"ec2",FARGATE:"fargate"};PG.HostArchValues={AMD64:"amd64",ARM32:"arm32",ARM64:"arm64",IA64:"ia64",PPC32:"ppc32",PPC64:"ppc64",X86:"x86"};PG.OsTypeValues={WINDOWS:"windows",LINUX:"linux",DARWIN:"darwin",FREEBSD:"freebsd",NETBSD:"netbsd",OPENBSD:"openbsd",DRAGONFLYBSD:"dragonflybsd",HPUX:"hpux",AIX:"aix",SOLARIS:"solaris",Z_OS:"z_os"};PG.TelemetrySdkLanguageValues={CPP:"cpp",DOTNET:"dotnet",ERLANG:"erlang",GO:"go",JAVA:"java",NODEJS:"nodejs",PHP:"php",PYTHON:"python",RUBY:"ruby",WEBJS:"webjs"}});var DPi=H(GCe=>{"use strict";var Ryc=GCe&&GCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Nyc=GCe&&GCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Ryc(t,e,r)};Object.defineProperty(GCe,"__esModule",{value:!0});Nyc(NPi(),GCe)});var Hce=H(Mce=>{"use strict";var Dyc=Mce&&Mce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kPi=Mce&&Mce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Dyc(t,e,r)};Object.defineProperty(Mce,"__esModule",{value:!0});kPi(RPi(),Mce);kPi(DPi(),Mce)});var bKe=H(Yce=>{"use strict";Object.defineProperty(Yce,"__esModule",{value:!0});Yce.isTracingSuppressed=Yce.unsuppressTracing=Yce.suppressTracing=void 0;var kyc=(GI(),vi(xI)),bZr=(0,kyc.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function xyc(e){return e.setValue(bZr,!0)}Yce.suppressTracing=xyc;function Gyc(e){return e.deleteValue(bZr)}Yce.unsuppressTracing=Gyc;function Fyc(e){return e.getValue(bZr)===!0}Yce.isTracingSuppressed=Fyc});var EZr=H(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.BAGGAGE_MAX_TOTAL_LENGTH=WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=WG.BAGGAGE_HEADER=WG.BAGGAGE_ITEMS_SEPARATOR=WG.BAGGAGE_PROPERTIES_SEPARATOR=WG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;WG.BAGGAGE_KEY_PAIR_SEPARATOR="=";WG.BAGGAGE_PROPERTIES_SEPARATOR=";";WG.BAGGAGE_ITEMS_SEPARATOR=",";WG.BAGGAGE_HEADER="baggage";WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;WG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var SZr=H(Nj=>{"use strict";Object.defineProperty(Nj,"__esModule",{value:!0});Nj.parseKeyPairsIntoRecord=Nj.parsePairKeyValue=Nj.getKeyPairs=Nj.serializeKeyPairs=void 0;var Zyc=(GI(),vi(xI)),FCe=EZr();function Lyc(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?FCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>FCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}Nj.serializeKeyPairs=Lyc;function Vyc(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=FCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}Nj.getKeyPairs=Vyc;function xPi(e){let t=e.split(FCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(FCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,Zyc.baggageEntryMetadataFromString)(t.join(FCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}Nj.parsePairKeyValue=xPi;function Pyc(e){return typeof e!="string"||e.length===0?{}:e.split(FCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>xPi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}Nj.parseKeyPairsIntoRecord=Pyc});var GPi=H(T2t=>{"use strict";Object.defineProperty(T2t,"__esModule",{value:!0});T2t.W3CBaggagePropagator=void 0;var vZr=(GI(),vi(xI)),Wyc=bKe(),ZCe=EZr(),BZr=SZr(),wZr=class{inject(t,r,n){let a=vZr.propagation.getBaggage(t);if(!a||(0,Wyc.isTracingSuppressed)(t))return;let o=(0,BZr.getKeyPairs)(a).filter(A=>A.length<=ZCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,ZCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,BZr.serializeKeyPairs)(o);l.length>0&&n.set(r,ZCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,ZCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(ZCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(ZCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,BZr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:vZr.propagation.setBaggage(t,vZr.propagation.createBaggage(l))}fields(){return[ZCe.BAGGAGE_HEADER]}};T2t.W3CBaggagePropagator=wZr});var FPi=H(R2t=>{"use strict";Object.defineProperty(R2t,"__esModule",{value:!0});R2t.AnchoredClock=void 0;var TZr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};R2t.AnchoredClock=TZr});var WPi=H(Qce=>{"use strict";Object.defineProperty(Qce,"__esModule",{value:!0});Qce.isAttributeValue=Qce.isAttributeKey=Qce.sanitizeAttributes=void 0;var ZPi=(GI(),vi(xI));function Oyc(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!LPi(r)){ZPi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!VPi(n)){ZPi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Qce.sanitizeAttributes=Oyc;function LPi(e){return typeof e=="string"&&e.length>0}Qce.isAttributeKey=LPi;function VPi(e){return e==null?!0:Array.isArray(e)?Myc(e):PPi(e)}Qce.isAttributeValue=VPi;function Myc(e){let t;for(let r of e)if(r!=null){if(!t){if(PPi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function PPi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var RZr=H(N2t=>{"use strict";Object.defineProperty(N2t,"__esModule",{value:!0});N2t.loggingErrorHandler=void 0;var Hyc=(GI(),vi(xI));function Yyc(){return e=>{Hyc.diag.error(Qyc(e))}}N2t.loggingErrorHandler=Yyc;function Qyc(e){return typeof e=="string"?e:JSON.stringify(Xyc(e))}function Xyc(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var NZr=H(BDe=>{"use strict";Object.defineProperty(BDe,"__esModule",{value:!0});BDe.globalErrorHandler=BDe.setGlobalErrorHandler=void 0;var Jyc=RZr(),OPi=(0,Jyc.loggingErrorHandler)();function Uyc(e){OPi=e}BDe.setGlobalErrorHandler=Uyc;function Kyc(e){try{OPi(e)}catch{}}BDe.globalErrorHandler=Kyc});var DZr=H(EKe=>{"use strict";Object.defineProperty(EKe,"__esModule",{value:!0});EKe.TracesSamplerValues=void 0;var jyc;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(jyc=EKe.TracesSamplerValues||(EKe.TracesSamplerValues={}))});var MPi=H(D2t=>{"use strict";Object.defineProperty(D2t,"__esModule",{value:!0});D2t._globalThis=void 0;D2t._globalThis=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});var xZr=H(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.getEnvWithoutDefaults=Q1.parseEnvironment=Q1.DEFAULT_ENVIRONMENT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Xce=(GI(),vi(xI)),zyc=DZr(),qyc=MPi(),$yc=",",ebc=["OTEL_SDK_DISABLED"];function tbc(e){return ebc.indexOf(e)>-1}var rbc=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function nbc(e){return rbc.indexOf(e)>-1}var ibc=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function sbc(e){return ibc.indexOf(e)>-1}Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;Q1.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Xce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:zyc.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function obc(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function abc(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function cbc(e,t,r,n=$yc){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var lbc={ALL:Xce.DiagLogLevel.ALL,VERBOSE:Xce.DiagLogLevel.VERBOSE,DEBUG:Xce.DiagLogLevel.DEBUG,INFO:Xce.DiagLogLevel.INFO,WARN:Xce.DiagLogLevel.WARN,ERROR:Xce.DiagLogLevel.ERROR,NONE:Xce.DiagLogLevel.NONE};function ubc(e,t,r){let n=r[e];if(typeof n=="string"){let a=lbc[n.toUpperCase()];a!=null&&(t[e]=a)}}function kZr(e){let t={};for(let r in Q1.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":ubc(n,t,e);break;default:if(tbc(n))obc(n,t,e);else if(nbc(n))abc(n,t,e);else if(sbc(n))cbc(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}Q1.parseEnvironment=kZr;function gbc(){return typeof process<"u"&&process&&process.env?kZr(process.env):kZr(qyc._globalThis)}Q1.getEnvWithoutDefaults=gbc});var YPi=H(k2t=>{"use strict";Object.defineProperty(k2t,"__esModule",{value:!0});k2t.getEnv=void 0;var Abc=wt("os"),HPi=xZr();function dbc(){let e=(0,HPi.parseEnvironment)(process.env);return Object.assign({HOSTNAME:Abc.hostname()},HPi.DEFAULT_ENVIRONMENT,e)}k2t.getEnv=dbc});var QPi=H(x2t=>{"use strict";Object.defineProperty(x2t,"__esModule",{value:!0});x2t._globalThis=void 0;x2t._globalThis=typeof globalThis=="object"?globalThis:global});var JPi=H(G2t=>{"use strict";Object.defineProperty(G2t,"__esModule",{value:!0});G2t.hexToBase64=void 0;function XPi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}var pbc=Buffer.alloc(8),fbc=Buffer.alloc(16);function Ibc(e){let t;e.length===16?t=pbc:e.length===32?t=fbc:t=Buffer.alloc(e.length/2);let r=0;for(let n=0;n{"use strict";Object.defineProperty(Z2t,"__esModule",{value:!0});Z2t.RandomIdGenerator=void 0;var hbc=8,KPi=16,GZr=class{constructor(){this.generateTraceId=UPi(KPi),this.generateSpanId=UPi(hbc)}};Z2t.RandomIdGenerator=GZr;var F2t=Buffer.allocUnsafe(KPi);function UPi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(F2t[e-1]=1);return F2t.toString("hex",0,e)}}});var zPi=H(L2t=>{"use strict";Object.defineProperty(L2t,"__esModule",{value:!0});L2t.otperformance=void 0;var mbc=wt("perf_hooks");L2t.otperformance=mbc.performance});var P2t=H(V2t=>{"use strict";Object.defineProperty(V2t,"__esModule",{value:!0});V2t.VERSION=void 0;V2t.VERSION="1.16.0"});var qPi=H(W2t=>{"use strict";Object.defineProperty(W2t,"__esModule",{value:!0});W2t.SDK_INFO=void 0;var Cbc=P2t(),SKe=Hce();W2t.SDK_INFO={[SKe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:"opentelemetry",[SKe.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"node",[SKe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:SKe.TelemetrySdkLanguageValues.NODEJS,[SKe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:Cbc.VERSION}});var $Pi=H(O2t=>{"use strict";Object.defineProperty(O2t,"__esModule",{value:!0});O2t.unrefTimer=void 0;function _bc(e){e.unref()}O2t.unrefTimer=_bc});var eWi=H(EO=>{"use strict";var ybc=EO&&EO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LCe=EO&&EO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&ybc(t,e,r)};Object.defineProperty(EO,"__esModule",{value:!0});LCe(YPi(),EO);LCe(QPi(),EO);LCe(JPi(),EO);LCe(jPi(),EO);LCe(zPi(),EO);LCe(qPi(),EO);LCe($Pi(),EO)});var FZr=H(VCe=>{"use strict";var bbc=VCe&&VCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ebc=VCe&&VCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bbc(t,e,r)};Object.defineProperty(VCe,"__esModule",{value:!0});Ebc(eWi(),VCe)});var iWi=H(WE=>{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.addHrTimes=WE.isTimeInput=WE.isTimeInputHrTime=WE.hrTimeToMicroseconds=WE.hrTimeToMilliseconds=WE.hrTimeToNanoseconds=WE.hrTimeToTimeStamp=WE.hrTimeDuration=WE.timeInputToHrTime=WE.hrTime=WE.getTimeOrigin=WE.millisToHrTime=void 0;var ZZr=FZr(),tWi=9,Sbc=6,vbc=Math.pow(10,Sbc),M2t=Math.pow(10,tWi);function vKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*vbc);return[r,n]}WE.millisToHrTime=vKe;function LZr(){let e=ZZr.otperformance.timeOrigin;if(typeof e!="number"){let t=ZZr.otperformance;e=t.timing&&t.timing.fetchStart}return e}WE.getTimeOrigin=LZr;function rWi(e){let t=vKe(LZr()),r=vKe(typeof e=="number"?e:ZZr.otperformance.now());return nWi(t,r)}WE.hrTime=rWi;function Bbc(e){if(VZr(e))return e;if(typeof e=="number")return e=M2t&&(r[1]-=M2t,r[0]+=1),r}WE.addHrTimes=nWi});var oWi=H(sWi=>{"use strict";Object.defineProperty(sWi,"__esModule",{value:!0})});var aWi=H(BKe=>{"use strict";Object.defineProperty(BKe,"__esModule",{value:!0});BKe.ExportResultCode=void 0;var xbc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(xbc=BKe.ExportResultCode||(BKe.ExportResultCode={}))});var lWi=H(H2t=>{"use strict";Object.defineProperty(H2t,"__esModule",{value:!0});H2t.CompositePropagator=void 0;var cWi=(GI(),vi(xI)),PZr=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){cWi.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){cWi.diag.warn(`Failed to inject with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};H2t.CompositePropagator=PZr});var uWi=H(wDe=>{"use strict";Object.defineProperty(wDe,"__esModule",{value:!0});wDe.validateValue=wDe.validateKey=void 0;var WZr="[_0-9a-z-*/]",Gbc=`[a-z]${WZr}{0,255}`,Fbc=`[a-z0-9]${WZr}{0,240}@[a-z]${WZr}{0,13}`,Zbc=new RegExp(`^(?:${Gbc}|${Fbc})$`),Lbc=/^[ -~]{0,255}[!-~]$/,Vbc=/,|=/;function Pbc(e){return Zbc.test(e)}wDe.validateKey=Pbc;function Wbc(e){return Lbc.test(e)&&!Vbc.test(e)}wDe.validateValue=Wbc});var MZr=H(Y2t=>{"use strict";Object.defineProperty(Y2t,"__esModule",{value:!0});Y2t.TraceState=void 0;var gWi=uWi(),AWi=32,Obc=512,dWi=",",pWi="=",OZr=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+pWi+this.get(r)),t),[]).join(dWi)}_parse(t){t.length>Obc||(this._internalState=t.split(dWi).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(pWi);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,gWi.validateKey)(l)&&(0,gWi.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>AWi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,AWi))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};Y2t.TraceState=OZr});var IWi=H(OG=>{"use strict";Object.defineProperty(OG,"__esModule",{value:!0});OG.W3CTraceContextPropagator=OG.parseTraceParent=OG.TRACE_STATE_HEADER=OG.TRACE_PARENT_HEADER=void 0;var Q2t=(GI(),vi(xI)),Mbc=bKe(),Hbc=MZr();OG.TRACE_PARENT_HEADER="traceparent";OG.TRACE_STATE_HEADER="tracestate";var Ybc="00",Qbc="(?!ff)[\\da-f]{2}",Xbc="(?![0]{32})[\\da-f]{32}",Jbc="(?![0]{16})[\\da-f]{16}",Ubc="[\\da-f]{2}",Kbc=new RegExp(`^\\s?(${Qbc})-(${Xbc})-(${Jbc})-(${Ubc})(-.*)?\\s?$`);function fWi(e){let t=Kbc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}OG.parseTraceParent=fWi;var HZr=class{inject(t,r,n){let a=Q2t.trace.getSpanContext(t);if(!a||(0,Mbc.isTracingSuppressed)(t)||!(0,Q2t.isSpanContextValid)(a))return;let o=`${Ybc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||Q2t.TraceFlags.NONE).toString(16)}`;n.set(r,OG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,OG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,OG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=fWi(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,OG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new Hbc.TraceState(typeof f=="string"?f:void 0)}return Q2t.trace.setSpanContext(t,l)}fields(){return[OG.TRACE_PARENT_HEADER,OG.TRACE_STATE_HEADER]}};OG.W3CTraceContextPropagator=HZr});var mWi=H(hWi=>{"use strict";Object.defineProperty(hWi,"__esModule",{value:!0})});var CWi=H(h4=>{"use strict";Object.defineProperty(h4,"__esModule",{value:!0});h4.getRPCMetadata=h4.deleteRPCMetadata=h4.setRPCMetadata=h4.RPCType=void 0;var jbc=(GI(),vi(xI)),YZr=(0,jbc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),zbc;(function(e){e.HTTP="http"})(zbc=h4.RPCType||(h4.RPCType={}));function qbc(e,t){return e.setValue(YZr,t)}h4.setRPCMetadata=qbc;function $bc(e){return e.deleteValue(YZr)}h4.deleteRPCMetadata=$bc;function eEc(e){return e.getValue(YZr)}h4.getRPCMetadata=eEc});var XZr=H(X2t=>{"use strict";Object.defineProperty(X2t,"__esModule",{value:!0});X2t.AlwaysOffSampler=void 0;var tEc=(GI(),vi(xI)),QZr=class{shouldSample(){return{decision:tEc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};X2t.AlwaysOffSampler=QZr});var UZr=H(J2t=>{"use strict";Object.defineProperty(J2t,"__esModule",{value:!0});J2t.AlwaysOnSampler=void 0;var rEc=(GI(),vi(xI)),JZr=class{shouldSample(){return{decision:rEc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};J2t.AlwaysOnSampler=JZr});var yWi=H(K2t=>{"use strict";Object.defineProperty(K2t,"__esModule",{value:!0});K2t.ParentBasedSampler=void 0;var U2t=(GI(),vi(xI)),nEc=NZr(),_Wi=XZr(),KZr=UZr(),jZr=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,nEc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new KZr.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new KZr.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new _Wi.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new KZr.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new _Wi.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=U2t.trace.getSpanContext(t);return!A||!(0,U2t.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&U2t.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&U2t.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};K2t.ParentBasedSampler=jZr});var bWi=H(j2t=>{"use strict";Object.defineProperty(j2t,"__esModule",{value:!0});j2t.TraceIdRatioBasedSampler=void 0;var zZr=(GI(),vi(xI)),qZr=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,zZr.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};j2t.TraceIdRatioBasedSampler=qZr});var wWi=H(z2t=>{"use strict";Object.defineProperty(z2t,"__esModule",{value:!0});z2t.isPlainObject=void 0;var iEc="[object Object]",sEc="[object Null]",oEc="[object Undefined]",aEc=Function.prototype,EWi=aEc.toString,cEc=EWi.call(Object),lEc=uEc(Object.getPrototypeOf,Object),SWi=Object.prototype,vWi=SWi.hasOwnProperty,PCe=Symbol?Symbol.toStringTag:void 0,BWi=SWi.toString;function uEc(e,t){return function(r){return e(t(r))}}function gEc(e){if(!AEc(e)||dEc(e)!==iEc)return!1;let t=lEc(e);if(t===null)return!0;let r=vWi.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&EWi.call(r)===cEc}z2t.isPlainObject=gEc;function AEc(e){return e!=null&&typeof e=="object"}function dEc(e){return e==null?e===void 0?oEc:sEc:PCe&&PCe in Object(e)?pEc(e):fEc(e)}function pEc(e){let t=vWi.call(e,PCe),r=e[PCe],n=!1;try{e[PCe]=void 0,n=!0}catch{}let a=BWi.call(e);return n&&(t?e[PCe]=r:delete e[PCe]),a}function fEc(e){return BWi.call(e)}});var kWi=H(eSt=>{"use strict";Object.defineProperty(eSt,"__esModule",{value:!0});eSt.merge=void 0;var TWi=wWi(),IEc=20;function hEc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=NWi(t,e.shift(),0,r);return t}eSt.merge=hEc;function $Zr(e){return $2t(e)?e.slice():e}function NWi(e,t,r=0,n){let a;if(!(r>IEc)){if(r++,q2t(e)||q2t(t)||DWi(t))a=$Zr(t);else if($2t(e)){if(a=e.slice(),$2t(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(RWi(e,f,n)||RWi(t,f,n))delete a[f];else{if(wKe(C)&&wKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=NWi(a[f],I,r,n)}}}}else a=t;return a}}function RWi(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function mEc(e,t){return!(!(0,TWi.isPlainObject)(e)||!(0,TWi.isPlainObject)(t))}});var xWi=H(TDe=>{"use strict";Object.defineProperty(TDe,"__esModule",{value:!0});TDe.callWithTimeout=TDe.TimeoutError=void 0;var tSt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};TDe.TimeoutError=tSt;function CEc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new tSt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}TDe.callWithTimeout=CEc});var FWi=H(RDe=>{"use strict";Object.defineProperty(RDe,"__esModule",{value:!0});RDe.isUrlIgnored=RDe.urlMatches=void 0;function GWi(e,t){return typeof t=="string"?e===t:!!e.match(t)}RDe.urlMatches=GWi;function _Ec(e,t){if(!t)return!1;for(let r of t)if(GWi(e,r))return!0;return!1}RDe.isUrlIgnored=_Ec});var ZWi=H(rSt=>{"use strict";Object.defineProperty(rSt,"__esModule",{value:!0});rSt.isWrapped=void 0;function yEc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}rSt.isWrapped=yEc});var LWi=H(nSt=>{"use strict";Object.defineProperty(nSt,"__esModule",{value:!0});nSt.Deferred=void 0;var eLr=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};nSt.Deferred=eLr});var VWi=H(iSt=>{"use strict";Object.defineProperty(iSt,"__esModule",{value:!0});iSt.BindOnceFuture=void 0;var bEc=LWi(),tLr=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new bEc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};iSt.BindOnceFuture=tLr});var WWi=H(sSt=>{"use strict";Object.defineProperty(sSt,"__esModule",{value:!0});sSt._export=void 0;var PWi=(GI(),vi(xI)),EEc=bKe();function SEc(e,t){return new Promise(r=>{PWi.context.with((0,EEc.suppressTracing)(PWi.context.active()),()=>{e.export(t,n=>{r(n)})})})}sSt._export=SEc});var AH=H(vm=>{"use strict";var vEc=vm&&vm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ab=vm&&vm.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&vEc(t,e,r)};Object.defineProperty(vm,"__esModule",{value:!0});vm.internal=vm.baggageUtils=void 0;ab(GPi(),vm);ab(FPi(),vm);ab(WPi(),vm);ab(NZr(),vm);ab(RZr(),vm);ab(iWi(),vm);ab(oWi(),vm);ab(aWi(),vm);ab(P2t(),vm);vm.baggageUtils=SZr();ab(FZr(),vm);ab(lWi(),vm);ab(IWi(),vm);ab(mWi(),vm);ab(CWi(),vm);ab(XZr(),vm);ab(UZr(),vm);ab(yWi(),vm);ab(bWi(),vm);ab(bKe(),vm);ab(MZr(),vm);ab(xZr(),vm);ab(kWi(),vm);ab(DZr(),vm);ab(xWi(),vm);ab(FWi(),vm);ab(ZWi(),vm);ab(VWi(),vm);ab(P2t(),vm);var BEc=WWi();vm.internal={_export:BEc._export}});var OWi=H(oSt=>{"use strict";Object.defineProperty(oSt,"__esModule",{value:!0});oSt.defaultServiceName=void 0;function wEc(){return`unknown_service:${process.argv0}`}oSt.defaultServiceName=wEc});var rLr=H(NDe=>{"use strict";Object.defineProperty(NDe,"__esModule",{value:!0});NDe.normalizeType=NDe.normalizeArch=void 0;var TEc=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};NDe.normalizeArch=TEc;var REc=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};NDe.normalizeType=REc});var cSt=H(aSt=>{"use strict";Object.defineProperty(aSt,"__esModule",{value:!0});aSt.execAsync=void 0;var NEc=wt("child_process"),DEc=wt("util");aSt.execAsync=DEc.promisify(NEc.exec)});var MWi=H(lSt=>{"use strict";Object.defineProperty(lSt,"__esModule",{value:!0});lSt.getMachineId=void 0;var kEc=cSt(),xEc=(GI(),vi(xI));async function GEc(){try{let t=(await(0,kEc.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` -`).find(n=>n.includes("IOPlatformUUID"));if(!t)return"";let r=t.split('" = "');if(r.length===2)return r[1].slice(0,-1)}catch(e){xEc.diag.debug(`error reading machine id: ${e}`)}return""}lSt.getMachineId=GEc});var HWi=H(uSt=>{"use strict";Object.defineProperty(uSt,"__esModule",{value:!0});uSt.getMachineId=void 0;var FEc=wt("fs"),ZEc=(GI(),vi(xI));async function LEc(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await FEc.promises.readFile(t,{encoding:"utf8"})).trim()}catch(r){ZEc.diag.debug(`error reading machine id: ${r}`)}return""}uSt.getMachineId=LEc});var QWi=H(gSt=>{"use strict";Object.defineProperty(gSt,"__esModule",{value:!0});gSt.getMachineId=void 0;var VEc=wt("fs"),PEc=cSt(),YWi=(GI(),vi(xI));async function WEc(){try{return(await VEc.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,PEc.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}return""}gSt.getMachineId=WEc});var JWi=H(ASt=>{"use strict";Object.defineProperty(ASt,"__esModule",{value:!0});ASt.getMachineId=void 0;var XWi=wt("process"),OEc=cSt(),MEc=(GI(),vi(xI));async function HEc(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";XWi.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in XWi.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let n=(await(0,OEc.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(n.length===2)return n[1].trim()}catch(r){MEc.diag.debug(`error reading machine id: ${r}`)}return""}ASt.getMachineId=HEc});var UWi=H(dSt=>{"use strict";Object.defineProperty(dSt,"__esModule",{value:!0});dSt.getMachineId=void 0;var YEc=(GI(),vi(xI));async function QEc(){return YEc.diag.debug("could not read machine-id: unsupported platform"),""}dSt.getMachineId=QEc});var KWi=H(Kee=>{"use strict";Object.defineProperty(Kee,"__esModule",{value:!0});Kee.getMachineId=void 0;var XEc=wt("process"),DDe;Kee.getMachineId=DDe;switch(XEc.platform){case"darwin":Kee.getMachineId=DDe=MWi().getMachineId;break;case"linux":Kee.getMachineId=DDe=HWi().getMachineId;break;case"freebsd":Kee.getMachineId=DDe=QWi().getMachineId;break;case"win32":Kee.getMachineId=DDe=JWi().getMachineId;break;default:Kee.getMachineId=DDe=UWi().getMachineId}});var sLr=H(pSt=>{"use strict";Object.defineProperty(pSt,"__esModule",{value:!0});pSt.hostDetectorSync=void 0;var nLr=Hce(),JEc=WCe(),jWi=wt("os"),UEc=rLr(),KEc=KWi(),iLr=class{detect(t){let r={[nLr.SemanticResourceAttributes.HOST_NAME]:(0,jWi.hostname)(),[nLr.SemanticResourceAttributes.HOST_ARCH]:(0,UEc.normalizeArch)((0,jWi.arch)())};return new JEc.Resource(r,this._getAsyncAttributes())}_getAsyncAttributes(){return(0,KEc.getMachineId)().then(t=>{let r={};return t&&(r[nLr.SemanticResourceAttributes.HOST_ID]=t),r})}};pSt.hostDetectorSync=new iLr});var zWi=H(fSt=>{"use strict";Object.defineProperty(fSt,"__esModule",{value:!0});fSt.hostDetector=void 0;var jEc=sLr(),oLr=class{detect(t){return Promise.resolve(jEc.hostDetectorSync.detect(t))}};fSt.hostDetector=new oLr});var cLr=H(ISt=>{"use strict";Object.defineProperty(ISt,"__esModule",{value:!0});ISt.osDetectorSync=void 0;var qWi=Hce(),zEc=WCe(),$Wi=wt("os"),qEc=rLr(),aLr=class{detect(t){let r={[qWi.SemanticResourceAttributes.OS_TYPE]:(0,qEc.normalizeType)((0,$Wi.platform)()),[qWi.SemanticResourceAttributes.OS_VERSION]:(0,$Wi.release)()};return new zEc.Resource(r)}};ISt.osDetectorSync=new aLr});var eOi=H(hSt=>{"use strict";Object.defineProperty(hSt,"__esModule",{value:!0});hSt.osDetector=void 0;var $Ec=cLr(),lLr=class{detect(t){return Promise.resolve($Ec.osDetectorSync.detect(t))}};hSt.osDetector=new lLr});var gLr=H(mSt=>{"use strict";Object.defineProperty(mSt,"__esModule",{value:!0});mSt.processDetectorSync=void 0;var e1c=(GI(),vi(xI)),jee=Hce(),t1c=WCe(),r1c=wt("os"),uLr=class{detect(t){let r={[jee.SemanticResourceAttributes.PROCESS_PID]:process.pid,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_NAME]:process.title,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_PATH]:process.execPath,[jee.SemanticResourceAttributes.PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[jee.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:process.versions.node,[jee.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"nodejs",[jee.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(r[jee.SemanticResourceAttributes.PROCESS_COMMAND]=process.argv[1]);try{let n=r1c.userInfo();r[jee.SemanticResourceAttributes.PROCESS_OWNER]=n.username}catch(n){e1c.diag.debug(`error obtaining process owner: ${n}`)}return new t1c.Resource(r)}};mSt.processDetectorSync=new uLr});var tOi=H(CSt=>{"use strict";Object.defineProperty(CSt,"__esModule",{value:!0});CSt.processDetector=void 0;var n1c=gLr(),ALr=class{detect(t){return Promise.resolve(n1c.processDetectorSync.detect(t))}};CSt.processDetector=new ALr});var rOi=H(SO=>{"use strict";var i1c=SO&&SO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OCe=SO&&SO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&i1c(t,e,r)};Object.defineProperty(SO,"__esModule",{value:!0});OCe(OWi(),SO);OCe(zWi(),SO);OCe(eOi(),SO);OCe(sLr(),SO);OCe(cLr(),SO);OCe(tOi(),SO);OCe(gLr(),SO)});var dLr=H(MCe=>{"use strict";var s1c=MCe&&MCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o1c=MCe&&MCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&s1c(t,e,r)};Object.defineProperty(MCe,"__esModule",{value:!0});o1c(rOi(),MCe)});var WCe=H(_St=>{"use strict";Object.defineProperty(_St,"__esModule",{value:!0});_St.Resource=void 0;var nOi=(GI(),vi(xI)),HCe=Hce(),pLr=AH(),a1c=dLr(),TKe=class e{constructor(t,r){var n;this._attributes=t,this.asyncAttributesPending=r!=null,this._syncAttributes=(n=this._attributes)!==null&&n!==void 0?n:{},this._asyncAttributesPromise=r?.then(a=>(this._attributes=Object.assign({},this._attributes,a),this.asyncAttributesPending=!1,a),a=>(nOi.diag.debug("a resource's async attributes promise rejected: %s",a),this.asyncAttributesPending=!1,{}))}static empty(){return e.EMPTY}static default(){return new e({[HCe.SemanticResourceAttributes.SERVICE_NAME]:(0,a1c.defaultServiceName)(),[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]})}get attributes(){var t;return this.asyncAttributesPending&&nOi.diag.error("Accessing resource attributes before async attributes settled"),(t=this._attributes)!==null&&t!==void 0?t:{}}async waitForAsyncAttributes(){this.asyncAttributesPending&&await this._asyncAttributesPromise}merge(t){var r;if(!t)return this;let n=Object.assign(Object.assign({},this._syncAttributes),(r=t._syncAttributes)!==null&&r!==void 0?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(n);let a=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then(([o,l])=>{var A;return Object.assign(Object.assign(Object.assign(Object.assign({},this._syncAttributes),o),(A=t._syncAttributes)!==null&&A!==void 0?A:t.attributes),l)});return new e(n,a)}};_St.Resource=TKe;TKe.EMPTY=new TKe({})});var sOi=H(iOi=>{"use strict";Object.defineProperty(iOi,"__esModule",{value:!0})});var aOi=H(oOi=>{"use strict";Object.defineProperty(oOi,"__esModule",{value:!0})});var lOi=H(cOi=>{"use strict";Object.defineProperty(cOi,"__esModule",{value:!0})});var uOi=H(ySt=>{"use strict";Object.defineProperty(ySt,"__esModule",{value:!0});ySt.browserDetector=void 0;var c1c=bSt(),fLr=class{detect(t){return Promise.resolve(c1c.browserDetectorSync.detect(t))}};ySt.browserDetector=new fLr});var hLr=H(ESt=>{"use strict";Object.defineProperty(ESt,"__esModule",{value:!0});ESt.envDetectorSync=void 0;var l1c=(GI(),vi(xI)),u1c=AH(),g1c=Hce(),A1c=WCe(),ILr=class{constructor(){this._MAX_LENGTH=255,this._COMMA_SEPARATOR=",",this._LABEL_KEY_VALUE_SPLITTER="=",this._ERROR_MESSAGE_INVALID_CHARS="should be a ASCII string with a length greater than 0 and not exceed "+this._MAX_LENGTH+" characters.",this._ERROR_MESSAGE_INVALID_VALUE="should be a ASCII string with a length not exceed "+this._MAX_LENGTH+" characters."}detect(t){let r={},n=(0,u1c.getEnv)(),a=n.OTEL_RESOURCE_ATTRIBUTES,o=n.OTEL_SERVICE_NAME;if(a)try{let l=this._parseResourceAttributes(a);Object.assign(r,l)}catch(l){l1c.diag.debug(`EnvDetector failed: ${l.message}`)}return o&&(r[g1c.SemanticResourceAttributes.SERVICE_NAME]=o),new A1c.Resource(r)}_parseResourceAttributes(t){if(!t)return{};let r={},n=t.split(this._COMMA_SEPARATOR,-1);for(let a of n){let o=a.split(this._LABEL_KEY_VALUE_SPLITTER,-1);if(o.length!==2)continue;let[l,A]=o;if(l=l.trim(),A=A.trim().split(/^"|"$/).join(""),!this._isValidAndNotEmpty(l))throw new Error(`Attribute key ${this._ERROR_MESSAGE_INVALID_CHARS}`);if(!this._isValid(A))throw new Error(`Attribute value ${this._ERROR_MESSAGE_INVALID_VALUE}`);r[l]=decodeURIComponent(A)}return r}_isValid(t){return t.length<=this._MAX_LENGTH&&this._isBaggageOctetString(t)}_isBaggageOctetString(t){for(let r=0;r126)return!1}return!0}_isValidAndNotEmpty(t){return t.length>0&&this._isValid(t)}};ESt.envDetectorSync=new ILr});var gOi=H(SSt=>{"use strict";Object.defineProperty(SSt,"__esModule",{value:!0});SSt.envDetector=void 0;var d1c=hLr(),mLr=class{detect(t){return Promise.resolve(d1c.envDetectorSync.detect(t))}};SSt.envDetector=new mLr});var AOi=H(BSt=>{"use strict";Object.defineProperty(BSt,"__esModule",{value:!0});BSt.browserDetectorSync=void 0;var vSt=Hce(),CLr=bSt(),p1c=(GI(),vi(xI)),_Lr=class{detect(t){if(!(typeof navigator<"u"))return CLr.Resource.empty();let n={[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Web Browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:navigator.userAgent};return this._getResourceAttributes(n,t)}_getResourceAttributes(t,r){return t[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]===""?(p1c.diag.debug("BrowserDetector failed: Unable to find required browser resources. "),CLr.Resource.empty()):new CLr.Resource(Object.assign({},t))}};BSt.browserDetectorSync=new _Lr});var dOi=H(Dj=>{"use strict";var f1c=Dj&&Dj.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),wSt=Dj&&Dj.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&f1c(t,e,r)};Object.defineProperty(Dj,"__esModule",{value:!0});wSt(uOi(),Dj);wSt(gOi(),Dj);wSt(AOi(),Dj);wSt(hLr(),Dj)});var pOi=H(TSt=>{"use strict";Object.defineProperty(TSt,"__esModule",{value:!0});TSt.isPromiseLike=void 0;var I1c=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";TSt.isPromiseLike=I1c});var IOi=H(xDe=>{"use strict";Object.defineProperty(xDe,"__esModule",{value:!0});xDe.detectResourcesSync=xDe.detectResources=void 0;var RKe=WCe(),kDe=(GI(),vi(xI)),h1c=pOi(),m1c=async(e={})=>{let t=await Promise.all((e.detectors||[]).map(async r=>{try{let n=await r.detect(e);return kDe.diag.debug(`${r.constructor.name} found resource.`,n),n}catch(n){return kDe.diag.debug(`${r.constructor.name} failed: ${n.message}`),RKe.Resource.empty()}}));return fOi(t),t.reduce((r,n)=>r.merge(n),RKe.Resource.empty())};xDe.detectResources=m1c;var C1c=(e={})=>{var t;let r=((t=e.detectors)!==null&&t!==void 0?t:[]).map(a=>{try{let o=a.detect(e),l;if((0,h1c.isPromiseLike)(o)){let A=async()=>(await o).attributes;l=new RKe.Resource({},A())}else l=o;return l.waitForAsyncAttributes?l.waitForAsyncAttributes().then(()=>kDe.diag.debug(`${a.constructor.name} found resource.`,l)):kDe.diag.debug(`${a.constructor.name} found resource.`,l),l}catch(o){return kDe.diag.error(`${a.constructor.name} failed: ${o.message}`),RKe.Resource.empty()}}),n=r.reduce((a,o)=>a.merge(o),RKe.Resource.empty());return n.waitForAsyncAttributes&&n.waitForAsyncAttributes().then(()=>{fOi(r)}),n};xDe.detectResourcesSync=C1c;var fOi=e=>{e.forEach(t=>{if(Object.keys(t.attributes).length>0){let r=JSON.stringify(t.attributes,null,4);kDe.diag.verbose(r)}})}});var bSt=H(vO=>{"use strict";var _1c=vO&&vO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),YCe=vO&&vO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&_1c(t,e,r)};Object.defineProperty(vO,"__esModule",{value:!0});YCe(WCe(),vO);YCe(sOi(),vO);YCe(dLr(),vO);YCe(aOi(),vO);YCe(lOi(),vO);YCe(dOi(),vO);YCe(IOi(),vO)});var ELr=H(RSt=>{"use strict";Object.defineProperty(RSt,"__esModule",{value:!0});RSt.LogRecord=void 0;var y1c=(GI(),vi(xI)),NKe=(GI(),vi(xI)),yLr=AH(),bLr=class{constructor(t,r){this.attributes={},this._isReadonly=!1;let{timestamp:n,observedTimestamp:a,severityNumber:o,severityText:l,body:A,attributes:f={},context:I}=r,C=Date.now();if(this.hrTime=(0,yLr.timeInputToHrTime)(n??C),this.hrTimeObserved=(0,yLr.timeInputToHrTime)(a??C),I){let b=NKe.trace.getSpanContext(I);b&&NKe.isSpanContextValid(b)&&(this.spanContext=b)}this.severityNumber=o,this.severityText=l,this.body=A,this.resource=t.resource,this.instrumentationScope=t.instrumentationScope,this._logRecordLimits=t.getLogRecordLimits(),this.setAttributes(f)}set severityText(t){this._isLogRecordReadonly()||(this._severityText=t)}get severityText(){return this._severityText}set severityNumber(t){this._isLogRecordReadonly()||(this._severityNumber=t)}get severityNumber(){return this._severityNumber}set body(t){this._isLogRecordReadonly()||(this._body=t)}get body(){return this._body}setAttribute(t,r){return this._isLogRecordReadonly()?this:r===null?this:(typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).length>0&&(this.attributes[t]=r),t.length===0?(NKe.diag.warn(`Invalid attribute key: ${t}`),this):(0,yLr.isAttributeValue)(r)?Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,t)?this:(this.attributes[t]=this._truncateToSize(r),this):(NKe.diag.warn(`Invalid attribute value set for key: ${t}`),this))}setAttributes(t){for(let[r,n]of Object.entries(t))this.setAttribute(r,n);return this}setBody(t){return this.body=t,this}setSeverityNumber(t){return this.severityNumber=t,this}setSeverityText(t){return this.severityText=t,this}makeReadonly(){this._isReadonly=!0}_truncateToSize(t){let r=this._logRecordLimits.attributeValueLengthLimit||0;return r<=0?(NKe.diag.warn(`Attribute value limit must be positive, got ${r}`),t):typeof t=="string"?this._truncateToLimitUtil(t,r):Array.isArray(t)?t.map(n=>typeof n=="string"?this._truncateToLimitUtil(n,r):n):t}_truncateToLimitUtil(t,r){return t.length<=r?t:t.substring(0,r)}_isLogRecordReadonly(){return this._isReadonly&&y1c.diag.warn("Can not execute the operation on emitted log record"),this._isReadonly}};RSt.LogRecord=bLr});var SLr=H(kj=>{"use strict";Object.defineProperty(kj,"__esModule",{value:!0});kj.DEFAULT_EVENT_DOMAIN=kj.mergeConfig=kj.reconfigureLimits=kj.loadDefaultConfig=void 0;var DKe=AH();function hOi(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT},includeTraceContext:!0}}kj.loadDefaultConfig=hOi;function b1c(e){var t,r,n,a,o,l,A,f;let I=Object.assign({},e.logRecordLimits),C=(0,DKe.getEnvWithoutDefaults)();return I.attributeCountLimit=(a=(n=(r=(t=e.logRecordLimits)===null||t===void 0?void 0:t.attributeCountLimit)!==null&&r!==void 0?r:C.OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT)!==null&&n!==void 0?n:C.OTEL_ATTRIBUTE_COUNT_LIMIT)!==null&&a!==void 0?a:DKe.DEFAULT_ATTRIBUTE_COUNT_LIMIT,I.attributeValueLengthLimit=(f=(A=(l=(o=e.logRecordLimits)===null||o===void 0?void 0:o.attributeValueLengthLimit)!==null&&l!==void 0?l:C.OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&A!==void 0?A:C.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&f!==void 0?f:DKe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{logRecordLimits:I})}kj.reconfigureLimits=b1c;function E1c(e){let t=hOi(),r=Object.assign({},t,e);return r.logRecordLimits=Object.assign({},t.logRecordLimits,e.logRecordLimits||{}),r}kj.mergeConfig=E1c;kj.DEFAULT_EVENT_DOMAIN="default"});var BLr=H(NSt=>{"use strict";Object.defineProperty(NSt,"__esModule",{value:!0});NSt.Logger=void 0;var S1c=(GI(),vi(xI)),v1c=ELr(),B1c=SLr(),vLr=class{constructor(t,r,n){this.instrumentationScope=t,this._loggerProvider=n,this._loggerConfig=(0,B1c.mergeConfig)(r),this.resource=n.resource}emit(t){let r=t.context||S1c.context.active(),n=new v1c.LogRecord(this,Object.assign({context:r},t));this.getActiveLogRecordProcessor().onEmit(n,r),n.makeReadonly()}getLogRecordLimits(){return this._loggerConfig.logRecordLimits}getActiveLogRecordProcessor(){return this._loggerProvider.getActiveLogRecordProcessor()}};NSt.Logger=vLr});var mOi=H(DSt=>{"use strict";Object.defineProperty(DSt,"__esModule",{value:!0});DSt.MultiLogRecordProcessor=void 0;var w1c=AH(),wLr=class{constructor(t,r){this.processors=t,this.forceFlushTimeoutMillis=r}async forceFlush(){let t=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(r=>(0,w1c.callWithTimeout)(r.forceFlush(),t)))}onEmit(t){this.processors.forEach(r=>r.onEmit(t))}async shutdown(){await Promise.all(this.processors.map(t=>t.shutdown()))}};DSt.MultiLogRecordProcessor=wLr});var RLr=H(kSt=>{"use strict";Object.defineProperty(kSt,"__esModule",{value:!0});kSt.NoopLogRecordProcessor=void 0;var TLr=class{forceFlush(){return Promise.resolve()}onEmit(t){}shutdown(){return Promise.resolve()}};kSt.NoopLogRecordProcessor=TLr});var EOi=H(QCe=>{"use strict";Object.defineProperty(QCe,"__esModule",{value:!0});QCe.LoggerProvider=QCe.DEFAULT_LOGGER_NAME=void 0;var kKe=(GI(),vi(xI)),T1c=bDe(),COi=bSt(),_Oi=AH(),R1c=BLr(),yOi=SLr(),bOi=mOi(),N1c=RLr();QCe.DEFAULT_LOGGER_NAME="unknown";var NLr=class{constructor(t={}){this._loggers=new Map,this._registeredLogRecordProcessors=[];let{resource:r=COi.Resource.empty(),logRecordLimits:n,forceFlushTimeoutMillis:a}=(0,_Oi.merge)({},(0,yOi.loadDefaultConfig)(),(0,yOi.reconfigureLimits)(t));this.resource=COi.Resource.default().merge(r),this._config={logRecordLimits:n,resource:this.resource,forceFlushTimeoutMillis:a},this._shutdownOnce=new _Oi.BindOnceFuture(this._shutdown,this),this._activeProcessor=new bOi.MultiLogRecordProcessor([new N1c.NoopLogRecordProcessor],a)}getLogger(t,r,n){if(this._shutdownOnce.isCalled)return kKe.diag.warn("A shutdown LoggerProvider cannot provide a Logger"),T1c.NOOP_LOGGER;t||kKe.diag.warn("Logger requested without instrumentation scope name.");let a=t||QCe.DEFAULT_LOGGER_NAME,o=`${a}@${r||""}:${n?.schemaUrl||""}`;return this._loggers.has(o)||this._loggers.set(o,new R1c.Logger({name:a,version:r,schemaUrl:n?.schemaUrl},{logRecordLimits:this._config.logRecordLimits},this)),this._loggers.get(o)}addLogRecordProcessor(t){this._registeredLogRecordProcessors.length===0&&this._activeProcessor.shutdown().catch(r=>kKe.diag.error("Error while trying to shutdown current log record processor",r)),this._registeredLogRecordProcessors.push(t),this._activeProcessor=new bOi.MultiLogRecordProcessor(this._registeredLogRecordProcessors,this._config.forceFlushTimeoutMillis)}forceFlush(){return this._shutdownOnce.isCalled?(kKe.diag.warn("invalid attempt to force flush after LoggerProvider shutdown"),this._shutdownOnce.promise):this._activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(kKe.diag.warn("shutdown may only be called once per LoggerProvider"),this._shutdownOnce.promise):this._shutdownOnce.call()}getActiveLogRecordProcessor(){return this._activeProcessor}getActiveLoggers(){return this._loggers}_shutdown(){return this._activeProcessor.shutdown()}};QCe.LoggerProvider=NLr});var SOi=H(xSt=>{"use strict";Object.defineProperty(xSt,"__esModule",{value:!0});xSt.ConsoleLogRecordExporter=void 0;var D1c=AH(),k1c=AH(),DLr=class{export(t,r){this._sendLogRecords(t,r)}shutdown(){return Promise.resolve()}_exportInfo(t){var r,n,a;return{timestamp:(0,D1c.hrTimeToMicroseconds)(t.hrTime),traceId:(r=t.spanContext)===null||r===void 0?void 0:r.traceId,spanId:(n=t.spanContext)===null||n===void 0?void 0:n.spanId,traceFlags:(a=t.spanContext)===null||a===void 0?void 0:a.traceFlags,severityText:t.severityText,severityNumber:t.severityNumber,body:t.body,attributes:t.attributes}}_sendLogRecords(t,r){for(let n of t)console.dir(this._exportInfo(n),{depth:3});r?.({code:k1c.ExportResultCode.SUCCESS})}};xSt.ConsoleLogRecordExporter=DLr});var vOi=H(GSt=>{"use strict";Object.defineProperty(GSt,"__esModule",{value:!0});GSt.SimpleLogRecordProcessor=void 0;var kLr=AH(),xLr=class{constructor(t){this._exporter=t,this._shutdownOnce=new kLr.BindOnceFuture(this._shutdown,this)}onEmit(t){this._shutdownOnce.isCalled||this._exporter.export([t],r=>{var n;if(r.code!==kLr.ExportResultCode.SUCCESS){(0,kLr.globalErrorHandler)((n=r.error)!==null&&n!==void 0?n:new Error(`SimpleLogRecordProcessor: log record export failed (status ${r})`));return}})}forceFlush(){return Promise.resolve()}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};GSt.SimpleLogRecordProcessor=xLr});var wOi=H(FSt=>{"use strict";Object.defineProperty(FSt,"__esModule",{value:!0});FSt.InMemoryLogRecordExporter=void 0;var BOi=AH(),GLr=class{constructor(){this._finishedLogRecords=[],this._stopped=!1}export(t,r){if(this._stopped)return r({code:BOi.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedLogRecords.push(...t),r({code:BOi.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}};FSt.InMemoryLogRecordExporter=GLr});var TOi=H(ZSt=>{"use strict";Object.defineProperty(ZSt,"__esModule",{value:!0});ZSt.BatchLogRecordProcessorBase=void 0;var x1c=(GI(),vi(xI)),GDe=AH(),FLr=class{constructor(t,r){var n,a,o,l;this._exporter=t,this._finishedLogRecords=[];let A=(0,GDe.getEnv)();this._maxExportBatchSize=(n=r?.maxExportBatchSize)!==null&&n!==void 0?n:A.OTEL_BLRP_MAX_EXPORT_BATCH_SIZE,this._maxQueueSize=(a=r?.maxQueueSize)!==null&&a!==void 0?a:A.OTEL_BLRP_MAX_QUEUE_SIZE,this._scheduledDelayMillis=(o=r?.scheduledDelayMillis)!==null&&o!==void 0?o:A.OTEL_BLRP_SCHEDULE_DELAY,this._exportTimeoutMillis=(l=r?.exportTimeoutMillis)!==null&&l!==void 0?l:A.OTEL_BLRP_EXPORT_TIMEOUT,this._shutdownOnce=new GDe.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(x1c.diag.warn("BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}onEmit(t){this._shutdownOnce.isCalled||this._addToBuffer(t)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(t){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(t),this._maybeStartTimer())}_flushAll(){return new Promise((t,r)=>{let n=[],a=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let o=0;o{t()}).catch(r)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((t,r)=>{(0,GDe.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>t()).catch(r)})}_maybeStartTimer(){this._timer===void 0&&(this._timer=setTimeout(()=>{this._flushOneBatch().then(()=>{this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(t=>{(0,GDe.globalErrorHandler)(t)})},this._scheduledDelayMillis),(0,GDe.unrefTimer)(this._timer))}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(t){return new Promise((r,n)=>{this._exporter.export(t,a=>{var o;if(a.code!==GDe.ExportResultCode.SUCCESS){n((o=a.error)!==null&&o!==void 0?o:new Error(`BatchLogRecordProcessorBase: log record export failed (status ${a})`));return}r(a)})})}};ZSt.BatchLogRecordProcessorBase=FLr});var ROi=H(LSt=>{"use strict";Object.defineProperty(LSt,"__esModule",{value:!0});LSt.BatchLogRecordProcessor=void 0;var G1c=TOi(),ZLr=class extends G1c.BatchLogRecordProcessorBase{onShutdown(){}};LSt.BatchLogRecordProcessor=ZLr});var NOi=H(VSt=>{"use strict";Object.defineProperty(VSt,"__esModule",{value:!0});VSt.BatchLogRecordProcessor=void 0;var F1c=ROi();Object.defineProperty(VSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return F1c.BatchLogRecordProcessor}})});var DOi=H(PSt=>{"use strict";Object.defineProperty(PSt,"__esModule",{value:!0});PSt.BatchLogRecordProcessor=void 0;var Z1c=NOi();Object.defineProperty(PSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Z1c.BatchLogRecordProcessor}})});var xKe=H(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.BatchLogRecordProcessor=uD.InMemoryLogRecordExporter=uD.SimpleLogRecordProcessor=uD.ConsoleLogRecordExporter=uD.NoopLogRecordProcessor=uD.LogRecord=uD.Logger=uD.LoggerProvider=void 0;var L1c=EOi();Object.defineProperty(uD,"LoggerProvider",{enumerable:!0,get:function(){return L1c.LoggerProvider}});var V1c=BLr();Object.defineProperty(uD,"Logger",{enumerable:!0,get:function(){return V1c.Logger}});var P1c=ELr();Object.defineProperty(uD,"LogRecord",{enumerable:!0,get:function(){return P1c.LogRecord}});var W1c=RLr();Object.defineProperty(uD,"NoopLogRecordProcessor",{enumerable:!0,get:function(){return W1c.NoopLogRecordProcessor}});var O1c=SOi();Object.defineProperty(uD,"ConsoleLogRecordExporter",{enumerable:!0,get:function(){return O1c.ConsoleLogRecordExporter}});var M1c=vOi();Object.defineProperty(uD,"SimpleLogRecordProcessor",{enumerable:!0,get:function(){return M1c.SimpleLogRecordProcessor}});var H1c=wOi();Object.defineProperty(uD,"InMemoryLogRecordExporter",{enumerable:!0,get:function(){return H1c.InMemoryLogRecordExporter}});var Y1c=DOi();Object.defineProperty(uD,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Y1c.BatchLogRecordProcessor}})});var GKe=H(Jce=>{"use strict";Object.defineProperty(Jce,"__esModule",{value:!0});Jce.isTracingSuppressed=Jce.unsuppressTracing=Jce.suppressTracing=void 0;var Q1c=(GI(),vi(xI)),VLr=(0,Q1c.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function X1c(e){return e.setValue(VLr,!0)}Jce.suppressTracing=X1c;function J1c(e){return e.deleteValue(VLr)}Jce.unsuppressTracing=J1c;function U1c(e){return e.getValue(VLr)===!0}Jce.isTracingSuppressed=U1c});var PLr=H(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.BAGGAGE_MAX_TOTAL_LENGTH=MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=MG.BAGGAGE_HEADER=MG.BAGGAGE_ITEMS_SEPARATOR=MG.BAGGAGE_PROPERTIES_SEPARATOR=MG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;MG.BAGGAGE_KEY_PAIR_SEPARATOR="=";MG.BAGGAGE_PROPERTIES_SEPARATOR=";";MG.BAGGAGE_ITEMS_SEPARATOR=",";MG.BAGGAGE_HEADER="baggage";MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;MG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var WLr=H(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.parseKeyPairsIntoRecord=xj.parsePairKeyValue=xj.getKeyPairs=xj.serializeKeyPairs=void 0;var K1c=(GI(),vi(xI)),XCe=PLr();function j1c(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?XCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>XCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}xj.serializeKeyPairs=j1c;function z1c(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=XCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}xj.getKeyPairs=z1c;function kOi(e){let t=e.split(XCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(XCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,K1c.baggageEntryMetadataFromString)(t.join(XCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}xj.parsePairKeyValue=kOi;function q1c(e){return typeof e!="string"||e.length===0?{}:e.split(XCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>kOi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}xj.parseKeyPairsIntoRecord=q1c});var xOi=H(WSt=>{"use strict";Object.defineProperty(WSt,"__esModule",{value:!0});WSt.W3CBaggagePropagator=void 0;var OLr=(GI(),vi(xI)),$1c=GKe(),JCe=PLr(),MLr=WLr(),HLr=class{inject(t,r,n){let a=OLr.propagation.getBaggage(t);if(!a||(0,$1c.isTracingSuppressed)(t))return;let o=(0,MLr.getKeyPairs)(a).filter(A=>A.length<=JCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,JCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,MLr.serializeKeyPairs)(o);l.length>0&&n.set(r,JCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,JCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(JCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(JCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,MLr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:OLr.propagation.setBaggage(t,OLr.propagation.createBaggage(l))}fields(){return[JCe.BAGGAGE_HEADER]}};WSt.W3CBaggagePropagator=HLr});var GOi=H(OSt=>{"use strict";Object.defineProperty(OSt,"__esModule",{value:!0});OSt.AnchoredClock=void 0;var YLr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};OSt.AnchoredClock=YLr});var POi=H(Uce=>{"use strict";Object.defineProperty(Uce,"__esModule",{value:!0});Uce.isAttributeValue=Uce.isAttributeKey=Uce.sanitizeAttributes=void 0;var FOi=(GI(),vi(xI));function e2c(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!ZOi(r)){FOi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!LOi(n)){FOi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Uce.sanitizeAttributes=e2c;function ZOi(e){return typeof e=="string"&&e.length>0}Uce.isAttributeKey=ZOi;function LOi(e){return e==null?!0:Array.isArray(e)?t2c(e):VOi(e)}Uce.isAttributeValue=LOi;function t2c(e){let t;for(let r of e)if(r!=null){if(!t){if(VOi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function VOi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var QLr=H(MSt=>{"use strict";Object.defineProperty(MSt,"__esModule",{value:!0});MSt.loggingErrorHandler=void 0;var r2c=(GI(),vi(xI));function n2c(){return e=>{r2c.diag.error(i2c(e))}}MSt.loggingErrorHandler=n2c;function i2c(e){return typeof e=="string"?e:JSON.stringify(s2c(e))}function s2c(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var XLr=H(FDe=>{"use strict";Object.defineProperty(FDe,"__esModule",{value:!0});FDe.globalErrorHandler=FDe.setGlobalErrorHandler=void 0;var o2c=QLr(),WOi=(0,o2c.loggingErrorHandler)();function a2c(e){WOi=e}FDe.setGlobalErrorHandler=a2c;function c2c(e){try{WOi(e)}catch{}}FDe.globalErrorHandler=c2c});var JLr=H(FKe=>{"use strict";Object.defineProperty(FKe,"__esModule",{value:!0});FKe.TracesSamplerValues=void 0;var l2c;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(l2c=FKe.TracesSamplerValues||(FKe.TracesSamplerValues={}))});var ULr=H(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.parseEnvironment=LS.DEFAULT_ENVIRONMENT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Kce=(GI(),vi(xI)),u2c=JLr(),g2c=",",A2c=["OTEL_SDK_DISABLED"];function d2c(e){return A2c.indexOf(e)>-1}var p2c=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function f2c(e){return p2c.indexOf(e)>-1}var I2c=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS","OTEL_SEMCONV_STABILITY_OPT_IN"];function h2c(e){return I2c.indexOf(e)>-1}LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;LS.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Kce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:u2c.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative",OTEL_SEMCONV_STABILITY_OPT_IN:[]};function m2c(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function C2c(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function _2c(e,t,r,n=g2c){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var y2c={ALL:Kce.DiagLogLevel.ALL,VERBOSE:Kce.DiagLogLevel.VERBOSE,DEBUG:Kce.DiagLogLevel.DEBUG,INFO:Kce.DiagLogLevel.INFO,WARN:Kce.DiagLogLevel.WARN,ERROR:Kce.DiagLogLevel.ERROR,NONE:Kce.DiagLogLevel.NONE};function b2c(e,t,r){let n=r[e];if(typeof n=="string"){let a=y2c[n.toUpperCase()];a!=null&&(t[e]=a)}}function E2c(e){let t={};for(let r in LS.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":b2c(n,t,e);break;default:if(d2c(n))m2c(n,t,e);else if(f2c(n))C2c(n,t,e);else if(h2c(n))_2c(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}LS.parseEnvironment=E2c});var OOi=H(ZDe=>{"use strict";Object.defineProperty(ZDe,"__esModule",{value:!0});ZDe.getEnvWithoutDefaults=ZDe.getEnv=void 0;var KLr=ULr();function S2c(){let e=(0,KLr.parseEnvironment)(process.env);return Object.assign({},KLr.DEFAULT_ENVIRONMENT,e)}ZDe.getEnv=S2c;function v2c(){return(0,KLr.parseEnvironment)(process.env)}ZDe.getEnvWithoutDefaults=v2c});var MOi=H(HSt=>{"use strict";Object.defineProperty(HSt,"__esModule",{value:!0});HSt._globalThis=void 0;HSt._globalThis=typeof globalThis=="object"?globalThis:global});var jLr=H(YSt=>{"use strict";Object.defineProperty(YSt,"__esModule",{value:!0});YSt.hexToBinary=void 0;function HOi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function B2c(e){let t=new Uint8Array(e.length/2),r=0;for(let n=0;n{"use strict";Object.defineProperty(QSt,"__esModule",{value:!0});QSt.hexToBase64=void 0;var w2c=jLr();function T2c(e){return Buffer.from((0,w2c.hexToBinary)(e)).toString("base64")}QSt.hexToBase64=T2c});var JOi=H(JSt=>{"use strict";Object.defineProperty(JSt,"__esModule",{value:!0});JSt.RandomIdGenerator=void 0;var R2c=8,XOi=16,zLr=class{constructor(){this.generateTraceId=QOi(XOi),this.generateSpanId=QOi(R2c)}};JSt.RandomIdGenerator=zLr;var XSt=Buffer.allocUnsafe(XOi);function QOi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(XSt[e-1]=1);return XSt.toString("hex",0,e)}}});var UOi=H(USt=>{"use strict";Object.defineProperty(USt,"__esModule",{value:!0});USt.otperformance=void 0;var N2c=wt("perf_hooks");USt.otperformance=N2c.performance});var qLr=H(KSt=>{"use strict";Object.defineProperty(KSt,"__esModule",{value:!0});KSt.VERSION=void 0;KSt.VERSION="1.27.0"});function iw(e){for(var t={},r=e.length,n=0;n{});var KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi,D2c,k2c,x2c,G2c,F2c,Z2c,L2c,V2c,P2c,W2c,O2c,M2c,H2c,Y2c,Q2c,X2c,J2c,U2c,K2c,j2c,z2c,q2c,$2c,eSc,tSc,rSc,nSc,iSc,sSc,oSc,aSc,cSc,lSc,uSc,gSc,ASc,dSc,pSc,fSc,ISc,hSc,mSc,CSc,_Sc,ySc,bSc,ESc,SSc,vSc,BSc,wSc,TSc,RSc,NSc,DSc,kSc,xSc,GSc,FSc,ZSc,LSc,VSc,PSc,WSc,OSc,MSc,HSc,YSc,QSc,XSc,JSc,USc,KSc,jSc,zSc,qSc,$Sc,evc,tvc,rvc,nvc,ivc,svc,ovc,avc,cvc,lvc,uvc,gvc,Avc,dvc,pvc,fvc,Ivc,hvc,mvc,Cvc,_vc,yvc,bvc,Evc,Svc,vvc,Bvc,wvc,Tvc,Rvc,Nvc,Dvc,kvc,xvc,Gvc,Fvc,Zvc,Lvc,Vvc,Pvc,Wvc,Ovc,Mvc,Hvc,Yvc,Qvc,Xvc,Jvc,Uvc,Kvc,jvc,zvc,fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi,qvc,$vc,eBc,tBc,rBc,nBc,iBc,sBc,oBc,aBc,cBc,lBc,uBc,gBc,ABc,dBc,pBc,fBc,IBc,hBc,mBc,CBc,_Bc,yBc,bBc,EBc,SBc,vBc,BBc,wBc,TBc,RBc,NBc,DBc,kBc,xBc,GBc,FBc,ZBc,LBc,VBc,PBc,WBc,OBc,MBc,HBc,YBc,QBc,cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi,XBc,JBc,UBc,KBc,jBc,zBc,qBc,$Bc,ewc,twc,rwc,nwc,CHi,_Hi,yHi,bHi,EHi,iwc,swc,owc,awc,cwc,lwc,SHi,vHi,BHi,uwc,gwc,Awc,dwc,wHi,THi,RHi,NHi,pwc,fwc,Iwc,hwc,mwc,DHi,kHi,xHi,GHi,FHi,ZHi,LHi,Cwc,_wc,ywc,bwc,Ewc,Swc,vwc,Bwc,VHi,PHi,WHi,OHi,MHi,wwc,Twc,Rwc,Nwc,Dwc,kwc,HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi,xwc,Gwc,Fwc,Zwc,Lwc,Vwc,Pwc,Wwc,Owc,Mwc,Hwc,Ywc,Qwc,Xwc,Jwc,Uwc,Kwc,jwc,zwc,qwc,$wc,eTc,uYi,gYi,AYi,dYi,pYi,tTc,rTc,nTc,iTc,sTc,oTc,fYi,IYi,aTc,cTc,lTc,hYi,mYi,uTc,gTc,ATc,CYi,_Yi,yYi,bYi,EYi,SYi,vYi,BYi,wYi,TYi,RYi,NYi,DYi,kYi,xYi,GYi,FYi,dTc,pTc,fTc,ITc,hTc,mTc,CTc,_Tc,yTc,bTc,ETc,STc,vTc,BTc,wTc,TTc,RTc,NTc,ZYi,LYi,DTc,kTc,xTc,VYi=bc(()=>{$Lr();KOi="aws.lambda.invoked_arn",jOi="db.system",zOi="db.connection_string",qOi="db.user",$Oi="db.jdbc.driver_classname",e3i="db.name",t3i="db.statement",r3i="db.operation",n3i="db.mssql.instance_name",i3i="db.cassandra.keyspace",s3i="db.cassandra.page_size",o3i="db.cassandra.consistency_level",a3i="db.cassandra.table",c3i="db.cassandra.idempotence",l3i="db.cassandra.speculative_execution_count",u3i="db.cassandra.coordinator.id",g3i="db.cassandra.coordinator.dc",A3i="db.hbase.namespace",d3i="db.redis.database_index",p3i="db.mongodb.collection",f3i="db.sql.table",I3i="exception.type",h3i="exception.message",m3i="exception.stacktrace",C3i="exception.escaped",_3i="faas.trigger",y3i="faas.execution",b3i="faas.document.collection",E3i="faas.document.operation",S3i="faas.document.time",v3i="faas.document.name",B3i="faas.time",w3i="faas.cron",T3i="faas.coldstart",R3i="faas.invoked_name",N3i="faas.invoked_provider",D3i="faas.invoked_region",k3i="net.transport",x3i="net.peer.ip",G3i="net.peer.port",F3i="net.peer.name",Z3i="net.host.ip",L3i="net.host.port",V3i="net.host.name",P3i="net.host.connection.type",W3i="net.host.connection.subtype",O3i="net.host.carrier.name",M3i="net.host.carrier.mcc",H3i="net.host.carrier.mnc",Y3i="net.host.carrier.icc",Q3i="peer.service",X3i="enduser.id",J3i="enduser.role",U3i="enduser.scope",K3i="thread.id",j3i="thread.name",z3i="code.function",q3i="code.namespace",$3i="code.filepath",e5i="code.lineno",t5i="http.method",r5i="http.url",n5i="http.target",i5i="http.host",s5i="http.scheme",o5i="http.status_code",a5i="http.flavor",c5i="http.user_agent",l5i="http.request_content_length",u5i="http.request_content_length_uncompressed",g5i="http.response_content_length",A5i="http.response_content_length_uncompressed",d5i="http.server_name",p5i="http.route",f5i="http.client_ip",I5i="aws.dynamodb.table_names",h5i="aws.dynamodb.consumed_capacity",m5i="aws.dynamodb.item_collection_metrics",C5i="aws.dynamodb.provisioned_read_capacity",_5i="aws.dynamodb.provisioned_write_capacity",y5i="aws.dynamodb.consistent_read",b5i="aws.dynamodb.projection",E5i="aws.dynamodb.limit",S5i="aws.dynamodb.attributes_to_get",v5i="aws.dynamodb.index_name",B5i="aws.dynamodb.select",w5i="aws.dynamodb.global_secondary_indexes",T5i="aws.dynamodb.local_secondary_indexes",R5i="aws.dynamodb.exclusive_start_table",N5i="aws.dynamodb.table_count",D5i="aws.dynamodb.scan_forward",k5i="aws.dynamodb.segment",x5i="aws.dynamodb.total_segments",G5i="aws.dynamodb.count",F5i="aws.dynamodb.scanned_count",Z5i="aws.dynamodb.attribute_definitions",L5i="aws.dynamodb.global_secondary_index_updates",V5i="messaging.system",P5i="messaging.destination",W5i="messaging.destination_kind",O5i="messaging.temp_destination",M5i="messaging.protocol",H5i="messaging.protocol_version",Y5i="messaging.url",Q5i="messaging.message_id",X5i="messaging.conversation_id",J5i="messaging.message_payload_size_bytes",U5i="messaging.message_payload_compressed_size_bytes",K5i="messaging.operation",j5i="messaging.consumer_id",z5i="messaging.rabbitmq.routing_key",q5i="messaging.kafka.message_key",$5i="messaging.kafka.consumer_group",eMi="messaging.kafka.client_id",tMi="messaging.kafka.partition",rMi="messaging.kafka.tombstone",nMi="rpc.system",iMi="rpc.service",sMi="rpc.method",oMi="rpc.grpc.status_code",aMi="rpc.jsonrpc.version",cMi="rpc.jsonrpc.request_id",lMi="rpc.jsonrpc.error_code",uMi="rpc.jsonrpc.error_message",gMi="message.type",AMi="message.id",dMi="message.compressed_size",pMi="message.uncompressed_size",D2c=KOi,k2c=jOi,x2c=zOi,G2c=qOi,F2c=$Oi,Z2c=e3i,L2c=t3i,V2c=r3i,P2c=n3i,W2c=i3i,O2c=s3i,M2c=o3i,H2c=a3i,Y2c=c3i,Q2c=l3i,X2c=u3i,J2c=g3i,U2c=A3i,K2c=d3i,j2c=p3i,z2c=f3i,q2c=I3i,$2c=h3i,eSc=m3i,tSc=C3i,rSc=_3i,nSc=y3i,iSc=b3i,sSc=E3i,oSc=S3i,aSc=v3i,cSc=B3i,lSc=w3i,uSc=T3i,gSc=R3i,ASc=N3i,dSc=D3i,pSc=k3i,fSc=x3i,ISc=G3i,hSc=F3i,mSc=Z3i,CSc=L3i,_Sc=V3i,ySc=P3i,bSc=W3i,ESc=O3i,SSc=M3i,vSc=H3i,BSc=Y3i,wSc=Q3i,TSc=X3i,RSc=J3i,NSc=U3i,DSc=K3i,kSc=j3i,xSc=z3i,GSc=q3i,FSc=$3i,ZSc=e5i,LSc=t5i,VSc=r5i,PSc=n5i,WSc=i5i,OSc=s5i,MSc=o5i,HSc=a5i,YSc=c5i,QSc=l5i,XSc=u5i,JSc=g5i,USc=A5i,KSc=d5i,jSc=p5i,zSc=f5i,qSc=I5i,$Sc=h5i,evc=m5i,tvc=C5i,rvc=_5i,nvc=y5i,ivc=b5i,svc=E5i,ovc=S5i,avc=v5i,cvc=B5i,lvc=w5i,uvc=T5i,gvc=R5i,Avc=N5i,dvc=D5i,pvc=k5i,fvc=x5i,Ivc=G5i,hvc=F5i,mvc=Z5i,Cvc=L5i,_vc=V5i,yvc=P5i,bvc=W5i,Evc=O5i,Svc=M5i,vvc=H5i,Bvc=Y5i,wvc=Q5i,Tvc=X5i,Rvc=J5i,Nvc=U5i,Dvc=K5i,kvc=j5i,xvc=z5i,Gvc=q5i,Fvc=$5i,Zvc=eMi,Lvc=tMi,Vvc=rMi,Pvc=nMi,Wvc=iMi,Ovc=sMi,Mvc=oMi,Hvc=aMi,Yvc=cMi,Qvc=lMi,Xvc=uMi,Jvc=gMi,Uvc=AMi,Kvc=dMi,jvc=pMi,zvc=iw([KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi]),fMi="other_sql",IMi="mssql",hMi="mysql",mMi="oracle",CMi="db2",_Mi="postgresql",yMi="redshift",bMi="hive",EMi="cloudscape",SMi="hsqldb",vMi="progress",BMi="maxdb",wMi="hanadb",TMi="ingres",RMi="firstsql",NMi="edb",DMi="cache",kMi="adabas",xMi="firebird",GMi="derby",FMi="filemaker",ZMi="informix",LMi="instantdb",VMi="interbase",PMi="mariadb",WMi="netezza",OMi="pervasive",MMi="pointbase",HMi="sqlite",YMi="sybase",QMi="teradata",XMi="vertica",JMi="h2",UMi="coldfusion",KMi="cassandra",jMi="hbase",zMi="mongodb",qMi="redis",$Mi="couchbase",eHi="couchdb",tHi="cosmosdb",rHi="dynamodb",nHi="neo4j",iHi="geode",sHi="elasticsearch",oHi="memcached",aHi="cockroachdb",qvc=fMi,$vc=IMi,eBc=hMi,tBc=mMi,rBc=CMi,nBc=_Mi,iBc=yMi,sBc=bMi,oBc=EMi,aBc=SMi,cBc=vMi,lBc=BMi,uBc=wMi,gBc=TMi,ABc=RMi,dBc=NMi,pBc=DMi,fBc=kMi,IBc=xMi,hBc=GMi,mBc=FMi,CBc=ZMi,_Bc=LMi,yBc=VMi,bBc=PMi,EBc=WMi,SBc=OMi,vBc=MMi,BBc=HMi,wBc=YMi,TBc=QMi,RBc=XMi,NBc=JMi,DBc=UMi,kBc=KMi,xBc=jMi,GBc=zMi,FBc=qMi,ZBc=$Mi,LBc=eHi,VBc=tHi,PBc=rHi,WBc=nHi,OBc=iHi,MBc=sHi,HBc=oHi,YBc=aHi,QBc=iw([fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi]),cHi="all",lHi="each_quorum",uHi="quorum",gHi="local_quorum",AHi="one",dHi="two",pHi="three",fHi="local_one",IHi="any",hHi="serial",mHi="local_serial",XBc=cHi,JBc=lHi,UBc=uHi,KBc=gHi,jBc=AHi,zBc=dHi,qBc=pHi,$Bc=fHi,ewc=IHi,twc=hHi,rwc=mHi,nwc=iw([cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi]),CHi="datasource",_Hi="http",yHi="pubsub",bHi="timer",EHi="other",iwc=CHi,swc=_Hi,owc=yHi,awc=bHi,cwc=EHi,lwc=iw([CHi,_Hi,yHi,bHi,EHi]),SHi="insert",vHi="edit",BHi="delete",uwc=SHi,gwc=vHi,Awc=BHi,dwc=iw([SHi,vHi,BHi]),wHi="alibaba_cloud",THi="aws",RHi="azure",NHi="gcp",pwc=wHi,fwc=THi,Iwc=RHi,hwc=NHi,mwc=iw([wHi,THi,RHi,NHi]),DHi="ip_tcp",kHi="ip_udp",xHi="ip",GHi="unix",FHi="pipe",ZHi="inproc",LHi="other",Cwc=DHi,_wc=kHi,ywc=xHi,bwc=GHi,Ewc=FHi,Swc=ZHi,vwc=LHi,Bwc=iw([DHi,kHi,xHi,GHi,FHi,ZHi,LHi]),VHi="wifi",PHi="wired",WHi="cell",OHi="unavailable",MHi="unknown",wwc=VHi,Twc=PHi,Rwc=WHi,Nwc=OHi,Dwc=MHi,kwc=iw([VHi,PHi,WHi,OHi,MHi]),HHi="gprs",YHi="edge",QHi="umts",XHi="cdma",JHi="evdo_0",UHi="evdo_a",KHi="cdma2000_1xrtt",jHi="hsdpa",zHi="hsupa",qHi="hspa",$Hi="iden",eYi="evdo_b",tYi="lte",rYi="ehrpd",nYi="hspap",iYi="gsm",sYi="td_scdma",oYi="iwlan",aYi="nr",cYi="nrnsa",lYi="lte_ca",xwc=HHi,Gwc=YHi,Fwc=QHi,Zwc=XHi,Lwc=JHi,Vwc=UHi,Pwc=KHi,Wwc=jHi,Owc=zHi,Mwc=qHi,Hwc=$Hi,Ywc=eYi,Qwc=tYi,Xwc=rYi,Jwc=nYi,Uwc=iYi,Kwc=sYi,jwc=oYi,zwc=aYi,qwc=cYi,$wc=lYi,eTc=iw([HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi]),uYi="1.0",gYi="1.1",AYi="2.0",dYi="SPDY",pYi="QUIC",tTc=uYi,rTc=gYi,nTc=AYi,iTc=dYi,sTc=pYi,oTc={HTTP_1_0:uYi,HTTP_1_1:gYi,HTTP_2_0:AYi,SPDY:dYi,QUIC:pYi},fYi="queue",IYi="topic",aTc=fYi,cTc=IYi,lTc=iw([fYi,IYi]),hYi="receive",mYi="process",uTc=hYi,gTc=mYi,ATc=iw([hYi,mYi]),CYi=0,_Yi=1,yYi=2,bYi=3,EYi=4,SYi=5,vYi=6,BYi=7,wYi=8,TYi=9,RYi=10,NYi=11,DYi=12,kYi=13,xYi=14,GYi=15,FYi=16,dTc=CYi,pTc=_Yi,fTc=yYi,ITc=bYi,hTc=EYi,mTc=SYi,CTc=vYi,_Tc=BYi,yTc=wYi,bTc=TYi,ETc=RYi,STc=NYi,vTc=DYi,BTc=kYi,wTc=xYi,TTc=GYi,RTc=FYi,NTc={OK:CYi,CANCELLED:_Yi,UNKNOWN:yYi,INVALID_ARGUMENT:bYi,DEADLINE_EXCEEDED:EYi,NOT_FOUND:SYi,ALREADY_EXISTS:vYi,PERMISSION_DENIED:BYi,RESOURCE_EXHAUSTED:wYi,FAILED_PRECONDITION:TYi,ABORTED:RYi,OUT_OF_RANGE:NYi,UNIMPLEMENTED:DYi,INTERNAL:kYi,UNAVAILABLE:xYi,DATA_LOSS:GYi,UNAUTHENTICATED:FYi},ZYi="SENT",LYi="RECEIVED",DTc=ZYi,kTc=LYi,xTc=iw([ZYi,LYi])});var PYi=bc(()=>{VYi()});var WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi,GTc,FTc,ZTc,LTc,VTc,PTc,WTc,OTc,MTc,HTc,YTc,QTc,XTc,JTc,UTc,KTc,jTc,zTc,qTc,$Tc,eRc,tRc,rRc,nRc,iRc,sRc,oRc,aRc,cRc,lRc,uRc,gRc,ARc,dRc,pRc,fRc,IRc,hRc,mRc,CRc,_Rc,yRc,bRc,ERc,SRc,vRc,BRc,wRc,TRc,RRc,NRc,DRc,kRc,xRc,GRc,FRc,ZRc,LRc,VRc,PRc,WRc,ORc,MRc,HRc,YRc,QRc,XRc,JRc,URc,KRc,jRc,zRc,qRc,$Rc,eNc,tNc,rNc,nNc,iNc,sNc,oNc,aNc,dXi,pXi,fXi,IXi,cNc,lNc,uNc,gNc,ANc,hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi,dNc,pNc,fNc,INc,hNc,mNc,CNc,_Nc,yNc,bNc,ENc,SNc,vNc,BNc,wNc,TNc,RNc,NNc,GXi,FXi,DNc,kNc,xNc,ZXi,LXi,VXi,PXi,WXi,OXi,MXi,GNc,FNc,ZNc,LNc,VNc,PNc,WNc,ONc,HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi,MNc,HNc,YNc,QNc,XNc,JNc,UNc,KNc,jNc,zNc,qNc,$Nc,e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i,eDc,tDc,rDc,nDc,iDc,sDc,oDc,aDc,cDc,lDc,uDc,u4i=bc(()=>{$Lr();WYi="cloud.provider",OYi="cloud.account.id",MYi="cloud.region",HYi="cloud.availability_zone",YYi="cloud.platform",QYi="aws.ecs.container.arn",XYi="aws.ecs.cluster.arn",JYi="aws.ecs.launchtype",UYi="aws.ecs.task.arn",KYi="aws.ecs.task.family",jYi="aws.ecs.task.revision",zYi="aws.eks.cluster.arn",qYi="aws.log.group.names",$Yi="aws.log.group.arns",eQi="aws.log.stream.names",tQi="aws.log.stream.arns",rQi="container.name",nQi="container.id",iQi="container.runtime",sQi="container.image.name",oQi="container.image.tag",aQi="deployment.environment",cQi="device.id",lQi="device.model.identifier",uQi="device.model.name",gQi="faas.name",AQi="faas.id",dQi="faas.version",pQi="faas.instance",fQi="faas.max_memory",IQi="host.id",hQi="host.name",mQi="host.type",CQi="host.arch",_Qi="host.image.name",yQi="host.image.id",bQi="host.image.version",EQi="k8s.cluster.name",SQi="k8s.node.name",vQi="k8s.node.uid",BQi="k8s.namespace.name",wQi="k8s.pod.uid",TQi="k8s.pod.name",RQi="k8s.container.name",NQi="k8s.replicaset.uid",DQi="k8s.replicaset.name",kQi="k8s.deployment.uid",xQi="k8s.deployment.name",GQi="k8s.statefulset.uid",FQi="k8s.statefulset.name",ZQi="k8s.daemonset.uid",LQi="k8s.daemonset.name",VQi="k8s.job.uid",PQi="k8s.job.name",WQi="k8s.cronjob.uid",OQi="k8s.cronjob.name",MQi="os.type",HQi="os.description",YQi="os.name",QQi="os.version",XQi="process.pid",JQi="process.executable.name",UQi="process.executable.path",KQi="process.command",jQi="process.command_line",zQi="process.command_args",qQi="process.owner",$Qi="process.runtime.name",eXi="process.runtime.version",tXi="process.runtime.description",rXi="service.name",nXi="service.namespace",iXi="service.instance.id",sXi="service.version",oXi="telemetry.sdk.name",aXi="telemetry.sdk.language",cXi="telemetry.sdk.version",lXi="telemetry.auto.version",uXi="webengine.name",gXi="webengine.version",AXi="webengine.description",GTc=WYi,FTc=OYi,ZTc=MYi,LTc=HYi,VTc=YYi,PTc=QYi,WTc=XYi,OTc=JYi,MTc=UYi,HTc=KYi,YTc=jYi,QTc=zYi,XTc=qYi,JTc=$Yi,UTc=eQi,KTc=tQi,jTc=rQi,zTc=nQi,qTc=iQi,$Tc=sQi,eRc=oQi,tRc=aQi,rRc=cQi,nRc=lQi,iRc=uQi,sRc=gQi,oRc=AQi,aRc=dQi,cRc=pQi,lRc=fQi,uRc=IQi,gRc=hQi,ARc=mQi,dRc=CQi,pRc=_Qi,fRc=yQi,IRc=bQi,hRc=EQi,mRc=SQi,CRc=vQi,_Rc=BQi,yRc=wQi,bRc=TQi,ERc=RQi,SRc=NQi,vRc=DQi,BRc=kQi,wRc=xQi,TRc=GQi,RRc=FQi,NRc=ZQi,DRc=LQi,kRc=VQi,xRc=PQi,GRc=WQi,FRc=OQi,ZRc=MQi,LRc=HQi,VRc=YQi,PRc=QQi,WRc=XQi,ORc=JQi,MRc=UQi,HRc=KQi,YRc=jQi,QRc=zQi,XRc=qQi,JRc=$Qi,URc=eXi,KRc=tXi,jRc=rXi,zRc=nXi,qRc=iXi,$Rc=sXi,eNc=oXi,tNc=aXi,rNc=cXi,nNc=lXi,iNc=uXi,sNc=gXi,oNc=AXi,aNc=iw([WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi]),dXi="alibaba_cloud",pXi="aws",fXi="azure",IXi="gcp",cNc=dXi,lNc=pXi,uNc=fXi,gNc=IXi,ANc=iw([dXi,pXi,fXi,IXi]),hXi="alibaba_cloud_ecs",mXi="alibaba_cloud_fc",CXi="aws_ec2",_Xi="aws_ecs",yXi="aws_eks",bXi="aws_lambda",EXi="aws_elastic_beanstalk",SXi="azure_vm",vXi="azure_container_instances",BXi="azure_aks",wXi="azure_functions",TXi="azure_app_service",RXi="gcp_compute_engine",NXi="gcp_cloud_run",DXi="gcp_kubernetes_engine",kXi="gcp_cloud_functions",xXi="gcp_app_engine",dNc=hXi,pNc=mXi,fNc=CXi,INc=_Xi,hNc=yXi,mNc=bXi,CNc=EXi,_Nc=SXi,yNc=vXi,bNc=BXi,ENc=wXi,SNc=TXi,vNc=RXi,BNc=NXi,wNc=DXi,TNc=kXi,RNc=xXi,NNc=iw([hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi]),GXi="ec2",FXi="fargate",DNc=GXi,kNc=FXi,xNc=iw([GXi,FXi]),ZXi="amd64",LXi="arm32",VXi="arm64",PXi="ia64",WXi="ppc32",OXi="ppc64",MXi="x86",GNc=ZXi,FNc=LXi,ZNc=VXi,LNc=PXi,VNc=WXi,PNc=OXi,WNc=MXi,ONc=iw([ZXi,LXi,VXi,PXi,WXi,OXi,MXi]),HXi="windows",YXi="linux",QXi="darwin",XXi="freebsd",JXi="netbsd",UXi="openbsd",KXi="dragonflybsd",jXi="hpux",zXi="aix",qXi="solaris",$Xi="z_os",MNc=HXi,HNc=YXi,YNc=QXi,QNc=XXi,XNc=JXi,JNc=UXi,UNc=KXi,KNc=jXi,jNc=zXi,zNc=qXi,qNc=$Xi,$Nc=iw([HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi]),e4i="cpp",t4i="dotnet",r4i="erlang",n4i="go",i4i="java",s4i="nodejs",o4i="php",a4i="python",c4i="ruby",l4i="webjs",eDc=e4i,tDc=t4i,rDc=r4i,nDc=n4i,iDc=i4i,sDc=s4i,oDc=o4i,aDc=a4i,cDc=c4i,lDc=l4i,uDc=iw([e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i])});var g4i=bc(()=>{u4i()});var gDc,ADc,dDc,pDc,fDc,IDc,hDc,mDc,CDc,_Dc,yDc,bDc,EDc,SDc,vDc,BDc,wDc,TDc,RDc,NDc,DDc,kDc,xDc,GDc,FDc,ZDc,LDc,VDc,PDc,WDc,ODc,MDc,HDc,YDc,QDc,XDc,JDc,UDc,KDc,jDc,zDc,qDc,$Dc,ekc,tkc,rkc,nkc,ikc,skc,okc,akc,ckc,lkc,ukc,gkc,Akc,dkc,pkc,fkc,Ikc,hkc,mkc,Ckc,_kc,ykc,bkc,Ekc,Skc,vkc,Bkc,wkc,Tkc,Rkc,Nkc,Dkc,kkc,xkc,Gkc,Fkc,Zkc,Lkc,Vkc,Pkc,Wkc,Okc,Mkc,Hkc,Ykc,Qkc,Xkc,Jkc,Ukc,Kkc,jkc,zkc,qkc,$kc,exc,txc,rxc,nxc,ixc,sxc,oxc,axc,cxc,lxc,uxc,gxc,Axc,A4i=bc(()=>{gDc="aspnetcore.rate_limiting.result",ADc="acquired",dDc="endpoint_limiter",pDc="global_limiter",fDc="request_canceled",IDc="telemetry.sdk.language",hDc="cpp",mDc="dotnet",CDc="erlang",_Dc="go",yDc="java",bDc="nodejs",EDc="php",SDc="python",vDc="ruby",BDc="rust",wDc="swift",TDc="webjs",RDc="telemetry.sdk.name",NDc="telemetry.sdk.version",DDc="aspnetcore.diagnostics.handler.type",kDc="aspnetcore.diagnostics.exception.result",xDc="aborted",GDc="handled",FDc="skipped",ZDc="unhandled",LDc="aspnetcore.rate_limiting.policy",VDc="aspnetcore.request.is_unhandled",PDc="aspnetcore.routing.is_fallback",WDc="aspnetcore.routing.match_status",ODc="failure",MDc="success",HDc="client.address",YDc="client.port",QDc="error.type",XDc="_OTHER",JDc="exception.escaped",UDc="exception.message",KDc="exception.stacktrace",jDc="exception.type",zDc=function(e){return"http.request.header."+e},qDc="http.request.method",$Dc="_OTHER",ekc="CONNECT",tkc="DELETE",rkc="GET",nkc="HEAD",ikc="OPTIONS",skc="PATCH",okc="POST",akc="PUT",ckc="TRACE",lkc="http.request.method_original",ukc="http.request.resend_count",gkc=function(e){return"http.response.header."+e},Akc="http.response.status_code",dkc="http.route",pkc="jvm.gc.action",fkc="jvm.gc.name",Ikc="jvm.memory.pool.name",hkc="jvm.memory.type",mkc="heap",Ckc="non_heap",_kc="jvm.thread.daemon",ykc="jvm.thread.state",bkc="blocked",Ekc="new",Skc="runnable",vkc="terminated",Bkc="timed_waiting",wkc="waiting",Tkc="network.local.address",Rkc="network.local.port",Nkc="network.peer.address",Dkc="network.peer.port",kkc="network.protocol.name",xkc="network.protocol.version",Gkc="network.transport",Fkc="pipe",Zkc="quic",Lkc="tcp",Vkc="udp",Pkc="unix",Wkc="network.type",Okc="ipv4",Mkc="ipv6",Hkc="otel.scope.name",Ykc="otel.scope.version",Qkc="otel.status_code",Xkc="ERROR",Jkc="OK",Ukc="otel.status_description",Kkc="server.address",jkc="server.port",zkc="service.name",qkc="service.version",$kc="signalr.connection.status",exc="app_shutdown",txc="normal_closure",rxc="timeout",nxc="signalr.transport",ixc="long_polling",sxc="server_sent_events",oxc="web_sockets",axc="url.fragment",cxc="url.full",lxc="url.path",uxc="url.query",gxc="url.scheme",Axc="user_agent.original"});var dxc,pxc,fxc,Ixc,hxc,mxc,Cxc,_xc,yxc,bxc,Exc,Sxc,vxc,Bxc,wxc,Txc,Rxc,Nxc,Dxc,kxc,xxc,Gxc,Fxc,Zxc,Lxc,Vxc,Pxc,Wxc,Oxc,Mxc,Hxc,d4i=bc(()=>{dxc="aspnetcore.diagnostics.exceptions",pxc="aspnetcore.rate_limiting.active_request_leases",fxc="aspnetcore.rate_limiting.queued_requests",Ixc="aspnetcore.rate_limiting.request.time_in_queue",hxc="aspnetcore.rate_limiting.request_lease.duration",mxc="aspnetcore.rate_limiting.requests",Cxc="aspnetcore.routing.match_attempts",_xc="http.client.request.duration",yxc="http.server.request.duration",bxc="jvm.class.count",Exc="jvm.class.loaded",Sxc="jvm.class.unloaded",vxc="jvm.cpu.count",Bxc="jvm.cpu.recent_utilization",wxc="jvm.cpu.time",Txc="jvm.gc.duration",Rxc="jvm.memory.committed",Nxc="jvm.memory.limit",Dxc="jvm.memory.used",kxc="jvm.memory.used_after_last_gc",xxc="jvm.thread.count",Gxc="kestrel.active_connections",Fxc="kestrel.active_tls_handshakes",Zxc="kestrel.connection.duration",Lxc="kestrel.queued_connections",Vxc="kestrel.queued_requests",Pxc="kestrel.rejected_connections",Wxc="kestrel.tls_handshake.duration",Oxc="kestrel.upgraded_connections",Mxc="signalr.server.active_connections",Hxc="signalr.server.connection.duration"});var p4i={};sI(p4i,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>xDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>GDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>FDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>ZDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>ADc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>dDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>pDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>fDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>ODc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>MDc,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>kDc,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>DDc,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>LDc,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>gDc,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>VDc,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>PDc,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>WDc,ATTR_CLIENT_ADDRESS:()=>HDc,ATTR_CLIENT_PORT:()=>YDc,ATTR_ERROR_TYPE:()=>QDc,ATTR_EXCEPTION_ESCAPED:()=>JDc,ATTR_EXCEPTION_MESSAGE:()=>UDc,ATTR_EXCEPTION_STACKTRACE:()=>KDc,ATTR_EXCEPTION_TYPE:()=>jDc,ATTR_HTTP_REQUEST_HEADER:()=>zDc,ATTR_HTTP_REQUEST_METHOD:()=>qDc,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>lkc,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>ukc,ATTR_HTTP_RESPONSE_HEADER:()=>gkc,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>Akc,ATTR_HTTP_ROUTE:()=>dkc,ATTR_JVM_GC_ACTION:()=>pkc,ATTR_JVM_GC_NAME:()=>fkc,ATTR_JVM_MEMORY_POOL_NAME:()=>Ikc,ATTR_JVM_MEMORY_TYPE:()=>hkc,ATTR_JVM_THREAD_DAEMON:()=>_kc,ATTR_JVM_THREAD_STATE:()=>ykc,ATTR_NETWORK_LOCAL_ADDRESS:()=>Tkc,ATTR_NETWORK_LOCAL_PORT:()=>Rkc,ATTR_NETWORK_PEER_ADDRESS:()=>Nkc,ATTR_NETWORK_PEER_PORT:()=>Dkc,ATTR_NETWORK_PROTOCOL_NAME:()=>kkc,ATTR_NETWORK_PROTOCOL_VERSION:()=>xkc,ATTR_NETWORK_TRANSPORT:()=>Gkc,ATTR_NETWORK_TYPE:()=>Wkc,ATTR_OTEL_SCOPE_NAME:()=>Hkc,ATTR_OTEL_SCOPE_VERSION:()=>Ykc,ATTR_OTEL_STATUS_CODE:()=>Qkc,ATTR_OTEL_STATUS_DESCRIPTION:()=>Ukc,ATTR_SERVER_ADDRESS:()=>Kkc,ATTR_SERVER_PORT:()=>jkc,ATTR_SERVICE_NAME:()=>zkc,ATTR_SERVICE_VERSION:()=>qkc,ATTR_SIGNALR_CONNECTION_STATUS:()=>$kc,ATTR_SIGNALR_TRANSPORT:()=>nxc,ATTR_TELEMETRY_SDK_LANGUAGE:()=>IDc,ATTR_TELEMETRY_SDK_NAME:()=>RDc,ATTR_TELEMETRY_SDK_VERSION:()=>NDc,ATTR_URL_FRAGMENT:()=>axc,ATTR_URL_FULL:()=>cxc,ATTR_URL_PATH:()=>lxc,ATTR_URL_QUERY:()=>uxc,ATTR_URL_SCHEME:()=>gxc,ATTR_USER_AGENT_ORIGINAL:()=>Axc,AWSECSLAUNCHTYPEVALUES_EC2:()=>DNc,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>kNc,AwsEcsLaunchtypeValues:()=>xNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>dNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>pNc,CLOUDPLATFORMVALUES_AWS_EC2:()=>fNc,CLOUDPLATFORMVALUES_AWS_ECS:()=>INc,CLOUDPLATFORMVALUES_AWS_EKS:()=>hNc,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>CNc,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>mNc,CLOUDPLATFORMVALUES_AZURE_AKS:()=>bNc,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>SNc,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>yNc,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>ENc,CLOUDPLATFORMVALUES_AZURE_VM:()=>_Nc,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>RNc,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>TNc,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>BNc,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>vNc,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>wNc,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>cNc,CLOUDPROVIDERVALUES_AWS:()=>lNc,CLOUDPROVIDERVALUES_AZURE:()=>uNc,CLOUDPROVIDERVALUES_GCP:()=>gNc,CloudPlatformValues:()=>NNc,CloudProviderValues:()=>ANc,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>XBc,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>ewc,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>JBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>$Bc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>KBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>rwc,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>jBc,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>UBc,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>twc,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>qBc,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>zBc,DBSYSTEMVALUES_ADABAS:()=>fBc,DBSYSTEMVALUES_CACHE:()=>pBc,DBSYSTEMVALUES_CASSANDRA:()=>kBc,DBSYSTEMVALUES_CLOUDSCAPE:()=>oBc,DBSYSTEMVALUES_COCKROACHDB:()=>YBc,DBSYSTEMVALUES_COLDFUSION:()=>DBc,DBSYSTEMVALUES_COSMOSDB:()=>VBc,DBSYSTEMVALUES_COUCHBASE:()=>ZBc,DBSYSTEMVALUES_COUCHDB:()=>LBc,DBSYSTEMVALUES_DB2:()=>rBc,DBSYSTEMVALUES_DERBY:()=>hBc,DBSYSTEMVALUES_DYNAMODB:()=>PBc,DBSYSTEMVALUES_EDB:()=>dBc,DBSYSTEMVALUES_ELASTICSEARCH:()=>MBc,DBSYSTEMVALUES_FILEMAKER:()=>mBc,DBSYSTEMVALUES_FIREBIRD:()=>IBc,DBSYSTEMVALUES_FIRSTSQL:()=>ABc,DBSYSTEMVALUES_GEODE:()=>OBc,DBSYSTEMVALUES_H2:()=>NBc,DBSYSTEMVALUES_HANADB:()=>uBc,DBSYSTEMVALUES_HBASE:()=>xBc,DBSYSTEMVALUES_HIVE:()=>sBc,DBSYSTEMVALUES_HSQLDB:()=>aBc,DBSYSTEMVALUES_INFORMIX:()=>CBc,DBSYSTEMVALUES_INGRES:()=>gBc,DBSYSTEMVALUES_INSTANTDB:()=>_Bc,DBSYSTEMVALUES_INTERBASE:()=>yBc,DBSYSTEMVALUES_MARIADB:()=>bBc,DBSYSTEMVALUES_MAXDB:()=>lBc,DBSYSTEMVALUES_MEMCACHED:()=>HBc,DBSYSTEMVALUES_MONGODB:()=>GBc,DBSYSTEMVALUES_MSSQL:()=>$vc,DBSYSTEMVALUES_MYSQL:()=>eBc,DBSYSTEMVALUES_NEO4J:()=>WBc,DBSYSTEMVALUES_NETEZZA:()=>EBc,DBSYSTEMVALUES_ORACLE:()=>tBc,DBSYSTEMVALUES_OTHER_SQL:()=>qvc,DBSYSTEMVALUES_PERVASIVE:()=>SBc,DBSYSTEMVALUES_POINTBASE:()=>vBc,DBSYSTEMVALUES_POSTGRESQL:()=>nBc,DBSYSTEMVALUES_PROGRESS:()=>cBc,DBSYSTEMVALUES_REDIS:()=>FBc,DBSYSTEMVALUES_REDSHIFT:()=>iBc,DBSYSTEMVALUES_SQLITE:()=>BBc,DBSYSTEMVALUES_SYBASE:()=>wBc,DBSYSTEMVALUES_TERADATA:()=>TBc,DBSYSTEMVALUES_VERTICA:()=>RBc,DbCassandraConsistencyLevelValues:()=>nwc,DbSystemValues:()=>QBc,ERROR_TYPE_VALUE_OTHER:()=>XDc,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>Awc,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>gwc,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>uwc,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>pwc,FAASINVOKEDPROVIDERVALUES_AWS:()=>fwc,FAASINVOKEDPROVIDERVALUES_AZURE:()=>Iwc,FAASINVOKEDPROVIDERVALUES_GCP:()=>hwc,FAASTRIGGERVALUES_DATASOURCE:()=>iwc,FAASTRIGGERVALUES_HTTP:()=>swc,FAASTRIGGERVALUES_OTHER:()=>cwc,FAASTRIGGERVALUES_PUBSUB:()=>owc,FAASTRIGGERVALUES_TIMER:()=>awc,FaasDocumentOperationValues:()=>dwc,FaasInvokedProviderValues:()=>mwc,FaasTriggerValues:()=>lwc,HOSTARCHVALUES_AMD64:()=>GNc,HOSTARCHVALUES_ARM32:()=>FNc,HOSTARCHVALUES_ARM64:()=>ZNc,HOSTARCHVALUES_IA64:()=>LNc,HOSTARCHVALUES_PPC32:()=>VNc,HOSTARCHVALUES_PPC64:()=>PNc,HOSTARCHVALUES_X86:()=>WNc,HTTPFLAVORVALUES_HTTP_1_0:()=>tTc,HTTPFLAVORVALUES_HTTP_1_1:()=>rTc,HTTPFLAVORVALUES_HTTP_2_0:()=>nTc,HTTPFLAVORVALUES_QUIC:()=>sTc,HTTPFLAVORVALUES_SPDY:()=>iTc,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>ekc,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>tkc,HTTP_REQUEST_METHOD_VALUE_GET:()=>rkc,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>nkc,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>ikc,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>$Dc,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>skc,HTTP_REQUEST_METHOD_VALUE_POST:()=>okc,HTTP_REQUEST_METHOD_VALUE_PUT:()=>akc,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>ckc,HostArchValues:()=>ONc,HttpFlavorValues:()=>oTc,JVM_MEMORY_TYPE_VALUE_HEAP:()=>mkc,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>Ckc,JVM_THREAD_STATE_VALUE_BLOCKED:()=>bkc,JVM_THREAD_STATE_VALUE_NEW:()=>Ekc,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>Skc,JVM_THREAD_STATE_VALUE_TERMINATED:()=>vkc,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>Bkc,JVM_THREAD_STATE_VALUE_WAITING:()=>wkc,MESSAGETYPEVALUES_RECEIVED:()=>kTc,MESSAGETYPEVALUES_SENT:()=>DTc,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>aTc,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>cTc,MESSAGINGOPERATIONVALUES_PROCESS:()=>gTc,MESSAGINGOPERATIONVALUES_RECEIVE:()=>uTc,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>dxc,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>pxc,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>fxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>mxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>hxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>Ixc,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>Cxc,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>_xc,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>yxc,METRIC_JVM_CLASS_COUNT:()=>bxc,METRIC_JVM_CLASS_LOADED:()=>Exc,METRIC_JVM_CLASS_UNLOADED:()=>Sxc,METRIC_JVM_CPU_COUNT:()=>vxc,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>Bxc,METRIC_JVM_CPU_TIME:()=>wxc,METRIC_JVM_GC_DURATION:()=>Txc,METRIC_JVM_MEMORY_COMMITTED:()=>Rxc,METRIC_JVM_MEMORY_LIMIT:()=>Nxc,METRIC_JVM_MEMORY_USED:()=>Dxc,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>kxc,METRIC_JVM_THREAD_COUNT:()=>xxc,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Gxc,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Fxc,METRIC_KESTREL_CONNECTION_DURATION:()=>Zxc,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>Lxc,METRIC_KESTREL_QUEUED_REQUESTS:()=>Vxc,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>Pxc,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>Wxc,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>Oxc,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>Mxc,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>Hxc,MessageTypeValues:()=>xTc,MessagingDestinationKindValues:()=>lTc,MessagingOperationValues:()=>ATc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>Zwc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>Pwc,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>Gwc,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>Xwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>Lwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>Vwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>Ywc,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>xwc,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>Uwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>Wwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>Mwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>Jwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>Owc,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>Hwc,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>jwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>Qwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>$wc,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>zwc,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>qwc,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>Kwc,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>Fwc,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>Rwc,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>Nwc,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>Dwc,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>wwc,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>Twc,NETTRANSPORTVALUES_INPROC:()=>Swc,NETTRANSPORTVALUES_IP:()=>ywc,NETTRANSPORTVALUES_IP_TCP:()=>Cwc,NETTRANSPORTVALUES_IP_UDP:()=>_wc,NETTRANSPORTVALUES_OTHER:()=>vwc,NETTRANSPORTVALUES_PIPE:()=>Ewc,NETTRANSPORTVALUES_UNIX:()=>bwc,NETWORK_TRANSPORT_VALUE_PIPE:()=>Fkc,NETWORK_TRANSPORT_VALUE_QUIC:()=>Zkc,NETWORK_TRANSPORT_VALUE_TCP:()=>Lkc,NETWORK_TRANSPORT_VALUE_UDP:()=>Vkc,NETWORK_TRANSPORT_VALUE_UNIX:()=>Pkc,NETWORK_TYPE_VALUE_IPV4:()=>Okc,NETWORK_TYPE_VALUE_IPV6:()=>Mkc,NetHostConnectionSubtypeValues:()=>eTc,NetHostConnectionTypeValues:()=>kwc,NetTransportValues:()=>Bwc,OSTYPEVALUES_AIX:()=>jNc,OSTYPEVALUES_DARWIN:()=>YNc,OSTYPEVALUES_DRAGONFLYBSD:()=>UNc,OSTYPEVALUES_FREEBSD:()=>QNc,OSTYPEVALUES_HPUX:()=>KNc,OSTYPEVALUES_LINUX:()=>HNc,OSTYPEVALUES_NETBSD:()=>XNc,OSTYPEVALUES_OPENBSD:()=>JNc,OSTYPEVALUES_SOLARIS:()=>zNc,OSTYPEVALUES_WINDOWS:()=>MNc,OSTYPEVALUES_Z_OS:()=>qNc,OTEL_STATUS_CODE_VALUE_ERROR:()=>Xkc,OTEL_STATUS_CODE_VALUE_OK:()=>Jkc,OsTypeValues:()=>$Nc,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>ETc,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>CTc,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>pTc,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>TTc,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>hTc,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>bTc,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>BTc,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>ITc,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>mTc,RPCGRPCSTATUSCODEVALUES_OK:()=>dTc,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>STc,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>_Tc,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>yTc,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>RTc,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>wTc,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>vTc,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>fTc,RpcGrpcStatusCodeValues:()=>NTc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>ovc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>mvc,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>nvc,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>$Sc,SEMATTRS_AWS_DYNAMODB_COUNT:()=>Ivc,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>gvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>lvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>Cvc,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>avc,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>evc,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>svc,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>uvc,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>ivc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>tvc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>rvc,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>hvc,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>dvc,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>pvc,SEMATTRS_AWS_DYNAMODB_SELECT:()=>cvc,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>Avc,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>qSc,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>fvc,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>D2c,SEMATTRS_CODE_FILEPATH:()=>FSc,SEMATTRS_CODE_FUNCTION:()=>xSc,SEMATTRS_CODE_LINENO:()=>ZSc,SEMATTRS_CODE_NAMESPACE:()=>GSc,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>M2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>J2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>X2c,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>Y2c,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>W2c,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>O2c,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>Q2c,SEMATTRS_DB_CASSANDRA_TABLE:()=>H2c,SEMATTRS_DB_CONNECTION_STRING:()=>x2c,SEMATTRS_DB_HBASE_NAMESPACE:()=>U2c,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>F2c,SEMATTRS_DB_MONGODB_COLLECTION:()=>j2c,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>P2c,SEMATTRS_DB_NAME:()=>Z2c,SEMATTRS_DB_OPERATION:()=>V2c,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>K2c,SEMATTRS_DB_SQL_TABLE:()=>z2c,SEMATTRS_DB_STATEMENT:()=>L2c,SEMATTRS_DB_SYSTEM:()=>k2c,SEMATTRS_DB_USER:()=>G2c,SEMATTRS_ENDUSER_ID:()=>TSc,SEMATTRS_ENDUSER_ROLE:()=>RSc,SEMATTRS_ENDUSER_SCOPE:()=>NSc,SEMATTRS_EXCEPTION_ESCAPED:()=>tSc,SEMATTRS_EXCEPTION_MESSAGE:()=>$2c,SEMATTRS_EXCEPTION_STACKTRACE:()=>eSc,SEMATTRS_EXCEPTION_TYPE:()=>q2c,SEMATTRS_FAAS_COLDSTART:()=>uSc,SEMATTRS_FAAS_CRON:()=>lSc,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>iSc,SEMATTRS_FAAS_DOCUMENT_NAME:()=>aSc,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>sSc,SEMATTRS_FAAS_DOCUMENT_TIME:()=>oSc,SEMATTRS_FAAS_EXECUTION:()=>nSc,SEMATTRS_FAAS_INVOKED_NAME:()=>gSc,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>ASc,SEMATTRS_FAAS_INVOKED_REGION:()=>dSc,SEMATTRS_FAAS_TIME:()=>cSc,SEMATTRS_FAAS_TRIGGER:()=>rSc,SEMATTRS_HTTP_CLIENT_IP:()=>zSc,SEMATTRS_HTTP_FLAVOR:()=>HSc,SEMATTRS_HTTP_HOST:()=>WSc,SEMATTRS_HTTP_METHOD:()=>LSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>QSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>XSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>JSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>USc,SEMATTRS_HTTP_ROUTE:()=>jSc,SEMATTRS_HTTP_SCHEME:()=>OSc,SEMATTRS_HTTP_SERVER_NAME:()=>KSc,SEMATTRS_HTTP_STATUS_CODE:()=>MSc,SEMATTRS_HTTP_TARGET:()=>PSc,SEMATTRS_HTTP_URL:()=>VSc,SEMATTRS_HTTP_USER_AGENT:()=>YSc,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>Kvc,SEMATTRS_MESSAGE_ID:()=>Uvc,SEMATTRS_MESSAGE_TYPE:()=>Jvc,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>jvc,SEMATTRS_MESSAGING_CONSUMER_ID:()=>kvc,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>Tvc,SEMATTRS_MESSAGING_DESTINATION:()=>yvc,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>bvc,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>Zvc,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>Fvc,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>Gvc,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>Lvc,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>Vvc,SEMATTRS_MESSAGING_MESSAGE_ID:()=>wvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>Nvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>Rvc,SEMATTRS_MESSAGING_OPERATION:()=>Dvc,SEMATTRS_MESSAGING_PROTOCOL:()=>Svc,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>vvc,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>xvc,SEMATTRS_MESSAGING_SYSTEM:()=>_vc,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>Evc,SEMATTRS_MESSAGING_URL:()=>Bvc,SEMATTRS_NET_HOST_CARRIER_ICC:()=>BSc,SEMATTRS_NET_HOST_CARRIER_MCC:()=>SSc,SEMATTRS_NET_HOST_CARRIER_MNC:()=>vSc,SEMATTRS_NET_HOST_CARRIER_NAME:()=>ESc,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>bSc,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>ySc,SEMATTRS_NET_HOST_IP:()=>mSc,SEMATTRS_NET_HOST_NAME:()=>_Sc,SEMATTRS_NET_HOST_PORT:()=>CSc,SEMATTRS_NET_PEER_IP:()=>fSc,SEMATTRS_NET_PEER_NAME:()=>hSc,SEMATTRS_NET_PEER_PORT:()=>ISc,SEMATTRS_NET_TRANSPORT:()=>pSc,SEMATTRS_PEER_SERVICE:()=>wSc,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>Mvc,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>Qvc,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>Xvc,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>Yvc,SEMATTRS_RPC_JSONRPC_VERSION:()=>Hvc,SEMATTRS_RPC_METHOD:()=>Ovc,SEMATTRS_RPC_SERVICE:()=>Wvc,SEMATTRS_RPC_SYSTEM:()=>Pvc,SEMATTRS_THREAD_ID:()=>DSc,SEMATTRS_THREAD_NAME:()=>kSc,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>WTc,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>PTc,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>OTc,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>MTc,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>HTc,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>YTc,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>QTc,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>JTc,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>XTc,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>KTc,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>UTc,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>FTc,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>LTc,SEMRESATTRS_CLOUD_PLATFORM:()=>VTc,SEMRESATTRS_CLOUD_PROVIDER:()=>GTc,SEMRESATTRS_CLOUD_REGION:()=>ZTc,SEMRESATTRS_CONTAINER_ID:()=>zTc,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>$Tc,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>eRc,SEMRESATTRS_CONTAINER_NAME:()=>jTc,SEMRESATTRS_CONTAINER_RUNTIME:()=>qTc,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>tRc,SEMRESATTRS_DEVICE_ID:()=>rRc,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>nRc,SEMRESATTRS_DEVICE_MODEL_NAME:()=>iRc,SEMRESATTRS_FAAS_ID:()=>oRc,SEMRESATTRS_FAAS_INSTANCE:()=>cRc,SEMRESATTRS_FAAS_MAX_MEMORY:()=>lRc,SEMRESATTRS_FAAS_NAME:()=>sRc,SEMRESATTRS_FAAS_VERSION:()=>aRc,SEMRESATTRS_HOST_ARCH:()=>dRc,SEMRESATTRS_HOST_ID:()=>uRc,SEMRESATTRS_HOST_IMAGE_ID:()=>fRc,SEMRESATTRS_HOST_IMAGE_NAME:()=>pRc,SEMRESATTRS_HOST_IMAGE_VERSION:()=>IRc,SEMRESATTRS_HOST_NAME:()=>gRc,SEMRESATTRS_HOST_TYPE:()=>ARc,SEMRESATTRS_K8S_CLUSTER_NAME:()=>hRc,SEMRESATTRS_K8S_CONTAINER_NAME:()=>ERc,SEMRESATTRS_K8S_CRONJOB_NAME:()=>FRc,SEMRESATTRS_K8S_CRONJOB_UID:()=>GRc,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>DRc,SEMRESATTRS_K8S_DAEMONSET_UID:()=>NRc,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>wRc,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>BRc,SEMRESATTRS_K8S_JOB_NAME:()=>xRc,SEMRESATTRS_K8S_JOB_UID:()=>kRc,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>_Rc,SEMRESATTRS_K8S_NODE_NAME:()=>mRc,SEMRESATTRS_K8S_NODE_UID:()=>CRc,SEMRESATTRS_K8S_POD_NAME:()=>bRc,SEMRESATTRS_K8S_POD_UID:()=>yRc,SEMRESATTRS_K8S_REPLICASET_NAME:()=>vRc,SEMRESATTRS_K8S_REPLICASET_UID:()=>SRc,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>RRc,SEMRESATTRS_K8S_STATEFULSET_UID:()=>TRc,SEMRESATTRS_OS_DESCRIPTION:()=>LRc,SEMRESATTRS_OS_NAME:()=>VRc,SEMRESATTRS_OS_TYPE:()=>ZRc,SEMRESATTRS_OS_VERSION:()=>PRc,SEMRESATTRS_PROCESS_COMMAND:()=>HRc,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>QRc,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>YRc,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>ORc,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>MRc,SEMRESATTRS_PROCESS_OWNER:()=>XRc,SEMRESATTRS_PROCESS_PID:()=>WRc,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>KRc,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>JRc,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>URc,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>qRc,SEMRESATTRS_SERVICE_NAME:()=>jRc,SEMRESATTRS_SERVICE_NAMESPACE:()=>zRc,SEMRESATTRS_SERVICE_VERSION:()=>$Rc,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>nNc,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>tNc,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>eNc,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>rNc,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>oNc,SEMRESATTRS_WEBENGINE_NAME:()=>iNc,SEMRESATTRS_WEBENGINE_VERSION:()=>sNc,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>exc,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>txc,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>rxc,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>ixc,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>sxc,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>oxc,SemanticAttributes:()=>zvc,SemanticResourceAttributes:()=>aNc,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>eDc,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>tDc,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>rDc,TELEMETRYSDKLANGUAGEVALUES_GO:()=>nDc,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>iDc,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>sDc,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>oDc,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>aDc,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>cDc,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>lDc,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>hDc,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>mDc,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>CDc,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>_Dc,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>yDc,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>bDc,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>EDc,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>SDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>vDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>BDc,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>wDc,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>TDc,TelemetrySdkLanguageValues:()=>uDc});var f4i=bc(()=>{PYi();g4i();A4i();d4i()});var I4i=H(jSt=>{"use strict";Object.defineProperty(jSt,"__esModule",{value:!0});jSt.SDK_INFO=void 0;var Yxc=qLr(),ZKe=(f4i(),vi(p4i));jSt.SDK_INFO={[ZKe.SEMRESATTRS_TELEMETRY_SDK_NAME]:"opentelemetry",[ZKe.SEMRESATTRS_PROCESS_RUNTIME_NAME]:"node",[ZKe.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]:ZKe.TELEMETRYSDKLANGUAGEVALUES_NODEJS,[ZKe.SEMRESATTRS_TELEMETRY_SDK_VERSION]:Yxc.VERSION}});var h4i=H(zSt=>{"use strict";Object.defineProperty(zSt,"__esModule",{value:!0});zSt.unrefTimer=void 0;function Qxc(e){e.unref()}zSt.unrefTimer=Qxc});var C4i=H(gD=>{"use strict";Object.defineProperty(gD,"__esModule",{value:!0});gD.unrefTimer=gD.SDK_INFO=gD.otperformance=gD.RandomIdGenerator=gD.hexToBase64=gD._globalThis=gD.getEnv=gD.getEnvWithoutDefaults=void 0;var m4i=OOi();Object.defineProperty(gD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return m4i.getEnvWithoutDefaults}});Object.defineProperty(gD,"getEnv",{enumerable:!0,get:function(){return m4i.getEnv}});var Xxc=MOi();Object.defineProperty(gD,"_globalThis",{enumerable:!0,get:function(){return Xxc._globalThis}});var Jxc=YOi();Object.defineProperty(gD,"hexToBase64",{enumerable:!0,get:function(){return Jxc.hexToBase64}});var Uxc=JOi();Object.defineProperty(gD,"RandomIdGenerator",{enumerable:!0,get:function(){return Uxc.RandomIdGenerator}});var Kxc=UOi();Object.defineProperty(gD,"otperformance",{enumerable:!0,get:function(){return Kxc.otperformance}});var jxc=I4i();Object.defineProperty(gD,"SDK_INFO",{enumerable:!0,get:function(){return jxc.SDK_INFO}});var zxc=h4i();Object.defineProperty(gD,"unrefTimer",{enumerable:!0,get:function(){return zxc.unrefTimer}})});var e9r=H(AD=>{"use strict";Object.defineProperty(AD,"__esModule",{value:!0});AD.unrefTimer=AD.otperformance=AD.hexToBase64=AD.getEnvWithoutDefaults=AD.getEnv=AD._globalThis=AD.SDK_INFO=AD.RandomIdGenerator=void 0;var jce=C4i();Object.defineProperty(AD,"RandomIdGenerator",{enumerable:!0,get:function(){return jce.RandomIdGenerator}});Object.defineProperty(AD,"SDK_INFO",{enumerable:!0,get:function(){return jce.SDK_INFO}});Object.defineProperty(AD,"_globalThis",{enumerable:!0,get:function(){return jce._globalThis}});Object.defineProperty(AD,"getEnv",{enumerable:!0,get:function(){return jce.getEnv}});Object.defineProperty(AD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return jce.getEnvWithoutDefaults}});Object.defineProperty(AD,"hexToBase64",{enumerable:!0,get:function(){return jce.hexToBase64}});Object.defineProperty(AD,"otperformance",{enumerable:!0,get:function(){return jce.otperformance}});Object.defineProperty(AD,"unrefTimer",{enumerable:!0,get:function(){return jce.unrefTimer}})});var E4i=H(OE=>{"use strict";Object.defineProperty(OE,"__esModule",{value:!0});OE.addHrTimes=OE.isTimeInput=OE.isTimeInputHrTime=OE.hrTimeToMicroseconds=OE.hrTimeToMilliseconds=OE.hrTimeToNanoseconds=OE.hrTimeToTimeStamp=OE.hrTimeDuration=OE.timeInputToHrTime=OE.hrTime=OE.getTimeOrigin=OE.millisToHrTime=void 0;var t9r=e9r(),_4i=9,qxc=6,$xc=Math.pow(10,qxc),qSt=Math.pow(10,_4i);function LKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*$xc);return[r,n]}OE.millisToHrTime=LKe;function r9r(){let e=t9r.otperformance.timeOrigin;if(typeof e!="number"){let t=t9r.otperformance;e=t.timing&&t.timing.fetchStart}return e}OE.getTimeOrigin=r9r;function y4i(e){let t=LKe(r9r()),r=LKe(typeof e=="number"?e:t9r.otperformance.now());return b4i(t,r)}OE.hrTime=y4i;function eGc(e){if(n9r(e))return e;if(typeof e=="number")return e=qSt&&(r[1]-=qSt,r[0]+=1),r}OE.addHrTimes=b4i});var S4i=H(VKe=>{"use strict";Object.defineProperty(VKe,"__esModule",{value:!0});VKe.ExportResultCode=void 0;var aGc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(aGc=VKe.ExportResultCode||(VKe.ExportResultCode={}))});var B4i=H($St=>{"use strict";Object.defineProperty($St,"__esModule",{value:!0});$St.CompositePropagator=void 0;var v4i=(GI(),vi(xI)),i9r=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){v4i.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){v4i.diag.warn(`Failed to extract with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};$St.CompositePropagator=i9r});var w4i=H(LDe=>{"use strict";Object.defineProperty(LDe,"__esModule",{value:!0});LDe.validateValue=LDe.validateKey=void 0;var s9r="[_0-9a-z-*/]",cGc=`[a-z]${s9r}{0,255}`,lGc=`[a-z0-9]${s9r}{0,240}@[a-z]${s9r}{0,13}`,uGc=new RegExp(`^(?:${cGc}|${lGc})$`),gGc=/^[ -~]{0,255}[!-~]$/,AGc=/,|=/;function dGc(e){return uGc.test(e)}LDe.validateKey=dGc;function pGc(e){return gGc.test(e)&&!AGc.test(e)}LDe.validateValue=pGc});var a9r=H(evt=>{"use strict";Object.defineProperty(evt,"__esModule",{value:!0});evt.TraceState=void 0;var T4i=w4i(),R4i=32,fGc=512,N4i=",",D4i="=",o9r=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+D4i+this.get(r)),t),[]).join(N4i)}_parse(t){t.length>fGc||(this._internalState=t.split(N4i).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(D4i);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,T4i.validateKey)(l)&&(0,T4i.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>R4i&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,R4i))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};evt.TraceState=o9r});var x4i=H(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.W3CTraceContextPropagator=HG.parseTraceParent=HG.TRACE_STATE_HEADER=HG.TRACE_PARENT_HEADER=void 0;var tvt=(GI(),vi(xI)),IGc=GKe(),hGc=a9r();HG.TRACE_PARENT_HEADER="traceparent";HG.TRACE_STATE_HEADER="tracestate";var mGc="00",CGc="(?!ff)[\\da-f]{2}",_Gc="(?![0]{32})[\\da-f]{32}",yGc="(?![0]{16})[\\da-f]{16}",bGc="[\\da-f]{2}",EGc=new RegExp(`^\\s?(${CGc})-(${_Gc})-(${yGc})-(${bGc})(-.*)?\\s?$`);function k4i(e){let t=EGc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}HG.parseTraceParent=k4i;var c9r=class{inject(t,r,n){let a=tvt.trace.getSpanContext(t);if(!a||(0,IGc.isTracingSuppressed)(t)||!(0,tvt.isSpanContextValid)(a))return;let o=`${mGc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||tvt.TraceFlags.NONE).toString(16)}`;n.set(r,HG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,HG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,HG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=k4i(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,HG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new hGc.TraceState(typeof f=="string"?f:void 0)}return tvt.trace.setSpanContext(t,l)}fields(){return[HG.TRACE_PARENT_HEADER,HG.TRACE_STATE_HEADER]}};HG.W3CTraceContextPropagator=c9r});var G4i=H(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.getRPCMetadata=m4.deleteRPCMetadata=m4.setRPCMetadata=m4.RPCType=void 0;var SGc=(GI(),vi(xI)),l9r=(0,SGc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),vGc;(function(e){e.HTTP="http"})(vGc=m4.RPCType||(m4.RPCType={}));function BGc(e,t){return e.setValue(l9r,t)}m4.setRPCMetadata=BGc;function wGc(e){return e.deleteValue(l9r)}m4.deleteRPCMetadata=wGc;function TGc(e){return e.getValue(l9r)}m4.getRPCMetadata=TGc});var g9r=H(rvt=>{"use strict";Object.defineProperty(rvt,"__esModule",{value:!0});rvt.AlwaysOffSampler=void 0;var RGc=(GI(),vi(xI)),u9r=class{shouldSample(){return{decision:RGc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};rvt.AlwaysOffSampler=u9r});var d9r=H(nvt=>{"use strict";Object.defineProperty(nvt,"__esModule",{value:!0});nvt.AlwaysOnSampler=void 0;var NGc=(GI(),vi(xI)),A9r=class{shouldSample(){return{decision:NGc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};nvt.AlwaysOnSampler=A9r});var Z4i=H(svt=>{"use strict";Object.defineProperty(svt,"__esModule",{value:!0});svt.ParentBasedSampler=void 0;var ivt=(GI(),vi(xI)),DGc=XLr(),F4i=g9r(),p9r=d9r(),f9r=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,DGc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new p9r.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new p9r.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new F4i.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new p9r.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new F4i.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=ivt.trace.getSpanContext(t);return!A||!(0,ivt.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&ivt.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&ivt.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};svt.ParentBasedSampler=f9r});var L4i=H(ovt=>{"use strict";Object.defineProperty(ovt,"__esModule",{value:!0});ovt.TraceIdRatioBasedSampler=void 0;var I9r=(GI(),vi(xI)),h9r=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,I9r.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};ovt.TraceIdRatioBasedSampler=h9r});var M4i=H(avt=>{"use strict";Object.defineProperty(avt,"__esModule",{value:!0});avt.isPlainObject=void 0;var kGc="[object Object]",xGc="[object Null]",GGc="[object Undefined]",FGc=Function.prototype,V4i=FGc.toString,ZGc=V4i.call(Object),LGc=VGc(Object.getPrototypeOf,Object),P4i=Object.prototype,W4i=P4i.hasOwnProperty,UCe=Symbol?Symbol.toStringTag:void 0,O4i=P4i.toString;function VGc(e,t){return function(r){return e(t(r))}}function PGc(e){if(!WGc(e)||OGc(e)!==kGc)return!1;let t=LGc(e);if(t===null)return!0;let r=W4i.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&V4i.call(r)===ZGc}avt.isPlainObject=PGc;function WGc(e){return e!=null&&typeof e=="object"}function OGc(e){return e==null?e===void 0?GGc:xGc:UCe&&UCe in Object(e)?MGc(e):HGc(e)}function MGc(e){let t=W4i.call(e,UCe),r=e[UCe],n=!1;try{e[UCe]=void 0,n=!0}catch{}let a=O4i.call(e);return n&&(t?e[UCe]=r:delete e[UCe]),a}function HGc(e){return O4i.call(e)}});var J4i=H(uvt=>{"use strict";Object.defineProperty(uvt,"__esModule",{value:!0});uvt.merge=void 0;var H4i=M4i(),YGc=20;function QGc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=Q4i(t,e.shift(),0,r);return t}uvt.merge=QGc;function m9r(e){return lvt(e)?e.slice():e}function Q4i(e,t,r=0,n){let a;if(!(r>YGc)){if(r++,cvt(e)||cvt(t)||X4i(t))a=m9r(t);else if(lvt(e)){if(a=e.slice(),lvt(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(Y4i(e,f,n)||Y4i(t,f,n))delete a[f];else{if(PKe(C)&&PKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=Q4i(a[f],I,r,n)}}}}else a=t;return a}}function Y4i(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function XGc(e,t){return!(!(0,H4i.isPlainObject)(e)||!(0,H4i.isPlainObject)(t))}});var U4i=H(VDe=>{"use strict";Object.defineProperty(VDe,"__esModule",{value:!0});VDe.callWithTimeout=VDe.TimeoutError=void 0;var gvt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};VDe.TimeoutError=gvt;function JGc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new gvt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}VDe.callWithTimeout=JGc});var j4i=H(PDe=>{"use strict";Object.defineProperty(PDe,"__esModule",{value:!0});PDe.isUrlIgnored=PDe.urlMatches=void 0;function K4i(e,t){return typeof t=="string"?e===t:!!e.match(t)}PDe.urlMatches=K4i;function UGc(e,t){if(!t)return!1;for(let r of t)if(K4i(e,r))return!0;return!1}PDe.isUrlIgnored=UGc});var z4i=H(Avt=>{"use strict";Object.defineProperty(Avt,"__esModule",{value:!0});Avt.isWrapped=void 0;function KGc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Avt.isWrapped=KGc});var q4i=H(dvt=>{"use strict";Object.defineProperty(dvt,"__esModule",{value:!0});dvt.Deferred=void 0;var C9r=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};dvt.Deferred=C9r});var $4i=H(pvt=>{"use strict";Object.defineProperty(pvt,"__esModule",{value:!0});pvt.BindOnceFuture=void 0;var jGc=q4i(),_9r=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new jGc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};pvt.BindOnceFuture=_9r});var tJi=H(fvt=>{"use strict";Object.defineProperty(fvt,"__esModule",{value:!0});fvt._export=void 0;var eJi=(GI(),vi(xI)),zGc=GKe();function qGc(e,t){return new Promise(r=>{eJi.context.with((0,zGc.suppressTracing)(eJi.context.active()),()=>{e.export(t,n=>{r(n)})})})}fvt._export=qGc});var E9r=H(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ja.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Ja.TraceState=Ja.unsuppressTracing=Ja.suppressTracing=Ja.isTracingSuppressed=Ja.TraceIdRatioBasedSampler=Ja.ParentBasedSampler=Ja.AlwaysOnSampler=Ja.AlwaysOffSampler=Ja.setRPCMetadata=Ja.getRPCMetadata=Ja.deleteRPCMetadata=Ja.RPCType=Ja.parseTraceParent=Ja.W3CTraceContextPropagator=Ja.TRACE_STATE_HEADER=Ja.TRACE_PARENT_HEADER=Ja.CompositePropagator=Ja.unrefTimer=Ja.otperformance=Ja.hexToBase64=Ja.getEnvWithoutDefaults=Ja.getEnv=Ja._globalThis=Ja.SDK_INFO=Ja.RandomIdGenerator=Ja.baggageUtils=Ja.ExportResultCode=Ja.hexToBinary=Ja.timeInputToHrTime=Ja.millisToHrTime=Ja.isTimeInputHrTime=Ja.isTimeInput=Ja.hrTimeToTimeStamp=Ja.hrTimeToNanoseconds=Ja.hrTimeToMilliseconds=Ja.hrTimeToMicroseconds=Ja.hrTimeDuration=Ja.hrTime=Ja.getTimeOrigin=Ja.addHrTimes=Ja.loggingErrorHandler=Ja.setGlobalErrorHandler=Ja.globalErrorHandler=Ja.sanitizeAttributes=Ja.isAttributeValue=Ja.isAttributeKey=Ja.AnchoredClock=Ja.W3CBaggagePropagator=void 0;Ja.internal=Ja.VERSION=Ja.BindOnceFuture=Ja.isWrapped=Ja.urlMatches=Ja.isUrlIgnored=Ja.callWithTimeout=Ja.TimeoutError=Ja.TracesSamplerValues=Ja.merge=Ja.parseEnvironment=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Ja.DEFAULT_ENVIRONMENT=void 0;var $Gc=xOi();Object.defineProperty(Ja,"W3CBaggagePropagator",{enumerable:!0,get:function(){return $Gc.W3CBaggagePropagator}});var eFc=GOi();Object.defineProperty(Ja,"AnchoredClock",{enumerable:!0,get:function(){return eFc.AnchoredClock}});var y9r=POi();Object.defineProperty(Ja,"isAttributeKey",{enumerable:!0,get:function(){return y9r.isAttributeKey}});Object.defineProperty(Ja,"isAttributeValue",{enumerable:!0,get:function(){return y9r.isAttributeValue}});Object.defineProperty(Ja,"sanitizeAttributes",{enumerable:!0,get:function(){return y9r.sanitizeAttributes}});var rJi=XLr();Object.defineProperty(Ja,"globalErrorHandler",{enumerable:!0,get:function(){return rJi.globalErrorHandler}});Object.defineProperty(Ja,"setGlobalErrorHandler",{enumerable:!0,get:function(){return rJi.setGlobalErrorHandler}});var tFc=QLr();Object.defineProperty(Ja,"loggingErrorHandler",{enumerable:!0,get:function(){return tFc.loggingErrorHandler}});var dH=E4i();Object.defineProperty(Ja,"addHrTimes",{enumerable:!0,get:function(){return dH.addHrTimes}});Object.defineProperty(Ja,"getTimeOrigin",{enumerable:!0,get:function(){return dH.getTimeOrigin}});Object.defineProperty(Ja,"hrTime",{enumerable:!0,get:function(){return dH.hrTime}});Object.defineProperty(Ja,"hrTimeDuration",{enumerable:!0,get:function(){return dH.hrTimeDuration}});Object.defineProperty(Ja,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return dH.hrTimeToMicroseconds}});Object.defineProperty(Ja,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return dH.hrTimeToMilliseconds}});Object.defineProperty(Ja,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return dH.hrTimeToNanoseconds}});Object.defineProperty(Ja,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return dH.hrTimeToTimeStamp}});Object.defineProperty(Ja,"isTimeInput",{enumerable:!0,get:function(){return dH.isTimeInput}});Object.defineProperty(Ja,"isTimeInputHrTime",{enumerable:!0,get:function(){return dH.isTimeInputHrTime}});Object.defineProperty(Ja,"millisToHrTime",{enumerable:!0,get:function(){return dH.millisToHrTime}});Object.defineProperty(Ja,"timeInputToHrTime",{enumerable:!0,get:function(){return dH.timeInputToHrTime}});var rFc=jLr();Object.defineProperty(Ja,"hexToBinary",{enumerable:!0,get:function(){return rFc.hexToBinary}});var nFc=S4i();Object.defineProperty(Ja,"ExportResultCode",{enumerable:!0,get:function(){return nFc.ExportResultCode}});var Ivt=WLr();Ja.baggageUtils={getKeyPairs:Ivt.getKeyPairs,serializeKeyPairs:Ivt.serializeKeyPairs,parseKeyPairsIntoRecord:Ivt.parseKeyPairsIntoRecord,parsePairKeyValue:Ivt.parsePairKeyValue};var zce=e9r();Object.defineProperty(Ja,"RandomIdGenerator",{enumerable:!0,get:function(){return zce.RandomIdGenerator}});Object.defineProperty(Ja,"SDK_INFO",{enumerable:!0,get:function(){return zce.SDK_INFO}});Object.defineProperty(Ja,"_globalThis",{enumerable:!0,get:function(){return zce._globalThis}});Object.defineProperty(Ja,"getEnv",{enumerable:!0,get:function(){return zce.getEnv}});Object.defineProperty(Ja,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return zce.getEnvWithoutDefaults}});Object.defineProperty(Ja,"hexToBase64",{enumerable:!0,get:function(){return zce.hexToBase64}});Object.defineProperty(Ja,"otperformance",{enumerable:!0,get:function(){return zce.otperformance}});Object.defineProperty(Ja,"unrefTimer",{enumerable:!0,get:function(){return zce.unrefTimer}});var iFc=B4i();Object.defineProperty(Ja,"CompositePropagator",{enumerable:!0,get:function(){return iFc.CompositePropagator}});var hvt=x4i();Object.defineProperty(Ja,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_PARENT_HEADER}});Object.defineProperty(Ja,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_STATE_HEADER}});Object.defineProperty(Ja,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return hvt.W3CTraceContextPropagator}});Object.defineProperty(Ja,"parseTraceParent",{enumerable:!0,get:function(){return hvt.parseTraceParent}});var mvt=G4i();Object.defineProperty(Ja,"RPCType",{enumerable:!0,get:function(){return mvt.RPCType}});Object.defineProperty(Ja,"deleteRPCMetadata",{enumerable:!0,get:function(){return mvt.deleteRPCMetadata}});Object.defineProperty(Ja,"getRPCMetadata",{enumerable:!0,get:function(){return mvt.getRPCMetadata}});Object.defineProperty(Ja,"setRPCMetadata",{enumerable:!0,get:function(){return mvt.setRPCMetadata}});var sFc=g9r();Object.defineProperty(Ja,"AlwaysOffSampler",{enumerable:!0,get:function(){return sFc.AlwaysOffSampler}});var oFc=d9r();Object.defineProperty(Ja,"AlwaysOnSampler",{enumerable:!0,get:function(){return oFc.AlwaysOnSampler}});var aFc=Z4i();Object.defineProperty(Ja,"ParentBasedSampler",{enumerable:!0,get:function(){return aFc.ParentBasedSampler}});var cFc=L4i();Object.defineProperty(Ja,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return cFc.TraceIdRatioBasedSampler}});var b9r=GKe();Object.defineProperty(Ja,"isTracingSuppressed",{enumerable:!0,get:function(){return b9r.isTracingSuppressed}});Object.defineProperty(Ja,"suppressTracing",{enumerable:!0,get:function(){return b9r.suppressTracing}});Object.defineProperty(Ja,"unsuppressTracing",{enumerable:!0,get:function(){return b9r.unsuppressTracing}});var lFc=a9r();Object.defineProperty(Ja,"TraceState",{enumerable:!0,get:function(){return lFc.TraceState}});var WDe=ULr();Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ENVIRONMENT",{enumerable:!0,get:function(){return WDe.DEFAULT_ENVIRONMENT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT}});Object.defineProperty(Ja,"parseEnvironment",{enumerable:!0,get:function(){return WDe.parseEnvironment}});var uFc=J4i();Object.defineProperty(Ja,"merge",{enumerable:!0,get:function(){return uFc.merge}});var gFc=JLr();Object.defineProperty(Ja,"TracesSamplerValues",{enumerable:!0,get:function(){return gFc.TracesSamplerValues}});var nJi=U4i();Object.defineProperty(Ja,"TimeoutError",{enumerable:!0,get:function(){return nJi.TimeoutError}});Object.defineProperty(Ja,"callWithTimeout",{enumerable:!0,get:function(){return nJi.callWithTimeout}});var iJi=j4i();Object.defineProperty(Ja,"isUrlIgnored",{enumerable:!0,get:function(){return iJi.isUrlIgnored}});Object.defineProperty(Ja,"urlMatches",{enumerable:!0,get:function(){return iJi.urlMatches}});var AFc=z4i();Object.defineProperty(Ja,"isWrapped",{enumerable:!0,get:function(){return AFc.isWrapped}});var dFc=$4i();Object.defineProperty(Ja,"BindOnceFuture",{enumerable:!0,get:function(){return dFc.BindOnceFuture}});var pFc=qLr();Object.defineProperty(Ja,"VERSION",{enumerable:!0,get:function(){return pFc.VERSION}});var fFc=tJi();Ja.internal={_export:fFc._export}});var aJi=H((fMu,S9r)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(r){if((r>0&&r<1/0)===!1)throw typeof r!="number"&&typeof r!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(r))},e=new Int32Array(new SharedArrayBuffer(4));S9r.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let n=Date.now()+Number(t);for(;n>Date.now(););};S9r.exports=e}});var fJi=H((IMu,pJi)=>{"use strict";var sw=wt("fs"),IFc=wt("events"),hFc=wt("util").inherits,cJi=wt("path"),B9r=aJi(),_vt=100,yvt=Buffer.allocUnsafe(0),mFc=16*1024,lJi="buffer",uJi="utf8";function gJi(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function r(o,l){if(o){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",o)}):t.emit("error",o);return}let A=t._reopening;t.fd=l,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():A&&process.nextTick(()=>t.emit("drain")))}let n=t.append?"a":"w",a=t.mode;if(t.sync)try{t.mkdir&&sw.mkdirSync(cJi.dirname(e),{recursive:!0});let o=sw.openSync(e,n,a);r(null,o)}catch(o){throw r(o),o}else t.mkdir?sw.mkdir(cJi.dirname(e),{recursive:!0},o=>{if(o)return r(o);sw.open(e,n,a,r)}):sw.open(e,n,a,r)}function C4(e){if(!(this instanceof C4))return new C4(e);let{fd:t,dest:r,minLength:n,maxLength:a,maxWrite:o,sync:l,append:A=!0,mkdir:f,retryEAGAIN:I,fsync:C,contentMode:b,mode:E}=e||{};t=t||r,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(n||0,16387),this.file=null,this.destroyed=!1,this.minLength=n||0,this.maxLength=a||0,this.maxWrite=o||mFc,this.sync=l||!1,this.writable=!0,this._fsync=C||!1,this.append=A||!1,this.mode=E,this.retryEAGAIN=I||(()=>!0),this.mkdir=f||!1;let N,B;if(b===lJi)this._writingBuf=yvt,this.write=yFc,this.flush=EFc,this.flushSync=vFc,this._actualWrite=wFc,N=()=>sw.writeSync(this.fd,this._writingBuf),B=()=>sw.write(this.fd,this._writingBuf,this.release);else if(b===void 0||b===uJi)this._writingBuf="",this.write=_Fc,this.flush=bFc,this.flushSync=SFc,this._actualWrite=BFc,N=()=>sw.writeSync(this.fd,this._writingBuf,"utf8"),B=()=>sw.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${uJi}" and "${lJi}", but passed ${b}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")gJi(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(F,Q)=>{if(F){if((F.code==="EAGAIN"||F.code==="EBUSY")&&this.retryEAGAIN(F,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{B9r(_vt),this.release(void 0,0)}catch(ne){this.release(ne)}else setTimeout(B,_vt);else this._writing=!1,this.emit("error",F);return}this.emit("write",Q);let X=v9r(this._writingBuf,this._len,Q);if(this._len=X.len,this._writingBuf=X.writingBuf,this._writingBuf.length){if(!this.sync){B();return}try{do{let ne=N(),ce=v9r(this._writingBuf,this._len,ne);this._len=ce.len,this._writingBuf=ce.writingBuf}while(this._writingBuf.length)}catch(ne){this.release(ne);return}}this._fsync&&sw.fsyncSync(this.fd);let ae=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):ae>this.minLength?this._actualWrite():this._ending?ae>0?this._actualWrite():(this._writing=!1,bvt(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(CFc,this)):this.emit("drain"))},this.on("newListener",function(F){F==="drain"&&(this._asyncDrainScheduled=!1)})}function v9r(e,t,r){return typeof e=="string"&&Buffer.byteLength(e)!==r&&(r=Buffer.from(e).subarray(0,r).toString().length),t=Math.max(t-r,0),e=e.slice(r),{writingBuf:e,len:t}}function CFc(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}hFc(C4,IFc);function AJi(e,t){return e.length===0?yvt:e.length===1?e[0]:Buffer.concat(e,t)}function _Fc(e){if(this.destroyed)throw new Error("SonicBoom destroyed");let t=this._len+e.length,r=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(""+e):r[r.length-1]+=e,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(r.push([e]),n.push(e.length)):(r[r.length-1].push(e),n[n.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{this._fsync?(this._flushPending=!1,e()):sw.fsync(this.fd,n=>{this._flushPending=!1,e(n)}),this.off("error",r)},r=n=>{this._flushPending=!1,e(n),this.off("drain",t)};this.once("drain",t),this.once("error",r)}function bFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function EFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}C4.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&sw.close(t,r=>{if(r)return this.emit("error",r)})}),gJi(this.file,this)};C4.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():bvt(this)))};function SFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e;){e.length<=0&&(e=this._bufs[0]);try{let t=sw.writeSync(this.fd,e,"utf8"),r=v9r(e,this._len,t);e=r.writingBuf,this._len=r.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}try{sw.fsyncSync(this.fd)}catch{}}function vFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=yvt);let e=yvt;for(;this._bufs.length||e.length;){e.length<=0&&(e=AJi(this._bufs[0],this._lens[0]));try{let t=sw.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}}C4.prototype.destroy=function(){this.destroyed||bvt(this)};function BFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,"utf8",e)}function wFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:AJi(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,e)}function bvt(e){if(e.fd===-1){e.once("ready",bvt.bind(null,e));return}e.destroyed=!0,e._bufs=[],e._lens=[],sw.fsync(e.fd,t);function t(){e.fd!==1&&e.fd!==2?sw.close(e.fd,r):r()}function r(n){if(n){e.emit("error",n);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}C4.SonicBoom=C4;C4.default=C4;pJi.exports=C4});var yJi=H((hMu,_Ji)=>{"use strict";var _4={exit:[],beforeExit:[]},IJi={exit:NFc,beforeExit:DFc},ODe;function TFc(){ODe===void 0&&(ODe=new FinalizationRegistry(kFc))}function RFc(e){_4[e].length>0||process.on(e,IJi[e])}function hJi(e){_4[e].length>0||(process.removeListener(e,IJi[e]),_4.exit.length===0&&_4.beforeExit.length===0&&(ODe=void 0))}function NFc(){mJi("exit")}function DFc(){mJi("beforeExit")}function mJi(e){for(let t of _4[e]){let r=t.deref(),n=t.fn;r!==void 0&&n(r,e)}_4[e]=[]}function kFc(e){for(let t of["exit","beforeExit"]){let r=_4[t].indexOf(e);_4[t].splice(r,r+1),hJi(t)}}function CJi(e,t,r){if(t===void 0)throw new Error("the object can't be undefined");RFc(e);let n=new WeakRef(t);n.fn=r,TFc(),ODe.register(t,n),_4[e].push(n)}function xFc(e,t){CJi("exit",e,t)}function GFc(e,t){CJi("beforeExit",e,t)}function FFc(e){if(ODe!==void 0){ODe.unregister(e);for(let t of["exit","beforeExit"])_4[t]=_4[t].filter(r=>{let n=r.deref();return n&&n!==e}),hJi(t)}}_Ji.exports={register:xFc,registerBeforeExit:GFc,unregister:FFc}});var DJi=H((D9r,k9r)=>{(function(e,t){typeof D9r=="object"&&typeof k9r<"u"?k9r.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.uniqolor=t())})(D9r,function(){"use strict";function e(Se,De){var k=Se==null?null:typeof Symbol<"u"&&Se[Symbol.iterator]||Se["@@iterator"];if(k!=null){var et,ct,Me,je,St=[],At=!0,Yt=!1;try{if(Me=(k=k.call(Se)).next,De===0){if(Object(k)!==k)return;At=!1}else for(;!(At=(et=Me.call(k)).done)&&(St.push(et.value),St.length!==De);At=!0);}catch(Tr){Yt=!0,ct=Tr}finally{try{if(!At&&k.return!=null&&(je=k.return(),Object(je)!==je))return}finally{if(Yt)throw ct}}return St}}function t(Se,De){return a(Se)||e(Se,De)||l(Se,De)||I()}function r(Se){return n(Se)||o(Se)||l(Se)||f()}function n(Se){if(Array.isArray(Se))return A(Se)}function a(Se){if(Array.isArray(Se))return Se}function o(Se){if(typeof Symbol<"u"&&Se[Symbol.iterator]!=null||Se["@@iterator"]!=null)return Array.from(Se)}function l(Se,De){if(Se){if(typeof Se=="string")return A(Se,De);var k=Object.prototype.toString.call(Se).slice(8,-1);if(k==="Object"&&Se.constructor&&(k=Se.constructor.name),k==="Map"||k==="Set")return Array.from(Se);if(k==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(k))return A(Se,De)}}function A(Se,De){(De==null||De>Se.length)&&(De=Se.length);for(var k=0,et=new Array(De);kt.trim()).join(" ")};T9i.O=function(e){return this.inspectOpts.colors=this.useColors,$1t.inspect(e,this.inspectOpts)}});var PFr=H((eVu,VFr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?VFr.exports=w9i():VFr.exports=R9i()});var D9i=H((tVu,N9i)=>{var{Transform:q_c}=wt("stream"),WFr=class extends q_c{constructor(t={}){super(t),this.host=t.host||"localhost",this.replaced=!1}_transform(t,r,n){n(null,this.replaced?t:t.toString().replace(/(\r\n[Hh]ost: )\S+/,(a,o)=>(this.replaced=!0,o+this.host)))}};N9i.exports=WFr});var G9i=H((nVu,x9i)=>{var{EventEmitter:$_c}=wt("events"),Bj=PFr()("localtunnel:client"),OFr=wt("fs"),k9i=wt("net"),e0c=wt("tls"),t0c=D9i();x9i.exports=class extends $_c{constructor(t={}){super(t),this.opts=t}open(){let t=this.opts,r=t.remote_ip||t.remote_host,n=t.remote_port,a=t.local_host||"localhost",o=t.local_port,l=t.local_https?"https":"http",A=t.allow_invalid_cert;Bj("establishing tunnel %s://%s:%s <> %s:%s",l,a,o,r,n);let f=k9i.connect({host:r,port:n});f.setKeepAlive(!0),f.on("error",C=>{Bj("got remote connection error",C.message),C.code==="ECONNREFUSED"&&this.emit("error",new Error(`connection refused: ${r}:${n} (check your firewall settings)`)),f.end()});let I=()=>{if(f.destroyed){Bj("remote destroyed"),this.emit("dead");return}Bj("connecting locally to %s://%s:%d",l,a,o),f.pause(),A&&Bj("allowing invalid certificates");let C=()=>A?{rejectUnauthorized:!1}:{cert:OFr.readFileSync(t.local_cert),key:OFr.readFileSync(t.local_key),ca:t.local_ca?[OFr.readFileSync(t.local_ca)]:void 0},b=t.local_https?e0c.connect({host:a,port:o,...C()}):k9i.connect({host:a,port:o}),E=()=>{Bj("remote close"),this.emit("dead"),b.end()};f.once("close",E),b.once("error",N=>{if(Bj("local error %s",N.message),b.end(),f.removeListener("close",E),N.code!=="ECONNREFUSED")return f.end();setTimeout(I,1e3)}),b.once("connect",()=>{Bj("connected locally"),f.resume();let N=f;t.local_host&&(Bj("transform Host header to %s",t.local_host),N=f.pipe(new t0c({host:t.local_host}))),N.pipe(b).pipe(f),b.once("close",B=>{Bj("local connection closed [%s]",B)})})};f.on("data",C=>{let b=C.toString().match(/^(\w+) (\S+)/);b&&this.emit("request",{method:b[1],path:b[2]})}),f.once("connect",()=>{this.emit("open",f),I()})}}});var L9i=H((sVu,Z9i)=>{var{parse:r0c}=wt("url"),{EventEmitter:F9i}=wt("events"),n0c=E9i(),oKe=PFr()("localtunnel:client"),i0c=G9i();Z9i.exports=class extends F9i{constructor(t={}){super(t),this.opts=t,this.closed=!1,this.opts.host||(this.opts.host="https://localtunnel.me")}_getInfo(t){let{id:r,ip:n,port:a,url:o,cached_url:l,max_conn_count:A}=t,{host:f,port:I,local_host:C}=this.opts,{local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}=this.opts;return{name:r,url:o,cached_url:l,max_conn:A||1,remote_host:r0c(f).hostname,remote_ip:n,remote_port:a,local_port:I,local_host:C,local_https:b,local_cert:E,local_key:N,local_ca:B,allow_invalid_cert:F}}_init(t){let r=this.opts,n=this._getInfo.bind(this),a={responseType:"json"},o=`${r.host}/`,l=r.subdomain,A=o+(l||"?new");(function f(){n0c.get(A,a).then(I=>{let C=I.data;if(oKe("got tunnel information",I.data),I.status!==200){let b=new Error(C&&C.message||"localtunnel server returned an error, please try again");return t(b)}t(null,n(C))}).catch(I=>(oKe(`tunnel server offline: ${I.message}, retry 1s`),setTimeout(f,1e3)))})()}_establish(t){this.setMaxListeners(t.max_conn+(F9i.defaultMaxListeners||10)),this.tunnelCluster=new i0c(t),this.tunnelCluster.once("open",()=>{this.emit("url",t.url)}),this.tunnelCluster.on("error",n=>{oKe("got socket error",n.message),this.emit("error",n)});let r=0;this.tunnelCluster.on("open",n=>{r++,oKe("tunnel open [total: %d]",r);let a=()=>{n.destroy()};if(this.closed)return a();this.once("close",a),n.once("close",()=>{this.removeListener("close",a)})}),this.tunnelCluster.on("dead",()=>{r--,oKe("tunnel dead [total: %d]",r),!this.closed&&this.tunnelCluster.open()}),this.tunnelCluster.on("request",n=>{this.emit("request",n)});for(let n=0;n{if(r)return t(r);this.clientId=n.name,this.url=n.url,n.cached_url&&(this.cachedUrl=n.cached_url),this._establish(n),t()})}close(){this.closed=!0,this.emit("close")}}});var P9i=H((oVu,V9i)=>{var s0c=L9i();V9i.exports=function(t,r,n){let a=typeof t=="object"?t:{...r,port:t},o=typeof t=="object"?r:n,l=new s0c(a);return o?(l.open(A=>A?o(A):o(null,l)),l):new Promise((A,f)=>l.open(I=>I?f(I):A(l)))}});var lVi=H(cVi=>{"use strict";Object.defineProperty(cVi,"__esModule",{value:!0})});var gVi=H(uVi=>{"use strict";Object.defineProperty(uVi,"__esModule",{value:!0})});var AVi=H(AKe=>{"use strict";Object.defineProperty(AKe,"__esModule",{value:!0});AKe.SeverityNumber=void 0;var w0c;(function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.TRACE=1]="TRACE",e[e.TRACE2=2]="TRACE2",e[e.TRACE3=3]="TRACE3",e[e.TRACE4=4]="TRACE4",e[e.DEBUG=5]="DEBUG",e[e.DEBUG2=6]="DEBUG2",e[e.DEBUG3=7]="DEBUG3",e[e.DEBUG4=8]="DEBUG4",e[e.INFO=9]="INFO",e[e.INFO2=10]="INFO2",e[e.INFO3=11]="INFO3",e[e.INFO4=12]="INFO4",e[e.WARN=13]="WARN",e[e.WARN2=14]="WARN2",e[e.WARN3=15]="WARN3",e[e.WARN4=16]="WARN4",e[e.ERROR=17]="ERROR",e[e.ERROR2=18]="ERROR2",e[e.ERROR3=19]="ERROR3",e[e.ERROR4=20]="ERROR4",e[e.FATAL=21]="FATAL",e[e.FATAL2=22]="FATAL2",e[e.FATAL3=23]="FATAL3",e[e.FATAL4=24]="FATAL4"})(w0c=AKe.SeverityNumber||(AKe.SeverityNumber={}))});var pVi=H(dVi=>{"use strict";Object.defineProperty(dVi,"__esModule",{value:!0})});var QFr=H(CDe=>{"use strict";Object.defineProperty(CDe,"__esModule",{value:!0});CDe.NOOP_LOGGER=CDe.NoopLogger=void 0;var a2t=class{emit(t){}};CDe.NoopLogger=a2t;CDe.NOOP_LOGGER=new a2t});var XFr=H(_De=>{"use strict";Object.defineProperty(_De,"__esModule",{value:!0});_De.NOOP_LOGGER_PROVIDER=_De.NoopLoggerProvider=void 0;var T0c=QFr(),c2t=class{getLogger(t,r,n){return new T0c.NoopLogger}};_De.NoopLoggerProvider=c2t;_De.NOOP_LOGGER_PROVIDER=new c2t});var fVi=H(l2t=>{"use strict";Object.defineProperty(l2t,"__esModule",{value:!0});l2t._globalThis=void 0;l2t._globalThis=typeof globalThis=="object"?globalThis:global});var IVi=H(TCe=>{"use strict";var R0c=TCe&&TCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),N0c=TCe&&TCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&R0c(t,e,r)};Object.defineProperty(TCe,"__esModule",{value:!0});N0c(fVi(),TCe)});var hVi=H(RCe=>{"use strict";var D0c=RCe&&RCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),k0c=RCe&&RCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&D0c(t,e,r)};Object.defineProperty(RCe,"__esModule",{value:!0});k0c(IVi(),RCe)});var mVi=H(wj=>{"use strict";Object.defineProperty(wj,"__esModule",{value:!0});wj.API_BACKWARDS_COMPATIBILITY_VERSION=wj.makeGetter=wj._global=wj.GLOBAL_LOGS_API_KEY=void 0;var x0c=hVi();wj.GLOBAL_LOGS_API_KEY=Symbol.for("io.opentelemetry.js.api.logs");wj._global=x0c._globalThis;function G0c(e,t,r){return n=>n===e?t:r}wj.makeGetter=G0c;wj.API_BACKWARDS_COMPATIBILITY_VERSION=1});var _Vi=H(u2t=>{"use strict";Object.defineProperty(u2t,"__esModule",{value:!0});u2t.LogsAPI=void 0;var gH=mVi(),CVi=XFr(),JFr=class e{constructor(){}static getInstance(){return this._instance||(this._instance=new e),this._instance}setGlobalLoggerProvider(t){return gH._global[gH.GLOBAL_LOGS_API_KEY]?this.getLoggerProvider():(gH._global[gH.GLOBAL_LOGS_API_KEY]=(0,gH.makeGetter)(gH.API_BACKWARDS_COMPATIBILITY_VERSION,t,CVi.NOOP_LOGGER_PROVIDER),t)}getLoggerProvider(){var t,r;return(r=(t=gH._global[gH.GLOBAL_LOGS_API_KEY])===null||t===void 0?void 0:t.call(gH._global,gH.API_BACKWARDS_COMPATIBILITY_VERSION))!==null&&r!==void 0?r:CVi.NOOP_LOGGER_PROVIDER}getLogger(t,r,n){return this.getLoggerProvider().getLogger(t,r,n)}disable(){delete gH._global[gH.GLOBAL_LOGS_API_KEY]}};u2t.LogsAPI=JFr});var bDe=H(wV=>{"use strict";var F0c=wV&&wV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yDe=wV&&wV.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&F0c(t,e,r)};Object.defineProperty(wV,"__esModule",{value:!0});wV.logs=void 0;yDe(lVi(),wV);yDe(gVi(),wV);yDe(AVi(),wV);yDe(pVi(),wV);yDe(QFr(),wV);yDe(XFr(),wV);var Z0c=_Vi();wV.logs=Z0c.LogsAPI.getInstance()});var yVi,bVi=bc(()=>{yVi=typeof globalThis=="object"?globalThis:global});var EVi=bc(()=>{bVi()});var SVi=bc(()=>{EVi()});var Uee,UFr=bc(()=>{Uee="1.9.0"});function L0c(e){var t=new Set([e]),r=new Set,n=e.match(vVi);if(!n)return function(){return!1};var a={major:+n[1],minor:+n[2],patch:+n[3],prerelease:n[4]};if(a.prerelease!=null)return function(f){return f===e};function o(A){return r.add(A),!1}function l(A){return t.add(A),!0}return function(f){if(t.has(f))return!0;if(r.has(f))return!1;var I=f.match(vVi);if(!I)return o(f);var C={major:+I[1],minor:+I[2],patch:+I[3],prerelease:I[4]};return C.prerelease!=null||a.major!==C.major?o(f):a.major===0?a.minor===C.minor&&a.patch<=C.patch?l(f):o(f):a.minor<=C.minor?l(f):o(f)}}var vVi,BVi,wVi=bc(()=>{UFr();vVi=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;BVi=L0c(Uee)});function Tj(e,t,r,n){var a;n===void 0&&(n=!1);var o=pKe[dKe]=(a=pKe[dKe])!==null&&a!==void 0?a:{version:Uee};if(!n&&o[e]){var l=new Error("@opentelemetry/api: Attempted duplicate registration of API: "+e);return r.error(l.stack||l.message),!1}if(o.version!==Uee){var l=new Error("@opentelemetry/api: Registration of version v"+o.version+" for "+e+" does not match previously registered API v"+Uee);return r.error(l.stack||l.message),!1}return o[e]=t,r.debug("@opentelemetry/api: Registered a global for "+e+" v"+Uee+"."),!0}function bO(e){var t,r,n=(t=pKe[dKe])===null||t===void 0?void 0:t.version;if(!(!n||!BVi(n)))return(r=pKe[dKe])===null||r===void 0?void 0:r[e]}function Rj(e,t){t.debug("@opentelemetry/api: Unregistering a global for "+e+" v"+Uee+".");var r=pKe[dKe];r&&delete r[e]}var V0c,dKe,pKe,NCe=bc(()=>{SVi();UFr();wVi();V0c=Uee.split(".")[0],dKe=Symbol.for("opentelemetry.js.api."+V0c),pKe=yVi});function fKe(e,t,r){var n=bO("diag");if(n)return r.unshift(t),n[e].apply(n,W0c([],P0c(r),!1))}var P0c,W0c,TVi,RVi=bc(()=>{NCe();P0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},W0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.ERROR=30]="ERROR",e[e.WARN=50]="WARN",e[e.INFO=60]="INFO",e[e.DEBUG=70]="DEBUG",e[e.VERBOSE=80]="VERBOSE",e[e.ALL=9999]="ALL"})(jk||(jk={}))});function NVi(e,t){ejk.ALL&&(e=jk.ALL),t=t||{};function r(n,a){var o=t[n];return typeof o=="function"&&e>=a?o.bind(t):function(){}}return{error:r("error",jk.ERROR),warn:r("warn",jk.WARN),info:r("info",jk.INFO),debug:r("debug",jk.DEBUG),verbose:r("verbose",jk.VERBOSE)}}var DVi=bc(()=>{g2t()});var O0c,M0c,H0c,VG,DCe=bc(()=>{RVi();DVi();g2t();NCe();O0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},M0c=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n";C.warn("Current logger will be overwritten from "+E),b.warn("Current logger will overwrite one already registered from "+E)}return Tj("diag",b,r,!0)};r.setLogger=n,r.disable=function(){Rj(H0c,r)},r.createComponentLogger=function(a){return new TVi(a)},r.verbose=t("verbose"),r.debug=t("debug"),r.info=t("info"),r.warn=t("warn"),r.error=t("error")}return e.instance=function(){return this._instance||(this._instance=new e),this._instance},e}()});var Y0c,Q0c,kVi,xVi=bc(()=>{Y0c=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Q0c=function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},kVi=function(){function e(t){this._entries=t?new Map(t):new Map}return e.prototype.getEntry=function(t){var r=this._entries.get(t);if(r)return Object.assign({},r)},e.prototype.getAllEntries=function(){return Array.from(this._entries.entries()).map(function(t){var r=Y0c(t,2),n=r[0],a=r[1];return[n,a]})},e.prototype.setEntry=function(t,r){var n=new e(this._entries);return n._entries.set(t,r),n},e.prototype.removeEntry=function(t){var r=new e(this._entries);return r._entries.delete(t),r},e.prototype.removeEntries=function(){for(var t,r,n=[],a=0;a{GVi=Symbol("BaggageEntryMetadata")});function ZVi(e){return e===void 0&&(e={}),new kVi(new Map(Object.entries(e)))}function LVi(e){return typeof e!="string"&&(X0c.error("Cannot create baggage metadata from unknown type: "+typeof e),e=""),{__TYPE__:GVi,toString:function(){return e}}}var X0c,KFr=bc(()=>{DCe();xVi();FVi();X0c=VG.instance()});function EDe(e){return Symbol.for(e)}var J0c,A2t,IKe=bc(()=>{J0c=function(){function e(t){var r=this;r._currentContext=t?new Map(t):new Map,r.getValue=function(n){return r._currentContext.get(n)},r.setValue=function(n,a){var o=new e(r._currentContext);return o._currentContext.set(n,a),o},r.deleteValue=function(n){var a=new e(r._currentContext);return a._currentContext.delete(n),a}}return e}(),A2t=new J0c});var jFr,VVi,PVi=bc(()=>{jFr=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}],VVi=function(){function e(){function t(n){return function(){for(var a=[],o=0;o{kCe=function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),U0c=function(){function e(){}return e.prototype.createGauge=function(t,r){return nyc},e.prototype.createHistogram=function(t,r){return iyc},e.prototype.createCounter=function(t,r){return ryc},e.prototype.createUpDownCounter=function(t,r){return syc},e.prototype.createObservableGauge=function(t,r){return ayc},e.prototype.createObservableCounter=function(t,r){return oyc},e.prototype.createObservableUpDownCounter=function(t,r){return cyc},e.prototype.addBatchObservableCallback=function(t,r){},e.prototype.removeBatchObservableCallback=function(t){},e}(),d2t=function(){function e(){}return e}(),K0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),j0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.add=function(r,n){},t}(d2t),z0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),q0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.record=function(r,n){},t}(d2t),zFr=function(){function e(){}return e.prototype.addCallback=function(t){},e.prototype.removeCallback=function(t){},e}(),$0c=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),eyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),tyc=function(e){kCe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(zFr),qFr=new U0c,ryc=new K0c,nyc=new z0c,iyc=new q0c,syc=new j0c,oyc=new $0c,ayc=new eyc,cyc=new tyc});var p2t,OVi=bc(()=>{(function(e){e[e.INT=0]="INT",e[e.DOUBLE=1]="DOUBLE"})(p2t||(p2t={}))});var f2t,I2t,eZr=bc(()=>{f2t={get:function(e,t){if(e!=null)return e[t]},keys:function(e){return e==null?[]:Object.keys(e)}},I2t={set:function(e,t,r){e!=null&&(e[t]=r)}}});var lyc,uyc,MVi,HVi=bc(()=>{IKe();lyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},uyc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{HVi();NCe();DCe();gyc=function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ayc=function(e,t,r){if(r||arguments.length===2)for(var n=0,a=t.length,o;n{(function(e){e[e.NONE=0]="NONE",e[e.SAMPLED=1]="SAMPLED"})(SDe||(SDe={}))});var mKe,CKe,h2t,m2t=bc(()=>{rZr();mKe="0000000000000000",CKe="00000000000000000000000000000000",h2t={traceId:CKe,spanId:mKe,traceFlags:SDe.NONE}});var Oce,C2t=bc(()=>{m2t();Oce=function(){function e(t){t===void 0&&(t=h2t),this._spanContext=t}return e.prototype.spanContext=function(){return this._spanContext},e.prototype.setAttribute=function(t,r){return this},e.prototype.setAttributes=function(t){return this},e.prototype.addEvent=function(t,r){return this},e.prototype.addLink=function(t){return this},e.prototype.addLinks=function(t){return this},e.prototype.setStatus=function(t){return this},e.prototype.updateName=function(t){return this},e.prototype.end=function(t){},e.prototype.isRecording=function(){return!1},e.prototype.recordException=function(t,r){},e}()});function _2t(e){return e.getValue(nZr)||void 0}function YVi(){return _2t(Wce.getInstance().active())}function _Ke(e,t){return e.setValue(nZr,t)}function QVi(e){return e.deleteValue(nZr)}function XVi(e,t){return _Ke(e,new Oce(t))}function y2t(e){var t;return(t=_2t(e))===null||t===void 0?void 0:t.spanContext()}var nZr,iZr=bc(()=>{IKe();C2t();hKe();nZr=EDe("OpenTelemetry Context Key SPAN")});function sZr(e){return pyc.test(e)&&e!==CKe}function oZr(e){return fyc.test(e)&&e!==mKe}function vDe(e){return sZr(e.traceId)&&oZr(e.spanId)}function JVi(e){return new Oce(e)}var pyc,fyc,b2t=bc(()=>{m2t();C2t();pyc=/^([0-9a-f]{32})$/i,fyc=/^[0-9a-f]{16}$/i});function Iyc(e){return typeof e=="object"&&typeof e.spanId=="string"&&typeof e.traceId=="string"&&typeof e.traceFlags=="number"}var aZr,E2t,cZr=bc(()=>{hKe();iZr();C2t();b2t();aZr=Wce.getInstance(),E2t=function(){function e(){}return e.prototype.startSpan=function(t,r,n){n===void 0&&(n=aZr.active());var a=!!r?.root;if(a)return new Oce;var o=n&&y2t(n);return Iyc(o)&&vDe(o)?new Oce(o):new Oce},e.prototype.startActiveSpan=function(t,r,n,a){var o,l,A;if(!(arguments.length<2)){arguments.length===2?A=r:arguments.length===3?(o=r,A=n):(o=r,l=n,A=a);var f=l??aZr.active(),I=this.startSpan(t,o,f),C=_Ke(f,I);return aZr.with(C,A,void 0,I)}},e}()});var hyc,S2t,lZr=bc(()=>{cZr();hyc=new E2t,S2t=function(){function e(t,r,n,a){this._provider=t,this.name=r,this.version=n,this.options=a}return e.prototype.startSpan=function(t,r,n){return this._getTracer().startSpan(t,r,n)},e.prototype.startActiveSpan=function(t,r,n,a){var o=this._getTracer();return Reflect.apply(o.startActiveSpan,o,arguments)},e.prototype._getTracer=function(){if(this._delegate)return this._delegate;var t=this._provider.getDelegateTracer(this.name,this.version,this.options);return t?(this._delegate=t,this._delegate):hyc},e}()});var UVi,KVi=bc(()=>{cZr();UVi=function(){function e(){}return e.prototype.getTracer=function(t,r,n){return new E2t},e}()});var myc,yKe,uZr=bc(()=>{lZr();KVi();myc=new UVi,yKe=function(){function e(){}return e.prototype.getTracer=function(t,r,n){var a;return(a=this.getDelegateTracer(t,r,n))!==null&&a!==void 0?a:new S2t(this,t,r,n)},e.prototype.getDelegate=function(){var t;return(t=this._delegate)!==null&&t!==void 0?t:myc},e.prototype.setDelegate=function(t){this._delegate=t},e.prototype.getDelegateTracer=function(t,r,n){var a;return(a=this._delegate)===null||a===void 0?void 0:a.getTracer(t,r,n)},e}()});var v2t,jVi=bc(()=>{(function(e){e[e.NOT_RECORD=0]="NOT_RECORD",e[e.RECORD=1]="RECORD",e[e.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"})(v2t||(v2t={}))});var B2t,zVi=bc(()=>{(function(e){e[e.INTERNAL=0]="INTERNAL",e[e.SERVER=1]="SERVER",e[e.CLIENT=2]="CLIENT",e[e.PRODUCER=3]="PRODUCER",e[e.CONSUMER=4]="CONSUMER"})(B2t||(B2t={}))});var w2t,qVi=bc(()=>{(function(e){e[e.UNSET=0]="UNSET",e[e.OK=1]="OK",e[e.ERROR=2]="ERROR"})(w2t||(w2t={}))});function $Vi(e){return yyc.test(e)}function ePi(e){return byc.test(e)&&!Eyc.test(e)}var gZr,Cyc,_yc,yyc,byc,Eyc,tPi=bc(()=>{gZr="[_0-9a-z-*/]",Cyc="[a-z]"+gZr+"{0,255}",_yc="[a-z0-9]"+gZr+"{0,240}@[a-z]"+gZr+"{0,13}",yyc=new RegExp("^(?:"+Cyc+"|"+_yc+")$"),byc=/^[ -~]{0,255}[!-~]$/,Eyc=/,|=/});var rPi,Syc,nPi,iPi,sPi,oPi=bc(()=>{tPi();rPi=32,Syc=512,nPi=",",iPi="=",sPi=function(){function e(t){this._internalState=new Map,t&&this._parse(t)}return e.prototype.set=function(t,r){var n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n},e.prototype.unset=function(t){var r=this._clone();return r._internalState.delete(t),r},e.prototype.get=function(t){return this._internalState.get(t)},e.prototype.serialize=function(){var t=this;return this._keys().reduce(function(r,n){return r.push(n+iPi+t.get(n)),r},[]).join(nPi)},e.prototype._parse=function(t){t.length>Syc||(this._internalState=t.split(nPi).reverse().reduce(function(r,n){var a=n.trim(),o=a.indexOf(iPi);if(o!==-1){var l=a.slice(0,o),A=a.slice(o+1,n.length);$Vi(l)&&ePi(A)&&r.set(l,A)}return r},new Map),this._internalState.size>rPi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,rPi))))},e.prototype._keys=function(){return Array.from(this._internalState.keys()).reverse()},e.prototype._clone=function(){var t=new e;return t._internalState=new Map(this._internalState),t},e}()});function aPi(e){return new sPi(e)}var cPi=bc(()=>{oPi()});var AZr,lPi=bc(()=>{hKe();AZr=Wce.getInstance()});var dZr,uPi=bc(()=>{DCe();dZr=VG.instance()});var vyc,gPi,APi=bc(()=>{$Fr();vyc=function(){function e(){}return e.prototype.getMeter=function(t,r,n){return qFr},e}(),gPi=new vyc});var pZr,dPi,pPi=bc(()=>{APi();NCe();DCe();pZr="metrics",dPi=function(){function e(){}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalMeterProvider=function(t){return Tj(pZr,t,VG.instance())},e.prototype.getMeterProvider=function(){return bO(pZr)||gPi},e.prototype.getMeter=function(t,r,n){return this.getMeterProvider().getMeter(t,r,n)},e.prototype.disable=function(){Rj(pZr,VG.instance())},e}()});var fZr,fPi=bc(()=>{pPi();fZr=dPi.getInstance()});var IPi,hPi=bc(()=>{IPi=function(){function e(){}return e.prototype.inject=function(t,r){},e.prototype.extract=function(t,r){return t},e.prototype.fields=function(){return[]},e}()});function hZr(e){return e.getValue(IZr)||void 0}function mPi(){return hZr(Wce.getInstance().active())}function CPi(e,t){return e.setValue(IZr,t)}function _Pi(e){return e.deleteValue(IZr)}var IZr,yPi=bc(()=>{hKe();IKe();IZr=EDe("OpenTelemetry Baggage Key")});var mZr,Byc,bPi,EPi=bc(()=>{NCe();hPi();eZr();yPi();KFr();DCe();mZr="propagation",Byc=new IPi,bPi=function(){function e(){this.createBaggage=ZVi,this.getBaggage=hZr,this.getActiveBaggage=mPi,this.setBaggage=CPi,this.deleteBaggage=_Pi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalPropagator=function(t){return Tj(mZr,t,VG.instance())},e.prototype.inject=function(t,r,n){return n===void 0&&(n=I2t),this._getGlobalPropagator().inject(t,r,n)},e.prototype.extract=function(t,r,n){return n===void 0&&(n=f2t),this._getGlobalPropagator().extract(t,r,n)},e.prototype.fields=function(){return this._getGlobalPropagator().fields()},e.prototype.disable=function(){Rj(mZr,VG.instance())},e.prototype._getGlobalPropagator=function(){return bO(mZr)||Byc},e}()});var CZr,SPi=bc(()=>{EPi();CZr=bPi.getInstance()});var _Zr,vPi,BPi=bc(()=>{NCe();uZr();b2t();iZr();DCe();_Zr="trace",vPi=function(){function e(){this._proxyTracerProvider=new yKe,this.wrapSpanContext=JVi,this.isSpanContextValid=vDe,this.deleteSpan=QVi,this.getSpan=_2t,this.getActiveSpan=YVi,this.getSpanContext=y2t,this.setSpan=_Ke,this.setSpanContext=XVi}return e.getInstance=function(){return this._instance||(this._instance=new e),this._instance},e.prototype.setGlobalTracerProvider=function(t){var r=Tj(_Zr,this._proxyTracerProvider,VG.instance());return r&&this._proxyTracerProvider.setDelegate(t),r},e.prototype.getTracerProvider=function(){return bO(_Zr)||this._proxyTracerProvider},e.prototype.getTracer=function(t,r){return this.getTracerProvider().getTracer(t,r)},e.prototype.disable=function(){Rj(_Zr,VG.instance()),this._proxyTracerProvider=new yKe},e}()});var yZr,wPi=bc(()=>{BPi();yZr=vPi.getInstance()});var xI={};sI(xI,{DiagConsoleLogger:()=>VVi,DiagLogLevel:()=>jk,INVALID_SPANID:()=>mKe,INVALID_SPAN_CONTEXT:()=>h2t,INVALID_TRACEID:()=>CKe,ProxyTracer:()=>S2t,ProxyTracerProvider:()=>yKe,ROOT_CONTEXT:()=>A2t,SamplingDecision:()=>v2t,SpanKind:()=>B2t,SpanStatusCode:()=>w2t,TraceFlags:()=>SDe,ValueType:()=>p2t,baggageEntryMetadataFromString:()=>LVi,context:()=>AZr,createContextKey:()=>EDe,createNoopMeter:()=>WVi,createTraceState:()=>aPi,default:()=>wyc,defaultTextMapGetter:()=>f2t,defaultTextMapSetter:()=>I2t,diag:()=>dZr,isSpanContextValid:()=>vDe,isValidSpanId:()=>oZr,isValidTraceId:()=>sZr,metrics:()=>fZr,propagation:()=>CZr,trace:()=>yZr});var wyc,GI=bc(()=>{KFr();IKe();PVi();g2t();$Fr();OVi();eZr();lZr();uZr();jVi();zVi();qVi();rZr();cPi();b2t();m2t();lPi();uPi();fPi();SPi();wPi();wyc={context:AZr,diag:dZr,metrics:fZr,propagation:CZr,trace:yZr}});var TPi=H(K0=>{"use strict";Object.defineProperty(K0,"__esModule",{value:!0});K0.MessageTypeValues=K0.RpcGrpcStatusCodeValues=K0.MessagingOperationValues=K0.MessagingDestinationKindValues=K0.HttpFlavorValues=K0.NetHostConnectionSubtypeValues=K0.NetHostConnectionTypeValues=K0.NetTransportValues=K0.FaasInvokedProviderValues=K0.FaasDocumentOperationValues=K0.FaasTriggerValues=K0.DbCassandraConsistencyLevelValues=K0.DbSystemValues=K0.SemanticAttributes=void 0;K0.SemanticAttributes={AWS_LAMBDA_INVOKED_ARN:"aws.lambda.invoked_arn",DB_SYSTEM:"db.system",DB_CONNECTION_STRING:"db.connection_string",DB_USER:"db.user",DB_JDBC_DRIVER_CLASSNAME:"db.jdbc.driver_classname",DB_NAME:"db.name",DB_STATEMENT:"db.statement",DB_OPERATION:"db.operation",DB_MSSQL_INSTANCE_NAME:"db.mssql.instance_name",DB_CASSANDRA_KEYSPACE:"db.cassandra.keyspace",DB_CASSANDRA_PAGE_SIZE:"db.cassandra.page_size",DB_CASSANDRA_CONSISTENCY_LEVEL:"db.cassandra.consistency_level",DB_CASSANDRA_TABLE:"db.cassandra.table",DB_CASSANDRA_IDEMPOTENCE:"db.cassandra.idempotence",DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:"db.cassandra.speculative_execution_count",DB_CASSANDRA_COORDINATOR_ID:"db.cassandra.coordinator.id",DB_CASSANDRA_COORDINATOR_DC:"db.cassandra.coordinator.dc",DB_HBASE_NAMESPACE:"db.hbase.namespace",DB_REDIS_DATABASE_INDEX:"db.redis.database_index",DB_MONGODB_COLLECTION:"db.mongodb.collection",DB_SQL_TABLE:"db.sql.table",EXCEPTION_TYPE:"exception.type",EXCEPTION_MESSAGE:"exception.message",EXCEPTION_STACKTRACE:"exception.stacktrace",EXCEPTION_ESCAPED:"exception.escaped",FAAS_TRIGGER:"faas.trigger",FAAS_EXECUTION:"faas.execution",FAAS_DOCUMENT_COLLECTION:"faas.document.collection",FAAS_DOCUMENT_OPERATION:"faas.document.operation",FAAS_DOCUMENT_TIME:"faas.document.time",FAAS_DOCUMENT_NAME:"faas.document.name",FAAS_TIME:"faas.time",FAAS_CRON:"faas.cron",FAAS_COLDSTART:"faas.coldstart",FAAS_INVOKED_NAME:"faas.invoked_name",FAAS_INVOKED_PROVIDER:"faas.invoked_provider",FAAS_INVOKED_REGION:"faas.invoked_region",NET_TRANSPORT:"net.transport",NET_PEER_IP:"net.peer.ip",NET_PEER_PORT:"net.peer.port",NET_PEER_NAME:"net.peer.name",NET_HOST_IP:"net.host.ip",NET_HOST_PORT:"net.host.port",NET_HOST_NAME:"net.host.name",NET_HOST_CONNECTION_TYPE:"net.host.connection.type",NET_HOST_CONNECTION_SUBTYPE:"net.host.connection.subtype",NET_HOST_CARRIER_NAME:"net.host.carrier.name",NET_HOST_CARRIER_MCC:"net.host.carrier.mcc",NET_HOST_CARRIER_MNC:"net.host.carrier.mnc",NET_HOST_CARRIER_ICC:"net.host.carrier.icc",PEER_SERVICE:"peer.service",ENDUSER_ID:"enduser.id",ENDUSER_ROLE:"enduser.role",ENDUSER_SCOPE:"enduser.scope",THREAD_ID:"thread.id",THREAD_NAME:"thread.name",CODE_FUNCTION:"code.function",CODE_NAMESPACE:"code.namespace",CODE_FILEPATH:"code.filepath",CODE_LINENO:"code.lineno",HTTP_METHOD:"http.method",HTTP_URL:"http.url",HTTP_TARGET:"http.target",HTTP_HOST:"http.host",HTTP_SCHEME:"http.scheme",HTTP_STATUS_CODE:"http.status_code",HTTP_FLAVOR:"http.flavor",HTTP_USER_AGENT:"http.user_agent",HTTP_REQUEST_CONTENT_LENGTH:"http.request_content_length",HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:"http.request_content_length_uncompressed",HTTP_RESPONSE_CONTENT_LENGTH:"http.response_content_length",HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:"http.response_content_length_uncompressed",HTTP_SERVER_NAME:"http.server_name",HTTP_ROUTE:"http.route",HTTP_CLIENT_IP:"http.client_ip",AWS_DYNAMODB_TABLE_NAMES:"aws.dynamodb.table_names",AWS_DYNAMODB_CONSUMED_CAPACITY:"aws.dynamodb.consumed_capacity",AWS_DYNAMODB_ITEM_COLLECTION_METRICS:"aws.dynamodb.item_collection_metrics",AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:"aws.dynamodb.provisioned_read_capacity",AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:"aws.dynamodb.provisioned_write_capacity",AWS_DYNAMODB_CONSISTENT_READ:"aws.dynamodb.consistent_read",AWS_DYNAMODB_PROJECTION:"aws.dynamodb.projection",AWS_DYNAMODB_LIMIT:"aws.dynamodb.limit",AWS_DYNAMODB_ATTRIBUTES_TO_GET:"aws.dynamodb.attributes_to_get",AWS_DYNAMODB_INDEX_NAME:"aws.dynamodb.index_name",AWS_DYNAMODB_SELECT:"aws.dynamodb.select",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:"aws.dynamodb.global_secondary_indexes",AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:"aws.dynamodb.local_secondary_indexes",AWS_DYNAMODB_EXCLUSIVE_START_TABLE:"aws.dynamodb.exclusive_start_table",AWS_DYNAMODB_TABLE_COUNT:"aws.dynamodb.table_count",AWS_DYNAMODB_SCAN_FORWARD:"aws.dynamodb.scan_forward",AWS_DYNAMODB_SEGMENT:"aws.dynamodb.segment",AWS_DYNAMODB_TOTAL_SEGMENTS:"aws.dynamodb.total_segments",AWS_DYNAMODB_COUNT:"aws.dynamodb.count",AWS_DYNAMODB_SCANNED_COUNT:"aws.dynamodb.scanned_count",AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:"aws.dynamodb.attribute_definitions",AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:"aws.dynamodb.global_secondary_index_updates",MESSAGING_SYSTEM:"messaging.system",MESSAGING_DESTINATION:"messaging.destination",MESSAGING_DESTINATION_KIND:"messaging.destination_kind",MESSAGING_TEMP_DESTINATION:"messaging.temp_destination",MESSAGING_PROTOCOL:"messaging.protocol",MESSAGING_PROTOCOL_VERSION:"messaging.protocol_version",MESSAGING_URL:"messaging.url",MESSAGING_MESSAGE_ID:"messaging.message_id",MESSAGING_CONVERSATION_ID:"messaging.conversation_id",MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:"messaging.message_payload_size_bytes",MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:"messaging.message_payload_compressed_size_bytes",MESSAGING_OPERATION:"messaging.operation",MESSAGING_CONSUMER_ID:"messaging.consumer_id",MESSAGING_RABBITMQ_ROUTING_KEY:"messaging.rabbitmq.routing_key",MESSAGING_KAFKA_MESSAGE_KEY:"messaging.kafka.message_key",MESSAGING_KAFKA_CONSUMER_GROUP:"messaging.kafka.consumer_group",MESSAGING_KAFKA_CLIENT_ID:"messaging.kafka.client_id",MESSAGING_KAFKA_PARTITION:"messaging.kafka.partition",MESSAGING_KAFKA_TOMBSTONE:"messaging.kafka.tombstone",RPC_SYSTEM:"rpc.system",RPC_SERVICE:"rpc.service",RPC_METHOD:"rpc.method",RPC_GRPC_STATUS_CODE:"rpc.grpc.status_code",RPC_JSONRPC_VERSION:"rpc.jsonrpc.version",RPC_JSONRPC_REQUEST_ID:"rpc.jsonrpc.request_id",RPC_JSONRPC_ERROR_CODE:"rpc.jsonrpc.error_code",RPC_JSONRPC_ERROR_MESSAGE:"rpc.jsonrpc.error_message",MESSAGE_TYPE:"message.type",MESSAGE_ID:"message.id",MESSAGE_COMPRESSED_SIZE:"message.compressed_size",MESSAGE_UNCOMPRESSED_SIZE:"message.uncompressed_size"};K0.DbSystemValues={OTHER_SQL:"other_sql",MSSQL:"mssql",MYSQL:"mysql",ORACLE:"oracle",DB2:"db2",POSTGRESQL:"postgresql",REDSHIFT:"redshift",HIVE:"hive",CLOUDSCAPE:"cloudscape",HSQLDB:"hsqldb",PROGRESS:"progress",MAXDB:"maxdb",HANADB:"hanadb",INGRES:"ingres",FIRSTSQL:"firstsql",EDB:"edb",CACHE:"cache",ADABAS:"adabas",FIREBIRD:"firebird",DERBY:"derby",FILEMAKER:"filemaker",INFORMIX:"informix",INSTANTDB:"instantdb",INTERBASE:"interbase",MARIADB:"mariadb",NETEZZA:"netezza",PERVASIVE:"pervasive",POINTBASE:"pointbase",SQLITE:"sqlite",SYBASE:"sybase",TERADATA:"teradata",VERTICA:"vertica",H2:"h2",COLDFUSION:"coldfusion",CASSANDRA:"cassandra",HBASE:"hbase",MONGODB:"mongodb",REDIS:"redis",COUCHBASE:"couchbase",COUCHDB:"couchdb",COSMOSDB:"cosmosdb",DYNAMODB:"dynamodb",NEO4J:"neo4j",GEODE:"geode",ELASTICSEARCH:"elasticsearch",MEMCACHED:"memcached",COCKROACHDB:"cockroachdb"};K0.DbCassandraConsistencyLevelValues={ALL:"all",EACH_QUORUM:"each_quorum",QUORUM:"quorum",LOCAL_QUORUM:"local_quorum",ONE:"one",TWO:"two",THREE:"three",LOCAL_ONE:"local_one",ANY:"any",SERIAL:"serial",LOCAL_SERIAL:"local_serial"};K0.FaasTriggerValues={DATASOURCE:"datasource",HTTP:"http",PUBSUB:"pubsub",TIMER:"timer",OTHER:"other"};K0.FaasDocumentOperationValues={INSERT:"insert",EDIT:"edit",DELETE:"delete"};K0.FaasInvokedProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};K0.NetTransportValues={IP_TCP:"ip_tcp",IP_UDP:"ip_udp",IP:"ip",UNIX:"unix",PIPE:"pipe",INPROC:"inproc",OTHER:"other"};K0.NetHostConnectionTypeValues={WIFI:"wifi",WIRED:"wired",CELL:"cell",UNAVAILABLE:"unavailable",UNKNOWN:"unknown"};K0.NetHostConnectionSubtypeValues={GPRS:"gprs",EDGE:"edge",UMTS:"umts",CDMA:"cdma",EVDO_0:"evdo_0",EVDO_A:"evdo_a",CDMA2000_1XRTT:"cdma2000_1xrtt",HSDPA:"hsdpa",HSUPA:"hsupa",HSPA:"hspa",IDEN:"iden",EVDO_B:"evdo_b",LTE:"lte",EHRPD:"ehrpd",HSPAP:"hspap",GSM:"gsm",TD_SCDMA:"td_scdma",IWLAN:"iwlan",NR:"nr",NRNSA:"nrnsa",LTE_CA:"lte_ca"};K0.HttpFlavorValues={HTTP_1_0:"1.0",HTTP_1_1:"1.1",HTTP_2_0:"2.0",SPDY:"SPDY",QUIC:"QUIC"};K0.MessagingDestinationKindValues={QUEUE:"queue",TOPIC:"topic"};K0.MessagingOperationValues={RECEIVE:"receive",PROCESS:"process"};K0.RpcGrpcStatusCodeValues={OK:0,CANCELLED:1,UNKNOWN:2,INVALID_ARGUMENT:3,DEADLINE_EXCEEDED:4,NOT_FOUND:5,ALREADY_EXISTS:6,PERMISSION_DENIED:7,RESOURCE_EXHAUSTED:8,FAILED_PRECONDITION:9,ABORTED:10,OUT_OF_RANGE:11,UNIMPLEMENTED:12,INTERNAL:13,UNAVAILABLE:14,DATA_LOSS:15,UNAUTHENTICATED:16};K0.MessageTypeValues={SENT:"SENT",RECEIVED:"RECEIVED"}});var RPi=H(xCe=>{"use strict";var Tyc=xCe&&xCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ryc=xCe&&xCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Tyc(t,e,r)};Object.defineProperty(xCe,"__esModule",{value:!0});Ryc(TPi(),xCe)});var NPi=H(PG=>{"use strict";Object.defineProperty(PG,"__esModule",{value:!0});PG.TelemetrySdkLanguageValues=PG.OsTypeValues=PG.HostArchValues=PG.AwsEcsLaunchtypeValues=PG.CloudPlatformValues=PG.CloudProviderValues=PG.SemanticResourceAttributes=void 0;PG.SemanticResourceAttributes={CLOUD_PROVIDER:"cloud.provider",CLOUD_ACCOUNT_ID:"cloud.account.id",CLOUD_REGION:"cloud.region",CLOUD_AVAILABILITY_ZONE:"cloud.availability_zone",CLOUD_PLATFORM:"cloud.platform",AWS_ECS_CONTAINER_ARN:"aws.ecs.container.arn",AWS_ECS_CLUSTER_ARN:"aws.ecs.cluster.arn",AWS_ECS_LAUNCHTYPE:"aws.ecs.launchtype",AWS_ECS_TASK_ARN:"aws.ecs.task.arn",AWS_ECS_TASK_FAMILY:"aws.ecs.task.family",AWS_ECS_TASK_REVISION:"aws.ecs.task.revision",AWS_EKS_CLUSTER_ARN:"aws.eks.cluster.arn",AWS_LOG_GROUP_NAMES:"aws.log.group.names",AWS_LOG_GROUP_ARNS:"aws.log.group.arns",AWS_LOG_STREAM_NAMES:"aws.log.stream.names",AWS_LOG_STREAM_ARNS:"aws.log.stream.arns",CONTAINER_NAME:"container.name",CONTAINER_ID:"container.id",CONTAINER_RUNTIME:"container.runtime",CONTAINER_IMAGE_NAME:"container.image.name",CONTAINER_IMAGE_TAG:"container.image.tag",DEPLOYMENT_ENVIRONMENT:"deployment.environment",DEVICE_ID:"device.id",DEVICE_MODEL_IDENTIFIER:"device.model.identifier",DEVICE_MODEL_NAME:"device.model.name",FAAS_NAME:"faas.name",FAAS_ID:"faas.id",FAAS_VERSION:"faas.version",FAAS_INSTANCE:"faas.instance",FAAS_MAX_MEMORY:"faas.max_memory",HOST_ID:"host.id",HOST_NAME:"host.name",HOST_TYPE:"host.type",HOST_ARCH:"host.arch",HOST_IMAGE_NAME:"host.image.name",HOST_IMAGE_ID:"host.image.id",HOST_IMAGE_VERSION:"host.image.version",K8S_CLUSTER_NAME:"k8s.cluster.name",K8S_NODE_NAME:"k8s.node.name",K8S_NODE_UID:"k8s.node.uid",K8S_NAMESPACE_NAME:"k8s.namespace.name",K8S_POD_UID:"k8s.pod.uid",K8S_POD_NAME:"k8s.pod.name",K8S_CONTAINER_NAME:"k8s.container.name",K8S_REPLICASET_UID:"k8s.replicaset.uid",K8S_REPLICASET_NAME:"k8s.replicaset.name",K8S_DEPLOYMENT_UID:"k8s.deployment.uid",K8S_DEPLOYMENT_NAME:"k8s.deployment.name",K8S_STATEFULSET_UID:"k8s.statefulset.uid",K8S_STATEFULSET_NAME:"k8s.statefulset.name",K8S_DAEMONSET_UID:"k8s.daemonset.uid",K8S_DAEMONSET_NAME:"k8s.daemonset.name",K8S_JOB_UID:"k8s.job.uid",K8S_JOB_NAME:"k8s.job.name",K8S_CRONJOB_UID:"k8s.cronjob.uid",K8S_CRONJOB_NAME:"k8s.cronjob.name",OS_TYPE:"os.type",OS_DESCRIPTION:"os.description",OS_NAME:"os.name",OS_VERSION:"os.version",PROCESS_PID:"process.pid",PROCESS_EXECUTABLE_NAME:"process.executable.name",PROCESS_EXECUTABLE_PATH:"process.executable.path",PROCESS_COMMAND:"process.command",PROCESS_COMMAND_LINE:"process.command_line",PROCESS_COMMAND_ARGS:"process.command_args",PROCESS_OWNER:"process.owner",PROCESS_RUNTIME_NAME:"process.runtime.name",PROCESS_RUNTIME_VERSION:"process.runtime.version",PROCESS_RUNTIME_DESCRIPTION:"process.runtime.description",SERVICE_NAME:"service.name",SERVICE_NAMESPACE:"service.namespace",SERVICE_INSTANCE_ID:"service.instance.id",SERVICE_VERSION:"service.version",TELEMETRY_SDK_NAME:"telemetry.sdk.name",TELEMETRY_SDK_LANGUAGE:"telemetry.sdk.language",TELEMETRY_SDK_VERSION:"telemetry.sdk.version",TELEMETRY_AUTO_VERSION:"telemetry.auto.version",WEBENGINE_NAME:"webengine.name",WEBENGINE_VERSION:"webengine.version",WEBENGINE_DESCRIPTION:"webengine.description"};PG.CloudProviderValues={ALIBABA_CLOUD:"alibaba_cloud",AWS:"aws",AZURE:"azure",GCP:"gcp"};PG.CloudPlatformValues={ALIBABA_CLOUD_ECS:"alibaba_cloud_ecs",ALIBABA_CLOUD_FC:"alibaba_cloud_fc",AWS_EC2:"aws_ec2",AWS_ECS:"aws_ecs",AWS_EKS:"aws_eks",AWS_LAMBDA:"aws_lambda",AWS_ELASTIC_BEANSTALK:"aws_elastic_beanstalk",AZURE_VM:"azure_vm",AZURE_CONTAINER_INSTANCES:"azure_container_instances",AZURE_AKS:"azure_aks",AZURE_FUNCTIONS:"azure_functions",AZURE_APP_SERVICE:"azure_app_service",GCP_COMPUTE_ENGINE:"gcp_compute_engine",GCP_CLOUD_RUN:"gcp_cloud_run",GCP_KUBERNETES_ENGINE:"gcp_kubernetes_engine",GCP_CLOUD_FUNCTIONS:"gcp_cloud_functions",GCP_APP_ENGINE:"gcp_app_engine"};PG.AwsEcsLaunchtypeValues={EC2:"ec2",FARGATE:"fargate"};PG.HostArchValues={AMD64:"amd64",ARM32:"arm32",ARM64:"arm64",IA64:"ia64",PPC32:"ppc32",PPC64:"ppc64",X86:"x86"};PG.OsTypeValues={WINDOWS:"windows",LINUX:"linux",DARWIN:"darwin",FREEBSD:"freebsd",NETBSD:"netbsd",OPENBSD:"openbsd",DRAGONFLYBSD:"dragonflybsd",HPUX:"hpux",AIX:"aix",SOLARIS:"solaris",Z_OS:"z_os"};PG.TelemetrySdkLanguageValues={CPP:"cpp",DOTNET:"dotnet",ERLANG:"erlang",GO:"go",JAVA:"java",NODEJS:"nodejs",PHP:"php",PYTHON:"python",RUBY:"ruby",WEBJS:"webjs"}});var DPi=H(GCe=>{"use strict";var Nyc=GCe&&GCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dyc=GCe&&GCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Nyc(t,e,r)};Object.defineProperty(GCe,"__esModule",{value:!0});Dyc(NPi(),GCe)});var Hce=H(Mce=>{"use strict";var kyc=Mce&&Mce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kPi=Mce&&Mce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&kyc(t,e,r)};Object.defineProperty(Mce,"__esModule",{value:!0});kPi(RPi(),Mce);kPi(DPi(),Mce)});var bKe=H(Yce=>{"use strict";Object.defineProperty(Yce,"__esModule",{value:!0});Yce.isTracingSuppressed=Yce.unsuppressTracing=Yce.suppressTracing=void 0;var xyc=(GI(),vi(xI)),bZr=(0,xyc.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function Gyc(e){return e.setValue(bZr,!0)}Yce.suppressTracing=Gyc;function Fyc(e){return e.deleteValue(bZr)}Yce.unsuppressTracing=Fyc;function Zyc(e){return e.getValue(bZr)===!0}Yce.isTracingSuppressed=Zyc});var EZr=H(WG=>{"use strict";Object.defineProperty(WG,"__esModule",{value:!0});WG.BAGGAGE_MAX_TOTAL_LENGTH=WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=WG.BAGGAGE_HEADER=WG.BAGGAGE_ITEMS_SEPARATOR=WG.BAGGAGE_PROPERTIES_SEPARATOR=WG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;WG.BAGGAGE_KEY_PAIR_SEPARATOR="=";WG.BAGGAGE_PROPERTIES_SEPARATOR=";";WG.BAGGAGE_ITEMS_SEPARATOR=",";WG.BAGGAGE_HEADER="baggage";WG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;WG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;WG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var SZr=H(Nj=>{"use strict";Object.defineProperty(Nj,"__esModule",{value:!0});Nj.parseKeyPairsIntoRecord=Nj.parsePairKeyValue=Nj.getKeyPairs=Nj.serializeKeyPairs=void 0;var Lyc=(GI(),vi(xI)),FCe=EZr();function Vyc(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?FCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>FCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}Nj.serializeKeyPairs=Vyc;function Pyc(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=FCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}Nj.getKeyPairs=Pyc;function xPi(e){let t=e.split(FCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(FCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,Lyc.baggageEntryMetadataFromString)(t.join(FCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}Nj.parsePairKeyValue=xPi;function Wyc(e){return typeof e!="string"||e.length===0?{}:e.split(FCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>xPi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}Nj.parseKeyPairsIntoRecord=Wyc});var GPi=H(T2t=>{"use strict";Object.defineProperty(T2t,"__esModule",{value:!0});T2t.W3CBaggagePropagator=void 0;var vZr=(GI(),vi(xI)),Oyc=bKe(),ZCe=EZr(),BZr=SZr(),wZr=class{inject(t,r,n){let a=vZr.propagation.getBaggage(t);if(!a||(0,Oyc.isTracingSuppressed)(t))return;let o=(0,BZr.getKeyPairs)(a).filter(A=>A.length<=ZCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,ZCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,BZr.serializeKeyPairs)(o);l.length>0&&n.set(r,ZCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,ZCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(ZCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(ZCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,BZr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:vZr.propagation.setBaggage(t,vZr.propagation.createBaggage(l))}fields(){return[ZCe.BAGGAGE_HEADER]}};T2t.W3CBaggagePropagator=wZr});var FPi=H(R2t=>{"use strict";Object.defineProperty(R2t,"__esModule",{value:!0});R2t.AnchoredClock=void 0;var TZr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};R2t.AnchoredClock=TZr});var WPi=H(Qce=>{"use strict";Object.defineProperty(Qce,"__esModule",{value:!0});Qce.isAttributeValue=Qce.isAttributeKey=Qce.sanitizeAttributes=void 0;var ZPi=(GI(),vi(xI));function Myc(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!LPi(r)){ZPi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!VPi(n)){ZPi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Qce.sanitizeAttributes=Myc;function LPi(e){return typeof e=="string"&&e.length>0}Qce.isAttributeKey=LPi;function VPi(e){return e==null?!0:Array.isArray(e)?Hyc(e):PPi(e)}Qce.isAttributeValue=VPi;function Hyc(e){let t;for(let r of e)if(r!=null){if(!t){if(PPi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function PPi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var RZr=H(N2t=>{"use strict";Object.defineProperty(N2t,"__esModule",{value:!0});N2t.loggingErrorHandler=void 0;var Yyc=(GI(),vi(xI));function Qyc(){return e=>{Yyc.diag.error(Xyc(e))}}N2t.loggingErrorHandler=Qyc;function Xyc(e){return typeof e=="string"?e:JSON.stringify(Jyc(e))}function Jyc(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var NZr=H(BDe=>{"use strict";Object.defineProperty(BDe,"__esModule",{value:!0});BDe.globalErrorHandler=BDe.setGlobalErrorHandler=void 0;var Uyc=RZr(),OPi=(0,Uyc.loggingErrorHandler)();function Kyc(e){OPi=e}BDe.setGlobalErrorHandler=Kyc;function jyc(e){try{OPi(e)}catch{}}BDe.globalErrorHandler=jyc});var DZr=H(EKe=>{"use strict";Object.defineProperty(EKe,"__esModule",{value:!0});EKe.TracesSamplerValues=void 0;var zyc;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(zyc=EKe.TracesSamplerValues||(EKe.TracesSamplerValues={}))});var MPi=H(D2t=>{"use strict";Object.defineProperty(D2t,"__esModule",{value:!0});D2t._globalThis=void 0;D2t._globalThis=typeof globalThis=="object"?globalThis:typeof self=="object"?self:typeof window=="object"?window:typeof global=="object"?global:{}});var xZr=H(Q1=>{"use strict";Object.defineProperty(Q1,"__esModule",{value:!0});Q1.getEnvWithoutDefaults=Q1.parseEnvironment=Q1.DEFAULT_ENVIRONMENT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Xce=(GI(),vi(xI)),qyc=DZr(),$yc=MPi(),ebc=",",tbc=["OTEL_SDK_DISABLED"];function rbc(e){return tbc.indexOf(e)>-1}var nbc=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function ibc(e){return nbc.indexOf(e)>-1}var sbc=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS"];function obc(e){return sbc.indexOf(e)>-1}Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;Q1.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Xce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:Q1.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:Q1.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:Q1.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:qyc.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative"};function abc(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function cbc(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function lbc(e,t,r,n=ebc){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var ubc={ALL:Xce.DiagLogLevel.ALL,VERBOSE:Xce.DiagLogLevel.VERBOSE,DEBUG:Xce.DiagLogLevel.DEBUG,INFO:Xce.DiagLogLevel.INFO,WARN:Xce.DiagLogLevel.WARN,ERROR:Xce.DiagLogLevel.ERROR,NONE:Xce.DiagLogLevel.NONE};function gbc(e,t,r){let n=r[e];if(typeof n=="string"){let a=ubc[n.toUpperCase()];a!=null&&(t[e]=a)}}function kZr(e){let t={};for(let r in Q1.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":gbc(n,t,e);break;default:if(rbc(n))abc(n,t,e);else if(ibc(n))cbc(n,t,e);else if(obc(n))lbc(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}Q1.parseEnvironment=kZr;function Abc(){return typeof process<"u"&&process&&process.env?kZr(process.env):kZr($yc._globalThis)}Q1.getEnvWithoutDefaults=Abc});var YPi=H(k2t=>{"use strict";Object.defineProperty(k2t,"__esModule",{value:!0});k2t.getEnv=void 0;var dbc=wt("os"),HPi=xZr();function pbc(){let e=(0,HPi.parseEnvironment)(process.env);return Object.assign({HOSTNAME:dbc.hostname()},HPi.DEFAULT_ENVIRONMENT,e)}k2t.getEnv=pbc});var QPi=H(x2t=>{"use strict";Object.defineProperty(x2t,"__esModule",{value:!0});x2t._globalThis=void 0;x2t._globalThis=typeof globalThis=="object"?globalThis:global});var JPi=H(G2t=>{"use strict";Object.defineProperty(G2t,"__esModule",{value:!0});G2t.hexToBase64=void 0;function XPi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}var fbc=Buffer.alloc(8),Ibc=Buffer.alloc(16);function hbc(e){let t;e.length===16?t=fbc:e.length===32?t=Ibc:t=Buffer.alloc(e.length/2);let r=0;for(let n=0;n{"use strict";Object.defineProperty(Z2t,"__esModule",{value:!0});Z2t.RandomIdGenerator=void 0;var mbc=8,KPi=16,GZr=class{constructor(){this.generateTraceId=UPi(KPi),this.generateSpanId=UPi(mbc)}};Z2t.RandomIdGenerator=GZr;var F2t=Buffer.allocUnsafe(KPi);function UPi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(F2t[e-1]=1);return F2t.toString("hex",0,e)}}});var zPi=H(L2t=>{"use strict";Object.defineProperty(L2t,"__esModule",{value:!0});L2t.otperformance=void 0;var Cbc=wt("perf_hooks");L2t.otperformance=Cbc.performance});var P2t=H(V2t=>{"use strict";Object.defineProperty(V2t,"__esModule",{value:!0});V2t.VERSION=void 0;V2t.VERSION="1.16.0"});var qPi=H(W2t=>{"use strict";Object.defineProperty(W2t,"__esModule",{value:!0});W2t.SDK_INFO=void 0;var _bc=P2t(),SKe=Hce();W2t.SDK_INFO={[SKe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:"opentelemetry",[SKe.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"node",[SKe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:SKe.TelemetrySdkLanguageValues.NODEJS,[SKe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:_bc.VERSION}});var $Pi=H(O2t=>{"use strict";Object.defineProperty(O2t,"__esModule",{value:!0});O2t.unrefTimer=void 0;function ybc(e){e.unref()}O2t.unrefTimer=ybc});var eWi=H(EO=>{"use strict";var bbc=EO&&EO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),LCe=EO&&EO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bbc(t,e,r)};Object.defineProperty(EO,"__esModule",{value:!0});LCe(YPi(),EO);LCe(QPi(),EO);LCe(JPi(),EO);LCe(jPi(),EO);LCe(zPi(),EO);LCe(qPi(),EO);LCe($Pi(),EO)});var FZr=H(VCe=>{"use strict";var Ebc=VCe&&VCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Sbc=VCe&&VCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Ebc(t,e,r)};Object.defineProperty(VCe,"__esModule",{value:!0});Sbc(eWi(),VCe)});var iWi=H(WE=>{"use strict";Object.defineProperty(WE,"__esModule",{value:!0});WE.addHrTimes=WE.isTimeInput=WE.isTimeInputHrTime=WE.hrTimeToMicroseconds=WE.hrTimeToMilliseconds=WE.hrTimeToNanoseconds=WE.hrTimeToTimeStamp=WE.hrTimeDuration=WE.timeInputToHrTime=WE.hrTime=WE.getTimeOrigin=WE.millisToHrTime=void 0;var ZZr=FZr(),tWi=9,vbc=6,Bbc=Math.pow(10,vbc),M2t=Math.pow(10,tWi);function vKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*Bbc);return[r,n]}WE.millisToHrTime=vKe;function LZr(){let e=ZZr.otperformance.timeOrigin;if(typeof e!="number"){let t=ZZr.otperformance;e=t.timing&&t.timing.fetchStart}return e}WE.getTimeOrigin=LZr;function rWi(e){let t=vKe(LZr()),r=vKe(typeof e=="number"?e:ZZr.otperformance.now());return nWi(t,r)}WE.hrTime=rWi;function wbc(e){if(VZr(e))return e;if(typeof e=="number")return e=M2t&&(r[1]-=M2t,r[0]+=1),r}WE.addHrTimes=nWi});var oWi=H(sWi=>{"use strict";Object.defineProperty(sWi,"__esModule",{value:!0})});var aWi=H(BKe=>{"use strict";Object.defineProperty(BKe,"__esModule",{value:!0});BKe.ExportResultCode=void 0;var Gbc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(Gbc=BKe.ExportResultCode||(BKe.ExportResultCode={}))});var lWi=H(H2t=>{"use strict";Object.defineProperty(H2t,"__esModule",{value:!0});H2t.CompositePropagator=void 0;var cWi=(GI(),vi(xI)),PZr=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){cWi.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){cWi.diag.warn(`Failed to inject with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};H2t.CompositePropagator=PZr});var uWi=H(wDe=>{"use strict";Object.defineProperty(wDe,"__esModule",{value:!0});wDe.validateValue=wDe.validateKey=void 0;var WZr="[_0-9a-z-*/]",Fbc=`[a-z]${WZr}{0,255}`,Zbc=`[a-z0-9]${WZr}{0,240}@[a-z]${WZr}{0,13}`,Lbc=new RegExp(`^(?:${Fbc}|${Zbc})$`),Vbc=/^[ -~]{0,255}[!-~]$/,Pbc=/,|=/;function Wbc(e){return Lbc.test(e)}wDe.validateKey=Wbc;function Obc(e){return Vbc.test(e)&&!Pbc.test(e)}wDe.validateValue=Obc});var MZr=H(Y2t=>{"use strict";Object.defineProperty(Y2t,"__esModule",{value:!0});Y2t.TraceState=void 0;var gWi=uWi(),AWi=32,Mbc=512,dWi=",",pWi="=",OZr=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+pWi+this.get(r)),t),[]).join(dWi)}_parse(t){t.length>Mbc||(this._internalState=t.split(dWi).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(pWi);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,gWi.validateKey)(l)&&(0,gWi.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>AWi&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,AWi))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};Y2t.TraceState=OZr});var IWi=H(OG=>{"use strict";Object.defineProperty(OG,"__esModule",{value:!0});OG.W3CTraceContextPropagator=OG.parseTraceParent=OG.TRACE_STATE_HEADER=OG.TRACE_PARENT_HEADER=void 0;var Q2t=(GI(),vi(xI)),Hbc=bKe(),Ybc=MZr();OG.TRACE_PARENT_HEADER="traceparent";OG.TRACE_STATE_HEADER="tracestate";var Qbc="00",Xbc="(?!ff)[\\da-f]{2}",Jbc="(?![0]{32})[\\da-f]{32}",Ubc="(?![0]{16})[\\da-f]{16}",Kbc="[\\da-f]{2}",jbc=new RegExp(`^\\s?(${Xbc})-(${Jbc})-(${Ubc})-(${Kbc})(-.*)?\\s?$`);function fWi(e){let t=jbc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}OG.parseTraceParent=fWi;var HZr=class{inject(t,r,n){let a=Q2t.trace.getSpanContext(t);if(!a||(0,Hbc.isTracingSuppressed)(t)||!(0,Q2t.isSpanContextValid)(a))return;let o=`${Qbc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||Q2t.TraceFlags.NONE).toString(16)}`;n.set(r,OG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,OG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,OG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=fWi(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,OG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new Ybc.TraceState(typeof f=="string"?f:void 0)}return Q2t.trace.setSpanContext(t,l)}fields(){return[OG.TRACE_PARENT_HEADER,OG.TRACE_STATE_HEADER]}};OG.W3CTraceContextPropagator=HZr});var mWi=H(hWi=>{"use strict";Object.defineProperty(hWi,"__esModule",{value:!0})});var CWi=H(h4=>{"use strict";Object.defineProperty(h4,"__esModule",{value:!0});h4.getRPCMetadata=h4.deleteRPCMetadata=h4.setRPCMetadata=h4.RPCType=void 0;var zbc=(GI(),vi(xI)),YZr=(0,zbc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),qbc;(function(e){e.HTTP="http"})(qbc=h4.RPCType||(h4.RPCType={}));function $bc(e,t){return e.setValue(YZr,t)}h4.setRPCMetadata=$bc;function eEc(e){return e.deleteValue(YZr)}h4.deleteRPCMetadata=eEc;function tEc(e){return e.getValue(YZr)}h4.getRPCMetadata=tEc});var XZr=H(X2t=>{"use strict";Object.defineProperty(X2t,"__esModule",{value:!0});X2t.AlwaysOffSampler=void 0;var rEc=(GI(),vi(xI)),QZr=class{shouldSample(){return{decision:rEc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};X2t.AlwaysOffSampler=QZr});var UZr=H(J2t=>{"use strict";Object.defineProperty(J2t,"__esModule",{value:!0});J2t.AlwaysOnSampler=void 0;var nEc=(GI(),vi(xI)),JZr=class{shouldSample(){return{decision:nEc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};J2t.AlwaysOnSampler=JZr});var yWi=H(K2t=>{"use strict";Object.defineProperty(K2t,"__esModule",{value:!0});K2t.ParentBasedSampler=void 0;var U2t=(GI(),vi(xI)),iEc=NZr(),_Wi=XZr(),KZr=UZr(),jZr=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,iEc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new KZr.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new KZr.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new _Wi.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new KZr.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new _Wi.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=U2t.trace.getSpanContext(t);return!A||!(0,U2t.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&U2t.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&U2t.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};K2t.ParentBasedSampler=jZr});var bWi=H(j2t=>{"use strict";Object.defineProperty(j2t,"__esModule",{value:!0});j2t.TraceIdRatioBasedSampler=void 0;var zZr=(GI(),vi(xI)),qZr=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,zZr.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};j2t.TraceIdRatioBasedSampler=qZr});var wWi=H(z2t=>{"use strict";Object.defineProperty(z2t,"__esModule",{value:!0});z2t.isPlainObject=void 0;var sEc="[object Object]",oEc="[object Null]",aEc="[object Undefined]",cEc=Function.prototype,EWi=cEc.toString,lEc=EWi.call(Object),uEc=gEc(Object.getPrototypeOf,Object),SWi=Object.prototype,vWi=SWi.hasOwnProperty,PCe=Symbol?Symbol.toStringTag:void 0,BWi=SWi.toString;function gEc(e,t){return function(r){return e(t(r))}}function AEc(e){if(!dEc(e)||pEc(e)!==sEc)return!1;let t=uEc(e);if(t===null)return!0;let r=vWi.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&EWi.call(r)===lEc}z2t.isPlainObject=AEc;function dEc(e){return e!=null&&typeof e=="object"}function pEc(e){return e==null?e===void 0?aEc:oEc:PCe&&PCe in Object(e)?fEc(e):IEc(e)}function fEc(e){let t=vWi.call(e,PCe),r=e[PCe],n=!1;try{e[PCe]=void 0,n=!0}catch{}let a=BWi.call(e);return n&&(t?e[PCe]=r:delete e[PCe]),a}function IEc(e){return BWi.call(e)}});var kWi=H(eSt=>{"use strict";Object.defineProperty(eSt,"__esModule",{value:!0});eSt.merge=void 0;var TWi=wWi(),hEc=20;function mEc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=NWi(t,e.shift(),0,r);return t}eSt.merge=mEc;function $Zr(e){return $2t(e)?e.slice():e}function NWi(e,t,r=0,n){let a;if(!(r>hEc)){if(r++,q2t(e)||q2t(t)||DWi(t))a=$Zr(t);else if($2t(e)){if(a=e.slice(),$2t(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(RWi(e,f,n)||RWi(t,f,n))delete a[f];else{if(wKe(C)&&wKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=NWi(a[f],I,r,n)}}}}else a=t;return a}}function RWi(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function CEc(e,t){return!(!(0,TWi.isPlainObject)(e)||!(0,TWi.isPlainObject)(t))}});var xWi=H(TDe=>{"use strict";Object.defineProperty(TDe,"__esModule",{value:!0});TDe.callWithTimeout=TDe.TimeoutError=void 0;var tSt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};TDe.TimeoutError=tSt;function _Ec(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new tSt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}TDe.callWithTimeout=_Ec});var FWi=H(RDe=>{"use strict";Object.defineProperty(RDe,"__esModule",{value:!0});RDe.isUrlIgnored=RDe.urlMatches=void 0;function GWi(e,t){return typeof t=="string"?e===t:!!e.match(t)}RDe.urlMatches=GWi;function yEc(e,t){if(!t)return!1;for(let r of t)if(GWi(e,r))return!0;return!1}RDe.isUrlIgnored=yEc});var ZWi=H(rSt=>{"use strict";Object.defineProperty(rSt,"__esModule",{value:!0});rSt.isWrapped=void 0;function bEc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}rSt.isWrapped=bEc});var LWi=H(nSt=>{"use strict";Object.defineProperty(nSt,"__esModule",{value:!0});nSt.Deferred=void 0;var eLr=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};nSt.Deferred=eLr});var VWi=H(iSt=>{"use strict";Object.defineProperty(iSt,"__esModule",{value:!0});iSt.BindOnceFuture=void 0;var EEc=LWi(),tLr=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new EEc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};iSt.BindOnceFuture=tLr});var WWi=H(sSt=>{"use strict";Object.defineProperty(sSt,"__esModule",{value:!0});sSt._export=void 0;var PWi=(GI(),vi(xI)),SEc=bKe();function vEc(e,t){return new Promise(r=>{PWi.context.with((0,SEc.suppressTracing)(PWi.context.active()),()=>{e.export(t,n=>{r(n)})})})}sSt._export=vEc});var AH=H(vm=>{"use strict";var BEc=vm&&vm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ab=vm&&vm.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&BEc(t,e,r)};Object.defineProperty(vm,"__esModule",{value:!0});vm.internal=vm.baggageUtils=void 0;ab(GPi(),vm);ab(FPi(),vm);ab(WPi(),vm);ab(NZr(),vm);ab(RZr(),vm);ab(iWi(),vm);ab(oWi(),vm);ab(aWi(),vm);ab(P2t(),vm);vm.baggageUtils=SZr();ab(FZr(),vm);ab(lWi(),vm);ab(IWi(),vm);ab(mWi(),vm);ab(CWi(),vm);ab(XZr(),vm);ab(UZr(),vm);ab(yWi(),vm);ab(bWi(),vm);ab(bKe(),vm);ab(MZr(),vm);ab(xZr(),vm);ab(kWi(),vm);ab(DZr(),vm);ab(xWi(),vm);ab(FWi(),vm);ab(ZWi(),vm);ab(VWi(),vm);ab(P2t(),vm);var wEc=WWi();vm.internal={_export:wEc._export}});var OWi=H(oSt=>{"use strict";Object.defineProperty(oSt,"__esModule",{value:!0});oSt.defaultServiceName=void 0;function TEc(){return`unknown_service:${process.argv0}`}oSt.defaultServiceName=TEc});var rLr=H(NDe=>{"use strict";Object.defineProperty(NDe,"__esModule",{value:!0});NDe.normalizeType=NDe.normalizeArch=void 0;var REc=e=>{switch(e){case"arm":return"arm32";case"ppc":return"ppc32";case"x64":return"amd64";default:return e}};NDe.normalizeArch=REc;var NEc=e=>{switch(e){case"sunos":return"solaris";case"win32":return"windows";default:return e}};NDe.normalizeType=NEc});var cSt=H(aSt=>{"use strict";Object.defineProperty(aSt,"__esModule",{value:!0});aSt.execAsync=void 0;var DEc=wt("child_process"),kEc=wt("util");aSt.execAsync=kEc.promisify(DEc.exec)});var MWi=H(lSt=>{"use strict";Object.defineProperty(lSt,"__esModule",{value:!0});lSt.getMachineId=void 0;var xEc=cSt(),GEc=(GI(),vi(xI));async function FEc(){try{let t=(await(0,xEc.execAsync)('ioreg -rd1 -c "IOPlatformExpertDevice"')).stdout.split(` +`).find(n=>n.includes("IOPlatformUUID"));if(!t)return"";let r=t.split('" = "');if(r.length===2)return r[1].slice(0,-1)}catch(e){GEc.diag.debug(`error reading machine id: ${e}`)}return""}lSt.getMachineId=FEc});var HWi=H(uSt=>{"use strict";Object.defineProperty(uSt,"__esModule",{value:!0});uSt.getMachineId=void 0;var ZEc=wt("fs"),LEc=(GI(),vi(xI));async function VEc(){let e=["/etc/machine-id","/var/lib/dbus/machine-id"];for(let t of e)try{return(await ZEc.promises.readFile(t,{encoding:"utf8"})).trim()}catch(r){LEc.diag.debug(`error reading machine id: ${r}`)}return""}uSt.getMachineId=VEc});var QWi=H(gSt=>{"use strict";Object.defineProperty(gSt,"__esModule",{value:!0});gSt.getMachineId=void 0;var PEc=wt("fs"),WEc=cSt(),YWi=(GI(),vi(xI));async function OEc(){try{return(await PEc.promises.readFile("/etc/hostid",{encoding:"utf8"})).trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}try{return(await(0,WEc.execAsync)("kenv -q smbios.system.uuid")).stdout.trim()}catch(e){YWi.diag.debug(`error reading machine id: ${e}`)}return""}gSt.getMachineId=OEc});var JWi=H(ASt=>{"use strict";Object.defineProperty(ASt,"__esModule",{value:!0});ASt.getMachineId=void 0;var XWi=wt("process"),MEc=cSt(),HEc=(GI(),vi(xI));async function YEc(){let e="QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",t="%windir%\\System32\\REG.exe";XWi.arch==="ia32"&&"PROCESSOR_ARCHITEW6432"in XWi.env&&(t="%windir%\\sysnative\\cmd.exe /c "+t);try{let n=(await(0,MEc.execAsync)(`${t} ${e}`)).stdout.split("REG_SZ");if(n.length===2)return n[1].trim()}catch(r){HEc.diag.debug(`error reading machine id: ${r}`)}return""}ASt.getMachineId=YEc});var UWi=H(dSt=>{"use strict";Object.defineProperty(dSt,"__esModule",{value:!0});dSt.getMachineId=void 0;var QEc=(GI(),vi(xI));async function XEc(){return QEc.diag.debug("could not read machine-id: unsupported platform"),""}dSt.getMachineId=XEc});var KWi=H(Kee=>{"use strict";Object.defineProperty(Kee,"__esModule",{value:!0});Kee.getMachineId=void 0;var JEc=wt("process"),DDe;Kee.getMachineId=DDe;switch(JEc.platform){case"darwin":Kee.getMachineId=DDe=MWi().getMachineId;break;case"linux":Kee.getMachineId=DDe=HWi().getMachineId;break;case"freebsd":Kee.getMachineId=DDe=QWi().getMachineId;break;case"win32":Kee.getMachineId=DDe=JWi().getMachineId;break;default:Kee.getMachineId=DDe=UWi().getMachineId}});var sLr=H(pSt=>{"use strict";Object.defineProperty(pSt,"__esModule",{value:!0});pSt.hostDetectorSync=void 0;var nLr=Hce(),UEc=WCe(),jWi=wt("os"),KEc=rLr(),jEc=KWi(),iLr=class{detect(t){let r={[nLr.SemanticResourceAttributes.HOST_NAME]:(0,jWi.hostname)(),[nLr.SemanticResourceAttributes.HOST_ARCH]:(0,KEc.normalizeArch)((0,jWi.arch)())};return new UEc.Resource(r,this._getAsyncAttributes())}_getAsyncAttributes(){return(0,jEc.getMachineId)().then(t=>{let r={};return t&&(r[nLr.SemanticResourceAttributes.HOST_ID]=t),r})}};pSt.hostDetectorSync=new iLr});var zWi=H(fSt=>{"use strict";Object.defineProperty(fSt,"__esModule",{value:!0});fSt.hostDetector=void 0;var zEc=sLr(),oLr=class{detect(t){return Promise.resolve(zEc.hostDetectorSync.detect(t))}};fSt.hostDetector=new oLr});var cLr=H(ISt=>{"use strict";Object.defineProperty(ISt,"__esModule",{value:!0});ISt.osDetectorSync=void 0;var qWi=Hce(),qEc=WCe(),$Wi=wt("os"),$Ec=rLr(),aLr=class{detect(t){let r={[qWi.SemanticResourceAttributes.OS_TYPE]:(0,$Ec.normalizeType)((0,$Wi.platform)()),[qWi.SemanticResourceAttributes.OS_VERSION]:(0,$Wi.release)()};return new qEc.Resource(r)}};ISt.osDetectorSync=new aLr});var eOi=H(hSt=>{"use strict";Object.defineProperty(hSt,"__esModule",{value:!0});hSt.osDetector=void 0;var e1c=cLr(),lLr=class{detect(t){return Promise.resolve(e1c.osDetectorSync.detect(t))}};hSt.osDetector=new lLr});var gLr=H(mSt=>{"use strict";Object.defineProperty(mSt,"__esModule",{value:!0});mSt.processDetectorSync=void 0;var t1c=(GI(),vi(xI)),jee=Hce(),r1c=WCe(),n1c=wt("os"),uLr=class{detect(t){let r={[jee.SemanticResourceAttributes.PROCESS_PID]:process.pid,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_NAME]:process.title,[jee.SemanticResourceAttributes.PROCESS_EXECUTABLE_PATH]:process.execPath,[jee.SemanticResourceAttributes.PROCESS_COMMAND_ARGS]:[process.argv[0],...process.execArgv,...process.argv.slice(1)],[jee.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:process.versions.node,[jee.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"nodejs",[jee.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Node.js"};process.argv.length>1&&(r[jee.SemanticResourceAttributes.PROCESS_COMMAND]=process.argv[1]);try{let n=n1c.userInfo();r[jee.SemanticResourceAttributes.PROCESS_OWNER]=n.username}catch(n){t1c.diag.debug(`error obtaining process owner: ${n}`)}return new r1c.Resource(r)}};mSt.processDetectorSync=new uLr});var tOi=H(CSt=>{"use strict";Object.defineProperty(CSt,"__esModule",{value:!0});CSt.processDetector=void 0;var i1c=gLr(),ALr=class{detect(t){return Promise.resolve(i1c.processDetectorSync.detect(t))}};CSt.processDetector=new ALr});var rOi=H(SO=>{"use strict";var s1c=SO&&SO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OCe=SO&&SO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&s1c(t,e,r)};Object.defineProperty(SO,"__esModule",{value:!0});OCe(OWi(),SO);OCe(zWi(),SO);OCe(eOi(),SO);OCe(sLr(),SO);OCe(cLr(),SO);OCe(tOi(),SO);OCe(gLr(),SO)});var dLr=H(MCe=>{"use strict";var o1c=MCe&&MCe.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),a1c=MCe&&MCe.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&o1c(t,e,r)};Object.defineProperty(MCe,"__esModule",{value:!0});a1c(rOi(),MCe)});var WCe=H(_St=>{"use strict";Object.defineProperty(_St,"__esModule",{value:!0});_St.Resource=void 0;var nOi=(GI(),vi(xI)),HCe=Hce(),pLr=AH(),c1c=dLr(),TKe=class e{constructor(t,r){var n;this._attributes=t,this.asyncAttributesPending=r!=null,this._syncAttributes=(n=this._attributes)!==null&&n!==void 0?n:{},this._asyncAttributesPromise=r?.then(a=>(this._attributes=Object.assign({},this._attributes,a),this.asyncAttributesPending=!1,a),a=>(nOi.diag.debug("a resource's async attributes promise rejected: %s",a),this.asyncAttributesPending=!1,{}))}static empty(){return e.EMPTY}static default(){return new e({[HCe.SemanticResourceAttributes.SERVICE_NAME]:(0,c1c.defaultServiceName)(),[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_LANGUAGE],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_NAME],[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]:pLr.SDK_INFO[HCe.SemanticResourceAttributes.TELEMETRY_SDK_VERSION]})}get attributes(){var t;return this.asyncAttributesPending&&nOi.diag.error("Accessing resource attributes before async attributes settled"),(t=this._attributes)!==null&&t!==void 0?t:{}}async waitForAsyncAttributes(){this.asyncAttributesPending&&await this._asyncAttributesPromise}merge(t){var r;if(!t)return this;let n=Object.assign(Object.assign({},this._syncAttributes),(r=t._syncAttributes)!==null&&r!==void 0?r:t.attributes);if(!this._asyncAttributesPromise&&!t._asyncAttributesPromise)return new e(n);let a=Promise.all([this._asyncAttributesPromise,t._asyncAttributesPromise]).then(([o,l])=>{var A;return Object.assign(Object.assign(Object.assign(Object.assign({},this._syncAttributes),o),(A=t._syncAttributes)!==null&&A!==void 0?A:t.attributes),l)});return new e(n,a)}};_St.Resource=TKe;TKe.EMPTY=new TKe({})});var sOi=H(iOi=>{"use strict";Object.defineProperty(iOi,"__esModule",{value:!0})});var aOi=H(oOi=>{"use strict";Object.defineProperty(oOi,"__esModule",{value:!0})});var lOi=H(cOi=>{"use strict";Object.defineProperty(cOi,"__esModule",{value:!0})});var uOi=H(ySt=>{"use strict";Object.defineProperty(ySt,"__esModule",{value:!0});ySt.browserDetector=void 0;var l1c=bSt(),fLr=class{detect(t){return Promise.resolve(l1c.browserDetectorSync.detect(t))}};ySt.browserDetector=new fLr});var hLr=H(ESt=>{"use strict";Object.defineProperty(ESt,"__esModule",{value:!0});ESt.envDetectorSync=void 0;var u1c=(GI(),vi(xI)),g1c=AH(),A1c=Hce(),d1c=WCe(),ILr=class{constructor(){this._MAX_LENGTH=255,this._COMMA_SEPARATOR=",",this._LABEL_KEY_VALUE_SPLITTER="=",this._ERROR_MESSAGE_INVALID_CHARS="should be a ASCII string with a length greater than 0 and not exceed "+this._MAX_LENGTH+" characters.",this._ERROR_MESSAGE_INVALID_VALUE="should be a ASCII string with a length not exceed "+this._MAX_LENGTH+" characters."}detect(t){let r={},n=(0,g1c.getEnv)(),a=n.OTEL_RESOURCE_ATTRIBUTES,o=n.OTEL_SERVICE_NAME;if(a)try{let l=this._parseResourceAttributes(a);Object.assign(r,l)}catch(l){u1c.diag.debug(`EnvDetector failed: ${l.message}`)}return o&&(r[A1c.SemanticResourceAttributes.SERVICE_NAME]=o),new d1c.Resource(r)}_parseResourceAttributes(t){if(!t)return{};let r={},n=t.split(this._COMMA_SEPARATOR,-1);for(let a of n){let o=a.split(this._LABEL_KEY_VALUE_SPLITTER,-1);if(o.length!==2)continue;let[l,A]=o;if(l=l.trim(),A=A.trim().split(/^"|"$/).join(""),!this._isValidAndNotEmpty(l))throw new Error(`Attribute key ${this._ERROR_MESSAGE_INVALID_CHARS}`);if(!this._isValid(A))throw new Error(`Attribute value ${this._ERROR_MESSAGE_INVALID_VALUE}`);r[l]=decodeURIComponent(A)}return r}_isValid(t){return t.length<=this._MAX_LENGTH&&this._isBaggageOctetString(t)}_isBaggageOctetString(t){for(let r=0;r126)return!1}return!0}_isValidAndNotEmpty(t){return t.length>0&&this._isValid(t)}};ESt.envDetectorSync=new ILr});var gOi=H(SSt=>{"use strict";Object.defineProperty(SSt,"__esModule",{value:!0});SSt.envDetector=void 0;var p1c=hLr(),mLr=class{detect(t){return Promise.resolve(p1c.envDetectorSync.detect(t))}};SSt.envDetector=new mLr});var AOi=H(BSt=>{"use strict";Object.defineProperty(BSt,"__esModule",{value:!0});BSt.browserDetectorSync=void 0;var vSt=Hce(),CLr=bSt(),f1c=(GI(),vi(xI)),_Lr=class{detect(t){if(!(typeof navigator<"u"))return CLr.Resource.empty();let n={[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_NAME]:"browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_DESCRIPTION]:"Web Browser",[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]:navigator.userAgent};return this._getResourceAttributes(n,t)}_getResourceAttributes(t,r){return t[vSt.SemanticResourceAttributes.PROCESS_RUNTIME_VERSION]===""?(f1c.diag.debug("BrowserDetector failed: Unable to find required browser resources. "),CLr.Resource.empty()):new CLr.Resource(Object.assign({},t))}};BSt.browserDetectorSync=new _Lr});var dOi=H(Dj=>{"use strict";var I1c=Dj&&Dj.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),wSt=Dj&&Dj.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&I1c(t,e,r)};Object.defineProperty(Dj,"__esModule",{value:!0});wSt(uOi(),Dj);wSt(gOi(),Dj);wSt(AOi(),Dj);wSt(hLr(),Dj)});var pOi=H(TSt=>{"use strict";Object.defineProperty(TSt,"__esModule",{value:!0});TSt.isPromiseLike=void 0;var h1c=e=>e!==null&&typeof e=="object"&&typeof e.then=="function";TSt.isPromiseLike=h1c});var IOi=H(xDe=>{"use strict";Object.defineProperty(xDe,"__esModule",{value:!0});xDe.detectResourcesSync=xDe.detectResources=void 0;var RKe=WCe(),kDe=(GI(),vi(xI)),m1c=pOi(),C1c=async(e={})=>{let t=await Promise.all((e.detectors||[]).map(async r=>{try{let n=await r.detect(e);return kDe.diag.debug(`${r.constructor.name} found resource.`,n),n}catch(n){return kDe.diag.debug(`${r.constructor.name} failed: ${n.message}`),RKe.Resource.empty()}}));return fOi(t),t.reduce((r,n)=>r.merge(n),RKe.Resource.empty())};xDe.detectResources=C1c;var _1c=(e={})=>{var t;let r=((t=e.detectors)!==null&&t!==void 0?t:[]).map(a=>{try{let o=a.detect(e),l;if((0,m1c.isPromiseLike)(o)){let A=async()=>(await o).attributes;l=new RKe.Resource({},A())}else l=o;return l.waitForAsyncAttributes?l.waitForAsyncAttributes().then(()=>kDe.diag.debug(`${a.constructor.name} found resource.`,l)):kDe.diag.debug(`${a.constructor.name} found resource.`,l),l}catch(o){return kDe.diag.error(`${a.constructor.name} failed: ${o.message}`),RKe.Resource.empty()}}),n=r.reduce((a,o)=>a.merge(o),RKe.Resource.empty());return n.waitForAsyncAttributes&&n.waitForAsyncAttributes().then(()=>{fOi(r)}),n};xDe.detectResourcesSync=_1c;var fOi=e=>{e.forEach(t=>{if(Object.keys(t.attributes).length>0){let r=JSON.stringify(t.attributes,null,4);kDe.diag.verbose(r)}})}});var bSt=H(vO=>{"use strict";var y1c=vO&&vO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),YCe=vO&&vO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&y1c(t,e,r)};Object.defineProperty(vO,"__esModule",{value:!0});YCe(WCe(),vO);YCe(sOi(),vO);YCe(dLr(),vO);YCe(aOi(),vO);YCe(lOi(),vO);YCe(dOi(),vO);YCe(IOi(),vO)});var ELr=H(RSt=>{"use strict";Object.defineProperty(RSt,"__esModule",{value:!0});RSt.LogRecord=void 0;var b1c=(GI(),vi(xI)),NKe=(GI(),vi(xI)),yLr=AH(),bLr=class{constructor(t,r){this.attributes={},this._isReadonly=!1;let{timestamp:n,observedTimestamp:a,severityNumber:o,severityText:l,body:A,attributes:f={},context:I}=r,C=Date.now();if(this.hrTime=(0,yLr.timeInputToHrTime)(n??C),this.hrTimeObserved=(0,yLr.timeInputToHrTime)(a??C),I){let b=NKe.trace.getSpanContext(I);b&&NKe.isSpanContextValid(b)&&(this.spanContext=b)}this.severityNumber=o,this.severityText=l,this.body=A,this.resource=t.resource,this.instrumentationScope=t.instrumentationScope,this._logRecordLimits=t.getLogRecordLimits(),this.setAttributes(f)}set severityText(t){this._isLogRecordReadonly()||(this._severityText=t)}get severityText(){return this._severityText}set severityNumber(t){this._isLogRecordReadonly()||(this._severityNumber=t)}get severityNumber(){return this._severityNumber}set body(t){this._isLogRecordReadonly()||(this._body=t)}get body(){return this._body}setAttribute(t,r){return this._isLogRecordReadonly()?this:r===null?this:(typeof r=="object"&&!Array.isArray(r)&&Object.keys(r).length>0&&(this.attributes[t]=r),t.length===0?(NKe.diag.warn(`Invalid attribute key: ${t}`),this):(0,yLr.isAttributeValue)(r)?Object.keys(this.attributes).length>=this._logRecordLimits.attributeCountLimit&&!Object.prototype.hasOwnProperty.call(this.attributes,t)?this:(this.attributes[t]=this._truncateToSize(r),this):(NKe.diag.warn(`Invalid attribute value set for key: ${t}`),this))}setAttributes(t){for(let[r,n]of Object.entries(t))this.setAttribute(r,n);return this}setBody(t){return this.body=t,this}setSeverityNumber(t){return this.severityNumber=t,this}setSeverityText(t){return this.severityText=t,this}makeReadonly(){this._isReadonly=!0}_truncateToSize(t){let r=this._logRecordLimits.attributeValueLengthLimit||0;return r<=0?(NKe.diag.warn(`Attribute value limit must be positive, got ${r}`),t):typeof t=="string"?this._truncateToLimitUtil(t,r):Array.isArray(t)?t.map(n=>typeof n=="string"?this._truncateToLimitUtil(n,r):n):t}_truncateToLimitUtil(t,r){return t.length<=r?t:t.substring(0,r)}_isLogRecordReadonly(){return this._isReadonly&&b1c.diag.warn("Can not execute the operation on emitted log record"),this._isReadonly}};RSt.LogRecord=bLr});var SLr=H(kj=>{"use strict";Object.defineProperty(kj,"__esModule",{value:!0});kj.DEFAULT_EVENT_DOMAIN=kj.mergeConfig=kj.reconfigureLimits=kj.loadDefaultConfig=void 0;var DKe=AH();function hOi(){return{forceFlushTimeoutMillis:3e4,logRecordLimits:{attributeValueLengthLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT,attributeCountLimit:(0,DKe.getEnv)().OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT},includeTraceContext:!0}}kj.loadDefaultConfig=hOi;function E1c(e){var t,r,n,a,o,l,A,f;let I=Object.assign({},e.logRecordLimits),C=(0,DKe.getEnvWithoutDefaults)();return I.attributeCountLimit=(a=(n=(r=(t=e.logRecordLimits)===null||t===void 0?void 0:t.attributeCountLimit)!==null&&r!==void 0?r:C.OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT)!==null&&n!==void 0?n:C.OTEL_ATTRIBUTE_COUNT_LIMIT)!==null&&a!==void 0?a:DKe.DEFAULT_ATTRIBUTE_COUNT_LIMIT,I.attributeValueLengthLimit=(f=(A=(l=(o=e.logRecordLimits)===null||o===void 0?void 0:o.attributeValueLengthLimit)!==null&&l!==void 0?l:C.OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&A!==void 0?A:C.OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT)!==null&&f!==void 0?f:DKe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,Object.assign({},e,{logRecordLimits:I})}kj.reconfigureLimits=E1c;function S1c(e){let t=hOi(),r=Object.assign({},t,e);return r.logRecordLimits=Object.assign({},t.logRecordLimits,e.logRecordLimits||{}),r}kj.mergeConfig=S1c;kj.DEFAULT_EVENT_DOMAIN="default"});var BLr=H(NSt=>{"use strict";Object.defineProperty(NSt,"__esModule",{value:!0});NSt.Logger=void 0;var v1c=(GI(),vi(xI)),B1c=ELr(),w1c=SLr(),vLr=class{constructor(t,r,n){this.instrumentationScope=t,this._loggerProvider=n,this._loggerConfig=(0,w1c.mergeConfig)(r),this.resource=n.resource}emit(t){let r=t.context||v1c.context.active(),n=new B1c.LogRecord(this,Object.assign({context:r},t));this.getActiveLogRecordProcessor().onEmit(n,r),n.makeReadonly()}getLogRecordLimits(){return this._loggerConfig.logRecordLimits}getActiveLogRecordProcessor(){return this._loggerProvider.getActiveLogRecordProcessor()}};NSt.Logger=vLr});var mOi=H(DSt=>{"use strict";Object.defineProperty(DSt,"__esModule",{value:!0});DSt.MultiLogRecordProcessor=void 0;var T1c=AH(),wLr=class{constructor(t,r){this.processors=t,this.forceFlushTimeoutMillis=r}async forceFlush(){let t=this.forceFlushTimeoutMillis;await Promise.all(this.processors.map(r=>(0,T1c.callWithTimeout)(r.forceFlush(),t)))}onEmit(t){this.processors.forEach(r=>r.onEmit(t))}async shutdown(){await Promise.all(this.processors.map(t=>t.shutdown()))}};DSt.MultiLogRecordProcessor=wLr});var RLr=H(kSt=>{"use strict";Object.defineProperty(kSt,"__esModule",{value:!0});kSt.NoopLogRecordProcessor=void 0;var TLr=class{forceFlush(){return Promise.resolve()}onEmit(t){}shutdown(){return Promise.resolve()}};kSt.NoopLogRecordProcessor=TLr});var EOi=H(QCe=>{"use strict";Object.defineProperty(QCe,"__esModule",{value:!0});QCe.LoggerProvider=QCe.DEFAULT_LOGGER_NAME=void 0;var kKe=(GI(),vi(xI)),R1c=bDe(),COi=bSt(),_Oi=AH(),N1c=BLr(),yOi=SLr(),bOi=mOi(),D1c=RLr();QCe.DEFAULT_LOGGER_NAME="unknown";var NLr=class{constructor(t={}){this._loggers=new Map,this._registeredLogRecordProcessors=[];let{resource:r=COi.Resource.empty(),logRecordLimits:n,forceFlushTimeoutMillis:a}=(0,_Oi.merge)({},(0,yOi.loadDefaultConfig)(),(0,yOi.reconfigureLimits)(t));this.resource=COi.Resource.default().merge(r),this._config={logRecordLimits:n,resource:this.resource,forceFlushTimeoutMillis:a},this._shutdownOnce=new _Oi.BindOnceFuture(this._shutdown,this),this._activeProcessor=new bOi.MultiLogRecordProcessor([new D1c.NoopLogRecordProcessor],a)}getLogger(t,r,n){if(this._shutdownOnce.isCalled)return kKe.diag.warn("A shutdown LoggerProvider cannot provide a Logger"),R1c.NOOP_LOGGER;t||kKe.diag.warn("Logger requested without instrumentation scope name.");let a=t||QCe.DEFAULT_LOGGER_NAME,o=`${a}@${r||""}:${n?.schemaUrl||""}`;return this._loggers.has(o)||this._loggers.set(o,new N1c.Logger({name:a,version:r,schemaUrl:n?.schemaUrl},{logRecordLimits:this._config.logRecordLimits},this)),this._loggers.get(o)}addLogRecordProcessor(t){this._registeredLogRecordProcessors.length===0&&this._activeProcessor.shutdown().catch(r=>kKe.diag.error("Error while trying to shutdown current log record processor",r)),this._registeredLogRecordProcessors.push(t),this._activeProcessor=new bOi.MultiLogRecordProcessor(this._registeredLogRecordProcessors,this._config.forceFlushTimeoutMillis)}forceFlush(){return this._shutdownOnce.isCalled?(kKe.diag.warn("invalid attempt to force flush after LoggerProvider shutdown"),this._shutdownOnce.promise):this._activeProcessor.forceFlush()}shutdown(){return this._shutdownOnce.isCalled?(kKe.diag.warn("shutdown may only be called once per LoggerProvider"),this._shutdownOnce.promise):this._shutdownOnce.call()}getActiveLogRecordProcessor(){return this._activeProcessor}getActiveLoggers(){return this._loggers}_shutdown(){return this._activeProcessor.shutdown()}};QCe.LoggerProvider=NLr});var SOi=H(xSt=>{"use strict";Object.defineProperty(xSt,"__esModule",{value:!0});xSt.ConsoleLogRecordExporter=void 0;var k1c=AH(),x1c=AH(),DLr=class{export(t,r){this._sendLogRecords(t,r)}shutdown(){return Promise.resolve()}_exportInfo(t){var r,n,a;return{timestamp:(0,k1c.hrTimeToMicroseconds)(t.hrTime),traceId:(r=t.spanContext)===null||r===void 0?void 0:r.traceId,spanId:(n=t.spanContext)===null||n===void 0?void 0:n.spanId,traceFlags:(a=t.spanContext)===null||a===void 0?void 0:a.traceFlags,severityText:t.severityText,severityNumber:t.severityNumber,body:t.body,attributes:t.attributes}}_sendLogRecords(t,r){for(let n of t)console.dir(this._exportInfo(n),{depth:3});r?.({code:x1c.ExportResultCode.SUCCESS})}};xSt.ConsoleLogRecordExporter=DLr});var vOi=H(GSt=>{"use strict";Object.defineProperty(GSt,"__esModule",{value:!0});GSt.SimpleLogRecordProcessor=void 0;var kLr=AH(),xLr=class{constructor(t){this._exporter=t,this._shutdownOnce=new kLr.BindOnceFuture(this._shutdown,this)}onEmit(t){this._shutdownOnce.isCalled||this._exporter.export([t],r=>{var n;if(r.code!==kLr.ExportResultCode.SUCCESS){(0,kLr.globalErrorHandler)((n=r.error)!==null&&n!==void 0?n:new Error(`SimpleLogRecordProcessor: log record export failed (status ${r})`));return}})}forceFlush(){return Promise.resolve()}shutdown(){return this._shutdownOnce.call()}_shutdown(){return this._exporter.shutdown()}};GSt.SimpleLogRecordProcessor=xLr});var wOi=H(FSt=>{"use strict";Object.defineProperty(FSt,"__esModule",{value:!0});FSt.InMemoryLogRecordExporter=void 0;var BOi=AH(),GLr=class{constructor(){this._finishedLogRecords=[],this._stopped=!1}export(t,r){if(this._stopped)return r({code:BOi.ExportResultCode.FAILED,error:new Error("Exporter has been stopped")});this._finishedLogRecords.push(...t),r({code:BOi.ExportResultCode.SUCCESS})}shutdown(){return this._stopped=!0,this.reset(),Promise.resolve()}getFinishedLogRecords(){return this._finishedLogRecords}reset(){this._finishedLogRecords=[]}};FSt.InMemoryLogRecordExporter=GLr});var TOi=H(ZSt=>{"use strict";Object.defineProperty(ZSt,"__esModule",{value:!0});ZSt.BatchLogRecordProcessorBase=void 0;var G1c=(GI(),vi(xI)),GDe=AH(),FLr=class{constructor(t,r){var n,a,o,l;this._exporter=t,this._finishedLogRecords=[];let A=(0,GDe.getEnv)();this._maxExportBatchSize=(n=r?.maxExportBatchSize)!==null&&n!==void 0?n:A.OTEL_BLRP_MAX_EXPORT_BATCH_SIZE,this._maxQueueSize=(a=r?.maxQueueSize)!==null&&a!==void 0?a:A.OTEL_BLRP_MAX_QUEUE_SIZE,this._scheduledDelayMillis=(o=r?.scheduledDelayMillis)!==null&&o!==void 0?o:A.OTEL_BLRP_SCHEDULE_DELAY,this._exportTimeoutMillis=(l=r?.exportTimeoutMillis)!==null&&l!==void 0?l:A.OTEL_BLRP_EXPORT_TIMEOUT,this._shutdownOnce=new GDe.BindOnceFuture(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(G1c.diag.warn("BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize"),this._maxExportBatchSize=this._maxQueueSize)}onEmit(t){this._shutdownOnce.isCalled||this._addToBuffer(t)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),await this._exporter.shutdown()}_addToBuffer(t){this._finishedLogRecords.length>=this._maxQueueSize||(this._finishedLogRecords.push(t),this._maybeStartTimer())}_flushAll(){return new Promise((t,r)=>{let n=[],a=Math.ceil(this._finishedLogRecords.length/this._maxExportBatchSize);for(let o=0;o{t()}).catch(r)})}_flushOneBatch(){return this._clearTimer(),this._finishedLogRecords.length===0?Promise.resolve():new Promise((t,r)=>{(0,GDe.callWithTimeout)(this._export(this._finishedLogRecords.splice(0,this._maxExportBatchSize)),this._exportTimeoutMillis).then(()=>t()).catch(r)})}_maybeStartTimer(){this._timer===void 0&&(this._timer=setTimeout(()=>{this._flushOneBatch().then(()=>{this._finishedLogRecords.length>0&&(this._clearTimer(),this._maybeStartTimer())}).catch(t=>{(0,GDe.globalErrorHandler)(t)})},this._scheduledDelayMillis),(0,GDe.unrefTimer)(this._timer))}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}_export(t){return new Promise((r,n)=>{this._exporter.export(t,a=>{var o;if(a.code!==GDe.ExportResultCode.SUCCESS){n((o=a.error)!==null&&o!==void 0?o:new Error(`BatchLogRecordProcessorBase: log record export failed (status ${a})`));return}r(a)})})}};ZSt.BatchLogRecordProcessorBase=FLr});var ROi=H(LSt=>{"use strict";Object.defineProperty(LSt,"__esModule",{value:!0});LSt.BatchLogRecordProcessor=void 0;var F1c=TOi(),ZLr=class extends F1c.BatchLogRecordProcessorBase{onShutdown(){}};LSt.BatchLogRecordProcessor=ZLr});var NOi=H(VSt=>{"use strict";Object.defineProperty(VSt,"__esModule",{value:!0});VSt.BatchLogRecordProcessor=void 0;var Z1c=ROi();Object.defineProperty(VSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Z1c.BatchLogRecordProcessor}})});var DOi=H(PSt=>{"use strict";Object.defineProperty(PSt,"__esModule",{value:!0});PSt.BatchLogRecordProcessor=void 0;var L1c=NOi();Object.defineProperty(PSt,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return L1c.BatchLogRecordProcessor}})});var xKe=H(uD=>{"use strict";Object.defineProperty(uD,"__esModule",{value:!0});uD.BatchLogRecordProcessor=uD.InMemoryLogRecordExporter=uD.SimpleLogRecordProcessor=uD.ConsoleLogRecordExporter=uD.NoopLogRecordProcessor=uD.LogRecord=uD.Logger=uD.LoggerProvider=void 0;var V1c=EOi();Object.defineProperty(uD,"LoggerProvider",{enumerable:!0,get:function(){return V1c.LoggerProvider}});var P1c=BLr();Object.defineProperty(uD,"Logger",{enumerable:!0,get:function(){return P1c.Logger}});var W1c=ELr();Object.defineProperty(uD,"LogRecord",{enumerable:!0,get:function(){return W1c.LogRecord}});var O1c=RLr();Object.defineProperty(uD,"NoopLogRecordProcessor",{enumerable:!0,get:function(){return O1c.NoopLogRecordProcessor}});var M1c=SOi();Object.defineProperty(uD,"ConsoleLogRecordExporter",{enumerable:!0,get:function(){return M1c.ConsoleLogRecordExporter}});var H1c=vOi();Object.defineProperty(uD,"SimpleLogRecordProcessor",{enumerable:!0,get:function(){return H1c.SimpleLogRecordProcessor}});var Y1c=wOi();Object.defineProperty(uD,"InMemoryLogRecordExporter",{enumerable:!0,get:function(){return Y1c.InMemoryLogRecordExporter}});var Q1c=DOi();Object.defineProperty(uD,"BatchLogRecordProcessor",{enumerable:!0,get:function(){return Q1c.BatchLogRecordProcessor}})});var GKe=H(Jce=>{"use strict";Object.defineProperty(Jce,"__esModule",{value:!0});Jce.isTracingSuppressed=Jce.unsuppressTracing=Jce.suppressTracing=void 0;var X1c=(GI(),vi(xI)),VLr=(0,X1c.createContextKey)("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function J1c(e){return e.setValue(VLr,!0)}Jce.suppressTracing=J1c;function U1c(e){return e.deleteValue(VLr)}Jce.unsuppressTracing=U1c;function K1c(e){return e.getValue(VLr)===!0}Jce.isTracingSuppressed=K1c});var PLr=H(MG=>{"use strict";Object.defineProperty(MG,"__esModule",{value:!0});MG.BAGGAGE_MAX_TOTAL_LENGTH=MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=MG.BAGGAGE_HEADER=MG.BAGGAGE_ITEMS_SEPARATOR=MG.BAGGAGE_PROPERTIES_SEPARATOR=MG.BAGGAGE_KEY_PAIR_SEPARATOR=void 0;MG.BAGGAGE_KEY_PAIR_SEPARATOR="=";MG.BAGGAGE_PROPERTIES_SEPARATOR=";";MG.BAGGAGE_ITEMS_SEPARATOR=",";MG.BAGGAGE_HEADER="baggage";MG.BAGGAGE_MAX_NAME_VALUE_PAIRS=180;MG.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS=4096;MG.BAGGAGE_MAX_TOTAL_LENGTH=8192});var WLr=H(xj=>{"use strict";Object.defineProperty(xj,"__esModule",{value:!0});xj.parseKeyPairsIntoRecord=xj.parsePairKeyValue=xj.getKeyPairs=xj.serializeKeyPairs=void 0;var j1c=(GI(),vi(xI)),XCe=PLr();function z1c(e){return e.reduce((t,r)=>{let n=`${t}${t!==""?XCe.BAGGAGE_ITEMS_SEPARATOR:""}${r}`;return n.length>XCe.BAGGAGE_MAX_TOTAL_LENGTH?t:n},"")}xj.serializeKeyPairs=z1c;function q1c(e){return e.getAllEntries().map(([t,r])=>{let n=`${encodeURIComponent(t)}=${encodeURIComponent(r.value)}`;return r.metadata!==void 0&&(n+=XCe.BAGGAGE_PROPERTIES_SEPARATOR+r.metadata.toString()),n})}xj.getKeyPairs=q1c;function kOi(e){let t=e.split(XCe.BAGGAGE_PROPERTIES_SEPARATOR);if(t.length<=0)return;let r=t.shift();if(!r)return;let n=r.indexOf(XCe.BAGGAGE_KEY_PAIR_SEPARATOR);if(n<=0)return;let a=decodeURIComponent(r.substring(0,n).trim()),o=decodeURIComponent(r.substring(n+1).trim()),l;return t.length>0&&(l=(0,j1c.baggageEntryMetadataFromString)(t.join(XCe.BAGGAGE_PROPERTIES_SEPARATOR))),{key:a,value:o,metadata:l}}xj.parsePairKeyValue=kOi;function $1c(e){return typeof e!="string"||e.length===0?{}:e.split(XCe.BAGGAGE_ITEMS_SEPARATOR).map(t=>kOi(t)).filter(t=>t!==void 0&&t.value.length>0).reduce((t,r)=>(t[r.key]=r.value,t),{})}xj.parseKeyPairsIntoRecord=$1c});var xOi=H(WSt=>{"use strict";Object.defineProperty(WSt,"__esModule",{value:!0});WSt.W3CBaggagePropagator=void 0;var OLr=(GI(),vi(xI)),e2c=GKe(),JCe=PLr(),MLr=WLr(),HLr=class{inject(t,r,n){let a=OLr.propagation.getBaggage(t);if(!a||(0,e2c.isTracingSuppressed)(t))return;let o=(0,MLr.getKeyPairs)(a).filter(A=>A.length<=JCe.BAGGAGE_MAX_PER_NAME_VALUE_PAIRS).slice(0,JCe.BAGGAGE_MAX_NAME_VALUE_PAIRS),l=(0,MLr.serializeKeyPairs)(o);l.length>0&&n.set(r,JCe.BAGGAGE_HEADER,l)}extract(t,r,n){let a=n.get(r,JCe.BAGGAGE_HEADER),o=Array.isArray(a)?a.join(JCe.BAGGAGE_ITEMS_SEPARATOR):a;if(!o)return t;let l={};return o.length===0||(o.split(JCe.BAGGAGE_ITEMS_SEPARATOR).forEach(f=>{let I=(0,MLr.parsePairKeyValue)(f);if(I){let C={value:I.value};I.metadata&&(C.metadata=I.metadata),l[I.key]=C}}),Object.entries(l).length===0)?t:OLr.propagation.setBaggage(t,OLr.propagation.createBaggage(l))}fields(){return[JCe.BAGGAGE_HEADER]}};WSt.W3CBaggagePropagator=HLr});var GOi=H(OSt=>{"use strict";Object.defineProperty(OSt,"__esModule",{value:!0});OSt.AnchoredClock=void 0;var YLr=class{constructor(t,r){this._monotonicClock=r,this._epochMillis=t.now(),this._performanceMillis=r.now()}now(){let t=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+t}};OSt.AnchoredClock=YLr});var POi=H(Uce=>{"use strict";Object.defineProperty(Uce,"__esModule",{value:!0});Uce.isAttributeValue=Uce.isAttributeKey=Uce.sanitizeAttributes=void 0;var FOi=(GI(),vi(xI));function t2c(e){let t={};if(typeof e!="object"||e==null)return t;for(let[r,n]of Object.entries(e)){if(!ZOi(r)){FOi.diag.warn(`Invalid attribute key: ${r}`);continue}if(!LOi(n)){FOi.diag.warn(`Invalid attribute value set for key: ${r}`);continue}Array.isArray(n)?t[r]=n.slice():t[r]=n}return t}Uce.sanitizeAttributes=t2c;function ZOi(e){return typeof e=="string"&&e.length>0}Uce.isAttributeKey=ZOi;function LOi(e){return e==null?!0:Array.isArray(e)?r2c(e):VOi(e)}Uce.isAttributeValue=LOi;function r2c(e){let t;for(let r of e)if(r!=null){if(!t){if(VOi(r)){t=typeof r;continue}return!1}if(typeof r!==t)return!1}return!0}function VOi(e){switch(typeof e){case"number":case"boolean":case"string":return!0}return!1}});var QLr=H(MSt=>{"use strict";Object.defineProperty(MSt,"__esModule",{value:!0});MSt.loggingErrorHandler=void 0;var n2c=(GI(),vi(xI));function i2c(){return e=>{n2c.diag.error(s2c(e))}}MSt.loggingErrorHandler=i2c;function s2c(e){return typeof e=="string"?e:JSON.stringify(o2c(e))}function o2c(e){let t={},r=e;for(;r!==null;)Object.getOwnPropertyNames(r).forEach(n=>{if(t[n])return;let a=r[n];a&&(t[n]=String(a))}),r=Object.getPrototypeOf(r);return t}});var XLr=H(FDe=>{"use strict";Object.defineProperty(FDe,"__esModule",{value:!0});FDe.globalErrorHandler=FDe.setGlobalErrorHandler=void 0;var a2c=QLr(),WOi=(0,a2c.loggingErrorHandler)();function c2c(e){WOi=e}FDe.setGlobalErrorHandler=c2c;function l2c(e){try{WOi(e)}catch{}}FDe.globalErrorHandler=l2c});var JLr=H(FKe=>{"use strict";Object.defineProperty(FKe,"__esModule",{value:!0});FKe.TracesSamplerValues=void 0;var u2c;(function(e){e.AlwaysOff="always_off",e.AlwaysOn="always_on",e.ParentBasedAlwaysOff="parentbased_always_off",e.ParentBasedAlwaysOn="parentbased_always_on",e.ParentBasedTraceIdRatio="parentbased_traceidratio",e.TraceIdRatio="traceidratio"})(u2c=FKe.TracesSamplerValues||(FKe.TracesSamplerValues={}))});var ULr=H(LS=>{"use strict";Object.defineProperty(LS,"__esModule",{value:!0});LS.parseEnvironment=LS.DEFAULT_ENVIRONMENT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=void 0;var Kce=(GI(),vi(xI)),g2c=JLr(),A2c=",",d2c=["OTEL_SDK_DISABLED"];function p2c(e){return d2c.indexOf(e)>-1}var f2c=["OTEL_BSP_EXPORT_TIMEOUT","OTEL_BSP_MAX_EXPORT_BATCH_SIZE","OTEL_BSP_MAX_QUEUE_SIZE","OTEL_BSP_SCHEDULE_DELAY","OTEL_BLRP_EXPORT_TIMEOUT","OTEL_BLRP_MAX_EXPORT_BATCH_SIZE","OTEL_BLRP_MAX_QUEUE_SIZE","OTEL_BLRP_SCHEDULE_DELAY","OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT","OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT","OTEL_SPAN_EVENT_COUNT_LIMIT","OTEL_SPAN_LINK_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT","OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT","OTEL_EXPORTER_OTLP_TIMEOUT","OTEL_EXPORTER_OTLP_TRACES_TIMEOUT","OTEL_EXPORTER_OTLP_METRICS_TIMEOUT","OTEL_EXPORTER_OTLP_LOGS_TIMEOUT","OTEL_EXPORTER_JAEGER_AGENT_PORT"];function I2c(e){return f2c.indexOf(e)>-1}var h2c=["OTEL_NO_PATCH_MODULES","OTEL_PROPAGATORS","OTEL_SEMCONV_STABILITY_OPT_IN"];function m2c(e){return h2c.indexOf(e)>-1}LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=1/0;LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=128;LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=128;LS.DEFAULT_ENVIRONMENT={OTEL_SDK_DISABLED:!1,CONTAINER_NAME:"",ECS_CONTAINER_METADATA_URI_V4:"",ECS_CONTAINER_METADATA_URI:"",HOSTNAME:"",KUBERNETES_SERVICE_HOST:"",NAMESPACE:"",OTEL_BSP_EXPORT_TIMEOUT:3e4,OTEL_BSP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BSP_MAX_QUEUE_SIZE:2048,OTEL_BSP_SCHEDULE_DELAY:5e3,OTEL_BLRP_EXPORT_TIMEOUT:3e4,OTEL_BLRP_MAX_EXPORT_BATCH_SIZE:512,OTEL_BLRP_MAX_QUEUE_SIZE:2048,OTEL_BLRP_SCHEDULE_DELAY:5e3,OTEL_EXPORTER_JAEGER_AGENT_HOST:"",OTEL_EXPORTER_JAEGER_AGENT_PORT:6832,OTEL_EXPORTER_JAEGER_ENDPOINT:"",OTEL_EXPORTER_JAEGER_PASSWORD:"",OTEL_EXPORTER_JAEGER_USER:"",OTEL_EXPORTER_OTLP_ENDPOINT:"",OTEL_EXPORTER_OTLP_TRACES_ENDPOINT:"",OTEL_EXPORTER_OTLP_METRICS_ENDPOINT:"",OTEL_EXPORTER_OTLP_LOGS_ENDPOINT:"",OTEL_EXPORTER_OTLP_HEADERS:"",OTEL_EXPORTER_OTLP_TRACES_HEADERS:"",OTEL_EXPORTER_OTLP_METRICS_HEADERS:"",OTEL_EXPORTER_OTLP_LOGS_HEADERS:"",OTEL_EXPORTER_OTLP_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_TRACES_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_METRICS_TIMEOUT:1e4,OTEL_EXPORTER_OTLP_LOGS_TIMEOUT:1e4,OTEL_EXPORTER_ZIPKIN_ENDPOINT:"http://localhost:9411/api/v2/spans",OTEL_LOG_LEVEL:Kce.DiagLogLevel.INFO,OTEL_NO_PATCH_MODULES:[],OTEL_PROPAGATORS:["tracecontext","baggage"],OTEL_RESOURCE_ATTRIBUTES:"",OTEL_SERVICE_NAME:"",OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT:LS.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT,OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT:LS.DEFAULT_ATTRIBUTE_COUNT_LIMIT,OTEL_SPAN_EVENT_COUNT_LIMIT:128,OTEL_SPAN_LINK_COUNT_LIMIT:128,OTEL_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT,OTEL_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT:LS.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT,OTEL_TRACES_EXPORTER:"",OTEL_TRACES_SAMPLER:g2c.TracesSamplerValues.ParentBasedAlwaysOn,OTEL_TRACES_SAMPLER_ARG:"",OTEL_LOGS_EXPORTER:"",OTEL_EXPORTER_OTLP_INSECURE:"",OTEL_EXPORTER_OTLP_TRACES_INSECURE:"",OTEL_EXPORTER_OTLP_METRICS_INSECURE:"",OTEL_EXPORTER_OTLP_LOGS_INSECURE:"",OTEL_EXPORTER_OTLP_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CERTIFICATE:"",OTEL_EXPORTER_OTLP_COMPRESSION:"",OTEL_EXPORTER_OTLP_TRACES_COMPRESSION:"",OTEL_EXPORTER_OTLP_METRICS_COMPRESSION:"",OTEL_EXPORTER_OTLP_LOGS_COMPRESSION:"",OTEL_EXPORTER_OTLP_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_KEY:"",OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_LOGS_CLIENT_CERTIFICATE:"",OTEL_EXPORTER_OTLP_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_TRACES_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_LOGS_PROTOCOL:"http/protobuf",OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE:"cumulative",OTEL_SEMCONV_STABILITY_OPT_IN:[]};function C2c(e,t,r){if(typeof r[e]>"u")return;let n=String(r[e]);t[e]=n.toLowerCase()==="true"}function _2c(e,t,r,n=-1/0,a=1/0){if(typeof r[e]<"u"){let o=Number(r[e]);isNaN(o)||(oa?t[e]=a:t[e]=o)}}function y2c(e,t,r,n=A2c){let a=r[e];typeof a=="string"&&(t[e]=a.split(n).map(o=>o.trim()))}var b2c={ALL:Kce.DiagLogLevel.ALL,VERBOSE:Kce.DiagLogLevel.VERBOSE,DEBUG:Kce.DiagLogLevel.DEBUG,INFO:Kce.DiagLogLevel.INFO,WARN:Kce.DiagLogLevel.WARN,ERROR:Kce.DiagLogLevel.ERROR,NONE:Kce.DiagLogLevel.NONE};function E2c(e,t,r){let n=r[e];if(typeof n=="string"){let a=b2c[n.toUpperCase()];a!=null&&(t[e]=a)}}function S2c(e){let t={};for(let r in LS.DEFAULT_ENVIRONMENT){let n=r;switch(n){case"OTEL_LOG_LEVEL":E2c(n,t,e);break;default:if(p2c(n))C2c(n,t,e);else if(I2c(n))_2c(n,t,e);else if(m2c(n))y2c(n,t,e);else{let a=e[n];typeof a<"u"&&a!==null&&(t[n]=String(a))}}}return t}LS.parseEnvironment=S2c});var OOi=H(ZDe=>{"use strict";Object.defineProperty(ZDe,"__esModule",{value:!0});ZDe.getEnvWithoutDefaults=ZDe.getEnv=void 0;var KLr=ULr();function v2c(){let e=(0,KLr.parseEnvironment)(process.env);return Object.assign({},KLr.DEFAULT_ENVIRONMENT,e)}ZDe.getEnv=v2c;function B2c(){return(0,KLr.parseEnvironment)(process.env)}ZDe.getEnvWithoutDefaults=B2c});var MOi=H(HSt=>{"use strict";Object.defineProperty(HSt,"__esModule",{value:!0});HSt._globalThis=void 0;HSt._globalThis=typeof globalThis=="object"?globalThis:global});var jLr=H(YSt=>{"use strict";Object.defineProperty(YSt,"__esModule",{value:!0});YSt.hexToBinary=void 0;function HOi(e){return e>=48&&e<=57?e-48:e>=97&&e<=102?e-87:e-55}function w2c(e){let t=new Uint8Array(e.length/2),r=0;for(let n=0;n{"use strict";Object.defineProperty(QSt,"__esModule",{value:!0});QSt.hexToBase64=void 0;var T2c=jLr();function R2c(e){return Buffer.from((0,T2c.hexToBinary)(e)).toString("base64")}QSt.hexToBase64=R2c});var JOi=H(JSt=>{"use strict";Object.defineProperty(JSt,"__esModule",{value:!0});JSt.RandomIdGenerator=void 0;var N2c=8,XOi=16,zLr=class{constructor(){this.generateTraceId=QOi(XOi),this.generateSpanId=QOi(N2c)}};JSt.RandomIdGenerator=zLr;var XSt=Buffer.allocUnsafe(XOi);function QOi(e){return function(){for(let r=0;r>>0,r*4);for(let r=0;r0);r++)r===e-1&&(XSt[e-1]=1);return XSt.toString("hex",0,e)}}});var UOi=H(USt=>{"use strict";Object.defineProperty(USt,"__esModule",{value:!0});USt.otperformance=void 0;var D2c=wt("perf_hooks");USt.otperformance=D2c.performance});var qLr=H(KSt=>{"use strict";Object.defineProperty(KSt,"__esModule",{value:!0});KSt.VERSION=void 0;KSt.VERSION="1.27.0"});function iw(e){for(var t={},r=e.length,n=0;n{});var KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi,k2c,x2c,G2c,F2c,Z2c,L2c,V2c,P2c,W2c,O2c,M2c,H2c,Y2c,Q2c,X2c,J2c,U2c,K2c,j2c,z2c,q2c,$2c,eSc,tSc,rSc,nSc,iSc,sSc,oSc,aSc,cSc,lSc,uSc,gSc,ASc,dSc,pSc,fSc,ISc,hSc,mSc,CSc,_Sc,ySc,bSc,ESc,SSc,vSc,BSc,wSc,TSc,RSc,NSc,DSc,kSc,xSc,GSc,FSc,ZSc,LSc,VSc,PSc,WSc,OSc,MSc,HSc,YSc,QSc,XSc,JSc,USc,KSc,jSc,zSc,qSc,$Sc,evc,tvc,rvc,nvc,ivc,svc,ovc,avc,cvc,lvc,uvc,gvc,Avc,dvc,pvc,fvc,Ivc,hvc,mvc,Cvc,_vc,yvc,bvc,Evc,Svc,vvc,Bvc,wvc,Tvc,Rvc,Nvc,Dvc,kvc,xvc,Gvc,Fvc,Zvc,Lvc,Vvc,Pvc,Wvc,Ovc,Mvc,Hvc,Yvc,Qvc,Xvc,Jvc,Uvc,Kvc,jvc,zvc,qvc,fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi,$vc,eBc,tBc,rBc,nBc,iBc,sBc,oBc,aBc,cBc,lBc,uBc,gBc,ABc,dBc,pBc,fBc,IBc,hBc,mBc,CBc,_Bc,yBc,bBc,EBc,SBc,vBc,BBc,wBc,TBc,RBc,NBc,DBc,kBc,xBc,GBc,FBc,ZBc,LBc,VBc,PBc,WBc,OBc,MBc,HBc,YBc,QBc,XBc,cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi,JBc,UBc,KBc,jBc,zBc,qBc,$Bc,ewc,twc,rwc,nwc,iwc,CHi,_Hi,yHi,bHi,EHi,swc,owc,awc,cwc,lwc,uwc,SHi,vHi,BHi,gwc,Awc,dwc,pwc,wHi,THi,RHi,NHi,fwc,Iwc,hwc,mwc,Cwc,DHi,kHi,xHi,GHi,FHi,ZHi,LHi,_wc,ywc,bwc,Ewc,Swc,vwc,Bwc,wwc,VHi,PHi,WHi,OHi,MHi,Twc,Rwc,Nwc,Dwc,kwc,xwc,HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi,Gwc,Fwc,Zwc,Lwc,Vwc,Pwc,Wwc,Owc,Mwc,Hwc,Ywc,Qwc,Xwc,Jwc,Uwc,Kwc,jwc,zwc,qwc,$wc,eTc,tTc,uYi,gYi,AYi,dYi,pYi,rTc,nTc,iTc,sTc,oTc,aTc,fYi,IYi,cTc,lTc,uTc,hYi,mYi,gTc,ATc,dTc,CYi,_Yi,yYi,bYi,EYi,SYi,vYi,BYi,wYi,TYi,RYi,NYi,DYi,kYi,xYi,GYi,FYi,pTc,fTc,ITc,hTc,mTc,CTc,_Tc,yTc,bTc,ETc,STc,vTc,BTc,wTc,TTc,RTc,NTc,DTc,ZYi,LYi,kTc,xTc,GTc,VYi=bc(()=>{$Lr();KOi="aws.lambda.invoked_arn",jOi="db.system",zOi="db.connection_string",qOi="db.user",$Oi="db.jdbc.driver_classname",e3i="db.name",t3i="db.statement",r3i="db.operation",n3i="db.mssql.instance_name",i3i="db.cassandra.keyspace",s3i="db.cassandra.page_size",o3i="db.cassandra.consistency_level",a3i="db.cassandra.table",c3i="db.cassandra.idempotence",l3i="db.cassandra.speculative_execution_count",u3i="db.cassandra.coordinator.id",g3i="db.cassandra.coordinator.dc",A3i="db.hbase.namespace",d3i="db.redis.database_index",p3i="db.mongodb.collection",f3i="db.sql.table",I3i="exception.type",h3i="exception.message",m3i="exception.stacktrace",C3i="exception.escaped",_3i="faas.trigger",y3i="faas.execution",b3i="faas.document.collection",E3i="faas.document.operation",S3i="faas.document.time",v3i="faas.document.name",B3i="faas.time",w3i="faas.cron",T3i="faas.coldstart",R3i="faas.invoked_name",N3i="faas.invoked_provider",D3i="faas.invoked_region",k3i="net.transport",x3i="net.peer.ip",G3i="net.peer.port",F3i="net.peer.name",Z3i="net.host.ip",L3i="net.host.port",V3i="net.host.name",P3i="net.host.connection.type",W3i="net.host.connection.subtype",O3i="net.host.carrier.name",M3i="net.host.carrier.mcc",H3i="net.host.carrier.mnc",Y3i="net.host.carrier.icc",Q3i="peer.service",X3i="enduser.id",J3i="enduser.role",U3i="enduser.scope",K3i="thread.id",j3i="thread.name",z3i="code.function",q3i="code.namespace",$3i="code.filepath",e5i="code.lineno",t5i="http.method",r5i="http.url",n5i="http.target",i5i="http.host",s5i="http.scheme",o5i="http.status_code",a5i="http.flavor",c5i="http.user_agent",l5i="http.request_content_length",u5i="http.request_content_length_uncompressed",g5i="http.response_content_length",A5i="http.response_content_length_uncompressed",d5i="http.server_name",p5i="http.route",f5i="http.client_ip",I5i="aws.dynamodb.table_names",h5i="aws.dynamodb.consumed_capacity",m5i="aws.dynamodb.item_collection_metrics",C5i="aws.dynamodb.provisioned_read_capacity",_5i="aws.dynamodb.provisioned_write_capacity",y5i="aws.dynamodb.consistent_read",b5i="aws.dynamodb.projection",E5i="aws.dynamodb.limit",S5i="aws.dynamodb.attributes_to_get",v5i="aws.dynamodb.index_name",B5i="aws.dynamodb.select",w5i="aws.dynamodb.global_secondary_indexes",T5i="aws.dynamodb.local_secondary_indexes",R5i="aws.dynamodb.exclusive_start_table",N5i="aws.dynamodb.table_count",D5i="aws.dynamodb.scan_forward",k5i="aws.dynamodb.segment",x5i="aws.dynamodb.total_segments",G5i="aws.dynamodb.count",F5i="aws.dynamodb.scanned_count",Z5i="aws.dynamodb.attribute_definitions",L5i="aws.dynamodb.global_secondary_index_updates",V5i="messaging.system",P5i="messaging.destination",W5i="messaging.destination_kind",O5i="messaging.temp_destination",M5i="messaging.protocol",H5i="messaging.protocol_version",Y5i="messaging.url",Q5i="messaging.message_id",X5i="messaging.conversation_id",J5i="messaging.message_payload_size_bytes",U5i="messaging.message_payload_compressed_size_bytes",K5i="messaging.operation",j5i="messaging.consumer_id",z5i="messaging.rabbitmq.routing_key",q5i="messaging.kafka.message_key",$5i="messaging.kafka.consumer_group",eMi="messaging.kafka.client_id",tMi="messaging.kafka.partition",rMi="messaging.kafka.tombstone",nMi="rpc.system",iMi="rpc.service",sMi="rpc.method",oMi="rpc.grpc.status_code",aMi="rpc.jsonrpc.version",cMi="rpc.jsonrpc.request_id",lMi="rpc.jsonrpc.error_code",uMi="rpc.jsonrpc.error_message",gMi="message.type",AMi="message.id",dMi="message.compressed_size",pMi="message.uncompressed_size",k2c=KOi,x2c=jOi,G2c=zOi,F2c=qOi,Z2c=$Oi,L2c=e3i,V2c=t3i,P2c=r3i,W2c=n3i,O2c=i3i,M2c=s3i,H2c=o3i,Y2c=a3i,Q2c=c3i,X2c=l3i,J2c=u3i,U2c=g3i,K2c=A3i,j2c=d3i,z2c=p3i,q2c=f3i,$2c=I3i,eSc=h3i,tSc=m3i,rSc=C3i,nSc=_3i,iSc=y3i,sSc=b3i,oSc=E3i,aSc=S3i,cSc=v3i,lSc=B3i,uSc=w3i,gSc=T3i,ASc=R3i,dSc=N3i,pSc=D3i,fSc=k3i,ISc=x3i,hSc=G3i,mSc=F3i,CSc=Z3i,_Sc=L3i,ySc=V3i,bSc=P3i,ESc=W3i,SSc=O3i,vSc=M3i,BSc=H3i,wSc=Y3i,TSc=Q3i,RSc=X3i,NSc=J3i,DSc=U3i,kSc=K3i,xSc=j3i,GSc=z3i,FSc=q3i,ZSc=$3i,LSc=e5i,VSc=t5i,PSc=r5i,WSc=n5i,OSc=i5i,MSc=s5i,HSc=o5i,YSc=a5i,QSc=c5i,XSc=l5i,JSc=u5i,USc=g5i,KSc=A5i,jSc=d5i,zSc=p5i,qSc=f5i,$Sc=I5i,evc=h5i,tvc=m5i,rvc=C5i,nvc=_5i,ivc=y5i,svc=b5i,ovc=E5i,avc=S5i,cvc=v5i,lvc=B5i,uvc=w5i,gvc=T5i,Avc=R5i,dvc=N5i,pvc=D5i,fvc=k5i,Ivc=x5i,hvc=G5i,mvc=F5i,Cvc=Z5i,_vc=L5i,yvc=V5i,bvc=P5i,Evc=W5i,Svc=O5i,vvc=M5i,Bvc=H5i,wvc=Y5i,Tvc=Q5i,Rvc=X5i,Nvc=J5i,Dvc=U5i,kvc=K5i,xvc=j5i,Gvc=z5i,Fvc=q5i,Zvc=$5i,Lvc=eMi,Vvc=tMi,Pvc=rMi,Wvc=nMi,Ovc=iMi,Mvc=sMi,Hvc=oMi,Yvc=aMi,Qvc=cMi,Xvc=lMi,Jvc=uMi,Uvc=gMi,Kvc=AMi,jvc=dMi,zvc=pMi,qvc=iw([KOi,jOi,zOi,qOi,$Oi,e3i,t3i,r3i,n3i,i3i,s3i,o3i,a3i,c3i,l3i,u3i,g3i,A3i,d3i,p3i,f3i,I3i,h3i,m3i,C3i,_3i,y3i,b3i,E3i,S3i,v3i,B3i,w3i,T3i,R3i,N3i,D3i,k3i,x3i,G3i,F3i,Z3i,L3i,V3i,P3i,W3i,O3i,M3i,H3i,Y3i,Q3i,X3i,J3i,U3i,K3i,j3i,z3i,q3i,$3i,e5i,t5i,r5i,n5i,i5i,s5i,o5i,a5i,c5i,l5i,u5i,g5i,A5i,d5i,p5i,f5i,I5i,h5i,m5i,C5i,_5i,y5i,b5i,E5i,S5i,v5i,B5i,w5i,T5i,R5i,N5i,D5i,k5i,x5i,G5i,F5i,Z5i,L5i,V5i,P5i,W5i,O5i,M5i,H5i,Y5i,Q5i,X5i,J5i,U5i,K5i,j5i,z5i,q5i,$5i,eMi,tMi,rMi,nMi,iMi,sMi,oMi,aMi,cMi,lMi,uMi,gMi,AMi,dMi,pMi]),fMi="other_sql",IMi="mssql",hMi="mysql",mMi="oracle",CMi="db2",_Mi="postgresql",yMi="redshift",bMi="hive",EMi="cloudscape",SMi="hsqldb",vMi="progress",BMi="maxdb",wMi="hanadb",TMi="ingres",RMi="firstsql",NMi="edb",DMi="cache",kMi="adabas",xMi="firebird",GMi="derby",FMi="filemaker",ZMi="informix",LMi="instantdb",VMi="interbase",PMi="mariadb",WMi="netezza",OMi="pervasive",MMi="pointbase",HMi="sqlite",YMi="sybase",QMi="teradata",XMi="vertica",JMi="h2",UMi="coldfusion",KMi="cassandra",jMi="hbase",zMi="mongodb",qMi="redis",$Mi="couchbase",eHi="couchdb",tHi="cosmosdb",rHi="dynamodb",nHi="neo4j",iHi="geode",sHi="elasticsearch",oHi="memcached",aHi="cockroachdb",$vc=fMi,eBc=IMi,tBc=hMi,rBc=mMi,nBc=CMi,iBc=_Mi,sBc=yMi,oBc=bMi,aBc=EMi,cBc=SMi,lBc=vMi,uBc=BMi,gBc=wMi,ABc=TMi,dBc=RMi,pBc=NMi,fBc=DMi,IBc=kMi,hBc=xMi,mBc=GMi,CBc=FMi,_Bc=ZMi,yBc=LMi,bBc=VMi,EBc=PMi,SBc=WMi,vBc=OMi,BBc=MMi,wBc=HMi,TBc=YMi,RBc=QMi,NBc=XMi,DBc=JMi,kBc=UMi,xBc=KMi,GBc=jMi,FBc=zMi,ZBc=qMi,LBc=$Mi,VBc=eHi,PBc=tHi,WBc=rHi,OBc=nHi,MBc=iHi,HBc=sHi,YBc=oHi,QBc=aHi,XBc=iw([fMi,IMi,hMi,mMi,CMi,_Mi,yMi,bMi,EMi,SMi,vMi,BMi,wMi,TMi,RMi,NMi,DMi,kMi,xMi,GMi,FMi,ZMi,LMi,VMi,PMi,WMi,OMi,MMi,HMi,YMi,QMi,XMi,JMi,UMi,KMi,jMi,zMi,qMi,$Mi,eHi,tHi,rHi,nHi,iHi,sHi,oHi,aHi]),cHi="all",lHi="each_quorum",uHi="quorum",gHi="local_quorum",AHi="one",dHi="two",pHi="three",fHi="local_one",IHi="any",hHi="serial",mHi="local_serial",JBc=cHi,UBc=lHi,KBc=uHi,jBc=gHi,zBc=AHi,qBc=dHi,$Bc=pHi,ewc=fHi,twc=IHi,rwc=hHi,nwc=mHi,iwc=iw([cHi,lHi,uHi,gHi,AHi,dHi,pHi,fHi,IHi,hHi,mHi]),CHi="datasource",_Hi="http",yHi="pubsub",bHi="timer",EHi="other",swc=CHi,owc=_Hi,awc=yHi,cwc=bHi,lwc=EHi,uwc=iw([CHi,_Hi,yHi,bHi,EHi]),SHi="insert",vHi="edit",BHi="delete",gwc=SHi,Awc=vHi,dwc=BHi,pwc=iw([SHi,vHi,BHi]),wHi="alibaba_cloud",THi="aws",RHi="azure",NHi="gcp",fwc=wHi,Iwc=THi,hwc=RHi,mwc=NHi,Cwc=iw([wHi,THi,RHi,NHi]),DHi="ip_tcp",kHi="ip_udp",xHi="ip",GHi="unix",FHi="pipe",ZHi="inproc",LHi="other",_wc=DHi,ywc=kHi,bwc=xHi,Ewc=GHi,Swc=FHi,vwc=ZHi,Bwc=LHi,wwc=iw([DHi,kHi,xHi,GHi,FHi,ZHi,LHi]),VHi="wifi",PHi="wired",WHi="cell",OHi="unavailable",MHi="unknown",Twc=VHi,Rwc=PHi,Nwc=WHi,Dwc=OHi,kwc=MHi,xwc=iw([VHi,PHi,WHi,OHi,MHi]),HHi="gprs",YHi="edge",QHi="umts",XHi="cdma",JHi="evdo_0",UHi="evdo_a",KHi="cdma2000_1xrtt",jHi="hsdpa",zHi="hsupa",qHi="hspa",$Hi="iden",eYi="evdo_b",tYi="lte",rYi="ehrpd",nYi="hspap",iYi="gsm",sYi="td_scdma",oYi="iwlan",aYi="nr",cYi="nrnsa",lYi="lte_ca",Gwc=HHi,Fwc=YHi,Zwc=QHi,Lwc=XHi,Vwc=JHi,Pwc=UHi,Wwc=KHi,Owc=jHi,Mwc=zHi,Hwc=qHi,Ywc=$Hi,Qwc=eYi,Xwc=tYi,Jwc=rYi,Uwc=nYi,Kwc=iYi,jwc=sYi,zwc=oYi,qwc=aYi,$wc=cYi,eTc=lYi,tTc=iw([HHi,YHi,QHi,XHi,JHi,UHi,KHi,jHi,zHi,qHi,$Hi,eYi,tYi,rYi,nYi,iYi,sYi,oYi,aYi,cYi,lYi]),uYi="1.0",gYi="1.1",AYi="2.0",dYi="SPDY",pYi="QUIC",rTc=uYi,nTc=gYi,iTc=AYi,sTc=dYi,oTc=pYi,aTc={HTTP_1_0:uYi,HTTP_1_1:gYi,HTTP_2_0:AYi,SPDY:dYi,QUIC:pYi},fYi="queue",IYi="topic",cTc=fYi,lTc=IYi,uTc=iw([fYi,IYi]),hYi="receive",mYi="process",gTc=hYi,ATc=mYi,dTc=iw([hYi,mYi]),CYi=0,_Yi=1,yYi=2,bYi=3,EYi=4,SYi=5,vYi=6,BYi=7,wYi=8,TYi=9,RYi=10,NYi=11,DYi=12,kYi=13,xYi=14,GYi=15,FYi=16,pTc=CYi,fTc=_Yi,ITc=yYi,hTc=bYi,mTc=EYi,CTc=SYi,_Tc=vYi,yTc=BYi,bTc=wYi,ETc=TYi,STc=RYi,vTc=NYi,BTc=DYi,wTc=kYi,TTc=xYi,RTc=GYi,NTc=FYi,DTc={OK:CYi,CANCELLED:_Yi,UNKNOWN:yYi,INVALID_ARGUMENT:bYi,DEADLINE_EXCEEDED:EYi,NOT_FOUND:SYi,ALREADY_EXISTS:vYi,PERMISSION_DENIED:BYi,RESOURCE_EXHAUSTED:wYi,FAILED_PRECONDITION:TYi,ABORTED:RYi,OUT_OF_RANGE:NYi,UNIMPLEMENTED:DYi,INTERNAL:kYi,UNAVAILABLE:xYi,DATA_LOSS:GYi,UNAUTHENTICATED:FYi},ZYi="SENT",LYi="RECEIVED",kTc=ZYi,xTc=LYi,GTc=iw([ZYi,LYi])});var PYi=bc(()=>{VYi()});var WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi,FTc,ZTc,LTc,VTc,PTc,WTc,OTc,MTc,HTc,YTc,QTc,XTc,JTc,UTc,KTc,jTc,zTc,qTc,$Tc,eRc,tRc,rRc,nRc,iRc,sRc,oRc,aRc,cRc,lRc,uRc,gRc,ARc,dRc,pRc,fRc,IRc,hRc,mRc,CRc,_Rc,yRc,bRc,ERc,SRc,vRc,BRc,wRc,TRc,RRc,NRc,DRc,kRc,xRc,GRc,FRc,ZRc,LRc,VRc,PRc,WRc,ORc,MRc,HRc,YRc,QRc,XRc,JRc,URc,KRc,jRc,zRc,qRc,$Rc,eNc,tNc,rNc,nNc,iNc,sNc,oNc,aNc,cNc,dXi,pXi,fXi,IXi,lNc,uNc,gNc,ANc,dNc,hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi,pNc,fNc,INc,hNc,mNc,CNc,_Nc,yNc,bNc,ENc,SNc,vNc,BNc,wNc,TNc,RNc,NNc,DNc,GXi,FXi,kNc,xNc,GNc,ZXi,LXi,VXi,PXi,WXi,OXi,MXi,FNc,ZNc,LNc,VNc,PNc,WNc,ONc,MNc,HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi,HNc,YNc,QNc,XNc,JNc,UNc,KNc,jNc,zNc,qNc,$Nc,eDc,e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i,tDc,rDc,nDc,iDc,sDc,oDc,aDc,cDc,lDc,uDc,gDc,u4i=bc(()=>{$Lr();WYi="cloud.provider",OYi="cloud.account.id",MYi="cloud.region",HYi="cloud.availability_zone",YYi="cloud.platform",QYi="aws.ecs.container.arn",XYi="aws.ecs.cluster.arn",JYi="aws.ecs.launchtype",UYi="aws.ecs.task.arn",KYi="aws.ecs.task.family",jYi="aws.ecs.task.revision",zYi="aws.eks.cluster.arn",qYi="aws.log.group.names",$Yi="aws.log.group.arns",eQi="aws.log.stream.names",tQi="aws.log.stream.arns",rQi="container.name",nQi="container.id",iQi="container.runtime",sQi="container.image.name",oQi="container.image.tag",aQi="deployment.environment",cQi="device.id",lQi="device.model.identifier",uQi="device.model.name",gQi="faas.name",AQi="faas.id",dQi="faas.version",pQi="faas.instance",fQi="faas.max_memory",IQi="host.id",hQi="host.name",mQi="host.type",CQi="host.arch",_Qi="host.image.name",yQi="host.image.id",bQi="host.image.version",EQi="k8s.cluster.name",SQi="k8s.node.name",vQi="k8s.node.uid",BQi="k8s.namespace.name",wQi="k8s.pod.uid",TQi="k8s.pod.name",RQi="k8s.container.name",NQi="k8s.replicaset.uid",DQi="k8s.replicaset.name",kQi="k8s.deployment.uid",xQi="k8s.deployment.name",GQi="k8s.statefulset.uid",FQi="k8s.statefulset.name",ZQi="k8s.daemonset.uid",LQi="k8s.daemonset.name",VQi="k8s.job.uid",PQi="k8s.job.name",WQi="k8s.cronjob.uid",OQi="k8s.cronjob.name",MQi="os.type",HQi="os.description",YQi="os.name",QQi="os.version",XQi="process.pid",JQi="process.executable.name",UQi="process.executable.path",KQi="process.command",jQi="process.command_line",zQi="process.command_args",qQi="process.owner",$Qi="process.runtime.name",eXi="process.runtime.version",tXi="process.runtime.description",rXi="service.name",nXi="service.namespace",iXi="service.instance.id",sXi="service.version",oXi="telemetry.sdk.name",aXi="telemetry.sdk.language",cXi="telemetry.sdk.version",lXi="telemetry.auto.version",uXi="webengine.name",gXi="webengine.version",AXi="webengine.description",FTc=WYi,ZTc=OYi,LTc=MYi,VTc=HYi,PTc=YYi,WTc=QYi,OTc=XYi,MTc=JYi,HTc=UYi,YTc=KYi,QTc=jYi,XTc=zYi,JTc=qYi,UTc=$Yi,KTc=eQi,jTc=tQi,zTc=rQi,qTc=nQi,$Tc=iQi,eRc=sQi,tRc=oQi,rRc=aQi,nRc=cQi,iRc=lQi,sRc=uQi,oRc=gQi,aRc=AQi,cRc=dQi,lRc=pQi,uRc=fQi,gRc=IQi,ARc=hQi,dRc=mQi,pRc=CQi,fRc=_Qi,IRc=yQi,hRc=bQi,mRc=EQi,CRc=SQi,_Rc=vQi,yRc=BQi,bRc=wQi,ERc=TQi,SRc=RQi,vRc=NQi,BRc=DQi,wRc=kQi,TRc=xQi,RRc=GQi,NRc=FQi,DRc=ZQi,kRc=LQi,xRc=VQi,GRc=PQi,FRc=WQi,ZRc=OQi,LRc=MQi,VRc=HQi,PRc=YQi,WRc=QQi,ORc=XQi,MRc=JQi,HRc=UQi,YRc=KQi,QRc=jQi,XRc=zQi,JRc=qQi,URc=$Qi,KRc=eXi,jRc=tXi,zRc=rXi,qRc=nXi,$Rc=iXi,eNc=sXi,tNc=oXi,rNc=aXi,nNc=cXi,iNc=lXi,sNc=uXi,oNc=gXi,aNc=AXi,cNc=iw([WYi,OYi,MYi,HYi,YYi,QYi,XYi,JYi,UYi,KYi,jYi,zYi,qYi,$Yi,eQi,tQi,rQi,nQi,iQi,sQi,oQi,aQi,cQi,lQi,uQi,gQi,AQi,dQi,pQi,fQi,IQi,hQi,mQi,CQi,_Qi,yQi,bQi,EQi,SQi,vQi,BQi,wQi,TQi,RQi,NQi,DQi,kQi,xQi,GQi,FQi,ZQi,LQi,VQi,PQi,WQi,OQi,MQi,HQi,YQi,QQi,XQi,JQi,UQi,KQi,jQi,zQi,qQi,$Qi,eXi,tXi,rXi,nXi,iXi,sXi,oXi,aXi,cXi,lXi,uXi,gXi,AXi]),dXi="alibaba_cloud",pXi="aws",fXi="azure",IXi="gcp",lNc=dXi,uNc=pXi,gNc=fXi,ANc=IXi,dNc=iw([dXi,pXi,fXi,IXi]),hXi="alibaba_cloud_ecs",mXi="alibaba_cloud_fc",CXi="aws_ec2",_Xi="aws_ecs",yXi="aws_eks",bXi="aws_lambda",EXi="aws_elastic_beanstalk",SXi="azure_vm",vXi="azure_container_instances",BXi="azure_aks",wXi="azure_functions",TXi="azure_app_service",RXi="gcp_compute_engine",NXi="gcp_cloud_run",DXi="gcp_kubernetes_engine",kXi="gcp_cloud_functions",xXi="gcp_app_engine",pNc=hXi,fNc=mXi,INc=CXi,hNc=_Xi,mNc=yXi,CNc=bXi,_Nc=EXi,yNc=SXi,bNc=vXi,ENc=BXi,SNc=wXi,vNc=TXi,BNc=RXi,wNc=NXi,TNc=DXi,RNc=kXi,NNc=xXi,DNc=iw([hXi,mXi,CXi,_Xi,yXi,bXi,EXi,SXi,vXi,BXi,wXi,TXi,RXi,NXi,DXi,kXi,xXi]),GXi="ec2",FXi="fargate",kNc=GXi,xNc=FXi,GNc=iw([GXi,FXi]),ZXi="amd64",LXi="arm32",VXi="arm64",PXi="ia64",WXi="ppc32",OXi="ppc64",MXi="x86",FNc=ZXi,ZNc=LXi,LNc=VXi,VNc=PXi,PNc=WXi,WNc=OXi,ONc=MXi,MNc=iw([ZXi,LXi,VXi,PXi,WXi,OXi,MXi]),HXi="windows",YXi="linux",QXi="darwin",XXi="freebsd",JXi="netbsd",UXi="openbsd",KXi="dragonflybsd",jXi="hpux",zXi="aix",qXi="solaris",$Xi="z_os",HNc=HXi,YNc=YXi,QNc=QXi,XNc=XXi,JNc=JXi,UNc=UXi,KNc=KXi,jNc=jXi,zNc=zXi,qNc=qXi,$Nc=$Xi,eDc=iw([HXi,YXi,QXi,XXi,JXi,UXi,KXi,jXi,zXi,qXi,$Xi]),e4i="cpp",t4i="dotnet",r4i="erlang",n4i="go",i4i="java",s4i="nodejs",o4i="php",a4i="python",c4i="ruby",l4i="webjs",tDc=e4i,rDc=t4i,nDc=r4i,iDc=n4i,sDc=i4i,oDc=s4i,aDc=o4i,cDc=a4i,lDc=c4i,uDc=l4i,gDc=iw([e4i,t4i,r4i,n4i,i4i,s4i,o4i,a4i,c4i,l4i])});var g4i=bc(()=>{u4i()});var ADc,dDc,pDc,fDc,IDc,hDc,mDc,CDc,_Dc,yDc,bDc,EDc,SDc,vDc,BDc,wDc,TDc,RDc,NDc,DDc,kDc,xDc,GDc,FDc,ZDc,LDc,VDc,PDc,WDc,ODc,MDc,HDc,YDc,QDc,XDc,JDc,UDc,KDc,jDc,zDc,qDc,$Dc,ekc,tkc,rkc,nkc,ikc,skc,okc,akc,ckc,lkc,ukc,gkc,Akc,dkc,pkc,fkc,Ikc,hkc,mkc,Ckc,_kc,ykc,bkc,Ekc,Skc,vkc,Bkc,wkc,Tkc,Rkc,Nkc,Dkc,kkc,xkc,Gkc,Fkc,Zkc,Lkc,Vkc,Pkc,Wkc,Okc,Mkc,Hkc,Ykc,Qkc,Xkc,Jkc,Ukc,Kkc,jkc,zkc,qkc,$kc,exc,txc,rxc,nxc,ixc,sxc,oxc,axc,cxc,lxc,uxc,gxc,Axc,dxc,A4i=bc(()=>{ADc="aspnetcore.rate_limiting.result",dDc="acquired",pDc="endpoint_limiter",fDc="global_limiter",IDc="request_canceled",hDc="telemetry.sdk.language",mDc="cpp",CDc="dotnet",_Dc="erlang",yDc="go",bDc="java",EDc="nodejs",SDc="php",vDc="python",BDc="ruby",wDc="rust",TDc="swift",RDc="webjs",NDc="telemetry.sdk.name",DDc="telemetry.sdk.version",kDc="aspnetcore.diagnostics.handler.type",xDc="aspnetcore.diagnostics.exception.result",GDc="aborted",FDc="handled",ZDc="skipped",LDc="unhandled",VDc="aspnetcore.rate_limiting.policy",PDc="aspnetcore.request.is_unhandled",WDc="aspnetcore.routing.is_fallback",ODc="aspnetcore.routing.match_status",MDc="failure",HDc="success",YDc="client.address",QDc="client.port",XDc="error.type",JDc="_OTHER",UDc="exception.escaped",KDc="exception.message",jDc="exception.stacktrace",zDc="exception.type",qDc=function(e){return"http.request.header."+e},$Dc="http.request.method",ekc="_OTHER",tkc="CONNECT",rkc="DELETE",nkc="GET",ikc="HEAD",skc="OPTIONS",okc="PATCH",akc="POST",ckc="PUT",lkc="TRACE",ukc="http.request.method_original",gkc="http.request.resend_count",Akc=function(e){return"http.response.header."+e},dkc="http.response.status_code",pkc="http.route",fkc="jvm.gc.action",Ikc="jvm.gc.name",hkc="jvm.memory.pool.name",mkc="jvm.memory.type",Ckc="heap",_kc="non_heap",ykc="jvm.thread.daemon",bkc="jvm.thread.state",Ekc="blocked",Skc="new",vkc="runnable",Bkc="terminated",wkc="timed_waiting",Tkc="waiting",Rkc="network.local.address",Nkc="network.local.port",Dkc="network.peer.address",kkc="network.peer.port",xkc="network.protocol.name",Gkc="network.protocol.version",Fkc="network.transport",Zkc="pipe",Lkc="quic",Vkc="tcp",Pkc="udp",Wkc="unix",Okc="network.type",Mkc="ipv4",Hkc="ipv6",Ykc="otel.scope.name",Qkc="otel.scope.version",Xkc="otel.status_code",Jkc="ERROR",Ukc="OK",Kkc="otel.status_description",jkc="server.address",zkc="server.port",qkc="service.name",$kc="service.version",exc="signalr.connection.status",txc="app_shutdown",rxc="normal_closure",nxc="timeout",ixc="signalr.transport",sxc="long_polling",oxc="server_sent_events",axc="web_sockets",cxc="url.fragment",lxc="url.full",uxc="url.path",gxc="url.query",Axc="url.scheme",dxc="user_agent.original"});var pxc,fxc,Ixc,hxc,mxc,Cxc,_xc,yxc,bxc,Exc,Sxc,vxc,Bxc,wxc,Txc,Rxc,Nxc,Dxc,kxc,xxc,Gxc,Fxc,Zxc,Lxc,Vxc,Pxc,Wxc,Oxc,Mxc,Hxc,Yxc,d4i=bc(()=>{pxc="aspnetcore.diagnostics.exceptions",fxc="aspnetcore.rate_limiting.active_request_leases",Ixc="aspnetcore.rate_limiting.queued_requests",hxc="aspnetcore.rate_limiting.request.time_in_queue",mxc="aspnetcore.rate_limiting.request_lease.duration",Cxc="aspnetcore.rate_limiting.requests",_xc="aspnetcore.routing.match_attempts",yxc="http.client.request.duration",bxc="http.server.request.duration",Exc="jvm.class.count",Sxc="jvm.class.loaded",vxc="jvm.class.unloaded",Bxc="jvm.cpu.count",wxc="jvm.cpu.recent_utilization",Txc="jvm.cpu.time",Rxc="jvm.gc.duration",Nxc="jvm.memory.committed",Dxc="jvm.memory.limit",kxc="jvm.memory.used",xxc="jvm.memory.used_after_last_gc",Gxc="jvm.thread.count",Fxc="kestrel.active_connections",Zxc="kestrel.active_tls_handshakes",Lxc="kestrel.connection.duration",Vxc="kestrel.queued_connections",Pxc="kestrel.queued_requests",Wxc="kestrel.rejected_connections",Oxc="kestrel.tls_handshake.duration",Mxc="kestrel.upgraded_connections",Hxc="signalr.server.active_connections",Yxc="signalr.server.connection.duration"});var p4i={};sI(p4i,{ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_ABORTED:()=>GDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_HANDLED:()=>FDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_SKIPPED:()=>ZDc,ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT_VALUE_UNHANDLED:()=>LDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ACQUIRED:()=>dDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_ENDPOINT_LIMITER:()=>pDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_GLOBAL_LIMITER:()=>fDc,ASPNETCORE_RATE_LIMITING_RESULT_VALUE_REQUEST_CANCELED:()=>IDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_FAILURE:()=>MDc,ASPNETCORE_ROUTING_MATCH_STATUS_VALUE_SUCCESS:()=>HDc,ATTR_ASPNETCORE_DIAGNOSTICS_EXCEPTION_RESULT:()=>xDc,ATTR_ASPNETCORE_DIAGNOSTICS_HANDLER_TYPE:()=>kDc,ATTR_ASPNETCORE_RATE_LIMITING_POLICY:()=>VDc,ATTR_ASPNETCORE_RATE_LIMITING_RESULT:()=>ADc,ATTR_ASPNETCORE_REQUEST_IS_UNHANDLED:()=>PDc,ATTR_ASPNETCORE_ROUTING_IS_FALLBACK:()=>WDc,ATTR_ASPNETCORE_ROUTING_MATCH_STATUS:()=>ODc,ATTR_CLIENT_ADDRESS:()=>YDc,ATTR_CLIENT_PORT:()=>QDc,ATTR_ERROR_TYPE:()=>XDc,ATTR_EXCEPTION_ESCAPED:()=>UDc,ATTR_EXCEPTION_MESSAGE:()=>KDc,ATTR_EXCEPTION_STACKTRACE:()=>jDc,ATTR_EXCEPTION_TYPE:()=>zDc,ATTR_HTTP_REQUEST_HEADER:()=>qDc,ATTR_HTTP_REQUEST_METHOD:()=>$Dc,ATTR_HTTP_REQUEST_METHOD_ORIGINAL:()=>ukc,ATTR_HTTP_REQUEST_RESEND_COUNT:()=>gkc,ATTR_HTTP_RESPONSE_HEADER:()=>Akc,ATTR_HTTP_RESPONSE_STATUS_CODE:()=>dkc,ATTR_HTTP_ROUTE:()=>pkc,ATTR_JVM_GC_ACTION:()=>fkc,ATTR_JVM_GC_NAME:()=>Ikc,ATTR_JVM_MEMORY_POOL_NAME:()=>hkc,ATTR_JVM_MEMORY_TYPE:()=>mkc,ATTR_JVM_THREAD_DAEMON:()=>ykc,ATTR_JVM_THREAD_STATE:()=>bkc,ATTR_NETWORK_LOCAL_ADDRESS:()=>Rkc,ATTR_NETWORK_LOCAL_PORT:()=>Nkc,ATTR_NETWORK_PEER_ADDRESS:()=>Dkc,ATTR_NETWORK_PEER_PORT:()=>kkc,ATTR_NETWORK_PROTOCOL_NAME:()=>xkc,ATTR_NETWORK_PROTOCOL_VERSION:()=>Gkc,ATTR_NETWORK_TRANSPORT:()=>Fkc,ATTR_NETWORK_TYPE:()=>Okc,ATTR_OTEL_SCOPE_NAME:()=>Ykc,ATTR_OTEL_SCOPE_VERSION:()=>Qkc,ATTR_OTEL_STATUS_CODE:()=>Xkc,ATTR_OTEL_STATUS_DESCRIPTION:()=>Kkc,ATTR_SERVER_ADDRESS:()=>jkc,ATTR_SERVER_PORT:()=>zkc,ATTR_SERVICE_NAME:()=>qkc,ATTR_SERVICE_VERSION:()=>$kc,ATTR_SIGNALR_CONNECTION_STATUS:()=>exc,ATTR_SIGNALR_TRANSPORT:()=>ixc,ATTR_TELEMETRY_SDK_LANGUAGE:()=>hDc,ATTR_TELEMETRY_SDK_NAME:()=>NDc,ATTR_TELEMETRY_SDK_VERSION:()=>DDc,ATTR_URL_FRAGMENT:()=>cxc,ATTR_URL_FULL:()=>lxc,ATTR_URL_PATH:()=>uxc,ATTR_URL_QUERY:()=>gxc,ATTR_URL_SCHEME:()=>Axc,ATTR_USER_AGENT_ORIGINAL:()=>dxc,AWSECSLAUNCHTYPEVALUES_EC2:()=>kNc,AWSECSLAUNCHTYPEVALUES_FARGATE:()=>xNc,AwsEcsLaunchtypeValues:()=>GNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS:()=>pNc,CLOUDPLATFORMVALUES_ALIBABA_CLOUD_FC:()=>fNc,CLOUDPLATFORMVALUES_AWS_EC2:()=>INc,CLOUDPLATFORMVALUES_AWS_ECS:()=>hNc,CLOUDPLATFORMVALUES_AWS_EKS:()=>mNc,CLOUDPLATFORMVALUES_AWS_ELASTIC_BEANSTALK:()=>_Nc,CLOUDPLATFORMVALUES_AWS_LAMBDA:()=>CNc,CLOUDPLATFORMVALUES_AZURE_AKS:()=>ENc,CLOUDPLATFORMVALUES_AZURE_APP_SERVICE:()=>vNc,CLOUDPLATFORMVALUES_AZURE_CONTAINER_INSTANCES:()=>bNc,CLOUDPLATFORMVALUES_AZURE_FUNCTIONS:()=>SNc,CLOUDPLATFORMVALUES_AZURE_VM:()=>yNc,CLOUDPLATFORMVALUES_GCP_APP_ENGINE:()=>NNc,CLOUDPLATFORMVALUES_GCP_CLOUD_FUNCTIONS:()=>RNc,CLOUDPLATFORMVALUES_GCP_CLOUD_RUN:()=>wNc,CLOUDPLATFORMVALUES_GCP_COMPUTE_ENGINE:()=>BNc,CLOUDPLATFORMVALUES_GCP_KUBERNETES_ENGINE:()=>TNc,CLOUDPROVIDERVALUES_ALIBABA_CLOUD:()=>lNc,CLOUDPROVIDERVALUES_AWS:()=>uNc,CLOUDPROVIDERVALUES_AZURE:()=>gNc,CLOUDPROVIDERVALUES_GCP:()=>ANc,CloudPlatformValues:()=>DNc,CloudProviderValues:()=>dNc,DBCASSANDRACONSISTENCYLEVELVALUES_ALL:()=>JBc,DBCASSANDRACONSISTENCYLEVELVALUES_ANY:()=>twc,DBCASSANDRACONSISTENCYLEVELVALUES_EACH_QUORUM:()=>UBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_ONE:()=>ewc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_QUORUM:()=>jBc,DBCASSANDRACONSISTENCYLEVELVALUES_LOCAL_SERIAL:()=>nwc,DBCASSANDRACONSISTENCYLEVELVALUES_ONE:()=>zBc,DBCASSANDRACONSISTENCYLEVELVALUES_QUORUM:()=>KBc,DBCASSANDRACONSISTENCYLEVELVALUES_SERIAL:()=>rwc,DBCASSANDRACONSISTENCYLEVELVALUES_THREE:()=>$Bc,DBCASSANDRACONSISTENCYLEVELVALUES_TWO:()=>qBc,DBSYSTEMVALUES_ADABAS:()=>IBc,DBSYSTEMVALUES_CACHE:()=>fBc,DBSYSTEMVALUES_CASSANDRA:()=>xBc,DBSYSTEMVALUES_CLOUDSCAPE:()=>aBc,DBSYSTEMVALUES_COCKROACHDB:()=>QBc,DBSYSTEMVALUES_COLDFUSION:()=>kBc,DBSYSTEMVALUES_COSMOSDB:()=>PBc,DBSYSTEMVALUES_COUCHBASE:()=>LBc,DBSYSTEMVALUES_COUCHDB:()=>VBc,DBSYSTEMVALUES_DB2:()=>nBc,DBSYSTEMVALUES_DERBY:()=>mBc,DBSYSTEMVALUES_DYNAMODB:()=>WBc,DBSYSTEMVALUES_EDB:()=>pBc,DBSYSTEMVALUES_ELASTICSEARCH:()=>HBc,DBSYSTEMVALUES_FILEMAKER:()=>CBc,DBSYSTEMVALUES_FIREBIRD:()=>hBc,DBSYSTEMVALUES_FIRSTSQL:()=>dBc,DBSYSTEMVALUES_GEODE:()=>MBc,DBSYSTEMVALUES_H2:()=>DBc,DBSYSTEMVALUES_HANADB:()=>gBc,DBSYSTEMVALUES_HBASE:()=>GBc,DBSYSTEMVALUES_HIVE:()=>oBc,DBSYSTEMVALUES_HSQLDB:()=>cBc,DBSYSTEMVALUES_INFORMIX:()=>_Bc,DBSYSTEMVALUES_INGRES:()=>ABc,DBSYSTEMVALUES_INSTANTDB:()=>yBc,DBSYSTEMVALUES_INTERBASE:()=>bBc,DBSYSTEMVALUES_MARIADB:()=>EBc,DBSYSTEMVALUES_MAXDB:()=>uBc,DBSYSTEMVALUES_MEMCACHED:()=>YBc,DBSYSTEMVALUES_MONGODB:()=>FBc,DBSYSTEMVALUES_MSSQL:()=>eBc,DBSYSTEMVALUES_MYSQL:()=>tBc,DBSYSTEMVALUES_NEO4J:()=>OBc,DBSYSTEMVALUES_NETEZZA:()=>SBc,DBSYSTEMVALUES_ORACLE:()=>rBc,DBSYSTEMVALUES_OTHER_SQL:()=>$vc,DBSYSTEMVALUES_PERVASIVE:()=>vBc,DBSYSTEMVALUES_POINTBASE:()=>BBc,DBSYSTEMVALUES_POSTGRESQL:()=>iBc,DBSYSTEMVALUES_PROGRESS:()=>lBc,DBSYSTEMVALUES_REDIS:()=>ZBc,DBSYSTEMVALUES_REDSHIFT:()=>sBc,DBSYSTEMVALUES_SQLITE:()=>wBc,DBSYSTEMVALUES_SYBASE:()=>TBc,DBSYSTEMVALUES_TERADATA:()=>RBc,DBSYSTEMVALUES_VERTICA:()=>NBc,DbCassandraConsistencyLevelValues:()=>iwc,DbSystemValues:()=>XBc,ERROR_TYPE_VALUE_OTHER:()=>JDc,FAASDOCUMENTOPERATIONVALUES_DELETE:()=>dwc,FAASDOCUMENTOPERATIONVALUES_EDIT:()=>Awc,FAASDOCUMENTOPERATIONVALUES_INSERT:()=>gwc,FAASINVOKEDPROVIDERVALUES_ALIBABA_CLOUD:()=>fwc,FAASINVOKEDPROVIDERVALUES_AWS:()=>Iwc,FAASINVOKEDPROVIDERVALUES_AZURE:()=>hwc,FAASINVOKEDPROVIDERVALUES_GCP:()=>mwc,FAASTRIGGERVALUES_DATASOURCE:()=>swc,FAASTRIGGERVALUES_HTTP:()=>owc,FAASTRIGGERVALUES_OTHER:()=>lwc,FAASTRIGGERVALUES_PUBSUB:()=>awc,FAASTRIGGERVALUES_TIMER:()=>cwc,FaasDocumentOperationValues:()=>pwc,FaasInvokedProviderValues:()=>Cwc,FaasTriggerValues:()=>uwc,HOSTARCHVALUES_AMD64:()=>FNc,HOSTARCHVALUES_ARM32:()=>ZNc,HOSTARCHVALUES_ARM64:()=>LNc,HOSTARCHVALUES_IA64:()=>VNc,HOSTARCHVALUES_PPC32:()=>PNc,HOSTARCHVALUES_PPC64:()=>WNc,HOSTARCHVALUES_X86:()=>ONc,HTTPFLAVORVALUES_HTTP_1_0:()=>rTc,HTTPFLAVORVALUES_HTTP_1_1:()=>nTc,HTTPFLAVORVALUES_HTTP_2_0:()=>iTc,HTTPFLAVORVALUES_QUIC:()=>oTc,HTTPFLAVORVALUES_SPDY:()=>sTc,HTTP_REQUEST_METHOD_VALUE_CONNECT:()=>tkc,HTTP_REQUEST_METHOD_VALUE_DELETE:()=>rkc,HTTP_REQUEST_METHOD_VALUE_GET:()=>nkc,HTTP_REQUEST_METHOD_VALUE_HEAD:()=>ikc,HTTP_REQUEST_METHOD_VALUE_OPTIONS:()=>skc,HTTP_REQUEST_METHOD_VALUE_OTHER:()=>ekc,HTTP_REQUEST_METHOD_VALUE_PATCH:()=>okc,HTTP_REQUEST_METHOD_VALUE_POST:()=>akc,HTTP_REQUEST_METHOD_VALUE_PUT:()=>ckc,HTTP_REQUEST_METHOD_VALUE_TRACE:()=>lkc,HostArchValues:()=>MNc,HttpFlavorValues:()=>aTc,JVM_MEMORY_TYPE_VALUE_HEAP:()=>Ckc,JVM_MEMORY_TYPE_VALUE_NON_HEAP:()=>_kc,JVM_THREAD_STATE_VALUE_BLOCKED:()=>Ekc,JVM_THREAD_STATE_VALUE_NEW:()=>Skc,JVM_THREAD_STATE_VALUE_RUNNABLE:()=>vkc,JVM_THREAD_STATE_VALUE_TERMINATED:()=>Bkc,JVM_THREAD_STATE_VALUE_TIMED_WAITING:()=>wkc,JVM_THREAD_STATE_VALUE_WAITING:()=>Tkc,MESSAGETYPEVALUES_RECEIVED:()=>xTc,MESSAGETYPEVALUES_SENT:()=>kTc,MESSAGINGDESTINATIONKINDVALUES_QUEUE:()=>cTc,MESSAGINGDESTINATIONKINDVALUES_TOPIC:()=>lTc,MESSAGINGOPERATIONVALUES_PROCESS:()=>ATc,MESSAGINGOPERATIONVALUES_RECEIVE:()=>gTc,METRIC_ASPNETCORE_DIAGNOSTICS_EXCEPTIONS:()=>pxc,METRIC_ASPNETCORE_RATE_LIMITING_ACTIVE_REQUEST_LEASES:()=>fxc,METRIC_ASPNETCORE_RATE_LIMITING_QUEUED_REQUESTS:()=>Ixc,METRIC_ASPNETCORE_RATE_LIMITING_REQUESTS:()=>Cxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_LEASE_DURATION:()=>mxc,METRIC_ASPNETCORE_RATE_LIMITING_REQUEST_TIME_IN_QUEUE:()=>hxc,METRIC_ASPNETCORE_ROUTING_MATCH_ATTEMPTS:()=>_xc,METRIC_HTTP_CLIENT_REQUEST_DURATION:()=>yxc,METRIC_HTTP_SERVER_REQUEST_DURATION:()=>bxc,METRIC_JVM_CLASS_COUNT:()=>Exc,METRIC_JVM_CLASS_LOADED:()=>Sxc,METRIC_JVM_CLASS_UNLOADED:()=>vxc,METRIC_JVM_CPU_COUNT:()=>Bxc,METRIC_JVM_CPU_RECENT_UTILIZATION:()=>wxc,METRIC_JVM_CPU_TIME:()=>Txc,METRIC_JVM_GC_DURATION:()=>Rxc,METRIC_JVM_MEMORY_COMMITTED:()=>Nxc,METRIC_JVM_MEMORY_LIMIT:()=>Dxc,METRIC_JVM_MEMORY_USED:()=>kxc,METRIC_JVM_MEMORY_USED_AFTER_LAST_GC:()=>xxc,METRIC_JVM_THREAD_COUNT:()=>Gxc,METRIC_KESTREL_ACTIVE_CONNECTIONS:()=>Fxc,METRIC_KESTREL_ACTIVE_TLS_HANDSHAKES:()=>Zxc,METRIC_KESTREL_CONNECTION_DURATION:()=>Lxc,METRIC_KESTREL_QUEUED_CONNECTIONS:()=>Vxc,METRIC_KESTREL_QUEUED_REQUESTS:()=>Pxc,METRIC_KESTREL_REJECTED_CONNECTIONS:()=>Wxc,METRIC_KESTREL_TLS_HANDSHAKE_DURATION:()=>Oxc,METRIC_KESTREL_UPGRADED_CONNECTIONS:()=>Mxc,METRIC_SIGNALR_SERVER_ACTIVE_CONNECTIONS:()=>Hxc,METRIC_SIGNALR_SERVER_CONNECTION_DURATION:()=>Yxc,MessageTypeValues:()=>GTc,MessagingDestinationKindValues:()=>uTc,MessagingOperationValues:()=>dTc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA:()=>Lwc,NETHOSTCONNECTIONSUBTYPEVALUES_CDMA2000_1XRTT:()=>Wwc,NETHOSTCONNECTIONSUBTYPEVALUES_EDGE:()=>Fwc,NETHOSTCONNECTIONSUBTYPEVALUES_EHRPD:()=>Jwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_0:()=>Vwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_A:()=>Pwc,NETHOSTCONNECTIONSUBTYPEVALUES_EVDO_B:()=>Qwc,NETHOSTCONNECTIONSUBTYPEVALUES_GPRS:()=>Gwc,NETHOSTCONNECTIONSUBTYPEVALUES_GSM:()=>Kwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSDPA:()=>Owc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPA:()=>Hwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSPAP:()=>Uwc,NETHOSTCONNECTIONSUBTYPEVALUES_HSUPA:()=>Mwc,NETHOSTCONNECTIONSUBTYPEVALUES_IDEN:()=>Ywc,NETHOSTCONNECTIONSUBTYPEVALUES_IWLAN:()=>zwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE:()=>Xwc,NETHOSTCONNECTIONSUBTYPEVALUES_LTE_CA:()=>eTc,NETHOSTCONNECTIONSUBTYPEVALUES_NR:()=>qwc,NETHOSTCONNECTIONSUBTYPEVALUES_NRNSA:()=>$wc,NETHOSTCONNECTIONSUBTYPEVALUES_TD_SCDMA:()=>jwc,NETHOSTCONNECTIONSUBTYPEVALUES_UMTS:()=>Zwc,NETHOSTCONNECTIONTYPEVALUES_CELL:()=>Nwc,NETHOSTCONNECTIONTYPEVALUES_UNAVAILABLE:()=>Dwc,NETHOSTCONNECTIONTYPEVALUES_UNKNOWN:()=>kwc,NETHOSTCONNECTIONTYPEVALUES_WIFI:()=>Twc,NETHOSTCONNECTIONTYPEVALUES_WIRED:()=>Rwc,NETTRANSPORTVALUES_INPROC:()=>vwc,NETTRANSPORTVALUES_IP:()=>bwc,NETTRANSPORTVALUES_IP_TCP:()=>_wc,NETTRANSPORTVALUES_IP_UDP:()=>ywc,NETTRANSPORTVALUES_OTHER:()=>Bwc,NETTRANSPORTVALUES_PIPE:()=>Swc,NETTRANSPORTVALUES_UNIX:()=>Ewc,NETWORK_TRANSPORT_VALUE_PIPE:()=>Zkc,NETWORK_TRANSPORT_VALUE_QUIC:()=>Lkc,NETWORK_TRANSPORT_VALUE_TCP:()=>Vkc,NETWORK_TRANSPORT_VALUE_UDP:()=>Pkc,NETWORK_TRANSPORT_VALUE_UNIX:()=>Wkc,NETWORK_TYPE_VALUE_IPV4:()=>Mkc,NETWORK_TYPE_VALUE_IPV6:()=>Hkc,NetHostConnectionSubtypeValues:()=>tTc,NetHostConnectionTypeValues:()=>xwc,NetTransportValues:()=>wwc,OSTYPEVALUES_AIX:()=>zNc,OSTYPEVALUES_DARWIN:()=>QNc,OSTYPEVALUES_DRAGONFLYBSD:()=>KNc,OSTYPEVALUES_FREEBSD:()=>XNc,OSTYPEVALUES_HPUX:()=>jNc,OSTYPEVALUES_LINUX:()=>YNc,OSTYPEVALUES_NETBSD:()=>JNc,OSTYPEVALUES_OPENBSD:()=>UNc,OSTYPEVALUES_SOLARIS:()=>qNc,OSTYPEVALUES_WINDOWS:()=>HNc,OSTYPEVALUES_Z_OS:()=>$Nc,OTEL_STATUS_CODE_VALUE_ERROR:()=>Jkc,OTEL_STATUS_CODE_VALUE_OK:()=>Ukc,OsTypeValues:()=>eDc,RPCGRPCSTATUSCODEVALUES_ABORTED:()=>STc,RPCGRPCSTATUSCODEVALUES_ALREADY_EXISTS:()=>_Tc,RPCGRPCSTATUSCODEVALUES_CANCELLED:()=>fTc,RPCGRPCSTATUSCODEVALUES_DATA_LOSS:()=>RTc,RPCGRPCSTATUSCODEVALUES_DEADLINE_EXCEEDED:()=>mTc,RPCGRPCSTATUSCODEVALUES_FAILED_PRECONDITION:()=>ETc,RPCGRPCSTATUSCODEVALUES_INTERNAL:()=>wTc,RPCGRPCSTATUSCODEVALUES_INVALID_ARGUMENT:()=>hTc,RPCGRPCSTATUSCODEVALUES_NOT_FOUND:()=>CTc,RPCGRPCSTATUSCODEVALUES_OK:()=>pTc,RPCGRPCSTATUSCODEVALUES_OUT_OF_RANGE:()=>vTc,RPCGRPCSTATUSCODEVALUES_PERMISSION_DENIED:()=>yTc,RPCGRPCSTATUSCODEVALUES_RESOURCE_EXHAUSTED:()=>bTc,RPCGRPCSTATUSCODEVALUES_UNAUTHENTICATED:()=>NTc,RPCGRPCSTATUSCODEVALUES_UNAVAILABLE:()=>TTc,RPCGRPCSTATUSCODEVALUES_UNIMPLEMENTED:()=>BTc,RPCGRPCSTATUSCODEVALUES_UNKNOWN:()=>ITc,RpcGrpcStatusCodeValues:()=>DTc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTES_TO_GET:()=>avc,SEMATTRS_AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS:()=>Cvc,SEMATTRS_AWS_DYNAMODB_CONSISTENT_READ:()=>ivc,SEMATTRS_AWS_DYNAMODB_CONSUMED_CAPACITY:()=>evc,SEMATTRS_AWS_DYNAMODB_COUNT:()=>hvc,SEMATTRS_AWS_DYNAMODB_EXCLUSIVE_START_TABLE:()=>Avc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES:()=>uvc,SEMATTRS_AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES:()=>_vc,SEMATTRS_AWS_DYNAMODB_INDEX_NAME:()=>cvc,SEMATTRS_AWS_DYNAMODB_ITEM_COLLECTION_METRICS:()=>tvc,SEMATTRS_AWS_DYNAMODB_LIMIT:()=>ovc,SEMATTRS_AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES:()=>gvc,SEMATTRS_AWS_DYNAMODB_PROJECTION:()=>svc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_READ_CAPACITY:()=>rvc,SEMATTRS_AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY:()=>nvc,SEMATTRS_AWS_DYNAMODB_SCANNED_COUNT:()=>mvc,SEMATTRS_AWS_DYNAMODB_SCAN_FORWARD:()=>pvc,SEMATTRS_AWS_DYNAMODB_SEGMENT:()=>fvc,SEMATTRS_AWS_DYNAMODB_SELECT:()=>lvc,SEMATTRS_AWS_DYNAMODB_TABLE_COUNT:()=>dvc,SEMATTRS_AWS_DYNAMODB_TABLE_NAMES:()=>$Sc,SEMATTRS_AWS_DYNAMODB_TOTAL_SEGMENTS:()=>Ivc,SEMATTRS_AWS_LAMBDA_INVOKED_ARN:()=>k2c,SEMATTRS_CODE_FILEPATH:()=>ZSc,SEMATTRS_CODE_FUNCTION:()=>GSc,SEMATTRS_CODE_LINENO:()=>LSc,SEMATTRS_CODE_NAMESPACE:()=>FSc,SEMATTRS_DB_CASSANDRA_CONSISTENCY_LEVEL:()=>H2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_DC:()=>U2c,SEMATTRS_DB_CASSANDRA_COORDINATOR_ID:()=>J2c,SEMATTRS_DB_CASSANDRA_IDEMPOTENCE:()=>Q2c,SEMATTRS_DB_CASSANDRA_KEYSPACE:()=>O2c,SEMATTRS_DB_CASSANDRA_PAGE_SIZE:()=>M2c,SEMATTRS_DB_CASSANDRA_SPECULATIVE_EXECUTION_COUNT:()=>X2c,SEMATTRS_DB_CASSANDRA_TABLE:()=>Y2c,SEMATTRS_DB_CONNECTION_STRING:()=>G2c,SEMATTRS_DB_HBASE_NAMESPACE:()=>K2c,SEMATTRS_DB_JDBC_DRIVER_CLASSNAME:()=>Z2c,SEMATTRS_DB_MONGODB_COLLECTION:()=>z2c,SEMATTRS_DB_MSSQL_INSTANCE_NAME:()=>W2c,SEMATTRS_DB_NAME:()=>L2c,SEMATTRS_DB_OPERATION:()=>P2c,SEMATTRS_DB_REDIS_DATABASE_INDEX:()=>j2c,SEMATTRS_DB_SQL_TABLE:()=>q2c,SEMATTRS_DB_STATEMENT:()=>V2c,SEMATTRS_DB_SYSTEM:()=>x2c,SEMATTRS_DB_USER:()=>F2c,SEMATTRS_ENDUSER_ID:()=>RSc,SEMATTRS_ENDUSER_ROLE:()=>NSc,SEMATTRS_ENDUSER_SCOPE:()=>DSc,SEMATTRS_EXCEPTION_ESCAPED:()=>rSc,SEMATTRS_EXCEPTION_MESSAGE:()=>eSc,SEMATTRS_EXCEPTION_STACKTRACE:()=>tSc,SEMATTRS_EXCEPTION_TYPE:()=>$2c,SEMATTRS_FAAS_COLDSTART:()=>gSc,SEMATTRS_FAAS_CRON:()=>uSc,SEMATTRS_FAAS_DOCUMENT_COLLECTION:()=>sSc,SEMATTRS_FAAS_DOCUMENT_NAME:()=>cSc,SEMATTRS_FAAS_DOCUMENT_OPERATION:()=>oSc,SEMATTRS_FAAS_DOCUMENT_TIME:()=>aSc,SEMATTRS_FAAS_EXECUTION:()=>iSc,SEMATTRS_FAAS_INVOKED_NAME:()=>ASc,SEMATTRS_FAAS_INVOKED_PROVIDER:()=>dSc,SEMATTRS_FAAS_INVOKED_REGION:()=>pSc,SEMATTRS_FAAS_TIME:()=>lSc,SEMATTRS_FAAS_TRIGGER:()=>nSc,SEMATTRS_HTTP_CLIENT_IP:()=>qSc,SEMATTRS_HTTP_FLAVOR:()=>YSc,SEMATTRS_HTTP_HOST:()=>OSc,SEMATTRS_HTTP_METHOD:()=>VSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH:()=>XSc,SEMATTRS_HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED:()=>JSc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH:()=>USc,SEMATTRS_HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED:()=>KSc,SEMATTRS_HTTP_ROUTE:()=>zSc,SEMATTRS_HTTP_SCHEME:()=>MSc,SEMATTRS_HTTP_SERVER_NAME:()=>jSc,SEMATTRS_HTTP_STATUS_CODE:()=>HSc,SEMATTRS_HTTP_TARGET:()=>WSc,SEMATTRS_HTTP_URL:()=>PSc,SEMATTRS_HTTP_USER_AGENT:()=>QSc,SEMATTRS_MESSAGE_COMPRESSED_SIZE:()=>jvc,SEMATTRS_MESSAGE_ID:()=>Kvc,SEMATTRS_MESSAGE_TYPE:()=>Uvc,SEMATTRS_MESSAGE_UNCOMPRESSED_SIZE:()=>zvc,SEMATTRS_MESSAGING_CONSUMER_ID:()=>xvc,SEMATTRS_MESSAGING_CONVERSATION_ID:()=>Rvc,SEMATTRS_MESSAGING_DESTINATION:()=>bvc,SEMATTRS_MESSAGING_DESTINATION_KIND:()=>Evc,SEMATTRS_MESSAGING_KAFKA_CLIENT_ID:()=>Lvc,SEMATTRS_MESSAGING_KAFKA_CONSUMER_GROUP:()=>Zvc,SEMATTRS_MESSAGING_KAFKA_MESSAGE_KEY:()=>Fvc,SEMATTRS_MESSAGING_KAFKA_PARTITION:()=>Vvc,SEMATTRS_MESSAGING_KAFKA_TOMBSTONE:()=>Pvc,SEMATTRS_MESSAGING_MESSAGE_ID:()=>Tvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_COMPRESSED_SIZE_BYTES:()=>Dvc,SEMATTRS_MESSAGING_MESSAGE_PAYLOAD_SIZE_BYTES:()=>Nvc,SEMATTRS_MESSAGING_OPERATION:()=>kvc,SEMATTRS_MESSAGING_PROTOCOL:()=>vvc,SEMATTRS_MESSAGING_PROTOCOL_VERSION:()=>Bvc,SEMATTRS_MESSAGING_RABBITMQ_ROUTING_KEY:()=>Gvc,SEMATTRS_MESSAGING_SYSTEM:()=>yvc,SEMATTRS_MESSAGING_TEMP_DESTINATION:()=>Svc,SEMATTRS_MESSAGING_URL:()=>wvc,SEMATTRS_NET_HOST_CARRIER_ICC:()=>wSc,SEMATTRS_NET_HOST_CARRIER_MCC:()=>vSc,SEMATTRS_NET_HOST_CARRIER_MNC:()=>BSc,SEMATTRS_NET_HOST_CARRIER_NAME:()=>SSc,SEMATTRS_NET_HOST_CONNECTION_SUBTYPE:()=>ESc,SEMATTRS_NET_HOST_CONNECTION_TYPE:()=>bSc,SEMATTRS_NET_HOST_IP:()=>CSc,SEMATTRS_NET_HOST_NAME:()=>ySc,SEMATTRS_NET_HOST_PORT:()=>_Sc,SEMATTRS_NET_PEER_IP:()=>ISc,SEMATTRS_NET_PEER_NAME:()=>mSc,SEMATTRS_NET_PEER_PORT:()=>hSc,SEMATTRS_NET_TRANSPORT:()=>fSc,SEMATTRS_PEER_SERVICE:()=>TSc,SEMATTRS_RPC_GRPC_STATUS_CODE:()=>Hvc,SEMATTRS_RPC_JSONRPC_ERROR_CODE:()=>Xvc,SEMATTRS_RPC_JSONRPC_ERROR_MESSAGE:()=>Jvc,SEMATTRS_RPC_JSONRPC_REQUEST_ID:()=>Qvc,SEMATTRS_RPC_JSONRPC_VERSION:()=>Yvc,SEMATTRS_RPC_METHOD:()=>Mvc,SEMATTRS_RPC_SERVICE:()=>Ovc,SEMATTRS_RPC_SYSTEM:()=>Wvc,SEMATTRS_THREAD_ID:()=>kSc,SEMATTRS_THREAD_NAME:()=>xSc,SEMRESATTRS_AWS_ECS_CLUSTER_ARN:()=>OTc,SEMRESATTRS_AWS_ECS_CONTAINER_ARN:()=>WTc,SEMRESATTRS_AWS_ECS_LAUNCHTYPE:()=>MTc,SEMRESATTRS_AWS_ECS_TASK_ARN:()=>HTc,SEMRESATTRS_AWS_ECS_TASK_FAMILY:()=>YTc,SEMRESATTRS_AWS_ECS_TASK_REVISION:()=>QTc,SEMRESATTRS_AWS_EKS_CLUSTER_ARN:()=>XTc,SEMRESATTRS_AWS_LOG_GROUP_ARNS:()=>UTc,SEMRESATTRS_AWS_LOG_GROUP_NAMES:()=>JTc,SEMRESATTRS_AWS_LOG_STREAM_ARNS:()=>jTc,SEMRESATTRS_AWS_LOG_STREAM_NAMES:()=>KTc,SEMRESATTRS_CLOUD_ACCOUNT_ID:()=>ZTc,SEMRESATTRS_CLOUD_AVAILABILITY_ZONE:()=>VTc,SEMRESATTRS_CLOUD_PLATFORM:()=>PTc,SEMRESATTRS_CLOUD_PROVIDER:()=>FTc,SEMRESATTRS_CLOUD_REGION:()=>LTc,SEMRESATTRS_CONTAINER_ID:()=>qTc,SEMRESATTRS_CONTAINER_IMAGE_NAME:()=>eRc,SEMRESATTRS_CONTAINER_IMAGE_TAG:()=>tRc,SEMRESATTRS_CONTAINER_NAME:()=>zTc,SEMRESATTRS_CONTAINER_RUNTIME:()=>$Tc,SEMRESATTRS_DEPLOYMENT_ENVIRONMENT:()=>rRc,SEMRESATTRS_DEVICE_ID:()=>nRc,SEMRESATTRS_DEVICE_MODEL_IDENTIFIER:()=>iRc,SEMRESATTRS_DEVICE_MODEL_NAME:()=>sRc,SEMRESATTRS_FAAS_ID:()=>aRc,SEMRESATTRS_FAAS_INSTANCE:()=>lRc,SEMRESATTRS_FAAS_MAX_MEMORY:()=>uRc,SEMRESATTRS_FAAS_NAME:()=>oRc,SEMRESATTRS_FAAS_VERSION:()=>cRc,SEMRESATTRS_HOST_ARCH:()=>pRc,SEMRESATTRS_HOST_ID:()=>gRc,SEMRESATTRS_HOST_IMAGE_ID:()=>IRc,SEMRESATTRS_HOST_IMAGE_NAME:()=>fRc,SEMRESATTRS_HOST_IMAGE_VERSION:()=>hRc,SEMRESATTRS_HOST_NAME:()=>ARc,SEMRESATTRS_HOST_TYPE:()=>dRc,SEMRESATTRS_K8S_CLUSTER_NAME:()=>mRc,SEMRESATTRS_K8S_CONTAINER_NAME:()=>SRc,SEMRESATTRS_K8S_CRONJOB_NAME:()=>ZRc,SEMRESATTRS_K8S_CRONJOB_UID:()=>FRc,SEMRESATTRS_K8S_DAEMONSET_NAME:()=>kRc,SEMRESATTRS_K8S_DAEMONSET_UID:()=>DRc,SEMRESATTRS_K8S_DEPLOYMENT_NAME:()=>TRc,SEMRESATTRS_K8S_DEPLOYMENT_UID:()=>wRc,SEMRESATTRS_K8S_JOB_NAME:()=>GRc,SEMRESATTRS_K8S_JOB_UID:()=>xRc,SEMRESATTRS_K8S_NAMESPACE_NAME:()=>yRc,SEMRESATTRS_K8S_NODE_NAME:()=>CRc,SEMRESATTRS_K8S_NODE_UID:()=>_Rc,SEMRESATTRS_K8S_POD_NAME:()=>ERc,SEMRESATTRS_K8S_POD_UID:()=>bRc,SEMRESATTRS_K8S_REPLICASET_NAME:()=>BRc,SEMRESATTRS_K8S_REPLICASET_UID:()=>vRc,SEMRESATTRS_K8S_STATEFULSET_NAME:()=>NRc,SEMRESATTRS_K8S_STATEFULSET_UID:()=>RRc,SEMRESATTRS_OS_DESCRIPTION:()=>VRc,SEMRESATTRS_OS_NAME:()=>PRc,SEMRESATTRS_OS_TYPE:()=>LRc,SEMRESATTRS_OS_VERSION:()=>WRc,SEMRESATTRS_PROCESS_COMMAND:()=>YRc,SEMRESATTRS_PROCESS_COMMAND_ARGS:()=>XRc,SEMRESATTRS_PROCESS_COMMAND_LINE:()=>QRc,SEMRESATTRS_PROCESS_EXECUTABLE_NAME:()=>MRc,SEMRESATTRS_PROCESS_EXECUTABLE_PATH:()=>HRc,SEMRESATTRS_PROCESS_OWNER:()=>JRc,SEMRESATTRS_PROCESS_PID:()=>ORc,SEMRESATTRS_PROCESS_RUNTIME_DESCRIPTION:()=>jRc,SEMRESATTRS_PROCESS_RUNTIME_NAME:()=>URc,SEMRESATTRS_PROCESS_RUNTIME_VERSION:()=>KRc,SEMRESATTRS_SERVICE_INSTANCE_ID:()=>$Rc,SEMRESATTRS_SERVICE_NAME:()=>zRc,SEMRESATTRS_SERVICE_NAMESPACE:()=>qRc,SEMRESATTRS_SERVICE_VERSION:()=>eNc,SEMRESATTRS_TELEMETRY_AUTO_VERSION:()=>iNc,SEMRESATTRS_TELEMETRY_SDK_LANGUAGE:()=>rNc,SEMRESATTRS_TELEMETRY_SDK_NAME:()=>tNc,SEMRESATTRS_TELEMETRY_SDK_VERSION:()=>nNc,SEMRESATTRS_WEBENGINE_DESCRIPTION:()=>aNc,SEMRESATTRS_WEBENGINE_NAME:()=>sNc,SEMRESATTRS_WEBENGINE_VERSION:()=>oNc,SIGNALR_CONNECTION_STATUS_VALUE_APP_SHUTDOWN:()=>txc,SIGNALR_CONNECTION_STATUS_VALUE_NORMAL_CLOSURE:()=>rxc,SIGNALR_CONNECTION_STATUS_VALUE_TIMEOUT:()=>nxc,SIGNALR_TRANSPORT_VALUE_LONG_POLLING:()=>sxc,SIGNALR_TRANSPORT_VALUE_SERVER_SENT_EVENTS:()=>oxc,SIGNALR_TRANSPORT_VALUE_WEB_SOCKETS:()=>axc,SemanticAttributes:()=>qvc,SemanticResourceAttributes:()=>cNc,TELEMETRYSDKLANGUAGEVALUES_CPP:()=>tDc,TELEMETRYSDKLANGUAGEVALUES_DOTNET:()=>rDc,TELEMETRYSDKLANGUAGEVALUES_ERLANG:()=>nDc,TELEMETRYSDKLANGUAGEVALUES_GO:()=>iDc,TELEMETRYSDKLANGUAGEVALUES_JAVA:()=>sDc,TELEMETRYSDKLANGUAGEVALUES_NODEJS:()=>oDc,TELEMETRYSDKLANGUAGEVALUES_PHP:()=>aDc,TELEMETRYSDKLANGUAGEVALUES_PYTHON:()=>cDc,TELEMETRYSDKLANGUAGEVALUES_RUBY:()=>lDc,TELEMETRYSDKLANGUAGEVALUES_WEBJS:()=>uDc,TELEMETRY_SDK_LANGUAGE_VALUE_CPP:()=>mDc,TELEMETRY_SDK_LANGUAGE_VALUE_DOTNET:()=>CDc,TELEMETRY_SDK_LANGUAGE_VALUE_ERLANG:()=>_Dc,TELEMETRY_SDK_LANGUAGE_VALUE_GO:()=>yDc,TELEMETRY_SDK_LANGUAGE_VALUE_JAVA:()=>bDc,TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS:()=>EDc,TELEMETRY_SDK_LANGUAGE_VALUE_PHP:()=>SDc,TELEMETRY_SDK_LANGUAGE_VALUE_PYTHON:()=>vDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUBY:()=>BDc,TELEMETRY_SDK_LANGUAGE_VALUE_RUST:()=>wDc,TELEMETRY_SDK_LANGUAGE_VALUE_SWIFT:()=>TDc,TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS:()=>RDc,TelemetrySdkLanguageValues:()=>gDc});var f4i=bc(()=>{PYi();g4i();A4i();d4i()});var I4i=H(jSt=>{"use strict";Object.defineProperty(jSt,"__esModule",{value:!0});jSt.SDK_INFO=void 0;var Qxc=qLr(),ZKe=(f4i(),vi(p4i));jSt.SDK_INFO={[ZKe.SEMRESATTRS_TELEMETRY_SDK_NAME]:"opentelemetry",[ZKe.SEMRESATTRS_PROCESS_RUNTIME_NAME]:"node",[ZKe.SEMRESATTRS_TELEMETRY_SDK_LANGUAGE]:ZKe.TELEMETRYSDKLANGUAGEVALUES_NODEJS,[ZKe.SEMRESATTRS_TELEMETRY_SDK_VERSION]:Qxc.VERSION}});var h4i=H(zSt=>{"use strict";Object.defineProperty(zSt,"__esModule",{value:!0});zSt.unrefTimer=void 0;function Xxc(e){e.unref()}zSt.unrefTimer=Xxc});var C4i=H(gD=>{"use strict";Object.defineProperty(gD,"__esModule",{value:!0});gD.unrefTimer=gD.SDK_INFO=gD.otperformance=gD.RandomIdGenerator=gD.hexToBase64=gD._globalThis=gD.getEnv=gD.getEnvWithoutDefaults=void 0;var m4i=OOi();Object.defineProperty(gD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return m4i.getEnvWithoutDefaults}});Object.defineProperty(gD,"getEnv",{enumerable:!0,get:function(){return m4i.getEnv}});var Jxc=MOi();Object.defineProperty(gD,"_globalThis",{enumerable:!0,get:function(){return Jxc._globalThis}});var Uxc=YOi();Object.defineProperty(gD,"hexToBase64",{enumerable:!0,get:function(){return Uxc.hexToBase64}});var Kxc=JOi();Object.defineProperty(gD,"RandomIdGenerator",{enumerable:!0,get:function(){return Kxc.RandomIdGenerator}});var jxc=UOi();Object.defineProperty(gD,"otperformance",{enumerable:!0,get:function(){return jxc.otperformance}});var zxc=I4i();Object.defineProperty(gD,"SDK_INFO",{enumerable:!0,get:function(){return zxc.SDK_INFO}});var qxc=h4i();Object.defineProperty(gD,"unrefTimer",{enumerable:!0,get:function(){return qxc.unrefTimer}})});var e9r=H(AD=>{"use strict";Object.defineProperty(AD,"__esModule",{value:!0});AD.unrefTimer=AD.otperformance=AD.hexToBase64=AD.getEnvWithoutDefaults=AD.getEnv=AD._globalThis=AD.SDK_INFO=AD.RandomIdGenerator=void 0;var jce=C4i();Object.defineProperty(AD,"RandomIdGenerator",{enumerable:!0,get:function(){return jce.RandomIdGenerator}});Object.defineProperty(AD,"SDK_INFO",{enumerable:!0,get:function(){return jce.SDK_INFO}});Object.defineProperty(AD,"_globalThis",{enumerable:!0,get:function(){return jce._globalThis}});Object.defineProperty(AD,"getEnv",{enumerable:!0,get:function(){return jce.getEnv}});Object.defineProperty(AD,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return jce.getEnvWithoutDefaults}});Object.defineProperty(AD,"hexToBase64",{enumerable:!0,get:function(){return jce.hexToBase64}});Object.defineProperty(AD,"otperformance",{enumerable:!0,get:function(){return jce.otperformance}});Object.defineProperty(AD,"unrefTimer",{enumerable:!0,get:function(){return jce.unrefTimer}})});var E4i=H(OE=>{"use strict";Object.defineProperty(OE,"__esModule",{value:!0});OE.addHrTimes=OE.isTimeInput=OE.isTimeInputHrTime=OE.hrTimeToMicroseconds=OE.hrTimeToMilliseconds=OE.hrTimeToNanoseconds=OE.hrTimeToTimeStamp=OE.hrTimeDuration=OE.timeInputToHrTime=OE.hrTime=OE.getTimeOrigin=OE.millisToHrTime=void 0;var t9r=e9r(),_4i=9,$xc=6,eGc=Math.pow(10,$xc),qSt=Math.pow(10,_4i);function LKe(e){let t=e/1e3,r=Math.trunc(t),n=Math.round(e%1e3*eGc);return[r,n]}OE.millisToHrTime=LKe;function r9r(){let e=t9r.otperformance.timeOrigin;if(typeof e!="number"){let t=t9r.otperformance;e=t.timing&&t.timing.fetchStart}return e}OE.getTimeOrigin=r9r;function y4i(e){let t=LKe(r9r()),r=LKe(typeof e=="number"?e:t9r.otperformance.now());return b4i(t,r)}OE.hrTime=y4i;function tGc(e){if(n9r(e))return e;if(typeof e=="number")return e=qSt&&(r[1]-=qSt,r[0]+=1),r}OE.addHrTimes=b4i});var S4i=H(VKe=>{"use strict";Object.defineProperty(VKe,"__esModule",{value:!0});VKe.ExportResultCode=void 0;var cGc;(function(e){e[e.SUCCESS=0]="SUCCESS",e[e.FAILED=1]="FAILED"})(cGc=VKe.ExportResultCode||(VKe.ExportResultCode={}))});var B4i=H($St=>{"use strict";Object.defineProperty($St,"__esModule",{value:!0});$St.CompositePropagator=void 0;var v4i=(GI(),vi(xI)),i9r=class{constructor(t={}){var r;this._propagators=(r=t.propagators)!==null&&r!==void 0?r:[],this._fields=Array.from(new Set(this._propagators.map(n=>typeof n.fields=="function"?n.fields():[]).reduce((n,a)=>n.concat(a),[])))}inject(t,r,n){for(let a of this._propagators)try{a.inject(t,r,n)}catch(o){v4i.diag.warn(`Failed to inject with ${a.constructor.name}. Err: ${o.message}`)}}extract(t,r,n){return this._propagators.reduce((a,o)=>{try{return o.extract(a,r,n)}catch(l){v4i.diag.warn(`Failed to extract with ${o.constructor.name}. Err: ${l.message}`)}return a},t)}fields(){return this._fields.slice()}};$St.CompositePropagator=i9r});var w4i=H(LDe=>{"use strict";Object.defineProperty(LDe,"__esModule",{value:!0});LDe.validateValue=LDe.validateKey=void 0;var s9r="[_0-9a-z-*/]",lGc=`[a-z]${s9r}{0,255}`,uGc=`[a-z0-9]${s9r}{0,240}@[a-z]${s9r}{0,13}`,gGc=new RegExp(`^(?:${lGc}|${uGc})$`),AGc=/^[ -~]{0,255}[!-~]$/,dGc=/,|=/;function pGc(e){return gGc.test(e)}LDe.validateKey=pGc;function fGc(e){return AGc.test(e)&&!dGc.test(e)}LDe.validateValue=fGc});var a9r=H(evt=>{"use strict";Object.defineProperty(evt,"__esModule",{value:!0});evt.TraceState=void 0;var T4i=w4i(),R4i=32,IGc=512,N4i=",",D4i="=",o9r=class e{constructor(t){this._internalState=new Map,t&&this._parse(t)}set(t,r){let n=this._clone();return n._internalState.has(t)&&n._internalState.delete(t),n._internalState.set(t,r),n}unset(t){let r=this._clone();return r._internalState.delete(t),r}get(t){return this._internalState.get(t)}serialize(){return this._keys().reduce((t,r)=>(t.push(r+D4i+this.get(r)),t),[]).join(N4i)}_parse(t){t.length>IGc||(this._internalState=t.split(N4i).reverse().reduce((r,n)=>{let a=n.trim(),o=a.indexOf(D4i);if(o!==-1){let l=a.slice(0,o),A=a.slice(o+1,n.length);(0,T4i.validateKey)(l)&&(0,T4i.validateValue)(A)&&r.set(l,A)}return r},new Map),this._internalState.size>R4i&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,R4i))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let t=new e;return t._internalState=new Map(this._internalState),t}};evt.TraceState=o9r});var x4i=H(HG=>{"use strict";Object.defineProperty(HG,"__esModule",{value:!0});HG.W3CTraceContextPropagator=HG.parseTraceParent=HG.TRACE_STATE_HEADER=HG.TRACE_PARENT_HEADER=void 0;var tvt=(GI(),vi(xI)),hGc=GKe(),mGc=a9r();HG.TRACE_PARENT_HEADER="traceparent";HG.TRACE_STATE_HEADER="tracestate";var CGc="00",_Gc="(?!ff)[\\da-f]{2}",yGc="(?![0]{32})[\\da-f]{32}",bGc="(?![0]{16})[\\da-f]{16}",EGc="[\\da-f]{2}",SGc=new RegExp(`^\\s?(${_Gc})-(${yGc})-(${bGc})-(${EGc})(-.*)?\\s?$`);function k4i(e){let t=SGc.exec(e);return!t||t[1]==="00"&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}HG.parseTraceParent=k4i;var c9r=class{inject(t,r,n){let a=tvt.trace.getSpanContext(t);if(!a||(0,hGc.isTracingSuppressed)(t)||!(0,tvt.isSpanContextValid)(a))return;let o=`${CGc}-${a.traceId}-${a.spanId}-0${Number(a.traceFlags||tvt.TraceFlags.NONE).toString(16)}`;n.set(r,HG.TRACE_PARENT_HEADER,o),a.traceState&&n.set(r,HG.TRACE_STATE_HEADER,a.traceState.serialize())}extract(t,r,n){let a=n.get(r,HG.TRACE_PARENT_HEADER);if(!a)return t;let o=Array.isArray(a)?a[0]:a;if(typeof o!="string")return t;let l=k4i(o);if(!l)return t;l.isRemote=!0;let A=n.get(r,HG.TRACE_STATE_HEADER);if(A){let f=Array.isArray(A)?A.join(","):A;l.traceState=new mGc.TraceState(typeof f=="string"?f:void 0)}return tvt.trace.setSpanContext(t,l)}fields(){return[HG.TRACE_PARENT_HEADER,HG.TRACE_STATE_HEADER]}};HG.W3CTraceContextPropagator=c9r});var G4i=H(m4=>{"use strict";Object.defineProperty(m4,"__esModule",{value:!0});m4.getRPCMetadata=m4.deleteRPCMetadata=m4.setRPCMetadata=m4.RPCType=void 0;var vGc=(GI(),vi(xI)),l9r=(0,vGc.createContextKey)("OpenTelemetry SDK Context Key RPC_METADATA"),BGc;(function(e){e.HTTP="http"})(BGc=m4.RPCType||(m4.RPCType={}));function wGc(e,t){return e.setValue(l9r,t)}m4.setRPCMetadata=wGc;function TGc(e){return e.deleteValue(l9r)}m4.deleteRPCMetadata=TGc;function RGc(e){return e.getValue(l9r)}m4.getRPCMetadata=RGc});var g9r=H(rvt=>{"use strict";Object.defineProperty(rvt,"__esModule",{value:!0});rvt.AlwaysOffSampler=void 0;var NGc=(GI(),vi(xI)),u9r=class{shouldSample(){return{decision:NGc.SamplingDecision.NOT_RECORD}}toString(){return"AlwaysOffSampler"}};rvt.AlwaysOffSampler=u9r});var d9r=H(nvt=>{"use strict";Object.defineProperty(nvt,"__esModule",{value:!0});nvt.AlwaysOnSampler=void 0;var DGc=(GI(),vi(xI)),A9r=class{shouldSample(){return{decision:DGc.SamplingDecision.RECORD_AND_SAMPLED}}toString(){return"AlwaysOnSampler"}};nvt.AlwaysOnSampler=A9r});var Z4i=H(svt=>{"use strict";Object.defineProperty(svt,"__esModule",{value:!0});svt.ParentBasedSampler=void 0;var ivt=(GI(),vi(xI)),kGc=XLr(),F4i=g9r(),p9r=d9r(),f9r=class{constructor(t){var r,n,a,o;this._root=t.root,this._root||((0,kGc.globalErrorHandler)(new Error("ParentBasedSampler must have a root sampler configured")),this._root=new p9r.AlwaysOnSampler),this._remoteParentSampled=(r=t.remoteParentSampled)!==null&&r!==void 0?r:new p9r.AlwaysOnSampler,this._remoteParentNotSampled=(n=t.remoteParentNotSampled)!==null&&n!==void 0?n:new F4i.AlwaysOffSampler,this._localParentSampled=(a=t.localParentSampled)!==null&&a!==void 0?a:new p9r.AlwaysOnSampler,this._localParentNotSampled=(o=t.localParentNotSampled)!==null&&o!==void 0?o:new F4i.AlwaysOffSampler}shouldSample(t,r,n,a,o,l){let A=ivt.trace.getSpanContext(t);return!A||!(0,ivt.isSpanContextValid)(A)?this._root.shouldSample(t,r,n,a,o,l):A.isRemote?A.traceFlags&ivt.TraceFlags.SAMPLED?this._remoteParentSampled.shouldSample(t,r,n,a,o,l):this._remoteParentNotSampled.shouldSample(t,r,n,a,o,l):A.traceFlags&ivt.TraceFlags.SAMPLED?this._localParentSampled.shouldSample(t,r,n,a,o,l):this._localParentNotSampled.shouldSample(t,r,n,a,o,l)}toString(){return`ParentBased{root=${this._root.toString()}, remoteParentSampled=${this._remoteParentSampled.toString()}, remoteParentNotSampled=${this._remoteParentNotSampled.toString()}, localParentSampled=${this._localParentSampled.toString()}, localParentNotSampled=${this._localParentNotSampled.toString()}}`}};svt.ParentBasedSampler=f9r});var L4i=H(ovt=>{"use strict";Object.defineProperty(ovt,"__esModule",{value:!0});ovt.TraceIdRatioBasedSampler=void 0;var I9r=(GI(),vi(xI)),h9r=class{constructor(t=0){this._ratio=t,this._ratio=this._normalize(t),this._upperBound=Math.floor(this._ratio*4294967295)}shouldSample(t,r){return{decision:(0,I9r.isValidTraceId)(r)&&this._accumulate(r)=1?1:t<=0?0:t}_accumulate(t){let r=0;for(let n=0;n>>0}return r}};ovt.TraceIdRatioBasedSampler=h9r});var M4i=H(avt=>{"use strict";Object.defineProperty(avt,"__esModule",{value:!0});avt.isPlainObject=void 0;var xGc="[object Object]",GGc="[object Null]",FGc="[object Undefined]",ZGc=Function.prototype,V4i=ZGc.toString,LGc=V4i.call(Object),VGc=PGc(Object.getPrototypeOf,Object),P4i=Object.prototype,W4i=P4i.hasOwnProperty,UCe=Symbol?Symbol.toStringTag:void 0,O4i=P4i.toString;function PGc(e,t){return function(r){return e(t(r))}}function WGc(e){if(!OGc(e)||MGc(e)!==xGc)return!1;let t=VGc(e);if(t===null)return!0;let r=W4i.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&V4i.call(r)===LGc}avt.isPlainObject=WGc;function OGc(e){return e!=null&&typeof e=="object"}function MGc(e){return e==null?e===void 0?FGc:GGc:UCe&&UCe in Object(e)?HGc(e):YGc(e)}function HGc(e){let t=W4i.call(e,UCe),r=e[UCe],n=!1;try{e[UCe]=void 0,n=!0}catch{}let a=O4i.call(e);return n&&(t?e[UCe]=r:delete e[UCe]),a}function YGc(e){return O4i.call(e)}});var J4i=H(uvt=>{"use strict";Object.defineProperty(uvt,"__esModule",{value:!0});uvt.merge=void 0;var H4i=M4i(),QGc=20;function XGc(...e){let t=e.shift(),r=new WeakMap;for(;e.length>0;)t=Q4i(t,e.shift(),0,r);return t}uvt.merge=XGc;function m9r(e){return lvt(e)?e.slice():e}function Q4i(e,t,r=0,n){let a;if(!(r>QGc)){if(r++,cvt(e)||cvt(t)||X4i(t))a=m9r(t);else if(lvt(e)){if(a=e.slice(),lvt(t))for(let o=0,l=t.length;o"u"?delete a[f]:a[f]=I;else{let C=a[f],b=I;if(Y4i(e,f,n)||Y4i(t,f,n))delete a[f];else{if(PKe(C)&&PKe(b)){let E=n.get(C)||[],N=n.get(b)||[];E.push({obj:e,key:f}),N.push({obj:t,key:f}),n.set(C,E),n.set(b,N)}a[f]=Q4i(a[f],I,r,n)}}}}else a=t;return a}}function Y4i(e,t,r){let n=r.get(e[t])||[];for(let a=0,o=n.length;a"u"||e instanceof Date||e instanceof RegExp||e===null}function JGc(e,t){return!(!(0,H4i.isPlainObject)(e)||!(0,H4i.isPlainObject)(t))}});var U4i=H(VDe=>{"use strict";Object.defineProperty(VDe,"__esModule",{value:!0});VDe.callWithTimeout=VDe.TimeoutError=void 0;var gvt=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}};VDe.TimeoutError=gvt;function UGc(e,t){let r,n=new Promise(function(o,l){r=setTimeout(function(){l(new gvt("Operation timed out."))},t)});return Promise.race([e,n]).then(a=>(clearTimeout(r),a),a=>{throw clearTimeout(r),a})}VDe.callWithTimeout=UGc});var j4i=H(PDe=>{"use strict";Object.defineProperty(PDe,"__esModule",{value:!0});PDe.isUrlIgnored=PDe.urlMatches=void 0;function K4i(e,t){return typeof t=="string"?e===t:!!e.match(t)}PDe.urlMatches=K4i;function KGc(e,t){if(!t)return!1;for(let r of t)if(K4i(e,r))return!0;return!1}PDe.isUrlIgnored=KGc});var z4i=H(Avt=>{"use strict";Object.defineProperty(Avt,"__esModule",{value:!0});Avt.isWrapped=void 0;function jGc(e){return typeof e=="function"&&typeof e.__original=="function"&&typeof e.__unwrap=="function"&&e.__wrapped===!0}Avt.isWrapped=jGc});var q4i=H(dvt=>{"use strict";Object.defineProperty(dvt,"__esModule",{value:!0});dvt.Deferred=void 0;var C9r=class{constructor(){this._promise=new Promise((t,r)=>{this._resolve=t,this._reject=r})}get promise(){return this._promise}resolve(t){this._resolve(t)}reject(t){this._reject(t)}};dvt.Deferred=C9r});var $4i=H(pvt=>{"use strict";Object.defineProperty(pvt,"__esModule",{value:!0});pvt.BindOnceFuture=void 0;var zGc=q4i(),_9r=class{constructor(t,r){this._callback=t,this._that=r,this._isCalled=!1,this._deferred=new zGc.Deferred}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...t){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...t)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};pvt.BindOnceFuture=_9r});var tJi=H(fvt=>{"use strict";Object.defineProperty(fvt,"__esModule",{value:!0});fvt._export=void 0;var eJi=(GI(),vi(xI)),qGc=GKe();function $Gc(e,t){return new Promise(r=>{eJi.context.with((0,qGc.suppressTracing)(eJi.context.active()),()=>{e.export(t,n=>{r(n)})})})}fvt._export=$Gc});var E9r=H(Ja=>{"use strict";Object.defineProperty(Ja,"__esModule",{value:!0});Ja.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT=Ja.DEFAULT_ATTRIBUTE_COUNT_LIMIT=Ja.TraceState=Ja.unsuppressTracing=Ja.suppressTracing=Ja.isTracingSuppressed=Ja.TraceIdRatioBasedSampler=Ja.ParentBasedSampler=Ja.AlwaysOnSampler=Ja.AlwaysOffSampler=Ja.setRPCMetadata=Ja.getRPCMetadata=Ja.deleteRPCMetadata=Ja.RPCType=Ja.parseTraceParent=Ja.W3CTraceContextPropagator=Ja.TRACE_STATE_HEADER=Ja.TRACE_PARENT_HEADER=Ja.CompositePropagator=Ja.unrefTimer=Ja.otperformance=Ja.hexToBase64=Ja.getEnvWithoutDefaults=Ja.getEnv=Ja._globalThis=Ja.SDK_INFO=Ja.RandomIdGenerator=Ja.baggageUtils=Ja.ExportResultCode=Ja.hexToBinary=Ja.timeInputToHrTime=Ja.millisToHrTime=Ja.isTimeInputHrTime=Ja.isTimeInput=Ja.hrTimeToTimeStamp=Ja.hrTimeToNanoseconds=Ja.hrTimeToMilliseconds=Ja.hrTimeToMicroseconds=Ja.hrTimeDuration=Ja.hrTime=Ja.getTimeOrigin=Ja.addHrTimes=Ja.loggingErrorHandler=Ja.setGlobalErrorHandler=Ja.globalErrorHandler=Ja.sanitizeAttributes=Ja.isAttributeValue=Ja.isAttributeKey=Ja.AnchoredClock=Ja.W3CBaggagePropagator=void 0;Ja.internal=Ja.VERSION=Ja.BindOnceFuture=Ja.isWrapped=Ja.urlMatches=Ja.isUrlIgnored=Ja.callWithTimeout=Ja.TimeoutError=Ja.TracesSamplerValues=Ja.merge=Ja.parseEnvironment=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT=Ja.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT=Ja.DEFAULT_ENVIRONMENT=void 0;var eFc=xOi();Object.defineProperty(Ja,"W3CBaggagePropagator",{enumerable:!0,get:function(){return eFc.W3CBaggagePropagator}});var tFc=GOi();Object.defineProperty(Ja,"AnchoredClock",{enumerable:!0,get:function(){return tFc.AnchoredClock}});var y9r=POi();Object.defineProperty(Ja,"isAttributeKey",{enumerable:!0,get:function(){return y9r.isAttributeKey}});Object.defineProperty(Ja,"isAttributeValue",{enumerable:!0,get:function(){return y9r.isAttributeValue}});Object.defineProperty(Ja,"sanitizeAttributes",{enumerable:!0,get:function(){return y9r.sanitizeAttributes}});var rJi=XLr();Object.defineProperty(Ja,"globalErrorHandler",{enumerable:!0,get:function(){return rJi.globalErrorHandler}});Object.defineProperty(Ja,"setGlobalErrorHandler",{enumerable:!0,get:function(){return rJi.setGlobalErrorHandler}});var rFc=QLr();Object.defineProperty(Ja,"loggingErrorHandler",{enumerable:!0,get:function(){return rFc.loggingErrorHandler}});var dH=E4i();Object.defineProperty(Ja,"addHrTimes",{enumerable:!0,get:function(){return dH.addHrTimes}});Object.defineProperty(Ja,"getTimeOrigin",{enumerable:!0,get:function(){return dH.getTimeOrigin}});Object.defineProperty(Ja,"hrTime",{enumerable:!0,get:function(){return dH.hrTime}});Object.defineProperty(Ja,"hrTimeDuration",{enumerable:!0,get:function(){return dH.hrTimeDuration}});Object.defineProperty(Ja,"hrTimeToMicroseconds",{enumerable:!0,get:function(){return dH.hrTimeToMicroseconds}});Object.defineProperty(Ja,"hrTimeToMilliseconds",{enumerable:!0,get:function(){return dH.hrTimeToMilliseconds}});Object.defineProperty(Ja,"hrTimeToNanoseconds",{enumerable:!0,get:function(){return dH.hrTimeToNanoseconds}});Object.defineProperty(Ja,"hrTimeToTimeStamp",{enumerable:!0,get:function(){return dH.hrTimeToTimeStamp}});Object.defineProperty(Ja,"isTimeInput",{enumerable:!0,get:function(){return dH.isTimeInput}});Object.defineProperty(Ja,"isTimeInputHrTime",{enumerable:!0,get:function(){return dH.isTimeInputHrTime}});Object.defineProperty(Ja,"millisToHrTime",{enumerable:!0,get:function(){return dH.millisToHrTime}});Object.defineProperty(Ja,"timeInputToHrTime",{enumerable:!0,get:function(){return dH.timeInputToHrTime}});var nFc=jLr();Object.defineProperty(Ja,"hexToBinary",{enumerable:!0,get:function(){return nFc.hexToBinary}});var iFc=S4i();Object.defineProperty(Ja,"ExportResultCode",{enumerable:!0,get:function(){return iFc.ExportResultCode}});var Ivt=WLr();Ja.baggageUtils={getKeyPairs:Ivt.getKeyPairs,serializeKeyPairs:Ivt.serializeKeyPairs,parseKeyPairsIntoRecord:Ivt.parseKeyPairsIntoRecord,parsePairKeyValue:Ivt.parsePairKeyValue};var zce=e9r();Object.defineProperty(Ja,"RandomIdGenerator",{enumerable:!0,get:function(){return zce.RandomIdGenerator}});Object.defineProperty(Ja,"SDK_INFO",{enumerable:!0,get:function(){return zce.SDK_INFO}});Object.defineProperty(Ja,"_globalThis",{enumerable:!0,get:function(){return zce._globalThis}});Object.defineProperty(Ja,"getEnv",{enumerable:!0,get:function(){return zce.getEnv}});Object.defineProperty(Ja,"getEnvWithoutDefaults",{enumerable:!0,get:function(){return zce.getEnvWithoutDefaults}});Object.defineProperty(Ja,"hexToBase64",{enumerable:!0,get:function(){return zce.hexToBase64}});Object.defineProperty(Ja,"otperformance",{enumerable:!0,get:function(){return zce.otperformance}});Object.defineProperty(Ja,"unrefTimer",{enumerable:!0,get:function(){return zce.unrefTimer}});var sFc=B4i();Object.defineProperty(Ja,"CompositePropagator",{enumerable:!0,get:function(){return sFc.CompositePropagator}});var hvt=x4i();Object.defineProperty(Ja,"TRACE_PARENT_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_PARENT_HEADER}});Object.defineProperty(Ja,"TRACE_STATE_HEADER",{enumerable:!0,get:function(){return hvt.TRACE_STATE_HEADER}});Object.defineProperty(Ja,"W3CTraceContextPropagator",{enumerable:!0,get:function(){return hvt.W3CTraceContextPropagator}});Object.defineProperty(Ja,"parseTraceParent",{enumerable:!0,get:function(){return hvt.parseTraceParent}});var mvt=G4i();Object.defineProperty(Ja,"RPCType",{enumerable:!0,get:function(){return mvt.RPCType}});Object.defineProperty(Ja,"deleteRPCMetadata",{enumerable:!0,get:function(){return mvt.deleteRPCMetadata}});Object.defineProperty(Ja,"getRPCMetadata",{enumerable:!0,get:function(){return mvt.getRPCMetadata}});Object.defineProperty(Ja,"setRPCMetadata",{enumerable:!0,get:function(){return mvt.setRPCMetadata}});var oFc=g9r();Object.defineProperty(Ja,"AlwaysOffSampler",{enumerable:!0,get:function(){return oFc.AlwaysOffSampler}});var aFc=d9r();Object.defineProperty(Ja,"AlwaysOnSampler",{enumerable:!0,get:function(){return aFc.AlwaysOnSampler}});var cFc=Z4i();Object.defineProperty(Ja,"ParentBasedSampler",{enumerable:!0,get:function(){return cFc.ParentBasedSampler}});var lFc=L4i();Object.defineProperty(Ja,"TraceIdRatioBasedSampler",{enumerable:!0,get:function(){return lFc.TraceIdRatioBasedSampler}});var b9r=GKe();Object.defineProperty(Ja,"isTracingSuppressed",{enumerable:!0,get:function(){return b9r.isTracingSuppressed}});Object.defineProperty(Ja,"suppressTracing",{enumerable:!0,get:function(){return b9r.suppressTracing}});Object.defineProperty(Ja,"unsuppressTracing",{enumerable:!0,get:function(){return b9r.unsuppressTracing}});var uFc=a9r();Object.defineProperty(Ja,"TraceState",{enumerable:!0,get:function(){return uFc.TraceState}});var WDe=ULr();Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_ATTRIBUTE_VALUE_LENGTH_LIMIT}});Object.defineProperty(Ja,"DEFAULT_ENVIRONMENT",{enumerable:!0,get:function(){return WDe.DEFAULT_ENVIRONMENT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_EVENT_COUNT_LIMIT}});Object.defineProperty(Ja,"DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT",{enumerable:!0,get:function(){return WDe.DEFAULT_SPAN_ATTRIBUTE_PER_LINK_COUNT_LIMIT}});Object.defineProperty(Ja,"parseEnvironment",{enumerable:!0,get:function(){return WDe.parseEnvironment}});var gFc=J4i();Object.defineProperty(Ja,"merge",{enumerable:!0,get:function(){return gFc.merge}});var AFc=JLr();Object.defineProperty(Ja,"TracesSamplerValues",{enumerable:!0,get:function(){return AFc.TracesSamplerValues}});var nJi=U4i();Object.defineProperty(Ja,"TimeoutError",{enumerable:!0,get:function(){return nJi.TimeoutError}});Object.defineProperty(Ja,"callWithTimeout",{enumerable:!0,get:function(){return nJi.callWithTimeout}});var iJi=j4i();Object.defineProperty(Ja,"isUrlIgnored",{enumerable:!0,get:function(){return iJi.isUrlIgnored}});Object.defineProperty(Ja,"urlMatches",{enumerable:!0,get:function(){return iJi.urlMatches}});var dFc=z4i();Object.defineProperty(Ja,"isWrapped",{enumerable:!0,get:function(){return dFc.isWrapped}});var pFc=$4i();Object.defineProperty(Ja,"BindOnceFuture",{enumerable:!0,get:function(){return pFc.BindOnceFuture}});var fFc=qLr();Object.defineProperty(Ja,"VERSION",{enumerable:!0,get:function(){return fFc.VERSION}});var IFc=tJi();Ja.internal={_export:IFc._export}});var aJi=H((IMu,S9r)=>{"use strict";if(typeof SharedArrayBuffer<"u"&&typeof Atomics<"u"){let t=function(r){if((r>0&&r<1/0)===!1)throw typeof r!="number"&&typeof r!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");Atomics.wait(e,0,0,Number(r))},e=new Int32Array(new SharedArrayBuffer(4));S9r.exports=t}else{let e=function(t){if((t>0&&t<1/0)===!1)throw typeof t!="number"&&typeof t!="bigint"?TypeError("sleep: ms must be a number"):RangeError("sleep: ms must be a number that is greater than 0 but less than Infinity");let n=Date.now()+Number(t);for(;n>Date.now(););};S9r.exports=e}});var fJi=H((hMu,pJi)=>{"use strict";var sw=wt("fs"),hFc=wt("events"),mFc=wt("util").inherits,cJi=wt("path"),B9r=aJi(),_vt=100,yvt=Buffer.allocUnsafe(0),CFc=16*1024,lJi="buffer",uJi="utf8";function gJi(e,t){t._opening=!0,t._writing=!0,t._asyncDrainScheduled=!1;function r(o,l){if(o){t._reopening=!1,t._writing=!1,t._opening=!1,t.sync?process.nextTick(()=>{t.listenerCount("error")>0&&t.emit("error",o)}):t.emit("error",o);return}let A=t._reopening;t.fd=l,t.file=e,t._reopening=!1,t._opening=!1,t._writing=!1,t.sync?process.nextTick(()=>t.emit("ready")):t.emit("ready"),!t.destroyed&&(!t._writing&&t._len>t.minLength||t._flushPending?t._actualWrite():A&&process.nextTick(()=>t.emit("drain")))}let n=t.append?"a":"w",a=t.mode;if(t.sync)try{t.mkdir&&sw.mkdirSync(cJi.dirname(e),{recursive:!0});let o=sw.openSync(e,n,a);r(null,o)}catch(o){throw r(o),o}else t.mkdir?sw.mkdir(cJi.dirname(e),{recursive:!0},o=>{if(o)return r(o);sw.open(e,n,a,r)}):sw.open(e,n,a,r)}function C4(e){if(!(this instanceof C4))return new C4(e);let{fd:t,dest:r,minLength:n,maxLength:a,maxWrite:o,sync:l,append:A=!0,mkdir:f,retryEAGAIN:I,fsync:C,contentMode:b,mode:E}=e||{};t=t||r,this._len=0,this.fd=-1,this._bufs=[],this._lens=[],this._writing=!1,this._ending=!1,this._reopening=!1,this._asyncDrainScheduled=!1,this._flushPending=!1,this._hwm=Math.max(n||0,16387),this.file=null,this.destroyed=!1,this.minLength=n||0,this.maxLength=a||0,this.maxWrite=o||CFc,this.sync=l||!1,this.writable=!0,this._fsync=C||!1,this.append=A||!1,this.mode=E,this.retryEAGAIN=I||(()=>!0),this.mkdir=f||!1;let N,B;if(b===lJi)this._writingBuf=yvt,this.write=bFc,this.flush=SFc,this.flushSync=BFc,this._actualWrite=TFc,N=()=>sw.writeSync(this.fd,this._writingBuf),B=()=>sw.write(this.fd,this._writingBuf,this.release);else if(b===void 0||b===uJi)this._writingBuf="",this.write=yFc,this.flush=EFc,this.flushSync=vFc,this._actualWrite=wFc,N=()=>sw.writeSync(this.fd,this._writingBuf,"utf8"),B=()=>sw.write(this.fd,this._writingBuf,"utf8",this.release);else throw new Error(`SonicBoom supports "${uJi}" and "${lJi}", but passed ${b}`);if(typeof t=="number")this.fd=t,process.nextTick(()=>this.emit("ready"));else if(typeof t=="string")gJi(t,this);else throw new Error("SonicBoom supports only file descriptors and files");if(this.minLength>=this.maxWrite)throw new Error(`minLength should be smaller than maxWrite (${this.maxWrite})`);this.release=(F,Q)=>{if(F){if((F.code==="EAGAIN"||F.code==="EBUSY")&&this.retryEAGAIN(F,this._writingBuf.length,this._len-this._writingBuf.length))if(this.sync)try{B9r(_vt),this.release(void 0,0)}catch(ne){this.release(ne)}else setTimeout(B,_vt);else this._writing=!1,this.emit("error",F);return}this.emit("write",Q);let X=v9r(this._writingBuf,this._len,Q);if(this._len=X.len,this._writingBuf=X.writingBuf,this._writingBuf.length){if(!this.sync){B();return}try{do{let ne=N(),ce=v9r(this._writingBuf,this._len,ne);this._len=ce.len,this._writingBuf=ce.writingBuf}while(this._writingBuf.length)}catch(ne){this.release(ne);return}}this._fsync&&sw.fsyncSync(this.fd);let ae=this._len;this._reopening?(this._writing=!1,this._reopening=!1,this.reopen()):ae>this.minLength?this._actualWrite():this._ending?ae>0?this._actualWrite():(this._writing=!1,bvt(this)):(this._writing=!1,this.sync?this._asyncDrainScheduled||(this._asyncDrainScheduled=!0,process.nextTick(_Fc,this)):this.emit("drain"))},this.on("newListener",function(F){F==="drain"&&(this._asyncDrainScheduled=!1)})}function v9r(e,t,r){return typeof e=="string"&&Buffer.byteLength(e)!==r&&(r=Buffer.from(e).subarray(0,r).toString().length),t=Math.max(t-r,0),e=e.slice(r),{writingBuf:e,len:t}}function _Fc(e){e.listenerCount("drain")>0&&(e._asyncDrainScheduled=!1,e.emit("drain"))}mFc(C4,hFc);function AJi(e,t){return e.length===0?yvt:e.length===1?e[0]:Buffer.concat(e,t)}function yFc(e){if(this.destroyed)throw new Error("SonicBoom destroyed");let t=this._len+e.length,r=this._bufs;return this.maxLength&&t>this.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?r.push(""+e):r[r.length-1]+=e,this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._lenthis.maxLength?(this.emit("drop",e),this._lenthis.maxWrite?(r.push([e]),n.push(e.length)):(r[r.length-1].push(e),n[n.length-1]+=e.length),this._len=t,!this._writing&&this._len>=this.minLength&&this._actualWrite(),this._len{this._fsync?(this._flushPending=!1,e()):sw.fsync(this.fd,n=>{this._flushPending=!1,e(n)}),this.off("error",r)},r=n=>{this._flushPending=!1,e(n),this.off("drain",t)};this.once("drain",t),this.once("error",r)}function EFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&this._bufs.push(""),this._actualWrite())}function SFc(e){if(e!=null&&typeof e!="function")throw new Error("flush cb must be a function");if(this.destroyed){let t=new Error("SonicBoom destroyed");if(e){e(t);return}throw t}if(this.minLength<=0){e?.();return}e&&dJi.call(this,e),!this._writing&&(this._bufs.length===0&&(this._bufs.push([]),this._lens.push(0)),this._actualWrite())}C4.prototype.reopen=function(e){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.reopen(e)});return}if(this._ending)return;if(!this.file)throw new Error("Unable to reopen a file descriptor, you must pass a file to SonicBoom");if(e&&(this.file=e),this._reopening=!0,this._writing)return;let t=this.fd;this.once("ready",()=>{t!==this.fd&&sw.close(t,r=>{if(r)return this.emit("error",r)})}),gJi(this.file,this)};C4.prototype.end=function(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this._opening){this.once("ready",()=>{this.end()});return}this._ending||(this._ending=!0,!this._writing&&(this._len>0&&this.fd>=0?this._actualWrite():bvt(this)))};function vFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift(this._writingBuf),this._writingBuf="");let e="";for(;this._bufs.length||e;){e.length<=0&&(e=this._bufs[0]);try{let t=sw.writeSync(this.fd,e,"utf8"),r=v9r(e,this._len,t);e=r.writingBuf,this._len=r.len,e.length<=0&&this._bufs.shift()}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}try{sw.fsyncSync(this.fd)}catch{}}function BFc(){if(this.destroyed)throw new Error("SonicBoom destroyed");if(this.fd<0)throw new Error("sonic boom is not ready yet");!this._writing&&this._writingBuf.length>0&&(this._bufs.unshift([this._writingBuf]),this._writingBuf=yvt);let e=yvt;for(;this._bufs.length||e.length;){e.length<=0&&(e=AJi(this._bufs[0],this._lens[0]));try{let t=sw.writeSync(this.fd,e);e=e.subarray(t),this._len=Math.max(this._len-t,0),e.length<=0&&(this._bufs.shift(),this._lens.shift())}catch(t){if((t.code==="EAGAIN"||t.code==="EBUSY")&&!this.retryEAGAIN(t,e.length,this._len-e.length))throw t;B9r(_vt)}}}C4.prototype.destroy=function(){this.destroyed||bvt(this)};function wFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf||this._bufs.shift()||"",this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf,"utf8");e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,"utf8",e)}function TFc(){let e=this.release;if(this._writing=!0,this._writingBuf=this._writingBuf.length?this._writingBuf:AJi(this._bufs.shift(),this._lens.shift()),this.sync)try{let t=sw.writeSync(this.fd,this._writingBuf);e(null,t)}catch(t){e(t)}else sw.write(this.fd,this._writingBuf,e)}function bvt(e){if(e.fd===-1){e.once("ready",bvt.bind(null,e));return}e.destroyed=!0,e._bufs=[],e._lens=[],sw.fsync(e.fd,t);function t(){e.fd!==1&&e.fd!==2?sw.close(e.fd,r):r()}function r(n){if(n){e.emit("error",n);return}e._ending&&!e._writing&&e.emit("finish"),e.emit("close")}}C4.SonicBoom=C4;C4.default=C4;pJi.exports=C4});var yJi=H((mMu,_Ji)=>{"use strict";var _4={exit:[],beforeExit:[]},IJi={exit:DFc,beforeExit:kFc},ODe;function RFc(){ODe===void 0&&(ODe=new FinalizationRegistry(xFc))}function NFc(e){_4[e].length>0||process.on(e,IJi[e])}function hJi(e){_4[e].length>0||(process.removeListener(e,IJi[e]),_4.exit.length===0&&_4.beforeExit.length===0&&(ODe=void 0))}function DFc(){mJi("exit")}function kFc(){mJi("beforeExit")}function mJi(e){for(let t of _4[e]){let r=t.deref(),n=t.fn;r!==void 0&&n(r,e)}_4[e]=[]}function xFc(e){for(let t of["exit","beforeExit"]){let r=_4[t].indexOf(e);_4[t].splice(r,r+1),hJi(t)}}function CJi(e,t,r){if(t===void 0)throw new Error("the object can't be undefined");NFc(e);let n=new WeakRef(t);n.fn=r,RFc(),ODe.register(t,n),_4[e].push(n)}function GFc(e,t){CJi("exit",e,t)}function FFc(e,t){CJi("beforeExit",e,t)}function ZFc(e){if(ODe!==void 0){ODe.unregister(e);for(let t of["exit","beforeExit"])_4[t]=_4[t].filter(r=>{let n=r.deref();return n&&n!==e}),hJi(t)}}_Ji.exports={register:GFc,registerBeforeExit:FFc,unregister:ZFc}});var DJi=H((D9r,k9r)=>{(function(e,t){typeof D9r=="object"&&typeof k9r<"u"?k9r.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.uniqolor=t())})(D9r,function(){"use strict";function e(Se,De){var k=Se==null?null:typeof Symbol<"u"&&Se[Symbol.iterator]||Se["@@iterator"];if(k!=null){var et,ct,Me,je,St=[],At=!0,Yt=!1;try{if(Me=(k=k.call(Se)).next,De===0){if(Object(k)!==k)return;At=!1}else for(;!(At=(et=Me.call(k)).done)&&(St.push(et.value),St.length!==De);At=!0);}catch(Tr){Yt=!0,ct=Tr}finally{try{if(!At&&k.return!=null&&(je=k.return(),Object(je)!==je))return}finally{if(Yt)throw ct}}return St}}function t(Se,De){return a(Se)||e(Se,De)||l(Se,De)||I()}function r(Se){return n(Se)||o(Se)||l(Se)||f()}function n(Se){if(Array.isArray(Se))return A(Se)}function a(Se){if(Array.isArray(Se))return Se}function o(Se){if(typeof Symbol<"u"&&Se[Symbol.iterator]!=null||Se["@@iterator"]!=null)return Array.from(Se)}function l(Se,De){if(Se){if(typeof Se=="string")return A(Se,De);var k=Object.prototype.toString.call(Se).slice(8,-1);if(k==="Object"&&Se.constructor&&(k=Se.constructor.name),k==="Map"||k==="Set")return Array.from(Se);if(k==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(k))return A(Se,De)}}function A(Se,De){(De==null||De>Se.length)&&(De=Se.length);for(var k=0,et=new Array(De);k=je[0]&&ct<=je[1])return Se(De,k,et)}return ct},Q=function(De){for(var k=De.length,et=0,ct=0;ct1&&(et-=1),et<1/6?De+(k-De)*6*et:et<1/2?k:et<2/3?De+(k-De)*(2/3-et)*6:De},ce=function(De,k,et){var ct,Me,je;if(De/=360,k/=100,et/=100,k===0)ct=Me=je=et;else{var St=et<.5?et*(1+k):et+k-et*k,At=2*et-St;ct=ne(At,St,De+1/3),Me=ne(At,St,De),je=ne(At,St,De-1/3)}return[Math.round(ct*255),Math.round(Me*255),Math.round(je*255)]},fe=function(De,k,et,ct){return(De*299+k*587+et*114)/1e3>=ct},ue=function(De,k,et){return"hsl(".concat(De,", ").concat(k,"%, ").concat(et,"%)")},de=function(De,k,et,ct){switch(ct){case"rgb":return"rgb(".concat(De,", ").concat(k,", ").concat(et,")");case"hex":default:return"#".concat(E(De.toString(16))).concat(E(k.toString(16))).concat(E(et.toString(16)))}},be=function(De){var k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},et=k.format,ct=et===void 0?"hex":et,Me=k.saturation,je=Me===void 0?[50,55]:Me,St=k.lightness,At=St===void 0?[50,60]:St,Yt=k.differencePoint,Tr=Yt===void 0?130:Yt,Nr=Math.abs(Q(String(De))),er=X(Nr,[0,360]),vt=X(Nr,ae(je,C)),xt=X(Nr,ae(At,b)),Zr=ce(er,vt,xt),qt=t(Zr,3),Xt=qt[0],lr=qt[1],cr=qt[2];return{color:ct==="hsl"?ue(er,vt,xt):de(Xt,lr,cr,ct),isLight:fe(Xt,lr,cr,Tr)}};return be.random=function(){var Se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},De=Se.format,k=De===void 0?"hex":De,et=Se.saturation,ct=et===void 0?[50,55]:et,Me=Se.lightness,je=Me===void 0?[50,60]:Me,St=Se.differencePoint,At=St===void 0?130:St,Yt=Se.excludeHue;ct=ae(ct,C),je=ae(je,b);var Tr=Yt?F(0,359,Yt):B(0,359),Nr=typeof ct=="number"?ct:B.apply(void 0,r(ct)),er=typeof je=="number"?je:B.apply(void 0,r(je)),vt=ce(Tr,Nr,er),xt=t(vt,3),Zr=xt[0],qt=xt[1],Xt=xt[2];return{color:k==="hsl"?ue(Tr,Nr,er):de(Zr,qt,Xt,k),isLight:fe(Zr,qt,Xt,At)}},be})});var Z9r=H(Gj=>{"use strict";Object.defineProperty(Gj,"__esModule",{value:!0});Gj.TOKEN_TYPE_TO_HIGHLIGHT=Gj.HighlightSubject=Gj.TokenType=void 0;var TV;(function(e){e[e.WHITESPACE=0]="WHITESPACE",e[e.WORD=1]="WORD",e[e.QUOTE=2]="QUOTE",e[e.BACKTICK_QUOTE=3]="BACKTICK_QUOTE",e[e.RESERVED=4]="RESERVED",e[e.RESERVED_TOPLEVEL=5]="RESERVED_TOPLEVEL",e[e.RESERVED_NEWLINE=6]="RESERVED_NEWLINE",e[e.BOUNDARY=7]="BOUNDARY",e[e.COMMENT=8]="COMMENT",e[e.BLOCK_COMMENT=9]="BLOCK_COMMENT",e[e.NUMBER=10]="NUMBER",e[e.ERROR=11]="ERROR",e[e.VARIABLE=12]="VARIABLE",e[e.LITERAL=13]="LITERAL",e[e.BUILT_IN=14]="BUILT_IN"})(TV=Gj.TokenType||(Gj.TokenType={}));var RV;(function(e){e.BOUNDARY="boundary",e.WORD="word",e.BACKTICK_QUOTE="backtickQuote",e.QUOTE="quote",e.RESERVED="reserved",e.NUMBER="number",e.VARIABLE="variable",e.COMMENT="comment",e.FUNCTIONS="functions",e.LITERAL="literal",e.BUILT_IN="builtIn"})(RV=Gj.HighlightSubject||(Gj.HighlightSubject={}));Gj.TOKEN_TYPE_TO_HIGHLIGHT={[TV.BOUNDARY]:RV.BOUNDARY,[TV.WORD]:RV.WORD,[TV.BACKTICK_QUOTE]:RV.BACKTICK_QUOTE,[TV.QUOTE]:RV.QUOTE,[TV.RESERVED]:RV.RESERVED,[TV.RESERVED_TOPLEVEL]:RV.RESERVED,[TV.RESERVED_NEWLINE]:RV.RESERVED,[TV.NUMBER]:RV.NUMBER,[TV.VARIABLE]:RV.VARIABLE,[TV.COMMENT]:RV.COMMENT,[TV.BLOCK_COMMENT]:RV.COMMENT,[TV.LITERAL]:RV.LITERAL,[TV.BUILT_IN]:RV.BUILT_IN}});var V9r=H(Nvt=>{"use strict";Object.defineProperty(Nvt,"__esModule",{value:!0});Nvt.Tokenizer=void 0;var zk=Z9r(),L9r=class{constructor(){this.literal=["true","false","null","unknown"],this.builtIn=["array","bigint","binary","bit","blob","bool","boolean","char","character","date","dec","decimal","float","int","int8","integer","interval","number","numeric","real","record","serial","serial8","smallint","text","time","timestamp","tinyint","varchar","varchar2","varying","void"],this.reserved=["accessible","action","after","against","aggregate","algorithm","all","alter","analyse","analyze","as","asc","autocommit","auto_increment","backup","begin","between","binlog","both","cascade","case","change","changed","character set","charset","check","checksum","collate","collation","column","columns","comment","commit","committed","compressed","concurrent","constraint","contains","convert","create","cross","current_timestamp","database","databases","day","day_hour","day_minute","day_second","default","definer","delayed","delete","desc","describe","deterministic","distinct","distinctrow","div","do","dumpfile","duplicate","dynamic","else","enclosed","end","engine","engine_type","engines","escape","escaped","events","exec","execute","exists","explain","extended","fast","fields","file","first","fixed","flush","for","force","foreign","full","fulltext","function","global","grant","grants","group_concat","heap","high_priority","hosts","hour","hour_minute","hour_second","identified","if","ifnull","ignore","in","index","indexes","infile","insert","insert_id","insert_method","interval","into","invoker","is","isolation","key","keys","kill","last_insert_id","leading","level","like","linear","lines","load","local","lock","locks","logs","low_priority","maria","master","master_connect_retry","master_host","master_log_file","match","max_connections_per_hour","max_queries_per_hour","max_rows","max_updates_per_hour","max_user_connections","medium","merge","minute","minute_second","min_rows","mode","month","mrg_myisam","myisam","names","natural","not","now()","null","offset","on","open","optimize","option","optionally","on update","on delete","outfile","pack_keys","page","partial","partition","partitions","password","primary","privileges","procedure","process","processlist","purge","quick","range","raid0","raid_chunks","raid_chunksize","raid_type","read","read_only","read_write","references","regexp","reload","rename","repair","repeatable","replace","replication","reset","restore","restrict","return","returns","revoke","rlike","rollback","row","rows","row_format","second","security","separator","serializable","session","share","show","shutdown","slave","soname","sounds","sql","sql_auto_is_null","sql_big_result","sql_big_selects","sql_big_tables","sql_buffer_result","sql_calc_found_rows","sql_log_bin","sql_log_off","sql_log_update","sql_low_priority_updates","sql_max_join_size","sql_quote_show_create","sql_safe_updates","sql_select_limit","sql_slave_skip_counter","sql_small_result","sql_warnings","sql_cache","sql_no_cache","start","starting","status","stop","storage","straight_join","string","striped","super","table","tables","temporary","terminated","then","to","trailing","transactional","true","truncate","type","types","uncommitted","unique","unlock","unsigned","usage","use","using","variables","view","when","with","work","write","year_month"],this.reservedToplevel=["select","from","where","set","order by","group by","limit","drop","values","update","having","add","change","modify","alter table","delete from","union all","union","except","intersect"],this.reservedNewline=["left outer join","right outer join","left join","right join","outer join","inner join","join","xor","or","and"],this.functions=["abs","acos","adddate","addtime","aes_decrypt","aes_encrypt","area","asbinary","ascii","asin","astext","atan","atan2","avg","bdmpolyfromtext","bdmpolyfromwkb","bdpolyfromtext","bdpolyfromwkb","benchmark","bin","bit_and","bit_count","bit_length","bit_or","bit_xor","boundary","buffer","cast","ceil","ceiling","centroid","char","character_length","charset","char_length","coalesce","coercibility","collation","compress","concat","concat_ws","connection_id","contains","conv","convert","convert_tz","convexhull","cos","cot","count","crc32","crosses","curdate","current_date","current_time","current_timestamp","current_user","curtime","database","date","datediff","date_add","date_diff","date_format","date_sub","day","dayname","dayofmonth","dayofweek","dayofyear","decode","default","degrees","des_decrypt","des_encrypt","difference","dimension","disjoint","distance","elt","encode","encrypt","endpoint","envelope","equals","exp","export_set","exteriorring","extract","extractvalue","field","find_in_set","floor","format","found_rows","from_days","from_unixtime","geomcollfromtext","geomcollfromwkb","geometrycollection","geometrycollectionfromtext","geometrycollectionfromwkb","geometryfromtext","geometryfromwkb","geometryn","geometrytype","geomfromtext","geomfromwkb","get_format","get_lock","glength","greatest","group_concat","group_unique_users","hex","hour","if","ifnull","inet_aton","inet_ntoa","insert","instr","interiorringn","intersection","intersects","interval","isclosed","isempty","isnull","isring","issimple","is_free_lock","is_used_lock","last_day","last_insert_id","lcase","least","left","length","linefromtext","linefromwkb","linestring","linestringfromtext","linestringfromwkb","ln","load_file","localtime","localtimestamp","locate","log","log10","log2","lower","lpad","ltrim","makedate","maketime","make_set","master_pos_wait","max","mbrcontains","mbrdisjoint","mbrequal","mbrintersects","mbroverlaps","mbrtouches","mbrwithin","md5","microsecond","mid","min","minute","mlinefromtext","mlinefromwkb","mod","month","monthname","mpointfromtext","mpointfromwkb","mpolyfromtext","mpolyfromwkb","multilinestring","multilinestringfromtext","multilinestringfromwkb","multipoint","multipointfromtext","multipointfromwkb","multipolygon","multipolygonfromtext","multipolygonfromwkb","name_const","nullif","numgeometries","numinteriorrings","numpoints","oct","octet_length","old_password","ord","overlaps","password","period_add","period_diff","pi","point","pointfromtext","pointfromwkb","pointn","pointonsurface","polyfromtext","polyfromwkb","polygon","polygonfromtext","polygonfromwkb","position","pow","power","quarter","quote","radians","rand","related","release_lock","repeat","replace","reverse","right","round","row_count","rpad","rtrim","schema","second","sec_to_time","session_user","sha","sha1","sign","sin","sleep","soundex","space","sqrt","srid","startpoint","std","stddev","stddev_pop","stddev_samp","strcmp","str_to_date","subdate","substr","substring","substring_index","subtime","sum","symdifference","sysdate","system_user","tan","time","timediff","timestamp","timestampadd","timestampdiff","time_format","time_to_sec","touches","to_days","trim","truncate","ucase","uncompress","uncompressed_length","unhex","unique_users","unix_timestamp","updatexml","upper","user","utc_date","utc_time","utc_timestamp","uuid","variance","var_pop","var_samp","version","week","weekday","weekofyear","within","x","y","year","yearweek"],this.boundaries=[",",";",":",")","(",".","=","<",">","+","-","*","/","!","^","%","|","&","#"],this.regexBoundaries="("+this.quoteRegex(this.boundaries).join("|")+")",this.regexReserved="("+this.quoteRegex(this.reserved).join("|")+")",this.regexReservedToplevel=`(${this.quoteRegex(this.reservedToplevel).join("|")})`.replace(/ /g,"\\s+"),this.regexReservedNewline=`(${this.quoteRegex(this.reservedNewline).join("|")})`.replace(/ /g,"\\s+"),this.regexFunction="("+this.quoteRegex(this.functions).join("|")+")",this.regexLiteral="("+this.quoteRegex(this.literal).join("|")+")",this.regexBuiltIn="("+this.quoteRegex(this.builtIn).join("|")+")"}tokenize(t){let r=[],n=t.length+1,a,o=t.length;for(;o;){if(n<=o)return r.push({type:zk.TokenType.ERROR,value:t}),r;n=o,a=this.createNextToken(t,a);let l=a.value.length;r.push(a),t=t.substr(l),o-=l}return r}createNextToken(t,r){let n;if(n=t.match(/^\s+/),n)return{type:zk.TokenType.WHITESPACE,value:n[0]};if(t[0]==="#"||t[1]&&t[0]==="-"&&t[1]==="-"||t[1]&&t[0]==="/"&&t[1]==="*"){let o,l;return t[0]==="-"||t[0]==="#"?(l=t.indexOf(` -`),o=zk.TokenType.COMMENT):(l=t.indexOf("*/",2)+2,o=zk.TokenType.BLOCK_COMMENT),l===-1&&(l=t.length),{type:o,value:t.substr(0,l)}}if(['"',"'","`","["].includes(t[0]))return{type:t[0]==="`"||t[0]==="["?zk.TokenType.BACKTICK_QUOTE:zk.TokenType.QUOTE,value:this.getQuotedString(t)};if((t[0]==="@"||t[0]===":")&&t[1]){if(['"',"'","`"].includes(t[1])){let o=t[0]+this.getQuotedString(t.substr(1));return{type:zk.TokenType.VARIABLE,value:o}}if(n=new RegExp(`^(${t[0]}[a-zA-Z0-9._$]+)`).exec(t),n)return{type:zk.TokenType.VARIABLE,value:n[1]}}if(n=new RegExp(`^([0-9]+(.[0-9]+)?|0x[0-9a-fA-F]+|0b[01]+)($|\\s|"'\`|${this.regexBoundaries})`).exec(t),n)return{type:zk.TokenType.NUMBER,value:n[1]};if(n=new RegExp(`^(${this.regexBoundaries})`).exec(t),n)return{type:zk.TokenType.BOUNDARY,value:n[1]};let a=t.toLowerCase();if(!r||r.value!=="."){if(n=new RegExp(`^(${this.regexReservedToplevel})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED_TOPLEVEL,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexReservedNewline})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED_NEWLINE,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexLiteral})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.LITERAL,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexBuiltIn})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.BUILT_IN,value:t.substr(0,n[1].length)};if(n=new RegExp(`^(${this.regexReserved})($|\\s|${this.regexBoundaries})`).exec(a),n)return{type:zk.TokenType.RESERVED,value:t.substr(0,n[1].length)}}return n=new RegExp(`^(${this.regexFunction}[(]|\\s|[)])`).exec(a),n?{type:zk.TokenType.RESERVED,value:t.substr(0,n[1].length-1)}:(n=new RegExp(`^(.*?)($|\\s|["'\`]|${this.regexBoundaries})`).exec(t),{type:zk.TokenType.WORD,value:n[1]})}quoteRegex(t){return t.map(r=>r.replace(new RegExp("[.\\\\+*?\\[^\\]$(){}=!<>|:\\/-]","g"),"\\$&"))}getQuotedString(t){var r;let n=`^(((\`[^\`]*($|\`))+)|((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)|(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)|(('[^'\\\\]*(?:\\\\.[^'\\\\]*)*('|$))+))`,a=new RegExp(n,"s").exec(t);return(r=a?.[1])!==null&&r!==void 0?r:""}};Nvt.Tokenizer=L9r});var LJi=H((lHu,WKe)=>{"use strict";var JFc=typeof process<"u"&&process.env.TERM_PROGRAM==="Hyper",UFc=typeof process<"u"&&process.platform==="win32",GJi=typeof process<"u"&&process.platform==="linux",P9r={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",question:"?",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},FJi=Object.assign({},P9r,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ZJi=Object.assign({},P9r,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:GJi?"\u25B8":"\u276F",pointerSmall:GJi?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});WKe.exports=UFc&&!JFc?FJi:ZJi;Reflect.defineProperty(WKe.exports,"common",{enumerable:!1,value:P9r});Reflect.defineProperty(WKe.exports,"windows",{enumerable:!1,value:FJi});Reflect.defineProperty(WKe.exports,"other",{enumerable:!1,value:ZJi})});var OKe=H((uHu,W9r)=>{"use strict";var KFc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),jFc=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,zFc=()=>typeof process<"u"?process.env.FORCE_COLOR!=="0":!1,VJi=()=>{let e={enabled:zFc(),visible:!0,styles:{},keys:{}},t=o=>{let l=o.open=`\x1B[${o.codes[0]}m`,A=o.close=`\x1B[${o.codes[1]}m`,f=o.regex=new RegExp(`\\u001b\\[${o.codes[1]}m`,"g");return o.wrap=(I,C)=>{I.includes(A)&&(I=I.replace(f,A+l));let b=l+I+A;return C?b.replace(/\r*\n/g,`${A}$&${l}`):b},o},r=(o,l,A)=>typeof o=="function"?o(l):o.wrap(l,A),n=(o,l)=>{if(o===""||o==null)return"";if(e.enabled===!1)return o;if(e.visible===!1)return"";let A=""+o,f=A.includes(` -`),I=l.length;for(I>0&&l.includes("unstyle")&&(l=[...new Set(["unstyle",...l])].reverse());I-- >0;)A=r(e.styles[l[I]],A,f);return A},a=(o,l,A)=>{e.styles[o]=t({name:o,codes:l}),(e.keys[A]||(e.keys[A]=[])).push(o),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(I){e.alias(o,I)},get(){let I=C=>n(C,I.stack);return Reflect.setPrototypeOf(I,e),I.stack=this.stack?this.stack.concat(o):[o],I}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),e.ansiRegex=jFc,e.hasColor=e.hasAnsi=o=>(e.ansiRegex.lastIndex=0,typeof o=="string"&&o!==""&&e.ansiRegex.test(o)),e.alias=(o,l)=>{let A=typeof l=="string"?e[l]:l;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:o}),e.styles[o]=A,A.stack=[o]),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(f){e.alias(o,f)},get(){let f=I=>n(I,f.stack);return Reflect.setPrototypeOf(f,e),f.stack=this.stack?this.stack.concat(A.stack):A.stack,f}})},e.theme=o=>{if(!KFc(o))throw new TypeError("Expected theme to be an object");for(let l of Object.keys(o))e.alias(l,o[l]);return e},e.alias("unstyle",o=>typeof o=="string"&&o!==""?(e.ansiRegex.lastIndex=0,o.replace(e.ansiRegex,"")):""),e.alias("noop",o=>o),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=LJi(),e.define=a,e};W9r.exports=VJi();W9r.exports.create=VJi});var PJi=H(HDe=>{"use strict";var qFc=HDe&&HDe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HDe,"__esModule",{value:!0});HDe.SqlHighlighter=void 0;var Fj=qFc(OKe()),$Fc=V9r(),eL=Z9r(),Dvt=class e{constructor(t={}){this.theme=t,this.tokenizer=new $Fc.Tokenizer,this.theme=Object.assign(Object.assign({},e.DEFAULT_THEME),this.theme)}highlight(t){let r=this.tokenizer.tokenize(t),n,a="",o=0;for(;n=r[o++];)a+=this.highlightToken(n.type,n.value);return a}highlightToken(t,r){return t===eL.TokenType.BOUNDARY&&["(",")"].includes(r)?r:this.colorize(t,r)}colorize(t,r){return!eL.TOKEN_TYPE_TO_HIGHLIGHT[t]||!this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]]?r:this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]](r)}};HDe.SqlHighlighter=Dvt;Dvt.DEFAULT_THEME={[eL.HighlightSubject.QUOTE]:Fj.default.yellow,[eL.HighlightSubject.BACKTICK_QUOTE]:Fj.default.yellow,[eL.HighlightSubject.RESERVED]:Fj.default.white.bold,[eL.HighlightSubject.BOUNDARY]:Fj.default.reset,[eL.HighlightSubject.NUMBER]:Fj.default.green,[eL.HighlightSubject.WORD]:void 0,[eL.HighlightSubject.COMMENT]:Fj.default.green.dim,[eL.HighlightSubject.VARIABLE]:Fj.default.yellow,[eL.HighlightSubject.FUNCTIONS]:Fj.default.green.bold,[eL.HighlightSubject.BUILT_IN]:Fj.default.cyan,[eL.HighlightSubject.LITERAL]:Fj.default.cyan}});var OJi=H(qce=>{"use strict";var eZc=qce&&qce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WJi=qce&&qce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&eZc(t,e,r)};Object.defineProperty(qce,"__esModule",{value:!0});WJi(V9r(),qce);WJi(PJi(),qce)});var HJi=H((MJi,kvt)=>{(function(e,t){typeof kvt=="object"&&kvt.exports?kvt.exports=t():e.nearley=t()})(MJi,function(){function e(f,I,C){return this.id=++e.highestId,this.name=f,this.symbols=I,this.postprocess=C,this}e.highestId=0,e.prototype.toString=function(f){var I=typeof f>"u"?this.symbols.map(A).join(" "):this.symbols.slice(0,f).map(A).join(" ")+" \u25CF "+this.symbols.slice(f).map(A).join(" ");return this.name+" \u2192 "+I};function t(f,I,C,b){this.rule=f,this.dot=I,this.reference=C,this.data=[],this.wantedBy=b,this.isComplete=this.dot===f.symbols.length}t.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},t.prototype.nextState=function(f){var I=new t(this.rule,this.dot+1,this.reference,this.wantedBy);return I.left=this,I.right=f,I.isComplete&&(I.data=I.build(),I.right=void 0),I},t.prototype.build=function(){var f=[],I=this;do f.push(I.right.data),I=I.left;while(I.left);return f.reverse(),f},t.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,o.fail))};function r(f,I){this.grammar=f,this.index=I,this.states=[],this.wants={},this.scannable=[],this.completed={}}r.prototype.process=function(f){for(var I=this.states,C=this.wants,b=this.completed,E=0;Er.replace(new RegExp("[.\\\\+*?\\[^\\]$(){}=!<>|:\\/-]","g"),"\\$&"))}getQuotedString(t){var r;let n=`^(((\`[^\`]*($|\`))+)|((\\[[^\\]]*($|\\]))(\\][^\\]]*($|\\]))*)|(("[^"\\\\]*(?:\\\\.[^"\\\\]*)*("|$))+)|(('[^'\\\\]*(?:\\\\.[^'\\\\]*)*('|$))+))`,a=new RegExp(n,"s").exec(t);return(r=a?.[1])!==null&&r!==void 0?r:""}};Nvt.Tokenizer=L9r});var LJi=H((uHu,WKe)=>{"use strict";var UFc=typeof process<"u"&&process.env.TERM_PROGRAM==="Hyper",KFc=typeof process<"u"&&process.platform==="win32",GJi=typeof process<"u"&&process.platform==="linux",P9r={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",question:"?",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},FJi=Object.assign({},P9r,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),ZJi=Object.assign({},P9r,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:GJi?"\u25B8":"\u276F",pointerSmall:GJi?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});WKe.exports=KFc&&!UFc?FJi:ZJi;Reflect.defineProperty(WKe.exports,"common",{enumerable:!1,value:P9r});Reflect.defineProperty(WKe.exports,"windows",{enumerable:!1,value:FJi});Reflect.defineProperty(WKe.exports,"other",{enumerable:!1,value:ZJi})});var OKe=H((gHu,W9r)=>{"use strict";var jFc=e=>e!==null&&typeof e=="object"&&!Array.isArray(e),zFc=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,qFc=()=>typeof process<"u"?process.env.FORCE_COLOR!=="0":!1,VJi=()=>{let e={enabled:qFc(),visible:!0,styles:{},keys:{}},t=o=>{let l=o.open=`\x1B[${o.codes[0]}m`,A=o.close=`\x1B[${o.codes[1]}m`,f=o.regex=new RegExp(`\\u001b\\[${o.codes[1]}m`,"g");return o.wrap=(I,C)=>{I.includes(A)&&(I=I.replace(f,A+l));let b=l+I+A;return C?b.replace(/\r*\n/g,`${A}$&${l}`):b},o},r=(o,l,A)=>typeof o=="function"?o(l):o.wrap(l,A),n=(o,l)=>{if(o===""||o==null)return"";if(e.enabled===!1)return o;if(e.visible===!1)return"";let A=""+o,f=A.includes(` +`),I=l.length;for(I>0&&l.includes("unstyle")&&(l=[...new Set(["unstyle",...l])].reverse());I-- >0;)A=r(e.styles[l[I]],A,f);return A},a=(o,l,A)=>{e.styles[o]=t({name:o,codes:l}),(e.keys[A]||(e.keys[A]=[])).push(o),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(I){e.alias(o,I)},get(){let I=C=>n(C,I.stack);return Reflect.setPrototypeOf(I,e),I.stack=this.stack?this.stack.concat(o):[o],I}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),e.ansiRegex=zFc,e.hasColor=e.hasAnsi=o=>(e.ansiRegex.lastIndex=0,typeof o=="string"&&o!==""&&e.ansiRegex.test(o)),e.alias=(o,l)=>{let A=typeof l=="string"?e[l]:l;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:o}),e.styles[o]=A,A.stack=[o]),Reflect.defineProperty(e,o,{configurable:!0,enumerable:!0,set(f){e.alias(o,f)},get(){let f=I=>n(I,f.stack);return Reflect.setPrototypeOf(f,e),f.stack=this.stack?this.stack.concat(A.stack):A.stack,f}})},e.theme=o=>{if(!jFc(o))throw new TypeError("Expected theme to be an object");for(let l of Object.keys(o))e.alias(l,o[l]);return e},e.alias("unstyle",o=>typeof o=="string"&&o!==""?(e.ansiRegex.lastIndex=0,o.replace(e.ansiRegex,"")):""),e.alias("noop",o=>o),e.none=e.clear=e.noop,e.stripColor=e.unstyle,e.symbols=LJi(),e.define=a,e};W9r.exports=VJi();W9r.exports.create=VJi});var PJi=H(HDe=>{"use strict";var $Fc=HDe&&HDe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(HDe,"__esModule",{value:!0});HDe.SqlHighlighter=void 0;var Fj=$Fc(OKe()),eZc=V9r(),eL=Z9r(),Dvt=class e{constructor(t={}){this.theme=t,this.tokenizer=new eZc.Tokenizer,this.theme=Object.assign(Object.assign({},e.DEFAULT_THEME),this.theme)}highlight(t){let r=this.tokenizer.tokenize(t),n,a="",o=0;for(;n=r[o++];)a+=this.highlightToken(n.type,n.value);return a}highlightToken(t,r){return t===eL.TokenType.BOUNDARY&&["(",")"].includes(r)?r:this.colorize(t,r)}colorize(t,r){return!eL.TOKEN_TYPE_TO_HIGHLIGHT[t]||!this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]]?r:this.theme[eL.TOKEN_TYPE_TO_HIGHLIGHT[t]](r)}};HDe.SqlHighlighter=Dvt;Dvt.DEFAULT_THEME={[eL.HighlightSubject.QUOTE]:Fj.default.yellow,[eL.HighlightSubject.BACKTICK_QUOTE]:Fj.default.yellow,[eL.HighlightSubject.RESERVED]:Fj.default.white.bold,[eL.HighlightSubject.BOUNDARY]:Fj.default.reset,[eL.HighlightSubject.NUMBER]:Fj.default.green,[eL.HighlightSubject.WORD]:void 0,[eL.HighlightSubject.COMMENT]:Fj.default.green.dim,[eL.HighlightSubject.VARIABLE]:Fj.default.yellow,[eL.HighlightSubject.FUNCTIONS]:Fj.default.green.bold,[eL.HighlightSubject.BUILT_IN]:Fj.default.cyan,[eL.HighlightSubject.LITERAL]:Fj.default.cyan}});var OJi=H(qce=>{"use strict";var tZc=qce&&qce.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),WJi=qce&&qce.__exportStar||function(e,t){for(var r in e)r!=="default"&&!t.hasOwnProperty(r)&&tZc(t,e,r)};Object.defineProperty(qce,"__esModule",{value:!0});WJi(V9r(),qce);WJi(PJi(),qce)});var HJi=H((MJi,kvt)=>{(function(e,t){typeof kvt=="object"&&kvt.exports?kvt.exports=t():e.nearley=t()})(MJi,function(){function e(f,I,C){return this.id=++e.highestId,this.name=f,this.symbols=I,this.postprocess=C,this}e.highestId=0,e.prototype.toString=function(f){var I=typeof f>"u"?this.symbols.map(A).join(" "):this.symbols.slice(0,f).map(A).join(" ")+" \u25CF "+this.symbols.slice(f).map(A).join(" ");return this.name+" \u2192 "+I};function t(f,I,C,b){this.rule=f,this.dot=I,this.reference=C,this.data=[],this.wantedBy=b,this.isComplete=this.dot===f.symbols.length}t.prototype.toString=function(){return"{"+this.rule.toString(this.dot)+"}, from: "+(this.reference||0)},t.prototype.nextState=function(f){var I=new t(this.rule,this.dot+1,this.reference,this.wantedBy);return I.left=this,I.right=f,I.isComplete&&(I.data=I.build(),I.right=void 0),I},t.prototype.build=function(){var f=[],I=this;do f.push(I.right.data),I=I.left;while(I.left);return f.reverse(),f},t.prototype.finish=function(){this.rule.postprocess&&(this.data=this.rule.postprocess(this.data,this.reference,o.fail))};function r(f,I){this.grammar=f,this.index=I,this.states=[],this.wants={},this.scannable=[],this.completed={}}r.prototype.process=function(f){for(var I=this.states,C=this.wants,b=this.completed,E=0;E0&&I.push(" ^ "+b+" more lines identical to this"),b=0,I.push(" "+B)),C=B}},o.prototype.getSymbolDisplay=function(f){return l(f)},o.prototype.buildFirstStateStack=function(f,I){if(I.indexOf(f)!==-1)return null;if(f.wantedBy.length===0)return[f];var C=f.wantedBy[0],b=[f].concat(I),E=this.buildFirstStateStack(C,b);return E===null?null:[f].concat(E)},o.prototype.save=function(){var f=this.table[this.current];return f.lexerState=this.lexerState,f},o.prototype.restore=function(f){var I=f.index;this.current=I,this.table[I]=f,this.table.splice(I+1),this.lexerState=f.lexerState,this.results=this.finish()},o.prototype.rewind=function(f){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[f])},o.prototype.finish=function(){var f=[],I=this.grammar.start,C=this.table[this.table.length-1];return C.states.forEach(function(b){b.rule.name===I&&b.dot===b.rule.symbols.length&&b.reference===0&&b.data!==o.fail&&f.push(b)}),f.map(function(b){return b.data})};function l(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return"character matching "+f;if(f.type)return f.type+" token";if(f.test)return"token matching "+String(f.test);throw new Error("Unknown symbol type: "+f)}}function A(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return f.toString();if(f.type)return"%"+f.type;if(f.test)return"<"+String(f.test)+">";throw new Error("Unknown symbol type: "+f)}}return{Parser:o,Grammar:n,Rule:e}})});var YVr=H((MVr,HVr)=>{(function(e,t){typeof MVr=="object"&&typeof HVr<"u"?HVr.exports=t():typeof define=="function"&&define.amd?define(t):e.deepmerge=t()})(MVr,function(){"use strict";var e=function(N){return t(N)&&!r(N)};function t(E){return!!E&&typeof E=="object"}function r(E){var N=Object.prototype.toString.call(E);return N==="[object RegExp]"||N==="[object Date]"||o(E)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function o(E){return E.$$typeof===a}function l(E){return Array.isArray(E)?[]:{}}function A(E,N){var B=N&&N.clone===!0;return B&&e(E)?C(l(E),E,N):E}function f(E,N,B){var F=E.slice();return N.forEach(function(Q,X){typeof F[X]>"u"?F[X]=A(Q,B):e(Q)?F[X]=C(E[X],Q,B):E.indexOf(Q)===-1&&F.push(A(Q,B))}),F}function I(E,N,B){var F={};return e(E)&&Object.keys(E).forEach(function(Q){F[Q]=A(E[Q],B)}),Object.keys(N).forEach(function(Q){!e(N[Q])||!E[Q]?F[Q]=A(N[Q],B):F[Q]=C(E[Q],N[Q],B)}),F}function C(E,N,B){var F=Array.isArray(N),Q=Array.isArray(E),X=B||{arrayMerge:f},ae=F===Q;if(ae)if(F){var ne=X.arrayMerge||f;return ne(E,N,B)}else return I(E,N,B);else return A(N,B)}C.all=function(N,B){if(!Array.isArray(N)||N.length<2)throw new Error("first argument should be an array with at least two elements");return N.reduce(function(F,Q){return C(F,Q,B)})};var b=C;return b})});var QVr=H((kXu,a8i)=>{var wPc=YVr();a8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Map}extend(r){return this.shorthands=r,r.forEach(n=>{this[n]=a=>this.set(n,a)}),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}order(){let r=[...this.store].reduce((o,[l,A])=>(o[l]=A,o),{}),n=Object.keys(r),a=[...n];return n.forEach(o=>{if(!r[o])return;let{__before:l,__after:A}=r[o];l&&a.includes(l)?(a.splice(a.indexOf(o),1),a.splice(a.indexOf(l),0,o)):A&&a.includes(A)&&(a.splice(a.indexOf(o),1),a.splice(a.indexOf(A)+1,0,o))}),{entries:r,order:a}}entries(){let{entries:r,order:n}=this.order();if(n.length)return r}values(){let{entries:r,order:n}=this.order();return n.map(a=>r[a])}get(r){return this.store.get(r)}getOrCompute(r,n){return this.has(r)||this.set(r,n()),this.get(r)}has(r){return this.store.has(r)}set(r,n){return this.store.set(r,n),this}merge(r,n=[]){return Object.keys(r).forEach(a=>{if(n.includes(a))return;let o=r[a];!Array.isArray(o)&&typeof o!="object"||o===null||!this.has(a)?this.set(a,o):this.set(a,wPc(this.get(a),o))}),this}clean(r){return Object.keys(r).reduce((n,a)=>{let o=r[a];return o===void 0||Array.isArray(o)&&!o.length||Object.prototype.toString.call(o)==="[object Object]"&&!Object.keys(o).length||(n[a]=o),n},{})}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var Kvt=H((GXu,c8i)=>{c8i.exports=function(t){return class extends t{constructor(r){super(),this.parent=r}batch(r){return r(this),this}end(){return this.parent}}}});var Lj=H((ZXu,l8i)=>{var TPc=QVr(),RPc=Kvt();l8i.exports=TPc(RPc(Object))});var g8i=H((LXu,u8i)=>{u8i.exports=class extends Function{constructor(){return super(),new Proxy(this,{apply:(e,t,r)=>e.classCall(...r)})}classCall(){throw new Error("not implemented")}}});var d8i=H((PXu,A8i)=>{A8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.value=void 0,this.useMap=!0}set(...r){return this.useMap=!0,this.value=void 0,super.set(...r)}clear(){return this.value=void 0,super.clear()}classCall(r){return this.clear(),this.useMap=!1,this.value=r,this.parent}entries(){return this.useMap?super.entries():this.value}values(){return this.useMap?super.values():this.value}}}});var jvt=H((OXu,p8i)=>{var NPc=g8i(),DPc=QVr(),kPc=Kvt(),xPc=d8i();p8i.exports=xPc(DPc(kPc(NPc)))});var I8i=H((MXu,f8i)=>{f8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Set}add(r){return this.store.add(r),this}prepend(r){return this.store=new Set([r,...this.store]),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}values(){return[...this.store]}has(r){return this.store.has(r)}merge(r){return this.store=new Set([...this.store,...r]),this}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var $De=H((YXu,h8i)=>{var GPc=I8i(),FPc=Kvt();h8i.exports=GPc(FPc(Object))});var zvt=H((QXu,m8i)=>{m8i.exports=e=>class extends e{before(t){if(this.__after)throw new Error(`Unable to set .before(${JSON.stringify(t)}) with existing value for .after()`);return this.__before=t,this}after(t){if(this.__before)throw new Error(`Unable to set .after(${JSON.stringify(t)}) with existing value for .before()`);return this.__after=t,this}merge(t,r=[]){return t.before&&this.before(t.before),t.after&&this.after(t.after),super.merge(t,[...r,"before","after"])}}});var qvt=H((JXu,C8i)=>{var ZPc=Lj(),LPc=zvt();C8i.exports=LPc(class extends ZPc{constructor(e,t,r="plugin"){super(e),this.name=t,this.type=r,this.extend(["init"]),this.init((n,a=[])=>typeof n=="function"?new n(...a):n)}use(e,t=[]){return this.set("plugin",e).set("args",t)}tap(e){if(!this.has("plugin"))throw new Error(`Cannot call .tap() on a plugin that has not yet been defined. Call ${this.type}('${this.name}').use() first.`);return this.set("args",e(this.get("args")||[])),this}set(e,t){if(e==="args"&&!Array.isArray(t))throw new Error("args must be an array of arguments");return super.set(e,t)}merge(e,t=[]){return"plugin"in e&&this.set("plugin",e.plugin),"args"in e&&this.set("args",e.args),super.merge(e,[...t,"args","plugin"])}toConfig(){let e=this.get("init"),t=this.get("plugin"),r=this.get("args"),n=null;if(t===void 0)throw new Error(`Invalid ${this.type} configuration: ${this.type}('${this.name}').use() was not called to specify the plugin`);typeof t=="string"&&(n=t,t=wt(n));let a=t.__expression?`(${t.__expression})`:t.name,o=e(t,r);return Object.defineProperties(o,{__pluginName:{value:this.name},__pluginType:{value:this.type},__pluginArgs:{value:r},__pluginConstructorName:{value:a},__pluginPath:{value:n}}),o}})});var $vt=H((jXu,_8i)=>{var eke=Lj(),S4=$De(),VPc=qvt();_8i.exports=class extends eke{constructor(e){super(e),this.alias=new eke(this),this.aliasFields=new S4(this),this.conditionNames=new S4(this),this.descriptionFiles=new S4(this),this.extensionAlias=new eke(this),this.extensions=new S4(this),this.mainFields=new S4(this),this.mainFiles=new S4(this),this.exportsFields=new S4(this),this.importsFields=new S4(this),this.restrictions=new S4(this),this.roots=new S4(this),this.modules=new S4(this),this.plugins=new eke(this),this.fallback=new eke(this),this.byDependency=new eke(this),this.extend(["cachePredicate","cacheWithContext","enforceExtension","symlinks","unsafeCache","useSyncFileSystemCalls","preferRelative","preferAbsolute"])}plugin(e){return this.plugins.getOrCompute(e,()=>new VPc(this,e,"resolve.plugin"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{alias:this.alias.entries(),aliasFields:this.aliasFields.values(),conditionNames:this.conditionNames.values(),descriptionFiles:this.descriptionFiles.values(),extensionAlias:this.extensionAlias.entries(),extensions:this.extensions.values(),mainFields:this.mainFields.values(),mainFiles:this.mainFiles.values(),modules:this.modules.values(),exportsFields:this.exportsFields.values(),importsFields:this.importsFields.values(),restrictions:this.restrictions.values(),roots:this.roots.values(),fallback:this.fallback.entries(),byDependency:this.byDependency.entries(),plugins:this.plugins.values().map(e=>e.toConfig())}))}merge(e,t=[]){let r=["alias","aliasFields","conditionNames","descriptionFiles","extensionAlias","extensions","mainFields","mainFiles","modules","exportsFields","importsFields","restrictions","roots","fallback","byDependency"];return!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"plugin"])}}});var b8i=H((qXu,y8i)=>{var PPc=$vt(),XVr=$De();y8i.exports=class extends PPc{constructor(e){super(e),this.modules=new XVr(this),this.moduleExtensions=new XVr(this),this.packageMains=new XVr(this)}toConfig(){return this.clean({modules:this.modules.values(),moduleExtensions:this.moduleExtensions.values(),packageMains:this.packageMains.values(),...super.toConfig()})}merge(e,t=[]){let r=["modules","moduleExtensions","packageMains"];return r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r])}}});var S8i=H((e4u,E8i)=>{var WPc=Lj();E8i.exports=class extends WPc{constructor(e){super(e),this.extend(["asyncChunks","auxiliaryComment","charset","chunkFilename","chunkLoadTimeout","chunkLoadingGlobal","chunkLoading","chunkFormat","enabledChunkLoadingTypes","crossOriginLoading","devtoolFallbackModuleFilenameTemplate","devtoolModuleFilenameTemplate","devtoolNamespace","filename","assetModuleFilename","globalObject","uniqueName","hashDigest","hashDigestLength","hashFunction","hashSalt","hotUpdateChunkFilename","hotUpdateGlobal","hotUpdateMainFilename","library","libraryExport","libraryTarget","importFunctionName","path","pathinfo","publicPath","scriptType","sourceMapFilename","sourcePrefix","strictModuleErrorHandling","strictModuleExceptionHandling","umdNamedDefine","workerChunkLoading","enabledLibraryTypes","environment","compareBeforeEmit","wasmLoading","enabledWasmLoadingTypes","iife","module","clean"])}}});var B8i=H((r4u,v8i)=>{var OPc=Lj(),MPc=$De();v8i.exports=class extends OPc{constructor(e){super(e),this.allowedHosts=new MPc(this),this.extend(["after","before","bonjour","clientLogLevel","compress","contentBase","contentBasePublicPath","disableHostCheck","filename","headers","historyApiFallback","host","hot","hotOnly","http2","https","index","injectClient","injectHot","inline","lazy","liveReload","mimeTypes","noInfo","onListening","open","openPage","overlay","pfx","pfxPassphrase","port","proxy","progress","public","publicPath","quiet","serveIndex","setup","socket","sockHost","sockPath","sockPort","staticOptions","stats","stdin","transportMode","useLocalIp","watchContentBase","watchOptions","writeToDisk"])}toConfig(){return this.clean({allowedHosts:this.allowedHosts.values(),...this.entries()||{}})}merge(e,t=[]){return!t.includes("allowedHosts")&&"allowedHosts"in e&&this.allowedHosts.merge(e.allowedHosts),super.merge(e,["allowedHosts"])}}});var T8i=H((i4u,w8i)=>{var HPc=YVr(),YPc=Lj(),QPc=zvt();w8i.exports=QPc(class extends YPc{constructor(e,t){super(e),this.name=t,this.extend(["loader","options"])}tap(e){return this.options(e(this.get("options"))),this}merge(e,t=[]){return!t.includes("loader")&&"loader"in e&&this.loader(e.loader),!t.includes("options")&&"options"in e&&this.options(HPc(this.store.get("options")||{},e.options)),super.merge(e,[...t,"loader","options"])}toConfig(){let e=this.clean(this.entries()||{});return Object.defineProperties(e,{__useName:{value:this.name},__ruleNames:{value:this.parent&&this.parent.names},__ruleTypes:{value:this.parent&&this.parent.ruleTypes}}),e}})});var k8i=H((o4u,D8i)=>{var eBt=Lj(),R8i=$De(),XPc=zvt(),JPc=T8i(),UPc=$vt();function N8i(e){return Array.isArray(e)?e:[e]}var tBt=XPc(class extends eBt{constructor(e,t,r="rule"){super(e),this.ruleName=t,this.names=[],this.ruleType=r,this.ruleTypes=[];let n=this;for(;n instanceof tBt;)this.names.unshift(n.ruleName),this.ruleTypes.unshift(n.ruleType),n=n.parent;this.uses=new eBt(this),this.include=new R8i(this),this.exclude=new R8i(this),this.rules=new eBt(this),this.oneOfs=new eBt(this),this.resolve=new UPc(this),this.resolve.extend(["fullySpecified"]),this.extend(["enforce","issuer","issuerLayer","layer","mimetype","parser","generator","resource","resourceQuery","sideEffects","test","type"])}use(e){return this.uses.getOrCompute(e,()=>new JPc(this,e))}rule(e){return this.rules.getOrCompute(e,()=>new tBt(this,e,"rule"))}oneOf(e){return this.oneOfs.getOrCompute(e,()=>new tBt(this,e,"oneOf"))}pre(){return this.enforce("pre")}post(){return this.enforce("post")}toConfig(){let e=this.clean(Object.assign(this.entries()||{},{include:this.include.values(),exclude:this.exclude.values(),rules:this.rules.values().map(t=>t.toConfig()),oneOf:this.oneOfs.values().map(t=>t.toConfig()),use:this.uses.values().map(t=>t.toConfig()),resolve:this.resolve.toConfig()}));return Object.defineProperties(e,{__ruleNames:{value:this.names},__ruleTypes:{value:this.ruleTypes}}),e}merge(e,t=[]){return!t.includes("include")&&"include"in e&&this.include.merge(N8i(e.include)),!t.includes("exclude")&&"exclude"in e&&this.exclude.merge(N8i(e.exclude)),!t.includes("use")&&"use"in e&&Object.keys(e.use).forEach(r=>this.use(r).merge(e.use[r])),!t.includes("rules")&&"rules"in e&&Object.keys(e.rules).forEach(r=>this.rule(r).merge(e.rules[r])),!t.includes("oneOf")&&"oneOf"in e&&Object.keys(e.oneOf).forEach(r=>this.oneOf(r).merge(e.oneOf[r])),!t.includes("resolve")&&"resolve"in e&&this.resolve.merge(e.resolve),!t.includes("test")&&"test"in e&&this.test(e.test instanceof RegExp||typeof e.test=="function"?e.test:new RegExp(e.test)),super.merge(e,[...t,"include","exclude","use","rules","oneOf","resolve","test"])}});D8i.exports=tBt});var F8i=H((c4u,G8i)=>{var $Ke=Lj(),x8i=k8i();G8i.exports=class extends $Ke{constructor(e){super(e),this.rules=new $Ke(this),this.defaultRules=new $Ke(this),this.generator=new $Ke(this),this.parser=new $Ke(this),this.extend(["noParse","unsafeCache","wrappedContextCritical","exprContextRegExp","wrappedContextRecursive","strictExportPresence","wrappedContextRegExp"])}defaultRule(e){return this.defaultRules.getOrCompute(e,()=>new x8i(this,e,"defaultRule"))}rule(e){return this.rules.getOrCompute(e,()=>new x8i(this,e,"rule"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{defaultRules:this.defaultRules.values().map(e=>e.toConfig()),generator:this.generator.entries(),parser:this.parser.entries(),rules:this.rules.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("rule")&&"rule"in e&&Object.keys(e.rule).forEach(r=>this.rule(r).merge(e.rule[r])),!t.includes("defaultRule")&&"defaultRule"in e&&Object.keys(e.defaultRule).forEach(r=>this.defaultRule(r).merge(e.defaultRule[r])),super.merge(e,["rule","defaultRule"])}}});var V8i=H((u4u,L8i)=>{var Z8i=Lj(),KPc=jvt(),jPc=qvt();L8i.exports=class extends Z8i{constructor(e){super(e),this.minimizers=new Z8i(this),this.splitChunks=new KPc(this),this.extend(["minimize","runtimeChunk","emitOnErrors","moduleIds","chunkIds","nodeEnv","mangleWasmImports","removeAvailableModules","removeEmptyChunks","mergeDuplicateChunks","flagIncludedChunks","providedExports","usedExports","concatenateModules","sideEffects","portableRecords","mangleExports","innerGraph","realContentHash"])}minimizer(e){if(Array.isArray(e))throw new Error("optimization.minimizer() no longer supports being passed an array. Either switch to the new syntax (https://github.com/neutrinojs/webpack-chain#config-optimization-minimizers-adding) or downgrade to webpack-chain 4. If using Vue this likely means a Vue plugin has not yet been updated to support Vue CLI 4+.");return this.minimizers.getOrCompute(e,()=>new jPc(this,e,"optimization.minimizer"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{splitChunks:this.splitChunks.entries(),minimizer:this.minimizers.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("minimizer")&&"minimizer"in e&&Object.keys(e.minimizer).forEach(r=>this.minimizer(r).merge(e.minimizer[r])),super.merge(e,[...t,"minimizer"])}}});var W8i=H((A4u,P8i)=>{var zPc=jvt();P8i.exports=class extends zPc{constructor(e){super(e),this.extend(["assetFilter","hints","maxAssetSize","maxEntrypointSize"])}}});var e8e=H(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});wO.stringifyPath=wO.quoteKey=wO.isValidVariableName=wO.IS_VALID_IDENTIFIER=wO.quoteString=void 0;var qPc=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,$Pc=new Map([["\b","\\b"],[" ","\\t"],[` -`,"\\n"],["\f","\\f"],["\r","\\r"],["'","\\'"],['"','\\"'],["\\","\\\\"]]);function eWc(e){return $Pc.get(e)||`\\u${`0000${e.charCodeAt(0).toString(16)}`.slice(-4)}`}function tWc(e){return`'${e.replace(qPc,eWc)}'`}wO.quoteString=tWc;var rWc=new Set("break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "));wO.IS_VALID_IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function JVr(e){return typeof e=="string"&&!rWc.has(e)&&wO.IS_VALID_IDENTIFIER.test(e)}wO.isValidVariableName=JVr;function nWc(e,t){return JVr(e)?e:t(e)}wO.quoteKey=nWc;function iWc(e,t){let r="";for(let n of e)JVr(n)?r+=`.${n}`:r+=`[${t(n)}]`;return r}wO.stringifyPath=iWc});var UVr=H(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.FunctionParser=v4.dedentFunction=v4.functionToString=v4.USED_METHOD_KEY=void 0;var O8i=e8e(),sWc={" "(){}}[" "].toString().charAt(0)==='"',oWc={Function:"function ",GeneratorFunction:"function* ",AsyncFunction:"async function ",AsyncGeneratorFunction:"async function* "},aWc={Function:"",GeneratorFunction:"*",AsyncFunction:"async ",AsyncGeneratorFunction:"async *"},cWc=new Set("case delete else in instanceof new return throw typeof void , ; : + - ! ~ & | ^ * / % < > ? =".split(" "));v4.USED_METHOD_KEY=new WeakSet;var lWc=(e,t,r,n)=>{let a=typeof n=="string"?n:void 0;return a!==void 0&&v4.USED_METHOD_KEY.add(e),new rBt(e,t,r,a).stringify()};v4.functionToString=lWc;function M8i(e){let t;for(let r of e.split(` +`)},o.prototype.displayStateStack=function(f,I){for(var C,b=0,E=0;E0&&I.push(" ^ "+b+" more lines identical to this"),b=0,I.push(" "+B)),C=B}},o.prototype.getSymbolDisplay=function(f){return l(f)},o.prototype.buildFirstStateStack=function(f,I){if(I.indexOf(f)!==-1)return null;if(f.wantedBy.length===0)return[f];var C=f.wantedBy[0],b=[f].concat(I),E=this.buildFirstStateStack(C,b);return E===null?null:[f].concat(E)},o.prototype.save=function(){var f=this.table[this.current];return f.lexerState=this.lexerState,f},o.prototype.restore=function(f){var I=f.index;this.current=I,this.table[I]=f,this.table.splice(I+1),this.lexerState=f.lexerState,this.results=this.finish()},o.prototype.rewind=function(f){if(!this.options.keepHistory)throw new Error("set option `keepHistory` to enable rewinding");this.restore(this.table[f])},o.prototype.finish=function(){var f=[],I=this.grammar.start,C=this.table[this.table.length-1];return C.states.forEach(function(b){b.rule.name===I&&b.dot===b.rule.symbols.length&&b.reference===0&&b.data!==o.fail&&f.push(b)}),f.map(function(b){return b.data})};function l(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return"character matching "+f;if(f.type)return f.type+" token";if(f.test)return"token matching "+String(f.test);throw new Error("Unknown symbol type: "+f)}}function A(f){var I=typeof f;if(I==="string")return f;if(I==="object"){if(f.literal)return JSON.stringify(f.literal);if(f instanceof RegExp)return f.toString();if(f.type)return"%"+f.type;if(f.test)return"<"+String(f.test)+">";throw new Error("Unknown symbol type: "+f)}}return{Parser:o,Grammar:n,Rule:e}})});var YVr=H((MVr,HVr)=>{(function(e,t){typeof MVr=="object"&&typeof HVr<"u"?HVr.exports=t():typeof define=="function"&&define.amd?define(t):e.deepmerge=t()})(MVr,function(){"use strict";var e=function(N){return t(N)&&!r(N)};function t(E){return!!E&&typeof E=="object"}function r(E){var N=Object.prototype.toString.call(E);return N==="[object RegExp]"||N==="[object Date]"||o(E)}var n=typeof Symbol=="function"&&Symbol.for,a=n?Symbol.for("react.element"):60103;function o(E){return E.$$typeof===a}function l(E){return Array.isArray(E)?[]:{}}function A(E,N){var B=N&&N.clone===!0;return B&&e(E)?C(l(E),E,N):E}function f(E,N,B){var F=E.slice();return N.forEach(function(Q,X){typeof F[X]>"u"?F[X]=A(Q,B):e(Q)?F[X]=C(E[X],Q,B):E.indexOf(Q)===-1&&F.push(A(Q,B))}),F}function I(E,N,B){var F={};return e(E)&&Object.keys(E).forEach(function(Q){F[Q]=A(E[Q],B)}),Object.keys(N).forEach(function(Q){!e(N[Q])||!E[Q]?F[Q]=A(N[Q],B):F[Q]=C(E[Q],N[Q],B)}),F}function C(E,N,B){var F=Array.isArray(N),Q=Array.isArray(E),X=B||{arrayMerge:f},ae=F===Q;if(ae)if(F){var ne=X.arrayMerge||f;return ne(E,N,B)}else return I(E,N,B);else return A(N,B)}C.all=function(N,B){if(!Array.isArray(N)||N.length<2)throw new Error("first argument should be an array with at least two elements");return N.reduce(function(F,Q){return C(F,Q,B)})};var b=C;return b})});var QVr=H((xXu,a8i)=>{var TPc=YVr();a8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Map}extend(r){return this.shorthands=r,r.forEach(n=>{this[n]=a=>this.set(n,a)}),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}order(){let r=[...this.store].reduce((o,[l,A])=>(o[l]=A,o),{}),n=Object.keys(r),a=[...n];return n.forEach(o=>{if(!r[o])return;let{__before:l,__after:A}=r[o];l&&a.includes(l)?(a.splice(a.indexOf(o),1),a.splice(a.indexOf(l),0,o)):A&&a.includes(A)&&(a.splice(a.indexOf(o),1),a.splice(a.indexOf(A)+1,0,o))}),{entries:r,order:a}}entries(){let{entries:r,order:n}=this.order();if(n.length)return r}values(){let{entries:r,order:n}=this.order();return n.map(a=>r[a])}get(r){return this.store.get(r)}getOrCompute(r,n){return this.has(r)||this.set(r,n()),this.get(r)}has(r){return this.store.has(r)}set(r,n){return this.store.set(r,n),this}merge(r,n=[]){return Object.keys(r).forEach(a=>{if(n.includes(a))return;let o=r[a];!Array.isArray(o)&&typeof o!="object"||o===null||!this.has(a)?this.set(a,o):this.set(a,TPc(this.get(a),o))}),this}clean(r){return Object.keys(r).reduce((n,a)=>{let o=r[a];return o===void 0||Array.isArray(o)&&!o.length||Object.prototype.toString.call(o)==="[object Object]"&&!Object.keys(o).length||(n[a]=o),n},{})}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var Kvt=H((FXu,c8i)=>{c8i.exports=function(t){return class extends t{constructor(r){super(),this.parent=r}batch(r){return r(this),this}end(){return this.parent}}}});var Lj=H((LXu,l8i)=>{var RPc=QVr(),NPc=Kvt();l8i.exports=RPc(NPc(Object))});var g8i=H((VXu,u8i)=>{u8i.exports=class extends Function{constructor(){return super(),new Proxy(this,{apply:(e,t,r)=>e.classCall(...r)})}classCall(){throw new Error("not implemented")}}});var d8i=H((WXu,A8i)=>{A8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.value=void 0,this.useMap=!0}set(...r){return this.useMap=!0,this.value=void 0,super.set(...r)}clear(){return this.value=void 0,super.clear()}classCall(r){return this.clear(),this.useMap=!1,this.value=r,this.parent}entries(){return this.useMap?super.entries():this.value}values(){return this.useMap?super.values():this.value}}}});var jvt=H((MXu,p8i)=>{var DPc=g8i(),kPc=QVr(),xPc=Kvt(),GPc=d8i();p8i.exports=GPc(kPc(xPc(DPc)))});var I8i=H((HXu,f8i)=>{f8i.exports=function(t){return class extends t{constructor(...r){super(...r),this.store=new Set}add(r){return this.store.add(r),this}prepend(r){return this.store=new Set([r,...this.store]),this}clear(){return this.store.clear(),this}delete(r){return this.store.delete(r),this}values(){return[...this.store]}has(r){return this.store.has(r)}merge(r){return this.store=new Set([...this.store,...r]),this}when(r,n=Function.prototype,a=Function.prototype){return r?n(this):a(this),this}}}});var $De=H((QXu,h8i)=>{var FPc=I8i(),ZPc=Kvt();h8i.exports=FPc(ZPc(Object))});var zvt=H((XXu,m8i)=>{m8i.exports=e=>class extends e{before(t){if(this.__after)throw new Error(`Unable to set .before(${JSON.stringify(t)}) with existing value for .after()`);return this.__before=t,this}after(t){if(this.__before)throw new Error(`Unable to set .after(${JSON.stringify(t)}) with existing value for .before()`);return this.__after=t,this}merge(t,r=[]){return t.before&&this.before(t.before),t.after&&this.after(t.after),super.merge(t,[...r,"before","after"])}}});var qvt=H((UXu,C8i)=>{var LPc=Lj(),VPc=zvt();C8i.exports=VPc(class extends LPc{constructor(e,t,r="plugin"){super(e),this.name=t,this.type=r,this.extend(["init"]),this.init((n,a=[])=>typeof n=="function"?new n(...a):n)}use(e,t=[]){return this.set("plugin",e).set("args",t)}tap(e){if(!this.has("plugin"))throw new Error(`Cannot call .tap() on a plugin that has not yet been defined. Call ${this.type}('${this.name}').use() first.`);return this.set("args",e(this.get("args")||[])),this}set(e,t){if(e==="args"&&!Array.isArray(t))throw new Error("args must be an array of arguments");return super.set(e,t)}merge(e,t=[]){return"plugin"in e&&this.set("plugin",e.plugin),"args"in e&&this.set("args",e.args),super.merge(e,[...t,"args","plugin"])}toConfig(){let e=this.get("init"),t=this.get("plugin"),r=this.get("args"),n=null;if(t===void 0)throw new Error(`Invalid ${this.type} configuration: ${this.type}('${this.name}').use() was not called to specify the plugin`);typeof t=="string"&&(n=t,t=wt(n));let a=t.__expression?`(${t.__expression})`:t.name,o=e(t,r);return Object.defineProperties(o,{__pluginName:{value:this.name},__pluginType:{value:this.type},__pluginArgs:{value:r},__pluginConstructorName:{value:a},__pluginPath:{value:n}}),o}})});var $vt=H((zXu,_8i)=>{var eke=Lj(),S4=$De(),PPc=qvt();_8i.exports=class extends eke{constructor(e){super(e),this.alias=new eke(this),this.aliasFields=new S4(this),this.conditionNames=new S4(this),this.descriptionFiles=new S4(this),this.extensionAlias=new eke(this),this.extensions=new S4(this),this.mainFields=new S4(this),this.mainFiles=new S4(this),this.exportsFields=new S4(this),this.importsFields=new S4(this),this.restrictions=new S4(this),this.roots=new S4(this),this.modules=new S4(this),this.plugins=new eke(this),this.fallback=new eke(this),this.byDependency=new eke(this),this.extend(["cachePredicate","cacheWithContext","enforceExtension","symlinks","unsafeCache","useSyncFileSystemCalls","preferRelative","preferAbsolute"])}plugin(e){return this.plugins.getOrCompute(e,()=>new PPc(this,e,"resolve.plugin"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{alias:this.alias.entries(),aliasFields:this.aliasFields.values(),conditionNames:this.conditionNames.values(),descriptionFiles:this.descriptionFiles.values(),extensionAlias:this.extensionAlias.entries(),extensions:this.extensions.values(),mainFields:this.mainFields.values(),mainFiles:this.mainFiles.values(),modules:this.modules.values(),exportsFields:this.exportsFields.values(),importsFields:this.importsFields.values(),restrictions:this.restrictions.values(),roots:this.roots.values(),fallback:this.fallback.entries(),byDependency:this.byDependency.entries(),plugins:this.plugins.values().map(e=>e.toConfig())}))}merge(e,t=[]){let r=["alias","aliasFields","conditionNames","descriptionFiles","extensionAlias","extensions","mainFields","mainFiles","modules","exportsFields","importsFields","restrictions","roots","fallback","byDependency"];return!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"plugin"])}}});var b8i=H(($Xu,y8i)=>{var WPc=$vt(),XVr=$De();y8i.exports=class extends WPc{constructor(e){super(e),this.modules=new XVr(this),this.moduleExtensions=new XVr(this),this.packageMains=new XVr(this)}toConfig(){return this.clean({modules:this.modules.values(),moduleExtensions:this.moduleExtensions.values(),packageMains:this.packageMains.values(),...super.toConfig()})}merge(e,t=[]){let r=["modules","moduleExtensions","packageMains"];return r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r])}}});var S8i=H((t4u,E8i)=>{var OPc=Lj();E8i.exports=class extends OPc{constructor(e){super(e),this.extend(["asyncChunks","auxiliaryComment","charset","chunkFilename","chunkLoadTimeout","chunkLoadingGlobal","chunkLoading","chunkFormat","enabledChunkLoadingTypes","crossOriginLoading","devtoolFallbackModuleFilenameTemplate","devtoolModuleFilenameTemplate","devtoolNamespace","filename","assetModuleFilename","globalObject","uniqueName","hashDigest","hashDigestLength","hashFunction","hashSalt","hotUpdateChunkFilename","hotUpdateGlobal","hotUpdateMainFilename","library","libraryExport","libraryTarget","importFunctionName","path","pathinfo","publicPath","scriptType","sourceMapFilename","sourcePrefix","strictModuleErrorHandling","strictModuleExceptionHandling","umdNamedDefine","workerChunkLoading","enabledLibraryTypes","environment","compareBeforeEmit","wasmLoading","enabledWasmLoadingTypes","iife","module","clean"])}}});var B8i=H((n4u,v8i)=>{var MPc=Lj(),HPc=$De();v8i.exports=class extends MPc{constructor(e){super(e),this.allowedHosts=new HPc(this),this.extend(["after","before","bonjour","clientLogLevel","compress","contentBase","contentBasePublicPath","disableHostCheck","filename","headers","historyApiFallback","host","hot","hotOnly","http2","https","index","injectClient","injectHot","inline","lazy","liveReload","mimeTypes","noInfo","onListening","open","openPage","overlay","pfx","pfxPassphrase","port","proxy","progress","public","publicPath","quiet","serveIndex","setup","socket","sockHost","sockPath","sockPort","staticOptions","stats","stdin","transportMode","useLocalIp","watchContentBase","watchOptions","writeToDisk"])}toConfig(){return this.clean({allowedHosts:this.allowedHosts.values(),...this.entries()||{}})}merge(e,t=[]){return!t.includes("allowedHosts")&&"allowedHosts"in e&&this.allowedHosts.merge(e.allowedHosts),super.merge(e,["allowedHosts"])}}});var T8i=H((s4u,w8i)=>{var YPc=YVr(),QPc=Lj(),XPc=zvt();w8i.exports=XPc(class extends QPc{constructor(e,t){super(e),this.name=t,this.extend(["loader","options"])}tap(e){return this.options(e(this.get("options"))),this}merge(e,t=[]){return!t.includes("loader")&&"loader"in e&&this.loader(e.loader),!t.includes("options")&&"options"in e&&this.options(YPc(this.store.get("options")||{},e.options)),super.merge(e,[...t,"loader","options"])}toConfig(){let e=this.clean(this.entries()||{});return Object.defineProperties(e,{__useName:{value:this.name},__ruleNames:{value:this.parent&&this.parent.names},__ruleTypes:{value:this.parent&&this.parent.ruleTypes}}),e}})});var k8i=H((a4u,D8i)=>{var eBt=Lj(),R8i=$De(),JPc=zvt(),UPc=T8i(),KPc=$vt();function N8i(e){return Array.isArray(e)?e:[e]}var tBt=JPc(class extends eBt{constructor(e,t,r="rule"){super(e),this.ruleName=t,this.names=[],this.ruleType=r,this.ruleTypes=[];let n=this;for(;n instanceof tBt;)this.names.unshift(n.ruleName),this.ruleTypes.unshift(n.ruleType),n=n.parent;this.uses=new eBt(this),this.include=new R8i(this),this.exclude=new R8i(this),this.rules=new eBt(this),this.oneOfs=new eBt(this),this.resolve=new KPc(this),this.resolve.extend(["fullySpecified"]),this.extend(["enforce","issuer","issuerLayer","layer","mimetype","parser","generator","resource","resourceQuery","sideEffects","test","type"])}use(e){return this.uses.getOrCompute(e,()=>new UPc(this,e))}rule(e){return this.rules.getOrCompute(e,()=>new tBt(this,e,"rule"))}oneOf(e){return this.oneOfs.getOrCompute(e,()=>new tBt(this,e,"oneOf"))}pre(){return this.enforce("pre")}post(){return this.enforce("post")}toConfig(){let e=this.clean(Object.assign(this.entries()||{},{include:this.include.values(),exclude:this.exclude.values(),rules:this.rules.values().map(t=>t.toConfig()),oneOf:this.oneOfs.values().map(t=>t.toConfig()),use:this.uses.values().map(t=>t.toConfig()),resolve:this.resolve.toConfig()}));return Object.defineProperties(e,{__ruleNames:{value:this.names},__ruleTypes:{value:this.ruleTypes}}),e}merge(e,t=[]){return!t.includes("include")&&"include"in e&&this.include.merge(N8i(e.include)),!t.includes("exclude")&&"exclude"in e&&this.exclude.merge(N8i(e.exclude)),!t.includes("use")&&"use"in e&&Object.keys(e.use).forEach(r=>this.use(r).merge(e.use[r])),!t.includes("rules")&&"rules"in e&&Object.keys(e.rules).forEach(r=>this.rule(r).merge(e.rules[r])),!t.includes("oneOf")&&"oneOf"in e&&Object.keys(e.oneOf).forEach(r=>this.oneOf(r).merge(e.oneOf[r])),!t.includes("resolve")&&"resolve"in e&&this.resolve.merge(e.resolve),!t.includes("test")&&"test"in e&&this.test(e.test instanceof RegExp||typeof e.test=="function"?e.test:new RegExp(e.test)),super.merge(e,[...t,"include","exclude","use","rules","oneOf","resolve","test"])}});D8i.exports=tBt});var F8i=H((l4u,G8i)=>{var $Ke=Lj(),x8i=k8i();G8i.exports=class extends $Ke{constructor(e){super(e),this.rules=new $Ke(this),this.defaultRules=new $Ke(this),this.generator=new $Ke(this),this.parser=new $Ke(this),this.extend(["noParse","unsafeCache","wrappedContextCritical","exprContextRegExp","wrappedContextRecursive","strictExportPresence","wrappedContextRegExp"])}defaultRule(e){return this.defaultRules.getOrCompute(e,()=>new x8i(this,e,"defaultRule"))}rule(e){return this.rules.getOrCompute(e,()=>new x8i(this,e,"rule"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{defaultRules:this.defaultRules.values().map(e=>e.toConfig()),generator:this.generator.entries(),parser:this.parser.entries(),rules:this.rules.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("rule")&&"rule"in e&&Object.keys(e.rule).forEach(r=>this.rule(r).merge(e.rule[r])),!t.includes("defaultRule")&&"defaultRule"in e&&Object.keys(e.defaultRule).forEach(r=>this.defaultRule(r).merge(e.defaultRule[r])),super.merge(e,["rule","defaultRule"])}}});var V8i=H((g4u,L8i)=>{var Z8i=Lj(),jPc=jvt(),zPc=qvt();L8i.exports=class extends Z8i{constructor(e){super(e),this.minimizers=new Z8i(this),this.splitChunks=new jPc(this),this.extend(["minimize","runtimeChunk","emitOnErrors","moduleIds","chunkIds","nodeEnv","mangleWasmImports","removeAvailableModules","removeEmptyChunks","mergeDuplicateChunks","flagIncludedChunks","providedExports","usedExports","concatenateModules","sideEffects","portableRecords","mangleExports","innerGraph","realContentHash"])}minimizer(e){if(Array.isArray(e))throw new Error("optimization.minimizer() no longer supports being passed an array. Either switch to the new syntax (https://github.com/neutrinojs/webpack-chain#config-optimization-minimizers-adding) or downgrade to webpack-chain 4. If using Vue this likely means a Vue plugin has not yet been updated to support Vue CLI 4+.");return this.minimizers.getOrCompute(e,()=>new zPc(this,e,"optimization.minimizer"))}toConfig(){return this.clean(Object.assign(this.entries()||{},{splitChunks:this.splitChunks.entries(),minimizer:this.minimizers.values().map(e=>e.toConfig())}))}merge(e,t=[]){return!t.includes("minimizer")&&"minimizer"in e&&Object.keys(e.minimizer).forEach(r=>this.minimizer(r).merge(e.minimizer[r])),super.merge(e,[...t,"minimizer"])}}});var W8i=H((d4u,P8i)=>{var qPc=jvt();P8i.exports=class extends qPc{constructor(e){super(e),this.extend(["assetFilter","hints","maxAssetSize","maxEntrypointSize"])}}});var e8e=H(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});wO.stringifyPath=wO.quoteKey=wO.isValidVariableName=wO.IS_VALID_IDENTIFIER=wO.quoteString=void 0;var $Pc=/[\\\'\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,eWc=new Map([["\b","\\b"],[" ","\\t"],[` +`,"\\n"],["\f","\\f"],["\r","\\r"],["'","\\'"],['"','\\"'],["\\","\\\\"]]);function tWc(e){return eWc.get(e)||`\\u${`0000${e.charCodeAt(0).toString(16)}`.slice(-4)}`}function rWc(e){return`'${e.replace($Pc,tWc)}'`}wO.quoteString=rWc;var nWc=new Set("break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield".split(" "));wO.IS_VALID_IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function JVr(e){return typeof e=="string"&&!nWc.has(e)&&wO.IS_VALID_IDENTIFIER.test(e)}wO.isValidVariableName=JVr;function iWc(e,t){return JVr(e)?e:t(e)}wO.quoteKey=iWc;function sWc(e,t){let r="";for(let n of e)JVr(n)?r+=`.${n}`:r+=`[${t(n)}]`;return r}wO.stringifyPath=sWc});var UVr=H(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.FunctionParser=v4.dedentFunction=v4.functionToString=v4.USED_METHOD_KEY=void 0;var O8i=e8e(),oWc={" "(){}}[" "].toString().charAt(0)==='"',aWc={Function:"function ",GeneratorFunction:"function* ",AsyncFunction:"async function ",AsyncGeneratorFunction:"async function* "},cWc={Function:"",GeneratorFunction:"*",AsyncFunction:"async ",AsyncGeneratorFunction:"async *"},lWc=new Set("case delete else in instanceof new return throw typeof void , ; : + - ! ~ & | ^ * / % < > ? =".split(" "));v4.USED_METHOD_KEY=new WeakSet;var uWc=(e,t,r,n)=>{let a=typeof n=="string"?n:void 0;return a!==void 0&&v4.USED_METHOD_KEY.add(e),new rBt(e,t,r,a).stringify()};v4.functionToString=uWc;function M8i(e){let t;for(let r of e.split(` `).slice(1)){let n=/^[\s\t]+/.exec(r);if(!n)return e;let[a]=n;(t===void 0||a.length")return this.keyPrefix+this.fnString;this.pos=n;case'"':case"'":case"[]":return this.getPrefix()+this.fnString.substr(this.pos)}}}tryStrippingName(){if(sWc)return;let t=this.pos,r=this.fnString.substr(this.pos,this.fn.name.length);if(r===this.fn.name&&(this.pos+=r.length,this.consumeSyntax()==="()"&&this.consumeSyntax()==="{}"&&this.pos===this.fnString.length))return(this.isMethodCandidate||!O8i.isValidVariableName(r))&&(t+=r.length),this.getPrefix()+this.fnString.substr(t);this.pos=t}tryParsePrefixTokens(){let t=this.pos;switch(this.hadKeyword=!1,this.fnType){case"AsyncFunction":if(this.consumeSyntax()!=="async")return!1;t=this.pos;case"Function":return this.consumeSyntax()==="function"?this.hadKeyword=!0:this.pos=t,!0;case"AsyncGeneratorFunction":if(this.consumeSyntax()!=="async")return!1;case"GeneratorFunction":let r=this.consumeSyntax();return r==="function"&&(r=this.consumeSyntax(),this.hadKeyword=!0),r==="*"}}consumeSyntax(t){let r=this.consumeMatch(/^(?:([A-Za-z_0-9$\xA0-\uFFFF]+)|=>|\+\+|\-\-|.)/);if(!r)return;let[n,a]=r;if(this.consumeWhitespace(),a)return t||a;switch(n){case"(":return this.consumeSyntaxUntil("(",")");case"[":return this.consumeSyntaxUntil("[","]");case"{":return this.consumeSyntaxUntil("{","}");case"`":return this.consumeTemplate();case'"':return this.consumeRegExp(/^(?:[^\\"]|\\.)*"/,'"');case"'":return this.consumeRegExp(/^(?:[^\\']|\\.)*'/,"'")}return n}consumeSyntaxUntil(t,r){let n=!0;for(;;){let a=this.consumeSyntax();if(a===r)return t+r;if(!a||a===")"||a==="]"||a==="}")return;a==="/"&&n&&this.consumeMatch(/^(?:\\.|[^\\\/\n[]|\[(?:\\.|[^\]])*\])+\/[a-z]*/)?(n=!1,this.consumeWhitespace()):n=cWc.has(a)}}consumeMatch(t){let r=t.exec(this.fnString.substr(this.pos));return r&&(this.pos+=r[0].length),r}consumeRegExp(t,r){let n=t.exec(this.fnString.substr(this.pos));if(n)return this.pos+=n[0].length,this.consumeWhitespace(),r}consumeTemplate(){for(;;){if(this.consumeMatch(/^(?:[^`$\\]|\\.|\$(?!{))*/),this.fnString[this.pos]==="`")return this.pos++,this.consumeWhitespace(),"`";if(!(this.fnString.substr(this.pos,2)==="${"&&(this.pos+=2,this.consumeWhitespace(),this.consumeSyntaxUntil("{","}"))))return}}consumeWhitespace(){this.consumeMatch(/^(?:\s|\/\/.*|\/\*[^]*?\*\/)*/)}};v4.FunctionParser=rBt});var H8i=H(nBt=>{"use strict";Object.defineProperty(nBt,"__esModule",{value:!0});nBt.arrayToString=void 0;var uWc=(e,t,r)=>{let n=e.map(function(o,l){let A=r(o,l);return A===void 0?String(A):t+A.split(` +`):e}v4.dedentFunction=M8i;var rBt=class{constructor(t,r,n,a){this.fn=t,this.indent=r,this.next=n,this.key=a,this.pos=0,this.hadKeyword=!1,this.fnString=Function.prototype.toString.call(t),this.fnType=t.constructor.name,this.keyQuote=a===void 0?"":O8i.quoteKey(a,n),this.keyPrefix=a===void 0?"":`${this.keyQuote}:${r?" ":""}`,this.isMethodCandidate=a===void 0?!1:this.fn.name===""||this.fn.name===a}stringify(){let t=this.tryParse();return t?M8i(t):`${this.keyPrefix}void ${this.next(this.fnString)}`}getPrefix(){return this.isMethodCandidate&&!this.hadKeyword?cWc[this.fnType]+this.keyQuote:this.keyPrefix+aWc[this.fnType]}tryParse(){if(this.fnString[this.fnString.length-1]!=="}")return this.keyPrefix+this.fnString;if(this.fn.name){let r=this.tryStrippingName();if(r)return r}let t=this.pos;if(this.consumeSyntax()==="class")return this.fnString;if(this.pos=t,this.tryParsePrefixTokens()){let r=this.tryStrippingName();if(r)return r;let n=this.pos;switch(this.consumeSyntax("WORD_LIKE")){case"WORD_LIKE":this.isMethodCandidate&&!this.hadKeyword&&(n=this.pos);case"()":if(this.fnString.substr(this.pos,2)==="=>")return this.keyPrefix+this.fnString;this.pos=n;case'"':case"'":case"[]":return this.getPrefix()+this.fnString.substr(this.pos)}}}tryStrippingName(){if(oWc)return;let t=this.pos,r=this.fnString.substr(this.pos,this.fn.name.length);if(r===this.fn.name&&(this.pos+=r.length,this.consumeSyntax()==="()"&&this.consumeSyntax()==="{}"&&this.pos===this.fnString.length))return(this.isMethodCandidate||!O8i.isValidVariableName(r))&&(t+=r.length),this.getPrefix()+this.fnString.substr(t);this.pos=t}tryParsePrefixTokens(){let t=this.pos;switch(this.hadKeyword=!1,this.fnType){case"AsyncFunction":if(this.consumeSyntax()!=="async")return!1;t=this.pos;case"Function":return this.consumeSyntax()==="function"?this.hadKeyword=!0:this.pos=t,!0;case"AsyncGeneratorFunction":if(this.consumeSyntax()!=="async")return!1;case"GeneratorFunction":let r=this.consumeSyntax();return r==="function"&&(r=this.consumeSyntax(),this.hadKeyword=!0),r==="*"}}consumeSyntax(t){let r=this.consumeMatch(/^(?:([A-Za-z_0-9$\xA0-\uFFFF]+)|=>|\+\+|\-\-|.)/);if(!r)return;let[n,a]=r;if(this.consumeWhitespace(),a)return t||a;switch(n){case"(":return this.consumeSyntaxUntil("(",")");case"[":return this.consumeSyntaxUntil("[","]");case"{":return this.consumeSyntaxUntil("{","}");case"`":return this.consumeTemplate();case'"':return this.consumeRegExp(/^(?:[^\\"]|\\.)*"/,'"');case"'":return this.consumeRegExp(/^(?:[^\\']|\\.)*'/,"'")}return n}consumeSyntaxUntil(t,r){let n=!0;for(;;){let a=this.consumeSyntax();if(a===r)return t+r;if(!a||a===")"||a==="]"||a==="}")return;a==="/"&&n&&this.consumeMatch(/^(?:\\.|[^\\\/\n[]|\[(?:\\.|[^\]])*\])+\/[a-z]*/)?(n=!1,this.consumeWhitespace()):n=lWc.has(a)}}consumeMatch(t){let r=t.exec(this.fnString.substr(this.pos));return r&&(this.pos+=r[0].length),r}consumeRegExp(t,r){let n=t.exec(this.fnString.substr(this.pos));if(n)return this.pos+=n[0].length,this.consumeWhitespace(),r}consumeTemplate(){for(;;){if(this.consumeMatch(/^(?:[^`$\\]|\\.|\$(?!{))*/),this.fnString[this.pos]==="`")return this.pos++,this.consumeWhitespace(),"`";if(!(this.fnString.substr(this.pos,2)==="${"&&(this.pos+=2,this.consumeWhitespace(),this.consumeSyntaxUntil("{","}"))))return}}consumeWhitespace(){this.consumeMatch(/^(?:\s|\/\/.*|\/\*[^]*?\*\/)*/)}};v4.FunctionParser=rBt});var H8i=H(nBt=>{"use strict";Object.defineProperty(nBt,"__esModule",{value:!0});nBt.arrayToString=void 0;var gWc=(e,t,r)=>{let n=e.map(function(o,l){let A=r(o,l);return A===void 0?String(A):t+A.split(` `).join(` ${t}`)}).join(t?`, `:","),a=t&&n?` -`:"";return`[${a}${n}${a}]`};nBt.arrayToString=uWc});var Y8i=H(iBt=>{"use strict";Object.defineProperty(iBt,"__esModule",{value:!0});iBt.objectToString=void 0;var gWc=e8e(),AWc=UVr(),dWc=H8i(),pWc=(e,t,r,n)=>{if(typeof Buffer=="function"&&Buffer.isBuffer(e))return`Buffer.from(${r(e.toString("base64"))}, 'base64')`;if(typeof global=="object"&&e===global)return KVr(e,t,r,n);let a=IWc[Object.prototype.toString.call(e)];return a?a(e,t,r,n):void 0};iBt.objectToString=pWc;var fWc=(e,t,r,n)=>{let a=t?` +`:"";return`[${a}${n}${a}]`};nBt.arrayToString=gWc});var Y8i=H(iBt=>{"use strict";Object.defineProperty(iBt,"__esModule",{value:!0});iBt.objectToString=void 0;var AWc=e8e(),dWc=UVr(),pWc=H8i(),fWc=(e,t,r,n)=>{if(typeof Buffer=="function"&&Buffer.isBuffer(e))return`Buffer.from(${r(e.toString("base64"))}, 'base64')`;if(typeof global=="object"&&e===global)return KVr(e,t,r,n);let a=hWc[Object.prototype.toString.call(e)];return a?a(e,t,r,n):void 0};iBt.objectToString=fWc;var IWc=(e,t,r,n)=>{let a=t?` `:"",o=t?" ":"",l=Object.keys(e).reduce(function(A,f){let I=e[f],C=r(I,f);if(C===void 0)return A;let b=C.split(` `).join(` -${t}`);return AWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${gWc.quoteKey(f,r)}:${o}${b}`),A)},[]).join(`,${a}`);return l===""?"{}":`{${a}${l}${a}}`},KVr=(e,t,r)=>`Function(${r("return this")})()`,IWc={"[object Array]":dWc.arrayToString,"[object Object]":fWc,"[object Error]":(e,t,r)=>`new Error(${r(e.message)})`,"[object Date]":e=>`new Date(${e.getTime()})`,"[object String]":(e,t,r)=>`new String(${r(e.toString())})`,"[object Number]":e=>`new Number(${e})`,"[object Boolean]":e=>`new Boolean(${e})`,"[object Set]":(e,t,r)=>`new Set(${r(Array.from(e))})`,"[object Map]":(e,t,r)=>`new Map(${r(Array.from(e))})`,"[object RegExp]":String,"[object global]":KVr,"[object Window]":KVr}});var Q8i=H(sBt=>{"use strict";Object.defineProperty(sBt,"__esModule",{value:!0});sBt.toString=void 0;var hWc=e8e(),mWc=Y8i(),CWc=UVr(),_Wc={string:hWc.quoteString,number:e=>Object.is(e,-0)?"-0":String(e),boolean:String,symbol:(e,t,r)=>{let n=Symbol.keyFor(e);return n!==void 0?`Symbol.for(${r(n)})`:`Symbol(${r(e.description)})`},bigint:(e,t,r)=>`BigInt(${r(String(e))})`,undefined:String,object:mWc.objectToString,function:CWc.functionToString},yWc=(e,t,r,n)=>e===null?"null":_Wc[typeof e](e,t,r,n);sBt.toString=yWc});var K8i=H(oBt=>{"use strict";Object.defineProperty(oBt,"__esModule",{value:!0});oBt.stringify=void 0;var X8i=Q8i(),J8i=e8e(),U8i=Symbol("root");function bWc(e,t,r,n={}){let a=typeof r=="string"?r:" ".repeat(r||0),o=[],l=new Set,A=new Map,f=new Map,I=0,{maxDepth:C=100,references:b=!1,skipUndefinedProperties:E=!1,maxValues:N=1e5}=n,B=EWc(t),F=(ae,ne)=>{if(++I>N||E&&ae===void 0||o.length>C)return;if(ne===void 0)return B(ae,a,F,ne);o.push(ne);let ce=Q(ae,ne===U8i?void 0:ne);return o.pop(),ce},Q=b?(ae,ne)=>{if(ae!==null&&(typeof ae=="object"||typeof ae=="function"||typeof ae=="symbol")){if(A.has(ae))return f.set(o.slice(1),A.get(ae)),B(void 0,a,F,ne);A.set(ae,o.slice(1))}return B(ae,a,F,ne)}:(ae,ne)=>{if(l.has(ae))return;l.add(ae);let ce=B(ae,a,F,ne);return l.delete(ae),ce},X=F(e,U8i);if(f.size){let ae=a?" ":"",ne=a?` -`:"",ce=`var x${ae}=${ae}${X};${ne}`;for(let[fe,ue]of f.entries()){let de=J8i.stringifyPath(fe,F),be=J8i.stringifyPath(ue,F);ce+=`x${de}${ae}=${ae}x${be};${ne}`}return`(function${ae}()${ae}{${ne}${ce}return x;${ne}}())`}return X}oBt.stringify=bWc;function EWc(e){return e?(t,r,n,a)=>e(t,r,o=>X8i.toString(o,r,n,a),a):X8i.toString}});var j8i=H((_4u,zVr)=>{var jVr=Lj(),SWc=jvt(),vWc=$De(),BWc=$vt(),wWc=b8i(),TWc=S8i(),RWc=B8i(),NWc=qvt(),DWc=F8i(),kWc=V8i(),xWc=W8i();zVr.exports=class extends jVr{constructor(){super(),this.entryPoints=new jVr(this),this.output=new TWc(this),this.module=new DWc(this),this.resolve=new BWc(this),this.resolveLoader=new wWc(this),this.optimization=new kWc(this),this.plugins=new jVr(this),this.devServer=new RWc(this),this.performance=new xWc(this),this.node=new SWc(this),this.extend(["context","mode","devtool","target","watch","watchOptions","externals","externalsType","externalsPresets","stats","experiments","amd","bail","cache","dependencies","ignoreWarnings","loader","parallelism","profile","recordsPath","recordsInputPath","recordsOutputPath","name","infrastructureLogging","snapshot"])}static toString(e,{verbose:t=!1,configPrefix:r="config"}={}){let{stringify:n}=K8i();return n(e,(a,o,l)=>{if(a&&a.__pluginName){let A=`/* ${r}.${a.__pluginType}('${a.__pluginName}') */ +${t}`);return dWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${AWc.quoteKey(f,r)}:${o}${b}`),A)},[]).join(`,${a}`);return l===""?"{}":`{${a}${l}${a}}`},KVr=(e,t,r)=>`Function(${r("return this")})()`,hWc={"[object Array]":pWc.arrayToString,"[object Object]":IWc,"[object Error]":(e,t,r)=>`new Error(${r(e.message)})`,"[object Date]":e=>`new Date(${e.getTime()})`,"[object String]":(e,t,r)=>`new String(${r(e.toString())})`,"[object Number]":e=>`new Number(${e})`,"[object Boolean]":e=>`new Boolean(${e})`,"[object Set]":(e,t,r)=>`new Set(${r(Array.from(e))})`,"[object Map]":(e,t,r)=>`new Map(${r(Array.from(e))})`,"[object RegExp]":String,"[object global]":KVr,"[object Window]":KVr}});var Q8i=H(sBt=>{"use strict";Object.defineProperty(sBt,"__esModule",{value:!0});sBt.toString=void 0;var mWc=e8e(),CWc=Y8i(),_Wc=UVr(),yWc={string:mWc.quoteString,number:e=>Object.is(e,-0)?"-0":String(e),boolean:String,symbol:(e,t,r)=>{let n=Symbol.keyFor(e);return n!==void 0?`Symbol.for(${r(n)})`:`Symbol(${r(e.description)})`},bigint:(e,t,r)=>`BigInt(${r(String(e))})`,undefined:String,object:CWc.objectToString,function:_Wc.functionToString},bWc=(e,t,r,n)=>e===null?"null":yWc[typeof e](e,t,r,n);sBt.toString=bWc});var K8i=H(oBt=>{"use strict";Object.defineProperty(oBt,"__esModule",{value:!0});oBt.stringify=void 0;var X8i=Q8i(),J8i=e8e(),U8i=Symbol("root");function EWc(e,t,r,n={}){let a=typeof r=="string"?r:" ".repeat(r||0),o=[],l=new Set,A=new Map,f=new Map,I=0,{maxDepth:C=100,references:b=!1,skipUndefinedProperties:E=!1,maxValues:N=1e5}=n,B=SWc(t),F=(ae,ne)=>{if(++I>N||E&&ae===void 0||o.length>C)return;if(ne===void 0)return B(ae,a,F,ne);o.push(ne);let ce=Q(ae,ne===U8i?void 0:ne);return o.pop(),ce},Q=b?(ae,ne)=>{if(ae!==null&&(typeof ae=="object"||typeof ae=="function"||typeof ae=="symbol")){if(A.has(ae))return f.set(o.slice(1),A.get(ae)),B(void 0,a,F,ne);A.set(ae,o.slice(1))}return B(ae,a,F,ne)}:(ae,ne)=>{if(l.has(ae))return;l.add(ae);let ce=B(ae,a,F,ne);return l.delete(ae),ce},X=F(e,U8i);if(f.size){let ae=a?" ":"",ne=a?` +`:"",ce=`var x${ae}=${ae}${X};${ne}`;for(let[fe,ue]of f.entries()){let de=J8i.stringifyPath(fe,F),be=J8i.stringifyPath(ue,F);ce+=`x${de}${ae}=${ae}x${be};${ne}`}return`(function${ae}()${ae}{${ne}${ce}return x;${ne}}())`}return X}oBt.stringify=EWc;function SWc(e){return e?(t,r,n,a)=>e(t,r,o=>X8i.toString(o,r,n,a),a):X8i.toString}});var j8i=H((y4u,zVr)=>{var jVr=Lj(),vWc=jvt(),BWc=$De(),wWc=$vt(),TWc=b8i(),RWc=S8i(),NWc=B8i(),DWc=qvt(),kWc=F8i(),xWc=V8i(),GWc=W8i();zVr.exports=class extends jVr{constructor(){super(),this.entryPoints=new jVr(this),this.output=new RWc(this),this.module=new kWc(this),this.resolve=new wWc(this),this.resolveLoader=new TWc(this),this.optimization=new xWc(this),this.plugins=new jVr(this),this.devServer=new NWc(this),this.performance=new GWc(this),this.node=new vWc(this),this.extend(["context","mode","devtool","target","watch","watchOptions","externals","externalsType","externalsPresets","stats","experiments","amd","bail","cache","dependencies","ignoreWarnings","loader","parallelism","profile","recordsPath","recordsInputPath","recordsOutputPath","name","infrastructureLogging","snapshot"])}static toString(e,{verbose:t=!1,configPrefix:r="config"}={}){let{stringify:n}=K8i();return n(e,(a,o,l)=>{if(a&&a.__pluginName){let A=`/* ${r}.${a.__pluginType}('${a.__pluginName}') */ `,f=a.__pluginPath?`(require(${l(a.__pluginPath)}))`:a.__pluginConstructorName;if(f){let I=l(a.__pluginArgs).slice(1,-1);return`${A}new ${f}(${I})`}return A+l(a.__pluginArgs&&a.__pluginArgs.length?{args:a.__pluginArgs}:{})}if(a&&a.__ruleNames){let A=a.__ruleTypes;return`/* ${r}.module${a.__ruleNames.map((I,C)=>`.${A?A[C]:"rule"}('${I}')`).join("")}${a.__useName?`.use('${a.__useName}')`:""} */ -`+l(a)}return a&&a.__expression?a.__expression:typeof a=="function"&&!t&&a.toString().length>100?"function () { /* omitted long function */ }":l(a)},2)}entry(e){return this.entryPoints.getOrCompute(e,()=>new vWc(this))}plugin(e){return this.plugins.getOrCompute(e,()=>new NWc(this,e))}toConfig(){let e=this.entryPoints.entries()||{},t=this.entries()||{};return this.clean(Object.assign(t,{node:this.node.entries(),output:this.output.entries(),resolve:this.resolve.toConfig(),resolveLoader:this.resolveLoader.toConfig(),devServer:this.devServer.toConfig(),module:this.module.toConfig(),optimization:this.optimization.toConfig(),plugins:this.plugins.values().map(r=>r.toConfig()),performance:this.performance.entries(),entry:Object.keys(e).reduce((r,n)=>Object.assign(r,{[n]:e[n].values()}),{})}))}toString(e){return zVr.exports.toString(this.toConfig(),e)}merge(e={},t=[]){let r=["node","output","resolve","resolveLoader","devServer","optimization","performance","module"];return!t.includes("entry")&&"entry"in e&&Object.keys(e.entry).forEach(n=>this.entry(n).merge([].concat(e.entry[n]))),!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"entry","plugin"])}}});var $Ce=H(uBt=>{"use strict";Object.defineProperty(uBt,"__esModule",{value:!0});uBt.isJsonObject=QWc;uBt.isJsonArray=XWc;function QWc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function XWc(e){return Array.isArray(e)}});var gBt=H(nPr=>{"use strict";Object.defineProperty(nPr,"__esModule",{value:!0});nPr.getTypesOfSchema=r8e;var cji=$Ce(),lji=["string","integer","number","object","array","boolean","null"];function r8e(e){if(!e)return new Set;if(e===!0)return new Set(lji);let t;if(typeof e.type=="string")t=new Set([e.type]);else if(Array.isArray(e.type))t=new Set(e.type);else if((0,cji.isJsonArray)(e.enum)){t=new Set;for(let r of e.enum)switch(typeof r){case"string":case"number":case"boolean":t.add(typeof r);break;case"object":Array.isArray(r)?t.add("array"):r===null?t.add("null"):t.add("object");break}}else t=new Set(lji);if((0,cji.isJsonObject)(e.not)){let r=r8e(e.not);t=new Set([...t].filter(n=>!r.has(n)))}if(Array.isArray(e.allOf))for(let r of e.allOf){let n=r8e(r);t=new Set([...n].filter(a=>t.has(a)))}if(Array.isArray(e.oneOf)){let r=new Set;for(let n of e.oneOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}if(Array.isArray(e.anyOf)){let r=new Set;for(let n of e.anyOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}return e.properties?t.add("object"):e.items&&t.add("array"),t}});var Aji=H(iPr=>{"use strict";Object.defineProperty(iPr,"__esModule",{value:!0});iPr.addUndefinedDefaults=gji;var sle=$Ce(),uji=gBt();function gji(e,t,r){if(typeof r=="boolean"||r===void 0)return e;e??=r.default;let n=(0,uji.getTypesOfSchema)(r);if(n.size===0)return e;let a;if(n.size===1)a=Array.from(n)[0];else if(n.size===2&&n.has("array")&&n.has("object"))a="array";else if(r.properties&&n.has("object"))a="object";else if(r.items&&n.has("array"))a="array";else return e;if(a==="array")return e??[];if(a==="object"){let o;if(e==null)o={};else if((0,sle.isJsonObject)(e))o=e;else return e;if(!(0,sle.isJsonObject)(r.properties))return o;for(let[l,A]of Object.entries(r.properties)){if(l==="$schema"||!(0,sle.isJsonObject)(A))continue;let f=o[l];if(f===void 0)o[l]=A.default;else if((0,sle.isJsonObject)(f)){let I=A.oneOf||A.anyOf,C=Object.keys(f),b=(0,sle.isJsonArray)(I)&&I.find(E=>{if(!(0,sle.isJsonObject)(E))return!1;let N=(0,uji.getTypesOfSchema)(E);if(N.size===1&&N.has("object")&&(0,sle.isJsonObject)(E.properties)){let B=Object.keys(E.properties);return C.every(F=>B.includes(F))}return!1});b&&(0,sle.isJsonObject)(b)&&(o[l]=gji(f,t,b))}}return o}return e}});var pji=H(dji=>{"use strict";Object.defineProperty(dji,"__esModule",{value:!0})});var oPr=H(n8e=>{"use strict";Object.defineProperty(n8e,"__esModule",{value:!0});n8e.buildJsonPointer=sPr;n8e.joinJsonPointer=JWc;n8e.parseJsonPointer=UWc;function sPr(e){return"/"+e.map(t=>t.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}function JWc(e,...t){return e=="/"?sPr(t):e+sPr(t)}function UWc(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Relative pointer: "+e);return e.substring(1).split(/\//).map(t=>t.replace(/~1/g,"/").replace(/~0/g,"~"))}});var o8e=H(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.regexpCode=v_.getEsmExportName=v_.getProperty=v_.safeStringify=v_.stringify=v_.strConcat=v_.addCodeArg=v_.str=v_._=v_.nil=v_._Code=v_.Name=v_.IDENTIFIER=v_._CodeOrName=void 0;var i8e=class{};v_._CodeOrName=i8e;v_.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var e_e=class extends i8e{constructor(t){if(super(),!v_.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};v_.Name=e_e;var fH=class extends i8e{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof e_e&&(r[n.str]=(r[n.str]||0)+1),r),{})}};v_._Code=fH;v_.nil=new fH("");function fji(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(DV,"__esModule",{value:!0});DV.ValueScope=DV.ValueScopeName=DV.Scope=DV.varKinds=DV.UsedValueState=void 0;var NV=o8e(),lPr=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},ABt;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(ABt||(DV.UsedValueState=ABt={}));DV.varKinds={const:new NV.Name("const"),let:new NV.Name("let"),var:new NV.Name("var")};var dBt=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof NV.Name?t:this.name(t)}name(t){return new NV.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};DV.Scope=dBt;var pBt=class extends NV.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,NV._)`.${new NV.Name(r)}[${n}]`}};DV.ValueScopeName=pBt;var nOc=(0,NV._)`\n`,uPr=class extends dBt{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?nOc:NV.nil}}get(){return this._scope}name(t){return new pBt(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(t),{prefix:o}=a,l=(n=r.key)!==null&&n!==void 0?n:r.ref,A=this._values[o];if(A){let C=A.get(l);if(C)return C}else A=this._values[o]=new Map;A.set(l,a);let f=this._scope[o]||(this._scope[o]=[]),I=f.length;return f[I]=r.ref,a.setValue(r,{property:o,itemIndex:I}),a}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,NV._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let o=NV.nil;for(let l in t){let A=t[l];if(!A)continue;let f=n[l]=n[l]||new Map;A.forEach(I=>{if(f.has(I))return;f.set(I,ABt.Started);let C=r(I);if(C){let b=this.opts.es5?DV.varKinds.var:DV.varKinds.const;o=(0,NV._)`${o}${b} ${I} = ${C};${this.opts._n}`}else if(C=a?.(I))o=(0,NV._)`${o}${C}${this.opts._n}`;else throw new lPr(I);f.set(I,ABt.Completed)})}return o}};DV.ValueScope=uPr});var Hh=H(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});om.or=om.and=om.not=om.CodeGen=om.operators=om.varKinds=om.ValueScopeName=om.ValueScope=om.Scope=om.Name=om.regexpCode=om.stringify=om.getProperty=om.nil=om.strConcat=om.str=om._=void 0;var wC=o8e(),B4=gPr(),ole=o8e();Object.defineProperty(om,"_",{enumerable:!0,get:function(){return ole._}});Object.defineProperty(om,"str",{enumerable:!0,get:function(){return ole.str}});Object.defineProperty(om,"strConcat",{enumerable:!0,get:function(){return ole.strConcat}});Object.defineProperty(om,"nil",{enumerable:!0,get:function(){return ole.nil}});Object.defineProperty(om,"getProperty",{enumerable:!0,get:function(){return ole.getProperty}});Object.defineProperty(om,"stringify",{enumerable:!0,get:function(){return ole.stringify}});Object.defineProperty(om,"regexpCode",{enumerable:!0,get:function(){return ole.regexpCode}});Object.defineProperty(om,"Name",{enumerable:!0,get:function(){return ole.Name}});var mBt=gPr();Object.defineProperty(om,"Scope",{enumerable:!0,get:function(){return mBt.Scope}});Object.defineProperty(om,"ValueScope",{enumerable:!0,get:function(){return mBt.ValueScope}});Object.defineProperty(om,"ValueScopeName",{enumerable:!0,get:function(){return mBt.ValueScopeName}});Object.defineProperty(om,"varKinds",{enumerable:!0,get:function(){return mBt.varKinds}});om.operators={GT:new wC._Code(">"),GTE:new wC._Code(">="),LT:new wC._Code("<"),LTE:new wC._Code("<="),EQ:new wC._Code("==="),NEQ:new wC._Code("!=="),NOT:new wC._Code("!"),OR:new wC._Code("||"),AND:new wC._Code("&&"),ADD:new wC._Code("+")};var ete=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},APr=class extends ete{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?B4.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=rke(this.rhs,t,r)),this}get names(){return this.rhs instanceof wC._CodeOrName?this.rhs.names:{}}},fBt=class extends ete{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof wC.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=rke(this.rhs,t,r),this}get names(){let t=this.lhs instanceof wC.Name?{}:{...this.lhs.names};return hBt(t,this.rhs)}},dPr=class extends fBt{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},pPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},fPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},IPr=class extends ete{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},hPr=class extends ete{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=rke(this.code,t,r),this}get names(){return this.code instanceof wC._CodeOrName?this.code.names:{}}},a8e=class extends ete{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,a=n.length;for(;a--;){let o=n[a];o.optimizeNames(t,r)||(iOc(t,o.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>n_e(t,r.names),{})}},tte=class extends a8e{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},mPr=class extends a8e{},tke=class extends tte{};tke.kind="else";var t_e=class e extends tte{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new tke(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(hji(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=rke(this.condition,t,r),this}get names(){let t=super.names;return hBt(t,this.condition),this.else&&n_e(t,this.else.names),t}};t_e.kind="if";var r_e=class extends tte{};r_e.kind="for";var CPr=class extends r_e{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=rke(this.iteration,t,r),this}get names(){return n_e(super.names,this.iteration.names)}},_Pr=class extends r_e{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?B4.varKinds.var:this.varKind,{name:n,from:a,to:o}=this;return`for(${r} ${n}=${a}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=hBt(super.names,this.from);return hBt(t,this.to)}},IBt=class extends r_e{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=rke(this.iterable,t,r),this}get names(){return n_e(super.names,this.iterable.names)}},c8e=class extends tte{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};c8e.kind="func";var l8e=class extends a8e{render(t){return"return "+super.render(t)}};l8e.kind="return";var yPr=class extends tte{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&n_e(t,this.catch.names),this.finally&&n_e(t,this.finally.names),t}},u8e=class extends tte{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};u8e.kind="catch";var g8e=class extends tte{render(t){return"finally"+super.render(t)}};g8e.kind="finally";var bPr=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` -`:""},this._extScope=t,this._scope=new B4.Scope({parent:t}),this._nodes=[new mPr]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,a){let o=this._scope.toName(r);return n!==void 0&&a&&(this._constants[o.str]=n),this._leafNode(new APr(t,o,n)),o}const(t,r,n){return this._def(B4.varKinds.const,t,r,n)}let(t,r,n){return this._def(B4.varKinds.let,t,r,n)}var(t,r,n){return this._def(B4.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new fBt(t,r,n))}add(t,r){return this._leafNode(new dPr(t,om.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==wC.nil&&this._leafNode(new hPr(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,wC.addCodeArg)(r,a));return r.push("}"),new wC._Code(r)}if(t,r,n){if(this._blockNode(new t_e(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new t_e(t))}else(){return this._elseNode(new tke)}endIf(){return this._endBlockNode(t_e,tke)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new CPr(t),r)}forRange(t,r,n,a,o=this.opts.es5?B4.varKinds.var:B4.varKinds.let){let l=this._scope.toName(t);return this._for(new _Pr(o,l,r,n),()=>a(l))}forOf(t,r,n,a=B4.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let l=r instanceof wC.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,wC._)`${l}.length`,A=>{this.var(o,(0,wC._)`${l}[${A}]`),n(o)})}return this._for(new IBt("of",a,o,r),()=>n(o))}forIn(t,r,n,a=this.opts.es5?B4.varKinds.var:B4.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,wC._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new IBt("in",a,o,r),()=>n(o))}endFor(){return this._endBlockNode(r_e)}label(t){return this._leafNode(new pPr(t))}break(t){return this._leafNode(new fPr(t))}return(t){let r=new l8e;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(l8e)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new yPr;if(this._blockNode(a),this.code(t),r){let o=this.name("e");this._currNode=a.catch=new u8e(o),r(o)}return n&&(this._currNode=a.finally=new g8e,this.code(n)),this._endBlockNode(u8e,g8e)}throw(t){return this._leafNode(new IPr(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=wC.nil,n,a){return this._blockNode(new c8e(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(c8e)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof t_e))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};om.CodeGen=bPr;function n_e(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function hBt(e,t){return t instanceof wC._CodeOrName?n_e(e,t.names):e}function rke(e,t,r){if(e instanceof wC.Name)return n(e);if(!a(e))return e;return new wC._Code(e._items.reduce((o,l)=>(l instanceof wC.Name&&(l=n(l)),l instanceof wC._Code?o.push(...l._items):o.push(l),o),[]));function n(o){let l=r[o.str];return l===void 0||t[o.str]!==1?o:(delete t[o.str],l)}function a(o){return o instanceof wC._Code&&o._items.some(l=>l instanceof wC.Name&&t[l.str]===1&&r[l.str]!==void 0)}}function iOc(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function hji(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,wC._)`!${EPr(e)}`}om.not=hji;var sOc=mji(om.operators.AND);function oOc(...e){return e.reduce(sOc)}om.and=oOc;var aOc=mji(om.operators.OR);function cOc(...e){return e.reduce(aOc)}om.or=cOc;function mji(e){return(t,r)=>t===wC.nil?r:r===wC.nil?t:(0,wC._)`${EPr(t)} ${e} ${EPr(r)}`}function EPr(e){return e instanceof wC.Name?e:(0,wC._)`(${e})`}});var B_=H(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.checkStrictMode=Bm.getErrorPath=Bm.Type=Bm.useFunc=Bm.setEvaluated=Bm.evaluatedPropsToName=Bm.mergeEvaluated=Bm.eachItem=Bm.unescapeJsonPointer=Bm.escapeJsonPointer=Bm.escapeFragment=Bm.unescapeFragment=Bm.schemaRefOrVal=Bm.schemaHasRulesButRef=Bm.schemaHasRules=Bm.checkUnknownRules=Bm.alwaysValidSchema=Bm.toHash=void 0;var zb=Hh(),lOc=o8e();function uOc(e){let t={};for(let r of e)t[r]=!0;return t}Bm.toHash=uOc;function gOc(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yji(e,t),!bji(t,e.self.RULES.all))}Bm.alwaysValidSchema=gOc;function yji(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let o in t)a[o]||vji(e,`unknown keyword: "${o}"`)}Bm.checkUnknownRules=yji;function bji(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}Bm.schemaHasRules=bji;function AOc(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}Bm.schemaHasRulesButRef=AOc;function dOc({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,zb._)`${r}`}return(0,zb._)`${e}${t}${(0,zb.getProperty)(n)}`}Bm.schemaRefOrVal=dOc;function pOc(e){return Eji(decodeURIComponent(e))}Bm.unescapeFragment=pOc;function fOc(e){return encodeURIComponent(vPr(e))}Bm.escapeFragment=fOc;function vPr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Bm.escapeJsonPointer=vPr;function Eji(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Bm.unescapeJsonPointer=Eji;function IOc(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}Bm.eachItem=IOc;function Cji({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,o,l,A)=>{let f=l===void 0?o:l instanceof zb.Name?(o instanceof zb.Name?e(a,o,l):t(a,o,l),l):o instanceof zb.Name?(t(a,l,o),o):r(o,l);return A===zb.Name&&!(f instanceof zb.Name)?n(a,f):f}}Bm.mergeEvaluated={props:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,zb._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,zb._)`${r} || {}`).code((0,zb._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,zb._)`${r} || {}`),BPr(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Sji}),items:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,zb._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,zb._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Sji(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,zb._)`{}`);return t!==void 0&&BPr(e,r,t),r}Bm.evaluatedPropsToName=Sji;function BPr(e,t,r){Object.keys(r).forEach(n=>e.assign((0,zb._)`${t}${(0,zb.getProperty)(n)}`,!0))}Bm.setEvaluated=BPr;var _ji={};function hOc(e,t){return e.scopeValue("func",{ref:t,code:_ji[t.code]||(_ji[t.code]=new lOc._Code(t.code))})}Bm.useFunc=hOc;var SPr;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(SPr||(Bm.Type=SPr={}));function mOc(e,t,r){if(e instanceof zb.Name){let n=t===SPr.Num;return r?n?(0,zb._)`"[" + ${e} + "]"`:(0,zb._)`"['" + ${e} + "']"`:n?(0,zb._)`"/" + ${e}`:(0,zb._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,zb.getProperty)(e).toString():"/"+vPr(e)}Bm.getErrorPath=mOc;function vji(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}Bm.checkStrictMode=vji});var rte=H(wPr=>{"use strict";Object.defineProperty(wPr,"__esModule",{value:!0});var QG=Hh(),COc={data:new QG.Name("data"),valCxt:new QG.Name("valCxt"),instancePath:new QG.Name("instancePath"),parentData:new QG.Name("parentData"),parentDataProperty:new QG.Name("parentDataProperty"),rootData:new QG.Name("rootData"),dynamicAnchors:new QG.Name("dynamicAnchors"),vErrors:new QG.Name("vErrors"),errors:new QG.Name("errors"),this:new QG.Name("this"),self:new QG.Name("self"),scope:new QG.Name("scope"),json:new QG.Name("json"),jsonPos:new QG.Name("jsonPos"),jsonLen:new QG.Name("jsonLen"),jsonPart:new QG.Name("jsonPart")};wPr.default=COc});var A8e=H(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.extendErrors=XG.resetErrorsCount=XG.reportExtraError=XG.reportError=XG.keyword$DataError=XG.keywordError=void 0;var e_=Hh(),CBt=B_(),rL=rte();XG.keywordError={message:({keyword:e})=>(0,e_.str)`must pass "${e}" keyword validation`};XG.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,e_.str)`"${e}" keyword must be ${t} ($data)`:(0,e_.str)`"${e}" keyword is invalid ($data)`};function _Oc(e,t=XG.keywordError,r,n){let{it:a}=e,{gen:o,compositeRule:l,allErrors:A}=a,f=Tji(e,t,r);n??(l||A)?Bji(o,f):wji(a,(0,e_._)`[${f}]`)}XG.reportError=_Oc;function yOc(e,t=XG.keywordError,r){let{it:n}=e,{gen:a,compositeRule:o,allErrors:l}=n,A=Tji(e,t,r);Bji(a,A),o||l||wji(n,rL.default.vErrors)}XG.reportExtraError=yOc;function bOc(e,t){e.assign(rL.default.errors,t),e.if((0,e_._)`${rL.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,e_._)`${rL.default.vErrors}.length`,t),()=>e.assign(rL.default.vErrors,null)))}XG.resetErrorsCount=bOc;function EOc({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:o}){if(a===void 0)throw new Error("ajv implementation error");let l=e.name("err");e.forRange("i",a,rL.default.errors,A=>{e.const(l,(0,e_._)`${rL.default.vErrors}[${A}]`),e.if((0,e_._)`${l}.instancePath === undefined`,()=>e.assign((0,e_._)`${l}.instancePath`,(0,e_.strConcat)(rL.default.instancePath,o.errorPath))),e.assign((0,e_._)`${l}.schemaPath`,(0,e_.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,e_._)`${l}.schema`,r),e.assign((0,e_._)`${l}.data`,n))})}XG.extendErrors=EOc;function Bji(e,t){let r=e.const("err",t);e.if((0,e_._)`${rL.default.vErrors} === null`,()=>e.assign(rL.default.vErrors,(0,e_._)`[${r}]`),(0,e_._)`${rL.default.vErrors}.push(${r})`),e.code((0,e_._)`${rL.default.errors}++`)}function wji(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,e_._)`new ${e.ValidationError}(${t})`):(r.assign((0,e_._)`${n}.errors`,t),r.return(!1))}var i_e={keyword:new e_.Name("keyword"),schemaPath:new e_.Name("schemaPath"),params:new e_.Name("params"),propertyName:new e_.Name("propertyName"),message:new e_.Name("message"),schema:new e_.Name("schema"),parentSchema:new e_.Name("parentSchema")};function Tji(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,e_._)`{}`:SOc(e,t,r)}function SOc(e,t,r={}){let{gen:n,it:a}=e,o=[vOc(a,r),BOc(e,r)];return wOc(e,t,o),n.object(...o)}function vOc({errorPath:e},{instancePath:t}){let r=t?(0,e_.str)`${e}${(0,CBt.getErrorPath)(t,CBt.Type.Str)}`:e;return[rL.default.instancePath,(0,e_.strConcat)(rL.default.instancePath,r)]}function BOc({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,e_.str)`${t}/${e}`;return r&&(a=(0,e_.str)`${a}${(0,CBt.getErrorPath)(r,CBt.Type.Str)}`),[i_e.schemaPath,a]}function wOc(e,{params:t,message:r},n){let{keyword:a,data:o,schemaValue:l,it:A}=e,{opts:f,propertyName:I,topSchemaRef:C,schemaPath:b}=A;n.push([i_e.keyword,a],[i_e.params,typeof t=="function"?t(e):t||(0,e_._)`{}`]),f.messages&&n.push([i_e.message,typeof r=="function"?r(e):r]),f.verbose&&n.push([i_e.schema,l],[i_e.parentSchema,(0,e_._)`${C}${b}`],[rL.default.data,o]),I&&n.push([i_e.propertyName,I])}});var Nji=H(nke=>{"use strict";Object.defineProperty(nke,"__esModule",{value:!0});nke.boolOrEmptySchema=nke.topBoolOrEmptySchema=void 0;var TOc=A8e(),ROc=Hh(),NOc=rte(),DOc={message:"boolean schema is false"};function kOc(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Rji(e,!1):typeof r=="object"&&r.$async===!0?t.return(NOc.default.data):(t.assign((0,ROc._)`${n}.errors`,null),t.return(!0))}nke.topBoolOrEmptySchema=kOc;function xOc(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Rji(e)):r.var(t,!0)}nke.boolOrEmptySchema=xOc;function Rji(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,TOc.reportError)(a,DOc,void 0,t)}});var TPr=H(ike=>{"use strict";Object.defineProperty(ike,"__esModule",{value:!0});ike.getRules=ike.isJSONType=void 0;var GOc=["string","number","integer","boolean","null","object","array"],FOc=new Set(GOc);function ZOc(e){return typeof e=="string"&&FOc.has(e)}ike.isJSONType=ZOc;function LOc(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ike.getRules=LOc});var RPr=H(ale=>{"use strict";Object.defineProperty(ale,"__esModule",{value:!0});ale.shouldUseRule=ale.shouldUseGroup=ale.schemaHasRulesForType=void 0;function VOc({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Dji(e,n)}ale.schemaHasRulesForType=VOc;function Dji(e,t){return t.rules.some(r=>kji(e,r))}ale.shouldUseGroup=Dji;function kji(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}ale.shouldUseRule=kji});var d8e=H(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.reportTypeError=JG.checkDataTypes=JG.checkDataType=JG.coerceAndCheckDataType=JG.getJSONTypes=JG.getSchemaTypes=JG.DataType=void 0;var POc=TPr(),WOc=RPr(),OOc=A8e(),Bh=Hh(),xji=B_(),ske;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ske||(JG.DataType=ske={}));function MOc(e){let t=Gji(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}JG.getSchemaTypes=MOc;function Gji(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(POc.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}JG.getJSONTypes=Gji;function HOc(e,t){let{gen:r,data:n,opts:a}=e,o=YOc(t,a.coerceTypes),l=t.length>0&&!(o.length===0&&t.length===1&&(0,WOc.schemaHasRulesForType)(e,t[0]));if(l){let A=DPr(t,n,a.strictNumbers,ske.Wrong);r.if(A,()=>{o.length?QOc(e,t,o):kPr(e)})}return l}JG.coerceAndCheckDataType=HOc;var Fji=new Set(["string","number","integer","boolean","null"]);function YOc(e,t){return t?e.filter(r=>Fji.has(r)||t==="array"&&r==="array"):[]}function QOc(e,t,r){let{gen:n,data:a,opts:o}=e,l=n.let("dataType",(0,Bh._)`typeof ${a}`),A=n.let("coerced",(0,Bh._)`undefined`);o.coerceTypes==="array"&&n.if((0,Bh._)`${l} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,Bh._)`${a}[0]`).assign(l,(0,Bh._)`typeof ${a}`).if(DPr(t,a,o.strictNumbers),()=>n.assign(A,a))),n.if((0,Bh._)`${A} !== undefined`);for(let I of r)(Fji.has(I)||I==="array"&&o.coerceTypes==="array")&&f(I);n.else(),kPr(e),n.endIf(),n.if((0,Bh._)`${A} !== undefined`,()=>{n.assign(a,A),XOc(e,A)});function f(I){switch(I){case"string":n.elseIf((0,Bh._)`${l} == "number" || ${l} == "boolean"`).assign(A,(0,Bh._)`"" + ${a}`).elseIf((0,Bh._)`${a} === null`).assign(A,(0,Bh._)`""`);return;case"number":n.elseIf((0,Bh._)`${l} == "boolean" || ${a} === null +`+l(a)}return a&&a.__expression?a.__expression:typeof a=="function"&&!t&&a.toString().length>100?"function () { /* omitted long function */ }":l(a)},2)}entry(e){return this.entryPoints.getOrCompute(e,()=>new BWc(this))}plugin(e){return this.plugins.getOrCompute(e,()=>new DWc(this,e))}toConfig(){let e=this.entryPoints.entries()||{},t=this.entries()||{};return this.clean(Object.assign(t,{node:this.node.entries(),output:this.output.entries(),resolve:this.resolve.toConfig(),resolveLoader:this.resolveLoader.toConfig(),devServer:this.devServer.toConfig(),module:this.module.toConfig(),optimization:this.optimization.toConfig(),plugins:this.plugins.values().map(r=>r.toConfig()),performance:this.performance.entries(),entry:Object.keys(e).reduce((r,n)=>Object.assign(r,{[n]:e[n].values()}),{})}))}toString(e){return zVr.exports.toString(this.toConfig(),e)}merge(e={},t=[]){let r=["node","output","resolve","resolveLoader","devServer","optimization","performance","module"];return!t.includes("entry")&&"entry"in e&&Object.keys(e.entry).forEach(n=>this.entry(n).merge([].concat(e.entry[n]))),!t.includes("plugin")&&"plugin"in e&&Object.keys(e.plugin).forEach(n=>this.plugin(n).merge(e.plugin[n])),r.forEach(n=>{!t.includes(n)&&n in e&&this[n].merge(e[n])}),super.merge(e,[...t,...r,"entry","plugin"])}}});var $Ce=H(uBt=>{"use strict";Object.defineProperty(uBt,"__esModule",{value:!0});uBt.isJsonObject=XWc;uBt.isJsonArray=JWc;function XWc(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function JWc(e){return Array.isArray(e)}});var gBt=H(nPr=>{"use strict";Object.defineProperty(nPr,"__esModule",{value:!0});nPr.getTypesOfSchema=r8e;var cji=$Ce(),lji=["string","integer","number","object","array","boolean","null"];function r8e(e){if(!e)return new Set;if(e===!0)return new Set(lji);let t;if(typeof e.type=="string")t=new Set([e.type]);else if(Array.isArray(e.type))t=new Set(e.type);else if((0,cji.isJsonArray)(e.enum)){t=new Set;for(let r of e.enum)switch(typeof r){case"string":case"number":case"boolean":t.add(typeof r);break;case"object":Array.isArray(r)?t.add("array"):r===null?t.add("null"):t.add("object");break}}else t=new Set(lji);if((0,cji.isJsonObject)(e.not)){let r=r8e(e.not);t=new Set([...t].filter(n=>!r.has(n)))}if(Array.isArray(e.allOf))for(let r of e.allOf){let n=r8e(r);t=new Set([...n].filter(a=>t.has(a)))}if(Array.isArray(e.oneOf)){let r=new Set;for(let n of e.oneOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}if(Array.isArray(e.anyOf)){let r=new Set;for(let n of e.anyOf){let a=r8e(n);r=new Set([...r,...a])}t=new Set([...r].filter(n=>t.has(n)))}return e.properties?t.add("object"):e.items&&t.add("array"),t}});var Aji=H(iPr=>{"use strict";Object.defineProperty(iPr,"__esModule",{value:!0});iPr.addUndefinedDefaults=gji;var sle=$Ce(),uji=gBt();function gji(e,t,r){if(typeof r=="boolean"||r===void 0)return e;e??=r.default;let n=(0,uji.getTypesOfSchema)(r);if(n.size===0)return e;let a;if(n.size===1)a=Array.from(n)[0];else if(n.size===2&&n.has("array")&&n.has("object"))a="array";else if(r.properties&&n.has("object"))a="object";else if(r.items&&n.has("array"))a="array";else return e;if(a==="array")return e??[];if(a==="object"){let o;if(e==null)o={};else if((0,sle.isJsonObject)(e))o=e;else return e;if(!(0,sle.isJsonObject)(r.properties))return o;for(let[l,A]of Object.entries(r.properties)){if(l==="$schema"||!(0,sle.isJsonObject)(A))continue;let f=o[l];if(f===void 0)o[l]=A.default;else if((0,sle.isJsonObject)(f)){let I=A.oneOf||A.anyOf,C=Object.keys(f),b=(0,sle.isJsonArray)(I)&&I.find(E=>{if(!(0,sle.isJsonObject)(E))return!1;let N=(0,uji.getTypesOfSchema)(E);if(N.size===1&&N.has("object")&&(0,sle.isJsonObject)(E.properties)){let B=Object.keys(E.properties);return C.every(F=>B.includes(F))}return!1});b&&(0,sle.isJsonObject)(b)&&(o[l]=gji(f,t,b))}}return o}return e}});var pji=H(dji=>{"use strict";Object.defineProperty(dji,"__esModule",{value:!0})});var oPr=H(n8e=>{"use strict";Object.defineProperty(n8e,"__esModule",{value:!0});n8e.buildJsonPointer=sPr;n8e.joinJsonPointer=UWc;n8e.parseJsonPointer=KWc;function sPr(e){return"/"+e.map(t=>t.replace(/~/g,"~0").replace(/\//g,"~1")).join("/")}function UWc(e,...t){return e=="/"?sPr(t):e+sPr(t)}function KWc(e){if(e==="")return[];if(e.charAt(0)!=="/")throw new Error("Relative pointer: "+e);return e.substring(1).split(/\//).map(t=>t.replace(/~1/g,"/").replace(/~0/g,"~"))}});var o8e=H(v_=>{"use strict";Object.defineProperty(v_,"__esModule",{value:!0});v_.regexpCode=v_.getEsmExportName=v_.getProperty=v_.safeStringify=v_.stringify=v_.strConcat=v_.addCodeArg=v_.str=v_._=v_.nil=v_._Code=v_.Name=v_.IDENTIFIER=v_._CodeOrName=void 0;var i8e=class{};v_._CodeOrName=i8e;v_.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;var e_e=class extends i8e{constructor(t){if(super(),!v_.IDENTIFIER.test(t))throw new Error("CodeGen: name must be a valid identifier");this.str=t}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}};v_.Name=e_e;var fH=class extends i8e{constructor(t){super(),this._items=typeof t=="string"?[t]:t}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let t=this._items[0];return t===""||t==='""'}get str(){var t;return(t=this._str)!==null&&t!==void 0?t:this._str=this._items.reduce((r,n)=>`${r}${n}`,"")}get names(){var t;return(t=this._names)!==null&&t!==void 0?t:this._names=this._items.reduce((r,n)=>(n instanceof e_e&&(r[n.str]=(r[n.str]||0)+1),r),{})}};v_._Code=fH;v_.nil=new fH("");function fji(e,...t){let r=[e[0]],n=0;for(;n{"use strict";Object.defineProperty(DV,"__esModule",{value:!0});DV.ValueScope=DV.ValueScopeName=DV.Scope=DV.varKinds=DV.UsedValueState=void 0;var NV=o8e(),lPr=class extends Error{constructor(t){super(`CodeGen: "code" for ${t} not defined`),this.value=t.value}},ABt;(function(e){e[e.Started=0]="Started",e[e.Completed=1]="Completed"})(ABt||(DV.UsedValueState=ABt={}));DV.varKinds={const:new NV.Name("const"),let:new NV.Name("let"),var:new NV.Name("var")};var dBt=class{constructor({prefixes:t,parent:r}={}){this._names={},this._prefixes=t,this._parent=r}toName(t){return t instanceof NV.Name?t:this.name(t)}name(t){return new NV.Name(this._newName(t))}_newName(t){let r=this._names[t]||this._nameGroup(t);return`${t}${r.index++}`}_nameGroup(t){var r,n;if(!((n=(r=this._parent)===null||r===void 0?void 0:r._prefixes)===null||n===void 0)&&n.has(t)||this._prefixes&&!this._prefixes.has(t))throw new Error(`CodeGen: prefix "${t}" is not allowed in this scope`);return this._names[t]={prefix:t,index:0}}};DV.Scope=dBt;var pBt=class extends NV.Name{constructor(t,r){super(r),this.prefix=t}setValue(t,{property:r,itemIndex:n}){this.value=t,this.scopePath=(0,NV._)`.${new NV.Name(r)}[${n}]`}};DV.ValueScopeName=pBt;var iOc=(0,NV._)`\n`,uPr=class extends dBt{constructor(t){super(t),this._values={},this._scope=t.scope,this.opts={...t,_n:t.lines?iOc:NV.nil}}get(){return this._scope}name(t){return new pBt(t,this._newName(t))}value(t,r){var n;if(r.ref===void 0)throw new Error("CodeGen: ref must be passed in value");let a=this.toName(t),{prefix:o}=a,l=(n=r.key)!==null&&n!==void 0?n:r.ref,A=this._values[o];if(A){let C=A.get(l);if(C)return C}else A=this._values[o]=new Map;A.set(l,a);let f=this._scope[o]||(this._scope[o]=[]),I=f.length;return f[I]=r.ref,a.setValue(r,{property:o,itemIndex:I}),a}getValue(t,r){let n=this._values[t];if(n)return n.get(r)}scopeRefs(t,r=this._values){return this._reduceValues(r,n=>{if(n.scopePath===void 0)throw new Error(`CodeGen: name "${n}" has no value`);return(0,NV._)`${t}${n.scopePath}`})}scopeCode(t=this._values,r,n){return this._reduceValues(t,a=>{if(a.value===void 0)throw new Error(`CodeGen: name "${a}" has no value`);return a.value.code},r,n)}_reduceValues(t,r,n={},a){let o=NV.nil;for(let l in t){let A=t[l];if(!A)continue;let f=n[l]=n[l]||new Map;A.forEach(I=>{if(f.has(I))return;f.set(I,ABt.Started);let C=r(I);if(C){let b=this.opts.es5?DV.varKinds.var:DV.varKinds.const;o=(0,NV._)`${o}${b} ${I} = ${C};${this.opts._n}`}else if(C=a?.(I))o=(0,NV._)`${o}${C}${this.opts._n}`;else throw new lPr(I);f.set(I,ABt.Completed)})}return o}};DV.ValueScope=uPr});var Hh=H(om=>{"use strict";Object.defineProperty(om,"__esModule",{value:!0});om.or=om.and=om.not=om.CodeGen=om.operators=om.varKinds=om.ValueScopeName=om.ValueScope=om.Scope=om.Name=om.regexpCode=om.stringify=om.getProperty=om.nil=om.strConcat=om.str=om._=void 0;var wC=o8e(),B4=gPr(),ole=o8e();Object.defineProperty(om,"_",{enumerable:!0,get:function(){return ole._}});Object.defineProperty(om,"str",{enumerable:!0,get:function(){return ole.str}});Object.defineProperty(om,"strConcat",{enumerable:!0,get:function(){return ole.strConcat}});Object.defineProperty(om,"nil",{enumerable:!0,get:function(){return ole.nil}});Object.defineProperty(om,"getProperty",{enumerable:!0,get:function(){return ole.getProperty}});Object.defineProperty(om,"stringify",{enumerable:!0,get:function(){return ole.stringify}});Object.defineProperty(om,"regexpCode",{enumerable:!0,get:function(){return ole.regexpCode}});Object.defineProperty(om,"Name",{enumerable:!0,get:function(){return ole.Name}});var mBt=gPr();Object.defineProperty(om,"Scope",{enumerable:!0,get:function(){return mBt.Scope}});Object.defineProperty(om,"ValueScope",{enumerable:!0,get:function(){return mBt.ValueScope}});Object.defineProperty(om,"ValueScopeName",{enumerable:!0,get:function(){return mBt.ValueScopeName}});Object.defineProperty(om,"varKinds",{enumerable:!0,get:function(){return mBt.varKinds}});om.operators={GT:new wC._Code(">"),GTE:new wC._Code(">="),LT:new wC._Code("<"),LTE:new wC._Code("<="),EQ:new wC._Code("==="),NEQ:new wC._Code("!=="),NOT:new wC._Code("!"),OR:new wC._Code("||"),AND:new wC._Code("&&"),ADD:new wC._Code("+")};var ete=class{optimizeNodes(){return this}optimizeNames(t,r){return this}},APr=class extends ete{constructor(t,r,n){super(),this.varKind=t,this.name=r,this.rhs=n}render({es5:t,_n:r}){let n=t?B4.varKinds.var:this.varKind,a=this.rhs===void 0?"":` = ${this.rhs}`;return`${n} ${this.name}${a};`+r}optimizeNames(t,r){if(t[this.name.str])return this.rhs&&(this.rhs=rke(this.rhs,t,r)),this}get names(){return this.rhs instanceof wC._CodeOrName?this.rhs.names:{}}},fBt=class extends ete{constructor(t,r,n){super(),this.lhs=t,this.rhs=r,this.sideEffects=n}render({_n:t}){return`${this.lhs} = ${this.rhs};`+t}optimizeNames(t,r){if(!(this.lhs instanceof wC.Name&&!t[this.lhs.str]&&!this.sideEffects))return this.rhs=rke(this.rhs,t,r),this}get names(){let t=this.lhs instanceof wC.Name?{}:{...this.lhs.names};return hBt(t,this.rhs)}},dPr=class extends fBt{constructor(t,r,n,a){super(t,n,a),this.op=r}render({_n:t}){return`${this.lhs} ${this.op}= ${this.rhs};`+t}},pPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`${this.label}:`+t}},fPr=class extends ete{constructor(t){super(),this.label=t,this.names={}}render({_n:t}){return`break${this.label?` ${this.label}`:""};`+t}},IPr=class extends ete{constructor(t){super(),this.error=t}render({_n:t}){return`throw ${this.error};`+t}get names(){return this.error.names}},hPr=class extends ete{constructor(t){super(),this.code=t}render({_n:t}){return`${this.code};`+t}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(t,r){return this.code=rke(this.code,t,r),this}get names(){return this.code instanceof wC._CodeOrName?this.code.names:{}}},a8e=class extends ete{constructor(t=[]){super(),this.nodes=t}render(t){return this.nodes.reduce((r,n)=>r+n.render(t),"")}optimizeNodes(){let{nodes:t}=this,r=t.length;for(;r--;){let n=t[r].optimizeNodes();Array.isArray(n)?t.splice(r,1,...n):n?t[r]=n:t.splice(r,1)}return t.length>0?this:void 0}optimizeNames(t,r){let{nodes:n}=this,a=n.length;for(;a--;){let o=n[a];o.optimizeNames(t,r)||(sOc(t,o.names),n.splice(a,1))}return n.length>0?this:void 0}get names(){return this.nodes.reduce((t,r)=>n_e(t,r.names),{})}},tte=class extends a8e{render(t){return"{"+t._n+super.render(t)+"}"+t._n}},mPr=class extends a8e{},tke=class extends tte{};tke.kind="else";var t_e=class e extends tte{constructor(t,r){super(r),this.condition=t}render(t){let r=`if(${this.condition})`+super.render(t);return this.else&&(r+="else "+this.else.render(t)),r}optimizeNodes(){super.optimizeNodes();let t=this.condition;if(t===!0)return this.nodes;let r=this.else;if(r){let n=r.optimizeNodes();r=this.else=Array.isArray(n)?new tke(n):n}if(r)return t===!1?r instanceof e?r:r.nodes:this.nodes.length?this:new e(hji(t),r instanceof e?[r]:r.nodes);if(!(t===!1||!this.nodes.length))return this}optimizeNames(t,r){var n;if(this.else=(n=this.else)===null||n===void 0?void 0:n.optimizeNames(t,r),!!(super.optimizeNames(t,r)||this.else))return this.condition=rke(this.condition,t,r),this}get names(){let t=super.names;return hBt(t,this.condition),this.else&&n_e(t,this.else.names),t}};t_e.kind="if";var r_e=class extends tte{};r_e.kind="for";var CPr=class extends r_e{constructor(t){super(),this.iteration=t}render(t){return`for(${this.iteration})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iteration=rke(this.iteration,t,r),this}get names(){return n_e(super.names,this.iteration.names)}},_Pr=class extends r_e{constructor(t,r,n,a){super(),this.varKind=t,this.name=r,this.from=n,this.to=a}render(t){let r=t.es5?B4.varKinds.var:this.varKind,{name:n,from:a,to:o}=this;return`for(${r} ${n}=${a}; ${n}<${o}; ${n}++)`+super.render(t)}get names(){let t=hBt(super.names,this.from);return hBt(t,this.to)}},IBt=class extends r_e{constructor(t,r,n,a){super(),this.loop=t,this.varKind=r,this.name=n,this.iterable=a}render(t){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(t)}optimizeNames(t,r){if(super.optimizeNames(t,r))return this.iterable=rke(this.iterable,t,r),this}get names(){return n_e(super.names,this.iterable.names)}},c8e=class extends tte{constructor(t,r,n){super(),this.name=t,this.args=r,this.async=n}render(t){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(t)}};c8e.kind="func";var l8e=class extends a8e{render(t){return"return "+super.render(t)}};l8e.kind="return";var yPr=class extends tte{render(t){let r="try"+super.render(t);return this.catch&&(r+=this.catch.render(t)),this.finally&&(r+=this.finally.render(t)),r}optimizeNodes(){var t,r;return super.optimizeNodes(),(t=this.catch)===null||t===void 0||t.optimizeNodes(),(r=this.finally)===null||r===void 0||r.optimizeNodes(),this}optimizeNames(t,r){var n,a;return super.optimizeNames(t,r),(n=this.catch)===null||n===void 0||n.optimizeNames(t,r),(a=this.finally)===null||a===void 0||a.optimizeNames(t,r),this}get names(){let t=super.names;return this.catch&&n_e(t,this.catch.names),this.finally&&n_e(t,this.finally.names),t}},u8e=class extends tte{constructor(t){super(),this.error=t}render(t){return`catch(${this.error})`+super.render(t)}};u8e.kind="catch";var g8e=class extends tte{render(t){return"finally"+super.render(t)}};g8e.kind="finally";var bPr=class{constructor(t,r={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...r,_n:r.lines?` +`:""},this._extScope=t,this._scope=new B4.Scope({parent:t}),this._nodes=[new mPr]}toString(){return this._root.render(this.opts)}name(t){return this._scope.name(t)}scopeName(t){return this._extScope.name(t)}scopeValue(t,r){let n=this._extScope.value(t,r);return(this._values[n.prefix]||(this._values[n.prefix]=new Set)).add(n),n}getScopeValue(t,r){return this._extScope.getValue(t,r)}scopeRefs(t){return this._extScope.scopeRefs(t,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(t,r,n,a){let o=this._scope.toName(r);return n!==void 0&&a&&(this._constants[o.str]=n),this._leafNode(new APr(t,o,n)),o}const(t,r,n){return this._def(B4.varKinds.const,t,r,n)}let(t,r,n){return this._def(B4.varKinds.let,t,r,n)}var(t,r,n){return this._def(B4.varKinds.var,t,r,n)}assign(t,r,n){return this._leafNode(new fBt(t,r,n))}add(t,r){return this._leafNode(new dPr(t,om.operators.ADD,r))}code(t){return typeof t=="function"?t():t!==wC.nil&&this._leafNode(new hPr(t)),this}object(...t){let r=["{"];for(let[n,a]of t)r.length>1&&r.push(","),r.push(n),(n!==a||this.opts.es5)&&(r.push(":"),(0,wC.addCodeArg)(r,a));return r.push("}"),new wC._Code(r)}if(t,r,n){if(this._blockNode(new t_e(t)),r&&n)this.code(r).else().code(n).endIf();else if(r)this.code(r).endIf();else if(n)throw new Error('CodeGen: "else" body without "then" body');return this}elseIf(t){return this._elseNode(new t_e(t))}else(){return this._elseNode(new tke)}endIf(){return this._endBlockNode(t_e,tke)}_for(t,r){return this._blockNode(t),r&&this.code(r).endFor(),this}for(t,r){return this._for(new CPr(t),r)}forRange(t,r,n,a,o=this.opts.es5?B4.varKinds.var:B4.varKinds.let){let l=this._scope.toName(t);return this._for(new _Pr(o,l,r,n),()=>a(l))}forOf(t,r,n,a=B4.varKinds.const){let o=this._scope.toName(t);if(this.opts.es5){let l=r instanceof wC.Name?r:this.var("_arr",r);return this.forRange("_i",0,(0,wC._)`${l}.length`,A=>{this.var(o,(0,wC._)`${l}[${A}]`),n(o)})}return this._for(new IBt("of",a,o,r),()=>n(o))}forIn(t,r,n,a=this.opts.es5?B4.varKinds.var:B4.varKinds.const){if(this.opts.ownProperties)return this.forOf(t,(0,wC._)`Object.keys(${r})`,n);let o=this._scope.toName(t);return this._for(new IBt("in",a,o,r),()=>n(o))}endFor(){return this._endBlockNode(r_e)}label(t){return this._leafNode(new pPr(t))}break(t){return this._leafNode(new fPr(t))}return(t){let r=new l8e;if(this._blockNode(r),this.code(t),r.nodes.length!==1)throw new Error('CodeGen: "return" should have one node');return this._endBlockNode(l8e)}try(t,r,n){if(!r&&!n)throw new Error('CodeGen: "try" without "catch" and "finally"');let a=new yPr;if(this._blockNode(a),this.code(t),r){let o=this.name("e");this._currNode=a.catch=new u8e(o),r(o)}return n&&(this._currNode=a.finally=new g8e,this.code(n)),this._endBlockNode(u8e,g8e)}throw(t){return this._leafNode(new IPr(t))}block(t,r){return this._blockStarts.push(this._nodes.length),t&&this.code(t).endBlock(r),this}endBlock(t){let r=this._blockStarts.pop();if(r===void 0)throw new Error("CodeGen: not in self-balancing block");let n=this._nodes.length-r;if(n<0||t!==void 0&&n!==t)throw new Error(`CodeGen: wrong number of nodes: ${n} vs ${t} expected`);return this._nodes.length=r,this}func(t,r=wC.nil,n,a){return this._blockNode(new c8e(t,r,n)),a&&this.code(a).endFunc(),this}endFunc(){return this._endBlockNode(c8e)}optimize(t=1){for(;t-- >0;)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(t){return this._currNode.nodes.push(t),this}_blockNode(t){this._currNode.nodes.push(t),this._nodes.push(t)}_endBlockNode(t,r){let n=this._currNode;if(n instanceof t||r&&n instanceof r)return this._nodes.pop(),this;throw new Error(`CodeGen: not in block "${r?`${t.kind}/${r.kind}`:t.kind}"`)}_elseNode(t){let r=this._currNode;if(!(r instanceof t_e))throw new Error('CodeGen: "else" without "if"');return this._currNode=r.else=t,this}get _root(){return this._nodes[0]}get _currNode(){let t=this._nodes;return t[t.length-1]}set _currNode(t){let r=this._nodes;r[r.length-1]=t}};om.CodeGen=bPr;function n_e(e,t){for(let r in t)e[r]=(e[r]||0)+(t[r]||0);return e}function hBt(e,t){return t instanceof wC._CodeOrName?n_e(e,t.names):e}function rke(e,t,r){if(e instanceof wC.Name)return n(e);if(!a(e))return e;return new wC._Code(e._items.reduce((o,l)=>(l instanceof wC.Name&&(l=n(l)),l instanceof wC._Code?o.push(...l._items):o.push(l),o),[]));function n(o){let l=r[o.str];return l===void 0||t[o.str]!==1?o:(delete t[o.str],l)}function a(o){return o instanceof wC._Code&&o._items.some(l=>l instanceof wC.Name&&t[l.str]===1&&r[l.str]!==void 0)}}function sOc(e,t){for(let r in t)e[r]=(e[r]||0)-(t[r]||0)}function hji(e){return typeof e=="boolean"||typeof e=="number"||e===null?!e:(0,wC._)`!${EPr(e)}`}om.not=hji;var oOc=mji(om.operators.AND);function aOc(...e){return e.reduce(oOc)}om.and=aOc;var cOc=mji(om.operators.OR);function lOc(...e){return e.reduce(cOc)}om.or=lOc;function mji(e){return(t,r)=>t===wC.nil?r:r===wC.nil?t:(0,wC._)`${EPr(t)} ${e} ${EPr(r)}`}function EPr(e){return e instanceof wC.Name?e:(0,wC._)`(${e})`}});var B_=H(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.checkStrictMode=Bm.getErrorPath=Bm.Type=Bm.useFunc=Bm.setEvaluated=Bm.evaluatedPropsToName=Bm.mergeEvaluated=Bm.eachItem=Bm.unescapeJsonPointer=Bm.escapeJsonPointer=Bm.escapeFragment=Bm.unescapeFragment=Bm.schemaRefOrVal=Bm.schemaHasRulesButRef=Bm.schemaHasRules=Bm.checkUnknownRules=Bm.alwaysValidSchema=Bm.toHash=void 0;var zb=Hh(),uOc=o8e();function gOc(e){let t={};for(let r of e)t[r]=!0;return t}Bm.toHash=gOc;function AOc(e,t){return typeof t=="boolean"?t:Object.keys(t).length===0?!0:(yji(e,t),!bji(t,e.self.RULES.all))}Bm.alwaysValidSchema=AOc;function yji(e,t=e.schema){let{opts:r,self:n}=e;if(!r.strictSchema||typeof t=="boolean")return;let a=n.RULES.keywords;for(let o in t)a[o]||vji(e,`unknown keyword: "${o}"`)}Bm.checkUnknownRules=yji;function bji(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(t[r])return!0;return!1}Bm.schemaHasRules=bji;function dOc(e,t){if(typeof e=="boolean")return!e;for(let r in e)if(r!=="$ref"&&t.all[r])return!0;return!1}Bm.schemaHasRulesButRef=dOc;function pOc({topSchemaRef:e,schemaPath:t},r,n,a){if(!a){if(typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="string")return(0,zb._)`${r}`}return(0,zb._)`${e}${t}${(0,zb.getProperty)(n)}`}Bm.schemaRefOrVal=pOc;function fOc(e){return Eji(decodeURIComponent(e))}Bm.unescapeFragment=fOc;function IOc(e){return encodeURIComponent(vPr(e))}Bm.escapeFragment=IOc;function vPr(e){return typeof e=="number"?`${e}`:e.replace(/~/g,"~0").replace(/\//g,"~1")}Bm.escapeJsonPointer=vPr;function Eji(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}Bm.unescapeJsonPointer=Eji;function hOc(e,t){if(Array.isArray(e))for(let r of e)t(r);else t(e)}Bm.eachItem=hOc;function Cji({mergeNames:e,mergeToName:t,mergeValues:r,resultToName:n}){return(a,o,l,A)=>{let f=l===void 0?o:l instanceof zb.Name?(o instanceof zb.Name?e(a,o,l):t(a,o,l),l):o instanceof zb.Name?(t(a,l,o),o):r(o,l);return A===zb.Name&&!(f instanceof zb.Name)?n(a,f):f}}Bm.mergeEvaluated={props:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>{e.if((0,zb._)`${t} === true`,()=>e.assign(r,!0),()=>e.assign(r,(0,zb._)`${r} || {}`).code((0,zb._)`Object.assign(${r}, ${t})`))}),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>{t===!0?e.assign(r,!0):(e.assign(r,(0,zb._)`${r} || {}`),BPr(e,r,t))}),mergeValues:(e,t)=>e===!0?!0:{...e,...t},resultToName:Sji}),items:Cji({mergeNames:(e,t,r)=>e.if((0,zb._)`${r} !== true && ${t} !== undefined`,()=>e.assign(r,(0,zb._)`${t} === true ? true : ${r} > ${t} ? ${r} : ${t}`)),mergeToName:(e,t,r)=>e.if((0,zb._)`${r} !== true`,()=>e.assign(r,t===!0?!0:(0,zb._)`${r} > ${t} ? ${r} : ${t}`)),mergeValues:(e,t)=>e===!0?!0:Math.max(e,t),resultToName:(e,t)=>e.var("items",t)})};function Sji(e,t){if(t===!0)return e.var("props",!0);let r=e.var("props",(0,zb._)`{}`);return t!==void 0&&BPr(e,r,t),r}Bm.evaluatedPropsToName=Sji;function BPr(e,t,r){Object.keys(r).forEach(n=>e.assign((0,zb._)`${t}${(0,zb.getProperty)(n)}`,!0))}Bm.setEvaluated=BPr;var _ji={};function mOc(e,t){return e.scopeValue("func",{ref:t,code:_ji[t.code]||(_ji[t.code]=new uOc._Code(t.code))})}Bm.useFunc=mOc;var SPr;(function(e){e[e.Num=0]="Num",e[e.Str=1]="Str"})(SPr||(Bm.Type=SPr={}));function COc(e,t,r){if(e instanceof zb.Name){let n=t===SPr.Num;return r?n?(0,zb._)`"[" + ${e} + "]"`:(0,zb._)`"['" + ${e} + "']"`:n?(0,zb._)`"/" + ${e}`:(0,zb._)`"/" + ${e}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return r?(0,zb.getProperty)(e).toString():"/"+vPr(e)}Bm.getErrorPath=COc;function vji(e,t,r=e.opts.strictSchema){if(r){if(t=`strict mode: ${t}`,r===!0)throw new Error(t);e.self.logger.warn(t)}}Bm.checkStrictMode=vji});var rte=H(wPr=>{"use strict";Object.defineProperty(wPr,"__esModule",{value:!0});var QG=Hh(),_Oc={data:new QG.Name("data"),valCxt:new QG.Name("valCxt"),instancePath:new QG.Name("instancePath"),parentData:new QG.Name("parentData"),parentDataProperty:new QG.Name("parentDataProperty"),rootData:new QG.Name("rootData"),dynamicAnchors:new QG.Name("dynamicAnchors"),vErrors:new QG.Name("vErrors"),errors:new QG.Name("errors"),this:new QG.Name("this"),self:new QG.Name("self"),scope:new QG.Name("scope"),json:new QG.Name("json"),jsonPos:new QG.Name("jsonPos"),jsonLen:new QG.Name("jsonLen"),jsonPart:new QG.Name("jsonPart")};wPr.default=_Oc});var A8e=H(XG=>{"use strict";Object.defineProperty(XG,"__esModule",{value:!0});XG.extendErrors=XG.resetErrorsCount=XG.reportExtraError=XG.reportError=XG.keyword$DataError=XG.keywordError=void 0;var e_=Hh(),CBt=B_(),rL=rte();XG.keywordError={message:({keyword:e})=>(0,e_.str)`must pass "${e}" keyword validation`};XG.keyword$DataError={message:({keyword:e,schemaType:t})=>t?(0,e_.str)`"${e}" keyword must be ${t} ($data)`:(0,e_.str)`"${e}" keyword is invalid ($data)`};function yOc(e,t=XG.keywordError,r,n){let{it:a}=e,{gen:o,compositeRule:l,allErrors:A}=a,f=Tji(e,t,r);n??(l||A)?Bji(o,f):wji(a,(0,e_._)`[${f}]`)}XG.reportError=yOc;function bOc(e,t=XG.keywordError,r){let{it:n}=e,{gen:a,compositeRule:o,allErrors:l}=n,A=Tji(e,t,r);Bji(a,A),o||l||wji(n,rL.default.vErrors)}XG.reportExtraError=bOc;function EOc(e,t){e.assign(rL.default.errors,t),e.if((0,e_._)`${rL.default.vErrors} !== null`,()=>e.if(t,()=>e.assign((0,e_._)`${rL.default.vErrors}.length`,t),()=>e.assign(rL.default.vErrors,null)))}XG.resetErrorsCount=EOc;function SOc({gen:e,keyword:t,schemaValue:r,data:n,errsCount:a,it:o}){if(a===void 0)throw new Error("ajv implementation error");let l=e.name("err");e.forRange("i",a,rL.default.errors,A=>{e.const(l,(0,e_._)`${rL.default.vErrors}[${A}]`),e.if((0,e_._)`${l}.instancePath === undefined`,()=>e.assign((0,e_._)`${l}.instancePath`,(0,e_.strConcat)(rL.default.instancePath,o.errorPath))),e.assign((0,e_._)`${l}.schemaPath`,(0,e_.str)`${o.errSchemaPath}/${t}`),o.opts.verbose&&(e.assign((0,e_._)`${l}.schema`,r),e.assign((0,e_._)`${l}.data`,n))})}XG.extendErrors=SOc;function Bji(e,t){let r=e.const("err",t);e.if((0,e_._)`${rL.default.vErrors} === null`,()=>e.assign(rL.default.vErrors,(0,e_._)`[${r}]`),(0,e_._)`${rL.default.vErrors}.push(${r})`),e.code((0,e_._)`${rL.default.errors}++`)}function wji(e,t){let{gen:r,validateName:n,schemaEnv:a}=e;a.$async?r.throw((0,e_._)`new ${e.ValidationError}(${t})`):(r.assign((0,e_._)`${n}.errors`,t),r.return(!1))}var i_e={keyword:new e_.Name("keyword"),schemaPath:new e_.Name("schemaPath"),params:new e_.Name("params"),propertyName:new e_.Name("propertyName"),message:new e_.Name("message"),schema:new e_.Name("schema"),parentSchema:new e_.Name("parentSchema")};function Tji(e,t,r){let{createErrors:n}=e.it;return n===!1?(0,e_._)`{}`:vOc(e,t,r)}function vOc(e,t,r={}){let{gen:n,it:a}=e,o=[BOc(a,r),wOc(e,r)];return TOc(e,t,o),n.object(...o)}function BOc({errorPath:e},{instancePath:t}){let r=t?(0,e_.str)`${e}${(0,CBt.getErrorPath)(t,CBt.Type.Str)}`:e;return[rL.default.instancePath,(0,e_.strConcat)(rL.default.instancePath,r)]}function wOc({keyword:e,it:{errSchemaPath:t}},{schemaPath:r,parentSchema:n}){let a=n?t:(0,e_.str)`${t}/${e}`;return r&&(a=(0,e_.str)`${a}${(0,CBt.getErrorPath)(r,CBt.Type.Str)}`),[i_e.schemaPath,a]}function TOc(e,{params:t,message:r},n){let{keyword:a,data:o,schemaValue:l,it:A}=e,{opts:f,propertyName:I,topSchemaRef:C,schemaPath:b}=A;n.push([i_e.keyword,a],[i_e.params,typeof t=="function"?t(e):t||(0,e_._)`{}`]),f.messages&&n.push([i_e.message,typeof r=="function"?r(e):r]),f.verbose&&n.push([i_e.schema,l],[i_e.parentSchema,(0,e_._)`${C}${b}`],[rL.default.data,o]),I&&n.push([i_e.propertyName,I])}});var Nji=H(nke=>{"use strict";Object.defineProperty(nke,"__esModule",{value:!0});nke.boolOrEmptySchema=nke.topBoolOrEmptySchema=void 0;var ROc=A8e(),NOc=Hh(),DOc=rte(),kOc={message:"boolean schema is false"};function xOc(e){let{gen:t,schema:r,validateName:n}=e;r===!1?Rji(e,!1):typeof r=="object"&&r.$async===!0?t.return(DOc.default.data):(t.assign((0,NOc._)`${n}.errors`,null),t.return(!0))}nke.topBoolOrEmptySchema=xOc;function GOc(e,t){let{gen:r,schema:n}=e;n===!1?(r.var(t,!1),Rji(e)):r.var(t,!0)}nke.boolOrEmptySchema=GOc;function Rji(e,t){let{gen:r,data:n}=e,a={gen:r,keyword:"false schema",data:n,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:e};(0,ROc.reportError)(a,kOc,void 0,t)}});var TPr=H(ike=>{"use strict";Object.defineProperty(ike,"__esModule",{value:!0});ike.getRules=ike.isJSONType=void 0;var FOc=["string","number","integer","boolean","null","object","array"],ZOc=new Set(FOc);function LOc(e){return typeof e=="string"&&ZOc.has(e)}ike.isJSONType=LOc;function VOc(){let e={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...e,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},e.number,e.string,e.array,e.object],post:{rules:[]},all:{},keywords:{}}}ike.getRules=VOc});var RPr=H(ale=>{"use strict";Object.defineProperty(ale,"__esModule",{value:!0});ale.shouldUseRule=ale.shouldUseGroup=ale.schemaHasRulesForType=void 0;function POc({schema:e,self:t},r){let n=t.RULES.types[r];return n&&n!==!0&&Dji(e,n)}ale.schemaHasRulesForType=POc;function Dji(e,t){return t.rules.some(r=>kji(e,r))}ale.shouldUseGroup=Dji;function kji(e,t){var r;return e[t.keyword]!==void 0||((r=t.definition.implements)===null||r===void 0?void 0:r.some(n=>e[n]!==void 0))}ale.shouldUseRule=kji});var d8e=H(JG=>{"use strict";Object.defineProperty(JG,"__esModule",{value:!0});JG.reportTypeError=JG.checkDataTypes=JG.checkDataType=JG.coerceAndCheckDataType=JG.getJSONTypes=JG.getSchemaTypes=JG.DataType=void 0;var WOc=TPr(),OOc=RPr(),MOc=A8e(),Bh=Hh(),xji=B_(),ske;(function(e){e[e.Correct=0]="Correct",e[e.Wrong=1]="Wrong"})(ske||(JG.DataType=ske={}));function HOc(e){let t=Gji(e.type);if(t.includes("null")){if(e.nullable===!1)throw new Error("type: null contradicts nullable: false")}else{if(!t.length&&e.nullable!==void 0)throw new Error('"nullable" cannot be used without "type"');e.nullable===!0&&t.push("null")}return t}JG.getSchemaTypes=HOc;function Gji(e){let t=Array.isArray(e)?e:e?[e]:[];if(t.every(WOc.isJSONType))return t;throw new Error("type must be JSONType or JSONType[]: "+t.join(","))}JG.getJSONTypes=Gji;function YOc(e,t){let{gen:r,data:n,opts:a}=e,o=QOc(t,a.coerceTypes),l=t.length>0&&!(o.length===0&&t.length===1&&(0,OOc.schemaHasRulesForType)(e,t[0]));if(l){let A=DPr(t,n,a.strictNumbers,ske.Wrong);r.if(A,()=>{o.length?XOc(e,t,o):kPr(e)})}return l}JG.coerceAndCheckDataType=YOc;var Fji=new Set(["string","number","integer","boolean","null"]);function QOc(e,t){return t?e.filter(r=>Fji.has(r)||t==="array"&&r==="array"):[]}function XOc(e,t,r){let{gen:n,data:a,opts:o}=e,l=n.let("dataType",(0,Bh._)`typeof ${a}`),A=n.let("coerced",(0,Bh._)`undefined`);o.coerceTypes==="array"&&n.if((0,Bh._)`${l} == 'object' && Array.isArray(${a}) && ${a}.length == 1`,()=>n.assign(a,(0,Bh._)`${a}[0]`).assign(l,(0,Bh._)`typeof ${a}`).if(DPr(t,a,o.strictNumbers),()=>n.assign(A,a))),n.if((0,Bh._)`${A} !== undefined`);for(let I of r)(Fji.has(I)||I==="array"&&o.coerceTypes==="array")&&f(I);n.else(),kPr(e),n.endIf(),n.if((0,Bh._)`${A} !== undefined`,()=>{n.assign(a,A),JOc(e,A)});function f(I){switch(I){case"string":n.elseIf((0,Bh._)`${l} == "number" || ${l} == "boolean"`).assign(A,(0,Bh._)`"" + ${a}`).elseIf((0,Bh._)`${a} === null`).assign(A,(0,Bh._)`""`);return;case"number":n.elseIf((0,Bh._)`${l} == "boolean" || ${a} === null || (${l} == "string" && ${a} && ${a} == +${a})`).assign(A,(0,Bh._)`+${a}`);return;case"integer":n.elseIf((0,Bh._)`${l} === "boolean" || ${a} === null || (${l} === "string" && ${a} && ${a} == +${a} && !(${a} % 1))`).assign(A,(0,Bh._)`+${a}`);return;case"boolean":n.elseIf((0,Bh._)`${a} === "false" || ${a} === 0 || ${a} === null`).assign(A,!1).elseIf((0,Bh._)`${a} === "true" || ${a} === 1`).assign(A,!0);return;case"null":n.elseIf((0,Bh._)`${a} === "" || ${a} === 0 || ${a} === false`),n.assign(A,null);return;case"array":n.elseIf((0,Bh._)`${l} === "string" || ${l} === "number" - || ${l} === "boolean" || ${a} === null`).assign(A,(0,Bh._)`[${a}]`)}}}function XOc({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,Bh._)`${t} !== undefined`,()=>e.assign((0,Bh._)`${t}[${r}]`,n))}function NPr(e,t,r,n=ske.Correct){let a=n===ske.Correct?Bh.operators.EQ:Bh.operators.NEQ,o;switch(e){case"null":return(0,Bh._)`${t} ${a} null`;case"array":o=(0,Bh._)`Array.isArray(${t})`;break;case"object":o=(0,Bh._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=l((0,Bh._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=l();break;default:return(0,Bh._)`typeof ${t} ${a} ${e}`}return n===ske.Correct?o:(0,Bh.not)(o);function l(A=Bh.nil){return(0,Bh.and)((0,Bh._)`typeof ${t} == "number"`,A,r?(0,Bh._)`isFinite(${t})`:Bh.nil)}}JG.checkDataType=NPr;function DPr(e,t,r,n){if(e.length===1)return NPr(e[0],t,r,n);let a,o=(0,xji.toHash)(e);if(o.array&&o.object){let l=(0,Bh._)`typeof ${t} != "object"`;a=o.null?l:(0,Bh._)`!${t} || ${l}`,delete o.null,delete o.array,delete o.object}else a=Bh.nil;o.number&&delete o.integer;for(let l in o)a=(0,Bh.and)(a,NPr(l,t,r,n));return a}JG.checkDataTypes=DPr;var JOc={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,Bh._)`{type: ${e}}`:(0,Bh._)`{type: ${t}}`};function kPr(e){let t=UOc(e);(0,OOc.reportError)(t,JOc)}JG.reportTypeError=kPr;function UOc(e){let{gen:t,data:r,schema:n}=e,a=(0,xji.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var Lji=H(_Bt=>{"use strict";Object.defineProperty(_Bt,"__esModule",{value:!0});_Bt.assignDefaults=void 0;var oke=Hh(),KOc=B_();function jOc(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Zji(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,o)=>Zji(e,o,a.default))}_Bt.assignDefaults=jOc;function Zji(e,t,r){let{gen:n,compositeRule:a,data:o,opts:l}=e;if(r===void 0)return;let A=(0,oke._)`${o}${(0,oke.getProperty)(t)}`;if(a){(0,KOc.checkStrictMode)(e,`default is ignored for: ${A}`);return}let f=(0,oke._)`${A} === undefined`;l.useDefaults==="empty"&&(f=(0,oke._)`${f} || ${A} === null || ${A} === ""`),n.if(f,(0,oke._)`${A} = ${(0,oke.stringify)(r)}`)}});var IH=H(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.validateUnion=lb.validateArray=lb.usePattern=lb.callValidateCode=lb.schemaProperties=lb.allSchemaProperties=lb.noPropertyInData=lb.propertyInData=lb.isOwnProperty=lb.hasPropFunc=lb.reportMissingProp=lb.checkMissingProp=lb.checkReportMissingProp=void 0;var X1=Hh(),xPr=B_(),cle=rte(),zOc=B_();function qOc(e,t){let{gen:r,data:n,it:a}=e;r.if(FPr(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,X1._)`${t}`},!0),e.error()})}lb.checkReportMissingProp=qOc;function $Oc({gen:e,data:t,it:{opts:r}},n,a){return(0,X1.or)(...n.map(o=>(0,X1.and)(FPr(e,t,o,r.ownProperties),(0,X1._)`${a} = ${o}`)))}lb.checkMissingProp=$Oc;function e3c(e,t){e.setParams({missingProperty:t},!0),e.error()}lb.reportMissingProp=e3c;function Vji(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,X1._)`Object.prototype.hasOwnProperty`})}lb.hasPropFunc=Vji;function GPr(e,t,r){return(0,X1._)`${Vji(e)}.call(${t}, ${r})`}lb.isOwnProperty=GPr;function t3c(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} !== undefined`;return n?(0,X1._)`${a} && ${GPr(e,t,r)}`:a}lb.propertyInData=t3c;function FPr(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} === undefined`;return n?(0,X1.or)(a,(0,X1.not)(GPr(e,t,r))):a}lb.noPropertyInData=FPr;function Pji(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}lb.allSchemaProperties=Pji;function r3c(e,t){return Pji(t).filter(r=>!(0,xPr.alwaysValidSchema)(e,t[r]))}lb.schemaProperties=r3c;function n3c({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:o},it:l},A,f,I){let C=I?(0,X1._)`${e}, ${t}, ${n}${a}`:t,b=[[cle.default.instancePath,(0,X1.strConcat)(cle.default.instancePath,o)],[cle.default.parentData,l.parentData],[cle.default.parentDataProperty,l.parentDataProperty],[cle.default.rootData,cle.default.rootData]];l.opts.dynamicRef&&b.push([cle.default.dynamicAnchors,cle.default.dynamicAnchors]);let E=(0,X1._)`${C}, ${r.object(...b)}`;return f!==X1.nil?(0,X1._)`${A}.call(${f}, ${E})`:(0,X1._)`${A}(${E})`}lb.callValidateCode=n3c;var i3c=(0,X1._)`new RegExp`;function s3c({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,o=a(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,X1._)`${a.code==="new RegExp"?i3c:(0,zOc.useFunc)(e,a)}(${r}, ${n})`})}lb.usePattern=s3c;function o3c(e){let{gen:t,data:r,keyword:n,it:a}=e,o=t.name("valid");if(a.allErrors){let A=t.let("valid",!0);return l(()=>t.assign(A,!1)),A}return t.var(o,!0),l(()=>t.break()),o;function l(A){let f=t.const("len",(0,X1._)`${r}.length`);t.forRange("i",0,f,I=>{e.subschema({keyword:n,dataProp:I,dataPropType:xPr.Type.Num},o),t.if((0,X1.not)(o),A)})}}lb.validateArray=o3c;function a3c(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(f=>(0,xPr.alwaysValidSchema)(a,f))&&!a.opts.unevaluated)return;let l=t.let("valid",!1),A=t.name("_valid");t.block(()=>r.forEach((f,I)=>{let C=e.subschema({keyword:n,schemaProp:I,compositeRule:!0},A);t.assign(l,(0,X1._)`${l} || ${A}`),e.mergeValidEvaluated(C,A)||t.if((0,X1.not)(l))})),e.result(l,()=>e.reset(),()=>e.error(!0))}lb.validateUnion=a3c});var Mji=H(Vj=>{"use strict";Object.defineProperty(Vj,"__esModule",{value:!0});Vj.validateKeywordUsage=Vj.validSchemaType=Vj.funcKeywordCode=Vj.macroKeywordCode=void 0;var nL=Hh(),s_e=rte(),c3c=IH(),l3c=A8e();function u3c(e,t){let{gen:r,keyword:n,schema:a,parentSchema:o,it:l}=e,A=t.macro.call(l.self,a,o,l),f=Oji(r,n,A);l.opts.validateSchema!==!1&&l.self.validateSchema(A,!0);let I=r.name("valid");e.subschema({schema:A,schemaPath:nL.nil,errSchemaPath:`${l.errSchemaPath}/${n}`,topSchemaRef:f,compositeRule:!0},I),e.pass(I,()=>e.error(!0))}Vj.macroKeywordCode=u3c;function g3c(e,t){var r;let{gen:n,keyword:a,schema:o,parentSchema:l,$data:A,it:f}=e;d3c(f,t);let I=!A&&t.compile?t.compile.call(f.self,o,l,f):t.validate,C=Oji(n,a,I),b=n.let("valid");e.block$data(b,E),e.ok((r=t.valid)!==null&&r!==void 0?r:b);function E(){if(t.errors===!1)F(),t.modifying&&Wji(e),Q(()=>e.error());else{let X=t.async?N():B();t.modifying&&Wji(e),Q(()=>A3c(e,X))}}function N(){let X=n.let("ruleErrs",null);return n.try(()=>F((0,nL._)`await `),ae=>n.assign(b,!1).if((0,nL._)`${ae} instanceof ${f.ValidationError}`,()=>n.assign(X,(0,nL._)`${ae}.errors`),()=>n.throw(ae))),X}function B(){let X=(0,nL._)`${C}.errors`;return n.assign(X,null),F(nL.nil),X}function F(X=t.async?(0,nL._)`await `:nL.nil){let ae=f.opts.passContext?s_e.default.this:s_e.default.self,ne=!("compile"in t&&!A||t.schema===!1);n.assign(b,(0,nL._)`${X}${(0,c3c.callValidateCode)(e,C,ae,ne)}`,t.modifying)}function Q(X){var ae;n.if((0,nL.not)((ae=t.valid)!==null&&ae!==void 0?ae:b),X)}}Vj.funcKeywordCode=g3c;function Wji(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,nL._)`${n.parentData}[${n.parentDataProperty}]`))}function A3c(e,t){let{gen:r}=e;r.if((0,nL._)`Array.isArray(${t})`,()=>{r.assign(s_e.default.vErrors,(0,nL._)`${s_e.default.vErrors} === null ? ${t} : ${s_e.default.vErrors}.concat(${t})`).assign(s_e.default.errors,(0,nL._)`${s_e.default.vErrors}.length`),(0,l3c.extendErrors)(e)},()=>e.error())}function d3c({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Oji(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,nL.stringify)(r)})}function p3c(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Vj.validSchemaType=p3c;function f3c({schema:e,opts:t,self:r,errSchemaPath:n},a,o){if(Array.isArray(a.keyword)?!a.keyword.includes(o):a.keyword!==o)throw new Error("ajv implementation error");let l=a.dependencies;if(l?.some(A=>!Object.prototype.hasOwnProperty.call(e,A)))throw new Error(`parent schema must have dependencies of ${o}: ${l.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[o])){let f=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(f);else throw new Error(f)}}Vj.validateKeywordUsage=f3c});var Yji=H(lle=>{"use strict";Object.defineProperty(lle,"__esModule",{value:!0});lle.extendSubschemaMode=lle.extendSubschemaData=lle.getSubschema=void 0;var Pj=Hh(),Hji=B_();function I3c(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:o,topSchemaRef:l}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let A=e.schema[t];return r===void 0?{schema:A,schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:A[r],schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}${(0,Pj.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Hji.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||o===void 0||l===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:l,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}lle.getSubschema=I3c;function h3c(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:o,propertyName:l}){if(a!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:A}=t;if(r!==void 0){let{errorPath:I,dataPathArr:C,opts:b}=t,E=A.let("data",(0,Pj._)`${t.data}${(0,Pj.getProperty)(r)}`,!0);f(E),e.errorPath=(0,Pj.str)`${I}${(0,Hji.getErrorPath)(r,n,b.jsPropertySyntax)}`,e.parentDataProperty=(0,Pj._)`${r}`,e.dataPathArr=[...C,e.parentDataProperty]}if(a!==void 0){let I=a instanceof Pj.Name?a:A.let("data",a,!0);f(I),l!==void 0&&(e.propertyName=l)}o&&(e.dataTypes=o);function f(I){e.data=I,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,I]}}lle.extendSubschemaData=h3c;function m3c(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:o}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}lle.extendSubschemaMode=m3c});var ZPr=H((BJu,Qji)=>{"use strict";Qji.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,a,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[a]))return!1;for(a=n;a--!==0;){var l=o[a];if(!e(t[l],r[l]))return!1}return!0}return t!==t&&r!==r}});var Jji=H((wJu,Xji)=>{"use strict";var ule=Xji.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};yBt(t,n,a,e,"",e)};ule.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ule.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ule.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ule.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function yBt(e,t,r,n,a,o,l,A,f,I){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,o,l,A,f,I);for(var C in n){var b=n[C];if(Array.isArray(b)){if(C in ule.arrayKeywords)for(var E=0;E{"use strict";Object.defineProperty(kV,"__esModule",{value:!0});kV.getSchemaRefs=kV.resolveUrl=kV.normalizeId=kV._getFullPath=kV.getFullPath=kV.inlineRef=void 0;var _3c=B_(),y3c=ZPr(),b3c=Jji(),E3c=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function S3c(e,t=!0){return typeof e=="boolean"?!0:t===!0?!LPr(e):t?Uji(e)<=t:!1}kV.inlineRef=S3c;var v3c=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function LPr(e){for(let t in e){if(v3c.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(LPr)||typeof r=="object"&&LPr(r))return!0}return!1}function Uji(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!E3c.has(r)&&(typeof e[r]=="object"&&(0,_3c.eachItem)(e[r],n=>t+=Uji(n)),t===1/0))return 1/0}return t}function Kji(e,t="",r){r!==!1&&(t=ake(t));let n=e.parse(t);return jji(e,n)}kV.getFullPath=Kji;function jji(e,t){return e.serialize(t).split("#")[0]+"#"}kV._getFullPath=jji;var B3c=/#\/?$/;function ake(e){return e?e.replace(B3c,""):""}kV.normalizeId=ake;function w3c(e,t,r){return r=ake(r),e.resolve(t,r)}kV.resolveUrl=w3c;var T3c=/^[a-z_][-a-z0-9._]*$/i;function R3c(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=ake(e[r]||t),o={"":a},l=Kji(n,a,!1),A={},f=new Set;return b3c(e,{allKeys:!0},(b,E,N,B)=>{if(B===void 0)return;let F=l+E,Q=o[B];typeof b[r]=="string"&&(Q=X.call(this,b[r])),ae.call(this,b.$anchor),ae.call(this,b.$dynamicAnchor),o[E]=Q;function X(ne){let ce=this.opts.uriResolver.resolve;if(ne=ake(Q?ce(Q,ne):ne),f.has(ne))throw C(ne);f.add(ne);let fe=this.refs[ne];return typeof fe=="string"&&(fe=this.refs[fe]),typeof fe=="object"?I(b,fe.schema,ne):ne!==ake(F)&&(ne[0]==="#"?(I(b,A[ne],ne),A[ne]=b):this.refs[ne]=F),ne}function ae(ne){if(typeof ne=="string"){if(!T3c.test(ne))throw new Error(`invalid anchor "${ne}"`);X.call(this,`#${ne}`)}}}),A;function I(b,E,N){if(E!==void 0&&!y3c(b,E))throw C(N)}function C(b){return new Error(`reference "${b}" resolves to more than one schema`)}}kV.getSchemaRefs=R3c});var h8e=H(gle=>{"use strict";Object.defineProperty(gle,"__esModule",{value:!0});gle.getData=gle.KeywordCxt=gle.validateFunctionCode=void 0;var t6i=Nji(),zji=d8e(),PPr=RPr(),bBt=d8e(),N3c=Lji(),I8e=Mji(),VPr=Yji(),Zd=Hh(),cI=rte(),D3c=p8e(),nte=B_(),f8e=A8e();function k3c(e){if(i6i(e)&&(s6i(e),n6i(e))){F3c(e);return}r6i(e,()=>(0,t6i.topBoolOrEmptySchema)(e))}gle.validateFunctionCode=k3c;function r6i({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},o){a.code.es5?e.func(t,(0,Zd._)`${cI.default.data}, ${cI.default.valCxt}`,n.$async,()=>{e.code((0,Zd._)`"use strict"; ${qji(r,a)}`),G3c(e,a),e.code(o)}):e.func(t,(0,Zd._)`${cI.default.data}, ${x3c(a)}`,n.$async,()=>e.code(qji(r,a)).code(o))}function x3c(e){return(0,Zd._)`{${cI.default.instancePath}="", ${cI.default.parentData}, ${cI.default.parentDataProperty}, ${cI.default.rootData}=${cI.default.data}${e.dynamicRef?(0,Zd._)`, ${cI.default.dynamicAnchors}={}`:Zd.nil}}={}`}function G3c(e,t){e.if(cI.default.valCxt,()=>{e.var(cI.default.instancePath,(0,Zd._)`${cI.default.valCxt}.${cI.default.instancePath}`),e.var(cI.default.parentData,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentData}`),e.var(cI.default.parentDataProperty,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentDataProperty}`),e.var(cI.default.rootData,(0,Zd._)`${cI.default.valCxt}.${cI.default.rootData}`),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`${cI.default.valCxt}.${cI.default.dynamicAnchors}`)},()=>{e.var(cI.default.instancePath,(0,Zd._)`""`),e.var(cI.default.parentData,(0,Zd._)`undefined`),e.var(cI.default.parentDataProperty,(0,Zd._)`undefined`),e.var(cI.default.rootData,cI.default.data),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`{}`)})}function F3c(e){let{schema:t,opts:r,gen:n}=e;r6i(e,()=>{r.$comment&&t.$comment&&a6i(e),W3c(e),n.let(cI.default.vErrors,null),n.let(cI.default.errors,0),r.unevaluated&&Z3c(e),o6i(e),H3c(e)})}function Z3c(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,Zd._)`${r}.evaluated`),t.if((0,Zd._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,Zd._)`${e.evaluated}.props`,(0,Zd._)`undefined`)),t.if((0,Zd._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,Zd._)`${e.evaluated}.items`,(0,Zd._)`undefined`))}function qji(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,Zd._)`/*# sourceURL=${r} */`:Zd.nil}function L3c(e,t){if(i6i(e)&&(s6i(e),n6i(e))){V3c(e,t);return}(0,t6i.boolOrEmptySchema)(e,t)}function n6i({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function i6i(e){return typeof e.schema!="boolean"}function V3c(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&a6i(e),O3c(e),M3c(e);let o=n.const("_errs",cI.default.errors);o6i(e,o),n.var(t,(0,Zd._)`${o} === ${cI.default.errors}`)}function s6i(e){(0,nte.checkUnknownRules)(e),P3c(e)}function o6i(e,t){if(e.opts.jtd)return $ji(e,[],!1,t);let r=(0,zji.getSchemaTypes)(e.schema),n=(0,zji.coerceAndCheckDataType)(e,r);$ji(e,r,!n,t)}function P3c(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,nte.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function W3c(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,nte.checkStrictMode)(e,"default is ignored in the schema root")}function O3c(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,D3c.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function M3c(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function a6i({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let o=r.$comment;if(a.$comment===!0)e.code((0,Zd._)`${cI.default.self}.logger.log(${o})`);else if(typeof a.$comment=="function"){let l=(0,Zd.str)`${n}/$comment`,A=e.scopeValue("root",{ref:t.root});e.code((0,Zd._)`${cI.default.self}.opts.$comment(${o}, ${l}, ${A}.schema)`)}}function H3c(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:o}=e;r.$async?t.if((0,Zd._)`${cI.default.errors} === 0`,()=>t.return(cI.default.data),()=>t.throw((0,Zd._)`new ${a}(${cI.default.vErrors})`)):(t.assign((0,Zd._)`${n}.errors`,cI.default.vErrors),o.unevaluated&&Y3c(e),t.return((0,Zd._)`${cI.default.errors} === 0`))}function Y3c({gen:e,evaluated:t,props:r,items:n}){r instanceof Zd.Name&&e.assign((0,Zd._)`${t}.props`,r),n instanceof Zd.Name&&e.assign((0,Zd._)`${t}.items`,n)}function $ji(e,t,r,n){let{gen:a,schema:o,data:l,allErrors:A,opts:f,self:I}=e,{RULES:C}=I;if(o.$ref&&(f.ignoreKeywordsWithRef||!(0,nte.schemaHasRulesButRef)(o,C))){a.block(()=>l6i(e,"$ref",C.all.$ref.definition));return}f.jtd||Q3c(e,t),a.block(()=>{for(let E of C.rules)b(E);b(C.post)});function b(E){(0,PPr.shouldUseGroup)(o,E)&&(E.type?(a.if((0,bBt.checkDataType)(E.type,l,f.strictNumbers)),e6i(e,E),t.length===1&&t[0]===E.type&&r&&(a.else(),(0,bBt.reportTypeError)(e)),a.endIf()):e6i(e,E),A||a.if((0,Zd._)`${cI.default.errors} === ${n||0}`))}}function e6i(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,N3c.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,PPr.shouldUseRule)(n,o)&&l6i(e,o.keyword,o.definition,t.type)})}function Q3c(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(X3c(e,t),e.opts.allowUnionTypes||J3c(e,t),U3c(e,e.dataTypes))}function X3c(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{c6i(e.dataTypes,r)||WPr(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),j3c(e,t)}}function J3c(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&WPr(e,"use allowUnionTypes to allow union type keyword")}function U3c(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,PPr.shouldUseRule)(e.schema,a)){let{type:o}=a.definition;o.length&&!o.some(l=>K3c(t,l))&&WPr(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function K3c(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function c6i(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function j3c(e,t){let r=[];for(let n of e.dataTypes)c6i(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function WPr(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,nte.checkStrictMode)(e,t,e.opts.strictTypes)}var EBt=class{constructor(t,r,n){if((0,I8e.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,nte.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",u6i(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,I8e.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",cI.default.errors))}result(t,r,n){this.failResult((0,Zd.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,Zd.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,Zd._)`${r} !== undefined && (${(0,Zd.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?f8e.reportExtraError:f8e.reportError)(this,this.def.error,r)}$dataError(){(0,f8e.reportError)(this,this.def.$dataError||f8e.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f8e.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=Zd.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=Zd.nil,r=Zd.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:o,def:l}=this;n.if((0,Zd.or)((0,Zd._)`${a} === undefined`,r)),t!==Zd.nil&&n.assign(t,!0),(o.length||l.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==Zd.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:a,it:o}=this;return(0,Zd.or)(l(),A());function l(){if(n.length){if(!(r instanceof Zd.Name))throw new Error("ajv implementation error");let f=Array.isArray(n)?n:[n];return(0,Zd._)`${(0,bBt.checkDataTypes)(f,r,o.opts.strictNumbers,bBt.DataType.Wrong)}`}return Zd.nil}function A(){if(a.validateSchema){let f=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,Zd._)`!${f}(${r})`}return Zd.nil}}subschema(t,r){let n=(0,VPr.getSubschema)(this.it,t);(0,VPr.extendSubschemaData)(n,this.it,t),(0,VPr.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return L3c(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=nte.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=nte.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,Zd.Name)),!0}};gle.KeywordCxt=EBt;function l6i(e,t,r,n){let a=new EBt(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,I8e.funcKeywordCode)(a,r):"macro"in r?(0,I8e.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,I8e.funcKeywordCode)(a,r)}var z3c=/^\/(?:[^~]|~0|~1)*$/,q3c=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function u6i(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,o;if(e==="")return cI.default.rootData;if(e[0]==="/"){if(!z3c.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,o=cI.default.rootData}else{let I=q3c.exec(e);if(!I)throw new Error(`Invalid JSON-pointer: ${e}`);let C=+I[1];if(a=I[2],a==="#"){if(C>=t)throw new Error(f("property/index",C));return n[t-C]}if(C>t)throw new Error(f("data",C));if(o=r[t-C],!a)return o}let l=o,A=a.split("/");for(let I of A)I&&(o=(0,Zd._)`${o}${(0,Zd.getProperty)((0,nte.unescapeJsonPointer)(I))}`,l=(0,Zd._)`${l} && ${o}`);return l;function f(I,C){return`Cannot access ${I} ${C} levels up, current level is ${t}`}}gle.getData=u6i});var SBt=H(MPr=>{"use strict";Object.defineProperty(MPr,"__esModule",{value:!0});var OPr=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};MPr.default=OPr});var m8e=H(QPr=>{"use strict";Object.defineProperty(QPr,"__esModule",{value:!0});var HPr=p8e(),YPr=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,HPr.resolveUrl)(t,r,n),this.missingSchema=(0,HPr.normalizeId)((0,HPr.getFullPath)(t,this.missingRef))}};QPr.default=YPr});var BBt=H(hH=>{"use strict";Object.defineProperty(hH,"__esModule",{value:!0});hH.resolveSchema=hH.getCompilingSchema=hH.resolveRef=hH.compileSchema=hH.SchemaEnv=void 0;var w4=Hh(),$3c=SBt(),o_e=rte(),T4=p8e(),g6i=B_(),e5c=h8e(),cke=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,T4.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};hH.SchemaEnv=cke;function JPr(e){let t=A6i.call(this,e);if(t)return t;let r=(0,T4.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:o}=this.opts,l=new w4.CodeGen(this.scope,{es5:n,lines:a,ownProperties:o}),A;e.$async&&(A=l.scopeValue("Error",{ref:$3c.default,code:(0,w4._)`require("ajv/dist/runtime/validation_error").default`}));let f=l.scopeName("validate");e.validateName=f;let I={gen:l,allErrors:this.opts.allErrors,data:o_e.default.data,parentData:o_e.default.parentData,parentDataProperty:o_e.default.parentDataProperty,dataNames:[o_e.default.data],dataPathArr:[w4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,w4.stringify)(e.schema)}:{ref:e.schema}),validateName:f,ValidationError:A,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:w4.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,w4._)`""`,opts:this.opts,self:this},C;try{this._compilations.add(e),(0,e5c.validateFunctionCode)(I),l.optimize(this.opts.code.optimize);let b=l.toString();C=`${l.scopeRefs(o_e.default.scope)}return ${b}`,this.opts.code.process&&(C=this.opts.code.process(C,e));let N=new Function(`${o_e.default.self}`,`${o_e.default.scope}`,C)(this,this.scope.get());if(this.scope.value(f,{ref:N}),N.errors=null,N.schema=e.schema,N.schemaEnv=e,e.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:f,validateCode:b,scopeValues:l._values}),this.opts.unevaluated){let{props:B,items:F}=I;N.evaluated={props:B instanceof w4.Name?void 0:B,items:F instanceof w4.Name?void 0:F,dynamicProps:B instanceof w4.Name,dynamicItems:F instanceof w4.Name},N.source&&(N.source.evaluated=(0,w4.stringify)(N.evaluated))}return e.validate=N,e}catch(b){throw delete e.validate,delete e.validateName,C&&this.logger.error("Error compiling schema, function code:",C),b}finally{this._compilations.delete(e)}}hH.compileSchema=JPr;function t5c(e,t,r){var n;r=(0,T4.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let o=i5c.call(this,e,r);if(o===void 0){let l=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:A}=this.opts;l&&(o=new cke({schema:l,schemaId:A,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=r5c.call(this,o)}hH.resolveRef=t5c;function r5c(e){return(0,T4.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:JPr.call(this,e)}function A6i(e){for(let t of this._compilations)if(n5c(t,e))return t}hH.getCompilingSchema=A6i;function n5c(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function i5c(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||vBt.call(this,e,t)}function vBt(e,t){let r=this.opts.uriResolver.parse(t),n=(0,T4._getFullPath)(this.opts.uriResolver,r),a=(0,T4.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return XPr.call(this,r,e);let o=(0,T4.normalizeId)(n),l=this.refs[o]||this.schemas[o];if(typeof l=="string"){let A=vBt.call(this,e,l);return typeof A?.schema!="object"?void 0:XPr.call(this,r,A)}if(typeof l?.schema=="object"){if(l.validate||JPr.call(this,l),o===(0,T4.normalizeId)(t)){let{schema:A}=l,{schemaId:f}=this.opts,I=A[f];return I&&(a=(0,T4.resolveUrl)(this.opts.uriResolver,a,I)),new cke({schema:A,schemaId:f,root:e,baseId:a})}return XPr.call(this,r,l)}}hH.resolveSchema=vBt;var s5c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function XPr(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let A of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let f=r[(0,g6i.unescapeFragment)(A)];if(f===void 0)return;r=f;let I=typeof r=="object"&&r[this.opts.schemaId];!s5c.has(A)&&I&&(t=(0,T4.resolveUrl)(this.opts.uriResolver,t,I))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,g6i.schemaHasRulesButRef)(r,this.RULES)){let A=(0,T4.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=vBt.call(this,n,A)}let{schemaId:l}=this.opts;if(o=o||new cke({schema:r,schemaId:l,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var d6i=H((xJu,o5c)=>{o5c.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var f6i=H((GJu,p6i)=>{"use strict";var a5c={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p6i.exports={HEX:a5c}});var E6i=H((FJu,b6i)=>{"use strict";var{HEX:c5c}=f6i();function C6i(e){if(y6i(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:u5c(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function UPr(e,t=!1){let r="",n=!0;for(let a of e){if(c5c[a]===void 0)return;a!=="0"&&n===!0&&(n=!1),n||(r+=a)}return t&&r.length===0&&(r="0"),r}function l5c(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],o=!1,l=!1,A=!1;function f(){if(a.length){if(o===!1){let I=UPr(a);if(I!==void 0)n.push(I);else return r.error=!0,!1}a.length=0}return!0}for(let I=0;I7){r.error=!0;break}I-1>=0&&e[I-1]===":"&&(l=!0);continue}else if(C==="%"){if(!f())break;o=!0}else{a.push(C);continue}}return a.length&&(o?r.zone=a.join(""):A?n.push(a.join("")):n.push(UPr(a))),r.address=n.join(""),r}function _6i(e,t={}){if(y6i(e,":")<2)return{host:e,isIPV6:!1};let r=l5c(e);if(r.error)return{host:e,isIPV6:!1};{let n=r.address,a=r.address;return r.zone&&(n+="%"+r.zone,a+="%25"+r.zone),{host:n,escapedHost:a,isIPV6:!0}}}function u5c(e,t){let r="",n=!0,a=e.length;for(let o=0;o{"use strict";var f5c=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,I5c=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function S6i(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function v6i(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function B6i(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function h5c(e){return e.secure=S6i(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function m5c(e){if((e.port===(S6i(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function C5c(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(I5c);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,o=KPr[a];e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function _5c(e,t){let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),a=`${r}:${t.nid||n}`,o=KPr[a];o&&(e=o.serialize(e,t));let l=e,A=e.nss;return l.path=`${n||t.nid}:${A}`,t.skipEscape=!0,l}function y5c(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!f5c.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function b5c(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var w6i={scheme:"http",domainHost:!0,parse:v6i,serialize:B6i},E5c={scheme:"https",domainHost:w6i.domainHost,parse:v6i,serialize:B6i},wBt={scheme:"ws",domainHost:!0,parse:h5c,serialize:m5c},S5c={scheme:"wss",domainHost:wBt.domainHost,parse:wBt.parse,serialize:wBt.serialize},v5c={scheme:"urn",parse:C5c,serialize:_5c,skipNormalize:!0},B5c={scheme:"urn:uuid",parse:y5c,serialize:b5c,skipNormalize:!0},KPr={http:w6i,https:E5c,ws:wBt,wss:S5c,urn:v5c,"urn:uuid":B5c};T6i.exports=KPr});var D6i=H((LJu,RBt)=>{"use strict";var{normalizeIPv6:w5c,normalizeIPv4:T5c,removeDotSegments:C8e,recomposeAuthority:R5c,normalizeComponentEncoding:TBt}=E6i(),jPr=R6i();function N5c(e,t){return typeof e=="string"?e=Wj(ite(e,t),t):typeof e=="object"&&(e=ite(Wj(e,t),t)),e}function D5c(e,t,r){let n=Object.assign({scheme:"null"},r),a=N6i(ite(e,n),ite(t,n),n,!0);return Wj(a,{...n,skipEscape:!0})}function N6i(e,t,r,n){let a={};return n||(e=ite(Wj(e,r),r),t=ite(Wj(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.path?(t.path.charAt(0)==="/"?a.path=C8e(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=C8e(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function k5c(e,t,r){return typeof e=="string"?(e=unescape(e),e=Wj(TBt(ite(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Wj(TBt(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=Wj(TBt(ite(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Wj(TBt(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function Wj(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),a=[],o=jPr[(n.scheme||r.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let l=R5c(r,n);if(l!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(l),r.path&&r.path.charAt(0)!=="/"&&a.push("/")),r.path!==void 0){let A=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(A=C8e(A)),l===void 0&&(A=A.replace(/^\/\//u,"/%2F")),a.push(A)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var x5c=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function G5c(e){let t=0;for(let r=0,n=e.length;r126||x5c[t])return!0;return!1}var F5c=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ite(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=e.indexOf("%")!==-1,o=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let l=e.match(F5c);if(l){if(n.scheme=l[1],n.userinfo=l[3],n.host=l[4],n.port=parseInt(l[5],10),n.path=l[6]||"",n.query=l[7],n.fragment=l[8],isNaN(n.port)&&(n.port=l[5]),n.host){let f=T5c(n.host);if(f.isIPV4===!1){let I=w5c(f.host,{isIPV4:!1});n.host=I.host.toLowerCase(),o=I.isIPV6}else n.host=f.host,o=!0}n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let A=jPr[(r.scheme||n.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!A||!A.unicodeSupport)&&n.host&&(r.domainHost||A&&A.domainHost)&&o===!1&&G5c(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(f){n.error=n.error||"Host's domain name can not be converted to ASCII: "+f}(!A||A&&!A.skipNormalize)&&(a&&n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),a&&n.host!==void 0&&(n.host=unescape(n.host)),n.path!==void 0&&n.path.length&&(n.path=escape(unescape(n.path))),n.fragment!==void 0&&n.fragment.length&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),A&&A.parse&&A.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var zPr={SCHEMES:jPr,normalize:N5c,resolve:D5c,resolveComponents:N6i,equal:k5c,serialize:Wj,parse:ite};RBt.exports=zPr;RBt.exports.default=zPr;RBt.exports.fastUri=zPr});var x6i=H(qPr=>{"use strict";Object.defineProperty(qPr,"__esModule",{value:!0});var k6i=D6i();k6i.code='require("ajv/dist/runtime/uri").default';qPr.default=k6i});var O6i=H(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.CodeGen=ex.Name=ex.nil=ex.stringify=ex.str=ex._=ex.KeywordCxt=void 0;var Z5c=h8e();Object.defineProperty(ex,"KeywordCxt",{enumerable:!0,get:function(){return Z5c.KeywordCxt}});var lke=Hh();Object.defineProperty(ex,"_",{enumerable:!0,get:function(){return lke._}});Object.defineProperty(ex,"str",{enumerable:!0,get:function(){return lke.str}});Object.defineProperty(ex,"stringify",{enumerable:!0,get:function(){return lke.stringify}});Object.defineProperty(ex,"nil",{enumerable:!0,get:function(){return lke.nil}});Object.defineProperty(ex,"Name",{enumerable:!0,get:function(){return lke.Name}});Object.defineProperty(ex,"CodeGen",{enumerable:!0,get:function(){return lke.CodeGen}});var L5c=SBt(),V6i=m8e(),V5c=TPr(),_8e=BBt(),P5c=Hh(),y8e=p8e(),NBt=d8e(),eWr=B_(),G6i=d6i(),W5c=x6i(),P6i=(e,t)=>new RegExp(e,t);P6i.code="new RegExp";var O5c=["removeAdditional","useDefaults","coerceTypes"],M5c=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),H5c={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Y5c={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},F6i=200;function Q5c(e){var t,r,n,a,o,l,A,f,I,C,b,E,N,B,F,Q,X,ae,ne,ce,fe,ue,de,be,Se;let De=e.strict,k=(t=e.code)===null||t===void 0?void 0:t.optimize,et=k===!0||k===void 0?1:k||0,ct=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:P6i,Me=(a=e.uriResolver)!==null&&a!==void 0?a:W5c.default;return{strictSchema:(l=(o=e.strictSchema)!==null&&o!==void 0?o:De)!==null&&l!==void 0?l:!0,strictNumbers:(f=(A=e.strictNumbers)!==null&&A!==void 0?A:De)!==null&&f!==void 0?f:!0,strictTypes:(C=(I=e.strictTypes)!==null&&I!==void 0?I:De)!==null&&C!==void 0?C:"log",strictTuples:(E=(b=e.strictTuples)!==null&&b!==void 0?b:De)!==null&&E!==void 0?E:"log",strictRequired:(B=(N=e.strictRequired)!==null&&N!==void 0?N:De)!==null&&B!==void 0?B:!1,code:e.code?{...e.code,optimize:et,regExp:ct}:{optimize:et,regExp:ct},loopRequired:(F=e.loopRequired)!==null&&F!==void 0?F:F6i,loopEnum:(Q=e.loopEnum)!==null&&Q!==void 0?Q:F6i,meta:(X=e.meta)!==null&&X!==void 0?X:!0,messages:(ae=e.messages)!==null&&ae!==void 0?ae:!0,inlineRefs:(ne=e.inlineRefs)!==null&&ne!==void 0?ne:!0,schemaId:(ce=e.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(fe=e.addUsedSchema)!==null&&fe!==void 0?fe:!0,validateSchema:(ue=e.validateSchema)!==null&&ue!==void 0?ue:!0,validateFormats:(de=e.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(be=e.unicodeRegExp)!==null&&be!==void 0?be:!0,int32range:(Se=e.int32range)!==null&&Se!==void 0?Se:!0,uriResolver:Me}}var b8e=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...Q5c(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new P5c.ValueScope({scope:{},prefixes:M5c,es5:r,lines:n}),this.logger=z5c(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,V5c.getRules)(),Z6i.call(this,H5c,t,"NOT SUPPORTED"),Z6i.call(this,Y5c,t,"DEPRECATED","warn"),this._metaOpts=K5c.call(this),t.formats&&J5c.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&U5c.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),X5c.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=G6i;n==="id"&&(a={...G6i},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let a=n(r);return"$async"in n||(this.errors=n.errors),a}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,t,r);async function a(C,b){await o.call(this,C.$schema);let E=this._addSchema(C,b);return E.validate||l.call(this,E)}async function o(C){C&&!this.getSchema(C)&&await a.call(this,{$ref:C},!0)}async function l(C){try{return this._compileSchemaEnv(C)}catch(b){if(!(b instanceof V6i.default))throw b;return A.call(this,b),await f.call(this,b.missingSchema),l.call(this,C)}}function A({missingSchema:C,missingRef:b}){if(this.refs[C])throw new Error(`AnySchema ${C} is loaded but ${b} cannot be resolved`)}async function f(C){let b=await I.call(this,C);this.refs[C]||await o.call(this,b.$schema),this.refs[C]||this.addSchema(b,C,r)}async function I(C){let b=this._loading[C];if(b)return b;try{return await(this._loading[C]=n(C))}finally{delete this._loading[C]}}}addSchema(t,r,n,a=this.opts.validateSchema){if(Array.isArray(t)){for(let l of t)this.addSchema(l,void 0,n,a);return this}let o;if(typeof t=="object"){let{schemaId:l}=this.opts;if(o=t[l],o!==void 0&&typeof o!="string")throw new Error(`schema ${l} must be string`)}return r=(0,y8e.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,t);if(!a&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return a}getSchema(t){let r;for(;typeof(r=L6i.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new _8e.SchemaEnv({schema:{},schemaId:n});if(r=_8e.resolveSchema.call(this,a,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=L6i.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,y8e.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if($5c.call(this,n,r),!r)return(0,eWr.eachItem)(n,o=>$Pr.call(this,o)),this;tMc.call(this,r);let a={...r,type:(0,NBt.getJSONTypes)(r.type),schemaType:(0,NBt.getJSONTypes)(r.schemaType)};return(0,eWr.eachItem)(n,a.type.length===0?o=>$Pr.call(this,o,a):o=>a.type.forEach(l=>$Pr.call(this,o,a,l))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let a=n.rules.findIndex(o=>o.keyword===t);a>=0&&n.rules.splice(a,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,o)=>a+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let o=a.split("/").slice(1),l=t;for(let A of o)l=l[A];for(let A in n){let f=n[A];if(typeof f!="object")continue;let{$data:I}=f.definition,C=l[A];I&&C&&(l[A]=W6i(C))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,o=this.opts.addUsedSchema){let l,{schemaId:A}=this.opts;if(typeof t=="object")l=t[A];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let f=this._cache.get(t);if(f!==void 0)return f;n=(0,y8e.normalizeId)(l||n);let I=y8e.getSchemaRefs.call(this,t,n);return f=new _8e.SchemaEnv({schema:t,schemaId:A,meta:r,baseId:n,localRefs:I}),this._cache.set(f.schema,f),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=f),a&&this.validateSchema(t,!0),f}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):_8e.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{_8e.compileSchema.call(this,t)}finally{this.opts=r}}};b8e.ValidationError=L5c.default;b8e.MissingRefError=V6i.default;ex.default=b8e;function Z6i(e,t,r,n="error"){for(let a in e){let o=a;o in t&&this.logger[n](`${r}: option ${a}. ${e[o]}`)}}function L6i(e){return e=(0,y8e.normalizeId)(e),this.schemas[e]||this.refs[e]}function X5c(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function J5c(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function U5c(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function K5c(){let e={...this.opts};for(let t of O5c)delete e[t];return e}var j5c={log(){},warn(){},error(){}};function z5c(e){if(e===!1)return j5c;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var q5c=/^[a-z_$][a-z0-9_$:-]*$/i;function $5c(e,t){let{RULES:r}=this;if((0,eWr.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!q5c.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $Pr(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,l=a?o.post:o.rules.find(({type:f})=>f===r);if(l||(l={type:r,rules:[]},o.rules.push(l)),o.keywords[e]=!0,!t)return;let A={keyword:e,definition:{...t,type:(0,NBt.getJSONTypes)(t.type),schemaType:(0,NBt.getJSONTypes)(t.schemaType)}};t.before?eMc.call(this,l,A,t.before):l.rules.push(A),o.all[e]=A,(n=t.implements)===null||n===void 0||n.forEach(f=>this.addKeyword(f))}function eMc(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function tMc(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=W6i(t)),e.validateSchema=this.compile(t,!0))}var rMc={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function W6i(e){return{anyOf:[e,rMc]}}});var M6i=H(tWr=>{"use strict";Object.defineProperty(tWr,"__esModule",{value:!0});var nMc={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};tWr.default=nMc});var X6i=H(a_e=>{"use strict";Object.defineProperty(a_e,"__esModule",{value:!0});a_e.callRef=a_e.getValidate=void 0;var iMc=m8e(),H6i=IH(),xV=Hh(),uke=rte(),Y6i=BBt(),DBt=B_(),sMc={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:o,validateName:l,opts:A,self:f}=n,{root:I}=o;if((r==="#"||r==="#/")&&a===I.baseId)return b();let C=Y6i.resolveRef.call(f,I,a,r);if(C===void 0)throw new iMc.default(n.opts.uriResolver,a,r);if(C instanceof Y6i.SchemaEnv)return E(C);return N(C);function b(){if(o===I)return kBt(e,l,o,o.$async);let B=t.scopeValue("root",{ref:I});return kBt(e,(0,xV._)`${B}.validate`,I,I.$async)}function E(B){let F=Q6i(e,B);kBt(e,F,B,B.$async)}function N(B){let F=t.scopeValue("schema",A.code.source===!0?{ref:B,code:(0,xV.stringify)(B)}:{ref:B}),Q=t.name("valid"),X=e.subschema({schema:B,dataTypes:[],schemaPath:xV.nil,topSchemaRef:F,errSchemaPath:r},Q);e.mergeEvaluated(X),e.ok(Q)}}};function Q6i(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,xV._)`${r.scopeValue("wrapper",{ref:t})}.validate`}a_e.getValidate=Q6i;function kBt(e,t,r,n){let{gen:a,it:o}=e,{allErrors:l,schemaEnv:A,opts:f}=o,I=f.passContext?uke.default.this:xV.nil;n?C():b();function C(){if(!A.$async)throw new Error("async schema referenced by sync schema");let B=a.let("valid");a.try(()=>{a.code((0,xV._)`await ${(0,H6i.callValidateCode)(e,t,I)}`),N(t),l||a.assign(B,!0)},F=>{a.if((0,xV._)`!(${F} instanceof ${o.ValidationError})`,()=>a.throw(F)),E(F),l||a.assign(B,!1)}),e.ok(B)}function b(){e.result((0,H6i.callValidateCode)(e,t,I),()=>N(t),()=>E(t))}function E(B){let F=(0,xV._)`${B}.errors`;a.assign(uke.default.vErrors,(0,xV._)`${uke.default.vErrors} === null ? ${F} : ${uke.default.vErrors}.concat(${F})`),a.assign(uke.default.errors,(0,xV._)`${uke.default.vErrors}.length`)}function N(B){var F;if(!o.opts.unevaluated)return;let Q=(F=r?.validate)===null||F===void 0?void 0:F.evaluated;if(o.props!==!0)if(Q&&!Q.dynamicProps)Q.props!==void 0&&(o.props=DBt.mergeEvaluated.props(a,Q.props,o.props));else{let X=a.var("props",(0,xV._)`${B}.evaluated.props`);o.props=DBt.mergeEvaluated.props(a,X,o.props,xV.Name)}if(o.items!==!0)if(Q&&!Q.dynamicItems)Q.items!==void 0&&(o.items=DBt.mergeEvaluated.items(a,Q.items,o.items));else{let X=a.var("items",(0,xV._)`${B}.evaluated.items`);o.items=DBt.mergeEvaluated.items(a,X,o.items,xV.Name)}}}a_e.callRef=kBt;a_e.default=sMc});var J6i=H(rWr=>{"use strict";Object.defineProperty(rWr,"__esModule",{value:!0});var oMc=M6i(),aMc=X6i(),cMc=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",oMc.default,aMc.default];rWr.default=cMc});var U6i=H(nWr=>{"use strict";Object.defineProperty(nWr,"__esModule",{value:!0});var xBt=Hh(),Ale=xBt.operators,GBt={maximum:{okStr:"<=",ok:Ale.LTE,fail:Ale.GT},minimum:{okStr:">=",ok:Ale.GTE,fail:Ale.LT},exclusiveMaximum:{okStr:"<",ok:Ale.LT,fail:Ale.GTE},exclusiveMinimum:{okStr:">",ok:Ale.GT,fail:Ale.LTE}},lMc={message:({keyword:e,schemaCode:t})=>(0,xBt.str)`must be ${GBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,xBt._)`{comparison: ${GBt[e].okStr}, limit: ${t}}`},uMc={keyword:Object.keys(GBt),type:"number",schemaType:"number",$data:!0,error:lMc,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,xBt._)`${r} ${GBt[t].fail} ${n} || isNaN(${r})`)}};nWr.default=uMc});var K6i=H(iWr=>{"use strict";Object.defineProperty(iWr,"__esModule",{value:!0});var E8e=Hh(),gMc={message:({schemaCode:e})=>(0,E8e.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,E8e._)`{multipleOf: ${e}}`},AMc={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:gMc,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,o=a.opts.multipleOfPrecision,l=t.let("res"),A=o?(0,E8e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${o}`:(0,E8e._)`${l} !== parseInt(${l})`;e.fail$data((0,E8e._)`(${n} === 0 || (${l} = ${r}/${n}, ${A}))`)}};iWr.default=AMc});var z6i=H(sWr=>{"use strict";Object.defineProperty(sWr,"__esModule",{value:!0});function j6i(e){let t=e.length,r=0,n=0,a;for(;n=55296&&a<=56319&&n{"use strict";Object.defineProperty(oWr,"__esModule",{value:!0});var c_e=Hh(),dMc=B_(),pMc=z6i(),fMc={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,c_e.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,c_e._)`{limit: ${e}}`},IMc={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:fMc,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,o=t==="maxLength"?c_e.operators.GT:c_e.operators.LT,l=a.opts.unicode===!1?(0,c_e._)`${r}.length`:(0,c_e._)`${(0,dMc.useFunc)(e.gen,pMc.default)}(${r})`;e.fail$data((0,c_e._)`${l} ${o} ${n}`)}};oWr.default=IMc});var $6i=H(aWr=>{"use strict";Object.defineProperty(aWr,"__esModule",{value:!0});var hMc=IH(),FBt=Hh(),mMc={message:({schemaCode:e})=>(0,FBt.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,FBt._)`{pattern: ${e}}`},CMc={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:mMc,code(e){let{data:t,$data:r,schema:n,schemaCode:a,it:o}=e,l=o.opts.unicodeRegExp?"u":"",A=r?(0,FBt._)`(new RegExp(${a}, ${l}))`:(0,hMc.usePattern)(e,n);e.fail$data((0,FBt._)`!${A}.test(${t})`)}};aWr.default=CMc});var e7i=H(cWr=>{"use strict";Object.defineProperty(cWr,"__esModule",{value:!0});var S8e=Hh(),_Mc={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,S8e.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,S8e._)`{limit: ${e}}`},yMc={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:_Mc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?S8e.operators.GT:S8e.operators.LT;e.fail$data((0,S8e._)`Object.keys(${r}).length ${a} ${n}`)}};cWr.default=yMc});var t7i=H(lWr=>{"use strict";Object.defineProperty(lWr,"__esModule",{value:!0});var v8e=IH(),B8e=Hh(),bMc=B_(),EMc={message:({params:{missingProperty:e}})=>(0,B8e.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,B8e._)`{missingProperty: ${e}}`},SMc={keyword:"required",type:"object",schemaType:"array",$data:!0,error:EMc,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:o,it:l}=e,{opts:A}=l;if(!o&&r.length===0)return;let f=r.length>=A.loopRequired;if(l.allErrors?I():C(),A.strictRequired){let N=e.parentSchema.properties,{definedProperties:B}=e.it;for(let F of r)if(N?.[F]===void 0&&!B.has(F)){let Q=l.schemaEnv.baseId+l.errSchemaPath,X=`required property "${F}" is not defined at "${Q}" (strictRequired)`;(0,bMc.checkStrictMode)(l,X,l.opts.strictRequired)}}function I(){if(f||o)e.block$data(B8e.nil,b);else for(let N of r)(0,v8e.checkReportMissingProp)(e,N)}function C(){let N=t.let("missing");if(f||o){let B=t.let("valid",!0);e.block$data(B,()=>E(N,B)),e.ok(B)}else t.if((0,v8e.checkMissingProp)(e,r,N)),(0,v8e.reportMissingProp)(e,N),t.else()}function b(){t.forOf("prop",n,N=>{e.setParams({missingProperty:N}),t.if((0,v8e.noPropertyInData)(t,a,N,A.ownProperties),()=>e.error())})}function E(N,B){e.setParams({missingProperty:N}),t.forOf(N,n,()=>{t.assign(B,(0,v8e.propertyInData)(t,a,N,A.ownProperties)),t.if((0,B8e.not)(B),()=>{e.error(),t.break()})},B8e.nil)}}};lWr.default=SMc});var r7i=H(uWr=>{"use strict";Object.defineProperty(uWr,"__esModule",{value:!0});var w8e=Hh(),vMc={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,w8e.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,w8e._)`{limit: ${e}}`},BMc={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:vMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?w8e.operators.GT:w8e.operators.LT;e.fail$data((0,w8e._)`${r}.length ${a} ${n}`)}};uWr.default=BMc});var ZBt=H(gWr=>{"use strict";Object.defineProperty(gWr,"__esModule",{value:!0});var n7i=ZPr();n7i.code='require("ajv/dist/runtime/equal").default';gWr.default=n7i});var i7i=H(dWr=>{"use strict";Object.defineProperty(dWr,"__esModule",{value:!0});var AWr=d8e(),tx=Hh(),wMc=B_(),TMc=ZBt(),RMc={message:({params:{i:e,j:t}})=>(0,tx.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,tx._)`{i: ${e}, j: ${t}}`},NMc={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:RMc,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:o,schemaCode:l,it:A}=e;if(!n&&!a)return;let f=t.let("valid"),I=o.items?(0,AWr.getSchemaTypes)(o.items):[];e.block$data(f,C,(0,tx._)`${l} === false`),e.ok(f);function C(){let B=t.let("i",(0,tx._)`${r}.length`),F=t.let("j");e.setParams({i:B,j:F}),t.assign(f,!0),t.if((0,tx._)`${B} > 1`,()=>(b()?E:N)(B,F))}function b(){return I.length>0&&!I.some(B=>B==="object"||B==="array")}function E(B,F){let Q=t.name("item"),X=(0,AWr.checkDataTypes)(I,Q,A.opts.strictNumbers,AWr.DataType.Wrong),ae=t.const("indices",(0,tx._)`{}`);t.for((0,tx._)`;${B}--;`,()=>{t.let(Q,(0,tx._)`${r}[${B}]`),t.if(X,(0,tx._)`continue`),I.length>1&&t.if((0,tx._)`typeof ${Q} == "string"`,(0,tx._)`${Q} += "_"`),t.if((0,tx._)`typeof ${ae}[${Q}] == "number"`,()=>{t.assign(F,(0,tx._)`${ae}[${Q}]`),e.error(),t.assign(f,!1).break()}).code((0,tx._)`${ae}[${Q}] = ${B}`)})}function N(B,F){let Q=(0,wMc.useFunc)(t,TMc.default),X=t.name("outer");t.label(X).for((0,tx._)`;${B}--;`,()=>t.for((0,tx._)`${F} = ${B}; ${F}--;`,()=>t.if((0,tx._)`${Q}(${r}[${B}], ${r}[${F}])`,()=>{e.error(),t.assign(f,!1).break(X)})))}}};dWr.default=NMc});var s7i=H(fWr=>{"use strict";Object.defineProperty(fWr,"__esModule",{value:!0});var pWr=Hh(),DMc=B_(),kMc=ZBt(),xMc={message:"must be equal to constant",params:({schemaCode:e})=>(0,pWr._)`{allowedValue: ${e}}`},GMc={keyword:"const",$data:!0,error:xMc,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,pWr._)`!${(0,DMc.useFunc)(t,kMc.default)}(${r}, ${a})`):e.fail((0,pWr._)`${o} !== ${r}`)}};fWr.default=GMc});var o7i=H(IWr=>{"use strict";Object.defineProperty(IWr,"__esModule",{value:!0});var T8e=Hh(),FMc=B_(),ZMc=ZBt(),LMc={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,T8e._)`{allowedValues: ${e}}`},VMc={keyword:"enum",schemaType:"array",$data:!0,error:LMc,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:o,it:l}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let A=a.length>=l.opts.loopEnum,f,I=()=>f??(f=(0,FMc.useFunc)(t,ZMc.default)),C;if(A||n)C=t.let("valid"),e.block$data(C,b);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let N=t.const("vSchema",o);C=(0,T8e.or)(...a.map((B,F)=>E(N,F)))}e.pass(C);function b(){t.assign(C,!1),t.forOf("v",o,N=>t.if((0,T8e._)`${I()}(${r}, ${N})`,()=>t.assign(C,!0).break()))}function E(N,B){let F=a[B];return typeof F=="object"&&F!==null?(0,T8e._)`${I()}(${r}, ${N}[${B}])`:(0,T8e._)`${r} === ${F}`}}};IWr.default=VMc});var a7i=H(hWr=>{"use strict";Object.defineProperty(hWr,"__esModule",{value:!0});var PMc=U6i(),WMc=K6i(),OMc=q6i(),MMc=$6i(),HMc=e7i(),YMc=t7i(),QMc=r7i(),XMc=i7i(),JMc=s7i(),UMc=o7i(),KMc=[PMc.default,WMc.default,OMc.default,MMc.default,HMc.default,YMc.default,QMc.default,XMc.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},JMc.default,UMc.default];hWr.default=KMc});var CWr=H(R8e=>{"use strict";Object.defineProperty(R8e,"__esModule",{value:!0});R8e.validateAdditionalItems=void 0;var l_e=Hh(),mWr=B_(),jMc={message:({params:{len:e}})=>(0,l_e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,l_e._)`{limit: ${e}}`},zMc={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:jMc,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,mWr.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}c7i(e,n)}};function c7i(e,t){let{gen:r,schema:n,data:a,keyword:o,it:l}=e;l.items=!0;let A=r.const("len",(0,l_e._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,l_e._)`${A} <= ${t.length}`);else if(typeof n=="object"&&!(0,mWr.alwaysValidSchema)(l,n)){let I=r.var("valid",(0,l_e._)`${A} <= ${t.length}`);r.if((0,l_e.not)(I),()=>f(I)),e.ok(I)}function f(I){r.forRange("i",t.length,A,C=>{e.subschema({keyword:o,dataProp:C,dataPropType:mWr.Type.Num},I),l.allErrors||r.if((0,l_e.not)(I),()=>r.break())})}}R8e.validateAdditionalItems=c7i;R8e.default=zMc});var _Wr=H(N8e=>{"use strict";Object.defineProperty(N8e,"__esModule",{value:!0});N8e.validateTuple=void 0;var l7i=Hh(),LBt=B_(),qMc=IH(),$Mc={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return u7i(e,"additionalItems",t);r.items=!0,!(0,LBt.alwaysValidSchema)(r,t)&&e.ok((0,qMc.validateArray)(e))}};function u7i(e,t,r=e.schema){let{gen:n,parentSchema:a,data:o,keyword:l,it:A}=e;C(a),A.opts.unevaluated&&r.length&&A.items!==!0&&(A.items=LBt.mergeEvaluated.items(n,r.length,A.items));let f=n.name("valid"),I=n.const("len",(0,l7i._)`${o}.length`);r.forEach((b,E)=>{(0,LBt.alwaysValidSchema)(A,b)||(n.if((0,l7i._)`${I} > ${E}`,()=>e.subschema({keyword:l,schemaProp:E,dataProp:E},f)),e.ok(f))});function C(b){let{opts:E,errSchemaPath:N}=A,B=r.length,F=B===b.minItems&&(B===b.maxItems||b[t]===!1);if(E.strictTuples&&!F){let Q=`"${l}" is ${B}-tuple, but minItems or maxItems/${t} are not specified or different at path "${N}"`;(0,LBt.checkStrictMode)(A,Q,E.strictTuples)}}}N8e.validateTuple=u7i;N8e.default=$Mc});var g7i=H(yWr=>{"use strict";Object.defineProperty(yWr,"__esModule",{value:!0});var eHc=_Wr(),tHc={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,eHc.validateTuple)(e,"items")};yWr.default=tHc});var d7i=H(bWr=>{"use strict";Object.defineProperty(bWr,"__esModule",{value:!0});var A7i=Hh(),rHc=B_(),nHc=IH(),iHc=CWr(),sHc={message:({params:{len:e}})=>(0,A7i.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,A7i._)`{limit: ${e}}`},oHc={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:sHc,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,rHc.alwaysValidSchema)(n,t)&&(a?(0,iHc.validateAdditionalItems)(e,a):e.ok((0,nHc.validateArray)(e)))}};bWr.default=oHc});var p7i=H(EWr=>{"use strict";Object.defineProperty(EWr,"__esModule",{value:!0});var mH=Hh(),VBt=B_(),aHc={message:({params:{min:e,max:t}})=>t===void 0?(0,mH.str)`must contain at least ${e} valid item(s)`:(0,mH.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,mH._)`{minContains: ${e}}`:(0,mH._)`{minContains: ${e}, maxContains: ${t}}`},cHc={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:aHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e,l,A,{minContains:f,maxContains:I}=n;o.opts.next?(l=f===void 0?1:f,A=I):l=1;let C=t.const("len",(0,mH._)`${a}.length`);if(e.setParams({min:l,max:A}),A===void 0&&l===0){(0,VBt.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(A!==void 0&&l>A){(0,VBt.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,VBt.alwaysValidSchema)(o,r)){let F=(0,mH._)`${C} >= ${l}`;A!==void 0&&(F=(0,mH._)`${F} && ${C} <= ${A}`),e.pass(F);return}o.items=!0;let b=t.name("valid");A===void 0&&l===1?N(b,()=>t.if(b,()=>t.break())):l===0?(t.let(b,!0),A!==void 0&&t.if((0,mH._)`${a}.length > 0`,E)):(t.let(b,!1),E()),e.result(b,()=>e.reset());function E(){let F=t.name("_valid"),Q=t.let("count",0);N(F,()=>t.if(F,()=>B(Q)))}function N(F,Q){t.forRange("i",0,C,X=>{e.subschema({keyword:"contains",dataProp:X,dataPropType:VBt.Type.Num,compositeRule:!0},F),Q()})}function B(F){t.code((0,mH._)`${F}++`),A===void 0?t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0).break()):(t.if((0,mH._)`${F} > ${A}`,()=>t.assign(b,!1).break()),l===1?t.assign(b,!0):t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0)))}}};EWr.default=cHc});var h7i=H(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.validateSchemaDeps=Oj.validatePropertyDeps=Oj.error=void 0;var SWr=Hh(),lHc=B_(),D8e=IH();Oj.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,SWr.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,SWr._)`{property: ${e}, + || ${l} === "boolean" || ${a} === null`).assign(A,(0,Bh._)`[${a}]`)}}}function JOc({gen:e,parentData:t,parentDataProperty:r},n){e.if((0,Bh._)`${t} !== undefined`,()=>e.assign((0,Bh._)`${t}[${r}]`,n))}function NPr(e,t,r,n=ske.Correct){let a=n===ske.Correct?Bh.operators.EQ:Bh.operators.NEQ,o;switch(e){case"null":return(0,Bh._)`${t} ${a} null`;case"array":o=(0,Bh._)`Array.isArray(${t})`;break;case"object":o=(0,Bh._)`${t} && typeof ${t} == "object" && !Array.isArray(${t})`;break;case"integer":o=l((0,Bh._)`!(${t} % 1) && !isNaN(${t})`);break;case"number":o=l();break;default:return(0,Bh._)`typeof ${t} ${a} ${e}`}return n===ske.Correct?o:(0,Bh.not)(o);function l(A=Bh.nil){return(0,Bh.and)((0,Bh._)`typeof ${t} == "number"`,A,r?(0,Bh._)`isFinite(${t})`:Bh.nil)}}JG.checkDataType=NPr;function DPr(e,t,r,n){if(e.length===1)return NPr(e[0],t,r,n);let a,o=(0,xji.toHash)(e);if(o.array&&o.object){let l=(0,Bh._)`typeof ${t} != "object"`;a=o.null?l:(0,Bh._)`!${t} || ${l}`,delete o.null,delete o.array,delete o.object}else a=Bh.nil;o.number&&delete o.integer;for(let l in o)a=(0,Bh.and)(a,NPr(l,t,r,n));return a}JG.checkDataTypes=DPr;var UOc={message:({schema:e})=>`must be ${e}`,params:({schema:e,schemaValue:t})=>typeof e=="string"?(0,Bh._)`{type: ${e}}`:(0,Bh._)`{type: ${t}}`};function kPr(e){let t=KOc(e);(0,MOc.reportError)(t,UOc)}JG.reportTypeError=kPr;function KOc(e){let{gen:t,data:r,schema:n}=e,a=(0,xji.schemaRefOrVal)(e,n,"type");return{gen:t,keyword:"type",data:r,schema:n.type,schemaCode:a,schemaValue:a,parentSchema:n,params:{},it:e}}});var Lji=H(_Bt=>{"use strict";Object.defineProperty(_Bt,"__esModule",{value:!0});_Bt.assignDefaults=void 0;var oke=Hh(),jOc=B_();function zOc(e,t){let{properties:r,items:n}=e.schema;if(t==="object"&&r)for(let a in r)Zji(e,a,r[a].default);else t==="array"&&Array.isArray(n)&&n.forEach((a,o)=>Zji(e,o,a.default))}_Bt.assignDefaults=zOc;function Zji(e,t,r){let{gen:n,compositeRule:a,data:o,opts:l}=e;if(r===void 0)return;let A=(0,oke._)`${o}${(0,oke.getProperty)(t)}`;if(a){(0,jOc.checkStrictMode)(e,`default is ignored for: ${A}`);return}let f=(0,oke._)`${A} === undefined`;l.useDefaults==="empty"&&(f=(0,oke._)`${f} || ${A} === null || ${A} === ""`),n.if(f,(0,oke._)`${A} = ${(0,oke.stringify)(r)}`)}});var IH=H(lb=>{"use strict";Object.defineProperty(lb,"__esModule",{value:!0});lb.validateUnion=lb.validateArray=lb.usePattern=lb.callValidateCode=lb.schemaProperties=lb.allSchemaProperties=lb.noPropertyInData=lb.propertyInData=lb.isOwnProperty=lb.hasPropFunc=lb.reportMissingProp=lb.checkMissingProp=lb.checkReportMissingProp=void 0;var X1=Hh(),xPr=B_(),cle=rte(),qOc=B_();function $Oc(e,t){let{gen:r,data:n,it:a}=e;r.if(FPr(r,n,t,a.opts.ownProperties),()=>{e.setParams({missingProperty:(0,X1._)`${t}`},!0),e.error()})}lb.checkReportMissingProp=$Oc;function e3c({gen:e,data:t,it:{opts:r}},n,a){return(0,X1.or)(...n.map(o=>(0,X1.and)(FPr(e,t,o,r.ownProperties),(0,X1._)`${a} = ${o}`)))}lb.checkMissingProp=e3c;function t3c(e,t){e.setParams({missingProperty:t},!0),e.error()}lb.reportMissingProp=t3c;function Vji(e){return e.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:(0,X1._)`Object.prototype.hasOwnProperty`})}lb.hasPropFunc=Vji;function GPr(e,t,r){return(0,X1._)`${Vji(e)}.call(${t}, ${r})`}lb.isOwnProperty=GPr;function r3c(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} !== undefined`;return n?(0,X1._)`${a} && ${GPr(e,t,r)}`:a}lb.propertyInData=r3c;function FPr(e,t,r,n){let a=(0,X1._)`${t}${(0,X1.getProperty)(r)} === undefined`;return n?(0,X1.or)(a,(0,X1.not)(GPr(e,t,r))):a}lb.noPropertyInData=FPr;function Pji(e){return e?Object.keys(e).filter(t=>t!=="__proto__"):[]}lb.allSchemaProperties=Pji;function n3c(e,t){return Pji(t).filter(r=>!(0,xPr.alwaysValidSchema)(e,t[r]))}lb.schemaProperties=n3c;function i3c({schemaCode:e,data:t,it:{gen:r,topSchemaRef:n,schemaPath:a,errorPath:o},it:l},A,f,I){let C=I?(0,X1._)`${e}, ${t}, ${n}${a}`:t,b=[[cle.default.instancePath,(0,X1.strConcat)(cle.default.instancePath,o)],[cle.default.parentData,l.parentData],[cle.default.parentDataProperty,l.parentDataProperty],[cle.default.rootData,cle.default.rootData]];l.opts.dynamicRef&&b.push([cle.default.dynamicAnchors,cle.default.dynamicAnchors]);let E=(0,X1._)`${C}, ${r.object(...b)}`;return f!==X1.nil?(0,X1._)`${A}.call(${f}, ${E})`:(0,X1._)`${A}(${E})`}lb.callValidateCode=i3c;var s3c=(0,X1._)`new RegExp`;function o3c({gen:e,it:{opts:t}},r){let n=t.unicodeRegExp?"u":"",{regExp:a}=t.code,o=a(r,n);return e.scopeValue("pattern",{key:o.toString(),ref:o,code:(0,X1._)`${a.code==="new RegExp"?s3c:(0,qOc.useFunc)(e,a)}(${r}, ${n})`})}lb.usePattern=o3c;function a3c(e){let{gen:t,data:r,keyword:n,it:a}=e,o=t.name("valid");if(a.allErrors){let A=t.let("valid",!0);return l(()=>t.assign(A,!1)),A}return t.var(o,!0),l(()=>t.break()),o;function l(A){let f=t.const("len",(0,X1._)`${r}.length`);t.forRange("i",0,f,I=>{e.subschema({keyword:n,dataProp:I,dataPropType:xPr.Type.Num},o),t.if((0,X1.not)(o),A)})}}lb.validateArray=a3c;function c3c(e){let{gen:t,schema:r,keyword:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(r.some(f=>(0,xPr.alwaysValidSchema)(a,f))&&!a.opts.unevaluated)return;let l=t.let("valid",!1),A=t.name("_valid");t.block(()=>r.forEach((f,I)=>{let C=e.subschema({keyword:n,schemaProp:I,compositeRule:!0},A);t.assign(l,(0,X1._)`${l} || ${A}`),e.mergeValidEvaluated(C,A)||t.if((0,X1.not)(l))})),e.result(l,()=>e.reset(),()=>e.error(!0))}lb.validateUnion=c3c});var Mji=H(Vj=>{"use strict";Object.defineProperty(Vj,"__esModule",{value:!0});Vj.validateKeywordUsage=Vj.validSchemaType=Vj.funcKeywordCode=Vj.macroKeywordCode=void 0;var nL=Hh(),s_e=rte(),l3c=IH(),u3c=A8e();function g3c(e,t){let{gen:r,keyword:n,schema:a,parentSchema:o,it:l}=e,A=t.macro.call(l.self,a,o,l),f=Oji(r,n,A);l.opts.validateSchema!==!1&&l.self.validateSchema(A,!0);let I=r.name("valid");e.subschema({schema:A,schemaPath:nL.nil,errSchemaPath:`${l.errSchemaPath}/${n}`,topSchemaRef:f,compositeRule:!0},I),e.pass(I,()=>e.error(!0))}Vj.macroKeywordCode=g3c;function A3c(e,t){var r;let{gen:n,keyword:a,schema:o,parentSchema:l,$data:A,it:f}=e;p3c(f,t);let I=!A&&t.compile?t.compile.call(f.self,o,l,f):t.validate,C=Oji(n,a,I),b=n.let("valid");e.block$data(b,E),e.ok((r=t.valid)!==null&&r!==void 0?r:b);function E(){if(t.errors===!1)F(),t.modifying&&Wji(e),Q(()=>e.error());else{let X=t.async?N():B();t.modifying&&Wji(e),Q(()=>d3c(e,X))}}function N(){let X=n.let("ruleErrs",null);return n.try(()=>F((0,nL._)`await `),ae=>n.assign(b,!1).if((0,nL._)`${ae} instanceof ${f.ValidationError}`,()=>n.assign(X,(0,nL._)`${ae}.errors`),()=>n.throw(ae))),X}function B(){let X=(0,nL._)`${C}.errors`;return n.assign(X,null),F(nL.nil),X}function F(X=t.async?(0,nL._)`await `:nL.nil){let ae=f.opts.passContext?s_e.default.this:s_e.default.self,ne=!("compile"in t&&!A||t.schema===!1);n.assign(b,(0,nL._)`${X}${(0,l3c.callValidateCode)(e,C,ae,ne)}`,t.modifying)}function Q(X){var ae;n.if((0,nL.not)((ae=t.valid)!==null&&ae!==void 0?ae:b),X)}}Vj.funcKeywordCode=A3c;function Wji(e){let{gen:t,data:r,it:n}=e;t.if(n.parentData,()=>t.assign(r,(0,nL._)`${n.parentData}[${n.parentDataProperty}]`))}function d3c(e,t){let{gen:r}=e;r.if((0,nL._)`Array.isArray(${t})`,()=>{r.assign(s_e.default.vErrors,(0,nL._)`${s_e.default.vErrors} === null ? ${t} : ${s_e.default.vErrors}.concat(${t})`).assign(s_e.default.errors,(0,nL._)`${s_e.default.vErrors}.length`),(0,u3c.extendErrors)(e)},()=>e.error())}function p3c({schemaEnv:e},t){if(t.async&&!e.$async)throw new Error("async keyword in sync schema")}function Oji(e,t,r){if(r===void 0)throw new Error(`keyword "${t}" failed to compile`);return e.scopeValue("keyword",typeof r=="function"?{ref:r}:{ref:r,code:(0,nL.stringify)(r)})}function f3c(e,t,r=!1){return!t.length||t.some(n=>n==="array"?Array.isArray(e):n==="object"?e&&typeof e=="object"&&!Array.isArray(e):typeof e==n||r&&typeof e>"u")}Vj.validSchemaType=f3c;function I3c({schema:e,opts:t,self:r,errSchemaPath:n},a,o){if(Array.isArray(a.keyword)?!a.keyword.includes(o):a.keyword!==o)throw new Error("ajv implementation error");let l=a.dependencies;if(l?.some(A=>!Object.prototype.hasOwnProperty.call(e,A)))throw new Error(`parent schema must have dependencies of ${o}: ${l.join(",")}`);if(a.validateSchema&&!a.validateSchema(e[o])){let f=`keyword "${o}" value is invalid at path "${n}": `+r.errorsText(a.validateSchema.errors);if(t.validateSchema==="log")r.logger.error(f);else throw new Error(f)}}Vj.validateKeywordUsage=I3c});var Yji=H(lle=>{"use strict";Object.defineProperty(lle,"__esModule",{value:!0});lle.extendSubschemaMode=lle.extendSubschemaData=lle.getSubschema=void 0;var Pj=Hh(),Hji=B_();function h3c(e,{keyword:t,schemaProp:r,schema:n,schemaPath:a,errSchemaPath:o,topSchemaRef:l}){if(t!==void 0&&n!==void 0)throw new Error('both "keyword" and "schema" passed, only one allowed');if(t!==void 0){let A=e.schema[t];return r===void 0?{schema:A,schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}`,errSchemaPath:`${e.errSchemaPath}/${t}`}:{schema:A[r],schemaPath:(0,Pj._)`${e.schemaPath}${(0,Pj.getProperty)(t)}${(0,Pj.getProperty)(r)}`,errSchemaPath:`${e.errSchemaPath}/${t}/${(0,Hji.escapeFragment)(r)}`}}if(n!==void 0){if(a===void 0||o===void 0||l===void 0)throw new Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:n,schemaPath:a,topSchemaRef:l,errSchemaPath:o}}throw new Error('either "keyword" or "schema" must be passed')}lle.getSubschema=h3c;function m3c(e,t,{dataProp:r,dataPropType:n,data:a,dataTypes:o,propertyName:l}){if(a!==void 0&&r!==void 0)throw new Error('both "data" and "dataProp" passed, only one allowed');let{gen:A}=t;if(r!==void 0){let{errorPath:I,dataPathArr:C,opts:b}=t,E=A.let("data",(0,Pj._)`${t.data}${(0,Pj.getProperty)(r)}`,!0);f(E),e.errorPath=(0,Pj.str)`${I}${(0,Hji.getErrorPath)(r,n,b.jsPropertySyntax)}`,e.parentDataProperty=(0,Pj._)`${r}`,e.dataPathArr=[...C,e.parentDataProperty]}if(a!==void 0){let I=a instanceof Pj.Name?a:A.let("data",a,!0);f(I),l!==void 0&&(e.propertyName=l)}o&&(e.dataTypes=o);function f(I){e.data=I,e.dataLevel=t.dataLevel+1,e.dataTypes=[],t.definedProperties=new Set,e.parentData=t.data,e.dataNames=[...t.dataNames,I]}}lle.extendSubschemaData=m3c;function C3c(e,{jtdDiscriminator:t,jtdMetadata:r,compositeRule:n,createErrors:a,allErrors:o}){n!==void 0&&(e.compositeRule=n),a!==void 0&&(e.createErrors=a),o!==void 0&&(e.allErrors=o),e.jtdDiscriminator=t,e.jtdMetadata=r}lle.extendSubschemaMode=C3c});var ZPr=H((wJu,Qji)=>{"use strict";Qji.exports=function e(t,r){if(t===r)return!0;if(t&&r&&typeof t=="object"&&typeof r=="object"){if(t.constructor!==r.constructor)return!1;var n,a,o;if(Array.isArray(t)){if(n=t.length,n!=r.length)return!1;for(a=n;a--!==0;)if(!e(t[a],r[a]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if(o=Object.keys(t),n=o.length,n!==Object.keys(r).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,o[a]))return!1;for(a=n;a--!==0;){var l=o[a];if(!e(t[l],r[l]))return!1}return!0}return t!==t&&r!==r}});var Jji=H((TJu,Xji)=>{"use strict";var ule=Xji.exports=function(e,t,r){typeof t=="function"&&(r=t,t={}),r=t.cb||r;var n=typeof r=="function"?r:r.pre||function(){},a=r.post||function(){};yBt(t,n,a,e,"",e)};ule.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};ule.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};ule.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};ule.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function yBt(e,t,r,n,a,o,l,A,f,I){if(n&&typeof n=="object"&&!Array.isArray(n)){t(n,a,o,l,A,f,I);for(var C in n){var b=n[C];if(Array.isArray(b)){if(C in ule.arrayKeywords)for(var E=0;E{"use strict";Object.defineProperty(kV,"__esModule",{value:!0});kV.getSchemaRefs=kV.resolveUrl=kV.normalizeId=kV._getFullPath=kV.getFullPath=kV.inlineRef=void 0;var y3c=B_(),b3c=ZPr(),E3c=Jji(),S3c=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function v3c(e,t=!0){return typeof e=="boolean"?!0:t===!0?!LPr(e):t?Uji(e)<=t:!1}kV.inlineRef=v3c;var B3c=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function LPr(e){for(let t in e){if(B3c.has(t))return!0;let r=e[t];if(Array.isArray(r)&&r.some(LPr)||typeof r=="object"&&LPr(r))return!0}return!1}function Uji(e){let t=0;for(let r in e){if(r==="$ref")return 1/0;if(t++,!S3c.has(r)&&(typeof e[r]=="object"&&(0,y3c.eachItem)(e[r],n=>t+=Uji(n)),t===1/0))return 1/0}return t}function Kji(e,t="",r){r!==!1&&(t=ake(t));let n=e.parse(t);return jji(e,n)}kV.getFullPath=Kji;function jji(e,t){return e.serialize(t).split("#")[0]+"#"}kV._getFullPath=jji;var w3c=/#\/?$/;function ake(e){return e?e.replace(w3c,""):""}kV.normalizeId=ake;function T3c(e,t,r){return r=ake(r),e.resolve(t,r)}kV.resolveUrl=T3c;var R3c=/^[a-z_][-a-z0-9._]*$/i;function N3c(e,t){if(typeof e=="boolean")return{};let{schemaId:r,uriResolver:n}=this.opts,a=ake(e[r]||t),o={"":a},l=Kji(n,a,!1),A={},f=new Set;return E3c(e,{allKeys:!0},(b,E,N,B)=>{if(B===void 0)return;let F=l+E,Q=o[B];typeof b[r]=="string"&&(Q=X.call(this,b[r])),ae.call(this,b.$anchor),ae.call(this,b.$dynamicAnchor),o[E]=Q;function X(ne){let ce=this.opts.uriResolver.resolve;if(ne=ake(Q?ce(Q,ne):ne),f.has(ne))throw C(ne);f.add(ne);let fe=this.refs[ne];return typeof fe=="string"&&(fe=this.refs[fe]),typeof fe=="object"?I(b,fe.schema,ne):ne!==ake(F)&&(ne[0]==="#"?(I(b,A[ne],ne),A[ne]=b):this.refs[ne]=F),ne}function ae(ne){if(typeof ne=="string"){if(!R3c.test(ne))throw new Error(`invalid anchor "${ne}"`);X.call(this,`#${ne}`)}}}),A;function I(b,E,N){if(E!==void 0&&!b3c(b,E))throw C(N)}function C(b){return new Error(`reference "${b}" resolves to more than one schema`)}}kV.getSchemaRefs=N3c});var h8e=H(gle=>{"use strict";Object.defineProperty(gle,"__esModule",{value:!0});gle.getData=gle.KeywordCxt=gle.validateFunctionCode=void 0;var t6i=Nji(),zji=d8e(),PPr=RPr(),bBt=d8e(),D3c=Lji(),I8e=Mji(),VPr=Yji(),Zd=Hh(),cI=rte(),k3c=p8e(),nte=B_(),f8e=A8e();function x3c(e){if(i6i(e)&&(s6i(e),n6i(e))){Z3c(e);return}r6i(e,()=>(0,t6i.topBoolOrEmptySchema)(e))}gle.validateFunctionCode=x3c;function r6i({gen:e,validateName:t,schema:r,schemaEnv:n,opts:a},o){a.code.es5?e.func(t,(0,Zd._)`${cI.default.data}, ${cI.default.valCxt}`,n.$async,()=>{e.code((0,Zd._)`"use strict"; ${qji(r,a)}`),F3c(e,a),e.code(o)}):e.func(t,(0,Zd._)`${cI.default.data}, ${G3c(a)}`,n.$async,()=>e.code(qji(r,a)).code(o))}function G3c(e){return(0,Zd._)`{${cI.default.instancePath}="", ${cI.default.parentData}, ${cI.default.parentDataProperty}, ${cI.default.rootData}=${cI.default.data}${e.dynamicRef?(0,Zd._)`, ${cI.default.dynamicAnchors}={}`:Zd.nil}}={}`}function F3c(e,t){e.if(cI.default.valCxt,()=>{e.var(cI.default.instancePath,(0,Zd._)`${cI.default.valCxt}.${cI.default.instancePath}`),e.var(cI.default.parentData,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentData}`),e.var(cI.default.parentDataProperty,(0,Zd._)`${cI.default.valCxt}.${cI.default.parentDataProperty}`),e.var(cI.default.rootData,(0,Zd._)`${cI.default.valCxt}.${cI.default.rootData}`),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`${cI.default.valCxt}.${cI.default.dynamicAnchors}`)},()=>{e.var(cI.default.instancePath,(0,Zd._)`""`),e.var(cI.default.parentData,(0,Zd._)`undefined`),e.var(cI.default.parentDataProperty,(0,Zd._)`undefined`),e.var(cI.default.rootData,cI.default.data),t.dynamicRef&&e.var(cI.default.dynamicAnchors,(0,Zd._)`{}`)})}function Z3c(e){let{schema:t,opts:r,gen:n}=e;r6i(e,()=>{r.$comment&&t.$comment&&a6i(e),O3c(e),n.let(cI.default.vErrors,null),n.let(cI.default.errors,0),r.unevaluated&&L3c(e),o6i(e),Y3c(e)})}function L3c(e){let{gen:t,validateName:r}=e;e.evaluated=t.const("evaluated",(0,Zd._)`${r}.evaluated`),t.if((0,Zd._)`${e.evaluated}.dynamicProps`,()=>t.assign((0,Zd._)`${e.evaluated}.props`,(0,Zd._)`undefined`)),t.if((0,Zd._)`${e.evaluated}.dynamicItems`,()=>t.assign((0,Zd._)`${e.evaluated}.items`,(0,Zd._)`undefined`))}function qji(e,t){let r=typeof e=="object"&&e[t.schemaId];return r&&(t.code.source||t.code.process)?(0,Zd._)`/*# sourceURL=${r} */`:Zd.nil}function V3c(e,t){if(i6i(e)&&(s6i(e),n6i(e))){P3c(e,t);return}(0,t6i.boolOrEmptySchema)(e,t)}function n6i({schema:e,self:t}){if(typeof e=="boolean")return!e;for(let r in e)if(t.RULES.all[r])return!0;return!1}function i6i(e){return typeof e.schema!="boolean"}function P3c(e,t){let{schema:r,gen:n,opts:a}=e;a.$comment&&r.$comment&&a6i(e),M3c(e),H3c(e);let o=n.const("_errs",cI.default.errors);o6i(e,o),n.var(t,(0,Zd._)`${o} === ${cI.default.errors}`)}function s6i(e){(0,nte.checkUnknownRules)(e),W3c(e)}function o6i(e,t){if(e.opts.jtd)return $ji(e,[],!1,t);let r=(0,zji.getSchemaTypes)(e.schema),n=(0,zji.coerceAndCheckDataType)(e,r);$ji(e,r,!n,t)}function W3c(e){let{schema:t,errSchemaPath:r,opts:n,self:a}=e;t.$ref&&n.ignoreKeywordsWithRef&&(0,nte.schemaHasRulesButRef)(t,a.RULES)&&a.logger.warn(`$ref: keywords ignored in schema at path "${r}"`)}function O3c(e){let{schema:t,opts:r}=e;t.default!==void 0&&r.useDefaults&&r.strictSchema&&(0,nte.checkStrictMode)(e,"default is ignored in the schema root")}function M3c(e){let t=e.schema[e.opts.schemaId];t&&(e.baseId=(0,k3c.resolveUrl)(e.opts.uriResolver,e.baseId,t))}function H3c(e){if(e.schema.$async&&!e.schemaEnv.$async)throw new Error("async schema in sync schema")}function a6i({gen:e,schemaEnv:t,schema:r,errSchemaPath:n,opts:a}){let o=r.$comment;if(a.$comment===!0)e.code((0,Zd._)`${cI.default.self}.logger.log(${o})`);else if(typeof a.$comment=="function"){let l=(0,Zd.str)`${n}/$comment`,A=e.scopeValue("root",{ref:t.root});e.code((0,Zd._)`${cI.default.self}.opts.$comment(${o}, ${l}, ${A}.schema)`)}}function Y3c(e){let{gen:t,schemaEnv:r,validateName:n,ValidationError:a,opts:o}=e;r.$async?t.if((0,Zd._)`${cI.default.errors} === 0`,()=>t.return(cI.default.data),()=>t.throw((0,Zd._)`new ${a}(${cI.default.vErrors})`)):(t.assign((0,Zd._)`${n}.errors`,cI.default.vErrors),o.unevaluated&&Q3c(e),t.return((0,Zd._)`${cI.default.errors} === 0`))}function Q3c({gen:e,evaluated:t,props:r,items:n}){r instanceof Zd.Name&&e.assign((0,Zd._)`${t}.props`,r),n instanceof Zd.Name&&e.assign((0,Zd._)`${t}.items`,n)}function $ji(e,t,r,n){let{gen:a,schema:o,data:l,allErrors:A,opts:f,self:I}=e,{RULES:C}=I;if(o.$ref&&(f.ignoreKeywordsWithRef||!(0,nte.schemaHasRulesButRef)(o,C))){a.block(()=>l6i(e,"$ref",C.all.$ref.definition));return}f.jtd||X3c(e,t),a.block(()=>{for(let E of C.rules)b(E);b(C.post)});function b(E){(0,PPr.shouldUseGroup)(o,E)&&(E.type?(a.if((0,bBt.checkDataType)(E.type,l,f.strictNumbers)),e6i(e,E),t.length===1&&t[0]===E.type&&r&&(a.else(),(0,bBt.reportTypeError)(e)),a.endIf()):e6i(e,E),A||a.if((0,Zd._)`${cI.default.errors} === ${n||0}`))}}function e6i(e,t){let{gen:r,schema:n,opts:{useDefaults:a}}=e;a&&(0,D3c.assignDefaults)(e,t.type),r.block(()=>{for(let o of t.rules)(0,PPr.shouldUseRule)(n,o)&&l6i(e,o.keyword,o.definition,t.type)})}function X3c(e,t){e.schemaEnv.meta||!e.opts.strictTypes||(J3c(e,t),e.opts.allowUnionTypes||U3c(e,t),K3c(e,e.dataTypes))}function J3c(e,t){if(t.length){if(!e.dataTypes.length){e.dataTypes=t;return}t.forEach(r=>{c6i(e.dataTypes,r)||WPr(e,`type "${r}" not allowed by context "${e.dataTypes.join(",")}"`)}),z3c(e,t)}}function U3c(e,t){t.length>1&&!(t.length===2&&t.includes("null"))&&WPr(e,"use allowUnionTypes to allow union type keyword")}function K3c(e,t){let r=e.self.RULES.all;for(let n in r){let a=r[n];if(typeof a=="object"&&(0,PPr.shouldUseRule)(e.schema,a)){let{type:o}=a.definition;o.length&&!o.some(l=>j3c(t,l))&&WPr(e,`missing type "${o.join(",")}" for keyword "${n}"`)}}}function j3c(e,t){return e.includes(t)||t==="number"&&e.includes("integer")}function c6i(e,t){return e.includes(t)||t==="integer"&&e.includes("number")}function z3c(e,t){let r=[];for(let n of e.dataTypes)c6i(t,n)?r.push(n):t.includes("integer")&&n==="number"&&r.push("integer");e.dataTypes=r}function WPr(e,t){let r=e.schemaEnv.baseId+e.errSchemaPath;t+=` at "${r}" (strictTypes)`,(0,nte.checkStrictMode)(e,t,e.opts.strictTypes)}var EBt=class{constructor(t,r,n){if((0,I8e.validateKeywordUsage)(t,r,n),this.gen=t.gen,this.allErrors=t.allErrors,this.keyword=n,this.data=t.data,this.schema=t.schema[n],this.$data=r.$data&&t.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,nte.schemaRefOrVal)(t,this.schema,n,this.$data),this.schemaType=r.schemaType,this.parentSchema=t.schema,this.params={},this.it=t,this.def=r,this.$data)this.schemaCode=t.gen.const("vSchema",u6i(this.$data,t));else if(this.schemaCode=this.schemaValue,!(0,I8e.validSchemaType)(this.schema,r.schemaType,r.allowUndefined))throw new Error(`${n} value must be ${JSON.stringify(r.schemaType)}`);("code"in r?r.trackErrors:r.errors!==!1)&&(this.errsCount=t.gen.const("_errs",cI.default.errors))}result(t,r,n){this.failResult((0,Zd.not)(t),r,n)}failResult(t,r,n){this.gen.if(t),n?n():this.error(),r?(this.gen.else(),r(),this.allErrors&&this.gen.endIf()):this.allErrors?this.gen.endIf():this.gen.else()}pass(t,r){this.failResult((0,Zd.not)(t),void 0,r)}fail(t){if(t===void 0){this.error(),this.allErrors||this.gen.if(!1);return}this.gen.if(t),this.error(),this.allErrors?this.gen.endIf():this.gen.else()}fail$data(t){if(!this.$data)return this.fail(t);let{schemaCode:r}=this;this.fail((0,Zd._)`${r} !== undefined && (${(0,Zd.or)(this.invalid$data(),t)})`)}error(t,r,n){if(r){this.setParams(r),this._error(t,n),this.setParams({});return}this._error(t,n)}_error(t,r){(t?f8e.reportExtraError:f8e.reportError)(this,this.def.error,r)}$dataError(){(0,f8e.reportError)(this,this.def.$dataError||f8e.keyword$DataError)}reset(){if(this.errsCount===void 0)throw new Error('add "trackErrors" to keyword definition');(0,f8e.resetErrorsCount)(this.gen,this.errsCount)}ok(t){this.allErrors||this.gen.if(t)}setParams(t,r){r?Object.assign(this.params,t):this.params=t}block$data(t,r,n=Zd.nil){this.gen.block(()=>{this.check$data(t,n),r()})}check$data(t=Zd.nil,r=Zd.nil){if(!this.$data)return;let{gen:n,schemaCode:a,schemaType:o,def:l}=this;n.if((0,Zd.or)((0,Zd._)`${a} === undefined`,r)),t!==Zd.nil&&n.assign(t,!0),(o.length||l.validateSchema)&&(n.elseIf(this.invalid$data()),this.$dataError(),t!==Zd.nil&&n.assign(t,!1)),n.else()}invalid$data(){let{gen:t,schemaCode:r,schemaType:n,def:a,it:o}=this;return(0,Zd.or)(l(),A());function l(){if(n.length){if(!(r instanceof Zd.Name))throw new Error("ajv implementation error");let f=Array.isArray(n)?n:[n];return(0,Zd._)`${(0,bBt.checkDataTypes)(f,r,o.opts.strictNumbers,bBt.DataType.Wrong)}`}return Zd.nil}function A(){if(a.validateSchema){let f=t.scopeValue("validate$data",{ref:a.validateSchema});return(0,Zd._)`!${f}(${r})`}return Zd.nil}}subschema(t,r){let n=(0,VPr.getSubschema)(this.it,t);(0,VPr.extendSubschemaData)(n,this.it,t),(0,VPr.extendSubschemaMode)(n,t);let a={...this.it,...n,items:void 0,props:void 0};return V3c(a,r),a}mergeEvaluated(t,r){let{it:n,gen:a}=this;n.opts.unevaluated&&(n.props!==!0&&t.props!==void 0&&(n.props=nte.mergeEvaluated.props(a,t.props,n.props,r)),n.items!==!0&&t.items!==void 0&&(n.items=nte.mergeEvaluated.items(a,t.items,n.items,r)))}mergeValidEvaluated(t,r){let{it:n,gen:a}=this;if(n.opts.unevaluated&&(n.props!==!0||n.items!==!0))return a.if(r,()=>this.mergeEvaluated(t,Zd.Name)),!0}};gle.KeywordCxt=EBt;function l6i(e,t,r,n){let a=new EBt(e,r,t);"code"in r?r.code(a,n):a.$data&&r.validate?(0,I8e.funcKeywordCode)(a,r):"macro"in r?(0,I8e.macroKeywordCode)(a,r):(r.compile||r.validate)&&(0,I8e.funcKeywordCode)(a,r)}var q3c=/^\/(?:[^~]|~0|~1)*$/,$3c=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function u6i(e,{dataLevel:t,dataNames:r,dataPathArr:n}){let a,o;if(e==="")return cI.default.rootData;if(e[0]==="/"){if(!q3c.test(e))throw new Error(`Invalid JSON-pointer: ${e}`);a=e,o=cI.default.rootData}else{let I=$3c.exec(e);if(!I)throw new Error(`Invalid JSON-pointer: ${e}`);let C=+I[1];if(a=I[2],a==="#"){if(C>=t)throw new Error(f("property/index",C));return n[t-C]}if(C>t)throw new Error(f("data",C));if(o=r[t-C],!a)return o}let l=o,A=a.split("/");for(let I of A)I&&(o=(0,Zd._)`${o}${(0,Zd.getProperty)((0,nte.unescapeJsonPointer)(I))}`,l=(0,Zd._)`${l} && ${o}`);return l;function f(I,C){return`Cannot access ${I} ${C} levels up, current level is ${t}`}}gle.getData=u6i});var SBt=H(MPr=>{"use strict";Object.defineProperty(MPr,"__esModule",{value:!0});var OPr=class extends Error{constructor(t){super("validation failed"),this.errors=t,this.ajv=this.validation=!0}};MPr.default=OPr});var m8e=H(QPr=>{"use strict";Object.defineProperty(QPr,"__esModule",{value:!0});var HPr=p8e(),YPr=class extends Error{constructor(t,r,n,a){super(a||`can't resolve reference ${n} from id ${r}`),this.missingRef=(0,HPr.resolveUrl)(t,r,n),this.missingSchema=(0,HPr.normalizeId)((0,HPr.getFullPath)(t,this.missingRef))}};QPr.default=YPr});var BBt=H(hH=>{"use strict";Object.defineProperty(hH,"__esModule",{value:!0});hH.resolveSchema=hH.getCompilingSchema=hH.resolveRef=hH.compileSchema=hH.SchemaEnv=void 0;var w4=Hh(),e5c=SBt(),o_e=rte(),T4=p8e(),g6i=B_(),t5c=h8e(),cke=class{constructor(t){var r;this.refs={},this.dynamicAnchors={};let n;typeof t.schema=="object"&&(n=t.schema),this.schema=t.schema,this.schemaId=t.schemaId,this.root=t.root||this,this.baseId=(r=t.baseId)!==null&&r!==void 0?r:(0,T4.normalizeId)(n?.[t.schemaId||"$id"]),this.schemaPath=t.schemaPath,this.localRefs=t.localRefs,this.meta=t.meta,this.$async=n?.$async,this.refs={}}};hH.SchemaEnv=cke;function JPr(e){let t=A6i.call(this,e);if(t)return t;let r=(0,T4.getFullPath)(this.opts.uriResolver,e.root.baseId),{es5:n,lines:a}=this.opts.code,{ownProperties:o}=this.opts,l=new w4.CodeGen(this.scope,{es5:n,lines:a,ownProperties:o}),A;e.$async&&(A=l.scopeValue("Error",{ref:e5c.default,code:(0,w4._)`require("ajv/dist/runtime/validation_error").default`}));let f=l.scopeName("validate");e.validateName=f;let I={gen:l,allErrors:this.opts.allErrors,data:o_e.default.data,parentData:o_e.default.parentData,parentDataProperty:o_e.default.parentDataProperty,dataNames:[o_e.default.data],dataPathArr:[w4.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:l.scopeValue("schema",this.opts.code.source===!0?{ref:e.schema,code:(0,w4.stringify)(e.schema)}:{ref:e.schema}),validateName:f,ValidationError:A,schema:e.schema,schemaEnv:e,rootId:r,baseId:e.baseId||r,schemaPath:w4.nil,errSchemaPath:e.schemaPath||(this.opts.jtd?"":"#"),errorPath:(0,w4._)`""`,opts:this.opts,self:this},C;try{this._compilations.add(e),(0,t5c.validateFunctionCode)(I),l.optimize(this.opts.code.optimize);let b=l.toString();C=`${l.scopeRefs(o_e.default.scope)}return ${b}`,this.opts.code.process&&(C=this.opts.code.process(C,e));let N=new Function(`${o_e.default.self}`,`${o_e.default.scope}`,C)(this,this.scope.get());if(this.scope.value(f,{ref:N}),N.errors=null,N.schema=e.schema,N.schemaEnv=e,e.$async&&(N.$async=!0),this.opts.code.source===!0&&(N.source={validateName:f,validateCode:b,scopeValues:l._values}),this.opts.unevaluated){let{props:B,items:F}=I;N.evaluated={props:B instanceof w4.Name?void 0:B,items:F instanceof w4.Name?void 0:F,dynamicProps:B instanceof w4.Name,dynamicItems:F instanceof w4.Name},N.source&&(N.source.evaluated=(0,w4.stringify)(N.evaluated))}return e.validate=N,e}catch(b){throw delete e.validate,delete e.validateName,C&&this.logger.error("Error compiling schema, function code:",C),b}finally{this._compilations.delete(e)}}hH.compileSchema=JPr;function r5c(e,t,r){var n;r=(0,T4.resolveUrl)(this.opts.uriResolver,t,r);let a=e.refs[r];if(a)return a;let o=s5c.call(this,e,r);if(o===void 0){let l=(n=e.localRefs)===null||n===void 0?void 0:n[r],{schemaId:A}=this.opts;l&&(o=new cke({schema:l,schemaId:A,root:e,baseId:t}))}if(o!==void 0)return e.refs[r]=n5c.call(this,o)}hH.resolveRef=r5c;function n5c(e){return(0,T4.inlineRef)(e.schema,this.opts.inlineRefs)?e.schema:e.validate?e:JPr.call(this,e)}function A6i(e){for(let t of this._compilations)if(i5c(t,e))return t}hH.getCompilingSchema=A6i;function i5c(e,t){return e.schema===t.schema&&e.root===t.root&&e.baseId===t.baseId}function s5c(e,t){let r;for(;typeof(r=this.refs[t])=="string";)t=r;return r||this.schemas[t]||vBt.call(this,e,t)}function vBt(e,t){let r=this.opts.uriResolver.parse(t),n=(0,T4._getFullPath)(this.opts.uriResolver,r),a=(0,T4.getFullPath)(this.opts.uriResolver,e.baseId,void 0);if(Object.keys(e.schema).length>0&&n===a)return XPr.call(this,r,e);let o=(0,T4.normalizeId)(n),l=this.refs[o]||this.schemas[o];if(typeof l=="string"){let A=vBt.call(this,e,l);return typeof A?.schema!="object"?void 0:XPr.call(this,r,A)}if(typeof l?.schema=="object"){if(l.validate||JPr.call(this,l),o===(0,T4.normalizeId)(t)){let{schema:A}=l,{schemaId:f}=this.opts,I=A[f];return I&&(a=(0,T4.resolveUrl)(this.opts.uriResolver,a,I)),new cke({schema:A,schemaId:f,root:e,baseId:a})}return XPr.call(this,r,l)}}hH.resolveSchema=vBt;var o5c=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function XPr(e,{baseId:t,schema:r,root:n}){var a;if(((a=e.fragment)===null||a===void 0?void 0:a[0])!=="/")return;for(let A of e.fragment.slice(1).split("/")){if(typeof r=="boolean")return;let f=r[(0,g6i.unescapeFragment)(A)];if(f===void 0)return;r=f;let I=typeof r=="object"&&r[this.opts.schemaId];!o5c.has(A)&&I&&(t=(0,T4.resolveUrl)(this.opts.uriResolver,t,I))}let o;if(typeof r!="boolean"&&r.$ref&&!(0,g6i.schemaHasRulesButRef)(r,this.RULES)){let A=(0,T4.resolveUrl)(this.opts.uriResolver,t,r.$ref);o=vBt.call(this,n,A)}let{schemaId:l}=this.opts;if(o=o||new cke({schema:r,schemaId:l,root:n,baseId:t}),o.schema!==o.root.schema)return o}});var d6i=H((GJu,a5c)=>{a5c.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var f6i=H((FJu,p6i)=>{"use strict";var c5c={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};p6i.exports={HEX:c5c}});var E6i=H((ZJu,b6i)=>{"use strict";var{HEX:l5c}=f6i();function C6i(e){if(y6i(e,".")<3)return{host:e,isIPV4:!1};let t=e.match(/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/u)||[],[r]=t;return r?{host:g5c(r,"."),isIPV4:!0}:{host:e,isIPV4:!1}}function UPr(e,t=!1){let r="",n=!0;for(let a of e){if(l5c[a]===void 0)return;a!=="0"&&n===!0&&(n=!1),n||(r+=a)}return t&&r.length===0&&(r="0"),r}function u5c(e){let t=0,r={error:!1,address:"",zone:""},n=[],a=[],o=!1,l=!1,A=!1;function f(){if(a.length){if(o===!1){let I=UPr(a);if(I!==void 0)n.push(I);else return r.error=!0,!1}a.length=0}return!0}for(let I=0;I7){r.error=!0;break}I-1>=0&&e[I-1]===":"&&(l=!0);continue}else if(C==="%"){if(!f())break;o=!0}else{a.push(C);continue}}return a.length&&(o?r.zone=a.join(""):A?n.push(a.join("")):n.push(UPr(a))),r.address=n.join(""),r}function _6i(e,t={}){if(y6i(e,":")<2)return{host:e,isIPV6:!1};let r=u5c(e);if(r.error)return{host:e,isIPV6:!1};{let n=r.address,a=r.address;return r.zone&&(n+="%"+r.zone,a+="%25"+r.zone),{host:n,escapedHost:a,isIPV6:!0}}}function g5c(e,t){let r="",n=!0,a=e.length;for(let o=0;o{"use strict";var I5c=/^[\da-f]{8}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{4}\b-[\da-f]{12}$/iu,h5c=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu;function S6i(e){return typeof e.secure=="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}function v6i(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e}function B6i(e){let t=String(e.scheme).toLowerCase()==="https";return(e.port===(t?443:80)||e.port==="")&&(e.port=void 0),e.path||(e.path="/"),e}function m5c(e){return e.secure=S6i(e),e.resourceName=(e.path||"/")+(e.query?"?"+e.query:""),e.path=void 0,e.query=void 0,e}function C5c(e){if((e.port===(S6i(e)?443:80)||e.port==="")&&(e.port=void 0),typeof e.secure=="boolean"&&(e.scheme=e.secure?"wss":"ws",e.secure=void 0),e.resourceName){let[t,r]=e.resourceName.split("?");e.path=t&&t!=="/"?t:void 0,e.query=r,e.resourceName=void 0}return e.fragment=void 0,e}function _5c(e,t){if(!e.path)return e.error="URN can not be parsed",e;let r=e.path.match(h5c);if(r){let n=t.scheme||e.scheme||"urn";e.nid=r[1].toLowerCase(),e.nss=r[2];let a=`${n}:${t.nid||e.nid}`,o=KPr[a];e.path=void 0,o&&(e=o.parse(e,t))}else e.error=e.error||"URN can not be parsed.";return e}function y5c(e,t){let r=t.scheme||e.scheme||"urn",n=e.nid.toLowerCase(),a=`${r}:${t.nid||n}`,o=KPr[a];o&&(e=o.serialize(e,t));let l=e,A=e.nss;return l.path=`${n||t.nid}:${A}`,t.skipEscape=!0,l}function b5c(e,t){let r=e;return r.uuid=r.nss,r.nss=void 0,!t.tolerant&&(!r.uuid||!I5c.test(r.uuid))&&(r.error=r.error||"UUID is not valid."),r}function E5c(e){let t=e;return t.nss=(e.uuid||"").toLowerCase(),t}var w6i={scheme:"http",domainHost:!0,parse:v6i,serialize:B6i},S5c={scheme:"https",domainHost:w6i.domainHost,parse:v6i,serialize:B6i},wBt={scheme:"ws",domainHost:!0,parse:m5c,serialize:C5c},v5c={scheme:"wss",domainHost:wBt.domainHost,parse:wBt.parse,serialize:wBt.serialize},B5c={scheme:"urn",parse:_5c,serialize:y5c,skipNormalize:!0},w5c={scheme:"urn:uuid",parse:b5c,serialize:E5c,skipNormalize:!0},KPr={http:w6i,https:S5c,ws:wBt,wss:v5c,urn:B5c,"urn:uuid":w5c};T6i.exports=KPr});var D6i=H((VJu,RBt)=>{"use strict";var{normalizeIPv6:T5c,normalizeIPv4:R5c,removeDotSegments:C8e,recomposeAuthority:N5c,normalizeComponentEncoding:TBt}=E6i(),jPr=R6i();function D5c(e,t){return typeof e=="string"?e=Wj(ite(e,t),t):typeof e=="object"&&(e=ite(Wj(e,t),t)),e}function k5c(e,t,r){let n=Object.assign({scheme:"null"},r),a=N6i(ite(e,n),ite(t,n),n,!0);return Wj(a,{...n,skipEscape:!0})}function N6i(e,t,r,n){let a={};return n||(e=ite(Wj(e,r),r),t=ite(Wj(t,r),r)),r=r||{},!r.tolerant&&t.scheme?(a.scheme=t.scheme,a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.userinfo!==void 0||t.host!==void 0||t.port!==void 0?(a.userinfo=t.userinfo,a.host=t.host,a.port=t.port,a.path=C8e(t.path||""),a.query=t.query):(t.path?(t.path.charAt(0)==="/"?a.path=C8e(t.path):((e.userinfo!==void 0||e.host!==void 0||e.port!==void 0)&&!e.path?a.path="/"+t.path:e.path?a.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+t.path:a.path=t.path,a.path=C8e(a.path)),a.query=t.query):(a.path=e.path,t.query!==void 0?a.query=t.query:a.query=e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=t.fragment,a}function x5c(e,t,r){return typeof e=="string"?(e=unescape(e),e=Wj(TBt(ite(e,r),!0),{...r,skipEscape:!0})):typeof e=="object"&&(e=Wj(TBt(e,!0),{...r,skipEscape:!0})),typeof t=="string"?(t=unescape(t),t=Wj(TBt(ite(t,r),!0),{...r,skipEscape:!0})):typeof t=="object"&&(t=Wj(TBt(t,!0),{...r,skipEscape:!0})),e.toLowerCase()===t.toLowerCase()}function Wj(e,t){let r={host:e.host,scheme:e.scheme,userinfo:e.userinfo,port:e.port,path:e.path,query:e.query,nid:e.nid,nss:e.nss,uuid:e.uuid,fragment:e.fragment,reference:e.reference,resourceName:e.resourceName,secure:e.secure,error:""},n=Object.assign({},t),a=[],o=jPr[(n.scheme||r.scheme||"").toLowerCase()];o&&o.serialize&&o.serialize(r,n),r.path!==void 0&&(n.skipEscape?r.path=unescape(r.path):(r.path=escape(r.path),r.scheme!==void 0&&(r.path=r.path.split("%3A").join(":")))),n.reference!=="suffix"&&r.scheme&&a.push(r.scheme,":");let l=N5c(r,n);if(l!==void 0&&(n.reference!=="suffix"&&a.push("//"),a.push(l),r.path&&r.path.charAt(0)!=="/"&&a.push("/")),r.path!==void 0){let A=r.path;!n.absolutePath&&(!o||!o.absolutePath)&&(A=C8e(A)),l===void 0&&(A=A.replace(/^\/\//u,"/%2F")),a.push(A)}return r.query!==void 0&&a.push("?",r.query),r.fragment!==void 0&&a.push("#",r.fragment),a.join("")}var G5c=Array.from({length:127},(e,t)=>/[^!"$&'()*+,\-.;=_`a-z{}~]/u.test(String.fromCharCode(t)));function F5c(e){let t=0;for(let r=0,n=e.length;r126||G5c[t])return!0;return!1}var Z5c=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function ite(e,t){let r=Object.assign({},t),n={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},a=e.indexOf("%")!==-1,o=!1;r.reference==="suffix"&&(e=(r.scheme?r.scheme+":":"")+"//"+e);let l=e.match(Z5c);if(l){if(n.scheme=l[1],n.userinfo=l[3],n.host=l[4],n.port=parseInt(l[5],10),n.path=l[6]||"",n.query=l[7],n.fragment=l[8],isNaN(n.port)&&(n.port=l[5]),n.host){let f=R5c(n.host);if(f.isIPV4===!1){let I=T5c(f.host,{isIPV4:!1});n.host=I.host.toLowerCase(),o=I.isIPV6}else n.host=f.host,o=!0}n.scheme===void 0&&n.userinfo===void 0&&n.host===void 0&&n.port===void 0&&!n.path&&n.query===void 0?n.reference="same-document":n.scheme===void 0?n.reference="relative":n.fragment===void 0?n.reference="absolute":n.reference="uri",r.reference&&r.reference!=="suffix"&&r.reference!==n.reference&&(n.error=n.error||"URI is not a "+r.reference+" reference.");let A=jPr[(r.scheme||n.scheme||"").toLowerCase()];if(!r.unicodeSupport&&(!A||!A.unicodeSupport)&&n.host&&(r.domainHost||A&&A.domainHost)&&o===!1&&F5c(n.host))try{n.host=URL.domainToASCII(n.host.toLowerCase())}catch(f){n.error=n.error||"Host's domain name can not be converted to ASCII: "+f}(!A||A&&!A.skipNormalize)&&(a&&n.scheme!==void 0&&(n.scheme=unescape(n.scheme)),a&&n.host!==void 0&&(n.host=unescape(n.host)),n.path!==void 0&&n.path.length&&(n.path=escape(unescape(n.path))),n.fragment!==void 0&&n.fragment.length&&(n.fragment=encodeURI(decodeURIComponent(n.fragment)))),A&&A.parse&&A.parse(n,r)}else n.error=n.error||"URI can not be parsed.";return n}var zPr={SCHEMES:jPr,normalize:D5c,resolve:k5c,resolveComponents:N6i,equal:x5c,serialize:Wj,parse:ite};RBt.exports=zPr;RBt.exports.default=zPr;RBt.exports.fastUri=zPr});var x6i=H(qPr=>{"use strict";Object.defineProperty(qPr,"__esModule",{value:!0});var k6i=D6i();k6i.code='require("ajv/dist/runtime/uri").default';qPr.default=k6i});var O6i=H(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.CodeGen=ex.Name=ex.nil=ex.stringify=ex.str=ex._=ex.KeywordCxt=void 0;var L5c=h8e();Object.defineProperty(ex,"KeywordCxt",{enumerable:!0,get:function(){return L5c.KeywordCxt}});var lke=Hh();Object.defineProperty(ex,"_",{enumerable:!0,get:function(){return lke._}});Object.defineProperty(ex,"str",{enumerable:!0,get:function(){return lke.str}});Object.defineProperty(ex,"stringify",{enumerable:!0,get:function(){return lke.stringify}});Object.defineProperty(ex,"nil",{enumerable:!0,get:function(){return lke.nil}});Object.defineProperty(ex,"Name",{enumerable:!0,get:function(){return lke.Name}});Object.defineProperty(ex,"CodeGen",{enumerable:!0,get:function(){return lke.CodeGen}});var V5c=SBt(),V6i=m8e(),P5c=TPr(),_8e=BBt(),W5c=Hh(),y8e=p8e(),NBt=d8e(),eWr=B_(),G6i=d6i(),O5c=x6i(),P6i=(e,t)=>new RegExp(e,t);P6i.code="new RegExp";var M5c=["removeAdditional","useDefaults","coerceTypes"],H5c=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),Y5c={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},Q5c={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},F6i=200;function X5c(e){var t,r,n,a,o,l,A,f,I,C,b,E,N,B,F,Q,X,ae,ne,ce,fe,ue,de,be,Se;let De=e.strict,k=(t=e.code)===null||t===void 0?void 0:t.optimize,et=k===!0||k===void 0?1:k||0,ct=(n=(r=e.code)===null||r===void 0?void 0:r.regExp)!==null&&n!==void 0?n:P6i,Me=(a=e.uriResolver)!==null&&a!==void 0?a:O5c.default;return{strictSchema:(l=(o=e.strictSchema)!==null&&o!==void 0?o:De)!==null&&l!==void 0?l:!0,strictNumbers:(f=(A=e.strictNumbers)!==null&&A!==void 0?A:De)!==null&&f!==void 0?f:!0,strictTypes:(C=(I=e.strictTypes)!==null&&I!==void 0?I:De)!==null&&C!==void 0?C:"log",strictTuples:(E=(b=e.strictTuples)!==null&&b!==void 0?b:De)!==null&&E!==void 0?E:"log",strictRequired:(B=(N=e.strictRequired)!==null&&N!==void 0?N:De)!==null&&B!==void 0?B:!1,code:e.code?{...e.code,optimize:et,regExp:ct}:{optimize:et,regExp:ct},loopRequired:(F=e.loopRequired)!==null&&F!==void 0?F:F6i,loopEnum:(Q=e.loopEnum)!==null&&Q!==void 0?Q:F6i,meta:(X=e.meta)!==null&&X!==void 0?X:!0,messages:(ae=e.messages)!==null&&ae!==void 0?ae:!0,inlineRefs:(ne=e.inlineRefs)!==null&&ne!==void 0?ne:!0,schemaId:(ce=e.schemaId)!==null&&ce!==void 0?ce:"$id",addUsedSchema:(fe=e.addUsedSchema)!==null&&fe!==void 0?fe:!0,validateSchema:(ue=e.validateSchema)!==null&&ue!==void 0?ue:!0,validateFormats:(de=e.validateFormats)!==null&&de!==void 0?de:!0,unicodeRegExp:(be=e.unicodeRegExp)!==null&&be!==void 0?be:!0,int32range:(Se=e.int32range)!==null&&Se!==void 0?Se:!0,uriResolver:Me}}var b8e=class{constructor(t={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,t=this.opts={...t,...X5c(t)};let{es5:r,lines:n}=this.opts.code;this.scope=new W5c.ValueScope({scope:{},prefixes:H5c,es5:r,lines:n}),this.logger=q5c(t.logger);let a=t.validateFormats;t.validateFormats=!1,this.RULES=(0,P5c.getRules)(),Z6i.call(this,Y5c,t,"NOT SUPPORTED"),Z6i.call(this,Q5c,t,"DEPRECATED","warn"),this._metaOpts=j5c.call(this),t.formats&&U5c.call(this),this._addVocabularies(),this._addDefaultMetaSchema(),t.keywords&&K5c.call(this,t.keywords),typeof t.meta=="object"&&this.addMetaSchema(t.meta),J5c.call(this),t.validateFormats=a}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:t,meta:r,schemaId:n}=this.opts,a=G6i;n==="id"&&(a={...G6i},a.id=a.$id,delete a.$id),r&&t&&this.addMetaSchema(a,a[n],!1)}defaultMeta(){let{meta:t,schemaId:r}=this.opts;return this.opts.defaultMeta=typeof t=="object"?t[r]||t:void 0}validate(t,r){let n;if(typeof t=="string"){if(n=this.getSchema(t),!n)throw new Error(`no schema with key or ref "${t}"`)}else n=this.compile(t);let a=n(r);return"$async"in n||(this.errors=n.errors),a}compile(t,r){let n=this._addSchema(t,r);return n.validate||this._compileSchemaEnv(n)}compileAsync(t,r){if(typeof this.opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");let{loadSchema:n}=this.opts;return a.call(this,t,r);async function a(C,b){await o.call(this,C.$schema);let E=this._addSchema(C,b);return E.validate||l.call(this,E)}async function o(C){C&&!this.getSchema(C)&&await a.call(this,{$ref:C},!0)}async function l(C){try{return this._compileSchemaEnv(C)}catch(b){if(!(b instanceof V6i.default))throw b;return A.call(this,b),await f.call(this,b.missingSchema),l.call(this,C)}}function A({missingSchema:C,missingRef:b}){if(this.refs[C])throw new Error(`AnySchema ${C} is loaded but ${b} cannot be resolved`)}async function f(C){let b=await I.call(this,C);this.refs[C]||await o.call(this,b.$schema),this.refs[C]||this.addSchema(b,C,r)}async function I(C){let b=this._loading[C];if(b)return b;try{return await(this._loading[C]=n(C))}finally{delete this._loading[C]}}}addSchema(t,r,n,a=this.opts.validateSchema){if(Array.isArray(t)){for(let l of t)this.addSchema(l,void 0,n,a);return this}let o;if(typeof t=="object"){let{schemaId:l}=this.opts;if(o=t[l],o!==void 0&&typeof o!="string")throw new Error(`schema ${l} must be string`)}return r=(0,y8e.normalizeId)(r||o),this._checkUnique(r),this.schemas[r]=this._addSchema(t,n,r,a,!0),this}addMetaSchema(t,r,n=this.opts.validateSchema){return this.addSchema(t,r,!0,n),this}validateSchema(t,r){if(typeof t=="boolean")return!0;let n;if(n=t.$schema,n!==void 0&&typeof n!="string")throw new Error("$schema must be a string");if(n=n||this.opts.defaultMeta||this.defaultMeta(),!n)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let a=this.validate(n,t);if(!a&&r){let o="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(o);else throw new Error(o)}return a}getSchema(t){let r;for(;typeof(r=L6i.call(this,t))=="string";)t=r;if(r===void 0){let{schemaId:n}=this.opts,a=new _8e.SchemaEnv({schema:{},schemaId:n});if(r=_8e.resolveSchema.call(this,a,t),!r)return;this.refs[t]=r}return r.validate||this._compileSchemaEnv(r)}removeSchema(t){if(t instanceof RegExp)return this._removeAllSchemas(this.schemas,t),this._removeAllSchemas(this.refs,t),this;switch(typeof t){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let r=L6i.call(this,t);return typeof r=="object"&&this._cache.delete(r.schema),delete this.schemas[t],delete this.refs[t],this}case"object":{let r=t;this._cache.delete(r);let n=t[this.opts.schemaId];return n&&(n=(0,y8e.normalizeId)(n),delete this.schemas[n],delete this.refs[n]),this}default:throw new Error("ajv.removeSchema: invalid parameter")}}addVocabulary(t){for(let r of t)this.addKeyword(r);return this}addKeyword(t,r){let n;if(typeof t=="string")n=t,typeof r=="object"&&(this.logger.warn("these parameters are deprecated, see docs for addKeyword"),r.keyword=n);else if(typeof t=="object"&&r===void 0){if(r=t,n=r.keyword,Array.isArray(n)&&!n.length)throw new Error("addKeywords: keyword must be string or non-empty array")}else throw new Error("invalid addKeywords parameters");if(eMc.call(this,n,r),!r)return(0,eWr.eachItem)(n,o=>$Pr.call(this,o)),this;rMc.call(this,r);let a={...r,type:(0,NBt.getJSONTypes)(r.type),schemaType:(0,NBt.getJSONTypes)(r.schemaType)};return(0,eWr.eachItem)(n,a.type.length===0?o=>$Pr.call(this,o,a):o=>a.type.forEach(l=>$Pr.call(this,o,a,l))),this}getKeyword(t){let r=this.RULES.all[t];return typeof r=="object"?r.definition:!!r}removeKeyword(t){let{RULES:r}=this;delete r.keywords[t],delete r.all[t];for(let n of r.rules){let a=n.rules.findIndex(o=>o.keyword===t);a>=0&&n.rules.splice(a,1)}return this}addFormat(t,r){return typeof r=="string"&&(r=new RegExp(r)),this.formats[t]=r,this}errorsText(t=this.errors,{separator:r=", ",dataVar:n="data"}={}){return!t||t.length===0?"No errors":t.map(a=>`${n}${a.instancePath} ${a.message}`).reduce((a,o)=>a+r+o)}$dataMetaSchema(t,r){let n=this.RULES.all;t=JSON.parse(JSON.stringify(t));for(let a of r){let o=a.split("/").slice(1),l=t;for(let A of o)l=l[A];for(let A in n){let f=n[A];if(typeof f!="object")continue;let{$data:I}=f.definition,C=l[A];I&&C&&(l[A]=W6i(C))}}return t}_removeAllSchemas(t,r){for(let n in t){let a=t[n];(!r||r.test(n))&&(typeof a=="string"?delete t[n]:a&&!a.meta&&(this._cache.delete(a.schema),delete t[n]))}}_addSchema(t,r,n,a=this.opts.validateSchema,o=this.opts.addUsedSchema){let l,{schemaId:A}=this.opts;if(typeof t=="object")l=t[A];else{if(this.opts.jtd)throw new Error("schema must be object");if(typeof t!="boolean")throw new Error("schema must be object or boolean")}let f=this._cache.get(t);if(f!==void 0)return f;n=(0,y8e.normalizeId)(l||n);let I=y8e.getSchemaRefs.call(this,t,n);return f=new _8e.SchemaEnv({schema:t,schemaId:A,meta:r,baseId:n,localRefs:I}),this._cache.set(f.schema,f),o&&!n.startsWith("#")&&(n&&this._checkUnique(n),this.refs[n]=f),a&&this.validateSchema(t,!0),f}_checkUnique(t){if(this.schemas[t]||this.refs[t])throw new Error(`schema with key or id "${t}" already exists`)}_compileSchemaEnv(t){if(t.meta?this._compileMetaSchema(t):_8e.compileSchema.call(this,t),!t.validate)throw new Error("ajv implementation error");return t.validate}_compileMetaSchema(t){let r=this.opts;this.opts=this._metaOpts;try{_8e.compileSchema.call(this,t)}finally{this.opts=r}}};b8e.ValidationError=V5c.default;b8e.MissingRefError=V6i.default;ex.default=b8e;function Z6i(e,t,r,n="error"){for(let a in e){let o=a;o in t&&this.logger[n](`${r}: option ${a}. ${e[o]}`)}}function L6i(e){return e=(0,y8e.normalizeId)(e),this.schemas[e]||this.refs[e]}function J5c(){let e=this.opts.schemas;if(e)if(Array.isArray(e))this.addSchema(e);else for(let t in e)this.addSchema(e[t],t)}function U5c(){for(let e in this.opts.formats){let t=this.opts.formats[e];t&&this.addFormat(e,t)}}function K5c(e){if(Array.isArray(e)){this.addVocabulary(e);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let t in e){let r=e[t];r.keyword||(r.keyword=t),this.addKeyword(r)}}function j5c(){let e={...this.opts};for(let t of M5c)delete e[t];return e}var z5c={log(){},warn(){},error(){}};function q5c(e){if(e===!1)return z5c;if(e===void 0)return console;if(e.log&&e.warn&&e.error)return e;throw new Error("logger must implement log, warn and error methods")}var $5c=/^[a-z_$][a-z0-9_$:-]*$/i;function eMc(e,t){let{RULES:r}=this;if((0,eWr.eachItem)(e,n=>{if(r.keywords[n])throw new Error(`Keyword ${n} is already defined`);if(!$5c.test(n))throw new Error(`Keyword ${n} has invalid name`)}),!!t&&t.$data&&!("code"in t||"validate"in t))throw new Error('$data keyword must have "code" or "validate" function')}function $Pr(e,t,r){var n;let a=t?.post;if(r&&a)throw new Error('keyword with "post" flag cannot have "type"');let{RULES:o}=this,l=a?o.post:o.rules.find(({type:f})=>f===r);if(l||(l={type:r,rules:[]},o.rules.push(l)),o.keywords[e]=!0,!t)return;let A={keyword:e,definition:{...t,type:(0,NBt.getJSONTypes)(t.type),schemaType:(0,NBt.getJSONTypes)(t.schemaType)}};t.before?tMc.call(this,l,A,t.before):l.rules.push(A),o.all[e]=A,(n=t.implements)===null||n===void 0||n.forEach(f=>this.addKeyword(f))}function tMc(e,t,r){let n=e.rules.findIndex(a=>a.keyword===r);n>=0?e.rules.splice(n,0,t):(e.rules.push(t),this.logger.warn(`rule ${r} is not defined`))}function rMc(e){let{metaSchema:t}=e;t!==void 0&&(e.$data&&this.opts.$data&&(t=W6i(t)),e.validateSchema=this.compile(t,!0))}var nMc={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function W6i(e){return{anyOf:[e,nMc]}}});var M6i=H(tWr=>{"use strict";Object.defineProperty(tWr,"__esModule",{value:!0});var iMc={keyword:"id",code(){throw new Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};tWr.default=iMc});var X6i=H(a_e=>{"use strict";Object.defineProperty(a_e,"__esModule",{value:!0});a_e.callRef=a_e.getValidate=void 0;var sMc=m8e(),H6i=IH(),xV=Hh(),uke=rte(),Y6i=BBt(),DBt=B_(),oMc={keyword:"$ref",schemaType:"string",code(e){let{gen:t,schema:r,it:n}=e,{baseId:a,schemaEnv:o,validateName:l,opts:A,self:f}=n,{root:I}=o;if((r==="#"||r==="#/")&&a===I.baseId)return b();let C=Y6i.resolveRef.call(f,I,a,r);if(C===void 0)throw new sMc.default(n.opts.uriResolver,a,r);if(C instanceof Y6i.SchemaEnv)return E(C);return N(C);function b(){if(o===I)return kBt(e,l,o,o.$async);let B=t.scopeValue("root",{ref:I});return kBt(e,(0,xV._)`${B}.validate`,I,I.$async)}function E(B){let F=Q6i(e,B);kBt(e,F,B,B.$async)}function N(B){let F=t.scopeValue("schema",A.code.source===!0?{ref:B,code:(0,xV.stringify)(B)}:{ref:B}),Q=t.name("valid"),X=e.subschema({schema:B,dataTypes:[],schemaPath:xV.nil,topSchemaRef:F,errSchemaPath:r},Q);e.mergeEvaluated(X),e.ok(Q)}}};function Q6i(e,t){let{gen:r}=e;return t.validate?r.scopeValue("validate",{ref:t.validate}):(0,xV._)`${r.scopeValue("wrapper",{ref:t})}.validate`}a_e.getValidate=Q6i;function kBt(e,t,r,n){let{gen:a,it:o}=e,{allErrors:l,schemaEnv:A,opts:f}=o,I=f.passContext?uke.default.this:xV.nil;n?C():b();function C(){if(!A.$async)throw new Error("async schema referenced by sync schema");let B=a.let("valid");a.try(()=>{a.code((0,xV._)`await ${(0,H6i.callValidateCode)(e,t,I)}`),N(t),l||a.assign(B,!0)},F=>{a.if((0,xV._)`!(${F} instanceof ${o.ValidationError})`,()=>a.throw(F)),E(F),l||a.assign(B,!1)}),e.ok(B)}function b(){e.result((0,H6i.callValidateCode)(e,t,I),()=>N(t),()=>E(t))}function E(B){let F=(0,xV._)`${B}.errors`;a.assign(uke.default.vErrors,(0,xV._)`${uke.default.vErrors} === null ? ${F} : ${uke.default.vErrors}.concat(${F})`),a.assign(uke.default.errors,(0,xV._)`${uke.default.vErrors}.length`)}function N(B){var F;if(!o.opts.unevaluated)return;let Q=(F=r?.validate)===null||F===void 0?void 0:F.evaluated;if(o.props!==!0)if(Q&&!Q.dynamicProps)Q.props!==void 0&&(o.props=DBt.mergeEvaluated.props(a,Q.props,o.props));else{let X=a.var("props",(0,xV._)`${B}.evaluated.props`);o.props=DBt.mergeEvaluated.props(a,X,o.props,xV.Name)}if(o.items!==!0)if(Q&&!Q.dynamicItems)Q.items!==void 0&&(o.items=DBt.mergeEvaluated.items(a,Q.items,o.items));else{let X=a.var("items",(0,xV._)`${B}.evaluated.items`);o.items=DBt.mergeEvaluated.items(a,X,o.items,xV.Name)}}}a_e.callRef=kBt;a_e.default=oMc});var J6i=H(rWr=>{"use strict";Object.defineProperty(rWr,"__esModule",{value:!0});var aMc=M6i(),cMc=X6i(),lMc=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",aMc.default,cMc.default];rWr.default=lMc});var U6i=H(nWr=>{"use strict";Object.defineProperty(nWr,"__esModule",{value:!0});var xBt=Hh(),Ale=xBt.operators,GBt={maximum:{okStr:"<=",ok:Ale.LTE,fail:Ale.GT},minimum:{okStr:">=",ok:Ale.GTE,fail:Ale.LT},exclusiveMaximum:{okStr:"<",ok:Ale.LT,fail:Ale.GTE},exclusiveMinimum:{okStr:">",ok:Ale.GT,fail:Ale.LTE}},uMc={message:({keyword:e,schemaCode:t})=>(0,xBt.str)`must be ${GBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,xBt._)`{comparison: ${GBt[e].okStr}, limit: ${t}}`},gMc={keyword:Object.keys(GBt),type:"number",schemaType:"number",$data:!0,error:uMc,code(e){let{keyword:t,data:r,schemaCode:n}=e;e.fail$data((0,xBt._)`${r} ${GBt[t].fail} ${n} || isNaN(${r})`)}};nWr.default=gMc});var K6i=H(iWr=>{"use strict";Object.defineProperty(iWr,"__esModule",{value:!0});var E8e=Hh(),AMc={message:({schemaCode:e})=>(0,E8e.str)`must be multiple of ${e}`,params:({schemaCode:e})=>(0,E8e._)`{multipleOf: ${e}}`},dMc={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:AMc,code(e){let{gen:t,data:r,schemaCode:n,it:a}=e,o=a.opts.multipleOfPrecision,l=t.let("res"),A=o?(0,E8e._)`Math.abs(Math.round(${l}) - ${l}) > 1e-${o}`:(0,E8e._)`${l} !== parseInt(${l})`;e.fail$data((0,E8e._)`(${n} === 0 || (${l} = ${r}/${n}, ${A}))`)}};iWr.default=dMc});var z6i=H(sWr=>{"use strict";Object.defineProperty(sWr,"__esModule",{value:!0});function j6i(e){let t=e.length,r=0,n=0,a;for(;n=55296&&a<=56319&&n{"use strict";Object.defineProperty(oWr,"__esModule",{value:!0});var c_e=Hh(),pMc=B_(),fMc=z6i(),IMc={message({keyword:e,schemaCode:t}){let r=e==="maxLength"?"more":"fewer";return(0,c_e.str)`must NOT have ${r} than ${t} characters`},params:({schemaCode:e})=>(0,c_e._)`{limit: ${e}}`},hMc={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:IMc,code(e){let{keyword:t,data:r,schemaCode:n,it:a}=e,o=t==="maxLength"?c_e.operators.GT:c_e.operators.LT,l=a.opts.unicode===!1?(0,c_e._)`${r}.length`:(0,c_e._)`${(0,pMc.useFunc)(e.gen,fMc.default)}(${r})`;e.fail$data((0,c_e._)`${l} ${o} ${n}`)}};oWr.default=hMc});var $6i=H(aWr=>{"use strict";Object.defineProperty(aWr,"__esModule",{value:!0});var mMc=IH(),FBt=Hh(),CMc={message:({schemaCode:e})=>(0,FBt.str)`must match pattern "${e}"`,params:({schemaCode:e})=>(0,FBt._)`{pattern: ${e}}`},_Mc={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:CMc,code(e){let{data:t,$data:r,schema:n,schemaCode:a,it:o}=e,l=o.opts.unicodeRegExp?"u":"",A=r?(0,FBt._)`(new RegExp(${a}, ${l}))`:(0,mMc.usePattern)(e,n);e.fail$data((0,FBt._)`!${A}.test(${t})`)}};aWr.default=_Mc});var e7i=H(cWr=>{"use strict";Object.defineProperty(cWr,"__esModule",{value:!0});var S8e=Hh(),yMc={message({keyword:e,schemaCode:t}){let r=e==="maxProperties"?"more":"fewer";return(0,S8e.str)`must NOT have ${r} than ${t} properties`},params:({schemaCode:e})=>(0,S8e._)`{limit: ${e}}`},bMc={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:yMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxProperties"?S8e.operators.GT:S8e.operators.LT;e.fail$data((0,S8e._)`Object.keys(${r}).length ${a} ${n}`)}};cWr.default=bMc});var t7i=H(lWr=>{"use strict";Object.defineProperty(lWr,"__esModule",{value:!0});var v8e=IH(),B8e=Hh(),EMc=B_(),SMc={message:({params:{missingProperty:e}})=>(0,B8e.str)`must have required property '${e}'`,params:({params:{missingProperty:e}})=>(0,B8e._)`{missingProperty: ${e}}`},vMc={keyword:"required",type:"object",schemaType:"array",$data:!0,error:SMc,code(e){let{gen:t,schema:r,schemaCode:n,data:a,$data:o,it:l}=e,{opts:A}=l;if(!o&&r.length===0)return;let f=r.length>=A.loopRequired;if(l.allErrors?I():C(),A.strictRequired){let N=e.parentSchema.properties,{definedProperties:B}=e.it;for(let F of r)if(N?.[F]===void 0&&!B.has(F)){let Q=l.schemaEnv.baseId+l.errSchemaPath,X=`required property "${F}" is not defined at "${Q}" (strictRequired)`;(0,EMc.checkStrictMode)(l,X,l.opts.strictRequired)}}function I(){if(f||o)e.block$data(B8e.nil,b);else for(let N of r)(0,v8e.checkReportMissingProp)(e,N)}function C(){let N=t.let("missing");if(f||o){let B=t.let("valid",!0);e.block$data(B,()=>E(N,B)),e.ok(B)}else t.if((0,v8e.checkMissingProp)(e,r,N)),(0,v8e.reportMissingProp)(e,N),t.else()}function b(){t.forOf("prop",n,N=>{e.setParams({missingProperty:N}),t.if((0,v8e.noPropertyInData)(t,a,N,A.ownProperties),()=>e.error())})}function E(N,B){e.setParams({missingProperty:N}),t.forOf(N,n,()=>{t.assign(B,(0,v8e.propertyInData)(t,a,N,A.ownProperties)),t.if((0,B8e.not)(B),()=>{e.error(),t.break()})},B8e.nil)}}};lWr.default=vMc});var r7i=H(uWr=>{"use strict";Object.defineProperty(uWr,"__esModule",{value:!0});var w8e=Hh(),BMc={message({keyword:e,schemaCode:t}){let r=e==="maxItems"?"more":"fewer";return(0,w8e.str)`must NOT have ${r} than ${t} items`},params:({schemaCode:e})=>(0,w8e._)`{limit: ${e}}`},wMc={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:BMc,code(e){let{keyword:t,data:r,schemaCode:n}=e,a=t==="maxItems"?w8e.operators.GT:w8e.operators.LT;e.fail$data((0,w8e._)`${r}.length ${a} ${n}`)}};uWr.default=wMc});var ZBt=H(gWr=>{"use strict";Object.defineProperty(gWr,"__esModule",{value:!0});var n7i=ZPr();n7i.code='require("ajv/dist/runtime/equal").default';gWr.default=n7i});var i7i=H(dWr=>{"use strict";Object.defineProperty(dWr,"__esModule",{value:!0});var AWr=d8e(),tx=Hh(),TMc=B_(),RMc=ZBt(),NMc={message:({params:{i:e,j:t}})=>(0,tx.str)`must NOT have duplicate items (items ## ${t} and ${e} are identical)`,params:({params:{i:e,j:t}})=>(0,tx._)`{i: ${e}, j: ${t}}`},DMc={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:NMc,code(e){let{gen:t,data:r,$data:n,schema:a,parentSchema:o,schemaCode:l,it:A}=e;if(!n&&!a)return;let f=t.let("valid"),I=o.items?(0,AWr.getSchemaTypes)(o.items):[];e.block$data(f,C,(0,tx._)`${l} === false`),e.ok(f);function C(){let B=t.let("i",(0,tx._)`${r}.length`),F=t.let("j");e.setParams({i:B,j:F}),t.assign(f,!0),t.if((0,tx._)`${B} > 1`,()=>(b()?E:N)(B,F))}function b(){return I.length>0&&!I.some(B=>B==="object"||B==="array")}function E(B,F){let Q=t.name("item"),X=(0,AWr.checkDataTypes)(I,Q,A.opts.strictNumbers,AWr.DataType.Wrong),ae=t.const("indices",(0,tx._)`{}`);t.for((0,tx._)`;${B}--;`,()=>{t.let(Q,(0,tx._)`${r}[${B}]`),t.if(X,(0,tx._)`continue`),I.length>1&&t.if((0,tx._)`typeof ${Q} == "string"`,(0,tx._)`${Q} += "_"`),t.if((0,tx._)`typeof ${ae}[${Q}] == "number"`,()=>{t.assign(F,(0,tx._)`${ae}[${Q}]`),e.error(),t.assign(f,!1).break()}).code((0,tx._)`${ae}[${Q}] = ${B}`)})}function N(B,F){let Q=(0,TMc.useFunc)(t,RMc.default),X=t.name("outer");t.label(X).for((0,tx._)`;${B}--;`,()=>t.for((0,tx._)`${F} = ${B}; ${F}--;`,()=>t.if((0,tx._)`${Q}(${r}[${B}], ${r}[${F}])`,()=>{e.error(),t.assign(f,!1).break(X)})))}}};dWr.default=DMc});var s7i=H(fWr=>{"use strict";Object.defineProperty(fWr,"__esModule",{value:!0});var pWr=Hh(),kMc=B_(),xMc=ZBt(),GMc={message:"must be equal to constant",params:({schemaCode:e})=>(0,pWr._)`{allowedValue: ${e}}`},FMc={keyword:"const",$data:!0,error:GMc,code(e){let{gen:t,data:r,$data:n,schemaCode:a,schema:o}=e;n||o&&typeof o=="object"?e.fail$data((0,pWr._)`!${(0,kMc.useFunc)(t,xMc.default)}(${r}, ${a})`):e.fail((0,pWr._)`${o} !== ${r}`)}};fWr.default=FMc});var o7i=H(IWr=>{"use strict";Object.defineProperty(IWr,"__esModule",{value:!0});var T8e=Hh(),ZMc=B_(),LMc=ZBt(),VMc={message:"must be equal to one of the allowed values",params:({schemaCode:e})=>(0,T8e._)`{allowedValues: ${e}}`},PMc={keyword:"enum",schemaType:"array",$data:!0,error:VMc,code(e){let{gen:t,data:r,$data:n,schema:a,schemaCode:o,it:l}=e;if(!n&&a.length===0)throw new Error("enum must have non-empty array");let A=a.length>=l.opts.loopEnum,f,I=()=>f??(f=(0,ZMc.useFunc)(t,LMc.default)),C;if(A||n)C=t.let("valid"),e.block$data(C,b);else{if(!Array.isArray(a))throw new Error("ajv implementation error");let N=t.const("vSchema",o);C=(0,T8e.or)(...a.map((B,F)=>E(N,F)))}e.pass(C);function b(){t.assign(C,!1),t.forOf("v",o,N=>t.if((0,T8e._)`${I()}(${r}, ${N})`,()=>t.assign(C,!0).break()))}function E(N,B){let F=a[B];return typeof F=="object"&&F!==null?(0,T8e._)`${I()}(${r}, ${N}[${B}])`:(0,T8e._)`${r} === ${F}`}}};IWr.default=PMc});var a7i=H(hWr=>{"use strict";Object.defineProperty(hWr,"__esModule",{value:!0});var WMc=U6i(),OMc=K6i(),MMc=q6i(),HMc=$6i(),YMc=e7i(),QMc=t7i(),XMc=r7i(),JMc=i7i(),UMc=s7i(),KMc=o7i(),jMc=[WMc.default,OMc.default,MMc.default,HMc.default,YMc.default,QMc.default,XMc.default,JMc.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},UMc.default,KMc.default];hWr.default=jMc});var CWr=H(R8e=>{"use strict";Object.defineProperty(R8e,"__esModule",{value:!0});R8e.validateAdditionalItems=void 0;var l_e=Hh(),mWr=B_(),zMc={message:({params:{len:e}})=>(0,l_e.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,l_e._)`{limit: ${e}}`},qMc={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:zMc,code(e){let{parentSchema:t,it:r}=e,{items:n}=t;if(!Array.isArray(n)){(0,mWr.checkStrictMode)(r,'"additionalItems" is ignored when "items" is not an array of schemas');return}c7i(e,n)}};function c7i(e,t){let{gen:r,schema:n,data:a,keyword:o,it:l}=e;l.items=!0;let A=r.const("len",(0,l_e._)`${a}.length`);if(n===!1)e.setParams({len:t.length}),e.pass((0,l_e._)`${A} <= ${t.length}`);else if(typeof n=="object"&&!(0,mWr.alwaysValidSchema)(l,n)){let I=r.var("valid",(0,l_e._)`${A} <= ${t.length}`);r.if((0,l_e.not)(I),()=>f(I)),e.ok(I)}function f(I){r.forRange("i",t.length,A,C=>{e.subschema({keyword:o,dataProp:C,dataPropType:mWr.Type.Num},I),l.allErrors||r.if((0,l_e.not)(I),()=>r.break())})}}R8e.validateAdditionalItems=c7i;R8e.default=qMc});var _Wr=H(N8e=>{"use strict";Object.defineProperty(N8e,"__esModule",{value:!0});N8e.validateTuple=void 0;var l7i=Hh(),LBt=B_(),$Mc=IH(),eHc={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(e){let{schema:t,it:r}=e;if(Array.isArray(t))return u7i(e,"additionalItems",t);r.items=!0,!(0,LBt.alwaysValidSchema)(r,t)&&e.ok((0,$Mc.validateArray)(e))}};function u7i(e,t,r=e.schema){let{gen:n,parentSchema:a,data:o,keyword:l,it:A}=e;C(a),A.opts.unevaluated&&r.length&&A.items!==!0&&(A.items=LBt.mergeEvaluated.items(n,r.length,A.items));let f=n.name("valid"),I=n.const("len",(0,l7i._)`${o}.length`);r.forEach((b,E)=>{(0,LBt.alwaysValidSchema)(A,b)||(n.if((0,l7i._)`${I} > ${E}`,()=>e.subschema({keyword:l,schemaProp:E,dataProp:E},f)),e.ok(f))});function C(b){let{opts:E,errSchemaPath:N}=A,B=r.length,F=B===b.minItems&&(B===b.maxItems||b[t]===!1);if(E.strictTuples&&!F){let Q=`"${l}" is ${B}-tuple, but minItems or maxItems/${t} are not specified or different at path "${N}"`;(0,LBt.checkStrictMode)(A,Q,E.strictTuples)}}}N8e.validateTuple=u7i;N8e.default=eHc});var g7i=H(yWr=>{"use strict";Object.defineProperty(yWr,"__esModule",{value:!0});var tHc=_Wr(),rHc={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:e=>(0,tHc.validateTuple)(e,"items")};yWr.default=rHc});var d7i=H(bWr=>{"use strict";Object.defineProperty(bWr,"__esModule",{value:!0});var A7i=Hh(),nHc=B_(),iHc=IH(),sHc=CWr(),oHc={message:({params:{len:e}})=>(0,A7i.str)`must NOT have more than ${e} items`,params:({params:{len:e}})=>(0,A7i._)`{limit: ${e}}`},aHc={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:oHc,code(e){let{schema:t,parentSchema:r,it:n}=e,{prefixItems:a}=r;n.items=!0,!(0,nHc.alwaysValidSchema)(n,t)&&(a?(0,sHc.validateAdditionalItems)(e,a):e.ok((0,iHc.validateArray)(e)))}};bWr.default=aHc});var p7i=H(EWr=>{"use strict";Object.defineProperty(EWr,"__esModule",{value:!0});var mH=Hh(),VBt=B_(),cHc={message:({params:{min:e,max:t}})=>t===void 0?(0,mH.str)`must contain at least ${e} valid item(s)`:(0,mH.str)`must contain at least ${e} and no more than ${t} valid item(s)`,params:({params:{min:e,max:t}})=>t===void 0?(0,mH._)`{minContains: ${e}}`:(0,mH._)`{minContains: ${e}, maxContains: ${t}}`},lHc={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:cHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e,l,A,{minContains:f,maxContains:I}=n;o.opts.next?(l=f===void 0?1:f,A=I):l=1;let C=t.const("len",(0,mH._)`${a}.length`);if(e.setParams({min:l,max:A}),A===void 0&&l===0){(0,VBt.checkStrictMode)(o,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(A!==void 0&&l>A){(0,VBt.checkStrictMode)(o,'"minContains" > "maxContains" is always invalid'),e.fail();return}if((0,VBt.alwaysValidSchema)(o,r)){let F=(0,mH._)`${C} >= ${l}`;A!==void 0&&(F=(0,mH._)`${F} && ${C} <= ${A}`),e.pass(F);return}o.items=!0;let b=t.name("valid");A===void 0&&l===1?N(b,()=>t.if(b,()=>t.break())):l===0?(t.let(b,!0),A!==void 0&&t.if((0,mH._)`${a}.length > 0`,E)):(t.let(b,!1),E()),e.result(b,()=>e.reset());function E(){let F=t.name("_valid"),Q=t.let("count",0);N(F,()=>t.if(F,()=>B(Q)))}function N(F,Q){t.forRange("i",0,C,X=>{e.subschema({keyword:"contains",dataProp:X,dataPropType:VBt.Type.Num,compositeRule:!0},F),Q()})}function B(F){t.code((0,mH._)`${F}++`),A===void 0?t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0).break()):(t.if((0,mH._)`${F} > ${A}`,()=>t.assign(b,!1).break()),l===1?t.assign(b,!0):t.if((0,mH._)`${F} >= ${l}`,()=>t.assign(b,!0)))}}};EWr.default=lHc});var h7i=H(Oj=>{"use strict";Object.defineProperty(Oj,"__esModule",{value:!0});Oj.validateSchemaDeps=Oj.validatePropertyDeps=Oj.error=void 0;var SWr=Hh(),uHc=B_(),D8e=IH();Oj.error={message:({params:{property:e,depsCount:t,deps:r}})=>{let n=t===1?"property":"properties";return(0,SWr.str)`must have ${n} ${r} when property ${e} is present`},params:({params:{property:e,depsCount:t,deps:r,missingProperty:n}})=>(0,SWr._)`{property: ${e}, missingProperty: ${n}, depsCount: ${t}, - deps: ${r}}`};var uHc={keyword:"dependencies",type:"object",schemaType:"object",error:Oj.error,code(e){let[t,r]=gHc(e);f7i(e,t),I7i(e,r)}};function gHc({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function f7i(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let l in t){let A=t[l];if(A.length===0)continue;let f=(0,D8e.propertyInData)(r,n,l,a.opts.ownProperties);e.setParams({property:l,depsCount:A.length,deps:A.join(", ")}),a.allErrors?r.if(f,()=>{for(let I of A)(0,D8e.checkReportMissingProp)(e,I)}):(r.if((0,SWr._)`${f} && (${(0,D8e.checkMissingProp)(e,A,o)})`),(0,D8e.reportMissingProp)(e,o),r.else())}}Oj.validatePropertyDeps=f7i;function I7i(e,t=e.schema){let{gen:r,data:n,keyword:a,it:o}=e,l=r.name("valid");for(let A in t)(0,lHc.alwaysValidSchema)(o,t[A])||(r.if((0,D8e.propertyInData)(r,n,A,o.opts.ownProperties),()=>{let f=e.subschema({keyword:a,schemaProp:A},l);e.mergeValidEvaluated(f,l)},()=>r.var(l,!0)),e.ok(l))}Oj.validateSchemaDeps=I7i;Oj.default=uHc});var C7i=H(vWr=>{"use strict";Object.defineProperty(vWr,"__esModule",{value:!0});var m7i=Hh(),AHc=B_(),dHc={message:"property name must be valid",params:({params:e})=>(0,m7i._)`{propertyName: ${e.propertyName}}`},pHc={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:dHc,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,AHc.alwaysValidSchema)(a,r))return;let o=t.name("valid");t.forIn("key",n,l=>{e.setParams({propertyName:l}),e.subschema({keyword:"propertyNames",data:l,dataTypes:["string"],propertyName:l,compositeRule:!0},o),t.if((0,m7i.not)(o),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(o)}};vWr.default=pHc});var wWr=H(BWr=>{"use strict";Object.defineProperty(BWr,"__esModule",{value:!0});var PBt=IH(),R4=Hh(),fHc=rte(),WBt=B_(),IHc={message:"must NOT have additional properties",params:({params:e})=>(0,R4._)`{additionalProperty: ${e.additionalProperty}}`},hHc={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:IHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:o,it:l}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:A,opts:f}=l;if(l.props=!0,f.removeAdditional!=="all"&&(0,WBt.alwaysValidSchema)(l,r))return;let I=(0,PBt.allSchemaProperties)(n.properties),C=(0,PBt.allSchemaProperties)(n.patternProperties);b(),e.ok((0,R4._)`${o} === ${fHc.default.errors}`);function b(){t.forIn("key",a,Q=>{!I.length&&!C.length?B(Q):t.if(E(Q),()=>B(Q))})}function E(Q){let X;if(I.length>8){let ae=(0,WBt.schemaRefOrVal)(l,n.properties,"properties");X=(0,PBt.isOwnProperty)(t,ae,Q)}else I.length?X=(0,R4.or)(...I.map(ae=>(0,R4._)`${Q} === ${ae}`)):X=R4.nil;return C.length&&(X=(0,R4.or)(X,...C.map(ae=>(0,R4._)`${(0,PBt.usePattern)(e,ae)}.test(${Q})`))),(0,R4.not)(X)}function N(Q){t.code((0,R4._)`delete ${a}[${Q}]`)}function B(Q){if(f.removeAdditional==="all"||f.removeAdditional&&r===!1){N(Q);return}if(r===!1){e.setParams({additionalProperty:Q}),e.error(),A||t.break();return}if(typeof r=="object"&&!(0,WBt.alwaysValidSchema)(l,r)){let X=t.name("valid");f.removeAdditional==="failing"?(F(Q,X,!1),t.if((0,R4.not)(X),()=>{e.reset(),N(Q)})):(F(Q,X),A||t.if((0,R4.not)(X),()=>t.break()))}}function F(Q,X,ae){let ne={keyword:"additionalProperties",dataProp:Q,dataPropType:WBt.Type.Str};ae===!1&&Object.assign(ne,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(ne,X)}}};BWr.default=hHc});var b7i=H(RWr=>{"use strict";Object.defineProperty(RWr,"__esModule",{value:!0});var mHc=h8e(),_7i=IH(),TWr=B_(),y7i=wWr(),CHc={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&y7i.default.code(new mHc.KeywordCxt(o,y7i.default,"additionalProperties"));let l=(0,_7i.allSchemaProperties)(r);for(let b of l)o.definedProperties.add(b);o.opts.unevaluated&&l.length&&o.props!==!0&&(o.props=TWr.mergeEvaluated.props(t,(0,TWr.toHash)(l),o.props));let A=l.filter(b=>!(0,TWr.alwaysValidSchema)(o,r[b]));if(A.length===0)return;let f=t.name("valid");for(let b of A)I(b)?C(b):(t.if((0,_7i.propertyInData)(t,a,b,o.opts.ownProperties)),C(b),o.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(b),e.ok(f);function I(b){return o.opts.useDefaults&&!o.compositeRule&&r[b].default!==void 0}function C(b){e.subschema({keyword:"properties",schemaProp:b,dataProp:b},f)}}};RWr.default=CHc});var B7i=H(NWr=>{"use strict";Object.defineProperty(NWr,"__esModule",{value:!0});var E7i=IH(),OBt=Hh(),S7i=B_(),v7i=B_(),_Hc={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:o}=e,{opts:l}=o,A=(0,E7i.allSchemaProperties)(r),f=A.filter(F=>(0,S7i.alwaysValidSchema)(o,r[F]));if(A.length===0||f.length===A.length&&(!o.opts.unevaluated||o.props===!0))return;let I=l.strictSchema&&!l.allowMatchingProperties&&a.properties,C=t.name("valid");o.props!==!0&&!(o.props instanceof OBt.Name)&&(o.props=(0,v7i.evaluatedPropsToName)(t,o.props));let{props:b}=o;E();function E(){for(let F of A)I&&N(F),o.allErrors?B(F):(t.var(C,!0),B(F),t.if(C))}function N(F){for(let Q in I)new RegExp(F).test(Q)&&(0,S7i.checkStrictMode)(o,`property ${Q} matches pattern ${F} (use allowMatchingProperties)`)}function B(F){t.forIn("key",n,Q=>{t.if((0,OBt._)`${(0,E7i.usePattern)(e,F)}.test(${Q})`,()=>{let X=f.includes(F);X||e.subschema({keyword:"patternProperties",schemaProp:F,dataProp:Q,dataPropType:v7i.Type.Str},C),o.opts.unevaluated&&b!==!0?t.assign((0,OBt._)`${b}[${Q}]`,!0):!X&&!o.allErrors&&t.if((0,OBt.not)(C),()=>t.break())})})}}};NWr.default=_Hc});var w7i=H(DWr=>{"use strict";Object.defineProperty(DWr,"__esModule",{value:!0});var yHc=B_(),bHc={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,yHc.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};DWr.default=bHc});var T7i=H(kWr=>{"use strict";Object.defineProperty(kWr,"__esModule",{value:!0});var EHc=IH(),SHc={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:EHc.validateUnion,error:{message:"must match a schema in anyOf"}};kWr.default=SHc});var R7i=H(xWr=>{"use strict";Object.defineProperty(xWr,"__esModule",{value:!0});var MBt=Hh(),vHc=B_(),BHc={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,MBt._)`{passingSchemas: ${e.passing}}`},wHc={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:BHc,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let o=r,l=t.let("valid",!1),A=t.let("passing",null),f=t.name("_valid");e.setParams({passing:A}),t.block(I),e.result(l,()=>e.reset(),()=>e.error(!0));function I(){o.forEach((C,b)=>{let E;(0,vHc.alwaysValidSchema)(a,C)?t.var(f,!0):E=e.subschema({keyword:"oneOf",schemaProp:b,compositeRule:!0},f),b>0&&t.if((0,MBt._)`${f} && ${l}`).assign(l,!1).assign(A,(0,MBt._)`[${A}, ${b}]`).else(),t.if(f,()=>{t.assign(l,!0),t.assign(A,b),E&&e.mergeEvaluated(E,MBt.Name)})})}}};xWr.default=wHc});var N7i=H(GWr=>{"use strict";Object.defineProperty(GWr,"__esModule",{value:!0});var THc=B_(),RHc={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let a=t.name("valid");r.forEach((o,l)=>{if((0,THc.alwaysValidSchema)(n,o))return;let A=e.subschema({keyword:"allOf",schemaProp:l},a);e.ok(a),e.mergeEvaluated(A)})}};GWr.default=RHc});var x7i=H(FWr=>{"use strict";Object.defineProperty(FWr,"__esModule",{value:!0});var HBt=Hh(),k7i=B_(),NHc={message:({params:e})=>(0,HBt.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,HBt._)`{failingKeyword: ${e.ifClause}}`},DHc={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:NHc,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,k7i.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=D7i(n,"then"),o=D7i(n,"else");if(!a&&!o)return;let l=t.let("valid",!0),A=t.name("_valid");if(f(),e.reset(),a&&o){let C=t.let("ifClause");e.setParams({ifClause:C}),t.if(A,I("then",C),I("else",C))}else a?t.if(A,I("then")):t.if((0,HBt.not)(A),I("else"));e.pass(l,()=>e.error(!0));function f(){let C=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},A);e.mergeEvaluated(C)}function I(C,b){return()=>{let E=e.subschema({keyword:C},A);t.assign(l,A),e.mergeValidEvaluated(E,l),b?t.assign(b,(0,HBt._)`${C}`):e.setParams({ifClause:C})}}}};function D7i(e,t){let r=e.schema[t];return r!==void 0&&!(0,k7i.alwaysValidSchema)(e,r)}FWr.default=DHc});var G7i=H(ZWr=>{"use strict";Object.defineProperty(ZWr,"__esModule",{value:!0});var kHc=B_(),xHc={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,kHc.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};ZWr.default=xHc});var F7i=H(LWr=>{"use strict";Object.defineProperty(LWr,"__esModule",{value:!0});var GHc=CWr(),FHc=g7i(),ZHc=_Wr(),LHc=d7i(),VHc=p7i(),PHc=h7i(),WHc=C7i(),OHc=wWr(),MHc=b7i(),HHc=B7i(),YHc=w7i(),QHc=T7i(),XHc=R7i(),JHc=N7i(),UHc=x7i(),KHc=G7i();function jHc(e=!1){let t=[YHc.default,QHc.default,XHc.default,JHc.default,UHc.default,KHc.default,WHc.default,OHc.default,PHc.default,MHc.default,HHc.default];return e?t.push(FHc.default,LHc.default):t.push(GHc.default,ZHc.default),t.push(VHc.default),t}LWr.default=jHc});var Z7i=H(VWr=>{"use strict";Object.defineProperty(VWr,"__esModule",{value:!0});var ow=Hh(),zHc={message:({schemaCode:e})=>(0,ow.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ow._)`{format: ${e}}`},qHc={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:zHc,code(e,t){let{gen:r,data:n,$data:a,schema:o,schemaCode:l,it:A}=e,{opts:f,errSchemaPath:I,schemaEnv:C,self:b}=A;if(!f.validateFormats)return;a?E():N();function E(){let B=r.scopeValue("formats",{ref:b.formats,code:f.code.formats}),F=r.const("fDef",(0,ow._)`${B}[${l}]`),Q=r.let("fType"),X=r.let("format");r.if((0,ow._)`typeof ${F} == "object" && !(${F} instanceof RegExp)`,()=>r.assign(Q,(0,ow._)`${F}.type || "string"`).assign(X,(0,ow._)`${F}.validate`),()=>r.assign(Q,(0,ow._)`"string"`).assign(X,F)),e.fail$data((0,ow.or)(ae(),ne()));function ae(){return f.strictSchema===!1?ow.nil:(0,ow._)`${l} && !${X}`}function ne(){let ce=C.$async?(0,ow._)`(${F}.async ? await ${X}(${n}) : ${X}(${n}))`:(0,ow._)`${X}(${n})`,fe=(0,ow._)`(typeof ${X} == "function" ? ${ce} : ${X}.test(${n}))`;return(0,ow._)`${X} && ${X} !== true && ${Q} === ${t} && !${fe}`}}function N(){let B=b.formats[o];if(!B){ae();return}if(B===!0)return;let[F,Q,X]=ne(B);F===t&&e.pass(ce());function ae(){if(f.strictSchema===!1){b.logger.warn(fe());return}throw new Error(fe());function fe(){return`unknown format "${o}" ignored in schema at path "${I}"`}}function ne(fe){let ue=fe instanceof RegExp?(0,ow.regexpCode)(fe):f.code.formats?(0,ow._)`${f.code.formats}${(0,ow.getProperty)(o)}`:void 0,de=r.scopeValue("formats",{key:o,ref:fe,code:ue});return typeof fe=="object"&&!(fe instanceof RegExp)?[fe.type||"string",fe.validate,(0,ow._)`${de}.validate`]:["string",fe,de]}function ce(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!C.$async)throw new Error("async format in sync schema");return(0,ow._)`await ${X}(${n})`}return typeof Q=="function"?(0,ow._)`${X}(${n})`:(0,ow._)`${X}.test(${n})`}}}};VWr.default=qHc});var L7i=H(PWr=>{"use strict";Object.defineProperty(PWr,"__esModule",{value:!0});var $Hc=Z7i(),eYc=[$Hc.default];PWr.default=eYc});var V7i=H(gke=>{"use strict";Object.defineProperty(gke,"__esModule",{value:!0});gke.contentVocabulary=gke.metadataVocabulary=void 0;gke.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];gke.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var W7i=H(WWr=>{"use strict";Object.defineProperty(WWr,"__esModule",{value:!0});var tYc=J6i(),rYc=a7i(),nYc=F7i(),iYc=L7i(),P7i=V7i(),sYc=[tYc.default,rYc.default,(0,nYc.default)(),iYc.default,P7i.metadataVocabulary,P7i.contentVocabulary];WWr.default=sYc});var M7i=H(YBt=>{"use strict";Object.defineProperty(YBt,"__esModule",{value:!0});YBt.DiscrError=void 0;var O7i;(function(e){e.Tag="tag",e.Mapping="mapping"})(O7i||(YBt.DiscrError=O7i={}))});var Y7i=H(MWr=>{"use strict";Object.defineProperty(MWr,"__esModule",{value:!0});var Ake=Hh(),OWr=M7i(),H7i=BBt(),oYc=m8e(),aYc=B_(),cYc={message:({params:{discrError:e,tagName:t}})=>e===OWr.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Ake._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},lYc={keyword:"discriminator",type:"object",schemaType:"object",error:cYc,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:o}=e,{oneOf:l}=a;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let A=n.propertyName;if(typeof A!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");let f=t.let("valid",!1),I=t.const("tag",(0,Ake._)`${r}${(0,Ake.getProperty)(A)}`);t.if((0,Ake._)`typeof ${I} == "string"`,()=>C(),()=>e.error(!1,{discrError:OWr.DiscrError.Tag,tag:I,tagName:A})),e.ok(f);function C(){let N=E();t.if(!1);for(let B in N)t.elseIf((0,Ake._)`${I} === ${B}`),t.assign(f,b(N[B]));t.else(),e.error(!1,{discrError:OWr.DiscrError.Mapping,tag:I,tagName:A}),t.endIf()}function b(N){let B=t.name("valid"),F=e.subschema({keyword:"oneOf",schemaProp:N},B);return e.mergeEvaluated(F,Ake.Name),B}function E(){var N;let B={},F=X(a),Q=!0;for(let ce=0;ce{uYc.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var YWr=H((J1,HWr)=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.MissingRefError=J1.ValidationError=J1.CodeGen=J1.Name=J1.nil=J1.stringify=J1.str=J1._=J1.KeywordCxt=J1.Ajv=void 0;var gYc=O6i(),AYc=W7i(),dYc=Y7i(),X7i=Q7i(),pYc=["/properties"],QBt="http://json-schema.org/draft-07/schema",dke=class extends gYc.default{_addVocabularies(){super._addVocabularies(),AYc.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(dYc.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(X7i,pYc):X7i;this.addMetaSchema(t,QBt,!1),this.refs["http://json-schema.org/schema"]=QBt}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(QBt)?QBt:void 0)}};J1.Ajv=dke;HWr.exports=J1=dke;HWr.exports.Ajv=dke;Object.defineProperty(J1,"__esModule",{value:!0});J1.default=dke;var fYc=h8e();Object.defineProperty(J1,"KeywordCxt",{enumerable:!0,get:function(){return fYc.KeywordCxt}});var pke=Hh();Object.defineProperty(J1,"_",{enumerable:!0,get:function(){return pke._}});Object.defineProperty(J1,"str",{enumerable:!0,get:function(){return pke.str}});Object.defineProperty(J1,"stringify",{enumerable:!0,get:function(){return pke.stringify}});Object.defineProperty(J1,"nil",{enumerable:!0,get:function(){return pke.nil}});Object.defineProperty(J1,"Name",{enumerable:!0,get:function(){return pke.Name}});Object.defineProperty(J1,"CodeGen",{enumerable:!0,get:function(){return pke.CodeGen}});var IYc=SBt();Object.defineProperty(J1,"ValidationError",{enumerable:!0,get:function(){return IYc.default}});var hYc=m8e();Object.defineProperty(J1,"MissingRefError",{enumerable:!0,get:function(){return hYc.default}})});var ezi=H(Hj=>{"use strict";Object.defineProperty(Hj,"__esModule",{value:!0});Hj.formatNames=Hj.fastFormats=Hj.fullFormats=void 0;function Mj(e,t){return{validate:e,compare:t}}Hj.fullFormats={date:Mj(j7i,UWr),time:Mj(XWr(!0),KWr),"date-time":Mj(J7i(!0),q7i),"iso-time":Mj(XWr(),z7i),"iso-date-time":Mj(J7i(),$7i),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:EYc,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:NYc,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:SYc,int32:{type:"number",validate:wYc},int64:{type:"number",validate:TYc},float:{type:"number",validate:K7i},double:{type:"number",validate:K7i},password:!0,binary:!0};Hj.fastFormats={...Hj.fullFormats,date:Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,UWr),time:Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KWr),"date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,q7i),"iso-time":Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,z7i),"iso-date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,$7i),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Hj.formatNames=Object.keys(Hj.fullFormats);function mYc(e){return e%4===0&&(e%100!==0||e%400===0)}var CYc=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,_Yc=[0,31,28,31,30,31,30,31,31,30,31,30,31];function j7i(e){let t=CYc.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],a=+t[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&mYc(r)?29:_Yc[n])}function UWr(e,t){if(e&&t)return e>t?1:e23||C>59||e&&!A)return!1;if(a<=23&&o<=59&&l<60)return!0;let b=o-C*f,E=a-I*f-(b<0?1:0);return(E===23||E===-1)&&(b===59||b===-1)&&l<61}}function KWr(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function z7i(e,t){if(!(e&&t))return;let r=QWr.exec(e),n=QWr.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=vYc}function TYc(e){return Number.isInteger(e)}function K7i(){return!0}var RYc=/[^\\]\\Z/;function NYc(e){if(RYc.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var tzi=H(fke=>{"use strict";Object.defineProperty(fke,"__esModule",{value:!0});fke.formatLimitDefinition=void 0;var DYc=YWr(),N4=Hh(),dle=N4.operators,XBt={formatMaximum:{okStr:"<=",ok:dle.LTE,fail:dle.GT},formatMinimum:{okStr:">=",ok:dle.GTE,fail:dle.LT},formatExclusiveMaximum:{okStr:"<",ok:dle.LT,fail:dle.GTE},formatExclusiveMinimum:{okStr:">",ok:dle.GT,fail:dle.LTE}},kYc={message:({keyword:e,schemaCode:t})=>(0,N4.str)`should be ${XBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,N4._)`{comparison: ${XBt[e].okStr}, limit: ${t}}`};fke.formatLimitDefinition={keyword:Object.keys(XBt),type:"string",schemaType:"string",$data:!0,error:kYc,code(e){let{gen:t,data:r,schemaCode:n,keyword:a,it:o}=e,{opts:l,self:A}=o;if(!l.validateFormats)return;let f=new DYc.KeywordCxt(o,A.RULES.all.format.definition,"format");f.$data?I():C();function I(){let E=t.scopeValue("formats",{ref:A.formats,code:l.code.formats}),N=t.const("fmt",(0,N4._)`${E}[${f.schemaCode}]`);e.fail$data((0,N4.or)((0,N4._)`typeof ${N} != "object"`,(0,N4._)`${N} instanceof RegExp`,(0,N4._)`typeof ${N}.compare != "function"`,b(N)))}function C(){let E=f.schema,N=A.formats[E];if(!N||N===!0)return;if(typeof N!="object"||N instanceof RegExp||typeof N.compare!="function")throw new Error(`"${a}": format "${E}" does not define "compare" function`);let B=t.scopeValue("formats",{key:E,ref:N,code:l.code.formats?(0,N4._)`${l.code.formats}${(0,N4.getProperty)(E)}`:void 0});e.fail$data(b(B))}function b(E){return(0,N4._)`${E}.compare(${r}, ${n}) ${XBt[a].fail} 0`}},dependencies:["format"]};var xYc=e=>(e.addKeyword(fke.formatLimitDefinition),e);fke.default=xYc});var szi=H((k8e,izi)=>{"use strict";Object.defineProperty(k8e,"__esModule",{value:!0});var Ike=ezi(),GYc=tzi(),jWr=Hh(),rzi=new jWr.Name("fullFormats"),FYc=new jWr.Name("fastFormats"),zWr=(e,t={keywords:!0})=>{if(Array.isArray(t))return nzi(e,t,Ike.fullFormats,rzi),e;let[r,n]=t.mode==="fast"?[Ike.fastFormats,FYc]:[Ike.fullFormats,rzi],a=t.formats||Ike.formatNames;return nzi(e,a,r,n),t.keywords&&(0,GYc.default)(e),e};zWr.get=(e,t="full")=>{let n=(t==="fast"?Ike.fastFormats:Ike.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function nzi(e,t,r,n){var a,o;(a=(o=e.opts.code).formats)!==null&&a!==void 0||(o.formats=(0,jWr._)`require("ajv-formats/dist/formats").${n}`);for(let l of t)e.addFormat(l,r[l])}izi.exports=k8e=zWr;Object.defineProperty(k8e,"__esModule",{value:!0});k8e.default=zWr});var Sy=H(JBt=>{"use strict";Object.defineProperty(JBt,"__esModule",{value:!0});JBt.isFunction=void 0;function ZYc(e){return typeof e=="function"}JBt.isFunction=ZYc});var ple=H(UBt=>{"use strict";Object.defineProperty(UBt,"__esModule",{value:!0});UBt.createErrorClass=void 0;function LYc(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}UBt.createErrorClass=LYc});var qWr=H(KBt=>{"use strict";Object.defineProperty(KBt,"__esModule",{value:!0});KBt.UnsubscriptionError=void 0;var VYc=ple();KBt.UnsubscriptionError=VYc.createErrorClass(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: + deps: ${r}}`};var gHc={keyword:"dependencies",type:"object",schemaType:"object",error:Oj.error,code(e){let[t,r]=AHc(e);f7i(e,t),I7i(e,r)}};function AHc({schema:e}){let t={},r={};for(let n in e){if(n==="__proto__")continue;let a=Array.isArray(e[n])?t:r;a[n]=e[n]}return[t,r]}function f7i(e,t=e.schema){let{gen:r,data:n,it:a}=e;if(Object.keys(t).length===0)return;let o=r.let("missing");for(let l in t){let A=t[l];if(A.length===0)continue;let f=(0,D8e.propertyInData)(r,n,l,a.opts.ownProperties);e.setParams({property:l,depsCount:A.length,deps:A.join(", ")}),a.allErrors?r.if(f,()=>{for(let I of A)(0,D8e.checkReportMissingProp)(e,I)}):(r.if((0,SWr._)`${f} && (${(0,D8e.checkMissingProp)(e,A,o)})`),(0,D8e.reportMissingProp)(e,o),r.else())}}Oj.validatePropertyDeps=f7i;function I7i(e,t=e.schema){let{gen:r,data:n,keyword:a,it:o}=e,l=r.name("valid");for(let A in t)(0,uHc.alwaysValidSchema)(o,t[A])||(r.if((0,D8e.propertyInData)(r,n,A,o.opts.ownProperties),()=>{let f=e.subschema({keyword:a,schemaProp:A},l);e.mergeValidEvaluated(f,l)},()=>r.var(l,!0)),e.ok(l))}Oj.validateSchemaDeps=I7i;Oj.default=gHc});var C7i=H(vWr=>{"use strict";Object.defineProperty(vWr,"__esModule",{value:!0});var m7i=Hh(),dHc=B_(),pHc={message:"property name must be valid",params:({params:e})=>(0,m7i._)`{propertyName: ${e.propertyName}}`},fHc={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:pHc,code(e){let{gen:t,schema:r,data:n,it:a}=e;if((0,dHc.alwaysValidSchema)(a,r))return;let o=t.name("valid");t.forIn("key",n,l=>{e.setParams({propertyName:l}),e.subschema({keyword:"propertyNames",data:l,dataTypes:["string"],propertyName:l,compositeRule:!0},o),t.if((0,m7i.not)(o),()=>{e.error(!0),a.allErrors||t.break()})}),e.ok(o)}};vWr.default=fHc});var wWr=H(BWr=>{"use strict";Object.defineProperty(BWr,"__esModule",{value:!0});var PBt=IH(),R4=Hh(),IHc=rte(),WBt=B_(),hHc={message:"must NOT have additional properties",params:({params:e})=>(0,R4._)`{additionalProperty: ${e.additionalProperty}}`},mHc={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:hHc,code(e){let{gen:t,schema:r,parentSchema:n,data:a,errsCount:o,it:l}=e;if(!o)throw new Error("ajv implementation error");let{allErrors:A,opts:f}=l;if(l.props=!0,f.removeAdditional!=="all"&&(0,WBt.alwaysValidSchema)(l,r))return;let I=(0,PBt.allSchemaProperties)(n.properties),C=(0,PBt.allSchemaProperties)(n.patternProperties);b(),e.ok((0,R4._)`${o} === ${IHc.default.errors}`);function b(){t.forIn("key",a,Q=>{!I.length&&!C.length?B(Q):t.if(E(Q),()=>B(Q))})}function E(Q){let X;if(I.length>8){let ae=(0,WBt.schemaRefOrVal)(l,n.properties,"properties");X=(0,PBt.isOwnProperty)(t,ae,Q)}else I.length?X=(0,R4.or)(...I.map(ae=>(0,R4._)`${Q} === ${ae}`)):X=R4.nil;return C.length&&(X=(0,R4.or)(X,...C.map(ae=>(0,R4._)`${(0,PBt.usePattern)(e,ae)}.test(${Q})`))),(0,R4.not)(X)}function N(Q){t.code((0,R4._)`delete ${a}[${Q}]`)}function B(Q){if(f.removeAdditional==="all"||f.removeAdditional&&r===!1){N(Q);return}if(r===!1){e.setParams({additionalProperty:Q}),e.error(),A||t.break();return}if(typeof r=="object"&&!(0,WBt.alwaysValidSchema)(l,r)){let X=t.name("valid");f.removeAdditional==="failing"?(F(Q,X,!1),t.if((0,R4.not)(X),()=>{e.reset(),N(Q)})):(F(Q,X),A||t.if((0,R4.not)(X),()=>t.break()))}}function F(Q,X,ae){let ne={keyword:"additionalProperties",dataProp:Q,dataPropType:WBt.Type.Str};ae===!1&&Object.assign(ne,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(ne,X)}}};BWr.default=mHc});var b7i=H(RWr=>{"use strict";Object.defineProperty(RWr,"__esModule",{value:!0});var CHc=h8e(),_7i=IH(),TWr=B_(),y7i=wWr(),_Hc={keyword:"properties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,parentSchema:n,data:a,it:o}=e;o.opts.removeAdditional==="all"&&n.additionalProperties===void 0&&y7i.default.code(new CHc.KeywordCxt(o,y7i.default,"additionalProperties"));let l=(0,_7i.allSchemaProperties)(r);for(let b of l)o.definedProperties.add(b);o.opts.unevaluated&&l.length&&o.props!==!0&&(o.props=TWr.mergeEvaluated.props(t,(0,TWr.toHash)(l),o.props));let A=l.filter(b=>!(0,TWr.alwaysValidSchema)(o,r[b]));if(A.length===0)return;let f=t.name("valid");for(let b of A)I(b)?C(b):(t.if((0,_7i.propertyInData)(t,a,b,o.opts.ownProperties)),C(b),o.allErrors||t.else().var(f,!0),t.endIf()),e.it.definedProperties.add(b),e.ok(f);function I(b){return o.opts.useDefaults&&!o.compositeRule&&r[b].default!==void 0}function C(b){e.subschema({keyword:"properties",schemaProp:b,dataProp:b},f)}}};RWr.default=_Hc});var B7i=H(NWr=>{"use strict";Object.defineProperty(NWr,"__esModule",{value:!0});var E7i=IH(),OBt=Hh(),S7i=B_(),v7i=B_(),yHc={keyword:"patternProperties",type:"object",schemaType:"object",code(e){let{gen:t,schema:r,data:n,parentSchema:a,it:o}=e,{opts:l}=o,A=(0,E7i.allSchemaProperties)(r),f=A.filter(F=>(0,S7i.alwaysValidSchema)(o,r[F]));if(A.length===0||f.length===A.length&&(!o.opts.unevaluated||o.props===!0))return;let I=l.strictSchema&&!l.allowMatchingProperties&&a.properties,C=t.name("valid");o.props!==!0&&!(o.props instanceof OBt.Name)&&(o.props=(0,v7i.evaluatedPropsToName)(t,o.props));let{props:b}=o;E();function E(){for(let F of A)I&&N(F),o.allErrors?B(F):(t.var(C,!0),B(F),t.if(C))}function N(F){for(let Q in I)new RegExp(F).test(Q)&&(0,S7i.checkStrictMode)(o,`property ${Q} matches pattern ${F} (use allowMatchingProperties)`)}function B(F){t.forIn("key",n,Q=>{t.if((0,OBt._)`${(0,E7i.usePattern)(e,F)}.test(${Q})`,()=>{let X=f.includes(F);X||e.subschema({keyword:"patternProperties",schemaProp:F,dataProp:Q,dataPropType:v7i.Type.Str},C),o.opts.unevaluated&&b!==!0?t.assign((0,OBt._)`${b}[${Q}]`,!0):!X&&!o.allErrors&&t.if((0,OBt.not)(C),()=>t.break())})})}}};NWr.default=yHc});var w7i=H(DWr=>{"use strict";Object.defineProperty(DWr,"__esModule",{value:!0});var bHc=B_(),EHc={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(e){let{gen:t,schema:r,it:n}=e;if((0,bHc.alwaysValidSchema)(n,r)){e.fail();return}let a=t.name("valid");e.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:"must NOT be valid"}};DWr.default=EHc});var T7i=H(kWr=>{"use strict";Object.defineProperty(kWr,"__esModule",{value:!0});var SHc=IH(),vHc={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:SHc.validateUnion,error:{message:"must match a schema in anyOf"}};kWr.default=vHc});var R7i=H(xWr=>{"use strict";Object.defineProperty(xWr,"__esModule",{value:!0});var MBt=Hh(),BHc=B_(),wHc={message:"must match exactly one schema in oneOf",params:({params:e})=>(0,MBt._)`{passingSchemas: ${e.passing}}`},THc={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:wHc,code(e){let{gen:t,schema:r,parentSchema:n,it:a}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");if(a.opts.discriminator&&n.discriminator)return;let o=r,l=t.let("valid",!1),A=t.let("passing",null),f=t.name("_valid");e.setParams({passing:A}),t.block(I),e.result(l,()=>e.reset(),()=>e.error(!0));function I(){o.forEach((C,b)=>{let E;(0,BHc.alwaysValidSchema)(a,C)?t.var(f,!0):E=e.subschema({keyword:"oneOf",schemaProp:b,compositeRule:!0},f),b>0&&t.if((0,MBt._)`${f} && ${l}`).assign(l,!1).assign(A,(0,MBt._)`[${A}, ${b}]`).else(),t.if(f,()=>{t.assign(l,!0),t.assign(A,b),E&&e.mergeEvaluated(E,MBt.Name)})})}}};xWr.default=THc});var N7i=H(GWr=>{"use strict";Object.defineProperty(GWr,"__esModule",{value:!0});var RHc=B_(),NHc={keyword:"allOf",schemaType:"array",code(e){let{gen:t,schema:r,it:n}=e;if(!Array.isArray(r))throw new Error("ajv implementation error");let a=t.name("valid");r.forEach((o,l)=>{if((0,RHc.alwaysValidSchema)(n,o))return;let A=e.subschema({keyword:"allOf",schemaProp:l},a);e.ok(a),e.mergeEvaluated(A)})}};GWr.default=NHc});var x7i=H(FWr=>{"use strict";Object.defineProperty(FWr,"__esModule",{value:!0});var HBt=Hh(),k7i=B_(),DHc={message:({params:e})=>(0,HBt.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,HBt._)`{failingKeyword: ${e.ifClause}}`},kHc={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:DHc,code(e){let{gen:t,parentSchema:r,it:n}=e;r.then===void 0&&r.else===void 0&&(0,k7i.checkStrictMode)(n,'"if" without "then" and "else" is ignored');let a=D7i(n,"then"),o=D7i(n,"else");if(!a&&!o)return;let l=t.let("valid",!0),A=t.name("_valid");if(f(),e.reset(),a&&o){let C=t.let("ifClause");e.setParams({ifClause:C}),t.if(A,I("then",C),I("else",C))}else a?t.if(A,I("then")):t.if((0,HBt.not)(A),I("else"));e.pass(l,()=>e.error(!0));function f(){let C=e.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},A);e.mergeEvaluated(C)}function I(C,b){return()=>{let E=e.subschema({keyword:C},A);t.assign(l,A),e.mergeValidEvaluated(E,l),b?t.assign(b,(0,HBt._)`${C}`):e.setParams({ifClause:C})}}}};function D7i(e,t){let r=e.schema[t];return r!==void 0&&!(0,k7i.alwaysValidSchema)(e,r)}FWr.default=kHc});var G7i=H(ZWr=>{"use strict";Object.defineProperty(ZWr,"__esModule",{value:!0});var xHc=B_(),GHc={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:e,parentSchema:t,it:r}){t.if===void 0&&(0,xHc.checkStrictMode)(r,`"${e}" without "if" is ignored`)}};ZWr.default=GHc});var F7i=H(LWr=>{"use strict";Object.defineProperty(LWr,"__esModule",{value:!0});var FHc=CWr(),ZHc=g7i(),LHc=_Wr(),VHc=d7i(),PHc=p7i(),WHc=h7i(),OHc=C7i(),MHc=wWr(),HHc=b7i(),YHc=B7i(),QHc=w7i(),XHc=T7i(),JHc=R7i(),UHc=N7i(),KHc=x7i(),jHc=G7i();function zHc(e=!1){let t=[QHc.default,XHc.default,JHc.default,UHc.default,KHc.default,jHc.default,OHc.default,MHc.default,WHc.default,HHc.default,YHc.default];return e?t.push(ZHc.default,VHc.default):t.push(FHc.default,LHc.default),t.push(PHc.default),t}LWr.default=zHc});var Z7i=H(VWr=>{"use strict";Object.defineProperty(VWr,"__esModule",{value:!0});var ow=Hh(),qHc={message:({schemaCode:e})=>(0,ow.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,ow._)`{format: ${e}}`},$Hc={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:qHc,code(e,t){let{gen:r,data:n,$data:a,schema:o,schemaCode:l,it:A}=e,{opts:f,errSchemaPath:I,schemaEnv:C,self:b}=A;if(!f.validateFormats)return;a?E():N();function E(){let B=r.scopeValue("formats",{ref:b.formats,code:f.code.formats}),F=r.const("fDef",(0,ow._)`${B}[${l}]`),Q=r.let("fType"),X=r.let("format");r.if((0,ow._)`typeof ${F} == "object" && !(${F} instanceof RegExp)`,()=>r.assign(Q,(0,ow._)`${F}.type || "string"`).assign(X,(0,ow._)`${F}.validate`),()=>r.assign(Q,(0,ow._)`"string"`).assign(X,F)),e.fail$data((0,ow.or)(ae(),ne()));function ae(){return f.strictSchema===!1?ow.nil:(0,ow._)`${l} && !${X}`}function ne(){let ce=C.$async?(0,ow._)`(${F}.async ? await ${X}(${n}) : ${X}(${n}))`:(0,ow._)`${X}(${n})`,fe=(0,ow._)`(typeof ${X} == "function" ? ${ce} : ${X}.test(${n}))`;return(0,ow._)`${X} && ${X} !== true && ${Q} === ${t} && !${fe}`}}function N(){let B=b.formats[o];if(!B){ae();return}if(B===!0)return;let[F,Q,X]=ne(B);F===t&&e.pass(ce());function ae(){if(f.strictSchema===!1){b.logger.warn(fe());return}throw new Error(fe());function fe(){return`unknown format "${o}" ignored in schema at path "${I}"`}}function ne(fe){let ue=fe instanceof RegExp?(0,ow.regexpCode)(fe):f.code.formats?(0,ow._)`${f.code.formats}${(0,ow.getProperty)(o)}`:void 0,de=r.scopeValue("formats",{key:o,ref:fe,code:ue});return typeof fe=="object"&&!(fe instanceof RegExp)?[fe.type||"string",fe.validate,(0,ow._)`${de}.validate`]:["string",fe,de]}function ce(){if(typeof B=="object"&&!(B instanceof RegExp)&&B.async){if(!C.$async)throw new Error("async format in sync schema");return(0,ow._)`await ${X}(${n})`}return typeof Q=="function"?(0,ow._)`${X}(${n})`:(0,ow._)`${X}.test(${n})`}}}};VWr.default=$Hc});var L7i=H(PWr=>{"use strict";Object.defineProperty(PWr,"__esModule",{value:!0});var eYc=Z7i(),tYc=[eYc.default];PWr.default=tYc});var V7i=H(gke=>{"use strict";Object.defineProperty(gke,"__esModule",{value:!0});gke.contentVocabulary=gke.metadataVocabulary=void 0;gke.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];gke.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var W7i=H(WWr=>{"use strict";Object.defineProperty(WWr,"__esModule",{value:!0});var rYc=J6i(),nYc=a7i(),iYc=F7i(),sYc=L7i(),P7i=V7i(),oYc=[rYc.default,nYc.default,(0,iYc.default)(),sYc.default,P7i.metadataVocabulary,P7i.contentVocabulary];WWr.default=oYc});var M7i=H(YBt=>{"use strict";Object.defineProperty(YBt,"__esModule",{value:!0});YBt.DiscrError=void 0;var O7i;(function(e){e.Tag="tag",e.Mapping="mapping"})(O7i||(YBt.DiscrError=O7i={}))});var Y7i=H(MWr=>{"use strict";Object.defineProperty(MWr,"__esModule",{value:!0});var Ake=Hh(),OWr=M7i(),H7i=BBt(),aYc=m8e(),cYc=B_(),lYc={message:({params:{discrError:e,tagName:t}})=>e===OWr.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:t,tagName:r}})=>(0,Ake._)`{error: ${e}, tag: ${r}, tagValue: ${t}}`},uYc={keyword:"discriminator",type:"object",schemaType:"object",error:lYc,code(e){let{gen:t,data:r,schema:n,parentSchema:a,it:o}=e,{oneOf:l}=a;if(!o.opts.discriminator)throw new Error("discriminator: requires discriminator option");let A=n.propertyName;if(typeof A!="string")throw new Error("discriminator: requires propertyName");if(n.mapping)throw new Error("discriminator: mapping is not supported");if(!l)throw new Error("discriminator: requires oneOf keyword");let f=t.let("valid",!1),I=t.const("tag",(0,Ake._)`${r}${(0,Ake.getProperty)(A)}`);t.if((0,Ake._)`typeof ${I} == "string"`,()=>C(),()=>e.error(!1,{discrError:OWr.DiscrError.Tag,tag:I,tagName:A})),e.ok(f);function C(){let N=E();t.if(!1);for(let B in N)t.elseIf((0,Ake._)`${I} === ${B}`),t.assign(f,b(N[B]));t.else(),e.error(!1,{discrError:OWr.DiscrError.Mapping,tag:I,tagName:A}),t.endIf()}function b(N){let B=t.name("valid"),F=e.subschema({keyword:"oneOf",schemaProp:N},B);return e.mergeEvaluated(F,Ake.Name),B}function E(){var N;let B={},F=X(a),Q=!0;for(let ce=0;ce{gYc.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var YWr=H((J1,HWr)=>{"use strict";Object.defineProperty(J1,"__esModule",{value:!0});J1.MissingRefError=J1.ValidationError=J1.CodeGen=J1.Name=J1.nil=J1.stringify=J1.str=J1._=J1.KeywordCxt=J1.Ajv=void 0;var AYc=O6i(),dYc=W7i(),pYc=Y7i(),X7i=Q7i(),fYc=["/properties"],QBt="http://json-schema.org/draft-07/schema",dke=class extends AYc.default{_addVocabularies(){super._addVocabularies(),dYc.default.forEach(t=>this.addVocabulary(t)),this.opts.discriminator&&this.addKeyword(pYc.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let t=this.opts.$data?this.$dataMetaSchema(X7i,fYc):X7i;this.addMetaSchema(t,QBt,!1),this.refs["http://json-schema.org/schema"]=QBt}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(QBt)?QBt:void 0)}};J1.Ajv=dke;HWr.exports=J1=dke;HWr.exports.Ajv=dke;Object.defineProperty(J1,"__esModule",{value:!0});J1.default=dke;var IYc=h8e();Object.defineProperty(J1,"KeywordCxt",{enumerable:!0,get:function(){return IYc.KeywordCxt}});var pke=Hh();Object.defineProperty(J1,"_",{enumerable:!0,get:function(){return pke._}});Object.defineProperty(J1,"str",{enumerable:!0,get:function(){return pke.str}});Object.defineProperty(J1,"stringify",{enumerable:!0,get:function(){return pke.stringify}});Object.defineProperty(J1,"nil",{enumerable:!0,get:function(){return pke.nil}});Object.defineProperty(J1,"Name",{enumerable:!0,get:function(){return pke.Name}});Object.defineProperty(J1,"CodeGen",{enumerable:!0,get:function(){return pke.CodeGen}});var hYc=SBt();Object.defineProperty(J1,"ValidationError",{enumerable:!0,get:function(){return hYc.default}});var mYc=m8e();Object.defineProperty(J1,"MissingRefError",{enumerable:!0,get:function(){return mYc.default}})});var ezi=H(Hj=>{"use strict";Object.defineProperty(Hj,"__esModule",{value:!0});Hj.formatNames=Hj.fastFormats=Hj.fullFormats=void 0;function Mj(e,t){return{validate:e,compare:t}}Hj.fullFormats={date:Mj(j7i,UWr),time:Mj(XWr(!0),KWr),"date-time":Mj(J7i(!0),q7i),"iso-time":Mj(XWr(),z7i),"iso-date-time":Mj(J7i(),$7i),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:SYc,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:DYc,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:vYc,int32:{type:"number",validate:TYc},int64:{type:"number",validate:RYc},float:{type:"number",validate:K7i},double:{type:"number",validate:K7i},password:!0,binary:!0};Hj.fastFormats={...Hj.fullFormats,date:Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,UWr),time:Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,KWr),"date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,q7i),"iso-time":Mj(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,z7i),"iso-date-time":Mj(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,$7i),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};Hj.formatNames=Object.keys(Hj.fullFormats);function CYc(e){return e%4===0&&(e%100!==0||e%400===0)}var _Yc=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,yYc=[0,31,28,31,30,31,30,31,31,30,31,30,31];function j7i(e){let t=_Yc.exec(e);if(!t)return!1;let r=+t[1],n=+t[2],a=+t[3];return n>=1&&n<=12&&a>=1&&a<=(n===2&&CYc(r)?29:yYc[n])}function UWr(e,t){if(e&&t)return e>t?1:e23||C>59||e&&!A)return!1;if(a<=23&&o<=59&&l<60)return!0;let b=o-C*f,E=a-I*f-(b<0?1:0);return(E===23||E===-1)&&(b===59||b===-1)&&l<61}}function KWr(e,t){if(!(e&&t))return;let r=new Date("2020-01-01T"+e).valueOf(),n=new Date("2020-01-01T"+t).valueOf();if(r&&n)return r-n}function z7i(e,t){if(!(e&&t))return;let r=QWr.exec(e),n=QWr.exec(t);if(r&&n)return e=r[1]+r[2]+r[3],t=n[1]+n[2]+n[3],e>t?1:e=BYc}function RYc(e){return Number.isInteger(e)}function K7i(){return!0}var NYc=/[^\\]\\Z/;function DYc(e){if(NYc.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}});var tzi=H(fke=>{"use strict";Object.defineProperty(fke,"__esModule",{value:!0});fke.formatLimitDefinition=void 0;var kYc=YWr(),N4=Hh(),dle=N4.operators,XBt={formatMaximum:{okStr:"<=",ok:dle.LTE,fail:dle.GT},formatMinimum:{okStr:">=",ok:dle.GTE,fail:dle.LT},formatExclusiveMaximum:{okStr:"<",ok:dle.LT,fail:dle.GTE},formatExclusiveMinimum:{okStr:">",ok:dle.GT,fail:dle.LTE}},xYc={message:({keyword:e,schemaCode:t})=>(0,N4.str)`should be ${XBt[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>(0,N4._)`{comparison: ${XBt[e].okStr}, limit: ${t}}`};fke.formatLimitDefinition={keyword:Object.keys(XBt),type:"string",schemaType:"string",$data:!0,error:xYc,code(e){let{gen:t,data:r,schemaCode:n,keyword:a,it:o}=e,{opts:l,self:A}=o;if(!l.validateFormats)return;let f=new kYc.KeywordCxt(o,A.RULES.all.format.definition,"format");f.$data?I():C();function I(){let E=t.scopeValue("formats",{ref:A.formats,code:l.code.formats}),N=t.const("fmt",(0,N4._)`${E}[${f.schemaCode}]`);e.fail$data((0,N4.or)((0,N4._)`typeof ${N} != "object"`,(0,N4._)`${N} instanceof RegExp`,(0,N4._)`typeof ${N}.compare != "function"`,b(N)))}function C(){let E=f.schema,N=A.formats[E];if(!N||N===!0)return;if(typeof N!="object"||N instanceof RegExp||typeof N.compare!="function")throw new Error(`"${a}": format "${E}" does not define "compare" function`);let B=t.scopeValue("formats",{key:E,ref:N,code:l.code.formats?(0,N4._)`${l.code.formats}${(0,N4.getProperty)(E)}`:void 0});e.fail$data(b(B))}function b(E){return(0,N4._)`${E}.compare(${r}, ${n}) ${XBt[a].fail} 0`}},dependencies:["format"]};var GYc=e=>(e.addKeyword(fke.formatLimitDefinition),e);fke.default=GYc});var szi=H((k8e,izi)=>{"use strict";Object.defineProperty(k8e,"__esModule",{value:!0});var Ike=ezi(),FYc=tzi(),jWr=Hh(),rzi=new jWr.Name("fullFormats"),ZYc=new jWr.Name("fastFormats"),zWr=(e,t={keywords:!0})=>{if(Array.isArray(t))return nzi(e,t,Ike.fullFormats,rzi),e;let[r,n]=t.mode==="fast"?[Ike.fastFormats,ZYc]:[Ike.fullFormats,rzi],a=t.formats||Ike.formatNames;return nzi(e,a,r,n),t.keywords&&(0,FYc.default)(e),e};zWr.get=(e,t="full")=>{let n=(t==="fast"?Ike.fastFormats:Ike.fullFormats)[e];if(!n)throw new Error(`Unknown format "${e}"`);return n};function nzi(e,t,r,n){var a,o;(a=(o=e.opts.code).formats)!==null&&a!==void 0||(o.formats=(0,jWr._)`require("ajv-formats/dist/formats").${n}`);for(let l of t)e.addFormat(l,r[l])}izi.exports=k8e=zWr;Object.defineProperty(k8e,"__esModule",{value:!0});k8e.default=zWr});var Sy=H(JBt=>{"use strict";Object.defineProperty(JBt,"__esModule",{value:!0});JBt.isFunction=void 0;function LYc(e){return typeof e=="function"}JBt.isFunction=LYc});var ple=H(UBt=>{"use strict";Object.defineProperty(UBt,"__esModule",{value:!0});UBt.createErrorClass=void 0;function VYc(e){var t=function(n){Error.call(n),n.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}UBt.createErrorClass=VYc});var qWr=H(KBt=>{"use strict";Object.defineProperty(KBt,"__esModule",{value:!0});KBt.UnsubscriptionError=void 0;var PYc=ple();KBt.UnsubscriptionError=PYc.createErrorClass(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: `+r.map(function(n,a){return a+1+") "+n.toString()}).join(` - `):"",this.name="UnsubscriptionError",this.errors=r}})});var ste=H(jBt=>{"use strict";Object.defineProperty(jBt,"__esModule",{value:!0});jBt.arrRemove=void 0;function PYc(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}jBt.arrRemove=PYc});var TO=H(GV=>{"use strict";var ozi=GV&&GV.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},azi=GV&&GV.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},czi=GV&&GV.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(zBt,"__esModule",{value:!0});zBt.config=void 0;zBt.config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var tOr=H(Yj=>{"use strict";var gzi=Yj&&Yj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Azi=Yj&&Yj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(qBt,"__esModule",{value:!0});qBt.reportUnhandledError=void 0;var OYc=hke(),MYc=tOr();function HYc(e){MYc.timeoutProvider.setTimeout(function(){var t=OYc.config.onUnhandledError;if(t)t(e);else throw e})}qBt.reportUnhandledError=HYc});var rx=H($Bt=>{"use strict";Object.defineProperty($Bt,"__esModule",{value:!0});$Bt.noop=void 0;function YYc(){}$Bt.noop=YYc});var dzi=H(Qj=>{"use strict";Object.defineProperty(Qj,"__esModule",{value:!0});Qj.createNotification=Qj.nextNotification=Qj.errorNotification=Qj.COMPLETE_NOTIFICATION=void 0;Qj.COMPLETE_NOTIFICATION=function(){return ewt("C",void 0,void 0)}();function QYc(e){return ewt("E",void 0,e)}Qj.errorNotification=QYc;function XYc(e){return ewt("N",e,void 0)}Qj.nextNotification=XYc;function ewt(e,t,r){return{kind:e,value:t,error:r}}Qj.createNotification=ewt});var twt=H(mke=>{"use strict";Object.defineProperty(mke,"__esModule",{value:!0});mke.captureError=mke.errorContext=void 0;var pzi=hke(),u_e=null;function JYc(e){if(pzi.config.useDeprecatedSynchronousErrorHandling){var t=!u_e;if(t&&(u_e={errorThrown:!1,error:null}),e(),t){var r=u_e,n=r.errorThrown,a=r.error;if(u_e=null,n)throw a}}else e()}mke.errorContext=JYc;function UYc(e){pzi.config.useDeprecatedSynchronousErrorHandling&&u_e&&(u_e.errorThrown=!0,u_e.error=e)}mke.captureError=UYc});var Cke=H(D4=>{"use strict";var hzi=D4&&D4.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(D4,"__esModule",{value:!0});D4.EMPTY_OBSERVER=D4.SafeSubscriber=D4.Subscriber=void 0;var KYc=Sy(),fzi=TO(),oOr=hke(),jYc=rOr(),Izi=rx(),nOr=dzi(),zYc=tOr(),qYc=twt(),mzi=function(e){hzi(t,e);function t(r){var n=e.call(this)||this;return n.isStopped=!1,r?(n.destination=r,fzi.isSubscription(r)&&r.add(n)):n.destination=D4.EMPTY_OBSERVER,n}return t.create=function(r,n,a){return new Czi(r,n,a)},t.prototype.next=function(r){this.isStopped?sOr(nOr.nextNotification(r),this):this._next(r)},t.prototype.error=function(r){this.isStopped?sOr(nOr.errorNotification(r),this):(this.isStopped=!0,this._error(r))},t.prototype.complete=function(){this.isStopped?sOr(nOr.COMPLETE_NOTIFICATION,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(r){this.destination.next(r)},t.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fzi.Subscription);D4.Subscriber=mzi;var $Yc=Function.prototype.bind;function iOr(e,t){return $Yc.call(e,t)}var eQc=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var r=this.partialObserver;if(r.next)try{r.next(t)}catch(n){rwt(n)}},e.prototype.error=function(t){var r=this.partialObserver;if(r.error)try{r.error(t)}catch(n){rwt(n)}else rwt(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(r){rwt(r)}},e}(),Czi=function(e){hzi(t,e);function t(r,n,a){var o=e.call(this)||this,l;if(KYc.isFunction(r)||!r)l={next:r??void 0,error:n??void 0,complete:a??void 0};else{var A;o&&oOr.config.useDeprecatedNextContext?(A=Object.create(r),A.unsubscribe=function(){return o.unsubscribe()},l={next:r.next&&iOr(r.next,A),error:r.error&&iOr(r.error,A),complete:r.complete&&iOr(r.complete,A)}):l=r}return o.destination=new eQc(l),o}return t}(mzi);D4.SafeSubscriber=Czi;function rwt(e){oOr.config.useDeprecatedSynchronousErrorHandling?qYc.captureError(e):jYc.reportUnhandledError(e)}function tQc(e){throw e}function sOr(e,t){var r=oOr.config.onStoppedNotification;r&&zYc.timeoutProvider.setTimeout(function(){return r(e,t)})}D4.EMPTY_OBSERVER={closed:!0,next:Izi.noop,error:tQc,complete:Izi.noop}});var G8e=H(nwt=>{"use strict";Object.defineProperty(nwt,"__esModule",{value:!0});nwt.observable=void 0;nwt.observable=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}()});var nx=H(iwt=>{"use strict";Object.defineProperty(iwt,"__esModule",{value:!0});iwt.identity=void 0;function rQc(e){return e}iwt.identity=rQc});var F8e=H(_ke=>{"use strict";Object.defineProperty(_ke,"__esModule",{value:!0});_ke.pipeFromArray=_ke.pipe=void 0;var nQc=nx();function iQc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(swt,"__esModule",{value:!0});swt.Observable=void 0;var cOr=Cke(),sQc=TO(),oQc=G8e(),aQc=F8e(),cQc=hke(),aOr=Sy(),lQc=twt(),uQc=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(t,r,n){var a=this,o=AQc(t)?t:new cOr.SafeSubscriber(t,r,n);return lQc.errorContext(function(){var l=a,A=l.operator,f=l.source;o.add(A?A.call(o,f):f?a._subscribe(o):a._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(r){t.error(r)}},e.prototype.forEach=function(t,r){var n=this;return r=yzi(r),new r(function(a,o){var l=new cOr.SafeSubscriber({next:function(A){try{t(A)}catch(f){o(f),l.unsubscribe()}},error:o,complete:a});n.subscribe(l)})},e.prototype._subscribe=function(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)},e.prototype[oQc.observable]=function(){return this},e.prototype.pipe=function(){for(var t=[],r=0;r{"use strict";Object.defineProperty(yke,"__esModule",{value:!0});yke.operate=yke.hasLift=void 0;var dQc=Sy();function bzi(e){return dQc.isFunction(e?.lift)}yke.hasLift=bzi;function pQc(e){return function(t){if(bzi(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}yke.operate=pQc});var Cd=H(fle=>{"use strict";var fQc=fle&&fle.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(fle,"__esModule",{value:!0});fle.OperatorSubscriber=fle.createOperatorSubscriber=void 0;var IQc=Cke();function hQc(e,t,r,n,a){return new Ezi(e,t,r,n,a)}fle.createOperatorSubscriber=hQc;var Ezi=function(e){fQc(t,e);function t(r,n,a,o,l,A){var f=e.call(this,r)||this;return f.onFinalize=l,f.shouldUnsubscribe=A,f._next=n?function(I){try{n(I)}catch(C){r.error(C)}}:e.prototype._next,f._error=o?function(I){try{o(I)}catch(C){r.error(C)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=a?function(){try{a()}catch(I){r.error(I)}finally{this.unsubscribe()}}:e.prototype._complete,f}return t.prototype.unsubscribe=function(){var r;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((r=this.onFinalize)===null||r===void 0||r.call(this))}},t}(IQc.Subscriber);fle.OperatorSubscriber=Ezi});var awt=H(owt=>{"use strict";Object.defineProperty(owt,"__esModule",{value:!0});owt.refCount=void 0;var mQc=qg(),CQc=Cd();function _Qc(){return mQc.operate(function(e,t){var r=null;e._refCount++;var n=CQc.createOperatorSubscriber(t,void 0,void 0,void 0,function(){if(!e||e._refCount<=0||0<--e._refCount){r=null;return}var a=e._connection,o=r;r=null,a&&(!o||a===o)&&a.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}owt.refCount=_Qc});var Z8e=H(bke=>{"use strict";var yQc=bke&&bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(bke,"__esModule",{value:!0});bke.ConnectableObservable=void 0;var bQc=ub(),Szi=TO(),EQc=awt(),SQc=Cd(),vQc=qg(),BQc=function(e){yQc(t,e);function t(r,n){var a=e.call(this)||this;return a.source=r,a.subjectFactory=n,a._subject=null,a._refCount=0,a._connection=null,vQc.hasLift(r)&&(a.lift=r.lift),a}return t.prototype._subscribe=function(r){return this.getSubject().subscribe(r)},t.prototype.getSubject=function(){var r=this._subject;return(!r||r.isStopped)&&(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var r=this._connection;this._subject=this._connection=null,r?.unsubscribe()},t.prototype.connect=function(){var r=this,n=this._connection;if(!n){n=this._connection=new Szi.Subscription;var a=this.getSubject();n.add(this.source.subscribe(SQc.createOperatorSubscriber(a,void 0,function(){r._teardown(),a.complete()},function(o){r._teardown(),a.error(o)},function(){return r._teardown()}))),n.closed&&(this._connection=null,n=Szi.Subscription.EMPTY)}return n},t.prototype.refCount=function(){return EQc.refCount()(this)},t}(bQc.Observable);bke.ConnectableObservable=BQc});var vzi=H(L8e=>{"use strict";Object.defineProperty(L8e,"__esModule",{value:!0});L8e.performanceTimestampProvider=void 0;L8e.performanceTimestampProvider={now:function(){return(L8e.performanceTimestampProvider.delegate||performance).now()},delegate:void 0}});var lOr=H(k4=>{"use strict";var Bzi=k4&&k4.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},wzi=k4&&k4.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(cwt,"__esModule",{value:!0});cwt.animationFrames=void 0;var TQc=ub(),RQc=vzi(),Tzi=lOr();function NQc(e){return e?Rzi(e):DQc}cwt.animationFrames=NQc;function Rzi(e){return new TQc.Observable(function(t){var r=e||RQc.performanceTimestampProvider,n=r.now(),a=0,o=function(){t.closed||(a=Tzi.animationFrameProvider.requestAnimationFrame(function(l){a=0;var A=r.now();t.next({timestamp:e?A:l,elapsed:A-n}),o()}))};return o(),function(){a&&Tzi.animationFrameProvider.cancelAnimationFrame(a)}})}var DQc=Rzi()});var uOr=H(lwt=>{"use strict";Object.defineProperty(lwt,"__esModule",{value:!0});lwt.ObjectUnsubscribedError=void 0;var kQc=ple();lwt.ObjectUnsubscribedError=kQc.createErrorClass(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})});var ix=H(Xj=>{"use strict";var kzi=Xj&&Xj.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),xQc=Xj&&Xj.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Xj,"__esModule",{value:!0});Xj.AnonymousSubject=Xj.Subject=void 0;var Dzi=ub(),AOr=TO(),GQc=uOr(),FQc=ste(),gOr=twt(),xzi=function(e){kzi(t,e);function t(){var r=e.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return t.prototype.lift=function(r){var n=new dOr(this,this);return n.operator=r,n},t.prototype._throwIfClosed=function(){if(this.closed)throw new GQc.ObjectUnsubscribedError},t.prototype.next=function(r){var n=this;gOr.errorContext(function(){var a,o;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var l=xQc(n.currentObservers),A=l.next();!A.done;A=l.next()){var f=A.value;f.next(r)}}catch(I){a={error:I}}finally{try{A&&!A.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}}})},t.prototype.error=function(r){var n=this;gOr.errorContext(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var a=n.observers;a.length;)a.shift().error(r)}})},t.prototype.complete=function(){var r=this;gOr.errorContext(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,a=this,o=a.hasError,l=a.isStopped,A=a.observers;return o||l?AOr.EMPTY_SUBSCRIPTION:(this.currentObservers=null,A.push(r),new AOr.Subscription(function(){n.currentObservers=null,FQc.arrRemove(A,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n.thrownError,l=n.isStopped;a?r.error(o):l&&r.complete()},t.prototype.asObservable=function(){var r=new Dzi.Observable;return r.source=this,r},t.create=function(r,n){return new dOr(r,n)},t}(Dzi.Observable);Xj.Subject=xzi;var dOr=function(e){kzi(t,e);function t(r,n){var a=e.call(this)||this;return a.destination=r,a.source=n,a}return t.prototype.next=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.next)===null||a===void 0||a.call(n,r)},t.prototype.error=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.error)===null||a===void 0||a.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,a;return(a=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&a!==void 0?a:AOr.EMPTY_SUBSCRIPTION},t}(xzi);Xj.AnonymousSubject=dOr});var pOr=H(Eke=>{"use strict";var ZQc=Eke&&Eke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Eke,"__esModule",{value:!0});Eke.BehaviorSubject=void 0;var LQc=ix(),VQc=function(e){ZQc(t,e);function t(r){var n=e.call(this)||this;return n._value=r,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var n=e.prototype._subscribe.call(this,r);return!n.closed&&r.next(this._value),n},t.prototype.getValue=function(){var r=this,n=r.hasError,a=r.thrownError,o=r._value;if(n)throw a;return this._throwIfClosed(),o},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(LQc.Subject);Eke.BehaviorSubject=VQc});var uwt=H(V8e=>{"use strict";Object.defineProperty(V8e,"__esModule",{value:!0});V8e.dateTimestampProvider=void 0;V8e.dateTimestampProvider={now:function(){return(V8e.dateTimestampProvider.delegate||Date).now()},delegate:void 0}});var gwt=H(Ske=>{"use strict";var PQc=Ske&&Ske.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ske,"__esModule",{value:!0});Ske.ReplaySubject=void 0;var WQc=ix(),OQc=uwt(),MQc=function(e){PQc(t,e);function t(r,n,a){r===void 0&&(r=1/0),n===void 0&&(n=1/0),a===void 0&&(a=OQc.dateTimestampProvider);var o=e.call(this)||this;return o._bufferSize=r,o._windowTime=n,o._timestampProvider=a,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,r),o._windowTime=Math.max(1,n),o}return t.prototype.next=function(r){var n=this,a=n.isStopped,o=n._buffer,l=n._infiniteTimeWindow,A=n._timestampProvider,f=n._windowTime;a||(o.push(r),!l&&o.push(A.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),a=this,o=a._infiniteTimeWindow,l=a._buffer,A=l.slice(),f=0;f{"use strict";var HQc=vke&&vke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(vke,"__esModule",{value:!0});vke.AsyncSubject=void 0;var YQc=ix(),QQc=function(e){HQc(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._value=null,r._hasValue=!1,r._isComplete=!1,r}return t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n._hasValue,l=n._value,A=n.thrownError,f=n.isStopped,I=n._isComplete;a?r.error(A):(f||I)&&(o&&r.next(l),r.complete())},t.prototype.next=function(r){this.isStopped||(this._value=r,this._hasValue=!0)},t.prototype.complete=function(){var r=this,n=r._hasValue,a=r._value,o=r._isComplete;o||(this._isComplete=!0,n&&e.prototype.next.call(this,a),e.prototype.complete.call(this))},t}(YQc.Subject);vke.AsyncSubject=QQc});var Gzi=H(Bke=>{"use strict";var XQc=Bke&&Bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Bke,"__esModule",{value:!0});Bke.Action=void 0;var JQc=TO(),UQc=function(e){XQc(t,e);function t(r,n){return e.call(this)||this}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),this},t}(JQc.Subscription);Bke.Action=UQc});var Lzi=H(Jj=>{"use strict";var Fzi=Jj&&Jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Zzi=Jj&&Jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var KQc=wke&&wke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(wke,"__esModule",{value:!0});wke.AsyncAction=void 0;var jQc=Gzi(),Vzi=Lzi(),zQc=ste(),qQc=function(e){KQc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a.pending=!1,a}return t.prototype.schedule=function(r,n){var a;if(n===void 0&&(n=0),this.closed)return this;this.state=r;var o=this.id,l=this.scheduler;return o!=null&&(this.id=this.recycleAsyncId(l,o,n)),this.pending=!0,this.delay=n,this.id=(a=this.id)!==null&&a!==void 0?a:this.requestAsyncId(l,this.id,n),this},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),Vzi.intervalProvider.setInterval(r.flush.bind(r,this),a)},t.prototype.recycleAsyncId=function(r,n,a){if(a===void 0&&(a=0),a!=null&&this.delay===a&&this.pending===!1)return n;n!=null&&Vzi.intervalProvider.clearInterval(n)},t.prototype.execute=function(r,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var a=this._execute(r,n);if(a)return a;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(r,n){var a=!1,o;try{this.work(r)}catch(l){a=!0,o=l||new Error("Scheduled action threw falsy error")}if(a)return this.unsubscribe(),o},t.prototype.unsubscribe=function(){if(!this.closed){var r=this,n=r.id,a=r.scheduler,o=a.actions;this.work=this.state=this.scheduler=null,this.pending=!1,zQc.arrRemove(o,this),n!=null&&(this.id=this.recycleAsyncId(a,n,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(jQc.Action);wke.AsyncAction=qQc});var Wzi=H(Rke=>{"use strict";Object.defineProperty(Rke,"__esModule",{value:!0});Rke.TestTools=Rke.Immediate=void 0;var $Qc=1,fOr,dwt={};function Pzi(e){return e in dwt?(delete dwt[e],!0):!1}Rke.Immediate={setImmediate:function(e){var t=$Qc++;return dwt[t]=!0,fOr||(fOr=Promise.resolve()),fOr.then(function(){return Pzi(t)&&e()}),t},clearImmediate:function(e){Pzi(e)}};Rke.TestTools={pending:function(){return Object.keys(dwt).length}}});var Mzi=H(Uj=>{"use strict";var eXc=Uj&&Uj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},tXc=Uj&&Uj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var iXc=Nke&&Nke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Nke,"__esModule",{value:!0});Nke.AsapAction=void 0;var sXc=Tke(),Hzi=Mzi(),oXc=function(e){iXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=Hzi.immediateProvider.setImmediate(r.flush.bind(r,void 0))))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(Hzi.immediateProvider.clearImmediate(n),r._scheduled===n&&(r._scheduled=void 0))},t}(sXc.AsyncAction);Nke.AsapAction=oXc});var IOr=H(pwt=>{"use strict";Object.defineProperty(pwt,"__esModule",{value:!0});pwt.Scheduler=void 0;var aXc=uwt(),cXc=function(){function e(t,r){r===void 0&&(r=e.now),this.schedulerActionCtor=t,this.now=r}return e.prototype.schedule=function(t,r,n){return r===void 0&&(r=0),new this.schedulerActionCtor(this,t).schedule(n,r)},e.now=aXc.dateTimestampProvider.now,e}();pwt.Scheduler=cXc});var kke=H(Dke=>{"use strict";var lXc=Dke&&Dke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Dke,"__esModule",{value:!0});Dke.AsyncScheduler=void 0;var Qzi=IOr(),uXc=function(e){lXc(t,e);function t(r,n){n===void 0&&(n=Qzi.Scheduler.now);var a=e.call(this,r,n)||this;return a.actions=[],a._active=!1,a}return t.prototype.flush=function(r){var n=this.actions;if(this._active){n.push(r);return}var a;this._active=!0;do if(a=r.execute(r.state,r.delay))break;while(r=n.shift());if(this._active=!1,a){for(;r=n.shift();)r.unsubscribe();throw a}},t}(Qzi.Scheduler);Dke.AsyncScheduler=uXc});var Xzi=H(xke=>{"use strict";var gXc=xke&&xke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(xke,"__esModule",{value:!0});xke.AsapScheduler=void 0;var AXc=kke(),dXc=function(e){gXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(AXc.AsyncScheduler);xke.AsapScheduler=dXc});var Jzi=H(g_e=>{"use strict";Object.defineProperty(g_e,"__esModule",{value:!0});g_e.asap=g_e.asapScheduler=void 0;var pXc=Yzi(),fXc=Xzi();g_e.asapScheduler=new fXc.AsapScheduler(pXc.AsapAction);g_e.asap=g_e.asapScheduler});var FV=H(A_e=>{"use strict";Object.defineProperty(A_e,"__esModule",{value:!0});A_e.async=A_e.asyncScheduler=void 0;var IXc=Tke(),hXc=kke();A_e.asyncScheduler=new hXc.AsyncScheduler(IXc.AsyncAction);A_e.async=A_e.asyncScheduler});var Uzi=H(Gke=>{"use strict";var mXc=Gke&&Gke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Gke,"__esModule",{value:!0});Gke.QueueAction=void 0;var CXc=Tke(),_Xc=function(e){mXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),n>0?e.prototype.schedule.call(this,r,n):(this.delay=n,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,n){return n>0||this.closed?e.prototype.execute.call(this,r,n):this._execute(r,n)},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!=null&&a>0||a==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.flush(this),0)},t}(CXc.AsyncAction);Gke.QueueAction=_Xc});var Kzi=H(Fke=>{"use strict";var yXc=Fke&&Fke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Fke,"__esModule",{value:!0});Fke.QueueScheduler=void 0;var bXc=kke(),EXc=function(e){yXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(bXc.AsyncScheduler);Fke.QueueScheduler=EXc});var jzi=H(d_e=>{"use strict";Object.defineProperty(d_e,"__esModule",{value:!0});d_e.queue=d_e.queueScheduler=void 0;var SXc=Uzi(),vXc=Kzi();d_e.queueScheduler=new vXc.QueueScheduler(SXc.QueueAction);d_e.queue=d_e.queueScheduler});var qzi=H(Zke=>{"use strict";var BXc=Zke&&Zke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Zke,"__esModule",{value:!0});Zke.AnimationFrameAction=void 0;var wXc=Tke(),zzi=lOr(),TXc=function(e){BXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=zzi.animationFrameProvider.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(zzi.animationFrameProvider.cancelAnimationFrame(n),r._scheduled=void 0)},t}(wXc.AsyncAction);Zke.AnimationFrameAction=TXc});var $zi=H(Lke=>{"use strict";var RXc=Lke&&Lke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Lke,"__esModule",{value:!0});Lke.AnimationFrameScheduler=void 0;var NXc=kke(),DXc=function(e){RXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(NXc.AsyncScheduler);Lke.AnimationFrameScheduler=DXc});var eqi=H(p_e=>{"use strict";Object.defineProperty(p_e,"__esModule",{value:!0});p_e.animationFrame=p_e.animationFrameScheduler=void 0;var kXc=qzi(),xXc=$zi();p_e.animationFrameScheduler=new xXc.AnimationFrameScheduler(kXc.AnimationFrameAction);p_e.animationFrame=p_e.animationFrameScheduler});var nqi=H(Ile=>{"use strict";var tqi=Ile&&Ile.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ile,"__esModule",{value:!0});Ile.VirtualAction=Ile.VirtualTimeScheduler=void 0;var GXc=Tke(),FXc=TO(),ZXc=kke(),LXc=function(e){tqi(t,e);function t(r,n){r===void 0&&(r=rqi),n===void 0&&(n=1/0);var a=e.call(this,r,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return t.prototype.flush=function(){for(var r=this,n=r.actions,a=r.maxFrames,o,l;(l=n[0])&&l.delay<=a&&(n.shift(),this.frame=l.delay,!(o=l.execute(l.state,l.delay))););if(o){for(;l=n.shift();)l.unsubscribe();throw o}},t.frameTimeFactor=10,t}(ZXc.AsyncScheduler);Ile.VirtualTimeScheduler=LXc;var rqi=function(e){tqi(t,e);function t(r,n,a){a===void 0&&(a=r.index+=1);var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o.index=a,o.active=!0,o.index=r.index=a,o}return t.prototype.schedule=function(r,n){if(n===void 0&&(n=0),Number.isFinite(n)){if(!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var a=new t(this.scheduler,this.work);return this.add(a),a.schedule(r,n)}else return FXc.Subscription.EMPTY},t.prototype.requestAsyncId=function(r,n,a){a===void 0&&(a=0),this.delay=r.frame+a;var o=r.actions;return o.push(this),o.sort(t.sortActions),1},t.prototype.recycleAsyncId=function(r,n,a){a===void 0&&(a=0)},t.prototype._execute=function(r,n){if(this.active===!0)return e.prototype._execute.call(this,r,n)},t.sortActions=function(r,n){return r.delay===n.delay?r.index===n.index?0:r.index>n.index?1:-1:r.delay>n.delay?1:-1},t}(GXc.AsyncAction);Ile.VirtualAction=rqi});var x4=H(f_e=>{"use strict";Object.defineProperty(f_e,"__esModule",{value:!0});f_e.empty=f_e.EMPTY=void 0;var iqi=ub();f_e.EMPTY=new iqi.Observable(function(e){return e.complete()});function VXc(e){return e?PXc(e):f_e.EMPTY}f_e.empty=VXc;function PXc(e){return new iqi.Observable(function(t){return e.schedule(function(){return t.complete()})})}});var P8e=H(fwt=>{"use strict";Object.defineProperty(fwt,"__esModule",{value:!0});fwt.isScheduler=void 0;var WXc=Sy();function OXc(e){return e&&WXc.isFunction(e.schedule)}fwt.isScheduler=OXc});var ZV=H(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});hle.popNumber=hle.popScheduler=hle.popResultSelector=void 0;var MXc=Sy(),HXc=P8e();function hOr(e){return e[e.length-1]}function YXc(e){return MXc.isFunction(hOr(e))?e.pop():void 0}hle.popResultSelector=YXc;function QXc(e){return HXc.isScheduler(hOr(e))?e.pop():void 0}hle.popScheduler=QXc;function XXc(e,t){return typeof hOr(e)=="number"?e.pop():t}hle.popNumber=XXc});var hwt=H(Iwt=>{"use strict";Object.defineProperty(Iwt,"__esModule",{value:!0});Iwt.isArrayLike=void 0;Iwt.isArrayLike=function(e){return e&&typeof e.length=="number"&&typeof e!="function"}});var mOr=H(mwt=>{"use strict";Object.defineProperty(mwt,"__esModule",{value:!0});mwt.isPromise=void 0;var JXc=Sy();function UXc(e){return JXc.isFunction(e?.then)}mwt.isPromise=UXc});var COr=H(Cwt=>{"use strict";Object.defineProperty(Cwt,"__esModule",{value:!0});Cwt.isInteropObservable=void 0;var KXc=G8e(),jXc=Sy();function zXc(e){return jXc.isFunction(e[KXc.observable])}Cwt.isInteropObservable=zXc});var _Or=H(_wt=>{"use strict";Object.defineProperty(_wt,"__esModule",{value:!0});_wt.isAsyncIterable=void 0;var qXc=Sy();function $Xc(e){return Symbol.asyncIterator&&qXc.isFunction(e?.[Symbol.asyncIterator])}_wt.isAsyncIterable=$Xc});var yOr=H(ywt=>{"use strict";Object.defineProperty(ywt,"__esModule",{value:!0});ywt.createInvalidObservableTypeError=void 0;function e4c(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}ywt.createInvalidObservableTypeError=e4c});var bOr=H(Vke=>{"use strict";Object.defineProperty(Vke,"__esModule",{value:!0});Vke.iterator=Vke.getSymbolIterator=void 0;function sqi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}Vke.getSymbolIterator=sqi;Vke.iterator=sqi()});var EOr=H(bwt=>{"use strict";Object.defineProperty(bwt,"__esModule",{value:!0});bwt.isIterable=void 0;var t4c=bOr(),r4c=Sy();function n4c(e){return r4c.isFunction(e?.[t4c.iterator])}bwt.isIterable=n4c});var Ewt=H(CH=>{"use strict";var i4c=CH&&CH.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]1||A(E,N)})})}function A(E,N){try{f(n[E](N))}catch(B){b(o[0][3],B)}}function f(E){E.value instanceof Pke?Promise.resolve(E.value.v).then(I,C):b(o[0][2],E)}function I(E){A("next",E)}function C(E){A("throw",E)}function b(E,N){E(N),o.shift(),o.length&&A(o[0][0],o[0][1])}};Object.defineProperty(CH,"__esModule",{value:!0});CH.isReadableStreamLike=CH.readableStreamLikeToAsyncGenerator=void 0;var o4c=Sy();function a4c(e){return s4c(this,arguments,function(){var r,n,a,o;return i4c(this,function(l){switch(l.label){case 0:r=e.getReader(),l.label=1;case 1:l.trys.push([1,,9,10]),l.label=2;case 2:return[4,Pke(r.read())];case 3:return n=l.sent(),a=n.value,o=n.done,o?[4,Pke(void 0)]:[3,5];case 4:return[2,l.sent()];case 5:return[4,Pke(a)];case 6:return[4,l.sent()];case 7:return l.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}CH.readableStreamLikeToAsyncGenerator=a4c;function c4c(e){return o4c.isFunction(e?.getReader)}CH.isReadableStreamLike=c4c});var uh=H(G2=>{"use strict";var l4c=G2&&G2.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})},u4c=G2&&G2.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(G2,"__esModule",{value:!0});G2.fromReadableStreamLike=G2.fromAsyncIterable=G2.fromIterable=G2.fromPromise=G2.fromArrayLike=G2.fromInteropObservable=G2.innerFrom=void 0;var A4c=hwt(),d4c=mOr(),Wke=ub(),p4c=COr(),f4c=_Or(),I4c=yOr(),h4c=EOr(),oqi=Ewt(),m4c=Sy(),C4c=rOr(),_4c=G8e();function y4c(e){if(e instanceof Wke.Observable)return e;if(e!=null){if(p4c.isInteropObservable(e))return aqi(e);if(A4c.isArrayLike(e))return cqi(e);if(d4c.isPromise(e))return lqi(e);if(f4c.isAsyncIterable(e))return vOr(e);if(h4c.isIterable(e))return uqi(e);if(oqi.isReadableStreamLike(e))return gqi(e)}throw I4c.createInvalidObservableTypeError(e)}G2.innerFrom=y4c;function aqi(e){return new Wke.Observable(function(t){var r=e[_4c.observable]();if(m4c.isFunction(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}G2.fromInteropObservable=aqi;function cqi(e){return new Wke.Observable(function(t){for(var r=0;r{"use strict";Object.defineProperty(Swt,"__esModule",{value:!0});Swt.executeSchedule=void 0;function E4c(e,t,r,n,a){n===void 0&&(n=0),a===void 0&&(a=!1);var o=t.schedule(function(){r(),a?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(o),!a)return o}Swt.executeSchedule=E4c});var Oke=H(vwt=>{"use strict";Object.defineProperty(vwt,"__esModule",{value:!0});vwt.observeOn=void 0;var BOr=ote(),S4c=qg(),v4c=Cd();function B4c(e,t){return t===void 0&&(t=0),S4c.operate(function(r,n){r.subscribe(v4c.createOperatorSubscriber(n,function(a){return BOr.executeSchedule(n,e,function(){return n.next(a)},t)},function(){return BOr.executeSchedule(n,e,function(){return n.complete()},t)},function(a){return BOr.executeSchedule(n,e,function(){return n.error(a)},t)}))})}vwt.observeOn=B4c});var Mke=H(Bwt=>{"use strict";Object.defineProperty(Bwt,"__esModule",{value:!0});Bwt.subscribeOn=void 0;var w4c=qg();function T4c(e,t){return t===void 0&&(t=0),w4c.operate(function(r,n){n.add(e.schedule(function(){return r.subscribe(n)},t))})}Bwt.subscribeOn=T4c});var Aqi=H(wwt=>{"use strict";Object.defineProperty(wwt,"__esModule",{value:!0});wwt.scheduleObservable=void 0;var R4c=uh(),N4c=Oke(),D4c=Mke();function k4c(e,t){return R4c.innerFrom(e).pipe(D4c.subscribeOn(t),N4c.observeOn(t))}wwt.scheduleObservable=k4c});var dqi=H(Twt=>{"use strict";Object.defineProperty(Twt,"__esModule",{value:!0});Twt.schedulePromise=void 0;var x4c=uh(),G4c=Oke(),F4c=Mke();function Z4c(e,t){return x4c.innerFrom(e).pipe(F4c.subscribeOn(t),G4c.observeOn(t))}Twt.schedulePromise=Z4c});var pqi=H(Rwt=>{"use strict";Object.defineProperty(Rwt,"__esModule",{value:!0});Rwt.scheduleArray=void 0;var L4c=ub();function V4c(e,t){return new L4c.Observable(function(r){var n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}Rwt.scheduleArray=V4c});var wOr=H(Nwt=>{"use strict";Object.defineProperty(Nwt,"__esModule",{value:!0});Nwt.scheduleIterable=void 0;var P4c=ub(),W4c=bOr(),O4c=Sy(),fqi=ote();function M4c(e,t){return new P4c.Observable(function(r){var n;return fqi.executeSchedule(r,t,function(){n=e[W4c.iterator](),fqi.executeSchedule(r,t,function(){var a,o,l;try{a=n.next(),o=a.value,l=a.done}catch(A){r.error(A);return}l?r.complete():r.next(o)},0,!0)}),function(){return O4c.isFunction(n?.return)&&n.return()}})}Nwt.scheduleIterable=M4c});var TOr=H(Dwt=>{"use strict";Object.defineProperty(Dwt,"__esModule",{value:!0});Dwt.scheduleAsyncIterable=void 0;var H4c=ub(),Iqi=ote();function Y4c(e,t){if(!e)throw new Error("Iterable cannot be null");return new H4c.Observable(function(r){Iqi.executeSchedule(r,t,function(){var n=e[Symbol.asyncIterator]();Iqi.executeSchedule(r,t,function(){n.next().then(function(a){a.done?r.complete():r.next(a.value)})},0,!0)})})}Dwt.scheduleAsyncIterable=Y4c});var hqi=H(kwt=>{"use strict";Object.defineProperty(kwt,"__esModule",{value:!0});kwt.scheduleReadableStreamLike=void 0;var Q4c=TOr(),X4c=Ewt();function J4c(e,t){return Q4c.scheduleAsyncIterable(X4c.readableStreamLikeToAsyncGenerator(e),t)}kwt.scheduleReadableStreamLike=J4c});var ROr=H(xwt=>{"use strict";Object.defineProperty(xwt,"__esModule",{value:!0});xwt.scheduled=void 0;var U4c=Aqi(),K4c=dqi(),j4c=pqi(),z4c=wOr(),q4c=TOr(),$4c=COr(),eJc=mOr(),tJc=hwt(),rJc=EOr(),nJc=_Or(),iJc=yOr(),sJc=Ewt(),oJc=hqi();function aJc(e,t){if(e!=null){if($4c.isInteropObservable(e))return U4c.scheduleObservable(e,t);if(tJc.isArrayLike(e))return j4c.scheduleArray(e,t);if(eJc.isPromise(e))return K4c.schedulePromise(e,t);if(nJc.isAsyncIterable(e))return q4c.scheduleAsyncIterable(e,t);if(rJc.isIterable(e))return z4c.scheduleIterable(e,t);if(sJc.isReadableStreamLike(e))return oJc.scheduleReadableStreamLike(e,t)}throw iJc.createInvalidObservableTypeError(e)}xwt.scheduled=aJc});var ate=H(Gwt=>{"use strict";Object.defineProperty(Gwt,"__esModule",{value:!0});Gwt.from=void 0;var cJc=ROr(),lJc=uh();function uJc(e,t){return t?cJc.scheduled(e,t):lJc.innerFrom(e)}Gwt.from=uJc});var Zwt=H(Fwt=>{"use strict";Object.defineProperty(Fwt,"__esModule",{value:!0});Fwt.of=void 0;var gJc=ZV(),AJc=ate();function dJc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(Lwt,"__esModule",{value:!0});Lwt.throwError=void 0;var pJc=ub(),fJc=Sy();function IJc(e,t){var r=fJc.isFunction(e)?e:function(){return e},n=function(a){return a.error(r())};return new pJc.Observable(t?function(a){return t.schedule(n,0,a)}:n)}Lwt.throwError=IJc});var Vwt=H(cte=>{"use strict";Object.defineProperty(cte,"__esModule",{value:!0});cte.observeNotification=cte.Notification=cte.NotificationKind=void 0;var hJc=x4(),mJc=Zwt(),CJc=NOr(),_Jc=Sy(),yJc;(function(e){e.NEXT="N",e.ERROR="E",e.COMPLETE="C"})(yJc=cte.NotificationKind||(cte.NotificationKind={}));var bJc=function(){function e(t,r,n){this.kind=t,this.value=r,this.error=n,this.hasValue=t==="N"}return e.prototype.observe=function(t){return mqi(this,t)},e.prototype.do=function(t,r,n){var a=this,o=a.kind,l=a.value,A=a.error;return o==="N"?t?.(l):o==="E"?r?.(A):n?.()},e.prototype.accept=function(t,r,n){var a;return _Jc.isFunction((a=t)===null||a===void 0?void 0:a.next)?this.observe(t):this.do(t,r,n)},e.prototype.toObservable=function(){var t=this,r=t.kind,n=t.value,a=t.error,o=r==="N"?mJc.of(n):r==="E"?CJc.throwError(function(){return a}):r==="C"?hJc.EMPTY:0;if(!o)throw new TypeError("Unexpected notification kind "+r);return o},e.createNext=function(t){return new e("N",t)},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e}();cte.Notification=bJc;function mqi(e,t){var r,n,a,o=e,l=o.kind,A=o.value,f=o.error;if(typeof l!="string")throw new TypeError('Invalid notification, missing "kind"');l==="N"?(r=t.next)===null||r===void 0||r.call(t,A):l==="E"?(n=t.error)===null||n===void 0||n.call(t,f):(a=t.complete)===null||a===void 0||a.call(t)}cte.observeNotification=mqi});var _qi=H(Pwt=>{"use strict";Object.defineProperty(Pwt,"__esModule",{value:!0});Pwt.isObservable=void 0;var EJc=ub(),Cqi=Sy();function SJc(e){return!!e&&(e instanceof EJc.Observable||Cqi.isFunction(e.lift)&&Cqi.isFunction(e.subscribe))}Pwt.isObservable=SJc});var mle=H(Wwt=>{"use strict";Object.defineProperty(Wwt,"__esModule",{value:!0});Wwt.EmptyError=void 0;var vJc=ple();Wwt.EmptyError=vJc.createErrorClass(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})});var yqi=H(Owt=>{"use strict";Object.defineProperty(Owt,"__esModule",{value:!0});Owt.lastValueFrom=void 0;var BJc=mle();function wJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=!1,l;e.subscribe({next:function(A){l=A,o=!0},error:a,complete:function(){o?n(l):r?n(t.defaultValue):a(new BJc.EmptyError)}})})}Owt.lastValueFrom=wJc});var bqi=H(Mwt=>{"use strict";Object.defineProperty(Mwt,"__esModule",{value:!0});Mwt.firstValueFrom=void 0;var TJc=mle(),RJc=Cke();function NJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=new RJc.SafeSubscriber({next:function(l){n(l),o.unsubscribe()},error:a,complete:function(){r?n(t.defaultValue):a(new TJc.EmptyError)}});e.subscribe(o)})}Mwt.firstValueFrom=NJc});var DOr=H(Hwt=>{"use strict";Object.defineProperty(Hwt,"__esModule",{value:!0});Hwt.ArgumentOutOfRangeError=void 0;var DJc=ple();Hwt.ArgumentOutOfRangeError=DJc.createErrorClass(function(e){return function(){e(this),this.name="ArgumentOutOfRangeError",this.message="argument out of range"}})});var kOr=H(Ywt=>{"use strict";Object.defineProperty(Ywt,"__esModule",{value:!0});Ywt.NotFoundError=void 0;var kJc=ple();Ywt.NotFoundError=kJc.createErrorClass(function(e){return function(r){e(this),this.name="NotFoundError",this.message=r}})});var xOr=H(Qwt=>{"use strict";Object.defineProperty(Qwt,"__esModule",{value:!0});Qwt.SequenceError=void 0;var xJc=ple();Qwt.SequenceError=xJc.createErrorClass(function(e){return function(r){e(this),this.name="SequenceError",this.message=r}})});var Jwt=H(Xwt=>{"use strict";Object.defineProperty(Xwt,"__esModule",{value:!0});Xwt.isValidDate=void 0;function GJc(e){return e instanceof Date&&!isNaN(e)}Xwt.isValidDate=GJc});var W8e=H(I_e=>{"use strict";Object.defineProperty(I_e,"__esModule",{value:!0});I_e.timeout=I_e.TimeoutError=void 0;var FJc=FV(),ZJc=Jwt(),LJc=qg(),VJc=uh(),PJc=ple(),WJc=Cd(),OJc=ote();I_e.TimeoutError=PJc.createErrorClass(function(e){return function(r){r===void 0&&(r=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=r}});function MJc(e,t){var r=ZJc.isValidDate(e)?{first:e}:typeof e=="number"?{each:e}:e,n=r.first,a=r.each,o=r.with,l=o===void 0?HJc:o,A=r.scheduler,f=A===void 0?t??FJc.asyncScheduler:A,I=r.meta,C=I===void 0?null:I;if(n==null&&a==null)throw new TypeError("No timeout provided.");return LJc.operate(function(b,E){var N,B,F=null,Q=0,X=function(ae){B=OJc.executeSchedule(E,f,function(){try{N.unsubscribe(),VJc.innerFrom(l({meta:C,lastValue:F,seen:Q})).subscribe(E)}catch(ne){E.error(ne)}},ae)};N=b.subscribe(WJc.createOperatorSubscriber(E,function(ae){B?.unsubscribe(),Q++,E.next(F=ae),a>0&&X(a)},void 0,void 0,function(){B?.closed||B?.unsubscribe(),F=null})),!Q&&X(n!=null?typeof n=="number"?n:+n-f.now():a)})}I_e.timeout=MJc;function HJc(e){throw new I_e.TimeoutError(e)}});var lte=H(Uwt=>{"use strict";Object.defineProperty(Uwt,"__esModule",{value:!0});Uwt.map=void 0;var YJc=qg(),QJc=Cd();function XJc(e,t){return YJc.operate(function(r,n){var a=0;r.subscribe(QJc.createOperatorSubscriber(n,function(o){n.next(e.call(t,o,a++))}))})}Uwt.map=XJc});var _le=H(Cle=>{"use strict";var JJc=Cle&&Cle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},UJc=Cle&&Cle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var $Jc=yle&&yle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Eqi=yle&&yle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(Kwt,"__esModule",{value:!0});Kwt.bindCallback=void 0;var oUc=FOr();function aUc(e,t,r){return oUc.bindCallbackInternals(!1,e,t,r)}Kwt.bindCallback=aUc});var vqi=H(jwt=>{"use strict";Object.defineProperty(jwt,"__esModule",{value:!0});jwt.bindNodeCallback=void 0;var cUc=FOr();function lUc(e,t,r){return cUc.bindCallbackInternals(!0,e,t,r)}jwt.bindNodeCallback=lUc});var ZOr=H(zwt=>{"use strict";Object.defineProperty(zwt,"__esModule",{value:!0});zwt.argsArgArrayOrObject=void 0;var uUc=Array.isArray,gUc=Object.getPrototypeOf,AUc=Object.prototype,dUc=Object.keys;function pUc(e){if(e.length===1){var t=e[0];if(uUc(t))return{args:t,keys:null};if(fUc(t)){var r=dUc(t);return{args:r.map(function(n){return t[n]}),keys:r}}}return{args:e,keys:null}}zwt.argsArgArrayOrObject=pUc;function fUc(e){return e&&typeof e=="object"&&gUc(e)===AUc}});var LOr=H(qwt=>{"use strict";Object.defineProperty(qwt,"__esModule",{value:!0});qwt.createObject=void 0;function IUc(e,t){return e.reduce(function(r,n,a){return r[n]=t[a],r},{})}qwt.createObject=IUc});var $wt=H(Hke=>{"use strict";Object.defineProperty(Hke,"__esModule",{value:!0});Hke.combineLatestInit=Hke.combineLatest=void 0;var hUc=ub(),mUc=ZOr(),Tqi=ate(),Rqi=nx(),CUc=_le(),Bqi=ZV(),_Uc=LOr(),yUc=Cd(),bUc=ote();function EUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(eTt,"__esModule",{value:!0});eTt.mergeInternals=void 0;var SUc=uh(),vUc=ote(),Dqi=Cd();function BUc(e,t,r,n,a,o,l,A){var f=[],I=0,C=0,b=!1,E=function(){b&&!f.length&&!I&&t.complete()},N=function(F){return I{"use strict";Object.defineProperty(rTt,"__esModule",{value:!0});rTt.mergeMap=void 0;var wUc=lte(),TUc=uh(),RUc=qg(),NUc=tTt(),DUc=Sy();function kqi(e,t,r){return r===void 0&&(r=1/0),DUc.isFunction(t)?kqi(function(n,a){return wUc.map(function(o,l){return t(n,o,a,l)})(TUc.innerFrom(e(n,a)))},r):(typeof t=="number"&&(r=t),RUc.operate(function(n,a){return NUc.mergeInternals(n,a,e,r)}))}rTt.mergeMap=kqi});var Yke=H(nTt=>{"use strict";Object.defineProperty(nTt,"__esModule",{value:!0});nTt.mergeAll=void 0;var kUc=Kj(),xUc=nx();function GUc(e){return e===void 0&&(e=1/0),kUc.mergeMap(xUc.identity,e)}nTt.mergeAll=GUc});var O8e=H(iTt=>{"use strict";Object.defineProperty(iTt,"__esModule",{value:!0});iTt.concatAll=void 0;var FUc=Yke();function ZUc(){return FUc.mergeAll(1)}iTt.concatAll=ZUc});var M8e=H(sTt=>{"use strict";Object.defineProperty(sTt,"__esModule",{value:!0});sTt.concat=void 0;var LUc=O8e(),VUc=ZV(),PUc=ate();function WUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(oTt,"__esModule",{value:!0});oTt.defer=void 0;var OUc=ub(),MUc=uh();function HUc(e){return new OUc.Observable(function(t){MUc.innerFrom(e()).subscribe(t)})}oTt.defer=HUc});var xqi=H(aTt=>{"use strict";Object.defineProperty(aTt,"__esModule",{value:!0});aTt.connectable=void 0;var YUc=ix(),QUc=ub(),XUc=H8e(),JUc={connector:function(){return new YUc.Subject},resetOnDisconnect:!0};function UUc(e,t){t===void 0&&(t=JUc);var r=null,n=t.connector,a=t.resetOnDisconnect,o=a===void 0?!0:a,l=n(),A=new QUc.Observable(function(f){return l.subscribe(f)});return A.connect=function(){return(!r||r.closed)&&(r=XUc.defer(function(){return e}).subscribe(l),o&&r.add(function(){return l=n()})),r},A}aTt.connectable=UUc});var Gqi=H(cTt=>{"use strict";Object.defineProperty(cTt,"__esModule",{value:!0});cTt.forkJoin=void 0;var KUc=ub(),jUc=ZOr(),zUc=uh(),qUc=ZV(),$Uc=Cd(),eKc=_le(),tKc=LOr();function rKc(){for(var e=[],t=0;t{"use strict";var nKc=Qke&&Qke.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o};Object.defineProperty(Qke,"__esModule",{value:!0});Qke.fromEvent=void 0;var iKc=uh(),sKc=ub(),oKc=Kj(),aKc=hwt(),h_e=Sy(),cKc=_le(),lKc=["addListener","removeListener"],uKc=["addEventListener","removeEventListener"],gKc=["on","off"];function VOr(e,t,r,n){if(h_e.isFunction(r)&&(n=r,r=void 0),n)return VOr(e,t,r).pipe(cKc.mapOneOrManyArgs(n));var a=nKc(pKc(e)?uKc.map(function(A){return function(f){return e[A](t,f,r)}}):AKc(e)?lKc.map(Fqi(e,t)):dKc(e)?gKc.map(Fqi(e,t)):[],2),o=a[0],l=a[1];if(!o&&aKc.isArrayLike(e))return oKc.mergeMap(function(A){return VOr(A,t,r)})(iKc.innerFrom(e));if(!o)throw new TypeError("Invalid event target");return new sKc.Observable(function(A){var f=function(){for(var I=[],C=0;C{"use strict";Object.defineProperty(lTt,"__esModule",{value:!0});lTt.fromEventPattern=void 0;var fKc=ub(),IKc=Sy(),hKc=_le();function Lqi(e,t,r){return r?Lqi(e,t).pipe(hKc.mapOneOrManyArgs(r)):new fKc.Observable(function(n){var a=function(){for(var l=[],A=0;A{"use strict";var mKc=Xke&&Xke.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]{"use strict";Object.defineProperty(uTt,"__esModule",{value:!0});uTt.iif=void 0;var EKc=H8e();function SKc(e,t,r){return EKc.defer(function(){return e()?t:r})}uTt.iif=SKc});var ble=H(gTt=>{"use strict";Object.defineProperty(gTt,"__esModule",{value:!0});gTt.timer=void 0;var vKc=ub(),BKc=FV(),wKc=P8e(),TKc=Jwt();function RKc(e,t,r){e===void 0&&(e=0),r===void 0&&(r=BKc.async);var n=-1;return t!=null&&(wKc.isScheduler(t)?r=t:n=t),new vKc.Observable(function(a){var o=TKc.isValidDate(e)?+e-r.now():e;o<0&&(o=0);var l=0;return r.schedule(function(){a.closed||(a.next(l++),0<=n?this.schedule(void 0,n):a.complete())},o)})}gTt.timer=RKc});var POr=H(ATt=>{"use strict";Object.defineProperty(ATt,"__esModule",{value:!0});ATt.interval=void 0;var NKc=FV(),DKc=ble();function kKc(e,t){return e===void 0&&(e=0),t===void 0&&(t=NKc.asyncScheduler),e<0&&(e=0),DKc.timer(e,e,t)}ATt.interval=kKc});var Hqi=H(dTt=>{"use strict";Object.defineProperty(dTt,"__esModule",{value:!0});dTt.merge=void 0;var xKc=Yke(),GKc=uh(),FKc=x4(),Mqi=ZV(),ZKc=ate();function LKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(m_e,"__esModule",{value:!0});m_e.never=m_e.NEVER=void 0;var VKc=ub(),PKc=rx();m_e.NEVER=new VKc.Observable(PKc.noop);function WKc(){return m_e.NEVER}m_e.never=WKc});var Ele=H(pTt=>{"use strict";Object.defineProperty(pTt,"__esModule",{value:!0});pTt.argsOrArgArray=void 0;var OKc=Array.isArray;function MKc(e){return e.length===1&&OKc(e[0])?e[0]:e}pTt.argsOrArgArray=MKc});var OOr=H(fTt=>{"use strict";Object.defineProperty(fTt,"__esModule",{value:!0});fTt.onErrorResumeNext=void 0;var HKc=ub(),YKc=Ele(),QKc=Cd(),Yqi=rx(),XKc=uh();function JKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(ITt,"__esModule",{value:!0});ITt.pairs=void 0;var UKc=ate();function KKc(e,t){return UKc.from(Object.entries(e),t)}ITt.pairs=KKc});var MOr=H(hTt=>{"use strict";Object.defineProperty(hTt,"__esModule",{value:!0});hTt.not=void 0;function jKc(e,t){return function(r,n){return!e.call(t,r,n)}}hTt.not=jKc});var ute=H(mTt=>{"use strict";Object.defineProperty(mTt,"__esModule",{value:!0});mTt.filter=void 0;var zKc=qg(),qKc=Cd();function $Kc(e,t){return zKc.operate(function(r,n){var a=0;r.subscribe(qKc.createOperatorSubscriber(n,function(o){return e.call(t,o,a++)&&n.next(o)}))})}mTt.filter=$Kc});var Uqi=H(CTt=>{"use strict";Object.defineProperty(CTt,"__esModule",{value:!0});CTt.partition=void 0;var e8c=MOr(),Xqi=ute(),Jqi=uh();function t8c(e,t,r){return[Xqi.filter(t,r)(Jqi.innerFrom(e)),Xqi.filter(e8c.not(t,r))(Jqi.innerFrom(e))]}CTt.partition=t8c});var HOr=H(Jke=>{"use strict";Object.defineProperty(Jke,"__esModule",{value:!0});Jke.raceInit=Jke.race=void 0;var r8c=ub(),Kqi=uh(),n8c=Ele(),i8c=Cd();function s8c(){for(var e=[],t=0;t{"use strict";Object.defineProperty(_Tt,"__esModule",{value:!0});_Tt.range=void 0;var o8c=ub(),a8c=x4();function c8c(e,t,r){if(t==null&&(t=e,e=0),t<=0)return a8c.EMPTY;var n=t+e;return new o8c.Observable(r?function(a){var o=e;return r.schedule(function(){o{"use strict";Object.defineProperty(yTt,"__esModule",{value:!0});yTt.using=void 0;var l8c=ub(),u8c=uh(),g8c=x4();function A8c(e,t){return new l8c.Observable(function(r){var n=e(),a=t(n),o=a?u8c.innerFrom(a):g8c.EMPTY;return o.subscribe(r),function(){n&&n.unsubscribe()}})}yTt.using=A8c});var bTt=H(Sle=>{"use strict";var d8c=Sle&&Sle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},p8c=Sle&&Sle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty($qi,"__esModule",{value:!0})});var STt=H(ETt=>{"use strict";Object.defineProperty(ETt,"__esModule",{value:!0});ETt.audit=void 0;var b8c=qg(),E8c=uh(),t$i=Cd();function S8c(e){return b8c.operate(function(t,r){var n=!1,a=null,o=null,l=!1,A=function(){if(o?.unsubscribe(),o=null,n){n=!1;var I=a;a=null,r.next(I)}l&&r.complete()},f=function(){o=null,l&&r.complete()};t.subscribe(t$i.createOperatorSubscriber(r,function(I){n=!0,a=I,o||E8c.innerFrom(e(I)).subscribe(o=t$i.createOperatorSubscriber(r,A,f))},function(){l=!0,(!n||!o||o.closed)&&r.complete()}))})}ETt.audit=S8c});var YOr=H(vTt=>{"use strict";Object.defineProperty(vTt,"__esModule",{value:!0});vTt.auditTime=void 0;var v8c=FV(),B8c=STt(),w8c=ble();function T8c(e,t){return t===void 0&&(t=v8c.asyncScheduler),B8c.audit(function(){return w8c.timer(e,t)})}vTt.auditTime=T8c});var QOr=H(BTt=>{"use strict";Object.defineProperty(BTt,"__esModule",{value:!0});BTt.buffer=void 0;var R8c=qg(),N8c=rx(),r$i=Cd(),D8c=uh();function k8c(e){return R8c.operate(function(t,r){var n=[];return t.subscribe(r$i.createOperatorSubscriber(r,function(a){return n.push(a)},function(){r.next(n),r.complete()})),D8c.innerFrom(e).subscribe(r$i.createOperatorSubscriber(r,function(){var a=n;n=[],r.next(a)},N8c.noop)),function(){n=null}})}BTt.buffer=k8c});var JOr=H(Uke=>{"use strict";var XOr=Uke&&Uke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Uke,"__esModule",{value:!0});Uke.bufferCount=void 0;var x8c=qg(),G8c=Cd(),F8c=ste();function Z8c(e,t){return t===void 0&&(t=null),t=t??e,x8c.operate(function(r,n){var a=[],o=0;r.subscribe(G8c.createOperatorSubscriber(n,function(l){var A,f,I,C,b=null;o++%t===0&&a.push([]);try{for(var E=XOr(a),N=E.next();!N.done;N=E.next()){var B=N.value;B.push(l),e<=B.length&&(b=b??[],b.push(B))}}catch(X){A={error:X}}finally{try{N&&!N.done&&(f=E.return)&&f.call(E)}finally{if(A)throw A.error}}if(b)try{for(var F=XOr(b),Q=F.next();!Q.done;Q=F.next()){var B=Q.value;F8c.arrRemove(a,B),n.next(B)}}catch(X){I={error:X}}finally{try{Q&&!Q.done&&(C=F.return)&&C.call(F)}finally{if(I)throw I.error}}},function(){var l,A;try{for(var f=XOr(a),I=f.next();!I.done;I=f.next()){var C=I.value;n.next(C)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}n.complete()},void 0,function(){a=null}))})}Uke.bufferCount=Z8c});var UOr=H(Kke=>{"use strict";var L8c=Kke&&Kke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Kke,"__esModule",{value:!0});Kke.bufferTime=void 0;var V8c=TO(),P8c=qg(),W8c=Cd(),O8c=ste(),M8c=FV(),H8c=ZV(),n$i=ote();function Y8c(e){for(var t,r,n=[],a=1;a=0?n$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=W8c.createOperatorSubscriber(I,function(F){var Q,X,ae=C.slice();try{for(var ne=L8c(ae),ce=ne.next();!ce.done;ce=ne.next()){var fe=ce.value,ue=fe.buffer;ue.push(F),A<=ue.length&&E(fe)}}catch(de){Q={error:de}}finally{try{ce&&!ce.done&&(X=ne.return)&&X.call(ne)}finally{if(Q)throw Q.error}}},function(){for(;C?.length;)I.next(C.shift().buffer);B?.unsubscribe(),I.complete(),I.unsubscribe()},void 0,function(){return C=null});f.subscribe(B)})}Kke.bufferTime=Y8c});var jOr=H(jke=>{"use strict";var Q8c=jke&&jke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(jke,"__esModule",{value:!0});jke.bufferToggle=void 0;var X8c=TO(),J8c=qg(),i$i=uh(),KOr=Cd(),s$i=rx(),U8c=ste();function K8c(e,t){return J8c.operate(function(r,n){var a=[];i$i.innerFrom(e).subscribe(KOr.createOperatorSubscriber(n,function(o){var l=[];a.push(l);var A=new X8c.Subscription,f=function(){U8c.arrRemove(a,l),n.next(l),A.unsubscribe()};A.add(i$i.innerFrom(t(o)).subscribe(KOr.createOperatorSubscriber(n,f,s$i.noop)))},s$i.noop)),r.subscribe(KOr.createOperatorSubscriber(n,function(o){var l,A;try{for(var f=Q8c(a),I=f.next();!I.done;I=f.next()){var C=I.value;C.push(o)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}},function(){for(;a.length>0;)n.next(a.shift());n.complete()}))})}jke.bufferToggle=K8c});var zOr=H(wTt=>{"use strict";Object.defineProperty(wTt,"__esModule",{value:!0});wTt.bufferWhen=void 0;var j8c=qg(),z8c=rx(),o$i=Cd(),q8c=uh();function $8c(e){return j8c.operate(function(t,r){var n=null,a=null,o=function(){a?.unsubscribe();var l=n;n=[],l&&r.next(l),q8c.innerFrom(e()).subscribe(a=o$i.createOperatorSubscriber(r,o,z8c.noop))};o(),t.subscribe(o$i.createOperatorSubscriber(r,function(l){return n?.push(l)},function(){n&&r.next(n),r.complete()},void 0,function(){return n=a=null}))})}wTt.bufferWhen=$8c});var qOr=H(TTt=>{"use strict";Object.defineProperty(TTt,"__esModule",{value:!0});TTt.catchError=void 0;var ejc=uh(),tjc=Cd(),rjc=qg();function a$i(e){return rjc.operate(function(t,r){var n=null,a=!1,o;n=t.subscribe(tjc.createOperatorSubscriber(r,void 0,void 0,function(l){o=ejc.innerFrom(e(l,a$i(e)(t))),n?(n.unsubscribe(),n=null,o.subscribe(r)):a=!0})),a&&(n.unsubscribe(),n=null,o.subscribe(r))})}TTt.catchError=a$i});var $Or=H(RTt=>{"use strict";Object.defineProperty(RTt,"__esModule",{value:!0});RTt.scanInternals=void 0;var njc=Cd();function ijc(e,t,r,n,a){return function(o,l){var A=r,f=t,I=0;o.subscribe(njc.createOperatorSubscriber(l,function(C){var b=I++;f=A?e(f,C,b):(A=!0,C),n&&l.next(f)},a&&function(){A&&l.next(f),l.complete()}))}}RTt.scanInternals=ijc});var C_e=H(NTt=>{"use strict";Object.defineProperty(NTt,"__esModule",{value:!0});NTt.reduce=void 0;var sjc=$Or(),ojc=qg();function ajc(e,t){return ojc.operate(sjc.scanInternals(e,t,arguments.length>=2,!1,!0))}NTt.reduce=ajc});var kTt=H(DTt=>{"use strict";Object.defineProperty(DTt,"__esModule",{value:!0});DTt.toArray=void 0;var cjc=C_e(),ljc=qg(),ujc=function(e,t){return e.push(t),e};function gjc(){return ljc.operate(function(e,t){cjc.reduce(ujc,[])(e).subscribe(t)})}DTt.toArray=gjc});var e3r=H(xTt=>{"use strict";Object.defineProperty(xTt,"__esModule",{value:!0});xTt.joinAllInternals=void 0;var Ajc=nx(),djc=_le(),pjc=F8e(),fjc=Kj(),Ijc=kTt();function hjc(e,t){return pjc.pipe(Ijc.toArray(),fjc.mergeMap(function(r){return e(r)}),t?djc.mapOneOrManyArgs(t):Ajc.identity)}xTt.joinAllInternals=hjc});var FTt=H(GTt=>{"use strict";Object.defineProperty(GTt,"__esModule",{value:!0});GTt.combineLatestAll=void 0;var mjc=$wt(),Cjc=e3r();function _jc(e){return Cjc.joinAllInternals(mjc.combineLatest,e)}GTt.combineLatestAll=_jc});var t3r=H(ZTt=>{"use strict";Object.defineProperty(ZTt,"__esModule",{value:!0});ZTt.combineAll=void 0;var yjc=FTt();ZTt.combineAll=yjc.combineLatestAll});var r3r=H(vle=>{"use strict";var c$i=vle&&vle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},l$i=vle&&vle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Tjc=Ble&&Ble.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Rjc=Ble&&Ble.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(LTt,"__esModule",{value:!0});LTt.concatMap=void 0;var g$i=Kj(),kjc=Sy();function xjc(e,t){return kjc.isFunction(t)?g$i.mergeMap(e,t,1):g$i.mergeMap(e,1)}LTt.concatMap=xjc});var i3r=H(PTt=>{"use strict";Object.defineProperty(PTt,"__esModule",{value:!0});PTt.concatMapTo=void 0;var A$i=VTt(),Gjc=Sy();function Fjc(e,t){return Gjc.isFunction(t)?A$i.concatMap(function(){return e},t):A$i.concatMap(function(){return e})}PTt.concatMapTo=Fjc});var s3r=H(wle=>{"use strict";var Zjc=wle&&wle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ljc=wle&&wle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Hjc=Tle&&Tle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yjc=Tle&&Tle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(WTt,"__esModule",{value:!0});WTt.fromSubscribable=void 0;var Jjc=ub();function Ujc(e){return new Jjc.Observable(function(t){return e.subscribe(t)})}WTt.fromSubscribable=Ujc});var Y8e=H(OTt=>{"use strict";Object.defineProperty(OTt,"__esModule",{value:!0});OTt.connect=void 0;var Kjc=ix(),jjc=uh(),zjc=qg(),qjc=d$i(),$jc={connector:function(){return new Kjc.Subject}};function e6c(e,t){t===void 0&&(t=$jc);var r=t.connector;return zjc.operate(function(n,a){var o=r();jjc.innerFrom(e(qjc.fromSubscribable(o))).subscribe(a),a.add(n.subscribe(o))})}OTt.connect=e6c});var a3r=H(MTt=>{"use strict";Object.defineProperty(MTt,"__esModule",{value:!0});MTt.count=void 0;var t6c=C_e();function r6c(e){return t6c.reduce(function(t,r,n){return!e||e(r,n)?t+1:t},0)}MTt.count=r6c});var c3r=H(HTt=>{"use strict";Object.defineProperty(HTt,"__esModule",{value:!0});HTt.debounce=void 0;var n6c=qg(),i6c=rx(),p$i=Cd(),s6c=uh();function o6c(e){return n6c.operate(function(t,r){var n=!1,a=null,o=null,l=function(){if(o?.unsubscribe(),o=null,n){n=!1;var A=a;a=null,r.next(A)}};t.subscribe(p$i.createOperatorSubscriber(r,function(A){o?.unsubscribe(),n=!0,a=A,o=p$i.createOperatorSubscriber(r,l,i6c.noop),s6c.innerFrom(e(A)).subscribe(o)},function(){l(),r.complete()},void 0,function(){a=o=null}))})}HTt.debounce=o6c});var l3r=H(YTt=>{"use strict";Object.defineProperty(YTt,"__esModule",{value:!0});YTt.debounceTime=void 0;var a6c=FV(),c6c=qg(),l6c=Cd();function u6c(e,t){return t===void 0&&(t=a6c.asyncScheduler),c6c.operate(function(r,n){var a=null,o=null,l=null,A=function(){if(a){a.unsubscribe(),a=null;var I=o;o=null,n.next(I)}};function f(){var I=l+e,C=t.now();if(C{"use strict";Object.defineProperty(QTt,"__esModule",{value:!0});QTt.defaultIfEmpty=void 0;var g6c=qg(),A6c=Cd();function d6c(e){return g6c.operate(function(t,r){var n=!1;t.subscribe(A6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){n||r.next(e),r.complete()}))})}QTt.defaultIfEmpty=d6c});var qke=H(XTt=>{"use strict";Object.defineProperty(XTt,"__esModule",{value:!0});XTt.take=void 0;var p6c=x4(),f6c=qg(),I6c=Cd();function h6c(e){return e<=0?function(){return p6c.EMPTY}:f6c.operate(function(t,r){var n=0;t.subscribe(I6c.createOperatorSubscriber(r,function(a){++n<=e&&(r.next(a),e<=n&&r.complete())}))})}XTt.take=h6c});var UTt=H(JTt=>{"use strict";Object.defineProperty(JTt,"__esModule",{value:!0});JTt.ignoreElements=void 0;var m6c=qg(),C6c=Cd(),_6c=rx();function y6c(){return m6c.operate(function(e,t){e.subscribe(C6c.createOperatorSubscriber(t,_6c.noop))})}JTt.ignoreElements=y6c});var jTt=H(KTt=>{"use strict";Object.defineProperty(KTt,"__esModule",{value:!0});KTt.mapTo=void 0;var b6c=lte();function E6c(e){return b6c.map(function(){return e})}KTt.mapTo=E6c});var qTt=H(zTt=>{"use strict";Object.defineProperty(zTt,"__esModule",{value:!0});zTt.delayWhen=void 0;var S6c=M8e(),f$i=qke(),v6c=UTt(),B6c=jTt(),w6c=Kj(),T6c=uh();function I$i(e,t){return t?function(r){return S6c.concat(t.pipe(f$i.take(1),v6c.ignoreElements()),r.pipe(I$i(e)))}:w6c.mergeMap(function(r,n){return T6c.innerFrom(e(r,n)).pipe(f$i.take(1),B6c.mapTo(r))})}zTt.delayWhen=I$i});var u3r=H($Tt=>{"use strict";Object.defineProperty($Tt,"__esModule",{value:!0});$Tt.delay=void 0;var R6c=FV(),N6c=qTt(),D6c=ble();function k6c(e,t){t===void 0&&(t=R6c.asyncScheduler);var r=D6c.timer(e,t);return N6c.delayWhen(function(){return r})}$Tt.delay=k6c});var g3r=H(eRt=>{"use strict";Object.defineProperty(eRt,"__esModule",{value:!0});eRt.dematerialize=void 0;var x6c=Vwt(),G6c=qg(),F6c=Cd();function Z6c(){return G6c.operate(function(e,t){e.subscribe(F6c.createOperatorSubscriber(t,function(r){return x6c.observeNotification(r,t)}))})}eRt.dematerialize=Z6c});var A3r=H(tRt=>{"use strict";Object.defineProperty(tRt,"__esModule",{value:!0});tRt.distinct=void 0;var L6c=qg(),h$i=Cd(),V6c=rx(),P6c=uh();function W6c(e,t){return L6c.operate(function(r,n){var a=new Set;r.subscribe(h$i.createOperatorSubscriber(n,function(o){var l=e?e(o):o;a.has(l)||(a.add(l),n.next(o))})),t&&P6c.innerFrom(t).subscribe(h$i.createOperatorSubscriber(n,function(){return a.clear()},V6c.noop))})}tRt.distinct=W6c});var nRt=H(rRt=>{"use strict";Object.defineProperty(rRt,"__esModule",{value:!0});rRt.distinctUntilChanged=void 0;var O6c=nx(),M6c=qg(),H6c=Cd();function Y6c(e,t){return t===void 0&&(t=O6c.identity),e=e??Q6c,M6c.operate(function(r,n){var a,o=!0;r.subscribe(H6c.createOperatorSubscriber(n,function(l){var A=t(l);(o||!e(a,A))&&(o=!1,a=A,n.next(l))}))})}rRt.distinctUntilChanged=Y6c;function Q6c(e,t){return e===t}});var d3r=H(iRt=>{"use strict";Object.defineProperty(iRt,"__esModule",{value:!0});iRt.distinctUntilKeyChanged=void 0;var X6c=nRt();function J6c(e,t){return X6c.distinctUntilChanged(function(r,n){return t?t(r[e],n[e]):r[e]===n[e]})}iRt.distinctUntilKeyChanged=J6c});var $ke=H(sRt=>{"use strict";Object.defineProperty(sRt,"__esModule",{value:!0});sRt.throwIfEmpty=void 0;var U6c=mle(),K6c=qg(),j6c=Cd();function z6c(e){return e===void 0&&(e=q6c),K6c.operate(function(t,r){var n=!1;t.subscribe(j6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){return n?r.complete():r.error(e())}))})}sRt.throwIfEmpty=z6c;function q6c(){return new U6c.EmptyError}});var p3r=H(oRt=>{"use strict";Object.defineProperty(oRt,"__esModule",{value:!0});oRt.elementAt=void 0;var m$i=DOr(),$6c=ute(),e7c=$ke(),t7c=zke(),r7c=qke();function n7c(e,t){if(e<0)throw new m$i.ArgumentOutOfRangeError;var r=arguments.length>=2;return function(n){return n.pipe($6c.filter(function(a,o){return o===e}),r7c.take(1),r?t7c.defaultIfEmpty(t):e7c.throwIfEmpty(function(){return new m$i.ArgumentOutOfRangeError}))}}oRt.elementAt=n7c});var f3r=H(Rle=>{"use strict";var i7c=Rle&&Rle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},s7c=Rle&&Rle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(aRt,"__esModule",{value:!0});aRt.every=void 0;var l7c=qg(),u7c=Cd();function g7c(e,t){return l7c.operate(function(r,n){var a=0;r.subscribe(u7c.createOperatorSubscriber(n,function(o){e.call(t,o,a++,r)||(n.next(!1),n.complete())},function(){n.next(!0),n.complete()}))})}aRt.every=g7c});var lRt=H(cRt=>{"use strict";Object.defineProperty(cRt,"__esModule",{value:!0});cRt.exhaustMap=void 0;var A7c=lte(),C$i=uh(),d7c=qg(),_$i=Cd();function y$i(e,t){return t?function(r){return r.pipe(y$i(function(n,a){return C$i.innerFrom(e(n,a)).pipe(A7c.map(function(o,l){return t(n,o,a,l)}))}))}:d7c.operate(function(r,n){var a=0,o=null,l=!1;r.subscribe(_$i.createOperatorSubscriber(n,function(A){o||(o=_$i.createOperatorSubscriber(n,void 0,function(){o=null,l&&n.complete()}),C$i.innerFrom(e(A,a++)).subscribe(o))},function(){l=!0,!o&&n.complete()}))})}cRt.exhaustMap=y$i});var gRt=H(uRt=>{"use strict";Object.defineProperty(uRt,"__esModule",{value:!0});uRt.exhaustAll=void 0;var p7c=lRt(),f7c=nx();function I7c(){return p7c.exhaustMap(f7c.identity)}uRt.exhaustAll=I7c});var h3r=H(ARt=>{"use strict";Object.defineProperty(ARt,"__esModule",{value:!0});ARt.exhaust=void 0;var h7c=gRt();ARt.exhaust=h7c.exhaustAll});var m3r=H(dRt=>{"use strict";Object.defineProperty(dRt,"__esModule",{value:!0});dRt.expand=void 0;var m7c=qg(),C7c=tTt();function _7c(e,t,r){return t===void 0&&(t=1/0),t=(t||0)<1?1/0:t,m7c.operate(function(n,a){return C7c.mergeInternals(n,a,e,t,void 0,!0,r)})}dRt.expand=_7c});var C3r=H(pRt=>{"use strict";Object.defineProperty(pRt,"__esModule",{value:!0});pRt.finalize=void 0;var y7c=qg();function b7c(e){return y7c.operate(function(t,r){try{t.subscribe(r)}finally{r.add(e)}})}pRt.finalize=b7c});var fRt=H(exe=>{"use strict";Object.defineProperty(exe,"__esModule",{value:!0});exe.createFind=exe.find=void 0;var E7c=qg(),S7c=Cd();function v7c(e,t){return E7c.operate(b$i(e,t,"value"))}exe.find=v7c;function b$i(e,t,r){var n=r==="index";return function(a,o){var l=0;a.subscribe(S7c.createOperatorSubscriber(o,function(A){var f=l++;e.call(t,A,f,a)&&(o.next(n?f:A),o.complete())},function(){o.next(n?-1:void 0),o.complete()}))}}exe.createFind=b$i});var _3r=H(IRt=>{"use strict";Object.defineProperty(IRt,"__esModule",{value:!0});IRt.findIndex=void 0;var B7c=qg(),w7c=fRt();function T7c(e,t){return B7c.operate(w7c.createFind(e,t,"index"))}IRt.findIndex=T7c});var y3r=H(hRt=>{"use strict";Object.defineProperty(hRt,"__esModule",{value:!0});hRt.first=void 0;var R7c=mle(),N7c=ute(),D7c=qke(),k7c=zke(),x7c=$ke(),G7c=nx();function F7c(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?N7c.filter(function(a,o){return e(a,o,n)}):G7c.identity,D7c.take(1),r?k7c.defaultIfEmpty(t):x7c.throwIfEmpty(function(){return new R7c.EmptyError}))}}hRt.first=F7c});var b3r=H(mRt=>{"use strict";Object.defineProperty(mRt,"__esModule",{value:!0});mRt.groupBy=void 0;var Z7c=ub(),L7c=uh(),V7c=ix(),P7c=qg(),E$i=Cd();function W7c(e,t,r,n){return P7c.operate(function(a,o){var l;!t||typeof t=="function"?l=t:(r=t.duration,l=t.element,n=t.connector);var A=new Map,f=function(B){A.forEach(B),B(o)},I=function(B){return f(function(F){return F.error(B)})},C=0,b=!1,E=new E$i.OperatorSubscriber(o,function(B){try{var F=e(B),Q=A.get(F);if(!Q){A.set(F,Q=n?n():new V7c.Subject);var X=N(F,Q);if(o.next(X),r){var ae=E$i.createOperatorSubscriber(Q,function(){Q.complete(),ae?.unsubscribe()},void 0,void 0,function(){return A.delete(F)});E.add(L7c.innerFrom(r(X)).subscribe(ae))}}Q.next(l?l(B):B)}catch(ne){I(ne)}},function(){return f(function(B){return B.complete()})},I,function(){return A.clear()},function(){return b=!0,C===0});a.subscribe(E);function N(B,F){var Q=new Z7c.Observable(function(X){C++;var ae=F.subscribe(X);return function(){ae.unsubscribe(),--C===0&&b&&E.unsubscribe()}});return Q.key=B,Q}})}mRt.groupBy=W7c});var E3r=H(CRt=>{"use strict";Object.defineProperty(CRt,"__esModule",{value:!0});CRt.isEmpty=void 0;var O7c=qg(),M7c=Cd();function H7c(){return O7c.operate(function(e,t){e.subscribe(M7c.createOperatorSubscriber(t,function(){t.next(!1),t.complete()},function(){t.next(!0),t.complete()}))})}CRt.isEmpty=H7c});var _Rt=H(txe=>{"use strict";var Y7c=txe&&txe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(txe,"__esModule",{value:!0});txe.takeLast=void 0;var Q7c=x4(),X7c=qg(),J7c=Cd();function U7c(e){return e<=0?function(){return Q7c.EMPTY}:X7c.operate(function(t,r){var n=[];t.subscribe(J7c.createOperatorSubscriber(r,function(a){n.push(a),e{"use strict";Object.defineProperty(yRt,"__esModule",{value:!0});yRt.last=void 0;var K7c=mle(),j7c=ute(),z7c=_Rt(),q7c=$ke(),$7c=zke(),ezc=nx();function tzc(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?j7c.filter(function(a,o){return e(a,o,n)}):ezc.identity,z7c.takeLast(1),r?$7c.defaultIfEmpty(t):q7c.throwIfEmpty(function(){return new K7c.EmptyError}))}}yRt.last=tzc});var B3r=H(bRt=>{"use strict";Object.defineProperty(bRt,"__esModule",{value:!0});bRt.materialize=void 0;var v3r=Vwt(),rzc=qg(),nzc=Cd();function izc(){return rzc.operate(function(e,t){e.subscribe(nzc.createOperatorSubscriber(t,function(r){t.next(v3r.Notification.createNext(r))},function(){t.next(v3r.Notification.createComplete()),t.complete()},function(r){t.next(v3r.Notification.createError(r)),t.complete()}))})}bRt.materialize=izc});var w3r=H(ERt=>{"use strict";Object.defineProperty(ERt,"__esModule",{value:!0});ERt.max=void 0;var szc=C_e(),ozc=Sy();function azc(e){return szc.reduce(ozc.isFunction(e)?function(t,r){return e(t,r)>0?t:r}:function(t,r){return t>r?t:r})}ERt.max=azc});var T3r=H(SRt=>{"use strict";Object.defineProperty(SRt,"__esModule",{value:!0});SRt.flatMap=void 0;var czc=Kj();SRt.flatMap=czc.mergeMap});var R3r=H(vRt=>{"use strict";Object.defineProperty(vRt,"__esModule",{value:!0});vRt.mergeMapTo=void 0;var S$i=Kj(),lzc=Sy();function uzc(e,t,r){return r===void 0&&(r=1/0),lzc.isFunction(t)?S$i.mergeMap(function(){return e},t,r):(typeof t=="number"&&(r=t),S$i.mergeMap(function(){return e},r))}vRt.mergeMapTo=uzc});var N3r=H(BRt=>{"use strict";Object.defineProperty(BRt,"__esModule",{value:!0});BRt.mergeScan=void 0;var gzc=qg(),Azc=tTt();function dzc(e,t,r){return r===void 0&&(r=1/0),gzc.operate(function(n,a){var o=t;return Azc.mergeInternals(n,a,function(l,A){return e(o,l,A)},r,function(l){o=l},!1,void 0,function(){return o=null})})}BRt.mergeScan=dzc});var D3r=H(Nle=>{"use strict";var pzc=Nle&&Nle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},fzc=Nle&&Nle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var yzc=Dle&&Dle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},bzc=Dle&&Dle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(wRt,"__esModule",{value:!0});wRt.min=void 0;var vzc=C_e(),Bzc=Sy();function wzc(e){return vzc.reduce(Bzc.isFunction(e)?function(t,r){return e(t,r)<0?t:r}:function(t,r){return t{"use strict";Object.defineProperty(TRt,"__esModule",{value:!0});TRt.multicast=void 0;var Tzc=Z8e(),B$i=Sy(),Rzc=Y8e();function Nzc(e,t){var r=B$i.isFunction(e)?e:function(){return e};return B$i.isFunction(t)?Rzc.connect(t,{connector:r}):function(n){return new Tzc.ConnectableObservable(n,r)}}TRt.multicast=Nzc});var G3r=H(jj=>{"use strict";var Dzc=jj&&jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},kzc=jj&&jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(RRt,"__esModule",{value:!0});RRt.pairwise=void 0;var Fzc=qg(),Zzc=Cd();function Lzc(){return Fzc.operate(function(e,t){var r,n=!1;e.subscribe(Zzc.createOperatorSubscriber(t,function(a){var o=r;r=a,n&&t.next([o,a]),n=!0}))})}RRt.pairwise=Lzc});var Z3r=H(NRt=>{"use strict";Object.defineProperty(NRt,"__esModule",{value:!0});NRt.pluck=void 0;var Vzc=lte();function Pzc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(DRt,"__esModule",{value:!0});DRt.publish=void 0;var Wzc=ix(),Ozc=Q8e(),Mzc=Y8e();function Hzc(e){return e?function(t){return Mzc.connect(e)(t)}:function(t){return Ozc.multicast(new Wzc.Subject)(t)}}DRt.publish=Hzc});var V3r=H(kRt=>{"use strict";Object.defineProperty(kRt,"__esModule",{value:!0});kRt.publishBehavior=void 0;var Yzc=pOr(),Qzc=Z8e();function Xzc(e){return function(t){var r=new Yzc.BehaviorSubject(e);return new Qzc.ConnectableObservable(t,function(){return r})}}kRt.publishBehavior=Xzc});var P3r=H(xRt=>{"use strict";Object.defineProperty(xRt,"__esModule",{value:!0});xRt.publishLast=void 0;var Jzc=Awt(),Uzc=Z8e();function Kzc(){return function(e){var t=new Jzc.AsyncSubject;return new Uzc.ConnectableObservable(e,function(){return t})}}xRt.publishLast=Kzc});var W3r=H(GRt=>{"use strict";Object.defineProperty(GRt,"__esModule",{value:!0});GRt.publishReplay=void 0;var jzc=gwt(),zzc=Q8e(),T$i=Sy();function qzc(e,t,r,n){r&&!T$i.isFunction(r)&&(n=r);var a=T$i.isFunction(r)?r:void 0;return function(o){return zzc.multicast(new jzc.ReplaySubject(e,t,n),a)(o)}}GRt.publishReplay=qzc});var FRt=H(kle=>{"use strict";var $zc=kle&&kle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},eqc=kle&&kle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ZRt,"__esModule",{value:!0});ZRt.repeat=void 0;var sqc=x4(),oqc=qg(),R$i=Cd(),aqc=uh(),cqc=ble();function lqc(e){var t,r=1/0,n;return e!=null&&(typeof e=="object"?(t=e.count,r=t===void 0?1/0:t,n=e.delay):r=e),r<=0?function(){return sqc.EMPTY}:oqc.operate(function(a,o){var l=0,A,f=function(){if(A?.unsubscribe(),A=null,n!=null){var C=typeof n=="number"?cqc.timer(n):aqc.innerFrom(n(l)),b=R$i.createOperatorSubscriber(o,function(){b.unsubscribe(),I()});C.subscribe(b)}else I()},I=function(){var C=!1;A=a.subscribe(R$i.createOperatorSubscriber(o,void 0,function(){++l{"use strict";Object.defineProperty(LRt,"__esModule",{value:!0});LRt.repeatWhen=void 0;var uqc=uh(),gqc=ix(),Aqc=qg(),N$i=Cd();function dqc(e){return Aqc.operate(function(t,r){var n,a=!1,o,l=!1,A=!1,f=function(){return A&&l&&(r.complete(),!0)},I=function(){return o||(o=new gqc.Subject,uqc.innerFrom(e(o)).subscribe(N$i.createOperatorSubscriber(r,function(){n?C():a=!0},function(){l=!0,f()}))),o},C=function(){A=!1,n=t.subscribe(N$i.createOperatorSubscriber(r,void 0,function(){A=!0,!f()&&I().next()})),a&&(n.unsubscribe(),n=null,a=!1,C())};C()})}LRt.repeatWhen=dqc});var H3r=H(VRt=>{"use strict";Object.defineProperty(VRt,"__esModule",{value:!0});VRt.retry=void 0;var pqc=qg(),D$i=Cd(),fqc=nx(),Iqc=ble(),hqc=uh();function mqc(e){e===void 0&&(e=1/0);var t;e&&typeof e=="object"?t=e:t={count:e};var r=t.count,n=r===void 0?1/0:r,a=t.delay,o=t.resetOnSuccess,l=o===void 0?!1:o;return n<=0?fqc.identity:pqc.operate(function(A,f){var I=0,C,b=function(){var E=!1;C=A.subscribe(D$i.createOperatorSubscriber(f,function(N){l&&(I=0),f.next(N)},void 0,function(N){if(I++{"use strict";Object.defineProperty(PRt,"__esModule",{value:!0});PRt.retryWhen=void 0;var Cqc=uh(),_qc=ix(),yqc=qg(),k$i=Cd();function bqc(e){return yqc.operate(function(t,r){var n,a=!1,o,l=function(){n=t.subscribe(k$i.createOperatorSubscriber(r,void 0,void 0,function(A){o||(o=new _qc.Subject,Cqc.innerFrom(e(o)).subscribe(k$i.createOperatorSubscriber(r,function(){return n?l():a=!0}))),o&&o.next(A)})),a&&(n.unsubscribe(),n=null,a=!1,l())};l()})}PRt.retryWhen=bqc});var ORt=H(WRt=>{"use strict";Object.defineProperty(WRt,"__esModule",{value:!0});WRt.sample=void 0;var Eqc=uh(),Sqc=qg(),vqc=rx(),x$i=Cd();function Bqc(e){return Sqc.operate(function(t,r){var n=!1,a=null;t.subscribe(x$i.createOperatorSubscriber(r,function(o){n=!0,a=o})),Eqc.innerFrom(e).subscribe(x$i.createOperatorSubscriber(r,function(){if(n){n=!1;var o=a;a=null,r.next(o)}},vqc.noop))})}WRt.sample=Bqc});var Q3r=H(MRt=>{"use strict";Object.defineProperty(MRt,"__esModule",{value:!0});MRt.sampleTime=void 0;var wqc=FV(),Tqc=ORt(),Rqc=POr();function Nqc(e,t){return t===void 0&&(t=wqc.asyncScheduler),Tqc.sample(Rqc.interval(e,t))}MRt.sampleTime=Nqc});var X3r=H(HRt=>{"use strict";Object.defineProperty(HRt,"__esModule",{value:!0});HRt.scan=void 0;var Dqc=qg(),kqc=$Or();function xqc(e,t){return Dqc.operate(kqc.scanInternals(e,t,arguments.length>=2,!0))}HRt.scan=xqc});var J3r=H(YRt=>{"use strict";Object.defineProperty(YRt,"__esModule",{value:!0});YRt.sequenceEqual=void 0;var Gqc=qg(),Fqc=Cd(),Zqc=uh();function Lqc(e,t){return t===void 0&&(t=function(r,n){return r===n}),Gqc.operate(function(r,n){var a=G$i(),o=G$i(),l=function(f){n.next(f),n.complete()},A=function(f,I){var C=Fqc.createOperatorSubscriber(n,function(b){var E=I.buffer,N=I.complete;E.length===0?N?l(!1):f.buffer.push(b):!t(b,E.shift())&&l(!1)},function(){f.complete=!0;var b=I.complete,E=I.buffer;b&&l(E.length===0),C?.unsubscribe()});return C};r.subscribe(A(a,o)),Zqc.innerFrom(e).subscribe(A(o,a))})}YRt.sequenceEqual=Lqc;function G$i(){return{buffer:[],complete:!1}}});var QRt=H(xle=>{"use strict";var Vqc=xle&&xle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Pqc=xle&&xle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r0&&(C=new Z$i.SafeSubscriber({next:function(ue){return fe.next(ue)},error:function(ue){F=!0,Q(),b=U3r(X,a,ue),fe.error(ue)},complete:function(){B=!0,Q(),b=U3r(X,l),fe.complete()}}),F$i.innerFrom(ne).subscribe(C))})(I)}}xle.share=Mqc;function U3r(e,t){for(var r=[],n=2;n{"use strict";Object.defineProperty(XRt,"__esModule",{value:!0});XRt.shareReplay=void 0;var Hqc=gwt(),Yqc=QRt();function Qqc(e,t,r){var n,a,o,l,A=!1;return e&&typeof e=="object"?(n=e.bufferSize,l=n===void 0?1/0:n,a=e.windowTime,t=a===void 0?1/0:a,o=e.refCount,A=o===void 0?!1:o,r=e.scheduler):l=e??1/0,Yqc.share({connector:function(){return new Hqc.ReplaySubject(l,t,r)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:A})}XRt.shareReplay=Qqc});var j3r=H(JRt=>{"use strict";Object.defineProperty(JRt,"__esModule",{value:!0});JRt.single=void 0;var Xqc=mle(),Jqc=xOr(),Uqc=kOr(),Kqc=qg(),jqc=Cd();function zqc(e){return Kqc.operate(function(t,r){var n=!1,a,o=!1,l=0;t.subscribe(jqc.createOperatorSubscriber(r,function(A){o=!0,(!e||e(A,l++,t))&&(n&&r.error(new Jqc.SequenceError("Too many matching values")),n=!0,a=A)},function(){n?(r.next(a),r.complete()):r.error(o?new Uqc.NotFoundError("No matching values"):new Xqc.EmptyError)}))})}JRt.single=zqc});var z3r=H(URt=>{"use strict";Object.defineProperty(URt,"__esModule",{value:!0});URt.skip=void 0;var qqc=ute();function $qc(e){return qqc.filter(function(t,r){return e<=r})}URt.skip=$qc});var q3r=H(KRt=>{"use strict";Object.defineProperty(KRt,"__esModule",{value:!0});KRt.skipLast=void 0;var e$c=nx(),t$c=qg(),r$c=Cd();function n$c(e){return e<=0?e$c.identity:t$c.operate(function(t,r){var n=new Array(e),a=0;return t.subscribe(r$c.createOperatorSubscriber(r,function(o){var l=a++;if(l{"use strict";Object.defineProperty(jRt,"__esModule",{value:!0});jRt.skipUntil=void 0;var i$c=qg(),L$i=Cd(),s$c=uh(),o$c=rx();function a$c(e){return i$c.operate(function(t,r){var n=!1,a=L$i.createOperatorSubscriber(r,function(){a?.unsubscribe(),n=!0},o$c.noop);s$c.innerFrom(e).subscribe(a),t.subscribe(L$i.createOperatorSubscriber(r,function(o){return n&&r.next(o)}))})}jRt.skipUntil=a$c});var e5r=H(zRt=>{"use strict";Object.defineProperty(zRt,"__esModule",{value:!0});zRt.skipWhile=void 0;var c$c=qg(),l$c=Cd();function u$c(e){return c$c.operate(function(t,r){var n=!1,a=0;t.subscribe(l$c.createOperatorSubscriber(r,function(o){return(n||(n=!e(o,a++)))&&r.next(o)}))})}zRt.skipWhile=u$c});var t5r=H(qRt=>{"use strict";Object.defineProperty(qRt,"__esModule",{value:!0});qRt.startWith=void 0;var V$i=M8e(),g$c=ZV(),A$c=qg();function d$c(){for(var e=[],t=0;t{"use strict";Object.defineProperty($Rt,"__esModule",{value:!0});$Rt.switchMap=void 0;var p$c=uh(),f$c=qg(),P$i=Cd();function I$c(e,t){return f$c.operate(function(r,n){var a=null,o=0,l=!1,A=function(){return l&&!a&&n.complete()};r.subscribe(P$i.createOperatorSubscriber(n,function(f){a?.unsubscribe();var I=0,C=o++;p$c.innerFrom(e(f,C)).subscribe(a=P$i.createOperatorSubscriber(n,function(b){return n.next(t?t(f,b,C,I++):b)},function(){a=null,A()}))},function(){l=!0,A()}))})}$Rt.switchMap=I$c});var r5r=H(eNt=>{"use strict";Object.defineProperty(eNt,"__esModule",{value:!0});eNt.switchAll=void 0;var h$c=rxe(),m$c=nx();function C$c(){return h$c.switchMap(m$c.identity)}eNt.switchAll=C$c});var n5r=H(tNt=>{"use strict";Object.defineProperty(tNt,"__esModule",{value:!0});tNt.switchMapTo=void 0;var W$i=rxe(),_$c=Sy();function y$c(e,t){return _$c.isFunction(t)?W$i.switchMap(function(){return e},t):W$i.switchMap(function(){return e})}tNt.switchMapTo=y$c});var i5r=H(rNt=>{"use strict";Object.defineProperty(rNt,"__esModule",{value:!0});rNt.switchScan=void 0;var b$c=rxe(),E$c=qg();function S$c(e,t){return E$c.operate(function(r,n){var a=t;return b$c.switchMap(function(o,l){return e(a,o,l)},function(o,l){return a=l,l})(r).subscribe(n),function(){a=null}})}rNt.switchScan=S$c});var s5r=H(nNt=>{"use strict";Object.defineProperty(nNt,"__esModule",{value:!0});nNt.takeUntil=void 0;var v$c=qg(),B$c=Cd(),w$c=uh(),T$c=rx();function R$c(e){return v$c.operate(function(t,r){w$c.innerFrom(e).subscribe(B$c.createOperatorSubscriber(r,function(){return r.complete()},T$c.noop)),!r.closed&&t.subscribe(r)})}nNt.takeUntil=R$c});var o5r=H(iNt=>{"use strict";Object.defineProperty(iNt,"__esModule",{value:!0});iNt.takeWhile=void 0;var N$c=qg(),D$c=Cd();function k$c(e,t){return t===void 0&&(t=!1),N$c.operate(function(r,n){var a=0;r.subscribe(D$c.createOperatorSubscriber(n,function(o){var l=e(o,a++);(l||t)&&n.next(o),!l&&n.complete()}))})}iNt.takeWhile=k$c});var a5r=H(sNt=>{"use strict";Object.defineProperty(sNt,"__esModule",{value:!0});sNt.tap=void 0;var x$c=Sy(),G$c=qg(),F$c=Cd(),Z$c=nx();function L$c(e,t,r){var n=x$c.isFunction(e)||t||r?{next:e,error:t,complete:r}:e;return n?G$c.operate(function(a,o){var l;(l=n.subscribe)===null||l===void 0||l.call(n);var A=!0;a.subscribe(F$c.createOperatorSubscriber(o,function(f){var I;(I=n.next)===null||I===void 0||I.call(n,f),o.next(f)},function(){var f;A=!1,(f=n.complete)===null||f===void 0||f.call(n),o.complete()},function(f){var I;A=!1,(I=n.error)===null||I===void 0||I.call(n,f),o.error(f)},function(){var f,I;A&&((f=n.unsubscribe)===null||f===void 0||f.call(n)),(I=n.finalize)===null||I===void 0||I.call(n)}))}):Z$c.identity}sNt.tap=L$c});var aNt=H(oNt=>{"use strict";Object.defineProperty(oNt,"__esModule",{value:!0});oNt.throttle=void 0;var V$c=qg(),O$i=Cd(),P$c=uh();function W$c(e,t){return V$c.operate(function(r,n){var a=t??{},o=a.leading,l=o===void 0?!0:o,A=a.trailing,f=A===void 0?!1:A,I=!1,C=null,b=null,E=!1,N=function(){b?.unsubscribe(),b=null,f&&(Q(),E&&n.complete())},B=function(){b=null,E&&n.complete()},F=function(X){return b=P$c.innerFrom(e(X)).subscribe(O$i.createOperatorSubscriber(n,N,B))},Q=function(){if(I){I=!1;var X=C;C=null,n.next(X),!E&&F(X)}};r.subscribe(O$i.createOperatorSubscriber(n,function(X){I=!0,C=X,!(b&&!b.closed)&&(l?Q():F(X))},function(){E=!0,!(f&&I&&b&&!b.closed)&&n.complete()}))})}oNt.throttle=W$c});var c5r=H(cNt=>{"use strict";Object.defineProperty(cNt,"__esModule",{value:!0});cNt.throttleTime=void 0;var O$c=FV(),M$c=aNt(),H$c=ble();function Y$c(e,t,r){t===void 0&&(t=O$c.asyncScheduler);var n=H$c.timer(e,t);return M$c.throttle(function(){return n},r)}cNt.throttleTime=Y$c});var l5r=H(nxe=>{"use strict";Object.defineProperty(nxe,"__esModule",{value:!0});nxe.TimeInterval=nxe.timeInterval=void 0;var Q$c=FV(),X$c=qg(),J$c=Cd();function U$c(e){return e===void 0&&(e=Q$c.asyncScheduler),X$c.operate(function(t,r){var n=e.now();t.subscribe(J$c.createOperatorSubscriber(r,function(a){var o=e.now(),l=o-n;n=o,r.next(new M$i(a,l))}))})}nxe.timeInterval=U$c;var M$i=function(){function e(t,r){this.value=t,this.interval=r}return e}();nxe.TimeInterval=M$i});var u5r=H(lNt=>{"use strict";Object.defineProperty(lNt,"__esModule",{value:!0});lNt.timeoutWith=void 0;var K$c=FV(),j$c=Jwt(),z$c=W8e();function q$c(e,t,r){var n,a,o;if(r=r??K$c.async,j$c.isValidDate(e)?n=e:typeof e=="number"&&(a=e),t)o=function(){return t};else throw new TypeError("No observable provided to switch to");if(n==null&&a==null)throw new TypeError("No timeout provided.");return z$c.timeout({first:n,each:a,scheduler:r,with:o})}lNt.timeoutWith=q$c});var g5r=H(uNt=>{"use strict";Object.defineProperty(uNt,"__esModule",{value:!0});uNt.timestamp=void 0;var $$c=uwt(),eel=lte();function tel(e){return e===void 0&&(e=$$c.dateTimestampProvider),eel.map(function(t){return{value:t,timestamp:e.now()}})}uNt.timestamp=tel});var A5r=H(gNt=>{"use strict";Object.defineProperty(gNt,"__esModule",{value:!0});gNt.window=void 0;var H$i=ix(),rel=qg(),Y$i=Cd(),nel=rx(),iel=uh();function sel(e){return rel.operate(function(t,r){var n=new H$i.Subject;r.next(n.asObservable());var a=function(o){n.error(o),r.error(o)};return t.subscribe(Y$i.createOperatorSubscriber(r,function(o){return n?.next(o)},function(){n.complete(),r.complete()},a)),iel.innerFrom(e).subscribe(Y$i.createOperatorSubscriber(r,function(){n.complete(),r.next(n=new H$i.Subject)},nel.noop,a)),function(){n?.unsubscribe(),n=null}})}gNt.window=sel});var d5r=H(ixe=>{"use strict";var oel=ixe&&ixe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ixe,"__esModule",{value:!0});ixe.windowCount=void 0;var Q$i=ix(),ael=qg(),cel=Cd();function lel(e,t){t===void 0&&(t=0);var r=t>0?t:e;return ael.operate(function(n,a){var o=[new Q$i.Subject],l=[],A=0;a.next(o[0].asObservable()),n.subscribe(cel.createOperatorSubscriber(a,function(f){var I,C;try{for(var b=oel(o),E=b.next();!E.done;E=b.next()){var N=E.value;N.next(f)}}catch(Q){I={error:Q}}finally{try{E&&!E.done&&(C=b.return)&&C.call(b)}finally{if(I)throw I.error}}var B=A-e+1;if(B>=0&&B%r===0&&o.shift().complete(),++A%r===0){var F=new Q$i.Subject;o.push(F),a.next(F.asObservable())}},function(){for(;o.length>0;)o.shift().complete();a.complete()},function(f){for(;o.length>0;)o.shift().error(f);a.error(f)},function(){l=null,o=null}))})}ixe.windowCount=lel});var p5r=H(ANt=>{"use strict";Object.defineProperty(ANt,"__esModule",{value:!0});ANt.windowTime=void 0;var uel=ix(),gel=FV(),Ael=TO(),del=qg(),pel=Cd(),fel=ste(),Iel=ZV(),X$i=ote();function hel(e){for(var t,r,n=[],a=1;a=0?X$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=function(Q){return C.slice().forEach(Q)},F=function(Q){B(function(X){var ae=X.window;return Q(ae)}),Q(I),I.unsubscribe()};return f.subscribe(pel.createOperatorSubscriber(I,function(Q){B(function(X){X.window.next(Q),A<=++X.seen&&E(X)})},function(){return F(function(Q){return Q.complete()})},function(Q){return F(function(X){return X.error(Q)})})),function(){C=null}})}ANt.windowTime=hel});var I5r=H(sxe=>{"use strict";var mel=sxe&&sxe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(sxe,"__esModule",{value:!0});sxe.windowToggle=void 0;var Cel=ix(),_el=TO(),yel=qg(),J$i=uh(),f5r=Cd(),U$i=rx(),bel=ste();function Eel(e,t){return yel.operate(function(r,n){var a=[],o=function(l){for(;0{"use strict";Object.defineProperty(dNt,"__esModule",{value:!0});dNt.windowWhen=void 0;var Sel=ix(),vel=qg(),K$i=Cd(),Bel=uh();function wel(e){return vel.operate(function(t,r){var n,a,o=function(A){n.error(A),r.error(A)},l=function(){a?.unsubscribe(),n?.complete(),n=new Sel.Subject,r.next(n.asObservable());var A;try{A=Bel.innerFrom(e())}catch(f){o(f);return}A.subscribe(a=K$i.createOperatorSubscriber(r,l,l,o))};l(),t.subscribe(K$i.createOperatorSubscriber(r,function(A){return n.next(A)},function(){n.complete(),r.complete()},o,function(){a?.unsubscribe(),n=null}))})}dNt.windowWhen=wel});var m5r=H(Gle=>{"use strict";var j$i=Gle&&Gle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},z$i=Gle&&Gle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(pNt,"__esModule",{value:!0});pNt.zipAll=void 0;var Gel=bTt(),Fel=e3r();function Zel(e){return Fel.joinAllInternals(Gel.zip,e)}pNt.zipAll=Zel});var _5r=H(Fle=>{"use strict";var Lel=Fle&&Fle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Vel=Fle&&Fle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Mel=Zle&&Zle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Hel=Zle&&Zle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Xel=Cn&&Cn.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jel=Cn&&Cn.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Xel(t,e,r)};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.interval=Cn.iif=Cn.generate=Cn.fromEventPattern=Cn.fromEvent=Cn.from=Cn.forkJoin=Cn.empty=Cn.defer=Cn.connectable=Cn.concat=Cn.combineLatest=Cn.bindNodeCallback=Cn.bindCallback=Cn.UnsubscriptionError=Cn.TimeoutError=Cn.SequenceError=Cn.ObjectUnsubscribedError=Cn.NotFoundError=Cn.EmptyError=Cn.ArgumentOutOfRangeError=Cn.firstValueFrom=Cn.lastValueFrom=Cn.isObservable=Cn.identity=Cn.noop=Cn.pipe=Cn.NotificationKind=Cn.Notification=Cn.Subscriber=Cn.Subscription=Cn.Scheduler=Cn.VirtualAction=Cn.VirtualTimeScheduler=Cn.animationFrameScheduler=Cn.animationFrame=Cn.queueScheduler=Cn.queue=Cn.asyncScheduler=Cn.async=Cn.asapScheduler=Cn.asap=Cn.AsyncSubject=Cn.ReplaySubject=Cn.BehaviorSubject=Cn.Subject=Cn.animationFrames=Cn.observable=Cn.ConnectableObservable=Cn.Observable=void 0;Cn.filter=Cn.expand=Cn.exhaustMap=Cn.exhaustAll=Cn.exhaust=Cn.every=Cn.endWith=Cn.elementAt=Cn.distinctUntilKeyChanged=Cn.distinctUntilChanged=Cn.distinct=Cn.dematerialize=Cn.delayWhen=Cn.delay=Cn.defaultIfEmpty=Cn.debounceTime=Cn.debounce=Cn.count=Cn.connect=Cn.concatWith=Cn.concatMapTo=Cn.concatMap=Cn.concatAll=Cn.combineLatestWith=Cn.combineLatestAll=Cn.combineAll=Cn.catchError=Cn.bufferWhen=Cn.bufferToggle=Cn.bufferTime=Cn.bufferCount=Cn.buffer=Cn.auditTime=Cn.audit=Cn.config=Cn.NEVER=Cn.EMPTY=Cn.scheduled=Cn.zip=Cn.using=Cn.timer=Cn.throwError=Cn.range=Cn.race=Cn.partition=Cn.pairs=Cn.onErrorResumeNext=Cn.of=Cn.never=Cn.merge=void 0;Cn.switchMap=Cn.switchAll=Cn.subscribeOn=Cn.startWith=Cn.skipWhile=Cn.skipUntil=Cn.skipLast=Cn.skip=Cn.single=Cn.shareReplay=Cn.share=Cn.sequenceEqual=Cn.scan=Cn.sampleTime=Cn.sample=Cn.refCount=Cn.retryWhen=Cn.retry=Cn.repeatWhen=Cn.repeat=Cn.reduce=Cn.raceWith=Cn.publishReplay=Cn.publishLast=Cn.publishBehavior=Cn.publish=Cn.pluck=Cn.pairwise=Cn.onErrorResumeNextWith=Cn.observeOn=Cn.multicast=Cn.min=Cn.mergeWith=Cn.mergeScan=Cn.mergeMapTo=Cn.mergeMap=Cn.flatMap=Cn.mergeAll=Cn.max=Cn.materialize=Cn.mapTo=Cn.map=Cn.last=Cn.isEmpty=Cn.ignoreElements=Cn.groupBy=Cn.first=Cn.findIndex=Cn.find=Cn.finalize=void 0;Cn.zipWith=Cn.zipAll=Cn.withLatestFrom=Cn.windowWhen=Cn.windowToggle=Cn.windowTime=Cn.windowCount=Cn.window=Cn.toArray=Cn.timestamp=Cn.timeoutWith=Cn.timeout=Cn.timeInterval=Cn.throwIfEmpty=Cn.throttleTime=Cn.throttle=Cn.tap=Cn.takeWhile=Cn.takeUntil=Cn.takeLast=Cn.take=Cn.switchScan=Cn.switchMapTo=void 0;var Uel=ub();Object.defineProperty(Cn,"Observable",{enumerable:!0,get:function(){return Uel.Observable}});var Kel=Z8e();Object.defineProperty(Cn,"ConnectableObservable",{enumerable:!0,get:function(){return Kel.ConnectableObservable}});var jel=G8e();Object.defineProperty(Cn,"observable",{enumerable:!0,get:function(){return jel.observable}});var zel=Nzi();Object.defineProperty(Cn,"animationFrames",{enumerable:!0,get:function(){return zel.animationFrames}});var qel=ix();Object.defineProperty(Cn,"Subject",{enumerable:!0,get:function(){return qel.Subject}});var $el=pOr();Object.defineProperty(Cn,"BehaviorSubject",{enumerable:!0,get:function(){return $el.BehaviorSubject}});var etl=gwt();Object.defineProperty(Cn,"ReplaySubject",{enumerable:!0,get:function(){return etl.ReplaySubject}});var ttl=Awt();Object.defineProperty(Cn,"AsyncSubject",{enumerable:!0,get:function(){return ttl.AsyncSubject}});var $$i=Jzi();Object.defineProperty(Cn,"asap",{enumerable:!0,get:function(){return $$i.asap}});Object.defineProperty(Cn,"asapScheduler",{enumerable:!0,get:function(){return $$i.asapScheduler}});var ees=FV();Object.defineProperty(Cn,"async",{enumerable:!0,get:function(){return ees.async}});Object.defineProperty(Cn,"asyncScheduler",{enumerable:!0,get:function(){return ees.asyncScheduler}});var tes=jzi();Object.defineProperty(Cn,"queue",{enumerable:!0,get:function(){return tes.queue}});Object.defineProperty(Cn,"queueScheduler",{enumerable:!0,get:function(){return tes.queueScheduler}});var res=eqi();Object.defineProperty(Cn,"animationFrame",{enumerable:!0,get:function(){return res.animationFrame}});Object.defineProperty(Cn,"animationFrameScheduler",{enumerable:!0,get:function(){return res.animationFrameScheduler}});var nes=nqi();Object.defineProperty(Cn,"VirtualTimeScheduler",{enumerable:!0,get:function(){return nes.VirtualTimeScheduler}});Object.defineProperty(Cn,"VirtualAction",{enumerable:!0,get:function(){return nes.VirtualAction}});var rtl=IOr();Object.defineProperty(Cn,"Scheduler",{enumerable:!0,get:function(){return rtl.Scheduler}});var ntl=TO();Object.defineProperty(Cn,"Subscription",{enumerable:!0,get:function(){return ntl.Subscription}});var itl=Cke();Object.defineProperty(Cn,"Subscriber",{enumerable:!0,get:function(){return itl.Subscriber}});var ies=Vwt();Object.defineProperty(Cn,"Notification",{enumerable:!0,get:function(){return ies.Notification}});Object.defineProperty(Cn,"NotificationKind",{enumerable:!0,get:function(){return ies.NotificationKind}});var stl=F8e();Object.defineProperty(Cn,"pipe",{enumerable:!0,get:function(){return stl.pipe}});var otl=rx();Object.defineProperty(Cn,"noop",{enumerable:!0,get:function(){return otl.noop}});var atl=nx();Object.defineProperty(Cn,"identity",{enumerable:!0,get:function(){return atl.identity}});var ctl=_qi();Object.defineProperty(Cn,"isObservable",{enumerable:!0,get:function(){return ctl.isObservable}});var ltl=yqi();Object.defineProperty(Cn,"lastValueFrom",{enumerable:!0,get:function(){return ltl.lastValueFrom}});var utl=bqi();Object.defineProperty(Cn,"firstValueFrom",{enumerable:!0,get:function(){return utl.firstValueFrom}});var gtl=DOr();Object.defineProperty(Cn,"ArgumentOutOfRangeError",{enumerable:!0,get:function(){return gtl.ArgumentOutOfRangeError}});var Atl=mle();Object.defineProperty(Cn,"EmptyError",{enumerable:!0,get:function(){return Atl.EmptyError}});var dtl=kOr();Object.defineProperty(Cn,"NotFoundError",{enumerable:!0,get:function(){return dtl.NotFoundError}});var ptl=uOr();Object.defineProperty(Cn,"ObjectUnsubscribedError",{enumerable:!0,get:function(){return ptl.ObjectUnsubscribedError}});var ftl=xOr();Object.defineProperty(Cn,"SequenceError",{enumerable:!0,get:function(){return ftl.SequenceError}});var Itl=W8e();Object.defineProperty(Cn,"TimeoutError",{enumerable:!0,get:function(){return Itl.TimeoutError}});var htl=qWr();Object.defineProperty(Cn,"UnsubscriptionError",{enumerable:!0,get:function(){return htl.UnsubscriptionError}});var mtl=Sqi();Object.defineProperty(Cn,"bindCallback",{enumerable:!0,get:function(){return mtl.bindCallback}});var Ctl=vqi();Object.defineProperty(Cn,"bindNodeCallback",{enumerable:!0,get:function(){return Ctl.bindNodeCallback}});var _tl=$wt();Object.defineProperty(Cn,"combineLatest",{enumerable:!0,get:function(){return _tl.combineLatest}});var ytl=M8e();Object.defineProperty(Cn,"concat",{enumerable:!0,get:function(){return ytl.concat}});var btl=xqi();Object.defineProperty(Cn,"connectable",{enumerable:!0,get:function(){return btl.connectable}});var Etl=H8e();Object.defineProperty(Cn,"defer",{enumerable:!0,get:function(){return Etl.defer}});var Stl=x4();Object.defineProperty(Cn,"empty",{enumerable:!0,get:function(){return Stl.empty}});var vtl=Gqi();Object.defineProperty(Cn,"forkJoin",{enumerable:!0,get:function(){return vtl.forkJoin}});var Btl=ate();Object.defineProperty(Cn,"from",{enumerable:!0,get:function(){return Btl.from}});var wtl=Zqi();Object.defineProperty(Cn,"fromEvent",{enumerable:!0,get:function(){return wtl.fromEvent}});var Ttl=Vqi();Object.defineProperty(Cn,"fromEventPattern",{enumerable:!0,get:function(){return Ttl.fromEventPattern}});var Rtl=Wqi();Object.defineProperty(Cn,"generate",{enumerable:!0,get:function(){return Rtl.generate}});var Ntl=Oqi();Object.defineProperty(Cn,"iif",{enumerable:!0,get:function(){return Ntl.iif}});var Dtl=POr();Object.defineProperty(Cn,"interval",{enumerable:!0,get:function(){return Dtl.interval}});var ktl=Hqi();Object.defineProperty(Cn,"merge",{enumerable:!0,get:function(){return ktl.merge}});var xtl=WOr();Object.defineProperty(Cn,"never",{enumerable:!0,get:function(){return xtl.never}});var Gtl=Zwt();Object.defineProperty(Cn,"of",{enumerable:!0,get:function(){return Gtl.of}});var Ftl=OOr();Object.defineProperty(Cn,"onErrorResumeNext",{enumerable:!0,get:function(){return Ftl.onErrorResumeNext}});var Ztl=Qqi();Object.defineProperty(Cn,"pairs",{enumerable:!0,get:function(){return Ztl.pairs}});var Ltl=Uqi();Object.defineProperty(Cn,"partition",{enumerable:!0,get:function(){return Ltl.partition}});var Vtl=HOr();Object.defineProperty(Cn,"race",{enumerable:!0,get:function(){return Vtl.race}});var Ptl=zqi();Object.defineProperty(Cn,"range",{enumerable:!0,get:function(){return Ptl.range}});var Wtl=NOr();Object.defineProperty(Cn,"throwError",{enumerable:!0,get:function(){return Wtl.throwError}});var Otl=ble();Object.defineProperty(Cn,"timer",{enumerable:!0,get:function(){return Otl.timer}});var Mtl=qqi();Object.defineProperty(Cn,"using",{enumerable:!0,get:function(){return Mtl.using}});var Htl=bTt();Object.defineProperty(Cn,"zip",{enumerable:!0,get:function(){return Htl.zip}});var Ytl=ROr();Object.defineProperty(Cn,"scheduled",{enumerable:!0,get:function(){return Ytl.scheduled}});var Qtl=x4();Object.defineProperty(Cn,"EMPTY",{enumerable:!0,get:function(){return Qtl.EMPTY}});var Xtl=WOr();Object.defineProperty(Cn,"NEVER",{enumerable:!0,get:function(){return Xtl.NEVER}});Jel(e$i(),Cn);var Jtl=hke();Object.defineProperty(Cn,"config",{enumerable:!0,get:function(){return Jtl.config}});var Utl=STt();Object.defineProperty(Cn,"audit",{enumerable:!0,get:function(){return Utl.audit}});var Ktl=YOr();Object.defineProperty(Cn,"auditTime",{enumerable:!0,get:function(){return Ktl.auditTime}});var jtl=QOr();Object.defineProperty(Cn,"buffer",{enumerable:!0,get:function(){return jtl.buffer}});var ztl=JOr();Object.defineProperty(Cn,"bufferCount",{enumerable:!0,get:function(){return ztl.bufferCount}});var qtl=UOr();Object.defineProperty(Cn,"bufferTime",{enumerable:!0,get:function(){return qtl.bufferTime}});var $tl=jOr();Object.defineProperty(Cn,"bufferToggle",{enumerable:!0,get:function(){return $tl.bufferToggle}});var erl=zOr();Object.defineProperty(Cn,"bufferWhen",{enumerable:!0,get:function(){return erl.bufferWhen}});var trl=qOr();Object.defineProperty(Cn,"catchError",{enumerable:!0,get:function(){return trl.catchError}});var rrl=t3r();Object.defineProperty(Cn,"combineAll",{enumerable:!0,get:function(){return rrl.combineAll}});var nrl=FTt();Object.defineProperty(Cn,"combineLatestAll",{enumerable:!0,get:function(){return nrl.combineLatestAll}});var irl=n3r();Object.defineProperty(Cn,"combineLatestWith",{enumerable:!0,get:function(){return irl.combineLatestWith}});var srl=O8e();Object.defineProperty(Cn,"concatAll",{enumerable:!0,get:function(){return srl.concatAll}});var orl=VTt();Object.defineProperty(Cn,"concatMap",{enumerable:!0,get:function(){return orl.concatMap}});var arl=i3r();Object.defineProperty(Cn,"concatMapTo",{enumerable:!0,get:function(){return arl.concatMapTo}});var crl=o3r();Object.defineProperty(Cn,"concatWith",{enumerable:!0,get:function(){return crl.concatWith}});var lrl=Y8e();Object.defineProperty(Cn,"connect",{enumerable:!0,get:function(){return lrl.connect}});var url=a3r();Object.defineProperty(Cn,"count",{enumerable:!0,get:function(){return url.count}});var grl=c3r();Object.defineProperty(Cn,"debounce",{enumerable:!0,get:function(){return grl.debounce}});var Arl=l3r();Object.defineProperty(Cn,"debounceTime",{enumerable:!0,get:function(){return Arl.debounceTime}});var drl=zke();Object.defineProperty(Cn,"defaultIfEmpty",{enumerable:!0,get:function(){return drl.defaultIfEmpty}});var prl=u3r();Object.defineProperty(Cn,"delay",{enumerable:!0,get:function(){return prl.delay}});var frl=qTt();Object.defineProperty(Cn,"delayWhen",{enumerable:!0,get:function(){return frl.delayWhen}});var Irl=g3r();Object.defineProperty(Cn,"dematerialize",{enumerable:!0,get:function(){return Irl.dematerialize}});var hrl=A3r();Object.defineProperty(Cn,"distinct",{enumerable:!0,get:function(){return hrl.distinct}});var mrl=nRt();Object.defineProperty(Cn,"distinctUntilChanged",{enumerable:!0,get:function(){return mrl.distinctUntilChanged}});var Crl=d3r();Object.defineProperty(Cn,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return Crl.distinctUntilKeyChanged}});var _rl=p3r();Object.defineProperty(Cn,"elementAt",{enumerable:!0,get:function(){return _rl.elementAt}});var yrl=f3r();Object.defineProperty(Cn,"endWith",{enumerable:!0,get:function(){return yrl.endWith}});var brl=I3r();Object.defineProperty(Cn,"every",{enumerable:!0,get:function(){return brl.every}});var Erl=h3r();Object.defineProperty(Cn,"exhaust",{enumerable:!0,get:function(){return Erl.exhaust}});var Srl=gRt();Object.defineProperty(Cn,"exhaustAll",{enumerable:!0,get:function(){return Srl.exhaustAll}});var vrl=lRt();Object.defineProperty(Cn,"exhaustMap",{enumerable:!0,get:function(){return vrl.exhaustMap}});var Brl=m3r();Object.defineProperty(Cn,"expand",{enumerable:!0,get:function(){return Brl.expand}});var wrl=ute();Object.defineProperty(Cn,"filter",{enumerable:!0,get:function(){return wrl.filter}});var Trl=C3r();Object.defineProperty(Cn,"finalize",{enumerable:!0,get:function(){return Trl.finalize}});var Rrl=fRt();Object.defineProperty(Cn,"find",{enumerable:!0,get:function(){return Rrl.find}});var Nrl=_3r();Object.defineProperty(Cn,"findIndex",{enumerable:!0,get:function(){return Nrl.findIndex}});var Drl=y3r();Object.defineProperty(Cn,"first",{enumerable:!0,get:function(){return Drl.first}});var krl=b3r();Object.defineProperty(Cn,"groupBy",{enumerable:!0,get:function(){return krl.groupBy}});var xrl=UTt();Object.defineProperty(Cn,"ignoreElements",{enumerable:!0,get:function(){return xrl.ignoreElements}});var Grl=E3r();Object.defineProperty(Cn,"isEmpty",{enumerable:!0,get:function(){return Grl.isEmpty}});var Frl=S3r();Object.defineProperty(Cn,"last",{enumerable:!0,get:function(){return Frl.last}});var Zrl=lte();Object.defineProperty(Cn,"map",{enumerable:!0,get:function(){return Zrl.map}});var Lrl=jTt();Object.defineProperty(Cn,"mapTo",{enumerable:!0,get:function(){return Lrl.mapTo}});var Vrl=B3r();Object.defineProperty(Cn,"materialize",{enumerable:!0,get:function(){return Vrl.materialize}});var Prl=w3r();Object.defineProperty(Cn,"max",{enumerable:!0,get:function(){return Prl.max}});var Wrl=Yke();Object.defineProperty(Cn,"mergeAll",{enumerable:!0,get:function(){return Wrl.mergeAll}});var Orl=T3r();Object.defineProperty(Cn,"flatMap",{enumerable:!0,get:function(){return Orl.flatMap}});var Mrl=Kj();Object.defineProperty(Cn,"mergeMap",{enumerable:!0,get:function(){return Mrl.mergeMap}});var Hrl=R3r();Object.defineProperty(Cn,"mergeMapTo",{enumerable:!0,get:function(){return Hrl.mergeMapTo}});var Yrl=N3r();Object.defineProperty(Cn,"mergeScan",{enumerable:!0,get:function(){return Yrl.mergeScan}});var Qrl=k3r();Object.defineProperty(Cn,"mergeWith",{enumerable:!0,get:function(){return Qrl.mergeWith}});var Xrl=x3r();Object.defineProperty(Cn,"min",{enumerable:!0,get:function(){return Xrl.min}});var Jrl=Q8e();Object.defineProperty(Cn,"multicast",{enumerable:!0,get:function(){return Jrl.multicast}});var Url=Oke();Object.defineProperty(Cn,"observeOn",{enumerable:!0,get:function(){return Url.observeOn}});var Krl=G3r();Object.defineProperty(Cn,"onErrorResumeNextWith",{enumerable:!0,get:function(){return Krl.onErrorResumeNextWith}});var jrl=F3r();Object.defineProperty(Cn,"pairwise",{enumerable:!0,get:function(){return jrl.pairwise}});var zrl=Z3r();Object.defineProperty(Cn,"pluck",{enumerable:!0,get:function(){return zrl.pluck}});var qrl=L3r();Object.defineProperty(Cn,"publish",{enumerable:!0,get:function(){return qrl.publish}});var $rl=V3r();Object.defineProperty(Cn,"publishBehavior",{enumerable:!0,get:function(){return $rl.publishBehavior}});var enl=P3r();Object.defineProperty(Cn,"publishLast",{enumerable:!0,get:function(){return enl.publishLast}});var tnl=W3r();Object.defineProperty(Cn,"publishReplay",{enumerable:!0,get:function(){return tnl.publishReplay}});var rnl=FRt();Object.defineProperty(Cn,"raceWith",{enumerable:!0,get:function(){return rnl.raceWith}});var nnl=C_e();Object.defineProperty(Cn,"reduce",{enumerable:!0,get:function(){return nnl.reduce}});var inl=O3r();Object.defineProperty(Cn,"repeat",{enumerable:!0,get:function(){return inl.repeat}});var snl=M3r();Object.defineProperty(Cn,"repeatWhen",{enumerable:!0,get:function(){return snl.repeatWhen}});var onl=H3r();Object.defineProperty(Cn,"retry",{enumerable:!0,get:function(){return onl.retry}});var anl=Y3r();Object.defineProperty(Cn,"retryWhen",{enumerable:!0,get:function(){return anl.retryWhen}});var cnl=awt();Object.defineProperty(Cn,"refCount",{enumerable:!0,get:function(){return cnl.refCount}});var lnl=ORt();Object.defineProperty(Cn,"sample",{enumerable:!0,get:function(){return lnl.sample}});var unl=Q3r();Object.defineProperty(Cn,"sampleTime",{enumerable:!0,get:function(){return unl.sampleTime}});var gnl=X3r();Object.defineProperty(Cn,"scan",{enumerable:!0,get:function(){return gnl.scan}});var Anl=J3r();Object.defineProperty(Cn,"sequenceEqual",{enumerable:!0,get:function(){return Anl.sequenceEqual}});var dnl=QRt();Object.defineProperty(Cn,"share",{enumerable:!0,get:function(){return dnl.share}});var pnl=K3r();Object.defineProperty(Cn,"shareReplay",{enumerable:!0,get:function(){return pnl.shareReplay}});var fnl=j3r();Object.defineProperty(Cn,"single",{enumerable:!0,get:function(){return fnl.single}});var Inl=z3r();Object.defineProperty(Cn,"skip",{enumerable:!0,get:function(){return Inl.skip}});var hnl=q3r();Object.defineProperty(Cn,"skipLast",{enumerable:!0,get:function(){return hnl.skipLast}});var mnl=$3r();Object.defineProperty(Cn,"skipUntil",{enumerable:!0,get:function(){return mnl.skipUntil}});var Cnl=e5r();Object.defineProperty(Cn,"skipWhile",{enumerable:!0,get:function(){return Cnl.skipWhile}});var _nl=t5r();Object.defineProperty(Cn,"startWith",{enumerable:!0,get:function(){return _nl.startWith}});var ynl=Mke();Object.defineProperty(Cn,"subscribeOn",{enumerable:!0,get:function(){return ynl.subscribeOn}});var bnl=r5r();Object.defineProperty(Cn,"switchAll",{enumerable:!0,get:function(){return bnl.switchAll}});var Enl=rxe();Object.defineProperty(Cn,"switchMap",{enumerable:!0,get:function(){return Enl.switchMap}});var Snl=n5r();Object.defineProperty(Cn,"switchMapTo",{enumerable:!0,get:function(){return Snl.switchMapTo}});var vnl=i5r();Object.defineProperty(Cn,"switchScan",{enumerable:!0,get:function(){return vnl.switchScan}});var Bnl=qke();Object.defineProperty(Cn,"take",{enumerable:!0,get:function(){return Bnl.take}});var wnl=_Rt();Object.defineProperty(Cn,"takeLast",{enumerable:!0,get:function(){return wnl.takeLast}});var Tnl=s5r();Object.defineProperty(Cn,"takeUntil",{enumerable:!0,get:function(){return Tnl.takeUntil}});var Rnl=o5r();Object.defineProperty(Cn,"takeWhile",{enumerable:!0,get:function(){return Rnl.takeWhile}});var Nnl=a5r();Object.defineProperty(Cn,"tap",{enumerable:!0,get:function(){return Nnl.tap}});var Dnl=aNt();Object.defineProperty(Cn,"throttle",{enumerable:!0,get:function(){return Dnl.throttle}});var knl=c5r();Object.defineProperty(Cn,"throttleTime",{enumerable:!0,get:function(){return knl.throttleTime}});var xnl=$ke();Object.defineProperty(Cn,"throwIfEmpty",{enumerable:!0,get:function(){return xnl.throwIfEmpty}});var Gnl=l5r();Object.defineProperty(Cn,"timeInterval",{enumerable:!0,get:function(){return Gnl.timeInterval}});var Fnl=W8e();Object.defineProperty(Cn,"timeout",{enumerable:!0,get:function(){return Fnl.timeout}});var Znl=u5r();Object.defineProperty(Cn,"timeoutWith",{enumerable:!0,get:function(){return Znl.timeoutWith}});var Lnl=g5r();Object.defineProperty(Cn,"timestamp",{enumerable:!0,get:function(){return Lnl.timestamp}});var Vnl=kTt();Object.defineProperty(Cn,"toArray",{enumerable:!0,get:function(){return Vnl.toArray}});var Pnl=A5r();Object.defineProperty(Cn,"window",{enumerable:!0,get:function(){return Pnl.window}});var Wnl=d5r();Object.defineProperty(Cn,"windowCount",{enumerable:!0,get:function(){return Wnl.windowCount}});var Onl=p5r();Object.defineProperty(Cn,"windowTime",{enumerable:!0,get:function(){return Onl.windowTime}});var Mnl=I5r();Object.defineProperty(Cn,"windowToggle",{enumerable:!0,get:function(){return Mnl.windowToggle}});var Hnl=h5r();Object.defineProperty(Cn,"windowWhen",{enumerable:!0,get:function(){return Hnl.windowWhen}});var Ynl=m5r();Object.defineProperty(Cn,"withLatestFrom",{enumerable:!0,get:function(){return Ynl.withLatestFrom}});var Qnl=C5r();Object.defineProperty(Cn,"zipAll",{enumerable:!0,get:function(){return Qnl.zipAll}});var Xnl=y5r();Object.defineProperty(Cn,"zipWith",{enumerable:!0,get:function(){return Xnl.zipWith}})});var gte=H(LV=>{"use strict";Object.defineProperty(LV,"__esModule",{value:!0});LV.PathIsFileException=LV.PathIsDirectoryException=LV.FileAlreadyExistException=LV.FileDoesNotExistException=LV.UnknownException=LV.BaseException=void 0;var Lle=class extends Error{constructor(t=""){super(t)}};LV.BaseException=Lle;var b5r=class extends Lle{constructor(t){super(t)}};LV.UnknownException=b5r;var E5r=class extends Lle{constructor(t){super(`Path "${t}" does not exist.`)}};LV.FileDoesNotExistException=E5r;var S5r=class extends Lle{constructor(t){super(`Path "${t}" already exist.`)}};LV.FileAlreadyExistException=S5r;var v5r=class extends Lle{constructor(t){super(`Path "${t}" is a directory.`)}};LV.PathIsDirectoryException=v5r;var B5r=class extends Lle{constructor(t){super(`Path "${t}" is a file.`)}};LV.PathIsFileException=B5r});var oes=H(__e=>{"use strict";Object.defineProperty(__e,"__esModule",{value:!0});__e.oneLine=Jnl;__e.indentBy=Unl;__e.stripIndent=ses;__e.stripIndents=Knl;__e.trimNewlines=jnl;function Jnl(e,...t){return String.raw(e,...t).replace(/(?:\r?\n(?:\s*))+/gm," ").trim()}function Unl(e){let t="";for(;e--;)t+=" ";return(r,...n)=>t+ses(r,...n).replace(/\n/g,` -`+t)}function ses(e,...t){let r=String.raw(e,...t),n=r.match(/^[ \t]*(?=\S)/gm);if(n===null)return r;let a=Math.min(...n.map(l=>l.length)),o=new RegExp("^[ \\t]{"+a+"}","gm");return(a>0?r.replace(o,""):r).trim()}function Knl(e,...t){return String.raw(e,...t).split(` + `):"",this.name="UnsubscriptionError",this.errors=r}})});var ste=H(jBt=>{"use strict";Object.defineProperty(jBt,"__esModule",{value:!0});jBt.arrRemove=void 0;function WYc(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}jBt.arrRemove=WYc});var TO=H(GV=>{"use strict";var ozi=GV&&GV.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},azi=GV&&GV.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},czi=GV&&GV.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(zBt,"__esModule",{value:!0});zBt.config=void 0;zBt.config={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1}});var tOr=H(Yj=>{"use strict";var gzi=Yj&&Yj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Azi=Yj&&Yj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(qBt,"__esModule",{value:!0});qBt.reportUnhandledError=void 0;var MYc=hke(),HYc=tOr();function YYc(e){HYc.timeoutProvider.setTimeout(function(){var t=MYc.config.onUnhandledError;if(t)t(e);else throw e})}qBt.reportUnhandledError=YYc});var rx=H($Bt=>{"use strict";Object.defineProperty($Bt,"__esModule",{value:!0});$Bt.noop=void 0;function QYc(){}$Bt.noop=QYc});var dzi=H(Qj=>{"use strict";Object.defineProperty(Qj,"__esModule",{value:!0});Qj.createNotification=Qj.nextNotification=Qj.errorNotification=Qj.COMPLETE_NOTIFICATION=void 0;Qj.COMPLETE_NOTIFICATION=function(){return ewt("C",void 0,void 0)}();function XYc(e){return ewt("E",void 0,e)}Qj.errorNotification=XYc;function JYc(e){return ewt("N",e,void 0)}Qj.nextNotification=JYc;function ewt(e,t,r){return{kind:e,value:t,error:r}}Qj.createNotification=ewt});var twt=H(mke=>{"use strict";Object.defineProperty(mke,"__esModule",{value:!0});mke.captureError=mke.errorContext=void 0;var pzi=hke(),u_e=null;function UYc(e){if(pzi.config.useDeprecatedSynchronousErrorHandling){var t=!u_e;if(t&&(u_e={errorThrown:!1,error:null}),e(),t){var r=u_e,n=r.errorThrown,a=r.error;if(u_e=null,n)throw a}}else e()}mke.errorContext=UYc;function KYc(e){pzi.config.useDeprecatedSynchronousErrorHandling&&u_e&&(u_e.errorThrown=!0,u_e.error=e)}mke.captureError=KYc});var Cke=H(D4=>{"use strict";var hzi=D4&&D4.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(D4,"__esModule",{value:!0});D4.EMPTY_OBSERVER=D4.SafeSubscriber=D4.Subscriber=void 0;var jYc=Sy(),fzi=TO(),oOr=hke(),zYc=rOr(),Izi=rx(),nOr=dzi(),qYc=tOr(),$Yc=twt(),mzi=function(e){hzi(t,e);function t(r){var n=e.call(this)||this;return n.isStopped=!1,r?(n.destination=r,fzi.isSubscription(r)&&r.add(n)):n.destination=D4.EMPTY_OBSERVER,n}return t.create=function(r,n,a){return new Czi(r,n,a)},t.prototype.next=function(r){this.isStopped?sOr(nOr.nextNotification(r),this):this._next(r)},t.prototype.error=function(r){this.isStopped?sOr(nOr.errorNotification(r),this):(this.isStopped=!0,this._error(r))},t.prototype.complete=function(){this.isStopped?sOr(nOr.COMPLETE_NOTIFICATION,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(r){this.destination.next(r)},t.prototype._error=function(r){try{this.destination.error(r)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(fzi.Subscription);D4.Subscriber=mzi;var eQc=Function.prototype.bind;function iOr(e,t){return eQc.call(e,t)}var tQc=function(){function e(t){this.partialObserver=t}return e.prototype.next=function(t){var r=this.partialObserver;if(r.next)try{r.next(t)}catch(n){rwt(n)}},e.prototype.error=function(t){var r=this.partialObserver;if(r.error)try{r.error(t)}catch(n){rwt(n)}else rwt(t)},e.prototype.complete=function(){var t=this.partialObserver;if(t.complete)try{t.complete()}catch(r){rwt(r)}},e}(),Czi=function(e){hzi(t,e);function t(r,n,a){var o=e.call(this)||this,l;if(jYc.isFunction(r)||!r)l={next:r??void 0,error:n??void 0,complete:a??void 0};else{var A;o&&oOr.config.useDeprecatedNextContext?(A=Object.create(r),A.unsubscribe=function(){return o.unsubscribe()},l={next:r.next&&iOr(r.next,A),error:r.error&&iOr(r.error,A),complete:r.complete&&iOr(r.complete,A)}):l=r}return o.destination=new tQc(l),o}return t}(mzi);D4.SafeSubscriber=Czi;function rwt(e){oOr.config.useDeprecatedSynchronousErrorHandling?$Yc.captureError(e):zYc.reportUnhandledError(e)}function rQc(e){throw e}function sOr(e,t){var r=oOr.config.onStoppedNotification;r&&qYc.timeoutProvider.setTimeout(function(){return r(e,t)})}D4.EMPTY_OBSERVER={closed:!0,next:Izi.noop,error:rQc,complete:Izi.noop}});var G8e=H(nwt=>{"use strict";Object.defineProperty(nwt,"__esModule",{value:!0});nwt.observable=void 0;nwt.observable=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}()});var nx=H(iwt=>{"use strict";Object.defineProperty(iwt,"__esModule",{value:!0});iwt.identity=void 0;function nQc(e){return e}iwt.identity=nQc});var F8e=H(_ke=>{"use strict";Object.defineProperty(_ke,"__esModule",{value:!0});_ke.pipeFromArray=_ke.pipe=void 0;var iQc=nx();function sQc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(swt,"__esModule",{value:!0});swt.Observable=void 0;var cOr=Cke(),oQc=TO(),aQc=G8e(),cQc=F8e(),lQc=hke(),aOr=Sy(),uQc=twt(),gQc=function(){function e(t){t&&(this._subscribe=t)}return e.prototype.lift=function(t){var r=new e;return r.source=this,r.operator=t,r},e.prototype.subscribe=function(t,r,n){var a=this,o=dQc(t)?t:new cOr.SafeSubscriber(t,r,n);return uQc.errorContext(function(){var l=a,A=l.operator,f=l.source;o.add(A?A.call(o,f):f?a._subscribe(o):a._trySubscribe(o))}),o},e.prototype._trySubscribe=function(t){try{return this._subscribe(t)}catch(r){t.error(r)}},e.prototype.forEach=function(t,r){var n=this;return r=yzi(r),new r(function(a,o){var l=new cOr.SafeSubscriber({next:function(A){try{t(A)}catch(f){o(f),l.unsubscribe()}},error:o,complete:a});n.subscribe(l)})},e.prototype._subscribe=function(t){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(t)},e.prototype[aQc.observable]=function(){return this},e.prototype.pipe=function(){for(var t=[],r=0;r{"use strict";Object.defineProperty(yke,"__esModule",{value:!0});yke.operate=yke.hasLift=void 0;var pQc=Sy();function bzi(e){return pQc.isFunction(e?.lift)}yke.hasLift=bzi;function fQc(e){return function(t){if(bzi(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}yke.operate=fQc});var Cd=H(fle=>{"use strict";var IQc=fle&&fle.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(fle,"__esModule",{value:!0});fle.OperatorSubscriber=fle.createOperatorSubscriber=void 0;var hQc=Cke();function mQc(e,t,r,n,a){return new Ezi(e,t,r,n,a)}fle.createOperatorSubscriber=mQc;var Ezi=function(e){IQc(t,e);function t(r,n,a,o,l,A){var f=e.call(this,r)||this;return f.onFinalize=l,f.shouldUnsubscribe=A,f._next=n?function(I){try{n(I)}catch(C){r.error(C)}}:e.prototype._next,f._error=o?function(I){try{o(I)}catch(C){r.error(C)}finally{this.unsubscribe()}}:e.prototype._error,f._complete=a?function(){try{a()}catch(I){r.error(I)}finally{this.unsubscribe()}}:e.prototype._complete,f}return t.prototype.unsubscribe=function(){var r;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((r=this.onFinalize)===null||r===void 0||r.call(this))}},t}(hQc.Subscriber);fle.OperatorSubscriber=Ezi});var awt=H(owt=>{"use strict";Object.defineProperty(owt,"__esModule",{value:!0});owt.refCount=void 0;var CQc=qg(),_Qc=Cd();function yQc(){return CQc.operate(function(e,t){var r=null;e._refCount++;var n=_Qc.createOperatorSubscriber(t,void 0,void 0,void 0,function(){if(!e||e._refCount<=0||0<--e._refCount){r=null;return}var a=e._connection,o=r;r=null,a&&(!o||a===o)&&a.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}owt.refCount=yQc});var Z8e=H(bke=>{"use strict";var bQc=bke&&bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(bke,"__esModule",{value:!0});bke.ConnectableObservable=void 0;var EQc=ub(),Szi=TO(),SQc=awt(),vQc=Cd(),BQc=qg(),wQc=function(e){bQc(t,e);function t(r,n){var a=e.call(this)||this;return a.source=r,a.subjectFactory=n,a._subject=null,a._refCount=0,a._connection=null,BQc.hasLift(r)&&(a.lift=r.lift),a}return t.prototype._subscribe=function(r){return this.getSubject().subscribe(r)},t.prototype.getSubject=function(){var r=this._subject;return(!r||r.isStopped)&&(this._subject=this.subjectFactory()),this._subject},t.prototype._teardown=function(){this._refCount=0;var r=this._connection;this._subject=this._connection=null,r?.unsubscribe()},t.prototype.connect=function(){var r=this,n=this._connection;if(!n){n=this._connection=new Szi.Subscription;var a=this.getSubject();n.add(this.source.subscribe(vQc.createOperatorSubscriber(a,void 0,function(){r._teardown(),a.complete()},function(o){r._teardown(),a.error(o)},function(){return r._teardown()}))),n.closed&&(this._connection=null,n=Szi.Subscription.EMPTY)}return n},t.prototype.refCount=function(){return SQc.refCount()(this)},t}(EQc.Observable);bke.ConnectableObservable=wQc});var vzi=H(L8e=>{"use strict";Object.defineProperty(L8e,"__esModule",{value:!0});L8e.performanceTimestampProvider=void 0;L8e.performanceTimestampProvider={now:function(){return(L8e.performanceTimestampProvider.delegate||performance).now()},delegate:void 0}});var lOr=H(k4=>{"use strict";var Bzi=k4&&k4.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},wzi=k4&&k4.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(cwt,"__esModule",{value:!0});cwt.animationFrames=void 0;var RQc=ub(),NQc=vzi(),Tzi=lOr();function DQc(e){return e?Rzi(e):kQc}cwt.animationFrames=DQc;function Rzi(e){return new RQc.Observable(function(t){var r=e||NQc.performanceTimestampProvider,n=r.now(),a=0,o=function(){t.closed||(a=Tzi.animationFrameProvider.requestAnimationFrame(function(l){a=0;var A=r.now();t.next({timestamp:e?A:l,elapsed:A-n}),o()}))};return o(),function(){a&&Tzi.animationFrameProvider.cancelAnimationFrame(a)}})}var kQc=Rzi()});var uOr=H(lwt=>{"use strict";Object.defineProperty(lwt,"__esModule",{value:!0});lwt.ObjectUnsubscribedError=void 0;var xQc=ple();lwt.ObjectUnsubscribedError=xQc.createErrorClass(function(e){return function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"}})});var ix=H(Xj=>{"use strict";var kzi=Xj&&Xj.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),GQc=Xj&&Xj.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Xj,"__esModule",{value:!0});Xj.AnonymousSubject=Xj.Subject=void 0;var Dzi=ub(),AOr=TO(),FQc=uOr(),ZQc=ste(),gOr=twt(),xzi=function(e){kzi(t,e);function t(){var r=e.call(this)||this;return r.closed=!1,r.currentObservers=null,r.observers=[],r.isStopped=!1,r.hasError=!1,r.thrownError=null,r}return t.prototype.lift=function(r){var n=new dOr(this,this);return n.operator=r,n},t.prototype._throwIfClosed=function(){if(this.closed)throw new FQc.ObjectUnsubscribedError},t.prototype.next=function(r){var n=this;gOr.errorContext(function(){var a,o;if(n._throwIfClosed(),!n.isStopped){n.currentObservers||(n.currentObservers=Array.from(n.observers));try{for(var l=GQc(n.currentObservers),A=l.next();!A.done;A=l.next()){var f=A.value;f.next(r)}}catch(I){a={error:I}}finally{try{A&&!A.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}}})},t.prototype.error=function(r){var n=this;gOr.errorContext(function(){if(n._throwIfClosed(),!n.isStopped){n.hasError=n.isStopped=!0,n.thrownError=r;for(var a=n.observers;a.length;)a.shift().error(r)}})},t.prototype.complete=function(){var r=this;gOr.errorContext(function(){if(r._throwIfClosed(),!r.isStopped){r.isStopped=!0;for(var n=r.observers;n.length;)n.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){var r;return((r=this.observers)===null||r===void 0?void 0:r.length)>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,a=this,o=a.hasError,l=a.isStopped,A=a.observers;return o||l?AOr.EMPTY_SUBSCRIPTION:(this.currentObservers=null,A.push(r),new AOr.Subscription(function(){n.currentObservers=null,ZQc.arrRemove(A,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n.thrownError,l=n.isStopped;a?r.error(o):l&&r.complete()},t.prototype.asObservable=function(){var r=new Dzi.Observable;return r.source=this,r},t.create=function(r,n){return new dOr(r,n)},t}(Dzi.Observable);Xj.Subject=xzi;var dOr=function(e){kzi(t,e);function t(r,n){var a=e.call(this)||this;return a.destination=r,a.source=n,a}return t.prototype.next=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.next)===null||a===void 0||a.call(n,r)},t.prototype.error=function(r){var n,a;(a=(n=this.destination)===null||n===void 0?void 0:n.error)===null||a===void 0||a.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,a;return(a=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&a!==void 0?a:AOr.EMPTY_SUBSCRIPTION},t}(xzi);Xj.AnonymousSubject=dOr});var pOr=H(Eke=>{"use strict";var LQc=Eke&&Eke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Eke,"__esModule",{value:!0});Eke.BehaviorSubject=void 0;var VQc=ix(),PQc=function(e){LQc(t,e);function t(r){var n=e.call(this)||this;return n._value=r,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var n=e.prototype._subscribe.call(this,r);return!n.closed&&r.next(this._value),n},t.prototype.getValue=function(){var r=this,n=r.hasError,a=r.thrownError,o=r._value;if(n)throw a;return this._throwIfClosed(),o},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(VQc.Subject);Eke.BehaviorSubject=PQc});var uwt=H(V8e=>{"use strict";Object.defineProperty(V8e,"__esModule",{value:!0});V8e.dateTimestampProvider=void 0;V8e.dateTimestampProvider={now:function(){return(V8e.dateTimestampProvider.delegate||Date).now()},delegate:void 0}});var gwt=H(Ske=>{"use strict";var WQc=Ske&&Ske.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ske,"__esModule",{value:!0});Ske.ReplaySubject=void 0;var OQc=ix(),MQc=uwt(),HQc=function(e){WQc(t,e);function t(r,n,a){r===void 0&&(r=1/0),n===void 0&&(n=1/0),a===void 0&&(a=MQc.dateTimestampProvider);var o=e.call(this)||this;return o._bufferSize=r,o._windowTime=n,o._timestampProvider=a,o._buffer=[],o._infiniteTimeWindow=!0,o._infiniteTimeWindow=n===1/0,o._bufferSize=Math.max(1,r),o._windowTime=Math.max(1,n),o}return t.prototype.next=function(r){var n=this,a=n.isStopped,o=n._buffer,l=n._infiniteTimeWindow,A=n._timestampProvider,f=n._windowTime;a||(o.push(r),!l&&o.push(A.now()+f)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),a=this,o=a._infiniteTimeWindow,l=a._buffer,A=l.slice(),f=0;f{"use strict";var YQc=vke&&vke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(vke,"__esModule",{value:!0});vke.AsyncSubject=void 0;var QQc=ix(),XQc=function(e){YQc(t,e);function t(){var r=e!==null&&e.apply(this,arguments)||this;return r._value=null,r._hasValue=!1,r._isComplete=!1,r}return t.prototype._checkFinalizedStatuses=function(r){var n=this,a=n.hasError,o=n._hasValue,l=n._value,A=n.thrownError,f=n.isStopped,I=n._isComplete;a?r.error(A):(f||I)&&(o&&r.next(l),r.complete())},t.prototype.next=function(r){this.isStopped||(this._value=r,this._hasValue=!0)},t.prototype.complete=function(){var r=this,n=r._hasValue,a=r._value,o=r._isComplete;o||(this._isComplete=!0,n&&e.prototype.next.call(this,a),e.prototype.complete.call(this))},t}(QQc.Subject);vke.AsyncSubject=XQc});var Gzi=H(Bke=>{"use strict";var JQc=Bke&&Bke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Bke,"__esModule",{value:!0});Bke.Action=void 0;var UQc=TO(),KQc=function(e){JQc(t,e);function t(r,n){return e.call(this)||this}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),this},t}(UQc.Subscription);Bke.Action=KQc});var Lzi=H(Jj=>{"use strict";var Fzi=Jj&&Jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Zzi=Jj&&Jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var jQc=wke&&wke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(wke,"__esModule",{value:!0});wke.AsyncAction=void 0;var zQc=Gzi(),Vzi=Lzi(),qQc=ste(),$Qc=function(e){jQc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a.pending=!1,a}return t.prototype.schedule=function(r,n){var a;if(n===void 0&&(n=0),this.closed)return this;this.state=r;var o=this.id,l=this.scheduler;return o!=null&&(this.id=this.recycleAsyncId(l,o,n)),this.pending=!0,this.delay=n,this.id=(a=this.id)!==null&&a!==void 0?a:this.requestAsyncId(l,this.id,n),this},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),Vzi.intervalProvider.setInterval(r.flush.bind(r,this),a)},t.prototype.recycleAsyncId=function(r,n,a){if(a===void 0&&(a=0),a!=null&&this.delay===a&&this.pending===!1)return n;n!=null&&Vzi.intervalProvider.clearInterval(n)},t.prototype.execute=function(r,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var a=this._execute(r,n);if(a)return a;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},t.prototype._execute=function(r,n){var a=!1,o;try{this.work(r)}catch(l){a=!0,o=l||new Error("Scheduled action threw falsy error")}if(a)return this.unsubscribe(),o},t.prototype.unsubscribe=function(){if(!this.closed){var r=this,n=r.id,a=r.scheduler,o=a.actions;this.work=this.state=this.scheduler=null,this.pending=!1,qQc.arrRemove(o,this),n!=null&&(this.id=this.recycleAsyncId(a,n,null)),this.delay=null,e.prototype.unsubscribe.call(this)}},t}(zQc.Action);wke.AsyncAction=$Qc});var Wzi=H(Rke=>{"use strict";Object.defineProperty(Rke,"__esModule",{value:!0});Rke.TestTools=Rke.Immediate=void 0;var eXc=1,fOr,dwt={};function Pzi(e){return e in dwt?(delete dwt[e],!0):!1}Rke.Immediate={setImmediate:function(e){var t=eXc++;return dwt[t]=!0,fOr||(fOr=Promise.resolve()),fOr.then(function(){return Pzi(t)&&e()}),t},clearImmediate:function(e){Pzi(e)}};Rke.TestTools={pending:function(){return Object.keys(dwt).length}}});var Mzi=H(Uj=>{"use strict";var tXc=Uj&&Uj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},rXc=Uj&&Uj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var sXc=Nke&&Nke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Nke,"__esModule",{value:!0});Nke.AsapAction=void 0;var oXc=Tke(),Hzi=Mzi(),aXc=function(e){sXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=Hzi.immediateProvider.setImmediate(r.flush.bind(r,void 0))))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(Hzi.immediateProvider.clearImmediate(n),r._scheduled===n&&(r._scheduled=void 0))},t}(oXc.AsyncAction);Nke.AsapAction=aXc});var IOr=H(pwt=>{"use strict";Object.defineProperty(pwt,"__esModule",{value:!0});pwt.Scheduler=void 0;var cXc=uwt(),lXc=function(){function e(t,r){r===void 0&&(r=e.now),this.schedulerActionCtor=t,this.now=r}return e.prototype.schedule=function(t,r,n){return r===void 0&&(r=0),new this.schedulerActionCtor(this,t).schedule(n,r)},e.now=cXc.dateTimestampProvider.now,e}();pwt.Scheduler=lXc});var kke=H(Dke=>{"use strict";var uXc=Dke&&Dke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Dke,"__esModule",{value:!0});Dke.AsyncScheduler=void 0;var Qzi=IOr(),gXc=function(e){uXc(t,e);function t(r,n){n===void 0&&(n=Qzi.Scheduler.now);var a=e.call(this,r,n)||this;return a.actions=[],a._active=!1,a}return t.prototype.flush=function(r){var n=this.actions;if(this._active){n.push(r);return}var a;this._active=!0;do if(a=r.execute(r.state,r.delay))break;while(r=n.shift());if(this._active=!1,a){for(;r=n.shift();)r.unsubscribe();throw a}},t}(Qzi.Scheduler);Dke.AsyncScheduler=gXc});var Xzi=H(xke=>{"use strict";var AXc=xke&&xke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(xke,"__esModule",{value:!0});xke.AsapScheduler=void 0;var dXc=kke(),pXc=function(e){AXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(dXc.AsyncScheduler);xke.AsapScheduler=pXc});var Jzi=H(g_e=>{"use strict";Object.defineProperty(g_e,"__esModule",{value:!0});g_e.asap=g_e.asapScheduler=void 0;var fXc=Yzi(),IXc=Xzi();g_e.asapScheduler=new IXc.AsapScheduler(fXc.AsapAction);g_e.asap=g_e.asapScheduler});var FV=H(A_e=>{"use strict";Object.defineProperty(A_e,"__esModule",{value:!0});A_e.async=A_e.asyncScheduler=void 0;var hXc=Tke(),mXc=kke();A_e.asyncScheduler=new mXc.AsyncScheduler(hXc.AsyncAction);A_e.async=A_e.asyncScheduler});var Uzi=H(Gke=>{"use strict";var CXc=Gke&&Gke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Gke,"__esModule",{value:!0});Gke.QueueAction=void 0;var _Xc=Tke(),yXc=function(e){CXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.schedule=function(r,n){return n===void 0&&(n=0),n>0?e.prototype.schedule.call(this,r,n):(this.delay=n,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,n){return n>0||this.closed?e.prototype.execute.call(this,r,n):this._execute(r,n)},t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!=null&&a>0||a==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.flush(this),0)},t}(_Xc.AsyncAction);Gke.QueueAction=yXc});var Kzi=H(Fke=>{"use strict";var bXc=Fke&&Fke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Fke,"__esModule",{value:!0});Fke.QueueScheduler=void 0;var EXc=kke(),SXc=function(e){bXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(EXc.AsyncScheduler);Fke.QueueScheduler=SXc});var jzi=H(d_e=>{"use strict";Object.defineProperty(d_e,"__esModule",{value:!0});d_e.queue=d_e.queueScheduler=void 0;var vXc=Uzi(),BXc=Kzi();d_e.queueScheduler=new BXc.QueueScheduler(vXc.QueueAction);d_e.queue=d_e.queueScheduler});var qzi=H(Zke=>{"use strict";var wXc=Zke&&Zke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Zke,"__esModule",{value:!0});Zke.AnimationFrameAction=void 0;var TXc=Tke(),zzi=lOr(),RXc=function(e){wXc(t,e);function t(r,n){var a=e.call(this,r,n)||this;return a.scheduler=r,a.work=n,a}return t.prototype.requestAsyncId=function(r,n,a){return a===void 0&&(a=0),a!==null&&a>0?e.prototype.requestAsyncId.call(this,r,n,a):(r.actions.push(this),r._scheduled||(r._scheduled=zzi.animationFrameProvider.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,a){var o;if(a===void 0&&(a=0),a!=null?a>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,a);var l=r.actions;n!=null&&((o=l[l.length-1])===null||o===void 0?void 0:o.id)!==n&&(zzi.animationFrameProvider.cancelAnimationFrame(n),r._scheduled=void 0)},t}(TXc.AsyncAction);Zke.AnimationFrameAction=RXc});var $zi=H(Lke=>{"use strict";var NXc=Lke&&Lke.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Lke,"__esModule",{value:!0});Lke.AnimationFrameScheduler=void 0;var DXc=kke(),kXc=function(e){NXc(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var a=this.actions,o;r=r||a.shift();do if(o=r.execute(r.state,r.delay))break;while((r=a[0])&&r.id===n&&a.shift());if(this._active=!1,o){for(;(r=a[0])&&r.id===n&&a.shift();)r.unsubscribe();throw o}},t}(DXc.AsyncScheduler);Lke.AnimationFrameScheduler=kXc});var eqi=H(p_e=>{"use strict";Object.defineProperty(p_e,"__esModule",{value:!0});p_e.animationFrame=p_e.animationFrameScheduler=void 0;var xXc=qzi(),GXc=$zi();p_e.animationFrameScheduler=new GXc.AnimationFrameScheduler(xXc.AnimationFrameAction);p_e.animationFrame=p_e.animationFrameScheduler});var nqi=H(Ile=>{"use strict";var tqi=Ile&&Ile.__extends||function(){var e=function(t,r){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,a){n.__proto__=a}||function(n,a){for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[o]=a[o])},e(t,r)};return function(t,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");e(t,r);function n(){this.constructor=t}t.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}();Object.defineProperty(Ile,"__esModule",{value:!0});Ile.VirtualAction=Ile.VirtualTimeScheduler=void 0;var FXc=Tke(),ZXc=TO(),LXc=kke(),VXc=function(e){tqi(t,e);function t(r,n){r===void 0&&(r=rqi),n===void 0&&(n=1/0);var a=e.call(this,r,function(){return a.frame})||this;return a.maxFrames=n,a.frame=0,a.index=-1,a}return t.prototype.flush=function(){for(var r=this,n=r.actions,a=r.maxFrames,o,l;(l=n[0])&&l.delay<=a&&(n.shift(),this.frame=l.delay,!(o=l.execute(l.state,l.delay))););if(o){for(;l=n.shift();)l.unsubscribe();throw o}},t.frameTimeFactor=10,t}(LXc.AsyncScheduler);Ile.VirtualTimeScheduler=VXc;var rqi=function(e){tqi(t,e);function t(r,n,a){a===void 0&&(a=r.index+=1);var o=e.call(this,r,n)||this;return o.scheduler=r,o.work=n,o.index=a,o.active=!0,o.index=r.index=a,o}return t.prototype.schedule=function(r,n){if(n===void 0&&(n=0),Number.isFinite(n)){if(!this.id)return e.prototype.schedule.call(this,r,n);this.active=!1;var a=new t(this.scheduler,this.work);return this.add(a),a.schedule(r,n)}else return ZXc.Subscription.EMPTY},t.prototype.requestAsyncId=function(r,n,a){a===void 0&&(a=0),this.delay=r.frame+a;var o=r.actions;return o.push(this),o.sort(t.sortActions),1},t.prototype.recycleAsyncId=function(r,n,a){a===void 0&&(a=0)},t.prototype._execute=function(r,n){if(this.active===!0)return e.prototype._execute.call(this,r,n)},t.sortActions=function(r,n){return r.delay===n.delay?r.index===n.index?0:r.index>n.index?1:-1:r.delay>n.delay?1:-1},t}(FXc.AsyncAction);Ile.VirtualAction=rqi});var x4=H(f_e=>{"use strict";Object.defineProperty(f_e,"__esModule",{value:!0});f_e.empty=f_e.EMPTY=void 0;var iqi=ub();f_e.EMPTY=new iqi.Observable(function(e){return e.complete()});function PXc(e){return e?WXc(e):f_e.EMPTY}f_e.empty=PXc;function WXc(e){return new iqi.Observable(function(t){return e.schedule(function(){return t.complete()})})}});var P8e=H(fwt=>{"use strict";Object.defineProperty(fwt,"__esModule",{value:!0});fwt.isScheduler=void 0;var OXc=Sy();function MXc(e){return e&&OXc.isFunction(e.schedule)}fwt.isScheduler=MXc});var ZV=H(hle=>{"use strict";Object.defineProperty(hle,"__esModule",{value:!0});hle.popNumber=hle.popScheduler=hle.popResultSelector=void 0;var HXc=Sy(),YXc=P8e();function hOr(e){return e[e.length-1]}function QXc(e){return HXc.isFunction(hOr(e))?e.pop():void 0}hle.popResultSelector=QXc;function XXc(e){return YXc.isScheduler(hOr(e))?e.pop():void 0}hle.popScheduler=XXc;function JXc(e,t){return typeof hOr(e)=="number"?e.pop():t}hle.popNumber=JXc});var hwt=H(Iwt=>{"use strict";Object.defineProperty(Iwt,"__esModule",{value:!0});Iwt.isArrayLike=void 0;Iwt.isArrayLike=function(e){return e&&typeof e.length=="number"&&typeof e!="function"}});var mOr=H(mwt=>{"use strict";Object.defineProperty(mwt,"__esModule",{value:!0});mwt.isPromise=void 0;var UXc=Sy();function KXc(e){return UXc.isFunction(e?.then)}mwt.isPromise=KXc});var COr=H(Cwt=>{"use strict";Object.defineProperty(Cwt,"__esModule",{value:!0});Cwt.isInteropObservable=void 0;var jXc=G8e(),zXc=Sy();function qXc(e){return zXc.isFunction(e[jXc.observable])}Cwt.isInteropObservable=qXc});var _Or=H(_wt=>{"use strict";Object.defineProperty(_wt,"__esModule",{value:!0});_wt.isAsyncIterable=void 0;var $Xc=Sy();function e4c(e){return Symbol.asyncIterator&&$Xc.isFunction(e?.[Symbol.asyncIterator])}_wt.isAsyncIterable=e4c});var yOr=H(ywt=>{"use strict";Object.defineProperty(ywt,"__esModule",{value:!0});ywt.createInvalidObservableTypeError=void 0;function t4c(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}ywt.createInvalidObservableTypeError=t4c});var bOr=H(Vke=>{"use strict";Object.defineProperty(Vke,"__esModule",{value:!0});Vke.iterator=Vke.getSymbolIterator=void 0;function sqi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}Vke.getSymbolIterator=sqi;Vke.iterator=sqi()});var EOr=H(bwt=>{"use strict";Object.defineProperty(bwt,"__esModule",{value:!0});bwt.isIterable=void 0;var r4c=bOr(),n4c=Sy();function i4c(e){return n4c.isFunction(e?.[r4c.iterator])}bwt.isIterable=i4c});var Ewt=H(CH=>{"use strict";var s4c=CH&&CH.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]1||A(E,N)})})}function A(E,N){try{f(n[E](N))}catch(B){b(o[0][3],B)}}function f(E){E.value instanceof Pke?Promise.resolve(E.value.v).then(I,C):b(o[0][2],E)}function I(E){A("next",E)}function C(E){A("throw",E)}function b(E,N){E(N),o.shift(),o.length&&A(o[0][0],o[0][1])}};Object.defineProperty(CH,"__esModule",{value:!0});CH.isReadableStreamLike=CH.readableStreamLikeToAsyncGenerator=void 0;var a4c=Sy();function c4c(e){return o4c(this,arguments,function(){var r,n,a,o;return s4c(this,function(l){switch(l.label){case 0:r=e.getReader(),l.label=1;case 1:l.trys.push([1,,9,10]),l.label=2;case 2:return[4,Pke(r.read())];case 3:return n=l.sent(),a=n.value,o=n.done,o?[4,Pke(void 0)]:[3,5];case 4:return[2,l.sent()];case 5:return[4,Pke(a)];case 6:return[4,l.sent()];case 7:return l.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}CH.readableStreamLikeToAsyncGenerator=c4c;function l4c(e){return a4c.isFunction(e?.getReader)}CH.isReadableStreamLike=l4c});var uh=H(G2=>{"use strict";var u4c=G2&&G2.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})},g4c=G2&&G2.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(G2,"__esModule",{value:!0});G2.fromReadableStreamLike=G2.fromAsyncIterable=G2.fromIterable=G2.fromPromise=G2.fromArrayLike=G2.fromInteropObservable=G2.innerFrom=void 0;var d4c=hwt(),p4c=mOr(),Wke=ub(),f4c=COr(),I4c=_Or(),h4c=yOr(),m4c=EOr(),oqi=Ewt(),C4c=Sy(),_4c=rOr(),y4c=G8e();function b4c(e){if(e instanceof Wke.Observable)return e;if(e!=null){if(f4c.isInteropObservable(e))return aqi(e);if(d4c.isArrayLike(e))return cqi(e);if(p4c.isPromise(e))return lqi(e);if(I4c.isAsyncIterable(e))return vOr(e);if(m4c.isIterable(e))return uqi(e);if(oqi.isReadableStreamLike(e))return gqi(e)}throw h4c.createInvalidObservableTypeError(e)}G2.innerFrom=b4c;function aqi(e){return new Wke.Observable(function(t){var r=e[y4c.observable]();if(C4c.isFunction(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}G2.fromInteropObservable=aqi;function cqi(e){return new Wke.Observable(function(t){for(var r=0;r{"use strict";Object.defineProperty(Swt,"__esModule",{value:!0});Swt.executeSchedule=void 0;function S4c(e,t,r,n,a){n===void 0&&(n=0),a===void 0&&(a=!1);var o=t.schedule(function(){r(),a?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(o),!a)return o}Swt.executeSchedule=S4c});var Oke=H(vwt=>{"use strict";Object.defineProperty(vwt,"__esModule",{value:!0});vwt.observeOn=void 0;var BOr=ote(),v4c=qg(),B4c=Cd();function w4c(e,t){return t===void 0&&(t=0),v4c.operate(function(r,n){r.subscribe(B4c.createOperatorSubscriber(n,function(a){return BOr.executeSchedule(n,e,function(){return n.next(a)},t)},function(){return BOr.executeSchedule(n,e,function(){return n.complete()},t)},function(a){return BOr.executeSchedule(n,e,function(){return n.error(a)},t)}))})}vwt.observeOn=w4c});var Mke=H(Bwt=>{"use strict";Object.defineProperty(Bwt,"__esModule",{value:!0});Bwt.subscribeOn=void 0;var T4c=qg();function R4c(e,t){return t===void 0&&(t=0),T4c.operate(function(r,n){n.add(e.schedule(function(){return r.subscribe(n)},t))})}Bwt.subscribeOn=R4c});var Aqi=H(wwt=>{"use strict";Object.defineProperty(wwt,"__esModule",{value:!0});wwt.scheduleObservable=void 0;var N4c=uh(),D4c=Oke(),k4c=Mke();function x4c(e,t){return N4c.innerFrom(e).pipe(k4c.subscribeOn(t),D4c.observeOn(t))}wwt.scheduleObservable=x4c});var dqi=H(Twt=>{"use strict";Object.defineProperty(Twt,"__esModule",{value:!0});Twt.schedulePromise=void 0;var G4c=uh(),F4c=Oke(),Z4c=Mke();function L4c(e,t){return G4c.innerFrom(e).pipe(Z4c.subscribeOn(t),F4c.observeOn(t))}Twt.schedulePromise=L4c});var pqi=H(Rwt=>{"use strict";Object.defineProperty(Rwt,"__esModule",{value:!0});Rwt.scheduleArray=void 0;var V4c=ub();function P4c(e,t){return new V4c.Observable(function(r){var n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}Rwt.scheduleArray=P4c});var wOr=H(Nwt=>{"use strict";Object.defineProperty(Nwt,"__esModule",{value:!0});Nwt.scheduleIterable=void 0;var W4c=ub(),O4c=bOr(),M4c=Sy(),fqi=ote();function H4c(e,t){return new W4c.Observable(function(r){var n;return fqi.executeSchedule(r,t,function(){n=e[O4c.iterator](),fqi.executeSchedule(r,t,function(){var a,o,l;try{a=n.next(),o=a.value,l=a.done}catch(A){r.error(A);return}l?r.complete():r.next(o)},0,!0)}),function(){return M4c.isFunction(n?.return)&&n.return()}})}Nwt.scheduleIterable=H4c});var TOr=H(Dwt=>{"use strict";Object.defineProperty(Dwt,"__esModule",{value:!0});Dwt.scheduleAsyncIterable=void 0;var Y4c=ub(),Iqi=ote();function Q4c(e,t){if(!e)throw new Error("Iterable cannot be null");return new Y4c.Observable(function(r){Iqi.executeSchedule(r,t,function(){var n=e[Symbol.asyncIterator]();Iqi.executeSchedule(r,t,function(){n.next().then(function(a){a.done?r.complete():r.next(a.value)})},0,!0)})})}Dwt.scheduleAsyncIterable=Q4c});var hqi=H(kwt=>{"use strict";Object.defineProperty(kwt,"__esModule",{value:!0});kwt.scheduleReadableStreamLike=void 0;var X4c=TOr(),J4c=Ewt();function U4c(e,t){return X4c.scheduleAsyncIterable(J4c.readableStreamLikeToAsyncGenerator(e),t)}kwt.scheduleReadableStreamLike=U4c});var ROr=H(xwt=>{"use strict";Object.defineProperty(xwt,"__esModule",{value:!0});xwt.scheduled=void 0;var K4c=Aqi(),j4c=dqi(),z4c=pqi(),q4c=wOr(),$4c=TOr(),eJc=COr(),tJc=mOr(),rJc=hwt(),nJc=EOr(),iJc=_Or(),sJc=yOr(),oJc=Ewt(),aJc=hqi();function cJc(e,t){if(e!=null){if(eJc.isInteropObservable(e))return K4c.scheduleObservable(e,t);if(rJc.isArrayLike(e))return z4c.scheduleArray(e,t);if(tJc.isPromise(e))return j4c.schedulePromise(e,t);if(iJc.isAsyncIterable(e))return $4c.scheduleAsyncIterable(e,t);if(nJc.isIterable(e))return q4c.scheduleIterable(e,t);if(oJc.isReadableStreamLike(e))return aJc.scheduleReadableStreamLike(e,t)}throw sJc.createInvalidObservableTypeError(e)}xwt.scheduled=cJc});var ate=H(Gwt=>{"use strict";Object.defineProperty(Gwt,"__esModule",{value:!0});Gwt.from=void 0;var lJc=ROr(),uJc=uh();function gJc(e,t){return t?lJc.scheduled(e,t):uJc.innerFrom(e)}Gwt.from=gJc});var Zwt=H(Fwt=>{"use strict";Object.defineProperty(Fwt,"__esModule",{value:!0});Fwt.of=void 0;var AJc=ZV(),dJc=ate();function pJc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(Lwt,"__esModule",{value:!0});Lwt.throwError=void 0;var fJc=ub(),IJc=Sy();function hJc(e,t){var r=IJc.isFunction(e)?e:function(){return e},n=function(a){return a.error(r())};return new fJc.Observable(t?function(a){return t.schedule(n,0,a)}:n)}Lwt.throwError=hJc});var Vwt=H(cte=>{"use strict";Object.defineProperty(cte,"__esModule",{value:!0});cte.observeNotification=cte.Notification=cte.NotificationKind=void 0;var mJc=x4(),CJc=Zwt(),_Jc=NOr(),yJc=Sy(),bJc;(function(e){e.NEXT="N",e.ERROR="E",e.COMPLETE="C"})(bJc=cte.NotificationKind||(cte.NotificationKind={}));var EJc=function(){function e(t,r,n){this.kind=t,this.value=r,this.error=n,this.hasValue=t==="N"}return e.prototype.observe=function(t){return mqi(this,t)},e.prototype.do=function(t,r,n){var a=this,o=a.kind,l=a.value,A=a.error;return o==="N"?t?.(l):o==="E"?r?.(A):n?.()},e.prototype.accept=function(t,r,n){var a;return yJc.isFunction((a=t)===null||a===void 0?void 0:a.next)?this.observe(t):this.do(t,r,n)},e.prototype.toObservable=function(){var t=this,r=t.kind,n=t.value,a=t.error,o=r==="N"?CJc.of(n):r==="E"?_Jc.throwError(function(){return a}):r==="C"?mJc.EMPTY:0;if(!o)throw new TypeError("Unexpected notification kind "+r);return o},e.createNext=function(t){return new e("N",t)},e.createError=function(t){return new e("E",void 0,t)},e.createComplete=function(){return e.completeNotification},e.completeNotification=new e("C"),e}();cte.Notification=EJc;function mqi(e,t){var r,n,a,o=e,l=o.kind,A=o.value,f=o.error;if(typeof l!="string")throw new TypeError('Invalid notification, missing "kind"');l==="N"?(r=t.next)===null||r===void 0||r.call(t,A):l==="E"?(n=t.error)===null||n===void 0||n.call(t,f):(a=t.complete)===null||a===void 0||a.call(t)}cte.observeNotification=mqi});var _qi=H(Pwt=>{"use strict";Object.defineProperty(Pwt,"__esModule",{value:!0});Pwt.isObservable=void 0;var SJc=ub(),Cqi=Sy();function vJc(e){return!!e&&(e instanceof SJc.Observable||Cqi.isFunction(e.lift)&&Cqi.isFunction(e.subscribe))}Pwt.isObservable=vJc});var mle=H(Wwt=>{"use strict";Object.defineProperty(Wwt,"__esModule",{value:!0});Wwt.EmptyError=void 0;var BJc=ple();Wwt.EmptyError=BJc.createErrorClass(function(e){return function(){e(this),this.name="EmptyError",this.message="no elements in sequence"}})});var yqi=H(Owt=>{"use strict";Object.defineProperty(Owt,"__esModule",{value:!0});Owt.lastValueFrom=void 0;var wJc=mle();function TJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=!1,l;e.subscribe({next:function(A){l=A,o=!0},error:a,complete:function(){o?n(l):r?n(t.defaultValue):a(new wJc.EmptyError)}})})}Owt.lastValueFrom=TJc});var bqi=H(Mwt=>{"use strict";Object.defineProperty(Mwt,"__esModule",{value:!0});Mwt.firstValueFrom=void 0;var RJc=mle(),NJc=Cke();function DJc(e,t){var r=typeof t=="object";return new Promise(function(n,a){var o=new NJc.SafeSubscriber({next:function(l){n(l),o.unsubscribe()},error:a,complete:function(){r?n(t.defaultValue):a(new RJc.EmptyError)}});e.subscribe(o)})}Mwt.firstValueFrom=DJc});var DOr=H(Hwt=>{"use strict";Object.defineProperty(Hwt,"__esModule",{value:!0});Hwt.ArgumentOutOfRangeError=void 0;var kJc=ple();Hwt.ArgumentOutOfRangeError=kJc.createErrorClass(function(e){return function(){e(this),this.name="ArgumentOutOfRangeError",this.message="argument out of range"}})});var kOr=H(Ywt=>{"use strict";Object.defineProperty(Ywt,"__esModule",{value:!0});Ywt.NotFoundError=void 0;var xJc=ple();Ywt.NotFoundError=xJc.createErrorClass(function(e){return function(r){e(this),this.name="NotFoundError",this.message=r}})});var xOr=H(Qwt=>{"use strict";Object.defineProperty(Qwt,"__esModule",{value:!0});Qwt.SequenceError=void 0;var GJc=ple();Qwt.SequenceError=GJc.createErrorClass(function(e){return function(r){e(this),this.name="SequenceError",this.message=r}})});var Jwt=H(Xwt=>{"use strict";Object.defineProperty(Xwt,"__esModule",{value:!0});Xwt.isValidDate=void 0;function FJc(e){return e instanceof Date&&!isNaN(e)}Xwt.isValidDate=FJc});var W8e=H(I_e=>{"use strict";Object.defineProperty(I_e,"__esModule",{value:!0});I_e.timeout=I_e.TimeoutError=void 0;var ZJc=FV(),LJc=Jwt(),VJc=qg(),PJc=uh(),WJc=ple(),OJc=Cd(),MJc=ote();I_e.TimeoutError=WJc.createErrorClass(function(e){return function(r){r===void 0&&(r=null),e(this),this.message="Timeout has occurred",this.name="TimeoutError",this.info=r}});function HJc(e,t){var r=LJc.isValidDate(e)?{first:e}:typeof e=="number"?{each:e}:e,n=r.first,a=r.each,o=r.with,l=o===void 0?YJc:o,A=r.scheduler,f=A===void 0?t??ZJc.asyncScheduler:A,I=r.meta,C=I===void 0?null:I;if(n==null&&a==null)throw new TypeError("No timeout provided.");return VJc.operate(function(b,E){var N,B,F=null,Q=0,X=function(ae){B=MJc.executeSchedule(E,f,function(){try{N.unsubscribe(),PJc.innerFrom(l({meta:C,lastValue:F,seen:Q})).subscribe(E)}catch(ne){E.error(ne)}},ae)};N=b.subscribe(OJc.createOperatorSubscriber(E,function(ae){B?.unsubscribe(),Q++,E.next(F=ae),a>0&&X(a)},void 0,void 0,function(){B?.closed||B?.unsubscribe(),F=null})),!Q&&X(n!=null?typeof n=="number"?n:+n-f.now():a)})}I_e.timeout=HJc;function YJc(e){throw new I_e.TimeoutError(e)}});var lte=H(Uwt=>{"use strict";Object.defineProperty(Uwt,"__esModule",{value:!0});Uwt.map=void 0;var QJc=qg(),XJc=Cd();function JJc(e,t){return QJc.operate(function(r,n){var a=0;r.subscribe(XJc.createOperatorSubscriber(n,function(o){n.next(e.call(t,o,a++))}))})}Uwt.map=JJc});var _le=H(Cle=>{"use strict";var UJc=Cle&&Cle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},KJc=Cle&&Cle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var eUc=yle&&yle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Eqi=yle&&yle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(Kwt,"__esModule",{value:!0});Kwt.bindCallback=void 0;var aUc=FOr();function cUc(e,t,r){return aUc.bindCallbackInternals(!1,e,t,r)}Kwt.bindCallback=cUc});var vqi=H(jwt=>{"use strict";Object.defineProperty(jwt,"__esModule",{value:!0});jwt.bindNodeCallback=void 0;var lUc=FOr();function uUc(e,t,r){return lUc.bindCallbackInternals(!0,e,t,r)}jwt.bindNodeCallback=uUc});var ZOr=H(zwt=>{"use strict";Object.defineProperty(zwt,"__esModule",{value:!0});zwt.argsArgArrayOrObject=void 0;var gUc=Array.isArray,AUc=Object.getPrototypeOf,dUc=Object.prototype,pUc=Object.keys;function fUc(e){if(e.length===1){var t=e[0];if(gUc(t))return{args:t,keys:null};if(IUc(t)){var r=pUc(t);return{args:r.map(function(n){return t[n]}),keys:r}}}return{args:e,keys:null}}zwt.argsArgArrayOrObject=fUc;function IUc(e){return e&&typeof e=="object"&&AUc(e)===dUc}});var LOr=H(qwt=>{"use strict";Object.defineProperty(qwt,"__esModule",{value:!0});qwt.createObject=void 0;function hUc(e,t){return e.reduce(function(r,n,a){return r[n]=t[a],r},{})}qwt.createObject=hUc});var $wt=H(Hke=>{"use strict";Object.defineProperty(Hke,"__esModule",{value:!0});Hke.combineLatestInit=Hke.combineLatest=void 0;var mUc=ub(),CUc=ZOr(),Tqi=ate(),Rqi=nx(),_Uc=_le(),Bqi=ZV(),yUc=LOr(),bUc=Cd(),EUc=ote();function SUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(eTt,"__esModule",{value:!0});eTt.mergeInternals=void 0;var vUc=uh(),BUc=ote(),Dqi=Cd();function wUc(e,t,r,n,a,o,l,A){var f=[],I=0,C=0,b=!1,E=function(){b&&!f.length&&!I&&t.complete()},N=function(F){return I{"use strict";Object.defineProperty(rTt,"__esModule",{value:!0});rTt.mergeMap=void 0;var TUc=lte(),RUc=uh(),NUc=qg(),DUc=tTt(),kUc=Sy();function kqi(e,t,r){return r===void 0&&(r=1/0),kUc.isFunction(t)?kqi(function(n,a){return TUc.map(function(o,l){return t(n,o,a,l)})(RUc.innerFrom(e(n,a)))},r):(typeof t=="number"&&(r=t),NUc.operate(function(n,a){return DUc.mergeInternals(n,a,e,r)}))}rTt.mergeMap=kqi});var Yke=H(nTt=>{"use strict";Object.defineProperty(nTt,"__esModule",{value:!0});nTt.mergeAll=void 0;var xUc=Kj(),GUc=nx();function FUc(e){return e===void 0&&(e=1/0),xUc.mergeMap(GUc.identity,e)}nTt.mergeAll=FUc});var O8e=H(iTt=>{"use strict";Object.defineProperty(iTt,"__esModule",{value:!0});iTt.concatAll=void 0;var ZUc=Yke();function LUc(){return ZUc.mergeAll(1)}iTt.concatAll=LUc});var M8e=H(sTt=>{"use strict";Object.defineProperty(sTt,"__esModule",{value:!0});sTt.concat=void 0;var VUc=O8e(),PUc=ZV(),WUc=ate();function OUc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(oTt,"__esModule",{value:!0});oTt.defer=void 0;var MUc=ub(),HUc=uh();function YUc(e){return new MUc.Observable(function(t){HUc.innerFrom(e()).subscribe(t)})}oTt.defer=YUc});var xqi=H(aTt=>{"use strict";Object.defineProperty(aTt,"__esModule",{value:!0});aTt.connectable=void 0;var QUc=ix(),XUc=ub(),JUc=H8e(),UUc={connector:function(){return new QUc.Subject},resetOnDisconnect:!0};function KUc(e,t){t===void 0&&(t=UUc);var r=null,n=t.connector,a=t.resetOnDisconnect,o=a===void 0?!0:a,l=n(),A=new XUc.Observable(function(f){return l.subscribe(f)});return A.connect=function(){return(!r||r.closed)&&(r=JUc.defer(function(){return e}).subscribe(l),o&&r.add(function(){return l=n()})),r},A}aTt.connectable=KUc});var Gqi=H(cTt=>{"use strict";Object.defineProperty(cTt,"__esModule",{value:!0});cTt.forkJoin=void 0;var jUc=ub(),zUc=ZOr(),qUc=uh(),$Uc=ZV(),eKc=Cd(),tKc=_le(),rKc=LOr();function nKc(){for(var e=[],t=0;t{"use strict";var iKc=Qke&&Qke.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o};Object.defineProperty(Qke,"__esModule",{value:!0});Qke.fromEvent=void 0;var sKc=uh(),oKc=ub(),aKc=Kj(),cKc=hwt(),h_e=Sy(),lKc=_le(),uKc=["addListener","removeListener"],gKc=["addEventListener","removeEventListener"],AKc=["on","off"];function VOr(e,t,r,n){if(h_e.isFunction(r)&&(n=r,r=void 0),n)return VOr(e,t,r).pipe(lKc.mapOneOrManyArgs(n));var a=iKc(fKc(e)?gKc.map(function(A){return function(f){return e[A](t,f,r)}}):dKc(e)?uKc.map(Fqi(e,t)):pKc(e)?AKc.map(Fqi(e,t)):[],2),o=a[0],l=a[1];if(!o&&cKc.isArrayLike(e))return aKc.mergeMap(function(A){return VOr(A,t,r)})(sKc.innerFrom(e));if(!o)throw new TypeError("Invalid event target");return new oKc.Observable(function(A){var f=function(){for(var I=[],C=0;C{"use strict";Object.defineProperty(lTt,"__esModule",{value:!0});lTt.fromEventPattern=void 0;var IKc=ub(),hKc=Sy(),mKc=_le();function Lqi(e,t,r){return r?Lqi(e,t).pipe(mKc.mapOneOrManyArgs(r)):new IKc.Observable(function(n){var a=function(){for(var l=[],A=0;A{"use strict";var CKc=Xke&&Xke.__generator||function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,a,o,l;return l={next:A(0),throw:A(1),return:A(2)},typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function A(I){return function(C){return f([I,C])}}function f(I){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,a&&(o=I[0]&2?a.return:I[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,I[1])).done)return o;switch(a=0,o&&(I=[I[0]&2,o.value]),I[0]){case 0:case 1:o=I;break;case 4:return r.label++,{value:I[1],done:!1};case 5:r.label++,a=I[1],I=[0];continue;case 7:I=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(I[0]===6||I[0]===2)){r=0;continue}if(I[0]===3&&(!o||I[1]>o[0]&&I[1]{"use strict";Object.defineProperty(uTt,"__esModule",{value:!0});uTt.iif=void 0;var SKc=H8e();function vKc(e,t,r){return SKc.defer(function(){return e()?t:r})}uTt.iif=vKc});var ble=H(gTt=>{"use strict";Object.defineProperty(gTt,"__esModule",{value:!0});gTt.timer=void 0;var BKc=ub(),wKc=FV(),TKc=P8e(),RKc=Jwt();function NKc(e,t,r){e===void 0&&(e=0),r===void 0&&(r=wKc.async);var n=-1;return t!=null&&(TKc.isScheduler(t)?r=t:n=t),new BKc.Observable(function(a){var o=RKc.isValidDate(e)?+e-r.now():e;o<0&&(o=0);var l=0;return r.schedule(function(){a.closed||(a.next(l++),0<=n?this.schedule(void 0,n):a.complete())},o)})}gTt.timer=NKc});var POr=H(ATt=>{"use strict";Object.defineProperty(ATt,"__esModule",{value:!0});ATt.interval=void 0;var DKc=FV(),kKc=ble();function xKc(e,t){return e===void 0&&(e=0),t===void 0&&(t=DKc.asyncScheduler),e<0&&(e=0),kKc.timer(e,e,t)}ATt.interval=xKc});var Hqi=H(dTt=>{"use strict";Object.defineProperty(dTt,"__esModule",{value:!0});dTt.merge=void 0;var GKc=Yke(),FKc=uh(),ZKc=x4(),Mqi=ZV(),LKc=ate();function VKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(m_e,"__esModule",{value:!0});m_e.never=m_e.NEVER=void 0;var PKc=ub(),WKc=rx();m_e.NEVER=new PKc.Observable(WKc.noop);function OKc(){return m_e.NEVER}m_e.never=OKc});var Ele=H(pTt=>{"use strict";Object.defineProperty(pTt,"__esModule",{value:!0});pTt.argsOrArgArray=void 0;var MKc=Array.isArray;function HKc(e){return e.length===1&&MKc(e[0])?e[0]:e}pTt.argsOrArgArray=HKc});var OOr=H(fTt=>{"use strict";Object.defineProperty(fTt,"__esModule",{value:!0});fTt.onErrorResumeNext=void 0;var YKc=ub(),QKc=Ele(),XKc=Cd(),Yqi=rx(),JKc=uh();function UKc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(ITt,"__esModule",{value:!0});ITt.pairs=void 0;var KKc=ate();function jKc(e,t){return KKc.from(Object.entries(e),t)}ITt.pairs=jKc});var MOr=H(hTt=>{"use strict";Object.defineProperty(hTt,"__esModule",{value:!0});hTt.not=void 0;function zKc(e,t){return function(r,n){return!e.call(t,r,n)}}hTt.not=zKc});var ute=H(mTt=>{"use strict";Object.defineProperty(mTt,"__esModule",{value:!0});mTt.filter=void 0;var qKc=qg(),$Kc=Cd();function e8c(e,t){return qKc.operate(function(r,n){var a=0;r.subscribe($Kc.createOperatorSubscriber(n,function(o){return e.call(t,o,a++)&&n.next(o)}))})}mTt.filter=e8c});var Uqi=H(CTt=>{"use strict";Object.defineProperty(CTt,"__esModule",{value:!0});CTt.partition=void 0;var t8c=MOr(),Xqi=ute(),Jqi=uh();function r8c(e,t,r){return[Xqi.filter(t,r)(Jqi.innerFrom(e)),Xqi.filter(t8c.not(t,r))(Jqi.innerFrom(e))]}CTt.partition=r8c});var HOr=H(Jke=>{"use strict";Object.defineProperty(Jke,"__esModule",{value:!0});Jke.raceInit=Jke.race=void 0;var n8c=ub(),Kqi=uh(),i8c=Ele(),s8c=Cd();function o8c(){for(var e=[],t=0;t{"use strict";Object.defineProperty(_Tt,"__esModule",{value:!0});_Tt.range=void 0;var a8c=ub(),c8c=x4();function l8c(e,t,r){if(t==null&&(t=e,e=0),t<=0)return c8c.EMPTY;var n=t+e;return new a8c.Observable(r?function(a){var o=e;return r.schedule(function(){o{"use strict";Object.defineProperty(yTt,"__esModule",{value:!0});yTt.using=void 0;var u8c=ub(),g8c=uh(),A8c=x4();function d8c(e,t){return new u8c.Observable(function(r){var n=e(),a=t(n),o=a?g8c.innerFrom(a):A8c.EMPTY;return o.subscribe(r),function(){n&&n.unsubscribe()}})}yTt.using=d8c});var bTt=H(Sle=>{"use strict";var p8c=Sle&&Sle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},f8c=Sle&&Sle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty($qi,"__esModule",{value:!0})});var STt=H(ETt=>{"use strict";Object.defineProperty(ETt,"__esModule",{value:!0});ETt.audit=void 0;var E8c=qg(),S8c=uh(),t$i=Cd();function v8c(e){return E8c.operate(function(t,r){var n=!1,a=null,o=null,l=!1,A=function(){if(o?.unsubscribe(),o=null,n){n=!1;var I=a;a=null,r.next(I)}l&&r.complete()},f=function(){o=null,l&&r.complete()};t.subscribe(t$i.createOperatorSubscriber(r,function(I){n=!0,a=I,o||S8c.innerFrom(e(I)).subscribe(o=t$i.createOperatorSubscriber(r,A,f))},function(){l=!0,(!n||!o||o.closed)&&r.complete()}))})}ETt.audit=v8c});var YOr=H(vTt=>{"use strict";Object.defineProperty(vTt,"__esModule",{value:!0});vTt.auditTime=void 0;var B8c=FV(),w8c=STt(),T8c=ble();function R8c(e,t){return t===void 0&&(t=B8c.asyncScheduler),w8c.audit(function(){return T8c.timer(e,t)})}vTt.auditTime=R8c});var QOr=H(BTt=>{"use strict";Object.defineProperty(BTt,"__esModule",{value:!0});BTt.buffer=void 0;var N8c=qg(),D8c=rx(),r$i=Cd(),k8c=uh();function x8c(e){return N8c.operate(function(t,r){var n=[];return t.subscribe(r$i.createOperatorSubscriber(r,function(a){return n.push(a)},function(){r.next(n),r.complete()})),k8c.innerFrom(e).subscribe(r$i.createOperatorSubscriber(r,function(){var a=n;n=[],r.next(a)},D8c.noop)),function(){n=null}})}BTt.buffer=x8c});var JOr=H(Uke=>{"use strict";var XOr=Uke&&Uke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Uke,"__esModule",{value:!0});Uke.bufferCount=void 0;var G8c=qg(),F8c=Cd(),Z8c=ste();function L8c(e,t){return t===void 0&&(t=null),t=t??e,G8c.operate(function(r,n){var a=[],o=0;r.subscribe(F8c.createOperatorSubscriber(n,function(l){var A,f,I,C,b=null;o++%t===0&&a.push([]);try{for(var E=XOr(a),N=E.next();!N.done;N=E.next()){var B=N.value;B.push(l),e<=B.length&&(b=b??[],b.push(B))}}catch(X){A={error:X}}finally{try{N&&!N.done&&(f=E.return)&&f.call(E)}finally{if(A)throw A.error}}if(b)try{for(var F=XOr(b),Q=F.next();!Q.done;Q=F.next()){var B=Q.value;Z8c.arrRemove(a,B),n.next(B)}}catch(X){I={error:X}}finally{try{Q&&!Q.done&&(C=F.return)&&C.call(F)}finally{if(I)throw I.error}}},function(){var l,A;try{for(var f=XOr(a),I=f.next();!I.done;I=f.next()){var C=I.value;n.next(C)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}n.complete()},void 0,function(){a=null}))})}Uke.bufferCount=L8c});var UOr=H(Kke=>{"use strict";var V8c=Kke&&Kke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Kke,"__esModule",{value:!0});Kke.bufferTime=void 0;var P8c=TO(),W8c=qg(),O8c=Cd(),M8c=ste(),H8c=FV(),Y8c=ZV(),n$i=ote();function Q8c(e){for(var t,r,n=[],a=1;a=0?n$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=O8c.createOperatorSubscriber(I,function(F){var Q,X,ae=C.slice();try{for(var ne=V8c(ae),ce=ne.next();!ce.done;ce=ne.next()){var fe=ce.value,ue=fe.buffer;ue.push(F),A<=ue.length&&E(fe)}}catch(de){Q={error:de}}finally{try{ce&&!ce.done&&(X=ne.return)&&X.call(ne)}finally{if(Q)throw Q.error}}},function(){for(;C?.length;)I.next(C.shift().buffer);B?.unsubscribe(),I.complete(),I.unsubscribe()},void 0,function(){return C=null});f.subscribe(B)})}Kke.bufferTime=Q8c});var jOr=H(jke=>{"use strict";var X8c=jke&&jke.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(jke,"__esModule",{value:!0});jke.bufferToggle=void 0;var J8c=TO(),U8c=qg(),i$i=uh(),KOr=Cd(),s$i=rx(),K8c=ste();function j8c(e,t){return U8c.operate(function(r,n){var a=[];i$i.innerFrom(e).subscribe(KOr.createOperatorSubscriber(n,function(o){var l=[];a.push(l);var A=new J8c.Subscription,f=function(){K8c.arrRemove(a,l),n.next(l),A.unsubscribe()};A.add(i$i.innerFrom(t(o)).subscribe(KOr.createOperatorSubscriber(n,f,s$i.noop)))},s$i.noop)),r.subscribe(KOr.createOperatorSubscriber(n,function(o){var l,A;try{for(var f=X8c(a),I=f.next();!I.done;I=f.next()){var C=I.value;C.push(o)}}catch(b){l={error:b}}finally{try{I&&!I.done&&(A=f.return)&&A.call(f)}finally{if(l)throw l.error}}},function(){for(;a.length>0;)n.next(a.shift());n.complete()}))})}jke.bufferToggle=j8c});var zOr=H(wTt=>{"use strict";Object.defineProperty(wTt,"__esModule",{value:!0});wTt.bufferWhen=void 0;var z8c=qg(),q8c=rx(),o$i=Cd(),$8c=uh();function ejc(e){return z8c.operate(function(t,r){var n=null,a=null,o=function(){a?.unsubscribe();var l=n;n=[],l&&r.next(l),$8c.innerFrom(e()).subscribe(a=o$i.createOperatorSubscriber(r,o,q8c.noop))};o(),t.subscribe(o$i.createOperatorSubscriber(r,function(l){return n?.push(l)},function(){n&&r.next(n),r.complete()},void 0,function(){return n=a=null}))})}wTt.bufferWhen=ejc});var qOr=H(TTt=>{"use strict";Object.defineProperty(TTt,"__esModule",{value:!0});TTt.catchError=void 0;var tjc=uh(),rjc=Cd(),njc=qg();function a$i(e){return njc.operate(function(t,r){var n=null,a=!1,o;n=t.subscribe(rjc.createOperatorSubscriber(r,void 0,void 0,function(l){o=tjc.innerFrom(e(l,a$i(e)(t))),n?(n.unsubscribe(),n=null,o.subscribe(r)):a=!0})),a&&(n.unsubscribe(),n=null,o.subscribe(r))})}TTt.catchError=a$i});var $Or=H(RTt=>{"use strict";Object.defineProperty(RTt,"__esModule",{value:!0});RTt.scanInternals=void 0;var ijc=Cd();function sjc(e,t,r,n,a){return function(o,l){var A=r,f=t,I=0;o.subscribe(ijc.createOperatorSubscriber(l,function(C){var b=I++;f=A?e(f,C,b):(A=!0,C),n&&l.next(f)},a&&function(){A&&l.next(f),l.complete()}))}}RTt.scanInternals=sjc});var C_e=H(NTt=>{"use strict";Object.defineProperty(NTt,"__esModule",{value:!0});NTt.reduce=void 0;var ojc=$Or(),ajc=qg();function cjc(e,t){return ajc.operate(ojc.scanInternals(e,t,arguments.length>=2,!1,!0))}NTt.reduce=cjc});var kTt=H(DTt=>{"use strict";Object.defineProperty(DTt,"__esModule",{value:!0});DTt.toArray=void 0;var ljc=C_e(),ujc=qg(),gjc=function(e,t){return e.push(t),e};function Ajc(){return ujc.operate(function(e,t){ljc.reduce(gjc,[])(e).subscribe(t)})}DTt.toArray=Ajc});var e3r=H(xTt=>{"use strict";Object.defineProperty(xTt,"__esModule",{value:!0});xTt.joinAllInternals=void 0;var djc=nx(),pjc=_le(),fjc=F8e(),Ijc=Kj(),hjc=kTt();function mjc(e,t){return fjc.pipe(hjc.toArray(),Ijc.mergeMap(function(r){return e(r)}),t?pjc.mapOneOrManyArgs(t):djc.identity)}xTt.joinAllInternals=mjc});var FTt=H(GTt=>{"use strict";Object.defineProperty(GTt,"__esModule",{value:!0});GTt.combineLatestAll=void 0;var Cjc=$wt(),_jc=e3r();function yjc(e){return _jc.joinAllInternals(Cjc.combineLatest,e)}GTt.combineLatestAll=yjc});var t3r=H(ZTt=>{"use strict";Object.defineProperty(ZTt,"__esModule",{value:!0});ZTt.combineAll=void 0;var bjc=FTt();ZTt.combineAll=bjc.combineLatestAll});var r3r=H(vle=>{"use strict";var c$i=vle&&vle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},l$i=vle&&vle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Rjc=Ble&&Ble.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Njc=Ble&&Ble.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(LTt,"__esModule",{value:!0});LTt.concatMap=void 0;var g$i=Kj(),xjc=Sy();function Gjc(e,t){return xjc.isFunction(t)?g$i.mergeMap(e,t,1):g$i.mergeMap(e,1)}LTt.concatMap=Gjc});var i3r=H(PTt=>{"use strict";Object.defineProperty(PTt,"__esModule",{value:!0});PTt.concatMapTo=void 0;var A$i=VTt(),Fjc=Sy();function Zjc(e,t){return Fjc.isFunction(t)?A$i.concatMap(function(){return e},t):A$i.concatMap(function(){return e})}PTt.concatMapTo=Zjc});var s3r=H(wle=>{"use strict";var Ljc=wle&&wle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Vjc=wle&&wle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Yjc=Tle&&Tle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Qjc=Tle&&Tle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(WTt,"__esModule",{value:!0});WTt.fromSubscribable=void 0;var Ujc=ub();function Kjc(e){return new Ujc.Observable(function(t){return e.subscribe(t)})}WTt.fromSubscribable=Kjc});var Y8e=H(OTt=>{"use strict";Object.defineProperty(OTt,"__esModule",{value:!0});OTt.connect=void 0;var jjc=ix(),zjc=uh(),qjc=qg(),$jc=d$i(),e6c={connector:function(){return new jjc.Subject}};function t6c(e,t){t===void 0&&(t=e6c);var r=t.connector;return qjc.operate(function(n,a){var o=r();zjc.innerFrom(e($jc.fromSubscribable(o))).subscribe(a),a.add(n.subscribe(o))})}OTt.connect=t6c});var a3r=H(MTt=>{"use strict";Object.defineProperty(MTt,"__esModule",{value:!0});MTt.count=void 0;var r6c=C_e();function n6c(e){return r6c.reduce(function(t,r,n){return!e||e(r,n)?t+1:t},0)}MTt.count=n6c});var c3r=H(HTt=>{"use strict";Object.defineProperty(HTt,"__esModule",{value:!0});HTt.debounce=void 0;var i6c=qg(),s6c=rx(),p$i=Cd(),o6c=uh();function a6c(e){return i6c.operate(function(t,r){var n=!1,a=null,o=null,l=function(){if(o?.unsubscribe(),o=null,n){n=!1;var A=a;a=null,r.next(A)}};t.subscribe(p$i.createOperatorSubscriber(r,function(A){o?.unsubscribe(),n=!0,a=A,o=p$i.createOperatorSubscriber(r,l,s6c.noop),o6c.innerFrom(e(A)).subscribe(o)},function(){l(),r.complete()},void 0,function(){a=o=null}))})}HTt.debounce=a6c});var l3r=H(YTt=>{"use strict";Object.defineProperty(YTt,"__esModule",{value:!0});YTt.debounceTime=void 0;var c6c=FV(),l6c=qg(),u6c=Cd();function g6c(e,t){return t===void 0&&(t=c6c.asyncScheduler),l6c.operate(function(r,n){var a=null,o=null,l=null,A=function(){if(a){a.unsubscribe(),a=null;var I=o;o=null,n.next(I)}};function f(){var I=l+e,C=t.now();if(C{"use strict";Object.defineProperty(QTt,"__esModule",{value:!0});QTt.defaultIfEmpty=void 0;var A6c=qg(),d6c=Cd();function p6c(e){return A6c.operate(function(t,r){var n=!1;t.subscribe(d6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){n||r.next(e),r.complete()}))})}QTt.defaultIfEmpty=p6c});var qke=H(XTt=>{"use strict";Object.defineProperty(XTt,"__esModule",{value:!0});XTt.take=void 0;var f6c=x4(),I6c=qg(),h6c=Cd();function m6c(e){return e<=0?function(){return f6c.EMPTY}:I6c.operate(function(t,r){var n=0;t.subscribe(h6c.createOperatorSubscriber(r,function(a){++n<=e&&(r.next(a),e<=n&&r.complete())}))})}XTt.take=m6c});var UTt=H(JTt=>{"use strict";Object.defineProperty(JTt,"__esModule",{value:!0});JTt.ignoreElements=void 0;var C6c=qg(),_6c=Cd(),y6c=rx();function b6c(){return C6c.operate(function(e,t){e.subscribe(_6c.createOperatorSubscriber(t,y6c.noop))})}JTt.ignoreElements=b6c});var jTt=H(KTt=>{"use strict";Object.defineProperty(KTt,"__esModule",{value:!0});KTt.mapTo=void 0;var E6c=lte();function S6c(e){return E6c.map(function(){return e})}KTt.mapTo=S6c});var qTt=H(zTt=>{"use strict";Object.defineProperty(zTt,"__esModule",{value:!0});zTt.delayWhen=void 0;var v6c=M8e(),f$i=qke(),B6c=UTt(),w6c=jTt(),T6c=Kj(),R6c=uh();function I$i(e,t){return t?function(r){return v6c.concat(t.pipe(f$i.take(1),B6c.ignoreElements()),r.pipe(I$i(e)))}:T6c.mergeMap(function(r,n){return R6c.innerFrom(e(r,n)).pipe(f$i.take(1),w6c.mapTo(r))})}zTt.delayWhen=I$i});var u3r=H($Tt=>{"use strict";Object.defineProperty($Tt,"__esModule",{value:!0});$Tt.delay=void 0;var N6c=FV(),D6c=qTt(),k6c=ble();function x6c(e,t){t===void 0&&(t=N6c.asyncScheduler);var r=k6c.timer(e,t);return D6c.delayWhen(function(){return r})}$Tt.delay=x6c});var g3r=H(eRt=>{"use strict";Object.defineProperty(eRt,"__esModule",{value:!0});eRt.dematerialize=void 0;var G6c=Vwt(),F6c=qg(),Z6c=Cd();function L6c(){return F6c.operate(function(e,t){e.subscribe(Z6c.createOperatorSubscriber(t,function(r){return G6c.observeNotification(r,t)}))})}eRt.dematerialize=L6c});var A3r=H(tRt=>{"use strict";Object.defineProperty(tRt,"__esModule",{value:!0});tRt.distinct=void 0;var V6c=qg(),h$i=Cd(),P6c=rx(),W6c=uh();function O6c(e,t){return V6c.operate(function(r,n){var a=new Set;r.subscribe(h$i.createOperatorSubscriber(n,function(o){var l=e?e(o):o;a.has(l)||(a.add(l),n.next(o))})),t&&W6c.innerFrom(t).subscribe(h$i.createOperatorSubscriber(n,function(){return a.clear()},P6c.noop))})}tRt.distinct=O6c});var nRt=H(rRt=>{"use strict";Object.defineProperty(rRt,"__esModule",{value:!0});rRt.distinctUntilChanged=void 0;var M6c=nx(),H6c=qg(),Y6c=Cd();function Q6c(e,t){return t===void 0&&(t=M6c.identity),e=e??X6c,H6c.operate(function(r,n){var a,o=!0;r.subscribe(Y6c.createOperatorSubscriber(n,function(l){var A=t(l);(o||!e(a,A))&&(o=!1,a=A,n.next(l))}))})}rRt.distinctUntilChanged=Q6c;function X6c(e,t){return e===t}});var d3r=H(iRt=>{"use strict";Object.defineProperty(iRt,"__esModule",{value:!0});iRt.distinctUntilKeyChanged=void 0;var J6c=nRt();function U6c(e,t){return J6c.distinctUntilChanged(function(r,n){return t?t(r[e],n[e]):r[e]===n[e]})}iRt.distinctUntilKeyChanged=U6c});var $ke=H(sRt=>{"use strict";Object.defineProperty(sRt,"__esModule",{value:!0});sRt.throwIfEmpty=void 0;var K6c=mle(),j6c=qg(),z6c=Cd();function q6c(e){return e===void 0&&(e=$6c),j6c.operate(function(t,r){var n=!1;t.subscribe(z6c.createOperatorSubscriber(r,function(a){n=!0,r.next(a)},function(){return n?r.complete():r.error(e())}))})}sRt.throwIfEmpty=q6c;function $6c(){return new K6c.EmptyError}});var p3r=H(oRt=>{"use strict";Object.defineProperty(oRt,"__esModule",{value:!0});oRt.elementAt=void 0;var m$i=DOr(),e7c=ute(),t7c=$ke(),r7c=zke(),n7c=qke();function i7c(e,t){if(e<0)throw new m$i.ArgumentOutOfRangeError;var r=arguments.length>=2;return function(n){return n.pipe(e7c.filter(function(a,o){return o===e}),n7c.take(1),r?r7c.defaultIfEmpty(t):t7c.throwIfEmpty(function(){return new m$i.ArgumentOutOfRangeError}))}}oRt.elementAt=i7c});var f3r=H(Rle=>{"use strict";var s7c=Rle&&Rle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},o7c=Rle&&Rle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(aRt,"__esModule",{value:!0});aRt.every=void 0;var u7c=qg(),g7c=Cd();function A7c(e,t){return u7c.operate(function(r,n){var a=0;r.subscribe(g7c.createOperatorSubscriber(n,function(o){e.call(t,o,a++,r)||(n.next(!1),n.complete())},function(){n.next(!0),n.complete()}))})}aRt.every=A7c});var lRt=H(cRt=>{"use strict";Object.defineProperty(cRt,"__esModule",{value:!0});cRt.exhaustMap=void 0;var d7c=lte(),C$i=uh(),p7c=qg(),_$i=Cd();function y$i(e,t){return t?function(r){return r.pipe(y$i(function(n,a){return C$i.innerFrom(e(n,a)).pipe(d7c.map(function(o,l){return t(n,o,a,l)}))}))}:p7c.operate(function(r,n){var a=0,o=null,l=!1;r.subscribe(_$i.createOperatorSubscriber(n,function(A){o||(o=_$i.createOperatorSubscriber(n,void 0,function(){o=null,l&&n.complete()}),C$i.innerFrom(e(A,a++)).subscribe(o))},function(){l=!0,!o&&n.complete()}))})}cRt.exhaustMap=y$i});var gRt=H(uRt=>{"use strict";Object.defineProperty(uRt,"__esModule",{value:!0});uRt.exhaustAll=void 0;var f7c=lRt(),I7c=nx();function h7c(){return f7c.exhaustMap(I7c.identity)}uRt.exhaustAll=h7c});var h3r=H(ARt=>{"use strict";Object.defineProperty(ARt,"__esModule",{value:!0});ARt.exhaust=void 0;var m7c=gRt();ARt.exhaust=m7c.exhaustAll});var m3r=H(dRt=>{"use strict";Object.defineProperty(dRt,"__esModule",{value:!0});dRt.expand=void 0;var C7c=qg(),_7c=tTt();function y7c(e,t,r){return t===void 0&&(t=1/0),t=(t||0)<1?1/0:t,C7c.operate(function(n,a){return _7c.mergeInternals(n,a,e,t,void 0,!0,r)})}dRt.expand=y7c});var C3r=H(pRt=>{"use strict";Object.defineProperty(pRt,"__esModule",{value:!0});pRt.finalize=void 0;var b7c=qg();function E7c(e){return b7c.operate(function(t,r){try{t.subscribe(r)}finally{r.add(e)}})}pRt.finalize=E7c});var fRt=H(exe=>{"use strict";Object.defineProperty(exe,"__esModule",{value:!0});exe.createFind=exe.find=void 0;var S7c=qg(),v7c=Cd();function B7c(e,t){return S7c.operate(b$i(e,t,"value"))}exe.find=B7c;function b$i(e,t,r){var n=r==="index";return function(a,o){var l=0;a.subscribe(v7c.createOperatorSubscriber(o,function(A){var f=l++;e.call(t,A,f,a)&&(o.next(n?f:A),o.complete())},function(){o.next(n?-1:void 0),o.complete()}))}}exe.createFind=b$i});var _3r=H(IRt=>{"use strict";Object.defineProperty(IRt,"__esModule",{value:!0});IRt.findIndex=void 0;var w7c=qg(),T7c=fRt();function R7c(e,t){return w7c.operate(T7c.createFind(e,t,"index"))}IRt.findIndex=R7c});var y3r=H(hRt=>{"use strict";Object.defineProperty(hRt,"__esModule",{value:!0});hRt.first=void 0;var N7c=mle(),D7c=ute(),k7c=qke(),x7c=zke(),G7c=$ke(),F7c=nx();function Z7c(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?D7c.filter(function(a,o){return e(a,o,n)}):F7c.identity,k7c.take(1),r?x7c.defaultIfEmpty(t):G7c.throwIfEmpty(function(){return new N7c.EmptyError}))}}hRt.first=Z7c});var b3r=H(mRt=>{"use strict";Object.defineProperty(mRt,"__esModule",{value:!0});mRt.groupBy=void 0;var L7c=ub(),V7c=uh(),P7c=ix(),W7c=qg(),E$i=Cd();function O7c(e,t,r,n){return W7c.operate(function(a,o){var l;!t||typeof t=="function"?l=t:(r=t.duration,l=t.element,n=t.connector);var A=new Map,f=function(B){A.forEach(B),B(o)},I=function(B){return f(function(F){return F.error(B)})},C=0,b=!1,E=new E$i.OperatorSubscriber(o,function(B){try{var F=e(B),Q=A.get(F);if(!Q){A.set(F,Q=n?n():new P7c.Subject);var X=N(F,Q);if(o.next(X),r){var ae=E$i.createOperatorSubscriber(Q,function(){Q.complete(),ae?.unsubscribe()},void 0,void 0,function(){return A.delete(F)});E.add(V7c.innerFrom(r(X)).subscribe(ae))}}Q.next(l?l(B):B)}catch(ne){I(ne)}},function(){return f(function(B){return B.complete()})},I,function(){return A.clear()},function(){return b=!0,C===0});a.subscribe(E);function N(B,F){var Q=new L7c.Observable(function(X){C++;var ae=F.subscribe(X);return function(){ae.unsubscribe(),--C===0&&b&&E.unsubscribe()}});return Q.key=B,Q}})}mRt.groupBy=O7c});var E3r=H(CRt=>{"use strict";Object.defineProperty(CRt,"__esModule",{value:!0});CRt.isEmpty=void 0;var M7c=qg(),H7c=Cd();function Y7c(){return M7c.operate(function(e,t){e.subscribe(H7c.createOperatorSubscriber(t,function(){t.next(!1),t.complete()},function(){t.next(!0),t.complete()}))})}CRt.isEmpty=Y7c});var _Rt=H(txe=>{"use strict";var Q7c=txe&&txe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(txe,"__esModule",{value:!0});txe.takeLast=void 0;var X7c=x4(),J7c=qg(),U7c=Cd();function K7c(e){return e<=0?function(){return X7c.EMPTY}:J7c.operate(function(t,r){var n=[];t.subscribe(U7c.createOperatorSubscriber(r,function(a){n.push(a),e{"use strict";Object.defineProperty(yRt,"__esModule",{value:!0});yRt.last=void 0;var j7c=mle(),z7c=ute(),q7c=_Rt(),$7c=$ke(),ezc=zke(),tzc=nx();function rzc(e,t){var r=arguments.length>=2;return function(n){return n.pipe(e?z7c.filter(function(a,o){return e(a,o,n)}):tzc.identity,q7c.takeLast(1),r?ezc.defaultIfEmpty(t):$7c.throwIfEmpty(function(){return new j7c.EmptyError}))}}yRt.last=rzc});var B3r=H(bRt=>{"use strict";Object.defineProperty(bRt,"__esModule",{value:!0});bRt.materialize=void 0;var v3r=Vwt(),nzc=qg(),izc=Cd();function szc(){return nzc.operate(function(e,t){e.subscribe(izc.createOperatorSubscriber(t,function(r){t.next(v3r.Notification.createNext(r))},function(){t.next(v3r.Notification.createComplete()),t.complete()},function(r){t.next(v3r.Notification.createError(r)),t.complete()}))})}bRt.materialize=szc});var w3r=H(ERt=>{"use strict";Object.defineProperty(ERt,"__esModule",{value:!0});ERt.max=void 0;var ozc=C_e(),azc=Sy();function czc(e){return ozc.reduce(azc.isFunction(e)?function(t,r){return e(t,r)>0?t:r}:function(t,r){return t>r?t:r})}ERt.max=czc});var T3r=H(SRt=>{"use strict";Object.defineProperty(SRt,"__esModule",{value:!0});SRt.flatMap=void 0;var lzc=Kj();SRt.flatMap=lzc.mergeMap});var R3r=H(vRt=>{"use strict";Object.defineProperty(vRt,"__esModule",{value:!0});vRt.mergeMapTo=void 0;var S$i=Kj(),uzc=Sy();function gzc(e,t,r){return r===void 0&&(r=1/0),uzc.isFunction(t)?S$i.mergeMap(function(){return e},t,r):(typeof t=="number"&&(r=t),S$i.mergeMap(function(){return e},r))}vRt.mergeMapTo=gzc});var N3r=H(BRt=>{"use strict";Object.defineProperty(BRt,"__esModule",{value:!0});BRt.mergeScan=void 0;var Azc=qg(),dzc=tTt();function pzc(e,t,r){return r===void 0&&(r=1/0),Azc.operate(function(n,a){var o=t;return dzc.mergeInternals(n,a,function(l,A){return e(o,l,A)},r,function(l){o=l},!1,void 0,function(){return o=null})})}BRt.mergeScan=pzc});var D3r=H(Nle=>{"use strict";var fzc=Nle&&Nle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Izc=Nle&&Nle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var bzc=Dle&&Dle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Ezc=Dle&&Dle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(wRt,"__esModule",{value:!0});wRt.min=void 0;var Bzc=C_e(),wzc=Sy();function Tzc(e){return Bzc.reduce(wzc.isFunction(e)?function(t,r){return e(t,r)<0?t:r}:function(t,r){return t{"use strict";Object.defineProperty(TRt,"__esModule",{value:!0});TRt.multicast=void 0;var Rzc=Z8e(),B$i=Sy(),Nzc=Y8e();function Dzc(e,t){var r=B$i.isFunction(e)?e:function(){return e};return B$i.isFunction(t)?Nzc.connect(t,{connector:r}):function(n){return new Rzc.ConnectableObservable(n,r)}}TRt.multicast=Dzc});var G3r=H(jj=>{"use strict";var kzc=jj&&jj.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},xzc=jj&&jj.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(RRt,"__esModule",{value:!0});RRt.pairwise=void 0;var Zzc=qg(),Lzc=Cd();function Vzc(){return Zzc.operate(function(e,t){var r,n=!1;e.subscribe(Lzc.createOperatorSubscriber(t,function(a){var o=r;r=a,n&&t.next([o,a]),n=!0}))})}RRt.pairwise=Vzc});var Z3r=H(NRt=>{"use strict";Object.defineProperty(NRt,"__esModule",{value:!0});NRt.pluck=void 0;var Pzc=lte();function Wzc(){for(var e=[],t=0;t{"use strict";Object.defineProperty(DRt,"__esModule",{value:!0});DRt.publish=void 0;var Ozc=ix(),Mzc=Q8e(),Hzc=Y8e();function Yzc(e){return e?function(t){return Hzc.connect(e)(t)}:function(t){return Mzc.multicast(new Ozc.Subject)(t)}}DRt.publish=Yzc});var V3r=H(kRt=>{"use strict";Object.defineProperty(kRt,"__esModule",{value:!0});kRt.publishBehavior=void 0;var Qzc=pOr(),Xzc=Z8e();function Jzc(e){return function(t){var r=new Qzc.BehaviorSubject(e);return new Xzc.ConnectableObservable(t,function(){return r})}}kRt.publishBehavior=Jzc});var P3r=H(xRt=>{"use strict";Object.defineProperty(xRt,"__esModule",{value:!0});xRt.publishLast=void 0;var Uzc=Awt(),Kzc=Z8e();function jzc(){return function(e){var t=new Uzc.AsyncSubject;return new Kzc.ConnectableObservable(e,function(){return t})}}xRt.publishLast=jzc});var W3r=H(GRt=>{"use strict";Object.defineProperty(GRt,"__esModule",{value:!0});GRt.publishReplay=void 0;var zzc=gwt(),qzc=Q8e(),T$i=Sy();function $zc(e,t,r,n){r&&!T$i.isFunction(r)&&(n=r);var a=T$i.isFunction(r)?r:void 0;return function(o){return qzc.multicast(new zzc.ReplaySubject(e,t,n),a)(o)}}GRt.publishReplay=$zc});var FRt=H(kle=>{"use strict";var eqc=kle&&kle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},tqc=kle&&kle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ZRt,"__esModule",{value:!0});ZRt.repeat=void 0;var oqc=x4(),aqc=qg(),R$i=Cd(),cqc=uh(),lqc=ble();function uqc(e){var t,r=1/0,n;return e!=null&&(typeof e=="object"?(t=e.count,r=t===void 0?1/0:t,n=e.delay):r=e),r<=0?function(){return oqc.EMPTY}:aqc.operate(function(a,o){var l=0,A,f=function(){if(A?.unsubscribe(),A=null,n!=null){var C=typeof n=="number"?lqc.timer(n):cqc.innerFrom(n(l)),b=R$i.createOperatorSubscriber(o,function(){b.unsubscribe(),I()});C.subscribe(b)}else I()},I=function(){var C=!1;A=a.subscribe(R$i.createOperatorSubscriber(o,void 0,function(){++l{"use strict";Object.defineProperty(LRt,"__esModule",{value:!0});LRt.repeatWhen=void 0;var gqc=uh(),Aqc=ix(),dqc=qg(),N$i=Cd();function pqc(e){return dqc.operate(function(t,r){var n,a=!1,o,l=!1,A=!1,f=function(){return A&&l&&(r.complete(),!0)},I=function(){return o||(o=new Aqc.Subject,gqc.innerFrom(e(o)).subscribe(N$i.createOperatorSubscriber(r,function(){n?C():a=!0},function(){l=!0,f()}))),o},C=function(){A=!1,n=t.subscribe(N$i.createOperatorSubscriber(r,void 0,function(){A=!0,!f()&&I().next()})),a&&(n.unsubscribe(),n=null,a=!1,C())};C()})}LRt.repeatWhen=pqc});var H3r=H(VRt=>{"use strict";Object.defineProperty(VRt,"__esModule",{value:!0});VRt.retry=void 0;var fqc=qg(),D$i=Cd(),Iqc=nx(),hqc=ble(),mqc=uh();function Cqc(e){e===void 0&&(e=1/0);var t;e&&typeof e=="object"?t=e:t={count:e};var r=t.count,n=r===void 0?1/0:r,a=t.delay,o=t.resetOnSuccess,l=o===void 0?!1:o;return n<=0?Iqc.identity:fqc.operate(function(A,f){var I=0,C,b=function(){var E=!1;C=A.subscribe(D$i.createOperatorSubscriber(f,function(N){l&&(I=0),f.next(N)},void 0,function(N){if(I++{"use strict";Object.defineProperty(PRt,"__esModule",{value:!0});PRt.retryWhen=void 0;var _qc=uh(),yqc=ix(),bqc=qg(),k$i=Cd();function Eqc(e){return bqc.operate(function(t,r){var n,a=!1,o,l=function(){n=t.subscribe(k$i.createOperatorSubscriber(r,void 0,void 0,function(A){o||(o=new yqc.Subject,_qc.innerFrom(e(o)).subscribe(k$i.createOperatorSubscriber(r,function(){return n?l():a=!0}))),o&&o.next(A)})),a&&(n.unsubscribe(),n=null,a=!1,l())};l()})}PRt.retryWhen=Eqc});var ORt=H(WRt=>{"use strict";Object.defineProperty(WRt,"__esModule",{value:!0});WRt.sample=void 0;var Sqc=uh(),vqc=qg(),Bqc=rx(),x$i=Cd();function wqc(e){return vqc.operate(function(t,r){var n=!1,a=null;t.subscribe(x$i.createOperatorSubscriber(r,function(o){n=!0,a=o})),Sqc.innerFrom(e).subscribe(x$i.createOperatorSubscriber(r,function(){if(n){n=!1;var o=a;a=null,r.next(o)}},Bqc.noop))})}WRt.sample=wqc});var Q3r=H(MRt=>{"use strict";Object.defineProperty(MRt,"__esModule",{value:!0});MRt.sampleTime=void 0;var Tqc=FV(),Rqc=ORt(),Nqc=POr();function Dqc(e,t){return t===void 0&&(t=Tqc.asyncScheduler),Rqc.sample(Nqc.interval(e,t))}MRt.sampleTime=Dqc});var X3r=H(HRt=>{"use strict";Object.defineProperty(HRt,"__esModule",{value:!0});HRt.scan=void 0;var kqc=qg(),xqc=$Or();function Gqc(e,t){return kqc.operate(xqc.scanInternals(e,t,arguments.length>=2,!0))}HRt.scan=Gqc});var J3r=H(YRt=>{"use strict";Object.defineProperty(YRt,"__esModule",{value:!0});YRt.sequenceEqual=void 0;var Fqc=qg(),Zqc=Cd(),Lqc=uh();function Vqc(e,t){return t===void 0&&(t=function(r,n){return r===n}),Fqc.operate(function(r,n){var a=G$i(),o=G$i(),l=function(f){n.next(f),n.complete()},A=function(f,I){var C=Zqc.createOperatorSubscriber(n,function(b){var E=I.buffer,N=I.complete;E.length===0?N?l(!1):f.buffer.push(b):!t(b,E.shift())&&l(!1)},function(){f.complete=!0;var b=I.complete,E=I.buffer;b&&l(E.length===0),C?.unsubscribe()});return C};r.subscribe(A(a,o)),Lqc.innerFrom(e).subscribe(A(o,a))})}YRt.sequenceEqual=Vqc;function G$i(){return{buffer:[],complete:!1}}});var QRt=H(xle=>{"use strict";var Pqc=xle&&xle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Wqc=xle&&xle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r0&&(C=new Z$i.SafeSubscriber({next:function(ue){return fe.next(ue)},error:function(ue){F=!0,Q(),b=U3r(X,a,ue),fe.error(ue)},complete:function(){B=!0,Q(),b=U3r(X,l),fe.complete()}}),F$i.innerFrom(ne).subscribe(C))})(I)}}xle.share=Hqc;function U3r(e,t){for(var r=[],n=2;n{"use strict";Object.defineProperty(XRt,"__esModule",{value:!0});XRt.shareReplay=void 0;var Yqc=gwt(),Qqc=QRt();function Xqc(e,t,r){var n,a,o,l,A=!1;return e&&typeof e=="object"?(n=e.bufferSize,l=n===void 0?1/0:n,a=e.windowTime,t=a===void 0?1/0:a,o=e.refCount,A=o===void 0?!1:o,r=e.scheduler):l=e??1/0,Qqc.share({connector:function(){return new Yqc.ReplaySubject(l,t,r)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:A})}XRt.shareReplay=Xqc});var j3r=H(JRt=>{"use strict";Object.defineProperty(JRt,"__esModule",{value:!0});JRt.single=void 0;var Jqc=mle(),Uqc=xOr(),Kqc=kOr(),jqc=qg(),zqc=Cd();function qqc(e){return jqc.operate(function(t,r){var n=!1,a,o=!1,l=0;t.subscribe(zqc.createOperatorSubscriber(r,function(A){o=!0,(!e||e(A,l++,t))&&(n&&r.error(new Uqc.SequenceError("Too many matching values")),n=!0,a=A)},function(){n?(r.next(a),r.complete()):r.error(o?new Kqc.NotFoundError("No matching values"):new Jqc.EmptyError)}))})}JRt.single=qqc});var z3r=H(URt=>{"use strict";Object.defineProperty(URt,"__esModule",{value:!0});URt.skip=void 0;var $qc=ute();function e$c(e){return $qc.filter(function(t,r){return e<=r})}URt.skip=e$c});var q3r=H(KRt=>{"use strict";Object.defineProperty(KRt,"__esModule",{value:!0});KRt.skipLast=void 0;var t$c=nx(),r$c=qg(),n$c=Cd();function i$c(e){return e<=0?t$c.identity:r$c.operate(function(t,r){var n=new Array(e),a=0;return t.subscribe(n$c.createOperatorSubscriber(r,function(o){var l=a++;if(l{"use strict";Object.defineProperty(jRt,"__esModule",{value:!0});jRt.skipUntil=void 0;var s$c=qg(),L$i=Cd(),o$c=uh(),a$c=rx();function c$c(e){return s$c.operate(function(t,r){var n=!1,a=L$i.createOperatorSubscriber(r,function(){a?.unsubscribe(),n=!0},a$c.noop);o$c.innerFrom(e).subscribe(a),t.subscribe(L$i.createOperatorSubscriber(r,function(o){return n&&r.next(o)}))})}jRt.skipUntil=c$c});var e5r=H(zRt=>{"use strict";Object.defineProperty(zRt,"__esModule",{value:!0});zRt.skipWhile=void 0;var l$c=qg(),u$c=Cd();function g$c(e){return l$c.operate(function(t,r){var n=!1,a=0;t.subscribe(u$c.createOperatorSubscriber(r,function(o){return(n||(n=!e(o,a++)))&&r.next(o)}))})}zRt.skipWhile=g$c});var t5r=H(qRt=>{"use strict";Object.defineProperty(qRt,"__esModule",{value:!0});qRt.startWith=void 0;var V$i=M8e(),A$c=ZV(),d$c=qg();function p$c(){for(var e=[],t=0;t{"use strict";Object.defineProperty($Rt,"__esModule",{value:!0});$Rt.switchMap=void 0;var f$c=uh(),I$c=qg(),P$i=Cd();function h$c(e,t){return I$c.operate(function(r,n){var a=null,o=0,l=!1,A=function(){return l&&!a&&n.complete()};r.subscribe(P$i.createOperatorSubscriber(n,function(f){a?.unsubscribe();var I=0,C=o++;f$c.innerFrom(e(f,C)).subscribe(a=P$i.createOperatorSubscriber(n,function(b){return n.next(t?t(f,b,C,I++):b)},function(){a=null,A()}))},function(){l=!0,A()}))})}$Rt.switchMap=h$c});var r5r=H(eNt=>{"use strict";Object.defineProperty(eNt,"__esModule",{value:!0});eNt.switchAll=void 0;var m$c=rxe(),C$c=nx();function _$c(){return m$c.switchMap(C$c.identity)}eNt.switchAll=_$c});var n5r=H(tNt=>{"use strict";Object.defineProperty(tNt,"__esModule",{value:!0});tNt.switchMapTo=void 0;var W$i=rxe(),y$c=Sy();function b$c(e,t){return y$c.isFunction(t)?W$i.switchMap(function(){return e},t):W$i.switchMap(function(){return e})}tNt.switchMapTo=b$c});var i5r=H(rNt=>{"use strict";Object.defineProperty(rNt,"__esModule",{value:!0});rNt.switchScan=void 0;var E$c=rxe(),S$c=qg();function v$c(e,t){return S$c.operate(function(r,n){var a=t;return E$c.switchMap(function(o,l){return e(a,o,l)},function(o,l){return a=l,l})(r).subscribe(n),function(){a=null}})}rNt.switchScan=v$c});var s5r=H(nNt=>{"use strict";Object.defineProperty(nNt,"__esModule",{value:!0});nNt.takeUntil=void 0;var B$c=qg(),w$c=Cd(),T$c=uh(),R$c=rx();function N$c(e){return B$c.operate(function(t,r){T$c.innerFrom(e).subscribe(w$c.createOperatorSubscriber(r,function(){return r.complete()},R$c.noop)),!r.closed&&t.subscribe(r)})}nNt.takeUntil=N$c});var o5r=H(iNt=>{"use strict";Object.defineProperty(iNt,"__esModule",{value:!0});iNt.takeWhile=void 0;var D$c=qg(),k$c=Cd();function x$c(e,t){return t===void 0&&(t=!1),D$c.operate(function(r,n){var a=0;r.subscribe(k$c.createOperatorSubscriber(n,function(o){var l=e(o,a++);(l||t)&&n.next(o),!l&&n.complete()}))})}iNt.takeWhile=x$c});var a5r=H(sNt=>{"use strict";Object.defineProperty(sNt,"__esModule",{value:!0});sNt.tap=void 0;var G$c=Sy(),F$c=qg(),Z$c=Cd(),L$c=nx();function V$c(e,t,r){var n=G$c.isFunction(e)||t||r?{next:e,error:t,complete:r}:e;return n?F$c.operate(function(a,o){var l;(l=n.subscribe)===null||l===void 0||l.call(n);var A=!0;a.subscribe(Z$c.createOperatorSubscriber(o,function(f){var I;(I=n.next)===null||I===void 0||I.call(n,f),o.next(f)},function(){var f;A=!1,(f=n.complete)===null||f===void 0||f.call(n),o.complete()},function(f){var I;A=!1,(I=n.error)===null||I===void 0||I.call(n,f),o.error(f)},function(){var f,I;A&&((f=n.unsubscribe)===null||f===void 0||f.call(n)),(I=n.finalize)===null||I===void 0||I.call(n)}))}):L$c.identity}sNt.tap=V$c});var aNt=H(oNt=>{"use strict";Object.defineProperty(oNt,"__esModule",{value:!0});oNt.throttle=void 0;var P$c=qg(),O$i=Cd(),W$c=uh();function O$c(e,t){return P$c.operate(function(r,n){var a=t??{},o=a.leading,l=o===void 0?!0:o,A=a.trailing,f=A===void 0?!1:A,I=!1,C=null,b=null,E=!1,N=function(){b?.unsubscribe(),b=null,f&&(Q(),E&&n.complete())},B=function(){b=null,E&&n.complete()},F=function(X){return b=W$c.innerFrom(e(X)).subscribe(O$i.createOperatorSubscriber(n,N,B))},Q=function(){if(I){I=!1;var X=C;C=null,n.next(X),!E&&F(X)}};r.subscribe(O$i.createOperatorSubscriber(n,function(X){I=!0,C=X,!(b&&!b.closed)&&(l?Q():F(X))},function(){E=!0,!(f&&I&&b&&!b.closed)&&n.complete()}))})}oNt.throttle=O$c});var c5r=H(cNt=>{"use strict";Object.defineProperty(cNt,"__esModule",{value:!0});cNt.throttleTime=void 0;var M$c=FV(),H$c=aNt(),Y$c=ble();function Q$c(e,t,r){t===void 0&&(t=M$c.asyncScheduler);var n=Y$c.timer(e,t);return H$c.throttle(function(){return n},r)}cNt.throttleTime=Q$c});var l5r=H(nxe=>{"use strict";Object.defineProperty(nxe,"__esModule",{value:!0});nxe.TimeInterval=nxe.timeInterval=void 0;var X$c=FV(),J$c=qg(),U$c=Cd();function K$c(e){return e===void 0&&(e=X$c.asyncScheduler),J$c.operate(function(t,r){var n=e.now();t.subscribe(U$c.createOperatorSubscriber(r,function(a){var o=e.now(),l=o-n;n=o,r.next(new M$i(a,l))}))})}nxe.timeInterval=K$c;var M$i=function(){function e(t,r){this.value=t,this.interval=r}return e}();nxe.TimeInterval=M$i});var u5r=H(lNt=>{"use strict";Object.defineProperty(lNt,"__esModule",{value:!0});lNt.timeoutWith=void 0;var j$c=FV(),z$c=Jwt(),q$c=W8e();function $$c(e,t,r){var n,a,o;if(r=r??j$c.async,z$c.isValidDate(e)?n=e:typeof e=="number"&&(a=e),t)o=function(){return t};else throw new TypeError("No observable provided to switch to");if(n==null&&a==null)throw new TypeError("No timeout provided.");return q$c.timeout({first:n,each:a,scheduler:r,with:o})}lNt.timeoutWith=$$c});var g5r=H(uNt=>{"use strict";Object.defineProperty(uNt,"__esModule",{value:!0});uNt.timestamp=void 0;var eel=uwt(),tel=lte();function rel(e){return e===void 0&&(e=eel.dateTimestampProvider),tel.map(function(t){return{value:t,timestamp:e.now()}})}uNt.timestamp=rel});var A5r=H(gNt=>{"use strict";Object.defineProperty(gNt,"__esModule",{value:!0});gNt.window=void 0;var H$i=ix(),nel=qg(),Y$i=Cd(),iel=rx(),sel=uh();function oel(e){return nel.operate(function(t,r){var n=new H$i.Subject;r.next(n.asObservable());var a=function(o){n.error(o),r.error(o)};return t.subscribe(Y$i.createOperatorSubscriber(r,function(o){return n?.next(o)},function(){n.complete(),r.complete()},a)),sel.innerFrom(e).subscribe(Y$i.createOperatorSubscriber(r,function(){n.complete(),r.next(n=new H$i.Subject)},iel.noop,a)),function(){n?.unsubscribe(),n=null}})}gNt.window=oel});var d5r=H(ixe=>{"use strict";var ael=ixe&&ixe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(ixe,"__esModule",{value:!0});ixe.windowCount=void 0;var Q$i=ix(),cel=qg(),lel=Cd();function uel(e,t){t===void 0&&(t=0);var r=t>0?t:e;return cel.operate(function(n,a){var o=[new Q$i.Subject],l=[],A=0;a.next(o[0].asObservable()),n.subscribe(lel.createOperatorSubscriber(a,function(f){var I,C;try{for(var b=ael(o),E=b.next();!E.done;E=b.next()){var N=E.value;N.next(f)}}catch(Q){I={error:Q}}finally{try{E&&!E.done&&(C=b.return)&&C.call(b)}finally{if(I)throw I.error}}var B=A-e+1;if(B>=0&&B%r===0&&o.shift().complete(),++A%r===0){var F=new Q$i.Subject;o.push(F),a.next(F.asObservable())}},function(){for(;o.length>0;)o.shift().complete();a.complete()},function(f){for(;o.length>0;)o.shift().error(f);a.error(f)},function(){l=null,o=null}))})}ixe.windowCount=uel});var p5r=H(ANt=>{"use strict";Object.defineProperty(ANt,"__esModule",{value:!0});ANt.windowTime=void 0;var gel=ix(),Ael=FV(),del=TO(),pel=qg(),fel=Cd(),Iel=ste(),hel=ZV(),X$i=ote();function mel(e){for(var t,r,n=[],a=1;a=0?X$i.executeSchedule(I,o,N,l,!0):b=!0,N();var B=function(Q){return C.slice().forEach(Q)},F=function(Q){B(function(X){var ae=X.window;return Q(ae)}),Q(I),I.unsubscribe()};return f.subscribe(fel.createOperatorSubscriber(I,function(Q){B(function(X){X.window.next(Q),A<=++X.seen&&E(X)})},function(){return F(function(Q){return Q.complete()})},function(Q){return F(function(X){return X.error(Q)})})),function(){C=null}})}ANt.windowTime=mel});var I5r=H(sxe=>{"use strict";var Cel=sxe&&sxe.__values||function(e){var t=typeof Symbol=="function"&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(sxe,"__esModule",{value:!0});sxe.windowToggle=void 0;var _el=ix(),yel=TO(),bel=qg(),J$i=uh(),f5r=Cd(),U$i=rx(),Eel=ste();function Sel(e,t){return bel.operate(function(r,n){var a=[],o=function(l){for(;0{"use strict";Object.defineProperty(dNt,"__esModule",{value:!0});dNt.windowWhen=void 0;var vel=ix(),Bel=qg(),K$i=Cd(),wel=uh();function Tel(e){return Bel.operate(function(t,r){var n,a,o=function(A){n.error(A),r.error(A)},l=function(){a?.unsubscribe(),n?.complete(),n=new vel.Subject,r.next(n.asObservable());var A;try{A=wel.innerFrom(e())}catch(f){o(f);return}A.subscribe(a=K$i.createOperatorSubscriber(r,l,l,o))};l(),t.subscribe(K$i.createOperatorSubscriber(r,function(A){return n.next(A)},function(){n.complete(),r.complete()},o,function(){a?.unsubscribe(),n=null}))})}dNt.windowWhen=Tel});var m5r=H(Gle=>{"use strict";var j$i=Gle&&Gle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},z$i=Gle&&Gle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(pNt,"__esModule",{value:!0});pNt.zipAll=void 0;var Fel=bTt(),Zel=e3r();function Lel(e){return Zel.joinAllInternals(Fel.zip,e)}pNt.zipAll=Lel});var _5r=H(Fle=>{"use strict";var Vel=Fle&&Fle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Pel=Fle&&Fle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Hel=Zle&&Zle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yel=Zle&&Zle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";var Jel=Cn&&Cn.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uel=Cn&&Cn.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Jel(t,e,r)};Object.defineProperty(Cn,"__esModule",{value:!0});Cn.interval=Cn.iif=Cn.generate=Cn.fromEventPattern=Cn.fromEvent=Cn.from=Cn.forkJoin=Cn.empty=Cn.defer=Cn.connectable=Cn.concat=Cn.combineLatest=Cn.bindNodeCallback=Cn.bindCallback=Cn.UnsubscriptionError=Cn.TimeoutError=Cn.SequenceError=Cn.ObjectUnsubscribedError=Cn.NotFoundError=Cn.EmptyError=Cn.ArgumentOutOfRangeError=Cn.firstValueFrom=Cn.lastValueFrom=Cn.isObservable=Cn.identity=Cn.noop=Cn.pipe=Cn.NotificationKind=Cn.Notification=Cn.Subscriber=Cn.Subscription=Cn.Scheduler=Cn.VirtualAction=Cn.VirtualTimeScheduler=Cn.animationFrameScheduler=Cn.animationFrame=Cn.queueScheduler=Cn.queue=Cn.asyncScheduler=Cn.async=Cn.asapScheduler=Cn.asap=Cn.AsyncSubject=Cn.ReplaySubject=Cn.BehaviorSubject=Cn.Subject=Cn.animationFrames=Cn.observable=Cn.ConnectableObservable=Cn.Observable=void 0;Cn.filter=Cn.expand=Cn.exhaustMap=Cn.exhaustAll=Cn.exhaust=Cn.every=Cn.endWith=Cn.elementAt=Cn.distinctUntilKeyChanged=Cn.distinctUntilChanged=Cn.distinct=Cn.dematerialize=Cn.delayWhen=Cn.delay=Cn.defaultIfEmpty=Cn.debounceTime=Cn.debounce=Cn.count=Cn.connect=Cn.concatWith=Cn.concatMapTo=Cn.concatMap=Cn.concatAll=Cn.combineLatestWith=Cn.combineLatestAll=Cn.combineAll=Cn.catchError=Cn.bufferWhen=Cn.bufferToggle=Cn.bufferTime=Cn.bufferCount=Cn.buffer=Cn.auditTime=Cn.audit=Cn.config=Cn.NEVER=Cn.EMPTY=Cn.scheduled=Cn.zip=Cn.using=Cn.timer=Cn.throwError=Cn.range=Cn.race=Cn.partition=Cn.pairs=Cn.onErrorResumeNext=Cn.of=Cn.never=Cn.merge=void 0;Cn.switchMap=Cn.switchAll=Cn.subscribeOn=Cn.startWith=Cn.skipWhile=Cn.skipUntil=Cn.skipLast=Cn.skip=Cn.single=Cn.shareReplay=Cn.share=Cn.sequenceEqual=Cn.scan=Cn.sampleTime=Cn.sample=Cn.refCount=Cn.retryWhen=Cn.retry=Cn.repeatWhen=Cn.repeat=Cn.reduce=Cn.raceWith=Cn.publishReplay=Cn.publishLast=Cn.publishBehavior=Cn.publish=Cn.pluck=Cn.pairwise=Cn.onErrorResumeNextWith=Cn.observeOn=Cn.multicast=Cn.min=Cn.mergeWith=Cn.mergeScan=Cn.mergeMapTo=Cn.mergeMap=Cn.flatMap=Cn.mergeAll=Cn.max=Cn.materialize=Cn.mapTo=Cn.map=Cn.last=Cn.isEmpty=Cn.ignoreElements=Cn.groupBy=Cn.first=Cn.findIndex=Cn.find=Cn.finalize=void 0;Cn.zipWith=Cn.zipAll=Cn.withLatestFrom=Cn.windowWhen=Cn.windowToggle=Cn.windowTime=Cn.windowCount=Cn.window=Cn.toArray=Cn.timestamp=Cn.timeoutWith=Cn.timeout=Cn.timeInterval=Cn.throwIfEmpty=Cn.throttleTime=Cn.throttle=Cn.tap=Cn.takeWhile=Cn.takeUntil=Cn.takeLast=Cn.take=Cn.switchScan=Cn.switchMapTo=void 0;var Kel=ub();Object.defineProperty(Cn,"Observable",{enumerable:!0,get:function(){return Kel.Observable}});var jel=Z8e();Object.defineProperty(Cn,"ConnectableObservable",{enumerable:!0,get:function(){return jel.ConnectableObservable}});var zel=G8e();Object.defineProperty(Cn,"observable",{enumerable:!0,get:function(){return zel.observable}});var qel=Nzi();Object.defineProperty(Cn,"animationFrames",{enumerable:!0,get:function(){return qel.animationFrames}});var $el=ix();Object.defineProperty(Cn,"Subject",{enumerable:!0,get:function(){return $el.Subject}});var etl=pOr();Object.defineProperty(Cn,"BehaviorSubject",{enumerable:!0,get:function(){return etl.BehaviorSubject}});var ttl=gwt();Object.defineProperty(Cn,"ReplaySubject",{enumerable:!0,get:function(){return ttl.ReplaySubject}});var rtl=Awt();Object.defineProperty(Cn,"AsyncSubject",{enumerable:!0,get:function(){return rtl.AsyncSubject}});var $$i=Jzi();Object.defineProperty(Cn,"asap",{enumerable:!0,get:function(){return $$i.asap}});Object.defineProperty(Cn,"asapScheduler",{enumerable:!0,get:function(){return $$i.asapScheduler}});var ees=FV();Object.defineProperty(Cn,"async",{enumerable:!0,get:function(){return ees.async}});Object.defineProperty(Cn,"asyncScheduler",{enumerable:!0,get:function(){return ees.asyncScheduler}});var tes=jzi();Object.defineProperty(Cn,"queue",{enumerable:!0,get:function(){return tes.queue}});Object.defineProperty(Cn,"queueScheduler",{enumerable:!0,get:function(){return tes.queueScheduler}});var res=eqi();Object.defineProperty(Cn,"animationFrame",{enumerable:!0,get:function(){return res.animationFrame}});Object.defineProperty(Cn,"animationFrameScheduler",{enumerable:!0,get:function(){return res.animationFrameScheduler}});var nes=nqi();Object.defineProperty(Cn,"VirtualTimeScheduler",{enumerable:!0,get:function(){return nes.VirtualTimeScheduler}});Object.defineProperty(Cn,"VirtualAction",{enumerable:!0,get:function(){return nes.VirtualAction}});var ntl=IOr();Object.defineProperty(Cn,"Scheduler",{enumerable:!0,get:function(){return ntl.Scheduler}});var itl=TO();Object.defineProperty(Cn,"Subscription",{enumerable:!0,get:function(){return itl.Subscription}});var stl=Cke();Object.defineProperty(Cn,"Subscriber",{enumerable:!0,get:function(){return stl.Subscriber}});var ies=Vwt();Object.defineProperty(Cn,"Notification",{enumerable:!0,get:function(){return ies.Notification}});Object.defineProperty(Cn,"NotificationKind",{enumerable:!0,get:function(){return ies.NotificationKind}});var otl=F8e();Object.defineProperty(Cn,"pipe",{enumerable:!0,get:function(){return otl.pipe}});var atl=rx();Object.defineProperty(Cn,"noop",{enumerable:!0,get:function(){return atl.noop}});var ctl=nx();Object.defineProperty(Cn,"identity",{enumerable:!0,get:function(){return ctl.identity}});var ltl=_qi();Object.defineProperty(Cn,"isObservable",{enumerable:!0,get:function(){return ltl.isObservable}});var utl=yqi();Object.defineProperty(Cn,"lastValueFrom",{enumerable:!0,get:function(){return utl.lastValueFrom}});var gtl=bqi();Object.defineProperty(Cn,"firstValueFrom",{enumerable:!0,get:function(){return gtl.firstValueFrom}});var Atl=DOr();Object.defineProperty(Cn,"ArgumentOutOfRangeError",{enumerable:!0,get:function(){return Atl.ArgumentOutOfRangeError}});var dtl=mle();Object.defineProperty(Cn,"EmptyError",{enumerable:!0,get:function(){return dtl.EmptyError}});var ptl=kOr();Object.defineProperty(Cn,"NotFoundError",{enumerable:!0,get:function(){return ptl.NotFoundError}});var ftl=uOr();Object.defineProperty(Cn,"ObjectUnsubscribedError",{enumerable:!0,get:function(){return ftl.ObjectUnsubscribedError}});var Itl=xOr();Object.defineProperty(Cn,"SequenceError",{enumerable:!0,get:function(){return Itl.SequenceError}});var htl=W8e();Object.defineProperty(Cn,"TimeoutError",{enumerable:!0,get:function(){return htl.TimeoutError}});var mtl=qWr();Object.defineProperty(Cn,"UnsubscriptionError",{enumerable:!0,get:function(){return mtl.UnsubscriptionError}});var Ctl=Sqi();Object.defineProperty(Cn,"bindCallback",{enumerable:!0,get:function(){return Ctl.bindCallback}});var _tl=vqi();Object.defineProperty(Cn,"bindNodeCallback",{enumerable:!0,get:function(){return _tl.bindNodeCallback}});var ytl=$wt();Object.defineProperty(Cn,"combineLatest",{enumerable:!0,get:function(){return ytl.combineLatest}});var btl=M8e();Object.defineProperty(Cn,"concat",{enumerable:!0,get:function(){return btl.concat}});var Etl=xqi();Object.defineProperty(Cn,"connectable",{enumerable:!0,get:function(){return Etl.connectable}});var Stl=H8e();Object.defineProperty(Cn,"defer",{enumerable:!0,get:function(){return Stl.defer}});var vtl=x4();Object.defineProperty(Cn,"empty",{enumerable:!0,get:function(){return vtl.empty}});var Btl=Gqi();Object.defineProperty(Cn,"forkJoin",{enumerable:!0,get:function(){return Btl.forkJoin}});var wtl=ate();Object.defineProperty(Cn,"from",{enumerable:!0,get:function(){return wtl.from}});var Ttl=Zqi();Object.defineProperty(Cn,"fromEvent",{enumerable:!0,get:function(){return Ttl.fromEvent}});var Rtl=Vqi();Object.defineProperty(Cn,"fromEventPattern",{enumerable:!0,get:function(){return Rtl.fromEventPattern}});var Ntl=Wqi();Object.defineProperty(Cn,"generate",{enumerable:!0,get:function(){return Ntl.generate}});var Dtl=Oqi();Object.defineProperty(Cn,"iif",{enumerable:!0,get:function(){return Dtl.iif}});var ktl=POr();Object.defineProperty(Cn,"interval",{enumerable:!0,get:function(){return ktl.interval}});var xtl=Hqi();Object.defineProperty(Cn,"merge",{enumerable:!0,get:function(){return xtl.merge}});var Gtl=WOr();Object.defineProperty(Cn,"never",{enumerable:!0,get:function(){return Gtl.never}});var Ftl=Zwt();Object.defineProperty(Cn,"of",{enumerable:!0,get:function(){return Ftl.of}});var Ztl=OOr();Object.defineProperty(Cn,"onErrorResumeNext",{enumerable:!0,get:function(){return Ztl.onErrorResumeNext}});var Ltl=Qqi();Object.defineProperty(Cn,"pairs",{enumerable:!0,get:function(){return Ltl.pairs}});var Vtl=Uqi();Object.defineProperty(Cn,"partition",{enumerable:!0,get:function(){return Vtl.partition}});var Ptl=HOr();Object.defineProperty(Cn,"race",{enumerable:!0,get:function(){return Ptl.race}});var Wtl=zqi();Object.defineProperty(Cn,"range",{enumerable:!0,get:function(){return Wtl.range}});var Otl=NOr();Object.defineProperty(Cn,"throwError",{enumerable:!0,get:function(){return Otl.throwError}});var Mtl=ble();Object.defineProperty(Cn,"timer",{enumerable:!0,get:function(){return Mtl.timer}});var Htl=qqi();Object.defineProperty(Cn,"using",{enumerable:!0,get:function(){return Htl.using}});var Ytl=bTt();Object.defineProperty(Cn,"zip",{enumerable:!0,get:function(){return Ytl.zip}});var Qtl=ROr();Object.defineProperty(Cn,"scheduled",{enumerable:!0,get:function(){return Qtl.scheduled}});var Xtl=x4();Object.defineProperty(Cn,"EMPTY",{enumerable:!0,get:function(){return Xtl.EMPTY}});var Jtl=WOr();Object.defineProperty(Cn,"NEVER",{enumerable:!0,get:function(){return Jtl.NEVER}});Uel(e$i(),Cn);var Utl=hke();Object.defineProperty(Cn,"config",{enumerable:!0,get:function(){return Utl.config}});var Ktl=STt();Object.defineProperty(Cn,"audit",{enumerable:!0,get:function(){return Ktl.audit}});var jtl=YOr();Object.defineProperty(Cn,"auditTime",{enumerable:!0,get:function(){return jtl.auditTime}});var ztl=QOr();Object.defineProperty(Cn,"buffer",{enumerable:!0,get:function(){return ztl.buffer}});var qtl=JOr();Object.defineProperty(Cn,"bufferCount",{enumerable:!0,get:function(){return qtl.bufferCount}});var $tl=UOr();Object.defineProperty(Cn,"bufferTime",{enumerable:!0,get:function(){return $tl.bufferTime}});var erl=jOr();Object.defineProperty(Cn,"bufferToggle",{enumerable:!0,get:function(){return erl.bufferToggle}});var trl=zOr();Object.defineProperty(Cn,"bufferWhen",{enumerable:!0,get:function(){return trl.bufferWhen}});var rrl=qOr();Object.defineProperty(Cn,"catchError",{enumerable:!0,get:function(){return rrl.catchError}});var nrl=t3r();Object.defineProperty(Cn,"combineAll",{enumerable:!0,get:function(){return nrl.combineAll}});var irl=FTt();Object.defineProperty(Cn,"combineLatestAll",{enumerable:!0,get:function(){return irl.combineLatestAll}});var srl=n3r();Object.defineProperty(Cn,"combineLatestWith",{enumerable:!0,get:function(){return srl.combineLatestWith}});var orl=O8e();Object.defineProperty(Cn,"concatAll",{enumerable:!0,get:function(){return orl.concatAll}});var arl=VTt();Object.defineProperty(Cn,"concatMap",{enumerable:!0,get:function(){return arl.concatMap}});var crl=i3r();Object.defineProperty(Cn,"concatMapTo",{enumerable:!0,get:function(){return crl.concatMapTo}});var lrl=o3r();Object.defineProperty(Cn,"concatWith",{enumerable:!0,get:function(){return lrl.concatWith}});var url=Y8e();Object.defineProperty(Cn,"connect",{enumerable:!0,get:function(){return url.connect}});var grl=a3r();Object.defineProperty(Cn,"count",{enumerable:!0,get:function(){return grl.count}});var Arl=c3r();Object.defineProperty(Cn,"debounce",{enumerable:!0,get:function(){return Arl.debounce}});var drl=l3r();Object.defineProperty(Cn,"debounceTime",{enumerable:!0,get:function(){return drl.debounceTime}});var prl=zke();Object.defineProperty(Cn,"defaultIfEmpty",{enumerable:!0,get:function(){return prl.defaultIfEmpty}});var frl=u3r();Object.defineProperty(Cn,"delay",{enumerable:!0,get:function(){return frl.delay}});var Irl=qTt();Object.defineProperty(Cn,"delayWhen",{enumerable:!0,get:function(){return Irl.delayWhen}});var hrl=g3r();Object.defineProperty(Cn,"dematerialize",{enumerable:!0,get:function(){return hrl.dematerialize}});var mrl=A3r();Object.defineProperty(Cn,"distinct",{enumerable:!0,get:function(){return mrl.distinct}});var Crl=nRt();Object.defineProperty(Cn,"distinctUntilChanged",{enumerable:!0,get:function(){return Crl.distinctUntilChanged}});var _rl=d3r();Object.defineProperty(Cn,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return _rl.distinctUntilKeyChanged}});var yrl=p3r();Object.defineProperty(Cn,"elementAt",{enumerable:!0,get:function(){return yrl.elementAt}});var brl=f3r();Object.defineProperty(Cn,"endWith",{enumerable:!0,get:function(){return brl.endWith}});var Erl=I3r();Object.defineProperty(Cn,"every",{enumerable:!0,get:function(){return Erl.every}});var Srl=h3r();Object.defineProperty(Cn,"exhaust",{enumerable:!0,get:function(){return Srl.exhaust}});var vrl=gRt();Object.defineProperty(Cn,"exhaustAll",{enumerable:!0,get:function(){return vrl.exhaustAll}});var Brl=lRt();Object.defineProperty(Cn,"exhaustMap",{enumerable:!0,get:function(){return Brl.exhaustMap}});var wrl=m3r();Object.defineProperty(Cn,"expand",{enumerable:!0,get:function(){return wrl.expand}});var Trl=ute();Object.defineProperty(Cn,"filter",{enumerable:!0,get:function(){return Trl.filter}});var Rrl=C3r();Object.defineProperty(Cn,"finalize",{enumerable:!0,get:function(){return Rrl.finalize}});var Nrl=fRt();Object.defineProperty(Cn,"find",{enumerable:!0,get:function(){return Nrl.find}});var Drl=_3r();Object.defineProperty(Cn,"findIndex",{enumerable:!0,get:function(){return Drl.findIndex}});var krl=y3r();Object.defineProperty(Cn,"first",{enumerable:!0,get:function(){return krl.first}});var xrl=b3r();Object.defineProperty(Cn,"groupBy",{enumerable:!0,get:function(){return xrl.groupBy}});var Grl=UTt();Object.defineProperty(Cn,"ignoreElements",{enumerable:!0,get:function(){return Grl.ignoreElements}});var Frl=E3r();Object.defineProperty(Cn,"isEmpty",{enumerable:!0,get:function(){return Frl.isEmpty}});var Zrl=S3r();Object.defineProperty(Cn,"last",{enumerable:!0,get:function(){return Zrl.last}});var Lrl=lte();Object.defineProperty(Cn,"map",{enumerable:!0,get:function(){return Lrl.map}});var Vrl=jTt();Object.defineProperty(Cn,"mapTo",{enumerable:!0,get:function(){return Vrl.mapTo}});var Prl=B3r();Object.defineProperty(Cn,"materialize",{enumerable:!0,get:function(){return Prl.materialize}});var Wrl=w3r();Object.defineProperty(Cn,"max",{enumerable:!0,get:function(){return Wrl.max}});var Orl=Yke();Object.defineProperty(Cn,"mergeAll",{enumerable:!0,get:function(){return Orl.mergeAll}});var Mrl=T3r();Object.defineProperty(Cn,"flatMap",{enumerable:!0,get:function(){return Mrl.flatMap}});var Hrl=Kj();Object.defineProperty(Cn,"mergeMap",{enumerable:!0,get:function(){return Hrl.mergeMap}});var Yrl=R3r();Object.defineProperty(Cn,"mergeMapTo",{enumerable:!0,get:function(){return Yrl.mergeMapTo}});var Qrl=N3r();Object.defineProperty(Cn,"mergeScan",{enumerable:!0,get:function(){return Qrl.mergeScan}});var Xrl=k3r();Object.defineProperty(Cn,"mergeWith",{enumerable:!0,get:function(){return Xrl.mergeWith}});var Jrl=x3r();Object.defineProperty(Cn,"min",{enumerable:!0,get:function(){return Jrl.min}});var Url=Q8e();Object.defineProperty(Cn,"multicast",{enumerable:!0,get:function(){return Url.multicast}});var Krl=Oke();Object.defineProperty(Cn,"observeOn",{enumerable:!0,get:function(){return Krl.observeOn}});var jrl=G3r();Object.defineProperty(Cn,"onErrorResumeNextWith",{enumerable:!0,get:function(){return jrl.onErrorResumeNextWith}});var zrl=F3r();Object.defineProperty(Cn,"pairwise",{enumerable:!0,get:function(){return zrl.pairwise}});var qrl=Z3r();Object.defineProperty(Cn,"pluck",{enumerable:!0,get:function(){return qrl.pluck}});var $rl=L3r();Object.defineProperty(Cn,"publish",{enumerable:!0,get:function(){return $rl.publish}});var enl=V3r();Object.defineProperty(Cn,"publishBehavior",{enumerable:!0,get:function(){return enl.publishBehavior}});var tnl=P3r();Object.defineProperty(Cn,"publishLast",{enumerable:!0,get:function(){return tnl.publishLast}});var rnl=W3r();Object.defineProperty(Cn,"publishReplay",{enumerable:!0,get:function(){return rnl.publishReplay}});var nnl=FRt();Object.defineProperty(Cn,"raceWith",{enumerable:!0,get:function(){return nnl.raceWith}});var inl=C_e();Object.defineProperty(Cn,"reduce",{enumerable:!0,get:function(){return inl.reduce}});var snl=O3r();Object.defineProperty(Cn,"repeat",{enumerable:!0,get:function(){return snl.repeat}});var onl=M3r();Object.defineProperty(Cn,"repeatWhen",{enumerable:!0,get:function(){return onl.repeatWhen}});var anl=H3r();Object.defineProperty(Cn,"retry",{enumerable:!0,get:function(){return anl.retry}});var cnl=Y3r();Object.defineProperty(Cn,"retryWhen",{enumerable:!0,get:function(){return cnl.retryWhen}});var lnl=awt();Object.defineProperty(Cn,"refCount",{enumerable:!0,get:function(){return lnl.refCount}});var unl=ORt();Object.defineProperty(Cn,"sample",{enumerable:!0,get:function(){return unl.sample}});var gnl=Q3r();Object.defineProperty(Cn,"sampleTime",{enumerable:!0,get:function(){return gnl.sampleTime}});var Anl=X3r();Object.defineProperty(Cn,"scan",{enumerable:!0,get:function(){return Anl.scan}});var dnl=J3r();Object.defineProperty(Cn,"sequenceEqual",{enumerable:!0,get:function(){return dnl.sequenceEqual}});var pnl=QRt();Object.defineProperty(Cn,"share",{enumerable:!0,get:function(){return pnl.share}});var fnl=K3r();Object.defineProperty(Cn,"shareReplay",{enumerable:!0,get:function(){return fnl.shareReplay}});var Inl=j3r();Object.defineProperty(Cn,"single",{enumerable:!0,get:function(){return Inl.single}});var hnl=z3r();Object.defineProperty(Cn,"skip",{enumerable:!0,get:function(){return hnl.skip}});var mnl=q3r();Object.defineProperty(Cn,"skipLast",{enumerable:!0,get:function(){return mnl.skipLast}});var Cnl=$3r();Object.defineProperty(Cn,"skipUntil",{enumerable:!0,get:function(){return Cnl.skipUntil}});var _nl=e5r();Object.defineProperty(Cn,"skipWhile",{enumerable:!0,get:function(){return _nl.skipWhile}});var ynl=t5r();Object.defineProperty(Cn,"startWith",{enumerable:!0,get:function(){return ynl.startWith}});var bnl=Mke();Object.defineProperty(Cn,"subscribeOn",{enumerable:!0,get:function(){return bnl.subscribeOn}});var Enl=r5r();Object.defineProperty(Cn,"switchAll",{enumerable:!0,get:function(){return Enl.switchAll}});var Snl=rxe();Object.defineProperty(Cn,"switchMap",{enumerable:!0,get:function(){return Snl.switchMap}});var vnl=n5r();Object.defineProperty(Cn,"switchMapTo",{enumerable:!0,get:function(){return vnl.switchMapTo}});var Bnl=i5r();Object.defineProperty(Cn,"switchScan",{enumerable:!0,get:function(){return Bnl.switchScan}});var wnl=qke();Object.defineProperty(Cn,"take",{enumerable:!0,get:function(){return wnl.take}});var Tnl=_Rt();Object.defineProperty(Cn,"takeLast",{enumerable:!0,get:function(){return Tnl.takeLast}});var Rnl=s5r();Object.defineProperty(Cn,"takeUntil",{enumerable:!0,get:function(){return Rnl.takeUntil}});var Nnl=o5r();Object.defineProperty(Cn,"takeWhile",{enumerable:!0,get:function(){return Nnl.takeWhile}});var Dnl=a5r();Object.defineProperty(Cn,"tap",{enumerable:!0,get:function(){return Dnl.tap}});var knl=aNt();Object.defineProperty(Cn,"throttle",{enumerable:!0,get:function(){return knl.throttle}});var xnl=c5r();Object.defineProperty(Cn,"throttleTime",{enumerable:!0,get:function(){return xnl.throttleTime}});var Gnl=$ke();Object.defineProperty(Cn,"throwIfEmpty",{enumerable:!0,get:function(){return Gnl.throwIfEmpty}});var Fnl=l5r();Object.defineProperty(Cn,"timeInterval",{enumerable:!0,get:function(){return Fnl.timeInterval}});var Znl=W8e();Object.defineProperty(Cn,"timeout",{enumerable:!0,get:function(){return Znl.timeout}});var Lnl=u5r();Object.defineProperty(Cn,"timeoutWith",{enumerable:!0,get:function(){return Lnl.timeoutWith}});var Vnl=g5r();Object.defineProperty(Cn,"timestamp",{enumerable:!0,get:function(){return Vnl.timestamp}});var Pnl=kTt();Object.defineProperty(Cn,"toArray",{enumerable:!0,get:function(){return Pnl.toArray}});var Wnl=A5r();Object.defineProperty(Cn,"window",{enumerable:!0,get:function(){return Wnl.window}});var Onl=d5r();Object.defineProperty(Cn,"windowCount",{enumerable:!0,get:function(){return Onl.windowCount}});var Mnl=p5r();Object.defineProperty(Cn,"windowTime",{enumerable:!0,get:function(){return Mnl.windowTime}});var Hnl=I5r();Object.defineProperty(Cn,"windowToggle",{enumerable:!0,get:function(){return Hnl.windowToggle}});var Ynl=h5r();Object.defineProperty(Cn,"windowWhen",{enumerable:!0,get:function(){return Ynl.windowWhen}});var Qnl=m5r();Object.defineProperty(Cn,"withLatestFrom",{enumerable:!0,get:function(){return Qnl.withLatestFrom}});var Xnl=C5r();Object.defineProperty(Cn,"zipAll",{enumerable:!0,get:function(){return Xnl.zipAll}});var Jnl=y5r();Object.defineProperty(Cn,"zipWith",{enumerable:!0,get:function(){return Jnl.zipWith}})});var gte=H(LV=>{"use strict";Object.defineProperty(LV,"__esModule",{value:!0});LV.PathIsFileException=LV.PathIsDirectoryException=LV.FileAlreadyExistException=LV.FileDoesNotExistException=LV.UnknownException=LV.BaseException=void 0;var Lle=class extends Error{constructor(t=""){super(t)}};LV.BaseException=Lle;var b5r=class extends Lle{constructor(t){super(t)}};LV.UnknownException=b5r;var E5r=class extends Lle{constructor(t){super(`Path "${t}" does not exist.`)}};LV.FileDoesNotExistException=E5r;var S5r=class extends Lle{constructor(t){super(`Path "${t}" already exist.`)}};LV.FileAlreadyExistException=S5r;var v5r=class extends Lle{constructor(t){super(`Path "${t}" is a directory.`)}};LV.PathIsDirectoryException=v5r;var B5r=class extends Lle{constructor(t){super(`Path "${t}" is a file.`)}};LV.PathIsFileException=B5r});var oes=H(__e=>{"use strict";Object.defineProperty(__e,"__esModule",{value:!0});__e.oneLine=Unl;__e.indentBy=Knl;__e.stripIndent=ses;__e.stripIndents=jnl;__e.trimNewlines=znl;function Unl(e,...t){return String.raw(e,...t).replace(/(?:\r?\n(?:\s*))+/gm," ").trim()}function Knl(e){let t="";for(;e--;)t+=" ";return(r,...n)=>t+ses(r,...n).replace(/\n/g,` +`+t)}function ses(e,...t){let r=String.raw(e,...t),n=r.match(/^[ \t]*(?=\S)/gm);if(n===null)return r;let a=Math.min(...n.map(l=>l.length)),o=new RegExp("^[ \\t]{"+a+"}","gm");return(a>0?r.replace(o,""):r).trim()}function jnl(e,...t){return String.raw(e,...t).split(` `).map(r=>r.trim()).join(` -`).trim()}function jnl(e,...t){return String.raw(e,...t).replace(/^(?:\r?\n)+/,"").replace(/(?:\r?\n(?:\s*))$/,"")}});var ues=H(Ate=>{"use strict";Object.defineProperty(Ate,"__esModule",{value:!0});Ate.decamelize=aes;Ate.dasherize=ril;Ate.camelize=ces;Ate.classify=nil;Ate.underscore=iil;Ate.capitalize=les;Ate.levenshtein=sil;var znl=/[ _]/g,qnl=/([a-z\d])([A-Z])/g,$nl=/(-|_|\.|\s)+(.)?/g,eil=/([a-z\d])([A-Z]+)/g,til=/-|\s+/g;function aes(e){return e.replace(qnl,"$1_$2").toLowerCase()}function ril(e){return aes(e).replace(znl,"-")}function ces(e){return e.replace($nl,(t,r,n)=>n?n.toUpperCase():"").replace(/^([A-Z])/,t=>t.toLowerCase())}function nil(e){return e.split(".").map(t=>les(ces(t))).join("")}function iil(e){return e.replace(eil,"$1_$2").replace(til,"_").toLowerCase()}function les(e){return e.charAt(0).toUpperCase()+e.slice(1)}function sil(e,t){if(e.length==0)return t.length;if(t.length==0)return e.length;let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=t.length;n++)for(let a=1;a<=e.length;a++)t.charAt(n-1)==e.charAt(a-1)?r[n][a]=r[n-1][a-1]:r[n][a]=Math.min(r[n-1][a-1]+1,r[n][a-1]+1,r[n-1][a]+1);return r[t.length][e.length]}});var ges=H(T5r=>{"use strict";Object.defineProperty(T5r,"__esModule",{value:!0});T5r.deepCopy=w5r;var fNt=Symbol();function w5r(e){if(Array.isArray(e))return e.map(t=>w5r(t));if(e&&typeof e=="object"){let t=e;if(t[fNt])return t[fNt];if(t.toJSON)return JSON.parse(t.toJSON());let r=Object.create(Object.getPrototypeOf(t));t[fNt]=r;for(let n of Object.getOwnPropertyNames(t))r[n]=w5r(t[n]);return delete t[fNt],r}else return e}});var pes=H(des=>{var Aes="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");des.encode=function(e){if(0<=e&&e{var oil=pes(),fes=5,Ies=1<>>=fes,a>0&&(n|=cil),r+=oil.encode(n);while(a>0);return r}});var J8e=H(UG=>{function uil(e,t,r){if(t in e)return e[t];if(arguments.length===3)return r;throw new Error('"'+t+'" is a required argument.')}UG.getArg=uil;var mes=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,gil=/^data:.+\,.+$/;function X8e(e){let t=e.match(mes);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}UG.urlParse=X8e;function oxe(e){let t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}UG.urlGenerate=oxe;var Ail=32;function dil(e){let t=[];return function(r){for(let a=0;aAil&&t.pop(),n}}var N5r=dil(function(t){let r=t,n=X8e(t);if(n){if(!n.path)return t;r=n.path}let a=UG.isAbsolute(r),o=[],l=0,A=0;for(;;)if(l=A,A=r.indexOf("/",l),A===-1){o.push(r.slice(l));break}else for(o.push(r.slice(l,A));A=0;A--){let I=o[A];I==="."?o.splice(A,1):I===".."?f++:f>0&&(I===""?(o.splice(A+1,f),f=0):(o.splice(A,2),f--))}return r=o.join("/"),r===""&&(r=a?"/":"."),n?(n.path=r,oxe(n)):r});UG.normalize=N5r;function Ces(e,t){e===""&&(e="."),t===""&&(t=".");let r=X8e(t),n=X8e(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),oxe(r);if(r||t.match(gil))return t;if(n&&!n.host&&!n.path)return n.host=t,oxe(n);let a=t.charAt(0)==="/"?t:N5r(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=a,oxe(n)):a}UG.join=Ces;UG.isAbsolute=function(e){return e.charAt(0)==="/"||mes.test(e)};function pil(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");let r=0;for(;t.indexOf(e+"/")!==0;){let n=e.lastIndexOf("/");if(n<0||(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/)))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}UG.relative=pil;var _es=function(){return!("__proto__"in Object.create(null))}();function yes(e){return e}function fil(e){return bes(e)?"$"+e:e}UG.toSetString=_es?yes:fil;function Iil(e){return bes(e)?e.slice(1):e}UG.fromSetString=_es?yes:Iil;function bes(e){if(!e)return!1;let t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(let r=t-10;r>=0;r--)if(e.charCodeAt(r)!==36)return!1;return!0}function hil(e,t,r){let n=axe(e.source,t.source);return n!==0||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:axe(e.name,t.name)}UG.compareByOriginalPositions=hil;function mil(e,t,r){let n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0||r)||(n=axe(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:axe(e.name,t.name)}UG.compareByGeneratedPositionsDeflated=mil;function axe(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function Cil(e,t){let r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=axe(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:axe(e.name,t.name)}UG.compareByGeneratedPositionsInflated=Cil;function _il(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}UG.parseSourceMapInput=_il;function yil(e,t,r){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),r){let n=X8e(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){let a=n.path.lastIndexOf("/");a>=0&&(n.path=n.path.substring(0,a+1))}t=Ces(oxe(n),t)}return N5r(t)}UG.computeSourceURL=yil});var k5r=H(Ees=>{var D5r=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){let n=new e;for(let a=0,o=t.length;a=0)return r;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&t{var Ses=J8e();function bil(e,t){let r=e.generatedLine,n=t.generatedLine,a=e.generatedColumn,o=t.generatedColumn;return n>r||n==r&&o>=a||Ses.compareByGeneratedPositionsInflated(e,t)<=0}var x5r=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(t,r){this._array.forEach(t,r)}add(t){bil(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(Ses.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};ves.MappingList=x5r});var G5r=H(wes=>{var U8e=R5r(),fT=J8e(),INt=k5r().ArraySet,Eil=Bes().MappingList,hNt=class e{constructor(t){t||(t={}),this._file=fT.getArg(t,"file",null),this._sourceRoot=fT.getArg(t,"sourceRoot",null),this._skipValidation=fT.getArg(t,"skipValidation",!1),this._sources=new INt,this._names=new INt,this._mappings=new Eil,this._sourcesContents=null}static fromSourceMap(t){let r=t.sourceRoot,n=new e({file:t.file,sourceRoot:r});return t.eachMapping(function(a){let o={generated:{line:a.generatedLine,column:a.generatedColumn}};a.source!=null&&(o.source=a.source,r!=null&&(o.source=fT.relative(r,o.source)),o.original={line:a.originalLine,column:a.originalColumn},a.name!=null&&(o.name=a.name)),n.addMapping(o)}),t.sources.forEach(function(a){let o=a;r!==null&&(o=fT.relative(r,a)),n._sources.has(o)||n._sources.add(o);let l=t.sourceContentFor(a);l!=null&&n.setSourceContent(a,l)}),n}addMapping(t){let r=fT.getArg(t,"generated"),n=fT.getArg(t,"original",null),a=fT.getArg(t,"source",null),o=fT.getArg(t,"name",null);this._skipValidation||this._validateMapping(r,n,a,o),a!=null&&(a=String(a),this._sources.has(a)||this._sources.add(a)),o!=null&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:a,name:o})}setSourceContent(t,r){let n=t;this._sourceRoot!=null&&(n=fT.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[fT.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[fT.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))}applySourceMap(t,r,n){let a=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);a=t.file}let o=this._sourceRoot;o!=null&&(a=fT.relative(o,a));let l=this._mappings.toArray().length>0?new INt:this._sources,A=new INt;this._mappings.unsortedForEach(function(f){if(f.source===a&&f.originalLine!=null){let b=t.originalPositionFor({line:f.originalLine,column:f.originalColumn});b.source!=null&&(f.source=b.source,n!=null&&(f.source=fT.join(n,f.source)),o!=null&&(f.source=fT.relative(o,f.source)),f.originalLine=b.line,f.originalColumn=b.column,b.name!=null&&(f.name=b.name))}let I=f.source;I!=null&&!l.has(I)&&l.add(I);let C=f.name;C!=null&&!A.has(C)&&A.add(C)},this),this._sources=l,this._names=A,t.sources.forEach(function(f){let I=t.sourceContentFor(f);I!=null&&(n!=null&&(f=fT.join(n,f)),o!=null&&(f=fT.relative(o,f)),this.setSourceContent(f,I))},this)}_validateMapping(t,r,n,a){if(r&&typeof r.line!="number"&&typeof r.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!r&&!n&&!a)){if(!(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:n,original:r,name:a}))}}_serializeMappings(){let t=0,r=1,n=0,a=0,o=0,l=0,A="",f,I,C,b,E=this._mappings.toArray();for(let N=0,B=E.length;N0){if(!fT.compareByGeneratedPositionsInflated(I,E[N-1]))continue;f+=","}f+=U8e.encode(I.generatedColumn-t),t=I.generatedColumn,I.source!=null&&(b=this._sources.indexOf(I.source),f+=U8e.encode(b-l),l=b,f+=U8e.encode(I.originalLine-1-a),a=I.originalLine-1,f+=U8e.encode(I.originalColumn-n),n=I.originalColumn,I.name!=null&&(C=this._names.indexOf(I.name),f+=U8e.encode(C-o),o=C)),A+=f}return A}_generateSourcesContent(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=fT.relative(r,n));let a=fT.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null},this)}toJSON(){let t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}};hNt.prototype._version=3;wes.SourceMapGenerator=hNt});var Tes=H(y_e=>{y_e.GREATEST_LOWER_BOUND=1;y_e.LEAST_UPPER_BOUND=2;function F5r(e,t,r,n,a,o){let l=Math.floor((t-e)/2)+e,A=a(r,n[l],!0);return A===0?l:A>0?t-l>1?F5r(l,t,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?t1?F5r(e,l,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?l:e<0?-1:e}y_e.search=function(t,r,n,a){if(r.length===0)return-1;let o=F5r(-1,r.length,t,r,n,a||y_e.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&n(r[o],r[o-1],!0)===0;)--o;return o}});var Z5r=H((X6u,K8e)=>{var Sil=function(){return typeof window<"u"&&this===window}.call();if(Sil){let e=null;K8e.exports=function(){if(typeof e=="string")return fetch(e).then(r=>r.arrayBuffer());if(e instanceof ArrayBuffer)return Promise.resolve(e);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},K8e.exports.initialize=t=>e=t}else{let e=wt("fs"),t=wt("path");K8e.exports=function(){return new Promise((n,a)=>{let o=t.join(__dirname,"mappings.wasm");e.readFile(o,null,(l,A)=>{if(l){a(l);return}n(A.buffer)})})},K8e.exports.initialize=r=>{console.debug("SourceMapConsumer.initialize is a no-op when running in node.js")}}});var Nes=H((J6u,Res)=>{var vil=Z5r();function Bil(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}var j8e=null;Res.exports=function(){if(j8e)return j8e;let t=[];return j8e=vil().then(r=>WebAssembly.instantiate(r,{env:{mapping_callback(n,a,o,l,A,f,I,C,b,E){let N=new Bil;N.generatedLine=n+1,N.generatedColumn=a,o&&(N.lastGeneratedColumn=l-1),A&&(N.source=f,N.originalLine=I+1,N.originalColumn=C,b&&(N.name=E)),t[t.length-1](N)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}})).then(r=>({exports:r.instance.exports,withMappingCallback:(n,a)=>{t.push(n);try{a()}finally{t.pop()}}})).then(null,r=>{throw j8e=null,r}),j8e}});var Des=H(_Nt=>{var Jd=J8e(),L5r=Tes(),mNt=k5r().ArraySet,U6u=R5r(),wil=Z5r(),Til=Nes(),V5r=Symbol("smcInternal"),Jv=class e{constructor(t,r){return t==V5r?Promise.resolve(this):Ril(t,r)}static initialize(t){wil.initialize(t["lib/mappings.wasm"])}static fromSourceMap(t,r){return Nil(t,r)}static async with(t,r,n){let a=await new e(t,r);try{return await n(a)}finally{a.destroy()}}_parseMappings(t,r){throw new Error("Subclasses must implement _parseMappings")}eachMapping(t,r,n){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(t){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};Jv.prototype._version=3;Jv.GENERATED_ORDER=1;Jv.ORIGINAL_ORDER=2;Jv.GREATEST_LOWER_BOUND=1;Jv.LEAST_UPPER_BOUND=2;_Nt.SourceMapConsumer=Jv;var cxe=class e extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sources"),A=Jd.getArg(a,"names",[]),f=Jd.getArg(a,"sourceRoot",null),I=Jd.getArg(a,"sourcesContent",null),C=Jd.getArg(a,"mappings"),b=Jd.getArg(a,"file",null);if(o!=n._version)throw new Error("Unsupported version: "+o);return f&&(f=Jd.normalize(f)),l=l.map(String).map(Jd.normalize).map(function(E){return f&&Jd.isAbsolute(f)&&Jd.isAbsolute(E)?Jd.relative(f,E):E}),n._names=mNt.fromArray(A.map(String),!0),n._sources=mNt.fromArray(l,!0),n._absoluteSources=n._sources.toArray().map(function(E){return Jd.computeSourceURL(f,E,r)}),n.sourceRoot=f,n.sourcesContent=I,n._mappings=C,n._sourceMapURL=r,n.file=b,n._computedColumnSpans=!1,n._mappingsPtr=0,n._wasm=null,Til().then(E=>(n._wasm=E,n))})}_findSourceIndex(t){let r=t;if(this.sourceRoot!=null&&(r=Jd.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(let n=0;n{A.source!==null&&(A.source=this._sources.at(A.source),A.source=Jd.computeSourceURL(l,A.source,this._sourceMapURL),A.name!==null&&(A.name=this._names.at(A.name))),t.call(a,A)},()=>{switch(o){case Jv.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case Jv.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}})}allGeneratedPositionsFor(t){let r=Jd.getArg(t,"source"),n=Jd.getArg(t,"line"),a=t.column||0;if(r=this._findSourceIndex(r),r<0)return[];if(n<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");let o=[];return this._wasm.withMappingCallback(l=>{let A=l.lastGeneratedColumn;this._computedColumnSpans&&A===null&&(A=1/0),o.push({line:l.generatedLine,column:l.generatedColumn,lastColumn:A})},()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),r,n-1,"column"in t,a)}),o}destroy(){this._mappingsPtr!==0&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(t){let r={generatedLine:Jd.getArg(t,"line"),generatedColumn:Jd.getArg(t,"column")};if(r.generatedLine<1)throw new Error("Line numbers must be >= 1");if(r.generatedColumn<0)throw new Error("Column numbers must be >= 0");let n=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);n==null&&(n=Jv.GREATEST_LOWER_BOUND);let a;if(this._wasm.withMappingCallback(o=>a=o,()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),r.generatedLine-1,r.generatedColumn,n)}),a&&a.generatedLine===r.generatedLine){let o=Jd.getArg(a,"source",null);o!==null&&(o=this._sources.at(o),o=Jd.computeSourceURL(this.sourceRoot,o,this._sourceMapURL));let l=Jd.getArg(a,"name",null);return l!==null&&(l=this._names.at(l)),{source:o,line:Jd.getArg(a,"originalLine",null),column:Jd.getArg(a,"originalColumn",null),name:l}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1}sourceContentFor(t,r){if(!this.sourcesContent)return null;let n=this._findSourceIndex(t);if(n>=0)return this.sourcesContent[n];let a=t;this.sourceRoot!=null&&(a=Jd.relative(this.sourceRoot,a));let o;if(this.sourceRoot!=null&&(o=Jd.urlParse(this.sourceRoot))){let l=a.replace(/^file:\/\//,"");if(o.scheme=="file"&&this._sources.has(l))return this.sourcesContent[this._sources.indexOf(l)];if((!o.path||o.path=="/")&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(r)return null;throw new Error('"'+a+'" is not in the SourceMap.')}generatedPositionFor(t){let r=Jd.getArg(t,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};let n={source:r,originalLine:Jd.getArg(t,"line"),originalColumn:Jd.getArg(t,"column")};if(n.originalLine<1)throw new Error("Line numbers must be >= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);a==null&&(a=Jv.GREATEST_LOWER_BOUND);let o;if(this._wasm.withMappingCallback(l=>o=l,()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),n.source,n.originalLine-1,n.originalColumn,a)}),o&&o.source===n.source){let l=o.lastGeneratedColumn;return this._computedColumnSpans&&l===null&&(l=1/0),{line:Jd.getArg(o,"generatedLine",null),column:Jd.getArg(o,"generatedColumn",null),lastColumn:l}}return{line:null,column:null,lastColumn:null}}};cxe.prototype.consumer=Jv;_Nt.BasicSourceMapConsumer=cxe;var CNt=class extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sections");if(o!=n._version)throw new Error("Unsupported version: "+o);n._sources=new mNt,n._names=new mNt,n.__generatedMappings=null,n.__originalMappings=null,n.__generatedMappingsUnsorted=null,n.__originalMappingsUnsorted=null;let A={line:-1,column:0};return Promise.all(l.map(f=>{if(f.url)throw new Error("Support for url field in sections not implemented.");let I=Jd.getArg(f,"offset"),C=Jd.getArg(I,"line"),b=Jd.getArg(I,"column");if(C({generatedOffset:{generatedLine:C+1,generatedColumn:b+1},consumer:N}))})).then(f=>(n._sections=f,n))})}get _generatedMappings(){return this.__generatedMappings||this._sortGeneratedMappings(),this.__generatedMappings}get _originalMappings(){return this.__originalMappings||this._sortOriginalMappings(),this.__originalMappings}get _generatedMappingsUnsorted(){return this.__generatedMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappingsUnsorted}get _originalMappingsUnsorted(){return this.__originalMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappingsUnsorted}_sortGeneratedMappings(){let t=this._generatedMappingsUnsorted;t.sort(Jd.compareByGeneratedPositionsDeflated),this.__generatedMappings=t}_sortOriginalMappings(){let t=this._originalMappingsUnsorted;t.sort(Jd.compareByOriginalPositions),this.__originalMappings=t}get sources(){let t=[];for(let r=0;rA.push(f));for(let f=0;f= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=[],o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",Jd.compareByOriginalPositions,L5r.LEAST_UPPER_BOUND);if(o>=0){let l=this._originalMappings[o];if(t.column===void 0){let A=l.originalLine;for(;l&&l.originalLine===A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}else{let A=l.originalColumn;for(;l&&l.originalLine===r&&l.originalColumn==A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}}return a}destroy(){for(let t=0;t{var Dil=G5r().SourceMapGenerator,yNt=J8e(),kil=/(\r?\n)/,xil=10,lxe="$$$isSourceNode$$$",P5r=class e{constructor(t,r,n,a,o){this.children=[],this.sourceContents={},this.line=t??null,this.column=r??null,this.source=n??null,this.name=o??null,this[lxe]=!0,a!=null&&this.add(a)}static fromStringWithSourceMap(t,r,n){let a=new e,o=t.split(kil),l=0,A=function(){let N=F(),B=F()||"";return N+B;function F(){return l=0;r--)this.prepend(t[r]);else if(t[lxe]||typeof t=="string")this.children.unshift(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this}walk(t){let r;for(let n=0,a=this.children.length;n0){for(r=[],n=0;n{bNt.SourceMapGenerator=G5r().SourceMapGenerator;bNt.SourceMapConsumer=Des().SourceMapConsumer;bNt.SourceNode=xes().SourceNode});var Les=H(ENt=>{"use strict";Object.defineProperty(ENt,"__esModule",{value:!0});ENt.templateParser=Zes;ENt.template=Wil;var iL=Ges(),Gil=/<%=([\s\S]+?)%>/g,Fil=/<%#([\s\S]+?)%>/g,Zil=/<%-([\s\S]+?)%>/g,Lil=/<%([\s\S]+?)%>/g,W5r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Fes=new RegExp(`[${Object.keys(W5r).join("")}]`,"g");function uxe(e,t){let r=1,n=0;for(let a=0;aC.source).join("|")+"|$","g"),o=e.split(a),l=0,A=uxe(e,l),f,I=n.length+1;for(let C=0;C{"use strict";Object.defineProperty(Ate,"__esModule",{value:!0});Ate.decamelize=aes;Ate.dasherize=nil;Ate.camelize=ces;Ate.classify=iil;Ate.underscore=sil;Ate.capitalize=les;Ate.levenshtein=oil;var qnl=/[ _]/g,$nl=/([a-z\d])([A-Z])/g,eil=/(-|_|\.|\s)+(.)?/g,til=/([a-z\d])([A-Z]+)/g,ril=/-|\s+/g;function aes(e){return e.replace($nl,"$1_$2").toLowerCase()}function nil(e){return aes(e).replace(qnl,"-")}function ces(e){return e.replace(eil,(t,r,n)=>n?n.toUpperCase():"").replace(/^([A-Z])/,t=>t.toLowerCase())}function iil(e){return e.split(".").map(t=>les(ces(t))).join("")}function sil(e){return e.replace(til,"$1_$2").replace(ril,"_").toLowerCase()}function les(e){return e.charAt(0).toUpperCase()+e.slice(1)}function oil(e,t){if(e.length==0)return t.length;if(t.length==0)return e.length;let r=[];for(let n=0;n<=t.length;n++)r[n]=[n];for(let n=0;n<=e.length;n++)r[0][n]=n;for(let n=1;n<=t.length;n++)for(let a=1;a<=e.length;a++)t.charAt(n-1)==e.charAt(a-1)?r[n][a]=r[n-1][a-1]:r[n][a]=Math.min(r[n-1][a-1]+1,r[n][a-1]+1,r[n-1][a]+1);return r[t.length][e.length]}});var ges=H(T5r=>{"use strict";Object.defineProperty(T5r,"__esModule",{value:!0});T5r.deepCopy=w5r;var fNt=Symbol();function w5r(e){if(Array.isArray(e))return e.map(t=>w5r(t));if(e&&typeof e=="object"){let t=e;if(t[fNt])return t[fNt];if(t.toJSON)return JSON.parse(t.toJSON());let r=Object.create(Object.getPrototypeOf(t));t[fNt]=r;for(let n of Object.getOwnPropertyNames(t))r[n]=w5r(t[n]);return delete t[fNt],r}else return e}});var pes=H(des=>{var Aes="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");des.encode=function(e){if(0<=e&&e{var ail=pes(),fes=5,Ies=1<>>=fes,a>0&&(n|=lil),r+=ail.encode(n);while(a>0);return r}});var J8e=H(UG=>{function gil(e,t,r){if(t in e)return e[t];if(arguments.length===3)return r;throw new Error('"'+t+'" is a required argument.')}UG.getArg=gil;var mes=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,Ail=/^data:.+\,.+$/;function X8e(e){let t=e.match(mes);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}UG.urlParse=X8e;function oxe(e){let t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}UG.urlGenerate=oxe;var dil=32;function pil(e){let t=[];return function(r){for(let a=0;adil&&t.pop(),n}}var N5r=pil(function(t){let r=t,n=X8e(t);if(n){if(!n.path)return t;r=n.path}let a=UG.isAbsolute(r),o=[],l=0,A=0;for(;;)if(l=A,A=r.indexOf("/",l),A===-1){o.push(r.slice(l));break}else for(o.push(r.slice(l,A));A=0;A--){let I=o[A];I==="."?o.splice(A,1):I===".."?f++:f>0&&(I===""?(o.splice(A+1,f),f=0):(o.splice(A,2),f--))}return r=o.join("/"),r===""&&(r=a?"/":"."),n?(n.path=r,oxe(n)):r});UG.normalize=N5r;function Ces(e,t){e===""&&(e="."),t===""&&(t=".");let r=X8e(t),n=X8e(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),oxe(r);if(r||t.match(Ail))return t;if(n&&!n.host&&!n.path)return n.host=t,oxe(n);let a=t.charAt(0)==="/"?t:N5r(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=a,oxe(n)):a}UG.join=Ces;UG.isAbsolute=function(e){return e.charAt(0)==="/"||mes.test(e)};function fil(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");let r=0;for(;t.indexOf(e+"/")!==0;){let n=e.lastIndexOf("/");if(n<0||(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/)))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)}UG.relative=fil;var _es=function(){return!("__proto__"in Object.create(null))}();function yes(e){return e}function Iil(e){return bes(e)?"$"+e:e}UG.toSetString=_es?yes:Iil;function hil(e){return bes(e)?e.slice(1):e}UG.fromSetString=_es?yes:hil;function bes(e){if(!e)return!1;let t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return!1;for(let r=t-10;r>=0;r--)if(e.charCodeAt(r)!==36)return!1;return!0}function mil(e,t,r){let n=axe(e.source,t.source);return n!==0||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:axe(e.name,t.name)}UG.compareByOriginalPositions=mil;function Cil(e,t,r){let n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0||r)||(n=axe(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:axe(e.name,t.name)}UG.compareByGeneratedPositionsDeflated=Cil;function axe(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function _il(e,t){let r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=axe(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:axe(e.name,t.name)}UG.compareByGeneratedPositionsInflated=_il;function yil(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}UG.parseSourceMapInput=yil;function bil(e,t,r){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),r){let n=X8e(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){let a=n.path.lastIndexOf("/");a>=0&&(n.path=n.path.substring(0,a+1))}t=Ces(oxe(n),t)}return N5r(t)}UG.computeSourceURL=bil});var k5r=H(Ees=>{var D5r=class e{constructor(){this._array=[],this._set=new Map}static fromArray(t,r){let n=new e;for(let a=0,o=t.length;a=0)return r;throw new Error('"'+t+'" is not in the set.')}at(t){if(t>=0&&t{var Ses=J8e();function Eil(e,t){let r=e.generatedLine,n=t.generatedLine,a=e.generatedColumn,o=t.generatedColumn;return n>r||n==r&&o>=a||Ses.compareByGeneratedPositionsInflated(e,t)<=0}var x5r=class{constructor(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}unsortedForEach(t,r){this._array.forEach(t,r)}add(t){Eil(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))}toArray(){return this._sorted||(this._array.sort(Ses.compareByGeneratedPositionsInflated),this._sorted=!0),this._array}};ves.MappingList=x5r});var G5r=H(wes=>{var U8e=R5r(),fT=J8e(),INt=k5r().ArraySet,Sil=Bes().MappingList,hNt=class e{constructor(t){t||(t={}),this._file=fT.getArg(t,"file",null),this._sourceRoot=fT.getArg(t,"sourceRoot",null),this._skipValidation=fT.getArg(t,"skipValidation",!1),this._sources=new INt,this._names=new INt,this._mappings=new Sil,this._sourcesContents=null}static fromSourceMap(t){let r=t.sourceRoot,n=new e({file:t.file,sourceRoot:r});return t.eachMapping(function(a){let o={generated:{line:a.generatedLine,column:a.generatedColumn}};a.source!=null&&(o.source=a.source,r!=null&&(o.source=fT.relative(r,o.source)),o.original={line:a.originalLine,column:a.originalColumn},a.name!=null&&(o.name=a.name)),n.addMapping(o)}),t.sources.forEach(function(a){let o=a;r!==null&&(o=fT.relative(r,a)),n._sources.has(o)||n._sources.add(o);let l=t.sourceContentFor(a);l!=null&&n.setSourceContent(a,l)}),n}addMapping(t){let r=fT.getArg(t,"generated"),n=fT.getArg(t,"original",null),a=fT.getArg(t,"source",null),o=fT.getArg(t,"name",null);this._skipValidation||this._validateMapping(r,n,a,o),a!=null&&(a=String(a),this._sources.has(a)||this._sources.add(a)),o!=null&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:a,name:o})}setSourceContent(t,r){let n=t;this._sourceRoot!=null&&(n=fT.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[fT.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[fT.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null))}applySourceMap(t,r,n){let a=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);a=t.file}let o=this._sourceRoot;o!=null&&(a=fT.relative(o,a));let l=this._mappings.toArray().length>0?new INt:this._sources,A=new INt;this._mappings.unsortedForEach(function(f){if(f.source===a&&f.originalLine!=null){let b=t.originalPositionFor({line:f.originalLine,column:f.originalColumn});b.source!=null&&(f.source=b.source,n!=null&&(f.source=fT.join(n,f.source)),o!=null&&(f.source=fT.relative(o,f.source)),f.originalLine=b.line,f.originalColumn=b.column,b.name!=null&&(f.name=b.name))}let I=f.source;I!=null&&!l.has(I)&&l.add(I);let C=f.name;C!=null&&!A.has(C)&&A.add(C)},this),this._sources=l,this._names=A,t.sources.forEach(function(f){let I=t.sourceContentFor(f);I!=null&&(n!=null&&(f=fT.join(n,f)),o!=null&&(f=fT.relative(o,f)),this.setSourceContent(f,I))},this)}_validateMapping(t,r,n,a){if(r&&typeof r.line!="number"&&typeof r.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!r&&!n&&!a)){if(!(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:n,original:r,name:a}))}}_serializeMappings(){let t=0,r=1,n=0,a=0,o=0,l=0,A="",f,I,C,b,E=this._mappings.toArray();for(let N=0,B=E.length;N0){if(!fT.compareByGeneratedPositionsInflated(I,E[N-1]))continue;f+=","}f+=U8e.encode(I.generatedColumn-t),t=I.generatedColumn,I.source!=null&&(b=this._sources.indexOf(I.source),f+=U8e.encode(b-l),l=b,f+=U8e.encode(I.originalLine-1-a),a=I.originalLine-1,f+=U8e.encode(I.originalColumn-n),n=I.originalColumn,I.name!=null&&(C=this._names.indexOf(I.name),f+=U8e.encode(C-o),o=C)),A+=f}return A}_generateSourcesContent(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=fT.relative(r,n));let a=fT.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null},this)}toJSON(){let t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t}toString(){return JSON.stringify(this.toJSON())}};hNt.prototype._version=3;wes.SourceMapGenerator=hNt});var Tes=H(y_e=>{y_e.GREATEST_LOWER_BOUND=1;y_e.LEAST_UPPER_BOUND=2;function F5r(e,t,r,n,a,o){let l=Math.floor((t-e)/2)+e,A=a(r,n[l],!0);return A===0?l:A>0?t-l>1?F5r(l,t,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?t1?F5r(e,l,r,n,a,o):o==y_e.LEAST_UPPER_BOUND?l:e<0?-1:e}y_e.search=function(t,r,n,a){if(r.length===0)return-1;let o=F5r(-1,r.length,t,r,n,a||y_e.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&n(r[o],r[o-1],!0)===0;)--o;return o}});var Z5r=H((J6u,K8e)=>{var vil=function(){return typeof window<"u"&&this===window}.call();if(vil){let e=null;K8e.exports=function(){if(typeof e=="string")return fetch(e).then(r=>r.arrayBuffer());if(e instanceof ArrayBuffer)return Promise.resolve(e);throw new Error("You must provide the string URL or ArrayBuffer contents of lib/mappings.wasm by calling SourceMapConsumer.initialize({ 'lib/mappings.wasm': ... }) before using SourceMapConsumer")},K8e.exports.initialize=t=>e=t}else{let e=wt("fs"),t=wt("path");K8e.exports=function(){return new Promise((n,a)=>{let o=t.join(__dirname,"mappings.wasm");e.readFile(o,null,(l,A)=>{if(l){a(l);return}n(A.buffer)})})},K8e.exports.initialize=r=>{console.debug("SourceMapConsumer.initialize is a no-op when running in node.js")}}});var Nes=H((U6u,Res)=>{var Bil=Z5r();function wil(){this.generatedLine=0,this.generatedColumn=0,this.lastGeneratedColumn=null,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}var j8e=null;Res.exports=function(){if(j8e)return j8e;let t=[];return j8e=Bil().then(r=>WebAssembly.instantiate(r,{env:{mapping_callback(n,a,o,l,A,f,I,C,b,E){let N=new wil;N.generatedLine=n+1,N.generatedColumn=a,o&&(N.lastGeneratedColumn=l-1),A&&(N.source=f,N.originalLine=I+1,N.originalColumn=C,b&&(N.name=E)),t[t.length-1](N)},start_all_generated_locations_for(){console.time("all_generated_locations_for")},end_all_generated_locations_for(){console.timeEnd("all_generated_locations_for")},start_compute_column_spans(){console.time("compute_column_spans")},end_compute_column_spans(){console.timeEnd("compute_column_spans")},start_generated_location_for(){console.time("generated_location_for")},end_generated_location_for(){console.timeEnd("generated_location_for")},start_original_location_for(){console.time("original_location_for")},end_original_location_for(){console.timeEnd("original_location_for")},start_parse_mappings(){console.time("parse_mappings")},end_parse_mappings(){console.timeEnd("parse_mappings")},start_sort_by_generated_location(){console.time("sort_by_generated_location")},end_sort_by_generated_location(){console.timeEnd("sort_by_generated_location")},start_sort_by_original_location(){console.time("sort_by_original_location")},end_sort_by_original_location(){console.timeEnd("sort_by_original_location")}}})).then(r=>({exports:r.instance.exports,withMappingCallback:(n,a)=>{t.push(n);try{a()}finally{t.pop()}}})).then(null,r=>{throw j8e=null,r}),j8e}});var Des=H(_Nt=>{var Jd=J8e(),L5r=Tes(),mNt=k5r().ArraySet,K6u=R5r(),Til=Z5r(),Ril=Nes(),V5r=Symbol("smcInternal"),Jv=class e{constructor(t,r){return t==V5r?Promise.resolve(this):Nil(t,r)}static initialize(t){Til.initialize(t["lib/mappings.wasm"])}static fromSourceMap(t,r){return Dil(t,r)}static async with(t,r,n){let a=await new e(t,r);try{return await n(a)}finally{a.destroy()}}_parseMappings(t,r){throw new Error("Subclasses must implement _parseMappings")}eachMapping(t,r,n){throw new Error("Subclasses must implement eachMapping")}allGeneratedPositionsFor(t){throw new Error("Subclasses must implement allGeneratedPositionsFor")}destroy(){throw new Error("Subclasses must implement destroy")}};Jv.prototype._version=3;Jv.GENERATED_ORDER=1;Jv.ORIGINAL_ORDER=2;Jv.GREATEST_LOWER_BOUND=1;Jv.LEAST_UPPER_BOUND=2;_Nt.SourceMapConsumer=Jv;var cxe=class e extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sources"),A=Jd.getArg(a,"names",[]),f=Jd.getArg(a,"sourceRoot",null),I=Jd.getArg(a,"sourcesContent",null),C=Jd.getArg(a,"mappings"),b=Jd.getArg(a,"file",null);if(o!=n._version)throw new Error("Unsupported version: "+o);return f&&(f=Jd.normalize(f)),l=l.map(String).map(Jd.normalize).map(function(E){return f&&Jd.isAbsolute(f)&&Jd.isAbsolute(E)?Jd.relative(f,E):E}),n._names=mNt.fromArray(A.map(String),!0),n._sources=mNt.fromArray(l,!0),n._absoluteSources=n._sources.toArray().map(function(E){return Jd.computeSourceURL(f,E,r)}),n.sourceRoot=f,n.sourcesContent=I,n._mappings=C,n._sourceMapURL=r,n.file=b,n._computedColumnSpans=!1,n._mappingsPtr=0,n._wasm=null,Ril().then(E=>(n._wasm=E,n))})}_findSourceIndex(t){let r=t;if(this.sourceRoot!=null&&(r=Jd.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(let n=0;n{A.source!==null&&(A.source=this._sources.at(A.source),A.source=Jd.computeSourceURL(l,A.source,this._sourceMapURL),A.name!==null&&(A.name=this._names.at(A.name))),t.call(a,A)},()=>{switch(o){case Jv.GENERATED_ORDER:this._wasm.exports.by_generated_location(this._getMappingsPtr());break;case Jv.ORIGINAL_ORDER:this._wasm.exports.by_original_location(this._getMappingsPtr());break;default:throw new Error("Unknown order of iteration.")}})}allGeneratedPositionsFor(t){let r=Jd.getArg(t,"source"),n=Jd.getArg(t,"line"),a=t.column||0;if(r=this._findSourceIndex(r),r<0)return[];if(n<1)throw new Error("Line numbers must be >= 1");if(a<0)throw new Error("Column numbers must be >= 0");let o=[];return this._wasm.withMappingCallback(l=>{let A=l.lastGeneratedColumn;this._computedColumnSpans&&A===null&&(A=1/0),o.push({line:l.generatedLine,column:l.generatedColumn,lastColumn:A})},()=>{this._wasm.exports.all_generated_locations_for(this._getMappingsPtr(),r,n-1,"column"in t,a)}),o}destroy(){this._mappingsPtr!==0&&(this._wasm.exports.free_mappings(this._mappingsPtr),this._mappingsPtr=0)}computeColumnSpans(){this._computedColumnSpans||(this._wasm.exports.compute_column_spans(this._getMappingsPtr()),this._computedColumnSpans=!0)}originalPositionFor(t){let r={generatedLine:Jd.getArg(t,"line"),generatedColumn:Jd.getArg(t,"column")};if(r.generatedLine<1)throw new Error("Line numbers must be >= 1");if(r.generatedColumn<0)throw new Error("Column numbers must be >= 0");let n=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);n==null&&(n=Jv.GREATEST_LOWER_BOUND);let a;if(this._wasm.withMappingCallback(o=>a=o,()=>{this._wasm.exports.original_location_for(this._getMappingsPtr(),r.generatedLine-1,r.generatedColumn,n)}),a&&a.generatedLine===r.generatedLine){let o=Jd.getArg(a,"source",null);o!==null&&(o=this._sources.at(o),o=Jd.computeSourceURL(this.sourceRoot,o,this._sourceMapURL));let l=Jd.getArg(a,"name",null);return l!==null&&(l=this._names.at(l)),{source:o,line:Jd.getArg(a,"originalLine",null),column:Jd.getArg(a,"originalColumn",null),name:l}}return{source:null,line:null,column:null,name:null}}hasContentsOfAllSources(){return this.sourcesContent?this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(t){return t==null}):!1}sourceContentFor(t,r){if(!this.sourcesContent)return null;let n=this._findSourceIndex(t);if(n>=0)return this.sourcesContent[n];let a=t;this.sourceRoot!=null&&(a=Jd.relative(this.sourceRoot,a));let o;if(this.sourceRoot!=null&&(o=Jd.urlParse(this.sourceRoot))){let l=a.replace(/^file:\/\//,"");if(o.scheme=="file"&&this._sources.has(l))return this.sourcesContent[this._sources.indexOf(l)];if((!o.path||o.path=="/")&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(r)return null;throw new Error('"'+a+'" is not in the SourceMap.')}generatedPositionFor(t){let r=Jd.getArg(t,"source");if(r=this._findSourceIndex(r),r<0)return{line:null,column:null,lastColumn:null};let n={source:r,originalLine:Jd.getArg(t,"line"),originalColumn:Jd.getArg(t,"column")};if(n.originalLine<1)throw new Error("Line numbers must be >= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=Jd.getArg(t,"bias",Jv.GREATEST_LOWER_BOUND);a==null&&(a=Jv.GREATEST_LOWER_BOUND);let o;if(this._wasm.withMappingCallback(l=>o=l,()=>{this._wasm.exports.generated_location_for(this._getMappingsPtr(),n.source,n.originalLine-1,n.originalColumn,a)}),o&&o.source===n.source){let l=o.lastGeneratedColumn;return this._computedColumnSpans&&l===null&&(l=1/0),{line:Jd.getArg(o,"generatedLine",null),column:Jd.getArg(o,"generatedColumn",null),lastColumn:l}}return{line:null,column:null,lastColumn:null}}};cxe.prototype.consumer=Jv;_Nt.BasicSourceMapConsumer=cxe;var CNt=class extends Jv{constructor(t,r){return super(V5r).then(n=>{let a=t;typeof t=="string"&&(a=Jd.parseSourceMapInput(t));let o=Jd.getArg(a,"version"),l=Jd.getArg(a,"sections");if(o!=n._version)throw new Error("Unsupported version: "+o);n._sources=new mNt,n._names=new mNt,n.__generatedMappings=null,n.__originalMappings=null,n.__generatedMappingsUnsorted=null,n.__originalMappingsUnsorted=null;let A={line:-1,column:0};return Promise.all(l.map(f=>{if(f.url)throw new Error("Support for url field in sections not implemented.");let I=Jd.getArg(f,"offset"),C=Jd.getArg(I,"line"),b=Jd.getArg(I,"column");if(C({generatedOffset:{generatedLine:C+1,generatedColumn:b+1},consumer:N}))})).then(f=>(n._sections=f,n))})}get _generatedMappings(){return this.__generatedMappings||this._sortGeneratedMappings(),this.__generatedMappings}get _originalMappings(){return this.__originalMappings||this._sortOriginalMappings(),this.__originalMappings}get _generatedMappingsUnsorted(){return this.__generatedMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappingsUnsorted}get _originalMappingsUnsorted(){return this.__originalMappingsUnsorted||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappingsUnsorted}_sortGeneratedMappings(){let t=this._generatedMappingsUnsorted;t.sort(Jd.compareByGeneratedPositionsDeflated),this.__generatedMappings=t}_sortOriginalMappings(){let t=this._originalMappingsUnsorted;t.sort(Jd.compareByOriginalPositions),this.__originalMappings=t}get sources(){let t=[];for(let r=0;rA.push(f));for(let f=0;f= 1");if(n.originalColumn<0)throw new Error("Column numbers must be >= 0");let a=[],o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",Jd.compareByOriginalPositions,L5r.LEAST_UPPER_BOUND);if(o>=0){let l=this._originalMappings[o];if(t.column===void 0){let A=l.originalLine;for(;l&&l.originalLine===A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}else{let A=l.originalColumn;for(;l&&l.originalLine===r&&l.originalColumn==A;){let f=l.lastGeneratedColumn;this._computedColumnSpans&&f===null&&(f=1/0),a.push({line:Jd.getArg(l,"generatedLine",null),column:Jd.getArg(l,"generatedColumn",null),lastColumn:f}),l=this._originalMappings[++o]}}}return a}destroy(){for(let t=0;t{var kil=G5r().SourceMapGenerator,yNt=J8e(),xil=/(\r?\n)/,Gil=10,lxe="$$$isSourceNode$$$",P5r=class e{constructor(t,r,n,a,o){this.children=[],this.sourceContents={},this.line=t??null,this.column=r??null,this.source=n??null,this.name=o??null,this[lxe]=!0,a!=null&&this.add(a)}static fromStringWithSourceMap(t,r,n){let a=new e,o=t.split(xil),l=0,A=function(){let N=F(),B=F()||"";return N+B;function F(){return l=0;r--)this.prepend(t[r]);else if(t[lxe]||typeof t=="string")this.children.unshift(t);else throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+t);return this}walk(t){let r;for(let n=0,a=this.children.length;n0){for(r=[],n=0;n{bNt.SourceMapGenerator=G5r().SourceMapGenerator;bNt.SourceMapConsumer=Des().SourceMapConsumer;bNt.SourceNode=xes().SourceNode});var Les=H(ENt=>{"use strict";Object.defineProperty(ENt,"__esModule",{value:!0});ENt.templateParser=Zes;ENt.template=Oil;var iL=Ges(),Fil=/<%=([\s\S]+?)%>/g,Zil=/<%#([\s\S]+?)%>/g,Lil=/<%-([\s\S]+?)%>/g,Vil=/<%([\s\S]+?)%>/g,W5r={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},Fes=new RegExp(`[${Object.keys(W5r).join("")}]`,"g");function uxe(e,t){let r=1,n=0;for(let a=0;aC.source).join("|")+"|$","g"),o=e.split(a),l=0,A=uxe(e,l),f,I=n.length+1;for(let C=0;C{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0});Vle.PartiallyOrderedSet=Vle.CircularDependencyFoundException=Vle.DependencyNotFoundException=void 0;var Ves=gte(),SNt=class extends Ves.BaseException{constructor(){super("One of the dependencies is not part of the set.")}};Vle.DependencyNotFoundException=SNt;var z8e=class extends Ves.BaseException{constructor(){super("Circular dependencies found.")}};Vle.CircularDependencyFoundException=z8e;var O5r=class{_items=new Map;_checkCircularDependencies(t,r){if(r.has(t))throw new z8e;r.forEach(n=>this._checkCircularDependencies(t,this._items.get(n)||new Set))}clear(){this._items.clear()}has(t){return this._items.has(t)}get size(){return this._items.size}forEach(t,r){for(let n of this)t.call(r,n,n,this)}*entries(){for(let t of this)yield[t,t]}keys(){return this.values()}values(){return this[Symbol.iterator]()}add(t,r=new Set){if(Array.isArray(r)&&(r=new Set(r)),this._items.has(t)){let n=this._items.get(t)||new Set,a=!0;for(let o of r)if(!n.has(o)){a=!1;break}if(a){for(let o of n)if(!r.has(o)){a=!1;break}}if(a)return this;this._items.delete(t)}for(let n of r)if(!this._items.has(n))throw new SNt;return this._checkCircularDependencies(t,r),this._items.set(t,new Set(r)),this}delete(t){return this._items.has(t)?(this._items.forEach(r=>r.delete(t)),this._items.delete(t)):!1}*[Symbol.iterator](){let t=new Map(this._items);for(let[r,n]of t.entries())t.set(r,new Set(n));for(;t.size>0;){let r=[];for(let[n,a]of t.entries())a.size==0&&r.push(n);for(let n of r)t.forEach(a=>a.delete(n)),t.delete(n),yield n;if(r.length==0)throw new z8e}}get[Symbol.toStringTag](){return"Set"}};Vle.PartiallyOrderedSet=O5r});var Wes=H(vNt=>{"use strict";Object.defineProperty(vNt,"__esModule",{value:!0});vNt.PriorityQueue=void 0;var M5r=class{_comparator;_items=new Array;constructor(t){this._comparator=t}clear(){this._items=new Array}push(t){let r=this._items.findIndex(n=>this._comparator(t,n)<=0);r===-1?this._items.push(t):this._items.splice(r,0,t)}pop(){if(this._items.length!==0)return this._items.splice(0,1)[0]}peek(){if(this._items.length!==0)return this._items[0]}get size(){return this._items.length}toArray(){return this._items.slice()}};vNt.PriorityQueue=M5r});var Oes=H(H5r=>{"use strict";Object.defineProperty(H5r,"__esModule",{value:!0});H5r.isPromise=Oil;function Oil(e){return!!e&&typeof e.then=="function"}});var Y5r=H(ZR=>{"use strict";var Mes=ZR&&ZR.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Mil=ZR&&ZR.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hes=ZR&&ZR.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(BNt,"__esModule",{value:!0});BNt.visitJson=Qil;BNt.visitJsonSchema=Xil;var KG=qb(),Ple=oPr();function Yes(e,t){if(!(typeof e!="object"||e===null)){if(typeof e.properties=="object"||e.type=="object")return typeof e.properties=="object"&&typeof e.properties[t]=="object"?e.properties[t]:typeof e.additionalProperties=="object"?e.additionalProperties:void 0;if(typeof e.items=="object"||e.type=="array")return typeof e.items=="object"?e.items:void 0}}function Q5r(e,t,r,n,a,o,l){if((n===!0||n===!1)&&(n=void 0),n&&n.hasOwnProperty("$ref")&&typeof n.$ref=="string"&&a){let f=a(n.$ref,o);n=f.schema,o=f.context}let A=t(e,r,n,l);return((0,KG.isObservable)(A)?A:(0,KG.of)(A)).pipe((0,KG.concatMap)(f=>Array.isArray(f)?(0,KG.concat)((0,KG.from)(f).pipe((0,KG.mergeMap)((I,C)=>Q5r(I,t,(0,Ple.joinJsonPointer)(r,""+C),Yes(n,""+C),a,o,l||f).pipe((0,KG.tap)(b=>f[C]=b))),(0,KG.ignoreElements)()),(0,KG.of)(f)):typeof f=="object"&&f!==null?(0,KG.concat)((0,KG.from)(Object.getOwnPropertyNames(f)).pipe((0,KG.mergeMap)(I=>Q5r(f[I],t,(0,Ple.joinJsonPointer)(r,I),Yes(n,I),a,o,l||f).pipe((0,KG.tap)(C=>{let b=Object.getOwnPropertyDescriptor(f,I);b&&b.writable&&f[I]!==C&&(f[I]=C)}))),(0,KG.ignoreElements)()),(0,KG.of)(f)):(0,KG.of)(f)))}function Qil(e,t,r,n,a){return Q5r(e,t,(0,Ple.buildJsonPointer)([]),r,n,a)}function Xil(e,t){if(e===!1||e===!0)return;let r={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a={definitions:!0,properties:!0,patternProperties:!0,additionalProperties:!0,dependencies:!0,items:!0};function o(l,A,f,I,C){if(l&&typeof l=="object"&&!Array.isArray(l)){t(l,A,I,C);for(let b of Object.keys(l)){let E=l[b];if(b in a){if(E&&typeof E=="object")for(let N of Object.keys(E))o(E[N],(0,Ple.joinJsonPointer)(A,b,N),f,l,N)}else if(b in r)o(E,(0,Ple.joinJsonPointer)(A,b),f,l,b);else if(b in n){if(Array.isArray(E))for(let N=0;N{"use strict";var Jil=VV&&VV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Uil=VV&&VV.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),z5r=VV&&VV.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0});Vle.PartiallyOrderedSet=Vle.CircularDependencyFoundException=Vle.DependencyNotFoundException=void 0;var Ves=gte(),SNt=class extends Ves.BaseException{constructor(){super("One of the dependencies is not part of the set.")}};Vle.DependencyNotFoundException=SNt;var z8e=class extends Ves.BaseException{constructor(){super("Circular dependencies found.")}};Vle.CircularDependencyFoundException=z8e;var O5r=class{_items=new Map;_checkCircularDependencies(t,r){if(r.has(t))throw new z8e;r.forEach(n=>this._checkCircularDependencies(t,this._items.get(n)||new Set))}clear(){this._items.clear()}has(t){return this._items.has(t)}get size(){return this._items.size}forEach(t,r){for(let n of this)t.call(r,n,n,this)}*entries(){for(let t of this)yield[t,t]}keys(){return this.values()}values(){return this[Symbol.iterator]()}add(t,r=new Set){if(Array.isArray(r)&&(r=new Set(r)),this._items.has(t)){let n=this._items.get(t)||new Set,a=!0;for(let o of r)if(!n.has(o)){a=!1;break}if(a){for(let o of n)if(!r.has(o)){a=!1;break}}if(a)return this;this._items.delete(t)}for(let n of r)if(!this._items.has(n))throw new SNt;return this._checkCircularDependencies(t,r),this._items.set(t,new Set(r)),this}delete(t){return this._items.has(t)?(this._items.forEach(r=>r.delete(t)),this._items.delete(t)):!1}*[Symbol.iterator](){let t=new Map(this._items);for(let[r,n]of t.entries())t.set(r,new Set(n));for(;t.size>0;){let r=[];for(let[n,a]of t.entries())a.size==0&&r.push(n);for(let n of r)t.forEach(a=>a.delete(n)),t.delete(n),yield n;if(r.length==0)throw new z8e}}get[Symbol.toStringTag](){return"Set"}};Vle.PartiallyOrderedSet=O5r});var Wes=H(vNt=>{"use strict";Object.defineProperty(vNt,"__esModule",{value:!0});vNt.PriorityQueue=void 0;var M5r=class{_comparator;_items=new Array;constructor(t){this._comparator=t}clear(){this._items=new Array}push(t){let r=this._items.findIndex(n=>this._comparator(t,n)<=0);r===-1?this._items.push(t):this._items.splice(r,0,t)}pop(){if(this._items.length!==0)return this._items.splice(0,1)[0]}peek(){if(this._items.length!==0)return this._items[0]}get size(){return this._items.length}toArray(){return this._items.slice()}};vNt.PriorityQueue=M5r});var Oes=H(H5r=>{"use strict";Object.defineProperty(H5r,"__esModule",{value:!0});H5r.isPromise=Mil;function Mil(e){return!!e&&typeof e.then=="function"}});var Y5r=H(ZR=>{"use strict";var Mes=ZR&&ZR.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Hil=ZR&&ZR.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Hes=ZR&&ZR.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(BNt,"__esModule",{value:!0});BNt.visitJson=Xil;BNt.visitJsonSchema=Jil;var KG=qb(),Ple=oPr();function Yes(e,t){if(!(typeof e!="object"||e===null)){if(typeof e.properties=="object"||e.type=="object")return typeof e.properties=="object"&&typeof e.properties[t]=="object"?e.properties[t]:typeof e.additionalProperties=="object"?e.additionalProperties:void 0;if(typeof e.items=="object"||e.type=="array")return typeof e.items=="object"?e.items:void 0}}function Q5r(e,t,r,n,a,o,l){if((n===!0||n===!1)&&(n=void 0),n&&n.hasOwnProperty("$ref")&&typeof n.$ref=="string"&&a){let f=a(n.$ref,o);n=f.schema,o=f.context}let A=t(e,r,n,l);return((0,KG.isObservable)(A)?A:(0,KG.of)(A)).pipe((0,KG.concatMap)(f=>Array.isArray(f)?(0,KG.concat)((0,KG.from)(f).pipe((0,KG.mergeMap)((I,C)=>Q5r(I,t,(0,Ple.joinJsonPointer)(r,""+C),Yes(n,""+C),a,o,l||f).pipe((0,KG.tap)(b=>f[C]=b))),(0,KG.ignoreElements)()),(0,KG.of)(f)):typeof f=="object"&&f!==null?(0,KG.concat)((0,KG.from)(Object.getOwnPropertyNames(f)).pipe((0,KG.mergeMap)(I=>Q5r(f[I],t,(0,Ple.joinJsonPointer)(r,I),Yes(n,I),a,o,l||f).pipe((0,KG.tap)(C=>{let b=Object.getOwnPropertyDescriptor(f,I);b&&b.writable&&f[I]!==C&&(f[I]=C)}))),(0,KG.ignoreElements)()),(0,KG.of)(f)):(0,KG.of)(f)))}function Xil(e,t,r,n,a){return Q5r(e,t,(0,Ple.buildJsonPointer)([]),r,n,a)}function Jil(e,t){if(e===!1||e===!0)return;let r={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},n={items:!0,allOf:!0,anyOf:!0,oneOf:!0},a={definitions:!0,properties:!0,patternProperties:!0,additionalProperties:!0,dependencies:!0,items:!0};function o(l,A,f,I,C){if(l&&typeof l=="object"&&!Array.isArray(l)){t(l,A,I,C);for(let b of Object.keys(l)){let E=l[b];if(b in a){if(E&&typeof E=="object")for(let N of Object.keys(E))o(E[N],(0,Ple.joinJsonPointer)(A,b,N),f,l,N)}else if(b in r)o(E,(0,Ple.joinJsonPointer)(A,b),f,l,b);else if(b in n){if(Array.isArray(E))for(let N=0;N{"use strict";var Uil=VV&&VV.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Kil=VV&&VV.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),z5r=VV&&VV.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=`Data path ${JSON.stringify(n.instancePath)} ${n.message}`;if(n.params)switch(n.keyword){case"additionalProperties":a+=`(${n.params.additionalProperty})`;break;case"enum":a+=`. Allowed values are: ${n.params.allowedValues?.map(o=>`"${o}"`).join(", ")}`;break}return a+"."})}};VV.SchemaValidationException=K5r;var j5r=class e{_ajv;_uriCache=new Map;_uriHandlers=new Set;_pre=new U5r.PartiallyOrderedSet;_post=new U5r.PartiallyOrderedSet;_currentCompilationSchemaInfo;_smartDefaultKeyword=!1;_promptProvider;_sourceMap=new Map;constructor(t=[]){this._ajv=new J5r.default({strict:!1,loadSchema:r=>this._fetch(r),passContext:!0}),(0,Kil.default)(this._ajv);for(let r of t)this.addFormat(r)}async _fetch(t){let r=this._uriCache.get(t);if(r)return r;for(let n of this._uriHandlers){let a=n(t);if(a==null)continue;(0,dte.isObservable)(a)&&(a=(0,dte.lastValueFrom)(a));let o=await a;return this._uriCache.set(t,o),o}return new Promise((n,a)=>{let o=new Qes.URL(t);(o.protocol==="https:"?zil:jil).get(o,A=>{if(!A.statusCode||A.statusCode>=300)A.resume(),a(new Error(`Request failed. Status Code: ${A.statusCode}`));else{A.setEncoding("utf8");let f="";A.on("data",I=>{f+=I}),A.on("end",()=>{try{let I=JSON.parse(f);this._uriCache.set(t,I),n(I)}catch(I){a(I)}})}})})}addPreTransform(t,r){this._pre.add(t,r)}addPostTransform(t,r){this._post.add(t,r)}_resolver(t,r){if(!r||!t)return{};let n=r.schemaEnv.root.schema,a=typeof n=="object"?n.$id:null,o=t;typeof a=="string"&&(o=Qes.resolve(a,t),t.startsWith("#")&&(o=a+o));let l=this._ajv.getSchema(o);return{context:l?.schemaEnv.validate,schema:l?.schema}}async \u0275flatten(t){this._ajv.removeSchema(t),this._currentCompilationSchemaInfo=void 0;let r=await this._ajv.compileAsync(t),n=this;function a(l,A,f,I){if(l&&f&&I&&(0,$il.isJsonObject)(l)&&Object.prototype.hasOwnProperty.call(l,"$ref")&&typeof l.$ref=="string"){let C=n._resolver(l.$ref,r);C.schema&&(f[I]=C.schema)}}let o=(0,U5r.deepCopy)(r.schema);return(0,wNt.visitJsonSchema)(o,a),o}async compile(t){let r=await this._compile(t);return(n,a)=>r(n,a)}async _compile(t){if(typeof t=="boolean")return async a=>({success:t,data:a});let r={smartDefaultRecord:new Map,promptDefinitions:[]};this._ajv.removeSchema(t);let n;try{this._currentCompilationSchemaInfo=r,n=this._ajv.compile(t)}catch(a){if(!(a instanceof J5r.default.MissingRefError))throw a;n=await this._ajv.compileAsync(t)}finally{this._currentCompilationSchemaInfo=void 0}return async(a,o)=>{let l={withPrompts:!0,applyPostTransforms:!0,applyPreTransforms:!0,...o},A={promptFieldsWithValue:new Set};if(l.applyPreTransforms)for(let f of this._pre.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));if(await this._applySmartDefaults(a,r.smartDefaultRecord),l.withPrompts){let f=(C,b)=>(C!==void 0&&A.promptFieldsWithValue.add(b),C);typeof t=="object"&&await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));let I=r.promptDefinitions.filter(C=>!A.promptFieldsWithValue.has(C.id));I.length>0&&await this._applyPrompts(a,I)}try{let f=await n.call(A,a);if(!f)return{data:a,success:f,errors:n.errors??[]}}catch(f){if(f instanceof J5r.default.ValidationError)return{data:a,success:!1,errors:f.errors};throw f}if(l.applyPostTransforms)for(let f of this._post.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));return{data:a,success:!0}}}addFormat(t){this._ajv.addFormat(t.name,t.formatter)}addSmartDefaultProvider(t,r){if(this._sourceMap.has(t))throw new Error(t);this._sourceMap.set(t,r),this._smartDefaultKeyword||(this._smartDefaultKeyword=!0,this._ajv.addKeyword({keyword:"$default",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(l===void 0)return()=>!0;let A=this.normalizeDataPathArr(o);return l.smartDefaultRecord.set(JSON.stringify(A),n),()=>!0},metaSchema:{type:"object",properties:{$source:{type:"string"}},additionalProperties:!0,required:["$source"]}}))}registerUriHandler(t){this._uriHandlers.add(t)}usePromptProvider(t){let r=!!this._promptProvider;this._promptProvider=t,!r&&this._ajv.addKeyword({keyword:"x-prompt",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(!l)return()=>!0;let A="/"+this.normalizeDataPathArr(o).join("/"),f,I,C;typeof n=="string"?C=n:(C=n.message,f=n.type,I=n.items);let b=(0,esl.getTypesOfSchema)(a);f||(b.size===1&&b.has("boolean")?f="confirmation":Array.isArray(a.enum)||b.size===1&&b.has("array")&&a.items&&Array.isArray(a.items.enum)?f="list":f="input");let E;if(f==="list"){E=n.multiselect===void 0?b.size===1&&b.has("array"):n.multiselect;let B=E?a.items&&a.items.enum:a.enum;if(!I&&Array.isArray(B)){I=[];for(let F of B)typeof F=="string"?I.push(F):typeof F=="object"||I.push({label:F.toString(),value:F})}}let N={id:A,type:f,message:C,raw:n,items:I,multiselect:E,propertyTypes:b,default:typeof a.default=="object"&&a.default!==null&&!Array.isArray(a.default)?void 0:a.default,async validator(B){try{let F=await o.self.validate(a,B);if(F)return F;if(o.self.errors?.length)return o.self.errors[0].message}catch(F){let Q=F;if(Array.isArray(Q.errors)&&Q.errors.length)return Q.errors[0].message}return!1}};return l.promptDefinitions.push(N),function(){return this&&this.promptFieldsWithValue&&this.promptFieldsWithValue.add(A),!0}},metaSchema:{oneOf:[{type:"string"},{type:"object",properties:{type:{type:"string"},message:{type:"string"}},additionalProperties:!0,required:["message"]}]}})}async _applyPrompts(t,r){let n=this._promptProvider;if(!n)return;let a=await(0,dte.lastValueFrom)((0,dte.from)(n(r)));for(let o in a){let l=o.split("/").slice(1);e._set(t,l,a[o],null,void 0,!0)}}static _set(t,r,n,a=null,o,l){for(let A=0;A(r&&t(`Option "${o?.parentDataProperty}" is deprecated${typeof r=="string"?": "+r:"."}`),!0),errors:!1})}normalizeDataPathArr(t){return t.dataPathArr.slice(1,t.dataLevel+1).map(r=>typeof r=="number"?r:r.str.replace(/"/g,""))}};VV.CoreSchemaRegistry=j5r});var Ues=H(TNt=>{"use strict";Object.defineProperty(TNt,"__esModule",{value:!0});TNt.isJsonSchema=rsl;TNt.mergeSchemas=nsl;var tsl=$Ce();function rsl(e){return(0,tsl.isJsonObject)(e)||e===!1||e===!0}function nsl(...e){return e.reduce((t,r)=>r===void 0?t:t===!1||r===!1?!1:t===!0?r:r===!0?t:Array.isArray(t.allOf)?Array.isArray(r.allOf)?{...t,allOf:[...t.allOf,...r.allOf]}:{...t,allOf:[...t.allOf,r]}:Array.isArray(r.allOf)?{...t,allOf:[t,...r.allOf]}:{...t,allOf:[t,r]},!0)}});var jes=H(ID=>{"use strict";var Kes=ID&&ID.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),isl=ID&&ID.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ssl=ID&&ID.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var zes=RO&&RO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),asl=RO&&RO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),csl=RO&&RO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(NNt,"__esModule",{value:!0});NNt.Logger=void 0;var q5r=qb(),$5r=class extends q5r.Observable{name;parent;_subject=new q5r.Subject;_metadata;_obs=q5r.EMPTY;_subscription=null;get _observable(){return this._obs}set _observable(t){this._subscription&&this._subscription.unsubscribe(),this._obs=t,this.parent&&(this._subscription=this.subscribe(r=>{this.parent&&this.parent._subject.next(r)},r=>{this.parent&&this.parent._subject.error(r)},()=>{this._subscription&&this._subscription.unsubscribe(),this._subscription=null}))}constructor(t,r=null){super(),this.name=t,this.parent=r;let n=[],a=r;for(;a;)n.push(a.name),a=a.parent;this._metadata={name:t,path:n},this._observable=this._subject.asObservable(),this.parent&&this.parent._subject&&this.parent._subject.subscribe(void 0,void 0,()=>this.complete())}asApi(){return{createChild:t=>this.createChild(t),log:(t,r,n)=>this.log(t,r,n),debug:(t,r)=>this.debug(t,r),info:(t,r)=>this.info(t,r),warn:(t,r)=>this.warn(t,r),error:(t,r)=>this.error(t,r),fatal:(t,r)=>this.fatal(t,r)}}createChild(t){return new this.constructor(t,this)}complete(){this._subject.complete()}log(t,r,n={}){let a=Object.assign({},n,this._metadata,{level:t,message:r,timestamp:+Date.now()});this._subject.next(a)}next(t){this._subject.next(t)}debug(t,r={}){return this.log("debug",t,r)}info(t,r={}){return this.log("info",t,r)}warn(t,r={}){return this.log("warn",t,r)}error(t,r={}){return this.log("error",t,r)}fatal(t,r={}){return this.log("fatal",t,r)}toString(){return``}lift(t){return this._observable.lift(t)}subscribe(t,r,n){return this._observable.subscribe.apply(this._observable,arguments)}forEach(t,r=Promise){return this._observable.forEach(t,r)}};NNt.Logger=$5r});var qes=H(DNt=>{"use strict";Object.defineProperty(DNt,"__esModule",{value:!0});DNt.IndentLogger=void 0;var gsl=qb(),Asl=Axe(),eMr={},tMr=class extends Asl.Logger{constructor(t,r=null,n=" "){super(t,r),eMr[n]=eMr[n]||[""];let a=eMr[n];this._observable=this._observable.pipe((0,gsl.map)(o=>{let l=o.path.filter(A=>!!A).length;if(l>=a.length){let A=a[a.length-1];for(;l>=a.length;)A+=n,a.push(A)}return o.message=a[l]+o.message.split(/\n/).join(` -`+a[l]),o}))}};DNt.IndentLogger=tMr});var $es=H(dxe=>{"use strict";Object.defineProperty(dxe,"__esModule",{value:!0});dxe.LevelCapLogger=dxe.LevelTransformLogger=void 0;var dsl=Axe(),kNt=class e extends dsl.Logger{name;parent;levelTransform;constructor(t,r=null,n){super(t,r),this.name=t,this.parent=r,this.levelTransform=n}log(t,r,n={}){return super.log(this.levelTransform(t),r,n)}createChild(t){return new e(t,this,this.levelTransform)}};dxe.LevelTransformLogger=kNt;var rMr=class e extends kNt{name;parent;levelCap;static levelMap={debug:{debug:"debug",info:"debug",warn:"debug",error:"debug",fatal:"debug"},info:{debug:"debug",info:"info",warn:"info",error:"info",fatal:"info"},warn:{debug:"debug",info:"info",warn:"warn",error:"warn",fatal:"warn"},error:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"error"},fatal:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}};constructor(t,r=null,n){super(t,r,a=>e.levelMap[n][a]||a),this.name=t,this.parent=r,this.levelCap=n}};dxe.LevelCapLogger=rMr});var ets=H(xNt=>{"use strict";Object.defineProperty(xNt,"__esModule",{value:!0});xNt.NullLogger=void 0;var psl=qb(),fsl=Axe(),nMr=class e extends fsl.Logger{constructor(t=null){super("",t),this._observable=psl.EMPTY}asApi(){return{createChild:()=>new e(this),log(){},debug(){},info(){},warn(){},error(){},fatal(){}}}};xNt.NullLogger=nMr});var tts=H(GNt=>{"use strict";Object.defineProperty(GNt,"__esModule",{value:!0});GNt.TransformLogger=void 0;var Isl=Axe(),iMr=class extends Isl.Logger{constructor(t,r,n=null){super(t,n),this._observable=r(this._observable)}};GNt.TransformLogger=iMr});var rts=H(G4=>{"use strict";var hsl=G4&&G4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$8e=G4&&G4.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&hsl(t,e,r)};Object.defineProperty(G4,"__esModule",{value:!0});$8e(qes(),G4);$8e($es(),G4);$8e(Axe(),G4);$8e(ets(),G4);$8e(tts(),G4)});var oMr=H(pxe=>{"use strict";Object.defineProperty(pxe,"__esModule",{value:!0});pxe.TargetDefinitionCollection=pxe.ProjectDefinitionCollection=void 0;var FNt=class{_listener;_map;constructor(t,r){this._listener=r,this._map=new Map(t&&Object.entries(t))}delete(t){let r=this._map.delete(t);return r&&this._listener?.(t,void 0,this),r}set(t,r){return r!==this.get(t)&&(this._map.set(t,r),this._listener?.(t,r,this)),this}forEach(t,r){this._map.forEach((n,a)=>t(n,a,this),r)}get(t){return this._map.get(t)}has(t){return this._map.has(t)}get size(){return this._map.size}[Symbol.iterator](){return this._map[Symbol.iterator]()}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}};function nts(e){let t=new Set;switch(typeof e){case"boolean":case"number":case"string":return!0;case"object":if(e===null)return!0;t.add(e);for(let r of Object.values(e))if(!(typeof e=="object"&&t.has(r))&&!nts(r))return!1;return!0;default:return!1}}var sMr=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Project name already exists.");this._validateName(t.name);let r={root:t.root,prefix:t.prefix,sourceRoot:t.sourceRoot,targets:new ZNt,extensions:{}};if(t.targets)for(let[n,a]of Object.entries(t.targets))a&&r.targets.set(n,a);for(let[n,a]of Object.entries(t))switch(n){case"name":case"root":case"sourceRoot":case"prefix":case"targets":break;default:if(nts(a))r.extensions[n]=a;else throw new TypeError(`"${n}" must be a JSON value.`);break}return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string"||!/^(?:@\w[\w.-]*\/)?\w[\w.-]*$/.test(t))throw new Error("Project name must be a valid npm package name.")}};pxe.ProjectDefinitionCollection=sMr;var ZNt=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Target name already exists.");this._validateName(t.name);let r={builder:t.builder,options:t.options,configurations:t.configurations,defaultConfiguration:t.defaultConfiguration};return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string")throw new TypeError("Target name must be a string.")}};pxe.TargetDefinitionCollection=ZNt});var fxe=H(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.path=FI.NormalizedRoot=FI.NormalizedSep=FI.PathCannotBeFragmentException=FI.PathMustBeAbsoluteException=FI.InvalidPathException=void 0;FI.split=aMr;FI.extname=msl;FI.basename=its;FI.dirname=Csl;FI.join=sts;FI.isAbsolute=PNt;FI.relative=_sl;FI.resolve=ysl;FI.fragment=WNt;FI.resetNormalizeCache=bsl;FI.normalize=tje;FI.noCacheNormalize=ots;FI.asWindowsPath=ats;FI.asPosixPath=Ssl;FI.getSystemPath=vsl;var lMr=gte(),LNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} is invalid.`)}};FI.InvalidPathException=LNt;var eje=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} must be absolute.`)}};FI.PathMustBeAbsoluteException=eje;var VNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} cannot be made a fragment.`)}};FI.PathCannotBeFragmentException=VNt;FI.NormalizedSep="/";FI.NormalizedRoot=FI.NormalizedSep;function aMr(e){let t=e.split(FI.NormalizedSep).map(r=>WNt(r));return t[t.length-1].length===0&&t.pop(),t}function msl(e){let t=its(e),r=t.lastIndexOf(".");return r<1?"":t.slice(r)}function its(e){return e.lastIndexOf(FI.NormalizedSep)==-1?WNt(e):WNt(e.slice(e.lastIndexOf(FI.NormalizedSep)+1))}function Csl(e){let t=e.lastIndexOf(FI.NormalizedSep);if(t===-1)return"";let r=t===0?1:t;return tje(e.slice(0,r))}function sts(e,...t){return t.length>0?tje((e?e+FI.NormalizedSep:"")+t.join(FI.NormalizedSep)):e}function PNt(e){return e.startsWith(FI.NormalizedSep)}function _sl(e,t){if(!PNt(e))throw new eje(e);if(!PNt(t))throw new eje(t);let r;if(e==t)r="";else{let n=aMr(e),a=aMr(t);for(;n.length>0&&a.length>0&&n[0]==a[0];)n.shift(),a.shift();n.length==0?r=a.join(FI.NormalizedSep):r=n.map(()=>"..").concat(a).join(FI.NormalizedSep)}return tje(r)}function ysl(e,t){return PNt(t)?t:sts(e,t)}function WNt(e){if(e.indexOf(FI.NormalizedSep)!=-1)throw new VNt(e);return e}var cMr=new Map;function bsl(){cMr=new Map}function tje(e){let t=cMr.get(e);return t||(t=ots(e),cMr.set(e,t)),t}function ots(e){if(e==""||e==".")return"";if(e==FI.NormalizedRoot)return FI.NormalizedRoot;let t=e;e.match(/^[A-Z]:[/\\]/i)&&(e="\\"+e[0].toUpperCase()+"\\"+e.slice(3));let r=e.split(/[/\\]/g),n=!1,a=1;for(r[0]!=""&&(r.unshift("."),n=!0);a=2&&r[a-1]!=".."?(r.splice(a-1,2),a--):a++}else r[a]==""?r.splice(a,1):a++;return r.length==1?r[0]==""?FI.NormalizedSep:"":(r[0]=="."&&r.shift(),r.join(FI.NormalizedSep))}var Esl=(e,...t)=>tje(String.raw(e,...t));FI.path=Esl;function ats(e){let t=e.match(/^\/(\w)(?:\/(.*))?$/);if(t){let r=t[2]?t[2].replace(/\//g,"\\"):"";return`${t[1]}:\\${r}`}return e.replace(/\//g,"\\")}function Ssl(e){return e}function vsl(e){return process.platform.startsWith("win32")?ats(e):e}});var uMr=H(ONt=>{"use strict";Object.defineProperty(ONt,"__esModule",{value:!0});ONt.stringToFileBuffer=Bsl;ONt.fileBufferToString=wsl;var cts=wt("node:util");function Bsl(e){return new cts.TextEncoder().encode(e).buffer}function wsl(e){return e.toString.length===1?e.toString("utf-8"):new cts.TextDecoder("utf-8").decode(new Uint8Array(e))}});var gMr=H(MNt=>{"use strict";Object.defineProperty(MNt,"__esModule",{value:!0});MNt.HostWatchEventType=void 0;var lts;(function(e){e[e.Changed=0]="Changed",e[e.Created=1]="Created",e[e.Deleted=2]="Deleted",e[e.Renamed=3]="Renamed"})(lts||(MNt.HostWatchEventType=lts={}))});var YNt=H(HNt=>{"use strict";Object.defineProperty(HNt,"__esModule",{value:!0});HNt.SimpleMemoryHost=void 0;var zj=qb(),pte=gte(),aw=fxe(),Ixe=gMr(),AMr=class{_cache=new Map;_watchers=new Map;_newDirStats(){return{inspect(){return""},isFile(){return!1},isDirectory(){return!0},size:0,atime:new Date,ctime:new Date,mtime:new Date,birthtime:new Date,content:null}}_newFileStats(t,r){return{inspect(){return``},isFile(){return!0},isDirectory(){return!1},size:t.byteLength,atime:r?r.atime:new Date,ctime:new Date,mtime:new Date,birthtime:r?r.birthtime:new Date,content:t}}constructor(){this._cache.set((0,aw.normalize)("/"),this._newDirStats())}_toAbsolute(t){return(0,aw.isAbsolute)(t)?t:(0,aw.normalize)("/"+t)}_updateWatchers(t,r){let n=new Date,a=t,o=null;if(this._watchers.size==0)return;let l=this._watchers.get(a);l&&l.forEach(A=>{let[f,I]=A;I.next({path:t,time:n,type:r}),!f.persistent&&r==Ixe.HostWatchEventType.Deleted&&(I.complete(),this._watchers.delete(a))});do{a=o!==null?o:a,o=(0,aw.dirname)(a);let A=this._watchers.get(a);A&&A.forEach(f=>{let[I,C]=f;I.recursive&&(C.next({path:t,time:n,type:r}),!I.persistent&&r==Ixe.HostWatchEventType.Deleted&&(C.complete(),this._watchers.delete(a)))})}while(o!=a)}get capabilities(){return{synchronous:!0}}_write(t,r){t=this._toAbsolute(t);let n=this._cache.get(t);if(n&&n.isDirectory())throw new pte.PathIsDirectoryException(t);let a=(0,aw.split)(t),o=(0,aw.normalize)("/");for(let A of a){o=(0,aw.join)(o,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(o)}else this._cache.set(o,this._newDirStats())}let l=this._newFileStats(r,n);this._cache.set(t,l),this._updateWatchers(t,n?Ixe.HostWatchEventType.Changed:Ixe.HostWatchEventType.Created)}_read(t){t=this._toAbsolute(t);let r=this._cache.get(t);if(r){if(r.isDirectory())throw new pte.PathIsDirectoryException(t);if(r.content)return r.content;throw new pte.PathIsDirectoryException(t)}else throw new pte.FileDoesNotExistException(t)}_delete(t){if(t=this._toAbsolute(t),this._isDirectory(t))for(let[r]of this._cache.entries())(r.startsWith(t+aw.NormalizedSep)||r===t)&&this._cache.delete(r);else this._cache.delete(t);this._updateWatchers(t,Ixe.HostWatchEventType.Deleted)}_rename(t,r){if(t=this._toAbsolute(t),r=this._toAbsolute(r),this._cache.has(t)){if(this._cache.has(r))throw new pte.FileAlreadyExistException(r)}else throw new pte.FileDoesNotExistException(t);if(this._isDirectory(t)){for(let n of this._cache.keys())if(n.startsWith(t+aw.NormalizedSep)){let a=this._cache.get(n);a&&this._cache.set((0,aw.join)(r,aw.NormalizedSep,n.slice(t.length)),a)}}else{let n=this._cache.get(t);if(n){let a=(0,aw.split)(r),o=[],l=(0,aw.normalize)("/");for(let A of a){l=(0,aw.join)(l,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(l)}else o.push(l)}for(let A of o)this._cache.set(A,this._newDirStats());this._cache.delete(t),this._cache.set(r,n)}}this._updateWatchers(t,Ixe.HostWatchEventType.Renamed)}_list(t){if(t=this._toAbsolute(t),this._isFile(t))throw new pte.PathIsFileException(t);let r=(0,aw.split)(t),n=new Set;if(t!==aw.NormalizedRoot)for(let a of this._cache.keys())a.startsWith(t+aw.NormalizedSep)&&n.add((0,aw.split)(a)[r.length]);else for(let a of this._cache.keys())a.startsWith(aw.NormalizedSep)&&a!==aw.NormalizedRoot&&n.add((0,aw.split)(a)[1]);return[...n]}_exists(t){return!!this._cache.get(this._toAbsolute(t))}_isDirectory(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isDirectory():!1}_isFile(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isFile():!1}_stat(t){let r=this._cache.get(this._toAbsolute(t));return r||null}_watch(t,r){t=this._toAbsolute(t);let n=new zj.Subject,a=this._watchers.get(t);return a||(a=[],this._watchers.set(t,a)),a.push([r||{},n]),n.asObservable()}write(t,r){return new zj.Observable(n=>{this._write(t,r),n.next(),n.complete()})}read(t){return new zj.Observable(r=>{let n=this._read(t);r.next(n),r.complete()})}delete(t){return new zj.Observable(r=>{this._delete(t),r.next(),r.complete()})}rename(t,r){return new zj.Observable(n=>{this._rename(t,r),n.next(),n.complete()})}list(t){return new zj.Observable(r=>{r.next(this._list(t)),r.complete()})}exists(t){return new zj.Observable(r=>{r.next(this._exists(t)),r.complete()})}isDirectory(t){return new zj.Observable(r=>{r.next(this._isDirectory(t)),r.complete()})}isFile(t){return new zj.Observable(r=>{r.next(this._isFile(t)),r.complete()})}stat(t){return new zj.Observable(r=>{r.next(this._stat(t)),r.complete()})}watch(t,r){return this._watch(t,r)}reset(){this._cache.clear(),this._watchers.clear()}};HNt.SimpleMemoryHost=AMr});var pMr=H(hxe=>{"use strict";Object.defineProperty(hxe,"__esModule",{value:!0});hxe.SyncDelegateHost=hxe.SynchronousDelegateExpectedException=void 0;var Tsl=gte(),rje=class extends Tsl.BaseException{constructor(){super("Expected a synchronous delegate but got an asynchronous one.")}};hxe.SynchronousDelegateExpectedException=rje;var dMr=class{_delegate;constructor(t){if(this._delegate=t,!t.capabilities.synchronous)throw new rje}_doSyncCall(t){let r=!1,n,a;if(t.subscribe(o=>n=o,o=>a=o,()=>r=!0),a!==void 0)throw a;if(!r)throw new rje;return n}get capabilities(){return this._delegate.capabilities}get delegate(){return this._delegate}write(t,r){return this._doSyncCall(this._delegate.write(t,r))}read(t){return this._doSyncCall(this._delegate.read(t))}delete(t){return this._doSyncCall(this._delegate.delete(t))}rename(t,r){return this._doSyncCall(this._delegate.rename(t,r))}list(t){return this._doSyncCall(this._delegate.list(t))}exists(t){return this._doSyncCall(this._delegate.exists(t))}isDirectory(t){return this._doSyncCall(this._delegate.isDirectory(t))}isFile(t){return this._doSyncCall(this._delegate.isFile(t))}stat(t){let r=this._delegate.stat(t);return r?this._doSyncCall(r):null}watch(t,r){return this._delegate.watch(t,r)}};hxe.SyncDelegateHost=dMr});var uts=H(QNt=>{"use strict";Object.defineProperty(QNt,"__esModule",{value:!0});QNt.TestHost=void 0;var fte=fxe(),fMr=uMr(),Rsl=YNt(),Nsl=pMr(),IMr=class e extends Rsl.SimpleMemoryHost{_records=[];_sync=null;constructor(t={}){super();for(let r of Object.getOwnPropertyNames(t))this._write((0,fte.normalize)(r),(0,fMr.stringToFileBuffer)(t[r]))}get records(){return[...this._records]}clearRecords(){this._records=[]}get files(){let t=this.sync;function r(n){return t.list(n).map(a=>(0,fte.join)(n,a)).reduce((a,o)=>t.isDirectory(o)?a.concat(r(o)):a.concat(o),[])}return r((0,fte.normalize)("/"))}get sync(){return this._sync||(this._sync=new Nsl.SyncDelegateHost(this)),this._sync}clone(){let t=new e;return t._cache=new Map(this._cache),t}_write(t,r){return this._records.push({kind:"write",path:t}),super._write(t,r)}_read(t){return this._records.push({kind:"read",path:t}),super._read(t)}_delete(t){return this._records.push({kind:"delete",path:t}),super._delete(t)}_rename(t,r){return this._records.push({kind:"rename",from:t,to:r}),super._rename(t,r)}_list(t){return this._records.push({kind:"list",path:t}),super._list(t)}_exists(t){return this._records.push({kind:"exists",path:t}),super._exists(t)}_isDirectory(t){return this._records.push({kind:"isDirectory",path:t}),super._isDirectory(t)}_isFile(t){return this._records.push({kind:"isFile",path:t}),super._isFile(t)}_stat(t){return this._records.push({kind:"stat",path:t}),super._stat(t)}_watch(t,r){return this._records.push({kind:"watch",path:t}),super._watch(t,r)}$write(t,r){return super._write((0,fte.normalize)(t),(0,fMr.stringToFileBuffer)(r))}$read(t){return(0,fMr.fileBufferToString)(super._read((0,fte.normalize)(t)))}$list(t){return super._list((0,fte.normalize)(t))}$exists(t){return super._exists((0,fte.normalize)(t))}$isDirectory(t){return super._isDirectory((0,fte.normalize)(t))}$isFile(t){return super._isFile((0,fte.normalize)(t))}};QNt.TestHost=IMr});var nje=H(XNt=>{"use strict";Object.defineProperty(XNt,"__esModule",{value:!0});XNt.ResolverHost=void 0;var hMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}write(t,r){return this._delegate.write(this._resolve(t),r)}read(t){return this._delegate.read(this._resolve(t))}delete(t){return this._delegate.delete(this._resolve(t))}rename(t,r){return this._delegate.rename(this._resolve(t),this._resolve(r))}list(t){return this._delegate.list(this._resolve(t))}exists(t){return this._delegate.exists(this._resolve(t))}isDirectory(t){return this._delegate.isDirectory(this._resolve(t))}isFile(t){return this._delegate.isFile(this._resolve(t))}stat(t){return this._delegate.stat(this._resolve(t))}watch(t,r){return this._delegate.watch(this._resolve(t),r)}};XNt.ResolverHost=hMr});var gts=H(UNt=>{"use strict";Object.defineProperty(UNt,"__esModule",{value:!0});UNt.AliasHost=void 0;var JNt=fxe(),Dsl=nje(),mMr=class extends Dsl.ResolverHost{_aliases=new Map;_resolve(t){let r=this._aliases.get(t),n=(0,JNt.split)(t),a=[];for(;!r&&n.length>0;){let o=(0,JNt.join)(JNt.NormalizedRoot,...n);r=this._aliases.get(o),r&&(r=(0,JNt.join)(r,...a)),a.unshift(n.pop())}return r||t}get aliases(){return this._aliases}};UNt.AliasHost=mMr});var Ats=H(CMr=>{"use strict";Object.defineProperty(CMr,"__esModule",{value:!0});CMr.createSyncHost=xsl;var ksl=qb();function Ite(e){return new ksl.Observable(t=>{t.next(e()),t.complete()})}function xsl(e){return new class{get capabilities(){return{synchronous:!0}}read(t){return Ite(()=>e.read(t))}list(t){return Ite(()=>e.list(t))}exists(t){return Ite(()=>e.exists(t))}isDirectory(t){return Ite(()=>e.isDirectory(t))}isFile(t){return Ite(()=>e.isFile(t))}stat(t){return Ite(()=>e.stat(t))}write(t,r){return Ite(()=>e.write(t,r))}delete(t){return Ite(()=>e.delete(t))}rename(t,r){return Ite(()=>e.rename(t,r))}watch(){return null}}}});var dts=H(KNt=>{"use strict";Object.defineProperty(KNt,"__esModule",{value:!0});KNt.Empty=void 0;var mxe=qb(),Gsl=gte(),_Mr=class{capabilities={synchronous:!0};read(t){return(0,mxe.throwError)(new Gsl.FileDoesNotExistException(t))}list(t){return(0,mxe.of)([])}exists(t){return(0,mxe.of)(!1)}isDirectory(t){return(0,mxe.of)(!1)}isFile(t){return(0,mxe.of)(!1)}stat(t){return(0,mxe.of)(null)}};KNt.Empty=_Mr});var ije=H((B7u,mts)=>{"use strict";var qj="\\\\/",pts=`[^${qj}]`,hte="\\.",Fsl="\\+",Zsl="\\?",jNt="\\/",Lsl="(?=.)",fts="[^/]",yMr=`(?:${jNt}|$)`,Its=`(?:^|${jNt})`,bMr=`${hte}{1,2}${yMr}`,Vsl=`(?!${hte})`,Psl=`(?!${Its}${bMr})`,Wsl=`(?!${hte}{0,1}${yMr})`,Osl=`(?!${bMr})`,Msl=`[^.${jNt}]`,Hsl=`${fts}*?`,Ysl="/",hts={DOT_LITERAL:hte,PLUS_LITERAL:Fsl,QMARK_LITERAL:Zsl,SLASH_LITERAL:jNt,ONE_CHAR:Lsl,QMARK:fts,END_ANCHOR:yMr,DOTS_SLASH:bMr,NO_DOT:Vsl,NO_DOTS:Psl,NO_DOT_SLASH:Wsl,NO_DOTS_SLASH:Osl,QMARK_NO_DOT:Msl,STAR:Hsl,START_ANCHOR:Its,SEP:Ysl},Qsl={...hts,SLASH_LITERAL:`[${qj}]`,QMARK:pts,STAR:`${pts}*?`,DOTS_SLASH:`${hte}{1,2}(?:[${qj}]|$)`,NO_DOT:`(?!${hte})`,NO_DOTS:`(?!(?:^|[${qj}])${hte}{1,2}(?:[${qj}]|$))`,NO_DOT_SLASH:`(?!${hte}{0,1}(?:[${qj}]|$))`,NO_DOTS_SLASH:`(?!${hte}{1,2}(?:[${qj}]|$))`,QMARK_NO_DOT:`[^.${qj}]`,START_ANCHOR:`(?:^|[${qj}])`,END_ANCHOR:`(?:[${qj}]|$)`,SEP:"\\"},Xsl={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};mts.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Xsl,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Qsl:hts}}});var sje=H(PV=>{"use strict";var{REGEX_BACKSLASH:Jsl,REGEX_REMOVE_BACKSLASH:Usl,REGEX_SPECIAL_CHARS:Ksl,REGEX_SPECIAL_CHARS_GLOBAL:jsl}=ije();PV.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);PV.hasRegexChars=e=>Ksl.test(e);PV.isRegexChar=e=>e.length===1&&PV.hasRegexChars(e);PV.escapeRegex=e=>e.replace(jsl,"\\$1");PV.toPosixSlashes=e=>e.replace(Jsl,"/");PV.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};PV.removeBackslashes=e=>e.replace(Usl,t=>t==="\\"?"":t);PV.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?PV.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};PV.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};PV.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o};PV.basename=(e,{windows:t}={})=>{let r=e.split(t?/[\\/]/:"/"),n=r[r.length-1];return n===""?r[r.length-2]:n}});var Bts=H((T7u,vts)=>{"use strict";var Cts=sje(),{CHAR_ASTERISK:EMr,CHAR_AT:zsl,CHAR_BACKWARD_SLASH:oje,CHAR_COMMA:qsl,CHAR_DOT:SMr,CHAR_EXCLAMATION_MARK:vMr,CHAR_FORWARD_SLASH:Sts,CHAR_LEFT_CURLY_BRACE:BMr,CHAR_LEFT_PARENTHESES:wMr,CHAR_LEFT_SQUARE_BRACKET:$sl,CHAR_PLUS:eol,CHAR_QUESTION_MARK:_ts,CHAR_RIGHT_CURLY_BRACE:tol,CHAR_RIGHT_PARENTHESES:yts,CHAR_RIGHT_SQUARE_BRACKET:rol}=ije(),bts=e=>e===Sts||e===oje,Ets=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},nol=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&bts(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Cts.removeBackslashes(je)),ct&&ae===!0&&(ct=Cts.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,bts(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var zNt=ije(),$j=sje(),{MAX_LENGTH:qNt,POSIX_REGEX_SOURCE:iol,REGEX_NON_SPECIAL_CHARS:sol,REGEX_SPECIAL_CHARS_BACKREF:ool,REPLACEMENTS:wts}=zNt,aol=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>$j.escapeRegex(a)).join("..")}return r},Cxe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,TMr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=wts[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=zNt.globChars(r.windows),I=zNt.extglobChars(f),{DOT_LITERAL:C,PLUS_LITERAL:b,SLASH_LITERAL:E,ONE_CHAR:N,DOTS_SLASH:B,NO_DOT:F,NO_DOT_SLASH:Q,NO_DOTS_SLASH:X,QMARK:ae,QMARK_NO_DOT:ne,STAR:ce,START_ANCHOR:fe}=f,ue=cr=>`(${A}(?:(?!${fe}${cr.dot?B:C}).)*?)`,de=r.dot?"":F,be=r.dot?ae:ne,Se=r.bash===!0?ue(r):ce;r.capture&&(Se=`(${Se})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let De={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=$j.removePrefix(e,De),a=e.length;let k=[],et=[],ct=[],Me=o,je,St=()=>De.index===a-1,At=De.peek=(cr=1)=>e[De.index+cr],Yt=De.advance=()=>e[++De.index]||"",Tr=()=>e.slice(De.index+1),Nr=(cr="",Ar=0)=>{De.consumed+=cr,De.index+=Ar},er=cr=>{De.output+=cr.output!=null?cr.output:cr.value,Nr(cr.value)},vt=()=>{let cr=1;for(;At()==="!"&&(At(2)!=="("||At(3)==="?");)Yt(),De.start++,cr++;return cr%2===0?!1:(De.negated=!0,De.start++,!0)},xt=cr=>{De[cr]++,ct.push(cr)},Zr=cr=>{De[cr]--,ct.pop()},qt=cr=>{if(Me.type==="globstar"){let Ar=De.braces>0&&(cr.type==="comma"||cr.type==="brace"),qr=cr.extglob===!0||k.length&&(cr.type==="pipe"||cr.type==="paren");cr.type!=="slash"&&cr.type!=="paren"&&!Ar&&!qr&&(De.output=De.output.slice(0,-Me.output.length),Me.type="star",Me.value="*",Me.output=Se,De.output+=Me.output)}if(k.length&&cr.type!=="paren"&&(k[k.length-1].inner+=cr.value),(cr.value||cr.output)&&er(cr),Me&&Me.type==="text"&&cr.type==="text"){Me.output=(Me.output||Me.value)+cr.value,Me.value+=cr.value;return}cr.prev=Me,l.push(cr),Me=cr},Xt=(cr,Ar)=>{let qr={...I[Ar],conditions:1,inner:""};qr.prev=Me,qr.parens=De.parens,qr.output=De.output;let _n=(r.capture?"(":"")+qr.open;xt("parens"),qt({type:cr,value:Ar,output:De.output?"":N}),qt({type:"paren",extglob:!0,value:Yt(),output:_n}),k.push(qr)},lr=cr=>{let Ar=cr.close+(r.capture?")":""),qr;if(cr.type==="negate"){let _n=Se;if(cr.inner&&cr.inner.length>1&&cr.inner.includes("/")&&(_n=ue(r)),(_n!==Se||St()||/^\)+$/.test(Tr()))&&(Ar=cr.close=`)$))${_n}`),cr.inner.includes("*")&&(qr=Tr())&&/^\.[^\\/.]+$/.test(qr)){let ke=TMr(qr,{...t,fastpaths:!1}).output;Ar=cr.close=`)${ke})${_n})`}cr.prev.type==="bos"&&(De.negatedExtglob=!0)}qt({type:"paren",extglob:!0,value:je,output:Ar}),Zr("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let cr=!1,Ar=e.replace(ool,(qr,_n,ke,jt,Fn,Nn)=>jt==="\\"?(cr=!0,qr):jt==="?"?_n?_n+jt+(Fn?ae.repeat(Fn.length):""):Nn===0?be+(Fn?ae.repeat(Fn.length):""):ae.repeat(ke.length):jt==="."?C.repeat(ke.length):jt==="*"?_n?_n+jt+(Fn?Se:""):Se:_n?qr:`\\${qr}`);return cr===!0&&(r.unescape===!0?Ar=Ar.replace(/\\/g,""):Ar=Ar.replace(/\\+/g,qr=>qr.length%2===0?"\\\\":qr?"\\":"")),Ar===e&&r.contains===!0?(De.output=e,De):(De.output=$j.wrapOutput(Ar,De,t),De)}for(;!St();){if(je=Yt(),je==="\0")continue;if(je==="\\"){let qr=At();if(qr==="/"&&r.bash!==!0||qr==="."||qr===";")continue;if(!qr){je+="\\",qt({type:"text",value:je});continue}let _n=/^\\+/.exec(Tr()),ke=0;if(_n&&_n[0].length>2&&(ke=_n[0].length,De.index+=ke,ke%2!==0&&(je+="\\")),r.unescape===!0?je=Yt():je+=Yt(),De.brackets===0){qt({type:"text",value:je});continue}}if(De.brackets>0&&(je!=="]"||Me.value==="["||Me.value==="[^")){if(r.posix!==!1&&je===":"){let qr=Me.value.slice(1);if(qr.includes("[")&&(Me.posix=!0,qr.includes(":"))){let _n=Me.value.lastIndexOf("["),ke=Me.value.slice(0,_n),jt=Me.value.slice(_n+2),Fn=iol[jt];if(Fn){Me.value=ke+Fn,De.backtrack=!0,Yt(),!o.output&&l.indexOf(Me)===1&&(o.output=N);continue}}}(je==="["&&At()!==":"||je==="-"&&At()==="]")&&(je=`\\${je}`),je==="]"&&(Me.value==="["||Me.value==="[^")&&(je=`\\${je}`),r.posix===!0&&je==="!"&&Me.value==="["&&(je="^"),Me.value+=je,er({value:je});continue}if(De.quotes===1&&je!=='"'){je=$j.escapeRegex(je),Me.value+=je,er({value:je});continue}if(je==='"'){De.quotes=De.quotes===1?0:1,r.keepQuotes===!0&&qt({type:"text",value:je});continue}if(je==="("){xt("parens"),qt({type:"paren",value:je});continue}if(je===")"){if(De.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","("));let qr=k[k.length-1];if(qr&&De.parens===qr.parens+1){lr(k.pop());continue}qt({type:"paren",value:je,output:De.parens?")":"\\)"}),Zr("parens");continue}if(je==="["){if(r.nobracket===!0||!Tr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));je=`\\${je}`}else xt("brackets");qt({type:"bracket",value:je});continue}if(je==="]"){if(r.nobracket===!0||Me&&Me.type==="bracket"&&Me.value.length===1){qt({type:"text",value:je,output:`\\${je}`});continue}if(De.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","["));qt({type:"text",value:je,output:`\\${je}`});continue}Zr("brackets");let qr=Me.value.slice(1);if(Me.posix!==!0&&qr[0]==="^"&&!qr.includes("/")&&(je=`/${je}`),Me.value+=je,er({value:je}),r.literalBrackets===!1||$j.hasRegexChars(qr))continue;let _n=$j.escapeRegex(Me.value);if(De.output=De.output.slice(0,-Me.value.length),r.literalBrackets===!0){De.output+=_n,Me.value=_n;continue}Me.value=`(${A}${_n}|${Me.value})`,De.output+=Me.value;continue}if(je==="{"&&r.nobrace!==!0){xt("braces");let qr={type:"brace",value:je,output:"(",outputIndex:De.output.length,tokensIndex:De.tokens.length};et.push(qr),qt(qr);continue}if(je==="}"){let qr=et[et.length-1];if(r.nobrace===!0||!qr){qt({type:"text",value:je,output:je});continue}let _n=")";if(qr.dots===!0){let ke=l.slice(),jt=[];for(let Fn=ke.length-1;Fn>=0&&(l.pop(),ke[Fn].type!=="brace");Fn--)ke[Fn].type!=="dots"&&jt.unshift(ke[Fn].value);_n=aol(jt,r),De.backtrack=!0}if(qr.comma!==!0&&qr.dots!==!0){let ke=De.output.slice(0,qr.outputIndex),jt=De.tokens.slice(qr.tokensIndex);qr.value=qr.output="\\{",je=_n="\\}",De.output=ke;for(let Fn of jt)De.output+=Fn.output||Fn.value}qt({type:"brace",value:je,output:_n}),Zr("braces"),et.pop();continue}if(je==="|"){k.length>0&&k[k.length-1].conditions++,qt({type:"text",value:je});continue}if(je===","){let qr=je,_n=et[et.length-1];_n&&ct[ct.length-1]==="braces"&&(_n.comma=!0,qr="|"),qt({type:"comma",value:je,output:qr});continue}if(je==="/"){if(Me.type==="dot"&&De.index===De.start+1){De.start=De.index+1,De.consumed="",De.output="",l.pop(),Me=o;continue}qt({type:"slash",value:je,output:E});continue}if(je==="."){if(De.braces>0&&Me.type==="dot"){Me.value==="."&&(Me.output=C);let qr=et[et.length-1];Me.type="dots",Me.output+=je,Me.value+=je,qr.dots=!0;continue}if(De.braces+De.parens===0&&Me.type!=="bos"&&Me.type!=="slash"){qt({type:"text",value:je,output:C});continue}qt({type:"dot",value:je,output:C});continue}if(je==="?"){if(!(Me&&Me.value==="(")&&r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("qmark",je);continue}if(Me&&Me.type==="paren"){let _n=At(),ke=je;(Me.value==="("&&!/[!=<:]/.test(_n)||_n==="<"&&!/<([!=]|\w+>)/.test(Tr()))&&(ke=`\\${je}`),qt({type:"text",value:je,output:ke});continue}if(r.dot!==!0&&(Me.type==="slash"||Me.type==="bos")){qt({type:"qmark",value:je,output:ne});continue}qt({type:"qmark",value:je,output:ae});continue}if(je==="!"){if(r.noextglob!==!0&&At()==="("&&(At(2)!=="?"||!/[!=<:]/.test(At(3)))){Xt("negate",je);continue}if(r.nonegate!==!0&&De.index===0){vt();continue}}if(je==="+"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("plus",je);continue}if(Me&&Me.value==="("||r.regex===!1){qt({type:"plus",value:je,output:b});continue}if(Me&&(Me.type==="bracket"||Me.type==="paren"||Me.type==="brace")||De.parens>0){qt({type:"plus",value:je});continue}qt({type:"plus",value:b});continue}if(je==="@"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){qt({type:"at",extglob:!0,value:je,output:""});continue}qt({type:"text",value:je});continue}if(je!=="*"){(je==="$"||je==="^")&&(je=`\\${je}`);let qr=sol.exec(Tr());qr&&(je+=qr[0],De.index+=qr[0].length),qt({type:"text",value:je});continue}if(Me&&(Me.type==="globstar"||Me.star===!0)){Me.type="star",Me.star=!0,Me.value+=je,Me.output=Se,De.backtrack=!0,De.globstar=!0,Nr(je);continue}let cr=Tr();if(r.noextglob!==!0&&/^\([^?]/.test(cr)){Xt("star",je);continue}if(Me.type==="star"){if(r.noglobstar===!0){Nr(je);continue}let qr=Me.prev,_n=qr.prev,ke=qr.type==="slash"||qr.type==="bos",jt=_n&&(_n.type==="star"||_n.type==="globstar");if(r.bash===!0&&(!ke||cr[0]&&cr[0]!=="/")){qt({type:"star",value:je,output:""});continue}let Fn=De.braces>0&&(qr.type==="comma"||qr.type==="brace"),Nn=k.length&&(qr.type==="pipe"||qr.type==="paren");if(!ke&&qr.type!=="paren"&&!Fn&&!Nn){qt({type:"star",value:je,output:""});continue}for(;cr.slice(0,3)==="/**";){let Hi=e[De.index+4];if(Hi&&Hi!=="/")break;cr=cr.slice(3),Nr("/**",3)}if(qr.type==="bos"&&St()){Me.type="globstar",Me.value+=je,Me.output=ue(r),De.output=Me.output,De.globstar=!0,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&!jt&&St()){De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=ue(r)+(r.strictSlashes?")":"|$)"),Me.value+=je,De.globstar=!0,De.output+=qr.output+Me.output,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&cr[0]==="/"){let Hi=cr[1]!==void 0?"|$":"";De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=`${ue(r)}${E}|${E}${Hi})`,Me.value+=je,De.output+=qr.output+Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}if(qr.type==="bos"&&cr[0]==="/"){Me.type="globstar",Me.value+=je,Me.output=`(?:^|${E}|${ue(r)}${E})`,De.output=Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}De.output=De.output.slice(0,-Me.output.length),Me.type="globstar",Me.output=ue(r),Me.value+=je,De.output+=Me.output,De.globstar=!0,Nr(je);continue}let Ar={type:"star",value:je,output:Se};if(r.bash===!0){Ar.output=".*?",(Me.type==="bos"||Me.type==="slash")&&(Ar.output=de+Ar.output),qt(Ar);continue}if(Me&&(Me.type==="bracket"||Me.type==="paren")&&r.regex===!0){Ar.output=je,qt(Ar);continue}(De.index===De.start||Me.type==="slash"||Me.type==="dot")&&(Me.type==="dot"?(De.output+=Q,Me.output+=Q):r.dot===!0?(De.output+=X,Me.output+=X):(De.output+=de,Me.output+=de),At()!=="*"&&(De.output+=N,Me.output+=N)),qt(Ar)}for(;De.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));De.output=$j.escapeLast(De.output,"["),Zr("brackets")}for(;De.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing",")"));De.output=$j.escapeLast(De.output,"("),Zr("parens")}for(;De.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","}"));De.output=$j.escapeLast(De.output,"{"),Zr("braces")}if(r.strictSlashes!==!0&&(Me.type==="star"||Me.type==="bracket")&&qt({type:"maybe_slash",value:"",output:`${E}?`}),De.backtrack===!0){De.output="";for(let cr of De.tokens)De.output+=cr.output!=null?cr.output:cr.value,cr.suffix&&(De.output+=cr.suffix)}return De};TMr.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=wts[e]||e;let{DOT_LITERAL:o,SLASH_LITERAL:l,ONE_CHAR:A,DOTS_SLASH:f,NO_DOT:I,NO_DOTS:C,NO_DOTS_SLASH:b,STAR:E,START_ANCHOR:N}=zNt.globChars(r.windows),B=r.dot?C:I,F=r.dot?b:I,Q=r.capture?"":"?:",X={negated:!1,prefix:""},ae=r.bash===!0?".*?":E;r.capture&&(ae=`(${ae})`);let ne=de=>de.noglobstar===!0?ae:`(${Q}(?:(?!${N}${de.dot?f:o}).)*?)`,ce=de=>{switch(de){case"*":return`${B}${A}${ae}`;case".*":return`${o}${A}${ae}`;case"*.*":return`${B}${ae}${o}${A}${ae}`;case"*/*":return`${B}${ae}${l}${A}${F}${ae}`;case"**":return B+ne(r);case"**/*":return`(?:${B}${ne(r)}${l})?${F}${A}${ae}`;case"**/*.*":return`(?:${B}${ne(r)}${l})?${F}${ae}${o}${A}${ae}`;case"**/.*":return`(?:${B}${ne(r)}${l})?${o}${A}${ae}`;default:{let be=/^(.*?)\.(\w+)$/.exec(de);if(!be)return;let Se=ce(be[1]);return Se?Se+o+be[2]:void 0}}},fe=$j.removePrefix(e,X),ue=ce(fe);return ue&&r.strictSlashes!==!0&&(ue+=`${l}?`),ue};Tts.exports=TMr});var kts=H((N7u,Dts)=>{"use strict";var col=Bts(),RMr=Rts(),Nts=sje(),lol=ije(),uol=e=>e&&typeof e=="object"&&!Array.isArray(e),cw=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>cw(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=uol(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=a.windows,l=n?cw.compileRe(e,t):cw.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=cw(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=cw.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};cw.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?Nts.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=cw.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};cw.matchBase=(e,t,r)=>(t instanceof RegExp?t:cw.makeRe(t,r)).test(Nts.basename(e));cw.isMatch=(e,t,r)=>cw(t,r)(e);cw.parse=(e,t)=>Array.isArray(e)?e.map(r=>cw.parse(r,t)):RMr(e,{...t,fastpaths:!1});cw.scan=(e,t)=>col(e,t);cw.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=cw.toRegex(A,t);return n===!0&&(f.state=e),f};cw.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=RMr.fastpaths(e,t)),a.output||(a=RMr(e,t)),cw.compileRe(a,t,r,n)};cw.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};cw.constants=lol;Dts.exports=cw});var Zts=H((D7u,Fts)=>{"use strict";var xts=kts(),gol=sje();function Gts(e,t,r=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:gol.isWindows()}),xts(e,t,r)}Object.assign(Gts,xts);Fts.exports=Gts});var Lts=H($Nt=>{"use strict";Object.defineProperty($Nt,"__esModule",{value:!0});$Nt.PatternMatchingHost=void 0;var Aol=Zts(),dol=nje(),NMr=class extends dol.ResolverHost{_patterns=new Map;addPattern(t,r){let n=Array.isArray(t)?t:[t];for(let a of n){let{output:o}=(0,Aol.parse)(a);this._patterns.set(new RegExp(`^${o}$`),r)}}_resolve(t){let r=t;return this._patterns.forEach((n,a)=>{a.test(t)&&(r=n(r))}),r}};$Nt.PatternMatchingHost=NMr});var Vts=H(eDt=>{"use strict";Object.defineProperty(eDt,"__esModule",{value:!0});eDt.CordHost=void 0;var w_=qb(),mte=gte(),pol=YNt(),DMr=class e extends pol.SimpleMemoryHost{_back;_filesToCreate=new Set;_filesToRename=new Map;_filesToRenameRevert=new Map;_filesToDelete=new Set;_filesToOverwrite=new Set;constructor(t){super(),this._back=t}get backend(){return this._back}get capabilities(){return{synchronous:this._back.capabilities.synchronous}}clone(){let t=new e(this._back);return t._cache=new Map(this._cache),t._filesToCreate=new Set(this._filesToCreate),t._filesToRename=new Map(this._filesToRename),t._filesToRenameRevert=new Map(this._filesToRenameRevert),t._filesToDelete=new Set(this._filesToDelete),t._filesToOverwrite=new Set(this._filesToOverwrite),t}commit(t,r=!1){return(0,w_.from)(this.records()).pipe((0,w_.concatMap)(n=>{switch(n.kind){case"delete":return t.delete(n.path);case"rename":return t.rename(n.from,n.to);case"create":return t.exists(n.path).pipe((0,w_.switchMap)(a=>a&&!r?(0,w_.throwError)(new mte.FileAlreadyExistException(n.path)):t.write(n.path,n.content)));case"overwrite":return t.exists(n.path).pipe((0,w_.switchMap)(a=>!a&&!r?(0,w_.throwError)(new mte.FileDoesNotExistException(n.path)):t.write(n.path,n.content)))}}),(0,w_.reduce)(()=>{}))}records(){return[...[...this._filesToDelete.values()].map(t=>({kind:"delete",path:t})),...[...this._filesToRename.entries()].map(([t,r])=>({kind:"rename",from:t,to:r})),...[...this._filesToCreate.values()].map(t=>({kind:"create",path:t,content:this._read(t)})),...[...this._filesToOverwrite.values()].map(t=>({kind:"overwrite",path:t,content:this._read(t)}))]}create(t,r){if(super._exists(t))throw new mte.FileAlreadyExistException(t);return this._filesToDelete.has(t)?(this._filesToDelete.delete(t),this._filesToOverwrite.add(t)):this._filesToCreate.add(t),super.write(t,r)}overwrite(t,r){return this.isDirectory(t).pipe((0,w_.switchMap)(n=>n?(0,w_.throwError)(new mte.PathIsDirectoryException(t)):this.exists(t)),(0,w_.switchMap)(n=>n?(this._filesToCreate.has(t)||this._filesToOverwrite.add(t),super.write(t,r)):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}write(t,r){return this.exists(t).pipe((0,w_.switchMap)(n=>n?this.willRename(t)||this.willDelete(t)?this.create(t,r):this.overwrite(t,r):this.create(t,r)))}read(t){return this._exists(t)?super.read(t):this._back.read(t)}delete(t){if(this._exists(t)){if(this._filesToCreate.has(t))this._filesToCreate.delete(t);else if(this._filesToOverwrite.has(t))this._filesToOverwrite.delete(t),this._filesToDelete.add(t);else{let r=this._filesToRenameRevert.get(t);if(r)this._filesToRenameRevert.delete(t),this._filesToRename.delete(r),this._filesToDelete.add(r);else return(0,w_.throwError)(new mte.UnknownException(`This should never happen. Path: ${JSON.stringify(t)}.`))}return super.delete(t)}else return this._back.exists(t).pipe((0,w_.switchMap)(r=>r?(this._filesToDelete.add(t),(0,w_.of)()):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}rename(t,r){return(0,w_.concat)(this.exists(r),this.exists(t)).pipe((0,w_.toArray)(),(0,w_.switchMap)(([n,a])=>{if(!a)return(0,w_.throwError)(new mte.FileDoesNotExistException(t));if(t===r)return w_.EMPTY;if(n)return(0,w_.throwError)(new mte.FileAlreadyExistException(r));if(this._filesToCreate.has(t))return this._filesToCreate.delete(t),this._filesToCreate.add(r),super.rename(t,r);if(this._filesToOverwrite.has(t))return this._filesToOverwrite.delete(t),(0,w_.concat)(this.rename(t,r),new w_.Observable(l=>{this._filesToOverwrite.add(r),l.complete()}));if(this._filesToDelete.has(r))return this._filesToDelete.delete(r),this._filesToDelete.add(t),this._filesToOverwrite.add(r),this.read(t).pipe((0,w_.map)(l=>this._write(r,l)));let o=this._filesToRenameRevert.get(t);return o&&(this._filesToRename.delete(o),this._filesToRenameRevert.delete(t),t=o),this._filesToRename.set(t,r),this._filesToRenameRevert.set(r,t),this._exists(t)?super.rename(t,r):this._back.read(t).pipe((0,w_.switchMap)(l=>super.write(r,l)))}))}list(t){return(0,w_.concat)(super.list(t),this._back.list(t)).pipe((0,w_.reduce)((r,n)=>(n.forEach(a=>r.add(a)),r),new Set),(0,w_.map)(r=>[...r]))}exists(t){return this._exists(t)?(0,w_.of)(!0):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.exists(t)}isDirectory(t){return this._exists(t)?super.isDirectory(t):this._back.isDirectory(t)}isFile(t){return this._exists(t)?super.isFile(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.isFile(t)}stat(t){return this._exists(t)?super.stat(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(null):this._back.stat(t)}watch(t,r){return null}willCreate(t){return this._filesToCreate.has(t)}willOverwrite(t){return this._filesToOverwrite.has(t)}willDelete(t){return this._filesToDelete.has(t)}willRename(t){return this._filesToRename.has(t)}willRenameTo(t,r){return this._filesToRename.get(t)===r}};eDt.CordHost=DMr});var Pts=H(tDt=>{"use strict";Object.defineProperty(tDt,"__esModule",{value:!0});tDt.SafeReadonlyHost=void 0;var Wle=qb(),kMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}read(t){return this._delegate.read(t)}list(t){return this._delegate.list(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)([])))}exists(t){return this._delegate.exists(t)}isDirectory(t){return this._delegate.isDirectory(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}isFile(t){return this._delegate.isFile(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}stat(t){let r=this._delegate.stat(t);return r&&r.pipe((0,Wle.catchError)(()=>(0,Wle.of)(null)))}};tDt.SafeReadonlyHost=kMr});var Ots=H(rDt=>{"use strict";Object.defineProperty(rDt,"__esModule",{value:!0});rDt.ScopedHost=void 0;var Wts=fxe(),fol=nje(),xMr=class extends fol.ResolverHost{_root;constructor(t,r=Wts.NormalizedRoot){super(t),this._root=r}_resolve(t){return(0,Wts.join)(this._root,t)}};rDt.ScopedHost=xMr});var Hts=H(F2=>{"use strict";var Mts=F2&&F2.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Iol=F2&&F2.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hol=F2&&F2.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var Yts=NO&&NO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Col=NO&&NO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),_ol=NO&&NO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(GMr,"__esModule",{value:!0});GMr.createWorkspaceHost=Eol;var iDt=qb(),_xe=nDt();function Eol(e){return{async readFile(r){let n=await(0,iDt.lastValueFrom)(e.read((0,_xe.normalize)(r)));return _xe.virtualFs.fileBufferToString(n)},async writeFile(r,n){return(0,iDt.lastValueFrom)(e.write((0,_xe.normalize)(r),_xe.virtualFs.stringToFileBuffer(n)))},async isDirectory(r){try{return await(0,iDt.lastValueFrom)(e.isDirectory((0,_xe.normalize)(r)))}catch{return!1}},async isFile(r){try{return await(0,iDt.lastValueFrom)(e.isFile((0,_xe.normalize)(r)))}catch{return!1}}}}});var oDt=H((Xts,sDt)=>{(function(e){if(typeof sDt=="object"&&typeof sDt.exports=="object"){var t=e(wt,Xts);t!==void 0&&(sDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createScanner=void 0;function r(A,f=!1){let I=A.length,C=0,b="",E=0,N=16,B=0,F=0,Q=0,X=0,ae=0;function ne(De,k){let et=0,ct=0;for(;et=48&&Me<=57)ct=ct*16+Me-48;else if(Me>=65&&Me<=70)ct=ct*16+Me-65+10;else if(Me>=97&&Me<=102)ct=ct*16+Me-97+10;else break;C++,et++}return et=I){De+=A.substring(k,C),ae=2;break}let et=A.charCodeAt(C);if(et===34){De+=A.substring(k,C),C++;break}if(et===92){if(De+=A.substring(k,C),C++,C>=I){ae=2;break}switch(A.charCodeAt(C++)){case 34:De+='"';break;case 92:De+="\\";break;case 47:De+="/";break;case 98:De+="\b";break;case 102:De+="\f";break;case 110:De+=` + `)}`),this.errors=t}static createMessages(t){return!t||t.length===0?[]:t.map(n=>{let a=`Data path ${JSON.stringify(n.instancePath)} ${n.message}`;if(n.params)switch(n.keyword){case"additionalProperties":a+=`(${n.params.additionalProperty})`;break;case"enum":a+=`. Allowed values are: ${n.params.allowedValues?.map(o=>`"${o}"`).join(", ")}`;break}return a+"."})}};VV.SchemaValidationException=K5r;var j5r=class e{_ajv;_uriCache=new Map;_uriHandlers=new Set;_pre=new U5r.PartiallyOrderedSet;_post=new U5r.PartiallyOrderedSet;_currentCompilationSchemaInfo;_smartDefaultKeyword=!1;_promptProvider;_sourceMap=new Map;constructor(t=[]){this._ajv=new J5r.default({strict:!1,loadSchema:r=>this._fetch(r),passContext:!0}),(0,jil.default)(this._ajv);for(let r of t)this.addFormat(r)}async _fetch(t){let r=this._uriCache.get(t);if(r)return r;for(let n of this._uriHandlers){let a=n(t);if(a==null)continue;(0,dte.isObservable)(a)&&(a=(0,dte.lastValueFrom)(a));let o=await a;return this._uriCache.set(t,o),o}return new Promise((n,a)=>{let o=new Qes.URL(t);(o.protocol==="https:"?qil:zil).get(o,A=>{if(!A.statusCode||A.statusCode>=300)A.resume(),a(new Error(`Request failed. Status Code: ${A.statusCode}`));else{A.setEncoding("utf8");let f="";A.on("data",I=>{f+=I}),A.on("end",()=>{try{let I=JSON.parse(f);this._uriCache.set(t,I),n(I)}catch(I){a(I)}})}})})}addPreTransform(t,r){this._pre.add(t,r)}addPostTransform(t,r){this._post.add(t,r)}_resolver(t,r){if(!r||!t)return{};let n=r.schemaEnv.root.schema,a=typeof n=="object"?n.$id:null,o=t;typeof a=="string"&&(o=Qes.resolve(a,t),t.startsWith("#")&&(o=a+o));let l=this._ajv.getSchema(o);return{context:l?.schemaEnv.validate,schema:l?.schema}}async \u0275flatten(t){this._ajv.removeSchema(t),this._currentCompilationSchemaInfo=void 0;let r=await this._ajv.compileAsync(t),n=this;function a(l,A,f,I){if(l&&f&&I&&(0,esl.isJsonObject)(l)&&Object.prototype.hasOwnProperty.call(l,"$ref")&&typeof l.$ref=="string"){let C=n._resolver(l.$ref,r);C.schema&&(f[I]=C.schema)}}let o=(0,U5r.deepCopy)(r.schema);return(0,wNt.visitJsonSchema)(o,a),o}async compile(t){let r=await this._compile(t);return(n,a)=>r(n,a)}async _compile(t){if(typeof t=="boolean")return async a=>({success:t,data:a});let r={smartDefaultRecord:new Map,promptDefinitions:[]};this._ajv.removeSchema(t);let n;try{this._currentCompilationSchemaInfo=r,n=this._ajv.compile(t)}catch(a){if(!(a instanceof J5r.default.MissingRefError))throw a;n=await this._ajv.compileAsync(t)}finally{this._currentCompilationSchemaInfo=void 0}return async(a,o)=>{let l={withPrompts:!0,applyPostTransforms:!0,applyPreTransforms:!0,...o},A={promptFieldsWithValue:new Set};if(l.applyPreTransforms)for(let f of this._pre.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));if(await this._applySmartDefaults(a,r.smartDefaultRecord),l.withPrompts){let f=(C,b)=>(C!==void 0&&A.promptFieldsWithValue.add(b),C);typeof t=="object"&&await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));let I=r.promptDefinitions.filter(C=>!A.promptFieldsWithValue.has(C.id));I.length>0&&await this._applyPrompts(a,I)}try{let f=await n.call(A,a);if(!f)return{data:a,success:f,errors:n.errors??[]}}catch(f){if(f instanceof J5r.default.ValidationError)return{data:a,success:!1,errors:f.errors};throw f}if(l.applyPostTransforms)for(let f of this._post.values())a=await(0,dte.lastValueFrom)((0,wNt.visitJson)(a,f,t,this._resolver.bind(this),n));return{data:a,success:!0}}}addFormat(t){this._ajv.addFormat(t.name,t.formatter)}addSmartDefaultProvider(t,r){if(this._sourceMap.has(t))throw new Error(t);this._sourceMap.set(t,r),this._smartDefaultKeyword||(this._smartDefaultKeyword=!0,this._ajv.addKeyword({keyword:"$default",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(l===void 0)return()=>!0;let A=this.normalizeDataPathArr(o);return l.smartDefaultRecord.set(JSON.stringify(A),n),()=>!0},metaSchema:{type:"object",properties:{$source:{type:"string"}},additionalProperties:!0,required:["$source"]}}))}registerUriHandler(t){this._uriHandlers.add(t)}usePromptProvider(t){let r=!!this._promptProvider;this._promptProvider=t,!r&&this._ajv.addKeyword({keyword:"x-prompt",errors:!1,valid:!0,compile:(n,a,o)=>{let l=this._currentCompilationSchemaInfo;if(!l)return()=>!0;let A="/"+this.normalizeDataPathArr(o).join("/"),f,I,C;typeof n=="string"?C=n:(C=n.message,f=n.type,I=n.items);let b=(0,tsl.getTypesOfSchema)(a);f||(b.size===1&&b.has("boolean")?f="confirmation":Array.isArray(a.enum)||b.size===1&&b.has("array")&&a.items&&Array.isArray(a.items.enum)?f="list":f="input");let E;if(f==="list"){E=n.multiselect===void 0?b.size===1&&b.has("array"):n.multiselect;let B=E?a.items&&a.items.enum:a.enum;if(!I&&Array.isArray(B)){I=[];for(let F of B)typeof F=="string"?I.push(F):typeof F=="object"||I.push({label:F.toString(),value:F})}}let N={id:A,type:f,message:C,raw:n,items:I,multiselect:E,propertyTypes:b,default:typeof a.default=="object"&&a.default!==null&&!Array.isArray(a.default)?void 0:a.default,async validator(B){try{let F=await o.self.validate(a,B);if(F)return F;if(o.self.errors?.length)return o.self.errors[0].message}catch(F){let Q=F;if(Array.isArray(Q.errors)&&Q.errors.length)return Q.errors[0].message}return!1}};return l.promptDefinitions.push(N),function(){return this&&this.promptFieldsWithValue&&this.promptFieldsWithValue.add(A),!0}},metaSchema:{oneOf:[{type:"string"},{type:"object",properties:{type:{type:"string"},message:{type:"string"}},additionalProperties:!0,required:["message"]}]}})}async _applyPrompts(t,r){let n=this._promptProvider;if(!n)return;let a=await(0,dte.lastValueFrom)((0,dte.from)(n(r)));for(let o in a){let l=o.split("/").slice(1);e._set(t,l,a[o],null,void 0,!0)}}static _set(t,r,n,a=null,o,l){for(let A=0;A(r&&t(`Option "${o?.parentDataProperty}" is deprecated${typeof r=="string"?": "+r:"."}`),!0),errors:!1})}normalizeDataPathArr(t){return t.dataPathArr.slice(1,t.dataLevel+1).map(r=>typeof r=="number"?r:r.str.replace(/"/g,""))}};VV.CoreSchemaRegistry=j5r});var Ues=H(TNt=>{"use strict";Object.defineProperty(TNt,"__esModule",{value:!0});TNt.isJsonSchema=nsl;TNt.mergeSchemas=isl;var rsl=$Ce();function nsl(e){return(0,rsl.isJsonObject)(e)||e===!1||e===!0}function isl(...e){return e.reduce((t,r)=>r===void 0?t:t===!1||r===!1?!1:t===!0?r:r===!0?t:Array.isArray(t.allOf)?Array.isArray(r.allOf)?{...t,allOf:[...t.allOf,...r.allOf]}:{...t,allOf:[...t.allOf,r]}:Array.isArray(r.allOf)?{...t,allOf:[t,...r.allOf]}:{...t,allOf:[t,r]},!0)}});var jes=H(ID=>{"use strict";var Kes=ID&&ID.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),ssl=ID&&ID.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),osl=ID&&ID.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var zes=RO&&RO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),csl=RO&&RO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lsl=RO&&RO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(NNt,"__esModule",{value:!0});NNt.Logger=void 0;var q5r=qb(),$5r=class extends q5r.Observable{name;parent;_subject=new q5r.Subject;_metadata;_obs=q5r.EMPTY;_subscription=null;get _observable(){return this._obs}set _observable(t){this._subscription&&this._subscription.unsubscribe(),this._obs=t,this.parent&&(this._subscription=this.subscribe(r=>{this.parent&&this.parent._subject.next(r)},r=>{this.parent&&this.parent._subject.error(r)},()=>{this._subscription&&this._subscription.unsubscribe(),this._subscription=null}))}constructor(t,r=null){super(),this.name=t,this.parent=r;let n=[],a=r;for(;a;)n.push(a.name),a=a.parent;this._metadata={name:t,path:n},this._observable=this._subject.asObservable(),this.parent&&this.parent._subject&&this.parent._subject.subscribe(void 0,void 0,()=>this.complete())}asApi(){return{createChild:t=>this.createChild(t),log:(t,r,n)=>this.log(t,r,n),debug:(t,r)=>this.debug(t,r),info:(t,r)=>this.info(t,r),warn:(t,r)=>this.warn(t,r),error:(t,r)=>this.error(t,r),fatal:(t,r)=>this.fatal(t,r)}}createChild(t){return new this.constructor(t,this)}complete(){this._subject.complete()}log(t,r,n={}){let a=Object.assign({},n,this._metadata,{level:t,message:r,timestamp:+Date.now()});this._subject.next(a)}next(t){this._subject.next(t)}debug(t,r={}){return this.log("debug",t,r)}info(t,r={}){return this.log("info",t,r)}warn(t,r={}){return this.log("warn",t,r)}error(t,r={}){return this.log("error",t,r)}fatal(t,r={}){return this.log("fatal",t,r)}toString(){return``}lift(t){return this._observable.lift(t)}subscribe(t,r,n){return this._observable.subscribe.apply(this._observable,arguments)}forEach(t,r=Promise){return this._observable.forEach(t,r)}};NNt.Logger=$5r});var qes=H(DNt=>{"use strict";Object.defineProperty(DNt,"__esModule",{value:!0});DNt.IndentLogger=void 0;var Asl=qb(),dsl=Axe(),eMr={},tMr=class extends dsl.Logger{constructor(t,r=null,n=" "){super(t,r),eMr[n]=eMr[n]||[""];let a=eMr[n];this._observable=this._observable.pipe((0,Asl.map)(o=>{let l=o.path.filter(A=>!!A).length;if(l>=a.length){let A=a[a.length-1];for(;l>=a.length;)A+=n,a.push(A)}return o.message=a[l]+o.message.split(/\n/).join(` +`+a[l]),o}))}};DNt.IndentLogger=tMr});var $es=H(dxe=>{"use strict";Object.defineProperty(dxe,"__esModule",{value:!0});dxe.LevelCapLogger=dxe.LevelTransformLogger=void 0;var psl=Axe(),kNt=class e extends psl.Logger{name;parent;levelTransform;constructor(t,r=null,n){super(t,r),this.name=t,this.parent=r,this.levelTransform=n}log(t,r,n={}){return super.log(this.levelTransform(t),r,n)}createChild(t){return new e(t,this,this.levelTransform)}};dxe.LevelTransformLogger=kNt;var rMr=class e extends kNt{name;parent;levelCap;static levelMap={debug:{debug:"debug",info:"debug",warn:"debug",error:"debug",fatal:"debug"},info:{debug:"debug",info:"info",warn:"info",error:"info",fatal:"info"},warn:{debug:"debug",info:"info",warn:"warn",error:"warn",fatal:"warn"},error:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"error"},fatal:{debug:"debug",info:"info",warn:"warn",error:"error",fatal:"fatal"}};constructor(t,r=null,n){super(t,r,a=>e.levelMap[n][a]||a),this.name=t,this.parent=r,this.levelCap=n}};dxe.LevelCapLogger=rMr});var ets=H(xNt=>{"use strict";Object.defineProperty(xNt,"__esModule",{value:!0});xNt.NullLogger=void 0;var fsl=qb(),Isl=Axe(),nMr=class e extends Isl.Logger{constructor(t=null){super("",t),this._observable=fsl.EMPTY}asApi(){return{createChild:()=>new e(this),log(){},debug(){},info(){},warn(){},error(){},fatal(){}}}};xNt.NullLogger=nMr});var tts=H(GNt=>{"use strict";Object.defineProperty(GNt,"__esModule",{value:!0});GNt.TransformLogger=void 0;var hsl=Axe(),iMr=class extends hsl.Logger{constructor(t,r,n=null){super(t,n),this._observable=r(this._observable)}};GNt.TransformLogger=iMr});var rts=H(G4=>{"use strict";var msl=G4&&G4.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$8e=G4&&G4.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&msl(t,e,r)};Object.defineProperty(G4,"__esModule",{value:!0});$8e(qes(),G4);$8e($es(),G4);$8e(Axe(),G4);$8e(ets(),G4);$8e(tts(),G4)});var oMr=H(pxe=>{"use strict";Object.defineProperty(pxe,"__esModule",{value:!0});pxe.TargetDefinitionCollection=pxe.ProjectDefinitionCollection=void 0;var FNt=class{_listener;_map;constructor(t,r){this._listener=r,this._map=new Map(t&&Object.entries(t))}delete(t){let r=this._map.delete(t);return r&&this._listener?.(t,void 0,this),r}set(t,r){return r!==this.get(t)&&(this._map.set(t,r),this._listener?.(t,r,this)),this}forEach(t,r){this._map.forEach((n,a)=>t(n,a,this),r)}get(t){return this._map.get(t)}has(t){return this._map.has(t)}get size(){return this._map.size}[Symbol.iterator](){return this._map[Symbol.iterator]()}entries(){return this._map.entries()}keys(){return this._map.keys()}values(){return this._map.values()}};function nts(e){let t=new Set;switch(typeof e){case"boolean":case"number":case"string":return!0;case"object":if(e===null)return!0;t.add(e);for(let r of Object.values(e))if(!(typeof e=="object"&&t.has(r))&&!nts(r))return!1;return!0;default:return!1}}var sMr=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Project name already exists.");this._validateName(t.name);let r={root:t.root,prefix:t.prefix,sourceRoot:t.sourceRoot,targets:new ZNt,extensions:{}};if(t.targets)for(let[n,a]of Object.entries(t.targets))a&&r.targets.set(n,a);for(let[n,a]of Object.entries(t))switch(n){case"name":case"root":case"sourceRoot":case"prefix":case"targets":break;default:if(nts(a))r.extensions[n]=a;else throw new TypeError(`"${n}" must be a JSON value.`);break}return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string"||!/^(?:@\w[\w.-]*\/)?\w[\w.-]*$/.test(t))throw new Error("Project name must be a valid npm package name.")}};pxe.ProjectDefinitionCollection=sMr;var ZNt=class extends FNt{constructor(t,r){super(t,r)}add(t){if(this.has(t.name))throw new Error("Target name already exists.");this._validateName(t.name);let r={builder:t.builder,options:t.options,configurations:t.configurations,defaultConfiguration:t.defaultConfiguration};return super.set(t.name,r),r}set(t,r){return this._validateName(t),super.set(t,r),this}_validateName(t){if(typeof t!="string")throw new TypeError("Target name must be a string.")}};pxe.TargetDefinitionCollection=ZNt});var fxe=H(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.path=FI.NormalizedRoot=FI.NormalizedSep=FI.PathCannotBeFragmentException=FI.PathMustBeAbsoluteException=FI.InvalidPathException=void 0;FI.split=aMr;FI.extname=Csl;FI.basename=its;FI.dirname=_sl;FI.join=sts;FI.isAbsolute=PNt;FI.relative=ysl;FI.resolve=bsl;FI.fragment=WNt;FI.resetNormalizeCache=Esl;FI.normalize=tje;FI.noCacheNormalize=ots;FI.asWindowsPath=ats;FI.asPosixPath=vsl;FI.getSystemPath=Bsl;var lMr=gte(),LNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} is invalid.`)}};FI.InvalidPathException=LNt;var eje=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} must be absolute.`)}};FI.PathMustBeAbsoluteException=eje;var VNt=class extends lMr.BaseException{constructor(t){super(`Path ${JSON.stringify(t)} cannot be made a fragment.`)}};FI.PathCannotBeFragmentException=VNt;FI.NormalizedSep="/";FI.NormalizedRoot=FI.NormalizedSep;function aMr(e){let t=e.split(FI.NormalizedSep).map(r=>WNt(r));return t[t.length-1].length===0&&t.pop(),t}function Csl(e){let t=its(e),r=t.lastIndexOf(".");return r<1?"":t.slice(r)}function its(e){return e.lastIndexOf(FI.NormalizedSep)==-1?WNt(e):WNt(e.slice(e.lastIndexOf(FI.NormalizedSep)+1))}function _sl(e){let t=e.lastIndexOf(FI.NormalizedSep);if(t===-1)return"";let r=t===0?1:t;return tje(e.slice(0,r))}function sts(e,...t){return t.length>0?tje((e?e+FI.NormalizedSep:"")+t.join(FI.NormalizedSep)):e}function PNt(e){return e.startsWith(FI.NormalizedSep)}function ysl(e,t){if(!PNt(e))throw new eje(e);if(!PNt(t))throw new eje(t);let r;if(e==t)r="";else{let n=aMr(e),a=aMr(t);for(;n.length>0&&a.length>0&&n[0]==a[0];)n.shift(),a.shift();n.length==0?r=a.join(FI.NormalizedSep):r=n.map(()=>"..").concat(a).join(FI.NormalizedSep)}return tje(r)}function bsl(e,t){return PNt(t)?t:sts(e,t)}function WNt(e){if(e.indexOf(FI.NormalizedSep)!=-1)throw new VNt(e);return e}var cMr=new Map;function Esl(){cMr=new Map}function tje(e){let t=cMr.get(e);return t||(t=ots(e),cMr.set(e,t)),t}function ots(e){if(e==""||e==".")return"";if(e==FI.NormalizedRoot)return FI.NormalizedRoot;let t=e;e.match(/^[A-Z]:[/\\]/i)&&(e="\\"+e[0].toUpperCase()+"\\"+e.slice(3));let r=e.split(/[/\\]/g),n=!1,a=1;for(r[0]!=""&&(r.unshift("."),n=!0);a=2&&r[a-1]!=".."?(r.splice(a-1,2),a--):a++}else r[a]==""?r.splice(a,1):a++;return r.length==1?r[0]==""?FI.NormalizedSep:"":(r[0]=="."&&r.shift(),r.join(FI.NormalizedSep))}var Ssl=(e,...t)=>tje(String.raw(e,...t));FI.path=Ssl;function ats(e){let t=e.match(/^\/(\w)(?:\/(.*))?$/);if(t){let r=t[2]?t[2].replace(/\//g,"\\"):"";return`${t[1]}:\\${r}`}return e.replace(/\//g,"\\")}function vsl(e){return e}function Bsl(e){return process.platform.startsWith("win32")?ats(e):e}});var uMr=H(ONt=>{"use strict";Object.defineProperty(ONt,"__esModule",{value:!0});ONt.stringToFileBuffer=wsl;ONt.fileBufferToString=Tsl;var cts=wt("node:util");function wsl(e){return new cts.TextEncoder().encode(e).buffer}function Tsl(e){return e.toString.length===1?e.toString("utf-8"):new cts.TextDecoder("utf-8").decode(new Uint8Array(e))}});var gMr=H(MNt=>{"use strict";Object.defineProperty(MNt,"__esModule",{value:!0});MNt.HostWatchEventType=void 0;var lts;(function(e){e[e.Changed=0]="Changed",e[e.Created=1]="Created",e[e.Deleted=2]="Deleted",e[e.Renamed=3]="Renamed"})(lts||(MNt.HostWatchEventType=lts={}))});var YNt=H(HNt=>{"use strict";Object.defineProperty(HNt,"__esModule",{value:!0});HNt.SimpleMemoryHost=void 0;var zj=qb(),pte=gte(),aw=fxe(),Ixe=gMr(),AMr=class{_cache=new Map;_watchers=new Map;_newDirStats(){return{inspect(){return""},isFile(){return!1},isDirectory(){return!0},size:0,atime:new Date,ctime:new Date,mtime:new Date,birthtime:new Date,content:null}}_newFileStats(t,r){return{inspect(){return``},isFile(){return!0},isDirectory(){return!1},size:t.byteLength,atime:r?r.atime:new Date,ctime:new Date,mtime:new Date,birthtime:r?r.birthtime:new Date,content:t}}constructor(){this._cache.set((0,aw.normalize)("/"),this._newDirStats())}_toAbsolute(t){return(0,aw.isAbsolute)(t)?t:(0,aw.normalize)("/"+t)}_updateWatchers(t,r){let n=new Date,a=t,o=null;if(this._watchers.size==0)return;let l=this._watchers.get(a);l&&l.forEach(A=>{let[f,I]=A;I.next({path:t,time:n,type:r}),!f.persistent&&r==Ixe.HostWatchEventType.Deleted&&(I.complete(),this._watchers.delete(a))});do{a=o!==null?o:a,o=(0,aw.dirname)(a);let A=this._watchers.get(a);A&&A.forEach(f=>{let[I,C]=f;I.recursive&&(C.next({path:t,time:n,type:r}),!I.persistent&&r==Ixe.HostWatchEventType.Deleted&&(C.complete(),this._watchers.delete(a)))})}while(o!=a)}get capabilities(){return{synchronous:!0}}_write(t,r){t=this._toAbsolute(t);let n=this._cache.get(t);if(n&&n.isDirectory())throw new pte.PathIsDirectoryException(t);let a=(0,aw.split)(t),o=(0,aw.normalize)("/");for(let A of a){o=(0,aw.join)(o,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(o)}else this._cache.set(o,this._newDirStats())}let l=this._newFileStats(r,n);this._cache.set(t,l),this._updateWatchers(t,n?Ixe.HostWatchEventType.Changed:Ixe.HostWatchEventType.Created)}_read(t){t=this._toAbsolute(t);let r=this._cache.get(t);if(r){if(r.isDirectory())throw new pte.PathIsDirectoryException(t);if(r.content)return r.content;throw new pte.PathIsDirectoryException(t)}else throw new pte.FileDoesNotExistException(t)}_delete(t){if(t=this._toAbsolute(t),this._isDirectory(t))for(let[r]of this._cache.entries())(r.startsWith(t+aw.NormalizedSep)||r===t)&&this._cache.delete(r);else this._cache.delete(t);this._updateWatchers(t,Ixe.HostWatchEventType.Deleted)}_rename(t,r){if(t=this._toAbsolute(t),r=this._toAbsolute(r),this._cache.has(t)){if(this._cache.has(r))throw new pte.FileAlreadyExistException(r)}else throw new pte.FileDoesNotExistException(t);if(this._isDirectory(t)){for(let n of this._cache.keys())if(n.startsWith(t+aw.NormalizedSep)){let a=this._cache.get(n);a&&this._cache.set((0,aw.join)(r,aw.NormalizedSep,n.slice(t.length)),a)}}else{let n=this._cache.get(t);if(n){let a=(0,aw.split)(r),o=[],l=(0,aw.normalize)("/");for(let A of a){l=(0,aw.join)(l,A);let f=this._cache.get(A);if(f){if(f.isFile())throw new pte.PathIsFileException(l)}else o.push(l)}for(let A of o)this._cache.set(A,this._newDirStats());this._cache.delete(t),this._cache.set(r,n)}}this._updateWatchers(t,Ixe.HostWatchEventType.Renamed)}_list(t){if(t=this._toAbsolute(t),this._isFile(t))throw new pte.PathIsFileException(t);let r=(0,aw.split)(t),n=new Set;if(t!==aw.NormalizedRoot)for(let a of this._cache.keys())a.startsWith(t+aw.NormalizedSep)&&n.add((0,aw.split)(a)[r.length]);else for(let a of this._cache.keys())a.startsWith(aw.NormalizedSep)&&a!==aw.NormalizedRoot&&n.add((0,aw.split)(a)[1]);return[...n]}_exists(t){return!!this._cache.get(this._toAbsolute(t))}_isDirectory(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isDirectory():!1}_isFile(t){let r=this._cache.get(this._toAbsolute(t));return r?r.isFile():!1}_stat(t){let r=this._cache.get(this._toAbsolute(t));return r||null}_watch(t,r){t=this._toAbsolute(t);let n=new zj.Subject,a=this._watchers.get(t);return a||(a=[],this._watchers.set(t,a)),a.push([r||{},n]),n.asObservable()}write(t,r){return new zj.Observable(n=>{this._write(t,r),n.next(),n.complete()})}read(t){return new zj.Observable(r=>{let n=this._read(t);r.next(n),r.complete()})}delete(t){return new zj.Observable(r=>{this._delete(t),r.next(),r.complete()})}rename(t,r){return new zj.Observable(n=>{this._rename(t,r),n.next(),n.complete()})}list(t){return new zj.Observable(r=>{r.next(this._list(t)),r.complete()})}exists(t){return new zj.Observable(r=>{r.next(this._exists(t)),r.complete()})}isDirectory(t){return new zj.Observable(r=>{r.next(this._isDirectory(t)),r.complete()})}isFile(t){return new zj.Observable(r=>{r.next(this._isFile(t)),r.complete()})}stat(t){return new zj.Observable(r=>{r.next(this._stat(t)),r.complete()})}watch(t,r){return this._watch(t,r)}reset(){this._cache.clear(),this._watchers.clear()}};HNt.SimpleMemoryHost=AMr});var pMr=H(hxe=>{"use strict";Object.defineProperty(hxe,"__esModule",{value:!0});hxe.SyncDelegateHost=hxe.SynchronousDelegateExpectedException=void 0;var Rsl=gte(),rje=class extends Rsl.BaseException{constructor(){super("Expected a synchronous delegate but got an asynchronous one.")}};hxe.SynchronousDelegateExpectedException=rje;var dMr=class{_delegate;constructor(t){if(this._delegate=t,!t.capabilities.synchronous)throw new rje}_doSyncCall(t){let r=!1,n,a;if(t.subscribe(o=>n=o,o=>a=o,()=>r=!0),a!==void 0)throw a;if(!r)throw new rje;return n}get capabilities(){return this._delegate.capabilities}get delegate(){return this._delegate}write(t,r){return this._doSyncCall(this._delegate.write(t,r))}read(t){return this._doSyncCall(this._delegate.read(t))}delete(t){return this._doSyncCall(this._delegate.delete(t))}rename(t,r){return this._doSyncCall(this._delegate.rename(t,r))}list(t){return this._doSyncCall(this._delegate.list(t))}exists(t){return this._doSyncCall(this._delegate.exists(t))}isDirectory(t){return this._doSyncCall(this._delegate.isDirectory(t))}isFile(t){return this._doSyncCall(this._delegate.isFile(t))}stat(t){let r=this._delegate.stat(t);return r?this._doSyncCall(r):null}watch(t,r){return this._delegate.watch(t,r)}};hxe.SyncDelegateHost=dMr});var uts=H(QNt=>{"use strict";Object.defineProperty(QNt,"__esModule",{value:!0});QNt.TestHost=void 0;var fte=fxe(),fMr=uMr(),Nsl=YNt(),Dsl=pMr(),IMr=class e extends Nsl.SimpleMemoryHost{_records=[];_sync=null;constructor(t={}){super();for(let r of Object.getOwnPropertyNames(t))this._write((0,fte.normalize)(r),(0,fMr.stringToFileBuffer)(t[r]))}get records(){return[...this._records]}clearRecords(){this._records=[]}get files(){let t=this.sync;function r(n){return t.list(n).map(a=>(0,fte.join)(n,a)).reduce((a,o)=>t.isDirectory(o)?a.concat(r(o)):a.concat(o),[])}return r((0,fte.normalize)("/"))}get sync(){return this._sync||(this._sync=new Dsl.SyncDelegateHost(this)),this._sync}clone(){let t=new e;return t._cache=new Map(this._cache),t}_write(t,r){return this._records.push({kind:"write",path:t}),super._write(t,r)}_read(t){return this._records.push({kind:"read",path:t}),super._read(t)}_delete(t){return this._records.push({kind:"delete",path:t}),super._delete(t)}_rename(t,r){return this._records.push({kind:"rename",from:t,to:r}),super._rename(t,r)}_list(t){return this._records.push({kind:"list",path:t}),super._list(t)}_exists(t){return this._records.push({kind:"exists",path:t}),super._exists(t)}_isDirectory(t){return this._records.push({kind:"isDirectory",path:t}),super._isDirectory(t)}_isFile(t){return this._records.push({kind:"isFile",path:t}),super._isFile(t)}_stat(t){return this._records.push({kind:"stat",path:t}),super._stat(t)}_watch(t,r){return this._records.push({kind:"watch",path:t}),super._watch(t,r)}$write(t,r){return super._write((0,fte.normalize)(t),(0,fMr.stringToFileBuffer)(r))}$read(t){return(0,fMr.fileBufferToString)(super._read((0,fte.normalize)(t)))}$list(t){return super._list((0,fte.normalize)(t))}$exists(t){return super._exists((0,fte.normalize)(t))}$isDirectory(t){return super._isDirectory((0,fte.normalize)(t))}$isFile(t){return super._isFile((0,fte.normalize)(t))}};QNt.TestHost=IMr});var nje=H(XNt=>{"use strict";Object.defineProperty(XNt,"__esModule",{value:!0});XNt.ResolverHost=void 0;var hMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}write(t,r){return this._delegate.write(this._resolve(t),r)}read(t){return this._delegate.read(this._resolve(t))}delete(t){return this._delegate.delete(this._resolve(t))}rename(t,r){return this._delegate.rename(this._resolve(t),this._resolve(r))}list(t){return this._delegate.list(this._resolve(t))}exists(t){return this._delegate.exists(this._resolve(t))}isDirectory(t){return this._delegate.isDirectory(this._resolve(t))}isFile(t){return this._delegate.isFile(this._resolve(t))}stat(t){return this._delegate.stat(this._resolve(t))}watch(t,r){return this._delegate.watch(this._resolve(t),r)}};XNt.ResolverHost=hMr});var gts=H(UNt=>{"use strict";Object.defineProperty(UNt,"__esModule",{value:!0});UNt.AliasHost=void 0;var JNt=fxe(),ksl=nje(),mMr=class extends ksl.ResolverHost{_aliases=new Map;_resolve(t){let r=this._aliases.get(t),n=(0,JNt.split)(t),a=[];for(;!r&&n.length>0;){let o=(0,JNt.join)(JNt.NormalizedRoot,...n);r=this._aliases.get(o),r&&(r=(0,JNt.join)(r,...a)),a.unshift(n.pop())}return r||t}get aliases(){return this._aliases}};UNt.AliasHost=mMr});var Ats=H(CMr=>{"use strict";Object.defineProperty(CMr,"__esModule",{value:!0});CMr.createSyncHost=Gsl;var xsl=qb();function Ite(e){return new xsl.Observable(t=>{t.next(e()),t.complete()})}function Gsl(e){return new class{get capabilities(){return{synchronous:!0}}read(t){return Ite(()=>e.read(t))}list(t){return Ite(()=>e.list(t))}exists(t){return Ite(()=>e.exists(t))}isDirectory(t){return Ite(()=>e.isDirectory(t))}isFile(t){return Ite(()=>e.isFile(t))}stat(t){return Ite(()=>e.stat(t))}write(t,r){return Ite(()=>e.write(t,r))}delete(t){return Ite(()=>e.delete(t))}rename(t,r){return Ite(()=>e.rename(t,r))}watch(){return null}}}});var dts=H(KNt=>{"use strict";Object.defineProperty(KNt,"__esModule",{value:!0});KNt.Empty=void 0;var mxe=qb(),Fsl=gte(),_Mr=class{capabilities={synchronous:!0};read(t){return(0,mxe.throwError)(new Fsl.FileDoesNotExistException(t))}list(t){return(0,mxe.of)([])}exists(t){return(0,mxe.of)(!1)}isDirectory(t){return(0,mxe.of)(!1)}isFile(t){return(0,mxe.of)(!1)}stat(t){return(0,mxe.of)(null)}};KNt.Empty=_Mr});var ije=H((w7u,mts)=>{"use strict";var qj="\\\\/",pts=`[^${qj}]`,hte="\\.",Zsl="\\+",Lsl="\\?",jNt="\\/",Vsl="(?=.)",fts="[^/]",yMr=`(?:${jNt}|$)`,Its=`(?:^|${jNt})`,bMr=`${hte}{1,2}${yMr}`,Psl=`(?!${hte})`,Wsl=`(?!${Its}${bMr})`,Osl=`(?!${hte}{0,1}${yMr})`,Msl=`(?!${bMr})`,Hsl=`[^.${jNt}]`,Ysl=`${fts}*?`,Qsl="/",hts={DOT_LITERAL:hte,PLUS_LITERAL:Zsl,QMARK_LITERAL:Lsl,SLASH_LITERAL:jNt,ONE_CHAR:Vsl,QMARK:fts,END_ANCHOR:yMr,DOTS_SLASH:bMr,NO_DOT:Psl,NO_DOTS:Wsl,NO_DOT_SLASH:Osl,NO_DOTS_SLASH:Msl,QMARK_NO_DOT:Hsl,STAR:Ysl,START_ANCHOR:Its,SEP:Qsl},Xsl={...hts,SLASH_LITERAL:`[${qj}]`,QMARK:pts,STAR:`${pts}*?`,DOTS_SLASH:`${hte}{1,2}(?:[${qj}]|$)`,NO_DOT:`(?!${hte})`,NO_DOTS:`(?!(?:^|[${qj}])${hte}{1,2}(?:[${qj}]|$))`,NO_DOT_SLASH:`(?!${hte}{0,1}(?:[${qj}]|$))`,NO_DOTS_SLASH:`(?!${hte}{1,2}(?:[${qj}]|$))`,QMARK_NO_DOT:`[^.${qj}]`,START_ANCHOR:`(?:^|[${qj}])`,END_ANCHOR:`(?:[${qj}]|$)`,SEP:"\\"},Jsl={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};mts.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Jsl,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(e){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===!0?Xsl:hts}}});var sje=H(PV=>{"use strict";var{REGEX_BACKSLASH:Usl,REGEX_REMOVE_BACKSLASH:Ksl,REGEX_SPECIAL_CHARS:jsl,REGEX_SPECIAL_CHARS_GLOBAL:zsl}=ije();PV.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);PV.hasRegexChars=e=>jsl.test(e);PV.isRegexChar=e=>e.length===1&&PV.hasRegexChars(e);PV.escapeRegex=e=>e.replace(zsl,"\\$1");PV.toPosixSlashes=e=>e.replace(Usl,"/");PV.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":!1};PV.removeBackslashes=e=>e.replace(Ksl,t=>t==="\\"?"":t);PV.escapeLast=(e,t,r)=>{let n=e.lastIndexOf(t,r);return n===-1?e:e[n-1]==="\\"?PV.escapeLast(e,t,n-1):`${e.slice(0,n)}\\${e.slice(n)}`};PV.removePrefix=(e,t={})=>{let r=e;return r.startsWith("./")&&(r=r.slice(2),t.prefix="./"),r};PV.wrapOutput=(e,t={},r={})=>{let n=r.contains?"":"^",a=r.contains?"":"$",o=`${n}(?:${e})${a}`;return t.negated===!0&&(o=`(?:^(?!${o}).*$)`),o};PV.basename=(e,{windows:t}={})=>{let r=e.split(t?/[\\/]/:"/"),n=r[r.length-1];return n===""?r[r.length-2]:n}});var Bts=H((R7u,vts)=>{"use strict";var Cts=sje(),{CHAR_ASTERISK:EMr,CHAR_AT:qsl,CHAR_BACKWARD_SLASH:oje,CHAR_COMMA:$sl,CHAR_DOT:SMr,CHAR_EXCLAMATION_MARK:vMr,CHAR_FORWARD_SLASH:Sts,CHAR_LEFT_CURLY_BRACE:BMr,CHAR_LEFT_PARENTHESES:wMr,CHAR_LEFT_SQUARE_BRACKET:eol,CHAR_PLUS:tol,CHAR_QUESTION_MARK:_ts,CHAR_RIGHT_CURLY_BRACE:rol,CHAR_RIGHT_PARENTHESES:yts,CHAR_RIGHT_SQUARE_BRACKET:nol}=ije(),bts=e=>e===Sts||e===oje,Ets=e=>{e.isPrefix!==!0&&(e.depth=e.isGlobstar?1/0:1)},iol=(e,t)=>{let r=t||{},n=e.length-1,a=r.parts===!0||r.scanToEnd===!0,o=[],l=[],A=[],f=e,I=-1,C=0,b=0,E=!1,N=!1,B=!1,F=!1,Q=!1,X=!1,ae=!1,ne=!1,ce=!1,fe=!1,ue=0,de,be,Se={value:"",depth:0,isGlob:!1},De=()=>I>=n,k=()=>f.charCodeAt(I+1),et=()=>(de=be,f.charCodeAt(++I));for(;I0&&(Me=f.slice(0,C),f=f.slice(C),b-=C),ct&&B===!0&&b>0?(ct=f.slice(0,b),je=f.slice(b)):B===!0?(ct="",je=f):ct=f,ct&&ct!==""&&ct!=="/"&&ct!==f&&bts(ct.charCodeAt(ct.length-1))&&(ct=ct.slice(0,-1)),r.unescape===!0&&(je&&(je=Cts.removeBackslashes(je)),ct&&ae===!0&&(ct=Cts.removeBackslashes(ct)));let St={prefix:Me,input:e,start:C,base:ct,glob:je,isBrace:E,isBracket:N,isGlob:B,isExtglob:F,isGlobstar:Q,negated:ne,negatedExtglob:ce};if(r.tokens===!0&&(St.maxDepth=0,bts(be)||l.push(Se),St.tokens=l),r.parts===!0||r.tokens===!0){let At;for(let Yt=0;Yt{"use strict";var zNt=ije(),$j=sje(),{MAX_LENGTH:qNt,POSIX_REGEX_SOURCE:sol,REGEX_NON_SPECIAL_CHARS:ool,REGEX_SPECIAL_CHARS_BACKREF:aol,REPLACEMENTS:wts}=zNt,col=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let r=`[${e.join("-")}]`;try{new RegExp(r)}catch{return e.map(a=>$j.escapeRegex(a)).join("..")}return r},Cxe=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,TMr=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=wts[e]||e;let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);let o={type:"bos",value:"",output:r.prepend||""},l=[o],A=r.capture?"":"?:",f=zNt.globChars(r.windows),I=zNt.extglobChars(f),{DOT_LITERAL:C,PLUS_LITERAL:b,SLASH_LITERAL:E,ONE_CHAR:N,DOTS_SLASH:B,NO_DOT:F,NO_DOT_SLASH:Q,NO_DOTS_SLASH:X,QMARK:ae,QMARK_NO_DOT:ne,STAR:ce,START_ANCHOR:fe}=f,ue=cr=>`(${A}(?:(?!${fe}${cr.dot?B:C}).)*?)`,de=r.dot?"":F,be=r.dot?ae:ne,Se=r.bash===!0?ue(r):ce;r.capture&&(Se=`(${Se})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let De={input:e,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:l};e=$j.removePrefix(e,De),a=e.length;let k=[],et=[],ct=[],Me=o,je,St=()=>De.index===a-1,At=De.peek=(cr=1)=>e[De.index+cr],Yt=De.advance=()=>e[++De.index]||"",Tr=()=>e.slice(De.index+1),Nr=(cr="",Ar=0)=>{De.consumed+=cr,De.index+=Ar},er=cr=>{De.output+=cr.output!=null?cr.output:cr.value,Nr(cr.value)},vt=()=>{let cr=1;for(;At()==="!"&&(At(2)!=="("||At(3)==="?");)Yt(),De.start++,cr++;return cr%2===0?!1:(De.negated=!0,De.start++,!0)},xt=cr=>{De[cr]++,ct.push(cr)},Zr=cr=>{De[cr]--,ct.pop()},qt=cr=>{if(Me.type==="globstar"){let Ar=De.braces>0&&(cr.type==="comma"||cr.type==="brace"),qr=cr.extglob===!0||k.length&&(cr.type==="pipe"||cr.type==="paren");cr.type!=="slash"&&cr.type!=="paren"&&!Ar&&!qr&&(De.output=De.output.slice(0,-Me.output.length),Me.type="star",Me.value="*",Me.output=Se,De.output+=Me.output)}if(k.length&&cr.type!=="paren"&&(k[k.length-1].inner+=cr.value),(cr.value||cr.output)&&er(cr),Me&&Me.type==="text"&&cr.type==="text"){Me.output=(Me.output||Me.value)+cr.value,Me.value+=cr.value;return}cr.prev=Me,l.push(cr),Me=cr},Xt=(cr,Ar)=>{let qr={...I[Ar],conditions:1,inner:""};qr.prev=Me,qr.parens=De.parens,qr.output=De.output;let _n=(r.capture?"(":"")+qr.open;xt("parens"),qt({type:cr,value:Ar,output:De.output?"":N}),qt({type:"paren",extglob:!0,value:Yt(),output:_n}),k.push(qr)},lr=cr=>{let Ar=cr.close+(r.capture?")":""),qr;if(cr.type==="negate"){let _n=Se;if(cr.inner&&cr.inner.length>1&&cr.inner.includes("/")&&(_n=ue(r)),(_n!==Se||St()||/^\)+$/.test(Tr()))&&(Ar=cr.close=`)$))${_n}`),cr.inner.includes("*")&&(qr=Tr())&&/^\.[^\\/.]+$/.test(qr)){let ke=TMr(qr,{...t,fastpaths:!1}).output;Ar=cr.close=`)${ke})${_n})`}cr.prev.type==="bos"&&(De.negatedExtglob=!0)}qt({type:"paren",extglob:!0,value:je,output:Ar}),Zr("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(e)){let cr=!1,Ar=e.replace(aol,(qr,_n,ke,jt,Fn,Nn)=>jt==="\\"?(cr=!0,qr):jt==="?"?_n?_n+jt+(Fn?ae.repeat(Fn.length):""):Nn===0?be+(Fn?ae.repeat(Fn.length):""):ae.repeat(ke.length):jt==="."?C.repeat(ke.length):jt==="*"?_n?_n+jt+(Fn?Se:""):Se:_n?qr:`\\${qr}`);return cr===!0&&(r.unescape===!0?Ar=Ar.replace(/\\/g,""):Ar=Ar.replace(/\\+/g,qr=>qr.length%2===0?"\\\\":qr?"\\":"")),Ar===e&&r.contains===!0?(De.output=e,De):(De.output=$j.wrapOutput(Ar,De,t),De)}for(;!St();){if(je=Yt(),je==="\0")continue;if(je==="\\"){let qr=At();if(qr==="/"&&r.bash!==!0||qr==="."||qr===";")continue;if(!qr){je+="\\",qt({type:"text",value:je});continue}let _n=/^\\+/.exec(Tr()),ke=0;if(_n&&_n[0].length>2&&(ke=_n[0].length,De.index+=ke,ke%2!==0&&(je+="\\")),r.unescape===!0?je=Yt():je+=Yt(),De.brackets===0){qt({type:"text",value:je});continue}}if(De.brackets>0&&(je!=="]"||Me.value==="["||Me.value==="[^")){if(r.posix!==!1&&je===":"){let qr=Me.value.slice(1);if(qr.includes("[")&&(Me.posix=!0,qr.includes(":"))){let _n=Me.value.lastIndexOf("["),ke=Me.value.slice(0,_n),jt=Me.value.slice(_n+2),Fn=sol[jt];if(Fn){Me.value=ke+Fn,De.backtrack=!0,Yt(),!o.output&&l.indexOf(Me)===1&&(o.output=N);continue}}}(je==="["&&At()!==":"||je==="-"&&At()==="]")&&(je=`\\${je}`),je==="]"&&(Me.value==="["||Me.value==="[^")&&(je=`\\${je}`),r.posix===!0&&je==="!"&&Me.value==="["&&(je="^"),Me.value+=je,er({value:je});continue}if(De.quotes===1&&je!=='"'){je=$j.escapeRegex(je),Me.value+=je,er({value:je});continue}if(je==='"'){De.quotes=De.quotes===1?0:1,r.keepQuotes===!0&&qt({type:"text",value:je});continue}if(je==="("){xt("parens"),qt({type:"paren",value:je});continue}if(je===")"){if(De.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","("));let qr=k[k.length-1];if(qr&&De.parens===qr.parens+1){lr(k.pop());continue}qt({type:"paren",value:je,output:De.parens?")":"\\)"}),Zr("parens");continue}if(je==="["){if(r.nobracket===!0||!Tr().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));je=`\\${je}`}else xt("brackets");qt({type:"bracket",value:je});continue}if(je==="]"){if(r.nobracket===!0||Me&&Me.type==="bracket"&&Me.value.length===1){qt({type:"text",value:je,output:`\\${je}`});continue}if(De.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("opening","["));qt({type:"text",value:je,output:`\\${je}`});continue}Zr("brackets");let qr=Me.value.slice(1);if(Me.posix!==!0&&qr[0]==="^"&&!qr.includes("/")&&(je=`/${je}`),Me.value+=je,er({value:je}),r.literalBrackets===!1||$j.hasRegexChars(qr))continue;let _n=$j.escapeRegex(Me.value);if(De.output=De.output.slice(0,-Me.value.length),r.literalBrackets===!0){De.output+=_n,Me.value=_n;continue}Me.value=`(${A}${_n}|${Me.value})`,De.output+=Me.value;continue}if(je==="{"&&r.nobrace!==!0){xt("braces");let qr={type:"brace",value:je,output:"(",outputIndex:De.output.length,tokensIndex:De.tokens.length};et.push(qr),qt(qr);continue}if(je==="}"){let qr=et[et.length-1];if(r.nobrace===!0||!qr){qt({type:"text",value:je,output:je});continue}let _n=")";if(qr.dots===!0){let ke=l.slice(),jt=[];for(let Fn=ke.length-1;Fn>=0&&(l.pop(),ke[Fn].type!=="brace");Fn--)ke[Fn].type!=="dots"&&jt.unshift(ke[Fn].value);_n=col(jt,r),De.backtrack=!0}if(qr.comma!==!0&&qr.dots!==!0){let ke=De.output.slice(0,qr.outputIndex),jt=De.tokens.slice(qr.tokensIndex);qr.value=qr.output="\\{",je=_n="\\}",De.output=ke;for(let Fn of jt)De.output+=Fn.output||Fn.value}qt({type:"brace",value:je,output:_n}),Zr("braces"),et.pop();continue}if(je==="|"){k.length>0&&k[k.length-1].conditions++,qt({type:"text",value:je});continue}if(je===","){let qr=je,_n=et[et.length-1];_n&&ct[ct.length-1]==="braces"&&(_n.comma=!0,qr="|"),qt({type:"comma",value:je,output:qr});continue}if(je==="/"){if(Me.type==="dot"&&De.index===De.start+1){De.start=De.index+1,De.consumed="",De.output="",l.pop(),Me=o;continue}qt({type:"slash",value:je,output:E});continue}if(je==="."){if(De.braces>0&&Me.type==="dot"){Me.value==="."&&(Me.output=C);let qr=et[et.length-1];Me.type="dots",Me.output+=je,Me.value+=je,qr.dots=!0;continue}if(De.braces+De.parens===0&&Me.type!=="bos"&&Me.type!=="slash"){qt({type:"text",value:je,output:C});continue}qt({type:"dot",value:je,output:C});continue}if(je==="?"){if(!(Me&&Me.value==="(")&&r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("qmark",je);continue}if(Me&&Me.type==="paren"){let _n=At(),ke=je;(Me.value==="("&&!/[!=<:]/.test(_n)||_n==="<"&&!/<([!=]|\w+>)/.test(Tr()))&&(ke=`\\${je}`),qt({type:"text",value:je,output:ke});continue}if(r.dot!==!0&&(Me.type==="slash"||Me.type==="bos")){qt({type:"qmark",value:je,output:ne});continue}qt({type:"qmark",value:je,output:ae});continue}if(je==="!"){if(r.noextglob!==!0&&At()==="("&&(At(2)!=="?"||!/[!=<:]/.test(At(3)))){Xt("negate",je);continue}if(r.nonegate!==!0&&De.index===0){vt();continue}}if(je==="+"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){Xt("plus",je);continue}if(Me&&Me.value==="("||r.regex===!1){qt({type:"plus",value:je,output:b});continue}if(Me&&(Me.type==="bracket"||Me.type==="paren"||Me.type==="brace")||De.parens>0){qt({type:"plus",value:je});continue}qt({type:"plus",value:b});continue}if(je==="@"){if(r.noextglob!==!0&&At()==="("&&At(2)!=="?"){qt({type:"at",extglob:!0,value:je,output:""});continue}qt({type:"text",value:je});continue}if(je!=="*"){(je==="$"||je==="^")&&(je=`\\${je}`);let qr=ool.exec(Tr());qr&&(je+=qr[0],De.index+=qr[0].length),qt({type:"text",value:je});continue}if(Me&&(Me.type==="globstar"||Me.star===!0)){Me.type="star",Me.star=!0,Me.value+=je,Me.output=Se,De.backtrack=!0,De.globstar=!0,Nr(je);continue}let cr=Tr();if(r.noextglob!==!0&&/^\([^?]/.test(cr)){Xt("star",je);continue}if(Me.type==="star"){if(r.noglobstar===!0){Nr(je);continue}let qr=Me.prev,_n=qr.prev,ke=qr.type==="slash"||qr.type==="bos",jt=_n&&(_n.type==="star"||_n.type==="globstar");if(r.bash===!0&&(!ke||cr[0]&&cr[0]!=="/")){qt({type:"star",value:je,output:""});continue}let Fn=De.braces>0&&(qr.type==="comma"||qr.type==="brace"),Nn=k.length&&(qr.type==="pipe"||qr.type==="paren");if(!ke&&qr.type!=="paren"&&!Fn&&!Nn){qt({type:"star",value:je,output:""});continue}for(;cr.slice(0,3)==="/**";){let Hi=e[De.index+4];if(Hi&&Hi!=="/")break;cr=cr.slice(3),Nr("/**",3)}if(qr.type==="bos"&&St()){Me.type="globstar",Me.value+=je,Me.output=ue(r),De.output=Me.output,De.globstar=!0,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&!jt&&St()){De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=ue(r)+(r.strictSlashes?")":"|$)"),Me.value+=je,De.globstar=!0,De.output+=qr.output+Me.output,Nr(je);continue}if(qr.type==="slash"&&qr.prev.type!=="bos"&&cr[0]==="/"){let Hi=cr[1]!==void 0?"|$":"";De.output=De.output.slice(0,-(qr.output+Me.output).length),qr.output=`(?:${qr.output}`,Me.type="globstar",Me.output=`${ue(r)}${E}|${E}${Hi})`,Me.value+=je,De.output+=qr.output+Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}if(qr.type==="bos"&&cr[0]==="/"){Me.type="globstar",Me.value+=je,Me.output=`(?:^|${E}|${ue(r)}${E})`,De.output=Me.output,De.globstar=!0,Nr(je+Yt()),qt({type:"slash",value:"/",output:""});continue}De.output=De.output.slice(0,-Me.output.length),Me.type="globstar",Me.output=ue(r),Me.value+=je,De.output+=Me.output,De.globstar=!0,Nr(je);continue}let Ar={type:"star",value:je,output:Se};if(r.bash===!0){Ar.output=".*?",(Me.type==="bos"||Me.type==="slash")&&(Ar.output=de+Ar.output),qt(Ar);continue}if(Me&&(Me.type==="bracket"||Me.type==="paren")&&r.regex===!0){Ar.output=je,qt(Ar);continue}(De.index===De.start||Me.type==="slash"||Me.type==="dot")&&(Me.type==="dot"?(De.output+=Q,Me.output+=Q):r.dot===!0?(De.output+=X,Me.output+=X):(De.output+=de,Me.output+=de),At()!=="*"&&(De.output+=N,Me.output+=N)),qt(Ar)}for(;De.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","]"));De.output=$j.escapeLast(De.output,"["),Zr("brackets")}for(;De.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing",")"));De.output=$j.escapeLast(De.output,"("),Zr("parens")}for(;De.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Cxe("closing","}"));De.output=$j.escapeLast(De.output,"{"),Zr("braces")}if(r.strictSlashes!==!0&&(Me.type==="star"||Me.type==="bracket")&&qt({type:"maybe_slash",value:"",output:`${E}?`}),De.backtrack===!0){De.output="";for(let cr of De.tokens)De.output+=cr.output!=null?cr.output:cr.value,cr.suffix&&(De.output+=cr.suffix)}return De};TMr.fastpaths=(e,t)=>{let r={...t},n=typeof r.maxLength=="number"?Math.min(qNt,r.maxLength):qNt,a=e.length;if(a>n)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${n}`);e=wts[e]||e;let{DOT_LITERAL:o,SLASH_LITERAL:l,ONE_CHAR:A,DOTS_SLASH:f,NO_DOT:I,NO_DOTS:C,NO_DOTS_SLASH:b,STAR:E,START_ANCHOR:N}=zNt.globChars(r.windows),B=r.dot?C:I,F=r.dot?b:I,Q=r.capture?"":"?:",X={negated:!1,prefix:""},ae=r.bash===!0?".*?":E;r.capture&&(ae=`(${ae})`);let ne=de=>de.noglobstar===!0?ae:`(${Q}(?:(?!${N}${de.dot?f:o}).)*?)`,ce=de=>{switch(de){case"*":return`${B}${A}${ae}`;case".*":return`${o}${A}${ae}`;case"*.*":return`${B}${ae}${o}${A}${ae}`;case"*/*":return`${B}${ae}${l}${A}${F}${ae}`;case"**":return B+ne(r);case"**/*":return`(?:${B}${ne(r)}${l})?${F}${A}${ae}`;case"**/*.*":return`(?:${B}${ne(r)}${l})?${F}${ae}${o}${A}${ae}`;case"**/.*":return`(?:${B}${ne(r)}${l})?${o}${A}${ae}`;default:{let be=/^(.*?)\.(\w+)$/.exec(de);if(!be)return;let Se=ce(be[1]);return Se?Se+o+be[2]:void 0}}},fe=$j.removePrefix(e,X),ue=ce(fe);return ue&&r.strictSlashes!==!0&&(ue+=`${l}?`),ue};Tts.exports=TMr});var kts=H((D7u,Dts)=>{"use strict";var lol=Bts(),RMr=Rts(),Nts=sje(),uol=ije(),gol=e=>e&&typeof e=="object"&&!Array.isArray(e),cw=(e,t,r=!1)=>{if(Array.isArray(e)){let C=e.map(E=>cw(E,t,r));return E=>{for(let N of C){let B=N(E);if(B)return B}return!1}}let n=gol(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!n)throw new TypeError("Expected pattern to be a non-empty string");let a=t||{},o=a.windows,l=n?cw.compileRe(e,t):cw.makeRe(e,t,!1,!0),A=l.state;delete l.state;let f=()=>!1;if(a.ignore){let C={...t,ignore:null,onMatch:null,onResult:null};f=cw(a.ignore,C,r)}let I=(C,b=!1)=>{let{isMatch:E,match:N,output:B}=cw.test(C,l,t,{glob:e,posix:o}),F={glob:e,state:A,regex:l,posix:o,input:C,output:B,match:N,isMatch:E};return typeof a.onResult=="function"&&a.onResult(F),E===!1?(F.isMatch=!1,b?F:!1):f(C)?(typeof a.onIgnore=="function"&&a.onIgnore(F),F.isMatch=!1,b?F:!1):(typeof a.onMatch=="function"&&a.onMatch(F),b?F:!0)};return r&&(I.state=A),I};cw.test=(e,t,r,{glob:n,posix:a}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return{isMatch:!1,output:""};let o=r||{},l=o.format||(a?Nts.toPosixSlashes:null),A=e===n,f=A&&l?l(e):e;return A===!1&&(f=l?l(e):e,A=f===n),(A===!1||o.capture===!0)&&(o.matchBase===!0||o.basename===!0?A=cw.matchBase(e,t,r,a):A=t.exec(f)),{isMatch:!!A,match:A,output:f}};cw.matchBase=(e,t,r)=>(t instanceof RegExp?t:cw.makeRe(t,r)).test(Nts.basename(e));cw.isMatch=(e,t,r)=>cw(t,r)(e);cw.parse=(e,t)=>Array.isArray(e)?e.map(r=>cw.parse(r,t)):RMr(e,{...t,fastpaths:!1});cw.scan=(e,t)=>lol(e,t);cw.compileRe=(e,t,r=!1,n=!1)=>{if(r===!0)return e.output;let a=t||{},o=a.contains?"":"^",l=a.contains?"":"$",A=`${o}(?:${e.output})${l}`;e&&e.negated===!0&&(A=`^(?!${A}).*$`);let f=cw.toRegex(A,t);return n===!0&&(f.state=e),f};cw.makeRe=(e,t={},r=!1,n=!1)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return t.fastpaths!==!1&&(e[0]==="."||e[0]==="*")&&(a.output=RMr.fastpaths(e,t)),a.output||(a=RMr(e,t)),cw.compileRe(a,t,r,n)};cw.toRegex=(e,t)=>{try{let r=t||{};return new RegExp(e,r.flags||(r.nocase?"i":""))}catch(r){if(t&&t.debug===!0)throw r;return/$^/}};cw.constants=uol;Dts.exports=cw});var Zts=H((k7u,Fts)=>{"use strict";var xts=kts(),Aol=sje();function Gts(e,t,r=!1){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:Aol.isWindows()}),xts(e,t,r)}Object.assign(Gts,xts);Fts.exports=Gts});var Lts=H($Nt=>{"use strict";Object.defineProperty($Nt,"__esModule",{value:!0});$Nt.PatternMatchingHost=void 0;var dol=Zts(),pol=nje(),NMr=class extends pol.ResolverHost{_patterns=new Map;addPattern(t,r){let n=Array.isArray(t)?t:[t];for(let a of n){let{output:o}=(0,dol.parse)(a);this._patterns.set(new RegExp(`^${o}$`),r)}}_resolve(t){let r=t;return this._patterns.forEach((n,a)=>{a.test(t)&&(r=n(r))}),r}};$Nt.PatternMatchingHost=NMr});var Vts=H(eDt=>{"use strict";Object.defineProperty(eDt,"__esModule",{value:!0});eDt.CordHost=void 0;var w_=qb(),mte=gte(),fol=YNt(),DMr=class e extends fol.SimpleMemoryHost{_back;_filesToCreate=new Set;_filesToRename=new Map;_filesToRenameRevert=new Map;_filesToDelete=new Set;_filesToOverwrite=new Set;constructor(t){super(),this._back=t}get backend(){return this._back}get capabilities(){return{synchronous:this._back.capabilities.synchronous}}clone(){let t=new e(this._back);return t._cache=new Map(this._cache),t._filesToCreate=new Set(this._filesToCreate),t._filesToRename=new Map(this._filesToRename),t._filesToRenameRevert=new Map(this._filesToRenameRevert),t._filesToDelete=new Set(this._filesToDelete),t._filesToOverwrite=new Set(this._filesToOverwrite),t}commit(t,r=!1){return(0,w_.from)(this.records()).pipe((0,w_.concatMap)(n=>{switch(n.kind){case"delete":return t.delete(n.path);case"rename":return t.rename(n.from,n.to);case"create":return t.exists(n.path).pipe((0,w_.switchMap)(a=>a&&!r?(0,w_.throwError)(new mte.FileAlreadyExistException(n.path)):t.write(n.path,n.content)));case"overwrite":return t.exists(n.path).pipe((0,w_.switchMap)(a=>!a&&!r?(0,w_.throwError)(new mte.FileDoesNotExistException(n.path)):t.write(n.path,n.content)))}}),(0,w_.reduce)(()=>{}))}records(){return[...[...this._filesToDelete.values()].map(t=>({kind:"delete",path:t})),...[...this._filesToRename.entries()].map(([t,r])=>({kind:"rename",from:t,to:r})),...[...this._filesToCreate.values()].map(t=>({kind:"create",path:t,content:this._read(t)})),...[...this._filesToOverwrite.values()].map(t=>({kind:"overwrite",path:t,content:this._read(t)}))]}create(t,r){if(super._exists(t))throw new mte.FileAlreadyExistException(t);return this._filesToDelete.has(t)?(this._filesToDelete.delete(t),this._filesToOverwrite.add(t)):this._filesToCreate.add(t),super.write(t,r)}overwrite(t,r){return this.isDirectory(t).pipe((0,w_.switchMap)(n=>n?(0,w_.throwError)(new mte.PathIsDirectoryException(t)):this.exists(t)),(0,w_.switchMap)(n=>n?(this._filesToCreate.has(t)||this._filesToOverwrite.add(t),super.write(t,r)):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}write(t,r){return this.exists(t).pipe((0,w_.switchMap)(n=>n?this.willRename(t)||this.willDelete(t)?this.create(t,r):this.overwrite(t,r):this.create(t,r)))}read(t){return this._exists(t)?super.read(t):this._back.read(t)}delete(t){if(this._exists(t)){if(this._filesToCreate.has(t))this._filesToCreate.delete(t);else if(this._filesToOverwrite.has(t))this._filesToOverwrite.delete(t),this._filesToDelete.add(t);else{let r=this._filesToRenameRevert.get(t);if(r)this._filesToRenameRevert.delete(t),this._filesToRename.delete(r),this._filesToDelete.add(r);else return(0,w_.throwError)(new mte.UnknownException(`This should never happen. Path: ${JSON.stringify(t)}.`))}return super.delete(t)}else return this._back.exists(t).pipe((0,w_.switchMap)(r=>r?(this._filesToDelete.add(t),(0,w_.of)()):(0,w_.throwError)(new mte.FileDoesNotExistException(t))))}rename(t,r){return(0,w_.concat)(this.exists(r),this.exists(t)).pipe((0,w_.toArray)(),(0,w_.switchMap)(([n,a])=>{if(!a)return(0,w_.throwError)(new mte.FileDoesNotExistException(t));if(t===r)return w_.EMPTY;if(n)return(0,w_.throwError)(new mte.FileAlreadyExistException(r));if(this._filesToCreate.has(t))return this._filesToCreate.delete(t),this._filesToCreate.add(r),super.rename(t,r);if(this._filesToOverwrite.has(t))return this._filesToOverwrite.delete(t),(0,w_.concat)(this.rename(t,r),new w_.Observable(l=>{this._filesToOverwrite.add(r),l.complete()}));if(this._filesToDelete.has(r))return this._filesToDelete.delete(r),this._filesToDelete.add(t),this._filesToOverwrite.add(r),this.read(t).pipe((0,w_.map)(l=>this._write(r,l)));let o=this._filesToRenameRevert.get(t);return o&&(this._filesToRename.delete(o),this._filesToRenameRevert.delete(t),t=o),this._filesToRename.set(t,r),this._filesToRenameRevert.set(r,t),this._exists(t)?super.rename(t,r):this._back.read(t).pipe((0,w_.switchMap)(l=>super.write(r,l)))}))}list(t){return(0,w_.concat)(super.list(t),this._back.list(t)).pipe((0,w_.reduce)((r,n)=>(n.forEach(a=>r.add(a)),r),new Set),(0,w_.map)(r=>[...r]))}exists(t){return this._exists(t)?(0,w_.of)(!0):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.exists(t)}isDirectory(t){return this._exists(t)?super.isDirectory(t):this._back.isDirectory(t)}isFile(t){return this._exists(t)?super.isFile(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(!1):this._back.isFile(t)}stat(t){return this._exists(t)?super.stat(t):this.willDelete(t)||this.willRename(t)?(0,w_.of)(null):this._back.stat(t)}watch(t,r){return null}willCreate(t){return this._filesToCreate.has(t)}willOverwrite(t){return this._filesToOverwrite.has(t)}willDelete(t){return this._filesToDelete.has(t)}willRename(t){return this._filesToRename.has(t)}willRenameTo(t,r){return this._filesToRename.get(t)===r}};eDt.CordHost=DMr});var Pts=H(tDt=>{"use strict";Object.defineProperty(tDt,"__esModule",{value:!0});tDt.SafeReadonlyHost=void 0;var Wle=qb(),kMr=class{_delegate;constructor(t){this._delegate=t}get capabilities(){return this._delegate.capabilities}read(t){return this._delegate.read(t)}list(t){return this._delegate.list(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)([])))}exists(t){return this._delegate.exists(t)}isDirectory(t){return this._delegate.isDirectory(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}isFile(t){return this._delegate.isFile(t).pipe((0,Wle.catchError)(()=>(0,Wle.of)(!1)))}stat(t){let r=this._delegate.stat(t);return r&&r.pipe((0,Wle.catchError)(()=>(0,Wle.of)(null)))}};tDt.SafeReadonlyHost=kMr});var Ots=H(rDt=>{"use strict";Object.defineProperty(rDt,"__esModule",{value:!0});rDt.ScopedHost=void 0;var Wts=fxe(),Iol=nje(),xMr=class extends Iol.ResolverHost{_root;constructor(t,r=Wts.NormalizedRoot){super(t),this._root=r}_resolve(t){return(0,Wts.join)(this._root,t)}};rDt.ScopedHost=xMr});var Hts=H(F2=>{"use strict";var Mts=F2&&F2.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hol=F2&&F2.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mol=F2&&F2.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";var Yts=NO&&NO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_ol=NO&&NO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),yol=NO&&NO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(GMr,"__esModule",{value:!0});GMr.createWorkspaceHost=Sol;var iDt=qb(),_xe=nDt();function Sol(e){return{async readFile(r){let n=await(0,iDt.lastValueFrom)(e.read((0,_xe.normalize)(r)));return _xe.virtualFs.fileBufferToString(n)},async writeFile(r,n){return(0,iDt.lastValueFrom)(e.write((0,_xe.normalize)(r),_xe.virtualFs.stringToFileBuffer(n)))},async isDirectory(r){try{return await(0,iDt.lastValueFrom)(e.isDirectory((0,_xe.normalize)(r)))}catch{return!1}},async isFile(r){try{return await(0,iDt.lastValueFrom)(e.isFile((0,_xe.normalize)(r)))}catch{return!1}}}}});var oDt=H((Xts,sDt)=>{(function(e){if(typeof sDt=="object"&&typeof sDt.exports=="object"){var t=e(wt,Xts);t!==void 0&&(sDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createScanner=void 0;function r(A,f=!1){let I=A.length,C=0,b="",E=0,N=16,B=0,F=0,Q=0,X=0,ae=0;function ne(De,k){let et=0,ct=0;for(;et=48&&Me<=57)ct=ct*16+Me-48;else if(Me>=65&&Me<=70)ct=ct*16+Me-65+10;else if(Me>=97&&Me<=102)ct=ct*16+Me-97+10;else break;C++,et++}return et=I){De+=A.substring(k,C),ae=2;break}let et=A.charCodeAt(C);if(et===34){De+=A.substring(k,C),C++;break}if(et===92){if(De+=A.substring(k,C),C++,C>=I){ae=2;break}switch(A.charCodeAt(C++)){case 34:De+='"';break;case 92:De+="\\";break;case 47:De+="/";break;case 98:De+="\b";break;case 102:De+="\f";break;case 110:De+=` `;break;case 114:De+="\r";break;case 116:De+=" ";break;case 117:let Me=ne(4,!0);Me>=0?De+=String.fromCharCode(Me):ae=4;break;default:ae=5}k=C;continue}if(et>=0&&et<=31)if(a(et)){De+=A.substring(k,C),ae=2;break}else ae=6;C++}return De}function de(){if(b="",ae=0,E=C,F=B,X=Q,C>=I)return E=I,N=17;let De=A.charCodeAt(C);if(n(De)){do C++,b+=String.fromCharCode(De),De=A.charCodeAt(C);while(n(De));return N=15}if(a(De))return C++,b+=String.fromCharCode(De),De===13&&A.charCodeAt(C)===10&&(C++,b+=` `),B++,Q=C,N=14;switch(De){case 123:return C++,N=1;case 125:return C++,N=2;case 91:return C++,N=3;case 93:return C++,N=4;case 58:return C++,N=6;case 44:return C++,N=5;case 34:return C++,b=ue(),N=10;case 47:let k=C-1;if(A.charCodeAt(C+1)===47){for(C+=2;C=12&&De<=15);return De}return{setPosition:ce,getPosition:()=>C,scan:f?Se:de,getToken:()=>N,getTokenValue:()=>b,getTokenOffset:()=>E,getTokenLength:()=>C-E,getTokenStartLine:()=>F,getTokenStartCharacter:()=>E-X,getTokenError:()=>ae}}t.createScanner=r;function n(A){return A===32||A===9}function a(A){return A===10||A===13}function o(A){return A>=48&&A<=57}var l;(function(A){A[A.lineFeed=10]="lineFeed",A[A.carriageReturn=13]="carriageReturn",A[A.space=32]="space",A[A._0=48]="_0",A[A._1=49]="_1",A[A._2=50]="_2",A[A._3=51]="_3",A[A._4=52]="_4",A[A._5=53]="_5",A[A._6=54]="_6",A[A._7=55]="_7",A[A._8=56]="_8",A[A._9=57]="_9",A[A.a=97]="a",A[A.b=98]="b",A[A.c=99]="c",A[A.d=100]="d",A[A.e=101]="e",A[A.f=102]="f",A[A.g=103]="g",A[A.h=104]="h",A[A.i=105]="i",A[A.j=106]="j",A[A.k=107]="k",A[A.l=108]="l",A[A.m=109]="m",A[A.n=110]="n",A[A.o=111]="o",A[A.p=112]="p",A[A.q=113]="q",A[A.r=114]="r",A[A.s=115]="s",A[A.t=116]="t",A[A.u=117]="u",A[A.v=118]="v",A[A.w=119]="w",A[A.x=120]="x",A[A.y=121]="y",A[A.z=122]="z",A[A.A=65]="A",A[A.B=66]="B",A[A.C=67]="C",A[A.D=68]="D",A[A.E=69]="E",A[A.F=70]="F",A[A.G=71]="G",A[A.H=72]="H",A[A.I=73]="I",A[A.J=74]="J",A[A.K=75]="K",A[A.L=76]="L",A[A.M=77]="M",A[A.N=78]="N",A[A.O=79]="O",A[A.P=80]="P",A[A.Q=81]="Q",A[A.R=82]="R",A[A.S=83]="S",A[A.T=84]="T",A[A.U=85]="U",A[A.V=86]="V",A[A.W=87]="W",A[A.X=88]="X",A[A.Y=89]="Y",A[A.Z=90]="Z",A[A.asterisk=42]="asterisk",A[A.backslash=92]="backslash",A[A.closeBrace=125]="closeBrace",A[A.closeBracket=93]="closeBracket",A[A.colon=58]="colon",A[A.comma=44]="comma",A[A.dot=46]="dot",A[A.doubleQuote=34]="doubleQuote",A[A.minus=45]="minus",A[A.openBrace=123]="openBrace",A[A.openBracket=91]="openBracket",A[A.plus=43]="plus",A[A.slash=47]="slash",A[A.formFeed=12]="formFeed",A[A.tab=9]="tab"})(l||(l={}))})});var Uts=H((Jts,aDt)=>{(function(e){if(typeof aDt=="object"&&typeof aDt.exports=="object"){var t=e(wt,Jts);t!==void 0&&(aDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedEols=t.cachedBreakLinesWithSpaces=t.cachedSpaces=void 0,t.cachedSpaces=new Array(20).fill(0).map((n,a)=>" ".repeat(a));let r=200;t.cachedBreakLinesWithSpaces={" ":{"\n":new Array(r).fill(0).map((n,a)=>` `+" ".repeat(a)),"\r":new Array(r).fill(0).map((n,a)=>"\r"+" ".repeat(a)),"\r\n":new Array(r).fill(0).map((n,a)=>`\r @@ -1214,103 +1214,103 @@ ${t}`);return AWc.USED_METHOD_KEY.has(I)?(A.push(`${t}${b}`),A):(A.push(`${t}${g `+" ".repeat(a)),"\r":new Array(r).fill(0).map((n,a)=>"\r"+" ".repeat(a)),"\r\n":new Array(r).fill(0).map((n,a)=>`\r `+" ".repeat(a))}},t.supportedEols=[` `,"\r",`\r -`]})});var FMr=H((Kts,cDt)=>{var Sol=oDt(),sL=Uts();(function(e){if(typeof cDt=="object"&&typeof cDt.exports=="object"){var t=e(wt,Kts);t!==void 0&&(cDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner","./string-intern"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEOL=t.format=void 0;function r(A,f,I){let C,b,E,N,B;if(f){for(N=f.offset,B=N+f.length,E=N;E>0&&!l(A,E-1);)E--;let et=B;for(;et1)return n(F,X)+n(ne,C+ae);let et=ne.length*(C+ae);return!Q||et>sL.cachedBreakLinesWithSpaces[ce][F].length?F+n(ne,C+ae):et<=0?F:sL.cachedBreakLinesWithSpaces[ce][F][et]}function be(){let et=fe.scan();for(X=0;et===15||et===14;)et===14&&I.keepLines?X+=1:et===14&&(X=1),et=fe.scan();return ue=et===16||fe.getTokenError()!==0,et}let Se=[];function De(et,ct,Me){!ue&&(!f||ctN)&&A.substring(ct,Me)!==et&&Se.push({offset:ct,length:Me-ct,content:et})}let k=be();if(I.keepLines&&X>0&&De(n(F,X),0,0),k!==17){let et=fe.getTokenOffset()+E,ct=ne.length*C<20&&I.insertSpaces?sL.cachedSpaces[ne.length*C]:n(ne,C);De(ct,E,et)}for(;k!==17;){let et=fe.getTokenOffset()+fe.getTokenLength()+E,ct=be(),Me="",je=!1;for(;X===0&&(ct===12||ct===13);){let At=fe.getTokenOffset()+E;De(sL.cachedSpaces[1],et,At),et=fe.getTokenOffset()+fe.getTokenLength()+E,je=ct===12,Me=je?de():"",ct=be()}if(ct===2)k!==1&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==1?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else if(ct===4)k!==3&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==3?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else{switch(k){case 3:case 1:ae++,I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 5:I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 12:Me=de();break;case 13:X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 6:I.keepLines&&X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 10:I.keepLines&&X>0?Me=de():ct===6&&!je&&(Me="");break;case 7:case 8:case 9:case 11:case 2:case 4:I.keepLines&&X>0?Me=de():(ct===12||ct===13)&&!je?Me=sL.cachedSpaces[1]:ct!==5&&ct!==17&&(ue=!0);break;case 16:ue=!0;break}X>0&&(ct===12||ct===13)&&(Me=de())}ct===17&&(I.keepLines&&X>0?Me=de():Me=I.insertFinalNewline?F:"");let St=fe.getTokenOffset()+E;De(Me,et,St),k=ct}return Se}t.format=r;function n(A,f){let I="";for(let C=0;C{var vol=oDt(),sL=Uts();(function(e){if(typeof cDt=="object"&&typeof cDt.exports=="object"){var t=e(wt,Kts);t!==void 0&&(cDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner","./string-intern"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isEOL=t.format=void 0;function r(A,f,I){let C,b,E,N,B;if(f){for(N=f.offset,B=N+f.length,E=N;E>0&&!l(A,E-1);)E--;let et=B;for(;et1)return n(F,X)+n(ne,C+ae);let et=ne.length*(C+ae);return!Q||et>sL.cachedBreakLinesWithSpaces[ce][F].length?F+n(ne,C+ae):et<=0?F:sL.cachedBreakLinesWithSpaces[ce][F][et]}function be(){let et=fe.scan();for(X=0;et===15||et===14;)et===14&&I.keepLines?X+=1:et===14&&(X=1),et=fe.scan();return ue=et===16||fe.getTokenError()!==0,et}let Se=[];function De(et,ct,Me){!ue&&(!f||ctN)&&A.substring(ct,Me)!==et&&Se.push({offset:ct,length:Me-ct,content:et})}let k=be();if(I.keepLines&&X>0&&De(n(F,X),0,0),k!==17){let et=fe.getTokenOffset()+E,ct=ne.length*C<20&&I.insertSpaces?sL.cachedSpaces[ne.length*C]:n(ne,C);De(ct,E,et)}for(;k!==17;){let et=fe.getTokenOffset()+fe.getTokenLength()+E,ct=be(),Me="",je=!1;for(;X===0&&(ct===12||ct===13);){let At=fe.getTokenOffset()+E;De(sL.cachedSpaces[1],et,At),et=fe.getTokenOffset()+fe.getTokenLength()+E,je=ct===12,Me=je?de():"",ct=be()}if(ct===2)k!==1&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==1?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else if(ct===4)k!==3&&ae--,I.keepLines&&X>0||!I.keepLines&&k!==3?Me=de():I.keepLines&&(Me=sL.cachedSpaces[1]);else{switch(k){case 3:case 1:ae++,I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 5:I.keepLines&&X>0||!I.keepLines?Me=de():Me=sL.cachedSpaces[1];break;case 12:Me=de();break;case 13:X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 6:I.keepLines&&X>0?Me=de():je||(Me=sL.cachedSpaces[1]);break;case 10:I.keepLines&&X>0?Me=de():ct===6&&!je&&(Me="");break;case 7:case 8:case 9:case 11:case 2:case 4:I.keepLines&&X>0?Me=de():(ct===12||ct===13)&&!je?Me=sL.cachedSpaces[1]:ct!==5&&ct!==17&&(ue=!0);break;case 16:ue=!0;break}X>0&&(ct===12||ct===13)&&(Me=de())}ct===17&&(I.keepLines&&X>0?Me=de():Me=I.insertFinalNewline?F:"");let St=fe.getTokenOffset()+E;De(Me,et,St),k=ct}return Se}t.format=r;function n(A,f){let I="";for(let C=0;C{var jts=oDt();(function(e){if(typeof lDt=="object"&&typeof lDt.exports=="object"){var t=e(wt,zts);t!==void 0&&(lDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./scanner"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getNodeType=t.stripComments=t.visit=t.findNodeAtOffset=t.contains=t.getNodeValue=t.getNodePath=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=void 0;var r;(function(B){B.DEFAULT={allowTrailingComma:!1}})(r||(r={}));function n(B,F){let Q=[],X=new Object,ae,ne={value:{},offset:0,length:0,type:"object",parent:void 0},ce=!1;function fe(ue,de,be,Se){ne.value=ue,ne.offset=de,ne.length=be,ne.type=Se,ne.colonOffset=void 0,ae=ne}try{b(B,{onObjectBegin:(ue,de)=>{if(F<=ue)throw X;ae=void 0,ce=F>ue,Q.push("")},onObjectProperty:(ue,de,be)=>{if(F{if(F<=ue)throw X;ae=void 0,Q.pop()},onArrayBegin:(ue,de)=>{if(F<=ue)throw X;ae=void 0,Q.push(0)},onArrayEnd:(ue,de)=>{if(F<=ue)throw X;ae=void 0,Q.pop()},onLiteralValue:(ue,de,be)=>{if(F{if(F<=de)throw X;if(ue===":"&&ae&&ae.type==="property")ae.colonOffset=de,ce=!1,ae=void 0;else if(ue===","){let Se=Q[Q.length-1];typeof Se=="number"?Q[Q.length-1]=Se+1:(ce=!0,Q[Q.length-1]=""),ae=void 0}}})}catch(ue){if(ue!==X)throw ue}return{path:Q,previousNode:ae,isAtPropertyKey:ce,matches:ue=>{let de=0;for(let be=0;de{let ue={};ce(ue),ne.push(ae),ae=ue,X=null},onObjectProperty:ue=>{X=ue},onObjectEnd:()=>{ae=ne.pop()},onArrayBegin:()=>{let ue=[];ce(ue),ne.push(ae),ae=ue,X=null},onArrayEnd:()=>{ae=ne.pop()},onLiteralValue:ce,onError:(ue,de,be)=>{F.push({error:ue,offset:de,length:be})}},Q),ae[0]}t.parse=a;function o(B,F=[],Q=r.DEFAULT){let X={type:"array",offset:-1,length:-1,children:[],parent:void 0};function ae(ue){X.type==="property"&&(X.length=ue-X.offset,X=X.parent)}function ne(ue){return X.children.push(ue),ue}b(B,{onObjectBegin:ue=>{X=ne({type:"object",offset:ue,length:-1,parent:X,children:[]})},onObjectProperty:(ue,de,be)=>{X=ne({type:"property",offset:de,length:-1,parent:X,children:[]}),X.children.push({type:"string",value:ue,offset:de,length:be,parent:X})},onObjectEnd:(ue,de)=>{ae(ue+de),X.length=ue+de-X.offset,X=X.parent,ae(ue+de)},onArrayBegin:(ue,de)=>{X=ne({type:"array",offset:ue,length:-1,parent:X,children:[]})},onArrayEnd:(ue,de)=>{X.length=ue+de-X.offset,X=X.parent,ae(ue+de)},onLiteralValue:(ue,de,be)=>{ne({type:N(ue),offset:de,length:be,parent:X,value:ue}),ae(de+be)},onSeparator:(ue,de,be)=>{X.type==="property"&&(ue===":"?X.colonOffset=de:ue===","&&ae(de))},onError:(ue,de,be)=>{F.push({error:ue,offset:de,length:be})}},Q);let fe=X.children[0];return fe&&delete fe.parent,fe}t.parseTree=o;function l(B,F){if(!B)return;let Q=B;for(let X of F)if(typeof X=="string"){if(Q.type!=="object"||!Array.isArray(Q.children))return;let ae=!1;for(let ne of Q.children)if(Array.isArray(ne.children)&&ne.children[0].value===X&&ne.children.length===2){Q=ne.children[1],ae=!0;break}if(!ae)return}else{let ae=X;if(Q.type!=="array"||ae<0||!Array.isArray(Q.children)||ae>=Q.children.length)return;Q=Q.children[ae]}return Q}t.findNodeAtLocation=l;function A(B){if(!B.parent||!B.parent.children)return[];let F=A(B.parent);if(B.parent.type==="property"){let Q=B.parent.children[0].value;F.push(Q)}else if(B.parent.type==="array"){let Q=B.parent.children.indexOf(B);Q!==-1&&F.push(Q)}return F}t.getNodePath=A;function f(B){switch(B.type){case"array":return B.children.map(f);case"object":let F=Object.create(null);for(let Q of B.children){let X=Q.children[1];X&&(F[Q.children[0].value]=f(X))}return F;case"null":case"string":case"number":case"boolean":return B.value;default:return}}t.getNodeValue=f;function I(B,F,Q=!1){return F>=B.offset&&Fne===0&&cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter()):()=>!0}function fe(cr){return cr?Ar=>ne===0&&cr(Ar,X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter()):()=>!0}function ue(cr){return cr?Ar=>ne===0&&cr(Ar,X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter(),()=>ae.slice()):()=>!0}function de(cr){return cr?()=>{ne>0?ne++:cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter(),()=>ae.slice())===!1&&(ne=1)}:()=>!0}function be(cr){return cr?()=>{ne>0&&ne--,ne===0&&cr(X.getTokenOffset(),X.getTokenLength(),X.getTokenStartLine(),X.getTokenStartCharacter())}:()=>!0}let Se=de(F.onObjectBegin),De=ue(F.onObjectProperty),k=be(F.onObjectEnd),et=de(F.onArrayBegin),ct=be(F.onArrayEnd),Me=ue(F.onLiteralValue),je=fe(F.onSeparator),St=ce(F.onComment),At=fe(F.onError),Yt=Q&&Q.disallowComments,Tr=Q&&Q.allowTrailingComma;function Nr(){for(;;){let cr=X.scan();switch(X.getTokenError()){case 4:er(14);break;case 5:er(15);break;case 3:er(13);break;case 1:Yt||er(11);break;case 2:er(12);break;case 6:er(16);break}switch(cr){case 12:case 13:Yt?er(10):St();break;case 16:er(1);break;case 15:case 14:break;default:return cr}}}function er(cr,Ar=[],qr=[]){if(At(cr),Ar.length+qr.length>0){let _n=X.getToken();for(;_n!==17;){if(Ar.indexOf(_n)!==-1){Nr();break}else if(qr.indexOf(_n)!==-1)break;_n=Nr()}}}function vt(cr){let Ar=X.getTokenValue();return cr?Me(Ar):(De(Ar),ae.push(Ar)),Nr(),!0}function xt(){switch(X.getToken()){case 11:let cr=X.getTokenValue(),Ar=Number(cr);isNaN(Ar)&&(er(2),Ar=0),Me(Ar);break;case 7:Me(null);break;case 8:Me(!0);break;case 9:Me(!1);break;default:return!1}return Nr(),!0}function Zr(){return X.getToken()!==10?(er(3,[],[2,5]),!1):(vt(!1),X.getToken()===6?(je(":"),Nr(),lr()||er(4,[],[2,5])):er(5,[],[2,5]),ae.pop(),!0)}function qt(){Se(),Nr();let cr=!1;for(;X.getToken()!==2&&X.getToken()!==17;){if(X.getToken()===5){if(cr||er(4,[],[]),je(","),Nr(),X.getToken()===2&&Tr)break}else cr&&er(6,[],[]);Zr()||er(4,[],[2,5]),cr=!0}return k(),X.getToken()!==2?er(7,[2],[]):Nr(),!0}function Xt(){et(),Nr();let cr=!0,Ar=!1;for(;X.getToken()!==4&&X.getToken()!==17;){if(X.getToken()===5){if(Ar||er(4,[],[]),je(","),Nr(),X.getToken()===4&&Tr)break}else Ar&&er(6,[],[]);cr?(ae.push(0),cr=!1):ae[ae.length-1]++,lr()||er(4,[],[4,5]),Ar=!0}return ct(),cr||ae.pop(),X.getToken()!==4?er(8,[4],[]):Nr(),!0}function lr(){switch(X.getToken()){case 3:return Xt();case 1:return qt();case 10:return vt(!0);default:return xt()}}return Nr(),X.getToken()===17?Q.allowEmptyContent?!0:(er(4,[],[]),!1):lr()?(X.getToken()!==17&&er(9,[],[]),!0):(er(4,[],[]),!1)}t.visit=b;function E(B,F){let Q=(0,jts.createScanner)(B),X=[],ae,ne=0,ce;do switch(ce=Q.getPosition(),ae=Q.scan(),ae){case 12:case 13:case 17:ne!==ce&&X.push(B.substring(ne,ce)),F!==void 0&&X.push(Q.getTokenValue().replace(/[^\r\n]/g,F)),ne=Q.getPosition();break}while(ae!==17);return X.join("")}t.stripComments=E;function N(B){switch(typeof B){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(B){if(Array.isArray(B))return"array"}else return"null";return"object"}default:return"null"}}t.getNodeType=N})});var $ts=H((qts,uDt)=>{var LMr=FMr(),VMr=ZMr();(function(e){if(typeof uDt=="object"&&typeof uDt.exports=="object"){var t=e(wt,qts);t!==void 0&&(uDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./format","./parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isWS=t.applyEdit=t.setProperty=t.removeProperty=void 0;function r(A,f,I){return n(A,f,void 0,I)}t.removeProperty=r;function n(A,f,I,C){let b=f.slice(),E=[],N=(0,VMr.parseTree)(A,E),B,F;for(;b.length>0&&(F=b.pop(),B=(0,VMr.findNodeAtLocation)(N,b),B===void 0&&I!==void 0);)typeof F=="string"?I={[F]:I}:I=[I];if(B)if(B.type==="object"&&typeof F=="string"&&Array.isArray(B.children)){let Q=(0,VMr.findNodeAtLocation)(B,[F]);if(Q!==void 0)if(I===void 0){if(!Q.parent)throw new Error("Malformed AST");let X=B.children.indexOf(Q.parent),ae,ne=Q.parent.offset+Q.parent.length;if(X>0){let ce=B.children[X-1];ae=ce.offset+ce.length}else ae=B.offset+1,B.children.length>1&&(ne=B.children[1].offset);return a(A,{offset:ae,length:ne-ae,content:""},C)}else return a(A,{offset:Q.offset,length:Q.length,content:JSON.stringify(I)},C);else{if(I===void 0)return[];let X=`${JSON.stringify(F)}: ${JSON.stringify(I)}`,ae=C.getInsertionIndex?C.getInsertionIndex(B.children.map(ce=>ce.children[0].value)):B.children.length,ne;if(ae>0){let ce=B.children[ae-1];ne={offset:ce.offset+ce.length,length:0,content:","+X}}else B.children.length===0?ne={offset:B.offset+1,length:0,content:X}:ne={offset:B.offset+1,length:0,content:X+","};return a(A,ne,C)}}else if(B.type==="array"&&typeof F=="number"&&Array.isArray(B.children)){let Q=F;if(Q===-1){let X=`${JSON.stringify(I)}`,ae;if(B.children.length===0)ae={offset:B.offset+1,length:0,content:X};else{let ne=B.children[B.children.length-1];ae={offset:ne.offset+ne.length,length:0,content:","+X}}return a(A,ae,C)}else if(I===void 0&&B.children.length>=0){let X=F,ae=B.children[X],ne;if(B.children.length===1)ne={offset:B.offset+1,length:B.length-2,content:""};else if(B.children.length-1===X){let ce=B.children[X-1],fe=ce.offset+ce.length,ue=B.offset+B.length;ne={offset:fe,length:ue-2-fe,content:""}}else ne={offset:ae.offset,length:B.children[X+1].offset-ae.offset,content:""};return a(A,ne,C)}else if(I!==void 0){let X,ae=`${JSON.stringify(I)}`;if(!C.isArrayInsertion&&B.children.length>F){let ne=B.children[F];X={offset:ne.offset,length:ne.length,content:ae}}else if(B.children.length===0||F===0)X={offset:B.offset+1,length:0,content:B.children.length===0?ae:ae+","};else{let ne=F>B.children.length?B.children.length:F,ce=B.children[ne-1];X={offset:ce.offset+ce.length,length:0,content:","+ae}}return a(A,X,C)}else throw new Error(`Can not ${I===void 0?"remove":C.isArrayInsertion?"insert":"modify"} Array index ${Q} as length is not sufficient`)}else throw new Error(`Can not add ${typeof F!="number"?"index":"property"} to parent of type ${B.type}`);else{if(I===void 0)throw new Error("Can not delete in empty document");return a(A,{offset:N?N.offset:0,length:N?N.length:0,content:JSON.stringify(I)},C)}}t.setProperty=n;function a(A,f,I){if(!I.formattingOptions)return[f];let C=o(A,f),b=f.offset,E=f.offset+f.content.length;if(f.length===0||f.content.length===0){for(;b>0&&!(0,LMr.isEOL)(C,b-1);)b--;for(;E=0;F--){let Q=N[F];C=o(C,Q),b=Math.min(b,Q.offset),E=Math.max(E,Q.offset+Q.length),E+=Q.content.length-Q.length}let B=A.length-(C.length-E)-b;return[{offset:b,length:B,content:C.substring(b,E)}]}function o(A,f){return A.substring(0,f.offset)+f.content+A.substring(f.offset+f.length)}t.applyEdit=o;function l(A,f){return`\r - `.indexOf(A.charAt(f))!==-1}t.isWS=l})});var yxe=H((trs,gDt)=>{var vol=FMr(),ers=$ts(),Bol=oDt(),Cte=ZMr();(function(e){if(typeof gDt=="object"&&typeof gDt.exports=="object"){var t=e(wt,trs);t!==void 0&&(gDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./impl/format","./impl/edit","./impl/scanner","./impl/parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyEdits=t.modify=t.format=t.printParseErrorCode=t.ParseErrorCode=t.stripComments=t.visit=t.getNodeValue=t.getNodePath=t.findNodeAtOffset=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=t.SyntaxKind=t.ScanError=t.createScanner=void 0,t.createScanner=Bol.createScanner;var r;(function(I){I[I.None=0]="None",I[I.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=2]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",I[I.InvalidUnicode=4]="InvalidUnicode",I[I.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",I[I.InvalidCharacter=6]="InvalidCharacter"})(r||(t.ScanError=r={}));var n;(function(I){I[I.OpenBraceToken=1]="OpenBraceToken",I[I.CloseBraceToken=2]="CloseBraceToken",I[I.OpenBracketToken=3]="OpenBracketToken",I[I.CloseBracketToken=4]="CloseBracketToken",I[I.CommaToken=5]="CommaToken",I[I.ColonToken=6]="ColonToken",I[I.NullKeyword=7]="NullKeyword",I[I.TrueKeyword=8]="TrueKeyword",I[I.FalseKeyword=9]="FalseKeyword",I[I.StringLiteral=10]="StringLiteral",I[I.NumericLiteral=11]="NumericLiteral",I[I.LineCommentTrivia=12]="LineCommentTrivia",I[I.BlockCommentTrivia=13]="BlockCommentTrivia",I[I.LineBreakTrivia=14]="LineBreakTrivia",I[I.Trivia=15]="Trivia",I[I.Unknown=16]="Unknown",I[I.EOF=17]="EOF"})(n||(t.SyntaxKind=n={})),t.getLocation=Cte.getLocation,t.parse=Cte.parse,t.parseTree=Cte.parseTree,t.findNodeAtLocation=Cte.findNodeAtLocation,t.findNodeAtOffset=Cte.findNodeAtOffset,t.getNodePath=Cte.getNodePath,t.getNodeValue=Cte.getNodeValue,t.visit=Cte.visit,t.stripComments=Cte.stripComments;var a;(function(I){I[I.InvalidSymbol=1]="InvalidSymbol",I[I.InvalidNumberFormat=2]="InvalidNumberFormat",I[I.PropertyNameExpected=3]="PropertyNameExpected",I[I.ValueExpected=4]="ValueExpected",I[I.ColonExpected=5]="ColonExpected",I[I.CommaExpected=6]="CommaExpected",I[I.CloseBraceExpected=7]="CloseBraceExpected",I[I.CloseBracketExpected=8]="CloseBracketExpected",I[I.EndOfFileExpected=9]="EndOfFileExpected",I[I.InvalidCommentToken=10]="InvalidCommentToken",I[I.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=12]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",I[I.InvalidUnicode=14]="InvalidUnicode",I[I.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",I[I.InvalidCharacter=16]="InvalidCharacter"})(a||(t.ParseErrorCode=a={}));function o(I){switch(I){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return""}t.printParseErrorCode=o;function l(I,C,b){return vol.format(I,C,b)}t.format=l;function A(I,C,b,E){return ers.setProperty(I,C,b,E)}t.modify=A;function f(I,C){let b=C.slice(0).sort((N,B)=>{let F=N.offset-B.offset;return F===0?N.length-B.length:F}),E=I.length;for(let N=b.length-1;N>=0;N--){let B=b[N];if(B.offset+B.length<=E)I=ers.applyEdit(I,B);else throw new Error("Overlapping edit");E=B.offset}return I}t.applyEdits=f})});var WMr=H(bxe=>{"use strict";Object.defineProperty(bxe,"__esModule",{value:!0});bxe.JsonWorkspaceMetadata=bxe.JsonWorkspaceSymbol=void 0;var rrs=yxe();bxe.JsonWorkspaceSymbol=Symbol.for("@angular/core:workspace-json");function nrs(e){return e.replace("~","~0").replace("/","~1")}var PMr=class{filePath;ast;raw;changes=new Map;hasLegacyTargetsName=!0;constructor(t,r,n){this.filePath=t,this.ast=r,this.raw=n}get hasChanges(){return this.changes.size>0}get changeCount(){return this.changes.size}getNodeValueFromAst(t){let r=(0,rrs.findNodeAtLocation)(this.ast,t);return r&&(0,rrs.getNodeValue)(r)}findChangesForPath(t){return this.changes.get(t)}addChange(t,r,n){let a="";for(let l=0;lnrs(l)).join("/");for(let l of this.changes.keys())l.startsWith(o+"/")&&this.changes.delete(l);this.changes.set(o,{jsonPath:t,type:n,value:r})}};bxe.JsonWorkspaceMetadata=PMr});var ors=H(OMr=>{"use strict";Object.defineProperty(OMr,"__esModule",{value:!0});OMr.createVirtualAstObject=Tol;var wol=RNt();function Tol(e,t={}){let r=(n,a,o,l)=>{t.listener&&(o===l||JSON.stringify(o)===JSON.stringify(l)||(Array.isArray(a)?t.listener(n.slice(0,-1),a):t.listener(n,l)))};return srs(Array.isArray(e)?[...e]:{...e},[],r,new Set(t.exclude),t.include?.length?new Set(t.include):void 0)}function srs(e,t,r,n=new Set,a){return new Proxy(e,{getOwnPropertyDescriptor(o,l){if(!(n.has(l)||a&&!a.has(l)))return Reflect.getOwnPropertyDescriptor(o,l)},has(o,l){return typeof l=="symbol"||n.has(l)?!1:Reflect.has(o,l)},get(o,l){if(n.has(l)||a&&!a.has(l))return;let A=Reflect.get(o,l);return typeof l=="symbol"?A:(0,wol.isJsonObject)(A)&&!(A instanceof Map)||Array.isArray(A)?srs(A,[...t,l],r):A},set(o,l,A){if(n.has(l)||a&&!a.has(l))return!1;if(A===void 0)return this.deleteProperty?.(o,l)??!1;if(typeof l=="symbol")return Reflect.set(o,l,A);let f=irs(o,l);return Reflect.set(o,l,A)?(r([...t,l],o,f,A),!0):!1},deleteProperty(o,l){if(n.has(l))return!1;if(typeof l=="symbol")return Reflect.deleteProperty(o,l);let A=irs(o,l);return Reflect.deleteProperty(o,l)&&r([...t,l],o,A,void 0),!0},defineProperty(o,l,A){return typeof l=="symbol"?Reflect.defineProperty(o,l,A):!1},ownKeys(o){return Reflect.ownKeys(o).filter(l=>!n.has(l)&&(!a||a.has(l)))}})}function irs(e,t){if(Array.isArray(e)&&isFinite(+t))return e[+t];if(e&&t in e)return e[t]}});var lrs=H(MMr=>{"use strict";Object.defineProperty(MMr,"__esModule",{value:!0});MMr.readJsonWorkspace=Dol;var _te=yxe(),dDt=$Ce(),ars=oMr(),crs=WMr(),ADt=ors(),Rol=Object.freeze(["cli","newProjectRoot","schematics"]),Nol=Object.freeze(["cli","schematics","projectType","i18n"]);async function Dol(e,t,r={}){let n=await t.readFile(e);if(n===void 0)throw new Error("Unable to read workspace file.");let a=(0,_te.parseTree)(n,void 0,{allowTrailingComma:!0,disallowComments:!1});if(a?.type!=="object"||!a.children)throw new Error("Invalid workspace file - expected JSON object.");let o=(0,_te.findNodeAtLocation)(a,["version"]);if(!o)throw new Error("Unknown format - version specifier not found.");let l=o.value;if(l!==1)throw new Error(`Invalid format version detected - Expected:[ 1 ] Found: [ ${l} ]`);let A={host:t,metadata:new crs.JsonWorkspaceMetadata(e,a,n),trackChanges:!0,unprefixedWorkspaceExtensions:new Set([...Rol,...r.allowedWorkspaceExtensions??[]]),unprefixedProjectExtensions:new Set([...Nol,...r.allowedProjectExtensions??[]]),error(I,C){throw new Error(I)},warn(I,C){console.warn(I)}};return kol(a,A)}function kol(e,t){let r=t.metadata,n,a;t.trackChanges||(a=Object.create(null));let o=(0,_te.getNodeValue)(e);for(let[f,I]of Object.entries(o))if(!(f==="$schema"||f==="version"))if(f==="projects"){let C=(0,_te.findNodeAtLocation)(e,["projects"]);if(!(0,dDt.isJsonObject)(I)||!C){t.error('Invalid "projects" field found; expected an object.',I);continue}n=xol(C,t)}else!t.unprefixedWorkspaceExtensions.has(f)&&!/^[a-z]{1,3}-.*/.test(f)&&t.warn(`Workspace extension with invalid name (${f}) found.`,f),a&&(a[f]=I);let l;t.trackChanges&&(l=(f,I)=>{r.addChange(["projects",f],I,"project")});let A=new ars.ProjectDefinitionCollection(n,l);return{[crs.JsonWorkspaceSymbol]:r,projects:A,extensions:a??(0,ADt.createVirtualAstObject)(o,{exclude:["$schema","version","projects"],listener(f,I){r.addChange(f,I)}})}}function xol(e,t){let r=Object.create(null);for(let[n,a]of Object.entries((0,_te.getNodeValue)(e))){let o=(0,_te.findNodeAtLocation)(e,[n]);if(!(0,dDt.isJsonObject)(a)||!o){t.warn("Skipping invalid project value; expected an object.",a);continue}r[n]=Gol(n,o,t)}return r}function Gol(e,t,r){let n=r.metadata,a,o=!1,l,A;r.trackChanges||(l=Object.create(null),A=Object.create(null));let f=(0,_te.getNodeValue)(t);if(!("root"in f))throw new Error(`Project "${e}" is missing a required property "root".`);for(let[N,B]of Object.entries(f))switch(N){case"targets":case"architect":{let F=(0,_te.findNodeAtLocation)(t,[N]);if(!(0,dDt.isJsonObject)(B)||!F){r.error(`Invalid "${N}" field found; expected an object.`,B);break}o=!0,a=Fol(e,F,r),n.hasLegacyTargetsName=N==="architect";break}case"prefix":case"root":case"sourceRoot":typeof B!="string"&&r.warn(`Project property "${N}" should be a string.`,B),A&&(A[N]=B);break;default:!r.unprefixedProjectExtensions.has(N)&&!/^[a-z]{1,3}-.*/.test(N)&&r.warn(`Project '${e}' contains extension with invalid name (${N}).`,N),l&&(l[N]=B);break}let I;r.trackChanges&&(I=(N,B,F)=>{o?n.addChange(["projects",e,"targets",N],B,"target"):n.addChange(["projects",e,"targets"],F,"targetcollection")});let C={targets:new ars.TargetDefinitionCollection(a,I),extensions:l??(0,ADt.createVirtualAstObject)(f,{exclude:["architect","prefix","root","sourceRoot","targets"],listener(N,B){n.addChange(["projects",e,...N],B)}})},b=new Set(Object.keys(C)),E=A??(0,ADt.createVirtualAstObject)(f,{include:["prefix","root","sourceRoot",...b],listener(N,B){b.has(N[0])||n.addChange(["projects",e,...N],B)}});return Object.assign(E,C)}function Fol(e,t,r){let n=r.metadata,a=Object.create(null);for(let[o,l]of Object.entries((0,_te.getNodeValue)(t))){if(!(0,dDt.isJsonObject)(l)){r.warn("Skipping invalid target value; expected an object.",l);continue}r.trackChanges?a[o]=(0,ADt.createVirtualAstObject)(l,{include:["builder","options","configurations","defaultConfiguration"],listener(A,f){n.addChange(["projects",e,"targets",o,...A],f)}}):a[o]=l}return a}});var drs=H(YMr=>{"use strict";Object.defineProperty(YMr,"__esModule",{value:!0});YMr.writeJsonWorkspace=Vol;var urs=yxe(),Zol=wt("node:os"),Lol=WMr();async function Vol(e,t,r,n={}){let a=e[Lol.JsonWorkspaceSymbol];if(a){if(!a.hasChanges)return;let o=Mol(a);return t.writeFile(r??a.filePath,o)}else{if(!r)throw new Error("path option is required");let o=Pol(e,n.schema),l=JSON.stringify(o,null,2);return t.writeFile(r,l)}}function Pol(e,t){return{$schema:t||"./node_modules/@angular/cli/lib/config/schema.json",version:1,...e.extensions,...aje(e.projects)?{}:{projects:grs(e.projects)}}}function grs(e){let t=Object.create(null);for(let[r,n]of e)t[r]=Ars(n);return t}function Ars(e){let t;if(e.targets.size>0){t=Object.create(null);for(let[n,a]of e.targets)t[n]=HMr(a)}return{...e.extensions,root:e.root,...e.sourceRoot===void 0?{}:{sourceRoot:e.sourceRoot},...e.prefix===void 0?{}:{prefix:e.prefix},...t===void 0?{}:{architect:t}}}function aje(e){return e===void 0||Object.keys(e).length===0}function HMr(e){return{builder:e.builder,...aje(e.options)?{}:{options:e.options},...aje(e.configurations)?{}:{configurations:e.configurations},...e.defaultConfiguration===void 0?{}:{defaultConfiguration:e.defaultConfiguration}}}function Wol(e){let t=Object.create(null);for(let[r,n]of e)t[r]=HMr(n);return t}function Ool(e,t){if(e!==void 0)switch(t){case"project":return Ars(e);case"projectcollection":{let r=grs(e);return aje(r)?void 0:r}case"target":return HMr(e);case"targetcollection":{let r=Wol(e);return aje(r)?void 0:r}default:return e}}function Mol(e){let{raw:t}=e,{changes:r,hasLegacyTargetsName:n}=e;for(let{jsonPath:a,value:o,type:l}of r.values()){n&&a[2]==="targets"&&(a[2]="architect");let A=(0,urs.modify)(t,a,Ool(o,l),{formattingOptions:{insertSpaces:!0,tabSize:2,eol:Hol(t)}});t=(0,urs.applyEdits)(t,A)}return t}function Hol(e){let t=`\r + `.indexOf(A.charAt(f))!==-1}t.isWS=l})});var yxe=H((trs,gDt)=>{var Bol=FMr(),ers=$ts(),wol=oDt(),Cte=ZMr();(function(e){if(typeof gDt=="object"&&typeof gDt.exports=="object"){var t=e(wt,trs);t!==void 0&&(gDt.exports=t)}else typeof define=="function"&&define.amd&&define(["require","exports","./impl/format","./impl/edit","./impl/scanner","./impl/parser"],e)})(function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.applyEdits=t.modify=t.format=t.printParseErrorCode=t.ParseErrorCode=t.stripComments=t.visit=t.getNodeValue=t.getNodePath=t.findNodeAtOffset=t.findNodeAtLocation=t.parseTree=t.parse=t.getLocation=t.SyntaxKind=t.ScanError=t.createScanner=void 0,t.createScanner=wol.createScanner;var r;(function(I){I[I.None=0]="None",I[I.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=2]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",I[I.InvalidUnicode=4]="InvalidUnicode",I[I.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",I[I.InvalidCharacter=6]="InvalidCharacter"})(r||(t.ScanError=r={}));var n;(function(I){I[I.OpenBraceToken=1]="OpenBraceToken",I[I.CloseBraceToken=2]="CloseBraceToken",I[I.OpenBracketToken=3]="OpenBracketToken",I[I.CloseBracketToken=4]="CloseBracketToken",I[I.CommaToken=5]="CommaToken",I[I.ColonToken=6]="ColonToken",I[I.NullKeyword=7]="NullKeyword",I[I.TrueKeyword=8]="TrueKeyword",I[I.FalseKeyword=9]="FalseKeyword",I[I.StringLiteral=10]="StringLiteral",I[I.NumericLiteral=11]="NumericLiteral",I[I.LineCommentTrivia=12]="LineCommentTrivia",I[I.BlockCommentTrivia=13]="BlockCommentTrivia",I[I.LineBreakTrivia=14]="LineBreakTrivia",I[I.Trivia=15]="Trivia",I[I.Unknown=16]="Unknown",I[I.EOF=17]="EOF"})(n||(t.SyntaxKind=n={})),t.getLocation=Cte.getLocation,t.parse=Cte.parse,t.parseTree=Cte.parseTree,t.findNodeAtLocation=Cte.findNodeAtLocation,t.findNodeAtOffset=Cte.findNodeAtOffset,t.getNodePath=Cte.getNodePath,t.getNodeValue=Cte.getNodeValue,t.visit=Cte.visit,t.stripComments=Cte.stripComments;var a;(function(I){I[I.InvalidSymbol=1]="InvalidSymbol",I[I.InvalidNumberFormat=2]="InvalidNumberFormat",I[I.PropertyNameExpected=3]="PropertyNameExpected",I[I.ValueExpected=4]="ValueExpected",I[I.ColonExpected=5]="ColonExpected",I[I.CommaExpected=6]="CommaExpected",I[I.CloseBraceExpected=7]="CloseBraceExpected",I[I.CloseBracketExpected=8]="CloseBracketExpected",I[I.EndOfFileExpected=9]="EndOfFileExpected",I[I.InvalidCommentToken=10]="InvalidCommentToken",I[I.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",I[I.UnexpectedEndOfString=12]="UnexpectedEndOfString",I[I.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",I[I.InvalidUnicode=14]="InvalidUnicode",I[I.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",I[I.InvalidCharacter=16]="InvalidCharacter"})(a||(t.ParseErrorCode=a={}));function o(I){switch(I){case 1:return"InvalidSymbol";case 2:return"InvalidNumberFormat";case 3:return"PropertyNameExpected";case 4:return"ValueExpected";case 5:return"ColonExpected";case 6:return"CommaExpected";case 7:return"CloseBraceExpected";case 8:return"CloseBracketExpected";case 9:return"EndOfFileExpected";case 10:return"InvalidCommentToken";case 11:return"UnexpectedEndOfComment";case 12:return"UnexpectedEndOfString";case 13:return"UnexpectedEndOfNumber";case 14:return"InvalidUnicode";case 15:return"InvalidEscapeCharacter";case 16:return"InvalidCharacter"}return""}t.printParseErrorCode=o;function l(I,C,b){return Bol.format(I,C,b)}t.format=l;function A(I,C,b,E){return ers.setProperty(I,C,b,E)}t.modify=A;function f(I,C){let b=C.slice(0).sort((N,B)=>{let F=N.offset-B.offset;return F===0?N.length-B.length:F}),E=I.length;for(let N=b.length-1;N>=0;N--){let B=b[N];if(B.offset+B.length<=E)I=ers.applyEdit(I,B);else throw new Error("Overlapping edit");E=B.offset}return I}t.applyEdits=f})});var WMr=H(bxe=>{"use strict";Object.defineProperty(bxe,"__esModule",{value:!0});bxe.JsonWorkspaceMetadata=bxe.JsonWorkspaceSymbol=void 0;var rrs=yxe();bxe.JsonWorkspaceSymbol=Symbol.for("@angular/core:workspace-json");function nrs(e){return e.replace("~","~0").replace("/","~1")}var PMr=class{filePath;ast;raw;changes=new Map;hasLegacyTargetsName=!0;constructor(t,r,n){this.filePath=t,this.ast=r,this.raw=n}get hasChanges(){return this.changes.size>0}get changeCount(){return this.changes.size}getNodeValueFromAst(t){let r=(0,rrs.findNodeAtLocation)(this.ast,t);return r&&(0,rrs.getNodeValue)(r)}findChangesForPath(t){return this.changes.get(t)}addChange(t,r,n){let a="";for(let l=0;lnrs(l)).join("/");for(let l of this.changes.keys())l.startsWith(o+"/")&&this.changes.delete(l);this.changes.set(o,{jsonPath:t,type:n,value:r})}};bxe.JsonWorkspaceMetadata=PMr});var ors=H(OMr=>{"use strict";Object.defineProperty(OMr,"__esModule",{value:!0});OMr.createVirtualAstObject=Rol;var Tol=RNt();function Rol(e,t={}){let r=(n,a,o,l)=>{t.listener&&(o===l||JSON.stringify(o)===JSON.stringify(l)||(Array.isArray(a)?t.listener(n.slice(0,-1),a):t.listener(n,l)))};return srs(Array.isArray(e)?[...e]:{...e},[],r,new Set(t.exclude),t.include?.length?new Set(t.include):void 0)}function srs(e,t,r,n=new Set,a){return new Proxy(e,{getOwnPropertyDescriptor(o,l){if(!(n.has(l)||a&&!a.has(l)))return Reflect.getOwnPropertyDescriptor(o,l)},has(o,l){return typeof l=="symbol"||n.has(l)?!1:Reflect.has(o,l)},get(o,l){if(n.has(l)||a&&!a.has(l))return;let A=Reflect.get(o,l);return typeof l=="symbol"?A:(0,Tol.isJsonObject)(A)&&!(A instanceof Map)||Array.isArray(A)?srs(A,[...t,l],r):A},set(o,l,A){if(n.has(l)||a&&!a.has(l))return!1;if(A===void 0)return this.deleteProperty?.(o,l)??!1;if(typeof l=="symbol")return Reflect.set(o,l,A);let f=irs(o,l);return Reflect.set(o,l,A)?(r([...t,l],o,f,A),!0):!1},deleteProperty(o,l){if(n.has(l))return!1;if(typeof l=="symbol")return Reflect.deleteProperty(o,l);let A=irs(o,l);return Reflect.deleteProperty(o,l)&&r([...t,l],o,A,void 0),!0},defineProperty(o,l,A){return typeof l=="symbol"?Reflect.defineProperty(o,l,A):!1},ownKeys(o){return Reflect.ownKeys(o).filter(l=>!n.has(l)&&(!a||a.has(l)))}})}function irs(e,t){if(Array.isArray(e)&&isFinite(+t))return e[+t];if(e&&t in e)return e[t]}});var lrs=H(MMr=>{"use strict";Object.defineProperty(MMr,"__esModule",{value:!0});MMr.readJsonWorkspace=kol;var _te=yxe(),dDt=$Ce(),ars=oMr(),crs=WMr(),ADt=ors(),Nol=Object.freeze(["cli","newProjectRoot","schematics"]),Dol=Object.freeze(["cli","schematics","projectType","i18n"]);async function kol(e,t,r={}){let n=await t.readFile(e);if(n===void 0)throw new Error("Unable to read workspace file.");let a=(0,_te.parseTree)(n,void 0,{allowTrailingComma:!0,disallowComments:!1});if(a?.type!=="object"||!a.children)throw new Error("Invalid workspace file - expected JSON object.");let o=(0,_te.findNodeAtLocation)(a,["version"]);if(!o)throw new Error("Unknown format - version specifier not found.");let l=o.value;if(l!==1)throw new Error(`Invalid format version detected - Expected:[ 1 ] Found: [ ${l} ]`);let A={host:t,metadata:new crs.JsonWorkspaceMetadata(e,a,n),trackChanges:!0,unprefixedWorkspaceExtensions:new Set([...Nol,...r.allowedWorkspaceExtensions??[]]),unprefixedProjectExtensions:new Set([...Dol,...r.allowedProjectExtensions??[]]),error(I,C){throw new Error(I)},warn(I,C){console.warn(I)}};return xol(a,A)}function xol(e,t){let r=t.metadata,n,a;t.trackChanges||(a=Object.create(null));let o=(0,_te.getNodeValue)(e);for(let[f,I]of Object.entries(o))if(!(f==="$schema"||f==="version"))if(f==="projects"){let C=(0,_te.findNodeAtLocation)(e,["projects"]);if(!(0,dDt.isJsonObject)(I)||!C){t.error('Invalid "projects" field found; expected an object.',I);continue}n=Gol(C,t)}else!t.unprefixedWorkspaceExtensions.has(f)&&!/^[a-z]{1,3}-.*/.test(f)&&t.warn(`Workspace extension with invalid name (${f}) found.`,f),a&&(a[f]=I);let l;t.trackChanges&&(l=(f,I)=>{r.addChange(["projects",f],I,"project")});let A=new ars.ProjectDefinitionCollection(n,l);return{[crs.JsonWorkspaceSymbol]:r,projects:A,extensions:a??(0,ADt.createVirtualAstObject)(o,{exclude:["$schema","version","projects"],listener(f,I){r.addChange(f,I)}})}}function Gol(e,t){let r=Object.create(null);for(let[n,a]of Object.entries((0,_te.getNodeValue)(e))){let o=(0,_te.findNodeAtLocation)(e,[n]);if(!(0,dDt.isJsonObject)(a)||!o){t.warn("Skipping invalid project value; expected an object.",a);continue}r[n]=Fol(n,o,t)}return r}function Fol(e,t,r){let n=r.metadata,a,o=!1,l,A;r.trackChanges||(l=Object.create(null),A=Object.create(null));let f=(0,_te.getNodeValue)(t);if(!("root"in f))throw new Error(`Project "${e}" is missing a required property "root".`);for(let[N,B]of Object.entries(f))switch(N){case"targets":case"architect":{let F=(0,_te.findNodeAtLocation)(t,[N]);if(!(0,dDt.isJsonObject)(B)||!F){r.error(`Invalid "${N}" field found; expected an object.`,B);break}o=!0,a=Zol(e,F,r),n.hasLegacyTargetsName=N==="architect";break}case"prefix":case"root":case"sourceRoot":typeof B!="string"&&r.warn(`Project property "${N}" should be a string.`,B),A&&(A[N]=B);break;default:!r.unprefixedProjectExtensions.has(N)&&!/^[a-z]{1,3}-.*/.test(N)&&r.warn(`Project '${e}' contains extension with invalid name (${N}).`,N),l&&(l[N]=B);break}let I;r.trackChanges&&(I=(N,B,F)=>{o?n.addChange(["projects",e,"targets",N],B,"target"):n.addChange(["projects",e,"targets"],F,"targetcollection")});let C={targets:new ars.TargetDefinitionCollection(a,I),extensions:l??(0,ADt.createVirtualAstObject)(f,{exclude:["architect","prefix","root","sourceRoot","targets"],listener(N,B){n.addChange(["projects",e,...N],B)}})},b=new Set(Object.keys(C)),E=A??(0,ADt.createVirtualAstObject)(f,{include:["prefix","root","sourceRoot",...b],listener(N,B){b.has(N[0])||n.addChange(["projects",e,...N],B)}});return Object.assign(E,C)}function Zol(e,t,r){let n=r.metadata,a=Object.create(null);for(let[o,l]of Object.entries((0,_te.getNodeValue)(t))){if(!(0,dDt.isJsonObject)(l)){r.warn("Skipping invalid target value; expected an object.",l);continue}r.trackChanges?a[o]=(0,ADt.createVirtualAstObject)(l,{include:["builder","options","configurations","defaultConfiguration"],listener(A,f){n.addChange(["projects",e,"targets",o,...A],f)}}):a[o]=l}return a}});var drs=H(YMr=>{"use strict";Object.defineProperty(YMr,"__esModule",{value:!0});YMr.writeJsonWorkspace=Pol;var urs=yxe(),Lol=wt("node:os"),Vol=WMr();async function Pol(e,t,r,n={}){let a=e[Vol.JsonWorkspaceSymbol];if(a){if(!a.hasChanges)return;let o=Hol(a);return t.writeFile(r??a.filePath,o)}else{if(!r)throw new Error("path option is required");let o=Wol(e,n.schema),l=JSON.stringify(o,null,2);return t.writeFile(r,l)}}function Wol(e,t){return{$schema:t||"./node_modules/@angular/cli/lib/config/schema.json",version:1,...e.extensions,...aje(e.projects)?{}:{projects:grs(e.projects)}}}function grs(e){let t=Object.create(null);for(let[r,n]of e)t[r]=Ars(n);return t}function Ars(e){let t;if(e.targets.size>0){t=Object.create(null);for(let[n,a]of e.targets)t[n]=HMr(a)}return{...e.extensions,root:e.root,...e.sourceRoot===void 0?{}:{sourceRoot:e.sourceRoot},...e.prefix===void 0?{}:{prefix:e.prefix},...t===void 0?{}:{architect:t}}}function aje(e){return e===void 0||Object.keys(e).length===0}function HMr(e){return{builder:e.builder,...aje(e.options)?{}:{options:e.options},...aje(e.configurations)?{}:{configurations:e.configurations},...e.defaultConfiguration===void 0?{}:{defaultConfiguration:e.defaultConfiguration}}}function Ool(e){let t=Object.create(null);for(let[r,n]of e)t[r]=HMr(n);return t}function Mol(e,t){if(e!==void 0)switch(t){case"project":return Ars(e);case"projectcollection":{let r=grs(e);return aje(r)?void 0:r}case"target":return HMr(e);case"targetcollection":{let r=Ool(e);return aje(r)?void 0:r}default:return e}}function Hol(e){let{raw:t}=e,{changes:r,hasLegacyTargetsName:n}=e;for(let{jsonPath:a,value:o,type:l}of r.values()){n&&a[2]==="targets"&&(a[2]="architect");let A=(0,urs.modify)(t,a,Mol(o,l),{formattingOptions:{insertSpaces:!0,tabSize:2,eol:Yol(t)}});t=(0,urs.applyEdits)(t,A)}return t}function Yol(e){let t=`\r `,r=` -`,n=e.match(/(?:\r?\n)/g);if(n?.length){let a=n.filter(l=>l===t).length,o=n.length-a;return a>o?t:r}return Zol.EOL}});var frs=H(Ole=>{"use strict";Object.defineProperty(Ole,"__esModule",{value:!0});Ole.WorkspaceFormat=void 0;Ole._test_addWorkspaceFile=Xol;Ole._test_removeWorkspaceFile=Jol;Ole.readWorkspace=Uol;Ole.writeWorkspace=Kol;var cje=nDt(),Yol=lrs(),Qol=drs(),prs=new WeakMap,b_e;(function(e){e[e.JSON=0]="JSON"})(b_e||(Ole.WorkspaceFormat=b_e={}));function Xol(e,t){lje[e]=t}function Jol(e){delete lje[e]}var lje={"angular.json":b_e.JSON,".angular.json":b_e.JSON};async function Uol(e,t,r){if(await t.isDirectory(e)){let a=(0,cje.normalize)(e),o=!1;for(let[l,A]of Object.entries(lje)){if(r!==void 0&&r!==A)continue;let f=(0,cje.getSystemPath)((0,cje.join)(a,l));if(await t.isFile(f)){e=f,r=A,o=!0;break}}if(!o)throw new Error("Unable to locate a workspace file for workspace path. Are you missing an `angular.json` or `.angular.json` file?")}else if(r===void 0){let a=(0,cje.basename)((0,cje.normalize)(e));a in lje&&(r=lje[a])}if(r===void 0)throw new Error("Unable to determine format for workspace path.");let n;switch(r){case b_e.JSON:n=await(0,Yol.readJsonWorkspace)(e,t);break;default:throw new Error("Unsupported workspace format.")}return prs.set(n,b_e.JSON),{workspace:n}}async function Kol(e,t,r,n){if(n===void 0&&(n=prs.get(e),n===void 0))throw new Error("A format is required for custom workspace objects.");switch(n){case b_e.JSON:return(0,Qol.writeJsonWorkspace)(e,t,r);default:throw new Error("Unsupported workspace format.")}}});var Irs=H(oL=>{"use strict";var jol=oL&&oL.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zol=oL&&oL.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&jol(t,e,r)};Object.defineProperty(oL,"__esModule",{value:!0});oL.writeWorkspace=oL.readWorkspace=oL.WorkspaceFormat=oL.createWorkspaceHost=void 0;zol(oMr(),oL);var qol=Qts();Object.defineProperty(oL,"createWorkspaceHost",{enumerable:!0,get:function(){return qol.createWorkspaceHost}});var QMr=frs();Object.defineProperty(oL,"WorkspaceFormat",{enumerable:!0,get:function(){return QMr.WorkspaceFormat}});Object.defineProperty(oL,"readWorkspace",{enumerable:!0,get:function(){return QMr.readWorkspace}});Object.defineProperty(oL,"writeWorkspace",{enumerable:!0,get:function(){return QMr.writeWorkspace}})});var Z2=H(IT=>{"use strict";var hrs=IT&&IT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$ol=IT&&IT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),XMr=IT&&IT.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(fDt,"__esModule",{value:!0});fDt.htmlSelectorFormat=void 0;var nal=[[192,214],[216,246],[248,893],[895,8191],[8204,8205],[8255,8256],[8304,8591],[11264,12271],[12289,55295],[63744,64975],[65008,65533],[65536,983039]];function ial(e){let t="^[a-zA-Z][";t+="-.0-9_a-zA-Z\\u{B7}";for(let r of nal)t+=`\\u{${r[0].toString(16)}}-\\u{${r[1].toString(16)}}`;return t+="]*$",new RegExp(t,"u").test(e)}fDt.htmlSelectorFormat={name:"html-selector",formatter:{async:!1,validate:e=>typeof e=="string"&&ial(e)}}});var UMr=H(IDt=>{"use strict";Object.defineProperty(IDt,"__esModule",{value:!0});IDt.pathFormat=void 0;var sal=Z2();IDt.pathFormat={name:"path",formatter:{async:!1,validate:e=>e===(0,sal.normalize)(e)}}});var KMr=H(Mle=>{"use strict";Object.defineProperty(Mle,"__esModule",{value:!0});Mle.standardFormats=Mle.pathFormat=Mle.htmlSelectorFormat=void 0;var oal=JMr(),aal=UMr(),cal=JMr();Object.defineProperty(Mle,"htmlSelectorFormat",{enumerable:!0,get:function(){return cal.htmlSelectorFormat}});var lal=UMr();Object.defineProperty(Mle,"pathFormat",{enumerable:!0,get:function(){return lal.pathFormat}});Mle.standardFormats=[oal.htmlSelectorFormat,aal.pathFormat]});var yH=H(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.Tree=F4.TreeSymbol=F4.FileVisitorCancelToken=F4.MergeStrategy=void 0;var mrs;(function(e){e[e.AllowOverwriteConflict=2]="AllowOverwriteConflict",e[e.AllowCreationConflict=4]="AllowCreationConflict",e[e.AllowDeleteConflict=8]="AllowDeleteConflict",e[e.Default=0]="Default",e[e.Error=1]="Error",e[e.ContentOnly=2]="ContentOnly",e[e.Overwrite=14]="Overwrite"})(mrs||(F4.MergeStrategy=mrs={}));F4.FileVisitorCancelToken=Symbol();F4.TreeSymbol=function(){let e=typeof window=="object"&&window.window===window&&window.Symbol||typeof self=="object"&&self.self===self&&self.Symbol||typeof global=="object"&&global.global===global&&global.Symbol;return e?(e.schematicTree||(e.schematicTree=Symbol("schematic-tree")),e.schematicTree):Symbol("schematic-tree")}();F4.Tree=Object.freeze({isTree(e){return F4.TreeSymbol in e}})});var Z4=H(hD=>{"use strict";Object.defineProperty(hD,"__esModule",{value:!0});hD.UnimplementedException=hD.UnsuccessfulWorkflowExecution=hD.MergeConflictException=hD.InvalidUpdateRecordException=hD.ContentHasMutatedException=hD.FileAlreadyExistException=hD.FileDoesNotExistException=hD.SchematicsException=void 0;var Hle=Z2(),jMr=class extends Hle.BaseException{};hD.SchematicsException=jMr;var zMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" does not exist.`)}};hD.FileDoesNotExistException=zMr;var qMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" already exist.`)}};hD.FileAlreadyExistException=qMr;var $Mr=class extends Hle.BaseException{constructor(t){super(`Content at path "${t}" has changed between the start and the end of an update.`)}};hD.ContentHasMutatedException=$Mr;var eHr=class extends Hle.BaseException{constructor(){super("Invalid record instance.")}};hD.InvalidUpdateRecordException=eHr;var tHr=class extends Hle.BaseException{constructor(t){super(`A merge conflicted on path "${t}".`)}};hD.MergeConflictException=tHr;var rHr=class extends Hle.BaseException{constructor(){super("Workflow did not execute successfully.")}};hD.UnsuccessfulWorkflowExecution=rHr;var nHr=class extends Hle.BaseException{constructor(){super("This function is unimplemented.")}};hD.UnimplementedException=nHr});var mDt=H(hDt=>{"use strict";Object.defineProperty(hDt,"__esModule",{value:!0});hDt.DelegateTree=void 0;var ual=yH(),iHr=class{_other;constructor(t){this._other=t}branch(){return this._other.branch()}merge(t,r){this._other.merge(t,r)}get root(){return this._other.root}read(t){return this._other.read(t)}readText(t){return this._other.readText(t)}readJson(t){return this._other.readJson(t)}exists(t){return this._other.exists(t)}get(t){return this._other.get(t)}getDir(t){return this._other.getDir(t)}visit(t){return this._other.visit(t)}overwrite(t,r){return this._other.overwrite(t,r)}beginUpdate(t){return this._other.beginUpdate(t)}commitUpdate(t){return this._other.commitUpdate(t)}create(t,r){return this._other.create(t,r)}delete(t){return this._other.delete(t)}rename(t,r){return this._other.rename(t,r)}apply(t,r){return this._other.apply(t,r)}get actions(){return this._other.actions}[ual.TreeSymbol](){return this}};hDt.DelegateTree=iHr});var Crs=H(Exe=>{"use strict";Object.defineProperty(Exe,"__esModule",{value:!0});Exe.LazyFileEntry=Exe.SimpleFileEntry=void 0;var sHr=class{_path;_content;constructor(t,r){this._path=t,this._content=r}get path(){return this._path}get content(){return this._content}};Exe.SimpleFileEntry=sHr;var oHr=class{_path;_load;_content=null;constructor(t,r){this._path=t,this._load=r}get path(){return this._path}get content(){return this._content||(this._content=this._load(this._path))}};Exe.LazyFileEntry=oHr});var yrs=H((CDt,_rs)=>{(function(e,t){typeof CDt=="object"&&typeof _rs<"u"?t(CDt):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.sourcemapCodec={}))})(CDt,function(e){"use strict";let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=new Uint8Array(64),o=new Uint8Array(128);for(let Se=0;Se>>=1,Me&&(k=-2147483648|-k),De+k}function A(Se,De,k){let et=De-k;et=et<0?-et<<1|1:et<<1;do{let ct=et&31;et>>>=5,et>0&&(ct|=32),Se.write(a[ct])}while(et>0);return De}function f(Se,De){return Se.pos>=De?!1:Se.peek()!==44}let I=1024*16,C=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(Se){return Buffer.from(Se.buffer,Se.byteOffset,Se.byteLength).toString()}}:{decode(Se){let De="";for(let k=0;k0?k+C.decode(De.subarray(0,et)):k}}class E{constructor(De){this.pos=0,this.buffer=De}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(De){let{buffer:k,pos:et}=this,ct=k.indexOf(De,et);return ct===-1?k.length:ct}}let N=[];function B(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0;for(;k.pos0&&k.write(44),et[0]=A(k,Me,et[0]),A(k,je,0),A(k,Yt,0);let Nr=ct.length===6?1:0;A(k,Nr,0),ct.length===6&&A(k,ct[5],0);for(let er of Tr)A(k,er,0);for(De++;DeSt||vt===St&&xt>=At)break;De=Q(Se,De,k,et)}return k.write(44),et[0]=A(k,St,et[0]),A(k,At,0),De}function X(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0,je=0,St=0,At=0,Yt=0,Tr=0,Nr=0,er=0;do{let vt=k.indexOf(";"),xt=0;for(;k.pos_n;jt--){let Fn=Nr;Nr=l(k,Nr),er=l(k,Nr===Fn?er:0);let Nn=l(k,0);ke.push([Nn,Nr,er])}}else ke=[[_n]];Ar.push(ke)}while(f(k,vt))}qr.bindings=Ar,et.push(qr),ct.push(qr)}Me++,k.pos=vt+1}while(k.pos0&&k.write(44),et[1]=A(k,ct[1],et[1]);let er=(ct.length===6?1:0)|(Tr?2:0)|(Yt?4:0);if(A(k,er,0),ct.length===6){let{4:vt,5:xt}=ct;vt!==et[2]&&(et[3]=0),et[2]=A(k,vt,et[2]),et[3]=A(k,xt,et[3])}if(Tr){let{0:vt,1:xt,2:Zr}=ct.callsite;vt!==et[4]?(et[5]=0,et[6]=0):xt!==et[5]&&(et[6]=0),et[4]=A(k,vt,et[4]),et[5]=A(k,xt,et[5]),et[6]=A(k,Zr,et[6])}if(Nr)for(let vt of Nr){vt.length>1&&A(k,-vt.length,0);let xt=vt[0][0];A(k,xt,0);let Zr=Me,qt=je;for(let Xt=1;XtSt||xt===St&&Zr>=At)break;De=ne(Se,De,k,et)}return et[0]0&&De.write(59),St.length===0)continue;let At=0;for(let Yt=0;Yt0&&De.write(44),At=A(De,Tr[0],At),Tr.length!==1&&(k=A(De,Tr[1],k),et=A(De,Tr[2],et),ct=A(De,Tr[3],ct),Tr.length!==4&&(Me=A(De,Tr[4],Me)))}}return De.flush()}e.decode=fe,e.decodeGeneratedRanges=X,e.decodeOriginalScopes=B,e.encode=be,e.encodeGeneratedRanges=ae,e.encodeOriginalScopes=F,Object.defineProperty(e,"__esModule",{value:!0})})});var Brs=H((szu,vrs)=>{"use strict";var gal=yrs(),_Dt=class e{constructor(t){this.bits=t instanceof e?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},yDt=class e{constructor(t,r,n){this.start=t,this.end=r,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new e(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.startglobalThis.btoa(unescape(encodeURIComponent(e))):typeof Buffer=="function"?e=>Buffer.from(e,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var dal=Aal(),gje=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=gal.encode(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+dal(this.toString())}};function pal(e){let t=e.split(` -`),r=t.filter(o=>/^\t+/.test(o)),n=t.filter(o=>/^ {2,}/.test(o));if(r.length===0&&n.length===0)return null;if(r.length>=n.length)return" ";let a=n.reduce((o,l)=>{let A=/^ +/.exec(l)[0].length;return Math.min(A,o)},1/0);return new Array(a+1).join(" ")}function Ers(e,t){let r=e.split(/[/\\]/),n=t.split(/[/\\]/);for(r.pop();r[0]===n[0];)r.shift(),n.shift();if(r.length){let a=r.length;for(;a--;)r[a]=".."}return r.concat(n).join("/")}var fal=Object.prototype.toString;function Srs(e){return fal.call(e)==="[object Object]"}function aHr(e){let t=e.split(` -`),r=[];for(let n=0,a=0;n>1;al===t).length,o=n.length-a;return a>o?t:r}return Lol.EOL}});var frs=H(Ole=>{"use strict";Object.defineProperty(Ole,"__esModule",{value:!0});Ole.WorkspaceFormat=void 0;Ole._test_addWorkspaceFile=Jol;Ole._test_removeWorkspaceFile=Uol;Ole.readWorkspace=Kol;Ole.writeWorkspace=jol;var cje=nDt(),Qol=lrs(),Xol=drs(),prs=new WeakMap,b_e;(function(e){e[e.JSON=0]="JSON"})(b_e||(Ole.WorkspaceFormat=b_e={}));function Jol(e,t){lje[e]=t}function Uol(e){delete lje[e]}var lje={"angular.json":b_e.JSON,".angular.json":b_e.JSON};async function Kol(e,t,r){if(await t.isDirectory(e)){let a=(0,cje.normalize)(e),o=!1;for(let[l,A]of Object.entries(lje)){if(r!==void 0&&r!==A)continue;let f=(0,cje.getSystemPath)((0,cje.join)(a,l));if(await t.isFile(f)){e=f,r=A,o=!0;break}}if(!o)throw new Error("Unable to locate a workspace file for workspace path. Are you missing an `angular.json` or `.angular.json` file?")}else if(r===void 0){let a=(0,cje.basename)((0,cje.normalize)(e));a in lje&&(r=lje[a])}if(r===void 0)throw new Error("Unable to determine format for workspace path.");let n;switch(r){case b_e.JSON:n=await(0,Qol.readJsonWorkspace)(e,t);break;default:throw new Error("Unsupported workspace format.")}return prs.set(n,b_e.JSON),{workspace:n}}async function jol(e,t,r,n){if(n===void 0&&(n=prs.get(e),n===void 0))throw new Error("A format is required for custom workspace objects.");switch(n){case b_e.JSON:return(0,Xol.writeJsonWorkspace)(e,t,r);default:throw new Error("Unsupported workspace format.")}}});var Irs=H(oL=>{"use strict";var zol=oL&&oL.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),qol=oL&&oL.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&zol(t,e,r)};Object.defineProperty(oL,"__esModule",{value:!0});oL.writeWorkspace=oL.readWorkspace=oL.WorkspaceFormat=oL.createWorkspaceHost=void 0;qol(oMr(),oL);var $ol=Qts();Object.defineProperty(oL,"createWorkspaceHost",{enumerable:!0,get:function(){return $ol.createWorkspaceHost}});var QMr=frs();Object.defineProperty(oL,"WorkspaceFormat",{enumerable:!0,get:function(){return QMr.WorkspaceFormat}});Object.defineProperty(oL,"readWorkspace",{enumerable:!0,get:function(){return QMr.readWorkspace}});Object.defineProperty(oL,"writeWorkspace",{enumerable:!0,get:function(){return QMr.writeWorkspace}})});var Z2=H(IT=>{"use strict";var hrs=IT&&IT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),eal=IT&&IT.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),XMr=IT&&IT.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(fDt,"__esModule",{value:!0});fDt.htmlSelectorFormat=void 0;var ial=[[192,214],[216,246],[248,893],[895,8191],[8204,8205],[8255,8256],[8304,8591],[11264,12271],[12289,55295],[63744,64975],[65008,65533],[65536,983039]];function sal(e){let t="^[a-zA-Z][";t+="-.0-9_a-zA-Z\\u{B7}";for(let r of ial)t+=`\\u{${r[0].toString(16)}}-\\u{${r[1].toString(16)}}`;return t+="]*$",new RegExp(t,"u").test(e)}fDt.htmlSelectorFormat={name:"html-selector",formatter:{async:!1,validate:e=>typeof e=="string"&&sal(e)}}});var UMr=H(IDt=>{"use strict";Object.defineProperty(IDt,"__esModule",{value:!0});IDt.pathFormat=void 0;var oal=Z2();IDt.pathFormat={name:"path",formatter:{async:!1,validate:e=>e===(0,oal.normalize)(e)}}});var KMr=H(Mle=>{"use strict";Object.defineProperty(Mle,"__esModule",{value:!0});Mle.standardFormats=Mle.pathFormat=Mle.htmlSelectorFormat=void 0;var aal=JMr(),cal=UMr(),lal=JMr();Object.defineProperty(Mle,"htmlSelectorFormat",{enumerable:!0,get:function(){return lal.htmlSelectorFormat}});var ual=UMr();Object.defineProperty(Mle,"pathFormat",{enumerable:!0,get:function(){return ual.pathFormat}});Mle.standardFormats=[aal.htmlSelectorFormat,cal.pathFormat]});var yH=H(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.Tree=F4.TreeSymbol=F4.FileVisitorCancelToken=F4.MergeStrategy=void 0;var mrs;(function(e){e[e.AllowOverwriteConflict=2]="AllowOverwriteConflict",e[e.AllowCreationConflict=4]="AllowCreationConflict",e[e.AllowDeleteConflict=8]="AllowDeleteConflict",e[e.Default=0]="Default",e[e.Error=1]="Error",e[e.ContentOnly=2]="ContentOnly",e[e.Overwrite=14]="Overwrite"})(mrs||(F4.MergeStrategy=mrs={}));F4.FileVisitorCancelToken=Symbol();F4.TreeSymbol=function(){let e=typeof window=="object"&&window.window===window&&window.Symbol||typeof self=="object"&&self.self===self&&self.Symbol||typeof global=="object"&&global.global===global&&global.Symbol;return e?(e.schematicTree||(e.schematicTree=Symbol("schematic-tree")),e.schematicTree):Symbol("schematic-tree")}();F4.Tree=Object.freeze({isTree(e){return F4.TreeSymbol in e}})});var Z4=H(hD=>{"use strict";Object.defineProperty(hD,"__esModule",{value:!0});hD.UnimplementedException=hD.UnsuccessfulWorkflowExecution=hD.MergeConflictException=hD.InvalidUpdateRecordException=hD.ContentHasMutatedException=hD.FileAlreadyExistException=hD.FileDoesNotExistException=hD.SchematicsException=void 0;var Hle=Z2(),jMr=class extends Hle.BaseException{};hD.SchematicsException=jMr;var zMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" does not exist.`)}};hD.FileDoesNotExistException=zMr;var qMr=class extends Hle.BaseException{constructor(t){super(`Path "${t}" already exist.`)}};hD.FileAlreadyExistException=qMr;var $Mr=class extends Hle.BaseException{constructor(t){super(`Content at path "${t}" has changed between the start and the end of an update.`)}};hD.ContentHasMutatedException=$Mr;var eHr=class extends Hle.BaseException{constructor(){super("Invalid record instance.")}};hD.InvalidUpdateRecordException=eHr;var tHr=class extends Hle.BaseException{constructor(t){super(`A merge conflicted on path "${t}".`)}};hD.MergeConflictException=tHr;var rHr=class extends Hle.BaseException{constructor(){super("Workflow did not execute successfully.")}};hD.UnsuccessfulWorkflowExecution=rHr;var nHr=class extends Hle.BaseException{constructor(){super("This function is unimplemented.")}};hD.UnimplementedException=nHr});var mDt=H(hDt=>{"use strict";Object.defineProperty(hDt,"__esModule",{value:!0});hDt.DelegateTree=void 0;var gal=yH(),iHr=class{_other;constructor(t){this._other=t}branch(){return this._other.branch()}merge(t,r){this._other.merge(t,r)}get root(){return this._other.root}read(t){return this._other.read(t)}readText(t){return this._other.readText(t)}readJson(t){return this._other.readJson(t)}exists(t){return this._other.exists(t)}get(t){return this._other.get(t)}getDir(t){return this._other.getDir(t)}visit(t){return this._other.visit(t)}overwrite(t,r){return this._other.overwrite(t,r)}beginUpdate(t){return this._other.beginUpdate(t)}commitUpdate(t){return this._other.commitUpdate(t)}create(t,r){return this._other.create(t,r)}delete(t){return this._other.delete(t)}rename(t,r){return this._other.rename(t,r)}apply(t,r){return this._other.apply(t,r)}get actions(){return this._other.actions}[gal.TreeSymbol](){return this}};hDt.DelegateTree=iHr});var Crs=H(Exe=>{"use strict";Object.defineProperty(Exe,"__esModule",{value:!0});Exe.LazyFileEntry=Exe.SimpleFileEntry=void 0;var sHr=class{_path;_content;constructor(t,r){this._path=t,this._content=r}get path(){return this._path}get content(){return this._content}};Exe.SimpleFileEntry=sHr;var oHr=class{_path;_load;_content=null;constructor(t,r){this._path=t,this._load=r}get path(){return this._path}get content(){return this._content||(this._content=this._load(this._path))}};Exe.LazyFileEntry=oHr});var yrs=H((CDt,_rs)=>{(function(e,t){typeof CDt=="object"&&typeof _rs<"u"?t(CDt):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis<"u"?globalThis:e||self,t(e.sourcemapCodec={}))})(CDt,function(e){"use strict";let n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=new Uint8Array(64),o=new Uint8Array(128);for(let Se=0;Se>>=1,Me&&(k=-2147483648|-k),De+k}function A(Se,De,k){let et=De-k;et=et<0?-et<<1|1:et<<1;do{let ct=et&31;et>>>=5,et>0&&(ct|=32),Se.write(a[ct])}while(et>0);return De}function f(Se,De){return Se.pos>=De?!1:Se.peek()!==44}let I=1024*16,C=typeof TextDecoder<"u"?new TextDecoder:typeof Buffer<"u"?{decode(Se){return Buffer.from(Se.buffer,Se.byteOffset,Se.byteLength).toString()}}:{decode(Se){let De="";for(let k=0;k0?k+C.decode(De.subarray(0,et)):k}}class E{constructor(De){this.pos=0,this.buffer=De}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(De){let{buffer:k,pos:et}=this,ct=k.indexOf(De,et);return ct===-1?k.length:ct}}let N=[];function B(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0;for(;k.pos0&&k.write(44),et[0]=A(k,Me,et[0]),A(k,je,0),A(k,Yt,0);let Nr=ct.length===6?1:0;A(k,Nr,0),ct.length===6&&A(k,ct[5],0);for(let er of Tr)A(k,er,0);for(De++;DeSt||vt===St&&xt>=At)break;De=Q(Se,De,k,et)}return k.write(44),et[0]=A(k,St,et[0]),A(k,At,0),De}function X(Se){let{length:De}=Se,k=new E(Se),et=[],ct=[],Me=0,je=0,St=0,At=0,Yt=0,Tr=0,Nr=0,er=0;do{let vt=k.indexOf(";"),xt=0;for(;k.pos_n;jt--){let Fn=Nr;Nr=l(k,Nr),er=l(k,Nr===Fn?er:0);let Nn=l(k,0);ke.push([Nn,Nr,er])}}else ke=[[_n]];Ar.push(ke)}while(f(k,vt))}qr.bindings=Ar,et.push(qr),ct.push(qr)}Me++,k.pos=vt+1}while(k.pos0&&k.write(44),et[1]=A(k,ct[1],et[1]);let er=(ct.length===6?1:0)|(Tr?2:0)|(Yt?4:0);if(A(k,er,0),ct.length===6){let{4:vt,5:xt}=ct;vt!==et[2]&&(et[3]=0),et[2]=A(k,vt,et[2]),et[3]=A(k,xt,et[3])}if(Tr){let{0:vt,1:xt,2:Zr}=ct.callsite;vt!==et[4]?(et[5]=0,et[6]=0):xt!==et[5]&&(et[6]=0),et[4]=A(k,vt,et[4]),et[5]=A(k,xt,et[5]),et[6]=A(k,Zr,et[6])}if(Nr)for(let vt of Nr){vt.length>1&&A(k,-vt.length,0);let xt=vt[0][0];A(k,xt,0);let Zr=Me,qt=je;for(let Xt=1;XtSt||xt===St&&Zr>=At)break;De=ne(Se,De,k,et)}return et[0]0&&De.write(59),St.length===0)continue;let At=0;for(let Yt=0;Yt0&&De.write(44),At=A(De,Tr[0],At),Tr.length!==1&&(k=A(De,Tr[1],k),et=A(De,Tr[2],et),ct=A(De,Tr[3],ct),Tr.length!==4&&(Me=A(De,Tr[4],Me)))}}return De.flush()}e.decode=fe,e.decodeGeneratedRanges=X,e.decodeOriginalScopes=B,e.encode=be,e.encodeGeneratedRanges=ae,e.encodeOriginalScopes=F,Object.defineProperty(e,"__esModule",{value:!0})})});var Brs=H((ozu,vrs)=>{"use strict";var Aal=yrs(),_Dt=class e{constructor(t){this.bits=t instanceof e?t.bits.slice():[]}add(t){this.bits[t>>5]|=1<<(t&31)}has(t){return!!(this.bits[t>>5]&1<<(t&31))}},yDt=class e{constructor(t,r,n){this.start=t,this.end=r,this.original=n,this.intro="",this.outro="",this.content=n,this.storeName=!1,this.edited=!1,this.previous=null,this.next=null}appendLeft(t){this.outro+=t}appendRight(t){this.intro=this.intro+t}clone(){let t=new e(this.start,this.end,this.original);return t.intro=this.intro,t.outro=this.outro,t.content=this.content,t.storeName=this.storeName,t.edited=this.edited,t}contains(t){return this.startglobalThis.btoa(unescape(encodeURIComponent(e))):typeof Buffer=="function"?e=>Buffer.from(e,"utf-8").toString("base64"):()=>{throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.")}}var pal=dal(),gje=class{constructor(t){this.version=3,this.file=t.file,this.sources=t.sources,this.sourcesContent=t.sourcesContent,this.names=t.names,this.mappings=Aal.encode(t.mappings),typeof t.x_google_ignoreList<"u"&&(this.x_google_ignoreList=t.x_google_ignoreList),typeof t.debugId<"u"&&(this.debugId=t.debugId)}toString(){return JSON.stringify(this)}toUrl(){return"data:application/json;charset=utf-8;base64,"+pal(this.toString())}};function fal(e){let t=e.split(` +`),r=t.filter(o=>/^\t+/.test(o)),n=t.filter(o=>/^ {2,}/.test(o));if(r.length===0&&n.length===0)return null;if(r.length>=n.length)return" ";let a=n.reduce((o,l)=>{let A=/^ +/.exec(l)[0].length;return Math.min(A,o)},1/0);return new Array(a+1).join(" ")}function Ers(e,t){let r=e.split(/[/\\]/),n=t.split(/[/\\]/);for(r.pop();r[0]===n[0];)r.shift(),n.shift();if(r.length){let a=r.length;for(;a--;)r[a]=".."}return r.concat(n).join("/")}var Ial=Object.prototype.toString;function Srs(e){return Ial.call(e)==="[object Object]"}function aHr(e){let t=e.split(` +`),r=[];for(let n=0,a=0;n>1;a=0&&o>l;){let I=[this.generatedCodeColumn,t,n.line,n.column];a>=0&&I.push(a),this.rawSegments.push(I),this.generatedCodeLine+=1,this.raw[this.generatedCodeLine]=this.rawSegments=[],this.generatedCodeColumn=0,A=l,l=r.indexOf(` `,l+1)}let f=[this.generatedCodeColumn,t,n.line,n.column];a>=0&&f.push(a),this.rawSegments.push(f),this.advance(r.slice(A+1))}else this.pending&&(this.rawSegments.push(this.pending),this.advance(r));this.pending=null}addUneditedChunk(t,r,n,a,o){let l=r.start,A=!0,f=!1;for(;l1){for(let n=0;n{let A=o(l.start);l.intro.length&&a.advance(l.intro),l.edited?a.addEdit(r,l.content,A,l.storeName?n.indexOf(l.original):-1):a.addUneditedChunk(r,l,this.original,A,this.sourcemapLocations),l.outro.length&&a.advance(l.outro)}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?Ers(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:a.raw,x_google_ignoreList:this.ignoreList?[r]:void 0}}generateMap(t){return new gje(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=pal(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,r){let n=/^[^\r\n]/gm;if(Srs(t)&&(r=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;r=r||{};let a={};r.exclude&&(typeof r.exclude[0]=="number"?[r.exclude]:r.exclude).forEach(C=>{for(let b=C[0];bo?`${t}${I}`:(o=!0,I);this.intro=this.intro.replace(n,l);let A=0,f=this.firstChunk;for(;f;){let I=f.end;if(f.edited)a[A]||(f.content=f.content.replace(n,l),f.content.length&&(o=f.content[f.content.length-1]===` +`,Sxe={insertLeft:!1,insertRight:!1,storeName:!1},yte=class e{constructor(t,r={}){let n=new yDt(0,t.length,t);Object.defineProperties(this,{original:{writable:!0,value:t},outro:{writable:!0,value:""},intro:{writable:!0,value:""},firstChunk:{writable:!0,value:n},lastChunk:{writable:!0,value:n},lastSearchedChunk:{writable:!0,value:n},byStart:{writable:!0,value:{}},byEnd:{writable:!0,value:{}},filename:{writable:!0,value:r.filename},indentExclusionRanges:{writable:!0,value:r.indentExclusionRanges},sourcemapLocations:{writable:!0,value:new _Dt},storedNames:{writable:!0,value:{}},indentStr:{writable:!0,value:void 0},ignoreList:{writable:!0,value:r.ignoreList},offset:{writable:!0,value:r.offset||0}}),this.byStart[0]=n,this.byEnd[t.length]=n}addSourcemapLocation(t){this.sourcemapLocations.add(t)}append(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.outro+=t,this}appendLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.appendLeft(r):this.intro+=r,this}appendRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.appendRight(r):this.outro+=r,this}clone(){let t=new e(this.original,{filename:this.filename,offset:this.offset}),r=this.firstChunk,n=t.firstChunk=t.lastSearchedChunk=r.clone();for(;r;){t.byStart[n.start]=n,t.byEnd[n.end]=n;let a=r.next,o=a&&a.clone();o&&(n.next=o,o.previous=n,n=o),r=a}return t.lastChunk=n,this.indentExclusionRanges&&(t.indentExclusionRanges=this.indentExclusionRanges.slice()),t.sourcemapLocations=new _Dt(this.sourcemapLocations),t.intro=this.intro,t.outro=this.outro,t}generateDecodedMap(t){t=t||{};let r=0,n=Object.keys(this.storedNames),a=new bDt(t.hires),o=aHr(this.original);return this.intro&&a.advance(this.intro),this.firstChunk.eachNext(l=>{let A=o(l.start);l.intro.length&&a.advance(l.intro),l.edited?a.addEdit(r,l.content,A,l.storeName?n.indexOf(l.original):-1):a.addUneditedChunk(r,l,this.original,A,this.sourcemapLocations),l.outro.length&&a.advance(l.outro)}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:[t.source?Ers(t.file||"",t.source):t.file||""],sourcesContent:t.includeContent?[this.original]:void 0,names:n,mappings:a.raw,x_google_ignoreList:this.ignoreList?[r]:void 0}}generateMap(t){return new gje(this.generateDecodedMap(t))}_ensureindentStr(){this.indentStr===void 0&&(this.indentStr=fal(this.original))}_getRawIndentString(){return this._ensureindentStr(),this.indentStr}getIndentString(){return this._ensureindentStr(),this.indentStr===null?" ":this.indentStr}indent(t,r){let n=/^[^\r\n]/gm;if(Srs(t)&&(r=t,t=void 0),t===void 0&&(this._ensureindentStr(),t=this.indentStr||" "),t==="")return this;r=r||{};let a={};r.exclude&&(typeof r.exclude[0]=="number"?[r.exclude]:r.exclude).forEach(C=>{for(let b=C[0];bo?`${t}${I}`:(o=!0,I);this.intro=this.intro.replace(n,l);let A=0,f=this.firstChunk;for(;f;){let I=f.end;if(f.edited)a[A]||(f.content=f.content.replace(n,l),f.content.length&&(o=f.content[f.content.length-1]===` `));else for(A=f.start;A=t&&n<=r)throw new Error("Cannot move a selection inside itself");this._split(t),this._split(r),this._split(n);let a=this.byStart[t],o=this.byEnd[r],l=a.previous,A=o.next,f=this.byStart[n];if(!f&&o===this.lastChunk)return this;let I=f?f.previous:this.lastChunk;return l&&(l.next=A),A&&(A.previous=l),I&&(I.next=a),f&&(f.previous=o),a.previous||(this.firstChunk=o.next),o.next||(this.lastChunk=a.previous,this.lastChunk.next=null),a.previous=I,o.next=f||null,I||(this.firstChunk=a),f||(this.lastChunk=o),this}overwrite(t,r,n,a){return a=a||{},this.update(t,r,n,{...a,overwrite:!a.contentOnly})}update(t,r,n,a){if(t=t+this.offset,r=r+this.offset,typeof n!="string")throw new TypeError("replacement content must be a string");if(this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(r>this.original.length)throw new Error("end is out of bounds");if(t===r)throw new Error("Cannot overwrite a zero-length range \u2013 use appendLeft or prependRight instead");this._split(t),this._split(r),a===!0&&(Sxe.storeName||(console.warn("The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"),Sxe.storeName=!0),a={storeName:!0});let o=a!==void 0?a.storeName:!1,l=a!==void 0?a.overwrite:!1;if(o){let I=this.original.slice(t,r);Object.defineProperty(this.storedNames,I,{writable:!0,value:!0,enumerable:!0})}let A=this.byStart[t],f=this.byEnd[r];if(A){let I=A;for(;I!==f;){if(I.next!==this.byStart[I.end])throw new Error("Cannot overwrite across a split point");I=I.next,I.edit("",!1)}A.edit(n,o,!l)}else{let I=new yDt(t,r,"").edit(n,o);f.next=I,I.previous=f}return this}prepend(t){if(typeof t!="string")throw new TypeError("outro content must be a string");return this.intro=t+this.intro,this}prependLeft(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byEnd[t];return n?n.prependLeft(r):this.intro=r+this.intro,this}prependRight(t,r){if(t=t+this.offset,typeof r!="string")throw new TypeError("inserted content must be a string");this._split(t);let n=this.byStart[t];return n?n.prependRight(r):this.outro=r+this.outro,this}remove(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.intro="",n.outro="",n.edit(""),n=r>n.end?this.byStart[n.end]:null;return this}reset(t,r){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}if(t===r)return this;if(t<0||r>this.original.length)throw new Error("Character is out of bounds");if(t>r)throw new Error("end must be greater than start");this._split(t),this._split(r);let n=this.byStart[t];for(;n;)n.reset(),n=r>n.end?this.byStart[n.end]:null;return this}lastChar(){if(this.outro.length)return this.outro[this.outro.length-1];let t=this.lastChunk;do{if(t.outro.length)return t.outro[t.outro.length-1];if(t.content.length)return t.content[t.content.length-1];if(t.intro.length)return t.intro[t.intro.length-1]}while(t=t.previous);return this.intro.length?this.intro[this.intro.length-1]:""}lastLine(){let t=this.outro.lastIndexOf(uje);if(t!==-1)return this.outro.substr(t+1);let r=this.outro,n=this.lastChunk;do{if(n.outro.length>0){if(t=n.outro.lastIndexOf(uje),t!==-1)return n.outro.substr(t+1)+r;r=n.outro+r}if(n.content.length>0){if(t=n.content.lastIndexOf(uje),t!==-1)return n.content.substr(t+1)+r;r=n.content+r}if(n.intro.length>0){if(t=n.intro.lastIndexOf(uje),t!==-1)return n.intro.substr(t+1)+r;r=n.intro+r}}while(n=n.previous);return t=this.intro.lastIndexOf(uje),t!==-1?this.intro.substr(t+1)+r:this.intro+r}slice(t=0,r=this.original.length-this.offset){if(t=t+this.offset,r=r+this.offset,this.original.length!==0){for(;t<0;)t+=this.original.length;for(;r<0;)r+=this.original.length}let n="",a=this.firstChunk;for(;a&&(a.start>t||a.end<=t);){if(a.start=r)return n;a=a.next}if(a&&a.edited&&a.start!==t)throw new Error(`Cannot use replaced character ${t} as slice start anchor.`);let o=a;for(;a;){a.intro&&(o!==a||a.start===t)&&(n+=a.intro);let l=a.start=r;if(l&&a.edited&&a.end!==r)throw new Error(`Cannot use replaced character ${r} as slice end anchor.`);let A=o===a?t-a.start:0,f=l?a.content.length+r-a.end:a.content.length;if(n+=a.content.slice(A,f),a.outro&&(!l||a.end===r)&&(n+=a.outro),l)break;a=a.next}return n}snip(t,r){let n=this.clone();return n.remove(0,t),n.remove(r,n.original.length),n}_split(t){if(this.byStart[t]||this.byEnd[t])return;let r=this.lastSearchedChunk,n=t>r.end;for(;r;){if(r.contains(t))return this._splitChunk(r,t);r=n?this.byStart[r.end]:this.byEnd[r.start]}}_splitChunk(t,r){if(t.edited&&t.content.length){let a=aHr(this.original)(r);throw new Error(`Cannot split a chunk that has already been edited (${a.line}:${a.column} \u2013 "${t.original}")`)}let n=t.split(r);return this.byEnd[r]=t,this.byStart[r]=n,this.byEnd[n.end]=n,t===this.lastChunk&&(this.lastChunk=n),this.lastSearchedChunk=t,!0}toString(){let t=this.intro,r=this.firstChunk;for(;r;)t+=r.toString(),r=r.next;return t+this.outro}isEmpty(){let t=this.firstChunk;do if(t.intro.length&&t.intro.trim()||t.content.length&&t.content.trim()||t.outro.length&&t.outro.trim())return!1;while(t=t.next);return!0}length(){let t=this.firstChunk,r=0;do r+=t.intro.length+t.content.length+t.outro.length;while(t=t.next);return r}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimEndAborted(t){let r=new RegExp((t||"\\s")+"+$");if(this.outro=this.outro.replace(r,""),this.outro.length)return!0;let n=this.lastChunk;do{let a=n.end,o=n.trimEnd(r);if(n.end!==a&&(this.lastChunk===n&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),o)return!0;n=n.previous}while(n);return!1}trimEnd(t){return this.trimEndAborted(t),this}trimStartAborted(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),this.intro.length)return!0;let n=this.firstChunk;do{let a=n.end,o=n.trimStart(r);if(n.end!==a&&(n===this.lastChunk&&(this.lastChunk=n.next),this.byEnd[n.end]=n,this.byStart[n.next.start]=n.next,this.byEnd[n.next.end]=n.next),o)return!0;n=n.next}while(n);return!1}trimStart(t){return this.trimStartAborted(t),this}hasChanged(){return this.original!==this.toString()}_replaceRegexp(t,r){function n(o,l){return typeof r=="string"?r.replace(/\$(\$|&|\d+)/g,(A,f)=>f==="$"?"$":f==="&"?o[0]:+f{if(l.index!=null){let A=n(l,this.original);A!==l[0]&&this.overwrite(l.index,l.index+l[0].length,A)}});else{let o=this.original.match(t);if(o&&o.index!=null){let l=n(o,this.original);l!==o[0]&&this.overwrite(o.index,o.index+o[0].length,l)}}return this}_replaceString(t,r){let{original:n}=this,a=n.indexOf(t);return a!==-1&&this.overwrite(a,a+t.length,r),this}replace(t,r){return typeof t=="string"?this._replaceString(t,r):this._replaceRegexp(t,r)}_replaceAllString(t,r){let{original:n}=this,a=t.length;for(let o=n.indexOf(t);o!==-1;o=n.indexOf(t,o+a))n.slice(o,o+a)!==r&&this.overwrite(o,o+a,r);return this}replaceAll(t,r){if(typeof t=="string")return this._replaceAllString(t,r);if(!t.global)throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");return this._replaceRegexp(t,r)}},brs=Object.prototype.hasOwnProperty,cHr=class e{constructor(t={}){this.intro=t.intro||"",this.separator=t.separator!==void 0?t.separator:` `,this.sources=[],this.uniqueSources=[],this.uniqueSourceIndexByFilename={}}addSource(t){if(t instanceof yte)return this.addSource({content:t,filename:t.filename,separator:this.separator});if(!Srs(t)||!t.content)throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");if(["filename","ignoreList","indentExclusionRanges","separator"].forEach(r=>{brs.call(t,r)||(t[r]=t.content[r])}),t.separator===void 0&&(t.separator=this.separator),t.filename)if(!brs.call(this.uniqueSourceIndexByFilename,t.filename))this.uniqueSourceIndexByFilename[t.filename]=this.uniqueSources.length,this.uniqueSources.push({filename:t.filename,content:t.content.original});else{let r=this.uniqueSources[this.uniqueSourceIndexByFilename[t.filename]];if(t.content.original!==r.content)throw new Error(`Illegal source: same filename (${t.filename}), different contents`)}return this.sources.push(t),this}append(t,r){return this.addSource({content:new yte(t),separator:r&&r.separator||""}),this}clone(){let t=new e({intro:this.intro,separator:this.separator});return this.sources.forEach(r=>{t.addSource({filename:r.filename,content:r.content.clone(),separator:r.separator})}),t}generateDecodedMap(t={}){let r=[],n;this.sources.forEach(o=>{Object.keys(o.content.storedNames).forEach(l=>{~r.indexOf(l)||r.push(l)})});let a=new bDt(t.hires);return this.intro&&a.advance(this.intro),this.sources.forEach((o,l)=>{l>0&&a.advance(this.separator);let A=o.filename?this.uniqueSourceIndexByFilename[o.filename]:-1,f=o.content,I=aHr(f.original);f.intro&&a.advance(f.intro),f.firstChunk.eachNext(C=>{let b=I(C.start);C.intro.length&&a.advance(C.intro),o.filename?C.edited?a.addEdit(A,C.content,b,C.storeName?r.indexOf(C.original):-1):a.addUneditedChunk(A,C,f.original,b,f.sourcemapLocations):a.advance(C.content),C.outro.length&&a.advance(C.outro)}),f.outro&&a.advance(f.outro),o.ignoreList&&A!==-1&&(n===void 0&&(n=[]),n.push(A))}),{file:t.file?t.file.split(/[/\\]/).pop():void 0,sources:this.uniqueSources.map(o=>t.file?Ers(t.file,o.filename):o.filename),sourcesContent:this.uniqueSources.map(o=>t.includeContent?o.content:null),names:r,mappings:a.raw,x_google_ignoreList:n}}generateMap(t){return new gje(this.generateDecodedMap(t))}getIndentString(){let t={};return this.sources.forEach(r=>{let n=r.content._getRawIndentString();n!==null&&(t[n]||(t[n]=0),t[n]+=1)}),Object.keys(t).sort((r,n)=>t[r]-t[n])[0]||" "}indent(t){if(arguments.length||(t=this.getIndentString()),t==="")return this;let r=!this.intro||this.intro.slice(-1)===` `;return this.sources.forEach((n,a)=>{let o=n.separator!==void 0?n.separator:this.separator,l=r||a>0&&/\r?\n$/.test(o);n.content.indent(t,{exclude:n.indentExclusionRanges,indentStart:l}),r=n.content.lastChar()===` -`}),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(n,a)=>a>0?t+n:n)),this}prepend(t){return this.intro=t+this.intro,this}toString(){let t=this.sources.map((r,n)=>{let a=r.separator!==void 0?r.separator:this.separator;return(n>0?a:"")+r.content.toString()}).join("");return this.intro+t}isEmpty(){return!(this.intro.length&&this.intro.trim()||this.sources.some(t=>!t.content.isEmpty()))}length(){return this.sources.reduce((t,r)=>t+r.content.length(),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimStart(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),!this.intro){let n,a=0;do if(n=this.sources[a++],!n)break;while(!n.content.trimStartAborted(t))}return this}trimEnd(t){let r=new RegExp((t||"\\s")+"+$"),n,a=this.sources.length-1;do if(n=this.sources[a--],!n){this.intro=this.intro.replace(r,"");break}while(!n.content.trimEndAborted(t));return this}};yte.Bundle=cHr;yte.SourceMap=gje;yte.default=yte;vrs.exports=yte});var uHr=H(Yle=>{"use strict";var hal=Yle&&Yle.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Yle,"__esModule",{value:!0});Yle.UpdateRecorderBase=Yle.IndexOutOfBoundException=void 0;var mal=Z2(),Cal=hal(Brs()),_al=Z4(),EDt=class extends mal.BaseException{constructor(t,r,n=1/0){super(`Index ${t} outside of range [${r}, ${n}].`)}};Yle.IndexOutOfBoundException=EDt;var lHr=class e{data;bom;_path;content;constructor(t,r,n="utf-8",a=!1){this.data=t,this.bom=a;let o;try{o=new TextDecoder(n,{fatal:!0,ignoreBOM:!1}).decode(t)}catch(l){throw l instanceof TypeError?new Error(`Failed to decode "${r}" as ${n} text.`):l}this._path=r,this.content=new Cal.default(o)}static createFromFileEntry(t){let r=t.content.byteLength>0&&t.content.readUInt8(0),n=t.content.byteLength>1&&t.content.readUInt8(1),a=t.content.byteLength>2&&t.content.readUInt8(2);return r==239&&n==187&&a==191?new e(t.content,t.path,"utf-8",!0):r===255&&n==254?new e(t.content,t.path,"utf-16le",!0):r===254&&n==255?new e(t.content,t.path,"utf-16be",!0):new e(t.content,t.path)}get path(){return this._path}_assertIndex(t){if(t<0||t>this.content.original.length)throw new EDt(t,0,this.content.original.length)}insertLeft(t,r){return this._assertIndex(t),this.content.appendLeft(t,r.toString()),this}insertRight(t,r){return this._assertIndex(t),this.content.appendRight(t,r.toString()),this}remove(t,r){return this._assertIndex(t),this.content.remove(t,t+r),this}apply(t){if(!t.equals(this.data))throw new _al.ContentHasMutatedException(this.path);return Buffer.from((this.bom?"\uFEFF":"")+this.content.toString(),"utf-8")}};Yle.UpdateRecorderBase=lHr});var BDt=H(vDt=>{"use strict";Object.defineProperty(vDt,"__esModule",{value:!0});vDt.ScopedTree=void 0;var lw=Z2(),yal=mDt(),bal=yH(),Aje=class{_base;scope;constructor(t,r){this._base=t,this.scope=r}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get content(){return this._base.content}},SDt=class e{_base;scope;constructor(t,r){this._base=t,this.scope=r}get parent(){return!this._base.parent||this._base.path==this.scope?null:new e(this._base.parent,this.scope)}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get subdirs(){return this._base.subdirs}get subfiles(){return this._base.subfiles}dir(t){let r=this._base.dir(t);return r&&new e(r,this.scope)}file(t){let r=this._base.file(t);return r&&new Aje(r,this.scope)}visit(t){return this._base.visit((r,n)=>{t((0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,r)),n&&new Aje(n,this.scope))})}},gHr=class e{_base;_root;constructor(t,r){this._base=t;let n=(0,lw.normalize)("/"+r);this._root=new SDt(this._base.getDir(n),n)}get root(){return this._root}branch(){return new e(this._base.branch(),this._root.scope)}merge(t,r){let n=this,a=new class extends yal.DelegateTree{get actions(){return t.actions.map(o=>n._fullPathAction(o))}}(t);this._base.merge(a,r)}read(t){return this._base.read(this._fullPath(t))}readText(t){return this._base.readText(this._fullPath(t))}readJson(t){return this._base.readJson(this._fullPath(t))}exists(t){return this._base.exists(this._fullPath(t))}get(t){let r=this._base.get(this._fullPath(t));return r&&new Aje(r,this._root.scope)}getDir(t){let r=this._base.getDir(this._fullPath(t));return r&&new SDt(r,this._root.scope)}visit(t){return this._root.visit(t)}overwrite(t,r){return this._base.overwrite(this._fullPath(t),r)}beginUpdate(t){return this._base.beginUpdate(this._fullPath(t))}commitUpdate(t){return this._base.commitUpdate(t)}create(t,r){return this._base.create(this._fullPath(t),r)}delete(t){return this._base.delete(this._fullPath(t))}rename(t,r){return this._base.rename(this._fullPath(t),this._fullPath(r))}apply(t,r){return this._base.apply(this._fullPathAction(t),r)}get actions(){let t=[];for(let r of this._base.actions)r.path.startsWith(this._root.scope+"/")&&(r.kind!=="r"?t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path))}):r.to.startsWith(this._root.scope+"/")&&t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path)),to:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.to))}));return t}[bal.TreeSymbol](){return this}_fullPath(t){return(0,lw.join)(this._root.scope,(0,lw.normalize)("/"+t))}_fullPathAction(t){let r;return t.kind==="r"?r={...t,path:this._fullPath(t.path),to:this._fullPath(t.to)}:r={...t,path:this._fullPath(t.path)},r}};vDt.ScopedTree=gHr});var E_e=H(t6=>{"use strict";Object.defineProperty(t6,"__esModule",{value:!0});t6.FilterHostTree=t6.HostCreateTree=t6.HostTree=t6.HostDirEntry=void 0;var aL=Z2(),wrs=yxe(),DO=Z4(),Eal=mDt(),Sal=Crs(),e6=yH(),Trs=uHr(),val=BDt(),Bal=0,wDt=class{parent;path;_host;_tree;constructor(t,r,n,a){this.parent=t,this.path=r,this._host=n,this._tree=a}get subdirs(){return this._host.list(this.path).filter(t=>this._host.isDirectory((0,aL.join)(this.path,t)))}get subfiles(){return this._host.list(this.path).filter(t=>this._host.isFile((0,aL.join)(this.path,t)))}dir(t){return this._tree.getDir((0,aL.join)(this.path,t))}file(t){return this._tree.get((0,aL.join)(this.path,t))}visit(t){try{this.getSubfilesRecursively().forEach(r=>t(r.path,r))}catch(r){if(r!==e6.FileVisitorCancelToken)throw r}}getSubfilesRecursively(){function t(r){return r.subdirs.reduce((n,a)=>[...n,...t(r.dir(a))],r.subfiles.map(n=>r.file(n)))}return t(this)}};t6.HostDirEntry=wDt;var vxe=class e{_backend;_id=--Bal;_record;_recordSync;_ancestry=new Set;_dirCache=new Map;[e6.TreeSymbol](){return this}static isHostTree(t){return t instanceof e||typeof t=="object"&&typeof t._ancestry=="object"}constructor(t=new aL.virtualFs.Empty){this._backend=t,this._record=new aL.virtualFs.CordHost(new aL.virtualFs.SafeReadonlyHost(t)),this._recordSync=new aL.virtualFs.SyncDelegateHost(this._record)}_normalizePath(t){return(0,aL.normalize)("/"+t)}_willCreate(t){return this._record.willCreate(t)}_willOverwrite(t){return this._record.willOverwrite(t)}_willDelete(t){return this._record.willDelete(t)}_willRename(t){return this._record.willRename(t)}branch(){let t=new e(this._backend);return t._record=this._record.clone(),t._recordSync=new aL.virtualFs.SyncDelegateHost(t._record),t._ancestry=new Set(this._ancestry).add(this._id),t}isAncestorOf(t){return t instanceof e?t._ancestry.has(this._id):t instanceof Eal.DelegateTree?this.isAncestorOf(t._other):t instanceof val.ScopedTree?this.isAncestorOf(t._base):!1}merge(t,r=e6.MergeStrategy.Default){if(t===this)return;this.isAncestorOf(t)&&(r|=e6.MergeStrategy.Overwrite);let n=(r&e6.MergeStrategy.AllowCreationConflict)==e6.MergeStrategy.AllowCreationConflict,a=(r&e6.MergeStrategy.AllowOverwriteConflict)==e6.MergeStrategy.AllowOverwriteConflict,o=(r&e6.MergeStrategy.AllowDeleteConflict)==e6.MergeStrategy.AllowDeleteConflict;t.actions.forEach(l=>{switch(l.kind){case"c":{let{path:A,content:f}=l;if(this._willCreate(A)||this._willOverwrite(A)||this.exists(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!n)throw new DO.MergeConflictException(A);this._record.overwrite(A,f).subscribe()}else this._record.create(A,f).subscribe();return}case"o":{let{path:A,content:f}=l;if(this._willDelete(A)&&!a)throw new DO.MergeConflictException(A);if(this._willOverwrite(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!a)throw new DO.MergeConflictException(A)}this._record.write(A,f).subscribe();return}case"r":{let{path:A,to:f}=l;if(this._willDelete(A))throw new DO.MergeConflictException(A);if(this._willRename(A)){if(this._record.willRenameTo(A,f))return;throw new DO.MergeConflictException(A)}this.rename(A,f);return}case"d":{let{path:A}=l;if(this._willDelete(A))return;if(!this.exists(A)&&!o)throw new DO.MergeConflictException(A);this._recordSync.delete(A);return}}})}get root(){return this.getDir("/")}read(t){let r=this.get(t);return r?r.content:null}readText(t){let r=this.read(t);if(r===null)throw new DO.FileDoesNotExistException(t);let n=new TextDecoder("utf-8",{fatal:!0});try{return n.decode(r)}catch(a){throw a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA"?new Error(`Failed to decode "${t}" as UTF-8 text.`):a}}readJson(t){let r=this.readText(t),n=[],a=(0,wrs.parse)(r,n,{allowTrailingComma:!0});if(n[0]){let{error:o,offset:l}=n[0];throw new Error(`Failed to parse "${t}" as JSON. ${(0,wrs.printParseErrorCode)(o)} at offset: ${l}.`)}return a}exists(t){return this._recordSync.isFile(this._normalizePath(t))}get(t){let r=this._normalizePath(t);if(this._recordSync.isDirectory(r))throw new aL.PathIsDirectoryException(r);return this._recordSync.exists(r)?new Sal.LazyFileEntry(r,()=>Buffer.from(this._recordSync.read(r))):null}getDir(t){let r=this._normalizePath(t);if(this._recordSync.isFile(r))throw new aL.PathIsFileException(r);let n=this._dirCache.get(r);if(!n){let a=(0,aL.dirname)(r);r===a&&(a=null),n=new wDt(a&&this.getDir(a),r,this._recordSync,this),this._dirCache.set(r,n)}return n}visit(t){this.root.visit((r,n)=>{t(r,n)})}overwrite(t,r){let n=this._normalizePath(t);if(!this._recordSync.exists(n))throw new DO.FileDoesNotExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.overwrite(n,a).subscribe()}beginUpdate(t){let r=this.get(t);if(!r)throw new DO.FileDoesNotExistException(t);return Trs.UpdateRecorderBase.createFromFileEntry(r)}commitUpdate(t){if(t instanceof Trs.UpdateRecorderBase){let r=t.path,n=this.get(r);if(n){let a=t.apply(n.content);a.equals(n.content)||this.overwrite(r,a)}else throw new DO.ContentHasMutatedException(r)}else throw new DO.InvalidUpdateRecordException}create(t,r){let n=this._normalizePath(t);if(this._recordSync.exists(n))throw new DO.FileAlreadyExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.create(n,a).subscribe()}delete(t){this._recordSync.delete(this._normalizePath(t))}rename(t,r){this._recordSync.rename(this._normalizePath(t),this._normalizePath(r))}apply(t,r){throw new DO.SchematicsException("Apply not implemented on host trees.")}*generateActions(){for(let t of this._record.records())switch(t.kind){case"create":yield{id:this._id,parent:0,kind:"c",path:t.path,content:Buffer.from(t.content)};break;case"overwrite":yield{id:this._id,parent:0,kind:"o",path:t.path,content:Buffer.from(t.content)};break;case"rename":yield{id:this._id,parent:0,kind:"r",path:t.from,to:t.to};break;case"delete":yield{id:this._id,parent:0,kind:"d",path:t.path};break}}get actions(){return Array.from(this.generateActions())}};t6.HostTree=vxe;var AHr=class extends vxe{constructor(t){super();let r=new vxe(t);r.visit(n=>{let a=r.read(n);a&&this.create(n,a)})}};t6.HostCreateTree=AHr;var dHr=class extends vxe{constructor(t,r=()=>!0){let n=new aL.virtualFs.SimpleMemoryHost,a=t._backend,o=["/"];for(;o.length>0;){let l=o.pop();if(l===void 0)break;let A=!1;if(a.isDirectory(l).subscribe(C=>A=C),A){a.list(l).subscribe(C=>o.push(...C.map(b=>(0,aL.join)(l,b))));continue}let f=!1;if(a.isFile(l).subscribe(C=>f=C),!f||!r(l))continue;let I=null;a.read(l).subscribe(C=>I=C),I!==null&&n.write(l,I).subscribe()}super(n);for(let l of t.actions)if(r(l.path))switch(l.kind){case"c":this.create(l.path,l.content);break;case"d":this.delete(l.path);break;case"o":this.overwrite(l.path,l.content);break;case"r":this.rename(l.path,l.to);break}}};t6.FilterHostTree=dHr});var dje=H(Bxe=>{"use strict";Object.defineProperty(Bxe,"__esModule",{value:!0});Bxe.empty=Ral;Bxe.branch=Nal;Bxe.merge=Dal;Bxe.partition=kal;var wal=Z4(),TDt=E_e(),Tal=yH();function Ral(){return new TDt.HostTree}function Nal(e){return e.branch()}function Dal(e,t,r=Tal.MergeStrategy.Default){return e.merge(t,r),e}function kal(e,t){if(e instanceof TDt.HostTree)return[new TDt.FilterHostTree(e,t),new TDt.FilterHostTree(e,(r,n)=>!t(r,n))];throw new wal.SchematicsException("Tree type is not supported.")}});var Rrs=H(Xle=>{"use strict";Object.defineProperty(Xle,"__esModule",{value:!0});Xle.NullTree=Xle.NullTreeDirEntry=Xle.CannotCreateFileException=void 0;var pje=Z2(),Qle=Z4(),xal=yH(),Gal=uHr(),RDt=class extends pje.BaseException{constructor(t){super(`Cannot create file "${t}".`)}};Xle.CannotCreateFileException=RDt;var fje=class e{path;get parent(){return this.path=="/"?null:new e((0,pje.dirname)(this.path))}constructor(t){this.path=t}subdirs=[];subfiles=[];dir(t){return new e((0,pje.join)(this.path,t))}file(t){return null}visit(){}};Xle.NullTreeDirEntry=fje;var pHr=class e{[xal.TreeSymbol](){return this}branch(){return new e}merge(t,r){}root=new fje((0,pje.normalize)("/"));exists(t){return!1}read(t){return null}readText(t){throw new Qle.FileDoesNotExistException(t)}readJson(t){throw new Qle.FileDoesNotExistException(t)}get(t){return null}getDir(t){return new fje((0,pje.normalize)("/"+t))}visit(){}beginUpdate(t){throw new Qle.FileDoesNotExistException(t)}commitUpdate(t){throw new Qle.FileDoesNotExistException(t instanceof Gal.UpdateRecorderBase?t.path:"")}copy(t,r){throw new Qle.FileDoesNotExistException(t)}delete(t){throw new Qle.FileDoesNotExistException(t)}create(t,r){throw new RDt(t)}rename(t,r){throw new Qle.FileDoesNotExistException(t)}overwrite(t,r){throw new Qle.FileDoesNotExistException(t)}apply(t,r){}get actions(){return[]}};Xle.NullTree=pHr});var kDt=H(Jle=>{"use strict";Object.defineProperty(Jle,"__esModule",{value:!0});Jle.InvalidSourceResultException=Jle.InvalidRuleResultException=void 0;Jle.callSource=Fal;Jle.callRule=Zal;var Drs=Z2(),r6=qb(),krs=yH();function xrs(e){return e===void 0?"undefined":e===null?"null":typeof e=="function"?"Function()":typeof e!="object"?`${typeof e}(${JSON.stringify(e)})`:Object.getPrototypeOf(e)==Object?`Object(${JSON.stringify(e)})`:e.constructor?`Instance of class ${e.constructor.name}`:"Unknown Object"}var NDt=class extends Drs.BaseException{constructor(t){super(`Invalid rule result: ${xrs(t)}.`)}};Jle.InvalidRuleResultException=NDt;var DDt=class extends Drs.BaseException{constructor(t){super(`Invalid source result: ${xrs(t)}.`)}};Jle.InvalidSourceResultException=DDt;function Fal(e,t){return(0,r6.defer)(async()=>{let r=e(t);if((0,r6.isObservable)(r)&&(r=await(0,r6.lastValueFrom)(r.pipe((0,r6.defaultIfEmpty)(void 0)))),r&&krs.TreeSymbol in r)return r;throw new DDt(r)})}function Zal(e,t,r){return(0,r6.isObservable)(t)?t.pipe((0,r6.mergeMap)(n=>Nrs(e,n,r))):(0,r6.defer)(()=>Nrs(e,t,r))}async function Nrs(e,t,r){let n=await e(t,r);for(;typeof n=="function";)n=await n(t,r);if(typeof n>"u")return t;if((0,r6.isObservable)(n)&&(n=await(0,r6.lastValueFrom)(n.pipe((0,r6.defaultIfEmpty)(t)))),n&&krs.TreeSymbol in n)return n;throw new NDt(n)}});var GDt=H(wxe=>{"use strict";Object.defineProperty(wxe,"__esModule",{value:!0});wxe.SchematicImpl=wxe.InvalidSchematicsNameException=void 0;var Lal=Z2(),Ije=qb(),Val=kDt(),Pal=BDt(),xDt=class extends Lal.BaseException{constructor(t){super(`Schematics has invalid name: "${t}".`)}};wxe.InvalidSchematicsNameException=xDt;var fHr=class{_description;_factory;_collection;_engine;constructor(t,r,n,a){if(this._description=t,this._factory=r,this._collection=n,this._engine=a,!t.name.match(/^[-@/_.a-zA-Z0-9]+$/))throw new xDt(t.name)}get description(){return this._description}get collection(){return this._collection}call(t,r,n,a){let o=this._engine.createContext(this,n,a);return r.pipe((0,Ije.first)(),(0,Ije.concatMap)(l=>this._engine.transformOptions(this,t,o).pipe((0,Ije.map)(A=>[l,A]))),(0,Ije.concatMap)(([l,A])=>{let f,I=!1;return a&&a.scope?(I=!0,f=new Pal.ScopedTree(l,a.scope)):f=l,(0,Val.callRule)(this._factory(A),f,o).pipe((0,Ije.map)(C=>C===f?l:I?(l.merge(C),l):C))}))}};wxe.SchematicImpl=fHr});var Grs=H(L2=>{"use strict";Object.defineProperty(L2,"__esModule",{value:!0});L2.SchematicEngine=L2.TaskScheduler=L2.CollectionImpl=L2.UnknownTaskDependencyException=L2.UnregisteredTaskException=L2.SchematicEngineConflictingException=L2.PrivateSchematicException=L2.UnknownSchematicException=L2.CircularCollectionException=L2.UnknownCollectionException=L2.UnknownUrlSourceProtocol=void 0;var n6=Z2(),FDt=qb(),Wal=yH(),Oal=Rrs(),Mal=dje(),Hal=GDt(),ZDt=class extends n6.BaseException{constructor(t){super(`Unknown Protocol on url "${t}".`)}};L2.UnknownUrlSourceProtocol=ZDt;var LDt=class extends n6.BaseException{constructor(t){super(`Unknown collection "${t}".`)}};L2.UnknownCollectionException=LDt;var VDt=class extends n6.BaseException{constructor(t){super(`Circular collection reference "${t}".`)}};L2.CircularCollectionException=VDt;var PDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.UnknownSchematicException=PDt;var WDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.PrivateSchematicException=WDt;var ODt=class extends n6.BaseException{constructor(){super("A schematic was called from a different engine as its parent.")}};L2.SchematicEngineConflictingException=ODt;var MDt=class extends n6.BaseException{constructor(t,r){let n=r?` in schematic "${r.name}"`:"";super(`Unregistered task "${t}"${n}.`)}};L2.UnregisteredTaskException=MDt;var HDt=class extends n6.BaseException{constructor(t){super(`Unknown task dependency [ID: ${t.id}].`)}};L2.UnknownTaskDependencyException=HDt;var YDt=class{_description;_engine;baseDescriptions;constructor(t,r,n){this._description=t,this._engine=r,this.baseDescriptions=n}get description(){return this._description}get name(){return this.description.name||""}createSchematic(t,r=!1){return this._engine.createSchematic(t,this,r)}listSchematicNames(t){return this._engine.listSchematicNames(this,t)}};L2.CollectionImpl=YDt;var QDt=class e{_context;_queue=new n6.PriorityQueue((t,r)=>t.priority-r.priority);_taskIds=new Map;static _taskIdCounter=1;constructor(t){this._context=t}_calculatePriority(t){return t.size===0?0:[...t].reduce((n,a)=>n+a.priority,1)}_mapDependencies(t){if(!t)return new Set;let r=t.map(n=>{let a=this._taskIds.get(n);if(!a)throw new HDt(n);return a});return new Set(r)}schedule(t){let r=this._mapDependencies(t.dependencies),n=this._calculatePriority(r),a={id:e._taskIdCounter++,priority:n,configuration:t,context:this._context};this._queue.push(a);let o={id:a.id};return this._taskIds.set(o,a),o}finalize(){let t=this._queue.toArray();return this._queue.clear(),this._taskIds.clear(),t}};L2.TaskScheduler=QDt;var IHr=class{_host;_workflow;_collectionCache=new Map;_schematicCache=new WeakMap;_taskSchedulers=new Array;constructor(t,r){this._host=t,this._workflow=r}get workflow(){return this._workflow||null}get defaultMergeStrategy(){return this._host.defaultMergeStrategy||Wal.MergeStrategy.Default}createCollection(t,r){let n=this._collectionCache.get(t);if(n)return n;let[a,o]=this._createCollectionDescription(t,r?.description);return n=new YDt(a,this,o),this._collectionCache.set(t,n),this._schematicCache.set(n,new Map),n}_createCollectionDescription(t,r,n){let a=this._host.createCollectionDescription(t,r);if(!a)throw new LDt(t);if(n&&n.has(a.name))throw new VDt(t);let o=new Array;if(a.extends){n=(n||new Set).add(a.name);for(let l of a.extends){let[A,f]=this._createCollectionDescription(l,a,new Set(n));o.unshift(A,...f)}}return[a,o]}createContext(t,r,n){if(r&&r.engine&&r.engine!==this)throw new ODt;let a=!0;n&&n.interactive!=null?a=n.interactive:r&&r.interactive!=null&&(a=r.interactive);let o={debug:r&&r.debug||!1,engine:this,logger:r&&r.logger&&r.logger.createChild(t.description.name)||new n6.logging.NullLogger,schematic:t,strategy:r&&r.strategy!==void 0?r.strategy:this.defaultMergeStrategy,interactive:a,addTask:I},l=this._host.transformContext(o);l&&(o=l);let A=new QDt(o),f=this._host;this._taskSchedulers.push(A);function I(C,b){let E=C.toConfiguration();if(!f.hasTaskExecutor(E.name))throw new MDt(E.name,t.description);return E.dependencies=E.dependencies||[],b&&E.dependencies.unshift(...b),A.schedule(E)}return o}createSchematic(t,r,n=!1){let a=this._schematicCache.get(r),o=a?.get(t);if(o)return o;let l=r.description,A=this._host.createSchematicDescription(t,r.description);if(!A){if(r.baseDescriptions){for(let I of r.baseDescriptions)if(A=this._host.createSchematicDescription(t,I),A){l=I;break}}if(!A)throw new PDt(t,r.description)}if(A.private&&!n)throw new WDt(t,r.description);let f=this._host.getSchematicRuleFactory(A,l);return o=new Hal.SchematicImpl(A,f,r,this),a?.set(t,o),o}listSchematicNames(t,r){let n=this._host.listSchematicNames(t.description,r);if(t.baseDescriptions)for(let a of t.baseDescriptions)n.push(...this._host.listSchematicNames(a,r));return[...new Set(n)].sort()}transformOptions(t,r,n){return this._host.transformOptions(t.description,r,n)}createSourceFromUrl(t,r){switch(t.protocol){case"null:":return()=>new Oal.NullTree;case"empty:":return()=>(0,Mal.empty)()}let n=this._host.createSourceFromUrl(t,r);if(!n)throw new ZDt(t.toString());return n}executePostTasks(){let t=new Map;return(0,FDt.from)(this._taskSchedulers).pipe((0,FDt.concatMap)(n=>n.finalize()),(0,FDt.concatMap)(n=>{let{name:a,options:o}=n.configuration,l=t.get(a);return l?l(o,n.context):this._host.createTaskExecutor(a).pipe((0,FDt.concatMap)(A=>(t.set(a,A),A(o,n.context))))}))}};L2.SchematicEngine=IHr});var Zrs=H(Frs=>{"use strict";Object.defineProperty(Frs,"__esModule",{value:!0})});var mHr=H(bte=>{"use strict";var Yal=bte&&bte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hHr=bte&&bte.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Yal(t,e,r)};Object.defineProperty(bte,"__esModule",{value:!0});hHr(Grs(),bte);hHr(Zrs(),bte);hHr(GDt(),bte)});var Lrs=H(CHr=>{"use strict";Object.defineProperty(CHr,"__esModule",{value:!0});CHr.createConsoleLogger=Jal;var Qal=qb(),Xal=Z2();function Jal(e=!1,t=process.stdout,r=process.stderr,n){let a=new Xal.logging.IndentLogger("cling");return a.pipe((0,Qal.filter)(o=>o.level!=="debug"||e)).subscribe(o=>{let l=n&&n[o.level],A=t;switch(o.level){case"warn":case"fatal":case"error":A=r;break}let f=2e3,I=o.message;for(;I;){let C=I.slice(0,f);I=I.slice(f),A.write(l?l(C):C)}A.write(` -`)}),a}});var Prs=H(Txe=>{"use strict";Object.defineProperty(Txe,"__esModule",{value:!0});Txe.NodeJsSyncHost=Txe.NodeJsAsyncHost=void 0;var mD=wt("node:fs"),Ual=wt("node:path"),$b=qb(),oC=Z2();async function Kal(e){try{return await mD.promises.access(e,mD.constants.F_OK),!0}catch{return!1}}var XDt;function Vrs(){if(!XDt)try{XDt=wt("chokidar").FSWatcher}catch(e){throw e.code!=="MODULE_NOT_FOUND"?new Error('As of angular-devkit version 8.0, the "chokidar" package must be installed in order to use watch() features.'):e}}var _Hr=class{get capabilities(){return{synchronous:!1}}write(t,r){return(0,$b.from)(mD.promises.mkdir((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0})).pipe((0,$b.mergeMap)(()=>mD.promises.writeFile((0,oC.getSystemPath)(t),new Uint8Array(r))))}read(t){return(0,$b.from)(mD.promises.readFile((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>new Uint8Array(r).buffer))}delete(t){return(0,$b.from)(mD.promises.rm((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}))}rename(t,r){return(0,$b.from)(mD.promises.rename((0,oC.getSystemPath)(t),(0,oC.getSystemPath)(r)))}list(t){return(0,$b.from)(mD.promises.readdir((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>r.map(n=>(0,oC.fragment)(n))))}exists(t){return(0,$b.from)(Kal((0,oC.getSystemPath)(t)))}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return(0,$b.from)(mD.promises.stat((0,oC.getSystemPath)(t)))}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!0});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsAsyncHost=_Hr;var yHr=class{get capabilities(){return{synchronous:!0}}write(t,r){return new $b.Observable(n=>{(0,mD.mkdirSync)((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0}),(0,mD.writeFileSync)((0,oC.getSystemPath)(t),new Uint8Array(r)),n.next(),n.complete()})}read(t){return new $b.Observable(r=>{let n=(0,mD.readFileSync)((0,oC.getSystemPath)(t));r.next(new Uint8Array(n).buffer),r.complete()})}delete(t){return new $b.Observable(r=>{(0,mD.rmSync)((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}),r.complete()})}rename(t,r){return new $b.Observable(n=>{let a=(0,oC.getSystemPath)(r);(0,mD.mkdirSync)((0,Ual.dirname)(a),{recursive:!0}),(0,mD.renameSync)((0,oC.getSystemPath)(t),a),n.next(),n.complete()})}list(t){return new $b.Observable(r=>{let n=(0,mD.readdirSync)((0,oC.getSystemPath)(t));r.next(n.map(a=>(0,oC.fragment)(a))),r.complete()})}exists(t){return new $b.Observable(r=>{r.next((0,mD.existsSync)((0,oC.getSystemPath)(t))),r.complete()})}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return new $b.Observable(r=>{r.next((0,mD.statSync)((0,oC.getSystemPath)(t))),r.complete()})}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!1});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsSyncHost=yHr});var JDt=H(Ule=>{"use strict";var jal=Ule&&Ule.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wrs=Ule&&Ule.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&jal(t,e,r)};Object.defineProperty(Ule,"__esModule",{value:!0});Wrs(Lrs(),Ule);Wrs(Prs(),Ule)});var SHr=H(S_e=>{"use strict";Object.defineProperty(S_e,"__esModule",{value:!0});S_e.ActionList=S_e.UnknownActionException=void 0;S_e.isContentAction=$al;var zal=Z2(),bHr=class extends zal.BaseException{constructor(t){super(`Unknown action: "${t.kind}".`)}};S_e.UnknownActionException=bHr;var qal=1,EHr=class{_actions=[];_action(t){this._actions.push({...t,id:qal++,parent:this._actions[this._actions.length-1]?.id??0})}create(t,r){this._action({kind:"c",path:t,content:r})}overwrite(t,r){this._action({kind:"o",path:t,content:r})}rename(t,r){this._action({kind:"r",path:t,to:r})}delete(t){this._action({kind:"d",path:t})}optimize(){let t=new Map,r=new Map,n=new Map,a=new Set;for(let o of this._actions)switch(o.kind){case"c":t.set(o.path,o.content);break;case"o":t.has(o.path)?t.set(o.path,o.content):n.set(o.path,o.content);break;case"d":a.add(o.path);break;case"r":{let l=t.get(o.path),A=n.get(o.path);l&&(t.delete(o.path),t.set(o.to,l)),A&&(n.delete(o.path),n.set(o.to,A));let f;for(let[I,C]of r.entries())if(C==o.path){f=I;break}f&&r.set(f,o.to),!l&&!A&&!f&&r.set(o.path,o.to);break}}this._actions=[],a.forEach(o=>{this.delete(o)}),r.forEach((o,l)=>{this.rename(l,o)}),t.forEach((o,l)=>{this.create(l,o)}),n.forEach((o,l)=>{this.overwrite(l,o)})}push(t){this._actions.push(t)}get(t){return this._actions[t]}has(t){for(let r=0;rt.id)return!1}return!1}find(t){return this._actions.find(t)||null}forEach(t,r){this._actions.forEach(t,r)}get length(){return this._actions.length}[Symbol.iterator](){return this._actions[Symbol.iterator]()}};S_e.ActionList=EHr;function $al(e){return e.kind=="c"||e.kind=="o"}});var BHr=H(KDt=>{"use strict";Object.defineProperty(KDt,"__esModule",{value:!0});KDt.SimpleSinkBase=void 0;var eE=qb(),Ors=Z4(),ecl=SHr(),UDt=function(){},vHr=class{preCommitAction=UDt;postCommitAction=UDt;preCommit=UDt;postCommit=UDt;_fileAlreadyExistException(t){throw new Ors.FileAlreadyExistException(t)}_fileDoesNotExistException(t){throw new Ors.FileDoesNotExistException(t)}_validateOverwriteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}_validateCreateAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.path)}))}_validateRenameAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}),(0,eE.mergeMap)(()=>this._validateFileExists(t.to)),(0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.to)}))}_validateDeleteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}validateSingleAction(t){switch(t.kind){case"o":return this._validateOverwriteAction(t);case"c":return this._validateCreateAction(t);case"r":return this._validateRenameAction(t);case"d":return this._validateDeleteAction(t);default:throw new ecl.UnknownActionException(t)}}commitSingleAction(t){return(0,eE.concat)(this.validateSingleAction(t),new eE.Observable(r=>{let n=null;switch(t.kind){case"o":n=this._overwriteFile(t.path,t.content);break;case"c":n=this._createFile(t.path,t.content);break;case"r":n=this._renameFile(t.path,t.to);break;case"d":n=this._deleteFile(t.path);break}n?n.subscribe(r):r.complete()})).pipe((0,eE.ignoreElements)())}commit(t){let r=(0,eE.from)(t.actions);return(0,eE.concat)(this.preCommit()||(0,eE.of)(null),(0,eE.defer)(()=>r).pipe((0,eE.concatMap)(n=>{let a=this.preCommitAction(n);return(0,eE.isObservable)(a)||tcl(a)?a:(0,eE.of)(a||n)}),(0,eE.concatMap)(n=>(0,eE.concat)(this.commitSingleAction(n).pipe((0,eE.ignoreElements)()),(0,eE.of)(n))),(0,eE.concatMap)(n=>this.postCommitAction(n)||(0,eE.of)(null))),(0,eE.defer)(()=>this._done()),(0,eE.defer)(()=>this.postCommit()||(0,eE.of)(null))).pipe((0,eE.ignoreElements)(),(0,eE.defaultIfEmpty)(void 0))}};KDt.SimpleSinkBase=vHr;function tcl(e){return!!e&&typeof e.then=="function"}});var zDt=H(jDt=>{"use strict";Object.defineProperty(jDt,"__esModule",{value:!0});jDt.HostSink=void 0;var LR=qb(),rcl=BHr(),wHr=class extends rcl.SimpleSinkBase{_host;_force;_filesToDelete=new Set;_filesToRename=new Set;_filesToCreate=new Map;_filesToUpdate=new Map;constructor(t,r=!1){super(),this._host=t,this._force=r}_validateCreateAction(t){return this._force?LR.EMPTY:super._validateCreateAction(t)}_validateFileExists(t){if(this._filesToCreate.has(t)||this._filesToUpdate.has(t))return(0,LR.of)(!0);if(this._filesToDelete.has(t))return(0,LR.of)(!1);for(let[r,n]of this._filesToRename.values())switch(t){case r:return(0,LR.of)(!1);case n:return(0,LR.of)(!0)}return this._host.exists(t)}_overwriteFile(t,r){return this._filesToUpdate.set(t,r),LR.EMPTY}_createFile(t,r){return this._filesToCreate.set(t,r),LR.EMPTY}_renameFile(t,r){return this._filesToRename.add([t,r]),LR.EMPTY}_deleteFile(t){return this._filesToCreate.has(t)?(this._filesToCreate.delete(t),this._filesToUpdate.delete(t)):this._filesToDelete.add(t),LR.EMPTY}_done(){return(0,LR.concat)((0,LR.from)([...this._filesToDelete.values()]).pipe((0,LR.concatMap)(t=>this._host.delete(t))),(0,LR.from)([...this._filesToRename.entries()]).pipe((0,LR.concatMap)(([t,[r,n]])=>this._host.rename(r,n))),(0,LR.from)([...this._filesToCreate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r))),(0,LR.from)([...this._filesToUpdate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r)))).pipe((0,LR.reduce)(()=>{}))}};jDt.HostSink=wHr});var RHr=H(qDt=>{"use strict";Object.defineProperty(qDt,"__esModule",{value:!0});qDt.DryRunSink=void 0;var Mrs=Z2(),ncl=JDt(),Hrs=qb(),icl=zDt(),THr=class extends icl.HostSink{_subject=new Hrs.Subject;_fileDoesNotExistExceptionSet=new Set;_fileAlreadyExistExceptionSet=new Set;reporter=this._subject.asObservable();constructor(t,r=!1){super(typeof t=="string"?new Mrs.virtualFs.ScopedHost(new ncl.NodeJsSyncHost,(0,Mrs.normalize)(t)):t,r)}_fileAlreadyExistException(t){this._fileAlreadyExistExceptionSet.add(t)}_fileDoesNotExistException(t){this._fileDoesNotExistExceptionSet.add(t)}_done(){return this._fileAlreadyExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"alreadyExist",path:t})}),this._fileDoesNotExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"doesNotExist",path:t})}),this._filesToDelete.forEach(t=>{for(let[r]of this._filesToRename)if(r==t)return;this._subject.next({kind:"delete",path:t})}),this._filesToRename.forEach(([t,r])=>{this._subject.next({kind:"rename",path:t,to:r})}),this._filesToCreate.forEach((t,r)=>{for(let[,n]of this._filesToRename)if(n==r)return;this._fileAlreadyExistExceptionSet.has(r)||this._fileDoesNotExistExceptionSet.has(r)||this._subject.next({kind:"create",path:r,content:t})}),this._filesToUpdate.forEach((t,r)=>{this._subject.next({kind:"update",path:r,content:t})}),this._subject.complete(),(0,Hrs.of)(void 0)}};qDt.DryRunSink=THr});var Yrs=H($Dt=>{"use strict";Object.defineProperty($Dt,"__esModule",{value:!0});$Dt.BaseWorkflow=void 0;var NHr=Z2(),sx=qb(),scl=mHr(),ocl=Z4(),acl=KMr(),ccl=RHr(),lcl=zDt(),ucl=E_e(),DHr=class{_engine;_engineHost;_registry;_host;_reporter=new sx.Subject;_lifeCycle=new sx.Subject;_context;_force;_dryRun;constructor(t){this._host=t.host,this._engineHost=t.engineHost,t.registry?this._registry=t.registry:(this._registry=new NHr.schema.CoreSchemaRegistry(acl.standardFormats),this._registry.addPostTransform(NHr.schema.transforms.addUndefinedDefaults)),this._engine=new scl.SchematicEngine(this._engineHost,this),this._context=[],this._force=t.force||!1,this._dryRun=t.dryRun||!1}get context(){let t=this._context[this._context.length-1];if(!t)throw new Error("Cannot get context when workflow is not executing...");return t}get engine(){return this._engine}get engineHost(){return this._engineHost}get registry(){return this._registry}get reporter(){return this._reporter.asObservable()}get lifeCycle(){return this._lifeCycle.asObservable()}_createSinks(){let t=!1,r=new ccl.DryRunSink(this._host,this._force),n=r.reporter.subscribe(a=>{this._reporter.next(a),t=t||a.kind=="error"});return[r,{commit(){return n.unsubscribe(),t?(0,sx.throwError)(new ocl.UnsuccessfulWorkflowExecution):(0,sx.of)()}},...this._dryRun?[]:[new lcl.HostSink(this._host,this._force)]]}execute(t){let r=this._context[this._context.length-1];r||this._lifeCycle.next({kind:"start"});let n=this._engine.createCollection(t.collection),a=t.allowPrivate||r&&r.collection===t.collection,o=n.createSchematic(t.schematic,a),l=this._createSinks();this._lifeCycle.next({kind:"workflow-start"});let A={...t,debug:t.debug||!1,logger:t.logger||r&&r.logger||new NHr.logging.NullLogger,parentContext:r};return this._context.push(A),o.call(t.options,(0,sx.of)(new ucl.HostTree(this._host)),{logger:A.logger}).pipe((0,sx.concatMap)(f=>(0,sx.concat)((0,sx.from)(l).pipe((0,sx.concatMap)(I=>I.commit(f)),(0,sx.ignoreElements)()),(0,sx.of)(f))),(0,sx.concatMap)(()=>this._dryRun?sx.EMPTY:(this._lifeCycle.next({kind:"post-tasks-start"}),this._engine.executePostTasks().pipe((0,sx.tap)({complete:()=>this._lifeCycle.next({kind:"post-tasks-end"})}),(0,sx.defaultIfEmpty)(void 0),(0,sx.last)()))),(0,sx.tap)({complete:()=>{this._lifeCycle.next({kind:"workflow-end"}),this._context.pop(),this._context.length==0&&this._lifeCycle.next({kind:"end"})}}))}};$Dt.BaseWorkflow=DHr});var Xrs=H(Qrs=>{"use strict";Object.defineProperty(Qrs,"__esModule",{value:!0})});var Urs=H(Kle=>{"use strict";var gcl=Kle&&Kle.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jrs=Kle&&Kle.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&gcl(t,e,r)};Object.defineProperty(Kle,"__esModule",{value:!0});Jrs(Yrs(),Kle);Jrs(Xrs(),Kle)});var ekt=H(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.source=dcl;jG.empty=pcl;jG.chain=xHr;jG.apply=fcl;jG.mergeWith=Icl;jG.noop=qrs;jG.filter=hcl;jG.asSource=mcl;jG.branchAndMerge=Ccl;jG.when=_cl;jG.partitionApplyMerge=ycl;jG.forEach=bcl;jG.composeFileOperators=Ecl;jG.applyToSubtree=Scl;var jle=qb(),jrs=Z4(),Krs=E_e(),zrs=yH(),Acl=BDt(),kHr=dje(),i6=kDt();function dcl(e){return()=>e}function pcl(){return()=>(0,kHr.empty)()}function xHr(e){return async(t,r)=>{let n;if(Symbol.asyncIterator in e)for await(let a of e)n=(0,i6.callRule)(a,n??t,r);else for(let a of e)n=(0,i6.callRule)(a,n??t,r);return()=>n}}function fcl(e,t){return r=>(0,i6.callRule)(xHr(t),(0,i6.callSource)(e,r),r)}function Icl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callSource)(e,n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function qrs(){return()=>{}}function hcl(e){return t=>{if(Krs.HostTree.isHostTree(t))return new Krs.FilterHostTree(t,e);throw new jrs.SchematicsException("Tree type is not supported.")}}function mcl(e){return t=>(0,i6.callRule)(e,(0,kHr.empty)(),t)}function Ccl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callRule)(e,r.branch(),n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function _cl(e,t){return r=>e(r.path,r)?t(r):r}function ycl(e,t,r){return(n,a)=>{let[o,l]=(0,kHr.partition)(n,e);return(0,jle.concat)((0,i6.callRule)(t,o,a),(0,i6.callRule)(r||qrs(),l,a)).pipe((0,jle.toArray)(),(0,jle.map)(([A,f])=>(A.merge(f,a.strategy),A)))}}function bcl(e){return t=>{t.visit((r,n)=>{if(!n)return;let a=e(n);if(a!==n){if(a===null){t.delete(r);return}a.path!=r&&t.rename(r,a.path),a.content.equals(n.content)||t.overwrite(a.path,a.content)}})}}function Ecl(e){return t=>{let r=t;for(let n of e)if(r=n(r),r===null)return null;return r}}function Scl(e,t){return(r,n)=>{let a=new Acl.ScopedTree(r,e);return(0,i6.callRule)(xHr(t),a,n).pipe((0,jle.map)(o=>{if(o===a)return r;throw new jrs.SchematicsException('Original tree must be returned from all rules when using "applyToSubtree".')}))}}});var $rs=H(FHr=>{"use strict";Object.defineProperty(FHr,"__esModule",{value:!0});FHr.move=Bcl;var GHr=Z2(),vcl=ekt();function Bcl(e,t){t===void 0&&(t=e,e="/");let r=(0,GHr.normalize)("/"+e),n=(0,GHr.normalize)("/"+t);return r===n?vcl.noop:a=>(a.exists(r)?a.rename(r,n):a.getDir(r).visit(o=>{a.rename(o,(0,GHr.join)(n,o.slice(r.length)))}),a)}});var tns=H(ZHr=>{"use strict";Object.defineProperty(ZHr,"__esModule",{value:!0});ZHr.default=Rcl;var wcl=E_e();function ens(e){return new Array(e).fill(0).map(t=>"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]).join("")}function Tcl(e,t){return Math.floor(Math.random()*(t-e))+e}function Rcl(e){return()=>{let t="root"in e?e.root:"/",r=new wcl.HostTree,n="multiFiles"in e?typeof e.multiFiles=="number"?e.multiFiles:Tcl(2,12):1;for(let a=0;a{"use strict";Object.defineProperty(tkt,"__esModule",{value:!0});tkt.externalSchematic=Ncl;tkt.schematic=Dcl;var Rxe=qb(),rns=yH(),nns=dje();function Ncl(e,t,r,n){return(a,o)=>o.engine.createCollection(e,o.schematic.collection).createSchematic(t).call(r,(0,Rxe.of)((0,nns.branch)(a)),o,n).pipe((0,Rxe.last)(),(0,Rxe.map)(f=>(a.merge(f,rns.MergeStrategy.AllowOverwriteConflict),a)))}function Dcl(e,t,r){return(n,a)=>a.schematic.collection.createSchematic(e,!0).call(t,(0,Rxe.of)((0,nns.branch)(n)),a,r).pipe((0,Rxe.last)(),(0,Rxe.map)(A=>(n.merge(A,rns.MergeStrategy.AllowOverwriteConflict),n)))}});var ans=H(hT=>{"use strict";Object.defineProperty(hT,"__esModule",{value:!0});hT.InvalidPipeException=hT.UnknownPipeException=hT.OptionIsNotDefinedException=hT.TEMPLATE_FILENAME_RE=void 0;hT.applyContentTemplate=LHr;hT.contentTemplate=sns;hT.applyPathTemplate=VHr;hT.pathTemplate=ons;hT.renameTemplateFiles=Gcl;hT.template=Fcl;hT.applyTemplates=Zcl;var Nxe=Z2(),kcl=wt("node:os"),v_e=ekt();hT.TEMPLATE_FILENAME_RE=/\.template$/;var hje=class extends Nxe.BaseException{constructor(t){super(`Option "${t}" is not defined.`)}};hT.OptionIsNotDefinedException=hje;var rkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is not defined.`)}};hT.UnknownPipeException=rkt;var nkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is invalid.`)}};hT.InvalidPipeException=nkt;var xcl=new TextDecoder("utf-8",{fatal:!0});function LHr(e){return t=>{let{path:r,content:n}=t;try{let a=xcl.decode(n).replace(/\r?\n/g,kcl.EOL);return{path:r,content:Buffer.from((0,Nxe.template)(a,{})(e))}}catch(a){if(a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA")return t;throw a}}}function sns(e){return(0,v_e.forEach)(LHr(e))}function VHr(e,t={interpolationStart:"__",interpolationEnd:"__",pipeSeparator:"@"}){let r=t.interpolationStart,n=t.interpolationEnd,a=r.length,o=n.length;return l=>{let A=l.path,f=l.content,I=A,C=A.indexOf(r),b=A.indexOf(n,C+a+1);for(;C!=-1&&b!=-1;){let E=A.substring(C+a,b),N=e[E];if(t.pipeSeparator){let[B,...F]=E.split(t.pipeSeparator);if(N=e[B],typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(B);N=F.reduce((Q,X)=>{if(!X)return Q;if(!(X in e))throw new rkt(X);let ae=e[X];if(typeof ae!="function")throw new nkt(X);return""+ae(Q)},""+N)}else if(typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(E);A=A.substring(0,C)+N+A.substring(b+o),C=A.indexOf(t.interpolationStart),b=A.indexOf(t.interpolationEnd,C+a+1)}return{path:(0,Nxe.normalize)(A),content:f}}}function ons(e){return(0,v_e.forEach)(VHr(e))}function Gcl(){return(0,v_e.forEach)(e=>e.path.match(hT.TEMPLATE_FILENAME_RE)?{content:e.content,path:(0,Nxe.normalize)(e.path.replace(hT.TEMPLATE_FILENAME_RE,""))}:e)}function Fcl(e){return(0,v_e.chain)([sns(e),ons(e)])}function Zcl(e){return(0,v_e.forEach)((0,v_e.when)(t=>t.endsWith(".template"),(0,v_e.composeFileOperators)([LHr(e),VHr(e),t=>({content:t.content,path:t.path.replace(hT.TEMPLATE_FILENAME_RE,"")})])))}});var cns=H(PHr=>{"use strict";Object.defineProperty(PHr,"__esModule",{value:!0});PHr.url=Vcl;var Lcl=wt("url");function Vcl(e){let t=(0,Lcl.parse)(e);return r=>r.engine.createSourceFromUrl(t,r)(r)}});var lns=H(ikt=>{"use strict";Object.defineProperty(ikt,"__esModule",{value:!0});ikt.EmptyTree=void 0;var Pcl=E_e(),WHr=class extends Pcl.HostTree{constructor(){super()}};ikt.EmptyTree=WHr});var Dxe=H(wm=>{"use strict";var uns=wm&&wm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wcl=wm&&wm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gns=wm&&wm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Ans,"__esModule",{value:!0})});var akt=H(okt=>{"use strict";Object.defineProperty(okt,"__esModule",{value:!0});okt.ExportStringRef=void 0;var pns=wt("path"),OHr=class{_ref;_module;_path;constructor(t,r=process.cwd(),n=!0){let[a,o]=t.split("#",2);this._module=a[0]=="."?(0,pns.resolve)(r,a):a,this._module=wt.resolve(this._module),this._path=(0,pns.dirname)(this._module),n?this._ref=wt(this._module)[o||"default"]:this._ref=wt(this._module)}get ref(){return this._ref}get module(){return this._module}get path(){return this._path}};okt.ExportStringRef=OHr});var HHr=H(MHr=>{"use strict";Object.defineProperty(MHr,"__esModule",{value:!0});MHr.readJsonFile=Ucl;var Xcl=wt("fs"),fns=yxe(),Jcl=Z4();function Ucl(e){let t;try{t=(0,Xcl.readFileSync)(e,"utf-8")}catch(a){throw a&&typeof a=="object"&&"code"in a&&a.code==="ENOENT"?new Jcl.FileDoesNotExistException(e):a}let r=[],n=(0,fns.parse)(t,r,{allowTrailingComma:!0});if(r.length){let{error:a,offset:o}=r[0];throw new Error(`Failed to parse "${e}" as JSON AST Object. ${(0,fns.printParseErrorCode)(a)} at location: ${o}.`)}return n}});var gkt=H(Uv=>{"use strict";Object.defineProperty(Uv,"__esModule",{value:!0});Uv.FileSystemEngineHostBase=Uv.SchematicNameCollisionException=Uv.SchematicMissingDescriptionException=Uv.SchematicMissingFieldsException=Uv.CollectionMissingFieldsException=Uv.CollectionMissingSchematicsMapException=Uv.FactoryCannotBeResolvedException=Uv.SchematicMissingFactoryException=Uv.InvalidCollectionJsonException=Uv.CollectionCannotBeResolvedException=void 0;var L4=Z2(),Kcl=JDt(),Ins=wt("fs"),kxe=wt("path"),mje=qb(),hns=Dxe(),mns=HHr(),YHr=class extends L4.BaseException{constructor(t){super(`Collection ${JSON.stringify(t)} cannot be resolved.`)}};Uv.CollectionCannotBeResolvedException=YHr;var Cje=class extends L4.BaseException{constructor(t,r,n){let a=`Collection JSON at path ${JSON.stringify(r)} is invalid.`;n&&(a=`${a} ${n.message}`),super(a)}};Uv.InvalidCollectionJsonException=Cje;var ckt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} is missing a factory.`)}};Uv.SchematicMissingFactoryException=ckt;var lkt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} cannot resolve the factory.`)}};Uv.FactoryCannotBeResolvedException=lkt;var QHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" does not have a schematics map.`)}};Uv.CollectionMissingSchematicsMapException=QHr;var XHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" is missing fields.`)}};Uv.CollectionMissingFieldsException=XHr;var JHr=class extends L4.BaseException{constructor(t){super(`Schematic "${t}" is missing fields.`)}};Uv.SchematicMissingFieldsException=JHr;var UHr=class extends L4.BaseException{constructor(t){super(`Schematics "${t}" does not have a description.`)}};Uv.SchematicMissingDescriptionException=UHr;var ukt=class extends L4.BaseException{constructor(t){super(`Schematics/alias ${JSON.stringify(t)} collides with another alias or schematic name.`)}};Uv.SchematicNameCollisionException=ukt;var KHr=class{_transforms=[];_contextTransforms=[];_taskFactories=new Map;listSchematicNames(t,r){let n=[];for(let a of Object.keys(t.schematics)){let o=t.schematics[a];o.hidden&&!r||o.private||(!o.extends||o.factory||o.extends&&o.extends.indexOf(":")!==-1)&&n.push(a)}return n}registerOptionsTransform(t){this._transforms.push(t)}registerContextTransform(t){this._contextTransforms.push(t)}createCollectionDescription(t,r){let n=this._resolveCollectionPath(t,r?.path),a=(0,mns.readJsonFile)(n);if(!a||typeof a!="object"||Array.isArray(a))throw new Cje(t,n);typeof a.extends=="string"&&(a.extends=[a.extends]);let o=this._transformCollectionDescription(t,{...a,path:n});if(!o||!o.name)throw new Cje(t,n);let l=Object.keys(o.schematics);for(let A of Object.keys(o.schematics)){let f=o.schematics[A].aliases||[];for(let I of f)if(l.indexOf(I)!=-1)throw new ukt(I);l.push(...f)}return o}createSchematicDescription(t,r){for(let C of Object.keys(r.schematics)){let b=r.schematics[C];if(b.aliases&&b.aliases.indexOf(t)!=-1){t=C;break}}if(!(t in r.schematics))return null;let n=(0,kxe.dirname)(r.path),a=r.schematics[t];if(!a)return null;if(a.extends){let C=a.extends.indexOf(":"),b=C!==-1?a.extends.slice(0,C):null,E=C===-1?a.extends:a.extends.slice(C+1);if(b!==null){let N=this.createCollectionDescription(b);return this.createSchematicDescription(E,N)}else return this.createSchematicDescription(E,r)}if(!a.factory)throw new ckt(t);let o=this._resolveReferenceString(a.factory,n,r);if(!o)throw new lkt(t);let l=a.schema,A;l&&((0,kxe.isAbsolute)(l)||(l=(0,kxe.join)(n,l)),A=(0,mns.readJsonFile)(l));let f=(0,kxe.join)(n,a.factory),I=(0,Ins.existsSync)(f)&&(0,Ins.statSync)(f).isDirectory()?f:(0,kxe.dirname)(f);return this._transformSchematicDescription(t,r,{...a,schema:l,schemaJson:A,name:t,path:I,factoryFn:o.ref,collection:r})}createSourceFromUrl(t){switch(t.protocol){case null:case"file:":return r=>{let n=r.schematic.description;if(n.path===void 0)throw new Error("Unsupported schematic context. Expected a FileSystemSchematicContext.");let a=(0,L4.normalize)((0,kxe.resolve)(n.path,t.path||""));return new hns.HostCreateTree(new L4.virtualFs.ScopedHost(new Kcl.NodeJsSyncHost,a))}}return null}transformOptions(t,r,n){let a=async()=>{let o=r;for(let l of this._transforms){let A=l(t,o,n);o=await((0,mje.isObservable)(A)?(0,mje.lastValueFrom)(A):A)}return o};return(0,mje.from)(a())}transformContext(t){return this._contextTransforms.reduce((r,n)=>n(r),t)}getSchematicRuleFactory(t,r){return t.factoryFn}registerTaskExecutor(t,r){this._taskFactories.set(t.name,()=>(0,mje.from)(t.create(r)))}createTaskExecutor(t){let r=this._taskFactories.get(t);return r?r():(0,mje.throwError)(new hns.UnregisteredTaskException(t))}hasTaskExecutor(t){return this._taskFactories.has(t)}};Uv.FileSystemEngineHostBase=KHr});var Cns=H(Akt=>{"use strict";Object.defineProperty(Akt,"__esModule",{value:!0});Akt.NodePackageName=void 0;Akt.NodePackageName="node-package"});var _ns=H(dkt=>{"use strict";Object.defineProperty(dkt,"__esModule",{value:!0});dkt.RepositoryInitializerName=void 0;dkt.RepositoryInitializerName="repo-init"});var yns=H(pkt=>{"use strict";Object.defineProperty(pkt,"__esModule",{value:!0});pkt.RunSchematicName=void 0;pkt.RunSchematicName="run-schematic"});var bns=H((Hzu,jcl)=>{jcl.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var vns=H((Yzu,Sns)=>{"use strict";var fkt=Object.assign({},bns()),Ens=Object.keys(fkt);Object.defineProperty(fkt,"random",{get(){let e=Math.floor(Math.random()*Ens.length),t=Ens[e];return fkt[t]}});Sns.exports=fkt});var jHr=H((Qzu,Bns)=>{"use strict";Bns.exports=()=>process.platform!=="win32"?!0:!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"});var Tns=H((Xzu,wns)=>{"use strict";var zle=VK(),zcl=jHr(),qcl={info:zle.blue("\u2139"),success:zle.green("\u2714"),warning:zle.yellow("\u26A0"),error:zle.red("\u2716")},$cl={info:zle.blue("i"),success:zle.green("\u221A"),warning:zle.yellow("\u203C"),error:zle.red("\xD7")};wns.exports=zcl()?qcl:$cl});var Rns=H((Jzu,Ikt)=>{var ell=function(){"use strict";function e(l,A,f,I){var C;typeof A=="object"&&(f=A.depth,I=A.prototype,C=A.filter,A=A.circular);var b=[],E=[],N=typeof Buffer<"u";typeof A>"u"&&(A=!0),typeof f>"u"&&(f=1/0);function B(F,Q){if(F===null)return null;if(Q==0)return F;var X,ae;if(typeof F!="object")return F;if(e.__isArray(F))X=[];else if(e.__isRegExp(F))X=new RegExp(F.source,o(F)),F.lastIndex&&(X.lastIndex=F.lastIndex);else if(e.__isDate(F))X=new Date(F.getTime());else{if(N&&Buffer.isBuffer(F))return Buffer.allocUnsafe?X=Buffer.allocUnsafe(F.length):X=new Buffer(F.length),F.copy(X),X;typeof I>"u"?(ae=Object.getPrototypeOf(F),X=Object.create(ae)):(X=Object.create(I),ae=I)}if(A){var ne=b.indexOf(F);if(ne!=-1)return E[ne];b.push(F),E.push(X)}for(var ce in F){var fe;ae&&(fe=Object.getOwnPropertyDescriptor(ae,ce)),!(fe&&fe.set==null)&&(X[ce]=B(F[ce],Q-1))}return X}return B(l,f)}e.clonePrototype=function(A){if(A===null)return null;var f=function(){};return f.prototype=A,new f};function t(l){return Object.prototype.toString.call(l)}e.__objToStr=t;function r(l){return typeof l=="object"&&t(l)==="[object Date]"}e.__isDate=r;function n(l){return typeof l=="object"&&t(l)==="[object Array]"}e.__isArray=n;function a(l){return typeof l=="object"&&t(l)==="[object RegExp]"}e.__isRegExp=a;function o(l){var A="";return l.global&&(A+="g"),l.ignoreCase&&(A+="i"),l.multiline&&(A+="m"),A}return e.__getRegExpFlags=o,e}();typeof Ikt=="object"&&Ikt.exports&&(Ikt.exports=ell)});var Dns=H((Uzu,Nns)=>{var tll=Rns();Nns.exports=function(e,t){return e=e||{},Object.keys(t).forEach(function(r){typeof e[r]>"u"&&(e[r]=tll(t[r]))}),e}});var xns=H((Kzu,kns)=>{kns.exports=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]]});var Lns=H((jzu,zHr)=>{"use strict";var rll=Dns(),_je=xns(),Fns={nul:0,control:0};zHr.exports=function(t){return Zns(t,Fns)};zHr.exports.config=function(e){return e=rll(e||{},Fns),function(r){return Zns(r,e)}};function Zns(e,t){if(typeof e!="string")return Gns(e,t);for(var r=0,n=0;n=127&&e<160?t.control:nll(e)?0:1+(e>=4352&&(e<=4447||e==9001||e==9002||e>=11904&&e<=42191&&e!=12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141))}function nll(e){var t=0,r=_je.length-1,n;if(e<_je[0][0]||e>_je[r][1])return!1;for(;r>=t;)if(n=Math.floor((t+r)/2),e>_je[n][1])t=n+1;else if(e<_je[n][0])r=n-1;else return!0;return!1}});var Pns=H((zzu,Vns)=>{"use strict";Vns.exports=({stream:e=process.stdout}={})=>!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))});var Ons=H((qzu,tYr)=>{"use strict";var ill=wt("readline"),sll=VK(),Wns=uBe(),hkt=vns(),mkt=Tns(),oll=q5(),all=Lns(),cll=Pns(),lll=jHr(),{BufferListStream:ull}=cwr(),qHr=Symbol("text"),$Hr=Symbol("prefixText"),gll=3,eYr=class{constructor(){this.requests=0,this.mutedStream=new ull,this.mutedStream.pipe(process.stdout);let t=this;this.ourEmit=function(r,n,...a){let{stdin:o}=process;if(t.requests>0||o.emit===t.ourEmit){if(r==="keypress")return;r==="data"&&n.includes(gll)&&process.emit("SIGINT"),Reflect.apply(t.oldEmit,this,[r,n,...a])}else Reflect.apply(process.stdin.emit,this,[r,n,...a])}}start(){this.requests++,this.requests===1&&this.realStart()}stop(){if(this.requests<=0)throw new Error("`stop` called more times than `start`");this.requests--,this.requests===0&&this.realStop()}realStart(){process.platform!=="win32"&&(this.rl=ill.createInterface({input:process.stdin,output:this.mutedStream}),this.rl.on("SIGINT",()=>{process.listenerCount("SIGINT")===0?process.emit("SIGINT"):(this.rl.close(),process.kill(process.pid,"SIGINT"))}))}realStop(){process.platform!=="win32"&&(this.rl.close(),this.rl=void 0)}},Ckt,_kt=class{constructor(t){Ckt||(Ckt=new eYr),typeof t=="string"&&(t={text:t}),this.options={text:"",color:"cyan",stream:process.stderr,discardStdin:!0,...t},this.spinner=this.options.spinner,this.color=this.options.color,this.hideCursor=this.options.hideCursor!==!1,this.interval=this.options.interval||this.spinner.interval||100,this.stream=this.options.stream,this.id=void 0,this.isEnabled=typeof this.options.isEnabled=="boolean"?this.options.isEnabled:cll({stream:this.stream}),this.isSilent=typeof this.options.isSilent=="boolean"?this.options.isSilent:!1,this.text=this.options.text,this.prefixText=this.options.prefixText,this.linesToClear=0,this.indent=this.options.indent,this.discardStdin=this.options.discardStdin,this.isDiscardingStdin=!1}get indent(){return this._indent}set indent(t=0){if(!(t>=0&&Number.isInteger(t)))throw new Error("The `indent` option must be an integer from 0 and up");this._indent=t}_updateInterval(t){t!==void 0&&(this.interval=t)}get spinner(){return this._spinner}set spinner(t){if(this.frameIndex=0,typeof t=="object"){if(t.frames===void 0)throw new Error("The given spinner must have a `frames` property");this._spinner=t}else if(!lll())this._spinner=hkt.line;else if(t===void 0)this._spinner=hkt.dots;else if(t!=="default"&&hkt[t])this._spinner=hkt[t];else throw new Error(`There is no built-in spinner named '${t}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);this._updateInterval(this._spinner.interval)}get text(){return this[qHr]}set text(t){this[qHr]=t,this.updateLineCount()}get prefixText(){return this[$Hr]}set prefixText(t){this[$Hr]=t,this.updateLineCount()}get isSpinning(){return this.id!==void 0}getFullPrefixText(t=this[$Hr],r=" "){return typeof t=="string"?t+r:typeof t=="function"?t()+r:""}updateLineCount(){let t=this.stream.columns||80,r=this.getFullPrefixText(this.prefixText,"-");this.lineCount=0;for(let n of oll(r+"--"+this[qHr]).split(` -`))this.lineCount+=Math.max(1,Math.ceil(all(n)/t))}get isEnabled(){return this._isEnabled&&!this.isSilent}set isEnabled(t){if(typeof t!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this._isEnabled=t}get isSilent(){return this._isSilent}set isSilent(t){if(typeof t!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this._isSilent=t}frame(){let{frames:t}=this.spinner,r=t[this.frameIndex];this.color&&(r=sll[this.color](r)),this.frameIndex=++this.frameIndex%t.length;let n=typeof this.prefixText=="string"&&this.prefixText!==""?this.prefixText+" ":"",a=typeof this.text=="string"?" "+this.text:"";return n+r+a}clear(){if(!this.isEnabled||!this.stream.isTTY)return this;for(let t=0;t0&&this.stream.moveCursor(0,-1),this.stream.clearLine(),this.stream.cursorTo(this.indent);return this.linesToClear=0,this}render(){return this.isSilent?this:(this.clear(),this.stream.write(this.frame()),this.linesToClear=this.lineCount,this)}start(t){return t&&(this.text=t),this.isSilent?this:this.isEnabled?this.isSpinning?this:(this.hideCursor&&Wns.hide(this.stream),this.discardStdin&&process.stdin.isTTY&&(this.isDiscardingStdin=!0,Ckt.start()),this.render(),this.id=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.stream.write(`- ${this.text} +`}),this.intro&&(this.intro=t+this.intro.replace(/^[^\n]/gm,(n,a)=>a>0?t+n:n)),this}prepend(t){return this.intro=t+this.intro,this}toString(){let t=this.sources.map((r,n)=>{let a=r.separator!==void 0?r.separator:this.separator;return(n>0?a:"")+r.content.toString()}).join("");return this.intro+t}isEmpty(){return!(this.intro.length&&this.intro.trim()||this.sources.some(t=>!t.content.isEmpty()))}length(){return this.sources.reduce((t,r)=>t+r.content.length(),this.intro.length)}trimLines(){return this.trim("[\\r\\n]")}trim(t){return this.trimStart(t).trimEnd(t)}trimStart(t){let r=new RegExp("^"+(t||"\\s")+"+");if(this.intro=this.intro.replace(r,""),!this.intro){let n,a=0;do if(n=this.sources[a++],!n)break;while(!n.content.trimStartAborted(t))}return this}trimEnd(t){let r=new RegExp((t||"\\s")+"+$"),n,a=this.sources.length-1;do if(n=this.sources[a--],!n){this.intro=this.intro.replace(r,"");break}while(!n.content.trimEndAborted(t));return this}};yte.Bundle=cHr;yte.SourceMap=gje;yte.default=yte;vrs.exports=yte});var uHr=H(Yle=>{"use strict";var mal=Yle&&Yle.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Yle,"__esModule",{value:!0});Yle.UpdateRecorderBase=Yle.IndexOutOfBoundException=void 0;var Cal=Z2(),_al=mal(Brs()),yal=Z4(),EDt=class extends Cal.BaseException{constructor(t,r,n=1/0){super(`Index ${t} outside of range [${r}, ${n}].`)}};Yle.IndexOutOfBoundException=EDt;var lHr=class e{data;bom;_path;content;constructor(t,r,n="utf-8",a=!1){this.data=t,this.bom=a;let o;try{o=new TextDecoder(n,{fatal:!0,ignoreBOM:!1}).decode(t)}catch(l){throw l instanceof TypeError?new Error(`Failed to decode "${r}" as ${n} text.`):l}this._path=r,this.content=new _al.default(o)}static createFromFileEntry(t){let r=t.content.byteLength>0&&t.content.readUInt8(0),n=t.content.byteLength>1&&t.content.readUInt8(1),a=t.content.byteLength>2&&t.content.readUInt8(2);return r==239&&n==187&&a==191?new e(t.content,t.path,"utf-8",!0):r===255&&n==254?new e(t.content,t.path,"utf-16le",!0):r===254&&n==255?new e(t.content,t.path,"utf-16be",!0):new e(t.content,t.path)}get path(){return this._path}_assertIndex(t){if(t<0||t>this.content.original.length)throw new EDt(t,0,this.content.original.length)}insertLeft(t,r){return this._assertIndex(t),this.content.appendLeft(t,r.toString()),this}insertRight(t,r){return this._assertIndex(t),this.content.appendRight(t,r.toString()),this}remove(t,r){return this._assertIndex(t),this.content.remove(t,t+r),this}apply(t){if(!t.equals(this.data))throw new yal.ContentHasMutatedException(this.path);return Buffer.from((this.bom?"\uFEFF":"")+this.content.toString(),"utf-8")}};Yle.UpdateRecorderBase=lHr});var BDt=H(vDt=>{"use strict";Object.defineProperty(vDt,"__esModule",{value:!0});vDt.ScopedTree=void 0;var lw=Z2(),bal=mDt(),Eal=yH(),Aje=class{_base;scope;constructor(t,r){this._base=t,this.scope=r}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get content(){return this._base.content}},SDt=class e{_base;scope;constructor(t,r){this._base=t,this.scope=r}get parent(){return!this._base.parent||this._base.path==this.scope?null:new e(this._base.parent,this.scope)}get path(){return(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,this._base.path))}get subdirs(){return this._base.subdirs}get subfiles(){return this._base.subfiles}dir(t){let r=this._base.dir(t);return r&&new e(r,this.scope)}file(t){let r=this._base.file(t);return r&&new Aje(r,this.scope)}visit(t){return this._base.visit((r,n)=>{t((0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this.scope,r)),n&&new Aje(n,this.scope))})}},gHr=class e{_base;_root;constructor(t,r){this._base=t;let n=(0,lw.normalize)("/"+r);this._root=new SDt(this._base.getDir(n),n)}get root(){return this._root}branch(){return new e(this._base.branch(),this._root.scope)}merge(t,r){let n=this,a=new class extends bal.DelegateTree{get actions(){return t.actions.map(o=>n._fullPathAction(o))}}(t);this._base.merge(a,r)}read(t){return this._base.read(this._fullPath(t))}readText(t){return this._base.readText(this._fullPath(t))}readJson(t){return this._base.readJson(this._fullPath(t))}exists(t){return this._base.exists(this._fullPath(t))}get(t){let r=this._base.get(this._fullPath(t));return r&&new Aje(r,this._root.scope)}getDir(t){let r=this._base.getDir(this._fullPath(t));return r&&new SDt(r,this._root.scope)}visit(t){return this._root.visit(t)}overwrite(t,r){return this._base.overwrite(this._fullPath(t),r)}beginUpdate(t){return this._base.beginUpdate(this._fullPath(t))}commitUpdate(t){return this._base.commitUpdate(t)}create(t,r){return this._base.create(this._fullPath(t),r)}delete(t){return this._base.delete(this._fullPath(t))}rename(t,r){return this._base.rename(this._fullPath(t),this._fullPath(r))}apply(t,r){return this._base.apply(this._fullPathAction(t),r)}get actions(){let t=[];for(let r of this._base.actions)r.path.startsWith(this._root.scope+"/")&&(r.kind!=="r"?t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path))}):r.to.startsWith(this._root.scope+"/")&&t.push({...r,path:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.path)),to:(0,lw.join)(lw.NormalizedRoot,(0,lw.relative)(this._root.scope,r.to))}));return t}[Eal.TreeSymbol](){return this}_fullPath(t){return(0,lw.join)(this._root.scope,(0,lw.normalize)("/"+t))}_fullPathAction(t){let r;return t.kind==="r"?r={...t,path:this._fullPath(t.path),to:this._fullPath(t.to)}:r={...t,path:this._fullPath(t.path)},r}};vDt.ScopedTree=gHr});var E_e=H(t6=>{"use strict";Object.defineProperty(t6,"__esModule",{value:!0});t6.FilterHostTree=t6.HostCreateTree=t6.HostTree=t6.HostDirEntry=void 0;var aL=Z2(),wrs=yxe(),DO=Z4(),Sal=mDt(),val=Crs(),e6=yH(),Trs=uHr(),Bal=BDt(),wal=0,wDt=class{parent;path;_host;_tree;constructor(t,r,n,a){this.parent=t,this.path=r,this._host=n,this._tree=a}get subdirs(){return this._host.list(this.path).filter(t=>this._host.isDirectory((0,aL.join)(this.path,t)))}get subfiles(){return this._host.list(this.path).filter(t=>this._host.isFile((0,aL.join)(this.path,t)))}dir(t){return this._tree.getDir((0,aL.join)(this.path,t))}file(t){return this._tree.get((0,aL.join)(this.path,t))}visit(t){try{this.getSubfilesRecursively().forEach(r=>t(r.path,r))}catch(r){if(r!==e6.FileVisitorCancelToken)throw r}}getSubfilesRecursively(){function t(r){return r.subdirs.reduce((n,a)=>[...n,...t(r.dir(a))],r.subfiles.map(n=>r.file(n)))}return t(this)}};t6.HostDirEntry=wDt;var vxe=class e{_backend;_id=--wal;_record;_recordSync;_ancestry=new Set;_dirCache=new Map;[e6.TreeSymbol](){return this}static isHostTree(t){return t instanceof e||typeof t=="object"&&typeof t._ancestry=="object"}constructor(t=new aL.virtualFs.Empty){this._backend=t,this._record=new aL.virtualFs.CordHost(new aL.virtualFs.SafeReadonlyHost(t)),this._recordSync=new aL.virtualFs.SyncDelegateHost(this._record)}_normalizePath(t){return(0,aL.normalize)("/"+t)}_willCreate(t){return this._record.willCreate(t)}_willOverwrite(t){return this._record.willOverwrite(t)}_willDelete(t){return this._record.willDelete(t)}_willRename(t){return this._record.willRename(t)}branch(){let t=new e(this._backend);return t._record=this._record.clone(),t._recordSync=new aL.virtualFs.SyncDelegateHost(t._record),t._ancestry=new Set(this._ancestry).add(this._id),t}isAncestorOf(t){return t instanceof e?t._ancestry.has(this._id):t instanceof Sal.DelegateTree?this.isAncestorOf(t._other):t instanceof Bal.ScopedTree?this.isAncestorOf(t._base):!1}merge(t,r=e6.MergeStrategy.Default){if(t===this)return;this.isAncestorOf(t)&&(r|=e6.MergeStrategy.Overwrite);let n=(r&e6.MergeStrategy.AllowCreationConflict)==e6.MergeStrategy.AllowCreationConflict,a=(r&e6.MergeStrategy.AllowOverwriteConflict)==e6.MergeStrategy.AllowOverwriteConflict,o=(r&e6.MergeStrategy.AllowDeleteConflict)==e6.MergeStrategy.AllowDeleteConflict;t.actions.forEach(l=>{switch(l.kind){case"c":{let{path:A,content:f}=l;if(this._willCreate(A)||this._willOverwrite(A)||this.exists(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!n)throw new DO.MergeConflictException(A);this._record.overwrite(A,f).subscribe()}else this._record.create(A,f).subscribe();return}case"o":{let{path:A,content:f}=l;if(this._willDelete(A)&&!a)throw new DO.MergeConflictException(A);if(this._willOverwrite(A)){let I=this.read(A);if(I&&f.equals(I))return;if(!a)throw new DO.MergeConflictException(A)}this._record.write(A,f).subscribe();return}case"r":{let{path:A,to:f}=l;if(this._willDelete(A))throw new DO.MergeConflictException(A);if(this._willRename(A)){if(this._record.willRenameTo(A,f))return;throw new DO.MergeConflictException(A)}this.rename(A,f);return}case"d":{let{path:A}=l;if(this._willDelete(A))return;if(!this.exists(A)&&!o)throw new DO.MergeConflictException(A);this._recordSync.delete(A);return}}})}get root(){return this.getDir("/")}read(t){let r=this.get(t);return r?r.content:null}readText(t){let r=this.read(t);if(r===null)throw new DO.FileDoesNotExistException(t);let n=new TextDecoder("utf-8",{fatal:!0});try{return n.decode(r)}catch(a){throw a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA"?new Error(`Failed to decode "${t}" as UTF-8 text.`):a}}readJson(t){let r=this.readText(t),n=[],a=(0,wrs.parse)(r,n,{allowTrailingComma:!0});if(n[0]){let{error:o,offset:l}=n[0];throw new Error(`Failed to parse "${t}" as JSON. ${(0,wrs.printParseErrorCode)(o)} at offset: ${l}.`)}return a}exists(t){return this._recordSync.isFile(this._normalizePath(t))}get(t){let r=this._normalizePath(t);if(this._recordSync.isDirectory(r))throw new aL.PathIsDirectoryException(r);return this._recordSync.exists(r)?new val.LazyFileEntry(r,()=>Buffer.from(this._recordSync.read(r))):null}getDir(t){let r=this._normalizePath(t);if(this._recordSync.isFile(r))throw new aL.PathIsFileException(r);let n=this._dirCache.get(r);if(!n){let a=(0,aL.dirname)(r);r===a&&(a=null),n=new wDt(a&&this.getDir(a),r,this._recordSync,this),this._dirCache.set(r,n)}return n}visit(t){this.root.visit((r,n)=>{t(r,n)})}overwrite(t,r){let n=this._normalizePath(t);if(!this._recordSync.exists(n))throw new DO.FileDoesNotExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.overwrite(n,a).subscribe()}beginUpdate(t){let r=this.get(t);if(!r)throw new DO.FileDoesNotExistException(t);return Trs.UpdateRecorderBase.createFromFileEntry(r)}commitUpdate(t){if(t instanceof Trs.UpdateRecorderBase){let r=t.path,n=this.get(r);if(n){let a=t.apply(n.content);a.equals(n.content)||this.overwrite(r,a)}else throw new DO.ContentHasMutatedException(r)}else throw new DO.InvalidUpdateRecordException}create(t,r){let n=this._normalizePath(t);if(this._recordSync.exists(n))throw new DO.FileAlreadyExistException(n);let a=typeof r=="string"?Buffer.from(r):r;this._record.create(n,a).subscribe()}delete(t){this._recordSync.delete(this._normalizePath(t))}rename(t,r){this._recordSync.rename(this._normalizePath(t),this._normalizePath(r))}apply(t,r){throw new DO.SchematicsException("Apply not implemented on host trees.")}*generateActions(){for(let t of this._record.records())switch(t.kind){case"create":yield{id:this._id,parent:0,kind:"c",path:t.path,content:Buffer.from(t.content)};break;case"overwrite":yield{id:this._id,parent:0,kind:"o",path:t.path,content:Buffer.from(t.content)};break;case"rename":yield{id:this._id,parent:0,kind:"r",path:t.from,to:t.to};break;case"delete":yield{id:this._id,parent:0,kind:"d",path:t.path};break}}get actions(){return Array.from(this.generateActions())}};t6.HostTree=vxe;var AHr=class extends vxe{constructor(t){super();let r=new vxe(t);r.visit(n=>{let a=r.read(n);a&&this.create(n,a)})}};t6.HostCreateTree=AHr;var dHr=class extends vxe{constructor(t,r=()=>!0){let n=new aL.virtualFs.SimpleMemoryHost,a=t._backend,o=["/"];for(;o.length>0;){let l=o.pop();if(l===void 0)break;let A=!1;if(a.isDirectory(l).subscribe(C=>A=C),A){a.list(l).subscribe(C=>o.push(...C.map(b=>(0,aL.join)(l,b))));continue}let f=!1;if(a.isFile(l).subscribe(C=>f=C),!f||!r(l))continue;let I=null;a.read(l).subscribe(C=>I=C),I!==null&&n.write(l,I).subscribe()}super(n);for(let l of t.actions)if(r(l.path))switch(l.kind){case"c":this.create(l.path,l.content);break;case"d":this.delete(l.path);break;case"o":this.overwrite(l.path,l.content);break;case"r":this.rename(l.path,l.to);break}}};t6.FilterHostTree=dHr});var dje=H(Bxe=>{"use strict";Object.defineProperty(Bxe,"__esModule",{value:!0});Bxe.empty=Nal;Bxe.branch=Dal;Bxe.merge=kal;Bxe.partition=xal;var Tal=Z4(),TDt=E_e(),Ral=yH();function Nal(){return new TDt.HostTree}function Dal(e){return e.branch()}function kal(e,t,r=Ral.MergeStrategy.Default){return e.merge(t,r),e}function xal(e,t){if(e instanceof TDt.HostTree)return[new TDt.FilterHostTree(e,t),new TDt.FilterHostTree(e,(r,n)=>!t(r,n))];throw new Tal.SchematicsException("Tree type is not supported.")}});var Rrs=H(Xle=>{"use strict";Object.defineProperty(Xle,"__esModule",{value:!0});Xle.NullTree=Xle.NullTreeDirEntry=Xle.CannotCreateFileException=void 0;var pje=Z2(),Qle=Z4(),Gal=yH(),Fal=uHr(),RDt=class extends pje.BaseException{constructor(t){super(`Cannot create file "${t}".`)}};Xle.CannotCreateFileException=RDt;var fje=class e{path;get parent(){return this.path=="/"?null:new e((0,pje.dirname)(this.path))}constructor(t){this.path=t}subdirs=[];subfiles=[];dir(t){return new e((0,pje.join)(this.path,t))}file(t){return null}visit(){}};Xle.NullTreeDirEntry=fje;var pHr=class e{[Gal.TreeSymbol](){return this}branch(){return new e}merge(t,r){}root=new fje((0,pje.normalize)("/"));exists(t){return!1}read(t){return null}readText(t){throw new Qle.FileDoesNotExistException(t)}readJson(t){throw new Qle.FileDoesNotExistException(t)}get(t){return null}getDir(t){return new fje((0,pje.normalize)("/"+t))}visit(){}beginUpdate(t){throw new Qle.FileDoesNotExistException(t)}commitUpdate(t){throw new Qle.FileDoesNotExistException(t instanceof Fal.UpdateRecorderBase?t.path:"")}copy(t,r){throw new Qle.FileDoesNotExistException(t)}delete(t){throw new Qle.FileDoesNotExistException(t)}create(t,r){throw new RDt(t)}rename(t,r){throw new Qle.FileDoesNotExistException(t)}overwrite(t,r){throw new Qle.FileDoesNotExistException(t)}apply(t,r){}get actions(){return[]}};Xle.NullTree=pHr});var kDt=H(Jle=>{"use strict";Object.defineProperty(Jle,"__esModule",{value:!0});Jle.InvalidSourceResultException=Jle.InvalidRuleResultException=void 0;Jle.callSource=Zal;Jle.callRule=Lal;var Drs=Z2(),r6=qb(),krs=yH();function xrs(e){return e===void 0?"undefined":e===null?"null":typeof e=="function"?"Function()":typeof e!="object"?`${typeof e}(${JSON.stringify(e)})`:Object.getPrototypeOf(e)==Object?`Object(${JSON.stringify(e)})`:e.constructor?`Instance of class ${e.constructor.name}`:"Unknown Object"}var NDt=class extends Drs.BaseException{constructor(t){super(`Invalid rule result: ${xrs(t)}.`)}};Jle.InvalidRuleResultException=NDt;var DDt=class extends Drs.BaseException{constructor(t){super(`Invalid source result: ${xrs(t)}.`)}};Jle.InvalidSourceResultException=DDt;function Zal(e,t){return(0,r6.defer)(async()=>{let r=e(t);if((0,r6.isObservable)(r)&&(r=await(0,r6.lastValueFrom)(r.pipe((0,r6.defaultIfEmpty)(void 0)))),r&&krs.TreeSymbol in r)return r;throw new DDt(r)})}function Lal(e,t,r){return(0,r6.isObservable)(t)?t.pipe((0,r6.mergeMap)(n=>Nrs(e,n,r))):(0,r6.defer)(()=>Nrs(e,t,r))}async function Nrs(e,t,r){let n=await e(t,r);for(;typeof n=="function";)n=await n(t,r);if(typeof n>"u")return t;if((0,r6.isObservable)(n)&&(n=await(0,r6.lastValueFrom)(n.pipe((0,r6.defaultIfEmpty)(t)))),n&&krs.TreeSymbol in n)return n;throw new NDt(n)}});var GDt=H(wxe=>{"use strict";Object.defineProperty(wxe,"__esModule",{value:!0});wxe.SchematicImpl=wxe.InvalidSchematicsNameException=void 0;var Val=Z2(),Ije=qb(),Pal=kDt(),Wal=BDt(),xDt=class extends Val.BaseException{constructor(t){super(`Schematics has invalid name: "${t}".`)}};wxe.InvalidSchematicsNameException=xDt;var fHr=class{_description;_factory;_collection;_engine;constructor(t,r,n,a){if(this._description=t,this._factory=r,this._collection=n,this._engine=a,!t.name.match(/^[-@/_.a-zA-Z0-9]+$/))throw new xDt(t.name)}get description(){return this._description}get collection(){return this._collection}call(t,r,n,a){let o=this._engine.createContext(this,n,a);return r.pipe((0,Ije.first)(),(0,Ije.concatMap)(l=>this._engine.transformOptions(this,t,o).pipe((0,Ije.map)(A=>[l,A]))),(0,Ije.concatMap)(([l,A])=>{let f,I=!1;return a&&a.scope?(I=!0,f=new Wal.ScopedTree(l,a.scope)):f=l,(0,Pal.callRule)(this._factory(A),f,o).pipe((0,Ije.map)(C=>C===f?l:I?(l.merge(C),l):C))}))}};wxe.SchematicImpl=fHr});var Grs=H(L2=>{"use strict";Object.defineProperty(L2,"__esModule",{value:!0});L2.SchematicEngine=L2.TaskScheduler=L2.CollectionImpl=L2.UnknownTaskDependencyException=L2.UnregisteredTaskException=L2.SchematicEngineConflictingException=L2.PrivateSchematicException=L2.UnknownSchematicException=L2.CircularCollectionException=L2.UnknownCollectionException=L2.UnknownUrlSourceProtocol=void 0;var n6=Z2(),FDt=qb(),Oal=yH(),Mal=Rrs(),Hal=dje(),Yal=GDt(),ZDt=class extends n6.BaseException{constructor(t){super(`Unknown Protocol on url "${t}".`)}};L2.UnknownUrlSourceProtocol=ZDt;var LDt=class extends n6.BaseException{constructor(t){super(`Unknown collection "${t}".`)}};L2.UnknownCollectionException=LDt;var VDt=class extends n6.BaseException{constructor(t){super(`Circular collection reference "${t}".`)}};L2.CircularCollectionException=VDt;var PDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.UnknownSchematicException=PDt;var WDt=class extends n6.BaseException{constructor(t,r){super(`Schematic "${t}" not found in collection "${r.name}".`)}};L2.PrivateSchematicException=WDt;var ODt=class extends n6.BaseException{constructor(){super("A schematic was called from a different engine as its parent.")}};L2.SchematicEngineConflictingException=ODt;var MDt=class extends n6.BaseException{constructor(t,r){let n=r?` in schematic "${r.name}"`:"";super(`Unregistered task "${t}"${n}.`)}};L2.UnregisteredTaskException=MDt;var HDt=class extends n6.BaseException{constructor(t){super(`Unknown task dependency [ID: ${t.id}].`)}};L2.UnknownTaskDependencyException=HDt;var YDt=class{_description;_engine;baseDescriptions;constructor(t,r,n){this._description=t,this._engine=r,this.baseDescriptions=n}get description(){return this._description}get name(){return this.description.name||""}createSchematic(t,r=!1){return this._engine.createSchematic(t,this,r)}listSchematicNames(t){return this._engine.listSchematicNames(this,t)}};L2.CollectionImpl=YDt;var QDt=class e{_context;_queue=new n6.PriorityQueue((t,r)=>t.priority-r.priority);_taskIds=new Map;static _taskIdCounter=1;constructor(t){this._context=t}_calculatePriority(t){return t.size===0?0:[...t].reduce((n,a)=>n+a.priority,1)}_mapDependencies(t){if(!t)return new Set;let r=t.map(n=>{let a=this._taskIds.get(n);if(!a)throw new HDt(n);return a});return new Set(r)}schedule(t){let r=this._mapDependencies(t.dependencies),n=this._calculatePriority(r),a={id:e._taskIdCounter++,priority:n,configuration:t,context:this._context};this._queue.push(a);let o={id:a.id};return this._taskIds.set(o,a),o}finalize(){let t=this._queue.toArray();return this._queue.clear(),this._taskIds.clear(),t}};L2.TaskScheduler=QDt;var IHr=class{_host;_workflow;_collectionCache=new Map;_schematicCache=new WeakMap;_taskSchedulers=new Array;constructor(t,r){this._host=t,this._workflow=r}get workflow(){return this._workflow||null}get defaultMergeStrategy(){return this._host.defaultMergeStrategy||Oal.MergeStrategy.Default}createCollection(t,r){let n=this._collectionCache.get(t);if(n)return n;let[a,o]=this._createCollectionDescription(t,r?.description);return n=new YDt(a,this,o),this._collectionCache.set(t,n),this._schematicCache.set(n,new Map),n}_createCollectionDescription(t,r,n){let a=this._host.createCollectionDescription(t,r);if(!a)throw new LDt(t);if(n&&n.has(a.name))throw new VDt(t);let o=new Array;if(a.extends){n=(n||new Set).add(a.name);for(let l of a.extends){let[A,f]=this._createCollectionDescription(l,a,new Set(n));o.unshift(A,...f)}}return[a,o]}createContext(t,r,n){if(r&&r.engine&&r.engine!==this)throw new ODt;let a=!0;n&&n.interactive!=null?a=n.interactive:r&&r.interactive!=null&&(a=r.interactive);let o={debug:r&&r.debug||!1,engine:this,logger:r&&r.logger&&r.logger.createChild(t.description.name)||new n6.logging.NullLogger,schematic:t,strategy:r&&r.strategy!==void 0?r.strategy:this.defaultMergeStrategy,interactive:a,addTask:I},l=this._host.transformContext(o);l&&(o=l);let A=new QDt(o),f=this._host;this._taskSchedulers.push(A);function I(C,b){let E=C.toConfiguration();if(!f.hasTaskExecutor(E.name))throw new MDt(E.name,t.description);return E.dependencies=E.dependencies||[],b&&E.dependencies.unshift(...b),A.schedule(E)}return o}createSchematic(t,r,n=!1){let a=this._schematicCache.get(r),o=a?.get(t);if(o)return o;let l=r.description,A=this._host.createSchematicDescription(t,r.description);if(!A){if(r.baseDescriptions){for(let I of r.baseDescriptions)if(A=this._host.createSchematicDescription(t,I),A){l=I;break}}if(!A)throw new PDt(t,r.description)}if(A.private&&!n)throw new WDt(t,r.description);let f=this._host.getSchematicRuleFactory(A,l);return o=new Yal.SchematicImpl(A,f,r,this),a?.set(t,o),o}listSchematicNames(t,r){let n=this._host.listSchematicNames(t.description,r);if(t.baseDescriptions)for(let a of t.baseDescriptions)n.push(...this._host.listSchematicNames(a,r));return[...new Set(n)].sort()}transformOptions(t,r,n){return this._host.transformOptions(t.description,r,n)}createSourceFromUrl(t,r){switch(t.protocol){case"null:":return()=>new Mal.NullTree;case"empty:":return()=>(0,Hal.empty)()}let n=this._host.createSourceFromUrl(t,r);if(!n)throw new ZDt(t.toString());return n}executePostTasks(){let t=new Map;return(0,FDt.from)(this._taskSchedulers).pipe((0,FDt.concatMap)(n=>n.finalize()),(0,FDt.concatMap)(n=>{let{name:a,options:o}=n.configuration,l=t.get(a);return l?l(o,n.context):this._host.createTaskExecutor(a).pipe((0,FDt.concatMap)(A=>(t.set(a,A),A(o,n.context))))}))}};L2.SchematicEngine=IHr});var Zrs=H(Frs=>{"use strict";Object.defineProperty(Frs,"__esModule",{value:!0})});var mHr=H(bte=>{"use strict";var Qal=bte&&bte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),hHr=bte&&bte.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Qal(t,e,r)};Object.defineProperty(bte,"__esModule",{value:!0});hHr(Grs(),bte);hHr(Zrs(),bte);hHr(GDt(),bte)});var Lrs=H(CHr=>{"use strict";Object.defineProperty(CHr,"__esModule",{value:!0});CHr.createConsoleLogger=Ual;var Xal=qb(),Jal=Z2();function Ual(e=!1,t=process.stdout,r=process.stderr,n){let a=new Jal.logging.IndentLogger("cling");return a.pipe((0,Xal.filter)(o=>o.level!=="debug"||e)).subscribe(o=>{let l=n&&n[o.level],A=t;switch(o.level){case"warn":case"fatal":case"error":A=r;break}let f=2e3,I=o.message;for(;I;){let C=I.slice(0,f);I=I.slice(f),A.write(l?l(C):C)}A.write(` +`)}),a}});var Prs=H(Txe=>{"use strict";Object.defineProperty(Txe,"__esModule",{value:!0});Txe.NodeJsSyncHost=Txe.NodeJsAsyncHost=void 0;var mD=wt("node:fs"),Kal=wt("node:path"),$b=qb(),oC=Z2();async function jal(e){try{return await mD.promises.access(e,mD.constants.F_OK),!0}catch{return!1}}var XDt;function Vrs(){if(!XDt)try{XDt=wt("chokidar").FSWatcher}catch(e){throw e.code!=="MODULE_NOT_FOUND"?new Error('As of angular-devkit version 8.0, the "chokidar" package must be installed in order to use watch() features.'):e}}var _Hr=class{get capabilities(){return{synchronous:!1}}write(t,r){return(0,$b.from)(mD.promises.mkdir((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0})).pipe((0,$b.mergeMap)(()=>mD.promises.writeFile((0,oC.getSystemPath)(t),new Uint8Array(r))))}read(t){return(0,$b.from)(mD.promises.readFile((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>new Uint8Array(r).buffer))}delete(t){return(0,$b.from)(mD.promises.rm((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}))}rename(t,r){return(0,$b.from)(mD.promises.rename((0,oC.getSystemPath)(t),(0,oC.getSystemPath)(r)))}list(t){return(0,$b.from)(mD.promises.readdir((0,oC.getSystemPath)(t))).pipe((0,$b.map)(r=>r.map(n=>(0,oC.fragment)(n))))}exists(t){return(0,$b.from)(jal((0,oC.getSystemPath)(t)))}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return(0,$b.from)(mD.promises.stat((0,oC.getSystemPath)(t)))}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!0});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsAsyncHost=_Hr;var yHr=class{get capabilities(){return{synchronous:!0}}write(t,r){return new $b.Observable(n=>{(0,mD.mkdirSync)((0,oC.getSystemPath)((0,oC.dirname)(t)),{recursive:!0}),(0,mD.writeFileSync)((0,oC.getSystemPath)(t),new Uint8Array(r)),n.next(),n.complete()})}read(t){return new $b.Observable(r=>{let n=(0,mD.readFileSync)((0,oC.getSystemPath)(t));r.next(new Uint8Array(n).buffer),r.complete()})}delete(t){return new $b.Observable(r=>{(0,mD.rmSync)((0,oC.getSystemPath)(t),{force:!0,recursive:!0,maxRetries:3}),r.complete()})}rename(t,r){return new $b.Observable(n=>{let a=(0,oC.getSystemPath)(r);(0,mD.mkdirSync)((0,Kal.dirname)(a),{recursive:!0}),(0,mD.renameSync)((0,oC.getSystemPath)(t),a),n.next(),n.complete()})}list(t){return new $b.Observable(r=>{let n=(0,mD.readdirSync)((0,oC.getSystemPath)(t));r.next(n.map(a=>(0,oC.fragment)(a))),r.complete()})}exists(t){return new $b.Observable(r=>{r.next((0,mD.existsSync)((0,oC.getSystemPath)(t))),r.complete()})}isDirectory(t){return this.stat(t).pipe((0,$b.map)(r=>r.isDirectory()))}isFile(t){return this.stat(t).pipe((0,$b.map)(r=>r.isFile()))}stat(t){return new $b.Observable(r=>{r.next((0,mD.statSync)((0,oC.getSystemPath)(t))),r.complete()})}watch(t,r){return new $b.Observable(n=>{Vrs();let a=new XDt({persistent:!1});return a.add((0,oC.getSystemPath)(t)),a.on("change",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Changed})}).on("add",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Created})}).on("unlink",o=>{n.next({path:(0,oC.normalize)(o),time:new Date,type:oC.virtualFs.HostWatchEventType.Deleted})}),()=>{a.close()}}).pipe((0,$b.publish)(),(0,$b.refCount)())}};Txe.NodeJsSyncHost=yHr});var JDt=H(Ule=>{"use strict";var zal=Ule&&Ule.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Wrs=Ule&&Ule.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&zal(t,e,r)};Object.defineProperty(Ule,"__esModule",{value:!0});Wrs(Lrs(),Ule);Wrs(Prs(),Ule)});var SHr=H(S_e=>{"use strict";Object.defineProperty(S_e,"__esModule",{value:!0});S_e.ActionList=S_e.UnknownActionException=void 0;S_e.isContentAction=ecl;var qal=Z2(),bHr=class extends qal.BaseException{constructor(t){super(`Unknown action: "${t.kind}".`)}};S_e.UnknownActionException=bHr;var $al=1,EHr=class{_actions=[];_action(t){this._actions.push({...t,id:$al++,parent:this._actions[this._actions.length-1]?.id??0})}create(t,r){this._action({kind:"c",path:t,content:r})}overwrite(t,r){this._action({kind:"o",path:t,content:r})}rename(t,r){this._action({kind:"r",path:t,to:r})}delete(t){this._action({kind:"d",path:t})}optimize(){let t=new Map,r=new Map,n=new Map,a=new Set;for(let o of this._actions)switch(o.kind){case"c":t.set(o.path,o.content);break;case"o":t.has(o.path)?t.set(o.path,o.content):n.set(o.path,o.content);break;case"d":a.add(o.path);break;case"r":{let l=t.get(o.path),A=n.get(o.path);l&&(t.delete(o.path),t.set(o.to,l)),A&&(n.delete(o.path),n.set(o.to,A));let f;for(let[I,C]of r.entries())if(C==o.path){f=I;break}f&&r.set(f,o.to),!l&&!A&&!f&&r.set(o.path,o.to);break}}this._actions=[],a.forEach(o=>{this.delete(o)}),r.forEach((o,l)=>{this.rename(l,o)}),t.forEach((o,l)=>{this.create(l,o)}),n.forEach((o,l)=>{this.overwrite(l,o)})}push(t){this._actions.push(t)}get(t){return this._actions[t]}has(t){for(let r=0;rt.id)return!1}return!1}find(t){return this._actions.find(t)||null}forEach(t,r){this._actions.forEach(t,r)}get length(){return this._actions.length}[Symbol.iterator](){return this._actions[Symbol.iterator]()}};S_e.ActionList=EHr;function ecl(e){return e.kind=="c"||e.kind=="o"}});var BHr=H(KDt=>{"use strict";Object.defineProperty(KDt,"__esModule",{value:!0});KDt.SimpleSinkBase=void 0;var eE=qb(),Ors=Z4(),tcl=SHr(),UDt=function(){},vHr=class{preCommitAction=UDt;postCommitAction=UDt;preCommit=UDt;postCommit=UDt;_fileAlreadyExistException(t){throw new Ors.FileAlreadyExistException(t)}_fileDoesNotExistException(t){throw new Ors.FileDoesNotExistException(t)}_validateOverwriteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}_validateCreateAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.path)}))}_validateRenameAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}),(0,eE.mergeMap)(()=>this._validateFileExists(t.to)),(0,eE.map)(r=>{r&&this._fileAlreadyExistException(t.to)}))}_validateDeleteAction(t){return this._validateFileExists(t.path).pipe((0,eE.map)(r=>{r||this._fileDoesNotExistException(t.path)}))}validateSingleAction(t){switch(t.kind){case"o":return this._validateOverwriteAction(t);case"c":return this._validateCreateAction(t);case"r":return this._validateRenameAction(t);case"d":return this._validateDeleteAction(t);default:throw new tcl.UnknownActionException(t)}}commitSingleAction(t){return(0,eE.concat)(this.validateSingleAction(t),new eE.Observable(r=>{let n=null;switch(t.kind){case"o":n=this._overwriteFile(t.path,t.content);break;case"c":n=this._createFile(t.path,t.content);break;case"r":n=this._renameFile(t.path,t.to);break;case"d":n=this._deleteFile(t.path);break}n?n.subscribe(r):r.complete()})).pipe((0,eE.ignoreElements)())}commit(t){let r=(0,eE.from)(t.actions);return(0,eE.concat)(this.preCommit()||(0,eE.of)(null),(0,eE.defer)(()=>r).pipe((0,eE.concatMap)(n=>{let a=this.preCommitAction(n);return(0,eE.isObservable)(a)||rcl(a)?a:(0,eE.of)(a||n)}),(0,eE.concatMap)(n=>(0,eE.concat)(this.commitSingleAction(n).pipe((0,eE.ignoreElements)()),(0,eE.of)(n))),(0,eE.concatMap)(n=>this.postCommitAction(n)||(0,eE.of)(null))),(0,eE.defer)(()=>this._done()),(0,eE.defer)(()=>this.postCommit()||(0,eE.of)(null))).pipe((0,eE.ignoreElements)(),(0,eE.defaultIfEmpty)(void 0))}};KDt.SimpleSinkBase=vHr;function rcl(e){return!!e&&typeof e.then=="function"}});var zDt=H(jDt=>{"use strict";Object.defineProperty(jDt,"__esModule",{value:!0});jDt.HostSink=void 0;var LR=qb(),ncl=BHr(),wHr=class extends ncl.SimpleSinkBase{_host;_force;_filesToDelete=new Set;_filesToRename=new Set;_filesToCreate=new Map;_filesToUpdate=new Map;constructor(t,r=!1){super(),this._host=t,this._force=r}_validateCreateAction(t){return this._force?LR.EMPTY:super._validateCreateAction(t)}_validateFileExists(t){if(this._filesToCreate.has(t)||this._filesToUpdate.has(t))return(0,LR.of)(!0);if(this._filesToDelete.has(t))return(0,LR.of)(!1);for(let[r,n]of this._filesToRename.values())switch(t){case r:return(0,LR.of)(!1);case n:return(0,LR.of)(!0)}return this._host.exists(t)}_overwriteFile(t,r){return this._filesToUpdate.set(t,r),LR.EMPTY}_createFile(t,r){return this._filesToCreate.set(t,r),LR.EMPTY}_renameFile(t,r){return this._filesToRename.add([t,r]),LR.EMPTY}_deleteFile(t){return this._filesToCreate.has(t)?(this._filesToCreate.delete(t),this._filesToUpdate.delete(t)):this._filesToDelete.add(t),LR.EMPTY}_done(){return(0,LR.concat)((0,LR.from)([...this._filesToDelete.values()]).pipe((0,LR.concatMap)(t=>this._host.delete(t))),(0,LR.from)([...this._filesToRename.entries()]).pipe((0,LR.concatMap)(([t,[r,n]])=>this._host.rename(r,n))),(0,LR.from)([...this._filesToCreate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r))),(0,LR.from)([...this._filesToUpdate.entries()]).pipe((0,LR.concatMap)(([t,r])=>this._host.write(t,r)))).pipe((0,LR.reduce)(()=>{}))}};jDt.HostSink=wHr});var RHr=H(qDt=>{"use strict";Object.defineProperty(qDt,"__esModule",{value:!0});qDt.DryRunSink=void 0;var Mrs=Z2(),icl=JDt(),Hrs=qb(),scl=zDt(),THr=class extends scl.HostSink{_subject=new Hrs.Subject;_fileDoesNotExistExceptionSet=new Set;_fileAlreadyExistExceptionSet=new Set;reporter=this._subject.asObservable();constructor(t,r=!1){super(typeof t=="string"?new Mrs.virtualFs.ScopedHost(new icl.NodeJsSyncHost,(0,Mrs.normalize)(t)):t,r)}_fileAlreadyExistException(t){this._fileAlreadyExistExceptionSet.add(t)}_fileDoesNotExistException(t){this._fileDoesNotExistExceptionSet.add(t)}_done(){return this._fileAlreadyExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"alreadyExist",path:t})}),this._fileDoesNotExistExceptionSet.forEach(t=>{this._subject.next({kind:"error",description:"doesNotExist",path:t})}),this._filesToDelete.forEach(t=>{for(let[r]of this._filesToRename)if(r==t)return;this._subject.next({kind:"delete",path:t})}),this._filesToRename.forEach(([t,r])=>{this._subject.next({kind:"rename",path:t,to:r})}),this._filesToCreate.forEach((t,r)=>{for(let[,n]of this._filesToRename)if(n==r)return;this._fileAlreadyExistExceptionSet.has(r)||this._fileDoesNotExistExceptionSet.has(r)||this._subject.next({kind:"create",path:r,content:t})}),this._filesToUpdate.forEach((t,r)=>{this._subject.next({kind:"update",path:r,content:t})}),this._subject.complete(),(0,Hrs.of)(void 0)}};qDt.DryRunSink=THr});var Yrs=H($Dt=>{"use strict";Object.defineProperty($Dt,"__esModule",{value:!0});$Dt.BaseWorkflow=void 0;var NHr=Z2(),sx=qb(),ocl=mHr(),acl=Z4(),ccl=KMr(),lcl=RHr(),ucl=zDt(),gcl=E_e(),DHr=class{_engine;_engineHost;_registry;_host;_reporter=new sx.Subject;_lifeCycle=new sx.Subject;_context;_force;_dryRun;constructor(t){this._host=t.host,this._engineHost=t.engineHost,t.registry?this._registry=t.registry:(this._registry=new NHr.schema.CoreSchemaRegistry(ccl.standardFormats),this._registry.addPostTransform(NHr.schema.transforms.addUndefinedDefaults)),this._engine=new ocl.SchematicEngine(this._engineHost,this),this._context=[],this._force=t.force||!1,this._dryRun=t.dryRun||!1}get context(){let t=this._context[this._context.length-1];if(!t)throw new Error("Cannot get context when workflow is not executing...");return t}get engine(){return this._engine}get engineHost(){return this._engineHost}get registry(){return this._registry}get reporter(){return this._reporter.asObservable()}get lifeCycle(){return this._lifeCycle.asObservable()}_createSinks(){let t=!1,r=new lcl.DryRunSink(this._host,this._force),n=r.reporter.subscribe(a=>{this._reporter.next(a),t=t||a.kind=="error"});return[r,{commit(){return n.unsubscribe(),t?(0,sx.throwError)(new acl.UnsuccessfulWorkflowExecution):(0,sx.of)()}},...this._dryRun?[]:[new ucl.HostSink(this._host,this._force)]]}execute(t){let r=this._context[this._context.length-1];r||this._lifeCycle.next({kind:"start"});let n=this._engine.createCollection(t.collection),a=t.allowPrivate||r&&r.collection===t.collection,o=n.createSchematic(t.schematic,a),l=this._createSinks();this._lifeCycle.next({kind:"workflow-start"});let A={...t,debug:t.debug||!1,logger:t.logger||r&&r.logger||new NHr.logging.NullLogger,parentContext:r};return this._context.push(A),o.call(t.options,(0,sx.of)(new gcl.HostTree(this._host)),{logger:A.logger}).pipe((0,sx.concatMap)(f=>(0,sx.concat)((0,sx.from)(l).pipe((0,sx.concatMap)(I=>I.commit(f)),(0,sx.ignoreElements)()),(0,sx.of)(f))),(0,sx.concatMap)(()=>this._dryRun?sx.EMPTY:(this._lifeCycle.next({kind:"post-tasks-start"}),this._engine.executePostTasks().pipe((0,sx.tap)({complete:()=>this._lifeCycle.next({kind:"post-tasks-end"})}),(0,sx.defaultIfEmpty)(void 0),(0,sx.last)()))),(0,sx.tap)({complete:()=>{this._lifeCycle.next({kind:"workflow-end"}),this._context.pop(),this._context.length==0&&this._lifeCycle.next({kind:"end"})}}))}};$Dt.BaseWorkflow=DHr});var Xrs=H(Qrs=>{"use strict";Object.defineProperty(Qrs,"__esModule",{value:!0})});var Urs=H(Kle=>{"use strict";var Acl=Kle&&Kle.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Jrs=Kle&&Kle.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Acl(t,e,r)};Object.defineProperty(Kle,"__esModule",{value:!0});Jrs(Yrs(),Kle);Jrs(Xrs(),Kle)});var ekt=H(jG=>{"use strict";Object.defineProperty(jG,"__esModule",{value:!0});jG.source=pcl;jG.empty=fcl;jG.chain=xHr;jG.apply=Icl;jG.mergeWith=hcl;jG.noop=qrs;jG.filter=mcl;jG.asSource=Ccl;jG.branchAndMerge=_cl;jG.when=ycl;jG.partitionApplyMerge=bcl;jG.forEach=Ecl;jG.composeFileOperators=Scl;jG.applyToSubtree=vcl;var jle=qb(),jrs=Z4(),Krs=E_e(),zrs=yH(),dcl=BDt(),kHr=dje(),i6=kDt();function pcl(e){return()=>e}function fcl(){return()=>(0,kHr.empty)()}function xHr(e){return async(t,r)=>{let n;if(Symbol.asyncIterator in e)for await(let a of e)n=(0,i6.callRule)(a,n??t,r);else for(let a of e)n=(0,i6.callRule)(a,n??t,r);return()=>n}}function Icl(e,t){return r=>(0,i6.callRule)(xHr(t),(0,i6.callSource)(e,r),r)}function hcl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callSource)(e,n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function qrs(){return()=>{}}function mcl(e){return t=>{if(Krs.HostTree.isHostTree(t))return new Krs.FilterHostTree(t,e);throw new jrs.SchematicsException("Tree type is not supported.")}}function Ccl(e){return t=>(0,i6.callRule)(e,(0,kHr.empty)(),t)}function _cl(e,t=zrs.MergeStrategy.Default){return(r,n)=>(0,i6.callRule)(e,r.branch(),n).pipe((0,jle.map)(a=>r.merge(a,t||n.strategy)),(0,jle.mapTo)(r))}function ycl(e,t){return r=>e(r.path,r)?t(r):r}function bcl(e,t,r){return(n,a)=>{let[o,l]=(0,kHr.partition)(n,e);return(0,jle.concat)((0,i6.callRule)(t,o,a),(0,i6.callRule)(r||qrs(),l,a)).pipe((0,jle.toArray)(),(0,jle.map)(([A,f])=>(A.merge(f,a.strategy),A)))}}function Ecl(e){return t=>{t.visit((r,n)=>{if(!n)return;let a=e(n);if(a!==n){if(a===null){t.delete(r);return}a.path!=r&&t.rename(r,a.path),a.content.equals(n.content)||t.overwrite(a.path,a.content)}})}}function Scl(e){return t=>{let r=t;for(let n of e)if(r=n(r),r===null)return null;return r}}function vcl(e,t){return(r,n)=>{let a=new dcl.ScopedTree(r,e);return(0,i6.callRule)(xHr(t),a,n).pipe((0,jle.map)(o=>{if(o===a)return r;throw new jrs.SchematicsException('Original tree must be returned from all rules when using "applyToSubtree".')}))}}});var $rs=H(FHr=>{"use strict";Object.defineProperty(FHr,"__esModule",{value:!0});FHr.move=wcl;var GHr=Z2(),Bcl=ekt();function wcl(e,t){t===void 0&&(t=e,e="/");let r=(0,GHr.normalize)("/"+e),n=(0,GHr.normalize)("/"+t);return r===n?Bcl.noop:a=>(a.exists(r)?a.rename(r,n):a.getDir(r).visit(o=>{a.rename(o,(0,GHr.join)(n,o.slice(r.length)))}),a)}});var tns=H(ZHr=>{"use strict";Object.defineProperty(ZHr,"__esModule",{value:!0});ZHr.default=Ncl;var Tcl=E_e();function ens(e){return new Array(e).fill(0).map(t=>"abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)]).join("")}function Rcl(e,t){return Math.floor(Math.random()*(t-e))+e}function Ncl(e){return()=>{let t="root"in e?e.root:"/",r=new Tcl.HostTree,n="multiFiles"in e?typeof e.multiFiles=="number"?e.multiFiles:Rcl(2,12):1;for(let a=0;a{"use strict";Object.defineProperty(tkt,"__esModule",{value:!0});tkt.externalSchematic=Dcl;tkt.schematic=kcl;var Rxe=qb(),rns=yH(),nns=dje();function Dcl(e,t,r,n){return(a,o)=>o.engine.createCollection(e,o.schematic.collection).createSchematic(t).call(r,(0,Rxe.of)((0,nns.branch)(a)),o,n).pipe((0,Rxe.last)(),(0,Rxe.map)(f=>(a.merge(f,rns.MergeStrategy.AllowOverwriteConflict),a)))}function kcl(e,t,r){return(n,a)=>a.schematic.collection.createSchematic(e,!0).call(t,(0,Rxe.of)((0,nns.branch)(n)),a,r).pipe((0,Rxe.last)(),(0,Rxe.map)(A=>(n.merge(A,rns.MergeStrategy.AllowOverwriteConflict),n)))}});var ans=H(hT=>{"use strict";Object.defineProperty(hT,"__esModule",{value:!0});hT.InvalidPipeException=hT.UnknownPipeException=hT.OptionIsNotDefinedException=hT.TEMPLATE_FILENAME_RE=void 0;hT.applyContentTemplate=LHr;hT.contentTemplate=sns;hT.applyPathTemplate=VHr;hT.pathTemplate=ons;hT.renameTemplateFiles=Fcl;hT.template=Zcl;hT.applyTemplates=Lcl;var Nxe=Z2(),xcl=wt("node:os"),v_e=ekt();hT.TEMPLATE_FILENAME_RE=/\.template$/;var hje=class extends Nxe.BaseException{constructor(t){super(`Option "${t}" is not defined.`)}};hT.OptionIsNotDefinedException=hje;var rkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is not defined.`)}};hT.UnknownPipeException=rkt;var nkt=class extends Nxe.BaseException{constructor(t){super(`Pipe "${t}" is invalid.`)}};hT.InvalidPipeException=nkt;var Gcl=new TextDecoder("utf-8",{fatal:!0});function LHr(e){return t=>{let{path:r,content:n}=t;try{let a=Gcl.decode(n).replace(/\r?\n/g,xcl.EOL);return{path:r,content:Buffer.from((0,Nxe.template)(a,{})(e))}}catch(a){if(a instanceof TypeError||a.code==="ERR_ENCODING_INVALID_ENCODED_DATA")return t;throw a}}}function sns(e){return(0,v_e.forEach)(LHr(e))}function VHr(e,t={interpolationStart:"__",interpolationEnd:"__",pipeSeparator:"@"}){let r=t.interpolationStart,n=t.interpolationEnd,a=r.length,o=n.length;return l=>{let A=l.path,f=l.content,I=A,C=A.indexOf(r),b=A.indexOf(n,C+a+1);for(;C!=-1&&b!=-1;){let E=A.substring(C+a,b),N=e[E];if(t.pipeSeparator){let[B,...F]=E.split(t.pipeSeparator);if(N=e[B],typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(B);N=F.reduce((Q,X)=>{if(!X)return Q;if(!(X in e))throw new rkt(X);let ae=e[X];if(typeof ae!="function")throw new nkt(X);return""+ae(Q)},""+N)}else if(typeof N=="function"&&(N=N.call(e,I)),N===void 0)throw new hje(E);A=A.substring(0,C)+N+A.substring(b+o),C=A.indexOf(t.interpolationStart),b=A.indexOf(t.interpolationEnd,C+a+1)}return{path:(0,Nxe.normalize)(A),content:f}}}function ons(e){return(0,v_e.forEach)(VHr(e))}function Fcl(){return(0,v_e.forEach)(e=>e.path.match(hT.TEMPLATE_FILENAME_RE)?{content:e.content,path:(0,Nxe.normalize)(e.path.replace(hT.TEMPLATE_FILENAME_RE,""))}:e)}function Zcl(e){return(0,v_e.chain)([sns(e),ons(e)])}function Lcl(e){return(0,v_e.forEach)((0,v_e.when)(t=>t.endsWith(".template"),(0,v_e.composeFileOperators)([LHr(e),VHr(e),t=>({content:t.content,path:t.path.replace(hT.TEMPLATE_FILENAME_RE,"")})])))}});var cns=H(PHr=>{"use strict";Object.defineProperty(PHr,"__esModule",{value:!0});PHr.url=Pcl;var Vcl=wt("url");function Pcl(e){let t=(0,Vcl.parse)(e);return r=>r.engine.createSourceFromUrl(t,r)(r)}});var lns=H(ikt=>{"use strict";Object.defineProperty(ikt,"__esModule",{value:!0});ikt.EmptyTree=void 0;var Wcl=E_e(),WHr=class extends Wcl.HostTree{constructor(){super()}};ikt.EmptyTree=WHr});var Dxe=H(wm=>{"use strict";var uns=wm&&wm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Ocl=wm&&wm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),gns=wm&&wm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(Ans,"__esModule",{value:!0})});var akt=H(okt=>{"use strict";Object.defineProperty(okt,"__esModule",{value:!0});okt.ExportStringRef=void 0;var pns=wt("path"),OHr=class{_ref;_module;_path;constructor(t,r=process.cwd(),n=!0){let[a,o]=t.split("#",2);this._module=a[0]=="."?(0,pns.resolve)(r,a):a,this._module=wt.resolve(this._module),this._path=(0,pns.dirname)(this._module),n?this._ref=wt(this._module)[o||"default"]:this._ref=wt(this._module)}get ref(){return this._ref}get module(){return this._module}get path(){return this._path}};okt.ExportStringRef=OHr});var HHr=H(MHr=>{"use strict";Object.defineProperty(MHr,"__esModule",{value:!0});MHr.readJsonFile=Kcl;var Jcl=wt("fs"),fns=yxe(),Ucl=Z4();function Kcl(e){let t;try{t=(0,Jcl.readFileSync)(e,"utf-8")}catch(a){throw a&&typeof a=="object"&&"code"in a&&a.code==="ENOENT"?new Ucl.FileDoesNotExistException(e):a}let r=[],n=(0,fns.parse)(t,r,{allowTrailingComma:!0});if(r.length){let{error:a,offset:o}=r[0];throw new Error(`Failed to parse "${e}" as JSON AST Object. ${(0,fns.printParseErrorCode)(a)} at location: ${o}.`)}return n}});var gkt=H(Uv=>{"use strict";Object.defineProperty(Uv,"__esModule",{value:!0});Uv.FileSystemEngineHostBase=Uv.SchematicNameCollisionException=Uv.SchematicMissingDescriptionException=Uv.SchematicMissingFieldsException=Uv.CollectionMissingFieldsException=Uv.CollectionMissingSchematicsMapException=Uv.FactoryCannotBeResolvedException=Uv.SchematicMissingFactoryException=Uv.InvalidCollectionJsonException=Uv.CollectionCannotBeResolvedException=void 0;var L4=Z2(),jcl=JDt(),Ins=wt("fs"),kxe=wt("path"),mje=qb(),hns=Dxe(),mns=HHr(),YHr=class extends L4.BaseException{constructor(t){super(`Collection ${JSON.stringify(t)} cannot be resolved.`)}};Uv.CollectionCannotBeResolvedException=YHr;var Cje=class extends L4.BaseException{constructor(t,r,n){let a=`Collection JSON at path ${JSON.stringify(r)} is invalid.`;n&&(a=`${a} ${n.message}`),super(a)}};Uv.InvalidCollectionJsonException=Cje;var ckt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} is missing a factory.`)}};Uv.SchematicMissingFactoryException=ckt;var lkt=class extends L4.BaseException{constructor(t){super(`Schematic ${JSON.stringify(t)} cannot resolve the factory.`)}};Uv.FactoryCannotBeResolvedException=lkt;var QHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" does not have a schematics map.`)}};Uv.CollectionMissingSchematicsMapException=QHr;var XHr=class extends L4.BaseException{constructor(t){super(`Collection "${t}" is missing fields.`)}};Uv.CollectionMissingFieldsException=XHr;var JHr=class extends L4.BaseException{constructor(t){super(`Schematic "${t}" is missing fields.`)}};Uv.SchematicMissingFieldsException=JHr;var UHr=class extends L4.BaseException{constructor(t){super(`Schematics "${t}" does not have a description.`)}};Uv.SchematicMissingDescriptionException=UHr;var ukt=class extends L4.BaseException{constructor(t){super(`Schematics/alias ${JSON.stringify(t)} collides with another alias or schematic name.`)}};Uv.SchematicNameCollisionException=ukt;var KHr=class{_transforms=[];_contextTransforms=[];_taskFactories=new Map;listSchematicNames(t,r){let n=[];for(let a of Object.keys(t.schematics)){let o=t.schematics[a];o.hidden&&!r||o.private||(!o.extends||o.factory||o.extends&&o.extends.indexOf(":")!==-1)&&n.push(a)}return n}registerOptionsTransform(t){this._transforms.push(t)}registerContextTransform(t){this._contextTransforms.push(t)}createCollectionDescription(t,r){let n=this._resolveCollectionPath(t,r?.path),a=(0,mns.readJsonFile)(n);if(!a||typeof a!="object"||Array.isArray(a))throw new Cje(t,n);typeof a.extends=="string"&&(a.extends=[a.extends]);let o=this._transformCollectionDescription(t,{...a,path:n});if(!o||!o.name)throw new Cje(t,n);let l=Object.keys(o.schematics);for(let A of Object.keys(o.schematics)){let f=o.schematics[A].aliases||[];for(let I of f)if(l.indexOf(I)!=-1)throw new ukt(I);l.push(...f)}return o}createSchematicDescription(t,r){for(let C of Object.keys(r.schematics)){let b=r.schematics[C];if(b.aliases&&b.aliases.indexOf(t)!=-1){t=C;break}}if(!(t in r.schematics))return null;let n=(0,kxe.dirname)(r.path),a=r.schematics[t];if(!a)return null;if(a.extends){let C=a.extends.indexOf(":"),b=C!==-1?a.extends.slice(0,C):null,E=C===-1?a.extends:a.extends.slice(C+1);if(b!==null){let N=this.createCollectionDescription(b);return this.createSchematicDescription(E,N)}else return this.createSchematicDescription(E,r)}if(!a.factory)throw new ckt(t);let o=this._resolveReferenceString(a.factory,n,r);if(!o)throw new lkt(t);let l=a.schema,A;l&&((0,kxe.isAbsolute)(l)||(l=(0,kxe.join)(n,l)),A=(0,mns.readJsonFile)(l));let f=(0,kxe.join)(n,a.factory),I=(0,Ins.existsSync)(f)&&(0,Ins.statSync)(f).isDirectory()?f:(0,kxe.dirname)(f);return this._transformSchematicDescription(t,r,{...a,schema:l,schemaJson:A,name:t,path:I,factoryFn:o.ref,collection:r})}createSourceFromUrl(t){switch(t.protocol){case null:case"file:":return r=>{let n=r.schematic.description;if(n.path===void 0)throw new Error("Unsupported schematic context. Expected a FileSystemSchematicContext.");let a=(0,L4.normalize)((0,kxe.resolve)(n.path,t.path||""));return new hns.HostCreateTree(new L4.virtualFs.ScopedHost(new jcl.NodeJsSyncHost,a))}}return null}transformOptions(t,r,n){let a=async()=>{let o=r;for(let l of this._transforms){let A=l(t,o,n);o=await((0,mje.isObservable)(A)?(0,mje.lastValueFrom)(A):A)}return o};return(0,mje.from)(a())}transformContext(t){return this._contextTransforms.reduce((r,n)=>n(r),t)}getSchematicRuleFactory(t,r){return t.factoryFn}registerTaskExecutor(t,r){this._taskFactories.set(t.name,()=>(0,mje.from)(t.create(r)))}createTaskExecutor(t){let r=this._taskFactories.get(t);return r?r():(0,mje.throwError)(new hns.UnregisteredTaskException(t))}hasTaskExecutor(t){return this._taskFactories.has(t)}};Uv.FileSystemEngineHostBase=KHr});var Cns=H(Akt=>{"use strict";Object.defineProperty(Akt,"__esModule",{value:!0});Akt.NodePackageName=void 0;Akt.NodePackageName="node-package"});var _ns=H(dkt=>{"use strict";Object.defineProperty(dkt,"__esModule",{value:!0});dkt.RepositoryInitializerName=void 0;dkt.RepositoryInitializerName="repo-init"});var yns=H(pkt=>{"use strict";Object.defineProperty(pkt,"__esModule",{value:!0});pkt.RunSchematicName=void 0;pkt.RunSchematicName="run-schematic"});var bns=H((Yzu,zcl)=>{zcl.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var vns=H((Qzu,Sns)=>{"use strict";var fkt=Object.assign({},bns()),Ens=Object.keys(fkt);Object.defineProperty(fkt,"random",{get(){let e=Math.floor(Math.random()*Ens.length),t=Ens[e];return fkt[t]}});Sns.exports=fkt});var jHr=H((Xzu,Bns)=>{"use strict";Bns.exports=()=>process.platform!=="win32"?!0:!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"});var Tns=H((Jzu,wns)=>{"use strict";var zle=VK(),qcl=jHr(),$cl={info:zle.blue("\u2139"),success:zle.green("\u2714"),warning:zle.yellow("\u26A0"),error:zle.red("\u2716")},ell={info:zle.blue("i"),success:zle.green("\u221A"),warning:zle.yellow("\u203C"),error:zle.red("\xD7")};wns.exports=qcl()?$cl:ell});var Rns=H((Uzu,Ikt)=>{var tll=function(){"use strict";function e(l,A,f,I){var C;typeof A=="object"&&(f=A.depth,I=A.prototype,C=A.filter,A=A.circular);var b=[],E=[],N=typeof Buffer<"u";typeof A>"u"&&(A=!0),typeof f>"u"&&(f=1/0);function B(F,Q){if(F===null)return null;if(Q==0)return F;var X,ae;if(typeof F!="object")return F;if(e.__isArray(F))X=[];else if(e.__isRegExp(F))X=new RegExp(F.source,o(F)),F.lastIndex&&(X.lastIndex=F.lastIndex);else if(e.__isDate(F))X=new Date(F.getTime());else{if(N&&Buffer.isBuffer(F))return Buffer.allocUnsafe?X=Buffer.allocUnsafe(F.length):X=new Buffer(F.length),F.copy(X),X;typeof I>"u"?(ae=Object.getPrototypeOf(F),X=Object.create(ae)):(X=Object.create(I),ae=I)}if(A){var ne=b.indexOf(F);if(ne!=-1)return E[ne];b.push(F),E.push(X)}for(var ce in F){var fe;ae&&(fe=Object.getOwnPropertyDescriptor(ae,ce)),!(fe&&fe.set==null)&&(X[ce]=B(F[ce],Q-1))}return X}return B(l,f)}e.clonePrototype=function(A){if(A===null)return null;var f=function(){};return f.prototype=A,new f};function t(l){return Object.prototype.toString.call(l)}e.__objToStr=t;function r(l){return typeof l=="object"&&t(l)==="[object Date]"}e.__isDate=r;function n(l){return typeof l=="object"&&t(l)==="[object Array]"}e.__isArray=n;function a(l){return typeof l=="object"&&t(l)==="[object RegExp]"}e.__isRegExp=a;function o(l){var A="";return l.global&&(A+="g"),l.ignoreCase&&(A+="i"),l.multiline&&(A+="m"),A}return e.__getRegExpFlags=o,e}();typeof Ikt=="object"&&Ikt.exports&&(Ikt.exports=tll)});var Dns=H((Kzu,Nns)=>{var rll=Rns();Nns.exports=function(e,t){return e=e||{},Object.keys(t).forEach(function(r){typeof e[r]>"u"&&(e[r]=rll(t[r]))}),e}});var xns=H((jzu,kns)=>{kns.exports=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531],[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]]});var Lns=H((zzu,zHr)=>{"use strict";var nll=Dns(),_je=xns(),Fns={nul:0,control:0};zHr.exports=function(t){return Zns(t,Fns)};zHr.exports.config=function(e){return e=nll(e||{},Fns),function(r){return Zns(r,e)}};function Zns(e,t){if(typeof e!="string")return Gns(e,t);for(var r=0,n=0;n=127&&e<160?t.control:ill(e)?0:1+(e>=4352&&(e<=4447||e==9001||e==9002||e>=11904&&e<=42191&&e!=12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141))}function ill(e){var t=0,r=_je.length-1,n;if(e<_je[0][0]||e>_je[r][1])return!1;for(;r>=t;)if(n=Math.floor((t+r)/2),e>_je[n][1])t=n+1;else if(e<_je[n][0])r=n-1;else return!0;return!1}});var Pns=H((qzu,Vns)=>{"use strict";Vns.exports=({stream:e=process.stdout}={})=>!!(e&&e.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))});var Ons=H(($zu,tYr)=>{"use strict";var sll=wt("readline"),oll=VK(),Wns=uBe(),hkt=vns(),mkt=Tns(),all=q5(),cll=Lns(),lll=Pns(),ull=jHr(),{BufferListStream:gll}=cwr(),qHr=Symbol("text"),$Hr=Symbol("prefixText"),All=3,eYr=class{constructor(){this.requests=0,this.mutedStream=new gll,this.mutedStream.pipe(process.stdout);let t=this;this.ourEmit=function(r,n,...a){let{stdin:o}=process;if(t.requests>0||o.emit===t.ourEmit){if(r==="keypress")return;r==="data"&&n.includes(All)&&process.emit("SIGINT"),Reflect.apply(t.oldEmit,this,[r,n,...a])}else Reflect.apply(process.stdin.emit,this,[r,n,...a])}}start(){this.requests++,this.requests===1&&this.realStart()}stop(){if(this.requests<=0)throw new Error("`stop` called more times than `start`");this.requests--,this.requests===0&&this.realStop()}realStart(){process.platform!=="win32"&&(this.rl=sll.createInterface({input:process.stdin,output:this.mutedStream}),this.rl.on("SIGINT",()=>{process.listenerCount("SIGINT")===0?process.emit("SIGINT"):(this.rl.close(),process.kill(process.pid,"SIGINT"))}))}realStop(){process.platform!=="win32"&&(this.rl.close(),this.rl=void 0)}},Ckt,_kt=class{constructor(t){Ckt||(Ckt=new eYr),typeof t=="string"&&(t={text:t}),this.options={text:"",color:"cyan",stream:process.stderr,discardStdin:!0,...t},this.spinner=this.options.spinner,this.color=this.options.color,this.hideCursor=this.options.hideCursor!==!1,this.interval=this.options.interval||this.spinner.interval||100,this.stream=this.options.stream,this.id=void 0,this.isEnabled=typeof this.options.isEnabled=="boolean"?this.options.isEnabled:lll({stream:this.stream}),this.isSilent=typeof this.options.isSilent=="boolean"?this.options.isSilent:!1,this.text=this.options.text,this.prefixText=this.options.prefixText,this.linesToClear=0,this.indent=this.options.indent,this.discardStdin=this.options.discardStdin,this.isDiscardingStdin=!1}get indent(){return this._indent}set indent(t=0){if(!(t>=0&&Number.isInteger(t)))throw new Error("The `indent` option must be an integer from 0 and up");this._indent=t}_updateInterval(t){t!==void 0&&(this.interval=t)}get spinner(){return this._spinner}set spinner(t){if(this.frameIndex=0,typeof t=="object"){if(t.frames===void 0)throw new Error("The given spinner must have a `frames` property");this._spinner=t}else if(!ull())this._spinner=hkt.line;else if(t===void 0)this._spinner=hkt.dots;else if(t!=="default"&&hkt[t])this._spinner=hkt[t];else throw new Error(`There is no built-in spinner named '${t}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);this._updateInterval(this._spinner.interval)}get text(){return this[qHr]}set text(t){this[qHr]=t,this.updateLineCount()}get prefixText(){return this[$Hr]}set prefixText(t){this[$Hr]=t,this.updateLineCount()}get isSpinning(){return this.id!==void 0}getFullPrefixText(t=this[$Hr],r=" "){return typeof t=="string"?t+r:typeof t=="function"?t()+r:""}updateLineCount(){let t=this.stream.columns||80,r=this.getFullPrefixText(this.prefixText,"-");this.lineCount=0;for(let n of all(r+"--"+this[qHr]).split(` +`))this.lineCount+=Math.max(1,Math.ceil(cll(n)/t))}get isEnabled(){return this._isEnabled&&!this.isSilent}set isEnabled(t){if(typeof t!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this._isEnabled=t}get isSilent(){return this._isSilent}set isSilent(t){if(typeof t!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this._isSilent=t}frame(){let{frames:t}=this.spinner,r=t[this.frameIndex];this.color&&(r=oll[this.color](r)),this.frameIndex=++this.frameIndex%t.length;let n=typeof this.prefixText=="string"&&this.prefixText!==""?this.prefixText+" ":"",a=typeof this.text=="string"?" "+this.text:"";return n+r+a}clear(){if(!this.isEnabled||!this.stream.isTTY)return this;for(let t=0;t0&&this.stream.moveCursor(0,-1),this.stream.clearLine(),this.stream.cursorTo(this.indent);return this.linesToClear=0,this}render(){return this.isSilent?this:(this.clear(),this.stream.write(this.frame()),this.linesToClear=this.lineCount,this)}start(t){return t&&(this.text=t),this.isSilent?this:this.isEnabled?this.isSpinning?this:(this.hideCursor&&Wns.hide(this.stream),this.discardStdin&&process.stdin.isTTY&&(this.isDiscardingStdin=!0,Ckt.start()),this.render(),this.id=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.stream.write(`- ${this.text} `),this)}stop(){return this.isEnabled?(clearInterval(this.id),this.id=void 0,this.frameIndex=0,this.clear(),this.hideCursor&&Wns.show(this.stream),this.discardStdin&&process.stdin.isTTY&&this.isDiscardingStdin&&(Ckt.stop(),this.isDiscardingStdin=!1),this):this}succeed(t){return this.stopAndPersist({symbol:mkt.success,text:t})}fail(t){return this.stopAndPersist({symbol:mkt.error,text:t})}warn(t){return this.stopAndPersist({symbol:mkt.warning,text:t})}info(t){return this.stopAndPersist({symbol:mkt.info,text:t})}stopAndPersist(t={}){if(this.isSilent)return this;let r=t.prefixText||this.prefixText,n=t.text||this.text,a=typeof n=="string"?" "+n:"";return this.stop(),this.stream.write(`${this.getFullPrefixText(r," ")}${t.symbol||" "}${a} -`),this}},All=function(e){return new _kt(e)};tYr.exports=All;tYr.exports.promise=(e,t)=>{if(typeof e.then!="function")throw new TypeError("Parameter `action` must be a Promise");let r=new _kt(t);return r.start(),(async()=>{try{await e,r.succeed()}catch{r.fail()}})(),r}});var Hns=H(kO=>{"use strict";var dll=kO&&kO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),pll=kO&&kO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),fll=kO&&kO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let o=r,l=t;if(e.allowPackageManagerOverride&&a.packageManager){if(o=Mns[a.packageManager],!o)throw new yje(a.packageManager);l=a.packageManager}let A=[],f={shell:!0,cwd:_ll.join(n,a.workingDirectory||"")};a.hideOutput?f.stdio=a.quiet?["ignore","ignore","pipe"]:"pipe":f.stdio=a.quiet?["ignore","ignore","inherit"]:"inherit";let I=[];return a.packageName?(a.command==="install"&&I.push(o.commands.installPackage),I.push(a.packageName)):a.command==="install"&&o.commands.installAll&&I.push(o.commands.installAll),a.allowScripts||(l==="yarn"?f.env={...process.env,npm_config_ignore_scripts:"true",YARN_ENABLE_SCRIPTS:"false"}:I.push("--ignore-scripts")),e.registry&&I.push(`--registry="${e.registry}"`),e.force&&I.push("--force"),new yll.Observable(C=>{let b=(0,Cll.default)({text:`Installing packages (${l})...`,discardStdin:process.platform!="win32"}).start(),E=(0,mll.spawn)(l,I,f).on("close",N=>{N===0?(b.succeed("Packages installed successfully."),b.stop(),C.next(),C.complete()):(a.hideOutput&&A.forEach(({stream:B,data:F})=>B.write(F)),b.fail("Package install failed, see above."),C.error(new bll.UnsuccessfulWorkflowExecution))});a.hideOutput&&(E.stdout?.on("data",N=>A.push({stream:process.stdout,data:N})),E.stderr?.on("data",N=>A.push({stream:process.stderr,data:N})))})}}});var Yns=H(Ete=>{"use strict";var Sll=Ete&&Ete.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),vll=Ete&&Ete.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Bll=Ete&&Ete.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=r.authorName,o=r.authorEmail,l=(I,C)=>{let b="ignore",E=C?"ignore":process.stderr,N={stdio:[process.stdin,b,E],shell:!0,cwd:Rll.join(t,r.workingDirectory||""),env:{...process.env,...a?{GIT_AUTHOR_NAME:a,GIT_COMMITTER_NAME:a}:{},...o?{GIT_AUTHOR_EMAIL:o,GIT_COMMITTER_EMAIL:o}:{}}};return new Promise((B,F)=>{(0,Tll.spawn)("git",I,N).on("close",Q=>{Q===0?B():F(Q)})})};if(!await l(["--version"]).then(()=>!0,()=>!1))return;if(await l(["rev-parse","--is-inside-work-tree"],!0).then(()=>!0,()=>!1)){n.logger.info(wll.tags.oneLine` +`),this}},dll=function(e){return new _kt(e)};tYr.exports=dll;tYr.exports.promise=(e,t)=>{if(typeof e.then!="function")throw new TypeError("Parameter `action` must be a Promise");let r=new _kt(t);return r.start(),(async()=>{try{await e,r.succeed()}catch{r.fail()}})(),r}});var Hns=H(kO=>{"use strict";var pll=kO&&kO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),fll=kO&&kO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Ill=kO&&kO.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let o=r,l=t;if(e.allowPackageManagerOverride&&a.packageManager){if(o=Mns[a.packageManager],!o)throw new yje(a.packageManager);l=a.packageManager}let A=[],f={shell:!0,cwd:yll.join(n,a.workingDirectory||"")};a.hideOutput?f.stdio=a.quiet?["ignore","ignore","pipe"]:"pipe":f.stdio=a.quiet?["ignore","ignore","inherit"]:"inherit";let I=[];return a.packageName?(a.command==="install"&&I.push(o.commands.installPackage),I.push(a.packageName)):a.command==="install"&&o.commands.installAll&&I.push(o.commands.installAll),a.allowScripts||(l==="yarn"?f.env={...process.env,npm_config_ignore_scripts:"true",YARN_ENABLE_SCRIPTS:"false"}:I.push("--ignore-scripts")),e.registry&&I.push(`--registry="${e.registry}"`),e.force&&I.push("--force"),new bll.Observable(C=>{let b=(0,_ll.default)({text:`Installing packages (${l})...`,discardStdin:process.platform!="win32"}).start(),E=(0,Cll.spawn)(l,I,f).on("close",N=>{N===0?(b.succeed("Packages installed successfully."),b.stop(),C.next(),C.complete()):(a.hideOutput&&A.forEach(({stream:B,data:F})=>B.write(F)),b.fail("Package install failed, see above."),C.error(new Ell.UnsuccessfulWorkflowExecution))});a.hideOutput&&(E.stdout?.on("data",N=>A.push({stream:process.stdout,data:N})),E.stderr?.on("data",N=>A.push({stream:process.stderr,data:N})))})}}});var Yns=H(Ete=>{"use strict";var vll=Ete&&Ete.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Bll=Ete&&Ete.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wll=Ete&&Ete.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{let a=r.authorName,o=r.authorEmail,l=(I,C)=>{let b="ignore",E=C?"ignore":process.stderr,N={stdio:[process.stdin,b,E],shell:!0,cwd:Nll.join(t,r.workingDirectory||""),env:{...process.env,...a?{GIT_AUTHOR_NAME:a,GIT_COMMITTER_NAME:a}:{},...o?{GIT_AUTHOR_EMAIL:o,GIT_COMMITTER_EMAIL:o}:{}}};return new Promise((B,F)=>{(0,Rll.spawn)("git",I,N).on("close",Q=>{Q===0?B():F(Q)})})};if(!await l(["--version"]).then(()=>!0,()=>!1))return;if(await l(["rev-parse","--is-inside-work-tree"],!0).then(()=>!0,()=>!1)){n.logger.info(Tll.tags.oneLine` Directory is already under version control. Skipping initialization of git. - `);return}try{if(await l(["init"]),await l(["add","."]),r.commit){let I=r.message||"initial commit";await l(["commit",`-m "${I}"`])}n.logger.info("Successfully initialized git.")}catch{}}}});var Qns=H(rYr=>{"use strict";Object.defineProperty(rYr,"__esModule",{value:!0});rYr.default=Dll;function Dll(){return(e,t)=>{if(!e?.name)throw new Error("RunSchematicTask requires an options object with a non-empty name property.");let r=t.engine.workflow,n=e.collection||t.schematic.collection.description.name;if(!r)throw new Error("Need Workflow to support executing schematics as post tasks.");return r.execute({collection:n,schematic:e.name,options:e.options,allowPrivate:n==t.schematic.collection.description.name})}}});var Xns=H(s6=>{"use strict";var kll=s6&&s6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),xll=s6&&s6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nYr=s6&&s6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aPromise.resolve().then(()=>nYr(Hns())).then(r=>r.default(t))};static RepositoryInitializer={name:Fll.RepositoryInitializerName,create:t=>Promise.resolve().then(()=>nYr(Yns())).then(r=>r.default(t))};static RunSchematic={name:Zll.RunSchematicName,create:()=>Promise.resolve().then(()=>nYr(Qns())).then(t=>t.default())}};s6.BuiltinTaskExecutor=iYr});var Ekt=H(Gxe=>{"use strict";Object.defineProperty(Gxe,"__esModule",{value:!0});Gxe.NodeModulesEngineHost=Gxe.NodePackageDoesNotSupportSchematics=void 0;var Lll=Z2(),xxe=wt("path"),Vll=akt(),ykt=gkt(),Pll=HHr(),bkt=class extends Lll.BaseException{constructor(t){super(`Package ${JSON.stringify(t)} was found but does not support schematics.`)}};Gxe.NodePackageDoesNotSupportSchematics=bkt;var sYr=class extends ykt.FileSystemEngineHostBase{paths;constructor(t){super(),this.paths=t}resolve(t,r,n=new Set){if(r){if(n.has(r))throw n.add(r),new Error("Circular schematic reference detected: "+JSON.stringify(Array.from(n)));n.add(r)}let a=r?(0,xxe.dirname)(r):process.cwd(),o;t.startsWith(".")&&(t=(0,xxe.resolve)(a,t));let l={paths:r?[(0,xxe.dirname)(r),...this.paths||[]]:this.paths};try{let A=wt.resolve((0,xxe.join)(t,"package.json"),l),{schematics:f}=wt(A);if(!f||typeof f!="string")throw new bkt(t);if(f.startsWith(".")){let I=(0,xxe.dirname)(A);o=(0,xxe.resolve)(I,f)}else o=this.resolve(f,A,n)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)try{o=wt.resolve(t,l)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)throw new ykt.CollectionCannotBeResolvedException(t);return o}_resolveCollectionPath(t,r){let n=this.resolve(t,r);return(0,Pll.readJsonFile)(n),n}_resolveReferenceString(t,r,n){let a=new Vll.ExportStringRef(t,r);return a.ref?{ref:a.ref,path:a.module}:null}_transformCollectionDescription(t,r){if(!r.schematics||typeof r.schematics!="object")throw new ykt.CollectionMissingSchematicsMapException(t);return{...r,name:t}}_transformSchematicDescription(t,r,n){if(!n.factoryFn||!n.path||!n.description)throw new ykt.SchematicMissingFieldsException(t);return n}};Gxe.NodeModulesEngineHost=sYr});var Uns=H(Skt=>{"use strict";Object.defineProperty(Skt,"__esModule",{value:!0});Skt.partition=void 0;var Wll=MOr(),Jns=ute();function Oll(e,t){return function(r){return[Jns.filter(e,t)(r),Jns.filter(Wll.not(e,t))(r)]}}Skt.partition=Oll});var Kns=H(qle=>{"use strict";var Mll=qle&&qle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Hll=qle&&qle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.mergeAll=ns.merge=ns.max=ns.materialize=ns.mapTo=ns.map=ns.last=ns.isEmpty=ns.ignoreElements=ns.groupBy=ns.first=ns.findIndex=ns.find=ns.finalize=ns.filter=ns.expand=ns.exhaustMap=ns.exhaustAll=ns.exhaust=ns.every=ns.endWith=ns.elementAt=ns.distinctUntilKeyChanged=ns.distinctUntilChanged=ns.distinct=ns.dematerialize=ns.delayWhen=ns.delay=ns.defaultIfEmpty=ns.debounceTime=ns.debounce=ns.count=ns.connect=ns.concatWith=ns.concatMapTo=ns.concatMap=ns.concatAll=ns.concat=ns.combineLatestWith=ns.combineLatest=ns.combineLatestAll=ns.combineAll=ns.catchError=ns.bufferWhen=ns.bufferToggle=ns.bufferTime=ns.bufferCount=ns.buffer=ns.auditTime=ns.audit=void 0;ns.timeInterval=ns.throwIfEmpty=ns.throttleTime=ns.throttle=ns.tap=ns.takeWhile=ns.takeUntil=ns.takeLast=ns.take=ns.switchScan=ns.switchMapTo=ns.switchMap=ns.switchAll=ns.subscribeOn=ns.startWith=ns.skipWhile=ns.skipUntil=ns.skipLast=ns.skip=ns.single=ns.shareReplay=ns.share=ns.sequenceEqual=ns.scan=ns.sampleTime=ns.sample=ns.refCount=ns.retryWhen=ns.retry=ns.repeatWhen=ns.repeat=ns.reduce=ns.raceWith=ns.race=ns.publishReplay=ns.publishLast=ns.publishBehavior=ns.publish=ns.pluck=ns.partition=ns.pairwise=ns.onErrorResumeNext=ns.observeOn=ns.multicast=ns.min=ns.mergeWith=ns.mergeScan=ns.mergeMapTo=ns.mergeMap=ns.flatMap=void 0;ns.zipWith=ns.zipAll=ns.zip=ns.withLatestFrom=ns.windowWhen=ns.windowToggle=ns.windowTime=ns.windowCount=ns.window=ns.toArray=ns.timestamp=ns.timeoutWith=ns.timeout=void 0;var Jll=STt();Object.defineProperty(ns,"audit",{enumerable:!0,get:function(){return Jll.audit}});var Ull=YOr();Object.defineProperty(ns,"auditTime",{enumerable:!0,get:function(){return Ull.auditTime}});var Kll=QOr();Object.defineProperty(ns,"buffer",{enumerable:!0,get:function(){return Kll.buffer}});var jll=JOr();Object.defineProperty(ns,"bufferCount",{enumerable:!0,get:function(){return jll.bufferCount}});var zll=UOr();Object.defineProperty(ns,"bufferTime",{enumerable:!0,get:function(){return zll.bufferTime}});var qll=jOr();Object.defineProperty(ns,"bufferToggle",{enumerable:!0,get:function(){return qll.bufferToggle}});var $ll=zOr();Object.defineProperty(ns,"bufferWhen",{enumerable:!0,get:function(){return $ll.bufferWhen}});var eul=qOr();Object.defineProperty(ns,"catchError",{enumerable:!0,get:function(){return eul.catchError}});var tul=t3r();Object.defineProperty(ns,"combineAll",{enumerable:!0,get:function(){return tul.combineAll}});var rul=FTt();Object.defineProperty(ns,"combineLatestAll",{enumerable:!0,get:function(){return rul.combineLatestAll}});var nul=r3r();Object.defineProperty(ns,"combineLatest",{enumerable:!0,get:function(){return nul.combineLatest}});var iul=n3r();Object.defineProperty(ns,"combineLatestWith",{enumerable:!0,get:function(){return iul.combineLatestWith}});var sul=s3r();Object.defineProperty(ns,"concat",{enumerable:!0,get:function(){return sul.concat}});var oul=O8e();Object.defineProperty(ns,"concatAll",{enumerable:!0,get:function(){return oul.concatAll}});var aul=VTt();Object.defineProperty(ns,"concatMap",{enumerable:!0,get:function(){return aul.concatMap}});var cul=i3r();Object.defineProperty(ns,"concatMapTo",{enumerable:!0,get:function(){return cul.concatMapTo}});var lul=o3r();Object.defineProperty(ns,"concatWith",{enumerable:!0,get:function(){return lul.concatWith}});var uul=Y8e();Object.defineProperty(ns,"connect",{enumerable:!0,get:function(){return uul.connect}});var gul=a3r();Object.defineProperty(ns,"count",{enumerable:!0,get:function(){return gul.count}});var Aul=c3r();Object.defineProperty(ns,"debounce",{enumerable:!0,get:function(){return Aul.debounce}});var dul=l3r();Object.defineProperty(ns,"debounceTime",{enumerable:!0,get:function(){return dul.debounceTime}});var pul=zke();Object.defineProperty(ns,"defaultIfEmpty",{enumerable:!0,get:function(){return pul.defaultIfEmpty}});var ful=u3r();Object.defineProperty(ns,"delay",{enumerable:!0,get:function(){return ful.delay}});var Iul=qTt();Object.defineProperty(ns,"delayWhen",{enumerable:!0,get:function(){return Iul.delayWhen}});var hul=g3r();Object.defineProperty(ns,"dematerialize",{enumerable:!0,get:function(){return hul.dematerialize}});var mul=A3r();Object.defineProperty(ns,"distinct",{enumerable:!0,get:function(){return mul.distinct}});var Cul=nRt();Object.defineProperty(ns,"distinctUntilChanged",{enumerable:!0,get:function(){return Cul.distinctUntilChanged}});var _ul=d3r();Object.defineProperty(ns,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return _ul.distinctUntilKeyChanged}});var yul=p3r();Object.defineProperty(ns,"elementAt",{enumerable:!0,get:function(){return yul.elementAt}});var bul=f3r();Object.defineProperty(ns,"endWith",{enumerable:!0,get:function(){return bul.endWith}});var Eul=I3r();Object.defineProperty(ns,"every",{enumerable:!0,get:function(){return Eul.every}});var Sul=h3r();Object.defineProperty(ns,"exhaust",{enumerable:!0,get:function(){return Sul.exhaust}});var vul=gRt();Object.defineProperty(ns,"exhaustAll",{enumerable:!0,get:function(){return vul.exhaustAll}});var Bul=lRt();Object.defineProperty(ns,"exhaustMap",{enumerable:!0,get:function(){return Bul.exhaustMap}});var wul=m3r();Object.defineProperty(ns,"expand",{enumerable:!0,get:function(){return wul.expand}});var Tul=ute();Object.defineProperty(ns,"filter",{enumerable:!0,get:function(){return Tul.filter}});var Rul=C3r();Object.defineProperty(ns,"finalize",{enumerable:!0,get:function(){return Rul.finalize}});var Nul=fRt();Object.defineProperty(ns,"find",{enumerable:!0,get:function(){return Nul.find}});var Dul=_3r();Object.defineProperty(ns,"findIndex",{enumerable:!0,get:function(){return Dul.findIndex}});var kul=y3r();Object.defineProperty(ns,"first",{enumerable:!0,get:function(){return kul.first}});var xul=b3r();Object.defineProperty(ns,"groupBy",{enumerable:!0,get:function(){return xul.groupBy}});var Gul=UTt();Object.defineProperty(ns,"ignoreElements",{enumerable:!0,get:function(){return Gul.ignoreElements}});var Ful=E3r();Object.defineProperty(ns,"isEmpty",{enumerable:!0,get:function(){return Ful.isEmpty}});var Zul=S3r();Object.defineProperty(ns,"last",{enumerable:!0,get:function(){return Zul.last}});var Lul=lte();Object.defineProperty(ns,"map",{enumerable:!0,get:function(){return Lul.map}});var Vul=jTt();Object.defineProperty(ns,"mapTo",{enumerable:!0,get:function(){return Vul.mapTo}});var Pul=B3r();Object.defineProperty(ns,"materialize",{enumerable:!0,get:function(){return Pul.materialize}});var Wul=w3r();Object.defineProperty(ns,"max",{enumerable:!0,get:function(){return Wul.max}});var Oul=D3r();Object.defineProperty(ns,"merge",{enumerable:!0,get:function(){return Oul.merge}});var Mul=Yke();Object.defineProperty(ns,"mergeAll",{enumerable:!0,get:function(){return Mul.mergeAll}});var Hul=T3r();Object.defineProperty(ns,"flatMap",{enumerable:!0,get:function(){return Hul.flatMap}});var Yul=Kj();Object.defineProperty(ns,"mergeMap",{enumerable:!0,get:function(){return Yul.mergeMap}});var Qul=R3r();Object.defineProperty(ns,"mergeMapTo",{enumerable:!0,get:function(){return Qul.mergeMapTo}});var Xul=N3r();Object.defineProperty(ns,"mergeScan",{enumerable:!0,get:function(){return Xul.mergeScan}});var Jul=k3r();Object.defineProperty(ns,"mergeWith",{enumerable:!0,get:function(){return Jul.mergeWith}});var Uul=x3r();Object.defineProperty(ns,"min",{enumerable:!0,get:function(){return Uul.min}});var Kul=Q8e();Object.defineProperty(ns,"multicast",{enumerable:!0,get:function(){return Kul.multicast}});var jul=Oke();Object.defineProperty(ns,"observeOn",{enumerable:!0,get:function(){return jul.observeOn}});var zul=G3r();Object.defineProperty(ns,"onErrorResumeNext",{enumerable:!0,get:function(){return zul.onErrorResumeNext}});var qul=F3r();Object.defineProperty(ns,"pairwise",{enumerable:!0,get:function(){return qul.pairwise}});var $ul=Uns();Object.defineProperty(ns,"partition",{enumerable:!0,get:function(){return $ul.partition}});var egl=Z3r();Object.defineProperty(ns,"pluck",{enumerable:!0,get:function(){return egl.pluck}});var tgl=L3r();Object.defineProperty(ns,"publish",{enumerable:!0,get:function(){return tgl.publish}});var rgl=V3r();Object.defineProperty(ns,"publishBehavior",{enumerable:!0,get:function(){return rgl.publishBehavior}});var ngl=P3r();Object.defineProperty(ns,"publishLast",{enumerable:!0,get:function(){return ngl.publishLast}});var igl=W3r();Object.defineProperty(ns,"publishReplay",{enumerable:!0,get:function(){return igl.publishReplay}});var sgl=Kns();Object.defineProperty(ns,"race",{enumerable:!0,get:function(){return sgl.race}});var ogl=FRt();Object.defineProperty(ns,"raceWith",{enumerable:!0,get:function(){return ogl.raceWith}});var agl=C_e();Object.defineProperty(ns,"reduce",{enumerable:!0,get:function(){return agl.reduce}});var cgl=O3r();Object.defineProperty(ns,"repeat",{enumerable:!0,get:function(){return cgl.repeat}});var lgl=M3r();Object.defineProperty(ns,"repeatWhen",{enumerable:!0,get:function(){return lgl.repeatWhen}});var ugl=H3r();Object.defineProperty(ns,"retry",{enumerable:!0,get:function(){return ugl.retry}});var ggl=Y3r();Object.defineProperty(ns,"retryWhen",{enumerable:!0,get:function(){return ggl.retryWhen}});var Agl=awt();Object.defineProperty(ns,"refCount",{enumerable:!0,get:function(){return Agl.refCount}});var dgl=ORt();Object.defineProperty(ns,"sample",{enumerable:!0,get:function(){return dgl.sample}});var pgl=Q3r();Object.defineProperty(ns,"sampleTime",{enumerable:!0,get:function(){return pgl.sampleTime}});var fgl=X3r();Object.defineProperty(ns,"scan",{enumerable:!0,get:function(){return fgl.scan}});var Igl=J3r();Object.defineProperty(ns,"sequenceEqual",{enumerable:!0,get:function(){return Igl.sequenceEqual}});var hgl=QRt();Object.defineProperty(ns,"share",{enumerable:!0,get:function(){return hgl.share}});var mgl=K3r();Object.defineProperty(ns,"shareReplay",{enumerable:!0,get:function(){return mgl.shareReplay}});var Cgl=j3r();Object.defineProperty(ns,"single",{enumerable:!0,get:function(){return Cgl.single}});var _gl=z3r();Object.defineProperty(ns,"skip",{enumerable:!0,get:function(){return _gl.skip}});var ygl=q3r();Object.defineProperty(ns,"skipLast",{enumerable:!0,get:function(){return ygl.skipLast}});var bgl=$3r();Object.defineProperty(ns,"skipUntil",{enumerable:!0,get:function(){return bgl.skipUntil}});var Egl=e5r();Object.defineProperty(ns,"skipWhile",{enumerable:!0,get:function(){return Egl.skipWhile}});var Sgl=t5r();Object.defineProperty(ns,"startWith",{enumerable:!0,get:function(){return Sgl.startWith}});var vgl=Mke();Object.defineProperty(ns,"subscribeOn",{enumerable:!0,get:function(){return vgl.subscribeOn}});var Bgl=r5r();Object.defineProperty(ns,"switchAll",{enumerable:!0,get:function(){return Bgl.switchAll}});var wgl=rxe();Object.defineProperty(ns,"switchMap",{enumerable:!0,get:function(){return wgl.switchMap}});var Tgl=n5r();Object.defineProperty(ns,"switchMapTo",{enumerable:!0,get:function(){return Tgl.switchMapTo}});var Rgl=i5r();Object.defineProperty(ns,"switchScan",{enumerable:!0,get:function(){return Rgl.switchScan}});var Ngl=qke();Object.defineProperty(ns,"take",{enumerable:!0,get:function(){return Ngl.take}});var Dgl=_Rt();Object.defineProperty(ns,"takeLast",{enumerable:!0,get:function(){return Dgl.takeLast}});var kgl=s5r();Object.defineProperty(ns,"takeUntil",{enumerable:!0,get:function(){return kgl.takeUntil}});var xgl=o5r();Object.defineProperty(ns,"takeWhile",{enumerable:!0,get:function(){return xgl.takeWhile}});var Ggl=a5r();Object.defineProperty(ns,"tap",{enumerable:!0,get:function(){return Ggl.tap}});var Fgl=aNt();Object.defineProperty(ns,"throttle",{enumerable:!0,get:function(){return Fgl.throttle}});var Zgl=c5r();Object.defineProperty(ns,"throttleTime",{enumerable:!0,get:function(){return Zgl.throttleTime}});var Lgl=$ke();Object.defineProperty(ns,"throwIfEmpty",{enumerable:!0,get:function(){return Lgl.throwIfEmpty}});var Vgl=l5r();Object.defineProperty(ns,"timeInterval",{enumerable:!0,get:function(){return Vgl.timeInterval}});var Pgl=W8e();Object.defineProperty(ns,"timeout",{enumerable:!0,get:function(){return Pgl.timeout}});var Wgl=u5r();Object.defineProperty(ns,"timeoutWith",{enumerable:!0,get:function(){return Wgl.timeoutWith}});var Ogl=g5r();Object.defineProperty(ns,"timestamp",{enumerable:!0,get:function(){return Ogl.timestamp}});var Mgl=kTt();Object.defineProperty(ns,"toArray",{enumerable:!0,get:function(){return Mgl.toArray}});var Hgl=A5r();Object.defineProperty(ns,"window",{enumerable:!0,get:function(){return Hgl.window}});var Ygl=d5r();Object.defineProperty(ns,"windowCount",{enumerable:!0,get:function(){return Ygl.windowCount}});var Qgl=p5r();Object.defineProperty(ns,"windowTime",{enumerable:!0,get:function(){return Qgl.windowTime}});var Xgl=I5r();Object.defineProperty(ns,"windowToggle",{enumerable:!0,get:function(){return Xgl.windowToggle}});var Jgl=h5r();Object.defineProperty(ns,"windowWhen",{enumerable:!0,get:function(){return Jgl.windowWhen}});var Ugl=m5r();Object.defineProperty(ns,"withLatestFrom",{enumerable:!0,get:function(){return Ugl.withLatestFrom}});var Kgl=_5r();Object.defineProperty(ns,"zip",{enumerable:!0,get:function(){return Kgl.zip}});var jgl=C5r();Object.defineProperty(ns,"zipAll",{enumerable:!0,get:function(){return jgl.zipAll}});var zgl=y5r();Object.defineProperty(ns,"zipWith",{enumerable:!0,get:function(){return zgl.zipWith}})});var aYr=H(bje=>{"use strict";Object.defineProperty(bje,"__esModule",{value:!0});bje.InvalidInputOptions=void 0;bje.validateOptionsWithSchema=qgl;var qns=Z2(),zns=qb(),oYr=jns(),vkt=class extends qns.schema.SchemaValidationException{constructor(t,r){super(r,`Schematic input does not validate against the Schema: ${JSON.stringify(t)} + `);return}try{if(await l(["init"]),await l(["add","."]),r.commit){let I=r.message||"initial commit";await l(["commit",`-m "${I}"`])}n.logger.info("Successfully initialized git.")}catch{}}}});var Qns=H(rYr=>{"use strict";Object.defineProperty(rYr,"__esModule",{value:!0});rYr.default=kll;function kll(){return(e,t)=>{if(!e?.name)throw new Error("RunSchematicTask requires an options object with a non-empty name property.");let r=t.engine.workflow,n=e.collection||t.schematic.collection.description.name;if(!r)throw new Error("Need Workflow to support executing schematics as post tasks.");return r.execute({collection:n,schematic:e.name,options:e.options,allowPrivate:n==t.schematic.collection.description.name})}}});var Xns=H(s6=>{"use strict";var xll=s6&&s6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Gll=s6&&s6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nYr=s6&&s6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aPromise.resolve().then(()=>nYr(Hns())).then(r=>r.default(t))};static RepositoryInitializer={name:Zll.RepositoryInitializerName,create:t=>Promise.resolve().then(()=>nYr(Yns())).then(r=>r.default(t))};static RunSchematic={name:Lll.RunSchematicName,create:()=>Promise.resolve().then(()=>nYr(Qns())).then(t=>t.default())}};s6.BuiltinTaskExecutor=iYr});var Ekt=H(Gxe=>{"use strict";Object.defineProperty(Gxe,"__esModule",{value:!0});Gxe.NodeModulesEngineHost=Gxe.NodePackageDoesNotSupportSchematics=void 0;var Vll=Z2(),xxe=wt("path"),Pll=akt(),ykt=gkt(),Wll=HHr(),bkt=class extends Vll.BaseException{constructor(t){super(`Package ${JSON.stringify(t)} was found but does not support schematics.`)}};Gxe.NodePackageDoesNotSupportSchematics=bkt;var sYr=class extends ykt.FileSystemEngineHostBase{paths;constructor(t){super(),this.paths=t}resolve(t,r,n=new Set){if(r){if(n.has(r))throw n.add(r),new Error("Circular schematic reference detected: "+JSON.stringify(Array.from(n)));n.add(r)}let a=r?(0,xxe.dirname)(r):process.cwd(),o;t.startsWith(".")&&(t=(0,xxe.resolve)(a,t));let l={paths:r?[(0,xxe.dirname)(r),...this.paths||[]]:this.paths};try{let A=wt.resolve((0,xxe.join)(t,"package.json"),l),{schematics:f}=wt(A);if(!f||typeof f!="string")throw new bkt(t);if(f.startsWith(".")){let I=(0,xxe.dirname)(A);o=(0,xxe.resolve)(I,f)}else o=this.resolve(f,A,n)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)try{o=wt.resolve(t,l)}catch(A){if(A.code!=="MODULE_NOT_FOUND")throw A}if(!o)throw new ykt.CollectionCannotBeResolvedException(t);return o}_resolveCollectionPath(t,r){let n=this.resolve(t,r);return(0,Wll.readJsonFile)(n),n}_resolveReferenceString(t,r,n){let a=new Pll.ExportStringRef(t,r);return a.ref?{ref:a.ref,path:a.module}:null}_transformCollectionDescription(t,r){if(!r.schematics||typeof r.schematics!="object")throw new ykt.CollectionMissingSchematicsMapException(t);return{...r,name:t}}_transformSchematicDescription(t,r,n){if(!n.factoryFn||!n.path||!n.description)throw new ykt.SchematicMissingFieldsException(t);return n}};Gxe.NodeModulesEngineHost=sYr});var Uns=H(Skt=>{"use strict";Object.defineProperty(Skt,"__esModule",{value:!0});Skt.partition=void 0;var Oll=MOr(),Jns=ute();function Mll(e,t){return function(r){return[Jns.filter(e,t)(r),Jns.filter(Oll.not(e,t))(r)]}}Skt.partition=Mll});var Kns=H(qle=>{"use strict";var Hll=qle&&qle.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),a,o=[],l;try{for(;(t===void 0||t-- >0)&&!(a=n.next()).done;)o.push(a.value)}catch(A){l={error:A}}finally{try{a&&!a.done&&(r=n.return)&&r.call(n)}finally{if(l)throw l.error}}return o},Yll=qle&&qle.__spreadArray||function(e,t){for(var r=0,n=t.length,a=e.length;r{"use strict";Object.defineProperty(ns,"__esModule",{value:!0});ns.mergeAll=ns.merge=ns.max=ns.materialize=ns.mapTo=ns.map=ns.last=ns.isEmpty=ns.ignoreElements=ns.groupBy=ns.first=ns.findIndex=ns.find=ns.finalize=ns.filter=ns.expand=ns.exhaustMap=ns.exhaustAll=ns.exhaust=ns.every=ns.endWith=ns.elementAt=ns.distinctUntilKeyChanged=ns.distinctUntilChanged=ns.distinct=ns.dematerialize=ns.delayWhen=ns.delay=ns.defaultIfEmpty=ns.debounceTime=ns.debounce=ns.count=ns.connect=ns.concatWith=ns.concatMapTo=ns.concatMap=ns.concatAll=ns.concat=ns.combineLatestWith=ns.combineLatest=ns.combineLatestAll=ns.combineAll=ns.catchError=ns.bufferWhen=ns.bufferToggle=ns.bufferTime=ns.bufferCount=ns.buffer=ns.auditTime=ns.audit=void 0;ns.timeInterval=ns.throwIfEmpty=ns.throttleTime=ns.throttle=ns.tap=ns.takeWhile=ns.takeUntil=ns.takeLast=ns.take=ns.switchScan=ns.switchMapTo=ns.switchMap=ns.switchAll=ns.subscribeOn=ns.startWith=ns.skipWhile=ns.skipUntil=ns.skipLast=ns.skip=ns.single=ns.shareReplay=ns.share=ns.sequenceEqual=ns.scan=ns.sampleTime=ns.sample=ns.refCount=ns.retryWhen=ns.retry=ns.repeatWhen=ns.repeat=ns.reduce=ns.raceWith=ns.race=ns.publishReplay=ns.publishLast=ns.publishBehavior=ns.publish=ns.pluck=ns.partition=ns.pairwise=ns.onErrorResumeNext=ns.observeOn=ns.multicast=ns.min=ns.mergeWith=ns.mergeScan=ns.mergeMapTo=ns.mergeMap=ns.flatMap=void 0;ns.zipWith=ns.zipAll=ns.zip=ns.withLatestFrom=ns.windowWhen=ns.windowToggle=ns.windowTime=ns.windowCount=ns.window=ns.toArray=ns.timestamp=ns.timeoutWith=ns.timeout=void 0;var Ull=STt();Object.defineProperty(ns,"audit",{enumerable:!0,get:function(){return Ull.audit}});var Kll=YOr();Object.defineProperty(ns,"auditTime",{enumerable:!0,get:function(){return Kll.auditTime}});var jll=QOr();Object.defineProperty(ns,"buffer",{enumerable:!0,get:function(){return jll.buffer}});var zll=JOr();Object.defineProperty(ns,"bufferCount",{enumerable:!0,get:function(){return zll.bufferCount}});var qll=UOr();Object.defineProperty(ns,"bufferTime",{enumerable:!0,get:function(){return qll.bufferTime}});var $ll=jOr();Object.defineProperty(ns,"bufferToggle",{enumerable:!0,get:function(){return $ll.bufferToggle}});var eul=zOr();Object.defineProperty(ns,"bufferWhen",{enumerable:!0,get:function(){return eul.bufferWhen}});var tul=qOr();Object.defineProperty(ns,"catchError",{enumerable:!0,get:function(){return tul.catchError}});var rul=t3r();Object.defineProperty(ns,"combineAll",{enumerable:!0,get:function(){return rul.combineAll}});var nul=FTt();Object.defineProperty(ns,"combineLatestAll",{enumerable:!0,get:function(){return nul.combineLatestAll}});var iul=r3r();Object.defineProperty(ns,"combineLatest",{enumerable:!0,get:function(){return iul.combineLatest}});var sul=n3r();Object.defineProperty(ns,"combineLatestWith",{enumerable:!0,get:function(){return sul.combineLatestWith}});var oul=s3r();Object.defineProperty(ns,"concat",{enumerable:!0,get:function(){return oul.concat}});var aul=O8e();Object.defineProperty(ns,"concatAll",{enumerable:!0,get:function(){return aul.concatAll}});var cul=VTt();Object.defineProperty(ns,"concatMap",{enumerable:!0,get:function(){return cul.concatMap}});var lul=i3r();Object.defineProperty(ns,"concatMapTo",{enumerable:!0,get:function(){return lul.concatMapTo}});var uul=o3r();Object.defineProperty(ns,"concatWith",{enumerable:!0,get:function(){return uul.concatWith}});var gul=Y8e();Object.defineProperty(ns,"connect",{enumerable:!0,get:function(){return gul.connect}});var Aul=a3r();Object.defineProperty(ns,"count",{enumerable:!0,get:function(){return Aul.count}});var dul=c3r();Object.defineProperty(ns,"debounce",{enumerable:!0,get:function(){return dul.debounce}});var pul=l3r();Object.defineProperty(ns,"debounceTime",{enumerable:!0,get:function(){return pul.debounceTime}});var ful=zke();Object.defineProperty(ns,"defaultIfEmpty",{enumerable:!0,get:function(){return ful.defaultIfEmpty}});var Iul=u3r();Object.defineProperty(ns,"delay",{enumerable:!0,get:function(){return Iul.delay}});var hul=qTt();Object.defineProperty(ns,"delayWhen",{enumerable:!0,get:function(){return hul.delayWhen}});var mul=g3r();Object.defineProperty(ns,"dematerialize",{enumerable:!0,get:function(){return mul.dematerialize}});var Cul=A3r();Object.defineProperty(ns,"distinct",{enumerable:!0,get:function(){return Cul.distinct}});var _ul=nRt();Object.defineProperty(ns,"distinctUntilChanged",{enumerable:!0,get:function(){return _ul.distinctUntilChanged}});var yul=d3r();Object.defineProperty(ns,"distinctUntilKeyChanged",{enumerable:!0,get:function(){return yul.distinctUntilKeyChanged}});var bul=p3r();Object.defineProperty(ns,"elementAt",{enumerable:!0,get:function(){return bul.elementAt}});var Eul=f3r();Object.defineProperty(ns,"endWith",{enumerable:!0,get:function(){return Eul.endWith}});var Sul=I3r();Object.defineProperty(ns,"every",{enumerable:!0,get:function(){return Sul.every}});var vul=h3r();Object.defineProperty(ns,"exhaust",{enumerable:!0,get:function(){return vul.exhaust}});var Bul=gRt();Object.defineProperty(ns,"exhaustAll",{enumerable:!0,get:function(){return Bul.exhaustAll}});var wul=lRt();Object.defineProperty(ns,"exhaustMap",{enumerable:!0,get:function(){return wul.exhaustMap}});var Tul=m3r();Object.defineProperty(ns,"expand",{enumerable:!0,get:function(){return Tul.expand}});var Rul=ute();Object.defineProperty(ns,"filter",{enumerable:!0,get:function(){return Rul.filter}});var Nul=C3r();Object.defineProperty(ns,"finalize",{enumerable:!0,get:function(){return Nul.finalize}});var Dul=fRt();Object.defineProperty(ns,"find",{enumerable:!0,get:function(){return Dul.find}});var kul=_3r();Object.defineProperty(ns,"findIndex",{enumerable:!0,get:function(){return kul.findIndex}});var xul=y3r();Object.defineProperty(ns,"first",{enumerable:!0,get:function(){return xul.first}});var Gul=b3r();Object.defineProperty(ns,"groupBy",{enumerable:!0,get:function(){return Gul.groupBy}});var Ful=UTt();Object.defineProperty(ns,"ignoreElements",{enumerable:!0,get:function(){return Ful.ignoreElements}});var Zul=E3r();Object.defineProperty(ns,"isEmpty",{enumerable:!0,get:function(){return Zul.isEmpty}});var Lul=S3r();Object.defineProperty(ns,"last",{enumerable:!0,get:function(){return Lul.last}});var Vul=lte();Object.defineProperty(ns,"map",{enumerable:!0,get:function(){return Vul.map}});var Pul=jTt();Object.defineProperty(ns,"mapTo",{enumerable:!0,get:function(){return Pul.mapTo}});var Wul=B3r();Object.defineProperty(ns,"materialize",{enumerable:!0,get:function(){return Wul.materialize}});var Oul=w3r();Object.defineProperty(ns,"max",{enumerable:!0,get:function(){return Oul.max}});var Mul=D3r();Object.defineProperty(ns,"merge",{enumerable:!0,get:function(){return Mul.merge}});var Hul=Yke();Object.defineProperty(ns,"mergeAll",{enumerable:!0,get:function(){return Hul.mergeAll}});var Yul=T3r();Object.defineProperty(ns,"flatMap",{enumerable:!0,get:function(){return Yul.flatMap}});var Qul=Kj();Object.defineProperty(ns,"mergeMap",{enumerable:!0,get:function(){return Qul.mergeMap}});var Xul=R3r();Object.defineProperty(ns,"mergeMapTo",{enumerable:!0,get:function(){return Xul.mergeMapTo}});var Jul=N3r();Object.defineProperty(ns,"mergeScan",{enumerable:!0,get:function(){return Jul.mergeScan}});var Uul=k3r();Object.defineProperty(ns,"mergeWith",{enumerable:!0,get:function(){return Uul.mergeWith}});var Kul=x3r();Object.defineProperty(ns,"min",{enumerable:!0,get:function(){return Kul.min}});var jul=Q8e();Object.defineProperty(ns,"multicast",{enumerable:!0,get:function(){return jul.multicast}});var zul=Oke();Object.defineProperty(ns,"observeOn",{enumerable:!0,get:function(){return zul.observeOn}});var qul=G3r();Object.defineProperty(ns,"onErrorResumeNext",{enumerable:!0,get:function(){return qul.onErrorResumeNext}});var $ul=F3r();Object.defineProperty(ns,"pairwise",{enumerable:!0,get:function(){return $ul.pairwise}});var egl=Uns();Object.defineProperty(ns,"partition",{enumerable:!0,get:function(){return egl.partition}});var tgl=Z3r();Object.defineProperty(ns,"pluck",{enumerable:!0,get:function(){return tgl.pluck}});var rgl=L3r();Object.defineProperty(ns,"publish",{enumerable:!0,get:function(){return rgl.publish}});var ngl=V3r();Object.defineProperty(ns,"publishBehavior",{enumerable:!0,get:function(){return ngl.publishBehavior}});var igl=P3r();Object.defineProperty(ns,"publishLast",{enumerable:!0,get:function(){return igl.publishLast}});var sgl=W3r();Object.defineProperty(ns,"publishReplay",{enumerable:!0,get:function(){return sgl.publishReplay}});var ogl=Kns();Object.defineProperty(ns,"race",{enumerable:!0,get:function(){return ogl.race}});var agl=FRt();Object.defineProperty(ns,"raceWith",{enumerable:!0,get:function(){return agl.raceWith}});var cgl=C_e();Object.defineProperty(ns,"reduce",{enumerable:!0,get:function(){return cgl.reduce}});var lgl=O3r();Object.defineProperty(ns,"repeat",{enumerable:!0,get:function(){return lgl.repeat}});var ugl=M3r();Object.defineProperty(ns,"repeatWhen",{enumerable:!0,get:function(){return ugl.repeatWhen}});var ggl=H3r();Object.defineProperty(ns,"retry",{enumerable:!0,get:function(){return ggl.retry}});var Agl=Y3r();Object.defineProperty(ns,"retryWhen",{enumerable:!0,get:function(){return Agl.retryWhen}});var dgl=awt();Object.defineProperty(ns,"refCount",{enumerable:!0,get:function(){return dgl.refCount}});var pgl=ORt();Object.defineProperty(ns,"sample",{enumerable:!0,get:function(){return pgl.sample}});var fgl=Q3r();Object.defineProperty(ns,"sampleTime",{enumerable:!0,get:function(){return fgl.sampleTime}});var Igl=X3r();Object.defineProperty(ns,"scan",{enumerable:!0,get:function(){return Igl.scan}});var hgl=J3r();Object.defineProperty(ns,"sequenceEqual",{enumerable:!0,get:function(){return hgl.sequenceEqual}});var mgl=QRt();Object.defineProperty(ns,"share",{enumerable:!0,get:function(){return mgl.share}});var Cgl=K3r();Object.defineProperty(ns,"shareReplay",{enumerable:!0,get:function(){return Cgl.shareReplay}});var _gl=j3r();Object.defineProperty(ns,"single",{enumerable:!0,get:function(){return _gl.single}});var ygl=z3r();Object.defineProperty(ns,"skip",{enumerable:!0,get:function(){return ygl.skip}});var bgl=q3r();Object.defineProperty(ns,"skipLast",{enumerable:!0,get:function(){return bgl.skipLast}});var Egl=$3r();Object.defineProperty(ns,"skipUntil",{enumerable:!0,get:function(){return Egl.skipUntil}});var Sgl=e5r();Object.defineProperty(ns,"skipWhile",{enumerable:!0,get:function(){return Sgl.skipWhile}});var vgl=t5r();Object.defineProperty(ns,"startWith",{enumerable:!0,get:function(){return vgl.startWith}});var Bgl=Mke();Object.defineProperty(ns,"subscribeOn",{enumerable:!0,get:function(){return Bgl.subscribeOn}});var wgl=r5r();Object.defineProperty(ns,"switchAll",{enumerable:!0,get:function(){return wgl.switchAll}});var Tgl=rxe();Object.defineProperty(ns,"switchMap",{enumerable:!0,get:function(){return Tgl.switchMap}});var Rgl=n5r();Object.defineProperty(ns,"switchMapTo",{enumerable:!0,get:function(){return Rgl.switchMapTo}});var Ngl=i5r();Object.defineProperty(ns,"switchScan",{enumerable:!0,get:function(){return Ngl.switchScan}});var Dgl=qke();Object.defineProperty(ns,"take",{enumerable:!0,get:function(){return Dgl.take}});var kgl=_Rt();Object.defineProperty(ns,"takeLast",{enumerable:!0,get:function(){return kgl.takeLast}});var xgl=s5r();Object.defineProperty(ns,"takeUntil",{enumerable:!0,get:function(){return xgl.takeUntil}});var Ggl=o5r();Object.defineProperty(ns,"takeWhile",{enumerable:!0,get:function(){return Ggl.takeWhile}});var Fgl=a5r();Object.defineProperty(ns,"tap",{enumerable:!0,get:function(){return Fgl.tap}});var Zgl=aNt();Object.defineProperty(ns,"throttle",{enumerable:!0,get:function(){return Zgl.throttle}});var Lgl=c5r();Object.defineProperty(ns,"throttleTime",{enumerable:!0,get:function(){return Lgl.throttleTime}});var Vgl=$ke();Object.defineProperty(ns,"throwIfEmpty",{enumerable:!0,get:function(){return Vgl.throwIfEmpty}});var Pgl=l5r();Object.defineProperty(ns,"timeInterval",{enumerable:!0,get:function(){return Pgl.timeInterval}});var Wgl=W8e();Object.defineProperty(ns,"timeout",{enumerable:!0,get:function(){return Wgl.timeout}});var Ogl=u5r();Object.defineProperty(ns,"timeoutWith",{enumerable:!0,get:function(){return Ogl.timeoutWith}});var Mgl=g5r();Object.defineProperty(ns,"timestamp",{enumerable:!0,get:function(){return Mgl.timestamp}});var Hgl=kTt();Object.defineProperty(ns,"toArray",{enumerable:!0,get:function(){return Hgl.toArray}});var Ygl=A5r();Object.defineProperty(ns,"window",{enumerable:!0,get:function(){return Ygl.window}});var Qgl=d5r();Object.defineProperty(ns,"windowCount",{enumerable:!0,get:function(){return Qgl.windowCount}});var Xgl=p5r();Object.defineProperty(ns,"windowTime",{enumerable:!0,get:function(){return Xgl.windowTime}});var Jgl=I5r();Object.defineProperty(ns,"windowToggle",{enumerable:!0,get:function(){return Jgl.windowToggle}});var Ugl=h5r();Object.defineProperty(ns,"windowWhen",{enumerable:!0,get:function(){return Ugl.windowWhen}});var Kgl=m5r();Object.defineProperty(ns,"withLatestFrom",{enumerable:!0,get:function(){return Kgl.withLatestFrom}});var jgl=_5r();Object.defineProperty(ns,"zip",{enumerable:!0,get:function(){return jgl.zip}});var zgl=C5r();Object.defineProperty(ns,"zipAll",{enumerable:!0,get:function(){return zgl.zipAll}});var qgl=y5r();Object.defineProperty(ns,"zipWith",{enumerable:!0,get:function(){return qgl.zipWith}})});var aYr=H(bje=>{"use strict";Object.defineProperty(bje,"__esModule",{value:!0});bje.InvalidInputOptions=void 0;bje.validateOptionsWithSchema=$gl;var qns=Z2(),zns=qb(),oYr=jns(),vkt=class extends qns.schema.SchemaValidationException{constructor(t,r){super(r,`Schematic input does not validate against the Schema: ${JSON.stringify(t)} Errors: -`)}};bje.InvalidInputOptions=vkt;function qgl(e){return(t,r,n)=>{r=(0,qns.deepCopy)(r);let a=n?n.interactive:!0;return t.schema&&t.schemaJson?(0,zns.from)(e.compile(t.schemaJson)).pipe((0,oYr.mergeMap)(o=>o(r,{withPrompts:a})),(0,oYr.first)(),(0,oYr.map)(o=>{if(!o.success)throw new vkt(r,o.errors||[]);return r})):(0,zns.of)(r)}}});var $ns=H(wkt=>{"use strict";Object.defineProperty(wkt,"__esModule",{value:!0});wkt.NodeWorkflow=void 0;var Bkt=Z2(),$gl=JDt(),eAl=Dxe(),cYr=Xns(),tAl=Ekt(),rAl=aYr(),lYr=class extends eAl.workflow.BaseWorkflow{constructor(t,r){let n,a;typeof t=="string"?(a=(0,Bkt.normalize)(t),n=new Bkt.virtualFs.ScopedHost(new $gl.NodeJsSyncHost,a)):(n=t,a=r.root);let o=r.engineHostCreator?.(r)||new tAl.NodeModulesEngineHost(r.resolvePaths);if(super({host:n,engineHost:o,force:r.force,dryRun:r.dryRun,registry:r.registry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.NodePackage,{allowPackageManagerOverride:!0,packageManager:r.packageManager,force:r.packageManagerForce,rootDirectory:a&&(0,Bkt.getSystemPath)(a),registry:r.packageRegistry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RepositoryInitializer,{rootDirectory:a&&(0,Bkt.getSystemPath)(a)}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RunSchematic),r.optionTransforms)for(let l of r.optionTransforms)o.registerOptionsTransform(l);r.schemaValidation&&o.registerOptionsTransform((0,rAl.validateOptionsWithSchema)(this.registry)),this._context=[]}get engine(){return this._engine}get engineHost(){return this._engineHost}};wkt.NodeWorkflow=lYr});var eis=H(o6=>{"use strict";var nAl=o6&&o6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iAl=o6&&o6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),sAl=o6&&o6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;asAl(wt(n))).then(n=>(n.default?.default||n.default)())).pipe((0,gYr.catchError)(()=>(0,gYr.throwError)(()=>new oAl.UnregisteredTaskException(t))))}catch{}return super.createTaskExecutor(t)}};o6.FileSystemEngineHost=AYr});var tis=H(Nkt=>{"use strict";Object.defineProperty(Nkt,"__esModule",{value:!0});Nkt.NodeModulesTestEngineHost=void 0;var cAl=Ekt(),dYr=class extends cAl.NodeModulesEngineHost{#e=new Map;#t=[];get tasks(){return this.#t}clearTasks(){this.#t=[]}registerCollection(t,r){this.#e.set(t,r)}transformContext(t){let r=t.addTask.bind(t);return t.addTask=(n,a)=>(this.#t.push(n.toConfiguration()),r(n,a)),t}_resolveCollectionPath(t,r){return this.#e.get(t)??super._resolveCollectionPath(t,r)}};Nkt.NodeModulesTestEngineHost=dYr});var nis=H(mT=>{"use strict";var lAl=mT&&mT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dkt=mT&&mT.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&lAl(t,e,r)};Object.defineProperty(mT,"__esModule",{value:!0});mT.validateOptionsWithSchema=mT.NodeModulesTestEngineHost=mT.NodePackageDoesNotSupportSchematics=mT.NodeModulesEngineHost=mT.FileSystemEngineHost=void 0;Dkt(dns(),mT);Dkt(akt(),mT);Dkt(gkt(),mT);Dkt($ns(),mT);var uAl=eis();Object.defineProperty(mT,"FileSystemEngineHost",{enumerable:!0,get:function(){return uAl.FileSystemEngineHost}});var ris=Ekt();Object.defineProperty(mT,"NodeModulesEngineHost",{enumerable:!0,get:function(){return ris.NodeModulesEngineHost}});Object.defineProperty(mT,"NodePackageDoesNotSupportSchematics",{enumerable:!0,get:function(){return ris.NodePackageDoesNotSupportSchematics}});var gAl=tis();Object.defineProperty(mT,"NodeModulesTestEngineHost",{enumerable:!0,get:function(){return gAl.NodeModulesTestEngineHost}});var AAl=aYr();Object.defineProperty(mT,"validateOptionsWithSchema",{enumerable:!0,get:function(){return AAl.validateOptionsWithSchema}})});var Cis=H(Gkt=>{"use strict";Object.defineProperty(Gkt,"__esModule",{value:!0});function Eje(e){let t=[...e.caches],r=t.shift();return r===void 0?mis():{get(n,a,o={miss:()=>Promise.resolve()}){return r.get(n,a,o).catch(()=>Eje({caches:t}).get(n,a,o))},set(n,a){return r.set(n,a).catch(()=>Eje({caches:t}).set(n,a))},delete(n){return r.delete(n).catch(()=>Eje({caches:t}).delete(n))},clear(){return r.clear().catch(()=>Eje({caches:t}).clear())}}}function mis(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}Gkt.createFallbackableCache=Eje;Gkt.createNullCache=mis});var IYr=H((t$u,_is)=>{_is.exports=Cis()});var yis=H(hYr=>{"use strict";Object.defineProperty(hYr,"__esModule",{value:!0});function fAl(e={serializable:!0}){let t={};return{get(r,n,a={miss:()=>Promise.resolve()}){let o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);let l=n(),A=a&&a.miss||(()=>Promise.resolve());return l.then(f=>A(f)).then(()=>l)},set(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}hYr.createInMemoryCache=fAl});var mYr=H((n$u,bis)=>{bis.exports=yis()});var Sis=H(V4=>{"use strict";Object.defineProperty(V4,"__esModule",{value:!0});function IAl(e,t,r){let n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===CYr.WithinHeaders?n:{}},queryParameters(){return e===CYr.WithinQueryParameters?n:{}}}}function hAl(e){let t=0,r=()=>(t++,new Promise(n=>{setTimeout(()=>{n(e(r))},Math.min(100*t,1e3))}));return e(r)}function Eis(e,t=(r,n)=>Promise.resolve()){return Object.assign(e,{wait(r){return Eis(e.then(n=>Promise.all([t(n,r),n])).then(n=>n[1]))}})}function mAl(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function CAl(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function _Al(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var yAl="4.24.0",bAl=e=>()=>e.transporter.requester.destroy(),CYr={WithinQueryParameters:0,WithinHeaders:1};V4.AuthMode=CYr;V4.addMethods=CAl;V4.createAuth=IAl;V4.createRetryablePromise=hAl;V4.createWaitablePromise=Eis;V4.destroy=bAl;V4.encode=_Al;V4.shuffle=mAl;V4.version=yAl});var Fxe=H((s$u,vis)=>{vis.exports=Sis()});var Bis=H(_Yr=>{"use strict";Object.defineProperty(_Yr,"__esModule",{value:!0});var EAl={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};_Yr.MethodEnum=EAl});var Zxe=H((a$u,wis)=>{wis.exports=Bis()});var Mis=H(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});var Ris=Zxe();function yYr(e,t){let r=e||{},n=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(n[a]=r[a])}),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Sje={Read:1,Write:2,Any:3},Lxe={Up:1,Down:2,Timeouted:3},Nis=2*60*1e3;function EYr(e,t=Lxe.Up){return{...e,status:t,lastUpdate:Date.now()}}function Dis(e){return e.status===Lxe.Up||Date.now()-e.lastUpdate>Nis}function kis(e){return e.status===Lxe.Timeouted&&Date.now()-e.lastUpdate<=Nis}function SYr(e){return typeof e=="string"?{protocol:"https",url:e,accept:Sje.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Sje.Any}}function SAl(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(EYr(r))))).then(r=>{let n=r.filter(A=>Dis(A)),a=r.filter(A=>kis(A)),o=[...n,...a],l=o.length>0?o.map(A=>SYr(A)):t;return{getTimeout(A,f){return(a.length===0&&A===0?1:a.length+3+A)*f},statelessHosts:l}})}var vAl=({isTimedOut:e,status:t})=>!e&&~~t===0,BAl=e=>{let t=e.status;return e.isTimedOut||vAl(e)||~~(t/100)!==2&&~~(t/100)!==4},wAl=({status:e})=>~~(e/100)===2,TAl=(e,t)=>BAl(e)?t.onRetry(e):wAl(e)?t.onSuccess(e):t.onFail(e);function Tis(e,t,r,n){let a=[],o=Lis(r,n),l=Vis(e,n),A=r.method,f=r.method!==Ris.MethodEnum.Get?{}:{...r.data,...n.data},I={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...f,...n.queryParameters},C=0,b=(E,N)=>{let B=E.pop();if(B===void 0)throw Ois(bYr(a));let F={data:o,headers:l,method:A,url:Fis(B,r.path,I),connectTimeout:N(C,e.timeouts.connect),responseTimeout:N(C,n.timeout)},Q=ae=>{let ne={request:F,response:ae,host:B,triesLeft:E.length};return a.push(ne),ne},X={onSuccess:ae=>xis(ae),onRetry(ae){let ne=Q(ae);return ae.isTimedOut&&C++,Promise.all([e.logger.info("Retryable failure",vYr(ne)),e.hostsCache.set(B,EYr(B,ae.isTimedOut?Lxe.Timeouted:Lxe.Down))]).then(()=>b(E,N))},onFail(ae){throw Q(ae),Gis(ae,bYr(a))}};return e.requester.send(F).then(ae=>TAl(ae,X))};return SAl(e.hostsCache,t).then(E=>b([...E.statelessHosts].reverse(),E.getTimeout))}function RAl(e){let{hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,hosts:f,queryParameters:I,headers:C}=e,b={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,headers:C,queryParameters:I,hosts:f.map(E=>SYr(E)),read(E,N){let B=yYr(N,b.timeouts.read),F=()=>Tis(b,b.hosts.filter(ae=>(ae.accept&Sje.Read)!==0),E,B);if((B.cacheable!==void 0?B.cacheable:E.cacheable)!==!0)return F();let X={request:E,mappedRequestOptions:B,transporter:{queryParameters:b.queryParameters,headers:b.headers}};return b.responsesCache.get(X,()=>b.requestsCache.get(X,()=>b.requestsCache.set(X,F()).then(ae=>Promise.all([b.requestsCache.delete(X),ae]),ae=>Promise.all([b.requestsCache.delete(X),Promise.reject(ae)])).then(([ae,ne])=>ne)),{miss:ae=>b.responsesCache.set(X,ae)})},write(E,N){return Tis(b,b.hosts.filter(B=>(B.accept&Sje.Write)!==0),E,yYr(N,b.timeouts.write))}};return b}function NAl(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let n=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(n)===-1&&(t.value=`${t.value}${n}`),t}};return t}function xis(e){try{return JSON.parse(e.content)}catch(t){throw Wis(t.message,e)}}function Gis({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch{}return Pis(n,t,r)}function DAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Fis(e,t,r){let n=Zis(r),a=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return n.length&&(a+=`?${n}`),a}function Zis(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>DAl("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function Lis(e,t){if(e.method===Ris.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function Vis(e,t){let r={...e.headers,...t.headers},n={};return Object.keys(r).forEach(a=>{let o=r[a];n[a.toLowerCase()]=o}),n}function bYr(e){return e.map(t=>vYr(t))}function vYr(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function Pis(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Wis(e,t){return{name:"DeserializationError",message:e,response:t}}function Ois(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:e}}Kv.CallEnum=Sje;Kv.HostStatusEnum=Lxe;Kv.createApiError=Pis;Kv.createDeserializationError=Wis;Kv.createMappedRequestOptions=yYr;Kv.createRetryError=Ois;Kv.createStatefulHost=EYr;Kv.createStatelessHost=SYr;Kv.createTransporter=RAl;Kv.createUserAgent=NAl;Kv.deserializeFailure=Gis;Kv.deserializeSuccess=xis;Kv.isStatefulHostTimeouted=kis;Kv.isStatefulHostUp=Dis;Kv.serializeData=Lis;Kv.serializeHeaders=Vis;Kv.serializeQueryParameters=Zis;Kv.serializeUrl=Fis;Kv.stackFrameWithoutCredentials=vYr;Kv.stackTraceWithoutCredentials=bYr});var Vxe=H((l$u,His)=>{His.exports=Mis()});var Yis=H($le=>{"use strict";Object.defineProperty($le,"__esModule",{value:!0});var Pxe=Fxe(),kAl=Vxe(),vje=Zxe(),xAl=e=>{let t=e.region||"us",r=Pxe.createAuth(Pxe.AuthMode.WithinHeaders,e.appId,e.apiKey),n=kAl.createTransporter({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a=e.appId;return Pxe.addMethods({appId:a,transporter:n},e.methods)},GAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:"2/abtests",data:t},r),FAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Delete,path:Pxe.encode("2/abtests/%s",t)},r),ZAl=e=>(t,r)=>e.transporter.read({method:vje.MethodEnum.Get,path:Pxe.encode("2/abtests/%s",t)},r),LAl=e=>t=>e.transporter.read({method:vje.MethodEnum.Get,path:"2/abtests"},t),VAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:Pxe.encode("2/abtests/%s/stop",t)},r);$le.addABTest=GAl;$le.createAnalyticsClient=xAl;$le.deleteABTest=FAl;$le.getABTest=ZAl;$le.getABTests=LAl;$le.stopABTest=VAl});var Xis=H((g$u,Qis)=>{Qis.exports=Yis()});var Uis=H(Bje=>{"use strict";Object.defineProperty(Bje,"__esModule",{value:!0});var BYr=Fxe(),PAl=Vxe(),Jis=Zxe(),WAl=e=>{let t=e.region||"us",r=BYr.createAuth(BYr.AuthMode.WithinHeaders,e.appId,e.apiKey),n=PAl.createTransporter({hosts:[{url:`personalization.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}});return BYr.addMethods({appId:e.appId,transporter:n},e.methods)},OAl=e=>t=>e.transporter.read({method:Jis.MethodEnum.Get,path:"1/strategies/personalization"},t),MAl=e=>(t,r)=>e.transporter.write({method:Jis.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);Bje.createPersonalizationClient=WAl;Bje.getPersonalizationStrategy=OAl;Bje.setPersonalizationStrategy=MAl});var jis=H((d$u,Kis)=>{Kis.exports=Uis()});var uss=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});var mg=Fxe(),WV=Vxe(),ap=Zxe(),HAl=wt("crypto");function Fkt(e){let t=r=>e.request(r).then(n=>{if(e.batch!==void 0&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})});return t({})}var YAl=e=>{let t=e.appId,r=mg.createAuth(e.authMode!==void 0?e.authMode:mg.AuthMode.WithinHeaders,t,e.apiKey),n=WV.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:WV.CallEnum.Read},{url:`${t}.algolia.net`,accept:WV.CallEnum.Write}].concat(mg.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return mg.addMethods(a,e.methods)};function zis(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function qis(){return{name:"ObjectNotFoundError",message:"Object not found."}}function $is(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var QAl=e=>(t,r)=>{let{queryParameters:n,...a}=r||{},o={acl:t,...n!==void 0?{queryParameters:n}:{}},l=(A,f)=>mg.createRetryablePromise(I=>wje(e)(A.key,f).catch(C=>{if(C.status!==404)throw C;return I()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/keys",data:o},a),l)},XAl=e=>(t,r,n)=>{let a=WV.createMappedRequestOptions(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},JAl=e=>(t,r,n)=>e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n),UAl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(n,a)=>Wxe(e)(n.taskID,a)),Zkt=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),a)},KAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Rules]}),jAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Settings]}),zAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Synonyms]}),qAl=e=>(t,r)=>t.method===ap.MethodEnum.Get?e.transporter.read(t,r):e.transporter.write(t,r),$Al=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).then(l).catch(A=>{if(A.status!==404)throw A}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/keys/%s",t)},r),n)},edl=e=>(t,r,n)=>{let a=r.map(o=>({action:"deleteEntry",body:{objectID:o}}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},tdl=()=>(e,t)=>{let r=WV.serializeQueryParameters(t),n=HAl.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(n+r).toString("base64")},wje=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/keys/%s",t)},r),ess=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/task/%s",t.toString())},r),rdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"/1/dictionaries/*/settings"},t),ndl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/logs"},t),idl=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,n=t.match(r);if(n===null)throw $is();return parseInt(n[1],10)-Math.round(new Date().getTime()/1e3)},sdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/top"},t),odl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/clusters/mapping/%s",t)},r),adl=e=>t=>{let{retrieveMappings:r,...n}=t||{};return r===!0&&(n.getClusters=!0),e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/pending"},n)},Tje=e=>(t,r={})=>{let n={transporter:e.transporter,appId:e.appId,indexName:t};return mg.addMethods(n,r.methods)},cdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/keys"},t),ldl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters"},t),udl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/indexes"},t),gdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping"},t),Adl=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),a)},ddl=e=>(t,r)=>{let n=(a,o)=>Promise.all(Object.keys(a.taskID).map(l=>Tje(e)(l,{methods:{waitTask:CT}}).waitTask(a.taskID[l],o)));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),n)},pdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),fdl=e=>(t,r)=>{let n=t.map(a=>({...a,params:WV.serializeQueryParameters(a.params||{})}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Idl=e=>(t,r)=>Promise.all(t.map(n=>{let{facetName:a,facetQuery:o,...l}=n.params;return Tje(e)(n.indexName,{methods:{searchForFacetValues:ass}}).searchForFacetValues(a,o,{...r,...l})})),hdl=e=>(t,r)=>{let n=WV.createMappedRequestOptions(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Delete,path:"1/clusters/mapping"},n)},mdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},Cdl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).catch(A=>{if(A.status!==404)throw A;return l()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/keys/%s/restore",t)},r),n)},_dl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},ydl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n),bdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Edl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:t},r),(n,a)=>Wxe(e)(n.taskID,a)),Sdl=e=>(t,r)=>{let n=Object.assign({},r),{queryParameters:a,...o}=r||{},l=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],f=C=>Object.keys(n).filter(b=>A.indexOf(b)!==-1).every(b=>{if(Array.isArray(C[b])&&Array.isArray(n[b])){let E=C[b];return E.length===n[b].length&&E.every((N,B)=>N===n[b][B])}else return C[b]===n[b]}),I=(C,b)=>mg.createRetryablePromise(E=>wje(e)(t,b).then(N=>f(N)?Promise.resolve():E()));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/keys/%s",t),data:l},o),I)},Wxe=e=>(t,r)=>mg.createRetryablePromise(n=>ess(e)(t,r).then(a=>a.status!=="published"?n():void 0)),tss=e=>(t,r)=>{let n=(a,o)=>CT(e)(a.taskID,o);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),n)},vdl=e=>t=>Fkt({shouldStop:r=>r.cursor===void 0,...t,request:r=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/browse",e.indexName),data:r},t)}),Bdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},wdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Lkt=e=>(t,r,n)=>{let{batchSize:a,...o}=n||{},l={taskIDs:[],objectIDs:[]},A=(f=0)=>{let I=[],C;for(C=f;C({action:r,body:b})),o).then(b=>(l.objectIDs=l.objectIDs.concat(b.objectIDs),l.taskIDs.push(b.taskID),C++,A(C)))};return mg.createWaitablePromise(A(),(f,I)=>Promise.all(f.taskIDs.map(C=>CT(e)(C,I))))},Tdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/clear",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Rdl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ndl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ddl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(n,a)=>CT(e)(n.taskID,a)),kdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),xdl=e=>(t,r)=>mg.createWaitablePromise(rss(e)([t],r).then(n=>({taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),rss=e=>(t,r)=>{let n=t.map(a=>({objectID:a}));return Lkt(e)(n,w_e.DeleteObject,r)},Gdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Fdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Zdl=e=>t=>nss(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Ldl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Vdl=e=>(t,r)=>{let{query:n,paginate:a,...o}=r||{},l=0,A=()=>oss(e)(n||"",{...o,page:l}).then(f=>{for(let[I,C]of Object.entries(f.hits))if(t(C))return{object:C,position:parseInt(I,10),page:l};if(l++,a===!1||l>=f.nbPages)throw qis();return A()});return A()},Pdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/%s",e.indexName,t)},r),Wdl=()=>(e,t)=>{for(let[r,n]of Object.entries(e.hits))if(n.objectID===t)return parseInt(r,10);return-1},Odl=e=>(t,r)=>{let{attributesToRetrieve:n,...a}=r||{},o=t.map(l=>({indexName:e.indexName,objectID:l,...n?{attributesToRetrieve:n}:{}}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:o}},a)},Mdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),nss=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),Hdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),iss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),Ydl=e=>(t,r)=>mg.createWaitablePromise(sss(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),sss=e=>(t,r)=>{let{createIfNotExists:n,...a}=r||{},o=n?w_e.PartialUpdateObject:w_e.PartialUpdateObjectNoCreate;return Lkt(e)(t,o,a)},Qdl=e=>(t,r)=>{let{safe:n,autoGenerateObjectIDIfNotExist:a,batchSize:o,...l}=r||{},A=(B,F,Q,X)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",B),data:{operation:Q,destination:F}},X),(ae,ne)=>CT(e)(ae.taskID,ne)),f=Math.random().toString(36).substring(7),I=`${e.indexName}_tmp_${f}`,C=wYr({appId:e.appId,transporter:e.transporter,indexName:I}),b=[],E=A(e.indexName,I,"copy",{...l,scope:["settings","synonyms","rules"]});b.push(E);let N=(n?E.wait(l):E).then(()=>{let B=C(t,{...l,autoGenerateObjectIDIfNotExist:a,batchSize:o});return b.push(B),n?B.wait(l):B}).then(()=>{let B=A(I,e.indexName,"move",l);return b.push(B),n?B.wait(l):B}).then(()=>Promise.all(b)).then(([B,F,Q])=>({objectIDs:F.objectIDs,taskIDs:[B.taskID,...F.taskIDs,Q.taskID]}));return mg.createWaitablePromise(N,(B,F)=>Promise.all(b.map(Q=>Q.wait(F))))},Xdl=e=>(t,r)=>TYr(e)(t,{...r,clearExistingRules:!0}),Jdl=e=>(t,r)=>RYr(e)(t,{...r,clearExistingSynonyms:!0}),Udl=e=>(t,r)=>mg.createWaitablePromise(wYr(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),wYr=e=>(t,r)=>{let{autoGenerateObjectIDIfNotExist:n,...a}=r||{},o=n?w_e.AddObject:w_e.UpdateObject;if(o===w_e.UpdateObject){for(let l of t)if(l.objectID===void 0)return mg.createWaitablePromise(Promise.reject(zis()))}return Lkt(e)(t,o,a)},Kdl=e=>(t,r)=>TYr(e)([t],r),TYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingRules:a,...o}=r||{},l=WV.createMappedRequestOptions(o);return n&&(l.queryParameters.forwardToReplicas=1),a&&(l.queryParameters.clearExistingRules=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/batch",e.indexName),data:t},l),(A,f)=>CT(e)(A.taskID,f))},jdl=e=>(t,r)=>RYr(e)([t],r),RYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingSynonyms:a,replaceExistingSynonyms:o,...l}=r||{},A=WV.createMappedRequestOptions(l);return n&&(A.queryParameters.forwardToReplicas=1),(o||a)&&(A.queryParameters.replaceExistingSynonyms=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},A),(f,I)=>CT(e)(f.taskID,I))},oss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ass=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),css=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),lss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),zdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/indexes/%s/settings",e.indexName),data:t},o),(l,A)=>CT(e)(l.taskID,A))},CT=e=>(t,r)=>mg.createRetryablePromise(n=>iss(e)(t,r).then(a=>a.status!=="published"?n():void 0)),qdl={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},w_e={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Vkt={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},$dl={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},epl={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};cu.ApiKeyACLEnum=qdl;cu.BatchActionEnum=w_e;cu.ScopeEnum=Vkt;cu.StrategyEnum=$dl;cu.SynonymEnum=epl;cu.addApiKey=QAl;cu.assignUserID=XAl;cu.assignUserIDs=JAl;cu.batch=tss;cu.browseObjects=vdl;cu.browseRules=Bdl;cu.browseSynonyms=wdl;cu.chunkedBatch=Lkt;cu.clearDictionaryEntries=UAl;cu.clearObjects=Tdl;cu.clearRules=Rdl;cu.clearSynonyms=Ndl;cu.copyIndex=Zkt;cu.copyRules=KAl;cu.copySettings=jAl;cu.copySynonyms=zAl;cu.createBrowsablePromise=Fkt;cu.createMissingObjectIDError=zis;cu.createObjectNotFoundError=qis;cu.createSearchClient=YAl;cu.createValidUntilNotFoundError=$is;cu.customRequest=qAl;cu.deleteApiKey=$Al;cu.deleteBy=Ddl;cu.deleteDictionaryEntries=edl;cu.deleteIndex=kdl;cu.deleteObject=xdl;cu.deleteObjects=rss;cu.deleteRule=Gdl;cu.deleteSynonym=Fdl;cu.exists=Zdl;cu.findAnswers=Ldl;cu.findObject=Vdl;cu.generateSecuredApiKey=tdl;cu.getApiKey=wje;cu.getAppTask=ess;cu.getDictionarySettings=rdl;cu.getLogs=ndl;cu.getObject=Pdl;cu.getObjectPosition=Wdl;cu.getObjects=Odl;cu.getRule=Mdl;cu.getSecuredApiKeyRemainingValidity=idl;cu.getSettings=nss;cu.getSynonym=Hdl;cu.getTask=iss;cu.getTopUserIDs=sdl;cu.getUserID=odl;cu.hasPendingMappings=adl;cu.initIndex=Tje;cu.listApiKeys=cdl;cu.listClusters=ldl;cu.listIndices=udl;cu.listUserIDs=gdl;cu.moveIndex=Adl;cu.multipleBatch=ddl;cu.multipleGetObjects=pdl;cu.multipleQueries=fdl;cu.multipleSearchForFacetValues=Idl;cu.partialUpdateObject=Ydl;cu.partialUpdateObjects=sss;cu.removeUserID=hdl;cu.replaceAllObjects=Qdl;cu.replaceAllRules=Xdl;cu.replaceAllSynonyms=Jdl;cu.replaceDictionaryEntries=mdl;cu.restoreApiKey=Cdl;cu.saveDictionaryEntries=_dl;cu.saveObject=Udl;cu.saveObjects=wYr;cu.saveRule=Kdl;cu.saveRules=TYr;cu.saveSynonym=jdl;cu.saveSynonyms=RYr;cu.search=oss;cu.searchDictionaryEntries=ydl;cu.searchForFacetValues=ass;cu.searchRules=css;cu.searchSynonyms=lss;cu.searchUserIDs=bdl;cu.setDictionarySettings=Edl;cu.setSettings=zdl;cu.updateApiKey=Sdl;cu.waitAppTask=Wxe;cu.waitTask=CT});var Ass=H((f$u,gss)=>{gss.exports=uss()});var dss=H(Pkt=>{"use strict";Object.defineProperty(Pkt,"__esModule",{value:!0});function tpl(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var rpl={Debug:1,Info:2,Error:3};Pkt.LogLevelEnum=rpl;Pkt.createNullLogger=tpl});var NYr=H((h$u,pss)=>{pss.exports=dss()});var mss=H(DYr=>{"use strict";Object.defineProperty(DYr,"__esModule",{value:!0});var fss=wt("http"),Iss=wt("https"),npl=wt("url"),hss={keepAlive:!0},ipl=new fss.Agent(hss),spl=new Iss.Agent(hss);function opl({agent:e,httpAgent:t,httpsAgent:r,requesterOptions:n={}}={}){let a=t||e||ipl,o=r||e||spl;return{send(l){return new Promise(A=>{let f=npl.parse(l.url),I=f.query===null?f.pathname:`${f.pathname}?${f.query}`,C={...n,agent:f.protocol==="https:"?o:a,hostname:f.hostname,path:I,method:l.method,headers:{...n&&n.headers?n.headers:{},...l.headers},...f.port!==void 0?{port:f.port||""}:{}},b=(f.protocol==="https:"?Iss:fss).request(C,F=>{let Q=[];F.on("data",X=>{Q=Q.concat(X)}),F.on("end",()=>{clearTimeout(N),clearTimeout(B),A({status:F.statusCode||0,content:Buffer.concat(Q).toString(),isTimedOut:!1})})}),E=(F,Q)=>setTimeout(()=>{b.abort(),A({status:0,content:Q,isTimedOut:!0})},F*1e3),N=E(l.connectTimeout,"Connection timeout"),B;b.on("error",F=>{clearTimeout(N),clearTimeout(B),A({status:0,content:F.message,isTimedOut:!1})}),b.once("response",()=>{clearTimeout(N),B=E(l.responseTimeout,"Socket timeout")}),l.data!==void 0&&b.write(l.data),b.end()})},destroy(){return a.destroy(),o.destroy(),Promise.resolve()}}}DYr.createNodeHttpRequester=opl});var kYr=H((C$u,Css)=>{Css.exports=mss()});var Tss=H((_$u,wss)=>{"use strict";var _ss=IYr(),apl=mYr(),eue=Fxe(),cpl=NYr(),lpl=kYr(),Wkt=Vxe(),Okt=Zxe(),upl=e=>{let t=e.appId,r=eue.createAuth(e.authMode!==void 0?e.authMode:eue.AuthMode.WithinHeaders,t,e.apiKey),n=Wkt.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:Wkt.CallEnum.Read},{url:`${t}.algolia.net`,accept:Wkt.CallEnum.Write}].concat(eue.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return eue.addMethods(a,e.methods)},Rje=e=>(t,r)=>{let n=t.map(a=>({...a,threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},yss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,fallbackParameters:{},model:"bought-together"})),r),bss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"related-products"})),r),Ess=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-facets",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},Sss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-items",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},vss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"looking-similar"})),r),Bss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"recommended-for-you",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)};function Ste(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:lpl.createNodeHttpRequester(),logger:cpl.createNullLogger(),responsesCache:_ss.createNullCache(),requestsCache:_ss.createNullCache(),hostsCache:apl.createInMemoryCache(),userAgent:Wkt.createUserAgent(eue.version).add({segment:"Recommend",version:eue.version}).add({segment:"Node.js",version:process.versions.node})};return upl({...n,...r,methods:{destroy:eue.destroy,getFrequentlyBoughtTogether:yss,getRecommendations:Rje,getRelatedProducts:bss,getTrendingFacets:Ess,getTrendingItems:Sss,getLookingSimilar:vss,getRecommendedForYou:Bss}})}Ste.version=eue.version;Ste.getFrequentlyBoughtTogether=yss;Ste.getRecommendations=Rje;Ste.getRelatedProducts=bss;Ste.getTrendingFacets=Ess;Ste.getTrendingItems=Sss;Ste.getLookingSimilar=vss;Ste.getRecommendedForYou=Bss;wss.exports=Ste});var Nss=H((y$u,xYr)=>{var Rss=Tss();xYr.exports=Rss;xYr.exports.default=Rss});var Gss=H((b$u,xss)=>{"use strict";var Dss=IYr(),gpl=mYr(),Oxe=Xis(),FYr=Fxe(),GYr=jis(),ju=Ass(),Apl=NYr(),T_e=Nss(),dpl=kYr(),ppl=Vxe();function kss(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:dpl.createNodeHttpRequester(),logger:Apl.createNullLogger(),responsesCache:Dss.createNullCache(),requestsCache:Dss.createNullCache(),hostsCache:gpl.createInMemoryCache(),userAgent:ppl.createUserAgent(FYr.version).add({segment:"Node.js",version:process.versions.node})},a={...n,...r},o=()=>l=>GYr.createPersonalizationClient({...n,...l,methods:{getPersonalizationStrategy:GYr.getPersonalizationStrategy,setPersonalizationStrategy:GYr.setPersonalizationStrategy}});return ju.createSearchClient({...a,methods:{search:ju.multipleQueries,searchForFacetValues:ju.multipleSearchForFacetValues,multipleBatch:ju.multipleBatch,multipleGetObjects:ju.multipleGetObjects,multipleQueries:ju.multipleQueries,copyIndex:ju.copyIndex,copySettings:ju.copySettings,copyRules:ju.copyRules,copySynonyms:ju.copySynonyms,moveIndex:ju.moveIndex,listIndices:ju.listIndices,getLogs:ju.getLogs,listClusters:ju.listClusters,multipleSearchForFacetValues:ju.multipleSearchForFacetValues,getApiKey:ju.getApiKey,addApiKey:ju.addApiKey,listApiKeys:ju.listApiKeys,updateApiKey:ju.updateApiKey,deleteApiKey:ju.deleteApiKey,restoreApiKey:ju.restoreApiKey,assignUserID:ju.assignUserID,assignUserIDs:ju.assignUserIDs,getUserID:ju.getUserID,searchUserIDs:ju.searchUserIDs,listUserIDs:ju.listUserIDs,getTopUserIDs:ju.getTopUserIDs,removeUserID:ju.removeUserID,hasPendingMappings:ju.hasPendingMappings,generateSecuredApiKey:ju.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:ju.getSecuredApiKeyRemainingValidity,destroy:FYr.destroy,clearDictionaryEntries:ju.clearDictionaryEntries,deleteDictionaryEntries:ju.deleteDictionaryEntries,getDictionarySettings:ju.getDictionarySettings,getAppTask:ju.getAppTask,replaceDictionaryEntries:ju.replaceDictionaryEntries,saveDictionaryEntries:ju.saveDictionaryEntries,searchDictionaryEntries:ju.searchDictionaryEntries,setDictionarySettings:ju.setDictionarySettings,waitAppTask:ju.waitAppTask,customRequest:ju.customRequest,initIndex:l=>A=>ju.initIndex(l)(A,{methods:{batch:ju.batch,delete:ju.deleteIndex,findAnswers:ju.findAnswers,getObject:ju.getObject,getObjects:ju.getObjects,saveObject:ju.saveObject,saveObjects:ju.saveObjects,search:ju.search,searchForFacetValues:ju.searchForFacetValues,waitTask:ju.waitTask,setSettings:ju.setSettings,getSettings:ju.getSettings,partialUpdateObject:ju.partialUpdateObject,partialUpdateObjects:ju.partialUpdateObjects,deleteObject:ju.deleteObject,deleteObjects:ju.deleteObjects,deleteBy:ju.deleteBy,clearObjects:ju.clearObjects,browseObjects:ju.browseObjects,getObjectPosition:ju.getObjectPosition,findObject:ju.findObject,exists:ju.exists,saveSynonym:ju.saveSynonym,saveSynonyms:ju.saveSynonyms,getSynonym:ju.getSynonym,searchSynonyms:ju.searchSynonyms,browseSynonyms:ju.browseSynonyms,deleteSynonym:ju.deleteSynonym,clearSynonyms:ju.clearSynonyms,replaceAllObjects:ju.replaceAllObjects,replaceAllSynonyms:ju.replaceAllSynonyms,searchRules:ju.searchRules,getRule:ju.getRule,deleteRule:ju.deleteRule,saveRule:ju.saveRule,saveRules:ju.saveRules,replaceAllRules:ju.replaceAllRules,browseRules:ju.browseRules,clearRules:ju.clearRules}}),initAnalytics:()=>l=>Oxe.createAnalyticsClient({...n,...l,methods:{addABTest:Oxe.addABTest,getABTest:Oxe.getABTest,getABTests:Oxe.getABTests,stopABTest:Oxe.stopABTest,deleteABTest:Oxe.deleteABTest}}),initPersonalization:o,initRecommendation:()=>l=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),o()(l)),getRecommendations:T_e.getRecommendations,getFrequentlyBoughtTogether:T_e.getFrequentlyBoughtTogether,getLookingSimilar:T_e.getLookingSimilar,getRecommendedForYou:T_e.getRecommendedForYou,getRelatedProducts:T_e.getRelatedProducts,getTrendingFacets:T_e.getTrendingFacets,getTrendingItems:T_e.getTrendingItems}})}kss.version=FYr.version;xss.exports=kss});var LYr=H((E$u,ZYr)=>{var Fss=Gss();ZYr.exports=Fss;ZYr.exports.default=Fss});var Zss=H(Mkt=>{"use strict";Object.defineProperty(Mkt,"__esModule",{value:!0});Mkt.search=void 0;var fpl=(Pa(),vi(Va)),Ipl=fpl.__importDefault(LYr()),VYr={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},hpl=(0,Ipl.default)(VYr.appId,VYr.apiKey).initIndex(VYr.indexName),mpl=async(e,t=0)=>await hpl.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10});Mkt.search=mpl});var WYr=H(Hkt=>{"use strict";Object.defineProperty(Hkt,"__esModule",{value:!0});Hkt.useMinistore=Cpl;Hkt.useMinistoreSetAll=_pl;var PYr=sC(),Lss=yGr();function Cpl(e,t){let r=(0,PYr.useContext)(Lss.MinistoreContext);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof e>"u")return r.getAll();let n=(0,PYr.useCallback)(o=>{r.set(e,o)},[e,r.set]),a=r.get(e);return typeof a>"u"&&(a=t),[a,n]}function _pl(){let e=(0,PYr.useContext)(Lss.MinistoreContext);if(e===null)throw new Error("Expected this hook to run with a ministore context attached");return e.setAll}});var Oss=H(Nje=>{"use strict";Object.defineProperty(Nje,"__esModule",{value:!0});Nje.UncontrolledTextInput=void 0;var Pss=sC(),OYr=sC(),Vss=lH(),R_e=VK(),Wss=({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A})=>{let[{cursorOffset:f,cursorWidth:I},C]=OYr.useState({cursorOffset:(e||"").length,cursorWidth:0});OYr.useEffect(()=>{C(F=>{if(!r||!o)return F;let Q=e||"";return F.cursorOffset>Q.length-1?{cursorOffset:Q.length,cursorWidth:0}:F})},[e,r,o]);let b=a?I:0,E=n?n.repeat(e.length):e,N=E,B=t?R_e.grey(t):void 0;if(o&&r){B=t.length>0?R_e.inverse(t[0])+R_e.grey(t.slice(1)):R_e.inverse(" "),N=E.length>0?"":R_e.inverse(" ");let F=0;for(let Q of E)F>=f-b&&F<=f?N+=R_e.inverse(Q):N+=Q,F++;E.length>0&&f===E.length&&(N+=R_e.inverse(" "))}return Vss.useInput((F,Q)=>{if(Q.upArrow||Q.downArrow||Q.ctrl&&F==="c"||Q.tab||Q.shift&&Q.tab)return;if(Q.return){A&&A(e);return}let X=f,ae=e,ne=0;Q.leftArrow?o&&X--:Q.rightArrow?o&&X++:Q.backspace||Q.delete?f>0&&(ae=e.slice(0,f-1)+e.slice(f,e.length),X--):(ae=e.slice(0,f)+F+e.slice(f,e.length),X+=F.length,F.length>1&&(ne=F.length)),f<0&&(X=0),f>e.length&&(X=e.length),C({cursorOffset:X,cursorWidth:ne}),ae!==e&&l(ae)},{isActive:r}),Pss.createElement(Vss.Text,null,t?E.length>0?N:B:N)};Nje.default=Wss;Nje.UncontrolledTextInput=({initialValue:e="",...t})=>{let[r,n]=OYr.useState(e);return Pss.createElement(Wss,Object.assign({},t,{value:r,onChange:n}))}});var Hss=H(MYr=>{"use strict";Object.defineProperty(MYr,"__esModule",{value:!0});var vte=(Pa(),vi(Va)),ypl=el(),Dje=Bn(),bpl=vte.__importStar(A1t()),Epl=($c(),vi(rg)),Mss=Zss(),kje=["regular","dev","peer"],xje=class extends ypl.BaseCommand{async execute(){bpl.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vte.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vte.__importStar(N1t())),{useKeypress:n}=await Promise.resolve().then(()=>vte.__importStar(cDe())),{useMinistore:a}=await Promise.resolve().then(()=>vte.__importStar(WYr())),{renderForm:o}=await Promise.resolve().then(()=>vte.__importStar(D1t())),{default:l}=await Promise.resolve().then(()=>vte.__importStar(Oss())),{Box:A,Text:f}=await Promise.resolve().then(()=>vte.__importStar(lH())),{default:I,useEffect:C,useState:b}=await Promise.resolve().then(()=>vte.__importStar(sC())),E=await Dje.Configuration.find(this.context.cwd,this.context.plugins),N=()=>I.createElement(A,{flexDirection:"row"},I.createElement(A,{flexDirection:"column",width:48},I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},""),"/",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to move between packages.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to select a package.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," again to change the target."))),I.createElement(A,{flexDirection:"column"},I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to abort.")))),B=()=>I.createElement(I.Fragment,null,I.createElement(A,{width:15},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Owner")),I.createElement(A,{width:11},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Version")),I.createElement(A,{width:10},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Downloads"))),F=()=>I.createElement(A,{width:17},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Target")),Q=({hit:be,active:Se})=>{let[De,k]=a(be.name,null);n({active:Se},(Me,je)=>{if(je.name!=="space")return;if(!De){k(kje[0]);return}let St=kje.indexOf(De)+1;St===kje.length?k(null):k(kje[St])},[De,k]);let et=Dje.structUtils.parseIdent(be.name),ct=Dje.structUtils.prettyIdent(E,et);return I.createElement(A,null,I.createElement(A,{width:45},I.createElement(f,{bold:!0,wrap:"wrap"},ct)),I.createElement(A,{width:14,marginLeft:1},I.createElement(f,{bold:!0,wrap:"truncate"},be.owner.name)),I.createElement(A,{width:10,marginLeft:1},I.createElement(f,{italic:!0,wrap:"truncate"},be.version)),I.createElement(A,{width:16,marginLeft:1},I.createElement(f,null,be.humanDownloadsLast30Days)))},X=({name:be,active:Se})=>{let[De]=a(be,null),k=Dje.structUtils.parseIdent(be);return I.createElement(A,null,I.createElement(A,{width:47},I.createElement(f,{bold:!0}," - ",Dje.structUtils.prettyIdent(E,k))),kje.map(et=>I.createElement(A,{key:et,width:14,marginLeft:1},I.createElement(f,null," ",I.createElement(t,{active:De===et})," ",I.createElement(f,{bold:!0},et)))))},ae=()=>I.createElement(A,{marginTop:1},I.createElement(f,null,"Powered by Algolia.")),ce=await o(({useSubmit:be})=>{let Se=a();be(Se);let De=Array.from(Se.keys()).filter(Nr=>Se.get(Nr)!==null),[k,et]=b(""),[ct,Me]=b(0),[je,St]=b([]),At=Nr=>{Nr.match(/\t| /)||et(Nr)},Yt=async()=>{Me(0);let Nr=await(0,Mss.search)(k);Nr.query===k&&St(Nr.hits)},Tr=async()=>{let Nr=await(0,Mss.search)(k,ct+1);Nr.query===k&&Nr.page-1===ct&&(Me(Nr.page),St([...je,...Nr.hits]))};return C(()=>{k?Yt():St([])},[k]),I.createElement(A,{flexDirection:"column"},I.createElement(N,null),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(f,{bold:!0},"Search: "),I.createElement(A,{width:41},I.createElement(l,{value:k,onChange:At,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),I.createElement(B,null)),je.length?I.createElement(r,{radius:2,loop:!1,children:je.map(Nr=>I.createElement(Q,{key:Nr.name,hit:Nr,active:!1})),willReachEnd:Tr}):I.createElement(f,{color:"gray"},"Start typing..."),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(A,{width:49},I.createElement(f,{bold:!0},"Selected:")),I.createElement(F,null)),De.length?De.map(Nr=>I.createElement(X,{key:Nr,name:Nr,active:!1})):I.createElement(f,{color:"gray"},"No selected packages..."),I.createElement(ae,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;let fe=Array.from(ce.keys()).filter(be=>ce.get(be)==="regular"),ue=Array.from(ce.keys()).filter(be=>ce.get(be)==="dev"),de=Array.from(ce.keys()).filter(be=>ce.get(be)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ue.length&&await this.cli.run(["add","--dev",...ue]),de&&await this.cli.run(["add","--peer",...de]),0}};xje.paths=[["search"]];xje.usage=Epl.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` +`)}};bje.InvalidInputOptions=vkt;function $gl(e){return(t,r,n)=>{r=(0,qns.deepCopy)(r);let a=n?n.interactive:!0;return t.schema&&t.schemaJson?(0,zns.from)(e.compile(t.schemaJson)).pipe((0,oYr.mergeMap)(o=>o(r,{withPrompts:a})),(0,oYr.first)(),(0,oYr.map)(o=>{if(!o.success)throw new vkt(r,o.errors||[]);return r})):(0,zns.of)(r)}}});var $ns=H(wkt=>{"use strict";Object.defineProperty(wkt,"__esModule",{value:!0});wkt.NodeWorkflow=void 0;var Bkt=Z2(),eAl=JDt(),tAl=Dxe(),cYr=Xns(),rAl=Ekt(),nAl=aYr(),lYr=class extends tAl.workflow.BaseWorkflow{constructor(t,r){let n,a;typeof t=="string"?(a=(0,Bkt.normalize)(t),n=new Bkt.virtualFs.ScopedHost(new eAl.NodeJsSyncHost,a)):(n=t,a=r.root);let o=r.engineHostCreator?.(r)||new rAl.NodeModulesEngineHost(r.resolvePaths);if(super({host:n,engineHost:o,force:r.force,dryRun:r.dryRun,registry:r.registry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.NodePackage,{allowPackageManagerOverride:!0,packageManager:r.packageManager,force:r.packageManagerForce,rootDirectory:a&&(0,Bkt.getSystemPath)(a),registry:r.packageRegistry}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RepositoryInitializer,{rootDirectory:a&&(0,Bkt.getSystemPath)(a)}),o.registerTaskExecutor(cYr.BuiltinTaskExecutor.RunSchematic),r.optionTransforms)for(let l of r.optionTransforms)o.registerOptionsTransform(l);r.schemaValidation&&o.registerOptionsTransform((0,nAl.validateOptionsWithSchema)(this.registry)),this._context=[]}get engine(){return this._engine}get engineHost(){return this._engineHost}};wkt.NodeWorkflow=lYr});var eis=H(o6=>{"use strict";var iAl=o6&&o6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),sAl=o6&&o6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),oAl=o6&&o6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aoAl(wt(n))).then(n=>(n.default?.default||n.default)())).pipe((0,gYr.catchError)(()=>(0,gYr.throwError)(()=>new aAl.UnregisteredTaskException(t))))}catch{}return super.createTaskExecutor(t)}};o6.FileSystemEngineHost=AYr});var tis=H(Nkt=>{"use strict";Object.defineProperty(Nkt,"__esModule",{value:!0});Nkt.NodeModulesTestEngineHost=void 0;var lAl=Ekt(),dYr=class extends lAl.NodeModulesEngineHost{#e=new Map;#t=[];get tasks(){return this.#t}clearTasks(){this.#t=[]}registerCollection(t,r){this.#e.set(t,r)}transformContext(t){let r=t.addTask.bind(t);return t.addTask=(n,a)=>(this.#t.push(n.toConfiguration()),r(n,a)),t}_resolveCollectionPath(t,r){return this.#e.get(t)??super._resolveCollectionPath(t,r)}};Nkt.NodeModulesTestEngineHost=dYr});var nis=H(mT=>{"use strict";var uAl=mT&&mT.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),Dkt=mT&&mT.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&uAl(t,e,r)};Object.defineProperty(mT,"__esModule",{value:!0});mT.validateOptionsWithSchema=mT.NodeModulesTestEngineHost=mT.NodePackageDoesNotSupportSchematics=mT.NodeModulesEngineHost=mT.FileSystemEngineHost=void 0;Dkt(dns(),mT);Dkt(akt(),mT);Dkt(gkt(),mT);Dkt($ns(),mT);var gAl=eis();Object.defineProperty(mT,"FileSystemEngineHost",{enumerable:!0,get:function(){return gAl.FileSystemEngineHost}});var ris=Ekt();Object.defineProperty(mT,"NodeModulesEngineHost",{enumerable:!0,get:function(){return ris.NodeModulesEngineHost}});Object.defineProperty(mT,"NodePackageDoesNotSupportSchematics",{enumerable:!0,get:function(){return ris.NodePackageDoesNotSupportSchematics}});var AAl=tis();Object.defineProperty(mT,"NodeModulesTestEngineHost",{enumerable:!0,get:function(){return AAl.NodeModulesTestEngineHost}});var dAl=aYr();Object.defineProperty(mT,"validateOptionsWithSchema",{enumerable:!0,get:function(){return dAl.validateOptionsWithSchema}})});var Cis=H(Gkt=>{"use strict";Object.defineProperty(Gkt,"__esModule",{value:!0});function Eje(e){let t=[...e.caches],r=t.shift();return r===void 0?mis():{get(n,a,o={miss:()=>Promise.resolve()}){return r.get(n,a,o).catch(()=>Eje({caches:t}).get(n,a,o))},set(n,a){return r.set(n,a).catch(()=>Eje({caches:t}).set(n,a))},delete(n){return r.delete(n).catch(()=>Eje({caches:t}).delete(n))},clear(){return r.clear().catch(()=>Eje({caches:t}).clear())}}}function mis(){return{get(e,t,r={miss:()=>Promise.resolve()}){return t().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(e,t){return Promise.resolve(t)},delete(e){return Promise.resolve()},clear(){return Promise.resolve()}}}Gkt.createFallbackableCache=Eje;Gkt.createNullCache=mis});var IYr=H((r$u,_is)=>{_is.exports=Cis()});var yis=H(hYr=>{"use strict";Object.defineProperty(hYr,"__esModule",{value:!0});function IAl(e={serializable:!0}){let t={};return{get(r,n,a={miss:()=>Promise.resolve()}){let o=JSON.stringify(r);if(o in t)return Promise.resolve(e.serializable?JSON.parse(t[o]):t[o]);let l=n(),A=a&&a.miss||(()=>Promise.resolve());return l.then(f=>A(f)).then(()=>l)},set(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete(r){return delete t[JSON.stringify(r)],Promise.resolve()},clear(){return t={},Promise.resolve()}}}hYr.createInMemoryCache=IAl});var mYr=H((i$u,bis)=>{bis.exports=yis()});var Sis=H(V4=>{"use strict";Object.defineProperty(V4,"__esModule",{value:!0});function hAl(e,t,r){let n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers(){return e===CYr.WithinHeaders?n:{}},queryParameters(){return e===CYr.WithinQueryParameters?n:{}}}}function mAl(e){let t=0,r=()=>(t++,new Promise(n=>{setTimeout(()=>{n(e(r))},Math.min(100*t,1e3))}));return e(r)}function Eis(e,t=(r,n)=>Promise.resolve()){return Object.assign(e,{wait(r){return Eis(e.then(n=>Promise.all([t(n,r),n])).then(n=>n[1]))}})}function CAl(e){let t=e.length-1;for(t;t>0;t--){let r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function _Al(e,t){return t&&Object.keys(t).forEach(r=>{e[r]=t[r](e)}),e}function yAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}var bAl="4.24.0",EAl=e=>()=>e.transporter.requester.destroy(),CYr={WithinQueryParameters:0,WithinHeaders:1};V4.AuthMode=CYr;V4.addMethods=_Al;V4.createAuth=hAl;V4.createRetryablePromise=mAl;V4.createWaitablePromise=Eis;V4.destroy=EAl;V4.encode=yAl;V4.shuffle=CAl;V4.version=bAl});var Fxe=H((o$u,vis)=>{vis.exports=Sis()});var Bis=H(_Yr=>{"use strict";Object.defineProperty(_Yr,"__esModule",{value:!0});var SAl={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};_Yr.MethodEnum=SAl});var Zxe=H((c$u,wis)=>{wis.exports=Bis()});var Mis=H(Kv=>{"use strict";Object.defineProperty(Kv,"__esModule",{value:!0});var Ris=Zxe();function yYr(e,t){let r=e||{},n=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(n[a]=r[a])}),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var Sje={Read:1,Write:2,Any:3},Lxe={Up:1,Down:2,Timeouted:3},Nis=2*60*1e3;function EYr(e,t=Lxe.Up){return{...e,status:t,lastUpdate:Date.now()}}function Dis(e){return e.status===Lxe.Up||Date.now()-e.lastUpdate>Nis}function kis(e){return e.status===Lxe.Timeouted&&Date.now()-e.lastUpdate<=Nis}function SYr(e){return typeof e=="string"?{protocol:"https",url:e,accept:Sje.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Sje.Any}}function vAl(e,t){return Promise.all(t.map(r=>e.get(r,()=>Promise.resolve(EYr(r))))).then(r=>{let n=r.filter(A=>Dis(A)),a=r.filter(A=>kis(A)),o=[...n,...a],l=o.length>0?o.map(A=>SYr(A)):t;return{getTimeout(A,f){return(a.length===0&&A===0?1:a.length+3+A)*f},statelessHosts:l}})}var BAl=({isTimedOut:e,status:t})=>!e&&~~t===0,wAl=e=>{let t=e.status;return e.isTimedOut||BAl(e)||~~(t/100)!==2&&~~(t/100)!==4},TAl=({status:e})=>~~(e/100)===2,RAl=(e,t)=>wAl(e)?t.onRetry(e):TAl(e)?t.onSuccess(e):t.onFail(e);function Tis(e,t,r,n){let a=[],o=Lis(r,n),l=Vis(e,n),A=r.method,f=r.method!==Ris.MethodEnum.Get?{}:{...r.data,...n.data},I={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...f,...n.queryParameters},C=0,b=(E,N)=>{let B=E.pop();if(B===void 0)throw Ois(bYr(a));let F={data:o,headers:l,method:A,url:Fis(B,r.path,I),connectTimeout:N(C,e.timeouts.connect),responseTimeout:N(C,n.timeout)},Q=ae=>{let ne={request:F,response:ae,host:B,triesLeft:E.length};return a.push(ne),ne},X={onSuccess:ae=>xis(ae),onRetry(ae){let ne=Q(ae);return ae.isTimedOut&&C++,Promise.all([e.logger.info("Retryable failure",vYr(ne)),e.hostsCache.set(B,EYr(B,ae.isTimedOut?Lxe.Timeouted:Lxe.Down))]).then(()=>b(E,N))},onFail(ae){throw Q(ae),Gis(ae,bYr(a))}};return e.requester.send(F).then(ae=>RAl(ae,X))};return vAl(e.hostsCache,t).then(E=>b([...E.statelessHosts].reverse(),E.getTimeout))}function NAl(e){let{hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,hosts:f,queryParameters:I,headers:C}=e,b={hostsCache:t,logger:r,requester:n,requestsCache:a,responsesCache:o,timeouts:l,userAgent:A,headers:C,queryParameters:I,hosts:f.map(E=>SYr(E)),read(E,N){let B=yYr(N,b.timeouts.read),F=()=>Tis(b,b.hosts.filter(ae=>(ae.accept&Sje.Read)!==0),E,B);if((B.cacheable!==void 0?B.cacheable:E.cacheable)!==!0)return F();let X={request:E,mappedRequestOptions:B,transporter:{queryParameters:b.queryParameters,headers:b.headers}};return b.responsesCache.get(X,()=>b.requestsCache.get(X,()=>b.requestsCache.set(X,F()).then(ae=>Promise.all([b.requestsCache.delete(X),ae]),ae=>Promise.all([b.requestsCache.delete(X),Promise.reject(ae)])).then(([ae,ne])=>ne)),{miss:ae=>b.responsesCache.set(X,ae)})},write(E,N){return Tis(b,b.hosts.filter(B=>(B.accept&Sje.Write)!==0),E,yYr(N,b.timeouts.write))}};return b}function DAl(e){let t={value:`Algolia for JavaScript (${e})`,add(r){let n=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return t.value.indexOf(n)===-1&&(t.value=`${t.value}${n}`),t}};return t}function xis(e){try{return JSON.parse(e.content)}catch(t){throw Wis(t.message,e)}}function Gis({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch{}return Pis(n,t,r)}function kAl(e,...t){let r=0;return e.replace(/%s/g,()=>encodeURIComponent(t[r++]))}function Fis(e,t,r){let n=Zis(r),a=`${e.protocol}://${e.url}/${t.charAt(0)==="/"?t.substr(1):t}`;return n.length&&(a+=`?${n}`),a}function Zis(e){let t=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(e).map(r=>kAl("%s=%s",r,t(e[r])?JSON.stringify(e[r]):e[r])).join("&")}function Lis(e,t){if(e.method===Ris.MethodEnum.Get||e.data===void 0&&t.data===void 0)return;let r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}function Vis(e,t){let r={...e.headers,...t.headers},n={};return Object.keys(r).forEach(a=>{let o=r[a];n[a.toLowerCase()]=o}),n}function bYr(e){return e.map(t=>vYr(t))}function vYr(e){let t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}function Pis(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}function Wis(e,t){return{name:"DeserializationError",message:e,response:t}}function Ois(e){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .",transporterStackTrace:e}}Kv.CallEnum=Sje;Kv.HostStatusEnum=Lxe;Kv.createApiError=Pis;Kv.createDeserializationError=Wis;Kv.createMappedRequestOptions=yYr;Kv.createRetryError=Ois;Kv.createStatefulHost=EYr;Kv.createStatelessHost=SYr;Kv.createTransporter=NAl;Kv.createUserAgent=DAl;Kv.deserializeFailure=Gis;Kv.deserializeSuccess=xis;Kv.isStatefulHostTimeouted=kis;Kv.isStatefulHostUp=Dis;Kv.serializeData=Lis;Kv.serializeHeaders=Vis;Kv.serializeQueryParameters=Zis;Kv.serializeUrl=Fis;Kv.stackFrameWithoutCredentials=vYr;Kv.stackTraceWithoutCredentials=bYr});var Vxe=H((u$u,His)=>{His.exports=Mis()});var Yis=H($le=>{"use strict";Object.defineProperty($le,"__esModule",{value:!0});var Pxe=Fxe(),xAl=Vxe(),vje=Zxe(),GAl=e=>{let t=e.region||"us",r=Pxe.createAuth(Pxe.AuthMode.WithinHeaders,e.appId,e.apiKey),n=xAl.createTransporter({hosts:[{url:`analytics.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a=e.appId;return Pxe.addMethods({appId:a,transporter:n},e.methods)},FAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:"2/abtests",data:t},r),ZAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Delete,path:Pxe.encode("2/abtests/%s",t)},r),LAl=e=>(t,r)=>e.transporter.read({method:vje.MethodEnum.Get,path:Pxe.encode("2/abtests/%s",t)},r),VAl=e=>t=>e.transporter.read({method:vje.MethodEnum.Get,path:"2/abtests"},t),PAl=e=>(t,r)=>e.transporter.write({method:vje.MethodEnum.Post,path:Pxe.encode("2/abtests/%s/stop",t)},r);$le.addABTest=FAl;$le.createAnalyticsClient=GAl;$le.deleteABTest=ZAl;$le.getABTest=LAl;$le.getABTests=VAl;$le.stopABTest=PAl});var Xis=H((A$u,Qis)=>{Qis.exports=Yis()});var Uis=H(Bje=>{"use strict";Object.defineProperty(Bje,"__esModule",{value:!0});var BYr=Fxe(),WAl=Vxe(),Jis=Zxe(),OAl=e=>{let t=e.region||"us",r=BYr.createAuth(BYr.AuthMode.WithinHeaders,e.appId,e.apiKey),n=WAl.createTransporter({hosts:[{url:`personalization.${t}.algolia.com`}],...e,headers:{...r.headers(),"content-type":"application/json",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}});return BYr.addMethods({appId:e.appId,transporter:n},e.methods)},MAl=e=>t=>e.transporter.read({method:Jis.MethodEnum.Get,path:"1/strategies/personalization"},t),HAl=e=>(t,r)=>e.transporter.write({method:Jis.MethodEnum.Post,path:"1/strategies/personalization",data:t},r);Bje.createPersonalizationClient=OAl;Bje.getPersonalizationStrategy=MAl;Bje.setPersonalizationStrategy=HAl});var jis=H((p$u,Kis)=>{Kis.exports=Uis()});var uss=H(cu=>{"use strict";Object.defineProperty(cu,"__esModule",{value:!0});var mg=Fxe(),WV=Vxe(),ap=Zxe(),YAl=wt("crypto");function Fkt(e){let t=r=>e.request(r).then(n=>{if(e.batch!==void 0&&e.batch(n.hits),!e.shouldStop(n))return n.cursor?t({cursor:n.cursor}):t({page:(r.page||0)+1})});return t({})}var QAl=e=>{let t=e.appId,r=mg.createAuth(e.authMode!==void 0?e.authMode:mg.AuthMode.WithinHeaders,t,e.apiKey),n=WV.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:WV.CallEnum.Read},{url:`${t}.algolia.net`,accept:WV.CallEnum.Write}].concat(mg.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return mg.addMethods(a,e.methods)};function zis(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function qis(){return{name:"ObjectNotFoundError",message:"Object not found."}}function $is(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var XAl=e=>(t,r)=>{let{queryParameters:n,...a}=r||{},o={acl:t,...n!==void 0?{queryParameters:n}:{}},l=(A,f)=>mg.createRetryablePromise(I=>wje(e)(A.key,f).catch(C=>{if(C.status!==404)throw C;return I()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/keys",data:o},a),l)},JAl=e=>(t,r,n)=>{let a=WV.createMappedRequestOptions(n);return a.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},UAl=e=>(t,r,n)=>e.transporter.write({method:ap.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:t,cluster:r}},n),KAl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(n,a)=>Wxe(e)(n.taskID,a)),Zkt=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"copy",destination:r}},n),a)},jAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Rules]}),zAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Settings]}),qAl=e=>(t,r,n)=>Zkt(e)(t,r,{...n,scope:[Vkt.Synonyms]}),$Al=e=>(t,r)=>t.method===ap.MethodEnum.Get?e.transporter.read(t,r):e.transporter.write(t,r),edl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).then(l).catch(A=>{if(A.status!==404)throw A}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/keys/%s",t)},r),n)},tdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"deleteEntry",body:{objectID:o}}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},rdl=()=>(e,t)=>{let r=WV.serializeQueryParameters(t),n=YAl.createHmac("sha256",e).update(r).digest("hex");return Buffer.from(n+r).toString("base64")},wje=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/keys/%s",t)},r),ess=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/task/%s",t.toString())},r),ndl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"/1/dictionaries/*/settings"},t),idl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/logs"},t),sdl=()=>e=>{let t=Buffer.from(e,"base64").toString("ascii"),r=/validUntil=(\d+)/,n=t.match(r);if(n===null)throw $is();return parseInt(n[1],10)-Math.round(new Date().getTime()/1e3)},odl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/top"},t),adl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/clusters/mapping/%s",t)},r),cdl=e=>t=>{let{retrieveMappings:r,...n}=t||{};return r===!0&&(n.getClusters=!0),e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping/pending"},n)},Tje=e=>(t,r={})=>{let n={transporter:e.transporter,appId:e.appId,indexName:t};return mg.addMethods(n,r.methods)},ldl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/keys"},t),udl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters"},t),gdl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/indexes"},t),Adl=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:"1/clusters/mapping"},t),ddl=e=>(t,r,n)=>{let a=(o,l)=>Tje(e)(t,{methods:{waitTask:CT}}).waitTask(o.taskID,l);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",t),data:{operation:"move",destination:r}},n),a)},pdl=e=>(t,r)=>{let n=(a,o)=>Promise.all(Object.keys(a.taskID).map(l=>Tje(e)(l,{methods:{waitTask:CT}}).waitTask(a.taskID[l],o)));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:t}},r),n)},fdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:t}},r),Idl=e=>(t,r)=>{let n=t.map(a=>({...a,params:WV.serializeQueryParameters(a.params||{})}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},hdl=e=>(t,r)=>Promise.all(t.map(n=>{let{facetName:a,facetQuery:o,...l}=n.params;return Tje(e)(n.indexName,{methods:{searchForFacetValues:ass}}).searchForFacetValues(a,o,{...r,...l})})),mdl=e=>(t,r)=>{let n=WV.createMappedRequestOptions(r);return n.queryParameters["X-Algolia-User-ID"]=t,e.transporter.write({method:ap.MethodEnum.Delete,path:"1/clusters/mapping"},n)},Cdl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},_dl=e=>(t,r)=>{let n=(a,o)=>mg.createRetryablePromise(l=>wje(e)(t,o).catch(A=>{if(A.status!==404)throw A;return l()}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/keys/%s/restore",t)},r),n)},ydl=e=>(t,r,n)=>{let a=r.map(o=>({action:"addEntry",body:o}));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/batch",t),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(o,l)=>Wxe(e)(o.taskID,l))},bdl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("/1/dictionaries/%s/search",t),data:{query:r},cacheable:!0},n),Edl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:t}},r),Sdl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:t},r),(n,a)=>Wxe(e)(n.taskID,a)),vdl=e=>(t,r)=>{let n=Object.assign({},r),{queryParameters:a,...o}=r||{},l=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],f=C=>Object.keys(n).filter(b=>A.indexOf(b)!==-1).every(b=>{if(Array.isArray(C[b])&&Array.isArray(n[b])){let E=C[b];return E.length===n[b].length&&E.every((N,B)=>N===n[b][B])}else return C[b]===n[b]}),I=(C,b)=>mg.createRetryablePromise(E=>wje(e)(t,b).then(N=>f(N)?Promise.resolve():E()));return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/keys/%s",t),data:l},o),I)},Wxe=e=>(t,r)=>mg.createRetryablePromise(n=>ess(e)(t,r).then(a=>a.status!=="published"?n():void 0)),tss=e=>(t,r)=>{let n=(a,o)=>CT(e)(a.taskID,o);return mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/batch",e.indexName),data:{requests:t}},r),n)},Bdl=e=>t=>Fkt({shouldStop:r=>r.cursor===void 0,...t,request:r=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/browse",e.indexName),data:r},t)}),wdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Tdl=e=>t=>{let r={hitsPerPage:1e3,...t};return Fkt({shouldStop:n=>n.hits.length({...a,hits:a.hits.map(o=>(delete o._highlightResult,o))}))}})},Lkt=e=>(t,r,n)=>{let{batchSize:a,...o}=n||{},l={taskIDs:[],objectIDs:[]},A=(f=0)=>{let I=[],C;for(C=f;C({action:r,body:b})),o).then(b=>(l.objectIDs=l.objectIDs.concat(b.objectIDs),l.taskIDs.push(b.taskID),C++,A(C)))};return mg.createWaitablePromise(A(),(f,I)=>Promise.all(f.taskIDs.map(C=>CT(e)(C,I))))},Rdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/clear",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Ndl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},Ddl=e=>t=>{let{forwardToReplicas:r,...n}=t||{},a=WV.createMappedRequestOptions(n);return r&&(a.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/clear",e.indexName)},a),(o,l)=>CT(e)(o.taskID,l))},kdl=e=>(t,r)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/deleteByQuery",e.indexName),data:t},r),(n,a)=>CT(e)(n.taskID,a)),xdl=e=>t=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s",e.indexName)},t),(r,n)=>CT(e)(r.taskID,n)),Gdl=e=>(t,r)=>mg.createWaitablePromise(rss(e)([t],r).then(n=>({taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),rss=e=>(t,r)=>{let n=t.map(a=>({objectID:a}));return Lkt(e)(n,w_e.DeleteObject,r)},Fdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Zdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Delete,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},o),(l,A)=>CT(e)(l.taskID,A))},Ldl=e=>t=>nss(e)(t).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Vdl=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Pdl=e=>(t,r)=>{let{query:n,paginate:a,...o}=r||{},l=0,A=()=>oss(e)(n||"",{...o,page:l}).then(f=>{for(let[I,C]of Object.entries(f.hits))if(t(C))return{object:C,position:parseInt(I,10),page:l};if(l++,a===!1||l>=f.nbPages)throw qis();return A()});return A()},Wdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/%s",e.indexName,t)},r),Odl=()=>(e,t)=>{for(let[r,n]of Object.entries(e.hits))if(n.objectID===t)return parseInt(r,10);return-1},Mdl=e=>(t,r)=>{let{attributesToRetrieve:n,...a}=r||{},o=t.map(l=>({indexName:e.indexName,objectID:l,...n?{attributesToRetrieve:n}:{}}));return e.transporter.read({method:ap.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:o}},a)},Hdl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/rules/%s",e.indexName,t)},r),nss=e=>t=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/settings",e.indexName),data:{getVersion:2}},t),Ydl=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/synonyms/%s",e.indexName,t)},r),iss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Get,path:mg.encode("1/indexes/%s/task/%s",e.indexName,t.toString())},r),Qdl=e=>(t,r)=>mg.createWaitablePromise(sss(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),sss=e=>(t,r)=>{let{createIfNotExists:n,...a}=r||{},o=n?w_e.PartialUpdateObject:w_e.PartialUpdateObjectNoCreate;return Lkt(e)(t,o,a)},Xdl=e=>(t,r)=>{let{safe:n,autoGenerateObjectIDIfNotExist:a,batchSize:o,...l}=r||{},A=(B,F,Q,X)=>mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/operation",B),data:{operation:Q,destination:F}},X),(ae,ne)=>CT(e)(ae.taskID,ne)),f=Math.random().toString(36).substring(7),I=`${e.indexName}_tmp_${f}`,C=wYr({appId:e.appId,transporter:e.transporter,indexName:I}),b=[],E=A(e.indexName,I,"copy",{...l,scope:["settings","synonyms","rules"]});b.push(E);let N=(n?E.wait(l):E).then(()=>{let B=C(t,{...l,autoGenerateObjectIDIfNotExist:a,batchSize:o});return b.push(B),n?B.wait(l):B}).then(()=>{let B=A(I,e.indexName,"move",l);return b.push(B),n?B.wait(l):B}).then(()=>Promise.all(b)).then(([B,F,Q])=>({objectIDs:F.objectIDs,taskIDs:[B.taskID,...F.taskIDs,Q.taskID]}));return mg.createWaitablePromise(N,(B,F)=>Promise.all(b.map(Q=>Q.wait(F))))},Jdl=e=>(t,r)=>TYr(e)(t,{...r,clearExistingRules:!0}),Udl=e=>(t,r)=>RYr(e)(t,{...r,clearExistingSynonyms:!0}),Kdl=e=>(t,r)=>mg.createWaitablePromise(wYr(e)([t],r).then(n=>({objectID:n.objectIDs[0],taskID:n.taskIDs[0]})),(n,a)=>CT(e)(n.taskID,a)),wYr=e=>(t,r)=>{let{autoGenerateObjectIDIfNotExist:n,...a}=r||{},o=n?w_e.AddObject:w_e.UpdateObject;if(o===w_e.UpdateObject){for(let l of t)if(l.objectID===void 0)return mg.createWaitablePromise(Promise.reject(zis()))}return Lkt(e)(t,o,a)},jdl=e=>(t,r)=>TYr(e)([t],r),TYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingRules:a,...o}=r||{},l=WV.createMappedRequestOptions(o);return n&&(l.queryParameters.forwardToReplicas=1),a&&(l.queryParameters.clearExistingRules=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/batch",e.indexName),data:t},l),(A,f)=>CT(e)(A.taskID,f))},zdl=e=>(t,r)=>RYr(e)([t],r),RYr=e=>(t,r)=>{let{forwardToReplicas:n,clearExistingSynonyms:a,replaceExistingSynonyms:o,...l}=r||{},A=WV.createMappedRequestOptions(l);return n&&(A.queryParameters.forwardToReplicas=1),(o||a)&&(A.queryParameters.replaceExistingSynonyms=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/batch",e.indexName),data:t},A),(f,I)=>CT(e)(f.taskID,I))},oss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),ass=e=>(t,r,n)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),css=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/rules/search",e.indexName),data:{query:t}},r),lss=e=>(t,r)=>e.transporter.read({method:ap.MethodEnum.Post,path:mg.encode("1/indexes/%s/synonyms/search",e.indexName),data:{query:t}},r),qdl=e=>(t,r)=>{let{forwardToReplicas:n,...a}=r||{},o=WV.createMappedRequestOptions(a);return n&&(o.queryParameters.forwardToReplicas=1),mg.createWaitablePromise(e.transporter.write({method:ap.MethodEnum.Put,path:mg.encode("1/indexes/%s/settings",e.indexName),data:t},o),(l,A)=>CT(e)(l.taskID,A))},CT=e=>(t,r)=>mg.createRetryablePromise(n=>iss(e)(t,r).then(a=>a.status!=="published"?n():void 0)),$dl={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},w_e={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Vkt={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},epl={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},tpl={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};cu.ApiKeyACLEnum=$dl;cu.BatchActionEnum=w_e;cu.ScopeEnum=Vkt;cu.StrategyEnum=epl;cu.SynonymEnum=tpl;cu.addApiKey=XAl;cu.assignUserID=JAl;cu.assignUserIDs=UAl;cu.batch=tss;cu.browseObjects=Bdl;cu.browseRules=wdl;cu.browseSynonyms=Tdl;cu.chunkedBatch=Lkt;cu.clearDictionaryEntries=KAl;cu.clearObjects=Rdl;cu.clearRules=Ndl;cu.clearSynonyms=Ddl;cu.copyIndex=Zkt;cu.copyRules=jAl;cu.copySettings=zAl;cu.copySynonyms=qAl;cu.createBrowsablePromise=Fkt;cu.createMissingObjectIDError=zis;cu.createObjectNotFoundError=qis;cu.createSearchClient=QAl;cu.createValidUntilNotFoundError=$is;cu.customRequest=$Al;cu.deleteApiKey=edl;cu.deleteBy=kdl;cu.deleteDictionaryEntries=tdl;cu.deleteIndex=xdl;cu.deleteObject=Gdl;cu.deleteObjects=rss;cu.deleteRule=Fdl;cu.deleteSynonym=Zdl;cu.exists=Ldl;cu.findAnswers=Vdl;cu.findObject=Pdl;cu.generateSecuredApiKey=rdl;cu.getApiKey=wje;cu.getAppTask=ess;cu.getDictionarySettings=ndl;cu.getLogs=idl;cu.getObject=Wdl;cu.getObjectPosition=Odl;cu.getObjects=Mdl;cu.getRule=Hdl;cu.getSecuredApiKeyRemainingValidity=sdl;cu.getSettings=nss;cu.getSynonym=Ydl;cu.getTask=iss;cu.getTopUserIDs=odl;cu.getUserID=adl;cu.hasPendingMappings=cdl;cu.initIndex=Tje;cu.listApiKeys=ldl;cu.listClusters=udl;cu.listIndices=gdl;cu.listUserIDs=Adl;cu.moveIndex=ddl;cu.multipleBatch=pdl;cu.multipleGetObjects=fdl;cu.multipleQueries=Idl;cu.multipleSearchForFacetValues=hdl;cu.partialUpdateObject=Qdl;cu.partialUpdateObjects=sss;cu.removeUserID=mdl;cu.replaceAllObjects=Xdl;cu.replaceAllRules=Jdl;cu.replaceAllSynonyms=Udl;cu.replaceDictionaryEntries=Cdl;cu.restoreApiKey=_dl;cu.saveDictionaryEntries=ydl;cu.saveObject=Kdl;cu.saveObjects=wYr;cu.saveRule=jdl;cu.saveRules=TYr;cu.saveSynonym=zdl;cu.saveSynonyms=RYr;cu.search=oss;cu.searchDictionaryEntries=bdl;cu.searchForFacetValues=ass;cu.searchRules=css;cu.searchSynonyms=lss;cu.searchUserIDs=Edl;cu.setDictionarySettings=Sdl;cu.setSettings=qdl;cu.updateApiKey=vdl;cu.waitAppTask=Wxe;cu.waitTask=CT});var Ass=H((I$u,gss)=>{gss.exports=uss()});var dss=H(Pkt=>{"use strict";Object.defineProperty(Pkt,"__esModule",{value:!0});function rpl(){return{debug(e,t){return Promise.resolve()},info(e,t){return Promise.resolve()},error(e,t){return Promise.resolve()}}}var npl={Debug:1,Info:2,Error:3};Pkt.LogLevelEnum=npl;Pkt.createNullLogger=rpl});var NYr=H((m$u,pss)=>{pss.exports=dss()});var mss=H(DYr=>{"use strict";Object.defineProperty(DYr,"__esModule",{value:!0});var fss=wt("http"),Iss=wt("https"),ipl=wt("url"),hss={keepAlive:!0},spl=new fss.Agent(hss),opl=new Iss.Agent(hss);function apl({agent:e,httpAgent:t,httpsAgent:r,requesterOptions:n={}}={}){let a=t||e||spl,o=r||e||opl;return{send(l){return new Promise(A=>{let f=ipl.parse(l.url),I=f.query===null?f.pathname:`${f.pathname}?${f.query}`,C={...n,agent:f.protocol==="https:"?o:a,hostname:f.hostname,path:I,method:l.method,headers:{...n&&n.headers?n.headers:{},...l.headers},...f.port!==void 0?{port:f.port||""}:{}},b=(f.protocol==="https:"?Iss:fss).request(C,F=>{let Q=[];F.on("data",X=>{Q=Q.concat(X)}),F.on("end",()=>{clearTimeout(N),clearTimeout(B),A({status:F.statusCode||0,content:Buffer.concat(Q).toString(),isTimedOut:!1})})}),E=(F,Q)=>setTimeout(()=>{b.abort(),A({status:0,content:Q,isTimedOut:!0})},F*1e3),N=E(l.connectTimeout,"Connection timeout"),B;b.on("error",F=>{clearTimeout(N),clearTimeout(B),A({status:0,content:F.message,isTimedOut:!1})}),b.once("response",()=>{clearTimeout(N),B=E(l.responseTimeout,"Socket timeout")}),l.data!==void 0&&b.write(l.data),b.end()})},destroy(){return a.destroy(),o.destroy(),Promise.resolve()}}}DYr.createNodeHttpRequester=apl});var kYr=H((_$u,Css)=>{Css.exports=mss()});var Tss=H((y$u,wss)=>{"use strict";var _ss=IYr(),cpl=mYr(),eue=Fxe(),lpl=NYr(),upl=kYr(),Wkt=Vxe(),Okt=Zxe(),gpl=e=>{let t=e.appId,r=eue.createAuth(e.authMode!==void 0?e.authMode:eue.AuthMode.WithinHeaders,t,e.apiKey),n=Wkt.createTransporter({hosts:[{url:`${t}-dsn.algolia.net`,accept:Wkt.CallEnum.Read},{url:`${t}.algolia.net`,accept:Wkt.CallEnum.Write}].concat(eue.shuffle([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),a={transporter:n,appId:t,addAlgoliaAgent(o,l){n.userAgent.add({segment:o,version:l})},clearCache(){return Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then(()=>{})}};return eue.addMethods(a,e.methods)},Rje=e=>(t,r)=>{let n=t.map(a=>({...a,threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},yss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,fallbackParameters:{},model:"bought-together"})),r),bss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"related-products"})),r),Ess=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-facets",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},Sss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"trending-items",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)},vss=e=>(t,r)=>Rje(e)(t.map(n=>({...n,model:"looking-similar"})),r),Bss=e=>(t,r)=>{let n=t.map(a=>({...a,model:"recommended-for-you",threshold:a.threshold||0}));return e.transporter.read({method:Okt.MethodEnum.Post,path:"1/indexes/*/recommendations",data:{requests:n},cacheable:!0},r)};function Ste(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:upl.createNodeHttpRequester(),logger:lpl.createNullLogger(),responsesCache:_ss.createNullCache(),requestsCache:_ss.createNullCache(),hostsCache:cpl.createInMemoryCache(),userAgent:Wkt.createUserAgent(eue.version).add({segment:"Recommend",version:eue.version}).add({segment:"Node.js",version:process.versions.node})};return gpl({...n,...r,methods:{destroy:eue.destroy,getFrequentlyBoughtTogether:yss,getRecommendations:Rje,getRelatedProducts:bss,getTrendingFacets:Ess,getTrendingItems:Sss,getLookingSimilar:vss,getRecommendedForYou:Bss}})}Ste.version=eue.version;Ste.getFrequentlyBoughtTogether=yss;Ste.getRecommendations=Rje;Ste.getRelatedProducts=bss;Ste.getTrendingFacets=Ess;Ste.getTrendingItems=Sss;Ste.getLookingSimilar=vss;Ste.getRecommendedForYou=Bss;wss.exports=Ste});var Nss=H((b$u,xYr)=>{var Rss=Tss();xYr.exports=Rss;xYr.exports.default=Rss});var Gss=H((E$u,xss)=>{"use strict";var Dss=IYr(),Apl=mYr(),Oxe=Xis(),FYr=Fxe(),GYr=jis(),ju=Ass(),dpl=NYr(),T_e=Nss(),ppl=kYr(),fpl=Vxe();function kss(e,t,r){let n={appId:e,apiKey:t,timeouts:{connect:2,read:5,write:30},requester:ppl.createNodeHttpRequester(),logger:dpl.createNullLogger(),responsesCache:Dss.createNullCache(),requestsCache:Dss.createNullCache(),hostsCache:Apl.createInMemoryCache(),userAgent:fpl.createUserAgent(FYr.version).add({segment:"Node.js",version:process.versions.node})},a={...n,...r},o=()=>l=>GYr.createPersonalizationClient({...n,...l,methods:{getPersonalizationStrategy:GYr.getPersonalizationStrategy,setPersonalizationStrategy:GYr.setPersonalizationStrategy}});return ju.createSearchClient({...a,methods:{search:ju.multipleQueries,searchForFacetValues:ju.multipleSearchForFacetValues,multipleBatch:ju.multipleBatch,multipleGetObjects:ju.multipleGetObjects,multipleQueries:ju.multipleQueries,copyIndex:ju.copyIndex,copySettings:ju.copySettings,copyRules:ju.copyRules,copySynonyms:ju.copySynonyms,moveIndex:ju.moveIndex,listIndices:ju.listIndices,getLogs:ju.getLogs,listClusters:ju.listClusters,multipleSearchForFacetValues:ju.multipleSearchForFacetValues,getApiKey:ju.getApiKey,addApiKey:ju.addApiKey,listApiKeys:ju.listApiKeys,updateApiKey:ju.updateApiKey,deleteApiKey:ju.deleteApiKey,restoreApiKey:ju.restoreApiKey,assignUserID:ju.assignUserID,assignUserIDs:ju.assignUserIDs,getUserID:ju.getUserID,searchUserIDs:ju.searchUserIDs,listUserIDs:ju.listUserIDs,getTopUserIDs:ju.getTopUserIDs,removeUserID:ju.removeUserID,hasPendingMappings:ju.hasPendingMappings,generateSecuredApiKey:ju.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:ju.getSecuredApiKeyRemainingValidity,destroy:FYr.destroy,clearDictionaryEntries:ju.clearDictionaryEntries,deleteDictionaryEntries:ju.deleteDictionaryEntries,getDictionarySettings:ju.getDictionarySettings,getAppTask:ju.getAppTask,replaceDictionaryEntries:ju.replaceDictionaryEntries,saveDictionaryEntries:ju.saveDictionaryEntries,searchDictionaryEntries:ju.searchDictionaryEntries,setDictionarySettings:ju.setDictionarySettings,waitAppTask:ju.waitAppTask,customRequest:ju.customRequest,initIndex:l=>A=>ju.initIndex(l)(A,{methods:{batch:ju.batch,delete:ju.deleteIndex,findAnswers:ju.findAnswers,getObject:ju.getObject,getObjects:ju.getObjects,saveObject:ju.saveObject,saveObjects:ju.saveObjects,search:ju.search,searchForFacetValues:ju.searchForFacetValues,waitTask:ju.waitTask,setSettings:ju.setSettings,getSettings:ju.getSettings,partialUpdateObject:ju.partialUpdateObject,partialUpdateObjects:ju.partialUpdateObjects,deleteObject:ju.deleteObject,deleteObjects:ju.deleteObjects,deleteBy:ju.deleteBy,clearObjects:ju.clearObjects,browseObjects:ju.browseObjects,getObjectPosition:ju.getObjectPosition,findObject:ju.findObject,exists:ju.exists,saveSynonym:ju.saveSynonym,saveSynonyms:ju.saveSynonyms,getSynonym:ju.getSynonym,searchSynonyms:ju.searchSynonyms,browseSynonyms:ju.browseSynonyms,deleteSynonym:ju.deleteSynonym,clearSynonyms:ju.clearSynonyms,replaceAllObjects:ju.replaceAllObjects,replaceAllSynonyms:ju.replaceAllSynonyms,searchRules:ju.searchRules,getRule:ju.getRule,deleteRule:ju.deleteRule,saveRule:ju.saveRule,saveRules:ju.saveRules,replaceAllRules:ju.replaceAllRules,browseRules:ju.browseRules,clearRules:ju.clearRules}}),initAnalytics:()=>l=>Oxe.createAnalyticsClient({...n,...l,methods:{addABTest:Oxe.addABTest,getABTest:Oxe.getABTest,getABTests:Oxe.getABTests,stopABTest:Oxe.stopABTest,deleteABTest:Oxe.deleteABTest}}),initPersonalization:o,initRecommendation:()=>l=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),o()(l)),getRecommendations:T_e.getRecommendations,getFrequentlyBoughtTogether:T_e.getFrequentlyBoughtTogether,getLookingSimilar:T_e.getLookingSimilar,getRecommendedForYou:T_e.getRecommendedForYou,getRelatedProducts:T_e.getRelatedProducts,getTrendingFacets:T_e.getTrendingFacets,getTrendingItems:T_e.getTrendingItems}})}kss.version=FYr.version;xss.exports=kss});var LYr=H((S$u,ZYr)=>{var Fss=Gss();ZYr.exports=Fss;ZYr.exports.default=Fss});var Zss=H(Mkt=>{"use strict";Object.defineProperty(Mkt,"__esModule",{value:!0});Mkt.search=void 0;var Ipl=(Pa(),vi(Va)),hpl=Ipl.__importDefault(LYr()),VYr={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},mpl=(0,hpl.default)(VYr.appId,VYr.apiKey).initIndex(VYr.indexName),Cpl=async(e,t=0)=>await mpl.search(e,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:t,hitsPerPage:10});Mkt.search=Cpl});var WYr=H(Hkt=>{"use strict";Object.defineProperty(Hkt,"__esModule",{value:!0});Hkt.useMinistore=_pl;Hkt.useMinistoreSetAll=ypl;var PYr=sC(),Lss=yGr();function _pl(e,t){let r=(0,PYr.useContext)(Lss.MinistoreContext);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof e>"u")return r.getAll();let n=(0,PYr.useCallback)(o=>{r.set(e,o)},[e,r.set]),a=r.get(e);return typeof a>"u"&&(a=t),[a,n]}function ypl(){let e=(0,PYr.useContext)(Lss.MinistoreContext);if(e===null)throw new Error("Expected this hook to run with a ministore context attached");return e.setAll}});var Oss=H(Nje=>{"use strict";Object.defineProperty(Nje,"__esModule",{value:!0});Nje.UncontrolledTextInput=void 0;var Pss=sC(),OYr=sC(),Vss=lH(),R_e=VK(),Wss=({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A})=>{let[{cursorOffset:f,cursorWidth:I},C]=OYr.useState({cursorOffset:(e||"").length,cursorWidth:0});OYr.useEffect(()=>{C(F=>{if(!r||!o)return F;let Q=e||"";return F.cursorOffset>Q.length-1?{cursorOffset:Q.length,cursorWidth:0}:F})},[e,r,o]);let b=a?I:0,E=n?n.repeat(e.length):e,N=E,B=t?R_e.grey(t):void 0;if(o&&r){B=t.length>0?R_e.inverse(t[0])+R_e.grey(t.slice(1)):R_e.inverse(" "),N=E.length>0?"":R_e.inverse(" ");let F=0;for(let Q of E)F>=f-b&&F<=f?N+=R_e.inverse(Q):N+=Q,F++;E.length>0&&f===E.length&&(N+=R_e.inverse(" "))}return Vss.useInput((F,Q)=>{if(Q.upArrow||Q.downArrow||Q.ctrl&&F==="c"||Q.tab||Q.shift&&Q.tab)return;if(Q.return){A&&A(e);return}let X=f,ae=e,ne=0;Q.leftArrow?o&&X--:Q.rightArrow?o&&X++:Q.backspace||Q.delete?f>0&&(ae=e.slice(0,f-1)+e.slice(f,e.length),X--):(ae=e.slice(0,f)+F+e.slice(f,e.length),X+=F.length,F.length>1&&(ne=F.length)),f<0&&(X=0),f>e.length&&(X=e.length),C({cursorOffset:X,cursorWidth:ne}),ae!==e&&l(ae)},{isActive:r}),Pss.createElement(Vss.Text,null,t?E.length>0?N:B:N)};Nje.default=Wss;Nje.UncontrolledTextInput=({initialValue:e="",...t})=>{let[r,n]=OYr.useState(e);return Pss.createElement(Wss,Object.assign({},t,{value:r,onChange:n}))}});var Hss=H(MYr=>{"use strict";Object.defineProperty(MYr,"__esModule",{value:!0});var vte=(Pa(),vi(Va)),bpl=el(),Dje=Bn(),Epl=vte.__importStar(A1t()),Spl=($c(),vi(rg)),Mss=Zss(),kje=["regular","dev","peer"],xje=class extends bpl.BaseCommand{async execute(){Epl.checkRequirements(this.context);let{Gem:t}=await Promise.resolve().then(()=>vte.__importStar(v1t())),{ScrollableItems:r}=await Promise.resolve().then(()=>vte.__importStar(N1t())),{useKeypress:n}=await Promise.resolve().then(()=>vte.__importStar(cDe())),{useMinistore:a}=await Promise.resolve().then(()=>vte.__importStar(WYr())),{renderForm:o}=await Promise.resolve().then(()=>vte.__importStar(D1t())),{default:l}=await Promise.resolve().then(()=>vte.__importStar(Oss())),{Box:A,Text:f}=await Promise.resolve().then(()=>vte.__importStar(lH())),{default:I,useEffect:C,useState:b}=await Promise.resolve().then(()=>vte.__importStar(sC())),E=await Dje.Configuration.find(this.context.cwd,this.context.plugins),N=()=>I.createElement(A,{flexDirection:"row"},I.createElement(A,{flexDirection:"column",width:48},I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},""),"/",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to move between packages.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to select a package.")),I.createElement(A,null,I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," again to change the target."))),I.createElement(A,{flexDirection:"column"},I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),I.createElement(A,{marginLeft:1},I.createElement(f,null,"Press ",I.createElement(f,{bold:!0,color:"cyanBright"},"")," to abort.")))),B=()=>I.createElement(I.Fragment,null,I.createElement(A,{width:15},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Owner")),I.createElement(A,{width:11},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Version")),I.createElement(A,{width:10},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Downloads"))),F=()=>I.createElement(A,{width:17},I.createElement(f,{bold:!0,underline:!0,color:"gray"},"Target")),Q=({hit:be,active:Se})=>{let[De,k]=a(be.name,null);n({active:Se},(Me,je)=>{if(je.name!=="space")return;if(!De){k(kje[0]);return}let St=kje.indexOf(De)+1;St===kje.length?k(null):k(kje[St])},[De,k]);let et=Dje.structUtils.parseIdent(be.name),ct=Dje.structUtils.prettyIdent(E,et);return I.createElement(A,null,I.createElement(A,{width:45},I.createElement(f,{bold:!0,wrap:"wrap"},ct)),I.createElement(A,{width:14,marginLeft:1},I.createElement(f,{bold:!0,wrap:"truncate"},be.owner.name)),I.createElement(A,{width:10,marginLeft:1},I.createElement(f,{italic:!0,wrap:"truncate"},be.version)),I.createElement(A,{width:16,marginLeft:1},I.createElement(f,null,be.humanDownloadsLast30Days)))},X=({name:be,active:Se})=>{let[De]=a(be,null),k=Dje.structUtils.parseIdent(be);return I.createElement(A,null,I.createElement(A,{width:47},I.createElement(f,{bold:!0}," - ",Dje.structUtils.prettyIdent(E,k))),kje.map(et=>I.createElement(A,{key:et,width:14,marginLeft:1},I.createElement(f,null," ",I.createElement(t,{active:De===et})," ",I.createElement(f,{bold:!0},et)))))},ae=()=>I.createElement(A,{marginTop:1},I.createElement(f,null,"Powered by Algolia.")),ce=await o(({useSubmit:be})=>{let Se=a();be(Se);let De=Array.from(Se.keys()).filter(Nr=>Se.get(Nr)!==null),[k,et]=b(""),[ct,Me]=b(0),[je,St]=b([]),At=Nr=>{Nr.match(/\t| /)||et(Nr)},Yt=async()=>{Me(0);let Nr=await(0,Mss.search)(k);Nr.query===k&&St(Nr.hits)},Tr=async()=>{let Nr=await(0,Mss.search)(k,ct+1);Nr.query===k&&Nr.page-1===ct&&(Me(Nr.page),St([...je,...Nr.hits]))};return C(()=>{k?Yt():St([])},[k]),I.createElement(A,{flexDirection:"column"},I.createElement(N,null),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(f,{bold:!0},"Search: "),I.createElement(A,{width:41},I.createElement(l,{value:k,onChange:At,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),I.createElement(B,null)),je.length?I.createElement(r,{radius:2,loop:!1,children:je.map(Nr=>I.createElement(Q,{key:Nr.name,hit:Nr,active:!1})),willReachEnd:Tr}):I.createElement(f,{color:"gray"},"Start typing..."),I.createElement(A,{flexDirection:"row",marginTop:1},I.createElement(A,{width:49},I.createElement(f,{bold:!0},"Selected:")),I.createElement(F,null)),De.length?De.map(Nr=>I.createElement(X,{key:Nr,name:Nr,active:!1})):I.createElement(f,{color:"gray"},"No selected packages..."),I.createElement(ae,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;let fe=Array.from(ce.keys()).filter(be=>ce.get(be)==="regular"),ue=Array.from(ce.keys()).filter(be=>ce.get(be)==="dev"),de=Array.from(ce.keys()).filter(be=>ce.get(be)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ue.length&&await this.cli.run(["add","--dev",...ue]),de&&await this.cli.run(["add","--peer",...de]),0}};xje.paths=[["search"]];xje.usage=Spl.Command.Usage({category:"Interactive commands",description:"open the search interface",details:` This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. - `,examples:[["Open the search window","yarn search"]]});MYr.default=xje});var zG=H(aC=>{"use strict";var Spl=Object.prototype.toString,bH=OKe(),Yss=!1,Gje=new Set,Qss={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};aC.longest=(e,t)=>e.reduce((r,n)=>Math.max(r,t?n[t].length:n.length),0);aC.hasColor=e=>!!e&&bH.hasColor(e);var Ykt=aC.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);aC.nativeType=e=>Spl.call(e).slice(8,-1).toLowerCase().replace(/\s/g,"");aC.isAsyncFn=e=>aC.nativeType(e)==="asyncfunction";aC.isPrimitive=e=>e!=null&&typeof e!="object"&&typeof e!="function";aC.resolve=(e,t,...r)=>typeof t=="function"?t.call(e,...r):t;aC.scrollDown=(e=[])=>[...e.slice(1),e[0]];aC.scrollUp=(e=[])=>[e.pop(),...e];aC.reorder=(e=[])=>{let t=e.slice();return t.sort((r,n)=>r.index>n.index?1:r.index{let n=e.length,a=r===n?0:r<0?n-1:r,o=e[t];e[t]=e[a],e[a]=o};aC.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[0]),process.platform==="win32"?r-1:r};aC.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[1]),r};aC.wordWrap=(e,t={})=>{if(!e)return e;typeof t=="number"&&(t={width:t});let{indent:r="",newline:n=` -`+r,width:a=80}=t,o=(n+r).match(/[^\S\n]/g)||[];a-=o.length;let l=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=e.trim(),f=new RegExp(l,"g"),I=A.match(f)||[];return I=I.map(C=>C.replace(/\n$/,"")),t.padEnd&&(I=I.map(C=>C.padEnd(a," "))),t.padStart&&(I=I.map(C=>C.padStart(a," "))),r+I.join(n)};aC.unmute=e=>{let t=e.stack.find(n=>bH.keys.color.includes(n));return t?bH[t]:e.stack.find(n=>n.slice(2)==="bg")?bH[t.slice(2)]:n=>n};aC.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"";aC.inverse=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n));if(t){let n=bH["bg"+aC.pascal(t)];return n?n.black:e}let r=e.stack.find(n=>n.slice(0,2)==="bg");return r?bH[r.slice(2).toLowerCase()]||e:bH.none};aC.complement=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n)),r=e.stack.find(n=>n.slice(0,2)==="bg");if(t&&!r)return bH[Qss[t]||t];if(r){let n=r.slice(2).toLowerCase(),a=Qss[n];return a&&bH["bg"+aC.pascal(a)]||e}return bH.none};aC.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),n=t>=12?"pm":"am";t=t%12;let a=t===0?12:t,o=r<10?"0"+r:r;return a+":"+o+" "+n};aC.set=(e={},t="",r)=>t.split(".").reduce((n,a,o,l)=>{let A=l.length-1>o?n[a]||{}:r;return!aC.isObject(A)&&o{let n=e[t]==null?t.split(".").reduce((a,o)=>a&&a[o],e):e[t];return n??r};aC.mixin=(e,t)=>{if(!Ykt(e))return t;if(!Ykt(t))return e;for(let r of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,r);if(hasOwnProperty.call(n,"value"))if(hasOwnProperty.call(e,r)&&Ykt(n.value)){let a=Object.getOwnPropertyDescriptor(e,r);Ykt(a.value)&&a.value!==n.value?e[r]=aC.merge({},e[r],t[r]):Reflect.defineProperty(e,r,n)}else Reflect.defineProperty(e,r,n);else Reflect.defineProperty(e,r,n)}return e};aC.merge=(...e)=>{let t={};for(let r of e)aC.mixin(t,r);return t};aC.mixinEmitter=(e,t)=>{let r=t.constructor.prototype;for(let n of Object.keys(r)){let a=r[n];typeof a=="function"?aC.define(e,n,a.bind(t)):aC.define(e,n,a)}};var Qkt=(e,t)=>{Yss||(Yss=!0,Gje.forEach(r=>r()),e===!0&&process.exit(128+t))},Xss=Qkt.bind(null,!0,15),Jss=Qkt.bind(null,!0,2);aC.onExit=e=>(Gje.size===0&&(process.once("SIGTERM",Xss),process.once("SIGINT",Jss),process.once("exit",Qkt)),Gje.add(e),()=>{Gje.delete(e),Gje.size===0&&(process.off("SIGTERM",Xss),process.off("SIGINT",Jss),process.off("exit",Qkt))});aC.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})};aC.defineExport=(e,t,r)=>{let n;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(a){n=a},get(){return n?n():r()}})}});var Uss=H(Mxe=>{"use strict";Mxe.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Mxe.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Mxe.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Mxe.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Mxe.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var jss=H((D$u,Kss)=>{"use strict";Kss.exports=class{_queue=[];_executing=!1;_jobRunner=null;constructor(t){this._jobRunner=t}enqueue=(...t)=>{this._queue.push(t),this._dequeue()};destroy(){this._queue.length=0,this._jobRunner=null}_dequeue(){this._executing||!this._queue.length||(this._executing=!0,this._jobRunner(...this._queue.shift()),setTimeout(()=>{this._executing=!1,this._dequeue()}))}}});var HYr=H((k$u,qss)=>{"use strict";var zss=wt("readline"),vpl=Uss(),Bpl=jss(),wpl=/^(?:\x1b)([a-zA-Z0-9])$/,Tpl=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Rpl={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Npl(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}function Dpl(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}var Xkt=(e="",t={})=>{let r,n={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&e[1]===void 0?(e[0]-=128,e="\x1B"+String(e)):e=String(e):e!==void 0&&typeof e!="string"?e=String(e):e||(e=n.sequence||""),n.sequence=n.sequence||e||n.name,e==="\r")n.raw=void 0,n.name="return";else if(e===` -`)n.name="enter";else if(e===" ")n.name="tab";else if(e==="\b"||e==="\x7F"||e==="\x1B\x7F"||e==="\x1B\b")n.name="backspace",n.meta=e.charAt(0)==="\x1B";else if(e==="\x1B"||e==="\x1B\x1B")n.name="escape",n.meta=e.length===2;else if(e===" "||e==="\x1B ")n.name="space",n.meta=e.length===2;else if(e<="")n.name=String.fromCharCode(e.charCodeAt(0)+97-1),n.ctrl=!0;else if(e.length===1&&e>="0"&&e<="9")n.name="number";else if(e.length===1&&e>="a"&&e<="z")n.name=e;else if(e.length===1&&e>="A"&&e<="Z")n.name=e.toLowerCase(),n.shift=!0;else if(r=wpl.exec(e))n.meta=!0,n.shift=/^[A-Z]$/.test(r[1]);else if(r=Tpl.exec(e)){let a=[...e];a[0]==="\x1B"&&a[1]==="\x1B"&&(n.option=!0);let o=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),l=(r[3]||r[5]||1)-1;n.ctrl=!!(l&4),n.meta=!!(l&10),n.shift=!!(l&1),n.code=o,n.name=Rpl[o],n.shift=Npl(o)||n.shift,n.ctrl=Dpl(o)||n.ctrl}return n};Xkt.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let n=zss.createInterface({terminal:!0,input:r});zss.emitKeypressEvents(r,n);let a=new Bpl((A,f)=>t(A,Xkt(A,f),n)),o=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a.enqueue),n.resume(),()=>{r.isTTY&&r.setRawMode(o),r.removeListener("keypress",a.enqueue),a.destroy(),n.pause(),n.close()}};Xkt.action=(e,t,r)=>{let n={...vpl,...r};return t.ctrl?(t.action=n.ctrl[t.name],t):t.option&&n.option?(t.action=n.option[t.name],t):t.shift?(t.action=n.shift[t.name],t):(t.action=n.keys[t.name],t)};qss.exports=Xkt});var eos=H((x$u,$ss)=>{"use strict";$ss.exports=e=>{e.timers=e.timers||{};let t=e.options.timers;if(t)for(let r of Object.keys(t)){let n=t[r];typeof n=="number"&&(n={interval:n}),kpl(e,r,n)}};function kpl(e,t,r={}){let n=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},a=r.interval||120;n.frames=r.frames||[],n.loading=!0;let o=setInterval(()=>{n.ms=Date.now()-n.start,n.tick++,e.render()},a);return n.stop=()=>{n.loading=!1,clearInterval(o)},Reflect.defineProperty(n,"interval",{value:o}),e.once("close",()=>n.stop()),n.stop}});var ros=H((G$u,tos)=>{"use strict";var{define:xpl,width:Gpl}=zG(),YYr=class{constructor(t){let r=t.options;xpl(this,"_prompt",t),this.type=t.type,this.name=t.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Gpl(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=t.symbols,this.styles=t.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let t={...this};return t.status=this.status,t.buffer=Buffer.from(t.buffer),delete t.clone,t}set color(t){this._color=t}get color(){let t=this.prompt.styles;if(this.cancelled)return t.cancelled;if(this.submitted)return t.submitted;let r=this._color||t[this.status];return typeof r=="function"?r:t.pending}set loading(t){this._loading=t}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};tos.exports=YYr});var ios=H((F$u,nos)=>{"use strict";var QYr=zG(),ox=OKe(),XYr={default:ox.noop,noop:ox.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||QYr.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||QYr.complement(this.primary)},primary:ox.cyan,success:ox.green,danger:ox.magenta,strong:ox.bold,warning:ox.yellow,muted:ox.dim,disabled:ox.gray,dark:ox.dim.gray,underline:ox.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse}};XYr.merge=(e={})=>{e.styles&&typeof e.styles.enabled=="boolean"&&(ox.enabled=e.styles.enabled),e.styles&&typeof e.styles.visible=="boolean"&&(ox.visible=e.styles.visible);let t=QYr.merge({},XYr,e.styles);delete t.merge;for(let r of Object.keys(ox))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});for(let r of Object.keys(ox.styles))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});return t};nos.exports=XYr});var oos=H((Z$u,sos)=>{"use strict";var JYr=process.platform==="win32",Bte=OKe(),Fpl=zG(),UYr={...Bte.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Bte.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Bte.symbols.question,submitted:Bte.symbols.check,cancelled:Bte.symbols.cross},separator:{pending:Bte.symbols.pointerSmall,submitted:Bte.symbols.middot,cancelled:Bte.symbols.middot},radio:{off:JYr?"( )":"\u25EF",on:JYr?"(*)":"\u25C9",disabled:JYr?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};UYr.merge=e=>{let t=Fpl.merge({},Bte.symbols,UYr,e.symbols);return delete t.merge,t};sos.exports=UYr});var cos=H((L$u,aos)=>{"use strict";var Zpl=ios(),Lpl=oos(),Vpl=zG();aos.exports=e=>{e.options=Vpl.merge({},e.options.theme,e.options),e.symbols=Lpl.merge(e.options),e.styles=Zpl.merge(e.options)}});var dos=H((gos,Aos)=>{"use strict";var los=process.env.TERM_PROGRAM==="Apple_Terminal",Ppl=q5(),KYr=zG(),P4=Aos.exports=gos,VS="\x1B[",uos="\x07",jYr=!1,tue=P4.code={bell:uos,beep:uos,beginning:`${VS}G`,down:`${VS}J`,esc:VS,getPosition:`${VS}6n`,hide:`${VS}?25l`,line:`${VS}2K`,lineEnd:`${VS}K`,lineStart:`${VS}1K`,restorePosition:VS+(los?"8":"u"),savePosition:VS+(los?"7":"s"),screen:`${VS}2J`,show:`${VS}?25h`,up:`${VS}1J`},N_e=P4.cursor={get hidden(){return jYr},hide(){return jYr=!0,tue.hide},show(){return jYr=!1,tue.show},forward:(e=1)=>`${VS}${e}C`,backward:(e=1)=>`${VS}${e}D`,nextLine:(e=1)=>`${VS}E`.repeat(e),prevLine:(e=1)=>`${VS}F`.repeat(e),up:(e=1)=>e?`${VS}${e}A`:"",down:(e=1)=>e?`${VS}${e}B`:"",right:(e=1)=>e?`${VS}${e}C`:"",left:(e=1)=>e?`${VS}${e}D`:"",to(e,t){return t?`${VS}${t+1};${e+1}H`:`${VS}${e+1}G`},move(e=0,t=0){let r="";return r+=e<0?N_e.left(-e):e>0?N_e.right(e):"",r+=t<0?N_e.up(-t):t>0?N_e.down(t):"",r},strLen(e){for(var t=0,r=e.length,n=-1,a=0;a=0&&n<=128?t+=1:t+=2;return t},restore(e={}){let{after:t,cursor:r,initial:n,input:a,prompt:o,size:l,value:A}=e;if(n=KYr.isPrimitive(n)?String(n):"",a=KYr.isPrimitive(a)?String(a):"",A=KYr.isPrimitive(A)?String(A):"",l){let f=P4.cursor.up(l)+P4.cursor.to(this.strLen(o)),I=a.length-r;return I>0&&(f+=P4.cursor.left(I)),f}if(A||t){let f=!a&&n?-this.strLen(n):-this.strLen(a)+r;return t&&(f-=this.strLen(t)),a===""&&n&&!o.includes(n)&&(f+=this.strLen(n)),P4.cursor.move(f)}}},zYr=P4.erase={screen:tue.screen,up:tue.up,down:tue.down,line:tue.line,lineEnd:tue.lineEnd,lineStart:tue.lineStart,lines(e){let t="";for(let r=0;r{if(!t)return zYr.line+N_e.to(0);let r=o=>[...Ppl(o)].length,n=e.split(/\r?\n/),a=0;for(let o of n)a+=1+Math.floor(Math.max(r(o)-1,0)/t);return(zYr.line+N_e.prevLine()).repeat(a-1)+zYr.line+N_e.to(0)}});var Hxe=H((V$u,fos)=>{"use strict";var Wpl=wt("events"),pos=q5(),qYr=HYr(),Opl=eos(),Mpl=ros(),Hpl=cos(),OV=zG(),D_e=dos(),$Yr=class e extends Wpl{constructor(t={}){super(),this.name=t.name,this.type=t.type,this.options=t,Hpl(this),Opl(this),this.state=new Mpl(this),this.initial=[t.initial,t.default].find(r=>r!=null),this.stdout=t.stdout||process.stdout,this.stdin=t.stdin||process.stdin,this.scale=t.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Qpl(this.options.margin),this.setMaxListeners(0),Ypl(this)}async keypress(t,r={}){this.keypressed=!0;let n=qYr.action(t,qYr(t,r),this.options.actions);this.state.keypress=n,this.emit("keypress",t,n),this.emit("state",this.state.clone());let a=this.options[n.action]||this[n.action]||this.dispatch;if(typeof a=="function")return await a.call(this,t,n);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(D_e.code.beep)}cursorHide(){this.stdout.write(D_e.cursor.hide());let t=OV.onExit(()=>this.cursorShow());this.on("close",()=>{this.cursorShow(),t()})}cursorShow(){this.stdout.write(D_e.cursor.show())}write(t){t&&(this.stdout&&this.state.show!==!1&&this.stdout.write(t),this.state.buffer+=t)}clear(t=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!t||this.options.show===!1)&&this.stdout.write(D_e.cursor.down(t)+D_e.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:t,after:r,rest:n}=this.sections(),{cursor:a,initial:o="",input:l="",value:A=""}=this,f=this.state.size=n.length,I={after:r,cursor:a,initial:o,input:l,prompt:t,size:f,value:A},C=D_e.cursor.restore(I);C&&this.stdout.write(C)}sections(){let{buffer:t,input:r,prompt:n}=this.state;n=pos(n);let a=pos(t),o=a.indexOf(n),l=a.slice(0,o),f=a.slice(o).split(` + `,examples:[["Open the search window","yarn search"]]});MYr.default=xje});var zG=H(aC=>{"use strict";var vpl=Object.prototype.toString,bH=OKe(),Yss=!1,Gje=new Set,Qss={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};aC.longest=(e,t)=>e.reduce((r,n)=>Math.max(r,t?n[t].length:n.length),0);aC.hasColor=e=>!!e&&bH.hasColor(e);var Ykt=aC.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);aC.nativeType=e=>vpl.call(e).slice(8,-1).toLowerCase().replace(/\s/g,"");aC.isAsyncFn=e=>aC.nativeType(e)==="asyncfunction";aC.isPrimitive=e=>e!=null&&typeof e!="object"&&typeof e!="function";aC.resolve=(e,t,...r)=>typeof t=="function"?t.call(e,...r):t;aC.scrollDown=(e=[])=>[...e.slice(1),e[0]];aC.scrollUp=(e=[])=>[e.pop(),...e];aC.reorder=(e=[])=>{let t=e.slice();return t.sort((r,n)=>r.index>n.index?1:r.index{let n=e.length,a=r===n?0:r<0?n-1:r,o=e[t];e[t]=e[a],e[a]=o};aC.width=(e,t=80)=>{let r=e&&e.columns?e.columns:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[0]),process.platform==="win32"?r-1:r};aC.height=(e,t=20)=>{let r=e&&e.rows?e.rows:t;return e&&typeof e.getWindowSize=="function"&&(r=e.getWindowSize()[1]),r};aC.wordWrap=(e,t={})=>{if(!e)return e;typeof t=="number"&&(t={width:t});let{indent:r="",newline:n=` +`+r,width:a=80}=t,o=(n+r).match(/[^\S\n]/g)||[];a-=o.length;let l=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=e.trim(),f=new RegExp(l,"g"),I=A.match(f)||[];return I=I.map(C=>C.replace(/\n$/,"")),t.padEnd&&(I=I.map(C=>C.padEnd(a," "))),t.padStart&&(I=I.map(C=>C.padStart(a," "))),r+I.join(n)};aC.unmute=e=>{let t=e.stack.find(n=>bH.keys.color.includes(n));return t?bH[t]:e.stack.find(n=>n.slice(2)==="bg")?bH[t.slice(2)]:n=>n};aC.pascal=e=>e?e[0].toUpperCase()+e.slice(1):"";aC.inverse=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n));if(t){let n=bH["bg"+aC.pascal(t)];return n?n.black:e}let r=e.stack.find(n=>n.slice(0,2)==="bg");return r?bH[r.slice(2).toLowerCase()]||e:bH.none};aC.complement=e=>{if(!e||!e.stack)return e;let t=e.stack.find(n=>bH.keys.color.includes(n)),r=e.stack.find(n=>n.slice(0,2)==="bg");if(t&&!r)return bH[Qss[t]||t];if(r){let n=r.slice(2).toLowerCase(),a=Qss[n];return a&&bH["bg"+aC.pascal(a)]||e}return bH.none};aC.meridiem=e=>{let t=e.getHours(),r=e.getMinutes(),n=t>=12?"pm":"am";t=t%12;let a=t===0?12:t,o=r<10?"0"+r:r;return a+":"+o+" "+n};aC.set=(e={},t="",r)=>t.split(".").reduce((n,a,o,l)=>{let A=l.length-1>o?n[a]||{}:r;return!aC.isObject(A)&&o{let n=e[t]==null?t.split(".").reduce((a,o)=>a&&a[o],e):e[t];return n??r};aC.mixin=(e,t)=>{if(!Ykt(e))return t;if(!Ykt(t))return e;for(let r of Object.keys(t)){let n=Object.getOwnPropertyDescriptor(t,r);if(hasOwnProperty.call(n,"value"))if(hasOwnProperty.call(e,r)&&Ykt(n.value)){let a=Object.getOwnPropertyDescriptor(e,r);Ykt(a.value)&&a.value!==n.value?e[r]=aC.merge({},e[r],t[r]):Reflect.defineProperty(e,r,n)}else Reflect.defineProperty(e,r,n);else Reflect.defineProperty(e,r,n)}return e};aC.merge=(...e)=>{let t={};for(let r of e)aC.mixin(t,r);return t};aC.mixinEmitter=(e,t)=>{let r=t.constructor.prototype;for(let n of Object.keys(r)){let a=r[n];typeof a=="function"?aC.define(e,n,a.bind(t)):aC.define(e,n,a)}};var Qkt=(e,t)=>{Yss||(Yss=!0,Gje.forEach(r=>r()),e===!0&&process.exit(128+t))},Xss=Qkt.bind(null,!0,15),Jss=Qkt.bind(null,!0,2);aC.onExit=e=>(Gje.size===0&&(process.once("SIGTERM",Xss),process.once("SIGINT",Jss),process.once("exit",Qkt)),Gje.add(e),()=>{Gje.delete(e),Gje.size===0&&(process.off("SIGTERM",Xss),process.off("SIGINT",Jss),process.off("exit",Qkt))});aC.define=(e,t,r)=>{Reflect.defineProperty(e,t,{value:r})};aC.defineExport=(e,t,r)=>{let n;Reflect.defineProperty(e,t,{enumerable:!0,configurable:!0,set(a){n=a},get(){return n?n():r()}})}});var Uss=H(Mxe=>{"use strict";Mxe.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};Mxe.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};Mxe.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};Mxe.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};Mxe.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var jss=H((k$u,Kss)=>{"use strict";Kss.exports=class{_queue=[];_executing=!1;_jobRunner=null;constructor(t){this._jobRunner=t}enqueue=(...t)=>{this._queue.push(t),this._dequeue()};destroy(){this._queue.length=0,this._jobRunner=null}_dequeue(){this._executing||!this._queue.length||(this._executing=!0,this._jobRunner(...this._queue.shift()),setTimeout(()=>{this._executing=!1,this._dequeue()}))}}});var HYr=H((x$u,qss)=>{"use strict";var zss=wt("readline"),Bpl=Uss(),wpl=jss(),Tpl=/^(?:\x1b)([a-zA-Z0-9])$/,Rpl=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Npl={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function Dpl(e){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(e)}function kpl(e){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(e)}var Xkt=(e="",t={})=>{let r,n={name:t.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:e,raw:e,...t};if(Buffer.isBuffer(e)?e[0]>127&&e[1]===void 0?(e[0]-=128,e="\x1B"+String(e)):e=String(e):e!==void 0&&typeof e!="string"?e=String(e):e||(e=n.sequence||""),n.sequence=n.sequence||e||n.name,e==="\r")n.raw=void 0,n.name="return";else if(e===` +`)n.name="enter";else if(e===" ")n.name="tab";else if(e==="\b"||e==="\x7F"||e==="\x1B\x7F"||e==="\x1B\b")n.name="backspace",n.meta=e.charAt(0)==="\x1B";else if(e==="\x1B"||e==="\x1B\x1B")n.name="escape",n.meta=e.length===2;else if(e===" "||e==="\x1B ")n.name="space",n.meta=e.length===2;else if(e<="")n.name=String.fromCharCode(e.charCodeAt(0)+97-1),n.ctrl=!0;else if(e.length===1&&e>="0"&&e<="9")n.name="number";else if(e.length===1&&e>="a"&&e<="z")n.name=e;else if(e.length===1&&e>="A"&&e<="Z")n.name=e.toLowerCase(),n.shift=!0;else if(r=Tpl.exec(e))n.meta=!0,n.shift=/^[A-Z]$/.test(r[1]);else if(r=Rpl.exec(e)){let a=[...e];a[0]==="\x1B"&&a[1]==="\x1B"&&(n.option=!0);let o=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),l=(r[3]||r[5]||1)-1;n.ctrl=!!(l&4),n.meta=!!(l&10),n.shift=!!(l&1),n.code=o,n.name=Npl[o],n.shift=Dpl(o)||n.shift,n.ctrl=kpl(o)||n.ctrl}return n};Xkt.listen=(e={},t)=>{let{stdin:r}=e;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let n=zss.createInterface({terminal:!0,input:r});zss.emitKeypressEvents(r,n);let a=new wpl((A,f)=>t(A,Xkt(A,f),n)),o=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a.enqueue),n.resume(),()=>{r.isTTY&&r.setRawMode(o),r.removeListener("keypress",a.enqueue),a.destroy(),n.pause(),n.close()}};Xkt.action=(e,t,r)=>{let n={...Bpl,...r};return t.ctrl?(t.action=n.ctrl[t.name],t):t.option&&n.option?(t.action=n.option[t.name],t):t.shift?(t.action=n.shift[t.name],t):(t.action=n.keys[t.name],t)};qss.exports=Xkt});var eos=H((G$u,$ss)=>{"use strict";$ss.exports=e=>{e.timers=e.timers||{};let t=e.options.timers;if(t)for(let r of Object.keys(t)){let n=t[r];typeof n=="number"&&(n={interval:n}),xpl(e,r,n)}};function xpl(e,t,r={}){let n=e.timers[t]={name:t,start:Date.now(),ms:0,tick:0},a=r.interval||120;n.frames=r.frames||[],n.loading=!0;let o=setInterval(()=>{n.ms=Date.now()-n.start,n.tick++,e.render()},a);return n.stop=()=>{n.loading=!1,clearInterval(o)},Reflect.defineProperty(n,"interval",{value:o}),e.once("close",()=>n.stop()),n.stop}});var ros=H((F$u,tos)=>{"use strict";var{define:Gpl,width:Fpl}=zG(),YYr=class{constructor(t){let r=t.options;Gpl(this,"_prompt",t),this.type=t.type,this.name=t.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=Fpl(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=t.symbols,this.styles=t.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let t={...this};return t.status=this.status,t.buffer=Buffer.from(t.buffer),delete t.clone,t}set color(t){this._color=t}get color(){let t=this.prompt.styles;if(this.cancelled)return t.cancelled;if(this.submitted)return t.submitted;let r=this._color||t[this.status];return typeof r=="function"?r:t.pending}set loading(t){this._loading=t}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};tos.exports=YYr});var ios=H((Z$u,nos)=>{"use strict";var QYr=zG(),ox=OKe(),XYr={default:ox.noop,noop:ox.noop,set inverse(e){this._inverse=e},get inverse(){return this._inverse||QYr.inverse(this.primary)},set complement(e){this._complement=e},get complement(){return this._complement||QYr.complement(this.primary)},primary:ox.cyan,success:ox.green,danger:ox.magenta,strong:ox.bold,warning:ox.yellow,muted:ox.dim,disabled:ox.gray,dark:ox.dim.gray,underline:ox.underline,set info(e){this._info=e},get info(){return this._info||this.primary},set em(e){this._em=e},get em(){return this._em||this.primary.underline},set heading(e){this._heading=e},get heading(){return this._heading||this.muted.underline},set pending(e){this._pending=e},get pending(){return this._pending||this.primary},set submitted(e){this._submitted=e},get submitted(){return this._submitted||this.success},set cancelled(e){this._cancelled=e},get cancelled(){return this._cancelled||this.danger},set typing(e){this._typing=e},get typing(){return this._typing||this.dim},set placeholder(e){this._placeholder=e},get placeholder(){return this._placeholder||this.primary.dim},set highlight(e){this._highlight=e},get highlight(){return this._highlight||this.inverse}};XYr.merge=(e={})=>{e.styles&&typeof e.styles.enabled=="boolean"&&(ox.enabled=e.styles.enabled),e.styles&&typeof e.styles.visible=="boolean"&&(ox.visible=e.styles.visible);let t=QYr.merge({},XYr,e.styles);delete t.merge;for(let r of Object.keys(ox))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});for(let r of Object.keys(ox.styles))hasOwnProperty.call(t,r)||Reflect.defineProperty(t,r,{get:()=>ox[r]});return t};nos.exports=XYr});var oos=H((L$u,sos)=>{"use strict";var JYr=process.platform==="win32",Bte=OKe(),Zpl=zG(),UYr={...Bte.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Bte.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Bte.symbols.question,submitted:Bte.symbols.check,cancelled:Bte.symbols.cross},separator:{pending:Bte.symbols.pointerSmall,submitted:Bte.symbols.middot,cancelled:Bte.symbols.middot},radio:{off:JYr?"( )":"\u25EF",on:JYr?"(*)":"\u25C9",disabled:JYr?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};UYr.merge=e=>{let t=Zpl.merge({},Bte.symbols,UYr,e.symbols);return delete t.merge,t};sos.exports=UYr});var cos=H((V$u,aos)=>{"use strict";var Lpl=ios(),Vpl=oos(),Ppl=zG();aos.exports=e=>{e.options=Ppl.merge({},e.options.theme,e.options),e.symbols=Vpl.merge(e.options),e.styles=Lpl.merge(e.options)}});var dos=H((gos,Aos)=>{"use strict";var los=process.env.TERM_PROGRAM==="Apple_Terminal",Wpl=q5(),KYr=zG(),P4=Aos.exports=gos,VS="\x1B[",uos="\x07",jYr=!1,tue=P4.code={bell:uos,beep:uos,beginning:`${VS}G`,down:`${VS}J`,esc:VS,getPosition:`${VS}6n`,hide:`${VS}?25l`,line:`${VS}2K`,lineEnd:`${VS}K`,lineStart:`${VS}1K`,restorePosition:VS+(los?"8":"u"),savePosition:VS+(los?"7":"s"),screen:`${VS}2J`,show:`${VS}?25h`,up:`${VS}1J`},N_e=P4.cursor={get hidden(){return jYr},hide(){return jYr=!0,tue.hide},show(){return jYr=!1,tue.show},forward:(e=1)=>`${VS}${e}C`,backward:(e=1)=>`${VS}${e}D`,nextLine:(e=1)=>`${VS}E`.repeat(e),prevLine:(e=1)=>`${VS}F`.repeat(e),up:(e=1)=>e?`${VS}${e}A`:"",down:(e=1)=>e?`${VS}${e}B`:"",right:(e=1)=>e?`${VS}${e}C`:"",left:(e=1)=>e?`${VS}${e}D`:"",to(e,t){return t?`${VS}${t+1};${e+1}H`:`${VS}${e+1}G`},move(e=0,t=0){let r="";return r+=e<0?N_e.left(-e):e>0?N_e.right(e):"",r+=t<0?N_e.up(-t):t>0?N_e.down(t):"",r},strLen(e){for(var t=0,r=e.length,n=-1,a=0;a=0&&n<=128?t+=1:t+=2;return t},restore(e={}){let{after:t,cursor:r,initial:n,input:a,prompt:o,size:l,value:A}=e;if(n=KYr.isPrimitive(n)?String(n):"",a=KYr.isPrimitive(a)?String(a):"",A=KYr.isPrimitive(A)?String(A):"",l){let f=P4.cursor.up(l)+P4.cursor.to(this.strLen(o)),I=a.length-r;return I>0&&(f+=P4.cursor.left(I)),f}if(A||t){let f=!a&&n?-this.strLen(n):-this.strLen(a)+r;return t&&(f-=this.strLen(t)),a===""&&n&&!o.includes(n)&&(f+=this.strLen(n)),P4.cursor.move(f)}}},zYr=P4.erase={screen:tue.screen,up:tue.up,down:tue.down,line:tue.line,lineEnd:tue.lineEnd,lineStart:tue.lineStart,lines(e){let t="";for(let r=0;r{if(!t)return zYr.line+N_e.to(0);let r=o=>[...Wpl(o)].length,n=e.split(/\r?\n/),a=0;for(let o of n)a+=1+Math.floor(Math.max(r(o)-1,0)/t);return(zYr.line+N_e.prevLine()).repeat(a-1)+zYr.line+N_e.to(0)}});var Hxe=H((P$u,fos)=>{"use strict";var Opl=wt("events"),pos=q5(),qYr=HYr(),Mpl=eos(),Hpl=ros(),Ypl=cos(),OV=zG(),D_e=dos(),$Yr=class e extends Opl{constructor(t={}){super(),this.name=t.name,this.type=t.type,this.options=t,Ypl(this),Mpl(this),this.state=new Hpl(this),this.initial=[t.initial,t.default].find(r=>r!=null),this.stdout=t.stdout||process.stdout,this.stdin=t.stdin||process.stdin,this.scale=t.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=Xpl(this.options.margin),this.setMaxListeners(0),Qpl(this)}async keypress(t,r={}){this.keypressed=!0;let n=qYr.action(t,qYr(t,r),this.options.actions);this.state.keypress=n,this.emit("keypress",t,n),this.emit("state",this.state.clone());let a=this.options[n.action]||this[n.action]||this.dispatch;if(typeof a=="function")return await a.call(this,t,n);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(D_e.code.beep)}cursorHide(){this.stdout.write(D_e.cursor.hide());let t=OV.onExit(()=>this.cursorShow());this.on("close",()=>{this.cursorShow(),t()})}cursorShow(){this.stdout.write(D_e.cursor.show())}write(t){t&&(this.stdout&&this.state.show!==!1&&this.stdout.write(t),this.state.buffer+=t)}clear(t=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!t||this.options.show===!1)&&this.stdout.write(D_e.cursor.down(t)+D_e.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:t,after:r,rest:n}=this.sections(),{cursor:a,initial:o="",input:l="",value:A=""}=this,f=this.state.size=n.length,I={after:r,cursor:a,initial:o,input:l,prompt:t,size:f,value:A},C=D_e.cursor.restore(I);C&&this.stdout.write(C)}sections(){let{buffer:t,input:r,prompt:n}=this.state;n=pos(n);let a=pos(t),o=a.indexOf(n),l=a.slice(0,o),f=a.slice(o).split(` `),I=f[0],C=f[f.length-1],E=(n+(r?" "+r:"")).length,N=Et.call(this,this.value),this.result=()=>n.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),o=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),o())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(t,r)=>{if(this.once("submit",t),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(t,r,n){let{options:a,state:o,symbols:l,timers:A}=this,f=A&&A[t];o.timer=f;let I=a[t]||o[t]||l[t],C=r&&r[t]!=null?r[t]:await I;if(C==="")return C;let b=await this.resolve(C,o,r,n);return!b&&r&&r[t]?this.resolve(I,o,r,n):b}async prefix(){let t=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,n=this.state;return n.timer=r,OV.isObject(t)&&(t=t[n.status]||t.pending),OV.hasColor(t)?t:(this.styles[n.status]||this.styles.pending)(t)}async message(){let t=await this.element("message");return OV.hasColor(t)?t:this.styles.strong(t)}async separator(){let t=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,n=this.state;n.timer=r;let a=t[n.status]||t.pending||n.separator,o=await this.resolve(a,n);return OV.isObject(o)&&(o=o[n.status]||o.pending),OV.hasColor(o)?o:this.styles.muted(o)}async pointer(t,r){let n=await this.element("pointer",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=this.index===r,l=o?a.primary:I=>I,A=await this.resolve(n[o?"on":"off"]||n,this.state),f=OV.hasColor(A)?A:l(A);return o?f:" ".repeat(A.length)}}async indicator(t,r){let n=await this.element("indicator",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=t.enabled===!0,l=o?a.success:a.dark,A=n[o?"on":"off"]||n;return OV.hasColor(A)?A:l(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let t=await this.element("hint");return OV.hasColor(t)?t:this.styles.muted(t)}}error(t){return this.state.submitted?"":t||this.state.error}format(t){return t}result(t){return t}validate(t){return this.options.required===!0?this.isValue(t):!0}isValue(t){return t!=null&&t!==""}resolve(t,...r){return OV.resolve(this,t,...r)}get base(){return e.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||OV.height(this.stdout,25)}get width(){return this.options.columns||OV.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(t){this.state.cursor=t}get cursor(){return this.state.cursor}set input(t){this.state.input=t}get input(){return this.state.input}set value(t){this.state.value=t}get value(){let{input:t,value:r}=this.state,n=[r,t].find(this.isValue.bind(this));return this.isValue(n)?n:this.initial}static get prompt(){return t=>new this(t).run()}};function Ypl(e){let t=a=>e[a]===void 0||typeof e[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],n=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(e.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let o=e.options[a];typeof o=="function"&&t(a)?n.includes(a)||(e[a]=o.bind(e)):typeof e[a]!="function"&&(e[a]=o)}}function Qpl(e){typeof e=="number"&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=a=>a%2===0?` -`:" ",n=[];for(let a=0;a<4;a++){let o=r(a);t[a]?n.push(o.repeat(t[a])):n.push("")}return n}fos.exports=$Yr});var mos=H((P$u,hos)=>{"use strict";var Xpl=zG(),Ios={default(e,t){return t},checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||"",t},input(e,t){throw new Error("input role is not implemented yet")},option(e,t){return Ios.default(e,t)},radio(e,t){throw new Error("radio role is not implemented yet")},separator(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||e.symbols.line.repeat(5),t},spacer(e,t){return t}};hos.exports=(e,t={})=>{let r=Xpl.merge({},Ios,t.roles);return r[e]||r.default}});var Fje=H((W$u,yos)=>{"use strict";var Jpl=q5(),Upl=Hxe(),Kpl=mos(),Jkt=zG(),{reorder:eQr,scrollUp:jpl,scrollDown:zpl,isObject:Cos,swap:qpl}=Jkt,tQr=class extends Upl{constructor(t){super(t),this.cursorHide(),this.maxSelected=t.maxSelected||1/0,this.multiple=t.multiple||!1,this.initial=t.initial||0,this.delay=t.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:t,initial:r,autofocus:n,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(t)),this.choices.forEach(o=>o.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Cos(r)&&(r=Object.keys(r)),Array.isArray(r)?(n!=null&&(this.index=this.findIndex(n)),r.forEach(o=>this.enable(this.find(o))),await this.render()):(n!=null&&(r=n),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(t,r){this.state.loadingChoices=!0;let n=[],a=0,o=async(l,A)=>{typeof l=="function"&&(l=await l.call(this)),l instanceof Promise&&(l=await l);for(let f=0;f(this.state.loadingChoices=!1,l))}async toChoice(t,r,n){if(typeof t=="function"&&(t=await t.call(this,this)),t instanceof Promise&&(t=await t),typeof t=="string"&&(t={name:t}),t.normalized)return t;t.normalized=!0;let a=t.value;if(t=Kpl(t.role,this.options)(this,t),typeof t.disabled=="string"&&!t.hint&&(t.hint=t.disabled,t.disabled=!0),t.disabled===!0&&t.hint==null&&(t.hint="(disabled)"),t.index!=null)return t;t.name=t.name||t.key||t.title||t.value||t.message,t.message=t.message||t.name||"",t.value=[t.value,t.name].find(this.isValue.bind(this)),t.input="",t.index=r,t.cursor=0,Jkt.define(t,"parent",n),t.level=n?n.level+1:1,t.indent==null&&(t.indent=n?n.indent+" ":t.indent||""),t.path=n?n.path+"."+t.name:t.name,t.enabled=!!(this.multiple&&!this.isDisabled(t)&&(t.enabled||this.isSelected(t))),this.isDisabled(t)||(this.longest=Math.max(this.longest,Jpl(t.message).length));let l={...t};return t.reset=(A=l.input,f=l.value)=>{for(let I of Object.keys(l))t[I]=l[I];t.input=A,t.value=f},a==null&&typeof t.initial=="function"&&(t.input=await t.initial.call(this,this.state,t,r)),t}async onChoice(t,r){this.emit("choice",t,r,this),typeof t.onChoice=="function"&&await t.onChoice.call(this,this.state,t,r)}async addChoice(t,r,n){let a=await this.toChoice(t,r,n);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(t,r,n){let a={name:"New choice name?",editable:!0,newChoice:!0,...t},o=await this.addChoice(a,r,n);return o.updateChoice=()=>{delete o.newChoice,o.name=o.message=o.input,o.input="",o.cursor=0},this.render()}indent(t){return t.indent==null?t.level>1?" ".repeat(t.level-1):"":t.indent}dispatch(t,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(t,r){return typeof r!="boolean"&&(r=t.enabled),r&&!t.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=t.index,t.enabled=r&&!this.isDisabled(t),t)}space(){if(!this.multiple)return this.alert();if(this.focused)return this.toggle(this.focused),this.render()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!t),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(t=>t.enabled=!t.enabled),this.render())}g(){if(!this.choices.some(r=>!!r.parent))return this.a();let t=this.focused;return this.toggle(t.parent&&!t.choices?t.parent:t),this.render()}toggle(t,r){if(!t.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!t.enabled),t.enabled=r,t.choices&&t.choices.forEach(a=>this.toggle(a,r));let n=t.parent;for(;n;){let a=n.choices.filter(o=>this.isDisabled(o));n.enabled=a.every(o=>o.enabled===!0),n=n.parent}return _os(this,this.choices),this.emit("toggle",t,this),t}enable(t){return this.selected.length>=this.maxSelected?this.alert():(t.enabled=!this.isDisabled(t),t.choices&&t.choices.forEach(this.enable.bind(this)),t)}disable(t){return t.enabled=!1,t.choices&&t.choices.forEach(this.disable.bind(this)),t}number(t){this.num+=t;let r=n=>{let a=Number(n);if(a>this.choices.length-1)return this.alert();let o=this.focused,l=this.choices.find(A=>a===A.index);if(!l.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(l)===-1){let A=eQr(this.choices),f=A.indexOf(l);if(o.index>f){let I=A.slice(f,f+this.limit),C=A.filter(b=>!I.includes(b));this.choices=I.concat(C)}else{let I=f-this.limit+1;this.choices=A.slice(I).concat(A.slice(0,I))}}return this.index=this.choices.indexOf(l),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(n=>{let a=this.choices.length,o=this.num,l=(A=!1,f)=>{clearTimeout(this.numberTimeout),A&&(f=r(o)),this.num="",n(f)};if(o==="0"||o.length===1&&+(o+"0")>a)return l(!0);if(Number(o)>a)return l(!1,this.alert());this.numberTimeout=setTimeout(()=>l(!0),this.delay)})}home(){return this.choices=eQr(this.choices),this.index=0,this.render()}end(){let t=this.choices.length-this.limit,r=eQr(this.choices);return this.choices=r.slice(t).concat(r.slice(0,t)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===0?this.alert():t>r&&n===0?this.scrollUp():(this.index=(n-1%t+t)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.up():this.render())}down(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===r-1?this.alert():t>r&&n===r-1?this.scrollDown():(this.index=(n+1)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.down():this.render())}scrollUp(t=0){return this.choices=jpl(this.choices),this.index=t,this.isDisabled()?this.up():this.render()}scrollDown(t=this.visible.length-1){return this.choices=zpl(this.choices),this.index=t,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(t){qpl(this.choices,this.index,t)}allChoicesAreDisabled(t=this.choices){return t.every(r=>this.isDisabled(r))}isDisabled(t=this.focused){return t&&["disabled","collapsed","hidden","completing","readonly"].some(n=>t[n]===!0)?!0:t&&t.role==="heading"}isEnabled(t=this.focused){if(Array.isArray(t))return t.every(r=>this.isEnabled(r));if(t.choices){let r=t.choices.filter(n=>!this.isDisabled(n));return t.enabled&&r.every(n=>this.isEnabled(n))}return t.enabled&&!this.isDisabled(t)}isChoice(t,r){return t.name===r||t.index===Number(r)}isSelected(t){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(t,r)):this.isChoice(t,this.initial)}map(t=[],r="value"){return[].concat(t||[]).reduce((n,a)=>(n[a]=this.find(a,r),n),{})}filter(t,r){let a=typeof t=="function"?t:(A,f)=>[A.name,f].includes(t),l=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?l.map(A=>A[r]):l}find(t,r){if(Cos(t))return r?t[r]:t;let a=typeof t=="function"?t:(l,A)=>[l.name,A].includes(t),o=this.choices.find(a);if(o)return r?o[r]:o}findIndex(t){return this.choices.indexOf(this.find(t))}async submit(){let t=this.focused;if(!t)return this.alert();if(t.newChoice)return t.input?(t.updateChoice(),this.render()):this.alert();if(this.choices.some(l=>l.newChoice))return this.alert();let{reorder:r,sort:n}=this.options,a=this.multiple===!0,o=this.selected;return o===void 0?this.alert():(Array.isArray(o)&&r!==!1&&n!==!0&&(o=Jkt.reorder(o)),this.value=a?o.map(l=>l.name):o.name,super.submit())}set choices(t=[]){this.state._choices=this.state._choices||[],this.state.choices=t;for(let r of t)this.state._choices.some(n=>n.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let n=this.find(r);n&&(this.initial=n.index,this.focus(n,!0))}}}get choices(){return _os(this,this.state.choices||[])}set visible(t){this.state.visible=t}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(t){this.state.limit=t}get limit(){let{state:t,options:r,choices:n}=this,a=t.limit||this._limit||r.limit||n.length;return Math.min(a,this.height)}set value(t){super.value=t}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(t){this.state.index=t}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let t=this.choices[this.index];return t&&this.state.submitted&&this.multiple!==!0&&(t.enabled=!0),t}get selectable(){return this.choices.filter(t=>!this.isDisabled(t))}get selected(){return this.multiple?this.enabled:this.focused}};function _os(e,t){if(t instanceof Promise)return t;if(typeof t=="function"){if(Jkt.isAsyncFn(t))return t;t=t.call(e,e)}for(let r of t){if(Array.isArray(r.choices)){let n=r.choices.filter(a=>!e.isDisabled(a));r.enabled=n.every(a=>a.enabled===!0)}e.isDisabled(r)===!0&&delete r.enabled}return t}yos.exports=tQr});var rue=H((O$u,bos)=>{"use strict";var $pl=Fje(),rQr=zG(),nQr=class extends $pl{constructor(t){super(t),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(t,r){if(this.multiple)return this[r.name]?await this[r.name](t,r):await super.dispatch(t,r);this.alert()}separator(){if(this.options.separator)return super.separator();let t=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():t}pointer(t,r){return!this.multiple||this.options.pointer?super.pointer(t,r):""}indicator(t,r){return this.multiple?super.indicator(t,r):""}choiceMessage(t,r){let n=this.resolve(t.message,this.state,t,r);return t.role==="heading"&&!rQr.hasColor(n)&&(n=this.styles.strong(n)),this.resolve(n,this.state,t,r)}choiceSeparator(){return":"}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await this.indicator(t,r)+(t.pad||""),l=await this.resolve(t.hint,this.state,t,r);l&&!rQr.hasColor(l)&&(l=this.styles.muted(l));let A=this.indent(t),f=await this.choiceMessage(t,r),I=()=>[this.margin[3],A+a+o,f,this.margin[1],l].filter(Boolean).join(" ");return t.role==="heading"?I():t.disabled?(rQr.hasColor(f)||(f=this.styles.disabled(f)),I()):(n&&(f=this.styles.em(f)),I())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let t=this.visible.map(async(o,l)=>await this.renderChoice(o,l)),r=await Promise.all(t);r.length||r.push(this.styles.danger("No matching choices"));let n=this.margin[0]+r.join(` +`.repeat(r))}catch{}this.emit("close")}start(){!this.stop&&this.options.show!==!1&&(this.stop=qYr.listen(this,this.keypress.bind(this)),this.once("close",this.stop),this.emit("start",this))}async skip(){return this.skipped=this.options.skip===!0,typeof this.options.skip=="function"&&(this.skipped=await this.options.skip.call(this,this.name,this.value)),this.skipped}async initialize(){let{format:t,options:r,result:n}=this;if(this.format=()=>t.call(this,this.value),this.result=()=>n.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),o=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),o())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(t,r)=>{if(this.once("submit",t),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(t,r,n){let{options:a,state:o,symbols:l,timers:A}=this,f=A&&A[t];o.timer=f;let I=a[t]||o[t]||l[t],C=r&&r[t]!=null?r[t]:await I;if(C==="")return C;let b=await this.resolve(C,o,r,n);return!b&&r&&r[t]?this.resolve(I,o,r,n):b}async prefix(){let t=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,n=this.state;return n.timer=r,OV.isObject(t)&&(t=t[n.status]||t.pending),OV.hasColor(t)?t:(this.styles[n.status]||this.styles.pending)(t)}async message(){let t=await this.element("message");return OV.hasColor(t)?t:this.styles.strong(t)}async separator(){let t=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,n=this.state;n.timer=r;let a=t[n.status]||t.pending||n.separator,o=await this.resolve(a,n);return OV.isObject(o)&&(o=o[n.status]||o.pending),OV.hasColor(o)?o:this.styles.muted(o)}async pointer(t,r){let n=await this.element("pointer",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=this.index===r,l=o?a.primary:I=>I,A=await this.resolve(n[o?"on":"off"]||n,this.state),f=OV.hasColor(A)?A:l(A);return o?f:" ".repeat(A.length)}}async indicator(t,r){let n=await this.element("indicator",t,r);if(typeof n=="string"&&OV.hasColor(n))return n;if(n){let a=this.styles,o=t.enabled===!0,l=o?a.success:a.dark,A=n[o?"on":"off"]||n;return OV.hasColor(A)?A:l(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let t=await this.element("hint");return OV.hasColor(t)?t:this.styles.muted(t)}}error(t){return this.state.submitted?"":t||this.state.error}format(t){return t}result(t){return t}validate(t){return this.options.required===!0?this.isValue(t):!0}isValue(t){return t!=null&&t!==""}resolve(t,...r){return OV.resolve(this,t,...r)}get base(){return e.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||OV.height(this.stdout,25)}get width(){return this.options.columns||OV.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(t){this.state.cursor=t}get cursor(){return this.state.cursor}set input(t){this.state.input=t}get input(){return this.state.input}set value(t){this.state.value=t}get value(){let{input:t,value:r}=this.state,n=[r,t].find(this.isValue.bind(this));return this.isValue(n)?n:this.initial}static get prompt(){return t=>new this(t).run()}};function Qpl(e){let t=a=>e[a]===void 0||typeof e[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],n=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(e.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let o=e.options[a];typeof o=="function"&&t(a)?n.includes(a)||(e[a]=o.bind(e)):typeof e[a]!="function"&&(e[a]=o)}}function Xpl(e){typeof e=="number"&&(e=[e,e,e,e]);let t=[].concat(e||[]),r=a=>a%2===0?` +`:" ",n=[];for(let a=0;a<4;a++){let o=r(a);t[a]?n.push(o.repeat(t[a])):n.push("")}return n}fos.exports=$Yr});var mos=H((W$u,hos)=>{"use strict";var Jpl=zG(),Ios={default(e,t){return t},checkbox(e,t){throw new Error("checkbox role is not implemented yet")},editable(e,t){throw new Error("editable role is not implemented yet")},expandable(e,t){throw new Error("expandable role is not implemented yet")},heading(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||"",t},input(e,t){throw new Error("input role is not implemented yet")},option(e,t){return Ios.default(e,t)},radio(e,t){throw new Error("radio role is not implemented yet")},separator(e,t){return t.disabled="",t.indicator=[t.indicator," "].find(r=>r!=null),t.message=t.message||e.symbols.line.repeat(5),t},spacer(e,t){return t}};hos.exports=(e,t={})=>{let r=Jpl.merge({},Ios,t.roles);return r[e]||r.default}});var Fje=H((O$u,yos)=>{"use strict";var Upl=q5(),Kpl=Hxe(),jpl=mos(),Jkt=zG(),{reorder:eQr,scrollUp:zpl,scrollDown:qpl,isObject:Cos,swap:$pl}=Jkt,tQr=class extends Kpl{constructor(t){super(t),this.cursorHide(),this.maxSelected=t.maxSelected||1/0,this.multiple=t.multiple||!1,this.initial=t.initial||0,this.delay=t.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:t,initial:r,autofocus:n,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(t)),this.choices.forEach(o=>o.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Cos(r)&&(r=Object.keys(r)),Array.isArray(r)?(n!=null&&(this.index=this.findIndex(n)),r.forEach(o=>this.enable(this.find(o))),await this.render()):(n!=null&&(r=n),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(t,r){this.state.loadingChoices=!0;let n=[],a=0,o=async(l,A)=>{typeof l=="function"&&(l=await l.call(this)),l instanceof Promise&&(l=await l);for(let f=0;f(this.state.loadingChoices=!1,l))}async toChoice(t,r,n){if(typeof t=="function"&&(t=await t.call(this,this)),t instanceof Promise&&(t=await t),typeof t=="string"&&(t={name:t}),t.normalized)return t;t.normalized=!0;let a=t.value;if(t=jpl(t.role,this.options)(this,t),typeof t.disabled=="string"&&!t.hint&&(t.hint=t.disabled,t.disabled=!0),t.disabled===!0&&t.hint==null&&(t.hint="(disabled)"),t.index!=null)return t;t.name=t.name||t.key||t.title||t.value||t.message,t.message=t.message||t.name||"",t.value=[t.value,t.name].find(this.isValue.bind(this)),t.input="",t.index=r,t.cursor=0,Jkt.define(t,"parent",n),t.level=n?n.level+1:1,t.indent==null&&(t.indent=n?n.indent+" ":t.indent||""),t.path=n?n.path+"."+t.name:t.name,t.enabled=!!(this.multiple&&!this.isDisabled(t)&&(t.enabled||this.isSelected(t))),this.isDisabled(t)||(this.longest=Math.max(this.longest,Upl(t.message).length));let l={...t};return t.reset=(A=l.input,f=l.value)=>{for(let I of Object.keys(l))t[I]=l[I];t.input=A,t.value=f},a==null&&typeof t.initial=="function"&&(t.input=await t.initial.call(this,this.state,t,r)),t}async onChoice(t,r){this.emit("choice",t,r,this),typeof t.onChoice=="function"&&await t.onChoice.call(this,this.state,t,r)}async addChoice(t,r,n){let a=await this.toChoice(t,r,n);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(t,r,n){let a={name:"New choice name?",editable:!0,newChoice:!0,...t},o=await this.addChoice(a,r,n);return o.updateChoice=()=>{delete o.newChoice,o.name=o.message=o.input,o.input="",o.cursor=0},this.render()}indent(t){return t.indent==null?t.level>1?" ".repeat(t.level-1):"":t.indent}dispatch(t,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(t,r){return typeof r!="boolean"&&(r=t.enabled),r&&!t.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=t.index,t.enabled=r&&!this.isDisabled(t),t)}space(){if(!this.multiple)return this.alert();if(this.focused)return this.toggle(this.focused),this.render()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!t),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(t=>t.enabled=!t.enabled),this.render())}g(){if(!this.choices.some(r=>!!r.parent))return this.a();let t=this.focused;return this.toggle(t.parent&&!t.choices?t.parent:t),this.render()}toggle(t,r){if(!t.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!t.enabled),t.enabled=r,t.choices&&t.choices.forEach(a=>this.toggle(a,r));let n=t.parent;for(;n;){let a=n.choices.filter(o=>this.isDisabled(o));n.enabled=a.every(o=>o.enabled===!0),n=n.parent}return _os(this,this.choices),this.emit("toggle",t,this),t}enable(t){return this.selected.length>=this.maxSelected?this.alert():(t.enabled=!this.isDisabled(t),t.choices&&t.choices.forEach(this.enable.bind(this)),t)}disable(t){return t.enabled=!1,t.choices&&t.choices.forEach(this.disable.bind(this)),t}number(t){this.num+=t;let r=n=>{let a=Number(n);if(a>this.choices.length-1)return this.alert();let o=this.focused,l=this.choices.find(A=>a===A.index);if(!l.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(l)===-1){let A=eQr(this.choices),f=A.indexOf(l);if(o.index>f){let I=A.slice(f,f+this.limit),C=A.filter(b=>!I.includes(b));this.choices=I.concat(C)}else{let I=f-this.limit+1;this.choices=A.slice(I).concat(A.slice(0,I))}}return this.index=this.choices.indexOf(l),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(n=>{let a=this.choices.length,o=this.num,l=(A=!1,f)=>{clearTimeout(this.numberTimeout),A&&(f=r(o)),this.num="",n(f)};if(o==="0"||o.length===1&&+(o+"0")>a)return l(!0);if(Number(o)>a)return l(!1,this.alert());this.numberTimeout=setTimeout(()=>l(!0),this.delay)})}home(){return this.choices=eQr(this.choices),this.index=0,this.render()}end(){let t=this.choices.length-this.limit,r=eQr(this.choices);return this.choices=r.slice(t).concat(r.slice(0,t)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===0?this.alert():t>r&&n===0?this.scrollUp():(this.index=(n-1%t+t)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.up():this.render())}down(){let t=this.choices.length,r=this.visible.length,n=this.index;return this.options.scroll===!1&&n===r-1?this.alert():t>r&&n===r-1?this.scrollDown():(this.index=(n+1)%t,this.isDisabled()&&!this.allChoicesAreDisabled()?this.down():this.render())}scrollUp(t=0){return this.choices=zpl(this.choices),this.index=t,this.isDisabled()?this.up():this.render()}scrollDown(t=this.visible.length-1){return this.choices=qpl(this.choices),this.index=t,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(t){$pl(this.choices,this.index,t)}allChoicesAreDisabled(t=this.choices){return t.every(r=>this.isDisabled(r))}isDisabled(t=this.focused){return t&&["disabled","collapsed","hidden","completing","readonly"].some(n=>t[n]===!0)?!0:t&&t.role==="heading"}isEnabled(t=this.focused){if(Array.isArray(t))return t.every(r=>this.isEnabled(r));if(t.choices){let r=t.choices.filter(n=>!this.isDisabled(n));return t.enabled&&r.every(n=>this.isEnabled(n))}return t.enabled&&!this.isDisabled(t)}isChoice(t,r){return t.name===r||t.index===Number(r)}isSelected(t){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(t,r)):this.isChoice(t,this.initial)}map(t=[],r="value"){return[].concat(t||[]).reduce((n,a)=>(n[a]=this.find(a,r),n),{})}filter(t,r){let a=typeof t=="function"?t:(A,f)=>[A.name,f].includes(t),l=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?l.map(A=>A[r]):l}find(t,r){if(Cos(t))return r?t[r]:t;let a=typeof t=="function"?t:(l,A)=>[l.name,A].includes(t),o=this.choices.find(a);if(o)return r?o[r]:o}findIndex(t){return this.choices.indexOf(this.find(t))}async submit(){let t=this.focused;if(!t)return this.alert();if(t.newChoice)return t.input?(t.updateChoice(),this.render()):this.alert();if(this.choices.some(l=>l.newChoice))return this.alert();let{reorder:r,sort:n}=this.options,a=this.multiple===!0,o=this.selected;return o===void 0?this.alert():(Array.isArray(o)&&r!==!1&&n!==!0&&(o=Jkt.reorder(o)),this.value=a?o.map(l=>l.name):o.name,super.submit())}set choices(t=[]){this.state._choices=this.state._choices||[],this.state.choices=t;for(let r of t)this.state._choices.some(n=>n.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let n=this.find(r);n&&(this.initial=n.index,this.focus(n,!0))}}}get choices(){return _os(this,this.state.choices||[])}set visible(t){this.state.visible=t}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(t){this.state.limit=t}get limit(){let{state:t,options:r,choices:n}=this,a=t.limit||this._limit||r.limit||n.length;return Math.min(a,this.height)}set value(t){super.value=t}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(t){this.state.index=t}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let t=this.choices[this.index];return t&&this.state.submitted&&this.multiple!==!0&&(t.enabled=!0),t}get selectable(){return this.choices.filter(t=>!this.isDisabled(t))}get selected(){return this.multiple?this.enabled:this.focused}};function _os(e,t){if(t instanceof Promise)return t;if(typeof t=="function"){if(Jkt.isAsyncFn(t))return t;t=t.call(e,e)}for(let r of t){if(Array.isArray(r.choices)){let n=r.choices.filter(a=>!e.isDisabled(a));r.enabled=n.every(a=>a.enabled===!0)}e.isDisabled(r)===!0&&delete r.enabled}return t}yos.exports=tQr});var rue=H((M$u,bos)=>{"use strict";var efl=Fje(),rQr=zG(),nQr=class extends efl{constructor(t){super(t),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(t,r){if(this.multiple)return this[r.name]?await this[r.name](t,r):await super.dispatch(t,r);this.alert()}separator(){if(this.options.separator)return super.separator();let t=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():t}pointer(t,r){return!this.multiple||this.options.pointer?super.pointer(t,r):""}indicator(t,r){return this.multiple?super.indicator(t,r):""}choiceMessage(t,r){let n=this.resolve(t.message,this.state,t,r);return t.role==="heading"&&!rQr.hasColor(n)&&(n=this.styles.strong(n)),this.resolve(n,this.state,t,r)}choiceSeparator(){return":"}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await this.indicator(t,r)+(t.pad||""),l=await this.resolve(t.hint,this.state,t,r);l&&!rQr.hasColor(l)&&(l=this.styles.muted(l));let A=this.indent(t),f=await this.choiceMessage(t,r),I=()=>[this.margin[3],A+a+o,f,this.margin[1],l].filter(Boolean).join(" ");return t.role==="heading"?I():t.disabled?(rQr.hasColor(f)||(f=this.styles.disabled(f)),I()):(n&&(f=this.styles.em(f)),I())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let t=this.visible.map(async(o,l)=>await this.renderChoice(o,l)),r=await Promise.all(t);r.length||r.push(this.styles.danger("No matching choices"));let n=this.margin[0]+r.join(` `),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,n].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(t=>this.styles.primary(t.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:t,size:r}=this.state,n="",a=await this.header(),o=await this.prefix(),l=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(n=[o,A,l,""].join(" "),this.state.prompt=n);let f=await this.format(),I=await this.error()||await this.hint(),C=await this.renderChoices(),b=await this.footer();f&&(n+=f),I&&!n.includes(I)&&(n+=" "+I),t&&!f&&!C.trim()&&this.multiple&&this.emptyError!=null&&(n+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,n,C,b].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};bos.exports=nQr});var Sos=H((M$u,Eos)=>{"use strict";var efl=rue(),tfl=(e,t)=>{let r=e?new RegExp(e,"ig"):/$^/;return n=>e?n.replace(r,a=>t(a)):n},iQr=class extends efl{constructor(t){super(t),this.cursorShow()}moveCursor(t){this.state.cursor+=t}dispatch(t){return this.append(t)}space(t){return this.options.multiple?super.space(t):this.append(t)}append(t){let{cursor:r,input:n}=this.state;return this.input=n.slice(0,r)+t+n.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:t,input:r}=this.state;return r?(this.input=r.slice(0,t-1)+r.slice(t),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:t,input:r}=this.state;return r[t]===void 0?this.alert():(this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.complete())}number(t){return this.append(t)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(t=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,t,r);let n=t.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(n))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(t=>this.styles.primary(t.message)).join(", ");if(this.state.submitted){let t=this.value=this.input=this.focused.value;return this.styles.primary(t)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let t=this.options.highlight||this.styles.complement,r=(o,l)=>o&&(t.stack?t(o):t.call(this,o)),n=tfl(this.input,r),a=this.choices;this.choices=a.map(o=>({...o,message:n(o.message)})),await super.render(),this.choices=a}submit(){return this.options.multiple&&(this.value=this.selected.map(t=>t.name)),super.submit()}};Eos.exports=iQr});var oQr=H((H$u,vos)=>{"use strict";var sQr=zG();vos.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:n="",pos:a,showCursor:o=!0,color:l}=t,A=l||e.styles.placeholder,f=sQr.inverse(e.styles.primary),I=F=>f(e.styles.black(F)),C=r,b=" ",E=I(b);if(e.blink&&e.blink.off===!0&&(I=F=>F,E=""),o&&a===0&&n===""&&r==="")return I(b);if(o&&a===0&&(r===n||r===""))return I(n[0])+A(n.slice(1));n=sQr.isPrimitive(n)?`${n}`:"",r=sQr.isPrimitive(r)?`${r}`:"";let N=n&&n.startsWith(r)&&n!==r,B=N?I(n[r.length]):E;if(a!==r.length&&o===!0&&(C=r.slice(0,a)+I(r[a])+r.slice(a+1),B=""),o===!1&&(B=""),N){let F=e.styles.unstyle(C+B);return C+B+A(n.slice(F.length))}return C+B}});var Ukt=H((Y$u,Bos)=>{"use strict";var rfl=q5(),nfl=rue(),ifl=oQr(),aQr=class extends nfl{constructor(t){super({...t,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(t){return await super.reset(),t===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(t){return!!t&&this.append(t)}append(t){let r=this.focused;if(!r)return this.alert();let{cursor:n,input:a}=r;return r.value=r.input=a.slice(0,n)+t+a.slice(n),r.cursor++,this.render()}delete(){let t=this.focused;if(!t||t.cursor<=0)return this.alert();let{cursor:r,input:n}=t;return t.value=t.input=n.slice(0,r-1)+n.slice(r),t.cursor--,this.render()}deleteForward(){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:n}=t;if(n[r]===void 0)return this.alert();let a=`${n}`.slice(0,r)+`${n}`.slice(r+1);return t.value=t.input=a,this.render()}right(){let t=this.focused;return t?t.cursor>=t.input.length?this.alert():(t.cursor++,this.render()):this.alert()}left(){let t=this.focused;return t?t.cursor<=0?this.alert():(t.cursor--,this.render()):this.alert()}space(t,r){return this.dispatch(t,r)}number(t,r){return this.dispatch(t,r)}next(){let t=this.focused;if(!t)return this.alert();let{initial:r,input:n}=t;return r&&r.startsWith(n)&&n!==r?(t.value=t.input=r,t.cursor=t.value.length,this.render()):super.next()}prev(){let t=this.focused;return t?t.cursor===0?super.prev():(t.value=t.input="",t.cursor=0,this.render()):this.alert()}separator(){return""}format(t){return this.state.submitted?"":super.format(t)}pointer(){return""}indicator(t){return t.input?"\u29BF":"\u2299"}async choiceSeparator(t,r){let n=await this.resolve(t.separator,this.state,t,r)||":";return n?" "+this.styles.disabled(n):""}async renderChoice(t,r){await this.onChoice(t,r);let{state:n,styles:a}=this,{cursor:o,initial:l="",name:A,input:f=""}=t,{muted:I,submitted:C,primary:b,danger:E}=a,N=this.index===r,B=t.validate||(()=>!0),F=await this.choiceSeparator(t,r),Q=t.message;this.align==="right"&&(Q=Q.padStart(this.longest+1," ")),this.align==="left"&&(Q=Q.padEnd(this.longest+1," "));let X=this.values[A]=f||l,ae=f?"success":"dark";await B.call(t,X,this.state)!==!0&&(ae="danger");let ne=a[ae],ce=ne(await this.indicator(t,r))+(t.pad||""),fe=this.indent(t),ue=()=>[fe,ce,Q+F,f].filter(Boolean).join(" ");if(n.submitted)return Q=rfl(Q),f=C(f),ue();if(t.format)f=await t.format.call(this,f,t,r);else{let de=this.styles.muted;f=ifl(this,{input:f,initial:l,pos:o,showCursor:N,color:de})}return this.isValue(f)||(f=this.styles.muted(this.symbols.ellipsis)),t.result&&(this.values[A]=await t.result.call(this,X,t,r)),N&&(Q=b(Q)),t.error?f+=(f?" ":"")+E(t.error.trim()):t.hint&&(f+=(f?" ":"")+I(t.hint.trim())),ue()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Bos.exports=aQr});var cQr=H((Q$u,Tos)=>{"use strict";var sfl=Ukt(),ofl=()=>{throw new Error("expected prompt to have a custom authenticate method")},wos=(e=ofl)=>{class t extends sfl{constructor(n){super(n)}async submit(){this.value=await e.call(this,this.values,this.state),super.base.submit.call(this)}static create(n){return wos(n)}}return t};Tos.exports=wos()});var Dos=H((X$u,Nos)=>{"use strict";var afl=cQr();function cfl(e,t){return e.username===this.options.username&&e.password===this.options.password}var Ros=(e=cfl)=>{let t=[{name:"username",message:"username"},{name:"password",message:"password",format(n){return this.options.showPassword?n:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(n.length))}}];class r extends afl.create(e){constructor(a){super({...a,choices:t})}static create(a){return Ros(a)}}return r};Nos.exports=Ros()});var Kkt=H((J$u,kos)=>{"use strict";var lfl=Hxe(),{isPrimitive:ufl,hasColor:gfl}=zG(),lQr=class extends lfl{constructor(t){super(t),this.cursorHide()}async initialize(){let t=await this.resolve(this.initial,this.state);this.input=await this.cast(t),await super.initialize()}dispatch(t){return this.isValue(t)?(this.input=t,this.submit()):this.alert()}format(t){let{styles:r,state:n}=this;return n.submitted?r.success(t):r.primary(t)}cast(t){return this.isTrue(t)}isTrue(t){return/^[ty1]/i.test(t)}isFalse(t){return/^[fn0]/i.test(t)}isValue(t){return ufl(t)&&(this.isTrue(t)||this.isFalse(t))}async hint(){if(this.state.status==="pending"){let t=await this.element("hint");return gfl(t)?t:this.styles.muted(t)}}async render(){let{input:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=this.styles.muted(this.default),A=[n,o,l,a].filter(Boolean).join(" ");this.state.prompt=A;let f=await this.header(),I=this.value=this.cast(t),C=await this.format(I),b=await this.error()||await this.hint(),E=await this.footer();b&&!A.includes(b)&&(C+=" "+b),A+=" "+C,this.clear(r),this.write([f,A,E].filter(Boolean).join(` -`)),this.restore()}set value(t){super.value=t}get value(){return this.cast(super.value)}};kos.exports=lQr});var Gos=H((U$u,xos)=>{"use strict";var Afl=Kkt(),uQr=class extends Afl{constructor(t){super(t),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};xos.exports=uQr});var Zos=H((K$u,Fos)=>{"use strict";var dfl=rue(),pfl=Ukt(),Yxe=pfl.prototype,gQr=class extends dfl{constructor(t){super({...t,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(t,r){let n=this.focused,a=n.parent||{};return!n.editable&&!a.editable&&(t==="a"||t==="i")?super[t]():Yxe.dispatch.call(this,t,r)}append(t,r){return Yxe.append.call(this,t,r)}delete(t,r){return Yxe.delete.call(this,t,r)}space(t){return this.focused.editable?this.append(t):super.space()}number(t){return this.focused.editable?this.append(t):super.number(t)}next(){return this.focused.editable?Yxe.next.call(this):super.next()}prev(){return this.focused.editable?Yxe.prev.call(this):super.prev()}async indicator(t,r){let n=t.indicator||"",a=t.editable?n:super.indicator(t,r);return await this.resolve(a,this.state,t,r)||""}indent(t){return t.role==="heading"?"":t.editable?" ":" "}async renderChoice(t,r){return t.indent="",t.editable?Yxe.renderChoice.call(this,t,r):super.renderChoice(t,r)}error(){return""}footer(){return this.state.error}async validate(){let t=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let n=r.parent?this.value[r.parent.name]:this.value;if(r.editable?n=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(n=r.enabled===!0),t=await r.validate(n,this.state),t!==!0)break}return t!==!0&&(this.state.error=typeof t=="string"?t:"Invalid Input"),t}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(t=>t.newChoice))return this.alert();this.value={};for(let t of this.choices){let r=t.parent?this.value[t.parent.name]:this.value;if(t.role==="heading"){this.value[t.name]={};continue}t.editable?r[t.name]=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r[t.name]=t.enabled===!0)}return this.base.submit.call(this)}};Fos.exports=gQr});var k_e=H((j$u,Los)=>{"use strict";var ffl=Hxe(),Ifl=HYr(),hfl=oQr(),{isPrimitive:mfl}=zG(),AQr=class extends ffl{constructor(t){super(t),this.initial=mfl(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[],this.keypressTimeout=this.options.keypressTimeout!==void 0?this.options.keypressTimeout:null}async keypress(t,r=t?Ifl(t,{}):{}){let n=Date.now(),a=n-this.lastKeypress;this.lastKeypress=n;let o=r.name==="return"||r.name==="enter",l=this.state.prevKeypress,A;if(this.state.prevKeypress=r,this.keypressTimeout!=null&&o){if(a=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(t){return!!t}async format(t=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(t||r):hfl(this,{input:t,initial:r,pos:this.cursor})}async render(){let t=this.state.size,r=await this.prefix(),n=await this.separator(),a=await this.message(),o=[r,a,n].filter(Boolean).join(" ");this.state.prompt=o;let l=await this.header(),A=await this.format(),f=await this.error()||await this.hint(),I=await this.footer();f&&!A.includes(f)&&(A+=" "+f),o+=" "+A,this.clear(t),this.write([l,o,I].filter(Boolean).join(` -`)),this.restore()}};Los.exports=AQr});var Pos=H((z$u,Vos)=>{"use strict";var Cfl=e=>e.filter((t,r)=>e.lastIndexOf(t)===r),jkt=e=>Cfl(e).filter(Boolean);Vos.exports=(e,t={},r="")=>{let{past:n=[],present:a=""}=t,o,l;switch(e){case"prev":case"undo":return o=n.slice(0,n.length-1),l=n[n.length-1]||"",{past:jkt([r,...o]),present:l};case"next":case"redo":return o=n.slice(1),l=n[0]||"",{past:jkt([...o,r]),present:l};case"save":return{past:jkt([...n,r]),present:""};case"remove":return l=jkt(n.filter(A=>A!==r)),a="",l.length&&(a=l.pop()),{past:l,present:a};default:throw new Error(`Invalid action: "${e}"`)}}});var pQr=H((q$u,Oos)=>{"use strict";var _fl=k_e(),Wos=Pos(),dQr=class extends _fl{constructor(t){super(t);let r=this.options.history;if(r&&r.store){let n=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:n},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(t){return this.store?(this.data=Wos(t,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=Wos("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Oos.exports=dQr});var Hos=H(($$u,Mos)=>{"use strict";var yfl=k_e(),fQr=class extends yfl{format(){return""}};Mos.exports=fQr});var Qos=H((eeg,Yos)=>{"use strict";var bfl=k_e(),IQr=class extends bfl{constructor(t={}){super(t),this.sep=this.options.separator||/, */,this.initial=t.initial||""}split(t=this.value){return t?String(t).split(this.sep):[]}format(){let t=this.state.submitted?this.styles.primary:r=>r;return this.list.map(t).join(", ")}async submit(t){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Yos.exports=IQr});var Jos=H((teg,Xos)=>{"use strict";var Efl=rue(),hQr=class extends Efl{constructor(t){super({...t,multiple:!0})}};Xos.exports=hQr});var CQr=H((reg,Uos)=>{"use strict";var Sfl=k_e(),mQr=class extends Sfl{constructor(t={}){super({style:"number",...t}),this.min=this.isValue(t.min)?this.toNumber(t.min):-1/0,this.max=this.isValue(t.max)?this.toNumber(t.max):1/0,this.delay=t.delay!=null?t.delay:1e3,this.float=t.float!==!1,this.round=t.round===!0||t.float===!1,this.major=t.major||10,this.minor=t.minor||1,this.initial=t.initial!=null?t.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(t){return!/[-+.]/.test(t)||t==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(t)}number(t){return super.append(t)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(t){let r=t||this.minor,n=this.toNumber(this.input);return n>this.max+r?this.alert():(this.input=`${n+r}`,this.render())}down(t){let r=t||this.minor,n=this.toNumber(this.input);return nthis.isValue(r));return this.value=this.toNumber(t||0),super.submit()}};Uos.exports=mQr});var jos=H((neg,Kos)=>{Kos.exports=CQr()});var qos=H((ieg,zos)=>{"use strict";var vfl=k_e(),_Qr=class extends vfl{constructor(t){super(t),this.cursorShow()}format(t=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(t.length)):""}};zos.exports=_Qr});var tas=H((seg,eas)=>{"use strict";var Bfl=q5(),wfl=Fje(),$os=zG(),yQr=class extends wfl{constructor(t={}){super(t),this.widths=[].concat(t.messageWidth||50),this.align=[].concat(t.align||"left"),this.linebreak=t.linebreak||!1,this.edgeLength=t.edgeLength||3,this.newline=t.newline||` +`)),this.write(this.margin[2]),this.restore()}};bos.exports=nQr});var Sos=H((H$u,Eos)=>{"use strict";var tfl=rue(),rfl=(e,t)=>{let r=e?new RegExp(e,"ig"):/$^/;return n=>e?n.replace(r,a=>t(a)):n},iQr=class extends tfl{constructor(t){super(t),this.cursorShow()}moveCursor(t){this.state.cursor+=t}dispatch(t){return this.append(t)}space(t){return this.options.multiple?super.space(t):this.append(t)}append(t){let{cursor:r,input:n}=this.state;return this.input=n.slice(0,r)+t+n.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:t,input:r}=this.state;return r?(this.input=r.slice(0,t-1)+r.slice(t),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:t,input:r}=this.state;return r[t]===void 0?this.alert():(this.input=`${r}`.slice(0,t)+`${r}`.slice(t+1),this.complete())}number(t){return this.append(t)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(t=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,t,r);let n=t.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(n))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(t=>this.styles.primary(t.message)).join(", ");if(this.state.submitted){let t=this.value=this.input=this.focused.value;return this.styles.primary(t)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let t=this.options.highlight||this.styles.complement,r=(o,l)=>o&&(t.stack?t(o):t.call(this,o)),n=rfl(this.input,r),a=this.choices;this.choices=a.map(o=>({...o,message:n(o.message)})),await super.render(),this.choices=a}submit(){return this.options.multiple&&(this.value=this.selected.map(t=>t.name)),super.submit()}};Eos.exports=iQr});var oQr=H((Y$u,vos)=>{"use strict";var sQr=zG();vos.exports=(e,t={})=>{e.cursorHide();let{input:r="",initial:n="",pos:a,showCursor:o=!0,color:l}=t,A=l||e.styles.placeholder,f=sQr.inverse(e.styles.primary),I=F=>f(e.styles.black(F)),C=r,b=" ",E=I(b);if(e.blink&&e.blink.off===!0&&(I=F=>F,E=""),o&&a===0&&n===""&&r==="")return I(b);if(o&&a===0&&(r===n||r===""))return I(n[0])+A(n.slice(1));n=sQr.isPrimitive(n)?`${n}`:"",r=sQr.isPrimitive(r)?`${r}`:"";let N=n&&n.startsWith(r)&&n!==r,B=N?I(n[r.length]):E;if(a!==r.length&&o===!0&&(C=r.slice(0,a)+I(r[a])+r.slice(a+1),B=""),o===!1&&(B=""),N){let F=e.styles.unstyle(C+B);return C+B+A(n.slice(F.length))}return C+B}});var Ukt=H((Q$u,Bos)=>{"use strict";var nfl=q5(),ifl=rue(),sfl=oQr(),aQr=class extends ifl{constructor(t){super({...t,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(t){return await super.reset(),t===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(t){return!!t&&this.append(t)}append(t){let r=this.focused;if(!r)return this.alert();let{cursor:n,input:a}=r;return r.value=r.input=a.slice(0,n)+t+a.slice(n),r.cursor++,this.render()}delete(){let t=this.focused;if(!t||t.cursor<=0)return this.alert();let{cursor:r,input:n}=t;return t.value=t.input=n.slice(0,r-1)+n.slice(r),t.cursor--,this.render()}deleteForward(){let t=this.focused;if(!t)return this.alert();let{cursor:r,input:n}=t;if(n[r]===void 0)return this.alert();let a=`${n}`.slice(0,r)+`${n}`.slice(r+1);return t.value=t.input=a,this.render()}right(){let t=this.focused;return t?t.cursor>=t.input.length?this.alert():(t.cursor++,this.render()):this.alert()}left(){let t=this.focused;return t?t.cursor<=0?this.alert():(t.cursor--,this.render()):this.alert()}space(t,r){return this.dispatch(t,r)}number(t,r){return this.dispatch(t,r)}next(){let t=this.focused;if(!t)return this.alert();let{initial:r,input:n}=t;return r&&r.startsWith(n)&&n!==r?(t.value=t.input=r,t.cursor=t.value.length,this.render()):super.next()}prev(){let t=this.focused;return t?t.cursor===0?super.prev():(t.value=t.input="",t.cursor=0,this.render()):this.alert()}separator(){return""}format(t){return this.state.submitted?"":super.format(t)}pointer(){return""}indicator(t){return t.input?"\u29BF":"\u2299"}async choiceSeparator(t,r){let n=await this.resolve(t.separator,this.state,t,r)||":";return n?" "+this.styles.disabled(n):""}async renderChoice(t,r){await this.onChoice(t,r);let{state:n,styles:a}=this,{cursor:o,initial:l="",name:A,input:f=""}=t,{muted:I,submitted:C,primary:b,danger:E}=a,N=this.index===r,B=t.validate||(()=>!0),F=await this.choiceSeparator(t,r),Q=t.message;this.align==="right"&&(Q=Q.padStart(this.longest+1," ")),this.align==="left"&&(Q=Q.padEnd(this.longest+1," "));let X=this.values[A]=f||l,ae=f?"success":"dark";await B.call(t,X,this.state)!==!0&&(ae="danger");let ne=a[ae],ce=ne(await this.indicator(t,r))+(t.pad||""),fe=this.indent(t),ue=()=>[fe,ce,Q+F,f].filter(Boolean).join(" ");if(n.submitted)return Q=nfl(Q),f=C(f),ue();if(t.format)f=await t.format.call(this,f,t,r);else{let de=this.styles.muted;f=sfl(this,{input:f,initial:l,pos:o,showCursor:N,color:de})}return this.isValue(f)||(f=this.styles.muted(this.symbols.ellipsis)),t.result&&(this.values[A]=await t.result.call(this,X,t,r)),N&&(Q=b(Q)),t.error?f+=(f?" ":"")+E(t.error.trim()):t.hint&&(f+=(f?" ":"")+I(t.hint.trim())),ue()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Bos.exports=aQr});var cQr=H((X$u,Tos)=>{"use strict";var ofl=Ukt(),afl=()=>{throw new Error("expected prompt to have a custom authenticate method")},wos=(e=afl)=>{class t extends ofl{constructor(n){super(n)}async submit(){this.value=await e.call(this,this.values,this.state),super.base.submit.call(this)}static create(n){return wos(n)}}return t};Tos.exports=wos()});var Dos=H((J$u,Nos)=>{"use strict";var cfl=cQr();function lfl(e,t){return e.username===this.options.username&&e.password===this.options.password}var Ros=(e=lfl)=>{let t=[{name:"username",message:"username"},{name:"password",message:"password",format(n){return this.options.showPassword?n:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(n.length))}}];class r extends cfl.create(e){constructor(a){super({...a,choices:t})}static create(a){return Ros(a)}}return r};Nos.exports=Ros()});var Kkt=H((U$u,kos)=>{"use strict";var ufl=Hxe(),{isPrimitive:gfl,hasColor:Afl}=zG(),lQr=class extends ufl{constructor(t){super(t),this.cursorHide()}async initialize(){let t=await this.resolve(this.initial,this.state);this.input=await this.cast(t),await super.initialize()}dispatch(t){return this.isValue(t)?(this.input=t,this.submit()):this.alert()}format(t){let{styles:r,state:n}=this;return n.submitted?r.success(t):r.primary(t)}cast(t){return this.isTrue(t)}isTrue(t){return/^[ty1]/i.test(t)}isFalse(t){return/^[fn0]/i.test(t)}isValue(t){return gfl(t)&&(this.isTrue(t)||this.isFalse(t))}async hint(){if(this.state.status==="pending"){let t=await this.element("hint");return Afl(t)?t:this.styles.muted(t)}}async render(){let{input:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=this.styles.muted(this.default),A=[n,o,l,a].filter(Boolean).join(" ");this.state.prompt=A;let f=await this.header(),I=this.value=this.cast(t),C=await this.format(I),b=await this.error()||await this.hint(),E=await this.footer();b&&!A.includes(b)&&(C+=" "+b),A+=" "+C,this.clear(r),this.write([f,A,E].filter(Boolean).join(` +`)),this.restore()}set value(t){super.value=t}get value(){return this.cast(super.value)}};kos.exports=lQr});var Gos=H((K$u,xos)=>{"use strict";var dfl=Kkt(),uQr=class extends dfl{constructor(t){super(t),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};xos.exports=uQr});var Zos=H((j$u,Fos)=>{"use strict";var pfl=rue(),ffl=Ukt(),Yxe=ffl.prototype,gQr=class extends pfl{constructor(t){super({...t,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(t,r){let n=this.focused,a=n.parent||{};return!n.editable&&!a.editable&&(t==="a"||t==="i")?super[t]():Yxe.dispatch.call(this,t,r)}append(t,r){return Yxe.append.call(this,t,r)}delete(t,r){return Yxe.delete.call(this,t,r)}space(t){return this.focused.editable?this.append(t):super.space()}number(t){return this.focused.editable?this.append(t):super.number(t)}next(){return this.focused.editable?Yxe.next.call(this):super.next()}prev(){return this.focused.editable?Yxe.prev.call(this):super.prev()}async indicator(t,r){let n=t.indicator||"",a=t.editable?n:super.indicator(t,r);return await this.resolve(a,this.state,t,r)||""}indent(t){return t.role==="heading"?"":t.editable?" ":" "}async renderChoice(t,r){return t.indent="",t.editable?Yxe.renderChoice.call(this,t,r):super.renderChoice(t,r)}error(){return""}footer(){return this.state.error}async validate(){let t=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let n=r.parent?this.value[r.parent.name]:this.value;if(r.editable?n=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(n=r.enabled===!0),t=await r.validate(n,this.state),t!==!0)break}return t!==!0&&(this.state.error=typeof t=="string"?t:"Invalid Input"),t}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(t=>t.newChoice))return this.alert();this.value={};for(let t of this.choices){let r=t.parent?this.value[t.parent.name]:this.value;if(t.role==="heading"){this.value[t.name]={};continue}t.editable?r[t.name]=t.value===t.name?t.initial||"":t.value:this.isDisabled(t)||(r[t.name]=t.enabled===!0)}return this.base.submit.call(this)}};Fos.exports=gQr});var k_e=H((z$u,Los)=>{"use strict";var Ifl=Hxe(),hfl=HYr(),mfl=oQr(),{isPrimitive:Cfl}=zG(),AQr=class extends Ifl{constructor(t){super(t),this.initial=Cfl(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[],this.keypressTimeout=this.options.keypressTimeout!==void 0?this.options.keypressTimeout:null}async keypress(t,r=t?hfl(t,{}):{}){let n=Date.now(),a=n-this.lastKeypress;this.lastKeypress=n;let o=r.name==="return"||r.name==="enter",l=this.state.prevKeypress,A;if(this.state.prevKeypress=r,this.keypressTimeout!=null&&o){if(a=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(t){return!!t}async format(t=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(t||r):mfl(this,{input:t,initial:r,pos:this.cursor})}async render(){let t=this.state.size,r=await this.prefix(),n=await this.separator(),a=await this.message(),o=[r,a,n].filter(Boolean).join(" ");this.state.prompt=o;let l=await this.header(),A=await this.format(),f=await this.error()||await this.hint(),I=await this.footer();f&&!A.includes(f)&&(A+=" "+f),o+=" "+A,this.clear(t),this.write([l,o,I].filter(Boolean).join(` +`)),this.restore()}};Los.exports=AQr});var Pos=H((q$u,Vos)=>{"use strict";var _fl=e=>e.filter((t,r)=>e.lastIndexOf(t)===r),jkt=e=>_fl(e).filter(Boolean);Vos.exports=(e,t={},r="")=>{let{past:n=[],present:a=""}=t,o,l;switch(e){case"prev":case"undo":return o=n.slice(0,n.length-1),l=n[n.length-1]||"",{past:jkt([r,...o]),present:l};case"next":case"redo":return o=n.slice(1),l=n[0]||"",{past:jkt([...o,r]),present:l};case"save":return{past:jkt([...n,r]),present:""};case"remove":return l=jkt(n.filter(A=>A!==r)),a="",l.length&&(a=l.pop()),{past:l,present:a};default:throw new Error(`Invalid action: "${e}"`)}}});var pQr=H(($$u,Oos)=>{"use strict";var yfl=k_e(),Wos=Pos(),dQr=class extends yfl{constructor(t){super(t);let r=this.options.history;if(r&&r.store){let n=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:n},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(t){return this.store?(this.data=Wos(t,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=Wos("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};Oos.exports=dQr});var Hos=H((eeg,Mos)=>{"use strict";var bfl=k_e(),fQr=class extends bfl{format(){return""}};Mos.exports=fQr});var Qos=H((teg,Yos)=>{"use strict";var Efl=k_e(),IQr=class extends Efl{constructor(t={}){super(t),this.sep=this.options.separator||/, */,this.initial=t.initial||""}split(t=this.value){return t?String(t).split(this.sep):[]}format(){let t=this.state.submitted?this.styles.primary:r=>r;return this.list.map(t).join(", ")}async submit(t){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};Yos.exports=IQr});var Jos=H((reg,Xos)=>{"use strict";var Sfl=rue(),hQr=class extends Sfl{constructor(t){super({...t,multiple:!0})}};Xos.exports=hQr});var CQr=H((neg,Uos)=>{"use strict";var vfl=k_e(),mQr=class extends vfl{constructor(t={}){super({style:"number",...t}),this.min=this.isValue(t.min)?this.toNumber(t.min):-1/0,this.max=this.isValue(t.max)?this.toNumber(t.max):1/0,this.delay=t.delay!=null?t.delay:1e3,this.float=t.float!==!1,this.round=t.round===!0||t.float===!1,this.major=t.major||10,this.minor=t.minor||1,this.initial=t.initial!=null?t.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(t){return!/[-+.]/.test(t)||t==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(t)}number(t){return super.append(t)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(t){let r=t||this.minor,n=this.toNumber(this.input);return n>this.max+r?this.alert():(this.input=`${n+r}`,this.render())}down(t){let r=t||this.minor,n=this.toNumber(this.input);return nthis.isValue(r));return this.value=this.toNumber(t||0),super.submit()}};Uos.exports=mQr});var jos=H((ieg,Kos)=>{Kos.exports=CQr()});var qos=H((seg,zos)=>{"use strict";var Bfl=k_e(),_Qr=class extends Bfl{constructor(t){super(t),this.cursorShow()}format(t=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(t.length)):""}};zos.exports=_Qr});var tas=H((oeg,eas)=>{"use strict";var wfl=q5(),Tfl=Fje(),$os=zG(),yQr=class extends Tfl{constructor(t={}){super(t),this.widths=[].concat(t.messageWidth||50),this.align=[].concat(t.align||"left"),this.linebreak=t.linebreak||!1,this.edgeLength=t.edgeLength||3,this.newline=t.newline||` `;let r=t.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((n,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let t=0;for(let r of this.choices){t=Math.max(t,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let n=0;n=this.scale.length-1?this.alert():(t.scaleIndex++,this.render())}left(){let t=this.focused;return t.scaleIndex<=0?this.alert():(t.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(n=>` ${n.name} - ${n.message}`)].map(n=>this.styles.muted(n)).join(` -`)}renderScaleHeading(t){let r=this.scale.map(f=>f.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,t));let n=this.scaleLength-r.join("").length,a=Math.round(n/(r.length-1)),l=r.map(f=>this.styles.strong(f)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+l}scaleIndicator(t,r,n){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,t,r,n);let a=t.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(t,r){let n=t.scale.map(o=>this.scaleIndicator(t,o,r)),a=this.term==="Hyper"?"":" ";return n.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await t.hint;o&&!$os.hasColor(o)&&(o=this.styles.muted(o));let l=B=>this.margin[3]+B.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,f=this.indent(t),I=await this.resolve(t.message,this.state,t,r),C=await this.renderScale(t,r),b=this.margin[1]+this.margin[3];this.scaleLength=Bfl(C).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-b.length);let N=$os.wordWrap(I,{width:this.widths[0],newline:A}).split(` +`)}renderScaleHeading(t){let r=this.scale.map(f=>f.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,t));let n=this.scaleLength-r.join("").length,a=Math.round(n/(r.length-1)),l=r.map(f=>this.styles.strong(f)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+l}scaleIndicator(t,r,n){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,t,r,n);let a=t.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(t,r){let n=t.scale.map(o=>this.scaleIndicator(t,o,r)),a=this.term==="Hyper"?"":" ";return n.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=await this.pointer(t,r),o=await t.hint;o&&!$os.hasColor(o)&&(o=this.styles.muted(o));let l=B=>this.margin[3]+B.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,f=this.indent(t),I=await this.resolve(t.message,this.state,t,r),C=await this.renderScale(t,r),b=this.margin[1]+this.margin[3];this.scaleLength=wfl(C).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-b.length);let N=$os.wordWrap(I,{width:this.widths[0],newline:A}).split(` `).map(B=>l(B)+this.margin[1]);return n&&(C=this.styles.info(C),N=N.map(B=>this.styles.info(B))),N[0]+=C,this.linebreak&&N.push(""),[f+a,N.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let t=this.visible.map(async(a,o)=>await this.renderChoice(a,o)),r=await Promise.all(t),n=await this.renderScaleHeading();return this.margin[0]+[n,...r.map(a=>a.join(" "))].join(` `)}async render(){let{submitted:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l="";this.options.promptLine!==!1&&(l=[n,o,a,""].join(" "),this.state.prompt=l);let A=await this.header(),f=await this.format(),I=await this.renderScaleKey(),C=await this.error()||await this.hint(),b=await this.renderChoices(),E=await this.footer(),N=this.emptyError;f&&(l+=f),C&&!l.includes(C)&&(l+=" "+C),t&&!f&&!b.trim()&&this.multiple&&N!=null&&(l+=this.styles.danger(N)),this.clear(r),this.write([A,l,I,b,E].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIndex;return this.base.submit.call(this)}};eas.exports=yQr});var ias=H((oeg,nas)=>{"use strict";var ras=q5(),Tfl=(e="")=>typeof e=="string"?e.replace(/^['"]|['"]$/g,""):"",EQr=class{constructor(t){this.name=t.key,this.field=t.field||{},this.value=Tfl(t.initial||this.field.initial||""),this.message=t.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Rfl=async(e={},t={},r=n=>n)=>{let n=new Set,a=e.fields||[],o=e.template,l=[],A=[],f=[],I=1;typeof o=="function"&&(o=await o());let C=-1,b=()=>o[++C],E=()=>o[C+1],N=B=>{B.line=I,l.push(B)};for(N({type:"bos",value:""});Cce.name===X.key);X.field=a.find(ce=>ce.name===X.key),ne||(ne=new EQr(X),A.push(ne)),ne.lines.push(X.line-1);continue}let F=l[l.length-1];F.type==="text"&&F.line===I?F.value+=B:N({type:"text",value:B})}return N({type:"eos",value:""}),{input:o,tabstops:l,unique:n,keys:f,items:A}};nas.exports=async e=>{let t=e.options,r=new Set(t.required===!0?[]:t.required||[]),n={...t.values,...t.initial},{tabstops:a,items:o,keys:l}=await Rfl(t,n),A=bQr("result",e,t),f=bQr("format",e,t),I=bQr("validate",e,t,!0),C=e.isValue.bind(e);return async(b={},E=!1)=>{let N=0;b.required=r,b.items=o,b.keys=l,b.output="";let B=async(ae,ne,ce,fe)=>{let ue=await I(ae,ne,ce,fe);return ue===!1?"Invalid field "+ce.name:ue};for(let ae of a){let ne=ae.value,ce=ae.key;if(ae.type!=="template"){ne&&(b.output+=ne);continue}if(ae.type==="template"){let fe=o.find(De=>De.name===ce);t.required===!0&&b.required.add(fe.name);let ue=[fe.input,b.values[fe.value],fe.value,ne].find(C),be=(fe.field||{}).message||ae.inner;if(E){let De=await B(b.values[ce],b,fe,N);if(De&&typeof De=="string"||De===!1){b.invalid.set(ce,De);continue}b.invalid.delete(ce);let k=await A(b.values[ce],b,fe,N);b.output+=ras(k);continue}fe.placeholder=!1;let Se=ne;ne=await f(ne,b,fe,N),ue!==ne?(b.values[ce]=ue,ne=e.styles.typing(ue),b.missing.delete(be)):(b.values[ce]=void 0,ue=`<${be}>`,ne=e.styles.primary(ue),fe.placeholder=!0,b.required.has(ce)&&b.missing.add(be)),b.missing.has(be)&&b.validating&&(ne=e.styles.warning(ue)),b.invalid.has(ce)&&b.validating&&(ne=e.styles.danger(ue)),N===b.index&&(Se!==ne?ne=e.styles.underline(ne):ne=e.styles.heading(ras(ne))),N++}ne&&(b.output+=ne)}let F=b.output.split(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIndex;return this.base.submit.call(this)}};eas.exports=yQr});var ias=H((aeg,nas)=>{"use strict";var ras=q5(),Rfl=(e="")=>typeof e=="string"?e.replace(/^['"]|['"]$/g,""):"",EQr=class{constructor(t){this.name=t.key,this.field=t.field||{},this.value=Rfl(t.initial||this.field.initial||""),this.message=t.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Nfl=async(e={},t={},r=n=>n)=>{let n=new Set,a=e.fields||[],o=e.template,l=[],A=[],f=[],I=1;typeof o=="function"&&(o=await o());let C=-1,b=()=>o[++C],E=()=>o[C+1],N=B=>{B.line=I,l.push(B)};for(N({type:"bos",value:""});Cce.name===X.key);X.field=a.find(ce=>ce.name===X.key),ne||(ne=new EQr(X),A.push(ne)),ne.lines.push(X.line-1);continue}let F=l[l.length-1];F.type==="text"&&F.line===I?F.value+=B:N({type:"text",value:B})}return N({type:"eos",value:""}),{input:o,tabstops:l,unique:n,keys:f,items:A}};nas.exports=async e=>{let t=e.options,r=new Set(t.required===!0?[]:t.required||[]),n={...t.values,...t.initial},{tabstops:a,items:o,keys:l}=await Nfl(t,n),A=bQr("result",e,t),f=bQr("format",e,t),I=bQr("validate",e,t,!0),C=e.isValue.bind(e);return async(b={},E=!1)=>{let N=0;b.required=r,b.items=o,b.keys=l,b.output="";let B=async(ae,ne,ce,fe)=>{let ue=await I(ae,ne,ce,fe);return ue===!1?"Invalid field "+ce.name:ue};for(let ae of a){let ne=ae.value,ce=ae.key;if(ae.type!=="template"){ne&&(b.output+=ne);continue}if(ae.type==="template"){let fe=o.find(De=>De.name===ce);t.required===!0&&b.required.add(fe.name);let ue=[fe.input,b.values[fe.value],fe.value,ne].find(C),be=(fe.field||{}).message||ae.inner;if(E){let De=await B(b.values[ce],b,fe,N);if(De&&typeof De=="string"||De===!1){b.invalid.set(ce,De);continue}b.invalid.delete(ce);let k=await A(b.values[ce],b,fe,N);b.output+=ras(k);continue}fe.placeholder=!1;let Se=ne;ne=await f(ne,b,fe,N),ue!==ne?(b.values[ce]=ue,ne=e.styles.typing(ue),b.missing.delete(be)):(b.values[ce]=void 0,ue=`<${be}>`,ne=e.styles.primary(ue),fe.placeholder=!0,b.required.has(ce)&&b.missing.add(be)),b.missing.has(be)&&b.validating&&(ne=e.styles.warning(ue)),b.invalid.has(ce)&&b.validating&&(ne=e.styles.danger(ue)),N===b.index&&(Se!==ne?ne=e.styles.underline(ne):ne=e.styles.heading(ras(ne))),N++}ne&&(b.output+=ne)}let F=b.output.split(` `).map(ae=>" "+ae),Q=o.length,X=0;for(let ae of o)b.invalid.has(ae.name)&&ae.lines.forEach(ne=>{F[ne][0]===" "&&(F[ne]=b.styles.danger(b.symbols.bullet)+F[ne].slice(1))}),e.isValue(b.values[ae.name])&&X++;return b.completed=(X/Q*100).toFixed(0),b.output=F.join(` -`),b.output}};function bQr(e,t,r,n){return(a,o,l,A)=>typeof l.field[e]=="function"?l.field[e].call(t,a,o,l,A):[n,a].find(f=>t.isValue(f))}});var oas=H((aeg,sas)=>{"use strict";var Nfl=q5(),Dfl=ias(),kfl=Hxe(),SQr=class extends kfl{constructor(t){super(t),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Dfl(this),await super.initialize()}async reset(t){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},t!==!0&&(await this.initialize(),await this.render())}moveCursor(t){let r=this.getItem();this.cursor+=t,r.cursor+=t}dispatch(t,r){if(!r.code&&!r.ctrl&&t!=null&&this.getItem()){this.append(t,r);return}this.alert()}append(t,r){let n=this.getItem(),a=n.input.slice(0,this.cursor),o=n.input.slice(this.cursor);this.input=n.input=`${a}${t}${o}`,this.moveCursor(1),this.render()}delete(){let t=this.getItem();if(this.cursor<=0||!t.input)return this.alert();let r=t.input.slice(this.cursor),n=t.input.slice(0,this.cursor-1);this.input=t.input=`${n}${r}`,this.moveCursor(-1),this.render()}increment(t){return t>=this.state.keys.length-1?0:t+1}decrement(t){return t<=0?this.state.keys.length-1:t-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(t){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:t,keys:r=[],submitted:n,size:a}=this.state,o=[this.options.newline,` +`),b.output}};function bQr(e,t,r,n){return(a,o,l,A)=>typeof l.field[e]=="function"?l.field[e].call(t,a,o,l,A):[n,a].find(f=>t.isValue(f))}});var oas=H((ceg,sas)=>{"use strict";var Dfl=q5(),kfl=ias(),xfl=Hxe(),SQr=class extends xfl{constructor(t){super(t),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await kfl(this),await super.initialize()}async reset(t){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},t!==!0&&(await this.initialize(),await this.render())}moveCursor(t){let r=this.getItem();this.cursor+=t,r.cursor+=t}dispatch(t,r){if(!r.code&&!r.ctrl&&t!=null&&this.getItem()){this.append(t,r);return}this.alert()}append(t,r){let n=this.getItem(),a=n.input.slice(0,this.cursor),o=n.input.slice(this.cursor);this.input=n.input=`${a}${t}${o}`,this.moveCursor(1),this.render()}delete(){let t=this.getItem();if(this.cursor<=0||!t.input)return this.alert();let r=t.input.slice(this.cursor),n=t.input.slice(0,this.cursor-1);this.input=t.input=`${n}${r}`,this.moveCursor(-1),this.render()}increment(t){return t>=this.state.keys.length-1?0:t+1}decrement(t){return t<=0?this.state.keys.length-1:t-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(t){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:t,keys:r=[],submitted:n,size:a}=this.state,o=[this.options.newline,` `].find(ae=>ae!=null),l=await this.prefix(),A=await this.separator(),f=await this.message(),I=[l,f,A].filter(Boolean).join(" ");this.state.prompt=I;let C=await this.header(),b=await this.error()||"",E=await this.hint()||"",N=n?"":await this.interpolate(this.state),B=this.state.key=r[t]||"",F=await this.format(B),Q=await this.footer();F&&(I+=" "+F),E&&!F&&this.state.completed===0&&(I+=" "+E),this.clear(a);let X=[C,I,N,Q,b.trim()];this.write(X.filter(Boolean).join(o)),this.restore()}getItem(t){let{items:r,keys:n,index:a}=this.state,o=r.find(l=>l.name===n[a]);return o&&o.input!=null&&(this.input=o.input,this.cursor=o.cursor),o}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:t,missing:r,output:n,values:a}=this.state;if(t.size){let A="";for(let[f,I]of t)A+=`Invalid ${f}: ${I} -`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let l=Nfl(n).split(` +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let l=Dfl(n).split(` `).map(A=>A.slice(1)).join(` -`);return this.value={values:a,result:l},super.submit()}};sas.exports=SQr});var cas=H((ceg,aas)=>{"use strict";var xfl="(Use + to sort)",Gfl=rue(),vQr=class extends Gfl{constructor(t){super({...t,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,xfl].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(t,r){let n=await super.renderChoice(t,r),a=this.symbols.identicalTo+" ",o=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(o=""),this.options.numbered===!0?o+`${r+1} - `+n:o+n}get selected(){return this.choices}submit(){return this.value=this.choices.map(t=>t.value),super.submit()}};aas.exports=vQr});var uas=H((leg,las)=>{"use strict";var Ffl=Fje(),BQr=class extends Ffl{constructor(t={}){if(super(t),this.emptyError=t.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(n=>this.styles.muted(n)),this.state.header=r.join(` - `)}}async toChoices(...t){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...t);for(let n of r)n.scale=Zfl(5,this.options),n.scaleIdx=2;return r}dispatch(){this.alert()}space(){let t=this.focused,r=t.scale[t.scaleIdx],n=r.selected;return t.scale.forEach(a=>a.selected=!1),r.selected=!n,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIdx>=t.scale.length-1?this.alert():(t.scaleIdx++,this.render())}left(){let t=this.focused;return t.scaleIdx<=0?this.alert():(t.scaleIdx--,this.render())}indent(){return" "}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=this.term==="Hyper",o=a?9:8,l=a?"":" ",A=this.symbols.line.repeat(o),f=" ".repeat(o+(a?0:1)),I=ne=>(ne?this.styles.success("\u25C9"):"\u25EF")+l,C=r+1+".",b=n?this.styles.heading:this.styles.noop,E=await this.resolve(t.message,this.state,t,r),N=this.indent(t),B=N+t.scale.map((ne,ce)=>I(ce===t.scaleIdx)).join(A),F=ne=>ne===t.scaleIdx?b(ne):ne,Q=N+t.scale.map((ne,ce)=>F(ce)).join(f),X=()=>[C,E].filter(Boolean).join(" "),ae=()=>[X(),B,Q," "].filter(Boolean).join(` +`);return this.value={values:a,result:l},super.submit()}};sas.exports=SQr});var cas=H((leg,aas)=>{"use strict";var Gfl="(Use + to sort)",Ffl=rue(),vQr=class extends Ffl{constructor(t){super({...t,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Gfl].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(t,r){let n=await super.renderChoice(t,r),a=this.symbols.identicalTo+" ",o=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(o=""),this.options.numbered===!0?o+`${r+1} - `+n:o+n}get selected(){return this.choices}submit(){return this.value=this.choices.map(t=>t.value),super.submit()}};aas.exports=vQr});var uas=H((ueg,las)=>{"use strict";var Zfl=Fje(),BQr=class extends Zfl{constructor(t={}){if(super(t),this.emptyError=t.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(n=>this.styles.muted(n)),this.state.header=r.join(` + `)}}async toChoices(...t){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...t);for(let n of r)n.scale=Lfl(5,this.options),n.scaleIdx=2;return r}dispatch(){this.alert()}space(){let t=this.focused,r=t.scale[t.scaleIdx],n=r.selected;return t.scale.forEach(a=>a.selected=!1),r.selected=!n,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let t=this.focused;return t.scaleIdx>=t.scale.length-1?this.alert():(t.scaleIdx++,this.render())}left(){let t=this.focused;return t.scaleIdx<=0?this.alert():(t.scaleIdx--,this.render())}indent(){return" "}async renderChoice(t,r){await this.onChoice(t,r);let n=this.index===r,a=this.term==="Hyper",o=a?9:8,l=a?"":" ",A=this.symbols.line.repeat(o),f=" ".repeat(o+(a?0:1)),I=ne=>(ne?this.styles.success("\u25C9"):"\u25EF")+l,C=r+1+".",b=n?this.styles.heading:this.styles.noop,E=await this.resolve(t.message,this.state,t,r),N=this.indent(t),B=N+t.scale.map((ne,ce)=>I(ce===t.scaleIdx)).join(A),F=ne=>ne===t.scaleIdx?b(ne):ne,Q=N+t.scale.map((ne,ce)=>F(ce)).join(f),X=()=>[C,E].filter(Boolean).join(" "),ae=()=>[X(),B,Q," "].filter(Boolean).join(` `);return n&&(B=this.styles.cyan(B),Q=this.styles.cyan(Q)),ae()}async renderChoices(){if(this.state.submitted)return"";let t=this.visible.map(async(n,a)=>await this.renderChoice(n,a)),r=await Promise.all(t);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` `)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:t,size:r}=this.state,n=await this.prefix(),a=await this.separator(),o=await this.message(),l=[n,o,a].filter(Boolean).join(" ");this.state.prompt=l;let A=await this.header(),f=await this.format(),I=await this.error()||await this.hint(),C=await this.renderChoices(),b=await this.footer();(f||!I)&&(l+=" "+f),I&&!l.includes(I)&&(l+=" "+I),t&&!f&&!C&&this.multiple&&this.type!=="form"&&(l+=this.styles.danger(this.emptyError)),this.clear(r),this.write([l,A,C,b].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIdx;return this.base.submit.call(this)}};function Zfl(e,t={}){if(Array.isArray(t.scale))return t.scale.map(n=>({...n}));let r=[];for(let n=1;n{gas.exports=pQr()});var pas=H((geg,das)=>{"use strict";var Lfl=Kkt(),wQr=class extends Lfl{async initialize(){await super.initialize(),this.value=this.initial=this.resolve(this.options.initial),this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(t="",r){switch(t.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let t=n=>this.styles.primary.underline(n);return[this.value?this.disabled:t(this.disabled),this.value?t(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:t}=this.state,r=await this.header(),n=await this.prefix(),a=await this.separator(),o=await this.message(),l=await this.format(),A=await this.error()||await this.hint(),f=await this.footer(),I=[n,o,a,l].join(" ");this.state.prompt=I,A&&!I.includes(A)&&(I+=" "+A),this.clear(t),this.write([r,I,f].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};das.exports=wQr});var Ias=H((Aeg,fas)=>{"use strict";var Vfl=rue(),TQr=class extends Vfl{constructor(t){if(super(t),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(t,r){let n=await super.toChoices(t,r);if(n.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>n.length)throw new Error("Please specify the index of the correct answer from the list of choices");return n}check(t){return t.index===this.options.correctChoice}async result(t){return{selectedAnswer:t,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};fas.exports=TQr});var mas=H(RQr=>{"use strict";var has=zG(),VR=(e,t)=>{has.defineExport(RQr,e,t),has.defineExport(RQr,e.toLowerCase(),t)};VR("AutoComplete",()=>Sos());VR("BasicAuth",()=>Dos());VR("Confirm",()=>Gos());VR("Editable",()=>Zos());VR("Form",()=>Ukt());VR("Input",()=>pQr());VR("Invisible",()=>Hos());VR("List",()=>Qos());VR("MultiSelect",()=>Jos());VR("Numeral",()=>jos());VR("Password",()=>qos());VR("Scale",()=>tas());VR("Select",()=>rue());VR("Snippet",()=>oas());VR("Sort",()=>cas());VR("Survey",()=>uas());VR("Text",()=>Aas());VR("Toggle",()=>pas());VR("Quiz",()=>Ias())});var _as=H((peg,Cas)=>{Cas.exports={ArrayPrompt:Fje(),AuthPrompt:cQr(),BooleanPrompt:Kkt(),NumberPrompt:CQr(),StringPrompt:k_e()}});var Lje=H((feg,bas)=>{"use strict";var yas=wt("assert"),DQr=wt("events"),nue=zG(),W4=class extends DQr{constructor(t,r){super(),this.options=nue.merge({},t),this.answers={...r}}register(t,r){if(nue.isObject(t)){for(let a of Object.keys(t))this.register(a,t[a]);return this}yas.equal(typeof r,"function","expected a function");let n=t.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[n]=r:this.prompts[n]=r(this.Prompt,this),this}async prompt(t=[]){for(let r of[].concat(t))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(nue.merge({},this.options,r))}catch(n){return Promise.reject(n)}return this.answers}async ask(t){typeof t=="function"&&(t=await t.call(this));let r=nue.merge({},this.options,t),{type:n,name:a}=t,{set:o,get:l}=nue;if(typeof n=="function"&&(n=await n.call(this,t,this.answers)),!n)return this.answers[a];n==="number"&&(n="numeral"),yas(this.prompts[n],`Prompt "${n}" is not registered`);let A=new this.prompts[n](r),f=l(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",C=>{this.emit("answer",a,C,A),o(this.answers,a,C)});let I=A.emit.bind(A);return A.emit=(...C)=>(this.emit.call(this,...C),I(...C)),this.emit("prompt",A,this),r.autofill&&f!=null?(A.value=A.input=f,r.autofill==="show"&&await A.submit()):f=A.value=await A.run(),f}use(t){return t.call(this,this),this}set Prompt(t){this._Prompt=t}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(t){this._Prompt=t}static get Prompt(){return this._Prompt||Hxe()}static get prompts(){return mas()}static get types(){return _as()}static get prompt(){let t=(r,...n)=>{let a=new this(...n),o=a.emit.bind(a);return a.emit=(...l)=>(t.emit(...l),o(...l)),a.prompt(r)};return nue.mixinEmitter(t,new DQr),t}};nue.mixinEmitter(W4,new DQr);var NQr=W4.prompts;for(let e of Object.keys(NQr)){let t=e.toLowerCase(),r=n=>new NQr[e](n).run();W4.prompt[t]=r,W4[t]=r,W4[e]||Reflect.defineProperty(W4,e,{get:()=>NQr[e]})}var Zje=e=>{nue.defineExport(W4,e,()=>W4.types[e])};Zje("ArrayPrompt");Zje("AuthPrompt");Zje("BooleanPrompt");Zje("NumberPrompt");Zje("StringPrompt");bas.exports=W4});var Wje=H(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.Strategy=PR.WorkspaceModifier=PR.Modifier=PR.Target=void 0;PR.getModifier=Ofl;PR.extractRangeModifier=Sas;PR.applyModifier=Hfl;PR.toWorkspaceModifier=vas;PR.makeWorkspaceDescriptor=Bas;PR.findProjectDescriptors=was;PR.extractDescriptorFromPath=Yfl;PR.getSuggestedDescriptors=Xfl;PR.fetchDescriptorFrom=kQr;var Pfl=(Pa(),vi(Va)),x_e=Bn(),gb=Bn(),zkt=no(),Eas=Pfl.__importDefault(UC()),Wfl="workspace:",Pje;(function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"})(Pje||(PR.Target=Pje={}));var sue;(function(e){e.CARET="^",e.TILDE="~",e.EXACT=""})(sue||(PR.Modifier=sue={}));var Vje;(function(e){e.CARET="^",e.TILDE="~",e.EXACT="*"})(Vje||(PR.WorkspaceModifier=Vje={}));var iue;(function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"})(iue||(PR.Strategy=iue={}));function Ofl(e,t){return e.exact?sue.EXACT:e.caret?sue.CARET:e.tilde?sue.TILDE:t.configuration.get("defaultSemverRangePrefix")}var Mfl=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Sas(e,{project:t}){let r=e.match(Mfl);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function Hfl(e,t){let{protocol:r,source:n,params:a,selector:o}=gb.structUtils.parseRange(e.range);return Eas.default.valid(o)&&(o=`${t}${e.range}`),gb.structUtils.makeDescriptor(e,gb.structUtils.makeRange({protocol:r,source:n,params:a,selector:o}))}function vas(e){switch(e){case sue.CARET:return Vje.CARET;case sue.TILDE:return Vje.TILDE;case sue.EXACT:return Vje.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${e}"`)}}function Bas(e,t){return gb.structUtils.makeDescriptor(e.anchoredDescriptor,`${Wfl}${vas(t)}`)}async function was(e,{project:t,target:r}){let n=new Map,a=o=>{let l=n.get(o.descriptorHash);return l||n.set(o.descriptorHash,l={descriptor:o,locators:[]}),l};for(let o of t.workspaces)if(r===Pje.PEER){let l=o.manifest.peerDependencies.get(e.identHash);l!==void 0&&a(l).locators.push(o.anchoredLocator)}else{let l=o.manifest.dependencies.get(e.identHash),A=o.manifest.devDependencies.get(e.identHash);r===Pje.DEVELOPMENT?A!==void 0?a(A).locators.push(o.anchoredLocator):l!==void 0&&a(l).locators.push(o.anchoredLocator):l!==void 0?a(l).locators.push(o.anchoredLocator):A!==void 0&&a(A).locators.push(o.anchoredLocator)}return n}async function Yfl(e,{cwd:t,workspace:r}){return await Jfl(async n=>{zkt.ppath.isAbsolute(e)||(e=zkt.ppath.relative(r.cwd,zkt.ppath.resolve(t,e)),e.match(/^\.{0,2}\//)||(e=`./${e}`));let{project:a}=r,o=await kQr(gb.structUtils.makeIdent(null,"archive"),e,{project:r.project,cache:n,workspace:r});if(!o)throw new Error("Assertion failed: The descriptor should have been found");let l=new x_e.ThrowReport,A=a.configuration.makeResolver(),f=a.configuration.makeFetcher(),I={checksums:a.storedChecksums,project:a,cache:n,fetcher:f,report:l,resolver:A},C=A.bindDescriptor(o,r.anchoredLocator,I),b=gb.structUtils.convertDescriptorToLocator(C),E=await f.fetch(b,I),N=await x_e.Manifest.find(E.prefixPath,{baseFs:E.packageFs});if(!N.name)throw new Error("Target path doesn't have a name");return gb.structUtils.makeDescriptor(N.name,e)})}function Qfl(e){if(e.range==="unknown")return{type:"resolve",range:"latest"};if(gb.semverUtils.validRange(e.range))return{type:"fixed",range:e.range};if(x_e.TAG_REGEXP.test(e.range))return{type:"resolve",range:e.range};let t=e.range.match(/^(?:jsr:|npm:)(.*)/);if(!t)return{type:"fixed",range:e.range};let[,r]=t,n=`${gb.structUtils.stringifyIdent(e)}@`;return r.startsWith(n)&&(r=r.slice(n.length)),gb.semverUtils.validRange(r)?{type:"fixed",range:e.range}:x_e.TAG_REGEXP.test(r)?{type:"resolve",range:e.range}:{type:"fixed",range:e.range}}async function Xfl(e,{project:t,workspace:r,cache:n,target:a,fixed:o,modifier:l,strategies:A,maxResults:f=1/0}){if(!(f>=0))throw new Error(`Invalid maxResults (${f})`);let I=!o||e.range==="unknown"?Qfl(e):{type:"fixed",range:e.range};if(I.type==="fixed")return{suggestions:[{descriptor:e,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,e)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let C=typeof r<"u"&&r!==null&&r.manifest[a].get(e.identHash)||null,b=[],E=[],N=async B=>{try{await B()}catch(F){E.push(F)}};for(let B of A){if(b.length>=f)break;switch(B){case iue.KEEP:await N(async()=>{C&&b.push({descriptor:C,name:`Keep ${gb.structUtils.prettyDescriptor(t.configuration,C)}`,reason:"(no changes)"})});break;case iue.REUSE:await N(async()=>{for(let{descriptor:F,locators:Q}of(await was(e,{project:t,target:a})).values()){if(Q.length===1&&Q[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes(iue.KEEP))continue;let X=`(originally used by ${gb.structUtils.prettyLocator(t.configuration,Q[0])}`;X+=Q.length>1?` and ${Q.length-1} other${Q.length>2?"s":""})`:")",b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:X})}});break;case iue.CACHE:await N(async()=>{for(let F of t.storedDescriptors.values())F.identHash===e.identHash&&b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:"(already used somewhere in the lockfile)"})});break;case iue.PROJECT:await N(async()=>{if(r.manifest.name!==null&&e.identHash===r.manifest.name.identHash)return;let F=t.tryWorkspaceByIdent(e);if(F===null)return;let Q=Bas(F,l);b.push({descriptor:Q,name:`Attach ${gb.structUtils.prettyDescriptor(t.configuration,Q)}`,reason:`(local workspace at ${gb.formatUtils.pretty(t.configuration,F.relativeCwd,gb.formatUtils.Type.PATH)})`})});break;case iue.LATEST:{let F=t.configuration.get("enableNetwork"),Q=t.configuration.get("enableOfflineMode");await N(async()=>{if(a===Pje.PEER)b.push({descriptor:gb.structUtils.makeDescriptor(e,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!F&&!Q)b.push({descriptor:null,name:"Resolve from latest",reason:gb.formatUtils.pretty(t.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let X=await kQr(e,I.range,{project:t,cache:n,workspace:r,modifier:l});X&&b.push({descriptor:X,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,X)}`,reason:`(resolved from ${Q?"the cache":"latest"})`})}})}break}}return{suggestions:b.slice(0,f),rejections:E.slice(0,f)}}async function kQr(e,t,{project:r,cache:n,workspace:a,preserveModifier:o=!0,modifier:l}){let A=r.configuration.normalizeDependency(gb.structUtils.makeDescriptor(e,t)),f=new x_e.ThrowReport,I=r.configuration.makeFetcher(),C=r.configuration.makeResolver(),b={project:r,fetcher:I,cache:n,checksums:r.storedChecksums,report:f,cacheOptions:{skipIntegrityCheck:!0}},E={...b,resolver:C,fetchOptions:b},N=C.bindDescriptor(A,a.anchoredLocator,E),B=await C.getCandidates(N,{},E);if(B.length===0)return null;let F=B[0],{protocol:Q,source:X,params:ae,selector:ne}=gb.structUtils.parseRange(gb.structUtils.convertToManifestRange(F.reference));if(Q===r.configuration.get("defaultProtocol")&&(Q=null),Eas.default.valid(ne)){let ce=ne;if(typeof l<"u")ne=l+ne;else if(o!==!1){let de=typeof o=="string"?o:A.range;ne=Sas(de,{project:r})+ne}let fe=gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}));(await C.getCandidates(r.configuration.normalizeDependency(fe),{},E)).length!==1&&(ne=ce)}return gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}))}async function Jfl(e){return await zkt.xfs.mktempPromise(async t=>{let r=x_e.Configuration.create(t);return r.useWithSource(t,{enableMirror:!1,compressionLevel:0},t,{overwrite:!0}),await e(new x_e.Cache(t,{configuration:r,check:!1,immutable:!1}))})}});var Das=H(xQr=>{"use strict";Object.defineProperty(xQr,"__esModule",{value:!0});var Nas=(Pa(),vi(Va)),Tas=el(),xO=Bn(),Ras=Bn(),cL=Bn(),jv=($c(),vi(rg)),Ufl=Lje(),Kfl=Nas.__importStar((CZ(),vi(mZ))),qG=Nas.__importStar(Wje()),Oje=class extends Tas.BaseCommand{constructor(){super(...arguments),this.json=jv.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.fixed=jv.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=jv.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=jv.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=jv.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.dev=jv.Option.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"}),this.peer=jv.Option.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"}),this.optional=jv.Option.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"}),this.preferDev=jv.Option.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"}),this.interactive=jv.Option.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"}),this.cached=jv.Option.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"}),this.mode=jv.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Kfl.isEnum(Ras.InstallMode)}),this.silent=jv.Option.Boolean("--silent",{hidden:!0}),this.packages=jv.Option.Rest()}async execute(){let t=await xO.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ras.Project.find(t,this.context.cwd),a=await xO.Cache.find(t);if(!n)throw new Tas.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l||t.get("preferReuse"),f=qG.getModifier(this,r),I=[A?qG.Strategy.REUSE:void 0,qG.Strategy.PROJECT,this.cached?qG.Strategy.CACHE:void 0,qG.Strategy.LATEST].filter(X=>typeof X<"u"),C=l?1/0:1,b=X=>{let ae=cL.structUtils.tryParseDescriptor(X.slice(4));return ae?ae.range==="unknown"?cL.structUtils.makeDescriptor(ae,`jsr:${cL.structUtils.stringifyIdent(ae)}@latest`):cL.structUtils.makeDescriptor(ae,`jsr:${ae.range}`):null},E=await Promise.all(this.packages.map(async X=>{let ae=X.match(/^\.{0,2}\//)?await qG.extractDescriptorFromPath(X,{cwd:this.context.cwd,workspace:n}):X.startsWith("jsr:")?b(X):cL.structUtils.tryParseDescriptor(X),ne=X.match(/^(https?:|git@github)/);if(ne)throw new jv.UsageError(`It seems you are trying to add a package using a ${xO.formatUtils.pretty(t,`${ne[0]}...`,xO.formatUtils.Type.RANGE)} url; we now require package names to be explicitly specified. -Try running the command again with the package name prefixed: ${xO.formatUtils.pretty(t,"yarn add",xO.formatUtils.Type.CODE)} ${xO.formatUtils.pretty(t,cL.structUtils.makeDescriptor(cL.structUtils.makeIdent(null,"my-package"),`${ne[0]}...`),xO.formatUtils.Type.DESCRIPTOR)}`);if(!ae)throw new jv.UsageError(`The ${xO.formatUtils.pretty(t,X,xO.formatUtils.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ce=jfl(n,ae,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ce.map(async ue=>{let de=await qG.getSuggestedDescriptors(ae,{project:r,workspace:n,cache:a,fixed:o,target:ue,modifier:f,strategies:I,maxResults:C});return{request:ae,suggestedDescriptors:de,target:ue}}))})).then(X=>X.flat()),N=await xO.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async X=>{for(let{request:ae,suggestedDescriptors:{suggestions:ne,rejections:ce}}of E)if(ne.filter(ue=>ue.descriptor!==null).length===0){let[ue]=ce;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range`):X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),X.reportSeparator(),X.reportExceptionOnce(ue)}});if(N.hasErrors())return N.exitCode();let B=!1,F=[],Q=[];for(let{suggestedDescriptors:{suggestions:X},target:ae}of E){let ne,ce=X.filter(be=>be.descriptor!==null),fe=ce[0].descriptor,ue=ce.every(be=>cL.structUtils.areDescriptorsEqual(be.descriptor,fe));ce.length===1||ue?ne=fe:(B=!0,{answer:ne}=await(0,Ufl.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:X.map(({descriptor:be,name:Se,reason:De})=>be?{name:Se,hint:De,descriptor:be}:{name:Se,hint:De,disabled:!0}),onCancel:()=>process.exit(130),result(be){return this.find(be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let de=n.manifest[ae].get(ne.identHash);(typeof de>"u"||de.descriptorHash!==ne.descriptorHash)&&(n.manifest[ae].set(ne.identHash,ne),this.optional&&(ae==="dependencies"?n.manifest.ensureDependencyMeta({...ne,range:"unknown"}).optional=!0:ae==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...ne,range:"unknown"}).optional=!0)),typeof de>"u"?F.push([n,ae,ne,I]):Q.push([n,ae,de,ne]))}return await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyAddition,F),await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyReplacement,Q),B&&this.context.stdout.write(` -`),await r.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:a,mode:this.mode})}};Oje.paths=[["add"]];Oje.usage=jv.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]});xQr.default=Oje;function jfl(e,t,{dev:r,peer:n,preferDev:a,optional:o}){let l=e.manifest[qG.Target.REGULAR].has(t.identHash),A=e.manifest[qG.Target.DEVELOPMENT].has(t.identHash),f=e.manifest[qG.Target.PEER].has(t.identHash);if((r||n)&&l)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(o&&A)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(o&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&o)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);let I=[];return n&&I.push(qG.Target.PEER),(r||a)&&I.push(qG.Target.DEVELOPMENT),o&&I.push(qG.Target.REGULAR),I.length>0?I:A?[qG.Target.DEVELOPMENT]:f?[qG.Target.PEER]:[qG.Target.REGULAR]}});var kas=H(FQr=>{"use strict";Object.defineProperty(FQr,"__esModule",{value:!0});var zfl=el(),GQr=Bn(),Mje=Bn(),Hje=($c(),vi(rg)),Yje=class extends zfl.BaseCommand{constructor(){super(...arguments),this.verbose=Hje.Option.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"}),this.json=Hje.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.name=Hje.Option.String({required:!1})}async execute(){let t=await GQr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await GQr.Project.find(t,this.context.cwd);if(await r.restoreInstallState(),this.name){let l=(await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r})).get(this.name);if(!l)throw new Hje.UsageError(`Couldn't find a binary named "${this.name}" for package "${Mje.structUtils.prettyLocator(t,n)}"`);let[,A]=l;return this.context.stdout.write(`${A} +`)),this.restore()}submit(){this.value={};for(let t of this.choices)this.value[t.name]=t.scaleIdx;return this.base.submit.call(this)}};function Lfl(e,t={}){if(Array.isArray(t.scale))return t.scale.map(n=>({...n}));let r=[];for(let n=1;n{gas.exports=pQr()});var pas=H((Aeg,das)=>{"use strict";var Vfl=Kkt(),wQr=class extends Vfl{async initialize(){await super.initialize(),this.value=this.initial=this.resolve(this.options.initial),this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(t="",r){switch(t.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let t=n=>this.styles.primary.underline(n);return[this.value?this.disabled:t(this.disabled),this.value?t(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:t}=this.state,r=await this.header(),n=await this.prefix(),a=await this.separator(),o=await this.message(),l=await this.format(),A=await this.error()||await this.hint(),f=await this.footer(),I=[n,o,a,l].join(" ");this.state.prompt=I,A&&!I.includes(A)&&(I+=" "+A),this.clear(t),this.write([r,I,f].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};das.exports=wQr});var Ias=H((deg,fas)=>{"use strict";var Pfl=rue(),TQr=class extends Pfl{constructor(t){if(super(t),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(t,r){let n=await super.toChoices(t,r);if(n.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>n.length)throw new Error("Please specify the index of the correct answer from the list of choices");return n}check(t){return t.index===this.options.correctChoice}async result(t){return{selectedAnswer:t,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};fas.exports=TQr});var mas=H(RQr=>{"use strict";var has=zG(),VR=(e,t)=>{has.defineExport(RQr,e,t),has.defineExport(RQr,e.toLowerCase(),t)};VR("AutoComplete",()=>Sos());VR("BasicAuth",()=>Dos());VR("Confirm",()=>Gos());VR("Editable",()=>Zos());VR("Form",()=>Ukt());VR("Input",()=>pQr());VR("Invisible",()=>Hos());VR("List",()=>Qos());VR("MultiSelect",()=>Jos());VR("Numeral",()=>jos());VR("Password",()=>qos());VR("Scale",()=>tas());VR("Select",()=>rue());VR("Snippet",()=>oas());VR("Sort",()=>cas());VR("Survey",()=>uas());VR("Text",()=>Aas());VR("Toggle",()=>pas());VR("Quiz",()=>Ias())});var _as=H((feg,Cas)=>{Cas.exports={ArrayPrompt:Fje(),AuthPrompt:cQr(),BooleanPrompt:Kkt(),NumberPrompt:CQr(),StringPrompt:k_e()}});var Lje=H((Ieg,bas)=>{"use strict";var yas=wt("assert"),DQr=wt("events"),nue=zG(),W4=class extends DQr{constructor(t,r){super(),this.options=nue.merge({},t),this.answers={...r}}register(t,r){if(nue.isObject(t)){for(let a of Object.keys(t))this.register(a,t[a]);return this}yas.equal(typeof r,"function","expected a function");let n=t.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[n]=r:this.prompts[n]=r(this.Prompt,this),this}async prompt(t=[]){for(let r of[].concat(t))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(nue.merge({},this.options,r))}catch(n){return Promise.reject(n)}return this.answers}async ask(t){typeof t=="function"&&(t=await t.call(this));let r=nue.merge({},this.options,t),{type:n,name:a}=t,{set:o,get:l}=nue;if(typeof n=="function"&&(n=await n.call(this,t,this.answers)),!n)return this.answers[a];n==="number"&&(n="numeral"),yas(this.prompts[n],`Prompt "${n}" is not registered`);let A=new this.prompts[n](r),f=l(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",C=>{this.emit("answer",a,C,A),o(this.answers,a,C)});let I=A.emit.bind(A);return A.emit=(...C)=>(this.emit.call(this,...C),I(...C)),this.emit("prompt",A,this),r.autofill&&f!=null?(A.value=A.input=f,r.autofill==="show"&&await A.submit()):f=A.value=await A.run(),f}use(t){return t.call(this,this),this}set Prompt(t){this._Prompt=t}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(t){this._Prompt=t}static get Prompt(){return this._Prompt||Hxe()}static get prompts(){return mas()}static get types(){return _as()}static get prompt(){let t=(r,...n)=>{let a=new this(...n),o=a.emit.bind(a);return a.emit=(...l)=>(t.emit(...l),o(...l)),a.prompt(r)};return nue.mixinEmitter(t,new DQr),t}};nue.mixinEmitter(W4,new DQr);var NQr=W4.prompts;for(let e of Object.keys(NQr)){let t=e.toLowerCase(),r=n=>new NQr[e](n).run();W4.prompt[t]=r,W4[t]=r,W4[e]||Reflect.defineProperty(W4,e,{get:()=>NQr[e]})}var Zje=e=>{nue.defineExport(W4,e,()=>W4.types[e])};Zje("ArrayPrompt");Zje("AuthPrompt");Zje("BooleanPrompt");Zje("NumberPrompt");Zje("StringPrompt");bas.exports=W4});var Wje=H(PR=>{"use strict";Object.defineProperty(PR,"__esModule",{value:!0});PR.Strategy=PR.WorkspaceModifier=PR.Modifier=PR.Target=void 0;PR.getModifier=Mfl;PR.extractRangeModifier=Sas;PR.applyModifier=Yfl;PR.toWorkspaceModifier=vas;PR.makeWorkspaceDescriptor=Bas;PR.findProjectDescriptors=was;PR.extractDescriptorFromPath=Qfl;PR.getSuggestedDescriptors=Jfl;PR.fetchDescriptorFrom=kQr;var Wfl=(Pa(),vi(Va)),x_e=Bn(),gb=Bn(),zkt=no(),Eas=Wfl.__importDefault(UC()),Ofl="workspace:",Pje;(function(e){e.REGULAR="dependencies",e.DEVELOPMENT="devDependencies",e.PEER="peerDependencies"})(Pje||(PR.Target=Pje={}));var sue;(function(e){e.CARET="^",e.TILDE="~",e.EXACT=""})(sue||(PR.Modifier=sue={}));var Vje;(function(e){e.CARET="^",e.TILDE="~",e.EXACT="*"})(Vje||(PR.WorkspaceModifier=Vje={}));var iue;(function(e){e.KEEP="keep",e.REUSE="reuse",e.PROJECT="project",e.LATEST="latest",e.CACHE="cache"})(iue||(PR.Strategy=iue={}));function Mfl(e,t){return e.exact?sue.EXACT:e.caret?sue.CARET:e.tilde?sue.TILDE:t.configuration.get("defaultSemverRangePrefix")}var Hfl=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Sas(e,{project:t}){let r=e.match(Hfl);return r?r[1]:t.configuration.get("defaultSemverRangePrefix")}function Yfl(e,t){let{protocol:r,source:n,params:a,selector:o}=gb.structUtils.parseRange(e.range);return Eas.default.valid(o)&&(o=`${t}${e.range}`),gb.structUtils.makeDescriptor(e,gb.structUtils.makeRange({protocol:r,source:n,params:a,selector:o}))}function vas(e){switch(e){case sue.CARET:return Vje.CARET;case sue.TILDE:return Vje.TILDE;case sue.EXACT:return Vje.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${e}"`)}}function Bas(e,t){return gb.structUtils.makeDescriptor(e.anchoredDescriptor,`${Ofl}${vas(t)}`)}async function was(e,{project:t,target:r}){let n=new Map,a=o=>{let l=n.get(o.descriptorHash);return l||n.set(o.descriptorHash,l={descriptor:o,locators:[]}),l};for(let o of t.workspaces)if(r===Pje.PEER){let l=o.manifest.peerDependencies.get(e.identHash);l!==void 0&&a(l).locators.push(o.anchoredLocator)}else{let l=o.manifest.dependencies.get(e.identHash),A=o.manifest.devDependencies.get(e.identHash);r===Pje.DEVELOPMENT?A!==void 0?a(A).locators.push(o.anchoredLocator):l!==void 0&&a(l).locators.push(o.anchoredLocator):l!==void 0?a(l).locators.push(o.anchoredLocator):A!==void 0&&a(A).locators.push(o.anchoredLocator)}return n}async function Qfl(e,{cwd:t,workspace:r}){return await Ufl(async n=>{zkt.ppath.isAbsolute(e)||(e=zkt.ppath.relative(r.cwd,zkt.ppath.resolve(t,e)),e.match(/^\.{0,2}\//)||(e=`./${e}`));let{project:a}=r,o=await kQr(gb.structUtils.makeIdent(null,"archive"),e,{project:r.project,cache:n,workspace:r});if(!o)throw new Error("Assertion failed: The descriptor should have been found");let l=new x_e.ThrowReport,A=a.configuration.makeResolver(),f=a.configuration.makeFetcher(),I={checksums:a.storedChecksums,project:a,cache:n,fetcher:f,report:l,resolver:A},C=A.bindDescriptor(o,r.anchoredLocator,I),b=gb.structUtils.convertDescriptorToLocator(C),E=await f.fetch(b,I),N=await x_e.Manifest.find(E.prefixPath,{baseFs:E.packageFs});if(!N.name)throw new Error("Target path doesn't have a name");return gb.structUtils.makeDescriptor(N.name,e)})}function Xfl(e){if(e.range==="unknown")return{type:"resolve",range:"latest"};if(gb.semverUtils.validRange(e.range))return{type:"fixed",range:e.range};if(x_e.TAG_REGEXP.test(e.range))return{type:"resolve",range:e.range};let t=e.range.match(/^(?:jsr:|npm:)(.*)/);if(!t)return{type:"fixed",range:e.range};let[,r]=t,n=`${gb.structUtils.stringifyIdent(e)}@`;return r.startsWith(n)&&(r=r.slice(n.length)),gb.semverUtils.validRange(r)?{type:"fixed",range:e.range}:x_e.TAG_REGEXP.test(r)?{type:"resolve",range:e.range}:{type:"fixed",range:e.range}}async function Jfl(e,{project:t,workspace:r,cache:n,target:a,fixed:o,modifier:l,strategies:A,maxResults:f=1/0}){if(!(f>=0))throw new Error(`Invalid maxResults (${f})`);let I=!o||e.range==="unknown"?Xfl(e):{type:"fixed",range:e.range};if(I.type==="fixed")return{suggestions:[{descriptor:e,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,e)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let C=typeof r<"u"&&r!==null&&r.manifest[a].get(e.identHash)||null,b=[],E=[],N=async B=>{try{await B()}catch(F){E.push(F)}};for(let B of A){if(b.length>=f)break;switch(B){case iue.KEEP:await N(async()=>{C&&b.push({descriptor:C,name:`Keep ${gb.structUtils.prettyDescriptor(t.configuration,C)}`,reason:"(no changes)"})});break;case iue.REUSE:await N(async()=>{for(let{descriptor:F,locators:Q}of(await was(e,{project:t,target:a})).values()){if(Q.length===1&&Q[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes(iue.KEEP))continue;let X=`(originally used by ${gb.structUtils.prettyLocator(t.configuration,Q[0])}`;X+=Q.length>1?` and ${Q.length-1} other${Q.length>2?"s":""})`:")",b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:X})}});break;case iue.CACHE:await N(async()=>{for(let F of t.storedDescriptors.values())F.identHash===e.identHash&&b.push({descriptor:F,name:`Reuse ${gb.structUtils.prettyDescriptor(t.configuration,F)}`,reason:"(already used somewhere in the lockfile)"})});break;case iue.PROJECT:await N(async()=>{if(r.manifest.name!==null&&e.identHash===r.manifest.name.identHash)return;let F=t.tryWorkspaceByIdent(e);if(F===null)return;let Q=Bas(F,l);b.push({descriptor:Q,name:`Attach ${gb.structUtils.prettyDescriptor(t.configuration,Q)}`,reason:`(local workspace at ${gb.formatUtils.pretty(t.configuration,F.relativeCwd,gb.formatUtils.Type.PATH)})`})});break;case iue.LATEST:{let F=t.configuration.get("enableNetwork"),Q=t.configuration.get("enableOfflineMode");await N(async()=>{if(a===Pje.PEER)b.push({descriptor:gb.structUtils.makeDescriptor(e,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!F&&!Q)b.push({descriptor:null,name:"Resolve from latest",reason:gb.formatUtils.pretty(t.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let X=await kQr(e,I.range,{project:t,cache:n,workspace:r,modifier:l});X&&b.push({descriptor:X,name:`Use ${gb.structUtils.prettyDescriptor(t.configuration,X)}`,reason:`(resolved from ${Q?"the cache":"latest"})`})}})}break}}return{suggestions:b.slice(0,f),rejections:E.slice(0,f)}}async function kQr(e,t,{project:r,cache:n,workspace:a,preserveModifier:o=!0,modifier:l}){let A=r.configuration.normalizeDependency(gb.structUtils.makeDescriptor(e,t)),f=new x_e.ThrowReport,I=r.configuration.makeFetcher(),C=r.configuration.makeResolver(),b={project:r,fetcher:I,cache:n,checksums:r.storedChecksums,report:f,cacheOptions:{skipIntegrityCheck:!0}},E={...b,resolver:C,fetchOptions:b},N=C.bindDescriptor(A,a.anchoredLocator,E),B=await C.getCandidates(N,{},E);if(B.length===0)return null;let F=B[0],{protocol:Q,source:X,params:ae,selector:ne}=gb.structUtils.parseRange(gb.structUtils.convertToManifestRange(F.reference));if(Q===r.configuration.get("defaultProtocol")&&(Q=null),Eas.default.valid(ne)){let ce=ne;if(typeof l<"u")ne=l+ne;else if(o!==!1){let de=typeof o=="string"?o:A.range;ne=Sas(de,{project:r})+ne}let fe=gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}));(await C.getCandidates(r.configuration.normalizeDependency(fe),{},E)).length!==1&&(ne=ce)}return gb.structUtils.makeDescriptor(F,gb.structUtils.makeRange({protocol:Q,source:X,params:ae,selector:ne}))}async function Ufl(e){return await zkt.xfs.mktempPromise(async t=>{let r=x_e.Configuration.create(t);return r.useWithSource(t,{enableMirror:!1,compressionLevel:0},t,{overwrite:!0}),await e(new x_e.Cache(t,{configuration:r,check:!1,immutable:!1}))})}});var Das=H(xQr=>{"use strict";Object.defineProperty(xQr,"__esModule",{value:!0});var Nas=(Pa(),vi(Va)),Tas=el(),xO=Bn(),Ras=Bn(),cL=Bn(),jv=($c(),vi(rg)),Kfl=Lje(),jfl=Nas.__importStar((CZ(),vi(mZ))),qG=Nas.__importStar(Wje()),Oje=class extends Tas.BaseCommand{constructor(){super(...arguments),this.json=jv.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.fixed=jv.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=jv.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=jv.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=jv.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.dev=jv.Option.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"}),this.peer=jv.Option.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"}),this.optional=jv.Option.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"}),this.preferDev=jv.Option.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"}),this.interactive=jv.Option.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"}),this.cached=jv.Option.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"}),this.mode=jv.Option.String("--mode",{description:"Change what artifacts installs generate",validator:jfl.isEnum(Ras.InstallMode)}),this.silent=jv.Option.Boolean("--silent",{hidden:!0}),this.packages=jv.Option.Rest()}async execute(){let t=await xO.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ras.Project.find(t,this.context.cwd),a=await xO.Cache.find(t);if(!n)throw new Tas.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l||t.get("preferReuse"),f=qG.getModifier(this,r),I=[A?qG.Strategy.REUSE:void 0,qG.Strategy.PROJECT,this.cached?qG.Strategy.CACHE:void 0,qG.Strategy.LATEST].filter(X=>typeof X<"u"),C=l?1/0:1,b=X=>{let ae=cL.structUtils.tryParseDescriptor(X.slice(4));return ae?ae.range==="unknown"?cL.structUtils.makeDescriptor(ae,`jsr:${cL.structUtils.stringifyIdent(ae)}@latest`):cL.structUtils.makeDescriptor(ae,`jsr:${ae.range}`):null},E=await Promise.all(this.packages.map(async X=>{let ae=X.match(/^\.{0,2}\//)?await qG.extractDescriptorFromPath(X,{cwd:this.context.cwd,workspace:n}):X.startsWith("jsr:")?b(X):cL.structUtils.tryParseDescriptor(X),ne=X.match(/^(https?:|git@github)/);if(ne)throw new jv.UsageError(`It seems you are trying to add a package using a ${xO.formatUtils.pretty(t,`${ne[0]}...`,xO.formatUtils.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${xO.formatUtils.pretty(t,"yarn add",xO.formatUtils.Type.CODE)} ${xO.formatUtils.pretty(t,cL.structUtils.makeDescriptor(cL.structUtils.makeIdent(null,"my-package"),`${ne[0]}...`),xO.formatUtils.Type.DESCRIPTOR)}`);if(!ae)throw new jv.UsageError(`The ${xO.formatUtils.pretty(t,X,xO.formatUtils.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ce=zfl(n,ae,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ce.map(async ue=>{let de=await qG.getSuggestedDescriptors(ae,{project:r,workspace:n,cache:a,fixed:o,target:ue,modifier:f,strategies:I,maxResults:C});return{request:ae,suggestedDescriptors:de,target:ue}}))})).then(X=>X.flat()),N=await xO.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async X=>{for(let{request:ae,suggestedDescriptors:{suggestions:ne,rejections:ce}}of E)if(ne.filter(ue=>ue.descriptor!==null).length===0){let[ue]=ce;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range`):X.reportError(xO.MessageName.CANT_SUGGEST_RESOLUTIONS,`${cL.structUtils.prettyDescriptor(t,ae)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),X.reportSeparator(),X.reportExceptionOnce(ue)}});if(N.hasErrors())return N.exitCode();let B=!1,F=[],Q=[];for(let{suggestedDescriptors:{suggestions:X},target:ae}of E){let ne,ce=X.filter(be=>be.descriptor!==null),fe=ce[0].descriptor,ue=ce.every(be=>cL.structUtils.areDescriptorsEqual(be.descriptor,fe));ce.length===1||ue?ne=fe:(B=!0,{answer:ne}=await(0,Kfl.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:X.map(({descriptor:be,name:Se,reason:De})=>be?{name:Se,hint:De,descriptor:be}:{name:Se,hint:De,disabled:!0}),onCancel:()=>process.exit(130),result(be){return this.find(be,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let de=n.manifest[ae].get(ne.identHash);(typeof de>"u"||de.descriptorHash!==ne.descriptorHash)&&(n.manifest[ae].set(ne.identHash,ne),this.optional&&(ae==="dependencies"?n.manifest.ensureDependencyMeta({...ne,range:"unknown"}).optional=!0:ae==="peerDependencies"&&(n.manifest.ensurePeerDependencyMeta({...ne,range:"unknown"}).optional=!0)),typeof de>"u"?F.push([n,ae,ne,I]):Q.push([n,ae,de,ne]))}return await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyAddition,F),await t.triggerMultipleHooks(X=>X.afterWorkspaceDependencyReplacement,Q),B&&this.context.stdout.write(` +`),await r.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:a,mode:this.mode})}};Oje.paths=[["add"]];Oje.usage=jv.Command.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]});xQr.default=Oje;function zfl(e,t,{dev:r,peer:n,preferDev:a,optional:o}){let l=e.manifest[qG.Target.REGULAR].has(t.identHash),A=e.manifest[qG.Target.DEVELOPMENT].has(t.identHash),f=e.manifest[qG.Target.PEER].has(t.identHash);if((r||n)&&l)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(o&&A)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(o&&!n&&f)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&o)throw new jv.UsageError(`Package "${cL.structUtils.prettyIdent(e.project.configuration,t)}" cannot simultaneously be a dev dependency and an optional dependency`);let I=[];return n&&I.push(qG.Target.PEER),(r||a)&&I.push(qG.Target.DEVELOPMENT),o&&I.push(qG.Target.REGULAR),I.length>0?I:A?[qG.Target.DEVELOPMENT]:f?[qG.Target.PEER]:[qG.Target.REGULAR]}});var kas=H(FQr=>{"use strict";Object.defineProperty(FQr,"__esModule",{value:!0});var qfl=el(),GQr=Bn(),Mje=Bn(),Hje=($c(),vi(rg)),Yje=class extends qfl.BaseCommand{constructor(){super(...arguments),this.verbose=Hje.Option.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"}),this.json=Hje.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.name=Hje.Option.String({required:!1})}async execute(){let t=await GQr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await GQr.Project.find(t,this.context.cwd);if(await r.restoreInstallState(),this.name){let l=(await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r})).get(this.name);if(!l)throw new Hje.UsageError(`Couldn't find a binary named "${this.name}" for package "${Mje.structUtils.prettyLocator(t,n)}"`);let[,A]=l;return this.context.stdout.write(`${A} `),0}return(await GQr.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let l=await Mje.scriptUtils.getPackageAccessibleBinaries(n,{project:r}),f=Array.from(l.keys()).reduce((I,C)=>Math.max(I,C.length),0);for(let[I,[C,b]]of l)o.reportJson({name:I,source:Mje.structUtils.stringifyIdent(C),path:b});if(this.verbose)for(let[I,[C]]of l)o.reportInfo(null,`${I.padEnd(f," ")} ${Mje.structUtils.prettyLocator(t,C)}`);else for(let I of l.keys())o.reportInfo(null,I)})).exitCode()}};Yje.paths=[["bin"]];Yje.usage=Hje.Command.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});FQr.default=Yje});var Gas=H(LQr=>{"use strict";Object.defineProperty(LQr,"__esModule",{value:!0});var qfl=el(),ZQr=Bn(),xas=no(),qkt=($c(),vi(rg)),Qje=class extends qfl.BaseCommand{constructor(){super(...arguments),this.mirror=qkt.Option.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"}),this.all=qkt.Option.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ZQr.Configuration.find(this.context.cwd,this.context.plugins);if(!t.get("enableCacheClean"))throw new qkt.UsageError("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let r=await ZQr.Cache.find(t);return(await ZQr.StreamReport.start({configuration:t,stdout:this.context.stdout},async()=>{let a=(this.all||this.mirror)&&r.mirrorCwd!==null,o=!this.mirror;a&&(await xas.xfs.removePromise(r.mirrorCwd),await t.triggerHook(l=>l.cleanGlobalArtifacts,t)),o&&await xas.xfs.removePromise(r.cwd)})).exitCode()}};Qje.paths=[["cache","clean"],["cache","clear"]];Qje.usage=qkt.Command.Usage({description:"remove the shared cache files",details:` + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});FQr.default=Yje});var Gas=H(LQr=>{"use strict";Object.defineProperty(LQr,"__esModule",{value:!0});var $fl=el(),ZQr=Bn(),xas=no(),qkt=($c(),vi(rg)),Qje=class extends $fl.BaseCommand{constructor(){super(...arguments),this.mirror=qkt.Option.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"}),this.all=qkt.Option.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let t=await ZQr.Configuration.find(this.context.cwd,this.context.plugins);if(!t.get("enableCacheClean"))throw new qkt.UsageError("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let r=await ZQr.Cache.find(t);return(await ZQr.StreamReport.start({configuration:t,stdout:this.context.stdout},async()=>{let a=(this.all||this.mirror)&&r.mirrorCwd!==null,o=!this.mirror;a&&(await xas.xfs.removePromise(r.mirrorCwd),await t.triggerHook(l=>l.cleanGlobalArtifacts,t)),o&&await xas.xfs.removePromise(r.cwd)})).exitCode()}};Qje.paths=[["cache","clean"],["cache","clear"]];Qje.usage=qkt.Command.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});LQr.default=Qje});var Zas=H(PQr=>{"use strict";Object.defineProperty(PQr,"__esModule",{value:!0});var $fl=el(),VQr=Bn(),Qxe=($c(),vi(rg)),eIl=kW(),Fas=wt("util"),Xje=class extends $fl.BaseCommand{constructor(){super(...arguments),this.why=Qxe.Option.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"}),this.json=Qxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.unsafe=Qxe.Option.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"}),this.name=Qxe.Option.String()}async execute(){let t=await VQr.Configuration.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(r)>"u")throw new Qxe.UsageError(`Couldn't find a configuration settings named "${r}"`);let o=t.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),l=VQr.miscUtils.convertMapsToIndexableObjects(o),A=n?(0,eIl.get)(l,n):l,f=await VQr.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async I=>{I.reportJson(A)});if(!this.json){if(typeof A=="string")return this.context.stdout.write(`${A} + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});LQr.default=Qje});var Zas=H(PQr=>{"use strict";Object.defineProperty(PQr,"__esModule",{value:!0});var eIl=el(),VQr=Bn(),Qxe=($c(),vi(rg)),tIl=kW(),Fas=wt("util"),Xje=class extends eIl.BaseCommand{constructor(){super(...arguments),this.why=Qxe.Option.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"}),this.json=Qxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.unsafe=Qxe.Option.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"}),this.name=Qxe.Option.String()}async execute(){let t=await VQr.Configuration.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*/,"");if(typeof t.settings.get(r)>"u")throw new Qxe.UsageError(`Couldn't find a configuration settings named "${r}"`);let o=t.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),l=VQr.miscUtils.convertMapsToIndexableObjects(o),A=n?(0,tIl.get)(l,n):l,f=await VQr.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async I=>{I.reportJson(A)});if(!this.json){if(typeof A=="string")return this.context.stdout.write(`${A} `),f.exitCode();Fas.inspect.styles.name="cyan",this.context.stdout.write(`${(0,Fas.inspect)(A,{depth:1/0,colors:t.get("enableColors"),compact:!1})} `)}return f.exitCode()}};Xje.paths=[["config","get"]];Xje.usage=Qxe.Command.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});PQr.default=Xje});var Vas=H(OQr=>{"use strict";Object.defineProperty(OQr,"__esModule",{value:!0});var tIl=el(),G_e=Bn(),oue=($c(),vi(rg)),WQr=kW(),Las=wt("util"),Jje=class extends tIl.BaseCommand{constructor(){super(...arguments),this.json=oue.Option.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"}),this.home=oue.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=oue.Option.String(),this.value=oue.Option.String()}async execute(){let t=await G_e.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new oue.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new oue.UsageError(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new oue.UsageError("This setting only affects the file it's in, and thus cannot be set from the CLI");let l=this.json?JSON.parse(this.value):this.value;await(this.home?N=>G_e.Configuration.updateHomeConfiguration(N):N=>G_e.Configuration.updateConfiguration(r(),N))(N=>{if(a){let B=(0,WQr.cloneDeep)(N);return(0,WQr.set)(B,this.name,l),B}else return{...N,[n]:l}});let I=(await G_e.Configuration.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),C=G_e.miscUtils.convertMapsToIndexableObjects(I),b=a?(0,WQr.get)(C,a):C;return(await G_e.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async N=>{Las.inspect.styles.name="cyan",N.reportInfo(G_e.MessageName.UNNAMED,`Successfully set ${this.name} to ${(0,Las.inspect)(b,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};Jje.paths=[["config","set"]];Jje.usage=oue.Command.Usage({description:"change a configuration settings",details:` + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});PQr.default=Xje});var Vas=H(OQr=>{"use strict";Object.defineProperty(OQr,"__esModule",{value:!0});var rIl=el(),G_e=Bn(),oue=($c(),vi(rg)),WQr=kW(),Las=wt("util"),Jje=class extends rIl.BaseCommand{constructor(){super(...arguments),this.json=oue.Option.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"}),this.home=oue.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=oue.Option.String(),this.value=oue.Option.String()}async execute(){let t=await G_e.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new oue.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new oue.UsageError(`Couldn't find a configuration settings named "${n}"`);if(n==="enableStrictSettings")throw new oue.UsageError("This setting only affects the file it's in, and thus cannot be set from the CLI");let l=this.json?JSON.parse(this.value):this.value;await(this.home?N=>G_e.Configuration.updateHomeConfiguration(N):N=>G_e.Configuration.updateConfiguration(r(),N))(N=>{if(a){let B=(0,WQr.cloneDeep)(N);return(0,WQr.set)(B,this.name,l),B}else return{...N,[n]:l}});let I=(await G_e.Configuration.find(this.context.cwd,this.context.plugins)).getSpecial(n,{hideSecrets:!0,getNativePaths:!0}),C=G_e.miscUtils.convertMapsToIndexableObjects(I),b=a?(0,WQr.get)(C,a):C;return(await G_e.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async N=>{Las.inspect.styles.name="cyan",N.reportInfo(G_e.MessageName.UNNAMED,`Successfully set ${this.name} to ${(0,Las.inspect)(b,{depth:1/0,colors:t.get("enableColors"),compact:!1})}`)})).exitCode()}};Jje.paths=[["config","set"]];Jje.usage=oue.Command.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});OQr.default=Jje});var Pas=H(HQr=>{"use strict";Object.defineProperty(HQr,"__esModule",{value:!0});var rIl=el(),Xxe=Bn(),Uje=($c(),vi(rg)),MQr=kW(),Kje=class extends rIl.BaseCommand{constructor(){super(...arguments),this.home=Uje.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=Uje.Option.String()}async execute(){let t=await Xxe.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new Uje.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Uje.UsageError(`Couldn't find a configuration settings named "${n}"`);let l=this.home?f=>Xxe.Configuration.updateHomeConfiguration(f):f=>Xxe.Configuration.updateConfiguration(r(),f);return(await Xxe.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async f=>{let I=!1;await l(C=>{if(!(0,MQr.has)(C,this.name))return f.reportWarning(Xxe.MessageName.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),I=!0,C;let b=a?(0,MQr.cloneDeep)(C):{...C};return(0,MQr.unset)(b,this.name),b}),I||f.reportInfo(Xxe.MessageName.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};Kje.paths=[["config","unset"]];Kje.usage=Uje.Command.Usage({description:"unset a configuration setting",details:` + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});OQr.default=Jje});var Pas=H(HQr=>{"use strict";Object.defineProperty(HQr,"__esModule",{value:!0});var nIl=el(),Xxe=Bn(),Uje=($c(),vi(rg)),MQr=kW(),Kje=class extends nIl.BaseCommand{constructor(){super(...arguments),this.home=Uje.Option.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"}),this.name=Uje.Option.String()}async execute(){let t=await Xxe.Configuration.find(this.context.cwd,this.context.plugins),r=()=>{if(!t.projectCwd)throw new Uje.UsageError("This command must be run from within a project folder");return t.projectCwd},n=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*\.?/,"");if(typeof t.settings.get(n)>"u")throw new Uje.UsageError(`Couldn't find a configuration settings named "${n}"`);let l=this.home?f=>Xxe.Configuration.updateHomeConfiguration(f):f=>Xxe.Configuration.updateConfiguration(r(),f);return(await Xxe.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout},async f=>{let I=!1;await l(C=>{if(!(0,MQr.has)(C,this.name))return f.reportWarning(Xxe.MessageName.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),I=!0,C;let b=a?(0,MQr.cloneDeep)(C):{...C};return(0,MQr.unset)(b,this.name),b}),I||f.reportInfo(Xxe.MessageName.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};Kje.paths=[["config","unset"]];Kje.usage=Uje.Command.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});HQr.default=Kje});var Was=H(QQr=>{"use strict";Object.defineProperty(QQr,"__esModule",{value:!0});var nIl=el(),ax=Bn(),iIl=no(),Jxe=($c(),vi(rg)),YQr=wt("util"),jje=class extends nIl.BaseCommand{constructor(){super(...arguments),this.noDefaults=Jxe.Option.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"}),this.json=Jxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.verbose=Jxe.Option.Boolean("-v,--verbose",{hidden:!0}),this.why=Jxe.Option.Boolean("--why",{hidden:!0}),this.names=Jxe.Option.Rest()}async execute(){let t=await ax.Configuration.find(this.context.cwd,this.context.plugins,{strict:!1}),r=await(0,ax.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(r!==null)return r;let n=this.names.length>0?[...new Set(this.names)].sort():[...t.settings.keys()].sort(),a,o=await ax.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async l=>{if(t.invalid.size>0&&!this.json){for(let[A,f]of t.invalid)l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${A}" in ${f}`);l.reportSeparator()}if(this.json)for(let A of n){if(this.noDefaults&&!t.sources.has(A))continue;let f=t.settings.get(A);typeof f>"u"&&l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`No configuration key named "${A}"`);let I=t.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),C=t.sources.get(A)??"",b=C&&C[0]!=="<"?iIl.npath.fromPortablePath(C):C;l.reportJson({key:A,effective:I,source:b,...f})}else{let A={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},f={},I={children:f};for(let C of n){if(this.noDefaults&&!t.sources.has(C))continue;let b=t.settings.get(C),E=t.sources.get(C)??"",N=t.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),B={Description:{label:"Description",value:ax.formatUtils.tuple(ax.formatUtils.Type.MARKDOWN,{text:b.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:ax.formatUtils.tuple(E[0]==="<"?ax.formatUtils.Type.CODE:ax.formatUtils.Type.PATH,E)}};f[C]={value:ax.formatUtils.tuple(ax.formatUtils.Type.CODE,C),children:B};let F=(Q,X)=>{for(let[ae,ne]of X)if(ne instanceof Map){let ce={};Q[ae]={children:ce},F(ce,ne)}else Q[ae]={label:ae,value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(ne,A))}};N instanceof Map?F(B,N):B.Value={label:"Value",value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(N,A))}}n.length!==1&&(a=void 0),ax.treeUtils.emitTree(I,{configuration:t,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof a<"u"){let l=n[0],A=(0,YQr.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),{colors:t.get("enableColors")});this.context.stdout.write(` + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});HQr.default=Kje});var Was=H(QQr=>{"use strict";Object.defineProperty(QQr,"__esModule",{value:!0});var iIl=el(),ax=Bn(),sIl=no(),Jxe=($c(),vi(rg)),YQr=wt("util"),jje=class extends iIl.BaseCommand{constructor(){super(...arguments),this.noDefaults=Jxe.Option.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"}),this.json=Jxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.verbose=Jxe.Option.Boolean("-v,--verbose",{hidden:!0}),this.why=Jxe.Option.Boolean("--why",{hidden:!0}),this.names=Jxe.Option.Rest()}async execute(){let t=await ax.Configuration.find(this.context.cwd,this.context.plugins,{strict:!1}),r=await(0,ax.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(r!==null)return r;let n=this.names.length>0?[...new Set(this.names)].sort():[...t.settings.keys()].sort(),a,o=await ax.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async l=>{if(t.invalid.size>0&&!this.json){for(let[A,f]of t.invalid)l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${A}" in ${f}`);l.reportSeparator()}if(this.json)for(let A of n){if(this.noDefaults&&!t.sources.has(A))continue;let f=t.settings.get(A);typeof f>"u"&&l.reportError(ax.MessageName.INVALID_CONFIGURATION_KEY,`No configuration key named "${A}"`);let I=t.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),C=t.sources.get(A)??"",b=C&&C[0]!=="<"?sIl.npath.fromPortablePath(C):C;l.reportJson({key:A,effective:I,source:b,...f})}else{let A={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},f={},I={children:f};for(let C of n){if(this.noDefaults&&!t.sources.has(C))continue;let b=t.settings.get(C),E=t.sources.get(C)??"",N=t.getSpecial(C,{hideSecrets:!0,getNativePaths:!0}),B={Description:{label:"Description",value:ax.formatUtils.tuple(ax.formatUtils.Type.MARKDOWN,{text:b.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:ax.formatUtils.tuple(E[0]==="<"?ax.formatUtils.Type.CODE:ax.formatUtils.Type.PATH,E)}};f[C]={value:ax.formatUtils.tuple(ax.formatUtils.Type.CODE,C),children:B};let F=(Q,X)=>{for(let[ae,ne]of X)if(ne instanceof Map){let ce={};Q[ae]={children:ce},F(ce,ne)}else Q[ae]={label:ae,value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(ne,A))}};N instanceof Map?F(B,N):B.Value={label:"Value",value:ax.formatUtils.tuple(ax.formatUtils.Type.NO_HINT,(0,YQr.inspect)(N,A))}}n.length!==1&&(a=void 0),ax.treeUtils.emitTree(I,{configuration:t,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof a<"u"){let l=n[0],A=(0,YQr.inspect)(t.getSpecial(l,{hideSecrets:!0,getNativePaths:!0}),{colors:t.get("enableColors")});this.context.stdout.write(` `),this.context.stdout.write(`${A} `)}return o.exitCode()}};jje.paths=[["config"]];jje.usage=Jxe.Command.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});QQr.default=jje});var JQr=H(Z_e=>{"use strict";Object.defineProperty(Z_e,"__esModule",{value:!0});Z_e.acceptedStrategies=Z_e.Strategy=void 0;Z_e.dedupe=cIl;var sIl=(Pa(),vi(Va)),F_e=Bn(),EH=Bn(),oIl=sIl.__importDefault(Ek()),XQr;(function(e){e.HIGHEST="highest"})(XQr||(Z_e.Strategy=XQr={}));Z_e.acceptedStrategies=new Set(Object.values(XQr));var aIl={highest:async(e,t,{resolver:r,fetcher:n,resolveOptions:a,fetchOptions:o})=>{let l=new Map;for(let[f,I]of e.storedResolutions){let C=e.storedDescriptors.get(f);if(typeof C>"u")throw new Error(`Assertion failed: The descriptor (${f}) should have been registered`);F_e.miscUtils.getSetWithDefault(l,C.identHash).add(I)}let A=new Map(F_e.miscUtils.mapAndFilter(e.storedDescriptors.values(),f=>EH.structUtils.isVirtualDescriptor(f)?F_e.miscUtils.mapAndFilter.skip:[f.descriptorHash,F_e.miscUtils.makeDeferred()]));for(let f of e.storedDescriptors.values()){let I=A.get(f.descriptorHash);if(typeof I>"u")throw new Error(`Assertion failed: The descriptor (${f.descriptorHash}) should have been registered`);let C=e.storedResolutions.get(f.descriptorHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolution (${f.descriptorHash}) should have been registered`);let b=e.originalPackages.get(C);if(typeof b>"u")throw new Error(`Assertion failed: The package (${C}) should have been registered`);Promise.resolve().then(async()=>{let E=r.getResolutionDependencies(f,a),N=Object.fromEntries(await F_e.miscUtils.allSettledSafe(Object.entries(E).map(async([ne,ce])=>{let fe=A.get(ce.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ce.descriptorHash}) should have been registered`);let ue=await fe.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ne,ue.updatedPackage]})));if(t.length&&!oIl.default.isMatch(EH.structUtils.stringifyIdent(f),t)||!r.shouldPersistResolution(b,a))return b;let B=l.get(f.identHash);if(typeof B>"u")throw new Error(`Assertion failed: The resolutions (${f.identHash}) should have been registered`);if(B.size===1)return b;let F=[...B].map(ne=>{let ce=e.originalPackages.get(ne);if(typeof ce>"u")throw new Error(`Assertion failed: The package (${ne}) should have been registered`);return ce}),Q=await r.getSatisfying(f,N,F,a),X=Q.locators?.[0];if(typeof X>"u"||!Q.sorted)return b;let ae=e.originalPackages.get(X.locatorHash);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${X.locatorHash}) should have been registered`);return ae}).then(async E=>{let N=await e.preparePackage(E,{resolver:r,resolveOptions:a});I.resolve({descriptor:f,currentPackage:b,updatedPackage:E,resolvedPackage:N})}).catch(E=>{I.reject(E)})}return[...A.values()].map(f=>f.promise)}};async function cIl(e,{strategy:t,patterns:r,cache:n,report:a}){let{configuration:o}=e,l=new F_e.ThrowReport,A=o.makeResolver(),f=o.makeFetcher(),I={cache:n,checksums:e.storedChecksums,fetcher:f,project:e,report:l,cacheOptions:{skipIntegrityCheck:!0}},C={project:e,resolver:A,report:l,fetchOptions:I};return await a.startTimerPromise("Deduplication step",async()=>{let b=aIl[t],E=await b(e,r,{resolver:A,resolveOptions:C,fetcher:f,fetchOptions:I}),N=F_e.Report.progressViaCounter(E.length);await a.reportProgress(N);let B=0;await Promise.all(E.map(X=>X.then(ae=>{if(ae===null||ae.currentPackage.locatorHash===ae.updatedPackage.locatorHash)return;B++;let{descriptor:ne,currentPackage:ce,updatedPackage:fe}=ae;a.reportInfo(EH.MessageName.UNNAMED,`${EH.structUtils.prettyDescriptor(o,ne)} can be deduped from ${EH.structUtils.prettyLocator(o,ce)} to ${EH.structUtils.prettyLocator(o,fe)}`),a.reportJson({descriptor:EH.structUtils.stringifyDescriptor(ne),currentResolution:EH.structUtils.stringifyLocator(ce),updatedResolution:EH.structUtils.stringifyLocator(fe)}),e.storedResolutions.set(ne.descriptorHash,fe.locatorHash)}).finally(()=>N.tick())));let F;switch(B){case 0:F="No packages";break;case 1:F="One package";break;default:F=`${B} packages`}let Q=EH.formatUtils.pretty(o,t,EH.formatUtils.Type.CODE);return a.reportInfo(EH.MessageName.UNNAMED,`${F} can be deduped using the ${Q} strategy`),B})}});var Has=H(KQr=>{"use strict";Object.defineProperty(KQr,"__esModule",{value:!0});var Mas=(Pa(),vi(Va)),lIl=el(),zje=Bn(),Uxe=($c(),vi(rg)),Oas=Mas.__importStar((CZ(),vi(mZ))),UQr=Mas.__importStar(JQr()),qje=class extends lIl.BaseCommand{constructor(){super(...arguments),this.strategy=Uxe.Option.String("-s,--strategy",UQr.Strategy.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Oas.isEnum(UQr.Strategy)}),this.check=Uxe.Option.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"}),this.json=Uxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.mode=Uxe.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Oas.isEnum(zje.InstallMode)}),this.patterns=Uxe.Option.Rest()}async execute(){let t=await zje.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zje.Project.find(t,this.context.cwd),n=await zje.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a=0,o=await zje.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async l=>{a=await UQr.dedupe(r,{strategy:this.strategy,patterns:this.patterns,cache:n,report:l})});return o.hasErrors()?o.exitCode():this.check?a?1:0:await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,mode:this.mode})}};qje.paths=[["dedupe"]];qje.usage=Uxe.Command.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});KQr.default=qje});var Yas=H(jQr=>{"use strict";Object.defineProperty(jQr,"__esModule",{value:!0});var uIl=el(),gIl=Bn(),AIl=($c(),vi(rg)),$kt=class extends uIl.BaseCommand{async execute(){let{plugins:t}=await gIl.Configuration.find(this.context.cwd,this.context.plugins),r=[];for(let l of t){let{commands:A}=l[1];if(A){let I=AIl.Cli.from(A).definitions();r.push([l[0],I])}}let n=this.cli.definitions(),a=(l,A)=>l.split(" ").slice(1).join()===A.split(" ").slice(1).join(),o=$dr()["@yarnpkg/builder"].bundles.standard;for(let l of r){let A=l[1];for(let f of A)n.find(I=>a(I.path,f.path)).plugin={name:l[0],isDefault:o.includes(l[0])}}this.context.stdout.write(`${JSON.stringify(n,null,2)} -`)}};$kt.paths=[["--clipanion=definitions"]];jQr.default=$kt});var Qas=H(zQr=>{"use strict";Object.defineProperty(zQr,"__esModule",{value:!0});var dIl=el(),ext=class extends dIl.BaseCommand{async execute(){this.context.stdout.write(this.cli.usage(null))}};ext.paths=[["help"],["--help"],["-h"]];zQr.default=ext});var Uas=H($Qr=>{"use strict";Object.defineProperty($Qr,"__esModule",{value:!0});var pIl=el(),fIl=Bn(),Xas=no(),Jas=($c(),vi(rg)),qQr=class extends pIl.BaseCommand{constructor(){super(...arguments),this.leadingArgument=Jas.Option.String(),this.args=Jas.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!fIl.structUtils.tryParseIdent(this.leadingArgument)){let t=Xas.ppath.resolve(this.context.cwd,Xas.npath.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};$Qr.default=qQr});var Kas=H(eXr=>{"use strict";Object.defineProperty(eXr,"__esModule",{value:!0});var IIl=el(),hIl=Bn(),txt=class extends IIl.BaseCommand{async execute(){this.context.stdout.write(`${hIl.YarnVersion||""} -`)}};txt.paths=[["-v"],["--version"]];eXr.default=txt});var zas=H(rXr=>{"use strict";Object.defineProperty(rXr,"__esModule",{value:!0});var mIl=el(),jas=Bn(),CIl=Bn(),tXr=($c(),vi(rg)),$je=class extends mIl.BaseCommand{constructor(){super(...arguments),this.commandName=tXr.Option.String(),this.args=tXr.Option.Proxy()}async execute(){let t=await jas.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await jas.Project.find(t,this.context.cwd);return await r.restoreInstallState(),await CIl.scriptUtils.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};$je.paths=[["exec"]];$je.usage=tXr.Command.Usage({description:"execute a shell script",details:` + `,examples:[["Print the active configuration settings","$0 config"]]});QQr.default=jje});var JQr=H(Z_e=>{"use strict";Object.defineProperty(Z_e,"__esModule",{value:!0});Z_e.acceptedStrategies=Z_e.Strategy=void 0;Z_e.dedupe=lIl;var oIl=(Pa(),vi(Va)),F_e=Bn(),EH=Bn(),aIl=oIl.__importDefault(Ek()),XQr;(function(e){e.HIGHEST="highest"})(XQr||(Z_e.Strategy=XQr={}));Z_e.acceptedStrategies=new Set(Object.values(XQr));var cIl={highest:async(e,t,{resolver:r,fetcher:n,resolveOptions:a,fetchOptions:o})=>{let l=new Map;for(let[f,I]of e.storedResolutions){let C=e.storedDescriptors.get(f);if(typeof C>"u")throw new Error(`Assertion failed: The descriptor (${f}) should have been registered`);F_e.miscUtils.getSetWithDefault(l,C.identHash).add(I)}let A=new Map(F_e.miscUtils.mapAndFilter(e.storedDescriptors.values(),f=>EH.structUtils.isVirtualDescriptor(f)?F_e.miscUtils.mapAndFilter.skip:[f.descriptorHash,F_e.miscUtils.makeDeferred()]));for(let f of e.storedDescriptors.values()){let I=A.get(f.descriptorHash);if(typeof I>"u")throw new Error(`Assertion failed: The descriptor (${f.descriptorHash}) should have been registered`);let C=e.storedResolutions.get(f.descriptorHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolution (${f.descriptorHash}) should have been registered`);let b=e.originalPackages.get(C);if(typeof b>"u")throw new Error(`Assertion failed: The package (${C}) should have been registered`);Promise.resolve().then(async()=>{let E=r.getResolutionDependencies(f,a),N=Object.fromEntries(await F_e.miscUtils.allSettledSafe(Object.entries(E).map(async([ne,ce])=>{let fe=A.get(ce.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ce.descriptorHash}) should have been registered`);let ue=await fe.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[ne,ue.updatedPackage]})));if(t.length&&!aIl.default.isMatch(EH.structUtils.stringifyIdent(f),t)||!r.shouldPersistResolution(b,a))return b;let B=l.get(f.identHash);if(typeof B>"u")throw new Error(`Assertion failed: The resolutions (${f.identHash}) should have been registered`);if(B.size===1)return b;let F=[...B].map(ne=>{let ce=e.originalPackages.get(ne);if(typeof ce>"u")throw new Error(`Assertion failed: The package (${ne}) should have been registered`);return ce}),Q=await r.getSatisfying(f,N,F,a),X=Q.locators?.[0];if(typeof X>"u"||!Q.sorted)return b;let ae=e.originalPackages.get(X.locatorHash);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${X.locatorHash}) should have been registered`);return ae}).then(async E=>{let N=await e.preparePackage(E,{resolver:r,resolveOptions:a});I.resolve({descriptor:f,currentPackage:b,updatedPackage:E,resolvedPackage:N})}).catch(E=>{I.reject(E)})}return[...A.values()].map(f=>f.promise)}};async function lIl(e,{strategy:t,patterns:r,cache:n,report:a}){let{configuration:o}=e,l=new F_e.ThrowReport,A=o.makeResolver(),f=o.makeFetcher(),I={cache:n,checksums:e.storedChecksums,fetcher:f,project:e,report:l,cacheOptions:{skipIntegrityCheck:!0}},C={project:e,resolver:A,report:l,fetchOptions:I};return await a.startTimerPromise("Deduplication step",async()=>{let b=cIl[t],E=await b(e,r,{resolver:A,resolveOptions:C,fetcher:f,fetchOptions:I}),N=F_e.Report.progressViaCounter(E.length);await a.reportProgress(N);let B=0;await Promise.all(E.map(X=>X.then(ae=>{if(ae===null||ae.currentPackage.locatorHash===ae.updatedPackage.locatorHash)return;B++;let{descriptor:ne,currentPackage:ce,updatedPackage:fe}=ae;a.reportInfo(EH.MessageName.UNNAMED,`${EH.structUtils.prettyDescriptor(o,ne)} can be deduped from ${EH.structUtils.prettyLocator(o,ce)} to ${EH.structUtils.prettyLocator(o,fe)}`),a.reportJson({descriptor:EH.structUtils.stringifyDescriptor(ne),currentResolution:EH.structUtils.stringifyLocator(ce),updatedResolution:EH.structUtils.stringifyLocator(fe)}),e.storedResolutions.set(ne.descriptorHash,fe.locatorHash)}).finally(()=>N.tick())));let F;switch(B){case 0:F="No packages";break;case 1:F="One package";break;default:F=`${B} packages`}let Q=EH.formatUtils.pretty(o,t,EH.formatUtils.Type.CODE);return a.reportInfo(EH.MessageName.UNNAMED,`${F} can be deduped using the ${Q} strategy`),B})}});var Has=H(KQr=>{"use strict";Object.defineProperty(KQr,"__esModule",{value:!0});var Mas=(Pa(),vi(Va)),uIl=el(),zje=Bn(),Uxe=($c(),vi(rg)),Oas=Mas.__importStar((CZ(),vi(mZ))),UQr=Mas.__importStar(JQr()),qje=class extends uIl.BaseCommand{constructor(){super(...arguments),this.strategy=Uxe.Option.String("-s,--strategy",UQr.Strategy.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Oas.isEnum(UQr.Strategy)}),this.check=Uxe.Option.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"}),this.json=Uxe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.mode=Uxe.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Oas.isEnum(zje.InstallMode)}),this.patterns=Uxe.Option.Rest()}async execute(){let t=await zje.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zje.Project.find(t,this.context.cwd),n=await zje.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let a=0,o=await zje.StreamReport.start({configuration:t,includeFooter:!1,stdout:this.context.stdout,json:this.json},async l=>{a=await UQr.dedupe(r,{strategy:this.strategy,patterns:this.patterns,cache:n,report:l})});return o.hasErrors()?o.exitCode():this.check?a?1:0:await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,mode:this.mode})}};qje.paths=[["dedupe"]];qje.usage=Uxe.Command.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});KQr.default=qje});var Yas=H(jQr=>{"use strict";Object.defineProperty(jQr,"__esModule",{value:!0});var gIl=el(),AIl=Bn(),dIl=($c(),vi(rg)),$kt=class extends gIl.BaseCommand{async execute(){let{plugins:t}=await AIl.Configuration.find(this.context.cwd,this.context.plugins),r=[];for(let l of t){let{commands:A}=l[1];if(A){let I=dIl.Cli.from(A).definitions();r.push([l[0],I])}}let n=this.cli.definitions(),a=(l,A)=>l.split(" ").slice(1).join()===A.split(" ").slice(1).join(),o=$dr()["@yarnpkg/builder"].bundles.standard;for(let l of r){let A=l[1];for(let f of A)n.find(I=>a(I.path,f.path)).plugin={name:l[0],isDefault:o.includes(l[0])}}this.context.stdout.write(`${JSON.stringify(n,null,2)} +`)}};$kt.paths=[["--clipanion=definitions"]];jQr.default=$kt});var Qas=H(zQr=>{"use strict";Object.defineProperty(zQr,"__esModule",{value:!0});var pIl=el(),ext=class extends pIl.BaseCommand{async execute(){this.context.stdout.write(this.cli.usage(null))}};ext.paths=[["help"],["--help"],["-h"]];zQr.default=ext});var Uas=H($Qr=>{"use strict";Object.defineProperty($Qr,"__esModule",{value:!0});var fIl=el(),IIl=Bn(),Xas=no(),Jas=($c(),vi(rg)),qQr=class extends fIl.BaseCommand{constructor(){super(...arguments),this.leadingArgument=Jas.Option.String(),this.args=Jas.Option.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!IIl.structUtils.tryParseIdent(this.leadingArgument)){let t=Xas.ppath.resolve(this.context.cwd,Xas.npath.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:t})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};$Qr.default=qQr});var Kas=H(eXr=>{"use strict";Object.defineProperty(eXr,"__esModule",{value:!0});var hIl=el(),mIl=Bn(),txt=class extends hIl.BaseCommand{async execute(){this.context.stdout.write(`${mIl.YarnVersion||""} +`)}};txt.paths=[["-v"],["--version"]];eXr.default=txt});var zas=H(rXr=>{"use strict";Object.defineProperty(rXr,"__esModule",{value:!0});var CIl=el(),jas=Bn(),_Il=Bn(),tXr=($c(),vi(rg)),$je=class extends CIl.BaseCommand{constructor(){super(...arguments),this.commandName=tXr.Option.String(),this.args=tXr.Option.Proxy()}async execute(){let t=await jas.Configuration.find(this.context.cwd,this.context.plugins),{project:r,locator:n}=await jas.Project.find(t,this.context.cwd);return await r.restoreInstallState(),await _Il.scriptUtils.executePackageShellcode(n,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};$je.paths=[["exec"]];$je.usage=tXr.Command.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});rXr.default=$je});var tcs=H(t6e=>{"use strict";Object.defineProperty(t6e,"__esModule",{value:!0});t6e.explainPeerRequirement=$as;t6e.explainPeerRequirements=ecs;var _Il=(Pa(),vi(Va)),yIl=el(),Ud=Bn(),qas=($c(),vi(rg)),nXr=_Il.__importStar((CZ(),vi(mZ))),e6e=class extends yIl.BaseCommand{constructor(){super(...arguments),this.hash=qas.Option.String({required:!1,validator:nXr.cascade(nXr.isString(),[nXr.matchesRegExp(/^p[0-9a-f]{6}$/)])})}async execute(){let t=await Ud.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await Ud.Project.find(t,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash<"u"?await $as(this.hash,r,{stdout:this.context.stdout}):await ecs(r,{stdout:this.context.stdout})}};e6e.paths=[["explain","peer-requirements"]];e6e.usage=qas.Command.Usage({description:"explain a set of peer requirements",details:` + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});rXr.default=$je});var tcs=H(t6e=>{"use strict";Object.defineProperty(t6e,"__esModule",{value:!0});t6e.explainPeerRequirement=$as;t6e.explainPeerRequirements=ecs;var yIl=(Pa(),vi(Va)),bIl=el(),Ud=Bn(),qas=($c(),vi(rg)),nXr=yIl.__importStar((CZ(),vi(mZ))),e6e=class extends bIl.BaseCommand{constructor(){super(...arguments),this.hash=qas.Option.String({required:!1,validator:nXr.cascade(nXr.isString(),[nXr.matchesRegExp(/^p[0-9a-f]{6}$/)])})}async execute(){let t=await Ud.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await Ud.Project.find(t,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash<"u"?await $as(this.hash,r,{stdout:this.context.stdout}):await ecs(r,{stdout:this.context.stdout})}};e6e.paths=[["explain","peer-requirements"]];e6e.usage=qas.Command.Usage({description:"explain a set of peer requirements",details:` A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. @@ -1318,9 +1318,9 @@ Try running the command again with the package name prefixed: ${xO.formatUtils.p When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. **Note:** A hash is a seven-letter code consisting of the letter 'p' followed by six characters that can be obtained from peer dependency warnings or from the list of all peer requirements(\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]});t6e.default=e6e;async function $as(e,t,r){let n=t.peerRequirementNodes.get(e);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${e}"`);let a=new Set,o=f=>a.has(f.requester.locatorHash)?{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:f.children.size>0?[{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.NO_HINT,"...")}]:[]}:(a.add(f.requester.locatorHash),{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:Object.fromEntries(Array.from(f.children.values(),I=>[Ud.structUtils.stringifyLocator(I.requester),o(I)]))}),l=t.peerWarnings.find(f=>f.hash===e);return(await Ud.StreamReport.start({configuration:t.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async f=>{let I=Ud.formatUtils.mark(t.configuration),C=l?I.Cross:I.Check;if(f.reportInfo(Ud.MessageName.UNNAMED,`Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} is requested to provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} by its descendants`),f.reportSeparator(),f.reportInfo(Ud.MessageName.UNNAMED,Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)),Ud.treeUtils.emitTree({children:Object.fromEntries(Array.from(n.requests.values(),b=>[Ud.structUtils.stringifyLocator(b.requester),o(b)]))},{configuration:t.configuration,stdout:r.stdout,json:!1}),f.reportSeparator(),n.provided.range==="missing:"){let b=l?"":" , but all peer requests are optional";f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} does not provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)}${b}.`)}else{let b=t.storedResolutions.get(n.provided.descriptorHash);if(!b)throw new Error("Assertion failed: Expected the descriptor to be registered");let E=t.storedPackages.get(b);if(!E)throw new Error("Assertion failed: Expected the package to be registered");f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} provides ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} with version ${Ud.structUtils.prettyReference(t.configuration,E.version??"0.0.0")}, ${l?"which does not satisfy all requests.":"which satisfies all requests"}`),l?.type===Ud.PeerWarningType.NodeNotCompatible&&(l.range?f.reportInfo(Ud.MessageName.UNNAMED,` The combined requested range is ${Ud.formatUtils.pretty(t.configuration,l.range,Ud.formatUtils.Type.RANGE)}`):f.reportInfo(Ud.MessageName.UNNAMED," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function ecs(e,t){return(await Ud.StreamReport.start({configuration:e.configuration,stdout:t.stdout,includeFooter:!1,includePrefix:!1},async n=>{let a=Ud.formatUtils.mark(e.configuration),o=Ud.miscUtils.sortMap(e.peerRequirementNodes,[([,l])=>Ud.structUtils.stringifyLocator(l.subject),([,l])=>Ud.structUtils.stringifyIdent(l.ident)]);for(let[,l]of o.values()){if(!l.root)continue;let A=e.peerWarnings.find(C=>C.hash===l.hash),f=[...Ud.structUtils.allPeerRequests(l)],I;if(f.length>2?I=` and ${f.length-1} other dependencies`:f.length===2?I=" and 1 other dependency":I="",l.provided.range!=="missing:"){let C=e.storedResolutions.get(l.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the resolution to have been registered");let b=e.storedPackages.get(C);if(!b)throw new Error("Assertion failed: Expected the provided package to have been registered");let E=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} provides ${Ud.structUtils.prettyLocator(e.configuration,b)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,E):n.reportInfo(Ud.MessageName.UNNAMED,E)}else{let C=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} doesn't provide ${Ud.structUtils.prettyIdent(e.configuration,l.ident)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,C):n.reportInfo(Ud.MessageName.UNNAMED,C)}}})).exitCode()}});var nxt=H(Kxe=>{"use strict";Object.defineProperty(Kxe,"__esModule",{value:!0});Kxe.resolveRange=rcs;Kxe.resolveTag=rxt;Kxe.setVersion=ncs;var bIl=(Pa(),vi(Va)),EIl=el(),$G=Bn(),qv=Bn(),zv=no(),aue=($c(),vi(rg)),SIl=bIl.__importDefault(UC()),r6e=class extends EIl.BaseCommand{constructor(){super(...arguments),this.useYarnPath=aue.Option.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"}),this.onlyIfNeeded=aue.Option.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"}),this.version=aue.Option.String()}async execute(){let t=await $G.Configuration.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let l=t.sources.get("yarnPath");if(!l)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let A=t.projectCwd??t.startingCwd;if(zv.ppath.contains(A,l))return 0}let r=()=>{if(typeof $G.YarnVersion>"u")throw new aue.UsageError("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n,a=(l,A)=>({version:A,url:l.replace(/\{\}/g,A)});if(this.version==="self")n={url:r(),version:$G.YarnVersion??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"stable"));else if(this.version==="canary")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"canary"));else if(this.version==="classic")n={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))n={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||zv.npath.isAbsolute(this.version))n={url:`file://${zv.ppath.resolve(zv.npath.toPortablePath(this.version))}`,version:"file"};else if(qv.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(qv.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=a("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(qv.semverUtils.validRange(this.version))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rcs(t,this.version));else throw new aue.UsageError(`Invalid version descriptor "${this.version}"`);return(await $G.StreamReport.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{let A=async()=>{let f="file://";return n.url.startsWith(f)?(l.reportInfo($G.MessageName.UNNAMED,`Retrieving ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.PATH)}`),await zv.xfs.readFilePromise(n.url.slice(f.length))):(l.reportInfo($G.MessageName.UNNAMED,`Downloading ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.URL)}`),await qv.httpUtils.get(n.url,{configuration:t}))};await ncs(t,n.version,A,{report:l,useYarnPath:this.useYarnPath})})).exitCode()}};r6e.paths=[["set","version"]];r6e.usage=aue.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});Kxe.default=r6e;async function rcs(e,t){let n=(await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0})).tags.filter(a=>qv.semverUtils.satisfiesWithPrereleases(a,t));if(n.length===0)throw new aue.UsageError(`No matching release found for range ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)}.`);return n[0]}async function rxt(e,t){let r=await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0});if(!r.latest[t])throw new aue.UsageError(`Tag ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)} not found`);return r.latest[t]}async function ncs(e,t,r,{report:n,useYarnPath:a}){let o,l=async()=>(typeof o>"u"&&(o=await r()),o);if(t===null){let ne=await l();await zv.xfs.mktempPromise(async ce=>{let fe=zv.ppath.join(ce,"yarn.cjs");await zv.xfs.writeFilePromise(fe,ne);let{stdout:ue}=await qv.execUtils.execvp(process.execPath,[zv.npath.fromPortablePath(fe),"--version"],{cwd:ce,env:{...e.env,YARN_IGNORE_PATH:"1"}});if(t=ue.trim(),!SIl.default.valid(t))throw new Error(`Invalid semver version. ${qv.formatUtils.pretty(e,"yarn --version",qv.formatUtils.Type.CODE)} returned: + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]});t6e.default=e6e;async function $as(e,t,r){let n=t.peerRequirementNodes.get(e);if(typeof n>"u")throw new Error(`No peerDependency requirements found for hash: "${e}"`);let a=new Set,o=f=>a.has(f.requester.locatorHash)?{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:f.children.size>0?[{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.NO_HINT,"...")}]:[]}:(a.add(f.requester.locatorHash),{value:Ud.formatUtils.tuple(Ud.formatUtils.Type.DEPENDENT,{locator:f.requester,descriptor:f.descriptor}),children:Object.fromEntries(Array.from(f.children.values(),I=>[Ud.structUtils.stringifyLocator(I.requester),o(I)]))}),l=t.peerWarnings.find(f=>f.hash===e);return(await Ud.StreamReport.start({configuration:t.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async f=>{let I=Ud.formatUtils.mark(t.configuration),C=l?I.Cross:I.Check;if(f.reportInfo(Ud.MessageName.UNNAMED,`Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} is requested to provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} by its descendants`),f.reportSeparator(),f.reportInfo(Ud.MessageName.UNNAMED,Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)),Ud.treeUtils.emitTree({children:Object.fromEntries(Array.from(n.requests.values(),b=>[Ud.structUtils.stringifyLocator(b.requester),o(b)]))},{configuration:t.configuration,stdout:r.stdout,json:!1}),f.reportSeparator(),n.provided.range==="missing:"){let b=l?"":" , but all peer requests are optional";f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} does not provide ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)}${b}.`)}else{let b=t.storedResolutions.get(n.provided.descriptorHash);if(!b)throw new Error("Assertion failed: Expected the descriptor to be registered");let E=t.storedPackages.get(b);if(!E)throw new Error("Assertion failed: Expected the package to be registered");f.reportInfo(Ud.MessageName.UNNAMED,`${C} Package ${Ud.formatUtils.pretty(t.configuration,n.subject,Ud.formatUtils.Type.LOCATOR)} provides ${Ud.formatUtils.pretty(t.configuration,n.ident,Ud.formatUtils.Type.IDENT)} with version ${Ud.structUtils.prettyReference(t.configuration,E.version??"0.0.0")}, ${l?"which does not satisfy all requests.":"which satisfies all requests"}`),l?.type===Ud.PeerWarningType.NodeNotCompatible&&(l.range?f.reportInfo(Ud.MessageName.UNNAMED,` The combined requested range is ${Ud.formatUtils.pretty(t.configuration,l.range,Ud.formatUtils.Type.RANGE)}`):f.reportInfo(Ud.MessageName.UNNAMED," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function ecs(e,t){return(await Ud.StreamReport.start({configuration:e.configuration,stdout:t.stdout,includeFooter:!1,includePrefix:!1},async n=>{let a=Ud.formatUtils.mark(e.configuration),o=Ud.miscUtils.sortMap(e.peerRequirementNodes,[([,l])=>Ud.structUtils.stringifyLocator(l.subject),([,l])=>Ud.structUtils.stringifyIdent(l.ident)]);for(let[,l]of o.values()){if(!l.root)continue;let A=e.peerWarnings.find(C=>C.hash===l.hash),f=[...Ud.structUtils.allPeerRequests(l)],I;if(f.length>2?I=` and ${f.length-1} other dependencies`:f.length===2?I=" and 1 other dependency":I="",l.provided.range!=="missing:"){let C=e.storedResolutions.get(l.provided.descriptorHash);if(!C)throw new Error("Assertion failed: Expected the resolution to have been registered");let b=e.storedPackages.get(C);if(!b)throw new Error("Assertion failed: Expected the provided package to have been registered");let E=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} provides ${Ud.structUtils.prettyLocator(e.configuration,b)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,E):n.reportInfo(Ud.MessageName.UNNAMED,E)}else{let C=`${Ud.formatUtils.pretty(e.configuration,l.hash,Ud.formatUtils.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${Ud.structUtils.prettyLocator(e.configuration,l.subject)} doesn't provide ${Ud.structUtils.prettyIdent(e.configuration,l.ident)} to ${Ud.structUtils.prettyLocator(e.configuration,f[0].requester)}${I}`;A?n.reportWarning(Ud.MessageName.UNNAMED,C):n.reportInfo(Ud.MessageName.UNNAMED,C)}}})).exitCode()}});var nxt=H(Kxe=>{"use strict";Object.defineProperty(Kxe,"__esModule",{value:!0});Kxe.resolveRange=rcs;Kxe.resolveTag=rxt;Kxe.setVersion=ncs;var EIl=(Pa(),vi(Va)),SIl=el(),$G=Bn(),qv=Bn(),zv=no(),aue=($c(),vi(rg)),vIl=EIl.__importDefault(UC()),r6e=class extends SIl.BaseCommand{constructor(){super(...arguments),this.useYarnPath=aue.Option.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"}),this.onlyIfNeeded=aue.Option.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"}),this.version=aue.Option.String()}async execute(){let t=await $G.Configuration.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&t.get("yarnPath")){let l=t.sources.get("yarnPath");if(!l)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let A=t.projectCwd??t.startingCwd;if(zv.ppath.contains(A,l))return 0}let r=()=>{if(typeof $G.YarnVersion>"u")throw new aue.UsageError("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},n,a=(l,A)=>({version:A,url:l.replace(/\{\}/g,A)});if(this.version==="self")n={url:r(),version:$G.YarnVersion??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"stable"));else if(this.version==="canary")n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rxt(t,"canary"));else if(this.version==="classic")n={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))n={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||zv.npath.isAbsolute(this.version))n={url:`file://${zv.ppath.resolve(zv.npath.toPortablePath(this.version))}`,version:"file"};else if(qv.semverUtils.satisfiesWithPrereleases(this.version,">=2.0.0"))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(qv.semverUtils.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))n=a("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(qv.semverUtils.validRange(this.version))n=a("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await rcs(t,this.version));else throw new aue.UsageError(`Invalid version descriptor "${this.version}"`);return(await $G.StreamReport.start({configuration:t,stdout:this.context.stdout,includeLogs:!this.context.quiet},async l=>{let A=async()=>{let f="file://";return n.url.startsWith(f)?(l.reportInfo($G.MessageName.UNNAMED,`Retrieving ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.PATH)}`),await zv.xfs.readFilePromise(n.url.slice(f.length))):(l.reportInfo($G.MessageName.UNNAMED,`Downloading ${qv.formatUtils.pretty(t,n.url,qv.formatUtils.Type.URL)}`),await qv.httpUtils.get(n.url,{configuration:t}))};await ncs(t,n.version,A,{report:l,useYarnPath:this.useYarnPath})})).exitCode()}};r6e.paths=[["set","version"]];r6e.usage=aue.Command.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});Kxe.default=r6e;async function rcs(e,t){let n=(await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0})).tags.filter(a=>qv.semverUtils.satisfiesWithPrereleases(a,t));if(n.length===0)throw new aue.UsageError(`No matching release found for range ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)}.`);return n[0]}async function rxt(e,t){let r=await qv.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:e,jsonResponse:!0});if(!r.latest[t])throw new aue.UsageError(`Tag ${qv.formatUtils.pretty(e,t,qv.formatUtils.Type.RANGE)} not found`);return r.latest[t]}async function ncs(e,t,r,{report:n,useYarnPath:a}){let o,l=async()=>(typeof o>"u"&&(o=await r()),o);if(t===null){let ne=await l();await zv.xfs.mktempPromise(async ce=>{let fe=zv.ppath.join(ce,"yarn.cjs");await zv.xfs.writeFilePromise(fe,ne);let{stdout:ue}=await qv.execUtils.execvp(process.execPath,[zv.npath.fromPortablePath(fe),"--version"],{cwd:ce,env:{...e.env,YARN_IGNORE_PATH:"1"}});if(t=ue.trim(),!vIl.default.valid(t))throw new Error(`Invalid semver version. ${qv.formatUtils.pretty(e,"yarn --version",qv.formatUtils.Type.CODE)} returned: ${t}`)})}let A=e.projectCwd??e.startingCwd,f=zv.ppath.resolve(A,".yarn/releases"),I=zv.ppath.resolve(f,`yarn-${t}.mjs`),C=zv.ppath.relative(e.startingCwd,I),b=qv.miscUtils.isTaggedYarnVersion(t),E=e.get("yarnPath"),N=!b,B=N||!!E||!!a;if(a===!1){if(N)throw new $G.ReportError($G.MessageName.UNNAMED,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");B=!1}else!B&&!process.env.COREPACK_ROOT&&(n.reportWarning($G.MessageName.UNNAMED,`You don't seem to have ${qv.formatUtils.applyHyperlink(e,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${qv.formatUtils.applyHyperlink(e,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),B=!0);if(B){let ne=await l();n.reportInfo($G.MessageName.UNNAMED,`Saving the new release in ${qv.formatUtils.pretty(e,C,"magenta")}`),await zv.xfs.removePromise(zv.ppath.dirname(I)),await zv.xfs.mkdirPromise(zv.ppath.dirname(I),{recursive:!0}),await zv.xfs.writeFilePromise(I,ne,{mode:493}),await $G.Configuration.updateConfiguration(A,{yarnPath:zv.ppath.relative(A,I)})}else await zv.xfs.removePromise(zv.ppath.dirname(I)),await $G.Configuration.updateConfiguration(A,{yarnPath:$G.Configuration.deleteProperty});let F=await $G.Manifest.tryFind(A)||new $G.Manifest;F.packageManager=`yarn@${b?t:await rxt(e,"stable")}`;let Q={};F.exportTo(Q);let X=zv.ppath.join(A,$G.Manifest.fileName),ae=`${JSON.stringify(Q,null,F.indent)} -`;return await zv.xfs.changeFilePromise(X,ae,{automaticNewlines:!0}),{bundleVersion:t}}});var ocs=H(ixt=>{"use strict";Object.defineProperty(ixt,"__esModule",{value:!0});ixt.getErrorCodeDetails=scs;var vIl=(Pa(),vi(Va)),BIl=el(),$v=Bn(),sXr=($c(),vi(rg)),iXr=vIl.__importStar((CZ(),vi(mZ))),wIl=nxt();function ics(e){return $v.MessageName[(0,$v.parseMessageName)(e)]}var TIl=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?

(?:.(?!##))+)/gs;async function scs(e){let r=`https://repo.yarnpkg.com/${$v.miscUtils.isTaggedYarnVersion($v.YarnVersion)?$v.YarnVersion:await(0,wIl.resolveTag)(e,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,n=await $v.httpUtils.get(r,{configuration:e});return new Map(Array.from(n.toString().matchAll(TIl),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let o=ics(a.code);if(a.name!==o)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${o}"`);return[a.code,a.details]}))}var n6e=class extends BIl.BaseCommand{constructor(){super(...arguments),this.code=sXr.Option.String({required:!1,validator:iXr.applyCascade(iXr.isString(),[iXr.matchesRegExp(/^YN[0-9]{4}$/)])}),this.json=sXr.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await $v.Configuration.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let r=ics(this.code),n=$v.formatUtils.pretty(t,r,$v.formatUtils.Type.CODE),a=this.cli.format().header(`${this.code} - ${n}`),l=(await scs(t)).get(this.code),A=typeof l<"u"?$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.MARKDOWN,{text:l,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. +`;return await zv.xfs.changeFilePromise(X,ae,{automaticNewlines:!0}),{bundleVersion:t}}});var ocs=H(ixt=>{"use strict";Object.defineProperty(ixt,"__esModule",{value:!0});ixt.getErrorCodeDetails=scs;var BIl=(Pa(),vi(Va)),wIl=el(),$v=Bn(),sXr=($c(),vi(rg)),iXr=BIl.__importStar((CZ(),vi(mZ))),TIl=nxt();function ics(e){return $v.MessageName[(0,$v.parseMessageName)(e)]}var RIl=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function scs(e){let r=`https://repo.yarnpkg.com/${$v.miscUtils.isTaggedYarnVersion($v.YarnVersion)?$v.YarnVersion:await(0,TIl.resolveTag)(e,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,n=await $v.httpUtils.get(r,{configuration:e});return new Map(Array.from(n.toString().matchAll(RIl),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let o=ics(a.code);if(a.name!==o)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${o}"`);return[a.code,a.details]}))}var n6e=class extends wIl.BaseCommand{constructor(){super(...arguments),this.code=sXr.Option.String({required:!1,validator:iXr.applyCascade(iXr.isString(),[iXr.matchesRegExp(/^YN[0-9]{4}$/)])}),this.json=sXr.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await $v.Configuration.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let r=ics(this.code),n=$v.formatUtils.pretty(t,r,$v.formatUtils.Type.CODE),a=this.cli.format().header(`${this.code} - ${n}`),l=(await scs(t)).get(this.code),A=typeof l<"u"?$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.MARKDOWN,{text:l,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${$v.formatUtils.jsonOrPretty(this.json,t,$v.formatUtils.tuple($v.formatUtils.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} @@ -1332,20 +1332,20 @@ ${A} When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. - `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});ixt.default=n6e});var ccs=H(oXr=>{"use strict";Object.defineProperty(oXr,"__esModule",{value:!0});var RIl=(Pa(),vi(Va)),acs=el(),hI=Bn(),NIl=no(),SH=($c(),vi(rg)),DIl=RIl.__importDefault(Ek()),i6e=class extends acs.BaseCommand{constructor(){super(...arguments),this.all=SH.Option.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"}),this.recursive=SH.Option.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"}),this.extra=SH.Option.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"}),this.cache=SH.Option.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"}),this.dependents=SH.Option.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"}),this.manifest=SH.Option.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"}),this.nameOnly=SH.Option.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"}),this.virtuals=SH.Option.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"}),this.json=SH.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=SH.Option.Rest()}async execute(){let t=await hI.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hI.Project.find(t,this.context.cwd),a=await hI.Cache.find(t);if(!n&&!this.all)throw new acs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let l=(ne,{recursive:ce})=>{let fe=ne.anchoredLocator.locatorHash,ue=new Map,de=[fe];for(;de.length>0;){let be=de.shift();if(ue.has(be))continue;let Se=r.storedPackages.get(be);if(typeof Se>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ue.set(be,Se),hI.structUtils.isVirtualLocator(Se)&&de.push(hI.structUtils.devirtualizeLocator(Se).locatorHash),!(!ce&&be!==fe))for(let De of Se.dependencies.values()){let k=r.storedResolutions.get(De.descriptorHash);if(typeof k>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(k)}}return ue.values()},A=({recursive:ne})=>{let ce=new Map;for(let fe of r.workspaces)for(let ue of l(fe,{recursive:ne}))ce.set(ue.locatorHash,ue);return ce.values()},f=({all:ne,recursive:ce})=>ne&&ce?r.storedPackages.values():ne?A({recursive:ce}):l(n,{recursive:ce}),I=({all:ne,recursive:ce})=>{let fe=f({all:ne,recursive:ce}),ue=this.patterns.map(Se=>{let De=hI.structUtils.parseLocator(Se),k=DIl.default.makeRe(hI.structUtils.stringifyIdent(De)),et=hI.structUtils.isVirtualLocator(De),ct=et?hI.structUtils.devirtualizeLocator(De):De;return Me=>{let je=hI.structUtils.stringifyIdent(Me);if(!k.test(je))return!1;if(De.reference==="unknown")return!0;let St=hI.structUtils.isVirtualLocator(Me),At=St?hI.structUtils.devirtualizeLocator(Me):Me;return!(et&&St&&De.reference!==Me.reference||ct.reference!==At.reference)}}),de=hI.miscUtils.sortMap([...fe],Se=>hI.structUtils.stringifyLocator(Se));return{selection:de.filter(Se=>ue.length===0||ue.some(De=>De(Se))),sortedLookup:de}},{selection:C,sortedLookup:b}=I({all:this.all,recursive:this.recursive});if(C.length===0)throw new SH.UsageError("No package matched your request");let E=new Map;if(this.dependents)for(let ne of b)for(let ce of ne.dependencies.values()){let fe=r.storedResolutions.get(ce.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the resolution to be registered");hI.miscUtils.getArrayWithDefault(E,fe).push(ne)}let N=new Map;for(let ne of b){if(!hI.structUtils.isVirtualLocator(ne))continue;let ce=hI.structUtils.devirtualizeLocator(ne);hI.miscUtils.getArrayWithDefault(N,ce.locatorHash).push(ne)}let B={},F={children:B},Q=t.makeFetcher(),X={project:r,fetcher:Q,cache:a,checksums:r.storedChecksums,report:new hI.ThrowReport,cacheOptions:{skipIntegrityCheck:!0}},ae=[async(ne,ce,fe)=>{if(!ce.has("manifest"))return;let ue=await Q.fetch(ne,X),de;try{de=await hI.Manifest.find(ue.prefixPath,{baseFs:ue.packageFs})}finally{ue.releaseFs?.()}fe("Manifest",{License:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,de.license),Homepage:hI.formatUtils.tuple(hI.formatUtils.Type.URL,de.raw.homepage??null)})},async(ne,ce,fe)=>{if(!ce.has("cache"))return;let ue=r.storedChecksums.get(ne.locatorHash)??null,de=a.getLocatorPath(ne,ue),be;if(de!==null)try{be=await NIl.xfs.statPromise(de)}catch{}let Se=typeof be<"u"?[be.size,hI.formatUtils.Type.SIZE]:void 0;fe("Cache",{Checksum:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ue),Path:hI.formatUtils.tuple(hI.formatUtils.Type.PATH,de),Size:Se})}];for(let ne of C){let ce=hI.structUtils.isVirtualLocator(ne);if(!this.virtuals&&ce)continue;let fe={},ue={value:[ne,hI.formatUtils.Type.LOCATOR],children:fe};if(B[hI.structUtils.stringifyLocator(ne)]=ue,this.nameOnly){delete ue.children;continue}let de=N.get(ne.locatorHash);typeof de<"u"&&(fe.Instances={label:"Instances",value:hI.formatUtils.tuple(hI.formatUtils.Type.NUMBER,de.length)}),fe.Version={label:"Version",value:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ne.version)};let be=(De,k)=>{let et={};if(fe[De]=et,Array.isArray(k))et.children=k.map(ct=>({value:ct}));else{let ct={};et.children=ct;for(let[Me,je]of Object.entries(k))typeof je>"u"||(ct[Me]={label:Me,value:je})}};if(!ce){for(let De of ae)await De(ne,o,be);await t.triggerHook(De=>De.fetchPackageInfo,ne,o,be)}ne.bin.size>0&&!ce&&be("Exported Binaries",[...ne.bin.keys()].map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.PATH,De)));let Se=E.get(ne.locatorHash);typeof Se<"u"&&Se.length>0&&be("Dependents",Se.map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.LOCATOR,De))),ne.dependencies.size>0&&!ce&&be("Dependencies",[...ne.dependencies.values()].map(De=>{let k=r.storedResolutions.get(De.descriptorHash),et=typeof k<"u"?r.storedPackages.get(k)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:et})})),ne.peerDependencies.size>0&&ce&&be("Peer dependencies",[...ne.peerDependencies.values()].map(De=>{let k=ne.dependencies.get(De.identHash),et=typeof k<"u"?r.storedResolutions.get(k.descriptorHash)??null:null,ct=et!==null?r.storedPackages.get(et)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:ct})}))}hI.treeUtils.emitTree(F,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};i6e.paths=[["info"]];i6e.usage=SH.Command.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});oXr.default=i6e});var Acs=H(lXr=>{"use strict";Object.defineProperty(lXr,"__esModule",{value:!0});var cXr=(Pa(),vi(Va)),lcs=el(),WA=Bn(),a6=no(),ucs=TW(),aXr=cXr.__importDefault(Nfe()),_T=($c(),vi(rg)),gcs=cXr.__importDefault(UC()),kIl=cXr.__importStar((CZ(),vi(mZ))),xIl=[{selector:e=>e===-1,name:"nodeLinker",value:"node-modules"},{selector:e=>e!==-1&&e<8,name:"enableGlobalCache",value:!1},{selector:e=>e!==-1&&e<8,name:"compressionLevel",value:"mixed"},{selector:e=>e<9,name:"approvedGitRepositories",value:["**"]},{selector:e=>e<9,name:"enableScripts",value:!0}],s6e=class extends lcs.BaseCommand{constructor(){super(...arguments),this.json=_T.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.immutable=_T.Option.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"}),this.immutableCache=_T.Option.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"}),this.refreshLockfile=_T.Option.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"}),this.checkCache=_T.Option.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"}),this.checkResolutions=_T.Option.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"}),this.inlineBuilds=_T.Option.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"}),this.mode=_T.Option.String("--mode",{description:"Change what artifacts installs generate",validator:kIl.isEnum(WA.InstallMode)}),this.cacheFolder=_T.Option.String("--cache-folder",{hidden:!0}),this.frozenLockfile=_T.Option.Boolean("--frozen-lockfile",{hidden:!0}),this.ignoreEngines=_T.Option.Boolean("--ignore-engines",{hidden:!0}),this.nonInteractive=_T.Option.Boolean("--non-interactive",{hidden:!0}),this.preferOffline=_T.Option.Boolean("--prefer-offline",{hidden:!0}),this.production=_T.Option.Boolean("--production",{hidden:!0}),this.registry=_T.Option.String("--registry",{hidden:!0}),this.silent=_T.Option.Boolean("--silent",{hidden:!0}),this.networkTimeout=_T.Option.String("--network-timeout",{hidden:!0})}async execute(){let t=await WA.Configuration.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=await(0,WA.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!aXr.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!aXr.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!r},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!aXr.default.NETLIFY}]);if(n!==null)return n;let a=this.mode===WA.InstallMode.UpdateLockfile;if(a&&(this.immutable||this.immutableCache))throw new _T.UsageError(`${WA.formatUtils.pretty(t,"--immutable",WA.formatUtils.Type.CODE)} and ${WA.formatUtils.pretty(t,"--immutable-cache",WA.formatUtils.Type.CODE)} cannot be used with ${WA.formatUtils.pretty(t,"--mode=update-lockfile",WA.formatUtils.Type.CODE)}`);let o=(this.immutable??t.get("enableImmutableInstalls"))&&!a,l=this.immutableCache&&!a;if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q=!1;await ZIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically removed core plugins that are now builtins \u{1F44D}"),Q=!0),await FIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),Q=!0),Q&&F.reportSeparator()});if(B.hasErrors())return B.exitCode()}if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{if(WA.Configuration.telemetry?.isNew)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,`Run ${WA.formatUtils.pretty(t,"yarn config set --home enableTelemetry 0",WA.formatUtils.Type.CODE)} to disable`),F.reportSeparator();else if(WA.Configuration.telemetry?.shouldShowTips){let Q=await WA.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0}).catch(()=>null);if(Q!==null){let X=null;if(WA.YarnVersion!==null){let ne=gcs.default.prerelease(WA.YarnVersion)?"canary":"stable",ce=Q.latest[ne];ce!==null&&gcs.default.gt(ce,WA.YarnVersion)&&(X=[ne,ce])}if(X)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.VERSION_NOTICE,`${WA.formatUtils.applyStyle(t,`A new ${X[0]} version of Yarn is available:`,WA.formatUtils.Style.BOLD)} ${WA.structUtils.prettyReference(t,X[1])}!`),F.reportInfo(WA.MessageName.VERSION_NOTICE,`Upgrade now by running ${WA.formatUtils.pretty(t,`yarn set version ${X[1]}`,WA.formatUtils.Type.CODE)}`),F.reportSeparator();else{let ae=WA.Configuration.telemetry.selectTip(Q.tips);ae&&(F.reportInfo(WA.MessageName.TIPS_NOTICE,WA.formatUtils.pretty(t,ae.message,WA.formatUtils.Type.MARKDOWN_INLINE)),ae.url&&F.reportInfo(WA.MessageName.TIPS_NOTICE,`Learn more at ${ae.url}`),F.reportSeparator())}}}});if(B.hasErrors())return B.exitCode()}let{project:A,workspace:f}=await WA.Project.find(t,this.context.cwd),I=A.lockfileLastVersion;if(I!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q={};for(let X of xIl)X.selector(I)&&typeof t.sources.get(X.name)>"u"&&(t.use("",{[X.name]:X.value},A.cwd,{overwrite:!0}),Q[X.name]=X.value);Object.keys(Q).length>0&&(await WA.Configuration.updateConfiguration(A.cwd,Q),F.reportInfo(WA.MessageName.MIGRATION_SUCCESS,"Migrated your project to the latest Yarn version \u{1F680}"),F.reportSeparator())});if(B.hasErrors())return B.exitCode()}let C=await WA.Cache.find(t,{immutable:l,check:this.checkCache});if(!f)throw new lcs.WorkspaceRequiredError(A.cwd,this.context.cwd);await A.restoreInstallState({restoreResolutions:!1});let b=t.get("enableHardenedMode");b&&typeof t.sources.get("enableHardenedMode")>"u"&&await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async B=>{B.reportWarning(WA.MessageName.UNNAMED,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),B.reportWarning(WA.MessageName.UNNAMED,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${WA.formatUtils.applyHyperlink(t,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),B.reportSeparator()}),(this.refreshLockfile??b)&&(A.lockfileNeedsRefresh=!0);let E=this.checkResolutions??b;return(await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async B=>{await A.install({cache:C,report:B,immutable:o,checkResolutions:E,mode:this.mode})})).exitCode()}};s6e.paths=[["install"],_T.Command.Default];s6e.usage=_T.Command.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});lXr.default=s6e;var GIl="<<<<<<<";async function FIl(e,t){if(!e.projectCwd)return!1;let r=a6.ppath.join(e.projectCwd,a6.Filename.lockfile);if(!await a6.xfs.existsPromise(r)||!(await a6.xfs.readFilePromise(r,"utf8")).includes(GIl))return!1;if(t)throw new WA.ReportError(WA.MessageName.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let a=await WA.execUtils.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:e.projectCwd});if(a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,"Git returned an error when trying to find the commits pertaining to the conflict");let o=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let f=await WA.execUtils.execvp("git",["show",`${A}:./${a6.Filename.lockfile}`],{cwd:e.projectCwd});if(f.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,`Git returned an error when trying to access the lockfile content in ${A}`);try{return(0,ucs.parseSyml)(f.stdout)}catch{throw new WA.ReportError(WA.MessageName.AUTOMERGE_FAILED_TO_PARSE,"A variant of the conflicting lockfile failed to parse")}}));o=o.filter(A=>!!A.__metadata);for(let A of o){if(A.__metadata.version<7)for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=WA.structUtils.parseDescriptor(f,!0),C=e.normalizeDependency(I),b=WA.structUtils.stringifyDescriptor(C);b!==f&&(A[b]=A[f],delete A[f])}for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=A[f].checksum;typeof I>"u"||I.includes("/")||(A[f].checksum=`${A.__metadata.cacheKey}/${I}`)}}let l=Object.assign({},...o);l.__metadata.version=`${Math.min(...o.map(A=>parseInt(A.__metadata.version??0)))}`,l.__metadata.cacheKey="merged";for(let[A,f]of Object.entries(l))typeof f=="string"&&delete l[A];return await a6.xfs.changeFilePromise(r,(0,ucs.stringifySyml)(l),{automaticNewlines:!0}),!0}async function ZIl(e,t){if(!e.projectCwd)return!1;let r=[],n=a6.ppath.join(e.projectCwd,".yarn/plugins/@yarnpkg");return await WA.Configuration.updateConfiguration(e.projectCwd,{plugins:o=>{if(!Array.isArray(o))return o;let l=o.filter(A=>{if(!A.path)return!0;let f=a6.ppath.resolve(e.projectCwd,A.path),I=WA.LEGACY_PLUGINS.has(A.spec)&&a6.ppath.contains(n,f);return I&&r.push(f),!I});return l.length===0?WA.Configuration.deleteProperty:l.length===o.length?o:l}},{immutable:t})?(await Promise.all(r.map(async o=>{await a6.xfs.removePromise(o)})),!0):!1}});var dcs=H(AXr=>{"use strict";Object.defineProperty(AXr,"__esModule",{value:!0});var uXr=el(),jxe=Bn(),gXr=no(),wte=($c(),vi(rg)),o6e=class extends uXr.BaseCommand{constructor(){super(...arguments),this.all=wte.Option.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"}),this.private=wte.Option.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"}),this.relative=wte.Option.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"}),this.destinations=wte.Option.Rest()}async execute(){let t=await jxe.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await jxe.Project.find(t,this.context.cwd),a=await jxe.Cache.find(t);if(!n)throw new uXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=r.topLevelWorkspace,l=[];for(let A of this.destinations){let f=gXr.ppath.resolve(this.context.cwd,gXr.npath.toPortablePath(A)),I=await jxe.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await jxe.Project.find(I,f);if(r.cwd===C.cwd)throw new wte.UsageError(`Invalid destination '${A}'; Can't link the project to itself`);if(!b)throw new uXr.WorkspaceRequiredError(C.cwd,f);if(this.all){let E=!1;for(let N of C.workspaces)N.manifest.name&&(!N.manifest.private||this.private)&&(l.push(N),E=!0);if(!E)throw new wte.UsageError(`No workspace found to be linked in the target project: ${A}`)}else{if(!b.manifest.name)throw new wte.UsageError(`The target workspace at '${A}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new wte.UsageError(`The target workspace at '${A}' is marked private - use the --private flag to link it anyway`);l.push(b)}}for(let A of l){let f=jxe.structUtils.stringifyIdent(A.anchoredLocator),I=this.relative?gXr.ppath.relative(r.cwd,A.cwd):A.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:f}},reference:`portal:${I}`})}return await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};o6e.paths=[["link"]];o6e.usage=wte.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});AXr.default=o6e});var fcs=H(dXr=>{"use strict";Object.defineProperty(dXr,"__esModule",{value:!0});var LIl=el(),pcs=($c(),vi(rg)),a6e=class extends LIl.BaseCommand{constructor(){super(...arguments),this.args=pcs.Option.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};a6e.paths=[["node"]];a6e.usage=pcs.Command.Usage({description:"run node with the hook already setup",details:` + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});ixt.default=n6e});var ccs=H(oXr=>{"use strict";Object.defineProperty(oXr,"__esModule",{value:!0});var NIl=(Pa(),vi(Va)),acs=el(),hI=Bn(),DIl=no(),SH=($c(),vi(rg)),kIl=NIl.__importDefault(Ek()),i6e=class extends acs.BaseCommand{constructor(){super(...arguments),this.all=SH.Option.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"}),this.recursive=SH.Option.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"}),this.extra=SH.Option.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"}),this.cache=SH.Option.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"}),this.dependents=SH.Option.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"}),this.manifest=SH.Option.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"}),this.nameOnly=SH.Option.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"}),this.virtuals=SH.Option.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"}),this.json=SH.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=SH.Option.Rest()}async execute(){let t=await hI.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hI.Project.find(t,this.context.cwd),a=await hI.Cache.find(t);if(!n&&!this.all)throw new acs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=new Set(this.extra);this.cache&&o.add("cache"),this.dependents&&o.add("dependents"),this.manifest&&o.add("manifest");let l=(ne,{recursive:ce})=>{let fe=ne.anchoredLocator.locatorHash,ue=new Map,de=[fe];for(;de.length>0;){let be=de.shift();if(ue.has(be))continue;let Se=r.storedPackages.get(be);if(typeof Se>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ue.set(be,Se),hI.structUtils.isVirtualLocator(Se)&&de.push(hI.structUtils.devirtualizeLocator(Se).locatorHash),!(!ce&&be!==fe))for(let De of Se.dependencies.values()){let k=r.storedResolutions.get(De.descriptorHash);if(typeof k>"u")throw new Error("Assertion failed: Expected the resolution to be registered");de.push(k)}}return ue.values()},A=({recursive:ne})=>{let ce=new Map;for(let fe of r.workspaces)for(let ue of l(fe,{recursive:ne}))ce.set(ue.locatorHash,ue);return ce.values()},f=({all:ne,recursive:ce})=>ne&&ce?r.storedPackages.values():ne?A({recursive:ce}):l(n,{recursive:ce}),I=({all:ne,recursive:ce})=>{let fe=f({all:ne,recursive:ce}),ue=this.patterns.map(Se=>{let De=hI.structUtils.parseLocator(Se),k=kIl.default.makeRe(hI.structUtils.stringifyIdent(De)),et=hI.structUtils.isVirtualLocator(De),ct=et?hI.structUtils.devirtualizeLocator(De):De;return Me=>{let je=hI.structUtils.stringifyIdent(Me);if(!k.test(je))return!1;if(De.reference==="unknown")return!0;let St=hI.structUtils.isVirtualLocator(Me),At=St?hI.structUtils.devirtualizeLocator(Me):Me;return!(et&&St&&De.reference!==Me.reference||ct.reference!==At.reference)}}),de=hI.miscUtils.sortMap([...fe],Se=>hI.structUtils.stringifyLocator(Se));return{selection:de.filter(Se=>ue.length===0||ue.some(De=>De(Se))),sortedLookup:de}},{selection:C,sortedLookup:b}=I({all:this.all,recursive:this.recursive});if(C.length===0)throw new SH.UsageError("No package matched your request");let E=new Map;if(this.dependents)for(let ne of b)for(let ce of ne.dependencies.values()){let fe=r.storedResolutions.get(ce.descriptorHash);if(typeof fe>"u")throw new Error("Assertion failed: Expected the resolution to be registered");hI.miscUtils.getArrayWithDefault(E,fe).push(ne)}let N=new Map;for(let ne of b){if(!hI.structUtils.isVirtualLocator(ne))continue;let ce=hI.structUtils.devirtualizeLocator(ne);hI.miscUtils.getArrayWithDefault(N,ce.locatorHash).push(ne)}let B={},F={children:B},Q=t.makeFetcher(),X={project:r,fetcher:Q,cache:a,checksums:r.storedChecksums,report:new hI.ThrowReport,cacheOptions:{skipIntegrityCheck:!0}},ae=[async(ne,ce,fe)=>{if(!ce.has("manifest"))return;let ue=await Q.fetch(ne,X),de;try{de=await hI.Manifest.find(ue.prefixPath,{baseFs:ue.packageFs})}finally{ue.releaseFs?.()}fe("Manifest",{License:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,de.license),Homepage:hI.formatUtils.tuple(hI.formatUtils.Type.URL,de.raw.homepage??null)})},async(ne,ce,fe)=>{if(!ce.has("cache"))return;let ue=r.storedChecksums.get(ne.locatorHash)??null,de=a.getLocatorPath(ne,ue),be;if(de!==null)try{be=await DIl.xfs.statPromise(de)}catch{}let Se=typeof be<"u"?[be.size,hI.formatUtils.Type.SIZE]:void 0;fe("Cache",{Checksum:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ue),Path:hI.formatUtils.tuple(hI.formatUtils.Type.PATH,de),Size:Se})}];for(let ne of C){let ce=hI.structUtils.isVirtualLocator(ne);if(!this.virtuals&&ce)continue;let fe={},ue={value:[ne,hI.formatUtils.Type.LOCATOR],children:fe};if(B[hI.structUtils.stringifyLocator(ne)]=ue,this.nameOnly){delete ue.children;continue}let de=N.get(ne.locatorHash);typeof de<"u"&&(fe.Instances={label:"Instances",value:hI.formatUtils.tuple(hI.formatUtils.Type.NUMBER,de.length)}),fe.Version={label:"Version",value:hI.formatUtils.tuple(hI.formatUtils.Type.NO_HINT,ne.version)};let be=(De,k)=>{let et={};if(fe[De]=et,Array.isArray(k))et.children=k.map(ct=>({value:ct}));else{let ct={};et.children=ct;for(let[Me,je]of Object.entries(k))typeof je>"u"||(ct[Me]={label:Me,value:je})}};if(!ce){for(let De of ae)await De(ne,o,be);await t.triggerHook(De=>De.fetchPackageInfo,ne,o,be)}ne.bin.size>0&&!ce&&be("Exported Binaries",[...ne.bin.keys()].map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.PATH,De)));let Se=E.get(ne.locatorHash);typeof Se<"u"&&Se.length>0&&be("Dependents",Se.map(De=>hI.formatUtils.tuple(hI.formatUtils.Type.LOCATOR,De))),ne.dependencies.size>0&&!ce&&be("Dependencies",[...ne.dependencies.values()].map(De=>{let k=r.storedResolutions.get(De.descriptorHash),et=typeof k<"u"?r.storedPackages.get(k)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:et})})),ne.peerDependencies.size>0&&ce&&be("Peer dependencies",[...ne.peerDependencies.values()].map(De=>{let k=ne.dependencies.get(De.identHash),et=typeof k<"u"?r.storedResolutions.get(k.descriptorHash)??null:null,ct=et!==null?r.storedPackages.get(et)??null:null;return hI.formatUtils.tuple(hI.formatUtils.Type.RESOLUTION,{descriptor:De,locator:ct})}))}hI.treeUtils.emitTree(F,{configuration:t,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};i6e.paths=[["info"]];i6e.usage=SH.Command.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});oXr.default=i6e});var Acs=H(lXr=>{"use strict";Object.defineProperty(lXr,"__esModule",{value:!0});var cXr=(Pa(),vi(Va)),lcs=el(),WA=Bn(),a6=no(),ucs=TW(),aXr=cXr.__importDefault(Nfe()),_T=($c(),vi(rg)),gcs=cXr.__importDefault(UC()),xIl=cXr.__importStar((CZ(),vi(mZ))),GIl=[{selector:e=>e===-1,name:"nodeLinker",value:"node-modules"},{selector:e=>e!==-1&&e<8,name:"enableGlobalCache",value:!1},{selector:e=>e!==-1&&e<8,name:"compressionLevel",value:"mixed"},{selector:e=>e<9,name:"approvedGitRepositories",value:["**"]},{selector:e=>e<9,name:"enableScripts",value:!0}],s6e=class extends lcs.BaseCommand{constructor(){super(...arguments),this.json=_T.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.immutable=_T.Option.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"}),this.immutableCache=_T.Option.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"}),this.refreshLockfile=_T.Option.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"}),this.checkCache=_T.Option.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"}),this.checkResolutions=_T.Option.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"}),this.inlineBuilds=_T.Option.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"}),this.mode=_T.Option.String("--mode",{description:"Change what artifacts installs generate",validator:xIl.isEnum(WA.InstallMode)}),this.cacheFolder=_T.Option.String("--cache-folder",{hidden:!0}),this.frozenLockfile=_T.Option.Boolean("--frozen-lockfile",{hidden:!0}),this.ignoreEngines=_T.Option.Boolean("--ignore-engines",{hidden:!0}),this.nonInteractive=_T.Option.Boolean("--non-interactive",{hidden:!0}),this.preferOffline=_T.Option.Boolean("--prefer-offline",{hidden:!0}),this.production=_T.Option.Boolean("--production",{hidden:!0}),this.registry=_T.Option.String("--registry",{hidden:!0}),this.silent=_T.Option.Boolean("--silent",{hidden:!0}),this.networkTimeout=_T.Option.String("--network-timeout",{hidden:!0})}async execute(){let t=await WA.Configuration.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&t.useWithSource("",{enableInlineBuilds:this.inlineBuilds},t.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,n=await(0,WA.reportOptionDeprecations)({configuration:t,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!aXr.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!aXr.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!r},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!aXr.default.NETLIFY}]);if(n!==null)return n;let a=this.mode===WA.InstallMode.UpdateLockfile;if(a&&(this.immutable||this.immutableCache))throw new _T.UsageError(`${WA.formatUtils.pretty(t,"--immutable",WA.formatUtils.Type.CODE)} and ${WA.formatUtils.pretty(t,"--immutable-cache",WA.formatUtils.Type.CODE)} cannot be used with ${WA.formatUtils.pretty(t,"--mode=update-lockfile",WA.formatUtils.Type.CODE)}`);let o=(this.immutable??t.get("enableImmutableInstalls"))&&!a,l=this.immutableCache&&!a;if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q=!1;await LIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically removed core plugins that are now builtins \u{1F44D}"),Q=!0),await ZIl(t,o)&&(F.reportInfo(WA.MessageName.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),Q=!0),Q&&F.reportSeparator()});if(B.hasErrors())return B.exitCode()}if(t.projectCwd!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{if(WA.Configuration.telemetry?.isNew)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),F.reportInfo(WA.MessageName.TELEMETRY_NOTICE,`Run ${WA.formatUtils.pretty(t,"yarn config set --home enableTelemetry 0",WA.formatUtils.Type.CODE)} to disable`),F.reportSeparator();else if(WA.Configuration.telemetry?.shouldShowTips){let Q=await WA.httpUtils.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0}).catch(()=>null);if(Q!==null){let X=null;if(WA.YarnVersion!==null){let ne=gcs.default.prerelease(WA.YarnVersion)?"canary":"stable",ce=Q.latest[ne];ce!==null&&gcs.default.gt(ce,WA.YarnVersion)&&(X=[ne,ce])}if(X)WA.Configuration.telemetry.commitTips(),F.reportInfo(WA.MessageName.VERSION_NOTICE,`${WA.formatUtils.applyStyle(t,`A new ${X[0]} version of Yarn is available:`,WA.formatUtils.Style.BOLD)} ${WA.structUtils.prettyReference(t,X[1])}!`),F.reportInfo(WA.MessageName.VERSION_NOTICE,`Upgrade now by running ${WA.formatUtils.pretty(t,`yarn set version ${X[1]}`,WA.formatUtils.Type.CODE)}`),F.reportSeparator();else{let ae=WA.Configuration.telemetry.selectTip(Q.tips);ae&&(F.reportInfo(WA.MessageName.TIPS_NOTICE,WA.formatUtils.pretty(t,ae.message,WA.formatUtils.Type.MARKDOWN_INLINE)),ae.url&&F.reportInfo(WA.MessageName.TIPS_NOTICE,`Learn more at ${ae.url}`),F.reportSeparator())}}}});if(B.hasErrors())return B.exitCode()}let{project:A,workspace:f}=await WA.Project.find(t,this.context.cwd),I=A.lockfileLastVersion;if(I!==null){let B=await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async F=>{let Q={};for(let X of GIl)X.selector(I)&&typeof t.sources.get(X.name)>"u"&&(t.use("",{[X.name]:X.value},A.cwd,{overwrite:!0}),Q[X.name]=X.value);Object.keys(Q).length>0&&(await WA.Configuration.updateConfiguration(A.cwd,Q),F.reportInfo(WA.MessageName.MIGRATION_SUCCESS,"Migrated your project to the latest Yarn version \u{1F680}"),F.reportSeparator())});if(B.hasErrors())return B.exitCode()}let C=await WA.Cache.find(t,{immutable:l,check:this.checkCache});if(!f)throw new lcs.WorkspaceRequiredError(A.cwd,this.context.cwd);await A.restoreInstallState({restoreResolutions:!1});let b=t.get("enableHardenedMode");b&&typeof t.sources.get("enableHardenedMode")>"u"&&await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,includeFooter:!1},async B=>{B.reportWarning(WA.MessageName.UNNAMED,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),B.reportWarning(WA.MessageName.UNNAMED,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${WA.formatUtils.applyHyperlink(t,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),B.reportSeparator()}),(this.refreshLockfile??b)&&(A.lockfileNeedsRefresh=!0);let E=this.checkResolutions??b;return(await WA.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async B=>{await A.install({cache:C,report:B,immutable:o,checkResolutions:E,mode:this.mode})})).exitCode()}};s6e.paths=[["install"],_T.Command.Default];s6e.usage=_T.Command.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});lXr.default=s6e;var FIl="<<<<<<<";async function ZIl(e,t){if(!e.projectCwd)return!1;let r=a6.ppath.join(e.projectCwd,a6.Filename.lockfile);if(!await a6.xfs.existsPromise(r)||!(await a6.xfs.readFilePromise(r,"utf8")).includes(FIl))return!1;if(t)throw new WA.ReportError(WA.MessageName.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let a=await WA.execUtils.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:e.projectCwd});if(a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0&&(a=await WA.execUtils.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:e.projectCwd})),a.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,"Git returned an error when trying to find the commits pertaining to the conflict");let o=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let f=await WA.execUtils.execvp("git",["show",`${A}:./${a6.Filename.lockfile}`],{cwd:e.projectCwd});if(f.code!==0)throw new WA.ReportError(WA.MessageName.AUTOMERGE_GIT_ERROR,`Git returned an error when trying to access the lockfile content in ${A}`);try{return(0,ucs.parseSyml)(f.stdout)}catch{throw new WA.ReportError(WA.MessageName.AUTOMERGE_FAILED_TO_PARSE,"A variant of the conflicting lockfile failed to parse")}}));o=o.filter(A=>!!A.__metadata);for(let A of o){if(A.__metadata.version<7)for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=WA.structUtils.parseDescriptor(f,!0),C=e.normalizeDependency(I),b=WA.structUtils.stringifyDescriptor(C);b!==f&&(A[b]=A[f],delete A[f])}for(let f of Object.keys(A)){if(f==="__metadata")continue;let I=A[f].checksum;typeof I>"u"||I.includes("/")||(A[f].checksum=`${A.__metadata.cacheKey}/${I}`)}}let l=Object.assign({},...o);l.__metadata.version=`${Math.min(...o.map(A=>parseInt(A.__metadata.version??0)))}`,l.__metadata.cacheKey="merged";for(let[A,f]of Object.entries(l))typeof f=="string"&&delete l[A];return await a6.xfs.changeFilePromise(r,(0,ucs.stringifySyml)(l),{automaticNewlines:!0}),!0}async function LIl(e,t){if(!e.projectCwd)return!1;let r=[],n=a6.ppath.join(e.projectCwd,".yarn/plugins/@yarnpkg");return await WA.Configuration.updateConfiguration(e.projectCwd,{plugins:o=>{if(!Array.isArray(o))return o;let l=o.filter(A=>{if(!A.path)return!0;let f=a6.ppath.resolve(e.projectCwd,A.path),I=WA.LEGACY_PLUGINS.has(A.spec)&&a6.ppath.contains(n,f);return I&&r.push(f),!I});return l.length===0?WA.Configuration.deleteProperty:l.length===o.length?o:l}},{immutable:t})?(await Promise.all(r.map(async o=>{await a6.xfs.removePromise(o)})),!0):!1}});var dcs=H(AXr=>{"use strict";Object.defineProperty(AXr,"__esModule",{value:!0});var uXr=el(),jxe=Bn(),gXr=no(),wte=($c(),vi(rg)),o6e=class extends uXr.BaseCommand{constructor(){super(...arguments),this.all=wte.Option.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"}),this.private=wte.Option.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"}),this.relative=wte.Option.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"}),this.destinations=wte.Option.Rest()}async execute(){let t=await jxe.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await jxe.Project.find(t,this.context.cwd),a=await jxe.Cache.find(t);if(!n)throw new uXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=r.topLevelWorkspace,l=[];for(let A of this.destinations){let f=gXr.ppath.resolve(this.context.cwd,gXr.npath.toPortablePath(A)),I=await jxe.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await jxe.Project.find(I,f);if(r.cwd===C.cwd)throw new wte.UsageError(`Invalid destination '${A}'; Can't link the project to itself`);if(!b)throw new uXr.WorkspaceRequiredError(C.cwd,f);if(this.all){let E=!1;for(let N of C.workspaces)N.manifest.name&&(!N.manifest.private||this.private)&&(l.push(N),E=!0);if(!E)throw new wte.UsageError(`No workspace found to be linked in the target project: ${A}`)}else{if(!b.manifest.name)throw new wte.UsageError(`The target workspace at '${A}' doesn't have a name and thus cannot be linked`);if(b.manifest.private&&!this.private)throw new wte.UsageError(`The target workspace at '${A}' is marked private - use the --private flag to link it anyway`);l.push(b)}}for(let A of l){let f=jxe.structUtils.stringifyIdent(A.anchoredLocator),I=this.relative?gXr.ppath.relative(r.cwd,A.cwd):A.cwd;o.manifest.resolutions.push({pattern:{descriptor:{fullName:f}},reference:`portal:${I}`})}return await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};o6e.paths=[["link"]];o6e.usage=wte.Command.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});AXr.default=o6e});var fcs=H(dXr=>{"use strict";Object.defineProperty(dXr,"__esModule",{value:!0});var VIl=el(),pcs=($c(),vi(rg)),a6e=class extends VIl.BaseCommand{constructor(){super(...arguments),this.args=pcs.Option.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};a6e.paths=[["node"]];a6e.usage=pcs.Command.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});dXr.default=a6e});var hcs=H(pXr=>{"use strict";Object.defineProperty(pXr,"__esModule",{value:!0});var VIl=el(),c6=Bn(),Ics=($c(),vi(rg)),c6e=class extends VIl.BaseCommand{constructor(){super(...arguments),this.json=Ics.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await c6.Configuration.find(this.context.cwd,this.context.plugins),r=await c6.Configuration.findRcFiles(this.context.cwd);return(await c6.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{for(let o of r)if(o.data?.plugins)for(let l of o.data.plugins){if(!l.checksum||!l.spec.match(/^https?:/))continue;let A=await c6.httpUtils.get(l.spec,{configuration:t}),f=c6.hashUtils.makeHash(A);if(l.checksum===f)continue;let I=c6.formatUtils.pretty(t,l.path,c6.formatUtils.Type.PATH),C=c6.formatUtils.pretty(t,l.spec,c6.formatUtils.Type.URL),b=`${I} is different from the file provided by ${C}`;a.reportJson({...l,newChecksum:f}),a.reportError(c6.MessageName.UNNAMED,b)}})).exitCode()}};c6e.paths=[["plugin","check"]];c6e.usage=Ics.Command.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + `,examples:[["Run a Node script","$0 node ./my-script.js"]]});dXr.default=a6e});var hcs=H(pXr=>{"use strict";Object.defineProperty(pXr,"__esModule",{value:!0});var PIl=el(),c6=Bn(),Ics=($c(),vi(rg)),c6e=class extends PIl.BaseCommand{constructor(){super(...arguments),this.json=Ics.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await c6.Configuration.find(this.context.cwd,this.context.plugins),r=await c6.Configuration.findRcFiles(this.context.cwd);return(await c6.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{for(let o of r)if(o.data?.plugins)for(let l of o.data.plugins){if(!l.checksum||!l.spec.match(/^https?:/))continue;let A=await c6.httpUtils.get(l.spec,{configuration:t}),f=c6.hashUtils.makeHash(A);if(l.checksum===f)continue;let I=c6.formatUtils.pretty(t,l.path,c6.formatUtils.Type.PATH),C=c6.formatUtils.pretty(t,l.spec,c6.formatUtils.Type.URL),b=`${I} is different from the file provided by ${C}`;a.reportJson({...l,newChecksum:f}),a.reportError(c6.MessageName.UNNAMED,b)}})).exitCode()}};c6e.paths=[["plugin","check"]];c6e.usage=Ics.Command.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` Check only the plugins from https. If this command detects any plugin differences in the CI environment, it will throw an error. - `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});pXr.default=c6e});var g6e=H(sxt=>{"use strict";Object.defineProperty(sxt,"__esModule",{value:!0});sxt.getAvailablePlugins=Ccs;var PIl=el(),l6e=Bn(),WIl=TW(),mcs=($c(),vi(rg)),OIl="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Ccs(e,t){let r=await l6e.httpUtils.get(OIl,{configuration:e}),n=(0,WIl.parseSyml)(r.toString());return Object.fromEntries(Object.entries(n).filter(([a,o])=>!t||l6e.semverUtils.satisfiesWithPrereleases(t,o.range??"<4.0.0-rc.1")))}var u6e=class extends PIl.BaseCommand{constructor(){super(...arguments),this.json=mcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await l6e.Configuration.find(this.context.cwd,this.context.plugins);return(await l6e.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let a=await Ccs(t,l6e.YarnVersion);for(let[o,{experimental:l,...A}]of Object.entries(a)){let f=o;l&&(f+=" [experimental]"),n.reportJson({name:o,experimental:l,...A}),n.reportInfo(null,f)}})).exitCode()}};u6e.paths=[["plugin","list"]];u6e.usage=mcs.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});sxt.default=u6e});var fXr=H(d6e=>{"use strict";Object.defineProperty(d6e,"__esModule",{value:!0});d6e.runWorkflow=oxt;d6e.prepareRepo=ycs;var MIl=el(),vH=Bn(),MV=no(),Tte=($c(),vi(rg)),HIl=wt("os"),YIl=IXr(),QIl=g6e(),XIl=nxt(),JIl=/^[0-9]+$/,UIl=process.platform==="win32";function _cs(e){return JIl.test(e)?`pull/${e}/head`:e}var KIl=({repository:e,branch:t},r)=>[["git","init",MV.npath.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin","--depth=1",_cs(t)],["git","reset","--hard","FETCH_HEAD"]],jIl=({branch:e})=>[["git","fetch","origin","--depth=1",_cs(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],zIl=({plugins:e,noMinify:t},r,n)=>[["yarn","build:cli",...new Array().concat(...e.map(a=>["--plugin",MV.ppath.resolve(n,a)])),...t?["--no-minify"]:[],"|"],[UIl?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",MV.npath.fromPortablePath(r),"|"]],A6e=class extends MIl.BaseCommand{constructor(){super(...arguments),this.installPath=Tte.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=Tte.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=Tte.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.plugins=Tte.Option.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"}),this.dryRun=Tte.Option.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"}),this.noMinify=Tte.Option.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"}),this.force=Tte.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.skipPlugins=Tte.Option.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await vH.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await vH.Project.find(t,this.context.cwd),n=typeof this.installPath<"u"?MV.ppath.resolve(this.context.cwd,MV.npath.toPortablePath(this.installPath)):MV.ppath.resolve(MV.npath.toPortablePath((0,HIl.tmpdir)()),"yarnpkg-sources",vH.hashUtils.makeHash(this.repository).slice(0,6));return(await vH.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await ycs(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(vH.MessageName.UNNAMED,"Building a fresh bundle"),o.reportSeparator();let l=await vH.execUtils.execvp("git",["rev-parse","--short","HEAD"],{cwd:n,strict:!0}),A=MV.ppath.join(n,`packages/yarnpkg-cli/bundles/yarn-${l.stdout.trim()}.js`);MV.xfs.existsSync(A)||(await oxt(zIl(this,A,n),{configuration:t,context:this.context,target:n}),o.reportSeparator());let f=await MV.xfs.readFilePromise(A);if(!this.dryRun){let{bundleVersion:I}=await(0,XIl.setVersion)(t,null,async()=>f,{report:o});this.skipPlugins||await qIl(this,I,{project:r,report:o,target:n})}})).exitCode()}};A6e.paths=[["set","version","from","sources"]];A6e.usage=Tte.Command.Usage({description:"build Yarn from master",details:` + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});pXr.default=c6e});var g6e=H(sxt=>{"use strict";Object.defineProperty(sxt,"__esModule",{value:!0});sxt.getAvailablePlugins=Ccs;var WIl=el(),l6e=Bn(),OIl=TW(),mcs=($c(),vi(rg)),MIl="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Ccs(e,t){let r=await l6e.httpUtils.get(MIl,{configuration:e}),n=(0,OIl.parseSyml)(r.toString());return Object.fromEntries(Object.entries(n).filter(([a,o])=>!t||l6e.semverUtils.satisfiesWithPrereleases(t,o.range??"<4.0.0-rc.1")))}var u6e=class extends WIl.BaseCommand{constructor(){super(...arguments),this.json=mcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await l6e.Configuration.find(this.context.cwd,this.context.plugins);return(await l6e.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{let a=await Ccs(t,l6e.YarnVersion);for(let[o,{experimental:l,...A}]of Object.entries(a)){let f=o;l&&(f+=" [experimental]"),n.reportJson({name:o,experimental:l,...A}),n.reportInfo(null,f)}})).exitCode()}};u6e.paths=[["plugin","list"]];u6e.usage=mcs.Command.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});sxt.default=u6e});var fXr=H(d6e=>{"use strict";Object.defineProperty(d6e,"__esModule",{value:!0});d6e.runWorkflow=oxt;d6e.prepareRepo=ycs;var HIl=el(),vH=Bn(),MV=no(),Tte=($c(),vi(rg)),YIl=wt("os"),QIl=IXr(),XIl=g6e(),JIl=nxt(),UIl=/^[0-9]+$/,KIl=process.platform==="win32";function _cs(e){return UIl.test(e)?`pull/${e}/head`:e}var jIl=({repository:e,branch:t},r)=>[["git","init",MV.npath.fromPortablePath(r)],["git","remote","add","origin",e],["git","fetch","origin","--depth=1",_cs(t)],["git","reset","--hard","FETCH_HEAD"]],zIl=({branch:e})=>[["git","fetch","origin","--depth=1",_cs(e),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],qIl=({plugins:e,noMinify:t},r,n)=>[["yarn","build:cli",...new Array().concat(...e.map(a=>["--plugin",MV.ppath.resolve(n,a)])),...t?["--no-minify"]:[],"|"],[KIl?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",MV.npath.fromPortablePath(r),"|"]],A6e=class extends HIl.BaseCommand{constructor(){super(...arguments),this.installPath=Tte.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=Tte.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=Tte.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.plugins=Tte.Option.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"}),this.dryRun=Tte.Option.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"}),this.noMinify=Tte.Option.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"}),this.force=Tte.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.skipPlugins=Tte.Option.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let t=await vH.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await vH.Project.find(t,this.context.cwd),n=typeof this.installPath<"u"?MV.ppath.resolve(this.context.cwd,MV.npath.toPortablePath(this.installPath)):MV.ppath.resolve(MV.npath.toPortablePath((0,YIl.tmpdir)()),"yarnpkg-sources",vH.hashUtils.makeHash(this.repository).slice(0,6));return(await vH.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await ycs(this,{configuration:t,report:o,target:n}),o.reportSeparator(),o.reportInfo(vH.MessageName.UNNAMED,"Building a fresh bundle"),o.reportSeparator();let l=await vH.execUtils.execvp("git",["rev-parse","--short","HEAD"],{cwd:n,strict:!0}),A=MV.ppath.join(n,`packages/yarnpkg-cli/bundles/yarn-${l.stdout.trim()}.js`);MV.xfs.existsSync(A)||(await oxt(qIl(this,A,n),{configuration:t,context:this.context,target:n}),o.reportSeparator());let f=await MV.xfs.readFilePromise(A);if(!this.dryRun){let{bundleVersion:I}=await(0,JIl.setVersion)(t,null,async()=>f,{report:o});this.skipPlugins||await $Il(this,I,{project:r,report:o,target:n})}})).exitCode()}};A6e.paths=[["set","version","from","sources"]];A6e.usage=Tte.Command.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});d6e.default=A6e;async function oxt(e,{configuration:t,context:r,target:n}){for(let[a,...o]of e){let l=o[o.length-1]==="|";if(l&&o.pop(),l)await vH.execUtils.pipevp(a,o,{cwd:n,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${vH.formatUtils.pretty(t,` $ ${[a,...o].join(" ")}`,"grey")} -`);try{await vH.execUtils.execvp(a,o,{cwd:n,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function ycs(e,{configuration:t,report:r,target:n}){let a=!1;if(!e.force&&MV.xfs.existsSync(MV.ppath.join(n,".git"))){r.reportInfo(vH.MessageName.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await oxt(jIl(e),{configuration:t,context:e.context,target:n}),a=!0}catch{r.reportSeparator(),r.reportWarning(vH.MessageName.UNNAMED,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(vH.MessageName.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await MV.xfs.removePromise(n),await MV.xfs.mkdirPromise(n,{recursive:!0}),await oxt(KIl(e,n),{configuration:t,context:e.context,target:n}))}async function qIl(e,t,{project:r,report:n,target:a}){let o=await(0,QIl.getAvailablePlugins)(r.configuration,t),l=new Set(Object.keys(o));for(let A of r.configuration.plugins.keys())l.has(A)&&await(0,YIl.buildAndSavePlugin)(A,e,{project:r,report:n,target:a})}});var mXr=H(axt=>{"use strict";Object.defineProperty(axt,"__esModule",{value:!0});axt.savePlugin=bcs;var $Il=(Pa(),vi(Va)),ehl=el(),GO=Bn(),cx=Bn(),Rte=no(),hXr=($c(),vi(rg)),thl=$Il.__importDefault(UC()),rhl=wt("vm"),nhl=g6e(),p6e=class extends ehl.BaseCommand{constructor(){super(...arguments),this.name=hXr.Option.String(),this.checksum=hXr.Option.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let t=await GO.Configuration.find(this.context.cwd,this.context.plugins);return(await GO.StreamReport.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:a}=await GO.Project.find(t,this.context.cwd),o,l;if(this.name.match(/^\.{0,2}[\\/]/)||Rte.npath.isAbsolute(this.name)){let A=Rte.ppath.resolve(this.context.cwd,Rte.npath.toPortablePath(this.name));n.reportInfo(GO.MessageName.UNNAMED,`Reading ${cx.formatUtils.pretty(t,A,cx.formatUtils.Type.PATH)}`),o=Rte.ppath.relative(a.cwd,A),l=await Rte.xfs.readFilePromise(A)}else{let A;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new GO.ReportError(GO.MessageName.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,A=this.name}else{let f=cx.structUtils.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(f.reference!=="unknown"&&!thl.default.valid(f.reference))throw new GO.ReportError(GO.MessageName.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let I=cx.structUtils.stringifyIdent(f),C=await(0,nhl.getAvailablePlugins)(t,cx.YarnVersion);if(!Object.hasOwn(C,I)){let b=`Couldn't find a plugin named ${cx.structUtils.prettyIdent(t,f)} on the remote registry. +`);try{await vH.execUtils.execvp(a,o,{cwd:n,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function ycs(e,{configuration:t,report:r,target:n}){let a=!1;if(!e.force&&MV.xfs.existsSync(MV.ppath.join(n,".git"))){r.reportInfo(vH.MessageName.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await oxt(zIl(e),{configuration:t,context:e.context,target:n}),a=!0}catch{r.reportSeparator(),r.reportWarning(vH.MessageName.UNNAMED,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(vH.MessageName.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await MV.xfs.removePromise(n),await MV.xfs.mkdirPromise(n,{recursive:!0}),await oxt(jIl(e,n),{configuration:t,context:e.context,target:n}))}async function $Il(e,t,{project:r,report:n,target:a}){let o=await(0,XIl.getAvailablePlugins)(r.configuration,t),l=new Set(Object.keys(o));for(let A of r.configuration.plugins.keys())l.has(A)&&await(0,QIl.buildAndSavePlugin)(A,e,{project:r,report:n,target:a})}});var mXr=H(axt=>{"use strict";Object.defineProperty(axt,"__esModule",{value:!0});axt.savePlugin=bcs;var ehl=(Pa(),vi(Va)),thl=el(),GO=Bn(),cx=Bn(),Rte=no(),hXr=($c(),vi(rg)),rhl=ehl.__importDefault(UC()),nhl=wt("vm"),ihl=g6e(),p6e=class extends thl.BaseCommand{constructor(){super(...arguments),this.name=hXr.Option.String(),this.checksum=hXr.Option.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let t=await GO.Configuration.find(this.context.cwd,this.context.plugins);return(await GO.StreamReport.start({configuration:t,stdout:this.context.stdout},async n=>{let{project:a}=await GO.Project.find(t,this.context.cwd),o,l;if(this.name.match(/^\.{0,2}[\\/]/)||Rte.npath.isAbsolute(this.name)){let A=Rte.ppath.resolve(this.context.cwd,Rte.npath.toPortablePath(this.name));n.reportInfo(GO.MessageName.UNNAMED,`Reading ${cx.formatUtils.pretty(t,A,cx.formatUtils.Type.PATH)}`),o=Rte.ppath.relative(a.cwd,A),l=await Rte.xfs.readFilePromise(A)}else{let A;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new GO.ReportError(GO.MessageName.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}o=this.name,A=this.name}else{let f=cx.structUtils.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(f.reference!=="unknown"&&!rhl.default.valid(f.reference))throw new GO.ReportError(GO.MessageName.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let I=cx.structUtils.stringifyIdent(f),C=await(0,ihl.getAvailablePlugins)(t,cx.YarnVersion);if(!Object.hasOwn(C,I)){let b=`Couldn't find a plugin named ${cx.structUtils.prettyIdent(t,f)} on the remote registry. `;throw t.plugins.has(I)?b+=`A plugin named ${cx.structUtils.prettyIdent(t,f)} is already installed; possibly attempting to import a built-in plugin.`:b+=`Note that only the plugins referenced on our website (${cx.formatUtils.pretty(t,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",cx.formatUtils.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${cx.formatUtils.pretty(t,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",cx.formatUtils.Type.URL)}).`,new GO.ReportError(GO.MessageName.PLUGIN_NAME_NOT_FOUND,b)}o=I,A=C[I].url,f.reference!=="unknown"?A=A.replace(/\/master\//,`/${I}/${f.reference}/`):cx.YarnVersion!==null&&(A=A.replace(/\/master\//,`/@yarnpkg/cli/${cx.YarnVersion}/`))}n.reportInfo(GO.MessageName.UNNAMED,`Downloading ${cx.formatUtils.pretty(t,A,"green")}`),l=await cx.httpUtils.get(A,{configuration:t})}await bcs(o,l,{checksum:this.checksum,project:a,report:n})})).exitCode()}};p6e.paths=[["plugin","import"]];p6e.usage=hXr.Command.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. @@ -1358,15 +1358,15 @@ ${A} If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});axt.default=p6e;async function bcs(e,t,{checksum:r=!0,project:n,report:a}){let{configuration:o}=n,l={},A={exports:l};(0,rhl.runInNewContext)(t.toString(),{module:A,exports:l});let I=`.yarn/plugins/${A.exports.name}.cjs`,C=Rte.ppath.resolve(n.cwd,I);a.reportInfo(GO.MessageName.UNNAMED,`Saving the new plugin in ${cx.formatUtils.pretty(o,I,"magenta")}`),await Rte.xfs.mkdirPromise(Rte.ppath.dirname(C),{recursive:!0}),await Rte.xfs.writeFilePromise(C,t);let b={path:I,spec:e};r&&(b.checksum=cx.hashUtils.makeHash(t)),await GO.Configuration.addPlugin(n.cwd,[b])}});var IXr=H(lxt=>{"use strict";Object.defineProperty(lxt,"__esModule",{value:!0});lxt.buildAndSavePlugin=Scs;var ihl=el(),cxt=Bn(),zxe=Bn(),qxe=no(),L_e=($c(),vi(rg)),shl=wt("os"),Ecs=fXr(),ohl=mXr(),ahl=g6e(),chl=({pluginName:e,noMinify:t},r)=>[["yarn",`build:${e}`,...t?["--no-minify"]:[],"|"]],f6e=class extends ihl.BaseCommand{constructor(){super(...arguments),this.installPath=L_e.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=L_e.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=L_e.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.noMinify=L_e.Option.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"}),this.force=L_e.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.name=L_e.Option.String()}async execute(){let t=await zxe.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.installPath<"u"?qxe.ppath.resolve(this.context.cwd,qxe.npath.toPortablePath(this.installPath)):qxe.ppath.resolve(qxe.npath.toPortablePath((0,shl.tmpdir)()),"yarnpkg-sources",cxt.hashUtils.makeHash(this.repository).slice(0,6));return(await zxe.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let{project:o}=await zxe.Project.find(t,this.context.cwd),l=cxt.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),A=cxt.structUtils.stringifyIdent(l),f=await(0,ahl.getAvailablePlugins)(t,cxt.YarnVersion);if(!Object.hasOwn(f,A))throw new zxe.ReportError(zxe.MessageName.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${A}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let I=A;await(0,Ecs.prepareRepo)(this,{configuration:t,report:a,target:r}),await Scs(I,this,{project:o,report:a,target:r})})).exitCode()}};f6e.paths=[["plugin","import","from","sources"]];f6e.usage=L_e.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});axt.default=p6e;async function bcs(e,t,{checksum:r=!0,project:n,report:a}){let{configuration:o}=n,l={},A={exports:l};(0,nhl.runInNewContext)(t.toString(),{module:A,exports:l});let I=`.yarn/plugins/${A.exports.name}.cjs`,C=Rte.ppath.resolve(n.cwd,I);a.reportInfo(GO.MessageName.UNNAMED,`Saving the new plugin in ${cx.formatUtils.pretty(o,I,"magenta")}`),await Rte.xfs.mkdirPromise(Rte.ppath.dirname(C),{recursive:!0}),await Rte.xfs.writeFilePromise(C,t);let b={path:I,spec:e};r&&(b.checksum=cx.hashUtils.makeHash(t)),await GO.Configuration.addPlugin(n.cwd,[b])}});var IXr=H(lxt=>{"use strict";Object.defineProperty(lxt,"__esModule",{value:!0});lxt.buildAndSavePlugin=Scs;var shl=el(),cxt=Bn(),zxe=Bn(),qxe=no(),L_e=($c(),vi(rg)),ohl=wt("os"),Ecs=fXr(),ahl=mXr(),chl=g6e(),lhl=({pluginName:e,noMinify:t},r)=>[["yarn",`build:${e}`,...t?["--no-minify"]:[],"|"]],f6e=class extends shl.BaseCommand{constructor(){super(...arguments),this.installPath=L_e.Option.String("--path",{description:"The path where the repository should be cloned to"}),this.repository=L_e.Option.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"}),this.branch=L_e.Option.String("--branch","master",{description:"The branch of the repository that should be cloned"}),this.noMinify=L_e.Option.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"}),this.force=L_e.Option.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"}),this.name=L_e.Option.String()}async execute(){let t=await zxe.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.installPath<"u"?qxe.ppath.resolve(this.context.cwd,qxe.npath.toPortablePath(this.installPath)):qxe.ppath.resolve(qxe.npath.toPortablePath((0,ohl.tmpdir)()),"yarnpkg-sources",cxt.hashUtils.makeHash(this.repository).slice(0,6));return(await zxe.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let{project:o}=await zxe.Project.find(t,this.context.cwd),l=cxt.structUtils.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),A=cxt.structUtils.stringifyIdent(l),f=await(0,chl.getAvailablePlugins)(t,cxt.YarnVersion);if(!Object.hasOwn(f,A))throw new zxe.ReportError(zxe.MessageName.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${A}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let I=A;await(0,Ecs.prepareRepo)(this,{configuration:t,report:a,target:r}),await Scs(I,this,{project:o,report:a,target:r})})).exitCode()}};f6e.paths=[["plugin","import","from","sources"]];f6e.usage=L_e.Command.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});lxt.default=f6e;async function Scs(e,{context:t,noMinify:r},{project:n,report:a,target:o}){let l=e.replace(/@yarnpkg\//,""),{configuration:A}=n;a.reportSeparator(),a.reportInfo(zxe.MessageName.UNNAMED,`Building a fresh ${l}`),a.reportSeparator(),await(0,Ecs.runWorkflow)(chl({pluginName:l,noMinify:r},o),{configuration:A,context:t,target:o}),a.reportSeparator();let f=qxe.ppath.resolve(o,`packages/${l}/bundles/${e}.js`),I=await qxe.xfs.readFilePromise(f);await(0,ohl.savePlugin)(e,I,{project:n,report:a})}});var vcs=H(yXr=>{"use strict";Object.defineProperty(yXr,"__esModule",{value:!0});var lhl=el(),O4=Bn(),CXr=no(),_Xr=($c(),vi(rg)),I6e=class extends lhl.BaseCommand{constructor(){super(...arguments),this.name=_Xr.Option.String()}async execute(){let t=await O4.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await O4.Project.find(t,this.context.cwd);return(await O4.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o=this.name,l=O4.structUtils.parseIdent(o);if(!t.plugins.has(o))throw new _Xr.UsageError(`${O4.structUtils.prettyIdent(t,l)} isn't referenced by the current configuration`);let A=`.yarn/plugins/${o}.cjs`,f=CXr.ppath.resolve(r.cwd,A);CXr.xfs.existsSync(f)&&(a.reportInfo(O4.MessageName.UNNAMED,`Removing ${O4.formatUtils.pretty(t,A,O4.formatUtils.Type.PATH)}...`),await CXr.xfs.removePromise(f)),a.reportInfo(O4.MessageName.UNNAMED,"Updating the configuration..."),await O4.Configuration.updateConfiguration(r.cwd,{plugins:I=>{if(!Array.isArray(I))return I;let C=I.filter(b=>b.path!==A);return C.length===0?O4.Configuration.deleteProperty:C.length===I.length?I:C}})})).exitCode()}};I6e.paths=[["plugin","remove"]];I6e.usage=_Xr.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});lxt.default=f6e;async function Scs(e,{context:t,noMinify:r},{project:n,report:a,target:o}){let l=e.replace(/@yarnpkg\//,""),{configuration:A}=n;a.reportSeparator(),a.reportInfo(zxe.MessageName.UNNAMED,`Building a fresh ${l}`),a.reportSeparator(),await(0,Ecs.runWorkflow)(lhl({pluginName:l,noMinify:r},o),{configuration:A,context:t,target:o}),a.reportSeparator();let f=qxe.ppath.resolve(o,`packages/${l}/bundles/${e}.js`),I=await qxe.xfs.readFilePromise(f);await(0,ahl.savePlugin)(e,I,{project:n,report:a})}});var vcs=H(yXr=>{"use strict";Object.defineProperty(yXr,"__esModule",{value:!0});var uhl=el(),O4=Bn(),CXr=no(),_Xr=($c(),vi(rg)),I6e=class extends uhl.BaseCommand{constructor(){super(...arguments),this.name=_Xr.Option.String()}async execute(){let t=await O4.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await O4.Project.find(t,this.context.cwd);return(await O4.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o=this.name,l=O4.structUtils.parseIdent(o);if(!t.plugins.has(o))throw new _Xr.UsageError(`${O4.structUtils.prettyIdent(t,l)} isn't referenced by the current configuration`);let A=`.yarn/plugins/${o}.cjs`,f=CXr.ppath.resolve(r.cwd,A);CXr.xfs.existsSync(f)&&(a.reportInfo(O4.MessageName.UNNAMED,`Removing ${O4.formatUtils.pretty(t,A,O4.formatUtils.Type.PATH)}...`),await CXr.xfs.removePromise(f)),a.reportInfo(O4.MessageName.UNNAMED,"Updating the configuration..."),await O4.Configuration.updateConfiguration(r.cwd,{plugins:I=>{if(!Array.isArray(I))return I;let C=I.filter(b=>b.path!==A);return C.length===0?O4.Configuration.deleteProperty:C.length===I.length?I:C}})})).exitCode()}};I6e.paths=[["plugin","remove"]];I6e.usage=_Xr.Command.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});yXr.default=I6e});var Tcs=H(bXr=>{"use strict";Object.defineProperty(bXr,"__esModule",{value:!0});var uhl=el(),Bcs=Bn(),wcs=($c(),vi(rg)),h6e=class extends uhl.BaseCommand{constructor(){super(...arguments),this.json=wcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Bcs.Configuration.find(this.context.cwd,this.context.plugins);return(await Bcs.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let a of t.plugins.keys()){let o=this.context.plugins.plugins.has(a),l=a;o&&(l+=" [builtin]"),n.reportJson({name:a,builtin:o}),n.reportInfo(null,`${l}`)}})).exitCode()}};h6e.paths=[["plugin","runtime"]];h6e.usage=wcs.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});yXr.default=I6e});var Tcs=H(bXr=>{"use strict";Object.defineProperty(bXr,"__esModule",{value:!0});var ghl=el(),Bcs=Bn(),wcs=($c(),vi(rg)),h6e=class extends ghl.BaseCommand{constructor(){super(...arguments),this.json=wcs.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await Bcs.Configuration.find(this.context.cwd,this.context.plugins);return(await Bcs.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async n=>{for(let a of t.plugins.keys()){let o=this.context.plugins.plugins.has(a),l=a;o&&(l+=" [builtin]"),n.reportJson({name:a,builtin:o}),n.reportInfo(null,`${l}`)}})).exitCode()}};h6e.paths=[["plugin","runtime"]];h6e.usage=wcs.Command.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. `,examples:[["List the currently active plugins","$0 plugin runtime"]]});bXr.default=h6e});var kcs=H(SXr=>{"use strict";Object.defineProperty(SXr,"__esModule",{value:!0});var Rcs=el(),Ncs=Bn(),EXr=Bn(),Dcs=($c(),vi(rg)),m6e=class extends Rcs.BaseCommand{constructor(){super(...arguments),this.idents=Dcs.Option.Rest()}async execute(){let t=await Ncs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await EXr.Project.find(t,this.context.cwd),a=await Ncs.Cache.find(t);if(!n)throw new Rcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=new Set;for(let l of this.idents)o.add(EXr.structUtils.parseIdent(l).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:a,report:new EXr.ThrowReport}),o.size>0)for(let l of r.storedPackages.values())o.has(l.identHash)&&(r.storedBuildState.delete(l.locatorHash),r.skippedBuilds.delete(l.locatorHash));else r.storedBuildState.clear(),r.skippedBuilds.clear();return await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};m6e.paths=[["rebuild"]];m6e.usage=Dcs.Command.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. @@ -1374,7 +1374,7 @@ ${A} Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});SXr.default=m6e});var Fcs=H(wXr=>{"use strict";Object.defineProperty(wXr,"__esModule",{value:!0});var BXr=(Pa(),vi(Va)),xcs=el(),C6e=Bn(),ghl=Bn(),uxt=Bn(),_6e=($c(),vi(rg)),Gcs=BXr.__importDefault(Ek()),Ahl=BXr.__importStar((CZ(),vi(mZ))),vXr=BXr.__importStar(Wje()),y6e=class extends xcs.BaseCommand{constructor(){super(...arguments),this.all=_6e.Option.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"}),this.mode=_6e.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Ahl.isEnum(ghl.InstallMode)}),this.patterns=_6e.Option.Rest()}async execute(){let t=await C6e.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await C6e.Project.find(t,this.context.cwd),a=await C6e.Cache.find(t);if(!n)throw new xcs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.all?r.workspaces:[n],l=[vXr.Target.REGULAR,vXr.Target.DEVELOPMENT,vXr.Target.PEER],A=[],f=!1,I=[];for(let N of this.patterns){let B=!1,F=uxt.structUtils.parseIdent(N);for(let Q of o){let X=[...Q.manifest.peerDependenciesMeta.keys()];for(let ae of(0,Gcs.default)(X,N))Q.manifest.peerDependenciesMeta.delete(ae),f=!0,B=!0;for(let ae of l){let ne=Q.manifest.getForScope(ae),ce=[...ne.values()].map(fe=>uxt.structUtils.stringifyIdent(fe));for(let fe of(0,Gcs.default)(ce,uxt.structUtils.stringifyIdent(F))){let{identHash:ue}=uxt.structUtils.parseIdent(fe),de=ne.get(ue);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");Q.manifest[ae].delete(ue),I.push([Q,ae,de]),f=!0,B=!0}}}B||A.push(N)}let C=A.length>1?"Patterns":"Pattern",b=A.length>1?"don't":"doesn't",E=this.all?"any":"this";if(A.length>0)throw new _6e.UsageError(`${C} ${C6e.formatUtils.prettyList(t,A,C6e.formatUtils.Type.CODE)} ${b} match any packages referenced by ${E} workspace`);return f?(await t.triggerMultipleHooks(N=>N.afterWorkspaceDependencyRemoval,I),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})):0}};y6e.paths=[["remove"]];y6e.usage=_6e.Command.Usage({description:"remove dependencies from the project",details:` + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});SXr.default=m6e});var Fcs=H(wXr=>{"use strict";Object.defineProperty(wXr,"__esModule",{value:!0});var BXr=(Pa(),vi(Va)),xcs=el(),C6e=Bn(),Ahl=Bn(),uxt=Bn(),_6e=($c(),vi(rg)),Gcs=BXr.__importDefault(Ek()),dhl=BXr.__importStar((CZ(),vi(mZ))),vXr=BXr.__importStar(Wje()),y6e=class extends xcs.BaseCommand{constructor(){super(...arguments),this.all=_6e.Option.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"}),this.mode=_6e.Option.String("--mode",{description:"Change what artifacts installs generate",validator:dhl.isEnum(Ahl.InstallMode)}),this.patterns=_6e.Option.Rest()}async execute(){let t=await C6e.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await C6e.Project.find(t,this.context.cwd),a=await C6e.Cache.find(t);if(!n)throw new xcs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.all?r.workspaces:[n],l=[vXr.Target.REGULAR,vXr.Target.DEVELOPMENT,vXr.Target.PEER],A=[],f=!1,I=[];for(let N of this.patterns){let B=!1,F=uxt.structUtils.parseIdent(N);for(let Q of o){let X=[...Q.manifest.peerDependenciesMeta.keys()];for(let ae of(0,Gcs.default)(X,N))Q.manifest.peerDependenciesMeta.delete(ae),f=!0,B=!0;for(let ae of l){let ne=Q.manifest.getForScope(ae),ce=[...ne.values()].map(fe=>uxt.structUtils.stringifyIdent(fe));for(let fe of(0,Gcs.default)(ce,uxt.structUtils.stringifyIdent(F))){let{identHash:ue}=uxt.structUtils.parseIdent(fe),de=ne.get(ue);if(typeof de>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");Q.manifest[ae].delete(ue),I.push([Q,ae,de]),f=!0,B=!0}}}B||A.push(N)}let C=A.length>1?"Patterns":"Pattern",b=A.length>1?"don't":"doesn't",E=this.all?"any":"this";if(A.length>0)throw new _6e.UsageError(`${C} ${C6e.formatUtils.prettyList(t,A,C6e.formatUtils.Type.CODE)} ${b} match any packages referenced by ${E} workspace`);return f?(await t.triggerMultipleHooks(N=>N.afterWorkspaceDependencyRemoval,I),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})):0}};y6e.paths=[["remove"]];y6e.usage=_6e.Command.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: @@ -1384,7 +1384,7 @@ ${A} - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});wXr.default=y6e});var Lcs=H(RXr=>{"use strict";Object.defineProperty(RXr,"__esModule",{value:!0});var Zcs=el(),TXr=Bn(),dhl=Bn(),phl=($c(),vi(rg)),fhl=wt("util"),gxt=class extends Zcs.BaseCommand{constructor(){super(...arguments),this.json=phl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await TXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TXr.Project.find(t,this.context.cwd);if(!n)throw new Zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await TXr.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async o=>{let l=n.manifest.scripts,A=dhl.miscUtils.sortMap(l.keys(),C=>C),f={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},I=A.reduce((C,b)=>Math.max(C,b.length),0);for(let[C,b]of l.entries())o.reportInfo(null,`${C.padEnd(I," ")} ${(0,fhl.inspect)(b,f)}`),o.reportJson({name:C,script:b})})).exitCode()}};gxt.paths=[["run"]];RXr.default=gxt});var Wcs=H(NXr=>{"use strict";Object.defineProperty(NXr,"__esModule",{value:!0});var Vcs=el(),Pcs=Bn(),V_e=Bn(),HV=($c(),vi(rg)),b6e=class extends Vcs.BaseCommand{constructor(){super(...arguments),this.inspect=HV.Option.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.inspectBrk=HV.Option.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.topLevel=HV.Option.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"}),this.binariesOnly=HV.Option.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"}),this.require=HV.Option.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"}),this.silent=HV.Option.Boolean("--silent",{hidden:!0}),this.scriptName=HV.Option.String(),this.args=HV.Option.Proxy()}async execute(){let t=await Pcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n,locator:a}=await Pcs.Project.find(t,this.context.cwd);await r.restoreInstallState();let o=this.topLevel?r.topLevelWorkspace.anchoredLocator:a;if(!this.binariesOnly&&await V_e.scriptUtils.hasPackageScript(o,this.scriptName,{project:r}))return await V_e.scriptUtils.executePackageScript(o,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let l=await V_e.scriptUtils.getPackageAccessibleBinaries(o,{project:r});if(l.get(this.scriptName)){let f=[];return this.inspect&&(typeof this.inspect=="string"?f.push(`--inspect=${this.inspect}`):f.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?f.push(`--inspect-brk=${this.inspectBrk}`):f.push("--inspect-brk")),this.require&&f.push(`--require=${this.require}`),await V_e.scriptUtils.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:f,packageAccessibleBinaries:l})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let I=(await Promise.all(r.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(I.length===1)return await V_e.scriptUtils.executeWorkspaceScript(I[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}).`);{if(this.scriptName==="global")throw new HV.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let f=[this.scriptName].concat(this.args);for(let[I,C]of Vcs.pluginCommands)for(let b of C)if(f.length>=b.length&&JSON.stringify(f.slice(0,b.length))===JSON.stringify(b))throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${I} plugin. You can install it with "yarn plugin import ${I}".`);throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}};b6e.paths=[["run"]];b6e.usage=HV.Command.Usage({description:"run a script defined in the package.json",details:` + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});wXr.default=y6e});var Lcs=H(RXr=>{"use strict";Object.defineProperty(RXr,"__esModule",{value:!0});var Zcs=el(),TXr=Bn(),phl=Bn(),fhl=($c(),vi(rg)),Ihl=wt("util"),gxt=class extends Zcs.BaseCommand{constructor(){super(...arguments),this.json=fhl.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await TXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TXr.Project.find(t,this.context.cwd);if(!n)throw new Zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await TXr.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async o=>{let l=n.manifest.scripts,A=phl.miscUtils.sortMap(l.keys(),C=>C),f={breakLength:1/0,colors:t.get("enableColors"),maxArrayLength:2},I=A.reduce((C,b)=>Math.max(C,b.length),0);for(let[C,b]of l.entries())o.reportInfo(null,`${C.padEnd(I," ")} ${(0,Ihl.inspect)(b,f)}`),o.reportJson({name:C,script:b})})).exitCode()}};gxt.paths=[["run"]];RXr.default=gxt});var Wcs=H(NXr=>{"use strict";Object.defineProperty(NXr,"__esModule",{value:!0});var Vcs=el(),Pcs=Bn(),V_e=Bn(),HV=($c(),vi(rg)),b6e=class extends Vcs.BaseCommand{constructor(){super(...arguments),this.inspect=HV.Option.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.inspectBrk=HV.Option.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"}),this.topLevel=HV.Option.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"}),this.binariesOnly=HV.Option.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"}),this.require=HV.Option.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"}),this.silent=HV.Option.Boolean("--silent",{hidden:!0}),this.scriptName=HV.Option.String(),this.args=HV.Option.Proxy()}async execute(){let t=await Pcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n,locator:a}=await Pcs.Project.find(t,this.context.cwd);await r.restoreInstallState();let o=this.topLevel?r.topLevelWorkspace.anchoredLocator:a;if(!this.binariesOnly&&await V_e.scriptUtils.hasPackageScript(o,this.scriptName,{project:r}))return await V_e.scriptUtils.executePackageScript(o,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let l=await V_e.scriptUtils.getPackageAccessibleBinaries(o,{project:r});if(l.get(this.scriptName)){let f=[];return this.inspect&&(typeof this.inspect=="string"?f.push(`--inspect=${this.inspect}`):f.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?f.push(`--inspect-brk=${this.inspectBrk}`):f.push("--inspect-brk")),this.require&&f.push(`--require=${this.require}`),await V_e.scriptUtils.executePackageAccessibleBinary(o,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:f,packageAccessibleBinaries:l})}if(!this.topLevel&&!this.binariesOnly&&n&&this.scriptName.includes(":")){let I=(await Promise.all(r.workspaces.map(async C=>C.manifest.scripts.has(this.scriptName)?C:null))).filter(C=>C!==null);if(I.length===1)return await V_e.scriptUtils.executeWorkspaceScript(I[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new HV.UsageError(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${V_e.structUtils.prettyLocator(t,a)}).`);{if(this.scriptName==="global")throw new HV.UsageError("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let f=[this.scriptName].concat(this.args);for(let[I,C]of Vcs.pluginCommands)for(let b of C)if(f.length>=b.length&&JSON.stringify(f.slice(0,b.length))===JSON.stringify(b))throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${I} plugin. You can install it with "yarn plugin import ${I}".`);throw new HV.UsageError(`Couldn't find a script named "${this.scriptName}".`)}}};b6e.paths=[["run"]];b6e.usage=HV.Command.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. @@ -1394,34 +1394,34 @@ ${A} - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});NXr.default=b6e});var Hcs=H(xXr=>{"use strict";Object.defineProperty(xXr,"__esModule",{value:!0});var Ocs=el(),DXr=Bn(),Mcs=Bn(),kXr=($c(),vi(rg)),E6e=class extends Ocs.BaseCommand{constructor(){super(...arguments),this.descriptor=kXr.Option.String(),this.resolution=kXr.Option.String()}async execute(){let t=await DXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await DXr.Project.find(t,this.context.cwd),a=await DXr.Cache.find(t);if(await r.restoreInstallState({restoreResolutions:!1}),!n)throw new Ocs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=Mcs.structUtils.parseDescriptor(this.descriptor,!0),l=Mcs.structUtils.makeDescriptor(o,this.resolution);return r.storedDescriptors.set(o.descriptorHash,o),r.storedDescriptors.set(l.descriptorHash,l),r.resolutionAliases.set(o.descriptorHash,l.descriptorHash),await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};E6e.paths=[["set","resolution"]];E6e.usage=kXr.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]});xXr.default=E6e});var Qcs=H(FXr=>{"use strict";Object.defineProperty(FXr,"__esModule",{value:!0});var Ihl=(Pa(),vi(Va)),GXr=el(),cue=Bn(),Ycs=no(),S6e=($c(),vi(rg)),hhl=Ihl.__importDefault(Ek()),v6e=class extends GXr.BaseCommand{constructor(){super(...arguments),this.all=S6e.Option.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"}),this.leadingArguments=S6e.Option.Rest()}async execute(){let t=await cue.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await cue.Project.find(t,this.context.cwd),a=await cue.Cache.find(t);if(!n)throw new GXr.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=r.topLevelWorkspace,l=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:A,reference:f}of o.manifest.resolutions)f.startsWith("portal:")&&l.add(A.descriptor.fullName);if(this.leadingArguments.length>0)for(let A of this.leadingArguments){let f=Ycs.ppath.resolve(this.context.cwd,Ycs.npath.toPortablePath(A));if(cue.miscUtils.isPathLike(A)){let I=await cue.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await cue.Project.find(I,f);if(!b)throw new GXr.WorkspaceRequiredError(C.cwd,f);if(this.all){for(let E of C.workspaces)E.manifest.name&&l.add(cue.structUtils.stringifyIdent(E.anchoredLocator));if(l.size===0)throw new S6e.UsageError("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new S6e.UsageError("The target workspace doesn't have a name and thus cannot be unlinked");l.add(cue.structUtils.stringifyIdent(b.anchoredLocator))}}else{let I=[...o.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,hhl.default)(I,A))l.add(C)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:A})=>!l.has(A.descriptor.fullName)),await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};v6e.paths=[["unlink"]];v6e.usage=S6e.Command.Usage({description:"disconnect the local project from another one",details:` + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});NXr.default=b6e});var Hcs=H(xXr=>{"use strict";Object.defineProperty(xXr,"__esModule",{value:!0});var Ocs=el(),DXr=Bn(),Mcs=Bn(),kXr=($c(),vi(rg)),E6e=class extends Ocs.BaseCommand{constructor(){super(...arguments),this.descriptor=kXr.Option.String(),this.resolution=kXr.Option.String()}async execute(){let t=await DXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await DXr.Project.find(t,this.context.cwd),a=await DXr.Cache.find(t);if(await r.restoreInstallState({restoreResolutions:!1}),!n)throw new Ocs.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=Mcs.structUtils.parseDescriptor(this.descriptor,!0),l=Mcs.structUtils.makeDescriptor(o,this.resolution);return r.storedDescriptors.set(o.descriptorHash,o),r.storedDescriptors.set(l.descriptorHash,l),r.resolutionAliases.set(o.descriptorHash,l.descriptorHash),await r.installWithNewReport({stdout:this.context.stdout},{cache:a})}};E6e.paths=[["set","resolution"]];E6e.usage=kXr.Command.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 npm:1.5.0"]]});xXr.default=E6e});var Qcs=H(FXr=>{"use strict";Object.defineProperty(FXr,"__esModule",{value:!0});var hhl=(Pa(),vi(Va)),GXr=el(),cue=Bn(),Ycs=no(),S6e=($c(),vi(rg)),mhl=hhl.__importDefault(Ek()),v6e=class extends GXr.BaseCommand{constructor(){super(...arguments),this.all=S6e.Option.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"}),this.leadingArguments=S6e.Option.Rest()}async execute(){let t=await cue.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await cue.Project.find(t,this.context.cwd),a=await cue.Cache.find(t);if(!n)throw new GXr.WorkspaceRequiredError(r.cwd,this.context.cwd);let o=r.topLevelWorkspace,l=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:A,reference:f}of o.manifest.resolutions)f.startsWith("portal:")&&l.add(A.descriptor.fullName);if(this.leadingArguments.length>0)for(let A of this.leadingArguments){let f=Ycs.ppath.resolve(this.context.cwd,Ycs.npath.toPortablePath(A));if(cue.miscUtils.isPathLike(A)){let I=await cue.Configuration.find(f,this.context.plugins,{useRc:!1,strict:!1}),{project:C,workspace:b}=await cue.Project.find(I,f);if(!b)throw new GXr.WorkspaceRequiredError(C.cwd,f);if(this.all){for(let E of C.workspaces)E.manifest.name&&l.add(cue.structUtils.stringifyIdent(E.anchoredLocator));if(l.size===0)throw new S6e.UsageError("No workspace found to be unlinked in the target project")}else{if(!b.manifest.name)throw new S6e.UsageError("The target workspace doesn't have a name and thus cannot be unlinked");l.add(cue.structUtils.stringifyIdent(b.anchoredLocator))}}else{let I=[...o.manifest.resolutions.map(({pattern:C})=>C.descriptor.fullName)];for(let C of(0,mhl.default)(I,A))l.add(C)}}return o.manifest.resolutions=o.manifest.resolutions.filter(({pattern:A})=>!l.has(A.descriptor.fullName)),await r.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:a})}};v6e.paths=[["unlink"]];v6e.usage=S6e.Command.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});FXr.default=v6e});var Jcs=H(WXr=>{"use strict";Object.defineProperty(WXr,"__esModule",{value:!0});var PXr=(Pa(),vi(Va)),ZXr=el(),FO=Bn(),LXr=Bn(),BH=Bn(),wH=($c(),vi(rg)),mhl=Lje(),Xcs=PXr.__importDefault(Ek()),VXr=PXr.__importStar((CZ(),vi(mZ))),l6=PXr.__importStar(Wje()),$xe=class extends ZXr.BaseCommand{constructor(){super(...arguments),this.interactive=wH.Option.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"}),this.fixed=wH.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=wH.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=wH.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=wH.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.recursive=wH.Option.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"}),this.mode=wH.Option.String("--mode",{description:"Change what artifacts installs generate",validator:VXr.isEnum(LXr.InstallMode)}),this.patterns=wH.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=[...r.storedDescriptors.values()],l=o.map(I=>FO.structUtils.stringifyIdent(I)),A=new Set;for(let I of this.patterns){if(FO.structUtils.parseDescriptor(I).range!=="unknown")throw new wH.UsageError("Ranges aren't allowed when using --recursive");for(let C of(0,Xcs.default)(l,I)){let b=FO.structUtils.parseIdent(C);A.add(b.identHash)}}let f=o.filter(I=>A.has(I.identHash));for(let I of f)r.storedDescriptors.delete(I.descriptorHash),r.storedResolutions.delete(I.descriptorHash);return await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}async executeUpClassic(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l6.getModifier(this,r),f=l?[l6.Strategy.KEEP,l6.Strategy.REUSE,l6.Strategy.PROJECT,l6.Strategy.LATEST]:[l6.Strategy.PROJECT,l6.Strategy.LATEST],I=[],C=[];for(let F of this.patterns){let Q=!1,X=FO.structUtils.parseDescriptor(F),ae=FO.structUtils.stringifyIdent(X);for(let ne of r.workspaces)for(let ce of[l6.Target.REGULAR,l6.Target.DEVELOPMENT]){let ue=[...ne.manifest.getForScope(ce).values()].map(be=>FO.structUtils.stringifyIdent(be)),de=ae==="*"?ue:(0,Xcs.default)(ue,ae);for(let be of de){let Se=FO.structUtils.parseIdent(be),De=ne.manifest[ce].get(Se.identHash);if(typeof De>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let k=FO.structUtils.makeDescriptor(Se,X.range);I.push(Promise.resolve().then(async()=>[ne,ce,De,await l6.getSuggestedDescriptors(k,{project:r,workspace:ne,cache:a,target:ce,fixed:o,modifier:A,strategies:f})])),Q=!0}}Q||C.push(F)}if(C.length>1)throw new wH.UsageError(`Patterns ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new wH.UsageError(`Pattern ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} doesn't match any packages referenced by any workspace`);let b=await Promise.all(I),E=await BH.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async F=>{for(let[,,Q,{suggestions:X,rejections:ae}]of b){let ne=X.filter(ce=>ce.descriptor!==null);if(ne.length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let fe=this.cli.error(ce);r.configuration.get("enableNetwork")?F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});FXr.default=v6e});var Jcs=H(WXr=>{"use strict";Object.defineProperty(WXr,"__esModule",{value:!0});var PXr=(Pa(),vi(Va)),ZXr=el(),FO=Bn(),LXr=Bn(),BH=Bn(),wH=($c(),vi(rg)),Chl=Lje(),Xcs=PXr.__importDefault(Ek()),VXr=PXr.__importStar((CZ(),vi(mZ))),l6=PXr.__importStar(Wje()),$xe=class extends ZXr.BaseCommand{constructor(){super(...arguments),this.interactive=wH.Option.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"}),this.fixed=wH.Option.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"}),this.exact=wH.Option.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"}),this.tilde=wH.Option.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"}),this.caret=wH.Option.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"}),this.recursive=wH.Option.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"}),this.mode=wH.Option.String("--mode",{description:"Change what artifacts installs generate",validator:VXr.isEnum(LXr.InstallMode)}),this.patterns=wH.Option.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=[...r.storedDescriptors.values()],l=o.map(I=>FO.structUtils.stringifyIdent(I)),A=new Set;for(let I of this.patterns){if(FO.structUtils.parseDescriptor(I).range!=="unknown")throw new wH.UsageError("Ranges aren't allowed when using --recursive");for(let C of(0,Xcs.default)(l,I)){let b=FO.structUtils.parseIdent(C);A.add(b.identHash)}}let f=o.filter(I=>A.has(I.identHash));for(let I of f)r.storedDescriptors.delete(I.descriptorHash),r.storedResolutions.delete(I.descriptorHash);return await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}async executeUpClassic(){let t=await BH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await LXr.Project.find(t,this.context.cwd),a=await BH.Cache.find(t);if(!n)throw new ZXr.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let o=this.fixed,l=t.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),A=l6.getModifier(this,r),f=l?[l6.Strategy.KEEP,l6.Strategy.REUSE,l6.Strategy.PROJECT,l6.Strategy.LATEST]:[l6.Strategy.PROJECT,l6.Strategy.LATEST],I=[],C=[];for(let F of this.patterns){let Q=!1,X=FO.structUtils.parseDescriptor(F),ae=FO.structUtils.stringifyIdent(X);for(let ne of r.workspaces)for(let ce of[l6.Target.REGULAR,l6.Target.DEVELOPMENT]){let ue=[...ne.manifest.getForScope(ce).values()].map(be=>FO.structUtils.stringifyIdent(be)),de=ae==="*"?ue:(0,Xcs.default)(ue,ae);for(let be of de){let Se=FO.structUtils.parseIdent(be),De=ne.manifest[ce].get(Se.identHash);if(typeof De>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let k=FO.structUtils.makeDescriptor(Se,X.range);I.push(Promise.resolve().then(async()=>[ne,ce,De,await l6.getSuggestedDescriptors(k,{project:r,workspace:ne,cache:a,target:ce,fixed:o,modifier:A,strategies:f})])),Q=!0}}Q||C.push(F)}if(C.length>1)throw new wH.UsageError(`Patterns ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} don't match any packages referenced by any workspace`);if(C.length>0)throw new wH.UsageError(`Pattern ${BH.formatUtils.prettyList(t,C,BH.formatUtils.Type.CODE)} doesn't match any packages referenced by any workspace`);let b=await Promise.all(I),E=await BH.LightReport.start({configuration:t,stdout:this.context.stdout,suggestInstall:!1},async F=>{for(let[,,Q,{suggestions:X,rejections:ae}]of b){let ne=X.filter(ce=>ce.descriptor!==null);if(ne.length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let fe=this.cli.error(ce);r.configuration.get("enableNetwork")?F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range ${fe}`):F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} can't be resolved to a satisfying range (note: network resolution has been disabled) -${fe}`)}else ne.length>1&&!l&&F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(E.hasErrors())return E.exitCode();let N=!1,B=[];for(let[F,Q,,{suggestions:X}]of b){let ae,ne=X.filter(de=>de.descriptor!==null),ce=ne[0].descriptor,fe=ne.every(de=>FO.structUtils.areDescriptorsEqual(de.descriptor,ce));ne.length===1||fe?ae=ce:(N=!0,{answer:ae}=await(0,mhl.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${FO.structUtils.prettyWorkspace(t,F)} \u276F ${Q}?`,choices:X.map(({descriptor:de,name:be,reason:Se})=>de?{name:be,hint:Se,descriptor:de}:{name:be,hint:Se,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ue=F.manifest[Q].get(ae.identHash);if(typeof ue>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ue.descriptorHash!==ae.descriptorHash)F.manifest[Q].set(ae.identHash,ae),B.push([F,Q,ue,ae]);else{let de=t.makeResolver(),be={project:r,resolver:de},Se=t.normalizeDependency(ue),De=de.bindDescriptor(Se,F.anchoredLocator,be);r.forgetResolution(De)}}return await t.triggerMultipleHooks(F=>F.afterWorkspaceDependencyReplacement,B),N&&this.context.stdout.write(` -`),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}};$xe.paths=[["up"]];$xe.usage=wH.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]});$xe.schema=[VXr.hasKeyRelationship("recursive",VXr.KeyRelationship.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];WXr.default=$xe});var Kcs=H(MXr=>{"use strict";Object.defineProperty(MXr,"__esModule",{value:!0});var Ucs=el(),OXr=Bn(),WR=Bn(),eGe=($c(),vi(rg)),B6e=class extends Ucs.BaseCommand{constructor(){super(...arguments),this.recursive=eGe.Option.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"}),this.json=eGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.peers=eGe.Option.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"}),this.package=eGe.Option.String()}async execute(){let t=await OXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await OXr.Project.find(t,this.context.cwd);if(!n)throw new Ucs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=WR.structUtils.parseDescriptor(this.package,!1);if(a.range!=="unknown"&&OXr.semverUtils.validRange(a.range)===null)throw new eGe.UsageError(`Expected a valid semver range, got ${a.range}`);let o=this.recursive?_hl(r,a,{configuration:t,peers:this.peers}):Chl(r,a,{configuration:t,peers:this.peers});WR.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};B6e.paths=[["why"]];B6e.usage=eGe.Command.Usage({description:"display the reason why a package is needed",details:` +${fe}`)}else ne.length>1&&!l&&F.reportError(BH.MessageName.CANT_SUGGEST_RESOLUTIONS,`${FO.structUtils.prettyDescriptor(t,Q)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(E.hasErrors())return E.exitCode();let N=!1,B=[];for(let[F,Q,,{suggestions:X}]of b){let ae,ne=X.filter(de=>de.descriptor!==null),ce=ne[0].descriptor,fe=ne.every(de=>FO.structUtils.areDescriptorsEqual(de.descriptor,ce));ne.length===1||fe?ae=ce:(N=!0,{answer:ae}=await(0,Chl.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${FO.structUtils.prettyWorkspace(t,F)} \u276F ${Q}?`,choices:X.map(({descriptor:de,name:be,reason:Se})=>de?{name:be,hint:Se,descriptor:de}:{name:be,hint:Se,disabled:!0}),onCancel:()=>process.exit(130),result(de){return this.find(de,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let ue=F.manifest[Q].get(ae.identHash);if(typeof ue>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(ue.descriptorHash!==ae.descriptorHash)F.manifest[Q].set(ae.identHash,ae),B.push([F,Q,ue,ae]);else{let de=t.makeResolver(),be={project:r,resolver:de},Se=t.normalizeDependency(ue),De=de.bindDescriptor(Se,F.anchoredLocator,be);r.forgetResolution(De)}}return await t.triggerMultipleHooks(F=>F.afterWorkspaceDependencyReplacement,B),N&&this.context.stdout.write(` +`),await r.installWithNewReport({stdout:this.context.stdout},{cache:a,mode:this.mode})}};$xe.paths=[["up"]];$xe.usage=wH.Command.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]});$xe.schema=[VXr.hasKeyRelationship("recursive",VXr.KeyRelationship.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];WXr.default=$xe});var Kcs=H(MXr=>{"use strict";Object.defineProperty(MXr,"__esModule",{value:!0});var Ucs=el(),OXr=Bn(),WR=Bn(),eGe=($c(),vi(rg)),B6e=class extends Ucs.BaseCommand{constructor(){super(...arguments),this.recursive=eGe.Option.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"}),this.json=eGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.peers=eGe.Option.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"}),this.package=eGe.Option.String()}async execute(){let t=await OXr.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await OXr.Project.find(t,this.context.cwd);if(!n)throw new Ucs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=WR.structUtils.parseDescriptor(this.package,!1);if(a.range!=="unknown"&&OXr.semverUtils.validRange(a.range)===null)throw new eGe.UsageError(`Expected a valid semver range, got ${a.range}`);let o=this.recursive?yhl(r,a,{configuration:t,peers:this.peers}):_hl(r,a,{configuration:t,peers:this.peers});WR.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1})}};B6e.paths=[["why"]];B6e.usage=eGe.Command.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. Specify a version or range to determine why the dependency tree contains a specific version of a package. This is particularly useful when trying to find out why your project depends on lower versions. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]});MXr.default=B6e;function Chl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.storedPackages.values(),A=>WR.structUtils.stringifyLocator(A)),o={},l={children:o};for(let A of a){let f={};for(let C of A.dependencies.values()){if(!n&&A.peerDependencies.has(C.identHash))continue;let b=e.storedResolutions.get(C.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let E=e.storedPackages.get(b);if(!E)throw new Error("Assertion failed: The package should have been registered");if(!WR.structUtils.areIdentsEqual(E,t)||!WR.structUtils.isPackageInRange(E,t.range))continue;{let B=WR.structUtils.stringifyLocator(A);o[B]={value:[A,WR.formatUtils.Type.LOCATOR],children:f}}let N=WR.structUtils.stringifyLocator(E);f[N]={value:[{descriptor:C,locator:E},WR.formatUtils.Type.DEPENDENT]}}}return l}function _hl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.workspaces,E=>WR.structUtils.stringifyLocator(E.anchoredLocator)),o=new Set,l=new Set,A=E=>{if(o.has(E.locatorHash))return l.has(E.locatorHash);if(o.add(E.locatorHash),WR.structUtils.areIdentsEqual(E,t)&&WR.structUtils.isPackageInRange(E,t.range))return l.add(E.locatorHash),!0;let N=!1;for(let B of E.dependencies.values()){if(!n&&E.peerDependencies.has(B.identHash))continue;let F=e.storedResolutions.get(B.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let Q=e.storedPackages.get(F);if(!Q)throw new Error("Assertion failed: The package should have been registered");A(Q)&&(N=!0)}return N&&l.add(E.locatorHash),N};for(let E of a)A(E.anchoredPackage);let f=new Set,I={},C={children:I},b=(E,N,B)=>{if(!l.has(E.locatorHash))return;let F=B!==null?WR.formatUtils.tuple(WR.formatUtils.Type.DEPENDENT,{locator:E,descriptor:B}):WR.formatUtils.tuple(WR.formatUtils.Type.LOCATOR,E),Q={},X={value:F,children:Q},ae=WR.structUtils.stringifyLocator(E);if(N[ae]=X,!(B!==null&&e.tryWorkspaceByLocator(E))&&!f.has(E.locatorHash)){f.add(E.locatorHash);for(let ne of E.dependencies.values()){if(!n&&E.peerDependencies.has(ne.identHash))continue;let ce=e.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=e.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");b(fe,Q,ne)}}};for(let E of a)b(E.anchoredPackage,I,null);return C}});var jcs=H(HXr=>{"use strict";Object.defineProperty(HXr,"__esModule",{value:!0});var yhl=el(),tGe=Bn(),bhl=nDe(),rGe=($c(),vi(rg)),w6e=class extends yhl.BaseCommand{constructor(){super(...arguments),this.since=rGe.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.recursive=rGe.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"}),this.noPrivate=rGe.Option.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"}),this.verbose=rGe.Option.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"}),this.json=rGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await tGe.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await tGe.Project.find(t,this.context.cwd);return(await tGe.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let o=this.since?await bhl.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,l=new Set(o);if(this.recursive)for(let A of[...o].map(f=>f.getRecursiveWorkspaceDependents()))for(let f of A)l.add(f);for(let A of l){let{manifest:f}=A;if(f.private&&this.noPrivate)continue;let I;if(this.verbose){let C=new Set,b=new Set;for(let E of tGe.Manifest.hardDependencies)for(let[N,B]of f.getForScope(E)){let F=r.tryWorkspaceByDescriptor(B);F===null?r.workspacesByIdent.has(N)&&b.add(B):C.add(F)}I={workspaceDependencies:Array.from(C).map(E=>E.relativeCwd),mismatchedWorkspaceDependencies:Array.from(b).map(E=>tGe.structUtils.stringifyDescriptor(E))}}a.reportInfo(null,`${A.relativeCwd}`),a.reportJson({location:A.relativeCwd,name:f.name?tGe.structUtils.stringifyIdent(f.name):null,...I})}})).exitCode()}};w6e.paths=[["workspaces","list"]];w6e.usage=rGe.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});HXr.default=w6e});var $cs=H(YXr=>{"use strict";Object.defineProperty(YXr,"__esModule",{value:!0});var zcs=el(),qcs=Bn(),Ehl=Bn(),T6e=($c(),vi(rg)),R6e=class extends zcs.BaseCommand{constructor(){super(...arguments),this.workspaceName=T6e.Option.String(),this.commandName=T6e.Option.String(),this.args=T6e.Option.Proxy()}async execute(){let t=await qcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await qcs.Project.find(t,this.context.cwd);if(!n)throw new zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=r.workspaces,o=new Map(a.map(A=>[Ehl.structUtils.stringifyIdent(A.anchoredLocator),A])),l=o.get(this.workspaceName);if(l===void 0){let A=Array.from(o.keys()).sort();throw new T6e.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + `,examples:[["Explain why lodash is used in your project","$0 why lodash"],["Explain why version 3.3.1 of lodash is in your project","$0 why lodash@3.3.1"],["Explain why version 3.X of lodash is in your project","$0 why lodash@^3"]]});MXr.default=B6e;function _hl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.storedPackages.values(),A=>WR.structUtils.stringifyLocator(A)),o={},l={children:o};for(let A of a){let f={};for(let C of A.dependencies.values()){if(!n&&A.peerDependencies.has(C.identHash))continue;let b=e.storedResolutions.get(C.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let E=e.storedPackages.get(b);if(!E)throw new Error("Assertion failed: The package should have been registered");if(!WR.structUtils.areIdentsEqual(E,t)||!WR.structUtils.isPackageInRange(E,t.range))continue;{let B=WR.structUtils.stringifyLocator(A);o[B]={value:[A,WR.formatUtils.Type.LOCATOR],children:f}}let N=WR.structUtils.stringifyLocator(E);f[N]={value:[{descriptor:C,locator:E},WR.formatUtils.Type.DEPENDENT]}}}return l}function yhl(e,t,{configuration:r,peers:n}){let a=WR.miscUtils.sortMap(e.workspaces,E=>WR.structUtils.stringifyLocator(E.anchoredLocator)),o=new Set,l=new Set,A=E=>{if(o.has(E.locatorHash))return l.has(E.locatorHash);if(o.add(E.locatorHash),WR.structUtils.areIdentsEqual(E,t)&&WR.structUtils.isPackageInRange(E,t.range))return l.add(E.locatorHash),!0;let N=!1;for(let B of E.dependencies.values()){if(!n&&E.peerDependencies.has(B.identHash))continue;let F=e.storedResolutions.get(B.descriptorHash);if(!F)throw new Error("Assertion failed: The resolution should have been registered");let Q=e.storedPackages.get(F);if(!Q)throw new Error("Assertion failed: The package should have been registered");A(Q)&&(N=!0)}return N&&l.add(E.locatorHash),N};for(let E of a)A(E.anchoredPackage);let f=new Set,I={},C={children:I},b=(E,N,B)=>{if(!l.has(E.locatorHash))return;let F=B!==null?WR.formatUtils.tuple(WR.formatUtils.Type.DEPENDENT,{locator:E,descriptor:B}):WR.formatUtils.tuple(WR.formatUtils.Type.LOCATOR,E),Q={},X={value:F,children:Q},ae=WR.structUtils.stringifyLocator(E);if(N[ae]=X,!(B!==null&&e.tryWorkspaceByLocator(E))&&!f.has(E.locatorHash)){f.add(E.locatorHash);for(let ne of E.dependencies.values()){if(!n&&E.peerDependencies.has(ne.identHash))continue;let ce=e.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=e.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");b(fe,Q,ne)}}};for(let E of a)b(E.anchoredPackage,I,null);return C}});var jcs=H(HXr=>{"use strict";Object.defineProperty(HXr,"__esModule",{value:!0});var bhl=el(),tGe=Bn(),Ehl=nDe(),rGe=($c(),vi(rg)),w6e=class extends bhl.BaseCommand{constructor(){super(...arguments),this.since=rGe.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.recursive=rGe.Option.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"}),this.noPrivate=rGe.Option.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"}),this.verbose=rGe.Option.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"}),this.json=rGe.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await tGe.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await tGe.Project.find(t,this.context.cwd);return(await tGe.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async a=>{let o=this.since?await Ehl.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,l=new Set(o);if(this.recursive)for(let A of[...o].map(f=>f.getRecursiveWorkspaceDependents()))for(let f of A)l.add(f);for(let A of l){let{manifest:f}=A;if(f.private&&this.noPrivate)continue;let I;if(this.verbose){let C=new Set,b=new Set;for(let E of tGe.Manifest.hardDependencies)for(let[N,B]of f.getForScope(E)){let F=r.tryWorkspaceByDescriptor(B);F===null?r.workspacesByIdent.has(N)&&b.add(B):C.add(F)}I={workspaceDependencies:Array.from(C).map(E=>E.relativeCwd),mismatchedWorkspaceDependencies:Array.from(b).map(E=>tGe.structUtils.stringifyDescriptor(E))}}a.reportInfo(null,`${A.relativeCwd}`),a.reportJson({location:A.relativeCwd,name:f.name?tGe.structUtils.stringifyIdent(f.name):null,...I})}})).exitCode()}};w6e.paths=[["workspaces","list"]];w6e.usage=rGe.Command.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});HXr.default=w6e});var $cs=H(YXr=>{"use strict";Object.defineProperty(YXr,"__esModule",{value:!0});var zcs=el(),qcs=Bn(),Shl=Bn(),T6e=($c(),vi(rg)),R6e=class extends zcs.BaseCommand{constructor(){super(...arguments),this.workspaceName=T6e.Option.String(),this.commandName=T6e.Option.String(),this.args=T6e.Option.Proxy()}async execute(){let t=await qcs.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await qcs.Project.find(t,this.context.cwd);if(!n)throw new zcs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=r.workspaces,o=new Map(a.map(A=>[Shl.structUtils.stringifyIdent(A.anchoredLocator),A])),l=o.get(this.workspaceName);if(l===void 0){let A=Array.from(o.keys()).sort();throw new T6e.UsageError(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${A.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:l.cwd})}};R6e.paths=[["workspace"]];R6e.usage=T6e.Command.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});YXr.default=R6e});var Axt=H(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.suggestUtils=zu.dedupeUtils=zu.WorkspaceCommand=zu.WorkspacesListCommand=zu.WhyCommand=zu.UpCommand=zu.UnlinkCommand=zu.SetVersionCommand=zu.SetVersionSourcesCommand=zu.SetResolutionCommand=zu.RunCommand=zu.RunIndexCommand=zu.RemoveCommand=zu.RebuildCommand=zu.PluginRuntimeCommand=zu.PluginRemoveCommand=zu.PluginListCommand=zu.PluginImportCommand=zu.PluginCheckCommand=zu.PluginImportSourcesCommand=zu.NodeCommand=zu.LinkCommand=zu.YarnCommand=zu.InfoCommand=zu.ExplainCommand=zu.ExplainPeerRequirementsCommand=zu.ExecCommand=zu.VersionCommand=zu.EntryCommand=zu.HelpCommand=zu.ClipanionCommand=zu.DedupeCommand=zu.ConfigCommand=zu.ConfigUnsetCommand=zu.ConfigSetCommand=zu.ConfigGetCommand=zu.CacheCleanCommand=zu.BinCommand=zu.AddCommand=void 0;var am=(Pa(),vi(Va)),QXr=Bn(),Shl=Nfe(),els=am.__importDefault(Das());zu.AddCommand=els.default;var tls=am.__importDefault(kas());zu.BinCommand=tls.default;var rls=am.__importDefault(Gas());zu.CacheCleanCommand=rls.default;var nls=am.__importDefault(Zas());zu.ConfigGetCommand=nls.default;var ils=am.__importDefault(Vas());zu.ConfigSetCommand=ils.default;var sls=am.__importDefault(Pas());zu.ConfigUnsetCommand=sls.default;var ols=am.__importDefault(Was());zu.ConfigCommand=ols.default;var als=am.__importDefault(Has());zu.DedupeCommand=als.default;var cls=am.__importDefault(Yas());zu.ClipanionCommand=cls.default;var lls=am.__importDefault(Qas());zu.HelpCommand=lls.default;var uls=am.__importDefault(Uas());zu.EntryCommand=uls.default;var gls=am.__importDefault(Kas());zu.VersionCommand=gls.default;var Als=am.__importDefault(zas());zu.ExecCommand=Als.default;var dls=am.__importDefault(tcs());zu.ExplainPeerRequirementsCommand=dls.default;var pls=am.__importDefault(ocs());zu.ExplainCommand=pls.default;var fls=am.__importDefault(ccs());zu.InfoCommand=fls.default;var Ils=am.__importDefault(Acs());zu.YarnCommand=Ils.default;var hls=am.__importDefault(dcs());zu.LinkCommand=hls.default;var mls=am.__importDefault(fcs());zu.NodeCommand=mls.default;var Cls=am.__importDefault(hcs());zu.PluginCheckCommand=Cls.default;var _ls=am.__importDefault(IXr());zu.PluginImportSourcesCommand=_ls.default;var yls=am.__importDefault(mXr());zu.PluginImportCommand=yls.default;var bls=am.__importDefault(g6e());zu.PluginListCommand=bls.default;var Els=am.__importDefault(vcs());zu.PluginRemoveCommand=Els.default;var Sls=am.__importDefault(Tcs());zu.PluginRuntimeCommand=Sls.default;var vls=am.__importDefault(kcs());zu.RebuildCommand=vls.default;var Bls=am.__importDefault(Fcs());zu.RemoveCommand=Bls.default;var wls=am.__importDefault(Lcs());zu.RunIndexCommand=wls.default;var Tls=am.__importDefault(Wcs());zu.RunCommand=Tls.default;var Rls=am.__importDefault(Hcs());zu.SetResolutionCommand=Rls.default;var Nls=am.__importDefault(fXr());zu.SetVersionSourcesCommand=Nls.default;var Dls=am.__importDefault(nxt());zu.SetVersionCommand=Dls.default;var kls=am.__importDefault(Qcs());zu.UnlinkCommand=kls.default;var xls=am.__importDefault(Jcs());zu.UpCommand=xls.default;var Gls=am.__importDefault(Kcs());zu.WhyCommand=Gls.default;var Fls=am.__importDefault(jcs());zu.WorkspacesListCommand=Fls.default;var Zls=am.__importDefault($cs());zu.WorkspaceCommand=Zls.default;var vhl=am.__importStar(JQr());zu.dedupeUtils=vhl;var Lls=am.__importStar(Wje());zu.suggestUtils=Lls;var Bhl={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:QXr.SettingsType.BOOLEAN,default:Shl.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:QXr.SettingsType.STRING,values:["^","~",""],default:Lls.Modifier.CARET},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:QXr.SettingsType.BOOLEAN,default:!1}},commands:[rls.default,nls.default,ils.default,sls.default,Rls.default,Nls.default,Dls.default,Fls.default,cls.default,lls.default,uls.default,gls.default,els.default,tls.default,ols.default,als.default,Als.default,dls.default,pls.default,fls.default,Ils.default,hls.default,kls.default,mls.default,Cls.default,_ls.default,yls.default,Els.default,bls.default,Sls.default,vls.default,Bls.default,wls.default,Tls.default,xls.default,Gls.default,Zls.default]};zu.default=Bhl});var XXr=H(dxt=>{"use strict";Object.defineProperty(dxt,"__esModule",{value:!0});dxt.Pad=void 0;var whl=(Pa(),vi(Va)),Thl=lH(),Rhl=whl.__importDefault(sC()),Nhl=({length:e,active:t})=>{if(e===0)return null;let r=e>1?` ${"-".repeat(e-1)}`:" ";return Rhl.default.createElement(Thl.Text,{dimColor:!t},r)};dxt.Pad=Nhl});var Vls=H(pxt=>{"use strict";Object.defineProperty(pxt,"__esModule",{value:!0});pxt.ItemOptions=void 0;var Dhl=(Pa(),vi(Va)),JXr=lH(),P_e=Dhl.__importDefault(sC()),khl=T1t(),xhl=v1t(),Ghl=XXr(),Fhl=function({active:e,skewer:t,options:r,value:n,onChange:a,sizes:o=[]}){let l=r.filter(({label:f})=>!!f).map(({value:f})=>f),A=r.findIndex(f=>f.value===n&&f.label!="");return(0,khl.useListInput)(n,l,{active:e,minus:"left",plus:"right",set:a}),P_e.default.createElement(P_e.default.Fragment,null,r.map(({label:f},I)=>{let C=I===A,b=o[I]-1||0,E=f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),N=Math.max(0,b-E.length-2);return f?P_e.default.createElement(JXr.Box,{key:f,width:b,marginLeft:1},P_e.default.createElement(JXr.Text,{wrap:"truncate"},P_e.default.createElement(xhl.Gem,{active:C})," ",f),t?P_e.default.createElement(Ghl.Pad,{active:e,length:N}):null):P_e.default.createElement(JXr.Box,{key:`spacer-${I}`,width:b,marginLeft:1})}))};pxt.ItemOptions=Fhl});var Hls=H(UXr=>{"use strict";Object.defineProperty(UXr,"__esModule",{value:!0});var M4=(Pa(),vi(Va)),Pls=el(),ZO=Bn(),Zhl=M4.__importStar(A1t()),Lhl=Axt(),Ols=($c(),vi(rg)),Vhl=kdr(),Phl=M4.__importDefault(UC()),Whl=M4.__importStar((CZ(),vi(mZ))),Wls=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function Mls(e,t){return e.length>0?[e.slice(0,t)].concat(Mls(e.slice(t),t)):[]}var N6e=class extends Pls.BaseCommand{constructor(){super(...arguments),this.mode=Ols.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Whl.isEnum(ZO.InstallMode)})}async execute(){Zhl.checkRequirements(this.context);let{ItemOptions:t}=await Promise.resolve().then(()=>M4.__importStar(Vls())),{Pad:r}=await Promise.resolve().then(()=>M4.__importStar(XXr())),{ScrollableItems:n}=await Promise.resolve().then(()=>M4.__importStar(N1t())),{useMinistore:a,useMinistoreSetAll:o}=await Promise.resolve().then(()=>M4.__importStar(WYr())),{useKeypress:l}=await Promise.resolve().then(()=>M4.__importStar(cDe())),{renderForm:A}=await Promise.resolve().then(()=>M4.__importStar(D1t())),{Box:f,Text:I}=await Promise.resolve().then(()=>M4.__importStar(lH())),{default:C,useCallback:b,useEffect:E,useRef:N,useState:B}=await Promise.resolve().then(()=>M4.__importStar(sC())),F=await ZO.Configuration.find(this.context.cwd,this.context.plugins),{project:Q,workspace:X}=await ZO.Project.find(F,this.context.cwd),ae=await ZO.Cache.find(F);if(!X)throw new Pls.WorkspaceRequiredError(Q.cwd,this.context.cwd);await Q.restoreInstallState({restoreResolutions:!1});let ne=this.context.stdout.rows-8,ce=(je,St)=>{let At=(0,Vhl.diffWords)(je,St),Yt="";for(let Tr of At)Tr.added?Yt+=ZO.formatUtils.pretty(F,Tr.value,"green"):Tr.removed||(Yt+=Tr.value);return Yt},fe=(je,St)=>{if(je===St)return St;let At=ZO.structUtils.parseRange(je),Yt=ZO.structUtils.parseRange(St),Tr=At.selector.match(Wls),Nr=Yt.selector.match(Wls);if(!Tr||!Nr)return ce(je,St);let er=["gray","red","yellow","green","magenta"],vt=null,xt="";for(let Zr=1;Zr{let Yt=await Lhl.suggestUtils.fetchDescriptorFrom(je,At,{project:Q,cache:ae,preserveModifier:St,workspace:X});return Yt!==null?Yt.range:je.range},de=async je=>{let St=Phl.default.valid(je.range)?`^${je.range}`:je.range,[At,Yt]=await Promise.all([ue(je,je.range,St).catch(()=>null),ue(je,je.range,"latest").catch(()=>null)]),Tr=[{value:null,label:je.range}];return At&&At!==je.range?Tr.push({value:At,label:fe(je.range,At)}):Tr.push({value:null,label:""}),Yt&&Yt!==At&&Yt!==je.range?Tr.push({value:Yt,label:fe(je.range,Yt)}):Tr.push({value:null,label:""}),Tr},be=()=>C.createElement(f,{flexDirection:"row"},C.createElement(f,{flexDirection:"column",width:49},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select packages.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select versions.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"c"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"r"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"l")," to select all ",C.createElement(I,{bold:!0,color:"cyanBright"},"current"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"range"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"latest"),"."))),C.createElement(f,{flexDirection:"column"},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to install.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to abort.")))),Se=()=>C.createElement(f,{flexDirection:"row",paddingTop:1,paddingBottom:1},C.createElement(f,{width:50},C.createElement(I,{bold:!0},C.createElement(I,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Current")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Range")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Latest"))),De=({active:je,descriptor:St,suggestions:At})=>{let[Yt,Tr]=a(St.descriptorHash,null),Nr=ZO.structUtils.stringifyIdent(St),er=Math.max(0,45-Nr.length);return C.createElement(C.Fragment,null,C.createElement(f,null,C.createElement(f,{width:45},C.createElement(I,{bold:!0},ZO.structUtils.prettyIdent(F,St)),C.createElement(r,{active:je,length:er})),C.createElement(t,{active:je,options:At,value:Yt,skewer:!0,onChange:Tr,sizes:[17,17,17]})))},k=({dependencies:je})=>{let St=o(),[At,Yt]=B(je.map(()=>null)),Tr=N(!0),Nr=async vt=>{let xt=await de(vt);return xt.filter(Zr=>Zr.label!=="").length<=1?null:{descriptor:vt,suggestions:xt}};E(()=>()=>{Tr.current=!1},[]),E(()=>{let vt=Math.trunc(ne*1.75),xt=je.slice(0,vt),Zr=je.slice(vt),qt=Mls(Zr,ne),Xt=xt.map(Nr).reduce(async(lr,cr)=>{await lr;let Ar=await cr;Ar!==null&&Tr.current&&Yt(qr=>{let _n=qr.findIndex(jt=>jt===null),ke=[...qr];return ke[_n]=Ar,ke})},Promise.resolve());qt.reduce((lr,cr)=>Promise.all(cr.map(Ar=>Promise.resolve().then(()=>Nr(Ar)))).then(async Ar=>{Ar=Ar.filter(qr=>qr!==null),await lr,Tr.current&&Yt(qr=>{let _n=qr.findIndex(ke=>ke===null);return qr.slice(0,_n).concat(Ar).concat(qr.slice(_n+Ar.length))})}),Xt).then(()=>{Tr.current&&Yt(lr=>lr.filter(cr=>cr!==null))})},[]);let er=b(vt=>{if(vt!=="c"&&vt!=="r"&&vt!=="l")return;let xt=[];for(let Zr of At){if(Zr===null)continue;let qt;vt==="c"?qt=null:vt==="r"?qt=Zr.suggestions[1].value:qt=Zr.suggestions[2].value??Zr.suggestions[1].value,xt.push([Zr.descriptor.descriptorHash,qt])}St(xt)},[At,St]);return l({active:!0},er,[er]),At.length?C.createElement(n,{radius:ne>>1,children:At.map((vt,xt)=>vt!==null?C.createElement(De,{key:xt,active:!1,descriptor:vt.descriptor,suggestions:vt.suggestions}):C.createElement(I,{key:xt},"Loading..."))}):C.createElement(I,null,"No upgrades found")},ct=await A(({useSubmit:je})=>{je(a());let St=new Map;for(let Yt of Q.workspaces)for(let Tr of["dependencies","devDependencies"])for(let Nr of Yt.manifest[Tr].values())Q.tryWorkspaceByDescriptor(Nr)===null&&(Nr.range.startsWith("link:")||St.set(Nr.descriptorHash,Nr));let At=ZO.miscUtils.sortMap(St.values(),Yt=>ZO.structUtils.stringifyDescriptor(Yt));return C.createElement(f,{flexDirection:"column"},C.createElement(be,null),C.createElement(Se,null),C.createElement(k,{dependencies:At}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ct>"u")return 1;let Me=!1;for(let je of Q.workspaces)for(let St of["dependencies","devDependencies"]){let At=je.manifest[St];for(let Yt of At.values()){let Tr=ct.get(Yt.descriptorHash);typeof Tr<"u"&&Tr!==null&&(At.set(Yt.identHash,ZO.structUtils.makeDescriptor(Yt,Tr)),Me=!0)}}return Me?await Q.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:ae,mode:this.mode}):0}};N6e.paths=[["upgrade-interactive"]];N6e.usage=Ols.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]});UXr.default=N6e});var Jls=H(W_e=>{"use strict";Object.defineProperty(W_e,"__esModule",{value:!0});W_e.UpgradeInteractiveCommand=W_e.SearchCommand=void 0;var Yls=(Pa(),vi(Va)),Qls=Yls.__importDefault(Hss());W_e.SearchCommand=Qls.default;var Xls=Yls.__importDefault(Hls());W_e.UpgradeInteractiveCommand=Xls.default;var Ohl={commands:[Qls.default,Xls.default]};W_e.default=Ohl});var KXr=H(fxt=>{"use strict";Object.defineProperty(fxt,"__esModule",{value:!0});fxt.JSR_PROTOCOL=void 0;fxt.JSR_PROTOCOL="jsr:"});var Ixt=H(D6e=>{"use strict";Object.defineProperty(D6e,"__esModule",{value:!0});D6e.convertDescriptorFromJsrToNpm=Hhl;D6e.convertLocatorFromJsrToNpm=Yhl;D6e.convertLocatorFromNpmToJsr=Qhl;var Mhl=Bn(),H4=Bn();function Hhl(e){let t=e.range.slice(4);if(Mhl.semverUtils.validRange(t))return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(e,"jsr"))}@${t}`);let r=H4.structUtils.tryParseDescriptor(t,!0);if(r!==null)return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${e.range}`)}function Yhl(e){return H4.structUtils.makeLocator(H4.structUtils.wrapIdentIntoScope(e,"jsr"),`npm:${e.reference.slice(4)}`)}function Qhl(e){return H4.structUtils.makeLocator(H4.structUtils.unwrapIdentFromScope(e,"jsr"),`jsr:${e.reference.slice(4)}`)}});var Kls=H(hxt=>{"use strict";Object.defineProperty(hxt,"__esModule",{value:!0});hxt.JsrFetcher=void 0;var Xhl=KXr(),Uls=Ixt(),jXr=class{supports(t,r){return t.reference.startsWith(Xhl.JSR_PROTOCOL)}getLocalPath(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.getLocalPath(n,r)}fetch(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.fetch(n,r)}};hxt.JsrFetcher=jXr});var zls=H(mxt=>{"use strict";Object.defineProperty(mxt,"__esModule",{value:!0});mxt.JsrResolver=void 0;var jls=KXr(),O_e=Ixt(),zXr=class{supportsDescriptor(t,r){return!!t.range.startsWith(jls.JSR_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(jls.JSR_PROTOCOL)}shouldPersistResolution(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t);return r.resolver.shouldPersistResolution(n,r)}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{inner:(0,O_e.convertDescriptorFromJsrToNpm)(t)}}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return(await n.resolver.getCandidates(a,r,n)).map(l=>(0,O_e.convertLocatorFromNpmToJsr)(l))}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return a.resolver.getSatisfying(o,r,n,a)}async resolve(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t),a=await r.resolver.resolve(n,r);return{...a,...(0,O_e.convertLocatorFromNpmToJsr)(a)}}};mxt.JsrResolver=zXr});var $ls=H(qXr=>{"use strict";Object.defineProperty(qXr,"__esModule",{value:!0});var qls=Bn(),Jhl=Kls(),Uhl=zls(),Khl=Ixt(),jhl=["dependencies","devDependencies","peerDependencies"];function zhl(e,t){for(let r of jhl)for(let n of e.manifest.getForScope(r).values()){if(!n.range.startsWith("jsr:"))continue;let a=(0,Khl.convertDescriptorFromJsrToNpm)(n),o=r==="dependencies"?qls.structUtils.makeDescriptor(n,"unknown"):null,l=o!==null&&e.manifest.ensureDependencyMeta(o).optional?"optionalDependencies":r;t[l][qls.structUtils.stringifyIdent(n)]=a.range}}var qhl={hooks:{beforeWorkspacePacking:zhl},resolvers:[Uhl.JsrResolver],fetchers:[Jhl.JsrFetcher]};qXr.default=qhl});var tus=H($Xr=>{"use strict";Object.defineProperty($Xr,"__esModule",{value:!0});var eus=el(),Cxt=Bn(),$hl=Bn(),k6e=($c(),vi(rg)),x6e=class extends eus.BaseCommand{constructor(){super(...arguments),this.json=k6e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.production=k6e.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"}),this.all=k6e.Option.Boolean("-A,--all",!1,{description:"Install the entire project"}),this.workspaces=k6e.Option.Rest()}async execute(){let t=await Cxt.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Cxt.Project.find(t,this.context.cwd),a=await Cxt.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let o;if(this.all)o=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new eus.WorkspaceRequiredError(r.cwd,this.context.cwd);o=new Set([n])}else o=new Set(this.workspaces.map(l=>r.getWorkspaceByIdent($hl.structUtils.parseIdent(l))));for(let l of o)for(let A of this.production?["dependencies"]:Cxt.Manifest.hardDependencies)for(let f of l.manifest.getForScope(A).values()){let I=r.tryWorkspaceByDescriptor(f);I!==null&&o.add(I)}for(let l of r.workspaces)o.has(l)?this.production&&l.manifest.devDependencies.clear():(l.manifest.installConfig=l.manifest.installConfig||{},l.manifest.installConfig.selfReferences=!1,l.manifest.dependencies.clear(),l.manifest.devDependencies.clear(),l.manifest.peerDependencies.clear(),l.manifest.scripts.clear());return await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,persistProject:!1})}};x6e.paths=[["workspaces","focus"]];x6e.usage=k6e.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});$Xr.default=x6e});var ius=H(r4r=>{"use strict";Object.defineProperty(r4r,"__esModule",{value:!0});var t4r=(Pa(),vi(Va)),rus=el(),e4r=Bn(),_xt=Bn(),eF=Bn(),eml=nDe(),MR=($c(),vi(rg)),G6e=t4r.__importDefault(Ek()),tml=t4r.__importDefault(Dfe()),Nte=t4r.__importStar((CZ(),vi(mZ))),nGe=class extends rus.BaseCommand{constructor(){super(...arguments),this.from=MR.Option.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"}),this.all=MR.Option.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"}),this.recursive=MR.Option.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"}),this.worktree=MR.Option.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"}),this.verbose=MR.Option.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"}),this.parallel=MR.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"}),this.interlaced=MR.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"}),this.jobs=MR.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:Nte.isOneOf([Nte.isEnum(["unlimited"]),Nte.applyCascade(Nte.isNumber(),[Nte.isInteger(),Nte.isAtLeast(1)])])}),this.topological=MR.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"}),this.topologicalDev=MR.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"}),this.include=MR.Option.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"}),this.exclude=MR.Option.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"}),this.publicOnly=MR.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"}),this.since=MR.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.dryRun=MR.Option.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"}),this.commandName=MR.Option.String(),this.args=MR.Option.Proxy()}async execute(){let t=await e4r.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await e4r.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new rus.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=this.cli.process([this.commandName,...this.args]),o=a.path.length===1&&a.path[0]==="run"&&typeof a.scriptName<"u"?a.scriptName:null;if(a.path.length===0)throw new MR.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let l=Se=>{this.dryRun&&this.context.stdout.write(`${Se} -`)},A=()=>{let Se=this.from.map(De=>G6e.default.matcher(De));return r.workspaces.filter(De=>{let k=eF.structUtils.stringifyIdent(De.anchoredLocator),et=De.relativeCwd;return Se.some(ct=>ct(k)||ct(et))})},f=[];if(this.since?(l("Option --since is set; selecting the changed workspaces as root for workspace selection"),f=Array.from(await eml.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}))):this.from?(l("Option --from is set; selecting the specified workspaces"),f=[...A()]):this.worktree?(l("Option --worktree is set; selecting the current workspace"),f=[n]):this.recursive?(l("Option --recursive is set; selecting the current workspace"),f=[n]):this.all&&(l("Option --all is set; selecting all workspaces"),f=[...r.workspaces]),this.dryRun&&!this.all){for(let Se of f)l(` + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});YXr.default=R6e});var Axt=H(zu=>{"use strict";Object.defineProperty(zu,"__esModule",{value:!0});zu.suggestUtils=zu.dedupeUtils=zu.WorkspaceCommand=zu.WorkspacesListCommand=zu.WhyCommand=zu.UpCommand=zu.UnlinkCommand=zu.SetVersionCommand=zu.SetVersionSourcesCommand=zu.SetResolutionCommand=zu.RunCommand=zu.RunIndexCommand=zu.RemoveCommand=zu.RebuildCommand=zu.PluginRuntimeCommand=zu.PluginRemoveCommand=zu.PluginListCommand=zu.PluginImportCommand=zu.PluginCheckCommand=zu.PluginImportSourcesCommand=zu.NodeCommand=zu.LinkCommand=zu.YarnCommand=zu.InfoCommand=zu.ExplainCommand=zu.ExplainPeerRequirementsCommand=zu.ExecCommand=zu.VersionCommand=zu.EntryCommand=zu.HelpCommand=zu.ClipanionCommand=zu.DedupeCommand=zu.ConfigCommand=zu.ConfigUnsetCommand=zu.ConfigSetCommand=zu.ConfigGetCommand=zu.CacheCleanCommand=zu.BinCommand=zu.AddCommand=void 0;var am=(Pa(),vi(Va)),QXr=Bn(),vhl=Nfe(),els=am.__importDefault(Das());zu.AddCommand=els.default;var tls=am.__importDefault(kas());zu.BinCommand=tls.default;var rls=am.__importDefault(Gas());zu.CacheCleanCommand=rls.default;var nls=am.__importDefault(Zas());zu.ConfigGetCommand=nls.default;var ils=am.__importDefault(Vas());zu.ConfigSetCommand=ils.default;var sls=am.__importDefault(Pas());zu.ConfigUnsetCommand=sls.default;var ols=am.__importDefault(Was());zu.ConfigCommand=ols.default;var als=am.__importDefault(Has());zu.DedupeCommand=als.default;var cls=am.__importDefault(Yas());zu.ClipanionCommand=cls.default;var lls=am.__importDefault(Qas());zu.HelpCommand=lls.default;var uls=am.__importDefault(Uas());zu.EntryCommand=uls.default;var gls=am.__importDefault(Kas());zu.VersionCommand=gls.default;var Als=am.__importDefault(zas());zu.ExecCommand=Als.default;var dls=am.__importDefault(tcs());zu.ExplainPeerRequirementsCommand=dls.default;var pls=am.__importDefault(ocs());zu.ExplainCommand=pls.default;var fls=am.__importDefault(ccs());zu.InfoCommand=fls.default;var Ils=am.__importDefault(Acs());zu.YarnCommand=Ils.default;var hls=am.__importDefault(dcs());zu.LinkCommand=hls.default;var mls=am.__importDefault(fcs());zu.NodeCommand=mls.default;var Cls=am.__importDefault(hcs());zu.PluginCheckCommand=Cls.default;var _ls=am.__importDefault(IXr());zu.PluginImportSourcesCommand=_ls.default;var yls=am.__importDefault(mXr());zu.PluginImportCommand=yls.default;var bls=am.__importDefault(g6e());zu.PluginListCommand=bls.default;var Els=am.__importDefault(vcs());zu.PluginRemoveCommand=Els.default;var Sls=am.__importDefault(Tcs());zu.PluginRuntimeCommand=Sls.default;var vls=am.__importDefault(kcs());zu.RebuildCommand=vls.default;var Bls=am.__importDefault(Fcs());zu.RemoveCommand=Bls.default;var wls=am.__importDefault(Lcs());zu.RunIndexCommand=wls.default;var Tls=am.__importDefault(Wcs());zu.RunCommand=Tls.default;var Rls=am.__importDefault(Hcs());zu.SetResolutionCommand=Rls.default;var Nls=am.__importDefault(fXr());zu.SetVersionSourcesCommand=Nls.default;var Dls=am.__importDefault(nxt());zu.SetVersionCommand=Dls.default;var kls=am.__importDefault(Qcs());zu.UnlinkCommand=kls.default;var xls=am.__importDefault(Jcs());zu.UpCommand=xls.default;var Gls=am.__importDefault(Kcs());zu.WhyCommand=Gls.default;var Fls=am.__importDefault(jcs());zu.WorkspacesListCommand=Fls.default;var Zls=am.__importDefault($cs());zu.WorkspaceCommand=Zls.default;var Bhl=am.__importStar(JQr());zu.dedupeUtils=Bhl;var Lls=am.__importStar(Wje());zu.suggestUtils=Lls;var whl={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:QXr.SettingsType.BOOLEAN,default:vhl.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:QXr.SettingsType.STRING,values:["^","~",""],default:Lls.Modifier.CARET},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:QXr.SettingsType.BOOLEAN,default:!1}},commands:[rls.default,nls.default,ils.default,sls.default,Rls.default,Nls.default,Dls.default,Fls.default,cls.default,lls.default,uls.default,gls.default,els.default,tls.default,ols.default,als.default,Als.default,dls.default,pls.default,fls.default,Ils.default,hls.default,kls.default,mls.default,Cls.default,_ls.default,yls.default,Els.default,bls.default,Sls.default,vls.default,Bls.default,wls.default,Tls.default,xls.default,Gls.default,Zls.default]};zu.default=whl});var XXr=H(dxt=>{"use strict";Object.defineProperty(dxt,"__esModule",{value:!0});dxt.Pad=void 0;var Thl=(Pa(),vi(Va)),Rhl=lH(),Nhl=Thl.__importDefault(sC()),Dhl=({length:e,active:t})=>{if(e===0)return null;let r=e>1?` ${"-".repeat(e-1)}`:" ";return Nhl.default.createElement(Rhl.Text,{dimColor:!t},r)};dxt.Pad=Dhl});var Vls=H(pxt=>{"use strict";Object.defineProperty(pxt,"__esModule",{value:!0});pxt.ItemOptions=void 0;var khl=(Pa(),vi(Va)),JXr=lH(),P_e=khl.__importDefault(sC()),xhl=T1t(),Ghl=v1t(),Fhl=XXr(),Zhl=function({active:e,skewer:t,options:r,value:n,onChange:a,sizes:o=[]}){let l=r.filter(({label:f})=>!!f).map(({value:f})=>f),A=r.findIndex(f=>f.value===n&&f.label!="");return(0,xhl.useListInput)(n,l,{active:e,minus:"left",plus:"right",set:a}),P_e.default.createElement(P_e.default.Fragment,null,r.map(({label:f},I)=>{let C=I===A,b=o[I]-1||0,E=f.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),N=Math.max(0,b-E.length-2);return f?P_e.default.createElement(JXr.Box,{key:f,width:b,marginLeft:1},P_e.default.createElement(JXr.Text,{wrap:"truncate"},P_e.default.createElement(Ghl.Gem,{active:C})," ",f),t?P_e.default.createElement(Fhl.Pad,{active:e,length:N}):null):P_e.default.createElement(JXr.Box,{key:`spacer-${I}`,width:b,marginLeft:1})}))};pxt.ItemOptions=Zhl});var Hls=H(UXr=>{"use strict";Object.defineProperty(UXr,"__esModule",{value:!0});var M4=(Pa(),vi(Va)),Pls=el(),ZO=Bn(),Lhl=M4.__importStar(A1t()),Vhl=Axt(),Ols=($c(),vi(rg)),Phl=kdr(),Whl=M4.__importDefault(UC()),Ohl=M4.__importStar((CZ(),vi(mZ))),Wls=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/;function Mls(e,t){return e.length>0?[e.slice(0,t)].concat(Mls(e.slice(t),t)):[]}var N6e=class extends Pls.BaseCommand{constructor(){super(...arguments),this.mode=Ols.Option.String("--mode",{description:"Change what artifacts installs generate",validator:Ohl.isEnum(ZO.InstallMode)})}async execute(){Lhl.checkRequirements(this.context);let{ItemOptions:t}=await Promise.resolve().then(()=>M4.__importStar(Vls())),{Pad:r}=await Promise.resolve().then(()=>M4.__importStar(XXr())),{ScrollableItems:n}=await Promise.resolve().then(()=>M4.__importStar(N1t())),{useMinistore:a,useMinistoreSetAll:o}=await Promise.resolve().then(()=>M4.__importStar(WYr())),{useKeypress:l}=await Promise.resolve().then(()=>M4.__importStar(cDe())),{renderForm:A}=await Promise.resolve().then(()=>M4.__importStar(D1t())),{Box:f,Text:I}=await Promise.resolve().then(()=>M4.__importStar(lH())),{default:C,useCallback:b,useEffect:E,useRef:N,useState:B}=await Promise.resolve().then(()=>M4.__importStar(sC())),F=await ZO.Configuration.find(this.context.cwd,this.context.plugins),{project:Q,workspace:X}=await ZO.Project.find(F,this.context.cwd),ae=await ZO.Cache.find(F);if(!X)throw new Pls.WorkspaceRequiredError(Q.cwd,this.context.cwd);await Q.restoreInstallState({restoreResolutions:!1});let ne=this.context.stdout.rows-8,ce=(je,St)=>{let At=(0,Phl.diffWords)(je,St),Yt="";for(let Tr of At)Tr.added?Yt+=ZO.formatUtils.pretty(F,Tr.value,"green"):Tr.removed||(Yt+=Tr.value);return Yt},fe=(je,St)=>{if(je===St)return St;let At=ZO.structUtils.parseRange(je),Yt=ZO.structUtils.parseRange(St),Tr=At.selector.match(Wls),Nr=Yt.selector.match(Wls);if(!Tr||!Nr)return ce(je,St);let er=["gray","red","yellow","green","magenta"],vt=null,xt="";for(let Zr=1;Zr{let Yt=await Vhl.suggestUtils.fetchDescriptorFrom(je,At,{project:Q,cache:ae,preserveModifier:St,workspace:X});return Yt!==null?Yt.range:je.range},de=async je=>{let St=Whl.default.valid(je.range)?`^${je.range}`:je.range,[At,Yt]=await Promise.all([ue(je,je.range,St).catch(()=>null),ue(je,je.range,"latest").catch(()=>null)]),Tr=[{value:null,label:je.range}];return At&&At!==je.range?Tr.push({value:At,label:fe(je.range,At)}):Tr.push({value:null,label:""}),Yt&&Yt!==At&&Yt!==je.range?Tr.push({value:Yt,label:fe(je.range,Yt)}):Tr.push({value:null,label:""}),Tr},be=()=>C.createElement(f,{flexDirection:"row"},C.createElement(f,{flexDirection:"column",width:49},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select packages.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},""),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to select versions.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"c"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"r"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"l")," to select all ",C.createElement(I,{bold:!0,color:"cyanBright"},"current"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"range"),"/",C.createElement(I,{bold:!0,color:"cyanBright"},"latest"),"."))),C.createElement(f,{flexDirection:"column"},C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to install.")),C.createElement(f,{marginLeft:1},C.createElement(I,null,"Press ",C.createElement(I,{bold:!0,color:"cyanBright"},"")," to abort.")))),Se=()=>C.createElement(f,{flexDirection:"row",paddingTop:1,paddingBottom:1},C.createElement(f,{width:50},C.createElement(I,{bold:!0},C.createElement(I,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Current")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Range")),C.createElement(f,{width:17},C.createElement(I,{bold:!0,underline:!0,color:"gray"},"Latest"))),De=({active:je,descriptor:St,suggestions:At})=>{let[Yt,Tr]=a(St.descriptorHash,null),Nr=ZO.structUtils.stringifyIdent(St),er=Math.max(0,45-Nr.length);return C.createElement(C.Fragment,null,C.createElement(f,null,C.createElement(f,{width:45},C.createElement(I,{bold:!0},ZO.structUtils.prettyIdent(F,St)),C.createElement(r,{active:je,length:er})),C.createElement(t,{active:je,options:At,value:Yt,skewer:!0,onChange:Tr,sizes:[17,17,17]})))},k=({dependencies:je})=>{let St=o(),[At,Yt]=B(je.map(()=>null)),Tr=N(!0),Nr=async vt=>{let xt=await de(vt);return xt.filter(Zr=>Zr.label!=="").length<=1?null:{descriptor:vt,suggestions:xt}};E(()=>()=>{Tr.current=!1},[]),E(()=>{let vt=Math.trunc(ne*1.75),xt=je.slice(0,vt),Zr=je.slice(vt),qt=Mls(Zr,ne),Xt=xt.map(Nr).reduce(async(lr,cr)=>{await lr;let Ar=await cr;Ar!==null&&Tr.current&&Yt(qr=>{let _n=qr.findIndex(jt=>jt===null),ke=[...qr];return ke[_n]=Ar,ke})},Promise.resolve());qt.reduce((lr,cr)=>Promise.all(cr.map(Ar=>Promise.resolve().then(()=>Nr(Ar)))).then(async Ar=>{Ar=Ar.filter(qr=>qr!==null),await lr,Tr.current&&Yt(qr=>{let _n=qr.findIndex(ke=>ke===null);return qr.slice(0,_n).concat(Ar).concat(qr.slice(_n+Ar.length))})}),Xt).then(()=>{Tr.current&&Yt(lr=>lr.filter(cr=>cr!==null))})},[]);let er=b(vt=>{if(vt!=="c"&&vt!=="r"&&vt!=="l")return;let xt=[];for(let Zr of At){if(Zr===null)continue;let qt;vt==="c"?qt=null:vt==="r"?qt=Zr.suggestions[1].value:qt=Zr.suggestions[2].value??Zr.suggestions[1].value,xt.push([Zr.descriptor.descriptorHash,qt])}St(xt)},[At,St]);return l({active:!0},er,[er]),At.length?C.createElement(n,{radius:ne>>1,children:At.map((vt,xt)=>vt!==null?C.createElement(De,{key:xt,active:!1,descriptor:vt.descriptor,suggestions:vt.suggestions}):C.createElement(I,{key:xt},"Loading..."))}):C.createElement(I,null,"No upgrades found")},ct=await A(({useSubmit:je})=>{je(a());let St=new Map;for(let Yt of Q.workspaces)for(let Tr of["dependencies","devDependencies"])for(let Nr of Yt.manifest[Tr].values())Q.tryWorkspaceByDescriptor(Nr)===null&&(Nr.range.startsWith("link:")||St.set(Nr.descriptorHash,Nr));let At=ZO.miscUtils.sortMap(St.values(),Yt=>ZO.structUtils.stringifyDescriptor(Yt));return C.createElement(f,{flexDirection:"column"},C.createElement(be,null),C.createElement(Se,null),C.createElement(k,{dependencies:At}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ct>"u")return 1;let Me=!1;for(let je of Q.workspaces)for(let St of["dependencies","devDependencies"]){let At=je.manifest[St];for(let Yt of At.values()){let Tr=ct.get(Yt.descriptorHash);typeof Tr<"u"&&Tr!==null&&(At.set(Yt.identHash,ZO.structUtils.makeDescriptor(Yt,Tr)),Me=!0)}}return Me?await Q.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:ae,mode:this.mode}):0}};N6e.paths=[["upgrade-interactive"]];N6e.usage=Ols.Command.Usage({category:"Interactive commands",description:"open the upgrade interface",details:"\n This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Open the upgrade window","yarn upgrade-interactive"]]});UXr.default=N6e});var Jls=H(W_e=>{"use strict";Object.defineProperty(W_e,"__esModule",{value:!0});W_e.UpgradeInteractiveCommand=W_e.SearchCommand=void 0;var Yls=(Pa(),vi(Va)),Qls=Yls.__importDefault(Hss());W_e.SearchCommand=Qls.default;var Xls=Yls.__importDefault(Hls());W_e.UpgradeInteractiveCommand=Xls.default;var Mhl={commands:[Qls.default,Xls.default]};W_e.default=Mhl});var KXr=H(fxt=>{"use strict";Object.defineProperty(fxt,"__esModule",{value:!0});fxt.JSR_PROTOCOL=void 0;fxt.JSR_PROTOCOL="jsr:"});var Ixt=H(D6e=>{"use strict";Object.defineProperty(D6e,"__esModule",{value:!0});D6e.convertDescriptorFromJsrToNpm=Yhl;D6e.convertLocatorFromJsrToNpm=Qhl;D6e.convertLocatorFromNpmToJsr=Xhl;var Hhl=Bn(),H4=Bn();function Yhl(e){let t=e.range.slice(4);if(Hhl.semverUtils.validRange(t))return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(e,"jsr"))}@${t}`);let r=H4.structUtils.tryParseDescriptor(t,!0);if(r!==null)return H4.structUtils.makeDescriptor(e,`npm:${H4.structUtils.stringifyIdent(H4.structUtils.wrapIdentIntoScope(r,"jsr"))}@${r.range}`);throw new Error(`Invalid range: ${e.range}`)}function Qhl(e){return H4.structUtils.makeLocator(H4.structUtils.wrapIdentIntoScope(e,"jsr"),`npm:${e.reference.slice(4)}`)}function Xhl(e){return H4.structUtils.makeLocator(H4.structUtils.unwrapIdentFromScope(e,"jsr"),`jsr:${e.reference.slice(4)}`)}});var Kls=H(hxt=>{"use strict";Object.defineProperty(hxt,"__esModule",{value:!0});hxt.JsrFetcher=void 0;var Jhl=KXr(),Uls=Ixt(),jXr=class{supports(t,r){return t.reference.startsWith(Jhl.JSR_PROTOCOL)}getLocalPath(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.getLocalPath(n,r)}fetch(t,r){let n=(0,Uls.convertLocatorFromJsrToNpm)(t);return r.fetcher.fetch(n,r)}};hxt.JsrFetcher=jXr});var zls=H(mxt=>{"use strict";Object.defineProperty(mxt,"__esModule",{value:!0});mxt.JsrResolver=void 0;var jls=KXr(),O_e=Ixt(),zXr=class{supportsDescriptor(t,r){return!!t.range.startsWith(jls.JSR_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(jls.JSR_PROTOCOL)}shouldPersistResolution(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t);return r.resolver.shouldPersistResolution(n,r)}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{inner:(0,O_e.convertDescriptorFromJsrToNpm)(t)}}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return(await n.resolver.getCandidates(a,r,n)).map(l=>(0,O_e.convertLocatorFromNpmToJsr)(l))}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency((0,O_e.convertDescriptorFromJsrToNpm)(t));return a.resolver.getSatisfying(o,r,n,a)}async resolve(t,r){let n=(0,O_e.convertLocatorFromJsrToNpm)(t),a=await r.resolver.resolve(n,r);return{...a,...(0,O_e.convertLocatorFromNpmToJsr)(a)}}};mxt.JsrResolver=zXr});var $ls=H(qXr=>{"use strict";Object.defineProperty(qXr,"__esModule",{value:!0});var qls=Bn(),Uhl=Kls(),Khl=zls(),jhl=Ixt(),zhl=["dependencies","devDependencies","peerDependencies"];function qhl(e,t){for(let r of zhl)for(let n of e.manifest.getForScope(r).values()){if(!n.range.startsWith("jsr:"))continue;let a=(0,jhl.convertDescriptorFromJsrToNpm)(n),o=r==="dependencies"?qls.structUtils.makeDescriptor(n,"unknown"):null,l=o!==null&&e.manifest.ensureDependencyMeta(o).optional?"optionalDependencies":r;t[l][qls.structUtils.stringifyIdent(n)]=a.range}}var $hl={hooks:{beforeWorkspacePacking:qhl},resolvers:[Khl.JsrResolver],fetchers:[Uhl.JsrFetcher]};qXr.default=$hl});var tus=H($Xr=>{"use strict";Object.defineProperty($Xr,"__esModule",{value:!0});var eus=el(),Cxt=Bn(),eml=Bn(),k6e=($c(),vi(rg)),x6e=class extends eus.BaseCommand{constructor(){super(...arguments),this.json=k6e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.production=k6e.Option.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"}),this.all=k6e.Option.Boolean("-A,--all",!1,{description:"Install the entire project"}),this.workspaces=k6e.Option.Rest()}async execute(){let t=await Cxt.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Cxt.Project.find(t,this.context.cwd),a=await Cxt.Cache.find(t);await r.restoreInstallState({restoreResolutions:!1});let o;if(this.all)o=new Set(r.workspaces);else if(this.workspaces.length===0){if(!n)throw new eus.WorkspaceRequiredError(r.cwd,this.context.cwd);o=new Set([n])}else o=new Set(this.workspaces.map(l=>r.getWorkspaceByIdent(eml.structUtils.parseIdent(l))));for(let l of o)for(let A of this.production?["dependencies"]:Cxt.Manifest.hardDependencies)for(let f of l.manifest.getForScope(A).values()){let I=r.tryWorkspaceByDescriptor(f);I!==null&&o.add(I)}for(let l of r.workspaces)o.has(l)?this.production&&l.manifest.devDependencies.clear():(l.manifest.installConfig=l.manifest.installConfig||{},l.manifest.installConfig.selfReferences=!1,l.manifest.dependencies.clear(),l.manifest.devDependencies.clear(),l.manifest.peerDependencies.clear(),l.manifest.scripts.clear());return await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,persistProject:!1})}};x6e.paths=[["workspaces","focus"]];x6e.usage=k6e.Command.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});$Xr.default=x6e});var ius=H(r4r=>{"use strict";Object.defineProperty(r4r,"__esModule",{value:!0});var t4r=(Pa(),vi(Va)),rus=el(),e4r=Bn(),_xt=Bn(),eF=Bn(),tml=nDe(),MR=($c(),vi(rg)),G6e=t4r.__importDefault(Ek()),rml=t4r.__importDefault(Dfe()),Nte=t4r.__importStar((CZ(),vi(mZ))),nGe=class extends rus.BaseCommand{constructor(){super(...arguments),this.from=MR.Option.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"}),this.all=MR.Option.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"}),this.recursive=MR.Option.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"}),this.worktree=MR.Option.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"}),this.verbose=MR.Option.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"}),this.parallel=MR.Option.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"}),this.interlaced=MR.Option.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"}),this.jobs=MR.Option.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:Nte.isOneOf([Nte.isEnum(["unlimited"]),Nte.applyCascade(Nte.isNumber(),[Nte.isInteger(),Nte.isAtLeast(1)])])}),this.topological=MR.Option.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"}),this.topologicalDev=MR.Option.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"}),this.include=MR.Option.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"}),this.exclude=MR.Option.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"}),this.publicOnly=MR.Option.Boolean("--no-private",{description:"Avoid running the command on private workspaces"}),this.since=MR.Option.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0}),this.dryRun=MR.Option.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"}),this.commandName=MR.Option.String(),this.args=MR.Option.Proxy()}async execute(){let t=await e4r.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await e4r.Project.find(t,this.context.cwd);if(!this.all&&!n)throw new rus.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=this.cli.process([this.commandName,...this.args]),o=a.path.length===1&&a.path[0]==="run"&&typeof a.scriptName<"u"?a.scriptName:null;if(a.path.length===0)throw new MR.UsageError("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let l=Se=>{this.dryRun&&this.context.stdout.write(`${Se} +`)},A=()=>{let Se=this.from.map(De=>G6e.default.matcher(De));return r.workspaces.filter(De=>{let k=eF.structUtils.stringifyIdent(De.anchoredLocator),et=De.relativeCwd;return Se.some(ct=>ct(k)||ct(et))})},f=[];if(this.since?(l("Option --since is set; selecting the changed workspaces as root for workspace selection"),f=Array.from(await tml.gitUtils.fetchChangedWorkspaces({ref:this.since,project:r}))):this.from?(l("Option --from is set; selecting the specified workspaces"),f=[...A()]):this.worktree?(l("Option --worktree is set; selecting the current workspace"),f=[n]):this.recursive?(l("Option --recursive is set; selecting the current workspace"),f=[n]):this.all&&(l("Option --all is set; selecting all workspaces"),f=[...r.workspaces]),this.dryRun&&!this.all){for(let Se of f)l(` - ${Se.relativeCwd} ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);f.length>0&&l("")}let I;if(this.recursive?this.since?(l("Option --recursive --since is set; recursively selecting all dependent workspaces"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceDependents()]).flat())):(l("Option --recursive is set; recursively selecting all transitive dependencies"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(l("Option --worktree is set; recursively selecting all nested workspaces"),I=new Set(f.map(Se=>[...Se.getRecursiveWorkspaceChildren()]).flat())):I=null,I!==null&&(f=[...new Set([...f,...I])],this.dryRun))for(let Se of I)l(` - ${Se.relativeCwd} - ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);let C=[],b=!1;if(o?.includes(":")){for(let Se of r.workspaces)if(Se.manifest.scripts.has(o)&&(b=!b,b===!1))break}for(let Se of f){if(o&&!Se.manifest.scripts.has(o)&&!b&&!(await e4r.scriptUtils.getWorkspaceAccessibleBinaries(Se)).has(o)){l(`Excluding ${Se.relativeCwd} because it doesn't have a "${o}" script`);continue}if(!(o===t.env.npm_lifecycle_event&&Se.cwd===n.cwd)){if(this.include.length>0&&!G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.include)&&!G6e.default.isMatch(Se.relativeCwd,this.include)){l(`Excluding ${Se.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.exclude)||G6e.default.isMatch(Se.relativeCwd,this.exclude))){l(`Excluding ${Se.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Se.manifest.private===!0){l(`Excluding ${Se.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Se)}}if(C.sort((Se,De)=>eF.structUtils.stringifyIdent(Se.anchoredLocator).localeCompare(eF.structUtils.stringifyIdent(De.anchoredLocator))),this.dryRun)return 0;let E=this.verbose??(this.context.stdout.isTTY?1/0:0),N=E>0,B=E>1,F=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(eF.nodeUtils.availableParallelism()/2):1,Q=F===1?!1:this.parallel,X=Q?this.interlaced:!0,ae=(0,tml.default)(F),ne=new Map,ce=new Set,fe=0,ue=null,de=!1,be=await _xt.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async Se=>{let De=async(k,{commandIndex:et})=>{if(de)return-1;!Q&&B&&et>1&&Se.reportSeparator();let ct=rml(k,{configuration:t,label:N,commandIndex:et}),[Me,je]=nus(Se,{prefix:ct,interlaced:X}),[St,At]=nus(Se,{prefix:ct,interlaced:X});try{B&&Se.reportInfo(null,`${ct?`${ct} `:""}Process started`);let Yt=Date.now(),Tr=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:Me,stderr:St})||0;Me.end(),St.end(),await je,await At;let Nr=Date.now();if(B){let er=t.get("enableTimers")?`, completed in ${eF.formatUtils.pretty(t,Nr-Yt,eF.formatUtils.Type.DURATION)}`:"";Se.reportInfo(null,`${ct?`${ct} `:""}Process exited (exit code ${Tr})${er}`)}return Tr===130&&(de=!0,ue=Tr),Tr}catch(Yt){throw Me.end(),St.end(),await je,await At,Yt}};for(let k of C)ne.set(k.anchoredLocator.locatorHash,k);for(;ne.size>0&&!Se.hasErrors();){let k=[];for(let[je,St]of ne){if(ce.has(St.anchoredDescriptor.descriptorHash))continue;let At=!0;if(this.topological||this.topologicalDev){let Yt=this.topologicalDev?new Map([...St.manifest.dependencies,...St.manifest.devDependencies]):St.manifest.dependencies;for(let Tr of Yt.values()){let Nr=r.tryWorkspaceByDescriptor(Tr);if(At=Nr===null||!ne.has(Nr.anchoredLocator.locatorHash),!At)break}}if(At&&(ce.add(St.anchoredDescriptor.descriptorHash),k.push(ae(async()=>{let Yt=await De(St,{commandIndex:++fe});return ne.delete(je),ce.delete(St.anchoredDescriptor.descriptorHash),{workspace:St,exitCode:Yt}})),!Q))break}if(k.length===0){let je=Array.from(ne.values()).map(St=>eF.structUtils.prettyLocator(t,St.anchoredLocator)).join(", ");Se.reportError(_xt.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${je})`);return}let et=await Promise.all(k);et.forEach(({workspace:je,exitCode:St})=>{St!==0&&Se.reportError(_xt.MessageName.UNNAMED,`The command failed in workspace ${eF.structUtils.prettyLocator(t,je.anchoredLocator)} with exit code ${St}`)});let Me=et.map(je=>je.exitCode).find(je=>je!==0);(this.topological||this.topologicalDev)&&typeof Me<"u"&&Se.reportError(_xt.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ue!==null?ue:be.exitCode()}};nGe.paths=[["workspaces","foreach"]];nGe.usage=MR.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]});nGe.schema=[Nte.hasKeyRelationship("all",Nte.KeyRelationship.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),Nte.hasAtLeastOneKey(["all","recursive","since","worktree"],{missingIf:"undefined"})];r4r.default=nGe;function nus(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),a=new eF.miscUtils.DefaultStream;a.pipe(n,{end:!1}),a.on("finish",()=>{n.end()});let o=new Promise(A=>{n.on("finish",()=>{A(a.active)})});if(r)return[a,o];let l=new eF.miscUtils.BufferStream;return l.pipe(a,{end:!1}),l.on("finish",()=>{a.end()}),[l,o]}function rml(e,{configuration:t,commandIndex:r,label:n}){if(!n)return null;let o=`[${eF.structUtils.stringifyIdent(e.anchoredLocator)}]:`,l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[r%l.length];return eF.formatUtils.pretty(t,o,A)}});var cus=H(M_e=>{"use strict";Object.defineProperty(M_e,"__esModule",{value:!0});M_e.WorkspacesForeachCommand=M_e.WorkspacesFocusCommand=void 0;var sus=(Pa(),vi(Va)),ous=sus.__importDefault(tus());M_e.WorkspacesFocusCommand=ous.default;var aus=sus.__importDefault(ius());M_e.WorkspacesForeachCommand=aus.default;var nml={commands:[ous.default,aus.default]};M_e.default=nml});var uus=H(yxt=>{"use strict";Object.defineProperty(yxt,"__esModule",{value:!0});yxt.hasDefinitelyTyped=void 0;var iml=(Pa(),vi(Va)),lus=Bn(),sml=iml.__importDefault(LYr()),oml="e8e1bd300d860104bb8c58453ffa1eb4",aml="OFCNCOG2CU",cml=async(e,t)=>{let r=lus.structUtils.stringifyIdent(e),a=lml(t).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}};yxt.hasDefinitelyTyped=cml;var lml=e=>{let t={async send(r){try{let n=await lus.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:n.body,isTimedOut:!1,status:n.statusCode}}catch(n){return{content:n.response.body,isTimedOut:!1,status:n.response.statusCode}}}};return(0,sml.default)(aml,oml,{requester:t})}});var dus=H(i4r=>{"use strict";Object.defineProperty(i4r,"__esModule",{value:!0});var uml=(Pa(),vi(Va)),n4r=Bn(),u6=Bn(),lue=no(),gus=Axt(),gml=uml.__importDefault(UC()),Aml=uus(),Aus=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,dml=async(e,t,r,n)=>{if(r.scope==="types")return;let{project:a}=e,{configuration:o}=a;if(!(o.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(a.cwd,"tsconfig.json")))))return;let A=o.makeResolver(),f={project:a,resolver:A,report:new u6.ThrowReport};if(!await(0,Aml.hasDefinitelyTyped)(r,o))return;let C=Aus(r),b=u6.structUtils.parseRange(r.range).selector;if(!u6.semverUtils.validRange(b)){let Q=o.normalizeDependency(r),X=await A.getCandidates(Q,{},f);b=u6.structUtils.parseRange(X[0].reference).selector}let E=gml.default.coerce(b);if(E===null)return;let N=`${gus.suggestUtils.Modifier.CARET}${E.major}`,B=u6.structUtils.makeDescriptor(u6.structUtils.makeIdent("types",C),N),F=u6.miscUtils.mapAndFind(a.workspaces,Q=>{let X=Q.manifest.dependencies.get(r.identHash)?.descriptorHash,ae=Q.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(X!==r.descriptorHash&&ae!==r.descriptorHash)return u6.miscUtils.mapAndFind.skip;let ne=[];for(let ce of n4r.Manifest.allDependencies){let fe=Q.manifest[ce].get(B.identHash);typeof fe>"u"||ne.push([ce,fe])}return ne.length===0?u6.miscUtils.mapAndFind.skip:ne});if(typeof F<"u")for(let[Q,X]of F)e.manifest[Q].set(X.identHash,X);else{try{let Q=o.normalizeDependency(B);if((await A.getCandidates(Q,{},f)).length===0)return}catch{return}e.manifest[gus.suggestUtils.Target.DEVELOPMENT].set(B.identHash,B)}},pml=async(e,t,r)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n;if(!(a.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(n.cwd,"tsconfig.json")))))return;let l=Aus(r),A=u6.structUtils.makeIdent("types",l);for(let f of n4r.Manifest.allDependencies)typeof e.manifest[f].get(A.identHash)>"u"||e.manifest[f].delete(A.identHash)},fml=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},Iml={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:n4r.SettingsType.BOOLEAN,isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:dml,afterWorkspaceDependencyRemoval:pml,beforeWorkspacePacking:fml}};i4r.default=Iml});var pus=H(bxt=>{"use strict";Object.defineProperty(bxt,"__esModule",{value:!0});bxt.CATALOG_DESCRIPTOR_PREFIX=void 0;bxt.CATALOG_DESCRIPTOR_PREFIX="catalog:"});var hus=H(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});TH.resolveDescriptorFromCatalog=TH.getCatalogEntryName=TH.getCatalogName=TH.isCatalogReference=void 0;var H_e=Bn(),Ius=pus(),hml=e=>e.startsWith(Ius.CATALOG_DESCRIPTOR_PREFIX);TH.isCatalogReference=hml;var mml=e=>e.range.slice(Ius.CATALOG_DESCRIPTOR_PREFIX.length)||null;TH.getCatalogName=mml;var fus=e=>e===null?"default catalog":`catalog "${e}"`,Cml=e=>e.scope?`@${e.scope}/${e.name}`:e.name;TH.getCatalogEntryName=Cml;var _ml=(e,t,r,n)=>{let a=(0,TH.getCatalogName)(t),o;if(a===null)o=e.configuration.get("catalog");else try{let C=e.configuration.get("catalogs");C&&(o=C.get(a))}catch{o=void 0}if(!o||o.size===0)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: ${fus(a)} not found or empty`);let l=(0,TH.getCatalogEntryName)(t),A=o.get(l);if(!A)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: entry not found in ${fus(a)}`);let f=e.configuration.normalizeDependency(H_e.structUtils.makeDescriptor(t,A));return r.supportsDescriptor(f,n)?r.bindDescriptor(f,e.topLevelWorkspace.anchoredLocator,n):f};TH.resolveDescriptorFromCatalog=_ml});var mus=H(s4r=>{"use strict";Object.defineProperty(s4r,"__esModule",{value:!0});var RH=Bn(),Ext=hus(),yml={configuration:{catalog:{description:"The default catalog of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"The catalog of packages",type:RH.SettingsType.STRING}},catalogs:{description:"Named catalogs of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"A named catalog",type:RH.SettingsType.MAP,valueDefinition:{description:"Package version in the catalog",type:RH.SettingsType.STRING}}}},hooks:{beforeWorkspacePacking:(e,t)=>{let r=e.project,n=r.configuration.makeResolver(),a={project:r,resolver:n,report:new RH.ThrowReport};for(let o of RH.Manifest.allDependencies){let l=t[o];if(l)for(let[A,f]of Object.entries(l)){if(typeof f!="string"||!(0,Ext.isCatalogReference)(f))continue;let I=RH.structUtils.parseIdent(A),C=RH.structUtils.makeDescriptor(I,f),b=(0,Ext.resolveDescriptorFromCatalog)(r,C,n,a),{protocol:E,source:N,params:B,selector:F}=RH.structUtils.parseRange(RH.structUtils.convertToManifestRange(b.range));E===e.project.configuration.get("defaultProtocol")&&(E=null),l[A]=RH.structUtils.makeRange({protocol:E,source:N,params:B,selector:F})}}},reduceDependency:async(e,t,r,n,{resolver:a,resolveOptions:o})=>(0,Ext.isCatalogReference)(e.range)?(0,Ext.resolveDescriptorFromCatalog)(t,e,a,o):e}};s4r.default=yml});var Cus=H(Sxt=>{"use strict";Object.defineProperty(Sxt,"__esModule",{value:!0});Sxt.packageExtensions=void 0;var Wl={optional:!0};Sxt.packageExtensions=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Wl}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Wl,"postcss-jsx":Wl,"postcss-less":Wl,"postcss-markdown":Wl,"postcss-scss":Wl}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Wl}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Wl}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Wl,"vue-template-compiler":Wl}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Wl,"utf-8-validate":Wl}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl,"vuetify-loader":Wl}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Wl}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Wl}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Wl}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Wl,tinyliquid:Wl,"liquid-node":Wl,jade:Wl,"then-jade":Wl,dust:Wl,"dustjs-helpers":Wl,"dustjs-linkedin":Wl,swig:Wl,"swig-templates":Wl,"razor-tmpl":Wl,atpl:Wl,liquor:Wl,twig:Wl,ejs:Wl,eco:Wl,jazz:Wl,jqtpl:Wl,hamljs:Wl,hamlet:Wl,whiskers:Wl,"haml-coffee":Wl,"hogan.js":Wl,templayed:Wl,handlebars:Wl,underscore:Wl,lodash:Wl,pug:Wl,"then-pug":Wl,qejs:Wl,walrus:Wl,mustache:Wl,just:Wl,ect:Wl,mote:Wl,toffee:Wl,dot:Wl,"bracket-template":Wl,ractive:Wl,nunjucks:Wl,htmling:Wl,"babel-core":Wl,plates:Wl,"react-dom":Wl,react:Wl,"arc-templates":Wl,vash:Wl,slm:Wl,marko:Wl,teacup:Wl,"coffee-script":Wl,squirrelly:Wl,twing:Wl}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl,vue:Wl}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Wl}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Wl}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(e=>[e,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Wl,"webpack-command":Wl}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Wl}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Wl}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Wl,jimp:Wl}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Wl,"eslint-import-resolver-typescript":Wl,"eslint-import-resolver-webpack":Wl,"@typescript-eslint/parser":Wl}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Wl}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Wl}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Wl}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Wl}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Wl}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Wl}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Wl}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Wl}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Wl}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]]});var _us=H(vxt=>{"use strict";Object.defineProperty(vxt,"__esModule",{value:!0});vxt.packageExtensions=void 0;var bml=Cus();Object.defineProperty(vxt,"packageExtensions",{enumerable:!0,get:function(){return bml.packageExtensions}})});var yus=H(a4r=>{"use strict";Object.defineProperty(a4r,"__esModule",{value:!0});a4r.getPatch=Eml;var o4r;function Eml(){return typeof o4r>"u"&&(o4r=wt("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),o4r}});var bus=H(l4r=>{"use strict";Object.defineProperty(l4r,"__esModule",{value:!0});l4r.getPatch=Sml;var c4r;function Sml(){return typeof c4r>"u"&&(c4r=wt("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),c4r}});var Eus=H(g4r=>{"use strict";Object.defineProperty(g4r,"__esModule",{value:!0});g4r.getPatch=vml;var u4r;function vml(){return typeof u4r>"u"&&(u4r=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),u4r}});var vus=H(A4r=>{"use strict";Object.defineProperty(A4r,"__esModule",{value:!0});var Dte=Bn(),Bml=_us(),wml=yus(),Tml=bus(),Rml=Eus(),Sus=new Map([[Dte.structUtils.makeIdent(null,"fsevents").identHash,wml.getPatch],[Dte.structUtils.makeIdent(null,"resolve").identHash,Tml.getPatch],[Dte.structUtils.makeIdent(null,"typescript").identHash,Rml.getPatch]]),Nml={hooks:{registerPackageExtensions:async(e,t)=>{for(let[r,n]of Bml.packageExtensions)t(Dte.structUtils.parseDescriptor(r,!0),n)},getBuiltinPatch:async(e,t)=>{let r="compat/";if(!t.startsWith(r))return;let n=Dte.structUtils.parseIdent(t.slice(r.length)),a=Sus.get(n.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(e,t,r,n)=>typeof Sus.get(e.identHash)>"u"?e:Dte.structUtils.makeDescriptor(e,Dte.structUtils.makeRange({protocol:"patch:",source:Dte.structUtils.stringifyDescriptor(e),selector:`optional!builtin`,params:null}))}};A4r.default=Nml});var F6e=H(Y_e=>{"use strict";Object.defineProperty(Y_e,"__esModule",{value:!0});Y_e.Index=void 0;Y_e.normalizePath=Fml;Y_e.applyEngineReport=Lml;Y_e.convertReportToRoot=Vml;var Tm=Bn(),Bxt=kW(),d4r=class{constructor(t){this.indexedFields=t,this.items=[],this.indexes={},this.clear()}clear(){this.items=[];for(let t of this.indexedFields)this.indexes[t]=new Map}insert(t){this.items.push(t);for(let r of this.indexedFields){let n=Object.hasOwn(t,r)?t[r]:void 0;if(typeof n>"u")continue;Tm.miscUtils.getArrayWithDefault(this.indexes[r],n).push(t)}return t}find(t){if(typeof t>"u")return this.items;let r=Object.entries(t);if(r.length===0)return this.items;let n=[],a;for(let[l,A]of r){let f=l,I=Object.hasOwn(this.indexes,f)?this.indexes[f]:void 0;if(typeof I>"u"){n.push([f,A]);continue}let C=new Set(I.get(A)??[]);if(C.size===0)return[];if(typeof a>"u")a=C;else for(let b of a)C.has(b)||a.delete(b);if(a.size===0)break}let o=[...a??[]];return n.length>0&&(o=o.filter(l=>{for(let[A,f]of n)if(!(typeof f<"u"?Object.hasOwn(l,A)&&l[A]===f:Object.hasOwn(l,A)===!1))return!1;return!0})),o}};Y_e.Index=d4r;var Dml=/^[0-9]+$/,kml=/^[a-zA-Z0-9_]+$/,xml=new Set(["scripts",...Tm.Manifest.allDependencies]);function Gml(e,t){return t===1&&xml.has(e[0])}function Fml(e){let t=Array.isArray(e)?e:(0,Bxt.toPath)(e);return t.map((n,a)=>Dml.test(n)?`[${n}]`:kml.test(n)&&!Gml(t,a)?`.${n}`:`[${JSON.stringify(n)}]`).join("").replace(/^\./,"")}function Zml(e,t){let r=[];if(t.methodName!==null&&r.push(Tm.formatUtils.pretty(e,t.methodName,Tm.formatUtils.Type.CODE)),t.file!==null){let n=[];n.push(Tm.formatUtils.pretty(e,t.file,Tm.formatUtils.Type.PATH)),t.line!==null&&(n.push(Tm.formatUtils.pretty(e,t.line,Tm.formatUtils.Type.NUMBER)),t.column!==null&&n.push(Tm.formatUtils.pretty(e,t.column,Tm.formatUtils.Type.NUMBER))),r.push(`(${n.join(Tm.formatUtils.pretty(e,":","grey"))})`)}return r.join(" ")}function Lml(e,{manifestUpdates:t,reportedErrors:r},{fix:n}={}){let a=new Map,o=new Map,l=[...r.keys()].map(A=>[A,new Map]);for(let[A,f]of[...l,...t]){let I=r.get(A)?.map(N=>({text:N,fixable:!1}))??[],C=!1,b=e.getWorkspaceByCwd(A),E=b.manifest.exportTo({});for(let[N,B]of f){if(B.size>1){let F=[...B].map(([Q,X])=>{let ae=Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT),ne=X.size>0?Zml(e.configuration,X.values().next().value):null;return ne!==null?` + ${eF.structUtils.prettyLocator(t,Se.anchoredLocator)}`);let C=[],b=!1;if(o?.includes(":")){for(let Se of r.workspaces)if(Se.manifest.scripts.has(o)&&(b=!b,b===!1))break}for(let Se of f){if(o&&!Se.manifest.scripts.has(o)&&!b&&!(await e4r.scriptUtils.getWorkspaceAccessibleBinaries(Se)).has(o)){l(`Excluding ${Se.relativeCwd} because it doesn't have a "${o}" script`);continue}if(!(o===t.env.npm_lifecycle_event&&Se.cwd===n.cwd)){if(this.include.length>0&&!G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.include)&&!G6e.default.isMatch(Se.relativeCwd,this.include)){l(`Excluding ${Se.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(G6e.default.isMatch(eF.structUtils.stringifyIdent(Se.anchoredLocator),this.exclude)||G6e.default.isMatch(Se.relativeCwd,this.exclude))){l(`Excluding ${Se.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Se.manifest.private===!0){l(`Excluding ${Se.relativeCwd} because it's a private workspace and --no-private was set`);continue}C.push(Se)}}if(C.sort((Se,De)=>eF.structUtils.stringifyIdent(Se.anchoredLocator).localeCompare(eF.structUtils.stringifyIdent(De.anchoredLocator))),this.dryRun)return 0;let E=this.verbose??(this.context.stdout.isTTY?1/0:0),N=E>0,B=E>1,F=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(eF.nodeUtils.availableParallelism()/2):1,Q=F===1?!1:this.parallel,X=Q?this.interlaced:!0,ae=(0,rml.default)(F),ne=new Map,ce=new Set,fe=0,ue=null,de=!1,be=await _xt.StreamReport.start({configuration:t,stdout:this.context.stdout,includePrefix:!1},async Se=>{let De=async(k,{commandIndex:et})=>{if(de)return-1;!Q&&B&&et>1&&Se.reportSeparator();let ct=nml(k,{configuration:t,label:N,commandIndex:et}),[Me,je]=nus(Se,{prefix:ct,interlaced:X}),[St,At]=nus(Se,{prefix:ct,interlaced:X});try{B&&Se.reportInfo(null,`${ct?`${ct} `:""}Process started`);let Yt=Date.now(),Tr=await this.cli.run([this.commandName,...this.args],{cwd:k.cwd,stdout:Me,stderr:St})||0;Me.end(),St.end(),await je,await At;let Nr=Date.now();if(B){let er=t.get("enableTimers")?`, completed in ${eF.formatUtils.pretty(t,Nr-Yt,eF.formatUtils.Type.DURATION)}`:"";Se.reportInfo(null,`${ct?`${ct} `:""}Process exited (exit code ${Tr})${er}`)}return Tr===130&&(de=!0,ue=Tr),Tr}catch(Yt){throw Me.end(),St.end(),await je,await At,Yt}};for(let k of C)ne.set(k.anchoredLocator.locatorHash,k);for(;ne.size>0&&!Se.hasErrors();){let k=[];for(let[je,St]of ne){if(ce.has(St.anchoredDescriptor.descriptorHash))continue;let At=!0;if(this.topological||this.topologicalDev){let Yt=this.topologicalDev?new Map([...St.manifest.dependencies,...St.manifest.devDependencies]):St.manifest.dependencies;for(let Tr of Yt.values()){let Nr=r.tryWorkspaceByDescriptor(Tr);if(At=Nr===null||!ne.has(Nr.anchoredLocator.locatorHash),!At)break}}if(At&&(ce.add(St.anchoredDescriptor.descriptorHash),k.push(ae(async()=>{let Yt=await De(St,{commandIndex:++fe});return ne.delete(je),ce.delete(St.anchoredDescriptor.descriptorHash),{workspace:St,exitCode:Yt}})),!Q))break}if(k.length===0){let je=Array.from(ne.values()).map(St=>eF.structUtils.prettyLocator(t,St.anchoredLocator)).join(", ");Se.reportError(_xt.MessageName.CYCLIC_DEPENDENCIES,`Dependency cycle detected (${je})`);return}let et=await Promise.all(k);et.forEach(({workspace:je,exitCode:St})=>{St!==0&&Se.reportError(_xt.MessageName.UNNAMED,`The command failed in workspace ${eF.structUtils.prettyLocator(t,je.anchoredLocator)} with exit code ${St}`)});let Me=et.map(je=>je.exitCode).find(je=>je!==0);(this.topological||this.topologicalDev)&&typeof Me<"u"&&Se.reportError(_xt.MessageName.UNNAMED,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return ue!==null?ue:be.exitCode()}};nGe.paths=[["workspaces","foreach"]];nGe.usage=MR.Command.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. You can also use the `--no-private` flag to avoid running the command in private workspaces.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A --no-private npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]});nGe.schema=[Nte.hasKeyRelationship("all",Nte.KeyRelationship.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),Nte.hasAtLeastOneKey(["all","recursive","since","worktree"],{missingIf:"undefined"})];r4r.default=nGe;function nus(e,{prefix:t,interlaced:r}){let n=e.createStreamReporter(t),a=new eF.miscUtils.DefaultStream;a.pipe(n,{end:!1}),a.on("finish",()=>{n.end()});let o=new Promise(A=>{n.on("finish",()=>{A(a.active)})});if(r)return[a,o];let l=new eF.miscUtils.BufferStream;return l.pipe(a,{end:!1}),l.on("finish",()=>{a.end()}),[l,o]}function nml(e,{configuration:t,commandIndex:r,label:n}){if(!n)return null;let o=`[${eF.structUtils.stringifyIdent(e.anchoredLocator)}]:`,l=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=l[r%l.length];return eF.formatUtils.pretty(t,o,A)}});var cus=H(M_e=>{"use strict";Object.defineProperty(M_e,"__esModule",{value:!0});M_e.WorkspacesForeachCommand=M_e.WorkspacesFocusCommand=void 0;var sus=(Pa(),vi(Va)),ous=sus.__importDefault(tus());M_e.WorkspacesFocusCommand=ous.default;var aus=sus.__importDefault(ius());M_e.WorkspacesForeachCommand=aus.default;var iml={commands:[ous.default,aus.default]};M_e.default=iml});var uus=H(yxt=>{"use strict";Object.defineProperty(yxt,"__esModule",{value:!0});yxt.hasDefinitelyTyped=void 0;var sml=(Pa(),vi(Va)),lus=Bn(),oml=sml.__importDefault(LYr()),aml="e8e1bd300d860104bb8c58453ffa1eb4",cml="OFCNCOG2CU",lml=async(e,t)=>{let r=lus.structUtils.stringifyIdent(e),a=uml(t).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}};yxt.hasDefinitelyTyped=lml;var uml=e=>{let t={async send(r){try{let n=await lus.httpUtils.request(r.url,r.data||null,{configuration:e,headers:r.headers});return{content:n.body,isTimedOut:!1,status:n.statusCode}}catch(n){return{content:n.response.body,isTimedOut:!1,status:n.response.statusCode}}}};return(0,oml.default)(cml,aml,{requester:t})}});var dus=H(i4r=>{"use strict";Object.defineProperty(i4r,"__esModule",{value:!0});var gml=(Pa(),vi(Va)),n4r=Bn(),u6=Bn(),lue=no(),gus=Axt(),Aml=gml.__importDefault(UC()),dml=uus(),Aus=e=>e.scope?`${e.scope}__${e.name}`:`${e.name}`,pml=async(e,t,r,n)=>{if(r.scope==="types")return;let{project:a}=e,{configuration:o}=a;if(!(o.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(a.cwd,"tsconfig.json")))))return;let A=o.makeResolver(),f={project:a,resolver:A,report:new u6.ThrowReport};if(!await(0,dml.hasDefinitelyTyped)(r,o))return;let C=Aus(r),b=u6.structUtils.parseRange(r.range).selector;if(!u6.semverUtils.validRange(b)){let Q=o.normalizeDependency(r),X=await A.getCandidates(Q,{},f);b=u6.structUtils.parseRange(X[0].reference).selector}let E=Aml.default.coerce(b);if(E===null)return;let N=`${gus.suggestUtils.Modifier.CARET}${E.major}`,B=u6.structUtils.makeDescriptor(u6.structUtils.makeIdent("types",C),N),F=u6.miscUtils.mapAndFind(a.workspaces,Q=>{let X=Q.manifest.dependencies.get(r.identHash)?.descriptorHash,ae=Q.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(X!==r.descriptorHash&&ae!==r.descriptorHash)return u6.miscUtils.mapAndFind.skip;let ne=[];for(let ce of n4r.Manifest.allDependencies){let fe=Q.manifest[ce].get(B.identHash);typeof fe>"u"||ne.push([ce,fe])}return ne.length===0?u6.miscUtils.mapAndFind.skip:ne});if(typeof F<"u")for(let[Q,X]of F)e.manifest[Q].set(X.identHash,X);else{try{let Q=o.normalizeDependency(B);if((await A.getCandidates(Q,{},f)).length===0)return}catch{return}e.manifest[gus.suggestUtils.Target.DEVELOPMENT].set(B.identHash,B)}},fml=async(e,t,r)=>{if(r.scope==="types")return;let{project:n}=e,{configuration:a}=n;if(!(a.get("tsEnableAutoTypes")??(lue.xfs.existsSync(lue.ppath.join(e.cwd,"tsconfig.json"))||lue.xfs.existsSync(lue.ppath.join(n.cwd,"tsconfig.json")))))return;let l=Aus(r),A=u6.structUtils.makeIdent("types",l);for(let f of n4r.Manifest.allDependencies)typeof e.manifest[f].get(A.identHash)>"u"||e.manifest[f].delete(A.identHash)},Iml=(e,t)=>{t.publishConfig&&t.publishConfig.typings&&(t.typings=t.publishConfig.typings),t.publishConfig&&t.publishConfig.types&&(t.types=t.publishConfig.types)},hml={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:n4r.SettingsType.BOOLEAN,isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:pml,afterWorkspaceDependencyRemoval:fml,beforeWorkspacePacking:Iml}};i4r.default=hml});var pus=H(bxt=>{"use strict";Object.defineProperty(bxt,"__esModule",{value:!0});bxt.CATALOG_DESCRIPTOR_PREFIX=void 0;bxt.CATALOG_DESCRIPTOR_PREFIX="catalog:"});var hus=H(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});TH.resolveDescriptorFromCatalog=TH.getCatalogEntryName=TH.getCatalogName=TH.isCatalogReference=void 0;var H_e=Bn(),Ius=pus(),mml=e=>e.startsWith(Ius.CATALOG_DESCRIPTOR_PREFIX);TH.isCatalogReference=mml;var Cml=e=>e.range.slice(Ius.CATALOG_DESCRIPTOR_PREFIX.length)||null;TH.getCatalogName=Cml;var fus=e=>e===null?"default catalog":`catalog "${e}"`,_ml=e=>e.scope?`@${e.scope}/${e.name}`:e.name;TH.getCatalogEntryName=_ml;var yml=(e,t,r,n)=>{let a=(0,TH.getCatalogName)(t),o;if(a===null)o=e.configuration.get("catalog");else try{let C=e.configuration.get("catalogs");C&&(o=C.get(a))}catch{o=void 0}if(!o||o.size===0)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: ${fus(a)} not found or empty`);let l=(0,TH.getCatalogEntryName)(t),A=o.get(l);if(!A)throw new H_e.ReportError(H_e.MessageName.RESOLUTION_FAILED,`${H_e.structUtils.prettyDescriptor(e.configuration,t)}: entry not found in ${fus(a)}`);let f=e.configuration.normalizeDependency(H_e.structUtils.makeDescriptor(t,A));return r.supportsDescriptor(f,n)?r.bindDescriptor(f,e.topLevelWorkspace.anchoredLocator,n):f};TH.resolveDescriptorFromCatalog=yml});var mus=H(s4r=>{"use strict";Object.defineProperty(s4r,"__esModule",{value:!0});var RH=Bn(),Ext=hus(),bml={configuration:{catalog:{description:"The default catalog of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"The catalog of packages",type:RH.SettingsType.STRING}},catalogs:{description:"Named catalogs of packages",type:RH.SettingsType.MAP,valueDefinition:{description:"A named catalog",type:RH.SettingsType.MAP,valueDefinition:{description:"Package version in the catalog",type:RH.SettingsType.STRING}}}},hooks:{beforeWorkspacePacking:(e,t)=>{let r=e.project,n=r.configuration.makeResolver(),a={project:r,resolver:n,report:new RH.ThrowReport};for(let o of RH.Manifest.allDependencies){let l=t[o];if(l)for(let[A,f]of Object.entries(l)){if(typeof f!="string"||!(0,Ext.isCatalogReference)(f))continue;let I=RH.structUtils.parseIdent(A),C=RH.structUtils.makeDescriptor(I,f),b=(0,Ext.resolveDescriptorFromCatalog)(r,C,n,a),{protocol:E,source:N,params:B,selector:F}=RH.structUtils.parseRange(RH.structUtils.convertToManifestRange(b.range));E===e.project.configuration.get("defaultProtocol")&&(E=null),l[A]=RH.structUtils.makeRange({protocol:E,source:N,params:B,selector:F})}}},reduceDependency:async(e,t,r,n,{resolver:a,resolveOptions:o})=>(0,Ext.isCatalogReference)(e.range)?(0,Ext.resolveDescriptorFromCatalog)(t,e,a,o):e}};s4r.default=bml});var Cus=H(Sxt=>{"use strict";Object.defineProperty(Sxt,"__esModule",{value:!0});Sxt.packageExtensions=void 0;var Wl={optional:!0};Sxt.packageExtensions=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Wl,zenObservable:Wl}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":Wl}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":Wl,"postcss-jsx":Wl,"postcss-less":Wl,"postcss-markdown":Wl,"postcss-scss":Wl}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Wl}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Wl}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Wl,"vue-template-compiler":Wl}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Wl,"utf-8-validate":Wl}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl,"vuetify-loader":Wl}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Wl}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Wl}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Wl}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:Wl}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Wl,tinyliquid:Wl,"liquid-node":Wl,jade:Wl,"then-jade":Wl,dust:Wl,"dustjs-helpers":Wl,"dustjs-linkedin":Wl,swig:Wl,"swig-templates":Wl,"razor-tmpl":Wl,atpl:Wl,liquor:Wl,twig:Wl,ejs:Wl,eco:Wl,jazz:Wl,jqtpl:Wl,hamljs:Wl,hamlet:Wl,whiskers:Wl,"haml-coffee":Wl,"hogan.js":Wl,templayed:Wl,handlebars:Wl,underscore:Wl,lodash:Wl,pug:Wl,"then-pug":Wl,qejs:Wl,walrus:Wl,mustache:Wl,just:Wl,ect:Wl,mote:Wl,toffee:Wl,dot:Wl,"bracket-template":Wl,ractive:Wl,nunjucks:Wl,htmling:Wl,"babel-core":Wl,plates:Wl,"react-dom":Wl,react:Wl,"arc-templates":Wl,vash:Wl,slm:Wl,marko:Wl,teacup:Wl,"coffee-script":Wl,squirrelly:Wl,twing:Wl}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":Wl,vue:Wl}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Wl}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Wl}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(e=>[e,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Wl,"webpack-command":Wl}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Wl}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Wl}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:Wl,jimp:Wl}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":Wl,"eslint-import-resolver-typescript":Wl,"eslint-import-resolver-webpack":Wl,"@typescript-eslint/parser":Wl}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":Wl}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":Wl}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:Wl}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:Wl}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":Wl}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:Wl}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:Wl}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:Wl}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":Wl}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}],["@fastify/type-provider-typebox@^5.0.0",{peerDependencies:{fastify:"^5.0.0"}}],["@fastify/type-provider-typebox@^4.0.0",{peerDependencies:{fastify:"^4.0.0"}}]]});var _us=H(vxt=>{"use strict";Object.defineProperty(vxt,"__esModule",{value:!0});vxt.packageExtensions=void 0;var Eml=Cus();Object.defineProperty(vxt,"packageExtensions",{enumerable:!0,get:function(){return Eml.packageExtensions}})});var yus=H(a4r=>{"use strict";Object.defineProperty(a4r,"__esModule",{value:!0});a4r.getPatch=Sml;var o4r;function Sml(){return typeof o4r>"u"&&(o4r=wt("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),o4r}});var bus=H(l4r=>{"use strict";Object.defineProperty(l4r,"__esModule",{value:!0});l4r.getPatch=vml;var c4r;function vml(){return typeof c4r>"u"&&(c4r=wt("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),c4r}});var Eus=H(g4r=>{"use strict";Object.defineProperty(g4r,"__esModule",{value:!0});g4r.getPatch=Bml;var u4r;function Bml(){return typeof u4r>"u"&&(u4r=wt("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),u4r}});var vus=H(A4r=>{"use strict";Object.defineProperty(A4r,"__esModule",{value:!0});var Dte=Bn(),wml=_us(),Tml=yus(),Rml=bus(),Nml=Eus(),Sus=new Map([[Dte.structUtils.makeIdent(null,"fsevents").identHash,Tml.getPatch],[Dte.structUtils.makeIdent(null,"resolve").identHash,Rml.getPatch],[Dte.structUtils.makeIdent(null,"typescript").identHash,Nml.getPatch]]),Dml={hooks:{registerPackageExtensions:async(e,t)=>{for(let[r,n]of wml.packageExtensions)t(Dte.structUtils.parseDescriptor(r,!0),n)},getBuiltinPatch:async(e,t)=>{let r="compat/";if(!t.startsWith(r))return;let n=Dte.structUtils.parseIdent(t.slice(r.length)),a=Sus.get(n.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(e,t,r,n)=>typeof Sus.get(e.identHash)>"u"?e:Dte.structUtils.makeDescriptor(e,Dte.structUtils.makeRange({protocol:"patch:",source:Dte.structUtils.stringifyDescriptor(e),selector:`optional!builtin`,params:null}))}};A4r.default=Dml});var F6e=H(Y_e=>{"use strict";Object.defineProperty(Y_e,"__esModule",{value:!0});Y_e.Index=void 0;Y_e.normalizePath=Zml;Y_e.applyEngineReport=Vml;Y_e.convertReportToRoot=Pml;var Tm=Bn(),Bxt=kW(),d4r=class{constructor(t){this.indexedFields=t,this.items=[],this.indexes={},this.clear()}clear(){this.items=[];for(let t of this.indexedFields)this.indexes[t]=new Map}insert(t){this.items.push(t);for(let r of this.indexedFields){let n=Object.hasOwn(t,r)?t[r]:void 0;if(typeof n>"u")continue;Tm.miscUtils.getArrayWithDefault(this.indexes[r],n).push(t)}return t}find(t){if(typeof t>"u")return this.items;let r=Object.entries(t);if(r.length===0)return this.items;let n=[],a;for(let[l,A]of r){let f=l,I=Object.hasOwn(this.indexes,f)?this.indexes[f]:void 0;if(typeof I>"u"){n.push([f,A]);continue}let C=new Set(I.get(A)??[]);if(C.size===0)return[];if(typeof a>"u")a=C;else for(let b of a)C.has(b)||a.delete(b);if(a.size===0)break}let o=[...a??[]];return n.length>0&&(o=o.filter(l=>{for(let[A,f]of n)if(!(typeof f<"u"?Object.hasOwn(l,A)&&l[A]===f:Object.hasOwn(l,A)===!1))return!1;return!0})),o}};Y_e.Index=d4r;var kml=/^[0-9]+$/,xml=/^[a-zA-Z0-9_]+$/,Gml=new Set(["scripts",...Tm.Manifest.allDependencies]);function Fml(e,t){return t===1&&Gml.has(e[0])}function Zml(e){let t=Array.isArray(e)?e:(0,Bxt.toPath)(e);return t.map((n,a)=>kml.test(n)?`[${n}]`:xml.test(n)&&!Fml(t,a)?`.${n}`:`[${JSON.stringify(n)}]`).join("").replace(/^\./,"")}function Lml(e,t){let r=[];if(t.methodName!==null&&r.push(Tm.formatUtils.pretty(e,t.methodName,Tm.formatUtils.Type.CODE)),t.file!==null){let n=[];n.push(Tm.formatUtils.pretty(e,t.file,Tm.formatUtils.Type.PATH)),t.line!==null&&(n.push(Tm.formatUtils.pretty(e,t.line,Tm.formatUtils.Type.NUMBER)),t.column!==null&&n.push(Tm.formatUtils.pretty(e,t.column,Tm.formatUtils.Type.NUMBER))),r.push(`(${n.join(Tm.formatUtils.pretty(e,":","grey"))})`)}return r.join(" ")}function Vml(e,{manifestUpdates:t,reportedErrors:r},{fix:n}={}){let a=new Map,o=new Map,l=[...r.keys()].map(A=>[A,new Map]);for(let[A,f]of[...l,...t]){let I=r.get(A)?.map(N=>({text:N,fixable:!1}))??[],C=!1,b=e.getWorkspaceByCwd(A),E=b.manifest.exportTo({});for(let[N,B]of f){if(B.size>1){let F=[...B].map(([Q,X])=>{let ae=Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT),ne=X.size>0?Lml(e.configuration,X.values().next().value):null;return ne!==null?` ${ae} at ${ne}`:` -${ae}`}).join("");I.push({text:`Conflict detected in constraint targeting ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; conflicting values are:${F}`,fixable:!1})}else{let[[F]]=B,Q=(0,Bxt.get)(E,N);if(JSON.stringify(Q)===JSON.stringify(F))continue;if(!n){let X=typeof Q>"u"?`Missing field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}`:typeof F>"u"?`Extraneous field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)} currently set to ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`:`Invalid field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}, found ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`;I.push({text:X,fixable:!0});continue}typeof F>"u"?(0,Bxt.unset)(E,N):(0,Bxt.set)(E,N,F),C=!0}C&&a.set(b,E)}I.length>0&&o.set(b,I)}return{changedWorkspaces:a,remainingErrors:o}}function Vml(e,{configuration:t}){let r={children:[]};for(let[n,a]of e){let o=[];for(let A of a){let f=A.text.split(/\n/);A.fixable&&(f[0]=`${Tm.formatUtils.pretty(t,"\u2699","gray")} ${f[0]}`),o.push({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,f[0]),children:f.slice(1).map(I=>({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,I)}))})}let l={value:Tm.formatUtils.tuple(Tm.formatUtils.Type.LOCATOR,n.anchoredLocator),children:Tm.miscUtils.sortMap(o,A=>A.value[1])};r.children.push(l)}return r.children=Tm.miscUtils.sortMap(r.children,n=>n.value[1]),r}});var f4r=H(Txt=>{"use strict";Object.defineProperty(Txt,"__esModule",{value:!0});Txt.ModernEngine=void 0;var Pml=(Pa(),vi(Va)),YV=Bn(),wxt=Pml.__importStar(F6e()),p4r=class{constructor(t){this.project=t}createEnvironment(){let t=new wxt.Index(["cwd","ident"]),r=new wxt.Index(["workspace","type","ident"]),n=new wxt.Index(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},o=new Map,l=new Map;for(let A of this.project.storedPackages.values()){let f=Array.from(A.peerDependencies.values(),I=>[YV.structUtils.stringifyIdent(I),I.range]);o.set(A.locatorHash,{workspace:null,ident:YV.structUtils.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional!==!0)),optionalPeerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let f=o.get(A.locatorHash);f.dependencies=new Map(Array.from(A.dependencies.values(),I=>{let C=this.project.storedResolutions.get(I.descriptorHash);if(typeof C>"u")throw new Error("Assertion failed: The resolution should have been registered");let b=o.get(C);if(typeof b>"u")throw new Error("Assertion failed: The package should have been registered");return[YV.structUtils.stringifyIdent(I),b]})),f.dependencies.delete(f.ident)}for(let A of this.project.workspaces){let f=YV.structUtils.stringifyIdent(A.anchoredLocator),I=A.manifest.exportTo({}),C=o.get(A.anchoredLocator.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");let b=(F,Q,{caller:X=YV.nodeUtils.getCaller()}={})=>{let ae=wxt.normalizePath(F),ne=YV.miscUtils.getMapWithDefault(a.manifestUpdates,A.cwd),ce=YV.miscUtils.getMapWithDefault(ne,ae),fe=YV.miscUtils.getSetWithDefault(ce,Q);X!==null&&fe.add(X)},E=F=>b(F,void 0,{caller:YV.nodeUtils.getCaller()}),N=F=>{YV.miscUtils.getArrayWithDefault(a.reportedErrors,A.cwd).push(F)},B=t.insert({cwd:A.relativeCwd,ident:f,manifest:I,pkg:C,set:b,unset:E,error:N});l.set(A,B);for(let F of YV.Manifest.allDependencies)for(let Q of A.manifest[F].values()){let X=YV.structUtils.stringifyIdent(Q),ae=()=>{b([F,X],void 0,{caller:YV.nodeUtils.getCaller()})},ne=fe=>{b([F,X],fe,{caller:YV.nodeUtils.getCaller()})},ce=null;if(F!=="peerDependencies"&&(F!=="dependencies"||!A.manifest.devDependencies.has(Q.identHash))){let fe=A.anchoredPackage.dependencies.get(Q.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let de=o.get(ue);if(typeof de>"u")throw new Error("Assertion failed: The package should have been registered");ce=de}}r.insert({workspace:B,ident:X,range:Q.range,type:F,resolution:ce,update:ne,delete:ae,error:N})}}for(let A of this.project.storedPackages.values()){let f=this.project.tryWorkspaceByLocator(A);if(!f)continue;let I=l.get(f);if(typeof I>"u")throw new Error("Assertion failed: The workspace should have been registered");let C=o.get(A.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");C.workspace=I}return{workspaces:t,dependencies:r,packages:n,result:a}}async process(){let t=this.createEnvironment(),r={Yarn:{workspace:a=>t.workspaces.find(a)[0]??null,workspaces:a=>t.workspaces.find(a),dependency:a=>t.dependencies.find(a)[0]??null,dependencies:a=>t.dependencies.find(a),package:a=>t.packages.find(a)[0]??null,packages:a=>t.packages.find(a)}},n=await this.project.loadUserConfig();return n?.constraints?(await n.constraints(r),t.result):null}};Txt.ModernEngine=p4r});var Bus=H((wtg,I4r)=>{var Wml;(function(e){var t=function(){return{"append/2":[new e.type.Rule(new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("L")]),new e.type.Term("foldl",[new e.type.Term("append",[]),new e.type.Var("X"),new e.type.Term("[]",[]),new e.type.Var("L")]))],"append/3":[new e.type.Rule(new e.type.Term("append",[new e.type.Term("[]",[]),new e.type.Var("X"),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("append",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("append",[new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("S")]))],"member/2":[new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("_")])]),null),new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")])]),new e.type.Term("member",[new e.type.Var("X"),new e.type.Var("Xs")]))],"permutation/2":[new e.type.Rule(new e.type.Term("permutation",[new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("permutation",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("permutation",[new e.type.Var("T"),new e.type.Var("P")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("P")]),new e.type.Term("append",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("Y")]),new e.type.Var("S")])])]))],"maplist/2":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("X")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("Xs")])]))],"maplist/3":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs")])]))],"maplist/4":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs")])]))],"maplist/5":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds")])]))],"maplist/6":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es")])]))],"maplist/7":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs")])]))],"maplist/8":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")]),new e.type.Term(".",[new e.type.Var("G"),new e.type.Var("Gs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F"),new e.type.Var("G")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs"),new e.type.Var("Gs")])]))],"include/3":[new e.type.Rule(new e.type.Term("include",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("include",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("A")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("A"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("F"),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("F")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("L"),new e.type.Var("S")])]),new e.type.Term("include",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("S")])])])])]))],"exclude/3":[new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("E")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("Q")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("R"),new e.type.Var("Q")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("!",[]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("E")])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("E")])])])])])])]))],"foldl/4":[new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Var("I"),new e.type.Var("I")]),null),new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("I"),new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("I"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])])])]),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P2"),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P2")]),new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("R")])])])])]))],"select/3":[new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Xs")]),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term("select",[new e.type.Var("E"),new e.type.Var("Xs"),new e.type.Var("Ys")]))],"sum_list/2":[new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term("[]",[]),new e.type.Num(0,!1)]),null),new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("sum_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("+",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"max_list/2":[new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("max_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"min_list/2":[new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("min_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("=<",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"prod_list/2":[new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term("[]",[]),new e.type.Num(1,!1)]),null),new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("prod_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("*",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"last/2":[new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")]),new e.type.Var("X")]),new e.type.Term("last",[new e.type.Var("Xs"),new e.type.Var("X")]))],"prefix/2":[new e.type.Rule(new e.type.Term("prefix",[new e.type.Var("Part"),new e.type.Var("Whole")]),new e.type.Term("append",[new e.type.Var("Part"),new e.type.Var("_"),new e.type.Var("Whole")]))],"nth0/3":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth1/3":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth0/4":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth1/4":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth/5":[new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("N"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("X"),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("O"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("Y"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term(",",[new e.type.Term("is",[new e.type.Var("M"),new e.type.Term("+",[new e.type.Var("N"),new e.type.Num(1,!1)])]),new e.type.Term("nth",[new e.type.Var("M"),new e.type.Var("O"),new e.type.Var("Xs"),new e.type.Var("Y"),new e.type.Var("Ys")])]))],"length/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(!e.type.is_variable(A)&&!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(e.type.is_integer(A)&&A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else{var f=new e.type.Term("length",[l,new e.type.Num(0,!1),A]);e.type.is_integer(A)&&(f=new e.type.Term(",",[f,new e.type.Term("!",[])])),n.prepend([new e.type.State(a.goal.replace(f),a.substitution,a)])}},"length/3":[new e.type.Rule(new e.type.Term("length",[new e.type.Term("[]",[]),new e.type.Var("N"),new e.type.Var("N")]),null),new e.type.Rule(new e.type.Term("length",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("X")]),new e.type.Var("A"),new e.type.Var("N")]),new e.type.Term(",",[new e.type.Term("succ",[new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("length",[new e.type.Var("X"),new e.type.Var("B"),new e.type.Var("N")])]))],"replicate/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=new e.type.Term("[]"),C=0;C0;b--)C[b].equals(C[b-1])&&C.splice(b,1);for(var E=new e.type.Term("[]"),b=C.length-1;b>=0;b--)E=new e.type.Term(".",[C[b],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"msort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I=l;I.indicator==="./2";)f.push(I.args[0]),I=I.args[1];if(e.type.is_variable(I))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(I))n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=f.sort(e.compare),b=new e.type.Term("[]"),E=C.length-1;E>=0;E--)b=new e.type.Term(".",[C[E],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,A])),a.substitution,a)])}}},"keysort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I,C=l;C.indicator==="./2";){if(I=C.args[0],e.type.is_variable(I)){n.throw_error(e.error.instantiation(o.indicator));return}else if(!e.type.is_term(I)||I.indicator!=="-/2"){n.throw_error(e.error.type("pair",I,o.indicator));return}I.args[0].pair=I.args[1],f.push(I.args[0]),C=C.args[1]}if(e.type.is_variable(C))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(C))n.throw_error(e.error.type("list",l,o.indicator));else{for(var b=f.sort(e.compare),E=new e.type.Term("[]"),N=b.length-1;N>=0;N--)E=new e.type.Term(".",[new e.type.Term("-",[b[N],b[N].pair]),E]),delete b[N].pair;n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"take/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;if(I===0){for(var E=new e.type.Term("[]"),I=C.length-1;I>=0;I--)E=new e.type.Term(".",[C[I],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,f])),a.substitution,a)])}}},"drop/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;I===0&&n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f])),a.substitution,a)])}},"reverse/2":function(n,a,o){var l=o.args[0],A=o.args[1],f=e.type.is_instantiated_list(l),I=e.type.is_instantiated_list(A);if(e.type.is_variable(l)&&e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(l)&&!e.type.is_fully_list(l))n.throw_error(e.error.type("list",l,o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!f&&!I)n.throw_error(e.error.instantiation(o.indicator));else{for(var C=f?l:A,b=new e.type.Term("[]",[]);C.indicator==="./2";)b=new e.type.Term(".",[C.args[0],b]),C=C.args[1];n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f?A:l])),a.substitution,a)])}},"list_to_set/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else{for(var f=l,I=[];f.indicator==="./2";)I.push(f.args[0]),f=f.args[1];if(e.type.is_variable(f))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_term(f)||f.indicator!=="[]/0")n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=[],b=new e.type.Term("[]",[]),E,N=0;N=0;N--)b=new e.type.Term(".",[C[N],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[A,b])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof I4r<"u"?I4r.exports=function(n){e=n,new e.type.Module("lists",t(),r)}:new e.type.Module("lists",t(),r)})(Wml)});var Ous=H(wh=>{"use strict";var X_e=process.platform==="win32",h4r="aes-256-cbc",Oml="sha256",Rus="The current environment doesn't support interactive reading from TTY.",Ab=wt("fs"),wus=process.binding("tty_wrap").TTY,C4r=wt("child_process"),gue=wt("path"),_4r={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},kte="none",Y4,iGe,Tus=!1,uue,Rxt,m4r,Mml=0,v4r="",Q_e=[],Nxt,Nus=!1,y4r=!1,Z6e=!1;function Dus(e){function t(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(n){return"#"+n.charCodeAt(0)+";"})}return Rxt.concat(function(r){var n=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?e[a]&&n.push("--"+a):r[a]==="string"&&e[a]&&n.push("--"+a,t(e[a]))}),n}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Hml(e,t){function r(X){var ae,ne="",ce;for(m4r=m4r||wt("os").tmpdir();;){ae=gue.join(m4r,X+ne);try{ce=Ab.openSync(ae,"wx")}catch(fe){if(fe.code==="EEXIST"){ne++;continue}else throw fe}Ab.closeSync(ce);break}return ae}var n,a,o,l={},A,f,I=r("readline-sync.stdout"),C=r("readline-sync.stderr"),b=r("readline-sync.exit"),E=r("readline-sync.done"),N=wt("crypto"),B,F,Q;B=N.createHash(Oml),B.update(""+process.pid+Mml+++Math.random()),Q=B.digest("hex"),F=N.createDecipher(h4r,Q),n=Dus(e),X_e?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',o=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+uue+"%Q%"+n.map(function(X){return" %Q%"+X+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+b+"%Q%%Q%) 2>%Q%"+C+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+h4r+"%Q% %Q%"+Q+"%Q% >%Q%"+I+"%Q% & (echo 1)>%Q%"+E+"%Q%"]):(a="/bin/sh",o=["-c",'("'+uue+'"'+n.map(function(X){return" '"+X.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+b+'") 2>"'+C+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+h4r+'" "'+Q+'" >"'+I+'"; echo 1 >"'+E+'"']),Z6e&&Z6e("_execFileSync",n);try{C4r.spawn(a,o,t)}catch(X){l.error=new Error(X.message),l.error.method="_execFileSync - spawn",l.error.program=a,l.error.args=o}for(;Ab.readFileSync(E,{encoding:e.encoding}).trim()!=="1";);return(A=Ab.readFileSync(b,{encoding:e.encoding}).trim())==="0"?l.input=F.update(Ab.readFileSync(I,{encoding:"binary"}),"hex",e.encoding)+F.final(e.encoding):(f=Ab.readFileSync(C,{encoding:e.encoding}).trim(),l.error=new Error(Rus+(f?` -`+f:"")),l.error.method="_execFileSync",l.error.program=a,l.error.args=o,l.error.extMessage=f,l.error.exitCode=+A),Ab.unlinkSync(I),Ab.unlinkSync(C),Ab.unlinkSync(b),Ab.unlinkSync(E),l}function Yml(e){var t,r={},n,a={env:process.env,encoding:e.encoding};if(uue||(X_e?process.env.PSModulePath?(uue="powershell.exe",Rxt=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(uue="cscript.exe",Rxt=["//nologo",__dirname+"\\read.cs.js"]):(uue="/bin/sh",Rxt=[__dirname+"/read.sh"])),X_e&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),C4r.execFileSync){t=Dus(e),Z6e&&Z6e("execFileSync",t);try{r.input=C4r.execFileSync(uue,t,a)}catch(o){n=o.stderr?(o.stderr+"").trim():"",r.error=new Error(Rus+(n?` -`+n:"")),r.error.method="execFileSync",r.error.program=uue,r.error.args=t,r.error.extMessage=n,r.error.exitCode=o.status,r.error.code=o.code,r.error.signal=o.signal}}else r=Hml(e,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),e.display=""),r}function b4r(e){var t="",r=e.display,n=!e.display&&e.keyIn&&e.hideEchoBack&&!e.mask;function a(){var o=Yml(e);if(o.error)throw o.error;return o.input}return y4r&&y4r(e),function(){var o,l,A;function f(){return o||(o=process.binding("fs"),l=process.binding("constants")),o}if(typeof kte=="string")if(kte=null,X_e){if(A=function(I){var C=I.replace(/^\D+/,"").split("."),b=0;return(C[0]=+C[0])&&(b+=C[0]*1e4),(C[1]=+C[1])&&(b+=C[1]*100),(C[2]=+C[2])&&(b+=C[2]),b}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),kte=process.stdin.fd,iGe=process.stdin._handle;else try{kte=f().open("CONIN$",l.O_RDWR,parseInt("0666",8)),iGe=new wus(kte,!0)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else{try{Y4=Ab.openSync("\\\\.\\CON","w")}catch{}if(typeof Y4!="number")try{Y4=f().open("CONOUT$",l.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{kte=Ab.openSync("/dev/tty","r"),iGe=process.stdin._handle}catch{}}else try{kte=Ab.openSync("/dev/tty","r"),iGe=new wus(kte,!1)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else try{Y4=Ab.openSync("/dev/tty","w")}catch{}}}(),function(){var o,l,A=!e.hideEchoBack&&!e.keyIn,f,I,C,b,E;Nxt="";function N(B){return B===Tus?!0:iGe.setRawMode(B)!==0?!1:(Tus=B,!0)}if(Nus||!iGe||typeof Y4!="number"&&(e.display||!A)){t=a();return}if(e.display&&(Ab.writeSync(Y4,e.display),e.display=""),!e.displayOnly){if(!N(!A)){t=a();return}for(I=e.keyIn?1:e.bufferSize,f=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(I):new Buffer(I),e.keyIn&&e.limit&&(l=new RegExp("[^"+e.limit+"]","g"+(e.caseSensitive?"":"i")));;){C=0;try{C=Ab.readSync(kte,f,0,I)}catch(B){if(B.code!=="EOF"){N(!1),t+=a();return}}if(C>0?(b=f.toString(e.encoding,0,C),Nxt+=b):(b=` +${ae}`}).join("");I.push({text:`Conflict detected in constraint targeting ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; conflicting values are:${F}`,fixable:!1})}else{let[[F]]=B,Q=(0,Bxt.get)(E,N);if(JSON.stringify(Q)===JSON.stringify(F))continue;if(!n){let X=typeof Q>"u"?`Missing field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}`:typeof F>"u"?`Extraneous field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)} currently set to ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`:`Invalid field ${Tm.formatUtils.pretty(e.configuration,N,Tm.formatUtils.Type.CODE)}; expected ${Tm.formatUtils.pretty(e.configuration,F,Tm.formatUtils.Type.INSPECT)}, found ${Tm.formatUtils.pretty(e.configuration,Q,Tm.formatUtils.Type.INSPECT)}`;I.push({text:X,fixable:!0});continue}typeof F>"u"?(0,Bxt.unset)(E,N):(0,Bxt.set)(E,N,F),C=!0}C&&a.set(b,E)}I.length>0&&o.set(b,I)}return{changedWorkspaces:a,remainingErrors:o}}function Pml(e,{configuration:t}){let r={children:[]};for(let[n,a]of e){let o=[];for(let A of a){let f=A.text.split(/\n/);A.fixable&&(f[0]=`${Tm.formatUtils.pretty(t,"\u2699","gray")} ${f[0]}`),o.push({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,f[0]),children:f.slice(1).map(I=>({value:Tm.formatUtils.tuple(Tm.formatUtils.Type.NO_HINT,I)}))})}let l={value:Tm.formatUtils.tuple(Tm.formatUtils.Type.LOCATOR,n.anchoredLocator),children:Tm.miscUtils.sortMap(o,A=>A.value[1])};r.children.push(l)}return r.children=Tm.miscUtils.sortMap(r.children,n=>n.value[1]),r}});var f4r=H(Txt=>{"use strict";Object.defineProperty(Txt,"__esModule",{value:!0});Txt.ModernEngine=void 0;var Wml=(Pa(),vi(Va)),YV=Bn(),wxt=Wml.__importStar(F6e()),p4r=class{constructor(t){this.project=t}createEnvironment(){let t=new wxt.Index(["cwd","ident"]),r=new wxt.Index(["workspace","type","ident"]),n=new wxt.Index(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},o=new Map,l=new Map;for(let A of this.project.storedPackages.values()){let f=Array.from(A.peerDependencies.values(),I=>[YV.structUtils.stringifyIdent(I),I.range]);o.set(A.locatorHash,{workspace:null,ident:YV.structUtils.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional!==!0)),optionalPeerDependencies:new Map(f.filter(([I])=>A.peerDependenciesMeta.get(I)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let f=o.get(A.locatorHash);f.dependencies=new Map(Array.from(A.dependencies.values(),I=>{let C=this.project.storedResolutions.get(I.descriptorHash);if(typeof C>"u")throw new Error("Assertion failed: The resolution should have been registered");let b=o.get(C);if(typeof b>"u")throw new Error("Assertion failed: The package should have been registered");return[YV.structUtils.stringifyIdent(I),b]})),f.dependencies.delete(f.ident)}for(let A of this.project.workspaces){let f=YV.structUtils.stringifyIdent(A.anchoredLocator),I=A.manifest.exportTo({}),C=o.get(A.anchoredLocator.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");let b=(F,Q,{caller:X=YV.nodeUtils.getCaller()}={})=>{let ae=wxt.normalizePath(F),ne=YV.miscUtils.getMapWithDefault(a.manifestUpdates,A.cwd),ce=YV.miscUtils.getMapWithDefault(ne,ae),fe=YV.miscUtils.getSetWithDefault(ce,Q);X!==null&&fe.add(X)},E=F=>b(F,void 0,{caller:YV.nodeUtils.getCaller()}),N=F=>{YV.miscUtils.getArrayWithDefault(a.reportedErrors,A.cwd).push(F)},B=t.insert({cwd:A.relativeCwd,ident:f,manifest:I,pkg:C,set:b,unset:E,error:N});l.set(A,B);for(let F of YV.Manifest.allDependencies)for(let Q of A.manifest[F].values()){let X=YV.structUtils.stringifyIdent(Q),ae=()=>{b([F,X],void 0,{caller:YV.nodeUtils.getCaller()})},ne=fe=>{b([F,X],fe,{caller:YV.nodeUtils.getCaller()})},ce=null;if(F!=="peerDependencies"&&(F!=="dependencies"||!A.manifest.devDependencies.has(Q.identHash))){let fe=A.anchoredPackage.dependencies.get(Q.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let de=o.get(ue);if(typeof de>"u")throw new Error("Assertion failed: The package should have been registered");ce=de}}r.insert({workspace:B,ident:X,range:Q.range,type:F,resolution:ce,update:ne,delete:ae,error:N})}}for(let A of this.project.storedPackages.values()){let f=this.project.tryWorkspaceByLocator(A);if(!f)continue;let I=l.get(f);if(typeof I>"u")throw new Error("Assertion failed: The workspace should have been registered");let C=o.get(A.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: The package should have been registered");C.workspace=I}return{workspaces:t,dependencies:r,packages:n,result:a}}async process(){let t=this.createEnvironment(),r={Yarn:{workspace:a=>t.workspaces.find(a)[0]??null,workspaces:a=>t.workspaces.find(a),dependency:a=>t.dependencies.find(a)[0]??null,dependencies:a=>t.dependencies.find(a),package:a=>t.packages.find(a)[0]??null,packages:a=>t.packages.find(a)}},n=await this.project.loadUserConfig();return n?.constraints?(await n.constraints(r),t.result):null}};Txt.ModernEngine=p4r});var Bus=H((Ttg,I4r)=>{var Oml;(function(e){var t=function(){return{"append/2":[new e.type.Rule(new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("L")]),new e.type.Term("foldl",[new e.type.Term("append",[]),new e.type.Var("X"),new e.type.Term("[]",[]),new e.type.Var("L")]))],"append/3":[new e.type.Rule(new e.type.Term("append",[new e.type.Term("[]",[]),new e.type.Var("X"),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("append",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("append",[new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("S")]))],"member/2":[new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("_")])]),null),new e.type.Rule(new e.type.Term("member",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")])]),new e.type.Term("member",[new e.type.Var("X"),new e.type.Var("Xs")]))],"permutation/2":[new e.type.Rule(new e.type.Term("permutation",[new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("permutation",[new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("permutation",[new e.type.Var("T"),new e.type.Var("P")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("P")]),new e.type.Term("append",[new e.type.Var("X"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("Y")]),new e.type.Var("S")])])]))],"maplist/2":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("X")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("Xs")])]))],"maplist/3":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs")])]))],"maplist/4":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs")])]))],"maplist/5":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds")])]))],"maplist/6":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es")])]))],"maplist/7":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs")])]))],"maplist/8":[new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("A"),new e.type.Var("As")]),new e.type.Term(".",[new e.type.Var("B"),new e.type.Var("Bs")]),new e.type.Term(".",[new e.type.Var("C"),new e.type.Var("Cs")]),new e.type.Term(".",[new e.type.Var("D"),new e.type.Var("Ds")]),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Es")]),new e.type.Term(".",[new e.type.Var("F"),new e.type.Var("Fs")]),new e.type.Term(".",[new e.type.Var("G"),new e.type.Var("Gs")])]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P"),new e.type.Var("A"),new e.type.Var("B"),new e.type.Var("C"),new e.type.Var("D"),new e.type.Var("E"),new e.type.Var("F"),new e.type.Var("G")]),new e.type.Term("maplist",[new e.type.Var("P"),new e.type.Var("As"),new e.type.Var("Bs"),new e.type.Var("Cs"),new e.type.Var("Ds"),new e.type.Var("Es"),new e.type.Var("Fs"),new e.type.Var("Gs")])]))],"include/3":[new e.type.Rule(new e.type.Term("include",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("include",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("A")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("A"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("F"),new e.type.Var("B")]),new e.type.Term(",",[new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("F")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("S")])]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("L"),new e.type.Var("S")])]),new e.type.Term("include",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("S")])])])])]))],"exclude/3":[new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Term("[]",[])]),null),new e.type.Rule(new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("exclude",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("E")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term("[]",[])]),new e.type.Var("Q")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("R"),new e.type.Var("Q")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("!",[]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("E")])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("E")])])])])])])]))],"foldl/4":[new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("_"),new e.type.Term("[]",[]),new e.type.Var("I"),new e.type.Var("I")]),null),new e.type.Rule(new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Var("T")]),new e.type.Var("I"),new e.type.Var("R")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P"),new e.type.Var("L")]),new e.type.Term(",",[new e.type.Term("append",[new e.type.Var("L"),new e.type.Term(".",[new e.type.Var("I"),new e.type.Term(".",[new e.type.Var("H"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])])])]),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("=..",[new e.type.Var("P2"),new e.type.Var("L2")]),new e.type.Term(",",[new e.type.Term("call",[new e.type.Var("P2")]),new e.type.Term("foldl",[new e.type.Var("P"),new e.type.Var("T"),new e.type.Var("X"),new e.type.Var("R")])])])])]))],"select/3":[new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("E"),new e.type.Var("Xs")]),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("select",[new e.type.Var("E"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term("select",[new e.type.Var("E"),new e.type.Var("Xs"),new e.type.Var("Ys")]))],"sum_list/2":[new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term("[]",[]),new e.type.Num(0,!1)]),null),new e.type.Rule(new e.type.Term("sum_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("sum_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("+",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"max_list/2":[new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("max_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("max_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"min_list/2":[new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("min_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("min_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term(";",[new e.type.Term(",",[new e.type.Term("=<",[new e.type.Var("X"),new e.type.Var("Y")]),new e.type.Term(",",[new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("X")]),new e.type.Term("!",[])])]),new e.type.Term("=",[new e.type.Var("S"),new e.type.Var("Y")])])]))],"prod_list/2":[new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term("[]",[]),new e.type.Num(1,!1)]),null),new e.type.Rule(new e.type.Term("prod_list",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("S")]),new e.type.Term(",",[new e.type.Term("prod_list",[new e.type.Var("Xs"),new e.type.Var("Y")]),new e.type.Term("is",[new e.type.Var("S"),new e.type.Term("*",[new e.type.Var("X"),new e.type.Var("Y")])])]))],"last/2":[new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("X"),new e.type.Term("[]",[])]),new e.type.Var("X")]),null),new e.type.Rule(new e.type.Term("last",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("Xs")]),new e.type.Var("X")]),new e.type.Term("last",[new e.type.Var("Xs"),new e.type.Var("X")]))],"prefix/2":[new e.type.Rule(new e.type.Term("prefix",[new e.type.Var("Part"),new e.type.Var("Whole")]),new e.type.Term("append",[new e.type.Var("Part"),new e.type.Var("_"),new e.type.Var("Whole")]))],"nth0/3":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth1/3":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("_")]),new e.type.Term("!",[])])])]))],"nth0/4":[new e.type.Rule(new e.type.Term("nth0",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">=",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(0,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth1/4":[new e.type.Rule(new e.type.Term("nth1",[new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term(";",[new e.type.Term("->",[new e.type.Term("var",[new e.type.Var("X")]),new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")])]),new e.type.Term(",",[new e.type.Term(">",[new e.type.Var("X"),new e.type.Num(0,!1)]),new e.type.Term(",",[new e.type.Term("nth",[new e.type.Num(1,!1),new e.type.Var("X"),new e.type.Var("Y"),new e.type.Var("Z"),new e.type.Var("W")]),new e.type.Term("!",[])])])]))],"nth/5":[new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("N"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("X"),new e.type.Var("Xs")]),null),new e.type.Rule(new e.type.Term("nth",[new e.type.Var("N"),new e.type.Var("O"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Xs")]),new e.type.Var("Y"),new e.type.Term(".",[new e.type.Var("X"),new e.type.Var("Ys")])]),new e.type.Term(",",[new e.type.Term("is",[new e.type.Var("M"),new e.type.Term("+",[new e.type.Var("N"),new e.type.Num(1,!1)])]),new e.type.Term("nth",[new e.type.Var("M"),new e.type.Var("O"),new e.type.Var("Xs"),new e.type.Var("Y"),new e.type.Var("Ys")])]))],"length/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(!e.type.is_variable(A)&&!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(e.type.is_integer(A)&&A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else{var f=new e.type.Term("length",[l,new e.type.Num(0,!1),A]);e.type.is_integer(A)&&(f=new e.type.Term(",",[f,new e.type.Term("!",[])])),n.prepend([new e.type.State(a.goal.replace(f),a.substitution,a)])}},"length/3":[new e.type.Rule(new e.type.Term("length",[new e.type.Term("[]",[]),new e.type.Var("N"),new e.type.Var("N")]),null),new e.type.Rule(new e.type.Term("length",[new e.type.Term(".",[new e.type.Var("_"),new e.type.Var("X")]),new e.type.Var("A"),new e.type.Var("N")]),new e.type.Term(",",[new e.type.Term("succ",[new e.type.Var("A"),new e.type.Var("B")]),new e.type.Term("length",[new e.type.Var("X"),new e.type.Var("B"),new e.type.Var("N")])]))],"replicate/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_integer(A))n.throw_error(e.error.type("integer",A,o.indicator));else if(A.value<0)n.throw_error(e.error.domain("not_less_than_zero",A,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=new e.type.Term("[]"),C=0;C0;b--)C[b].equals(C[b-1])&&C.splice(b,1);for(var E=new e.type.Term("[]"),b=C.length-1;b>=0;b--)E=new e.type.Term(".",[C[b],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"msort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I=l;I.indicator==="./2";)f.push(I.args[0]),I=I.args[1];if(e.type.is_variable(I))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(I))n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=f.sort(e.compare),b=new e.type.Term("[]"),E=C.length-1;E>=0;E--)b=new e.type.Term(".",[C[E],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,A])),a.substitution,a)])}}},"keysort/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else{for(var f=[],I,C=l;C.indicator==="./2";){if(I=C.args[0],e.type.is_variable(I)){n.throw_error(e.error.instantiation(o.indicator));return}else if(!e.type.is_term(I)||I.indicator!=="-/2"){n.throw_error(e.error.type("pair",I,o.indicator));return}I.args[0].pair=I.args[1],f.push(I.args[0]),C=C.args[1]}if(e.type.is_variable(C))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_empty_list(C))n.throw_error(e.error.type("list",l,o.indicator));else{for(var b=f.sort(e.compare),E=new e.type.Term("[]"),N=b.length-1;N>=0;N--)E=new e.type.Term(".",[new e.type.Term("-",[b[N],b[N].pair]),E]),delete b[N].pair;n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,A])),a.substitution,a)])}}},"take/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;if(I===0){for(var E=new e.type.Term("[]"),I=C.length-1;I>=0;I--)E=new e.type.Term(".",[C[I],E]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[E,f])),a.substitution,a)])}}},"drop/3":function(n,a,o){var l=o.args[0],A=o.args[1],f=o.args[2];if(e.type.is_variable(A)||e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!e.type.is_integer(l))n.throw_error(e.error.type("integer",l,o.indicator));else if(!e.type.is_variable(f)&&!e.type.is_list(f))n.throw_error(e.error.type("list",f,o.indicator));else{for(var I=l.value,C=[],b=A;I>0&&b.indicator==="./2";)C.push(b.args[0]),b=b.args[1],I--;I===0&&n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f])),a.substitution,a)])}},"reverse/2":function(n,a,o){var l=o.args[0],A=o.args[1],f=e.type.is_instantiated_list(l),I=e.type.is_instantiated_list(A);if(e.type.is_variable(l)&&e.type.is_variable(A))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_variable(l)&&!e.type.is_fully_list(l))n.throw_error(e.error.type("list",l,o.indicator));else if(!e.type.is_variable(A)&&!e.type.is_fully_list(A))n.throw_error(e.error.type("list",A,o.indicator));else if(!f&&!I)n.throw_error(e.error.instantiation(o.indicator));else{for(var C=f?l:A,b=new e.type.Term("[]",[]);C.indicator==="./2";)b=new e.type.Term(".",[C.args[0],b]),C=C.args[1];n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[b,f?A:l])),a.substitution,a)])}},"list_to_set/2":function(n,a,o){var l=o.args[0],A=o.args[1];if(e.type.is_variable(l))n.throw_error(e.error.instantiation(o.indicator));else{for(var f=l,I=[];f.indicator==="./2";)I.push(f.args[0]),f=f.args[1];if(e.type.is_variable(f))n.throw_error(e.error.instantiation(o.indicator));else if(!e.type.is_term(f)||f.indicator!=="[]/0")n.throw_error(e.error.type("list",l,o.indicator));else{for(var C=[],b=new e.type.Term("[]",[]),E,N=0;N=0;N--)b=new e.type.Term(".",[C[N],b]);n.prepend([new e.type.State(a.goal.replace(new e.type.Term("=",[A,b])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof I4r<"u"?I4r.exports=function(n){e=n,new e.type.Module("lists",t(),r)}:new e.type.Module("lists",t(),r)})(Oml)});var Ous=H(wh=>{"use strict";var X_e=process.platform==="win32",h4r="aes-256-cbc",Mml="sha256",Rus="The current environment doesn't support interactive reading from TTY.",Ab=wt("fs"),wus=process.binding("tty_wrap").TTY,C4r=wt("child_process"),gue=wt("path"),_4r={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},kte="none",Y4,iGe,Tus=!1,uue,Rxt,m4r,Hml=0,v4r="",Q_e=[],Nxt,Nus=!1,y4r=!1,Z6e=!1;function Dus(e){function t(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(n){return"#"+n.charCodeAt(0)+";"})}return Rxt.concat(function(r){var n=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?e[a]&&n.push("--"+a):r[a]==="string"&&e[a]&&n.push("--"+a,t(e[a]))}),n}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Yml(e,t){function r(X){var ae,ne="",ce;for(m4r=m4r||wt("os").tmpdir();;){ae=gue.join(m4r,X+ne);try{ce=Ab.openSync(ae,"wx")}catch(fe){if(fe.code==="EEXIST"){ne++;continue}else throw fe}Ab.closeSync(ce);break}return ae}var n,a,o,l={},A,f,I=r("readline-sync.stdout"),C=r("readline-sync.stderr"),b=r("readline-sync.exit"),E=r("readline-sync.done"),N=wt("crypto"),B,F,Q;B=N.createHash(Mml),B.update(""+process.pid+Hml+++Math.random()),Q=B.digest("hex"),F=N.createDecipher(h4r,Q),n=Dus(e),X_e?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',o=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+uue+"%Q%"+n.map(function(X){return" %Q%"+X+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+b+"%Q%%Q%) 2>%Q%"+C+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+h4r+"%Q% %Q%"+Q+"%Q% >%Q%"+I+"%Q% & (echo 1)>%Q%"+E+"%Q%"]):(a="/bin/sh",o=["-c",'("'+uue+'"'+n.map(function(X){return" '"+X.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+b+'") 2>"'+C+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+h4r+'" "'+Q+'" >"'+I+'"; echo 1 >"'+E+'"']),Z6e&&Z6e("_execFileSync",n);try{C4r.spawn(a,o,t)}catch(X){l.error=new Error(X.message),l.error.method="_execFileSync - spawn",l.error.program=a,l.error.args=o}for(;Ab.readFileSync(E,{encoding:e.encoding}).trim()!=="1";);return(A=Ab.readFileSync(b,{encoding:e.encoding}).trim())==="0"?l.input=F.update(Ab.readFileSync(I,{encoding:"binary"}),"hex",e.encoding)+F.final(e.encoding):(f=Ab.readFileSync(C,{encoding:e.encoding}).trim(),l.error=new Error(Rus+(f?` +`+f:"")),l.error.method="_execFileSync",l.error.program=a,l.error.args=o,l.error.extMessage=f,l.error.exitCode=+A),Ab.unlinkSync(I),Ab.unlinkSync(C),Ab.unlinkSync(b),Ab.unlinkSync(E),l}function Qml(e){var t,r={},n,a={env:process.env,encoding:e.encoding};if(uue||(X_e?process.env.PSModulePath?(uue="powershell.exe",Rxt=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(uue="cscript.exe",Rxt=["//nologo",__dirname+"\\read.cs.js"]):(uue="/bin/sh",Rxt=[__dirname+"/read.sh"])),X_e&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),C4r.execFileSync){t=Dus(e),Z6e&&Z6e("execFileSync",t);try{r.input=C4r.execFileSync(uue,t,a)}catch(o){n=o.stderr?(o.stderr+"").trim():"",r.error=new Error(Rus+(n?` +`+n:"")),r.error.method="execFileSync",r.error.program=uue,r.error.args=t,r.error.extMessage=n,r.error.exitCode=o.status,r.error.code=o.code,r.error.signal=o.signal}}else r=Yml(e,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),e.display=""),r}function b4r(e){var t="",r=e.display,n=!e.display&&e.keyIn&&e.hideEchoBack&&!e.mask;function a(){var o=Qml(e);if(o.error)throw o.error;return o.input}return y4r&&y4r(e),function(){var o,l,A;function f(){return o||(o=process.binding("fs"),l=process.binding("constants")),o}if(typeof kte=="string")if(kte=null,X_e){if(A=function(I){var C=I.replace(/^\D+/,"").split("."),b=0;return(C[0]=+C[0])&&(b+=C[0]*1e4),(C[1]=+C[1])&&(b+=C[1]*100),(C[2]=+C[2])&&(b+=C[2]),b}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),kte=process.stdin.fd,iGe=process.stdin._handle;else try{kte=f().open("CONIN$",l.O_RDWR,parseInt("0666",8)),iGe=new wus(kte,!0)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else{try{Y4=Ab.openSync("\\\\.\\CON","w")}catch{}if(typeof Y4!="number")try{Y4=f().open("CONOUT$",l.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{kte=Ab.openSync("/dev/tty","r"),iGe=process.stdin._handle}catch{}}else try{kte=Ab.openSync("/dev/tty","r"),iGe=new wus(kte,!1)}catch{}if(process.stdout.isTTY)Y4=process.stdout.fd;else try{Y4=Ab.openSync("/dev/tty","w")}catch{}}}(),function(){var o,l,A=!e.hideEchoBack&&!e.keyIn,f,I,C,b,E;Nxt="";function N(B){return B===Tus?!0:iGe.setRawMode(B)!==0?!1:(Tus=B,!0)}if(Nus||!iGe||typeof Y4!="number"&&(e.display||!A)){t=a();return}if(e.display&&(Ab.writeSync(Y4,e.display),e.display=""),!e.displayOnly){if(!N(!A)){t=a();return}for(I=e.keyIn?1:e.bufferSize,f=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(I):new Buffer(I),e.keyIn&&e.limit&&(l=new RegExp("[^"+e.limit+"]","g"+(e.caseSensitive?"":"i")));;){C=0;try{C=Ab.readSync(kte,f,0,I)}catch(B){if(B.code!=="EOF"){N(!1),t+=a();return}}if(C>0?(b=f.toString(e.encoding,0,C),Nxt+=b):(b=` `,Nxt+="\0"),b&&typeof(E=(b.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(b=E,o=!0),b&&(b=b.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),b&&l&&(b=b.replace(l,"")),b&&(A||(e.hideEchoBack?e.mask&&Ab.writeSync(Y4,new Array(b.length+1).join(e.mask)):Ab.writeSync(Y4,b)),t+=b),!e.keyIn&&o||e.keyIn&&t.length>=I)break}!A&&!n&&Ab.writeSync(Y4,` `),N(!1)}}(),e.print&&!n&&e.print(r+(e.displayOnly?"":(e.hideEchoBack?new Array(t.length+1).join(e.mask):t)+` -`),e.encoding),e.displayOnly?"":v4r=e.keepWhitespace||e.keyIn?t:t.trim()}function Qml(e,t){var r=[];function n(a){a!=null&&(Array.isArray(a)?a.forEach(n):(!t||t(a))&&r.push(a))}return n(e),r}function B4r(e){return e.replace(/[\x00-\x7f]/g,function(t){return"\\x"+("00"+t.charCodeAt().toString(16)).substr(-2)})}function _D(){var e=Array.prototype.slice.call(arguments),t,r;return e.length&&typeof e[0]=="boolean"&&(r=e.shift(),r&&(t=Object.keys(_4r),e.unshift(_4r))),e.reduce(function(n,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(t=Object.keys(a)),t.forEach(function(o){var l;if(a.hasOwnProperty(o))switch(l=a[o],o){case"mask":case"limitMessage":case"defaultInput":case"encoding":l=l!=null?l+"":"",l&&o!=="limitMessage"&&(l=l.replace(/[\r\n]/g,"")),n[o]=l;break;case"bufferSize":!isNaN(l=parseInt(l,10))&&typeof l=="number"&&(n[o]=l);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":n[o]=!!l;break;case"limit":case"trueValue":case"falseValue":n[o]=Qml(l,function(A){var f=typeof A;return f==="string"||f==="number"||f==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":n[o]=typeof l=="function"?l:void 0;break;case"prompt":case"display":n[o]=l??"";break}})),n},{})}function E4r(e,t,r){return t.some(function(n){var a=typeof n;return a==="string"?r?e===n:e.toLowerCase()===n.toLowerCase():a==="number"?parseFloat(e)===n:a==="function"?n(e):n instanceof RegExp?n.test(e):!1})}function w4r(e,t){var r=gue.normalize(X_e?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return e=gue.normalize(e),t?e.replace(/^~(?=\/|\\|$)/,r):e.replace(new RegExp("^"+B4r(r)+"(?=\\/|\\\\|$)",X_e?"i":""),"~")}function sGe(e,t){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",n=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function o(l,A,f,I,C,b){var E;return A||typeof(E=t(C))!="string"?f:E?(I||"")+E+(b||""):""}return e.replace(n,o).replace(a,o)}function kus(e,t,r){var n,a=[],o=-1,l=0,A="",f;function I(C,b){return b.length>3?(C.push(b[0]+"..."+b[b.length-1]),f=!0):b.length&&(C=C.concat(b)),C}return n=e.reduce(function(C,b){return C.concat((b+"").split(""))},[]).reduce(function(C,b){var E,N;return t||(b=b.toLowerCase()),E=/^\d$/.test(b)?1:/^[A-Z]$/.test(b)?2:/^[a-z]$/.test(b)?3:0,r&&E===0?A+=b:(N=b.charCodeAt(0),E&&E===o&&N===l+1?a.push(b):(C=I(C,a),a=[b],o=E),l=N),C},[]),n=I(n,a),A&&(n.push(A),f=!0),{values:n,suppressed:f}}function xus(e,t){return e.join(e.length>2?", ":t?" / ":"/")}function Gus(e,t){var r,n,a={},o;if(t.phContent&&(r=t.phContent(e,t)),typeof r!="string")switch(e){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=t.hasOwnProperty(e)?typeof t[e]=="boolean"?t[e]?"on":"off":t[e]+"":"";break;case"limit":case"trueValue":case"falseValue":n=t[t.hasOwnProperty(e+"Src")?e+"Src":e],t.keyIn?(a=kus(n,t.caseSensitive),n=a.values):n=n.filter(function(l){var A=typeof l;return A==="string"||A==="number"}),r=xus(n,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=t[t.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||e!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=v4r;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),e==="CWD"?r=gue.basename(r):e==="cwdHome"&&(r=w4r(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+e.replace(/^./,function(l){return l.toUpperCase()})+"String"]();break;default:typeof(o=(e.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Q_e[Q_e.length-o]||"")}return r}function Fus(e){var t=/^(.)-(.)$/.exec(e),r="",n,a,o,l;if(!t)return null;for(n=t[1].charCodeAt(0),a=t[2].charCodeAt(0),l=n)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function o(l,A,f,I,C,b){var E;return A||typeof(E=t(C))!="string"?f:E?(I||"")+E+(b||""):""}return e.replace(n,o).replace(a,o)}function kus(e,t,r){var n,a=[],o=-1,l=0,A="",f;function I(C,b){return b.length>3?(C.push(b[0]+"..."+b[b.length-1]),f=!0):b.length&&(C=C.concat(b)),C}return n=e.reduce(function(C,b){return C.concat((b+"").split(""))},[]).reduce(function(C,b){var E,N;return t||(b=b.toLowerCase()),E=/^\d$/.test(b)?1:/^[A-Z]$/.test(b)?2:/^[a-z]$/.test(b)?3:0,r&&E===0?A+=b:(N=b.charCodeAt(0),E&&E===o&&N===l+1?a.push(b):(C=I(C,a),a=[b],o=E),l=N),C},[]),n=I(n,a),A&&(n.push(A),f=!0),{values:n,suppressed:f}}function xus(e,t){return e.join(e.length>2?", ":t?" / ":"/")}function Gus(e,t){var r,n,a={},o;if(t.phContent&&(r=t.phContent(e,t)),typeof r!="string")switch(e){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=t.hasOwnProperty(e)?typeof t[e]=="boolean"?t[e]?"on":"off":t[e]+"":"";break;case"limit":case"trueValue":case"falseValue":n=t[t.hasOwnProperty(e+"Src")?e+"Src":e],t.keyIn?(a=kus(n,t.caseSensitive),n=a.values):n=n.filter(function(l){var A=typeof l;return A==="string"||A==="number"}),r=xus(n,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=t[t.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||e!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=v4r;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),e==="CWD"?r=gue.basename(r):e==="cwdHome"&&(r=w4r(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+e.replace(/^./,function(l){return l.toUpperCase()})+"String"]();break;default:typeof(o=(e.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Q_e[Q_e.length-o]||"")}return r}function Fus(e){var t=/^(.)-(.)$/.exec(e),r="",n,a,o,l;if(!t)return null;for(n=t[1].charCodeAt(0),a=t[2].charCodeAt(0),l=n @@ -1451,7 +1451,7 @@ And the length must be: $`,trueValue:null,falseValue:null,caseSensitive: `,n+=`THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -`,n+="You should have received a copy of the BSD 3-Clause License along with this program. If not, see https://opensource.org/licenses/BSD-3-Clause",e.prepend([new State(t.goal.replace(new Term("write",[new Term(n,[])])),t.substitution,t)])}},flag:{bounded:{allowed:[new Term("true"),new Term("false")],value:new Term("true"),changeable:!1},max_integer:{allowed:[new Num(Number.MAX_SAFE_INTEGER)],value:new Num(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Num(Number.MIN_SAFE_INTEGER)],value:new Num(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new Term("down"),new Term("toward_zero")],value:new Term("toward_zero"),changeable:!1},char_conversion:{allowed:[new Term("on"),new Term("off")],value:new Term("on"),changeable:!0},debug:{allowed:[new Term("on"),new Term("off")],value:new Term("off"),changeable:!0},max_arity:{allowed:[new Term("unbounded")],value:new Term("unbounded"),changeable:!1},unknown:{allowed:[new Term("error"),new Term("fail"),new Term("warning")],value:new Term("error"),changeable:!0},double_quotes:{allowed:[new Term("chars"),new Term("codes"),new Term("atom")],value:new Term("codes"),changeable:!0},occurs_check:{allowed:[new Term("false"),new Term("true")],value:new Term("false"),changeable:!0},dialect:{allowed:[new Term("tau")],value:new Term("tau"),changeable:!1},version_data:{allowed:[new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)])],value:new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)]),changeable:!1},nodejs:{allowed:[new Term("yes"),new Term("no")],value:new Term(nodejs_flag?"yes":"no"),changeable:!1},argv:{allowed:[nodejs_arguments],value:nodejs_arguments,changeble:!1}},unify:function(e,t,r){r=r===void 0?!1:r;for(var n=[{left:e,right:t}],a={};n.length!==0;){var o=n.pop();if(e=o.left,t=o.right,e!=t)if(pl.type.is_term(e)&&pl.type.is_term(t)){if(e.indicator!==t.indicator)return null;if(e.indicator==="./2"){for(var l=e,A=t;l.indicator==="./2"&&A.indicator==="./2";)n.push({left:l.args[0],right:A.args[0]}),l=l.args[1],A=A.args[1];n.push({left:l,right:A})}else for(var f=0;fa.value?1:0:a}else return n},operate:function(e,t){if(pl.type.is_operator(t)){for(var r=pl.type.is_operator(t),n=[],a,o=!1,l=0;le.get_flag("max_integer").value||a0?e.start+e.matches[0].length:e.start,a=r?new Term("token_not_found"):new Term("found",[new Term(e.value.toString())]),o=new Term(".",[new Term("line",[new Num(e.line+1)]),new Term(".",[new Term("column",[new Num(n+1)]),new Term(".",[a,new Term("[]",[])])])]);return new Term("error",[new Term("syntax_error",[new Term(t)]),o])},syntax_by_predicate:function(e,t){return new Term("error",[new Term("syntax_error",[new Term(e)]),str_indicator(t)])}},warning:{singleton:function(e,t,r){for(var n=new Term("[]"),a=e.length-1;a>=0;a--)n=new Term(".",[new Var(e[a]),n]);return new Term("warning",[new Term("singleton_variables",[n,str_indicator(t)]),new Term(".",[new Term("line",[new Num(r,!1)]),new Term("[]")])])},failed_goal:function(e,t){return new Term("warning",[new Term("failed_goal",[e]),new Term(".",[new Term("line",[new Num(t,!1)]),new Term("[]")])])}},format_variable:function(e){return"_"+e},format_answer:function(e,t,n){t instanceof Session&&(t=t.thread);var n=n||{};if(n.session=t?t.session:void 0,pl.type.is_error(e))return"uncaught exception: "+e.args[0].toString();if(e===!1)return"false.";if(e===null)return"limit exceeded ;";var a=0,o="";if(pl.type.is_substitution(e)){var l=e.domain(!0);e=e.filter(function(b,E){return!pl.type.is_variable(E)||pl.type.is_variable(E)&&e.has_attributes(b)||indexOf(l,E.id)!==-1&&b!==E.id})}for(var A in e.links)if(e.links.hasOwnProperty(A))if(pl.type.is_variable(e.links[A])&&A===e.links[A].id){var f=e.attrs[A];for(var I in f)f.hasOwnProperty(I)&&(a++,o!==""&&(o+=", "),o+="put_attr("+A+", "+I+", "+f[I].toString(n)+")")}else a++,o!==""&&(o+=", "),o+=A.toString(n)+" = "+e.links[A].toString(n,{priority:"700",class:"xfx",indicator:"=/2"},"right");var C=typeof t>"u"||t.points.length>0?" ;":".";return a===0?"true"+C:o+C},flatten_error:function(e){if(!pl.type.is_error(e))return null;e=e.args[0];var t={};return t.type=e.args[0].id,t.thrown=t.type==="syntax_error"?null:e.args[1].id,t.expected=null,t.found=null,t.representation=null,t.existence=null,t.existence_type=null,t.line=null,t.column=null,t.permission_operation=null,t.permission_type=null,t.evaluation_type=null,t.type==="type_error"||t.type==="domain_error"?(t.expected=e.args[0].args[0].id,t.found=e.args[0].args[1].toString()):t.type==="syntax_error"?e.args[1].indicator==="./2"?(t.expected=e.args[0].args[0].id,t.found=e.args[1].args[1].args[1].args[0],t.found=t.found.id==="token_not_found"?t.found.id:t.found.args[0].id,t.line=e.args[1].args[0].args[0].value,t.column=e.args[1].args[1].args[0].args[0].value):t.thrown=e.args[1].id:t.type==="permission_error"?(t.found=e.args[0].args[2].toString(),t.permission_operation=e.args[0].args[0].id,t.permission_type=e.args[0].args[1].id):t.type==="evaluation_error"?t.evaluation_type=e.args[0].args[0].id:t.type==="representation_error"?t.representation=e.args[0].args[0].id:t.type==="existence_error"&&(t.existence=e.args[0].args[1].toString(),t.existence_type=e.args[0].args[0].id),t},create:function(e){return new pl.type.Session(e)}};typeof module<"u"?module.exports=pl:window.pl=pl})()});var Jus=H(N4r=>{"use strict";Object.defineProperty(N4r,"__esModule",{value:!0});N4r.linkProjectToSession=jml;var Qus=(Pa(),vi(Va)),Mus=Bn(),Hus=kW(),LO=Qus.__importDefault(T4r()),Xml=Qus.__importDefault(wt("vm")),{is_atom:Aue,is_variable:Jml,is_instantiated_list:Uml}=LO.default.type;function Yus(e,t,r){e.prepend(r.map(n=>new LO.default.type.State(t.goal.replace(n),t.substitution,t)))}var Xus=new WeakMap;function R4r(e){let t=Xus.get(e.session);if(t==null)throw new Error("Assertion failed: A project should have been registered for the active session");return t}var Kml=new LO.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let l=Mus.structUtils.parseIdent(n.id),A=Mus.structUtils.makeDescriptor(l,a.id),I=R4r(e).tryWorkspaceByDescriptor(A);Jml(o)&&I!==null&&Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(String(I.relativeCwd))])]),Aue(o)&&I!==null&&I.relativeCwd===o.id&&e.success(t)},"workspace_field/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let A=R4r(e).tryWorkspaceByCwd(n.id);if(A==null)return;let f=(0,Hus.get)(A.manifest.raw,a.id);typeof f>"u"||Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(typeof f=="object"?JSON.stringify(f):f)])])},"workspace_field_test/3":(e,t,r)=>{let[n,a,o]=r.args;e.prepend([new LO.default.type.State(t.goal.replace(new LO.default.type.Term("workspace_field_test",[n,a,o,new LO.default.type.Term("[]",[])])),t.substitution,t)])},"workspace_field_test/4":(e,t,r)=>{let[n,a,o,l]=r.args;if(!Aue(n)||!Aue(a)||!Aue(o)||!Uml(l)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let f=R4r(e).tryWorkspaceByCwd(n.id);if(f==null)return;let I=(0,Hus.get)(f.manifest.raw,a.id);if(typeof I>"u")return;let C={$$:I};for(let[E,N]of l.toJavaScript().entries())C[`$${E}`]=N;Xml.default.runInNewContext(o.id,C)&&e.success(t)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"]);function jml(e,t){Xus.set(e,t),e.consult(`:- use_module(library(${Kml.id})).`)}});var W6e=H(oGe=>{"use strict";Object.defineProperty(oGe,"__esModule",{value:!0});oGe.Constraints=oGe.DependencyType=void 0;var x4r=(Pa(),vi(Va)),g6=Bn(),VO=Bn(),Dxt=no(),zml=x4r.__importDefault(Bus()),V6e=x4r.__importDefault(T4r()),Uus=x4r.__importStar(F6e()),qml=Jus();(0,zml.default)(V6e.default);var P6e;(function(e){e.Dependencies="dependencies",e.DevDependencies="devDependencies",e.PeerDependencies="peerDependencies"})(P6e||(oGe.DependencyType=P6e={}));var Kus=[P6e.Dependencies,P6e.DevDependencies,P6e.PeerDependencies];function lx(e){if(e instanceof V6e.default.type.Num)return e.value;if(e instanceof V6e.default.type.Term)switch(e.indicator){case"throw/1":return lx(e.args[0]);case"error/1":return lx(e.args[0]);case"error/2":if(e.args[0]instanceof V6e.default.type.Term&&e.args[0].indicator==="syntax_error/1")return Object.assign(lx(e.args[0]),...lx(e.args[1]));{let t=lx(e.args[0]);return t.message+=` (in ${lx(e.args[1])})`,t}case"syntax_error/1":return new g6.ReportError(g6.MessageName.PROLOG_SYNTAX_ERROR,`Syntax error: ${lx(e.args[0])}`);case"existence_error/2":return new g6.ReportError(g6.MessageName.PROLOG_EXISTENCE_ERROR,`Existence error: ${lx(e.args[0])} ${lx(e.args[1])} not found`);case"instantiation_error/0":return new g6.ReportError(g6.MessageName.PROLOG_INSTANTIATION_ERROR,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:lx(e.args[0])};case"column/1":return{column:lx(e.args[0])};case"found/1":return{found:lx(e.args[0])};case"./2":return[lx(e.args[0])].concat(lx(e.args[1]));case"//2":return`${lx(e.args[0])}/${lx(e.args[1])}`;default:return e.id}throw`couldn't pretty print because of unsupported node ${e}`}function jus(e){let t;try{t=lx(e)}catch(r){throw typeof r=="string"?new g6.ReportError(g6.MessageName.PROLOG_UNKNOWN_ERROR,`Unknown error: ${e} (note: ${r})`):r}return typeof t.line<"u"&&typeof t.column<"u"&&(t.message+=` at line ${t.line}, column ${t.column}`),t}var D4r=class{constructor(t,r){let n=1e3*t.workspaces.length;this.session=V6e.default.create(n),(0,qml.linkProjectToSession)(this.session,t),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(t=>{this.session.answer(r=>{t(r)})})}async*makeQuery(t){let r=this.session.query(t);if(r!==!0)throw jus(r);for(;;){let n=await this.fetchNextAnswer();if(n===null)throw new g6.ReportError(g6.MessageName.PROLOG_LIMIT_EXCEEDED,"Resolution limit exceeded");if(!n)break;if(n.id==="throw")throw jus(n);yield n}}};function J_e(e){return e.id==="null"?null:`${e.toJavaScript()}`}function $ml(e){if(e.id==="null")return null;{let t=e.toJavaScript();if(typeof t!="string")return JSON.stringify(t);try{return JSON.stringify(JSON.parse(t))}catch{return JSON.stringify(t)}}}var k4r=class e{static async find(t){return new e(t)}constructor(t){this.source="",this.project=t;let r=t.configuration.get("constraintsPath");Dxt.xfs.existsSync(r)&&(this.source=Dxt.xfs.readFileSync(r,"utf8"))}getProjectDatabase(){let t="";for(let r of Kus)t+=`dependency_type(${r}). +`,n+="You should have received a copy of the BSD 3-Clause License along with this program. If not, see https://opensource.org/licenses/BSD-3-Clause",e.prepend([new State(t.goal.replace(new Term("write",[new Term(n,[])])),t.substitution,t)])}},flag:{bounded:{allowed:[new Term("true"),new Term("false")],value:new Term("true"),changeable:!1},max_integer:{allowed:[new Num(Number.MAX_SAFE_INTEGER)],value:new Num(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Num(Number.MIN_SAFE_INTEGER)],value:new Num(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new Term("down"),new Term("toward_zero")],value:new Term("toward_zero"),changeable:!1},char_conversion:{allowed:[new Term("on"),new Term("off")],value:new Term("on"),changeable:!0},debug:{allowed:[new Term("on"),new Term("off")],value:new Term("off"),changeable:!0},max_arity:{allowed:[new Term("unbounded")],value:new Term("unbounded"),changeable:!1},unknown:{allowed:[new Term("error"),new Term("fail"),new Term("warning")],value:new Term("error"),changeable:!0},double_quotes:{allowed:[new Term("chars"),new Term("codes"),new Term("atom")],value:new Term("codes"),changeable:!0},occurs_check:{allowed:[new Term("false"),new Term("true")],value:new Term("false"),changeable:!0},dialect:{allowed:[new Term("tau")],value:new Term("tau"),changeable:!1},version_data:{allowed:[new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)])],value:new Term("tau",[new Num(version.major,!1),new Num(version.minor,!1),new Num(version.patch,!1),new Term(version.status)]),changeable:!1},nodejs:{allowed:[new Term("yes"),new Term("no")],value:new Term(nodejs_flag?"yes":"no"),changeable:!1},argv:{allowed:[nodejs_arguments],value:nodejs_arguments,changeble:!1}},unify:function(e,t,r){r=r===void 0?!1:r;for(var n=[{left:e,right:t}],a={};n.length!==0;){var o=n.pop();if(e=o.left,t=o.right,e!=t)if(pl.type.is_term(e)&&pl.type.is_term(t)){if(e.indicator!==t.indicator)return null;if(e.indicator==="./2"){for(var l=e,A=t;l.indicator==="./2"&&A.indicator==="./2";)n.push({left:l.args[0],right:A.args[0]}),l=l.args[1],A=A.args[1];n.push({left:l,right:A})}else for(var f=0;fa.value?1:0:a}else return n},operate:function(e,t){if(pl.type.is_operator(t)){for(var r=pl.type.is_operator(t),n=[],a,o=!1,l=0;le.get_flag("max_integer").value||a0?e.start+e.matches[0].length:e.start,a=r?new Term("token_not_found"):new Term("found",[new Term(e.value.toString())]),o=new Term(".",[new Term("line",[new Num(e.line+1)]),new Term(".",[new Term("column",[new Num(n+1)]),new Term(".",[a,new Term("[]",[])])])]);return new Term("error",[new Term("syntax_error",[new Term(t)]),o])},syntax_by_predicate:function(e,t){return new Term("error",[new Term("syntax_error",[new Term(e)]),str_indicator(t)])}},warning:{singleton:function(e,t,r){for(var n=new Term("[]"),a=e.length-1;a>=0;a--)n=new Term(".",[new Var(e[a]),n]);return new Term("warning",[new Term("singleton_variables",[n,str_indicator(t)]),new Term(".",[new Term("line",[new Num(r,!1)]),new Term("[]")])])},failed_goal:function(e,t){return new Term("warning",[new Term("failed_goal",[e]),new Term(".",[new Term("line",[new Num(t,!1)]),new Term("[]")])])}},format_variable:function(e){return"_"+e},format_answer:function(e,t,n){t instanceof Session&&(t=t.thread);var n=n||{};if(n.session=t?t.session:void 0,pl.type.is_error(e))return"uncaught exception: "+e.args[0].toString();if(e===!1)return"false.";if(e===null)return"limit exceeded ;";var a=0,o="";if(pl.type.is_substitution(e)){var l=e.domain(!0);e=e.filter(function(b,E){return!pl.type.is_variable(E)||pl.type.is_variable(E)&&e.has_attributes(b)||indexOf(l,E.id)!==-1&&b!==E.id})}for(var A in e.links)if(e.links.hasOwnProperty(A))if(pl.type.is_variable(e.links[A])&&A===e.links[A].id){var f=e.attrs[A];for(var I in f)f.hasOwnProperty(I)&&(a++,o!==""&&(o+=", "),o+="put_attr("+A+", "+I+", "+f[I].toString(n)+")")}else a++,o!==""&&(o+=", "),o+=A.toString(n)+" = "+e.links[A].toString(n,{priority:"700",class:"xfx",indicator:"=/2"},"right");var C=typeof t>"u"||t.points.length>0?" ;":".";return a===0?"true"+C:o+C},flatten_error:function(e){if(!pl.type.is_error(e))return null;e=e.args[0];var t={};return t.type=e.args[0].id,t.thrown=t.type==="syntax_error"?null:e.args[1].id,t.expected=null,t.found=null,t.representation=null,t.existence=null,t.existence_type=null,t.line=null,t.column=null,t.permission_operation=null,t.permission_type=null,t.evaluation_type=null,t.type==="type_error"||t.type==="domain_error"?(t.expected=e.args[0].args[0].id,t.found=e.args[0].args[1].toString()):t.type==="syntax_error"?e.args[1].indicator==="./2"?(t.expected=e.args[0].args[0].id,t.found=e.args[1].args[1].args[1].args[0],t.found=t.found.id==="token_not_found"?t.found.id:t.found.args[0].id,t.line=e.args[1].args[0].args[0].value,t.column=e.args[1].args[1].args[0].args[0].value):t.thrown=e.args[1].id:t.type==="permission_error"?(t.found=e.args[0].args[2].toString(),t.permission_operation=e.args[0].args[0].id,t.permission_type=e.args[0].args[1].id):t.type==="evaluation_error"?t.evaluation_type=e.args[0].args[0].id:t.type==="representation_error"?t.representation=e.args[0].args[0].id:t.type==="existence_error"&&(t.existence=e.args[0].args[1].toString(),t.existence_type=e.args[0].args[0].id),t},create:function(e){return new pl.type.Session(e)}};typeof module<"u"?module.exports=pl:window.pl=pl})()});var Jus=H(N4r=>{"use strict";Object.defineProperty(N4r,"__esModule",{value:!0});N4r.linkProjectToSession=zml;var Qus=(Pa(),vi(Va)),Mus=Bn(),Hus=kW(),LO=Qus.__importDefault(T4r()),Jml=Qus.__importDefault(wt("vm")),{is_atom:Aue,is_variable:Uml,is_instantiated_list:Kml}=LO.default.type;function Yus(e,t,r){e.prepend(r.map(n=>new LO.default.type.State(t.goal.replace(n),t.substitution,t)))}var Xus=new WeakMap;function R4r(e){let t=Xus.get(e.session);if(t==null)throw new Error("Assertion failed: A project should have been registered for the active session");return t}var jml=new LO.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let l=Mus.structUtils.parseIdent(n.id),A=Mus.structUtils.makeDescriptor(l,a.id),I=R4r(e).tryWorkspaceByDescriptor(A);Uml(o)&&I!==null&&Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(String(I.relativeCwd))])]),Aue(o)&&I!==null&&I.relativeCwd===o.id&&e.success(t)},"workspace_field/3":(e,t,r)=>{let[n,a,o]=r.args;if(!Aue(n)||!Aue(a)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let A=R4r(e).tryWorkspaceByCwd(n.id);if(A==null)return;let f=(0,Hus.get)(A.manifest.raw,a.id);typeof f>"u"||Yus(e,t,[new LO.default.type.Term("=",[o,new LO.default.type.Term(typeof f=="object"?JSON.stringify(f):f)])])},"workspace_field_test/3":(e,t,r)=>{let[n,a,o]=r.args;e.prepend([new LO.default.type.State(t.goal.replace(new LO.default.type.Term("workspace_field_test",[n,a,o,new LO.default.type.Term("[]",[])])),t.substitution,t)])},"workspace_field_test/4":(e,t,r)=>{let[n,a,o,l]=r.args;if(!Aue(n)||!Aue(a)||!Aue(o)||!Kml(l)){e.throw_error(LO.default.error.instantiation(r.indicator));return}let f=R4r(e).tryWorkspaceByCwd(n.id);if(f==null)return;let I=(0,Hus.get)(f.manifest.raw,a.id);if(typeof I>"u")return;let C={$$:I};for(let[E,N]of l.toJavaScript().entries())C[`$${E}`]=N;Jml.default.runInNewContext(o.id,C)&&e.success(t)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"]);function zml(e,t){Xus.set(e,t),e.consult(`:- use_module(library(${jml.id})).`)}});var W6e=H(oGe=>{"use strict";Object.defineProperty(oGe,"__esModule",{value:!0});oGe.Constraints=oGe.DependencyType=void 0;var x4r=(Pa(),vi(Va)),g6=Bn(),VO=Bn(),Dxt=no(),qml=x4r.__importDefault(Bus()),V6e=x4r.__importDefault(T4r()),Uus=x4r.__importStar(F6e()),$ml=Jus();(0,qml.default)(V6e.default);var P6e;(function(e){e.Dependencies="dependencies",e.DevDependencies="devDependencies",e.PeerDependencies="peerDependencies"})(P6e||(oGe.DependencyType=P6e={}));var Kus=[P6e.Dependencies,P6e.DevDependencies,P6e.PeerDependencies];function lx(e){if(e instanceof V6e.default.type.Num)return e.value;if(e instanceof V6e.default.type.Term)switch(e.indicator){case"throw/1":return lx(e.args[0]);case"error/1":return lx(e.args[0]);case"error/2":if(e.args[0]instanceof V6e.default.type.Term&&e.args[0].indicator==="syntax_error/1")return Object.assign(lx(e.args[0]),...lx(e.args[1]));{let t=lx(e.args[0]);return t.message+=` (in ${lx(e.args[1])})`,t}case"syntax_error/1":return new g6.ReportError(g6.MessageName.PROLOG_SYNTAX_ERROR,`Syntax error: ${lx(e.args[0])}`);case"existence_error/2":return new g6.ReportError(g6.MessageName.PROLOG_EXISTENCE_ERROR,`Existence error: ${lx(e.args[0])} ${lx(e.args[1])} not found`);case"instantiation_error/0":return new g6.ReportError(g6.MessageName.PROLOG_INSTANTIATION_ERROR,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:lx(e.args[0])};case"column/1":return{column:lx(e.args[0])};case"found/1":return{found:lx(e.args[0])};case"./2":return[lx(e.args[0])].concat(lx(e.args[1]));case"//2":return`${lx(e.args[0])}/${lx(e.args[1])}`;default:return e.id}throw`couldn't pretty print because of unsupported node ${e}`}function jus(e){let t;try{t=lx(e)}catch(r){throw typeof r=="string"?new g6.ReportError(g6.MessageName.PROLOG_UNKNOWN_ERROR,`Unknown error: ${e} (note: ${r})`):r}return typeof t.line<"u"&&typeof t.column<"u"&&(t.message+=` at line ${t.line}, column ${t.column}`),t}var D4r=class{constructor(t,r){let n=1e3*t.workspaces.length;this.session=V6e.default.create(n),(0,$ml.linkProjectToSession)(this.session,t),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(t=>{this.session.answer(r=>{t(r)})})}async*makeQuery(t){let r=this.session.query(t);if(r!==!0)throw jus(r);for(;;){let n=await this.fetchNextAnswer();if(n===null)throw new g6.ReportError(g6.MessageName.PROLOG_LIMIT_EXCEEDED,"Resolution limit exceeded");if(!n)break;if(n.id==="throw")throw jus(n);yield n}}};function J_e(e){return e.id==="null"?null:`${e.toJavaScript()}`}function eCl(e){if(e.id==="null")return null;{let t=e.toJavaScript();if(typeof t!="string")return JSON.stringify(t);try{return JSON.stringify(JSON.parse(t))}catch{return JSON.stringify(t)}}}var k4r=class e{static async find(t){return new e(t)}constructor(t){this.source="",this.project=t;let r=t.configuration.get("constraintsPath");Dxt.xfs.existsSync(r)&&(this.source=Dxt.xfs.readFileSync(r,"utf8"))}getProjectDatabase(){let t="";for(let r of Kus)t+=`dependency_type(${r}). `;for(let r of this.project.workspacesByCwd.values()){let n=r.relativeCwd;t+=`workspace(${due(n)}). `,t+=`workspace_ident(${due(n)}, ${due(VO.structUtils.stringifyIdent(r.anchoredLocator))}). `,t+=`workspace_version(${due(n)}, ${due(r.manifest.version)}). @@ -1464,17 +1464,17 @@ And the length must be: $`,trueValue:null,falseValue:null,caseSensitive: `,t+=`gen_enforced_field(_, _, _) :- false. `,t}get fullSource(){return`${this.getProjectDatabase()} ${this.source} -${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.fullSource)}async processClassic(){let t=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(t),enforcedFields:await this.genEnforcedFields(t)}}async process(){let{enforcedDependencies:t,enforcedFields:r}=await this.processClassic(),n=new Map;for(let{workspace:a,dependencyIdent:o,dependencyRange:l,dependencyType:A}of t){let f=Uus.normalizePath([A,VO.structUtils.stringifyIdent(o)]),I=VO.miscUtils.getMapWithDefault(n,a.cwd);VO.miscUtils.getMapWithDefault(I,f).set(l??void 0,new Set)}for(let{workspace:a,fieldPath:o,fieldValue:l}of r){let A=Uus.normalizePath(o),f=VO.miscUtils.getMapWithDefault(n,a.cwd);VO.miscUtils.getMapWithDefault(f,A).set(JSON.parse(l)??void 0,new Set)}return{manifestUpdates:n,reportedErrors:new Map}}async genEnforcedDependencies(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.DependencyIdent),l=J_e(n.links.DependencyRange),A=J_e(n.links.DependencyType);if(a===null||o===null)throw new Error("Invalid rule");let f=this.project.getWorkspaceByCwd(a),I=VO.structUtils.parseIdent(o);r.push({workspace:f,dependencyIdent:I,dependencyRange:l,dependencyType:A})}return VO.miscUtils.sortMap(r,[({dependencyRange:n})=>n!==null?"0":"1",({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({dependencyIdent:n})=>VO.structUtils.stringifyIdent(n)])}async genEnforcedFields(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.FieldPath),l=$ml(n.links.FieldValue);if(a===null||o===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:o,fieldValue:l})}return VO.miscUtils.sortMap(r,[({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({fieldPath:n})=>n])}async*query(t){let r=this.createSession();for await(let n of r.makeQuery(t)){let a={};for(let[o,l]of Object.entries(n.links))o!=="_"&&(a[o]=J_e(l));yield a}}};oGe.Constraints=k4r;function due(e){return typeof e=="string"?`'${e}'`:"[]"}});var qus=H(xte=>{"use strict";var eCl=xte&&xte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),tCl=xte&&xte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),rCl=xte&&xte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&eCl(t,e,r);return tCl(t,e),t};Object.defineProperty(xte,"__esModule",{value:!0});var nCl=el(),zus=Bn(),iCl=Bn(),G4r=($c(),vi(rg)),O6e=class extends nCl.BaseCommand{constructor(){super(...arguments),this.json=G4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.query=G4r.Option.String()}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>rCl(W6e())),r=await zus.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await zus.Project.find(r,this.context.cwd),a=await t.find(n),o=this.query;return o.endsWith(".")||(o=`${o}.`),(await iCl.StreamReport.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{for await(let f of a.query(o)){let I=Array.from(Object.entries(f)),C=I.length,b=I.reduce((E,[N])=>Math.max(E,N.length),0);for(let E=0;En!==null?"0":"1",({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({dependencyIdent:n})=>VO.structUtils.stringifyIdent(n)])}async genEnforcedFields(t){let r=[];for await(let n of t.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=Dxt.ppath.resolve(this.project.cwd,J_e(n.links.WorkspaceCwd)),o=J_e(n.links.FieldPath),l=eCl(n.links.FieldValue);if(a===null||o===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:o,fieldValue:l})}return VO.miscUtils.sortMap(r,[({workspace:n})=>VO.structUtils.stringifyIdent(n.anchoredLocator),({fieldPath:n})=>n])}async*query(t){let r=this.createSession();for await(let n of r.makeQuery(t)){let a={};for(let[o,l]of Object.entries(n.links))o!=="_"&&(a[o]=J_e(l));yield a}}};oGe.Constraints=k4r;function due(e){return typeof e=="string"?`'${e}'`:"[]"}});var qus=H(xte=>{"use strict";var tCl=xte&&xte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),rCl=xte&&xte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),nCl=xte&&xte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&tCl(t,e,r);return rCl(t,e),t};Object.defineProperty(xte,"__esModule",{value:!0});var iCl=el(),zus=Bn(),sCl=Bn(),G4r=($c(),vi(rg)),O6e=class extends iCl.BaseCommand{constructor(){super(...arguments),this.json=G4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.query=G4r.Option.String()}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>nCl(W6e())),r=await zus.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await zus.Project.find(r,this.context.cwd),a=await t.find(n),o=this.query;return o.endsWith(".")||(o=`${o}.`),(await sCl.StreamReport.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{for await(let f of a.query(o)){let I=Array.from(Object.entries(f)),C=I.length,b=I.reduce((E,[N])=>Math.max(E,N.length),0);for(let E=0;E{"use strict";var aCl=Gte&&Gte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cCl=Gte&&Gte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lCl=Gte&&Gte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&aCl(t,e,r);return cCl(t,e),t};Object.defineProperty(Gte,"__esModule",{value:!0});var uCl=el(),$us=Bn(),egs=($c(),vi(rg)),M6e=class extends uCl.BaseCommand{constructor(){super(...arguments),this.verbose=egs.Option.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>lCl(W6e())),r=await $us.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await $us.Project.find(r,this.context.cwd),a=await t.find(n);this.context.stdout.write(this.verbose?a.fullSource:a.source)}};M6e.paths=[["constraints","source"]];M6e.usage=egs.Command.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Gte.default=M6e});var igs=H(Z4r=>{"use strict";Object.defineProperty(Z4r,"__esModule",{value:!0});var ngs=(Pa(),vi(Va)),gCl=el(),U_e=Bn(),kxt=Bn(),F4r=($c(),vi(rg)),ACl=f4r(),rgs=ngs.__importStar(F6e()),H6e=class extends gCl.BaseCommand{constructor(){super(...arguments),this.fix=F4r.Option.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"}),this.json=F4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await U_e.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await U_e.Project.find(t,this.context.cwd);await r.restoreInstallState();let n=await r.loadUserConfig(),a;if(n?.constraints)a=new ACl.ModernEngine(r);else{let{Constraints:f}=await Promise.resolve().then(()=>ngs.__importStar(W6e()));a=await f.find(r)}let o,l=!1,A=!1;for(let f=this.fix?10:1;f>0;--f){let I=await a.process();if(!I)break;let{changedWorkspaces:C,remainingErrors:b}=rgs.applyEngineReport(r,I,{fix:this.fix}),E=[];for(let[N,B]of C){let F=N.manifest.indent;N.manifest=new U_e.Manifest,N.manifest.indent=F,N.manifest.load(B),E.push(N.persistManifest())}if(await Promise.all(E),!(C.size>0&&f>1)){o=rgs.convertReportToRoot(b,{configuration:t}),l=!1,A=!0;for(let[,N]of b)for(let B of N)B.fixable?l=!0:A=!1}}if(o.children.length===0)return 0;if(l){let f=A?`Those errors can all be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`;await U_e.StreamReport.start({configuration:t,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async I=>{I.reportInfo(U_e.MessageName.UNNAMED,f),I.reportSeparator()})}return o.children=U_e.miscUtils.sortMap(o.children,f=>f.value[1]),U_e.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1}),1}};H6e.paths=[["constraints"]];H6e.usage=F4r.Command.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]});xte.default=O6e;function oCl(e){return typeof e!="string"?`${e}`:e.match(/^[a-zA-Z][a-zA-Z0-9_]+$/)?e:`'${e}'`}function aCl(e,t){let r=e===0,n=e===t-1;return r&&n?"":r?"\u250C ":n?"\u2514 ":"\u2502 "}});var tgs=H(Gte=>{"use strict";var cCl=Gte&&Gte.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lCl=Gte&&Gte.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uCl=Gte&&Gte.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&cCl(t,e,r);return lCl(t,e),t};Object.defineProperty(Gte,"__esModule",{value:!0});var gCl=el(),$us=Bn(),egs=($c(),vi(rg)),M6e=class extends gCl.BaseCommand{constructor(){super(...arguments),this.verbose=egs.Option.Boolean("-v,--verbose",!1,{description:"Also print the fact database automatically compiled from the workspace manifests"})}async execute(){let{Constraints:t}=await Promise.resolve().then(()=>uCl(W6e())),r=await $us.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await $us.Project.find(r,this.context.cwd),a=await t.find(n);this.context.stdout.write(this.verbose?a.fullSource:a.source)}};M6e.paths=[["constraints","source"]];M6e.usage=egs.Command.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Gte.default=M6e});var igs=H(Z4r=>{"use strict";Object.defineProperty(Z4r,"__esModule",{value:!0});var ngs=(Pa(),vi(Va)),ACl=el(),U_e=Bn(),kxt=Bn(),F4r=($c(),vi(rg)),dCl=f4r(),rgs=ngs.__importStar(F6e()),H6e=class extends ACl.BaseCommand{constructor(){super(...arguments),this.fix=F4r.Option.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"}),this.json=F4r.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let t=await U_e.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await U_e.Project.find(t,this.context.cwd);await r.restoreInstallState();let n=await r.loadUserConfig(),a;if(n?.constraints)a=new dCl.ModernEngine(r);else{let{Constraints:f}=await Promise.resolve().then(()=>ngs.__importStar(W6e()));a=await f.find(r)}let o,l=!1,A=!1;for(let f=this.fix?10:1;f>0;--f){let I=await a.process();if(!I)break;let{changedWorkspaces:C,remainingErrors:b}=rgs.applyEngineReport(r,I,{fix:this.fix}),E=[];for(let[N,B]of C){let F=N.manifest.indent;N.manifest=new U_e.Manifest,N.manifest.indent=F,N.manifest.load(B),E.push(N.persistManifest())}if(await Promise.all(E),!(C.size>0&&f>1)){o=rgs.convertReportToRoot(b,{configuration:t}),l=!1,A=!0;for(let[,N]of b)for(let B of N)B.fixable?l=!0:A=!1}}if(o.children.length===0)return 0;if(l){let f=A?`Those errors can all be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${kxt.formatUtils.pretty(t,"yarn constraints --fix",kxt.formatUtils.Type.CODE)}`;await U_e.StreamReport.start({configuration:t,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async I=>{I.reportInfo(U_e.MessageName.UNNAMED,f),I.reportSeparator()})}return o.children=U_e.miscUtils.sortMap(o.children,f=>f.value[1]),U_e.treeUtils.emitTree(o,{configuration:t,stdout:this.context.stdout,json:this.json,separators:1}),1}};H6e.paths=[["constraints"]];H6e.usage=F4r.Command.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. - `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});Z4r.default=H6e});var cgs=H(Fte=>{"use strict";Object.defineProperty(Fte,"__esModule",{value:!0});Fte.ConstraintsCheckCommand=Fte.ConstraintsSourceCommand=Fte.ConstraintsQueryCommand=void 0;var Y6e=(Pa(),vi(Va)),pue=Bn(),dCl=f4r(),sgs=Y6e.__importDefault(qus());Fte.ConstraintsQueryCommand=sgs.default;var ogs=Y6e.__importDefault(tgs());Fte.ConstraintsSourceCommand=ogs.default;var ags=Y6e.__importDefault(igs());Fte.ConstraintsCheckCommand=ags.default;var pCl=Y6e.__importStar(F6e()),fCl={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:pue.SettingsType.BOOLEAN,default:!1},constraintsPath:{description:"The path of the constraints file.",type:pue.SettingsType.ABSOLUTE_PATH,default:"./constraints.pro"}},commands:[sgs.default,ogs.default,ags.default],hooks:{async validateProjectAfterInstall(e,{reportError:t}){if(!e.configuration.get("enableConstraintsChecks"))return;let r=await e.loadUserConfig(),n;if(r?.constraints)n=new dCl.ModernEngine(e);else{let{Constraints:l}=await Promise.resolve().then(()=>Y6e.__importStar(W6e()));n=await l.find(e)}let a=await n.process();if(!a)return;let{remainingErrors:o}=pCl.applyEngineReport(e,a);if(o.size!==0)if(e.configuration.isCI)for(let[l,A]of o)for(let f of A)t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`${pue.formatUtils.pretty(e.configuration,l.anchoredLocator,pue.formatUtils.Type.IDENT)}: ${f.text}`);else t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`Constraint check failed; run ${pue.formatUtils.pretty(e.configuration,"yarn constraints",pue.formatUtils.Type.CODE)} for more details`)}}};Fte.default=fCl});var lgs=H(L4r=>{"use strict";Object.defineProperty(L4r,"__esModule",{value:!0});var ICl=el(),xxt=Bn(),Gxt=($c(),vi(rg)),Fxt=class extends ICl.BaseCommand{constructor(){super(...arguments),this.pkg=Gxt.Option.String("-p,--package",{description:"The package to run the provided command from"}),this.quiet=Gxt.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Gxt.Option.String(),this.args=Gxt.Option.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let r=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),n=xxt.structUtils.parseDescriptor(r),a=n.name.match(/^create(-|$)/)?n:n.scope?xxt.structUtils.makeIdent(n.scope,`create-${n.name}`):xxt.structUtils.makeIdent(null,`create-${n.name}`),o=xxt.structUtils.stringifyIdent(a);return n.range!=="unknown"&&(o+=`@${n.range}`),this.cli.run(["dlx",...t,o,...this.args])}};Fxt.paths=[["create"]];L4r.default=Fxt});var ggs=H(V4r=>{"use strict";Object.defineProperty(V4r,"__esModule",{value:!0});var ugs=el(),Zte=Bn(),Zxt=Bn(),lL=no(),Q6e=($c(),vi(rg)),X6e=class extends ugs.BaseCommand{constructor(){super(...arguments),this.packages=Q6e.Option.Array("-p,--package",{description:"The package(s) to install before running the command"}),this.quiet=Q6e.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Q6e.Option.String(),this.args=Q6e.Option.Proxy()}async execute(){return Zte.Configuration.telemetry=null,await lL.xfs.mktempPromise(async t=>{let r=lL.ppath.join(t,`dlx-${process.pid}`);await lL.xfs.mkdirPromise(r),await lL.xfs.writeFilePromise(lL.ppath.join(r,"package.json"),`{} + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});Z4r.default=H6e});var cgs=H(Fte=>{"use strict";Object.defineProperty(Fte,"__esModule",{value:!0});Fte.ConstraintsCheckCommand=Fte.ConstraintsSourceCommand=Fte.ConstraintsQueryCommand=void 0;var Y6e=(Pa(),vi(Va)),pue=Bn(),pCl=f4r(),sgs=Y6e.__importDefault(qus());Fte.ConstraintsQueryCommand=sgs.default;var ogs=Y6e.__importDefault(tgs());Fte.ConstraintsSourceCommand=ogs.default;var ags=Y6e.__importDefault(igs());Fte.ConstraintsCheckCommand=ags.default;var fCl=Y6e.__importStar(F6e()),ICl={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:pue.SettingsType.BOOLEAN,default:!1},constraintsPath:{description:"The path of the constraints file.",type:pue.SettingsType.ABSOLUTE_PATH,default:"./constraints.pro"}},commands:[sgs.default,ogs.default,ags.default],hooks:{async validateProjectAfterInstall(e,{reportError:t}){if(!e.configuration.get("enableConstraintsChecks"))return;let r=await e.loadUserConfig(),n;if(r?.constraints)n=new pCl.ModernEngine(e);else{let{Constraints:l}=await Promise.resolve().then(()=>Y6e.__importStar(W6e()));n=await l.find(e)}let a=await n.process();if(!a)return;let{remainingErrors:o}=fCl.applyEngineReport(e,a);if(o.size!==0)if(e.configuration.isCI)for(let[l,A]of o)for(let f of A)t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`${pue.formatUtils.pretty(e.configuration,l.anchoredLocator,pue.formatUtils.Type.IDENT)}: ${f.text}`);else t(pue.MessageName.CONSTRAINTS_CHECK_FAILED,`Constraint check failed; run ${pue.formatUtils.pretty(e.configuration,"yarn constraints",pue.formatUtils.Type.CODE)} for more details`)}}};Fte.default=ICl});var lgs=H(L4r=>{"use strict";Object.defineProperty(L4r,"__esModule",{value:!0});var hCl=el(),xxt=Bn(),Gxt=($c(),vi(rg)),Fxt=class extends hCl.BaseCommand{constructor(){super(...arguments),this.pkg=Gxt.Option.String("-p,--package",{description:"The package to run the provided command from"}),this.quiet=Gxt.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Gxt.Option.String(),this.args=Gxt.Option.Proxy()}async execute(){let t=[];this.pkg&&t.push("--package",this.pkg),this.quiet&&t.push("--quiet");let r=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),n=xxt.structUtils.parseDescriptor(r),a=n.name.match(/^create(-|$)/)?n:n.scope?xxt.structUtils.makeIdent(n.scope,`create-${n.name}`):xxt.structUtils.makeIdent(null,`create-${n.name}`),o=xxt.structUtils.stringifyIdent(a);return n.range!=="unknown"&&(o+=`@${n.range}`),this.cli.run(["dlx",...t,o,...this.args])}};Fxt.paths=[["create"]];L4r.default=Fxt});var ggs=H(V4r=>{"use strict";Object.defineProperty(V4r,"__esModule",{value:!0});var ugs=el(),Zte=Bn(),Zxt=Bn(),lL=no(),Q6e=($c(),vi(rg)),X6e=class extends ugs.BaseCommand{constructor(){super(...arguments),this.packages=Q6e.Option.Array("-p,--package",{description:"The package(s) to install before running the command"}),this.quiet=Q6e.Option.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"}),this.command=Q6e.Option.String(),this.args=Q6e.Option.Proxy()}async execute(){return Zte.Configuration.telemetry=null,await lL.xfs.mktempPromise(async t=>{let r=lL.ppath.join(t,`dlx-${process.pid}`);await lL.xfs.mkdirPromise(r),await lL.xfs.writeFilePromise(lL.ppath.join(r,"package.json"),`{} `),await lL.xfs.writeFilePromise(lL.ppath.join(r,"yarn.lock"),"");let n=lL.ppath.join(r,".yarnrc.yml"),a=await Zte.Configuration.findProjectCwd(this.context.cwd),l={enableGlobalCache:!(await Zte.Configuration.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:(0,Zte.stringifyMessageName)(Zte.MessageName.UNUSED_PACKAGE_EXTENSION),level:Zxt.formatUtils.LogLevel.Discard}]},A=a!==null?lL.ppath.join(a,".yarnrc.yml"):null;A!==null&&lL.xfs.existsSync(A)?(await lL.xfs.copyFilePromise(A,n),await Zte.Configuration.updateConfiguration(r,F=>{let Q=Zte.miscUtils.toMerged(F,l);return Array.isArray(F.plugins)&&(Q.plugins=F.plugins.map(X=>{let ae=typeof X=="string"?X:X.path,ne=lL.npath.isAbsolute(ae)?ae:lL.npath.resolve(lL.npath.fromPortablePath(a),ae);return typeof X=="string"?ne:{path:ne,spec:X.spec}})),Q})):await lL.xfs.writeJsonPromise(n,l);let f=this.packages??[this.command],I=Zxt.structUtils.parseDescriptor(this.command).name,C=await this.cli.run(["add","--fixed","--",...f],{cwd:r,quiet:this.quiet});if(C!==0)return C;this.quiet||this.context.stdout.write(` -`);let b=await Zte.Configuration.find(r,this.context.plugins),{project:E,workspace:N}=await Zte.Project.find(b,r);if(N===null)throw new ugs.WorkspaceRequiredError(E.cwd,r);await E.restoreInstallState();let B=await Zxt.scriptUtils.getWorkspaceAccessibleBinaries(N);return B.has(I)===!1&&B.size===1&&typeof this.packages>"u"&&(I=Array.from(B)[0][0]),await Zxt.scriptUtils.executeWorkspaceAccessibleBinary(N,I,this.args,{packageAccessibleBinaries:B,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};X6e.paths=[["dlx"]];X6e.usage=Q6e.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});V4r.default=X6e});var fgs=H(K_e=>{"use strict";Object.defineProperty(K_e,"__esModule",{value:!0});K_e.DlxCommand=K_e.CreateCommand=void 0;var Ags=(Pa(),vi(Va)),dgs=Ags.__importDefault(lgs());K_e.CreateCommand=dgs.default;var pgs=Ags.__importDefault(ggs());K_e.DlxCommand=pgs.default;var hCl={commands:[dgs.default,pgs.default]};K_e.default=hCl});var P4r=H(Lxt=>{"use strict";Object.defineProperty(Lxt,"__esModule",{value:!0});Lxt.PROTOCOL=void 0;Lxt.PROTOCOL="exec:"});var Vxt=H(cGe=>{"use strict";Object.defineProperty(cGe,"__esModule",{value:!0});cGe.parseSpec=mCl;cGe.makeSpec=Igs;cGe.makeLocator=CCl;cGe.loadGeneratorFile=_Cl;var aGe=Bn(),Q4=no();function mCl(e){let{params:t,selector:r}=aGe.structUtils.parseRange(e),n=Q4.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?aGe.structUtils.parseLocator(t.locator):null,path:n}}function Igs({parentLocator:e,path:t,generatorHash:r,protocol:n}){let a=e!==null?{locator:aGe.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return aGe.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function CCl(e,{parentLocator:t,path:r,generatorHash:n,protocol:a}){return aGe.structUtils.makeLocator(e,Igs({parentLocator:t,path:r,generatorHash:n,protocol:a}))}async function _Cl(e,t,r){let{parentLocator:n,path:a}=aGe.structUtils.parseFileStyleRange(e,{protocol:t}),o=Q4.ppath.isAbsolute(a)?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.PortablePath.dot,localPath:Q4.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.ppath.relative(Q4.PortablePath.root,o.localPath)}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=Q4.ppath.join(l.prefixPath,a);return await A.readFilePromise(f,"utf8")}});var Cgs=H(Pxt=>{"use strict";Object.defineProperty(Pxt,"__esModule",{value:!0});Pxt.ExecFetcher=void 0;var X4=Bn(),hgs=Bn(),mgs=Bn(),PS=no(),W4r=P4r(),yCl=Vxt(),O4r=class{supports(t,r){return!!t.reference.startsWith(W4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=X4.structUtils.parseFileStyleRange(t.reference,{protocol:W4r.PROTOCOL});if(PS.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:PS.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:X4.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){let n=r.project.getDependencyMeta(t,null);if(!r.project.configuration.get("enableScripts")&&!n.built)throw new mgs.ReportError(mgs.MessageName.DISABLED_BUILD_SCRIPTS,`${X4.structUtils.prettyLocator(r.project.configuration,t)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await(0,yCl.loadGeneratorFile)(t.reference,W4r.PROTOCOL,r);return PS.xfs.mktempPromise(async o=>{let l=PS.ppath.join(o,"generator.js");return await PS.xfs.writeFilePromise(l,a),PS.xfs.mktempPromise(async A=>{if(await this.generatePackage(A,t,l,r),!PS.xfs.existsSync(PS.ppath.join(A,"build")))throw new Error("The script should have generated a build directory");return await X4.tgzUtils.makeArchiveFromDirectory(PS.ppath.join(A,"build"),{prefixPath:X4.structUtils.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(t,r,n,a){return await PS.xfs.mktempPromise(async o=>{let l=await X4.scriptUtils.makeScriptEnv({project:a.project,binFolder:o}),A=PS.ppath.join(t,"runtime.js");return await PS.xfs.mktempPromise(async f=>{let I=PS.ppath.join(f,"buildfile.log"),C=PS.ppath.join(t,"generator"),b=PS.ppath.join(t,"build");await PS.xfs.mkdirPromise(C),await PS.xfs.mkdirPromise(b);let E={tempDir:PS.npath.fromPortablePath(C),buildDir:PS.npath.fromPortablePath(b),locator:X4.structUtils.stringifyLocator(r)};await PS.xfs.writeFilePromise(A,` +`);let b=await Zte.Configuration.find(r,this.context.plugins),{project:E,workspace:N}=await Zte.Project.find(b,r);if(N===null)throw new ugs.WorkspaceRequiredError(E.cwd,r);await E.restoreInstallState();let B=await Zxt.scriptUtils.getWorkspaceAccessibleBinaries(N);return B.has(I)===!1&&B.size===1&&typeof this.packages>"u"&&(I=Array.from(B)[0][0]),await Zxt.scriptUtils.executeWorkspaceAccessibleBinary(N,I,this.args,{packageAccessibleBinaries:B,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};X6e.paths=[["dlx"]];X6e.usage=Q6e.Command.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-vite to scaffold a new Vite project","yarn dlx create-vite"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});V4r.default=X6e});var fgs=H(K_e=>{"use strict";Object.defineProperty(K_e,"__esModule",{value:!0});K_e.DlxCommand=K_e.CreateCommand=void 0;var Ags=(Pa(),vi(Va)),dgs=Ags.__importDefault(lgs());K_e.CreateCommand=dgs.default;var pgs=Ags.__importDefault(ggs());K_e.DlxCommand=pgs.default;var mCl={commands:[dgs.default,pgs.default]};K_e.default=mCl});var P4r=H(Lxt=>{"use strict";Object.defineProperty(Lxt,"__esModule",{value:!0});Lxt.PROTOCOL=void 0;Lxt.PROTOCOL="exec:"});var Vxt=H(cGe=>{"use strict";Object.defineProperty(cGe,"__esModule",{value:!0});cGe.parseSpec=CCl;cGe.makeSpec=Igs;cGe.makeLocator=_Cl;cGe.loadGeneratorFile=yCl;var aGe=Bn(),Q4=no();function CCl(e){let{params:t,selector:r}=aGe.structUtils.parseRange(e),n=Q4.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?aGe.structUtils.parseLocator(t.locator):null,path:n}}function Igs({parentLocator:e,path:t,generatorHash:r,protocol:n}){let a=e!==null?{locator:aGe.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return aGe.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function _Cl(e,{parentLocator:t,path:r,generatorHash:n,protocol:a}){return aGe.structUtils.makeLocator(e,Igs({parentLocator:t,path:r,generatorHash:n,protocol:a}))}async function yCl(e,t,r){let{parentLocator:n,path:a}=aGe.structUtils.parseFileStyleRange(e,{protocol:t}),o=Q4.ppath.isAbsolute(a)?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.PortablePath.dot,localPath:Q4.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new Q4.CwdFS(Q4.PortablePath.root),prefixPath:Q4.ppath.relative(Q4.PortablePath.root,o.localPath)}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=Q4.ppath.join(l.prefixPath,a);return await A.readFilePromise(f,"utf8")}});var Cgs=H(Pxt=>{"use strict";Object.defineProperty(Pxt,"__esModule",{value:!0});Pxt.ExecFetcher=void 0;var X4=Bn(),hgs=Bn(),mgs=Bn(),PS=no(),W4r=P4r(),bCl=Vxt(),O4r=class{supports(t,r){return!!t.reference.startsWith(W4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=X4.structUtils.parseFileStyleRange(t.reference,{protocol:W4r.PROTOCOL});if(PS.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:PS.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:X4.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){let n=r.project.getDependencyMeta(t,null);if(!r.project.configuration.get("enableScripts")&&!n.built)throw new mgs.ReportError(mgs.MessageName.DISABLED_BUILD_SCRIPTS,`${X4.structUtils.prettyLocator(r.project.configuration,t)} can't be built with the exec: protocol because all scripts have been disabled.`);let a=await(0,bCl.loadGeneratorFile)(t.reference,W4r.PROTOCOL,r);return PS.xfs.mktempPromise(async o=>{let l=PS.ppath.join(o,"generator.js");return await PS.xfs.writeFilePromise(l,a),PS.xfs.mktempPromise(async A=>{if(await this.generatePackage(A,t,l,r),!PS.xfs.existsSync(PS.ppath.join(A,"build")))throw new Error("The script should have generated a build directory");return await X4.tgzUtils.makeArchiveFromDirectory(PS.ppath.join(A,"build"),{prefixPath:X4.structUtils.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(t,r,n,a){return await PS.xfs.mktempPromise(async o=>{let l=await X4.scriptUtils.makeScriptEnv({project:a.project,binFolder:o}),A=PS.ppath.join(t,"runtime.js");return await PS.xfs.mktempPromise(async f=>{let I=PS.ppath.join(f,"buildfile.log"),C=PS.ppath.join(t,"generator"),b=PS.ppath.join(t,"build");await PS.xfs.mkdirPromise(C),await PS.xfs.mkdirPromise(b);let E={tempDir:PS.npath.fromPortablePath(C),buildDir:PS.npath.fromPortablePath(b),locator:X4.structUtils.stringifyLocator(r)};await PS.xfs.writeFilePromise(A,` // Expose 'Module' as a global variable Object.defineProperty(global, 'Module', { get: () => require('module'), @@ -1499,7 +1499,7 @@ ${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.full enumerable: true, }); `);let N=l.NODE_OPTIONS||"",B=/\s*--require\s+\S*\.pnp\.c?js\s*/g;N=N.replace(B," ").trim(),l.NODE_OPTIONS=N;let{stdout:F,stderr:Q}=a.project.configuration.getSubprocessStreams(I,{header:`# This file contains the result of Yarn generating a package (${X4.structUtils.stringifyLocator(r)}) -`,prefix:X4.structUtils.prettyLocator(a.project.configuration,r),report:a.report}),{code:X}=await X4.execUtils.pipevp(process.execPath,["--require",PS.npath.fromPortablePath(A),PS.npath.fromPortablePath(n),X4.structUtils.stringifyIdent(r)],{cwd:t,env:l,stdin:null,stdout:F,stderr:Q});if(X!==0)throw PS.xfs.detachTemp(f),new Error(`Package generation failed (exit code ${X}, logs can be found here: ${hgs.formatUtils.pretty(a.project.configuration,I,hgs.formatUtils.Type.PATH)})`)})})}};Pxt.ExecFetcher=O4r});var ygs=H(Wxt=>{"use strict";Object.defineProperty(Wxt,"__esModule",{value:!0});Wxt.ExecResolver=void 0;var bCl=(Pa(),vi(Va)),ECl=Bn(),SCl=Bn(),_gs=Bn(),fue=Bn(),J6e=P4r(),M4r=bCl.__importStar(Vxt()),vCl=2,H4r=class{supportsDescriptor(t,r){return!!t.range.startsWith(J6e.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(J6e.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){if(n.project.tryWorkspaceByLocator(r)===null)throw new _gs.ReportError(_gs.MessageName.INVALID_MANIFEST,`${fue.structUtils.prettyLocator(n.project.configuration,r)} lists ${fue.structUtils.prettyDescriptor(n.project.configuration,t)} as dependency, but only workspaces can depend on exec: packages.`);return fue.structUtils.bindDescriptor(t,{locator:fue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=M4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await M4r.loadGeneratorFile(fue.structUtils.makeRange({protocol:J6e.PROTOCOL,source:a,selector:a,params:{locator:fue.structUtils.stringifyLocator(o)}}),J6e.PROTOCOL,n.fetchOptions),A=fue.hashUtils.makeHash(`${vCl}`,l).slice(0,6);return[M4r.makeLocator(t,{parentLocator:o,path:a,generatorHash:A,protocol:J6e.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await fue.miscUtils.releaseAfterUseAsync(async()=>await ECl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:SCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Wxt.ExecResolver=H4r});var Sgs=H(Lte=>{"use strict";Object.defineProperty(Lte,"__esModule",{value:!0});Lte.ExecResolver=Lte.ExecFetcher=Lte.execUtils=void 0;var BCl=(Pa(),vi(Va)),bgs=Cgs();Object.defineProperty(Lte,"ExecFetcher",{enumerable:!0,get:function(){return bgs.ExecFetcher}});var Egs=ygs();Object.defineProperty(Lte,"ExecResolver",{enumerable:!0,get:function(){return Egs.ExecResolver}});var wCl=BCl.__importStar(Vxt());Lte.execUtils=wCl;var TCl={fetchers:[bgs.ExecFetcher],resolvers:[Egs.ExecResolver]};Lte.default=TCl});var lGe=H(Iue=>{"use strict";Object.defineProperty(Iue,"__esModule",{value:!0});Iue.PROTOCOL=Iue.TARBALL_REGEXP=Iue.FILE_REGEXP=void 0;Iue.FILE_REGEXP=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/;Iue.TARBALL_REGEXP=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;Iue.PROTOCOL="file:"});var uGe=H(hue=>{"use strict";Object.defineProperty(hue,"__esModule",{value:!0});hue.parseSpec=NCl;hue.makeSpec=vgs;hue.makeLocator=DCl;hue.fetchArchiveFromLocator=kCl;hue.makeArchiveFromLocator=Bgs;hue.makeBufferFromLocator=xCl;var J4=Bn(),uw=no(),RCl=lGe();function NCl(e){let{params:t,selector:r}=J4.structUtils.parseRange(e),n=uw.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?J4.structUtils.parseLocator(t.locator):null,path:n}}function vgs({parentLocator:e,path:t,hash:r,protocol:n}){let a=e!==null?{locator:J4.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return J4.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function DCl(e,{parentLocator:t,path:r,hash:n,protocol:a}){return J4.structUtils.makeLocator(e,vgs({parentLocator:t,path:r,hash:n,protocol:a}))}async function kCl(e,t){let{parentLocator:r,path:n}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:RCl.PROTOCOL}),a=uw.ppath.isAbsolute(n)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await t.fetcher.fetch(r,t),o=a.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,a.localPath)}:a;a!==o&&a.releaseFs&&a.releaseFs();let l=o.packageFs,A=uw.ppath.join(o.prefixPath,n);return await J4.miscUtils.releaseAfterUseAsync(async()=>await l.readFilePromise(A),o.releaseFs)}async function Bgs(e,{protocol:t,fetchOptions:r,inMemory:n=!1}){let{parentLocator:a,path:o}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:t}),l=uw.ppath.isAbsolute(o)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await r.fetcher.fetch(a,r),A=l.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,l.localPath)}:l;l!==A&&l.releaseFs&&l.releaseFs();let f=A.packageFs,I=uw.ppath.join(A.prefixPath,o);return await J4.miscUtils.releaseAfterUseAsync(async()=>await J4.tgzUtils.makeArchiveFromDirectory(I,{baseFs:f,prefixPath:J4.structUtils.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:n}),A.releaseFs)}async function xCl(e,{protocol:t,fetchOptions:r}){return(await Bgs(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}});var Tgs=H(Oxt=>{"use strict";Object.defineProperty(Oxt,"__esModule",{value:!0});Oxt.FileFetcher=void 0;var GCl=(Pa(),vi(Va)),Y4r=Bn(),wgs=no(),Q4r=lGe(),FCl=GCl.__importStar(uGe()),X4r=class{supports(t,r){return!!t.reference.startsWith(Q4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=Y4r.structUtils.parseFileStyleRange(t.reference,{protocol:Q4r.PROTOCOL});if(wgs.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:wgs.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Y4r.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Y4r.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){return FCl.makeArchiveFromLocator(t,{protocol:Q4r.PROTOCOL,fetchOptions:r})}};Oxt.FileFetcher=X4r});var Rgs=H(Mxt=>{"use strict";Object.defineProperty(Mxt,"__esModule",{value:!0});Mxt.FileResolver=void 0;var ZCl=(Pa(),vi(Va)),mue=Bn(),LCl=Bn(),VCl=Bn(),Cue=lGe(),J4r=ZCl.__importStar(uGe()),PCl=2,U4r=class{supportsDescriptor(t,r){return t.range.match(Cue.FILE_REGEXP)?!0:!!t.range.startsWith(Cue.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(Cue.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Cue.FILE_REGEXP.test(t.range)&&(t=mue.structUtils.makeDescriptor(t,`${Cue.PROTOCOL}${t.range}`)),mue.structUtils.bindDescriptor(t,{locator:mue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=J4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await J4r.makeBufferFromLocator(mue.structUtils.makeLocator(t,mue.structUtils.makeRange({protocol:Cue.PROTOCOL,source:a,selector:a,params:{locator:mue.structUtils.stringifyLocator(o)}})),{protocol:Cue.PROTOCOL,fetchOptions:n.fetchOptions}),A=mue.hashUtils.makeHash(`${PCl}`,l).slice(0,6);return[J4r.makeLocator(t,{parentLocator:o,path:a,hash:A,protocol:Cue.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await mue.miscUtils.releaseAfterUseAsync(async()=>await VCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:LCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Mxt.FileResolver=U4r});var Dgs=H(Yxt=>{"use strict";Object.defineProperty(Yxt,"__esModule",{value:!0});Yxt.TarballFileFetcher=void 0;var WCl=(Pa(),vi(Va)),Hxt=Bn(),Ngs=lGe(),OCl=WCl.__importStar(uGe()),K4r=class{supports(t,r){return Ngs.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Ngs.PROTOCOL):!1}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Hxt.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Hxt.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromDisk(t,r){let n=await OCl.fetchArchiveFromLocator(t,r);return await Hxt.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:Hxt.structUtils.getIdentVendorPath(t),stripComponents:1})}};Yxt.TarballFileFetcher=K4r});var kgs=H(Jxt=>{"use strict";Object.defineProperty(Jxt,"__esModule",{value:!0});Jxt.TarballFileResolver=void 0;var MCl=(Pa(),vi(Va)),HCl=Bn(),YCl=Bn(),QCl=Bn(),Qxt=Bn(),Vte=lGe(),Xxt=MCl.__importStar(uGe()),j4r=class{supportsDescriptor(t,r){return Vte.TARBALL_REGEXP.test(t.range)?!!(t.range.startsWith(Vte.PROTOCOL)||Vte.FILE_REGEXP.test(t.range)):!1}supportsLocator(t,r){return Vte.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Vte.PROTOCOL):!1}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Vte.FILE_REGEXP.test(t.range)&&(t=Qxt.structUtils.makeDescriptor(t,`${Vte.PROTOCOL}${t.range}`)),Qxt.structUtils.bindDescriptor(t,{locator:Qxt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=Xxt.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=Xxt.makeLocator(t,{parentLocator:o,path:a,hash:"",protocol:Vte.PROTOCOL}),A=await Xxt.fetchArchiveFromLocator(l,n.fetchOptions),f=HCl.hashUtils.makeHash(A).slice(0,6);return[Xxt.makeLocator(t,{parentLocator:o,path:a,hash:f,protocol:Vte.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qxt.miscUtils.releaseAfterUseAsync(async()=>await YCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:QCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Jxt.TarballFileResolver=j4r});var Lgs=H(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TarballFileResolver=PO.TarballFileFetcher=PO.FileResolver=PO.FileFetcher=PO.fileUtils=void 0;var XCl=(Pa(),vi(Va)),xgs=Tgs();Object.defineProperty(PO,"FileFetcher",{enumerable:!0,get:function(){return xgs.FileFetcher}});var Ggs=Rgs();Object.defineProperty(PO,"FileResolver",{enumerable:!0,get:function(){return Ggs.FileResolver}});var Fgs=Dgs();Object.defineProperty(PO,"TarballFileFetcher",{enumerable:!0,get:function(){return Fgs.TarballFileFetcher}});var Zgs=kgs();Object.defineProperty(PO,"TarballFileResolver",{enumerable:!0,get:function(){return Zgs.TarballFileResolver}});var JCl=XCl.__importStar(uGe());PO.fileUtils=JCl;var UCl={fetchers:[Fgs.TarballFileFetcher,xgs.FileFetcher],resolvers:[Zgs.TarballFileResolver,Ggs.FileResolver]};PO.default=UCl});var z4r=H(U6e=>{"use strict";Object.defineProperty(U6e,"__esModule",{value:!0});U6e.isGithubUrl=zCl;U6e.parseGithubUrl=qCl;U6e.invalidGithubUrlMessage=Pgs;var KCl=(Pa(),vi(Va)),jCl=KCl.__importDefault(wt("querystring")),Vgs=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function zCl(e){return e?Vgs.some(t=>!!e.match(t)):!1}function qCl(e){let t;for(let A of Vgs)if(t=e.match(A),t)break;if(!t)throw new Error(Pgs(e));let[,r,n,a,o="master"]=t,{commit:l}=jCl.default.parse(o);return o=l||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:a,treeish:o}}function Pgs(e){return`Input cannot be parsed as a valid GitHub URL ('${e}').`}});var Ogs=H(Kxt=>{"use strict";Object.defineProperty(Kxt,"__esModule",{value:!0});Kxt.GithubFetcher=void 0;var $Cl=(Pa(),vi(Va)),j_e=Bn(),Uxt=no(),e_l=nDe(),Wgs=$Cl.__importStar(z4r()),q4r=class{supports(t,r){return!!Wgs.isGithubUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j_e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:j_e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await j_e.httpUtils.get(this.getLocatorUrl(t,r),{configuration:r.project.configuration});return await Uxt.xfs.mktempPromise(async a=>{let o=new Uxt.CwdFS(a);await j_e.tgzUtils.extractArchiveTo(n,o,{stripComponents:1});let l=e_l.gitUtils.splitRepoUrl(t.reference),A=Uxt.ppath.join(a,"package.tgz");await j_e.scriptUtils.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:l.extra.workspace,locator:t});let f=await Uxt.xfs.readFilePromise(A);return await j_e.tgzUtils.convertToZip(f,{configuration:r.project.configuration,prefixPath:j_e.structUtils.getIdentVendorPath(t),stripComponents:1})})}getLocatorUrl(t,r){let{auth:n,username:a,reponame:o,treeish:l}=Wgs.parseGithubUrl(t.reference);return`https://${n?`${n}@`:""}github.com/${a}/${o}/archive/${l}.tar.gz`}};Kxt.GithubFetcher=q4r});var Hgs=H(z_e=>{"use strict";Object.defineProperty(z_e,"__esModule",{value:!0});z_e.GithubFetcher=z_e.githubUtils=void 0;var t_l=(Pa(),vi(Va)),Mgs=Ogs();Object.defineProperty(z_e,"GithubFetcher",{enumerable:!0,get:function(){return Mgs.GithubFetcher}});var r_l=t_l.__importStar(z4r());z_e.githubUtils=r_l;var n_l={hooks:{async fetchHostedRepository(e,t,r){if(e!==null)return e;let n=new Mgs.GithubFetcher;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch{return null}}}};z_e.default=n_l});var eJr=H($4r=>{"use strict";Object.defineProperty($4r,"__esModule",{value:!0});$4r.isTgzUrl=i_l;function i_l(e){let t;try{t=new URL(e)}catch{return!1}return!(t.protocol!=="http:"&&t.protocol!=="https:"||!t.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}});var Ygs=H(jxt=>{"use strict";Object.defineProperty(jxt,"__esModule",{value:!0});jxt.TarballHttpFetcher=void 0;var s_l=(Pa(),vi(Va)),K6e=Bn(),o_l=s_l.__importStar(eJr()),tJr=class{supports(t,r){return o_l.isTgzUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${K6e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:K6e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await K6e.httpUtils.get(t.reference,{configuration:r.project.configuration});return await K6e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:K6e.structUtils.getIdentVendorPath(t),stripComponents:1})}};jxt.TarballHttpFetcher=tJr});var Jgs=H(zxt=>{"use strict";Object.defineProperty(zxt,"__esModule",{value:!0});zxt.TarballHttpResolver=void 0;var a_l=(Pa(),vi(Va)),c_l=Bn(),l_l=Bn(),Qgs=Bn(),Xgs=a_l.__importStar(eJr()),rJr=class{supportsDescriptor(t,r){return Xgs.isTgzUrl(t.range)}supportsLocator(t,r){return Xgs.isTgzUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[Qgs.structUtils.convertDescriptorToLocator(t)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qgs.miscUtils.releaseAfterUseAsync(async()=>await c_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:l_l.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};zxt.TarballHttpResolver=rJr});var jgs=H(q_e=>{"use strict";Object.defineProperty(q_e,"__esModule",{value:!0});q_e.TarballHttpResolver=q_e.TarballHttpFetcher=void 0;var Ugs=Ygs();Object.defineProperty(q_e,"TarballHttpFetcher",{enumerable:!0,get:function(){return Ugs.TarballHttpFetcher}});var Kgs=Jgs();Object.defineProperty(q_e,"TarballHttpResolver",{enumerable:!0,get:function(){return Kgs.TarballHttpResolver}});var u_l={fetchers:[Ugs.TarballHttpFetcher],resolvers:[Kgs.TarballHttpResolver]};q_e.default=u_l});var iJr=H(nJr=>{"use strict";Object.defineProperty(nJr,"__esModule",{value:!0});var g_l=el(),A6=Bn(),$_e=Bn(),Q_=no(),_ue=($c(),vi(rg)),j6e=class extends g_l.BaseCommand{constructor(){super(...arguments),this.private=_ue.Option.Boolean("-p,--private",!1,{description:"Initialize a private package"}),this.workspace=_ue.Option.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"}),this.install=_ue.Option.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"}),this.name=_ue.Option.String("-n,--name",{description:"Initialize a package with the given name"}),this.usev2=_ue.Option.Boolean("-2",!1,{hidden:!0}),this.yes=_ue.Option.Boolean("-y,--yes",{hidden:!0})}async execute(){let t=await A6.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(t,r):await this.executeRegular(t)}async executeProxy(t,r){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new _ue.UsageError("Cannot use the --install flag from within a project subdirectory");Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(n)||await Q_.xfs.writeFilePromise(n,"");let a=await this.cli.run(["set","version",r],{quiet:!0});if(a!==0)return a;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.name&&o.push(`-n=${this.name}`),this.yes&&o.push("-y"),await Q_.xfs.mktempPromise(async l=>{let{code:A}=await $_e.execUtils.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await $_e.scriptUtils.makeScriptEnv({binFolder:l})});return A})}async initialize(){}async executeRegular(t){let r=null;try{r=(await A6.Project.find(t,this.context.cwd)).project}catch{r=null}Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=await A6.Manifest.tryFind(this.context.cwd),a=n??new A6.Manifest,o=Object.fromEntries(t.get("initFields").entries());a.load(o),a.name=a.name??$_e.structUtils.makeIdent(t.get("initScope"),this.name??Q_.ppath.basename(this.context.cwd)),a.packageManager=A6.YarnVersion&&A6.miscUtils.isTaggedYarnVersion(A6.YarnVersion)?`yarn@${A6.YarnVersion}`:null,(!n&&this.workspace||this.private)&&(a.private=!0),this.workspace&&a.workspaceDefinitions.length===0&&(await Q_.xfs.mkdirPromise(Q_.ppath.join(this.context.cwd,"packages"),{recursive:!0}),a.workspaceDefinitions=[{pattern:"packages/*"}]);let l={};a.exportTo(l);let A=Q_.ppath.join(this.context.cwd,A6.Manifest.fileName);await Q_.xfs.changeFilePromise(A,`${JSON.stringify(l,null,2)} +`,prefix:X4.structUtils.prettyLocator(a.project.configuration,r),report:a.report}),{code:X}=await X4.execUtils.pipevp(process.execPath,["--require",PS.npath.fromPortablePath(A),PS.npath.fromPortablePath(n),X4.structUtils.stringifyIdent(r)],{cwd:t,env:l,stdin:null,stdout:F,stderr:Q});if(X!==0)throw PS.xfs.detachTemp(f),new Error(`Package generation failed (exit code ${X}, logs can be found here: ${hgs.formatUtils.pretty(a.project.configuration,I,hgs.formatUtils.Type.PATH)})`)})})}};Pxt.ExecFetcher=O4r});var ygs=H(Wxt=>{"use strict";Object.defineProperty(Wxt,"__esModule",{value:!0});Wxt.ExecResolver=void 0;var ECl=(Pa(),vi(Va)),SCl=Bn(),vCl=Bn(),_gs=Bn(),fue=Bn(),J6e=P4r(),M4r=ECl.__importStar(Vxt()),BCl=2,H4r=class{supportsDescriptor(t,r){return!!t.range.startsWith(J6e.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(J6e.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){if(n.project.tryWorkspaceByLocator(r)===null)throw new _gs.ReportError(_gs.MessageName.INVALID_MANIFEST,`${fue.structUtils.prettyLocator(n.project.configuration,r)} lists ${fue.structUtils.prettyDescriptor(n.project.configuration,t)} as dependency, but only workspaces can depend on exec: packages.`);return fue.structUtils.bindDescriptor(t,{locator:fue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=M4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await M4r.loadGeneratorFile(fue.structUtils.makeRange({protocol:J6e.PROTOCOL,source:a,selector:a,params:{locator:fue.structUtils.stringifyLocator(o)}}),J6e.PROTOCOL,n.fetchOptions),A=fue.hashUtils.makeHash(`${BCl}`,l).slice(0,6);return[M4r.makeLocator(t,{parentLocator:o,path:a,generatorHash:A,protocol:J6e.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await fue.miscUtils.releaseAfterUseAsync(async()=>await SCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:vCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Wxt.ExecResolver=H4r});var Sgs=H(Lte=>{"use strict";Object.defineProperty(Lte,"__esModule",{value:!0});Lte.ExecResolver=Lte.ExecFetcher=Lte.execUtils=void 0;var wCl=(Pa(),vi(Va)),bgs=Cgs();Object.defineProperty(Lte,"ExecFetcher",{enumerable:!0,get:function(){return bgs.ExecFetcher}});var Egs=ygs();Object.defineProperty(Lte,"ExecResolver",{enumerable:!0,get:function(){return Egs.ExecResolver}});var TCl=wCl.__importStar(Vxt());Lte.execUtils=TCl;var RCl={fetchers:[bgs.ExecFetcher],resolvers:[Egs.ExecResolver]};Lte.default=RCl});var lGe=H(Iue=>{"use strict";Object.defineProperty(Iue,"__esModule",{value:!0});Iue.PROTOCOL=Iue.TARBALL_REGEXP=Iue.FILE_REGEXP=void 0;Iue.FILE_REGEXP=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/;Iue.TARBALL_REGEXP=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/;Iue.PROTOCOL="file:"});var uGe=H(hue=>{"use strict";Object.defineProperty(hue,"__esModule",{value:!0});hue.parseSpec=DCl;hue.makeSpec=vgs;hue.makeLocator=kCl;hue.fetchArchiveFromLocator=xCl;hue.makeArchiveFromLocator=Bgs;hue.makeBufferFromLocator=GCl;var J4=Bn(),uw=no(),NCl=lGe();function DCl(e){let{params:t,selector:r}=J4.structUtils.parseRange(e),n=uw.npath.toPortablePath(r);return{parentLocator:t&&typeof t.locator=="string"?J4.structUtils.parseLocator(t.locator):null,path:n}}function vgs({parentLocator:e,path:t,hash:r,protocol:n}){let a=e!==null?{locator:J4.structUtils.stringifyLocator(e)}:{},o=typeof r<"u"?{hash:r}:{};return J4.structUtils.makeRange({protocol:n,source:t,selector:t,params:{...o,...a}})}function kCl(e,{parentLocator:t,path:r,hash:n,protocol:a}){return J4.structUtils.makeLocator(e,vgs({parentLocator:t,path:r,hash:n,protocol:a}))}async function xCl(e,t){let{parentLocator:r,path:n}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:NCl.PROTOCOL}),a=uw.ppath.isAbsolute(n)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await t.fetcher.fetch(r,t),o=a.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,a.localPath)}:a;a!==o&&a.releaseFs&&a.releaseFs();let l=o.packageFs,A=uw.ppath.join(o.prefixPath,n);return await J4.miscUtils.releaseAfterUseAsync(async()=>await l.readFilePromise(A),o.releaseFs)}async function Bgs(e,{protocol:t,fetchOptions:r,inMemory:n=!1}){let{parentLocator:a,path:o}=J4.structUtils.parseFileStyleRange(e.reference,{protocol:t}),l=uw.ppath.isAbsolute(o)?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.PortablePath.dot,localPath:uw.PortablePath.root}:await r.fetcher.fetch(a,r),A=l.localPath?{packageFs:new uw.CwdFS(uw.PortablePath.root),prefixPath:uw.ppath.relative(uw.PortablePath.root,l.localPath)}:l;l!==A&&l.releaseFs&&l.releaseFs();let f=A.packageFs,I=uw.ppath.join(A.prefixPath,o);return await J4.miscUtils.releaseAfterUseAsync(async()=>await J4.tgzUtils.makeArchiveFromDirectory(I,{baseFs:f,prefixPath:J4.structUtils.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:n}),A.releaseFs)}async function GCl(e,{protocol:t,fetchOptions:r}){return(await Bgs(e,{protocol:t,fetchOptions:r,inMemory:!0})).getBufferAndClose()}});var Tgs=H(Oxt=>{"use strict";Object.defineProperty(Oxt,"__esModule",{value:!0});Oxt.FileFetcher=void 0;var FCl=(Pa(),vi(Va)),Y4r=Bn(),wgs=no(),Q4r=lGe(),ZCl=FCl.__importStar(uGe()),X4r=class{supports(t,r){return!!t.reference.startsWith(Q4r.PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=Y4r.structUtils.parseFileStyleRange(t.reference,{protocol:Q4r.PROTOCOL});if(wgs.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:wgs.ppath.resolve(o,a)}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Y4r.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Y4r.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async fetchFromDisk(t,r){return ZCl.makeArchiveFromLocator(t,{protocol:Q4r.PROTOCOL,fetchOptions:r})}};Oxt.FileFetcher=X4r});var Rgs=H(Mxt=>{"use strict";Object.defineProperty(Mxt,"__esModule",{value:!0});Mxt.FileResolver=void 0;var LCl=(Pa(),vi(Va)),mue=Bn(),VCl=Bn(),PCl=Bn(),Cue=lGe(),J4r=LCl.__importStar(uGe()),WCl=2,U4r=class{supportsDescriptor(t,r){return t.range.match(Cue.FILE_REGEXP)?!0:!!t.range.startsWith(Cue.PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(Cue.PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Cue.FILE_REGEXP.test(t.range)&&(t=mue.structUtils.makeDescriptor(t,`${Cue.PROTOCOL}${t.range}`)),mue.structUtils.bindDescriptor(t,{locator:mue.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=J4r.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=await J4r.makeBufferFromLocator(mue.structUtils.makeLocator(t,mue.structUtils.makeRange({protocol:Cue.PROTOCOL,source:a,selector:a,params:{locator:mue.structUtils.stringifyLocator(o)}})),{protocol:Cue.PROTOCOL,fetchOptions:n.fetchOptions}),A=mue.hashUtils.makeHash(`${WCl}`,l).slice(0,6);return[J4r.makeLocator(t,{parentLocator:o,path:a,hash:A,protocol:Cue.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await mue.miscUtils.releaseAfterUseAsync(async()=>await PCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:VCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Mxt.FileResolver=U4r});var Dgs=H(Yxt=>{"use strict";Object.defineProperty(Yxt,"__esModule",{value:!0});Yxt.TarballFileFetcher=void 0;var OCl=(Pa(),vi(Va)),Hxt=Bn(),Ngs=lGe(),MCl=OCl.__importStar(uGe()),K4r=class{supports(t,r){return Ngs.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Ngs.PROTOCOL):!1}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${Hxt.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:Hxt.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromDisk(t,r){let n=await MCl.fetchArchiveFromLocator(t,r);return await Hxt.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:Hxt.structUtils.getIdentVendorPath(t),stripComponents:1})}};Yxt.TarballFileFetcher=K4r});var kgs=H(Jxt=>{"use strict";Object.defineProperty(Jxt,"__esModule",{value:!0});Jxt.TarballFileResolver=void 0;var HCl=(Pa(),vi(Va)),YCl=Bn(),QCl=Bn(),XCl=Bn(),Qxt=Bn(),Vte=lGe(),Xxt=HCl.__importStar(uGe()),j4r=class{supportsDescriptor(t,r){return Vte.TARBALL_REGEXP.test(t.range)?!!(t.range.startsWith(Vte.PROTOCOL)||Vte.FILE_REGEXP.test(t.range)):!1}supportsLocator(t,r){return Vte.TARBALL_REGEXP.test(t.reference)?!!t.reference.startsWith(Vte.PROTOCOL):!1}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return Vte.FILE_REGEXP.test(t.range)&&(t=Qxt.structUtils.makeDescriptor(t,`${Vte.PROTOCOL}${t.range}`)),Qxt.structUtils.bindDescriptor(t,{locator:Qxt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:o}=Xxt.parseSpec(t.range);if(o===null)throw new Error("Assertion failed: The descriptor should have been bound");let l=Xxt.makeLocator(t,{parentLocator:o,path:a,hash:"",protocol:Vte.PROTOCOL}),A=await Xxt.fetchArchiveFromLocator(l,n.fetchOptions),f=YCl.hashUtils.makeHash(A).slice(0,6);return[Xxt.makeLocator(t,{parentLocator:o,path:a,hash:f,protocol:Vte.PROTOCOL})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qxt.miscUtils.releaseAfterUseAsync(async()=>await QCl.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:XCl.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Jxt.TarballFileResolver=j4r});var Lgs=H(PO=>{"use strict";Object.defineProperty(PO,"__esModule",{value:!0});PO.TarballFileResolver=PO.TarballFileFetcher=PO.FileResolver=PO.FileFetcher=PO.fileUtils=void 0;var JCl=(Pa(),vi(Va)),xgs=Tgs();Object.defineProperty(PO,"FileFetcher",{enumerable:!0,get:function(){return xgs.FileFetcher}});var Ggs=Rgs();Object.defineProperty(PO,"FileResolver",{enumerable:!0,get:function(){return Ggs.FileResolver}});var Fgs=Dgs();Object.defineProperty(PO,"TarballFileFetcher",{enumerable:!0,get:function(){return Fgs.TarballFileFetcher}});var Zgs=kgs();Object.defineProperty(PO,"TarballFileResolver",{enumerable:!0,get:function(){return Zgs.TarballFileResolver}});var UCl=JCl.__importStar(uGe());PO.fileUtils=UCl;var KCl={fetchers:[Fgs.TarballFileFetcher,xgs.FileFetcher],resolvers:[Zgs.TarballFileResolver,Ggs.FileResolver]};PO.default=KCl});var z4r=H(U6e=>{"use strict";Object.defineProperty(U6e,"__esModule",{value:!0});U6e.isGithubUrl=qCl;U6e.parseGithubUrl=$Cl;U6e.invalidGithubUrlMessage=Pgs;var jCl=(Pa(),vi(Va)),zCl=jCl.__importDefault(wt("querystring")),Vgs=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function qCl(e){return e?Vgs.some(t=>!!e.match(t)):!1}function $Cl(e){let t;for(let A of Vgs)if(t=e.match(A),t)break;if(!t)throw new Error(Pgs(e));let[,r,n,a,o="master"]=t,{commit:l}=zCl.default.parse(o);return o=l||o.replace(/[^:]*:/,""),{auth:r,username:n,reponame:a,treeish:o}}function Pgs(e){return`Input cannot be parsed as a valid GitHub URL ('${e}').`}});var Ogs=H(Kxt=>{"use strict";Object.defineProperty(Kxt,"__esModule",{value:!0});Kxt.GithubFetcher=void 0;var e_l=(Pa(),vi(Va)),j_e=Bn(),Uxt=no(),t_l=nDe(),Wgs=e_l.__importStar(z4r()),q4r=class{supports(t,r){return!!Wgs.isGithubUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${j_e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:j_e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await j_e.httpUtils.get(this.getLocatorUrl(t,r),{configuration:r.project.configuration});return await Uxt.xfs.mktempPromise(async a=>{let o=new Uxt.CwdFS(a);await j_e.tgzUtils.extractArchiveTo(n,o,{stripComponents:1});let l=t_l.gitUtils.splitRepoUrl(t.reference),A=Uxt.ppath.join(a,"package.tgz");await j_e.scriptUtils.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:l.extra.workspace,locator:t});let f=await Uxt.xfs.readFilePromise(A);return await j_e.tgzUtils.convertToZip(f,{configuration:r.project.configuration,prefixPath:j_e.structUtils.getIdentVendorPath(t),stripComponents:1})})}getLocatorUrl(t,r){let{auth:n,username:a,reponame:o,treeish:l}=Wgs.parseGithubUrl(t.reference);return`https://${n?`${n}@`:""}github.com/${a}/${o}/archive/${l}.tar.gz`}};Kxt.GithubFetcher=q4r});var Hgs=H(z_e=>{"use strict";Object.defineProperty(z_e,"__esModule",{value:!0});z_e.GithubFetcher=z_e.githubUtils=void 0;var r_l=(Pa(),vi(Va)),Mgs=Ogs();Object.defineProperty(z_e,"GithubFetcher",{enumerable:!0,get:function(){return Mgs.GithubFetcher}});var n_l=r_l.__importStar(z4r());z_e.githubUtils=n_l;var i_l={hooks:{async fetchHostedRepository(e,t,r){if(e!==null)return e;let n=new Mgs.GithubFetcher;if(!n.supports(t,r))return null;try{return await n.fetch(t,r)}catch{return null}}}};z_e.default=i_l});var eJr=H($4r=>{"use strict";Object.defineProperty($4r,"__esModule",{value:!0});$4r.isTgzUrl=s_l;function s_l(e){let t;try{t=new URL(e)}catch{return!1}return!(t.protocol!=="http:"&&t.protocol!=="https:"||!t.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}});var Ygs=H(jxt=>{"use strict";Object.defineProperty(jxt,"__esModule",{value:!0});jxt.TarballHttpFetcher=void 0;var o_l=(Pa(),vi(Va)),K6e=Bn(),a_l=o_l.__importStar(eJr()),tJr=class{supports(t,r){return a_l.isTgzUrl(t.reference)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${K6e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:K6e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n=await K6e.httpUtils.get(t.reference,{configuration:r.project.configuration});return await K6e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:K6e.structUtils.getIdentVendorPath(t),stripComponents:1})}};jxt.TarballHttpFetcher=tJr});var Jgs=H(zxt=>{"use strict";Object.defineProperty(zxt,"__esModule",{value:!0});zxt.TarballHttpResolver=void 0;var c_l=(Pa(),vi(Va)),l_l=Bn(),u_l=Bn(),Qgs=Bn(),Xgs=c_l.__importStar(eJr()),rJr=class{supportsDescriptor(t,r){return Xgs.isTgzUrl(t.range)}supportsLocator(t,r){return Xgs.isTgzUrl(t.reference)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){return[Qgs.structUtils.convertDescriptorToLocator(t)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await Qgs.miscUtils.releaseAfterUseAsync(async()=>await l_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:u_l.LinkType.HARD,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};zxt.TarballHttpResolver=rJr});var jgs=H(q_e=>{"use strict";Object.defineProperty(q_e,"__esModule",{value:!0});q_e.TarballHttpResolver=q_e.TarballHttpFetcher=void 0;var Ugs=Ygs();Object.defineProperty(q_e,"TarballHttpFetcher",{enumerable:!0,get:function(){return Ugs.TarballHttpFetcher}});var Kgs=Jgs();Object.defineProperty(q_e,"TarballHttpResolver",{enumerable:!0,get:function(){return Kgs.TarballHttpResolver}});var g_l={fetchers:[Ugs.TarballHttpFetcher],resolvers:[Kgs.TarballHttpResolver]};q_e.default=g_l});var iJr=H(nJr=>{"use strict";Object.defineProperty(nJr,"__esModule",{value:!0});var A_l=el(),A6=Bn(),$_e=Bn(),Q_=no(),_ue=($c(),vi(rg)),j6e=class extends A_l.BaseCommand{constructor(){super(...arguments),this.private=_ue.Option.Boolean("-p,--private",!1,{description:"Initialize a private package"}),this.workspace=_ue.Option.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"}),this.install=_ue.Option.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"}),this.name=_ue.Option.String("-n,--name",{description:"Initialize a package with the given name"}),this.usev2=_ue.Option.Boolean("-2",!1,{hidden:!0}),this.yes=_ue.Option.Boolean("-y,--yes",{hidden:!0})}async execute(){let t=await A6.Configuration.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(t,r):await this.executeRegular(t)}async executeProxy(t,r){if(t.projectCwd!==null&&t.projectCwd!==this.context.cwd)throw new _ue.UsageError("Cannot use the --install flag from within a project subdirectory");Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(n)||await Q_.xfs.writeFilePromise(n,"");let a=await this.cli.run(["set","version",r],{quiet:!0});if(a!==0)return a;let o=[];return this.private&&o.push("-p"),this.workspace&&o.push("-w"),this.name&&o.push(`-n=${this.name}`),this.yes&&o.push("-y"),await Q_.xfs.mktempPromise(async l=>{let{code:A}=await $_e.execUtils.pipevp("yarn",["init",...o],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await $_e.scriptUtils.makeScriptEnv({binFolder:l})});return A})}async initialize(){}async executeRegular(t){let r=null;try{r=(await A6.Project.find(t,this.context.cwd)).project}catch{r=null}Q_.xfs.existsSync(this.context.cwd)||await Q_.xfs.mkdirPromise(this.context.cwd,{recursive:!0});let n=await A6.Manifest.tryFind(this.context.cwd),a=n??new A6.Manifest,o=Object.fromEntries(t.get("initFields").entries());a.load(o),a.name=a.name??$_e.structUtils.makeIdent(t.get("initScope"),this.name??Q_.ppath.basename(this.context.cwd)),a.packageManager=A6.YarnVersion&&A6.miscUtils.isTaggedYarnVersion(A6.YarnVersion)?`yarn@${A6.YarnVersion}`:null,(!n&&this.workspace||this.private)&&(a.private=!0),this.workspace&&a.workspaceDefinitions.length===0&&(await Q_.xfs.mkdirPromise(Q_.ppath.join(this.context.cwd,"packages"),{recursive:!0}),a.workspaceDefinitions=[{pattern:"packages/*"}]);let l={};a.exportTo(l);let A=Q_.ppath.join(this.context.cwd,A6.Manifest.fileName);await Q_.xfs.changeFilePromise(A,`${JSON.stringify(l,null,2)} `,{automaticNewlines:!0});let f=[A],I=Q_.ppath.join(this.context.cwd,"README.md");if(Q_.xfs.existsSync(I)||(await Q_.xfs.writeFilePromise(I,`# ${$_e.structUtils.stringifyIdent(a.name)} `),f.push(I)),!r||r.cwd===this.context.cwd){let C=Q_.ppath.join(this.context.cwd,Q_.Filename.lockfile);Q_.xfs.existsSync(C)||(await Q_.xfs.writeFilePromise(C,""),f.push(C));let E=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Whether you use PnP or not, the node_modules folder is often used to store","# build artifacts that should be gitignored","node_modules","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ce=>`${ce} `).join(""),N=Q_.ppath.join(this.context.cwd,".gitignore");Q_.xfs.existsSync(N)||(await Q_.xfs.writeFilePromise(N,E),f.push(N));let F=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ce=>`${ce} @@ -1507,47 +1507,47 @@ ${this.getDeclarations()}`}createSession(){return new D4r(this.project,this.full `;for(let[ce,fe]of Object.entries(X)){ae+=` [${ce}] `;for(let[ue,de]of Object.entries(fe)){let be=ue.replace(/[A-Z]/g,Se=>`_${Se.toLowerCase()}`);ae+=`${be} = ${de} -`}}let ne=Q_.ppath.join(this.context.cwd,".editorconfig");Q_.xfs.existsSync(ne)||(await Q_.xfs.writeFilePromise(ne,ae),f.push(ne)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),Q_.xfs.existsSync(Q_.ppath.join(this.context.cwd,".git"))||(await $_e.execUtils.execvp("git",["init"],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["add","--",...f],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};j6e.paths=[["init"]];j6e.usage=_ue.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});nJr.default=j6e});var qgs=H(sJr=>{"use strict";Object.defineProperty(sJr,"__esModule",{value:!0});var A_l=(Pa(),vi(Va)),zgs=($c(),vi(rg)),d_l=A_l.__importDefault(iJr()),qxt=class extends d_l.default{constructor(){super(...arguments),this.initializer=zgs.Option.String(),this.argv=zgs.Option.Proxy()}async initialize(){this.context.stdout.write(` -`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};qxt.paths=[["init"]];sJr.default=qxt});var rAs=H(e0e=>{"use strict";Object.defineProperty(e0e,"__esModule",{value:!0});e0e.InitInitializerCommand=e0e.InitCommand=void 0;var $gs=(Pa(),vi(Va)),z6e=Bn(),eAs=$gs.__importDefault(qgs());e0e.InitInitializerCommand=eAs.default;var tAs=$gs.__importDefault(iJr());e0e.InitCommand=tAs.default;var p_l={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:z6e.SettingsType.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}}},commands:[tAs.default,eAs.default]};e0e.default=p_l});var q6e=H(gGe=>{"use strict";Object.defineProperty(gGe,"__esModule",{value:!0});gGe.LINK_PROTOCOL=gGe.PORTAL_PROTOCOL=void 0;gGe.PORTAL_PROTOCOL="portal:";gGe.LINK_PROTOCOL="link:"});var iAs=H($xt=>{"use strict";Object.defineProperty($xt,"__esModule",{value:!0});$xt.LinkFetcher=void 0;var nAs=Bn(),ux=no(),oJr=q6e(),aJr=class{supports(t,r){return!!t.reference.startsWith(oJr.LINK_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL});if(ux.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:ux.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL}),o=ux.ppath.isAbsolute(a)?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.PortablePath.dot,localPath:ux.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.ppath.relative(ux.PortablePath.root,o.localPath),localPath:ux.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=ux.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new ux.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0,localPath:f}:{packageFs:new ux.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0}}};$xt.LinkFetcher=aJr});var sAs=H(tGt=>{"use strict";Object.defineProperty(tGt,"__esModule",{value:!0});tGt.LinkResolver=void 0;var f_l=Bn(),cJr=Bn(),I_l=no(),eGt=q6e(),lJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(eGt.LINK_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(eGt.LINK_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return cJr.structUtils.bindDescriptor(t,{locator:cJr.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(eGt.LINK_PROTOCOL.length);return[cJr.structUtils.makeLocator(t,`${eGt.LINK_PROTOCOL}${I_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){return{...t,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:f_l.LinkType.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};tGt.LinkResolver=lJr});var aAs=H(rGt=>{"use strict";Object.defineProperty(rGt,"__esModule",{value:!0});rGt.PortalFetcher=void 0;var oAs=Bn(),gx=no(),uJr=q6e(),gJr=class{supports(t,r){return!!t.reference.startsWith(uJr.PORTAL_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL});if(gx.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:gx.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL}),o=gx.ppath.isAbsolute(a)?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.PortablePath.dot,localPath:gx.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.ppath.relative(gx.PortablePath.root,o.localPath),localPath:gx.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=gx.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new gx.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot,localPath:f}:{packageFs:new gx.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot}}};rGt.PortalFetcher=gJr});var cAs=H(sGt=>{"use strict";Object.defineProperty(sGt,"__esModule",{value:!0});sGt.PortalResolver=void 0;var h_l=Bn(),m_l=Bn(),nGt=Bn(),C_l=no(),iGt=q6e(),AJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(iGt.PORTAL_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(iGt.PORTAL_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return nGt.structUtils.bindDescriptor(t,{locator:nGt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(iGt.PORTAL_PROTOCOL.length);return[nGt.structUtils.makeLocator(t,`${iGt.PORTAL_PROTOCOL}${C_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await nGt.miscUtils.releaseAfterUseAsync(async()=>await h_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:m_l.LinkType.SOFT,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};sGt.PortalResolver=AJr});var dAs=H(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});U4.LinkResolver=U4.LinkFetcher=U4.PortalResolver=U4.PortalFetcher=void 0;var lAs=iAs();Object.defineProperty(U4,"LinkFetcher",{enumerable:!0,get:function(){return lAs.LinkFetcher}});var uAs=sAs();Object.defineProperty(U4,"LinkResolver",{enumerable:!0,get:function(){return uAs.LinkResolver}});var gAs=aAs();Object.defineProperty(U4,"PortalFetcher",{enumerable:!0,get:function(){return gAs.PortalFetcher}});var AAs=cAs();Object.defineProperty(U4,"PortalResolver",{enumerable:!0,get:function(){return AAs.PortalResolver}});var __l={fetchers:[lAs.LinkFetcher,gAs.PortalFetcher],resolvers:[uAs.LinkResolver,AAs.PortalResolver]};U4.default=__l});var hJr=H(AGe=>{"use strict";Object.defineProperty(AGe,"__esModule",{value:!0});AGe.hoist=AGe.HoisterDependencyKind=void 0;var t0e;(function(e){e[e.REGULAR=0]="REGULAR",e[e.WORKSPACE=1]="WORKSPACE",e[e.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(t0e||(AGe.HoisterDependencyKind=t0e={}));var Pte;(function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.DEPENDS=2]="DEPENDS"})(Pte||(Pte={}));var pJr=(e,t)=>`${e}@${t}`,pAs=(e,t)=>{let r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return pJr(e,n)},K4;(function(e){e[e.NONE=-1]="NONE",e[e.PERF=0]="PERF",e[e.CHECK=1]="CHECK",e[e.REASONS=2]="REASONS",e[e.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(K4||(K4={}));var y_l=(e,t={})=>{let r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||K4.NONE),n=t.check||r>=K4.INTENSIVE_CHECK,a=t.hoistingLimits||new Map,o={check:n,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},l;o.debugLevel>=K4.PERF&&(l=Date.now());let A=T_l(e,o),f=!1,I=0;do{let C=fJr(A,[A],new Set([A.locator]),new Map,o);f=C.anotherRoundNeeded||C.isGraphChanged,o.fastLookupPossible=!1,I++}while(f);if(o.debugLevel>=K4.PERF&&console.log(`hoist time: ${Date.now()-l}ms, rounds: ${I}`),o.debugLevel>=K4.CHECK){let C=$6e(A);if(fJr(A,[A],new Set([A.locator]),new Map,o).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +`}}let ne=Q_.ppath.join(this.context.cwd,".editorconfig");Q_.xfs.existsSync(ne)||(await Q_.xfs.writeFilePromise(ne,ae),f.push(ne)),await this.cli.run(["install"],{quiet:!0}),await this.initialize(),Q_.xfs.existsSync(Q_.ppath.join(this.context.cwd,".git"))||(await $_e.execUtils.execvp("git",["init"],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["add","--",...f],{cwd:this.context.cwd}),await $_e.execUtils.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};j6e.paths=[["init"]];j6e.usage=_ue.Command.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});nJr.default=j6e});var qgs=H(sJr=>{"use strict";Object.defineProperty(sJr,"__esModule",{value:!0});var d_l=(Pa(),vi(Va)),zgs=($c(),vi(rg)),p_l=d_l.__importDefault(iJr()),qxt=class extends p_l.default{constructor(){super(...arguments),this.initializer=zgs.Option.String(),this.argv=zgs.Option.Proxy()}async initialize(){this.context.stdout.write(` +`),await this.cli.run(["dlx",this.initializer,...this.argv],{quiet:!0})}};qxt.paths=[["init"]];sJr.default=qxt});var rAs=H(e0e=>{"use strict";Object.defineProperty(e0e,"__esModule",{value:!0});e0e.InitInitializerCommand=e0e.InitCommand=void 0;var $gs=(Pa(),vi(Va)),z6e=Bn(),eAs=$gs.__importDefault(qgs());e0e.InitInitializerCommand=eAs.default;var tAs=$gs.__importDefault(iJr());e0e.InitCommand=tAs.default;var f_l={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:z6e.SettingsType.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:z6e.SettingsType.MAP,valueDefinition:{description:"",type:z6e.SettingsType.ANY}}},commands:[tAs.default,eAs.default]};e0e.default=f_l});var q6e=H(gGe=>{"use strict";Object.defineProperty(gGe,"__esModule",{value:!0});gGe.LINK_PROTOCOL=gGe.PORTAL_PROTOCOL=void 0;gGe.PORTAL_PROTOCOL="portal:";gGe.LINK_PROTOCOL="link:"});var iAs=H($xt=>{"use strict";Object.defineProperty($xt,"__esModule",{value:!0});$xt.LinkFetcher=void 0;var nAs=Bn(),ux=no(),oJr=q6e(),aJr=class{supports(t,r){return!!t.reference.startsWith(oJr.LINK_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL});if(ux.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:ux.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=nAs.structUtils.parseFileStyleRange(t.reference,{protocol:oJr.LINK_PROTOCOL}),o=ux.ppath.isAbsolute(a)?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.PortablePath.dot,localPath:ux.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new ux.CwdFS(ux.PortablePath.root),prefixPath:ux.ppath.relative(ux.PortablePath.root,o.localPath),localPath:ux.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=ux.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new ux.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0,localPath:f}:{packageFs:new ux.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:ux.PortablePath.dot,discardFromLookup:!0}}};$xt.LinkFetcher=aJr});var sAs=H(tGt=>{"use strict";Object.defineProperty(tGt,"__esModule",{value:!0});tGt.LinkResolver=void 0;var I_l=Bn(),cJr=Bn(),h_l=no(),eGt=q6e(),lJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(eGt.LINK_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(eGt.LINK_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return cJr.structUtils.bindDescriptor(t,{locator:cJr.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(eGt.LINK_PROTOCOL.length);return[cJr.structUtils.makeLocator(t,`${eGt.LINK_PROTOCOL}${h_l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){return{...t,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:I_l.LinkType.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};tGt.LinkResolver=lJr});var aAs=H(rGt=>{"use strict";Object.defineProperty(rGt,"__esModule",{value:!0});rGt.PortalFetcher=void 0;var oAs=Bn(),gx=no(),uJr=q6e(),gJr=class{supports(t,r){return!!t.reference.startsWith(uJr.PORTAL_PROTOCOL)}getLocalPath(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL});if(gx.ppath.isAbsolute(a))return a;let o=r.fetcher.getLocalPath(n,r);return o===null?null:gx.ppath.resolve(o,a)}async fetch(t,r){let{parentLocator:n,path:a}=oAs.structUtils.parseFileStyleRange(t.reference,{protocol:uJr.PORTAL_PROTOCOL}),o=gx.ppath.isAbsolute(a)?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.PortablePath.dot,localPath:gx.PortablePath.root}:await r.fetcher.fetch(n,r),l=o.localPath?{packageFs:new gx.CwdFS(gx.PortablePath.root),prefixPath:gx.ppath.relative(gx.PortablePath.root,o.localPath),localPath:gx.PortablePath.root}:o;o!==l&&o.releaseFs&&o.releaseFs();let A=l.packageFs,f=gx.ppath.resolve(l.localPath??l.packageFs.getRealPath(),l.prefixPath,a);return o.localPath?{packageFs:new gx.CwdFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot,localPath:f}:{packageFs:new gx.JailFS(f,{baseFs:A}),releaseFs:l.releaseFs,prefixPath:gx.PortablePath.dot}}};rGt.PortalFetcher=gJr});var cAs=H(sGt=>{"use strict";Object.defineProperty(sGt,"__esModule",{value:!0});sGt.PortalResolver=void 0;var m_l=Bn(),C_l=Bn(),nGt=Bn(),__l=no(),iGt=q6e(),AJr=class{supportsDescriptor(t,r){return!!t.range.startsWith(iGt.PORTAL_PROTOCOL)}supportsLocator(t,r){return!!t.reference.startsWith(iGt.PORTAL_PROTOCOL)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){return nGt.structUtils.bindDescriptor(t,{locator:nGt.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(iGt.PORTAL_PROTOCOL.length);return[nGt.structUtils.makeLocator(t,`${iGt.PORTAL_PROTOCOL}${__l.npath.toPortablePath(a)}`)]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let n=await r.fetchOptions.fetcher.fetch(t,r.fetchOptions),a=await nGt.miscUtils.releaseAfterUseAsync(async()=>await m_l.Manifest.find(n.prefixPath,{baseFs:n.packageFs}),n.releaseFs);return{...t,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:C_l.LinkType.SOFT,conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};sGt.PortalResolver=AJr});var dAs=H(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});U4.LinkResolver=U4.LinkFetcher=U4.PortalResolver=U4.PortalFetcher=void 0;var lAs=iAs();Object.defineProperty(U4,"LinkFetcher",{enumerable:!0,get:function(){return lAs.LinkFetcher}});var uAs=sAs();Object.defineProperty(U4,"LinkResolver",{enumerable:!0,get:function(){return uAs.LinkResolver}});var gAs=aAs();Object.defineProperty(U4,"PortalFetcher",{enumerable:!0,get:function(){return gAs.PortalFetcher}});var AAs=cAs();Object.defineProperty(U4,"PortalResolver",{enumerable:!0,get:function(){return AAs.PortalResolver}});var y_l={fetchers:[lAs.LinkFetcher,gAs.PortalFetcher],resolvers:[uAs.LinkResolver,AAs.PortalResolver]};U4.default=y_l});var hJr=H(AGe=>{"use strict";Object.defineProperty(AGe,"__esModule",{value:!0});AGe.hoist=AGe.HoisterDependencyKind=void 0;var t0e;(function(e){e[e.REGULAR=0]="REGULAR",e[e.WORKSPACE=1]="WORKSPACE",e[e.EXTERNAL_SOFT_LINK=2]="EXTERNAL_SOFT_LINK"})(t0e||(AGe.HoisterDependencyKind=t0e={}));var Pte;(function(e){e[e.YES=0]="YES",e[e.NO=1]="NO",e[e.DEPENDS=2]="DEPENDS"})(Pte||(Pte={}));var pJr=(e,t)=>`${e}@${t}`,pAs=(e,t)=>{let r=t.indexOf("#"),n=r>=0?t.substring(r+1):t;return pJr(e,n)},K4;(function(e){e[e.NONE=-1]="NONE",e[e.PERF=0]="PERF",e[e.CHECK=1]="CHECK",e[e.REASONS=2]="REASONS",e[e.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(K4||(K4={}));var b_l=(e,t={})=>{let r=t.debugLevel||Number(process.env.NM_DEBUG_LEVEL||K4.NONE),n=t.check||r>=K4.INTENSIVE_CHECK,a=t.hoistingLimits||new Map,o={check:n,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},l;o.debugLevel>=K4.PERF&&(l=Date.now());let A=R_l(e,o),f=!1,I=0;do{let C=fJr(A,[A],new Set([A.locator]),new Map,o);f=C.anotherRoundNeeded||C.isGraphChanged,o.fastLookupPossible=!1,I++}while(f);if(o.debugLevel>=K4.PERF&&console.log(`hoist time: ${Date.now()-l}ms, rounds: ${I}`),o.debugLevel>=K4.CHECK){let C=$6e(A);if(fJr(A,[A],new Set([A.locator]),new Map,o).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${C}, next tree: ${$6e(A)}`);let E=hAs(A);if(E)throw new Error(`${E}, after hoisting finished: -${$6e(A)}`)}return o.debugLevel>=K4.REASONS&&console.log($6e(A)),R_l(A)};AGe.hoist=y_l;var b_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=o=>{if(!n.has(o)){n.add(o);for(let l of o.hoistedDependencies.values())r.set(l.name,l);for(let l of o.dependencies.values())o.peerNames.has(l.name)||a(l)}};return a(t),r},E_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=new Set,o=(l,A)=>{if(n.has(l))return;n.add(l);for(let I of l.hoistedDependencies.values())if(!A.has(I.name)){let C;for(let b of e)C=b.dependencies.get(I.name),C&&r.set(C.name,C)}let f=new Set;for(let I of l.dependencies.values())f.add(I.name);for(let I of l.dependencies.values())l.peerNames.has(I.name)||o(I,f)};return o(t,a),r},fAs=(e,t)=>{if(t.decoupled)return t;let{name:r,references:n,ident:a,locator:o,dependencies:l,originalDependencies:A,hoistedDependencies:f,peerNames:I,reasons:C,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:B,hoistedTo:F}=t,Q={name:r,references:new Set(n),ident:a,locator:o,dependencies:new Map(l),originalDependencies:new Map(A),hoistedDependencies:new Map(f),peerNames:new Set(I),reasons:new Map(C),decoupled:!0,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:new Map(B),hoistedTo:new Map(F)},X=Q.dependencies.get(r);return X&&X.ident==Q.ident&&Q.dependencies.set(r,Q),e.dependencies.set(Q.name,Q),Q},S_l=(e,t)=>{let r=new Map([[e.name,[e.ident]]]);for(let a of e.dependencies.values())e.peerNames.has(a.name)||r.set(a.name,[a.ident]);let n=Array.from(t.keys());n.sort((a,o)=>{let l=t.get(a),A=t.get(o);if(A.hoistPriority!==l.hoistPriority)return A.hoistPriority-l.hoistPriority;{let f=l.dependents.size+l.peerDependents.size;return A.dependents.size+A.peerDependents.size-f}});for(let a of n){let o=a.substring(0,a.indexOf("@",1)),l=a.substring(o.length+1);if(!e.peerNames.has(o)){let A=r.get(o);A||(A=[],r.set(o,A)),A.indexOf(l)<0&&A.push(l)}}return r},dJr=e=>{let t=new Set,r=(n,a=new Set)=>{if(!a.has(n)){a.add(n);for(let o of n.peerNames)if(!e.peerNames.has(o)){let l=e.dependencies.get(o);l&&!t.has(l)&&r(l,a)}t.add(n)}};for(let n of e.dependencies.values())e.peerNames.has(n.name)||r(n);return t},fJr=(e,t,r,n,a,o=new Set)=>{let l=t[t.length-1];if(o.has(l))return{anotherRoundNeeded:!1,isGraphChanged:!1};o.add(l);let A=N_l(l),f=S_l(l,A),I=e==l?new Map:a.fastLookupPossible?b_l(t):E_l(t),C,b=!1,E=!1,N=new Map(Array.from(f.entries()).map(([F,Q])=>[F,Q[0]])),B=new Map;do{let F=w_l(e,t,r,I,N,f,n,B,a);F.isGraphChanged&&(E=!0),F.anotherRoundNeeded&&(b=!0),C=!1;for(let[Q,X]of f)X.length>1&&!l.dependencies.has(Q)&&(N.delete(Q),X.shift(),N.set(Q,X[0]),C=!0)}while(C);for(let F of l.dependencies.values())if(!l.peerNames.has(F.name)&&!r.has(F.locator)){r.add(F.locator);let Q=fJr(e,[...t,F],r,B,a);Q.isGraphChanged&&(E=!0),Q.anotherRoundNeeded&&(b=!0),r.delete(F.locator)}return{anotherRoundNeeded:b,isGraphChanged:E}},v_l=e=>{for(let[t,r]of e.dependencies)if(!e.peerNames.has(t)&&r.ident!==e.ident)return!0;return!1},B_l=(e,t,r,n,a,o,l,A,{outputReason:f,fastLookupPossible:I})=>{let C,b=null,E=new Set;f&&(C=`${Array.from(t).map(Q=>Ax(Q)).join("\u2192")}`);let N=r[r.length-1],F=!(n.ident===N.ident);if(f&&!F&&(b="- self-reference"),F&&(F=n.dependencyKind!==t0e.WORKSPACE,f&&!F&&(b="- workspace")),F&&n.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&(F=!v_l(n),f&&!F&&(b="- external soft link with unhoisted dependencies")),F&&(F=!e.peerNames.has(n.name),f&&!F&&(b=`- cannot shadow peer: ${Ax(e.originalDependencies.get(n.name).locator)} at ${C}`)),F){let Q=!1,X=a.get(n.name);if(Q=!X||X.ident===n.ident,f&&!Q&&(b=`- filled by: ${Ax(X.locator)} at ${C}`),Q)for(let ae=r.length-1;ae>=1;ae--){let ce=r[ae].dependencies.get(n.name);if(ce&&ce.ident!==n.ident){Q=!1;let fe=A.get(N);fe||(fe=new Set,A.set(N,fe)),fe.add(n.name),f&&(b=`- filled by ${Ax(ce.locator)} at ${r.slice(0,ae).map(ue=>Ax(ue.locator)).join("\u2192")}`);break}}F=Q}if(F&&(F=o.get(n.name)===n.ident,f&&!F&&(b=`- filled by: ${Ax(l.get(n.name)[0])} at ${C}`)),F){let Q=!0,X=new Set(n.peerNames);for(let ae=r.length-1;ae>=1;ae--){let ne=r[ae];for(let ce of X){if(ne.peerNames.has(ce)&&ne.originalDependencies.has(ce))continue;let fe=ne.dependencies.get(ce);fe&&e.dependencies.get(ce)!==fe&&(ae===r.length-1?E.add(fe):(E=null,Q=!1,f&&(b=`- peer dependency ${Ax(fe.locator)} from parent ${Ax(ne.locator)} was not hoisted to ${C}`))),X.delete(ce)}if(!Q)break}F=Q}if(F&&!I)for(let Q of n.hoistedDependencies.values()){let X=a.get(Q.name)||e.dependencies.get(Q.name);if(!X||Q.ident!==X.ident){F=!1,f&&(b=`- previously hoisted dependency mismatch, needed: ${Ax(Q.locator)}, available: ${Ax(X?.locator)}`);break}}return E!==null&&E.size>0?{isHoistable:Pte.DEPENDS,dependsOn:E,reason:b}:{isHoistable:F?Pte.YES:Pte.NO,reason:b}},oGt=e=>`${e.name}@${e.locator}`,w_l=(e,t,r,n,a,o,l,A,f)=>{let I=t[t.length-1],C=new Set,b=!1,E=!1,N=(X,ae,ne,ce,fe)=>{if(C.has(ce))return;let ue=[...ae,oGt(ce)],de=[...ne,oGt(ce)],be=new Map,Se=new Map;for(let Me of dJr(ce)){let je=B_l(I,r,[I,...X,ce],Me,n,a,o,A,{outputReason:f.debugLevel>=K4.REASONS,fastLookupPossible:f.fastLookupPossible});if(Se.set(Me,je),je.isHoistable===Pte.DEPENDS)for(let St of je.dependsOn){let At=be.get(St.name)||new Set;At.add(Me.name),be.set(St.name,At)}}let De=new Set,k=(Me,je,St)=>{if(!De.has(Me)){De.add(Me),Se.set(Me,{isHoistable:Pte.NO,reason:St});for(let At of be.get(Me.name)||[])k(ce.dependencies.get(At),je,f.debugLevel>=K4.REASONS?`- peer dependency ${Ax(Me.locator)} from parent ${Ax(ce.locator)} was not hoisted`:"")}};for(let[Me,je]of Se)je.isHoistable===Pte.NO&&k(Me,je,je.reason);let et=!1;for(let Me of Se.keys())if(!De.has(Me)){E=!0;let je=l.get(ce);je&&je.has(Me.name)&&(b=!0),et=!0,ce.dependencies.delete(Me.name),ce.hoistedDependencies.set(Me.name,Me),ce.reasons.delete(Me.name);let St=I.dependencies.get(Me.name);if(f.debugLevel>=K4.REASONS){let At=Array.from(ae).concat([ce.locator]).map(Tr=>Ax(Tr)).join("\u2192"),Yt=I.hoistedFrom.get(Me.name);Yt||(Yt=[],I.hoistedFrom.set(Me.name,Yt)),Yt.push(At),ce.hoistedTo.set(Me.name,Array.from(t).map(Tr=>Ax(Tr.locator)).join("\u2192"))}if(!St)I.ident!==Me.ident&&(I.dependencies.set(Me.name,Me),fe.add(Me));else for(let At of Me.references)St.references.add(At)}if(ce.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&et&&(b=!0),f.check){let Me=hAs(e);if(Me)throw new Error(`${Me}, after hoisting dependencies of ${[I,...X,ce].map(je=>Ax(je.locator)).join("\u2192")}: +${$6e(A)}`)}return o.debugLevel>=K4.REASONS&&console.log($6e(A)),N_l(A)};AGe.hoist=b_l;var E_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=o=>{if(!n.has(o)){n.add(o);for(let l of o.hoistedDependencies.values())r.set(l.name,l);for(let l of o.dependencies.values())o.peerNames.has(l.name)||a(l)}};return a(t),r},S_l=e=>{let t=e[e.length-1],r=new Map,n=new Set,a=new Set,o=(l,A)=>{if(n.has(l))return;n.add(l);for(let I of l.hoistedDependencies.values())if(!A.has(I.name)){let C;for(let b of e)C=b.dependencies.get(I.name),C&&r.set(C.name,C)}let f=new Set;for(let I of l.dependencies.values())f.add(I.name);for(let I of l.dependencies.values())l.peerNames.has(I.name)||o(I,f)};return o(t,a),r},fAs=(e,t)=>{if(t.decoupled)return t;let{name:r,references:n,ident:a,locator:o,dependencies:l,originalDependencies:A,hoistedDependencies:f,peerNames:I,reasons:C,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:B,hoistedTo:F}=t,Q={name:r,references:new Set(n),ident:a,locator:o,dependencies:new Map(l),originalDependencies:new Map(A),hoistedDependencies:new Map(f),peerNames:new Set(I),reasons:new Map(C),decoupled:!0,isHoistBorder:b,hoistPriority:E,dependencyKind:N,hoistedFrom:new Map(B),hoistedTo:new Map(F)},X=Q.dependencies.get(r);return X&&X.ident==Q.ident&&Q.dependencies.set(r,Q),e.dependencies.set(Q.name,Q),Q},v_l=(e,t)=>{let r=new Map([[e.name,[e.ident]]]);for(let a of e.dependencies.values())e.peerNames.has(a.name)||r.set(a.name,[a.ident]);let n=Array.from(t.keys());n.sort((a,o)=>{let l=t.get(a),A=t.get(o);if(A.hoistPriority!==l.hoistPriority)return A.hoistPriority-l.hoistPriority;{let f=l.dependents.size+l.peerDependents.size;return A.dependents.size+A.peerDependents.size-f}});for(let a of n){let o=a.substring(0,a.indexOf("@",1)),l=a.substring(o.length+1);if(!e.peerNames.has(o)){let A=r.get(o);A||(A=[],r.set(o,A)),A.indexOf(l)<0&&A.push(l)}}return r},dJr=e=>{let t=new Set,r=(n,a=new Set)=>{if(!a.has(n)){a.add(n);for(let o of n.peerNames)if(!e.peerNames.has(o)){let l=e.dependencies.get(o);l&&!t.has(l)&&r(l,a)}t.add(n)}};for(let n of e.dependencies.values())e.peerNames.has(n.name)||r(n);return t},fJr=(e,t,r,n,a,o=new Set)=>{let l=t[t.length-1];if(o.has(l))return{anotherRoundNeeded:!1,isGraphChanged:!1};o.add(l);let A=D_l(l),f=v_l(l,A),I=e==l?new Map:a.fastLookupPossible?E_l(t):S_l(t),C,b=!1,E=!1,N=new Map(Array.from(f.entries()).map(([F,Q])=>[F,Q[0]])),B=new Map;do{let F=T_l(e,t,r,I,N,f,n,B,a);F.isGraphChanged&&(E=!0),F.anotherRoundNeeded&&(b=!0),C=!1;for(let[Q,X]of f)X.length>1&&!l.dependencies.has(Q)&&(N.delete(Q),X.shift(),N.set(Q,X[0]),C=!0)}while(C);for(let F of l.dependencies.values())if(!l.peerNames.has(F.name)&&!r.has(F.locator)){r.add(F.locator);let Q=fJr(e,[...t,F],r,B,a);Q.isGraphChanged&&(E=!0),Q.anotherRoundNeeded&&(b=!0),r.delete(F.locator)}return{anotherRoundNeeded:b,isGraphChanged:E}},B_l=e=>{for(let[t,r]of e.dependencies)if(!e.peerNames.has(t)&&r.ident!==e.ident)return!0;return!1},w_l=(e,t,r,n,a,o,l,A,{outputReason:f,fastLookupPossible:I})=>{let C,b=null,E=new Set;f&&(C=`${Array.from(t).map(Q=>Ax(Q)).join("\u2192")}`);let N=r[r.length-1],F=!(n.ident===N.ident);if(f&&!F&&(b="- self-reference"),F&&(F=n.dependencyKind!==t0e.WORKSPACE,f&&!F&&(b="- workspace")),F&&n.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&(F=!B_l(n),f&&!F&&(b="- external soft link with unhoisted dependencies")),F&&(F=!e.peerNames.has(n.name),f&&!F&&(b=`- cannot shadow peer: ${Ax(e.originalDependencies.get(n.name).locator)} at ${C}`)),F){let Q=!1,X=a.get(n.name);if(Q=!X||X.ident===n.ident,f&&!Q&&(b=`- filled by: ${Ax(X.locator)} at ${C}`),Q)for(let ae=r.length-1;ae>=1;ae--){let ce=r[ae].dependencies.get(n.name);if(ce&&ce.ident!==n.ident){Q=!1;let fe=A.get(N);fe||(fe=new Set,A.set(N,fe)),fe.add(n.name),f&&(b=`- filled by ${Ax(ce.locator)} at ${r.slice(0,ae).map(ue=>Ax(ue.locator)).join("\u2192")}`);break}}F=Q}if(F&&(F=o.get(n.name)===n.ident,f&&!F&&(b=`- filled by: ${Ax(l.get(n.name)[0])} at ${C}`)),F){let Q=!0,X=new Set(n.peerNames);for(let ae=r.length-1;ae>=1;ae--){let ne=r[ae];for(let ce of X){if(ne.peerNames.has(ce)&&ne.originalDependencies.has(ce))continue;let fe=ne.dependencies.get(ce);fe&&e.dependencies.get(ce)!==fe&&(ae===r.length-1?E.add(fe):(E=null,Q=!1,f&&(b=`- peer dependency ${Ax(fe.locator)} from parent ${Ax(ne.locator)} was not hoisted to ${C}`))),X.delete(ce)}if(!Q)break}F=Q}if(F&&!I)for(let Q of n.hoistedDependencies.values()){let X=a.get(Q.name)||e.dependencies.get(Q.name);if(!X||Q.ident!==X.ident){F=!1,f&&(b=`- previously hoisted dependency mismatch, needed: ${Ax(Q.locator)}, available: ${Ax(X?.locator)}`);break}}return E!==null&&E.size>0?{isHoistable:Pte.DEPENDS,dependsOn:E,reason:b}:{isHoistable:F?Pte.YES:Pte.NO,reason:b}},oGt=e=>`${e.name}@${e.locator}`,T_l=(e,t,r,n,a,o,l,A,f)=>{let I=t[t.length-1],C=new Set,b=!1,E=!1,N=(X,ae,ne,ce,fe)=>{if(C.has(ce))return;let ue=[...ae,oGt(ce)],de=[...ne,oGt(ce)],be=new Map,Se=new Map;for(let Me of dJr(ce)){let je=w_l(I,r,[I,...X,ce],Me,n,a,o,A,{outputReason:f.debugLevel>=K4.REASONS,fastLookupPossible:f.fastLookupPossible});if(Se.set(Me,je),je.isHoistable===Pte.DEPENDS)for(let St of je.dependsOn){let At=be.get(St.name)||new Set;At.add(Me.name),be.set(St.name,At)}}let De=new Set,k=(Me,je,St)=>{if(!De.has(Me)){De.add(Me),Se.set(Me,{isHoistable:Pte.NO,reason:St});for(let At of be.get(Me.name)||[])k(ce.dependencies.get(At),je,f.debugLevel>=K4.REASONS?`- peer dependency ${Ax(Me.locator)} from parent ${Ax(ce.locator)} was not hoisted`:"")}};for(let[Me,je]of Se)je.isHoistable===Pte.NO&&k(Me,je,je.reason);let et=!1;for(let Me of Se.keys())if(!De.has(Me)){E=!0;let je=l.get(ce);je&&je.has(Me.name)&&(b=!0),et=!0,ce.dependencies.delete(Me.name),ce.hoistedDependencies.set(Me.name,Me),ce.reasons.delete(Me.name);let St=I.dependencies.get(Me.name);if(f.debugLevel>=K4.REASONS){let At=Array.from(ae).concat([ce.locator]).map(Tr=>Ax(Tr)).join("\u2192"),Yt=I.hoistedFrom.get(Me.name);Yt||(Yt=[],I.hoistedFrom.set(Me.name,Yt)),Yt.push(At),ce.hoistedTo.set(Me.name,Array.from(t).map(Tr=>Ax(Tr.locator)).join("\u2192"))}if(!St)I.ident!==Me.ident&&(I.dependencies.set(Me.name,Me),fe.add(Me));else for(let At of Me.references)St.references.add(At)}if(ce.dependencyKind===t0e.EXTERNAL_SOFT_LINK&&et&&(b=!0),f.check){let Me=hAs(e);if(Me)throw new Error(`${Me}, after hoisting dependencies of ${[I,...X,ce].map(je=>Ax(je.locator)).join("\u2192")}: ${$6e(e)}`)}let ct=dJr(ce);for(let Me of ct)if(De.has(Me)){let je=Se.get(Me);if((a.get(Me.name)===Me.ident||!ce.reasons.has(Me.name))&&je.isHoistable!==Pte.YES&&ce.reasons.set(Me.name,je.reason),!Me.isHoistBorder&&de.indexOf(oGt(Me))<0){C.add(ce);let At=fAs(ce,Me);N([...X,ce],ue,de,At,F),C.delete(ce)}}},B,F=new Set(dJr(I)),Q=Array.from(t).map(X=>oGt(X));do{B=F,F=new Set;for(let X of B){if(X.locator===I.locator||X.isHoistBorder)continue;let ae=fAs(I,X);N([],Array.from(r),Q,ae,F)}}while(F.size>0);return{anotherRoundNeeded:b,isGraphChanged:E}},hAs=e=>{let t=[],r=new Set,n=new Set,a=(o,l,A)=>{if(r.has(o)||(r.add(o),n.has(o)))return;let f=new Map(l);for(let I of o.dependencies.values())o.peerNames.has(I.name)||f.set(I.name,I);for(let I of o.originalDependencies.values()){let C=f.get(I.name),b=()=>`${Array.from(n).concat([o]).map(E=>Ax(E.locator)).join("\u2192")}`;if(o.peerNames.has(I.name)){let E=l.get(I.name);(E!==C||!E||E.ident!==I.ident)&&t.push(`${b()} - broken peer promise: expected ${I.ident} but found ${E&&E.ident}`)}else{let E=A.hoistedFrom.get(o.name),N=o.hoistedTo.get(I.name),B=`${E?` hoisted from ${E.join(", ")}`:""}`,F=`${N?` hoisted to ${N}`:""}`,Q=`${b()}${B}`;C?C.ident!==I.ident&&t.push(`${Q} - broken require promise for ${I.name}${F}: expected ${I.ident}, but found: ${C.ident}`):t.push(`${Q} - broken require promise: no required dependency ${I.name}${F} found`)}}n.add(o);for(let I of o.dependencies.values())o.peerNames.has(I.name)||a(I,f,o);n.delete(o)};return a(e,e.dependencies,e),t.join(` -`)},T_l=(e,t)=>{let{identName:r,name:n,reference:a,peerNames:o}=e,l={name:n,references:new Set([a]),locator:pJr(r,a),ident:pAs(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:t0e.WORKSPACE,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[e,l]]),f=(I,C)=>{let b=A.get(I),E=!!b;if(!b){let{name:N,identName:B,reference:F,peerNames:Q,hoistPriority:X,dependencyKind:ae}=I,ne=t.hoistingLimits.get(C.locator);b={name:N,references:new Set([F]),locator:pJr(B,F),ident:pAs(B,F),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(Q),reasons:new Map,decoupled:!0,isHoistBorder:ne?ne.has(N):!1,hoistPriority:X||0,dependencyKind:ae||t0e.REGULAR,hoistedFrom:new Map,hoistedTo:new Map},A.set(I,b)}if(C.dependencies.set(I.name,b),C.originalDependencies.set(I.name,b),E){let N=new Set,B=F=>{if(!N.has(F)){N.add(F),F.decoupled=!1;for(let Q of F.dependencies.values())F.peerNames.has(Q.name)||B(Q)}};B(b)}else for(let N of I.dependencies)f(N,b)};for(let I of e.dependencies)f(I,l);return l},IJr=e=>e.substring(0,e.indexOf("@",1)),R_l=e=>{let t={name:e.name,identName:IJr(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(a,o,l)=>{let A=r.has(a),f;if(o===a)f=l;else{let{name:I,references:C,locator:b}=a;f={name:I,identName:IJr(b),references:C,dependencies:new Set}}if(l.dependencies.add(f),!A){r.add(a);for(let I of a.dependencies.values())a.peerNames.has(I.name)||n(I,a,f);r.delete(a)}};for(let a of e.dependencies.values())n(a,e,t);return t},N_l=e=>{let t=new Map,r=new Set([e]),n=l=>`${l.name}@${l.ident}`,a=l=>{let A=n(l),f=t.get(A);return f||(f={dependents:new Set,peerDependents:new Set,hoistPriority:0},t.set(A,f)),f},o=(l,A)=>{let f=!!r.has(A);if(a(A).dependents.add(l.ident),!f){r.add(A);for(let C of A.dependencies.values()){let b=a(C);b.hoistPriority=Math.max(b.hoistPriority,C.hoistPriority),A.peerNames.has(C.name)?b.peerDependents.add(A.ident):o(A,C)}}};for(let l of e.dependencies.values())e.peerNames.has(l.name)||o(e,l);return t},Ax=e=>{if(!e)return"none";let t=e.indexOf("@",1),r=e.substring(0,t);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let n=e.substring(t+1);if(n==="workspace:.")return".";if(n){let a=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},IAs=5e4,$6e=e=>{let t=0,r=(a,o,l="")=>{if(t>IAs||o.has(a))return"";t++;let A=Array.from(a.dependencies.values()).sort((I,C)=>I.name===C.name?0:I.name>C.name?1:-1),f="";o.add(a);for(let I=0;I":"")+(E!==C.name?`a:${C.name}:`:"")+Ax(C.locator)+(b?` ${b}`:"")} +`)},R_l=(e,t)=>{let{identName:r,name:n,reference:a,peerNames:o}=e,l={name:n,references:new Set([a]),locator:pJr(r,a),ident:pAs(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(o),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:t0e.WORKSPACE,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[e,l]]),f=(I,C)=>{let b=A.get(I),E=!!b;if(!b){let{name:N,identName:B,reference:F,peerNames:Q,hoistPriority:X,dependencyKind:ae}=I,ne=t.hoistingLimits.get(C.locator);b={name:N,references:new Set([F]),locator:pJr(B,F),ident:pAs(B,F),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(Q),reasons:new Map,decoupled:!0,isHoistBorder:ne?ne.has(N):!1,hoistPriority:X||0,dependencyKind:ae||t0e.REGULAR,hoistedFrom:new Map,hoistedTo:new Map},A.set(I,b)}if(C.dependencies.set(I.name,b),C.originalDependencies.set(I.name,b),E){let N=new Set,B=F=>{if(!N.has(F)){N.add(F),F.decoupled=!1;for(let Q of F.dependencies.values())F.peerNames.has(Q.name)||B(Q)}};B(b)}else for(let N of I.dependencies)f(N,b)};for(let I of e.dependencies)f(I,l);return l},IJr=e=>e.substring(0,e.indexOf("@",1)),N_l=e=>{let t={name:e.name,identName:IJr(e.locator),references:new Set(e.references),dependencies:new Set},r=new Set([e]),n=(a,o,l)=>{let A=r.has(a),f;if(o===a)f=l;else{let{name:I,references:C,locator:b}=a;f={name:I,identName:IJr(b),references:C,dependencies:new Set}}if(l.dependencies.add(f),!A){r.add(a);for(let I of a.dependencies.values())a.peerNames.has(I.name)||n(I,a,f);r.delete(a)}};for(let a of e.dependencies.values())n(a,e,t);return t},D_l=e=>{let t=new Map,r=new Set([e]),n=l=>`${l.name}@${l.ident}`,a=l=>{let A=n(l),f=t.get(A);return f||(f={dependents:new Set,peerDependents:new Set,hoistPriority:0},t.set(A,f)),f},o=(l,A)=>{let f=!!r.has(A);if(a(A).dependents.add(l.ident),!f){r.add(A);for(let C of A.dependencies.values()){let b=a(C);b.hoistPriority=Math.max(b.hoistPriority,C.hoistPriority),A.peerNames.has(C.name)?b.peerDependents.add(A.ident):o(A,C)}}};for(let l of e.dependencies.values())e.peerNames.has(l.name)||o(e,l);return t},Ax=e=>{if(!e)return"none";let t=e.indexOf("@",1),r=e.substring(0,t);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let n=e.substring(t+1);if(n==="workspace:.")return".";if(n){let a=(n.indexOf("#")>0?n.split("#")[1]:n).replace("npm:","");return n.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},IAs=5e4,$6e=e=>{let t=0,r=(a,o,l="")=>{if(t>IAs||o.has(a))return"";t++;let A=Array.from(a.dependencies.values()).sort((I,C)=>I.name===C.name?0:I.name>C.name?1:-1),f="";o.add(a);for(let I=0;I":"")+(E!==C.name?`a:${C.name}:`:"")+Ax(C.locator)+(b?` ${b}`:"")} `,f+=r(C,o,`${l}${IIAs?` Tree is too large, part of the tree has been dunped -`:"")}});var cGt=H(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});NH.buildLocatorMap=NH.buildNodeModulesTree=NH.getArchivePath=NH.NodeModulesHoistingLimits=NH.LinkType=void 0;var X_=Bn(),HR=no(),mAs=no(),dGe=hJr(),j4;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(j4||(NH.LinkType=j4={}));var e7e;(function(e){e.WORKSPACES="workspaces",e.DEPENDENCIES="dependencies",e.NONE="none"})(e7e||(NH.NodeModulesHoistingLimits=e7e={}));var aGt="node_modules",yue="$wsroot$",D_l=e=>e.indexOf(`.zip/${aGt}/`)>=0?HR.npath.toPortablePath(e.split(`/${aGt}/`)[0]):null;NH.getArchivePath=D_l;var k_l=(e,t)=>{let{packageTree:r,hoistingLimits:n,errors:a,preserveSymlinksRequired:o}=F_l(e,t),l=null;if(a.length===0){let A=(0,dGe.hoist)(r,{hoistingLimits:n});l=L_l(e,A,t)}return{tree:l,errors:a,preserveSymlinksRequired:o}};NH.buildNodeModulesTree=k_l;var d6=e=>`${e.name}@${e.reference}`,x_l=e=>{let t=new Map;for(let[r,n]of e.entries())if(!n.dirList){let a=t.get(n.locator);a||(a={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,a)),a.locations.push(r)}for(let r of t.values())r.locations=r.locations.sort((n,a)=>{let o=n.split(HR.ppath.delimiter).length,l=a.split(HR.ppath.delimiter).length;return a===n?0:o!==l?l-o:a>n?1:-1});return t};NH.buildLocatorMap=x_l;var CAs=(e,t)=>{let r=X_.structUtils.isVirtualLocator(e)?X_.structUtils.devirtualizeLocator(e):e,n=X_.structUtils.isVirtualLocator(t)?X_.structUtils.devirtualizeLocator(t):t;return X_.structUtils.areLocatorsEqual(r,n)},mJr=(e,t,r,n)=>{if(e.linkType!==j4.SOFT)return!1;let a=HR.npath.toPortablePath(r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation);return HR.ppath.contains(n,a)===null},G_l=e=>{let t=e.getPackageInformation(e.topLevel);if(t===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(e.findPackageLocator(t.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let n=HR.npath.toPortablePath(t.packageLocation.slice(0,-1)),a=new Map,o={children:new Map},l=e.getDependencyTreeRoots(),A=new Map,f=new Set,I=(E,N)=>{let B=d6(E);if(f.has(B))return;f.add(B);let F=e.getPackageInformation(E);if(F){let Q=N?d6(N):"";if(d6(E)!==Q&&F.linkType===j4.SOFT&&!E.reference.startsWith("link:")&&!mJr(F,E,e,n)){let X=_As(F,E,e);(!A.get(X)||E.reference.startsWith("workspace:"))&&A.set(X,E)}for(let[X,ae]of F.packageDependencies)ae!==null&&(F.packagePeers.has(X)||I(e.getLocator(X,ae),E))}};for(let E of l)I(E,null);let C=n.split(HR.ppath.sep);for(let E of A.values()){let N=e.getPackageInformation(E),F=HR.npath.toPortablePath(N.packageLocation.slice(0,-1)).split(HR.ppath.sep).slice(C.length),Q=o;for(let X of F){let ae=Q.children.get(X);ae||(ae={children:new Map},Q.children.set(X,ae)),Q=ae}Q.workspaceLocator=E}let b=(E,N)=>{if(E.workspaceLocator){let B=d6(N),F=a.get(B);F||(F=new Set,a.set(B,F)),F.add(E.workspaceLocator)}for(let B of E.children.values())b(B,E.workspaceLocator||N)};for(let E of o.children.values())b(E,o.workspaceLocator);return a},F_l=(e,t)=>{let r=[],n=!1,a=new Map,o=G_l(e),l=e.getPackageInformation(e.topLevel);if(l===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=e.findPackageLocator(l.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let f=HR.npath.toPortablePath(l.packageLocation.slice(0,-1)),I={name:A.name,identName:A.name,reference:A.reference,peerNames:l.packagePeers,dependencies:new Set,dependencyKind:dGe.HoisterDependencyKind.WORKSPACE},C=new Map,b=(N,B)=>`${d6(B)}:${N}`,E=(N,B,F,Q,X,ae,ne,ce)=>{let fe=b(N,F),ue=C.get(fe),de=!!ue;!de&&F.name===A.name&&F.reference===A.reference&&(ue=I,C.set(fe,I));let be=mJr(B,F,e,f);if(!ue){let Me=dGe.HoisterDependencyKind.REGULAR;be?Me=dGe.HoisterDependencyKind.EXTERNAL_SOFT_LINK:B.linkType===j4.SOFT&&F.name.endsWith(yue)&&(Me=dGe.HoisterDependencyKind.WORKSPACE),ue={name:N,identName:F.name,reference:F.reference,dependencies:new Set,peerNames:Me===dGe.HoisterDependencyKind.WORKSPACE?new Set:B.packagePeers,dependencyKind:Me},C.set(fe,ue)}let Se;if(be?Se=2:X.linkType===j4.SOFT?Se=1:Se=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,Se),ce&&!be){let Me=d6({name:Q.identName,reference:Q.reference}),je=a.get(Me)||new Set;a.set(Me,je),je.add(ue.name)}let De=new Map(B.packageDependencies);if(t.project){let Me=t.project.workspacesByCwd.get(HR.npath.toPortablePath(B.packageLocation.slice(0,-1)));if(Me){let je=new Set([...Array.from(Me.manifest.peerDependencies.values(),St=>X_.structUtils.stringifyIdent(St)),...Array.from(Me.manifest.peerDependenciesMeta.keys())]);for(let St of je)De.has(St)||(De.set(St,ae.get(St)||null),ue.peerNames.add(St))}}let k=d6({name:F.name.replace(yue,""),reference:F.reference}),et=o.get(k);if(et)for(let Me of et)De.set(`${Me.name}${yue}`,Me.reference);(B!==X||B.linkType!==j4.SOFT||!be&&(!t.selfReferencesByCwd||t.selfReferencesByCwd.get(ne)))&&Q.dependencies.add(ue);let ct=F!==A&&B.linkType===j4.SOFT&&!F.name.endsWith(yue)&&!be;if(!de&&!ct){let Me=new Map;for(let[je,St]of De)if(St!==null){let At=e.getLocator(je,St),Yt=e.getLocator(je.replace(yue,""),St),Tr=e.getPackageInformation(Yt);if(Tr===null)throw new Error("Assertion failed: Expected the package to have been registered");let Nr=mJr(Tr,At,e,f);if(t.validateExternalSoftLinks&&t.project&&Nr){Tr.packageDependencies.size>0&&(n=!0);for(let[qt,Xt]of Tr.packageDependencies)if(Xt!==null){let lr=X_.structUtils.parseLocator(Array.isArray(Xt)?`${Xt[0]}@${Xt[1]}`:`${qt}@${Xt}`);if(d6(lr)!==d6(At)){let cr=De.get(qt);if(cr){let Ar=X_.structUtils.parseLocator(Array.isArray(cr)?`${cr[0]}@${cr[1]}`:`${qt}@${cr}`);CAs(Ar,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with parent dependency ${X_.structUtils.prettyLocator(t.project.configuration,Ar)}`})}else{let Ar=Me.get(qt);if(Ar){let qr=Ar.target,_n=X_.structUtils.parseLocator(Array.isArray(qr)?`${qr[0]}@${qr[1]}`:`${qt}@${qr}`);CAs(_n,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with dependency ${X_.structUtils.prettyLocator(t.project.configuration,_n)} from sibling portal ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(Ar.portal.name))}`})}else Me.set(qt,{target:lr.reference,portal:At})}}}}let er=t.hoistingLimitsByCwd?.get(ne),vt=Nr?ne:HR.ppath.relative(f,HR.npath.toPortablePath(Tr.packageLocation))||mAs.PortablePath.dot,xt=t.hoistingLimitsByCwd?.get(vt),Zr=er===e7e.DEPENDENCIES||xt===e7e.DEPENDENCIES||xt===e7e.WORKSPACES;E(je,Tr,At,ue,B,De,vt,Zr)}}};return E(A.name,l,A,I,l,l.packageDependencies,mAs.PortablePath.dot,!1),{packageTree:I,hoistingLimits:a,errors:r,preserveSymlinksRequired:n}};function _As(e,t,r){let n=r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation;return HR.npath.toPortablePath(n||e.packageLocation)}function Z_l(e,t,r){let n=t.getLocator(e.name.replace(yue,""),e.reference),a=t.getPackageInformation(n);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:j4.SOFT,target:HR.npath.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:_As(a,e,t)}}var L_l=(e,t,r)=>{let n=new Map,a=(C,b,E)=>{let{linkType:N,target:B}=Z_l(C,e,r);return{locator:d6(C),nodePath:b,target:B,linkType:N,aliases:E}},o=C=>{let[b,E]=C.split("/");return E?{scope:b,name:E}:{scope:null,name:b}},l=new Set,A=(C,b,E)=>{if(l.has(C))return;l.add(C);let N=Array.from(C.references).sort().join("#");for(let B of C.dependencies){let F=Array.from(B.references).sort().join("#");if(B.identName===C.identName.replace(yue,"")&&F===N)continue;let Q=Array.from(B.references).sort(),X={name:B.identName,reference:Q[0]},{name:ae,scope:ne}=o(B.name),ce=ne?[ne,ae]:[ae],fe=HR.ppath.join(b,aGt),ue=HR.ppath.join(fe,...ce),de=`${E}/${X.name}`,be=a(X,E,Q.slice(1)),Se=!1;if(be.linkType===j4.SOFT&&r.project){let De=r.project.workspacesByCwd.get(be.target.slice(0,-1));Se=!!(De&&!De.manifest.name)}if(!B.name.endsWith(yue)&&!Se){let De=n.get(ue);if(De){if(De.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let ct=X_.structUtils.parseLocator(De.locator),Me=X_.structUtils.parseLocator(be.locator);if(De.linkType!==be.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/${X_.structUtils.stringifyLocator(Me)}`);if(ct.identHash!==Me.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/s${X_.structUtils.stringifyLocator(Me)}`);be.aliases=[...be.aliases,...De.aliases,X_.structUtils.parseLocator(De.locator).reference]}}n.set(ue,be);let k=ue.split("/"),et=k.indexOf(aGt);for(let ct=k.length-1;et>=0&&ct>et;ct--){let Me=HR.npath.toPortablePath(k.slice(0,ct).join(HR.ppath.sep)),je=k[ct],St=n.get(Me);if(!St)n.set(Me,{dirList:new Set([je])});else if(St.dirList){if(St.dirList.has(je))break;St.dirList.add(je)}}}A(B,be.linkType===j4.SOFT?be.target:ue,de)}},f=a({name:t.name,reference:Array.from(t.references)[0]},"",[]),I=f.target;return n.set(I,f),A(t,I,""),n}});var t7e=H(QV=>{"use strict";Object.defineProperty(QV,"__esModule",{value:!0});QV.HoisterDependencyKind=QV.hoist=QV.getArchivePath=QV.buildLocatorMap=QV.buildNodeModulesTree=QV.NodeModulesHoistingLimits=void 0;var V_l=cGt();Object.defineProperty(QV,"getArchivePath",{enumerable:!0,get:function(){return V_l.getArchivePath}});var yAs=cGt();Object.defineProperty(QV,"buildNodeModulesTree",{enumerable:!0,get:function(){return yAs.buildNodeModulesTree}});Object.defineProperty(QV,"buildLocatorMap",{enumerable:!0,get:function(){return yAs.buildLocatorMap}});var P_l=cGt();Object.defineProperty(QV,"NodeModulesHoistingLimits",{enumerable:!0,get:function(){return P_l.NodeModulesHoistingLimits}});var bAs=hJr();Object.defineProperty(QV,"hoist",{enumerable:!0,get:function(){return bAs.hoist}});Object.defineProperty(QV,"HoisterDependencyKind",{enumerable:!0,get:function(){return bAs.HoisterDependencyKind}})});var ZJr=H(z4=>{"use strict";Object.defineProperty(z4,"__esModule",{value:!0});var W_l=wt("zlib"),GAs=wt("path"),r0e=wt("module"),eB=wt("url"),EAs=wt("util"),O_l=wt("assert"),M_l=wt("fs"),H_l=wt("crypto"),Y_l=wt("os"),fGt=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},FAs=fGt(W_l),uGt=fGt(GAs),Q_l=fGt(O_l),X_l=fGt(M_l),ZAs=(e=>(e.HARD="HARD",e.SOFT="SOFT",e))(ZAs||{}),J_l=456789e3,SJr={root:"/",dot:".",parent:".."},gGt={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Rc=Object.create(uGt.default),gh=Object.create(uGt.default.posix);Rc.cwd=()=>process.cwd();gh.cwd=process.platform==="win32"?()=>kJr(process.cwd()):process.cwd;process.platform==="win32"&&(gh.resolve=(...e)=>e.length>0&&gh.isAbsolute(e[0])?uGt.default.posix.resolve(...e):uGt.default.posix.resolve(gh.cwd(),...e));var LAs=function(e,t,r){return t=e.normalize(t),r=e.normalize(r),t===r?".":(t.endsWith(e.sep)||(t=t+e.sep),r.startsWith(t)?r.slice(t.length):null)};Rc.contains=(e,t)=>LAs(Rc,e,t);gh.contains=(e,t)=>LAs(gh,e,t);var U_l=/^([a-zA-Z]:.*)$/,K_l=/^\/\/(\.\/)?(.*)$/,j_l=/^\/([a-zA-Z]:.*)$/,z_l=/^\/unc\/(\.dot\/)?(.*)$/;function q_l(e){let t,r;if(t=e.match(j_l))e=t[1];else if(r=e.match(z_l))e=`\\\\${r[1]?".\\":""}${r[2]}`;else return e;return e.replace(/\//g,"\\")}function $_l(e){e=e.replace(/\\/g,"/");let t,r;return(t=e.match(U_l))?e=`/${t[1]}`:(r=e.match(K_l))&&(e=`/unc/${r[1]?".dot/":""}${r[2]}`),e}var kJr=process.platform==="win32"?$_l:e=>e,VAs=process.platform==="win32"?q_l:e=>e;Rc.fromPortablePath=VAs;Rc.toPortablePath=kJr;function PAs(e,t){return e===Rc?VAs(t):kJr(t)}var i0e=new Date(J_l*1e3),e0l=i0e.getTime();async function t0l(e,t,r,n,a){let o=e.pathUtils.normalize(t),l=r.pathUtils.normalize(n),A=[],f=[],{atime:I,mtime:C}=a.stableTime?{atime:i0e,mtime:i0e}:await r.lstatPromise(l);await e.mkdirpPromise(e.pathUtils.dirname(t),{utimes:[I,C]}),await vJr(A,f,e,o,r,l,{...a,didParentExist:!0});for(let b of A)await b();await Promise.all(f.map(b=>b()))}async function vJr(e,t,r,n,a,o,l){let A=l.didParentExist?await WAs(r,n):null,f=await a.lstatPromise(o),{atime:I,mtime:C}=l.stableTime?{atime:i0e,mtime:i0e}:f,b;switch(!0){case f.isDirectory():b=await r0l(e,t,r,n,A,a,o,f,l);break;case f.isFile():b=await s0l(e,t,r,n,A,a,o,f,l);break;case f.isSymbolicLink():b=await o0l(e,t,r,n,A,a,o,f,l);break;default:throw new Error(`Unsupported file type (${f.mode})`)}return(l.linkStrategy?.type!=="HardlinkFromIndex"||!f.isFile())&&((b||A?.mtime?.getTime()!==C.getTime()||A?.atime?.getTime()!==I.getTime())&&(t.push(()=>r.lutimesPromise(n,I,C)),b=!0),(A===null||(A.mode&511)!==(f.mode&511))&&(t.push(()=>r.chmodPromise(n,f.mode&511)),b=!0)),b}async function WAs(e,t){try{return await e.lstatPromise(t)}catch{return null}}async function r0l(e,t,r,n,a,o,l,A,f){if(a!==null&&!a.isDirectory())if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;let I=!1;a===null&&(e.push(async()=>{try{await r.mkdirPromise(n,{mode:A.mode})}catch(E){if(E.code!=="EEXIST")throw E}}),I=!0);let C=await o.readdirPromise(l),b=f.didParentExist&&!a?{...f,didParentExist:!1}:f;if(f.stableSort)for(let E of C.sort())await vJr(e,t,r,r.pathUtils.join(n,E),o,o.pathUtils.join(l,E),b)&&(I=!0);else(await Promise.all(C.map(async N=>{await vJr(e,t,r,r.pathUtils.join(n,N),o,o.pathUtils.join(l,N),b)}))).some(N=>N)&&(I=!0);return I}async function n0l(e,t,r,n,a,o,l,A,f,I){let C=await o.checksumFilePromise(l,{algorithm:"sha1"}),b=420,E=A.mode&511,N=`${C}${E!==b?E.toString(8):""}`,B=r.pathUtils.join(I.indexPath,C.slice(0,2),`${N}.dat`),F;(ce=>{ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"})(F||(F={}));let Q=1,X=await WAs(r,B);if(a){let ce=X&&a.dev===X.dev&&a.ino===X.ino,fe=X?.mtimeMs!==e0l;if(ce&&fe&&I.autoRepair&&(Q=0,X=null),!ce)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1}let ae=!X&&Q===1?`${B}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ne=!1;return e.push(async()=>{if(!X&&(Q===0&&await r.lockPromise(B,async()=>{let ce=await o.readFilePromise(l);await r.writeFilePromise(B,ce)}),Q===1&&ae)){let ce=await o.readFilePromise(l);await r.writeFilePromise(ae,ce);try{await r.linkPromise(ae,B)}catch(fe){if(fe.code==="EEXIST")ne=!0,await r.unlinkPromise(ae);else throw fe}}a||await r.linkPromise(B,n)}),t.push(async()=>{X||(await r.lutimesPromise(B,i0e,i0e),E!==b&&await r.chmodPromise(B,E)),ae&&!ne&&await r.unlinkPromise(ae)}),!1}async function i0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{let I=await o.readFilePromise(l);await r.writeFilePromise(n,I)}),!0}async function s0l(e,t,r,n,a,o,l,A,f){return f.linkStrategy?.type==="HardlinkFromIndex"?n0l(e,t,r,n,a,o,l,A,f,f.linkStrategy):i0l(e,t,r,n,a,o,l,A,f)}async function o0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{await r.symlinkPromise(PAs(r.pathUtils,await o.readlinkPromise(l)),n)}),!0}var AGt=class{pathUtils;constructor(t){this.pathUtils=t}async*genTraversePromise(t,{stableSort:r=!1}={}){let n=[t];for(;n.length>0;){let a=n.shift();if((await this.lstatPromise(a)).isDirectory()){let l=await this.readdirPromise(a);if(r)for(let A of l.sort())n.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(t,{algorithm:r="sha512"}={}){let n=await this.openPromise(t,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=H_l.createHash(r),A=0;for(;(A=await this.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await this.closePromise(n)}}async removePromise(t,{recursive:r=!0,maxRetries:n=5}={}){let a;try{a=await this.lstatPromise(t)}catch(o){if(o.code==="ENOENT")return;throw o}if(a.isDirectory()){if(r){let o=await this.readdirPromise(t);await Promise.all(o.map(l=>this.removePromise(this.pathUtils.resolve(t,l))))}for(let o=0;o<=n;o++)try{await this.rmdirPromise(t);break}catch(l){if(l.code!=="EBUSY"&&l.code!=="ENOTEMPTY")throw l;osetTimeout(A,o*100))}}else await this.unlinkPromise(t)}removeSync(t,{recursive:r=!0}={}){let n;try{n=this.lstatSync(t)}catch(a){if(a.code==="ENOENT")return;throw a}if(n.isDirectory()){if(r)for(let a of this.readdirSync(t))this.removeSync(this.pathUtils.resolve(t,a));this.rmdirSync(t)}else this.unlinkSync(t)}async mkdirpPromise(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&await this.chmodPromise(A,r),n!=null)await this.utimesPromise(A,n[0],n[1]);else{let f=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,f.atime,f.mtime)}}}return o}mkdirpSync(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&this.chmodSync(A,r),n!=null)this.utimesSync(A,n[0],n[1]);else{let f=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,f.atime,f.mtime)}}}return o}async copyPromise(t,r,{baseFs:n=this,overwrite:a=!0,stableSort:o=!1,stableTime:l=!1,linkStrategy:A=null}={}){return await t0l(this,t,n,r,{overwrite:a,stableSort:o,stableTime:l,linkStrategy:A})}copySync(t,r,{baseFs:n=this,overwrite:a=!0}={}){let o=n.lstatSync(r),l=this.existsSync(t);if(o.isDirectory()){this.mkdirpSync(t);let f=n.readdirSync(r);for(let I of f)this.copySync(this.pathUtils.join(t,I),n.pathUtils.join(r,I),{baseFs:n,overwrite:a})}else if(o.isFile()){if(!l||a){l&&this.removeSync(t);let f=n.readFileSync(r);this.writeFileSync(t,f)}}else if(o.isSymbolicLink()){if(!l||a){l&&this.removeSync(t);let f=n.readlinkSync(r);this.symlinkSync(PAs(this.pathUtils,f),t)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${o.mode.toString(8).padStart(6,"0")})`);let A=o.mode&511;this.chmodSync(t,A)}async changeFilePromise(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(t,r,n):this.changeFileTextPromise(t,r,n)}async changeFileBufferPromise(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(t)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(t,r,{mode:n})}async changeFileTextPromise(t,r,{automaticNewlines:n,mode:a}={}){let o="";try{o=await this.readFilePromise(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&await this.writeFilePromise(t,l,{mode:a})}changeFileSync(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(t,r,n):this.changeFileTextSync(t,r,n)}changeFileBufferSync(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(t)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(t,r,{mode:n})}changeFileTextSync(t,r,{automaticNewlines:n=!1,mode:a}={}){let o="";try{o=this.readFileSync(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&this.writeFileSync(t,l,{mode:a})}async movePromise(t,r){try{await this.renamePromise(t,r)}catch(n){if(n.code==="EXDEV")await this.copyPromise(r,t),await this.removePromise(t);else throw n}}moveSync(t,r){try{this.renameSync(t,r)}catch(n){if(n.code==="EXDEV")this.copySync(r,t),this.removeSync(t);else throw n}}async lockPromise(t,r){let n=`${t}.flock`,a=1e3/60,o=Date.now(),l=null,A=async()=>{let f;try{[f]=await this.readJsonPromise(n)}catch{return Date.now()-o<500}try{return process.kill(f,0),!0}catch{return!1}};for(;l===null;)try{l=await this.openPromise(n,"wx")}catch(f){if(f.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(n);continue}catch{}if(Date.now()-o<60*1e3)await new Promise(I=>setTimeout(I,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${n})`)}else throw f}await this.writePromise(l,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(l),await this.unlinkPromise(n)}catch{}}}async readJsonPromise(t){let r=await this.readFilePromise(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}readJsonSync(t){let r=this.readFileSync(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}async writeJsonPromise(t,r,{compact:n=!1}={}){let a=n?0:2;return await this.writeFilePromise(t,`${JSON.stringify(r,null,a)} +`:"")}});var cGt=H(NH=>{"use strict";Object.defineProperty(NH,"__esModule",{value:!0});NH.buildLocatorMap=NH.buildNodeModulesTree=NH.getArchivePath=NH.NodeModulesHoistingLimits=NH.LinkType=void 0;var X_=Bn(),HR=no(),mAs=no(),dGe=hJr(),j4;(function(e){e.HARD="HARD",e.SOFT="SOFT"})(j4||(NH.LinkType=j4={}));var e7e;(function(e){e.WORKSPACES="workspaces",e.DEPENDENCIES="dependencies",e.NONE="none"})(e7e||(NH.NodeModulesHoistingLimits=e7e={}));var aGt="node_modules",yue="$wsroot$",k_l=e=>e.indexOf(`.zip/${aGt}/`)>=0?HR.npath.toPortablePath(e.split(`/${aGt}/`)[0]):null;NH.getArchivePath=k_l;var x_l=(e,t)=>{let{packageTree:r,hoistingLimits:n,errors:a,preserveSymlinksRequired:o}=Z_l(e,t),l=null;if(a.length===0){let A=(0,dGe.hoist)(r,{hoistingLimits:n});l=V_l(e,A,t)}return{tree:l,errors:a,preserveSymlinksRequired:o}};NH.buildNodeModulesTree=x_l;var d6=e=>`${e.name}@${e.reference}`,G_l=e=>{let t=new Map;for(let[r,n]of e.entries())if(!n.dirList){let a=t.get(n.locator);a||(a={target:n.target,linkType:n.linkType,locations:[],aliases:n.aliases},t.set(n.locator,a)),a.locations.push(r)}for(let r of t.values())r.locations=r.locations.sort((n,a)=>{let o=n.split(HR.ppath.delimiter).length,l=a.split(HR.ppath.delimiter).length;return a===n?0:o!==l?l-o:a>n?1:-1});return t};NH.buildLocatorMap=G_l;var CAs=(e,t)=>{let r=X_.structUtils.isVirtualLocator(e)?X_.structUtils.devirtualizeLocator(e):e,n=X_.structUtils.isVirtualLocator(t)?X_.structUtils.devirtualizeLocator(t):t;return X_.structUtils.areLocatorsEqual(r,n)},mJr=(e,t,r,n)=>{if(e.linkType!==j4.SOFT)return!1;let a=HR.npath.toPortablePath(r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation);return HR.ppath.contains(n,a)===null},F_l=e=>{let t=e.getPackageInformation(e.topLevel);if(t===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(e.findPackageLocator(t.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let n=HR.npath.toPortablePath(t.packageLocation.slice(0,-1)),a=new Map,o={children:new Map},l=e.getDependencyTreeRoots(),A=new Map,f=new Set,I=(E,N)=>{let B=d6(E);if(f.has(B))return;f.add(B);let F=e.getPackageInformation(E);if(F){let Q=N?d6(N):"";if(d6(E)!==Q&&F.linkType===j4.SOFT&&!E.reference.startsWith("link:")&&!mJr(F,E,e,n)){let X=_As(F,E,e);(!A.get(X)||E.reference.startsWith("workspace:"))&&A.set(X,E)}for(let[X,ae]of F.packageDependencies)ae!==null&&(F.packagePeers.has(X)||I(e.getLocator(X,ae),E))}};for(let E of l)I(E,null);let C=n.split(HR.ppath.sep);for(let E of A.values()){let N=e.getPackageInformation(E),F=HR.npath.toPortablePath(N.packageLocation.slice(0,-1)).split(HR.ppath.sep).slice(C.length),Q=o;for(let X of F){let ae=Q.children.get(X);ae||(ae={children:new Map},Q.children.set(X,ae)),Q=ae}Q.workspaceLocator=E}let b=(E,N)=>{if(E.workspaceLocator){let B=d6(N),F=a.get(B);F||(F=new Set,a.set(B,F)),F.add(E.workspaceLocator)}for(let B of E.children.values())b(B,E.workspaceLocator||N)};for(let E of o.children.values())b(E,o.workspaceLocator);return a},Z_l=(e,t)=>{let r=[],n=!1,a=new Map,o=F_l(e),l=e.getPackageInformation(e.topLevel);if(l===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=e.findPackageLocator(l.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let f=HR.npath.toPortablePath(l.packageLocation.slice(0,-1)),I={name:A.name,identName:A.name,reference:A.reference,peerNames:l.packagePeers,dependencies:new Set,dependencyKind:dGe.HoisterDependencyKind.WORKSPACE},C=new Map,b=(N,B)=>`${d6(B)}:${N}`,E=(N,B,F,Q,X,ae,ne,ce)=>{let fe=b(N,F),ue=C.get(fe),de=!!ue;!de&&F.name===A.name&&F.reference===A.reference&&(ue=I,C.set(fe,I));let be=mJr(B,F,e,f);if(!ue){let Me=dGe.HoisterDependencyKind.REGULAR;be?Me=dGe.HoisterDependencyKind.EXTERNAL_SOFT_LINK:B.linkType===j4.SOFT&&F.name.endsWith(yue)&&(Me=dGe.HoisterDependencyKind.WORKSPACE),ue={name:N,identName:F.name,reference:F.reference,dependencies:new Set,peerNames:Me===dGe.HoisterDependencyKind.WORKSPACE?new Set:B.packagePeers,dependencyKind:Me},C.set(fe,ue)}let Se;if(be?Se=2:X.linkType===j4.SOFT?Se=1:Se=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,Se),ce&&!be){let Me=d6({name:Q.identName,reference:Q.reference}),je=a.get(Me)||new Set;a.set(Me,je),je.add(ue.name)}let De=new Map(B.packageDependencies);if(t.project){let Me=t.project.workspacesByCwd.get(HR.npath.toPortablePath(B.packageLocation.slice(0,-1)));if(Me){let je=new Set([...Array.from(Me.manifest.peerDependencies.values(),St=>X_.structUtils.stringifyIdent(St)),...Array.from(Me.manifest.peerDependenciesMeta.keys())]);for(let St of je)De.has(St)||(De.set(St,ae.get(St)||null),ue.peerNames.add(St))}}let k=d6({name:F.name.replace(yue,""),reference:F.reference}),et=o.get(k);if(et)for(let Me of et)De.set(`${Me.name}${yue}`,Me.reference);(B!==X||B.linkType!==j4.SOFT||!be&&(!t.selfReferencesByCwd||t.selfReferencesByCwd.get(ne)))&&Q.dependencies.add(ue);let ct=F!==A&&B.linkType===j4.SOFT&&!F.name.endsWith(yue)&&!be;if(!de&&!ct){let Me=new Map;for(let[je,St]of De)if(St!==null){let At=e.getLocator(je,St),Yt=e.getLocator(je.replace(yue,""),St),Tr=e.getPackageInformation(Yt);if(Tr===null)throw new Error("Assertion failed: Expected the package to have been registered");let Nr=mJr(Tr,At,e,f);if(t.validateExternalSoftLinks&&t.project&&Nr){Tr.packageDependencies.size>0&&(n=!0);for(let[qt,Xt]of Tr.packageDependencies)if(Xt!==null){let lr=X_.structUtils.parseLocator(Array.isArray(Xt)?`${Xt[0]}@${Xt[1]}`:`${qt}@${Xt}`);if(d6(lr)!==d6(At)){let cr=De.get(qt);if(cr){let Ar=X_.structUtils.parseLocator(Array.isArray(cr)?`${cr[0]}@${cr[1]}`:`${qt}@${cr}`);CAs(Ar,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with parent dependency ${X_.structUtils.prettyLocator(t.project.configuration,Ar)}`})}else{let Ar=Me.get(qt);if(Ar){let qr=Ar.target,_n=X_.structUtils.parseLocator(Array.isArray(qr)?`${qr[0]}@${qr[1]}`:`${qt}@${qr}`);CAs(_n,lr)||r.push({messageName:X_.MessageName.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(At.name))} into ${X_.structUtils.prettyLocator(t.project.configuration,X_.structUtils.parseLocator(`${F.name}@${F.reference}`))} dependency ${X_.structUtils.prettyLocator(t.project.configuration,lr)} conflicts with dependency ${X_.structUtils.prettyLocator(t.project.configuration,_n)} from sibling portal ${X_.structUtils.prettyIdent(t.project.configuration,X_.structUtils.parseIdent(Ar.portal.name))}`})}else Me.set(qt,{target:lr.reference,portal:At})}}}}let er=t.hoistingLimitsByCwd?.get(ne),vt=Nr?ne:HR.ppath.relative(f,HR.npath.toPortablePath(Tr.packageLocation))||mAs.PortablePath.dot,xt=t.hoistingLimitsByCwd?.get(vt),Zr=er===e7e.DEPENDENCIES||xt===e7e.DEPENDENCIES||xt===e7e.WORKSPACES;E(je,Tr,At,ue,B,De,vt,Zr)}}};return E(A.name,l,A,I,l,l.packageDependencies,mAs.PortablePath.dot,!1),{packageTree:I,hoistingLimits:a,errors:r,preserveSymlinksRequired:n}};function _As(e,t,r){let n=r.resolveVirtual&&t.reference&&t.reference.startsWith("virtual:")?r.resolveVirtual(e.packageLocation):e.packageLocation;return HR.npath.toPortablePath(n||e.packageLocation)}function L_l(e,t,r){let n=t.getLocator(e.name.replace(yue,""),e.reference),a=t.getPackageInformation(n);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:j4.SOFT,target:HR.npath.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:_As(a,e,t)}}var V_l=(e,t,r)=>{let n=new Map,a=(C,b,E)=>{let{linkType:N,target:B}=L_l(C,e,r);return{locator:d6(C),nodePath:b,target:B,linkType:N,aliases:E}},o=C=>{let[b,E]=C.split("/");return E?{scope:b,name:E}:{scope:null,name:b}},l=new Set,A=(C,b,E)=>{if(l.has(C))return;l.add(C);let N=Array.from(C.references).sort().join("#");for(let B of C.dependencies){let F=Array.from(B.references).sort().join("#");if(B.identName===C.identName.replace(yue,"")&&F===N)continue;let Q=Array.from(B.references).sort(),X={name:B.identName,reference:Q[0]},{name:ae,scope:ne}=o(B.name),ce=ne?[ne,ae]:[ae],fe=HR.ppath.join(b,aGt),ue=HR.ppath.join(fe,...ce),de=`${E}/${X.name}`,be=a(X,E,Q.slice(1)),Se=!1;if(be.linkType===j4.SOFT&&r.project){let De=r.project.workspacesByCwd.get(be.target.slice(0,-1));Se=!!(De&&!De.manifest.name)}if(!B.name.endsWith(yue)&&!Se){let De=n.get(ue);if(De){if(De.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let ct=X_.structUtils.parseLocator(De.locator),Me=X_.structUtils.parseLocator(be.locator);if(De.linkType!==be.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/${X_.structUtils.stringifyLocator(Me)}`);if(ct.identHash!==Me.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${De.nodePath}/${X_.structUtils.stringifyLocator(ct)} and ${E}/s${X_.structUtils.stringifyLocator(Me)}`);be.aliases=[...be.aliases,...De.aliases,X_.structUtils.parseLocator(De.locator).reference]}}n.set(ue,be);let k=ue.split("/"),et=k.indexOf(aGt);for(let ct=k.length-1;et>=0&&ct>et;ct--){let Me=HR.npath.toPortablePath(k.slice(0,ct).join(HR.ppath.sep)),je=k[ct],St=n.get(Me);if(!St)n.set(Me,{dirList:new Set([je])});else if(St.dirList){if(St.dirList.has(je))break;St.dirList.add(je)}}}A(B,be.linkType===j4.SOFT?be.target:ue,de)}},f=a({name:t.name,reference:Array.from(t.references)[0]},"",[]),I=f.target;return n.set(I,f),A(t,I,""),n}});var t7e=H(QV=>{"use strict";Object.defineProperty(QV,"__esModule",{value:!0});QV.HoisterDependencyKind=QV.hoist=QV.getArchivePath=QV.buildLocatorMap=QV.buildNodeModulesTree=QV.NodeModulesHoistingLimits=void 0;var P_l=cGt();Object.defineProperty(QV,"getArchivePath",{enumerable:!0,get:function(){return P_l.getArchivePath}});var yAs=cGt();Object.defineProperty(QV,"buildNodeModulesTree",{enumerable:!0,get:function(){return yAs.buildNodeModulesTree}});Object.defineProperty(QV,"buildLocatorMap",{enumerable:!0,get:function(){return yAs.buildLocatorMap}});var W_l=cGt();Object.defineProperty(QV,"NodeModulesHoistingLimits",{enumerable:!0,get:function(){return W_l.NodeModulesHoistingLimits}});var bAs=hJr();Object.defineProperty(QV,"hoist",{enumerable:!0,get:function(){return bAs.hoist}});Object.defineProperty(QV,"HoisterDependencyKind",{enumerable:!0,get:function(){return bAs.HoisterDependencyKind}})});var ZJr=H(z4=>{"use strict";Object.defineProperty(z4,"__esModule",{value:!0});var O_l=wt("zlib"),GAs=wt("path"),r0e=wt("module"),eB=wt("url"),EAs=wt("util"),M_l=wt("assert"),H_l=wt("fs"),Y_l=wt("crypto"),Q_l=wt("os"),fGt=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},FAs=fGt(O_l),uGt=fGt(GAs),X_l=fGt(M_l),J_l=fGt(H_l),ZAs=(e=>(e.HARD="HARD",e.SOFT="SOFT",e))(ZAs||{}),U_l=456789e3,SJr={root:"/",dot:".",parent:".."},gGt={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Rc=Object.create(uGt.default),gh=Object.create(uGt.default.posix);Rc.cwd=()=>process.cwd();gh.cwd=process.platform==="win32"?()=>kJr(process.cwd()):process.cwd;process.platform==="win32"&&(gh.resolve=(...e)=>e.length>0&&gh.isAbsolute(e[0])?uGt.default.posix.resolve(...e):uGt.default.posix.resolve(gh.cwd(),...e));var LAs=function(e,t,r){return t=e.normalize(t),r=e.normalize(r),t===r?".":(t.endsWith(e.sep)||(t=t+e.sep),r.startsWith(t)?r.slice(t.length):null)};Rc.contains=(e,t)=>LAs(Rc,e,t);gh.contains=(e,t)=>LAs(gh,e,t);var K_l=/^([a-zA-Z]:.*)$/,j_l=/^\/\/(\.\/)?(.*)$/,z_l=/^\/([a-zA-Z]:.*)$/,q_l=/^\/unc\/(\.dot\/)?(.*)$/;function $_l(e){let t,r;if(t=e.match(z_l))e=t[1];else if(r=e.match(q_l))e=`\\\\${r[1]?".\\":""}${r[2]}`;else return e;return e.replace(/\//g,"\\")}function e0l(e){e=e.replace(/\\/g,"/");let t,r;return(t=e.match(K_l))?e=`/${t[1]}`:(r=e.match(j_l))&&(e=`/unc/${r[1]?".dot/":""}${r[2]}`),e}var kJr=process.platform==="win32"?e0l:e=>e,VAs=process.platform==="win32"?$_l:e=>e;Rc.fromPortablePath=VAs;Rc.toPortablePath=kJr;function PAs(e,t){return e===Rc?VAs(t):kJr(t)}var i0e=new Date(U_l*1e3),t0l=i0e.getTime();async function r0l(e,t,r,n,a){let o=e.pathUtils.normalize(t),l=r.pathUtils.normalize(n),A=[],f=[],{atime:I,mtime:C}=a.stableTime?{atime:i0e,mtime:i0e}:await r.lstatPromise(l);await e.mkdirpPromise(e.pathUtils.dirname(t),{utimes:[I,C]}),await vJr(A,f,e,o,r,l,{...a,didParentExist:!0});for(let b of A)await b();await Promise.all(f.map(b=>b()))}async function vJr(e,t,r,n,a,o,l){let A=l.didParentExist?await WAs(r,n):null,f=await a.lstatPromise(o),{atime:I,mtime:C}=l.stableTime?{atime:i0e,mtime:i0e}:f,b;switch(!0){case f.isDirectory():b=await n0l(e,t,r,n,A,a,o,f,l);break;case f.isFile():b=await o0l(e,t,r,n,A,a,o,f,l);break;case f.isSymbolicLink():b=await a0l(e,t,r,n,A,a,o,f,l);break;default:throw new Error(`Unsupported file type (${f.mode})`)}return(l.linkStrategy?.type!=="HardlinkFromIndex"||!f.isFile())&&((b||A?.mtime?.getTime()!==C.getTime()||A?.atime?.getTime()!==I.getTime())&&(t.push(()=>r.lutimesPromise(n,I,C)),b=!0),(A===null||(A.mode&511)!==(f.mode&511))&&(t.push(()=>r.chmodPromise(n,f.mode&511)),b=!0)),b}async function WAs(e,t){try{return await e.lstatPromise(t)}catch{return null}}async function n0l(e,t,r,n,a,o,l,A,f){if(a!==null&&!a.isDirectory())if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;let I=!1;a===null&&(e.push(async()=>{try{await r.mkdirPromise(n,{mode:A.mode})}catch(E){if(E.code!=="EEXIST")throw E}}),I=!0);let C=await o.readdirPromise(l),b=f.didParentExist&&!a?{...f,didParentExist:!1}:f;if(f.stableSort)for(let E of C.sort())await vJr(e,t,r,r.pathUtils.join(n,E),o,o.pathUtils.join(l,E),b)&&(I=!0);else(await Promise.all(C.map(async N=>{await vJr(e,t,r,r.pathUtils.join(n,N),o,o.pathUtils.join(l,N),b)}))).some(N=>N)&&(I=!0);return I}async function i0l(e,t,r,n,a,o,l,A,f,I){let C=await o.checksumFilePromise(l,{algorithm:"sha1"}),b=420,E=A.mode&511,N=`${C}${E!==b?E.toString(8):""}`,B=r.pathUtils.join(I.indexPath,C.slice(0,2),`${N}.dat`),F;(ce=>{ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"})(F||(F={}));let Q=1,X=await WAs(r,B);if(a){let ce=X&&a.dev===X.dev&&a.ino===X.ino,fe=X?.mtimeMs!==t0l;if(ce&&fe&&I.autoRepair&&(Q=0,X=null),!ce)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1}let ae=!X&&Q===1?`${B}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,ne=!1;return e.push(async()=>{if(!X&&(Q===0&&await r.lockPromise(B,async()=>{let ce=await o.readFilePromise(l);await r.writeFilePromise(B,ce)}),Q===1&&ae)){let ce=await o.readFilePromise(l);await r.writeFilePromise(ae,ce);try{await r.linkPromise(ae,B)}catch(fe){if(fe.code==="EEXIST")ne=!0,await r.unlinkPromise(ae);else throw fe}}a||await r.linkPromise(B,n)}),t.push(async()=>{X||(await r.lutimesPromise(B,i0e,i0e),E!==b&&await r.chmodPromise(B,E)),ae&&!ne&&await r.unlinkPromise(ae)}),!1}async function s0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{let I=await o.readFilePromise(l);await r.writeFilePromise(n,I)}),!0}async function o0l(e,t,r,n,a,o,l,A,f){return f.linkStrategy?.type==="HardlinkFromIndex"?i0l(e,t,r,n,a,o,l,A,f,f.linkStrategy):s0l(e,t,r,n,a,o,l,A,f)}async function a0l(e,t,r,n,a,o,l,A,f){if(a!==null)if(f.overwrite)e.push(async()=>r.removePromise(n)),a=null;else return!1;return e.push(async()=>{await r.symlinkPromise(PAs(r.pathUtils,await o.readlinkPromise(l)),n)}),!0}var AGt=class{pathUtils;constructor(t){this.pathUtils=t}async*genTraversePromise(t,{stableSort:r=!1}={}){let n=[t];for(;n.length>0;){let a=n.shift();if((await this.lstatPromise(a)).isDirectory()){let l=await this.readdirPromise(a);if(r)for(let A of l.sort())n.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(t,{algorithm:r="sha512"}={}){let n=await this.openPromise(t,"r");try{let o=Buffer.allocUnsafeSlow(65536),l=Y_l.createHash(r),A=0;for(;(A=await this.readPromise(n,o,0,65536))!==0;)l.update(A===65536?o:o.slice(0,A));return l.digest("hex")}finally{await this.closePromise(n)}}async removePromise(t,{recursive:r=!0,maxRetries:n=5}={}){let a;try{a=await this.lstatPromise(t)}catch(o){if(o.code==="ENOENT")return;throw o}if(a.isDirectory()){if(r){let o=await this.readdirPromise(t);await Promise.all(o.map(l=>this.removePromise(this.pathUtils.resolve(t,l))))}for(let o=0;o<=n;o++)try{await this.rmdirPromise(t);break}catch(l){if(l.code!=="EBUSY"&&l.code!=="ENOTEMPTY")throw l;osetTimeout(A,o*100))}}else await this.unlinkPromise(t)}removeSync(t,{recursive:r=!0}={}){let n;try{n=this.lstatSync(t)}catch(a){if(a.code==="ENOENT")return;throw a}if(n.isDirectory()){if(r)for(let a of this.readdirSync(t))this.removeSync(this.pathUtils.resolve(t,a));this.rmdirSync(t)}else this.unlinkSync(t)}async mkdirpPromise(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&await this.chmodPromise(A,r),n!=null)await this.utimesPromise(A,n[0],n[1]);else{let f=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,f.atime,f.mtime)}}}return o}mkdirpSync(t,{chmod:r,utimes:n}={}){if(t=this.resolve(t),t===this.pathUtils.dirname(t))return;let a=t.split(this.pathUtils.sep),o;for(let l=2;l<=a.length;++l){let A=a.slice(0,l).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(f){if(f.code==="EEXIST")continue;throw f}if(o??=A,r!=null&&this.chmodSync(A,r),n!=null)this.utimesSync(A,n[0],n[1]);else{let f=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,f.atime,f.mtime)}}}return o}async copyPromise(t,r,{baseFs:n=this,overwrite:a=!0,stableSort:o=!1,stableTime:l=!1,linkStrategy:A=null}={}){return await r0l(this,t,n,r,{overwrite:a,stableSort:o,stableTime:l,linkStrategy:A})}copySync(t,r,{baseFs:n=this,overwrite:a=!0}={}){let o=n.lstatSync(r),l=this.existsSync(t);if(o.isDirectory()){this.mkdirpSync(t);let f=n.readdirSync(r);for(let I of f)this.copySync(this.pathUtils.join(t,I),n.pathUtils.join(r,I),{baseFs:n,overwrite:a})}else if(o.isFile()){if(!l||a){l&&this.removeSync(t);let f=n.readFileSync(r);this.writeFileSync(t,f)}}else if(o.isSymbolicLink()){if(!l||a){l&&this.removeSync(t);let f=n.readlinkSync(r);this.symlinkSync(PAs(this.pathUtils,f),t)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${o.mode.toString(8).padStart(6,"0")})`);let A=o.mode&511;this.chmodSync(t,A)}async changeFilePromise(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(t,r,n):this.changeFileTextPromise(t,r,n)}async changeFileBufferPromise(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(t)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(t,r,{mode:n})}async changeFileTextPromise(t,r,{automaticNewlines:n,mode:a}={}){let o="";try{o=await this.readFilePromise(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&await this.writeFilePromise(t,l,{mode:a})}changeFileSync(t,r,n={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(t,r,n):this.changeFileTextSync(t,r,n)}changeFileBufferSync(t,r,{mode:n}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(t)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(t,r,{mode:n})}changeFileTextSync(t,r,{automaticNewlines:n=!1,mode:a}={}){let o="";try{o=this.readFileSync(t,"utf8")}catch{}let l=n?SAs(o,r):r;o!==l&&this.writeFileSync(t,l,{mode:a})}async movePromise(t,r){try{await this.renamePromise(t,r)}catch(n){if(n.code==="EXDEV")await this.copyPromise(r,t),await this.removePromise(t);else throw n}}moveSync(t,r){try{this.renameSync(t,r)}catch(n){if(n.code==="EXDEV")this.copySync(r,t),this.removeSync(t);else throw n}}async lockPromise(t,r){let n=`${t}.flock`,a=1e3/60,o=Date.now(),l=null,A=async()=>{let f;try{[f]=await this.readJsonPromise(n)}catch{return Date.now()-o<500}try{return process.kill(f,0),!0}catch{return!1}};for(;l===null;)try{l=await this.openPromise(n,"wx")}catch(f){if(f.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(n);continue}catch{}if(Date.now()-o<60*1e3)await new Promise(I=>setTimeout(I,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${n})`)}else throw f}await this.writePromise(l,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(l),await this.unlinkPromise(n)}catch{}}}async readJsonPromise(t){let r=await this.readFilePromise(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}readJsonSync(t){let r=this.readFileSync(t,"utf8");try{return JSON.parse(r)}catch(n){throw n.message+=` (in ${t})`,n}}async writeJsonPromise(t,r,{compact:n=!1}={}){let a=n?0:2;return await this.writeFilePromise(t,`${JSON.stringify(r,null,a)} `)}writeJsonSync(t,r,{compact:n=!1}={}){let a=n?0:2;return this.writeFileSync(t,`${JSON.stringify(r,null,a)} -`)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}},BJr=class extends AGt{constructor(){super(gh)}};function a0l(e){let t=e.match(/\r?\n/g);if(t===null)return Y_l.EOL;let r=t.filter(a=>a===`\r +`)}async preserveTimePromise(t,r){let n=await this.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await this.lutimesPromise(t,n.atime,n.mtime)}async preserveTimeSync(t,r){let n=this.lstatSync(t),a=r();typeof a<"u"&&(t=a),this.lutimesSync(t,n.atime,n.mtime)}},BJr=class extends AGt{constructor(){super(gh)}};function c0l(e){let t=e.match(/\r?\n/g);if(t===null)return Q_l.EOL;let r=t.filter(a=>a===`\r `).length,n=t.length-r;return r>n?`\r `:` -`}function SAs(e,t){return t.replace(/\r?\n/g,a0l(e))}var wJr=class extends AGt{getExtractHint(t){return this.baseFs.getExtractHint(t)}resolve(t){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(t)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(t,r,n){return this.baseFs.openPromise(this.mapToBase(t),r,n)}openSync(t,r,n){return this.baseFs.openSync(this.mapToBase(t),r,n)}async opendirPromise(t,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(t),r),{path:t})}opendirSync(t,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(t),r),{path:t})}async readPromise(t,r,n,a,o){return await this.baseFs.readPromise(t,r,n,a,o)}readSync(t,r,n,a,o){return this.baseFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return typeof r=="string"?await this.baseFs.writePromise(t,r,n):await this.baseFs.writePromise(t,r,n,a,o)}writeSync(t,r,n,a,o){return typeof r=="string"?this.baseFs.writeSync(t,r,n):this.baseFs.writeSync(t,r,n,a,o)}async closePromise(t){return this.baseFs.closePromise(t)}closeSync(t){this.baseFs.closeSync(t)}createReadStream(t,r){return this.baseFs.createReadStream(t!==null?this.mapToBase(t):t,r)}createWriteStream(t,r){return this.baseFs.createWriteStream(t!==null?this.mapToBase(t):t,r)}async realpathPromise(t){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(t)))}realpathSync(t){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(t)))}async existsPromise(t){return this.baseFs.existsPromise(this.mapToBase(t))}existsSync(t){return this.baseFs.existsSync(this.mapToBase(t))}accessSync(t,r){return this.baseFs.accessSync(this.mapToBase(t),r)}async accessPromise(t,r){return this.baseFs.accessPromise(this.mapToBase(t),r)}async statPromise(t,r){return this.baseFs.statPromise(this.mapToBase(t),r)}statSync(t,r){return this.baseFs.statSync(this.mapToBase(t),r)}async fstatPromise(t,r){return this.baseFs.fstatPromise(t,r)}fstatSync(t,r){return this.baseFs.fstatSync(t,r)}lstatPromise(t,r){return this.baseFs.lstatPromise(this.mapToBase(t),r)}lstatSync(t,r){return this.baseFs.lstatSync(this.mapToBase(t),r)}async fchmodPromise(t,r){return this.baseFs.fchmodPromise(t,r)}fchmodSync(t,r){return this.baseFs.fchmodSync(t,r)}async chmodPromise(t,r){return this.baseFs.chmodPromise(this.mapToBase(t),r)}chmodSync(t,r){return this.baseFs.chmodSync(this.mapToBase(t),r)}async fchownPromise(t,r,n){return this.baseFs.fchownPromise(t,r,n)}fchownSync(t,r,n){return this.baseFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return this.baseFs.chownPromise(this.mapToBase(t),r,n)}chownSync(t,r,n){return this.baseFs.chownSync(this.mapToBase(t),r,n)}async renamePromise(t,r){return this.baseFs.renamePromise(this.mapToBase(t),this.mapToBase(r))}renameSync(t,r){return this.baseFs.renameSync(this.mapToBase(t),this.mapToBase(r))}async copyFilePromise(t,r,n=0){return this.baseFs.copyFilePromise(this.mapToBase(t),this.mapToBase(r),n)}copyFileSync(t,r,n=0){return this.baseFs.copyFileSync(this.mapToBase(t),this.mapToBase(r),n)}async appendFilePromise(t,r,n){return this.baseFs.appendFilePromise(this.fsMapToBase(t),r,n)}appendFileSync(t,r,n){return this.baseFs.appendFileSync(this.fsMapToBase(t),r,n)}async writeFilePromise(t,r,n){return this.baseFs.writeFilePromise(this.fsMapToBase(t),r,n)}writeFileSync(t,r,n){return this.baseFs.writeFileSync(this.fsMapToBase(t),r,n)}async unlinkPromise(t){return this.baseFs.unlinkPromise(this.mapToBase(t))}unlinkSync(t){return this.baseFs.unlinkSync(this.mapToBase(t))}async utimesPromise(t,r,n){return this.baseFs.utimesPromise(this.mapToBase(t),r,n)}utimesSync(t,r,n){return this.baseFs.utimesSync(this.mapToBase(t),r,n)}async lutimesPromise(t,r,n){return this.baseFs.lutimesPromise(this.mapToBase(t),r,n)}lutimesSync(t,r,n){return this.baseFs.lutimesSync(this.mapToBase(t),r,n)}async mkdirPromise(t,r){return this.baseFs.mkdirPromise(this.mapToBase(t),r)}mkdirSync(t,r){return this.baseFs.mkdirSync(this.mapToBase(t),r)}async rmdirPromise(t,r){return this.baseFs.rmdirPromise(this.mapToBase(t),r)}rmdirSync(t,r){return this.baseFs.rmdirSync(this.mapToBase(t),r)}async rmPromise(t,r){return this.baseFs.rmPromise(this.mapToBase(t),r)}rmSync(t,r){return this.baseFs.rmSync(this.mapToBase(t),r)}async linkPromise(t,r){return this.baseFs.linkPromise(this.mapToBase(t),this.mapToBase(r))}linkSync(t,r){return this.baseFs.linkSync(this.mapToBase(t),this.mapToBase(r))}async symlinkPromise(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkPromise(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkPromise(l,a,n)}symlinkSync(t,r,n){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(t))return this.baseFs.symlinkSync(this.mapToBase(t),a,n);let o=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),t)),l=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),o);return this.baseFs.symlinkSync(l,a,n)}async readFilePromise(t,r){return this.baseFs.readFilePromise(this.fsMapToBase(t),r)}readFileSync(t,r){return this.baseFs.readFileSync(this.fsMapToBase(t),r)}readdirPromise(t,r){return this.baseFs.readdirPromise(this.mapToBase(t),r)}readdirSync(t,r){return this.baseFs.readdirSync(this.mapToBase(t),r)}async readlinkPromise(t){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(t)))}readlinkSync(t){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(t)))}async truncatePromise(t,r){return this.baseFs.truncatePromise(this.mapToBase(t),r)}truncateSync(t,r){return this.baseFs.truncateSync(this.mapToBase(t),r)}async ftruncatePromise(t,r){return this.baseFs.ftruncatePromise(t,r)}ftruncateSync(t,r){return this.baseFs.ftruncateSync(t,r)}watch(t,r,n){return this.baseFs.watch(this.mapToBase(t),r,n)}watchFile(t,r,n){return this.baseFs.watchFile(this.mapToBase(t),r,n)}unwatchFile(t,r){return this.baseFs.unwatchFile(this.mapToBase(t),r)}fsMapToBase(t){return typeof t=="number"?t:this.mapToBase(t)}};function vAs(e){let t=e;return typeof e.path=="string"&&(t.path=Rc.toPortablePath(e.path)),t}var TJr=class extends BJr{realFs;constructor(t=X_l.default){super(),this.realFs=t}getExtractHint(){return!1}getRealPath(){return SJr.root}resolve(t){return gh.resolve(t)}async openPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.open(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(Rc.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(Rc.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(Rc.fromPortablePath(t),r):this.realFs.opendirSync(Rc.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(Rc.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}realpathSync(t){return Rc.toPortablePath(this.realFs.realpathSync(Rc.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(Rc.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(Rc.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(Rc.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(Rc.fromPortablePath(t),r):this.realFs.statSync(Rc.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(Rc.fromPortablePath(t),r):this.realFs.lstatSync(Rc.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(Rc.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(Rc.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(Rc.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(Rc.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(Rc.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(Rc.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(Rc.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(Rc.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(Rc.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?Rc.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?Rc.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(vAs)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Rc.toPortablePath)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(vAs):this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(Rc.toPortablePath):this.realFs.readdirSync(Rc.fromPortablePath(t),r):this.realFs.readdirSync(Rc.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(Rc.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}readlinkSync(t){return Rc.toPortablePath(this.realFs.readlinkSync(Rc.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(Rc.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(Rc.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(Rc.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(Rc.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}},c0l=/^[0-9]+$/,CJr=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,l0l=/^([^/]+-)?[a-f0-9]+$/,dGt=class e extends wJr{baseFs;static makeVirtualPath(t,r,n){if(gh.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!gh.basename(r).match(l0l))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=gh.relative(gh.dirname(t),n).split("/"),l=0;for(;l{this.realFs.open(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}openSync(t,r,n){return this.realFs.openSync(Rc.fromPortablePath(t),r,n)}async opendirPromise(t,r){return await new Promise((n,a)=>{typeof r<"u"?this.realFs.opendir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.opendir(Rc.fromPortablePath(t),this.makeCallback(n,a))}).then(n=>{let a=n;return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a})}opendirSync(t,r){let a=typeof r<"u"?this.realFs.opendirSync(Rc.fromPortablePath(t),r):this.realFs.opendirSync(Rc.fromPortablePath(t));return Object.defineProperty(a,"path",{value:t,configurable:!0,writable:!0}),a}async readPromise(t,r,n=0,a=0,o=-1){return await new Promise((l,A)=>{this.realFs.read(t,r,n,a,o,(f,I)=>{f?A(f):l(I)})})}readSync(t,r,n,a,o){return this.realFs.readSync(t,r,n,a,o)}async writePromise(t,r,n,a,o){return await new Promise((l,A)=>typeof r=="string"?this.realFs.write(t,r,n,this.makeCallback(l,A)):this.realFs.write(t,r,n,a,o,this.makeCallback(l,A)))}writeSync(t,r,n,a,o){return typeof r=="string"?this.realFs.writeSync(t,r,n):this.realFs.writeSync(t,r,n,a,o)}async closePromise(t){await new Promise((r,n)=>{this.realFs.close(t,this.makeCallback(r,n))})}closeSync(t){this.realFs.closeSync(t)}createReadStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createReadStream(n,r)}createWriteStream(t,r){let n=t!==null?Rc.fromPortablePath(t):t;return this.realFs.createWriteStream(n,r)}async realpathPromise(t){return await new Promise((r,n)=>{this.realFs.realpath(Rc.fromPortablePath(t),{},this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}realpathSync(t){return Rc.toPortablePath(this.realFs.realpathSync(Rc.fromPortablePath(t),{}))}async existsPromise(t){return await new Promise(r=>{this.realFs.exists(Rc.fromPortablePath(t),r)})}accessSync(t,r){return this.realFs.accessSync(Rc.fromPortablePath(t),r)}async accessPromise(t,r){return await new Promise((n,a)=>{this.realFs.access(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}existsSync(t){return this.realFs.existsSync(Rc.fromPortablePath(t))}async statPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.stat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.stat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}statSync(t,r){return r?this.realFs.statSync(Rc.fromPortablePath(t),r):this.realFs.statSync(Rc.fromPortablePath(t))}async fstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.fstat(t,r,this.makeCallback(n,a)):this.realFs.fstat(t,this.makeCallback(n,a))})}fstatSync(t,r){return r?this.realFs.fstatSync(t,r):this.realFs.fstatSync(t)}async lstatPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.lstat(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.lstat(Rc.fromPortablePath(t),this.makeCallback(n,a))})}lstatSync(t,r){return r?this.realFs.lstatSync(Rc.fromPortablePath(t),r):this.realFs.lstatSync(Rc.fromPortablePath(t))}async fchmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.fchmod(t,r,this.makeCallback(n,a))})}fchmodSync(t,r){return this.realFs.fchmodSync(t,r)}async chmodPromise(t,r){return await new Promise((n,a)=>{this.realFs.chmod(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}chmodSync(t,r){return this.realFs.chmodSync(Rc.fromPortablePath(t),r)}async fchownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.fchown(t,r,n,this.makeCallback(a,o))})}fchownSync(t,r,n){return this.realFs.fchownSync(t,r,n)}async chownPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.chown(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}chownSync(t,r,n){return this.realFs.chownSync(Rc.fromPortablePath(t),r,n)}async renamePromise(t,r){return await new Promise((n,a)=>{this.realFs.rename(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}renameSync(t,r){return this.realFs.renameSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async copyFilePromise(t,r,n=0){return await new Promise((a,o)=>{this.realFs.copyFile(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}copyFileSync(t,r,n=0){return this.realFs.copyFileSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r),n)}async appendFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFile(l,r,n,this.makeCallback(a,o)):this.realFs.appendFile(l,r,this.makeCallback(a,o))})}appendFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.appendFileSync(a,r,n):this.realFs.appendFileSync(a,r)}async writeFilePromise(t,r,n){return await new Promise((a,o)=>{let l=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFile(l,r,n,this.makeCallback(a,o)):this.realFs.writeFile(l,r,this.makeCallback(a,o))})}writeFileSync(t,r,n){let a=typeof t=="string"?Rc.fromPortablePath(t):t;n?this.realFs.writeFileSync(a,r,n):this.realFs.writeFileSync(a,r)}async unlinkPromise(t){return await new Promise((r,n)=>{this.realFs.unlink(Rc.fromPortablePath(t),this.makeCallback(r,n))})}unlinkSync(t){return this.realFs.unlinkSync(Rc.fromPortablePath(t))}async utimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.utimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}utimesSync(t,r,n){this.realFs.utimesSync(Rc.fromPortablePath(t),r,n)}async lutimesPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.lutimes(Rc.fromPortablePath(t),r,n,this.makeCallback(a,o))})}lutimesSync(t,r,n){this.realFs.lutimesSync(Rc.fromPortablePath(t),r,n)}async mkdirPromise(t,r){return await new Promise((n,a)=>{this.realFs.mkdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}mkdirSync(t,r){return this.realFs.mkdirSync(Rc.fromPortablePath(t),r)}async rmdirPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rmdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rmdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmdirSync(t,r){return this.realFs.rmdirSync(Rc.fromPortablePath(t),r)}async rmPromise(t,r){return await new Promise((n,a)=>{r?this.realFs.rm(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.rm(Rc.fromPortablePath(t),this.makeCallback(n,a))})}rmSync(t,r){return this.realFs.rmSync(Rc.fromPortablePath(t),r)}async linkPromise(t,r){return await new Promise((n,a)=>{this.realFs.link(Rc.fromPortablePath(t),Rc.fromPortablePath(r),this.makeCallback(n,a))})}linkSync(t,r){return this.realFs.linkSync(Rc.fromPortablePath(t),Rc.fromPortablePath(r))}async symlinkPromise(t,r,n){return await new Promise((a,o)=>{this.realFs.symlink(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n,this.makeCallback(a,o))})}symlinkSync(t,r,n){return this.realFs.symlinkSync(Rc.fromPortablePath(t.replace(/\/+$/,"")),Rc.fromPortablePath(r),n)}async readFilePromise(t,r){return await new Promise((n,a)=>{let o=typeof t=="string"?Rc.fromPortablePath(t):t;this.realFs.readFile(o,r,this.makeCallback(n,a))})}readFileSync(t,r){let n=typeof t=="string"?Rc.fromPortablePath(t):t;return this.realFs.readFileSync(n,r)}async readdirPromise(t,r){return await new Promise((n,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(vAs)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(o=>n(o.map(Rc.toPortablePath)),a)):this.realFs.readdir(Rc.fromPortablePath(t),r,this.makeCallback(n,a)):this.realFs.readdir(Rc.fromPortablePath(t),this.makeCallback(n,a))})}readdirSync(t,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(vAs):this.realFs.readdirSync(Rc.fromPortablePath(t),r).map(Rc.toPortablePath):this.realFs.readdirSync(Rc.fromPortablePath(t),r):this.realFs.readdirSync(Rc.fromPortablePath(t))}async readlinkPromise(t){return await new Promise((r,n)=>{this.realFs.readlink(Rc.fromPortablePath(t),this.makeCallback(r,n))}).then(r=>Rc.toPortablePath(r))}readlinkSync(t){return Rc.toPortablePath(this.realFs.readlinkSync(Rc.fromPortablePath(t)))}async truncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.truncate(Rc.fromPortablePath(t),r,this.makeCallback(n,a))})}truncateSync(t,r){return this.realFs.truncateSync(Rc.fromPortablePath(t),r)}async ftruncatePromise(t,r){return await new Promise((n,a)=>{this.realFs.ftruncate(t,r,this.makeCallback(n,a))})}ftruncateSync(t,r){return this.realFs.ftruncateSync(t,r)}watch(t,r,n){return this.realFs.watch(Rc.fromPortablePath(t),r,n)}watchFile(t,r,n){return this.realFs.watchFile(Rc.fromPortablePath(t),r,n)}unwatchFile(t,r){return this.realFs.unwatchFile(Rc.fromPortablePath(t),r)}makeCallback(t,r){return(n,a)=>{n?r(n):t(a)}}},l0l=/^[0-9]+$/,CJr=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,u0l=/^([^/]+-)?[a-f0-9]+$/,dGt=class e extends wJr{baseFs;static makeVirtualPath(t,r,n){if(gh.basename(t)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!gh.basename(r).match(u0l))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let o=gh.relative(gh.dirname(t),n).split("/"),l=0;for(;l"u"||(A!==0&&(a+=", "),a+=JSON.stringify(f),a+=": ",a+=IGt(f,I,t,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function d0l(e,t,r){let n=Object.keys(e),a=`${r} `,o="";o+=r,o+=`{ +`;return a+=r,a+="]",a}function d0l(e,t,r){let n=Object.keys(e),a="";a+="{";for(let o=0,l=n.length,A=0;o"u"||(A!==0&&(a+=", "),a+=JSON.stringify(f),a+=": ",a+=IGt(f,I,t,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function p0l(e,t,r){let n=Object.keys(e),a=`${r} `,o="";o+=r,o+=`{ `;let l=0;for(let A=0,f=n.length;A"u"||(l!==0&&(o+=",",o+=` `),o+=a,o+=JSON.stringify(I),o+=": ",o+=IGt(I,C,t,a).replace(/^ +/g,""),l+=1)}return l!==0&&(o+=` -`),o+=r,o+="}",o}function IGt(e,t,r,n){let{next:a}=OAs[r],o=a[e]||a["*"];return MAs(t,o,n)}function MAs(e,t,r){let{collapsed:n}=OAs[t];return Array.isArray(e)?n?u0l(e,t,r):g0l(e,t,r):typeof e=="object"&&e!==null?n?A0l(e,t,r):d0l(e,t,r):JSON.stringify(e)}function HAs(e){return MAs(e,"TOP_LEVEL","")}function n7e(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function p0l(e){let t=new Map,r=n7e(e.fallbackExclusionList||[],[({name:n,reference:a})=>n,({name:n,reference:a})=>a]);for(let{name:n,reference:a}of r){let o=t.get(n);typeof o>"u"&&t.set(n,o=new Set),o.add(a)}return Array.from(t).map(([n,a])=>[n,Array.from(a)])}function f0l(e){return n7e(e.fallbackPool||[],([t])=>t)}function I0l(e){let t=[],r=e.dependencyTreeRoots.find(n=>e.packageRegistry.get(n.name)?.get(n.reference)?.packageLocation==="./");for(let[n,a]of n7e(e.packageRegistry,([o])=>o===null?"0":`1${o}`)){if(n===null)continue;let o=[];t.push([n,o]);for(let[l,{packageLocation:A,packageDependencies:f,packagePeers:I,linkType:C,discardFromLookup:b}]of n7e(a,([E])=>E===null?"0":`1${E}`)){if(l===null)continue;let E=[];n!==null&&l!==null&&!f.has(n)&&E.push([n,l]);for(let[X,ae]of f)E.push([X,ae]);let N=n7e(E,([X])=>X),B=I&&I.size>0?Array.from(I):void 0,Q={packageLocation:A,packageDependencies:N,packagePeers:B,linkType:C,discardFromLookup:b||void 0};o.push([l,Q]),r&&n===r.name&&l===r.reference&&t.unshift([null,[[null,Q]]])}}return t}function xJr(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,pnpZipBackend:e.pnpZipBackend,fallbackExclusionList:p0l(e),fallbackPool:f0l(e),packageRegistryData:I0l(e)}}var _Jr,h0l=()=>(typeof _Jr>"u"&&(_Jr=FAs.default.brotliDecompressSync(Buffer.from("WyqmVsJ2xex2gL35r+y0F6ITdg9W9TlcgFJd0tc5gm7bboZQqDfzlvzE380XMlTVvKRDxrZfBxz0alVVNQRzeEAYmRKyyAcFB7sX3Ghw0paG3VnwZmGz3GGo2jxno2ogMKWGHeWRKT4npqgshBPefy1z6xPd9YBaF8zU+4Qt/WL5GwHh86Vfrc8ftE8ydiep18b6j3X8SadIIuk1gI7bXwkgxgRJjaIxHTqbxmbtzJO6uJgn/vxbqv09lxNmtSOQI3i4TUYbfbbXE4r9UA0uMi7ahv+aquksLtPZ/9k0tZtI1aDLWAtgsLf/GBGxzf4lHTaLoLD4Y6U731eX+y3TL8IEY3m+rUD2yY6jvq80LyqQ/Nef+l/fRim1YvHWsDi+Ih1j0HWB0DgLQ8aCfXO+9385Zdx8wEGXoWrLmV5s2ZWcFAYaAP/5e7X/78/Xqfs6mshy4929D7GtB4NpnJepsftiGaHAMVaDERfhtGQuvs3Mr1q8FcxxtvQkhPBW/qH7Xah2GHMOKfjlb9XXb86hNsOJM2esCjt7oiNNWEkeqe4+ZKqwVC37byriqwv85DKm9kPlODoOoFXgGFwSNg9QdF1L0+fXt9hJ9ARilmuMOohfy3CFdWmK/tZeO15RQ6ccJa1OmJGsuL5HvPUr0WfCrooiPPGJ1/HgoCjq+OZnfpJqMCU0vREMgtjN2ikEjsVqeTDfxkDDh4EPZoMDo2UgWLppvR/3rcBsJARhCfjSDzX6/Li7WzdJu9nPJ41mEAYcQcYx/nNxIyhJnF3cktSPb2wdD3uQynbt+OYz4KBQD6Sim+HyIXfDxN0v+VFDrT8edv8PtpUd+fhedTUUAuxGQYl8k+VJNVEmWEYJ0lhYbD4fPkzRWvuc3WxyAQ7MhYj0h7buhYiotj2i79vU43Xso7tFxzbVv/lLflBi0kFwBjyiqf44/Ha2U8cHECchUgqTPrqCMNOlH5oa2G6OhjABP8A89KWqx0Navf4dgMKs6qq53GzKHsh4pGvCl/j/7/ulVffIRIIsjFDCsUaTCZCjpWHO8vOfe/bdzC8LoVBMhe4kQK4GSqyiaCHvPufe90VEJCMSICcBsmuBKMVqqayR2vTaHsMbz4pM9ijtzd/3pdq3Pfe9RCJBUBRI0TZoeWDNYvkP8/YnAErWVMOs3+O42Ij3nvNu6917X5byvUyUMl8mvjNfJsLIBBmFzAR+EACZLxOgEhClACm5GqLtCkp2dVOy6wc91jCLIBVhinKESVp/kNyT7R6nVUfIfxinVVevxtj/Ye5xWP1973qx72WvF73r5fKvlr1YtkXL75XKztCQKiAnhu3dqS3FiJDpdVf31KX/pMycCSKz9x3eh4L/vv1YnfvlzWILoXuJejqtspzBPJmGSlWNjQaNkDNXy1LaPd3TfXX7n6V8r+xA4IRd5YyQNXPjcMHOKAVmAXpBISRoZBiQARXDBswcCBpVOJAGB6jHg0E3581mf/aBcCKBBhFdTP9mhu5BMk61/SQNLMFSif+nv5jungtf9c0ChRRQAtpkqlm1cjbV5h6V8pEIY26nJ8v/SSzqtTd7vfzlg0QrlEXiWWazkwQoWgPPiW4dpt9/AjejJi3SJchJdxfRKJAQ8CAhQBAvpcVriBaxhABdudcB3Kw6Oki3henrWNESQSJIIGiCBQ1QQTQBimgo1ZF/JwGS+/eyDeFDFOwnCHfT/qHdvvX7T5FiwChTBBlxOKYYuBFSTBEwcEFSbBFxixFeseDTv6Xr///fPfvQfP4LLDBgwIABVjTAwIoMDKzIShpYUQMDKzLoJzVoUKCBwR0eN+33KIEeEu7uSyfQQogJECOEgAfV0ggSoPVtZ5oIOGOmrv/nfXsvIP0fcEDAgoCoiqqAgACrCrCqAFcyGGC1BgYGIUwv1ycsLl7AmbqIf/++kwrogQMLFgQsCAiI1ICoCjAIMIhUgwADA1cyGFVp2+HfzWrRdpGycjLTJkHyIoqYlwo1tDJy5x8/ASJPVub/29afMdAnIO+1AT3B0FJDDJUlq+55+0vcWF0DxuW/Q4OYMLLK0WkL7bfDUCco/ynIHfCrRr4fH5xz3JQRF7kZNKo/SFqGtrdy121U+4Ujn2udEpH7bXNrDPmDV2r8t7p+10bmgSh3rtuofmC9mOWNGVBZzXzk4Wuw7IHXyD1tHYUMvX22uxg7UaW0sf7RGdfu32XJpyTNHVC6bnNjMW2RJ5arYaPCp2PkxnVNCen6feL4UxtzKX9L5TeDxuBFw8moEszSd5qTWIBFtsUniIlohX0avGmof1cLYOKeFM81nqRUHbU0XPaj+XVNivACL+v+7G9qspdVI9NSrdJ64Jvd6YiwPwkY7eK/Zw3Lk06Z4wPmckLSDr0YuLMac5j7j0F4q3qlMVoJfk726zXqpmveo2vH4v9Gy9hYG1f4PwDpSf/PexP7hftRjfIJEKlDqth2+bouYmDpEsVEa2k2fEViLEze/rX5aaoM9sL3S/nOgdXwl11bIvgQlFBb6n5lXaaXr8n7ilIIfkImDwrbZPZd74MTySAfxda5f0pUBp1w8F277lkjx6gJhyg0FU/pJoPO0vmUKBskHdnBlJgVj+YI02J1BFFuMCU+v2kyjAi+m9Ybo5DqnYsaq9Js4hFPgn83NnHdK9j/3QTVfG/k4TylZggrENA2m81VH6lY9Xb8MgvhhZl4X7WASH19GYemUxmFHNyD5Z3Pm8r1Awv4CmIUpN81nr5Js2AMrkI9VzVpQxL9mPYWo25mhOIuUgiRearphS/F2VOpGZd2KGAnYoedqR107Y+r2HE8a4ybP0rEE8SZHQ5hwLHDs0utMPQ684tbgA+SYsMU90tQu8Ymyx97Nb93nJGr1CEMPOrVGlIce6vg90D65b+46kmkgHHwd16BiXznpJJTUgkatri9+gmcLSs9/wfmEAaU0EIzklcwe+W/OMlBgWLDlGbHfPpMaA7iuag/MsrW2EflsGUqiviyVK57ib2ZC/9F6liKhFB2Q0FXspreHWrfJOZJ7L/gyd5vas2I8vHEuyEfLiB9gffy4hhitp6bsHA2yER/bU1m+FeWBgEclKN0Dppbjj5uailzKOzX7cfS8ArpRxbLo948V+X/shO/g91BypMI9YnLi+kz8lj6JYJVTOMnkAiMQ3zhAjeNQz0ubKl+pLA/WvPrPmhtZubD85eVXKWy1GIpj0hrZ+q+ytLAJ14FEwTdSqiCvaUyamLcJpkkhCmz1hcfrPyid9HWvFHeNtgCf1+ibyE7yEebnDr7vpFg/wlJtHokleMYtlmzqmeeOmf3Rx5MS+gLOqZeo4/zmzkpLswh3A82fXIAQXBCqgFHhMAbsNcV5ZSc0Bs4fQOnb/D0809fkhxJ6sGZok8OJSgpdaeV0uJCGTlvcoacS1sDnp6DQRri/5DCECn6sq3UYj9S+BW20joVqhZS/LqVarXenzic87V0LczFcm8fS+Xy+qrDlyZNB6XOf8RBTqNVhSeEv6OHbLpids6tbtjzP2R4cbYEvnvp/Dp77G7a3KEpPl9ii9lu3pLQIvJixk3w03t9OP9NLK026MkFGe70mXqRLSlyrJJW4exFmFP9qTxvdUD4OUKNMjRHn+zk+vAWoe4+L0bROtpCMi68fKIavsjCqm2KZeBvPepyChCCAptHm6LZiNIqMXHrZNPOV393x28Sxn7cP8F+eYva/xXq+GUinsVLssS+842CL6Z9Ue315YspX1TR0jwxNSUlhO+nhtxJwmEyfcBMRgrvQz9hrbIRdq2jtzSQrkud81iRAeukkAigO4YEFTXcQqfbuhf6ULhWt2JfSLykkGe1jGLVvu+29tc0IwO6gb9GYQ3oBsKqCxAEJrqRZRUaIqSpYaRa0yE2Gg4hQrUGOKDXD41qDgDc9gN8kIGK2kMqrdwQkZrpx+Y1H8dgP/ZDaVz8Aq3UfF3lP3erdqZEe5lJ2qa3obvNRwJ/Qx9oUf6h0wDW4HayKZGuT0saR029FDuh72BfqN1BvkBhPkUM0O/GIr2vbLmpq91anr/4tOzUDo36BEp8ibMoP78q/KWu6d3Fs6vW8G3x3ioBQPU39gr06j+rJXgv2D2pTefk30lazMZDuGcCPde28r8/23IPa6ybDU/+gJu17JU7vL4xg9PV6ue7opi6f5AkwfDcNnkscJp67IsFac+lR57k9tols+9j8eoWM3wrmKQ7IrUxI6rUDNJ6DAzd6MOVnFbsqaZ9A/8rg3U0nYyZB76hK8TPWmvuVzyZmAVtMC7Hbc5RV6B2SdXOsKbNaiL7a7HjjXv9meLmfSH/6h68Kw7t43bdyqk738Zprrakeznyt/ll+AOj0bCunRWL9hHyR4jMrbvMYnC3E56POz7gFzGkT4V490EL535TXa5mKq/G3bk5dLo6uDOVWUlox/hc3ME2kfQGX0VJzy09kQ2eGm5B1QPrmcoRVHQtkbq69v7QUYsGrJS753zdk8dnebF8N1uiRX//QU/MmhJVce7DvMv02Vktz2bVQ2n/XORbTlD185eWbUOG9lFmG+CPnDEPcpD+xXVFTNez417bNHS12WJUcf7P0q+oGEWUF5w1NKC19nPcpzPmN6RcM8KVOFWNLdBOE6hIEsNg7uihkB52P5jbx5WWtmeCzdL/0iUzdvL8brJ9fK6Ej1I94i/ojp0h/2kXspCsEIXkhQXrl5PKLntp9mJ4MKCg+5Fa+k0tgiXLUu/nX2vvSfTQD5MKLm75BWDM7hyME9RSECNaCYXrWMozith8RAjx2MPsdzAthQBdtCCXbnpvYvE8iQLamPSPQ7dviT8ySDKI/yN8ddJbcChFtlSEKtm92thEvVdI2UU3RJs2H2YqDTjbgu3VYi4lXjiwQAv8sJiL/UiahmCoXWr7khQVFWXxY4r6IRddoRGKFl8XMx8IhiFj49UsmqZhiJqgyY1kPtYRphq6H7RvVsCi9qH+TMUAqXujMHEZCD+uSHEug/cPe6tdpVN3+7lN3Om4N1271WXOKE3JWREgi+whsWUmUB63HaGiN7W3CGWZiHYWWEE45IhY15BPHmSNV6zGU9yiWymcxuHvN7O1HLwXsfajqg4z428W9ox9nA9k13qFQjTmJqFwruiK28SlLoeE/TDHCnz0YPS4LbqHrtDBiDneAeYN9uFkDi03d2ZW9s7LvYbbJ8EXrrWikzUl2eSqRmr91HHdz9i3zpmDOduCquxVVGQDyQPl/Xo2l4ZbHF2Knc3b04jcWKxjFsPnw77GiPmlP9jQLuXhZ9ahrVF+Sy4xXA3KSJ7vaixhNmc/sqqffV7lYW10f8xy9J3byzlnskwsuyTIo5tHzwAT72K2ILEvZ9k7Zuc3EIaILDkH1azWEdHjYI1Mqk2/zLZXlQTR2vdqKQxkdwokcnFMnx9b663AlulgiAiSzgoYdZdT1KubWktaoWr3Dbdq0/NtTHPJKBgg22inBkOwqvXquYuFdmD2TKPILyJ37qnzMyyoTLstn9B0sIq/gOeXcz2xMHc2SY5KupdNRFfiJsnYbN/ay15w0WjtTPbxg3he7cAG8ezHZ2sjWMxZP6Ln5OtAsywtfmRkTG8x4CyVx/xdzxtdLO4WlYWsOc4YapZsJs9y5OevyeFygay8yG0zSNegIsksFytwO5+HAYVhidP4czSva+9guazQ5p3vrvC5kqDDWrJNyrqzfd7CWB4cGY3P3VGtHoj4t2pYafbMZ2Hcusn9cM6cLTR00U1TZu9NGa/kkZzSUCb1diyuT7oj6QJsKIgxPWZG1d6GKL2yeYqglV94oXCop2dOIebjBTOlLmKq+c8Ka/vaHYGkg3BibVW0ATFlP097gawh5ArICh+7KjOoyeuQaw/0LqBhmVoN4hYbg2H8/jqArPUGcIFig6u9Q8/Mb1U6E39AXNq5lYEG9lVJ3LHo+VE+PhOyAVOtXmsSaXxnSyAMGfEKqKZVahPDFuzGjwc79gYscpmPdqxPlU0BlI/CUsP7sECD3FKIPuoxi1Wf7RDKZuTODrmUM2ORLdu4N4s2gpMP4vumZTbaTAvdhTmH1dkEh9/A1JQpBU91p/oNFze1QBd7LH5y7XkY8iNNgVH8nS+pAi852aE18FbFCzuTh4kS8Zid3ivZRQSS32Z7w4Hmg6+26JO8AK3+jJIhkkyRPJVNOhXX7XJg8r47h1tWcI4/+TNd+FZ4GvXz0ZDo3Mnizo7RXbQD+kiUd+xMV05mNLcsTm8FWt+Phvv1+N7qpAlUDnaJbP1FPJ7cpDm9Q8EMK1n9pVPUuREYdjnAnYX3IZukXSoqynx84cfFVNsE9JlZHTdvJp6xiYHdeX2LEh1cPplTMRwWVzq75x89Bcez2K61luirCu/7rD1isYwGo4/LY9I2zOTns9lhr855aGaB4DpAlz40AafsL8K6bS/fLNwrEl5bJwFvEQXfAnBSeqDIX1xdbgFJ8GGa7J+psAD7U64K+Xq8WIu0v7CD0IXGprUaylbQhkWUzfVahG1Utb/9hrQlse5ugzFTiSAFLzgEizscbORNJ3w+grxZwf5gHMyDmm0OjGzcYjQke6PyFcs40KatE9NENxcc2XeOlnTbtcU9Cry+hMzQtFlFs9S0PaSGogf9Yo5W32QIo22xRJUpUOfI7f60kDD67Y1soVvmMMlHkdlYjJ6BD4l3y4sjdLNhlaNr1qzjzBQ9CkWPlYbLLO3ljwQiVwdTEFNbiqGSXr5vcePIE8jIn7t+AGzIEGct5eCWjlOiactcnqXkwdeGh1BqOdqqs/ytHwhSSF3Z9cyIQQZ1c6faorY8Q0kLScKq1n4Vw8LJlVSzg4UiHWMbFN8b7IFmcbTVqu1xTifvP+3YKm0K9blPELMSAh6mlwsqO7b01X77mPt4GpZnnt75l3qHY20U+w3izWtjLJYLtDq10HmKRHll+zUg2jqdddqZ56DiXnXKCledj8Vdk/9k1HxZe992LRyR4DhSmZ0/yE0GiAVwlwZTbALqDYQDtu7p60FozDpPCDu27JLo80uWcFcoWT4LRjYfvo+GW7hE7ngJSKA0qHyvTeyYCwnMv7oXbA7eMXg5Wbu/j13pGgoxT16vQSTenx/ozvPrpG3+vIYLOFpr5/1Dyxk9HTX6BGM3y8kS/z4VS0xAc16Es9P1usW1N8O3P/NjlS+J6rAAnrmDtr/JcShSYfiMalgUIHvk652kNwUePcx2kg4r6PRWdvcRtHMP0gE9tAE/sCEuyh+tcnkz+KQAUmwCvSr6sPx4QpaOJsetaraZyf7MRYKMi4VEPmRZAJx9FhBzwAF/fADWplX7xtIwtrhr3L0uYg43sfaQypYNNDb5foKKr3ytnUR+LVK3CttBUbvBgGUBFz6cT/TsVFpgIz+WB4SsIbqonUzOmNaN8rO0qZjpEcv4WmMz+66/be64A7jsH6bJ6zJx7jJHvbiXI/8T98XL8deT/jh8qdcV45NYfut/9ea8HXOiPHrzlHjpfSNRfRW2x3D168eF66T6YHhXrvOuXU25YIcXb/96vvOrH75pFYz2ZO5d6YYSzTf2Btr3zpk1j5bnkStTfLvFPJmf/ucvWPb9ELsdwg/PdDS4x4TsOFzgPkI4gp4jbH9qAQ5fSD2Q0l+DO5NMw5kxlkZGzI1QULnTfNAayY0ucekZQwaroMDZgDt02kmW0xu1IXBcrDeX8tpT0vL/bhNRwTD55rG2+UQuEVGjLin9axtk+hbBm3KBYx896FcRJZIWcntspLRQTJqXCY75W8n5z8G0NA+EuUlF8E01GEVaTgvLi2f/P5OHrqUXfhJOzZ9XU4V+hzb6c1n1yRXeU//s5berAC6JWFpZn0JOU02SQ4B+tUN0laUpyaOLQsM6V/tI2o6HprzECerMnjRwNNiRDYlW+Xqfln2guQgdC/BsZMdEiMBhlLSi0RX3vuFx2meMI+bLabf1VHUcPds+9rF8kUY5abs8YF9+umrmzNd8DUOzemrx5CB8EezCFXbilZN+fdrZHF/tb8vXPlySvPP43vbM9t9+ho7clEjs6Ctnb9Tfo0dsfknYKzmTSRhRSKSrlWIayohhraDSNAS704XRAY4ROx2a/IcvaT4ZAt1xk9LNBYwJ8wJVcdrNxPm4Qwre6P9fCD255LRo1pOEZ5zGU8qVD6R+wIHVYstCro/w2w968DUSc/51hPs4U4nQpZaKSQe5Ss5GqO0oRb8+KXFJps9+fObeq5hk3Kvz2n0x/Sz3Rs/+qOQcy4NTxuI6kivjc1s8+iamrlmLfjWamrJb+e5dmt8MSFpbIYYRLwbnOuhTfF8H/JyDbkgkaZo0BybWZ/buCIzlaWTCv3cPEYqVMRei7IC3fq9Z5Vs6pdCrehwo1TYWnan6QDlC2+QANGaaARU+1Wg/q9DYzYoCf08Uh420v/7ELXtUQ7jIw5TBtlqAaQNnYPMFljIXHQy8cS4JbvdicIwPaGLrh8wAIiySsisAdXKfdwasP9g6nLudR0N/rqe1vIQbeWIuvjYnqvHInjUijVqTx0ItN/8/ZfPHbBZE3DzarAkaieenQr+xEi6nWhJmy6lhlEbSNW1KCQSY0kYyR/+a7/D4I1NVhwLuI39h21ixNxL7kWd6fTJbxWkDPdNLDpSVs8+6iitDdpIaGwDshM9AyWLhPGRjY1mw+lAz1NdVFUCjcJONggM+Mt6+TnNm0UrjWCm9hOgwuau5E0dwaS2h9BwgydMeMCuNJn7utIihD0FZnReFft/39beVQC9cnmtvVpZOBFc8pOgrshQXC2nOb0HBZcxD3hIQ48VrINixK3j0dsPXdcSu6HlKWsebI6Npka7bXStJVPXR6rGPqeHAsXTYhCjXtZ47olPtyoFvv1mXgHUuV+5g5Fs8xI74AsO+iNjaWkjE7vKMItioRAgntuwXnUPu84z7ZlzhIlyVXkWs4i7nBZdbz+SLuXsfT4f2ZVnizANY/znf2dehzKQOyOYRjRwDoJ//NWMYzTPypAPrWAhQn+GRfS7oENO/y87VyIMpbXEW/7+hFDEd55+M5+NXy9MD7J35J3a1x9w4dnk+Da7I4JY9l2u/rwvaQLvwH4qI5BjhPek9SbskjsjUTTfGTWI10w/bxPn+JAc5g1ib28BqQWHTf47NQma20CplRSpY6iuN5TNTH2ILTs7g369YTdIj3rNX/vCtvkacfOMycGOZ+0RSvzbWY9NSX6/+/EPOtqyQB+Zlhn2fuDyUBINmQV3fNjbIyK714bh+BWjV80rDelcIdrlLXcgdzEKQ0tluKzWyRyTbHhJOO1V3YeOENUfG9pn7pUJsGIuda6kjs+Bq+EHvs/T4eJH7bodHgIusAZ2BdGo+1/4rAve+sHfZ4kT06E+MffqPz8S9GsJsk5BksrTUNXcrpmSLJbkjga9MNz+PefHhiNoEFkJWZKlSWuAxrLXXK66vIefwlNW0rZ9O/CULI5DvUdMIMsvknLejcqepWK3xU4FJtkW3QEhbYpyfIaDYfq742RhR4a5HDZLTdjlw0RZO8SUnb0AN1BU2uWUR0uZzKyNQPD0ywnrsJI1ihqe1UV+eiOblldmtySuDM+DDBe+qg8Po8uGkLe/8A4nt413pfa6Mq/Aun67xAf1TYE2Z7iolkcnNV7+Fdn1E30S21ZexwcPQyFeBdK7YYHBcDAxvTHgBppJycwSWvGxGI20vqsTdJWVHiLGXa2zSP/7/merkcgmxuNa1k6D9lQFGR02ghgmNc91S96MH9MPbJiIkpg0VL6s6Ht9NgSXeP3MCN00AkH90gtuKD0VsAZZqBLQ3prKzlhcmY3C/gDe/ZqN37zq1rHGqXoWzLzzDs5E7ETj9iud1+Kk9hBLoHkXYZXD4kJ25IXw6H8IueBS2GRP+hK+In3WziFzoFk1sQRldK1hGG8fTDmKdgm6oevOAiLQUatE8PPx0bGy2U0Cb2QrjLbogNIekSTQfxsZoYzclyrp8MHz4H2z1H/injiR/dO9eNKM613n/QSPt6rchz8lWG9zs/s4+eq72eNuLStyoSsOgw/0tiOVwf8bVk9SLJQG8VoX6S3XsBDgcUCICB6VoxelELv+pbKb1QuWewuuJA6ejntXyJtyWiOg5A83W3M8s1GsV1YInOx0+HYGgvV2i9XKsvrbecJPSZVMYR7pdocCYwzxR+e81lqXz6dTWkHPELpo6thzBauvmGwpolgdZgieddFkBbkvR0u0HIiwEAyleIlNp5257ByMExzjaTrPO+q7pYIIrh9qCut+d67Rc9Et7E14X68E9u2edHlPgdxtRbuDjjyAOevjPkF98Luk6aCgTvq8ApbE1GPoPcnGek/c6+3+2mzVJyYuY8sR5ExLLCwj5gyb8RldTMNsiDJT9cMrGTa2VWsqc6U2sjnmv218Jc0n21z0Oh7daB2MFvcRrXq4FwTPSEMpGQ/EUPY9jQqdW29p42aNZgmPy+eWvrj1O/pChTmVOdH7GPygmwsW5eur7OWr/D0dp/eoR2SDl9uF8GpDKIx5VblUKMBDxOFJfxsK/qQ7sOm4rac2inzolqR+M1j4qpsP51cYN/xXhK1nQtdx5MBN2loBfG9ThsjTuVoc7yt6x4vvbJPE2WoQfOiNfuFJ074E6J+uc/7Zrt6iiIhQEpYK27F9Fmq15+KocUaU88UR6E+D0b+CNOKCtO3BDYcY98agFiAWnbg+JOeu1CoBs3DLg9Nd/qH9ObTzA2ZVzgPyVyVcq8MjmmuZj/7JdrlwqM7kKzvt0f7KgM/G3vfZIB+7BY1riyVp5G9p3m3f/4ZcWbXsP2eFXLConaa/kzxbxrqkSxIRsMouXovH+1bW4vyg2GLbfMn+ZjZ82bkBTPyy1nseBj8591Z9UdpflBPGMOlFMbGQsR70tLFsYzo56T/UYnijkqnGFlp+rN/CPdE1eUfEyRvcUX5GfceRPtoLfaMZTbUNMZrG0Rxk83A978bMFjZUSquF5PKWOVXjLvX7Hu1t/bxHT/cGJQNAm7u8DUyYrUqN64ez4vvpC7nHaZEfvEvxTHzcMzkacU/MMVctvLaKsLLex8DyCcdciJPUXimfwA9JhuzpuTvfN4K47EsfjWh4LxcjmdHcBV29bp8iQXwrnThq5mNvOoormdEdg3kf/sRa6V4y7vnK/OD4KvYAEh5kv4C2Ff7NP6grlxtWbWNsbvHi7wjWaFTyo6HeQxfHNP/1NZRlck7Gfowfo3hNxlSNUfWacN+sDQ3r/RzR9wPqlNz7pl+HKTxTHC1GtGkhEAoh7DAH2xgHeyc0N3JII2lSqdz11hs8njPU5gOoMzsp1XA2fZI5r6oOnqJz9KOEQuz9NxPPYHkZ+/t5UpFdDic959rOuDD3ef53r9kZhkTpFZOWoriylSMTEimOcTc5kZwkpJCqBmuR4p4Bv53ZKzrVttLoseE/mUwJRRVY72HlcSSnmAHvVIShC/vf3KEnZoFEpJyGJ1OOwiiYWfNzC2Xm0BptD8gGUfbkFCSuE3LvGrp9/ACpkfJCXkA0QmRCGLCJHX7z2zJL/8Wr8J1VQn0UpYjORy6To4/NtJudJ2SHBcTjp70yrGO2CgOyNpg8FMKvrV+AIF7oEu1XMuUp06FcAJHojYWWf5IfUsAWUg7lHcYhmPr0lLkqVnW1EXDEB3EgYLhX29rt/0TyS1iT0ChIjN0/ceCYRs2CrqyAesVCel306COm3EmYLNPetE03wSFeVwcTXFWYnRspubifrFAVLLzVk0Te3+yNgoKmSMH2t9UY/biL0wv6cY68mY20rkubRvEf15AyNk2PaKWIy5RksukyZMooMlJONCWh0qCg3+mXOE1vlIVp5WhJfd5wM482ScmvxhEp9aoSeFqGnSqi66TL8b3QHeexJzjCdJIZRZykjQdV/Oe+nP1dxRI2sTEKGF90wwT/Lds18WHT/0J31hp0oSMmvp/zGSeSpI8HVf3nvpz9Xe0aVbE1GrkP9fSIFtw+/svdlPMm9aOwDchYGtpmLEhTs5KK5QzcNeaSdFla30OT85eW5u9UqnqnZXqxegUAsVwLxZ7FCr84G1UWTy3cW8fAGdEYY6gp/SICyG1aVM4FqHCP2db8rkRE3BQEqZGw6D8DSh/PJlyP3g4ghBDA5BNgSyra5VckiVW+wOCI9gFAdQNh0jjc+/rFMLxLIYxlBisLl14l0gaILx/V8S0a/BEKXJ3R5QjxQN2mER8Q24LaRKWRm+X64ahWBiG3A/Yp9MlN90y4nXc65nHUZfHfLcrxyaHMgUGySiLI3GqAZmsUDkC0wxM/OhB8/apePfLTPTjaf3hwVbJ9QHCOZuNU0PXDAl/g4mGCvqRaPrGnZ0gEdAoHf+91/UH9r5s951/siajtj6fiuyCbk0m0Ux+9nTV9LZsgZMpnmBDw0ZRf4y9UF/Qd7/5MXOrh67oWhtDaMSq5sQY5Xom2sFfRGyyRIX7DUmEYWyLPgiW0ik/ejiEyJIjQrit04tuVd4GsDIM0GwNIHNrLXDD+BQmuZK7cVeqXI5F3iOLpKsSK6SMOkmLIf5jwPBWNsiGQfMud4hKdR9HlawuW3ZLL0Hil7MXoamN9EDYj3zQeSPD779Lz/xfQZm5fBZwF4dLtUhHVOu1hcCVizZDzOHtLdaBavfyB44QrIRSxYIVIpaOOU3c07172Jm74lTP8GnXIha29yXwjcC2W9e9USPPRE7V5W7jrem8OvDzzfIU7pooINyBIgMUlxrmdQ2UW0cnZjgG3jOQI9f27J+Udtg+jz9ajD0Sl4nsDeRzvsL2XUed8DYmhIHA4blfx5A0cdREQpJoqz2GoluMTzLDHhNixHem2BT62fcgxd2COp2GX5dbx2TOgE0p6aXb++V0yzltqprVLAHUEPh1uwTtmS6rSGF9SxhRyShUoGX72xgnsiBbPx2Ar5CelCq3Y2hJbKKSE9tG7reyqf58zs9MbG7jrfLFnSw/rfyL+a8xyWY5+tJ5wf6o90In7pZF+ZbG6oooQn4YUCIDJsV8SM2wN/p1F8IGjdjBRtkH3KGR5kdkAr2wrEgTyQBxDoDUxmV2UvFao7il+tLikz83+TVDWNRtG4K8yKO4vLyYskgQYkPQMG7His37MJew+SkwJ5xAhbXrtVGOVyMuA31XU7Ki0yogo2NdFlsn3ZzG+yXyC3RIOIRgCUywJbw7Bj38OTR0Daro2kLIAv0P6Ob+6jK1mhx4BL2YipQsiZH7T61m/rswoWYni6i5ytaBx0yu36DxfGUoN+1oY7hMG6nmmNpAe6vrWeximyCUz1rHat9/qSr0l8oC9HgI3KmGerB5oAVdENNnve8jZotYSb5mvbReb50ZFT08bQ3LUHjKnMNvtPMruKsB+u21BKaWitEVVHLrE7NqI/8JatNZcvDjsAfTL1F3pkYMvj6Gw6Oxpx6fzs49GF9mINa+0LROhaCX15hK6L0OUJ1Y3lDOzvzQYjkpnedvUdjEHdCPzZH/6aRkwq6TsvR46qZcPhxOyX12AWSTnKSN8xmlz4gV8ew1/TklFFfafrnLNqufE4X/ujg1qJT1hQVxLuXE1XZ9/BmyACA9dmh2+/5EG/FAU/1Vh0zp6mBbNTeRQHwCKS08ncmD/Hl1oZv7QYLKTwjnJYlOvOq/T7aTeydyfhgVn0DNIcjF3hviv+cjLPAzoAFvWFGv55iD6OnT7z3FCGkbnFQ33a5nn7p6QIQzhzCHgnh/R+D3+nN8j4J4qXib0kUYhqT2XYU+KW0aBZBVEAg7oahzk0e1WluQ+r+OV47YQuSOjyhPrbYfzK26OrLA1dLrbaRI6q6upvuVl/KW2nfgoAeEXQ31FEgSyKrTM5jTXNUWX5KX9tZjDVIp4IrNd40H9EK15RZcPd8MiWP9jhZuUKOIRNj38xjiT+iWmfIR4NhOeGR3/4kr4KINbxlmfUzfnvxHLeB/XgTl9Mj7j6sKDFvKfpIGBT8aWKyuXZAG43jSuUbkvXNndUkMPaBH3ZfLvt0DA6JyPbwW68w561cPcivI3rY07idJjCloYSCgkF4BkRllwyEen+hNV+5HViai/n3sfCX2mAU63uUGfc7murCX1KJVLH2XrvXLvzmvrqEe5vWyFKT+IyMtErORuWFaOgU42e0REPAjoAMFWBYZulT+0HKIKd/DTpT9zCmXNVVZVhK6dbZqQGOgbVtLeHMmoGwBhBQcVn2iYKmMDPqn+7KEEENQHjttF6uYhk94Mjb/Mz1sXIEW90Kg6U1BYTstFP2iZkb8ljs/I72HnfEujwusi/fnVuRP5l/sqPaHlw36YfqDUwt1zPel3V1m35venSHeIa3com6I6idABL08Fud5FMW13jAlP7bOtLb4hmcW8RAYhpl93a+v13e78mqZ0OiEVkcZ09Z5Qj1Po+3AquHnL/2hvS71gKw9fih7Ykp6Nbm/lti2UfKmsHiXE/Y7GiJffnw2XvN/a8l9WG5+zN5ytYsf0oPhiEdnbfrsniyK/1PjE/fpkDowyprXzcPnXiEG4H9kP4EA+fPSvbg4X05EBYJN1XvUG9svl7mrRtL81VhZHatgaA3yOFmrhk6MPvb8lm6ZOFQ+fj6jAfyPAxuUufNuxqf/59a1HmROVtA5YMyUYNM1b8fmtKGd1Mk+YXpLDnuoCJMQjaWR9oqy3SHGroiLomFr/fmtIwnbXVoIXxgN1DdHzybzJR02Qlv6+mlB1Fr7UhzMefa665/c8EjI/ln8/aT4ntb/hBgXLFjEQUbj3HUOrUNzGLVDQ6V/M6XklL2VnxT0UOTV1zRIgJX9lcl62qGDbCvbqqxw5mjdbVky8qdL+Y7PD4pRYCpHjrmnyUfs4ytNw+AthkKccJnZ5HuzU6mPpF+Xg8VrA5Xi/lPnFxQS4pT9JyKSvLupoaPM9zxrH9bHhtC25vBgF9eCUOXQn04Bj6vcRR8yVyem4Ttm9xXmOnOxXSHFRATykAYiXFSWzjE5A+gNShopfTKAWHlQ7QkGDD96ZJEvzxo0DYEjdUAhAb78icIzYcefj1y5WftDi2QH8iAH/iSAnMThiACahdAWD/pAkKg20ByNv+o8So7d3I637Clvr8Sb5qqJCX/qR9c5vmtzqgpAIPmdhJ8H503Lu5k8yPxwQy2xKfA/ewIuNr9ONA4f60iz9qmp+BOX+EgLLpkQIrN3w3rJ5kXIN+tBjGM7AthhPlK8r5oLU0s+zkzlP3aa7TNmlTB+MbklbU/iWH1mdT2xJFUW6Qn50p4dJVGZNMRLvbidGA0Dr9hv8BIaMIk8V7np084EAF40nEbIMD5o7h0n2w/D078a+vSFJeSJlRkqH09s9PiW83xSd5Tnk6GAfu5jFBnUk6KcDPu2z09QtThOxHRABUOUM9W3gHBOjVUd/R0N6SJZfpK8eBErIpz5Kx5xuw+sN1UtYxnCaup3HzPdv4p+05XT1h7xsqn5NgI37LRzpaHm6Q7K3PTaKgH01RTqzohTFH6uZYcnIveH4Fv8upigVGylzWpAwPbh2rc8Nzr6JxBUzlivWy6SnIXF8S/Cw3T6/BlER8OotKLCHMTg7rk5xWNzUpWf9yYKTAUN0Lkr8iBPSW3iHiTHPhOX/KrzdN2689MEkBqDW9e/k1KWh49BlR64w5js3y61SR9kcilc6IZku11so6SNhh4tXwjIeS2qdtmsnis7edB9tKaxRhJO8/fNWvPJA5FWxdnSZKhuU2qvO0GldK6EKEro/QtRB6NkL9Y7f8YU1q8fAQwBaO2UC4/4hhf5hUzqU+awsCjAw7Tz3zA03ZD/QLZYJc78Q0/0VOwQVItJyt/uls/ipRJLd4xRhCZJXir3q2GNivz7Ix0k59grZdkaB0MhhsGFUZGhT/+Xj+hqVG3d+4gFYKSLJ/vp6/kdFUfA0NCBez6DrPT+sZ6fNYn8hGVYI6XoxSo56NbRI7U1PxlFUaVi+2SqY6EazpqZiS+G+cS4qAp+vkVXI5+A1PNze5JoYd3Eg9eV9vwjdiN/3W96z25Kvev/weeR5DZc9uD0xIdKv7p9/HM+Yb921Y74jC96yf5fBN0/SSzE0IpTRataFPgOaaBHRSOjUHzUw+ddqcMrU8j6STNIWMUsegdsx4inEiMKDuxtrs0qOmoQTnz/DlIse7+bMhdRrt2sQf+sTPwPQVBIpogVzMjBayOFyl+6mIlr6S50kXCwIUDwx24DtpcrzxoPqlkP6HivuBKxN3DL8oga86kl/jehtaxSIm7z4BGRxp1Wa735BWxbuZqv82bQkCcwA/Izd5plfYN2uPenCN3FJb3+MQRM43dmSzvQ28MevIj08oN+cwEOfX3nviJXzABlYNMXAyN9yv6MURxquGL4VVXthI8L7FMA9gg1SIuzmCe9XkpWRNZVIcskMO7kRVQ6VOaca26GXJL8OJwkqZT+6H3Z8YEhmRAoxJdj3GU6bzDuf5t6dJX5L5Ke9i8vYF4j2BcOxRkJE+HBuykPv+pIQU++FmBQ0NnaGHsHcOvV7BLSVXF7Bu47+e2T/wRmNwNPd+b/3+JcymEPb5TN05yQJVTttwVr5vjrPGzLkGm1Ppix8Pcp2whICPlUNgODsEAsuGQG+pEMgYQu2T5v1lISXr1zwotNwfR4pVANA7AXBK4PWE79dfgwe/NsksAkm1f5y+X9NFWja9k0Q/w7SCOmMpuHpCFyd0zYSuj9BFCFnuR+A3AE3Zr3fQ6VvB7UhrAVDwAxLtgx9NteoTlFcDoNMHO9JaABT84I84rWe5XPJyyuVql2tcFi99T13ouxz0C7IqgD1fi9SAzfeIhnwtuZvXJUamAif+ak7ND3/wV9yGAPb8L5IEMDwQwlW1q4ws+tcUcuB5qIS/0Mu0/XBODXgShv2HSfh1XiJlgiP+Vk6jzs8zmNKMV9H3Ql7bgH0toBg4jWA93xlWskB3pSgYdKNIs0wU+M1RoNVR05n9/gKsMPbrMScFAHrNI//9GlUMTIUaMddE6z9dwL/PoERr8TC5sB1WynMyUPTfhM2vysjkbLB3yxfRMlZ+1IO/csX7QryNZ3+a9oQFBhlE0FA/c/YQXYjH8kMq/OoFhVVVrFkiG/icXsggFdB/+oUH5BQ6nNehmJZRYMgzPciHs3ISU4Mv+Z/o6lCoWgVHAsu3bLcnpuBLS0LYiUnH4x3cnB/vrZDWMDP52cEqTWyd5e+O2OJrs6LNS9tjLgMQ+N5e0SK2VZaSPEe7vPSsWtKlBGokNE7JWDhRRaOEvyP0iGoyhca7jG5JdDc8kl8KsXuDIjaP0SAyS0h3qDUch6OPARCshrBdlsJFx9EYuOhN767mYjzgrmyWNs0Rjl/E3caoqJQYLUYvEx+7bTNt6Xut7ESyEXBpxS3iBdNo5RIZ2dwZ5yGhjaU2OEpkgxV+TeW7APIpoarZXU5ldmRJLFxjOy4mNBdP0GjB/DUhFGT5Hmb4rmSMmMt3qIiCzmfjtZAoDliWLDZzmmotT53Jl6+kl2Z9A7zi3XJn2uzjzTyqYmgEe0pGPsNXS6RNZf6Wq9Zm+OFeyg7ZeF/9zL2mu3S21nKa21yOJRK5QGzxHdyhD4e+eT56ZmkMstMLdActKks84ax35r6LzNaeWl6GoM+KOt+iwpeUoRqHSUmoxM7Z54FNU/V/huQx17jJKuhL5+hES5MgsCoa/5jbljUCIUtzNYT9DH/eloVApUyb81rwEx2YG7U3cBmYPQT4MhAe5aA7JVaK5xt8t8JdoDqOevoNTvBwt0xTo74dl/XKDkRc70kuksfB+9TuY8OlYQeDJY8UDHzPSWRYBZ4GTssYmatGxdYAeT+3d0M14sbAg3oQc/OAU1dsj/X5NNBh9XDtK20j+YkrmOrt81lemyhLbiXWcVTyoDBUDPHBijHp7Nmu4+PAsWz5reB18YbgU4Y7++U5flrSdHBYeuau21drTFoflcBUzdlMIeVh9lb1aNriXcpMyfJf329AFMfisPAHIj1oXU1shGe1YInKjhwNs+ilygKyqg1Kba2nBAgRLiA1PPxTPwWvBP1z76IKSnZ4OoxNV0yV456Dff2+geUk380/mSX1iRef8/s5i7L4U3pRCJPLUlkuo+xHCq4CUw2nj5zB3bwBQ/TvT9CgZDhJwvJwfG73KmQ8+6OSexfS+UzDJTpdJmvMxYLr/Z+OdCpkXc3JroW6JmKHXcR2fSfZ+LzV0WKv/vsIFt7wBb+IgfXNvguRj/6cxDHzPxkrJNPZXcq7XT3CN5185x+9SCSHg/8XzmGBczX64KYjbU15MXZyIKa5OXEH/EFuaod7UyTxLsn5GT+Stz+shEsVMchHrC7vSRlTQagj3p4IBIVmZnxjr8j5+lkz0xc6mxWbBKHY9Pqrnkpi33yliyd8+rANq/ovgr+Sfww5r8FwUTZFqM67ngPXaN6WFJFF8ldsF1NRID7tljribzTlvO+/lQE99vrEosuu4kFpuLtUJ5uzVruer3gctCz0FjxVRIYz4xixj+zK7z6XF95M8xD2kLmJ6yHwC9Gb0CgWxHKli648E0LqyFljAGme4WwS1xElDpZdEIhXjBf5bfyqoeH1+pjVfKeqjtEFhKj2azNe6IxzNtkarZTQhPtlOzQSwV/A5cJmbsuW5S3A/XTag9J/fta8t9pd0DEAI9yx3FJiJ5xpNYdmIDAHBzH8cnMOTLMxb1AEPrWzQPaSz8TkAm5WfLRsAyCNz9Yl7pxI/M2aZfFgPWmUrgFXvIpTVCQ5zK0OHoYfWYYfglV3rDmRUbDhtb1gtOb5yrP7Iuv8y/Dmny5wJu7LscUMgKadBg5Ufzaz9j5UiSNZ8cSU9KlKP++p/f3FQvwh118wxETDpkMrB2awJ1+K5hsRvdQ+4AB6ONrZQMxRYPRN4t/9I4FCLk0cm43/fZEyRy4Y3+UBnxbwwfUSsMMdLKK2C12XV4mju0Ou0vr2ncQMmyLFrBesZzzmxF8T8utEzKkk1PKvu4UJBeJP9VzgWuqzwLHLBTHtK7ey+fRC6kuiPmCS7mq/dnHmm3VPEAOB3dQzZThqXDAHsIV21rkwo67WL08RfQfi9RIqmZcKp07R7MYZ+FhOf22vh/+Ii2PTJZ2crxFHmO7nEQvU4WygmgNCn7D++WxX4ivyHM3imRVQIOTlNLlNYbz3bi+ctoSf79zxmvQnvfiGzvR4Xp52twn289e1j9XsYfp4mOH7w5PZn00xPn3F5tKRvU2X4DKgHGnamBpZyhHceyFO5w9ocbRBBOWDsjmJR0W8mGDCn07Hke/pED7pxgLnZVX3iBu29QL/7/DbKDPmNKSthVbIj2eD9xzi/8WAr1DXPA3z1z4ns1c/J3O7Hz6hJ1bEQgi5LPOnEMBtBtgULqECZlrFR+7pfFQMArORpL396BO6G9N2ledRTc9RCevVA72OM9c6+ZzuF+fLKbG5ngSImaFoDmAJ3s8B+FUUmv+VD+mYBzLLoytFRUv+ttvVNtUKZ1nyQAi4rhk9sP9L8Hq8a8e8JWSWWWnW4Am6++tJ36/BOdWJaHNJNLPW319ZiP4GZ1oHWVeNiYHUd7CkddpPZ3WinK5e1Sq81HNi+bFTGQTORhfIuml806GcDHg0GIvtyzIf6kTc9B3BbXnAt9Nq7wwMk19sjgPFVgwUgpOSni87KQmVVEUkhQjKSzjwjNJxlW0e1GbrC6TlE6e0HyimBMt7it/ycr1O2F1QN1Z6ggex2WDxeS2nD5UXf/4V90rx3V4i41NLDm7NMR05gVMFf7ThTTBguVtqZ3PfjiZGc0bHG3MnRddBrRKV87dh9cqE7h5Sqh8MUJjqtFLzKNc2tR7ju5xmeNM5CWpSZG7KgA1AIlBSwE0ZcLCsDjwLAm9vEKgp2mrJVJZA+0SNrDHGrNuFuP5KHlpkJ/xwcGahRczjACC3DcDcNMD2vRp7Ef4Q/i+3TFyDYLfvfOTvQO3gaARrmcaoqeTnL9NYfKvQTdIcXjdZQLw1q6c2MxxkNDh9JFwNRZsu7W7tLp2E6MKnIPAofY3IPgVtvvTkwCy4dI/HCf8PrRQzSdMViRsaMCBD5pEPwvPooIx4GAWQbafE5grhpqqhAf4FV8JVmZKYJw8mc6CcU1BHOU1x16OE5h+httpVxJiPcrmvsoFYLfvBLedXtJEr/ulbdtAQjUeXWR1/sDJrsaI4OC0QD5az/GaY9Ao7Tn5Vxx4wu+GTFf1qDLYIGsa+MdZoMKOd4QkJWE6hkFEC9zTrRq44tTm3C/L3b2S5opFao61VWS3NEAenCswhXkOrJ7A6sWEyVVzO4esGXRAhF4daYH8TDpUK0ZXKBB8vw/JbqaqEUFSkFQ8EgkdfdawJy5vl+S57J/HVQqJrPbcFzrdfcM1Pdn78oMS2aI/NX7MAu/z2a1ZSc5BAV+1DwlN0TxuOR1RhwJ4DC2PTsc496+ib0mABticiKWlsupcOlMfibqiFV9ecFWOW1Hf21TfXVE5kT1gSeCAdho1X1HejQ2CbHr1U9CuobHRuiFVEN65UQy0nY+QtlWx+uJLwFUI0IS57rJte8ccpvLaCUpNZaloq0ZJ67Ujx0ow+6agYg4K2y6Dh0zygJuL2Wc344lVurCz28re9uxt7+QCYsH2OZZrN7kGeNCYDPnjLPGxXBnK6dnuezYn1W4Hbu+lWvutmHbfsuTIuSPsSzL4af6yDCUEPDilTvVOI+oBrTuNx5csEiKn73h0ZM+dusb9BQrzrfMjChH62j/3DfADuvfkpoj/hYwOOWfidp9FOlb4o/l3cfGdnX3n4oroxu3sGdtKy7cc5N2BrfWMY1sWg0pZVglze0/UOtdLSaq5m9aYEUXPDydGp8plGqIM+dgDv0HLszarizI1+6xvHEoWa5dQmqkvKCIwh4LswBCwOtwpMR0i95i7wHGfJqkB9pmtDI9HnVMNUc6A5wCjEiln+KLZ0smnqw+63XtQuvm9TxJbgjlAjZsBgqh9LwGZ6k9xIilT2oxFqArtME5hPdHWK2zY+8qZqYoVaQRxLDPU1oSC+jqLSmYeESalPTaTQuzgEwLACUBPQMzWBuKvqjKbhU3SeKPnOwMLF6WPHnxY06lFOSMt/RjnVfBAj/NByFi9fVGQe1Tf4nmIRcGB71U6xeAdNOAB8n3eewnqZIboGtvjC6VcK8NxCmLckFmMIPDJu+P1X9T3hCIF+ZIvcwW6Ziup7BTXoI3Re4pw193NuYAYaIkgj5TvVTrDAEHxd2hnsXiP4gaUqiBuRn0UiryI+RX9MRHUyarOJUuWCZ0QkGNbvz/6uygEMGCXZtgfWzOpmIugNqKsW4TCm/+iELNOdiQK30ec+8ijw9G3K+A515svHe+6iy7QZAwmzDScb5fraFM6x3exUCO0cDSRxYLjjxt+efgkdpM1evJ83yXmzxhdHaQfiKxrLl2Ai6yrUHg2xUWmtp7cGT+XCO4XdHGWekOQoSM6y1u/tqBpmf6UnusvXwEIpm/IRIvVQDYJEpfuWmyxlTr9SOnAuXwYNeZ/W0mCoO57rQ+hmhYaD3K0tMkd5/hJuebUKEaulTbG+Appmvd4IMqzZO2sjY2ayTlEe/jPLV94nnpSUMDLh+vLEFJepi7ILGSDclMTwFZ0ugJxu+6XL9uSQT5XiSJfyNyGF+NOKY5V5sxXQ5grZ1Gw3y+byAEOHxiVpGcS4uLZhpo0LtMa32v3/QwHnwRIe18dqGVbhKzUNeLR3BKUW5ujnMCWPT8aLYXNmu0XxhOUvGJcqFn9+xZZt0SflWHfxRVe9SGVVFB6wtYUiRZhgC1s57M+dp5e8bLPh/nRPzPbrVsVT00g2YFHSlxXAomYH8DGVKNr2BdVqNPLiF6mw9RKKXSBy3AbvTQ+TsQMAYQsfWmG/McMkIwQJtCxDMJqPvPO5Fyt0Q1cUm9UYVMNzLpJ1rRRkqRt6QvEmbeX9gQO6cuq/MFTyE6BzslQVgCoaUdLOq8COiLkXU1GSEi9BzQCgXrPLTp8sqrQ4Ui3v8dLu5oM4Dw3DHHW54wf6Bp2MNxGEQxODeOk4oEFjfTPlR524YjE1bM6LCF8vW04IdXjA+u/40ZqhLZ9NTGPyWzZxQWbictTeXkAOrorza2kazSyuw00rtO7JNKUYxg95okbhWD1h35yIFnnuFVtOXLGLQ3AiSKOqnEEqggcrhF6F/4Q894Xx+oKCixb1v8gETN9iBdM35MWuCc2DwTzGtqvJdI/FC8fgnSOLE/xycQUeKGZ6+X62Ns+Hxl1ySq+33lciXn1FvEavT4iq1bJaX4OhDSiSI2SuX2S7auRZAQasSbon6EFQrFZDzbOgLe5rvJZ9rAbppux6VSPsNAUZq18CMA27bundnq2knwu7487bjJRW6bLGJ5547FwlH3SGshTx6LUBxfbm1xwCDwGE3A0B8BC6AXgQduO8QIC86ETPKySLrLKmtLuifLemulwXqzeoSx9LyGs4NFY+6H592zlVoW9j5JqeaSLDW5ybAmJAGWipWOYPsDRoHkJ/MR7yHxjwQMN0Pb2RBdPpajVdwx+SUYRmSra7o03eRzC58KiF6lNBPsceKylkaNEPLtDJxXDtmr9jISFUX5WEIxozbbaZVotg1zEQ7rn+LhlZStdzgIUH06oNLvMOMrlokrYafG4LE3fkl/pAJCK02orgLKVj/hpDJN6Fx0CZp+/6UrG1vrFe96kG72u0D+zhqV2ijRsSUY2JjQufg3kUeTi3bigz6kZ0slD3Aj4OJ2RM79/d0f/nlckSlVnEgC+tu4g3DCD7IfZre3UUf4KU6ofqaSJGxs+wyyMbH/f+vV+QgiVwSY0pCkzrwoX9mdQxJPeuTYo49c87ntn7lNLWlE3gL/jWJDFJ5dW+csbtpQkDfxemh7Xqeia0m+wYH5Qono9ZcfcNf9CxTKo5dJTRBnlhZHQo0371Dnl16EjXTQjDySrDDJnnemWSxKx9KIJr6+pQlYvOhSnQ850F5JRkEpuNJYN3HSS51HxQaP/mjXZ6o9szXt567BiHxd2bjx9eLb+EqNcknGl2JgF8pJfCg3xIG11bn5HAASsPMqoApBDHIZNKafkdSj72tdtVzw/d6FK7XKGYwMONUfx4ch5nqTIRdD1kX39uGpJfTe9OyYQhnB06FUhVcKF0mkDIH8JzPJ3Z/TUOEcp88bUD8wIK4G4Ed7k/KZu0cIr27XIWM3ijE4sMncun+U05QQzj11Fw6xksTKHf4Kb4h4JYn/xOBjw/r3VKb72uliTdhQvFPqosXFc3Yb8wiho//+7cRFY91aOQ/7dMu/7l4Zv0/DORzFJPuVTTQi1+eCXQdg5g0cm60SQsiF/Ceqf7oCAk0JMM3wyi5G10R/vvB/nFSpuhzBX6AsF4DB+4DpzYcOCbJs+eobEvafBlA+kKorYqnV2Ssp33WjnpKn/es8wj7zfmOPNcZZ467T5bcasPd0PbDmX30X2D/j/q+Y9OtTUVp/clac+ljLNXRBWVnXlLOmPOrOpE8zDAY6Wo9skOyBfD9+QNJbK1sqMFm/6SjegMnPVcJJ0Lv1u8GSAUeOvrdvZqFubYFxyFjCSSxBJWe/bmHatNPLTaVBtQ/0Tsg5JqEPCcuqI08MwL7Cc7m4pM6W6GtW4Kw1pZ+LUwFlsUXt4U7FHLZ8M0Xm544G0mH2ZbIK7/PczDfd247pdqRAzegMuONvGkXoMs5sYwxe665KfSd1y567GgCac9GFQ7qeKhFGazuXa5tiNr6V0ScxS5CNzykverT9pKOexx6jo1dJxwwKhG4V5PC9Dyn+xP2R7E5+JnIzZzdOAEreHYoZwEFeCHT6mS7IxKNVq2vTf36uE7Nax0MB4ACYLPFbhKfzcFQJikI8uzl7gDgOZ1tDBT9UerUgUsVL6G2cqwF2HKr2O4uiOsMfFjdCYF//s6ha9RKLHFNvBaDtoVHCg3DazlnuJaW6CFHlZ35cknLsb7H5XGSxQ88DeEohpByUFwrmR4ErXTfYPuHj42kzTNdbxm/OQa/bI5+2RnP4rRKsKMZoaD9iMnxTAs4/GtZt4hhbJaY4bwsItS9cSzhVqn5oauLAZg1a0vj/Ol9bMzl7C68INEKx4/FuVPywSFzQFSio7iM3P0fPZEoCXWYs/67dP9My4WNf0V/3VNv4OmvNoegYfQbDnBVQbWoW8Z5pyxz5wToVEPGVEKLWHPOiiU82zV/NWe+OVrBoQWs4xv0dVf/hQDS1QoOsEzWnS8VwqayYogMd8tVfT1AkV8znOpEZcMb30WQOp/SlAQ4yz4wARJVYz3mJIvhG7Y1Vi1ft7XTLy8jtPLKPcQPMj4HrqA2FymkqOLjTz58HOPIIl9fyCVWk1oQnvvc4NX7fHgEmbtL4b/gnwwIdXpedECfhHx1wH6HTKk8BPcuw2PdXrkiyl/udIX6vAxwBvtbxYA8Y3JwmkXQI9NkEOMZVclozIc8/inPIcioa58DnlsJ8bcRZ7HFJhKFgjro8T/EimvmioLSrMw5khpRmSl0G49CDXPRZZXQ1jbtJWnZ0DcSWDmAlqFMLN5GJ2w72LJ1fhSYnkk8ulOK58n+6d3nA0Jw4EdEL1xazGvuSy441M8WOZ1MdOp3eXNs5M7h/WDq+meAPrtTN3sI/6OX182KLwfv4UtU15utwly/jtKaPRaAHA9YXVoWR1zlzKYwHlNA01pRPpT81DBJsIV6GKs9XMlXCxxPvBRjrljfYvpap3JKGyYD+wr7fOBfnNhNHPtTJGkCDdzPKs59PqoU6MPPD4xKazezQbAf9QZ/kn8gb94nLtaXrKMYID7ADkGLkcpYAfB3QDM99shx8B/jOv6j/iXpl0h+C+AZGn/Y5F4+/mfAlutFWzN9+Uqnxv9f5t35dciKCP7qL+LOSOQK+1KGEMEzaipdwqV5/pM0jXsRqVbWBv4Q4g5nsaqI7uTHD22Za4KDeFKLnCQUAQgEpbq+1RuEJtOrOOEhbv4Eor3pNGTUd8Av+Yw2DvyqLcsukBAx27EiKVcWU6YvzM6YLIfJMwwSA1BGukHab4fdEChtxspTMg5qMxwpRpUEqYPxHBDjhnvRGhXkK0yRuO4kiERauidXMMS/ElDSH1DHxKKE/HdoTS9m5l6GJ39OY6iMzF21e4W63MDuqf/0E4fLh8mPlzZ5IEtXMCOQ8Ch1dH+HgXwZncaH2D0/osFwP440mYYcmoefnE9XEag5LblGaY/MaRDlPpFsaoZtJ+bpf/ayFavPOWWywV4/5hohOKlkl1VZUe+dt/e+KYDIDbqyMIYMCMnoN5x4kwRClU7y9gZTQwzQI/XCax0b6ljbn/Mg6OFdfl+owtRoyhvjX/POxy+zvF+1kKGL3QkvdsrkYf5O5wgsevVs4/DJk1mEWYLy+wNIv/dUphXTHsvv9jLb2kOe9LpfkNsIuqPfaP5w6/D9k2k+PmyGpMzqlJSmGHFrxWUPvTZ+dRMFcrPiwSF/PtgCiD7IXPHxf7z7UKeD5HniPsdy/1kZd4H9PnoLMPCPB23+zmV5smlOoNckCqDc2/38vyBGjqG9RH/yXmOnbezPZ4zR7AokFPUXs9BkO46fYHNHFLpPZqeFd4ZUu0RZp0qEZ3Y1IGC5h8TZvbIZAVskYtXP8RkFcfovVq45ZROKhFmCcLyUwBpaZ10ll9Ak8CrpfBmAYOl8G7V8PH/wVOL46jesQZCA6FFgRfZ+0ZdQ7HuM7YolNaImnhx4d0gsEbEpkw0BWuS0IB7JaEgCKVbUUZXIiHizU0WrST6fdrNEbwS6oTzjNUJr1O+htp4BbWI1wU+W2nMMtYmUlNgtEAppkmsLVJMHa5BrK4wrROkZKYYklBJNgoxEKYirkm8Q6hVsFLNFFiDFsl0ibFMNgimKfnIQXOFqRAwXrNYjQRb8SiAAq9ZTFUsB4+LfbFe6EheI4kP9BxRvH4TfCr2XP7w1CfII9Hk3oo/WP5DNQl3E6upPMBfWP7H1oW7OV8h9BD8juVg2wgbZUSkd37A8i81wsb4dqFHS8dYPkQneYzwiuU5jQubgY8QevKQsCw0g9DWfCNiQaI1kuXMeSe0Hf9CaB3pEMs1q1ZoB66IXHv6xfKKVS20wWIqN5YCy5ecL4R2wX9EWtI3ltecz4Tbmr+ItMGJvZEi33Juwm1H43mDIXekv1jecj4KtyMfLrSJImM6UJvwkV+oFsLH8oVqLnxcvFDNJG1cUJX0e/LKj0bePBm3Xw8/19h9Rnpk//TE9wf92OXt7ftdz3GUDys7tr28e7plazJEumarcmLVyI+ejr1654fJ3KpnfkB+1Q/AnVe/8XvhzKtH7Gq6TesG5yO/eXWPc6JoqRLOShGKJwwrfqcuxzCzuV4viy5uulV5n9Z5DCm6pYaCkphwiOhpmjWQSDpNKAo5Lo/bgFOawwxFFmqTgSIKbmMSUx0NdgOFevww7ehqUTZQdIxogGM7NjAC29HQeYEMGh2I3Zo7llDUI+ojBSKLW/OecNvLnZns+37vUEdzsc6o9D3sfSvIKcqQC0rqRuT8oDdw9FhnR4EKb71BHIc9O6zCM+wG2ps1jg7BUI/oMpIHjQ5hA1V1U2waFzuQQW/g3sImiQ6BZfllaicURbCBohFNY1JCwCaBImClGFJhA0exzmADWfIpnTdQqKcVGMRSviyaI3kRNglEZTgToXHA4qzDCpZBUXs0l84Zk1mUfr/zeBpT2AukV3MQhdzAoYgR+T4acloKmsCviFUjS3qWEGGEsr+cUVfLuYHPjoRUeNuJSo0oaw+hVWVwMRy9ASFxatOJy49JQ2oXH+mQmf7HaZbQDhLKUMDeb4oOaLxBkR05/mj9nROHYCDBwW7gScEI+wSNN4QwOxrcLhTAAzVzA5RWwtsqUThzkYu4YS9K8m1RDPUtnBQsCluxsYOBUzoR1F8uQu2PuLErOmzKVYbTNCOFpatw3xj2MlvPDUXEHELhjZlrSawKUFjDz/Wc2DwLCbxIsUC7UXOItt5olnAYXYxFlA43xdOp9AMsiS2VXk2bUnJyIV1mr0tnd7hWfmhoZbD+as7kxTtNmKFM9VA3YicKqJOdMdutqA9uPjjaM0X8q3j/hQWViR/9Y3KfPE6wO5PT8hT8FN1syTZFY10pFGyUNGghE4iv96o3E7M5pvJlAP3VlgaSRRBXonCIUUkSzv4ZUC74vhUyj1PHAwcemqbILMEZvNr5arCSZ2ALVZ6VDXB87dk5cAPbFkcD3DxUv4r7huUqo2DpcYURCikWi8Wq6oaDJG7dsHS1Jv7xdPtOKd7ErXWieqTA5RZfWQKv48KQNziEFN4+79KVEt/tPRK4HZHhn3kkCx0EUERJXk73icn1eNKnQxrr4IpguemqfNDumD2+W1QmSmAm/VMiOuvSHfggoWiHLKZGzTkZhQYAeegZUDRHft5JIHI0lILD29lQyjrav7+JsEEuKEbEAgqZhL2Q+qHa+kJKr/a16ZHAZBKZmZNBZHk9pHcs5YvS11VDVHOTGzWkaB9KMwHWozbUaUlRHa8odhAO8H1GgTgBQbBQaOKhl/cU9b9t8TSNSFwY+N6pgcPvQpDQ3cBsII+hhwKOBFboyYEHNwOK8sti7ugARfxOsbj2sQRmKESCaP7yzZzVgqpUAVscoSz8DAKb134F8A0YLuP7NIKy8TQmFcv7C/hfpSaLicqFGopGukomkQKQuQODDa0wHVPy0gENFOpIXpwOzPl1Og4t0AaqXigsA6s4jcgjyMp4T1m04FLmylKJPAWLPumVp0PKPxN3uuZOQuHp+og1nS2qo0acprFhXwhSs4wlTzE1kJ1BCE7KiKTLC9IxAgctO1uyzEThYGX7XRj1iZPTNOmCQkH+C2wJenTQCRHwcwJTgdWPXRPZj+Ozo0A1A2zQDAA3WuG0aezL9D9Hgjl2wNIEoEo9FGihwBUQMQdsoSLotwaY+Lk55SPG69UPiNh+Wp8BTJTAnAjfqajXPR2xLSiSxdx3RDv/2YpDpKrKaVRPG3a1ukp9TTkuWkip3YL36ZYsIvNI92ay79fXZezPFsF0kOFQKdoM5i3R+9zd996wfUwb0McWJ6Myh9uOGkuQwMkMr++upX3MyUXGz7/di9aiQwcSBVOFDWVkTgIDpwtzJPChkgkRKOh8HIT206AgiddvooVOvO4LWeLhpGHYBijK2SCODmBsyfgwQj7dEutDD/h0dRoyVeL8kilRL/T2ZdoRbtOA7wE0PHCWlBLQj/VEen07O3P8YTR3x22Io4oJiG0BlriNR8D5DU7NjBIPkKHAROEnzK+ITOYeb4jTjz4GfCxbUbjUzq7RVCb82iNRLoy9oAMdJFAvWdFbkRB1Qe0PE2nWtCeYQGDi+J8NhyxOBvmBK9EMDc1IuRRrx1G5NBonweeSSDiPl2uKydkUCpH6cNLYbq1ueb5N7K/QhldVLBsuSTWjqTn9cIV/3om3nu6tb8RPX9pAxV77q2H8sJh7JGVswHTgDdTM6UThKCHOGVpGdDOASKnp1hkVc3tEYr/zNKOee5ebQRPOcCrlTefdoDcnBJKoSabtPoFJMIglFJ5nWCwuxLI7pIS46rQRTYHOLP1I1jrYRMBtrBZagMygIQl48DeGgKWJr6ssDNj746cqFOBTcUok5KiovY9y+OnKkhGMcPFTxsQ7tfj+pyIJmE8d6MRuRrDu0/4ilI0lToL3zTPAXr95BuABmBSTYMMW0EnogphHyVKH07JaqIiFd5MYgUkZD6QV4s3eHiYcy4cyvUs9YgHMUBQxww23dobmKabGgMCgppnUSJAxmED6IBePTrIqUdavrKIXM9+nMpQaXlFedh3E03MqObvuh064gwT8P0uHv9wML1dTupi5Z2q3cqHENrA4RJPOGaLbF2jVnDIaW2uPcc6YQdlniozzjKk8F0mqr/nMs0FOQmkJMea/kPMKRIKCeRluKAO/WTTYyOiZCaIw+EnIANHqwnIM8BEqK8jWJr6tvOQqbQuM0VOZRuwNHeZGNkDkQKK9AK4YX1D4cKetPKMjccabuSMFtqkp8xWE1dUGuiOWj2pSQkYSIpBLol6M6zqZcXXMRrEZDAdV7WEX1cReM6T/nwo8fBpZ1OWThakF5U9ISKF2gWlPgX1STwxFZ9kQdYebhJsCCpDEGcBw3sBnuhdVeYPTlmz14OI2eS7KfKjmfWjqTzF07Gi673P94B6PS4yqbgxH/GYf1xXwQZue+FQ5ud2cd+++++o9ttfgC37e1El3nQ1cmtE+3ZFwbKdRrnTUqkdGG/6eFUNXCSnJvQ0a+fltFccpSQg7Ro1BnLJ0HC68tYFLAsbyGmLNRDkbVlqBPUTBEFCTgcG61/S1Q/9uaLYx8+0fysnjVTcLwrtppK7YFzLAZs9yNO2oO51rYVCbht8jmeV7910Lzfk4RAQaibGLS8NeFv+ZP/Mmv55CEvOvWZbe1+AaiqaIT+tfFUgXisrNcMrHEQaVoWAMbwKy8zg7r3SSXPxYLBYLieaOqjdkhIfRX7BeC1XICCwSHWCvD2VMuIish8TtGMHeKptzJRlm5/ZyXu/Y5Woax5DCUKcVYps6LsqAOy4lvJoEqGntcCUYcf+At1KXyDMwMRxb/KIcQGorsVYc6TsXqFC9vBAXVSEvcfl9CyhvFUOV2f0FI+NVKHi82qZSIpGEUKyYRzdY6VLIP6Lx0AS1qj8X6CIdA5HCHPasmCH9/I4oE/1y0OicmEHhZMUwkUQV1Gstmwh97sKd0c3nRLZe2bz2cUG1thbhZEWRH51YpmYf8vmON2bC15V16zfzugi1b0qYUg00ybY2oh8aGrtQTmdcUz+/htCEBatFvJ8KcMSvvVkuFctXb80Y6Q4Zu7w/p3i4ls0UWvKNm3IGIo/TmMn4OxfxatGCPZx87rALaa+KK/BBXmsDRjCI1PU4EoodIyjgKLj9fZ3K+y40cWk4f5AJGX8po3rq2rX954gfU+RTBS50EiwScVQVfkLqiXxoQrHvejoodhApp3bEAOJr5lzbiFtR+iIo9Zbb+eGjViYvOkKRCVcybIcMMKqxggXR+VaOEFQUb86wC4XDhaoMHOaCJvWGQlXRC8tehApgmjyaefZCbtL3zYGWvthsSk3QM/xTv5TfCt4vWrSDQFGKS0+kO/1+SHcGd9mOKcc5o+AMZysxZZ/Gaf1irIFnODOBSjpamFSzQSdEmZK+B7CAQ+E8TgGDetxtgQRulYFcQdaKsZVPaelOw3lVA0I8/9ozKdC1jSFkzz3GQ/QyRxceOBLaTLwnDocFVpGa4bYCDto+WMQ4eMGhCTw7I7L/wr5akA1DhCHMXdC5+myxdhQ6AKcFmj11vxQtNhSGaaUJUWGASTlYCm738yLhoOB0QTTuCuwCGDUic57Zb78XoWhhIIjaIYSxZDB4M23uYCRyoHcPJtyK1Fwv7OYtoii4xfkVTPb3l5GEvz7ocxoEH/KdKYzekZ5MfPY4WPYfkzSJD/cGcVyZo8vOpiQc6FGAlc9fbyel9ttc1unYgMVZQOPtyXB0CK0IA6Rc2IgSWq2CaUnrkv8SV5pTMCDk43YMK+sQhoGaEkFNj3rEW90jY7XuV3hru7k3U1fnkkBBVQ/GjDcgQaF52ixIdi06yUUSPbiZcNHd9Io4peF4D+TkBDkKTFz+hyvQlzVfKfkftKfITPh2+uIIFrWSzRAmi6/g9vKEXf/rsDhFsGWnV9Oa0u+WArMb6Pq4lvga3razFqu8qHJgb3f58rn5tCKGuHhwXKnszycVwdieaSiiUG2RbtsM2mxqUGXWeRY26A7F997zh8ljDgsyWaa1eeyYPnwlws7rAPaB1DJglToBNACZB4Mmv1450meLcBpDEyx2HNlkTdlFdeB1f8jSriUkfIBZk2dqhEcrSGAINAAda1tLQgC/nqeggAoxNsNRfrMbqFk8AHedwXEAcrdqcGIQm3dqgw6hsz6CpcNfiNW78aKgMRmuwxdgPTxJA4N9SBZdMiNAptZZChf2wcXb7H7GyfcC20zFjQCkxY1FuJyuc4GjUnFuXk6JNA01XAQuUTICZij5mCfnQxjS+h5lgqEUM+Gu92L/i5NuRMmSBkuRREIE4VvSFFAMoTGqSml056cG1AbAeoChTYaxWR53esI5Ihh9ONbIPBqIdE0yBmdvfEEqx8yLCfxkiWYVleADLD8M0ub/CPOHHLiXIr3wPhjz/8Y3QIxh4oMAT/iSlWnj/AD+m8B0KE97IPNcU555HOpaZuNBHUUjk2sgXCsKq6s15UubbERZLLssED49ytFP6/KaiF8Cz7CMXQEfVBvcPyShitYROo7LsDXUmMhmKB0yKldcs+aJKyTZ/vfi0/qJDDWfyq6KzidlHNEz5HUEk89Kgsk7d+1l68ORFrRQ9jwjPsos1gCrGOzF4IHRwMqeXwIF3Jts0DQZ3YPbT6CRGivw6wVMQwc7MByiMUcJnD4s0Fnp1rTny8ltUjBeYpzr3466dKCCk+WPE3X7aIPp8mvEAfbi+OjKJe59ZATMe0Ywi86m+DbgajV5Ic5cfmm+XEleV0IH7p6MCwcUYgnLhNDRZBC9qrKXQNM4CR6Z1YTGSyt4rTnFJBWFgyR2YZJUGTqPb1bEpZh3oFSppc7FKhltnIp6MlRKwdtkZYOmFfSai/Dz1F1MreEm2/dUcsZ3B4kcQw8l+USXURhri/sptFdRgxqMybUh6LfuZlK8rdgt9SXTZlBxqr3vOM/l8mHns1cbHd6WkQK2zO0JG7oZMOIbQAKW4xwpTcy4RPHFAhehjYbaY39zbiaAwyVD6wtsVkKUUOAK5/hSfAzCxvy8+/o1Xo07Fbq1TXlvqUMXhxHgvmluiGSxX75Xuu0YJNh+4rIb+yT3E3rxKh4d4NUisGxhQdI0jcIE5i6X9w7hvC/fU0yuvX82FqejQwUElEwVUCvk59pdCUN90Q3AMm6AqdgG9a4NMeBWrqF4BeexNK+5u4OF19mIpNMTB8WfziNgmbJKPeWY0bAH+1yerIQSw4hgwSluk+cxhPo7ohgy/WjSTHJc8hachrWWTxjhqF48kw736kkt2pOEzv5Xt1t2iKmT/Rka5sY18XHgkJclk35d1d/vHW33vHQXfo3mJcIqNHu/4oVTMDKxQN0HJyosKbbtV58evOI9pMEnUIXqRIyCAb/xZ9AyL6aths2tzz68eGv5BH3jHn7jCSHtNDzSpmFz66MP/7+1wq1PKW0ezrf+9rS7YbV2tlkf1jRS7lYIK4zU7rBPrsoHCXGfkwlYWyXr7KuZqjrNZZ1ZdPhn+oM/daKLIpLXW0XBk+6rvJCHhgaqGPXG+dT4Ai9c5Kjxtg9FNMQkZl2Lnx1V3T5d1NoW64XotHCzoxJMgwM3KMW4HqeaO0BB8sC3L3W6ctN1JBfYL9yCujKV7xL+HYPfmTeuCklM/k5NGbA3vuzTBgPJB399WTwQrMnwQcidmkrBZpQAe7d4Q1EJnzd44vNN59jAyaoKuDRb89291HN580ckFWp1Ku28o8ViFdpteDB8+cwNt8LijtIazqQJLkfe1lnoyDp46FWfXDakVpeLYJ4N/zgWrtN+8cmsdjYExUtpqScHXET4UL7xi/dfpntleUaI0P5+ph90eVJHJpiROluuluKp9mEepeC3Qa3Bq3qaFEaM1PrSaBNREnzqgs0olWEhMqZaBh+meg101M6Qv0vTlcGzxMkDY9cGX+9FpNjbbPqDiAUn/VH9vfqy7/jLz/gBk5U4ORr6A9YL74RlLFVpn76ct7sLOXuaReXIaT/SqTSsPv34tFLE0DZKCEaew+aXs+fwvvbnBw9VKJAGAikJOo2GwYVRlr5gOgDFOHjB07Lbp4929f9Z/jQ+hcE5HbBYelwZrTnSs0S2VTk1C9/GiNcvArXGdTdIyxLGvJdaLmCVUSA5pjK4S1V+9nwTmeHSMOeQoGrHJmD1UP1IxJl8vN3fq8KF/37B6yN1AtaMn/b5jMAG6bip64zy7r2ZFIE41QEOSWnyd3LhCYG9EHbY31dY62/k88tIjB5Y7Nctc/foVtbyG9/lnTVO+DnC1T1+uxUmPljthL8jNEzsLDfxp8UJ/yrYKBeGvsWuKlXt+1alINKO3qv9cJGDvVy6G7q/76Cu5Axzl3MQhdjnN9UAPDo2UuUaC8jJn6sUSU/Pkf/yDVOHDqI4V5bcGhrB6/ligzn4GI5ynSMDW2x9U5zI4sv0jXdRBXSXSZc8kkeRzkpq96arNR8NnU4gtkDreyEUY06WNEa0LSDyX0Zy6Sh4IZjT8/XaWqDzfudjsDsADg+IjxDElC9IlKeXKbMhsQUU8fyx16w6OxhdEZ522wErX9m/+Ocg8a3AmngDcmuYl9z4+thKJ5o/7O/+2wc6zsH6v8VCzTFZFCWAUpky1HnpPslNgFU8ICLKkyiYUbvjr90t/WcTUjf+z2Hq9VImAXBs/x1Hlc7NgJLdDiG1Lox6bWA0xePk3r7AzVUU8wdrc2BoGY4SpSnqlvriQ7C8KI/zcHi0OpbcR6AoL+MI9OIzvQtNvdV7p/7L/RZ/nW3InFSajeNL+BSydU3Pf66kpgIYcnpyb9rmniJ/H8acmVCeRTrDXh7nuUOHeN5KVuxFXsZ9sNa1kMeRTY+JPMMRe5/69Xs8lO93gtsiq7FobSmOQXie4Ufu3J+XRo9CQSsjcnf56KbqKCtmeeZoOR2Tdj8HgkHP4zt/HMNiUU7hwu34aFSlRhvVNl/kLjT8Fwkser1Wcs8bjsPaQMGuQNuYYhF0WkyUxWskI77FL0jjEaATg9XC+5bAmsdLlSL3yNckei6mo2XDsA9VOKVLfayR9ZHMNwbZ6g5rc/YohNn/oCuHVvTQhFSGAgBjfHFBxh064gjst0vSbljS6Pq99+BfgJLzERBELfxbZQPimHoNdX2DP6ZRRL5+mYF43X9hx0KcO63vqHA4l3ujv5eR1DbH6QwOfsjVh0T04LxtNcnZdDiC3/P+eaL1au4fEls+9tuPYurdeM2Bi82jxaFMh6Pd7zO8GQNsq2hdA33zIMPBHoYBaYTleCwOETTe2SVgo8Z1ml/yAJtrICRwKiUaAKT150JY9kPhzaTSS9h3QLmIDkjYYHpuOra/YIUOBBFrgoGkiYDpkhXxJVAcWEObb1lfq7EBAgHd5O7tkLCheUhUiwcX+3z8pvRfdHp0fEufa0eDrWl65hmSJYs5BEO7Mm8VL9Mr+EIO8/sJRmZYdzdADw3cHwF8zVlF85p/n+0HU+3Pz8fAie9gDGWEsC9l8ohfAQLwgMG7tgCo2R9+TChiMYrii6388ofhDiC1GT8OuA7wiEFe6roi3pqb4n7C/j9niPxYIW8MyCK9xUdo94fmdD/tfy/K3a2FlXI2bSskLszoiHZEAToERWxOPtq6lscdUsgoFmrILVbMtYI9SXqsiRKq4smI31evsDiM2j4rFLZ9DsadR5RL/rqfso4B2QiG5ur5M7LBzjcD47BkdwNIO3A85Ajm1VqKWmHiD5Vzeap3A67CDkdeC68zCkR1naY1sOBoqhD089YXAgulol8QphObce5m+lTMgFicdffJKgrmC0KtkFRQmhuIw+bP8C76DathJOi2TRtiU0iq7kOhFEgGwe+P/r5BnH5/ra/2lc5N2abxcKpHvXeiFNr1ATJY5R7e8WP0O6BYnnUdywQadvMLuI35GsjZQQtDYvW78WlrQkf86OyLhdTvJWscWRHbJ4Tnyzp5vGKH+K0lqmuvaitG0IKeRRAwpf3ElBqP8IDmDrUljsnF+rT+yACB36wpc/F0G7C/zk0ifr9QTkME31Cnv0SXwoVWuYWg+2KluHruEJryhkvkrLl08somkdePshia+KXqopdW7RmTF0tujLlbKeUsuQuvm5Cml6ooRfs1Df3NFOl9k97t+G9YiLf/MxIwOSzSxWlBvsWHB1lI8X5xYkmtfTyPGccsTV9R9Xk7LWoeF7UdvPrRghu0ERa+GOvKiWhUGSC63MHXnncXM3VMBc3BBOOtYLwZS4/xsvIFWXJrBod6Xl5w8T1g7QJy92uiXcFmuff826raC/ZkhOys9eVzeYn2uT9c79Kfpas8B6RkOl9sqbhrzHvu7hxRMQrdGuMSgJEVroiPK+Q+Fk9V41+rSxQTUuhb5DubGotDxIBeicOFz8vczCG83BjaI/ZiZWPeZIBCqu9Pw/dO2wGUeNubVddydFPo1P56E6ugo015BDVR8GPcjPL5psgBJKlvC+xH4KS8jejHQ/CMzx8IreqVtzjC95vW3j6/gtN0AQNiLTjMN7AtG1zbCRtJGaS1B9cGC6IZPz8LXZlwcyKgVcJhJTWvc4t2wddVNBiQgTjrYXWXezYu7xgpj7pk4PUyYwXiG3qYepB1J+vgyhF3gCPrHeSv5GiXPXFs+G5N3K4drBStO/GxSVKmJ93AmFYpRVj0jbGcE5niBna8PvxraBh6ics17Zz46e21Cy2kQjCWIsYmOI117dKyAJ2G4L0jKRtqyAO5tJ+aq8XIrVcOEQdGzmSgnbaCCJkticRZIVwZDbalt1BGCXPuCi+/6n15JU+iK3R3UOkPA1vQW2zedKRkE16jevwBXcupAN7W0t3A/A21QwfkHrQ7Gg+jpIxFZle0vbCkO2VfFgsBa6JBvWFHra5xSGSFuBYlEaccIyus4Piliy9paklUZn+KnOc/EWjWHSbcliC2oHbwQB46zGrN6KkFFPkKlBLgrmkHKkMhhrkDI26JUMGpsEU3i9QbuipMJ3Pv481WW0R5pX1cBij5TXpJhP0P8YruQXuZxhSReN1d+41LqrpwMR5lPqN0Sp1c+yrogP/2ux7aQWHRvPEsR10nTMydRVk3VD9gB4xIiHx92DgmJ9TbfhlI7njnU+L8t/exR4GORKZy/CQRVC4tT1cbV2bNxrBu9jGFSQLeeanm4a5eYwvtF+VdDMTqSiuiciWxdp1lWETng6DLb10LkuVbcUvYWQUV9YGwcXrmZe1WCsNelkPs4fetNTG8DPoyQYC5+20mWbLxVpAjMvfBmr/Az2loxyQF4Fc0aS0hMr8a3qlwWXr7/m4kBulbsUdkqG2bGhlMvDI7V9tP89kKuDSDa+knQmwd6oIyLYdSIpb4vFK9Jk/K0gzHfw5CVXk5W+TWYFvFPIoZGnSIpDqzUHWds1SF2rOANWEDZ0KxT7N4Wzsn6KRWl9CNuiqVzzOYt2zWnhvUxaqXu3EPBSM+hP92uyc+MQuMKECqV/x1SOE6/Fvwb0f5fKGnuygebtbRE/eCm2kfrDY7TW94r+jWA3Xt03jfFYKrXg6jJgkcY5mujxgobfdtRndjkSJnvKtMo6uZ7N/DxcnvKD0o8ehEJ7YhXz8dL1uBlQuWNjJmvgL0VXrBRqECi7oVRqeOZHatKiltxPdxwhlJiRKPhIl9TnRIl0NUDGtacoMsh5nCqWB8JWZW8L3Ojfrd8u9nxOWzQy+/iYljobyfUxwqdg1t2EJScQ11mIWXKwxRFkE8R6QwN2oJTHSu5qoySq/4dfRhoDPP8x7BtmWujN8ekBwrr+cgZ+aWvJ7XqQO/BKaEAJAU44ua+CAkxz4onv9lYNWVwUT8+fnagO+uW+jIYu5fgWzlFhDvQFDWF6ivZPmrfYlQMldBi5oiOr/6nH55ZnMJqIJ8Trgz+MYIb4/sTWgppRJx0r7H2+M2cApsoEZzQmg67QpWSpRTKRo2gZSolNryauKqYVMpsqydGux11RQBCikXOoISZTnf4yFxY1PWLX6yPFAP+HSH6DfsxskhVAN+fZ28vagaEErPBGGCk8s4RUkxKFIeKGpkn3aGXVrUH4UDu1X7pvxf7UdPbIcoeByhAVLyinlkMtWVruDNNh/f9B5zYaQ9ic653rWP/PFqxGlp8lAMMtYOHp1UR//eH3fjsLZzq3i/W5snxbdk79flMKXlUVoTcRDoimpynfYvroS3s2Wli/VlLnFl8Siw9OlKCTTngMSpSEdmUNECF8ZqF0n4/kbifQTC1qGLFsgac6eOb7lWgMCV0wE9VNsr13yrBR3ahWF5nDQB2/mooArC4fcVVF8vVhGwSpJOkMTHsQLUXU5Y+IjHviKBtpSNJaVWOzr7BrmEnwwI+itPRYOZKaftCo/XEz+wtHQWAkj32iO593pDWcbSeYbcVsw1+LuPndFJYXaJ/37acCrQqnMlIEVDlxemdcxECURdGUk6YA2tktNBa2fVtYf62tJOO4gCDOkYSWnNjw2dKNIK5TTOFH1rlXldFwyHwVXnAIeST9PO8KcjavI4YV3UUe/1x4nAHa+U8Cc25JZSqhyX9++HqWyQ4Evz2DkEpnQA35VzCrGmaiWYyC/HcKdx7rT+pBTZ0S6P+HRwGwcXm+oMr/5tmndv56HVR/leV1cKvxHf+5D/wrRfUAxYUQbTC1A7MahJiC0dUL0E2xHUCQJHs3Q2Nhx2GinHZW6f5gzycuH+tGfxzSjP9ZpHYS9OhfZjJTCwmyG2h/aJMwii5qunzoGD30yk1VZDJtpFSNFGgVQsNbm5pEr0aLtqDLxZD+sbfrST49X3rBDdDA6ca7eYMevS65EE3kNgChfw+e2UEWfsfO3Jp/F5fiIEXLjmOywAg7cEvV1x6QHc4CX1MOmR+ITtHZAWDpc22mo19BVe64n5eDbtXUxylL0z1fLtPA+JEs4iCVZOZms1V2HQrOJEbclLH3oiHYLyoQLwu9WLg2j+YXkP9psUA27fmcCcAAmztspnwoqlQ0hWamMKfY4jEHqvY+qmKTp02+FgkCKxmFbTIkDicRsjb7dKR4hXC/uY7zFj6e4LgaG17C1s5KC6CP3tnHWUpqyfm+Ch+3/rTCxiUseJpXxDK8jVUFVvuRdsXZpFO2zYT3GehlwELR26jCqs402bBksJzjQtuUbqZ1mQZIkv76mobrG4bq5GCeYzofQmqUueDx2hEDk83DtMN7qUnOIj76wVoI1DtAYd9nYjmhVT6x3EFp2NR2Bj5oVqOeA6+/DGSkfkkS98zyyhi5mRfqL1t4Z5Egg7+3zcxQQS+/17lzzZdAx/45Eo53B/2ObU11EKx/nv2cS26/OpvpSqTAZu/cb1Jo3iIFIo7hp3Pzns8qkmj1UaUGZ0FfI4MQkuEA/z+RIs4chS7XuUt5LIS+1n9UAcTqMciS5jeItemaNMGXOsiavsOE1LkBwSyhdHFB3zzqkRVOUO08EvDMtc2VJiZC/eBHuBKiUmLlVKFlOdCWVmqQPHOcUsLHFzNwcJZtE3DIMtTjHO1UJpOK9je0sHyCQPxmQgftqJRzG7oEgHUntSroSojiaHesoQHIO/DchdDIQU3ibnJLJ576I4GQg2PGaxjvFUWJSGyr1a88EX4qDzrzXhLZe3NyGBbCijNu1qBSFOftyT/C12kuPSAwS2P98UZT6hdIsyAavEMnentQ44LSr2Dh3hTVfoELJWqfaLW+GecrUd6McwtiuSV0NGAaUjjBCqwajVCR7fQ064ztP2usdMUNBQqXBxgzp5taoQwOmAqXmg6pyvGhW2OEUjMQGxGJDzbebLF4WxwEOOIZEstcZ3NzIUYxtacQMEkSGZ5hg9zO0EeDlnssQ/Q4uqeRqSyZjeSJqxK+LEsEuuzLlU5QcCL9QMbxQGp+b0UGMGpwMw+TcBHzFZoToguAW+XrOZAMdYx/b3NvTy25Jigenvjs6qgfC3RF7BrDJoZW45BHXmozvM9eEdx1YhcZU98cTuZI29Vykb2HLsjkF0obrOU1WHb3NSrn4mJdxCNkJuIdCVgG8MxZcvhPGEPdqc5z6amq5VktttXgp7gU2ZVbPi/v2SLOa0RV5u49ZDOKgzkjGRE7QxSDHIng7a65y2JnioUNu5mUgOyfu+MisXIvXQgSHug0c7SBosDIoQSq85s2T4te5mCP8aCJYtErERR6CQhdw6cbFgqpAtH1UuzM83TIOIzwwyOSji9ZVgOFRW1Coi0u8hL9advZy5UxIPfd1F73tQr+0e7jVf1ok+9I7zmITWvVc4jyXR0PsFXtLSPSwt/OfF+If7AxJxSvfJXMwVX4MEwk/THWF+IWFpvUuE2Sf5uTRNvPjIxfPEmH2H83G03dDyyW3bVWgbtGcDa3/MtAyDPFa6ju7Tf+ZK/4ZdCdZoaDYTPfwNdaR7jLnGN1NBYMJcsLmINaxAHZAHom3+wp/HfV26+52rGBswMNV1XmID+o389anFkVas83K+rIfE6JFg1CbvaFkSZpo2zi3pGIJU6TQvdsBKDSR/vYA2LMyKjcXq+RkLL3ZslPdLAOIXWQhzdgslQfuyWoI/I3lUV+p2RlWlhWFbfXRWe1JqN0yw3CcYs3c7zLBKoSVODfm1Qrj4ivCmMphPTs5xa+6nfTHFCjWGk+rsnbI5ooWgL5YwhqMjOzQYJ0suqOng6HoVZ1pbXyrpFm4MiSwEy3MuZ/WkHaJYky+mh+DFx8ptgdC7eY3uRjYMVr9HpSIgyVM7m4sMRufmFNHU57Al1ckRgPaHYSec4eixPK3ZiZ7lrK7GxFS9MAJEZ7Fn2preduw4OrniwYFCqvvZfjvWC+Vk8SoYsUoK/bVO4VOZHY/yyOk5ZEUlNB/8BaCmW5K4QFDiVWzSGVW7YUPWC/m4EJ2OysbJTuvf1x1juRH4KlN+aC1PZiR2brehSCMV4eCs3SEYZn0u9Mot5wJPXlRstn5NieWCVRQN8htx3MdFTYsrhG8TPjsXfS6qD4BRKLjGPi09GkP/y2WoJyC44lGe0rEekkwqdqL+h8GiJOURfFOkINS/KcY/BbeKI40nJaxNg92s8trUnuQ1RdXKKtWhPH0CVtLhn6lJgtoSLINAbH07p30BXHwh65vMhw62Y9z66n90KUqyu6iOfTbamE6edVek/foM+6gRMPvKk/U+uLd/LwqLxAKSWO+niguVTLplCZx2v5uvrR9tf1rmJNP2t1Eeas172dhDCIog+A/6H5EJiUWd37akGPlpsS7c8b18m0GfKcfBlTvz1Kc/uFRBhWoBPaJ8BBi4/dwTcegGpQoZ8WRNIw5ekdx8ipjC6u4NYPrp83ABIM8jdsOcUiv4ikeL9DgjKFrpTJ8mdDYtPHTWbOq42J0MAeOKyAZJ0+VdGzNoQlMkaM6ZwPAYxJnvnwrRHt7DdFmFWFMLHn0h+vfFsjWufL7pws3wrOlcAy566WDZwpArgBHqamm4qGgJc+s4aSmwMzCTq7CzgCDyMsAG4V6u9EaSr6+18ecIv3epsbtaZHDlM7bzBpAvRxFAsapN+Zd3Dx0I8JuoHHeKgHMrNfyokAvy3SxClRYM3/cLT5DwZmPuKZzuMQmrbP3yRh6jg1uxUAEVm+nvgR9Ufm3AdH/lu5j6KBCIqvbPGi13vr8MKB5Oi4z8ZAvoGZm4WByDhsa57IAbqrkkP3WkJndWs8YooWenbxaHWXiZRqfBW56PopTuof318EVZt/23a48udJsCA616uzB4RyzNB6LDYcWOdLHND1RjA4ch2U2HkBeQkV91qDLlVjxxtNesYN5yNQEXPHCXyyZhvMMbsyk7FviOZMiWue/D6xc6sJFBnPd8N9UrfHgTYCdM7rhv1NBAYSMKxf7GdyD3vD0rdRLoJ5eHTHhc1ZLkOCmGfvD+gtRLAaUpvdKO29zq4K7Qu1nWp6OiyUbG7fkwXooBGxVusCLY51SpEXq/ZUyciNHYxFUNCq3OySxE8+5pBqPoa9xZxTIGJhKInpv0+xi8A3g2BL+QCfn/G8Jy9402IbwNDfZ+oU1W35l6Qp20e9BYrWYXFR2VnVAZUA1jIUXxhm4JM8wb1xdDpXxHvB2IEsWqvDJKKZ6P99NwSZjGHuBuSsaiiAVc2QOu/dfKsN4DvlXrgAHq9gdMX6EQQZTCIWw01G3GN8LBnsxTgLmOTyJ7FzC4RoOrNBdubWsHh09YY5+JoVeEWi2VtAI09ll+aAgAmxJ0hcJLvyGMAokJoHlXIg7c0gbgRSQlqkhEwQqJaohVapg98HqtEX879tTvSuX0h9JuaCVsWUKbDEqGxRgHILUGfPW3M/2Z/HjWJI8/409+plOSnii55DDAyxitOJGyz36kgK/eK6i9ougQiFjGKgYFofAyx6MWeH+k610VJj6zvC42CDFVoGhZA9iOJ4SHMtN1V89K7dmtagBAvyxZVl5V6EwOwUmYV00w5FSBwdgkY5QWzL7ttDzftbjMMrjm+YIQVCxDRAAgMWKGb1yA+abSIP/2r0oawH9D4H50Pt2MDCSyzsQbpGOEdIyXhjiq6bh7epVmJHupBsLdRDC3ClTnl2KQ0rEJQMWg9j7ZKr0QFwpOYhSho73qp5G6+sdd2TcwvsvhHv5BpnkAAxI3J/xLT9Hw60godb7LmtHtQylTf7ZkSS+Sx1NWOrqt5XIXStBlMD9dSv6eK+X0/AeXwf5sGl1MM7PiSmuXYymBJgCpVlNwzck+65mS5t6PG49rZJHTWEVAGa6GvNGPAEcFAhI3nzq1mvauqeQzk5Qyn9mG3rNBUEfMXByiWOOUBXcQHYwS9xvRjMoDVhDmlCaL/0lbQ1MMSHfj9r5Alk0VdwChqYouZuhKYBeCAvA1rxwkYKgISU41xGk7ygqUkUMVucKH1nlO9YtobylK2ilncUHrnoCMk0Im/3ocY9eaJICCiA3IA8g/NJeQir7YGImbj/upRAXIUD4DB0UYShYlmqfA3Sh9ddxX8ZhjttmTUPogqtegdC0r5p91INXwLRb8Py/lGLuyztOHJMMYicQfcY0W2fO8+w+l71uUobkr+F21Nt8WY1kzJj/D1yrSqQik6z9QgLLh8MlDtpiwWqYqADqA3eo3gpDV8oLW69EtxVKpiypQX/B41Cj+XUsOQMnba+Lgxxe59KikVFZzsUoDghXu7xQY8dfRWy2yHgxGzX5ExtjdUs8o9raL0hnFGsYzBMN9Nwipue6Bc+2TEep7YjR4C8VuyJePgjlRcKcOhYEv3yWQr5TRUHV38rGf5FxkUMMXpWr4SW6dZP2x/qxudZMgTWTuaTStZyDkVTfIpUMgeiLa+FM3Eg+w2kjwpBRF/pij3xtljW6Gc7NBgQvlLeHpQqmWXhPbegcNfzjDOejc7DRmz9hgR5rJlFeGVQ2+/Y8jxbNgWAm0uvhe9Y4JiodwrzDWAxaNGEPeRvBtgla+DO9BC2IbDz7iKnP11rt1riWBMWdZS0OPSzBy1XmmzTgQPD2QIrvzHO/FYRkcUmnEBib69BrlshwjW3zCMK+OtypkyDgYvLdgWEltPOhMN70o6QdR6J77mzZlydRYA67ZJfLoDwDnEsv1ZTjC1EL9SazwDUAVZJYKCAE5k3owTTM4SriCbEO0u0aD1G4lkhgxdSwaW9EZTs+h62jWzFMGxE2IDssNE4PkbR5OI43aM1pxO4fCk+uw4m/E7JyuPtVJLsuBMYFwidrdHInDAzX+GO6Khtqd0Jw53eFvmHeYErQjgkhBsEf5W4H53hwkKvhV0tlAlwK9wpef/vyWaPK87C4sSEsEPiQDOe2gjRrdkYKMCA/FigKns0J90Xdxbc1P7Vu3TuxcVpjQ5FqBRow0GjzDjWqAtitnOewuKcRfXo43GM+c5n0R2IaFmbAZpiWz8r6klTiID06STcdSdZeUfGwOfra5PfsA3IoG/GWWuVOJOAWttXeWZL3KBx4V7AXWsXFYXBj/dvDfq7N0n8uoflnBxR36aLmfPDaMn9Y/Ub8JBDkT8DehaAaTTzHZQJj0ONEmm2xBEm4GjUCEDGp7my9qK3HBu7qujvVljHrLT3l9Rbc/3PzWIK+oswTyam3XkZji5PXaQbYedqhqN+SHIHtZkwz3AxD4gilqHBSHRULb6xMaih7l3Oiat1WRNA0l5b+lPtGArxwh+j3kIyn532B+gZMNvxgNvdJHQv++qvfOTCW1b7PFZ+B6YAOWPSxf029mlwqKxFEgKiOLV7By18/lpfTUMDO8Cw5h1EJ7sIcZAzbn3TYUDgT9KQqMcp/0NFbYy5Rua1IKj9NvFG61FwgoHhxqhi7XWpwDybIyd4W5WNdrzAZ4yMp4YTcMyvFpax0d42OJxEPINryyiLcxxpVuGdOeOie7EVbRbKYnF9YX7F0NDoNuXirP3sV3a+nGl7ADcJrmMgAns3U/yg4pbqemLbXr9XB1RVfHK3dGsUCRJY4vPBxnR/aFztLoade4RJK3dKOau1Pa+pLrR6HMzY8Z8c48x2jmVdPeY0kUoZSqVbTRSVapkVljNov60rtaTlR9dbkCUbJ66NAhGqIxS6n1drncIDZqfa3JeoNnJNSsntODU/4mZ0tUqRAJiFXLxiBNXA2qmjqT7C8RgCzrYdHtLhShC5RMX8UnaAsQd3K2+EB02hqi4GaSBi9lHHgn6KXfbZ2m1xIDOGBpuMshAYHeNecGs1IKBiQTc+7kn6jwDbcvboBj5HWijqFRx2gssrDhFHKhMZyz684h6DesJedaOVcRYWnZjJs7jFD7UONG5ivBqpihSAFg20YczRdaR3MGooBjlIXDjbpjGjLSZw4WnKqvimRyz2JazDLw7qzVk1CnOCMslCumddV3Lo7HYmIiQS7TmeLp2RJrrjDaEswqg8ppxCRFgQS4lacLufVOVZFFFOSEOwTfFZPHSkdRyPNCpI1TgbaJgCRk5O1qZIqoHpFMyJy6zConri0uJqPzigiX2ZylIVgTA4WNkqVcsWDfeGXuOkzTQCvecOditpFxku1RDGJcVJ1KUkx0ODwxHN48FddLQ85ECNYUY+hMVZmBcC5XMEnNSJKOwhQlL/A/57MkxInEpkfY0AREo5iMX0pWII31903nrxcsGfGSHSgUS1L8kHpfHtYqTot+3Yai6svIWuxokAXAyMKCrJcgcXeaD718/gv0hXP+C03Blx40UXpzU9p6TGI2Pog0eXrK7AsvFtGR4zkL7T8x4Qobm5UHwnkVOYwN5ogTm2pqv3VdyqDqQIgOr0p1lONceXrjxLvL1XRxYWp+D9XvFt8ErA33NaitXFnV/6Sv/k6xEmgUO7808fnhahBHlgcLpnrm30iXzkY8OPZjlUnW6fhXiJffiV89hd7897XcHD4sudJIRxP7XyG2illQxb0ttUjAvzxa6GMeWzE6Y8cQ3cxEOZb+x1JUyhIB1wrqgFkQaSP1x70F0BPPrV8PqgiFHvp90qb86f2g/4WnAKxDeewv2N10FanDs4o1pPX+txkbA8E9loiAin3jieVXgIKNDM18jqzkZkSz1pHFj1upDfkdBtPqJGWgCwR8qaPHxYH2Lsr0DJxg1tT5ihvK5h+/mo0RRWVSyYoLmonqVWTM3LMKYfEThJI77ms4pd2RNoZ8HkSj0/uW85Fb0OTAooT8fpM3sHZgb1abCEODKysr83wBBxmbXaNiP+0EWiEu2V+VBdxpd5KWV2NWKJUPNqYrbHhgSIIS3FnkSVdKwf5Q5f5LoF7Dvgs7qJVhagbAaItGBXeVmkPWtjZQpGj1NZZ7XWeEccfu8/Pje1EamXTuR8fcN5wd99bS0yfxOuL+epSpBzaBGCGOr2h0+z56T57mQ6po9/X9aYKNEVgLw6U+AeyhYafQ8wCS7uW87IlkeTObNFwyj2OzS3P26FC7OjdT58jwYhaWY8z9/dUs5LTRCUpn60i4DPLTXJUN8/3NJTQo1swCcVIK85WGKUsMxjPme+p5EauQKRS3mHWUlNuGkXWh17ntMF6KMqz3Xl1/pmOfftr2wXqiOSHmcTLUm7xCaQjlHIb05x3DTYipLx0YhWF2bC9NrBvEt/Ar3DMlp0pNFjrna7HIAzbRzYBVcGkgQ89sBpl6tRExENp4ArTrFhu4LOi5omREepBlwTO/mx9dVpdWBlW+oAHOOVxGp7x0qflgURcXEdo1EuPA8WVqiRX0rdxmWyIuxl9j37wX/lCEDorFJSEZooD0DFaKYduqWwJWkVI/oIk2S7pIBWLzDyLEUcohrvJAA/4flNk8FkZpmD2Iv5q+n03dpSEorhs/GxncOeLVAA8NK+WlQ2Q1iAsjsXGgdc5sBmwHl0JPwrIZUAweCL8+QBMcfaAL7lcB3t97OFyOHIXyI2+pd7BGqFxcynGHJkLbhVKjmvl1mrcwJ2bON6Ch8rx0f5umsHCpoGM+pIR4p0Z9fcxQfBDBIzK0e9e0LO8IFkOwpTY4g1Z+C6jJZe7FwJJY7B6ACm2k4V6gJeFdhyo/Y+NPc3wLcb+q7Ua/mGDCpdcXKcFXeKsdJf07gJXp6QY3Y1kLrng46WjXlpIXQdnbwZhyMU3PMoetuUzGVXb5003ZsHc4hMylQ2/DRIMNRA0xZup8t9QGafGotUYUB97Z8Td+4y3nlyo//edxyGvVFlP1QlgiKWtjYqAqIbaJPKn8Y4vyEaXaWmbaIW92jiFbqj8N0XF1RMPQw+liNltDKzQOCANW6AzQClg+qEqUNOa6stipik5Z8opVGxqhgvjtuJniRPF7Wu1cz6IGFheEIMgdsaV/zzRVjXPV2yzbwqMdXYy0Q20Z9KX2giLrC6Ee7rEXPOf8JVXE2at/9QtZP8jp78MmGD2SAhs4GcV5WC7QFasb1KIdzyPQvEHR6uergYLDemHGIa3oPplTsvEMtg2FLGBROA4HyMdHcV5mfx2Zz86RXelj5qNb/A7LoOl1UnT30jP31545eY5kLKW6XLiwdnqR5il8aBe9gzm52/0GpMqcItJ1mraZkGUu6SfskGtoAibr2IA1BCCLIKBtHOS0TjAzP0JWMhhT17l5P9iCX98+pFgvUG5ude7PZBEk24nUhv4CSE/1sZ/TBQNplS9s/D5av8BX9KdlR/32FI7JXTFMx1y8rgEbKG4iZE3LUvzMQoIPlrmuldr1rN0+H7cxlWF/ZGdyd6eNoL5bOcrwu+/DxIaxwqZEhjppaxA5JQp+Lc4iQOvedf8eA9/qXpsht7Ugqu+L42hpWI7BH/lfVmt+Cz8GNC2YBEMqgtsh8nP5ZxHh3vydY06s6aE8X5K6OSusZdAkN8I96NJwKAfb7jtarOohIgBI6qJ0QRfoMGXzqc3FXayrKCeDZ7KrJsYENeDwupppXFa422FsW3hCeJCdKFzgbpCNHtkiCQyx9q2uX3PJ5QnVXVoxuVvbnLrbQJwAdKq99s6bDN6d5dMXn5TW/J6QeeF8hIC7Rb6rul49MyT1XZcNqavTkKd8ATiH4RJIck1AmfHL54N4q5++vmi9nhdaIEowZ8fSNIol4guGJVPREt9QXuAn7ROkxiUXKK6ALGyuSa6yNHTboBf2oitHa0Jajk3kMvNwqtUrtDWfsIExer7um0CR2GllGP5g4zuIVGbT067CJ0fL7HGVZUndlSPZWv9ukWFXCsm4a+OTtE578Gk1SU5lwBtyoUlg3gAFVFYKlwI5mDtARoRdO6wFF15noLW805yUtbUXopOBWhRCscIqklAFMFXJ4+49PFA2iJ2kCBTXKViSlzEYIuxXQvSIouPF9bF9njtkkVItHIzxkKi+8UATHTZcv5oVFAZP2yMkFKhQ7bC6go/dsHCUCDch8QX0d4y5+uTz2Trbw78aL60NaszOJx/8F5g61/NohrI9n0e2/rhuzM8RRj3eUN/9SxhoK+yGPHfoUBpdmtCeCFZVnIkwEROd4f4vGD0b7ozky3T/A9Z4Nnij7CdEXmFUCp4te1sLB+YPutYMXy5LvfbxKHRFct/f6Rv8EwYw7OcmDQpF6ywStNsNtq1o1sEF5chpK0OB1Wh4J1jJ4KpAq7iIUCtLHpXUobUwEnemYv+Zz86m+8mTWlfP/OTk0IOOivAvj723kuRhAj/fJGG3KnjG3GjycpxzyJK3s9+EJ0OetNiOxKiqTSeCNwao8avBaMhTY1mIT2FUKcJ9wlhK+uKsJWtNr1opXA62JfEw5Mx3LMCYrUVRw9peoYovdPXiDGrt0BwkPC6J/BAWrJuxUUxoJDFfAQF8z1o3C9xvcu2IKlkxe5jNOU5auh9zXdhIyLDp5Te+B2D7JZSAilu1NcBLb2EeY/A3st9gllaPoTKPMs5Ypiw8vWmNk4fC3WG0nq8rj1epZ2GvabLsyJag3i/WL0huEtrHVdno6PFrAh2OBnwD4IINOFLizl0KswapE/rAbWpOhOLrNURU3KClrAxWcpE4SlovxYk1rBA6ul7DpcfJHbgPKgZZeK55LS1tMZ5Jz9NNlamyVz6+uOVqofCEahL89qlJdUl4MGw8nOexuLXxmkaUN0LGXUsa7vZTe8OcBaXEOJmOlXwZxvfkYRKktJET5n2Wc3f79IDHWsI1s0+QAuFoJPhigSl242NHF7w1T8kEo8arqSh6vYYIjWSYNiyDoodNQ6CJnmsN6HR7/JgUxwvxJnuDYbiEA07FLTrIIg+uwX2Ag1u0ThKgSjk5fDw+Oi6BEqNxePmjLOj6rwOiaatj1HA4OpEn6cwbx82UZflrhxji77YBJCDvtLJlezp1VG3qPPZmLReQfTOKapOxuGLmYLxqsVyv+vszVuPOu0s2cYbwyXC88B4xb3VsthmYjsKb5VjFb0bBfQJwnXpoEO+w8N6KSbgx9mYtV9gK/U+aL3ufQBoPmSN3Tqc1jp9oDaI9fr3um0NS7gfl64jDvaDcQsgElHbYmRjc6cv0HsAMCUKPvqLCK/i5uc2J9G0NOVD88a2WoGC9ApGYEfP0WpbXBVf4hvcUMUJ4LKNRdL7H7kp7f00YPGDXumiGFDXpzQbr2qN9kwBFE//bth/fEEU7wnF857u8nFMku4GEcJQ7jdAzI82hUoJJHuJuzhZXq4pl8zI2TRlU8gAFm3jEHLRWIiI71vklsKEMiTsSvVkOEqE65Vb28jPOpghSqEAiXcWVs5TOVgRcbOgsfEilx1XLUT37qmWjTzFXFDHhvQeyFUURf3UZJNCH6uVfLgYfAFRO4gi/UkKtauLkxaLcneUbP/j7vPa0TCOrFY1U9EC63omMU01uBIqXc9rH+yFtZeh7xrZ5Ebdvr6ZENSjoFWIIBeOBsGwkRFffgjhqV9f2gr1NN82sEaoHZVwF+jJHS0JU2mLaqsyYo+loiGEBvQg3dL7qBduFScVUkb2j9+khX1U+xpwubuCqeTEqBWuwzcQMmvPQheIRI+exXidsXkee5ORd7Q2sYeTulnyDoBXN5XdeyrHJ6XSgMpfyR4W1WWrqgYwW4dDEfSPEpou77YzQ5+oPFGCRVRN/E50yIuQcoUIn7hlS25K0ETFpGXLZRrlrDCwSBirJOYNCZiYxW4Por8OWYSmAJ7tvhy2GczJf0Qt5ZddQhAIyNtwa2oY4mVZvNjmI1DAhfkiNP2th8GGTldH1fp/IbGIHyxJdELkOl0Zw09RDH/mI+13XK4m5qLFZzWO5ELgD3ip9H3M3P6Jc9JDnckoj6hnMwVHFN3mROzz8VTxJ/fU/uQV5XR8Dg+wgAtvHvdMc1NiDrSAm0dtbkUxwsagvBSV+a9H0H1FC7l2DVCfnIKruOJJl6qaSsK3pc2fbGtSlzq8pJl9PCiiy8zATE6JgwVakwm+m2DPvuZ+9iVfGBq2yLbmOTU0nDKWXFQON0nlSuX9siQ7qZiGVwUEo6KC39Lm7pFw7+hPXTpupxa5/lVZ/kdgXSRNK28tOznWEfCn37FCC5bg9myhSCh94OJAfIDlAD99NcudYtj7fRtYAArNVh6cK1NoGwPFm3gWhJRiwt/Bt3w1N76p/+Pssh7OGE/JgSu2VUAGi4149FinTcZBCr5fdYm+LqeUP6kV2mC9E6KYFnSXUNXpLxToPXbT8QayDdzWGE/lCr/DVVtLZ1tWCkvW6ztq6yn/4DBVLLZ921Q7UIpfMcuyJIKyy7/zxUg5Np4jU1QfgVZPXiYb16dvV966+CJBKaLgri15DEr3kgX7tH/jAFytvOtZ8VeN7oYKSX1UcnrCIHWi3MKk+QE6nGUJxontTQWmD9UumqjuiBE/Tut7OCE9SxJSMGWmUKfY+5IVrT7TI3jw1lJHsXHToG9fXcQbKZ4Jjy9mmjDf+mOex1gwvm01n0HKsy1esg6JwhZZgNpzPTQtaNc3gd1qa1LgKr9cPwbgnIrcakhi3GbnzOlbjYKqEI0sjpu08WBl0xGggtwXZTW0oCsxRvD7zfnM3cneXNH3ofkzndJfO6S7dpsfpNj1Ol3RNl3RNd+lJuktP0n16mu7TU7v7+fAbQ3BsT/6F9p5gBQoiQMP0tLWJhp34ZKlAkhKcnW+VDOFfsqdLOpULzDvnbBR9F3ga/2OnwMNuYegL5/cLnYR+cNDwXlQLbNSZk3910ks67aI30efTJoYpM/Exxw33pun5ZLth95v6fB3ab3NRBu0v9jL0eeBBBmOczLGzPXnYiLCdAQTgQsisDCKJ/gu/1uZV528YgQeQztdA+GZiCjExyEjmOkXp/pkyKyJGZ87mkXpGNjjizLD11hDCzSjXFVaQW3mElQuDgBQIQzlBi6anCJnyulwqqCy8O514+33dpAQo2q/0XF3iiKIFPTrb4YWb1rBPXZiSR7l/9rHV/G6wltNmNmfU8hsrjQYZgeYdY9EZHixnFHEF/me6e79lr3wUoktXONy6nia296SXSVLifF6kp58vaDBr086mLZ8S8ZpvYQ+MTfI3G5Uv+r8x8/yvrho6RnThGko2A4aEETCUmH8DgwbwNLG9J72kp/hVRxaN2SbcUCfaIb2CFhLtwp4aI2UEEj8frUqDpYCvcMWnyPoR2isse7I8+GUHizD4kkow1v6WNWGrVLNWOf3pfPg2oQBY6YRPc8bvtO3hZwunFNdPYU5pkOjoO4JNz+yGkL4HX31pmjTZP6oig35oyoTyDEmwRfWzRQcufN7NqQPaFgUZJRwr9f5iN6UGb9G+nJy+vZ8PaaKIIimCeKQ84zvZuy2Qwa0oZzmvoRh1ma0EbDQIrOSGPHX1ylYEfigEN13VAZ9jwA1meggfwOqv7Un9elV11joYKRe8Qb7F0lycSrcAe+CHgudTI9IDbfkbXGRWSueV79h6PLD35MPdOwR5LhRQhK3jUfAl+KgxLYVSepHXidV1e+p41q2RiF/qDxvyAkcAD5doJP4758iQaKs/eBOk2n6aXi18Wxja2un8IwwfTqZt+3n3cIdLrXZUXTndPbcfMJYJNgXLV4EOarveoNEEKLq3MYrcYcJgioWVelMFXJANcLtwvP9llF0HUcE8GoZKURkbzKsbWu2AmvczUl6mcYos14GNVwl03uu43V+7vkaeTrHV2F9aqhObiWr4q53gRwcxF7o0cQwidZLg9Tll7PJ4aUqGK+kNTJ08pCIjHK8ojLNhexlVzmoJQej4Zr0fLDJsRVWlG9sbRc7FjcTLJ9Xx/MuovzJj1lgogoeqD1fTQFFEaTSHFSPzTl1ASyPM/6odAYb8t9/58lTHsuAMreD25ZzigQeWO9ffiDaWDUGhf9kzOFk7LhAbuqaItckINnBKAQCPXGGYhi6W7zTCr2yd7ErpHroi2uNMBe8+KP2y1M3pOADgMoRP3q9l5MfONN9XduSCX7i7x4jw7be3maoNTAOuqGc23EMCW+P7Ir/fx5ctowYEx4G3qHnGY0Gpgvd7M93pTa1lVEmwSKwSXanDlIuFZ7CZz68cw/MmIrqFIUs3LX9F/qBu0RL3weiytvH3d4t1o93VXF3+G8KDX3muEsjo8EHIhYeWMLEXuwtXV366+sPtl2l/F9PiJ/xSX+0sdazVg/6O3zOmKvNHku5DKEJkXWFYMmOIk6C+NgoB2vrxfEhf/Jf3PtRidW24cx4vZzc9PnGwdJzHm6JnCrYYgFilI13AYTnfa8W9Y/vvYOMUfC/GTcPe6TL42fY/b+Zlnr9t01jdnAJ5SWq90wYMukGwVzubaQ27JQKzsUEsH+7Ishzx29SizER8WTIaA+/FuH0txq2DWxeX+adACaXgVeHJ6J7u0o+pSCaFl0331fxTomncVNPv2+BJvwbz8Tb5J2vjYypD2jHv0CsWR+nwcQvvQAZ9B+EW9MB0WVA6SSiiUeRYOQ/DLJ7/wIPgUDOGrGy1m1QejjO7neIdcODlsdX4AIuxHlg1sdAiMXoYSZrMHVk5iWdxILDTDu+JoIk/q3/cPrtpHC5LcBZPyrqBlMFNtefdtC9Hb/1tlQBDgXe7rUxn4KIDz1n0Xj4JJ6PFZ1BBQa6X/Sji0t5IXLzsxQu/27/FGa9tNjJ4eVXk6uL0QXIKVxoHyyDrQi/deZNX0pmVoZg3rBnuO5WWBnkGfrUNTWEQDw20f7KMm4I/b8N3ozHKb+l9hnL6c2/hF3gAGTx+NSfpp8EquQkVw1jwJ7QG6+k4ZHl+2wZClNqbRU1E4WvuHeli4+dHG6/JEuFGaYe/wGC09Irx42MDwazaoYXSlEOtxUcbB3T10UXjYIE6DcHf7Lk2iaDHftDljAQveYEOpx/WqRb5ae2IXRD5Dz4njT9rj4LIo+0sbgmquZ7eMU5ABui1Q9bkAZdzp2t69bAzLmWrbXLoiUhimYGoiPfEqBNPetruvP9rJTu3nqaB9tFJipT+d+lu9iVfloHcWskc9SReVvaLm7Gvmg8iz6CCOLMfpaN60HgnlaPE67QN3bs1401ZyzRXeDK6PFobvJQXcag9K50hDyWZa2ecedTAf/IZrVlzRsQxEIIlTtDUyOxiXLV9qsMGXPNw1sQWWqFIP7XlG4pj8ASdIEHP8YvNCmF0bkODGEPCnhYU2Q1DPAX9vDEo9tIV7xhiLzrQ6xDl9o/gk67Bh7qE7UYZIehvmOlKoZpH71emF/8kqqgpBTL1ZCyJcrOGTOs6eX6UL4pEQgjBWBJCCMYuAQjBWBJCCC0ZteWk7dYR0lMK+C4V4LtUgN8pAnwnpOwkgSr4JtfGyJPvJ5fD8Rgxt4Q2S7KF56Ks74ZpfJnAQz4woLAGafArf9xtwzBgwwCsNyHixRSLEbovPggvEgxn+G6NrtOK6bz6JCxNLzhcBXftsP1Gy0dlHrmGhOo4wwOJky9bGaNuG56TMkkvpt9I0z+wx2bw8cBaa6wHLjoR1sIE4+WhIkkJccFL2fsezF0sn10z8QVqCZ7aqSekDJ7q+Ph12l/mnN7MO/VYjFXs0jQztJsHXMpZs8IoN0rwbaNeMkpGMat2Ui3uxusfFeP7960MRqc0MIVoznk3O+EitvVBcgNNxFkxjc735eaZZyiq26ackeeMmuYacqPT7WoHbpjYuddMPtOUeSKBWWNFGWkXl32ESAP+XmHIRZP+lyJd47Y1EkaZlyEcOq/Y2nXOGCgNPSja0JK2NibIaRUiBO6Bz1Jh++xcGgoa+h4J0Sz3kjRN9FEyYhXF7XjLVUCremk5FLJ9mpc9YvgC9oxvtS3azI7ZHKpRn9oGjrfHNMb3KGqPCb+iIr1Qu+wQRbYnNS1WmgxEc4bInM2HPBnKKvlWazjL+rW6RUb08eGEkywemtyYTymicgCStslJGY9NXkwlz/HU5K8Z5C1eNLk1sxxQh3Y6h6mrFyCZH0kXfswjpnn4eWGmwU60waWvz+dYnwLiyXCLuPy8POj2CdDSC70x9T8v2m0QUgTBBKabfU88dTEqfeGOnoNXLeFlTSvlK6doTLwYucYDIkm0y1TRq6d4oau06ltKdaPTn3yWFFedVl7YvymMoGGVobNLUyeuKCcwFRbLPYxyL4uzVPBmqugBOFpiatxVyqaqQ578aCjPaZc7fIBPhNqX7d8Jy+2G4wthihkuwYDBq1wuDL7kU33ZJ/0PjJXcj1ZDCGsPkBuPPIEIUlIngfSdfeZTrsdCo4NeUtjI6xsc38h+S7A0f8gFZ42ee8BprgN1IFC2TwrRXsV4ADso0uKhyY35lDIqByBpm5w8x2OTF1PJWzw1+WsGOcSLJrdmxt7kqCA9ugK8gU3xAxnJLw8T/kawL6wxD1sXjY2WOOh2p1LSUyC/lRMaA5NG1yXXWItHS/CKsQSdv0B1Q7DBs1aMmCYrQ1OMhsLU0wcoBrEtiufIYZaMSf1H3w0guhk5rGvFpW1B2mZ5yeaKCUIiwEHg903Kh+6GGkHjYq7XlOK6ltteTNS2j9rPukJteMnYaRCdPvyOVx9Lo9+nzy94BVnBhvzddKdye8f9M9LOsGkrVS5av54tvgmofxIuvCWyFmBisk9nX1ZerHfWKvPAT3ZzOpY0Zt4D6AzoXIwS4dF0SREKrC5XaoDaqHWay75wpE5kkef8zNgatUZdUIaAq8XM3GNFDJRCxzPWIpM556DKhghc1YWxrPNPOJjOeaHPl9QB3LsRV2uC5Tt+tDpy+BS3Tq0Kr9jW3X9UwcL7oovBXr0s11xobLNlaN2zXimS18ku0WqBRMlwtYLM9sauLPCLTOZvrUr+AJnGSGibL0BMeVW9t681Ngbx2OL6kNiabeqqIqUcd5kUXegJmfehKXvSNL9iMkJrHBVqSk0qQw8TCAxBA7yYYGEQi8mI2tHkZVmv0IK8DQyqUcwWSRVeA67Iiewpa46yD0Tq5+gYeKNZC7lzT6RIjA+6/QdyZq2nK8vjyXfAlQqEE6Z0MwgcOK+HDrg0dH2F88H9DK9LpZA7AnTVh2wEq1gIXTeGGceo6vbpNeesFRxl1kc3V71jhHMLOnCKSb3KjzLr6ClVQVnvmDooAem+naG1rHkDnEGRw2L5/T6hXShsO2BtuzVbHNjIcoeDdyB9RfXoAowPmbqjZMwtzxSAr0GmgxkBKsAePd3NinbE4FnBzPU9vlCLgd81XuE1aEN8itm0jlEd8PM6Mk6+UaGJu0EMSM9ahnS6iOeMb4ZyFqiw6Zg+EIjkbblYOMB0CWoQ3gXGawCK/TYNvzdEfSQ/RLo1kpCQAsDTiQmbzkblpaCqnDKnYtKJaKakjzNST9aeStRU7+aMo81zy0TH3mKR09sRS3E/gpFiMEdfIKNiaHxb/UYbp1bOc+txtSFLrJw+blSwHYiEzaHZnWMk9kOiPqGKUwoCbxm6sRuy8TW/vFs0PpZ0ETHIvY2HZXUnBF7n6spIRsl1RkpU0dPozTufKa3lKI+Idjt12shrj1dEjnDwA2FkZGHhoz0Bm95+MWbToLKK0RkKaTar2nZc8/jGtj2kE8tRqpLxnvKaSMnjJD4xJKPkQZItvqgu3jlTpVlIiPBpBxuw2Xbh1KiVHmhUtdefBvGgpAUPsbggu8kV72VCYETNvD01a3hR63wZ1S0x/7B0Fu1ZKW/4sOG7EOA42MCUqVWb08jGvSCJ7IobnYw4h0Kb9wIR9FZo8p5IlCxanITkZadYg/JKDMkocZCyKEEZbi49TLBzBq3u36Jld0q0T5EpTKK1BJenOGkAdKQlaL/BRsKIvQnE67ev376jcHUxQrApi/Eg3Bkq0ehPl3OgBAGoviOT4QE7I0YwtL7PR5I/nGowCckzYCdsh6l3gabfHNbNna7j+rEckYRJIec75QVhdijLf64dvZeTJx3XioQPSGhxZDR/P6lUyqc52wA6CvDZKK/aQYw+HU7VLe+iRKGVa5xpP19ogcdr+o0pvypQciu6pXoaOm4M16LSFMVWR0Xah4fu22J7+O8Hc0jtzTzLlOTjtqrrHEPyjY4iQyeV+oOHxXzanxP4dXxoexY8/8X236Y7SlKGrmcjef8nmb8pS7pFerXXPqk1W1uL4vt4U1dfShPrppQp26nlsMQmgGFK3CdkSjosIOQTtf4DIkJWEN1DJWRwfsqLGsXKqZJYZtHrpxmoxsTuh5EPiOh5zDWU+qbn15yxxMiAL3o/d0DZFd/UWHPSo5ux96eVEduH1iec/q/Po/fp+/mliuP32fhzq/p30tWj/yFammTXRYumC5OZIV5hovOv7RLB1lF0HrKeeSwKy4bXQe7HYTP21yV9czaF1I7HKHt50v4JurJbzXb8TKaafNFOENcvvTLxqDfRe9KlLPYU9OnSAwlLt8GNcAu/vDCUAAfllMjB4B4MSG4KsgInJjBXf72u0J8FRY/KJF9oWqUTiQ7A1ysCRhUavSxnK5THYINDA6oh3AsKRbX+ifSgwLroDQ3kl79VN6QO4iK+uHqUw6TwZ0AKfvXPFIYK0yNXC+/4uJdARegmw+DY38zDxXHQbyi8cdYxO0YqZrPoPJfDVVoa+eyyfhYoEIHcX+huLwWPwAlY9Y1w7j8qvV0VWTc92Q6XuOls45VQCesPXHkRpWBTfkVIiinBZ5q4xTQAhWXH6TmZGL8bW9XcpFT/hhIOS0c6BrAx/cbuywz8YZixK3x0Gkon1qghCo87+7gNHoujWnAtyXOYDacT7La1l2R5VFRcaSYutlTb6+kNcPeOK+bxxB42k/XsY8hvcklnK6vAjs1BsVWbXqcRVUo4MpYZJ59h5R9EMg3zAxrkBBIwKI0K+TF9RBgrwV3yZYrJ60rcueYTnwV2iTwbYtZ5LTFO6bWnKKXpZoGiA/2hG0QkT0juyzIJJ+GLmYKcxqRqecAaLgnc+5jBqR4/ZoH7qghnJnsrPAANgPqxGdRrv/Z5Z7eE6c2sii0vBYRXU1Yw2Pm4cakdm/8HwFFMeDvpH/YXsLW2sxtR1w5e45pGd6eE2CCRsNJERpShKM1vmJpr9Uh6Ep1y7MIzkXiVj3NQpEtA+4eFectkNkqOSIsIQNgcsDegp9DYyrEXeeTLkZYhSERyY305RAzgEOC6Wr1CVxAvwX1A/MnHV5QiAvxUzHe8/KzyV2wMT5/CrCKeJNr+Ek+uqin656oQeazjjvj9T5gsDNZRTTheUeRHTUvHec6Cn1Raw5+xJ0mWtgRovXSWHtghbZizS/cOWFxu7g4lqke6Oz45nUO01f91nIgi4Wq4tkm5MIvo/MeJrCKUj4BkfKjpi8FxnidAa1G8KiZwHj1EhWP4DhkHhfiicEVESCESIBEhhSdCnntirH9InwsFVYiKtVmvGhRwDqgfV118J3t02XVki52mL6+EKHgvs2x9cTIvGFyyPD84AU9QHDyKu9vrn25ZccY0u3t43ACMHnwhvgqIQuWP8OK/vgVIok5rSRYnMnN3rQMNSXnCmX06VtoduHkkW+LJNNgvoJBWRlR6udSGRQa02KXA3YgVJUFBm7yysUyezOJt8mMW9YRmxxc+1kglfeOjeK3qtl6GA/bn9PmAjTtTsLdPIHc6iQMCLSuDNmiqC+LhVmo+G38nDirmsGULDGmA26D0uMbjDO0keJyYNz0sU95bVTDz2BcNWC0u0oHFAL0M8GHOmGP/t9ZP1gqesTjvTq/QFUnbYaYgm6X2/P9eUsQAqaCn2yoQzw0t7yCSOKjthVYittuIkhRivJYcg8swEyZPDbIvKMq2iQisrH/q2hqpOETueHWITuKWj1Eerf+WxkJlNfkaMpkV86fKf5ho64bGd8Prw0w04FNUU4JoMSscajiuk2e35OjNGaHKBNChq9DQZPzc4FDt8tlmZhuNgr63sz+xFw02HFqwZZwo4lnT48UsFOPbd4tdd7cc97ZnHgFqMUgT6NMYwHbtqg0AhtBa1rbLyDYuylboeuhKbNBhApKbhXU0IydmTlL+1zqKPOik1I7kUUpUFiHhI+FQZxpuXs+jWSXfUFfKZmhOkGiyapXmn4HvJ5SE3R4bzK0O8HwgvYkllDpNgSnBKPj6cKixLAemqvo/hBtvGlBXWmDTyBPcbbwap1av5t+JRz8YJu9Lh2koNPXiQjIa7Qq0kgNcV7OWSPvp5n5pfuYZDpLKEj/KfMmnAQEQOOsUrKjXI49Xp0jxARmaspSixKpxEJ2vr8Zsp5lRV64ZD+7IN320/0gk6wJveOK50+ca5LmWAY3vF0b0F+CfJ6gxDFVf6ubSuA0Y8cKeluTLXuRc2lgp/w+QhP2JO9efSixnOtcJCaXvqbBLQr+Vf88NBGvvx1J2vd2gRNGiCeYYGVy/RvAe47niyVVjXRC0FpYHB4jyFIILJUWuwmWF5f5XkcMWJaPPBxu3VH6M8qDTTSaI8XpOT4ARllWWSkZTpK462Y8CpoRjeIqe20bHfiuOm8II2/YJZ9treVw7VGtdMsT5tuxituVWMtBUewcPJqGA/oKDD5JB+qIY4pik/gAv7+dWj/jJosgAnH4GzgjnmdoY/zviSYBF3MFcNQZLknQmcgSmfxTbpxcDzh3bEWPTleLadyjnIEdpQvZh75fwZ4pldPxAImgwWi2CZgDnhGL+XDoCPcMa3xioAhRtJQrnos1IkGiaE5+qq8MeQqDsYgtcY3FfqM/gfwhUv1wZt2tzKLltLO2okOCAHlCdOq5lAnTs4KzHr6tbVQhaiTRAeNM4czM7awPOxivVOAcqMKBu9KVpRSdovu3+VCDpzDWvsjDJ01AopL9HN/jTBiwP3MfBMtiyckoAM1idM3jkOgVow6LF0R7btHqC8wvDuUyfeoCQwAqiEcO4BHO2iDNVLNBxIZOy8nrl+0JYsTBImhCKgUK4mHqSH8lFtAIqx6dyzlTkHp4ioVWcmCOhcJf6m0xAML4NaroZjoSQEwNQMvt3D3uGo5OeTo88vIosQn7uOs8GRHtz8sQCliGdA6WDYCEc6eIrgAb53ODao0z6oRlUzp2VPoqURjtfhRIW6ECKVUV6GYjFztK5x6N5PkF9ejyvav47Ru/c1rWDxqI0Kit6KUWNBksQCYZYCDPgOCmgEiYUq9fLwA4d3xPXWx34/MiD6ZFApWGwD8rEX3JPuvu6C8rKcxa9jNtIdhJGs5IQnZs5O8oa6TZbB8Mprt4huqZFly55W/C2EDyIZH2929PNHFlsY+4WxVazuUJHaE9Ne3feMnwmhy5B6AOKI/SG/58g1n+MoRmg1f8zdsaB1xTE3KC4VCQ17vXC16icEMjUuSXm3t4wzoQw3UNl7h3ccb+IX02LyWVeTLzM4hzwT89IzipuCoiqg5FikFoBpiVE9aTf5AjawP+TiBhYzESaFZC9nx7f/fGQQ4w6CUHVxR6lyznbMvsIK7gqRZH/PwsCe7Ahxwt3H2Sw+xHyO6OQ6BkfzHCvRHvSD6zt4z/V6abWzWARWZr+vB0M9CiG6sxb7NjDcJz0DAyVHwWOkFS4ZTvrFwKHxSxqu0IILVoeuSlParQS7kbEFSyMhF4zIxaye3K9/tCE6w4cEOJwQgkssYWyEIrwKx3P/XZl9UfuEhD3wuVk36i0blWAb4FTheT1gSfNKRHr2Cs8hfe+4k1hk7FqjtC6sbI9KfbXo8RpY4f2Pm1g43BjX1b9rB2Z47wqg0PIUVI9d26CeWh+Tg1eV3IqDtATQjvQpdFgCZOeXcy2cd77Jr9rLDG8kxCzoBZn6fgEV1JOCfgUcgO5pY2sB5GvExL/H7dh/ISOGSN44nhOFbwbEZvlNKwP/hBo3Npf1L+2roykOzq8gX3PYzwcecy3wLBdCbJ02s5ZyU+5Mvq2ooSgKJxO1z/g+ZcEM5ca1PVINepHn3MkKF5EMcJQboI9VLLacz+7vC6j7lEp2UVUbsh4aib5s2jZ1YHazUgkcMsQDK5moY2hmp4ZA6nJBKv9JyxPBc/vEUm2GM+MHTHZQ7CdkBiuY1jq+SumOPS0ziPlinndqSKIqKoHOfpnsY6ic1sg78sMIrjwxi1JIOVsjVFqe11VJi198xEbrJb6ylZA+JliMVPbRRiwJPZZ6kFhS++noq5Q0n/vH98XguWeYusLxQzDF330IkolAOPxxYSSL3Cw2k+ADG2fvBqMjS8Isgo0BY39wlNNeBrPGoKo+q5/A6NchhZ6Kk+3JF7niynurJh5q1xPZ5qd9e9kZc5INZTbU3EkD4xCH4u/S9xYEYw3g6B4/cwDwTstjnUP4D/90sqsFMvDMWrfcnAoil9jCz4QtqSxvpoSHI2dJwO8lb/JxBW0vFNmydhBgpGQiIFUU9BpGwg1Z7WphYPTX6+GAFNNyEsEgGNipiWNx3VFIqhIx844rzSvcVONCQYcHPUmpwI3rKhdeoE/rYIIb9Eny+fMqfGcdKwRUKqqicI/StOCTWMxSKJeGe1UVC1uhBd1ylPGTNFEmeggmelUAcNeE3/Y8TYRwoqNRIkguDNDf1rviT+ec/mbmDCUPBei51vxOpHiRBwSO144qAQAvETpVKRWfJWn5d/ffdpp5ZKHqcDesqQkOSupNXY5bI8qHJaAbn6JXuEeJEcIzDkiA1senmCFtRJwH+fyTfVP077Mbn08FN8op1EOW5RzDNzKTHaSVVo6LujCCHF/d9B4n82yMKCREfeVoshGcIy5Xe0LcoPFiZkExgObeTIWgSghVHmXDThpJ+SkPKq1ICDgIhbc7101gpbl9W5tLy3FCh0Fc2/w53hxmMrwNCb7iPRw6SNf0x4XHoDReLifOceIvrKf4EsnLAyLZ3eZz+le2Dr3icWKL66q1LhwQJvTGVv73QBkAEdw8sPyEUV+Grn0ns60Pi/nNAzXx3oCFutPgKcuH1DNIMIAeXW6pcWiO4Tis9aXfy8YierilFi4UhOp/FhVr2ob4xKKT4AkTy+2MRakReWiAbAGoDXbJ2E2/jA2Fssa4LEo7u9iSYMzpJyhub4PuQuFL4vPIUu5H6sNIIw1OfFHY477AMXyCOlUrJeQHeMaz0c2/Dq0YYqa3xOLX15K9qL/r/P2e2h0fmfzryMAemreYJN9pISbEGsBuPCABLIgjQ3UzdsLQEVlrz2YUpvR0HStKL76eU07t8BsX6ArdQFgAJPlb8ogLRxT3G1rEHaRPhhRSsV478fX/hjSOA4GMHn0aBig8pjgnj0p8Id4Gbsy9uFXdodTNQ0gvLvjpqeJ6V7jtUUHZDJ0rEZShwpMUERQJRf+/Ddfd5anZr2ajXkQyTWYOUpUy5ZIC8FFaNOYti5x7jny/AHYkUrpu0kGXbnywfGHzLEVoeI9MV+DmQlmFTcWYhXzAhBrUtdj/NDDS6UfW4ENeOWyW0tAUyz9er0l5RcAB7xggIbKPC3wpbT+xSNR/a5CHeZQeBWbfm5gG1o1tWnDP/1sDCqB844yjacPDOG5tTzgr+Y634bFAR4vd0q/Ir9JPl6gOIixSfyt9nl50UfLGxcuBktWhgkY8lLRgP/QUEhfcGpJ/aSBTubPY9ubq2koU89YjK1ZFn/VMXgszdZzp9P9hGidCmidHM8kRksI5Hv+2fEIoHJLE/iL/ceIyFOR72Nbb/tcCgJJWu0aMmm8pjwXmz//W6YmCWSWGxYc313S/zX9wwLoIEA3aY6oEml2TXK16Lbtzg7LLBHMt6Psr2Ns6n+lmaR1IacUs16kO87pUOvsuDiX4bo2lshho1EMT4Ftw+jKOKaDGDLiq5GfzBTIdPwM9KYK8NM+bZFHvPHL/rPhV9zcV8tvX3r3s/6wUG73aZ7FVI1B3vJLnRa/pWYQVwLCOGIN1n3dE+PuSQVMnWCk9AZ8YY8apoOAZWBMueaR6AbhAW82R9ISofegEo7bOyRoWidmKsUCueO6FozEtSGaa7pKn7VpMrBYtfxcT5UrpD5kBfNBh5RX9B6FR3nkFp7HP4dkJB8WAeTdjdSjtLHH8cWjrnjZs/fTCd3c7rwQsde4W9Ckwti6/ezgRqf21QvwUcOiy66pr1jf3jKd0fzkUubMcndosoBp9VNuce/uSRwaDa43Ugii11WvFlsTGZVXzMfyb2z94i6yIkm+KydCQjv6wo1nsIF+46ljE+TW9EM8fNo2gQXhEki0ETF+VucYfHHJgvZOp5KF2tPiL8w9J+0wVbOHwxg9Hg13uQ83ht2x9J3aybF3d5jO04qrtlPs+4mnRvbwR+/xgVgwitvreQV4t2mW43QEjX6Cb56ESmMB3TvxgAJ1KJHXuLT+UM5dEVK+dRpAbJ0tElT5Aqu/1aRgbAfKCuLXxUYI9hCOZpEGljxDkSezF7st0JncmsHWqw3a+DrcD1NRkxO9OGcXR6SUzyK94MsaUfH1oRWFc8SSOWkJohOTWXLh/KjIylju359idHzO9sg6FPQ7R7chvqcRosUaqOljnJQoez4acoYEziGDjh190iQjGkgx/6JZY0dZVqhbg2nJj3Bsr5qHLGvEtZ3lWjokIXgv5SLMVSCkBoLkqRNH+DhmQe2wRqcd7Mvjo643Gww6BoJgNBNgC9mo+xrYOUt685NOX2Q3Oc5kF9aKLhwOljkH+3eAUubpU8DedivNUrrhkwxpfv4+O+35/UZr/XFNYeFiyJLY4SVqvwRCO/RPPwhyGiOJ4zzf49/MQ6qJQ1wRMcK1C9yxfTjRnl2XR40/t7P59ssJO+BIX8pMar3/WZhnTubJyZcJGer36c5J6jbDv1fMTVWYk79vyc2vpu8ogfExOPjmfUmjlqrbKfEHjD+IFxIN4Ee8bSX3EznLKHmJz23m9LpS0jWE/UxPsDXs/XyICLHTCU9wBXzmHw6diiQzd1Ml4xmhg+Y5CjIAL5QUX5AvLJBzU5qbSjaxm/ca94wj3xve8K/jxKvM16V4Sw5v00EId8M8yNU6Z7Qqx2BbZeDEvwu9BLbA3Z+PcDgRbvyv+GVbn+O07dDKVMK3cZ2JhI1sABECyWugW2dEZpkMnReH2npIw8TqXvWCgs4a3xTxsFIa8ac1vcyxYTPGLuC5rnjODgdWWsZSV3JzU4zaEvj05kHiNxlJ1jSWHm6EWrOpaPtZx38x/fMhURUKhXSprLwtMM4jzGdEjyhXMoXozCLtYJ3UyAgGX4J61AayfHSYqCfMH+L+Eermna/MHgCFj4VtsIRxB4YPwS279KyhrQJIkOei54Y43xixiczexY5aS4lDESwQX8wzH6+mQ3zs1P1o67LBmrmztq+Vu52wqIIzC6ThJk/WB8DybhWCS593EuzqcUFp48NZ8llG6JnhOzJ0AqkR/Mnrx0wjQKmc8gDqj6l84oOixWv+EhVCdsEyox4gNCdYh6Bay/OuCYVpDrxgQgdwQu2ZWd7JjRTpIVHphhpUeicnpyku4aP46LMocf7zDbxjG8HPwEsZdIoD9QqojJsJcHaPznCp/9it2U+XaUVGWWuEuF/WEUiBbN42GayZ+iA3mkZS8E9IJ8jUlY7seA6UteGd8igJKhW4zVplee00o7iNxdRS3bkdU7SwyTS5Z3s0K9han+qZnogYtUvkOFx1nZ2eaqg261u8eDXLAcUzLwPC1AyQ4bWEzIKwIpc2CHXk+IsxlWLK7AfLWttqX8jmlCZCoh+aKotzf3DIqbw8spHZFx+lYvQL+FfCf7wW/+UWGWYWxXuAYrGvTN31VghFMWaFJJyYl4EmziCEFKE6UcBVfGHeSLHY8w+qKcnyyojLgt1iZlVybnWirhYb1PyipbNG+Z7MaWbAd4m68QvVmmLlh0SNhYwQwxDCJkuXVZkQqT7Ksmie2Ktu1W7hjtWZVhYZIslSURUDtNU31adpnV11W9Lj8ItgC2/bT0levSGts5A0K9uLrzr+oVJhgpF5tHtonjag1Vt8cS+UeWmWSxK2ZCZgcDpCXkmrRViUP9ehw2KVB1uZfaBFB9oa1oylICk0Swuv8ocUlRt00DSrs/Hp0A4Knz4Gy2j+0G2zcI7JAsiet9ncmck5BqjT6of2ZsO8Qh6BqNlv1GodX3iVTnB3Mo5DBLX9EDJKGZt6aTnizeYBK11Y9cL7ODK2+/5gI5ZKj5lMPd4cGuR+hd2yfxgAp8eFP9TAF9rcaZYtLv81w4xnfnCpe1El5/Q1yu2ksNKcGZDqAPRROykuaghswe5C7ZlzZysSC1zsw3QcltyPsPknAU1dHHp/7E94sNuRMK2wuXxw1weLP/QmUMj7EsIFyC7ltjsn+x97eXic+v4fpcF6TPLJmo5qYE38U4cjEdnSPx2Q4eMWObx/HFtoKG4rjWFnobWmdduacGmns8at2zy5yydrO24z+j+78cWeeY0lYuDq4XdVHcqYDLYWyLehCmVKhI4Zm6P08k7Qv3UmDXeq2M0viYY16B35fhW8FUsSAndX5xooiatsHDeKp7/pWmtNuPP7gzsrn1RiT9ZyQLBvRkO2ggikLf/Df2yz/ky2tRb2zaNQYaeXD3pySo50gWPyPXl3n3J7l4td3PU25ddpF3kasEPQjAYVaj0gQWs3ZsFBsc8hgEDBRtCExFH4IaOxhon+fCZX/85cZ+mt3ERRGPTkpVnldGEIipIMTCu6nzgtV1OjAN42mbPScejEXGvP+N1bBsxSGmss0PYLEbVkXbCZZWxoYZ8wHbYf9jqFyCfrO+4hxkz1Xk/4sxilQm57S0UKwr6woaHnMV9h71m+yrG8Klz08VXIzVpik2RmD9IpbemXBfBLsFnOUEmTy7ddUdqE/rSm0eJwKoHXKWhKYD69pl28RRqPACbJwgcJekpfbIPyPs0bLidE+FO0slSZAXSkg9JWNqggqgo/PrYYmVCuk8ls2IZ8JmZDPEgh2p6oZqhiPZHDabUlm7ofY8Qpc/lkjccdIk5pdvBKNo5eYGDBC+qvguQk+aLI5bk881E8RmrZGySKb3AkOFYnI9TWji0fT10pUy/HGDylyidrO1R+G2jDx6HrI221N63NCia4tepJHeEsMQJHZkyw68DvFqMy/PPOVwEhkRHMfHpt6XMowsQvZo6oVTv9dCchb7aRHPnrS65h4dF+8uT+H9b4K+mJ6Zbd+UOeH0UUXwj5xbG/qyzZ9uByQ067DDNzGI0pwf9Ny74nmTh1H3Ki71uQv1IT8kFrQ/q7WOnNdP5lHlgw9PeQn3IkvHspmtDcNlUuRMDmSfIRbI6Iob5AMzXx3w6r+f3/LFsHRs5ZDEjkjd16/SIrP8VZUpmnRa1zJAOsS1TDXHxWUJpm3AHMPVZvghkfkTKQsSHCFhceLIdEaSwSc8kT7QW3luRk3Qhg5sBg3UxCWoHG5y/TPA0umB7DCTDSikI3s9a1G3wWZniWPAcoHcVYLiwWA5EmNNGoefjv0sG4fY+LF1dJw6oTqczDF2fR2YMsJPKx8tVjxGJD2/rcMIhnZTT8+yvFIqpov8UVfLGek60p6kWGnjIg8hb8/olo4b6arw1bGAFFYq2+d3CR3zXVhSmQ6btXTgQSGEpoc4V3QBefMaYoj0ifDxZYZZQafFjK8FMw5oDslQ22EBp2QvOx/OdBg2yhGS9+xmMIoQ3h5xsZ8QOPeDVViOlx1Zb+L4yXhQF2Afp3acrXYy4EcCJU7+ifpGsILwvj9D50YTxyfDwX4dUiH0V8OFFaaRn/gVX9GHMTj8wdiI0sqlAw9fXl5FCAJF5Hb1G4ww3cUcoasJfGLKxTmOs420VUPo5VOAF0ZFoJCqLwPMw9/xyhuGjcvjOu75RGkkM3hurxQovQ4Kma7Q+AXgHJdAx6Uihlg3l2MszfB6FXMgQ9HLxCJoFY+8CkZMR6KR+W5943fOIhUBQsyAQTJzkNUkwaurqkzitK+b2ViTYZRsarxaqvdzC218bUuWgJVjwgjtk302DH1Tk4mgglorVFk0aVdVR1pgjX48JEAMngURS2/QldluKyQyta4IobjBQRtTpw6YeWScBb27OnGGwClDmILoIq6K7hFc1/qlHAnBHkfFN6tOv53zPp2X3KEDae81KdJi+FpBAzJZpiGrNmSosVp1erAYAIC4EjBgh/W+mvC3g1LlAXtxxLTTJG734GSGCsALsEOOrfuMkJ/7fCux2mEjCpQq+wZoiulk2eBTlRe3W8AWDv1dfD9/j9VeXhcKouFqG8HtJdmMxeOZPpobfeMnDn7o5nZIxoebRQff6JwOIQT8RChjZBxrRCLopwwDoyrzcASdf148P1709n2rsXWfynqrZPY5JdofC3tmaQSmM6YKVjxBLnJK3+hRIO0lfGgQMvvjJY4wRZ2E/YyA06fL6ujAnbImLav2cFmfKuEnW7D7cqxmq2NYi73d56YMzY1iKruwRJb2nWMg/Y953nS58g7J+RakLkCvS2MOiVf/pD+mDtysZftv7Ue+/RpaN3Tt4avDEycum3K+azhFfVsOyaFk0rTQz/RcC/Ci6VjjSy1+8R1gRPbkAdJPPHCf58sjwlNnJnmEumhDHHMYfP0eZoiqmLYTF5MZaiKXAwppKQsNKkPHfD/wLIRdRfiBxkRzPwLPU5Vs2uyIHV/gtH80O1SGSdOQCpLdTpEKI5MyAblv0fKDA/F2iMMqJ4Hgd+/VWNlv0XD/75LgbBCuk8ybmF/+KBH5It/R8to2+mSjzbS2WedebKWnGX8H/xaH+kXVM2Nk1Ik3CpIKSNJrlFNH9h0xR0XHTkvRnEgzVUElbo7x+WQ6OUsDS1gVMpirVtC3WZCtf+5QPjdlU1hUawxV+v38V/VZgOEnplrEsERBhzzTzWzLYmf2oCGueS0Z5H2CAXjqmvi8knenbb0XuMn+vGrMmdOF4nJMCg4N60SvkXOBB/V9IdWEUmvqFxx68Tpr7jbjU4viXpoN4JO4G7QStKOn2uC346boO8R1fLA5a8bVd0XuMzF7NWO5iUCVfVIvc4JUBiuXfezFMsNXYM3TZEjgVgfJwY+a6kkxiB/UlR7kFfpjChLrz4mxLwSFhqzHa15GA07VvZdRLCCzYb6ySKS8cTjSkg1u5Hek3LGEMjXa8EtviBGTK+iLrnfo44RIkoMr30t42EJYovP1UvsIqYHw/xJ1/WHZjCZpF4kTXDcedojVOFWuPRslB78oWF616MlOqTl6z9DUtLfr4to8zvfsZS5ENUQ869sooBorwYCOAGa/yA94BfdZRNOtadyvPbYWTqUvIMykHeYpMLH7c/iaQYlsBoQwFFVDzNkJwdeCiGY23kEPUTKhRW1GCmrwYAPPfWfBSWKUYBNPs8rvZ6iwx4UnbhKH6QdweWlaEvpz8PLozeOP60BZ234PMQPE9V0SCiF+FrSzgsHYQ/ppFNp+8KOPbXzeOi1I03to9MXXcaJW79KfAeSLUmq7sk465JFI7dyMNMi7deU/28RXhtJ5JU7mFSeO18ZOPthVKRZq2vpbX5+5mn2Qt3JnSnSKokpVvKSvckVvm3vb4MaKQb/t6YhVw03Ly7BjmdjVR5M5p0gxL05eQZUDT75FG22Ps5JqspkZnwk7AaJWovwjWqXhmJ0XOkeJeESkPMmOFVzBYxn2U5ig2mhXyHbeh7jeIdEh4xn0mQADjflpKaaRyyE1XuuuS0xzIO+oEus3Bjd9TCr+q9cNzcienJhHQSUR93TwkMeZepVH7g87MpBPHDjJCz1EAHeS6TEtc4LaOE/Z2zmKwY6KsR0QYK5YgqzXBuoapIoKjYwrBwBRChnNscN/eL4z2sQK1+6UOXn4sS3lbSjRmfHZlLNzRdq25HSkbWPzo31BqXzX69kB6lPHCNL37LvMf0WuVCeoN2ZWA4mTF4s2v2BWojAd+TUB9t+jdbome/AyVRcd86ImjFdLeCWAT5cTUqCxr3AzDBdS+FpNUwAZtGRdYq1RHkYqpcO4IaWV8sxvp1E8QokcMRebfefKaAOlSXYxugZ8Johx4JhAfOUyj52qqVHIulIWYCKvWSglykGPH0uqUu1Ys0Q5WYAgJXcp84C8UaGcpRVasbihI2yAr8h8MQfvd/KW3Has+kNVKGlzBKEP8AnHcZgWyl8/CjAMUx2j0F1czATJ6MvkBkS8SL9iM3z0G+5WwljBJcWQ9mNVAccrvaEFKXPnjjQwne9afEau7Ck65U4P5JMiGtiDDLSW6xvPAsmdC1KNskTTEK1FkAIr97pbaP1zH9dHF3aOeJXgcX/O0yyUMhMA4y0fEo2pmiAqRt4msCAqzBgHswziEW3kEbKjLhFTKOqS1iFEh42i07Q5Mc8PZ+C9Mt0YBnfegctLgNkryv1MKjQ5YWeyMhAx3kSnNMAWfqe+HgmCPBfwO0mFyGS3BvTgHIwlHEd4g52sFasJfTshep60UwNyOUpCgiQsvFf9lCpSgKvUwUnp7yVLNMmKQpaGlOkDRXDduLS5mPkTTLeZ95Ma373DQ127vxpY3v1vbs8dZW0gp0Nj2doAj+UZGvBANJ1GCpFKryqbfSOrx95mQ9qWfH7nMVHLOy5PgabhRAYdteZNTmuadsRPeuzDHFW5q4hHf7oaF2CyOHFavcD+iS28wb44LcYv2ycntTzPx3D7webkX2LrYP/NrXRzdj45at12/24t3WMRrlzcucHsc/v4+wR6NNbFSU6WwLlv01DX0p9x8+XsXwwnUa68LXULzJ7mZHClyxzJDPE72miCy96HCdOEZwX6qkrv9rt7gdW/2RfgXI34LennvZIQ9stWCKCAbrOlfRuhmbQufRPjd6gLXJbe0FTV2/1yRk2Ec+zswCiDHGdOepzKOrFH15Jr38mnd7ROnezWQ/BV4mW+NfKqVYEK5+izntQl2dwNj1puPhpqj4OjvSQVoh34z35YmFsbGuCPUVEIum3IySyKBk7GVD6SGwPhrUqsqiIDJBz707kTMq9meo9xI81/TvD+7g+LXHGq0kUIKHeEsv0nBUiMuJDMkrt+NKSeXLOoh0im+/ZCpUsW+O4bgty2MLSfwbEAaJ2O92a3qnFyT3t0eWOa6XJOTksjAPVbP5csSPKw91mi11g7BSKX62Y+CtagMn2CxExvLNhqI7eMlQp4iMh45E74BRSvlgv9RWzRENbtJk+YDefDtUeIIsUsoEfKO0TlvpaqtR5r4mTKlwMbL0GFg17ztzbQRYiAR9muGhwgmFMVZMRk1RamBsSoTHaXBGFHg2p8kN//pu+kZ5vRCbWaOWC1u3ITqNjGha1eAD8/f7qT47OjT5S3QUAc6C3T/wRkTkqRxn555vqy2Z84kRCBPnXVlKHxvTFgoRhkaE4U5j6s7xCvk8eXIsPgDeH2vtzQ99Fffs4UCj+gcfD4i67xMV1fuPvQ7XUmyW1arN0bvcZFJ9fzunoTxvANhBtn+/jJWwvNixh2U1lGwBHOj56Z5Me7812g1DWapmbVHDTwMran5YCrNu9TPZIR0QwZqlfYyEVKNoXGlDqkX2lM2ggDF/b872kdc2DqoN207C07PXr2T21ybEkmpgXtEdThnZc9xJVH9dJHq9KsY1QWKYWGMP8FoZlcnckqqYeOU90KcnHdVIHa2z2jUvagQGXDOLXslEdF2poaqxT7mG6tI5Wjg+csCWmutK9zHURWRQ/fxWIfr4cBW7Dh5fdIVcSQUWD/S0i0NQuNRPmVyqfQ/prMwMi8P653066/IE2rdvPOTB1VI6bIzcJX3ySUMs+znIhyENqzZ5m9Qs8NSqUkFgKLfM3eDeO91so7z/VPrIPGli+qdxOAwHjX/ENK01VsMTyzyujK/LuEl4eqEnJ47kk9PCKQK3ePxZQn7Kf4Y88Pru2Hnx29Bb/lY08h6z/oqoHbpUJJWJyiB8rP6qyYopd95sXg97IKKdRsZ0qisxHmJNdVunp+QT7HSZk1JYQv38qDgJtflLseyc+k6DSaXFx3Xvl3EtdOdt2HcSeqPcxy6Ma1usK0J0G+UU8ftVOm3wOl8Fs4N0miPg0NthIqp93AiKREONcoASsepkTlU2aoDx+l4vpZrmgqVT/ex2zY03eS4RavUfC7rBdV6Gt0bmenX92io00WzPV6AVsaQ1VTNxf5/KPG2wZnmGKUzzsjIrTkcb69wVChHIe4VBQDcenX33tBgqPCqN2CBmqqShFjabDQK0jjO2VmW+tnfbvY31TrQtx4yKU0oJFFtVKR8CFSd8hG1nT242S53e9TS0vGjNxC+B2Ah2Otg2r3c+bPpGCelt4ixmeZVco7U1eA05Ol9msz9d0A1Q8DpShjhmvbMne1Gf+F3jxKax4LMKW2IJMfex2r+P2AS8rXO0nDbu2BskG3P0vK/RFMToFbGnbN+B7u/S9xpZuDaTCK1cCRw/7/Gwe/E2LiaK1sumLyIslRhphOxR+3B0b5SVRtMYs/ciE8SrnMNXpICqgFPhWaZ2kyBSh6Dr/GqZtq9ZjeZyt0W4cibtEppzfHZGq24gHXXRkZKI+ybad73/p9x0y2nqBDUXOZ7ckm/rDSTu3d6VV39KsrQ+CUq6B0c74ZqHTlNdbPQJiYGGICkmr0u6k8j1yqgcVelqKMT2GjpI8nxlWLrp/Y8JrCzWMdlOAmuWyvGkJ6PswcYXM9HuzCHFxSvH8RjhDWDmRDdhOIJefWqS+j3CUqr5XBlZKQh1a6IyFM58oTXSbWvRGJ7t4MIgFc/RdNYN4ljVMDrs+PxET24gxdA6eNbIkb3tnrCjaCua0LaOppxuTWTcMaNT+Bv0pDTQ6X/XlA5e4Ihm6sXDf2s+PiqdXwpXGu32i4YqGNK0k6BKh2GHBBaLBd4E3OsOYq6o04NaRolKs6byDBLKNyoUnpIzDqWYhhnyqC7SdYvmR0CIrjsHdSyFBDUMYV54wRZgVRX0D2qZVbt9M4WVDJcIrAhfn9K+oYEkuDF+qCRbnqY/3jFlCz9cAHfPf8fGizzwJOEkUP6IIs2MvXAZh975069loTsnwWlLbrTaJwOxhlE6jJJSsJ86uzU0s2lHsm48rgwc1tFSiDcLRn1A2Iuu1ysf955PzioFppRSeS7FHaoTaq8SYj38bQwNnZUPV8nX4WJPSMN1gtAlP6w7kETa5y6Oe4KQefC3ZoBUUO8FxFCE2pymx6UZ2i4FAhVWCi8sGubiIMioaDqIiCQA1UlfHNmWoQhuxoY+3trYKtMx9AkLYA0csMQGyM6BRyA5Ti/IioC/48oIgs5riZ0SHknvJCmYjiqa7DxrcPi9DQu3ZZIEY5LAiN0NZD+nAfx1lEa15A5RpXgsemtHGMcYp1Ec5+Sn/XptQCSgNxPdFdAVCn/hUyUTPD+z/BzBIYELl0sZixyuAHbnh5bhQYfqUCkBR31F+QpWMNaBLXwnqN7b4go1Sm5W4nk0ps+MfZSp5SpER+ZCIY5R+cBqcLCwuTA26DkAC0Z4kzgToRAhxYWf9GC4EodH0XYUG1L6oWlsOdEWW7N7kraYjbNO7oqYA7QlppGwcetecHbvmdVglRQg/jgF0nNtnrgoqNSbhi5cuXd1KtfQk6OZMboZcQ7XUUcEQu5/a/nWzf5BerlDGwhjDGY9N4brUQWJDYSt/XGLjMMzhks7I5tvPpwKDatbdmlJXHfTbUmN4npmCkmRpUtkEhDtldTcXidXl0iJmEy1yWMBxftjy5t2fu7nHHV2lgVhPPv152D0Z08KlzP8G0zrS6O/K1k7+fSHdAplnOaRTQGVa9sGtV7e09UHUyl64e8QPWXSFhxmDlxmTAAs38LNWIPMc+gK5mqM/E3vs1/FVKMycntlri2lA2tH/0hOx234+b9g7R8Ndm6rBm0bFIBHMm5Z31zqRKo6o9T6fo5eC6nOnO0HyRx6DpuF0wqa/MHTr5K8w/hoDRujt1pdH21ofGT0hpMPx/HM4e1raeEX/ezPNFAlava+NrDU9AhzcGrC6gxk/AjiwPqIxCd9oJcXuMuURGzcxSdhAhojvQps2zFV7uItpTsR/MjsBkxLM6J/nzDOuBRfwwR2tXIqKDFJXHE6w4BHwmklpZt1R5vFgCZr6WDvN5dV+303EUqcJOYHTt6bkCaRCpVOlkZRuCzqJfPTfR6Btr+IU63x9qiufx4pPSx8yuitIYH9V/DsJehIquXp9TuIVr7mjUD9pGKYEnt1ci8osEn5sNaqbRqWREaz0bbGxumK9BxFeirLW7GLcHaNYJ3pp3ZYrZB/FqU30ZYBInssqwCv7LuoOI5/AQaE6+dy/2zDVT5uRaaJ2CWS5+j3DTxnQ/eVyDS3TG9r/AnkiqZ4QOIAUdKUG1fexJUfJDX1VM3hLY2/gI3Dv7SnGonBAf6Up9Yj22PtPZQevxnNP2yYXI1RJyH/Sp6mqXsqFOzlfr1fLA8nXcjvFqPpMz6hKIcgjJPTv0bEX8oleZw0nByq+7A5RaNdkoxPxBFT+7nqvoETTrlc7IYIMgW+lWqq6vEltYgOs0UW6S4veS6/RM9cOSrHUbb6rodoJ59r/O0bUvwtdMaIqcdnQZtFW/AeL9YgQwOW88pq2l3Y6HT0Pfyqc1FC0TuaOXc7bkum3dv22lEl17aE8D6X/bnI+ve1jdYK8SlX8mlEYrScIdSui9cxLUXg1EDmdhKbUIZVzs0WKlkc6gY5VTxeRvxVbPhjSqjtAzzy5DcvTOCrMj2jvMO1gqduwFQI433txbCz6bDCM0Q0MsfSJUUdgoSSCFkdsIDqwA4FAflQhy3SI1A0TJqKu1RSPVCL6/HCRC+YQ/rdpqtpMsDn3pq11ApttUHt3cMCBJGi402m/t+i4bk4mDeC3wm8dkBGaOK6FGxrATmhWq+AFegKpDaJScQ8ulxiBWWr3gR8zJ91qcX3ajmp+2zOToh5IRWikWdWWmcFUWA0c8FFRUZCo6NCwNzxPUGyMF8gqKejisrDhGIaoZNsrddTwQiML0ornHWcAO+nunAv1fDOhpPiKIH50VNRYksWvd4/iwLbqENkOs+DYzAvMT6i8ZEDIiWro+92cgyudJ51q+/drmweELCtNtoVVieeEzx8XKMFtJGt6cTTC8EVCtWED6lu/lk8Tr0Og7yjjcMVPp0XYqsbkvwfZb7eNKL/FUELwdraf2WaavFlFyre/nUKHvO2Xn+//wrf9u8BtmWDLRuw0bPzq6f1U9Bf07AEjkrwsQQm7v3+PKefW/jd5yjyOAd3x7WUo2tu1rvyHI3r2TZUIBWH0nYooyPsA8hgETUBdQpX/nxzFvE+aBQ/f8aVeZ9CMCVcL8lkhyhkX2Tiw/Z6sUT80FzO6lV79UJoBTi+DHJGUqKQKU2UgMNQIoLN39soCWkZmEWBnor0HGhZHZM6e5Xew8inDEykz8XiknlhT/8OaIAj2sategSfCv9Ha7T5sHvUgTi+1TUF805dG4aStiJg8dQsJfBZOWNmcOnzyuB8FcHwFCOvqgqRi1SVeFq7Rw6J+k1JeT4LRL3iuEN5uHQcUnTrTRgjKE91ipRVUVXJLH+c1mzMihNRfnOvxe1WDhTl+Xbz45/So5ILMdrWdh1SH8sEEZGIsIc6JVadvRwdVs2Jp7IpAWnCEsVRGvApPNrKXW0K7v+vz6kAhNbGmrHPC4hC26PHrNizhNLLvbVjiQ5QnBnTyXW0nMAxkePy0cRLg7ULwqv+4ih43objv3c4/XigmAZvvuBFtAWEdLJaS1wqFzoJ9JKI00SypTjt6cbRC8EYHAZONTBBkkQGVZhXn0YT/3VdY7sx0+L8u9wwdiuZyIQ0LHxrL3RF+UJheR4p0WgoUydTtssJySIIoySEORuYfzdWor8WdVqU5JhP2ReS5kAjSUwlrcX9dfYqyuwAzNaWv9CvS0nX9aT5/d5haUxRMBq4muZmcBYGkNX8UNewCNzLE8VETispGCDaaPHc3qcy64FBmvbrhJnmiNC4e1C15rJJ5aAK9sVV4rNUOLUjQ1BOo48bl8x/0HFLRSGnlEC3JDcW6B2zcfYsfBq5Cv/8VHvZRQ/4NI82TqLOo1iLe2WOacz2/CTyDiXgsotP92aFPPHJzUAdO/D6EbQFzAK61Qfs1die1WWlNP9Gfj04dmgcHbY2+jkKRDiBKVVDWGW8CxzfAdCjw7ee7iLy28CNmRtbN4hP95Wi/WGb10ryo7n6IF5wn4rZcvT9KSzKYI5j5t8y1eY6UfKNx1eydnwTsOlkRu/gFAUdbEt1Yov9SUB68fOLCDsLcTlcG0REhpu8VOFUMchTJZwyCrFKQWLLBvsJSTDgDXW4DS8WKi3GRpufdSwsI4w+RHbGvzKcD/7hkMXWwJqe6xPZl3eubmV34B5OymZvO9vHORt9/dBucmUkVK1abW3k8pOWOpfKQtaqI8vgOD8aRFvaWJNdUtASVzbRRntmiMntZZU4bkjduC4Cbcm0GsGEdTdjuGPUYjfGXxo/1Cqj39w1CoGw4RQNSFHGC7H2jB8FRTTUIjKJ8h4UuTtCBpdXG6XwwOyTR7FwMDGr80KrcTNjlEds1dRVsxCGYWIyaGiuBixo2Mvjgv4fp1sXPkRZG0nrAeK/Agcvs+H91i7CqdrP9UtnFeHwpdmnkndW/avYfDwAQjZWyBP80Ibdc3wyd1/bu7GqpEw4/1o+c00iWAxHAaEz9D5KtVgE48+MmZN1jx8oVFD4LdZ4ySSmqaixSnpFwja6G+5PMST+avZzkonJ1zIV9+DmvQLmRPpeq7W48yk57Vszb58P6OlEkWRwUFaWWdpwX1CaDFicFO7IWGK3fslJyxi+2oyUs60yyvtYe6eM22EWz5tm10HNHAolC0OGIMA0KOgarntQ2khuMSHH1uG2Su+X0g4BwofJZPZ0PSEqS3Q+JQWZWqfxQJH4fB/Kga+LfZ/GNbvOFb6wVp44630UBbKj+ZcUOylwThqbnwE9a8eng2TbydELbX6FL2X/EkUeevGLcQSD4+fXWL/Ncu0B0tKqy7H24vaOqCePrWVKDZbTTQO9IAbAXXI3R3zHJueKpS1PMAJ80uzVTDu5j/ClU+40wXACMk7jmLKNMI8khFYtp6Bec4HWQjyFFuuVHP2VIJJhkEyhLCe3x4puSPukqOAqid6FqVXpcARoDSjrlE0PwXj4smSeVpAU1o7+TJ/lWMA3VZeXC7dtIBKG1ySPjtE4+WWbkTF6uA9MWdAMM/cDAvbS0tz0vEiYujrZJRK4sstusjxgAnWRa3z+KlWurCkKv2P7IiGl48LJCpc7cy7HPjjHeX1UKj8Vq+/4MR37WqbyyJlwnDMjfEaVhgc0sJf/RcSZLUmFBlonoTYKQ6oqTI0pvopZwQ4gvzqtxJMmU3LYw/bTYFMJSccRETR8pYicAqWipT1BFLrBubCWmdB67TgJaBkg9/NknCRV6MT3uwyWAxMSj+lqC+ocqphZNb95uVoR0oX+eHrNw/VOVNXjCBtKCYnOaTjVPrrRREXA+j0mmrwDroCM3YbuzrQPsYHFCbkPSCOySNO6BJ5xsDuL1ad3w+VDbufSEScfMJZPSVuf1ObKfg3YqFiTl/C3J56flWfRi+QYHTW1s8i+SBbq+WRtAm4Fe61LpVyN4aLUfJSZpPyAmUGZM83iB9IwrjsOkFmszKR41RlCYgv7CRTGuHQv1VyeNQMHtYNsNEy8PNN92v21u0YUzRYrwzX9BlxQFy+VzrkXQmzQNrJjU5MTzDgR6/aP5rVCGp1WMm4+ir7bym002Jk0HBa8Z6mheTB/cQF2N9aa6eG740rNziFzHiQNWqCMcaBdVJknraxJwUIcV52RAoEQSMc5B2/tIw3w10RtVVtHOY0a83asE10uo+tOnWcIJ+EzBWwYctXSA6SasOMdVvRSBIFosS/iE7khWdCzw94tKQGjgKZF0edCgznbRWcfWaadqsz4uZozq39nsJcoOP6FGwNTQp6xOW6JR5vZt13sAS8dSO88o6bX/2R/U0fyH17j4htXOttKXLPLxRRGhCRRV6GyccVcNIObbby/XiERC4aSwKcig5wWFKPqns9ZCxsgYLzCzN37PWNsydUHnkS4IQV9cFyrPOs3UWGPYiB468T/za5jwbW6OLKvTE+lp7N2BplbetlKrU0uvF/xoXLlvJSa4r8hULeVGMNlGrTOrAUexPWcYl47U4TAqJIY5RutoxyFaPMhesCaY/PBGsLT/cTdyglpfqEDzKuax4DjQx3VXWyG60Ti+3rU9jZWWFjkaH/klMrXjjj7rzcScUicXtDHJVLTsH+JhQ86xEP3HSiUf3NsW67a9mzVMjsSHSLTcsyMzI7XlyWm2lc4PS45kP44SbbHN4mJOika5V+YQS0rJJk6eePcZ+gHlolvN88EwEUPoHEikr9vdkPAtnhSbCagiezNgiXHoBbWRuJCGVrRYxVThPS4rahmoOrzMshJhO2N4BBVUfuWMFGk1o3r6QihvyR11SpRy4tDQdINn6/yNRMqxs67PgGM/+vmjuNcirc69R0T+TLIoSeloN9WLd4kp0kyDD0gS/m2xl3BKgZQKo0KvFLiqPia5fmPS4aoAbSaZRbfWyi0iLZqqb3e8ru7K+5FZV9dA217esZNKu1dIIaZGFrTl4aIGYY0V/2rD9F39RCzXsSK92TyWb5tofuwmU7q5z2TJqlyhT6KR8dSA/MrZaSeuX59TFh/Il3oIwEWFy21rS/l7sCvi+8IP+6Wl4uUQ4wmYXI8N3gTX5kxzvzhrUrfKzEGoFeG3XvWhRSfbj0thBPvbaNJLXnijEJHH4/kiUIXPfeBFRMHqndnpvYmph/Hy/GiS1VnEJNe0NpHfE3Njp+KjI9jvvZf33Ux1YgMosPxdwGm9NVU44/ccoQ94kz1RZ2KovZy2HNmiKExW82EIFUz31+OC5tC78tsRODE6dl9iRxzH51eoN7j9RY9RXaYLjMnJUJnbEc5QckMCAYz+lGQ37bXBRvcFjMX0RcFM5KzXFJz43q2FCN4GajKodDPz5V0eT0kYkyi9HogGGIsN+nt+8YSkW6A3ympVS1Vp4rzqX1u8AVXtuAoMxTqeqzgk011hW2cYRhavkm8FqmJA1QE4yfn3SPZo3ixWJD/ExjsIGDUoo/sEGuBAS7vs+EDik53OO4fDe1skUFWaFLxY7BXKfnOHl3f507rOzgeMlnfdeLW9MgJf3nznGJ/f/wxwzuDdPtmbyA0y1EECXClNEhwvEpv7ix6Vg9/nqqnb+FLn55kDfBz3+bjj/0jLQowIWDglSz32ZEBaJTNDb+lmG0pn6HJBdJadZTH3OvzzVZopleV+kPDKTP9HGpa7eiJ3fcUrB9Y3q6LaTctz9d1d4RjWSbhz97JppHXx99TxCAyfp5HEj/UdkD1wUox2khGgJXyevPH+64La5RVn8xRmGxSHxxrf+tZDfYzyBRw5EdZWZHDVOOA7TvCcnVXTFElziLEwVXnzNp/fOm0MbLs6hOQdKtdAdqSFSm+MtpxFMj5Nl8Q+t0jnnixbu1ritaUEmpO7SY+dLemiCetiwMc8IHFGG84GDySqweNKqKIgjkTb3fdQ1bKl6uCNXzIEt+QCXvHeOXz74N1KrnZNwbxnhk8sYo8x/5gxGekH8k9KDvD85Eltlcb6ELxFhQauUdTgVBrTg+kGkjIHjeKQNjHIhDl+oeu58EoPLNBjczs96ot2wGnsfoBmBJECPavTNPtmbXy/HqtiPYJ1pdROZvozFAnX9Bn7z4+FYkb98gaAiGHED5cw3KCEop0wN52i7+6SlmfKA+qMNNs7FTi7lZlW+JbXOdC+xXZh24M7Tk2SrviHdQOSHV81ez3BECk3BFGAt2aIN2VMkfuaQDHmbcdFjzFIlw6zYH26aBtui4NStpGVFhme8/yi3ktY9Pa3gQhpSXu4Mz1EFHMLlrP6rV5NhyS8fGKRtiOIe/I4omNQP4cSKXcCLCqBVNlKZgs54EOLSiZnJZdWEt2zFXGImPwFnVcU/Kmg7chGukFk3YyCWXOiTuB98W/N1nY0/9JLbxN0nKirjmoGTFmwDXm2YClSXTruFT8sOvUiRFqZQVx5iF16FQ2P0ax8YguAmHCObsLuaHTH5Ylw0tnWXslETwQ2UOD2b1jkJ9Pl+3FYpbfG0Iuqw5tw9RMHz1CTHjbFLVjOLAlUE/cP+Pf6nLHSV9ADudFZxOd7SOmaYoW7yYjKB5ZCTh9ATOC1F1XDId8DFmITcoYZSrjS0M6ktkSOBm9psOhwxmKmS0t0/acwqRhoCSH81A7X8rz5k5TjcqmtHYBj34uyNiAKCXeAJqOQfFbY/PP7vxgzQx9xqvDyfNW6wgreH1XEUuKCrGCQ16PatShaTTugHpi60+3Z9VGy7KoQH9oWAn2RlhhAv4d+pDsgNkgMwZ6nFNK2iTl5UfyMoqDOcUU5/M5svAIGbDzFimhSl0Pw5rbV9V9ryppQTNA8WtSr0DATRc1lW8lqhOeEiHOVFPjMpRqp/wffwlWfBJhFX7IzdBO+1avQpOyxk8i4sX/xuWQCN2T8wNRKrH/AIHZy98hBAb3I8nZuw1d25uQSybvFA4/mulvPxWrcwyOthNo+KAuv7LVjRfrB8z/kgtBeHiCxuvkjZBdaPmZwVBbsyQsMLx3oZ18ei/k3diKL+v4QV2I9rHjdV/XK4bCiMd6591nUEjSU9sia3HpjimvoH3sCFie8OyQRSG4xwwIMw585OTYQ5ZRzoViXnIRLMbsHn0c01llfkfv9VIgk/mfxw5nDRvzqKsv3ppDeOMdAOhnOaNo0F8UhZTWuNJtF8YpBhVU+qWkQvWehFU5sB6vtKEshX22KEGBzmBBAtlG6CgoWWIfU+QIE36mp15wQKMSE4LyJF8yDCgxT5i8PbG8G1X3pNf0NElKHxKHOARIv2CnvsLUJb99bpCHJRp4jYwGjUStZX/x2aQBjGQS+aSjZoqRIh4nC72/K/7sqJNYXzZiUraMDPIbf2qYg09TVWGH4uFKwpr+uWSdw2Js1K9yj/W+81cZ/VzYCm7mWjzyMkfDlGVOKR7+dUbOeYXtYOlP1G/Hnc1cDKbE5wIP+u/9t3+5oNr8ZgztXoVYktFYxEctaurBCtnzUXrN1CbznI35+MUsfvMuE88pwuIZtshoXpJo3RXWNZiUjMJgxiysT9b5lFLFx4enF5KFoM5m07DIuyRqfSKlptffCl2SA6bTgd2iw2WnLPW7+uU96ItkwPzZtjMLU8yimDflXjZ96Tk5PhwHObxonYxMMiUbR7QV2qOnBlSV4HWJxgzFZAxvOJPaVcluzbeYPzdvdHMCuw2FRIF6QluhbF0mzscd4yaxJ/3vSFcl9/gjVZ61VKS69awSfN32uviTZzG2Wx5j9z79iOHOrwQ4SyrX3pyLlBrIo2bdagDiyMBwN/pqePcgjlTkEljqDSp0JCqn35Z6uc5zvt59l/Z8EmYiezA90+TYXjBllZQWc7vMQsaZbmb+gPeBaDuQnmxt0w3DjTFiMiOlHFGzxuKUZyt6Z8SyLxwk7lCKN7viXZy/9Js/hOwW8Kr74y9bmqlSIZ6uLTIOVuvEzh2BKHWYUoLl2mTdRLDKSDLhBL+YqGZwg4ym8DT2p8bUIfGHrdsliXXd4sH4yqoJnYXdTZkTVhiIbwLnHPqKau9fLlBe2EXzndnaRt7PYPGUWWk+K/KZeCxNRFMB6T7fU3i+HkEKZ77pSA2rz8SUK/6dWplQ8H3hPu0JtE9WtHeJJ1b2dsvG7JZGM7kqkH8Tg/jFu9vyYeJUyWwMC1J/sLbJGtFahdRtBxBT5+TPsx//silG/n2+xmmsvnPaB+b4tS7Xk6RwaeL04n3q8dO+sKnRhOIJf35aqtcmLnjDUXpORdGPTLgT8bIaghHkYuTb3s8kC38hhcTvrNbQSGRrlt1jKN5djkW1OIkLgmh/cZN7WZp7L2DEg0AtLK61FzmeOusgauricw2o35csDXmKq1rQiEMyFRndHpgw9bt+5wO9HKcmBceyry0jJyvdvU2Xn6xMlN6TBDsf/fzPE1ckGYED+fsIG+fH8b3xjlHXYT0SSo9qR2MsdeV5WMj7nIe7K4PhF/+IM7UvZdUxDK+N8aGZbfKEboTrYg3EH25UpR2s1A0YFh/wWL9hAuFdvH0uzESXRZYPTczwwl38yPrJS4PssQ/fPfAv+w6Z1Kw7ExtX3JWMzkYA/n8tyDcASdMB+3n7nZForS5XWM06hgG7RQG3ldX0mt1+/RfzFGSDOlebcJ084kb1MqZKidu1CkGt9pBUQuwb35niYZnMssw4sXybuHSYsHN7n2Hx5pOQjIDUTLK9x6XnzITGjPkjlhdkCZM3rEhM33Ri/rZo1jjcWInSNi7ijVmwyrDJxLoq6b4viwIqqv1b6bWEaOta6tXzjWEfLQIz1ylK4XWUBSg5SrT6+xNLSOCvjebn67XwT3iO/y6/z7D/bjrGljZnNV8EnRdYlvCbdNmZEAOfGUvWN9dXhhO7O0BkYZHZRACNVbmEw8sjsVd9DGcVSUU+Mh7Pim+86RNO4qxFFX4w85hNhh5PnrHhHEixJZthpWg1aru1N2p8mI1UrDZ5/IACBihjsh3PMiGCDjGroCuECxZV1yONcMrbFHNQ64kTzUsW2GEk5bICTmm0SxDPwSidUQQm5sN7V6fKhxM20PToaQ1/yLvfpZho0uDWJVcVHP1CbA3vBC2mP5XdoQpJ9+wi8a7GmyZP8+cLHqqLdW6z5r72/P28+xxLA+jeBtRsLdP52BMVvefrE4u89/WYK2nb80MnWjClmEMGCHsf+aO7YQrLMMNJh/vMBZs+495JZBh1bJ9D57E0WTgJHOS0syAKs05D5Zr7cEFLqVxyPRAN4kIoioEUBvkc9HTaI2mfuqxF7FHxUw7bxnlxuzMi31ZNo2C9BNv9/in21hOImuXIwDB7CqRa5zoOq+Mp7W/sQYZhHz+iBZsYuNXL+4pq3ckKcamFGRKIMGf3sAtUaomsCbkZk10NKrg8hZ3oYh9HP67Lp9IW24ifEfJo3Hs0YesaTXnbWUTCgia0ukR9gjb0udlzfdm0mDz2b5LUJlAKniS1R3j4BTj/UIUedMI0yFH3d85SburdUkkfPyaVUQhLp6B8hN61ZM4gTNgnJZY8aYFoCdJRINbCKetiNiml+HwH2EBwKMZuaNBZUUccgSsFxwXG2UVHbv1UlMT3jLr1N1v3LY/xT3eZ2r93p/dRHb6DY+8STrHvXwwCWBQZWzNk88V7LMYFeztDqXXmo5Z3jozt44reMMjzAz28HyB7Kc/0kuhnpwgPvP641Ovuf29EQbojxOK1pCKSYFVDVA7z2OJbxUaKrK5RrhkxpZyhLfzjFA5Zjv7SemZbUmiBmoyW5dHk1g7G9MpXWCB2e7aS83sUFxP0YuZI4TrhFRtIfoNzTE1wD+8DMz7UYyKJO8oL5NpPKlyTeaVJYhNYtSIJpA3aiEgOwF3zAfC6OnSa0iiZlShpHcAuaSmsr+EejlOImV8VwyELuVGMX9cWSTyLVjlAC6gPQjzU0iLXgeHj67wWP0u9D2VC5DE3puidNPet5c/bjGKDFSbfX8czwS3Q2nqABh0vpxtvtuxVkh4mJoP5fjopBrl/m1yEUVBjmzPlJ4AbIhkcZD+hobvOHUocbzYmHiYZlp2GllZJYRB+rMfcc/1lC18qhjKAJZX1mPlDDzjcimEdw3XQs2ih5VW+HZ+GtQPLbhsx5S2hg9VTSUi+phN9mVWVBpcRiagHSsW0kwZkQTs4Vn2E3PhQINyT4o0M4oWzpMd04rFHEvCRiEvkbFS8snOFslj14qgI2UWpWsx7/f/MLtZQYjpWQ07qnug1e/pbfgw93gNIV/n6dEa5jBdXXaR1T7ZWMh85HOM093QXQ8fxJisadc3YSkZF/nFsW+/UPlON5Z9ytKQwuud9YoHC/jRaPDCyYE3Eqzuhfy3FuDMlllRxwpZvP14wH7m3vrS1OuuDYYPNRog3WKt8STUuqVJhNdSvNXN7KSM/J9x0R7b5W0y7XldOaNp4jzoUDg1jW7J56Pp8lE/36jB/C8WtfKc6aoHBoVgu7vLkyz+ovibeH6kG6UzfjdbNIHIobkOZWY4cz1LsqOQQAhHjeywxF6jczLK+3F0vVsEEVu/xfP+Ff0TcPaIRWTGj83FKAhLh7I6PYMyd+ZjfcwPgQYwN2BEWraBr+UV2g+OLEDjxQJ39i2ibZV8cx4j5vymvh556zl91y5wo++AfCrKqqTuzR7cofA5BDFfXdXFUG/qkpHG3GtySFweENPi1dwdkYWvbNkA9wL0ce1lmnaSzGKGXI9eBUxJdlU31mA9iKbnrG7UWfm/FCTIrgQ8dJ59WtDtVI3H8Oq76cyqxEoX2cR2pD16P+QUPQtUCEHBIgh5NvTfcL9f17gw4S/nC8A5owpNiDMqGD/7CJwSTXNO7nn71K0T+Nd53TMLrxYZD23spMTik55bvbRczda6e3XxSiDKsen2T9Z1Ooi0wU3I8vhUlPlw3dOKPMaec/l6IRJRV3TP1SETOxQlbWRsY9C7iN3fjJzgeITvLzDmNHP6XiKIDxs3SzApRJHnYTvYS6eyDvwxpJGr8xryv2tVROD1N7tG0mC8J/wONL5/8j1GnZ7RLlgYfxcPiDiNlLtRUOvoo3BDDcfuiwcMAFI81Po3eiPCQjLg3DXIOE8BlRWwwHLrYbJOHtqdgfrsCRoN8itPvs9O93DiMi9YszGSKAz51VmAVL5BPRnrMT2NX+M0u7qXk7/Gfs0f9XkBXyif2TpGXgzyqF8zkm+tS0N+4U+K1KyvigQkdrPkBmVbHOW4Qxszvglsw8RudcJEnnYw50VEl1Zne8h5FEC9h3mrZsDDKrjb6BUPTexLaziQVS8mjOTdx5V5qWROZLV1MqrD0XkhHh0U8qv5+bSpNLoX1Kf0ZeVTzFgISTTlbNmzMYfnzqgkCiRbVKRpRWZRpj3nez9jdfonwenRu5lvDaKfWkKD4E9e7QFGoyj5/gnabacEMvFeC28OSbLtFIqZV++QQTbV6B/qAZGhdjP5H3+aUzp4iinDdR63glvF4UhAX/+9fufIGlQ7rVPHFy2aRoR09JnE5du5hHx8TrIQmdczVPiGcObGvqgjEldL+saIOgamixV2JRIipDu/M42QH64DIZaiU2xrkEn8ILBkNYdK+nJJtXOZecgB+KPZ9p2ZKDcE+DGytvEWXsXz01zBX15rardMeSuyW72IwHX5f0Q7BySOvGKmApyODqXGc8MQPxLSe1Px5sRUz66755EP+weMS83Muk6aGsZunzB/1dAf1irH/tTVGlXBUuRvLk2/FDA47+yTq5+ElouMTTjD1eHgX8ahe4eLWb7VPiJeFZ6Nj2gy+4vLfzF/ZjDo/uCZs3VRj4kcOi0Xw5R/qmPBgSsV8Ep7z4SuIjZnVp3iwhYlIkf+7fo0G8EnP6pLVY61ONuZ+wCtQiKw6topOtzMU4XrREbSZoKrCs8wyXAu6K+jQiRM9YPs7u6KzATqDE5WthpFHisW4U9/PP1lhUe8XGXdn08+VKsbJwY0H/dwUgJnwrKx8WrwcecK694joFzGLyH+29tXoaqB9ivigU3Eb5h8x6FNOa2QenIdZlCbbAGSwLoNRZXTeA05Ccrxc0FGO8/4iaOYMi/8hkIZh/72n7qEd1gd1udp7nU1pOUyxHN8bipM7xwjr/hlk72VNd1W5dr+Cy4t3un7hOcT13tndhthU1bPhZWHWPZcRdygceQPIaWuBF4zqu4sSdpc1DTm9j6uiPJLCstaDuywkEx7HsrFEBFSMWfoLM6mjYdkmWsjMG46hr2wQrjAR0+vHerPMoHPOp1SfMh4oGH+EWFPhEr9EL4ZE3wGLzvwDkTaxyLNrNVS4yagxzzRCG8JhgsMz4ul1d5RRaWmlddX5DPM6rckEjypJROjaIf+0oz4NbANb10Ru95hecVn4k5nS0GpgA1u8n/ygFPN9h49TJFYj63jyzNQ+mkqNlxVYTHTAmMzbfbsNDvbQxZKM4I1Jq5RI5AYkt+zl9txTQOzxLcIo3zBneTsaFvEa8LrmZIn0d5TL8lRDjkbFLIu5CMXyCfaSXmJBSbQOIYYZ3YJ46z3cUPdoVhQOS9jGGv3Zz7v66+5hEl4RsazoxkDnyZQgHOxS5cI8YyCZeSETD0J+0KdJpeMlORJ291MtLTe4HZz14E8pamd4J1ujigXuB4MiYfkfpcL9t8+5n0kpTgsQRznRjeAKIxjKo6XhH0tPeTNvOp9AioTSWVNjs06vX/i8+/Cue+8EzvWvTgTjLHaIsxcOqYxx1uEXXkVLB7VuDPIH0ZK7qj8VYF785SzNlkbw0BD3SdwvSvtfy+gJD2MBJBxTVtZ+NlGYt9K8nvFoxdUSpo80jf5+HNWDacfs0hC917xUZSSFYXaZTaHiqchVIMAsMFEIiIp9TiSeqdaHTUp8ip2t7GWM3ticzTM/B3FsmDmvRpdz7mvGT2MzCa/4djFmoxUbt7NNnv3X+enjaWSUh5kXEJnz05Ss4qRjCeXGo1M2ivLzbi/yfF3LG0KBnnyRD1k4ybIsA5E5ybIsyzIEoUiyLMsyW8Lcth16y7t5rixPHSkqyzDSS0cSBDjHSe6ANiAqPM/ekSQRUdJyHi9JIjyHV5t9l3t7tWINI4jODMuSZUtIEVvMwH4y4ygElJZ64H6mI/64/9x5LQmKfzgPDlWCZ4GVcyVGUSNjcDU0hDnqMViBqYfEhwjXLlcmeWm8iDGP/VxDGkPdKI84ydG3NqKiFj0eoyAr0YrxfSDUNMgmIorLUaq3ptv3T8KEciIOMwN69bVJVylC36YrYb0M8hmbvgCIvSDbDqQQPE3R4t+iA+m8wRSOt5l83thnuoEVnyQt00szx6mJSlNOmeocGBqGUR8rN2zGO11W6DEFmTiXVFvraljPVluwumBBv4mb7kRehGsi7de4iAw0Eh50CTJs8cskbvch0LZHkSTdqsZ7tPOkhwsglYsmM/848dzfnb5cWWKD9h+Ndb9CLm/EI0XPS3ShEEOU7z8rkE2uviQOZzQQg+iMxePQEQSWsAkaCPxugQsdLn6kKN04tF581476m+IgdeHJLS0urgX62wsKH0Ed2mwYYi6zaQVfWaw5CAi2sDU2u+12tHzgtwnDLY4SB83w/uFpeJZEoyvuyTwCUiIgj21jA0aSBD14v8kXOHV8sMOa1Y5YRrg7s4p4Dl9ImzC7ZqWVUbOEODgPiJhOXjGP8QXCQmIP1R3nZw8ZwdI7CAZXIQAcs+iHkRSs8C8pBUWdVYhViV71v/WVsyi/tgTbQm25JKfgbtkSsxmuEMrLPHgU7SgyuH+EvRdTtW9BAkF+emG5M06ZjWa1o9ggzjiYpm+MCM5OhPnrSjbZ7A6Zk9wLMxMIicaSw3cYF74VndGl7Ac+vKHsdVU0ghDYsKs3WOe0LabRp36yDSEJg4KYRoXIc7MpQ2hYhJnhL9jnkJP8W609Nzgy9+BrYRpjZ2gaLIQqSjSduPJZ5JAxXvCd6yAtqxvjkANxT6wk3QAciIU72+8aey8TQSUw0pypGaMeY1HsVftMSr4ZkbPI+dqOInf914j9Ge4l/FmhPWo4CyLb7/9B+3csbEFaW/k9ISnNKxznsumDm5ENI4M4Oa+SDtGzth7MT3/AKhpYReTzV9Cj+NFvkVzeVpsMXHQFkRC7KHeUI9J1wdAOZ4gryIUTAkgmW8VVUQYpuvT2OhvtpgnywZohRo6oXqumE/6nrSfYv8emwX2lmeK/6qLClJHmx0SrC6bjld3acHYoT6bHRUWKy0Y7jqC0a4o+efZjHYTf/F1GR2+FoBurZgSz4Zaajhv7jEByCFoFZDDBurDemivuRWIIHUNsu0GxaqmKfD+FjGzcSY66nVgmGu1m+7uA+PvQLgnYLkllvZIuJsZS6s1S0UzbtXfmVNZJZ1uU6TeJxaxeKOfsVKxixhncxTfq51FUJQB/L+4NixJXrAqfvcilxkQiWaYNHCinXt0euXEk89CM8aXwkTeIRbAnTwr8K0eYAqB/FI5jjxgWk5tbaILzlkacMFXixIRQpDIUp6FrC6+aMYqT5oFMq5jwAX9UdQSSs43XvR28gQvfnPYpacdn1bMWvo6PRXihuvE8zFPR09K/uPhO5Bverm1VpmvOcHmjGSdmKHfFYpm8fL8Ig/n7fgX8Eg6sapIe422AHtRTppGoyCODDxIU8ZgDjD9f0wpursTNfI/f6S8KyUxcajGcU03losxkypH3/guFIiJfD2P1WShLKqY+/3ra+qVoSuJIgAoMiZqiTDYsBXVKZl7MRaE2ZM1Ml+2FFDxngo5LZ09gIi/+mGINH7M4TFezasNTn5aqlCGYuEQffkfbyKCoX2UEJ9SB6Ap0KLuD5Sf6b/tearFA4q0Iq8JjF9fikyMXq/j3nYeuh6KB55VGbyZt7rZi9YpvX+n5xxaCfLTCFLKOsdNa6qpOONdWTCmWCqwBhShXS41tyqt+vOA27WxivM6mkS6dTiJU4P4cbiO+hx38wpRu8K4VaclpvgdhDaAx19/ptyWTupXSItbI3/PzqxIbJ4ZQ43vkMf+aaozdStkAJs/qUimbnB/i6n5gyL4tZSH8E1/FC3QhSEcJEEgUrm2aY3wdefyKt0f+7tVH8NEAHw8XoHeByexTsYfbHU6eiitTV9rPIcR96UBdc3xQnCGS43VwKbAutXL5w9PMN0lnj7jubl42woC2pV1ONxYbj0lSvOypg+e0L37UaCMRNFV85qTWkJ7BlbYmo3PmPcb4JLG+4bldbKiGTm1o8j1Jt6HYRvROLrDYvTblMKOWkyb+GlZ/5jo1PUA8f4HWuVu+VHpkZfzZu70T0ewaTprcASxpHcKTHPSp+CgycN3Z1nXVkG8GJB9CwOYv+JB2HMUEZcN1GNcDTB4HHNM8lU2hUOsbKpGFdMNYjpSVge3sDMZCkvX/hogUld8RfG7IQ0FIYvZ3mh7sohaCeGFOHBWR45Xqb/WyfBiLjdukgffOH64ck4RriGwGHqoT4ug+ROx++ZSx7ViJjortKlVfmuX4ohOmpylqirZtivpy1XZz92j+rs8NGdtgwE6vPz52ubmjwknxNT+H1eaQNvk5UhMA/Zz5sQn2IFVmaZ7d28VXFP+kQMKD0V0DGdNwLXe50nybpHPkZIcdCys218yPBpmSw8TN9F09O1jqZMrdTy0YSKXSI8QEyJeTdJm0hL2ofIdeCQ1qqcWwcdoOfBDg1KuTOvvR1nPmUNK15wOnaZW7F/GYB2t4zLNUENUlk/IPvWVFS/a+2WAvTxIeScF7e4v3kWrEURgJpFz0mBcVcWy+weJ806b4Lc1skILuTUSfnYoFwuNNQZ0Wi3QvgNRqpFdeZxt1r5YGWmfvAQfSdWVVvFSWmYCV34FtJojvkIgl/EpGkN4dxoBAMOZ6+vlfaAvxWUqdHKU1yHUtK26v9sIUkRNXVIo0DcAsE3cTuZ0MOIsbQoIRckboHMN7RPFX+UelgE6C39dee0RGaa4nNsenrfKFxmsKbfbliUvYMixL/DmFxINUAOj32Gu6yReV9xic0ISS3h12nR4OO9wNc3e05GGoBLszZXqcst9dv7xOM6XrE/AsjuI6GyBKmxTdkjRAGiZyGoilSKFkvGATKX6856AjLpNk9iVrdUuwFit2o4Mitos7hqchO9Zy+wtR6eaow5QJ5nk/SZPwGPcu02oWILypb2nBlRI6oYBVNNHIRpuNiM5eVmU2c92SOVITCm1khUlgqUVu5Omv4XT8vg0dfdzENNcIjl/TrnH7J3e7nEzHADNHWZGtNk/0IiD7t6TfE63Ao25CZ9Q8ONgOvPR8s7Zp+Iy4JKZN/3AyQN98Ww4MjTpHpbuv1/RntOTe0cgDjp6Jp9OhgxASIWKi4tRsMuH4I3Tl4YPMj7eO1QiQgCv+mMhZwC2t25hpwJLbpqKveO/ryxlUu8OJ6Wl3l+Ir1O1e8sxfUWBUIQh4qZgJuOeKJYalJ25/feZ899p0c/4tkUYCAp85B+uiFO6U7RdeJPhDJD87dZEC75I8+Z7KdafDKNPh0UWOakmrWNzscgMEhwGqUcN6ayPhDg8UgMTRs/mWNGnQdqulbVOm94zSLjCjJU3reSqw1BrXbJ8OkFM9IeKwQ6A+WjdFYIQu7ZChp37+qXxsTH+aCgCWLZ5k71tDfovfJWwNY0gdQ8lSeQEiXBOGVEhRMNcFzzU7ugpOjWmB5/0q+Nq6n/UCMi+lSe9tq3hZEBr5GkQfV3iLJth4ftR0uWBr8VL6nayWHpyXXfh1XnYKHqR48E/ZhZY3oWkXLgqo/AwQdcE0HRdSSN7agKk9Urc7NHvPr/0kNyMKZSqaWo1Moch4OM3p+j0PFUYr8Yy6dsDIE/to6H4A+qmqgF0wDnRcuHdGoKstQjF71+/9XHpnyn4emorYqD4G1LdGofECrEyAEm7wagaSp9RjqSPsRx2vAyqQzLRI8H3DyN5x2kod6Xz4nF7Tyh7aoVb1nKxsMClunPSDO/WmMvgURtKIX7x6i8h9brCaYhWtY3a5AVsZb1Cw76UEPkiYu94I32iYvdI7J+5fegYsBX8s0Odj8uXScUpQsDDeopKOO41SRkmADgWg6xUMx1/m+PtnTQbemHQS+TduqiPOCBK+sbtx+TkYsBM2+ik35ZRvvVHLet6CxnHXE3MMz29LT0V2ca04cIqQ/5b44Mj/YgOW3cPTnqutSeFPvNEyOD5vY6nr83LOZyxiflekBrxPxBpwVV6o7Wef/hjLN85Y3KT83L44Zr0jxTWoBFOykOjCNoknJ4al8rdDgT0YG3swe9vgmAGGeRhpjKDkBb8XBpMlqFvqvyYqXj/zGRUH2eko7WKXyjZkdrddm0xTcQ/qJGXOa/JbZy+LdbrSY/lpIL3Onk27XZ+Crv1+JMxhDq/8WxaG2AZsenO4TX+eQ8m56PJNHHMZzjXpp3NpKJ/IVXSpF9fewz5cZO7s0IdLasUmgFfXMaDw1UTtw+W47/K4KV37r094VY9lrcF/EigpP4DI/DXsrVzTAcxnsolsk3madoJ9jnhx/oHNjXzCdbDoyneSHxPUyFMSDnVLr/hc0vLENwc4q0pc6E9HEe2RncO0/+0WNvB2IDlLJE6/E+6ZD9eeStMTMwsN61ZFDeXOf67At8r/mS0jw2FINxdRlQJnxaAbX3q11RVM6+UTRi0mCtzNCMtw2lTSgpUrnQv7KsOBIrFHj1jLTaS9jluu1dsW2Fhhd6Hq+GzYFD0Lt/TuAm3TxsK0GV0ZGwGJim/gFUvdCw580sHI7gVJsVD7O2nHAPcD3TCg4jPzsC+LkZiFbH+LVJG8D4pLlO/XYWmaJMO+xjZWl6zuQ5rENo14HbT/+88IchtvgwPJLAYqtQ3Ex6TE1Mapm2RDWwugZV3vKJisA2+1j+YWYmFf69sKVCHU0Obnk590cjMWXSibFTvvFQ7v9Z10hCD9O0L6cn1/K5y63ZmgiK1mwYtiYRTIDdGApuvkQYZt/qTOUzg0llDl1sQbErbQ+pTIxnJAWXkF6djawJLOeV7CxlGIt3LBoelwd7jtHcgGBnDeLg0OwqhMh+cOw943SuzJuo7E0t4jI34SVBtyybY1RReSNT/K2RqaEUQdiCoXS9QzozQg7MZ+S19hCF7eChzEne4RGHmXm6U23/kQJR6QXYF1UCPEGlPE1Lt9ub44s7ZqeikdNmCVb/c93GcBnjit6t+kmCLwdUPmT24GM7VFJCDhWATb9XIsW3E68nH8fY2oEf2V795FyiMwpTQ2InF8UWjiz6SnQ15oxIN23r2W2AwM/5+ePIwjeHLJLd3KOQZT+TK3QcivizMSOyBczEsgr75/ORK3UeYS38wmK10vlZqIFy7dk7yWsnxesf3WUyM8azoz8Fn/KCHBtG7TIqPgdohIXmaZSzBI0W+3AYggBnJ88iKQoZw0rHS7knFbFnndTd5lMEzNASfFwfRAdaab4NdoeZAKYQcJJsQmFf+vIda9mUEuZn6qx6qKC8UKWguC9RlkjMI+jEB/3RozD6mj4zWJl56QOXQasQmhR4p33PkC8ouO6QfZ7PE4103+woiaVT86wcIjKLi2XuAKTFZs1ZNw0eZJsljSn6G2ibpn6e106KUbdksgXdeRctf3Qinp9EqxD2O2eFEsY/nyjMr0bhHtLpSJCboqDkymx+HexSaNPXefAJqLMQO9NtMw+vpXxSR2czhnYbbokOJ5cEM/IysgGV7HUexx4lwFu3aTSmD+ADx6SEP+la7XXaKvlGjCilCZsQvruo/23iAufIruxCKsUNDwUhxu4P7yD8c8oEEDR7Tv3OdX47It5bX0Bb8/Zm4d0ttnj6bfmGlEnEpzVBNbUjjOlD9plHTC2DVA6VhU2EBjCYNpYaBiApihPBPn3+yc46OxOO0f/zth5+waWQ+RB9uB1DmHUrytxAK43Tvu25T1JPEtm/Mmo0i2D6A81XSkd4A8lttoUAq6ozi+KNsP6M+wEzEW368uzvJijSkyZ82ZDP0NoldsFkhKgvymr9l+feO4LzlAU4oJLr0KsZLp6TuzE3Fb5ehRYHoSjA9n0zcp598CjZJ7JRYJ6GSJ7ZX7ctwHmwRF6bbGk+YQmWEF8PMUzAboWVQYG79SI+40auTYKIx2Hctt3AytGYSRkBKPWCBsZpscHAjZcI6owfoZnkzEpCkpazBDtq1vQRe6n0WA1xOX2jDeYmdRbn9xLkH2v7C+bZiPNoKDOktYmy+CTGpNOnuhl20W1/Hw7lx6+3mhHS/nUObE1ds/Iwrl+Mj/46F4Scs88q+j9JG60SZzzcb2YrF/vopN9+Xj9+P/NKRdTBe8vGNGq9lZ6wLNpc5ZsCUoUy1FSLDU5Z4GH7Y9gAW2cpqzskQa6r4V6kBjhqghZGGhLHIRBR85oeFcHfbk2Ppd8cWQjYPbmHA0cMYIS9NLod5+9ielz1WkIPuQtjzVH19ghxD3yUk/LLGmeezBTrCNQ1GpaRuLVphJM2CusjZy4KmaEoXmkCUKzSFr9JWAdJWAGTW1K6Kn1PscHlEC1dQnKDCGosXNYyd7BnW010G4fb3ONdp5pxj3+O9MXtrGm9Z13uZs+DOz86YkbySdXROiNaEiDx9WTRnYqhBfKhWgG/+w3/DFrT9xzkXrnP4O36bXuwcOEIkF8nMUWPJ/seUtOce4OXU0dIb2IfkyKNqV+VdTtEYPiKQ0jpCogygh1S4puBtZMLYRq6MsDktq9N/WVr7EtGoNLdpdD9hKGeCYO91s8fSCIhrF/YVpAHSQtYrbngWhM3oOEezl+Zf5MRO6vIcWxb3hqvbw9LAMb6zMAgVsqMOvVl2ejab6qNWVT5HTaUPZLnW4eQfD2grQnCk0KmLesXF/l4gS3OKI+C295wvBTLBhAUu1P0HGa8/N1oANa7FCxLWdzNodNgEq18njphu+yIxlZN4OBRfTZEg0baZB5Ceee82zlCFrFzMaFYFXw8RA4MT0wckc5uwE8LPvgU2KW8FW1vNRBtgDCF7mE+5X45wa2nJWGLbQG4PZj5OXC7+jYt3yDKbPB/dM4moD+ppFRVXd3uTYrBJkM5HZQizdLrDFYGknQ5ahxtYbnktQryfJAoOkGsQwumD/ks7GWo1DkPEWdNt5d7vYcLYCV2X+NmO/pgDpFCOyU0nRv/HX5fRzgYlfUjY9tsEgqlsIJcgjXd/yDnXsyeNU+YPxif7Y0vzlZ1ZBlsk9mniASlgwmD7bNYKEEqjcVb6b/gF1Sp2hKmt53gY+3etUzDai6oP5vgrFo8aiTTRLK8V/Hq0T+DUEUW8dr3f9+dv01zfhHePlf/Fo9vOQRIyuxDUCFRLk8hoaUB04S+ORmsCf1sqG1934P8U+YgVW8uls/WXGyl10XJn3WxsIMKoKiqyIdtWQAe6IlX9NExJK0vGiZout9GW+CPOZKPrS9mKkscFQ8ZjxsjN80rorlTeyr2t3f6S0HyC/U2KRd5/66U+qoPdeEFGxsYlkjo5kL1xUFBBPlCQZkTnH342J1TzU/fU4/0gKs2JMiLKla18lOBNpWumssO5TI2Vw61B2GKMRqybFcEbNp6hDHyLPQ6DhvGcJ0TZZU+6AhlUe2+j7fOEbmdTtQkZ8c2BLNBGjeLYy92TX3oE9WAFcrkNiaQ1nBMe6wfWfS3/9UL2Z+oIbD4Zh+o+79iqqv9DJNl5gvy6pC4ZvBwYflh0GJpyBY1XAcpEOpWGXD1y64oYkJQTK4qcN+NdQzGzGCf5AM3F+jlDTOTox4bLE8VLIVYtNGyB6Z8bb1Cx8pqHQx70+r4oWTS/EqDj+jxoHrFp/dRmOqf7I/HW4i2PXqbRohV3jrQXbs08568l9s4oPTFrtkvMYc6Gsh8ew3v4Gdl0d5ZanXaIsx8hNzc0pjiJGZJlYd3t20dAPrSZQj5vNlxbtBGuXGyLMJotHy1hha02VhLFedGGU15LbwUNR6la8YE+wdhTdEGzAHmpFedwEit77DqJmmF3u8X0EWRXNe0bf0L41IoILfc8QTR/tPk3fsRqstgI3rBdR8yWCw8mtYfcifRZVSqBpsp0fDweA1SkPXjKeX1hygiP2EdsB7K9rZB2sr34RbyRuBzSR1/ELLrn9Dfl7Z6gH910GtJ8v0JEIDVHHujQOXfBLslTZYnNPn6aUlBtKdP4p5Seojnl6AX0peH8raFhYEQo7qmP/kQfaPmXEeVKNUe/9CbZ3O3/5LtKI3rf2U3iR02zR41/OA1IL1hcfQbSRj+wy3CZpMzJQaGiXHFUmoS46qSXFS+PIaLqqWMS+l1EwhmutNTyf+I4c0eg/7G9NfyELKAtY066ia+zkM7Cpc1BJuavk7kkRcTWzREGx3ZvMIaE4e4flJhpt5vJq8HdGFhlC8k1DzIKbQJZofMcRAxXu/Bwpmu1/gK/F/0WDfiQb7h3Fmf8qPNai/+GB/DNrH6745HPwrzWu1Sr/haT84X+bv4T2/gUYNPi/yI1RTDpN8txq/wtJ+FlqUPtYFJfL/+1vaNOqWA1KlAdftFFwjN+OYx5+sSCDxmb9Nbj8ZZ6QCaCO/vp5pMkkIVui54coQgf1trEiv6aglDuIi1G6riNavzKDozSn0SXi9G+uggu/X/7eZlgD5V9ayXkfLd+57aZktQfyPcGk0Ipt7uQKhFEwXrM3T+C9vdz52czdfuZr+yZPQfnfJKUzMs/kOhJoXtLz2YB2GWF1Xupz6R2RFnuKiCwuQL4XkOZMak627om011nlKMUE5EtHt9uryXn5OY356akDyrYQYUX29rRNHLB1nlv+T2oyfosnsBhhLwXT5uKzx94AKrMo6T5UsWoaq+aVdylJPsO+SzRvwIKFZ++JbVHct8dcHiRl5KfRVZ5vRRWSni93woogtuLA/pRyJEOi5mxVoK7y0PIDxf3Xn+XhKLbAutdp87OkE+M/1ZX/ts1HY6t8ecQJU4wCRKMmhjzV9HeVmtk4Ow6S7OUQrIjW4z6V9tY5byOp/BW2JuDceasi2YXPWeMd2+wCP5VPj3Yb9i7MBX4K9lJ6QFkwrb+190eIM/+uHwjJWq3xOm3q3o7sxXjCKcg40n9KQzLZSkh+jdVxSsX/nIsHFOMDqjnU/4NZF9sazYNL3e2a9mVJp9qfk6kI1EzwNUXKDx+XckgIQ1qFJ5lgLwfS7LWnl5C0IK5uoQncxKR12emm0FVfzJqB+g8HJL2jfobj/fvxfrQ/xuMX3tL3CfnSvH9dHGj2pTgUrX2maUwUHc5JJf1/umARNe1/M01jnM6Z4HvJVFcAi+86yCAKn8Wa+Bnh1gV76txpCtn1xL0u1BdHmrJTRCENOyFrWvtaljBnLQja6hTDcQyYrMlUw91iwpEFby94WrqUwRBWoQmc9s+MZ70xGJKUU7J74S0jMOldQ0QjidT1hBuOw7XqNAEx+dn919S64lZbQG2P2bLTmJxminxAY851BWFNwKvDqdP0fGVakUVH4iRaYOlWLFqChFvyruAS/gK1xom04/PRwuw4rlzxz3bYxEv6yotaNSSkg85WPalhonVidzLYS0/IxZ+vW4hqDUFf8IWLz9HE7CRLrZjdegdHV/25QFYL/f3jZii2jjCGmEAnI6w+Skf4wlpxQdenTdyBqlKGqsCAzL8GZ8fCk+q3Z7p0IzO1Va/ppiYgyM1sX8xA1Fa48ay+8VZEUkuyfCkaopPBSMU82FDZ07lEsGeXPaCedXNTJF4bVyxW1F7vUxWlM6YzHqpRlJGs83hVvrcRqtYESvWOa7Kl4b50O/Fjyfd5u/0G4wjtMlT+1CvxHlmnUlzsOtr06T7C/m+F4ADYF4NgAMumBpkn4CEyWGoGORGDyTPIXQ08SIADN2CqoPgjDj7J0HgJ6ScBlTuQvAKpBBjpoSQD3wJceQ8UixqKPQnw5j00Qw2KpwQcew+s6hLkVgz+MIAE1vtj2ikBYAAK8MkPKnIqzSoZAP+yD7EV/38Hwx48cyih1XXme6iK8WP3uX1ffnQf3c/Wl6+1H6bNavk4vNjrluXHSKetXyz/jvWD727rm/Cr8yfbeP+Xy3W9bV6GCa1eL17fufxZPsSLghe4pg5muGXpvMHO1vgDT1TwD56zClaC0jh/CMaFcUjRs4NjipFdcE8x48r5i4CZJLRhjWS0Yx1SowOdywoNHk0u0QUtsibXtCEtueXWZUN2nkzuiRMH5JE4ZxPiJKVzeSMZW5MPUs8J+iKNnIIm0owHp/8U0Jv8UDQ8QgdUHY9Bc6qBH06nVMGzyR6jftutYcHlwJ0XAzs4tuKT3ci3KEZ2C069mKiNnRVLLjt2HmZcdSy8OOVq4K8Id1wEF+c3ti1fP3zNk+LUil8eRu6tWHM+8st5n+LtL/iMVXCx9JdqgpzfOzaqqyi8n1+D71XvERW0VWM0Cr6Ka+Crgbk8z3Y6/K3p4dymps7ryxl+Gngt7T22BxyLv8e+gbxSwqPBvvgzUANjsWdoFFSUtvlfY/ry94yXw62mQWKtbnmduj+/F4l5Hgesf+K2jS/JKr7t479Yv+NHitfD3uPvIWyqrLcPxbHKjlY4WHq6g/h4AI723xF+eHFpK8NFtx4AAH7J0ZPNEtUlwSL31eXSIX0lSO5Bdyv4aEyAqR8jrzKWPuc3D0PloSLKuOnM2Ru/0zibia51EWA/BMNxobxxdhD0oqQ67smG9r1qu3JyQqhLP5Oue0Aj2D1LH3qx2G/gLMlZm9mkc6jusQOrX02T1Y4ZIUCiR0oQg+bBHeadzvw49rJgzMmCf3AiPixmcV5OeWD+V4YZVweTwISmC+a2mNj0AM7V7nPOXL3okwHy78CQPzHmsECh2ObLvIh81N2I50G8hGBM3G1EOf7YtIV0AKZ1p1Uo7w/XKbwOyl5zBJv3htOYTmFD4EOcX1KtQT+Skso/yvWlNtleuH186Ez3zHHKF2FnOWfyp4HWZhPM+O6S6C1cAD6bbMR1oDZoDyM0XWXRBgIcxu63Rh3bLuEvieSjFdR9+OTU8khVgY0le6JFcc8Qtc3ZPzGkSPQbtqMuJGSnl1wdIX9qR2nGWuDBWEJydgysCRWuDbuXk+r0mUJftEyG4UTa+K9Ny0iDPwDgtj0G1ArygCgZjloA5blol11LWoPxOLEjVIAyn6TN3M+ucXXAP817V+qk6oT0tkFm42QFf5Qd44+hR9uOkeJLiCqc0NkGgVNfxuFIQlKYX1XzcAlJS8w/RoWlDJ8Bt/0bEkdHIvnKYVXW3jl0b4GpIrZzM20cBNL7s7jz6sz1nVEUCyPz7L/xxcD2hJ9O7S35UYar7S5prRS9PGcVI0Jlw+MQu2/5cxh5fMsdZImmleAoysJVFORSY94bRjtSTK4Dz+dB3lueTs5shZVvkmOnsQwRHf2QcmxkAcnZeWan8yrbOwAvZoewMavOxfmFvUwRsL7qGSdJwnJIAhXpyDokflnoPKpX210Kn0P41qNO2qaiioSiMr61vGT3APT+7PPMZefL1pCe7aaHhTcnlmAFmScRvg5Let4swMp7Eb+nUep1s/3ejU/3r4EmajQvdQnWEOWNh3efi7zchFM6amLDCLDIXdSYiz5WNTu5Q8h2s1hB0D69bEN6pM/ncMgZWUUkz6XqMVGTfcyauZXO5ueOtrLNVNh/YhFYOLOo4ocPIzbDBo6uS1yWdmmkSFrshfDqZUGrYt5nPJ4A+FVzco08dwCdluRcekDV3Y9G7dXQS/27GdCEx3TVeVuS7F1CFSpZacYp7ZM1IBj7Q0rHR2dcGZynyM4yvANMG8wQUfyRJ6osRVss0uPLMmge13p2g7ciYUqJGhUn3vGDcvXKE817XMtO6ULFPUKiREch/rHoBg0IgtqKqLpoHPxJVSZqADbY/7tzRHv2XTNU6w+IrD85RzRPjhiePP69MUZHD0zpodfndTrIVksKh5OQthy589b6CuBIr+2bn5doSowW9GY6iGEYhnH7c06TF/mPXfOz6Y6q+/Rb0Om6O5w9SxiIVMByPUJwFCLzH7M3JgzRLi96fbf93N+d1D2nUgfYoS1UmlKzW8Iky1mSaEWdZiOB9PbRl9EIjKigX6f4fEz1xGwaKa5dmIaClJDYQ4fIsjR03/vX/DGw7hzhlMN4EmfNM52Z0wHZ1czwE2y/5IMMoQzz0LteMRAVFjFK0kRxIqH3nrySZG5BQDiWAlPWaBbUZWkWe37HNIUbcuTsITDf0iRIcgH/TmQGW86EZtI8P5yrGZYvH5+8sB+mTKbtCNwhDEj4c2JRnYlLwgnice9h2nhGL77NszYgvPvC9DyXYXdEJIkbj5khl88wl8F9DqIW7E4DrYvxoRayUj0/mh9JIN2mN5SdtWADLPxew5CRelnYIoMpauH7NW2J+RIPc5g0O3u+odtnCBvi9Nwo+sjgKI3oumGmlevmBYFXFsmh1OzxAjUlOnpGPTUdZG7fxXk4a+B0g3BMVvER3YcCL/2sSi7ZUFKMc0fU2XurJH1XHN8ZwrjsvSaO0vSNr+RetfdjyvwbNaGkvsp5Hysw41ZSuJctivy+Th12Gk7xRoJ8QjXq6Vvizf0o3qzZBunOI1JtuieS9OiYMHdQP5BF3nrETbcdofXu6P16CphPTsJ4yzw6T0NIDslqWA7oWAv8HkneWR7fy1DRuVV4Yi18Ai5VYkaGC2/vMxo4Szr2XEIXAPI90uY12eizO/3U8DDLoULz4qOipF+yY92NL73nUIsGevK2UIm/0n2adcglKoFA5tcVGwKGz143Ie+ML8rWsacB/rP9oEk2p9nl/E3o6FBZfNx87uBGTFYLnuyIaH5cWSaiR9WXMYtI2LPW29PDIskQGdCZJDGewh6lzKgFuujcQ7yUC98zPyAQeTt3eiQurTuU5n8OIpdliWKjZCIwXNiJ83hHIz9cFBrth/oDEiOqR5IezwMur+XoZK+zmAg2cuWEfg4Jcng7jUpkoCSalKqOwxdgksBAu+90mdOa+TvO1kMLIjBmrGrzvCwyi17cf/aMf5PnHgQueBo0vmtvz7YgNW+sQaDDtvg8mliBKbhAJSvkd1EfMEcgTQgR2amgyAc16WTotu9xfDbz8m1HhGAnnYQga5SbYSYoCr8zP6zlPzsYOGfX6Qki/d1O3pFrnCEdMWg5x/NcNeemxRi+mu3+dJ5eeujARTtcae8iIfv7pmPrXKK30fSJBXPAOeGD68RdGhskuZAiLL38sQWL8T3vkstzMx+8Ks7N/8L7MGOXZ7K+CaTfGoKODZ60PcGIrMJ10f2ar4jm1q8EZNuWaVoSRt0sNwl+buiFLrT9mCjkY5w0B9UmRC8X7oTZdD4SgjPiTxiGYRixY7CzftndhbYkjRZAMTNrIvpkAYTnLubg0u1hE+VMUNEU5tHZycUYOiaw2tKXVzEecLS/isQZCf41q51nIZ3W9C6CF4AfRVLCokWdX8xuJw49V3R3eOYFZw/5Tfsv76WzmpgCBhSxvNSNg68I2jvQgDdkGGYOAlvKO9GQCcrFmXw7nagqfAxRoylTE+n5Pn6CJPm2keuwI2MQIXJV3FUPVAmqxhIJcaO/Pwvs/dMBlTQgu4VEbYBczzD2HOUBlcwgN1VLvz1UZU/qcsb7ZfbzGx7h0fkgyTYxlgAZyAOpoB6aEwlkjSCo+eBeqqsQsmFPLklHUyLyaiHzTMuuPzgBfnJry5Bqo6xE3OKL1LCIG4ZJ4or/nmGT7dM/kfdaWl07fD3cLOgXeli5BnEIpJ4MimvOJO57hZEqJcYH62BoraqxWrrSdsFu0wP3px9z6U68zR6JeVE157PwhUSt1gi4Br1mYsLjrZUHN+7aFV/MAuSgbLPcZ01qP5wyKG11MzLEyfL9N2e+qUf3zz6TiHFFk8QnDXVcdOi5cI9OwtsP7jCnts+gYyc3cZj4ZiNsFbvH0Fb423pbBqnm8TU+a/+5vRTvu1+iJHiVmifzDnYtc3vuFdwu2oQrpLWb+Q7yvYvqoPos5a7zEKV+waFRelm8UY0qtBe9+km7QQP/dBBWyjix//1MrtaKxOOhwI8zxAtgDSfC5SEKkiXYuCEzFg/VMt1QFVTDEHD05fGeQT+zJXKoIfYit3KGqPyFTKPL9DtH7Y+Q2PGqpikkELW9vyyEb/JzQr2qs0VWXPLCrsFbY1oUc8KPxNzbRSrN6e3ayrIo/CudNGgPK0c5Nr7Bu8b8KfS53M+saT8LWp4XmBYQDsHOqJuxGj1PsNXsRp7cgM50+OFJec6EZzM+7MTOAmLxJe2d0KG9XzRlwbibtsayusU2gCsd8BP6ngVMMHa1A93bSeJULOfm+FiXXPHiUsot8znVfa2F5KBJsRQmWFsXtwsnpiaz47f+YhioPyreSeGPg4CHU40N6aFctUt1wQuf5K7UXrMfFL3eAlUcpbW8r9ZszDjnuXltDXYAp+XPd0yoGoyLv5TJ5c9Nk0ZZsSPK2Xpy8Jtnvg/zUvmocpjeOD9Fd4FJEFp4wFspsuhXJ/4M8CR2kUSBwOPVO/I2qIfONWeU/3F2mAL9S1+lPJwVfU1DBdUVFrQkFl/j9PoBhCUzt0WKBr1APFRq6i9grG27e1EauyVxUnqBT7Px0IPRcQNaQ957DTAp6mBG+9J5rrGexG0/imvkin4QUE7iQudzF7QYF2Ws8PWHfljW96lM7hfgFTardt9Ka1jXKkw0RMw4r7QZPzmhIptFM4vDMAzDt+eo3w1yB2ykl+21SDDR6DgiE7gSUTWDD1xHtryGuyIAJQzY2W8SePlsx6Cz4oD77z9x/52rnFLUDTWYJLFmXEC1v096oOV3Eo0XC/Jy6GpN0VGxlZhJNbWYmf/rf1Q/w67GRyM+TLac3KVpeGq4fBRuKGgqWn1fPoD5J4beSnEpWKKu/RCuJsEUM+ef3uSYx0j+4afjEAHsfZn+UGJbamjGimtO0w9EVx8uNdYhgU55omRG4Nt0ChH74NvXD3hsq8FeFRtGveWw4Ak+XAYEYz8W1CMBJ1MMG+RxeaqwQakRU/hyzUrEtu5afH2nlbIE8hpEMEudK9nAMtMSNoWCEE2R12Fl5FFOcbtzOulWjEdSuCVMjr8tQay89RHyV6iGmJmCcyQZKBuD8dFQblzsTR1JTV41dotmKLCtGhX3XKM6ZbV8ky64udItLfVMku0K1H7pPmDKelP7TIwcQs0M8KPvnLldrxuWRDE4rsUYx51q921Uv3ZjmYLSusnIKx9QvfU6KBBh1FivhL4DRzJiHycxvAwdQicwQM8VSLGUZZSOOh8L1nxAwvZ+FNK4vcZ9kSzCBEi5T2DfHicrKqPUq5unEOpxg7fxbF6F9f5gM88GwkOHmhrry7qKS5rgEFZJjL10vC8sn8iXz/fvcmQqhwt889YhSW7JNAZbgE2V7vvEOlYgcH0O7Nh/n65SvA8RTi0uaqy4xIsVH24AmB6/4bmNL2GD9eT+32P++h0OeMe0rI8IKbSQoUSgBJE6EZ/CYry63tIpFG19zv601XnE6fV5fCn7SKdC0oeVtqPrpSPqdR/aRDWEeDQ11HVq80b6fmVk/oLWj1MtVCeavXGH/oHVgjKvwECd+w1xpCc2iYCYgPBbQNgo03Do8MKOPrXlFm6H6fZ6LVhJnUBDkCrt39EqSQzfGoy1p8CoiJujWWjQQSivbFm4Jx9NKSYBhuqZWgnq4LpOfhAFKQv/jbsJai67maqXyxwFykU4NAt6ok+gm6qHNYJmC0+WvxogRXjrMIruk8kNfUJi6olNzk6A1exdFJTkbFO7ibPRw6TfoczzWXj1XgFiSD0QvER13/LTaFGAzpni63wyfFOl498QEJL8xHC8tYMP5CJlO+CLnoZL7DeNU2U/QHPB7ggYDiIHBdCQc2UDMppa4cNR/wf5TEITX1/MJxlnuXm/G5BHNJ7PJdSWem7sGgdoTAtd45ygID68naGqFy4ZDP3Wl40tVjaf9UdI7mp4gXFcQQhcpqG/txy5JrYCO1ey1zc1fgxSLK8oKV47x8l23W2C2mt2Hnpr4w30WzUynRWHSG/5egXnboxKSyeWwusjB9Nh6MB8dHfWBY7EXPUmR7UqMAzDMA51TS1VObbpCRG++v9XKAX2H/vtKOfvzR76eYqK24KVl62etlFJHUa7BN0euhnbhcJmAcKaY6oghwamS3U6uuKPezTOEVyE8kCh666uAVHkv2UN9qWHjwefj89f9/AgvwuLzmXnSrUXzn15dbotqs1EEeQT70kcRpu2+1C9fMtH4IATrXam1cCMr1YMwWJ2luWJmcitiSM2vX4vWKmM/B9XIWIA9GRCFRiXrBNxZhd5L4MLUbmxyflHsUrVyRuo4K/EBvfAkP8F8ZTUbp7yE15zyrGB2LKRVb9ZNpI7D9hJZzrkJujsVxyOgJXyRw+wHaPTGtor+vDcepPMg7QUSnFeXZi5/HS8qQVPFnx/cn6HY13VraCpfsBOpbAMb9qYkVolP7aGENkEXkXxL6sDV5+VS4BAd3OkFEqYCxM2UyK0ayYpm/707HODzL07SshL4azL4fci6gqAco0SbiJpyLvoYot3O8p/YgPQlSDdBTwN5DExJvLj/Bz822PyWCEQ/n768rQxy0hWabxMNU/Mn4yikR5WSJgpB653ogHOJHQa+xBseCHWq47r8jmV1jaITrLt5kna3Y+v56lUwQVFQCnPiMJlQfHSPTQeXCb5rzdbg0q7ORU6Mc/ffergn03mcfuwcKy3uJOYrkhPusqWHVQkntycj+bKjOsNIcvV672+7Qy30Dp8Pfn0OeI1zKTiqylXdP7FUheL9OdLZOXiFTEf2tZ5vaLGKdRJSTw59SMHEhmvLXVvLcCPYvz8hcGJnPA6ktqoc1g8uFxQA9Ech2g7AQU8lXg1aGiH271zlH9wKvB0G7+CvjNGS+HbC9YRYC0o9vdjbUD1MklI78I93KMofJ1rh5lrMuOmwS+NVipQVWIiNtKA5QY8iXfuGWdPfz+KpHRwTAyRKGQWtA4uoIzDZkOSCYxzhy+1ncFEN/ViHBvdCJvNciFwkLjJNS6aPxj2OyVSx17nDLL19ZRHX2muD5+lIDesvWXsQ2aPKWmb0g/FuUDaZs+++qAQFPuxzzESHol5AHRvJXTIQRA2c6PKcilrBFKNMyGtJi+mt0gjs9r8SW4sT7CTEY6omu+pfnwDQ3SyRuSWq3PQtIlf5RSnU3ZcTStRDHj0sAuBOQNmn8gfCFnC3eG36lzJg5VyRLdunIPfLyelksorioYI8GlsBWqloz8JvCfjpOaVFVkxjSFFW4rzhnKkyxS+rBciEdnMy3aF7XFEnJh9r5Vp4vp/JCjRgQ4Uk6DS97VeQ0X4QzZd54Xkmh1v3cQD5KzfV4hBVFH4hSyz1PGmmSGnPLtbr2O3+Ufz4pA8bWATahrfSk1CgM+5BKQiuMd0a7nH6l2WST+D0rJKW+a+JKLKioE+u8PX1Fj9Yq5MfEqDganeIRZhuGBjdIXg36O0IIgGxT3SZRD4iuIL0lkQTBOKBakHQetR/EaagiAWFO+RboJAoCiX5hRMCUUW6bwWtFcUvw+p1YK4RvFQpKta4D8UX11aasH0gyKclB8J2jmK/1yKkSD+oHjj0vVHAm9QHFzajQTTPYrrIl2MBO2E4ruRvCKIEsWtky47AgcUn1w66wimDxQ7J/WOoN2h+GVIU0cQhxRPLt10BK4pPrg0/y6YLikunHQ+F7RvFH8Nqc0F8YTipZOu5gLfUfzr0jIXTHsUBilnQRMUJ5NCBfGC4pWRrmeBWxSbSTsVTGsUl0a6UEHbofi7STaCWKK4M9LlQOATis8mnQ0E0xeKMyP1gaBtUfzapGkgiGOKdybdDAR2KFaT5gfBlFF0I523gvaO4o8mtVYQtygejXTVCvxC8c2kpRVMBxSTkfJnQbtA8b9JMRPEPxRvTbr+WeAJxdGk3UwwPaK4MdLFTNDOKH5qqTWEcc8Y2EKnN5JMbrDxcNLOVUNYccMYuAw6UyPJ0i82vkZ1loYw+WUM/L10bhpJxgU2IrSTXwlLK8bAXdCZv0pascLGf1GdmAjjC2Pgc+icT5Imf7HxJqpz/ZWw4i9j4CzotEnS0gM2DlGd3USYPDAGfl06V5Ok8Rcb1yftXEyEpVNj4F3oLJOkFadsfLfVsSeMhTGwhk7uJU0qbNyGdi57woqKMdCDTvSSlj6x8Smqc9YTJp+MgT+WzvVe0niJjV1op/eEpQ1j4DHo7HpJKzbY+GW1M/WE8Zsx8C10LnpJkyM2nqI6Nz1hxZExMAUdf0eydIWND1Gd+W9hcsUY+D90LheRjH+xcRHaOV8IS/8ZA29D52wRyYr/2PhrtdMWwnjPGDiGTl9EMnnGxsvQztVCWPHMGLgJOtMikqV9Nv6N6iwLYbKvB35anZtFJAN7BhYCLWSwZ2ZhhxacsGePBUULebDnHAtnTgteYc8LLExOCznY07AwD1qwYc9rLDSjhVzsucLCYrRgQlEhzZcEU4EiT6TzhqC9ofh9SWjGwINAUJoRhwyFlgwZAjJ60IITkRoxzqGldCJ0iHEHLYUTkTliCLSokWGAjC20iJGRFjEuoKUyMjSIcQMtKYjIBBkVtOQgoqX8BKpTOsEbFdos3pXifSHR3ycTf4E1+J9vwcfj3/JUpfg7oi6IvyNmF4X9r8znl+/+xlpcFfHu5kFY60v9qDtrs9htXre3+aW7e/fWTd71PA96g7+Vbbkevj1exvB3REy7SUX+/9kE/sZ6LNazd/FfAqyibBZOKcqTHd267f58FdO6/o7+uMGoI9X8h3QVA1J3MSB12Rs4Oo0DAusGUtcx8OdGWdhegKvhBQAaq8SfBrMNMUPYSoFmPCscC1qUZxJYcY6iZw7byj44etR9csQfLsG6m2v4/gdTHgzMBLYnvowjRTYprlWrAticuosRT/savkT75LrQuxZ87aWBpZGhnnCJEKItnTuc6UbNJ2jls6C6cfuUmUlTyzfUmZMF0ksGPVEOZL3q9pMTtLIDWG0Zxxj1JxwntFmpzc0qlu2lZZmxROxKsdmUATbDHzL/IgdOVYcgtmCGrlvXNYl+KT6qFNYQs1S4Pnzz146r8H8/OIh3Y/NDXoLrwPqbDv69VHahhMWasfJP7uAYdHZgvyZHDvY5cnfmAQlqS9F4aUI6joQ5vn24gv37V2S6GOCT9oZAoEWcAhw2zmEiGFeIosEBmSiCn/BEHfyNNrQhbxQNHvxG3TAPGKM6W9rjiloTdg3gcTsCjAWPVkN9JoA7FYNxX6ciFzQjheka7kYuhrE7Q/9H+ZakNCZCqbgVAipuKrgGzERcFQtRtOMaachwB0BKhJKMiD7fr3dk54D0JOiQgWTcQyMp+A4FBTxCMwyB0qDy7w2xug90skMDL7AG8hKix2x/jnwFkcDB/2iorf+19TlDosPaIc8gtphP/Q35DqJwOJqmiw5E6VAj+gRBwXONvIN4xmyvyEcIMXb29qY11XkgKoOaof/gVmKGdUB2iHtHKXKF0AHHUWNJEDmgevQPPLSDE9YF8gbi0c3Vv5BvIVLAYY6cIOoTrA36HkOiwXqNnIvHdN4wn/ovcu9EUeOomi4pEGWNekX/giDxnJDDEU9mtq+QLxwhIxxazSoLRDVCnaAfcCe7Busf5LkjHgx1jnx2Qj/CcaaxiCFyB3VnlriX3wbrIfLKEX2YR3+FfO2I1MFhQjZH1K9gLdFPGRID1ifk4ohtsOPpDfneiWKOY6/VSxmIco76Rv8Pwe94vkTeO+I5vGIP8mEgRO3stdDqpQpEpagderghMWJ9QeZA3NcoQZYROuP4qrGII/IAtUUf3L38TliPkdcD8VibR79GvjEiDXD4QYYh6g3WJfpiGBKG9Ra5M0Yim576H/LJiKLF8VzTpTBE2aLe0f84wQOeM/LWEE+j2b5GvjSEzHC416xqT4hqhjpDPxzuZNdj/Ye8MMTDiLpAfjBCf8bxRGPhhMgN1I3W5incy0+D9Rd5GYi+M49+hXwViNTA4QPphKgvYS3Qj4ch0WN9QJ4FYtux46lAvguimOB4p9WLnhDlBPUX/Z8TfIXnFfIuEM+d2T4jHwMhPYNCa6omEFUPdYT+624lFlg/kT0Q93NUhVyD0D0cvzWWZIi8QD2jf7qHdnjCuo+8CcTj3Fz9G/k2iLTAYQ85BaL+G+sV+v7EyILVkDMPUTXM1X+Qe4gCHEVjSY4oQTn6aATwDHJAPKnZvkS+gBCHw1prqssTonKoOfqsuZWdYh2R5xAPiqqRzxBacNxpLAKRDarV2vx9uZefCesMeQXRD+bRXyBfQySDwxeyQdQDVkU/aYaEY+2RC8R2YMfTDfI9RBFw3Gr1kgNRBtSE/m0EJ3hukPcQz4PZvkA+FEJqO3t905qqPiGqGvWDvjO3EhPWV2QW4r5FJWQ5oYnju8Yigcgj1D36u3losxPWE+R1IR5bc/VP5Bsn0giHA2Q4ov4I6zn6WTMkWqx3yJ2LgPnU/5FPThQdHC80XYpAlB3UB/pfI3gFzyXy1hFPM7P9EvnSETLH4VGzqgtENUftoR81d7KbsH4jLxzxMENdIj84ob/jeDYE6LV+abPasWkY7c0wJ2fbsmmYYW4MfQlbSzYN+7T+RQTeh3oGwedp5DgSOYLZQZXniebMwQFFckCZ58m/nzU8jJEZ9R5GvGcKj2NiR+R52j2KdI9jUMVTHOoZyqPo9iiSz1PtGcqDmhrV7UFle0T8f7FUpkFpBekzpjeyVspoSUWzGFsx1Wy3gswyLSbWUNIKL5ZroxdTV29LZMyY30mnGC0IGecgnYpGe0SmzNrXYj3JWpGXNnbGo1h2RauIZ6xp5UapaKWROhfGvZg22TeCkgEb6jWAT4F/HTqSE2GCoIGGwkgwB+MKrfwUVrZWktPqWpl+4ntbBqacxX9oUOMqvWir1pxLQDCsUoBk3QpYQbcG0LWu0XJ3aqxqm34zV2qtEf/8pOmUKQ6B/FQhcrI3k0JrtDpC3ZYtdPFts0wsFhaIUHGtsKKyqt3msKA3CLwz1LAGmlEUAGeXvJ8vNxSzdORVgdv5OUe9i1U84bJ3uSgf88Byq3h/wIWcw7IQQFUwvVCTD5G1IHOSGWbe0NfMuJRSzP1Wn18thjF44TN+Bzb7ArMCkXMgV3QblsVtJAPGdMopsjX4kyNynexvksN38Fz+4OzvlUUe+g1mydkh1V2/sD2HsMTHZGT/XbU/qb0OKhiPGTVPUHg2iJQOcywe001eSFLZhcuOZrmYwgXP5I1BU7vlEFkuWdQH2uQ+Mth3VYbXCkaHZQ9bYThssbzoPZ5DPH73Ucp7doZETeaASIZC+kBbeF7jDh1WJ7yr79d9RTfyWYAb8m13YpTgiq4ND0qS0c7f2t8kSliThTGkWcMq50g1Xm/W74gQaWnPuf3u0ImmXReXKAS73vXzIMNz3oK93MMCc5tRM9zCO9GNAqwLM5xwhO4cNcQZYD5RPdDIiewSdZhn+UtS9dymqCkGUfOP154cUi7kjs2+X8qAygJMSOKRhQX6iEfugiVuL2wusTtDsY7x7DQD1khvZnKJzw3u1BBQ+F1L9fPfIBOOKlWkaUE1o46fKOMby8PKmmCsWuiQ+Nl+I33GIVCEbyyi0lhCeh/AaKLY5kE4Jyi6Hu/+XUKog4cEsuQ2fHSD3IAQdVVYahO+DxDc1ZgQuyQO8M/1pSZW98lVPUpxyE5c4qFmgrTbC6vR7DTt+2XaVB41Iq4wWMUp5g6RsEQA/C0pmr3XMVp4/DVuxeFWP+MFNad6M6TpUJpoAsY/usEjJVskBj0ZclShllc5Z9HGsnNftsoX3SWc/DJg8IIqscMxbOvKEs06pha1dchkYAhRtDqjvPtsgzYZmRaknAMVjqE8ZJALHXwpIQ2ajy8RRTVeZT0PKnCDCjx4BRoztos2fY4t1jxEN74LDhGbF3I7NMROADLw4+cw0DE5yR5SI25f/XzDunlXGmH1YFTXjAGZpn4mu0cWsqAVFvJuCr1Ipdm8x0jaj1xEpJ98jt08QnMY/jjxPDR4sVcbg0A73PZKQ+zbaKhDRaO24nfNFEf28ZrFGFoz9VYIr7EQpnNzZCrUX2NbXkDs21YEB1480s9BagiEYIji4fLbY25yU1M1RodCYE2/0MJhUDxOAJfFm/YZjaLhdtvyAQ3xpfeYSj1FTDiBNNOs5u09XPvIKshLvvOABjrV6xuf0vgWGnjimEUmKEYJlcy6qjcnRfEIMejqAYtDUAQ8dQaQoglc0AkN44EOlO1C/ZLxvdSyNEZdmuqqdq2C0ZAxJ76cpquSeb17q1lquWTZTtEXvgNhhZBdTKXpkH6WCJK7N0VEYa5AZoKm55MY9hByjxVM57EyzoNSYybFkGRJ5XAnnSt0njDB+ZAAWE2/AMvm13hKHF/pHK27+0RWYm5TiJ882X5M85n1+liUpFVwFANhCwvNqPPJbGP7EvJUXH/XRJ9+rVy9NcGTx/h/zJlAevKX6F5eEcDW30ykmfmB2KZVvH0e8BmoIzN+cack22U8SnZj3Bfu32ZyPCcz2gkojHSRojjUjHEkKQUg98dDU5GK+VFLGhhrLJITC2jxQcJ7Xz3EbVwL3FYhOEDmJXcKM+WxddvcU5EvGnbHieJCZnr0TNV8tyJMlc3YvZ7pjocWr3i3zMhKwrGLX1UCKbVnfkwOFquEROqCn9eWxH4gJUOQT7r1Ju+rP6R6dtOrGrdX7lkOxq1wBRs25F73r15fDu11S+643SnXexloCT74o39+AZD++AX4JQDAyR4A8Bu/AP9i3XQz+3pPW/+jAjDitOc///WNf/E6CWD5I/iGS1g+D0JY/vg8++nbr1foj1x+VSWetMnAQCYbo6GND86knMbcIFrfEZd15nKcJ3PL0oZmixNFByv9qv/28/TY4YZHsLOJGxuSJQ/HZ2HsO/K4LoBqXvBAD2eKZBKEJ/y2A6hhpAZDtpS99OwY41upxdGggmklSz8NIBb4SoOjb/nrgVWY6rha7sQ5dfIOjpL+U+qBu2XohqIQbYd1mvuZDFKMGXg5KN+VUCcNMWZWEptqPnms7UhJZvvbh+cnN9Zpug9XJvBGaW1M6sJybGEPtqVzhotHCtiB5fTz7r24zGpLmiJrR9hwmcYKnhnRpRdyrTOMTx2zIA8fMCQgjYnZdHuqeYaDWn/w+JyGhbmhkETTogosakpR6EY9a8JiS/lfd9B+u6R/qgz8d4dOMQz8gNkJxcbjrSZ9hyTJL+FsOQH1k0B63QLaZJzscxosBwOmjFUEtAmMDvRbG1aoGpAcJ4DepGM1RKL54P9MBMoN9qXhnLixFmKlOWVohRStJEGWXXX2JM5aDTdx3w2qNoLoNg1aGxpbLRGL/XxqtICSYYotvsvIR9cxpDyhCZ3fB18cee1P03LCVuMOT/HrPsMmRwJmZr6Hz5UByQJ/llhv42SEjRSHU/jxHwGkF4yrTaZ5VHSPH08ncbMCkL49QrYzqwnvBl+qGGN1H1LSRlhiyLw0UNFE1ud+bQ/WZxTn1rHhnR8AT+3jIDSiT0+BZzvwLb4pTa2XPsv/V+Z9wuYrhC+HZZsdLFpyJlM+ILHXcemHMm9jGJ5OmsA4pfnWE6V6RKhXkB5GWdq7djhCRIuRoFeNa7RzPEuhPKmNVnfewuJTm9scDPfwdHJGB93ULCXAj2SpAPAU/44p/af6utI9netfQjqxcrxOpw/9U3qGiYuyIFZjFHSYUoP00PXqZ5q4250bAem6+usqmkeTlHQxzA7kRyyUCQOyHQjh6YGx9SCV5ke/Gj0QQXPnu6BfjPKW/ObiSqqWx5IDUcvkMB4BH+iHKohTrs5Q1HMX03IwBbSjB5k1D3JQ8RNZhqIFu5LdGP5wokT9+SL3/nu11pxH/3hnX5bPXOOj02oTnRCpSNyVCp/26PiSYEVcWNImFkxiE3+RQ5Znj/Yz92fx7ZIc7PtRoID4Te/2D/yNeMGO6XH/h2H4LP+mcL8RK7A3Pe7+JwIyeEsyOJs2S0A3mxwc53wxTeFTGLyfL5enxK8PHhhbWiDEz7+vbpbeYkjaC/4rnCvg/VXS13cQAmL+oImkP2HYASxhmckzo7/4ow1NvoAKT5uVyQ2cV4Ad753rT6neRX0QA8UzAKcZ9h6lLn++dUh9SKWE848Ccr43SOyosz9kS9nm+UQZU3eAbuiUG//3QAWGoh3U0mqsKT33WArupoVR8Xic2/eQ/0GPY7zyF8egWHO5rfeYmZ9LNQ/3UxybPgDSRb/B6C/sgCMxwPylOrqyR8Gcotp/Ky3dELBAz/9+890/gGuqLelADcvTiAiW85goyTi7wHHhKXhiYDH5Vz3IBTH0Skn9ITJu3XevaBFj/mmAtaqLqdf9iJ+wXzY9Qdp6cGrvp03hN+hrwPMnXwrxc/RWO74x/BMVLfGnznaN6syV/9A2RA4KaBvCV8C2mmI+gPapd08GdOUsa0sZ5rH1+L8DkZmgWXRIh/o25vYqZX6qRB7yWU/8DPTlcI7V9zjVWv1hLOnUQqDPRdHGoHs0K2w5sXRyU4HP77jUlbeE/xxH3VFot6Tv40+EsgTzvp/f+GsbZjIyY4v5ztwFQz0zozzy/veAm8/Q0IDjdNnfdITe7M9DZLiwTuG4ubti/KoYoVQk1UA2YaH1NiXaZNeHZzHHnDdrnDxFmBPpjsz+Wgk+zSrrv9FJC6fblihySF5a4VIdlQ3td5zpHBRJAFwac53VkpFc2FlEp32uqHvC/dZ3VVGVSriW8PoQyy7XEr2cWdcg4wFhQBievydjwJQZJAsfA+LDGbxUzkYHGOyZ/0iBjVvhkAkzf/AZ31GvLNVlXjq0+n83KOPoYPtssg6vO7vYOBvVnOcZgfk8PLBrHsNWEjcJHCBuSapTxQ0hZ3M3XYECmx9FC6qGMleUszduXdRp49wPGzjzur9Gfdq50cGv2aDkUcDorkhTF9r249SqUviWXUxz7Oobzj+mPuEdKvtRqU6LJ/cJTGp875rfOZnGdpN02SzgH8k2HvuLiafp3i+a5myH3g8j+WMAK+7t30a+/O/vOACqDjq7yF8sLvq14urIEc+/0bhMpwM0DZo3fQxvlNcBtkNgWF2xKPmfO5GHwTP3mSCvZgjr4nUJWfEOuJ+kdJ748ROl4rJmSskbrrs9vf3DRO8xwWaWudUgpE7uRfJFXFp2BKyOvCEGP0tzWokMfzZa8dpAl2uU33PXAvowxfMb6Ep9u8zvBmvwlpYFc2V45cGUVv+tA4ZbV3/PfdcB63nBkba9r5S6y/33UCv4Wq2q5YjxKOtUUcxvfraoqrceLYNWyujl2/ivb6zQy6RSIRhoR6HTGYW87k+3P4iFOhD2TaIv5HGuirRJ+AXVVoVt8As6Pbcqhf+NNmXVqk3FpSzbe2olIoqG/VKtZvaCOEr/5f/ncVxt5NnrdguFmWeM8frOCcKRvjfQ/7CxWhxJf/0zbFemCb/uE3LvvZsbo2qNsBRiw/76v05r5noT68K/m28c96KDXh8ntXNd4FlJVLgX9LXRvLvz8vlDIYGvBOwFcPCJ2xe7+LxhPT9MgptGVlgEF16xGamm0XvBKGOXkh7hwp+ExK32Aldx31ckKLJI4/kbWNsGqibGxa6bzzUgCRe8YXnUgiJBSLovfFuMgTavf2eaLP/d1zSJXv++FINdU0BRw/q6G8tjL+gWadR4duE4HbheYPiSn2Mu1ajUsL/hbdRhLpqwRe3iwrvAv+KOVXzDe8vbxvWGv/wrlL5+3W8+CEe1dO97C5bbr7YdC0PD5c4/+BQiDJOqCd9ZcXkkdNHTuD73NY8btYDwasP+LL3x8dBOa4QMbeR1Hg75fR0oNPLMAr5y4KcLdfnrgLIeVu0SqZ80OviTu9PtecbZY4jA7f6n+w1B4mcxzmsJOmfRMT9LKPukUYwYjromQQ+pdX5cg7lfoPtamqfi+NvqoFT1OBO4h+iW/KEg95BJl02lAklfggxTVDkQwYkYNV5jXqTGcy47HdLTHAyODYRjzWnr1UBUkc+Tbyx5GMo8dYR1jmBbV8Z4unq/8QSvCXE3mOP+EfmO0feLPzgxwvp9/hQ1gGHS50+2mLD3sA6vurJfP7TNyGCTrdgZTP2M0xfMIvSQgh76Y+psg04uyU/XfV4AHDDY1QJjUweOgMwjuu+txJ8dvn3EM3dzStg3DA+JwmO83ngqKOPZlBtyDv+lOTOYpVl7b1szUli9UkdBb4Lnua16XNiJp8BTZjFwHCPTyIzO/Mru8ne/oD+oGIrlgUhVxlc/64kNMUGvPSkXcJlJB7sjyJDwvEGOol4Q2UUYgEQGPXCtiEmHBpoavY/A+1GCWw8tVkIVFoI1WT0S50cNFHJoCCw3qDW8zKSDGUFMGBBaZNBBSFD5bBLemAKVLiQhSCj92ZMZZAErNZUfgSKdXmzXkRZuSGCQL3y3OcONZio97AidTx9KkU4PnuZEUkTkBpuk1cvtOIdz1EAjX5g9pDEIj1FqGtfwTS5o0aO7lnAoyqEi17HAVCPoxmVWf8OZSg+R0PQppEF26y5Cu/6290GKdHpVfWEnZd5DJ2n1rKz5zHHTlExVU363BVRXqYEVmfSgweho4Ic6RVvTR8Q8gRejVTWlk1ErEy1G0QOzyjrYSGaoaa+OIP62b5n8wBL9+IjNO7DjUy7/ngdnPpvCQibPj+0D7BfcicfXP0wc5Tej72g2Iw+1CPd7G7rmqII2xps9vsFjkP/mb9oQZkg3wcE3QxWtycSU7ooDau0nrZx/xDE8E+nzNKU+NcXaoYu5G6XhObIH0oVhE2nqmN3nwXpIhd27dTFT46132EKFEA19SMWYepGOcwNdd2F381+ei27UfFY1Y1fnIVEPSZVhMRI9PKXVScBhu/RBmEQqUzLn7SV5AVQQMqt726yI+i61UzGJ/bIJHHHN+sBMUoOt4Sv/g3wSf9iVemKTpJ/zw+IatMMk0p0oemX7kUmx73XxU4DLwiakbq5n1h8JUIleAQlHpSSxVw4UFpg9vYKVCuzTeXauhfXIVaKZyf2hNZM5UHLJ0KHoweFu60tctXRKXsbiUFxKBbrqfIP+vf/t6rlzoLXzKlHe+x+wZ/WjwD+JAnZuS2cM2ScWwvIHqXClROyJmK2jFVjDIb0fn/JzBzz4CPLKnN8mXGH+NvEuMr3tsV+qwKKkwATBukEWBt06xwoEAfGMl74h48IVAFEjE2T7IBI3nxwbJ1hOx1BxkPtpCyg6lyvQJ82xqrkIf06TcXaqCQDtCeZ87Q0F6tPNLqGPhRA3kJ05UZbwu5QVymmDlGOPd1IJFmUoN3q172q+lz341oy1N8/OpCefm3WF2cDOMo529jh/gL/RjwZ7Uy/dJ5c12orIE8+ENr43Ed6/hjx5zcuz99Rctf+Zux8+/q6aPiZZD5teuipskWUskZyvEG1FOWvs49r33rKZYJV4w6TkGw66Gpde77ksf8prbyB8r0BUrPlL5HDKyAsQz3v7+INaulauuk0UNeBrfDF/fQE42oJjZWVUZtim6WftgbFpvmsoVp6/uNtWs6MWEyjuEptHUteHpEqe0cbVTSG2PtjpMtoul8+UOl3mGRgY0yklfCE6wM3W4jsDRhsGxnPXVjc7XUY7oCOn4Nw13VjMC+mKWZCh7kHDN8XUYNlnFHPXbUhBwPUCyLNtXYnxrqTOCAVa3zwo1AJTgbsFhgyFuSloLJxPU9muqmFdv5NSJPFDloIja0VfFborC5KPTRIzmUTynVndjcsINVDtwYCW+7lmKCQholM12GDyyNJviwNoSIyNcYg5DRYo9hSVEdUObWnqvWDUvOZswo0Kq1IGdNug3sdsV0CpydfKxHEVdtPEtmYG6x4qeNmRwIAJOZgc2puExs/SdHHkyx5PQ7X2BErlOpvEse97SlJyp1GsFi55gGThoZrQVvEfPJtookuM0CZ+NxuHLMqc7/YD22zS18s1MM1xg6IWM7YRTIp4O88I1hchvVrHkvvdH9oVkaCgRUTULuudaiJe7AQ0kZUHzQl1z9A+GD+KouHQRHmxhhvqEVtbPa23uKMzHqHo0s8xZLFS89RlPTwIylmBCW4+jPQA0TYC55B/XOdMEh46LP2Sj4Fp+ApU9jDbvEC9++HoYeajVmCvV1iaB2WlttELCfce5pCfO/tAsVgG63UDFP5ayrrRQ1uL4YLMtLczEjJFnn1tdTQbiu1nXrHGR7w3oxiijxU2MoOdJcsMJ0fqXswbGICEcR6/JM2Jl7XYa0Q7rMsKYctkcbqjoDw+YK/pn1nIptnQynwIM1RGKSY2xJCEsWNuiQpdzk4eFTZ14mKhJb3If5+Yi6AyuS7OjztLQlwGbGHddrgxnQdFsPIewSwFRfkWS4cP5oedYSplAogQ8WqFt0IPwKFxnADVE1CjyaRO6VaoQqcj8pT58MRvLQI1HRLFX5drWdfiIXI29dwiTSRR37XVQZ2baMB2oFbUPC9Ry59g/lfd+Aofb1w9qlpYi6rLfPBzUSF4gr1OlNJGej1fEKTAVr/6t2MQZKE6OOmk2t0nL0RkjpAXzGNmKzZjD1bkQev1JrcUc2CUfaij0+6JpySeoX0eh1Zk4Dll2E9lFvkcZ4VWYda2eRTQoJXFULbnGKskd9Da0vGi1OvSOQvP3y4jL3bjAwAFdY1wsGWoVdKqYYZdXz/OJfjHpeef6mFtoNVrc/4RsRggz5ZWBplIzg/WvhfLZxSpTvASA9IkWcYqMEqVU1Ck+8T8r3aTcG7VTUGvSQGr2yJI2VlUYttQXnIZmVHkHcHoPMCYz6pOfq5rtOVWRNaPE426LWID81zdvp8p+hdqa5qRi0Qtfn8Hudjtdk+Q9+tdwe8jLYUf9+dxiNZfYerTfsGLwHVTZflwoJXH2++eLMjNOQcTKf3D3fDHga1SZgJ2hiqiNxCdK8g5XMRbLtVOHEqKFFY/Mg4HxH6pieyuqoGYPef+KphpKLUp2hFkj6Ul1TKzGx1R5ww+CdFpU1o0yRMTfxgambPJmH5yssyWdhZVmc2YismUNa0P6lFxUB3hNgrdiU6R0ka3e0ZZbWGlDiTEPibNbvCCpck4c6kMNa00w7MRvUInqYr7IiZny9nuv8tksvsJEGN87tNPghhc9fL+XhyjZyTPCZIM5Ryq9iF4M8fF/Lmm4ylPkC5bNTzXRXJubTqLUIxTyglbRAIKbA1pcwJq3LTR7FOL6IbM8Toy1/rnQ/duTE9cUR3lzMxijppOWotYy12uYJP1kXneo7hjHuM1c6KqTKXd/Drrg/kqeb9eCk14lo/iPZH0Y2t0LNR/mWI8H2/yTE0L88V32XDP2ZoIkEHd12EGAD16EsYyQH6vbnqGEX1QG/HgHpu8cDVRvENRR0lXQrs12Xrea3akjhycB2l3GrRTECxMD8PUuZ77JvabOKpeZENtWrUAlS3CpNCVzvkabFErq55dfL9AY+ZyQWFSbNgjG0VCZ1EIzBDpBJT4kK99HUb0tSQuKXWwIIt5nm36F20sdEyT6xumPMcnfXSA1MmAx21vjqk37KV6hx1nDS9egMH5SiakP/EXE5Js1yqMPMt4Rh055hUAbsrAyKovctrJwJtLbB/UbNn5bNGIIV2X27S3kfheU6jZTVz0Z8m1vjNwbUMVct9UKgbHNLLtG4ErvR6sG9ZvrrY6OmZAtiWkt4Qd5KWUm/gY4Ka7xid3fgzucalbL+aC4GbdyZfV++/L5FNtR6XaeKOuaOyNz2Pv9nMxnzBvyOi7Fe8ZufIbjZgTj8OtT+Cx6r9VxZO4A2EjtYpaDXna1xBHPd3SvzbwJ8RCMfcjpixOruJm6Tta0UTZ55kYlcLliXS9Op+4R87GR302Fo4L2tv0L0mkcTkOs/VEJG4ixE3UR/Qm8ONK0CAYZ5JZPVjb76gGH+0PtuWnRvbdYrFtKaQNmHUXgT59jbvdBUc5wLkiQQlyngRuHiZ3rf9JRU26FsaEqhv1qII6moYGvZF1DJ/pDttzUDG+BNEz0VY55Mhzv7Qjkcf4Slxq20YuNiz6OM9fmAIEn2Zh2+Wetug48Gx9Ttyfr7SyP6imfkQj79AG36zntXf23LnJ/Wp5M2xmfww8ZOHbN0KwYi0xBC8M4+AfAOI72rXcQxIrI+89/lEs4CNX+X4Mo1Bbj7IpCN8ivBjHL7TlryVnSrQLTIVy86S5HDtyaQF5JSR9cOGwCcuY8uJv++4nxAJoxoE/wCgvISUv6KNpU5KHouxefAyyYATdVlbbCoLuYf+QYgKYjh4Lo8fq5PsdT47L38H7maP/JR7+MIMDTzsfp7L2czoyC8j0awHyrcPuGtuAIztshiziHG++DSUg6vAcP2kgS6+SNuYpCfxRPISplstAIrrOShSa+8Gkw8ca2mL+RUSIJYRz2iCdm80a8cZywUhJEhvPpuPan5F8k9F3JznzSL8F+AYjcYoS7NDh1XBzkqAxVScZCOVbfhigMu5/Ulsc5MY7Eyn7HkrT4DZPYQNTjKUPWfQL6l5R1MKer7NgCaTb7+AcVe0esdhxU7zoUqe8ptxeW3yTrLicbrtCV7QVghbJEKgJ/KVlLke2jgYlTPwJY8CvGkBDnWsxnk/x3WgsMXcUQgffGnHKlO+EsVFIm5C/20ReWdIyRBfbOtTKZJzGtdBbp6lqJys7zD4j6JVRb5vussZrwPPkuLaju2SjoeDc5ou9xmUDT0fQN6FNQJZ/0qeBP6DYzQt0Lj4V1fLuM14UVT/rIybPl3NiD5jdPmX2XNhpOe49u9o0PXtii1Xn3jbywtsTRGIcXSb6AXSA3W6yRBXja9ds9VLMrnvsHlRxjSItCgOVXoyo4ONP9W3niDwqMzWIQV3FKfCYpRAMuXTXhPWjfwceCznc9AaOLH1OgYN2U6cW+vPIPJ25UFzvxBATxNcTEutQnDXKP9FQhUpuuRoVll2bDxmK2SfOzmTfoZ7C01Q37FXQBtgDl2+39IVulsncLOz0KQwz3PcYxBelR5ki93toCW/SEhvi9Pkfu4EVt+1o8xQlIgQSP8TKhqrHktcgoHXtBG3/4CQ4T9Px7reX9v4VFWiq2nFuInmMgS+9MY5NuD14pyDr39iH5R8dhV0kzsSF/eFevEjNLc19vDgCtcCJ0WLRuRm/57XPzV6vnYAGaiPxjq6gSGG1lD7o+OGJaieTo6PJhKXKnJX9eCDvKWarC52OLP3tNLq2ayklcLXqMGDPDJrNk9Hp4K8Ui2cwWR0iqVoxA5drKnUcPS9yq2ncFvqiiDW3T0+wKBgHYvt/V/sI9/nCUZsKKMJox2I5XzXAnnmdzmPrYox751MxEuV9x9RW4F4E5abLDqFxtPwtQpRTbE2TFULGThMUaLaO+1W/LXn5sdWyF/RRjeDrvWVJ8rorpA66td8qxIpx3oe7NirO6nbjkiSHXDQZxPS27mD7+ONTjRACHHO0sH6xNlJDQukP44Lol9TehtgUxUbIc6fQhf4wz8tWJpJuDRjSbhQ8pihGNG0ZDlMmdgom2RGSOw7n/7yco7kTQimYHOqG57DWm8tlOEWkS1+K/uQt0MydS/X6iplzQjdELCMB/aj4VdPgs1NQBQyOiS238Z/zuwL538uEaDqcjoqr3Nv8Hi6amu+aQ1dUrpo2d9K8aGimohjoEjdeSskfzeSCbjhZqbwonSM3p73WtMjonYh8VHLctRCKFyajlIFNakNYcKG2gseJN7ed8+GcHBlhzvEjy2Ki17NfX5oMkntMKaK/KeYUftNyNbehT2owOnbECK5hZFcDSNoMmdaFAW8x8p/O16mNuJTEP78Sa/fXCPePgrnJUOVW0gQtqYVYtRkFstDwe3ZQhDKlTU8kFueI5bLAYkAXFBPuKv5Rzz+K7BNzcA7ukn31Q6DfzuHX7xMr6kSk/84V8kW3PhHQGsACBcEu1UujkMulW07pPGnDtsWqhSkjigFj7MjiPakokX4UPWji0so/aNU5Odlz58wbb7N6E6gRRzU5nzPK+XY7OjGSiNauM9QH/M/n1w/9LZ29w+TutPHl2LvR39X7n/r3weFNtO/KczuEJpE+U8YK1eBnOXRf5WmhP38gM97z/c89+jraD9RLJ8IMPXkD4hDycM5VKutc1J28DgR7wjy+h0REZA5uAhb1Z16XHB+O2jjg39MjTYsJLqndK/Y73OL4/bybhNmLEVLJQS6Rz7S44uLMUR4JxbaeFLcCmYGh9/nX4I3L5LLPXrTwginurJD1s8eDXa7APmmuksmK308arTmRl44i5901x0qd/P8YwNykfPkPoeQCxotmyLsF3HbJnU6dXGOmEI4JfkmvLQ9t1CW8GEGV3ffQ20SljkC6vkltcm2Ui7lUONX6WwCyYiIyhVVxvPCoiZVAqoOpU6AQt1lfwtj21TvVW1v0uDq+1zNQKpJS31r7KtkNlLGKhrsQKG5EA9I9C1kyLUmeTwjEZ3kt1Ikh7Cm+R/vd28LYdyZR9Xw5N1SaNwhbrwqrhwq2hnAw/WQEkzH1P9K4oY6wPt+sYtDGYaeu1Td/6Aor9cWuPU+t9f3PbNj7PU36zqPvfyH0Hdz6IOtHIff/Yrbup7P1PYWtj7EdVnCj54n5EMYS8WHsQt57J5EQd1W8+6f5/imI0K9RKonviTB7UxKU9vcaJCLjIVIu+f+zSVkcIfLkmfssDejv+Hmn1hJF3kfnDCYiDJ6/ePkZ4Y1H9c/MVy5RHmw4G0iTMhJP8XqZL5G6b7P8PyUg/QJMrCZqNQlLLnSfXyW44+h1d7SZqrjjfIrfQy9igYp42DgRITsRmljK/ldEHnLYVaBeGXGT0VGY8uR8K5FZk6ARnkwKoOW0qfdp2BsjpgDfzSNy91IUJEqR7ypeGowg7somFMIaB77GAbVvZWspTYKZZby0Fcrv90E9Ib1/sq7+8rXdmejrysK74HYUtCL00edihPJ3zKp9gbBcCfvctJFEfc/2OzrOnzL0ABeALq6yBzr7eNynk8Z73dHLeLBg58q75O06HVn+Nye0rnxVo8AXoT3hap75Sv+Fb7YRl8wj0q+HChcAvV/r1c41ikC7xuBHfMH8UfSRmVKrBf4DWjVD8bZlTUdFsMjeLUl6LRSxRppGtM5DcFIpkhmrqpY9ynclVYh9X0loKaeMx92KiIzgpkO+mf6qj2B6PdpGYUGH28r5JTEvVCHoHPa2Q7XWCnvzmhHniToRa56mvMmMX6wXovIMUWfNYQ0lKaJnfEavVFRtyqcUMXwV8bW8RngBEwV9CzdkNX194AOn028jCmteXlCIkW5xFo5BY4nug+UGCkxGnpiEdkfvncObbjBsbUVDESYwXhcYX6HI78pzW+bNkbRFv/+MX0Ea1bF8u2aab3Zv3IAeEv+dxM61mtvCgNKGRHA2psRaUh1Ev2KvDaT/SVe99+6rHVoR2g+0xdOQs1LeZMZQGYFcoz0T/Xbay2HLGsxoiuIM9GrOcqO0+DEPz8CsizGHxr/8vg8JQ3RmeqhKMLJNa2KSmK3OpdmjGAoJ/2MUY4+I8rP4DEXalGmsE8GDRz4RSG8XR3q90jhxSDDIibQT0jbe2ZY1g2anQzdfLI3xKBaypFmwoc9amSmdNS3Wrzt9eNouYl/YRWo686SRNw+qtFEYOtMQnC4aLSdTvGftiq65ct6CniXndfXgCYHtSzWY3shMzS4IUnOOJeesGGEitBkt0Em1znungabiWOvFNxjw1ABLQ22XX52fjck5d82vEy3QneZlkI+sWommdDpnN13qm3HV3QMh70DvKWLdzIoVjZBPHWwPpHhFGjtSTddRE76V53VyvdPeNrXU3glzFtILtcWFBsdBnWtows7Ua281ZxUXdhNa/WBRFqoVJ+yevjNzx4ZZbMr43uzVg1FSaCLzbM0cWKTLv8P+7QWyVzbb04Phe82IYJ21w0SumQyPneyARB4AaCeuxX8IGbvvU4kOPYJ9GYMDDjjedRHGmEA0uYeMegxsQHE/slzQoL2nLDC3CgtZdKsHRGEP4jEnL82PDDyTO0g/J2LTxTn0WPZ2sA5KUyC/tZUh4gBP0bcjwP0nPRanOPytRoMgP7AFuP+hik5dfADB9hAAiAyrEhKxrAkHYhdakdAoPgA/r+GdqtmapENigoYS6jRdo8j4UiQPvx+JWYvfm96rtjmIeob0djTPszZOMHzky7ssVt60lLdy2Wv2hQ2EThG0fwuf/Jszh9rxswaTfBF+sGf2Yr2vg52Vr2+fITWQKM38NuFsYIvYDURVnboh9GwX0IGU9VP1qA00PjZrengGyvEJgIxzmVsw4Pjp1A/nSCyZAhbK9Qc2tqHp7zAPmbCAxSkNoGuPftkkTQ6ZyUuXNE2aM9V+O3nxJCqWqC1W0ThtrENKlh+l7eFI+RwuIf1KjSnXZIcy/8X0jBGXeOk59phdUDJdKpkdVfy9TcCMc3sHYZ8CYJDjFRxySzju+gQwvu+dc0acL9dCZEm4u1hfOp7rEVzxQOGLXsK33Um8y07SeWXUn9wDRh077eOC8TV5qlc0yGHwl2rFAJ3ahRojDTQXZWeN//K1r8J1i/iRNJ7J6nXasjOoiYj4rIaKO1axWr5KoeE8CE97kvG3PLZQ0Syny8exFsRc6n0J7dzcnGc9psgh7733zXA53+y2m/5cUJjGqL7LBTJPh8urA08N50PssfgjvGfkHOa95oQJj4/RnKPZoPaPLcL/BnWDd9BRzW/E9MdJn4UXchwDazwaaPIvSd5l/Y2dTL8jrRnROcgTXgiPxyw9Uh807+Px/aGdz3XP1QQG8qbd2dLztWNA19mEQ3HzxcRo+Cc7VKh56hzZJna5/vtLsqyYZsNI1zxb15LsB0YvIW1UotycRpofdQJcl2/7kdBPRY1fIz6py82HUOpH0R1K6yWMGmcx2UoqOO0sYR2300xmAOBNKlPpykJf5AJ3Vuls7E9uKRaGpiJutugJSS01mS0lMCAJMSir1F37bDP1y9ueMkz6Ymu5CVwQFmqDAq2bYlqUPnL50WgikTIZmZjfGlTm+ztK/OKyqfpupMuG/WKhNsbQN/Q1I4EMw4leSPH4+M8FKaSJbj4YWgiSikSwEEYogeoSCIj0rHSsq+D11Wyv2XEx1dmkYmW15iS69pi8rI35L/tedlpp08U8qH0p0QkDpXGgWbcnu27RCBti5xu3DHtzYFPSrkFP4RllAbi19s6tuxkDzCSkV2m8LItGkAg09p4Eh61ZvnmnOl9EJjJad83/IBuMpJn7/Ngv1OU9/+bDfdKuQfuKIYtEzyf0XfG3HVcNfGgaXbYe7Rc77gcCmoTEaRZ5LdpFSovHRTxjSNDBpPhUeQkaon7H/u6p/+zfVm4Xuz3t7VlvV7g94e3c22K0i4tyH+K4NnOzd2re11mPH6IKeVXNi+sVmKfjDlMRngD66AhADwoQpfkuljConB0jGwPcdbEJQJpcn61/3muZExMF0NuMPu5okdkFjQppfymyxapfqNGFlnl28uy2PmxQnOnj+4N6drWBeJiNon+rxhlE9vbJx23xDJhPRFCAGJdRXlKDI2qAKHqP/v2eeP6eLsy1Z0c9Dll1Z7AHQ1Qwx8ZCNXZ+hEyWRFCAM3NCO4LZqpF2tze3u450fk3naZZAWHvRo8jSFieSs6cqsZMHVcfXYFEDbqYJFTOo0mKpaOq0cD+ak95Ug3qfj9AG4aD/b1yInH+UqmFFRm3KEda5Ss34CbfTkqx7v8acLTlt0jv5eDoCgNxO+4CUPgoDnPSFRXTTc9YdFR+jHrWqXlf9OjonKmgNk/grVz2X9Rqz2wJXBuOxptD47+5MmlI5oN2kT3+Xw9ZIbvkd5GpvsEok3Kh2LNw7191pmre5vvT+7ObtXC5dOfgF0qPUNABQfrx6pkAWOPIzbFsfvtFfwya3b5gxCVxLenNM44MWeRFV86/fvwSDJ/7A4zaxvbGewJHZ3KjNL9CCHBn/qCD4Z8qUE4nK66OUA2UfrGh0AQRN7O+U6tNsazjH8SofUS7YhwnDEv0IXCasmU3qn9Odmhs5LKCak9bNldAMT1uWl3VfmenPWPCl1+g5UWZZg/w3hG0MLOBAdGsZav2GymiK6eM4ZgzhoN3dS8f0d4eXmodgvS6qvhhDAjJS0IBd8DziXTW3Wskz6n1gqdSFNVMUFcepkfYmmY8/U0FDnR2GqrVwqkACIl8R8fjkDeWwR1YiIr9Q8i4ot+CQ7xExtQaGH+e00YdLSAhRfFVtInwpklo6TfO2ymJ+moux9nCu4Oh+3YdFQFD9io1CP7BszFSru4hpE+EuN1gXH/6Yl60jcAEtNnmxqSoaFpAptK1f+E1DXbS4MXV4ET/bzgH1nzteBYI+nVwZ+zoULO+ImDTorvE/tpX2loOpyDL9sR3F4KfTCHZc80H4LpgeTh/6Gcc/dkpaKfK1Z7lXBamIZJPqu/YeEQ4+DXdA2pdv8Ri4QHLs47VFOIyNjwK75mviV5jIWa2+YlXUKJt4mw2yTdNWLpfViqFgpmjsxTg9yRRNL3pJsdEslpg4QoSLog/nc+5b+iyHhRYyBxOx1GIouRQBGxp3QCzGNgPDrMXfGN9JYKjPn2lCvylel76GiXUOYQv0T35fnXe5ghW6Orj37WZVvj/kM9aX0s5fnn7k0ESuOQTFGBiUB0y8JV8fs0wbUa9y6Ax3DMqVFO6pTzHMYv9hye/8wRlMacPE4kKHcQEDQWA/51IJWqd+Ct9n9IcWpZTqruSdTqclQypNuao3+Y3e7IJJ+VyWlxW7btTdTimSV2a4ZVv2TXnxTZ2nluasf55NJk465EVfZBd704XP0U4vW9iNpGQHqP3Y0LfH0d8F5zAJU3B3d7OKnzIH+AsuTYxjH8oqhWng/fFZaHxX7owxyTcCyJ5EfAfzcOfLPU9is9vIuH5I0T6sUtiDhs/6d7lA1/k4Y4H0z5LCBfc4g6E2eDHk9k5RKZIK1SlV3G++38M/Gqwku5ExNiYk3hBLHzRW/SX+Cmo6KV90xV8B29Z4GTTSkKRv8zPw8sOc+z42eet+I6+C3/TkLj6NyAT1yeDp1yYtBHMXmdXjE/VfSMx68ZioRa2Gi59XLRiLTn5DVh3Bfb13Wk1w4+h2S0ahU+P0exvUEP/uNweAqKPlhtICDsgqszJ33b6r4HwMI1q95jpmfsUj3ntf/Hj1Gdf+UJC2iNp337+1yX7jMgOIp73vdFGNrXljjUi8H9H9HwPuHxg7CaW/XChLKy47l9wBBYJ+HV9nPQoY5MQ/nkJosKbekczt6r7Ipw+uBsXFNTsOvT+78DXiP+9vPGNASDOlHKppiikczofn/MN4pZMD9MQ7UtwbbJDkXy6ubW6Ir+JOpytW/gt07iSsgMpqtF//iyYTeuQCpgIL2HyQBBfKixbfXMgEoZ3xsqAJQvLimNeyA2NaqRV2wDNk1/KGsIE7UUFm/1SU8HV4DmWzlORZ6oOuUIdMSFDYoBr64Ac/fB1UeD6kwmdYf6YGujHZERj2xqTecUfu+JZy+1uFFqmG/UyvRSx8LOxj74nEw59Ktj/rAEsCHbxn2Rujb2fYnLvXHrNwkfYqUZbnMBwf1Ai1w+6kfydN73JknbGtOSlLx49KIcWMC5iIuILyAGKEVb+z/7KhM92aLZ0IubUiKH/fDw0Lf1jkXbvYsLfQSm9lBpCPRcuoNd8IsTIaSLr3eQttWT+005vOcIHM4pqxKBE7lYvEKevHLs8u386UvFBMqxnik0AfUZeam0wu3AAieG9HNInbJDsT0tcCxf6kqMpocJTM53nPWd52swexcxvbpQ4oJ8ydxZyU4bnWYZjD6o3dPeeam/JpSjZEdya7zo2fZNAMy8lMyOGe/lL+/1wxuL1Btb8tWF2Fo+c1zNcOmRwAG0ej7urQV7eNsbe5pb56/irG+8641gLdJ+QlyA6c5j8SNLvamMpt63HRzhyVpn+on/Xj2fwWmLeLD2jka6hnEspUCZ5+w0L9QvaLeDavfMknJlFl5VMb8ScgNs4e7SsasbTPlppTGlAc08dPoFoXZcodI4tPo9q/n3ksyB7ZbaglCvro/LwFURhRajfJ3/7zCJECoYeq09xmQypiHfQjAtfjUazmdM9fBLbD3jK5vIwcv9xooMGHAo+n1MwPvfMnkcR/XtXeN87VfqElnL+Gjjv6EL8ZqYE7AzlHI5v4gEIqkUPliYeTQq6IdPp9Aa0wckdx7HaURLIo4bE+D8ADd47oxSpCnzm/jJaVd+mwf9pZ7u/yvNJbDUxtM4+DQ4PhCh0UsnOXu7TAZwADTdWdkABGAZ8rVOh6x3EAhZQ5TIHZWz800TKcgL1MHRBN2jccEfPucxADK5o8Q3ZpsOkUtKBWJeYNk1yaJsE8zegwWReUc15xZuG9Yds3CCpSi8SkyZv/uPDMf/vvU2Gy7vMUGdsLrJJGl/O/64sWH4nV1nXzTcuLgHpDLk3Ay0IYNZ83KbBVOVTqp5a/1KFLf69gxcDzE90PLkocHLGIgSq7QHy72UsvJhy8gwJZJbZ4QkkpiT/V/nRuqzAZx5UvS0XZBtnKfina/t1sVFQDEdjEdMUgdhCh5+3lyyNz1JkxVyjms9bDQ5D5+b7PaKBr+XCgdXj5+c16VKFIR8J9vDY7YX1LvpIwauy/rPOUURU/oGjTv+0QYcNRSZiMs6JdX3YybmGuPma+AxVULW9PFLFoKx7U1O7k760osNofAeL1UmxVmLmDhuA9OCXZWfmDerTGKZrDQfF4wiDtbMJXVaEww9eJGhojzp5nXDAFOM7cX9TvAiK8N3PCG/b6rkii8RAH1NcGkhuzc5wtex+pWl2QfSiT4mVeRpvjOVVMGM5LACkXn5K3TxhqOpbUHAbAXW4KN+zOqzxEA7Z+mRivqqVO3sA6orRhYylkpfPdMVrLJum8P/Iq91Uhy3fOG8DO9vSwUJ+1gvovjWFjBEuXff94ImM1Qh1r0I5zKmYwFYxv0InP8+1ZK5j0U0Y4kHd4RAJYDvunhXTBYXpYQAH8Ifv683nz6PqhCbeOcAwdx93+wc4rjsj5to94QLKit7pRxDCj1W24Oq5NLASkjmWpibIFRL8I91Tt0br/lMA1eauPEOr2qg3ZgJN3nao46YgqULiUZyI9qVUfniqQlOxgbCDJYVylJv4KBkJ/9Uzgwaf3T4PnI2HivUd+Bq6Zug3ekJRMvOkAILQC9szzmJEVLJ/X0YxjxWKL5niOslA/vK/mznXDjVP0ozFXnL0ZDIzX2c/p4nNey4gGvlzvvP1ygoC+epazVa3DNcZ/bpxbPxoDrFZzd441EfGhlnepiKJEVQSrCh/QEJQqRGz2M0a62tlpNOzMLvGVCyomngkUrHbQVC2fkU6OzBblacS21CCFwncb1ZdX6ct3FwPapLUWdlHMi7SsogY8zYwYNVFPGFRC8ir5SMQB88sPPNc8MfNHrXQMhNC6dez7jflmPNx40kCgcAuHUx28UxFqGC7O6guVA9rlX8UK1g4VbJ09CTAImVW+XW4r+HL2suVGpUcoh1EbOKfvMKv/K53c4eY15CDfs/4epC4wX5kVgSwNFPCBFgUWdXAZbVVWksnKan38RjLi5+hXOle0zDjrh9w8lMxUF8cSH8iimBXhFu7lLVlgstMaRtILvlsaW6ARhi4sI7PTEHDgxH/5vzbiXK8E27F+c6P06JTER/hjSwX9n1YW/FyRyar4Prya/QBMPmQOSpyj8pjhpKHqnMo+gpxtlng2idOJHvbj+4S59UghryCt+qts6U5WdsldddY2toWqZH5mnZl+v9/ENahgx7vtmCgCgioJcrSSBLpRwvK0NnMJiakVCmqHjRm7kdu6xdDOIzQ3D/4Ex4OCQQsaRycWIWRoHZntSxtaGIkol0epyK7G0cYmOeTsVO0T5ujCuaVBotXO/WNHXN8goq3HMqKlpistY4roig6R6g6IFG/pEfDPft0tCnn3xLDZu1/fIALk842rFCeXCI4p1h9wUyzK37/E8f2EieQCuRQdadaBcmJfh/UOHJUY00HhaIYm0GbA4NiyOVYBBuyNIRfWH0BOOz4kzo5GqvsdYjyjyW3SGAePLc7Ev+1X+eAHmrbWy37He8ymkrLEBiDP+CHRhpkcW/mObwER24OM2LmxzhGZuh/CLXorCkqEDhs6ncsp8PC8QUcEqpdtW8IkQ6NRfbNdhAWG6Ivn8ulBA2oazDkO+uKJJs7KGHbjb2v/Ka1t59nNBDKLwn7CEHzwi//CLjRVEuZu1979w+ry1182cVhRl35sZosQMwM+IR/gNQhV7P+xP5jSMsdCPyuhAXHnxSgnphqsHNWVD2I2NSwI47twaeLRDass5TljOSjpeLxZJOeAhuhDlOy7soZgUUf0qlCJvC5z6SAp26x2eVZ8wr+fCdqMMZymsUEwUsZIqiaDU0WisICTZw2YFYxNdxvqONSLLzdRSePiyBnGulQraqk4t9wefCdPojIVSvY0W3QpdADepbn4fJ6lMNgQ6kAesOvDeNx1ri9n9BHsncUUYDUaGKxW3wjl3vABPcRnTVEvEJfn+76XM+rd4Tatma8ADFoDNrxasgyt2R2oVe3pozGjscLplJqYuAUthUaKetjYGb8+t21omWbV3Qq63PZF47DY2UFqiqlEzJ0tps/knQ+uL1nmJt3evgMO7bqz9fNXAQ/MpEVTL/Z8tNFYw6mUx5gdpIospcqrlLoaoLqh862x0Ec4pE3sfOtrJc9v8puoNVl0dOsFSSAJKY5DQLMHGGa4uuLAkZlcP5A5tnzSUEU24O6MCQ/GLB3CAi3l+Wp0LhuQwe96FHAm3yU7la3fRlHkOVFhMazvRjKVFUFWrUxj0CvMiyYl5zFJ41radDlxBYQvNhjE1ahahm2yFd2FjMagjdRqwFqW/TST493KgIuXiizoal1P//YhUkjcdFojGVe+l9hftMutX03R2lALVGaIKOtA+qlE80PdteakGKeWfdH8RW2ax92ak6NhBpUzn9pfzc31a1ln1P40N/F0f+w8vu98dmDXOquK3/Ww3N6/qs8wkeA2+M+uHzDEOo8zGnx1/qkUxdpDwLgqiUdWO0fu+CFzqoy2K4RRy/aV8rt2cwXoI9J1fOpNpWXNj+cKq34FiFbdcPrNLLTZtrMjnlWrrASpOfoTdd2b7Diy0V4Ynuf87FOnxI6NmsGOdpfjcFkMqqnyXJSHJgyE4qIRbDxg8FFoiFInYyj4T+QSCON2GsZF7cDwoM4fjyZtZ87Bo0s6nqEHDM0hC3mKaqB7So45upBCxGcicsfw19tQznGEIfgROAG9m68haRRCwmf2bmgIuofvfqW3YBo8CyMTGJ9P00b1cgrIwIs8Ju25cJyofn9PU3Oq8rqDn2wAIbuCmOeuuhS3lKqOigOu7g4pRxydHkFsRsi605TlGCougfjsMcQZAW17x+oX+K5RypeOzb3HP0gF2KqSof8dUtLcN1UqZu6o/kI0JHvXoVRlgk9uAMAgHLt3Vin3QiEVO3MIr7K5ACpNsF1333U+v+2WHYbGh9FWi4yAhPbzQehK3DiRXBN7B+DKyHJAEMCDgmvjpvicP2C7q8qppZKJtSLouuNxi7vR1FPTnVbESqvjP27InHLp26fZPYYBcPmqIk3UtfcK+emeIVId8sLRwxiBY1VBi9tuAx8GYOFzMnXXSEfIjkBh/ZSxkLJ4As0PBeo85zfoA9rJc1iMuMMKQoFbb9dFsyWl7tXvi+OWECy31A5J6udxx8/35CIT3zIX65JlUXYsJTpb/LFC2IfqD5uEHtCbm9DtiLWaw10jMVJmES12FfnBazYy4vZ7iGpmkkzq756zYroXv3FfKiUzX7nHvq45XUGmSqf6xG10x9XzX4B4b2BbbV/bgvpFdrjKDDj5hONpwOo6sAVA9MAnpah+8VHw//7g1c7HQtFPcrgHMIg/KVpi+P73G7+M/PmF8OPZcz9gcGjbpUgXm0+Tu+8GF7rT4tOmIhquD7t2JQGiAL236ov6nO+1idhh+pMr6RWTpy8tQvpDpdJrboPV88y0VNSq54/X8x8y7ApVpRp1eYBMHhmgE/DBTBGszVeRVpVOh0yTyGBu5oFmvXiqKUoN6fcd+vhl7iUcP/Jrf1hcNt8hlNLE+pzU6GT+WLM3LuzMAKhQciMVK4pxXVrtjtfyL25YsdRnGOZQunCvFEIfTYki6iOFXt25/wkgqNGhSvigTqQGlIjJ53v74AFg+r/P7PInH0VUAivIE8P793vlXoZqxGCJQiIJ/vJSUR+3nImhpiXuVUPmFPeIfQYCoAU/dGLlLxdWjIbFFwbHiwTOwG4jTJ1ubIKaARxTfdUSmsRCEDsrl3QTFWDR/4GzojQJ0SKh+vhvMsJkEsl0ej1F1YdePUzAlSchfk4uFyP4ufLFCHhGxafQiho72T3UjsA4bOZJ9FGgEnwXoz9kApMXORvVXB4WrPoRSDJqnB7B68aiDgMrU87y6eJouah1CtmoaYbPqqYu0gbz5vxdANDCZhBZu0SjXH80wuyv1B9cQyofW9MZTlbEpSlgxDJiEvIT/TDIM7t0iQSgvEahzaY0iF9z4e75WMnfkvz9L/n47FIgnKC+Bt4Yvjkb+yn8MCP23Tm4w5EmZw4u7xuje+NIIgw/gcN4qiGMLrFWIYyGNL8XImxexDK7PCEWRycYYvpEC7oRsxcRwnXf7Ho2YfuWPZxcFC0HCeE4kYQ3vFlwAdpMc0uT7jMnUOpnEGQSnzP0XQYldutz665/2M4VRTy34fDy5A+crNGt3Fx5YGh758JjwBevA9j4xQ/XI2fsG7eM1p5isi9T4oQNH0EhJ1N6+MjBvR3RGB3u39ZQxOXEg33iADYJ1ZV3rJqYJDAH2jOj1R0geMZaUpj9+TgW/dA5O7uAAFf6n4IyjJKc0HbT6hFWkJgoRfmAvOuZpDczk8m8aXRaSWLAHYuFAwP/f1/52J97wMFk+aYlxHGupdJ+YsOBv/CBoulqNE25glr8B6zWoWKuypKqM8fIgsjOG5Jg6CeOcdHQANfsYk/s09ejQQCv+GwCVmD4TBldpczFl+3vnc9QKEZQ8qyD6RdWSpL8NGqUnT/r45ekKEltS7HphPZBlBR2wM3oGF8aLbdFnNdSEMFt4xRHFCs/OEjJcMvi4xPwhRqtl6nUvPuJA5s0Rud7vrbMCAbtjJkTmSgRgHuF2RbLfhAHIET7b8sE+aYlkvoqzg3cRvku3UuBabd9IEXAG4MqywJ4/YFXNL32XScJcJuLrSSH1MpqTE26MrD4WpSDmtK8+zBwSMQoK62Gm3yNhSRmu6IuGxPhFDhUrcR6BJD4eXf+GjLW40DpfTkQyEdmRxxAluqildLQwK3XIU5M5lROEFQVUkl403UNZuTFr2LiftYPca/p8IXIUnvQugpwM0MeDzGcNXj4kENkN+Uq0xaL3oLjvNkoq/VmhhCUm50peHbwvRjGIzkNhtUv8vMHMpUGmV4CCxnWm0Bf8DDF89WXcDMe/jx3aYPowT4Df7UMEhE8X4ZbvzbwVWVurO4/yynTDYfJDjAJxYDZq/XhbU2tD0FfQO/nDMBZDzcEIyIsxL2wqVJBJxS6+VtF2wDguLHez0akVOWfelSw7fJjpVSLacQlx/dbPx1Q73mB5IezNBOgOtVSS25ApxpivbHuVrsev4SYftc6UUI2da5NpnNhjxSYZh17mlnHyf9s/N6MbKeH4zUhC+idyWI4hly6geA4r7GAtEw1cK+MFDDCNSViT6PbQYT7kYzOQhIgy9IyWL2pm9nHBR1gJQwm8A0/k9S4pkw8In+4dEiAGib6oH96cu3Yf1Zvtx8jGhPfAfSGeqiJ7An+ebh66ZqgRYs94eT/nFPQDMZC5Kl5clanmLA1P8+1sTbW5tpY288ABNMpMwNqvND1h9N37qVh9TuuvWJQ4ioU5RD9zWGeVhpVFsssS07CsaG7JK4hYXUU6vaAo9PSON64H4S4zam3RolvMVRaPc6nt/MpilZ4Cnn6vtxdXOHtjZwwN3b/D9CzngX+rGd+POsbiSZ/d3ssRvsDDUOjv1HO9UDS9WhmYwsbI2LKQPVEjEOrkaRlo9YwiVm0axMWyxlstAr5eGnzXE1EeLVDVvGLJeAvgaxxsxS4Q0wCN6/Jc/30cVdDxPFwFQNpssgBN5ZHCsRKTOnCsofT5e+w5eWR4Z8kX1khLg9xnH51VC6sx3U7/ixoY2EfcmIn1KgpDcWKrRZKkx1Hbzq62QYqZWFLcPj8EOjCqY2sS8KCZRnE/DW7wzm8BIeY6ZdPFons7i5RfGrs8xjAc1JiGRrYkYmtrZsSM5sRMA11ArBXEAtFrkZgGupcpl/I6sNud5VrWTpTDbCdQM/70tHm2lsUlRsYKlTzwTgs00xitXW3TmVoM+Wgvjfn+Sc7EW15ewM4+R4lmq953Kw3uAT3RhTVjzUCL04twnsJLTKUfO5Lj2eQbtHuwlpdDwdbKypRj/gbRR+8w8m6zz3DynIJZzZp2yYjeDE5azLfm+SHcN7NlsXsgJfZd9aPP7DyGLN6sNadSxPQaIoTXLRb739mLMDiptu7EHJHXdSLDSkdMF5HBSuDGiyOJKGOFnb4zQ4LiCzJFKPRRV4Zg+PTxX1gGdT3MbyR+qZK94xRdpCfhx6T2p/YXVhpoAXlJvDrFG4Haztz9NnIu7iXdjT3xj4i1KbOdAvHY4SW2e8S9dgAtjJbIcUPu+EccIJXXpJGLGYTU0M2GWE3Xpz2l/G0wYa+6i3l7QatNMVlqg0QzkzQn1C5Z2ia3FpSGRP20XwknFjIrDS/VZaAu3sbEH8QJ+T9OA88fb9K2wvoUmSgDqbtAIdf4Rt2HEgvWhxMJnkBHZj/EADaoc0kqGmsxYyfw+jrjMIwzNJw07CT69lI5pFX5q3RgUPoXJYDbV4+/YL0wYCUHQ2kG39723RXQyNue1BXhmFpVp97nDG02x3GZ70K52yKnKE/rIk4tJRPY6hW2oIjMsZEuqU7SDJiNpynvJHCqk7Witetgy7OIwhmyg6Q8frH7iS22aiPwM6nIQrpcXg8cEJ49/rFNiaGuWEBVoxZ+DoviXc2MK27ABZKSEKnlRPtGRgzSLZ8yo03JAeMkXgpZIWjuY0ygpEcIB/gC6BhcmUqZXrMJbJ0dxX6IldkY/UgD6O8cSVu1AKRH91wUNYQFDXgfEwOPN2YTL2nL+sxWra4fWB5CgmMO5aG8R/SMeEbYIHdED8mYuXWVGT64BcromDiskbplJEy0U5BbWiAl6rpDQMbzlJ9R6Q69VpyluKdOV/JYSp8meLY2HjNigpfH/rGwu8EiRpjCv8Fd/iWpNWakXn21pFLMQWbWg22TE0rl7AyU/Lc9inQuAWWFqiK7hymKfkAlAsMaICUYJAaHjJ85XD5TP+O6ze6vr0WsS187hoJFgxGAPvuNIV6t6tGJ7145sZFRTz3Ue5kvK7XDIo5nxt4MWF+Pq7NtRdL2r9gIo94PZDfv7Q97oKML5ktz8WAT9KSU5f37cPwzrcTGhH+f8D13/JP1wq24u36GF7JgukRjIGdyWc+H2OO2ogHKYmApCUCSfTBvVR5LAK7iTutYu66LTfyT12bv+yKci0UgRgcf3H3ElUkTgFUjnOB2f5PJ4uW47BqPyDBzTIabbyVU0mkq250dqUCBmuocuS9etaA/S0UoU8KY4IIMzqD1gPpX1imMpy4AAA84lbpSLBopEL4KUwD5wgmGtZsQVrFWwtdceNs7PlmmbbKIUKPnuXaRac9bOfcW5eYd/Oa99BD7Z24MgXawtZSPx0Zjiwa298CJ3r9mzkiVok7qI10kGg9MfWHjuWYS5nYIHgJiaq+E1WLHWG5Kq2GkVOFWZRUQ3eiSNxaqep3iw2X0zxk/Gv5rbeRj/WMpHuRl/LWjnpaNQb2vLJG63nvE1WxiyR9MR4gdyBVs0Cc8v4kDMa84ezDL/f1ZoxOjGzMv9HwJiNP7zDiWog8+yZa3Uw846pXd4Ujz/YYeUifb4hPBjUBR6cvH22/Hy+z3fEHhNkRGBjgerYQ5WSjz85Oi+7oz7uCHIXrkPH1FBlt1ne6NEEWZrjYGn9QzhMAqTq5FdZwKOjYxPC95DjkH4x0iocARz5slLBvH62ZglwRhpbjZPeopGnn8PY5yEzdOXyT9OQ2xXdSgyJpCO0SkTGg3UO88fBTVNRCTtZDAYFw1tsQxW4iemEkK6adG8uEY3KGFvLs+P9P38tZvS3n8grKP8ZBcH5ZJ1gbIGFf1V0oh5htv39cDJrOLLO4M9uwPhA0aArmpzSfZ++wA7RXGBui2Bu6GdJJEX89SX8uR4XDI3vKl8KhHhG+j/+xpzdwOlSD9wIKTXqjppyjq4G38+FOu+hHkFiZDsa8ZA/ywCYsNMnAvyUmw5VD3Oy99gfYQsSAV7ebWYsM5PzAdKExZeOCXuOxPs41mKmMla2p+F5xUWYI9feioitr0hKZJg0zKm6MFQQyj4XrdU/42LlN56vQaXqYbSAFBBIsVF5K1iIyt6y0ATh39aheTjJVlXR0aoO23y8rUVXesVeecnU1qvI0fN/uQnlqfi7Z1eXVq0Y5S1W1JPPU2aW+0jrq+rq2Lg8nXd7VfPtMP5Wylj9vO7ImHe8T1RxKQV+JNVfG7r0z0Hwf0ffq9R7upw96eMWrOcmPUxrDwxcGnWUyJsc6hr15Z0qn8Jg1MHL2irP4Pj1zk8NWUM3kJ+ZctELlT3KFV+ljJ84TarN092nqU9NTCpTc09nmiHGSTYibCRNNyWe+vpuMM+0t3QUXUHwhvqYQak4EVuWI9j0kztIyO6hKc37Um7fyaWihdh/dpW8reGCc2cB7V2bc3wiH5i1QfX2AVcZkzWHV0s+wNwvZu09gBHvTvmvMXrBHwVvjpi6gY14sGvfyrOEXXWfUOOTm/akcM/aZf+/+cv+qpggi/sQG3BiKxjSORNvV8zsTHzE2nxfh1AQG6xGUTYi0jZws4ZwcuV/DmTPvVAuv19NTBp70M6XP6W/uZKjOXjOmZr5ZuxGOI+QlpDvU//yQUJ9EA498GzkRIvAA4g0sNvbm/pkcAdUJq0qZKrTl3YWmDAjYRQiEDKbOVlYwtDzdTNnXSlZYgC/KtFsr0Nfkbt6GVzBz89Eh681q8QHQrYu/I3M8KsQQ1mbyPAtUu+6rf35Am20uUrNt3367vzIIyMHNbPl20f5VQwrnccL+JVLGeL+S05zXvXZ6LkEsvZno/+jcz+kczYvBro8YRijWwOFIKjgt+F62ImTf4/A6szC9Db2x9MkE3hRDVU/ifk2h72rTUn+pScoqB7+/JLBHDuQJCICD+v8P3OvtkcASHg6g/w3JhoTey3K6VFlOYDK16uMy9x5CpsoEtDCjdpEYVlmGHTx4QLhO80KlrnI/YmZ4H1Jpu+zH/Y8KruyWBxCQMSygzODKrmnnJTg/C9XUFZJbwTPYtAXiytG4D7GUcGuQKoa7OKEbdlcw5g694GX3aoYMgAj8h+SENFIb9FO5X1FPZIV7U2JBztlWKphFiJxnoYIwWCDS6d5rypJTiJ5dLCbWv5oKMSaX2feb80bT2xmfRJUX2KuQNu8++fSeC8uM3sc0CvbZDtWfH5agNlXKaxF7O+x7YUBqJcEiNrHtfBjNDet4uvMTn0XgiwE5SqowDu61Aw9SzrVFeP9I5ntL+1G+TtUmjdPf5oqfNgtO1158LNmdmYqcdrQwVLzaOLOo4lTv7SRgtUTD9+4vj3uoyghMJGdUdar5hi2kGVJ9KTIMmodelFceSNlt71/2V5XqJlcKljUMWILJGFREGDAr/gU597q0/yPfgaU1cSIRGK1BTnWGPCgk4BqS+Q2WLufrxNxNaQyy1OtQuw+rMmBgDu4/B08kMwCgQBCC3P5iLICorms8qUoAy3PzGQVSHWbscD+7bxjqDBwUuDZNgacDTxCRDXdC8nRPMiWFkPo1xsEDbb4wE5Zt2poyYHS5FgEWEQd6TlljRWu8ZZqtat05qvbqbwTxn7pMdVEfsBBM50W953enryWLBnzIcrgSKCCqlnMdkrny+5OGff+5kdtxJRAam7Wc48+K7mwACVXYAbrr5jeMedZ/jeAkdVdlM7CGrYBSHHRN/k+IxMvUXMeEZRmlWfC0FUwWMb7bn4D7aTql0rt5xZVxtktjFQ2eSZLujqNCK2Mx9QfTPnYU2x/7EZsHDSv5F3QgzDhZ2IONKn9FHxduVloRsuwquI/ZIbPqUfkZWsI6zvOBDvNIsjyh9YpHFgK6yDetGVZnHiH7WcHnDFBlG2O+mrv+aBWCY0hVGHfKNvA5rYUAY2InR7yzuqrMXE301ziyHpyoy55YfeWTha1O0dRa4Ia7R2fryhHDPZl8ohUBU7RHxV7yg/92nVrfkdn79NDRAPJIX9svD9mLKmLvOmWNND6CHFlR0uF0OVByaBJKOPg6DbaBywFTBcdtwI7/j9jw77LGK5utAVOLRtMBVRkBryixkNdQVQVSFuzQUHxZ4/aqmrMy8xApgBEiKsF4a8eGu3DqXzb5JzMhK1VRBSLGkhYcKTjmaQXZKI+y+XT4QiHz9TPLMKEfJMlvQH+9jHXpi6rbCpxEMvwbOLa5HR4pvnogR6rjhzKZicjs0G8Skzx1cZWVoxBYsElXB+dwpczLxs02ChU1ET4uoXETwz/6G0e4y4ZFRLAacDSLbDhnVyhna4ve6pe9u1Zn51UG1xn97yrAddNchCbiDTji+LNPePdCdvyvhTWQcoEh2sY819I5ar5PqPEKGhf+msRmGubWFiW6hB9GSEX7n9VE7JvzDRMHIe7pR3/zDddFBteiy6u1/HAHzKC1PlMN1cUhdlz/ftp0Vs3pGhYRg8e80VbcDaO1OopVrkc7SmG4+JFise5PIv7bQDm7CI6K/8D3jVTFxgHUrQHmahOGPbWLiwYbxLgKxCEENJrMvF17+04Rusme17+DuNcmitQfPJxtcpYnX6Db37jler+HV5VJn93Uvtuu1rK4fi+N5lm23R58O23/U4Xk4FFDqgt3H357K7fPLR/p6axi9ZntalbFif+wgqsn7Kj3IucerPBk4oM5rbKH6P2eVt8eYBKKhh6g7VKoyqzVnpl720Qf2i57zDZq8d4zIrCBtSMpTHO32udDh0rN1LifZh4QHuTyrvTq+kBpxK3NVBlvL4D20S/gtbQUIawgS2vLPvFy2nMn2N3vP6BSWvdilZZq4Lb4oguNMg0X4gbdhN/gi7kiGr3nzYzvKANVjxkOQ3h/Yb5WNb5PVMMODisObAMWwUjX1jwqaIlYNzGzKuDgtQB7so49Dyj8cUHHVzHsUPCO9gX02lFa7GaYNBcrBJKXqyhqXcrJhqMhuJYWXUkbfHp69ZcvrUwi960EFPsZZIEhfg4BEmGJ8VFyVXdEhcNOc6fejvt3gEOaUNd7YDPMEqToBsmE9aCQkLF9xkVBPYa4Tv+l1CUXwSmTd5cXBuC0dHB2htzxKayaw/TYAAdj/aF2PBH8cBFNclxiLhbp4H50gFjf8isbrNqC20TNVd6ZczElg/sNtgJhWx/Zt8a4ADe0e5o24JdjHaGsxtIJthz9YP6x58xn2xWOwuL6z0U+y1opHlhJ2FVx9+6OOXJbuVbtPhcan99lAeB6FGvM+GcJ+N4VrbXVdJGaeHmz0pksq5rhoG5OVvIBlCCP4CCT8eEliKlCIT0L9LDLwUtdxYcxOvIg3bJYp7IqBeLtHEkue7dqVcihszg/KW+W06WpyocD/1PqoO5hyLMRxrps30cMeDBc+K+MLXywf9tqAqznID2iMswQu+E7X6MDtB0Pjp1umb5nG1mez7b8gKtL5q+3Lg8/9rls3PkuNeRToFAbA8shMQKGVkiysygcDTHN0h4eq16m2T3BJUWSTYB9pMuSA6fcpFP9eirDj6i5kK3axNrldFHc+FX2ujKaYF+EmX6/JO4We2R2sfRgIZgQLa1xE9nlv1Jl97gZGGm1JYtmUSPvSvh3KX7f/XgYhX77OACbj7vx2vNwnQNwr3E+Py6+L7uQhxYSpMYt/2ZY7XDK805gf+JieFHZQivAWy9mQm5FcM37/fW2PEkOnnV7k8Ql7vW59Zo8R/LzGDcCKNkiqoWWtHXl8BNp1nOfuTpv4HUAeQ8JWQ3ofaZ++c1neBxxExvOuaSeKq0bqxDNa77PFdfnezBShJ6R90GdemMcx4effqnmDUEcHkf3nJDo2W3Oc8zteq1B/i9n+jZfkjF/qNiW3cpKn5pCyxvDHucSQLuXCBqCOBEqCjwC6Tz7LX1+5qM69i/pS8mcUhzcWHTYzJ+qzkie3ebXaVP4MspJ9JG8r4emjpL2w7fh2FR8goE0rbGyqbxsQfWO/SCIutUwB/xwgCzxgv7+pOgiYJKWSq8GYiHgouna8zyMgMmM7KvRdxiFbLXC6ip9oluahKhfmBomz/SBMX0EXRDBN06o8bdUmCYTejsVPupwPEemKRnVIN/OJvHWm2cmhxpCbDfTkOjhYC4wTaytW+xsPvN9ekLBpJTc7aFBVVCgxrpdQPJNmKLlUJTdYHVrLMab2MqojiuMxz2cQrJh7tTGno0jwu4t4tUsk3Ag+QJT4L3Mp1rinbjmwIczh40ha7U5Ma/bOU7MNihlqFrzQXYz2c8UBo0Ch9B/uYAJoSSUxyClRjaEjAg0usRxBuCPWnP7H/aDN0QGtay2Ur1sBohzNQTrqLNaMiDVHGGrpwNOfKCN2R+bBeEuv6z4llqCRNnMsZyt241L42buc2NgZf0KB/VtT+FUpdHNjNQOiYPbKxG7jXj7IsCTsXWrSd1aVADflzT+atE1bvztyLMnYy+gxkmKBybvG+pHGUrKELaS8HlLJHGaUmeok9HCUzIcisdnQLJ7rnhpcAoNU+1HO+ZID7BzcalTRJ9x6xKL68fdREhIcYOPjIkhEhCS6AE0lxwZ2tbeNXL/7Qr28f+ELBEVtHrCuwnxMXIWslQD8uQkwnRLNKaTU/vye+UyrHFyaekFW4ziCsa0O3LerfSAi9Yxdz0Hmpm+qSPyoRznyAGAXUKgKkXGC6tTTL4lU6lxFYWIsoLxc9a5EHBPibADkz0jmgfyR0KY042Jkc9k4GYQ1BdnL3YyHlf71lxMjwRzGjVmDv4lnvPkGl/D9LVWJrzmYcHJYzNIjJtayh1qsCwDRLJxgvIilRsK6TU0p3PVTjhhL0b3u27CQTNZwmCQyCjN+uO9Jz2133toTttVSd6ZWMHWGEeHdR/6yh2PHcrUOpY7wjYfL3bCAqG34pGWXFJi9M8Az/fjf2DvACBIfmOex5cmU6jIToawcsE3Yg8oVHE5uzIsYjNg4pEj+SPG3PhNP/ULGsMpgF4YErapX0dd71Sg+g4OW3yUJ753glD6B38m5TlYubub0wUbsYtSLUvFCldDsaecFFjPahjUeHa7PZ76th94fTpStsvP/GX4dTLCGI4OpxX+DBv+R04oiTUODV5NrxvW5dQXVhvz9SNyE3Gxikb7VD6FRbOeRdqXzVH62mJji1NtF/Fcv01EmK4q/R0Jfd1RZApc45TeI+pGzaIPKwqVW9I7DdiNHg4V1dGNIHZVs4Dzs5hG1FC1jO//q900YbO706xWxUDhHjY+WMG0pUrrT9KaBX2SyfR+RGtP6nol4lc5TUj9LufYevUewERMoVZ19ag2kky4V9TDw3UrtqU7+g/tVEtpmiVPmf1cLXhdpLUDb1Z+QGi6tp8J6OS+nFfzmLZJDl3WNt/+Vl42OOag0lvRofrOHqgFA3plAI/0bMLmQ6n34Um2ckkXoJvMXrjOWgwmoXHnDu/xeJGibVEUBC0fClOTQsLH04dPv7A8VGW4Eq9IR/Axdrku2QZJCyv7lAoNE1ImzxL4pWrGSOxCspvcrHvN/D6ROwQVPn8LVzoM4kxjVvhXEnzS572MC/gWlTwB+HHmY5upkQBvg3bFlY4MUkr05oMckpsbEyip6nBYFeI48hnirWHm6KIX/Z5WFM/ZQCN7C4WxLEo5zAKdRIAOZxwsAa5lfNYGct+h9B6B+GdlKnGZZiJ5RhR6N0vmVLgrDXiEV+p0m9D661VpPUxyGVDdkI+RrY1JUSWV4Zk7lvW4OSOpbZGMoSKUh1yBYBmh6ROtEmD/RejWnX3Pgu2kYMWIto06WthBQZdX1N1YE4RRqjzsaqyZh8VSzAlWXvg08DF6Xa2rGE6HNufXyoExd46vdoFhP6cUE1ZrPc658i1Uc21PUYcLpyfp62zpfXZ6LQfTQR/zLDD0N73jSdkTwYqqsa4yMJ1vq0AhYPQ1CXpeMhxiLFCDHVr40GO4lt/7pK5k2lXWUKD+KTeNReBCluH3u2Nc+b3rsLrQiDYQG7r8G563+8vcsyGblO3cWEBmpsntvJ4MoptiNSHdBparuM3+0Env8OBdaO9d/7vTMmwbISku53rFBH1f42Vel0/gbKyM6+5jicyd7nfow29/b3ampx4cqfjqTA1/YQ2AqarS+8A6ii/opKYdriBIjqea2w96eqWm6DyAFCPVMNQcctsGk4XVsddZlzDFNivzCCkh6HabBpDWjZAIlnb6hUoeufvDDU2bxgcA2jkIWMB4yOgFn+Iig+aWWm81VjVXr9ZCqTbUtRVMy1WSIohm8/7IwYRT4/VO+c9gEq57eVDwYdVlT4uSd26RJ2CZRHMZ1SIN6Y3Ian9rAbnkgqOqBn7b0OT/Cykh8UovoqufOpJJHrvcQtljJcviwVIcbOSdU5Fu9TiOct1Za609ZbIlU2Ixl/0XYtq7a9yOA7PR52Es+5hRgiw7f+Dj8xp150havWDzi+OOpdGe/WaVVYqDszab9KHaHiLrjItdWzuWqkUGJkgifWqV2wVZa5DuXIQg8pFURM1JO32s5wv7JPSdM3+WDHwtxS63WzkDcUGOJ2aLi4W1wqWwy6lmwwIg3niKigVlXhzAijvgUgYDI6CP9vEbjdpRnbRQBjg1a2qO7/G25Jq+7bHI8X2mGZf47Hncy7X92hdbu30ttdRC+6yYMxm+MLrNLpFlI+k2mi9626supFZGECH8mYLiFfxVkDsv1xKeDjA/9aS5mSp7lYif7yy1Qtep9EeJzzH9TlJfFlCtzBmc13XTqcGLIKGJKxx+Jvpw2+I5JrzK8gfhMu5f5++6u9a/yqmvNRm5MIDmucxFelC74N/dC+0CnLvHlQO3rVwe/ei1tOpU3LxGj0eOiWe1R8Fnph//HTDYj5evnBff//iWEGI4vHQSygpdXadSHCx2ht5tkd0ShXUNsoSa2rCeIoWUDnyOr3J6JhKRC6UQj8E13ho3YDLFrgm9p3l0VyJ9POXZrWjm9Ty55eGdXXK7jMPRG+p0Yu0tRRGv8mvUUtu9LVEOuhzP0no06eCPKLNW/xOBsfuMnt2PRbcd5bgAao/MlaKAlPBaXu9CEG5/4hFMG8eK6fqY+fRFqATiNAVvZadKEWV4hW9/pSNVqD3x9PxPuf4hNhnbALIg8xMLj0U7N3N2To6rfosSIimybck+36vIO6oHKybU2YtQTQgrrxon+29PtDNl5ZPbSqPB9lJWlHP2gNQauYJ9rmnNorZ0ZeYUTdOk5n7d9J+oQyRpqf1tGOM2FYGNaVqZunJolXSQBnikgjFm+53Tbw0cHkx9bv5LNP7jGY7JqBc/RseBdvDVBHPSxehcmgp+nNIIY8rbhqgFXIxir5brKV9TTkc+w4/21UALmeFMYtcSM8YUuV2dBslhuVdihUknufWMDEzVoot0L/+E8rZVl+H/bzr3+Uf8rKVd80vl1a18pXZsp5m2l4joJq6xTZ+mwyMiUrnNWltd1MUi3ypxoaMR6yVgKentc0tXVZb8wMezNCsrLJID0Pm7GAvT+8svkJuoEJDjHqKgfn/eBa6OgObXePjYydCIl9jhnSOLatvYBRIi6X+1eY4TVyhvsi4viG50HM71P2pRcU6S/2+6uLi9/eJnvLBhonj55/4HtLzWz0j/d0nvb50xolTY5eJHuauXabZF1ngLHSidzbvcqY2MjEinHDJrE+yG54Rh21T88Ix8Kp7++vEQ5/iRDIxor5Mn9cxS92pHVbVHOPjXkSD7weyZziMOW8ZRKxOaZvtSVgjqr89UNo7m25rofCXx0IY8NKCrcHPoafx4O4UeYzQzW36zKqadDvPHqousPIJUSh4Chd7hmYem7OXPIIha43PgoVD303JQJDsPVl6K3Sd+KnIGCFwSV5LW+v02FZR6WVmPif8/9ks5lms2ifzCWvFx4ANAjXKleT9jC/PJRAaz5YBZqqmYYeYwXnpMfPv3Tr2qhAoHOVLUfo3r4zEWsGUA6SgHm9f+JCiwL0zUp60ffAKxc8RW2BsqnZAi52umts6I0nCZbnl2LBBTHzfAWDk9/YG7uRYPzrAGybYwxRdx3rg6dwx+Gg10BZE+Atzv30tGaCU+00km9rGgbP8Oe0RqCWazGCSvMD+k0xsxG0wbFh0zcwy9pOy+gcAeEF0hR20aYuOON/6KRudFATDCvx7ZDOA2cmgIJXLOD5cDrEEb6xm8W5kpLYMuawmQvXv/ouVQa+QwkEgyxEZ4TSZXLQ4vhn2El8QzeuGnXKe/sKFxdWD5KbjLLYjPdbXWvljggss8Ooe8gvNck7NK8dHSzJj/k/kae70t8LuBytIb4UVN2aSmbDS0G/KP3YdlEwSEsUdyCvR4ROANlIrH5yMPHyRUnVRvYmqgKjYlnSK8NwFUDlYz+HFCianCmrWy2bI6U98hnuGMLsB/8OVmfqOxvTd3ty8Rqu2zD92XA2bIeK8imuXV/iZUaIyBgROo2U7c54cjDHI3yvl7/b3dmK1WBpxx0S42rXo19eMdSBcpVQ7L0dZDWW9WcsWvEBRAAkp86pgZ68jzXrQXb/b2wPLLbnrtFl1GMy+agcsfGXFsuceJFW71pBqyogR3Y/z3ysGPuEQeT7s47dfM44+BoS4ny/F3MT3i/B9PS4fSiC6U8L8iYxJRvLeVXFptfhc8QOzpCX2WviDp3OvoDJAajYe/aJTBp87tVp/Szf+zljgFZXHM3kqvJTxBst1kgdtHlq+NMoYiHt3FvOZtxeuPH0Amj6TWZtABTPW2Q+oSW1VGKPxTvrBjPESxFMAY81z7zk/1OmNPn3wGLesokGFd/cMQE8FTu7Yco+twh6dwiaklp51QEpDCZy+86ubnVqj33eHk28PekwNg41l36elgB9Px7UXG9k85meV1xio2/SlxKmd9Fed0QGqPDkJzefHwzALxoFEqQcqbiHgRkwFxmFiFl/2pYIT+edsj1dLxR3GJ85QJTqv12chgSenBxJwnyKGpOmkk2M6gZFLE2Ijg/jvX7PY5n2BLH/ENh/ss1jpOvOBbf4U/5KnF8kdxn4GMrVfpPwzEsh4oZUDAwCVm9lVUbd6YLdaevMV5IiduP2MQH8a3070T2OaKbmbV7KYSO4kUug+a37zJHrteYy1f70hs1vcND7umN7SLozvNcxq0qoKX40PEsv9x0rxE6nwSPDrQ8QtIOM02aGzIlOy+PHqWJk71VvIYjtXGP2+XzaEH2LQnH2/k+DxqQeeD2EpFhiCLV96gnQ+BudLpEDdc5tC7oMXzYNC/SQv/2r3dpuwDgw3NjYBGK7okE+QdxAlO94ZztqUznxXv+ZgZ+ThrQwuSOZS6FFmk1SFTllxkpAU0qr0kFwpT4tG6kiev4dnIlQHSmbBmO111Q4QgeYNbn6YwCO+p+w5E3+JI3J2kcLGPpy0O0HGJW2gAzrFNXQHZWhhqSBrd4p82lfAyq3lFzmHt0820SN+RyyPlE398fznH6hPRaFeCHPGdFbU53sy7kiiU27YetiSHzgJDEFQWKp8deTx29Yt1yBZ0DYt9aga0kTYu7VU1jtp42T90dM00qX9YGY79QlMvGwoini/R2MOyQkx4mjKVZB3pFC+B7bHsQyd5yUfc9vvPgYztAcTpqUZiRD0n5rLF3w17/B4i0WPaOT5RbB5/AOr8LEupdyeYBto0sTtVhl/kywDkzgc4ihNfz9GcUHX5t3dcyoVRH3iAyFV7+NB/miMSVPhZYyNvuEkXDvp4SzlBVGSKavvbrHmYnFOXNrIX8XzXj+bA+XaXtFE5WUT7dAelCBxdCGdgnG46o1N1A8Q8w7U1H5Sng99SPmmrdsLkO8BdWSOBl8uxXJOIwkykoWpyE4A6KMjvR3tA9pHze29eAwOdrrqXPoXoRFVOqpwrxrjcmoG/e7iXTtH860W2wQVUnCnF3EpYtkcy2TtsLps3PvPu1JEKH+vtqFCcti6iwfgjx0tA4JEqN3Vik3TswqDonnvDrmcDRgyqLX6y0kjzMR4kxdtF6LbOFEgI+e9dUa0CB8mYx2m5+xWGK8a3PQPHNR4oE+oO3PBX1u2PsbQ+llv1ivtAIh4sD9fuKBlPtNQ/DbDuOWLHO938lQLl1rUF1uUVSZ1Wt1EfrxM+LT1hrLMpgIKIR9Y754JR1X6caAYqlTcNYPFCONtluQnKMQQYxGQrtGF26HUYqjM6/VE5O8CmfCzX8bp4gkYOgI8z5/yVMbDUaTcSyBPpyYM+md18X1M07riF9nvu3mcw+lEsFE/tqQiIA9ILr8Wo+Q3ADivWEv7BVd9M9Tn2o/fXg7PWj7fecBXO9mU/NV/As6s1gVdf6R2vNHKJSBzuMVdJ+hKlyW5aEaRLJ1CbIDEIqoST4tTb6zSyBhxQw4LvIlZ5Coy48PIAXrLuiJtJTnzJYE1WxlH3gwKtI7Dgh54UkdjHG6JIOJvOOrvnWs5sDgPtsPjO9R+OEHZkbc/Z+orTaSBPKFSGW85Y1lRR99OrPUwW1uYZHwFUlOZoAMTi94GIGR9H+5gc+Yl5JFphf5zEH+h3LAm9xd71ksWv8o0dXJM3BOaypVpJ+WFGWVD82dyP65feD0lmCc1WSyuGOt9TXVh8fbYpo8GNFxK/JEJ/we/5oUMLOenemlxcC7h0HQAXQXPZtDO8NJVAL91FORulNni6OkztRYGp/nTlL/a0Au9e/lpNN0Z9THvb93gCeltVm/gj8fF8GDHe00ql1VPOtZloe+gI69DKa/+7WGCVFd/3zMsaND0wzbavj4EYRykQbsS3OoQSXkCblnsap6NX8vBMQ+XF/jf2kOP9mjOP05CsRtLutZzcrg9w9Ovt3STrutq3YnUWeYdC9hThpqcsUop/kULACmUmDncS7mn3OIpOzdKF/d3pIttteAjrUDz79jWAVNaDveznN4QqQyl4ol7nBvjhteeg31Agn0MuQOw4cjnzBSLwVmpn9ks1HpI/t7dHVw+ufgUgILCfyeHcuZa/52P8y2F7CWpReouU7JSQS3EjIueykokevLx38hnkhxmmcKBPJ4IvQWggryp6ybIXS/t4PwJR+Mxk/Lum1M3GZHSwa0WT4SGJhJE7nOz9QpIiH7wIwuVvBBkdM131SDekonEq9U2mjLDgTOlTpKePlkM+Ois4j8BaLB8TMzyVojztUrlLQcaXrFhwrRPDMBtEjvcTBamVo7ObKsARD8qPybGXX74OeGE0SnfDJEATnd3Qcel2+TL5elCjsq46ylCQpRPJ+Kd9HMxyNhaU5dRZvNGcuMavCCvWhOOMm25K/as60/GFMElNdkRdHVnQdbAdhBKLqADPWjkTudjJOKizabvWhG/YTw7x5gdslfFRmE2ZMyf/DT01d6641+oUuY8/0nTrAQ19FFlnW2oMmqhqP8yOGTNuoyaJhmQiwZVm1kjhwk8Yxa9zxZ8fmRVVYFQGEA5cB7TeCKKdWUIBZqxD/FFi9Ft7rTGvD8/4GoeLnLgumLZuRK/0AG/cq/s98xyLl+r/oV/AVn9IIEoQqCwY7N0WBWW/WdqsfOAPH/U4p3jtU02oR5uGwZ7kmChNhe9lAoF5YhpWcyc7RRUOOUZQmmB7aN2cGhdsXYjQctcBWDKquL2YeGgvygD1XYzsAd7MkcXWJVrQE82v/GsStuFRq7BzTwIh+6wRms67fyhG+0C20Hbr7jkgYXg+lZfXuO5wc/hpPfW20DsFn+KaTou93DwKjM0Ms0hQnkpfpz9+DHMQcJ+aQm8/vqJWt8R4+BG3mtXHuKcdV7d6fGCxD1goV3JOZHX2Byddfbs/3asaCVdFw2UrzVJRdVLpZqeK8ynJdNSsMzEl3ndi8GeWAaFTleMAUrstwJZalvDjjQJYffFu1ncN/d4m1NEJbvaGF3ytVO4w3aAXImvnOWGzg1S3wC3h8FxfNvOg/4zt8X9IF02WcjQN","base64")).toString()),_Jr);function GJr(e,t){return[e?`${e} +`),o+=r,o+="}",o}function IGt(e,t,r,n){let{next:a}=OAs[r],o=a[e]||a["*"];return MAs(t,o,n)}function MAs(e,t,r){let{collapsed:n}=OAs[t];return Array.isArray(e)?n?g0l(e,t,r):A0l(e,t,r):typeof e=="object"&&e!==null?n?d0l(e,t,r):p0l(e,t,r):JSON.stringify(e)}function HAs(e){return MAs(e,"TOP_LEVEL","")}function n7e(e,t){let r=Array.from(e);Array.isArray(t)||(t=[t]);let n=[];for(let o of t)n.push(r.map(l=>o(l)));let a=r.map((o,l)=>l);return a.sort((o,l)=>{for(let A of n){let f=A[o]A[l]?1:0;if(f!==0)return f}return 0}),a.map(o=>r[o])}function f0l(e){let t=new Map,r=n7e(e.fallbackExclusionList||[],[({name:n,reference:a})=>n,({name:n,reference:a})=>a]);for(let{name:n,reference:a}of r){let o=t.get(n);typeof o>"u"&&t.set(n,o=new Set),o.add(a)}return Array.from(t).map(([n,a])=>[n,Array.from(a)])}function I0l(e){return n7e(e.fallbackPool||[],([t])=>t)}function h0l(e){let t=[],r=e.dependencyTreeRoots.find(n=>e.packageRegistry.get(n.name)?.get(n.reference)?.packageLocation==="./");for(let[n,a]of n7e(e.packageRegistry,([o])=>o===null?"0":`1${o}`)){if(n===null)continue;let o=[];t.push([n,o]);for(let[l,{packageLocation:A,packageDependencies:f,packagePeers:I,linkType:C,discardFromLookup:b}]of n7e(a,([E])=>E===null?"0":`1${E}`)){if(l===null)continue;let E=[];n!==null&&l!==null&&!f.has(n)&&E.push([n,l]);for(let[X,ae]of f)E.push([X,ae]);let N=n7e(E,([X])=>X),B=I&&I.size>0?Array.from(I):void 0,Q={packageLocation:A,packageDependencies:N,packagePeers:B,linkType:C,discardFromLookup:b||void 0};o.push([l,Q]),r&&n===r.name&&l===r.reference&&t.unshift([null,[[null,Q]]])}}return t}function xJr(e){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:e.dependencyTreeRoots,enableTopLevelFallback:e.enableTopLevelFallback||!1,ignorePatternData:e.ignorePattern||null,pnpZipBackend:e.pnpZipBackend,fallbackExclusionList:f0l(e),fallbackPool:I0l(e),packageRegistryData:h0l(e)}}var _Jr,m0l=()=>(typeof _Jr>"u"&&(_Jr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),_Jr);function GJr(e,t){return[e?`${e} `:"",`/* eslint-disable */ `,`// @ts-nocheck `,`"use strict"; `,` `,t,` -`,h0l()].join("")}function m0l(e){return JSON.stringify(e,null,2)}function C0l(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ -`)}'`}function _0l(e){return[`const RAW_RUNTIME_STATE = -`,`${C0l(HAs(e))}; +`,m0l()].join("")}function C0l(e){return JSON.stringify(e,null,2)}function _0l(e){return`'${e.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function y0l(e){return[`const RAW_RUNTIME_STATE = +`,`${_0l(HAs(e))}; `,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); `,`} -`].join("")}function y0l(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`].join("")}function b0l(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` const fs = require('fs'); `,` const path = require('path'); `,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(gGt.pnpData)}); `,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); `,`} -`].join("")}function b0l(e){let t=xJr(e),r=_0l(t);return GJr(e.shebang,r)}function E0l(e){let t=xJr(e),r=y0l(),n=GJr(e.shebang,r);return{dataFile:m0l(t),loaderFile:n}}function YAs(e,{basePath:t}){let r=Rc.toPortablePath(t),n=gh.resolve(r),a=e.ignorePatternData!==null?new RegExp(e.ignorePatternData):null,o=new Map,l=new Map(e.packageRegistryData.map(([b,E])=>[b,new Map(E.map(([N,B])=>{if(b===null!=(N===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let F=B.discardFromLookup??!1,Q={name:b,reference:N},X=o.get(B.packageLocation);X?(X.discardFromLookup=X.discardFromLookup&&F,F||(X.locator=Q)):o.set(B.packageLocation,{locator:Q,discardFromLookup:F});let ae=null;return[N,{packageDependencies:new Map(B.packageDependencies),packagePeers:new Set(B.packagePeers),linkType:B.linkType,discardFromLookup:F,get packageLocation(){return ae||(ae=gh.join(n,B.packageLocation))}}]}))])),A=new Map(e.fallbackExclusionList.map(([b,E])=>[b,new Set(E)])),f=new Map(e.fallbackPool),I=e.dependencyTreeRoots,C=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:I,enableTopLevelFallback:C,fallbackExclusionList:A,pnpZipBackend:e.pnpZipBackend,fallbackPool:f,ignorePattern:a,packageLocatorsByLocations:o,packageRegistry:l}}var QAs=Array.isArray,RJr=JSON.stringify,hGt=Object.getOwnPropertyNames,mGt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),BAs=(e,t)=>RegExp.prototype.exec.call(e,t),wAs=(e,...t)=>RegExp.prototype[Symbol.replace].apply(e,t),pGe=(e,...t)=>String.prototype.endsWith.apply(e,t),XAs=(e,...t)=>String.prototype.includes.apply(e,t),JAs=(e,...t)=>String.prototype.lastIndexOf.apply(e,t),pGt=(e,...t)=>String.prototype.indexOf.apply(e,t),S0l=(e,...t)=>String.prototype.replace.apply(e,t),n0e=(e,...t)=>String.prototype.slice.apply(e,t),bue=(e,...t)=>String.prototype.startsWith.apply(e,t),v0l=Map,B0l=JSON.parse;function s7e(e,t,r){return class extends r{constructor(...n){super(t(...n)),this.code=e,this.name=`${r.name} [${e}]`}}}var w0l=s7e("ERR_PACKAGE_IMPORT_NOT_DEFINED",(e,t,r)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:""} imported from ${r}`,TypeError),UAs=s7e("ERR_INVALID_MODULE_SPECIFIER",(e,t,r=void 0)=>`Invalid module "${e}" ${t}${r?` imported from ${r}`:""}`,TypeError),T0l=s7e("ERR_INVALID_PACKAGE_TARGET",(e,t,r,n=!1,a=void 0)=>{let o=typeof r=="string"&&!n&&r.length&&!bue(r,"./");return t==="."?(Q_l.default(n===!1),`Invalid "exports" main target ${RJr(r)} defined in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`):`Invalid "${n?"imports":"exports"}" target ${RJr(r)} defined for '${t}' in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`},Error),FJr=s7e("ERR_INVALID_PACKAGE_CONFIG",(e,t,r)=>`Invalid package config ${e}${t?` while importing ${t}`:""}${r?`. ${r}`:""}`,Error),R0l=s7e("ERR_PACKAGE_PATH_NOT_EXPORTED",(e,t,r=void 0)=>t==="."?`No "exports" main defined in ${e}package.json${r?` imported from ${r}`:""}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${r?` imported from ${r}`:""}`,Error);function N0l(e,t){let r=Object.create(null);for(let n=0;nt):e+t}r7e(r,e,n,l,a)}BAs(TAs,n0e(e,2))!==null&&r7e(r,e,n,l,a);let f=new URL(e,n),I=f.pathname,C=new URL(".",n).pathname;if(bue(I,C)||r7e(r,e,n,l,a),t==="")return f;if(BAs(TAs,t)!==null){let b=o?S0l(r,"*",()=>t):r+t;G0l(b,n,l,a)}return o?new URL(wAs(RAs,f.href,()=>t)):new URL(t,f)}function Z0l(e){let t=+e;return`${t}`!==e?!1:t>=0&&t<4294967295}function fGe(e,t,r,n,a,o,l,A){if(typeof t=="string")return F0l(t,r,n,e,a,o,l);if(QAs(t)){if(t.length===0)return null;let f;for(let I=0;Io?-1:o>a||r===-1?1:n===-1||e.length>t.length?-1:t.length>e.length?1:0}function L0l(e,t,r){if(typeof e=="string"||QAs(e))return!0;if(typeof e!="object"||e===null)return!1;let n=hGt(e),a=!1,o=0;for(let l=0;l=I.length&&pGe(t,b)&&KAs(o,I)===1&&JAs(I,"*")===C&&(o=I,l=n0e(t,C,t.length-b.length))}}if(o){let f=r[o],I=fGe(e,f,l,o,n,!0,!1,a);return I==null&&yJr(t,e,n),I}yJr(t,e,n)}function W0l({name:e,base:t,conditions:r,readFileSyncFn:n}){if(e==="#"||bue(e,"#/")||pGe(e,"/")){let l="is not a valid internal imports specifier name";throw new UAs(e,l,eB.fileURLToPath(t))}let a,o=k0l(t,n);if(o.exists){a=eB.pathToFileURL(o.pjsonPath);let l=o.imports;if(l)if(mGt(l,e)&&!XAs(e,"*")){let A=fGe(a,l[e],"",e,t,!1,!0,r);if(A!=null)return A}else{let A="",f,I=hGt(l);for(let C=0;C=b.length&&pGe(e,N)&&KAs(A,b)===1&&JAs(b,"*")===E&&(A=b,f=n0e(e,E,e.length-N.length))}}if(A){let C=l[A],b=fGe(a,C,f,A,t,!0,!0,r);if(b!=null)return b}}}x0l(e,a,t)}var yT=(e=>(e.API_ERROR="API_ERROR",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED",e))(yT||{}),O0l=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function YR(e,t,r={},n){n??=O0l.has(e)?"MODULE_NOT_FOUND":e;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...a,value:n},pnpCode:{...a,value:e},data:{...a,value:r}})}function p6(e){return Rc.normalize(Rc.fromPortablePath(e))}var NJr=Symbol("arg flag"),DH=class e extends Error{constructor(t,r){super(t),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,e.prototype)}};function i7e(e,{argv:t=process.argv.slice(2),permissive:r=!1,stopAtPositional:n=!1}={}){if(!e)throw new DH("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},o={},l={};for(let A of Object.keys(e)){if(!A)throw new DH("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new DH(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new DH(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof e[A]=="string"){o[A]=e[A];continue}let f=e[A],I=!1;if(Array.isArray(f)&&f.length===1&&typeof f[0]=="function"){let[C]=f;f=(b,E,N=[])=>(N.push(C(b,E,N[N.length-1])),N),I=C===Boolean||C[NJr]===!0}else if(typeof f=="function")I=f===Boolean||f[NJr]===!0;else throw new DH(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new DH(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");l[A]=[f,I]}for(let A=0,f=t.length;A0){a._=a._.concat(t.slice(A));break}if(I==="--"){a._=a._.concat(t.slice(A+1));break}if(I.length>1&&I[0]==="-"){let C=I[1]==="-"||I.length===2?[I]:I.slice(1).split("").map(b=>`-${b}`);for(let b=0;b1&&t[A+1][0]==="-"&&!(t[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(Q===Number||typeof BigInt<"u"&&Q===BigInt))){let ae=N===F?"":` (alias for ${F})`;throw new DH(`option requires argument: ${N}${ae}`,"ARG_MISSING_REQUIRED_LONGARG")}a[F]=Q(t[A+1],F,a[F]),++A}else a[F]=Q(B,F,a[F])}}else a._.push(I)}return a}i7e.flag=e=>(e[NJr]=!0,e);i7e.COUNT=i7e.flag((e,t,r)=>(r||0)+1);i7e.ArgError=DH;var M0l=i7e;function H0l(e){return Y0l(),DJr[e]}var DJr;function Y0l(){DJr||(DJr={"--conditions":[],...DAs(Q0l()),...DAs(process.execArgv)})}function DAs(e){return M0l({"--conditions":[String],"-C":"--conditions"},{argv:e,permissive:!0})}function Q0l(){let e=[],t=X0l(process.env.NODE_OPTIONS||"",e);return e.length,t}function X0l(e,t){let r=[],n=!1,a=!0;for(let o=0;o[b,new Map(E.map(([N,B])=>{if(b===null!=(N===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let F=B.discardFromLookup??!1,Q={name:b,reference:N},X=o.get(B.packageLocation);X?(X.discardFromLookup=X.discardFromLookup&&F,F||(X.locator=Q)):o.set(B.packageLocation,{locator:Q,discardFromLookup:F});let ae=null;return[N,{packageDependencies:new Map(B.packageDependencies),packagePeers:new Set(B.packagePeers),linkType:B.linkType,discardFromLookup:F,get packageLocation(){return ae||(ae=gh.join(n,B.packageLocation))}}]}))])),A=new Map(e.fallbackExclusionList.map(([b,E])=>[b,new Set(E)])),f=new Map(e.fallbackPool),I=e.dependencyTreeRoots,C=e.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:I,enableTopLevelFallback:C,fallbackExclusionList:A,pnpZipBackend:e.pnpZipBackend,fallbackPool:f,ignorePattern:a,packageLocatorsByLocations:o,packageRegistry:l}}var QAs=Array.isArray,RJr=JSON.stringify,hGt=Object.getOwnPropertyNames,mGt=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),BAs=(e,t)=>RegExp.prototype.exec.call(e,t),wAs=(e,...t)=>RegExp.prototype[Symbol.replace].apply(e,t),pGe=(e,...t)=>String.prototype.endsWith.apply(e,t),XAs=(e,...t)=>String.prototype.includes.apply(e,t),JAs=(e,...t)=>String.prototype.lastIndexOf.apply(e,t),pGt=(e,...t)=>String.prototype.indexOf.apply(e,t),v0l=(e,...t)=>String.prototype.replace.apply(e,t),n0e=(e,...t)=>String.prototype.slice.apply(e,t),bue=(e,...t)=>String.prototype.startsWith.apply(e,t),B0l=Map,w0l=JSON.parse;function s7e(e,t,r){return class extends r{constructor(...n){super(t(...n)),this.code=e,this.name=`${r.name} [${e}]`}}}var T0l=s7e("ERR_PACKAGE_IMPORT_NOT_DEFINED",(e,t,r)=>`Package import specifier "${e}" is not defined${t?` in package ${t}package.json`:""} imported from ${r}`,TypeError),UAs=s7e("ERR_INVALID_MODULE_SPECIFIER",(e,t,r=void 0)=>`Invalid module "${e}" ${t}${r?` imported from ${r}`:""}`,TypeError),R0l=s7e("ERR_INVALID_PACKAGE_TARGET",(e,t,r,n=!1,a=void 0)=>{let o=typeof r=="string"&&!n&&r.length&&!bue(r,"./");return t==="."?(X_l.default(n===!1),`Invalid "exports" main target ${RJr(r)} defined in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`):`Invalid "${n?"imports":"exports"}" target ${RJr(r)} defined for '${t}' in the package config ${e}package.json${a?` imported from ${a}`:""}${o?'; targets must start with "./"':""}`},Error),FJr=s7e("ERR_INVALID_PACKAGE_CONFIG",(e,t,r)=>`Invalid package config ${e}${t?` while importing ${t}`:""}${r?`. ${r}`:""}`,Error),N0l=s7e("ERR_PACKAGE_PATH_NOT_EXPORTED",(e,t,r=void 0)=>t==="."?`No "exports" main defined in ${e}package.json${r?` imported from ${r}`:""}`:`Package subpath '${t}' is not defined by "exports" in ${e}package.json${r?` imported from ${r}`:""}`,Error);function D0l(e,t){let r=Object.create(null);for(let n=0;nt):e+t}r7e(r,e,n,l,a)}BAs(TAs,n0e(e,2))!==null&&r7e(r,e,n,l,a);let f=new URL(e,n),I=f.pathname,C=new URL(".",n).pathname;if(bue(I,C)||r7e(r,e,n,l,a),t==="")return f;if(BAs(TAs,t)!==null){let b=o?v0l(r,"*",()=>t):r+t;F0l(b,n,l,a)}return o?new URL(wAs(RAs,f.href,()=>t)):new URL(t,f)}function L0l(e){let t=+e;return`${t}`!==e?!1:t>=0&&t<4294967295}function fGe(e,t,r,n,a,o,l,A){if(typeof t=="string")return Z0l(t,r,n,e,a,o,l);if(QAs(t)){if(t.length===0)return null;let f;for(let I=0;Io?-1:o>a||r===-1?1:n===-1||e.length>t.length?-1:t.length>e.length?1:0}function V0l(e,t,r){if(typeof e=="string"||QAs(e))return!0;if(typeof e!="object"||e===null)return!1;let n=hGt(e),a=!1,o=0;for(let l=0;l=I.length&&pGe(t,b)&&KAs(o,I)===1&&JAs(I,"*")===C&&(o=I,l=n0e(t,C,t.length-b.length))}}if(o){let f=r[o],I=fGe(e,f,l,o,n,!0,!1,a);return I==null&&yJr(t,e,n),I}yJr(t,e,n)}function O0l({name:e,base:t,conditions:r,readFileSyncFn:n}){if(e==="#"||bue(e,"#/")||pGe(e,"/")){let l="is not a valid internal imports specifier name";throw new UAs(e,l,eB.fileURLToPath(t))}let a,o=x0l(t,n);if(o.exists){a=eB.pathToFileURL(o.pjsonPath);let l=o.imports;if(l)if(mGt(l,e)&&!XAs(e,"*")){let A=fGe(a,l[e],"",e,t,!1,!0,r);if(A!=null)return A}else{let A="",f,I=hGt(l);for(let C=0;C=b.length&&pGe(e,N)&&KAs(A,b)===1&&JAs(b,"*")===E&&(A=b,f=n0e(e,E,e.length-N.length))}}if(A){let C=l[A],b=fGe(a,C,f,A,t,!0,!0,r);if(b!=null)return b}}}G0l(e,a,t)}var yT=(e=>(e.API_ERROR="API_ERROR",e.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",e.EXPORTS_RESOLUTION_FAILED="EXPORTS_RESOLUTION_FAILED",e.MISSING_DEPENDENCY="MISSING_DEPENDENCY",e.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",e.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",e.INTERNAL="INTERNAL",e.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",e.UNSUPPORTED="UNSUPPORTED",e))(yT||{}),M0l=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function YR(e,t,r={},n){n??=M0l.has(e)?"MODULE_NOT_FOUND":e;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(t),{code:{...a,value:n},pnpCode:{...a,value:e},data:{...a,value:r}})}function p6(e){return Rc.normalize(Rc.fromPortablePath(e))}var NJr=Symbol("arg flag"),DH=class e extends Error{constructor(t,r){super(t),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,e.prototype)}};function i7e(e,{argv:t=process.argv.slice(2),permissive:r=!1,stopAtPositional:n=!1}={}){if(!e)throw new DH("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},o={},l={};for(let A of Object.keys(e)){if(!A)throw new DH("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new DH(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new DH(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof e[A]=="string"){o[A]=e[A];continue}let f=e[A],I=!1;if(Array.isArray(f)&&f.length===1&&typeof f[0]=="function"){let[C]=f;f=(b,E,N=[])=>(N.push(C(b,E,N[N.length-1])),N),I=C===Boolean||C[NJr]===!0}else if(typeof f=="function")I=f===Boolean||f[NJr]===!0;else throw new DH(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new DH(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");l[A]=[f,I]}for(let A=0,f=t.length;A0){a._=a._.concat(t.slice(A));break}if(I==="--"){a._=a._.concat(t.slice(A+1));break}if(I.length>1&&I[0]==="-"){let C=I[1]==="-"||I.length===2?[I]:I.slice(1).split("").map(b=>`-${b}`);for(let b=0;b1&&t[A+1][0]==="-"&&!(t[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(Q===Number||typeof BigInt<"u"&&Q===BigInt))){let ae=N===F?"":` (alias for ${F})`;throw new DH(`option requires argument: ${N}${ae}`,"ARG_MISSING_REQUIRED_LONGARG")}a[F]=Q(t[A+1],F,a[F]),++A}else a[F]=Q(B,F,a[F])}}else a._.push(I)}return a}i7e.flag=e=>(e[NJr]=!0,e);i7e.COUNT=i7e.flag((e,t,r)=>(r||0)+1);i7e.ArgError=DH;var H0l=i7e;function Y0l(e){return Q0l(),DJr[e]}var DJr;function Q0l(){DJr||(DJr={"--conditions":[],...DAs(X0l()),...DAs(process.execArgv)})}function DAs(e){return H0l({"--conditions":[String],"-C":"--conditions"},{argv:e,permissive:!0})}function X0l(){let e=[],t=J0l(process.env.NODE_OPTIONS||"",e);return e.length,t}function J0l(e,t){let r=[],n=!1,a=!0;for(let o=0;oparseInt(e,10)),J0l=bJr>19||bJr===19&&kAs>=2||bJr===18&&kAs>=13;function xAs(e){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let t=e.map(r=>Rc.fromPortablePath(dGt.resolveVirtual(r)));if(J0l)process.send({"watch:require":t});else for(let r of t)process.send({"watch:require":r})}}function jAs(e,t){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,o=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,A=/^\.{0,2}\//,f={name:null,reference:null},I=[],C=new Set;if(e.enableTopLevelFallback===!0&&I.push(f),t.compatibilityMode!==!1)for(let vt of["react-scripts","gatsby"]){let xt=e.packageRegistry.get(vt);if(xt)for(let Zr of xt.keys()){if(Zr===null)throw new Error("Assertion failed: This reference shouldn't be null");I.push({name:vt,reference:Zr})}}let{ignorePattern:b,packageRegistry:E,packageLocatorsByLocations:N}=e;function B(vt,xt){return{fn:vt,args:xt,error:null,result:null}}function F(vt){let xt=process.stderr?.hasColors?.()??process.stdout.isTTY,Zr=(lr,cr)=>`\x1B[${lr}m${cr}\x1B[0m`,qt=vt.error;console.error(qt?Zr("31;1",`\u2716 ${vt.error?.message.replace(/\n.*/s,"")}`):Zr("33;1","\u203C Resolution")),vt.args.length>0&&console.error();for(let lr of vt.args)console.error(` ${Zr("37;1","In \u2190")} ${EAs.inspect(lr,{colors:xt,compact:!0})}`);vt.result&&(console.error(),console.error(` ${Zr("37;1","Out \u2192")} ${EAs.inspect(vt.result,{colors:xt,compact:!0})}`));let Xt=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Xt.length>0){console.error();for(let lr of Xt)console.error(` ${Zr("38;5;244",lr)}`)}console.error()}function Q(vt,xt){if(t.allowDebug===!1)return xt;if(Number.isFinite(n)){if(n>=2)return(...Zr)=>{let qt=B(vt,Zr);try{return qt.result=xt(...Zr)}catch(Xt){throw qt.error=Xt}finally{F(qt)}};if(n>=1)return(...Zr)=>{try{return xt(...Zr)}catch(qt){let Xt=B(vt,Zr);throw Xt.error=qt,F(Xt),qt}}}return xt}function X(vt){let xt=k(vt);if(!xt)throw YR(yT.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return xt}function ae(vt){if(vt.name===null)return!0;for(let xt of e.dependencyTreeRoots)if(xt.name===vt.name&&xt.reference===vt.reference)return!0;return!1}let ne=new Set(["node","require",...H0l("--conditions")]);function ce(vt,xt=ne,Zr){let qt=Me(gh.join(vt,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(qt===null)throw YR(yT.INTERNAL,`The locator that owns the "${vt}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Xt}=X(qt),lr=gh.join(Xt,gGt.manifest);if(!t.fakeFs.existsSync(lr))return null;let cr=JSON.parse(t.fakeFs.readFileSync(lr,"utf8"));if(cr.exports==null)return null;let Ar=gh.contains(Xt,vt);if(Ar===null)throw YR(yT.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Ar!=="."&&!A.test(Ar)&&(Ar=`./${Ar}`);try{let qr=P0l({packageJSONUrl:eB.pathToFileURL(Rc.fromPortablePath(lr)),packageSubpath:Ar,exports:cr.exports,base:Zr?eB.pathToFileURL(Rc.fromPortablePath(Zr)):null,conditions:xt});return Rc.toPortablePath(eB.fileURLToPath(qr))}catch(qr){throw YR(yT.EXPORTS_RESOLUTION_FAILED,qr.message,{unqualifiedPath:p6(vt),locator:qt,pkgJson:cr,subpath:p6(Ar),conditions:xt},qr.code)}}function fe(vt,xt,{extensions:Zr}){let qt;try{xt.push(vt),qt=t.fakeFs.statSync(vt)}catch{}if(qt&&!qt.isDirectory())return t.fakeFs.realpathSync(vt);if(qt&&qt.isDirectory()){let Xt;try{Xt=JSON.parse(t.fakeFs.readFileSync(gh.join(vt,gGt.manifest),"utf8"))}catch{}let lr;if(Xt&&Xt.main&&(lr=gh.resolve(vt,Xt.main)),lr&&lr!==vt){let cr=fe(lr,xt,{extensions:Zr});if(cr!==null)return cr}}for(let Xt=0,lr=Zr.length;Xt{let Ar=JSON.stringify(cr.name);if(qt.has(Ar))return;qt.add(Ar);let qr=et(cr);for(let _n of qr)if(X(_n).packagePeers.has(vt))Xt(_n);else{let jt=Zr.get(_n.name);typeof jt>"u"&&Zr.set(_n.name,jt=new Set),jt.add(_n.reference)}};Xt(xt);let lr=[];for(let cr of[...Zr.keys()].sort())for(let Ar of[...Zr.get(cr)].sort())lr.push({name:cr,reference:Ar});return lr}function Me(vt,{resolveIgnored:xt=!1,includeDiscardFromLookup:Zr=!1}={}){if(be(vt)&&!xt)return null;let qt=gh.relative(e.basePath,vt);qt.match(o)||(qt=`./${qt}`),qt.endsWith("/")||(qt=`${qt}/`);do{let Xt=N.get(qt);if(typeof Xt>"u"||Xt.discardFromLookup&&!Zr){qt=qt.substring(0,qt.lastIndexOf("/",qt.length-2)+1);continue}return Xt.locator}while(qt!=="");return null}function je(vt){try{return t.fakeFs.readFileSync(Rc.toPortablePath(vt),"utf8")}catch(xt){if(xt.code==="ENOENT")return;throw xt}}function St(vt,xt,{considerBuiltins:Zr=!0}={}){if(vt.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(vt==="pnpapi")return Rc.toPortablePath(t.pnpapiResolution);if(Zr&&r0e.isBuiltin(vt))return null;let qt=p6(vt),Xt=xt&&p6(xt);if(xt&&be(xt)&&(!gh.isAbsolute(vt)||Me(vt)===null)){let Ar=de(vt,xt);if(Ar===!1)throw YR(yT.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) +`),r}var[bJr,kAs]=process.versions.node.split(".").map(e=>parseInt(e,10)),U0l=bJr>19||bJr===19&&kAs>=2||bJr===18&&kAs>=13;function xAs(e){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send){let t=e.map(r=>Rc.fromPortablePath(dGt.resolveVirtual(r)));if(U0l)process.send({"watch:require":t});else for(let r of t)process.send({"watch:require":r})}}function jAs(e,t){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,n=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,o=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,A=/^\.{0,2}\//,f={name:null,reference:null},I=[],C=new Set;if(e.enableTopLevelFallback===!0&&I.push(f),t.compatibilityMode!==!1)for(let vt of["react-scripts","gatsby"]){let xt=e.packageRegistry.get(vt);if(xt)for(let Zr of xt.keys()){if(Zr===null)throw new Error("Assertion failed: This reference shouldn't be null");I.push({name:vt,reference:Zr})}}let{ignorePattern:b,packageRegistry:E,packageLocatorsByLocations:N}=e;function B(vt,xt){return{fn:vt,args:xt,error:null,result:null}}function F(vt){let xt=process.stderr?.hasColors?.()??process.stdout.isTTY,Zr=(lr,cr)=>`\x1B[${lr}m${cr}\x1B[0m`,qt=vt.error;console.error(qt?Zr("31;1",`\u2716 ${vt.error?.message.replace(/\n.*/s,"")}`):Zr("33;1","\u203C Resolution")),vt.args.length>0&&console.error();for(let lr of vt.args)console.error(` ${Zr("37;1","In \u2190")} ${EAs.inspect(lr,{colors:xt,compact:!0})}`);vt.result&&(console.error(),console.error(` ${Zr("37;1","Out \u2192")} ${EAs.inspect(vt.result,{colors:xt,compact:!0})}`));let Xt=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Xt.length>0){console.error();for(let lr of Xt)console.error(` ${Zr("38;5;244",lr)}`)}console.error()}function Q(vt,xt){if(t.allowDebug===!1)return xt;if(Number.isFinite(n)){if(n>=2)return(...Zr)=>{let qt=B(vt,Zr);try{return qt.result=xt(...Zr)}catch(Xt){throw qt.error=Xt}finally{F(qt)}};if(n>=1)return(...Zr)=>{try{return xt(...Zr)}catch(qt){let Xt=B(vt,Zr);throw Xt.error=qt,F(Xt),qt}}}return xt}function X(vt){let xt=k(vt);if(!xt)throw YR(yT.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return xt}function ae(vt){if(vt.name===null)return!0;for(let xt of e.dependencyTreeRoots)if(xt.name===vt.name&&xt.reference===vt.reference)return!0;return!1}let ne=new Set(["node","require",...Y0l("--conditions")]);function ce(vt,xt=ne,Zr){let qt=Me(gh.join(vt,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(qt===null)throw YR(yT.INTERNAL,`The locator that owns the "${vt}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Xt}=X(qt),lr=gh.join(Xt,gGt.manifest);if(!t.fakeFs.existsSync(lr))return null;let cr=JSON.parse(t.fakeFs.readFileSync(lr,"utf8"));if(cr.exports==null)return null;let Ar=gh.contains(Xt,vt);if(Ar===null)throw YR(yT.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");Ar!=="."&&!A.test(Ar)&&(Ar=`./${Ar}`);try{let qr=W0l({packageJSONUrl:eB.pathToFileURL(Rc.fromPortablePath(lr)),packageSubpath:Ar,exports:cr.exports,base:Zr?eB.pathToFileURL(Rc.fromPortablePath(Zr)):null,conditions:xt});return Rc.toPortablePath(eB.fileURLToPath(qr))}catch(qr){throw YR(yT.EXPORTS_RESOLUTION_FAILED,qr.message,{unqualifiedPath:p6(vt),locator:qt,pkgJson:cr,subpath:p6(Ar),conditions:xt},qr.code)}}function fe(vt,xt,{extensions:Zr}){let qt;try{xt.push(vt),qt=t.fakeFs.statSync(vt)}catch{}if(qt&&!qt.isDirectory())return t.fakeFs.realpathSync(vt);if(qt&&qt.isDirectory()){let Xt;try{Xt=JSON.parse(t.fakeFs.readFileSync(gh.join(vt,gGt.manifest),"utf8"))}catch{}let lr;if(Xt&&Xt.main&&(lr=gh.resolve(vt,Xt.main)),lr&&lr!==vt){let cr=fe(lr,xt,{extensions:Zr});if(cr!==null)return cr}}for(let Xt=0,lr=Zr.length;Xt{let Ar=JSON.stringify(cr.name);if(qt.has(Ar))return;qt.add(Ar);let qr=et(cr);for(let _n of qr)if(X(_n).packagePeers.has(vt))Xt(_n);else{let jt=Zr.get(_n.name);typeof jt>"u"&&Zr.set(_n.name,jt=new Set),jt.add(_n.reference)}};Xt(xt);let lr=[];for(let cr of[...Zr.keys()].sort())for(let Ar of[...Zr.get(cr)].sort())lr.push({name:cr,reference:Ar});return lr}function Me(vt,{resolveIgnored:xt=!1,includeDiscardFromLookup:Zr=!1}={}){if(be(vt)&&!xt)return null;let qt=gh.relative(e.basePath,vt);qt.match(o)||(qt=`./${qt}`),qt.endsWith("/")||(qt=`${qt}/`);do{let Xt=N.get(qt);if(typeof Xt>"u"||Xt.discardFromLookup&&!Zr){qt=qt.substring(0,qt.lastIndexOf("/",qt.length-2)+1);continue}return Xt.locator}while(qt!=="");return null}function je(vt){try{return t.fakeFs.readFileSync(Rc.toPortablePath(vt),"utf8")}catch(xt){if(xt.code==="ENOENT")return;throw xt}}function St(vt,xt,{considerBuiltins:Zr=!0}={}){if(vt.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(vt==="pnpapi")return Rc.toPortablePath(t.pnpapiResolution);if(Zr&&r0e.isBuiltin(vt))return null;let qt=p6(vt),Xt=xt&&p6(xt);if(xt&&be(xt)&&(!gh.isAbsolute(vt)||Me(vt)===null)){let Ar=de(vt,xt);if(Ar===!1)throw YR(yT.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${qt}" Required by: ${Xt} @@ -1604,8 +1604,8 @@ Expected package location: ${p6(cr)} Source path: ${Xt} ${Zr.map(cr=>`Not found: ${p6(cr)} -`).join("")}`,{unqualifiedPath:Xt,extensions:xt})}}function Tr(vt,xt,Zr){if(!xt)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let qt=W0l({name:vt,base:eB.pathToFileURL(Rc.fromPortablePath(xt)),conditions:Zr.conditions??ne,readFileSyncFn:je});if(qt instanceof URL)return Yt(Rc.toPortablePath(eB.fileURLToPath(qt)),{extensions:Zr.extensions});if(qt.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Nr(qt,xt,Zr)}function Nr(vt,xt,Zr={}){try{if(vt.startsWith("#"))return Tr(vt,xt,Zr);let{considerBuiltins:qt,extensions:Xt,conditions:lr}=Zr,cr=St(vt,xt,{considerBuiltins:qt});if(vt==="pnpapi")return cr;if(cr===null)return null;let Ar=()=>xt!==null?be(xt):!1,qr=(!qt||!r0e.isBuiltin(vt))&&!Ar()?At(vt,cr,lr,xt):cr;return Yt(qr,{extensions:Xt})}catch(qt){throw Object.hasOwn(qt,"pnpCode")&&Object.assign(qt.data,{request:p6(vt),issuer:xt&&p6(xt)}),qt}}function er(vt){let xt=gh.normalize(vt),Zr=dGt.resolveVirtual(xt);return Zr!==xt?Zr:null}return{VERSIONS:Se,topLevel:De,getLocator:(vt,xt)=>Array.isArray(xt)?{name:xt[0],reference:xt[1]}:{name:vt,reference:xt},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){let vt=[];for(let[xt,Zr]of E)for(let qt of Zr.keys())xt!==null&&qt!==null&&vt.push({name:xt,reference:qt});return vt},getPackageInformation:vt=>{let xt=k(vt);if(xt===null)return null;let Zr=Rc.fromPortablePath(xt.packageLocation);return{...xt,packageLocation:Zr}},findPackageLocator:vt=>Me(Rc.toPortablePath(vt)),resolveToUnqualified:Q("resolveToUnqualified",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=St(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveUnqualified:Q("resolveUnqualified",(vt,xt)=>Rc.fromPortablePath(Yt(Rc.toPortablePath(vt),xt))),resolveRequest:Q("resolveRequest",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=Nr(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveVirtual:Q("resolveVirtual",vt=>{let xt=er(Rc.toPortablePath(vt));return xt!==null?Rc.fromPortablePath(xt):null})}}async function U0l(e,{fakeFs:t,pnpapiResolution:r}){let n=await t.readFilePromise(e,"utf8");return zAs(n,{basePath:GAs.dirname(e),fakeFs:t,pnpapiResolution:r})}function zAs(e,{basePath:t,fakeFs:r,pnpapiResolution:n}){let a=JSON.parse(e),o=YAs(a,{basePath:t});return jAs(o,{compatibilityMode:!0,fakeFs:r,pnpapiResolution:n})}var K0l=(e,t,r)=>{let n=xJr(e),a=YAs(n,{basePath:t}),o=Rc.join(t,gGt.pnpCjs);return jAs(a,{fakeFs:r,pnpapiResolution:o})},EJr,j0l=()=>(typeof EJr>"u"&&(EJr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),EJr);z4.LinkType=ZAs;z4.generateInlinedScript=b0l;z4.generateLoader=GJr;z4.generatePrettyJson=HAs;z4.generateSplitScript=E0l;z4.getESMLoaderTemplate=j0l;z4.hydratePnpFile=U0l;z4.hydratePnpSource=zAs;z4.makeRuntimeApi=K0l});var LJr=H(IGe=>{"use strict";Object.defineProperty(IGe,"__esModule",{value:!0});IGe.checkManifestCompatibility=qAs;IGe.extractBuildRequest=q0l;IGe.getExtractHint=eyl;IGe.hasBindingGyp=tyl;var XV=Bn(),z0l=no();function qAs(e){return XV.structUtils.isPackageCompatible(e,XV.nodeUtils.getArchitectureSet())}function q0l(e,t,r,{configuration:n}){let a=[];for(let o of["preinstall","install","postinstall"])t.manifest.scripts.has(o)&&a.push({type:XV.BuildDirectiveType.SCRIPT,script:o});return!t.manifest.scripts.has("install")&&t.misc.hasBindingGyp&&a.push({type:XV.BuildDirectiveType.SHELLCODE,script:"node-gyp rebuild"}),a.length===0?null:e.linkType!==XV.LinkType.HARD?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.SOFT_LINK_BUILD,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:o=>o.reportInfoOnce(XV.MessageName.BUILD_DISABLED,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!n.get("enableScripts")&&!r.built?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.DISABLED_BUILD_SCRIPTS,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but all build scripts have been disabled.`)}:qAs(e)?{skipped:!1,directives:a}:{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.INCOMPATIBLE_ARCHITECTURE,`${XV.structUtils.prettyLocator(n,e)} The ${XV.nodeUtils.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var $0l=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function eyl(e){return e.packageFs.getExtractHint({relevantExtensions:$0l})}function tyl(e){let t=z0l.ppath.join(e.prefixPath,"binding.gyp");return e.packageFs.existsSync(t)}});var CGt=H(VJr=>{"use strict";Object.defineProperty(VJr,"__esModule",{value:!0});VJr.getUnpluggedPath=iyl;var ryl=Bn(),nyl=no();function iyl(e,{configuration:t}){return nyl.ppath.resolve(t.get("pnpUnpluggedFolder"),ryl.structUtils.slugifyLocator(e))}});var MJr=H(hGe=>{"use strict";Object.defineProperty(hGe,"__esModule",{value:!0});hGe.PnpInstaller=hGe.PnpLinker=void 0;var eds=(Pa(),vi(Va)),cC=Bn(),Eue=Bn(),Pm=no(),PJr=ZJr(),$As=($c(),vi(rg)),_Gt=mGe(),yGt=eds.__importStar(LJr()),syl=eds.__importStar(CGt()),oyl=new Set([cC.structUtils.makeIdent(null,"open").identHash,cC.structUtils.makeIdent(null,"opn").identHash]),OJr=class{constructor(){this.mode="strict",this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))throw new $As.UsageError(`The project in ${cC.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,cC.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})),o={name:cC.structUtils.stringifyIdent(t),reference:t.reference},l=a.getPackageInformation(o);if(!l)throw new $As.UsageError(`Couldn't find ${cC.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed PnP map - running an install might help`);return Pm.npath.toPortablePath(l.packageLocation)}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))return null;let o=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})).findPackageLocator(Pm.npath.fromPortablePath(t));return o?cC.structUtils.makeLocator(cC.structUtils.parseIdent(o.name),o.reference):null}makeInstaller(t){return new bGt(t)}isEnabled(t){return!(t.project.configuration.get("nodeLinker")!=="pnp"||t.project.configuration.get("pnpMode")!==this.mode)}};hGe.PnpLinker=OJr;var bGt=class{constructor(t){this.opts=t,this.mode="strict",this.asyncActions=new cC.miscUtils.AsyncActions(10),this.packageRegistry=new Map,this.virtualTemplates=new Map,this.isESMLoaderRequired=!1,this.customData={store:new Map},this.unpluggedPaths=new Set,this.opts=t}attachCustomData(t){this.customData=t}async installPackage(t,r,n){let a=cC.structUtils.stringifyIdent(t),o=t.reference,l=!!this.opts.project.tryWorkspaceByLocator(t),A=cC.structUtils.isVirtualLocator(t),f=t.peerDependencies.size>0&&!A,I=!f&&!l,C=!f&&t.linkType!==Eue.LinkType.SOFT,b,E;if(I||C){let ne=A?cC.structUtils.devirtualizeLocator(t):t;b=this.customData.store.get(ne.locatorHash),typeof b>"u"&&(b=await ayl(r),t.linkType===Eue.LinkType.HARD&&this.customData.store.set(ne.locatorHash,b)),b.manifest.type==="module"&&(this.isESMLoaderRequired=!0),E=this.opts.project.getDependencyMeta(ne,t.version)}let N=I?yGt.extractBuildRequest(t,b,E,{configuration:this.opts.project.configuration}):null,B=C?await this.unplugPackageIfNeeded(t,b,r,E,n):r.packageFs;if(Pm.ppath.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let F=Pm.ppath.resolve(B.getRealPath(),r.prefixPath),Q=WJr(this.opts.project.cwd,F),X=new Map,ae=new Set;if(A){for(let ne of t.peerDependencies.values())X.set(cC.structUtils.stringifyIdent(ne),null),ae.add(cC.structUtils.stringifyIdent(ne));if(!l){let ne=cC.structUtils.devirtualizeLocator(t);this.virtualTemplates.set(ne.locatorHash,{location:WJr(this.opts.project.cwd,Pm.VirtualFS.resolveVirtual(F)),locator:ne})}}return cC.miscUtils.getMapWithDefault(this.packageRegistry,a).set(o,{packageLocation:Q,packageDependencies:X,packagePeers:ae,linkType:t.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:F,buildRequest:N}}async attachInternalDependencies(t,r){let n=this.getPackageInformation(t);for(let[a,o]of r){let l=cC.structUtils.areIdentsEqual(a,o)?o.reference:[cC.structUtils.stringifyIdent(o),o.reference];n.packageDependencies.set(cC.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){for(let n of r)this.getDiskInformation(n).packageDependencies.set(cC.structUtils.stringifyIdent(t),t.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let t=(0,_Gt.getPnpPath)(this.opts.project);if(this.isEsmEnabled()||await Pm.xfs.removePromise(t.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await Pm.xfs.removePromise(t.cjs),await Pm.xfs.removePromise(t.data),await Pm.xfs.removePromise(t.esmLoader),await Pm.xfs.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:b,location:E}of this.virtualTemplates.values())cC.miscUtils.getMapWithDefault(this.packageRegistry,cC.structUtils.stringifyIdent(b)).set(b.reference,{packageLocation:E,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),n=this.opts.project.workspaces.map(({anchoredLocator:b})=>({name:cC.structUtils.stringifyIdent(b),reference:b.reference})),a=r!=="none",o=[],l=new Map,A=cC.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),f=this.packageRegistry,I=this.opts.project.configuration.get("pnpShebang"),C=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let b of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(b)&&o.push({name:cC.structUtils.stringifyIdent(b),reference:b.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:n,enableTopLevelFallback:a,fallbackExclusionList:o,fallbackPool:l,ignorePattern:A,pnpZipBackend:C,packageRegistry:f,shebang:I}),{customData:this.customData}}async transformPnpSettings(t){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let t of this.opts.project.workspaces)if(t.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(t){let r=(0,_Gt.getPnpPath)(this.opts.project),n=await this.locateNodeModules(t.ignorePattern);if(n.length>0){this.opts.report.reportWarning(Eue.MessageName.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await Pm.xfs.removePromise(o)}if(await this.transformPnpSettings(t),this.opts.project.configuration.get("pnpEnableInlining")){let o=(0,PJr.generateInlinedScript)(t);await Pm.xfs.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await Pm.xfs.removePromise(r.data)}else{let{dataFile:o,loaderFile:l}=(0,PJr.generateSplitScript)(t);await Pm.xfs.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await Pm.xfs.changeFilePromise(r.data,o,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(Eue.MessageName.EXPERIMENTAL,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await Pm.xfs.changeFilePromise(r.esmLoader,(0,PJr.getESMLoaderTemplate)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await Pm.xfs.removePromise(a);else for(let o of await Pm.xfs.readdirPromise(a)){let l=Pm.ppath.resolve(a,o);this.unpluggedPaths.has(l)||await Pm.xfs.removePromise(l)}}async locateNodeModules(t){let r=[],n=t?new RegExp(t):null;for(let a of this.opts.project.workspaces){let o=Pm.ppath.join(a.cwd,"node_modules");if(n&&n.test(Pm.ppath.relative(this.opts.project.cwd,a.cwd))||!Pm.xfs.existsSync(o))continue;let l=await Pm.xfs.readdirPromise(o,{withFileTypes:!0}),A=l.filter(f=>!f.isDirectory()||f.name===".bin"||!f.name.startsWith("."));if(A.length===l.length)r.push(o);else for(let f of A)r.push(Pm.ppath.join(o,f.name))}return r}async unplugPackageIfNeeded(t,r,n,a,o){return this.shouldBeUnplugged(t,r,a)?this.unplugPackage(t,n,o):n.packageFs}shouldBeUnplugged(t,r,n){return typeof n.unplugged<"u"?n.unplugged:oyl.has(t.identHash)||t.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(yGt.extractBuildRequest(t,r,n,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(t,r,n){let a=syl.getUnpluggedPath(t,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(t.locatorHash)?new Pm.AliasFS(a,{baseFs:r.packageFs,pathUtils:Pm.ppath}):(this.unpluggedPaths.add(a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{let o=Pm.ppath.join(a,r.prefixPath,".ready");await Pm.xfs.existsPromise(o)||(this.opts.project.storedBuildState.delete(t.locatorHash),await Pm.xfs.mkdirPromise(a,{recursive:!0}),await Pm.xfs.copyPromise(a,Pm.PortablePath.dot,{baseFs:r.packageFs,overwrite:!1}),await Pm.xfs.writeFilePromise(o,""))})),new Pm.CwdFS(a))}getPackageInformation(t){let r=cC.structUtils.stringifyIdent(t),n=t.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${cC.structUtils.prettyIdent(this.opts.project.configuration,t)})`);let o=a.get(n);if(!o)throw new Error(`Assertion failed: The package information should have been available (for ${cC.structUtils.prettyLocator(this.opts.project.configuration,t)})`);return o}getDiskInformation(t){let r=cC.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),n=WJr(this.opts.project.cwd,t);return cC.miscUtils.getFactoryWithDefault(r,n,()=>({packageLocation:n,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1}))}};hGe.PnpInstaller=bGt;function WJr(e,t){let r=Pm.ppath.relative(e,t);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function ayl(e){let t=await Eue.Manifest.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Eue.Manifest,r=new Set(["preinstall","install","postinstall"]);for(let n of t.scripts.keys())r.has(n)||t.scripts.delete(n);return{manifest:{scripts:t.scripts,preferUnplugged:t.preferUnplugged,type:t.type},misc:{extractHint:yGt.getExtractHint(e),hasBindingGyp:yGt.hasBindingGyp(e)}}}});var nds=H(HJr=>{"use strict";Object.defineProperty(HJr,"__esModule",{value:!0});var rds=(Pa(),vi(Va)),tds=el(),kH=Bn(),xH=Bn(),Wte=($c(),vi(rg)),cyl=rds.__importDefault(Ek()),lyl=rds.__importStar(CGt()),o7e=class extends tds.BaseCommand{constructor(){super(...arguments),this.all=Wte.Option.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"}),this.recursive=Wte.Option.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"}),this.json=Wte.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=Wte.Option.Rest()}async execute(){let t=await kH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await kH.Project.find(t,this.context.cwd),a=await kH.Cache.find(t);if(!n)throw new tds.WorkspaceRequiredError(r.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Wte.UsageError("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let o=new Set(this.patterns),l=this.patterns.map(E=>{let N=xH.structUtils.parseDescriptor(E),B=N.range!=="unknown"?N:xH.structUtils.makeDescriptor(N,"*");if(!xH.semverUtils.validRange(B.range))throw new Wte.UsageError(`The range of the descriptor patterns must be a valid semver range (${xH.structUtils.prettyDescriptor(t,B)})`);return F=>{let Q=xH.structUtils.stringifyIdent(F);return!cyl.default.isMatch(Q,xH.structUtils.stringifyIdent(B))||F.version&&!xH.semverUtils.satisfiesWithPrereleases(F.version,B.range)?!1:(o.delete(E),!0)}}),A=()=>{let E=[];for(let N of r.storedPackages.values())!r.tryWorkspaceByLocator(N)&&!xH.structUtils.isVirtualLocator(N)&&l.some(B=>B(N))&&E.push(N);return E},f=E=>{let N=new Set,B=[],F=(Q,X)=>{if(N.has(Q.locatorHash))return;let ae=!!r.tryWorkspaceByLocator(Q);if(!(X>0&&!this.recursive&&ae)&&(N.add(Q.locatorHash),!r.tryWorkspaceByLocator(Q)&&l.some(ne=>ne(Q))&&B.push(Q),!(X>0&&!this.recursive)))for(let ne of Q.dependencies.values()){let ce=r.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=r.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");F(fe,X+1)}};for(let Q of E)F(Q.anchoredPackage,0);return B},I,C;if(this.all&&this.recursive?(I=A(),C="the project"):this.all?(I=f(r.workspaces),C="any workspace"):(I=f([n]),C="this workspace"),o.size>1)throw new Wte.UsageError(`Patterns ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} don't match any packages referenced by ${C}`);if(o.size>0)throw new Wte.UsageError(`Pattern ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} doesn't match any packages referenced by ${C}`);I=kH.miscUtils.sortMap(I,E=>xH.structUtils.stringifyLocator(E));let b=await kH.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async E=>{for(let N of I){let B=N.version??"unknown",F=r.topLevelWorkspace.manifest.ensureDependencyMeta(xH.structUtils.makeDescriptor(N,B));F.unplugged=!0,E.reportInfo(kH.MessageName.UNNAMED,`Will unpack ${xH.structUtils.prettyLocator(t,N)} to ${kH.formatUtils.pretty(t,lyl.getUnpluggedPath(N,{configuration:t}),kH.formatUtils.Type.PATH)}`),E.reportJson({locator:xH.structUtils.stringifyLocator(N),version:B})}await r.topLevelWorkspace.persistManifest(),this.json||E.reportSeparator()});return b.hasErrors()?b.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};o7e.paths=[["unplug"]];o7e.usage=Wte.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});HJr.default=o7e});var mGe=H(bT=>{"use strict";Object.defineProperty(bT,"__esModule",{value:!0});bT.PnpLinker=bT.PnpInstaller=bT.quotePathIfNeeded=bT.getPnpPath=bT.pnpUtils=bT.jsInstallUtils=bT.UnplugCommand=void 0;var YJr=(Pa(),vi(Va)),JV=Bn(),f6=no(),uyl=wt("url"),gyl=MJr(),ids=YJr.__importDefault(nds());bT.UnplugCommand=ids.default;var Ayl=YJr.__importStar(LJr());bT.jsInstallUtils=Ayl;var dyl=YJr.__importStar(CGt());bT.pnpUtils=dyl;var pyl=e=>({cjs:f6.ppath.join(e.cwd,f6.Filename.pnpCjs),data:f6.ppath.join(e.cwd,f6.Filename.pnpData),esmLoader:f6.ppath.join(e.cwd,f6.Filename.pnpEsmLoader)});bT.getPnpPath=pyl;var fyl=e=>/\s/.test(e)?JSON.stringify(e):e;bT.quotePathIfNeeded=fyl;async function Iyl(e,t,r){let n=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,o=(t.NODE_OPTIONS??"").replace(n," ").replace(a," ").trim();if(e.configuration.get("nodeLinker")!=="pnp"){t.NODE_OPTIONS=o||void 0;return}let l=(0,bT.getPnpPath)(e),A=`--require ${(0,bT.quotePathIfNeeded)(f6.npath.fromPortablePath(l.cjs))}`;f6.xfs.existsSync(l.esmLoader)&&(A=`${A} --experimental-loader ${(0,uyl.pathToFileURL)(f6.npath.fromPortablePath(l.esmLoader)).href}`),f6.xfs.existsSync(l.cjs)&&(t.NODE_OPTIONS=o?`${A} ${o}`:A)}async function hyl(e,t){let r=(0,bT.getPnpPath)(e);t(r.cjs),t(r.data),t(r.esmLoader),t(e.configuration.get("pnpUnpluggedFolder"))}var myl={hooks:{populateYarnPaths:hyl,setupScriptEnvironment:Iyl},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:JV.SettingsType.STRING,default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:JV.SettingsType.BOOLEAN,default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:JV.SettingsType.STRING,values:[JV.WindowsLinkType.JUNCTIONS,JV.WindowsLinkType.SYMLINKS],default:JV.WindowsLinkType.JUNCTIONS},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:JV.SettingsType.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:JV.SettingsType.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:JV.SettingsType.STRING,default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:JV.SettingsType.STRING,values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:JV.SettingsType.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:JV.SettingsType.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:JV.SettingsType.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:JV.SettingsType.ABSOLUTE_PATH,default:"./.yarn/unplugged"}},linkers:[gyl.PnpLinker],commands:[ids.default]},sds=MJr();Object.defineProperty(bT,"PnpInstaller",{enumerable:!0,get:function(){return sds.PnpInstaller}});Object.defineProperty(bT,"PnpLinker",{enumerable:!0,get:function(){return sds.PnpLinker}});bT.default=myl});var ods=H((QJr,XJr)=>{(function(e){QJr&&typeof QJr=="object"&&typeof XJr<"u"?XJr.exports=e():typeof define=="function"&&define.amd?define([],e):typeof window<"u"?window.isWindows=e():typeof global<"u"?global.isWindows=e():typeof self<"u"?self.isWindows=e():this.isWindows=e()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var lds=H((Erg,cds)=>{"use strict";var Cyl=wt("path"),ads;process.env.PATHEXT&&(ads=process.env.PATHEXT.split(Cyl.delimiter).find(e=>e.toUpperCase()===".CMD"));cds.exports=ads||".cmd"});var gds=H((Srg,uds)=>{var Sue=wt("constants"),_yl=process.cwd,EGt=null,yyl=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return EGt||(EGt=_yl.call(process)),EGt};try{process.cwd()}catch{}typeof process.chdir=="function"&&(JJr=process.chdir,process.chdir=function(e){EGt=null,JJr.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,JJr));var JJr;uds.exports=byl;function byl(e){Sue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=o(e.chown),e.fchown=o(e.fchown),e.lchown=o(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=l(e.chownSync),e.fchownSync=l(e.fchownSync),e.lchownSync=l(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=A(e.stat),e.fstat=A(e.fstat),e.lstat=A(e.lstat),e.statSync=f(e.statSync),e.fstatSync=f(e.fstatSync),e.lstatSync=f(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(C,b,E){E&&process.nextTick(E)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(C,b,E,N){N&&process.nextTick(N)},e.lchownSync=function(){}),yyl==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(C){function b(E,N,B){var F=Date.now(),Q=0;C(E,N,function X(ae){if(ae&&(ae.code==="EACCES"||ae.code==="EPERM"||ae.code==="EBUSY")&&Date.now()-F<6e4){setTimeout(function(){e.stat(N,function(ne,ce){ne&&ne.code==="ENOENT"?C(E,N,X):B(ae)})},Q),Q<100&&(Q+=10);return}B&&B(ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.rename)),e.read=typeof e.read!="function"?e.read:function(C){function b(E,N,B,F,Q,X){var ae;if(X&&typeof X=="function"){var ne=0;ae=function(ce,fe,ue){if(ce&&ce.code==="EAGAIN"&&ne<10)return ne++,C.call(e,E,N,B,F,Q,ae);X.apply(this,arguments)}}return C.call(e,E,N,B,F,Q,ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(C){return function(b,E,N,B,F){for(var Q=0;;)try{return C.call(e,b,E,N,B,F)}catch(X){if(X.code==="EAGAIN"&&Q<10){Q++;continue}throw X}}}(e.readSync);function t(C){C.lchmod=function(b,E,N){C.open(b,Sue.O_WRONLY|Sue.O_SYMLINK,E,function(B,F){if(B){N&&N(B);return}C.fchmod(F,E,function(Q){C.close(F,function(X){N&&N(Q||X)})})})},C.lchmodSync=function(b,E){var N=C.openSync(b,Sue.O_WRONLY|Sue.O_SYMLINK,E),B=!0,F;try{F=C.fchmodSync(N,E),B=!1}finally{if(B)try{C.closeSync(N)}catch{}else C.closeSync(N)}return F}}function r(C){Sue.hasOwnProperty("O_SYMLINK")&&C.futimes?(C.lutimes=function(b,E,N,B){C.open(b,Sue.O_SYMLINK,function(F,Q){if(F){B&&B(F);return}C.futimes(Q,E,N,function(X){C.close(Q,function(ae){B&&B(X||ae)})})})},C.lutimesSync=function(b,E,N){var B=C.openSync(b,Sue.O_SYMLINK),F,Q=!0;try{F=C.futimesSync(B,E,N),Q=!1}finally{if(Q)try{C.closeSync(B)}catch{}else C.closeSync(B)}return F}):C.futimes&&(C.lutimes=function(b,E,N,B){B&&process.nextTick(B)},C.lutimesSync=function(){})}function n(C){return C&&function(b,E,N){return C.call(e,b,E,function(B){I(B)&&(B=null),N&&N.apply(this,arguments)})}}function a(C){return C&&function(b,E){try{return C.call(e,b,E)}catch(N){if(!I(N))throw N}}}function o(C){return C&&function(b,E,N,B){return C.call(e,b,E,N,function(F){I(F)&&(F=null),B&&B.apply(this,arguments)})}}function l(C){return C&&function(b,E,N){try{return C.call(e,b,E,N)}catch(B){if(!I(B))throw B}}}function A(C){return C&&function(b,E,N){typeof E=="function"&&(N=E,E=null);function B(F,Q){Q&&(Q.uid<0&&(Q.uid+=4294967296),Q.gid<0&&(Q.gid+=4294967296)),N&&N.apply(this,arguments)}return E?C.call(e,b,E,B):C.call(e,b,B)}}function f(C){return C&&function(b,E){var N=E?C.call(e,b,E):C.call(e,b);return N&&(N.uid<0&&(N.uid+=4294967296),N.gid<0&&(N.gid+=4294967296)),N}}function I(C){if(!C||C.code==="ENOSYS")return!0;var b=!process.getuid||process.getuid()!==0;return!!(b&&(C.code==="EINVAL"||C.code==="EPERM"))}}});var pds=H((vrg,dds)=>{var Ads=wt("stream").Stream;dds.exports=Eyl;function Eyl(e){return{ReadStream:t,WriteStream:r};function t(n,a){if(!(this instanceof t))return new t(n,a);Ads.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,a=a||{};for(var l=Object.keys(a),A=0,f=l.length;Athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}e.open(this.path,this.flags,this.mode,function(C,b){if(C){o.emit("error",C),o.readable=!1;return}o.fd=b,o.emit("open",b),o._read()})}function r(n,a){if(!(this instanceof r))return new r(n,a);Ads.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,a=a||{};for(var o=Object.keys(a),l=0,A=o.length;l= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Ids=H((Brg,fds)=>{"use strict";fds.exports=vyl;var Syl=Object.getPrototypeOf||function(e){return e.__proto__};function vyl(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:Syl(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var _ds=H((wrg,jJr)=>{var WS=wt("fs"),Byl=gds(),wyl=pds(),Tyl=Ids(),SGt=wt("util"),dx,BGt;typeof Symbol=="function"&&typeof Symbol.for=="function"?(dx=Symbol.for("graceful-fs.queue"),BGt=Symbol.for("graceful-fs.previous")):(dx="___graceful-fs.queue",BGt="___graceful-fs.previous");function Ryl(){}function Cds(e,t){Object.defineProperty(e,dx,{get:function(){return t}})}var s0e=Ryl;SGt.debuglog?s0e=SGt.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(s0e=function(){var e=SGt.format.apply(SGt,arguments);e="GFS4: "+e.split(/\n/).join(` -GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=function(e){function t(r,n){return e.call(WS,r,function(a){a||mds(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,BGt,{value:e}),t}(WS.close),WS.closeSync=function(e){function t(r){e.apply(WS,arguments),mds()}return Object.defineProperty(t,BGt,{value:e}),t}(WS.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){s0e(WS[dx]),wt("assert").equal(WS[dx].length,0)}));var hds;global[dx]||Cds(global,WS[dx]);jJr.exports=UJr(Tyl(WS));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!WS.__patched&&(jJr.exports=UJr(WS),WS.__patched=!0);function UJr(e){Byl(e),e.gracefulify=UJr,e.createReadStream=fe,e.createWriteStream=ue;var t=e.readFile;e.readFile=r;function r(Se,De,k){return typeof De=="function"&&(k=De,De=null),et(Se,De,k);function et(ct,Me,je,St){return t(ct,Me,function(At){At&&(At.code==="EMFILE"||At.code==="ENFILE")?CGe([et,[ct,Me,je],At,St||Date.now(),Date.now()]):typeof je=="function"&&je.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=a;function a(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return n(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var o=e.appendFile;o&&(e.appendFile=l);function l(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return o(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var A=e.copyFile;A&&(e.copyFile=f);function f(Se,De,k,et){return typeof k=="function"&&(et=k,k=0),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return A(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var I=e.readdir;e.readdir=b;var C=/^v[0-5]\./;function b(Se,De,k){typeof De=="function"&&(k=De,De=null);var et=C.test(process.version)?function(je,St,At,Yt){return I(je,ct(je,St,At,Yt))}:function(je,St,At,Yt){return I(je,St,ct(je,St,At,Yt))};return et(Se,De,k);function ct(Me,je,St,At){return function(Yt,Tr){Yt&&(Yt.code==="EMFILE"||Yt.code==="ENFILE")?CGe([et,[Me,je,St],Yt,At||Date.now(),Date.now()]):(Tr&&Tr.sort&&Tr.sort(),typeof St=="function"&&St.call(this,Yt,Tr))}}}if(process.version.substr(0,4)==="v0.8"){var E=wyl(e);X=E.ReadStream,ne=E.WriteStream}var N=e.ReadStream;N&&(X.prototype=Object.create(N.prototype),X.prototype.open=ae);var B=e.WriteStream;B&&(ne.prototype=Object.create(B.prototype),ne.prototype.open=ce),Object.defineProperty(e,"ReadStream",{get:function(){return X},set:function(Se){X=Se},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return ne},set:function(Se){ne=Se},enumerable:!0,configurable:!0});var F=X;Object.defineProperty(e,"FileReadStream",{get:function(){return F},set:function(Se){F=Se},enumerable:!0,configurable:!0});var Q=ne;Object.defineProperty(e,"FileWriteStream",{get:function(){return Q},set:function(Se){Q=Se},enumerable:!0,configurable:!0});function X(Se,De){return this instanceof X?(N.apply(this,arguments),this):X.apply(Object.create(X.prototype),arguments)}function ae(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.autoClose&&Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k),Se.read())})}function ne(Se,De){return this instanceof ne?(B.apply(this,arguments),this):ne.apply(Object.create(ne.prototype),arguments)}function ce(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k))})}function fe(Se,De){return new e.ReadStream(Se,De)}function ue(Se,De){return new e.WriteStream(Se,De)}var de=e.open;e.open=be;function be(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return de(Me,je,St,function(Tr,Nr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}return e}function CGe(e){s0e("ENQUEUE",e[0].name,e[1]),WS[dx].push(e),KJr()}var vGt;function mds(){for(var e=Date.now(),t=0;t2&&(WS[dx][t][3]=e,WS[dx][t][4]=e);KJr()}function KJr(){if(clearTimeout(vGt),vGt=void 0,WS[dx].length!==0){var e=WS[dx].shift(),t=e[0],r=e[1],n=e[2],a=e[3],o=e[4];if(a===void 0)s0e("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-a>=6e4){s0e("TIMEOUT",t.name,r);var l=r.pop();typeof l=="function"&&l.call(null,n)}else{var A=Date.now()-o,f=Math.max(o-a,1),I=Math.min(f*1.2,100);A>=I?(s0e("RETRY",t.name,r),t.apply(null,r.concat([a]))):WS[dx].push(e)}vGt===void 0&&(vGt=setTimeout(KJr,0))}}});var Eds=H((Trg,bds)=>{"use strict";qJr.ifExists=Gyl;var _Ge=wt("util"),WO=wt("path"),zJr=ods(),Nyl=lds(),Dyl=/^#!\s*(?:\/usr\/bin\/env(?:\s+-S\s*)?)?\s*([^ \t]+)(.*)$/,kyl={createPwshFile:!0,createCmdFile:zJr(),fs:_ds()},xyl=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function yds(e){let t={...kyl,...e},r=t.fs;return t.fs_={chmod:r.chmod?(0,_Ge.promisify)(r.chmod):async()=>{},mkdir:(0,_Ge.promisify)(r.mkdir),readFile:(0,_Ge.promisify)(r.readFile),stat:(0,_Ge.promisify)(r.stat),unlink:(0,_Ge.promisify)(r.unlink),writeFile:(0,_Ge.promisify)(r.writeFile)},t}async function qJr(e,t,r){let n=yds(r);await Zyl(e,t,n)}function Gyl(e,t,r){return qJr(e,t,r).catch(()=>{})}function Fyl(e,t){return t.fs_.unlink(e).catch(()=>{})}async function Zyl(e,t,r){let n=await Oyl(e,r);return await Lyl(t,r),Vyl(e,t,n,r)}function Lyl(e,t){return t.fs_.mkdir(WO.dirname(e),{recursive:!0})}function Vyl(e,t,r,n){let a=yds(n),o=[{generator:Qyl,extension:""}];return a.createCmdFile&&o.push({generator:Yyl,extension:Nyl}),a.createPwshFile&&o.push({generator:Xyl,extension:".ps1"}),Promise.all(o.map(l=>Hyl(e,t+l.extension,r,l.generator,a)))}function Pyl(e,t){return Fyl(e,t)}function Wyl(e,t){return Jyl(e,t)}async function Oyl(e,t){try{let a=(await t.fs_.readFile(e,"utf8")).trim().split(/\r*\n/)[0].match(Dyl);if(!a){let o=WO.extname(e).toLowerCase();return{program:xyl.get(o)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}catch(r){if(!zJr()||r.code!=="ENOENT")throw r;if(await t.fs_.stat(`${e}${Myl()}`))return{program:null,additionalArgs:""};throw r}}function Myl(){let e;return process.env.PATHEXT&&(e=process.env.PATHEXT.split(WO.delimiter).find(t=>t.toLowerCase()===".exe")),e||".exe"}async function Hyl(e,t,r,n,a){let o=a.preserveSymlinks?"--preserve-symlinks":"",l=[r.additionalArgs,o].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:l}),await Pyl(t,a),await a.fs_.writeFile(t,n(e,t,a),"utf8"),Wyl(t,a)}function Yyl(e,t,r){let a=WO.relative(WO.dirname(t),e).split("/").join("\\"),o=WO.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,l,A=r.prog,f=r.args||"",I=a7e(r.nodePath).win32,C=a7e(r.prependToPath).win32;A?A==="node"&&r.nodeExecPath?(A=`"${r.nodeExecPath}"`,a=o):(l=`"%~dp0\\${A}.exe"`,a=o):(A=o,f="",a="");let b=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`@SETLOCAL\r +`).join("")}`,{unqualifiedPath:Xt,extensions:xt})}}function Tr(vt,xt,Zr){if(!xt)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let qt=O0l({name:vt,base:eB.pathToFileURL(Rc.fromPortablePath(xt)),conditions:Zr.conditions??ne,readFileSyncFn:je});if(qt instanceof URL)return Yt(Rc.toPortablePath(eB.fileURLToPath(qt)),{extensions:Zr.extensions});if(qt.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return Nr(qt,xt,Zr)}function Nr(vt,xt,Zr={}){try{if(vt.startsWith("#"))return Tr(vt,xt,Zr);let{considerBuiltins:qt,extensions:Xt,conditions:lr}=Zr,cr=St(vt,xt,{considerBuiltins:qt});if(vt==="pnpapi")return cr;if(cr===null)return null;let Ar=()=>xt!==null?be(xt):!1,qr=(!qt||!r0e.isBuiltin(vt))&&!Ar()?At(vt,cr,lr,xt):cr;return Yt(qr,{extensions:Xt})}catch(qt){throw Object.hasOwn(qt,"pnpCode")&&Object.assign(qt.data,{request:p6(vt),issuer:xt&&p6(xt)}),qt}}function er(vt){let xt=gh.normalize(vt),Zr=dGt.resolveVirtual(xt);return Zr!==xt?Zr:null}return{VERSIONS:Se,topLevel:De,getLocator:(vt,xt)=>Array.isArray(xt)?{name:xt[0],reference:xt[1]}:{name:vt,reference:xt},getDependencyTreeRoots:()=>[...e.dependencyTreeRoots],getAllLocators(){let vt=[];for(let[xt,Zr]of E)for(let qt of Zr.keys())xt!==null&&qt!==null&&vt.push({name:xt,reference:qt});return vt},getPackageInformation:vt=>{let xt=k(vt);if(xt===null)return null;let Zr=Rc.fromPortablePath(xt.packageLocation);return{...xt,packageLocation:Zr}},findPackageLocator:vt=>Me(Rc.toPortablePath(vt)),resolveToUnqualified:Q("resolveToUnqualified",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=St(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveUnqualified:Q("resolveUnqualified",(vt,xt)=>Rc.fromPortablePath(Yt(Rc.toPortablePath(vt),xt))),resolveRequest:Q("resolveRequest",(vt,xt,Zr)=>{let qt=xt!==null?Rc.toPortablePath(xt):null,Xt=Nr(Rc.toPortablePath(vt),qt,Zr);return Xt===null?null:Rc.fromPortablePath(Xt)}),resolveVirtual:Q("resolveVirtual",vt=>{let xt=er(Rc.toPortablePath(vt));return xt!==null?Rc.fromPortablePath(xt):null})}}async function K0l(e,{fakeFs:t,pnpapiResolution:r}){let n=await t.readFilePromise(e,"utf8");return zAs(n,{basePath:GAs.dirname(e),fakeFs:t,pnpapiResolution:r})}function zAs(e,{basePath:t,fakeFs:r,pnpapiResolution:n}){let a=JSON.parse(e),o=YAs(a,{basePath:t});return jAs(o,{compatibilityMode:!0,fakeFs:r,pnpapiResolution:n})}var j0l=(e,t,r)=>{let n=xJr(e),a=YAs(n,{basePath:t}),o=Rc.join(t,gGt.pnpCjs);return jAs(a,{fakeFs:r,pnpapiResolution:o})},EJr,z0l=()=>(typeof EJr>"u"&&(EJr=FAs.default.brotliDecompressSync(Buffer.from("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","base64")).toString()),EJr);z4.LinkType=ZAs;z4.generateInlinedScript=E0l;z4.generateLoader=GJr;z4.generatePrettyJson=HAs;z4.generateSplitScript=S0l;z4.getESMLoaderTemplate=z0l;z4.hydratePnpFile=K0l;z4.hydratePnpSource=zAs;z4.makeRuntimeApi=j0l});var LJr=H(IGe=>{"use strict";Object.defineProperty(IGe,"__esModule",{value:!0});IGe.checkManifestCompatibility=qAs;IGe.extractBuildRequest=$0l;IGe.getExtractHint=tyl;IGe.hasBindingGyp=ryl;var XV=Bn(),q0l=no();function qAs(e){return XV.structUtils.isPackageCompatible(e,XV.nodeUtils.getArchitectureSet())}function $0l(e,t,r,{configuration:n}){let a=[];for(let o of["preinstall","install","postinstall"])t.manifest.scripts.has(o)&&a.push({type:XV.BuildDirectiveType.SCRIPT,script:o});return!t.manifest.scripts.has("install")&&t.misc.hasBindingGyp&&a.push({type:XV.BuildDirectiveType.SHELLCODE,script:"node-gyp rebuild"}),a.length===0?null:e.linkType!==XV.LinkType.HARD?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.SOFT_LINK_BUILD,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:o=>o.reportInfoOnce(XV.MessageName.BUILD_DISABLED,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!n.get("enableScripts")&&!r.built?{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.DISABLED_BUILD_SCRIPTS,`${XV.structUtils.prettyLocator(n,e)} lists build scripts, but all build scripts have been disabled.`)}:qAs(e)?{skipped:!1,directives:a}:{skipped:!0,explain:o=>o.reportWarningOnce(XV.MessageName.INCOMPATIBLE_ARCHITECTURE,`${XV.structUtils.prettyLocator(n,e)} The ${XV.nodeUtils.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var eyl=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function tyl(e){return e.packageFs.getExtractHint({relevantExtensions:eyl})}function ryl(e){let t=q0l.ppath.join(e.prefixPath,"binding.gyp");return e.packageFs.existsSync(t)}});var CGt=H(VJr=>{"use strict";Object.defineProperty(VJr,"__esModule",{value:!0});VJr.getUnpluggedPath=syl;var nyl=Bn(),iyl=no();function syl(e,{configuration:t}){return iyl.ppath.resolve(t.get("pnpUnpluggedFolder"),nyl.structUtils.slugifyLocator(e))}});var MJr=H(hGe=>{"use strict";Object.defineProperty(hGe,"__esModule",{value:!0});hGe.PnpInstaller=hGe.PnpLinker=void 0;var eds=(Pa(),vi(Va)),cC=Bn(),Eue=Bn(),Pm=no(),PJr=ZJr(),$As=($c(),vi(rg)),_Gt=mGe(),yGt=eds.__importStar(LJr()),oyl=eds.__importStar(CGt()),ayl=new Set([cC.structUtils.makeIdent(null,"open").identHash,cC.structUtils.makeIdent(null,"opn").identHash]),OJr=class{constructor(){this.mode="strict",this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))throw new $As.UsageError(`The project in ${cC.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,cC.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})),o={name:cC.structUtils.stringifyIdent(t),reference:t.reference},l=a.getPackageInformation(o);if(!l)throw new $As.UsageError(`Couldn't find ${cC.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed PnP map - running an install might help`);return Pm.npath.toPortablePath(l.packageLocation)}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=(0,_Gt.getPnpPath)(r.project).cjs;if(!Pm.xfs.existsSync(n))return null;let o=cC.miscUtils.getFactoryWithDefault(this.pnpCache,n,()=>cC.miscUtils.dynamicRequire(n,{cachingStrategy:cC.miscUtils.CachingStrategy.FsTime})).findPackageLocator(Pm.npath.fromPortablePath(t));return o?cC.structUtils.makeLocator(cC.structUtils.parseIdent(o.name),o.reference):null}makeInstaller(t){return new bGt(t)}isEnabled(t){return!(t.project.configuration.get("nodeLinker")!=="pnp"||t.project.configuration.get("pnpMode")!==this.mode)}};hGe.PnpLinker=OJr;var bGt=class{constructor(t){this.opts=t,this.mode="strict",this.asyncActions=new cC.miscUtils.AsyncActions(10),this.packageRegistry=new Map,this.virtualTemplates=new Map,this.isESMLoaderRequired=!1,this.customData={store:new Map},this.unpluggedPaths=new Set,this.opts=t}attachCustomData(t){this.customData=t}async installPackage(t,r,n){let a=cC.structUtils.stringifyIdent(t),o=t.reference,l=!!this.opts.project.tryWorkspaceByLocator(t),A=cC.structUtils.isVirtualLocator(t),f=t.peerDependencies.size>0&&!A,I=!f&&!l,C=!f&&t.linkType!==Eue.LinkType.SOFT,b,E;if(I||C){let ne=A?cC.structUtils.devirtualizeLocator(t):t;b=this.customData.store.get(ne.locatorHash),typeof b>"u"&&(b=await cyl(r),t.linkType===Eue.LinkType.HARD&&this.customData.store.set(ne.locatorHash,b)),b.manifest.type==="module"&&(this.isESMLoaderRequired=!0),E=this.opts.project.getDependencyMeta(ne,t.version)}let N=I?yGt.extractBuildRequest(t,b,E,{configuration:this.opts.project.configuration}):null,B=C?await this.unplugPackageIfNeeded(t,b,r,E,n):r.packageFs;if(Pm.ppath.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let F=Pm.ppath.resolve(B.getRealPath(),r.prefixPath),Q=WJr(this.opts.project.cwd,F),X=new Map,ae=new Set;if(A){for(let ne of t.peerDependencies.values())X.set(cC.structUtils.stringifyIdent(ne),null),ae.add(cC.structUtils.stringifyIdent(ne));if(!l){let ne=cC.structUtils.devirtualizeLocator(t);this.virtualTemplates.set(ne.locatorHash,{location:WJr(this.opts.project.cwd,Pm.VirtualFS.resolveVirtual(F)),locator:ne})}}return cC.miscUtils.getMapWithDefault(this.packageRegistry,a).set(o,{packageLocation:Q,packageDependencies:X,packagePeers:ae,linkType:t.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:F,buildRequest:N}}async attachInternalDependencies(t,r){let n=this.getPackageInformation(t);for(let[a,o]of r){let l=cC.structUtils.areIdentsEqual(a,o)?o.reference:[cC.structUtils.stringifyIdent(o),o.reference];n.packageDependencies.set(cC.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){for(let n of r)this.getDiskInformation(n).packageDependencies.set(cC.structUtils.stringifyIdent(t),t.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let t=(0,_Gt.getPnpPath)(this.opts.project);if(this.isEsmEnabled()||await Pm.xfs.removePromise(t.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await Pm.xfs.removePromise(t.cjs),await Pm.xfs.removePromise(t.data),await Pm.xfs.removePromise(t.esmLoader),await Pm.xfs.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:b,location:E}of this.virtualTemplates.values())cC.miscUtils.getMapWithDefault(this.packageRegistry,cC.structUtils.stringifyIdent(b)).set(b.reference,{packageLocation:E,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1});let r=this.opts.project.configuration.get("pnpFallbackMode"),n=this.opts.project.workspaces.map(({anchoredLocator:b})=>({name:cC.structUtils.stringifyIdent(b),reference:b.reference})),a=r!=="none",o=[],l=new Map,A=cC.miscUtils.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),f=this.packageRegistry,I=this.opts.project.configuration.get("pnpShebang"),C=this.opts.project.configuration.get("pnpZipBackend");if(r==="dependencies-only")for(let b of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(b)&&o.push({name:cC.structUtils.stringifyIdent(b),reference:b.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:n,enableTopLevelFallback:a,fallbackExclusionList:o,fallbackPool:l,ignorePattern:A,pnpZipBackend:C,packageRegistry:f,shebang:I}),{customData:this.customData}}async transformPnpSettings(t){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let t of this.opts.project.workspaces)if(t.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(t){let r=(0,_Gt.getPnpPath)(this.opts.project),n=await this.locateNodeModules(t.ignorePattern);if(n.length>0){this.opts.report.reportWarning(Eue.MessageName.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await Pm.xfs.removePromise(o)}if(await this.transformPnpSettings(t),this.opts.project.configuration.get("pnpEnableInlining")){let o=(0,PJr.generateInlinedScript)(t);await Pm.xfs.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await Pm.xfs.removePromise(r.data)}else{let{dataFile:o,loaderFile:l}=(0,PJr.generateSplitScript)(t);await Pm.xfs.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await Pm.xfs.changeFilePromise(r.data,o,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(Eue.MessageName.EXPERIMENTAL,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await Pm.xfs.changeFilePromise(r.esmLoader,(0,PJr.getESMLoaderTemplate)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await Pm.xfs.removePromise(a);else for(let o of await Pm.xfs.readdirPromise(a)){let l=Pm.ppath.resolve(a,o);this.unpluggedPaths.has(l)||await Pm.xfs.removePromise(l)}}async locateNodeModules(t){let r=[],n=t?new RegExp(t):null;for(let a of this.opts.project.workspaces){let o=Pm.ppath.join(a.cwd,"node_modules");if(n&&n.test(Pm.ppath.relative(this.opts.project.cwd,a.cwd))||!Pm.xfs.existsSync(o))continue;let l=await Pm.xfs.readdirPromise(o,{withFileTypes:!0}),A=l.filter(f=>!f.isDirectory()||f.name===".bin"||!f.name.startsWith("."));if(A.length===l.length)r.push(o);else for(let f of A)r.push(Pm.ppath.join(o,f.name))}return r}async unplugPackageIfNeeded(t,r,n,a,o){return this.shouldBeUnplugged(t,r,a)?this.unplugPackage(t,n,o):n.packageFs}shouldBeUnplugged(t,r,n){return typeof n.unplugged<"u"?n.unplugged:ayl.has(t.identHash)||t.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(yGt.extractBuildRequest(t,r,n,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(t,r,n){let a=oyl.getUnpluggedPath(t,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(t.locatorHash)?new Pm.AliasFS(a,{baseFs:r.packageFs,pathUtils:Pm.ppath}):(this.unpluggedPaths.add(a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{let o=Pm.ppath.join(a,r.prefixPath,".ready");await Pm.xfs.existsPromise(o)||(this.opts.project.storedBuildState.delete(t.locatorHash),await Pm.xfs.mkdirPromise(a,{recursive:!0}),await Pm.xfs.copyPromise(a,Pm.PortablePath.dot,{baseFs:r.packageFs,overwrite:!1}),await Pm.xfs.writeFilePromise(o,""))})),new Pm.CwdFS(a))}getPackageInformation(t){let r=cC.structUtils.stringifyIdent(t),n=t.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${cC.structUtils.prettyIdent(this.opts.project.configuration,t)})`);let o=a.get(n);if(!o)throw new Error(`Assertion failed: The package information should have been available (for ${cC.structUtils.prettyLocator(this.opts.project.configuration,t)})`);return o}getDiskInformation(t){let r=cC.miscUtils.getMapWithDefault(this.packageRegistry,"@@disk"),n=WJr(this.opts.project.cwd,t);return cC.miscUtils.getFactoryWithDefault(r,n,()=>({packageLocation:n,packageDependencies:new Map,packagePeers:new Set,linkType:Eue.LinkType.SOFT,discardFromLookup:!1}))}};hGe.PnpInstaller=bGt;function WJr(e,t){let r=Pm.ppath.relative(e,t);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function cyl(e){let t=await Eue.Manifest.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Eue.Manifest,r=new Set(["preinstall","install","postinstall"]);for(let n of t.scripts.keys())r.has(n)||t.scripts.delete(n);return{manifest:{scripts:t.scripts,preferUnplugged:t.preferUnplugged,type:t.type},misc:{extractHint:yGt.getExtractHint(e),hasBindingGyp:yGt.hasBindingGyp(e)}}}});var nds=H(HJr=>{"use strict";Object.defineProperty(HJr,"__esModule",{value:!0});var rds=(Pa(),vi(Va)),tds=el(),kH=Bn(),xH=Bn(),Wte=($c(),vi(rg)),lyl=rds.__importDefault(Ek()),uyl=rds.__importStar(CGt()),o7e=class extends tds.BaseCommand{constructor(){super(...arguments),this.all=Wte.Option.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"}),this.recursive=Wte.Option.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"}),this.json=Wte.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.patterns=Wte.Option.Rest()}async execute(){let t=await kH.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await kH.Project.find(t,this.context.cwd),a=await kH.Cache.find(t);if(!n)throw new tds.WorkspaceRequiredError(r.cwd,this.context.cwd);if(t.get("nodeLinker")!=="pnp")throw new Wte.UsageError("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let o=new Set(this.patterns),l=this.patterns.map(E=>{let N=xH.structUtils.parseDescriptor(E),B=N.range!=="unknown"?N:xH.structUtils.makeDescriptor(N,"*");if(!xH.semverUtils.validRange(B.range))throw new Wte.UsageError(`The range of the descriptor patterns must be a valid semver range (${xH.structUtils.prettyDescriptor(t,B)})`);return F=>{let Q=xH.structUtils.stringifyIdent(F);return!lyl.default.isMatch(Q,xH.structUtils.stringifyIdent(B))||F.version&&!xH.semverUtils.satisfiesWithPrereleases(F.version,B.range)?!1:(o.delete(E),!0)}}),A=()=>{let E=[];for(let N of r.storedPackages.values())!r.tryWorkspaceByLocator(N)&&!xH.structUtils.isVirtualLocator(N)&&l.some(B=>B(N))&&E.push(N);return E},f=E=>{let N=new Set,B=[],F=(Q,X)=>{if(N.has(Q.locatorHash))return;let ae=!!r.tryWorkspaceByLocator(Q);if(!(X>0&&!this.recursive&&ae)&&(N.add(Q.locatorHash),!r.tryWorkspaceByLocator(Q)&&l.some(ne=>ne(Q))&&B.push(Q),!(X>0&&!this.recursive)))for(let ne of Q.dependencies.values()){let ce=r.storedResolutions.get(ne.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let fe=r.storedPackages.get(ce);if(!fe)throw new Error("Assertion failed: The package should have been registered");F(fe,X+1)}};for(let Q of E)F(Q.anchoredPackage,0);return B},I,C;if(this.all&&this.recursive?(I=A(),C="the project"):this.all?(I=f(r.workspaces),C="any workspace"):(I=f([n]),C="this workspace"),o.size>1)throw new Wte.UsageError(`Patterns ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} don't match any packages referenced by ${C}`);if(o.size>0)throw new Wte.UsageError(`Pattern ${kH.formatUtils.prettyList(t,o,kH.formatUtils.Type.CODE)} doesn't match any packages referenced by ${C}`);I=kH.miscUtils.sortMap(I,E=>xH.structUtils.stringifyLocator(E));let b=await kH.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async E=>{for(let N of I){let B=N.version??"unknown",F=r.topLevelWorkspace.manifest.ensureDependencyMeta(xH.structUtils.makeDescriptor(N,B));F.unplugged=!0,E.reportInfo(kH.MessageName.UNNAMED,`Will unpack ${xH.structUtils.prettyLocator(t,N)} to ${kH.formatUtils.pretty(t,uyl.getUnpluggedPath(N,{configuration:t}),kH.formatUtils.Type.PATH)}`),E.reportJson({locator:xH.structUtils.stringifyLocator(N),version:B})}await r.topLevelWorkspace.persistManifest(),this.json||E.reportSeparator()});return b.hasErrors()?b.exitCode():await r.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a})}};o7e.paths=[["unplug"]];o7e.usage=Wte.Command.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});HJr.default=o7e});var mGe=H(bT=>{"use strict";Object.defineProperty(bT,"__esModule",{value:!0});bT.PnpLinker=bT.PnpInstaller=bT.quotePathIfNeeded=bT.getPnpPath=bT.pnpUtils=bT.jsInstallUtils=bT.UnplugCommand=void 0;var YJr=(Pa(),vi(Va)),JV=Bn(),f6=no(),gyl=wt("url"),Ayl=MJr(),ids=YJr.__importDefault(nds());bT.UnplugCommand=ids.default;var dyl=YJr.__importStar(LJr());bT.jsInstallUtils=dyl;var pyl=YJr.__importStar(CGt());bT.pnpUtils=pyl;var fyl=e=>({cjs:f6.ppath.join(e.cwd,f6.Filename.pnpCjs),data:f6.ppath.join(e.cwd,f6.Filename.pnpData),esmLoader:f6.ppath.join(e.cwd,f6.Filename.pnpEsmLoader)});bT.getPnpPath=fyl;var Iyl=e=>/\s/.test(e)?JSON.stringify(e):e;bT.quotePathIfNeeded=Iyl;async function hyl(e,t,r){let n=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,o=(t.NODE_OPTIONS??"").replace(n," ").replace(a," ").trim();if(e.configuration.get("nodeLinker")!=="pnp"){t.NODE_OPTIONS=o||void 0;return}let l=(0,bT.getPnpPath)(e),A=`--require ${(0,bT.quotePathIfNeeded)(f6.npath.fromPortablePath(l.cjs))}`;f6.xfs.existsSync(l.esmLoader)&&(A=`${A} --experimental-loader ${(0,gyl.pathToFileURL)(f6.npath.fromPortablePath(l.esmLoader)).href}`),f6.xfs.existsSync(l.cjs)&&(t.NODE_OPTIONS=o?`${A} ${o}`:A)}async function myl(e,t){let r=(0,bT.getPnpPath)(e);t(r.cjs),t(r.data),t(r.esmLoader),t(e.configuration.get("pnpUnpluggedFolder"))}var Cyl={hooks:{populateYarnPaths:myl,setupScriptEnvironment:hyl},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:JV.SettingsType.STRING,default:"pnp"},minizip:{description:"Whether Yarn should use minizip to extract archives",type:JV.SettingsType.BOOLEAN,default:!1},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:JV.SettingsType.STRING,values:[JV.WindowsLinkType.JUNCTIONS,JV.WindowsLinkType.SYMLINKS],default:JV.WindowsLinkType.JUNCTIONS},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:JV.SettingsType.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:JV.SettingsType.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:JV.SettingsType.STRING,default:[],isArray:!0},pnpZipBackend:{description:"Whether to use the experimental js implementation for the ZipFS",type:JV.SettingsType.STRING,values:["libzip","js"],default:"libzip"},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:JV.SettingsType.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:JV.SettingsType.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:JV.SettingsType.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:JV.SettingsType.ABSOLUTE_PATH,default:"./.yarn/unplugged"}},linkers:[Ayl.PnpLinker],commands:[ids.default]},sds=MJr();Object.defineProperty(bT,"PnpInstaller",{enumerable:!0,get:function(){return sds.PnpInstaller}});Object.defineProperty(bT,"PnpLinker",{enumerable:!0,get:function(){return sds.PnpLinker}});bT.default=Cyl});var ods=H((QJr,XJr)=>{(function(e){QJr&&typeof QJr=="object"&&typeof XJr<"u"?XJr.exports=e():typeof define=="function"&&define.amd?define([],e):typeof window<"u"?window.isWindows=e():typeof global<"u"?global.isWindows=e():typeof self<"u"?self.isWindows=e():this.isWindows=e()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var lds=H((Srg,cds)=>{"use strict";var _yl=wt("path"),ads;process.env.PATHEXT&&(ads=process.env.PATHEXT.split(_yl.delimiter).find(e=>e.toUpperCase()===".CMD"));cds.exports=ads||".cmd"});var gds=H((vrg,uds)=>{var Sue=wt("constants"),yyl=process.cwd,EGt=null,byl=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return EGt||(EGt=yyl.call(process)),EGt};try{process.cwd()}catch{}typeof process.chdir=="function"&&(JJr=process.chdir,process.chdir=function(e){EGt=null,JJr.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,JJr));var JJr;uds.exports=Eyl;function Eyl(e){Sue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&t(e),e.lutimes||r(e),e.chown=o(e.chown),e.fchown=o(e.fchown),e.lchown=o(e.lchown),e.chmod=n(e.chmod),e.fchmod=n(e.fchmod),e.lchmod=n(e.lchmod),e.chownSync=l(e.chownSync),e.fchownSync=l(e.fchownSync),e.lchownSync=l(e.lchownSync),e.chmodSync=a(e.chmodSync),e.fchmodSync=a(e.fchmodSync),e.lchmodSync=a(e.lchmodSync),e.stat=A(e.stat),e.fstat=A(e.fstat),e.lstat=A(e.lstat),e.statSync=f(e.statSync),e.fstatSync=f(e.fstatSync),e.lstatSync=f(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(C,b,E){E&&process.nextTick(E)},e.lchmodSync=function(){}),e.chown&&!e.lchown&&(e.lchown=function(C,b,E,N){N&&process.nextTick(N)},e.lchownSync=function(){}),byl==="win32"&&(e.rename=typeof e.rename!="function"?e.rename:function(C){function b(E,N,B){var F=Date.now(),Q=0;C(E,N,function X(ae){if(ae&&(ae.code==="EACCES"||ae.code==="EPERM"||ae.code==="EBUSY")&&Date.now()-F<6e4){setTimeout(function(){e.stat(N,function(ne,ce){ne&&ne.code==="ENOENT"?C(E,N,X):B(ae)})},Q),Q<100&&(Q+=10);return}B&&B(ae)})}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.rename)),e.read=typeof e.read!="function"?e.read:function(C){function b(E,N,B,F,Q,X){var ae;if(X&&typeof X=="function"){var ne=0;ae=function(ce,fe,ue){if(ce&&ce.code==="EAGAIN"&&ne<10)return ne++,C.call(e,E,N,B,F,Q,ae);X.apply(this,arguments)}}return C.call(e,E,N,B,F,Q,ae)}return Object.setPrototypeOf&&Object.setPrototypeOf(b,C),b}(e.read),e.readSync=typeof e.readSync!="function"?e.readSync:function(C){return function(b,E,N,B,F){for(var Q=0;;)try{return C.call(e,b,E,N,B,F)}catch(X){if(X.code==="EAGAIN"&&Q<10){Q++;continue}throw X}}}(e.readSync);function t(C){C.lchmod=function(b,E,N){C.open(b,Sue.O_WRONLY|Sue.O_SYMLINK,E,function(B,F){if(B){N&&N(B);return}C.fchmod(F,E,function(Q){C.close(F,function(X){N&&N(Q||X)})})})},C.lchmodSync=function(b,E){var N=C.openSync(b,Sue.O_WRONLY|Sue.O_SYMLINK,E),B=!0,F;try{F=C.fchmodSync(N,E),B=!1}finally{if(B)try{C.closeSync(N)}catch{}else C.closeSync(N)}return F}}function r(C){Sue.hasOwnProperty("O_SYMLINK")&&C.futimes?(C.lutimes=function(b,E,N,B){C.open(b,Sue.O_SYMLINK,function(F,Q){if(F){B&&B(F);return}C.futimes(Q,E,N,function(X){C.close(Q,function(ae){B&&B(X||ae)})})})},C.lutimesSync=function(b,E,N){var B=C.openSync(b,Sue.O_SYMLINK),F,Q=!0;try{F=C.futimesSync(B,E,N),Q=!1}finally{if(Q)try{C.closeSync(B)}catch{}else C.closeSync(B)}return F}):C.futimes&&(C.lutimes=function(b,E,N,B){B&&process.nextTick(B)},C.lutimesSync=function(){})}function n(C){return C&&function(b,E,N){return C.call(e,b,E,function(B){I(B)&&(B=null),N&&N.apply(this,arguments)})}}function a(C){return C&&function(b,E){try{return C.call(e,b,E)}catch(N){if(!I(N))throw N}}}function o(C){return C&&function(b,E,N,B){return C.call(e,b,E,N,function(F){I(F)&&(F=null),B&&B.apply(this,arguments)})}}function l(C){return C&&function(b,E,N){try{return C.call(e,b,E,N)}catch(B){if(!I(B))throw B}}}function A(C){return C&&function(b,E,N){typeof E=="function"&&(N=E,E=null);function B(F,Q){Q&&(Q.uid<0&&(Q.uid+=4294967296),Q.gid<0&&(Q.gid+=4294967296)),N&&N.apply(this,arguments)}return E?C.call(e,b,E,B):C.call(e,b,B)}}function f(C){return C&&function(b,E){var N=E?C.call(e,b,E):C.call(e,b);return N&&(N.uid<0&&(N.uid+=4294967296),N.gid<0&&(N.gid+=4294967296)),N}}function I(C){if(!C||C.code==="ENOSYS")return!0;var b=!process.getuid||process.getuid()!==0;return!!(b&&(C.code==="EINVAL"||C.code==="EPERM"))}}});var pds=H((Brg,dds)=>{var Ads=wt("stream").Stream;dds.exports=Syl;function Syl(e){return{ReadStream:t,WriteStream:r};function t(n,a){if(!(this instanceof t))return new t(n,a);Ads.call(this);var o=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,a=a||{};for(var l=Object.keys(a),A=0,f=l.length;Athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}e.open(this.path,this.flags,this.mode,function(C,b){if(C){o.emit("error",C),o.readable=!1;return}o.fd=b,o.emit("open",b),o._read()})}function r(n,a){if(!(this instanceof r))return new r(n,a);Ads.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,a=a||{};for(var o=Object.keys(a),l=0,A=o.length;l= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var Ids=H((wrg,fds)=>{"use strict";fds.exports=Byl;var vyl=Object.getPrototypeOf||function(e){return e.__proto__};function Byl(e){if(e===null||typeof e!="object")return e;if(e instanceof Object)var t={__proto__:vyl(e)};else var t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}});var _ds=H((Trg,jJr)=>{var WS=wt("fs"),wyl=gds(),Tyl=pds(),Ryl=Ids(),SGt=wt("util"),dx,BGt;typeof Symbol=="function"&&typeof Symbol.for=="function"?(dx=Symbol.for("graceful-fs.queue"),BGt=Symbol.for("graceful-fs.previous")):(dx="___graceful-fs.queue",BGt="___graceful-fs.previous");function Nyl(){}function Cds(e,t){Object.defineProperty(e,dx,{get:function(){return t}})}var s0e=Nyl;SGt.debuglog?s0e=SGt.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(s0e=function(){var e=SGt.format.apply(SGt,arguments);e="GFS4: "+e.split(/\n/).join(` +GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=function(e){function t(r,n){return e.call(WS,r,function(a){a||mds(),typeof n=="function"&&n.apply(this,arguments)})}return Object.defineProperty(t,BGt,{value:e}),t}(WS.close),WS.closeSync=function(e){function t(r){e.apply(WS,arguments),mds()}return Object.defineProperty(t,BGt,{value:e}),t}(WS.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){s0e(WS[dx]),wt("assert").equal(WS[dx].length,0)}));var hds;global[dx]||Cds(global,WS[dx]);jJr.exports=UJr(Ryl(WS));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!WS.__patched&&(jJr.exports=UJr(WS),WS.__patched=!0);function UJr(e){wyl(e),e.gracefulify=UJr,e.createReadStream=fe,e.createWriteStream=ue;var t=e.readFile;e.readFile=r;function r(Se,De,k){return typeof De=="function"&&(k=De,De=null),et(Se,De,k);function et(ct,Me,je,St){return t(ct,Me,function(At){At&&(At.code==="EMFILE"||At.code==="ENFILE")?CGe([et,[ct,Me,je],At,St||Date.now(),Date.now()]):typeof je=="function"&&je.apply(this,arguments)})}}var n=e.writeFile;e.writeFile=a;function a(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return n(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var o=e.appendFile;o&&(e.appendFile=l);function l(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return o(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var A=e.copyFile;A&&(e.copyFile=f);function f(Se,De,k,et){return typeof k=="function"&&(et=k,k=0),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return A(Me,je,St,function(Tr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}var I=e.readdir;e.readdir=b;var C=/^v[0-5]\./;function b(Se,De,k){typeof De=="function"&&(k=De,De=null);var et=C.test(process.version)?function(je,St,At,Yt){return I(je,ct(je,St,At,Yt))}:function(je,St,At,Yt){return I(je,St,ct(je,St,At,Yt))};return et(Se,De,k);function ct(Me,je,St,At){return function(Yt,Tr){Yt&&(Yt.code==="EMFILE"||Yt.code==="ENFILE")?CGe([et,[Me,je,St],Yt,At||Date.now(),Date.now()]):(Tr&&Tr.sort&&Tr.sort(),typeof St=="function"&&St.call(this,Yt,Tr))}}}if(process.version.substr(0,4)==="v0.8"){var E=Tyl(e);X=E.ReadStream,ne=E.WriteStream}var N=e.ReadStream;N&&(X.prototype=Object.create(N.prototype),X.prototype.open=ae);var B=e.WriteStream;B&&(ne.prototype=Object.create(B.prototype),ne.prototype.open=ce),Object.defineProperty(e,"ReadStream",{get:function(){return X},set:function(Se){X=Se},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return ne},set:function(Se){ne=Se},enumerable:!0,configurable:!0});var F=X;Object.defineProperty(e,"FileReadStream",{get:function(){return F},set:function(Se){F=Se},enumerable:!0,configurable:!0});var Q=ne;Object.defineProperty(e,"FileWriteStream",{get:function(){return Q},set:function(Se){Q=Se},enumerable:!0,configurable:!0});function X(Se,De){return this instanceof X?(N.apply(this,arguments),this):X.apply(Object.create(X.prototype),arguments)}function ae(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.autoClose&&Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k),Se.read())})}function ne(Se,De){return this instanceof ne?(B.apply(this,arguments),this):ne.apply(Object.create(ne.prototype),arguments)}function ce(){var Se=this;be(Se.path,Se.flags,Se.mode,function(De,k){De?(Se.destroy(),Se.emit("error",De)):(Se.fd=k,Se.emit("open",k))})}function fe(Se,De){return new e.ReadStream(Se,De)}function ue(Se,De){return new e.WriteStream(Se,De)}var de=e.open;e.open=be;function be(Se,De,k,et){return typeof k=="function"&&(et=k,k=null),ct(Se,De,k,et);function ct(Me,je,St,At,Yt){return de(Me,je,St,function(Tr,Nr){Tr&&(Tr.code==="EMFILE"||Tr.code==="ENFILE")?CGe([ct,[Me,je,St,At],Tr,Yt||Date.now(),Date.now()]):typeof At=="function"&&At.apply(this,arguments)})}}return e}function CGe(e){s0e("ENQUEUE",e[0].name,e[1]),WS[dx].push(e),KJr()}var vGt;function mds(){for(var e=Date.now(),t=0;t2&&(WS[dx][t][3]=e,WS[dx][t][4]=e);KJr()}function KJr(){if(clearTimeout(vGt),vGt=void 0,WS[dx].length!==0){var e=WS[dx].shift(),t=e[0],r=e[1],n=e[2],a=e[3],o=e[4];if(a===void 0)s0e("RETRY",t.name,r),t.apply(null,r);else if(Date.now()-a>=6e4){s0e("TIMEOUT",t.name,r);var l=r.pop();typeof l=="function"&&l.call(null,n)}else{var A=Date.now()-o,f=Math.max(o-a,1),I=Math.min(f*1.2,100);A>=I?(s0e("RETRY",t.name,r),t.apply(null,r.concat([a]))):WS[dx].push(e)}vGt===void 0&&(vGt=setTimeout(KJr,0))}}});var Eds=H((Rrg,bds)=>{"use strict";qJr.ifExists=Fyl;var _Ge=wt("util"),WO=wt("path"),zJr=ods(),Dyl=lds(),kyl=/^#!\s*(?:\/usr\/bin\/env(?:\s+-S\s*)?)?\s*([^ \t]+)(.*)$/,xyl={createPwshFile:!0,createCmdFile:zJr(),fs:_ds()},Gyl=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function yds(e){let t={...xyl,...e},r=t.fs;return t.fs_={chmod:r.chmod?(0,_Ge.promisify)(r.chmod):async()=>{},mkdir:(0,_Ge.promisify)(r.mkdir),readFile:(0,_Ge.promisify)(r.readFile),stat:(0,_Ge.promisify)(r.stat),unlink:(0,_Ge.promisify)(r.unlink),writeFile:(0,_Ge.promisify)(r.writeFile)},t}async function qJr(e,t,r){let n=yds(r);await Lyl(e,t,n)}function Fyl(e,t,r){return qJr(e,t,r).catch(()=>{})}function Zyl(e,t){return t.fs_.unlink(e).catch(()=>{})}async function Lyl(e,t,r){let n=await Myl(e,r);return await Vyl(t,r),Pyl(e,t,n,r)}function Vyl(e,t){return t.fs_.mkdir(WO.dirname(e),{recursive:!0})}function Pyl(e,t,r,n){let a=yds(n),o=[{generator:Xyl,extension:""}];return a.createCmdFile&&o.push({generator:Qyl,extension:Dyl}),a.createPwshFile&&o.push({generator:Jyl,extension:".ps1"}),Promise.all(o.map(l=>Yyl(e,t+l.extension,r,l.generator,a)))}function Wyl(e,t){return Zyl(e,t)}function Oyl(e,t){return Uyl(e,t)}async function Myl(e,t){try{let a=(await t.fs_.readFile(e,"utf8")).trim().split(/\r*\n/)[0].match(kyl);if(!a){let o=WO.extname(e).toLowerCase();return{program:Gyl.get(o)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}catch(r){if(!zJr()||r.code!=="ENOENT")throw r;if(await t.fs_.stat(`${e}${Hyl()}`))return{program:null,additionalArgs:""};throw r}}function Hyl(){let e;return process.env.PATHEXT&&(e=process.env.PATHEXT.split(WO.delimiter).find(t=>t.toLowerCase()===".exe")),e||".exe"}async function Yyl(e,t,r,n,a){let o=a.preserveSymlinks?"--preserve-symlinks":"",l=[r.additionalArgs,o].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:l}),await Wyl(t,a),await a.fs_.writeFile(t,n(e,t,a),"utf8"),Oyl(t,a)}function Qyl(e,t,r){let a=WO.relative(WO.dirname(t),e).split("/").join("\\"),o=WO.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,l,A=r.prog,f=r.args||"",I=a7e(r.nodePath).win32,C=a7e(r.prependToPath).win32;A?A==="node"&&r.nodeExecPath?(A=`"${r.nodeExecPath}"`,a=o):(l=`"%~dp0\\${A}.exe"`,a=o):(A=o,f="",a="");let b=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`@SETLOCAL\r `;return C&&(E+=`@SET "PATH=${C}:%PATH%"\r `),I&&(E+=`@IF NOT DEFINED NODE_PATH (\r @SET "NODE_PATH=${I}"\r @@ -1619,7 +1619,7 @@ GFS4: `),console.error(e)});WS[dx]||(hds=global[dx]||[],Cds(WS,hds),WS.close=fun ${A} ${f} ${a} ${b}%*\r )\r `:E+=`@${A} ${f} ${a} ${b}%*\r -`,E}function Qyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o;n=n.split("\\").join("/");let l=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,A=r.args||"",f=a7e(r.nodePath).posix;a?r.prog==="node"&&r.nodeExecPath?(a=`"${r.nodeExecPath}"`,n=l):(o=`"$basedir/${r.prog}"`,n=l):(a=l,A="",n="");let I=r.progArgs?`${r.progArgs.join(" ")} `:"",C=`#!/bin/sh +`,E}function Xyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o;n=n.split("\\").join("/");let l=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,A=r.args||"",f=a7e(r.nodePath).posix;a?r.prog==="node"&&r.nodeExecPath?(a=`"${r.nodeExecPath}"`,n=l):(o=`"$basedir/${r.prog}"`,n=l):(a=l,A="",n="");let I=r.progArgs?`${r.progArgs.join(" ")} `:"",C=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in @@ -1639,7 +1639,7 @@ else fi `:C+=`${a} ${A} ${n} ${I}"$@" exit $? -`,C}function Xyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o=a&&`"${a}$exe"`,l;n=n.split("\\").join("/");let A=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,f=r.args||"",I=a7e(r.nodePath),C=I.win32,b=I.posix,E=a7e(r.prependToPath),N=E.win32,B=E.posix;o?r.prog==="node"&&r.nodeExecPath?(o=`"${r.nodeExecPath}"`,n=A):(l=`"$basedir/${r.prog}$exe"`,n=A):(o=A,f="",n="");let F=r.progArgs?`${r.progArgs.join(" ")} `:"",Q=`#!/usr/bin/env pwsh +`,C}function Jyl(e,t,r){let n=WO.relative(WO.dirname(t),e),a=r.prog&&r.prog.split("\\").join("/"),o=a&&`"${a}$exe"`,l;n=n.split("\\").join("/");let A=WO.isAbsolute(n)?`"${n}"`:`"$basedir/${n}"`,f=r.args||"",I=a7e(r.nodePath),C=I.win32,b=I.posix,E=a7e(r.prependToPath),N=E.win32,B=E.posix;o?r.prog==="node"&&r.nodeExecPath?(o=`"${r.nodeExecPath}"`,n=A):(l=`"$basedir/${r.prog}$exe"`,n=A):(o=A,f="",n="");let F=r.progArgs?`${r.progArgs.join(" ")} `:"",Q=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" @@ -1696,7 +1696,7 @@ if ($MyInvocation.ExpectingInput) { ${C?`$env:NODE_PATH=$env_node_path `:""}${N?`$env:PATH=$env_path `:""}exit $LASTEXITCODE -`,Q}function Jyl(e,t){return t.fs_.chmod(e,493)}function a7e(e){if(!e||!e.length)return{win32:"",posix:""};let t=typeof e=="string"?e.split(WO.delimiter):Array.from(e),r={};for(let n=0;n`/mnt/${A.toLowerCase()}`):t[n];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${o}`:o,r[n]={win32:a,posix:o}}return r}bds.exports=qJr});var oUr=H(o0e=>{"use strict";Object.defineProperty(o0e,"__esModule",{value:!0});o0e.NodeModulesLinker=o0e.NodeModulesMode=void 0;o0e.getGlobalHardlinksStore=Fds;var iUr=(Pa(),vi(Va)),rp=Bn(),wds=Bn(),q4=Bn(),eUr=Bn(),Fu=no(),Op=no(),Uyl=zK(),Kyl=t7e(),$Jr=t7e(),jyl=TW(),Tds=mGe(),zyl=iUr.__importDefault(Eds()),Sds=($c(),vi(rg)),Rds=iUr.__importDefault(wt("crypto")),qyl=iUr.__importDefault(wt("fs")),Nds=1,V2="node_modules",wGt=".bin",Dds=".yarn-state.yml",$yl=1e3,OO;(function(e){e.CLASSIC="classic",e.HARDLINKS_LOCAL="hardlinks-local",e.HARDLINKS_GLOBAL="hardlinks-global"})(OO||(o0e.NodeModulesMode=OO={}));var tUr=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let n=r.project.tryWorkspaceByLocator(t);if(n)return n.cwd;let a=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(a===null)throw new Sds.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let o=a.locatorMap.get(rp.structUtils.stringifyLocator(t));if(!o){let f=new Sds.UsageError(`Couldn't find ${rp.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed node_modules map - running an install might help`);throw f.code="LOCATOR_NOT_INSTALLED",f}let l=o.locations.sort((f,I)=>f.split(Fu.ppath.sep).length-I.split(Fu.ppath.sep).length),A=Fu.ppath.join(r.project.configuration.startingCwd,V2);return l.find(f=>Fu.ppath.contains(A,f))||o.locations[0]}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(n===null)return null;let{locationRoot:a,segments:o}=TGt(Fu.ppath.resolve(t),{skipPrefix:r.project.cwd}),l=n.locationTree.get(a);if(!l)return null;let A=l.locator;for(let f of o){if(l=l.children.get(f),!l)break;A=l.locator||A}return rp.structUtils.parseLocator(A)}makeInstaller(t){return new rUr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="node-modules"}};o0e.NodeModulesLinker=tUr;var rUr=class{constructor(t){this.opts=t,this.localStore=new Map,this.realLocatorChecksums=new Map,this.customData={store:new Map}}attachCustomData(t){this.customData=t}async installPackage(t,r){let n=Fu.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(t.locatorHash);if(typeof a>"u"&&(a=await ebl(t,r),t.linkType===q4.LinkType.HARD&&this.customData.store.set(t.locatorHash,a)),!rp.structUtils.isPackageCompatible(t,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let o=new Map,l=new Set;o.has(rp.structUtils.stringifyIdent(t))||o.set(rp.structUtils.stringifyIdent(t),t.reference);let A=t;if(rp.structUtils.isVirtualLocator(t)){A=rp.structUtils.devirtualizeLocator(t);for(let C of t.peerDependencies.values())o.set(rp.structUtils.stringifyIdent(C),null),l.add(rp.structUtils.stringifyIdent(C))}let f={packageLocation:`${Fu.npath.fromPortablePath(n)}/`,packageDependencies:o,packagePeers:l,linkType:t.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(t.locatorHash,{pkg:t,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(t,t.version),pnpNode:f});let I=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,I),{packageLocation:n,buildRequest:null}}async attachInternalDependencies(t,r){let n=this.localStore.get(t.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,o]of r){let l=rp.structUtils.areIdentsEqual(a,o)?o.reference:[rp.structUtils.stringifyIdent(o),o.reference];n.pnpNode.packageDependencies.set(rp.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let t=new Op.VirtualFS({baseFs:new Uyl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),r=await nUr(this.opts.project),n=this.opts.project.configuration.get("nmMode");(r===null||n!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:n,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmHoistingLimits");try{N=rp.miscUtils.validateEnum($Jr.NodeModulesHoistingLimits,E.manifest.installConfig?.hoistingLimits??N)}catch{let B=rp.structUtils.prettyWorkspace(this.opts.project.configuration,E);this.opts.report.reportWarning(eUr.MessageName.INVALID_MANIFEST,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values($Jr.NodeModulesHoistingLimits).join(", ")}, using default: "${N}"`)}return[E.relativeCwd,N]})),o=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmSelfReferences");return N=E.manifest.installConfig?.selfReferences??N,[E.relativeCwd,N]})),l={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(E,N)=>Array.isArray(N)?{name:N[0],reference:N[1]}:{name:E,reference:N},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(E=>{let N=E.anchoredLocator;return{name:rp.structUtils.stringifyIdent(N),reference:N.reference}}),getPackageInformation:E=>{let N=E.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:rp.structUtils.makeLocator(rp.structUtils.parseIdent(E.name),E.reference),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return B.pnpNode},findPackageLocator:E=>{let N=this.opts.project.tryWorkspaceByCwd(Fu.npath.toPortablePath(E));if(N!==null){let B=N.anchoredLocator;return{name:rp.structUtils.stringifyIdent(B),reference:B.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:E=>Fu.npath.fromPortablePath(Op.VirtualFS.resolveVirtual(Fu.npath.toPortablePath(E)))},{tree:A,errors:f,preserveSymlinksRequired:I}=(0,Kyl.buildNodeModulesTree)(l,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:o});if(!A){for(let{messageName:E,text:N}of f)this.opts.report.reportError(E,N);return}let C=(0,$Jr.buildLocatorMap)(A);await abl(r,C,{baseFs:t,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async E=>{let N=rp.structUtils.parseLocator(E),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the slot to exist");return B.customPackageData.manifest}});let b=[];for(let[E,N]of C.entries()){if(Gds(E))continue;let B=rp.structUtils.parseLocator(E),F=this.localStore.get(B.locatorHash);if(typeof F>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(F.pkg))continue;let Q=Tds.jsInstallUtils.extractBuildRequest(F.pkg,F.customPackageData,F.dependencyMeta,{configuration:this.opts.project.configuration});Q&&b.push({buildLocations:N.locations,locator:B,buildRequest:Q})}return I&&this.opts.report.reportWarning(eUr.MessageName.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${rp.formatUtils.pretty(this.opts.project.configuration,"--preserve-symlinks",rp.formatUtils.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:b}}};async function ebl(e,t){let r=await rp.Manifest.tryFind(t.prefixPath,{baseFs:t.packageFs})??new rp.Manifest,n=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())n.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:Tds.jsInstallUtils.hasBindingGyp(t)}}}async function tbl(e,t,r,n,{installChangedByUser:a}){let o="";o+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,Q}function Uyl(e,t){return t.fs_.chmod(e,493)}function a7e(e){if(!e||!e.length)return{win32:"",posix:""};let t=typeof e=="string"?e.split(WO.delimiter):Array.from(e),r={};for(let n=0;n`/mnt/${A.toLowerCase()}`):t[n];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${o}`:o,r[n]={win32:a,posix:o}}return r}bds.exports=qJr});var oUr=H(o0e=>{"use strict";Object.defineProperty(o0e,"__esModule",{value:!0});o0e.NodeModulesLinker=o0e.NodeModulesMode=void 0;o0e.getGlobalHardlinksStore=Fds;var iUr=(Pa(),vi(Va)),rp=Bn(),wds=Bn(),q4=Bn(),eUr=Bn(),Fu=no(),Op=no(),Kyl=zK(),jyl=t7e(),$Jr=t7e(),zyl=TW(),Tds=mGe(),qyl=iUr.__importDefault(Eds()),Sds=($c(),vi(rg)),Rds=iUr.__importDefault(wt("crypto")),$yl=iUr.__importDefault(wt("fs")),Nds=1,V2="node_modules",wGt=".bin",Dds=".yarn-state.yml",ebl=1e3,OO;(function(e){e.CLASSIC="classic",e.HARDLINKS_LOCAL="hardlinks-local",e.HARDLINKS_GLOBAL="hardlinks-global"})(OO||(o0e.NodeModulesMode=OO={}));var tUr=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let n=r.project.tryWorkspaceByLocator(t);if(n)return n.cwd;let a=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(a===null)throw new Sds.UsageError("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let o=a.locatorMap.get(rp.structUtils.stringifyLocator(t));if(!o){let f=new Sds.UsageError(`Couldn't find ${rp.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed node_modules map - running an install might help`);throw f.code="LOCATOR_NOT_INSTALLED",f}let l=o.locations.sort((f,I)=>f.split(Fu.ppath.sep).length-I.split(Fu.ppath.sep).length),A=Fu.ppath.join(r.project.configuration.startingCwd,V2);return l.find(f=>Fu.ppath.contains(A,f))||o.locations[0]}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=await rp.miscUtils.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await nUr(r.project,{unrollAliases:!0}));if(n===null)return null;let{locationRoot:a,segments:o}=TGt(Fu.ppath.resolve(t),{skipPrefix:r.project.cwd}),l=n.locationTree.get(a);if(!l)return null;let A=l.locator;for(let f of o){if(l=l.children.get(f),!l)break;A=l.locator||A}return rp.structUtils.parseLocator(A)}makeInstaller(t){return new rUr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="node-modules"}};o0e.NodeModulesLinker=tUr;var rUr=class{constructor(t){this.opts=t,this.localStore=new Map,this.realLocatorChecksums=new Map,this.customData={store:new Map}}attachCustomData(t){this.customData=t}async installPackage(t,r){let n=Fu.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(t.locatorHash);if(typeof a>"u"&&(a=await tbl(t,r),t.linkType===q4.LinkType.HARD&&this.customData.store.set(t.locatorHash,a)),!rp.structUtils.isPackageCompatible(t,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let o=new Map,l=new Set;o.has(rp.structUtils.stringifyIdent(t))||o.set(rp.structUtils.stringifyIdent(t),t.reference);let A=t;if(rp.structUtils.isVirtualLocator(t)){A=rp.structUtils.devirtualizeLocator(t);for(let C of t.peerDependencies.values())o.set(rp.structUtils.stringifyIdent(C),null),l.add(rp.structUtils.stringifyIdent(C))}let f={packageLocation:`${Fu.npath.fromPortablePath(n)}/`,packageDependencies:o,packagePeers:l,linkType:t.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(t.locatorHash,{pkg:t,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(t,t.version),pnpNode:f});let I=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,I),{packageLocation:n,buildRequest:null}}async attachInternalDependencies(t,r){let n=this.localStore.get(t.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,o]of r){let l=rp.structUtils.areIdentsEqual(a,o)?o.reference:[rp.structUtils.stringifyIdent(o),o.reference];n.pnpNode.packageDependencies.set(rp.structUtils.stringifyIdent(a),l)}}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let t=new Op.VirtualFS({baseFs:new Kyl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),r=await nUr(this.opts.project),n=this.opts.project.configuration.get("nmMode");(r===null||n!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:n,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmHoistingLimits");try{N=rp.miscUtils.validateEnum($Jr.NodeModulesHoistingLimits,E.manifest.installConfig?.hoistingLimits??N)}catch{let B=rp.structUtils.prettyWorkspace(this.opts.project.configuration,E);this.opts.report.reportWarning(eUr.MessageName.INVALID_MANIFEST,`${B}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values($Jr.NodeModulesHoistingLimits).join(", ")}, using default: "${N}"`)}return[E.relativeCwd,N]})),o=new Map(this.opts.project.workspaces.map(E=>{let N=this.opts.project.configuration.get("nmSelfReferences");return N=E.manifest.installConfig?.selfReferences??N,[E.relativeCwd,N]})),l={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(E,N)=>Array.isArray(N)?{name:N[0],reference:N[1]}:{name:E,reference:N},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(E=>{let N=E.anchoredLocator;return{name:rp.structUtils.stringifyIdent(N),reference:N.reference}}),getPackageInformation:E=>{let N=E.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:rp.structUtils.makeLocator(rp.structUtils.parseIdent(E.name),E.reference),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return B.pnpNode},findPackageLocator:E=>{let N=this.opts.project.tryWorkspaceByCwd(Fu.npath.toPortablePath(E));if(N!==null){let B=N.anchoredLocator;return{name:rp.structUtils.stringifyIdent(B),reference:B.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:E=>Fu.npath.fromPortablePath(Op.VirtualFS.resolveVirtual(Fu.npath.toPortablePath(E)))},{tree:A,errors:f,preserveSymlinksRequired:I}=(0,jyl.buildNodeModulesTree)(l,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:o});if(!A){for(let{messageName:E,text:N}of f)this.opts.report.reportError(E,N);return}let C=(0,$Jr.buildLocatorMap)(A);await cbl(r,C,{baseFs:t,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async E=>{let N=rp.structUtils.parseLocator(E),B=this.localStore.get(N.locatorHash);if(typeof B>"u")throw new Error("Assertion failed: Expected the slot to exist");return B.customPackageData.manifest}});let b=[];for(let[E,N]of C.entries()){if(Gds(E))continue;let B=rp.structUtils.parseLocator(E),F=this.localStore.get(B.locatorHash);if(typeof F>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(F.pkg))continue;let Q=Tds.jsInstallUtils.extractBuildRequest(F.pkg,F.customPackageData,F.dependencyMeta,{configuration:this.opts.project.configuration});Q&&b.push({buildLocations:N.locations,locator:B,buildRequest:Q})}return I&&this.opts.report.reportWarning(eUr.MessageName.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${rp.formatUtils.pretty(this.opts.project.configuration,"--preserve-symlinks",rp.formatUtils.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:b}}};async function tbl(e,t){let r=await rp.Manifest.tryFind(t.prefixPath,{baseFs:t.packageFs})??new rp.Manifest,n=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())n.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:Tds.jsInstallUtils.hasBindingGyp(t)}}}async function rbl(e,t,r,n,{installChangedByUser:a}){let o="";o+=`# Warning: This file is automatically generated. Removing it is fine, but will `,o+=`# cause your node_modules installation to become invalidated. `,o+=` `,o+=`__metadata: @@ -1711,47 +1711,47 @@ ${C?`$env:NODE_PATH=$env_node_path `}if(C===A&&r.size>0){o+=` bin: `;for(let[E,N]of r){let B=Fu.ppath.contains(e.cwd,E);if(B===null)throw new Error(`Assertion failed: Expected the path to be within the project (${E})`);o+=` ${JSON.stringify(B)}: `;for(let[F,Q]of N){let X=Fu.ppath.relative(Fu.ppath.join(E,V2),Q);o+=` ${JSON.stringify(F)}: ${JSON.stringify(X)} -`}}}}let f=e.cwd,I=Fu.ppath.join(f,V2,Dds);a&&await Op.xfs.removePromise(I),await Op.xfs.changeFilePromise(I,o,{automaticNewlines:!0})}async function nUr(e,{unrollAliases:t=!1}={}){let r=e.cwd,n=Fu.ppath.join(r,V2,Dds),a;try{a=await Op.xfs.statPromise(n)}catch{}if(!a)return null;let o=(0,jyl.parseSyml)(await Op.xfs.readFilePromise(n,"utf8"));if(o.__metadata.version>Nds)return null;let l=o.__metadata.nmMode||OO.CLASSIC,A=new Map,f=new Map;delete o.__metadata;for(let[I,C]of Object.entries(o)){let b=C.locations.map(N=>Fu.ppath.join(r,N)),E=C.bin;if(E)for(let[N,B]of Object.entries(E)){let F=Fu.ppath.join(r,Fu.npath.toPortablePath(N)),Q=rp.miscUtils.getMapWithDefault(f,F);for(let[X,ae]of Object.entries(B))Q.set(X,Fu.npath.toPortablePath([F,V2,ae].join(Fu.ppath.sep)))}if(A.set(I,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:C.aliases||[]}),t&&C.aliases)for(let N of C.aliases){let{scope:B,name:F}=rp.structUtils.parseLocator(I),Q=rp.structUtils.makeLocator(rp.structUtils.makeIdent(B,F),N),X=rp.structUtils.stringifyLocator(Q);A.set(X,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:[]})}}return{locatorMap:A,binSymlinks:f,locationTree:kds(A,{skipPrefix:e.cwd}),nmMode:l,mtimeMs:a.mtimeMs}}var yGe=async(e,t)=>{if(e.split(Fu.ppath.sep).indexOf(V2)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${e}`);try{let r;if(!t.innerLoop&&(r=await Op.xfs.lstatPromise(e),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!t.isWorkspaceDir)){await Op.xfs.unlinkPromise(e);return}let n=await Op.xfs.readdirPromise(e,{withFileTypes:!0});for(let o of n){let l=Fu.ppath.join(e,o.name);o.isDirectory()?(o.name!==V2||t&&t.innerLoop)&&await yGe(l,{innerLoop:!0,contentsOnly:!1}):await Op.xfs.unlinkPromise(l)}let a=!t.innerLoop&&t.isWorkspaceDir&&r?.isSymbolicLink();!t.contentsOnly&&!a&&await Op.xfs.rmdirPromise(e)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},vds=4,TGt=(e,{skipPrefix:t})=>{let r=Fu.ppath.contains(t,e);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${e} which is outside project root: ${t}`);let n=r.split(Fu.ppath.sep).filter(f=>f!==""),a=n.indexOf(V2),o=n.slice(0,a).join(Fu.ppath.sep),l=Fu.ppath.join(t,o),A=n.slice(a);return{locationRoot:l,segments:A}},kds=(e,{skipPrefix:t})=>{let r=new Map;if(e===null)return r;let n=()=>({children:new Map,linkType:q4.LinkType.HARD});for(let[a,o]of e.entries()){if(o.linkType===q4.LinkType.SOFT&&Fu.ppath.contains(t,o.target)!==null){let A=rp.miscUtils.getFactoryWithDefault(r,o.target,n);A.locator=a,A.linkType=o.linkType}for(let l of o.locations){let{locationRoot:A,segments:f}=TGt(l,{skipPrefix:t}),I=rp.miscUtils.getFactoryWithDefault(r,A,n);for(let C=0;C{if(process.platform==="win32"&&r===q4.WindowsLinkType.JUNCTIONS){let n;try{n=await Op.xfs.lstatPromise(e)}catch{}if(!n||n.isDirectory()){await Op.xfs.symlinkPromise(e,t,"junction");return}}await Op.xfs.symlinkPromise(Fu.ppath.relative(Fu.ppath.dirname(t),e),t)};async function xds(e,t,r){let n=Fu.ppath.join(e,`${Rds.default.randomBytes(16).toString("hex")}.tmp`);try{await Op.xfs.writeFilePromise(n,r);try{await Op.xfs.linkPromise(n,t)}catch{}}finally{await Op.xfs.unlinkPromise(n)}}async function rbl({srcPath:e,dstPath:t,entry:r,globalHardlinksStore:n,baseFs:a,nmMode:o}){if(r.kind===Ote.FILE){if(o.value===OO.HARDLINKS_GLOBAL&&n&&r.digest){let A=Fu.ppath.join(n,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),f;try{let I=await Op.xfs.statPromise(A);if(I&&(!r.mtimeMs||I.mtimeMs>r.mtimeMs||I.mtimeMs{await Op.xfs.mkdirPromise(e,{recursive:!0});let A=async(C=Fu.PortablePath.dot)=>{let b=Fu.ppath.join(t,C),E=await r.readdirPromise(b,{withFileTypes:!0}),N=new Map;for(let B of E){let F=Fu.ppath.join(C,B.name),Q,X=Fu.ppath.join(b,B.name);if(B.isFile()){if(Q={kind:Ote.FILE,mode:(await r.lstatPromise(X)).mode},a.value===OO.HARDLINKS_GLOBAL){let ae=await wds.hashUtils.checksumFile(X,{baseFs:r,algorithm:"sha1"});Q.digest=ae}}else if(B.isDirectory())Q={kind:Ote.DIRECTORY};else if(B.isSymbolicLink())Q={kind:Ote.SYMLINK,symlinkTo:await r.readlinkPromise(X)};else throw new Error(`Unsupported file type (file: ${X}, mode: 0o${await r.statSync(X).mode.toString(8).padStart(6,"0")})`);if(N.set(F,Q),B.isDirectory()&&F!==V2){let ae=await A(F);for(let[ne,ce]of ae)N.set(ne,ce)}}return N},f;if(a.value===OO.HARDLINKS_GLOBAL&&n&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);try{f=new Map(Object.entries(JSON.parse(await Op.xfs.readFilePromise(C,"utf8"))))}catch{f=await A()}}else f=await A();let I=!1;for(let[C,b]of f){let E=Fu.ppath.join(t,C),N=Fu.ppath.join(e,C);if(b.kind===Ote.DIRECTORY)await Op.xfs.mkdirPromise(N,{recursive:!0});else if(b.kind===Ote.FILE){let B=b.mtimeMs;await rbl({srcPath:E,dstPath:N,entry:b,nmMode:a,baseFs:r,globalHardlinksStore:n}),b.mtimeMs!==B&&(I=!0)}else b.kind===Ote.SYMLINK&&await sUr(Fu.ppath.resolve(Fu.ppath.dirname(N),b.symlinkTo),N,o)}if(a.value===OO.HARDLINKS_GLOBAL&&n&&I&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);await Op.xfs.removePromise(C),await xds(n,C,Buffer.from(JSON.stringify(Object.fromEntries(f))))}};function ibl(e,t,r,n){let a=new Map,o=new Map,l=new Map,A=!1,f=(I,C,b,E,N)=>{let B=!0,F=Fu.ppath.join(I,C),Q=new Set;if(C===V2||C.startsWith("@")){let ae;try{ae=Op.xfs.statSync(F)}catch{}B=!!ae,ae?ae.mtimeMs>r?(A=!0,Q=new Set(Op.xfs.readdirSync(F))):Q=new Set(b.children.get(C).children.keys()):A=!0;let ne=t.get(I);if(ne){let ce=Fu.ppath.join(I,V2,wGt),fe;try{fe=Op.xfs.statSync(ce)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ue=new Set(Op.xfs.readdirSync(ce)),de=new Map;o.set(I,de);for(let[be,Se]of ne)ue.has(be)&&de.set(be,Se)}else o.set(I,ne)}}else B=N.has(C);let X=b.children.get(C);if(B){let{linkType:ae,locator:ne}=X,ce={children:new Map,linkType:ae,locator:ne};if(E.children.set(C,ce),ne){let fe=rp.miscUtils.getSetWithDefault(l,ne);fe.add(F),l.set(ne,fe)}for(let fe of X.children.keys())f(F,fe,X,ce,Q)}else X.locator&&n.storedBuildState.delete(rp.structUtils.parseLocator(X.locator).locatorHash)};for(let[I,C]of e){let{linkType:b,locator:E}=C,N={children:new Map,linkType:b,locator:E};if(a.set(I,N),E){let B=rp.miscUtils.getSetWithDefault(l,C.locator);B.add(I),l.set(C.locator,B)}C.children.has(V2)&&f(I,V2,C,N,new Set)}return{locationTree:a,binSymlinks:o,locatorLocations:l,installChangedByUser:A}}function Gds(e){let t=rp.structUtils.parseDescriptor(e);return rp.structUtils.isVirtualDescriptor(t)&&(t=rp.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}async function sbl(e,t,r,{loadManifest:n}){let a=new Map;for(let[A,{locations:f}]of e){let I=Gds(A)?null:await n(A,f[0]),C=new Map;if(I)for(let[b,E]of I.bin){let N=Fu.ppath.join(f[0],E);E!==""&&Op.xfs.existsSync(N)&&C.set(b,E)}a.set(A,C)}let o=new Map,l=(A,f,I)=>{let C=new Map,b=Fu.ppath.contains(r,A);if(I.locator&&b!==null){let E=a.get(I.locator);for(let[N,B]of E){let F=Fu.ppath.join(A,Fu.npath.toPortablePath(B));C.set(N,F)}for(let[N,B]of I.children){let F=Fu.ppath.join(A,N),Q=l(F,F,B);Q.size>0&&o.set(A,new Map([...o.get(A)||new Map,...Q]))}}else for(let[E,N]of I.children){let B=l(Fu.ppath.join(A,E),f,N);for(let[F,Q]of B)C.set(F,Q)}return C};for(let[A,f]of t){let I=l(A,A,f);I.size>0&&o.set(A,new Map([...o.get(A)||new Map,...I]))}return o}var Bds=(e,t)=>{if(!e||!t)return e===t;let r=rp.structUtils.parseLocator(e);rp.structUtils.isVirtualLocator(r)&&(r=rp.structUtils.devirtualizeLocator(r));let n=rp.structUtils.parseLocator(t);return rp.structUtils.isVirtualLocator(n)&&(n=rp.structUtils.devirtualizeLocator(n)),rp.structUtils.areLocatorsEqual(r,n)};function Fds(e){return Fu.ppath.join(e.get("globalFolder"),"store")}function obl(e,t){let r=n=>{let a=n.split(Fu.ppath.sep),o=a.lastIndexOf(V2);if(o<0||o==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${n}`);return a.slice(0,o+(a[o+1].startsWith("@")?3:2)).join(Fu.ppath.sep)};for(let n of e.values())for(let[a,o]of n)t.has(r(o))&&n.delete(a)}async function abl(e,t,{baseFs:r,project:n,report:a,loadManifest:o,realLocatorChecksums:l}){let A=Fu.ppath.join(n.cwd,V2),{locationTree:f,binSymlinks:I,locatorLocations:C,installChangedByUser:b}=ibl(e.locationTree,e.binSymlinks,e.mtimeMs,n),E=kds(t,{skipPrefix:n.cwd}),N=[],B=async({srcDir:Se,dstDir:De,linkType:k,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})=>{let St=(async()=>{try{k===q4.LinkType.SOFT?(await Op.xfs.mkdirPromise(Fu.ppath.dirname(De),{recursive:!0}),await sUr(Fu.ppath.resolve(Se),De,Me)):await nbl(De,Se,{baseFs:r,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})}catch(At){throw At.message=`While persisting ${Se} -> ${De} ${At.message}`,At}finally{ce.tick()}})().then(()=>N.splice(N.indexOf(St),1));N.push(St),N.length>vds&&await Promise.race(N)},F=async(Se,De,k)=>{let et=(async()=>{let ct=async(Me,je,St)=>{try{St.innerLoop||await Op.xfs.mkdirPromise(je,{recursive:!0});let At=await Op.xfs.readdirPromise(Me,{withFileTypes:!0});for(let Yt of At){if(!St.innerLoop&&Yt.name===wGt)continue;let Tr=Fu.ppath.join(Me,Yt.name),Nr=Fu.ppath.join(je,Yt.name);Yt.isDirectory()?(Yt.name!==V2||St&&St.innerLoop)&&(await Op.xfs.mkdirPromise(Nr,{recursive:!0}),await ct(Tr,Nr,{...St,innerLoop:!0})):de.value===OO.HARDLINKS_LOCAL||de.value===OO.HARDLINKS_GLOBAL?await Op.xfs.linkPromise(Tr,Nr):await Op.xfs.copyFilePromise(Tr,Nr,qyl.default.constants.COPYFILE_FICLONE)}}catch(At){throw St.innerLoop||(At.message=`While cloning ${Me} -> ${je} ${At.message}`),At}finally{St.innerLoop||ce.tick()}};await ct(Se,De,k)})().then(()=>N.splice(N.indexOf(et),1));N.push(et),N.length>vds&&await Promise.race(N)},Q=async(Se,De,k)=>{if(k)for(let[et,ct]of De.children){let Me=k.children.get(et);await Q(Fu.ppath.join(Se,et),ct,Me)}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!1});let et=Fu.ppath.basename(Se)===V2&&f.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:Se===A,isWorkspaceDir:et})}};for(let[Se,De]of f){let k=E.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et),je=Fu.ppath.join(Se,et);await Q(je,ct,Me)}}let X=async(Se,De,k)=>{if(k){Bds(De.locator,k.locator)||await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD});for(let[et,ct]of De.children){let Me=k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!0});let et=Fu.ppath.basename(Se)===V2&&E.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD,isWorkspaceDir:et})}};for(let[Se,De]of E){let k=f.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}let ae=new Map,ne=[];for(let[Se,De]of C)for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=E.get(et),je=et;if(Me){for(let St of ct)if(je=Fu.ppath.join(je,St),Me=Me.children.get(St),!Me)break;if(Me){let St=Bds(Me.locator,Se),At=t.get(Me.locator),Yt=At.target,Tr=je,Nr=At.linkType;if(St)ae.has(Yt)||ae.set(Yt,Tr);else if(Yt!==Tr){let er=rp.structUtils.parseLocator(Me.locator);rp.structUtils.isVirtualLocator(er)&&(er=rp.structUtils.devirtualizeLocator(er)),ne.push({srcDir:Yt,dstDir:Tr,linkType:Nr,realLocatorHash:er.locatorHash})}}}}for(let[Se,{locations:De}]of t.entries())for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=f.get(et),je=E.get(et),St=et,At=t.get(Se),Yt=rp.structUtils.parseLocator(Se);rp.structUtils.isVirtualLocator(Yt)&&(Yt=rp.structUtils.devirtualizeLocator(Yt));let Tr=Yt.locatorHash,Nr=At.target,er=k;if(Nr===er)continue;let vt=At.linkType;for(let xt of ct)je=je.children.get(xt);if(!Me)ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});else for(let xt of ct)if(St=Fu.ppath.join(St,xt),Me=Me.children.get(xt),!Me){ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});break}}let ce=rp.Report.progressViaCounter(ne.length),fe=a.reportProgress(ce),ue=n.configuration.get("nmMode"),de={value:ue},be=n.configuration.get("winLinkType");try{let Se=de.value===OO.HARDLINKS_GLOBAL?`${Fds(n.configuration)}/v1`:null;if(Se&&!await Op.xfs.existsPromise(Se)){await Op.xfs.mkdirpPromise(Se);for(let k=0;k<256;k++)await Op.xfs.mkdirPromise(Fu.ppath.join(Se,k.toString(16).padStart(2,"0")))}for(let k of ne)(k.linkType===q4.LinkType.SOFT||!ae.has(k.srcDir))&&(ae.set(k.srcDir,k.dstDir),await B({...k,globalHardlinksStore:Se,nmMode:de,windowsLinkType:be,packageChecksum:l.get(k.realLocatorHash)||null}));await Promise.all(N),N.length=0;for(let k of ne){let et=ae.get(k.srcDir);k.linkType!==q4.LinkType.SOFT&&k.dstDir!==et&&await F(et,k.dstDir,{nmMode:de})}await Promise.all(N),await Op.xfs.mkdirPromise(A,{recursive:!0}),obl(I,new Set(ne.map(k=>k.dstDir)));let De=await sbl(t,E,n.cwd,{loadManifest:o});await cbl(I,De,n.cwd,be),await tbl(n,t,De,de,{installChangedByUser:b}),ue==OO.HARDLINKS_GLOBAL&&de.value==OO.HARDLINKS_LOCAL&&a.reportWarningOnce(eUr.MessageName.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function cbl(e,t,r,n){for(let a of e.keys()){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!t.has(a)){let o=Fu.ppath.join(a,V2,wGt);await Op.xfs.removePromise(o)}}for(let[a,o]of t){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let l=Fu.ppath.join(a,V2,wGt),A=e.get(a)||new Map;await Op.xfs.mkdirPromise(l,{recursive:!0});for(let f of A.keys())o.has(f)||(await Op.xfs.removePromise(Fu.ppath.join(l,f)),process.platform==="win32"&&await Op.xfs.removePromise(Fu.ppath.join(l,`${f}.cmd`)));for(let[f,I]of o){let C=A.get(f),b=Fu.ppath.join(l,f);C!==I&&(process.platform==="win32"?await(0,zyl.default)(Fu.npath.fromPortablePath(I),Fu.npath.fromPortablePath(b),{createPwshFile:!1}):(await Op.xfs.removePromise(b),await sUr(I,b,n),Fu.ppath.contains(r,await Op.xfs.realpathPromise(I))!==null&&await Op.xfs.chmodPromise(I,493)))}}}});var Vds=H(RGt=>{"use strict";Object.defineProperty(RGt,"__esModule",{value:!0});RGt.PnpLooseLinker=void 0;var Zds=Bn(),c7e=no(),lbl=zK(),ubl=t7e(),Lds=mGe(),gbl=ZJr(),aUr=class extends Lds.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(t){return new cUr(t)}};RGt.PnpLooseLinker=aUr;var cUr=class extends Lds.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async transformPnpSettings(t){let r=new c7e.VirtualFS({baseFs:new lbl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),n=(0,gbl.makeRuntimeApi)(t,this.opts.project.cwd,r),{tree:a,errors:o}=(0,ubl.buildNodeModulesTree)(n,{pnpifyFs:!1,project:this.opts.project});if(!a){for(let{messageName:C,text:b}of o)this.opts.report.reportError(C,b);return}let l=new Map;t.fallbackPool=l;let A=(C,b)=>{let E=Zds.structUtils.parseLocator(b.locator),N=Zds.structUtils.stringifyIdent(E);N===C?l.set(C,E.reference):l.set(C,[N,E.reference])},f=c7e.ppath.join(this.opts.project.cwd,c7e.Filename.nodeModules),I=a.get(f);if(!(typeof I>"u")){if("target"in I)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of I.dirList){let b=c7e.ppath.join(f,C),E=a.get(b);if(typeof E>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in E)A(C,E);else for(let N of E.dirList){let B=c7e.ppath.join(b,N),F=a.get(B);if(typeof F>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in F)A(`${C}/${N}`,F);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}}});var Wds=H(Mte=>{"use strict";Object.defineProperty(Mte,"__esModule",{value:!0});Mte.PnpLooseLinker=Mte.NodeModulesMode=Mte.NodeModulesLinker=void 0;var lUr=Bn(),Abl=no(),NGt=t7e(),a0e=oUr();Object.defineProperty(Mte,"NodeModulesLinker",{enumerable:!0,get:function(){return a0e.NodeModulesLinker}});Object.defineProperty(Mte,"NodeModulesMode",{enumerable:!0,get:function(){return a0e.NodeModulesMode}});var dbl=oUr(),Pds=Vds();Object.defineProperty(Mte,"PnpLooseLinker",{enumerable:!0,get:function(){return Pds.PnpLooseLinker}});var pbl={hooks:{cleanGlobalArtifacts:async e=>{let t=(0,dbl.getGlobalHardlinksStore)(e);await Abl.xfs.removePromise(t)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:lUr.SettingsType.STRING,values:[NGt.NodeModulesHoistingLimits.WORKSPACES,NGt.NodeModulesHoistingLimits.DEPENDENCIES,NGt.NodeModulesHoistingLimits.NONE],default:NGt.NodeModulesHoistingLimits.NONE},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:lUr.SettingsType.STRING,values:[a0e.NodeModulesMode.CLASSIC,a0e.NodeModulesMode.HARDLINKS_LOCAL,a0e.NodeModulesMode.HARDLINKS_GLOBAL],default:a0e.NodeModulesMode.CLASSIC},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:lUr.SettingsType.BOOLEAN,default:!0}},linkers:[a0e.NodeModulesLinker,Pds.PnpLooseLinker]};Mte.default=pbl});var bGe=H(DGt=>{"use strict";Object.defineProperty(DGt,"__esModule",{value:!0});DGt.PROTOCOL=void 0;DGt.PROTOCOL="npm:"});var c0e=H(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});MO.RegistryType=void 0;MO.normalizeRegistry=EGe;MO.getAuditRegistry=hbl;MO.getPublishRegistry=mbl;MO.getScopeRegistry=Ods;MO.getDefaultRegistry=l7e;MO.getRegistryConfiguration=Mds;MO.getScopeConfiguration=uUr;MO.getAuthConfiguration=_bl;MO.isPackageApproved=Sbl;var fbl=(Pa(),vi(Va)),kGt=Bn(),Ibl=fbl.__importDefault(Ek()),vue;(function(e){e.AUDIT_REGISTRY="npmAuditRegistry",e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"})(vue||(MO.RegistryType=vue={}));function EGe(e){return e.replace(/\/$/,"")}function hbl({configuration:e}){return l7e({configuration:e,type:vue.AUDIT_REGISTRY})}function mbl(e,{configuration:t}){return e.publishConfig?.registry?EGe(e.publishConfig.registry):e.name?Ods(e.name.scope,{configuration:t,type:vue.PUBLISH_REGISTRY}):l7e({configuration:t,type:vue.PUBLISH_REGISTRY})}function Ods(e,{configuration:t,type:r=vue.FETCH_REGISTRY}){let n=uUr(e,{configuration:t});if(n===null)return l7e({configuration:t,type:r});let a=n.get(r);return a===null?l7e({configuration:t,type:r}):EGe(a)}function l7e({configuration:e,type:t=vue.FETCH_REGISTRY}){let r=e.get(t);return EGe(r!==null?r:e.get(vue.FETCH_REGISTRY))}function Mds(e,{configuration:t}){let r=t.get("npmRegistries"),n=EGe(e),a=r.get(n);if(typeof a<"u")return a;let o=r.get(n.replace(/^[a-z]+:/,""));return typeof o<"u"?o:null}var Cbl=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function uUr(e,{configuration:t}){if(e===null)return null;let n=t.get("npmScopes").get(e);return n||(e==="jsr"?Cbl:null)}function _bl(e,{configuration:t,ident:r}){let n=r&&uUr(r.scope,{configuration:t});return n?.get("npmAuthIdent")||n?.get("npmAuthToken")?n:Mds(e,{configuration:t})||t}function ybl({configuration:e,version:t,publishTimes:r}){let n=e.get("npmMinimalAgeGate");if(n){let a=r?.[t];if(typeof a>"u"||(new Date().getTime()-new Date(a).getTime())/60/1e3bbl(t,r,n))}function Sbl(e){return!ybl(e)||Ebl(e)}});var vGe=H(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});FH.AuthType=void 0;FH.handleInvalidAuthenticationError=wue;FH.customPackageError=Qds;FH.getIdentUrl=AUr;FH.getPackageMetadata=Dbl;FH.get=Uds;FH.post=Zbl;FH.put=Lbl;FH.del=Vbl;var Yds=(Pa(),vi(Va)),ET=Bn(),Bue=Bn(),Hte=no(),Hds=Lje(),vbl=kW(),Bbl=Yds.__importDefault(UC()),gUr=Yds.__importStar(c0e()),GH;(function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(GH||(FH.AuthType=GH={}));async function wue(e,{attemptedAs:t,registry:r,headers:n,configuration:a}){if(GGt(e))throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,"Invalid OTP token");if(e.originalError?.name==="HTTPError"&&e.originalError?.response.statusCode===401)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,`Invalid authentication (${typeof t!="string"?`as ${await Wbl(r,n,{configuration:a})}`:`attempted as ${t}`})`)}function Qds(e,t){let r=e.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ET.formatUtils.applyHyperlink(t,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function AUr(e){return e.scope?`/@${e.scope}%2f${e.name}`:`/${e.name}`}var Xds=new Map,wbl=new Map;async function Tbl(e){return await ET.miscUtils.getFactoryWithDefault(Xds,e,async()=>{let t=null;try{t=await Hte.xfs.readJsonPromise(e)}catch{}return t})}async function Rbl(e,t,{configuration:r,cached:n,registry:a,headers:o,version:l,...A}){return await ET.miscUtils.getFactoryWithDefault(wbl,e,async()=>await Uds(AUr(t),{...A,customErrorMessage:Qds,configuration:r,registry:a,ident:t,headers:{...o,"If-None-Match":n?.etag,"If-Modified-Since":n?.lastModified},wrapNetworkRequest:async f=>async()=>{let I=await f();if(I.statusCode===304){if(n===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...I,body:n.metadata}}let C=kbl(JSON.parse(I.body.toString())),b={metadata:C,etag:I.headers.etag,lastModified:I.headers["last-modified"]};return Xds.set(e,Promise.resolve(b)),Promise.resolve().then(async()=>{let E=`${e}-${process.pid}.tmp`;await Hte.xfs.mkdirPromise(Hte.ppath.dirname(E),{recursive:!0}),await Hte.xfs.writeJsonPromise(E,b,{compact:!0}),await Hte.xfs.renamePromise(E,e)}).catch(()=>{}),{...I,body:C}}}))}function Nbl(e){return e.scope!==null?`@${e.scope}-${e.name}-${e.scope.length}`:e.name}async function Dbl(e,{cache:t,project:r,registry:n,headers:a,version:o,...l}){let{configuration:A}=r;n=u7e(A,{ident:e,registry:n});let f=Gbl(A,n),I=Hte.ppath.join(f,`${Nbl(e)}.json`),C=null;if(!r.lockfileNeedsRefresh&&(C=await Tbl(I),C)){if(typeof o<"u"&&typeof C.metadata.versions[o]<"u")return C.metadata;if(A.get("enableOfflineMode")){let b=structuredClone(C.metadata),E=new Set;if(t){for(let B of Object.keys(b.versions)){let F=ET.structUtils.makeLocator(e,`npm:${B}`),Q=t.getLocatorMirrorPath(F);(!Q||!Hte.xfs.existsSync(Q))&&(delete b.versions[B],E.add(B))}let N=b["dist-tags"].latest;if(E.has(N)){let B=Object.keys(C.metadata.versions).sort(Bbl.default.compare),F=B.indexOf(N);for(;E.has(B[F])&&F>=0;)F-=1;F>=0?b["dist-tags"].latest=B[F]:delete b["dist-tags"].latest}}return b}}return await Rbl(I,e,{...l,configuration:A,cached:C,registry:n,headers:a,version:o})}var Jds=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function kbl(e){return{"dist-tags":e["dist-tags"],versions:Object.fromEntries(Object.entries(e.versions).map(([t,r])=>[t,(0,vbl.pick)(r,Jds)])),time:e.time}}var xbl=ET.hashUtils.makeHash("time",...Jds).slice(0,6);function Gbl(e,t){let r=Fbl(e),n=new URL(t);return Hte.ppath.join(r,xbl,n.hostname)}function Fbl(e){return Hte.ppath.join(e.get("globalFolder"),"metadata/npm")}async function Uds(e,{configuration:t,headers:r,ident:n,authType:a,allowOidc:o,registry:l,...A}){l=u7e(t,{ident:n,registry:l}),n&&n.scope&&typeof a>"u"&&(a=GH.BEST_EFFORT);let f=await xGt(l,{authType:a,allowOidc:o,configuration:t,ident:n});f&&(r={...r,authorization:f});try{return await ET.httpUtils.get(e.charAt(0)==="/"?`${l}${e}`:e,{configuration:t,headers:r,...A})}catch(I){throw await wue(I,{registry:l,configuration:t,headers:r}),I}}async function Zbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.post(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E)||I)throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.post(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Lbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.put(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E))throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.put(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Vbl(e,{attemptedAs:t,configuration:r,headers:n,ident:a,authType:o=GH.ALWAYS_AUTH,allowOidc:l,registry:A,otp:f,...I}){A=u7e(r,{ident:a,registry:A});let C=await xGt(A,{authType:o,allowOidc:l,configuration:r,ident:a});C&&(n={...n,authorization:C}),f&&(n={...n,...SGe(f)});try{return await ET.httpUtils.del(A+e,{configuration:r,headers:n,...I})}catch(b){if(!GGt(b)||f)throw await wue(b,{attemptedAs:t,registry:A,configuration:r,headers:n}),b;f=await dUr(b,{configuration:r});let E={...n,...SGe(f)};try{return await ET.httpUtils.del(`${A}${e}`,{configuration:r,headers:E,...I})}catch(N){throw await wue(N,{attemptedAs:t,registry:A,configuration:r,headers:n}),N}}}function u7e(e,{ident:t,registry:r}){if(typeof r>"u"&&t)return gUr.getScopeRegistry(t.scope,{configuration:e});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return gUr.normalizeRegistry(r)}async function xGt(e,{authType:t=GH.CONFIGURATION,allowOidc:r=!1,configuration:n,ident:a}){let o=gUr.getAuthConfiguration(e,{configuration:n,ident:a}),l=Pbl(o,t);if(!l)return null;let A=await n.reduceHook(f=>f.getNpmAuthenticationHeader,void 0,e,{configuration:n,ident:a});if(A)return A;if(o.get("npmAuthToken"))return`Bearer ${o.get("npmAuthToken")}`;if(o.get("npmAuthIdent")){let f=o.get("npmAuthIdent");return f.includes(":")?`Basic ${Buffer.from(f).toString("base64")}`:`Basic ${f}`}if(r&&a){let f=await Obl(e,{configuration:n,ident:a});if(f)return`Bearer ${f}`}if(l&&t!==GH.BEST_EFFORT)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function Pbl(e,t){switch(t){case GH.CONFIGURATION:return e.get("npmAlwaysAuth");case GH.BEST_EFFORT:case GH.ALWAYS_AUTH:return!0;case GH.NO_AUTH:return!1;default:throw new Error("Unreachable")}}async function Wbl(e,t,{configuration:r}){if(typeof t>"u"||typeof t.authorization>"u")return"an anonymous user";try{return(await ET.httpUtils.get(new URL(`${e}/-/whoami`).href,{configuration:r,headers:t,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function dUr(e,{configuration:t}){let r=e.originalError?.response.headers["npm-notice"];if(r&&(await ET.StreamReport.start({configuration:t,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(Bue.MessageName.UNNAMED,r.replace(/(https?:\/\/\S+)/g,ET.formatUtils.pretty(t,"$1",ET.formatUtils.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=r.match(/open (https?:\/\/\S+)/i);if(o&&ET.nodeUtils.openUrl){let{openNow:l}=await(0,Hds.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});l&&(await ET.nodeUtils.openUrl(o[1])||(a.reportSeparator(),a.reportWarning(Bue.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`}}}}let f=e.cwd,I=Fu.ppath.join(f,V2,Dds);a&&await Op.xfs.removePromise(I),await Op.xfs.changeFilePromise(I,o,{automaticNewlines:!0})}async function nUr(e,{unrollAliases:t=!1}={}){let r=e.cwd,n=Fu.ppath.join(r,V2,Dds),a;try{a=await Op.xfs.statPromise(n)}catch{}if(!a)return null;let o=(0,zyl.parseSyml)(await Op.xfs.readFilePromise(n,"utf8"));if(o.__metadata.version>Nds)return null;let l=o.__metadata.nmMode||OO.CLASSIC,A=new Map,f=new Map;delete o.__metadata;for(let[I,C]of Object.entries(o)){let b=C.locations.map(N=>Fu.ppath.join(r,N)),E=C.bin;if(E)for(let[N,B]of Object.entries(E)){let F=Fu.ppath.join(r,Fu.npath.toPortablePath(N)),Q=rp.miscUtils.getMapWithDefault(f,F);for(let[X,ae]of Object.entries(B))Q.set(X,Fu.npath.toPortablePath([F,V2,ae].join(Fu.ppath.sep)))}if(A.set(I,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:C.aliases||[]}),t&&C.aliases)for(let N of C.aliases){let{scope:B,name:F}=rp.structUtils.parseLocator(I),Q=rp.structUtils.makeLocator(rp.structUtils.makeIdent(B,F),N),X=rp.structUtils.stringifyLocator(Q);A.set(X,{target:Fu.PortablePath.dot,linkType:q4.LinkType.HARD,locations:b,aliases:[]})}}return{locatorMap:A,binSymlinks:f,locationTree:kds(A,{skipPrefix:e.cwd}),nmMode:l,mtimeMs:a.mtimeMs}}var yGe=async(e,t)=>{if(e.split(Fu.ppath.sep).indexOf(V2)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${e}`);try{let r;if(!t.innerLoop&&(r=await Op.xfs.lstatPromise(e),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!t.isWorkspaceDir)){await Op.xfs.unlinkPromise(e);return}let n=await Op.xfs.readdirPromise(e,{withFileTypes:!0});for(let o of n){let l=Fu.ppath.join(e,o.name);o.isDirectory()?(o.name!==V2||t&&t.innerLoop)&&await yGe(l,{innerLoop:!0,contentsOnly:!1}):await Op.xfs.unlinkPromise(l)}let a=!t.innerLoop&&t.isWorkspaceDir&&r?.isSymbolicLink();!t.contentsOnly&&!a&&await Op.xfs.rmdirPromise(e)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},vds=4,TGt=(e,{skipPrefix:t})=>{let r=Fu.ppath.contains(t,e);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${e} which is outside project root: ${t}`);let n=r.split(Fu.ppath.sep).filter(f=>f!==""),a=n.indexOf(V2),o=n.slice(0,a).join(Fu.ppath.sep),l=Fu.ppath.join(t,o),A=n.slice(a);return{locationRoot:l,segments:A}},kds=(e,{skipPrefix:t})=>{let r=new Map;if(e===null)return r;let n=()=>({children:new Map,linkType:q4.LinkType.HARD});for(let[a,o]of e.entries()){if(o.linkType===q4.LinkType.SOFT&&Fu.ppath.contains(t,o.target)!==null){let A=rp.miscUtils.getFactoryWithDefault(r,o.target,n);A.locator=a,A.linkType=o.linkType}for(let l of o.locations){let{locationRoot:A,segments:f}=TGt(l,{skipPrefix:t}),I=rp.miscUtils.getFactoryWithDefault(r,A,n);for(let C=0;C{if(process.platform==="win32"&&r===q4.WindowsLinkType.JUNCTIONS){let n;try{n=await Op.xfs.lstatPromise(e)}catch{}if(!n||n.isDirectory()){await Op.xfs.symlinkPromise(e,t,"junction");return}}await Op.xfs.symlinkPromise(Fu.ppath.relative(Fu.ppath.dirname(t),e),t)};async function xds(e,t,r){let n=Fu.ppath.join(e,`${Rds.default.randomBytes(16).toString("hex")}.tmp`);try{await Op.xfs.writeFilePromise(n,r);try{await Op.xfs.linkPromise(n,t)}catch{}}finally{await Op.xfs.unlinkPromise(n)}}async function nbl({srcPath:e,dstPath:t,entry:r,globalHardlinksStore:n,baseFs:a,nmMode:o}){if(r.kind===Ote.FILE){if(o.value===OO.HARDLINKS_GLOBAL&&n&&r.digest){let A=Fu.ppath.join(n,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),f;try{let I=await Op.xfs.statPromise(A);if(I&&(!r.mtimeMs||I.mtimeMs>r.mtimeMs||I.mtimeMs{await Op.xfs.mkdirPromise(e,{recursive:!0});let A=async(C=Fu.PortablePath.dot)=>{let b=Fu.ppath.join(t,C),E=await r.readdirPromise(b,{withFileTypes:!0}),N=new Map;for(let B of E){let F=Fu.ppath.join(C,B.name),Q,X=Fu.ppath.join(b,B.name);if(B.isFile()){if(Q={kind:Ote.FILE,mode:(await r.lstatPromise(X)).mode},a.value===OO.HARDLINKS_GLOBAL){let ae=await wds.hashUtils.checksumFile(X,{baseFs:r,algorithm:"sha1"});Q.digest=ae}}else if(B.isDirectory())Q={kind:Ote.DIRECTORY};else if(B.isSymbolicLink())Q={kind:Ote.SYMLINK,symlinkTo:await r.readlinkPromise(X)};else throw new Error(`Unsupported file type (file: ${X}, mode: 0o${await r.statSync(X).mode.toString(8).padStart(6,"0")})`);if(N.set(F,Q),B.isDirectory()&&F!==V2){let ae=await A(F);for(let[ne,ce]of ae)N.set(ne,ce)}}return N},f;if(a.value===OO.HARDLINKS_GLOBAL&&n&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);try{f=new Map(Object.entries(JSON.parse(await Op.xfs.readFilePromise(C,"utf8"))))}catch{f=await A()}}else f=await A();let I=!1;for(let[C,b]of f){let E=Fu.ppath.join(t,C),N=Fu.ppath.join(e,C);if(b.kind===Ote.DIRECTORY)await Op.xfs.mkdirPromise(N,{recursive:!0});else if(b.kind===Ote.FILE){let B=b.mtimeMs;await nbl({srcPath:E,dstPath:N,entry:b,nmMode:a,baseFs:r,globalHardlinksStore:n}),b.mtimeMs!==B&&(I=!0)}else b.kind===Ote.SYMLINK&&await sUr(Fu.ppath.resolve(Fu.ppath.dirname(N),b.symlinkTo),N,o)}if(a.value===OO.HARDLINKS_GLOBAL&&n&&I&&l){let C=Fu.ppath.join(n,l.substring(0,2),`${l.substring(2)}.json`);await Op.xfs.removePromise(C),await xds(n,C,Buffer.from(JSON.stringify(Object.fromEntries(f))))}};function sbl(e,t,r,n){let a=new Map,o=new Map,l=new Map,A=!1,f=(I,C,b,E,N)=>{let B=!0,F=Fu.ppath.join(I,C),Q=new Set;if(C===V2||C.startsWith("@")){let ae;try{ae=Op.xfs.statSync(F)}catch{}B=!!ae,ae?ae.mtimeMs>r?(A=!0,Q=new Set(Op.xfs.readdirSync(F))):Q=new Set(b.children.get(C).children.keys()):A=!0;let ne=t.get(I);if(ne){let ce=Fu.ppath.join(I,V2,wGt),fe;try{fe=Op.xfs.statSync(ce)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ue=new Set(Op.xfs.readdirSync(ce)),de=new Map;o.set(I,de);for(let[be,Se]of ne)ue.has(be)&&de.set(be,Se)}else o.set(I,ne)}}else B=N.has(C);let X=b.children.get(C);if(B){let{linkType:ae,locator:ne}=X,ce={children:new Map,linkType:ae,locator:ne};if(E.children.set(C,ce),ne){let fe=rp.miscUtils.getSetWithDefault(l,ne);fe.add(F),l.set(ne,fe)}for(let fe of X.children.keys())f(F,fe,X,ce,Q)}else X.locator&&n.storedBuildState.delete(rp.structUtils.parseLocator(X.locator).locatorHash)};for(let[I,C]of e){let{linkType:b,locator:E}=C,N={children:new Map,linkType:b,locator:E};if(a.set(I,N),E){let B=rp.miscUtils.getSetWithDefault(l,C.locator);B.add(I),l.set(C.locator,B)}C.children.has(V2)&&f(I,V2,C,N,new Set)}return{locationTree:a,binSymlinks:o,locatorLocations:l,installChangedByUser:A}}function Gds(e){let t=rp.structUtils.parseDescriptor(e);return rp.structUtils.isVirtualDescriptor(t)&&(t=rp.structUtils.devirtualizeDescriptor(t)),t.range.startsWith("link:")}async function obl(e,t,r,{loadManifest:n}){let a=new Map;for(let[A,{locations:f}]of e){let I=Gds(A)?null:await n(A,f[0]),C=new Map;if(I)for(let[b,E]of I.bin){let N=Fu.ppath.join(f[0],E);E!==""&&Op.xfs.existsSync(N)&&C.set(b,E)}a.set(A,C)}let o=new Map,l=(A,f,I)=>{let C=new Map,b=Fu.ppath.contains(r,A);if(I.locator&&b!==null){let E=a.get(I.locator);for(let[N,B]of E){let F=Fu.ppath.join(A,Fu.npath.toPortablePath(B));C.set(N,F)}for(let[N,B]of I.children){let F=Fu.ppath.join(A,N),Q=l(F,F,B);Q.size>0&&o.set(A,new Map([...o.get(A)||new Map,...Q]))}}else for(let[E,N]of I.children){let B=l(Fu.ppath.join(A,E),f,N);for(let[F,Q]of B)C.set(F,Q)}return C};for(let[A,f]of t){let I=l(A,A,f);I.size>0&&o.set(A,new Map([...o.get(A)||new Map,...I]))}return o}var Bds=(e,t)=>{if(!e||!t)return e===t;let r=rp.structUtils.parseLocator(e);rp.structUtils.isVirtualLocator(r)&&(r=rp.structUtils.devirtualizeLocator(r));let n=rp.structUtils.parseLocator(t);return rp.structUtils.isVirtualLocator(n)&&(n=rp.structUtils.devirtualizeLocator(n)),rp.structUtils.areLocatorsEqual(r,n)};function Fds(e){return Fu.ppath.join(e.get("globalFolder"),"store")}function abl(e,t){let r=n=>{let a=n.split(Fu.ppath.sep),o=a.lastIndexOf(V2);if(o<0||o==a.length-1)throw new Error(`Assertion failed. Path is outside of any node_modules package ${n}`);return a.slice(0,o+(a[o+1].startsWith("@")?3:2)).join(Fu.ppath.sep)};for(let n of e.values())for(let[a,o]of n)t.has(r(o))&&n.delete(a)}async function cbl(e,t,{baseFs:r,project:n,report:a,loadManifest:o,realLocatorChecksums:l}){let A=Fu.ppath.join(n.cwd,V2),{locationTree:f,binSymlinks:I,locatorLocations:C,installChangedByUser:b}=sbl(e.locationTree,e.binSymlinks,e.mtimeMs,n),E=kds(t,{skipPrefix:n.cwd}),N=[],B=async({srcDir:Se,dstDir:De,linkType:k,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})=>{let St=(async()=>{try{k===q4.LinkType.SOFT?(await Op.xfs.mkdirPromise(Fu.ppath.dirname(De),{recursive:!0}),await sUr(Fu.ppath.resolve(Se),De,Me)):await ibl(De,Se,{baseFs:r,globalHardlinksStore:et,nmMode:ct,windowsLinkType:Me,packageChecksum:je})}catch(At){throw At.message=`While persisting ${Se} -> ${De} ${At.message}`,At}finally{ce.tick()}})().then(()=>N.splice(N.indexOf(St),1));N.push(St),N.length>vds&&await Promise.race(N)},F=async(Se,De,k)=>{let et=(async()=>{let ct=async(Me,je,St)=>{try{St.innerLoop||await Op.xfs.mkdirPromise(je,{recursive:!0});let At=await Op.xfs.readdirPromise(Me,{withFileTypes:!0});for(let Yt of At){if(!St.innerLoop&&Yt.name===wGt)continue;let Tr=Fu.ppath.join(Me,Yt.name),Nr=Fu.ppath.join(je,Yt.name);Yt.isDirectory()?(Yt.name!==V2||St&&St.innerLoop)&&(await Op.xfs.mkdirPromise(Nr,{recursive:!0}),await ct(Tr,Nr,{...St,innerLoop:!0})):de.value===OO.HARDLINKS_LOCAL||de.value===OO.HARDLINKS_GLOBAL?await Op.xfs.linkPromise(Tr,Nr):await Op.xfs.copyFilePromise(Tr,Nr,$yl.default.constants.COPYFILE_FICLONE)}}catch(At){throw St.innerLoop||(At.message=`While cloning ${Me} -> ${je} ${At.message}`),At}finally{St.innerLoop||ce.tick()}};await ct(Se,De,k)})().then(()=>N.splice(N.indexOf(et),1));N.push(et),N.length>vds&&await Promise.race(N)},Q=async(Se,De,k)=>{if(k)for(let[et,ct]of De.children){let Me=k.children.get(et);await Q(Fu.ppath.join(Se,et),ct,Me)}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!1});let et=Fu.ppath.basename(Se)===V2&&f.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:Se===A,isWorkspaceDir:et})}};for(let[Se,De]of f){let k=E.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et),je=Fu.ppath.join(Se,et);await Q(je,ct,Me)}}let X=async(Se,De,k)=>{if(k){Bds(De.locator,k.locator)||await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD});for(let[et,ct]of De.children){let Me=k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}else{De.children.has(V2)&&await yGe(Fu.ppath.join(Se,V2),{contentsOnly:!0});let et=Fu.ppath.basename(Se)===V2&&E.has(Fu.ppath.join(Fu.ppath.dirname(Se)));await yGe(Se,{contentsOnly:De.linkType===q4.LinkType.HARD,isWorkspaceDir:et})}};for(let[Se,De]of E){let k=f.get(Se);for(let[et,ct]of De.children){if(et===".")continue;let Me=k&&k.children.get(et);await X(Fu.ppath.join(Se,et),ct,Me)}}let ae=new Map,ne=[];for(let[Se,De]of C)for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=E.get(et),je=et;if(Me){for(let St of ct)if(je=Fu.ppath.join(je,St),Me=Me.children.get(St),!Me)break;if(Me){let St=Bds(Me.locator,Se),At=t.get(Me.locator),Yt=At.target,Tr=je,Nr=At.linkType;if(St)ae.has(Yt)||ae.set(Yt,Tr);else if(Yt!==Tr){let er=rp.structUtils.parseLocator(Me.locator);rp.structUtils.isVirtualLocator(er)&&(er=rp.structUtils.devirtualizeLocator(er)),ne.push({srcDir:Yt,dstDir:Tr,linkType:Nr,realLocatorHash:er.locatorHash})}}}}for(let[Se,{locations:De}]of t.entries())for(let k of De){let{locationRoot:et,segments:ct}=TGt(k,{skipPrefix:n.cwd}),Me=f.get(et),je=E.get(et),St=et,At=t.get(Se),Yt=rp.structUtils.parseLocator(Se);rp.structUtils.isVirtualLocator(Yt)&&(Yt=rp.structUtils.devirtualizeLocator(Yt));let Tr=Yt.locatorHash,Nr=At.target,er=k;if(Nr===er)continue;let vt=At.linkType;for(let xt of ct)je=je.children.get(xt);if(!Me)ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});else for(let xt of ct)if(St=Fu.ppath.join(St,xt),Me=Me.children.get(xt),!Me){ne.push({srcDir:Nr,dstDir:er,linkType:vt,realLocatorHash:Tr});break}}let ce=rp.Report.progressViaCounter(ne.length),fe=a.reportProgress(ce),ue=n.configuration.get("nmMode"),de={value:ue},be=n.configuration.get("winLinkType");try{let Se=de.value===OO.HARDLINKS_GLOBAL?`${Fds(n.configuration)}/v1`:null;if(Se&&!await Op.xfs.existsPromise(Se)){await Op.xfs.mkdirpPromise(Se);for(let k=0;k<256;k++)await Op.xfs.mkdirPromise(Fu.ppath.join(Se,k.toString(16).padStart(2,"0")))}for(let k of ne)(k.linkType===q4.LinkType.SOFT||!ae.has(k.srcDir))&&(ae.set(k.srcDir,k.dstDir),await B({...k,globalHardlinksStore:Se,nmMode:de,windowsLinkType:be,packageChecksum:l.get(k.realLocatorHash)||null}));await Promise.all(N),N.length=0;for(let k of ne){let et=ae.get(k.srcDir);k.linkType!==q4.LinkType.SOFT&&k.dstDir!==et&&await F(et,k.dstDir,{nmMode:de})}await Promise.all(N),await Op.xfs.mkdirPromise(A,{recursive:!0}),abl(I,new Set(ne.map(k=>k.dstDir)));let De=await obl(t,E,n.cwd,{loadManifest:o});await lbl(I,De,n.cwd,be),await rbl(n,t,De,de,{installChangedByUser:b}),ue==OO.HARDLINKS_GLOBAL&&de.value==OO.HARDLINKS_LOCAL&&a.reportWarningOnce(eUr.MessageName.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function lbl(e,t,r,n){for(let a of e.keys()){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!t.has(a)){let o=Fu.ppath.join(a,V2,wGt);await Op.xfs.removePromise(o)}}for(let[a,o]of t){if(Fu.ppath.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let l=Fu.ppath.join(a,V2,wGt),A=e.get(a)||new Map;await Op.xfs.mkdirPromise(l,{recursive:!0});for(let f of A.keys())o.has(f)||(await Op.xfs.removePromise(Fu.ppath.join(l,f)),process.platform==="win32"&&await Op.xfs.removePromise(Fu.ppath.join(l,`${f}.cmd`)));for(let[f,I]of o){let C=A.get(f),b=Fu.ppath.join(l,f);C!==I&&(process.platform==="win32"?await(0,qyl.default)(Fu.npath.fromPortablePath(I),Fu.npath.fromPortablePath(b),{createPwshFile:!1}):(await Op.xfs.removePromise(b),await sUr(I,b,n),Fu.ppath.contains(r,await Op.xfs.realpathPromise(I))!==null&&await Op.xfs.chmodPromise(I,493)))}}}});var Vds=H(RGt=>{"use strict";Object.defineProperty(RGt,"__esModule",{value:!0});RGt.PnpLooseLinker=void 0;var Zds=Bn(),c7e=no(),ubl=zK(),gbl=t7e(),Lds=mGe(),Abl=ZJr(),aUr=class extends Lds.PnpLinker{constructor(){super(...arguments),this.mode="loose"}makeInstaller(t){return new cUr(t)}};RGt.PnpLooseLinker=aUr;var cUr=class extends Lds.PnpInstaller{constructor(){super(...arguments),this.mode="loose"}async transformPnpSettings(t){let r=new c7e.VirtualFS({baseFs:new ubl.ZipOpenFS({maxOpenFiles:80,readOnlyArchives:!0})}),n=(0,Abl.makeRuntimeApi)(t,this.opts.project.cwd,r),{tree:a,errors:o}=(0,gbl.buildNodeModulesTree)(n,{pnpifyFs:!1,project:this.opts.project});if(!a){for(let{messageName:C,text:b}of o)this.opts.report.reportError(C,b);return}let l=new Map;t.fallbackPool=l;let A=(C,b)=>{let E=Zds.structUtils.parseLocator(b.locator),N=Zds.structUtils.stringifyIdent(E);N===C?l.set(C,E.reference):l.set(C,[N,E.reference])},f=c7e.ppath.join(this.opts.project.cwd,c7e.Filename.nodeModules),I=a.get(f);if(!(typeof I>"u")){if("target"in I)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let C of I.dirList){let b=c7e.ppath.join(f,C),E=a.get(b);if(typeof E>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in E)A(C,E);else for(let N of E.dirList){let B=c7e.ppath.join(b,N),F=a.get(B);if(typeof F>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in F)A(`${C}/${N}`,F);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}}});var Wds=H(Mte=>{"use strict";Object.defineProperty(Mte,"__esModule",{value:!0});Mte.PnpLooseLinker=Mte.NodeModulesMode=Mte.NodeModulesLinker=void 0;var lUr=Bn(),dbl=no(),NGt=t7e(),a0e=oUr();Object.defineProperty(Mte,"NodeModulesLinker",{enumerable:!0,get:function(){return a0e.NodeModulesLinker}});Object.defineProperty(Mte,"NodeModulesMode",{enumerable:!0,get:function(){return a0e.NodeModulesMode}});var pbl=oUr(),Pds=Vds();Object.defineProperty(Mte,"PnpLooseLinker",{enumerable:!0,get:function(){return Pds.PnpLooseLinker}});var fbl={hooks:{cleanGlobalArtifacts:async e=>{let t=(0,pbl.getGlobalHardlinksStore)(e);await dbl.xfs.removePromise(t)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:lUr.SettingsType.STRING,values:[NGt.NodeModulesHoistingLimits.WORKSPACES,NGt.NodeModulesHoistingLimits.DEPENDENCIES,NGt.NodeModulesHoistingLimits.NONE],default:NGt.NodeModulesHoistingLimits.NONE},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:lUr.SettingsType.STRING,values:[a0e.NodeModulesMode.CLASSIC,a0e.NodeModulesMode.HARDLINKS_LOCAL,a0e.NodeModulesMode.HARDLINKS_GLOBAL],default:a0e.NodeModulesMode.CLASSIC},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:lUr.SettingsType.BOOLEAN,default:!0}},linkers:[a0e.NodeModulesLinker,Pds.PnpLooseLinker]};Mte.default=fbl});var bGe=H(DGt=>{"use strict";Object.defineProperty(DGt,"__esModule",{value:!0});DGt.PROTOCOL=void 0;DGt.PROTOCOL="npm:"});var c0e=H(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});MO.RegistryType=void 0;MO.normalizeRegistry=EGe;MO.getAuditRegistry=mbl;MO.getPublishRegistry=Cbl;MO.getScopeRegistry=Ods;MO.getDefaultRegistry=l7e;MO.getRegistryConfiguration=Mds;MO.getScopeConfiguration=uUr;MO.getAuthConfiguration=ybl;MO.isPackageApproved=vbl;var Ibl=(Pa(),vi(Va)),kGt=Bn(),hbl=Ibl.__importDefault(Ek()),vue;(function(e){e.AUDIT_REGISTRY="npmAuditRegistry",e.FETCH_REGISTRY="npmRegistryServer",e.PUBLISH_REGISTRY="npmPublishRegistry"})(vue||(MO.RegistryType=vue={}));function EGe(e){return e.replace(/\/$/,"")}function mbl({configuration:e}){return l7e({configuration:e,type:vue.AUDIT_REGISTRY})}function Cbl(e,{configuration:t}){return e.publishConfig?.registry?EGe(e.publishConfig.registry):e.name?Ods(e.name.scope,{configuration:t,type:vue.PUBLISH_REGISTRY}):l7e({configuration:t,type:vue.PUBLISH_REGISTRY})}function Ods(e,{configuration:t,type:r=vue.FETCH_REGISTRY}){let n=uUr(e,{configuration:t});if(n===null)return l7e({configuration:t,type:r});let a=n.get(r);return a===null?l7e({configuration:t,type:r}):EGe(a)}function l7e({configuration:e,type:t=vue.FETCH_REGISTRY}){let r=e.get(t);return EGe(r!==null?r:e.get(vue.FETCH_REGISTRY))}function Mds(e,{configuration:t}){let r=t.get("npmRegistries"),n=EGe(e),a=r.get(n);if(typeof a<"u")return a;let o=r.get(n.replace(/^[a-z]+:/,""));return typeof o<"u"?o:null}var _bl=new Map([["npmRegistryServer","https://npm.jsr.io/"]]);function uUr(e,{configuration:t}){if(e===null)return null;let n=t.get("npmScopes").get(e);return n||(e==="jsr"?_bl:null)}function ybl(e,{configuration:t,ident:r}){let n=r&&uUr(r.scope,{configuration:t});return n?.get("npmAuthIdent")||n?.get("npmAuthToken")?n:Mds(e,{configuration:t})||t}function bbl({configuration:e,version:t,publishTimes:r}){let n=e.get("npmMinimalAgeGate");if(n){let a=r?.[t];if(typeof a>"u"||(new Date().getTime()-new Date(a).getTime())/60/1e3Ebl(t,r,n))}function vbl(e){return!bbl(e)||Sbl(e)}});var vGe=H(FH=>{"use strict";Object.defineProperty(FH,"__esModule",{value:!0});FH.AuthType=void 0;FH.handleInvalidAuthenticationError=wue;FH.customPackageError=Qds;FH.getIdentUrl=AUr;FH.getPackageMetadata=kbl;FH.get=Uds;FH.post=Lbl;FH.put=Vbl;FH.del=Pbl;var Yds=(Pa(),vi(Va)),ET=Bn(),Bue=Bn(),Hte=no(),Hds=Lje(),Bbl=kW(),wbl=Yds.__importDefault(UC()),gUr=Yds.__importStar(c0e()),GH;(function(e){e[e.NO_AUTH=0]="NO_AUTH",e[e.BEST_EFFORT=1]="BEST_EFFORT",e[e.CONFIGURATION=2]="CONFIGURATION",e[e.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(GH||(FH.AuthType=GH={}));async function wue(e,{attemptedAs:t,registry:r,headers:n,configuration:a}){if(GGt(e))throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,"Invalid OTP token");if(e.originalError?.name==="HTTPError"&&e.originalError?.response.statusCode===401)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_INVALID,`Invalid authentication (${typeof t!="string"?`as ${await Obl(r,n,{configuration:a})}`:`attempted as ${t}`})`)}function Qds(e,t){let r=e.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${ET.formatUtils.applyHyperlink(t,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function AUr(e){return e.scope?`/@${e.scope}%2f${e.name}`:`/${e.name}`}var Xds=new Map,Tbl=new Map;async function Rbl(e){return await ET.miscUtils.getFactoryWithDefault(Xds,e,async()=>{let t=null;try{t=await Hte.xfs.readJsonPromise(e)}catch{}return t})}async function Nbl(e,t,{configuration:r,cached:n,registry:a,headers:o,version:l,...A}){return await ET.miscUtils.getFactoryWithDefault(Tbl,e,async()=>await Uds(AUr(t),{...A,customErrorMessage:Qds,configuration:r,registry:a,ident:t,headers:{...o,"If-None-Match":n?.etag,"If-Modified-Since":n?.lastModified},wrapNetworkRequest:async f=>async()=>{let I=await f();if(I.statusCode===304){if(n===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...I,body:n.metadata}}let C=xbl(JSON.parse(I.body.toString())),b={metadata:C,etag:I.headers.etag,lastModified:I.headers["last-modified"]};return Xds.set(e,Promise.resolve(b)),Promise.resolve().then(async()=>{let E=`${e}-${process.pid}.tmp`;await Hte.xfs.mkdirPromise(Hte.ppath.dirname(E),{recursive:!0}),await Hte.xfs.writeJsonPromise(E,b,{compact:!0}),await Hte.xfs.renamePromise(E,e)}).catch(()=>{}),{...I,body:C}}}))}function Dbl(e){return e.scope!==null?`@${e.scope}-${e.name}-${e.scope.length}`:e.name}async function kbl(e,{cache:t,project:r,registry:n,headers:a,version:o,...l}){let{configuration:A}=r;n=u7e(A,{ident:e,registry:n});let f=Fbl(A,n),I=Hte.ppath.join(f,`${Dbl(e)}.json`),C=null;if(!r.lockfileNeedsRefresh&&(C=await Rbl(I),C)){if(typeof o<"u"&&typeof C.metadata.versions[o]<"u")return C.metadata;if(A.get("enableOfflineMode")){let b=structuredClone(C.metadata),E=new Set;if(t){for(let B of Object.keys(b.versions)){let F=ET.structUtils.makeLocator(e,`npm:${B}`),Q=t.getLocatorMirrorPath(F);(!Q||!Hte.xfs.existsSync(Q))&&(delete b.versions[B],E.add(B))}let N=b["dist-tags"].latest;if(E.has(N)){let B=Object.keys(C.metadata.versions).sort(wbl.default.compare),F=B.indexOf(N);for(;E.has(B[F])&&F>=0;)F-=1;F>=0?b["dist-tags"].latest=B[F]:delete b["dist-tags"].latest}}return b}}return await Nbl(I,e,{...l,configuration:A,cached:C,registry:n,headers:a,version:o})}var Jds=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function xbl(e){return{"dist-tags":e["dist-tags"],versions:Object.fromEntries(Object.entries(e.versions).map(([t,r])=>[t,(0,Bbl.pick)(r,Jds)])),time:e.time}}var Gbl=ET.hashUtils.makeHash("time",...Jds).slice(0,6);function Fbl(e,t){let r=Zbl(e),n=new URL(t);return Hte.ppath.join(r,Gbl,n.hostname)}function Zbl(e){return Hte.ppath.join(e.get("globalFolder"),"metadata/npm")}async function Uds(e,{configuration:t,headers:r,ident:n,authType:a,allowOidc:o,registry:l,...A}){l=u7e(t,{ident:n,registry:l}),n&&n.scope&&typeof a>"u"&&(a=GH.BEST_EFFORT);let f=await xGt(l,{authType:a,allowOidc:o,configuration:t,ident:n});f&&(r={...r,authorization:f});try{return await ET.httpUtils.get(e.charAt(0)==="/"?`${l}${e}`:e,{configuration:t,headers:r,...A})}catch(I){throw await wue(I,{registry:l,configuration:t,headers:r}),I}}async function Lbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.post(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E)||I)throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.post(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Vbl(e,t,{attemptedAs:r,configuration:n,headers:a,ident:o,authType:l=GH.ALWAYS_AUTH,allowOidc:A,registry:f,otp:I,...C}){f=u7e(n,{ident:o,registry:f});let b=await xGt(f,{authType:l,allowOidc:A,configuration:n,ident:o});b&&(a={...a,authorization:b}),I&&(a={...a,...SGe(I)});try{return await ET.httpUtils.put(f+e,t,{configuration:n,headers:a,...C})}catch(E){if(!GGt(E))throw await wue(E,{attemptedAs:r,registry:f,configuration:n,headers:a}),E;I=await dUr(E,{configuration:n});let N={...a,...SGe(I)};try{return await ET.httpUtils.put(`${f}${e}`,t,{configuration:n,headers:N,...C})}catch(B){throw await wue(B,{attemptedAs:r,registry:f,configuration:n,headers:a}),B}}}async function Pbl(e,{attemptedAs:t,configuration:r,headers:n,ident:a,authType:o=GH.ALWAYS_AUTH,allowOidc:l,registry:A,otp:f,...I}){A=u7e(r,{ident:a,registry:A});let C=await xGt(A,{authType:o,allowOidc:l,configuration:r,ident:a});C&&(n={...n,authorization:C}),f&&(n={...n,...SGe(f)});try{return await ET.httpUtils.del(A+e,{configuration:r,headers:n,...I})}catch(b){if(!GGt(b)||f)throw await wue(b,{attemptedAs:t,registry:A,configuration:r,headers:n}),b;f=await dUr(b,{configuration:r});let E={...n,...SGe(f)};try{return await ET.httpUtils.del(`${A}${e}`,{configuration:r,headers:E,...I})}catch(N){throw await wue(N,{attemptedAs:t,registry:A,configuration:r,headers:n}),N}}}function u7e(e,{ident:t,registry:r}){if(typeof r>"u"&&t)return gUr.getScopeRegistry(t.scope,{configuration:e});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return gUr.normalizeRegistry(r)}async function xGt(e,{authType:t=GH.CONFIGURATION,allowOidc:r=!1,configuration:n,ident:a}){let o=gUr.getAuthConfiguration(e,{configuration:n,ident:a}),l=Wbl(o,t);if(!l)return null;let A=await n.reduceHook(f=>f.getNpmAuthenticationHeader,void 0,e,{configuration:n,ident:a});if(A)return A;if(o.get("npmAuthToken"))return`Bearer ${o.get("npmAuthToken")}`;if(o.get("npmAuthIdent")){let f=o.get("npmAuthIdent");return f.includes(":")?`Basic ${Buffer.from(f).toString("base64")}`:`Basic ${f}`}if(r&&a){let f=await Mbl(e,{configuration:n,ident:a});if(f)return`Bearer ${f}`}if(l&&t!==GH.BEST_EFFORT)throw new Bue.ReportError(Bue.MessageName.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function Wbl(e,t){switch(t){case GH.CONFIGURATION:return e.get("npmAlwaysAuth");case GH.BEST_EFFORT:case GH.ALWAYS_AUTH:return!0;case GH.NO_AUTH:return!1;default:throw new Error("Unreachable")}}async function Obl(e,t,{configuration:r}){if(typeof t>"u"||typeof t.authorization>"u")return"an anonymous user";try{return(await ET.httpUtils.get(new URL(`${e}/-/whoami`).href,{configuration:r,headers:t,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function dUr(e,{configuration:t}){let r=e.originalError?.response.headers["npm-notice"];if(r&&(await ET.StreamReport.start({configuration:t,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(Bue.MessageName.UNNAMED,r.replace(/(https?:\/\/\S+)/g,ET.formatUtils.pretty(t,"$1",ET.formatUtils.Type.URL))),!process.env.YARN_IS_TEST_ENV){let o=r.match(/open (https?:\/\/\S+)/i);if(o&&ET.nodeUtils.openUrl){let{openNow:l}=await(0,Hds.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});l&&(await ET.nodeUtils.openUrl(o[1])||(a.reportSeparator(),a.reportWarning(Bue.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:n}=await(0,Hds.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` -`),n}function GGt(e){if(e.originalError?.name!=="HTTPError")return!1;try{return(e.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function SGe(e){return{"npm-otp":e}}async function Obl(e,{configuration:t,ident:r}){let n=null;if(process.env.GITLAB_CI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(e).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,o=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);o.searchParams.append("audience",a),n=(await ET.httpUtils.get(o.href,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!n)return null;try{return(await ET.httpUtils.post(`${e}/-/npm/v1/oidc/token/exchange/package${AUr(r)}`,null,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${n}`}})).token||null}catch{}return null}});var zds=H(FGt=>{"use strict";Object.defineProperty(FGt,"__esModule",{value:!0});FGt.NpmHttpFetcher=void 0;var jds=(Pa(),vi(Va)),BGe=Bn(),Mbl=jds.__importDefault(UC()),Hbl=bGe(),Kds=jds.__importStar(vGe()),pUr=class{supports(t,r){if(!t.reference.startsWith(Hbl.PROTOCOL))return!1;let{selector:n,params:a}=BGe.structUtils.parseRange(t.reference);return!(!Mbl.default.valid(n)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${BGe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:BGe.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let{params:n}=BGe.structUtils.parseRange(t.reference);if(n===null||typeof n.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Kds.get(n.__archiveUrl,{customErrorMessage:Kds.customPackageError,configuration:r.project.configuration,ident:t});return await BGe.tgzUtils.convertToZip(a,{configuration:r.project.configuration,prefixPath:BGe.structUtils.getIdentVendorPath(t),stripComponents:1})}};FGt.NpmHttpFetcher=pUr});var qds=H(LGt=>{"use strict";Object.defineProperty(LGt,"__esModule",{value:!0});LGt.NpmRemapResolver=void 0;var ZGt=Bn(),g7e=bGe(),fUr=class{supportsDescriptor(t,r){return!(!t.range.startsWith(g7e.PROTOCOL)||!ZGt.structUtils.tryParseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){let n=r.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return r.resolver.getResolutionDependencies(n,r)}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return await n.resolver.getCandidates(a,r,n)}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return a.resolver.getSatisfying(o,r,n,a)}resolve(t,r){throw new Error("Unreachable")}};LGt.NpmRemapResolver=fUr});var PGt=H(VGt=>{"use strict";Object.defineProperty(VGt,"__esModule",{value:!0});VGt.NpmSemverFetcher=void 0;var hUr=(Pa(),vi(Va)),A7e=Bn(),$ds=Bn(),Ybl=hUr.__importDefault(UC()),eps=bGe(),Qbl=hUr.__importStar(c0e()),d7e=hUr.__importStar(vGe()),IUr=class e{supports(t,r){if(!t.reference.startsWith(eps.PROTOCOL))return!1;let n=new URL(t.reference);return!(!Ybl.default.valid(n.pathname)||n.searchParams.has("__archiveUrl"))}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${A7e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:A7e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n;try{n=await d7e.get(e.getLocatorUrl(t),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}catch{n=await d7e.get(e.getLocatorUrl(t).replace(/%2f/g,"/"),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}return await A7e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:A7e.structUtils.getIdentVendorPath(t),stripComponents:1})}static isConventionalTarballUrl(t,r,{configuration:n}){let a=Qbl.getScopeRegistry(t.scope,{configuration:n}),o=e.getLocatorUrl(t);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+o||r===a+o.replace(/%2f/g,"/")}static getLocatorUrl(t){let r=A7e.semverUtils.clean(t.reference.slice(eps.PROTOCOL.length));if(r===null)throw new $ds.ReportError($ds.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${d7e.getIdentUrl(t)}/-/${t.name}-${r}.tgz`}};VGt.NpmSemverFetcher=IUr});var ips=H(OGt=>{"use strict";Object.defineProperty(OGt,"__esModule",{value:!0});OGt.NpmSemverResolver=void 0;var nps=(Pa(),vi(Va)),uL=Bn(),wGe=Bn(),Xbl=Bn(),l0e=Bn(),tps=nps.__importDefault(UC()),Jbl=PGt(),I6=bGe(),Ubl=c0e(),rps=nps.__importStar(vGe()),WGt=l0e.structUtils.makeIdent(null,"node-gyp"),Kbl=/\b(node-gyp|prebuild-install)\b/,mUr=class{supportsDescriptor(t,r){return t.range.startsWith(I6.PROTOCOL)?!!wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length)):!1}supportsLocator(t,r){if(!t.reference.startsWith(I6.PROTOCOL))return!1;let{selector:n}=l0e.structUtils.parseRange(t.reference);return!!tps.default.valid(n)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(a===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);let o=await rps.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project,version:tps.default.valid(a.raw)?a.raw:void 0}),l=uL.miscUtils.mapAndFilter(Object.keys(o.versions),C=>{try{let b=new wGe.semverUtils.SemVer(C);if(a.test(b))return b}catch{}return uL.miscUtils.mapAndFilter.skip}),A=l.filter(C=>(0,Ubl.isPackageApproved)({configuration:n.project.configuration,ident:t,version:C.raw,publishTimes:o.time}));if(l.length>0&&A.length===0)throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`All versions satisfying "${t.range.slice(I6.PROTOCOL.length)}" are quarantined`);let f=A.filter(C=>!o.versions[C.raw].deprecated),I=f.length>0?f:A;return I.sort((C,b)=>-C.compare(b)),I.map(C=>{let b=l0e.structUtils.makeLocator(t,`${I6.PROTOCOL}${C.raw}`),E=o.versions[C.raw].dist.tarball;return Jbl.NpmSemverFetcher.isConventionalTarballUrl(b,E,{configuration:n.project.configuration})?b:l0e.structUtils.bindLocator(b,{__archiveUrl:E})})}async getSatisfying(t,r,n,a){let o=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(o===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);return{locators:uL.miscUtils.mapAndFilter(n,f=>{if(f.identHash!==t.identHash)return uL.miscUtils.mapAndFilter.skip;let I=l0e.structUtils.tryParseRange(f.reference,{requireProtocol:I6.PROTOCOL});if(!I)return uL.miscUtils.mapAndFilter.skip;let C=new wGe.semverUtils.SemVer(I.selector);return o.test(C)?{locator:f,version:C}:uL.miscUtils.mapAndFilter.skip}).sort((f,I)=>-f.version.compare(I.version)).map(({locator:f})=>f),sorted:!0}}async resolve(t,r){let{selector:n}=l0e.structUtils.parseRange(t.reference),a=wGe.semverUtils.clean(n);if(a===null)throw new uL.ReportError(uL.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let o=await rps.getPackageMetadata(t,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(o,"versions"))throw new uL.ReportError(uL.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(o.versions,a))throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`Registry failed to return reference "${a}"`);let l=new uL.Manifest;if(l.load(o.versions[a]),!l.dependencies.has(WGt.identHash)&&!l.peerDependencies.has(WGt.identHash)){for(let A of l.scripts.values())if(A.match(Kbl)){l.dependencies.set(WGt.identHash,l0e.structUtils.makeDescriptor(WGt,"latest"));break}}return{...t,version:a,languageName:"node",linkType:Xbl.LinkType.HARD,conditions:l.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(l.dependencies),peerDependencies:l.peerDependencies,dependenciesMeta:l.dependenciesMeta,peerDependenciesMeta:l.peerDependenciesMeta,bin:l.bin}}};OGt.NpmSemverResolver=mUr});var aps=H(MGt=>{"use strict";Object.defineProperty(MGt,"__esModule",{value:!0});MGt.NpmTagResolver=void 0;var ops=(Pa(),vi(Va)),u0e=Bn(),p7e=Bn(),CUr=ops.__importDefault(UC()),jbl=PGt(),TGe=bGe(),sps=c0e(),zbl=ops.__importStar(vGe()),_Ur=class{supportsDescriptor(t,r){return!(!t.range.startsWith(TGe.PROTOCOL)||!u0e.TAG_REGEXP.test(t.range.slice(TGe.PROTOCOL.length)))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(TGe.PROTOCOL.length),o=await zbl.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project});if(!Object.hasOwn(o,"dist-tags"))throw new u0e.ReportError(u0e.MessageName.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let l=o["dist-tags"];if(!Object.hasOwn(l,a))throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`Registry failed to return tag "${a}"`);let A=Object.keys(o.versions),f=o.time,I=l[a];if(a==="latest"&&!(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:I,publishTimes:f})){let E=I.includes("-"),N=CUr.default.rsort(A).find(B=>CUr.default.lt(B,I)&&(E||!B.includes("-"))&&(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:B,publishTimes:f}));if(!N)throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`The version for tag "${a}" is quarantined, and no lower version is available`);I=N}let C=p7e.structUtils.makeLocator(t,`${TGe.PROTOCOL}${I}`),b=o.versions[I].dist.tarball;return jbl.NpmSemverFetcher.isConventionalTarballUrl(C,b,{configuration:n.project.configuration})?[C]:[p7e.structUtils.bindLocator(C,{__archiveUrl:b})]}async getSatisfying(t,r,n,a){let o=[];for(let l of n){if(l.identHash!==t.identHash)continue;let A=p7e.structUtils.tryParseRange(l.reference,{requireProtocol:TGe.PROTOCOL});if(!(!A||!CUr.default.valid(A.selector))){if(A.params?.__archiveUrl){let f=p7e.structUtils.makeRange({protocol:TGe.PROTOCOL,selector:A.selector,source:null,params:null}),[I]=await a.resolver.getCandidates(p7e.structUtils.makeDescriptor(t,f),r,a);if(l.reference!==I.reference)continue}o.push(l)}}return{locators:o,sorted:!1}}async resolve(t,r){throw new Error("Unreachable")}};MGt.NpmTagResolver=_Ur});var rF=H(AL=>{"use strict";var qbl=AL&&AL.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AL,"__esModule",{value:!0});AL.Minipass=AL.isWritable=AL.isReadable=AL.isStream=void 0;var cps=typeof process=="object"&&process?process:{stdout:null,stderr:null},wUr=wt("node:events"),Aps=qbl(wt("node:stream")),$bl=wt("node:string_decoder"),eEl=e=>!!e&&typeof e=="object"&&(e instanceof KGt||e instanceof Aps.default||(0,AL.isReadable)(e)||(0,AL.isWritable)(e));AL.isStream=eEl;var tEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Aps.default.Writable.prototype.pipe;AL.isReadable=tEl;var rEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function";AL.isWritable=rEl;var Yte=Symbol("EOF"),Qte=Symbol("maybeEmitEnd"),Tue=Symbol("emittedEnd"),HGt=Symbol("emittingEnd"),f7e=Symbol("emittedError"),YGt=Symbol("closed"),lps=Symbol("read"),QGt=Symbol("flush"),ups=Symbol("flushChunk"),$4=Symbol("encoding"),RGe=Symbol("decoder"),yD=Symbol("flowing"),I7e=Symbol("paused"),NGe=Symbol("resume"),bD=Symbol("buffer"),gL=Symbol("pipes"),ED=Symbol("bufferLength"),yUr=Symbol("bufferPush"),XGt=Symbol("bufferShift"),tF=Symbol("objectMode"),gw=Symbol("destroyed"),bUr=Symbol("error"),EUr=Symbol("emitData"),gps=Symbol("emitEnd"),SUr=Symbol("emitEnd2"),h6=Symbol("async"),vUr=Symbol("abort"),JGt=Symbol("aborted"),h7e=Symbol("signal"),g0e=Symbol("dataListeners"),HO=Symbol("discarded"),m7e=e=>Promise.resolve().then(e),nEl=e=>e(),iEl=e=>e==="end"||e==="finish"||e==="prefinish",sEl=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,oEl=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),UGt=class{src;dest;opts;ondrain;constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[NGe](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},BUr=class extends UGt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}},aEl=e=>!!e.objectMode,cEl=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",KGt=class extends wUr.EventEmitter{[yD]=!1;[I7e]=!1;[gL]=[];[bD]=[];[tF];[$4];[h6];[RGe];[Yte]=!1;[Tue]=!1;[HGt]=!1;[YGt]=!1;[f7e]=null;[ED]=0;[gw]=!1;[h7e];[JGt]=!1;[g0e]=0;[HO]=!1;writable=!0;readable=!0;constructor(...t){let r=t[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");aEl(r)?(this[tF]=!0,this[$4]=null):cEl(r)?(this[$4]=r.encoding,this[tF]=!1):(this[tF]=!1,this[$4]=null),this[h6]=!!r.async,this[RGe]=this[$4]?new $bl.StringDecoder(this[$4]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[bD]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[gL]});let{signal:n}=r;n&&(this[h7e]=n,n.aborted?this[vUr]():n.addEventListener("abort",()=>this[vUr]()))}get bufferLength(){return this[ED]}get encoding(){return this[$4]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[tF]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[h6]}set async(t){this[h6]=this[h6]||!!t}[vUr](){this[JGt]=!0,this.emit("abort",this[h7e]?.reason),this.destroy(this[h7e]?.reason)}get aborted(){return this[JGt]}set aborted(t){}write(t,r,n){if(this[JGt])return!1;if(this[Yte])throw new Error("write after end");if(this[gw])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[h6]?m7e:nEl;if(!this[tF]&&!Buffer.isBuffer(t)){if(oEl(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(sEl(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[tF]?(this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):t.length?(typeof t=="string"&&!(r===this[$4]&&!this[RGe]?.lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[$4]&&(t=this[RGe].write(t)),this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):(this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD])}read(t){if(this[gw])return null;if(this[HO]=!1,this[ED]===0||t===0||t&&t>this[ED])return this[Qte](),null;this[tF]&&(t=null),this[bD].length>1&&!this[tF]&&(this[bD]=[this[$4]?this[bD].join(""):Buffer.concat(this[bD],this[ED])]);let r=this[lps](t||null,this[bD][0]);return this[Qte](),r}[lps](t,r){if(this[tF])this[XGt]();else{let n=r;t===n.length||t===null?this[XGt]():typeof n=="string"?(this[bD][0]=n.slice(t),r=n.slice(0,t),this[ED]-=t):(this[bD][0]=n.subarray(t),r=n.subarray(0,t),this[ED]-=t)}return this.emit("data",r),!this[bD].length&&!this[Yte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r="utf8"),t!==void 0&&this.write(t,r),n&&this.once("end",n),this[Yte]=!0,this.writable=!1,(this[yD]||!this[I7e])&&this[Qte](),this}[NGe](){this[gw]||(!this[g0e]&&!this[gL].length&&(this[HO]=!0),this[I7e]=!1,this[yD]=!0,this.emit("resume"),this[bD].length?this[QGt]():this[Yte]?this[Qte]():this.emit("drain"))}resume(){return this[NGe]()}pause(){this[yD]=!1,this[I7e]=!0,this[HO]=!1}get destroyed(){return this[gw]}get flowing(){return this[yD]}get paused(){return this[I7e]}[yUr](t){this[tF]?this[ED]+=1:this[ED]+=t.length,this[bD].push(t)}[XGt](){return this[tF]?this[ED]-=1:this[ED]-=this[bD][0].length,this[bD].shift()}[QGt](t=!1){do;while(this[ups](this[XGt]())&&this[bD].length);!t&&!this[bD].length&&!this[Yte]&&this.emit("drain")}[ups](t){return this.emit("data",t),this[yD]}pipe(t,r){if(this[gw])return t;this[HO]=!1;let n=this[Tue];return r=r||{},t===cps.stdout||t===cps.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this[gL].push(r.proxyErrors?new BUr(this,t,r):new UGt(this,t,r)),this[h6]?m7e(()=>this[NGe]()):this[NGe]()),t}unpipe(t){let r=this[gL].find(n=>n.dest===t);r&&(this[gL].length===1?(this[yD]&&this[g0e]===0&&(this[yD]=!1),this[gL]=[]):this[gL].splice(this[gL].indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);if(t==="data")this[HO]=!1,this[g0e]++,!this[gL].length&&!this[yD]&&this[NGe]();else if(t==="readable"&&this[ED]!==0)super.emit("readable");else if(iEl(t)&&this[Tue])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[f7e]){let a=r;this[h6]?m7e(()=>a.call(this,this[f7e])):a.call(this,this[f7e])}return n}removeListener(t,r){return this.off(t,r)}off(t,r){let n=super.off(t,r);return t==="data"&&(this[g0e]=this.listeners("data").length,this[g0e]===0&&!this[HO]&&!this[gL].length&&(this[yD]=!1)),n}removeAllListeners(t){let r=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[g0e]=0,!this[HO]&&!this[gL].length&&(this[yD]=!1)),r}get emittedEnd(){return this[Tue]}[Qte](){!this[HGt]&&!this[Tue]&&!this[gw]&&this[bD].length===0&&this[Yte]&&(this[HGt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[YGt]&&this.emit("close"),this[HGt]=!1)}emit(t,...r){let n=r[0];if(t!=="error"&&t!=="close"&&t!==gw&&this[gw])return!1;if(t==="data")return!this[tF]&&!n?!1:this[h6]?(m7e(()=>this[EUr](n)),!0):this[EUr](n);if(t==="end")return this[gps]();if(t==="close"){if(this[YGt]=!0,!this[Tue]&&!this[gw])return!1;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[f7e]=n,super.emit(bUr,n);let o=!this[h7e]||this.listeners("error").length?super.emit("error",n):!1;return this[Qte](),o}else if(t==="resume"){let o=super.emit("resume");return this[Qte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,...r);return this[Qte](),a}[EUr](t){for(let n of this[gL])n.dest.write(t)===!1&&this.pause();let r=this[HO]?!1:super.emit("data",t);return this[Qte](),r}[gps](){return this[Tue]?!1:(this[Tue]=!0,this.readable=!1,this[h6]?(m7e(()=>this[SUr]()),!0):this[SUr]())}[SUr](){if(this[RGe]){let r=this[RGe].end();if(r){for(let n of this[gL])n.dest.write(r);this[HO]||super.emit("data",r)}}for(let r of this[gL])r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[tF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[tF]||(t.dataLength+=n.length)}),await r,t}async concat(){if(this[tF])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[$4]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,r)=>{this.on(gw,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[HO]=!1;let t=!1,r=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[Yte])return r();let o,l,A=b=>{this.off("data",f),this.off("end",I),this.off(gw,C),r(),l(b)},f=b=>{this.off("error",A),this.off("end",I),this.off(gw,C),this.pause(),o({value:b,done:!!this[Yte]})},I=()=>{this.off("error",A),this.off("data",f),this.off(gw,C),r(),o({done:!0,value:void 0})},C=()=>A(new Error("stream destroyed"));return new Promise((b,E)=>{l=E,o=b,this.once(gw,C),this.once("error",A),this.once("end",I),this.once("data",f)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HO]=!1;let t=!1,r=()=>(this.pause(),this.off(bUr,r),this.off(gw,r),this.off("end",r),t=!0,{done:!0,value:void 0}),n=()=>{if(t)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(bUr,r),this.once(gw,r),{next:n,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(t){if(this[gw])return t?this.emit("error",t):this.emit(gw),this;this[gw]=!0,this[HO]=!0,this[bD].length=0,this[ED]=0;let r=this;return typeof r.close=="function"&&!this[YGt]&&r.close(),t?this.emit("error",t):this.emit(gw),this}static get isStream(){return AL.isStream}};AL.Minipass=KGt});var Jte=H((Org,m6)=>{"use strict";var _7e=wt("crypto"),{Minipass:lEl}=rF(),RUr=["sha512","sha384","sha256"],DUr=["sha512"],uEl=/^[a-z0-9+/]+(?:=?=?)$/i,gEl=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,AEl=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,dEl=/^[\x21-\x7E]+$/,y7e=e=>e?.length?`?${e.join("?")}`:"",NUr=class extends lEl{#e;#t;#n;constructor(t){super(),this.size=0,this.opts=t,this.#r(),t?.algorithms?this.algorithms=[...t.algorithms]:this.algorithms=[...DUr],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(_7e.createHash)}#r(){this.sri=this.opts?.integrity?YO(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=y7e(this.opts?.options)}on(t,r){return t==="size"&&this.#t?r(this.#t):t==="integrity"&&this.#e?r(this.#e):t==="verified"&&this.#n?r(this.#n):super.on(t,r)}emit(t,r){return t==="end"&&this.#i(),super.emit(t,r)}write(t){return this.size+=t.length,this.hashes.forEach(r=>r.update(t)),super.write(t)}#i(){this.goodSri||this.#r();let t=YO(this.hashes.map((n,a)=>`${this.algorithms[a]}-${n.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&t.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let n=new Error(`stream size mismatch when checking ${this.sri}. +`),n}function GGt(e){if(e.originalError?.name!=="HTTPError")return!1;try{return(e.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function SGe(e){return{"npm-otp":e}}async function Mbl(e,{configuration:t,ident:r}){let n=null;if(process.env.GITLAB_CI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.CIRCLECI)n=process.env.NPM_ID_TOKEN||null;else if(process.env.GITHUB_ACTIONS){if(!(process.env.ACTIONS_ID_TOKEN_REQUEST_URL&&process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN))return null;let a=`npm:${new URL(e).host.replace("registry.yarnpkg.com","registry.npmjs.org").replace("yarn.npmjs.org","registry.npmjs.org")}`,o=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);o.searchParams.append("audience",a),n=(await ET.httpUtils.get(o.href,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).value}if(!n)return null;try{return(await ET.httpUtils.post(`${e}/-/npm/v1/oidc/token/exchange/package${AUr(r)}`,null,{configuration:t,jsonResponse:!0,headers:{Authorization:`Bearer ${n}`}})).token||null}catch{}return null}});var zds=H(FGt=>{"use strict";Object.defineProperty(FGt,"__esModule",{value:!0});FGt.NpmHttpFetcher=void 0;var jds=(Pa(),vi(Va)),BGe=Bn(),Hbl=jds.__importDefault(UC()),Ybl=bGe(),Kds=jds.__importStar(vGe()),pUr=class{supports(t,r){if(!t.reference.startsWith(Ybl.PROTOCOL))return!1;let{selector:n,params:a}=BGe.structUtils.parseRange(t.reference);return!(!Hbl.default.valid(n)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${BGe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:BGe.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let{params:n}=BGe.structUtils.parseRange(t.reference);if(n===null||typeof n.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Kds.get(n.__archiveUrl,{customErrorMessage:Kds.customPackageError,configuration:r.project.configuration,ident:t});return await BGe.tgzUtils.convertToZip(a,{configuration:r.project.configuration,prefixPath:BGe.structUtils.getIdentVendorPath(t),stripComponents:1})}};FGt.NpmHttpFetcher=pUr});var qds=H(LGt=>{"use strict";Object.defineProperty(LGt,"__esModule",{value:!0});LGt.NpmRemapResolver=void 0;var ZGt=Bn(),g7e=bGe(),fUr=class{supportsDescriptor(t,r){return!(!t.range.startsWith(g7e.PROTOCOL)||!ZGt.structUtils.tryParseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){let n=r.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return r.resolver.getResolutionDependencies(n,r)}async getCandidates(t,r,n){let a=n.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return await n.resolver.getCandidates(a,r,n)}async getSatisfying(t,r,n,a){let o=a.project.configuration.normalizeDependency(ZGt.structUtils.parseDescriptor(t.range.slice(g7e.PROTOCOL.length),!0));return a.resolver.getSatisfying(o,r,n,a)}resolve(t,r){throw new Error("Unreachable")}};LGt.NpmRemapResolver=fUr});var PGt=H(VGt=>{"use strict";Object.defineProperty(VGt,"__esModule",{value:!0});VGt.NpmSemverFetcher=void 0;var hUr=(Pa(),vi(Va)),A7e=Bn(),$ds=Bn(),Qbl=hUr.__importDefault(UC()),eps=bGe(),Xbl=hUr.__importStar(c0e()),d7e=hUr.__importStar(vGe()),IUr=class e{supports(t,r){if(!t.reference.startsWith(eps.PROTOCOL))return!1;let n=new URL(t.reference);return!(!Qbl.default.valid(n.pathname)||n.searchParams.has("__archiveUrl"))}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${A7e.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:A7e.structUtils.getIdentVendorPath(t),checksum:l}}async fetchFromNetwork(t,r){let n;try{n=await d7e.get(e.getLocatorUrl(t),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}catch{n=await d7e.get(e.getLocatorUrl(t).replace(/%2f/g,"/"),{customErrorMessage:d7e.customPackageError,configuration:r.project.configuration,ident:t})}return await A7e.tgzUtils.convertToZip(n,{configuration:r.project.configuration,prefixPath:A7e.structUtils.getIdentVendorPath(t),stripComponents:1})}static isConventionalTarballUrl(t,r,{configuration:n}){let a=Xbl.getScopeRegistry(t.scope,{configuration:n}),o=e.getLocatorUrl(t);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+o||r===a+o.replace(/%2f/g,"/")}static getLocatorUrl(t){let r=A7e.semverUtils.clean(t.reference.slice(eps.PROTOCOL.length));if(r===null)throw new $ds.ReportError($ds.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${d7e.getIdentUrl(t)}/-/${t.name}-${r}.tgz`}};VGt.NpmSemverFetcher=IUr});var ips=H(OGt=>{"use strict";Object.defineProperty(OGt,"__esModule",{value:!0});OGt.NpmSemverResolver=void 0;var nps=(Pa(),vi(Va)),uL=Bn(),wGe=Bn(),Jbl=Bn(),l0e=Bn(),tps=nps.__importDefault(UC()),Ubl=PGt(),I6=bGe(),Kbl=c0e(),rps=nps.__importStar(vGe()),WGt=l0e.structUtils.makeIdent(null,"node-gyp"),jbl=/\b(node-gyp|prebuild-install)\b/,mUr=class{supportsDescriptor(t,r){return t.range.startsWith(I6.PROTOCOL)?!!wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length)):!1}supportsLocator(t,r){if(!t.reference.startsWith(I6.PROTOCOL))return!1;let{selector:n}=l0e.structUtils.parseRange(t.reference);return!!tps.default.valid(n)}shouldPersistResolution(t,r){return!0}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(a===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);let o=await rps.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project,version:tps.default.valid(a.raw)?a.raw:void 0}),l=uL.miscUtils.mapAndFilter(Object.keys(o.versions),C=>{try{let b=new wGe.semverUtils.SemVer(C);if(a.test(b))return b}catch{}return uL.miscUtils.mapAndFilter.skip}),A=l.filter(C=>(0,Kbl.isPackageApproved)({configuration:n.project.configuration,ident:t,version:C.raw,publishTimes:o.time}));if(l.length>0&&A.length===0)throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`All versions satisfying "${t.range.slice(I6.PROTOCOL.length)}" are quarantined`);let f=A.filter(C=>!o.versions[C.raw].deprecated),I=f.length>0?f:A;return I.sort((C,b)=>-C.compare(b)),I.map(C=>{let b=l0e.structUtils.makeLocator(t,`${I6.PROTOCOL}${C.raw}`),E=o.versions[C.raw].dist.tarball;return Ubl.NpmSemverFetcher.isConventionalTarballUrl(b,E,{configuration:n.project.configuration})?b:l0e.structUtils.bindLocator(b,{__archiveUrl:E})})}async getSatisfying(t,r,n,a){let o=wGe.semverUtils.validRange(t.range.slice(I6.PROTOCOL.length));if(o===null)throw new Error(`Expected a valid range, got ${t.range.slice(I6.PROTOCOL.length)}`);return{locators:uL.miscUtils.mapAndFilter(n,f=>{if(f.identHash!==t.identHash)return uL.miscUtils.mapAndFilter.skip;let I=l0e.structUtils.tryParseRange(f.reference,{requireProtocol:I6.PROTOCOL});if(!I)return uL.miscUtils.mapAndFilter.skip;let C=new wGe.semverUtils.SemVer(I.selector);return o.test(C)?{locator:f,version:C}:uL.miscUtils.mapAndFilter.skip}).sort((f,I)=>-f.version.compare(I.version)).map(({locator:f})=>f),sorted:!0}}async resolve(t,r){let{selector:n}=l0e.structUtils.parseRange(t.reference),a=wGe.semverUtils.clean(n);if(a===null)throw new uL.ReportError(uL.MessageName.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let o=await rps.getPackageMetadata(t,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(o,"versions"))throw new uL.ReportError(uL.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(o.versions,a))throw new uL.ReportError(uL.MessageName.REMOTE_NOT_FOUND,`Registry failed to return reference "${a}"`);let l=new uL.Manifest;if(l.load(o.versions[a]),!l.dependencies.has(WGt.identHash)&&!l.peerDependencies.has(WGt.identHash)){for(let A of l.scripts.values())if(A.match(jbl)){l.dependencies.set(WGt.identHash,l0e.structUtils.makeDescriptor(WGt,"latest"));break}}return{...t,version:a,languageName:"node",linkType:Jbl.LinkType.HARD,conditions:l.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(l.dependencies),peerDependencies:l.peerDependencies,dependenciesMeta:l.dependenciesMeta,peerDependenciesMeta:l.peerDependenciesMeta,bin:l.bin}}};OGt.NpmSemverResolver=mUr});var aps=H(MGt=>{"use strict";Object.defineProperty(MGt,"__esModule",{value:!0});MGt.NpmTagResolver=void 0;var ops=(Pa(),vi(Va)),u0e=Bn(),p7e=Bn(),CUr=ops.__importDefault(UC()),zbl=PGt(),TGe=bGe(),sps=c0e(),qbl=ops.__importStar(vGe()),_Ur=class{supportsDescriptor(t,r){return!(!t.range.startsWith(TGe.PROTOCOL)||!u0e.TAG_REGEXP.test(t.range.slice(TGe.PROTOCOL.length)))}supportsLocator(t,r){return!1}shouldPersistResolution(t,r){throw new Error("Unreachable")}bindDescriptor(t,r,n){return t}getResolutionDependencies(t,r){return{}}async getCandidates(t,r,n){let a=t.range.slice(TGe.PROTOCOL.length),o=await qbl.getPackageMetadata(t,{cache:n.fetchOptions?.cache,project:n.project});if(!Object.hasOwn(o,"dist-tags"))throw new u0e.ReportError(u0e.MessageName.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let l=o["dist-tags"];if(!Object.hasOwn(l,a))throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`Registry failed to return tag "${a}"`);let A=Object.keys(o.versions),f=o.time,I=l[a];if(a==="latest"&&!(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:I,publishTimes:f})){let E=I.includes("-"),N=CUr.default.rsort(A).find(B=>CUr.default.lt(B,I)&&(E||!B.includes("-"))&&(0,sps.isPackageApproved)({configuration:n.project.configuration,ident:t,version:B,publishTimes:f}));if(!N)throw new u0e.ReportError(u0e.MessageName.REMOTE_NOT_FOUND,`The version for tag "${a}" is quarantined, and no lower version is available`);I=N}let C=p7e.structUtils.makeLocator(t,`${TGe.PROTOCOL}${I}`),b=o.versions[I].dist.tarball;return zbl.NpmSemverFetcher.isConventionalTarballUrl(C,b,{configuration:n.project.configuration})?[C]:[p7e.structUtils.bindLocator(C,{__archiveUrl:b})]}async getSatisfying(t,r,n,a){let o=[];for(let l of n){if(l.identHash!==t.identHash)continue;let A=p7e.structUtils.tryParseRange(l.reference,{requireProtocol:TGe.PROTOCOL});if(!(!A||!CUr.default.valid(A.selector))){if(A.params?.__archiveUrl){let f=p7e.structUtils.makeRange({protocol:TGe.PROTOCOL,selector:A.selector,source:null,params:null}),[I]=await a.resolver.getCandidates(p7e.structUtils.makeDescriptor(t,f),r,a);if(l.reference!==I.reference)continue}o.push(l)}}return{locators:o,sorted:!1}}async resolve(t,r){throw new Error("Unreachable")}};MGt.NpmTagResolver=_Ur});var rF=H(AL=>{"use strict";var $bl=AL&&AL.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AL,"__esModule",{value:!0});AL.Minipass=AL.isWritable=AL.isReadable=AL.isStream=void 0;var cps=typeof process=="object"&&process?process:{stdout:null,stderr:null},wUr=wt("node:events"),Aps=$bl(wt("node:stream")),eEl=wt("node:string_decoder"),tEl=e=>!!e&&typeof e=="object"&&(e instanceof KGt||e instanceof Aps.default||(0,AL.isReadable)(e)||(0,AL.isWritable)(e));AL.isStream=tEl;var rEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==Aps.default.Writable.prototype.pipe;AL.isReadable=rEl;var nEl=e=>!!e&&typeof e=="object"&&e instanceof wUr.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function";AL.isWritable=nEl;var Yte=Symbol("EOF"),Qte=Symbol("maybeEmitEnd"),Tue=Symbol("emittedEnd"),HGt=Symbol("emittingEnd"),f7e=Symbol("emittedError"),YGt=Symbol("closed"),lps=Symbol("read"),QGt=Symbol("flush"),ups=Symbol("flushChunk"),$4=Symbol("encoding"),RGe=Symbol("decoder"),yD=Symbol("flowing"),I7e=Symbol("paused"),NGe=Symbol("resume"),bD=Symbol("buffer"),gL=Symbol("pipes"),ED=Symbol("bufferLength"),yUr=Symbol("bufferPush"),XGt=Symbol("bufferShift"),tF=Symbol("objectMode"),gw=Symbol("destroyed"),bUr=Symbol("error"),EUr=Symbol("emitData"),gps=Symbol("emitEnd"),SUr=Symbol("emitEnd2"),h6=Symbol("async"),vUr=Symbol("abort"),JGt=Symbol("aborted"),h7e=Symbol("signal"),g0e=Symbol("dataListeners"),HO=Symbol("discarded"),m7e=e=>Promise.resolve().then(e),iEl=e=>e(),sEl=e=>e==="end"||e==="finish"||e==="prefinish",oEl=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,aEl=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),UGt=class{src;dest;opts;ondrain;constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[NGe](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(t){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},BUr=class extends UGt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}},cEl=e=>!!e.objectMode,lEl=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",KGt=class extends wUr.EventEmitter{[yD]=!1;[I7e]=!1;[gL]=[];[bD]=[];[tF];[$4];[h6];[RGe];[Yte]=!1;[Tue]=!1;[HGt]=!1;[YGt]=!1;[f7e]=null;[ED]=0;[gw]=!1;[h7e];[JGt]=!1;[g0e]=0;[HO]=!1;writable=!0;readable=!0;constructor(...t){let r=t[0]||{};if(super(),r.objectMode&&typeof r.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");cEl(r)?(this[tF]=!0,this[$4]=null):lEl(r)?(this[$4]=r.encoding,this[tF]=!1):(this[tF]=!1,this[$4]=null),this[h6]=!!r.async,this[RGe]=this[$4]?new eEl.StringDecoder(this[$4]):null,r&&r.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[bD]}),r&&r.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[gL]});let{signal:n}=r;n&&(this[h7e]=n,n.aborted?this[vUr]():n.addEventListener("abort",()=>this[vUr]()))}get bufferLength(){return this[ED]}get encoding(){return this[$4]}set encoding(t){throw new Error("Encoding must be set at instantiation time")}setEncoding(t){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[tF]}set objectMode(t){throw new Error("objectMode must be set at instantiation time")}get async(){return this[h6]}set async(t){this[h6]=this[h6]||!!t}[vUr](){this[JGt]=!0,this.emit("abort",this[h7e]?.reason),this.destroy(this[h7e]?.reason)}get aborted(){return this[JGt]}set aborted(t){}write(t,r,n){if(this[JGt])return!1;if(this[Yte])throw new Error("write after end");if(this[gw])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[h6]?m7e:iEl;if(!this[tF]&&!Buffer.isBuffer(t)){if(aEl(t))t=Buffer.from(t.buffer,t.byteOffset,t.byteLength);else if(oEl(t))t=Buffer.from(t);else if(typeof t!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[tF]?(this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):t.length?(typeof t=="string"&&!(r===this[$4]&&!this[RGe]?.lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[$4]&&(t=this[RGe].write(t)),this[yD]&&this[ED]!==0&&this[QGt](!0),this[yD]?this.emit("data",t):this[yUr](t),this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD]):(this[ED]!==0&&this.emit("readable"),n&&a(n),this[yD])}read(t){if(this[gw])return null;if(this[HO]=!1,this[ED]===0||t===0||t&&t>this[ED])return this[Qte](),null;this[tF]&&(t=null),this[bD].length>1&&!this[tF]&&(this[bD]=[this[$4]?this[bD].join(""):Buffer.concat(this[bD],this[ED])]);let r=this[lps](t||null,this[bD][0]);return this[Qte](),r}[lps](t,r){if(this[tF])this[XGt]();else{let n=r;t===n.length||t===null?this[XGt]():typeof n=="string"?(this[bD][0]=n.slice(t),r=n.slice(0,t),this[ED]-=t):(this[bD][0]=n.subarray(t),r=n.subarray(0,t),this[ED]-=t)}return this.emit("data",r),!this[bD].length&&!this[Yte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=void 0),typeof r=="function"&&(n=r,r="utf8"),t!==void 0&&this.write(t,r),n&&this.once("end",n),this[Yte]=!0,this.writable=!1,(this[yD]||!this[I7e])&&this[Qte](),this}[NGe](){this[gw]||(!this[g0e]&&!this[gL].length&&(this[HO]=!0),this[I7e]=!1,this[yD]=!0,this.emit("resume"),this[bD].length?this[QGt]():this[Yte]?this[Qte]():this.emit("drain"))}resume(){return this[NGe]()}pause(){this[yD]=!1,this[I7e]=!0,this[HO]=!1}get destroyed(){return this[gw]}get flowing(){return this[yD]}get paused(){return this[I7e]}[yUr](t){this[tF]?this[ED]+=1:this[ED]+=t.length,this[bD].push(t)}[XGt](){return this[tF]?this[ED]-=1:this[ED]-=this[bD][0].length,this[bD].shift()}[QGt](t=!1){do;while(this[ups](this[XGt]())&&this[bD].length);!t&&!this[bD].length&&!this[Yte]&&this.emit("drain")}[ups](t){return this.emit("data",t),this[yD]}pipe(t,r){if(this[gw])return t;this[HO]=!1;let n=this[Tue];return r=r||{},t===cps.stdout||t===cps.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this[gL].push(r.proxyErrors?new BUr(this,t,r):new UGt(this,t,r)),this[h6]?m7e(()=>this[NGe]()):this[NGe]()),t}unpipe(t){let r=this[gL].find(n=>n.dest===t);r&&(this[gL].length===1?(this[yD]&&this[g0e]===0&&(this[yD]=!1),this[gL]=[]):this[gL].splice(this[gL].indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);if(t==="data")this[HO]=!1,this[g0e]++,!this[gL].length&&!this[yD]&&this[NGe]();else if(t==="readable"&&this[ED]!==0)super.emit("readable");else if(sEl(t)&&this[Tue])super.emit(t),this.removeAllListeners(t);else if(t==="error"&&this[f7e]){let a=r;this[h6]?m7e(()=>a.call(this,this[f7e])):a.call(this,this[f7e])}return n}removeListener(t,r){return this.off(t,r)}off(t,r){let n=super.off(t,r);return t==="data"&&(this[g0e]=this.listeners("data").length,this[g0e]===0&&!this[HO]&&!this[gL].length&&(this[yD]=!1)),n}removeAllListeners(t){let r=super.removeAllListeners(t);return(t==="data"||t===void 0)&&(this[g0e]=0,!this[HO]&&!this[gL].length&&(this[yD]=!1)),r}get emittedEnd(){return this[Tue]}[Qte](){!this[HGt]&&!this[Tue]&&!this[gw]&&this[bD].length===0&&this[Yte]&&(this[HGt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[YGt]&&this.emit("close"),this[HGt]=!1)}emit(t,...r){let n=r[0];if(t!=="error"&&t!=="close"&&t!==gw&&this[gw])return!1;if(t==="data")return!this[tF]&&!n?!1:this[h6]?(m7e(()=>this[EUr](n)),!0):this[EUr](n);if(t==="end")return this[gps]();if(t==="close"){if(this[YGt]=!0,!this[Tue]&&!this[gw])return!1;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[f7e]=n,super.emit(bUr,n);let o=!this[h7e]||this.listeners("error").length?super.emit("error",n):!1;return this[Qte](),o}else if(t==="resume"){let o=super.emit("resume");return this[Qte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,...r);return this[Qte](),a}[EUr](t){for(let n of this[gL])n.dest.write(t)===!1&&this.pause();let r=this[HO]?!1:super.emit("data",t);return this[Qte](),r}[gps](){return this[Tue]?!1:(this[Tue]=!0,this.readable=!1,this[h6]?(m7e(()=>this[SUr]()),!0):this[SUr]())}[SUr](){if(this[RGe]){let r=this[RGe].end();if(r){for(let n of this[gL])n.dest.write(r);this[HO]||super.emit("data",r)}}for(let r of this[gL])r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}async collect(){let t=Object.assign([],{dataLength:0});this[tF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[tF]||(t.dataLength+=n.length)}),await r,t}async concat(){if(this[tF])throw new Error("cannot concat in objectMode");let t=await this.collect();return this[$4]?t.join(""):Buffer.concat(t,t.dataLength)}async promise(){return new Promise((t,r)=>{this.on(gw,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[Symbol.asyncIterator](){this[HO]=!1;let t=!1,r=async()=>(this.pause(),t=!0,{value:void 0,done:!0});return{next:()=>{if(t)return r();let a=this.read();if(a!==null)return Promise.resolve({done:!1,value:a});if(this[Yte])return r();let o,l,A=b=>{this.off("data",f),this.off("end",I),this.off(gw,C),r(),l(b)},f=b=>{this.off("error",A),this.off("end",I),this.off(gw,C),this.pause(),o({value:b,done:!!this[Yte]})},I=()=>{this.off("error",A),this.off("data",f),this.off(gw,C),r(),o({done:!0,value:void 0})},C=()=>A(new Error("stream destroyed"));return new Promise((b,E)=>{l=E,o=b,this.once(gw,C),this.once("error",A),this.once("end",I),this.once("data",f)})},throw:r,return:r,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[HO]=!1;let t=!1,r=()=>(this.pause(),this.off(bUr,r),this.off(gw,r),this.off("end",r),t=!0,{done:!0,value:void 0}),n=()=>{if(t)return r();let a=this.read();return a===null?r():{done:!1,value:a}};return this.once("end",r),this.once(bUr,r),this.once(gw,r),{next:n,throw:r,return:r,[Symbol.iterator](){return this}}}destroy(t){if(this[gw])return t?this.emit("error",t):this.emit(gw),this;this[gw]=!0,this[HO]=!0,this[bD].length=0,this[ED]=0;let r=this;return typeof r.close=="function"&&!this[YGt]&&r.close(),t?this.emit("error",t):this.emit(gw),this}static get isStream(){return AL.isStream}};AL.Minipass=KGt});var Jte=H((Mrg,m6)=>{"use strict";var _7e=wt("crypto"),{Minipass:uEl}=rF(),RUr=["sha512","sha384","sha256"],DUr=["sha512"],gEl=/^[a-z0-9+/]+(?:=?=?)$/i,AEl=/^([a-z0-9]+)-([^?]+)([?\S*]*)$/,dEl=/^([a-z0-9]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)?$/,pEl=/^[\x21-\x7E]+$/,y7e=e=>e?.length?`?${e.join("?")}`:"",NUr=class extends uEl{#e;#t;#n;constructor(t){super(),this.size=0,this.opts=t,this.#r(),t?.algorithms?this.algorithms=[...t.algorithms]:this.algorithms=[...DUr],this.algorithm!==null&&!this.algorithms.includes(this.algorithm)&&this.algorithms.push(this.algorithm),this.hashes=this.algorithms.map(_7e.createHash)}#r(){this.sri=this.opts?.integrity?YO(this.opts?.integrity,this.opts):null,this.expectedSize=this.opts?.size,this.sri?this.sri.isHash?(this.goodSri=!0,this.algorithm=this.sri.algorithm):(this.goodSri=!this.sri.isEmpty(),this.algorithm=this.sri.pickAlgorithm(this.opts)):this.algorithm=null,this.digests=this.goodSri?this.sri[this.algorithm]:null,this.optString=y7e(this.opts?.options)}on(t,r){return t==="size"&&this.#t?r(this.#t):t==="integrity"&&this.#e?r(this.#e):t==="verified"&&this.#n?r(this.#n):super.on(t,r)}emit(t,r){return t==="end"&&this.#i(),super.emit(t,r)}write(t){return this.size+=t.length,this.hashes.forEach(r=>r.update(t)),super.write(t)}#i(){this.goodSri||this.#r();let t=YO(this.hashes.map((n,a)=>`${this.algorithms[a]}-${n.digest("base64")}${this.optString}`).join(" "),this.opts),r=this.goodSri&&t.match(this.sri,this.opts);if(typeof this.expectedSize=="number"&&this.size!==this.expectedSize){let n=new Error(`stream size mismatch when checking ${this.sri}. Wanted: ${this.expectedSize} - Found: ${this.size}`);n.code="EBADSIZE",n.found=this.size,n.expected=this.expectedSize,n.sri=this.sri,this.emit("error",n)}else if(this.sri&&!r){let n=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${t}. (${this.size} bytes)`);n.code="EINTEGRITY",n.found=t,n.expected=this.digests,n.algorithm=this.algorithm,n.sri=this.sri,this.emit("error",n)}else this.#t=this.size,this.emit("size",this.size),this.#e=t,this.emit("integrity",t),r&&(this.#n=r,this.emit("verified",r))}},Xte=class{get isHash(){return!0}constructor(t,r){let n=r?.strict;this.source=t.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(n?AEl:gEl);if(!a||n&&!RUr.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let o=a[3];o&&(this.options=o.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(t,r){let n=YO(t,r);if(!n)return!1;if(n.isIntegrity){let a=n.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let o=n[a].find(l=>l.digest===this.digest);return o||!1}return n.digest===this.digest?n:!1}toString(t){return t?.strict&&!(RUr.includes(this.algorithm)&&this.digest.match(uEl)&&this.options.every(r=>r.match(dEl)))?"":`${this.algorithm}-${this.digest}${y7e(this.options)}`}};function dps(e,t,r,n){let a=e!=="",o=!1,l="",A=n.length-1;for(let I=0;In[a].find(l=>o.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=n[a]}match(t,r){let n=YO(t,r);if(!n)return!1;let a=n.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&n[a]&&this[a].find(o=>n[a].find(l=>o.digest===l.digest))||!1}pickAlgorithm(t,r){let n=t?.pickAlgorithm||yEl,a=Object.keys(this).filter(o=>r?.length?r.includes(o):!0);return a.length?a.reduce((o,l)=>n(o,l)||o):null}};m6.exports.parse=YO;function YO(e,t){if(!e)return null;if(typeof e=="string")return TUr(e,t);if(e.algorithm&&e.digest){let r=new A0e;return r[e.algorithm]=[e],TUr(C7e(r,t),t)}else return TUr(C7e(e,t),t)}function TUr(e,t){if(t?.single)return new Xte(e,t);let r=e.trim().split(/\s+/).reduce((n,a)=>{let o=new Xte(a,t);if(o.algorithm&&o.digest){let l=o.algorithm;n[l]||(n[l]=[]),n[l].push(o)}return n},new A0e);return r.isEmpty()?null:r}m6.exports.stringify=C7e;function C7e(e,t){return e.algorithm&&e.digest?Xte.prototype.toString.call(e,t):typeof e=="string"?C7e(YO(e,t),t):A0e.prototype.toString.call(e,t)}m6.exports.fromHex=pEl;function pEl(e,t,r){let n=y7e(r?.options);return YO(`${t}-${Buffer.from(e,"hex").toString("base64")}${n}`,r)}m6.exports.fromData=fEl;function fEl(e,t){let r=t?.algorithms||[...DUr],n=y7e(t?.options);return r.reduce((a,o)=>{let l=_7e.createHash(o).update(e).digest("base64"),A=new Xte(`${o}-${l}${n}`,t);if(A.algorithm&&A.digest){let f=A.algorithm;a[f]||(a[f]=[]),a[f].push(A)}return a},new A0e)}m6.exports.fromStream=IEl;function IEl(e,t){let r=kUr(t);return new Promise((n,a)=>{e.pipe(r),e.on("error",a),r.on("error",a);let o;r.on("integrity",l=>{o=l}),r.on("end",()=>n(o)),r.resume()})}m6.exports.checkData=hEl;function hEl(e,t,r){if(t=YO(t,r),!t||!Object.keys(t).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let n=t.pickAlgorithm(r),a=_7e.createHash(n).update(e).digest("base64"),o=YO({algorithm:n,digest:a}),l=o.match(t,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&e.length!==r.size){let A=new Error(`data size mismatch when checking ${t}. + Found: ${this.size}`);n.code="EBADSIZE",n.found=this.size,n.expected=this.expectedSize,n.sri=this.sri,this.emit("error",n)}else if(this.sri&&!r){let n=new Error(`${this.sri} integrity checksum failed when using ${this.algorithm}: wanted ${this.digests} but got ${t}. (${this.size} bytes)`);n.code="EINTEGRITY",n.found=t,n.expected=this.digests,n.algorithm=this.algorithm,n.sri=this.sri,this.emit("error",n)}else this.#t=this.size,this.emit("size",this.size),this.#e=t,this.emit("integrity",t),r&&(this.#n=r,this.emit("verified",r))}},Xte=class{get isHash(){return!0}constructor(t,r){let n=r?.strict;this.source=t.trim(),this.digest="",this.algorithm="",this.options=[];let a=this.source.match(n?dEl:AEl);if(!a||n&&!RUr.includes(a[1]))return;this.algorithm=a[1],this.digest=a[2];let o=a[3];o&&(this.options=o.slice(1).split("?"))}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}match(t,r){let n=YO(t,r);if(!n)return!1;if(n.isIntegrity){let a=n.pickAlgorithm(r,[this.algorithm]);if(!a)return!1;let o=n[a].find(l=>l.digest===this.digest);return o||!1}return n.digest===this.digest?n:!1}toString(t){return t?.strict&&!(RUr.includes(this.algorithm)&&this.digest.match(gEl)&&this.options.every(r=>r.match(pEl)))?"":`${this.algorithm}-${this.digest}${y7e(this.options)}`}};function dps(e,t,r,n){let a=e!=="",o=!1,l="",A=n.length-1;for(let I=0;In[a].find(l=>o.digest===l.digest)))throw new Error("hashes do not match, cannot update integrity")}else this[a]=n[a]}match(t,r){let n=YO(t,r);if(!n)return!1;let a=n.pickAlgorithm(r,Object.keys(this));return!!a&&this[a]&&n[a]&&this[a].find(o=>n[a].find(l=>o.digest===l.digest))||!1}pickAlgorithm(t,r){let n=t?.pickAlgorithm||bEl,a=Object.keys(this).filter(o=>r?.length?r.includes(o):!0);return a.length?a.reduce((o,l)=>n(o,l)||o):null}};m6.exports.parse=YO;function YO(e,t){if(!e)return null;if(typeof e=="string")return TUr(e,t);if(e.algorithm&&e.digest){let r=new A0e;return r[e.algorithm]=[e],TUr(C7e(r,t),t)}else return TUr(C7e(e,t),t)}function TUr(e,t){if(t?.single)return new Xte(e,t);let r=e.trim().split(/\s+/).reduce((n,a)=>{let o=new Xte(a,t);if(o.algorithm&&o.digest){let l=o.algorithm;n[l]||(n[l]=[]),n[l].push(o)}return n},new A0e);return r.isEmpty()?null:r}m6.exports.stringify=C7e;function C7e(e,t){return e.algorithm&&e.digest?Xte.prototype.toString.call(e,t):typeof e=="string"?C7e(YO(e,t),t):A0e.prototype.toString.call(e,t)}m6.exports.fromHex=fEl;function fEl(e,t,r){let n=y7e(r?.options);return YO(`${t}-${Buffer.from(e,"hex").toString("base64")}${n}`,r)}m6.exports.fromData=IEl;function IEl(e,t){let r=t?.algorithms||[...DUr],n=y7e(t?.options);return r.reduce((a,o)=>{let l=_7e.createHash(o).update(e).digest("base64"),A=new Xte(`${o}-${l}${n}`,t);if(A.algorithm&&A.digest){let f=A.algorithm;a[f]||(a[f]=[]),a[f].push(A)}return a},new A0e)}m6.exports.fromStream=hEl;function hEl(e,t){let r=kUr(t);return new Promise((n,a)=>{e.pipe(r),e.on("error",a),r.on("error",a);let o;r.on("integrity",l=>{o=l}),r.on("end",()=>n(o)),r.resume()})}m6.exports.checkData=mEl;function mEl(e,t,r){if(t=YO(t,r),!t||!Object.keys(t).length){if(r?.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let n=t.pickAlgorithm(r),a=_7e.createHash(n).update(e).digest("base64"),o=YO({algorithm:n,digest:a}),l=o.match(t,r);if(r=r||{},l||!r.error)return l;if(typeof r.size=="number"&&e.length!==r.size){let A=new Error(`data size mismatch when checking ${t}. Wanted: ${r.size} - Found: ${e.length}`);throw A.code="EBADSIZE",A.found=e.length,A.expected=r.size,A.sri=t,A}else{let A=new Error(`Integrity checksum failed when using ${n}: Wanted ${t}, but got ${o}. (${e.length} bytes)`);throw A.code="EINTEGRITY",A.found=o,A.expected=t,A.algorithm=n,A.sri=t,A}}m6.exports.checkStream=mEl;function mEl(e,t,r){if(r=r||Object.create(null),r.integrity=t,t=YO(t,r),!t||!Object.keys(t).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let n=kUr(r);return new Promise((a,o)=>{e.pipe(n),e.on("error",o),n.on("error",o);let l;n.on("verified",A=>{l=A}),n.on("end",()=>a(l)),n.resume()})}m6.exports.integrityStream=kUr;function kUr(e=Object.create(null)){return new NUr(e)}m6.exports.create=CEl;function CEl(e){let t=e?.algorithms||[...DUr],r=y7e(e?.options),n=t.map(_7e.createHash);return{update:function(a,o){return n.forEach(l=>l.update(a,o)),this},digest:function(){return t.reduce((o,l)=>{let A=n.shift().digest("base64"),f=new Xte(`${l}-${A}${r}`,e);if(f.algorithm&&f.digest){let I=f.algorithm;o[I]||(o[I]=[]),o[I].push(f)}return o},new A0e)}}}var _El=_7e.getHashes(),pps=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>_El.includes(e));function yEl(e,t){return pps.indexOf(e.toLowerCase())>=pps.indexOf(t.toLowerCase())?e:t}});var xUr=H(Rue=>{"use strict";Object.defineProperty(Rue,"__esModule",{value:!0});Rue.Signature=Rue.Envelope=void 0;Rue.Envelope={fromJSON(e){return{payload:jGt(e.payload)?Buffer.from(fps(e.payload)):Buffer.alloc(0),payloadType:jGt(e.payloadType)?globalThis.String(e.payloadType):"",signatures:globalThis.Array.isArray(e?.signatures)?e.signatures.map(t=>Rue.Signature.fromJSON(t)):[]}},toJSON(e){let t={};return e.payload.length!==0&&(t.payload=Ips(e.payload)),e.payloadType!==""&&(t.payloadType=e.payloadType),e.signatures?.length&&(t.signatures=e.signatures.map(r=>Rue.Signature.toJSON(r))),t}};Rue.Signature={fromJSON(e){return{sig:jGt(e.sig)?Buffer.from(fps(e.sig)):Buffer.alloc(0),keyid:jGt(e.keyid)?globalThis.String(e.keyid):""}},toJSON(e){let t={};return e.sig.length!==0&&(t.sig=Ips(e.sig)),e.keyid!==""&&(t.keyid=e.keyid),t}};function fps(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function Ips(e){return globalThis.Buffer.from(e).toString("base64")}function jGt(e){return e!=null}});var mps=H(zGt=>{"use strict";Object.defineProperty(zGt,"__esModule",{value:!0});zGt.Timestamp=void 0;zGt.Timestamp={fromJSON(e){return{seconds:hps(e.seconds)?globalThis.String(e.seconds):"0",nanos:hps(e.nanos)?globalThis.Number(e.nanos):0}},toJSON(e){let t={};return e.seconds!=="0"&&(t.seconds=e.seconds),e.nanos!==0&&(t.nanos=Math.round(e.nanos)),t}};function hps(e){return e!=null}});var DGe=H(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.TimeRange=Vf.X509CertificateChain=Vf.SubjectAlternativeName=Vf.X509Certificate=Vf.DistinguishedName=Vf.ObjectIdentifierValuePair=Vf.ObjectIdentifier=Vf.PublicKeyIdentifier=Vf.PublicKey=Vf.RFC3161SignedTimestamp=Vf.LogId=Vf.MessageSignature=Vf.HashOutput=Vf.SubjectAlternativeNameType=Vf.PublicKeyDetails=Vf.HashAlgorithm=void 0;Vf.hashAlgorithmFromJSON=_ps;Vf.hashAlgorithmToJSON=yps;Vf.publicKeyDetailsFromJSON=bps;Vf.publicKeyDetailsToJSON=Eps;Vf.subjectAlternativeNameTypeFromJSON=Sps;Vf.subjectAlternativeNameTypeToJSON=vps;var bEl=mps(),UV;(function(e){e[e.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",e[e.SHA2_256=1]="SHA2_256",e[e.SHA2_384=2]="SHA2_384",e[e.SHA2_512=3]="SHA2_512",e[e.SHA3_256=4]="SHA3_256",e[e.SHA3_384=5]="SHA3_384"})(UV||(Vf.HashAlgorithm=UV={}));function _ps(e){switch(e){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return UV.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return UV.SHA2_256;case 2:case"SHA2_384":return UV.SHA2_384;case 3:case"SHA2_512":return UV.SHA2_512;case 4:case"SHA3_256":return UV.SHA3_256;case 5:case"SHA3_384":return UV.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}function yps(e){switch(e){case UV.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case UV.SHA2_256:return"SHA2_256";case UV.SHA2_384:return"SHA2_384";case UV.SHA2_512:return"SHA2_512";case UV.SHA3_256:return"SHA3_256";case UV.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}var Lf;(function(e){e[e.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",e[e.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",e[e.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",e[e.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",e[e.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",e[e.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",e[e.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",e[e.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",e[e.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",e[e.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",e[e.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",e[e.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",e[e.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",e[e.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",e[e.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",e[e.PKIX_ED25519=7]="PKIX_ED25519",e[e.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",e[e.PKIX_ECDSA_P384_SHA_256=19]="PKIX_ECDSA_P384_SHA_256",e[e.PKIX_ECDSA_P521_SHA_256=20]="PKIX_ECDSA_P521_SHA_256",e[e.LMS_SHA256=14]="LMS_SHA256",e[e.LMOTS_SHA256=15]="LMOTS_SHA256",e[e.ML_DSA_65=21]="ML_DSA_65",e[e.ML_DSA_87=22]="ML_DSA_87"})(Lf||(Vf.PublicKeyDetails=Lf={}));function bps(e){switch(e){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return Lf.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return Lf.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return Lf.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return Lf.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return Lf.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return Lf.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return Lf.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return Lf.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return Lf.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return Lf.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return Lf.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return Lf.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return Lf.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return Lf.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return Lf.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return Lf.PKIX_ED25519_PH;case 19:case"PKIX_ECDSA_P384_SHA_256":return Lf.PKIX_ECDSA_P384_SHA_256;case 20:case"PKIX_ECDSA_P521_SHA_256":return Lf.PKIX_ECDSA_P521_SHA_256;case 14:case"LMS_SHA256":return Lf.LMS_SHA256;case 15:case"LMOTS_SHA256":return Lf.LMOTS_SHA256;case 21:case"ML_DSA_65":return Lf.ML_DSA_65;case 22:case"ML_DSA_87":return Lf.ML_DSA_87;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}function Eps(e){switch(e){case Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case Lf.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case Lf.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case Lf.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case Lf.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case Lf.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case Lf.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case Lf.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case Lf.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case Lf.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case Lf.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case Lf.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case Lf.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case Lf.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case Lf.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case Lf.PKIX_ED25519:return"PKIX_ED25519";case Lf.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case Lf.PKIX_ECDSA_P384_SHA_256:return"PKIX_ECDSA_P384_SHA_256";case Lf.PKIX_ECDSA_P521_SHA_256:return"PKIX_ECDSA_P521_SHA_256";case Lf.LMS_SHA256:return"LMS_SHA256";case Lf.LMOTS_SHA256:return"LMOTS_SHA256";case Lf.ML_DSA_65:return"ML_DSA_65";case Lf.ML_DSA_87:return"ML_DSA_87";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}var C6;(function(e){e[e.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",e[e.EMAIL=1]="EMAIL",e[e.URI=2]="URI",e[e.OTHER_NAME=3]="OTHER_NAME"})(C6||(Vf.SubjectAlternativeNameType=C6={}));function Sps(e){switch(e){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return C6.EMAIL;case 2:case"URI":return C6.URI;case 3:case"OTHER_NAME":return C6.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}function vps(e){switch(e){case C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case C6.EMAIL:return"EMAIL";case C6.URI:return"URI";case C6.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}Vf.HashOutput={fromJSON(e){return{algorithm:ST(e.algorithm)?_ps(e.algorithm):0,digest:ST(e.digest)?Buffer.from(d0e(e.digest)):Buffer.alloc(0)}},toJSON(e){let t={};return e.algorithm!==0&&(t.algorithm=yps(e.algorithm)),e.digest.length!==0&&(t.digest=p0e(e.digest)),t}};Vf.MessageSignature={fromJSON(e){return{messageDigest:ST(e.messageDigest)?Vf.HashOutput.fromJSON(e.messageDigest):void 0,signature:ST(e.signature)?Buffer.from(d0e(e.signature)):Buffer.alloc(0)}},toJSON(e){let t={};return e.messageDigest!==void 0&&(t.messageDigest=Vf.HashOutput.toJSON(e.messageDigest)),e.signature.length!==0&&(t.signature=p0e(e.signature)),t}};Vf.LogId={fromJSON(e){return{keyId:ST(e.keyId)?Buffer.from(d0e(e.keyId)):Buffer.alloc(0)}},toJSON(e){let t={};return e.keyId.length!==0&&(t.keyId=p0e(e.keyId)),t}};Vf.RFC3161SignedTimestamp={fromJSON(e){return{signedTimestamp:ST(e.signedTimestamp)?Buffer.from(d0e(e.signedTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedTimestamp.length!==0&&(t.signedTimestamp=p0e(e.signedTimestamp)),t}};Vf.PublicKey={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):void 0,keyDetails:ST(e.keyDetails)?bps(e.keyDetails):0,validFor:ST(e.validFor)?Vf.TimeRange.fromJSON(e.validFor):void 0}},toJSON(e){let t={};return e.rawBytes!==void 0&&(t.rawBytes=p0e(e.rawBytes)),e.keyDetails!==0&&(t.keyDetails=Eps(e.keyDetails)),e.validFor!==void 0&&(t.validFor=Vf.TimeRange.toJSON(e.validFor)),t}};Vf.PublicKeyIdentifier={fromJSON(e){return{hint:ST(e.hint)?globalThis.String(e.hint):""}},toJSON(e){let t={};return e.hint!==""&&(t.hint=e.hint),t}};Vf.ObjectIdentifier={fromJSON(e){return{id:globalThis.Array.isArray(e?.id)?e.id.map(t=>globalThis.Number(t)):[]}},toJSON(e){let t={};return e.id?.length&&(t.id=e.id.map(r=>Math.round(r))),t}};Vf.ObjectIdentifierValuePair={fromJSON(e){return{oid:ST(e.oid)?Vf.ObjectIdentifier.fromJSON(e.oid):void 0,value:ST(e.value)?Buffer.from(d0e(e.value)):Buffer.alloc(0)}},toJSON(e){let t={};return e.oid!==void 0&&(t.oid=Vf.ObjectIdentifier.toJSON(e.oid)),e.value.length!==0&&(t.value=p0e(e.value)),t}};Vf.DistinguishedName={fromJSON(e){return{organization:ST(e.organization)?globalThis.String(e.organization):"",commonName:ST(e.commonName)?globalThis.String(e.commonName):""}},toJSON(e){let t={};return e.organization!==""&&(t.organization=e.organization),e.commonName!==""&&(t.commonName=e.commonName),t}};Vf.X509Certificate={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):Buffer.alloc(0)}},toJSON(e){let t={};return e.rawBytes.length!==0&&(t.rawBytes=p0e(e.rawBytes)),t}};Vf.SubjectAlternativeName={fromJSON(e){return{type:ST(e.type)?Sps(e.type):0,identity:ST(e.regexp)?{$case:"regexp",regexp:globalThis.String(e.regexp)}:ST(e.value)?{$case:"value",value:globalThis.String(e.value)}:void 0}},toJSON(e){let t={};return e.type!==0&&(t.type=vps(e.type)),e.identity?.$case==="regexp"?t.regexp=e.identity.regexp:e.identity?.$case==="value"&&(t.value=e.identity.value),t}};Vf.X509CertificateChain={fromJSON(e){return{certificates:globalThis.Array.isArray(e?.certificates)?e.certificates.map(t=>Vf.X509Certificate.fromJSON(t)):[]}},toJSON(e){let t={};return e.certificates?.length&&(t.certificates=e.certificates.map(r=>Vf.X509Certificate.toJSON(r))),t}};Vf.TimeRange={fromJSON(e){return{start:ST(e.start)?Cps(e.start):void 0,end:ST(e.end)?Cps(e.end):void 0}},toJSON(e){let t={};return e.start!==void 0&&(t.start=e.start.toISOString()),e.end!==void 0&&(t.end=e.end.toISOString()),t}};function d0e(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function p0e(e){return globalThis.Buffer.from(e).toString("base64")}function EEl(e){let t=(globalThis.Number(e.seconds)||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function Cps(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):EEl(bEl.Timestamp.fromJSON(e))}function ST(e){return e!=null}});var GUr=H(vT=>{"use strict";Object.defineProperty(vT,"__esModule",{value:!0});vT.TransparencyLogEntry=vT.InclusionPromise=vT.InclusionProof=vT.Checkpoint=vT.KindVersion=void 0;var Bps=DGe();vT.KindVersion={fromJSON(e){return{kind:dL(e.kind)?globalThis.String(e.kind):"",version:dL(e.version)?globalThis.String(e.version):""}},toJSON(e){let t={};return e.kind!==""&&(t.kind=e.kind),e.version!==""&&(t.version=e.version),t}};vT.Checkpoint={fromJSON(e){return{envelope:dL(e.envelope)?globalThis.String(e.envelope):""}},toJSON(e){let t={};return e.envelope!==""&&(t.envelope=e.envelope),t}};vT.InclusionProof={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",rootHash:dL(e.rootHash)?Buffer.from(qGt(e.rootHash)):Buffer.alloc(0),treeSize:dL(e.treeSize)?globalThis.String(e.treeSize):"0",hashes:globalThis.Array.isArray(e?.hashes)?e.hashes.map(t=>Buffer.from(qGt(t))):[],checkpoint:dL(e.checkpoint)?vT.Checkpoint.fromJSON(e.checkpoint):void 0}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.rootHash.length!==0&&(t.rootHash=$Gt(e.rootHash)),e.treeSize!=="0"&&(t.treeSize=e.treeSize),e.hashes?.length&&(t.hashes=e.hashes.map(r=>$Gt(r))),e.checkpoint!==void 0&&(t.checkpoint=vT.Checkpoint.toJSON(e.checkpoint)),t}};vT.InclusionPromise={fromJSON(e){return{signedEntryTimestamp:dL(e.signedEntryTimestamp)?Buffer.from(qGt(e.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedEntryTimestamp.length!==0&&(t.signedEntryTimestamp=$Gt(e.signedEntryTimestamp)),t}};vT.TransparencyLogEntry={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",logId:dL(e.logId)?Bps.LogId.fromJSON(e.logId):void 0,kindVersion:dL(e.kindVersion)?vT.KindVersion.fromJSON(e.kindVersion):void 0,integratedTime:dL(e.integratedTime)?globalThis.String(e.integratedTime):"0",inclusionPromise:dL(e.inclusionPromise)?vT.InclusionPromise.fromJSON(e.inclusionPromise):void 0,inclusionProof:dL(e.inclusionProof)?vT.InclusionProof.fromJSON(e.inclusionProof):void 0,canonicalizedBody:dL(e.canonicalizedBody)?Buffer.from(qGt(e.canonicalizedBody)):Buffer.alloc(0)}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.logId!==void 0&&(t.logId=Bps.LogId.toJSON(e.logId)),e.kindVersion!==void 0&&(t.kindVersion=vT.KindVersion.toJSON(e.kindVersion)),e.integratedTime!=="0"&&(t.integratedTime=e.integratedTime),e.inclusionPromise!==void 0&&(t.inclusionPromise=vT.InclusionPromise.toJSON(e.inclusionPromise)),e.inclusionProof!==void 0&&(t.inclusionProof=vT.InclusionProof.toJSON(e.inclusionProof)),e.canonicalizedBody.length!==0&&(t.canonicalizedBody=$Gt(e.canonicalizedBody)),t}};function qGt(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function $Gt(e){return globalThis.Buffer.from(e).toString("base64")}function dL(e){return e!=null}});var FUr=H(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.Bundle=ZH.VerificationMaterial=ZH.TimestampVerificationData=void 0;var wps=xUr(),_6=DGe(),Tps=GUr();ZH.TimestampVerificationData={fromJSON(e){return{rfc3161Timestamps:globalThis.Array.isArray(e?.rfc3161Timestamps)?e.rfc3161Timestamps.map(t=>_6.RFC3161SignedTimestamp.fromJSON(t)):[]}},toJSON(e){let t={};return e.rfc3161Timestamps?.length&&(t.rfc3161Timestamps=e.rfc3161Timestamps.map(r=>_6.RFC3161SignedTimestamp.toJSON(r))),t}};ZH.VerificationMaterial={fromJSON(e){return{content:Nue(e.publicKey)?{$case:"publicKey",publicKey:_6.PublicKeyIdentifier.fromJSON(e.publicKey)}:Nue(e.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:_6.X509CertificateChain.fromJSON(e.x509CertificateChain)}:Nue(e.certificate)?{$case:"certificate",certificate:_6.X509Certificate.fromJSON(e.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(e?.tlogEntries)?e.tlogEntries.map(t=>Tps.TransparencyLogEntry.fromJSON(t)):[],timestampVerificationData:Nue(e.timestampVerificationData)?ZH.TimestampVerificationData.fromJSON(e.timestampVerificationData):void 0}},toJSON(e){let t={};return e.content?.$case==="publicKey"?t.publicKey=_6.PublicKeyIdentifier.toJSON(e.content.publicKey):e.content?.$case==="x509CertificateChain"?t.x509CertificateChain=_6.X509CertificateChain.toJSON(e.content.x509CertificateChain):e.content?.$case==="certificate"&&(t.certificate=_6.X509Certificate.toJSON(e.content.certificate)),e.tlogEntries?.length&&(t.tlogEntries=e.tlogEntries.map(r=>Tps.TransparencyLogEntry.toJSON(r))),e.timestampVerificationData!==void 0&&(t.timestampVerificationData=ZH.TimestampVerificationData.toJSON(e.timestampVerificationData)),t}};ZH.Bundle={fromJSON(e){return{mediaType:Nue(e.mediaType)?globalThis.String(e.mediaType):"",verificationMaterial:Nue(e.verificationMaterial)?ZH.VerificationMaterial.fromJSON(e.verificationMaterial):void 0,content:Nue(e.messageSignature)?{$case:"messageSignature",messageSignature:_6.MessageSignature.fromJSON(e.messageSignature)}:Nue(e.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:wps.Envelope.fromJSON(e.dsseEnvelope)}:void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.verificationMaterial!==void 0&&(t.verificationMaterial=ZH.VerificationMaterial.toJSON(e.verificationMaterial)),e.content?.$case==="messageSignature"?t.messageSignature=_6.MessageSignature.toJSON(e.content.messageSignature):e.content?.$case==="dsseEnvelope"&&(t.dsseEnvelope=wps.Envelope.toJSON(e.content.dsseEnvelope)),t}};function Nue(e){return e!=null}});var ZUr=H(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.ClientTrustConfig=ZI.ServiceConfiguration=ZI.Service=ZI.SigningConfig=ZI.TrustedRoot=ZI.CertificateAuthority=ZI.TransparencyLogInstance=ZI.ServiceSelector=void 0;ZI.serviceSelectorFromJSON=Rps;ZI.serviceSelectorToJSON=Nps;var nF=DGe(),y6;(function(e){e[e.SERVICE_SELECTOR_UNDEFINED=0]="SERVICE_SELECTOR_UNDEFINED",e[e.ALL=1]="ALL",e[e.ANY=2]="ANY",e[e.EXACT=3]="EXACT"})(y6||(ZI.ServiceSelector=y6={}));function Rps(e){switch(e){case 0:case"SERVICE_SELECTOR_UNDEFINED":return y6.SERVICE_SELECTOR_UNDEFINED;case 1:case"ALL":return y6.ALL;case 2:case"ANY":return y6.ANY;case 3:case"EXACT":return y6.EXACT;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}function Nps(e){switch(e){case y6.SERVICE_SELECTOR_UNDEFINED:return"SERVICE_SELECTOR_UNDEFINED";case y6.ALL:return"ALL";case y6.ANY:return"ANY";case y6.EXACT:return"EXACT";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}ZI.TransparencyLogInstance={fromJSON(e){return{baseUrl:P2(e.baseUrl)?globalThis.String(e.baseUrl):"",hashAlgorithm:P2(e.hashAlgorithm)?(0,nF.hashAlgorithmFromJSON)(e.hashAlgorithm):0,publicKey:P2(e.publicKey)?nF.PublicKey.fromJSON(e.publicKey):void 0,logId:P2(e.logId)?nF.LogId.fromJSON(e.logId):void 0,checkpointKeyId:P2(e.checkpointKeyId)?nF.LogId.fromJSON(e.checkpointKeyId):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.baseUrl!==""&&(t.baseUrl=e.baseUrl),e.hashAlgorithm!==0&&(t.hashAlgorithm=(0,nF.hashAlgorithmToJSON)(e.hashAlgorithm)),e.publicKey!==void 0&&(t.publicKey=nF.PublicKey.toJSON(e.publicKey)),e.logId!==void 0&&(t.logId=nF.LogId.toJSON(e.logId)),e.checkpointKeyId!==void 0&&(t.checkpointKeyId=nF.LogId.toJSON(e.checkpointKeyId)),e.operator!==""&&(t.operator=e.operator),t}};ZI.CertificateAuthority={fromJSON(e){return{subject:P2(e.subject)?nF.DistinguishedName.fromJSON(e.subject):void 0,uri:P2(e.uri)?globalThis.String(e.uri):"",certChain:P2(e.certChain)?nF.X509CertificateChain.fromJSON(e.certChain):void 0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.subject!==void 0&&(t.subject=nF.DistinguishedName.toJSON(e.subject)),e.uri!==""&&(t.uri=e.uri),e.certChain!==void 0&&(t.certChain=nF.X509CertificateChain.toJSON(e.certChain)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.TrustedRoot={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",tlogs:globalThis.Array.isArray(e?.tlogs)?e.tlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],certificateAuthorities:globalThis.Array.isArray(e?.certificateAuthorities)?e.certificateAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[],ctlogs:globalThis.Array.isArray(e?.ctlogs)?e.ctlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],timestampAuthorities:globalThis.Array.isArray(e?.timestampAuthorities)?e.timestampAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[]}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.tlogs?.length&&(t.tlogs=e.tlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.certificateAuthorities?.length&&(t.certificateAuthorities=e.certificateAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),e.ctlogs?.length&&(t.ctlogs=e.ctlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.timestampAuthorities?.length&&(t.timestampAuthorities=e.timestampAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),t}};ZI.SigningConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",caUrls:globalThis.Array.isArray(e?.caUrls)?e.caUrls.map(t=>ZI.Service.fromJSON(t)):[],oidcUrls:globalThis.Array.isArray(e?.oidcUrls)?e.oidcUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogUrls:globalThis.Array.isArray(e?.rekorTlogUrls)?e.rekorTlogUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogConfig:P2(e.rekorTlogConfig)?ZI.ServiceConfiguration.fromJSON(e.rekorTlogConfig):void 0,tsaUrls:globalThis.Array.isArray(e?.tsaUrls)?e.tsaUrls.map(t=>ZI.Service.fromJSON(t)):[],tsaConfig:P2(e.tsaConfig)?ZI.ServiceConfiguration.fromJSON(e.tsaConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.caUrls?.length&&(t.caUrls=e.caUrls.map(r=>ZI.Service.toJSON(r))),e.oidcUrls?.length&&(t.oidcUrls=e.oidcUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogUrls?.length&&(t.rekorTlogUrls=e.rekorTlogUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogConfig!==void 0&&(t.rekorTlogConfig=ZI.ServiceConfiguration.toJSON(e.rekorTlogConfig)),e.tsaUrls?.length&&(t.tsaUrls=e.tsaUrls.map(r=>ZI.Service.toJSON(r))),e.tsaConfig!==void 0&&(t.tsaConfig=ZI.ServiceConfiguration.toJSON(e.tsaConfig)),t}};ZI.Service={fromJSON(e){return{url:P2(e.url)?globalThis.String(e.url):"",majorApiVersion:P2(e.majorApiVersion)?globalThis.Number(e.majorApiVersion):0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),e.majorApiVersion!==0&&(t.majorApiVersion=Math.round(e.majorApiVersion)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.ServiceConfiguration={fromJSON(e){return{selector:P2(e.selector)?Rps(e.selector):0,count:P2(e.count)?globalThis.Number(e.count):0}},toJSON(e){let t={};return e.selector!==0&&(t.selector=Nps(e.selector)),e.count!==0&&(t.count=Math.round(e.count)),t}};ZI.ClientTrustConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",trustedRoot:P2(e.trustedRoot)?ZI.TrustedRoot.fromJSON(e.trustedRoot):void 0,signingConfig:P2(e.signingConfig)?ZI.SigningConfig.fromJSON(e.signingConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.trustedRoot!==void 0&&(t.trustedRoot=ZI.TrustedRoot.toJSON(e.trustedRoot)),e.signingConfig!==void 0&&(t.signingConfig=ZI.SigningConfig.toJSON(e.signingConfig)),t}};function P2(e){return e!=null}});var xps=H(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.Input=LI.Artifact=LI.ArtifactVerificationOptions_ObserverTimestampOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions=LI.ArtifactVerificationOptions_CtlogOptions=LI.ArtifactVerificationOptions_TlogOptions=LI.ArtifactVerificationOptions=LI.PublicKeyIdentities=LI.CertificateIdentities=LI.CertificateIdentity=void 0;var Dps=FUr(),Due=DGe(),kps=ZUr();LI.CertificateIdentity={fromJSON(e){return{issuer:tE(e.issuer)?globalThis.String(e.issuer):"",san:tE(e.san)?Due.SubjectAlternativeName.fromJSON(e.san):void 0,oids:globalThis.Array.isArray(e?.oids)?e.oids.map(t=>Due.ObjectIdentifierValuePair.fromJSON(t)):[]}},toJSON(e){let t={};return e.issuer!==""&&(t.issuer=e.issuer),e.san!==void 0&&(t.san=Due.SubjectAlternativeName.toJSON(e.san)),e.oids?.length&&(t.oids=e.oids.map(r=>Due.ObjectIdentifierValuePair.toJSON(r))),t}};LI.CertificateIdentities={fromJSON(e){return{identities:globalThis.Array.isArray(e?.identities)?e.identities.map(t=>LI.CertificateIdentity.fromJSON(t)):[]}},toJSON(e){let t={};return e.identities?.length&&(t.identities=e.identities.map(r=>LI.CertificateIdentity.toJSON(r))),t}};LI.PublicKeyIdentities={fromJSON(e){return{publicKeys:globalThis.Array.isArray(e?.publicKeys)?e.publicKeys.map(t=>Due.PublicKey.fromJSON(t)):[]}},toJSON(e){let t={};return e.publicKeys?.length&&(t.publicKeys=e.publicKeys.map(r=>Due.PublicKey.toJSON(r))),t}};LI.ArtifactVerificationOptions={fromJSON(e){return{signers:tE(e.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:LI.CertificateIdentities.fromJSON(e.certificateIdentities)}:tE(e.publicKeys)?{$case:"publicKeys",publicKeys:LI.PublicKeyIdentities.fromJSON(e.publicKeys)}:void 0,tlogOptions:tE(e.tlogOptions)?LI.ArtifactVerificationOptions_TlogOptions.fromJSON(e.tlogOptions):void 0,ctlogOptions:tE(e.ctlogOptions)?LI.ArtifactVerificationOptions_CtlogOptions.fromJSON(e.ctlogOptions):void 0,tsaOptions:tE(e.tsaOptions)?LI.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(e.tsaOptions):void 0,integratedTsOptions:tE(e.integratedTsOptions)?LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(e.integratedTsOptions):void 0,observerOptions:tE(e.observerOptions)?LI.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(e.observerOptions):void 0}},toJSON(e){let t={};return e.signers?.$case==="certificateIdentities"?t.certificateIdentities=LI.CertificateIdentities.toJSON(e.signers.certificateIdentities):e.signers?.$case==="publicKeys"&&(t.publicKeys=LI.PublicKeyIdentities.toJSON(e.signers.publicKeys)),e.tlogOptions!==void 0&&(t.tlogOptions=LI.ArtifactVerificationOptions_TlogOptions.toJSON(e.tlogOptions)),e.ctlogOptions!==void 0&&(t.ctlogOptions=LI.ArtifactVerificationOptions_CtlogOptions.toJSON(e.ctlogOptions)),e.tsaOptions!==void 0&&(t.tsaOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(e.tsaOptions)),e.integratedTsOptions!==void 0&&(t.integratedTsOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(e.integratedTsOptions)),e.observerOptions!==void 0&&(t.observerOptions=LI.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(e.observerOptions)),t}};LI.ArtifactVerificationOptions_TlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,performOnlineVerification:tE(e.performOnlineVerification)?globalThis.Boolean(e.performOnlineVerification):!1,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.performOnlineVerification!==!1&&(t.performOnlineVerification=e.performOnlineVerification),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_CtlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.Artifact={fromJSON(e){return{data:tE(e.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(e.artifactUri)}:tE(e.artifact)?{$case:"artifact",artifact:Buffer.from(SEl(e.artifact))}:tE(e.artifactDigest)?{$case:"artifactDigest",artifactDigest:Due.HashOutput.fromJSON(e.artifactDigest)}:void 0}},toJSON(e){let t={};return e.data?.$case==="artifactUri"?t.artifactUri=e.data.artifactUri:e.data?.$case==="artifact"?t.artifact=vEl(e.data.artifact):e.data?.$case==="artifactDigest"&&(t.artifactDigest=Due.HashOutput.toJSON(e.data.artifactDigest)),t}};LI.Input={fromJSON(e){return{artifactTrustRoot:tE(e.artifactTrustRoot)?kps.TrustedRoot.fromJSON(e.artifactTrustRoot):void 0,artifactVerificationOptions:tE(e.artifactVerificationOptions)?LI.ArtifactVerificationOptions.fromJSON(e.artifactVerificationOptions):void 0,bundle:tE(e.bundle)?Dps.Bundle.fromJSON(e.bundle):void 0,artifact:tE(e.artifact)?LI.Artifact.fromJSON(e.artifact):void 0}},toJSON(e){let t={};return e.artifactTrustRoot!==void 0&&(t.artifactTrustRoot=kps.TrustedRoot.toJSON(e.artifactTrustRoot)),e.artifactVerificationOptions!==void 0&&(t.artifactVerificationOptions=LI.ArtifactVerificationOptions.toJSON(e.artifactVerificationOptions)),e.bundle!==void 0&&(t.bundle=Dps.Bundle.toJSON(e.bundle)),e.artifact!==void 0&&(t.artifact=LI.Artifact.toJSON(e.artifact)),t}};function SEl(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function vEl(e){return globalThis.Buffer.from(e).toString("base64")}function tE(e){return e!=null}});var b7e=H(LH=>{"use strict";var BEl=LH&&LH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kGe=LH&&LH.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&BEl(t,e,r)};Object.defineProperty(LH,"__esModule",{value:!0});kGe(xUr(),LH);kGe(FUr(),LH);kGe(DGe(),LH);kGe(GUr(),LH);kGe(ZUr(),LH);kGe(xps(),LH)});var eFt=H(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.BUNDLE_V03_MEDIA_TYPE=KV.BUNDLE_V03_LEGACY_MEDIA_TYPE=KV.BUNDLE_V02_MEDIA_TYPE=KV.BUNDLE_V01_MEDIA_TYPE=void 0;KV.isBundleWithCertificateChain=wEl;KV.isBundleWithPublicKey=TEl;KV.isBundleWithMessageSignature=REl;KV.isBundleWithDsseEnvelope=NEl;KV.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";KV.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";KV.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";KV.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function wEl(e){return e.verificationMaterial.content.$case==="x509CertificateChain"}function TEl(e){return e.verificationMaterial.content.$case==="publicKey"}function REl(e){return e.content.$case==="messageSignature"}function NEl(e){return e.content.$case==="dsseEnvelope"}});var Fps=H(rFt=>{"use strict";Object.defineProperty(rFt,"__esModule",{value:!0});rFt.toMessageSignatureBundle=kEl;rFt.toDSSEBundle=xEl;var DEl=b7e(),tFt=eFt();function kEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:DEl.HashAlgorithm.SHA2_256,digest:e.digest},signature:e.signature}},verificationMaterial:Gps(e)}}function xEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:GEl(e)},verificationMaterial:Gps(e)}}function GEl(e){return{payloadType:e.artifactType,payload:e.artifact,signatures:[FEl(e)]}}function FEl(e){return{keyid:e.keyHint||"",sig:e.signature}}function Gps(e){return{content:ZEl(e),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function ZEl(e){return e.certificate?e.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:e.certificate}]}}:{$case:"certificate",certificate:{rawBytes:e.certificate}}:{$case:"publicKey",publicKey:{hint:e.keyHint||""}}}});var VUr=H(nFt=>{"use strict";Object.defineProperty(nFt,"__esModule",{value:!0});nFt.ValidationError=void 0;var LUr=class extends Error{constructor(t,r){super(t),this.fields=r}};nFt.ValidationError=LUr});var PUr=H(f0e=>{"use strict";Object.defineProperty(f0e,"__esModule",{value:!0});f0e.assertBundle=LEl;f0e.assertBundleV01=Zps;f0e.isBundleV01=VEl;f0e.assertBundleV02=PEl;f0e.assertBundleLatest=WEl;var iFt=VUr();function LEl(e){let t=sFt(e);if(t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function Zps(e){let t=[];if(t.push(...sFt(e)),t.push(...OEl(e)),t.length>0)throw new iFt.ValidationError("invalid v0.1 bundle",t)}function VEl(e){try{return Zps(e),!0}catch{return!1}}function PEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.length>0)throw new iFt.ValidationError("invalid v0.2 bundle",t)}function WEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.push(...MEl(e)),t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function sFt(e){let t=[];if((e.mediaType===void 0||!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&t.push("mediaType"),e.content===void 0)t.push("content");else switch(e.content.$case){case"messageSignature":e.content.messageSignature.messageDigest===void 0?t.push("content.messageSignature.messageDigest"):e.content.messageSignature.messageDigest.digest.length===0&&t.push("content.messageSignature.messageDigest.digest"),e.content.messageSignature.signature.length===0&&t.push("content.messageSignature.signature");break;case"dsseEnvelope":e.content.dsseEnvelope.payload.length===0&&t.push("content.dsseEnvelope.payload"),e.content.dsseEnvelope.signatures.length!==1?t.push("content.dsseEnvelope.signatures"):e.content.dsseEnvelope.signatures[0].sig.length===0&&t.push("content.dsseEnvelope.signatures[0].sig");break}if(e.verificationMaterial===void 0)t.push("verificationMaterial");else{if(e.verificationMaterial.content===void 0)t.push("verificationMaterial.content");else switch(e.verificationMaterial.content.$case){case"x509CertificateChain":e.verificationMaterial.content.x509CertificateChain.certificates.length===0&&t.push("verificationMaterial.content.x509CertificateChain.certificates"),e.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,n)=>{r.rawBytes.length===0&&t.push(`verificationMaterial.content.x509CertificateChain.certificates[${n}].rawBytes`)});break;case"certificate":e.verificationMaterial.content.certificate.rawBytes.length===0&&t.push("verificationMaterial.content.certificate.rawBytes");break}e.verificationMaterial.tlogEntries===void 0?t.push("verificationMaterial.tlogEntries"):e.verificationMaterial.tlogEntries.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.logId===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].logId`),r.kindVersion===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].kindVersion`)})}return t}function OEl(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionPromise===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionPromise`)}),t}function Lps(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionProof===void 0?t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof.checkpoint`)}),t}function MEl(e){let t=[];return e.verificationMaterial?.content?.$case==="x509CertificateChain"&&t.push("verificationMaterial.content.$case"),t}});var Pps=H(b6=>{"use strict";Object.defineProperty(b6,"__esModule",{value:!0});b6.envelopeToJSON=b6.envelopeFromJSON=b6.bundleToJSON=b6.bundleFromJSON=void 0;var oFt=b7e(),Vps=eFt(),WUr=PUr(),HEl=e=>{let t=oFt.Bundle.fromJSON(e);switch(t.mediaType){case Vps.BUNDLE_V01_MEDIA_TYPE:(0,WUr.assertBundleV01)(t);break;case Vps.BUNDLE_V02_MEDIA_TYPE:(0,WUr.assertBundleV02)(t);break;default:(0,WUr.assertBundleLatest)(t);break}return t};b6.bundleFromJSON=HEl;var YEl=e=>oFt.Bundle.toJSON(e);b6.bundleToJSON=YEl;var QEl=e=>oFt.Envelope.fromJSON(e);b6.envelopeFromJSON=QEl;var XEl=e=>oFt.Envelope.toJSON(e);b6.envelopeToJSON=XEl});var S7e=H(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});Ah.isBundleV01=Ah.assertBundleV02=Ah.assertBundleV01=Ah.assertBundleLatest=Ah.assertBundle=Ah.envelopeToJSON=Ah.envelopeFromJSON=Ah.bundleToJSON=Ah.bundleFromJSON=Ah.ValidationError=Ah.isBundleWithPublicKey=Ah.isBundleWithMessageSignature=Ah.isBundleWithDsseEnvelope=Ah.isBundleWithCertificateChain=Ah.BUNDLE_V03_MEDIA_TYPE=Ah.BUNDLE_V03_LEGACY_MEDIA_TYPE=Ah.BUNDLE_V02_MEDIA_TYPE=Ah.BUNDLE_V01_MEDIA_TYPE=Ah.toMessageSignatureBundle=Ah.toDSSEBundle=void 0;var Wps=Fps();Object.defineProperty(Ah,"toDSSEBundle",{enumerable:!0,get:function(){return Wps.toDSSEBundle}});Object.defineProperty(Ah,"toMessageSignatureBundle",{enumerable:!0,get:function(){return Wps.toMessageSignatureBundle}});var kue=eFt();Object.defineProperty(Ah,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Ah,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return kue.isBundleWithCertificateChain}});Object.defineProperty(Ah,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return kue.isBundleWithDsseEnvelope}});Object.defineProperty(Ah,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return kue.isBundleWithMessageSignature}});Object.defineProperty(Ah,"isBundleWithPublicKey",{enumerable:!0,get:function(){return kue.isBundleWithPublicKey}});var JEl=VUr();Object.defineProperty(Ah,"ValidationError",{enumerable:!0,get:function(){return JEl.ValidationError}});var aFt=Pps();Object.defineProperty(Ah,"bundleFromJSON",{enumerable:!0,get:function(){return aFt.bundleFromJSON}});Object.defineProperty(Ah,"bundleToJSON",{enumerable:!0,get:function(){return aFt.bundleToJSON}});Object.defineProperty(Ah,"envelopeFromJSON",{enumerable:!0,get:function(){return aFt.envelopeFromJSON}});Object.defineProperty(Ah,"envelopeToJSON",{enumerable:!0,get:function(){return aFt.envelopeToJSON}});var E7e=PUr();Object.defineProperty(Ah,"assertBundle",{enumerable:!0,get:function(){return E7e.assertBundle}});Object.defineProperty(Ah,"assertBundleLatest",{enumerable:!0,get:function(){return E7e.assertBundleLatest}});Object.defineProperty(Ah,"assertBundleV01",{enumerable:!0,get:function(){return E7e.assertBundleV01}});Object.defineProperty(Ah,"assertBundleV02",{enumerable:!0,get:function(){return E7e.assertBundleV02}});Object.defineProperty(Ah,"isBundleV01",{enumerable:!0,get:function(){return E7e.isBundleV01}})});var v7e=H(lFt=>{"use strict";Object.defineProperty(lFt,"__esModule",{value:!0});lFt.ByteStream=void 0;var OUr=class extends Error{},cFt=class e{constructor(t){this.start=0,t?(this.buf=t,this.view=Buffer.from(t)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(t){this.start=t}slice(t,r){let n=t+r;if(n>this.length)throw new OUr("request past end of buffer");return this.view.subarray(t,n)}appendChar(t){this.ensureCapacity(1),this.view[this.start]=t,this.start+=1}appendUint16(t){this.ensureCapacity(2);let r=new Uint16Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[1],this.view[this.start+1]=n[0],this.start+=2}appendUint24(t){this.ensureCapacity(3);let r=new Uint32Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[2],this.view[this.start+1]=n[1],this.view[this.start+2]=n[0],this.start+=3}appendView(t){this.ensureCapacity(t.length),this.view.set(t,this.start),this.start+=t.length}getBlock(t){if(t<=0)return Buffer.alloc(0);if(this.start+t>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+t);return this.start+=t,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let t=this.getBlock(2);return t[0]<<8|t[1]}ensureCapacity(t){if(this.start+t>this.view.byteLength){let r=e.BLOCK_SIZE+(t>e.BLOCK_SIZE?t:0);this.realloc(this.view.byteLength+r)}}realloc(t){let r=new ArrayBuffer(t),n=Buffer.from(r);n.set(this.view),this.buf=r,this.view=n}};lFt.ByteStream=cFt;cFt.BLOCK_SIZE=1024});var uFt=H(xGe=>{"use strict";Object.defineProperty(xGe,"__esModule",{value:!0});xGe.ASN1TypeError=xGe.ASN1ParseError=void 0;var MUr=class extends Error{};xGe.ASN1ParseError=MUr;var HUr=class extends Error{};xGe.ASN1TypeError=HUr});var Mps=H(gFt=>{"use strict";Object.defineProperty(gFt,"__esModule",{value:!0});gFt.decodeLength=UEl;gFt.encodeLength=KEl;var Ops=uFt();function UEl(e){let t=e.getUint8();if(!(t&128))return t;let r=t&127;if(r>6)throw new Ops.ASN1ParseError("length exceeds 6 byte limit");let n=0;for(let a=0;a0n;)r.unshift(Number(t&255n)),t=t>>8n;return Buffer.from([128|r.length,...r])}});var Yps=H(xue=>{"use strict";Object.defineProperty(xue,"__esModule",{value:!0});xue.parseInteger=qEl;xue.parseStringASCII=Hps;xue.parseTime=$El;xue.parseOID=e1l;xue.parseBoolean=t1l;xue.parseBitString=r1l;var jEl=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,zEl=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function qEl(e){let t=0,r=e.length,n=e[t],a=n>127,o=a?255:0;for(;n==o&&++t=50?1900:2e3,n[1]=a.toString()}return new Date(`${n[1]}-${n[2]}-${n[3]}T${n[4]}:${n[5]}:${n[6]}Z`)}function e1l(e){let t=0,r=e.length,n=e[t++],a=Math.floor(n/40),o=n%40,l=`${a}.${o}`,A=0;for(;t=A;--f)a.push(l>>f&1)}return a}});var Xps=H(AFt=>{"use strict";Object.defineProperty(AFt,"__esModule",{value:!0});AFt.ASN1Tag=void 0;var Qps=uFt(),I0e={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},YUr={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},QUr=class{constructor(t){if(this.number=t&31,this.constructed=(t&32)===32,this.class=t>>6,this.number===31)throw new Qps.ASN1ParseError("long form tags not supported");if(this.class===YUr.UNIVERSAL&&this.number===0)throw new Qps.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===YUr.UNIVERSAL}isContextSpecific(t){let r=this.class===YUr.CONTEXT_SPECIFIC;return t!==void 0?r&&this.number===t:r}isBoolean(){return this.isUniversal()&&this.number===I0e.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===I0e.INTEGER}isBitString(){return this.isUniversal()&&this.number===I0e.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===I0e.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===I0e.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===I0e.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===I0e.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};AFt.ASN1Tag=QUr});var jps=H(pFt=>{"use strict";Object.defineProperty(pFt,"__esModule",{value:!0});pFt.ASN1Obj=void 0;var XUr=v7e(),h0e=uFt(),Ups=Mps(),GGe=Yps(),n1l=Xps(),dFt=class{constructor(t,r,n){this.tag=t,this.value=r,this.subs=n}static parseBuffer(t){return Kps(new XUr.ByteStream(t))}toDER(){let t=new XUr.ByteStream;if(this.subs.length>0)for(let a of this.subs)t.appendView(a.toDER());else t.appendView(this.value);let r=t.buffer,n=new XUr.ByteStream;return n.appendChar(this.tag.toDER()),n.appendView((0,Ups.encodeLength)(r.length)),n.appendView(r),n.buffer}toBoolean(){if(!this.tag.isBoolean())throw new h0e.ASN1TypeError("not a boolean");return(0,GGe.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new h0e.ASN1TypeError("not an integer");return(0,GGe.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new h0e.ASN1TypeError("not an OID");return(0,GGe.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,GGe.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,GGe.parseTime)(this.value,!1);default:throw new h0e.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new h0e.ASN1TypeError("not a bit string");return(0,GGe.parseBitString)(this.value)}};pFt.ASN1Obj=dFt;function Kps(e){let t=new n1l.ASN1Tag(e.getUint8()),r=(0,Ups.decodeLength)(e),n=e.slice(e.position,r),a=e.position,o=[];if(t.constructed)o=Jps(e,r);else if(t.isOctetString())try{o=Jps(e,r)}catch{}return o.length===0&&e.seek(a+r),new dFt(t,n,o)}function Jps(e,t){let r=e.position+t;if(r>e.length)throw new h0e.ASN1ParseError("invalid length");let n=[];for(;e.position{"use strict";Object.defineProperty(fFt,"__esModule",{value:!0});fFt.ASN1Obj=void 0;var i1l=jps();Object.defineProperty(fFt,"ASN1Obj",{enumerable:!0,get:function(){return i1l.ASN1Obj}})});var FGe=H(Gue=>{"use strict";var s1l=Gue&&Gue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gue,"__esModule",{value:!0});Gue.createPublicKey=o1l;Gue.digest=a1l;Gue.verify=c1l;Gue.bufferEqual=l1l;var B7e=s1l(wt("crypto"));function o1l(e,t="spki"){return typeof e=="string"?B7e.default.createPublicKey(e):B7e.default.createPublicKey({key:e,format:"der",type:t})}function a1l(e,...t){let r=B7e.default.createHash(e);for(let n of t)r.update(n);return r.digest()}function c1l(e,t,r,n){try{return B7e.default.verify(n,e,t,r)}catch{return!1}}function l1l(e,t){try{return B7e.default.timingSafeEqual(e,t)}catch{return!1}}});var zps=H(JUr=>{"use strict";Object.defineProperty(JUr,"__esModule",{value:!0});JUr.preAuthEncoding=g1l;var u1l="DSSEv1";function g1l(e,t){let r=[u1l,e.length,e,t.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),t])}});var efs=H(hFt=>{"use strict";Object.defineProperty(hFt,"__esModule",{value:!0});hFt.base64Encode=A1l;hFt.base64Decode=d1l;var qps="base64",$ps="utf-8";function A1l(e){return Buffer.from(e,$ps).toString(qps)}function d1l(e){return Buffer.from(e,qps).toString($ps)}});var tfs=H(KUr=>{"use strict";Object.defineProperty(KUr,"__esModule",{value:!0});KUr.canonicalize=UUr;function UUr(e){let t="";if(e===null||typeof e!="object"||e.toJSON!=null)t+=JSON.stringify(e);else if(Array.isArray(e)){t+="[";let r=!0;e.forEach(n=>{r||(t+=","),r=!1,t+=UUr(n)}),t+="]"}else{t+="{";let r=!0;Object.keys(e).sort().forEach(n=>{r||(t+=","),r=!1,t+=JSON.stringify(n),t+=":",t+=UUr(e[n])}),t+="}"}return t}});var jUr=H(mFt=>{"use strict";Object.defineProperty(mFt,"__esModule",{value:!0});mFt.toDER=I1l;mFt.fromDER=h1l;var p1l=/-----BEGIN (.*)-----/,f1l=/-----END (.*)-----/;function I1l(e){let t="";return e.split(` -`).forEach(r=>{r.match(p1l)||r.match(f1l)||(t+=r)}),Buffer.from(t,"base64")}function h1l(e,t="CERTIFICATE"){let n=e.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${t}-----`,...n,`-----END ${t}-----`].join(` + Found: ${e.length}`);throw A.code="EBADSIZE",A.found=e.length,A.expected=r.size,A.sri=t,A}else{let A=new Error(`Integrity checksum failed when using ${n}: Wanted ${t}, but got ${o}. (${e.length} bytes)`);throw A.code="EINTEGRITY",A.found=o,A.expected=t,A.algorithm=n,A.sri=t,A}}m6.exports.checkStream=CEl;function CEl(e,t,r){if(r=r||Object.create(null),r.integrity=t,t=YO(t,r),!t||!Object.keys(t).length)return Promise.reject(Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"}));let n=kUr(r);return new Promise((a,o)=>{e.pipe(n),e.on("error",o),n.on("error",o);let l;n.on("verified",A=>{l=A}),n.on("end",()=>a(l)),n.resume()})}m6.exports.integrityStream=kUr;function kUr(e=Object.create(null)){return new NUr(e)}m6.exports.create=_El;function _El(e){let t=e?.algorithms||[...DUr],r=y7e(e?.options),n=t.map(_7e.createHash);return{update:function(a,o){return n.forEach(l=>l.update(a,o)),this},digest:function(){return t.reduce((o,l)=>{let A=n.shift().digest("base64"),f=new Xte(`${l}-${A}${r}`,e);if(f.algorithm&&f.digest){let I=f.algorithm;o[I]||(o[I]=[]),o[I].push(f)}return o},new A0e)}}}var yEl=_7e.getHashes(),pps=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(e=>yEl.includes(e));function bEl(e,t){return pps.indexOf(e.toLowerCase())>=pps.indexOf(t.toLowerCase())?e:t}});var xUr=H(Rue=>{"use strict";Object.defineProperty(Rue,"__esModule",{value:!0});Rue.Signature=Rue.Envelope=void 0;Rue.Envelope={fromJSON(e){return{payload:jGt(e.payload)?Buffer.from(fps(e.payload)):Buffer.alloc(0),payloadType:jGt(e.payloadType)?globalThis.String(e.payloadType):"",signatures:globalThis.Array.isArray(e?.signatures)?e.signatures.map(t=>Rue.Signature.fromJSON(t)):[]}},toJSON(e){let t={};return e.payload.length!==0&&(t.payload=Ips(e.payload)),e.payloadType!==""&&(t.payloadType=e.payloadType),e.signatures?.length&&(t.signatures=e.signatures.map(r=>Rue.Signature.toJSON(r))),t}};Rue.Signature={fromJSON(e){return{sig:jGt(e.sig)?Buffer.from(fps(e.sig)):Buffer.alloc(0),keyid:jGt(e.keyid)?globalThis.String(e.keyid):""}},toJSON(e){let t={};return e.sig.length!==0&&(t.sig=Ips(e.sig)),e.keyid!==""&&(t.keyid=e.keyid),t}};function fps(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function Ips(e){return globalThis.Buffer.from(e).toString("base64")}function jGt(e){return e!=null}});var mps=H(zGt=>{"use strict";Object.defineProperty(zGt,"__esModule",{value:!0});zGt.Timestamp=void 0;zGt.Timestamp={fromJSON(e){return{seconds:hps(e.seconds)?globalThis.String(e.seconds):"0",nanos:hps(e.nanos)?globalThis.Number(e.nanos):0}},toJSON(e){let t={};return e.seconds!=="0"&&(t.seconds=e.seconds),e.nanos!==0&&(t.nanos=Math.round(e.nanos)),t}};function hps(e){return e!=null}});var DGe=H(Vf=>{"use strict";Object.defineProperty(Vf,"__esModule",{value:!0});Vf.TimeRange=Vf.X509CertificateChain=Vf.SubjectAlternativeName=Vf.X509Certificate=Vf.DistinguishedName=Vf.ObjectIdentifierValuePair=Vf.ObjectIdentifier=Vf.PublicKeyIdentifier=Vf.PublicKey=Vf.RFC3161SignedTimestamp=Vf.LogId=Vf.MessageSignature=Vf.HashOutput=Vf.SubjectAlternativeNameType=Vf.PublicKeyDetails=Vf.HashAlgorithm=void 0;Vf.hashAlgorithmFromJSON=_ps;Vf.hashAlgorithmToJSON=yps;Vf.publicKeyDetailsFromJSON=bps;Vf.publicKeyDetailsToJSON=Eps;Vf.subjectAlternativeNameTypeFromJSON=Sps;Vf.subjectAlternativeNameTypeToJSON=vps;var EEl=mps(),UV;(function(e){e[e.HASH_ALGORITHM_UNSPECIFIED=0]="HASH_ALGORITHM_UNSPECIFIED",e[e.SHA2_256=1]="SHA2_256",e[e.SHA2_384=2]="SHA2_384",e[e.SHA2_512=3]="SHA2_512",e[e.SHA3_256=4]="SHA3_256",e[e.SHA3_384=5]="SHA3_384"})(UV||(Vf.HashAlgorithm=UV={}));function _ps(e){switch(e){case 0:case"HASH_ALGORITHM_UNSPECIFIED":return UV.HASH_ALGORITHM_UNSPECIFIED;case 1:case"SHA2_256":return UV.SHA2_256;case 2:case"SHA2_384":return UV.SHA2_384;case 3:case"SHA2_512":return UV.SHA2_512;case 4:case"SHA3_256":return UV.SHA3_256;case 5:case"SHA3_384":return UV.SHA3_384;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}function yps(e){switch(e){case UV.HASH_ALGORITHM_UNSPECIFIED:return"HASH_ALGORITHM_UNSPECIFIED";case UV.SHA2_256:return"SHA2_256";case UV.SHA2_384:return"SHA2_384";case UV.SHA2_512:return"SHA2_512";case UV.SHA3_256:return"SHA3_256";case UV.SHA3_384:return"SHA3_384";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum HashAlgorithm")}}var Lf;(function(e){e[e.PUBLIC_KEY_DETAILS_UNSPECIFIED=0]="PUBLIC_KEY_DETAILS_UNSPECIFIED",e[e.PKCS1_RSA_PKCS1V5=1]="PKCS1_RSA_PKCS1V5",e[e.PKCS1_RSA_PSS=2]="PKCS1_RSA_PSS",e[e.PKIX_RSA_PKCS1V5=3]="PKIX_RSA_PKCS1V5",e[e.PKIX_RSA_PSS=4]="PKIX_RSA_PSS",e[e.PKIX_RSA_PKCS1V15_2048_SHA256=9]="PKIX_RSA_PKCS1V15_2048_SHA256",e[e.PKIX_RSA_PKCS1V15_3072_SHA256=10]="PKIX_RSA_PKCS1V15_3072_SHA256",e[e.PKIX_RSA_PKCS1V15_4096_SHA256=11]="PKIX_RSA_PKCS1V15_4096_SHA256",e[e.PKIX_RSA_PSS_2048_SHA256=16]="PKIX_RSA_PSS_2048_SHA256",e[e.PKIX_RSA_PSS_3072_SHA256=17]="PKIX_RSA_PSS_3072_SHA256",e[e.PKIX_RSA_PSS_4096_SHA256=18]="PKIX_RSA_PSS_4096_SHA256",e[e.PKIX_ECDSA_P256_HMAC_SHA_256=6]="PKIX_ECDSA_P256_HMAC_SHA_256",e[e.PKIX_ECDSA_P256_SHA_256=5]="PKIX_ECDSA_P256_SHA_256",e[e.PKIX_ECDSA_P384_SHA_384=12]="PKIX_ECDSA_P384_SHA_384",e[e.PKIX_ECDSA_P521_SHA_512=13]="PKIX_ECDSA_P521_SHA_512",e[e.PKIX_ED25519=7]="PKIX_ED25519",e[e.PKIX_ED25519_PH=8]="PKIX_ED25519_PH",e[e.PKIX_ECDSA_P384_SHA_256=19]="PKIX_ECDSA_P384_SHA_256",e[e.PKIX_ECDSA_P521_SHA_256=20]="PKIX_ECDSA_P521_SHA_256",e[e.LMS_SHA256=14]="LMS_SHA256",e[e.LMOTS_SHA256=15]="LMOTS_SHA256",e[e.ML_DSA_65=21]="ML_DSA_65",e[e.ML_DSA_87=22]="ML_DSA_87"})(Lf||(Vf.PublicKeyDetails=Lf={}));function bps(e){switch(e){case 0:case"PUBLIC_KEY_DETAILS_UNSPECIFIED":return Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED;case 1:case"PKCS1_RSA_PKCS1V5":return Lf.PKCS1_RSA_PKCS1V5;case 2:case"PKCS1_RSA_PSS":return Lf.PKCS1_RSA_PSS;case 3:case"PKIX_RSA_PKCS1V5":return Lf.PKIX_RSA_PKCS1V5;case 4:case"PKIX_RSA_PSS":return Lf.PKIX_RSA_PSS;case 9:case"PKIX_RSA_PKCS1V15_2048_SHA256":return Lf.PKIX_RSA_PKCS1V15_2048_SHA256;case 10:case"PKIX_RSA_PKCS1V15_3072_SHA256":return Lf.PKIX_RSA_PKCS1V15_3072_SHA256;case 11:case"PKIX_RSA_PKCS1V15_4096_SHA256":return Lf.PKIX_RSA_PKCS1V15_4096_SHA256;case 16:case"PKIX_RSA_PSS_2048_SHA256":return Lf.PKIX_RSA_PSS_2048_SHA256;case 17:case"PKIX_RSA_PSS_3072_SHA256":return Lf.PKIX_RSA_PSS_3072_SHA256;case 18:case"PKIX_RSA_PSS_4096_SHA256":return Lf.PKIX_RSA_PSS_4096_SHA256;case 6:case"PKIX_ECDSA_P256_HMAC_SHA_256":return Lf.PKIX_ECDSA_P256_HMAC_SHA_256;case 5:case"PKIX_ECDSA_P256_SHA_256":return Lf.PKIX_ECDSA_P256_SHA_256;case 12:case"PKIX_ECDSA_P384_SHA_384":return Lf.PKIX_ECDSA_P384_SHA_384;case 13:case"PKIX_ECDSA_P521_SHA_512":return Lf.PKIX_ECDSA_P521_SHA_512;case 7:case"PKIX_ED25519":return Lf.PKIX_ED25519;case 8:case"PKIX_ED25519_PH":return Lf.PKIX_ED25519_PH;case 19:case"PKIX_ECDSA_P384_SHA_256":return Lf.PKIX_ECDSA_P384_SHA_256;case 20:case"PKIX_ECDSA_P521_SHA_256":return Lf.PKIX_ECDSA_P521_SHA_256;case 14:case"LMS_SHA256":return Lf.LMS_SHA256;case 15:case"LMOTS_SHA256":return Lf.LMOTS_SHA256;case 21:case"ML_DSA_65":return Lf.ML_DSA_65;case 22:case"ML_DSA_87":return Lf.ML_DSA_87;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}function Eps(e){switch(e){case Lf.PUBLIC_KEY_DETAILS_UNSPECIFIED:return"PUBLIC_KEY_DETAILS_UNSPECIFIED";case Lf.PKCS1_RSA_PKCS1V5:return"PKCS1_RSA_PKCS1V5";case Lf.PKCS1_RSA_PSS:return"PKCS1_RSA_PSS";case Lf.PKIX_RSA_PKCS1V5:return"PKIX_RSA_PKCS1V5";case Lf.PKIX_RSA_PSS:return"PKIX_RSA_PSS";case Lf.PKIX_RSA_PKCS1V15_2048_SHA256:return"PKIX_RSA_PKCS1V15_2048_SHA256";case Lf.PKIX_RSA_PKCS1V15_3072_SHA256:return"PKIX_RSA_PKCS1V15_3072_SHA256";case Lf.PKIX_RSA_PKCS1V15_4096_SHA256:return"PKIX_RSA_PKCS1V15_4096_SHA256";case Lf.PKIX_RSA_PSS_2048_SHA256:return"PKIX_RSA_PSS_2048_SHA256";case Lf.PKIX_RSA_PSS_3072_SHA256:return"PKIX_RSA_PSS_3072_SHA256";case Lf.PKIX_RSA_PSS_4096_SHA256:return"PKIX_RSA_PSS_4096_SHA256";case Lf.PKIX_ECDSA_P256_HMAC_SHA_256:return"PKIX_ECDSA_P256_HMAC_SHA_256";case Lf.PKIX_ECDSA_P256_SHA_256:return"PKIX_ECDSA_P256_SHA_256";case Lf.PKIX_ECDSA_P384_SHA_384:return"PKIX_ECDSA_P384_SHA_384";case Lf.PKIX_ECDSA_P521_SHA_512:return"PKIX_ECDSA_P521_SHA_512";case Lf.PKIX_ED25519:return"PKIX_ED25519";case Lf.PKIX_ED25519_PH:return"PKIX_ED25519_PH";case Lf.PKIX_ECDSA_P384_SHA_256:return"PKIX_ECDSA_P384_SHA_256";case Lf.PKIX_ECDSA_P521_SHA_256:return"PKIX_ECDSA_P521_SHA_256";case Lf.LMS_SHA256:return"LMS_SHA256";case Lf.LMOTS_SHA256:return"LMOTS_SHA256";case Lf.ML_DSA_65:return"ML_DSA_65";case Lf.ML_DSA_87:return"ML_DSA_87";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum PublicKeyDetails")}}var C6;(function(e){e[e.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED=0]="SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED",e[e.EMAIL=1]="EMAIL",e[e.URI=2]="URI",e[e.OTHER_NAME=3]="OTHER_NAME"})(C6||(Vf.SubjectAlternativeNameType=C6={}));function Sps(e){switch(e){case 0:case"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED":return C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED;case 1:case"EMAIL":return C6.EMAIL;case 2:case"URI":return C6.URI;case 3:case"OTHER_NAME":return C6.OTHER_NAME;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}function vps(e){switch(e){case C6.SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED:return"SUBJECT_ALTERNATIVE_NAME_TYPE_UNSPECIFIED";case C6.EMAIL:return"EMAIL";case C6.URI:return"URI";case C6.OTHER_NAME:return"OTHER_NAME";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum SubjectAlternativeNameType")}}Vf.HashOutput={fromJSON(e){return{algorithm:ST(e.algorithm)?_ps(e.algorithm):0,digest:ST(e.digest)?Buffer.from(d0e(e.digest)):Buffer.alloc(0)}},toJSON(e){let t={};return e.algorithm!==0&&(t.algorithm=yps(e.algorithm)),e.digest.length!==0&&(t.digest=p0e(e.digest)),t}};Vf.MessageSignature={fromJSON(e){return{messageDigest:ST(e.messageDigest)?Vf.HashOutput.fromJSON(e.messageDigest):void 0,signature:ST(e.signature)?Buffer.from(d0e(e.signature)):Buffer.alloc(0)}},toJSON(e){let t={};return e.messageDigest!==void 0&&(t.messageDigest=Vf.HashOutput.toJSON(e.messageDigest)),e.signature.length!==0&&(t.signature=p0e(e.signature)),t}};Vf.LogId={fromJSON(e){return{keyId:ST(e.keyId)?Buffer.from(d0e(e.keyId)):Buffer.alloc(0)}},toJSON(e){let t={};return e.keyId.length!==0&&(t.keyId=p0e(e.keyId)),t}};Vf.RFC3161SignedTimestamp={fromJSON(e){return{signedTimestamp:ST(e.signedTimestamp)?Buffer.from(d0e(e.signedTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedTimestamp.length!==0&&(t.signedTimestamp=p0e(e.signedTimestamp)),t}};Vf.PublicKey={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):void 0,keyDetails:ST(e.keyDetails)?bps(e.keyDetails):0,validFor:ST(e.validFor)?Vf.TimeRange.fromJSON(e.validFor):void 0}},toJSON(e){let t={};return e.rawBytes!==void 0&&(t.rawBytes=p0e(e.rawBytes)),e.keyDetails!==0&&(t.keyDetails=Eps(e.keyDetails)),e.validFor!==void 0&&(t.validFor=Vf.TimeRange.toJSON(e.validFor)),t}};Vf.PublicKeyIdentifier={fromJSON(e){return{hint:ST(e.hint)?globalThis.String(e.hint):""}},toJSON(e){let t={};return e.hint!==""&&(t.hint=e.hint),t}};Vf.ObjectIdentifier={fromJSON(e){return{id:globalThis.Array.isArray(e?.id)?e.id.map(t=>globalThis.Number(t)):[]}},toJSON(e){let t={};return e.id?.length&&(t.id=e.id.map(r=>Math.round(r))),t}};Vf.ObjectIdentifierValuePair={fromJSON(e){return{oid:ST(e.oid)?Vf.ObjectIdentifier.fromJSON(e.oid):void 0,value:ST(e.value)?Buffer.from(d0e(e.value)):Buffer.alloc(0)}},toJSON(e){let t={};return e.oid!==void 0&&(t.oid=Vf.ObjectIdentifier.toJSON(e.oid)),e.value.length!==0&&(t.value=p0e(e.value)),t}};Vf.DistinguishedName={fromJSON(e){return{organization:ST(e.organization)?globalThis.String(e.organization):"",commonName:ST(e.commonName)?globalThis.String(e.commonName):""}},toJSON(e){let t={};return e.organization!==""&&(t.organization=e.organization),e.commonName!==""&&(t.commonName=e.commonName),t}};Vf.X509Certificate={fromJSON(e){return{rawBytes:ST(e.rawBytes)?Buffer.from(d0e(e.rawBytes)):Buffer.alloc(0)}},toJSON(e){let t={};return e.rawBytes.length!==0&&(t.rawBytes=p0e(e.rawBytes)),t}};Vf.SubjectAlternativeName={fromJSON(e){return{type:ST(e.type)?Sps(e.type):0,identity:ST(e.regexp)?{$case:"regexp",regexp:globalThis.String(e.regexp)}:ST(e.value)?{$case:"value",value:globalThis.String(e.value)}:void 0}},toJSON(e){let t={};return e.type!==0&&(t.type=vps(e.type)),e.identity?.$case==="regexp"?t.regexp=e.identity.regexp:e.identity?.$case==="value"&&(t.value=e.identity.value),t}};Vf.X509CertificateChain={fromJSON(e){return{certificates:globalThis.Array.isArray(e?.certificates)?e.certificates.map(t=>Vf.X509Certificate.fromJSON(t)):[]}},toJSON(e){let t={};return e.certificates?.length&&(t.certificates=e.certificates.map(r=>Vf.X509Certificate.toJSON(r))),t}};Vf.TimeRange={fromJSON(e){return{start:ST(e.start)?Cps(e.start):void 0,end:ST(e.end)?Cps(e.end):void 0}},toJSON(e){let t={};return e.start!==void 0&&(t.start=e.start.toISOString()),e.end!==void 0&&(t.end=e.end.toISOString()),t}};function d0e(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function p0e(e){return globalThis.Buffer.from(e).toString("base64")}function SEl(e){let t=(globalThis.Number(e.seconds)||0)*1e3;return t+=(e.nanos||0)/1e6,new globalThis.Date(t)}function Cps(e){return e instanceof globalThis.Date?e:typeof e=="string"?new globalThis.Date(e):SEl(EEl.Timestamp.fromJSON(e))}function ST(e){return e!=null}});var GUr=H(vT=>{"use strict";Object.defineProperty(vT,"__esModule",{value:!0});vT.TransparencyLogEntry=vT.InclusionPromise=vT.InclusionProof=vT.Checkpoint=vT.KindVersion=void 0;var Bps=DGe();vT.KindVersion={fromJSON(e){return{kind:dL(e.kind)?globalThis.String(e.kind):"",version:dL(e.version)?globalThis.String(e.version):""}},toJSON(e){let t={};return e.kind!==""&&(t.kind=e.kind),e.version!==""&&(t.version=e.version),t}};vT.Checkpoint={fromJSON(e){return{envelope:dL(e.envelope)?globalThis.String(e.envelope):""}},toJSON(e){let t={};return e.envelope!==""&&(t.envelope=e.envelope),t}};vT.InclusionProof={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",rootHash:dL(e.rootHash)?Buffer.from(qGt(e.rootHash)):Buffer.alloc(0),treeSize:dL(e.treeSize)?globalThis.String(e.treeSize):"0",hashes:globalThis.Array.isArray(e?.hashes)?e.hashes.map(t=>Buffer.from(qGt(t))):[],checkpoint:dL(e.checkpoint)?vT.Checkpoint.fromJSON(e.checkpoint):void 0}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.rootHash.length!==0&&(t.rootHash=$Gt(e.rootHash)),e.treeSize!=="0"&&(t.treeSize=e.treeSize),e.hashes?.length&&(t.hashes=e.hashes.map(r=>$Gt(r))),e.checkpoint!==void 0&&(t.checkpoint=vT.Checkpoint.toJSON(e.checkpoint)),t}};vT.InclusionPromise={fromJSON(e){return{signedEntryTimestamp:dL(e.signedEntryTimestamp)?Buffer.from(qGt(e.signedEntryTimestamp)):Buffer.alloc(0)}},toJSON(e){let t={};return e.signedEntryTimestamp.length!==0&&(t.signedEntryTimestamp=$Gt(e.signedEntryTimestamp)),t}};vT.TransparencyLogEntry={fromJSON(e){return{logIndex:dL(e.logIndex)?globalThis.String(e.logIndex):"0",logId:dL(e.logId)?Bps.LogId.fromJSON(e.logId):void 0,kindVersion:dL(e.kindVersion)?vT.KindVersion.fromJSON(e.kindVersion):void 0,integratedTime:dL(e.integratedTime)?globalThis.String(e.integratedTime):"0",inclusionPromise:dL(e.inclusionPromise)?vT.InclusionPromise.fromJSON(e.inclusionPromise):void 0,inclusionProof:dL(e.inclusionProof)?vT.InclusionProof.fromJSON(e.inclusionProof):void 0,canonicalizedBody:dL(e.canonicalizedBody)?Buffer.from(qGt(e.canonicalizedBody)):Buffer.alloc(0)}},toJSON(e){let t={};return e.logIndex!=="0"&&(t.logIndex=e.logIndex),e.logId!==void 0&&(t.logId=Bps.LogId.toJSON(e.logId)),e.kindVersion!==void 0&&(t.kindVersion=vT.KindVersion.toJSON(e.kindVersion)),e.integratedTime!=="0"&&(t.integratedTime=e.integratedTime),e.inclusionPromise!==void 0&&(t.inclusionPromise=vT.InclusionPromise.toJSON(e.inclusionPromise)),e.inclusionProof!==void 0&&(t.inclusionProof=vT.InclusionProof.toJSON(e.inclusionProof)),e.canonicalizedBody.length!==0&&(t.canonicalizedBody=$Gt(e.canonicalizedBody)),t}};function qGt(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function $Gt(e){return globalThis.Buffer.from(e).toString("base64")}function dL(e){return e!=null}});var FUr=H(ZH=>{"use strict";Object.defineProperty(ZH,"__esModule",{value:!0});ZH.Bundle=ZH.VerificationMaterial=ZH.TimestampVerificationData=void 0;var wps=xUr(),_6=DGe(),Tps=GUr();ZH.TimestampVerificationData={fromJSON(e){return{rfc3161Timestamps:globalThis.Array.isArray(e?.rfc3161Timestamps)?e.rfc3161Timestamps.map(t=>_6.RFC3161SignedTimestamp.fromJSON(t)):[]}},toJSON(e){let t={};return e.rfc3161Timestamps?.length&&(t.rfc3161Timestamps=e.rfc3161Timestamps.map(r=>_6.RFC3161SignedTimestamp.toJSON(r))),t}};ZH.VerificationMaterial={fromJSON(e){return{content:Nue(e.publicKey)?{$case:"publicKey",publicKey:_6.PublicKeyIdentifier.fromJSON(e.publicKey)}:Nue(e.x509CertificateChain)?{$case:"x509CertificateChain",x509CertificateChain:_6.X509CertificateChain.fromJSON(e.x509CertificateChain)}:Nue(e.certificate)?{$case:"certificate",certificate:_6.X509Certificate.fromJSON(e.certificate)}:void 0,tlogEntries:globalThis.Array.isArray(e?.tlogEntries)?e.tlogEntries.map(t=>Tps.TransparencyLogEntry.fromJSON(t)):[],timestampVerificationData:Nue(e.timestampVerificationData)?ZH.TimestampVerificationData.fromJSON(e.timestampVerificationData):void 0}},toJSON(e){let t={};return e.content?.$case==="publicKey"?t.publicKey=_6.PublicKeyIdentifier.toJSON(e.content.publicKey):e.content?.$case==="x509CertificateChain"?t.x509CertificateChain=_6.X509CertificateChain.toJSON(e.content.x509CertificateChain):e.content?.$case==="certificate"&&(t.certificate=_6.X509Certificate.toJSON(e.content.certificate)),e.tlogEntries?.length&&(t.tlogEntries=e.tlogEntries.map(r=>Tps.TransparencyLogEntry.toJSON(r))),e.timestampVerificationData!==void 0&&(t.timestampVerificationData=ZH.TimestampVerificationData.toJSON(e.timestampVerificationData)),t}};ZH.Bundle={fromJSON(e){return{mediaType:Nue(e.mediaType)?globalThis.String(e.mediaType):"",verificationMaterial:Nue(e.verificationMaterial)?ZH.VerificationMaterial.fromJSON(e.verificationMaterial):void 0,content:Nue(e.messageSignature)?{$case:"messageSignature",messageSignature:_6.MessageSignature.fromJSON(e.messageSignature)}:Nue(e.dsseEnvelope)?{$case:"dsseEnvelope",dsseEnvelope:wps.Envelope.fromJSON(e.dsseEnvelope)}:void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.verificationMaterial!==void 0&&(t.verificationMaterial=ZH.VerificationMaterial.toJSON(e.verificationMaterial)),e.content?.$case==="messageSignature"?t.messageSignature=_6.MessageSignature.toJSON(e.content.messageSignature):e.content?.$case==="dsseEnvelope"&&(t.dsseEnvelope=wps.Envelope.toJSON(e.content.dsseEnvelope)),t}};function Nue(e){return e!=null}});var ZUr=H(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.ClientTrustConfig=ZI.ServiceConfiguration=ZI.Service=ZI.SigningConfig=ZI.TrustedRoot=ZI.CertificateAuthority=ZI.TransparencyLogInstance=ZI.ServiceSelector=void 0;ZI.serviceSelectorFromJSON=Rps;ZI.serviceSelectorToJSON=Nps;var nF=DGe(),y6;(function(e){e[e.SERVICE_SELECTOR_UNDEFINED=0]="SERVICE_SELECTOR_UNDEFINED",e[e.ALL=1]="ALL",e[e.ANY=2]="ANY",e[e.EXACT=3]="EXACT"})(y6||(ZI.ServiceSelector=y6={}));function Rps(e){switch(e){case 0:case"SERVICE_SELECTOR_UNDEFINED":return y6.SERVICE_SELECTOR_UNDEFINED;case 1:case"ALL":return y6.ALL;case 2:case"ANY":return y6.ANY;case 3:case"EXACT":return y6.EXACT;default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}function Nps(e){switch(e){case y6.SERVICE_SELECTOR_UNDEFINED:return"SERVICE_SELECTOR_UNDEFINED";case y6.ALL:return"ALL";case y6.ANY:return"ANY";case y6.EXACT:return"EXACT";default:throw new globalThis.Error("Unrecognized enum value "+e+" for enum ServiceSelector")}}ZI.TransparencyLogInstance={fromJSON(e){return{baseUrl:P2(e.baseUrl)?globalThis.String(e.baseUrl):"",hashAlgorithm:P2(e.hashAlgorithm)?(0,nF.hashAlgorithmFromJSON)(e.hashAlgorithm):0,publicKey:P2(e.publicKey)?nF.PublicKey.fromJSON(e.publicKey):void 0,logId:P2(e.logId)?nF.LogId.fromJSON(e.logId):void 0,checkpointKeyId:P2(e.checkpointKeyId)?nF.LogId.fromJSON(e.checkpointKeyId):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.baseUrl!==""&&(t.baseUrl=e.baseUrl),e.hashAlgorithm!==0&&(t.hashAlgorithm=(0,nF.hashAlgorithmToJSON)(e.hashAlgorithm)),e.publicKey!==void 0&&(t.publicKey=nF.PublicKey.toJSON(e.publicKey)),e.logId!==void 0&&(t.logId=nF.LogId.toJSON(e.logId)),e.checkpointKeyId!==void 0&&(t.checkpointKeyId=nF.LogId.toJSON(e.checkpointKeyId)),e.operator!==""&&(t.operator=e.operator),t}};ZI.CertificateAuthority={fromJSON(e){return{subject:P2(e.subject)?nF.DistinguishedName.fromJSON(e.subject):void 0,uri:P2(e.uri)?globalThis.String(e.uri):"",certChain:P2(e.certChain)?nF.X509CertificateChain.fromJSON(e.certChain):void 0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.subject!==void 0&&(t.subject=nF.DistinguishedName.toJSON(e.subject)),e.uri!==""&&(t.uri=e.uri),e.certChain!==void 0&&(t.certChain=nF.X509CertificateChain.toJSON(e.certChain)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.TrustedRoot={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",tlogs:globalThis.Array.isArray(e?.tlogs)?e.tlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],certificateAuthorities:globalThis.Array.isArray(e?.certificateAuthorities)?e.certificateAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[],ctlogs:globalThis.Array.isArray(e?.ctlogs)?e.ctlogs.map(t=>ZI.TransparencyLogInstance.fromJSON(t)):[],timestampAuthorities:globalThis.Array.isArray(e?.timestampAuthorities)?e.timestampAuthorities.map(t=>ZI.CertificateAuthority.fromJSON(t)):[]}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.tlogs?.length&&(t.tlogs=e.tlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.certificateAuthorities?.length&&(t.certificateAuthorities=e.certificateAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),e.ctlogs?.length&&(t.ctlogs=e.ctlogs.map(r=>ZI.TransparencyLogInstance.toJSON(r))),e.timestampAuthorities?.length&&(t.timestampAuthorities=e.timestampAuthorities.map(r=>ZI.CertificateAuthority.toJSON(r))),t}};ZI.SigningConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",caUrls:globalThis.Array.isArray(e?.caUrls)?e.caUrls.map(t=>ZI.Service.fromJSON(t)):[],oidcUrls:globalThis.Array.isArray(e?.oidcUrls)?e.oidcUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogUrls:globalThis.Array.isArray(e?.rekorTlogUrls)?e.rekorTlogUrls.map(t=>ZI.Service.fromJSON(t)):[],rekorTlogConfig:P2(e.rekorTlogConfig)?ZI.ServiceConfiguration.fromJSON(e.rekorTlogConfig):void 0,tsaUrls:globalThis.Array.isArray(e?.tsaUrls)?e.tsaUrls.map(t=>ZI.Service.fromJSON(t)):[],tsaConfig:P2(e.tsaConfig)?ZI.ServiceConfiguration.fromJSON(e.tsaConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.caUrls?.length&&(t.caUrls=e.caUrls.map(r=>ZI.Service.toJSON(r))),e.oidcUrls?.length&&(t.oidcUrls=e.oidcUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogUrls?.length&&(t.rekorTlogUrls=e.rekorTlogUrls.map(r=>ZI.Service.toJSON(r))),e.rekorTlogConfig!==void 0&&(t.rekorTlogConfig=ZI.ServiceConfiguration.toJSON(e.rekorTlogConfig)),e.tsaUrls?.length&&(t.tsaUrls=e.tsaUrls.map(r=>ZI.Service.toJSON(r))),e.tsaConfig!==void 0&&(t.tsaConfig=ZI.ServiceConfiguration.toJSON(e.tsaConfig)),t}};ZI.Service={fromJSON(e){return{url:P2(e.url)?globalThis.String(e.url):"",majorApiVersion:P2(e.majorApiVersion)?globalThis.Number(e.majorApiVersion):0,validFor:P2(e.validFor)?nF.TimeRange.fromJSON(e.validFor):void 0,operator:P2(e.operator)?globalThis.String(e.operator):""}},toJSON(e){let t={};return e.url!==""&&(t.url=e.url),e.majorApiVersion!==0&&(t.majorApiVersion=Math.round(e.majorApiVersion)),e.validFor!==void 0&&(t.validFor=nF.TimeRange.toJSON(e.validFor)),e.operator!==""&&(t.operator=e.operator),t}};ZI.ServiceConfiguration={fromJSON(e){return{selector:P2(e.selector)?Rps(e.selector):0,count:P2(e.count)?globalThis.Number(e.count):0}},toJSON(e){let t={};return e.selector!==0&&(t.selector=Nps(e.selector)),e.count!==0&&(t.count=Math.round(e.count)),t}};ZI.ClientTrustConfig={fromJSON(e){return{mediaType:P2(e.mediaType)?globalThis.String(e.mediaType):"",trustedRoot:P2(e.trustedRoot)?ZI.TrustedRoot.fromJSON(e.trustedRoot):void 0,signingConfig:P2(e.signingConfig)?ZI.SigningConfig.fromJSON(e.signingConfig):void 0}},toJSON(e){let t={};return e.mediaType!==""&&(t.mediaType=e.mediaType),e.trustedRoot!==void 0&&(t.trustedRoot=ZI.TrustedRoot.toJSON(e.trustedRoot)),e.signingConfig!==void 0&&(t.signingConfig=ZI.SigningConfig.toJSON(e.signingConfig)),t}};function P2(e){return e!=null}});var xps=H(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.Input=LI.Artifact=LI.ArtifactVerificationOptions_ObserverTimestampOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions=LI.ArtifactVerificationOptions_CtlogOptions=LI.ArtifactVerificationOptions_TlogOptions=LI.ArtifactVerificationOptions=LI.PublicKeyIdentities=LI.CertificateIdentities=LI.CertificateIdentity=void 0;var Dps=FUr(),Due=DGe(),kps=ZUr();LI.CertificateIdentity={fromJSON(e){return{issuer:tE(e.issuer)?globalThis.String(e.issuer):"",san:tE(e.san)?Due.SubjectAlternativeName.fromJSON(e.san):void 0,oids:globalThis.Array.isArray(e?.oids)?e.oids.map(t=>Due.ObjectIdentifierValuePair.fromJSON(t)):[]}},toJSON(e){let t={};return e.issuer!==""&&(t.issuer=e.issuer),e.san!==void 0&&(t.san=Due.SubjectAlternativeName.toJSON(e.san)),e.oids?.length&&(t.oids=e.oids.map(r=>Due.ObjectIdentifierValuePair.toJSON(r))),t}};LI.CertificateIdentities={fromJSON(e){return{identities:globalThis.Array.isArray(e?.identities)?e.identities.map(t=>LI.CertificateIdentity.fromJSON(t)):[]}},toJSON(e){let t={};return e.identities?.length&&(t.identities=e.identities.map(r=>LI.CertificateIdentity.toJSON(r))),t}};LI.PublicKeyIdentities={fromJSON(e){return{publicKeys:globalThis.Array.isArray(e?.publicKeys)?e.publicKeys.map(t=>Due.PublicKey.fromJSON(t)):[]}},toJSON(e){let t={};return e.publicKeys?.length&&(t.publicKeys=e.publicKeys.map(r=>Due.PublicKey.toJSON(r))),t}};LI.ArtifactVerificationOptions={fromJSON(e){return{signers:tE(e.certificateIdentities)?{$case:"certificateIdentities",certificateIdentities:LI.CertificateIdentities.fromJSON(e.certificateIdentities)}:tE(e.publicKeys)?{$case:"publicKeys",publicKeys:LI.PublicKeyIdentities.fromJSON(e.publicKeys)}:void 0,tlogOptions:tE(e.tlogOptions)?LI.ArtifactVerificationOptions_TlogOptions.fromJSON(e.tlogOptions):void 0,ctlogOptions:tE(e.ctlogOptions)?LI.ArtifactVerificationOptions_CtlogOptions.fromJSON(e.ctlogOptions):void 0,tsaOptions:tE(e.tsaOptions)?LI.ArtifactVerificationOptions_TimestampAuthorityOptions.fromJSON(e.tsaOptions):void 0,integratedTsOptions:tE(e.integratedTsOptions)?LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.fromJSON(e.integratedTsOptions):void 0,observerOptions:tE(e.observerOptions)?LI.ArtifactVerificationOptions_ObserverTimestampOptions.fromJSON(e.observerOptions):void 0}},toJSON(e){let t={};return e.signers?.$case==="certificateIdentities"?t.certificateIdentities=LI.CertificateIdentities.toJSON(e.signers.certificateIdentities):e.signers?.$case==="publicKeys"&&(t.publicKeys=LI.PublicKeyIdentities.toJSON(e.signers.publicKeys)),e.tlogOptions!==void 0&&(t.tlogOptions=LI.ArtifactVerificationOptions_TlogOptions.toJSON(e.tlogOptions)),e.ctlogOptions!==void 0&&(t.ctlogOptions=LI.ArtifactVerificationOptions_CtlogOptions.toJSON(e.ctlogOptions)),e.tsaOptions!==void 0&&(t.tsaOptions=LI.ArtifactVerificationOptions_TimestampAuthorityOptions.toJSON(e.tsaOptions)),e.integratedTsOptions!==void 0&&(t.integratedTsOptions=LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions.toJSON(e.integratedTsOptions)),e.observerOptions!==void 0&&(t.observerOptions=LI.ArtifactVerificationOptions_ObserverTimestampOptions.toJSON(e.observerOptions)),t}};LI.ArtifactVerificationOptions_TlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,performOnlineVerification:tE(e.performOnlineVerification)?globalThis.Boolean(e.performOnlineVerification):!1,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.performOnlineVerification!==!1&&(t.performOnlineVerification=e.performOnlineVerification),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_CtlogOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TimestampAuthorityOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_TlogIntegratedTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.ArtifactVerificationOptions_ObserverTimestampOptions={fromJSON(e){return{threshold:tE(e.threshold)?globalThis.Number(e.threshold):0,disable:tE(e.disable)?globalThis.Boolean(e.disable):!1}},toJSON(e){let t={};return e.threshold!==0&&(t.threshold=Math.round(e.threshold)),e.disable!==!1&&(t.disable=e.disable),t}};LI.Artifact={fromJSON(e){return{data:tE(e.artifactUri)?{$case:"artifactUri",artifactUri:globalThis.String(e.artifactUri)}:tE(e.artifact)?{$case:"artifact",artifact:Buffer.from(vEl(e.artifact))}:tE(e.artifactDigest)?{$case:"artifactDigest",artifactDigest:Due.HashOutput.fromJSON(e.artifactDigest)}:void 0}},toJSON(e){let t={};return e.data?.$case==="artifactUri"?t.artifactUri=e.data.artifactUri:e.data?.$case==="artifact"?t.artifact=BEl(e.data.artifact):e.data?.$case==="artifactDigest"&&(t.artifactDigest=Due.HashOutput.toJSON(e.data.artifactDigest)),t}};LI.Input={fromJSON(e){return{artifactTrustRoot:tE(e.artifactTrustRoot)?kps.TrustedRoot.fromJSON(e.artifactTrustRoot):void 0,artifactVerificationOptions:tE(e.artifactVerificationOptions)?LI.ArtifactVerificationOptions.fromJSON(e.artifactVerificationOptions):void 0,bundle:tE(e.bundle)?Dps.Bundle.fromJSON(e.bundle):void 0,artifact:tE(e.artifact)?LI.Artifact.fromJSON(e.artifact):void 0}},toJSON(e){let t={};return e.artifactTrustRoot!==void 0&&(t.artifactTrustRoot=kps.TrustedRoot.toJSON(e.artifactTrustRoot)),e.artifactVerificationOptions!==void 0&&(t.artifactVerificationOptions=LI.ArtifactVerificationOptions.toJSON(e.artifactVerificationOptions)),e.bundle!==void 0&&(t.bundle=Dps.Bundle.toJSON(e.bundle)),e.artifact!==void 0&&(t.artifact=LI.Artifact.toJSON(e.artifact)),t}};function vEl(e){return Uint8Array.from(globalThis.Buffer.from(e,"base64"))}function BEl(e){return globalThis.Buffer.from(e).toString("base64")}function tE(e){return e!=null}});var b7e=H(LH=>{"use strict";var wEl=LH&&LH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),kGe=LH&&LH.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&wEl(t,e,r)};Object.defineProperty(LH,"__esModule",{value:!0});kGe(xUr(),LH);kGe(FUr(),LH);kGe(DGe(),LH);kGe(GUr(),LH);kGe(ZUr(),LH);kGe(xps(),LH)});var eFt=H(KV=>{"use strict";Object.defineProperty(KV,"__esModule",{value:!0});KV.BUNDLE_V03_MEDIA_TYPE=KV.BUNDLE_V03_LEGACY_MEDIA_TYPE=KV.BUNDLE_V02_MEDIA_TYPE=KV.BUNDLE_V01_MEDIA_TYPE=void 0;KV.isBundleWithCertificateChain=TEl;KV.isBundleWithPublicKey=REl;KV.isBundleWithMessageSignature=NEl;KV.isBundleWithDsseEnvelope=DEl;KV.BUNDLE_V01_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.1";KV.BUNDLE_V02_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.2";KV.BUNDLE_V03_LEGACY_MEDIA_TYPE="application/vnd.dev.sigstore.bundle+json;version=0.3";KV.BUNDLE_V03_MEDIA_TYPE="application/vnd.dev.sigstore.bundle.v0.3+json";function TEl(e){return e.verificationMaterial.content.$case==="x509CertificateChain"}function REl(e){return e.verificationMaterial.content.$case==="publicKey"}function NEl(e){return e.content.$case==="messageSignature"}function DEl(e){return e.content.$case==="dsseEnvelope"}});var Fps=H(rFt=>{"use strict";Object.defineProperty(rFt,"__esModule",{value:!0});rFt.toMessageSignatureBundle=xEl;rFt.toDSSEBundle=GEl;var kEl=b7e(),tFt=eFt();function xEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"messageSignature",messageSignature:{messageDigest:{algorithm:kEl.HashAlgorithm.SHA2_256,digest:e.digest},signature:e.signature}},verificationMaterial:Gps(e)}}function GEl(e){return{mediaType:e.certificateChain?tFt.BUNDLE_V02_MEDIA_TYPE:tFt.BUNDLE_V03_MEDIA_TYPE,content:{$case:"dsseEnvelope",dsseEnvelope:FEl(e)},verificationMaterial:Gps(e)}}function FEl(e){return{payloadType:e.artifactType,payload:e.artifact,signatures:[ZEl(e)]}}function ZEl(e){return{keyid:e.keyHint||"",sig:e.signature}}function Gps(e){return{content:LEl(e),tlogEntries:[],timestampVerificationData:{rfc3161Timestamps:[]}}}function LEl(e){return e.certificate?e.certificateChain?{$case:"x509CertificateChain",x509CertificateChain:{certificates:[{rawBytes:e.certificate}]}}:{$case:"certificate",certificate:{rawBytes:e.certificate}}:{$case:"publicKey",publicKey:{hint:e.keyHint||""}}}});var VUr=H(nFt=>{"use strict";Object.defineProperty(nFt,"__esModule",{value:!0});nFt.ValidationError=void 0;var LUr=class extends Error{constructor(t,r){super(t),this.fields=r}};nFt.ValidationError=LUr});var PUr=H(f0e=>{"use strict";Object.defineProperty(f0e,"__esModule",{value:!0});f0e.assertBundle=VEl;f0e.assertBundleV01=Zps;f0e.isBundleV01=PEl;f0e.assertBundleV02=WEl;f0e.assertBundleLatest=OEl;var iFt=VUr();function VEl(e){let t=sFt(e);if(t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function Zps(e){let t=[];if(t.push(...sFt(e)),t.push(...MEl(e)),t.length>0)throw new iFt.ValidationError("invalid v0.1 bundle",t)}function PEl(e){try{return Zps(e),!0}catch{return!1}}function WEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.length>0)throw new iFt.ValidationError("invalid v0.2 bundle",t)}function OEl(e){let t=[];if(t.push(...sFt(e)),t.push(...Lps(e)),t.push(...HEl(e)),t.length>0)throw new iFt.ValidationError("invalid bundle",t)}function sFt(e){let t=[];if((e.mediaType===void 0||!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\+json;version=\d\.\d/)&&!e.mediaType.match(/^application\/vnd\.dev\.sigstore\.bundle\.v\d\.\d\+json/))&&t.push("mediaType"),e.content===void 0)t.push("content");else switch(e.content.$case){case"messageSignature":e.content.messageSignature.messageDigest===void 0?t.push("content.messageSignature.messageDigest"):e.content.messageSignature.messageDigest.digest.length===0&&t.push("content.messageSignature.messageDigest.digest"),e.content.messageSignature.signature.length===0&&t.push("content.messageSignature.signature");break;case"dsseEnvelope":e.content.dsseEnvelope.payload.length===0&&t.push("content.dsseEnvelope.payload"),e.content.dsseEnvelope.signatures.length!==1?t.push("content.dsseEnvelope.signatures"):e.content.dsseEnvelope.signatures[0].sig.length===0&&t.push("content.dsseEnvelope.signatures[0].sig");break}if(e.verificationMaterial===void 0)t.push("verificationMaterial");else{if(e.verificationMaterial.content===void 0)t.push("verificationMaterial.content");else switch(e.verificationMaterial.content.$case){case"x509CertificateChain":e.verificationMaterial.content.x509CertificateChain.certificates.length===0&&t.push("verificationMaterial.content.x509CertificateChain.certificates"),e.verificationMaterial.content.x509CertificateChain.certificates.forEach((r,n)=>{r.rawBytes.length===0&&t.push(`verificationMaterial.content.x509CertificateChain.certificates[${n}].rawBytes`)});break;case"certificate":e.verificationMaterial.content.certificate.rawBytes.length===0&&t.push("verificationMaterial.content.certificate.rawBytes");break}e.verificationMaterial.tlogEntries===void 0?t.push("verificationMaterial.tlogEntries"):e.verificationMaterial.tlogEntries.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.logId===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].logId`),r.kindVersion===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].kindVersion`)})}return t}function MEl(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionPromise===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionPromise`)}),t}function Lps(e){let t=[];return e.verificationMaterial&&e.verificationMaterial.tlogEntries?.length>0&&e.verificationMaterial.tlogEntries.forEach((r,n)=>{r.inclusionProof===void 0?t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof`):r.inclusionProof.checkpoint===void 0&&t.push(`verificationMaterial.tlogEntries[${n}].inclusionProof.checkpoint`)}),t}function HEl(e){let t=[];return e.verificationMaterial?.content?.$case==="x509CertificateChain"&&t.push("verificationMaterial.content.$case"),t}});var Pps=H(b6=>{"use strict";Object.defineProperty(b6,"__esModule",{value:!0});b6.envelopeToJSON=b6.envelopeFromJSON=b6.bundleToJSON=b6.bundleFromJSON=void 0;var oFt=b7e(),Vps=eFt(),WUr=PUr(),YEl=e=>{let t=oFt.Bundle.fromJSON(e);switch(t.mediaType){case Vps.BUNDLE_V01_MEDIA_TYPE:(0,WUr.assertBundleV01)(t);break;case Vps.BUNDLE_V02_MEDIA_TYPE:(0,WUr.assertBundleV02)(t);break;default:(0,WUr.assertBundleLatest)(t);break}return t};b6.bundleFromJSON=YEl;var QEl=e=>oFt.Bundle.toJSON(e);b6.bundleToJSON=QEl;var XEl=e=>oFt.Envelope.fromJSON(e);b6.envelopeFromJSON=XEl;var JEl=e=>oFt.Envelope.toJSON(e);b6.envelopeToJSON=JEl});var S7e=H(Ah=>{"use strict";Object.defineProperty(Ah,"__esModule",{value:!0});Ah.isBundleV01=Ah.assertBundleV02=Ah.assertBundleV01=Ah.assertBundleLatest=Ah.assertBundle=Ah.envelopeToJSON=Ah.envelopeFromJSON=Ah.bundleToJSON=Ah.bundleFromJSON=Ah.ValidationError=Ah.isBundleWithPublicKey=Ah.isBundleWithMessageSignature=Ah.isBundleWithDsseEnvelope=Ah.isBundleWithCertificateChain=Ah.BUNDLE_V03_MEDIA_TYPE=Ah.BUNDLE_V03_LEGACY_MEDIA_TYPE=Ah.BUNDLE_V02_MEDIA_TYPE=Ah.BUNDLE_V01_MEDIA_TYPE=Ah.toMessageSignatureBundle=Ah.toDSSEBundle=void 0;var Wps=Fps();Object.defineProperty(Ah,"toDSSEBundle",{enumerable:!0,get:function(){return Wps.toDSSEBundle}});Object.defineProperty(Ah,"toMessageSignatureBundle",{enumerable:!0,get:function(){return Wps.toMessageSignatureBundle}});var kue=eFt();Object.defineProperty(Ah,"BUNDLE_V01_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V01_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V02_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V02_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_LEGACY_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_LEGACY_MEDIA_TYPE}});Object.defineProperty(Ah,"BUNDLE_V03_MEDIA_TYPE",{enumerable:!0,get:function(){return kue.BUNDLE_V03_MEDIA_TYPE}});Object.defineProperty(Ah,"isBundleWithCertificateChain",{enumerable:!0,get:function(){return kue.isBundleWithCertificateChain}});Object.defineProperty(Ah,"isBundleWithDsseEnvelope",{enumerable:!0,get:function(){return kue.isBundleWithDsseEnvelope}});Object.defineProperty(Ah,"isBundleWithMessageSignature",{enumerable:!0,get:function(){return kue.isBundleWithMessageSignature}});Object.defineProperty(Ah,"isBundleWithPublicKey",{enumerable:!0,get:function(){return kue.isBundleWithPublicKey}});var UEl=VUr();Object.defineProperty(Ah,"ValidationError",{enumerable:!0,get:function(){return UEl.ValidationError}});var aFt=Pps();Object.defineProperty(Ah,"bundleFromJSON",{enumerable:!0,get:function(){return aFt.bundleFromJSON}});Object.defineProperty(Ah,"bundleToJSON",{enumerable:!0,get:function(){return aFt.bundleToJSON}});Object.defineProperty(Ah,"envelopeFromJSON",{enumerable:!0,get:function(){return aFt.envelopeFromJSON}});Object.defineProperty(Ah,"envelopeToJSON",{enumerable:!0,get:function(){return aFt.envelopeToJSON}});var E7e=PUr();Object.defineProperty(Ah,"assertBundle",{enumerable:!0,get:function(){return E7e.assertBundle}});Object.defineProperty(Ah,"assertBundleLatest",{enumerable:!0,get:function(){return E7e.assertBundleLatest}});Object.defineProperty(Ah,"assertBundleV01",{enumerable:!0,get:function(){return E7e.assertBundleV01}});Object.defineProperty(Ah,"assertBundleV02",{enumerable:!0,get:function(){return E7e.assertBundleV02}});Object.defineProperty(Ah,"isBundleV01",{enumerable:!0,get:function(){return E7e.isBundleV01}})});var v7e=H(lFt=>{"use strict";Object.defineProperty(lFt,"__esModule",{value:!0});lFt.ByteStream=void 0;var OUr=class extends Error{},cFt=class e{constructor(t){this.start=0,t?(this.buf=t,this.view=Buffer.from(t)):(this.buf=new ArrayBuffer(0),this.view=Buffer.from(this.buf))}get buffer(){return this.view.subarray(0,this.start)}get length(){return this.view.byteLength}get position(){return this.start}seek(t){this.start=t}slice(t,r){let n=t+r;if(n>this.length)throw new OUr("request past end of buffer");return this.view.subarray(t,n)}appendChar(t){this.ensureCapacity(1),this.view[this.start]=t,this.start+=1}appendUint16(t){this.ensureCapacity(2);let r=new Uint16Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[1],this.view[this.start+1]=n[0],this.start+=2}appendUint24(t){this.ensureCapacity(3);let r=new Uint32Array([t]),n=new Uint8Array(r.buffer);this.view[this.start]=n[2],this.view[this.start+1]=n[1],this.view[this.start+2]=n[0],this.start+=3}appendView(t){this.ensureCapacity(t.length),this.view.set(t,this.start),this.start+=t.length}getBlock(t){if(t<=0)return Buffer.alloc(0);if(this.start+t>this.view.length)throw new Error("request past end of buffer");let r=this.view.subarray(this.start,this.start+t);return this.start+=t,r}getUint8(){return this.getBlock(1)[0]}getUint16(){let t=this.getBlock(2);return t[0]<<8|t[1]}ensureCapacity(t){if(this.start+t>this.view.byteLength){let r=e.BLOCK_SIZE+(t>e.BLOCK_SIZE?t:0);this.realloc(this.view.byteLength+r)}}realloc(t){let r=new ArrayBuffer(t),n=Buffer.from(r);n.set(this.view),this.buf=r,this.view=n}};lFt.ByteStream=cFt;cFt.BLOCK_SIZE=1024});var uFt=H(xGe=>{"use strict";Object.defineProperty(xGe,"__esModule",{value:!0});xGe.ASN1TypeError=xGe.ASN1ParseError=void 0;var MUr=class extends Error{};xGe.ASN1ParseError=MUr;var HUr=class extends Error{};xGe.ASN1TypeError=HUr});var Mps=H(gFt=>{"use strict";Object.defineProperty(gFt,"__esModule",{value:!0});gFt.decodeLength=KEl;gFt.encodeLength=jEl;var Ops=uFt();function KEl(e){let t=e.getUint8();if(!(t&128))return t;let r=t&127;if(r>6)throw new Ops.ASN1ParseError("length exceeds 6 byte limit");let n=0;for(let a=0;a0n;)r.unshift(Number(t&255n)),t=t>>8n;return Buffer.from([128|r.length,...r])}});var Yps=H(xue=>{"use strict";Object.defineProperty(xue,"__esModule",{value:!0});xue.parseInteger=$El;xue.parseStringASCII=Hps;xue.parseTime=e1l;xue.parseOID=t1l;xue.parseBoolean=r1l;xue.parseBitString=n1l;var zEl=/^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/,qEl=/^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\.\d{3})?Z$/;function $El(e){let t=0,r=e.length,n=e[t],a=n>127,o=a?255:0;for(;n==o&&++t=50?1900:2e3,n[1]=a.toString()}return new Date(`${n[1]}-${n[2]}-${n[3]}T${n[4]}:${n[5]}:${n[6]}Z`)}function t1l(e){let t=0,r=e.length,n=e[t++],a=Math.floor(n/40),o=n%40,l=`${a}.${o}`,A=0;for(;t=A;--f)a.push(l>>f&1)}return a}});var Xps=H(AFt=>{"use strict";Object.defineProperty(AFt,"__esModule",{value:!0});AFt.ASN1Tag=void 0;var Qps=uFt(),I0e={BOOLEAN:1,INTEGER:2,BIT_STRING:3,OCTET_STRING:4,OBJECT_IDENTIFIER:6,SEQUENCE:16,SET:17,PRINTABLE_STRING:19,UTC_TIME:23,GENERALIZED_TIME:24},YUr={UNIVERSAL:0,APPLICATION:1,CONTEXT_SPECIFIC:2,PRIVATE:3},QUr=class{constructor(t){if(this.number=t&31,this.constructed=(t&32)===32,this.class=t>>6,this.number===31)throw new Qps.ASN1ParseError("long form tags not supported");if(this.class===YUr.UNIVERSAL&&this.number===0)throw new Qps.ASN1ParseError("unsupported tag 0x00")}isUniversal(){return this.class===YUr.UNIVERSAL}isContextSpecific(t){let r=this.class===YUr.CONTEXT_SPECIFIC;return t!==void 0?r&&this.number===t:r}isBoolean(){return this.isUniversal()&&this.number===I0e.BOOLEAN}isInteger(){return this.isUniversal()&&this.number===I0e.INTEGER}isBitString(){return this.isUniversal()&&this.number===I0e.BIT_STRING}isOctetString(){return this.isUniversal()&&this.number===I0e.OCTET_STRING}isOID(){return this.isUniversal()&&this.number===I0e.OBJECT_IDENTIFIER}isUTCTime(){return this.isUniversal()&&this.number===I0e.UTC_TIME}isGeneralizedTime(){return this.isUniversal()&&this.number===I0e.GENERALIZED_TIME}toDER(){return this.number|(this.constructed?32:0)|this.class<<6}};AFt.ASN1Tag=QUr});var jps=H(pFt=>{"use strict";Object.defineProperty(pFt,"__esModule",{value:!0});pFt.ASN1Obj=void 0;var XUr=v7e(),h0e=uFt(),Ups=Mps(),GGe=Yps(),i1l=Xps(),dFt=class{constructor(t,r,n){this.tag=t,this.value=r,this.subs=n}static parseBuffer(t){return Kps(new XUr.ByteStream(t))}toDER(){let t=new XUr.ByteStream;if(this.subs.length>0)for(let a of this.subs)t.appendView(a.toDER());else t.appendView(this.value);let r=t.buffer,n=new XUr.ByteStream;return n.appendChar(this.tag.toDER()),n.appendView((0,Ups.encodeLength)(r.length)),n.appendView(r),n.buffer}toBoolean(){if(!this.tag.isBoolean())throw new h0e.ASN1TypeError("not a boolean");return(0,GGe.parseBoolean)(this.value)}toInteger(){if(!this.tag.isInteger())throw new h0e.ASN1TypeError("not an integer");return(0,GGe.parseInteger)(this.value)}toOID(){if(!this.tag.isOID())throw new h0e.ASN1TypeError("not an OID");return(0,GGe.parseOID)(this.value)}toDate(){switch(!0){case this.tag.isUTCTime():return(0,GGe.parseTime)(this.value,!0);case this.tag.isGeneralizedTime():return(0,GGe.parseTime)(this.value,!1);default:throw new h0e.ASN1TypeError("not a date")}}toBitString(){if(!this.tag.isBitString())throw new h0e.ASN1TypeError("not a bit string");return(0,GGe.parseBitString)(this.value)}};pFt.ASN1Obj=dFt;function Kps(e){let t=new i1l.ASN1Tag(e.getUint8()),r=(0,Ups.decodeLength)(e),n=e.slice(e.position,r),a=e.position,o=[];if(t.constructed)o=Jps(e,r);else if(t.isOctetString())try{o=Jps(e,r)}catch{}return o.length===0&&e.seek(a+r),new dFt(t,n,o)}function Jps(e,t){let r=e.position+t;if(r>e.length)throw new h0e.ASN1ParseError("invalid length");let n=[];for(;e.position{"use strict";Object.defineProperty(fFt,"__esModule",{value:!0});fFt.ASN1Obj=void 0;var s1l=jps();Object.defineProperty(fFt,"ASN1Obj",{enumerable:!0,get:function(){return s1l.ASN1Obj}})});var FGe=H(Gue=>{"use strict";var o1l=Gue&&Gue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Gue,"__esModule",{value:!0});Gue.createPublicKey=a1l;Gue.digest=c1l;Gue.verify=l1l;Gue.bufferEqual=u1l;var B7e=o1l(wt("crypto"));function a1l(e,t="spki"){return typeof e=="string"?B7e.default.createPublicKey(e):B7e.default.createPublicKey({key:e,format:"der",type:t})}function c1l(e,...t){let r=B7e.default.createHash(e);for(let n of t)r.update(n);return r.digest()}function l1l(e,t,r,n){try{return B7e.default.verify(n,e,t,r)}catch{return!1}}function u1l(e,t){try{return B7e.default.timingSafeEqual(e,t)}catch{return!1}}});var zps=H(JUr=>{"use strict";Object.defineProperty(JUr,"__esModule",{value:!0});JUr.preAuthEncoding=A1l;var g1l="DSSEv1";function A1l(e,t){let r=[g1l,e.length,e,t.length,""].join(" ");return Buffer.concat([Buffer.from(r,"ascii"),t])}});var efs=H(hFt=>{"use strict";Object.defineProperty(hFt,"__esModule",{value:!0});hFt.base64Encode=d1l;hFt.base64Decode=p1l;var qps="base64",$ps="utf-8";function d1l(e){return Buffer.from(e,$ps).toString(qps)}function p1l(e){return Buffer.from(e,qps).toString($ps)}});var tfs=H(KUr=>{"use strict";Object.defineProperty(KUr,"__esModule",{value:!0});KUr.canonicalize=UUr;function UUr(e){let t="";if(e===null||typeof e!="object"||e.toJSON!=null)t+=JSON.stringify(e);else if(Array.isArray(e)){t+="[";let r=!0;e.forEach(n=>{r||(t+=","),r=!1,t+=UUr(n)}),t+="]"}else{t+="{";let r=!0;Object.keys(e).sort().forEach(n=>{r||(t+=","),r=!1,t+=JSON.stringify(n),t+=":",t+=UUr(e[n])}),t+="}"}return t}});var jUr=H(mFt=>{"use strict";Object.defineProperty(mFt,"__esModule",{value:!0});mFt.toDER=h1l;mFt.fromDER=m1l;var f1l=/-----BEGIN (.*)-----/,I1l=/-----END (.*)-----/;function h1l(e){let t="";return e.split(` +`).forEach(r=>{r.match(f1l)||r.match(I1l)||(t+=r)}),Buffer.from(t,"base64")}function m1l(e,t="CERTIFICATE"){let n=e.toString("base64").match(/.{1,64}/g)||"";return[`-----BEGIN ${t}-----`,...n,`-----END ${t}-----`].join(` `).concat(` -`)}});var CFt=H(ZGe=>{"use strict";Object.defineProperty(ZGe,"__esModule",{value:!0});ZGe.SHA2_HASH_ALGOS=ZGe.ECDSA_SIGNATURE_ALGOS=void 0;ZGe.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};ZGe.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var qUr=H(_Ft=>{"use strict";Object.defineProperty(_Ft,"__esModule",{value:!0});_Ft.RFC3161TimestampVerificationError=void 0;var zUr=class extends Error{};_Ft.RFC3161TimestampVerificationError=zUr});var nfs=H(E6=>{"use strict";var m1l=E6&&E6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),C1l=E6&&E6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),_1l=E6&&E6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&m1l(t,e,r);return C1l(t,e),t};Object.defineProperty(E6,"__esModule",{value:!0});E6.TSTInfo=void 0;var rfs=_1l(FGe()),y1l=CFt(),b1l=qUr(),$Ur=class{constructor(t){this.root=t}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let t=this.messageImprintObj.subs[0].subs[0].toOID();return y1l.SHA2_HASH_ALGOS[t]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(t){let r=rfs.digest(this.messageImprintHashAlgorithm,t);if(!rfs.bufferEqual(r,this.messageImprintHashedMessage))throw new b1l.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};E6.TSTInfo=$Ur});var sfs=H(S6=>{"use strict";var E1l=S6&&S6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),S1l=S6&&S6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),v1l=S6&&S6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&E1l(t,e,r);return S1l(t,e),t};Object.defineProperty(S6,"__esModule",{value:!0});S6.RFC3161Timestamp=void 0;var B1l=IFt(),eKr=v1l(FGe()),ifs=CFt(),w7e=qUr(),w1l=nfs(),T1l="1.2.840.113549.1.7.2",R1l="1.2.840.113549.1.9.16.1.4",N1l="1.2.840.113549.1.9.4",tKr=class e{constructor(t){this.root=t}static parse(t){let r=B1l.ASN1Obj.parseBuffer(t);return new e(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let t=this.signerDigestAlgorithmObj.subs[0].toOID();return ifs.SHA2_HASH_ALGOS[t]}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return ifs.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new w1l.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(t,r){if(!this.timeStampTokenObj)throw new w7e.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==T1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==R1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(t),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let t=eKr.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!eKr.bufferEqual(t,r))throw new w7e.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(t){let r=this.signedAttrsObj.toDER();if(r[0]=49,!eKr.verify(r,t,this.signatureValue,this.signatureAlgorithm))throw new w7e.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let t=this.signedDataObj;return t.subs[t.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===N1l)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};S6.RFC3161Timestamp=tKr});var ofs=H(yFt=>{"use strict";Object.defineProperty(yFt,"__esModule",{value:!0});yFt.RFC3161Timestamp=void 0;var D1l=sfs();Object.defineProperty(yFt,"RFC3161Timestamp",{enumerable:!0,get:function(){return D1l.RFC3161Timestamp}})});var cfs=H(v6=>{"use strict";var k1l=v6&&v6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),x1l=v6&&v6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),G1l=v6&&v6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&k1l(t,e,r);return x1l(t,e),t};Object.defineProperty(v6,"__esModule",{value:!0});v6.SignedCertificateTimestamp=void 0;var F1l=G1l(FGe()),afs=v7e(),rKr=class e{constructor(t){this.version=t.version,this.logID=t.logID,this.timestamp=t.timestamp,this.extensions=t.extensions,this.hashAlgorithm=t.hashAlgorithm,this.signatureAlgorithm=t.signatureAlgorithm,this.signature=t.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(t,r){let n=new afs.ByteStream;return n.appendChar(this.version),n.appendChar(0),n.appendView(this.timestamp),n.appendUint16(1),n.appendView(t),n.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&n.appendView(this.extensions),F1l.verify(n.buffer,r,this.signature,this.algorithm)}static parse(t){let r=new afs.ByteStream(t),n=r.getUint8(),a=r.getBlock(32),o=r.getBlock(8),l=r.getUint16(),A=r.getBlock(l),f=r.getUint8(),I=r.getUint8(),C=r.getUint16(),b=r.getBlock(C);if(r.position!==t.length)throw new Error("SCT buffer length mismatch");return new e({version:n,logID:a,timestamp:o,extensions:A,hashAlgorithm:f,signatureAlgorithm:I,signature:b})}};v6.SignedCertificateTimestamp=rKr});var lKr=H(iF=>{"use strict";Object.defineProperty(iF,"__esModule",{value:!0});iF.X509SCTExtension=iF.X509SubjectKeyIDExtension=iF.X509AuthorityKeyIDExtension=iF.X509SubjectAlternativeNameExtension=iF.X509KeyUsageExtension=iF.X509BasicConstraintsExtension=iF.X509Extension=void 0;var Z1l=v7e(),L1l=cfs(),Ute=class{constructor(t){this.root=t}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};iF.X509Extension=Ute;var nKr=class extends Ute{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};iF.X509BasicConstraintsExtension=nKr;var iKr=class extends Ute{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};iF.X509KeyUsageExtension=iKr;var sKr=class extends Ute{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(t){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==t?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(t){return this.generalNames.find(r=>r.tag.isContextSpecific(t))}get generalNames(){return this.extnValueObj.subs[0].subs}};iF.X509SubjectAlternativeNameExtension=sKr;var oKr=class extends Ute{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(t){return this.sequence.subs.find(r=>r.tag.isContextSpecific(t))}get sequence(){return this.extnValueObj.subs[0]}};iF.X509AuthorityKeyIDExtension=oKr;var aKr=class extends Ute{get keyIdentifier(){return this.extnValueObj.subs[0].value}};iF.X509SubjectKeyIDExtension=aKr;var cKr=class extends Ute{constructor(t){super(t)}get signedCertificateTimestamps(){let t=this.extnValueObj.subs[0].value,r=new Z1l.ByteStream(t),n=r.getUint16()+2,a=[];for(;r.position{"use strict";var V1l=QO&&QO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),P1l=QO&&QO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ufs=QO&&QO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&V1l(t,e,r);return P1l(t,e),t};Object.defineProperty(QO,"__esModule",{value:!0});QO.X509Certificate=QO.EXTENSION_OID_SCT=void 0;var W1l=IFt(),lfs=ufs(FGe()),O1l=CFt(),M1l=ufs(jUr()),m0e=lKr(),H1l="2.5.29.14",Y1l="2.5.29.15",Q1l="2.5.29.17",X1l="2.5.29.19",J1l="2.5.29.35";QO.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var uKr=class e{constructor(t){this.root=t}static parse(t){let r=typeof t=="string"?M1l.toDER(t):t,n=W1l.ASN1Obj.parseBuffer(r);return new e(n)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return O1l.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let t=this.extSubjectAltName;return t?.uri||t?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let t=this.findExtension(Y1l);return t?new m0e.X509KeyUsageExtension(t):void 0}get extBasicConstraints(){let t=this.findExtension(X1l);return t?new m0e.X509BasicConstraintsExtension(t):void 0}get extSubjectAltName(){let t=this.findExtension(Q1l);return t?new m0e.X509SubjectAlternativeNameExtension(t):void 0}get extAuthorityKeyID(){let t=this.findExtension(J1l);return t?new m0e.X509AuthorityKeyIDExtension(t):void 0}get extSubjectKeyID(){let t=this.findExtension(H1l);return t?new m0e.X509SubjectKeyIDExtension(t):void 0}get extSCT(){let t=this.findExtension(QO.EXTENSION_OID_SCT);return t?new m0e.X509SCTExtension(t):void 0}get isCA(){let t=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?t&&this.extKeyUsage.keyCertSign:t}extension(t){let r=this.findExtension(t);return r?new m0e.X509Extension(r):void 0}verify(t){let r=t?.publicKey||this.publicKey,n=lfs.createPublicKey(r);return lfs.verify(this.tbsCertificate.toDER(),n,this.signatureValue,this.signatureAlgorithm)}validForDate(t){return this.notBefore<=t&&t<=this.notAfter}equals(t){return this.root.toDER().equals(t.root.toDER())}clone(){let t=this.root.toDER(),r=Buffer.alloc(t.length);return t.copy(r),e.parse(r)}findExtension(t){return this.extensions.find(r=>r.subs[0].toOID()===t)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(t=>t.tag.isContextSpecific(3))}};QO.X509Certificate=uKr});var dfs=H(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});Fue.X509SCTExtension=Fue.X509Certificate=Fue.EXTENSION_OID_SCT=void 0;var Afs=gfs();Object.defineProperty(Fue,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return Afs.EXTENSION_OID_SCT}});Object.defineProperty(Fue,"X509Certificate",{enumerable:!0,get:function(){return Afs.X509Certificate}});var U1l=lKr();Object.defineProperty(Fue,"X509SCTExtension",{enumerable:!0,get:function(){return U1l.X509SCTExtension}})});var jV=H(j0=>{"use strict";var K1l=j0&&j0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),j1l=j0&&j0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T7e=j0&&j0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&K1l(t,e,r);return j1l(t,e),t};Object.defineProperty(j0,"__esModule",{value:!0});j0.X509SCTExtension=j0.X509Certificate=j0.EXTENSION_OID_SCT=j0.ByteStream=j0.RFC3161Timestamp=j0.pem=j0.json=j0.encoding=j0.dsse=j0.crypto=j0.ASN1Obj=void 0;var z1l=IFt();Object.defineProperty(j0,"ASN1Obj",{enumerable:!0,get:function(){return z1l.ASN1Obj}});j0.crypto=T7e(FGe());j0.dsse=T7e(zps());j0.encoding=T7e(efs());j0.json=T7e(tfs());j0.pem=T7e(jUr());var q1l=ofs();Object.defineProperty(j0,"RFC3161Timestamp",{enumerable:!0,get:function(){return q1l.RFC3161Timestamp}});var $1l=v7e();Object.defineProperty(j0,"ByteStream",{enumerable:!0,get:function(){return $1l.ByteStream}});var gKr=dfs();Object.defineProperty(j0,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return gKr.EXTENSION_OID_SCT}});Object.defineProperty(j0,"X509Certificate",{enumerable:!0,get:function(){return gKr.X509Certificate}});Object.defineProperty(j0,"X509SCTExtension",{enumerable:!0,get:function(){return gKr.X509SCTExtension}})});var pfs=H(AKr=>{"use strict";Object.defineProperty(AKr,"__esModule",{value:!0});AKr.extractJWTSubject=t2l;var e2l=jV();function t2l(e){let t=e.split(".",3),r=JSON.parse(e2l.encoding.base64Decode(t[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var ffs=H((vng,r2l)=>{r2l.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var hfs=H(LGe=>{"use strict";var n2l=LGe&&LGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LGe,"__esModule",{value:!0});LGe.getUserAgent=void 0;var Ifs=n2l(wt("os")),i2l=()=>{let e=ffs().version,t=process.version,r=Ifs.default.platform(),n=Ifs.default.arch();return`sigstore-js/${e} (Node ${t}) (${r}/${n})`};LGe.getUserAgent=i2l});var Zue=H(tB=>{"use strict";var s2l=tB&&tB.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),o2l=tB&&tB.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mfs=tB&&tB.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(bFt,"__esModule",{value:!0});bFt.BaseBundleBuilder=void 0;var dKr=class{constructor(t){this.signer=t.signer,this.witnesses=t.witnesses}async create(t){let r=await this.prepare(t).then(A=>this.signer.sign(A)),n=await this.package(t,r),a=await Promise.all(this.witnesses.map(A=>A.testify(n.content,a2l(r.key)))),o=[],l=[];return a.forEach(({tlogEntries:A,rfc3161Timestamps:f})=>{o.push(...A??[]),l.push(...f??[])}),n.verificationMaterial.tlogEntries=o,n.verificationMaterial.timestampVerificationData={rfc3161Timestamps:l},n}async prepare(t){return t.data}};bFt.BaseBundleBuilder=dKr;function a2l(e){switch(e.$case){case"publicKey":return e.publicKey;case"x509Certificate":return e.certificate}}});var IKr=H(B6=>{"use strict";var c2l=B6&&B6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),l2l=B6&&B6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),u2l=B6&&B6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(EFt,"__esModule",{value:!0});EFt.DSSEBundleBuilder=void 0;var d2l=Zue(),p2l=pKr(),f2l=IKr(),hKr=class extends p2l.BaseBundleBuilder{constructor(t){super(t),this.certificateChain=t.certificateChain??!1}async prepare(t){let r=_fs(t);return d2l.dsse.preAuthEncoding(r.type,r.data)}async package(t,r){return(0,f2l.toDSSEBundle)(_fs(t),r,this.certificateChain)}};EFt.DSSEBundleBuilder=hKr;function _fs(e){return{...e,type:e.type??""}}});var bfs=H(SFt=>{"use strict";Object.defineProperty(SFt,"__esModule",{value:!0});SFt.MessageSignatureBundleBuilder=void 0;var I2l=pKr(),h2l=IKr(),mKr=class extends I2l.BaseBundleBuilder{constructor(t){super(t)}async package(t,r){return(0,h2l.toMessageSignatureBundle)(t,r)}};SFt.MessageSignatureBundleBuilder=mKr});var Efs=H(VGe=>{"use strict";Object.defineProperty(VGe,"__esModule",{value:!0});VGe.MessageSignatureBundleBuilder=VGe.DSSEBundleBuilder=void 0;var m2l=yfs();Object.defineProperty(VGe,"DSSEBundleBuilder",{enumerable:!0,get:function(){return m2l.DSSEBundleBuilder}});var C2l=bfs();Object.defineProperty(VGe,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return C2l.MessageSignatureBundleBuilder}})});var BFt=H(vFt=>{"use strict";Object.defineProperty(vFt,"__esModule",{value:!0});vFt.HTTPError=void 0;var CKr=class extends Error{constructor({status:t,message:r,location:n}){super(`(${t}) ${r}`),this.statusCode=t,this.location=n}};vFt.HTTPError=CKr});var PGe=H(N7e=>{"use strict";Object.defineProperty(N7e,"__esModule",{value:!0});N7e.InternalError=void 0;N7e.internalError=y2l;var _2l=BFt(),wFt=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.name=this.constructor.name,this.cause=n,this.code=t}};N7e.InternalError=wFt;function y2l(e,t,r){throw e instanceof _2l.HTTPError&&(r+=` - ${e.message}`),new wFt({code:t,message:r,cause:e})}});var _Kr=H(WGe=>{"use strict";var b2l=WGe&&WGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WGe,"__esModule",{value:!0});WGe.constants=void 0;var E2l=b2l(wt("zlib")),S2l=E2l.default.constants||{ZLIB_VERNUM:4736};WGe.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},S2l))});var Bfs=H(Rm=>{"use strict";var v2l=Rm&&Rm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),B2l=Rm&&Rm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),w2l=Rm&&Rm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;ae,yKr=vfs?.writable===!0||vfs?.set!==void 0?e=>{C0e.Buffer.concat=e?k2l:D2l}:e=>{},_0e=Symbol("_superWrite"),y0e=class extends Error{code;errno;constructor(t,r){super("zlib: "+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+t.message,Error.captureStackTrace(this,r??this.constructor)}get name(){return"ZlibError"}};Rm.ZlibError=y0e;var bKr=Symbol("flushFlag"),D7e=class extends R2l.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(t,r){if(!t||typeof t!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(t),this.#n=t.flush??0,this.#r=t.finishFlush??0,this.#i=t.fullFlushFlag??0,typeof Sfs[r]!="function")throw new TypeError("Compression method not supported: "+r);try{this.#s=new Sfs[r](t)}catch(n){throw new y0e(n,this.constructor)}this.#o=n=>{this.#e||(this.#e=!0,this.close(),this.emit("error",n))},this.#s?.on("error",n=>this.#o(new y0e(n))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,EKr.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(t){this.ended||(typeof t!="number"&&(t=this.#i),this.write(Object.assign(C0e.Buffer.alloc(0),{[bKr]:t})))}end(t,r,n){return typeof t=="function"&&(n=t,r=void 0,t=void 0),typeof r=="function"&&(n=r,r=void 0),t&&(r?this.write(t,r):this.write(t)),this.flush(this.#r),this.#t=!0,super.end(n)}get ended(){return this.#t}[_0e](t){return super.write(t)}write(t,r,n){if(typeof r=="function"&&(n=r,r="utf8"),typeof t=="string"&&(t=C0e.Buffer.from(t,r)),this.#e)return;(0,EKr.default)(this.#s,"zlib binding closed");let a=this.#s._handle,o=a.close;a.close=()=>{};let l=this.#s.close;this.#s.close=()=>{},yKr(!0);let A;try{let I=typeof t[bKr]=="number"?t[bKr]:this.#n;A=this.#s._processChunk(t,I),yKr(!1)}catch(I){yKr(!1),this.#o(new y0e(I,this.write))}finally{this.#s&&(this.#s._handle=a,a.close=o,this.#s.close=l,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",I=>this.#o(new y0e(I,this.write)));let f;if(A)if(Array.isArray(A)&&A.length>0){let I=A[0];f=this[_0e](C0e.Buffer.from(I));for(let C=1;C{typeof a=="function"&&(o=a,a=this.flushFlag),this.flush(a),o?.()};try{this.handle.params(t,r)}finally{this.handle.flush=n}this.handle&&(this.#e=t,this.#t=r)}}}};Rm.Zlib=T6;var SKr=class extends T6{constructor(t){super(t,"Deflate")}};Rm.Deflate=SKr;var vKr=class extends T6{constructor(t){super(t,"Inflate")}};Rm.Inflate=vKr;var BKr=class extends T6{#e;constructor(t){super(t,"Gzip"),this.#e=t&&!!t.portable}[_0e](t){return this.#e?(this.#e=!1,t[9]=255,super[_0e](t)):super[_0e](t)}};Rm.Gzip=BKr;var wKr=class extends T6{constructor(t){super(t,"Gunzip")}};Rm.Gunzip=wKr;var TKr=class extends T6{constructor(t){super(t,"DeflateRaw")}};Rm.DeflateRaw=TKr;var RKr=class extends T6{constructor(t){super(t,"InflateRaw")}};Rm.InflateRaw=RKr;var NKr=class extends T6{constructor(t){super(t,"Unzip")}};Rm.Unzip=NKr;var TFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||w6.constants.BROTLI_OPERATION_FINISH,t.fullFlushFlag=w6.constants.BROTLI_OPERATION_FLUSH,super(t,r)}},DKr=class extends TFt{constructor(t){super(t,"BrotliCompress")}};Rm.BrotliCompress=DKr;var kKr=class extends TFt{constructor(t){super(t,"BrotliDecompress")}};Rm.BrotliDecompress=kKr;var RFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.ZSTD_e_continue,t.finishFlush=t.finishFlush||w6.constants.ZSTD_e_end,t.fullFlushFlag=w6.constants.ZSTD_e_flush,super(t,r)}},xKr=class extends RFt{constructor(t){super(t,"ZstdCompress")}};Rm.ZstdCompress=xKr;var GKr=class extends RFt{constructor(t){super(t,"ZstdDecompress")}};Rm.ZstdDecompress=GKr});var FFt=H((Lng,Ffs)=>{"use strict";var wfs=typeof process=="object"&&process?process:{stdout:null,stderr:null},x2l=wt("events"),Tfs=wt("stream"),Rfs=wt("string_decoder").StringDecoder,Kte=Symbol("EOF"),jte=Symbol("maybeEmitEnd"),Lue=Symbol("emittedEnd"),NFt=Symbol("emittingEnd"),k7e=Symbol("emittedError"),DFt=Symbol("closed"),Nfs=Symbol("read"),kFt=Symbol("flush"),Dfs=Symbol("flushChunk"),zV=Symbol("encoding"),zte=Symbol("decoder"),xFt=Symbol("flowing"),x7e=Symbol("paused"),OGe=Symbol("resume"),SD=Symbol("bufferLength"),FKr=Symbol("bufferPush"),ZKr=Symbol("bufferShift"),sF=Symbol("objectMode"),oF=Symbol("destroyed"),LKr=Symbol("emitData"),kfs=Symbol("emitEnd"),VKr=Symbol("emitEnd2"),qte=Symbol("async"),G7e=e=>Promise.resolve().then(e),xfs=global._MP_NO_ITERATOR_SYMBOLS_!=="1",G2l=xfs&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),F2l=xfs&&Symbol.iterator||Symbol("iterator not implemented"),Z2l=e=>e==="end"||e==="finish"||e==="prefinish",L2l=e=>e instanceof ArrayBuffer||typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,V2l=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),GFt=class{constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[OGe](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},PKr=class extends GFt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}};Ffs.exports=class Gfs extends Tfs{constructor(t){super(),this[xFt]=!1,this[x7e]=!1,this.pipes=[],this.buffer=[],this[sF]=t&&t.objectMode||!1,this[sF]?this[zV]=null:this[zV]=t&&t.encoding||null,this[zV]==="buffer"&&(this[zV]=null),this[qte]=t&&!!t.async||!1,this[zte]=this[zV]?new Rfs(this[zV]):null,this[Kte]=!1,this[Lue]=!1,this[NFt]=!1,this[DFt]=!1,this[k7e]=null,this.writable=!0,this.readable=!0,this[SD]=0,this[oF]=!1}get bufferLength(){return this[SD]}get encoding(){return this[zV]}set encoding(t){if(this[sF])throw new Error("cannot set encoding in objectMode");if(this[zV]&&t!==this[zV]&&(this[zte]&&this[zte].lastNeed||this[SD]))throw new Error("cannot change encoding");this[zV]!==t&&(this[zte]=t?new Rfs(t):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[zte].write(r)))),this[zV]=t}setEncoding(t){this.encoding=t}get objectMode(){return this[sF]}set objectMode(t){this[sF]=this[sF]||!!t}get async(){return this[qte]}set async(t){this[qte]=this[qte]||!!t}write(t,r,n){if(this[Kte])throw new Error("write after end");if(this[oF])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[qte]?G7e:o=>o();return!this[sF]&&!Buffer.isBuffer(t)&&(V2l(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):L2l(t)?t=Buffer.from(t):typeof t!="string"&&(this.objectMode=!0)),this[sF]?(this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):t.length?(typeof t=="string"&&!(r===this[zV]&&!this[zte].lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[zV]&&(t=this[zte].write(t)),this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):(this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing)}read(t){if(this[oF])return null;if(this[SD]===0||t===0||t>this[SD])return this[jte](),null;this[sF]&&(t=null),this.buffer.length>1&&!this[sF]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[SD])]);let r=this[Nfs](t||null,this.buffer[0]);return this[jte](),r}[Nfs](t,r){return t===r.length||t===null?this[ZKr]():(this.buffer[0]=r.slice(t),r=r.slice(0,t),this[SD]-=t),this.emit("data",r),!this.buffer.length&&!this[Kte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r),n&&this.once("end",n),this[Kte]=!0,this.writable=!1,(this.flowing||!this[x7e])&&this[jte](),this}[OGe](){this[oF]||(this[x7e]=!1,this[xFt]=!0,this.emit("resume"),this.buffer.length?this[kFt]():this[Kte]?this[jte]():this.emit("drain"))}resume(){return this[OGe]()}pause(){this[xFt]=!1,this[x7e]=!0}get destroyed(){return this[oF]}get flowing(){return this[xFt]}get paused(){return this[x7e]}[FKr](t){this[sF]?this[SD]+=1:this[SD]+=t.length,this.buffer.push(t)}[ZKr](){return this.buffer.length&&(this[sF]?this[SD]-=1:this[SD]-=this.buffer[0].length),this.buffer.shift()}[kFt](t){do;while(this[Dfs](this[ZKr]()));!t&&!this.buffer.length&&!this[Kte]&&this.emit("drain")}[Dfs](t){return t?(this.emit("data",t),this.flowing):!1}pipe(t,r){if(this[oF])return;let n=this[Lue];return r=r||{},t===wfs.stdout||t===wfs.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this.pipes.push(r.proxyErrors?new PKr(this,t,r):new GFt(this,t,r)),this[qte]?G7e(()=>this[OGe]()):this[OGe]()),t}unpipe(t){let r=this.pipes.find(n=>n.dest===t);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);return t==="data"&&!this.pipes.length&&!this.flowing?this[OGe]():t==="readable"&&this[SD]!==0?super.emit("readable"):Z2l(t)&&this[Lue]?(super.emit(t),this.removeAllListeners(t)):t==="error"&&this[k7e]&&(this[qte]?G7e(()=>r.call(this,this[k7e])):r.call(this,this[k7e])),n}get emittedEnd(){return this[Lue]}[jte](){!this[NFt]&&!this[Lue]&&!this[oF]&&this.buffer.length===0&&this[Kte]&&(this[NFt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[DFt]&&this.emit("close"),this[NFt]=!1)}emit(t,r,...n){if(t!=="error"&&t!=="close"&&t!==oF&&this[oF])return;if(t==="data")return r?this[qte]?G7e(()=>this[LKr](r)):this[LKr](r):!1;if(t==="end")return this[kfs]();if(t==="close"){if(this[DFt]=!0,!this[Lue]&&!this[oF])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[k7e]=r;let o=super.emit("error",r);return this[jte](),o}else if(t==="resume"){let o=super.emit("resume");return this[jte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,r,...n);return this[jte](),a}[LKr](t){for(let n of this.pipes)n.dest.write(t)===!1&&this.pause();let r=super.emit("data",t);return this[jte](),r}[kfs](){this[Lue]||(this[Lue]=!0,this.readable=!1,this[qte]?G7e(()=>this[VKr]()):this[VKr]())}[VKr](){if(this[zte]){let r=this[zte].end();if(r){for(let n of this.pipes)n.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}collect(){let t=[];this[sF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[sF]||(t.dataLength+=n.length)}),r.then(()=>t)}concat(){return this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(t=>this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this[zV]?t.join(""):Buffer.concat(t,t.dataLength))}promise(){return new Promise((t,r)=>{this.on(oF,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[G2l](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Kte])return Promise.resolve({done:!0});let n=null,a=null,o=I=>{this.removeListener("data",l),this.removeListener("end",A),a(I)},l=I=>{this.removeListener("error",o),this.removeListener("end",A),this.pause(),n({value:I,done:!!this[Kte]})},A=()=>{this.removeListener("error",o),this.removeListener("data",l),n({done:!0})},f=()=>o(new Error("stream destroyed"));return new Promise((I,C)=>{a=C,n=I,this.once(oF,f),this.once("error",o),this.once("end",A),this.once("data",l)})}}}[F2l](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(t){return this[oF]?(t?this.emit("error",t):this.emit(oF),this):(this[oF]=!0,this.buffer.length=0,this[SD]=0,typeof this.close=="function"&&!this[DFt]&&this.close(),t?this.emit("error",t):this.emit(oF),this)}static isStream(t){return!!t&&(t instanceof Gfs||t instanceof Tfs||t instanceof x2l&&(typeof t.pipe=="function"||typeof t.write=="function"&&typeof t.end=="function"))}}});var Lfs=H((Vng,Zfs)=>{var P2l=FFt(),F7e=class extends Error{constructor(t,r){super(`Bad data size: expected ${r} bytes, but got ${t}`),this.expect=r,this.found=t,this.code="EBADSIZE",Error.captureStackTrace(this,this.constructor)}get name(){return"SizeError"}},ZFt=class extends P2l{constructor(t={}){if(super(t),t.objectMode)throw new TypeError(`${this.constructor.name} streams only work with string and buffer data`);if(this.found=0,this.expect=t.size,typeof this.expect!="number"||this.expect>Number.MAX_SAFE_INTEGER||isNaN(this.expect)||this.expect<0||!isFinite(this.expect)||this.expect!==Math.floor(this.expect))throw new Error("invalid expected size: "+this.expect)}write(t,r,n){let a=Buffer.isBuffer(t)?t:typeof t=="string"?Buffer.from(t,typeof r=="string"?r:"utf8"):t;return Buffer.isBuffer(a)?(this.found+=a.length,this.found>this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.write(t,r,n)):(this.emit("error",new TypeError(`${this.constructor.name} streams only work with string and buffer data`)),!1)}emit(t,...r){return t==="end"&&this.found!==this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.emit(t,...r)}};ZFt.SizeError=F7e;Zfs.exports=ZFt});var Pfs=H((Png,Vfs)=>{"use strict";var{Minipass:W2l}=rF(),WKr=Symbol("type"),$te=Symbol("buffer"),LFt=class e{constructor(t,r){this[WKr]="";let n=[],a=0;if(t){let l=t,A=Number(l.length);for(let f=0;f{"use strict";var OKr=class extends Error{constructor(t,r,n){super(t),this.code="FETCH_ERROR",n&&Object.assign(this,n),this.errno=this.code,this.type=this.code==="EBADSIZE"&&this.found>this.expect?"max-size":r,this.message=t,Error.captureStackTrace(this,this.constructor)}get name(){return"FetchError"}set name(t){}get[Symbol.toStringTag](){return"FetchError"}};Wfs.exports=OKr});var ere=H((Ong,Ofs)=>{"use strict";var VFt=wt("buffer"),MGe=VFt.Buffer,VH={},PH;for(PH in VFt)VFt.hasOwnProperty(PH)&&(PH==="SlowBuffer"||PH==="Buffer"||(VH[PH]=VFt[PH]));var HGe=VH.Buffer={};for(PH in MGe)MGe.hasOwnProperty(PH)&&(PH==="allocUnsafe"||PH==="allocUnsafeSlow"||(HGe[PH]=MGe[PH]));VH.Buffer.prototype=MGe.prototype;(!HGe.from||HGe.from===Uint8Array.from)&&(HGe.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return MGe(e,t,r)});HGe.alloc||(HGe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=MGe(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!VH.kStringMaxLength)try{VH.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}VH.constants||(VH.constants={MAX_LENGTH:VH.kMaxLength},VH.kStringMaxLength&&(VH.constants.MAX_STRING_LENGTH=VH.kStringMaxLength));Ofs.exports=VH});var Hfs=H(QKr=>{"use strict";var Mfs="\uFEFF";QKr.PrependBOM=HKr;function HKr(e,t){this.encoder=e,this.addBOM=!0}HKr.prototype.write=function(e){return this.addBOM&&(e=Mfs+e,this.addBOM=!1),this.encoder.write(e)};HKr.prototype.end=function(){return this.encoder.end()};QKr.StripBOM=YKr;function YKr(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}YKr.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||(t[0]===Mfs&&(t=t.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),t};YKr.prototype.end=function(){return this.decoder.end()}});var Qfs=H((Hng,Yfs)=>{"use strict";var b0e=ere().Buffer;Yfs.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:JKr};function JKr(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,this.enc==="base64"?this.encoder=jKr:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=zKr,b0e.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=qKr,this.defaultCharUnicode=t.defaultCharUnicode))}JKr.prototype.encoder=KKr;JKr.prototype.decoder=UKr;var XKr=wt("string_decoder").StringDecoder;XKr.prototype.end||(XKr.prototype.end=function(){});function UKr(e,t){this.decoder=new XKr(t.enc)}UKr.prototype.write=function(e){return b0e.isBuffer(e)||(e=b0e.from(e)),this.decoder.write(e)};UKr.prototype.end=function(){return this.decoder.end()};function KKr(e,t){this.enc=t.enc}KKr.prototype.write=function(e){return b0e.from(e,this.enc)};KKr.prototype.end=function(){};function jKr(e,t){this.prevStr=""}jKr.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),b0e.from(e,"base64")};jKr.prototype.end=function(){return b0e.from(this.prevStr,"base64")};function zKr(e,t){}zKr.prototype.write=function(e){for(var t=b0e.alloc(e.length*3),r=0,n=0;n>>6),t[r++]=128+(a&63)):(t[r++]=224+(a>>>12),t[r++]=128+(a>>>6&63),t[r++]=128+(a&63))}return t.slice(0,r)};zKr.prototype.end=function(){};function qKr(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}qKr.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,a="",o=0;o0&&(a+=this.defaultCharUnicode,r=0),l<128?a+=String.fromCharCode(l):l<224?(t=l&31,r=1,n=1):l<240?(t=l&15,r=2,n=1):a+=this.defaultCharUnicode):r>0?(t=t<<6|l&63,r--,n++,r===0&&(n===2&&t<128&&t>0?a+=this.defaultCharUnicode:n===3&&t<2048?a+=this.defaultCharUnicode:a+=String.fromCharCode(t))):a+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,a};qKr.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}});var Ufs=H(Vue=>{"use strict";var PFt=ere().Buffer;Vue._utf32=$Kr;function $Kr(e,t){this.iconv=t,this.bomAware=!0,this.isLE=e.isLE}Vue.utf32le={type:"_utf32",isLE:!0};Vue.utf32be={type:"_utf32",isLE:!1};Vue.ucs4le="utf32le";Vue.ucs4be="utf32be";$Kr.prototype.encoder=e8r;$Kr.prototype.decoder=t8r;function e8r(e,t){this.isLE=t.isLE,this.highSurrogate=0}e8r.prototype.write=function(e){for(var t=PFt.from(e,"ucs2"),r=PFt.alloc(t.length*2),n=this.isLE?r.writeUInt32LE:r.writeUInt32BE,a=0,o=0;o0){for(;t1114111)&&(r=n),r>=65536){r-=65536;var a=55296|r>>10;e[t++]=a&255,e[t++]=a>>8;var r=56320|r&1023}return e[t++]=r&255,e[t++]=r>>8,t}t8r.prototype.end=function(){this.overflow.length=0};Vue.utf32=r8r;Vue.ucs4="utf32";function r8r(e,t){this.iconv=t}r8r.prototype.encoder=n8r;r8r.prototype.decoder=i8r;function n8r(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder(e.defaultEncoding||"utf-32le",e)}n8r.prototype.write=function(e){return this.encoder.write(e)};n8r.prototype.end=function(){return this.encoder.end()};function i8r(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}i8r.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<32)return"";var t=Jfs(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n16)&&o++,(r[3]!==0||r[2]>16)&&a++,r[0]===0&&r[1]===0&&(r[2]!==0||r[3]!==0)&&A++,(r[0]!==0||r[1]!==0)&&r[2]===0&&r[3]===0&&l++,r.length=0,n++,n>=100)break e}return A-o>l-a?"utf-32be":A-o{"use strict";var Kfs=ere().Buffer;u8r.utf16be=WFt;function WFt(){}WFt.prototype.encoder=s8r;WFt.prototype.decoder=o8r;WFt.prototype.bomAware=!0;function s8r(){}s8r.prototype.write=function(e){for(var t=Kfs.from(e,"ucs2"),r=0;r=100)break e}return o>a?"utf-16be":o{"use strict";var R6=ere().Buffer;HFt.utf7=OFt;HFt.unicode11utf7="utf7";function OFt(e,t){this.iconv=t}OFt.prototype.encoder=A8r;OFt.prototype.decoder=d8r;OFt.prototype.bomAware=!0;var O2l=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function A8r(e,t){this.iconv=t.iconv}A8r.prototype.write=function(e){return R6.from(e.replace(O2l,function(t){return"+"+(t==="+"?"":this.iconv.encode(t,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};A8r.prototype.end=function(){};function d8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var M2l=/[A-Za-z0-9\/+]/,p8r=[];for(Z7e=0;Z7e<256;Z7e++)p8r[Z7e]=M2l.test(String.fromCharCode(Z7e));var Z7e,H2l=43,E0e=45,g8r=38;d8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};HFt.utf7imap=MFt;function MFt(e,t){this.iconv=t}MFt.prototype.encoder=f8r;MFt.prototype.decoder=I8r;MFt.prototype.bomAware=!0;function f8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=R6.alloc(6),this.base64AccumIdx=0}f8r.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,a=R6.alloc(e.length*5+10),o=0,l=0;l0&&(o+=a.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),o),n=0),a[o++]=E0e,t=!1),t||(a[o++]=A,A===g8r&&(a[o++]=E0e))):(t||(a[o++]=g8r,t=!0),t&&(r[n++]=A>>8,r[n++]=A&255,n==r.length&&(o+=a.write(r.toString("base64").replace(/\//g,","),o),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,a.slice(0,o)};f8r.prototype.end=function(){var e=R6.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=E0e,this.inBase64=!1),e.slice(0,t)};function I8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var qfs=p8r.slice();qfs[44]=!0;I8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}});var tIs=H(eIs=>{"use strict";var YFt=ere().Buffer;eIs._sbcs=h8r;function h8r(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=YFt.from(e.chars,"ucs2");for(var a=YFt.alloc(65536,t.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";rIs.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var sIs=H((Kng,iIs)=>{"use strict";iIs.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b +`)}});var CFt=H(ZGe=>{"use strict";Object.defineProperty(ZGe,"__esModule",{value:!0});ZGe.SHA2_HASH_ALGOS=ZGe.ECDSA_SIGNATURE_ALGOS=void 0;ZGe.ECDSA_SIGNATURE_ALGOS={"1.2.840.10045.4.3.1":"sha224","1.2.840.10045.4.3.2":"sha256","1.2.840.10045.4.3.3":"sha384","1.2.840.10045.4.3.4":"sha512"};ZGe.SHA2_HASH_ALGOS={"2.16.840.1.101.3.4.2.1":"sha256","2.16.840.1.101.3.4.2.2":"sha384","2.16.840.1.101.3.4.2.3":"sha512"}});var qUr=H(_Ft=>{"use strict";Object.defineProperty(_Ft,"__esModule",{value:!0});_Ft.RFC3161TimestampVerificationError=void 0;var zUr=class extends Error{};_Ft.RFC3161TimestampVerificationError=zUr});var nfs=H(E6=>{"use strict";var C1l=E6&&E6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),_1l=E6&&E6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),y1l=E6&&E6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&C1l(t,e,r);return _1l(t,e),t};Object.defineProperty(E6,"__esModule",{value:!0});E6.TSTInfo=void 0;var rfs=y1l(FGe()),b1l=CFt(),E1l=qUr(),$Ur=class{constructor(t){this.root=t}get version(){return this.root.subs[0].toInteger()}get genTime(){return this.root.subs[4].toDate()}get messageImprintHashAlgorithm(){let t=this.messageImprintObj.subs[0].subs[0].toOID();return b1l.SHA2_HASH_ALGOS[t]}get messageImprintHashedMessage(){return this.messageImprintObj.subs[1].value}get raw(){return this.root.toDER()}verify(t){let r=rfs.digest(this.messageImprintHashAlgorithm,t);if(!rfs.bufferEqual(r,this.messageImprintHashedMessage))throw new E1l.RFC3161TimestampVerificationError("message imprint does not match artifact")}get messageImprintObj(){return this.root.subs[2]}};E6.TSTInfo=$Ur});var sfs=H(S6=>{"use strict";var S1l=S6&&S6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),v1l=S6&&S6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),B1l=S6&&S6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&S1l(t,e,r);return v1l(t,e),t};Object.defineProperty(S6,"__esModule",{value:!0});S6.RFC3161Timestamp=void 0;var w1l=IFt(),eKr=B1l(FGe()),ifs=CFt(),w7e=qUr(),T1l=nfs(),R1l="1.2.840.113549.1.7.2",N1l="1.2.840.113549.1.9.16.1.4",D1l="1.2.840.113549.1.9.4",tKr=class e{constructor(t){this.root=t}static parse(t){let r=w1l.ASN1Obj.parseBuffer(t);return new e(r)}get status(){return this.pkiStatusInfoObj.subs[0].toInteger()}get contentType(){return this.contentTypeObj.toOID()}get eContentType(){return this.eContentTypeObj.toOID()}get signingTime(){return this.tstInfo.genTime}get signerIssuer(){return this.signerSidObj.subs[0].value}get signerSerialNumber(){return this.signerSidObj.subs[1].value}get signerDigestAlgorithm(){let t=this.signerDigestAlgorithmObj.subs[0].toOID();return ifs.SHA2_HASH_ALGOS[t]}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return ifs.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value}get tstInfo(){return new T1l.TSTInfo(this.eContentObj.subs[0].subs[0])}verify(t,r){if(!this.timeStampTokenObj)throw new w7e.RFC3161TimestampVerificationError("timeStampToken is missing");if(this.contentType!==R1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect content type: ${this.contentType}`);if(this.eContentType!==N1l)throw new w7e.RFC3161TimestampVerificationError(`incorrect encapsulated content type: ${this.eContentType}`);this.tstInfo.verify(t),this.verifyMessageDigest(),this.verifySignature(r)}verifyMessageDigest(){let t=eKr.digest(this.signerDigestAlgorithm,this.tstInfo.raw),r=this.messageDigestAttributeObj.subs[1].subs[0].value;if(!eKr.bufferEqual(t,r))throw new w7e.RFC3161TimestampVerificationError("signed data does not match tstInfo")}verifySignature(t){let r=this.signedAttrsObj.toDER();if(r[0]=49,!eKr.verify(r,t,this.signatureValue,this.signatureAlgorithm))throw new w7e.RFC3161TimestampVerificationError("signature verification failed")}get pkiStatusInfoObj(){return this.root.subs[0]}get timeStampTokenObj(){return this.root.subs[1]}get contentTypeObj(){return this.timeStampTokenObj.subs[0]}get signedDataObj(){return this.timeStampTokenObj.subs.find(r=>r.tag.isContextSpecific(0)).subs[0]}get encapContentInfoObj(){return this.signedDataObj.subs[2]}get signerInfosObj(){let t=this.signedDataObj;return t.subs[t.subs.length-1]}get signerInfoObj(){return this.signerInfosObj.subs[0]}get eContentTypeObj(){return this.encapContentInfoObj.subs[0]}get eContentObj(){return this.encapContentInfoObj.subs[1]}get signedAttrsObj(){return this.signerInfoObj.subs.find(r=>r.tag.isContextSpecific(0))}get messageDigestAttributeObj(){return this.signedAttrsObj.subs.find(r=>r.subs[0].tag.isOID()&&r.subs[0].toOID()===D1l)}get signerSidObj(){return this.signerInfoObj.subs[1]}get signerDigestAlgorithmObj(){return this.signerInfoObj.subs[2]}get signatureAlgorithmObj(){return this.signerInfoObj.subs[4]}get signatureValueObj(){return this.signerInfoObj.subs[5]}};S6.RFC3161Timestamp=tKr});var ofs=H(yFt=>{"use strict";Object.defineProperty(yFt,"__esModule",{value:!0});yFt.RFC3161Timestamp=void 0;var k1l=sfs();Object.defineProperty(yFt,"RFC3161Timestamp",{enumerable:!0,get:function(){return k1l.RFC3161Timestamp}})});var cfs=H(v6=>{"use strict";var x1l=v6&&v6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),G1l=v6&&v6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),F1l=v6&&v6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&x1l(t,e,r);return G1l(t,e),t};Object.defineProperty(v6,"__esModule",{value:!0});v6.SignedCertificateTimestamp=void 0;var Z1l=F1l(FGe()),afs=v7e(),rKr=class e{constructor(t){this.version=t.version,this.logID=t.logID,this.timestamp=t.timestamp,this.extensions=t.extensions,this.hashAlgorithm=t.hashAlgorithm,this.signatureAlgorithm=t.signatureAlgorithm,this.signature=t.signature}get datetime(){return new Date(Number(this.timestamp.readBigInt64BE()))}get algorithm(){switch(this.hashAlgorithm){case 0:return"none";case 1:return"md5";case 2:return"sha1";case 3:return"sha224";case 4:return"sha256";case 5:return"sha384";case 6:return"sha512";default:return"unknown"}}verify(t,r){let n=new afs.ByteStream;return n.appendChar(this.version),n.appendChar(0),n.appendView(this.timestamp),n.appendUint16(1),n.appendView(t),n.appendUint16(this.extensions.byteLength),this.extensions.byteLength>0&&n.appendView(this.extensions),Z1l.verify(n.buffer,r,this.signature,this.algorithm)}static parse(t){let r=new afs.ByteStream(t),n=r.getUint8(),a=r.getBlock(32),o=r.getBlock(8),l=r.getUint16(),A=r.getBlock(l),f=r.getUint8(),I=r.getUint8(),C=r.getUint16(),b=r.getBlock(C);if(r.position!==t.length)throw new Error("SCT buffer length mismatch");return new e({version:n,logID:a,timestamp:o,extensions:A,hashAlgorithm:f,signatureAlgorithm:I,signature:b})}};v6.SignedCertificateTimestamp=rKr});var lKr=H(iF=>{"use strict";Object.defineProperty(iF,"__esModule",{value:!0});iF.X509SCTExtension=iF.X509SubjectKeyIDExtension=iF.X509AuthorityKeyIDExtension=iF.X509SubjectAlternativeNameExtension=iF.X509KeyUsageExtension=iF.X509BasicConstraintsExtension=iF.X509Extension=void 0;var L1l=v7e(),V1l=cfs(),Ute=class{constructor(t){this.root=t}get oid(){return this.root.subs[0].toOID()}get critical(){return this.root.subs.length===3?this.root.subs[1].toBoolean():!1}get value(){return this.extnValueObj.value}get valueObj(){return this.extnValueObj}get extnValueObj(){return this.root.subs[this.root.subs.length-1]}};iF.X509Extension=Ute;var nKr=class extends Ute{get isCA(){return this.sequence.subs[0]?.toBoolean()??!1}get pathLenConstraint(){return this.sequence.subs.length>1?this.sequence.subs[1].toInteger():void 0}get sequence(){return this.extnValueObj.subs[0]}};iF.X509BasicConstraintsExtension=nKr;var iKr=class extends Ute{get digitalSignature(){return this.bitString[0]===1}get keyCertSign(){return this.bitString[5]===1}get crlSign(){return this.bitString[6]===1}get bitString(){return this.extnValueObj.subs[0].toBitString()}};iF.X509KeyUsageExtension=iKr;var sKr=class extends Ute{get rfc822Name(){return this.findGeneralName(1)?.value.toString("ascii")}get uri(){return this.findGeneralName(6)?.value.toString("ascii")}otherName(t){let r=this.findGeneralName(0);return r===void 0||r.subs[0].toOID()!==t?void 0:r.subs[1].subs[0].value.toString("ascii")}findGeneralName(t){return this.generalNames.find(r=>r.tag.isContextSpecific(t))}get generalNames(){return this.extnValueObj.subs[0].subs}};iF.X509SubjectAlternativeNameExtension=sKr;var oKr=class extends Ute{get keyIdentifier(){return this.findSequenceMember(0)?.value}findSequenceMember(t){return this.sequence.subs.find(r=>r.tag.isContextSpecific(t))}get sequence(){return this.extnValueObj.subs[0]}};iF.X509AuthorityKeyIDExtension=oKr;var aKr=class extends Ute{get keyIdentifier(){return this.extnValueObj.subs[0].value}};iF.X509SubjectKeyIDExtension=aKr;var cKr=class extends Ute{constructor(t){super(t)}get signedCertificateTimestamps(){let t=this.extnValueObj.subs[0].value,r=new L1l.ByteStream(t),n=r.getUint16()+2,a=[];for(;r.position{"use strict";var P1l=QO&&QO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),W1l=QO&&QO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),ufs=QO&&QO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&P1l(t,e,r);return W1l(t,e),t};Object.defineProperty(QO,"__esModule",{value:!0});QO.X509Certificate=QO.EXTENSION_OID_SCT=void 0;var O1l=IFt(),lfs=ufs(FGe()),M1l=CFt(),H1l=ufs(jUr()),m0e=lKr(),Y1l="2.5.29.14",Q1l="2.5.29.15",X1l="2.5.29.17",J1l="2.5.29.19",U1l="2.5.29.35";QO.EXTENSION_OID_SCT="1.3.6.1.4.1.11129.2.4.2";var uKr=class e{constructor(t){this.root=t}static parse(t){let r=typeof t=="string"?H1l.toDER(t):t,n=O1l.ASN1Obj.parseBuffer(r);return new e(n)}get tbsCertificate(){return this.tbsCertificateObj}get version(){return`v${(this.versionObj.subs[0].toInteger()+BigInt(1)).toString()}`}get serialNumber(){return this.serialNumberObj.value}get notBefore(){return this.validityObj.subs[0].toDate()}get notAfter(){return this.validityObj.subs[1].toDate()}get issuer(){return this.issuerObj.value}get subject(){return this.subjectObj.value}get publicKey(){return this.subjectPublicKeyInfoObj.toDER()}get signatureAlgorithm(){let t=this.signatureAlgorithmObj.subs[0].toOID();return M1l.ECDSA_SIGNATURE_ALGOS[t]}get signatureValue(){return this.signatureValueObj.value.subarray(1)}get subjectAltName(){let t=this.extSubjectAltName;return t?.uri||t?.rfc822Name}get extensions(){return this.extensionsObj?.subs[0]?.subs||[]}get extKeyUsage(){let t=this.findExtension(Q1l);return t?new m0e.X509KeyUsageExtension(t):void 0}get extBasicConstraints(){let t=this.findExtension(J1l);return t?new m0e.X509BasicConstraintsExtension(t):void 0}get extSubjectAltName(){let t=this.findExtension(X1l);return t?new m0e.X509SubjectAlternativeNameExtension(t):void 0}get extAuthorityKeyID(){let t=this.findExtension(U1l);return t?new m0e.X509AuthorityKeyIDExtension(t):void 0}get extSubjectKeyID(){let t=this.findExtension(Y1l);return t?new m0e.X509SubjectKeyIDExtension(t):void 0}get extSCT(){let t=this.findExtension(QO.EXTENSION_OID_SCT);return t?new m0e.X509SCTExtension(t):void 0}get isCA(){let t=this.extBasicConstraints?.isCA||!1;return this.extKeyUsage?t&&this.extKeyUsage.keyCertSign:t}extension(t){let r=this.findExtension(t);return r?new m0e.X509Extension(r):void 0}verify(t){let r=t?.publicKey||this.publicKey,n=lfs.createPublicKey(r);return lfs.verify(this.tbsCertificate.toDER(),n,this.signatureValue,this.signatureAlgorithm)}validForDate(t){return this.notBefore<=t&&t<=this.notAfter}equals(t){return this.root.toDER().equals(t.root.toDER())}clone(){let t=this.root.toDER(),r=Buffer.alloc(t.length);return t.copy(r),e.parse(r)}findExtension(t){return this.extensions.find(r=>r.subs[0].toOID()===t)}get tbsCertificateObj(){return this.root.subs[0]}get signatureAlgorithmObj(){return this.root.subs[1]}get signatureValueObj(){return this.root.subs[2]}get versionObj(){return this.tbsCertificateObj.subs[0]}get serialNumberObj(){return this.tbsCertificateObj.subs[1]}get issuerObj(){return this.tbsCertificateObj.subs[3]}get validityObj(){return this.tbsCertificateObj.subs[4]}get subjectObj(){return this.tbsCertificateObj.subs[5]}get subjectPublicKeyInfoObj(){return this.tbsCertificateObj.subs[6]}get extensionsObj(){return this.tbsCertificateObj.subs.find(t=>t.tag.isContextSpecific(3))}};QO.X509Certificate=uKr});var dfs=H(Fue=>{"use strict";Object.defineProperty(Fue,"__esModule",{value:!0});Fue.X509SCTExtension=Fue.X509Certificate=Fue.EXTENSION_OID_SCT=void 0;var Afs=gfs();Object.defineProperty(Fue,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return Afs.EXTENSION_OID_SCT}});Object.defineProperty(Fue,"X509Certificate",{enumerable:!0,get:function(){return Afs.X509Certificate}});var K1l=lKr();Object.defineProperty(Fue,"X509SCTExtension",{enumerable:!0,get:function(){return K1l.X509SCTExtension}})});var jV=H(j0=>{"use strict";var j1l=j0&&j0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),z1l=j0&&j0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T7e=j0&&j0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&j1l(t,e,r);return z1l(t,e),t};Object.defineProperty(j0,"__esModule",{value:!0});j0.X509SCTExtension=j0.X509Certificate=j0.EXTENSION_OID_SCT=j0.ByteStream=j0.RFC3161Timestamp=j0.pem=j0.json=j0.encoding=j0.dsse=j0.crypto=j0.ASN1Obj=void 0;var q1l=IFt();Object.defineProperty(j0,"ASN1Obj",{enumerable:!0,get:function(){return q1l.ASN1Obj}});j0.crypto=T7e(FGe());j0.dsse=T7e(zps());j0.encoding=T7e(efs());j0.json=T7e(tfs());j0.pem=T7e(jUr());var $1l=ofs();Object.defineProperty(j0,"RFC3161Timestamp",{enumerable:!0,get:function(){return $1l.RFC3161Timestamp}});var e2l=v7e();Object.defineProperty(j0,"ByteStream",{enumerable:!0,get:function(){return e2l.ByteStream}});var gKr=dfs();Object.defineProperty(j0,"EXTENSION_OID_SCT",{enumerable:!0,get:function(){return gKr.EXTENSION_OID_SCT}});Object.defineProperty(j0,"X509Certificate",{enumerable:!0,get:function(){return gKr.X509Certificate}});Object.defineProperty(j0,"X509SCTExtension",{enumerable:!0,get:function(){return gKr.X509SCTExtension}})});var pfs=H(AKr=>{"use strict";Object.defineProperty(AKr,"__esModule",{value:!0});AKr.extractJWTSubject=r2l;var t2l=jV();function r2l(e){let t=e.split(".",3),r=JSON.parse(t2l.encoding.base64Decode(t[1]));switch(r.iss){case"https://accounts.google.com":case"https://oauth2.sigstore.dev/auth":return r.email;default:return r.sub}}});var ffs=H((Bng,n2l)=>{n2l.exports={name:"@sigstore/sign",version:"3.1.0",description:"Sigstore signing library",main:"dist/index.js",types:"dist/index.d.ts",scripts:{clean:"shx rm -rf dist *.tsbuildinfo",build:"tsc --build",test:"jest"},files:["dist"],author:"bdehamer@github.com",license:"Apache-2.0",repository:{type:"git",url:"git+https://github.com/sigstore/sigstore-js.git"},bugs:{url:"https://github.com/sigstore/sigstore-js/issues"},homepage:"https://github.com/sigstore/sigstore-js/tree/main/packages/sign#readme",publishConfig:{provenance:!0},devDependencies:{"@sigstore/jest":"^0.0.0","@sigstore/mock":"^0.10.0","@sigstore/rekor-types":"^3.0.0","@types/make-fetch-happen":"^10.0.4","@types/promise-retry":"^1.1.6"},dependencies:{"@sigstore/bundle":"^3.1.0","@sigstore/core":"^2.0.0","@sigstore/protobuf-specs":"^0.4.0","make-fetch-happen":"^14.0.2","proc-log":"^5.0.0","promise-retry":"^2.0.1"},engines:{node:"^18.17.0 || >=20.5.0"}}});var hfs=H(LGe=>{"use strict";var i2l=LGe&&LGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(LGe,"__esModule",{value:!0});LGe.getUserAgent=void 0;var Ifs=i2l(wt("os")),s2l=()=>{let e=ffs().version,t=process.version,r=Ifs.default.platform(),n=Ifs.default.arch();return`sigstore-js/${e} (Node ${t}) (${r}/${n})`};LGe.getUserAgent=s2l});var Zue=H(tB=>{"use strict";var o2l=tB&&tB.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),a2l=tB&&tB.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),mfs=tB&&tB.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(bFt,"__esModule",{value:!0});bFt.BaseBundleBuilder=void 0;var dKr=class{constructor(t){this.signer=t.signer,this.witnesses=t.witnesses}async create(t){let r=await this.prepare(t).then(A=>this.signer.sign(A)),n=await this.package(t,r),a=await Promise.all(this.witnesses.map(A=>A.testify(n.content,c2l(r.key)))),o=[],l=[];return a.forEach(({tlogEntries:A,rfc3161Timestamps:f})=>{o.push(...A??[]),l.push(...f??[])}),n.verificationMaterial.tlogEntries=o,n.verificationMaterial.timestampVerificationData={rfc3161Timestamps:l},n}async prepare(t){return t.data}};bFt.BaseBundleBuilder=dKr;function c2l(e){switch(e.$case){case"publicKey":return e.publicKey;case"x509Certificate":return e.certificate}}});var IKr=H(B6=>{"use strict";var l2l=B6&&B6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),u2l=B6&&B6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),g2l=B6&&B6.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{"use strict";Object.defineProperty(EFt,"__esModule",{value:!0});EFt.DSSEBundleBuilder=void 0;var p2l=Zue(),f2l=pKr(),I2l=IKr(),hKr=class extends f2l.BaseBundleBuilder{constructor(t){super(t),this.certificateChain=t.certificateChain??!1}async prepare(t){let r=_fs(t);return p2l.dsse.preAuthEncoding(r.type,r.data)}async package(t,r){return(0,I2l.toDSSEBundle)(_fs(t),r,this.certificateChain)}};EFt.DSSEBundleBuilder=hKr;function _fs(e){return{...e,type:e.type??""}}});var bfs=H(SFt=>{"use strict";Object.defineProperty(SFt,"__esModule",{value:!0});SFt.MessageSignatureBundleBuilder=void 0;var h2l=pKr(),m2l=IKr(),mKr=class extends h2l.BaseBundleBuilder{constructor(t){super(t)}async package(t,r){return(0,m2l.toMessageSignatureBundle)(t,r)}};SFt.MessageSignatureBundleBuilder=mKr});var Efs=H(VGe=>{"use strict";Object.defineProperty(VGe,"__esModule",{value:!0});VGe.MessageSignatureBundleBuilder=VGe.DSSEBundleBuilder=void 0;var C2l=yfs();Object.defineProperty(VGe,"DSSEBundleBuilder",{enumerable:!0,get:function(){return C2l.DSSEBundleBuilder}});var _2l=bfs();Object.defineProperty(VGe,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return _2l.MessageSignatureBundleBuilder}})});var BFt=H(vFt=>{"use strict";Object.defineProperty(vFt,"__esModule",{value:!0});vFt.HTTPError=void 0;var CKr=class extends Error{constructor({status:t,message:r,location:n}){super(`(${t}) ${r}`),this.statusCode=t,this.location=n}};vFt.HTTPError=CKr});var PGe=H(N7e=>{"use strict";Object.defineProperty(N7e,"__esModule",{value:!0});N7e.InternalError=void 0;N7e.internalError=b2l;var y2l=BFt(),wFt=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.name=this.constructor.name,this.cause=n,this.code=t}};N7e.InternalError=wFt;function b2l(e,t,r){throw e instanceof y2l.HTTPError&&(r+=` - ${e.message}`),new wFt({code:t,message:r,cause:e})}});var _Kr=H(WGe=>{"use strict";var E2l=WGe&&WGe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(WGe,"__esModule",{value:!0});WGe.constants=void 0;var S2l=E2l(wt("zlib")),v2l=S2l.default.constants||{ZLIB_VERNUM:4736};WGe.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},v2l))});var Bfs=H(Rm=>{"use strict";var B2l=Rm&&Rm.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),w2l=Rm&&Rm.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),T2l=Rm&&Rm.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;ae,yKr=vfs?.writable===!0||vfs?.set!==void 0?e=>{C0e.Buffer.concat=e?x2l:k2l}:e=>{},_0e=Symbol("_superWrite"),y0e=class extends Error{code;errno;constructor(t,r){super("zlib: "+t.message,{cause:t}),this.code=t.code,this.errno=t.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+t.message,Error.captureStackTrace(this,r??this.constructor)}get name(){return"ZlibError"}};Rm.ZlibError=y0e;var bKr=Symbol("flushFlag"),D7e=class extends N2l.Minipass{#e=!1;#t=!1;#n;#r;#i;#s;#o;get sawError(){return this.#e}get handle(){return this.#s}get flushFlag(){return this.#n}constructor(t,r){if(!t||typeof t!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(t),this.#n=t.flush??0,this.#r=t.finishFlush??0,this.#i=t.fullFlushFlag??0,typeof Sfs[r]!="function")throw new TypeError("Compression method not supported: "+r);try{this.#s=new Sfs[r](t)}catch(n){throw new y0e(n,this.constructor)}this.#o=n=>{this.#e||(this.#e=!0,this.close(),this.emit("error",n))},this.#s?.on("error",n=>this.#o(new y0e(n))),this.once("end",()=>this.close)}close(){this.#s&&(this.#s.close(),this.#s=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,EKr.default)(this.#s,"zlib binding closed"),this.#s.reset?.()}flush(t){this.ended||(typeof t!="number"&&(t=this.#i),this.write(Object.assign(C0e.Buffer.alloc(0),{[bKr]:t})))}end(t,r,n){return typeof t=="function"&&(n=t,r=void 0,t=void 0),typeof r=="function"&&(n=r,r=void 0),t&&(r?this.write(t,r):this.write(t)),this.flush(this.#r),this.#t=!0,super.end(n)}get ended(){return this.#t}[_0e](t){return super.write(t)}write(t,r,n){if(typeof r=="function"&&(n=r,r="utf8"),typeof t=="string"&&(t=C0e.Buffer.from(t,r)),this.#e)return;(0,EKr.default)(this.#s,"zlib binding closed");let a=this.#s._handle,o=a.close;a.close=()=>{};let l=this.#s.close;this.#s.close=()=>{},yKr(!0);let A;try{let I=typeof t[bKr]=="number"?t[bKr]:this.#n;A=this.#s._processChunk(t,I),yKr(!1)}catch(I){yKr(!1),this.#o(new y0e(I,this.write))}finally{this.#s&&(this.#s._handle=a,a.close=o,this.#s.close=l,this.#s.removeAllListeners("error"))}this.#s&&this.#s.on("error",I=>this.#o(new y0e(I,this.write)));let f;if(A)if(Array.isArray(A)&&A.length>0){let I=A[0];f=this[_0e](C0e.Buffer.from(I));for(let C=1;C{typeof a=="function"&&(o=a,a=this.flushFlag),this.flush(a),o?.()};try{this.handle.params(t,r)}finally{this.handle.flush=n}this.handle&&(this.#e=t,this.#t=r)}}}};Rm.Zlib=T6;var SKr=class extends T6{constructor(t){super(t,"Deflate")}};Rm.Deflate=SKr;var vKr=class extends T6{constructor(t){super(t,"Inflate")}};Rm.Inflate=vKr;var BKr=class extends T6{#e;constructor(t){super(t,"Gzip"),this.#e=t&&!!t.portable}[_0e](t){return this.#e?(this.#e=!1,t[9]=255,super[_0e](t)):super[_0e](t)}};Rm.Gzip=BKr;var wKr=class extends T6{constructor(t){super(t,"Gunzip")}};Rm.Gunzip=wKr;var TKr=class extends T6{constructor(t){super(t,"DeflateRaw")}};Rm.DeflateRaw=TKr;var RKr=class extends T6{constructor(t){super(t,"InflateRaw")}};Rm.InflateRaw=RKr;var NKr=class extends T6{constructor(t){super(t,"Unzip")}};Rm.Unzip=NKr;var TFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.BROTLI_OPERATION_PROCESS,t.finishFlush=t.finishFlush||w6.constants.BROTLI_OPERATION_FINISH,t.fullFlushFlag=w6.constants.BROTLI_OPERATION_FLUSH,super(t,r)}},DKr=class extends TFt{constructor(t){super(t,"BrotliCompress")}};Rm.BrotliCompress=DKr;var kKr=class extends TFt{constructor(t){super(t,"BrotliDecompress")}};Rm.BrotliDecompress=kKr;var RFt=class extends D7e{constructor(t,r){t=t||{},t.flush=t.flush||w6.constants.ZSTD_e_continue,t.finishFlush=t.finishFlush||w6.constants.ZSTD_e_end,t.fullFlushFlag=w6.constants.ZSTD_e_flush,super(t,r)}},xKr=class extends RFt{constructor(t){super(t,"ZstdCompress")}};Rm.ZstdCompress=xKr;var GKr=class extends RFt{constructor(t){super(t,"ZstdDecompress")}};Rm.ZstdDecompress=GKr});var FFt=H((Vng,Ffs)=>{"use strict";var wfs=typeof process=="object"&&process?process:{stdout:null,stderr:null},G2l=wt("events"),Tfs=wt("stream"),Rfs=wt("string_decoder").StringDecoder,Kte=Symbol("EOF"),jte=Symbol("maybeEmitEnd"),Lue=Symbol("emittedEnd"),NFt=Symbol("emittingEnd"),k7e=Symbol("emittedError"),DFt=Symbol("closed"),Nfs=Symbol("read"),kFt=Symbol("flush"),Dfs=Symbol("flushChunk"),zV=Symbol("encoding"),zte=Symbol("decoder"),xFt=Symbol("flowing"),x7e=Symbol("paused"),OGe=Symbol("resume"),SD=Symbol("bufferLength"),FKr=Symbol("bufferPush"),ZKr=Symbol("bufferShift"),sF=Symbol("objectMode"),oF=Symbol("destroyed"),LKr=Symbol("emitData"),kfs=Symbol("emitEnd"),VKr=Symbol("emitEnd2"),qte=Symbol("async"),G7e=e=>Promise.resolve().then(e),xfs=global._MP_NO_ITERATOR_SYMBOLS_!=="1",F2l=xfs&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Z2l=xfs&&Symbol.iterator||Symbol("iterator not implemented"),L2l=e=>e==="end"||e==="finish"||e==="prefinish",V2l=e=>e instanceof ArrayBuffer||typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,P2l=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),GFt=class{constructor(t,r,n){this.src=t,this.dest=r,this.opts=n,this.ondrain=()=>t[OGe](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},PKr=class extends GFt{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(t,r,n){super(t,r,n),this.proxyErrors=a=>r.emit("error",a),t.on("error",this.proxyErrors)}};Ffs.exports=class Gfs extends Tfs{constructor(t){super(),this[xFt]=!1,this[x7e]=!1,this.pipes=[],this.buffer=[],this[sF]=t&&t.objectMode||!1,this[sF]?this[zV]=null:this[zV]=t&&t.encoding||null,this[zV]==="buffer"&&(this[zV]=null),this[qte]=t&&!!t.async||!1,this[zte]=this[zV]?new Rfs(this[zV]):null,this[Kte]=!1,this[Lue]=!1,this[NFt]=!1,this[DFt]=!1,this[k7e]=null,this.writable=!0,this.readable=!0,this[SD]=0,this[oF]=!1}get bufferLength(){return this[SD]}get encoding(){return this[zV]}set encoding(t){if(this[sF])throw new Error("cannot set encoding in objectMode");if(this[zV]&&t!==this[zV]&&(this[zte]&&this[zte].lastNeed||this[SD]))throw new Error("cannot change encoding");this[zV]!==t&&(this[zte]=t?new Rfs(t):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[zte].write(r)))),this[zV]=t}setEncoding(t){this.encoding=t}get objectMode(){return this[sF]}set objectMode(t){this[sF]=this[sF]||!!t}get async(){return this[qte]}set async(t){this[qte]=this[qte]||!!t}write(t,r,n){if(this[Kte])throw new Error("write after end");if(this[oF])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=this[qte]?G7e:o=>o();return!this[sF]&&!Buffer.isBuffer(t)&&(P2l(t)?t=Buffer.from(t.buffer,t.byteOffset,t.byteLength):V2l(t)?t=Buffer.from(t):typeof t!="string"&&(this.objectMode=!0)),this[sF]?(this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):t.length?(typeof t=="string"&&!(r===this[zV]&&!this[zte].lastNeed)&&(t=Buffer.from(t,r)),Buffer.isBuffer(t)&&this[zV]&&(t=this[zte].write(t)),this.flowing&&this[SD]!==0&&this[kFt](!0),this.flowing?this.emit("data",t):this[FKr](t),this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing):(this[SD]!==0&&this.emit("readable"),n&&a(n),this.flowing)}read(t){if(this[oF])return null;if(this[SD]===0||t===0||t>this[SD])return this[jte](),null;this[sF]&&(t=null),this.buffer.length>1&&!this[sF]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[SD])]);let r=this[Nfs](t||null,this.buffer[0]);return this[jte](),r}[Nfs](t,r){return t===r.length||t===null?this[ZKr]():(this.buffer[0]=r.slice(t),r=r.slice(0,t),this[SD]-=t),this.emit("data",r),!this.buffer.length&&!this[Kte]&&this.emit("drain"),r}end(t,r,n){return typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r),n&&this.once("end",n),this[Kte]=!0,this.writable=!1,(this.flowing||!this[x7e])&&this[jte](),this}[OGe](){this[oF]||(this[x7e]=!1,this[xFt]=!0,this.emit("resume"),this.buffer.length?this[kFt]():this[Kte]?this[jte]():this.emit("drain"))}resume(){return this[OGe]()}pause(){this[xFt]=!1,this[x7e]=!0}get destroyed(){return this[oF]}get flowing(){return this[xFt]}get paused(){return this[x7e]}[FKr](t){this[sF]?this[SD]+=1:this[SD]+=t.length,this.buffer.push(t)}[ZKr](){return this.buffer.length&&(this[sF]?this[SD]-=1:this[SD]-=this.buffer[0].length),this.buffer.shift()}[kFt](t){do;while(this[Dfs](this[ZKr]()));!t&&!this.buffer.length&&!this[Kte]&&this.emit("drain")}[Dfs](t){return t?(this.emit("data",t),this.flowing):!1}pipe(t,r){if(this[oF])return;let n=this[Lue];return r=r||{},t===wfs.stdout||t===wfs.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,n?r.end&&t.end():(this.pipes.push(r.proxyErrors?new PKr(this,t,r):new GFt(this,t,r)),this[qte]?G7e(()=>this[OGe]()):this[OGe]()),t}unpipe(t){let r=this.pipes.find(n=>n.dest===t);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(t,r){return this.on(t,r)}on(t,r){let n=super.on(t,r);return t==="data"&&!this.pipes.length&&!this.flowing?this[OGe]():t==="readable"&&this[SD]!==0?super.emit("readable"):L2l(t)&&this[Lue]?(super.emit(t),this.removeAllListeners(t)):t==="error"&&this[k7e]&&(this[qte]?G7e(()=>r.call(this,this[k7e])):r.call(this,this[k7e])),n}get emittedEnd(){return this[Lue]}[jte](){!this[NFt]&&!this[Lue]&&!this[oF]&&this.buffer.length===0&&this[Kte]&&(this[NFt]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[DFt]&&this.emit("close"),this[NFt]=!1)}emit(t,r,...n){if(t!=="error"&&t!=="close"&&t!==oF&&this[oF])return;if(t==="data")return r?this[qte]?G7e(()=>this[LKr](r)):this[LKr](r):!1;if(t==="end")return this[kfs]();if(t==="close"){if(this[DFt]=!0,!this[Lue]&&!this[oF])return;let o=super.emit("close");return this.removeAllListeners("close"),o}else if(t==="error"){this[k7e]=r;let o=super.emit("error",r);return this[jte](),o}else if(t==="resume"){let o=super.emit("resume");return this[jte](),o}else if(t==="finish"||t==="prefinish"){let o=super.emit(t);return this.removeAllListeners(t),o}let a=super.emit(t,r,...n);return this[jte](),a}[LKr](t){for(let n of this.pipes)n.dest.write(t)===!1&&this.pause();let r=super.emit("data",t);return this[jte](),r}[kfs](){this[Lue]||(this[Lue]=!0,this.readable=!1,this[qte]?G7e(()=>this[VKr]()):this[VKr]())}[VKr](){if(this[zte]){let r=this[zte].end();if(r){for(let n of this.pipes)n.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let t=super.emit("end");return this.removeAllListeners("end"),t}collect(){let t=[];this[sF]||(t.dataLength=0);let r=this.promise();return this.on("data",n=>{t.push(n),this[sF]||(t.dataLength+=n.length)}),r.then(()=>t)}concat(){return this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(t=>this[sF]?Promise.reject(new Error("cannot concat in objectMode")):this[zV]?t.join(""):Buffer.concat(t,t.dataLength))}promise(){return new Promise((t,r)=>{this.on(oF,()=>r(new Error("stream destroyed"))),this.on("error",n=>r(n)),this.on("end",()=>t())})}[F2l](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Kte])return Promise.resolve({done:!0});let n=null,a=null,o=I=>{this.removeListener("data",l),this.removeListener("end",A),a(I)},l=I=>{this.removeListener("error",o),this.removeListener("end",A),this.pause(),n({value:I,done:!!this[Kte]})},A=()=>{this.removeListener("error",o),this.removeListener("data",l),n({done:!0})},f=()=>o(new Error("stream destroyed"));return new Promise((I,C)=>{a=C,n=I,this.once(oF,f),this.once("error",o),this.once("end",A),this.once("data",l)})}}}[Z2l](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(t){return this[oF]?(t?this.emit("error",t):this.emit(oF),this):(this[oF]=!0,this.buffer.length=0,this[SD]=0,typeof this.close=="function"&&!this[DFt]&&this.close(),t?this.emit("error",t):this.emit(oF),this)}static isStream(t){return!!t&&(t instanceof Gfs||t instanceof Tfs||t instanceof G2l&&(typeof t.pipe=="function"||typeof t.write=="function"&&typeof t.end=="function"))}}});var Lfs=H((Png,Zfs)=>{var W2l=FFt(),F7e=class extends Error{constructor(t,r){super(`Bad data size: expected ${r} bytes, but got ${t}`),this.expect=r,this.found=t,this.code="EBADSIZE",Error.captureStackTrace(this,this.constructor)}get name(){return"SizeError"}},ZFt=class extends W2l{constructor(t={}){if(super(t),t.objectMode)throw new TypeError(`${this.constructor.name} streams only work with string and buffer data`);if(this.found=0,this.expect=t.size,typeof this.expect!="number"||this.expect>Number.MAX_SAFE_INTEGER||isNaN(this.expect)||this.expect<0||!isFinite(this.expect)||this.expect!==Math.floor(this.expect))throw new Error("invalid expected size: "+this.expect)}write(t,r,n){let a=Buffer.isBuffer(t)?t:typeof t=="string"?Buffer.from(t,typeof r=="string"?r:"utf8"):t;return Buffer.isBuffer(a)?(this.found+=a.length,this.found>this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.write(t,r,n)):(this.emit("error",new TypeError(`${this.constructor.name} streams only work with string and buffer data`)),!1)}emit(t,...r){return t==="end"&&this.found!==this.expect&&this.emit("error",new F7e(this.found,this.expect)),super.emit(t,...r)}};ZFt.SizeError=F7e;Zfs.exports=ZFt});var Pfs=H((Wng,Vfs)=>{"use strict";var{Minipass:O2l}=rF(),WKr=Symbol("type"),$te=Symbol("buffer"),LFt=class e{constructor(t,r){this[WKr]="";let n=[],a=0;if(t){let l=t,A=Number(l.length);for(let f=0;f{"use strict";var OKr=class extends Error{constructor(t,r,n){super(t),this.code="FETCH_ERROR",n&&Object.assign(this,n),this.errno=this.code,this.type=this.code==="EBADSIZE"&&this.found>this.expect?"max-size":r,this.message=t,Error.captureStackTrace(this,this.constructor)}get name(){return"FetchError"}set name(t){}get[Symbol.toStringTag](){return"FetchError"}};Wfs.exports=OKr});var ere=H((Mng,Ofs)=>{"use strict";var VFt=wt("buffer"),MGe=VFt.Buffer,VH={},PH;for(PH in VFt)VFt.hasOwnProperty(PH)&&(PH==="SlowBuffer"||PH==="Buffer"||(VH[PH]=VFt[PH]));var HGe=VH.Buffer={};for(PH in MGe)MGe.hasOwnProperty(PH)&&(PH==="allocUnsafe"||PH==="allocUnsafeSlow"||(HGe[PH]=MGe[PH]));VH.Buffer.prototype=MGe.prototype;(!HGe.from||HGe.from===Uint8Array.from)&&(HGe.from=function(e,t,r){if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e);if(e&&typeof e.length>"u")throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);return MGe(e,t,r)});HGe.alloc||(HGe.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError('The "size" argument must be of type number. Received type '+typeof e);if(e<0||e>=2*(1<<30))throw new RangeError('The value "'+e+'" is invalid for option "size"');var n=MGe(e);return!t||t.length===0?n.fill(0):typeof r=="string"?n.fill(t,r):n.fill(t),n});if(!VH.kStringMaxLength)try{VH.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch{}VH.constants||(VH.constants={MAX_LENGTH:VH.kMaxLength},VH.kStringMaxLength&&(VH.constants.MAX_STRING_LENGTH=VH.kStringMaxLength));Ofs.exports=VH});var Hfs=H(QKr=>{"use strict";var Mfs="\uFEFF";QKr.PrependBOM=HKr;function HKr(e,t){this.encoder=e,this.addBOM=!0}HKr.prototype.write=function(e){return this.addBOM&&(e=Mfs+e,this.addBOM=!1),this.encoder.write(e)};HKr.prototype.end=function(){return this.encoder.end()};QKr.StripBOM=YKr;function YKr(e,t){this.decoder=e,this.pass=!1,this.options=t||{}}YKr.prototype.write=function(e){var t=this.decoder.write(e);return this.pass||!t||(t[0]===Mfs&&(t=t.slice(1),typeof this.options.stripBOM=="function"&&this.options.stripBOM()),this.pass=!0),t};YKr.prototype.end=function(){return this.decoder.end()}});var Qfs=H((Yng,Yfs)=>{"use strict";var b0e=ere().Buffer;Yfs.exports={utf8:{type:"_internal",bomAware:!0},cesu8:{type:"_internal",bomAware:!0},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:!0},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:JKr};function JKr(e,t){this.enc=e.encodingName,this.bomAware=e.bomAware,this.enc==="base64"?this.encoder=jKr:this.enc==="cesu8"&&(this.enc="utf8",this.encoder=zKr,b0e.from("eda0bdedb2a9","hex").toString()!=="\u{1F4A9}"&&(this.decoder=qKr,this.defaultCharUnicode=t.defaultCharUnicode))}JKr.prototype.encoder=KKr;JKr.prototype.decoder=UKr;var XKr=wt("string_decoder").StringDecoder;XKr.prototype.end||(XKr.prototype.end=function(){});function UKr(e,t){this.decoder=new XKr(t.enc)}UKr.prototype.write=function(e){return b0e.isBuffer(e)||(e=b0e.from(e)),this.decoder.write(e)};UKr.prototype.end=function(){return this.decoder.end()};function KKr(e,t){this.enc=t.enc}KKr.prototype.write=function(e){return b0e.from(e,this.enc)};KKr.prototype.end=function(){};function jKr(e,t){this.prevStr=""}jKr.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;return this.prevStr=e.slice(t),e=e.slice(0,t),b0e.from(e,"base64")};jKr.prototype.end=function(){return b0e.from(this.prevStr,"base64")};function zKr(e,t){}zKr.prototype.write=function(e){for(var t=b0e.alloc(e.length*3),r=0,n=0;n>>6),t[r++]=128+(a&63)):(t[r++]=224+(a>>>12),t[r++]=128+(a>>>6&63),t[r++]=128+(a&63))}return t.slice(0,r)};zKr.prototype.end=function(){};function qKr(e,t){this.acc=0,this.contBytes=0,this.accBytes=0,this.defaultCharUnicode=t.defaultCharUnicode}qKr.prototype.write=function(e){for(var t=this.acc,r=this.contBytes,n=this.accBytes,a="",o=0;o0&&(a+=this.defaultCharUnicode,r=0),l<128?a+=String.fromCharCode(l):l<224?(t=l&31,r=1,n=1):l<240?(t=l&15,r=2,n=1):a+=this.defaultCharUnicode):r>0?(t=t<<6|l&63,r--,n++,r===0&&(n===2&&t<128&&t>0?a+=this.defaultCharUnicode:n===3&&t<2048?a+=this.defaultCharUnicode:a+=String.fromCharCode(t))):a+=this.defaultCharUnicode}return this.acc=t,this.contBytes=r,this.accBytes=n,a};qKr.prototype.end=function(){var e=0;return this.contBytes>0&&(e+=this.defaultCharUnicode),e}});var Ufs=H(Vue=>{"use strict";var PFt=ere().Buffer;Vue._utf32=$Kr;function $Kr(e,t){this.iconv=t,this.bomAware=!0,this.isLE=e.isLE}Vue.utf32le={type:"_utf32",isLE:!0};Vue.utf32be={type:"_utf32",isLE:!1};Vue.ucs4le="utf32le";Vue.ucs4be="utf32be";$Kr.prototype.encoder=e8r;$Kr.prototype.decoder=t8r;function e8r(e,t){this.isLE=t.isLE,this.highSurrogate=0}e8r.prototype.write=function(e){for(var t=PFt.from(e,"ucs2"),r=PFt.alloc(t.length*2),n=this.isLE?r.writeUInt32LE:r.writeUInt32BE,a=0,o=0;o0){for(;t1114111)&&(r=n),r>=65536){r-=65536;var a=55296|r>>10;e[t++]=a&255,e[t++]=a>>8;var r=56320|r&1023}return e[t++]=r&255,e[t++]=r>>8,t}t8r.prototype.end=function(){this.overflow.length=0};Vue.utf32=r8r;Vue.ucs4="utf32";function r8r(e,t){this.iconv=t}r8r.prototype.encoder=n8r;r8r.prototype.decoder=i8r;function n8r(e,t){e=e||{},e.addBOM===void 0&&(e.addBOM=!0),this.encoder=t.iconv.getEncoder(e.defaultEncoding||"utf-32le",e)}n8r.prototype.write=function(e){return this.encoder.write(e)};n8r.prototype.end=function(){return this.encoder.end()};function i8r(e,t){this.decoder=null,this.initialBufs=[],this.initialBufsLen=0,this.options=e||{},this.iconv=t.iconv}i8r.prototype.write=function(e){if(!this.decoder){if(this.initialBufs.push(e),this.initialBufsLen+=e.length,this.initialBufsLen<32)return"";var t=Jfs(this.initialBufs,this.options.defaultEncoding);this.decoder=this.iconv.getDecoder(t,this.options);for(var r="",n=0;n16)&&o++,(r[3]!==0||r[2]>16)&&a++,r[0]===0&&r[1]===0&&(r[2]!==0||r[3]!==0)&&A++,(r[0]!==0||r[1]!==0)&&r[2]===0&&r[3]===0&&l++,r.length=0,n++,n>=100)break e}return A-o>l-a?"utf-32be":A-o{"use strict";var Kfs=ere().Buffer;u8r.utf16be=WFt;function WFt(){}WFt.prototype.encoder=s8r;WFt.prototype.decoder=o8r;WFt.prototype.bomAware=!0;function s8r(){}s8r.prototype.write=function(e){for(var t=Kfs.from(e,"ucs2"),r=0;r=100)break e}return o>a?"utf-16be":o{"use strict";var R6=ere().Buffer;HFt.utf7=OFt;HFt.unicode11utf7="utf7";function OFt(e,t){this.iconv=t}OFt.prototype.encoder=A8r;OFt.prototype.decoder=d8r;OFt.prototype.bomAware=!0;var M2l=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function A8r(e,t){this.iconv=t.iconv}A8r.prototype.write=function(e){return R6.from(e.replace(M2l,function(t){return"+"+(t==="+"?"":this.iconv.encode(t,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};A8r.prototype.end=function(){};function d8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var H2l=/[A-Za-z0-9\/+]/,p8r=[];for(Z7e=0;Z7e<256;Z7e++)p8r[Z7e]=H2l.test(String.fromCharCode(Z7e));var Z7e,Y2l=43,E0e=45,g8r=38;d8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e};HFt.utf7imap=MFt;function MFt(e,t){this.iconv=t}MFt.prototype.encoder=f8r;MFt.prototype.decoder=I8r;MFt.prototype.bomAware=!0;function f8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=R6.alloc(6),this.base64AccumIdx=0}f8r.prototype.write=function(e){for(var t=this.inBase64,r=this.base64Accum,n=this.base64AccumIdx,a=R6.alloc(e.length*5+10),o=0,l=0;l0&&(o+=a.write(r.slice(0,n).toString("base64").replace(/\//g,",").replace(/=+$/,""),o),n=0),a[o++]=E0e,t=!1),t||(a[o++]=A,A===g8r&&(a[o++]=E0e))):(t||(a[o++]=g8r,t=!0),t&&(r[n++]=A>>8,r[n++]=A&255,n==r.length&&(o+=a.write(r.toString("base64").replace(/\//g,","),o),n=0)))}return this.inBase64=t,this.base64AccumIdx=n,a.slice(0,o)};f8r.prototype.end=function(){var e=R6.alloc(10),t=0;return this.inBase64&&(this.base64AccumIdx>0&&(t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t),this.base64AccumIdx=0),e[t++]=E0e,this.inBase64=!1),e.slice(0,t)};function I8r(e,t){this.iconv=t.iconv,this.inBase64=!1,this.base64Accum=""}var qfs=p8r.slice();qfs[44]=!0;I8r.prototype.write=function(e){for(var t="",r=0,n=this.inBase64,a=this.base64Accum,o=0;o0&&(e=this.iconv.decode(R6.from(this.base64Accum,"base64"),"utf16-be")),this.inBase64=!1,this.base64Accum="",e}});var tIs=H(eIs=>{"use strict";var YFt=ere().Buffer;eIs._sbcs=h8r;function h8r(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){for(var r="",n=0;n<128;n++)r+=String.fromCharCode(n);e.chars=r+e.chars}this.decodeBuf=YFt.from(e.chars,"ucs2");for(var a=YFt.alloc(65536,t.defaultCharSingleByte.charCodeAt(0)),n=0;n{"use strict";rIs.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"\xC4\u0100\u0101\xC9\u0104\xD6\xDC\xE1\u0105\u010C\xE4\u010D\u0106\u0107\xE9\u0179\u017A\u010E\xED\u010F\u0112\u0113\u0116\xF3\u0117\xF4\xF6\xF5\xFA\u011A\u011B\xFC\u2020\xB0\u0118\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\u0119\xA8\u2260\u0123\u012E\u012F\u012A\u2264\u2265\u012B\u0136\u2202\u2211\u0142\u013B\u013C\u013D\u013E\u0139\u013A\u0145\u0146\u0143\xAC\u221A\u0144\u0147\u2206\xAB\xBB\u2026\xA0\u0148\u0150\xD5\u0151\u014C\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\u014D\u0154\u0155\u0158\u2039\u203A\u0159\u0156\u0157\u0160\u201A\u201E\u0161\u015A\u015B\xC1\u0164\u0165\xCD\u017D\u017E\u016A\xD3\xD4\u016B\u016E\xDA\u016F\u0170\u0171\u0172\u0173\xDD\xFD\u0137\u017B\u0141\u017C\u0122\u02C7"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\u20AC\u25A0\xA0"},mik:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2514\u2534\u252C\u251C\u2500\u253C\u2563\u2551\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2510\u2591\u2592\u2593\u2502\u2524\u2116\xA7\u2557\u255D\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},cp720:{type:"_sbcs",chars:"\x80\x81\xE9\xE2\x84\xE0\x86\xE7\xEA\xEB\xE8\xEF\xEE\x8D\x8E\x8F\x90\u0651\u0652\xF4\xA4\u0640\xFB\xF9\u0621\u0622\u0623\u0624\xA3\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0636\u0637\u0638\u0639\u063A\u0641\xB5\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u2261\u064B\u064C\u064D\u064E\u064F\u0650\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}});var sIs=H((jng,iIs)=>{"use strict";iIs.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"\u20AC\uFFFD\uFFFD\uFFFD\uFFFD\u2026\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\u0160\u2039\u015A\u0164\u017D\u0179\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0161\u203A\u015B\u0165\u017E\u017A\xA0\u02C7\u02D8\u0141\xA4\u0104\xA6\xA7\xA8\xA9\u015E\xAB\xAC\xAD\xAE\u017B\xB0\xB1\u02DB\u0142\xB4\xB5\xB6\xB7\xB8\u0105\u015F\xBB\u013D\u02DD\u013E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u040C\u040B\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u045C\u045B\u045F\xA0\u040E\u045E\u0408\xA4\u0490\xA6\xA7\u0401\xA9\u0404\xAB\xAC\xAD\xAE\u0407\xB0\xB1\u0406\u0456\u0491\xB5\xB6\xB7\u0451\u2116\u0454\xBB\u0458\u0405\u0455\u0457\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\u017D\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\u017E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\u0385\u0386\xA3\xA4\xA5\xA6\xA7\xA8\xA9\uFFFD\xAB\xAC\xAD\xAE\u2015\xB0\xB1\xB2\xB3\u0384\xB5\xB6\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\xA0\xA1\xA2\xA3\u20AA\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\xBF\u05B0\u05B1\u05B2\u05B3\u05B4\u05B5\u05B6\u05B7\u05B8\u05B9\u05BA\u05BB\u05BC\u05BD\u05BE\u05BF\u05C0\u05C1\u05C2\u05C3\u05F0\u05F1\u05F2\u05F3\u05F4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"\u20AC\u067E\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0679\u2039\u0152\u0686\u0698\u0688\u06AF\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u06A9\u2122\u0691\u203A\u0153\u200C\u200D\u06BA\xA0\u060C\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\u06BE\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\u061B\xBB\xBC\xBD\xBE\u061F\u06C1\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\xD7\u0637\u0638\u0639\u063A\u0640\u0641\u0642\u0643\xE0\u0644\xE2\u0645\u0646\u0647\u0648\xE7\xE8\xE9\xEA\xEB\u0649\u064A\xEE\xEF\u064B\u064C\u064D\u064E\xF4\u064F\u0650\xF7\u0651\xF9\u0652\xFB\xFC\u200E\u200F\u06D2"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\uFFFD\u201E\u2026\u2020\u2021\uFFFD\u2030\uFFFD\u2039\uFFFD\xA8\u02C7\xB8\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\xAF\u02DB\uFFFD\xA0\uFFFD\xA2\xA3\xA4\uFFFD\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u02D9"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"\u20AC\uFFFD\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\uFFFD\u2039\u0152\uFFFD\uFFFD\uFFFD\uFFFD\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\uFFFD\u203A\u0153\uFFFD\uFFFD\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u02D8\u0141\xA4\u013D\u015A\xA7\xA8\u0160\u015E\u0164\u0179\xAD\u017D\u017B\xB0\u0105\u02DB\u0142\xB4\u013E\u015B\u02C7\xB8\u0161\u015F\u0165\u017A\u02DD\u017E\u017C\u0154\xC1\xC2\u0102\xC4\u0139\u0106\xC7\u010C\xC9\u0118\xCB\u011A\xCD\xCE\u010E\u0110\u0143\u0147\xD3\xD4\u0150\xD6\xD7\u0158\u016E\xDA\u0170\xDC\xDD\u0162\xDF\u0155\xE1\xE2\u0103\xE4\u013A\u0107\xE7\u010D\xE9\u0119\xEB\u011B\xED\xEE\u010F\u0111\u0144\u0148\xF3\xF4\u0151\xF6\xF7\u0159\u016F\xFA\u0171\xFC\xFD\u0163\u02D9"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0126\u02D8\xA3\xA4\uFFFD\u0124\xA7\xA8\u0130\u015E\u011E\u0134\xAD\uFFFD\u017B\xB0\u0127\xB2\xB3\xB4\xB5\u0125\xB7\xB8\u0131\u015F\u011F\u0135\xBD\uFFFD\u017C\xC0\xC1\xC2\uFFFD\xC4\u010A\u0108\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\uFFFD\xD1\xD2\xD3\xD4\u0120\xD6\xD7\u011C\xD9\xDA\xDB\xDC\u016C\u015C\xDF\xE0\xE1\xE2\uFFFD\xE4\u010B\u0109\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\uFFFD\xF1\xF2\xF3\xF4\u0121\xF6\xF7\u011D\xF9\xFA\xFB\xFC\u016D\u015D\u02D9"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0138\u0156\xA4\u0128\u013B\xA7\xA8\u0160\u0112\u0122\u0166\xAD\u017D\xAF\xB0\u0105\u02DB\u0157\xB4\u0129\u013C\u02C7\xB8\u0161\u0113\u0123\u0167\u014A\u017E\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\u012A\u0110\u0145\u014C\u0136\xD4\xD5\xD6\xD7\xD8\u0172\xDA\xDB\xDC\u0168\u016A\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\u012B\u0111\u0146\u014D\u0137\xF4\xF5\xF6\xF7\xF8\u0173\xFA\xFB\xFC\u0169\u016B\u02D9"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0403\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0453\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\uFFFD\uFFFD\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u060C\xAD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u061B\uFFFD\uFFFD\uFFFD\u061F\uFFFD\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\u0638\u0639\u063A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u2018\u2019\xA3\u20AC\u20AF\xA6\xA7\xA8\xA9\u037A\xAB\xAC\xAD\uFFFD\u2015\xB0\xB1\xB2\xB3\u0384\u0385\u0386\xB7\u0388\u0389\u038A\xBB\u038C\xBD\u038E\u038F\u0390\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\uFFFD\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03AA\u03AB\u03AC\u03AD\u03AE\u03AF\u03B0\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C2\u03C3\u03C4\u03C5\u03C6\u03C7\u03C8\u03C9\u03CA\u03CB\u03CC\u03CD\u03CE\uFFFD"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xD7\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xF7\xBB\xBC\xBD\xBE\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2017\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\uFFFD\u200E\u200F\uFFFD"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u011E\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u0130\u015E\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u011F\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u0131\u015F\xFF"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0112\u0122\u012A\u0128\u0136\xA7\u013B\u0110\u0160\u0166\u017D\xAD\u016A\u014A\xB0\u0105\u0113\u0123\u012B\u0129\u0137\xB7\u013C\u0111\u0161\u0167\u017E\u2015\u016B\u014B\u0100\xC1\xC2\xC3\xC4\xC5\xC6\u012E\u010C\xC9\u0118\xCB\u0116\xCD\xCE\xCF\xD0\u0145\u014C\xD3\xD4\xD5\xD6\u0168\xD8\u0172\xDA\xDB\xDC\xDD\xDE\xDF\u0101\xE1\xE2\xE3\xE4\xE5\xE6\u012F\u010D\xE9\u0119\xEB\u0117\xED\xEE\xEF\xF0\u0146\u014D\xF3\xF4\xF5\xF6\u0169\xF8\u0173\xFA\xFB\xFC\xFD\xFE\u0138"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u201D\xA2\xA3\xA4\u201E\xA6\xA7\xD8\xA9\u0156\xAB\xAC\xAD\xAE\xC6\xB0\xB1\xB2\xB3\u201C\xB5\xB6\xB7\xF8\xB9\u0157\xBB\xBC\xBD\xBE\xE6\u0104\u012E\u0100\u0106\xC4\xC5\u0118\u0112\u010C\xC9\u0179\u0116\u0122\u0136\u012A\u013B\u0160\u0143\u0145\xD3\u014C\xD5\xD6\xD7\u0172\u0141\u015A\u016A\xDC\u017B\u017D\xDF\u0105\u012F\u0101\u0107\xE4\xE5\u0119\u0113\u010D\xE9\u017A\u0117\u0123\u0137\u012B\u013C\u0161\u0144\u0146\xF3\u014D\xF5\xF6\xF7\u0173\u0142\u015B\u016B\xFC\u017C\u017E\u2019"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u1E02\u1E03\xA3\u010A\u010B\u1E0A\xA7\u1E80\xA9\u1E82\u1E0B\u1EF2\xAD\xAE\u0178\u1E1E\u1E1F\u0120\u0121\u1E40\u1E41\xB6\u1E56\u1E81\u1E57\u1E83\u1E60\u1EF3\u1E84\u1E85\u1E61\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0174\xD1\xD2\xD3\xD4\xD5\xD6\u1E6A\xD8\xD9\xDA\xDB\xDC\xDD\u0176\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0175\xF1\xF2\xF3\xF4\xF5\xF6\u1E6B\xF8\xF9\xFA\xFB\xFC\xFD\u0177\xFF"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\u0160\xA7\u0161\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u017D\xB5\xB6\xB7\u017E\xB9\xBA\xBB\u0152\u0153\u0178\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0104\u0105\u0141\u20AC\u201E\u0160\xA7\u0161\xA9\u0218\xAB\u0179\xAD\u017A\u017B\xB0\xB1\u010C\u0142\u017D\u201D\xB6\xB7\u017E\u010D\u0219\xBB\u0152\u0153\u0178\u017C\xC0\xC1\xC2\u0102\xC4\u0106\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0110\u0143\xD2\xD3\xD4\u0150\xD6\u015A\u0170\xD9\xDA\xDB\xDC\u0118\u021A\xDF\xE0\xE1\xE2\u0103\xE4\u0107\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0111\u0144\xF2\xF3\xF4\u0151\xF6\u015B\u0171\xF9\xFA\xFB\xFC\u0119\u021B\xFF"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"\u0391\u0392\u0393\u0394\u0395\u0396\u0397\u0398\u0399\u039A\u039B\u039C\u039D\u039E\u039F\u03A0\u03A1\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u03B4\u03B5\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u03C5\u03C6\u03C7\u03C8\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03C9\u03AC\u03AD\u03AE\u03CA\u03AF\u03CC\u03CD\u03CB\u03CE\u0386\u0388\u0389\u038A\u038C\u038E\u038F\xB1\u2265\u2264\u03AA\u03AB\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"\u0106\xFC\xE9\u0101\xE4\u0123\xE5\u0107\u0142\u0113\u0156\u0157\u012B\u0179\xC4\xC5\xC9\xE6\xC6\u014D\xF6\u0122\xA2\u015A\u015B\xD6\xDC\xF8\xA3\xD8\xD7\xA4\u0100\u012A\xF3\u017B\u017C\u017A\u201D\xA6\xA9\xAE\xAC\xBD\xBC\u0141\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0104\u010C\u0118\u0116\u2563\u2551\u2557\u255D\u012E\u0160\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0172\u016A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u017D\u0105\u010D\u0119\u0117\u012F\u0161\u0173\u016B\u017E\u2518\u250C\u2588\u2584\u258C\u2590\u2580\xD3\xDF\u014C\u0143\xF5\xD5\xB5\u0144\u0136\u0137\u013B\u013C\u0146\u0112\u0145\u2019\xAD\xB1\u201C\xBE\xB6\xA7\xF7\u201E\xB0\u2219\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u0131\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\u016F\u0107\xE7\u0142\xEB\u0150\u0151\xEE\u0179\xC4\u0106\xC9\u0139\u013A\xF4\xF6\u013D\u013E\u015A\u015B\xD6\xDC\u0164\u0165\u0141\xD7\u010D\xE1\xED\xF3\xFA\u0104\u0105\u017D\u017E\u0118\u0119\xAC\u017A\u010C\u015F\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\u011A\u015E\u2563\u2551\u2557\u255D\u017B\u017C\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u0102\u0103\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u0111\u0110\u010E\xCB\u010F\u0147\xCD\xCE\u011B\u2518\u250C\u2588\u2584\u0162\u016E\u2580\xD3\xDF\xD4\u0143\u0144\u0148\u0160\u0161\u0154\xDA\u0155\u0170\xFD\xDD\u0163\xB4\xAD\u02DD\u02DB\u02C7\u02D8\xA7\xF7\xB8\xB0\xA8\u02D9\u0171\u0158\u0159\u25A0\xA0"},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"\u0452\u0402\u0453\u0403\u0451\u0401\u0454\u0404\u0455\u0405\u0456\u0406\u0457\u0407\u0458\u0408\u0459\u0409\u045A\u040A\u045B\u040B\u045C\u040C\u045E\u040E\u045F\u040F\u044E\u042E\u044A\u042A\u0430\u0410\u0431\u0411\u0446\u0426\u0434\u0414\u0435\u0415\u0444\u0424\u0433\u0413\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u0445\u0425\u0438\u0418\u2563\u2551\u2557\u255D\u0439\u0419\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u043A\u041A\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\u043B\u041B\u043C\u041C\u043D\u041D\u043E\u041E\u043F\u2518\u250C\u2588\u2584\u041F\u044F\u2580\u042F\u0440\u0420\u0441\u0421\u0442\u0422\u0443\u0423\u0436\u0416\u0432\u0412\u044C\u042C\u2116\xAD\u044B\u042B\u0437\u0417\u0448\u0428\u044D\u042D\u0449\u0429\u0447\u0427\xA7\u25A0\xA0"},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\uFFFD\xA3\uFFFD\xD7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAE\xAC\xBD\xBC\uFFFD\xAB\xBB\u2591\u2592\u2593\u2502\u2524\uFFFD\uFFFD\uFFFD\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\uFFFD\uFFFD\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u2518\u250C\u2588\u2584\xA6\uFFFD\u2580\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xB5\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\u0131\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\u0130\xD6\xDC\xF8\xA3\xD8\u015E\u015F\xE1\xED\xF3\xFA\xF1\xD1\u011E\u011F\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xBA\xAA\xCA\xCB\xC8\uFFFD\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\uFFFD\xD7\xDA\xDB\xD9\xEC\xFF\xAF\xB4\xAD\xB1\uFFFD\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\xD7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xAE\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\xC1\xC2\xC0\xA9\u2563\u2551\u2557\u255D\xA2\xA5\u2510\u2514\u2534\u252C\u251C\u2500\u253C\xE3\xC3\u255A\u2554\u2569\u2566\u2560\u2550\u256C\xA4\xF0\xD0\xCA\xCB\xC8\u20AC\xCD\xCE\xCF\u2518\u250C\u2588\u2584\xA6\xCC\u2580\xD3\xDF\xD4\xD2\xF5\xD5\xB5\xFE\xDE\xDA\xDB\xD9\xFD\xDD\xAF\xB4\xAD\xB1\u2017\xBE\xB6\xA7\xF7\xB8\xB0\xA8\xB7\xB9\xB3\xB2\u25A0\xA0"},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE3\xE0\xC1\xE7\xEA\xCA\xE8\xCD\xD4\xEC\xC3\xC2\xC9\xC0\xC8\xF4\xF5\xF2\xDA\xF9\xCC\xD5\xDC\xA2\xA3\xD9\u20A7\xD3\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\xD2\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xD0\xF0\xDE\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xFE\xFB\xDD\xFD\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xC1\xCD\xD3\xDA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"\u05D0\u05D1\u05D2\u05D3\u05D4\u05D5\u05D6\u05D7\u05D8\u05D9\u05DA\u05DB\u05DC\u05DD\u05DE\u05DF\u05E0\u05E1\u05E2\u05E3\u05E4\u05E5\u05E6\u05E7\u05E8\u05E9\u05EA\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xC2\xE0\xB6\xE7\xEA\xEB\xE8\xEF\xEE\u2017\xC0\xA7\xC9\xC8\xCA\xF4\xCB\xCF\xFB\xF9\xA4\xD4\xDC\xA2\xA3\xD9\xDB\u0192\xA6\xB4\xF3\xFA\xA8\xB8\xB3\xAF\xCE\u2310\xAC\xBD\xBC\xBE\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#$\u066A&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xB0\xB7\u2219\u221A\u2592\u2500\u2502\u253C\u2524\u252C\u251C\u2534\u2510\u250C\u2514\u2518\u03B2\u221E\u03C6\xB1\xBD\xBC\u2248\xAB\xBB\uFEF7\uFEF8\uFFFD\uFFFD\uFEFB\uFEFC\uFFFD\xA0\xAD\uFE82\xA3\xA4\uFE84\uFFFD\uFFFD\uFE8E\uFE8F\uFE95\uFE99\u060C\uFE9D\uFEA1\uFEA5\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFED1\u061B\uFEB1\uFEB5\uFEB9\u061F\xA2\uFE80\uFE81\uFE83\uFE85\uFECA\uFE8B\uFE8D\uFE91\uFE93\uFE97\uFE9B\uFE9F\uFEA3\uFEA7\uFEA9\uFEAB\uFEAD\uFEAF\uFEB3\uFEB7\uFEBB\uFEBF\uFEC1\uFEC5\uFECB\uFECF\xA6\xAC\xF7\xD7\uFEC9\u0640\uFED3\uFED7\uFEDB\uFEDF\uFEE3\uFEE7\uFEEB\uFEED\uFEEF\uFEF3\uFEBD\uFECC\uFECE\uFECD\uFEE1\uFE7D\u0651\uFEE5\uFEE9\uFEEC\uFEF0\uFEF2\uFED0\uFED5\uFEF5\uFEF6\uFEDD\uFED9\uFEF1\u25A0\uFFFD`},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xF8\xA3\xD8\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xA4\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0404\u0454\u0407\u0457\u040E\u045E\xB0\u2219\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0386\uFFFD\xB7\xAC\xA6\u2018\u2019\u0388\u2015\u0389\u038A\u03AA\u038C\uFFFD\uFFFD\u038E\u03AB\xA9\u038F\xB2\xB3\u03AC\xA3\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03CD\u0391\u0392\u0393\u0394\u0395\u0396\u0397\xBD\u0398\u0399\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u039A\u039B\u039C\u039D\u2563\u2551\u2557\u255D\u039E\u039F\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u03A0\u03A1\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u03A3\u03A4\u03A5\u03A6\u03A7\u03A8\u03A9\u03B1\u03B2\u03B3\u2518\u250C\u2588\u2584\u03B4\u03B5\u2580\u03B6\u03B7\u03B8\u03B9\u03BA\u03BB\u03BC\u03BD\u03BE\u03BF\u03C0\u03C1\u03C3\u03C2\u03C4\u0384\xAD\xB1\u03C5\u03C6\u03C7\xA7\u03C8\u0385\xB0\xA8\u03C9\u03CB\u03B0\u03CE\u25A0\xA0"},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\u203E\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\u0160\xD1\xD2\xD3\xD4\xD5\xD6\xD7\xD8\xD9\xDA\xDB\xDC\xDD\u017D\xDF\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\u0161\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\u017E\xFF"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"\uFE88\xD7\xF7\uF8F6\uF8F5\uF8F4\uF8F7\uFE71\x88\u25A0\u2502\u2500\u2510\u250C\u2514\u2518\uFE79\uFE7B\uFE7D\uFE7F\uFE77\uFE8A\uFEF0\uFEF3\uFEF2\uFECE\uFECF\uFED0\uFEF6\uFEF8\uFEFA\uFEFC\xA0\uF8FA\uF8F9\uF8F8\xA4\uF8FB\uFE8B\uFE91\uFE97\uFE9B\uFE9F\uFEA3\u060C\xAD\uFEA7\uFEB3\u0660\u0661\u0662\u0663\u0664\u0665\u0666\u0667\u0668\u0669\uFEB7\u061B\uFEBB\uFEBF\uFECA\u061F\uFECB\u0621\u0622\u0623\u0624\u0625\u0626\u0627\u0628\u0629\u062A\u062B\u062C\u062D\u062E\u062F\u0630\u0631\u0632\u0633\u0634\u0635\u0636\u0637\uFEC7\u0639\u063A\uFECC\uFE82\uFE84\uFE8E\uFED3\u0640\u0641\u0642\u0643\u0644\u0645\u0646\u0647\u0648\u0649\u064A\u064B\u064C\u064D\u064E\u064F\u0650\u0651\u0652\uFED7\uFEDB\uFEDF\uF8FC\uFEF5\uFEF7\uFEF9\uFEFB\uFEE3\uFEE7\uFEEC\uFEE9\uFFFD"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0401\u0402\u0490\u0404\u0405\u0406\u0407\u0408\u0409\u040A\u040B\u040C\xAD\u040E\u040F\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u2116\u0451\u0452\u0491\u0454\u0455\u0456\u0457\u0458\u0459\u045A\u045B\u045C\xA7\u045E\u045F"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F\u0401\u0451\u0490\u0491\u0404\u0454\u0406\u0456\u0407\u0457\xB7\u221A\u2116\xA4\u25A0\xA0"},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E81\u0E82\u0E84\u0E87\u0E88\u0EAA\u0E8A\u0E8D\u0E94\u0E95\u0E96\u0E97\u0E99\u0E9A\u0E9B\u0E9C\u0E9D\u0E9E\u0E9F\u0EA1\u0EA2\u0EA3\u0EA5\u0EA7\u0EAB\u0EAD\u0EAE\uFFFD\uFFFD\uFFFD\u0EAF\u0EB0\u0EB2\u0EB3\u0EB4\u0EB5\u0EB6\u0EB7\u0EB8\u0EB9\u0EBC\u0EB1\u0EBB\u0EBD\uFFFD\uFFFD\uFFFD\u0EC0\u0EC1\u0EC2\u0EC3\u0EC4\u0EC8\u0EC9\u0ECA\u0ECB\u0ECC\u0ECD\u0EC6\uFFFD\u0EDC\u0EDD\u20AD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0ED0\u0ED1\u0ED2\u0ED3\u0ED4\u0ED5\u0ED6\u0ED7\u0ED8\u0ED9\uFFFD\uFFFD\xA2\xAC\xA6\uFFFD"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E48\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\u0E49\u0E4A\u0E4B\u20AC\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\xA2\xAC\xA6\xA0"},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"\u20AC\x81\x82\x83\x84\u2026\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xA1\xA2\xA3\u20AC\xA5\xA6\xA7\u0153\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\u0178\xB5\xB6\xB7\u0152\xB9\xBA\xBB\xBC\xBD\xBE\xBF\xC0\xC1\xC2\u0102\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\u0300\xCD\xCE\xCF\u0110\xD1\u0309\xD3\xD4\u01A0\xD6\xD7\xD8\xD9\xDA\xDB\xDC\u01AF\u0303\xDF\xE0\xE1\xE2\u0103\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\u0301\xED\xEE\xEF\u0111\xF1\u0323\xF3\xF4\u01A1\xF6\xF7\xF8\xF9\xFA\xFB\xFC\u01B0\u20AB\xFF"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\u0160\u2122\xB4\xA8\u2260\u017D\xD8\u221E\xB1\u2264\u2265\u2206\xB5\u2202\u2211\u220F\u0161\u222B\xAA\xBA\u2126\u017E\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u0106\xAB\u010C\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u0110\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\uFFFD\xA9\u2044\xA4\u2039\u203A\xC6\xBB\u2013\xB7\u201A\u201E\u2030\xC2\u0107\xC1\u010D\xC8\xCD\xCE\xCF\xCC\xD3\xD4\u0111\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u03C0\xCB\u02DA\xB8\xCA\xE6\u02C7"},maccyrillic:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\xA2\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u2202\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},macgreek:{type:"_sbcs",chars:"\xC4\xB9\xB2\xC9\xB3\xD6\xDC\u0385\xE0\xE2\xE4\u0384\xA8\xE7\xE9\xE8\xEA\xEB\xA3\u2122\xEE\xEF\u2022\xBD\u2030\xF4\xF6\xA6\xAD\xF9\xFB\xFC\u2020\u0393\u0394\u0398\u039B\u039E\u03A0\xDF\xAE\xA9\u03A3\u03AA\xA7\u2260\xB0\u0387\u0391\xB1\u2264\u2265\xA5\u0392\u0395\u0396\u0397\u0399\u039A\u039C\u03A6\u03AB\u03A8\u03A9\u03AC\u039D\xAC\u039F\u03A1\u2248\u03A4\xAB\xBB\u2026\xA0\u03A5\u03A7\u0386\u0388\u0153\u2013\u2015\u201C\u201D\u2018\u2019\xF7\u0389\u038A\u038C\u038E\u03AD\u03AE\u03AF\u03CC\u038F\u03CD\u03B1\u03B2\u03C8\u03B4\u03B5\u03C6\u03B3\u03B7\u03B9\u03BE\u03BA\u03BB\u03BC\u03BD\u03BF\u03C0\u03CE\u03C1\u03C3\u03C4\u03B8\u03C9\u03C2\u03C7\u03C5\u03B6\u03CA\u03CB\u0390\u03B0\uFFFD"},maciceland:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\xDD\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\xD0\xF0\xDE\xFE\xFD\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macroman:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macromania:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\u0102\u015E\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\u0103\u015F\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\u0162\u0163\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macthai:{type:"_sbcs",chars:"\xAB\xBB\u2026\uF88C\uF88F\uF892\uF895\uF898\uF88B\uF88E\uF891\uF894\uF897\u201C\u201D\uF899\uFFFD\u2022\uF884\uF889\uF885\uF886\uF887\uF888\uF88A\uF88D\uF890\uF893\uF896\u2018\u2019\uFFFD\xA0\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFEFF\u200B\u2013\u2014\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u2122\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\xAE\xA9\uFFFD\uFFFD\uFFFD\uFFFD"},macturkish:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u011E\u011F\u0130\u0131\u015E\u015F\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\uFFFD\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},macukraine:{type:"_sbcs",chars:"\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u2020\xB0\u0490\xA3\xA7\u2022\xB6\u0406\xAE\xA9\u2122\u0402\u0452\u2260\u0403\u0453\u221E\xB1\u2264\u2265\u0456\xB5\u0491\u0408\u0404\u0454\u0407\u0457\u0409\u0459\u040A\u045A\u0458\u0405\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\u040B\u045B\u040C\u045C\u0455\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u201E\u040E\u045E\u040F\u045F\u2116\u0401\u0451\u044F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\xA4"},koi8r:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u2553\u2554\u2555\u2556\u2557\u2558\u2559\u255A\u255B\u255C\u255D\u255E\u255F\u2560\u2561\u0401\u2562\u2563\u2564\u2565\u2566\u2567\u2568\u2569\u256A\u256B\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8u:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u255D\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u256C\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8ru:{type:"_sbcs",chars:"\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2580\u2584\u2588\u258C\u2590\u2591\u2592\u2593\u2320\u25A0\u2219\u221A\u2248\u2264\u2265\xA0\u2321\xB0\xB2\xB7\xF7\u2550\u2551\u2552\u0451\u0454\u2554\u0456\u0457\u2557\u2558\u2559\u255A\u255B\u0491\u045E\u255E\u255F\u2560\u2561\u0401\u0404\u2563\u0406\u0407\u2566\u2567\u2568\u2569\u256A\u0490\u040E\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},koi8t:{type:"_sbcs",chars:"\u049B\u0493\u201A\u0492\u201E\u2026\u2020\u2021\uFFFD\u2030\u04B3\u2039\u04B2\u04B7\u04B6\uFFFD\u049A\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\uFFFD\u203A\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u04EF\u04EE\u0451\xA4\u04E3\xA6\xA7\uFFFD\uFFFD\uFFFD\xAB\xAC\xAD\xAE\uFFFD\xB0\xB1\xB2\u0401\uFFFD\u04E2\xB6\xB7\uFFFD\u2116\uFFFD\xBB\uFFFD\uFFFD\uFFFD\xA9\u044E\u0430\u0431\u0446\u0434\u0435\u0444\u0433\u0445\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u044F\u0440\u0441\u0442\u0443\u0436\u0432\u044C\u044B\u0437\u0448\u044D\u0449\u0447\u044A\u042E\u0410\u0411\u0426\u0414\u0415\u0424\u0413\u0425\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u042F\u0420\u0421\u0422\u0423\u0416\u0412\u042C\u042B\u0417\u0428\u042D\u0429\u0427\u042A"},armscii8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\uFFFD\u0587\u0589)(\xBB\xAB\u2014.\u055D,-\u058A\u2026\u055C\u055B\u055E\u0531\u0561\u0532\u0562\u0533\u0563\u0534\u0564\u0535\u0565\u0536\u0566\u0537\u0567\u0538\u0568\u0539\u0569\u053A\u056A\u053B\u056B\u053C\u056C\u053D\u056D\u053E\u056E\u053F\u056F\u0540\u0570\u0541\u0571\u0542\u0572\u0543\u0573\u0544\u0574\u0545\u0575\u0546\u0576\u0547\u0577\u0548\u0578\u0549\u0579\u054A\u057A\u054B\u057B\u054C\u057C\u054D\u057D\u054E\u057E\u054F\u057F\u0550\u0580\u0551\u0581\u0552\u0582\u0553\u0583\u0554\u0584\u0555\u0585\u0556\u0586\u055A\uFFFD"},rk1048:{type:"_sbcs",chars:"\u0402\u0403\u201A\u0453\u201E\u2026\u2020\u2021\u20AC\u2030\u0409\u2039\u040A\u049A\u04BA\u040F\u0452\u2018\u2019\u201C\u201D\u2022\u2013\u2014\uFFFD\u2122\u0459\u203A\u045A\u049B\u04BB\u045F\xA0\u04B0\u04B1\u04D8\xA4\u04E8\xA6\xA7\u0401\xA9\u0492\xAB\xAC\xAD\xAE\u04AE\xB0\xB1\u0406\u0456\u04E9\xB5\xB6\xB7\u0451\u2116\u0493\xBB\u04D9\u04A2\u04A3\u04AF\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},tcvn:{type:"_sbcs",chars:`\0\xDA\u1EE4\u1EEA\u1EEC\u1EEE\x07\b \v\f\r\u1EE8\u1EF0\u1EF2\u1EF6\u1EF8\xDD\u1EF4\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\xC0\u1EA2\xC3\xC1\u1EA0\u1EB6\u1EAC\xC8\u1EBA\u1EBC\xC9\u1EB8\u1EC6\xCC\u1EC8\u0128\xCD\u1ECA\xD2\u1ECE\xD5\xD3\u1ECC\u1ED8\u1EDC\u1EDE\u1EE0\u1EDA\u1EE2\xD9\u1EE6\u0168\xA0\u0102\xC2\xCA\xD4\u01A0\u01AF\u0110\u0103\xE2\xEA\xF4\u01A1\u01B0\u0111\u1EB0\u0300\u0309\u0303\u0301\u0323\xE0\u1EA3\xE3\xE1\u1EA1\u1EB2\u1EB1\u1EB3\u1EB5\u1EAF\u1EB4\u1EAE\u1EA6\u1EA8\u1EAA\u1EA4\u1EC0\u1EB7\u1EA7\u1EA9\u1EAB\u1EA5\u1EAD\xE8\u1EC2\u1EBB\u1EBD\xE9\u1EB9\u1EC1\u1EC3\u1EC5\u1EBF\u1EC7\xEC\u1EC9\u1EC4\u1EBE\u1ED2\u0129\xED\u1ECB\xF2\u1ED4\u1ECF\xF5\xF3\u1ECD\u1ED3\u1ED5\u1ED7\u1ED1\u1ED9\u1EDD\u1EDF\u1EE1\u1EDB\u1EE3\xF9\u1ED6\u1EE7\u0169\xFA\u1EE5\u1EEB\u1EED\u1EEF\u1EE9\u1EF1\u1EF3\u1EF7\u1EF9\xFD\u1EF5\u1ED0`},georgianacademy:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10EF\u10F0\u10F1\u10F2\u10F3\u10F4\u10F5\u10F6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},georgianps:{type:"_sbcs",chars:"\x80\x81\u201A\u0192\u201E\u2026\u2020\u2021\u02C6\u2030\u0160\u2039\u0152\x8D\x8E\x8F\x90\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u02DC\u2122\u0161\u203A\u0153\x9D\x9E\u0178\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF\u10D0\u10D1\u10D2\u10D3\u10D4\u10D5\u10D6\u10F1\u10D7\u10D8\u10D9\u10DA\u10DB\u10DC\u10F2\u10DD\u10DE\u10DF\u10E0\u10E1\u10E2\u10F3\u10E3\u10E4\u10E5\u10E6\u10E7\u10E8\u10E9\u10EA\u10EB\u10EC\u10ED\u10EE\u10F4\u10EF\u10F0\u10F5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF7\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xFF"},pt154:{type:"_sbcs",chars:"\u0496\u0492\u04EE\u0493\u201E\u2026\u04B6\u04AE\u04B2\u04AF\u04A0\u04E2\u04A2\u049A\u04BA\u04B8\u0497\u2018\u2019\u201C\u201D\u2022\u2013\u2014\u04B3\u04B7\u04A1\u04E3\u04A3\u049B\u04BB\u04B9\xA0\u040E\u045E\u0408\u04E8\u0498\u04B0\xA7\u0401\xA9\u04D8\xAB\xAC\u04EF\xAE\u049C\xB0\u04B1\u0406\u0456\u0499\u04E9\xB6\xB7\u0451\u2116\u04D9\xBB\u0458\u04AA\u04AB\u049D\u0410\u0411\u0412\u0413\u0414\u0415\u0416\u0417\u0418\u0419\u041A\u041B\u041C\u041D\u041E\u041F\u0420\u0421\u0422\u0423\u0424\u0425\u0426\u0427\u0428\u0429\u042A\u042B\u042C\u042D\u042E\u042F\u0430\u0431\u0432\u0433\u0434\u0435\u0436\u0437\u0438\u0439\u043A\u043B\u043C\u043D\u043E\u043F\u0440\u0441\u0442\u0443\u0444\u0445\u0446\u0447\u0448\u0449\u044A\u044B\u044C\u044D\u044E\u044F"},viscii:{type:"_sbcs",chars:`\0\u1EB2\u1EB4\u1EAA\x07\b \v\f\r\u1EF6\u1EF8\x1B\u1EF4 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}~\x7F\u1EA0\u1EAE\u1EB0\u1EB6\u1EA4\u1EA6\u1EA8\u1EAC\u1EBC\u1EB8\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EE2\u1EDA\u1EDC\u1EDE\u1ECA\u1ECE\u1ECC\u1EC8\u1EE6\u0168\u1EE4\u1EF2\xD5\u1EAF\u1EB1\u1EB7\u1EA5\u1EA7\u1EA9\u1EAD\u1EBD\u1EB9\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1ED1\u1ED3\u1ED5\u1ED7\u1EE0\u01A0\u1ED9\u1EDD\u1EDF\u1ECB\u1EF0\u1EE8\u1EEA\u1EEC\u01A1\u1EDB\u01AF\xC0\xC1\xC2\xC3\u1EA2\u0102\u1EB3\u1EB5\xC8\xC9\xCA\u1EBA\xCC\xCD\u0128\u1EF3\u0110\u1EE9\xD2\xD3\xD4\u1EA1\u1EF7\u1EEB\u1EED\xD9\xDA\u1EF9\u1EF5\xDD\u1EE1\u01B0\xE0\xE1\xE2\xE3\u1EA3\u0103\u1EEF\u1EAB\xE8\xE9\xEA\u1EBB\xEC\xED\u0129\u1EC9\u0111\u1EF1\xF2\xF3\xF4\xF5\u1ECF\u1ECD\u1EE5\xF9\xFA\u0169\u1EE7\xFD\u1EE3\u1EEE`},iso646cn:{type:"_sbcs",chars:`\0\x07\b \v\f\r\x1B !"#\xA5%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},iso646jp:{type:"_sbcs",chars:`\0\x07\b -\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var cIs=H(aIs=>{"use strict";var _8r=ere().Buffer;aIs._dbcs=tre;var px=-1,oIs=-2,WH=-10,pL=-1e3,YGe=new Array(256),L7e=-1;for(QFt=0;QFt<256;QFt++)YGe[QFt]=px;var QFt;function tre(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=YGe.slice(0),this.decodeTableSeq=[];for(var n=0;npL)throw new Error("gb18030 decode tables conflict at byte 2");for(var I=this.decodeTables[pL-A[f]],C=129;C<=254;C++){if(I[C]===px)I[C]=pL-o;else{if(I[C]===pL-o)continue;if(I[C]>pL)throw new Error("gb18030 decode tables conflict at byte 3")}for(var b=this.decodeTables[pL-I[C]],E=48;E<=57;E++)b[E]===px&&(b[E]=oIs)}}}this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var N={};if(e.encodeSkipVals)for(var n=0;n0;e>>>=8)t.push(e&255);t.length==0&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var a=r[t[n]];if(a==px)r[t[n]]=pL-this.decodeTables.length,this.decodeTables.push(r=YGe.slice(0));else if(a<=pL)r=this.decodeTables[pL-a];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};tre.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t=t&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};tre.prototype._getEncodeBucket=function(e){var t=e>>8;return this.encodeTable[t]===void 0&&(this.encodeTable[t]=YGe.slice(0)),this.encodeTable[t]};tre.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=e&255;r[n]<=WH?this.encodeTableSeq[WH-r[n]][L7e]=t:r[n]==px&&(r[n]=t)};tre.prototype._setEncodeSequence=function(e,t){var r=e[0],n=this._getEncodeBucket(r),a=r&255,o;n[a]<=WH?o=this.encodeTableSeq[WH-n[a]]:(o={},n[a]!==px&&(o[L7e]=n[a]),n[a]=WH-this.encodeTableSeq.length,this.encodeTableSeq.push(o));for(var l=1;l=0)this._setEncodeChar(A,f),a=!0;else if(A<=pL){var I=pL-A;if(!o[I]){var C=f<<8>>>0;this._fillEncodeTable(I,C,r)?a=!0:o[I]=!0}}else A<=WH&&(this._setEncodeSequence(this.decodeTableSeq[WH-A],f),a=!0)}return a};function XFt(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}XFt.prototype.write=function(e){for(var t=_8r.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,a=-1,o=0,l=0;;){if(a===-1){if(o==e.length)break;var A=e.charCodeAt(o++)}else{var A=a;a=-1}if(55296<=A&&A<57344)if(A<56320)if(r===-1){r=A;continue}else r=A,A=px;else r!==-1?(A=65536+(r-55296)*1024+(A-56320),r=-1):A=px;else r!==-1&&(a=A,A=px,r=-1);var f=px;if(n!==void 0&&A!=px){var I=n[A];if(typeof I=="object"){n=I;continue}else typeof I=="number"?f=I:I==null&&(I=n[L7e],I!==void 0&&(f=I,a=A));n=void 0}else if(A>=0){var C=this.encodeTable[A>>8];if(C!==void 0&&(f=C[A&255]),f<=WH){n=this.encodeTableSeq[WH-f];continue}if(f==px&&this.gb18030){var b=b8r(this.gb18030.uChars,A);if(b!=-1){var f=this.gb18030.gbChars[b]+(A-this.gb18030.uChars[b]);t[l++]=129+Math.floor(f/12600),f=f%12600,t[l++]=48+Math.floor(f/1260),f=f%1260,t[l++]=129+Math.floor(f/10),f=f%10,t[l++]=48+f;continue}}}f===px&&(f=this.defaultCharSingleByte),f<256?t[l++]=f:f<65536?(t[l++]=f>>8,t[l++]=f&255):f<16777216?(t[l++]=f>>16,t[l++]=f>>8&255,t[l++]=f&255):(t[l++]=f>>>24,t[l++]=f>>>16&255,t[l++]=f>>>8&255,t[l++]=f&255)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,l)};XFt.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var e=_8r.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[L7e];r!==void 0&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}};XFt.prototype.findIdx=b8r;function y8r(e,t){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}y8r.prototype.write=function(e){for(var t=_8r.alloc(e.length*2),r=this.nodeIdx,n=this.prevBytes,a=this.prevBytes.length,o=-this.prevBytes.length,l,A=0,f=0;A=0?e[A]:n[A+a],l=this.decodeTables[r][I];if(!(l>=0))if(l===px)l=this.defaultCharUnicode.charCodeAt(0),A=o;else if(l===oIs){if(A>=3)var C=(e[A-3]-129)*12600+(e[A-2]-48)*1260+(e[A-1]-129)*10+(I-48);else var C=(n[A-3+a]-129)*12600+((A-2>=0?e[A-2]:n[A-2+a])-48)*1260+((A-1>=0?e[A-1]:n[A-1+a])-129)*10+(I-48);var b=b8r(this.gb18030.gbChars,C);l=this.gb18030.uChars[b]+C-this.gb18030.gbChars[b]}else if(l<=pL){r=pL-l;continue}else if(l<=WH){for(var E=this.decodeTableSeq[WH-l],N=0;N>8;l=E[E.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+l+" at "+r+"/"+I);if(l>=65536){l-=65536;var B=55296|l>>10;t[f++]=B&255,t[f++]=B>>8,l=56320|l&1023}t[f++]=l&255,t[f++]=l>>8,r=0,o=A+1}return this.nodeIdx=r,this.prevBytes=o>=0?Array.prototype.slice.call(e,o):n.slice(o+a).concat(Array.prototype.slice.call(e)),t.slice(0,f).toString("ucs2")};y8r.prototype.end=function(){for(var e="";this.prevBytes.length>0;){e+=this.defaultCharUnicode;var t=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.prevBytes=[],this.nodeIdx=0,e};function b8r(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r>1);e[a]<=t?r=a:n=a}return r}});var lIs=H((zng,Y2l)=>{Y2l.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var uIs=H((qng,Q2l)=>{Q2l.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var JFt=H(($ng,X2l)=>{X2l.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var E8r=H((eig,J2l)=>{J2l.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var gIs=H((tig,U2l)=>{U2l.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var AIs=H((rig,K2l)=>{K2l.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var S8r=H((nig,j2l)=>{j2l.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var dIs=H((iig,z2l)=>{z2l.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var fIs=H((sig,pIs)=>{"use strict";pIs.exports={shiftjis:{type:"_dbcs",table:function(){return lIs()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return uIs()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return JFt()}},gbk:{type:"_dbcs",table:function(){return JFt().concat(E8r())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return JFt().concat(E8r())},gb18030:function(){return gIs()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return AIs()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return S8r()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return S8r().concat(dIs())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var mIs=H((hIs,QGe)=>{"use strict";var IIs=[Qfs(),Ufs(),zfs(),$fs(),tIs(),nIs(),sIs(),cIs(),fIs()];for(UFt=0;UFt{"use strict";var CIs=ere().Buffer;_Is.exports=function(e){var t=e.Transform;function r(a,o){this.conv=a,o=o||{},o.decodeStrings=!1,t.call(this,o)}r.prototype=Object.create(t.prototype,{constructor:{value:r}}),r.prototype._transform=function(a,o,l){if(typeof a!="string")return l(new Error("Iconv encoding stream needs strings as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A),l()}catch(f){l(f)}},r.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o),a()}catch(l){a(l)}},r.prototype.collect=function(a){var o=[];return this.on("error",a),this.on("data",function(l){o.push(l)}),this.on("end",function(){a(null,CIs.concat(o))}),this};function n(a,o){this.conv=a,o=o||{},o.encoding=this.encoding="utf8",t.call(this,o)}return n.prototype=Object.create(t.prototype,{constructor:{value:n}}),n.prototype._transform=function(a,o,l){if(!CIs.isBuffer(a)&&!(a instanceof Uint8Array))return l(new Error("Iconv decoding stream needs buffers as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A,this.encoding),l()}catch(f){l(f)}},n.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o,this.encoding),a()}catch(l){a(l)}},n.prototype.collect=function(a){var o="";return this.on("error",a),this.on("data",function(l){o+=l}),this.on("end",function(){a(null,o)}),this},{IconvLiteEncoderStream:r,IconvLiteDecoderStream:n}}});var vIs=H((aig,SIs)=>{"use strict";var bIs=ere().Buffer,EIs=Hfs(),zI=SIs.exports;zI.encodings=null;zI.defaultCharUnicode="\uFFFD";zI.defaultCharSingleByte="?";zI.encode=function(t,r,n){t=""+(t||"");var a=zI.getEncoder(r,n),o=a.write(t),l=a.end();return l&&l.length>0?bIs.concat([o,l]):o};zI.decode=function(t,r,n){typeof t=="string"&&(zI.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),zI.skipDecodeWarning=!0),t=bIs.from(""+(t||""),"binary"));var a=zI.getDecoder(r,n),o=a.write(t),l=a.end();return l?o+l:o};zI.encodingExists=function(t){try{return zI.getCodec(t),!0}catch{return!1}};zI.toEncoding=zI.encode;zI.fromEncoding=zI.decode;zI._codecDataCache={};zI.getCodec=function(t){zI.encodings||(zI.encodings=mIs());for(var r=zI._canonicalizeEncoding(t),n={};;){var a=zI._codecDataCache[r];if(a)return a;var o=zI.encodings[r];switch(typeof o){case"string":r=o;break;case"object":for(var l in o)n[l]=o[l];n.encodingName||(n.encodingName=r),r=o.type;break;case"function":return n.encodingName||(n.encodingName=r),a=new o(n,zI),zI._codecDataCache[n.encodingName]=a,a;default:throw new Error("Encoding not recognized: '"+t+"' (searched as: '"+r+"')")}}};zI._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};zI.getEncoder=function(t,r){var n=zI.getCodec(t),a=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(a=new EIs.PrependBOM(a,r)),a};zI.getDecoder=function(t,r){var n=zI.getCodec(t),a=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(a=new EIs.StripBOM(a,r)),a};zI.enableStreamingAPI=function(t){if(!zI.supportsStreams){var r=yIs()(t);zI.IconvLiteEncoderStream=r.IconvLiteEncoderStream,zI.IconvLiteDecoderStream=r.IconvLiteDecoderStream,zI.encodeStream=function(a,o){return new zI.IconvLiteEncoderStream(zI.getEncoder(a,o),o)},zI.decodeStream=function(a,o){return new zI.IconvLiteDecoderStream(zI.getDecoder(a,o),o)},zI.supportsStreams=!0}};var jFt;try{jFt=wt("stream")}catch{}jFt&&jFt.Transform?zI.enableStreamingAPI(jFt):zI.encodeStream=zI.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});var TIs=H((cig,wIs)=>{"use strict";var zFt=vIs();wIs.exports.convert=q2l;function q2l(e,t,r){r=BIs(r||"UTF-8"),t=BIs(t||"UTF-8"),e=e||"";var n;if(r!=="UTF-8"&&typeof e=="string"&&(e=Buffer.from(e,"binary")),r===t)typeof e=="string"?n=Buffer.from(e):n=e;else try{n=$2l(e,t,r)}catch(a){console.error(a),n=e}return typeof n=="string"&&(n=Buffer.from(n,"utf-8")),n}function $2l(e,t,r){return t==="UTF-8"?zFt.decode(e,r):r==="UTF-8"?zFt.encode(e,t):zFt.encode(zFt.decode(e,r),t)}function BIs(e){return(e||"").toString().trim().replace(/^latin[\-_]?(\d+)$/i,"ISO-8859-$1").replace(/^win(?:dows)?[\-_]?(\d+)$/i,"WINDOWS-$1").replace(/^utf[\-_]?(\d+)$/i,"UTF-$1").replace(/^ks_c_5601\-1987$/i,"CP949").replace(/^us[\-_]?ascii$/i,"ASCII").toUpperCase()}});var $Ft=H((lig,DIs)=>{"use strict";var{Minipass:N6}=rF(),v8r=Lfs(),NIs=Pfs(),{BUFFER:eSl}=NIs,V7e=MKr(),B8r;try{B8r=TIs().convert}catch{}var rre=Symbol("Body internals"),S0e=Symbol("consumeBody"),qFt=class{constructor(t,r={}){let{size:n=0,timeout:a=0}=r,o=t==null?null:RIs(t)?Buffer.from(t.toString()):P7e(t)||Buffer.isBuffer(t)?t:Object.prototype.toString.call(t)==="[object ArrayBuffer]"?Buffer.from(t):ArrayBuffer.isView(t)?Buffer.from(t.buffer,t.byteOffset,t.byteLength):N6.isStream(t)?t:Buffer.from(String(t));this[rre]={body:o,disturbed:!1,error:null},this.size=n,this.timeout=a,N6.isStream(o)&&o.on("error",l=>{let A=l.name==="AbortError"?l:new V7e(`Invalid response while trying to fetch ${this.url}: ${l.message}`,"system",l);this[rre].error=A})}get body(){return this[rre].body}get bodyUsed(){return this[rre].disturbed}arrayBuffer(){return this[S0e]().then(t=>t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}blob(){let t=this.headers&&this.headers.get("content-type")||"";return this[S0e]().then(r=>Object.assign(new NIs([],{type:t.toLowerCase()}),{[eSl]:r}))}async json(){let t=await this[S0e]();try{return JSON.parse(t.toString())}catch(r){throw new V7e(`invalid json response body at ${this.url} reason: ${r.message}`,"invalid-json")}}text(){return this[S0e]().then(t=>t.toString())}buffer(){return this[S0e]()}textConverted(){return this[S0e]().then(t=>tSl(t,this.headers))}[S0e](){if(this[rre].disturbed)return Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[rre].disturbed=!0,this[rre].error)return Promise.reject(this[rre].error);if(this.body===null)return Promise.resolve(Buffer.alloc(0));if(Buffer.isBuffer(this.body))return Promise.resolve(this.body);let t=P7e(this.body)?this.body.stream():this.body;if(!N6.isStream(t))return Promise.resolve(Buffer.alloc(0));let r=this.size&&t instanceof v8r||!this.size&&t instanceof N6&&!(t instanceof v8r)?t:this.size?new v8r({size:this.size}):new N6,n=this.timeout&&r.writable?setTimeout(()=>{r.emit("error",new V7e(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`,"body-timeout"))},this.timeout):null;return n&&n.unref&&n.unref(),new Promise(a=>{r!==t&&(t.on("error",o=>r.emit("error",o)),t.pipe(r)),a()}).then(()=>r.concat()).then(a=>(clearTimeout(n),a)).catch(a=>{throw clearTimeout(n),a.name==="AbortError"||a.name==="FetchError"?a:a.name==="RangeError"?new V7e(`Could not create Buffer from response body for ${this.url}: ${a.message}`,"system",a):new V7e(`Invalid response body while trying to fetch ${this.url}: ${a.message}`,"system",a)})}static clone(t){if(t.bodyUsed)throw new Error("cannot clone body after it is used");let r=t.body;if(N6.isStream(r)&&typeof r.getBoundary!="function"){let n=new N6,a=new N6,o=new N6;return n.on("error",l=>{a.emit("error",l),o.emit("error",l)}),r.on("error",l=>n.emit("error",l)),n.pipe(a),n.pipe(o),r.pipe(n),t[rre].body=a,o}else return t.body}static extractContentType(t){return t==null?null:typeof t=="string"?"text/plain;charset=UTF-8":RIs(t)?"application/x-www-form-urlencoded;charset=UTF-8":P7e(t)?t.type||null:Buffer.isBuffer(t)||Object.prototype.toString.call(t)==="[object ArrayBuffer]"||ArrayBuffer.isView(t)?null:typeof t.getBoundary=="function"?`multipart/form-data;boundary=${t.getBoundary()}`:N6.isStream(t)?null:"text/plain;charset=UTF-8"}static getTotalBytes(t){let{body:r}=t;return r==null?0:P7e(r)?r.size:Buffer.isBuffer(r)?r.length:r&&typeof r.getLengthSync=="function"&&(r._lengthRetrievers&&r._lengthRetrievers.length===0||r.hasKnownLength&&r.hasKnownLength())?r.getLengthSync():null}static writeToStream(t,r){let{body:n}=r;return n==null?t.end():Buffer.isBuffer(n)||typeof n=="string"?t.end(n):(P7e(n)?n.stream():n).on("error",o=>t.emit("error",o)).pipe(t),t}};Object.defineProperties(qFt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});var RIs=e=>typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function",P7e=e=>typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),tSl=(e,t)=>{if(typeof B8r!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t&&t.get("content-type"),n="utf-8",a;r&&(a=/charset=([^;]*)/i.exec(r));let o=e.slice(0,1024).toString();return!a&&o&&(a=/{"use strict";var xIs=/[^^_`a-zA-Z\-0-9!#$%&'*+.|~]/,T8r=/[^\t\x20-\x7e\x80-\xff]/,W7e=e=>{if(e=`${e}`,xIs.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)},kIs=e=>{if(e=`${e}`,T8r.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)},XGe=(e,t)=>{t=t.toLowerCase();for(let r in e)if(r.toLowerCase()===t)return r},Aw=Symbol("map"),eZt=class e{constructor(t=void 0){if(this[Aw]=Object.create(null),t instanceof e){let r=t.raw(),n=Object.keys(r);for(let a of n)for(let o of r[a])this.append(a,o);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let a of t){if(typeof a!="object"||typeof a[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");let o=Array.from(a);if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");n.push(o)}for(let a of n)this.append(a[0],a[1])}else for(let n of Object.keys(t))this.append(n,t[n])}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,W7e(t);let r=XGe(this[Aw],t);return r===void 0?null:this[Aw][r].join(", ")}forEach(t,r=void 0){let n=R8r(this);for(let a=0;aObject.keys(e[Aw]).sort().map(t==="key"?r=>r.toLowerCase():t==="value"?r=>e[Aw][r].join(", "):r=>[r.toLowerCase(),e[Aw][r].join(", ")]),w8r=Symbol("internal"),v0e=class e{constructor(t,r){this[w8r]={target:t,kind:r,index:0}}get[Symbol.toStringTag](){return"HeadersIterator"}next(){if(!this||Object.getPrototypeOf(this)!==e.prototype)throw new TypeError("Value of `this` is not a HeadersIterator");let{target:t,kind:r,index:n}=this[w8r],a=R8r(t,r),o=a.length;return n>=o?{value:void 0,done:!0}:(this[w8r].index++,{value:a[n],done:!1})}};Object.setPrototypeOf(v0e.prototype,Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));GIs.exports=eZt});var VIs=H((gig,LIs)=>{"use strict";var rSl=wt("http"),{STATUS_CODES:nSl}=rSl,FIs=tZt(),ZIs=$Ft(),{clone:iSl,extractContentType:sSl}=ZIs,nre=Symbol("Response internals"),rZt=class e extends ZIs{constructor(t=null,r={}){super(t,r);let n=r.status||200,a=new FIs(r.headers);if(t!=null&&!a.has("Content-Type")){let o=sSl(t);o&&a.append("Content-Type",o)}this[nre]={url:r.url,status:n,statusText:r.statusText||nSl[n],headers:a,counter:r.counter,trailer:Promise.resolve(r.trailer||new FIs)}}get trailer(){return this[nre].trailer}get url(){return this[nre].url||""}get status(){return this[nre].status}get ok(){return this[nre].status>=200&&this[nre].status<300}get redirected(){return this[nre].counter>0}get statusText(){return this[nre].statusText}get headers(){return this[nre].headers}clone(){return new e(iSl(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,trailer:this.trailer})}get[Symbol.toStringTag](){return"Response"}};LIs.exports=rZt;Object.defineProperties(rZt.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var PIs=H((Aig,oSl)=>{oSl.exports={name:"minipass-fetch",version:"4.0.1",description:"An implementation of window.fetch in Node.js using Minipass streams",license:"MIT",main:"lib/index.js",scripts:{"test:tls-fixtures":"./test/fixtures/tls/setup.sh",test:"tap",snap:"tap",lint:"npm run eslint",postlint:"template-oss-check",lintfix:"npm run eslint -- --fix",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},tap:{"coverage-map":"map.js","check-coverage":!0,"nyc-arg":["--exclude","tap-snapshots/**"]},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3","@ungap/url-search-params":"^0.2.2","abort-controller":"^3.0.0","abortcontroller-polyfill":"~1.7.3",encoding:"^0.1.13","form-data":"^4.0.0",nock:"^13.2.4",parted:"^0.1.1","string-to-arraybuffer":"^1.0.2",tap:"^16.0.0"},dependencies:{minipass:"^7.0.3","minipass-sized":"^1.0.3",minizlib:"^3.0.1"},optionalDependencies:{encoding:"^0.1.13"},repository:{type:"git",url:"git+https://github.com/npm/minipass-fetch.git"},keywords:["fetch","minipass","node-fetch","window.fetch"],files:["bin/","lib/"],engines:{node:"^18.17.0 || >=20.5.0"},author:"GitHub Inc.",templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.3",publish:"true"}}});var MIs=H((dig,OIs)=>{"use strict";var{URL:N8r}=wt("url"),{Minipass:aSl}=rF(),D8r=tZt(),{exportNodeCompatibleHeaders:cSl}=D8r,WIs=$Ft(),{clone:lSl,extractContentType:uSl,getTotalBytes:gSl}=WIs,ASl=PIs().version,dSl=`minipass-fetch/${ASl} (+https://github.com/isaacs/minipass-fetch)`,eJ=Symbol("Request internals"),nZt=e=>typeof e=="object"&&typeof e[eJ]=="object",pSl=e=>{let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")},iZt=class e extends WIs{constructor(t,r={}){let n=nZt(t)?new N8r(t.url):t&&t.href?new N8r(t.href):new N8r(`${t}`);nZt(t)?r={...t[eJ],...r}:(!t||typeof t=="string")&&(t={});let a=(r.method||t.method||"GET").toUpperCase(),o=a==="GET"||a==="HEAD";if((r.body!==null&&r.body!==void 0||nZt(t)&&t.body!==null)&&o)throw new TypeError("Request with GET/HEAD method cannot have body");let l=r.body!==null&&r.body!==void 0?r.body:nZt(t)&&t.body!==null?lSl(t):null;super(l,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let A=new D8r(r.headers||t.headers||{});if(l!=null&&!A.has("Content-Type")){let De=uSl(l);De&&A.append("Content-Type",De)}let f="signal"in r?r.signal:null;if(f!=null&&!pSl(f))throw new TypeError("Expected signal must be an instanceof AbortSignal");let{ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0",secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se}=r;this[eJ]={method:a,redirect:r.redirect||t.redirect||"follow",headers:A,parsedURL:n,signal:f,ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe,secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[eJ].method}get url(){return this[eJ].parsedURL.toString()}get headers(){return this[eJ].headers}get redirect(){return this[eJ].redirect}get signal(){return this[eJ].signal}clone(){return new e(this)}get[Symbol.toStringTag](){return"Request"}static getNodeRequestOptions(t){let r=t[eJ].parsedURL,n=new D8r(t[eJ].headers);if(n.has("Accept")||n.set("Accept","*/*"),!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&aSl.isStream(t.body)&&typeof t.body.destroy!="function")throw new Error("Cancellation of streamed requests with AbortSignal is not supported");let a=(t.body===null||t.body===void 0)&&/^(POST|PUT)$/i.test(t.method)?"0":t.body!==null&&t.body!==void 0?gSl(t):null;a&&n.set("Content-Length",a+""),n.has("User-Agent")||n.set("User-Agent",dSl),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip,deflate");let o=typeof t.agent=="function"?t.agent(r):t.agent;!n.has("Connection")&&!o&&n.set("Connection","close");let{ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue}=t[eJ];return{...{auth:r.username||r.password?`${r.username}:${r.password}`:"",host:r.host,hostname:r.hostname,path:`${r.pathname}${r.search}`,port:r.port,protocol:r.protocol},method:t.method,headers:cSl(n),agent:o,ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue,timeout:t.timeout}}};OIs.exports=iZt;Object.defineProperties(iZt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}})});var YIs=H((pig,HIs)=>{"use strict";var k8r=class extends Error{constructor(t){super(t),this.code="FETCH_ABORTED",this.type="aborted",Error.captureStackTrace(this,this.constructor)}get name(){return"AbortError"}set name(t){}};HIs.exports=k8r});var H7e=H((fig,JIs)=>{"use strict";var{URL:O7e}=wt("url"),fSl=wt("http"),ISl=wt("https"),JGe=Bfs(),{Minipass:QIs}=rF(),hSl=$Ft(),{writeToStream:mSl,getTotalBytes:CSl}=hSl,B0e=VIs(),G8r=tZt(),{createHeadersLenient:XIs}=G8r,M7e=MIs(),{getNodeRequestOptions:_Sl}=M7e,Pue=MKr(),x8r=YIs(),ire=async(e,t)=>{if(/^data:/.test(e)){let r=new M7e(e,t);return Promise.resolve().then(()=>new Promise((n,a)=>{let o,l;try{let{pathname:I,search:C}=new O7e(e),b=I.split(",");if(b.length<2)throw new Error("invalid data: URI");let E=b.shift(),N=/;base64$/.test(E);o=N?E.slice(0,-1*7):E;let B=decodeURIComponent(b.join(",")+C);l=N?Buffer.from(B,"base64"):Buffer.from(B)}catch(I){return a(new Pue(`[${r.method}] ${r.url} invalid URL, ${I.message}`,"system",I))}let{signal:A}=r;if(A&&A.aborted)return a(new x8r("The user aborted a request."));let f={"Content-Length":l.length};return o&&(f["Content-Type"]=o),n(new B0e(l,{headers:f}))}))}return new Promise((r,n)=>{let a=new M7e(e,t),o;try{o=_Sl(a)}catch(B){return n(B)}let l=(o.protocol==="https:"?ISl:fSl).request,{signal:A}=a,f=null,I=()=>{let B=new x8r("The user aborted a request.");n(B),QIs.isStream(a.body)&&typeof a.body.destroy=="function"&&a.body.destroy(B),f&&f.body&&f.body.emit("error",B)};if(A&&A.aborted)return I();let C=()=>{I(),b()},b=()=>{E.abort(),A&&A.removeEventListener("abort",C),clearTimeout(N)},E=l(o);A&&A.addEventListener("abort",C);let N=null;a.timeout&&E.once("socket",()=>{N=setTimeout(()=>{n(new Pue(`network timeout at: ${a.url}`,"request-timeout")),b()},a.timeout)}),E.on("error",B=>{E.res&&E.res.emit("error",B),n(new Pue(`request to ${a.url} failed, reason: ${B.message}`,"system",B)),b()}),E.on("response",B=>{clearTimeout(N);let F=XIs(B.headers);if(ire.isRedirect(B.statusCode)){let fe=F.get("Location"),ue=null;try{ue=fe===null?null:new O7e(fe,a.url).toString()}catch{if(a.redirect!=="manual"){n(new Pue(`uri requested responds with an invalid redirect URL: ${fe}`,"invalid-redirect")),b();return}}if(a.redirect==="error"){n(new Pue(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),b();return}else if(a.redirect==="manual"){if(ue!==null)try{F.set("Location",ue)}catch(de){n(de)}}else if(a.redirect==="follow"&&ue!==null){if(a.counter>=a.follow){n(new Pue(`maximum redirect reached at: ${a.url}`,"max-redirect")),b();return}if(B.statusCode!==303&&a.body&&CSl(a)===null){n(new Pue("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}a.headers.set("host",new O7e(ue).host);let de={headers:new G8r(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:a.body,signal:a.signal,timeout:a.timeout},be=new O7e(a.url),Se=new O7e(ue);be.hostname!==Se.hostname&&(de.headers.delete("authorization"),de.headers.delete("cookie")),(B.statusCode===303||(B.statusCode===301||B.statusCode===302)&&a.method==="POST")&&(de.method="GET",de.body=void 0,de.headers.delete("content-length")),r(ire(new M7e(ue,de))),b();return}}B.once("end",()=>A&&A.removeEventListener("abort",C));let Q=new QIs;Q.on("error",b),B.on("error",fe=>Q.emit("error",fe)),B.on("data",fe=>Q.write(fe)),B.on("end",()=>Q.end());let X={url:a.url,status:B.statusCode,statusText:B.statusMessage,headers:F,size:a.size,timeout:a.timeout,counter:a.counter,trailer:new Promise(fe=>B.on("end",()=>fe(XIs(B.trailers))))},ae=F.get("Content-Encoding");if(!a.compress||a.method==="HEAD"||ae===null||B.statusCode===204||B.statusCode===304){f=new B0e(Q,X),r(f);return}let ne={flush:JGe.constants.Z_SYNC_FLUSH,finishFlush:JGe.constants.Z_SYNC_FLUSH};if(ae==="gzip"||ae==="x-gzip"){let fe=new JGe.Gunzip(ne);f=new B0e(Q.on("error",ue=>fe.emit("error",ue)).pipe(fe),X),r(f);return}if(ae==="deflate"||ae==="x-deflate"){B.once("data",fe=>{let ue=(fe[0]&15)===8?new JGe.Inflate:new JGe.InflateRaw;Q.on("error",de=>ue.emit("error",de)).pipe(ue),f=new B0e(ue,X),r(f)});return}if(ae==="br"){try{var ce=new JGe.BrotliDecompress}catch(fe){n(fe),b();return}Q.on("error",fe=>ce.emit("error",fe)).pipe(ce),f=new B0e(ce,X),r(f);return}f=new B0e(Q,X),r(f)}),mSl(E,a)})};JIs.exports=ire;ire.isRedirect=e=>e===301||e===302||e===303||e===307||e===308;ire.Headers=G8r;ire.Request=M7e;ire.Response=B0e;ire.FetchError=Pue;ire.AbortError=x8r});var KIs=H((Iig,UIs)=>{var ySl=wt("dns"),bSl=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"],ESl=e=>{let{strictSSL:t,...r}={...e};if(r.method=r.method?r.method.toUpperCase():"GET",t==null?r.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0":r.rejectUnauthorized=t!==!1,!r.retry)r.retry={retries:0};else if(typeof r.retry=="string"){let n=parseInt(r.retry,10);isFinite(n)?r.retry={retries:n}:r.retry={retries:0}}else typeof r.retry=="number"?r.retry={retries:r.retry}:r.retry={retries:0,...r.retry};return r.dns={ttl:5*60*1e3,lookup:ySl.lookup,...r.dns},r.cache=r.cache||"default",r.cache==="default"&&Object.keys(r.headers||{}).some(a=>bSl.includes(a.toLowerCase()))&&(r.cache="no-store"),r.cacheAdditionalHeaders=r.cacheAdditionalHeaders||[],r.cacheManager&&!r.cachePath&&(r.cachePath=r.cacheManager),r};UIs.exports=ESl});var $Is=H((hig,F8r)=>{"use strict";F8r.exports=qIs;F8r.exports.preferredCharsets=qIs;var SSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function vSl(e){for(var t=e.split(","),r=0,n=0;r0}});var nhs=H((mig,Z8r)=>{"use strict";Z8r.exports=rhs;Z8r.exports.preferredEncodings=rhs;var NSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function DSl(e){for(var t=e.split(","),r=!1,n=1,a=0,o=0;a0}});var chs=H((Cig,L8r)=>{"use strict";L8r.exports=ahs;L8r.exports.preferredLanguages=ahs;var ZSl=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function LSl(e){for(var t=e.split(","),r=0,n=0;r0}});var phs=H((_ig,V8r)=>{"use strict";V8r.exports=Ahs;V8r.exports.preferredMediaTypes=Ahs;var OSl=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function MSl(e){for(var t=JSl(e),r=0,n=0;r0)if(o.every(function(l){return t.params[l]=="*"||(t.params[l]||"").toLowerCase()==(n.params[l]||"").toLowerCase()}))a|=1;else return null;return{i:r,o:t.i,q:t.q,s:a}}function Ahs(e,t){var r=MSl(e===void 0?"*/*":e||"");if(!t)return r.filter(uhs).sort(lhs).map(QSl);var n=t.map(function(o,l){return HSl(o,r,l)});return n.filter(uhs).sort(lhs).map(function(o){return t[n.indexOf(o)]})}function lhs(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function QSl(e){return e.type+"/"+e.subtype}function uhs(e){return e.q>0}function dhs(e){for(var t=0,r=0;(r=e.indexOf('"',r))!==-1;)t++,r++;return t}function XSl(e){var t=e.indexOf("="),r,n;return t===-1?r=e:(r=e.slice(0,t),n=e.slice(t+1)),[r,n]}function JSl(e){for(var t=e.split(","),r=1,n=0;r{"use strict";var KSl=$Is(),jSl=nhs(),zSl=chs(),qSl=phs();P8r.exports=db;P8r.exports.Negotiator=db;function db(e){if(!(this instanceof db))return new db(e);this.request=e}db.prototype.charset=function(t){var r=this.charsets(t);return r&&r[0]};db.prototype.charsets=function(t){return KSl(this.request.headers["accept-charset"],t)};db.prototype.encoding=function(t,r){var n=this.encodings(t,r);return n&&n[0]};db.prototype.encodings=function(t,r){var n=r||{};return jSl(this.request.headers["accept-encoding"],t,n.preferred)};db.prototype.language=function(t){var r=this.languages(t);return r&&r[0]};db.prototype.languages=function(t){return zSl(this.request.headers["accept-language"],t)};db.prototype.mediaType=function(t){var r=this.mediaTypes(t);return r&&r[0]};db.prototype.mediaTypes=function(t){return qSl(this.request.headers.accept,t)};db.prototype.preferredCharset=db.prototype.charset;db.prototype.preferredCharsets=db.prototype.charsets;db.prototype.preferredEncoding=db.prototype.encoding;db.prototype.preferredEncodings=db.prototype.encodings;db.prototype.preferredLanguage=db.prototype.language;db.prototype.preferredLanguages=db.prototype.languages;db.prototype.preferredMediaType=db.prototype.mediaType;db.prototype.preferredMediaTypes=db.prototype.mediaTypes});var O8r=H((big,_hs)=>{var Ihs=jur(),hhs=fhs(),$Sl=Jte(),mhs={shared:!1,ignoreCargoCult:!0},evl={status:200,headers:{}},UGe=e=>{let t={method:e.method,url:e.url,headers:{},compress:e.compress};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},Chs=e=>{let t={status:e.status,headers:{}};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},W8r=class{constructor({entry:t,request:r,response:n,options:a}){this.entry=t,this.request=UGe(r),this.response=Chs(n),this.options=a,this.policy=new Ihs(this.request,this.response,mhs),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(t,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(t.method)?!1:new Ihs(UGe(t),evl,mhs).storable()}satisfies(t){let r=UGe(t);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let n=new hhs(this.request),a=new hhs(r);return JSON.stringify(n.mediaTypes())!==JSON.stringify(a.mediaTypes())||JSON.stringify(n.languages())!==JSON.stringify(a.languages())||JSON.stringify(n.encodings())!==JSON.stringify(a.encodings())?!1:this.options.integrity?$Sl.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(t){let r=UGe(t);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(t){let r=UGe(t);return this.policy.revalidationHeaders(r)}revalidated(t,r){let n=UGe(t),a=Chs(r);return!this.policy.revalidatedPolicy(n,a).modified}};_hs.exports=W8r});var bhs=H((Eig,yhs)=>{var M8r=class extends Error{constructor(t){super(`request to ${t} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};yhs.exports={NotCachedError:M8r}});var sZt=H((Sig,Bhs)=>{var tvl=FFt(),Ehs=Symbol("_flush"),Shs=Symbol("_flushed"),vhs=Symbol("_flushing"),H8r=class extends tvl{constructor(t={}){if(typeof t=="function"&&(t={flush:t}),super(t),typeof t.flush!="function"&&typeof this.flush!="function")throw new TypeError("must provide flush function in options");this[Ehs]=t.flush||this.flush}emit(t,...r){if(t!=="end"&&t!=="finish"||this[Shs])return super.emit(t,...r);if(this[vhs])return;this[vhs]=!0;let n=o=>{this[Shs]=!0,o?super.emit("error",o):super.emit("end")},a=this[Ehs](n);a&&a.then&&a.then(()=>n(),o=>n(o))}};Bhs.exports=H8r});var J8r=H((vig,X8r)=>{var{Minipass:whs}=rF(),KGe=Symbol("_data"),jGe=Symbol("_length"),Y8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,n&&n(),!0}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return super.write(a),super.end(n)}};X8r.exports=Y8r;var Q8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,super.write(t,r,n)}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return this.emit("collect",a),super.end(n)}};X8r.exports.PassThrough=Q8r});var zGe=H((Big,Dhs)=>{var rvl=FFt(),nvl=wt("events"),ivl=e=>e&&e instanceof nvl&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"),w0e=Symbol("_head"),XO=Symbol("_tail"),U8r=Symbol("_linkStreams"),K8r=Symbol("_setHead"),j8r=Symbol("_setTail"),Ths=Symbol("_onError"),Rhs=Symbol("_onData"),z8r=Symbol("_onEnd"),Nhs=Symbol("_onDrain"),oZt=Symbol("_streams"),q8r=class extends rvl{constructor(t,...r){ivl(t)&&(r.unshift(t),t={}),super(t),this[oZt]=[],r.length&&this.push(...r)}[U8r](t){return t.reduce((r,n)=>(r.on("error",a=>n.emit("error",a)),r.pipe(n),n))}push(...t){this[oZt].push(...t),this[XO]&&t.unshift(this[XO]);let r=this[U8r](t);this[j8r](r),this[w0e]||this[K8r](t[0])}unshift(...t){this[oZt].unshift(...t),this[w0e]&&t.push(this[w0e]);let r=this[U8r](t);this[K8r](t[0]),this[XO]||this[j8r](r)}destroy(t){return this[oZt].forEach(r=>typeof r.destroy=="function"&&r.destroy()),super.destroy(t)}[j8r](t){this[XO]=t,t.on("error",r=>this[Ths](t,r)),t.on("data",r=>this[Rhs](t,r)),t.on("end",()=>this[z8r](t)),t.on("finish",()=>this[z8r](t))}[Ths](t,r){t===this[XO]&&this.emit("error",r)}[Rhs](t,r){t===this[XO]&&super.write(r)}[z8r](t){t===this[XO]&&super.end()}pause(){return super.pause(),this[XO]&&this[XO].pause&&this[XO].pause()}emit(t,...r){return t==="resume"&&this[XO]&&this[XO].resume&&this[XO].resume(),super.emit(t,...r)}[K8r](t){this[w0e]=t,t.on("drain",()=>this[Nhs](t))}[Nhs](t){t===this[w0e]&&this.emit("drain")}write(t,r,n){return this[w0e].write(t,r,n)&&(this.flowing||this.buffer.length===0)}end(t,r,n){return this[w0e].end(t,r,n),this}};Dhs.exports=q8r});var khs=H((wig,$8r)=>{(function(){var e;function t(r,n){var a=this instanceof t?this:e;if(a.reset(n),typeof r=="string"&&r.length>0&&a.hash(r),a!==this)return a}t.prototype.hash=function(r){var n,a,o,l,A;switch(A=r.length,this.len+=A,a=this.k1,o=0,this.rem){case 0:a^=A>o?r.charCodeAt(o++)&65535:0;case 1:a^=A>o?(r.charCodeAt(o++)&65535)<<8:0;case 2:a^=A>o?(r.charCodeAt(o++)&65535)<<16:0;case 3:a^=A>o?(r.charCodeAt(o)&255)<<24:0,a^=A>o?(r.charCodeAt(o++)&65280)>>8:0}if(this.rem=A+this.rem&3,A-=this.rem,A>0){for(n=this.h1;a=a*11601+(a&65535)*3432906752&4294967295,a=a<<15|a>>>17,a=a*13715+(a&65535)*461832192&4294967295,n^=a,n=n<<13|n>>>19,n=n*5+3864292196&4294967295,!(o>=A);)a=r.charCodeAt(o++)&65535^(r.charCodeAt(o++)&65535)<<8^(r.charCodeAt(o++)&65535)<<16,l=r.charCodeAt(o++),a^=(l&255)<<24^(l&65280)>>8;switch(a=0,this.rem){case 3:a^=(r.charCodeAt(o+2)&65535)<<16;case 2:a^=(r.charCodeAt(o+1)&65535)<<8;case 1:a^=r.charCodeAt(o)&65535}this.h1=n}return this.k1=a,this},t.prototype.result=function(){var r,n;return r=this.k1,n=this.h1,r>0&&(r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,n^=r),n^=this.len,n^=n>>>16,n=n*51819+(n&65535)*2246770688&4294967295,n^=n>>>13,n=n*44597+(n&65535)*3266445312&4294967295,n^=n>>>16,n>>>0},t.prototype.reset=function(r){return this.h1=typeof r=="number"?r:0,this.rem=this.k1=this.len=0,this},e=new t,typeof $8r<"u"?$8r.exports=t:this.MurmurHash3=t})()});var Ghs=H((Tig,xhs)=>{"use strict";var svl=khs();xhs.exports=function(e){if(e){var t=new svl(e);return("00000000"+t.result().toString(16)).slice(-8)}else return(Math.random().toString(16)+"0000000").slice(2,10)}});var ejr=H((Rig,Fhs)=>{var ovl=wt("path"),avl=Ghs();Fhs.exports=function(e,t,r){return ovl.join(e,(t?t+"-":"")+avl(r))}});var tjr=H((Nig,cvl)=>{cvl.exports={name:"cacache",version:"19.0.1","cache-version":{content:"2",index:"5"},description:"Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",snap:"tap",coverage:"tap","test-docker":'docker run -it --rm --name pacotest -v "$PWD":/tmp -w /tmp node:latest npm test',lint:"npm run eslint",npmclilint:"npmcli-lint",lintfix:"npm run eslint -- --fix",postsnap:"npm run lintfix --",postlint:"template-oss-check",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},repository:{type:"git",url:"git+https://github.com/npm/cacache.git"},keywords:["cache","caching","content-addressable","sri","sri hash","subresource integrity","cache","storage","store","file store","filesystem","disk cache","disk storage"],license:"ISC",dependencies:{"@npmcli/fs":"^4.0.0","fs-minipass":"^3.0.0",glob:"^10.2.2","lru-cache":"^10.0.1",minipass:"^7.0.3","minipass-collect":"^2.0.1","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","p-map":"^7.0.2",ssri:"^12.0.0",tar:"^7.4.3","unique-filename":"^4.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",windowsCI:!1,version:"4.23.3",publish:"true"},author:"GitHub Inc.",tap:{"nyc-arg":["--exclude","tap-snapshots/**"]}}});var rjr=H((Dig,Zhs)=>{"use strict";Zhs.exports=lvl;function lvl(e){return[e.slice(0,2),e.slice(2,4),e.slice(4)]}});var qGe=H((kig,njr)=>{"use strict";var uvl=tjr()["cache-version"].content,gvl=rjr(),Lhs=wt("path"),Avl=Jte();njr.exports=dvl;function dvl(e,t){let r=Avl.parse(t,{single:!0});return Lhs.join(Vhs(e),r.algorithm,...gvl(r.hexDigest()))}njr.exports.contentDir=Vhs;function Vhs(e){return Lhs.join(e,`content-v${uvl}`)}});var ijr=H((xig,Phs)=>{var pvl=(e,{copy:t,wrap:r})=>{let n={};if(e&&typeof e=="object")for(let a of t)e[a]!==void 0&&(n[a]=e[a]);else n[r]=e;return n};Phs.exports=pvl});var Ohs=H((Gig,Whs)=>{var fvl=UC(),Ivl=e=>fvl.satisfies(process.version,e,{includePrerelease:!0});Whs.exports={satisfies:Ivl}});var Mhs=H((Lig,ojr)=>{"use strict";var{inspect:hvl}=wt("util"),sjr=class{constructor(t,r,n){let a=`${r}: ${n.syscall} returned ${n.code} (${n.message})`;n.path!==void 0&&(a+=` ${n.path}`),n.dest!==void 0&&(a+=` => ${n.dest}`),this.code=t,Object.defineProperties(this,{name:{value:"SystemError",enumerable:!1,writable:!0,configurable:!0},message:{value:a,enumerable:!1,writable:!0,configurable:!0},info:{value:n,enumerable:!0,configurable:!0,writable:!1},errno:{get(){return n.errno},set(o){n.errno=o},enumerable:!0,configurable:!0},syscall:{get(){return n.syscall},set(o){n.syscall=o},enumerable:!0,configurable:!0}}),n.path!==void 0&&Object.defineProperty(this,"path",{get(){return n.path},set(o){n.path=o},enumerable:!0,configurable:!0}),n.dest!==void 0&&Object.defineProperty(this,"dest",{get(){return n.dest},set(o){n.dest=o},enumerable:!0,configurable:!0})}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for("nodejs.util.inspect.custom")](t,r){return hvl(this,{...r,getters:!0,customInspect:!1})}};function sre(e,t){ojr.exports[e]=class extends sjr{constructor(n){super(e,t,n)}}}sre("ERR_FS_CP_DIR_TO_NON_DIR","Cannot overwrite directory with non-directory");sre("ERR_FS_CP_EEXIST","Target already exists");sre("ERR_FS_CP_EINVAL","Invalid src or dest");sre("ERR_FS_CP_FIFO_PIPE","Cannot copy a FIFO pipe");sre("ERR_FS_CP_NON_DIR_TO_DIR","Cannot overwrite non-directory with directory");sre("ERR_FS_CP_SOCKET","Cannot copy a socket file");sre("ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY","Cannot overwrite symlink in subdirectory of self");sre("ERR_FS_CP_UNKNOWN","Cannot copy an unknown file type");sre("ERR_FS_EISDIR","Path is a directory");ojr.exports.ERR_INVALID_ARG_TYPE=class extends Error{constructor(t,r,n){super(),this.code="ERR_INVALID_ARG_TYPE",this.message=`The ${t} argument must be ${r}. Received ${typeof n}`}}});var ams=H((Vig,oms)=>{"use strict";var{ERR_FS_CP_DIR_TO_NON_DIR:mvl,ERR_FS_CP_EEXIST:Cvl,ERR_FS_CP_EINVAL:aZt,ERR_FS_CP_FIFO_PIPE:_vl,ERR_FS_CP_NON_DIR_TO_DIR:yvl,ERR_FS_CP_SOCKET:bvl,ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY:Evl,ERR_FS_CP_UNKNOWN:Svl,ERR_FS_EISDIR:vvl,ERR_INVALID_ARG_TYPE:Bvl}=Mhs(),{constants:{errno:{EEXIST:wvl,EISDIR:Tvl,EINVAL:ore,ENOTDIR:Rvl}}}=wt("os"),{chmod:Nvl,copyFile:Dvl,lstat:zhs,mkdir:qhs,readdir:kvl,readlink:Hhs,stat:$Ge,symlink:ajr,unlink:$hs,utimes:xvl}=wt("fs/promises"),{dirname:Y7e,isAbsolute:Yhs,join:Qhs,parse:Gvl,resolve:Q7e,sep:Fvl,toNamespacedPath:Xhs}=wt("path"),{fileURLToPath:Zvl}=wt("url"),Lvl={dereference:!1,errorOnExist:!1,filter:void 0,force:!0,preserveTimestamps:!1,recursive:!1};async function Vvl(e,t,r){if(r!=null&&typeof r!="object")throw new Bvl("options",["Object"],r);return Pvl(Xhs(Jhs(e)),Xhs(Jhs(t)),{...Lvl,...r})}function Jhs(e){return e!=null&&e.href&&e.origin?Zvl(e):e}async function Pvl(e,t,r){r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended","TimestampPrecisionWarning");let n=await ems(e,t,r),{srcStat:a,destStat:o}=n;return await rms(e,a,t),r.filter?nms(Uhs,o,e,t,r):Uhs(o,e,t,r)}async function ems(e,t,r){let{0:n,1:a}=await Wvl(e,t,r);if(a){if(tms(n,a))throw new aZt({message:"src and dest cannot be the same",path:t,syscall:"cp",errno:ore});if(n.isDirectory()&&!a.isDirectory())throw new mvl({message:`cannot overwrite directory ${e} with non-directory ${t}`,path:t,syscall:"cp",errno:Tvl});if(!n.isDirectory()&&a.isDirectory())throw new yvl({message:`cannot overwrite non-directory ${e} with directory ${t}`,path:t,syscall:"cp",errno:Rvl})}if(n.isDirectory()&&cjr(e,t))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${t}`,path:t,syscall:"cp",errno:ore});return{srcStat:n,destStat:a}}function tms(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Wvl(e,t,r){let n=r.dereference?a=>$Ge(a,{bigint:!0}):a=>zhs(a,{bigint:!0});return Promise.all([n(e),n(t).catch(a=>{if(a.code==="ENOENT")return null;throw a})])}async function Uhs(e,t,r,n){let a=Y7e(r);return await Ovl(a)||await qhs(a,{recursive:!0}),cZt(e,t,r,n)}function Ovl(e){return $Ge(e).then(()=>!0,t=>t.code==="ENOENT"?!1:Promise.reject(t))}async function rms(e,t,r){let n=Q7e(Y7e(e)),a=Q7e(Y7e(r));if(a===n||a===Gvl(a).root)return;let o;try{o=await $Ge(a,{bigint:!0})}catch(l){if(l.code==="ENOENT")return;throw l}if(tms(t,o))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${r}`,path:r,syscall:"cp",errno:ore});return rms(e,t,a)}var Khs=e=>Q7e(e).split(Fvl).filter(Boolean);function cjr(e,t){let r=Khs(e),n=Khs(t);return r.every((a,o)=>n[o]===a)}async function nms(e,t,r,n,a,o){if(await a.filter(r,n))return e(t,r,n,a,o)}function Mvl(e,t,r,n){return n.filter?nms(cZt,e,t,r,n):cZt(e,t,r,n)}async function cZt(e,t,r,n){let o=await(n.dereference?$Ge:zhs)(t);if(o.isDirectory()&&n.recursive)return Kvl(o,e,t,r,n);if(o.isDirectory())throw new vvl({message:`${t} is a directory (not copied)`,path:t,syscall:"cp",errno:ore});if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Hvl(o,e,t,r,n);if(o.isSymbolicLink())return zvl(e,t,r);throw o.isSocket()?new bvl({message:`cannot copy a socket file: ${r}`,path:r,syscall:"cp",errno:ore}):o.isFIFO()?new _vl({message:`cannot copy a FIFO pipe: ${r}`,path:r,syscall:"cp",errno:ore}):new Svl({message:`cannot copy an unknown file type: ${r}`,path:r,syscall:"cp",errno:ore})}function Hvl(e,t,r,n,a){return t?Yvl(e,r,n,a):ims(e,r,n,a)}async function Yvl(e,t,r,n){if(n.force)return await $hs(r),ims(e,t,r,n);if(n.errorOnExist)throw new Cvl({message:`${r} already exists`,path:r,syscall:"cp",errno:wvl})}async function ims(e,t,r,n){return await Dvl(t,r),n.preserveTimestamps?Qvl(e.mode,t,r):lZt(r,e.mode)}async function Qvl(e,t,r){return Xvl(e)&&await Jvl(r,e),jhs(e,t,r)}function Xvl(e){return(e&128)===0}function Jvl(e,t){return lZt(e,t|128)}async function jhs(e,t,r){return await Uvl(t,r),lZt(r,e)}function lZt(e,t){return Nvl(e,t)}async function Uvl(e,t){let r=await $Ge(e);return xvl(t,r.atime,r.mtime)}function Kvl(e,t,r,n,a){return t?sms(r,n,a):jvl(e.mode,r,n,a)}async function jvl(e,t,r,n){return await qhs(r),await sms(t,r,n),lZt(r,e)}async function sms(e,t,r){let n=await kvl(e);for(let a=0;a{var $vl=wt("fs/promises"),eBl=ijr(),tBl=Ohs(),rBl=ams(),nBl=tBl.satisfies(">=16.7.0"),iBl=async(e,t,r)=>{let n=eBl(r,{copy:["dereference","errorOnExist","filter","force","preserveTimestamps","recursive"]});return nBl?$vl.cp(e,t,n):rBl(e,t,n)};cms.exports=iBl});var gms=H((Wig,ums)=>{var{join:sBl,sep:oBl}=wt("path"),aBl=ijr(),{mkdir:cBl,mkdtemp:lBl,rm:uBl}=wt("fs/promises"),gBl=async(e,t,r)=>{let n=aBl(r,{copy:["tmpPrefix"]});await cBl(e,{recursive:!0});let a=await lBl(sBl(`${e}${oBl}`,n.tmpPrefix||"")),o,l;try{l=await t(a)}catch(A){o=A}try{await uBl(a,{force:!0,recursive:!0})}catch{}if(o)throw o;return l};ums.exports=gBl});var fms=H((Oig,pms)=>{var{readdir:Ams}=wt("fs/promises"),{join:dms}=wt("path"),ABl=async e=>{let t=[];for(let r of await Ams(e))if(r.startsWith("@"))for(let n of await Ams(dms(e,r)))t.push(dms(r,n));else t.push(r);return t};pms.exports=ABl});var yms=H((Mig,_ms)=>{var{dirname:Ims,join:hms,resolve:mms,relative:dBl,isAbsolute:pBl}=wt("path"),D6=wt("fs/promises"),fBl=async e=>{try{return await D6.access(e),!0}catch(t){return t.code!=="ENOENT"}},Cms=async(e,t,r={},n=!0,a=[])=>{if(!e||!t)throw new TypeError("`source` and `destination` file required");if(r={overwrite:!0,...r},!r.overwrite&&await fBl(t))throw new Error(`The destination file exists: ${t}`);await D6.mkdir(Ims(t),{recursive:!0});try{await D6.rename(e,t)}catch(o){if(o.code==="EXDEV"||o.code==="EPERM"){let l=await D6.lstat(e);if(l.isDirectory()){let A=await D6.readdir(e);await Promise.all(A.map(f=>Cms(hms(e,f),hms(t,f),r,!1,a)))}else l.isSymbolicLink()?a.push({source:e,destination:t}):await D6.copyFile(e,t)}else throw o}n&&(await Promise.all(a.map(async({source:o,destination:l})=>{let A=await D6.readlink(o);pBl(A)&&(A=mms(l,dBl(o,A)));let f="file";try{f=await D6.stat(mms(Ims(o),A)),f.isDirectory()&&(f="junction")}catch{}await D6.symlink(A,l,f)})),await D6.rm(e,{recursive:!0,force:!0}))};_ms.exports=Cms});var uZt=H((Hig,bms)=>{"use strict";var IBl=lms(),hBl=gms(),mBl=fms(),CBl=yms();bms.exports={cp:IBl,withTempDir:hBl,readdirScoped:mBl,moveFile:CBl}});var gZt={};sI(gZt,{default:()=>Ems,pMapIterable:()=>_Bl,pMapSkip:()=>X7e});async function Ems(e,t,{concurrency:r=Number.POSITIVE_INFINITY,stopOnError:n=!0,signal:a}={}){return new Promise((o,l)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(r)&&r>=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);let A=[],f=[],I=new Map,C=!1,b=!1,E=!1,N=0,B=0,F=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),Q=()=>{ne(a.reason)},X=()=>{a?.removeEventListener("abort",Q)},ae=fe=>{o(fe),X()},ne=fe=>{C=!0,b=!0,l(fe),X()};a&&(a.aborted&&ne(a.reason),a.addEventListener("abort",Q,{once:!0}));let ce=async()=>{if(b)return;let fe=await F.next(),ue=B;if(B++,fe.done){if(E=!0,N===0&&!b){if(!n&&f.length>0){ne(new AggregateError(f));return}if(b=!0,I.size===0){ae(A);return}let de=[];for(let[be,Se]of A.entries())I.get(be)!==X7e&&de.push(Se);ae(de)}return}N++,(async()=>{try{let de=await fe.value;if(b)return;let be=await t(de,ue);be===X7e&&I.set(ue,be),A[ue]=be,N--,await ce()}catch(de){if(n)ne(de);else{f.push(de),N--;try{await ce()}catch(be){ne(be)}}}})()};(async()=>{for(let fe=0;fe=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);if(!(Number.isSafeInteger(n)&&n>=r||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`backpressure\` to be an integer from \`concurrency\` (${r}) and up or \`Infinity\`, got \`${n}\` (${typeof n})`);return{async*[Symbol.asyncIterator](){let a=e[Symbol.asyncIterator]===void 0?e[Symbol.iterator]():e[Symbol.asyncIterator](),o=[],l=0,A=!1,f=0;function I(){if(A||!(l{let{done:b,value:E}=await a.next();if(b)return l--,{done:!0};I();try{let N=await t(await E,f++);if(l--,N===X7e){let B=o.indexOf(C);B>0&&o.splice(B,1)}return I(),{done:!1,value:N}}catch(N){return l--,A=!0,{error:N}}})();o.push(C)}for(I();o.length>0;){let{error:C,done:b,value:E}=await o[0];if(o.shift(),C)throw C;if(b)return;I(),E!==X7e&&(yield E)}}}}var X7e,AZt=bc(()=>{X7e=Symbol("skip")});var eFe=H((Qig,JO)=>{"use strict";var yBl=wt("crypto"),{appendFile:bBl,mkdir:gjr,readFile:EBl,readdir:SBl,rm:Sms,writeFile:vBl}=wt("fs/promises"),{Minipass:BBl}=rF(),k6=wt("path"),wBl=Jte(),TBl=ejr(),RBl=qGe(),NBl=rjr(),DBl=tjr()["cache-version"].index,{moveFile:kBl}=uZt(),ljr=5;JO.exports.NotFoundError=class extends Error{constructor(t,r){super(`No cache entry for ${r} found in ${t}`),this.code="ENOENT",this.cache=t,this.key=r}};JO.exports.compact=xBl;async function xBl(e,t,r,n={}){let a=J7e(e,t),o=await dZt(a),l=[];for(let E=o.length-1;E>=0;--E){let N=o[E];if(N.integrity===null&&!n.validateEntry)break;(!n.validateEntry||n.validateEntry(N)===!0)&&(l.length===0||!l.find(B=>r(B,N)))&&l.unshift(N)}let A=` +\v\f\r\x1B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\xA5]^_\`abcdefghijklmnopqrstuvwxyz{|}\u203E\x7F\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD`},hproman8:{type:"_sbcs",chars:"\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F\xA0\xC0\xC2\xC8\xCA\xCB\xCE\xCF\xB4\u02CB\u02C6\xA8\u02DC\xD9\xDB\u20A4\xAF\xDD\xFD\xB0\xC7\xE7\xD1\xF1\xA1\xBF\xA4\xA3\xA5\xA7\u0192\xA2\xE2\xEA\xF4\xFB\xE1\xE9\xF3\xFA\xE0\xE8\xF2\xF9\xE4\xEB\xF6\xFC\xC5\xEE\xD8\xC6\xE5\xED\xF8\xE6\xC4\xEC\xD6\xDC\xC9\xEF\xDF\xD4\xC1\xC3\xE3\xD0\xF0\xCD\xCC\xD3\xD2\xD5\xF5\u0160\u0161\xDA\u0178\xFF\xDE\xFE\xB7\xB5\xB6\xBE\u2014\xBC\xBD\xAA\xBA\xAB\u25A0\xBB\xB1\uFFFD"},macintosh:{type:"_sbcs",chars:"\xC4\xC5\xC7\xC9\xD1\xD6\xDC\xE1\xE0\xE2\xE4\xE3\xE5\xE7\xE9\xE8\xEA\xEB\xED\xEC\xEE\xEF\xF1\xF3\xF2\xF4\xF6\xF5\xFA\xF9\xFB\xFC\u2020\xB0\xA2\xA3\xA7\u2022\xB6\xDF\xAE\xA9\u2122\xB4\xA8\u2260\xC6\xD8\u221E\xB1\u2264\u2265\xA5\xB5\u2202\u2211\u220F\u03C0\u222B\xAA\xBA\u2126\xE6\xF8\xBF\xA1\xAC\u221A\u0192\u2248\u2206\xAB\xBB\u2026\xA0\xC0\xC3\xD5\u0152\u0153\u2013\u2014\u201C\u201D\u2018\u2019\xF7\u25CA\xFF\u0178\u2044\xA4\u2039\u203A\uFB01\uFB02\u2021\xB7\u201A\u201E\u2030\xC2\xCA\xC1\xCB\xC8\xCD\xCE\xCF\xCC\xD3\xD4\uFFFD\xD2\xDA\xDB\xD9\u0131\u02C6\u02DC\xAF\u02D8\u02D9\u02DA\xB8\u02DD\u02DB\u02C7"},ascii:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD"},tis620:{type:"_sbcs",chars:"\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0E01\u0E02\u0E03\u0E04\u0E05\u0E06\u0E07\u0E08\u0E09\u0E0A\u0E0B\u0E0C\u0E0D\u0E0E\u0E0F\u0E10\u0E11\u0E12\u0E13\u0E14\u0E15\u0E16\u0E17\u0E18\u0E19\u0E1A\u0E1B\u0E1C\u0E1D\u0E1E\u0E1F\u0E20\u0E21\u0E22\u0E23\u0E24\u0E25\u0E26\u0E27\u0E28\u0E29\u0E2A\u0E2B\u0E2C\u0E2D\u0E2E\u0E2F\u0E30\u0E31\u0E32\u0E33\u0E34\u0E35\u0E36\u0E37\u0E38\u0E39\u0E3A\uFFFD\uFFFD\uFFFD\uFFFD\u0E3F\u0E40\u0E41\u0E42\u0E43\u0E44\u0E45\u0E46\u0E47\u0E48\u0E49\u0E4A\u0E4B\u0E4C\u0E4D\u0E4E\u0E4F\u0E50\u0E51\u0E52\u0E53\u0E54\u0E55\u0E56\u0E57\u0E58\u0E59\u0E5A\u0E5B\uFFFD\uFFFD\uFFFD\uFFFD"}}});var cIs=H(aIs=>{"use strict";var _8r=ere().Buffer;aIs._dbcs=tre;var px=-1,oIs=-2,WH=-10,pL=-1e3,YGe=new Array(256),L7e=-1;for(QFt=0;QFt<256;QFt++)YGe[QFt]=px;var QFt;function tre(e,t){if(this.encodingName=e.encodingName,!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[],this.decodeTables[0]=YGe.slice(0),this.decodeTableSeq=[];for(var n=0;npL)throw new Error("gb18030 decode tables conflict at byte 2");for(var I=this.decodeTables[pL-A[f]],C=129;C<=254;C++){if(I[C]===px)I[C]=pL-o;else{if(I[C]===pL-o)continue;if(I[C]>pL)throw new Error("gb18030 decode tables conflict at byte 3")}for(var b=this.decodeTables[pL-I[C]],E=48;E<=57;E++)b[E]===px&&(b[E]=oIs)}}}this.defaultCharUnicode=t.defaultCharUnicode,this.encodeTable=[],this.encodeTableSeq=[];var N={};if(e.encodeSkipVals)for(var n=0;n0;e>>>=8)t.push(e&255);t.length==0&&t.push(0);for(var r=this.decodeTables[0],n=t.length-1;n>0;n--){var a=r[t[n]];if(a==px)r[t[n]]=pL-this.decodeTables.length,this.decodeTables.push(r=YGe.slice(0));else if(a<=pL)r=this.decodeTables[pL-a];else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};tre.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16),r=this._getDecodeTrieNode(t);t=t&255;for(var n=1;n255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};tre.prototype._getEncodeBucket=function(e){var t=e>>8;return this.encodeTable[t]===void 0&&(this.encodeTable[t]=YGe.slice(0)),this.encodeTable[t]};tre.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e),n=e&255;r[n]<=WH?this.encodeTableSeq[WH-r[n]][L7e]=t:r[n]==px&&(r[n]=t)};tre.prototype._setEncodeSequence=function(e,t){var r=e[0],n=this._getEncodeBucket(r),a=r&255,o;n[a]<=WH?o=this.encodeTableSeq[WH-n[a]]:(o={},n[a]!==px&&(o[L7e]=n[a]),n[a]=WH-this.encodeTableSeq.length,this.encodeTableSeq.push(o));for(var l=1;l=0)this._setEncodeChar(A,f),a=!0;else if(A<=pL){var I=pL-A;if(!o[I]){var C=f<<8>>>0;this._fillEncodeTable(I,C,r)?a=!0:o[I]=!0}}else A<=WH&&(this._setEncodeSequence(this.decodeTableSeq[WH-A],f),a=!0)}return a};function XFt(e,t){this.leadSurrogate=-1,this.seqObj=void 0,this.encodeTable=t.encodeTable,this.encodeTableSeq=t.encodeTableSeq,this.defaultCharSingleByte=t.defCharSB,this.gb18030=t.gb18030}XFt.prototype.write=function(e){for(var t=_8r.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,n=this.seqObj,a=-1,o=0,l=0;;){if(a===-1){if(o==e.length)break;var A=e.charCodeAt(o++)}else{var A=a;a=-1}if(55296<=A&&A<57344)if(A<56320)if(r===-1){r=A;continue}else r=A,A=px;else r!==-1?(A=65536+(r-55296)*1024+(A-56320),r=-1):A=px;else r!==-1&&(a=A,A=px,r=-1);var f=px;if(n!==void 0&&A!=px){var I=n[A];if(typeof I=="object"){n=I;continue}else typeof I=="number"?f=I:I==null&&(I=n[L7e],I!==void 0&&(f=I,a=A));n=void 0}else if(A>=0){var C=this.encodeTable[A>>8];if(C!==void 0&&(f=C[A&255]),f<=WH){n=this.encodeTableSeq[WH-f];continue}if(f==px&&this.gb18030){var b=b8r(this.gb18030.uChars,A);if(b!=-1){var f=this.gb18030.gbChars[b]+(A-this.gb18030.uChars[b]);t[l++]=129+Math.floor(f/12600),f=f%12600,t[l++]=48+Math.floor(f/1260),f=f%1260,t[l++]=129+Math.floor(f/10),f=f%10,t[l++]=48+f;continue}}}f===px&&(f=this.defaultCharSingleByte),f<256?t[l++]=f:f<65536?(t[l++]=f>>8,t[l++]=f&255):f<16777216?(t[l++]=f>>16,t[l++]=f>>8&255,t[l++]=f&255):(t[l++]=f>>>24,t[l++]=f>>>16&255,t[l++]=f>>>8&255,t[l++]=f&255)}return this.seqObj=n,this.leadSurrogate=r,t.slice(0,l)};XFt.prototype.end=function(){if(!(this.leadSurrogate===-1&&this.seqObj===void 0)){var e=_8r.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[L7e];r!==void 0&&(r<256?e[t++]=r:(e[t++]=r>>8,e[t++]=r&255)),this.seqObj=void 0}return this.leadSurrogate!==-1&&(e[t++]=this.defaultCharSingleByte,this.leadSurrogate=-1),e.slice(0,t)}};XFt.prototype.findIdx=b8r;function y8r(e,t){this.nodeIdx=0,this.prevBytes=[],this.decodeTables=t.decodeTables,this.decodeTableSeq=t.decodeTableSeq,this.defaultCharUnicode=t.defaultCharUnicode,this.gb18030=t.gb18030}y8r.prototype.write=function(e){for(var t=_8r.alloc(e.length*2),r=this.nodeIdx,n=this.prevBytes,a=this.prevBytes.length,o=-this.prevBytes.length,l,A=0,f=0;A=0?e[A]:n[A+a],l=this.decodeTables[r][I];if(!(l>=0))if(l===px)l=this.defaultCharUnicode.charCodeAt(0),A=o;else if(l===oIs){if(A>=3)var C=(e[A-3]-129)*12600+(e[A-2]-48)*1260+(e[A-1]-129)*10+(I-48);else var C=(n[A-3+a]-129)*12600+((A-2>=0?e[A-2]:n[A-2+a])-48)*1260+((A-1>=0?e[A-1]:n[A-1+a])-129)*10+(I-48);var b=b8r(this.gb18030.gbChars,C);l=this.gb18030.uChars[b]+C-this.gb18030.gbChars[b]}else if(l<=pL){r=pL-l;continue}else if(l<=WH){for(var E=this.decodeTableSeq[WH-l],N=0;N>8;l=E[E.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+l+" at "+r+"/"+I);if(l>=65536){l-=65536;var B=55296|l>>10;t[f++]=B&255,t[f++]=B>>8,l=56320|l&1023}t[f++]=l&255,t[f++]=l>>8,r=0,o=A+1}return this.nodeIdx=r,this.prevBytes=o>=0?Array.prototype.slice.call(e,o):n.slice(o+a).concat(Array.prototype.slice.call(e)),t.slice(0,f).toString("ucs2")};y8r.prototype.end=function(){for(var e="";this.prevBytes.length>0;){e+=this.defaultCharUnicode;var t=this.prevBytes.slice(1);this.prevBytes=[],this.nodeIdx=0,t.length>0&&(e+=this.write(t))}return this.prevBytes=[],this.nodeIdx=0,e};function b8r(e,t){if(e[0]>t)return-1;for(var r=0,n=e.length;r>1);e[a]<=t?r=a:n=a}return r}});var lIs=H((qng,Q2l)=>{Q2l.exports=[["0","\0",128],["a1","\uFF61",62],["8140","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7"],["8180","\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["81b8","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["81c8","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["81da","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["81f0","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["81fc","\u25EF"],["824f","\uFF10",9],["8260","\uFF21",25],["8281","\uFF41",25],["829f","\u3041",82],["8340","\u30A1",62],["8380","\u30E0",22],["839f","\u0391",16,"\u03A3",6],["83bf","\u03B1",16,"\u03C3",6],["8440","\u0410",5,"\u0401\u0416",25],["8470","\u0430",5,"\u0451\u0436",7],["8480","\u043E",17],["849f","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["8740","\u2460",19,"\u2160",9],["875f","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["877e","\u337B"],["8780","\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["889f","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["8940","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186"],["8980","\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["8a40","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B"],["8a80","\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["8b40","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551"],["8b80","\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["8c40","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8"],["8c80","\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["8d40","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D"],["8d80","\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["8e40","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62"],["8e80","\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["8f40","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3"],["8f80","\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["9040","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8"],["9080","\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["9140","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB"],["9180","\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["9240","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4"],["9280","\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["9340","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC"],["9380","\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["9440","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885"],["9480","\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["9540","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577"],["9580","\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["9640","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6"],["9680","\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["9740","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32"],["9780","\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["9840","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["989f","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["9940","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED"],["9980","\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["9a40","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638"],["9a80","\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["9b40","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80"],["9b80","\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["9c40","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060"],["9c80","\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["9d40","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B"],["9d80","\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["9e40","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E"],["9e80","\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["9f40","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF"],["9f80","\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["e040","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD"],["e080","\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e140","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF"],["e180","\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e240","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0"],["e280","\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e340","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37"],["e380","\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e440","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264"],["e480","\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e540","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC"],["e580","\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["e640","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7"],["e680","\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["e740","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C"],["e780","\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["e840","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599"],["e880","\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["e940","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43"],["e980","\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["ea40","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF"],["ea80","\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0\u582F\u69C7\u9059\u7464\u51DC\u7199"],["ed40","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F"],["ed80","\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["ee40","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559"],["ee80","\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["eeef","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["f040","\uE000",62],["f080","\uE03F",124],["f140","\uE0BC",62],["f180","\uE0FB",124],["f240","\uE178",62],["f280","\uE1B7",124],["f340","\uE234",62],["f380","\uE273",124],["f440","\uE2F0",62],["f480","\uE32F",124],["f540","\uE3AC",62],["f580","\uE3EB",124],["f640","\uE468",62],["f680","\uE4A7",124],["f740","\uE524",62],["f780","\uE563",124],["f840","\uE5E0",62],["f880","\uE61F",124],["f940","\uE69C"],["fa40","\u2170",9,"\u2160",9,"\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u2235\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A"],["fa80","\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F"],["fb40","\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19"],["fb80","\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9"],["fc40","\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"]]});var uIs=H(($ng,X2l)=>{X2l.exports=[["0","\0",127],["8ea1","\uFF61",62],["a1a1","\u3000\u3001\u3002\uFF0C\uFF0E\u30FB\uFF1A\uFF1B\uFF1F\uFF01\u309B\u309C\xB4\uFF40\xA8\uFF3E\uFFE3\uFF3F\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\u2015\u2010\uFF0F\uFF3C\uFF5E\u2225\uFF5C\u2026\u2025\u2018\u2019\u201C\u201D\uFF08\uFF09\u3014\u3015\uFF3B\uFF3D\uFF5B\uFF5D\u3008",9,"\uFF0B\uFF0D\xB1\xD7\xF7\uFF1D\u2260\uFF1C\uFF1E\u2266\u2267\u221E\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFFE5\uFF04\uFFE0\uFFE1\uFF05\uFF03\uFF06\uFF0A\uFF20\xA7\u2606\u2605\u25CB\u25CF\u25CE\u25C7"],["a2a1","\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u203B\u3012\u2192\u2190\u2191\u2193\u3013"],["a2ba","\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229"],["a2ca","\u2227\u2228\uFFE2\u21D2\u21D4\u2200\u2203"],["a2dc","\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C"],["a2f2","\u212B\u2030\u266F\u266D\u266A\u2020\u2021\xB6"],["a2fe","\u25EF"],["a3b0","\uFF10",9],["a3c1","\uFF21",25],["a3e1","\uFF41",25],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a8a1","\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542"],["ada1","\u2460",19,"\u2160",9],["adc0","\u3349\u3314\u3322\u334D\u3318\u3327\u3303\u3336\u3351\u3357\u330D\u3326\u3323\u332B\u334A\u333B\u339C\u339D\u339E\u338E\u338F\u33C4\u33A1"],["addf","\u337B\u301D\u301F\u2116\u33CD\u2121\u32A4",4,"\u3231\u3232\u3239\u337E\u337D\u337C\u2252\u2261\u222B\u222E\u2211\u221A\u22A5\u2220\u221F\u22BF\u2235\u2229\u222A"],["b0a1","\u4E9C\u5516\u5A03\u963F\u54C0\u611B\u6328\u59F6\u9022\u8475\u831C\u7A50\u60AA\u63E1\u6E25\u65ED\u8466\u82A6\u9BF5\u6893\u5727\u65A1\u6271\u5B9B\u59D0\u867B\u98F4\u7D62\u7DBE\u9B8E\u6216\u7C9F\u88B7\u5B89\u5EB5\u6309\u6697\u6848\u95C7\u978D\u674F\u4EE5\u4F0A\u4F4D\u4F9D\u5049\u56F2\u5937\u59D4\u5A01\u5C09\u60DF\u610F\u6170\u6613\u6905\u70BA\u754F\u7570\u79FB\u7DAD\u7DEF\u80C3\u840E\u8863\u8B02\u9055\u907A\u533B\u4E95\u4EA5\u57DF\u80B2\u90C1\u78EF\u4E00\u58F1\u6EA2\u9038\u7A32\u8328\u828B\u9C2F\u5141\u5370\u54BD\u54E1\u56E0\u59FB\u5F15\u98F2\u6DEB\u80E4\u852D"],["b1a1","\u9662\u9670\u96A0\u97FB\u540B\u53F3\u5B87\u70CF\u7FBD\u8FC2\u96E8\u536F\u9D5C\u7ABA\u4E11\u7893\u81FC\u6E26\u5618\u5504\u6B1D\u851A\u9C3B\u59E5\u53A9\u6D66\u74DC\u958F\u5642\u4E91\u904B\u96F2\u834F\u990C\u53E1\u55B6\u5B30\u5F71\u6620\u66F3\u6804\u6C38\u6CF3\u6D29\u745B\u76C8\u7A4E\u9834\u82F1\u885B\u8A60\u92ED\u6DB2\u75AB\u76CA\u99C5\u60A6\u8B01\u8D8A\u95B2\u698E\u53AD\u5186\u5712\u5830\u5944\u5BB4\u5EF6\u6028\u63A9\u63F4\u6CBF\u6F14\u708E\u7114\u7159\u71D5\u733F\u7E01\u8276\u82D1\u8597\u9060\u925B\u9D1B\u5869\u65BC\u6C5A\u7525\u51F9\u592E\u5965\u5F80\u5FDC"],["b2a1","\u62BC\u65FA\u6A2A\u6B27\u6BB4\u738B\u7FC1\u8956\u9D2C\u9D0E\u9EC4\u5CA1\u6C96\u837B\u5104\u5C4B\u61B6\u81C6\u6876\u7261\u4E59\u4FFA\u5378\u6069\u6E29\u7A4F\u97F3\u4E0B\u5316\u4EEE\u4F55\u4F3D\u4FA1\u4F73\u52A0\u53EF\u5609\u590F\u5AC1\u5BB6\u5BE1\u79D1\u6687\u679C\u67B6\u6B4C\u6CB3\u706B\u73C2\u798D\u79BE\u7A3C\u7B87\u82B1\u82DB\u8304\u8377\u83EF\u83D3\u8766\u8AB2\u5629\u8CA8\u8FE6\u904E\u971E\u868A\u4FC4\u5CE8\u6211\u7259\u753B\u81E5\u82BD\u86FE\u8CC0\u96C5\u9913\u99D5\u4ECB\u4F1A\u89E3\u56DE\u584A\u58CA\u5EFB\u5FEB\u602A\u6094\u6062\u61D0\u6212\u62D0\u6539"],["b3a1","\u9B41\u6666\u68B0\u6D77\u7070\u754C\u7686\u7D75\u82A5\u87F9\u958B\u968E\u8C9D\u51F1\u52BE\u5916\u54B3\u5BB3\u5D16\u6168\u6982\u6DAF\u788D\u84CB\u8857\u8A72\u93A7\u9AB8\u6D6C\u99A8\u86D9\u57A3\u67FF\u86CE\u920E\u5283\u5687\u5404\u5ED3\u62E1\u64B9\u683C\u6838\u6BBB\u7372\u78BA\u7A6B\u899A\u89D2\u8D6B\u8F03\u90ED\u95A3\u9694\u9769\u5B66\u5CB3\u697D\u984D\u984E\u639B\u7B20\u6A2B\u6A7F\u68B6\u9C0D\u6F5F\u5272\u559D\u6070\u62EC\u6D3B\u6E07\u6ED1\u845B\u8910\u8F44\u4E14\u9C39\u53F6\u691B\u6A3A\u9784\u682A\u515C\u7AC3\u84B2\u91DC\u938C\u565B\u9D28\u6822\u8305\u8431"],["b4a1","\u7CA5\u5208\u82C5\u74E6\u4E7E\u4F83\u51A0\u5BD2\u520A\u52D8\u52E7\u5DFB\u559A\u582A\u59E6\u5B8C\u5B98\u5BDB\u5E72\u5E79\u60A3\u611F\u6163\u61BE\u63DB\u6562\u67D1\u6853\u68FA\u6B3E\u6B53\u6C57\u6F22\u6F97\u6F45\u74B0\u7518\u76E3\u770B\u7AFF\u7BA1\u7C21\u7DE9\u7F36\u7FF0\u809D\u8266\u839E\u89B3\u8ACC\u8CAB\u9084\u9451\u9593\u9591\u95A2\u9665\u97D3\u9928\u8218\u4E38\u542B\u5CB8\u5DCC\u73A9\u764C\u773C\u5CA9\u7FEB\u8D0B\u96C1\u9811\u9854\u9858\u4F01\u4F0E\u5371\u559C\u5668\u57FA\u5947\u5B09\u5BC4\u5C90\u5E0C\u5E7E\u5FCC\u63EE\u673A\u65D7\u65E2\u671F\u68CB\u68C4"],["b5a1","\u6A5F\u5E30\u6BC5\u6C17\u6C7D\u757F\u7948\u5B63\u7A00\u7D00\u5FBD\u898F\u8A18\u8CB4\u8D77\u8ECC\u8F1D\u98E2\u9A0E\u9B3C\u4E80\u507D\u5100\u5993\u5B9C\u622F\u6280\u64EC\u6B3A\u72A0\u7591\u7947\u7FA9\u87FB\u8ABC\u8B70\u63AC\u83CA\u97A0\u5409\u5403\u55AB\u6854\u6A58\u8A70\u7827\u6775\u9ECD\u5374\u5BA2\u811A\u8650\u9006\u4E18\u4E45\u4EC7\u4F11\u53CA\u5438\u5BAE\u5F13\u6025\u6551\u673D\u6C42\u6C72\u6CE3\u7078\u7403\u7A76\u7AAE\u7B08\u7D1A\u7CFE\u7D66\u65E7\u725B\u53BB\u5C45\u5DE8\u62D2\u62E0\u6319\u6E20\u865A\u8A31\u8DDD\u92F8\u6F01\u79A6\u9B5A\u4EA8\u4EAB\u4EAC"],["b6a1","\u4F9B\u4FA0\u50D1\u5147\u7AF6\u5171\u51F6\u5354\u5321\u537F\u53EB\u55AC\u5883\u5CE1\u5F37\u5F4A\u602F\u6050\u606D\u631F\u6559\u6A4B\u6CC1\u72C2\u72ED\u77EF\u80F8\u8105\u8208\u854E\u90F7\u93E1\u97FF\u9957\u9A5A\u4EF0\u51DD\u5C2D\u6681\u696D\u5C40\u66F2\u6975\u7389\u6850\u7C81\u50C5\u52E4\u5747\u5DFE\u9326\u65A4\u6B23\u6B3D\u7434\u7981\u79BD\u7B4B\u7DCA\u82B9\u83CC\u887F\u895F\u8B39\u8FD1\u91D1\u541F\u9280\u4E5D\u5036\u53E5\u533A\u72D7\u7396\u77E9\u82E6\u8EAF\u99C6\u99C8\u99D2\u5177\u611A\u865E\u55B0\u7A7A\u5076\u5BD3\u9047\u9685\u4E32\u6ADB\u91E7\u5C51\u5C48"],["b7a1","\u6398\u7A9F\u6C93\u9774\u8F61\u7AAA\u718A\u9688\u7C82\u6817\u7E70\u6851\u936C\u52F2\u541B\u85AB\u8A13\u7FA4\u8ECD\u90E1\u5366\u8888\u7941\u4FC2\u50BE\u5211\u5144\u5553\u572D\u73EA\u578B\u5951\u5F62\u5F84\u6075\u6176\u6167\u61A9\u63B2\u643A\u656C\u666F\u6842\u6E13\u7566\u7A3D\u7CFB\u7D4C\u7D99\u7E4B\u7F6B\u830E\u834A\u86CD\u8A08\u8A63\u8B66\u8EFD\u981A\u9D8F\u82B8\u8FCE\u9BE8\u5287\u621F\u6483\u6FC0\u9699\u6841\u5091\u6B20\u6C7A\u6F54\u7A74\u7D50\u8840\u8A23\u6708\u4EF6\u5039\u5026\u5065\u517C\u5238\u5263\u55A7\u570F\u5805\u5ACC\u5EFA\u61B2\u61F8\u62F3\u6372"],["b8a1","\u691C\u6A29\u727D\u72AC\u732E\u7814\u786F\u7D79\u770C\u80A9\u898B\u8B19\u8CE2\u8ED2\u9063\u9375\u967A\u9855\u9A13\u9E78\u5143\u539F\u53B3\u5E7B\u5F26\u6E1B\u6E90\u7384\u73FE\u7D43\u8237\u8A00\u8AFA\u9650\u4E4E\u500B\u53E4\u547C\u56FA\u59D1\u5B64\u5DF1\u5EAB\u5F27\u6238\u6545\u67AF\u6E56\u72D0\u7CCA\u88B4\u80A1\u80E1\u83F0\u864E\u8A87\u8DE8\u9237\u96C7\u9867\u9F13\u4E94\u4E92\u4F0D\u5348\u5449\u543E\u5A2F\u5F8C\u5FA1\u609F\u68A7\u6A8E\u745A\u7881\u8A9E\u8AA4\u8B77\u9190\u4E5E\u9BC9\u4EA4\u4F7C\u4FAF\u5019\u5016\u5149\u516C\u529F\u52B9\u52FE\u539A\u53E3\u5411"],["b9a1","\u540E\u5589\u5751\u57A2\u597D\u5B54\u5B5D\u5B8F\u5DE5\u5DE7\u5DF7\u5E78\u5E83\u5E9A\u5EB7\u5F18\u6052\u614C\u6297\u62D8\u63A7\u653B\u6602\u6643\u66F4\u676D\u6821\u6897\u69CB\u6C5F\u6D2A\u6D69\u6E2F\u6E9D\u7532\u7687\u786C\u7A3F\u7CE0\u7D05\u7D18\u7D5E\u7DB1\u8015\u8003\u80AF\u80B1\u8154\u818F\u822A\u8352\u884C\u8861\u8B1B\u8CA2\u8CFC\u90CA\u9175\u9271\u783F\u92FC\u95A4\u964D\u9805\u9999\u9AD8\u9D3B\u525B\u52AB\u53F7\u5408\u58D5\u62F7\u6FE0\u8C6A\u8F5F\u9EB9\u514B\u523B\u544A\u56FD\u7A40\u9177\u9D60\u9ED2\u7344\u6F09\u8170\u7511\u5FFD\u60DA\u9AA8\u72DB\u8FBC"],["baa1","\u6B64\u9803\u4ECA\u56F0\u5764\u58BE\u5A5A\u6068\u61C7\u660F\u6606\u6839\u68B1\u6DF7\u75D5\u7D3A\u826E\u9B42\u4E9B\u4F50\u53C9\u5506\u5D6F\u5DE6\u5DEE\u67FB\u6C99\u7473\u7802\u8A50\u9396\u88DF\u5750\u5EA7\u632B\u50B5\u50AC\u518D\u6700\u54C9\u585E\u59BB\u5BB0\u5F69\u624D\u63A1\u683D\u6B73\u6E08\u707D\u91C7\u7280\u7815\u7826\u796D\u658E\u7D30\u83DC\u88C1\u8F09\u969B\u5264\u5728\u6750\u7F6A\u8CA1\u51B4\u5742\u962A\u583A\u698A\u80B4\u54B2\u5D0E\u57FC\u7895\u9DFA\u4F5C\u524A\u548B\u643E\u6628\u6714\u67F5\u7A84\u7B56\u7D22\u932F\u685C\u9BAD\u7B39\u5319\u518A\u5237"],["bba1","\u5BDF\u62F6\u64AE\u64E6\u672D\u6BBA\u85A9\u96D1\u7690\u9BD6\u634C\u9306\u9BAB\u76BF\u6652\u4E09\u5098\u53C2\u5C71\u60E8\u6492\u6563\u685F\u71E6\u73CA\u7523\u7B97\u7E82\u8695\u8B83\u8CDB\u9178\u9910\u65AC\u66AB\u6B8B\u4ED5\u4ED4\u4F3A\u4F7F\u523A\u53F8\u53F2\u55E3\u56DB\u58EB\u59CB\u59C9\u59FF\u5B50\u5C4D\u5E02\u5E2B\u5FD7\u601D\u6307\u652F\u5B5C\u65AF\u65BD\u65E8\u679D\u6B62\u6B7B\u6C0F\u7345\u7949\u79C1\u7CF8\u7D19\u7D2B\u80A2\u8102\u81F3\u8996\u8A5E\u8A69\u8A66\u8A8C\u8AEE\u8CC7\u8CDC\u96CC\u98FC\u6B6F\u4E8B\u4F3C\u4F8D\u5150\u5B57\u5BFA\u6148\u6301\u6642"],["bca1","\u6B21\u6ECB\u6CBB\u723E\u74BD\u75D4\u78C1\u793A\u800C\u8033\u81EA\u8494\u8F9E\u6C50\u9E7F\u5F0F\u8B58\u9D2B\u7AFA\u8EF8\u5B8D\u96EB\u4E03\u53F1\u57F7\u5931\u5AC9\u5BA4\u6089\u6E7F\u6F06\u75BE\u8CEA\u5B9F\u8500\u7BE0\u5072\u67F4\u829D\u5C61\u854A\u7E1E\u820E\u5199\u5C04\u6368\u8D66\u659C\u716E\u793E\u7D17\u8005\u8B1D\u8ECA\u906E\u86C7\u90AA\u501F\u52FA\u5C3A\u6753\u707C\u7235\u914C\u91C8\u932B\u82E5\u5BC2\u5F31\u60F9\u4E3B\u53D6\u5B88\u624B\u6731\u6B8A\u72E9\u73E0\u7A2E\u816B\u8DA3\u9152\u9996\u5112\u53D7\u546A\u5BFF\u6388\u6A39\u7DAC\u9700\u56DA\u53CE\u5468"],["bda1","\u5B97\u5C31\u5DDE\u4FEE\u6101\u62FE\u6D32\u79C0\u79CB\u7D42\u7E4D\u7FD2\u81ED\u821F\u8490\u8846\u8972\u8B90\u8E74\u8F2F\u9031\u914B\u916C\u96C6\u919C\u4EC0\u4F4F\u5145\u5341\u5F93\u620E\u67D4\u6C41\u6E0B\u7363\u7E26\u91CD\u9283\u53D4\u5919\u5BBF\u6DD1\u795D\u7E2E\u7C9B\u587E\u719F\u51FA\u8853\u8FF0\u4FCA\u5CFB\u6625\u77AC\u7AE3\u821C\u99FF\u51C6\u5FAA\u65EC\u696F\u6B89\u6DF3\u6E96\u6F64\u76FE\u7D14\u5DE1\u9075\u9187\u9806\u51E6\u521D\u6240\u6691\u66D9\u6E1A\u5EB6\u7DD2\u7F72\u66F8\u85AF\u85F7\u8AF8\u52A9\u53D9\u5973\u5E8F\u5F90\u6055\u92E4\u9664\u50B7\u511F"],["bea1","\u52DD\u5320\u5347\u53EC\u54E8\u5546\u5531\u5617\u5968\u59BE\u5A3C\u5BB5\u5C06\u5C0F\u5C11\u5C1A\u5E84\u5E8A\u5EE0\u5F70\u627F\u6284\u62DB\u638C\u6377\u6607\u660C\u662D\u6676\u677E\u68A2\u6A1F\u6A35\u6CBC\u6D88\u6E09\u6E58\u713C\u7126\u7167\u75C7\u7701\u785D\u7901\u7965\u79F0\u7AE0\u7B11\u7CA7\u7D39\u8096\u83D6\u848B\u8549\u885D\u88F3\u8A1F\u8A3C\u8A54\u8A73\u8C61\u8CDE\u91A4\u9266\u937E\u9418\u969C\u9798\u4E0A\u4E08\u4E1E\u4E57\u5197\u5270\u57CE\u5834\u58CC\u5B22\u5E38\u60C5\u64FE\u6761\u6756\u6D44\u72B6\u7573\u7A63\u84B8\u8B72\u91B8\u9320\u5631\u57F4\u98FE"],["bfa1","\u62ED\u690D\u6B96\u71ED\u7E54\u8077\u8272\u89E6\u98DF\u8755\u8FB1\u5C3B\u4F38\u4FE1\u4FB5\u5507\u5A20\u5BDD\u5BE9\u5FC3\u614E\u632F\u65B0\u664B\u68EE\u699B\u6D78\u6DF1\u7533\u75B9\u771F\u795E\u79E6\u7D33\u81E3\u82AF\u85AA\u89AA\u8A3A\u8EAB\u8F9B\u9032\u91DD\u9707\u4EBA\u4EC1\u5203\u5875\u58EC\u5C0B\u751A\u5C3D\u814E\u8A0A\u8FC5\u9663\u976D\u7B25\u8ACF\u9808\u9162\u56F3\u53A8\u9017\u5439\u5782\u5E25\u63A8\u6C34\u708A\u7761\u7C8B\u7FE0\u8870\u9042\u9154\u9310\u9318\u968F\u745E\u9AC4\u5D07\u5D69\u6570\u67A2\u8DA8\u96DB\u636E\u6749\u6919\u83C5\u9817\u96C0\u88FE"],["c0a1","\u6F84\u647A\u5BF8\u4E16\u702C\u755D\u662F\u51C4\u5236\u52E2\u59D3\u5F81\u6027\u6210\u653F\u6574\u661F\u6674\u68F2\u6816\u6B63\u6E05\u7272\u751F\u76DB\u7CBE\u8056\u58F0\u88FD\u897F\u8AA0\u8A93\u8ACB\u901D\u9192\u9752\u9759\u6589\u7A0E\u8106\u96BB\u5E2D\u60DC\u621A\u65A5\u6614\u6790\u77F3\u7A4D\u7C4D\u7E3E\u810A\u8CAC\u8D64\u8DE1\u8E5F\u78A9\u5207\u62D9\u63A5\u6442\u6298\u8A2D\u7A83\u7BC0\u8AAC\u96EA\u7D76\u820C\u8749\u4ED9\u5148\u5343\u5360\u5BA3\u5C02\u5C16\u5DDD\u6226\u6247\u64B0\u6813\u6834\u6CC9\u6D45\u6D17\u67D3\u6F5C\u714E\u717D\u65CB\u7A7F\u7BAD\u7DDA"],["c1a1","\u7E4A\u7FA8\u817A\u821B\u8239\u85A6\u8A6E\u8CCE\u8DF5\u9078\u9077\u92AD\u9291\u9583\u9BAE\u524D\u5584\u6F38\u7136\u5168\u7985\u7E55\u81B3\u7CCE\u564C\u5851\u5CA8\u63AA\u66FE\u66FD\u695A\u72D9\u758F\u758E\u790E\u7956\u79DF\u7C97\u7D20\u7D44\u8607\u8A34\u963B\u9061\u9F20\u50E7\u5275\u53CC\u53E2\u5009\u55AA\u58EE\u594F\u723D\u5B8B\u5C64\u531D\u60E3\u60F3\u635C\u6383\u633F\u63BB\u64CD\u65E9\u66F9\u5DE3\u69CD\u69FD\u6F15\u71E5\u4E89\u75E9\u76F8\u7A93\u7CDF\u7DCF\u7D9C\u8061\u8349\u8358\u846C\u84BC\u85FB\u88C5\u8D70\u9001\u906D\u9397\u971C\u9A12\u50CF\u5897\u618E"],["c2a1","\u81D3\u8535\u8D08\u9020\u4FC3\u5074\u5247\u5373\u606F\u6349\u675F\u6E2C\u8DB3\u901F\u4FD7\u5C5E\u8CCA\u65CF\u7D9A\u5352\u8896\u5176\u63C3\u5B58\u5B6B\u5C0A\u640D\u6751\u905C\u4ED6\u591A\u592A\u6C70\u8A51\u553E\u5815\u59A5\u60F0\u6253\u67C1\u8235\u6955\u9640\u99C4\u9A28\u4F53\u5806\u5BFE\u8010\u5CB1\u5E2F\u5F85\u6020\u614B\u6234\u66FF\u6CF0\u6EDE\u80CE\u817F\u82D4\u888B\u8CB8\u9000\u902E\u968A\u9EDB\u9BDB\u4EE3\u53F0\u5927\u7B2C\u918D\u984C\u9DF9\u6EDD\u7027\u5353\u5544\u5B85\u6258\u629E\u62D3\u6CA2\u6FEF\u7422\u8A17\u9438\u6FC1\u8AFE\u8338\u51E7\u86F8\u53EA"],["c3a1","\u53E9\u4F46\u9054\u8FB0\u596A\u8131\u5DFD\u7AEA\u8FBF\u68DA\u8C37\u72F8\u9C48\u6A3D\u8AB0\u4E39\u5358\u5606\u5766\u62C5\u63A2\u65E6\u6B4E\u6DE1\u6E5B\u70AD\u77ED\u7AEF\u7BAA\u7DBB\u803D\u80C6\u86CB\u8A95\u935B\u56E3\u58C7\u5F3E\u65AD\u6696\u6A80\u6BB5\u7537\u8AC7\u5024\u77E5\u5730\u5F1B\u6065\u667A\u6C60\u75F4\u7A1A\u7F6E\u81F4\u8718\u9045\u99B3\u7BC9\u755C\u7AF9\u7B51\u84C4\u9010\u79E9\u7A92\u8336\u5AE1\u7740\u4E2D\u4EF2\u5B99\u5FE0\u62BD\u663C\u67F1\u6CE8\u866B\u8877\u8A3B\u914E\u92F3\u99D0\u6A17\u7026\u732A\u82E7\u8457\u8CAF\u4E01\u5146\u51CB\u558B\u5BF5"],["c4a1","\u5E16\u5E33\u5E81\u5F14\u5F35\u5F6B\u5FB4\u61F2\u6311\u66A2\u671D\u6F6E\u7252\u753A\u773A\u8074\u8139\u8178\u8776\u8ABF\u8ADC\u8D85\u8DF3\u929A\u9577\u9802\u9CE5\u52C5\u6357\u76F4\u6715\u6C88\u73CD\u8CC3\u93AE\u9673\u6D25\u589C\u690E\u69CC\u8FFD\u939A\u75DB\u901A\u585A\u6802\u63B4\u69FB\u4F43\u6F2C\u67D8\u8FBB\u8526\u7DB4\u9354\u693F\u6F70\u576A\u58F7\u5B2C\u7D2C\u722A\u540A\u91E3\u9DB4\u4EAD\u4F4E\u505C\u5075\u5243\u8C9E\u5448\u5824\u5B9A\u5E1D\u5E95\u5EAD\u5EF7\u5F1F\u608C\u62B5\u633A\u63D0\u68AF\u6C40\u7887\u798E\u7A0B\u7DE0\u8247\u8A02\u8AE6\u8E44\u9013"],["c5a1","\u90B8\u912D\u91D8\u9F0E\u6CE5\u6458\u64E2\u6575\u6EF4\u7684\u7B1B\u9069\u93D1\u6EBA\u54F2\u5FB9\u64A4\u8F4D\u8FED\u9244\u5178\u586B\u5929\u5C55\u5E97\u6DFB\u7E8F\u751C\u8CBC\u8EE2\u985B\u70B9\u4F1D\u6BBF\u6FB1\u7530\u96FB\u514E\u5410\u5835\u5857\u59AC\u5C60\u5F92\u6597\u675C\u6E21\u767B\u83DF\u8CED\u9014\u90FD\u934D\u7825\u783A\u52AA\u5EA6\u571F\u5974\u6012\u5012\u515A\u51AC\u51CD\u5200\u5510\u5854\u5858\u5957\u5B95\u5CF6\u5D8B\u60BC\u6295\u642D\u6771\u6843\u68BC\u68DF\u76D7\u6DD8\u6E6F\u6D9B\u706F\u71C8\u5F53\u75D8\u7977\u7B49\u7B54\u7B52\u7CD6\u7D71\u5230"],["c6a1","\u8463\u8569\u85E4\u8A0E\u8B04\u8C46\u8E0F\u9003\u900F\u9419\u9676\u982D\u9A30\u95D8\u50CD\u52D5\u540C\u5802\u5C0E\u61A7\u649E\u6D1E\u77B3\u7AE5\u80F4\u8404\u9053\u9285\u5CE0\u9D07\u533F\u5F97\u5FB3\u6D9C\u7279\u7763\u79BF\u7BE4\u6BD2\u72EC\u8AAD\u6803\u6A61\u51F8\u7A81\u6934\u5C4A\u9CF6\u82EB\u5BC5\u9149\u701E\u5678\u5C6F\u60C7\u6566\u6C8C\u8C5A\u9041\u9813\u5451\u66C7\u920D\u5948\u90A3\u5185\u4E4D\u51EA\u8599\u8B0E\u7058\u637A\u934B\u6962\u99B4\u7E04\u7577\u5357\u6960\u8EDF\u96E3\u6C5D\u4E8C\u5C3C\u5F10\u8FE9\u5302\u8CD1\u8089\u8679\u5EFF\u65E5\u4E73\u5165"],["c7a1","\u5982\u5C3F\u97EE\u4EFB\u598A\u5FCD\u8A8D\u6FE1\u79B0\u7962\u5BE7\u8471\u732B\u71B1\u5E74\u5FF5\u637B\u649A\u71C3\u7C98\u4E43\u5EFC\u4E4B\u57DC\u56A2\u60A9\u6FC3\u7D0D\u80FD\u8133\u81BF\u8FB2\u8997\u86A4\u5DF4\u628A\u64AD\u8987\u6777\u6CE2\u6D3E\u7436\u7834\u5A46\u7F75\u82AD\u99AC\u4FF3\u5EC3\u62DD\u6392\u6557\u676F\u76C3\u724C\u80CC\u80BA\u8F29\u914D\u500D\u57F9\u5A92\u6885\u6973\u7164\u72FD\u8CB7\u58F2\u8CE0\u966A\u9019\u877F\u79E4\u77E7\u8429\u4F2F\u5265\u535A\u62CD\u67CF\u6CCA\u767D\u7B94\u7C95\u8236\u8584\u8FEB\u66DD\u6F20\u7206\u7E1B\u83AB\u99C1\u9EA6"],["c8a1","\u51FD\u7BB1\u7872\u7BB8\u8087\u7B48\u6AE8\u5E61\u808C\u7551\u7560\u516B\u9262\u6E8C\u767A\u9197\u9AEA\u4F10\u7F70\u629C\u7B4F\u95A5\u9CE9\u567A\u5859\u86E4\u96BC\u4F34\u5224\u534A\u53CD\u53DB\u5E06\u642C\u6591\u677F\u6C3E\u6C4E\u7248\u72AF\u73ED\u7554\u7E41\u822C\u85E9\u8CA9\u7BC4\u91C6\u7169\u9812\u98EF\u633D\u6669\u756A\u76E4\u78D0\u8543\u86EE\u532A\u5351\u5426\u5983\u5E87\u5F7C\u60B2\u6249\u6279\u62AB\u6590\u6BD4\u6CCC\u75B2\u76AE\u7891\u79D8\u7DCB\u7F77\u80A5\u88AB\u8AB9\u8CBB\u907F\u975E\u98DB\u6A0B\u7C38\u5099\u5C3E\u5FAE\u6787\u6BD8\u7435\u7709\u7F8E"],["c9a1","\u9F3B\u67CA\u7A17\u5339\u758B\u9AED\u5F66\u819D\u83F1\u8098\u5F3C\u5FC5\u7562\u7B46\u903C\u6867\u59EB\u5A9B\u7D10\u767E\u8B2C\u4FF5\u5F6A\u6A19\u6C37\u6F02\u74E2\u7968\u8868\u8A55\u8C79\u5EDF\u63CF\u75C5\u79D2\u82D7\u9328\u92F2\u849C\u86ED\u9C2D\u54C1\u5F6C\u658C\u6D5C\u7015\u8CA7\u8CD3\u983B\u654F\u74F6\u4E0D\u4ED8\u57E0\u592B\u5A66\u5BCC\u51A8\u5E03\u5E9C\u6016\u6276\u6577\u65A7\u666E\u6D6E\u7236\u7B26\u8150\u819A\u8299\u8B5C\u8CA0\u8CE6\u8D74\u961C\u9644\u4FAE\u64AB\u6B66\u821E\u8461\u856A\u90E8\u5C01\u6953\u98A8\u847A\u8557\u4F0F\u526F\u5FA9\u5E45\u670D"],["caa1","\u798F\u8179\u8907\u8986\u6DF5\u5F17\u6255\u6CB8\u4ECF\u7269\u9B92\u5206\u543B\u5674\u58B3\u61A4\u626E\u711A\u596E\u7C89\u7CDE\u7D1B\u96F0\u6587\u805E\u4E19\u4F75\u5175\u5840\u5E63\u5E73\u5F0A\u67C4\u4E26\u853D\u9589\u965B\u7C73\u9801\u50FB\u58C1\u7656\u78A7\u5225\u77A5\u8511\u7B86\u504F\u5909\u7247\u7BC7\u7DE8\u8FBA\u8FD4\u904D\u4FBF\u52C9\u5A29\u5F01\u97AD\u4FDD\u8217\u92EA\u5703\u6355\u6B69\u752B\u88DC\u8F14\u7A42\u52DF\u5893\u6155\u620A\u66AE\u6BCD\u7C3F\u83E9\u5023\u4FF8\u5305\u5446\u5831\u5949\u5B9D\u5CF0\u5CEF\u5D29\u5E96\u62B1\u6367\u653E\u65B9\u670B"],["cba1","\u6CD5\u6CE1\u70F9\u7832\u7E2B\u80DE\u82B3\u840C\u84EC\u8702\u8912\u8A2A\u8C4A\u90A6\u92D2\u98FD\u9CF3\u9D6C\u4E4F\u4EA1\u508D\u5256\u574A\u59A8\u5E3D\u5FD8\u5FD9\u623F\u66B4\u671B\u67D0\u68D2\u5192\u7D21\u80AA\u81A8\u8B00\u8C8C\u8CBF\u927E\u9632\u5420\u982C\u5317\u50D5\u535C\u58A8\u64B2\u6734\u7267\u7766\u7A46\u91E6\u52C3\u6CA1\u6B86\u5800\u5E4C\u5954\u672C\u7FFB\u51E1\u76C6\u6469\u78E8\u9B54\u9EBB\u57CB\u59B9\u6627\u679A\u6BCE\u54E9\u69D9\u5E55\u819C\u6795\u9BAA\u67FE\u9C52\u685D\u4EA6\u4FE3\u53C8\u62B9\u672B\u6CAB\u8FC4\u4FAD\u7E6D\u9EBF\u4E07\u6162\u6E80"],["cca1","\u6F2B\u8513\u5473\u672A\u9B45\u5DF3\u7B95\u5CAC\u5BC6\u871C\u6E4A\u84D1\u7A14\u8108\u5999\u7C8D\u6C11\u7720\u52D9\u5922\u7121\u725F\u77DB\u9727\u9D61\u690B\u5A7F\u5A18\u51A5\u540D\u547D\u660E\u76DF\u8FF7\u9298\u9CF4\u59EA\u725D\u6EC5\u514D\u68C9\u7DBF\u7DEC\u9762\u9EBA\u6478\u6A21\u8302\u5984\u5B5F\u6BDB\u731B\u76F2\u7DB2\u8017\u8499\u5132\u6728\u9ED9\u76EE\u6762\u52FF\u9905\u5C24\u623B\u7C7E\u8CB0\u554F\u60B6\u7D0B\u9580\u5301\u4E5F\u51B6\u591C\u723A\u8036\u91CE\u5F25\u77E2\u5384\u5F79\u7D04\u85AC\u8A33\u8E8D\u9756\u67F3\u85AE\u9453\u6109\u6108\u6CB9\u7652"],["cda1","\u8AED\u8F38\u552F\u4F51\u512A\u52C7\u53CB\u5BA5\u5E7D\u60A0\u6182\u63D6\u6709\u67DA\u6E67\u6D8C\u7336\u7337\u7531\u7950\u88D5\u8A98\u904A\u9091\u90F5\u96C4\u878D\u5915\u4E88\u4F59\u4E0E\u8A89\u8F3F\u9810\u50AD\u5E7C\u5996\u5BB9\u5EB8\u63DA\u63FA\u64C1\u66DC\u694A\u69D8\u6D0B\u6EB6\u7194\u7528\u7AAF\u7F8A\u8000\u8449\u84C9\u8981\u8B21\u8E0A\u9065\u967D\u990A\u617E\u6291\u6B32\u6C83\u6D74\u7FCC\u7FFC\u6DC0\u7F85\u87BA\u88F8\u6765\u83B1\u983C\u96F7\u6D1B\u7D61\u843D\u916A\u4E71\u5375\u5D50\u6B04\u6FEB\u85CD\u862D\u89A7\u5229\u540F\u5C65\u674E\u68A8\u7406\u7483"],["cea1","\u75E2\u88CF\u88E1\u91CC\u96E2\u9678\u5F8B\u7387\u7ACB\u844E\u63A0\u7565\u5289\u6D41\u6E9C\u7409\u7559\u786B\u7C92\u9686\u7ADC\u9F8D\u4FB6\u616E\u65C5\u865C\u4E86\u4EAE\u50DA\u4E21\u51CC\u5BEE\u6599\u6881\u6DBC\u731F\u7642\u77AD\u7A1C\u7CE7\u826F\u8AD2\u907C\u91CF\u9675\u9818\u529B\u7DD1\u502B\u5398\u6797\u6DCB\u71D0\u7433\u81E8\u8F2A\u96A3\u9C57\u9E9F\u7460\u5841\u6D99\u7D2F\u985E\u4EE4\u4F36\u4F8B\u51B7\u52B1\u5DBA\u601C\u73B2\u793C\u82D3\u9234\u96B7\u96F6\u970A\u9E97\u9F62\u66A6\u6B74\u5217\u52A3\u70C8\u88C2\u5EC9\u604B\u6190\u6F23\u7149\u7C3E\u7DF4\u806F"],["cfa1","\u84EE\u9023\u932C\u5442\u9B6F\u6AD3\u7089\u8CC2\u8DEF\u9732\u52B4\u5A41\u5ECA\u5F04\u6717\u697C\u6994\u6D6A\u6F0F\u7262\u72FC\u7BED\u8001\u807E\u874B\u90CE\u516D\u9E93\u7984\u808B\u9332\u8AD6\u502D\u548C\u8A71\u6B6A\u8CC4\u8107\u60D1\u67A0\u9DF2\u4E99\u4E98\u9C10\u8A6B\u85C1\u8568\u6900\u6E7E\u7897\u8155"],["d0a1","\u5F0C\u4E10\u4E15\u4E2A\u4E31\u4E36\u4E3C\u4E3F\u4E42\u4E56\u4E58\u4E82\u4E85\u8C6B\u4E8A\u8212\u5F0D\u4E8E\u4E9E\u4E9F\u4EA0\u4EA2\u4EB0\u4EB3\u4EB6\u4ECE\u4ECD\u4EC4\u4EC6\u4EC2\u4ED7\u4EDE\u4EED\u4EDF\u4EF7\u4F09\u4F5A\u4F30\u4F5B\u4F5D\u4F57\u4F47\u4F76\u4F88\u4F8F\u4F98\u4F7B\u4F69\u4F70\u4F91\u4F6F\u4F86\u4F96\u5118\u4FD4\u4FDF\u4FCE\u4FD8\u4FDB\u4FD1\u4FDA\u4FD0\u4FE4\u4FE5\u501A\u5028\u5014\u502A\u5025\u5005\u4F1C\u4FF6\u5021\u5029\u502C\u4FFE\u4FEF\u5011\u5006\u5043\u5047\u6703\u5055\u5050\u5048\u505A\u5056\u506C\u5078\u5080\u509A\u5085\u50B4\u50B2"],["d1a1","\u50C9\u50CA\u50B3\u50C2\u50D6\u50DE\u50E5\u50ED\u50E3\u50EE\u50F9\u50F5\u5109\u5101\u5102\u5116\u5115\u5114\u511A\u5121\u513A\u5137\u513C\u513B\u513F\u5140\u5152\u514C\u5154\u5162\u7AF8\u5169\u516A\u516E\u5180\u5182\u56D8\u518C\u5189\u518F\u5191\u5193\u5195\u5196\u51A4\u51A6\u51A2\u51A9\u51AA\u51AB\u51B3\u51B1\u51B2\u51B0\u51B5\u51BD\u51C5\u51C9\u51DB\u51E0\u8655\u51E9\u51ED\u51F0\u51F5\u51FE\u5204\u520B\u5214\u520E\u5227\u522A\u522E\u5233\u5239\u524F\u5244\u524B\u524C\u525E\u5254\u526A\u5274\u5269\u5273\u527F\u527D\u528D\u5294\u5292\u5271\u5288\u5291\u8FA8"],["d2a1","\u8FA7\u52AC\u52AD\u52BC\u52B5\u52C1\u52CD\u52D7\u52DE\u52E3\u52E6\u98ED\u52E0\u52F3\u52F5\u52F8\u52F9\u5306\u5308\u7538\u530D\u5310\u530F\u5315\u531A\u5323\u532F\u5331\u5333\u5338\u5340\u5346\u5345\u4E17\u5349\u534D\u51D6\u535E\u5369\u536E\u5918\u537B\u5377\u5382\u5396\u53A0\u53A6\u53A5\u53AE\u53B0\u53B6\u53C3\u7C12\u96D9\u53DF\u66FC\u71EE\u53EE\u53E8\u53ED\u53FA\u5401\u543D\u5440\u542C\u542D\u543C\u542E\u5436\u5429\u541D\u544E\u548F\u5475\u548E\u545F\u5471\u5477\u5470\u5492\u547B\u5480\u5476\u5484\u5490\u5486\u54C7\u54A2\u54B8\u54A5\u54AC\u54C4\u54C8\u54A8"],["d3a1","\u54AB\u54C2\u54A4\u54BE\u54BC\u54D8\u54E5\u54E6\u550F\u5514\u54FD\u54EE\u54ED\u54FA\u54E2\u5539\u5540\u5563\u554C\u552E\u555C\u5545\u5556\u5557\u5538\u5533\u555D\u5599\u5580\u54AF\u558A\u559F\u557B\u557E\u5598\u559E\u55AE\u557C\u5583\u55A9\u5587\u55A8\u55DA\u55C5\u55DF\u55C4\u55DC\u55E4\u55D4\u5614\u55F7\u5616\u55FE\u55FD\u561B\u55F9\u564E\u5650\u71DF\u5634\u5636\u5632\u5638\u566B\u5664\u562F\u566C\u566A\u5686\u5680\u568A\u56A0\u5694\u568F\u56A5\u56AE\u56B6\u56B4\u56C2\u56BC\u56C1\u56C3\u56C0\u56C8\u56CE\u56D1\u56D3\u56D7\u56EE\u56F9\u5700\u56FF\u5704\u5709"],["d4a1","\u5708\u570B\u570D\u5713\u5718\u5716\u55C7\u571C\u5726\u5737\u5738\u574E\u573B\u5740\u574F\u5769\u57C0\u5788\u5761\u577F\u5789\u5793\u57A0\u57B3\u57A4\u57AA\u57B0\u57C3\u57C6\u57D4\u57D2\u57D3\u580A\u57D6\u57E3\u580B\u5819\u581D\u5872\u5821\u5862\u584B\u5870\u6BC0\u5852\u583D\u5879\u5885\u58B9\u589F\u58AB\u58BA\u58DE\u58BB\u58B8\u58AE\u58C5\u58D3\u58D1\u58D7\u58D9\u58D8\u58E5\u58DC\u58E4\u58DF\u58EF\u58FA\u58F9\u58FB\u58FC\u58FD\u5902\u590A\u5910\u591B\u68A6\u5925\u592C\u592D\u5932\u5938\u593E\u7AD2\u5955\u5950\u594E\u595A\u5958\u5962\u5960\u5967\u596C\u5969"],["d5a1","\u5978\u5981\u599D\u4F5E\u4FAB\u59A3\u59B2\u59C6\u59E8\u59DC\u598D\u59D9\u59DA\u5A25\u5A1F\u5A11\u5A1C\u5A09\u5A1A\u5A40\u5A6C\u5A49\u5A35\u5A36\u5A62\u5A6A\u5A9A\u5ABC\u5ABE\u5ACB\u5AC2\u5ABD\u5AE3\u5AD7\u5AE6\u5AE9\u5AD6\u5AFA\u5AFB\u5B0C\u5B0B\u5B16\u5B32\u5AD0\u5B2A\u5B36\u5B3E\u5B43\u5B45\u5B40\u5B51\u5B55\u5B5A\u5B5B\u5B65\u5B69\u5B70\u5B73\u5B75\u5B78\u6588\u5B7A\u5B80\u5B83\u5BA6\u5BB8\u5BC3\u5BC7\u5BC9\u5BD4\u5BD0\u5BE4\u5BE6\u5BE2\u5BDE\u5BE5\u5BEB\u5BF0\u5BF6\u5BF3\u5C05\u5C07\u5C08\u5C0D\u5C13\u5C20\u5C22\u5C28\u5C38\u5C39\u5C41\u5C46\u5C4E\u5C53"],["d6a1","\u5C50\u5C4F\u5B71\u5C6C\u5C6E\u4E62\u5C76\u5C79\u5C8C\u5C91\u5C94\u599B\u5CAB\u5CBB\u5CB6\u5CBC\u5CB7\u5CC5\u5CBE\u5CC7\u5CD9\u5CE9\u5CFD\u5CFA\u5CED\u5D8C\u5CEA\u5D0B\u5D15\u5D17\u5D5C\u5D1F\u5D1B\u5D11\u5D14\u5D22\u5D1A\u5D19\u5D18\u5D4C\u5D52\u5D4E\u5D4B\u5D6C\u5D73\u5D76\u5D87\u5D84\u5D82\u5DA2\u5D9D\u5DAC\u5DAE\u5DBD\u5D90\u5DB7\u5DBC\u5DC9\u5DCD\u5DD3\u5DD2\u5DD6\u5DDB\u5DEB\u5DF2\u5DF5\u5E0B\u5E1A\u5E19\u5E11\u5E1B\u5E36\u5E37\u5E44\u5E43\u5E40\u5E4E\u5E57\u5E54\u5E5F\u5E62\u5E64\u5E47\u5E75\u5E76\u5E7A\u9EBC\u5E7F\u5EA0\u5EC1\u5EC2\u5EC8\u5ED0\u5ECF"],["d7a1","\u5ED6\u5EE3\u5EDD\u5EDA\u5EDB\u5EE2\u5EE1\u5EE8\u5EE9\u5EEC\u5EF1\u5EF3\u5EF0\u5EF4\u5EF8\u5EFE\u5F03\u5F09\u5F5D\u5F5C\u5F0B\u5F11\u5F16\u5F29\u5F2D\u5F38\u5F41\u5F48\u5F4C\u5F4E\u5F2F\u5F51\u5F56\u5F57\u5F59\u5F61\u5F6D\u5F73\u5F77\u5F83\u5F82\u5F7F\u5F8A\u5F88\u5F91\u5F87\u5F9E\u5F99\u5F98\u5FA0\u5FA8\u5FAD\u5FBC\u5FD6\u5FFB\u5FE4\u5FF8\u5FF1\u5FDD\u60B3\u5FFF\u6021\u6060\u6019\u6010\u6029\u600E\u6031\u601B\u6015\u602B\u6026\u600F\u603A\u605A\u6041\u606A\u6077\u605F\u604A\u6046\u604D\u6063\u6043\u6064\u6042\u606C\u606B\u6059\u6081\u608D\u60E7\u6083\u609A"],["d8a1","\u6084\u609B\u6096\u6097\u6092\u60A7\u608B\u60E1\u60B8\u60E0\u60D3\u60B4\u5FF0\u60BD\u60C6\u60B5\u60D8\u614D\u6115\u6106\u60F6\u60F7\u6100\u60F4\u60FA\u6103\u6121\u60FB\u60F1\u610D\u610E\u6147\u613E\u6128\u6127\u614A\u613F\u613C\u612C\u6134\u613D\u6142\u6144\u6173\u6177\u6158\u6159\u615A\u616B\u6174\u616F\u6165\u6171\u615F\u615D\u6153\u6175\u6199\u6196\u6187\u61AC\u6194\u619A\u618A\u6191\u61AB\u61AE\u61CC\u61CA\u61C9\u61F7\u61C8\u61C3\u61C6\u61BA\u61CB\u7F79\u61CD\u61E6\u61E3\u61F6\u61FA\u61F4\u61FF\u61FD\u61FC\u61FE\u6200\u6208\u6209\u620D\u620C\u6214\u621B"],["d9a1","\u621E\u6221\u622A\u622E\u6230\u6232\u6233\u6241\u624E\u625E\u6263\u625B\u6260\u6268\u627C\u6282\u6289\u627E\u6292\u6293\u6296\u62D4\u6283\u6294\u62D7\u62D1\u62BB\u62CF\u62FF\u62C6\u64D4\u62C8\u62DC\u62CC\u62CA\u62C2\u62C7\u629B\u62C9\u630C\u62EE\u62F1\u6327\u6302\u6308\u62EF\u62F5\u6350\u633E\u634D\u641C\u634F\u6396\u638E\u6380\u63AB\u6376\u63A3\u638F\u6389\u639F\u63B5\u636B\u6369\u63BE\u63E9\u63C0\u63C6\u63E3\u63C9\u63D2\u63F6\u63C4\u6416\u6434\u6406\u6413\u6426\u6436\u651D\u6417\u6428\u640F\u6467\u646F\u6476\u644E\u652A\u6495\u6493\u64A5\u64A9\u6488\u64BC"],["daa1","\u64DA\u64D2\u64C5\u64C7\u64BB\u64D8\u64C2\u64F1\u64E7\u8209\u64E0\u64E1\u62AC\u64E3\u64EF\u652C\u64F6\u64F4\u64F2\u64FA\u6500\u64FD\u6518\u651C\u6505\u6524\u6523\u652B\u6534\u6535\u6537\u6536\u6538\u754B\u6548\u6556\u6555\u654D\u6558\u655E\u655D\u6572\u6578\u6582\u6583\u8B8A\u659B\u659F\u65AB\u65B7\u65C3\u65C6\u65C1\u65C4\u65CC\u65D2\u65DB\u65D9\u65E0\u65E1\u65F1\u6772\u660A\u6603\u65FB\u6773\u6635\u6636\u6634\u661C\u664F\u6644\u6649\u6641\u665E\u665D\u6664\u6667\u6668\u665F\u6662\u6670\u6683\u6688\u668E\u6689\u6684\u6698\u669D\u66C1\u66B9\u66C9\u66BE\u66BC"],["dba1","\u66C4\u66B8\u66D6\u66DA\u66E0\u663F\u66E6\u66E9\u66F0\u66F5\u66F7\u670F\u6716\u671E\u6726\u6727\u9738\u672E\u673F\u6736\u6741\u6738\u6737\u6746\u675E\u6760\u6759\u6763\u6764\u6789\u6770\u67A9\u677C\u676A\u678C\u678B\u67A6\u67A1\u6785\u67B7\u67EF\u67B4\u67EC\u67B3\u67E9\u67B8\u67E4\u67DE\u67DD\u67E2\u67EE\u67B9\u67CE\u67C6\u67E7\u6A9C\u681E\u6846\u6829\u6840\u684D\u6832\u684E\u68B3\u682B\u6859\u6863\u6877\u687F\u689F\u688F\u68AD\u6894\u689D\u689B\u6883\u6AAE\u68B9\u6874\u68B5\u68A0\u68BA\u690F\u688D\u687E\u6901\u68CA\u6908\u68D8\u6922\u6926\u68E1\u690C\u68CD"],["dca1","\u68D4\u68E7\u68D5\u6936\u6912\u6904\u68D7\u68E3\u6925\u68F9\u68E0\u68EF\u6928\u692A\u691A\u6923\u6921\u68C6\u6979\u6977\u695C\u6978\u696B\u6954\u697E\u696E\u6939\u6974\u693D\u6959\u6930\u6961\u695E\u695D\u6981\u696A\u69B2\u69AE\u69D0\u69BF\u69C1\u69D3\u69BE\u69CE\u5BE8\u69CA\u69DD\u69BB\u69C3\u69A7\u6A2E\u6991\u69A0\u699C\u6995\u69B4\u69DE\u69E8\u6A02\u6A1B\u69FF\u6B0A\u69F9\u69F2\u69E7\u6A05\u69B1\u6A1E\u69ED\u6A14\u69EB\u6A0A\u6A12\u6AC1\u6A23\u6A13\u6A44\u6A0C\u6A72\u6A36\u6A78\u6A47\u6A62\u6A59\u6A66\u6A48\u6A38\u6A22\u6A90\u6A8D\u6AA0\u6A84\u6AA2\u6AA3"],["dda1","\u6A97\u8617\u6ABB\u6AC3\u6AC2\u6AB8\u6AB3\u6AAC\u6ADE\u6AD1\u6ADF\u6AAA\u6ADA\u6AEA\u6AFB\u6B05\u8616\u6AFA\u6B12\u6B16\u9B31\u6B1F\u6B38\u6B37\u76DC\u6B39\u98EE\u6B47\u6B43\u6B49\u6B50\u6B59\u6B54\u6B5B\u6B5F\u6B61\u6B78\u6B79\u6B7F\u6B80\u6B84\u6B83\u6B8D\u6B98\u6B95\u6B9E\u6BA4\u6BAA\u6BAB\u6BAF\u6BB2\u6BB1\u6BB3\u6BB7\u6BBC\u6BC6\u6BCB\u6BD3\u6BDF\u6BEC\u6BEB\u6BF3\u6BEF\u9EBE\u6C08\u6C13\u6C14\u6C1B\u6C24\u6C23\u6C5E\u6C55\u6C62\u6C6A\u6C82\u6C8D\u6C9A\u6C81\u6C9B\u6C7E\u6C68\u6C73\u6C92\u6C90\u6CC4\u6CF1\u6CD3\u6CBD\u6CD7\u6CC5\u6CDD\u6CAE\u6CB1\u6CBE"],["dea1","\u6CBA\u6CDB\u6CEF\u6CD9\u6CEA\u6D1F\u884D\u6D36\u6D2B\u6D3D\u6D38\u6D19\u6D35\u6D33\u6D12\u6D0C\u6D63\u6D93\u6D64\u6D5A\u6D79\u6D59\u6D8E\u6D95\u6FE4\u6D85\u6DF9\u6E15\u6E0A\u6DB5\u6DC7\u6DE6\u6DB8\u6DC6\u6DEC\u6DDE\u6DCC\u6DE8\u6DD2\u6DC5\u6DFA\u6DD9\u6DE4\u6DD5\u6DEA\u6DEE\u6E2D\u6E6E\u6E2E\u6E19\u6E72\u6E5F\u6E3E\u6E23\u6E6B\u6E2B\u6E76\u6E4D\u6E1F\u6E43\u6E3A\u6E4E\u6E24\u6EFF\u6E1D\u6E38\u6E82\u6EAA\u6E98\u6EC9\u6EB7\u6ED3\u6EBD\u6EAF\u6EC4\u6EB2\u6ED4\u6ED5\u6E8F\u6EA5\u6EC2\u6E9F\u6F41\u6F11\u704C\u6EEC\u6EF8\u6EFE\u6F3F\u6EF2\u6F31\u6EEF\u6F32\u6ECC"],["dfa1","\u6F3E\u6F13\u6EF7\u6F86\u6F7A\u6F78\u6F81\u6F80\u6F6F\u6F5B\u6FF3\u6F6D\u6F82\u6F7C\u6F58\u6F8E\u6F91\u6FC2\u6F66\u6FB3\u6FA3\u6FA1\u6FA4\u6FB9\u6FC6\u6FAA\u6FDF\u6FD5\u6FEC\u6FD4\u6FD8\u6FF1\u6FEE\u6FDB\u7009\u700B\u6FFA\u7011\u7001\u700F\u6FFE\u701B\u701A\u6F74\u701D\u7018\u701F\u7030\u703E\u7032\u7051\u7063\u7099\u7092\u70AF\u70F1\u70AC\u70B8\u70B3\u70AE\u70DF\u70CB\u70DD\u70D9\u7109\u70FD\u711C\u7119\u7165\u7155\u7188\u7166\u7162\u714C\u7156\u716C\u718F\u71FB\u7184\u7195\u71A8\u71AC\u71D7\u71B9\u71BE\u71D2\u71C9\u71D4\u71CE\u71E0\u71EC\u71E7\u71F5\u71FC"],["e0a1","\u71F9\u71FF\u720D\u7210\u721B\u7228\u722D\u722C\u7230\u7232\u723B\u723C\u723F\u7240\u7246\u724B\u7258\u7274\u727E\u7282\u7281\u7287\u7292\u7296\u72A2\u72A7\u72B9\u72B2\u72C3\u72C6\u72C4\u72CE\u72D2\u72E2\u72E0\u72E1\u72F9\u72F7\u500F\u7317\u730A\u731C\u7316\u731D\u7334\u732F\u7329\u7325\u733E\u734E\u734F\u9ED8\u7357\u736A\u7368\u7370\u7378\u7375\u737B\u737A\u73C8\u73B3\u73CE\u73BB\u73C0\u73E5\u73EE\u73DE\u74A2\u7405\u746F\u7425\u73F8\u7432\u743A\u7455\u743F\u745F\u7459\u7441\u745C\u7469\u7470\u7463\u746A\u7476\u747E\u748B\u749E\u74A7\u74CA\u74CF\u74D4\u73F1"],["e1a1","\u74E0\u74E3\u74E7\u74E9\u74EE\u74F2\u74F0\u74F1\u74F8\u74F7\u7504\u7503\u7505\u750C\u750E\u750D\u7515\u7513\u751E\u7526\u752C\u753C\u7544\u754D\u754A\u7549\u755B\u7546\u755A\u7569\u7564\u7567\u756B\u756D\u7578\u7576\u7586\u7587\u7574\u758A\u7589\u7582\u7594\u759A\u759D\u75A5\u75A3\u75C2\u75B3\u75C3\u75B5\u75BD\u75B8\u75BC\u75B1\u75CD\u75CA\u75D2\u75D9\u75E3\u75DE\u75FE\u75FF\u75FC\u7601\u75F0\u75FA\u75F2\u75F3\u760B\u760D\u7609\u761F\u7627\u7620\u7621\u7622\u7624\u7634\u7630\u763B\u7647\u7648\u7646\u765C\u7658\u7661\u7662\u7668\u7669\u766A\u7667\u766C\u7670"],["e2a1","\u7672\u7676\u7678\u767C\u7680\u7683\u7688\u768B\u768E\u7696\u7693\u7699\u769A\u76B0\u76B4\u76B8\u76B9\u76BA\u76C2\u76CD\u76D6\u76D2\u76DE\u76E1\u76E5\u76E7\u76EA\u862F\u76FB\u7708\u7707\u7704\u7729\u7724\u771E\u7725\u7726\u771B\u7737\u7738\u7747\u775A\u7768\u776B\u775B\u7765\u777F\u777E\u7779\u778E\u778B\u7791\u77A0\u779E\u77B0\u77B6\u77B9\u77BF\u77BC\u77BD\u77BB\u77C7\u77CD\u77D7\u77DA\u77DC\u77E3\u77EE\u77FC\u780C\u7812\u7926\u7820\u792A\u7845\u788E\u7874\u7886\u787C\u789A\u788C\u78A3\u78B5\u78AA\u78AF\u78D1\u78C6\u78CB\u78D4\u78BE\u78BC\u78C5\u78CA\u78EC"],["e3a1","\u78E7\u78DA\u78FD\u78F4\u7907\u7912\u7911\u7919\u792C\u792B\u7940\u7960\u7957\u795F\u795A\u7955\u7953\u797A\u797F\u798A\u799D\u79A7\u9F4B\u79AA\u79AE\u79B3\u79B9\u79BA\u79C9\u79D5\u79E7\u79EC\u79E1\u79E3\u7A08\u7A0D\u7A18\u7A19\u7A20\u7A1F\u7980\u7A31\u7A3B\u7A3E\u7A37\u7A43\u7A57\u7A49\u7A61\u7A62\u7A69\u9F9D\u7A70\u7A79\u7A7D\u7A88\u7A97\u7A95\u7A98\u7A96\u7AA9\u7AC8\u7AB0\u7AB6\u7AC5\u7AC4\u7ABF\u9083\u7AC7\u7ACA\u7ACD\u7ACF\u7AD5\u7AD3\u7AD9\u7ADA\u7ADD\u7AE1\u7AE2\u7AE6\u7AED\u7AF0\u7B02\u7B0F\u7B0A\u7B06\u7B33\u7B18\u7B19\u7B1E\u7B35\u7B28\u7B36\u7B50"],["e4a1","\u7B7A\u7B04\u7B4D\u7B0B\u7B4C\u7B45\u7B75\u7B65\u7B74\u7B67\u7B70\u7B71\u7B6C\u7B6E\u7B9D\u7B98\u7B9F\u7B8D\u7B9C\u7B9A\u7B8B\u7B92\u7B8F\u7B5D\u7B99\u7BCB\u7BC1\u7BCC\u7BCF\u7BB4\u7BC6\u7BDD\u7BE9\u7C11\u7C14\u7BE6\u7BE5\u7C60\u7C00\u7C07\u7C13\u7BF3\u7BF7\u7C17\u7C0D\u7BF6\u7C23\u7C27\u7C2A\u7C1F\u7C37\u7C2B\u7C3D\u7C4C\u7C43\u7C54\u7C4F\u7C40\u7C50\u7C58\u7C5F\u7C64\u7C56\u7C65\u7C6C\u7C75\u7C83\u7C90\u7CA4\u7CAD\u7CA2\u7CAB\u7CA1\u7CA8\u7CB3\u7CB2\u7CB1\u7CAE\u7CB9\u7CBD\u7CC0\u7CC5\u7CC2\u7CD8\u7CD2\u7CDC\u7CE2\u9B3B\u7CEF\u7CF2\u7CF4\u7CF6\u7CFA\u7D06"],["e5a1","\u7D02\u7D1C\u7D15\u7D0A\u7D45\u7D4B\u7D2E\u7D32\u7D3F\u7D35\u7D46\u7D73\u7D56\u7D4E\u7D72\u7D68\u7D6E\u7D4F\u7D63\u7D93\u7D89\u7D5B\u7D8F\u7D7D\u7D9B\u7DBA\u7DAE\u7DA3\u7DB5\u7DC7\u7DBD\u7DAB\u7E3D\u7DA2\u7DAF\u7DDC\u7DB8\u7D9F\u7DB0\u7DD8\u7DDD\u7DE4\u7DDE\u7DFB\u7DF2\u7DE1\u7E05\u7E0A\u7E23\u7E21\u7E12\u7E31\u7E1F\u7E09\u7E0B\u7E22\u7E46\u7E66\u7E3B\u7E35\u7E39\u7E43\u7E37\u7E32\u7E3A\u7E67\u7E5D\u7E56\u7E5E\u7E59\u7E5A\u7E79\u7E6A\u7E69\u7E7C\u7E7B\u7E83\u7DD5\u7E7D\u8FAE\u7E7F\u7E88\u7E89\u7E8C\u7E92\u7E90\u7E93\u7E94\u7E96\u7E8E\u7E9B\u7E9C\u7F38\u7F3A"],["e6a1","\u7F45\u7F4C\u7F4D\u7F4E\u7F50\u7F51\u7F55\u7F54\u7F58\u7F5F\u7F60\u7F68\u7F69\u7F67\u7F78\u7F82\u7F86\u7F83\u7F88\u7F87\u7F8C\u7F94\u7F9E\u7F9D\u7F9A\u7FA3\u7FAF\u7FB2\u7FB9\u7FAE\u7FB6\u7FB8\u8B71\u7FC5\u7FC6\u7FCA\u7FD5\u7FD4\u7FE1\u7FE6\u7FE9\u7FF3\u7FF9\u98DC\u8006\u8004\u800B\u8012\u8018\u8019\u801C\u8021\u8028\u803F\u803B\u804A\u8046\u8052\u8058\u805A\u805F\u8062\u8068\u8073\u8072\u8070\u8076\u8079\u807D\u807F\u8084\u8086\u8085\u809B\u8093\u809A\u80AD\u5190\u80AC\u80DB\u80E5\u80D9\u80DD\u80C4\u80DA\u80D6\u8109\u80EF\u80F1\u811B\u8129\u8123\u812F\u814B"],["e7a1","\u968B\u8146\u813E\u8153\u8151\u80FC\u8171\u816E\u8165\u8166\u8174\u8183\u8188\u818A\u8180\u8182\u81A0\u8195\u81A4\u81A3\u815F\u8193\u81A9\u81B0\u81B5\u81BE\u81B8\u81BD\u81C0\u81C2\u81BA\u81C9\u81CD\u81D1\u81D9\u81D8\u81C8\u81DA\u81DF\u81E0\u81E7\u81FA\u81FB\u81FE\u8201\u8202\u8205\u8207\u820A\u820D\u8210\u8216\u8229\u822B\u8238\u8233\u8240\u8259\u8258\u825D\u825A\u825F\u8264\u8262\u8268\u826A\u826B\u822E\u8271\u8277\u8278\u827E\u828D\u8292\u82AB\u829F\u82BB\u82AC\u82E1\u82E3\u82DF\u82D2\u82F4\u82F3\u82FA\u8393\u8303\u82FB\u82F9\u82DE\u8306\u82DC\u8309\u82D9"],["e8a1","\u8335\u8334\u8316\u8332\u8331\u8340\u8339\u8350\u8345\u832F\u832B\u8317\u8318\u8385\u839A\u83AA\u839F\u83A2\u8396\u8323\u838E\u8387\u838A\u837C\u83B5\u8373\u8375\u83A0\u8389\u83A8\u83F4\u8413\u83EB\u83CE\u83FD\u8403\u83D8\u840B\u83C1\u83F7\u8407\u83E0\u83F2\u840D\u8422\u8420\u83BD\u8438\u8506\u83FB\u846D\u842A\u843C\u855A\u8484\u8477\u846B\u84AD\u846E\u8482\u8469\u8446\u842C\u846F\u8479\u8435\u84CA\u8462\u84B9\u84BF\u849F\u84D9\u84CD\u84BB\u84DA\u84D0\u84C1\u84C6\u84D6\u84A1\u8521\u84FF\u84F4\u8517\u8518\u852C\u851F\u8515\u8514\u84FC\u8540\u8563\u8558\u8548"],["e9a1","\u8541\u8602\u854B\u8555\u8580\u85A4\u8588\u8591\u858A\u85A8\u856D\u8594\u859B\u85EA\u8587\u859C\u8577\u857E\u8590\u85C9\u85BA\u85CF\u85B9\u85D0\u85D5\u85DD\u85E5\u85DC\u85F9\u860A\u8613\u860B\u85FE\u85FA\u8606\u8622\u861A\u8630\u863F\u864D\u4E55\u8654\u865F\u8667\u8671\u8693\u86A3\u86A9\u86AA\u868B\u868C\u86B6\u86AF\u86C4\u86C6\u86B0\u86C9\u8823\u86AB\u86D4\u86DE\u86E9\u86EC\u86DF\u86DB\u86EF\u8712\u8706\u8708\u8700\u8703\u86FB\u8711\u8709\u870D\u86F9\u870A\u8734\u873F\u8737\u873B\u8725\u8729\u871A\u8760\u875F\u8778\u874C\u874E\u8774\u8757\u8768\u876E\u8759"],["eaa1","\u8753\u8763\u876A\u8805\u87A2\u879F\u8782\u87AF\u87CB\u87BD\u87C0\u87D0\u96D6\u87AB\u87C4\u87B3\u87C7\u87C6\u87BB\u87EF\u87F2\u87E0\u880F\u880D\u87FE\u87F6\u87F7\u880E\u87D2\u8811\u8816\u8815\u8822\u8821\u8831\u8836\u8839\u8827\u883B\u8844\u8842\u8852\u8859\u885E\u8862\u886B\u8881\u887E\u889E\u8875\u887D\u88B5\u8872\u8882\u8897\u8892\u88AE\u8899\u88A2\u888D\u88A4\u88B0\u88BF\u88B1\u88C3\u88C4\u88D4\u88D8\u88D9\u88DD\u88F9\u8902\u88FC\u88F4\u88E8\u88F2\u8904\u890C\u890A\u8913\u8943\u891E\u8925\u892A\u892B\u8941\u8944\u893B\u8936\u8938\u894C\u891D\u8960\u895E"],["eba1","\u8966\u8964\u896D\u896A\u896F\u8974\u8977\u897E\u8983\u8988\u898A\u8993\u8998\u89A1\u89A9\u89A6\u89AC\u89AF\u89B2\u89BA\u89BD\u89BF\u89C0\u89DA\u89DC\u89DD\u89E7\u89F4\u89F8\u8A03\u8A16\u8A10\u8A0C\u8A1B\u8A1D\u8A25\u8A36\u8A41\u8A5B\u8A52\u8A46\u8A48\u8A7C\u8A6D\u8A6C\u8A62\u8A85\u8A82\u8A84\u8AA8\u8AA1\u8A91\u8AA5\u8AA6\u8A9A\u8AA3\u8AC4\u8ACD\u8AC2\u8ADA\u8AEB\u8AF3\u8AE7\u8AE4\u8AF1\u8B14\u8AE0\u8AE2\u8AF7\u8ADE\u8ADB\u8B0C\u8B07\u8B1A\u8AE1\u8B16\u8B10\u8B17\u8B20\u8B33\u97AB\u8B26\u8B2B\u8B3E\u8B28\u8B41\u8B4C\u8B4F\u8B4E\u8B49\u8B56\u8B5B\u8B5A\u8B6B"],["eca1","\u8B5F\u8B6C\u8B6F\u8B74\u8B7D\u8B80\u8B8C\u8B8E\u8B92\u8B93\u8B96\u8B99\u8B9A\u8C3A\u8C41\u8C3F\u8C48\u8C4C\u8C4E\u8C50\u8C55\u8C62\u8C6C\u8C78\u8C7A\u8C82\u8C89\u8C85\u8C8A\u8C8D\u8C8E\u8C94\u8C7C\u8C98\u621D\u8CAD\u8CAA\u8CBD\u8CB2\u8CB3\u8CAE\u8CB6\u8CC8\u8CC1\u8CE4\u8CE3\u8CDA\u8CFD\u8CFA\u8CFB\u8D04\u8D05\u8D0A\u8D07\u8D0F\u8D0D\u8D10\u9F4E\u8D13\u8CCD\u8D14\u8D16\u8D67\u8D6D\u8D71\u8D73\u8D81\u8D99\u8DC2\u8DBE\u8DBA\u8DCF\u8DDA\u8DD6\u8DCC\u8DDB\u8DCB\u8DEA\u8DEB\u8DDF\u8DE3\u8DFC\u8E08\u8E09\u8DFF\u8E1D\u8E1E\u8E10\u8E1F\u8E42\u8E35\u8E30\u8E34\u8E4A"],["eda1","\u8E47\u8E49\u8E4C\u8E50\u8E48\u8E59\u8E64\u8E60\u8E2A\u8E63\u8E55\u8E76\u8E72\u8E7C\u8E81\u8E87\u8E85\u8E84\u8E8B\u8E8A\u8E93\u8E91\u8E94\u8E99\u8EAA\u8EA1\u8EAC\u8EB0\u8EC6\u8EB1\u8EBE\u8EC5\u8EC8\u8ECB\u8EDB\u8EE3\u8EFC\u8EFB\u8EEB\u8EFE\u8F0A\u8F05\u8F15\u8F12\u8F19\u8F13\u8F1C\u8F1F\u8F1B\u8F0C\u8F26\u8F33\u8F3B\u8F39\u8F45\u8F42\u8F3E\u8F4C\u8F49\u8F46\u8F4E\u8F57\u8F5C\u8F62\u8F63\u8F64\u8F9C\u8F9F\u8FA3\u8FAD\u8FAF\u8FB7\u8FDA\u8FE5\u8FE2\u8FEA\u8FEF\u9087\u8FF4\u9005\u8FF9\u8FFA\u9011\u9015\u9021\u900D\u901E\u9016\u900B\u9027\u9036\u9035\u9039\u8FF8"],["eea1","\u904F\u9050\u9051\u9052\u900E\u9049\u903E\u9056\u9058\u905E\u9068\u906F\u9076\u96A8\u9072\u9082\u907D\u9081\u9080\u908A\u9089\u908F\u90A8\u90AF\u90B1\u90B5\u90E2\u90E4\u6248\u90DB\u9102\u9112\u9119\u9132\u9130\u914A\u9156\u9158\u9163\u9165\u9169\u9173\u9172\u918B\u9189\u9182\u91A2\u91AB\u91AF\u91AA\u91B5\u91B4\u91BA\u91C0\u91C1\u91C9\u91CB\u91D0\u91D6\u91DF\u91E1\u91DB\u91FC\u91F5\u91F6\u921E\u91FF\u9214\u922C\u9215\u9211\u925E\u9257\u9245\u9249\u9264\u9248\u9295\u923F\u924B\u9250\u929C\u9296\u9293\u929B\u925A\u92CF\u92B9\u92B7\u92E9\u930F\u92FA\u9344\u932E"],["efa1","\u9319\u9322\u931A\u9323\u933A\u9335\u933B\u935C\u9360\u937C\u936E\u9356\u93B0\u93AC\u93AD\u9394\u93B9\u93D6\u93D7\u93E8\u93E5\u93D8\u93C3\u93DD\u93D0\u93C8\u93E4\u941A\u9414\u9413\u9403\u9407\u9410\u9436\u942B\u9435\u9421\u943A\u9441\u9452\u9444\u945B\u9460\u9462\u945E\u946A\u9229\u9470\u9475\u9477\u947D\u945A\u947C\u947E\u9481\u947F\u9582\u9587\u958A\u9594\u9596\u9598\u9599\u95A0\u95A8\u95A7\u95AD\u95BC\u95BB\u95B9\u95BE\u95CA\u6FF6\u95C3\u95CD\u95CC\u95D5\u95D4\u95D6\u95DC\u95E1\u95E5\u95E2\u9621\u9628\u962E\u962F\u9642\u964C\u964F\u964B\u9677\u965C\u965E"],["f0a1","\u965D\u965F\u9666\u9672\u966C\u968D\u9698\u9695\u9697\u96AA\u96A7\u96B1\u96B2\u96B0\u96B4\u96B6\u96B8\u96B9\u96CE\u96CB\u96C9\u96CD\u894D\u96DC\u970D\u96D5\u96F9\u9704\u9706\u9708\u9713\u970E\u9711\u970F\u9716\u9719\u9724\u972A\u9730\u9739\u973D\u973E\u9744\u9746\u9748\u9742\u9749\u975C\u9760\u9764\u9766\u9768\u52D2\u976B\u9771\u9779\u9785\u977C\u9781\u977A\u9786\u978B\u978F\u9790\u979C\u97A8\u97A6\u97A3\u97B3\u97B4\u97C3\u97C6\u97C8\u97CB\u97DC\u97ED\u9F4F\u97F2\u7ADF\u97F6\u97F5\u980F\u980C\u9838\u9824\u9821\u9837\u983D\u9846\u984F\u984B\u986B\u986F\u9870"],["f1a1","\u9871\u9874\u9873\u98AA\u98AF\u98B1\u98B6\u98C4\u98C3\u98C6\u98E9\u98EB\u9903\u9909\u9912\u9914\u9918\u9921\u991D\u991E\u9924\u9920\u992C\u992E\u993D\u993E\u9942\u9949\u9945\u9950\u994B\u9951\u9952\u994C\u9955\u9997\u9998\u99A5\u99AD\u99AE\u99BC\u99DF\u99DB\u99DD\u99D8\u99D1\u99ED\u99EE\u99F1\u99F2\u99FB\u99F8\u9A01\u9A0F\u9A05\u99E2\u9A19\u9A2B\u9A37\u9A45\u9A42\u9A40\u9A43\u9A3E\u9A55\u9A4D\u9A5B\u9A57\u9A5F\u9A62\u9A65\u9A64\u9A69\u9A6B\u9A6A\u9AAD\u9AB0\u9ABC\u9AC0\u9ACF\u9AD1\u9AD3\u9AD4\u9ADE\u9ADF\u9AE2\u9AE3\u9AE6\u9AEF\u9AEB\u9AEE\u9AF4\u9AF1\u9AF7"],["f2a1","\u9AFB\u9B06\u9B18\u9B1A\u9B1F\u9B22\u9B23\u9B25\u9B27\u9B28\u9B29\u9B2A\u9B2E\u9B2F\u9B32\u9B44\u9B43\u9B4F\u9B4D\u9B4E\u9B51\u9B58\u9B74\u9B93\u9B83\u9B91\u9B96\u9B97\u9B9F\u9BA0\u9BA8\u9BB4\u9BC0\u9BCA\u9BB9\u9BC6\u9BCF\u9BD1\u9BD2\u9BE3\u9BE2\u9BE4\u9BD4\u9BE1\u9C3A\u9BF2\u9BF1\u9BF0\u9C15\u9C14\u9C09\u9C13\u9C0C\u9C06\u9C08\u9C12\u9C0A\u9C04\u9C2E\u9C1B\u9C25\u9C24\u9C21\u9C30\u9C47\u9C32\u9C46\u9C3E\u9C5A\u9C60\u9C67\u9C76\u9C78\u9CE7\u9CEC\u9CF0\u9D09\u9D08\u9CEB\u9D03\u9D06\u9D2A\u9D26\u9DAF\u9D23\u9D1F\u9D44\u9D15\u9D12\u9D41\u9D3F\u9D3E\u9D46\u9D48"],["f3a1","\u9D5D\u9D5E\u9D64\u9D51\u9D50\u9D59\u9D72\u9D89\u9D87\u9DAB\u9D6F\u9D7A\u9D9A\u9DA4\u9DA9\u9DB2\u9DC4\u9DC1\u9DBB\u9DB8\u9DBA\u9DC6\u9DCF\u9DC2\u9DD9\u9DD3\u9DF8\u9DE6\u9DED\u9DEF\u9DFD\u9E1A\u9E1B\u9E1E\u9E75\u9E79\u9E7D\u9E81\u9E88\u9E8B\u9E8C\u9E92\u9E95\u9E91\u9E9D\u9EA5\u9EA9\u9EB8\u9EAA\u9EAD\u9761\u9ECC\u9ECE\u9ECF\u9ED0\u9ED4\u9EDC\u9EDE\u9EDD\u9EE0\u9EE5\u9EE8\u9EEF\u9EF4\u9EF6\u9EF7\u9EF9\u9EFB\u9EFC\u9EFD\u9F07\u9F08\u76B7\u9F15\u9F21\u9F2C\u9F3E\u9F4A\u9F52\u9F54\u9F63\u9F5F\u9F60\u9F61\u9F66\u9F67\u9F6C\u9F6A\u9F77\u9F72\u9F76\u9F95\u9F9C\u9FA0"],["f4a1","\u582F\u69C7\u9059\u7464\u51DC\u7199"],["f9a1","\u7E8A\u891C\u9348\u9288\u84DC\u4FC9\u70BB\u6631\u68C8\u92F9\u66FB\u5F45\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F92\u4F8A\u4F9A\u4F94\u4FCD\u5040\u5022\u4FFF\u501E\u5046\u5070\u5042\u5094\u50F4\u50D8\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\uFA0E\u549C\u548A\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C8\u57C7\uFA0F\uFA10\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u752F\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D53\uFA11\u5D42\u5D6D\u5DB8\u5DB9\u5DD0\u5F21\u5F34\u5F67\u5FB7"],["faa1","\u5FDE\u605D\u6085\u608A\u60DE\u60D5\u6120\u60F2\u6111\u6137\u6130\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6615\u663B\u6609\u662E\u661E\u6624\u6665\u6657\u6659\uFA12\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u670E\uF929\u6766\u67BB\u6852\u67C0\u6801\u6844\u68CF\uFA13\u6968\uFA14\u6998\u69E2\u6A30\u6A6B\u6A46\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C86\u6C6F\u6CDA\u6D04\u6D87\u6D6F\u6D96\u6DAC\u6DCF\u6DF8\u6DF2\u6DFC\u6E39\u6E5C\u6E27\u6E3C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u710F\u7104\u715C\u7146\u7147\uFA15\u71C1\u71FE\u72B1"],["fba1","\u72BE\u7324\uFA16\u7377\u73BD\u73C9\u73D6\u73E3\u73D2\u7407\u73F5\u7426\u742A\u7429\u742E\u7462\u7489\u749F\u7501\u756F\u7682\u769C\u769E\u769B\u76A6\uFA17\u7746\u52AF\u7821\u784E\u7864\u787A\u7930\uFA18\uFA19\uFA1A\u7994\uFA1B\u799B\u7AD1\u7AE7\uFA1C\u7AEB\u7B9E\uFA1D\u7D48\u7D5C\u7DB7\u7DA0\u7DD6\u7E52\u7F47\u7FA1\uFA1E\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u8553\u8559\u856B\uFA1F\u85B0\uFA20\uFA21\u8807\u88F5\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\uFA22\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\uFA23\u8ECF\uFA24\uFA25\u9067\u90DE\uFA26\u9115\u9127\u91DA"],["fca1","\u91D7\u91DE\u91ED\u91EE\u91E4\u91E5\u9206\u9210\u920A\u923A\u9240\u923C\u924E\u9259\u9251\u9239\u9267\u92A7\u9277\u9278\u92E7\u92D7\u92D9\u92D0\uFA27\u92D5\u92E0\u92D3\u9325\u9321\u92FB\uFA28\u931E\u92FF\u931D\u9302\u9370\u9357\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\uF9DC\uFA29\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\uFA2A\uFA2B\u9927\uFA2C\u999E\u9A4E\u9AD9\u9ADC\u9B75\u9B72\u9B8F\u9BB1\u9BBB\u9C00\u9D70\u9D6B\uFA2D\u9E19\u9ED1"],["fcf1","\u2170",9,"\uFFE2\uFFE4\uFF07\uFF02"],["8fa2af","\u02D8\u02C7\xB8\u02D9\u02DD\xAF\u02DB\u02DA\uFF5E\u0384\u0385"],["8fa2c2","\xA1\xA6\xBF"],["8fa2eb","\xBA\xAA\xA9\xAE\u2122\xA4\u2116"],["8fa6e1","\u0386\u0388\u0389\u038A\u03AA"],["8fa6e7","\u038C"],["8fa6e9","\u038E\u03AB"],["8fa6ec","\u038F"],["8fa6f1","\u03AC\u03AD\u03AE\u03AF\u03CA\u0390\u03CC\u03C2\u03CD\u03CB\u03B0\u03CE"],["8fa7c2","\u0402",10,"\u040E\u040F"],["8fa7f2","\u0452",10,"\u045E\u045F"],["8fa9a1","\xC6\u0110"],["8fa9a4","\u0126"],["8fa9a6","\u0132"],["8fa9a8","\u0141\u013F"],["8fa9ab","\u014A\xD8\u0152"],["8fa9af","\u0166\xDE"],["8fa9c1","\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0142\u0140\u0149\u014B\xF8\u0153\xDF\u0167\xFE"],["8faaa1","\xC1\xC0\xC4\xC2\u0102\u01CD\u0100\u0104\xC5\xC3\u0106\u0108\u010C\xC7\u010A\u010E\xC9\xC8\xCB\xCA\u011A\u0116\u0112\u0118"],["8faaba","\u011C\u011E\u0122\u0120\u0124\xCD\xCC\xCF\xCE\u01CF\u0130\u012A\u012E\u0128\u0134\u0136\u0139\u013D\u013B\u0143\u0147\u0145\xD1\xD3\xD2\xD6\xD4\u01D1\u0150\u014C\xD5\u0154\u0158\u0156\u015A\u015C\u0160\u015E\u0164\u0162\xDA\xD9\xDC\xDB\u016C\u01D3\u0170\u016A\u0172\u016E\u0168\u01D7\u01DB\u01D9\u01D5\u0174\xDD\u0178\u0176\u0179\u017D\u017B"],["8faba1","\xE1\xE0\xE4\xE2\u0103\u01CE\u0101\u0105\xE5\xE3\u0107\u0109\u010D\xE7\u010B\u010F\xE9\xE8\xEB\xEA\u011B\u0117\u0113\u0119\u01F5\u011D\u011F"],["8fabbd","\u0121\u0125\xED\xEC\xEF\xEE\u01D0"],["8fabc5","\u012B\u012F\u0129\u0135\u0137\u013A\u013E\u013C\u0144\u0148\u0146\xF1\xF3\xF2\xF6\xF4\u01D2\u0151\u014D\xF5\u0155\u0159\u0157\u015B\u015D\u0161\u015F\u0165\u0163\xFA\xF9\xFC\xFB\u016D\u01D4\u0171\u016B\u0173\u016F\u0169\u01D8\u01DC\u01DA\u01D6\u0175\xFD\xFF\u0177\u017A\u017E\u017C"],["8fb0a1","\u4E02\u4E04\u4E05\u4E0C\u4E12\u4E1F\u4E23\u4E24\u4E28\u4E2B\u4E2E\u4E2F\u4E30\u4E35\u4E40\u4E41\u4E44\u4E47\u4E51\u4E5A\u4E5C\u4E63\u4E68\u4E69\u4E74\u4E75\u4E79\u4E7F\u4E8D\u4E96\u4E97\u4E9D\u4EAF\u4EB9\u4EC3\u4ED0\u4EDA\u4EDB\u4EE0\u4EE1\u4EE2\u4EE8\u4EEF\u4EF1\u4EF3\u4EF5\u4EFD\u4EFE\u4EFF\u4F00\u4F02\u4F03\u4F08\u4F0B\u4F0C\u4F12\u4F15\u4F16\u4F17\u4F19\u4F2E\u4F31\u4F60\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E\u4F40\u4F42\u4F48\u4F49\u4F4B\u4F4C\u4F52\u4F54\u4F56\u4F58\u4F5F\u4F63\u4F6A\u4F6C\u4F6E\u4F71\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F7E\u4F81\u4F82\u4F84"],["8fb1a1","\u4F85\u4F89\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F94\u4F97\u4F99\u4F9A\u4F9E\u4F9F\u4FB2\u4FB7\u4FB9\u4FBB\u4FBC\u4FBD\u4FBE\u4FC0\u4FC1\u4FC5\u4FC6\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FCF\u4FD2\u4FDC\u4FE0\u4FE2\u4FF0\u4FF2\u4FFC\u4FFD\u4FFF\u5000\u5001\u5004\u5007\u500A\u500C\u500E\u5010\u5013\u5017\u5018\u501B\u501C\u501D\u501E\u5022\u5027\u502E\u5030\u5032\u5033\u5035\u5040\u5041\u5042\u5045\u5046\u504A\u504C\u504E\u5051\u5052\u5053\u5057\u5059\u505F\u5060\u5062\u5063\u5066\u5067\u506A\u506D\u5070\u5071\u503B\u5081\u5083\u5084\u5086\u508A\u508E\u508F\u5090"],["8fb2a1","\u5092\u5093\u5094\u5096\u509B\u509C\u509E",4,"\u50AA\u50AF\u50B0\u50B9\u50BA\u50BD\u50C0\u50C3\u50C4\u50C7\u50CC\u50CE\u50D0\u50D3\u50D4\u50D8\u50DC\u50DD\u50DF\u50E2\u50E4\u50E6\u50E8\u50E9\u50EF\u50F1\u50F6\u50FA\u50FE\u5103\u5106\u5107\u5108\u510B\u510C\u510D\u510E\u50F2\u5110\u5117\u5119\u511B\u511C\u511D\u511E\u5123\u5127\u5128\u512C\u512D\u512F\u5131\u5133\u5134\u5135\u5138\u5139\u5142\u514A\u514F\u5153\u5155\u5157\u5158\u515F\u5164\u5166\u517E\u5183\u5184\u518B\u518E\u5198\u519D\u51A1\u51A3\u51AD\u51B8\u51BA\u51BC\u51BE\u51BF\u51C2"],["8fb3a1","\u51C8\u51CF\u51D1\u51D2\u51D3\u51D5\u51D8\u51DE\u51E2\u51E5\u51EE\u51F2\u51F3\u51F4\u51F7\u5201\u5202\u5205\u5212\u5213\u5215\u5216\u5218\u5222\u5228\u5231\u5232\u5235\u523C\u5245\u5249\u5255\u5257\u5258\u525A\u525C\u525F\u5260\u5261\u5266\u526E\u5277\u5278\u5279\u5280\u5282\u5285\u528A\u528C\u5293\u5295\u5296\u5297\u5298\u529A\u529C\u52A4\u52A5\u52A6\u52A7\u52AF\u52B0\u52B6\u52B7\u52B8\u52BA\u52BB\u52BD\u52C0\u52C4\u52C6\u52C8\u52CC\u52CF\u52D1\u52D4\u52D6\u52DB\u52DC\u52E1\u52E5\u52E8\u52E9\u52EA\u52EC\u52F0\u52F1\u52F4\u52F6\u52F7\u5300\u5303\u530A\u530B"],["8fb4a1","\u530C\u5311\u5313\u5318\u531B\u531C\u531E\u531F\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u5330\u5332\u5335\u533C\u533D\u533E\u5342\u534C\u534B\u5359\u535B\u5361\u5363\u5365\u536C\u536D\u5372\u5379\u537E\u5383\u5387\u5388\u538E\u5393\u5394\u5399\u539D\u53A1\u53A4\u53AA\u53AB\u53AF\u53B2\u53B4\u53B5\u53B7\u53B8\u53BA\u53BD\u53C0\u53C5\u53CF\u53D2\u53D3\u53D5\u53DA\u53DD\u53DE\u53E0\u53E6\u53E7\u53F5\u5402\u5413\u541A\u5421\u5427\u5428\u542A\u542F\u5431\u5434\u5435\u5443\u5444\u5447\u544D\u544F\u545E\u5462\u5464\u5466\u5467\u5469\u546B\u546D\u546E\u5474\u547F"],["8fb5a1","\u5481\u5483\u5485\u5488\u5489\u548D\u5491\u5495\u5496\u549C\u549F\u54A1\u54A6\u54A7\u54A9\u54AA\u54AD\u54AE\u54B1\u54B7\u54B9\u54BA\u54BB\u54BF\u54C6\u54CA\u54CD\u54CE\u54E0\u54EA\u54EC\u54EF\u54F6\u54FC\u54FE\u54FF\u5500\u5501\u5505\u5508\u5509\u550C\u550D\u550E\u5515\u552A\u552B\u5532\u5535\u5536\u553B\u553C\u553D\u5541\u5547\u5549\u554A\u554D\u5550\u5551\u5558\u555A\u555B\u555E\u5560\u5561\u5564\u5566\u557F\u5581\u5582\u5586\u5588\u558E\u558F\u5591\u5592\u5593\u5594\u5597\u55A3\u55A4\u55AD\u55B2\u55BF\u55C1\u55C3\u55C6\u55C9\u55CB\u55CC\u55CE\u55D1\u55D2"],["8fb6a1","\u55D3\u55D7\u55D8\u55DB\u55DE\u55E2\u55E9\u55F6\u55FF\u5605\u5608\u560A\u560D",5,"\u5619\u562C\u5630\u5633\u5635\u5637\u5639\u563B\u563C\u563D\u563F\u5640\u5641\u5643\u5644\u5646\u5649\u564B\u564D\u564F\u5654\u565E\u5660\u5661\u5662\u5663\u5666\u5669\u566D\u566F\u5671\u5672\u5675\u5684\u5685\u5688\u568B\u568C\u5695\u5699\u569A\u569D\u569E\u569F\u56A6\u56A7\u56A8\u56A9\u56AB\u56AC\u56AD\u56B1\u56B3\u56B7\u56BE\u56C5\u56C9\u56CA\u56CB\u56CF\u56D0\u56CC\u56CD\u56D9\u56DC\u56DD\u56DF\u56E1\u56E4",4,"\u56F1\u56EB\u56ED"],["8fb7a1","\u56F6\u56F7\u5701\u5702\u5707\u570A\u570C\u5711\u5715\u571A\u571B\u571D\u5720\u5722\u5723\u5724\u5725\u5729\u572A\u572C\u572E\u572F\u5733\u5734\u573D\u573E\u573F\u5745\u5746\u574C\u574D\u5752\u5762\u5765\u5767\u5768\u576B\u576D",4,"\u5773\u5774\u5775\u5777\u5779\u577A\u577B\u577C\u577E\u5781\u5783\u578C\u5794\u5797\u5799\u579A\u579C\u579D\u579E\u579F\u57A1\u5795\u57A7\u57A8\u57A9\u57AC\u57B8\u57BD\u57C7\u57C8\u57CC\u57CF\u57D5\u57DD\u57DE\u57E4\u57E6\u57E7\u57E9\u57ED\u57F0\u57F5\u57F6\u57F8\u57FD\u57FE\u57FF\u5803\u5804\u5808\u5809\u57E1"],["8fb8a1","\u580C\u580D\u581B\u581E\u581F\u5820\u5826\u5827\u582D\u5832\u5839\u583F\u5849\u584C\u584D\u584F\u5850\u5855\u585F\u5861\u5864\u5867\u5868\u5878\u587C\u587F\u5880\u5881\u5887\u5888\u5889\u588A\u588C\u588D\u588F\u5890\u5894\u5896\u589D\u58A0\u58A1\u58A2\u58A6\u58A9\u58B1\u58B2\u58C4\u58BC\u58C2\u58C8\u58CD\u58CE\u58D0\u58D2\u58D4\u58D6\u58DA\u58DD\u58E1\u58E2\u58E9\u58F3\u5905\u5906\u590B\u590C\u5912\u5913\u5914\u8641\u591D\u5921\u5923\u5924\u5928\u592F\u5930\u5933\u5935\u5936\u593F\u5943\u5946\u5952\u5953\u5959\u595B\u595D\u595E\u595F\u5961\u5963\u596B\u596D"],["8fb9a1","\u596F\u5972\u5975\u5976\u5979\u597B\u597C\u598B\u598C\u598E\u5992\u5995\u5997\u599F\u59A4\u59A7\u59AD\u59AE\u59AF\u59B0\u59B3\u59B7\u59BA\u59BC\u59C1\u59C3\u59C4\u59C8\u59CA\u59CD\u59D2\u59DD\u59DE\u59DF\u59E3\u59E4\u59E7\u59EE\u59EF\u59F1\u59F2\u59F4\u59F7\u5A00\u5A04\u5A0C\u5A0D\u5A0E\u5A12\u5A13\u5A1E\u5A23\u5A24\u5A27\u5A28\u5A2A\u5A2D\u5A30\u5A44\u5A45\u5A47\u5A48\u5A4C\u5A50\u5A55\u5A5E\u5A63\u5A65\u5A67\u5A6D\u5A77\u5A7A\u5A7B\u5A7E\u5A8B\u5A90\u5A93\u5A96\u5A99\u5A9C\u5A9E\u5A9F\u5AA0\u5AA2\u5AA7\u5AAC\u5AB1\u5AB2\u5AB3\u5AB5\u5AB8\u5ABA\u5ABB\u5ABF"],["8fbaa1","\u5AC4\u5AC6\u5AC8\u5ACF\u5ADA\u5ADC\u5AE0\u5AE5\u5AEA\u5AEE\u5AF5\u5AF6\u5AFD\u5B00\u5B01\u5B08\u5B17\u5B34\u5B19\u5B1B\u5B1D\u5B21\u5B25\u5B2D\u5B38\u5B41\u5B4B\u5B4C\u5B52\u5B56\u5B5E\u5B68\u5B6E\u5B6F\u5B7C\u5B7D\u5B7E\u5B7F\u5B81\u5B84\u5B86\u5B8A\u5B8E\u5B90\u5B91\u5B93\u5B94\u5B96\u5BA8\u5BA9\u5BAC\u5BAD\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBC\u5BC0\u5BC1\u5BCD\u5BCF\u5BD6",4,"\u5BE0\u5BEF\u5BF1\u5BF4\u5BFD\u5C0C\u5C17\u5C1E\u5C1F\u5C23\u5C26\u5C29\u5C2B\u5C2C\u5C2E\u5C30\u5C32\u5C35\u5C36\u5C59\u5C5A\u5C5C\u5C62\u5C63\u5C67\u5C68\u5C69"],["8fbba1","\u5C6D\u5C70\u5C74\u5C75\u5C7A\u5C7B\u5C7C\u5C7D\u5C87\u5C88\u5C8A\u5C8F\u5C92\u5C9D\u5C9F\u5CA0\u5CA2\u5CA3\u5CA6\u5CAA\u5CB2\u5CB4\u5CB5\u5CBA\u5CC9\u5CCB\u5CD2\u5CDD\u5CD7\u5CEE\u5CF1\u5CF2\u5CF4\u5D01\u5D06\u5D0D\u5D12\u5D2B\u5D23\u5D24\u5D26\u5D27\u5D31\u5D34\u5D39\u5D3D\u5D3F\u5D42\u5D43\u5D46\u5D48\u5D55\u5D51\u5D59\u5D4A\u5D5F\u5D60\u5D61\u5D62\u5D64\u5D6A\u5D6D\u5D70\u5D79\u5D7A\u5D7E\u5D7F\u5D81\u5D83\u5D88\u5D8A\u5D92\u5D93\u5D94\u5D95\u5D99\u5D9B\u5D9F\u5DA0\u5DA7\u5DAB\u5DB0\u5DB4\u5DB8\u5DB9\u5DC3\u5DC7\u5DCB\u5DD0\u5DCE\u5DD8\u5DD9\u5DE0\u5DE4"],["8fbca1","\u5DE9\u5DF8\u5DF9\u5E00\u5E07\u5E0D\u5E12\u5E14\u5E15\u5E18\u5E1F\u5E20\u5E2E\u5E28\u5E32\u5E35\u5E3E\u5E4B\u5E50\u5E49\u5E51\u5E56\u5E58\u5E5B\u5E5C\u5E5E\u5E68\u5E6A",4,"\u5E70\u5E80\u5E8B\u5E8E\u5EA2\u5EA4\u5EA5\u5EA8\u5EAA\u5EAC\u5EB1\u5EB3\u5EBD\u5EBE\u5EBF\u5EC6\u5ECC\u5ECB\u5ECE\u5ED1\u5ED2\u5ED4\u5ED5\u5EDC\u5EDE\u5EE5\u5EEB\u5F02\u5F06\u5F07\u5F08\u5F0E\u5F19\u5F1C\u5F1D\u5F21\u5F22\u5F23\u5F24\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F34\u5F36\u5F3B\u5F3D\u5F3F\u5F40\u5F44\u5F45\u5F47\u5F4D\u5F50\u5F54\u5F58\u5F5B\u5F60\u5F63\u5F64\u5F67"],["8fbda1","\u5F6F\u5F72\u5F74\u5F75\u5F78\u5F7A\u5F7D\u5F7E\u5F89\u5F8D\u5F8F\u5F96\u5F9C\u5F9D\u5FA2\u5FA7\u5FAB\u5FA4\u5FAC\u5FAF\u5FB0\u5FB1\u5FB8\u5FC4\u5FC7\u5FC8\u5FC9\u5FCB\u5FD0",4,"\u5FDE\u5FE1\u5FE2\u5FE8\u5FE9\u5FEA\u5FEC\u5FED\u5FEE\u5FEF\u5FF2\u5FF3\u5FF6\u5FFA\u5FFC\u6007\u600A\u600D\u6013\u6014\u6017\u6018\u601A\u601F\u6024\u602D\u6033\u6035\u6040\u6047\u6048\u6049\u604C\u6051\u6054\u6056\u6057\u605D\u6061\u6067\u6071\u607E\u607F\u6082\u6086\u6088\u608A\u608E\u6091\u6093\u6095\u6098\u609D\u609E\u60A2\u60A4\u60A5\u60A8\u60B0\u60B1\u60B7"],["8fbea1","\u60BB\u60BE\u60C2\u60C4\u60C8\u60C9\u60CA\u60CB\u60CE\u60CF\u60D4\u60D5\u60D9\u60DB\u60DD\u60DE\u60E2\u60E5\u60F2\u60F5\u60F8\u60FC\u60FD\u6102\u6107\u610A\u610C\u6110",4,"\u6116\u6117\u6119\u611C\u611E\u6122\u612A\u612B\u6130\u6131\u6135\u6136\u6137\u6139\u6141\u6145\u6146\u6149\u615E\u6160\u616C\u6172\u6178\u617B\u617C\u617F\u6180\u6181\u6183\u6184\u618B\u618D\u6192\u6193\u6197\u6198\u619C\u619D\u619F\u61A0\u61A5\u61A8\u61AA\u61AD\u61B8\u61B9\u61BC\u61C0\u61C1\u61C2\u61CE\u61CF\u61D5\u61DC\u61DD\u61DE\u61DF\u61E1\u61E2\u61E7\u61E9\u61E5"],["8fbfa1","\u61EC\u61ED\u61EF\u6201\u6203\u6204\u6207\u6213\u6215\u621C\u6220\u6222\u6223\u6227\u6229\u622B\u6239\u623D\u6242\u6243\u6244\u6246\u624C\u6250\u6251\u6252\u6254\u6256\u625A\u625C\u6264\u626D\u626F\u6273\u627A\u627D\u628D\u628E\u628F\u6290\u62A6\u62A8\u62B3\u62B6\u62B7\u62BA\u62BE\u62BF\u62C4\u62CE\u62D5\u62D6\u62DA\u62EA\u62F2\u62F4\u62FC\u62FD\u6303\u6304\u630A\u630B\u630D\u6310\u6313\u6316\u6318\u6329\u632A\u632D\u6335\u6336\u6339\u633C\u6341\u6342\u6343\u6344\u6346\u634A\u634B\u634E\u6352\u6353\u6354\u6358\u635B\u6365\u6366\u636C\u636D\u6371\u6374\u6375"],["8fc0a1","\u6378\u637C\u637D\u637F\u6382\u6384\u6387\u638A\u6390\u6394\u6395\u6399\u639A\u639E\u63A4\u63A6\u63AD\u63AE\u63AF\u63BD\u63C1\u63C5\u63C8\u63CE\u63D1\u63D3\u63D4\u63D5\u63DC\u63E0\u63E5\u63EA\u63EC\u63F2\u63F3\u63F5\u63F8\u63F9\u6409\u640A\u6410\u6412\u6414\u6418\u641E\u6420\u6422\u6424\u6425\u6429\u642A\u642F\u6430\u6435\u643D\u643F\u644B\u644F\u6451\u6452\u6453\u6454\u645A\u645B\u645C\u645D\u645F\u6460\u6461\u6463\u646D\u6473\u6474\u647B\u647D\u6485\u6487\u648F\u6490\u6491\u6498\u6499\u649B\u649D\u649F\u64A1\u64A3\u64A6\u64A8\u64AC\u64B3\u64BD\u64BE\u64BF"],["8fc1a1","\u64C4\u64C9\u64CA\u64CB\u64CC\u64CE\u64D0\u64D1\u64D5\u64D7\u64E4\u64E5\u64E9\u64EA\u64ED\u64F0\u64F5\u64F7\u64FB\u64FF\u6501\u6504\u6508\u6509\u650A\u650F\u6513\u6514\u6516\u6519\u651B\u651E\u651F\u6522\u6526\u6529\u652E\u6531\u653A\u653C\u653D\u6543\u6547\u6549\u6550\u6552\u6554\u655F\u6560\u6567\u656B\u657A\u657D\u6581\u6585\u658A\u6592\u6595\u6598\u659D\u65A0\u65A3\u65A6\u65AE\u65B2\u65B3\u65B4\u65BF\u65C2\u65C8\u65C9\u65CE\u65D0\u65D4\u65D6\u65D8\u65DF\u65F0\u65F2\u65F4\u65F5\u65F9\u65FE\u65FF\u6600\u6604\u6608\u6609\u660D\u6611\u6612\u6615\u6616\u661D"],["8fc2a1","\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6631\u6633\u6639\u6637\u6640\u6645\u6646\u664A\u664C\u6651\u664E\u6657\u6658\u6659\u665B\u665C\u6660\u6661\u66FB\u666A\u666B\u666C\u667E\u6673\u6675\u667F\u6677\u6678\u6679\u667B\u6680\u667C\u668B\u668C\u668D\u6690\u6692\u6699\u669A\u669B\u669C\u669F\u66A0\u66A4\u66AD\u66B1\u66B2\u66B5\u66BB\u66BF\u66C0\u66C2\u66C3\u66C8\u66CC\u66CE\u66CF\u66D4\u66DB\u66DF\u66E8\u66EB\u66EC\u66EE\u66FA\u6705\u6707\u670E\u6713\u6719\u671C\u6720\u6722\u6733\u673E\u6745\u6747\u6748\u674C\u6754\u6755\u675D"],["8fc3a1","\u6766\u676C\u676E\u6774\u6776\u677B\u6781\u6784\u678E\u678F\u6791\u6793\u6796\u6798\u6799\u679B\u67B0\u67B1\u67B2\u67B5\u67BB\u67BC\u67BD\u67F9\u67C0\u67C2\u67C3\u67C5\u67C8\u67C9\u67D2\u67D7\u67D9\u67DC\u67E1\u67E6\u67F0\u67F2\u67F6\u67F7\u6852\u6814\u6819\u681D\u681F\u6828\u6827\u682C\u682D\u682F\u6830\u6831\u6833\u683B\u683F\u6844\u6845\u684A\u684C\u6855\u6857\u6858\u685B\u686B\u686E",4,"\u6875\u6879\u687A\u687B\u687C\u6882\u6884\u6886\u6888\u6896\u6898\u689A\u689C\u68A1\u68A3\u68A5\u68A9\u68AA\u68AE\u68B2\u68BB\u68C5\u68C8\u68CC\u68CF"],["8fc4a1","\u68D0\u68D1\u68D3\u68D6\u68D9\u68DC\u68DD\u68E5\u68E8\u68EA\u68EB\u68EC\u68ED\u68F0\u68F1\u68F5\u68F6\u68FB\u68FC\u68FD\u6906\u6909\u690A\u6910\u6911\u6913\u6916\u6917\u6931\u6933\u6935\u6938\u693B\u6942\u6945\u6949\u694E\u6957\u695B\u6963\u6964\u6965\u6966\u6968\u6969\u696C\u6970\u6971\u6972\u697A\u697B\u697F\u6980\u698D\u6992\u6996\u6998\u69A1\u69A5\u69A6\u69A8\u69AB\u69AD\u69AF\u69B7\u69B8\u69BA\u69BC\u69C5\u69C8\u69D1\u69D6\u69D7\u69E2\u69E5\u69EE\u69EF\u69F1\u69F3\u69F5\u69FE\u6A00\u6A01\u6A03\u6A0F\u6A11\u6A15\u6A1A\u6A1D\u6A20\u6A24\u6A28\u6A30\u6A32"],["8fc5a1","\u6A34\u6A37\u6A3B\u6A3E\u6A3F\u6A45\u6A46\u6A49\u6A4A\u6A4E\u6A50\u6A51\u6A52\u6A55\u6A56\u6A5B\u6A64\u6A67\u6A6A\u6A71\u6A73\u6A7E\u6A81\u6A83\u6A86\u6A87\u6A89\u6A8B\u6A91\u6A9B\u6A9D\u6A9E\u6A9F\u6AA5\u6AAB\u6AAF\u6AB0\u6AB1\u6AB4\u6ABD\u6ABE\u6ABF\u6AC6\u6AC9\u6AC8\u6ACC\u6AD0\u6AD4\u6AD5\u6AD6\u6ADC\u6ADD\u6AE4\u6AE7\u6AEC\u6AF0\u6AF1\u6AF2\u6AFC\u6AFD\u6B02\u6B03\u6B06\u6B07\u6B09\u6B0F\u6B10\u6B11\u6B17\u6B1B\u6B1E\u6B24\u6B28\u6B2B\u6B2C\u6B2F\u6B35\u6B36\u6B3B\u6B3F\u6B46\u6B4A\u6B4D\u6B52\u6B56\u6B58\u6B5D\u6B60\u6B67\u6B6B\u6B6E\u6B70\u6B75\u6B7D"],["8fc6a1","\u6B7E\u6B82\u6B85\u6B97\u6B9B\u6B9F\u6BA0\u6BA2\u6BA3\u6BA8\u6BA9\u6BAC\u6BAD\u6BAE\u6BB0\u6BB8\u6BB9\u6BBD\u6BBE\u6BC3\u6BC4\u6BC9\u6BCC\u6BD6\u6BDA\u6BE1\u6BE3\u6BE6\u6BE7\u6BEE\u6BF1\u6BF7\u6BF9\u6BFF\u6C02\u6C04\u6C05\u6C09\u6C0D\u6C0E\u6C10\u6C12\u6C19\u6C1F\u6C26\u6C27\u6C28\u6C2C\u6C2E\u6C33\u6C35\u6C36\u6C3A\u6C3B\u6C3F\u6C4A\u6C4B\u6C4D\u6C4F\u6C52\u6C54\u6C59\u6C5B\u6C5C\u6C6B\u6C6D\u6C6F\u6C74\u6C76\u6C78\u6C79\u6C7B\u6C85\u6C86\u6C87\u6C89\u6C94\u6C95\u6C97\u6C98\u6C9C\u6C9F\u6CB0\u6CB2\u6CB4\u6CC2\u6CC6\u6CCD\u6CCF\u6CD0\u6CD1\u6CD2\u6CD4\u6CD6"],["8fc7a1","\u6CDA\u6CDC\u6CE0\u6CE7\u6CE9\u6CEB\u6CEC\u6CEE\u6CF2\u6CF4\u6D04\u6D07\u6D0A\u6D0E\u6D0F\u6D11\u6D13\u6D1A\u6D26\u6D27\u6D28\u6C67\u6D2E\u6D2F\u6D31\u6D39\u6D3C\u6D3F\u6D57\u6D5E\u6D5F\u6D61\u6D65\u6D67\u6D6F\u6D70\u6D7C\u6D82\u6D87\u6D91\u6D92\u6D94\u6D96\u6D97\u6D98\u6DAA\u6DAC\u6DB4\u6DB7\u6DB9\u6DBD\u6DBF\u6DC4\u6DC8\u6DCA\u6DCE\u6DCF\u6DD6\u6DDB\u6DDD\u6DDF\u6DE0\u6DE2\u6DE5\u6DE9\u6DEF\u6DF0\u6DF4\u6DF6\u6DFC\u6E00\u6E04\u6E1E\u6E22\u6E27\u6E32\u6E36\u6E39\u6E3B\u6E3C\u6E44\u6E45\u6E48\u6E49\u6E4B\u6E4F\u6E51\u6E52\u6E53\u6E54\u6E57\u6E5C\u6E5D\u6E5E"],["8fc8a1","\u6E62\u6E63\u6E68\u6E73\u6E7B\u6E7D\u6E8D\u6E93\u6E99\u6EA0\u6EA7\u6EAD\u6EAE\u6EB1\u6EB3\u6EBB\u6EBF\u6EC0\u6EC1\u6EC3\u6EC7\u6EC8\u6ECA\u6ECD\u6ECE\u6ECF\u6EEB\u6EED\u6EEE\u6EF9\u6EFB\u6EFD\u6F04\u6F08\u6F0A\u6F0C\u6F0D\u6F16\u6F18\u6F1A\u6F1B\u6F26\u6F29\u6F2A\u6F2F\u6F30\u6F33\u6F36\u6F3B\u6F3C\u6F2D\u6F4F\u6F51\u6F52\u6F53\u6F57\u6F59\u6F5A\u6F5D\u6F5E\u6F61\u6F62\u6F68\u6F6C\u6F7D\u6F7E\u6F83\u6F87\u6F88\u6F8B\u6F8C\u6F8D\u6F90\u6F92\u6F93\u6F94\u6F96\u6F9A\u6F9F\u6FA0\u6FA5\u6FA6\u6FA7\u6FA8\u6FAE\u6FAF\u6FB0\u6FB5\u6FB6\u6FBC\u6FC5\u6FC7\u6FC8\u6FCA"],["8fc9a1","\u6FDA\u6FDE\u6FE8\u6FE9\u6FF0\u6FF5\u6FF9\u6FFC\u6FFD\u7000\u7005\u7006\u7007\u700D\u7017\u7020\u7023\u702F\u7034\u7037\u7039\u703C\u7043\u7044\u7048\u7049\u704A\u704B\u7054\u7055\u705D\u705E\u704E\u7064\u7065\u706C\u706E\u7075\u7076\u707E\u7081\u7085\u7086\u7094",4,"\u709B\u70A4\u70AB\u70B0\u70B1\u70B4\u70B7\u70CA\u70D1\u70D3\u70D4\u70D5\u70D6\u70D8\u70DC\u70E4\u70FA\u7103",4,"\u710B\u710C\u710F\u711E\u7120\u712B\u712D\u712F\u7130\u7131\u7138\u7141\u7145\u7146\u7147\u714A\u714B\u7150\u7152\u7157\u715A\u715C\u715E\u7160"],["8fcaa1","\u7168\u7179\u7180\u7185\u7187\u718C\u7192\u719A\u719B\u71A0\u71A2\u71AF\u71B0\u71B2\u71B3\u71BA\u71BF\u71C0\u71C1\u71C4\u71CB\u71CC\u71D3\u71D6\u71D9\u71DA\u71DC\u71F8\u71FE\u7200\u7207\u7208\u7209\u7213\u7217\u721A\u721D\u721F\u7224\u722B\u722F\u7234\u7238\u7239\u7241\u7242\u7243\u7245\u724E\u724F\u7250\u7253\u7255\u7256\u725A\u725C\u725E\u7260\u7263\u7268\u726B\u726E\u726F\u7271\u7277\u7278\u727B\u727C\u727F\u7284\u7289\u728D\u728E\u7293\u729B\u72A8\u72AD\u72AE\u72B1\u72B4\u72BE\u72C1\u72C7\u72C9\u72CC\u72D5\u72D6\u72D8\u72DF\u72E5\u72F3\u72F4\u72FA\u72FB"],["8fcba1","\u72FE\u7302\u7304\u7305\u7307\u730B\u730D\u7312\u7313\u7318\u7319\u731E\u7322\u7324\u7327\u7328\u732C\u7331\u7332\u7335\u733A\u733B\u733D\u7343\u734D\u7350\u7352\u7356\u7358\u735D\u735E\u735F\u7360\u7366\u7367\u7369\u736B\u736C\u736E\u736F\u7371\u7377\u7379\u737C\u7380\u7381\u7383\u7385\u7386\u738E\u7390\u7393\u7395\u7397\u7398\u739C\u739E\u739F\u73A0\u73A2\u73A5\u73A6\u73AA\u73AB\u73AD\u73B5\u73B7\u73B9\u73BC\u73BD\u73BF\u73C5\u73C6\u73C9\u73CB\u73CC\u73CF\u73D2\u73D3\u73D6\u73D9\u73DD\u73E1\u73E3\u73E6\u73E7\u73E9\u73F4\u73F5\u73F7\u73F9\u73FA\u73FB\u73FD"],["8fcca1","\u73FF\u7400\u7401\u7404\u7407\u740A\u7411\u741A\u741B\u7424\u7426\u7428",9,"\u7439\u7440\u7443\u7444\u7446\u7447\u744B\u744D\u7451\u7452\u7457\u745D\u7462\u7466\u7467\u7468\u746B\u746D\u746E\u7471\u7472\u7480\u7481\u7485\u7486\u7487\u7489\u748F\u7490\u7491\u7492\u7498\u7499\u749A\u749C\u749F\u74A0\u74A1\u74A3\u74A6\u74A8\u74A9\u74AA\u74AB\u74AE\u74AF\u74B1\u74B2\u74B5\u74B9\u74BB\u74BF\u74C8\u74C9\u74CC\u74D0\u74D3\u74D8\u74DA\u74DB\u74DE\u74DF\u74E4\u74E8\u74EA\u74EB\u74EF\u74F4\u74FA\u74FB\u74FC\u74FF\u7506"],["8fcda1","\u7512\u7516\u7517\u7520\u7521\u7524\u7527\u7529\u752A\u752F\u7536\u7539\u753D\u753E\u753F\u7540\u7543\u7547\u7548\u754E\u7550\u7552\u7557\u755E\u755F\u7561\u756F\u7571\u7579",5,"\u7581\u7585\u7590\u7592\u7593\u7595\u7599\u759C\u75A2\u75A4\u75B4\u75BA\u75BF\u75C0\u75C1\u75C4\u75C6\u75CC\u75CE\u75CF\u75D7\u75DC\u75DF\u75E0\u75E1\u75E4\u75E7\u75EC\u75EE\u75EF\u75F1\u75F9\u7600\u7602\u7603\u7604\u7607\u7608\u760A\u760C\u760F\u7612\u7613\u7615\u7616\u7619\u761B\u761C\u761D\u761E\u7623\u7625\u7626\u7629\u762D\u7632\u7633\u7635\u7638\u7639"],["8fcea1","\u763A\u763C\u764A\u7640\u7641\u7643\u7644\u7645\u7649\u764B\u7655\u7659\u765F\u7664\u7665\u766D\u766E\u766F\u7671\u7674\u7681\u7685\u768C\u768D\u7695\u769B\u769C\u769D\u769F\u76A0\u76A2",6,"\u76AA\u76AD\u76BD\u76C1\u76C5\u76C9\u76CB\u76CC\u76CE\u76D4\u76D9\u76E0\u76E6\u76E8\u76EC\u76F0\u76F1\u76F6\u76F9\u76FC\u7700\u7706\u770A\u770E\u7712\u7714\u7715\u7717\u7719\u771A\u771C\u7722\u7728\u772D\u772E\u772F\u7734\u7735\u7736\u7739\u773D\u773E\u7742\u7745\u7746\u774A\u774D\u774E\u774F\u7752\u7756\u7757\u775C\u775E\u775F\u7760\u7762"],["8fcfa1","\u7764\u7767\u776A\u776C\u7770\u7772\u7773\u7774\u777A\u777D\u7780\u7784\u778C\u778D\u7794\u7795\u7796\u779A\u779F\u77A2\u77A7\u77AA\u77AE\u77AF\u77B1\u77B5\u77BE\u77C3\u77C9\u77D1\u77D2\u77D5\u77D9\u77DE\u77DF\u77E0\u77E4\u77E6\u77EA\u77EC\u77F0\u77F1\u77F4\u77F8\u77FB\u7805\u7806\u7809\u780D\u780E\u7811\u781D\u7821\u7822\u7823\u782D\u782E\u7830\u7835\u7837\u7843\u7844\u7847\u7848\u784C\u784E\u7852\u785C\u785E\u7860\u7861\u7863\u7864\u7868\u786A\u786E\u787A\u787E\u788A\u788F\u7894\u7898\u78A1\u789D\u789E\u789F\u78A4\u78A8\u78AC\u78AD\u78B0\u78B1\u78B2\u78B3"],["8fd0a1","\u78BB\u78BD\u78BF\u78C7\u78C8\u78C9\u78CC\u78CE\u78D2\u78D3\u78D5\u78D6\u78E4\u78DB\u78DF\u78E0\u78E1\u78E6\u78EA\u78F2\u78F3\u7900\u78F6\u78F7\u78FA\u78FB\u78FF\u7906\u790C\u7910\u791A\u791C\u791E\u791F\u7920\u7925\u7927\u7929\u792D\u7931\u7934\u7935\u793B\u793D\u793F\u7944\u7945\u7946\u794A\u794B\u794F\u7951\u7954\u7958\u795B\u795C\u7967\u7969\u796B\u7972\u7979\u797B\u797C\u797E\u798B\u798C\u7991\u7993\u7994\u7995\u7996\u7998\u799B\u799C\u79A1\u79A8\u79A9\u79AB\u79AF\u79B1\u79B4\u79B8\u79BB\u79C2\u79C4\u79C7\u79C8\u79CA\u79CF\u79D4\u79D6\u79DA\u79DD\u79DE"],["8fd1a1","\u79E0\u79E2\u79E5\u79EA\u79EB\u79ED\u79F1\u79F8\u79FC\u7A02\u7A03\u7A07\u7A09\u7A0A\u7A0C\u7A11\u7A15\u7A1B\u7A1E\u7A21\u7A27\u7A2B\u7A2D\u7A2F\u7A30\u7A34\u7A35\u7A38\u7A39\u7A3A\u7A44\u7A45\u7A47\u7A48\u7A4C\u7A55\u7A56\u7A59\u7A5C\u7A5D\u7A5F\u7A60\u7A65\u7A67\u7A6A\u7A6D\u7A75\u7A78\u7A7E\u7A80\u7A82\u7A85\u7A86\u7A8A\u7A8B\u7A90\u7A91\u7A94\u7A9E\u7AA0\u7AA3\u7AAC\u7AB3\u7AB5\u7AB9\u7ABB\u7ABC\u7AC6\u7AC9\u7ACC\u7ACE\u7AD1\u7ADB\u7AE8\u7AE9\u7AEB\u7AEC\u7AF1\u7AF4\u7AFB\u7AFD\u7AFE\u7B07\u7B14\u7B1F\u7B23\u7B27\u7B29\u7B2A\u7B2B\u7B2D\u7B2E\u7B2F\u7B30"],["8fd2a1","\u7B31\u7B34\u7B3D\u7B3F\u7B40\u7B41\u7B47\u7B4E\u7B55\u7B60\u7B64\u7B66\u7B69\u7B6A\u7B6D\u7B6F\u7B72\u7B73\u7B77\u7B84\u7B89\u7B8E\u7B90\u7B91\u7B96\u7B9B\u7B9E\u7BA0\u7BA5\u7BAC\u7BAF\u7BB0\u7BB2\u7BB5\u7BB6\u7BBA\u7BBB\u7BBC\u7BBD\u7BC2\u7BC5\u7BC8\u7BCA\u7BD4\u7BD6\u7BD7\u7BD9\u7BDA\u7BDB\u7BE8\u7BEA\u7BF2\u7BF4\u7BF5\u7BF8\u7BF9\u7BFA\u7BFC\u7BFE\u7C01\u7C02\u7C03\u7C04\u7C06\u7C09\u7C0B\u7C0C\u7C0E\u7C0F\u7C19\u7C1B\u7C20\u7C25\u7C26\u7C28\u7C2C\u7C31\u7C33\u7C34\u7C36\u7C39\u7C3A\u7C46\u7C4A\u7C55\u7C51\u7C52\u7C53\u7C59",5],["8fd3a1","\u7C61\u7C63\u7C67\u7C69\u7C6D\u7C6E\u7C70\u7C72\u7C79\u7C7C\u7C7D\u7C86\u7C87\u7C8F\u7C94\u7C9E\u7CA0\u7CA6\u7CB0\u7CB6\u7CB7\u7CBA\u7CBB\u7CBC\u7CBF\u7CC4\u7CC7\u7CC8\u7CC9\u7CCD\u7CCF\u7CD3\u7CD4\u7CD5\u7CD7\u7CD9\u7CDA\u7CDD\u7CE6\u7CE9\u7CEB\u7CF5\u7D03\u7D07\u7D08\u7D09\u7D0F\u7D11\u7D12\u7D13\u7D16\u7D1D\u7D1E\u7D23\u7D26\u7D2A\u7D2D\u7D31\u7D3C\u7D3D\u7D3E\u7D40\u7D41\u7D47\u7D48\u7D4D\u7D51\u7D53\u7D57\u7D59\u7D5A\u7D5C\u7D5D\u7D65\u7D67\u7D6A\u7D70\u7D78\u7D7A\u7D7B\u7D7F\u7D81\u7D82\u7D83\u7D85\u7D86\u7D88\u7D8B\u7D8C\u7D8D\u7D91\u7D96\u7D97\u7D9D"],["8fd4a1","\u7D9E\u7DA6\u7DA7\u7DAA\u7DB3\u7DB6\u7DB7\u7DB9\u7DC2",4,"\u7DCC\u7DCD\u7DCE\u7DD7\u7DD9\u7E00\u7DE2\u7DE5\u7DE6\u7DEA\u7DEB\u7DED\u7DF1\u7DF5\u7DF6\u7DF9\u7DFA\u7E08\u7E10\u7E11\u7E15\u7E17\u7E1C\u7E1D\u7E20\u7E27\u7E28\u7E2C\u7E2D\u7E2F\u7E33\u7E36\u7E3F\u7E44\u7E45\u7E47\u7E4E\u7E50\u7E52\u7E58\u7E5F\u7E61\u7E62\u7E65\u7E6B\u7E6E\u7E6F\u7E73\u7E78\u7E7E\u7E81\u7E86\u7E87\u7E8A\u7E8D\u7E91\u7E95\u7E98\u7E9A\u7E9D\u7E9E\u7F3C\u7F3B\u7F3D\u7F3E\u7F3F\u7F43\u7F44\u7F47\u7F4F\u7F52\u7F53\u7F5B\u7F5C\u7F5D\u7F61\u7F63\u7F64\u7F65\u7F66\u7F6D"],["8fd5a1","\u7F71\u7F7D\u7F7E\u7F7F\u7F80\u7F8B\u7F8D\u7F8F\u7F90\u7F91\u7F96\u7F97\u7F9C\u7FA1\u7FA2\u7FA6\u7FAA\u7FAD\u7FB4\u7FBC\u7FBF\u7FC0\u7FC3\u7FC8\u7FCE\u7FCF\u7FDB\u7FDF\u7FE3\u7FE5\u7FE8\u7FEC\u7FEE\u7FEF\u7FF2\u7FFA\u7FFD\u7FFE\u7FFF\u8007\u8008\u800A\u800D\u800E\u800F\u8011\u8013\u8014\u8016\u801D\u801E\u801F\u8020\u8024\u8026\u802C\u802E\u8030\u8034\u8035\u8037\u8039\u803A\u803C\u803E\u8040\u8044\u8060\u8064\u8066\u806D\u8071\u8075\u8081\u8088\u808E\u809C\u809E\u80A6\u80A7\u80AB\u80B8\u80B9\u80C8\u80CD\u80CF\u80D2\u80D4\u80D5\u80D7\u80D8\u80E0\u80ED\u80EE"],["8fd6a1","\u80F0\u80F2\u80F3\u80F6\u80F9\u80FA\u80FE\u8103\u810B\u8116\u8117\u8118\u811C\u811E\u8120\u8124\u8127\u812C\u8130\u8135\u813A\u813C\u8145\u8147\u814A\u814C\u8152\u8157\u8160\u8161\u8167\u8168\u8169\u816D\u816F\u8177\u8181\u8190\u8184\u8185\u8186\u818B\u818E\u8196\u8198\u819B\u819E\u81A2\u81AE\u81B2\u81B4\u81BB\u81CB\u81C3\u81C5\u81CA\u81CE\u81CF\u81D5\u81D7\u81DB\u81DD\u81DE\u81E1\u81E4\u81EB\u81EC\u81F0\u81F1\u81F2\u81F5\u81F6\u81F8\u81F9\u81FD\u81FF\u8200\u8203\u820F\u8213\u8214\u8219\u821A\u821D\u8221\u8222\u8228\u8232\u8234\u823A\u8243\u8244\u8245\u8246"],["8fd7a1","\u824B\u824E\u824F\u8251\u8256\u825C\u8260\u8263\u8267\u826D\u8274\u827B\u827D\u827F\u8280\u8281\u8283\u8284\u8287\u8289\u828A\u828E\u8291\u8294\u8296\u8298\u829A\u829B\u82A0\u82A1\u82A3\u82A4\u82A7\u82A8\u82A9\u82AA\u82AE\u82B0\u82B2\u82B4\u82B7\u82BA\u82BC\u82BE\u82BF\u82C6\u82D0\u82D5\u82DA\u82E0\u82E2\u82E4\u82E8\u82EA\u82ED\u82EF\u82F6\u82F7\u82FD\u82FE\u8300\u8301\u8307\u8308\u830A\u830B\u8354\u831B\u831D\u831E\u831F\u8321\u8322\u832C\u832D\u832E\u8330\u8333\u8337\u833A\u833C\u833D\u8342\u8343\u8344\u8347\u834D\u834E\u8351\u8355\u8356\u8357\u8370\u8378"],["8fd8a1","\u837D\u837F\u8380\u8382\u8384\u8386\u838D\u8392\u8394\u8395\u8398\u8399\u839B\u839C\u839D\u83A6\u83A7\u83A9\u83AC\u83BE\u83BF\u83C0\u83C7\u83C9\u83CF\u83D0\u83D1\u83D4\u83DD\u8353\u83E8\u83EA\u83F6\u83F8\u83F9\u83FC\u8401\u8406\u840A\u840F\u8411\u8415\u8419\u83AD\u842F\u8439\u8445\u8447\u8448\u844A\u844D\u844F\u8451\u8452\u8456\u8458\u8459\u845A\u845C\u8460\u8464\u8465\u8467\u846A\u8470\u8473\u8474\u8476\u8478\u847C\u847D\u8481\u8485\u8492\u8493\u8495\u849E\u84A6\u84A8\u84A9\u84AA\u84AF\u84B1\u84B4\u84BA\u84BD\u84BE\u84C0\u84C2\u84C7\u84C8\u84CC\u84CF\u84D3"],["8fd9a1","\u84DC\u84E7\u84EA\u84EF\u84F0\u84F1\u84F2\u84F7\u8532\u84FA\u84FB\u84FD\u8502\u8503\u8507\u850C\u850E\u8510\u851C\u851E\u8522\u8523\u8524\u8525\u8527\u852A\u852B\u852F\u8533\u8534\u8536\u853F\u8546\u854F",4,"\u8556\u8559\u855C",6,"\u8564\u856B\u856F\u8579\u857A\u857B\u857D\u857F\u8581\u8585\u8586\u8589\u858B\u858C\u858F\u8593\u8598\u859D\u859F\u85A0\u85A2\u85A5\u85A7\u85B4\u85B6\u85B7\u85B8\u85BC\u85BD\u85BE\u85BF\u85C2\u85C7\u85CA\u85CB\u85CE\u85AD\u85D8\u85DA\u85DF\u85E0\u85E6\u85E8\u85ED\u85F3\u85F6\u85FC"],["8fdaa1","\u85FF\u8600\u8604\u8605\u860D\u860E\u8610\u8611\u8612\u8618\u8619\u861B\u861E\u8621\u8627\u8629\u8636\u8638\u863A\u863C\u863D\u8640\u8642\u8646\u8652\u8653\u8656\u8657\u8658\u8659\u865D\u8660",4,"\u8669\u866C\u866F\u8675\u8676\u8677\u867A\u868D\u8691\u8696\u8698\u869A\u869C\u86A1\u86A6\u86A7\u86A8\u86AD\u86B1\u86B3\u86B4\u86B5\u86B7\u86B8\u86B9\u86BF\u86C0\u86C1\u86C3\u86C5\u86D1\u86D2\u86D5\u86D7\u86DA\u86DC\u86E0\u86E3\u86E5\u86E7\u8688\u86FA\u86FC\u86FD\u8704\u8705\u8707\u870B\u870E\u870F\u8710\u8713\u8714\u8719\u871E\u871F\u8721\u8723"],["8fdba1","\u8728\u872E\u872F\u8731\u8732\u8739\u873A\u873C\u873D\u873E\u8740\u8743\u8745\u874D\u8758\u875D\u8761\u8764\u8765\u876F\u8771\u8772\u877B\u8783",6,"\u878B\u878C\u8790\u8793\u8795\u8797\u8798\u8799\u879E\u87A0\u87A3\u87A7\u87AC\u87AD\u87AE\u87B1\u87B5\u87BE\u87BF\u87C1\u87C8\u87C9\u87CA\u87CE\u87D5\u87D6\u87D9\u87DA\u87DC\u87DF\u87E2\u87E3\u87E4\u87EA\u87EB\u87ED\u87F1\u87F3\u87F8\u87FA\u87FF\u8801\u8803\u8806\u8809\u880A\u880B\u8810\u8819\u8812\u8813\u8814\u8818\u881A\u881B\u881C\u881E\u881F\u8828\u882D\u882E\u8830\u8832\u8835"],["8fdca1","\u883A\u883C\u8841\u8843\u8845\u8848\u8849\u884A\u884B\u884E\u8851\u8855\u8856\u8858\u885A\u885C\u885F\u8860\u8864\u8869\u8871\u8879\u887B\u8880\u8898\u889A\u889B\u889C\u889F\u88A0\u88A8\u88AA\u88BA\u88BD\u88BE\u88C0\u88CA",4,"\u88D1\u88D2\u88D3\u88DB\u88DE\u88E7\u88EF\u88F0\u88F1\u88F5\u88F7\u8901\u8906\u890D\u890E\u890F\u8915\u8916\u8918\u8919\u891A\u891C\u8920\u8926\u8927\u8928\u8930\u8931\u8932\u8935\u8939\u893A\u893E\u8940\u8942\u8945\u8946\u8949\u894F\u8952\u8957\u895A\u895B\u895C\u8961\u8962\u8963\u896B\u896E\u8970\u8973\u8975\u897A"],["8fdda1","\u897B\u897C\u897D\u8989\u898D\u8990\u8994\u8995\u899B\u899C\u899F\u89A0\u89A5\u89B0\u89B4\u89B5\u89B6\u89B7\u89BC\u89D4",4,"\u89E5\u89E9\u89EB\u89ED\u89F1\u89F3\u89F6\u89F9\u89FD\u89FF\u8A04\u8A05\u8A07\u8A0F\u8A11\u8A12\u8A14\u8A15\u8A1E\u8A20\u8A22\u8A24\u8A26\u8A2B\u8A2C\u8A2F\u8A35\u8A37\u8A3D\u8A3E\u8A40\u8A43\u8A45\u8A47\u8A49\u8A4D\u8A4E\u8A53\u8A56\u8A57\u8A58\u8A5C\u8A5D\u8A61\u8A65\u8A67\u8A75\u8A76\u8A77\u8A79\u8A7A\u8A7B\u8A7E\u8A7F\u8A80\u8A83\u8A86\u8A8B\u8A8F\u8A90\u8A92\u8A96\u8A97\u8A99\u8A9F\u8AA7\u8AA9\u8AAE\u8AAF\u8AB3"],["8fdea1","\u8AB6\u8AB7\u8ABB\u8ABE\u8AC3\u8AC6\u8AC8\u8AC9\u8ACA\u8AD1\u8AD3\u8AD4\u8AD5\u8AD7\u8ADD\u8ADF\u8AEC\u8AF0\u8AF4\u8AF5\u8AF6\u8AFC\u8AFF\u8B05\u8B06\u8B0B\u8B11\u8B1C\u8B1E\u8B1F\u8B0A\u8B2D\u8B30\u8B37\u8B3C\u8B42",4,"\u8B48\u8B52\u8B53\u8B54\u8B59\u8B4D\u8B5E\u8B63\u8B6D\u8B76\u8B78\u8B79\u8B7C\u8B7E\u8B81\u8B84\u8B85\u8B8B\u8B8D\u8B8F\u8B94\u8B95\u8B9C\u8B9E\u8B9F\u8C38\u8C39\u8C3D\u8C3E\u8C45\u8C47\u8C49\u8C4B\u8C4F\u8C51\u8C53\u8C54\u8C57\u8C58\u8C5B\u8C5D\u8C59\u8C63\u8C64\u8C66\u8C68\u8C69\u8C6D\u8C73\u8C75\u8C76\u8C7B\u8C7E\u8C86"],["8fdfa1","\u8C87\u8C8B\u8C90\u8C92\u8C93\u8C99\u8C9B\u8C9C\u8CA4\u8CB9\u8CBA\u8CC5\u8CC6\u8CC9\u8CCB\u8CCF\u8CD6\u8CD5\u8CD9\u8CDD\u8CE1\u8CE8\u8CEC\u8CEF\u8CF0\u8CF2\u8CF5\u8CF7\u8CF8\u8CFE\u8CFF\u8D01\u8D03\u8D09\u8D12\u8D17\u8D1B\u8D65\u8D69\u8D6C\u8D6E\u8D7F\u8D82\u8D84\u8D88\u8D8D\u8D90\u8D91\u8D95\u8D9E\u8D9F\u8DA0\u8DA6\u8DAB\u8DAC\u8DAF\u8DB2\u8DB5\u8DB7\u8DB9\u8DBB\u8DC0\u8DC5\u8DC6\u8DC7\u8DC8\u8DCA\u8DCE\u8DD1\u8DD4\u8DD5\u8DD7\u8DD9\u8DE4\u8DE5\u8DE7\u8DEC\u8DF0\u8DBC\u8DF1\u8DF2\u8DF4\u8DFD\u8E01\u8E04\u8E05\u8E06\u8E0B\u8E11\u8E14\u8E16\u8E20\u8E21\u8E22"],["8fe0a1","\u8E23\u8E26\u8E27\u8E31\u8E33\u8E36\u8E37\u8E38\u8E39\u8E3D\u8E40\u8E41\u8E4B\u8E4D\u8E4E\u8E4F\u8E54\u8E5B\u8E5C\u8E5D\u8E5E\u8E61\u8E62\u8E69\u8E6C\u8E6D\u8E6F\u8E70\u8E71\u8E79\u8E7A\u8E7B\u8E82\u8E83\u8E89\u8E90\u8E92\u8E95\u8E9A\u8E9B\u8E9D\u8E9E\u8EA2\u8EA7\u8EA9\u8EAD\u8EAE\u8EB3\u8EB5\u8EBA\u8EBB\u8EC0\u8EC1\u8EC3\u8EC4\u8EC7\u8ECF\u8ED1\u8ED4\u8EDC\u8EE8\u8EEE\u8EF0\u8EF1\u8EF7\u8EF9\u8EFA\u8EED\u8F00\u8F02\u8F07\u8F08\u8F0F\u8F10\u8F16\u8F17\u8F18\u8F1E\u8F20\u8F21\u8F23\u8F25\u8F27\u8F28\u8F2C\u8F2D\u8F2E\u8F34\u8F35\u8F36\u8F37\u8F3A\u8F40\u8F41"],["8fe1a1","\u8F43\u8F47\u8F4F\u8F51",4,"\u8F58\u8F5D\u8F5E\u8F65\u8F9D\u8FA0\u8FA1\u8FA4\u8FA5\u8FA6\u8FB5\u8FB6\u8FB8\u8FBE\u8FC0\u8FC1\u8FC6\u8FCA\u8FCB\u8FCD\u8FD0\u8FD2\u8FD3\u8FD5\u8FE0\u8FE3\u8FE4\u8FE8\u8FEE\u8FF1\u8FF5\u8FF6\u8FFB\u8FFE\u9002\u9004\u9008\u900C\u9018\u901B\u9028\u9029\u902F\u902A\u902C\u902D\u9033\u9034\u9037\u903F\u9043\u9044\u904C\u905B\u905D\u9062\u9066\u9067\u906C\u9070\u9074\u9079\u9085\u9088\u908B\u908C\u908E\u9090\u9095\u9097\u9098\u9099\u909B\u90A0\u90A1\u90A2\u90A5\u90B0\u90B2\u90B3\u90B4\u90B6\u90BD\u90CC\u90BE\u90C3"],["8fe2a1","\u90C4\u90C5\u90C7\u90C8\u90D5\u90D7\u90D8\u90D9\u90DC\u90DD\u90DF\u90E5\u90D2\u90F6\u90EB\u90EF\u90F0\u90F4\u90FE\u90FF\u9100\u9104\u9105\u9106\u9108\u910D\u9110\u9114\u9116\u9117\u9118\u911A\u911C\u911E\u9120\u9125\u9122\u9123\u9127\u9129\u912E\u912F\u9131\u9134\u9136\u9137\u9139\u913A\u913C\u913D\u9143\u9147\u9148\u914F\u9153\u9157\u9159\u915A\u915B\u9161\u9164\u9167\u916D\u9174\u9179\u917A\u917B\u9181\u9183\u9185\u9186\u918A\u918E\u9191\u9193\u9194\u9195\u9198\u919E\u91A1\u91A6\u91A8\u91AC\u91AD\u91AE\u91B0\u91B1\u91B2\u91B3\u91B6\u91BB\u91BC\u91BD\u91BF"],["8fe3a1","\u91C2\u91C3\u91C5\u91D3\u91D4\u91D7\u91D9\u91DA\u91DE\u91E4\u91E5\u91E9\u91EA\u91EC",5,"\u91F7\u91F9\u91FB\u91FD\u9200\u9201\u9204\u9205\u9206\u9207\u9209\u920A\u920C\u9210\u9212\u9213\u9216\u9218\u921C\u921D\u9223\u9224\u9225\u9226\u9228\u922E\u922F\u9230\u9233\u9235\u9236\u9238\u9239\u923A\u923C\u923E\u9240\u9242\u9243\u9246\u9247\u924A\u924D\u924E\u924F\u9251\u9258\u9259\u925C\u925D\u9260\u9261\u9265\u9267\u9268\u9269\u926E\u926F\u9270\u9275",4,"\u927B\u927C\u927D\u927F\u9288\u9289\u928A\u928D\u928E\u9292\u9297"],["8fe4a1","\u9299\u929F\u92A0\u92A4\u92A5\u92A7\u92A8\u92AB\u92AF\u92B2\u92B6\u92B8\u92BA\u92BB\u92BC\u92BD\u92BF",4,"\u92C5\u92C6\u92C7\u92C8\u92CB\u92CC\u92CD\u92CE\u92D0\u92D3\u92D5\u92D7\u92D8\u92D9\u92DC\u92DD\u92DF\u92E0\u92E1\u92E3\u92E5\u92E7\u92E8\u92EC\u92EE\u92F0\u92F9\u92FB\u92FF\u9300\u9302\u9308\u930D\u9311\u9314\u9315\u931C\u931D\u931E\u931F\u9321\u9324\u9325\u9327\u9329\u932A\u9333\u9334\u9336\u9337\u9347\u9348\u9349\u9350\u9351\u9352\u9355\u9357\u9358\u935A\u935E\u9364\u9365\u9367\u9369\u936A\u936D\u936F\u9370\u9371\u9373\u9374\u9376"],["8fe5a1","\u937A\u937D\u937F\u9380\u9381\u9382\u9388\u938A\u938B\u938D\u938F\u9392\u9395\u9398\u939B\u939E\u93A1\u93A3\u93A4\u93A6\u93A8\u93AB\u93B4\u93B5\u93B6\u93BA\u93A9\u93C1\u93C4\u93C5\u93C6\u93C7\u93C9",4,"\u93D3\u93D9\u93DC\u93DE\u93DF\u93E2\u93E6\u93E7\u93F9\u93F7\u93F8\u93FA\u93FB\u93FD\u9401\u9402\u9404\u9408\u9409\u940D\u940E\u940F\u9415\u9416\u9417\u941F\u942E\u942F\u9431\u9432\u9433\u9434\u943B\u943F\u943D\u9443\u9445\u9448\u944A\u944C\u9455\u9459\u945C\u945F\u9461\u9463\u9468\u946B\u946D\u946E\u946F\u9471\u9472\u9484\u9483\u9578\u9579"],["8fe6a1","\u957E\u9584\u9588\u958C\u958D\u958E\u959D\u959E\u959F\u95A1\u95A6\u95A9\u95AB\u95AC\u95B4\u95B6\u95BA\u95BD\u95BF\u95C6\u95C8\u95C9\u95CB\u95D0\u95D1\u95D2\u95D3\u95D9\u95DA\u95DD\u95DE\u95DF\u95E0\u95E4\u95E6\u961D\u961E\u9622\u9624\u9625\u9626\u962C\u9631\u9633\u9637\u9638\u9639\u963A\u963C\u963D\u9641\u9652\u9654\u9656\u9657\u9658\u9661\u966E\u9674\u967B\u967C\u967E\u967F\u9681\u9682\u9683\u9684\u9689\u9691\u9696\u969A\u969D\u969F\u96A4\u96A5\u96A6\u96A9\u96AE\u96AF\u96B3\u96BA\u96CA\u96D2\u5DB2\u96D8\u96DA\u96DD\u96DE\u96DF\u96E9\u96EF\u96F1\u96FA\u9702"],["8fe7a1","\u9703\u9705\u9709\u971A\u971B\u971D\u9721\u9722\u9723\u9728\u9731\u9733\u9741\u9743\u974A\u974E\u974F\u9755\u9757\u9758\u975A\u975B\u9763\u9767\u976A\u976E\u9773\u9776\u9777\u9778\u977B\u977D\u977F\u9780\u9789\u9795\u9796\u9797\u9799\u979A\u979E\u979F\u97A2\u97AC\u97AE\u97B1\u97B2\u97B5\u97B6\u97B8\u97B9\u97BA\u97BC\u97BE\u97BF\u97C1\u97C4\u97C5\u97C7\u97C9\u97CA\u97CC\u97CD\u97CE\u97D0\u97D1\u97D4\u97D7\u97D8\u97D9\u97DD\u97DE\u97E0\u97DB\u97E1\u97E4\u97EF\u97F1\u97F4\u97F7\u97F8\u97FA\u9807\u980A\u9819\u980D\u980E\u9814\u9816\u981C\u981E\u9820\u9823\u9826"],["8fe8a1","\u982B\u982E\u982F\u9830\u9832\u9833\u9835\u9825\u983E\u9844\u9847\u984A\u9851\u9852\u9853\u9856\u9857\u9859\u985A\u9862\u9863\u9865\u9866\u986A\u986C\u98AB\u98AD\u98AE\u98B0\u98B4\u98B7\u98B8\u98BA\u98BB\u98BF\u98C2\u98C5\u98C8\u98CC\u98E1\u98E3\u98E5\u98E6\u98E7\u98EA\u98F3\u98F6\u9902\u9907\u9908\u9911\u9915\u9916\u9917\u991A\u991B\u991C\u991F\u9922\u9926\u9927\u992B\u9931",4,"\u9939\u993A\u993B\u993C\u9940\u9941\u9946\u9947\u9948\u994D\u994E\u9954\u9958\u9959\u995B\u995C\u995E\u995F\u9960\u999B\u999D\u999F\u99A6\u99B0\u99B1\u99B2\u99B5"],["8fe9a1","\u99B9\u99BA\u99BD\u99BF\u99C3\u99C9\u99D3\u99D4\u99D9\u99DA\u99DC\u99DE\u99E7\u99EA\u99EB\u99EC\u99F0\u99F4\u99F5\u99F9\u99FD\u99FE\u9A02\u9A03\u9A04\u9A0B\u9A0C\u9A10\u9A11\u9A16\u9A1E\u9A20\u9A22\u9A23\u9A24\u9A27\u9A2D\u9A2E\u9A33\u9A35\u9A36\u9A38\u9A47\u9A41\u9A44\u9A4A\u9A4B\u9A4C\u9A4E\u9A51\u9A54\u9A56\u9A5D\u9AAA\u9AAC\u9AAE\u9AAF\u9AB2\u9AB4\u9AB5\u9AB6\u9AB9\u9ABB\u9ABE\u9ABF\u9AC1\u9AC3\u9AC6\u9AC8\u9ACE\u9AD0\u9AD2\u9AD5\u9AD6\u9AD7\u9ADB\u9ADC\u9AE0\u9AE4\u9AE5\u9AE7\u9AE9\u9AEC\u9AF2\u9AF3\u9AF5\u9AF9\u9AFA\u9AFD\u9AFF",4],["8feaa1","\u9B04\u9B05\u9B08\u9B09\u9B0B\u9B0C\u9B0D\u9B0E\u9B10\u9B12\u9B16\u9B19\u9B1B\u9B1C\u9B20\u9B26\u9B2B\u9B2D\u9B33\u9B34\u9B35\u9B37\u9B39\u9B3A\u9B3D\u9B48\u9B4B\u9B4C\u9B55\u9B56\u9B57\u9B5B\u9B5E\u9B61\u9B63\u9B65\u9B66\u9B68\u9B6A",4,"\u9B73\u9B75\u9B77\u9B78\u9B79\u9B7F\u9B80\u9B84\u9B85\u9B86\u9B87\u9B89\u9B8A\u9B8B\u9B8D\u9B8F\u9B90\u9B94\u9B9A\u9B9D\u9B9E\u9BA6\u9BA7\u9BA9\u9BAC\u9BB0\u9BB1\u9BB2\u9BB7\u9BB8\u9BBB\u9BBC\u9BBE\u9BBF\u9BC1\u9BC7\u9BC8\u9BCE\u9BD0\u9BD7\u9BD8\u9BDD\u9BDF\u9BE5\u9BE7\u9BEA\u9BEB\u9BEF\u9BF3\u9BF7\u9BF8"],["8feba1","\u9BF9\u9BFA\u9BFD\u9BFF\u9C00\u9C02\u9C0B\u9C0F\u9C11\u9C16\u9C18\u9C19\u9C1A\u9C1C\u9C1E\u9C22\u9C23\u9C26",4,"\u9C31\u9C35\u9C36\u9C37\u9C3D\u9C41\u9C43\u9C44\u9C45\u9C49\u9C4A\u9C4E\u9C4F\u9C50\u9C53\u9C54\u9C56\u9C58\u9C5B\u9C5D\u9C5E\u9C5F\u9C63\u9C69\u9C6A\u9C5C\u9C6B\u9C68\u9C6E\u9C70\u9C72\u9C75\u9C77\u9C7B\u9CE6\u9CF2\u9CF7\u9CF9\u9D0B\u9D02\u9D11\u9D17\u9D18\u9D1C\u9D1D\u9D1E\u9D2F\u9D30\u9D32\u9D33\u9D34\u9D3A\u9D3C\u9D45\u9D3D\u9D42\u9D43\u9D47\u9D4A\u9D53\u9D54\u9D5F\u9D63\u9D62\u9D65\u9D69\u9D6A\u9D6B\u9D70\u9D76\u9D77\u9D7B"],["8feca1","\u9D7C\u9D7E\u9D83\u9D84\u9D86\u9D8A\u9D8D\u9D8E\u9D92\u9D93\u9D95\u9D96\u9D97\u9D98\u9DA1\u9DAA\u9DAC\u9DAE\u9DB1\u9DB5\u9DB9\u9DBC\u9DBF\u9DC3\u9DC7\u9DC9\u9DCA\u9DD4\u9DD5\u9DD6\u9DD7\u9DDA\u9DDE\u9DDF\u9DE0\u9DE5\u9DE7\u9DE9\u9DEB\u9DEE\u9DF0\u9DF3\u9DF4\u9DFE\u9E0A\u9E02\u9E07\u9E0E\u9E10\u9E11\u9E12\u9E15\u9E16\u9E19\u9E1C\u9E1D\u9E7A\u9E7B\u9E7C\u9E80\u9E82\u9E83\u9E84\u9E85\u9E87\u9E8E\u9E8F\u9E96\u9E98\u9E9B\u9E9E\u9EA4\u9EA8\u9EAC\u9EAE\u9EAF\u9EB0\u9EB3\u9EB4\u9EB5\u9EC6\u9EC8\u9ECB\u9ED5\u9EDF\u9EE4\u9EE7\u9EEC\u9EED\u9EEE\u9EF0\u9EF1\u9EF2\u9EF5"],["8feda1","\u9EF8\u9EFF\u9F02\u9F03\u9F09\u9F0F\u9F10\u9F11\u9F12\u9F14\u9F16\u9F17\u9F19\u9F1A\u9F1B\u9F1F\u9F22\u9F26\u9F2A\u9F2B\u9F2F\u9F31\u9F32\u9F34\u9F37\u9F39\u9F3A\u9F3C\u9F3D\u9F3F\u9F41\u9F43",4,"\u9F53\u9F55\u9F56\u9F57\u9F58\u9F5A\u9F5D\u9F5E\u9F68\u9F69\u9F6D",4,"\u9F73\u9F75\u9F7A\u9F7D\u9F8F\u9F90\u9F91\u9F92\u9F94\u9F96\u9F97\u9F9E\u9FA1\u9FA2\u9FA3\u9FA5"]]});var JFt=H((eig,J2l)=>{J2l.exports=[["0","\0",127,"\u20AC"],["8140","\u4E02\u4E04\u4E05\u4E06\u4E0F\u4E12\u4E17\u4E1F\u4E20\u4E21\u4E23\u4E26\u4E29\u4E2E\u4E2F\u4E31\u4E33\u4E35\u4E37\u4E3C\u4E40\u4E41\u4E42\u4E44\u4E46\u4E4A\u4E51\u4E55\u4E57\u4E5A\u4E5B\u4E62\u4E63\u4E64\u4E65\u4E67\u4E68\u4E6A",5,"\u4E72\u4E74",9,"\u4E7F",6,"\u4E87\u4E8A"],["8180","\u4E90\u4E96\u4E97\u4E99\u4E9C\u4E9D\u4E9E\u4EA3\u4EAA\u4EAF\u4EB0\u4EB1\u4EB4\u4EB6\u4EB7\u4EB8\u4EB9\u4EBC\u4EBD\u4EBE\u4EC8\u4ECC\u4ECF\u4ED0\u4ED2\u4EDA\u4EDB\u4EDC\u4EE0\u4EE2\u4EE6\u4EE7\u4EE9\u4EED\u4EEE\u4EEF\u4EF1\u4EF4\u4EF8\u4EF9\u4EFA\u4EFC\u4EFE\u4F00\u4F02",6,"\u4F0B\u4F0C\u4F12",4,"\u4F1C\u4F1D\u4F21\u4F23\u4F28\u4F29\u4F2C\u4F2D\u4F2E\u4F31\u4F33\u4F35\u4F37\u4F39\u4F3B\u4F3E",4,"\u4F44\u4F45\u4F47",5,"\u4F52\u4F54\u4F56\u4F61\u4F62\u4F66\u4F68\u4F6A\u4F6B\u4F6D\u4F6E\u4F71\u4F72\u4F75\u4F77\u4F78\u4F79\u4F7A\u4F7D\u4F80\u4F81\u4F82\u4F85\u4F86\u4F87\u4F8A\u4F8C\u4F8E\u4F90\u4F92\u4F93\u4F95\u4F96\u4F98\u4F99\u4F9A\u4F9C\u4F9E\u4F9F\u4FA1\u4FA2"],["8240","\u4FA4\u4FAB\u4FAD\u4FB0",4,"\u4FB6",8,"\u4FC0\u4FC1\u4FC2\u4FC6\u4FC7\u4FC8\u4FC9\u4FCB\u4FCC\u4FCD\u4FD2",4,"\u4FD9\u4FDB\u4FE0\u4FE2\u4FE4\u4FE5\u4FE7\u4FEB\u4FEC\u4FF0\u4FF2\u4FF4\u4FF5\u4FF6\u4FF7\u4FF9\u4FFB\u4FFC\u4FFD\u4FFF",11],["8280","\u500B\u500E\u5010\u5011\u5013\u5015\u5016\u5017\u501B\u501D\u501E\u5020\u5022\u5023\u5024\u5027\u502B\u502F",10,"\u503B\u503D\u503F\u5040\u5041\u5042\u5044\u5045\u5046\u5049\u504A\u504B\u504D\u5050",4,"\u5056\u5057\u5058\u5059\u505B\u505D",7,"\u5066",5,"\u506D",8,"\u5078\u5079\u507A\u507C\u507D\u5081\u5082\u5083\u5084\u5086\u5087\u5089\u508A\u508B\u508C\u508E",20,"\u50A4\u50A6\u50AA\u50AB\u50AD",4,"\u50B3",6,"\u50BC"],["8340","\u50BD",17,"\u50D0",5,"\u50D7\u50D8\u50D9\u50DB",10,"\u50E8\u50E9\u50EA\u50EB\u50EF\u50F0\u50F1\u50F2\u50F4\u50F6",4,"\u50FC",9,"\u5108"],["8380","\u5109\u510A\u510C",5,"\u5113",13,"\u5122",28,"\u5142\u5147\u514A\u514C\u514E\u514F\u5150\u5152\u5153\u5157\u5158\u5159\u515B\u515D",4,"\u5163\u5164\u5166\u5167\u5169\u516A\u516F\u5172\u517A\u517E\u517F\u5183\u5184\u5186\u5187\u518A\u518B\u518E\u518F\u5190\u5191\u5193\u5194\u5198\u519A\u519D\u519E\u519F\u51A1\u51A3\u51A6",4,"\u51AD\u51AE\u51B4\u51B8\u51B9\u51BA\u51BE\u51BF\u51C1\u51C2\u51C3\u51C5\u51C8\u51CA\u51CD\u51CE\u51D0\u51D2",5],["8440","\u51D8\u51D9\u51DA\u51DC\u51DE\u51DF\u51E2\u51E3\u51E5",5,"\u51EC\u51EE\u51F1\u51F2\u51F4\u51F7\u51FE\u5204\u5205\u5209\u520B\u520C\u520F\u5210\u5213\u5214\u5215\u521C\u521E\u521F\u5221\u5222\u5223\u5225\u5226\u5227\u522A\u522C\u522F\u5231\u5232\u5234\u5235\u523C\u523E\u5244",5,"\u524B\u524E\u524F\u5252\u5253\u5255\u5257\u5258"],["8480","\u5259\u525A\u525B\u525D\u525F\u5260\u5262\u5263\u5264\u5266\u5268\u526B\u526C\u526D\u526E\u5270\u5271\u5273",9,"\u527E\u5280\u5283",4,"\u5289",6,"\u5291\u5292\u5294",6,"\u529C\u52A4\u52A5\u52A6\u52A7\u52AE\u52AF\u52B0\u52B4",9,"\u52C0\u52C1\u52C2\u52C4\u52C5\u52C6\u52C8\u52CA\u52CC\u52CD\u52CE\u52CF\u52D1\u52D3\u52D4\u52D5\u52D7\u52D9",5,"\u52E0\u52E1\u52E2\u52E3\u52E5",10,"\u52F1",7,"\u52FB\u52FC\u52FD\u5301\u5302\u5303\u5304\u5307\u5309\u530A\u530B\u530C\u530E"],["8540","\u5311\u5312\u5313\u5314\u5318\u531B\u531C\u531E\u531F\u5322\u5324\u5325\u5327\u5328\u5329\u532B\u532C\u532D\u532F",9,"\u533C\u533D\u5340\u5342\u5344\u5346\u534B\u534C\u534D\u5350\u5354\u5358\u5359\u535B\u535D\u5365\u5368\u536A\u536C\u536D\u5372\u5376\u5379\u537B\u537C\u537D\u537E\u5380\u5381\u5383\u5387\u5388\u538A\u538E\u538F"],["8580","\u5390",4,"\u5396\u5397\u5399\u539B\u539C\u539E\u53A0\u53A1\u53A4\u53A7\u53AA\u53AB\u53AC\u53AD\u53AF",6,"\u53B7\u53B8\u53B9\u53BA\u53BC\u53BD\u53BE\u53C0\u53C3",4,"\u53CE\u53CF\u53D0\u53D2\u53D3\u53D5\u53DA\u53DC\u53DD\u53DE\u53E1\u53E2\u53E7\u53F4\u53FA\u53FE\u53FF\u5400\u5402\u5405\u5407\u540B\u5414\u5418\u5419\u541A\u541C\u5422\u5424\u5425\u542A\u5430\u5433\u5436\u5437\u543A\u543D\u543F\u5441\u5442\u5444\u5445\u5447\u5449\u544C\u544D\u544E\u544F\u5451\u545A\u545D",4,"\u5463\u5465\u5467\u5469",7,"\u5474\u5479\u547A\u547E\u547F\u5481\u5483\u5485\u5487\u5488\u5489\u548A\u548D\u5491\u5493\u5497\u5498\u549C\u549E\u549F\u54A0\u54A1"],["8640","\u54A2\u54A5\u54AE\u54B0\u54B2\u54B5\u54B6\u54B7\u54B9\u54BA\u54BC\u54BE\u54C3\u54C5\u54CA\u54CB\u54D6\u54D8\u54DB\u54E0",4,"\u54EB\u54EC\u54EF\u54F0\u54F1\u54F4",5,"\u54FB\u54FE\u5500\u5502\u5503\u5504\u5505\u5508\u550A",4,"\u5512\u5513\u5515",5,"\u551C\u551D\u551E\u551F\u5521\u5525\u5526"],["8680","\u5528\u5529\u552B\u552D\u5532\u5534\u5535\u5536\u5538\u5539\u553A\u553B\u553D\u5540\u5542\u5545\u5547\u5548\u554B",4,"\u5551\u5552\u5553\u5554\u5557",4,"\u555D\u555E\u555F\u5560\u5562\u5563\u5568\u5569\u556B\u556F",5,"\u5579\u557A\u557D\u557F\u5585\u5586\u558C\u558D\u558E\u5590\u5592\u5593\u5595\u5596\u5597\u559A\u559B\u559E\u55A0",6,"\u55A8",8,"\u55B2\u55B4\u55B6\u55B8\u55BA\u55BC\u55BF",4,"\u55C6\u55C7\u55C8\u55CA\u55CB\u55CE\u55CF\u55D0\u55D5\u55D7",4,"\u55DE\u55E0\u55E2\u55E7\u55E9\u55ED\u55EE\u55F0\u55F1\u55F4\u55F6\u55F8",4,"\u55FF\u5602\u5603\u5604\u5605"],["8740","\u5606\u5607\u560A\u560B\u560D\u5610",7,"\u5619\u561A\u561C\u561D\u5620\u5621\u5622\u5625\u5626\u5628\u5629\u562A\u562B\u562E\u562F\u5630\u5633\u5635\u5637\u5638\u563A\u563C\u563D\u563E\u5640",11,"\u564F",4,"\u5655\u5656\u565A\u565B\u565D",4],["8780","\u5663\u5665\u5666\u5667\u566D\u566E\u566F\u5670\u5672\u5673\u5674\u5675\u5677\u5678\u5679\u567A\u567D",7,"\u5687",6,"\u5690\u5691\u5692\u5694",14,"\u56A4",10,"\u56B0",6,"\u56B8\u56B9\u56BA\u56BB\u56BD",12,"\u56CB",8,"\u56D5\u56D6\u56D8\u56D9\u56DC\u56E3\u56E5",5,"\u56EC\u56EE\u56EF\u56F2\u56F3\u56F6\u56F7\u56F8\u56FB\u56FC\u5700\u5701\u5702\u5705\u5707\u570B",6],["8840","\u5712",9,"\u571D\u571E\u5720\u5721\u5722\u5724\u5725\u5726\u5727\u572B\u5731\u5732\u5734",4,"\u573C\u573D\u573F\u5741\u5743\u5744\u5745\u5746\u5748\u5749\u574B\u5752",4,"\u5758\u5759\u5762\u5763\u5765\u5767\u576C\u576E\u5770\u5771\u5772\u5774\u5775\u5778\u5779\u577A\u577D\u577E\u577F\u5780"],["8880","\u5781\u5787\u5788\u5789\u578A\u578D",4,"\u5794",6,"\u579C\u579D\u579E\u579F\u57A5\u57A8\u57AA\u57AC\u57AF\u57B0\u57B1\u57B3\u57B5\u57B6\u57B7\u57B9",8,"\u57C4",6,"\u57CC\u57CD\u57D0\u57D1\u57D3\u57D6\u57D7\u57DB\u57DC\u57DE\u57E1\u57E2\u57E3\u57E5",7,"\u57EE\u57F0\u57F1\u57F2\u57F3\u57F5\u57F6\u57F7\u57FB\u57FC\u57FE\u57FF\u5801\u5803\u5804\u5805\u5808\u5809\u580A\u580C\u580E\u580F\u5810\u5812\u5813\u5814\u5816\u5817\u5818\u581A\u581B\u581C\u581D\u581F\u5822\u5823\u5825",4,"\u582B",4,"\u5831\u5832\u5833\u5834\u5836",7],["8940","\u583E",5,"\u5845",6,"\u584E\u584F\u5850\u5852\u5853\u5855\u5856\u5857\u5859",4,"\u585F",5,"\u5866",4,"\u586D",16,"\u587F\u5882\u5884\u5886\u5887\u5888\u588A\u588B\u588C"],["8980","\u588D",4,"\u5894",4,"\u589B\u589C\u589D\u58A0",7,"\u58AA",17,"\u58BD\u58BE\u58BF\u58C0\u58C2\u58C3\u58C4\u58C6",10,"\u58D2\u58D3\u58D4\u58D6",13,"\u58E5",5,"\u58ED\u58EF\u58F1\u58F2\u58F4\u58F5\u58F7\u58F8\u58FA",7,"\u5903\u5905\u5906\u5908",4,"\u590E\u5910\u5911\u5912\u5913\u5917\u5918\u591B\u591D\u591E\u5920\u5921\u5922\u5923\u5926\u5928\u592C\u5930\u5932\u5933\u5935\u5936\u593B"],["8a40","\u593D\u593E\u593F\u5940\u5943\u5945\u5946\u594A\u594C\u594D\u5950\u5952\u5953\u5959\u595B",4,"\u5961\u5963\u5964\u5966",12,"\u5975\u5977\u597A\u597B\u597C\u597E\u597F\u5980\u5985\u5989\u598B\u598C\u598E\u598F\u5990\u5991\u5994\u5995\u5998\u599A\u599B\u599C\u599D\u599F\u59A0\u59A1\u59A2\u59A6"],["8a80","\u59A7\u59AC\u59AD\u59B0\u59B1\u59B3",5,"\u59BA\u59BC\u59BD\u59BF",6,"\u59C7\u59C8\u59C9\u59CC\u59CD\u59CE\u59CF\u59D5\u59D6\u59D9\u59DB\u59DE",4,"\u59E4\u59E6\u59E7\u59E9\u59EA\u59EB\u59ED",11,"\u59FA\u59FC\u59FD\u59FE\u5A00\u5A02\u5A0A\u5A0B\u5A0D\u5A0E\u5A0F\u5A10\u5A12\u5A14\u5A15\u5A16\u5A17\u5A19\u5A1A\u5A1B\u5A1D\u5A1E\u5A21\u5A22\u5A24\u5A26\u5A27\u5A28\u5A2A",6,"\u5A33\u5A35\u5A37",4,"\u5A3D\u5A3E\u5A3F\u5A41",4,"\u5A47\u5A48\u5A4B",9,"\u5A56\u5A57\u5A58\u5A59\u5A5B",5],["8b40","\u5A61\u5A63\u5A64\u5A65\u5A66\u5A68\u5A69\u5A6B",8,"\u5A78\u5A79\u5A7B\u5A7C\u5A7D\u5A7E\u5A80",17,"\u5A93",6,"\u5A9C",13,"\u5AAB\u5AAC"],["8b80","\u5AAD",4,"\u5AB4\u5AB6\u5AB7\u5AB9",4,"\u5ABF\u5AC0\u5AC3",5,"\u5ACA\u5ACB\u5ACD",4,"\u5AD3\u5AD5\u5AD7\u5AD9\u5ADA\u5ADB\u5ADD\u5ADE\u5ADF\u5AE2\u5AE4\u5AE5\u5AE7\u5AE8\u5AEA\u5AEC",4,"\u5AF2",22,"\u5B0A",11,"\u5B18",25,"\u5B33\u5B35\u5B36\u5B38",7,"\u5B41",6],["8c40","\u5B48",7,"\u5B52\u5B56\u5B5E\u5B60\u5B61\u5B67\u5B68\u5B6B\u5B6D\u5B6E\u5B6F\u5B72\u5B74\u5B76\u5B77\u5B78\u5B79\u5B7B\u5B7C\u5B7E\u5B7F\u5B82\u5B86\u5B8A\u5B8D\u5B8E\u5B90\u5B91\u5B92\u5B94\u5B96\u5B9F\u5BA7\u5BA8\u5BA9\u5BAC\u5BAD\u5BAE\u5BAF\u5BB1\u5BB2\u5BB7\u5BBA\u5BBB\u5BBC\u5BC0\u5BC1\u5BC3\u5BC8\u5BC9\u5BCA\u5BCB\u5BCD\u5BCE\u5BCF"],["8c80","\u5BD1\u5BD4",8,"\u5BE0\u5BE2\u5BE3\u5BE6\u5BE7\u5BE9",4,"\u5BEF\u5BF1",6,"\u5BFD\u5BFE\u5C00\u5C02\u5C03\u5C05\u5C07\u5C08\u5C0B\u5C0C\u5C0D\u5C0E\u5C10\u5C12\u5C13\u5C17\u5C19\u5C1B\u5C1E\u5C1F\u5C20\u5C21\u5C23\u5C26\u5C28\u5C29\u5C2A\u5C2B\u5C2D\u5C2E\u5C2F\u5C30\u5C32\u5C33\u5C35\u5C36\u5C37\u5C43\u5C44\u5C46\u5C47\u5C4C\u5C4D\u5C52\u5C53\u5C54\u5C56\u5C57\u5C58\u5C5A\u5C5B\u5C5C\u5C5D\u5C5F\u5C62\u5C64\u5C67",6,"\u5C70\u5C72",6,"\u5C7B\u5C7C\u5C7D\u5C7E\u5C80\u5C83",4,"\u5C89\u5C8A\u5C8B\u5C8E\u5C8F\u5C92\u5C93\u5C95\u5C9D",4,"\u5CA4",4],["8d40","\u5CAA\u5CAE\u5CAF\u5CB0\u5CB2\u5CB4\u5CB6\u5CB9\u5CBA\u5CBB\u5CBC\u5CBE\u5CC0\u5CC2\u5CC3\u5CC5",5,"\u5CCC",5,"\u5CD3",5,"\u5CDA",6,"\u5CE2\u5CE3\u5CE7\u5CE9\u5CEB\u5CEC\u5CEE\u5CEF\u5CF1",9,"\u5CFC",4],["8d80","\u5D01\u5D04\u5D05\u5D08",5,"\u5D0F",4,"\u5D15\u5D17\u5D18\u5D19\u5D1A\u5D1C\u5D1D\u5D1F",4,"\u5D25\u5D28\u5D2A\u5D2B\u5D2C\u5D2F",4,"\u5D35",7,"\u5D3F",7,"\u5D48\u5D49\u5D4D",10,"\u5D59\u5D5A\u5D5C\u5D5E",10,"\u5D6A\u5D6D\u5D6E\u5D70\u5D71\u5D72\u5D73\u5D75",12,"\u5D83",21,"\u5D9A\u5D9B\u5D9C\u5D9E\u5D9F\u5DA0"],["8e40","\u5DA1",21,"\u5DB8",12,"\u5DC6",6,"\u5DCE",12,"\u5DDC\u5DDF\u5DE0\u5DE3\u5DE4\u5DEA\u5DEC\u5DED"],["8e80","\u5DF0\u5DF5\u5DF6\u5DF8",4,"\u5DFF\u5E00\u5E04\u5E07\u5E09\u5E0A\u5E0B\u5E0D\u5E0E\u5E12\u5E13\u5E17\u5E1E",7,"\u5E28",4,"\u5E2F\u5E30\u5E32",4,"\u5E39\u5E3A\u5E3E\u5E3F\u5E40\u5E41\u5E43\u5E46",5,"\u5E4D",6,"\u5E56",4,"\u5E5C\u5E5D\u5E5F\u5E60\u5E63",14,"\u5E75\u5E77\u5E79\u5E7E\u5E81\u5E82\u5E83\u5E85\u5E88\u5E89\u5E8C\u5E8D\u5E8E\u5E92\u5E98\u5E9B\u5E9D\u5EA1\u5EA2\u5EA3\u5EA4\u5EA8",4,"\u5EAE",4,"\u5EB4\u5EBA\u5EBB\u5EBC\u5EBD\u5EBF",6],["8f40","\u5EC6\u5EC7\u5EC8\u5ECB",5,"\u5ED4\u5ED5\u5ED7\u5ED8\u5ED9\u5EDA\u5EDC",11,"\u5EE9\u5EEB",8,"\u5EF5\u5EF8\u5EF9\u5EFB\u5EFC\u5EFD\u5F05\u5F06\u5F07\u5F09\u5F0C\u5F0D\u5F0E\u5F10\u5F12\u5F14\u5F16\u5F19\u5F1A\u5F1C\u5F1D\u5F1E\u5F21\u5F22\u5F23\u5F24"],["8f80","\u5F28\u5F2B\u5F2C\u5F2E\u5F30\u5F32",6,"\u5F3B\u5F3D\u5F3E\u5F3F\u5F41",14,"\u5F51\u5F54\u5F59\u5F5A\u5F5B\u5F5C\u5F5E\u5F5F\u5F60\u5F63\u5F65\u5F67\u5F68\u5F6B\u5F6E\u5F6F\u5F72\u5F74\u5F75\u5F76\u5F78\u5F7A\u5F7D\u5F7E\u5F7F\u5F83\u5F86\u5F8D\u5F8E\u5F8F\u5F91\u5F93\u5F94\u5F96\u5F9A\u5F9B\u5F9D\u5F9E\u5F9F\u5FA0\u5FA2",5,"\u5FA9\u5FAB\u5FAC\u5FAF",5,"\u5FB6\u5FB8\u5FB9\u5FBA\u5FBB\u5FBE",4,"\u5FC7\u5FC8\u5FCA\u5FCB\u5FCE\u5FD3\u5FD4\u5FD5\u5FDA\u5FDB\u5FDC\u5FDE\u5FDF\u5FE2\u5FE3\u5FE5\u5FE6\u5FE8\u5FE9\u5FEC\u5FEF\u5FF0\u5FF2\u5FF3\u5FF4\u5FF6\u5FF7\u5FF9\u5FFA\u5FFC\u6007"],["9040","\u6008\u6009\u600B\u600C\u6010\u6011\u6013\u6017\u6018\u601A\u601E\u601F\u6022\u6023\u6024\u602C\u602D\u602E\u6030",4,"\u6036",4,"\u603D\u603E\u6040\u6044",6,"\u604C\u604E\u604F\u6051\u6053\u6054\u6056\u6057\u6058\u605B\u605C\u605E\u605F\u6060\u6061\u6065\u6066\u606E\u6071\u6072\u6074\u6075\u6077\u607E\u6080"],["9080","\u6081\u6082\u6085\u6086\u6087\u6088\u608A\u608B\u608E\u608F\u6090\u6091\u6093\u6095\u6097\u6098\u6099\u609C\u609E\u60A1\u60A2\u60A4\u60A5\u60A7\u60A9\u60AA\u60AE\u60B0\u60B3\u60B5\u60B6\u60B7\u60B9\u60BA\u60BD",7,"\u60C7\u60C8\u60C9\u60CC",4,"\u60D2\u60D3\u60D4\u60D6\u60D7\u60D9\u60DB\u60DE\u60E1",4,"\u60EA\u60F1\u60F2\u60F5\u60F7\u60F8\u60FB",4,"\u6102\u6103\u6104\u6105\u6107\u610A\u610B\u610C\u6110",4,"\u6116\u6117\u6118\u6119\u611B\u611C\u611D\u611E\u6121\u6122\u6125\u6128\u6129\u612A\u612C",18,"\u6140",6],["9140","\u6147\u6149\u614B\u614D\u614F\u6150\u6152\u6153\u6154\u6156",6,"\u615E\u615F\u6160\u6161\u6163\u6164\u6165\u6166\u6169",6,"\u6171\u6172\u6173\u6174\u6176\u6178",18,"\u618C\u618D\u618F",4,"\u6195"],["9180","\u6196",6,"\u619E",8,"\u61AA\u61AB\u61AD",9,"\u61B8",5,"\u61BF\u61C0\u61C1\u61C3",4,"\u61C9\u61CC",4,"\u61D3\u61D5",16,"\u61E7",13,"\u61F6",8,"\u6200",5,"\u6207\u6209\u6213\u6214\u6219\u621C\u621D\u621E\u6220\u6223\u6226\u6227\u6228\u6229\u622B\u622D\u622F\u6230\u6231\u6232\u6235\u6236\u6238",4,"\u6242\u6244\u6245\u6246\u624A"],["9240","\u624F\u6250\u6255\u6256\u6257\u6259\u625A\u625C",6,"\u6264\u6265\u6268\u6271\u6272\u6274\u6275\u6277\u6278\u627A\u627B\u627D\u6281\u6282\u6283\u6285\u6286\u6287\u6288\u628B",5,"\u6294\u6299\u629C\u629D\u629E\u62A3\u62A6\u62A7\u62A9\u62AA\u62AD\u62AE\u62AF\u62B0\u62B2\u62B3\u62B4\u62B6\u62B7\u62B8\u62BA\u62BE\u62C0\u62C1"],["9280","\u62C3\u62CB\u62CF\u62D1\u62D5\u62DD\u62DE\u62E0\u62E1\u62E4\u62EA\u62EB\u62F0\u62F2\u62F5\u62F8\u62F9\u62FA\u62FB\u6300\u6303\u6304\u6305\u6306\u630A\u630B\u630C\u630D\u630F\u6310\u6312\u6313\u6314\u6315\u6317\u6318\u6319\u631C\u6326\u6327\u6329\u632C\u632D\u632E\u6330\u6331\u6333",5,"\u633B\u633C\u633E\u633F\u6340\u6341\u6344\u6347\u6348\u634A\u6351\u6352\u6353\u6354\u6356",7,"\u6360\u6364\u6365\u6366\u6368\u636A\u636B\u636C\u636F\u6370\u6372\u6373\u6374\u6375\u6378\u6379\u637C\u637D\u637E\u637F\u6381\u6383\u6384\u6385\u6386\u638B\u638D\u6391\u6393\u6394\u6395\u6397\u6399",6,"\u63A1\u63A4\u63A6\u63AB\u63AF\u63B1\u63B2\u63B5\u63B6\u63B9\u63BB\u63BD\u63BF\u63C0"],["9340","\u63C1\u63C2\u63C3\u63C5\u63C7\u63C8\u63CA\u63CB\u63CC\u63D1\u63D3\u63D4\u63D5\u63D7",6,"\u63DF\u63E2\u63E4",4,"\u63EB\u63EC\u63EE\u63EF\u63F0\u63F1\u63F3\u63F5\u63F7\u63F9\u63FA\u63FB\u63FC\u63FE\u6403\u6404\u6406",4,"\u640D\u640E\u6411\u6412\u6415",5,"\u641D\u641F\u6422\u6423\u6424"],["9380","\u6425\u6427\u6428\u6429\u642B\u642E",5,"\u6435",4,"\u643B\u643C\u643E\u6440\u6442\u6443\u6449\u644B",6,"\u6453\u6455\u6456\u6457\u6459",4,"\u645F",7,"\u6468\u646A\u646B\u646C\u646E",9,"\u647B",6,"\u6483\u6486\u6488",8,"\u6493\u6494\u6497\u6498\u649A\u649B\u649C\u649D\u649F",4,"\u64A5\u64A6\u64A7\u64A8\u64AA\u64AB\u64AF\u64B1\u64B2\u64B3\u64B4\u64B6\u64B9\u64BB\u64BD\u64BE\u64BF\u64C1\u64C3\u64C4\u64C6",6,"\u64CF\u64D1\u64D3\u64D4\u64D5\u64D6\u64D9\u64DA"],["9440","\u64DB\u64DC\u64DD\u64DF\u64E0\u64E1\u64E3\u64E5\u64E7",24,"\u6501",7,"\u650A",7,"\u6513",4,"\u6519",8],["9480","\u6522\u6523\u6524\u6526",4,"\u652C\u652D\u6530\u6531\u6532\u6533\u6537\u653A\u653C\u653D\u6540",4,"\u6546\u6547\u654A\u654B\u654D\u654E\u6550\u6552\u6553\u6554\u6557\u6558\u655A\u655C\u655F\u6560\u6561\u6564\u6565\u6567\u6568\u6569\u656A\u656D\u656E\u656F\u6571\u6573\u6575\u6576\u6578",14,"\u6588\u6589\u658A\u658D\u658E\u658F\u6592\u6594\u6595\u6596\u6598\u659A\u659D\u659E\u65A0\u65A2\u65A3\u65A6\u65A8\u65AA\u65AC\u65AE\u65B1",7,"\u65BA\u65BB\u65BE\u65BF\u65C0\u65C2\u65C7\u65C8\u65C9\u65CA\u65CD\u65D0\u65D1\u65D3\u65D4\u65D5\u65D8",7,"\u65E1\u65E3\u65E4\u65EA\u65EB"],["9540","\u65F2\u65F3\u65F4\u65F5\u65F8\u65F9\u65FB",4,"\u6601\u6604\u6605\u6607\u6608\u6609\u660B\u660D\u6610\u6611\u6612\u6616\u6617\u6618\u661A\u661B\u661C\u661E\u6621\u6622\u6623\u6624\u6626\u6629\u662A\u662B\u662C\u662E\u6630\u6632\u6633\u6637",4,"\u663D\u663F\u6640\u6642\u6644",6,"\u664D\u664E\u6650\u6651\u6658"],["9580","\u6659\u665B\u665C\u665D\u665E\u6660\u6662\u6663\u6665\u6667\u6669",4,"\u6671\u6672\u6673\u6675\u6678\u6679\u667B\u667C\u667D\u667F\u6680\u6681\u6683\u6685\u6686\u6688\u6689\u668A\u668B\u668D\u668E\u668F\u6690\u6692\u6693\u6694\u6695\u6698",4,"\u669E",8,"\u66A9",4,"\u66AF",4,"\u66B5\u66B6\u66B7\u66B8\u66BA\u66BB\u66BC\u66BD\u66BF",25,"\u66DA\u66DE",7,"\u66E7\u66E8\u66EA",5,"\u66F1\u66F5\u66F6\u66F8\u66FA\u66FB\u66FD\u6701\u6702\u6703"],["9640","\u6704\u6705\u6706\u6707\u670C\u670E\u670F\u6711\u6712\u6713\u6716\u6718\u6719\u671A\u671C\u671E\u6720",5,"\u6727\u6729\u672E\u6730\u6732\u6733\u6736\u6737\u6738\u6739\u673B\u673C\u673E\u673F\u6741\u6744\u6745\u6747\u674A\u674B\u674D\u6752\u6754\u6755\u6757",4,"\u675D\u6762\u6763\u6764\u6766\u6767\u676B\u676C\u676E\u6771\u6774\u6776"],["9680","\u6778\u6779\u677A\u677B\u677D\u6780\u6782\u6783\u6785\u6786\u6788\u678A\u678C\u678D\u678E\u678F\u6791\u6792\u6793\u6794\u6796\u6799\u679B\u679F\u67A0\u67A1\u67A4\u67A6\u67A9\u67AC\u67AE\u67B1\u67B2\u67B4\u67B9",7,"\u67C2\u67C5",9,"\u67D5\u67D6\u67D7\u67DB\u67DF\u67E1\u67E3\u67E4\u67E6\u67E7\u67E8\u67EA\u67EB\u67ED\u67EE\u67F2\u67F5",7,"\u67FE\u6801\u6802\u6803\u6804\u6806\u680D\u6810\u6812\u6814\u6815\u6818",4,"\u681E\u681F\u6820\u6822",6,"\u682B",6,"\u6834\u6835\u6836\u683A\u683B\u683F\u6847\u684B\u684D\u684F\u6852\u6856",5],["9740","\u685C\u685D\u685E\u685F\u686A\u686C",7,"\u6875\u6878",8,"\u6882\u6884\u6887",7,"\u6890\u6891\u6892\u6894\u6895\u6896\u6898",9,"\u68A3\u68A4\u68A5\u68A9\u68AA\u68AB\u68AC\u68AE\u68B1\u68B2\u68B4\u68B6\u68B7\u68B8"],["9780","\u68B9",6,"\u68C1\u68C3",5,"\u68CA\u68CC\u68CE\u68CF\u68D0\u68D1\u68D3\u68D4\u68D6\u68D7\u68D9\u68DB",4,"\u68E1\u68E2\u68E4",9,"\u68EF\u68F2\u68F3\u68F4\u68F6\u68F7\u68F8\u68FB\u68FD\u68FE\u68FF\u6900\u6902\u6903\u6904\u6906",4,"\u690C\u690F\u6911\u6913",11,"\u6921\u6922\u6923\u6925",7,"\u692E\u692F\u6931\u6932\u6933\u6935\u6936\u6937\u6938\u693A\u693B\u693C\u693E\u6940\u6941\u6943",16,"\u6955\u6956\u6958\u6959\u695B\u695C\u695F"],["9840","\u6961\u6962\u6964\u6965\u6967\u6968\u6969\u696A\u696C\u696D\u696F\u6970\u6972",4,"\u697A\u697B\u697D\u697E\u697F\u6981\u6983\u6985\u698A\u698B\u698C\u698E",5,"\u6996\u6997\u6999\u699A\u699D",9,"\u69A9\u69AA\u69AC\u69AE\u69AF\u69B0\u69B2\u69B3\u69B5\u69B6\u69B8\u69B9\u69BA\u69BC\u69BD"],["9880","\u69BE\u69BF\u69C0\u69C2",7,"\u69CB\u69CD\u69CF\u69D1\u69D2\u69D3\u69D5",5,"\u69DC\u69DD\u69DE\u69E1",11,"\u69EE\u69EF\u69F0\u69F1\u69F3",9,"\u69FE\u6A00",9,"\u6A0B",11,"\u6A19",5,"\u6A20\u6A22",5,"\u6A29\u6A2B\u6A2C\u6A2D\u6A2E\u6A30\u6A32\u6A33\u6A34\u6A36",6,"\u6A3F",4,"\u6A45\u6A46\u6A48",7,"\u6A51",6,"\u6A5A"],["9940","\u6A5C",4,"\u6A62\u6A63\u6A64\u6A66",10,"\u6A72",6,"\u6A7A\u6A7B\u6A7D\u6A7E\u6A7F\u6A81\u6A82\u6A83\u6A85",8,"\u6A8F\u6A92",4,"\u6A98",7,"\u6AA1",5],["9980","\u6AA7\u6AA8\u6AAA\u6AAD",114,"\u6B25\u6B26\u6B28",6],["9a40","\u6B2F\u6B30\u6B31\u6B33\u6B34\u6B35\u6B36\u6B38\u6B3B\u6B3C\u6B3D\u6B3F\u6B40\u6B41\u6B42\u6B44\u6B45\u6B48\u6B4A\u6B4B\u6B4D",11,"\u6B5A",7,"\u6B68\u6B69\u6B6B",13,"\u6B7A\u6B7D\u6B7E\u6B7F\u6B80\u6B85\u6B88"],["9a80","\u6B8C\u6B8E\u6B8F\u6B90\u6B91\u6B94\u6B95\u6B97\u6B98\u6B99\u6B9C",4,"\u6BA2",7,"\u6BAB",7,"\u6BB6\u6BB8",6,"\u6BC0\u6BC3\u6BC4\u6BC6",4,"\u6BCC\u6BCE\u6BD0\u6BD1\u6BD8\u6BDA\u6BDC",4,"\u6BE2",7,"\u6BEC\u6BED\u6BEE\u6BF0\u6BF1\u6BF2\u6BF4\u6BF6\u6BF7\u6BF8\u6BFA\u6BFB\u6BFC\u6BFE",6,"\u6C08",4,"\u6C0E\u6C12\u6C17\u6C1C\u6C1D\u6C1E\u6C20\u6C23\u6C25\u6C2B\u6C2C\u6C2D\u6C31\u6C33\u6C36\u6C37\u6C39\u6C3A\u6C3B\u6C3C\u6C3E\u6C3F\u6C43\u6C44\u6C45\u6C48\u6C4B",4,"\u6C51\u6C52\u6C53\u6C56\u6C58"],["9b40","\u6C59\u6C5A\u6C62\u6C63\u6C65\u6C66\u6C67\u6C6B",4,"\u6C71\u6C73\u6C75\u6C77\u6C78\u6C7A\u6C7B\u6C7C\u6C7F\u6C80\u6C84\u6C87\u6C8A\u6C8B\u6C8D\u6C8E\u6C91\u6C92\u6C95\u6C96\u6C97\u6C98\u6C9A\u6C9C\u6C9D\u6C9E\u6CA0\u6CA2\u6CA8\u6CAC\u6CAF\u6CB0\u6CB4\u6CB5\u6CB6\u6CB7\u6CBA\u6CC0\u6CC1\u6CC2\u6CC3\u6CC6\u6CC7\u6CC8\u6CCB\u6CCD\u6CCE\u6CCF\u6CD1\u6CD2\u6CD8"],["9b80","\u6CD9\u6CDA\u6CDC\u6CDD\u6CDF\u6CE4\u6CE6\u6CE7\u6CE9\u6CEC\u6CED\u6CF2\u6CF4\u6CF9\u6CFF\u6D00\u6D02\u6D03\u6D05\u6D06\u6D08\u6D09\u6D0A\u6D0D\u6D0F\u6D10\u6D11\u6D13\u6D14\u6D15\u6D16\u6D18\u6D1C\u6D1D\u6D1F",5,"\u6D26\u6D28\u6D29\u6D2C\u6D2D\u6D2F\u6D30\u6D34\u6D36\u6D37\u6D38\u6D3A\u6D3F\u6D40\u6D42\u6D44\u6D49\u6D4C\u6D50\u6D55\u6D56\u6D57\u6D58\u6D5B\u6D5D\u6D5F\u6D61\u6D62\u6D64\u6D65\u6D67\u6D68\u6D6B\u6D6C\u6D6D\u6D70\u6D71\u6D72\u6D73\u6D75\u6D76\u6D79\u6D7A\u6D7B\u6D7D",4,"\u6D83\u6D84\u6D86\u6D87\u6D8A\u6D8B\u6D8D\u6D8F\u6D90\u6D92\u6D96",4,"\u6D9C\u6DA2\u6DA5\u6DAC\u6DAD\u6DB0\u6DB1\u6DB3\u6DB4\u6DB6\u6DB7\u6DB9",5,"\u6DC1\u6DC2\u6DC3\u6DC8\u6DC9\u6DCA"],["9c40","\u6DCD\u6DCE\u6DCF\u6DD0\u6DD2\u6DD3\u6DD4\u6DD5\u6DD7\u6DDA\u6DDB\u6DDC\u6DDF\u6DE2\u6DE3\u6DE5\u6DE7\u6DE8\u6DE9\u6DEA\u6DED\u6DEF\u6DF0\u6DF2\u6DF4\u6DF5\u6DF6\u6DF8\u6DFA\u6DFD",7,"\u6E06\u6E07\u6E08\u6E09\u6E0B\u6E0F\u6E12\u6E13\u6E15\u6E18\u6E19\u6E1B\u6E1C\u6E1E\u6E1F\u6E22\u6E26\u6E27\u6E28\u6E2A\u6E2C\u6E2E\u6E30\u6E31\u6E33\u6E35"],["9c80","\u6E36\u6E37\u6E39\u6E3B",7,"\u6E45",7,"\u6E4F\u6E50\u6E51\u6E52\u6E55\u6E57\u6E59\u6E5A\u6E5C\u6E5D\u6E5E\u6E60",10,"\u6E6C\u6E6D\u6E6F",14,"\u6E80\u6E81\u6E82\u6E84\u6E87\u6E88\u6E8A",4,"\u6E91",6,"\u6E99\u6E9A\u6E9B\u6E9D\u6E9E\u6EA0\u6EA1\u6EA3\u6EA4\u6EA6\u6EA8\u6EA9\u6EAB\u6EAC\u6EAD\u6EAE\u6EB0\u6EB3\u6EB5\u6EB8\u6EB9\u6EBC\u6EBE\u6EBF\u6EC0\u6EC3\u6EC4\u6EC5\u6EC6\u6EC8\u6EC9\u6ECA\u6ECC\u6ECD\u6ECE\u6ED0\u6ED2\u6ED6\u6ED8\u6ED9\u6EDB\u6EDC\u6EDD\u6EE3\u6EE7\u6EEA",5],["9d40","\u6EF0\u6EF1\u6EF2\u6EF3\u6EF5\u6EF6\u6EF7\u6EF8\u6EFA",7,"\u6F03\u6F04\u6F05\u6F07\u6F08\u6F0A",4,"\u6F10\u6F11\u6F12\u6F16",9,"\u6F21\u6F22\u6F23\u6F25\u6F26\u6F27\u6F28\u6F2C\u6F2E\u6F30\u6F32\u6F34\u6F35\u6F37",6,"\u6F3F\u6F40\u6F41\u6F42"],["9d80","\u6F43\u6F44\u6F45\u6F48\u6F49\u6F4A\u6F4C\u6F4E",9,"\u6F59\u6F5A\u6F5B\u6F5D\u6F5F\u6F60\u6F61\u6F63\u6F64\u6F65\u6F67",5,"\u6F6F\u6F70\u6F71\u6F73\u6F75\u6F76\u6F77\u6F79\u6F7B\u6F7D",6,"\u6F85\u6F86\u6F87\u6F8A\u6F8B\u6F8F",12,"\u6F9D\u6F9E\u6F9F\u6FA0\u6FA2",4,"\u6FA8",10,"\u6FB4\u6FB5\u6FB7\u6FB8\u6FBA",5,"\u6FC1\u6FC3",5,"\u6FCA",6,"\u6FD3",10,"\u6FDF\u6FE2\u6FE3\u6FE4\u6FE5"],["9e40","\u6FE6",7,"\u6FF0",32,"\u7012",7,"\u701C",6,"\u7024",6],["9e80","\u702B",9,"\u7036\u7037\u7038\u703A",17,"\u704D\u704E\u7050",13,"\u705F",11,"\u706E\u7071\u7072\u7073\u7074\u7077\u7079\u707A\u707B\u707D\u7081\u7082\u7083\u7084\u7086\u7087\u7088\u708B\u708C\u708D\u708F\u7090\u7091\u7093\u7097\u7098\u709A\u709B\u709E",12,"\u70B0\u70B2\u70B4\u70B5\u70B6\u70BA\u70BE\u70BF\u70C4\u70C5\u70C6\u70C7\u70C9\u70CB",12,"\u70DA"],["9f40","\u70DC\u70DD\u70DE\u70E0\u70E1\u70E2\u70E3\u70E5\u70EA\u70EE\u70F0",6,"\u70F8\u70FA\u70FB\u70FC\u70FE",10,"\u710B",4,"\u7111\u7112\u7114\u7117\u711B",10,"\u7127",7,"\u7132\u7133\u7134"],["9f80","\u7135\u7137",13,"\u7146\u7147\u7148\u7149\u714B\u714D\u714F",12,"\u715D\u715F",4,"\u7165\u7169",4,"\u716F\u7170\u7171\u7174\u7175\u7176\u7177\u7179\u717B\u717C\u717E",5,"\u7185",4,"\u718B\u718C\u718D\u718E\u7190\u7191\u7192\u7193\u7195\u7196\u7197\u719A",4,"\u71A1",6,"\u71A9\u71AA\u71AB\u71AD",5,"\u71B4\u71B6\u71B7\u71B8\u71BA",8,"\u71C4",9,"\u71CF",4],["a040","\u71D6",9,"\u71E1\u71E2\u71E3\u71E4\u71E6\u71E8",5,"\u71EF",9,"\u71FA",11,"\u7207",19],["a080","\u721B\u721C\u721E",9,"\u7229\u722B\u722D\u722E\u722F\u7232\u7233\u7234\u723A\u723C\u723E\u7240",6,"\u7249\u724A\u724B\u724E\u724F\u7250\u7251\u7253\u7254\u7255\u7257\u7258\u725A\u725C\u725E\u7260\u7263\u7264\u7265\u7268\u726A\u726B\u726C\u726D\u7270\u7271\u7273\u7274\u7276\u7277\u7278\u727B\u727C\u727D\u7282\u7283\u7285",4,"\u728C\u728E\u7290\u7291\u7293",11,"\u72A0",11,"\u72AE\u72B1\u72B2\u72B3\u72B5\u72BA",6,"\u72C5\u72C6\u72C7\u72C9\u72CA\u72CB\u72CC\u72CF\u72D1\u72D3\u72D4\u72D5\u72D6\u72D8\u72DA\u72DB"],["a1a1","\u3000\u3001\u3002\xB7\u02C9\u02C7\xA8\u3003\u3005\u2014\uFF5E\u2016\u2026\u2018\u2019\u201C\u201D\u3014\u3015\u3008",7,"\u3016\u3017\u3010\u3011\xB1\xD7\xF7\u2236\u2227\u2228\u2211\u220F\u222A\u2229\u2208\u2237\u221A\u22A5\u2225\u2220\u2312\u2299\u222B\u222E\u2261\u224C\u2248\u223D\u221D\u2260\u226E\u226F\u2264\u2265\u221E\u2235\u2234\u2642\u2640\xB0\u2032\u2033\u2103\uFF04\xA4\uFFE0\uFFE1\u2030\xA7\u2116\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u203B\u2192\u2190\u2191\u2193\u3013"],["a2a1","\u2170",9],["a2b1","\u2488",19,"\u2474",19,"\u2460",9],["a2e5","\u3220",9],["a2f1","\u2160",11],["a3a1","\uFF01\uFF02\uFF03\uFFE5\uFF05",88,"\uFFE3"],["a4a1","\u3041",82],["a5a1","\u30A1",85],["a6a1","\u0391",16,"\u03A3",6],["a6c1","\u03B1",16,"\u03C3",6],["a6e0","\uFE35\uFE36\uFE39\uFE3A\uFE3F\uFE40\uFE3D\uFE3E\uFE41\uFE42\uFE43\uFE44"],["a6ee","\uFE3B\uFE3C\uFE37\uFE38\uFE31"],["a6f4","\uFE33\uFE34"],["a7a1","\u0410",5,"\u0401\u0416",25],["a7d1","\u0430",5,"\u0451\u0436",25],["a840","\u02CA\u02CB\u02D9\u2013\u2015\u2025\u2035\u2105\u2109\u2196\u2197\u2198\u2199\u2215\u221F\u2223\u2252\u2266\u2267\u22BF\u2550",35,"\u2581",6],["a880","\u2588",7,"\u2593\u2594\u2595\u25BC\u25BD\u25E2\u25E3\u25E4\u25E5\u2609\u2295\u3012\u301D\u301E"],["a8a1","\u0101\xE1\u01CE\xE0\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA\u01DC\xFC\xEA\u0251"],["a8bd","\u0144\u0148"],["a8c0","\u0261"],["a8c5","\u3105",36],["a940","\u3021",8,"\u32A3\u338E\u338F\u339C\u339D\u339E\u33A1\u33C4\u33CE\u33D1\u33D2\u33D5\uFE30\uFFE2\uFFE4"],["a959","\u2121\u3231"],["a95c","\u2010"],["a960","\u30FC\u309B\u309C\u30FD\u30FE\u3006\u309D\u309E\uFE49",9,"\uFE54\uFE55\uFE56\uFE57\uFE59",8],["a980","\uFE62",4,"\uFE68\uFE69\uFE6A\uFE6B"],["a996","\u3007"],["a9a4","\u2500",75],["aa40","\u72DC\u72DD\u72DF\u72E2",5,"\u72EA\u72EB\u72F5\u72F6\u72F9\u72FD\u72FE\u72FF\u7300\u7302\u7304",5,"\u730B\u730C\u730D\u730F\u7310\u7311\u7312\u7314\u7318\u7319\u731A\u731F\u7320\u7323\u7324\u7326\u7327\u7328\u732D\u732F\u7330\u7332\u7333\u7335\u7336\u733A\u733B\u733C\u733D\u7340",8],["aa80","\u7349\u734A\u734B\u734C\u734E\u734F\u7351\u7353\u7354\u7355\u7356\u7358",7,"\u7361",10,"\u736E\u7370\u7371"],["ab40","\u7372",11,"\u737F",4,"\u7385\u7386\u7388\u738A\u738C\u738D\u738F\u7390\u7392\u7393\u7394\u7395\u7397\u7398\u7399\u739A\u739C\u739D\u739E\u73A0\u73A1\u73A3",5,"\u73AA\u73AC\u73AD\u73B1\u73B4\u73B5\u73B6\u73B8\u73B9\u73BC\u73BD\u73BE\u73BF\u73C1\u73C3",4],["ab80","\u73CB\u73CC\u73CE\u73D2",6,"\u73DA\u73DB\u73DC\u73DD\u73DF\u73E1\u73E2\u73E3\u73E4\u73E6\u73E8\u73EA\u73EB\u73EC\u73EE\u73EF\u73F0\u73F1\u73F3",4],["ac40","\u73F8",10,"\u7404\u7407\u7408\u740B\u740C\u740D\u740E\u7411",8,"\u741C",5,"\u7423\u7424\u7427\u7429\u742B\u742D\u742F\u7431\u7432\u7437",4,"\u743D\u743E\u743F\u7440\u7442",11],["ac80","\u744E",6,"\u7456\u7458\u745D\u7460",12,"\u746E\u746F\u7471",4,"\u7478\u7479\u747A"],["ad40","\u747B\u747C\u747D\u747F\u7482\u7484\u7485\u7486\u7488\u7489\u748A\u748C\u748D\u748F\u7491",10,"\u749D\u749F",7,"\u74AA",15,"\u74BB",12],["ad80","\u74C8",9,"\u74D3",8,"\u74DD\u74DF\u74E1\u74E5\u74E7",6,"\u74F0\u74F1\u74F2"],["ae40","\u74F3\u74F5\u74F8",6,"\u7500\u7501\u7502\u7503\u7505",7,"\u750E\u7510\u7512\u7514\u7515\u7516\u7517\u751B\u751D\u751E\u7520",4,"\u7526\u7527\u752A\u752E\u7534\u7536\u7539\u753C\u753D\u753F\u7541\u7542\u7543\u7544\u7546\u7547\u7549\u754A\u754D\u7550\u7551\u7552\u7553\u7555\u7556\u7557\u7558"],["ae80","\u755D",7,"\u7567\u7568\u7569\u756B",6,"\u7573\u7575\u7576\u7577\u757A",4,"\u7580\u7581\u7582\u7584\u7585\u7587"],["af40","\u7588\u7589\u758A\u758C\u758D\u758E\u7590\u7593\u7595\u7598\u759B\u759C\u759E\u75A2\u75A6",4,"\u75AD\u75B6\u75B7\u75BA\u75BB\u75BF\u75C0\u75C1\u75C6\u75CB\u75CC\u75CE\u75CF\u75D0\u75D1\u75D3\u75D7\u75D9\u75DA\u75DC\u75DD\u75DF\u75E0\u75E1\u75E5\u75E9\u75EC\u75ED\u75EE\u75EF\u75F2\u75F3\u75F5\u75F6\u75F7\u75F8\u75FA\u75FB\u75FD\u75FE\u7602\u7604\u7606\u7607"],["af80","\u7608\u7609\u760B\u760D\u760E\u760F\u7611\u7612\u7613\u7614\u7616\u761A\u761C\u761D\u761E\u7621\u7623\u7627\u7628\u762C\u762E\u762F\u7631\u7632\u7636\u7637\u7639\u763A\u763B\u763D\u7641\u7642\u7644"],["b040","\u7645",6,"\u764E",5,"\u7655\u7657",4,"\u765D\u765F\u7660\u7661\u7662\u7664",6,"\u766C\u766D\u766E\u7670",7,"\u7679\u767A\u767C\u767F\u7680\u7681\u7683\u7685\u7689\u768A\u768C\u768D\u768F\u7690\u7692\u7694\u7695\u7697\u7698\u769A\u769B"],["b080","\u769C",7,"\u76A5",8,"\u76AF\u76B0\u76B3\u76B5",9,"\u76C0\u76C1\u76C3\u554A\u963F\u57C3\u6328\u54CE\u5509\u54C0\u7691\u764C\u853C\u77EE\u827E\u788D\u7231\u9698\u978D\u6C28\u5B89\u4FFA\u6309\u6697\u5CB8\u80FA\u6848\u80AE\u6602\u76CE\u51F9\u6556\u71AC\u7FF1\u8884\u50B2\u5965\u61CA\u6FB3\u82AD\u634C\u6252\u53ED\u5427\u7B06\u516B\u75A4\u5DF4\u62D4\u8DCB\u9776\u628A\u8019\u575D\u9738\u7F62\u7238\u767D\u67CF\u767E\u6446\u4F70\u8D25\u62DC\u7A17\u6591\u73ED\u642C\u6273\u822C\u9881\u677F\u7248\u626E\u62CC\u4F34\u74E3\u534A\u529E\u7ECA\u90A6\u5E2E\u6886\u699C\u8180\u7ED1\u68D2\u78C5\u868C\u9551\u508D\u8C24\u82DE\u80DE\u5305\u8912\u5265"],["b140","\u76C4\u76C7\u76C9\u76CB\u76CC\u76D3\u76D5\u76D9\u76DA\u76DC\u76DD\u76DE\u76E0",4,"\u76E6",7,"\u76F0\u76F3\u76F5\u76F6\u76F7\u76FA\u76FB\u76FD\u76FF\u7700\u7702\u7703\u7705\u7706\u770A\u770C\u770E",10,"\u771B\u771C\u771D\u771E\u7721\u7723\u7724\u7725\u7727\u772A\u772B"],["b180","\u772C\u772E\u7730",4,"\u7739\u773B\u773D\u773E\u773F\u7742\u7744\u7745\u7746\u7748",7,"\u7752",7,"\u775C\u8584\u96F9\u4FDD\u5821\u9971\u5B9D\u62B1\u62A5\u66B4\u8C79\u9C8D\u7206\u676F\u7891\u60B2\u5351\u5317\u8F88\u80CC\u8D1D\u94A1\u500D\u72C8\u5907\u60EB\u7119\u88AB\u5954\u82EF\u672C\u7B28\u5D29\u7EF7\u752D\u6CF5\u8E66\u8FF8\u903C\u9F3B\u6BD4\u9119\u7B14\u5F7C\u78A7\u84D6\u853D\u6BD5\u6BD9\u6BD6\u5E01\u5E87\u75F9\u95ED\u655D\u5F0A\u5FC5\u8F9F\u58C1\u81C2\u907F\u965B\u97AD\u8FB9\u7F16\u8D2C\u6241\u4FBF\u53D8\u535E\u8FA8\u8FA9\u8FAB\u904D\u6807\u5F6A\u8198\u8868\u9CD6\u618B\u522B\u762A\u5F6C\u658C\u6FD2\u6EE8\u5BBE\u6448\u5175\u51B0\u67C4\u4E19\u79C9\u997C\u70B3"],["b240","\u775D\u775E\u775F\u7760\u7764\u7767\u7769\u776A\u776D",11,"\u777A\u777B\u777C\u7781\u7782\u7783\u7786",5,"\u778F\u7790\u7793",11,"\u77A1\u77A3\u77A4\u77A6\u77A8\u77AB\u77AD\u77AE\u77AF\u77B1\u77B2\u77B4\u77B6",4],["b280","\u77BC\u77BE\u77C0",12,"\u77CE",8,"\u77D8\u77D9\u77DA\u77DD",4,"\u77E4\u75C5\u5E76\u73BB\u83E0\u64AD\u62E8\u94B5\u6CE2\u535A\u52C3\u640F\u94C2\u7B94\u4F2F\u5E1B\u8236\u8116\u818A\u6E24\u6CCA\u9A73\u6355\u535C\u54FA\u8865\u57E0\u4E0D\u5E03\u6B65\u7C3F\u90E8\u6016\u64E6\u731C\u88C1\u6750\u624D\u8D22\u776C\u8E29\u91C7\u5F69\u83DC\u8521\u9910\u53C2\u8695\u6B8B\u60ED\u60E8\u707F\u82CD\u8231\u4ED3\u6CA7\u85CF\u64CD\u7CD9\u69FD\u66F9\u8349\u5395\u7B56\u4FA7\u518C\u6D4B\u5C42\u8E6D\u63D2\u53C9\u832C\u8336\u67E5\u78B4\u643D\u5BDF\u5C94\u5DEE\u8BE7\u62C6\u67F4\u8C7A\u6400\u63BA\u8749\u998B\u8C17\u7F20\u94F2\u4EA7\u9610\u98A4\u660C\u7316"],["b340","\u77E6\u77E8\u77EA\u77EF\u77F0\u77F1\u77F2\u77F4\u77F5\u77F7\u77F9\u77FA\u77FB\u77FC\u7803",5,"\u780A\u780B\u780E\u780F\u7810\u7813\u7815\u7819\u781B\u781E\u7820\u7821\u7822\u7824\u7828\u782A\u782B\u782E\u782F\u7831\u7832\u7833\u7835\u7836\u783D\u783F\u7841\u7842\u7843\u7844\u7846\u7848\u7849\u784A\u784B\u784D\u784F\u7851\u7853\u7854\u7858\u7859\u785A"],["b380","\u785B\u785C\u785E",11,"\u786F",7,"\u7878\u7879\u787A\u787B\u787D",6,"\u573A\u5C1D\u5E38\u957F\u507F\u80A0\u5382\u655E\u7545\u5531\u5021\u8D85\u6284\u949E\u671D\u5632\u6F6E\u5DE2\u5435\u7092\u8F66\u626F\u64A4\u63A3\u5F7B\u6F88\u90F4\u81E3\u8FB0\u5C18\u6668\u5FF1\u6C89\u9648\u8D81\u886C\u6491\u79F0\u57CE\u6A59\u6210\u5448\u4E58\u7A0B\u60E9\u6F84\u8BDA\u627F\u901E\u9A8B\u79E4\u5403\u75F4\u6301\u5319\u6C60\u8FDF\u5F1B\u9A70\u803B\u9F7F\u4F88\u5C3A\u8D64\u7FC5\u65A5\u70BD\u5145\u51B2\u866B\u5D07\u5BA0\u62BD\u916C\u7574\u8E0C\u7A20\u6101\u7B79\u4EC7\u7EF8\u7785\u4E11\u81ED\u521D\u51FA\u6A71\u53A8\u8E87\u9504\u96CF\u6EC1\u9664\u695A"],["b440","\u7884\u7885\u7886\u7888\u788A\u788B\u788F\u7890\u7892\u7894\u7895\u7896\u7899\u789D\u789E\u78A0\u78A2\u78A4\u78A6\u78A8",7,"\u78B5\u78B6\u78B7\u78B8\u78BA\u78BB\u78BC\u78BD\u78BF\u78C0\u78C2\u78C3\u78C4\u78C6\u78C7\u78C8\u78CC\u78CD\u78CE\u78CF\u78D1\u78D2\u78D3\u78D6\u78D7\u78D8\u78DA",9],["b480","\u78E4\u78E5\u78E6\u78E7\u78E9\u78EA\u78EB\u78ED",4,"\u78F3\u78F5\u78F6\u78F8\u78F9\u78FB",5,"\u7902\u7903\u7904\u7906",6,"\u7840\u50A8\u77D7\u6410\u89E6\u5904\u63E3\u5DDD\u7A7F\u693D\u4F20\u8239\u5598\u4E32\u75AE\u7A97\u5E62\u5E8A\u95EF\u521B\u5439\u708A\u6376\u9524\u5782\u6625\u693F\u9187\u5507\u6DF3\u7EAF\u8822\u6233\u7EF0\u75B5\u8328\u78C1\u96CC\u8F9E\u6148\u74F7\u8BCD\u6B64\u523A\u8D50\u6B21\u806A\u8471\u56F1\u5306\u4ECE\u4E1B\u51D1\u7C97\u918B\u7C07\u4FC3\u8E7F\u7BE1\u7A9C\u6467\u5D14\u50AC\u8106\u7601\u7CB9\u6DEC\u7FE0\u6751\u5B58\u5BF8\u78CB\u64AE\u6413\u63AA\u632B\u9519\u642D\u8FBE\u7B54\u7629\u6253\u5927\u5446\u6B79\u50A3\u6234\u5E26\u6B86\u4EE3\u8D37\u888B\u5F85\u902E"],["b540","\u790D",5,"\u7914",9,"\u791F",4,"\u7925",14,"\u7935",4,"\u793D\u793F\u7942\u7943\u7944\u7945\u7947\u794A",8,"\u7954\u7955\u7958\u7959\u7961\u7963"],["b580","\u7964\u7966\u7969\u796A\u796B\u796C\u796E\u7970",6,"\u7979\u797B",4,"\u7982\u7983\u7986\u7987\u7988\u7989\u798B\u798C\u798D\u798E\u7990\u7991\u7992\u6020\u803D\u62C5\u4E39\u5355\u90F8\u63B8\u80C6\u65E6\u6C2E\u4F46\u60EE\u6DE1\u8BDE\u5F39\u86CB\u5F53\u6321\u515A\u8361\u6863\u5200\u6363\u8E48\u5012\u5C9B\u7977\u5BFC\u5230\u7A3B\u60BC\u9053\u76D7\u5FB7\u5F97\u7684\u8E6C\u706F\u767B\u7B49\u77AA\u51F3\u9093\u5824\u4F4E\u6EF4\u8FEA\u654C\u7B1B\u72C4\u6DA4\u7FDF\u5AE1\u62B5\u5E95\u5730\u8482\u7B2C\u5E1D\u5F1F\u9012\u7F14\u98A0\u6382\u6EC7\u7898\u70B9\u5178\u975B\u57AB\u7535\u4F43\u7538\u5E97\u60E6\u5960\u6DC0\u6BBF\u7889\u53FC\u96D5\u51CB\u5201\u6389\u540A\u9493\u8C03\u8DCC\u7239\u789F\u8776\u8FED\u8C0D\u53E0"],["b640","\u7993",6,"\u799B",11,"\u79A8",10,"\u79B4",4,"\u79BC\u79BF\u79C2\u79C4\u79C5\u79C7\u79C8\u79CA\u79CC\u79CE\u79CF\u79D0\u79D3\u79D4\u79D6\u79D7\u79D9",5,"\u79E0\u79E1\u79E2\u79E5\u79E8\u79EA"],["b680","\u79EC\u79EE\u79F1",6,"\u79F9\u79FA\u79FC\u79FE\u79FF\u7A01\u7A04\u7A05\u7A07\u7A08\u7A09\u7A0A\u7A0C\u7A0F",4,"\u7A15\u7A16\u7A18\u7A19\u7A1B\u7A1C\u4E01\u76EF\u53EE\u9489\u9876\u9F0E\u952D\u5B9A\u8BA2\u4E22\u4E1C\u51AC\u8463\u61C2\u52A8\u680B\u4F97\u606B\u51BB\u6D1E\u515C\u6296\u6597\u9661\u8C46\u9017\u75D8\u90FD\u7763\u6BD2\u728A\u72EC\u8BFB\u5835\u7779\u8D4C\u675C\u9540\u809A\u5EA6\u6E21\u5992\u7AEF\u77ED\u953B\u6BB5\u65AD\u7F0E\u5806\u5151\u961F\u5BF9\u58A9\u5428\u8E72\u6566\u987F\u56E4\u949D\u76FE\u9041\u6387\u54C6\u591A\u593A\u579B\u8EB2\u6735\u8DFA\u8235\u5241\u60F0\u5815\u86FE\u5CE8\u9E45\u4FC4\u989D\u8BB9\u5A25\u6076\u5384\u627C\u904F\u9102\u997F\u6069\u800C\u513F\u8033\u5C14\u9975\u6D31\u4E8C"],["b740","\u7A1D\u7A1F\u7A21\u7A22\u7A24",14,"\u7A34\u7A35\u7A36\u7A38\u7A3A\u7A3E\u7A40",5,"\u7A47",9,"\u7A52",4,"\u7A58",16],["b780","\u7A69",6,"\u7A71\u7A72\u7A73\u7A75\u7A7B\u7A7C\u7A7D\u7A7E\u7A82\u7A85\u7A87\u7A89\u7A8A\u7A8B\u7A8C\u7A8E\u7A8F\u7A90\u7A93\u7A94\u7A99\u7A9A\u7A9B\u7A9E\u7AA1\u7AA2\u8D30\u53D1\u7F5A\u7B4F\u4F10\u4E4F\u9600\u6CD5\u73D0\u85E9\u5E06\u756A\u7FFB\u6A0A\u77FE\u9492\u7E41\u51E1\u70E6\u53CD\u8FD4\u8303\u8D29\u72AF\u996D\u6CDB\u574A\u82B3\u65B9\u80AA\u623F\u9632\u59A8\u4EFF\u8BBF\u7EBA\u653E\u83F2\u975E\u5561\u98DE\u80A5\u532A\u8BFD\u5420\u80BA\u5E9F\u6CB8\u8D39\u82AC\u915A\u5429\u6C1B\u5206\u7EB7\u575F\u711A\u6C7E\u7C89\u594B\u4EFD\u5FFF\u6124\u7CAA\u4E30\u5C01\u67AB\u8702\u5CF0\u950B\u98CE\u75AF\u70FD\u9022\u51AF\u7F1D\u8BBD\u5949\u51E4\u4F5B\u5426\u592B\u6577\u80A4\u5B75\u6276\u62C2\u8F90\u5E45\u6C1F\u7B26\u4F0F\u4FD8\u670D"],["b840","\u7AA3\u7AA4\u7AA7\u7AA9\u7AAA\u7AAB\u7AAE",4,"\u7AB4",10,"\u7AC0",10,"\u7ACC",9,"\u7AD7\u7AD8\u7ADA\u7ADB\u7ADC\u7ADD\u7AE1\u7AE2\u7AE4\u7AE7",5,"\u7AEE\u7AF0\u7AF1\u7AF2\u7AF3"],["b880","\u7AF4",4,"\u7AFB\u7AFC\u7AFE\u7B00\u7B01\u7B02\u7B05\u7B07\u7B09\u7B0C\u7B0D\u7B0E\u7B10\u7B12\u7B13\u7B16\u7B17\u7B18\u7B1A\u7B1C\u7B1D\u7B1F\u7B21\u7B22\u7B23\u7B27\u7B29\u7B2D\u6D6E\u6DAA\u798F\u88B1\u5F17\u752B\u629A\u8F85\u4FEF\u91DC\u65A7\u812F\u8151\u5E9C\u8150\u8D74\u526F\u8986\u8D4B\u590D\u5085\u4ED8\u961C\u7236\u8179\u8D1F\u5BCC\u8BA3\u9644\u5987\u7F1A\u5490\u5676\u560E\u8BE5\u6539\u6982\u9499\u76D6\u6E89\u5E72\u7518\u6746\u67D1\u7AFF\u809D\u8D76\u611F\u79C6\u6562\u8D63\u5188\u521A\u94A2\u7F38\u809B\u7EB2\u5C97\u6E2F\u6760\u7BD9\u768B\u9AD8\u818F\u7F94\u7CD5\u641E\u9550\u7A3F\u544A\u54E5\u6B4C\u6401\u6208\u9E3D\u80F3\u7599\u5272\u9769\u845B\u683C\u86E4\u9601\u9694\u94EC\u4E2A\u5404\u7ED9\u6839\u8DDF\u8015\u66F4\u5E9A\u7FB9"],["b940","\u7B2F\u7B30\u7B32\u7B34\u7B35\u7B36\u7B37\u7B39\u7B3B\u7B3D\u7B3F",5,"\u7B46\u7B48\u7B4A\u7B4D\u7B4E\u7B53\u7B55\u7B57\u7B59\u7B5C\u7B5E\u7B5F\u7B61\u7B63",10,"\u7B6F\u7B70\u7B73\u7B74\u7B76\u7B78\u7B7A\u7B7C\u7B7D\u7B7F\u7B81\u7B82\u7B83\u7B84\u7B86",6,"\u7B8E\u7B8F"],["b980","\u7B91\u7B92\u7B93\u7B96\u7B98\u7B99\u7B9A\u7B9B\u7B9E\u7B9F\u7BA0\u7BA3\u7BA4\u7BA5\u7BAE\u7BAF\u7BB0\u7BB2\u7BB3\u7BB5\u7BB6\u7BB7\u7BB9",7,"\u7BC2\u7BC3\u7BC4\u57C2\u803F\u6897\u5DE5\u653B\u529F\u606D\u9F9A\u4F9B\u8EAC\u516C\u5BAB\u5F13\u5DE9\u6C5E\u62F1\u8D21\u5171\u94A9\u52FE\u6C9F\u82DF\u72D7\u57A2\u6784\u8D2D\u591F\u8F9C\u83C7\u5495\u7B8D\u4F30\u6CBD\u5B64\u59D1\u9F13\u53E4\u86CA\u9AA8\u8C37\u80A1\u6545\u987E\u56FA\u96C7\u522E\u74DC\u5250\u5BE1\u6302\u8902\u4E56\u62D0\u602A\u68FA\u5173\u5B98\u51A0\u89C2\u7BA1\u9986\u7F50\u60EF\u704C\u8D2F\u5149\u5E7F\u901B\u7470\u89C4\u572D\u7845\u5F52\u9F9F\u95FA\u8F68\u9B3C\u8BE1\u7678\u6842\u67DC\u8DEA\u8D35\u523D\u8F8A\u6EDA\u68CD\u9505\u90ED\u56FD\u679C\u88F9\u8FC7\u54C8"],["ba40","\u7BC5\u7BC8\u7BC9\u7BCA\u7BCB\u7BCD\u7BCE\u7BCF\u7BD0\u7BD2\u7BD4",4,"\u7BDB\u7BDC\u7BDE\u7BDF\u7BE0\u7BE2\u7BE3\u7BE4\u7BE7\u7BE8\u7BE9\u7BEB\u7BEC\u7BED\u7BEF\u7BF0\u7BF2",4,"\u7BF8\u7BF9\u7BFA\u7BFB\u7BFD\u7BFF",7,"\u7C08\u7C09\u7C0A\u7C0D\u7C0E\u7C10",5,"\u7C17\u7C18\u7C19"],["ba80","\u7C1A",4,"\u7C20",5,"\u7C28\u7C29\u7C2B",12,"\u7C39",5,"\u7C42\u9AB8\u5B69\u6D77\u6C26\u4EA5\u5BB3\u9A87\u9163\u61A8\u90AF\u97E9\u542B\u6DB5\u5BD2\u51FD\u558A\u7F55\u7FF0\u64BC\u634D\u65F1\u61BE\u608D\u710A\u6C57\u6C49\u592F\u676D\u822A\u58D5\u568E\u8C6A\u6BEB\u90DD\u597D\u8017\u53F7\u6D69\u5475\u559D\u8377\u83CF\u6838\u79BE\u548C\u4F55\u5408\u76D2\u8C89\u9602\u6CB3\u6DB8\u8D6B\u8910\u9E64\u8D3A\u563F\u9ED1\u75D5\u5F88\u72E0\u6068\u54FC\u4EA8\u6A2A\u8861\u6052\u8F70\u54C4\u70D8\u8679\u9E3F\u6D2A\u5B8F\u5F18\u7EA2\u5589\u4FAF\u7334\u543C\u539A\u5019\u540E\u547C\u4E4E\u5FFD\u745A\u58F6\u846B\u80E1\u8774\u72D0\u7CCA\u6E56"],["bb40","\u7C43",9,"\u7C4E",36,"\u7C75",5,"\u7C7E",9],["bb80","\u7C88\u7C8A",6,"\u7C93\u7C94\u7C96\u7C99\u7C9A\u7C9B\u7CA0\u7CA1\u7CA3\u7CA6\u7CA7\u7CA8\u7CA9\u7CAB\u7CAC\u7CAD\u7CAF\u7CB0\u7CB4",4,"\u7CBA\u7CBB\u5F27\u864E\u552C\u62A4\u4E92\u6CAA\u6237\u82B1\u54D7\u534E\u733E\u6ED1\u753B\u5212\u5316\u8BDD\u69D0\u5F8A\u6000\u6DEE\u574F\u6B22\u73AF\u6853\u8FD8\u7F13\u6362\u60A3\u5524\u75EA\u8C62\u7115\u6DA3\u5BA6\u5E7B\u8352\u614C\u9EC4\u78FA\u8757\u7C27\u7687\u51F0\u60F6\u714C\u6643\u5E4C\u604D\u8C0E\u7070\u6325\u8F89\u5FBD\u6062\u86D4\u56DE\u6BC1\u6094\u6167\u5349\u60E0\u6666\u8D3F\u79FD\u4F1A\u70E9\u6C47\u8BB3\u8BF2\u7ED8\u8364\u660F\u5A5A\u9B42\u6D51\u6DF7\u8C41\u6D3B\u4F19\u706B\u83B7\u6216\u60D1\u970D\u8D27\u7978\u51FB\u573E\u57FA\u673A\u7578\u7A3D\u79EF\u7B95"],["bc40","\u7CBF\u7CC0\u7CC2\u7CC3\u7CC4\u7CC6\u7CC9\u7CCB\u7CCE",6,"\u7CD8\u7CDA\u7CDB\u7CDD\u7CDE\u7CE1",6,"\u7CE9",5,"\u7CF0",7,"\u7CF9\u7CFA\u7CFC",13,"\u7D0B",5],["bc80","\u7D11",14,"\u7D21\u7D23\u7D24\u7D25\u7D26\u7D28\u7D29\u7D2A\u7D2C\u7D2D\u7D2E\u7D30",6,"\u808C\u9965\u8FF9\u6FC0\u8BA5\u9E21\u59EC\u7EE9\u7F09\u5409\u6781\u68D8\u8F91\u7C4D\u96C6\u53CA\u6025\u75BE\u6C72\u5373\u5AC9\u7EA7\u6324\u51E0\u810A\u5DF1\u84DF\u6280\u5180\u5B63\u4F0E\u796D\u5242\u60B8\u6D4E\u5BC4\u5BC2\u8BA1\u8BB0\u65E2\u5FCC\u9645\u5993\u7EE7\u7EAA\u5609\u67B7\u5939\u4F73\u5BB6\u52A0\u835A\u988A\u8D3E\u7532\u94BE\u5047\u7A3C\u4EF7\u67B6\u9A7E\u5AC1\u6B7C\u76D1\u575A\u5C16\u7B3A\u95F4\u714E\u517C\u80A9\u8270\u5978\u7F04\u8327\u68C0\u67EC\u78B1\u7877\u62E3\u6361\u7B80\u4FED\u526A\u51CF\u8350\u69DB\u9274\u8DF5\u8D31\u89C1\u952E\u7BAD\u4EF6"],["bd40","\u7D37",54,"\u7D6F",7],["bd80","\u7D78",32,"\u5065\u8230\u5251\u996F\u6E10\u6E85\u6DA7\u5EFA\u50F5\u59DC\u5C06\u6D46\u6C5F\u7586\u848B\u6868\u5956\u8BB2\u5320\u9171\u964D\u8549\u6912\u7901\u7126\u80F6\u4EA4\u90CA\u6D47\u9A84\u5A07\u56BC\u6405\u94F0\u77EB\u4FA5\u811A\u72E1\u89D2\u997A\u7F34\u7EDE\u527F\u6559\u9175\u8F7F\u8F83\u53EB\u7A96\u63ED\u63A5\u7686\u79F8\u8857\u9636\u622A\u52AB\u8282\u6854\u6770\u6377\u776B\u7AED\u6D01\u7ED3\u89E3\u59D0\u6212\u85C9\u82A5\u754C\u501F\u4ECB\u75A5\u8BEB\u5C4A\u5DFE\u7B4B\u65A4\u91D1\u4ECA\u6D25\u895F\u7D27\u9526\u4EC5\u8C28\u8FDB\u9773\u664B\u7981\u8FD1\u70EC\u6D78"],["be40","\u7D99",12,"\u7DA7",6,"\u7DAF",42],["be80","\u7DDA",32,"\u5C3D\u52B2\u8346\u5162\u830E\u775B\u6676\u9CB8\u4EAC\u60CA\u7CBE\u7CB3\u7ECF\u4E95\u8B66\u666F\u9888\u9759\u5883\u656C\u955C\u5F84\u75C9\u9756\u7ADF\u7ADE\u51C0\u70AF\u7A98\u63EA\u7A76\u7EA0\u7396\u97ED\u4E45\u7078\u4E5D\u9152\u53A9\u6551\u65E7\u81FC\u8205\u548E\u5C31\u759A\u97A0\u62D8\u72D9\u75BD\u5C45\u9A79\u83CA\u5C40\u5480\u77E9\u4E3E\u6CAE\u805A\u62D2\u636E\u5DE8\u5177\u8DDD\u8E1E\u952F\u4FF1\u53E5\u60E7\u70AC\u5267\u6350\u9E43\u5A1F\u5026\u7737\u5377\u7EE2\u6485\u652B\u6289\u6398\u5014\u7235\u89C9\u51B3\u8BC0\u7EDD\u5747\u83CC\u94A7\u519B\u541B\u5CFB"],["bf40","\u7DFB",62],["bf80","\u7E3A\u7E3C",4,"\u7E42",4,"\u7E48",21,"\u4FCA\u7AE3\u6D5A\u90E1\u9A8F\u5580\u5496\u5361\u54AF\u5F00\u63E9\u6977\u51EF\u6168\u520A\u582A\u52D8\u574E\u780D\u770B\u5EB7\u6177\u7CE0\u625B\u6297\u4EA2\u7095\u8003\u62F7\u70E4\u9760\u5777\u82DB\u67EF\u68F5\u78D5\u9897\u79D1\u58F3\u54B3\u53EF\u6E34\u514B\u523B\u5BA2\u8BFE\u80AF\u5543\u57A6\u6073\u5751\u542D\u7A7A\u6050\u5B54\u63A7\u62A0\u53E3\u6263\u5BC7\u67AF\u54ED\u7A9F\u82E6\u9177\u5E93\u88E4\u5938\u57AE\u630E\u8DE8\u80EF\u5757\u7B77\u4FA9\u5FEB\u5BBD\u6B3E\u5321\u7B50\u72C2\u6846\u77FF\u7736\u65F7\u51B5\u4E8F\u76D4\u5CBF\u7AA5\u8475\u594E\u9B41\u5080"],["c040","\u7E5E",35,"\u7E83",23,"\u7E9C\u7E9D\u7E9E"],["c080","\u7EAE\u7EB4\u7EBB\u7EBC\u7ED6\u7EE4\u7EEC\u7EF9\u7F0A\u7F10\u7F1E\u7F37\u7F39\u7F3B",6,"\u7F43\u7F46",9,"\u7F52\u7F53\u9988\u6127\u6E83\u5764\u6606\u6346\u56F0\u62EC\u6269\u5ED3\u9614\u5783\u62C9\u5587\u8721\u814A\u8FA3\u5566\u83B1\u6765\u8D56\u84DD\u5A6A\u680F\u62E6\u7BEE\u9611\u5170\u6F9C\u8C30\u63FD\u89C8\u61D2\u7F06\u70C2\u6EE5\u7405\u6994\u72FC\u5ECA\u90CE\u6717\u6D6A\u635E\u52B3\u7262\u8001\u4F6C\u59E5\u916A\u70D9\u6D9D\u52D2\u4E50\u96F7\u956D\u857E\u78CA\u7D2F\u5121\u5792\u64C2\u808B\u7C7B\u6CEA\u68F1\u695E\u51B7\u5398\u68A8\u7281\u9ECE\u7BF1\u72F8\u79BB\u6F13\u7406\u674E\u91CC\u9CA4\u793C\u8389\u8354\u540F\u6817\u4E3D\u5389\u52B1\u783E\u5386\u5229\u5088\u4F8B\u4FD0"],["c140","\u7F56\u7F59\u7F5B\u7F5C\u7F5D\u7F5E\u7F60\u7F63",4,"\u7F6B\u7F6C\u7F6D\u7F6F\u7F70\u7F73\u7F75\u7F76\u7F77\u7F78\u7F7A\u7F7B\u7F7C\u7F7D\u7F7F\u7F80\u7F82",7,"\u7F8B\u7F8D\u7F8F",4,"\u7F95",4,"\u7F9B\u7F9C\u7FA0\u7FA2\u7FA3\u7FA5\u7FA6\u7FA8",6,"\u7FB1"],["c180","\u7FB3",4,"\u7FBA\u7FBB\u7FBE\u7FC0\u7FC2\u7FC3\u7FC4\u7FC6\u7FC7\u7FC8\u7FC9\u7FCB\u7FCD\u7FCF",4,"\u7FD6\u7FD7\u7FD9",5,"\u7FE2\u7FE3\u75E2\u7ACB\u7C92\u6CA5\u96B6\u529B\u7483\u54E9\u4FE9\u8054\u83B2\u8FDE\u9570\u5EC9\u601C\u6D9F\u5E18\u655B\u8138\u94FE\u604B\u70BC\u7EC3\u7CAE\u51C9\u6881\u7CB1\u826F\u4E24\u8F86\u91CF\u667E\u4EAE\u8C05\u64A9\u804A\u50DA\u7597\u71CE\u5BE5\u8FBD\u6F66\u4E86\u6482\u9563\u5ED6\u6599\u5217\u88C2\u70C8\u52A3\u730E\u7433\u6797\u78F7\u9716\u4E34\u90BB\u9CDE\u6DCB\u51DB\u8D41\u541D\u62CE\u73B2\u83F1\u96F6\u9F84\u94C3\u4F36\u7F9A\u51CC\u7075\u9675\u5CAD\u9886\u53E6\u4EE4\u6E9C\u7409\u69B4\u786B\u998F\u7559\u5218\u7624\u6D41\u67F3\u516D\u9F99\u804B\u5499\u7B3C\u7ABF"],["c240","\u7FE4\u7FE7\u7FE8\u7FEA\u7FEB\u7FEC\u7FED\u7FEF\u7FF2\u7FF4",6,"\u7FFD\u7FFE\u7FFF\u8002\u8007\u8008\u8009\u800A\u800E\u800F\u8011\u8013\u801A\u801B\u801D\u801E\u801F\u8021\u8023\u8024\u802B",5,"\u8032\u8034\u8039\u803A\u803C\u803E\u8040\u8041\u8044\u8045\u8047\u8048\u8049\u804E\u804F\u8050\u8051\u8053\u8055\u8056\u8057"],["c280","\u8059\u805B",13,"\u806B",5,"\u8072",11,"\u9686\u5784\u62E2\u9647\u697C\u5A04\u6402\u7BD3\u6F0F\u964B\u82A6\u5362\u9885\u5E90\u7089\u63B3\u5364\u864F\u9C81\u9E93\u788C\u9732\u8DEF\u8D42\u9E7F\u6F5E\u7984\u5F55\u9646\u622E\u9A74\u5415\u94DD\u4FA3\u65C5\u5C65\u5C61\u7F15\u8651\u6C2F\u5F8B\u7387\u6EE4\u7EFF\u5CE6\u631B\u5B6A\u6EE6\u5375\u4E71\u63A0\u7565\u62A1\u8F6E\u4F26\u4ED1\u6CA6\u7EB6\u8BBA\u841D\u87BA\u7F57\u903B\u9523\u7BA9\u9AA1\u88F8\u843D\u6D1B\u9A86\u7EDC\u5988\u9EBB\u739B\u7801\u8682\u9A6C\u9A82\u561B\u5417\u57CB\u4E70\u9EA6\u5356\u8FC8\u8109\u7792\u9992\u86EE\u6EE1\u8513\u66FC\u6162\u6F2B"],["c340","\u807E\u8081\u8082\u8085\u8088\u808A\u808D",5,"\u8094\u8095\u8097\u8099\u809E\u80A3\u80A6\u80A7\u80A8\u80AC\u80B0\u80B3\u80B5\u80B6\u80B8\u80B9\u80BB\u80C5\u80C7",4,"\u80CF",6,"\u80D8\u80DF\u80E0\u80E2\u80E3\u80E6\u80EE\u80F5\u80F7\u80F9\u80FB\u80FE\u80FF\u8100\u8101\u8103\u8104\u8105\u8107\u8108\u810B"],["c380","\u810C\u8115\u8117\u8119\u811B\u811C\u811D\u811F",12,"\u812D\u812E\u8130\u8133\u8134\u8135\u8137\u8139",4,"\u813F\u8C29\u8292\u832B\u76F2\u6C13\u5FD9\u83BD\u732B\u8305\u951A\u6BDB\u77DB\u94C6\u536F\u8302\u5192\u5E3D\u8C8C\u8D38\u4E48\u73AB\u679A\u6885\u9176\u9709\u7164\u6CA1\u7709\u5A92\u9541\u6BCF\u7F8E\u6627\u5BD0\u59B9\u5A9A\u95E8\u95F7\u4EEC\u840C\u8499\u6AAC\u76DF\u9530\u731B\u68A6\u5B5F\u772F\u919A\u9761\u7CDC\u8FF7\u8C1C\u5F25\u7C73\u79D8\u89C5\u6CCC\u871C\u5BC6\u5E42\u68C9\u7720\u7EF5\u5195\u514D\u52C9\u5A29\u7F05\u9762\u82D7\u63CF\u7784\u85D0\u79D2\u6E3A\u5E99\u5999\u8511\u706D\u6C11\u62BF\u76BF\u654F\u60AF\u95FD\u660E\u879F\u9E23\u94ED\u540D\u547D\u8C2C\u6478"],["c440","\u8140",5,"\u8147\u8149\u814D\u814E\u814F\u8152\u8156\u8157\u8158\u815B",4,"\u8161\u8162\u8163\u8164\u8166\u8168\u816A\u816B\u816C\u816F\u8172\u8173\u8175\u8176\u8177\u8178\u8181\u8183",4,"\u8189\u818B\u818C\u818D\u818E\u8190\u8192",5,"\u8199\u819A\u819E",4,"\u81A4\u81A5"],["c480","\u81A7\u81A9\u81AB",7,"\u81B4",5,"\u81BC\u81BD\u81BE\u81BF\u81C4\u81C5\u81C7\u81C8\u81C9\u81CB\u81CD",6,"\u6479\u8611\u6A21\u819C\u78E8\u6469\u9B54\u62B9\u672B\u83AB\u58A8\u9ED8\u6CAB\u6F20\u5BDE\u964C\u8C0B\u725F\u67D0\u62C7\u7261\u4EA9\u59C6\u6BCD\u5893\u66AE\u5E55\u52DF\u6155\u6728\u76EE\u7766\u7267\u7A46\u62FF\u54EA\u5450\u94A0\u90A3\u5A1C\u7EB3\u6C16\u4E43\u5976\u8010\u5948\u5357\u7537\u96BE\u56CA\u6320\u8111\u607C\u95F9\u6DD6\u5462\u9981\u5185\u5AE9\u80FD\u59AE\u9713\u502A\u6CE5\u5C3C\u62DF\u4F60\u533F\u817B\u9006\u6EBA\u852B\u62C8\u5E74\u78BE\u64B5\u637B\u5FF5\u5A18\u917F\u9E1F\u5C3F\u634F\u8042\u5B7D\u556E\u954A\u954D\u6D85\u60A8\u67E0\u72DE\u51DD\u5B81"],["c540","\u81D4",14,"\u81E4\u81E5\u81E6\u81E8\u81E9\u81EB\u81EE",4,"\u81F5",5,"\u81FD\u81FF\u8203\u8207",4,"\u820E\u820F\u8211\u8213\u8215",5,"\u821D\u8220\u8224\u8225\u8226\u8227\u8229\u822E\u8232\u823A\u823C\u823D\u823F"],["c580","\u8240\u8241\u8242\u8243\u8245\u8246\u8248\u824A\u824C\u824D\u824E\u8250",7,"\u8259\u825B\u825C\u825D\u825E\u8260",7,"\u8269\u62E7\u6CDE\u725B\u626D\u94AE\u7EBD\u8113\u6D53\u519C\u5F04\u5974\u52AA\u6012\u5973\u6696\u8650\u759F\u632A\u61E6\u7CEF\u8BFA\u54E6\u6B27\u9E25\u6BB4\u85D5\u5455\u5076\u6CA4\u556A\u8DB4\u722C\u5E15\u6015\u7436\u62CD\u6392\u724C\u5F98\u6E43\u6D3E\u6500\u6F58\u76D8\u78D0\u76FC\u7554\u5224\u53DB\u4E53\u5E9E\u65C1\u802A\u80D6\u629B\u5486\u5228\u70AE\u888D\u8DD1\u6CE1\u5478\u80DA\u57F9\u88F4\u8D54\u966A\u914D\u4F69\u6C9B\u55B7\u76C6\u7830\u62A8\u70F9\u6F8E\u5F6D\u84EC\u68DA\u787C\u7BF7\u81A8\u670B\u9E4F\u6367\u78B0\u576F\u7812\u9739\u6279\u62AB\u5288\u7435\u6BD7"],["c640","\u826A\u826B\u826C\u826D\u8271\u8275\u8276\u8277\u8278\u827B\u827C\u8280\u8281\u8283\u8285\u8286\u8287\u8289\u828C\u8290\u8293\u8294\u8295\u8296\u829A\u829B\u829E\u82A0\u82A2\u82A3\u82A7\u82B2\u82B5\u82B6\u82BA\u82BB\u82BC\u82BF\u82C0\u82C2\u82C3\u82C5\u82C6\u82C9\u82D0\u82D6\u82D9\u82DA\u82DD\u82E2\u82E7\u82E8\u82E9\u82EA\u82EC\u82ED\u82EE\u82F0\u82F2\u82F3\u82F5\u82F6\u82F8"],["c680","\u82FA\u82FC",4,"\u830A\u830B\u830D\u8310\u8312\u8313\u8316\u8318\u8319\u831D",9,"\u8329\u832A\u832E\u8330\u8332\u8337\u833B\u833D\u5564\u813E\u75B2\u76AE\u5339\u75DE\u50FB\u5C41\u8B6C\u7BC7\u504F\u7247\u9A97\u98D8\u6F02\u74E2\u7968\u6487\u77A5\u62FC\u9891\u8D2B\u54C1\u8058\u4E52\u576A\u82F9\u840D\u5E73\u51ED\u74F6\u8BC4\u5C4F\u5761\u6CFC\u9887\u5A46\u7834\u9B44\u8FEB\u7C95\u5256\u6251\u94FA\u4EC6\u8386\u8461\u83E9\u84B2\u57D4\u6734\u5703\u666E\u6D66\u8C31\u66DD\u7011\u671F\u6B3A\u6816\u621A\u59BB\u4E03\u51C4\u6F06\u67D2\u6C8F\u5176\u68CB\u5947\u6B67\u7566\u5D0E\u8110\u9F50\u65D7\u7948\u7941\u9A91\u8D77\u5C82\u4E5E\u4F01\u542F\u5951\u780C\u5668\u6C14\u8FC4\u5F03\u6C7D\u6CE3\u8BAB\u6390"],["c740","\u833E\u833F\u8341\u8342\u8344\u8345\u8348\u834A",4,"\u8353\u8355",4,"\u835D\u8362\u8370",6,"\u8379\u837A\u837E",6,"\u8387\u8388\u838A\u838B\u838C\u838D\u838F\u8390\u8391\u8394\u8395\u8396\u8397\u8399\u839A\u839D\u839F\u83A1",6,"\u83AC\u83AD\u83AE"],["c780","\u83AF\u83B5\u83BB\u83BE\u83BF\u83C2\u83C3\u83C4\u83C6\u83C8\u83C9\u83CB\u83CD\u83CE\u83D0\u83D1\u83D2\u83D3\u83D5\u83D7\u83D9\u83DA\u83DB\u83DE\u83E2\u83E3\u83E4\u83E6\u83E7\u83E8\u83EB\u83EC\u83ED\u6070\u6D3D\u7275\u6266\u948E\u94C5\u5343\u8FC1\u7B7E\u4EDF\u8C26\u4E7E\u9ED4\u94B1\u94B3\u524D\u6F5C\u9063\u6D45\u8C34\u5811\u5D4C\u6B20\u6B49\u67AA\u545B\u8154\u7F8C\u5899\u8537\u5F3A\u62A2\u6A47\u9539\u6572\u6084\u6865\u77A7\u4E54\u4FA8\u5DE7\u9798\u64AC\u7FD8\u5CED\u4FCF\u7A8D\u5207\u8304\u4E14\u602F\u7A83\u94A6\u4FB5\u4EB2\u79E6\u7434\u52E4\u82B9\u64D2\u79BD\u5BDD\u6C81\u9752\u8F7B\u6C22\u503E\u537F\u6E05\u64CE\u6674\u6C30\u60C5\u9877\u8BF7\u5E86\u743C\u7A77\u79CB\u4E18\u90B1\u7403\u6C42\u56DA\u914B\u6CC5\u8D8B\u533A\u86C6\u66F2\u8EAF\u5C48\u9A71\u6E20"],["c840","\u83EE\u83EF\u83F3",4,"\u83FA\u83FB\u83FC\u83FE\u83FF\u8400\u8402\u8405\u8407\u8408\u8409\u840A\u8410\u8412",5,"\u8419\u841A\u841B\u841E",5,"\u8429",7,"\u8432",5,"\u8439\u843A\u843B\u843E",7,"\u8447\u8448\u8449"],["c880","\u844A",6,"\u8452",4,"\u8458\u845D\u845E\u845F\u8460\u8462\u8464",4,"\u846A\u846E\u846F\u8470\u8472\u8474\u8477\u8479\u847B\u847C\u53D6\u5A36\u9F8B\u8DA3\u53BB\u5708\u98A7\u6743\u919B\u6CC9\u5168\u75CA\u62F3\u72AC\u5238\u529D\u7F3A\u7094\u7638\u5374\u9E4A\u69B7\u786E\u96C0\u88D9\u7FA4\u7136\u71C3\u5189\u67D3\u74E4\u58E4\u6518\u56B7\u8BA9\u9976\u6270\u7ED5\u60F9\u70ED\u58EC\u4EC1\u4EBA\u5FCD\u97E7\u4EFB\u8BA4\u5203\u598A\u7EAB\u6254\u4ECD\u65E5\u620E\u8338\u84C9\u8363\u878D\u7194\u6EB6\u5BB9\u7ED2\u5197\u63C9\u67D4\u8089\u8339\u8815\u5112\u5B7A\u5982\u8FB1\u4E73\u6C5D\u5165\u8925\u8F6F\u962E\u854A\u745E\u9510\u95F0\u6DA6\u82E5\u5F31\u6492\u6D12\u8428\u816E\u9CC3\u585E\u8D5B\u4E09\u53C1"],["c940","\u847D",4,"\u8483\u8484\u8485\u8486\u848A\u848D\u848F",7,"\u8498\u849A\u849B\u849D\u849E\u849F\u84A0\u84A2",12,"\u84B0\u84B1\u84B3\u84B5\u84B6\u84B7\u84BB\u84BC\u84BE\u84C0\u84C2\u84C3\u84C5\u84C6\u84C7\u84C8\u84CB\u84CC\u84CE\u84CF\u84D2\u84D4\u84D5\u84D7"],["c980","\u84D8",4,"\u84DE\u84E1\u84E2\u84E4\u84E7",4,"\u84ED\u84EE\u84EF\u84F1",10,"\u84FD\u84FE\u8500\u8501\u8502\u4F1E\u6563\u6851\u55D3\u4E27\u6414\u9A9A\u626B\u5AC2\u745F\u8272\u6DA9\u68EE\u50E7\u838E\u7802\u6740\u5239\u6C99\u7EB1\u50BB\u5565\u715E\u7B5B\u6652\u73CA\u82EB\u6749\u5C71\u5220\u717D\u886B\u95EA\u9655\u64C5\u8D61\u81B3\u5584\u6C55\u6247\u7F2E\u5892\u4F24\u5546\u8D4F\u664C\u4E0A\u5C1A\u88F3\u68A2\u634E\u7A0D\u70E7\u828D\u52FA\u97F6\u5C11\u54E8\u90B5\u7ECD\u5962\u8D4A\u86C7\u820C\u820D\u8D66\u6444\u5C04\u6151\u6D89\u793E\u8BBE\u7837\u7533\u547B\u4F38\u8EAB\u6DF1\u5A20\u7EC5\u795E\u6C88\u5BA1\u5A76\u751A\u80BE\u614E\u6E17\u58F0\u751F\u7525\u7272\u5347\u7EF3"],["ca40","\u8503",8,"\u850D\u850E\u850F\u8510\u8512\u8514\u8515\u8516\u8518\u8519\u851B\u851C\u851D\u851E\u8520\u8522",8,"\u852D",9,"\u853E",4,"\u8544\u8545\u8546\u8547\u854B",10],["ca80","\u8557\u8558\u855A\u855B\u855C\u855D\u855F",4,"\u8565\u8566\u8567\u8569",8,"\u8573\u8575\u8576\u8577\u8578\u857C\u857D\u857F\u8580\u8581\u7701\u76DB\u5269\u80DC\u5723\u5E08\u5931\u72EE\u65BD\u6E7F\u8BD7\u5C38\u8671\u5341\u77F3\u62FE\u65F6\u4EC0\u98DF\u8680\u5B9E\u8BC6\u53F2\u77E2\u4F7F\u5C4E\u9A76\u59CB\u5F0F\u793A\u58EB\u4E16\u67FF\u4E8B\u62ED\u8A93\u901D\u52BF\u662F\u55DC\u566C\u9002\u4ED5\u4F8D\u91CA\u9970\u6C0F\u5E02\u6043\u5BA4\u89C6\u8BD5\u6536\u624B\u9996\u5B88\u5BFF\u6388\u552E\u53D7\u7626\u517D\u852C\u67A2\u68B3\u6B8A\u6292\u8F93\u53D4\u8212\u6DD1\u758F\u4E66\u8D4E\u5B70\u719F\u85AF\u6691\u66D9\u7F72\u8700\u9ECD\u9F20\u5C5E\u672F\u8FF0\u6811\u675F\u620D\u7AD6\u5885\u5EB6\u6570\u6F31"],["cb40","\u8582\u8583\u8586\u8588",6,"\u8590",10,"\u859D",6,"\u85A5\u85A6\u85A7\u85A9\u85AB\u85AC\u85AD\u85B1",5,"\u85B8\u85BA",6,"\u85C2",6,"\u85CA",4,"\u85D1\u85D2"],["cb80","\u85D4\u85D6",5,"\u85DD",6,"\u85E5\u85E6\u85E7\u85E8\u85EA",14,"\u6055\u5237\u800D\u6454\u8870\u7529\u5E05\u6813\u62F4\u971C\u53CC\u723D\u8C01\u6C34\u7761\u7A0E\u542E\u77AC\u987A\u821C\u8BF4\u7855\u6714\u70C1\u65AF\u6495\u5636\u601D\u79C1\u53F8\u4E1D\u6B7B\u8086\u5BFA\u55E3\u56DB\u4F3A\u4F3C\u9972\u5DF3\u677E\u8038\u6002\u9882\u9001\u5B8B\u8BBC\u8BF5\u641C\u8258\u64DE\u55FD\u82CF\u9165\u4FD7\u7D20\u901F\u7C9F\u50F3\u5851\u6EAF\u5BBF\u8BC9\u8083\u9178\u849C\u7B97\u867D\u968B\u968F\u7EE5\u9AD3\u788E\u5C81\u7A57\u9042\u96A7\u795F\u5B59\u635F\u7B0B\u84D1\u68AD\u5506\u7F29\u7410\u7D22\u9501\u6240\u584C\u4ED6\u5B83\u5979\u5854"],["cc40","\u85F9\u85FA\u85FC\u85FD\u85FE\u8600",4,"\u8606",10,"\u8612\u8613\u8614\u8615\u8617",15,"\u8628\u862A",13,"\u8639\u863A\u863B\u863D\u863E\u863F\u8640"],["cc80","\u8641",11,"\u8652\u8653\u8655",4,"\u865B\u865C\u865D\u865F\u8660\u8661\u8663",7,"\u736D\u631E\u8E4B\u8E0F\u80CE\u82D4\u62AC\u53F0\u6CF0\u915E\u592A\u6001\u6C70\u574D\u644A\u8D2A\u762B\u6EE9\u575B\u6A80\u75F0\u6F6D\u8C2D\u8C08\u5766\u6BEF\u8892\u78B3\u63A2\u53F9\u70AD\u6C64\u5858\u642A\u5802\u68E0\u819B\u5510\u7CD6\u5018\u8EBA\u6DCC\u8D9F\u70EB\u638F\u6D9B\u6ED4\u7EE6\u8404\u6843\u9003\u6DD8\u9676\u8BA8\u5957\u7279\u85E4\u817E\u75BC\u8A8A\u68AF\u5254\u8E22\u9511\u63D0\u9898\u8E44\u557C\u4F53\u66FF\u568F\u60D5\u6D95\u5243\u5C49\u5929\u6DFB\u586B\u7530\u751C\u606C\u8214\u8146\u6311\u6761\u8FE2\u773A\u8DF3\u8D34\u94C1\u5E16\u5385\u542C\u70C3"],["cd40","\u866D\u866F\u8670\u8672",6,"\u8683",6,"\u868E",4,"\u8694\u8696",5,"\u869E",4,"\u86A5\u86A6\u86AB\u86AD\u86AE\u86B2\u86B3\u86B7\u86B8\u86B9\u86BB",4,"\u86C1\u86C2\u86C3\u86C5\u86C8\u86CC\u86CD\u86D2\u86D3\u86D5\u86D6\u86D7\u86DA\u86DC"],["cd80","\u86DD\u86E0\u86E1\u86E2\u86E3\u86E5\u86E6\u86E7\u86E8\u86EA\u86EB\u86EC\u86EF\u86F5\u86F6\u86F7\u86FA\u86FB\u86FC\u86FD\u86FF\u8701\u8704\u8705\u8706\u870B\u870C\u870E\u870F\u8710\u8711\u8714\u8716\u6C40\u5EF7\u505C\u4EAD\u5EAD\u633A\u8247\u901A\u6850\u916E\u77B3\u540C\u94DC\u5F64\u7AE5\u6876\u6345\u7B52\u7EDF\u75DB\u5077\u6295\u5934\u900F\u51F8\u79C3\u7A81\u56FE\u5F92\u9014\u6D82\u5C60\u571F\u5410\u5154\u6E4D\u56E2\u63A8\u9893\u817F\u8715\u892A\u9000\u541E\u5C6F\u81C0\u62D6\u6258\u8131\u9E35\u9640\u9A6E\u9A7C\u692D\u59A5\u62D3\u553E\u6316\u54C7\u86D9\u6D3C\u5A03\u74E6\u889C\u6B6A\u5916\u8C4C\u5F2F\u6E7E\u73A9\u987D\u4E38\u70F7\u5B8C\u7897\u633D\u665A\u7696\u60CB\u5B9B\u5A49\u4E07\u8155\u6C6A\u738B\u4EA1\u6789\u7F51\u5F80\u65FA\u671B\u5FD8\u5984\u5A01"],["ce40","\u8719\u871B\u871D\u871F\u8720\u8724\u8726\u8727\u8728\u872A\u872B\u872C\u872D\u872F\u8730\u8732\u8733\u8735\u8736\u8738\u8739\u873A\u873C\u873D\u8740",6,"\u874A\u874B\u874D\u874F\u8750\u8751\u8752\u8754\u8755\u8756\u8758\u875A",5,"\u8761\u8762\u8766",7,"\u876F\u8771\u8772\u8773\u8775"],["ce80","\u8777\u8778\u8779\u877A\u877F\u8780\u8781\u8784\u8786\u8787\u8789\u878A\u878C\u878E",4,"\u8794\u8795\u8796\u8798",6,"\u87A0",4,"\u5DCD\u5FAE\u5371\u97E6\u8FDD\u6845\u56F4\u552F\u60DF\u4E3A\u6F4D\u7EF4\u82C7\u840E\u59D4\u4F1F\u4F2A\u5C3E\u7EAC\u672A\u851A\u5473\u754F\u80C3\u5582\u9B4F\u4F4D\u6E2D\u8C13\u5C09\u6170\u536B\u761F\u6E29\u868A\u6587\u95FB\u7EB9\u543B\u7A33\u7D0A\u95EE\u55E1\u7FC1\u74EE\u631D\u8717\u6DA1\u7A9D\u6211\u65A1\u5367\u63E1\u6C83\u5DEB\u545C\u94A8\u4E4C\u6C61\u8BEC\u5C4B\u65E0\u829C\u68A7\u543E\u5434\u6BCB\u6B66\u4E94\u6342\u5348\u821E\u4F0D\u4FAE\u575E\u620A\u96FE\u6664\u7269\u52FF\u52A1\u609F\u8BEF\u6614\u7199\u6790\u897F\u7852\u77FD\u6670\u563B\u5438\u9521\u727A"],["cf40","\u87A5\u87A6\u87A7\u87A9\u87AA\u87AE\u87B0\u87B1\u87B2\u87B4\u87B6\u87B7\u87B8\u87B9\u87BB\u87BC\u87BE\u87BF\u87C1",4,"\u87C7\u87C8\u87C9\u87CC",4,"\u87D4",6,"\u87DC\u87DD\u87DE\u87DF\u87E1\u87E2\u87E3\u87E4\u87E6\u87E7\u87E8\u87E9\u87EB\u87EC\u87ED\u87EF",9],["cf80","\u87FA\u87FB\u87FC\u87FD\u87FF\u8800\u8801\u8802\u8804",5,"\u880B",7,"\u8814\u8817\u8818\u8819\u881A\u881C",4,"\u8823\u7A00\u606F\u5E0C\u6089\u819D\u5915\u60DC\u7184\u70EF\u6EAA\u6C50\u7280\u6A84\u88AD\u5E2D\u4E60\u5AB3\u559C\u94E3\u6D17\u7CFB\u9699\u620F\u7EC6\u778E\u867E\u5323\u971E\u8F96\u6687\u5CE1\u4FA0\u72ED\u4E0B\u53A6\u590F\u5413\u6380\u9528\u5148\u4ED9\u9C9C\u7EA4\u54B8\u8D24\u8854\u8237\u95F2\u6D8E\u5F26\u5ACC\u663E\u9669\u73B0\u732E\u53BF\u817A\u9985\u7FA1\u5BAA\u9677\u9650\u7EBF\u76F8\u53A2\u9576\u9999\u7BB1\u8944\u6E58\u4E61\u7FD4\u7965\u8BE6\u60F3\u54CD\u4EAB\u9879\u5DF7\u6A61\u50CF\u5411\u8C61\u8427\u785D\u9704\u524A\u54EE\u56A3\u9500\u6D88\u5BB5\u6DC6\u6653"],["d040","\u8824",13,"\u8833",5,"\u883A\u883B\u883D\u883E\u883F\u8841\u8842\u8843\u8846",5,"\u884E",5,"\u8855\u8856\u8858\u885A",6,"\u8866\u8867\u886A\u886D\u886F\u8871\u8873\u8874\u8875\u8876\u8878\u8879\u887A"],["d080","\u887B\u887C\u8880\u8883\u8886\u8887\u8889\u888A\u888C\u888E\u888F\u8890\u8891\u8893\u8894\u8895\u8897",4,"\u889D",4,"\u88A3\u88A5",5,"\u5C0F\u5B5D\u6821\u8096\u5578\u7B11\u6548\u6954\u4E9B\u6B47\u874E\u978B\u534F\u631F\u643A\u90AA\u659C\u80C1\u8C10\u5199\u68B0\u5378\u87F9\u61C8\u6CC4\u6CFB\u8C22\u5C51\u85AA\u82AF\u950C\u6B23\u8F9B\u65B0\u5FFB\u5FC3\u4FE1\u8845\u661F\u8165\u7329\u60FA\u5174\u5211\u578B\u5F62\u90A2\u884C\u9192\u5E78\u674F\u6027\u59D3\u5144\u51F6\u80F8\u5308\u6C79\u96C4\u718A\u4F11\u4FEE\u7F9E\u673D\u55C5\u9508\u79C0\u8896\u7EE3\u589F\u620C\u9700\u865A\u5618\u987B\u5F90\u8BB8\u84C4\u9157\u53D9\u65ED\u5E8F\u755C\u6064\u7D6E\u5A7F\u7EEA\u7EED\u8F69\u55A7\u5BA3\u60AC\u65CB\u7384"],["d140","\u88AC\u88AE\u88AF\u88B0\u88B2",4,"\u88B8\u88B9\u88BA\u88BB\u88BD\u88BE\u88BF\u88C0\u88C3\u88C4\u88C7\u88C8\u88CA\u88CB\u88CC\u88CD\u88CF\u88D0\u88D1\u88D3\u88D6\u88D7\u88DA",4,"\u88E0\u88E1\u88E6\u88E7\u88E9",6,"\u88F2\u88F5\u88F6\u88F7\u88FA\u88FB\u88FD\u88FF\u8900\u8901\u8903",5],["d180","\u8909\u890B",4,"\u8911\u8914",4,"\u891C",4,"\u8922\u8923\u8924\u8926\u8927\u8928\u8929\u892C\u892D\u892E\u892F\u8931\u8932\u8933\u8935\u8937\u9009\u7663\u7729\u7EDA\u9774\u859B\u5B66\u7A74\u96EA\u8840\u52CB\u718F\u5FAA\u65EC\u8BE2\u5BFB\u9A6F\u5DE1\u6B89\u6C5B\u8BAD\u8BAF\u900A\u8FC5\u538B\u62BC\u9E26\u9E2D\u5440\u4E2B\u82BD\u7259\u869C\u5D16\u8859\u6DAF\u96C5\u54D1\u4E9A\u8BB6\u7109\u54BD\u9609\u70DF\u6DF9\u76D0\u4E25\u7814\u8712\u5CA9\u5EF6\u8A00\u989C\u960E\u708E\u6CBF\u5944\u63A9\u773C\u884D\u6F14\u8273\u5830\u71D5\u538C\u781A\u96C1\u5501\u5F66\u7130\u5BB4\u8C1A\u9A8C\u6B83\u592E\u9E2F\u79E7\u6768\u626C\u4F6F\u75A1\u7F8A\u6D0B\u9633\u6C27\u4EF0\u75D2\u517B\u6837\u6F3E\u9080\u8170\u5996\u7476"],["d240","\u8938",8,"\u8942\u8943\u8945",24,"\u8960",5,"\u8967",19,"\u897C"],["d280","\u897D\u897E\u8980\u8982\u8984\u8985\u8987",26,"\u6447\u5C27\u9065\u7A91\u8C23\u59DA\u54AC\u8200\u836F\u8981\u8000\u6930\u564E\u8036\u7237\u91CE\u51B6\u4E5F\u9875\u6396\u4E1A\u53F6\u66F3\u814B\u591C\u6DB2\u4E00\u58F9\u533B\u63D6\u94F1\u4F9D\u4F0A\u8863\u9890\u5937\u9057\u79FB\u4EEA\u80F0\u7591\u6C82\u5B9C\u59E8\u5F5D\u6905\u8681\u501A\u5DF2\u4E59\u77E3\u4EE5\u827A\u6291\u6613\u9091\u5C79\u4EBF\u5F79\u81C6\u9038\u8084\u75AB\u4EA6\u88D4\u610F\u6BC5\u5FC6\u4E49\u76CA\u6EA2\u8BE3\u8BAE\u8C0A\u8BD1\u5F02\u7FFC\u7FCC\u7ECE\u8335\u836B\u56E0\u6BB7\u97F3\u9634\u59FB\u541F\u94F6\u6DEB\u5BC5\u996E\u5C39\u5F15\u9690"],["d340","\u89A2",30,"\u89C3\u89CD\u89D3\u89D4\u89D5\u89D7\u89D8\u89D9\u89DB\u89DD\u89DF\u89E0\u89E1\u89E2\u89E4\u89E7\u89E8\u89E9\u89EA\u89EC\u89ED\u89EE\u89F0\u89F1\u89F2\u89F4",6],["d380","\u89FB",4,"\u8A01",5,"\u8A08",21,"\u5370\u82F1\u6A31\u5A74\u9E70\u5E94\u7F28\u83B9\u8424\u8425\u8367\u8747\u8FCE\u8D62\u76C8\u5F71\u9896\u786C\u6620\u54DF\u62E5\u4F63\u81C3\u75C8\u5EB8\u96CD\u8E0A\u86F9\u548F\u6CF3\u6D8C\u6C38\u607F\u52C7\u7528\u5E7D\u4F18\u60A0\u5FE7\u5C24\u7531\u90AE\u94C0\u72B9\u6CB9\u6E38\u9149\u6709\u53CB\u53F3\u4F51\u91C9\u8BF1\u53C8\u5E7C\u8FC2\u6DE4\u4E8E\u76C2\u6986\u865E\u611A\u8206\u4F59\u4FDE\u903E\u9C7C\u6109\u6E1D\u6E14\u9685\u4E88\u5A31\u96E8\u4E0E\u5C7F\u79B9\u5B87\u8BED\u7FBD\u7389\u57DF\u828B\u90C1\u5401\u9047\u55BB\u5CEA\u5FA1\u6108\u6B32\u72F1\u80B2\u8A89"],["d440","\u8A1E",31,"\u8A3F",8,"\u8A49",21],["d480","\u8A5F",25,"\u8A7A",6,"\u6D74\u5BD3\u88D5\u9884\u8C6B\u9A6D\u9E33\u6E0A\u51A4\u5143\u57A3\u8881\u539F\u63F4\u8F95\u56ED\u5458\u5706\u733F\u6E90\u7F18\u8FDC\u82D1\u613F\u6028\u9662\u66F0\u7EA6\u8D8A\u8DC3\u94A5\u5CB3\u7CA4\u6708\u60A6\u9605\u8018\u4E91\u90E7\u5300\u9668\u5141\u8FD0\u8574\u915D\u6655\u97F5\u5B55\u531D\u7838\u6742\u683D\u54C9\u707E\u5BB0\u8F7D\u518D\u5728\u54B1\u6512\u6682\u8D5E\u8D43\u810F\u846C\u906D\u7CDF\u51FF\u85FB\u67A3\u65E9\u6FA1\u86A4\u8E81\u566A\u9020\u7682\u7076\u71E5\u8D23\u62E9\u5219\u6CFD\u8D3C\u600E\u589E\u618E\u66FE\u8D60\u624E\u55B3\u6E23\u672D\u8F67"],["d540","\u8A81",7,"\u8A8B",7,"\u8A94",46],["d580","\u8AC3",32,"\u94E1\u95F8\u7728\u6805\u69A8\u548B\u4E4D\u70B8\u8BC8\u6458\u658B\u5B85\u7A84\u503A\u5BE8\u77BB\u6BE1\u8A79\u7C98\u6CBE\u76CF\u65A9\u8F97\u5D2D\u5C55\u8638\u6808\u5360\u6218\u7AD9\u6E5B\u7EFD\u6A1F\u7AE0\u5F70\u6F33\u5F20\u638C\u6DA8\u6756\u4E08\u5E10\u8D26\u4ED7\u80C0\u7634\u969C\u62DB\u662D\u627E\u6CBC\u8D75\u7167\u7F69\u5146\u8087\u53EC\u906E\u6298\u54F2\u86F0\u8F99\u8005\u9517\u8517\u8FD9\u6D59\u73CD\u659F\u771F\u7504\u7827\u81FB\u8D1E\u9488\u4FA6\u6795\u75B9\u8BCA\u9707\u632F\u9547\u9635\u84B8\u6323\u7741\u5F81\u72F0\u4E89\u6014\u6574\u62EF\u6B63\u653F"],["d640","\u8AE4",34,"\u8B08",27],["d680","\u8B24\u8B25\u8B27",30,"\u5E27\u75C7\u90D1\u8BC1\u829D\u679D\u652F\u5431\u8718\u77E5\u80A2\u8102\u6C41\u4E4B\u7EC7\u804C\u76F4\u690D\u6B96\u6267\u503C\u4F84\u5740\u6307\u6B62\u8DBE\u53EA\u65E8\u7EB8\u5FD7\u631A\u63B7\u81F3\u81F4\u7F6E\u5E1C\u5CD9\u5236\u667A\u79E9\u7A1A\u8D28\u7099\u75D4\u6EDE\u6CBB\u7A92\u4E2D\u76C5\u5FE0\u949F\u8877\u7EC8\u79CD\u80BF\u91CD\u4EF2\u4F17\u821F\u5468\u5DDE\u6D32\u8BCC\u7CA5\u8F74\u8098\u5E1A\u5492\u76B1\u5B99\u663C\u9AA4\u73E0\u682A\u86DB\u6731\u732A\u8BF8\u8BDB\u9010\u7AF9\u70DB\u716E\u62C4\u77A9\u5631\u4E3B\u8457\u67F1\u52A9\u86C0\u8D2E\u94F8\u7B51"],["d740","\u8B46",31,"\u8B67",4,"\u8B6D",25],["d780","\u8B87",24,"\u8BAC\u8BB1\u8BBB\u8BC7\u8BD0\u8BEA\u8C09\u8C1E\u4F4F\u6CE8\u795D\u9A7B\u6293\u722A\u62FD\u4E13\u7816\u8F6C\u64B0\u8D5A\u7BC6\u6869\u5E84\u88C5\u5986\u649E\u58EE\u72B6\u690E\u9525\u8FFD\u8D58\u5760\u7F00\u8C06\u51C6\u6349\u62D9\u5353\u684C\u7422\u8301\u914C\u5544\u7740\u707C\u6D4A\u5179\u54A8\u8D44\u59FF\u6ECB\u6DC4\u5B5C\u7D2B\u4ED4\u7C7D\u6ED3\u5B50\u81EA\u6E0D\u5B57\u9B03\u68D5\u8E2A\u5B97\u7EFC\u603B\u7EB5\u90B9\u8D70\u594F\u63CD\u79DF\u8DB3\u5352\u65CF\u7956\u8BC5\u963B\u7EC4\u94BB\u7E82\u5634\u9189\u6700\u7F6A\u5C0A\u9075\u6628\u5DE6\u4F50\u67DE\u505A\u4F5C\u5750\u5EA7"],["d840","\u8C38",8,"\u8C42\u8C43\u8C44\u8C45\u8C48\u8C4A\u8C4B\u8C4D",7,"\u8C56\u8C57\u8C58\u8C59\u8C5B",5,"\u8C63",6,"\u8C6C",6,"\u8C74\u8C75\u8C76\u8C77\u8C7B",6,"\u8C83\u8C84\u8C86\u8C87"],["d880","\u8C88\u8C8B\u8C8D",6,"\u8C95\u8C96\u8C97\u8C99",20,"\u4E8D\u4E0C\u5140\u4E10\u5EFF\u5345\u4E15\u4E98\u4E1E\u9B32\u5B6C\u5669\u4E28\u79BA\u4E3F\u5315\u4E47\u592D\u723B\u536E\u6C10\u56DF\u80E4\u9997\u6BD3\u777E\u9F17\u4E36\u4E9F\u9F10\u4E5C\u4E69\u4E93\u8288\u5B5B\u556C\u560F\u4EC4\u538D\u539D\u53A3\u53A5\u53AE\u9765\u8D5D\u531A\u53F5\u5326\u532E\u533E\u8D5C\u5366\u5363\u5202\u5208\u520E\u522D\u5233\u523F\u5240\u524C\u525E\u5261\u525C\u84AF\u527D\u5282\u5281\u5290\u5293\u5182\u7F54\u4EBB\u4EC3\u4EC9\u4EC2\u4EE8\u4EE1\u4EEB\u4EDE\u4F1B\u4EF3\u4F22\u4F64\u4EF5\u4F25\u4F27\u4F09\u4F2B\u4F5E\u4F67\u6538\u4F5A\u4F5D"],["d940","\u8CAE",62],["d980","\u8CED",32,"\u4F5F\u4F57\u4F32\u4F3D\u4F76\u4F74\u4F91\u4F89\u4F83\u4F8F\u4F7E\u4F7B\u4FAA\u4F7C\u4FAC\u4F94\u4FE6\u4FE8\u4FEA\u4FC5\u4FDA\u4FE3\u4FDC\u4FD1\u4FDF\u4FF8\u5029\u504C\u4FF3\u502C\u500F\u502E\u502D\u4FFE\u501C\u500C\u5025\u5028\u507E\u5043\u5055\u5048\u504E\u506C\u507B\u50A5\u50A7\u50A9\u50BA\u50D6\u5106\u50ED\u50EC\u50E6\u50EE\u5107\u510B\u4EDD\u6C3D\u4F58\u4F65\u4FCE\u9FA0\u6C46\u7C74\u516E\u5DFD\u9EC9\u9998\u5181\u5914\u52F9\u530D\u8A07\u5310\u51EB\u5919\u5155\u4EA0\u5156\u4EB3\u886E\u88A4\u4EB5\u8114\u88D2\u7980\u5B34\u8803\u7FB8\u51AB\u51B1\u51BD\u51BC"],["da40","\u8D0E",14,"\u8D20\u8D51\u8D52\u8D57\u8D5F\u8D65\u8D68\u8D69\u8D6A\u8D6C\u8D6E\u8D6F\u8D71\u8D72\u8D78",8,"\u8D82\u8D83\u8D86\u8D87\u8D88\u8D89\u8D8C",4,"\u8D92\u8D93\u8D95",9,"\u8DA0\u8DA1"],["da80","\u8DA2\u8DA4",12,"\u8DB2\u8DB6\u8DB7\u8DB9\u8DBB\u8DBD\u8DC0\u8DC1\u8DC2\u8DC5\u8DC7\u8DC8\u8DC9\u8DCA\u8DCD\u8DD0\u8DD2\u8DD3\u8DD4\u51C7\u5196\u51A2\u51A5\u8BA0\u8BA6\u8BA7\u8BAA\u8BB4\u8BB5\u8BB7\u8BC2\u8BC3\u8BCB\u8BCF\u8BCE\u8BD2\u8BD3\u8BD4\u8BD6\u8BD8\u8BD9\u8BDC\u8BDF\u8BE0\u8BE4\u8BE8\u8BE9\u8BEE\u8BF0\u8BF3\u8BF6\u8BF9\u8BFC\u8BFF\u8C00\u8C02\u8C04\u8C07\u8C0C\u8C0F\u8C11\u8C12\u8C14\u8C15\u8C16\u8C19\u8C1B\u8C18\u8C1D\u8C1F\u8C20\u8C21\u8C25\u8C27\u8C2A\u8C2B\u8C2E\u8C2F\u8C32\u8C33\u8C35\u8C36\u5369\u537A\u961D\u9622\u9621\u9631\u962A\u963D\u963C\u9642\u9649\u9654\u965F\u9667\u966C\u9672\u9674\u9688\u968D\u9697\u96B0\u9097\u909B\u909D\u9099\u90AC\u90A1\u90B4\u90B3\u90B6\u90BA"],["db40","\u8DD5\u8DD8\u8DD9\u8DDC\u8DE0\u8DE1\u8DE2\u8DE5\u8DE6\u8DE7\u8DE9\u8DED\u8DEE\u8DF0\u8DF1\u8DF2\u8DF4\u8DF6\u8DFC\u8DFE",6,"\u8E06\u8E07\u8E08\u8E0B\u8E0D\u8E0E\u8E10\u8E11\u8E12\u8E13\u8E15",7,"\u8E20\u8E21\u8E24",4,"\u8E2B\u8E2D\u8E30\u8E32\u8E33\u8E34\u8E36\u8E37\u8E38\u8E3B\u8E3C\u8E3E"],["db80","\u8E3F\u8E43\u8E45\u8E46\u8E4C",4,"\u8E53",5,"\u8E5A",11,"\u8E67\u8E68\u8E6A\u8E6B\u8E6E\u8E71\u90B8\u90B0\u90CF\u90C5\u90BE\u90D0\u90C4\u90C7\u90D3\u90E6\u90E2\u90DC\u90D7\u90DB\u90EB\u90EF\u90FE\u9104\u9122\u911E\u9123\u9131\u912F\u9139\u9143\u9146\u520D\u5942\u52A2\u52AC\u52AD\u52BE\u54FF\u52D0\u52D6\u52F0\u53DF\u71EE\u77CD\u5EF4\u51F5\u51FC\u9B2F\u53B6\u5F01\u755A\u5DEF\u574C\u57A9\u57A1\u587E\u58BC\u58C5\u58D1\u5729\u572C\u572A\u5733\u5739\u572E\u572F\u575C\u573B\u5742\u5769\u5785\u576B\u5786\u577C\u577B\u5768\u576D\u5776\u5773\u57AD\u57A4\u578C\u57B2\u57CF\u57A7\u57B4\u5793\u57A0\u57D5\u57D8\u57DA\u57D9\u57D2\u57B8\u57F4\u57EF\u57F8\u57E4\u57DD"],["dc40","\u8E73\u8E75\u8E77",4,"\u8E7D\u8E7E\u8E80\u8E82\u8E83\u8E84\u8E86\u8E88",6,"\u8E91\u8E92\u8E93\u8E95",6,"\u8E9D\u8E9F",11,"\u8EAD\u8EAE\u8EB0\u8EB1\u8EB3",6,"\u8EBB",7],["dc80","\u8EC3",10,"\u8ECF",21,"\u580B\u580D\u57FD\u57ED\u5800\u581E\u5819\u5844\u5820\u5865\u586C\u5881\u5889\u589A\u5880\u99A8\u9F19\u61FF\u8279\u827D\u827F\u828F\u828A\u82A8\u8284\u828E\u8291\u8297\u8299\u82AB\u82B8\u82BE\u82B0\u82C8\u82CA\u82E3\u8298\u82B7\u82AE\u82CB\u82CC\u82C1\u82A9\u82B4\u82A1\u82AA\u829F\u82C4\u82CE\u82A4\u82E1\u8309\u82F7\u82E4\u830F\u8307\u82DC\u82F4\u82D2\u82D8\u830C\u82FB\u82D3\u8311\u831A\u8306\u8314\u8315\u82E0\u82D5\u831C\u8351\u835B\u835C\u8308\u8392\u833C\u8334\u8331\u839B\u835E\u832F\u834F\u8347\u8343\u835F\u8340\u8317\u8360\u832D\u833A\u8333\u8366\u8365"],["dd40","\u8EE5",62],["dd80","\u8F24",32,"\u8368\u831B\u8369\u836C\u836A\u836D\u836E\u83B0\u8378\u83B3\u83B4\u83A0\u83AA\u8393\u839C\u8385\u837C\u83B6\u83A9\u837D\u83B8\u837B\u8398\u839E\u83A8\u83BA\u83BC\u83C1\u8401\u83E5\u83D8\u5807\u8418\u840B\u83DD\u83FD\u83D6\u841C\u8438\u8411\u8406\u83D4\u83DF\u840F\u8403\u83F8\u83F9\u83EA\u83C5\u83C0\u8426\u83F0\u83E1\u845C\u8451\u845A\u8459\u8473\u8487\u8488\u847A\u8489\u8478\u843C\u8446\u8469\u8476\u848C\u848E\u8431\u846D\u84C1\u84CD\u84D0\u84E6\u84BD\u84D3\u84CA\u84BF\u84BA\u84E0\u84A1\u84B9\u84B4\u8497\u84E5\u84E3\u850C\u750D\u8538\u84F0\u8539\u851F\u853A"],["de40","\u8F45",32,"\u8F6A\u8F80\u8F8C\u8F92\u8F9D\u8FA0\u8FA1\u8FA2\u8FA4\u8FA5\u8FA6\u8FA7\u8FAA\u8FAC\u8FAD\u8FAE\u8FAF\u8FB2\u8FB3\u8FB4\u8FB5\u8FB7\u8FB8\u8FBA\u8FBB\u8FBC\u8FBF\u8FC0\u8FC3\u8FC6"],["de80","\u8FC9",4,"\u8FCF\u8FD2\u8FD6\u8FD7\u8FDA\u8FE0\u8FE1\u8FE3\u8FE7\u8FEC\u8FEF\u8FF1\u8FF2\u8FF4\u8FF5\u8FF6\u8FFA\u8FFB\u8FFC\u8FFE\u8FFF\u9007\u9008\u900C\u900E\u9013\u9015\u9018\u8556\u853B\u84FF\u84FC\u8559\u8548\u8568\u8564\u855E\u857A\u77A2\u8543\u8572\u857B\u85A4\u85A8\u8587\u858F\u8579\u85AE\u859C\u8585\u85B9\u85B7\u85B0\u85D3\u85C1\u85DC\u85FF\u8627\u8605\u8629\u8616\u863C\u5EFE\u5F08\u593C\u5941\u8037\u5955\u595A\u5958\u530F\u5C22\u5C25\u5C2C\u5C34\u624C\u626A\u629F\u62BB\u62CA\u62DA\u62D7\u62EE\u6322\u62F6\u6339\u634B\u6343\u63AD\u63F6\u6371\u637A\u638E\u63B4\u636D\u63AC\u638A\u6369\u63AE\u63BC\u63F2\u63F8\u63E0\u63FF\u63C4\u63DE\u63CE\u6452\u63C6\u63BE\u6445\u6441\u640B\u641B\u6420\u640C\u6426\u6421\u645E\u6484\u646D\u6496"],["df40","\u9019\u901C\u9023\u9024\u9025\u9027",5,"\u9030",4,"\u9037\u9039\u903A\u903D\u903F\u9040\u9043\u9045\u9046\u9048",4,"\u904E\u9054\u9055\u9056\u9059\u905A\u905C",5,"\u9064\u9066\u9067\u9069\u906A\u906B\u906C\u906F",4,"\u9076",6,"\u907E\u9081"],["df80","\u9084\u9085\u9086\u9087\u9089\u908A\u908C",4,"\u9092\u9094\u9096\u9098\u909A\u909C\u909E\u909F\u90A0\u90A4\u90A5\u90A7\u90A8\u90A9\u90AB\u90AD\u90B2\u90B7\u90BC\u90BD\u90BF\u90C0\u647A\u64B7\u64B8\u6499\u64BA\u64C0\u64D0\u64D7\u64E4\u64E2\u6509\u6525\u652E\u5F0B\u5FD2\u7519\u5F11\u535F\u53F1\u53FD\u53E9\u53E8\u53FB\u5412\u5416\u5406\u544B\u5452\u5453\u5454\u5456\u5443\u5421\u5457\u5459\u5423\u5432\u5482\u5494\u5477\u5471\u5464\u549A\u549B\u5484\u5476\u5466\u549D\u54D0\u54AD\u54C2\u54B4\u54D2\u54A7\u54A6\u54D3\u54D4\u5472\u54A3\u54D5\u54BB\u54BF\u54CC\u54D9\u54DA\u54DC\u54A9\u54AA\u54A4\u54DD\u54CF\u54DE\u551B\u54E7\u5520\u54FD\u5514\u54F3\u5522\u5523\u550F\u5511\u5527\u552A\u5567\u558F\u55B5\u5549\u556D\u5541\u5555\u553F\u5550\u553C"],["e040","\u90C2\u90C3\u90C6\u90C8\u90C9\u90CB\u90CC\u90CD\u90D2\u90D4\u90D5\u90D6\u90D8\u90D9\u90DA\u90DE\u90DF\u90E0\u90E3\u90E4\u90E5\u90E9\u90EA\u90EC\u90EE\u90F0\u90F1\u90F2\u90F3\u90F5\u90F6\u90F7\u90F9\u90FA\u90FB\u90FC\u90FF\u9100\u9101\u9103\u9105",19,"\u911A\u911B\u911C"],["e080","\u911D\u911F\u9120\u9121\u9124",10,"\u9130\u9132",6,"\u913A",8,"\u9144\u5537\u5556\u5575\u5576\u5577\u5533\u5530\u555C\u558B\u55D2\u5583\u55B1\u55B9\u5588\u5581\u559F\u557E\u55D6\u5591\u557B\u55DF\u55BD\u55BE\u5594\u5599\u55EA\u55F7\u55C9\u561F\u55D1\u55EB\u55EC\u55D4\u55E6\u55DD\u55C4\u55EF\u55E5\u55F2\u55F3\u55CC\u55CD\u55E8\u55F5\u55E4\u8F94\u561E\u5608\u560C\u5601\u5624\u5623\u55FE\u5600\u5627\u562D\u5658\u5639\u5657\u562C\u564D\u5662\u5659\u565C\u564C\u5654\u5686\u5664\u5671\u566B\u567B\u567C\u5685\u5693\u56AF\u56D4\u56D7\u56DD\u56E1\u56F5\u56EB\u56F9\u56FF\u5704\u570A\u5709\u571C\u5E0F\u5E19\u5E14\u5E11\u5E31\u5E3B\u5E3C"],["e140","\u9145\u9147\u9148\u9151\u9153\u9154\u9155\u9156\u9158\u9159\u915B\u915C\u915F\u9160\u9166\u9167\u9168\u916B\u916D\u9173\u917A\u917B\u917C\u9180",4,"\u9186\u9188\u918A\u918E\u918F\u9193",6,"\u919C",5,"\u91A4",5,"\u91AB\u91AC\u91B0\u91B1\u91B2\u91B3\u91B6\u91B7\u91B8\u91B9\u91BB"],["e180","\u91BC",10,"\u91C8\u91CB\u91D0\u91D2",9,"\u91DD",8,"\u5E37\u5E44\u5E54\u5E5B\u5E5E\u5E61\u5C8C\u5C7A\u5C8D\u5C90\u5C96\u5C88\u5C98\u5C99\u5C91\u5C9A\u5C9C\u5CB5\u5CA2\u5CBD\u5CAC\u5CAB\u5CB1\u5CA3\u5CC1\u5CB7\u5CC4\u5CD2\u5CE4\u5CCB\u5CE5\u5D02\u5D03\u5D27\u5D26\u5D2E\u5D24\u5D1E\u5D06\u5D1B\u5D58\u5D3E\u5D34\u5D3D\u5D6C\u5D5B\u5D6F\u5D5D\u5D6B\u5D4B\u5D4A\u5D69\u5D74\u5D82\u5D99\u5D9D\u8C73\u5DB7\u5DC5\u5F73\u5F77\u5F82\u5F87\u5F89\u5F8C\u5F95\u5F99\u5F9C\u5FA8\u5FAD\u5FB5\u5FBC\u8862\u5F61\u72AD\u72B0\u72B4\u72B7\u72B8\u72C3\u72C1\u72CE\u72CD\u72D2\u72E8\u72EF\u72E9\u72F2\u72F4\u72F7\u7301\u72F3\u7303\u72FA"],["e240","\u91E6",62],["e280","\u9225",32,"\u72FB\u7317\u7313\u7321\u730A\u731E\u731D\u7315\u7322\u7339\u7325\u732C\u7338\u7331\u7350\u734D\u7357\u7360\u736C\u736F\u737E\u821B\u5925\u98E7\u5924\u5902\u9963\u9967",5,"\u9974\u9977\u997D\u9980\u9984\u9987\u998A\u998D\u9990\u9991\u9993\u9994\u9995\u5E80\u5E91\u5E8B\u5E96\u5EA5\u5EA0\u5EB9\u5EB5\u5EBE\u5EB3\u8D53\u5ED2\u5ED1\u5EDB\u5EE8\u5EEA\u81BA\u5FC4\u5FC9\u5FD6\u5FCF\u6003\u5FEE\u6004\u5FE1\u5FE4\u5FFE\u6005\u6006\u5FEA\u5FED\u5FF8\u6019\u6035\u6026\u601B\u600F\u600D\u6029\u602B\u600A\u603F\u6021\u6078\u6079\u607B\u607A\u6042"],["e340","\u9246",45,"\u9275",16],["e380","\u9286",7,"\u928F",24,"\u606A\u607D\u6096\u609A\u60AD\u609D\u6083\u6092\u608C\u609B\u60EC\u60BB\u60B1\u60DD\u60D8\u60C6\u60DA\u60B4\u6120\u6126\u6115\u6123\u60F4\u6100\u610E\u612B\u614A\u6175\u61AC\u6194\u61A7\u61B7\u61D4\u61F5\u5FDD\u96B3\u95E9\u95EB\u95F1\u95F3\u95F5\u95F6\u95FC\u95FE\u9603\u9604\u9606\u9608\u960A\u960B\u960C\u960D\u960F\u9612\u9615\u9616\u9617\u9619\u961A\u4E2C\u723F\u6215\u6C35\u6C54\u6C5C\u6C4A\u6CA3\u6C85\u6C90\u6C94\u6C8C\u6C68\u6C69\u6C74\u6C76\u6C86\u6CA9\u6CD0\u6CD4\u6CAD\u6CF7\u6CF8\u6CF1\u6CD7\u6CB2\u6CE0\u6CD6\u6CFA\u6CEB\u6CEE\u6CB1\u6CD3\u6CEF\u6CFE"],["e440","\u92A8",5,"\u92AF",24,"\u92C9",31],["e480","\u92E9",32,"\u6D39\u6D27\u6D0C\u6D43\u6D48\u6D07\u6D04\u6D19\u6D0E\u6D2B\u6D4D\u6D2E\u6D35\u6D1A\u6D4F\u6D52\u6D54\u6D33\u6D91\u6D6F\u6D9E\u6DA0\u6D5E\u6D93\u6D94\u6D5C\u6D60\u6D7C\u6D63\u6E1A\u6DC7\u6DC5\u6DDE\u6E0E\u6DBF\u6DE0\u6E11\u6DE6\u6DDD\u6DD9\u6E16\u6DAB\u6E0C\u6DAE\u6E2B\u6E6E\u6E4E\u6E6B\u6EB2\u6E5F\u6E86\u6E53\u6E54\u6E32\u6E25\u6E44\u6EDF\u6EB1\u6E98\u6EE0\u6F2D\u6EE2\u6EA5\u6EA7\u6EBD\u6EBB\u6EB7\u6ED7\u6EB4\u6ECF\u6E8F\u6EC2\u6E9F\u6F62\u6F46\u6F47\u6F24\u6F15\u6EF9\u6F2F\u6F36\u6F4B\u6F74\u6F2A\u6F09\u6F29\u6F89\u6F8D\u6F8C\u6F78\u6F72\u6F7C\u6F7A\u6FD1"],["e540","\u930A",51,"\u933F",10],["e580","\u934A",31,"\u936B\u6FC9\u6FA7\u6FB9\u6FB6\u6FC2\u6FE1\u6FEE\u6FDE\u6FE0\u6FEF\u701A\u7023\u701B\u7039\u7035\u704F\u705E\u5B80\u5B84\u5B95\u5B93\u5BA5\u5BB8\u752F\u9A9E\u6434\u5BE4\u5BEE\u8930\u5BF0\u8E47\u8B07\u8FB6\u8FD3\u8FD5\u8FE5\u8FEE\u8FE4\u8FE9\u8FE6\u8FF3\u8FE8\u9005\u9004\u900B\u9026\u9011\u900D\u9016\u9021\u9035\u9036\u902D\u902F\u9044\u9051\u9052\u9050\u9068\u9058\u9062\u905B\u66B9\u9074\u907D\u9082\u9088\u9083\u908B\u5F50\u5F57\u5F56\u5F58\u5C3B\u54AB\u5C50\u5C59\u5B71\u5C63\u5C66\u7FBC\u5F2A\u5F29\u5F2D\u8274\u5F3C\u9B3B\u5C6E\u5981\u5983\u598D\u59A9\u59AA\u59A3"],["e640","\u936C",34,"\u9390",27],["e680","\u93AC",29,"\u93CB\u93CC\u93CD\u5997\u59CA\u59AB\u599E\u59A4\u59D2\u59B2\u59AF\u59D7\u59BE\u5A05\u5A06\u59DD\u5A08\u59E3\u59D8\u59F9\u5A0C\u5A09\u5A32\u5A34\u5A11\u5A23\u5A13\u5A40\u5A67\u5A4A\u5A55\u5A3C\u5A62\u5A75\u80EC\u5AAA\u5A9B\u5A77\u5A7A\u5ABE\u5AEB\u5AB2\u5AD2\u5AD4\u5AB8\u5AE0\u5AE3\u5AF1\u5AD6\u5AE6\u5AD8\u5ADC\u5B09\u5B17\u5B16\u5B32\u5B37\u5B40\u5C15\u5C1C\u5B5A\u5B65\u5B73\u5B51\u5B53\u5B62\u9A75\u9A77\u9A78\u9A7A\u9A7F\u9A7D\u9A80\u9A81\u9A85\u9A88\u9A8A\u9A90\u9A92\u9A93\u9A96\u9A98\u9A9B\u9A9C\u9A9D\u9A9F\u9AA0\u9AA2\u9AA3\u9AA5\u9AA7\u7E9F\u7EA1\u7EA3\u7EA5\u7EA8\u7EA9"],["e740","\u93CE",7,"\u93D7",54],["e780","\u940E",32,"\u7EAD\u7EB0\u7EBE\u7EC0\u7EC1\u7EC2\u7EC9\u7ECB\u7ECC\u7ED0\u7ED4\u7ED7\u7EDB\u7EE0\u7EE1\u7EE8\u7EEB\u7EEE\u7EEF\u7EF1\u7EF2\u7F0D\u7EF6\u7EFA\u7EFB\u7EFE\u7F01\u7F02\u7F03\u7F07\u7F08\u7F0B\u7F0C\u7F0F\u7F11\u7F12\u7F17\u7F19\u7F1C\u7F1B\u7F1F\u7F21",6,"\u7F2A\u7F2B\u7F2C\u7F2D\u7F2F",4,"\u7F35\u5E7A\u757F\u5DDB\u753E\u9095\u738E\u7391\u73AE\u73A2\u739F\u73CF\u73C2\u73D1\u73B7\u73B3\u73C0\u73C9\u73C8\u73E5\u73D9\u987C\u740A\u73E9\u73E7\u73DE\u73BA\u73F2\u740F\u742A\u745B\u7426\u7425\u7428\u7430\u742E\u742C"],["e840","\u942F",14,"\u943F",43,"\u946C\u946D\u946E\u946F"],["e880","\u9470",20,"\u9491\u9496\u9498\u94C7\u94CF\u94D3\u94D4\u94DA\u94E6\u94FB\u951C\u9520\u741B\u741A\u7441\u745C\u7457\u7455\u7459\u7477\u746D\u747E\u749C\u748E\u7480\u7481\u7487\u748B\u749E\u74A8\u74A9\u7490\u74A7\u74D2\u74BA\u97EA\u97EB\u97EC\u674C\u6753\u675E\u6748\u6769\u67A5\u6787\u676A\u6773\u6798\u67A7\u6775\u67A8\u679E\u67AD\u678B\u6777\u677C\u67F0\u6809\u67D8\u680A\u67E9\u67B0\u680C\u67D9\u67B5\u67DA\u67B3\u67DD\u6800\u67C3\u67B8\u67E2\u680E\u67C1\u67FD\u6832\u6833\u6860\u6861\u684E\u6862\u6844\u6864\u6883\u681D\u6855\u6866\u6841\u6867\u6840\u683E\u684A\u6849\u6829\u68B5\u688F\u6874\u6877\u6893\u686B\u68C2\u696E\u68FC\u691F\u6920\u68F9"],["e940","\u9527\u9533\u953D\u9543\u9548\u954B\u9555\u955A\u9560\u956E\u9574\u9575\u9577",7,"\u9580",42],["e980","\u95AB",32,"\u6924\u68F0\u690B\u6901\u6957\u68E3\u6910\u6971\u6939\u6960\u6942\u695D\u6984\u696B\u6980\u6998\u6978\u6934\u69CC\u6987\u6988\u69CE\u6989\u6966\u6963\u6979\u699B\u69A7\u69BB\u69AB\u69AD\u69D4\u69B1\u69C1\u69CA\u69DF\u6995\u69E0\u698D\u69FF\u6A2F\u69ED\u6A17\u6A18\u6A65\u69F2\u6A44\u6A3E\u6AA0\u6A50\u6A5B\u6A35\u6A8E\u6A79\u6A3D\u6A28\u6A58\u6A7C\u6A91\u6A90\u6AA9\u6A97\u6AAB\u7337\u7352\u6B81\u6B82\u6B87\u6B84\u6B92\u6B93\u6B8D\u6B9A\u6B9B\u6BA1\u6BAA\u8F6B\u8F6D\u8F71\u8F72\u8F73\u8F75\u8F76\u8F78\u8F77\u8F79\u8F7A\u8F7C\u8F7E\u8F81\u8F82\u8F84\u8F87\u8F8B"],["ea40","\u95CC",27,"\u95EC\u95FF\u9607\u9613\u9618\u961B\u961E\u9620\u9623",6,"\u962B\u962C\u962D\u962F\u9630\u9637\u9638\u9639\u963A\u963E\u9641\u9643\u964A\u964E\u964F\u9651\u9652\u9653\u9656\u9657"],["ea80","\u9658\u9659\u965A\u965C\u965D\u965E\u9660\u9663\u9665\u9666\u966B\u966D",4,"\u9673\u9678",12,"\u9687\u9689\u968A\u8F8D\u8F8E\u8F8F\u8F98\u8F9A\u8ECE\u620B\u6217\u621B\u621F\u6222\u6221\u6225\u6224\u622C\u81E7\u74EF\u74F4\u74FF\u750F\u7511\u7513\u6534\u65EE\u65EF\u65F0\u660A\u6619\u6772\u6603\u6615\u6600\u7085\u66F7\u661D\u6634\u6631\u6636\u6635\u8006\u665F\u6654\u6641\u664F\u6656\u6661\u6657\u6677\u6684\u668C\u66A7\u669D\u66BE\u66DB\u66DC\u66E6\u66E9\u8D32\u8D33\u8D36\u8D3B\u8D3D\u8D40\u8D45\u8D46\u8D48\u8D49\u8D47\u8D4D\u8D55\u8D59\u89C7\u89CA\u89CB\u89CC\u89CE\u89CF\u89D0\u89D1\u726E\u729F\u725D\u7266\u726F\u727E\u727F\u7284\u728B\u728D\u728F\u7292\u6308\u6332\u63B0"],["eb40","\u968C\u968E\u9691\u9692\u9693\u9695\u9696\u969A\u969B\u969D",9,"\u96A8",7,"\u96B1\u96B2\u96B4\u96B5\u96B7\u96B8\u96BA\u96BB\u96BF\u96C2\u96C3\u96C8\u96CA\u96CB\u96D0\u96D1\u96D3\u96D4\u96D6",9,"\u96E1",6,"\u96EB"],["eb80","\u96EC\u96ED\u96EE\u96F0\u96F1\u96F2\u96F4\u96F5\u96F8\u96FA\u96FB\u96FC\u96FD\u96FF\u9702\u9703\u9705\u970A\u970B\u970C\u9710\u9711\u9712\u9714\u9715\u9717",4,"\u971D\u971F\u9720\u643F\u64D8\u8004\u6BEA\u6BF3\u6BFD\u6BF5\u6BF9\u6C05\u6C07\u6C06\u6C0D\u6C15\u6C18\u6C19\u6C1A\u6C21\u6C29\u6C24\u6C2A\u6C32\u6535\u6555\u656B\u724D\u7252\u7256\u7230\u8662\u5216\u809F\u809C\u8093\u80BC\u670A\u80BD\u80B1\u80AB\u80AD\u80B4\u80B7\u80E7\u80E8\u80E9\u80EA\u80DB\u80C2\u80C4\u80D9\u80CD\u80D7\u6710\u80DD\u80EB\u80F1\u80F4\u80ED\u810D\u810E\u80F2\u80FC\u6715\u8112\u8C5A\u8136\u811E\u812C\u8118\u8132\u8148\u814C\u8153\u8174\u8159\u815A\u8171\u8160\u8169\u817C\u817D\u816D\u8167\u584D\u5AB5\u8188\u8182\u8191\u6ED5\u81A3\u81AA\u81CC\u6726\u81CA\u81BB"],["ec40","\u9721",8,"\u972B\u972C\u972E\u972F\u9731\u9733",4,"\u973A\u973B\u973C\u973D\u973F",18,"\u9754\u9755\u9757\u9758\u975A\u975C\u975D\u975F\u9763\u9764\u9766\u9767\u9768\u976A",7],["ec80","\u9772\u9775\u9777",4,"\u977D",7,"\u9786",4,"\u978C\u978E\u978F\u9790\u9793\u9795\u9796\u9797\u9799",4,"\u81C1\u81A6\u6B24\u6B37\u6B39\u6B43\u6B46\u6B59\u98D1\u98D2\u98D3\u98D5\u98D9\u98DA\u6BB3\u5F40\u6BC2\u89F3\u6590\u9F51\u6593\u65BC\u65C6\u65C4\u65C3\u65CC\u65CE\u65D2\u65D6\u7080\u709C\u7096\u709D\u70BB\u70C0\u70B7\u70AB\u70B1\u70E8\u70CA\u7110\u7113\u7116\u712F\u7131\u7173\u715C\u7168\u7145\u7172\u714A\u7178\u717A\u7198\u71B3\u71B5\u71A8\u71A0\u71E0\u71D4\u71E7\u71F9\u721D\u7228\u706C\u7118\u7166\u71B9\u623E\u623D\u6243\u6248\u6249\u793B\u7940\u7946\u7949\u795B\u795C\u7953\u795A\u7962\u7957\u7960\u796F\u7967\u797A\u7985\u798A\u799A\u79A7\u79B3\u5FD1\u5FD0"],["ed40","\u979E\u979F\u97A1\u97A2\u97A4",6,"\u97AC\u97AE\u97B0\u97B1\u97B3\u97B5",46],["ed80","\u97E4\u97E5\u97E8\u97EE",4,"\u97F4\u97F7",23,"\u603C\u605D\u605A\u6067\u6041\u6059\u6063\u60AB\u6106\u610D\u615D\u61A9\u619D\u61CB\u61D1\u6206\u8080\u807F\u6C93\u6CF6\u6DFC\u77F6\u77F8\u7800\u7809\u7817\u7818\u7811\u65AB\u782D\u781C\u781D\u7839\u783A\u783B\u781F\u783C\u7825\u782C\u7823\u7829\u784E\u786D\u7856\u7857\u7826\u7850\u7847\u784C\u786A\u789B\u7893\u789A\u7887\u789C\u78A1\u78A3\u78B2\u78B9\u78A5\u78D4\u78D9\u78C9\u78EC\u78F2\u7905\u78F4\u7913\u7924\u791E\u7934\u9F9B\u9EF9\u9EFB\u9EFC\u76F1\u7704\u770D\u76F9\u7707\u7708\u771A\u7722\u7719\u772D\u7726\u7735\u7738\u7750\u7751\u7747\u7743\u775A\u7768"],["ee40","\u980F",62],["ee80","\u984E",32,"\u7762\u7765\u777F\u778D\u777D\u7780\u778C\u7791\u779F\u77A0\u77B0\u77B5\u77BD\u753A\u7540\u754E\u754B\u7548\u755B\u7572\u7579\u7583\u7F58\u7F61\u7F5F\u8A48\u7F68\u7F74\u7F71\u7F79\u7F81\u7F7E\u76CD\u76E5\u8832\u9485\u9486\u9487\u948B\u948A\u948C\u948D\u948F\u9490\u9494\u9497\u9495\u949A\u949B\u949C\u94A3\u94A4\u94AB\u94AA\u94AD\u94AC\u94AF\u94B0\u94B2\u94B4\u94B6",4,"\u94BC\u94BD\u94BF\u94C4\u94C8",6,"\u94D0\u94D1\u94D2\u94D5\u94D6\u94D7\u94D9\u94D8\u94DB\u94DE\u94DF\u94E0\u94E2\u94E4\u94E5\u94E7\u94E8\u94EA"],["ef40","\u986F",5,"\u988B\u988E\u9892\u9895\u9899\u98A3\u98A8",37,"\u98CF\u98D0\u98D4\u98D6\u98D7\u98DB\u98DC\u98DD\u98E0",4],["ef80","\u98E5\u98E6\u98E9",30,"\u94E9\u94EB\u94EE\u94EF\u94F3\u94F4\u94F5\u94F7\u94F9\u94FC\u94FD\u94FF\u9503\u9502\u9506\u9507\u9509\u950A\u950D\u950E\u950F\u9512",4,"\u9518\u951B\u951D\u951E\u951F\u9522\u952A\u952B\u9529\u952C\u9531\u9532\u9534\u9536\u9537\u9538\u953C\u953E\u953F\u9542\u9535\u9544\u9545\u9546\u9549\u954C\u954E\u954F\u9552\u9553\u9554\u9556\u9557\u9558\u9559\u955B\u955E\u955F\u955D\u9561\u9562\u9564",8,"\u956F\u9571\u9572\u9573\u953A\u77E7\u77EC\u96C9\u79D5\u79ED\u79E3\u79EB\u7A06\u5D47\u7A03\u7A02\u7A1E\u7A14"],["f040","\u9908",4,"\u990E\u990F\u9911",28,"\u992F",26],["f080","\u994A",9,"\u9956",12,"\u9964\u9966\u9973\u9978\u9979\u997B\u997E\u9982\u9983\u9989\u7A39\u7A37\u7A51\u9ECF\u99A5\u7A70\u7688\u768E\u7693\u7699\u76A4\u74DE\u74E0\u752C\u9E20\u9E22\u9E28",4,"\u9E32\u9E31\u9E36\u9E38\u9E37\u9E39\u9E3A\u9E3E\u9E41\u9E42\u9E44\u9E46\u9E47\u9E48\u9E49\u9E4B\u9E4C\u9E4E\u9E51\u9E55\u9E57\u9E5A\u9E5B\u9E5C\u9E5E\u9E63\u9E66",6,"\u9E71\u9E6D\u9E73\u7592\u7594\u7596\u75A0\u759D\u75AC\u75A3\u75B3\u75B4\u75B8\u75C4\u75B1\u75B0\u75C3\u75C2\u75D6\u75CD\u75E3\u75E8\u75E6\u75E4\u75EB\u75E7\u7603\u75F1\u75FC\u75FF\u7610\u7600\u7605\u760C\u7617\u760A\u7625\u7618\u7615\u7619"],["f140","\u998C\u998E\u999A",10,"\u99A6\u99A7\u99A9",47],["f180","\u99D9",32,"\u761B\u763C\u7622\u7620\u7640\u762D\u7630\u763F\u7635\u7643\u763E\u7633\u764D\u765E\u7654\u765C\u7656\u766B\u766F\u7FCA\u7AE6\u7A78\u7A79\u7A80\u7A86\u7A88\u7A95\u7AA6\u7AA0\u7AAC\u7AA8\u7AAD\u7AB3\u8864\u8869\u8872\u887D\u887F\u8882\u88A2\u88C6\u88B7\u88BC\u88C9\u88E2\u88CE\u88E3\u88E5\u88F1\u891A\u88FC\u88E8\u88FE\u88F0\u8921\u8919\u8913\u891B\u890A\u8934\u892B\u8936\u8941\u8966\u897B\u758B\u80E5\u76B2\u76B4\u77DC\u8012\u8014\u8016\u801C\u8020\u8022\u8025\u8026\u8027\u8029\u8028\u8031\u800B\u8035\u8043\u8046\u804D\u8052\u8069\u8071\u8983\u9878\u9880\u9883"],["f240","\u99FA",62],["f280","\u9A39",32,"\u9889\u988C\u988D\u988F\u9894\u989A\u989B\u989E\u989F\u98A1\u98A2\u98A5\u98A6\u864D\u8654\u866C\u866E\u867F\u867A\u867C\u867B\u86A8\u868D\u868B\u86AC\u869D\u86A7\u86A3\u86AA\u8693\u86A9\u86B6\u86C4\u86B5\u86CE\u86B0\u86BA\u86B1\u86AF\u86C9\u86CF\u86B4\u86E9\u86F1\u86F2\u86ED\u86F3\u86D0\u8713\u86DE\u86F4\u86DF\u86D8\u86D1\u8703\u8707\u86F8\u8708\u870A\u870D\u8709\u8723\u873B\u871E\u8725\u872E\u871A\u873E\u8748\u8734\u8731\u8729\u8737\u873F\u8782\u8722\u877D\u877E\u877B\u8760\u8770\u874C\u876E\u878B\u8753\u8763\u877C\u8764\u8759\u8765\u8793\u87AF\u87A8\u87D2"],["f340","\u9A5A",17,"\u9A72\u9A83\u9A89\u9A8D\u9A8E\u9A94\u9A95\u9A99\u9AA6\u9AA9",6,"\u9AB2\u9AB3\u9AB4\u9AB5\u9AB9\u9ABB\u9ABD\u9ABE\u9ABF\u9AC3\u9AC4\u9AC6",4,"\u9ACD\u9ACE\u9ACF\u9AD0\u9AD2\u9AD4\u9AD5\u9AD6\u9AD7\u9AD9\u9ADA\u9ADB\u9ADC"],["f380","\u9ADD\u9ADE\u9AE0\u9AE2\u9AE3\u9AE4\u9AE5\u9AE7\u9AE8\u9AE9\u9AEA\u9AEC\u9AEE\u9AF0",8,"\u9AFA\u9AFC",6,"\u9B04\u9B05\u9B06\u87C6\u8788\u8785\u87AD\u8797\u8783\u87AB\u87E5\u87AC\u87B5\u87B3\u87CB\u87D3\u87BD\u87D1\u87C0\u87CA\u87DB\u87EA\u87E0\u87EE\u8816\u8813\u87FE\u880A\u881B\u8821\u8839\u883C\u7F36\u7F42\u7F44\u7F45\u8210\u7AFA\u7AFD\u7B08\u7B03\u7B04\u7B15\u7B0A\u7B2B\u7B0F\u7B47\u7B38\u7B2A\u7B19\u7B2E\u7B31\u7B20\u7B25\u7B24\u7B33\u7B3E\u7B1E\u7B58\u7B5A\u7B45\u7B75\u7B4C\u7B5D\u7B60\u7B6E\u7B7B\u7B62\u7B72\u7B71\u7B90\u7BA6\u7BA7\u7BB8\u7BAC\u7B9D\u7BA8\u7B85\u7BAA\u7B9C\u7BA2\u7BAB\u7BB4\u7BD1\u7BC1\u7BCC\u7BDD\u7BDA\u7BE5\u7BE6\u7BEA\u7C0C\u7BFE\u7BFC\u7C0F\u7C16\u7C0B"],["f440","\u9B07\u9B09",5,"\u9B10\u9B11\u9B12\u9B14",10,"\u9B20\u9B21\u9B22\u9B24",10,"\u9B30\u9B31\u9B33",7,"\u9B3D\u9B3E\u9B3F\u9B40\u9B46\u9B4A\u9B4B\u9B4C\u9B4E\u9B50\u9B52\u9B53\u9B55",5],["f480","\u9B5B",32,"\u7C1F\u7C2A\u7C26\u7C38\u7C41\u7C40\u81FE\u8201\u8202\u8204\u81EC\u8844\u8221\u8222\u8223\u822D\u822F\u8228\u822B\u8238\u823B\u8233\u8234\u823E\u8244\u8249\u824B\u824F\u825A\u825F\u8268\u887E\u8885\u8888\u88D8\u88DF\u895E\u7F9D\u7F9F\u7FA7\u7FAF\u7FB0\u7FB2\u7C7C\u6549\u7C91\u7C9D\u7C9C\u7C9E\u7CA2\u7CB2\u7CBC\u7CBD\u7CC1\u7CC7\u7CCC\u7CCD\u7CC8\u7CC5\u7CD7\u7CE8\u826E\u66A8\u7FBF\u7FCE\u7FD5\u7FE5\u7FE1\u7FE6\u7FE9\u7FEE\u7FF3\u7CF8\u7D77\u7DA6\u7DAE\u7E47\u7E9B\u9EB8\u9EB4\u8D73\u8D84\u8D94\u8D91\u8DB1\u8D67\u8D6D\u8C47\u8C49\u914A\u9150\u914E\u914F\u9164"],["f540","\u9B7C",62],["f580","\u9BBB",32,"\u9162\u9161\u9170\u9169\u916F\u917D\u917E\u9172\u9174\u9179\u918C\u9185\u9190\u918D\u9191\u91A2\u91A3\u91AA\u91AD\u91AE\u91AF\u91B5\u91B4\u91BA\u8C55\u9E7E\u8DB8\u8DEB\u8E05\u8E59\u8E69\u8DB5\u8DBF\u8DBC\u8DBA\u8DC4\u8DD6\u8DD7\u8DDA\u8DDE\u8DCE\u8DCF\u8DDB\u8DC6\u8DEC\u8DF7\u8DF8\u8DE3\u8DF9\u8DFB\u8DE4\u8E09\u8DFD\u8E14\u8E1D\u8E1F\u8E2C\u8E2E\u8E23\u8E2F\u8E3A\u8E40\u8E39\u8E35\u8E3D\u8E31\u8E49\u8E41\u8E42\u8E51\u8E52\u8E4A\u8E70\u8E76\u8E7C\u8E6F\u8E74\u8E85\u8E8F\u8E94\u8E90\u8E9C\u8E9E\u8C78\u8C82\u8C8A\u8C85\u8C98\u8C94\u659B\u89D6\u89DE\u89DA\u89DC"],["f640","\u9BDC",62],["f680","\u9C1B",32,"\u89E5\u89EB\u89EF\u8A3E\u8B26\u9753\u96E9\u96F3\u96EF\u9706\u9701\u9708\u970F\u970E\u972A\u972D\u9730\u973E\u9F80\u9F83\u9F85",5,"\u9F8C\u9EFE\u9F0B\u9F0D\u96B9\u96BC\u96BD\u96CE\u96D2\u77BF\u96E0\u928E\u92AE\u92C8\u933E\u936A\u93CA\u938F\u943E\u946B\u9C7F\u9C82\u9C85\u9C86\u9C87\u9C88\u7A23\u9C8B\u9C8E\u9C90\u9C91\u9C92\u9C94\u9C95\u9C9A\u9C9B\u9C9E",5,"\u9CA5",4,"\u9CAB\u9CAD\u9CAE\u9CB0",7,"\u9CBA\u9CBB\u9CBC\u9CBD\u9CC4\u9CC5\u9CC6\u9CC7\u9CCA\u9CCB"],["f740","\u9C3C",62],["f780","\u9C7B\u9C7D\u9C7E\u9C80\u9C83\u9C84\u9C89\u9C8A\u9C8C\u9C8F\u9C93\u9C96\u9C97\u9C98\u9C99\u9C9D\u9CAA\u9CAC\u9CAF\u9CB9\u9CBE",4,"\u9CC8\u9CC9\u9CD1\u9CD2\u9CDA\u9CDB\u9CE0\u9CE1\u9CCC",4,"\u9CD3\u9CD4\u9CD5\u9CD7\u9CD8\u9CD9\u9CDC\u9CDD\u9CDF\u9CE2\u977C\u9785\u9791\u9792\u9794\u97AF\u97AB\u97A3\u97B2\u97B4\u9AB1\u9AB0\u9AB7\u9E58\u9AB6\u9ABA\u9ABC\u9AC1\u9AC0\u9AC5\u9AC2\u9ACB\u9ACC\u9AD1\u9B45\u9B43\u9B47\u9B49\u9B48\u9B4D\u9B51\u98E8\u990D\u992E\u9955\u9954\u9ADF\u9AE1\u9AE6\u9AEF\u9AEB\u9AFB\u9AED\u9AF9\u9B08\u9B0F\u9B13\u9B1F\u9B23\u9EBD\u9EBE\u7E3B\u9E82\u9E87\u9E88\u9E8B\u9E92\u93D6\u9E9D\u9E9F\u9EDB\u9EDC\u9EDD\u9EE0\u9EDF\u9EE2\u9EE9\u9EE7\u9EE5\u9EEA\u9EEF\u9F22\u9F2C\u9F2F\u9F39\u9F37\u9F3D\u9F3E\u9F44"],["f840","\u9CE3",62],["f880","\u9D22",32],["f940","\u9D43",62],["f980","\u9D82",32],["fa40","\u9DA3",62],["fa80","\u9DE2",32],["fb40","\u9E03",27,"\u9E24\u9E27\u9E2E\u9E30\u9E34\u9E3B\u9E3C\u9E40\u9E4D\u9E50\u9E52\u9E53\u9E54\u9E56\u9E59\u9E5D\u9E5F\u9E60\u9E61\u9E62\u9E65\u9E6E\u9E6F\u9E72\u9E74",9,"\u9E80"],["fb80","\u9E81\u9E83\u9E84\u9E85\u9E86\u9E89\u9E8A\u9E8C",5,"\u9E94",8,"\u9E9E\u9EA0",5,"\u9EA7\u9EA8\u9EA9\u9EAA"],["fc40","\u9EAB",8,"\u9EB5\u9EB6\u9EB7\u9EB9\u9EBA\u9EBC\u9EBF",4,"\u9EC5\u9EC6\u9EC7\u9EC8\u9ECA\u9ECB\u9ECC\u9ED0\u9ED2\u9ED3\u9ED5\u9ED6\u9ED7\u9ED9\u9EDA\u9EDE\u9EE1\u9EE3\u9EE4\u9EE6\u9EE8\u9EEB\u9EEC\u9EED\u9EEE\u9EF0",8,"\u9EFA\u9EFD\u9EFF",6],["fc80","\u9F06",4,"\u9F0C\u9F0F\u9F11\u9F12\u9F14\u9F15\u9F16\u9F18\u9F1A",5,"\u9F21\u9F23",8,"\u9F2D\u9F2E\u9F30\u9F31"],["fd40","\u9F32",4,"\u9F38\u9F3A\u9F3C\u9F3F",4,"\u9F45",10,"\u9F52",38],["fd80","\u9F79",5,"\u9F81\u9F82\u9F8D",11,"\u9F9C\u9F9D\u9F9E\u9FA1",4,"\uF92C\uF979\uF995\uF9E7\uF9F1"],["fe40","\uFA0C\uFA0D\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA18\uFA1F\uFA20\uFA21\uFA23\uFA24\uFA27\uFA28\uFA29"]]});var E8r=H((tig,U2l)=>{U2l.exports=[["a140","\uE4C6",62],["a180","\uE505",32],["a240","\uE526",62],["a280","\uE565",32],["a2ab","\uE766",5],["a2e3","\u20AC\uE76D"],["a2ef","\uE76E\uE76F"],["a2fd","\uE770\uE771"],["a340","\uE586",62],["a380","\uE5C5",31,"\u3000"],["a440","\uE5E6",62],["a480","\uE625",32],["a4f4","\uE772",10],["a540","\uE646",62],["a580","\uE685",32],["a5f7","\uE77D",7],["a640","\uE6A6",62],["a680","\uE6E5",32],["a6b9","\uE785",7],["a6d9","\uE78D",6],["a6ec","\uE794\uE795"],["a6f3","\uE796"],["a6f6","\uE797",8],["a740","\uE706",62],["a780","\uE745",32],["a7c2","\uE7A0",14],["a7f2","\uE7AF",12],["a896","\uE7BC",10],["a8bc","\u1E3F"],["a8bf","\u01F9"],["a8c1","\uE7C9\uE7CA\uE7CB\uE7CC"],["a8ea","\uE7CD",20],["a958","\uE7E2"],["a95b","\uE7E3"],["a95d","\uE7E4\uE7E5\uE7E6"],["a989","\u303E\u2FF0",11],["a997","\uE7F4",12],["a9f0","\uE801",14],["aaa1","\uE000",93],["aba1","\uE05E",93],["aca1","\uE0BC",93],["ada1","\uE11A",93],["aea1","\uE178",93],["afa1","\uE1D6",93],["d7fa","\uE810",4],["f8a1","\uE234",93],["f9a1","\uE292",93],["faa1","\uE2F0",93],["fba1","\uE34E",93],["fca1","\uE3AC",93],["fda1","\uE40A",93],["fe50","\u2E81\uE816\uE817\uE818\u2E84\u3473\u3447\u2E88\u2E8B\uE81E\u359E\u361A\u360E\u2E8C\u2E97\u396E\u3918\uE826\u39CF\u39DF\u3A73\u39D0\uE82B\uE82C\u3B4E\u3C6E\u3CE0\u2EA7\uE831\uE832\u2EAA\u4056\u415F\u2EAE\u4337\u2EB3\u2EB6\u2EB7\uE83B\u43B1\u43AC\u2EBB\u43DD\u44D6\u4661\u464C\uE843"],["fe80","\u4723\u4729\u477C\u478D\u2ECA\u4947\u497A\u497D\u4982\u4983\u4985\u4986\u499F\u499B\u49B7\u49B6\uE854\uE855\u4CA3\u4C9F\u4CA0\u4CA1\u4C77\u4CA2\u4D13",6,"\u4DAE\uE864\uE468",93],["8135f437","\uE7C7"]]});var gIs=H((rig,K2l)=>{K2l.exports={uChars:[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],gbChars:[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189e3]}});var AIs=H((nig,j2l)=>{j2l.exports=[["0","\0",127],["8141","\uAC02\uAC03\uAC05\uAC06\uAC0B",4,"\uAC18\uAC1E\uAC1F\uAC21\uAC22\uAC23\uAC25",6,"\uAC2E\uAC32\uAC33\uAC34"],["8161","\uAC35\uAC36\uAC37\uAC3A\uAC3B\uAC3D\uAC3E\uAC3F\uAC41",9,"\uAC4C\uAC4E",5,"\uAC55"],["8181","\uAC56\uAC57\uAC59\uAC5A\uAC5B\uAC5D",18,"\uAC72\uAC73\uAC75\uAC76\uAC79\uAC7B",4,"\uAC82\uAC87\uAC88\uAC8D\uAC8E\uAC8F\uAC91\uAC92\uAC93\uAC95",6,"\uAC9E\uACA2",5,"\uACAB\uACAD\uACAE\uACB1",6,"\uACBA\uACBE\uACBF\uACC0\uACC2\uACC3\uACC5\uACC6\uACC7\uACC9\uACCA\uACCB\uACCD",7,"\uACD6\uACD8",7,"\uACE2\uACE3\uACE5\uACE6\uACE9\uACEB\uACED\uACEE\uACF2\uACF4\uACF7",4,"\uACFE\uACFF\uAD01\uAD02\uAD03\uAD05\uAD07",4,"\uAD0E\uAD10\uAD12\uAD13"],["8241","\uAD14\uAD15\uAD16\uAD17\uAD19\uAD1A\uAD1B\uAD1D\uAD1E\uAD1F\uAD21",7,"\uAD2A\uAD2B\uAD2E",5],["8261","\uAD36\uAD37\uAD39\uAD3A\uAD3B\uAD3D",6,"\uAD46\uAD48\uAD4A",5,"\uAD51\uAD52\uAD53\uAD55\uAD56\uAD57"],["8281","\uAD59",7,"\uAD62\uAD64",7,"\uAD6E\uAD6F\uAD71\uAD72\uAD77\uAD78\uAD79\uAD7A\uAD7E\uAD80\uAD83",4,"\uAD8A\uAD8B\uAD8D\uAD8E\uAD8F\uAD91",10,"\uAD9E",5,"\uADA5",17,"\uADB8",7,"\uADC2\uADC3\uADC5\uADC6\uADC7\uADC9",6,"\uADD2\uADD4",7,"\uADDD\uADDE\uADDF\uADE1\uADE2\uADE3\uADE5",18],["8341","\uADFA\uADFB\uADFD\uADFE\uAE02",5,"\uAE0A\uAE0C\uAE0E",5,"\uAE15",7],["8361","\uAE1D",18,"\uAE32\uAE33\uAE35\uAE36\uAE39\uAE3B\uAE3C"],["8381","\uAE3D\uAE3E\uAE3F\uAE42\uAE44\uAE47\uAE48\uAE49\uAE4B\uAE4F\uAE51\uAE52\uAE53\uAE55\uAE57",4,"\uAE5E\uAE62\uAE63\uAE64\uAE66\uAE67\uAE6A\uAE6B\uAE6D\uAE6E\uAE6F\uAE71",6,"\uAE7A\uAE7E",5,"\uAE86",5,"\uAE8D",46,"\uAEBF\uAEC1\uAEC2\uAEC3\uAEC5",6,"\uAECE\uAED2",5,"\uAEDA\uAEDB\uAEDD",8],["8441","\uAEE6\uAEE7\uAEE9\uAEEA\uAEEC\uAEEE",5,"\uAEF5\uAEF6\uAEF7\uAEF9\uAEFA\uAEFB\uAEFD",8],["8461","\uAF06\uAF09\uAF0A\uAF0B\uAF0C\uAF0E\uAF0F\uAF11",18],["8481","\uAF24",7,"\uAF2E\uAF2F\uAF31\uAF33\uAF35",6,"\uAF3E\uAF40\uAF44\uAF45\uAF46\uAF47\uAF4A",5,"\uAF51",10,"\uAF5E",5,"\uAF66",18,"\uAF7A",5,"\uAF81\uAF82\uAF83\uAF85\uAF86\uAF87\uAF89",6,"\uAF92\uAF93\uAF94\uAF96",5,"\uAF9D",26,"\uAFBA\uAFBB\uAFBD\uAFBE"],["8541","\uAFBF\uAFC1",5,"\uAFCA\uAFCC\uAFCF",4,"\uAFD5",6,"\uAFDD",4],["8561","\uAFE2",5,"\uAFEA",5,"\uAFF2\uAFF3\uAFF5\uAFF6\uAFF7\uAFF9",6,"\uB002\uB003"],["8581","\uB005",6,"\uB00D\uB00E\uB00F\uB011\uB012\uB013\uB015",6,"\uB01E",9,"\uB029",26,"\uB046\uB047\uB049\uB04B\uB04D\uB04F\uB050\uB051\uB052\uB056\uB058\uB05A\uB05B\uB05C\uB05E",29,"\uB07E\uB07F\uB081\uB082\uB083\uB085",6,"\uB08E\uB090\uB092",5,"\uB09B\uB09D\uB09E\uB0A3\uB0A4"],["8641","\uB0A5\uB0A6\uB0A7\uB0AA\uB0B0\uB0B2\uB0B6\uB0B7\uB0B9\uB0BA\uB0BB\uB0BD",6,"\uB0C6\uB0CA",5,"\uB0D2"],["8661","\uB0D3\uB0D5\uB0D6\uB0D7\uB0D9",6,"\uB0E1\uB0E2\uB0E3\uB0E4\uB0E6",10],["8681","\uB0F1",22,"\uB10A\uB10D\uB10E\uB10F\uB111\uB114\uB115\uB116\uB117\uB11A\uB11E",4,"\uB126\uB127\uB129\uB12A\uB12B\uB12D",6,"\uB136\uB13A",5,"\uB142\uB143\uB145\uB146\uB147\uB149",6,"\uB152\uB153\uB156\uB157\uB159\uB15A\uB15B\uB15D\uB15E\uB15F\uB161",22,"\uB17A\uB17B\uB17D\uB17E\uB17F\uB181\uB183",4,"\uB18A\uB18C\uB18E\uB18F\uB190\uB191\uB195\uB196\uB197\uB199\uB19A\uB19B\uB19D"],["8741","\uB19E",9,"\uB1A9",15],["8761","\uB1B9",18,"\uB1CD\uB1CE\uB1CF\uB1D1\uB1D2\uB1D3\uB1D5"],["8781","\uB1D6",5,"\uB1DE\uB1E0",7,"\uB1EA\uB1EB\uB1ED\uB1EE\uB1EF\uB1F1",7,"\uB1FA\uB1FC\uB1FE",5,"\uB206\uB207\uB209\uB20A\uB20D",6,"\uB216\uB218\uB21A",5,"\uB221",18,"\uB235",6,"\uB23D",26,"\uB259\uB25A\uB25B\uB25D\uB25E\uB25F\uB261",6,"\uB26A",4],["8841","\uB26F",4,"\uB276",5,"\uB27D",6,"\uB286\uB287\uB288\uB28A",4],["8861","\uB28F\uB292\uB293\uB295\uB296\uB297\uB29B",4,"\uB2A2\uB2A4\uB2A7\uB2A8\uB2A9\uB2AB\uB2AD\uB2AE\uB2AF\uB2B1\uB2B2\uB2B3\uB2B5\uB2B6\uB2B7"],["8881","\uB2B8",15,"\uB2CA\uB2CB\uB2CD\uB2CE\uB2CF\uB2D1\uB2D3",4,"\uB2DA\uB2DC\uB2DE\uB2DF\uB2E0\uB2E1\uB2E3\uB2E7\uB2E9\uB2EA\uB2F0\uB2F1\uB2F2\uB2F6\uB2FC\uB2FD\uB2FE\uB302\uB303\uB305\uB306\uB307\uB309",6,"\uB312\uB316",5,"\uB31D",54,"\uB357\uB359\uB35A\uB35D\uB360\uB361\uB362\uB363"],["8941","\uB366\uB368\uB36A\uB36C\uB36D\uB36F\uB372\uB373\uB375\uB376\uB377\uB379",6,"\uB382\uB386",5,"\uB38D"],["8961","\uB38E\uB38F\uB391\uB392\uB393\uB395",10,"\uB3A2",5,"\uB3A9\uB3AA\uB3AB\uB3AD"],["8981","\uB3AE",21,"\uB3C6\uB3C7\uB3C9\uB3CA\uB3CD\uB3CF\uB3D1\uB3D2\uB3D3\uB3D6\uB3D8\uB3DA\uB3DC\uB3DE\uB3DF\uB3E1\uB3E2\uB3E3\uB3E5\uB3E6\uB3E7\uB3E9",18,"\uB3FD",18,"\uB411",6,"\uB419\uB41A\uB41B\uB41D\uB41E\uB41F\uB421",6,"\uB42A\uB42C",7,"\uB435",15],["8a41","\uB445",10,"\uB452\uB453\uB455\uB456\uB457\uB459",6,"\uB462\uB464\uB466"],["8a61","\uB467",4,"\uB46D",18,"\uB481\uB482"],["8a81","\uB483",4,"\uB489",19,"\uB49E",5,"\uB4A5\uB4A6\uB4A7\uB4A9\uB4AA\uB4AB\uB4AD",7,"\uB4B6\uB4B8\uB4BA",5,"\uB4C1\uB4C2\uB4C3\uB4C5\uB4C6\uB4C7\uB4C9",6,"\uB4D1\uB4D2\uB4D3\uB4D4\uB4D6",5,"\uB4DE\uB4DF\uB4E1\uB4E2\uB4E5\uB4E7",4,"\uB4EE\uB4F0\uB4F2",5,"\uB4F9",26,"\uB516\uB517\uB519\uB51A\uB51D"],["8b41","\uB51E",5,"\uB526\uB52B",4,"\uB532\uB533\uB535\uB536\uB537\uB539",6,"\uB542\uB546"],["8b61","\uB547\uB548\uB549\uB54A\uB54E\uB54F\uB551\uB552\uB553\uB555",6,"\uB55E\uB562",8],["8b81","\uB56B",52,"\uB5A2\uB5A3\uB5A5\uB5A6\uB5A7\uB5A9\uB5AC\uB5AD\uB5AE\uB5AF\uB5B2\uB5B6",4,"\uB5BE\uB5BF\uB5C1\uB5C2\uB5C3\uB5C5",6,"\uB5CE\uB5D2",5,"\uB5D9",18,"\uB5ED",18],["8c41","\uB600",15,"\uB612\uB613\uB615\uB616\uB617\uB619",4],["8c61","\uB61E",6,"\uB626",5,"\uB62D",6,"\uB635",5],["8c81","\uB63B",12,"\uB649",26,"\uB665\uB666\uB667\uB669",50,"\uB69E\uB69F\uB6A1\uB6A2\uB6A3\uB6A5",5,"\uB6AD\uB6AE\uB6AF\uB6B0\uB6B2",16],["8d41","\uB6C3",16,"\uB6D5",8],["8d61","\uB6DE",17,"\uB6F1\uB6F2\uB6F3\uB6F5\uB6F6\uB6F7\uB6F9\uB6FA"],["8d81","\uB6FB",4,"\uB702\uB703\uB704\uB706",33,"\uB72A\uB72B\uB72D\uB72E\uB731",6,"\uB73A\uB73C",7,"\uB745\uB746\uB747\uB749\uB74A\uB74B\uB74D",6,"\uB756",9,"\uB761\uB762\uB763\uB765\uB766\uB767\uB769",6,"\uB772\uB774\uB776",5,"\uB77E\uB77F\uB781\uB782\uB783\uB785",6,"\uB78E\uB793\uB794\uB795\uB79A\uB79B\uB79D\uB79E"],["8e41","\uB79F\uB7A1",6,"\uB7AA\uB7AE",5,"\uB7B6\uB7B7\uB7B9",8],["8e61","\uB7C2",4,"\uB7C8\uB7CA",19],["8e81","\uB7DE",13,"\uB7EE\uB7EF\uB7F1\uB7F2\uB7F3\uB7F5",6,"\uB7FE\uB802",4,"\uB80A\uB80B\uB80D\uB80E\uB80F\uB811",6,"\uB81A\uB81C\uB81E",5,"\uB826\uB827\uB829\uB82A\uB82B\uB82D",6,"\uB836\uB83A",5,"\uB841\uB842\uB843\uB845",11,"\uB852\uB854",7,"\uB85E\uB85F\uB861\uB862\uB863\uB865",6,"\uB86E\uB870\uB872",5,"\uB879\uB87A\uB87B\uB87D",7],["8f41","\uB885",7,"\uB88E",17],["8f61","\uB8A0",7,"\uB8A9",6,"\uB8B1\uB8B2\uB8B3\uB8B5\uB8B6\uB8B7\uB8B9",4],["8f81","\uB8BE\uB8BF\uB8C2\uB8C4\uB8C6",5,"\uB8CD\uB8CE\uB8CF\uB8D1\uB8D2\uB8D3\uB8D5",7,"\uB8DE\uB8E0\uB8E2",5,"\uB8EA\uB8EB\uB8ED\uB8EE\uB8EF\uB8F1",6,"\uB8FA\uB8FC\uB8FE",5,"\uB905",18,"\uB919",6,"\uB921",26,"\uB93E\uB93F\uB941\uB942\uB943\uB945",6,"\uB94D\uB94E\uB950\uB952",5],["9041","\uB95A\uB95B\uB95D\uB95E\uB95F\uB961",6,"\uB96A\uB96C\uB96E",5,"\uB976\uB977\uB979\uB97A\uB97B\uB97D"],["9061","\uB97E",5,"\uB986\uB988\uB98B\uB98C\uB98F",15],["9081","\uB99F",12,"\uB9AE\uB9AF\uB9B1\uB9B2\uB9B3\uB9B5",6,"\uB9BE\uB9C0\uB9C2",5,"\uB9CA\uB9CB\uB9CD\uB9D3",4,"\uB9DA\uB9DC\uB9DF\uB9E0\uB9E2\uB9E6\uB9E7\uB9E9\uB9EA\uB9EB\uB9ED",6,"\uB9F6\uB9FB",4,"\uBA02",5,"\uBA09",11,"\uBA16",33,"\uBA3A\uBA3B\uBA3D\uBA3E\uBA3F\uBA41\uBA43\uBA44\uBA45\uBA46"],["9141","\uBA47\uBA4A\uBA4C\uBA4F\uBA50\uBA51\uBA52\uBA56\uBA57\uBA59\uBA5A\uBA5B\uBA5D",6,"\uBA66\uBA6A",5],["9161","\uBA72\uBA73\uBA75\uBA76\uBA77\uBA79",9,"\uBA86\uBA88\uBA89\uBA8A\uBA8B\uBA8D",5],["9181","\uBA93",20,"\uBAAA\uBAAD\uBAAE\uBAAF\uBAB1\uBAB3",4,"\uBABA\uBABC\uBABE",5,"\uBAC5\uBAC6\uBAC7\uBAC9",14,"\uBADA",33,"\uBAFD\uBAFE\uBAFF\uBB01\uBB02\uBB03\uBB05",7,"\uBB0E\uBB10\uBB12",5,"\uBB19\uBB1A\uBB1B\uBB1D\uBB1E\uBB1F\uBB21",6],["9241","\uBB28\uBB2A\uBB2C",7,"\uBB37\uBB39\uBB3A\uBB3F",4,"\uBB46\uBB48\uBB4A\uBB4B\uBB4C\uBB4E\uBB51\uBB52"],["9261","\uBB53\uBB55\uBB56\uBB57\uBB59",7,"\uBB62\uBB64",7,"\uBB6D",4],["9281","\uBB72",21,"\uBB89\uBB8A\uBB8B\uBB8D\uBB8E\uBB8F\uBB91",18,"\uBBA5\uBBA6\uBBA7\uBBA9\uBBAA\uBBAB\uBBAD",6,"\uBBB5\uBBB6\uBBB8",7,"\uBBC1\uBBC2\uBBC3\uBBC5\uBBC6\uBBC7\uBBC9",6,"\uBBD1\uBBD2\uBBD4",35,"\uBBFA\uBBFB\uBBFD\uBBFE\uBC01"],["9341","\uBC03",4,"\uBC0A\uBC0E\uBC10\uBC12\uBC13\uBC19\uBC1A\uBC20\uBC21\uBC22\uBC23\uBC26\uBC28\uBC2A\uBC2B\uBC2C\uBC2E\uBC2F\uBC32\uBC33\uBC35"],["9361","\uBC36\uBC37\uBC39",6,"\uBC42\uBC46\uBC47\uBC48\uBC4A\uBC4B\uBC4E\uBC4F\uBC51",8],["9381","\uBC5A\uBC5B\uBC5C\uBC5E",37,"\uBC86\uBC87\uBC89\uBC8A\uBC8D\uBC8F",4,"\uBC96\uBC98\uBC9B",4,"\uBCA2\uBCA3\uBCA5\uBCA6\uBCA9",6,"\uBCB2\uBCB6",5,"\uBCBE\uBCBF\uBCC1\uBCC2\uBCC3\uBCC5",7,"\uBCCE\uBCD2\uBCD3\uBCD4\uBCD6\uBCD7\uBCD9\uBCDA\uBCDB\uBCDD",22,"\uBCF7\uBCF9\uBCFA\uBCFB\uBCFD"],["9441","\uBCFE",5,"\uBD06\uBD08\uBD0A",5,"\uBD11\uBD12\uBD13\uBD15",8],["9461","\uBD1E",5,"\uBD25",6,"\uBD2D",12],["9481","\uBD3A",5,"\uBD41",6,"\uBD4A\uBD4B\uBD4D\uBD4E\uBD4F\uBD51",6,"\uBD5A",9,"\uBD65\uBD66\uBD67\uBD69",22,"\uBD82\uBD83\uBD85\uBD86\uBD8B",4,"\uBD92\uBD94\uBD96\uBD97\uBD98\uBD9B\uBD9D",6,"\uBDA5",10,"\uBDB1",6,"\uBDB9",24],["9541","\uBDD2\uBDD3\uBDD6\uBDD7\uBDD9\uBDDA\uBDDB\uBDDD",11,"\uBDEA",5,"\uBDF1"],["9561","\uBDF2\uBDF3\uBDF5\uBDF6\uBDF7\uBDF9",6,"\uBE01\uBE02\uBE04\uBE06",5,"\uBE0E\uBE0F\uBE11\uBE12\uBE13"],["9581","\uBE15",6,"\uBE1E\uBE20",35,"\uBE46\uBE47\uBE49\uBE4A\uBE4B\uBE4D\uBE4F",4,"\uBE56\uBE58\uBE5C\uBE5D\uBE5E\uBE5F\uBE62\uBE63\uBE65\uBE66\uBE67\uBE69\uBE6B",4,"\uBE72\uBE76",4,"\uBE7E\uBE7F\uBE81\uBE82\uBE83\uBE85",6,"\uBE8E\uBE92",5,"\uBE9A",13,"\uBEA9",14],["9641","\uBEB8",23,"\uBED2\uBED3"],["9661","\uBED5\uBED6\uBED9",6,"\uBEE1\uBEE2\uBEE6",5,"\uBEED",8],["9681","\uBEF6",10,"\uBF02",5,"\uBF0A",13,"\uBF1A\uBF1E",33,"\uBF42\uBF43\uBF45\uBF46\uBF47\uBF49",6,"\uBF52\uBF53\uBF54\uBF56",44],["9741","\uBF83",16,"\uBF95",8],["9761","\uBF9E",17,"\uBFB1",7],["9781","\uBFB9",11,"\uBFC6",5,"\uBFCE\uBFCF\uBFD1\uBFD2\uBFD3\uBFD5",6,"\uBFDD\uBFDE\uBFE0\uBFE2",89,"\uC03D\uC03E\uC03F"],["9841","\uC040",16,"\uC052",5,"\uC059\uC05A\uC05B"],["9861","\uC05D\uC05E\uC05F\uC061",6,"\uC06A",15],["9881","\uC07A",21,"\uC092\uC093\uC095\uC096\uC097\uC099",6,"\uC0A2\uC0A4\uC0A6",5,"\uC0AE\uC0B1\uC0B2\uC0B7",4,"\uC0BE\uC0C2\uC0C3\uC0C4\uC0C6\uC0C7\uC0CA\uC0CB\uC0CD\uC0CE\uC0CF\uC0D1",6,"\uC0DA\uC0DE",5,"\uC0E6\uC0E7\uC0E9\uC0EA\uC0EB\uC0ED",6,"\uC0F6\uC0F8\uC0FA",5,"\uC101\uC102\uC103\uC105\uC106\uC107\uC109",6,"\uC111\uC112\uC113\uC114\uC116",5,"\uC121\uC122\uC125\uC128\uC129\uC12A\uC12B\uC12E"],["9941","\uC132\uC133\uC134\uC135\uC137\uC13A\uC13B\uC13D\uC13E\uC13F\uC141",6,"\uC14A\uC14E",5,"\uC156\uC157"],["9961","\uC159\uC15A\uC15B\uC15D",6,"\uC166\uC16A",5,"\uC171\uC172\uC173\uC175\uC176\uC177\uC179\uC17A\uC17B"],["9981","\uC17C",8,"\uC186",5,"\uC18F\uC191\uC192\uC193\uC195\uC197",4,"\uC19E\uC1A0\uC1A2\uC1A3\uC1A4\uC1A6\uC1A7\uC1AA\uC1AB\uC1AD\uC1AE\uC1AF\uC1B1",11,"\uC1BE",5,"\uC1C5\uC1C6\uC1C7\uC1C9\uC1CA\uC1CB\uC1CD",6,"\uC1D5\uC1D6\uC1D9",6,"\uC1E1\uC1E2\uC1E3\uC1E5\uC1E6\uC1E7\uC1E9",6,"\uC1F2\uC1F4",7,"\uC1FE\uC1FF\uC201\uC202\uC203\uC205",6,"\uC20E\uC210\uC212",5,"\uC21A\uC21B\uC21D\uC21E\uC221\uC222\uC223"],["9a41","\uC224\uC225\uC226\uC227\uC22A\uC22C\uC22E\uC230\uC233\uC235",16],["9a61","\uC246\uC247\uC249",6,"\uC252\uC253\uC255\uC256\uC257\uC259",6,"\uC261\uC262\uC263\uC264\uC266"],["9a81","\uC267",4,"\uC26E\uC26F\uC271\uC272\uC273\uC275",6,"\uC27E\uC280\uC282",5,"\uC28A",5,"\uC291",6,"\uC299\uC29A\uC29C\uC29E",5,"\uC2A6\uC2A7\uC2A9\uC2AA\uC2AB\uC2AE",5,"\uC2B6\uC2B8\uC2BA",33,"\uC2DE\uC2DF\uC2E1\uC2E2\uC2E5",5,"\uC2EE\uC2F0\uC2F2\uC2F3\uC2F4\uC2F5\uC2F7\uC2FA\uC2FD\uC2FE\uC2FF\uC301",6,"\uC30A\uC30B\uC30E\uC30F"],["9b41","\uC310\uC311\uC312\uC316\uC317\uC319\uC31A\uC31B\uC31D",6,"\uC326\uC327\uC32A",8],["9b61","\uC333",17,"\uC346",7],["9b81","\uC34E",25,"\uC36A\uC36B\uC36D\uC36E\uC36F\uC371\uC373",4,"\uC37A\uC37B\uC37E",5,"\uC385\uC386\uC387\uC389\uC38A\uC38B\uC38D",50,"\uC3C1",22,"\uC3DA"],["9c41","\uC3DB\uC3DD\uC3DE\uC3E1\uC3E3",4,"\uC3EA\uC3EB\uC3EC\uC3EE",5,"\uC3F6\uC3F7\uC3F9",5],["9c61","\uC3FF",8,"\uC409",6,"\uC411",9],["9c81","\uC41B",8,"\uC425",6,"\uC42D\uC42E\uC42F\uC431\uC432\uC433\uC435",6,"\uC43E",9,"\uC449",26,"\uC466\uC467\uC469\uC46A\uC46B\uC46D",6,"\uC476\uC477\uC478\uC47A",5,"\uC481",18,"\uC495",6,"\uC49D",12],["9d41","\uC4AA",13,"\uC4B9\uC4BA\uC4BB\uC4BD",8],["9d61","\uC4C6",25],["9d81","\uC4E0",8,"\uC4EA",5,"\uC4F2\uC4F3\uC4F5\uC4F6\uC4F7\uC4F9\uC4FB\uC4FC\uC4FD\uC4FE\uC502",9,"\uC50D\uC50E\uC50F\uC511\uC512\uC513\uC515",6,"\uC51D",10,"\uC52A\uC52B\uC52D\uC52E\uC52F\uC531",6,"\uC53A\uC53C\uC53E",5,"\uC546\uC547\uC54B\uC54F\uC550\uC551\uC552\uC556\uC55A\uC55B\uC55C\uC55F\uC562\uC563\uC565\uC566\uC567\uC569",6,"\uC572\uC576",5,"\uC57E\uC57F\uC581\uC582\uC583\uC585\uC586\uC588\uC589\uC58A\uC58B\uC58E\uC590\uC592\uC593\uC594"],["9e41","\uC596\uC599\uC59A\uC59B\uC59D\uC59E\uC59F\uC5A1",7,"\uC5AA",9,"\uC5B6"],["9e61","\uC5B7\uC5BA\uC5BF",4,"\uC5CB\uC5CD\uC5CF\uC5D2\uC5D3\uC5D5\uC5D6\uC5D7\uC5D9",6,"\uC5E2\uC5E4\uC5E6\uC5E7"],["9e81","\uC5E8\uC5E9\uC5EA\uC5EB\uC5EF\uC5F1\uC5F2\uC5F3\uC5F5\uC5F8\uC5F9\uC5FA\uC5FB\uC602\uC603\uC604\uC609\uC60A\uC60B\uC60D\uC60E\uC60F\uC611",6,"\uC61A\uC61D",6,"\uC626\uC627\uC629\uC62A\uC62B\uC62F\uC631\uC632\uC636\uC638\uC63A\uC63C\uC63D\uC63E\uC63F\uC642\uC643\uC645\uC646\uC647\uC649",6,"\uC652\uC656",5,"\uC65E\uC65F\uC661",10,"\uC66D\uC66E\uC670\uC672",5,"\uC67A\uC67B\uC67D\uC67E\uC67F\uC681",6,"\uC68A\uC68C\uC68E",5,"\uC696\uC697\uC699\uC69A\uC69B\uC69D",6,"\uC6A6"],["9f41","\uC6A8\uC6AA",5,"\uC6B2\uC6B3\uC6B5\uC6B6\uC6B7\uC6BB",4,"\uC6C2\uC6C4\uC6C6",5,"\uC6CE"],["9f61","\uC6CF\uC6D1\uC6D2\uC6D3\uC6D5",6,"\uC6DE\uC6DF\uC6E2",5,"\uC6EA\uC6EB\uC6ED\uC6EE\uC6EF\uC6F1\uC6F2"],["9f81","\uC6F3",4,"\uC6FA\uC6FB\uC6FC\uC6FE",5,"\uC706\uC707\uC709\uC70A\uC70B\uC70D",6,"\uC716\uC718\uC71A",5,"\uC722\uC723\uC725\uC726\uC727\uC729",6,"\uC732\uC734\uC736\uC738\uC739\uC73A\uC73B\uC73E\uC73F\uC741\uC742\uC743\uC745",4,"\uC74B\uC74E\uC750\uC759\uC75A\uC75B\uC75D\uC75E\uC75F\uC761",6,"\uC769\uC76A\uC76C",7,"\uC776\uC777\uC779\uC77A\uC77B\uC77F\uC780\uC781\uC782\uC786\uC78B\uC78C\uC78D\uC78F\uC792\uC793\uC795\uC799\uC79B",4,"\uC7A2\uC7A7",4,"\uC7AE\uC7AF\uC7B1\uC7B2\uC7B3\uC7B5\uC7B6\uC7B7"],["a041","\uC7B8\uC7B9\uC7BA\uC7BB\uC7BE\uC7C2",5,"\uC7CA\uC7CB\uC7CD\uC7CF\uC7D1",6,"\uC7D9\uC7DA\uC7DB\uC7DC"],["a061","\uC7DE",5,"\uC7E5\uC7E6\uC7E7\uC7E9\uC7EA\uC7EB\uC7ED",13],["a081","\uC7FB",4,"\uC802\uC803\uC805\uC806\uC807\uC809\uC80B",4,"\uC812\uC814\uC817",4,"\uC81E\uC81F\uC821\uC822\uC823\uC825",6,"\uC82E\uC830\uC832",5,"\uC839\uC83A\uC83B\uC83D\uC83E\uC83F\uC841",6,"\uC84A\uC84B\uC84E",5,"\uC855",26,"\uC872\uC873\uC875\uC876\uC877\uC879\uC87B",4,"\uC882\uC884\uC888\uC889\uC88A\uC88E",5,"\uC895",7,"\uC89E\uC8A0\uC8A2\uC8A3\uC8A4"],["a141","\uC8A5\uC8A6\uC8A7\uC8A9",18,"\uC8BE\uC8BF\uC8C0\uC8C1"],["a161","\uC8C2\uC8C3\uC8C5\uC8C6\uC8C7\uC8C9\uC8CA\uC8CB\uC8CD",6,"\uC8D6\uC8D8\uC8DA",5,"\uC8E2\uC8E3\uC8E5"],["a181","\uC8E6",14,"\uC8F6",5,"\uC8FE\uC8FF\uC901\uC902\uC903\uC907",4,"\uC90E\u3000\u3001\u3002\xB7\u2025\u2026\xA8\u3003\xAD\u2015\u2225\uFF3C\u223C\u2018\u2019\u201C\u201D\u3014\u3015\u3008",9,"\xB1\xD7\xF7\u2260\u2264\u2265\u221E\u2234\xB0\u2032\u2033\u2103\u212B\uFFE0\uFFE1\uFFE5\u2642\u2640\u2220\u22A5\u2312\u2202\u2207\u2261\u2252\xA7\u203B\u2606\u2605\u25CB\u25CF\u25CE\u25C7\u25C6\u25A1\u25A0\u25B3\u25B2\u25BD\u25BC\u2192\u2190\u2191\u2193\u2194\u3013\u226A\u226B\u221A\u223D\u221D\u2235\u222B\u222C\u2208\u220B\u2286\u2287\u2282\u2283\u222A\u2229\u2227\u2228\uFFE2"],["a241","\uC910\uC912",5,"\uC919",18],["a261","\uC92D",6,"\uC935",18],["a281","\uC948",7,"\uC952\uC953\uC955\uC956\uC957\uC959",6,"\uC962\uC964",7,"\uC96D\uC96E\uC96F\u21D2\u21D4\u2200\u2203\xB4\uFF5E\u02C7\u02D8\u02DD\u02DA\u02D9\xB8\u02DB\xA1\xBF\u02D0\u222E\u2211\u220F\xA4\u2109\u2030\u25C1\u25C0\u25B7\u25B6\u2664\u2660\u2661\u2665\u2667\u2663\u2299\u25C8\u25A3\u25D0\u25D1\u2592\u25A4\u25A5\u25A8\u25A7\u25A6\u25A9\u2668\u260F\u260E\u261C\u261E\xB6\u2020\u2021\u2195\u2197\u2199\u2196\u2198\u266D\u2669\u266A\u266C\u327F\u321C\u2116\u33C7\u2122\u33C2\u33D8\u2121\u20AC\xAE"],["a341","\uC971\uC972\uC973\uC975",6,"\uC97D",10,"\uC98A\uC98B\uC98D\uC98E\uC98F"],["a361","\uC991",6,"\uC99A\uC99C\uC99E",16],["a381","\uC9AF",16,"\uC9C2\uC9C3\uC9C5\uC9C6\uC9C9\uC9CB",4,"\uC9D2\uC9D4\uC9D7\uC9D8\uC9DB\uFF01",58,"\uFFE6\uFF3D",32,"\uFFE3"],["a441","\uC9DE\uC9DF\uC9E1\uC9E3\uC9E5\uC9E6\uC9E8\uC9E9\uC9EA\uC9EB\uC9EE\uC9F2",5,"\uC9FA\uC9FB\uC9FD\uC9FE\uC9FF\uCA01\uCA02\uCA03\uCA04"],["a461","\uCA05\uCA06\uCA07\uCA0A\uCA0E",5,"\uCA15\uCA16\uCA17\uCA19",12],["a481","\uCA26\uCA27\uCA28\uCA2A",28,"\u3131",93],["a541","\uCA47",4,"\uCA4E\uCA4F\uCA51\uCA52\uCA53\uCA55",6,"\uCA5E\uCA62",5,"\uCA69\uCA6A"],["a561","\uCA6B",17,"\uCA7E",5,"\uCA85\uCA86"],["a581","\uCA87",16,"\uCA99",14,"\u2170",9],["a5b0","\u2160",9],["a5c1","\u0391",16,"\u03A3",6],["a5e1","\u03B1",16,"\u03C3",6],["a641","\uCAA8",19,"\uCABE\uCABF\uCAC1\uCAC2\uCAC3\uCAC5"],["a661","\uCAC6",5,"\uCACE\uCAD0\uCAD2\uCAD4\uCAD5\uCAD6\uCAD7\uCADA",5,"\uCAE1",6],["a681","\uCAE8\uCAE9\uCAEA\uCAEB\uCAED",6,"\uCAF5",18,"\uCB09\uCB0A\u2500\u2502\u250C\u2510\u2518\u2514\u251C\u252C\u2524\u2534\u253C\u2501\u2503\u250F\u2513\u251B\u2517\u2523\u2533\u252B\u253B\u254B\u2520\u252F\u2528\u2537\u253F\u251D\u2530\u2525\u2538\u2542\u2512\u2511\u251A\u2519\u2516\u2515\u250E\u250D\u251E\u251F\u2521\u2522\u2526\u2527\u2529\u252A\u252D\u252E\u2531\u2532\u2535\u2536\u2539\u253A\u253D\u253E\u2540\u2541\u2543",7],["a741","\uCB0B",4,"\uCB11\uCB12\uCB13\uCB15\uCB16\uCB17\uCB19",6,"\uCB22",7],["a761","\uCB2A",22,"\uCB42\uCB43\uCB44"],["a781","\uCB45\uCB46\uCB47\uCB4A\uCB4B\uCB4D\uCB4E\uCB4F\uCB51",6,"\uCB5A\uCB5B\uCB5C\uCB5E",5,"\uCB65",7,"\u3395\u3396\u3397\u2113\u3398\u33C4\u33A3\u33A4\u33A5\u33A6\u3399",9,"\u33CA\u338D\u338E\u338F\u33CF\u3388\u3389\u33C8\u33A7\u33A8\u33B0",9,"\u3380",4,"\u33BA",5,"\u3390",4,"\u2126\u33C0\u33C1\u338A\u338B\u338C\u33D6\u33C5\u33AD\u33AE\u33AF\u33DB\u33A9\u33AA\u33AB\u33AC\u33DD\u33D0\u33D3\u33C3\u33C9\u33DC\u33C6"],["a841","\uCB6D",10,"\uCB7A",14],["a861","\uCB89",18,"\uCB9D",6],["a881","\uCBA4",19,"\uCBB9",11,"\xC6\xD0\xAA\u0126"],["a8a6","\u0132"],["a8a8","\u013F\u0141\xD8\u0152\xBA\xDE\u0166\u014A"],["a8b1","\u3260",27,"\u24D0",25,"\u2460",14,"\xBD\u2153\u2154\xBC\xBE\u215B\u215C\u215D\u215E"],["a941","\uCBC5",14,"\uCBD5",10],["a961","\uCBE0\uCBE1\uCBE2\uCBE3\uCBE5\uCBE6\uCBE8\uCBEA",18],["a981","\uCBFD",14,"\uCC0E\uCC0F\uCC11\uCC12\uCC13\uCC15",6,"\uCC1E\uCC1F\uCC20\uCC23\uCC24\xE6\u0111\xF0\u0127\u0131\u0133\u0138\u0140\u0142\xF8\u0153\xDF\xFE\u0167\u014B\u0149\u3200",27,"\u249C",25,"\u2474",14,"\xB9\xB2\xB3\u2074\u207F\u2081\u2082\u2083\u2084"],["aa41","\uCC25\uCC26\uCC2A\uCC2B\uCC2D\uCC2F\uCC31",6,"\uCC3A\uCC3F",4,"\uCC46\uCC47\uCC49\uCC4A\uCC4B\uCC4D\uCC4E"],["aa61","\uCC4F",4,"\uCC56\uCC5A",5,"\uCC61\uCC62\uCC63\uCC65\uCC67\uCC69",6,"\uCC71\uCC72"],["aa81","\uCC73\uCC74\uCC76",29,"\u3041",82],["ab41","\uCC94\uCC95\uCC96\uCC97\uCC9A\uCC9B\uCC9D\uCC9E\uCC9F\uCCA1",6,"\uCCAA\uCCAE",5,"\uCCB6\uCCB7\uCCB9"],["ab61","\uCCBA\uCCBB\uCCBD",6,"\uCCC6\uCCC8\uCCCA",5,"\uCCD1\uCCD2\uCCD3\uCCD5",5],["ab81","\uCCDB",8,"\uCCE5",6,"\uCCED\uCCEE\uCCEF\uCCF1",12,"\u30A1",85],["ac41","\uCCFE\uCCFF\uCD00\uCD02",5,"\uCD0A\uCD0B\uCD0D\uCD0E\uCD0F\uCD11",6,"\uCD1A\uCD1C\uCD1E\uCD1F\uCD20"],["ac61","\uCD21\uCD22\uCD23\uCD25\uCD26\uCD27\uCD29\uCD2A\uCD2B\uCD2D",11,"\uCD3A",4],["ac81","\uCD3F",28,"\uCD5D\uCD5E\uCD5F\u0410",5,"\u0401\u0416",25],["acd1","\u0430",5,"\u0451\u0436",25],["ad41","\uCD61\uCD62\uCD63\uCD65",6,"\uCD6E\uCD70\uCD72",5,"\uCD79",7],["ad61","\uCD81",6,"\uCD89",10,"\uCD96\uCD97\uCD99\uCD9A\uCD9B\uCD9D\uCD9E\uCD9F"],["ad81","\uCDA0\uCDA1\uCDA2\uCDA3\uCDA6\uCDA8\uCDAA",5,"\uCDB1",18,"\uCDC5"],["ae41","\uCDC6",5,"\uCDCD\uCDCE\uCDCF\uCDD1",16],["ae61","\uCDE2",5,"\uCDE9\uCDEA\uCDEB\uCDED\uCDEE\uCDEF\uCDF1",6,"\uCDFA\uCDFC\uCDFE",4],["ae81","\uCE03\uCE05\uCE06\uCE07\uCE09\uCE0A\uCE0B\uCE0D",6,"\uCE15\uCE16\uCE17\uCE18\uCE1A",5,"\uCE22\uCE23\uCE25\uCE26\uCE27\uCE29\uCE2A\uCE2B"],["af41","\uCE2C\uCE2D\uCE2E\uCE2F\uCE32\uCE34\uCE36",19],["af61","\uCE4A",13,"\uCE5A\uCE5B\uCE5D\uCE5E\uCE62",5,"\uCE6A\uCE6C"],["af81","\uCE6E",5,"\uCE76\uCE77\uCE79\uCE7A\uCE7B\uCE7D",6,"\uCE86\uCE88\uCE8A",5,"\uCE92\uCE93\uCE95\uCE96\uCE97\uCE99"],["b041","\uCE9A",5,"\uCEA2\uCEA6",5,"\uCEAE",12],["b061","\uCEBB",5,"\uCEC2",19],["b081","\uCED6",13,"\uCEE6\uCEE7\uCEE9\uCEEA\uCEED",6,"\uCEF6\uCEFA",5,"\uAC00\uAC01\uAC04\uAC07\uAC08\uAC09\uAC0A\uAC10",7,"\uAC19",4,"\uAC20\uAC24\uAC2C\uAC2D\uAC2F\uAC30\uAC31\uAC38\uAC39\uAC3C\uAC40\uAC4B\uAC4D\uAC54\uAC58\uAC5C\uAC70\uAC71\uAC74\uAC77\uAC78\uAC7A\uAC80\uAC81\uAC83\uAC84\uAC85\uAC86\uAC89\uAC8A\uAC8B\uAC8C\uAC90\uAC94\uAC9C\uAC9D\uAC9F\uACA0\uACA1\uACA8\uACA9\uACAA\uACAC\uACAF\uACB0\uACB8\uACB9\uACBB\uACBC\uACBD\uACC1\uACC4\uACC8\uACCC\uACD5\uACD7\uACE0\uACE1\uACE4\uACE7\uACE8\uACEA\uACEC\uACEF\uACF0\uACF1\uACF3\uACF5\uACF6\uACFC\uACFD\uAD00\uAD04\uAD06"],["b141","\uCF02\uCF03\uCF05\uCF06\uCF07\uCF09",6,"\uCF12\uCF14\uCF16",5,"\uCF1D\uCF1E\uCF1F\uCF21\uCF22\uCF23"],["b161","\uCF25",6,"\uCF2E\uCF32",5,"\uCF39",11],["b181","\uCF45",14,"\uCF56\uCF57\uCF59\uCF5A\uCF5B\uCF5D",6,"\uCF66\uCF68\uCF6A\uCF6B\uCF6C\uAD0C\uAD0D\uAD0F\uAD11\uAD18\uAD1C\uAD20\uAD29\uAD2C\uAD2D\uAD34\uAD35\uAD38\uAD3C\uAD44\uAD45\uAD47\uAD49\uAD50\uAD54\uAD58\uAD61\uAD63\uAD6C\uAD6D\uAD70\uAD73\uAD74\uAD75\uAD76\uAD7B\uAD7C\uAD7D\uAD7F\uAD81\uAD82\uAD88\uAD89\uAD8C\uAD90\uAD9C\uAD9D\uADA4\uADB7\uADC0\uADC1\uADC4\uADC8\uADD0\uADD1\uADD3\uADDC\uADE0\uADE4\uADF8\uADF9\uADFC\uADFF\uAE00\uAE01\uAE08\uAE09\uAE0B\uAE0D\uAE14\uAE30\uAE31\uAE34\uAE37\uAE38\uAE3A\uAE40\uAE41\uAE43\uAE45\uAE46\uAE4A\uAE4C\uAE4D\uAE4E\uAE50\uAE54\uAE56\uAE5C\uAE5D\uAE5F\uAE60\uAE61\uAE65\uAE68\uAE69\uAE6C\uAE70\uAE78"],["b241","\uCF6D\uCF6E\uCF6F\uCF72\uCF73\uCF75\uCF76\uCF77\uCF79",6,"\uCF81\uCF82\uCF83\uCF84\uCF86",5,"\uCF8D"],["b261","\uCF8E",18,"\uCFA2",5,"\uCFA9"],["b281","\uCFAA",5,"\uCFB1",18,"\uCFC5",6,"\uAE79\uAE7B\uAE7C\uAE7D\uAE84\uAE85\uAE8C\uAEBC\uAEBD\uAEBE\uAEC0\uAEC4\uAECC\uAECD\uAECF\uAED0\uAED1\uAED8\uAED9\uAEDC\uAEE8\uAEEB\uAEED\uAEF4\uAEF8\uAEFC\uAF07\uAF08\uAF0D\uAF10\uAF2C\uAF2D\uAF30\uAF32\uAF34\uAF3C\uAF3D\uAF3F\uAF41\uAF42\uAF43\uAF48\uAF49\uAF50\uAF5C\uAF5D\uAF64\uAF65\uAF79\uAF80\uAF84\uAF88\uAF90\uAF91\uAF95\uAF9C\uAFB8\uAFB9\uAFBC\uAFC0\uAFC7\uAFC8\uAFC9\uAFCB\uAFCD\uAFCE\uAFD4\uAFDC\uAFE8\uAFE9\uAFF0\uAFF1\uAFF4\uAFF8\uB000\uB001\uB004\uB00C\uB010\uB014\uB01C\uB01D\uB028\uB044\uB045\uB048\uB04A\uB04C\uB04E\uB053\uB054\uB055\uB057\uB059"],["b341","\uCFCC",19,"\uCFE2\uCFE3\uCFE5\uCFE6\uCFE7\uCFE9"],["b361","\uCFEA",5,"\uCFF2\uCFF4\uCFF6",5,"\uCFFD\uCFFE\uCFFF\uD001\uD002\uD003\uD005",5],["b381","\uD00B",5,"\uD012",5,"\uD019",19,"\uB05D\uB07C\uB07D\uB080\uB084\uB08C\uB08D\uB08F\uB091\uB098\uB099\uB09A\uB09C\uB09F\uB0A0\uB0A1\uB0A2\uB0A8\uB0A9\uB0AB",4,"\uB0B1\uB0B3\uB0B4\uB0B5\uB0B8\uB0BC\uB0C4\uB0C5\uB0C7\uB0C8\uB0C9\uB0D0\uB0D1\uB0D4\uB0D8\uB0E0\uB0E5\uB108\uB109\uB10B\uB10C\uB110\uB112\uB113\uB118\uB119\uB11B\uB11C\uB11D\uB123\uB124\uB125\uB128\uB12C\uB134\uB135\uB137\uB138\uB139\uB140\uB141\uB144\uB148\uB150\uB151\uB154\uB155\uB158\uB15C\uB160\uB178\uB179\uB17C\uB180\uB182\uB188\uB189\uB18B\uB18D\uB192\uB193\uB194\uB198\uB19C\uB1A8\uB1CC\uB1D0\uB1D4\uB1DC\uB1DD"],["b441","\uD02E",5,"\uD036\uD037\uD039\uD03A\uD03B\uD03D",6,"\uD046\uD048\uD04A",5],["b461","\uD051\uD052\uD053\uD055\uD056\uD057\uD059",6,"\uD061",10,"\uD06E\uD06F"],["b481","\uD071\uD072\uD073\uD075",6,"\uD07E\uD07F\uD080\uD082",18,"\uB1DF\uB1E8\uB1E9\uB1EC\uB1F0\uB1F9\uB1FB\uB1FD\uB204\uB205\uB208\uB20B\uB20C\uB214\uB215\uB217\uB219\uB220\uB234\uB23C\uB258\uB25C\uB260\uB268\uB269\uB274\uB275\uB27C\uB284\uB285\uB289\uB290\uB291\uB294\uB298\uB299\uB29A\uB2A0\uB2A1\uB2A3\uB2A5\uB2A6\uB2AA\uB2AC\uB2B0\uB2B4\uB2C8\uB2C9\uB2CC\uB2D0\uB2D2\uB2D8\uB2D9\uB2DB\uB2DD\uB2E2\uB2E4\uB2E5\uB2E6\uB2E8\uB2EB",4,"\uB2F3\uB2F4\uB2F5\uB2F7",4,"\uB2FF\uB300\uB301\uB304\uB308\uB310\uB311\uB313\uB314\uB315\uB31C\uB354\uB355\uB356\uB358\uB35B\uB35C\uB35E\uB35F\uB364\uB365"],["b541","\uD095",14,"\uD0A6\uD0A7\uD0A9\uD0AA\uD0AB\uD0AD",5],["b561","\uD0B3\uD0B6\uD0B8\uD0BA",5,"\uD0C2\uD0C3\uD0C5\uD0C6\uD0C7\uD0CA",5,"\uD0D2\uD0D6",4],["b581","\uD0DB\uD0DE\uD0DF\uD0E1\uD0E2\uD0E3\uD0E5",6,"\uD0EE\uD0F2",5,"\uD0F9",11,"\uB367\uB369\uB36B\uB36E\uB370\uB371\uB374\uB378\uB380\uB381\uB383\uB384\uB385\uB38C\uB390\uB394\uB3A0\uB3A1\uB3A8\uB3AC\uB3C4\uB3C5\uB3C8\uB3CB\uB3CC\uB3CE\uB3D0\uB3D4\uB3D5\uB3D7\uB3D9\uB3DB\uB3DD\uB3E0\uB3E4\uB3E8\uB3FC\uB410\uB418\uB41C\uB420\uB428\uB429\uB42B\uB434\uB450\uB451\uB454\uB458\uB460\uB461\uB463\uB465\uB46C\uB480\uB488\uB49D\uB4A4\uB4A8\uB4AC\uB4B5\uB4B7\uB4B9\uB4C0\uB4C4\uB4C8\uB4D0\uB4D5\uB4DC\uB4DD\uB4E0\uB4E3\uB4E4\uB4E6\uB4EC\uB4ED\uB4EF\uB4F1\uB4F8\uB514\uB515\uB518\uB51B\uB51C\uB524\uB525\uB527\uB528\uB529\uB52A\uB530\uB531\uB534\uB538"],["b641","\uD105",7,"\uD10E",17],["b661","\uD120",15,"\uD132\uD133\uD135\uD136\uD137\uD139\uD13B\uD13C\uD13D\uD13E"],["b681","\uD13F\uD142\uD146",5,"\uD14E\uD14F\uD151\uD152\uD153\uD155",6,"\uD15E\uD160\uD162",5,"\uD169\uD16A\uD16B\uD16D\uB540\uB541\uB543\uB544\uB545\uB54B\uB54C\uB54D\uB550\uB554\uB55C\uB55D\uB55F\uB560\uB561\uB5A0\uB5A1\uB5A4\uB5A8\uB5AA\uB5AB\uB5B0\uB5B1\uB5B3\uB5B4\uB5B5\uB5BB\uB5BC\uB5BD\uB5C0\uB5C4\uB5CC\uB5CD\uB5CF\uB5D0\uB5D1\uB5D8\uB5EC\uB610\uB611\uB614\uB618\uB625\uB62C\uB634\uB648\uB664\uB668\uB69C\uB69D\uB6A0\uB6A4\uB6AB\uB6AC\uB6B1\uB6D4\uB6F0\uB6F4\uB6F8\uB700\uB701\uB705\uB728\uB729\uB72C\uB72F\uB730\uB738\uB739\uB73B\uB744\uB748\uB74C\uB754\uB755\uB760\uB764\uB768\uB770\uB771\uB773\uB775\uB77C\uB77D\uB780\uB784\uB78C\uB78D\uB78F\uB790\uB791\uB792\uB796\uB797"],["b741","\uD16E",13,"\uD17D",6,"\uD185\uD186\uD187\uD189\uD18A"],["b761","\uD18B",20,"\uD1A2\uD1A3\uD1A5\uD1A6\uD1A7"],["b781","\uD1A9",6,"\uD1B2\uD1B4\uD1B6\uD1B7\uD1B8\uD1B9\uD1BB\uD1BD\uD1BE\uD1BF\uD1C1",14,"\uB798\uB799\uB79C\uB7A0\uB7A8\uB7A9\uB7AB\uB7AC\uB7AD\uB7B4\uB7B5\uB7B8\uB7C7\uB7C9\uB7EC\uB7ED\uB7F0\uB7F4\uB7FC\uB7FD\uB7FF\uB800\uB801\uB807\uB808\uB809\uB80C\uB810\uB818\uB819\uB81B\uB81D\uB824\uB825\uB828\uB82C\uB834\uB835\uB837\uB838\uB839\uB840\uB844\uB851\uB853\uB85C\uB85D\uB860\uB864\uB86C\uB86D\uB86F\uB871\uB878\uB87C\uB88D\uB8A8\uB8B0\uB8B4\uB8B8\uB8C0\uB8C1\uB8C3\uB8C5\uB8CC\uB8D0\uB8D4\uB8DD\uB8DF\uB8E1\uB8E8\uB8E9\uB8EC\uB8F0\uB8F8\uB8F9\uB8FB\uB8FD\uB904\uB918\uB920\uB93C\uB93D\uB940\uB944\uB94C\uB94F\uB951\uB958\uB959\uB95C\uB960\uB968\uB969"],["b841","\uD1D0",7,"\uD1D9",17],["b861","\uD1EB",8,"\uD1F5\uD1F6\uD1F7\uD1F9",13],["b881","\uD208\uD20A",5,"\uD211",24,"\uB96B\uB96D\uB974\uB975\uB978\uB97C\uB984\uB985\uB987\uB989\uB98A\uB98D\uB98E\uB9AC\uB9AD\uB9B0\uB9B4\uB9BC\uB9BD\uB9BF\uB9C1\uB9C8\uB9C9\uB9CC\uB9CE",4,"\uB9D8\uB9D9\uB9DB\uB9DD\uB9DE\uB9E1\uB9E3\uB9E4\uB9E5\uB9E8\uB9EC\uB9F4\uB9F5\uB9F7\uB9F8\uB9F9\uB9FA\uBA00\uBA01\uBA08\uBA15\uBA38\uBA39\uBA3C\uBA40\uBA42\uBA48\uBA49\uBA4B\uBA4D\uBA4E\uBA53\uBA54\uBA55\uBA58\uBA5C\uBA64\uBA65\uBA67\uBA68\uBA69\uBA70\uBA71\uBA74\uBA78\uBA83\uBA84\uBA85\uBA87\uBA8C\uBAA8\uBAA9\uBAAB\uBAAC\uBAB0\uBAB2\uBAB8\uBAB9\uBABB\uBABD\uBAC4\uBAC8\uBAD8\uBAD9\uBAFC"],["b941","\uD22A\uD22B\uD22E\uD22F\uD231\uD232\uD233\uD235",6,"\uD23E\uD240\uD242",5,"\uD249\uD24A\uD24B\uD24C"],["b961","\uD24D",14,"\uD25D",6,"\uD265\uD266\uD267\uD268"],["b981","\uD269",22,"\uD282\uD283\uD285\uD286\uD287\uD289\uD28A\uD28B\uD28C\uBB00\uBB04\uBB0D\uBB0F\uBB11\uBB18\uBB1C\uBB20\uBB29\uBB2B\uBB34\uBB35\uBB36\uBB38\uBB3B\uBB3C\uBB3D\uBB3E\uBB44\uBB45\uBB47\uBB49\uBB4D\uBB4F\uBB50\uBB54\uBB58\uBB61\uBB63\uBB6C\uBB88\uBB8C\uBB90\uBBA4\uBBA8\uBBAC\uBBB4\uBBB7\uBBC0\uBBC4\uBBC8\uBBD0\uBBD3\uBBF8\uBBF9\uBBFC\uBBFF\uBC00\uBC02\uBC08\uBC09\uBC0B\uBC0C\uBC0D\uBC0F\uBC11\uBC14",4,"\uBC1B",4,"\uBC24\uBC25\uBC27\uBC29\uBC2D\uBC30\uBC31\uBC34\uBC38\uBC40\uBC41\uBC43\uBC44\uBC45\uBC49\uBC4C\uBC4D\uBC50\uBC5D\uBC84\uBC85\uBC88\uBC8B\uBC8C\uBC8E\uBC94\uBC95\uBC97"],["ba41","\uD28D\uD28E\uD28F\uD292\uD293\uD294\uD296",5,"\uD29D\uD29E\uD29F\uD2A1\uD2A2\uD2A3\uD2A5",6,"\uD2AD"],["ba61","\uD2AE\uD2AF\uD2B0\uD2B2",5,"\uD2BA\uD2BB\uD2BD\uD2BE\uD2C1\uD2C3",4,"\uD2CA\uD2CC",5],["ba81","\uD2D2\uD2D3\uD2D5\uD2D6\uD2D7\uD2D9\uD2DA\uD2DB\uD2DD",6,"\uD2E6",9,"\uD2F2\uD2F3\uD2F5\uD2F6\uD2F7\uD2F9\uD2FA\uBC99\uBC9A\uBCA0\uBCA1\uBCA4\uBCA7\uBCA8\uBCB0\uBCB1\uBCB3\uBCB4\uBCB5\uBCBC\uBCBD\uBCC0\uBCC4\uBCCD\uBCCF\uBCD0\uBCD1\uBCD5\uBCD8\uBCDC\uBCF4\uBCF5\uBCF6\uBCF8\uBCFC\uBD04\uBD05\uBD07\uBD09\uBD10\uBD14\uBD24\uBD2C\uBD40\uBD48\uBD49\uBD4C\uBD50\uBD58\uBD59\uBD64\uBD68\uBD80\uBD81\uBD84\uBD87\uBD88\uBD89\uBD8A\uBD90\uBD91\uBD93\uBD95\uBD99\uBD9A\uBD9C\uBDA4\uBDB0\uBDB8\uBDD4\uBDD5\uBDD8\uBDDC\uBDE9\uBDF0\uBDF4\uBDF8\uBE00\uBE03\uBE05\uBE0C\uBE0D\uBE10\uBE14\uBE1C\uBE1D\uBE1F\uBE44\uBE45\uBE48\uBE4C\uBE4E\uBE54\uBE55\uBE57\uBE59\uBE5A\uBE5B\uBE60\uBE61\uBE64"],["bb41","\uD2FB",4,"\uD302\uD304\uD306",5,"\uD30F\uD311\uD312\uD313\uD315\uD317",4,"\uD31E\uD322\uD323"],["bb61","\uD324\uD326\uD327\uD32A\uD32B\uD32D\uD32E\uD32F\uD331",6,"\uD33A\uD33E",5,"\uD346\uD347\uD348\uD349"],["bb81","\uD34A",31,"\uBE68\uBE6A\uBE70\uBE71\uBE73\uBE74\uBE75\uBE7B\uBE7C\uBE7D\uBE80\uBE84\uBE8C\uBE8D\uBE8F\uBE90\uBE91\uBE98\uBE99\uBEA8\uBED0\uBED1\uBED4\uBED7\uBED8\uBEE0\uBEE3\uBEE4\uBEE5\uBEEC\uBF01\uBF08\uBF09\uBF18\uBF19\uBF1B\uBF1C\uBF1D\uBF40\uBF41\uBF44\uBF48\uBF50\uBF51\uBF55\uBF94\uBFB0\uBFC5\uBFCC\uBFCD\uBFD0\uBFD4\uBFDC\uBFDF\uBFE1\uC03C\uC051\uC058\uC05C\uC060\uC068\uC069\uC090\uC091\uC094\uC098\uC0A0\uC0A1\uC0A3\uC0A5\uC0AC\uC0AD\uC0AF\uC0B0\uC0B3\uC0B4\uC0B5\uC0B6\uC0BC\uC0BD\uC0BF\uC0C0\uC0C1\uC0C5\uC0C8\uC0C9\uC0CC\uC0D0\uC0D8\uC0D9\uC0DB\uC0DC\uC0DD\uC0E4"],["bc41","\uD36A",17,"\uD37E\uD37F\uD381\uD382\uD383\uD385\uD386\uD387"],["bc61","\uD388\uD389\uD38A\uD38B\uD38E\uD392",5,"\uD39A\uD39B\uD39D\uD39E\uD39F\uD3A1",6,"\uD3AA\uD3AC\uD3AE"],["bc81","\uD3AF",4,"\uD3B5\uD3B6\uD3B7\uD3B9\uD3BA\uD3BB\uD3BD",6,"\uD3C6\uD3C7\uD3CA",5,"\uD3D1",5,"\uC0E5\uC0E8\uC0EC\uC0F4\uC0F5\uC0F7\uC0F9\uC100\uC104\uC108\uC110\uC115\uC11C",4,"\uC123\uC124\uC126\uC127\uC12C\uC12D\uC12F\uC130\uC131\uC136\uC138\uC139\uC13C\uC140\uC148\uC149\uC14B\uC14C\uC14D\uC154\uC155\uC158\uC15C\uC164\uC165\uC167\uC168\uC169\uC170\uC174\uC178\uC185\uC18C\uC18D\uC18E\uC190\uC194\uC196\uC19C\uC19D\uC19F\uC1A1\uC1A5\uC1A8\uC1A9\uC1AC\uC1B0\uC1BD\uC1C4\uC1C8\uC1CC\uC1D4\uC1D7\uC1D8\uC1E0\uC1E4\uC1E8\uC1F0\uC1F1\uC1F3\uC1FC\uC1FD\uC200\uC204\uC20C\uC20D\uC20F\uC211\uC218\uC219\uC21C\uC21F\uC220\uC228\uC229\uC22B\uC22D"],["bd41","\uD3D7\uD3D9",7,"\uD3E2\uD3E4",7,"\uD3EE\uD3EF\uD3F1\uD3F2\uD3F3\uD3F5\uD3F6\uD3F7"],["bd61","\uD3F8\uD3F9\uD3FA\uD3FB\uD3FE\uD400\uD402",5,"\uD409",13],["bd81","\uD417",5,"\uD41E",25,"\uC22F\uC231\uC232\uC234\uC248\uC250\uC251\uC254\uC258\uC260\uC265\uC26C\uC26D\uC270\uC274\uC27C\uC27D\uC27F\uC281\uC288\uC289\uC290\uC298\uC29B\uC29D\uC2A4\uC2A5\uC2A8\uC2AC\uC2AD\uC2B4\uC2B5\uC2B7\uC2B9\uC2DC\uC2DD\uC2E0\uC2E3\uC2E4\uC2EB\uC2EC\uC2ED\uC2EF\uC2F1\uC2F6\uC2F8\uC2F9\uC2FB\uC2FC\uC300\uC308\uC309\uC30C\uC30D\uC313\uC314\uC315\uC318\uC31C\uC324\uC325\uC328\uC329\uC345\uC368\uC369\uC36C\uC370\uC372\uC378\uC379\uC37C\uC37D\uC384\uC388\uC38C\uC3C0\uC3D8\uC3D9\uC3DC\uC3DF\uC3E0\uC3E2\uC3E8\uC3E9\uC3ED\uC3F4\uC3F5\uC3F8\uC408\uC410\uC424\uC42C\uC430"],["be41","\uD438",7,"\uD441\uD442\uD443\uD445",14],["be61","\uD454",7,"\uD45D\uD45E\uD45F\uD461\uD462\uD463\uD465",7,"\uD46E\uD470\uD471\uD472"],["be81","\uD473",4,"\uD47A\uD47B\uD47D\uD47E\uD481\uD483",4,"\uD48A\uD48C\uD48E",5,"\uD495",8,"\uC434\uC43C\uC43D\uC448\uC464\uC465\uC468\uC46C\uC474\uC475\uC479\uC480\uC494\uC49C\uC4B8\uC4BC\uC4E9\uC4F0\uC4F1\uC4F4\uC4F8\uC4FA\uC4FF\uC500\uC501\uC50C\uC510\uC514\uC51C\uC528\uC529\uC52C\uC530\uC538\uC539\uC53B\uC53D\uC544\uC545\uC548\uC549\uC54A\uC54C\uC54D\uC54E\uC553\uC554\uC555\uC557\uC558\uC559\uC55D\uC55E\uC560\uC561\uC564\uC568\uC570\uC571\uC573\uC574\uC575\uC57C\uC57D\uC580\uC584\uC587\uC58C\uC58D\uC58F\uC591\uC595\uC597\uC598\uC59C\uC5A0\uC5A9\uC5B4\uC5B5\uC5B8\uC5B9\uC5BB\uC5BC\uC5BD\uC5BE\uC5C4",6,"\uC5CC\uC5CE"],["bf41","\uD49E",10,"\uD4AA",14],["bf61","\uD4B9",18,"\uD4CD\uD4CE\uD4CF\uD4D1\uD4D2\uD4D3\uD4D5"],["bf81","\uD4D6",5,"\uD4DD\uD4DE\uD4E0",7,"\uD4E9\uD4EA\uD4EB\uD4ED\uD4EE\uD4EF\uD4F1",6,"\uD4F9\uD4FA\uD4FC\uC5D0\uC5D1\uC5D4\uC5D8\uC5E0\uC5E1\uC5E3\uC5E5\uC5EC\uC5ED\uC5EE\uC5F0\uC5F4\uC5F6\uC5F7\uC5FC",5,"\uC605\uC606\uC607\uC608\uC60C\uC610\uC618\uC619\uC61B\uC61C\uC624\uC625\uC628\uC62C\uC62D\uC62E\uC630\uC633\uC634\uC635\uC637\uC639\uC63B\uC640\uC641\uC644\uC648\uC650\uC651\uC653\uC654\uC655\uC65C\uC65D\uC660\uC66C\uC66F\uC671\uC678\uC679\uC67C\uC680\uC688\uC689\uC68B\uC68D\uC694\uC695\uC698\uC69C\uC6A4\uC6A5\uC6A7\uC6A9\uC6B0\uC6B1\uC6B4\uC6B8\uC6B9\uC6BA\uC6C0\uC6C1\uC6C3\uC6C5\uC6CC\uC6CD\uC6D0\uC6D4\uC6DC\uC6DD\uC6E0\uC6E1\uC6E8"],["c041","\uD4FE",5,"\uD505\uD506\uD507\uD509\uD50A\uD50B\uD50D",6,"\uD516\uD518",5],["c061","\uD51E",25],["c081","\uD538\uD539\uD53A\uD53B\uD53E\uD53F\uD541\uD542\uD543\uD545",6,"\uD54E\uD550\uD552",5,"\uD55A\uD55B\uD55D\uD55E\uD55F\uD561\uD562\uD563\uC6E9\uC6EC\uC6F0\uC6F8\uC6F9\uC6FD\uC704\uC705\uC708\uC70C\uC714\uC715\uC717\uC719\uC720\uC721\uC724\uC728\uC730\uC731\uC733\uC735\uC737\uC73C\uC73D\uC740\uC744\uC74A\uC74C\uC74D\uC74F\uC751",7,"\uC75C\uC760\uC768\uC76B\uC774\uC775\uC778\uC77C\uC77D\uC77E\uC783\uC784\uC785\uC787\uC788\uC789\uC78A\uC78E\uC790\uC791\uC794\uC796\uC797\uC798\uC79A\uC7A0\uC7A1\uC7A3\uC7A4\uC7A5\uC7A6\uC7AC\uC7AD\uC7B0\uC7B4\uC7BC\uC7BD\uC7BF\uC7C0\uC7C1\uC7C8\uC7C9\uC7CC\uC7CE\uC7D0\uC7D8\uC7DD\uC7E4\uC7E8\uC7EC\uC800\uC801\uC804\uC808\uC80A"],["c141","\uD564\uD566\uD567\uD56A\uD56C\uD56E",5,"\uD576\uD577\uD579\uD57A\uD57B\uD57D",6,"\uD586\uD58A\uD58B"],["c161","\uD58C\uD58D\uD58E\uD58F\uD591",19,"\uD5A6\uD5A7"],["c181","\uD5A8",31,"\uC810\uC811\uC813\uC815\uC816\uC81C\uC81D\uC820\uC824\uC82C\uC82D\uC82F\uC831\uC838\uC83C\uC840\uC848\uC849\uC84C\uC84D\uC854\uC870\uC871\uC874\uC878\uC87A\uC880\uC881\uC883\uC885\uC886\uC887\uC88B\uC88C\uC88D\uC894\uC89D\uC89F\uC8A1\uC8A8\uC8BC\uC8BD\uC8C4\uC8C8\uC8CC\uC8D4\uC8D5\uC8D7\uC8D9\uC8E0\uC8E1\uC8E4\uC8F5\uC8FC\uC8FD\uC900\uC904\uC905\uC906\uC90C\uC90D\uC90F\uC911\uC918\uC92C\uC934\uC950\uC951\uC954\uC958\uC960\uC961\uC963\uC96C\uC970\uC974\uC97C\uC988\uC989\uC98C\uC990\uC998\uC999\uC99B\uC99D\uC9C0\uC9C1\uC9C4\uC9C7\uC9C8\uC9CA\uC9D0\uC9D1\uC9D3"],["c241","\uD5CA\uD5CB\uD5CD\uD5CE\uD5CF\uD5D1\uD5D3",4,"\uD5DA\uD5DC\uD5DE",5,"\uD5E6\uD5E7\uD5E9\uD5EA\uD5EB\uD5ED\uD5EE"],["c261","\uD5EF",4,"\uD5F6\uD5F8\uD5FA",5,"\uD602\uD603\uD605\uD606\uD607\uD609",6,"\uD612"],["c281","\uD616",5,"\uD61D\uD61E\uD61F\uD621\uD622\uD623\uD625",7,"\uD62E",9,"\uD63A\uD63B\uC9D5\uC9D6\uC9D9\uC9DA\uC9DC\uC9DD\uC9E0\uC9E2\uC9E4\uC9E7\uC9EC\uC9ED\uC9EF\uC9F0\uC9F1\uC9F8\uC9F9\uC9FC\uCA00\uCA08\uCA09\uCA0B\uCA0C\uCA0D\uCA14\uCA18\uCA29\uCA4C\uCA4D\uCA50\uCA54\uCA5C\uCA5D\uCA5F\uCA60\uCA61\uCA68\uCA7D\uCA84\uCA98\uCABC\uCABD\uCAC0\uCAC4\uCACC\uCACD\uCACF\uCAD1\uCAD3\uCAD8\uCAD9\uCAE0\uCAEC\uCAF4\uCB08\uCB10\uCB14\uCB18\uCB20\uCB21\uCB41\uCB48\uCB49\uCB4C\uCB50\uCB58\uCB59\uCB5D\uCB64\uCB78\uCB79\uCB9C\uCBB8\uCBD4\uCBE4\uCBE7\uCBE9\uCC0C\uCC0D\uCC10\uCC14\uCC1C\uCC1D\uCC21\uCC22\uCC27\uCC28\uCC29\uCC2C\uCC2E\uCC30\uCC38\uCC39\uCC3B"],["c341","\uD63D\uD63E\uD63F\uD641\uD642\uD643\uD644\uD646\uD647\uD64A\uD64C\uD64E\uD64F\uD650\uD652\uD653\uD656\uD657\uD659\uD65A\uD65B\uD65D",4],["c361","\uD662",4,"\uD668\uD66A",5,"\uD672\uD673\uD675",11],["c381","\uD681\uD682\uD684\uD686",5,"\uD68E\uD68F\uD691\uD692\uD693\uD695",7,"\uD69E\uD6A0\uD6A2",5,"\uD6A9\uD6AA\uCC3C\uCC3D\uCC3E\uCC44\uCC45\uCC48\uCC4C\uCC54\uCC55\uCC57\uCC58\uCC59\uCC60\uCC64\uCC66\uCC68\uCC70\uCC75\uCC98\uCC99\uCC9C\uCCA0\uCCA8\uCCA9\uCCAB\uCCAC\uCCAD\uCCB4\uCCB5\uCCB8\uCCBC\uCCC4\uCCC5\uCCC7\uCCC9\uCCD0\uCCD4\uCCE4\uCCEC\uCCF0\uCD01\uCD08\uCD09\uCD0C\uCD10\uCD18\uCD19\uCD1B\uCD1D\uCD24\uCD28\uCD2C\uCD39\uCD5C\uCD60\uCD64\uCD6C\uCD6D\uCD6F\uCD71\uCD78\uCD88\uCD94\uCD95\uCD98\uCD9C\uCDA4\uCDA5\uCDA7\uCDA9\uCDB0\uCDC4\uCDCC\uCDD0\uCDE8\uCDEC\uCDF0\uCDF8\uCDF9\uCDFB\uCDFD\uCE04\uCE08\uCE0C\uCE14\uCE19\uCE20\uCE21\uCE24\uCE28\uCE30\uCE31\uCE33\uCE35"],["c441","\uD6AB\uD6AD\uD6AE\uD6AF\uD6B1",7,"\uD6BA\uD6BC",7,"\uD6C6\uD6C7\uD6C9\uD6CA\uD6CB"],["c461","\uD6CD\uD6CE\uD6CF\uD6D0\uD6D2\uD6D3\uD6D5\uD6D6\uD6D8\uD6DA",5,"\uD6E1\uD6E2\uD6E3\uD6E5\uD6E6\uD6E7\uD6E9",4],["c481","\uD6EE\uD6EF\uD6F1\uD6F2\uD6F3\uD6F4\uD6F6",5,"\uD6FE\uD6FF\uD701\uD702\uD703\uD705",11,"\uD712\uD713\uD714\uCE58\uCE59\uCE5C\uCE5F\uCE60\uCE61\uCE68\uCE69\uCE6B\uCE6D\uCE74\uCE75\uCE78\uCE7C\uCE84\uCE85\uCE87\uCE89\uCE90\uCE91\uCE94\uCE98\uCEA0\uCEA1\uCEA3\uCEA4\uCEA5\uCEAC\uCEAD\uCEC1\uCEE4\uCEE5\uCEE8\uCEEB\uCEEC\uCEF4\uCEF5\uCEF7\uCEF8\uCEF9\uCF00\uCF01\uCF04\uCF08\uCF10\uCF11\uCF13\uCF15\uCF1C\uCF20\uCF24\uCF2C\uCF2D\uCF2F\uCF30\uCF31\uCF38\uCF54\uCF55\uCF58\uCF5C\uCF64\uCF65\uCF67\uCF69\uCF70\uCF71\uCF74\uCF78\uCF80\uCF85\uCF8C\uCFA1\uCFA8\uCFB0\uCFC4\uCFE0\uCFE1\uCFE4\uCFE8\uCFF0\uCFF1\uCFF3\uCFF5\uCFFC\uD000\uD004\uD011\uD018\uD02D\uD034\uD035\uD038\uD03C"],["c541","\uD715\uD716\uD717\uD71A\uD71B\uD71D\uD71E\uD71F\uD721",6,"\uD72A\uD72C\uD72E",5,"\uD736\uD737\uD739"],["c561","\uD73A\uD73B\uD73D",6,"\uD745\uD746\uD748\uD74A",5,"\uD752\uD753\uD755\uD75A",4],["c581","\uD75F\uD762\uD764\uD766\uD767\uD768\uD76A\uD76B\uD76D\uD76E\uD76F\uD771\uD772\uD773\uD775",6,"\uD77E\uD77F\uD780\uD782",5,"\uD78A\uD78B\uD044\uD045\uD047\uD049\uD050\uD054\uD058\uD060\uD06C\uD06D\uD070\uD074\uD07C\uD07D\uD081\uD0A4\uD0A5\uD0A8\uD0AC\uD0B4\uD0B5\uD0B7\uD0B9\uD0C0\uD0C1\uD0C4\uD0C8\uD0C9\uD0D0\uD0D1\uD0D3\uD0D4\uD0D5\uD0DC\uD0DD\uD0E0\uD0E4\uD0EC\uD0ED\uD0EF\uD0F0\uD0F1\uD0F8\uD10D\uD130\uD131\uD134\uD138\uD13A\uD140\uD141\uD143\uD144\uD145\uD14C\uD14D\uD150\uD154\uD15C\uD15D\uD15F\uD161\uD168\uD16C\uD17C\uD184\uD188\uD1A0\uD1A1\uD1A4\uD1A8\uD1B0\uD1B1\uD1B3\uD1B5\uD1BA\uD1BC\uD1C0\uD1D8\uD1F4\uD1F8\uD207\uD209\uD210\uD22C\uD22D\uD230\uD234\uD23C\uD23D\uD23F\uD241\uD248\uD25C"],["c641","\uD78D\uD78E\uD78F\uD791",6,"\uD79A\uD79C\uD79E",5],["c6a1","\uD264\uD280\uD281\uD284\uD288\uD290\uD291\uD295\uD29C\uD2A0\uD2A4\uD2AC\uD2B1\uD2B8\uD2B9\uD2BC\uD2BF\uD2C0\uD2C2\uD2C8\uD2C9\uD2CB\uD2D4\uD2D8\uD2DC\uD2E4\uD2E5\uD2F0\uD2F1\uD2F4\uD2F8\uD300\uD301\uD303\uD305\uD30C\uD30D\uD30E\uD310\uD314\uD316\uD31C\uD31D\uD31F\uD320\uD321\uD325\uD328\uD329\uD32C\uD330\uD338\uD339\uD33B\uD33C\uD33D\uD344\uD345\uD37C\uD37D\uD380\uD384\uD38C\uD38D\uD38F\uD390\uD391\uD398\uD399\uD39C\uD3A0\uD3A8\uD3A9\uD3AB\uD3AD\uD3B4\uD3B8\uD3BC\uD3C4\uD3C5\uD3C8\uD3C9\uD3D0\uD3D8\uD3E1\uD3E3\uD3EC\uD3ED\uD3F0\uD3F4\uD3FC\uD3FD\uD3FF\uD401"],["c7a1","\uD408\uD41D\uD440\uD444\uD45C\uD460\uD464\uD46D\uD46F\uD478\uD479\uD47C\uD47F\uD480\uD482\uD488\uD489\uD48B\uD48D\uD494\uD4A9\uD4CC\uD4D0\uD4D4\uD4DC\uD4DF\uD4E8\uD4EC\uD4F0\uD4F8\uD4FB\uD4FD\uD504\uD508\uD50C\uD514\uD515\uD517\uD53C\uD53D\uD540\uD544\uD54C\uD54D\uD54F\uD551\uD558\uD559\uD55C\uD560\uD565\uD568\uD569\uD56B\uD56D\uD574\uD575\uD578\uD57C\uD584\uD585\uD587\uD588\uD589\uD590\uD5A5\uD5C8\uD5C9\uD5CC\uD5D0\uD5D2\uD5D8\uD5D9\uD5DB\uD5DD\uD5E4\uD5E5\uD5E8\uD5EC\uD5F4\uD5F5\uD5F7\uD5F9\uD600\uD601\uD604\uD608\uD610\uD611\uD613\uD614\uD615\uD61C\uD620"],["c8a1","\uD624\uD62D\uD638\uD639\uD63C\uD640\uD645\uD648\uD649\uD64B\uD64D\uD651\uD654\uD655\uD658\uD65C\uD667\uD669\uD670\uD671\uD674\uD683\uD685\uD68C\uD68D\uD690\uD694\uD69D\uD69F\uD6A1\uD6A8\uD6AC\uD6B0\uD6B9\uD6BB\uD6C4\uD6C5\uD6C8\uD6CC\uD6D1\uD6D4\uD6D7\uD6D9\uD6E0\uD6E4\uD6E8\uD6F0\uD6F5\uD6FC\uD6FD\uD700\uD704\uD711\uD718\uD719\uD71C\uD720\uD728\uD729\uD72B\uD72D\uD734\uD735\uD738\uD73C\uD744\uD747\uD749\uD750\uD751\uD754\uD756\uD757\uD758\uD759\uD760\uD761\uD763\uD765\uD769\uD76C\uD770\uD774\uD77C\uD77D\uD781\uD788\uD789\uD78C\uD790\uD798\uD799\uD79B\uD79D"],["caa1","\u4F3D\u4F73\u5047\u50F9\u52A0\u53EF\u5475\u54E5\u5609\u5AC1\u5BB6\u6687\u67B6\u67B7\u67EF\u6B4C\u73C2\u75C2\u7A3C\u82DB\u8304\u8857\u8888\u8A36\u8CC8\u8DCF\u8EFB\u8FE6\u99D5\u523B\u5374\u5404\u606A\u6164\u6BBC\u73CF\u811A\u89BA\u89D2\u95A3\u4F83\u520A\u58BE\u5978\u59E6\u5E72\u5E79\u61C7\u63C0\u6746\u67EC\u687F\u6F97\u764E\u770B\u78F5\u7A08\u7AFF\u7C21\u809D\u826E\u8271\u8AEB\u9593\u4E6B\u559D\u66F7\u6E34\u78A3\u7AED\u845B\u8910\u874E\u97A8\u52D8\u574E\u582A\u5D4C\u611F\u61BE\u6221\u6562\u67D1\u6A44\u6E1B\u7518\u75B3\u76E3\u77B0\u7D3A\u90AF\u9451\u9452\u9F95"],["cba1","\u5323\u5CAC\u7532\u80DB\u9240\u9598\u525B\u5808\u59DC\u5CA1\u5D17\u5EB7\u5F3A\u5F4A\u6177\u6C5F\u757A\u7586\u7CE0\u7D73\u7DB1\u7F8C\u8154\u8221\u8591\u8941\u8B1B\u92FC\u964D\u9C47\u4ECB\u4EF7\u500B\u51F1\u584F\u6137\u613E\u6168\u6539\u69EA\u6F11\u75A5\u7686\u76D6\u7B87\u82A5\u84CB\uF900\u93A7\u958B\u5580\u5BA2\u5751\uF901\u7CB3\u7FB9\u91B5\u5028\u53BB\u5C45\u5DE8\u62D2\u636E\u64DA\u64E7\u6E20\u70AC\u795B\u8DDD\u8E1E\uF902\u907D\u9245\u92F8\u4E7E\u4EF6\u5065\u5DFE\u5EFA\u6106\u6957\u8171\u8654\u8E47\u9375\u9A2B\u4E5E\u5091\u6770\u6840\u5109\u528D\u5292\u6AA2"],["cca1","\u77BC\u9210\u9ED4\u52AB\u602F\u8FF2\u5048\u61A9\u63ED\u64CA\u683C\u6A84\u6FC0\u8188\u89A1\u9694\u5805\u727D\u72AC\u7504\u7D79\u7E6D\u80A9\u898B\u8B74\u9063\u9D51\u6289\u6C7A\u6F54\u7D50\u7F3A\u8A23\u517C\u614A\u7B9D\u8B19\u9257\u938C\u4EAC\u4FD3\u501E\u50BE\u5106\u52C1\u52CD\u537F\u5770\u5883\u5E9A\u5F91\u6176\u61AC\u64CE\u656C\u666F\u66BB\u66F4\u6897\u6D87\u7085\u70F1\u749F\u74A5\u74CA\u75D9\u786C\u78EC\u7ADF\u7AF6\u7D45\u7D93\u8015\u803F\u811B\u8396\u8B66\u8F15\u9015\u93E1\u9803\u9838\u9A5A\u9BE8\u4FC2\u5553\u583A\u5951\u5B63\u5C46\u60B8\u6212\u6842\u68B0"],["cda1","\u68E8\u6EAA\u754C\u7678\u78CE\u7A3D\u7CFB\u7E6B\u7E7C\u8A08\u8AA1\u8C3F\u968E\u9DC4\u53E4\u53E9\u544A\u5471\u56FA\u59D1\u5B64\u5C3B\u5EAB\u62F7\u6537\u6545\u6572\u66A0\u67AF\u69C1\u6CBD\u75FC\u7690\u777E\u7A3F\u7F94\u8003\u80A1\u818F\u82E6\u82FD\u83F0\u85C1\u8831\u88B4\u8AA5\uF903\u8F9C\u932E\u96C7\u9867\u9AD8\u9F13\u54ED\u659B\u66F2\u688F\u7A40\u8C37\u9D60\u56F0\u5764\u5D11\u6606\u68B1\u68CD\u6EFE\u7428\u889E\u9BE4\u6C68\uF904\u9AA8\u4F9B\u516C\u5171\u529F\u5B54\u5DE5\u6050\u606D\u62F1\u63A7\u653B\u73D9\u7A7A\u86A3\u8CA2\u978F\u4E32\u5BE1\u6208\u679C\u74DC"],["cea1","\u79D1\u83D3\u8A87\u8AB2\u8DE8\u904E\u934B\u9846\u5ED3\u69E8\u85FF\u90ED\uF905\u51A0\u5B98\u5BEC\u6163\u68FA\u6B3E\u704C\u742F\u74D8\u7BA1\u7F50\u83C5\u89C0\u8CAB\u95DC\u9928\u522E\u605D\u62EC\u9002\u4F8A\u5149\u5321\u58D9\u5EE3\u66E0\u6D38\u709A\u72C2\u73D6\u7B50\u80F1\u945B\u5366\u639B\u7F6B\u4E56\u5080\u584A\u58DE\u602A\u6127\u62D0\u69D0\u9B41\u5B8F\u7D18\u80B1\u8F5F\u4EA4\u50D1\u54AC\u55AC\u5B0C\u5DA0\u5DE7\u652A\u654E\u6821\u6A4B\u72E1\u768E\u77EF\u7D5E\u7FF9\u81A0\u854E\u86DF\u8F03\u8F4E\u90CA\u9903\u9A55\u9BAB\u4E18\u4E45\u4E5D\u4EC7\u4FF1\u5177\u52FE"],["cfa1","\u5340\u53E3\u53E5\u548E\u5614\u5775\u57A2\u5BC7\u5D87\u5ED0\u61FC\u62D8\u6551\u67B8\u67E9\u69CB\u6B50\u6BC6\u6BEC\u6C42\u6E9D\u7078\u72D7\u7396\u7403\u77BF\u77E9\u7A76\u7D7F\u8009\u81FC\u8205\u820A\u82DF\u8862\u8B33\u8CFC\u8EC0\u9011\u90B1\u9264\u92B6\u99D2\u9A45\u9CE9\u9DD7\u9F9C\u570B\u5C40\u83CA\u97A0\u97AB\u9EB4\u541B\u7A98\u7FA4\u88D9\u8ECD\u90E1\u5800\u5C48\u6398\u7A9F\u5BAE\u5F13\u7A79\u7AAE\u828E\u8EAC\u5026\u5238\u52F8\u5377\u5708\u62F3\u6372\u6B0A\u6DC3\u7737\u53A5\u7357\u8568\u8E76\u95D5\u673A\u6AC3\u6F70\u8A6D\u8ECC\u994B\uF906\u6677\u6B78\u8CB4"],["d0a1","\u9B3C\uF907\u53EB\u572D\u594E\u63C6\u69FB\u73EA\u7845\u7ABA\u7AC5\u7CFE\u8475\u898F\u8D73\u9035\u95A8\u52FB\u5747\u7547\u7B60\u83CC\u921E\uF908\u6A58\u514B\u524B\u5287\u621F\u68D8\u6975\u9699\u50C5\u52A4\u52E4\u61C3\u65A4\u6839\u69FF\u747E\u7B4B\u82B9\u83EB\u89B2\u8B39\u8FD1\u9949\uF909\u4ECA\u5997\u64D2\u6611\u6A8E\u7434\u7981\u79BD\u82A9\u887E\u887F\u895F\uF90A\u9326\u4F0B\u53CA\u6025\u6271\u6C72\u7D1A\u7D66\u4E98\u5162\u77DC\u80AF\u4F01\u4F0E\u5176\u5180\u55DC\u5668\u573B\u57FA\u57FC\u5914\u5947\u5993\u5BC4\u5C90\u5D0E\u5DF1\u5E7E\u5FCC\u6280\u65D7\u65E3"],["d1a1","\u671E\u671F\u675E\u68CB\u68C4\u6A5F\u6B3A\u6C23\u6C7D\u6C82\u6DC7\u7398\u7426\u742A\u7482\u74A3\u7578\u757F\u7881\u78EF\u7941\u7947\u7948\u797A\u7B95\u7D00\u7DBA\u7F88\u8006\u802D\u808C\u8A18\u8B4F\u8C48\u8D77\u9321\u9324\u98E2\u9951\u9A0E\u9A0F\u9A65\u9E92\u7DCA\u4F76\u5409\u62EE\u6854\u91D1\u55AB\u513A\uF90B\uF90C\u5A1C\u61E6\uF90D\u62CF\u62FF\uF90E",5,"\u90A3\uF914",4,"\u8AFE\uF919\uF91A\uF91B\uF91C\u6696\uF91D\u7156\uF91E\uF91F\u96E3\uF920\u634F\u637A\u5357\uF921\u678F\u6960\u6E73\uF922\u7537\uF923\uF924\uF925"],["d2a1","\u7D0D\uF926\uF927\u8872\u56CA\u5A18\uF928",4,"\u4E43\uF92D\u5167\u5948\u67F0\u8010\uF92E\u5973\u5E74\u649A\u79CA\u5FF5\u606C\u62C8\u637B\u5BE7\u5BD7\u52AA\uF92F\u5974\u5F29\u6012\uF930\uF931\uF932\u7459\uF933",5,"\u99D1\uF939",10,"\u6FC3\uF944\uF945\u81BF\u8FB2\u60F1\uF946\uF947\u8166\uF948\uF949\u5C3F\uF94A",7,"\u5AE9\u8A25\u677B\u7D10\uF952",5,"\u80FD\uF958\uF959\u5C3C\u6CE5\u533F\u6EBA\u591A\u8336"],["d3a1","\u4E39\u4EB6\u4F46\u55AE\u5718\u58C7\u5F56\u65B7\u65E6\u6A80\u6BB5\u6E4D\u77ED\u7AEF\u7C1E\u7DDE\u86CB\u8892\u9132\u935B\u64BB\u6FBE\u737A\u75B8\u9054\u5556\u574D\u61BA\u64D4\u66C7\u6DE1\u6E5B\u6F6D\u6FB9\u75F0\u8043\u81BD\u8541\u8983\u8AC7\u8B5A\u931F\u6C93\u7553\u7B54\u8E0F\u905D\u5510\u5802\u5858\u5E62\u6207\u649E\u68E0\u7576\u7CD6\u87B3\u9EE8\u4EE3\u5788\u576E\u5927\u5C0D\u5CB1\u5E36\u5F85\u6234\u64E1\u73B3\u81FA\u888B\u8CB8\u968A\u9EDB\u5B85\u5FB7\u60B3\u5012\u5200\u5230\u5716\u5835\u5857\u5C0E\u5C60\u5CF6\u5D8B\u5EA6\u5F92\u60BC\u6311\u6389\u6417\u6843"],["d4a1","\u68F9\u6AC2\u6DD8\u6E21\u6ED4\u6FE4\u71FE\u76DC\u7779\u79B1\u7A3B\u8404\u89A9\u8CED\u8DF3\u8E48\u9003\u9014\u9053\u90FD\u934D\u9676\u97DC\u6BD2\u7006\u7258\u72A2\u7368\u7763\u79BF\u7BE4\u7E9B\u8B80\u58A9\u60C7\u6566\u65FD\u66BE\u6C8C\u711E\u71C9\u8C5A\u9813\u4E6D\u7A81\u4EDD\u51AC\u51CD\u52D5\u540C\u61A7\u6771\u6850\u68DF\u6D1E\u6F7C\u75BC\u77B3\u7AE5\u80F4\u8463\u9285\u515C\u6597\u675C\u6793\u75D8\u7AC7\u8373\uF95A\u8C46\u9017\u982D\u5C6F\u81C0\u829A\u9041\u906F\u920D\u5F97\u5D9D\u6A59\u71C8\u767B\u7B49\u85E4\u8B04\u9127\u9A30\u5587\u61F6\uF95B\u7669\u7F85"],["d5a1","\u863F\u87BA\u88F8\u908F\uF95C\u6D1B\u70D9\u73DE\u7D61\u843D\uF95D\u916A\u99F1\uF95E\u4E82\u5375\u6B04\u6B12\u703E\u721B\u862D\u9E1E\u524C\u8FA3\u5D50\u64E5\u652C\u6B16\u6FEB\u7C43\u7E9C\u85CD\u8964\u89BD\u62C9\u81D8\u881F\u5ECA\u6717\u6D6A\u72FC\u7405\u746F\u8782\u90DE\u4F86\u5D0D\u5FA0\u840A\u51B7\u63A0\u7565\u4EAE\u5006\u5169\u51C9\u6881\u6A11\u7CAE\u7CB1\u7CE7\u826F\u8AD2\u8F1B\u91CF\u4FB6\u5137\u52F5\u5442\u5EEC\u616E\u623E\u65C5\u6ADA\u6FFE\u792A\u85DC\u8823\u95AD\u9A62\u9A6A\u9E97\u9ECE\u529B\u66C6\u6B77\u701D\u792B\u8F62\u9742\u6190\u6200\u6523\u6F23"],["d6a1","\u7149\u7489\u7DF4\u806F\u84EE\u8F26\u9023\u934A\u51BD\u5217\u52A3\u6D0C\u70C8\u88C2\u5EC9\u6582\u6BAE\u6FC2\u7C3E\u7375\u4EE4\u4F36\u56F9\uF95F\u5CBA\u5DBA\u601C\u73B2\u7B2D\u7F9A\u7FCE\u8046\u901E\u9234\u96F6\u9748\u9818\u9F61\u4F8B\u6FA7\u79AE\u91B4\u96B7\u52DE\uF960\u6488\u64C4\u6AD3\u6F5E\u7018\u7210\u76E7\u8001\u8606\u865C\u8DEF\u8F05\u9732\u9B6F\u9DFA\u9E75\u788C\u797F\u7DA0\u83C9\u9304\u9E7F\u9E93\u8AD6\u58DF\u5F04\u6727\u7027\u74CF\u7C60\u807E\u5121\u7028\u7262\u78CA\u8CC2\u8CDA\u8CF4\u96F7\u4E86\u50DA\u5BEE\u5ED6\u6599\u71CE\u7642\u77AD\u804A\u84FC"],["d7a1","\u907C\u9B27\u9F8D\u58D8\u5A41\u5C62\u6A13\u6DDA\u6F0F\u763B\u7D2F\u7E37\u851E\u8938\u93E4\u964B\u5289\u65D2\u67F3\u69B4\u6D41\u6E9C\u700F\u7409\u7460\u7559\u7624\u786B\u8B2C\u985E\u516D\u622E\u9678\u4F96\u502B\u5D19\u6DEA\u7DB8\u8F2A\u5F8B\u6144\u6817\uF961\u9686\u52D2\u808B\u51DC\u51CC\u695E\u7A1C\u7DBE\u83F1\u9675\u4FDA\u5229\u5398\u540F\u550E\u5C65\u60A7\u674E\u68A8\u6D6C\u7281\u72F8\u7406\u7483\uF962\u75E2\u7C6C\u7F79\u7FB8\u8389\u88CF\u88E1\u91CC\u91D0\u96E2\u9BC9\u541D\u6F7E\u71D0\u7498\u85FA\u8EAA\u96A3\u9C57\u9E9F\u6797\u6DCB\u7433\u81E8\u9716\u782C"],["d8a1","\u7ACB\u7B20\u7C92\u6469\u746A\u75F2\u78BC\u78E8\u99AC\u9B54\u9EBB\u5BDE\u5E55\u6F20\u819C\u83AB\u9088\u4E07\u534D\u5A29\u5DD2\u5F4E\u6162\u633D\u6669\u66FC\u6EFF\u6F2B\u7063\u779E\u842C\u8513\u883B\u8F13\u9945\u9C3B\u551C\u62B9\u672B\u6CAB\u8309\u896A\u977A\u4EA1\u5984\u5FD8\u5FD9\u671B\u7DB2\u7F54\u8292\u832B\u83BD\u8F1E\u9099\u57CB\u59B9\u5A92\u5BD0\u6627\u679A\u6885\u6BCF\u7164\u7F75\u8CB7\u8CE3\u9081\u9B45\u8108\u8C8A\u964C\u9A40\u9EA5\u5B5F\u6C13\u731B\u76F2\u76DF\u840C\u51AA\u8993\u514D\u5195\u52C9\u68C9\u6C94\u7704\u7720\u7DBF\u7DEC\u9762\u9EB5\u6EC5"],["d9a1","\u8511\u51A5\u540D\u547D\u660E\u669D\u6927\u6E9F\u76BF\u7791\u8317\u84C2\u879F\u9169\u9298\u9CF4\u8882\u4FAE\u5192\u52DF\u59C6\u5E3D\u6155\u6478\u6479\u66AE\u67D0\u6A21\u6BCD\u6BDB\u725F\u7261\u7441\u7738\u77DB\u8017\u82BC\u8305\u8B00\u8B28\u8C8C\u6728\u6C90\u7267\u76EE\u7766\u7A46\u9DA9\u6B7F\u6C92\u5922\u6726\u8499\u536F\u5893\u5999\u5EDF\u63CF\u6634\u6773\u6E3A\u732B\u7AD7\u82D7\u9328\u52D9\u5DEB\u61AE\u61CB\u620A\u62C7\u64AB\u65E0\u6959\u6B66\u6BCB\u7121\u73F7\u755D\u7E46\u821E\u8302\u856A\u8AA3\u8CBF\u9727\u9D61\u58A8\u9ED8\u5011\u520E\u543B\u554F\u6587"],["daa1","\u6C76\u7D0A\u7D0B\u805E\u868A\u9580\u96EF\u52FF\u6C95\u7269\u5473\u5A9A\u5C3E\u5D4B\u5F4C\u5FAE\u672A\u68B6\u6963\u6E3C\u6E44\u7709\u7C73\u7F8E\u8587\u8B0E\u8FF7\u9761\u9EF4\u5CB7\u60B6\u610D\u61AB\u654F\u65FB\u65FC\u6C11\u6CEF\u739F\u73C9\u7DE1\u9594\u5BC6\u871C\u8B10\u525D\u535A\u62CD\u640F\u64B2\u6734\u6A38\u6CCA\u73C0\u749E\u7B94\u7C95\u7E1B\u818A\u8236\u8584\u8FEB\u96F9\u99C1\u4F34\u534A\u53CD\u53DB\u62CC\u642C\u6500\u6591\u69C3\u6CEE\u6F58\u73ED\u7554\u7622\u76E4\u76FC\u78D0\u78FB\u792C\u7D46\u822C\u87E0\u8FD4\u9812\u98EF\u52C3\u62D4\u64A5\u6E24\u6F51"],["dba1","\u767C\u8DCB\u91B1\u9262\u9AEE\u9B43\u5023\u508D\u574A\u59A8\u5C28\u5E47\u5F77\u623F\u653E\u65B9\u65C1\u6609\u678B\u699C\u6EC2\u78C5\u7D21\u80AA\u8180\u822B\u82B3\u84A1\u868C\u8A2A\u8B17\u90A6\u9632\u9F90\u500D\u4FF3\uF963\u57F9\u5F98\u62DC\u6392\u676F\u6E43\u7119\u76C3\u80CC\u80DA\u88F4\u88F5\u8919\u8CE0\u8F29\u914D\u966A\u4F2F\u4F70\u5E1B\u67CF\u6822\u767D\u767E\u9B44\u5E61\u6A0A\u7169\u71D4\u756A\uF964\u7E41\u8543\u85E9\u98DC\u4F10\u7B4F\u7F70\u95A5\u51E1\u5E06\u68B5\u6C3E\u6C4E\u6CDB\u72AF\u7BC4\u8303\u6CD5\u743A\u50FB\u5288\u58C1\u64D8\u6A97\u74A7\u7656"],["dca1","\u78A7\u8617\u95E2\u9739\uF965\u535E\u5F01\u8B8A\u8FA8\u8FAF\u908A\u5225\u77A5\u9C49\u9F08\u4E19\u5002\u5175\u5C5B\u5E77\u661E\u663A\u67C4\u68C5\u70B3\u7501\u75C5\u79C9\u7ADD\u8F27\u9920\u9A08\u4FDD\u5821\u5831\u5BF6\u666E\u6B65\u6D11\u6E7A\u6F7D\u73E4\u752B\u83E9\u88DC\u8913\u8B5C\u8F14\u4F0F\u50D5\u5310\u535C\u5B93\u5FA9\u670D\u798F\u8179\u832F\u8514\u8907\u8986\u8F39\u8F3B\u99A5\u9C12\u672C\u4E76\u4FF8\u5949\u5C01\u5CEF\u5CF0\u6367\u68D2\u70FD\u71A2\u742B\u7E2B\u84EC\u8702\u9022\u92D2\u9CF3\u4E0D\u4ED8\u4FEF\u5085\u5256\u526F\u5426\u5490\u57E0\u592B\u5A66"],["dda1","\u5B5A\u5B75\u5BCC\u5E9C\uF966\u6276\u6577\u65A7\u6D6E\u6EA5\u7236\u7B26\u7C3F\u7F36\u8150\u8151\u819A\u8240\u8299\u83A9\u8A03\u8CA0\u8CE6\u8CFB\u8D74\u8DBA\u90E8\u91DC\u961C\u9644\u99D9\u9CE7\u5317\u5206\u5429\u5674\u58B3\u5954\u596E\u5FFF\u61A4\u626E\u6610\u6C7E\u711A\u76C6\u7C89\u7CDE\u7D1B\u82AC\u8CC1\u96F0\uF967\u4F5B\u5F17\u5F7F\u62C2\u5D29\u670B\u68DA\u787C\u7E43\u9D6C\u4E15\u5099\u5315\u532A\u5351\u5983\u5A62\u5E87\u60B2\u618A\u6249\u6279\u6590\u6787\u69A7\u6BD4\u6BD6\u6BD7\u6BD8\u6CB8\uF968\u7435\u75FA\u7812\u7891\u79D5\u79D8\u7C83\u7DCB\u7FE1\u80A5"],["dea1","\u813E\u81C2\u83F2\u871A\u88E8\u8AB9\u8B6C\u8CBB\u9119\u975E\u98DB\u9F3B\u56AC\u5B2A\u5F6C\u658C\u6AB3\u6BAF\u6D5C\u6FF1\u7015\u725D\u73AD\u8CA7\u8CD3\u983B\u6191\u6C37\u8058\u9A01\u4E4D\u4E8B\u4E9B\u4ED5\u4F3A\u4F3C\u4F7F\u4FDF\u50FF\u53F2\u53F8\u5506\u55E3\u56DB\u58EB\u5962\u5A11\u5BEB\u5BFA\u5C04\u5DF3\u5E2B\u5F99\u601D\u6368\u659C\u65AF\u67F6\u67FB\u68AD\u6B7B\u6C99\u6CD7\u6E23\u7009\u7345\u7802\u793E\u7940\u7960\u79C1\u7BE9\u7D17\u7D72\u8086\u820D\u838E\u84D1\u86C7\u88DF\u8A50\u8A5E\u8B1D\u8CDC\u8D66\u8FAD\u90AA\u98FC\u99DF\u9E9D\u524A\uF969\u6714\uF96A"],["dfa1","\u5098\u522A\u5C71\u6563\u6C55\u73CA\u7523\u759D\u7B97\u849C\u9178\u9730\u4E77\u6492\u6BBA\u715E\u85A9\u4E09\uF96B\u6749\u68EE\u6E17\u829F\u8518\u886B\u63F7\u6F81\u9212\u98AF\u4E0A\u50B7\u50CF\u511F\u5546\u55AA\u5617\u5B40\u5C19\u5CE0\u5E38\u5E8A\u5EA0\u5EC2\u60F3\u6851\u6A61\u6E58\u723D\u7240\u72C0\u76F8\u7965\u7BB1\u7FD4\u88F3\u89F4\u8A73\u8C61\u8CDE\u971C\u585E\u74BD\u8CFD\u55C7\uF96C\u7A61\u7D22\u8272\u7272\u751F\u7525\uF96D\u7B19\u5885\u58FB\u5DBC\u5E8F\u5EB6\u5F90\u6055\u6292\u637F\u654D\u6691\u66D9\u66F8\u6816\u68F2\u7280\u745E\u7B6E\u7D6E\u7DD6\u7F72"],["e0a1","\u80E5\u8212\u85AF\u897F\u8A93\u901D\u92E4\u9ECD\u9F20\u5915\u596D\u5E2D\u60DC\u6614\u6673\u6790\u6C50\u6DC5\u6F5F\u77F3\u78A9\u84C6\u91CB\u932B\u4ED9\u50CA\u5148\u5584\u5B0B\u5BA3\u6247\u657E\u65CB\u6E32\u717D\u7401\u7444\u7487\u74BF\u766C\u79AA\u7DDA\u7E55\u7FA8\u817A\u81B3\u8239\u861A\u87EC\u8A75\u8DE3\u9078\u9291\u9425\u994D\u9BAE\u5368\u5C51\u6954\u6CC4\u6D29\u6E2B\u820C\u859B\u893B\u8A2D\u8AAA\u96EA\u9F67\u5261\u66B9\u6BB2\u7E96\u87FE\u8D0D\u9583\u965D\u651D\u6D89\u71EE\uF96E\u57CE\u59D3\u5BAC\u6027\u60FA\u6210\u661F\u665F\u7329\u73F9\u76DB\u7701\u7B6C"],["e1a1","\u8056\u8072\u8165\u8AA0\u9192\u4E16\u52E2\u6B72\u6D17\u7A05\u7B39\u7D30\uF96F\u8CB0\u53EC\u562F\u5851\u5BB5\u5C0F\u5C11\u5DE2\u6240\u6383\u6414\u662D\u68B3\u6CBC\u6D88\u6EAF\u701F\u70A4\u71D2\u7526\u758F\u758E\u7619\u7B11\u7BE0\u7C2B\u7D20\u7D39\u852C\u856D\u8607\u8A34\u900D\u9061\u90B5\u92B7\u97F6\u9A37\u4FD7\u5C6C\u675F\u6D91\u7C9F\u7E8C\u8B16\u8D16\u901F\u5B6B\u5DFD\u640D\u84C0\u905C\u98E1\u7387\u5B8B\u609A\u677E\u6DDE\u8A1F\u8AA6\u9001\u980C\u5237\uF970\u7051\u788E\u9396\u8870\u91D7\u4FEE\u53D7\u55FD\u56DA\u5782\u58FD\u5AC2\u5B88\u5CAB\u5CC0\u5E25\u6101"],["e2a1","\u620D\u624B\u6388\u641C\u6536\u6578\u6A39\u6B8A\u6C34\u6D19\u6F31\u71E7\u72E9\u7378\u7407\u74B2\u7626\u7761\u79C0\u7A57\u7AEA\u7CB9\u7D8F\u7DAC\u7E61\u7F9E\u8129\u8331\u8490\u84DA\u85EA\u8896\u8AB0\u8B90\u8F38\u9042\u9083\u916C\u9296\u92B9\u968B\u96A7\u96A8\u96D6\u9700\u9808\u9996\u9AD3\u9B1A\u53D4\u587E\u5919\u5B70\u5BBF\u6DD1\u6F5A\u719F\u7421\u74B9\u8085\u83FD\u5DE1\u5F87\u5FAA\u6042\u65EC\u6812\u696F\u6A53\u6B89\u6D35\u6DF3\u73E3\u76FE\u77AC\u7B4D\u7D14\u8123\u821C\u8340\u84F4\u8563\u8A62\u8AC4\u9187\u931E\u9806\u99B4\u620C\u8853\u8FF0\u9265\u5D07\u5D27"],["e3a1","\u5D69\u745F\u819D\u8768\u6FD5\u62FE\u7FD2\u8936\u8972\u4E1E\u4E58\u50E7\u52DD\u5347\u627F\u6607\u7E69\u8805\u965E\u4F8D\u5319\u5636\u59CB\u5AA4\u5C38\u5C4E\u5C4D\u5E02\u5F11\u6043\u65BD\u662F\u6642\u67BE\u67F4\u731C\u77E2\u793A\u7FC5\u8494\u84CD\u8996\u8A66\u8A69\u8AE1\u8C55\u8C7A\u57F4\u5BD4\u5F0F\u606F\u62ED\u690D\u6B96\u6E5C\u7184\u7BD2\u8755\u8B58\u8EFE\u98DF\u98FE\u4F38\u4F81\u4FE1\u547B\u5A20\u5BB8\u613C\u65B0\u6668\u71FC\u7533\u795E\u7D33\u814E\u81E3\u8398\u85AA\u85CE\u8703\u8A0A\u8EAB\u8F9B\uF971\u8FC5\u5931\u5BA4\u5BE6\u6089\u5BE9\u5C0B\u5FC3\u6C81"],["e4a1","\uF972\u6DF1\u700B\u751A\u82AF\u8AF6\u4EC0\u5341\uF973\u96D9\u6C0F\u4E9E\u4FC4\u5152\u555E\u5A25\u5CE8\u6211\u7259\u82BD\u83AA\u86FE\u8859\u8A1D\u963F\u96C5\u9913\u9D09\u9D5D\u580A\u5CB3\u5DBD\u5E44\u60E1\u6115\u63E1\u6A02\u6E25\u9102\u9354\u984E\u9C10\u9F77\u5B89\u5CB8\u6309\u664F\u6848\u773C\u96C1\u978D\u9854\u9B9F\u65A1\u8B01\u8ECB\u95BC\u5535\u5CA9\u5DD6\u5EB5\u6697\u764C\u83F4\u95C7\u58D3\u62BC\u72CE\u9D28\u4EF0\u592E\u600F\u663B\u6B83\u79E7\u9D26\u5393\u54C0\u57C3\u5D16\u611B\u66D6\u6DAF\u788D\u827E\u9698\u9744\u5384\u627C\u6396\u6DB2\u7E0A\u814B\u984D"],["e5a1","\u6AFB\u7F4C\u9DAF\u9E1A\u4E5F\u503B\u51B6\u591C\u60F9\u63F6\u6930\u723A\u8036\uF974\u91CE\u5F31\uF975\uF976\u7D04\u82E5\u846F\u84BB\u85E5\u8E8D\uF977\u4F6F\uF978\uF979\u58E4\u5B43\u6059\u63DA\u6518\u656D\u6698\uF97A\u694A\u6A23\u6D0B\u7001\u716C\u75D2\u760D\u79B3\u7A70\uF97B\u7F8A\uF97C\u8944\uF97D\u8B93\u91C0\u967D\uF97E\u990A\u5704\u5FA1\u65BC\u6F01\u7600\u79A6\u8A9E\u99AD\u9B5A\u9F6C\u5104\u61B6\u6291\u6A8D\u81C6\u5043\u5830\u5F66\u7109\u8A00\u8AFA\u5B7C\u8616\u4FFA\u513C\u56B4\u5944\u63A9\u6DF9\u5DAA\u696D\u5186\u4E88\u4F59\uF97F\uF980\uF981\u5982\uF982"],["e6a1","\uF983\u6B5F\u6C5D\uF984\u74B5\u7916\uF985\u8207\u8245\u8339\u8F3F\u8F5D\uF986\u9918\uF987\uF988\uF989\u4EA6\uF98A\u57DF\u5F79\u6613\uF98B\uF98C\u75AB\u7E79\u8B6F\uF98D\u9006\u9A5B\u56A5\u5827\u59F8\u5A1F\u5BB4\uF98E\u5EF6\uF98F\uF990\u6350\u633B\uF991\u693D\u6C87\u6CBF\u6D8E\u6D93\u6DF5\u6F14\uF992\u70DF\u7136\u7159\uF993\u71C3\u71D5\uF994\u784F\u786F\uF995\u7B75\u7DE3\uF996\u7E2F\uF997\u884D\u8EDF\uF998\uF999\uF99A\u925B\uF99B\u9CF6\uF99C\uF99D\uF99E\u6085\u6D85\uF99F\u71B1\uF9A0\uF9A1\u95B1\u53AD\uF9A2\uF9A3\uF9A4\u67D3\uF9A5\u708E\u7130\u7430\u8276\u82D2"],["e7a1","\uF9A6\u95BB\u9AE5\u9E7D\u66C4\uF9A7\u71C1\u8449\uF9A8\uF9A9\u584B\uF9AA\uF9AB\u5DB8\u5F71\uF9AC\u6620\u668E\u6979\u69AE\u6C38\u6CF3\u6E36\u6F41\u6FDA\u701B\u702F\u7150\u71DF\u7370\uF9AD\u745B\uF9AE\u74D4\u76C8\u7A4E\u7E93\uF9AF\uF9B0\u82F1\u8A60\u8FCE\uF9B1\u9348\uF9B2\u9719\uF9B3\uF9B4\u4E42\u502A\uF9B5\u5208\u53E1\u66F3\u6C6D\u6FCA\u730A\u777F\u7A62\u82AE\u85DD\u8602\uF9B6\u88D4\u8A63\u8B7D\u8C6B\uF9B7\u92B3\uF9B8\u9713\u9810\u4E94\u4F0D\u4FC9\u50B2\u5348\u543E\u5433\u55DA\u5862\u58BA\u5967\u5A1B\u5BE4\u609F\uF9B9\u61CA\u6556\u65FF\u6664\u68A7\u6C5A\u6FB3"],["e8a1","\u70CF\u71AC\u7352\u7B7D\u8708\u8AA4\u9C32\u9F07\u5C4B\u6C83\u7344\u7389\u923A\u6EAB\u7465\u761F\u7A69\u7E15\u860A\u5140\u58C5\u64C1\u74EE\u7515\u7670\u7FC1\u9095\u96CD\u9954\u6E26\u74E6\u7AA9\u7AAA\u81E5\u86D9\u8778\u8A1B\u5A49\u5B8C\u5B9B\u68A1\u6900\u6D63\u73A9\u7413\u742C\u7897\u7DE9\u7FEB\u8118\u8155\u839E\u8C4C\u962E\u9811\u66F0\u5F80\u65FA\u6789\u6C6A\u738B\u502D\u5A03\u6B6A\u77EE\u5916\u5D6C\u5DCD\u7325\u754F\uF9BA\uF9BB\u50E5\u51F9\u582F\u592D\u5996\u59DA\u5BE5\uF9BC\uF9BD\u5DA2\u62D7\u6416\u6493\u64FE\uF9BE\u66DC\uF9BF\u6A48\uF9C0\u71FF\u7464\uF9C1"],["e9a1","\u7A88\u7AAF\u7E47\u7E5E\u8000\u8170\uF9C2\u87EF\u8981\u8B20\u9059\uF9C3\u9080\u9952\u617E\u6B32\u6D74\u7E1F\u8925\u8FB1\u4FD1\u50AD\u5197\u52C7\u57C7\u5889\u5BB9\u5EB8\u6142\u6995\u6D8C\u6E67\u6EB6\u7194\u7462\u7528\u752C\u8073\u8338\u84C9\u8E0A\u9394\u93DE\uF9C4\u4E8E\u4F51\u5076\u512A\u53C8\u53CB\u53F3\u5B87\u5BD3\u5C24\u611A\u6182\u65F4\u725B\u7397\u7440\u76C2\u7950\u7991\u79B9\u7D06\u7FBD\u828B\u85D5\u865E\u8FC2\u9047\u90F5\u91EA\u9685\u96E8\u96E9\u52D6\u5F67\u65ED\u6631\u682F\u715C\u7A36\u90C1\u980A\u4E91\uF9C5\u6A52\u6B9E\u6F90\u7189\u8018\u82B8\u8553"],["eaa1","\u904B\u9695\u96F2\u97FB\u851A\u9B31\u4E90\u718A\u96C4\u5143\u539F\u54E1\u5713\u5712\u57A3\u5A9B\u5AC4\u5BC3\u6028\u613F\u63F4\u6C85\u6D39\u6E72\u6E90\u7230\u733F\u7457\u82D1\u8881\u8F45\u9060\uF9C6\u9662\u9858\u9D1B\u6708\u8D8A\u925E\u4F4D\u5049\u50DE\u5371\u570D\u59D4\u5A01\u5C09\u6170\u6690\u6E2D\u7232\u744B\u7DEF\u80C3\u840E\u8466\u853F\u875F\u885B\u8918\u8B02\u9055\u97CB\u9B4F\u4E73\u4F91\u5112\u516A\uF9C7\u552F\u55A9\u5B7A\u5BA5\u5E7C\u5E7D\u5EBE\u60A0\u60DF\u6108\u6109\u63C4\u6538\u6709\uF9C8\u67D4\u67DA\uF9C9\u6961\u6962\u6CB9\u6D27\uF9CA\u6E38\uF9CB"],["eba1","\u6FE1\u7336\u7337\uF9CC\u745C\u7531\uF9CD\u7652\uF9CE\uF9CF\u7DAD\u81FE\u8438\u88D5\u8A98\u8ADB\u8AED\u8E30\u8E42\u904A\u903E\u907A\u9149\u91C9\u936E\uF9D0\uF9D1\u5809\uF9D2\u6BD3\u8089\u80B2\uF9D3\uF9D4\u5141\u596B\u5C39\uF9D5\uF9D6\u6F64\u73A7\u80E4\u8D07\uF9D7\u9217\u958F\uF9D8\uF9D9\uF9DA\uF9DB\u807F\u620E\u701C\u7D68\u878D\uF9DC\u57A0\u6069\u6147\u6BB7\u8ABE\u9280\u96B1\u4E59\u541F\u6DEB\u852D\u9670\u97F3\u98EE\u63D6\u6CE3\u9091\u51DD\u61C9\u81BA\u9DF9\u4F9D\u501A\u5100\u5B9C\u610F\u61FF\u64EC\u6905\u6BC5\u7591\u77E3\u7FA9\u8264\u858F\u87FB\u8863\u8ABC"],["eca1","\u8B70\u91AB\u4E8C\u4EE5\u4F0A\uF9DD\uF9DE\u5937\u59E8\uF9DF\u5DF2\u5F1B\u5F5B\u6021\uF9E0\uF9E1\uF9E2\uF9E3\u723E\u73E5\uF9E4\u7570\u75CD\uF9E5\u79FB\uF9E6\u800C\u8033\u8084\u82E1\u8351\uF9E7\uF9E8\u8CBD\u8CB3\u9087\uF9E9\uF9EA\u98F4\u990C\uF9EB\uF9EC\u7037\u76CA\u7FCA\u7FCC\u7FFC\u8B1A\u4EBA\u4EC1\u5203\u5370\uF9ED\u54BD\u56E0\u59FB\u5BC5\u5F15\u5FCD\u6E6E\uF9EE\uF9EF\u7D6A\u8335\uF9F0\u8693\u8A8D\uF9F1\u976D\u9777\uF9F2\uF9F3\u4E00\u4F5A\u4F7E\u58F9\u65E5\u6EA2\u9038\u93B0\u99B9\u4EFB\u58EC\u598A\u59D9\u6041\uF9F4\uF9F5\u7A14\uF9F6\u834F\u8CC3\u5165\u5344"],["eda1","\uF9F7\uF9F8\uF9F9\u4ECD\u5269\u5B55\u82BF\u4ED4\u523A\u54A8\u59C9\u59FF\u5B50\u5B57\u5B5C\u6063\u6148\u6ECB\u7099\u716E\u7386\u74F7\u75B5\u78C1\u7D2B\u8005\u81EA\u8328\u8517\u85C9\u8AEE\u8CC7\u96CC\u4F5C\u52FA\u56BC\u65AB\u6628\u707C\u70B8\u7235\u7DBD\u828D\u914C\u96C0\u9D72\u5B71\u68E7\u6B98\u6F7A\u76DE\u5C91\u66AB\u6F5B\u7BB4\u7C2A\u8836\u96DC\u4E08\u4ED7\u5320\u5834\u58BB\u58EF\u596C\u5C07\u5E33\u5E84\u5F35\u638C\u66B2\u6756\u6A1F\u6AA3\u6B0C\u6F3F\u7246\uF9FA\u7350\u748B\u7AE0\u7CA7\u8178\u81DF\u81E7\u838A\u846C\u8523\u8594\u85CF\u88DD\u8D13\u91AC\u9577"],["eea1","\u969C\u518D\u54C9\u5728\u5BB0\u624D\u6750\u683D\u6893\u6E3D\u6ED3\u707D\u7E21\u88C1\u8CA1\u8F09\u9F4B\u9F4E\u722D\u7B8F\u8ACD\u931A\u4F47\u4F4E\u5132\u5480\u59D0\u5E95\u62B5\u6775\u696E\u6A17\u6CAE\u6E1A\u72D9\u732A\u75BD\u7BB8\u7D35\u82E7\u83F9\u8457\u85F7\u8A5B\u8CAF\u8E87\u9019\u90B8\u96CE\u9F5F\u52E3\u540A\u5AE1\u5BC2\u6458\u6575\u6EF4\u72C4\uF9FB\u7684\u7A4D\u7B1B\u7C4D\u7E3E\u7FDF\u837B\u8B2B\u8CCA\u8D64\u8DE1\u8E5F\u8FEA\u8FF9\u9069\u93D1\u4F43\u4F7A\u50B3\u5168\u5178\u524D\u526A\u5861\u587C\u5960\u5C08\u5C55\u5EDB\u609B\u6230\u6813\u6BBF\u6C08\u6FB1"],["efa1","\u714E\u7420\u7530\u7538\u7551\u7672\u7B4C\u7B8B\u7BAD\u7BC6\u7E8F\u8A6E\u8F3E\u8F49\u923F\u9293\u9322\u942B\u96FB\u985A\u986B\u991E\u5207\u622A\u6298\u6D59\u7664\u7ACA\u7BC0\u7D76\u5360\u5CBE\u5E97\u6F38\u70B9\u7C98\u9711\u9B8E\u9EDE\u63A5\u647A\u8776\u4E01\u4E95\u4EAD\u505C\u5075\u5448\u59C3\u5B9A\u5E40\u5EAD\u5EF7\u5F81\u60C5\u633A\u653F\u6574\u65CC\u6676\u6678\u67FE\u6968\u6A89\u6B63\u6C40\u6DC0\u6DE8\u6E1F\u6E5E\u701E\u70A1\u738E\u73FD\u753A\u775B\u7887\u798E\u7A0B\u7A7D\u7CBE\u7D8E\u8247\u8A02\u8AEA\u8C9E\u912D\u914A\u91D8\u9266\u92CC\u9320\u9706\u9756"],["f0a1","\u975C\u9802\u9F0E\u5236\u5291\u557C\u5824\u5E1D\u5F1F\u608C\u63D0\u68AF\u6FDF\u796D\u7B2C\u81CD\u85BA\u88FD\u8AF8\u8E44\u918D\u9664\u969B\u973D\u984C\u9F4A\u4FCE\u5146\u51CB\u52A9\u5632\u5F14\u5F6B\u63AA\u64CD\u65E9\u6641\u66FA\u66F9\u671D\u689D\u68D7\u69FD\u6F15\u6F6E\u7167\u71E5\u722A\u74AA\u773A\u7956\u795A\u79DF\u7A20\u7A95\u7C97\u7CDF\u7D44\u7E70\u8087\u85FB\u86A4\u8A54\u8ABF\u8D99\u8E81\u9020\u906D\u91E3\u963B\u96D5\u9CE5\u65CF\u7C07\u8DB3\u93C3\u5B58\u5C0A\u5352\u62D9\u731D\u5027\u5B97\u5F9E\u60B0\u616B\u68D5\u6DD9\u742E\u7A2E\u7D42\u7D9C\u7E31\u816B"],["f1a1","\u8E2A\u8E35\u937E\u9418\u4F50\u5750\u5DE6\u5EA7\u632B\u7F6A\u4E3B\u4F4F\u4F8F\u505A\u59DD\u80C4\u546A\u5468\u55FE\u594F\u5B99\u5DDE\u5EDA\u665D\u6731\u67F1\u682A\u6CE8\u6D32\u6E4A\u6F8D\u70B7\u73E0\u7587\u7C4C\u7D02\u7D2C\u7DA2\u821F\u86DB\u8A3B\u8A85\u8D70\u8E8A\u8F33\u9031\u914E\u9152\u9444\u99D0\u7AF9\u7CA5\u4FCA\u5101\u51C6\u57C8\u5BEF\u5CFB\u6659\u6A3D\u6D5A\u6E96\u6FEC\u710C\u756F\u7AE3\u8822\u9021\u9075\u96CB\u99FF\u8301\u4E2D\u4EF2\u8846\u91CD\u537D\u6ADB\u696B\u6C41\u847A\u589E\u618E\u66FE\u62EF\u70DD\u7511\u75C7\u7E52\u84B8\u8B49\u8D08\u4E4B\u53EA"],["f2a1","\u54AB\u5730\u5740\u5FD7\u6301\u6307\u646F\u652F\u65E8\u667A\u679D\u67B3\u6B62\u6C60\u6C9A\u6F2C\u77E5\u7825\u7949\u7957\u7D19\u80A2\u8102\u81F3\u829D\u82B7\u8718\u8A8C\uF9FC\u8D04\u8DBE\u9072\u76F4\u7A19\u7A37\u7E54\u8077\u5507\u55D4\u5875\u632F\u6422\u6649\u664B\u686D\u699B\u6B84\u6D25\u6EB1\u73CD\u7468\u74A1\u755B\u75B9\u76E1\u771E\u778B\u79E6\u7E09\u7E1D\u81FB\u852F\u8897\u8A3A\u8CD1\u8EEB\u8FB0\u9032\u93AD\u9663\u9673\u9707\u4F84\u53F1\u59EA\u5AC9\u5E19\u684E\u74C6\u75BE\u79E9\u7A92\u81A3\u86ED\u8CEA\u8DCC\u8FED\u659F\u6715\uF9FD\u57F7\u6F57\u7DDD\u8F2F"],["f3a1","\u93F6\u96C6\u5FB5\u61F2\u6F84\u4E14\u4F98\u501F\u53C9\u55DF\u5D6F\u5DEE\u6B21\u6B64\u78CB\u7B9A\uF9FE\u8E49\u8ECA\u906E\u6349\u643E\u7740\u7A84\u932F\u947F\u9F6A\u64B0\u6FAF\u71E6\u74A8\u74DA\u7AC4\u7C12\u7E82\u7CB2\u7E98\u8B9A\u8D0A\u947D\u9910\u994C\u5239\u5BDF\u64E6\u672D\u7D2E\u50ED\u53C3\u5879\u6158\u6159\u61FA\u65AC\u7AD9\u8B92\u8B96\u5009\u5021\u5275\u5531\u5A3C\u5EE0\u5F70\u6134\u655E\u660C\u6636\u66A2\u69CD\u6EC4\u6F32\u7316\u7621\u7A93\u8139\u8259\u83D6\u84BC\u50B5\u57F0\u5BC0\u5BE8\u5F69\u63A1\u7826\u7DB5\u83DC\u8521\u91C7\u91F5\u518A\u67F5\u7B56"],["f4a1","\u8CAC\u51C4\u59BB\u60BD\u8655\u501C\uF9FF\u5254\u5C3A\u617D\u621A\u62D3\u64F2\u65A5\u6ECC\u7620\u810A\u8E60\u965F\u96BB\u4EDF\u5343\u5598\u5929\u5DDD\u64C5\u6CC9\u6DFA\u7394\u7A7F\u821B\u85A6\u8CE4\u8E10\u9077\u91E7\u95E1\u9621\u97C6\u51F8\u54F2\u5586\u5FB9\u64A4\u6F88\u7DB4\u8F1F\u8F4D\u9435\u50C9\u5C16\u6CBE\u6DFB\u751B\u77BB\u7C3D\u7C64\u8A79\u8AC2\u581E\u59BE\u5E16\u6377\u7252\u758A\u776B\u8ADC\u8CBC\u8F12\u5EF3\u6674\u6DF8\u807D\u83C1\u8ACB\u9751\u9BD6\uFA00\u5243\u66FF\u6D95\u6EEF\u7DE0\u8AE6\u902E\u905E\u9AD4\u521D\u527F\u54E8\u6194\u6284\u62DB\u68A2"],["f5a1","\u6912\u695A\u6A35\u7092\u7126\u785D\u7901\u790E\u79D2\u7A0D\u8096\u8278\u82D5\u8349\u8549\u8C82\u8D85\u9162\u918B\u91AE\u4FC3\u56D1\u71ED\u77D7\u8700\u89F8\u5BF8\u5FD6\u6751\u90A8\u53E2\u585A\u5BF5\u60A4\u6181\u6460\u7E3D\u8070\u8525\u9283\u64AE\u50AC\u5D14\u6700\u589C\u62BD\u63A8\u690E\u6978\u6A1E\u6E6B\u76BA\u79CB\u82BB\u8429\u8ACF\u8DA8\u8FFD\u9112\u914B\u919C\u9310\u9318\u939A\u96DB\u9A36\u9C0D\u4E11\u755C\u795D\u7AFA\u7B51\u7BC9\u7E2E\u84C4\u8E59\u8E74\u8EF8\u9010\u6625\u693F\u7443\u51FA\u672E\u9EDC\u5145\u5FE0\u6C96\u87F2\u885D\u8877\u60B4\u81B5\u8403"],["f6a1","\u8D05\u53D6\u5439\u5634\u5A36\u5C31\u708A\u7FE0\u805A\u8106\u81ED\u8DA3\u9189\u9A5F\u9DF2\u5074\u4EC4\u53A0\u60FB\u6E2C\u5C64\u4F88\u5024\u55E4\u5CD9\u5E5F\u6065\u6894\u6CBB\u6DC4\u71BE\u75D4\u75F4\u7661\u7A1A\u7A49\u7DC7\u7DFB\u7F6E\u81F4\u86A9\u8F1C\u96C9\u99B3\u9F52\u5247\u52C5\u98ED\u89AA\u4E03\u67D2\u6F06\u4FB5\u5BE2\u6795\u6C88\u6D78\u741B\u7827\u91DD\u937C\u87C4\u79E4\u7A31\u5FEB\u4ED6\u54A4\u553E\u58AE\u59A5\u60F0\u6253\u62D6\u6736\u6955\u8235\u9640\u99B1\u99DD\u502C\u5353\u5544\u577C\uFA01\u6258\uFA02\u64E2\u666B\u67DD\u6FC1\u6FEF\u7422\u7438\u8A17"],["f7a1","\u9438\u5451\u5606\u5766\u5F48\u619A\u6B4E\u7058\u70AD\u7DBB\u8A95\u596A\u812B\u63A2\u7708\u803D\u8CAA\u5854\u642D\u69BB\u5B95\u5E11\u6E6F\uFA03\u8569\u514C\u53F0\u592A\u6020\u614B\u6B86\u6C70\u6CF0\u7B1E\u80CE\u82D4\u8DC6\u90B0\u98B1\uFA04\u64C7\u6FA4\u6491\u6504\u514E\u5410\u571F\u8A0E\u615F\u6876\uFA05\u75DB\u7B52\u7D71\u901A\u5806\u69CC\u817F\u892A\u9000\u9839\u5078\u5957\u59AC\u6295\u900F\u9B2A\u615D\u7279\u95D6\u5761\u5A46\u5DF4\u628A\u64AD\u64FA\u6777\u6CE2\u6D3E\u722C\u7436\u7834\u7F77\u82AD\u8DDB\u9817\u5224\u5742\u677F\u7248\u74E3\u8CA9\u8FA6\u9211"],["f8a1","\u962A\u516B\u53ED\u634C\u4F69\u5504\u6096\u6557\u6C9B\u6D7F\u724C\u72FD\u7A17\u8987\u8C9D\u5F6D\u6F8E\u70F9\u81A8\u610E\u4FBF\u504F\u6241\u7247\u7BC7\u7DE8\u7FE9\u904D\u97AD\u9A19\u8CB6\u576A\u5E73\u67B0\u840D\u8A55\u5420\u5B16\u5E63\u5EE2\u5F0A\u6583\u80BA\u853D\u9589\u965B\u4F48\u5305\u530D\u530F\u5486\u54FA\u5703\u5E03\u6016\u629B\u62B1\u6355\uFA06\u6CE1\u6D66\u75B1\u7832\u80DE\u812F\u82DE\u8461\u84B2\u888D\u8912\u900B\u92EA\u98FD\u9B91\u5E45\u66B4\u66DD\u7011\u7206\uFA07\u4FF5\u527D\u5F6A\u6153\u6753\u6A19\u6F02\u74E2\u7968\u8868\u8C79\u98C7\u98C4\u9A43"],["f9a1","\u54C1\u7A1F\u6953\u8AF7\u8C4A\u98A8\u99AE\u5F7C\u62AB\u75B2\u76AE\u88AB\u907F\u9642\u5339\u5F3C\u5FC5\u6CCC\u73CC\u7562\u758B\u7B46\u82FE\u999D\u4E4F\u903C\u4E0B\u4F55\u53A6\u590F\u5EC8\u6630\u6CB3\u7455\u8377\u8766\u8CC0\u9050\u971E\u9C15\u58D1\u5B78\u8650\u8B14\u9DB4\u5BD2\u6068\u608D\u65F1\u6C57\u6F22\u6FA3\u701A\u7F55\u7FF0\u9591\u9592\u9650\u97D3\u5272\u8F44\u51FD\u542B\u54B8\u5563\u558A\u6ABB\u6DB5\u7DD8\u8266\u929C\u9677\u9E79\u5408\u54C8\u76D2\u86E4\u95A4\u95D4\u965C\u4EA2\u4F09\u59EE\u5AE6\u5DF7\u6052\u6297\u676D\u6841\u6C86\u6E2F\u7F38\u809B\u822A"],["faa1","\uFA08\uFA09\u9805\u4EA5\u5055\u54B3\u5793\u595A\u5B69\u5BB3\u61C8\u6977\u6D77\u7023\u87F9\u89E3\u8A72\u8AE7\u9082\u99ED\u9AB8\u52BE\u6838\u5016\u5E78\u674F\u8347\u884C\u4EAB\u5411\u56AE\u73E6\u9115\u97FF\u9909\u9957\u9999\u5653\u589F\u865B\u8A31\u61B2\u6AF6\u737B\u8ED2\u6B47\u96AA\u9A57\u5955\u7200\u8D6B\u9769\u4FD4\u5CF4\u5F26\u61F8\u665B\u6CEB\u70AB\u7384\u73B9\u73FE\u7729\u774D\u7D43\u7D62\u7E23\u8237\u8852\uFA0A\u8CE2\u9249\u986F\u5B51\u7A74\u8840\u9801\u5ACC\u4FE0\u5354\u593E\u5CFD\u633E\u6D79\u72F9\u8105\u8107\u83A2\u92CF\u9830\u4EA8\u5144\u5211\u578B"],["fba1","\u5F62\u6CC2\u6ECE\u7005\u7050\u70AF\u7192\u73E9\u7469\u834A\u87A2\u8861\u9008\u90A2\u93A3\u99A8\u516E\u5F57\u60E0\u6167\u66B3\u8559\u8E4A\u91AF\u978B\u4E4E\u4E92\u547C\u58D5\u58FA\u597D\u5CB5\u5F27\u6236\u6248\u660A\u6667\u6BEB\u6D69\u6DCF\u6E56\u6EF8\u6F94\u6FE0\u6FE9\u705D\u72D0\u7425\u745A\u74E0\u7693\u795C\u7CCA\u7E1E\u80E1\u82A6\u846B\u84BF\u864E\u865F\u8774\u8B77\u8C6A\u93AC\u9800\u9865\u60D1\u6216\u9177\u5A5A\u660F\u6DF7\u6E3E\u743F\u9B42\u5FFD\u60DA\u7B0F\u54C4\u5F18\u6C5E\u6CD3\u6D2A\u70D8\u7D05\u8679\u8A0C\u9D3B\u5316\u548C\u5B05\u6A3A\u706B\u7575"],["fca1","\u798D\u79BE\u82B1\u83EF\u8A71\u8B41\u8CA8\u9774\uFA0B\u64F4\u652B\u78BA\u78BB\u7A6B\u4E38\u559A\u5950\u5BA6\u5E7B\u60A3\u63DB\u6B61\u6665\u6853\u6E19\u7165\u74B0\u7D08\u9084\u9A69\u9C25\u6D3B\u6ED1\u733E\u8C41\u95CA\u51F0\u5E4C\u5FA8\u604D\u60F6\u6130\u614C\u6643\u6644\u69A5\u6CC1\u6E5F\u6EC9\u6F62\u714C\u749C\u7687\u7BC1\u7C27\u8352\u8757\u9051\u968D\u9EC3\u532F\u56DE\u5EFB\u5F8A\u6062\u6094\u61F7\u6666\u6703\u6A9C\u6DEE\u6FAE\u7070\u736A\u7E6A\u81BE\u8334\u86D4\u8AA8\u8CC4\u5283\u7372\u5B96\u6A6B\u9404\u54EE\u5686\u5B5D\u6548\u6585\u66C9\u689F\u6D8D\u6DC6"],["fda1","\u723B\u80B4\u9175\u9A4D\u4FAF\u5019\u539A\u540E\u543C\u5589\u55C5\u5E3F\u5F8C\u673D\u7166\u73DD\u9005\u52DB\u52F3\u5864\u58CE\u7104\u718F\u71FB\u85B0\u8A13\u6688\u85A8\u55A7\u6684\u714A\u8431\u5349\u5599\u6BC1\u5F59\u5FBD\u63EE\u6689\u7147\u8AF1\u8F1D\u9EBE\u4F11\u643A\u70CB\u7566\u8667\u6064\u8B4E\u9DF8\u5147\u51F6\u5308\u6D36\u80F8\u9ED1\u6615\u6B23\u7098\u75D5\u5403\u5C79\u7D07\u8A16\u6B20\u6B3D\u6B46\u5438\u6070\u6D3D\u7FD5\u8208\u50D6\u51DE\u559C\u566B\u56CD\u59EC\u5B09\u5E0C\u6199\u6198\u6231\u665E\u66E6\u7199\u71B9\u71BA\u72A7\u79A7\u7A00\u7FB2\u8A70"]]});var S8r=H((iig,z2l)=>{z2l.exports=[["0","\0",127],["a140","\u3000\uFF0C\u3001\u3002\uFF0E\u2027\uFF1B\uFF1A\uFF1F\uFF01\uFE30\u2026\u2025\uFE50\uFE51\uFE52\xB7\uFE54\uFE55\uFE56\uFE57\uFF5C\u2013\uFE31\u2014\uFE33\u2574\uFE34\uFE4F\uFF08\uFF09\uFE35\uFE36\uFF5B\uFF5D\uFE37\uFE38\u3014\u3015\uFE39\uFE3A\u3010\u3011\uFE3B\uFE3C\u300A\u300B\uFE3D\uFE3E\u3008\u3009\uFE3F\uFE40\u300C\u300D\uFE41\uFE42\u300E\u300F\uFE43\uFE44\uFE59\uFE5A"],["a1a1","\uFE5B\uFE5C\uFE5D\uFE5E\u2018\u2019\u201C\u201D\u301D\u301E\u2035\u2032\uFF03\uFF06\uFF0A\u203B\xA7\u3003\u25CB\u25CF\u25B3\u25B2\u25CE\u2606\u2605\u25C7\u25C6\u25A1\u25A0\u25BD\u25BC\u32A3\u2105\xAF\uFFE3\uFF3F\u02CD\uFE49\uFE4A\uFE4D\uFE4E\uFE4B\uFE4C\uFE5F\uFE60\uFE61\uFF0B\uFF0D\xD7\xF7\xB1\u221A\uFF1C\uFF1E\uFF1D\u2266\u2267\u2260\u221E\u2252\u2261\uFE62",4,"\uFF5E\u2229\u222A\u22A5\u2220\u221F\u22BF\u33D2\u33D1\u222B\u222E\u2235\u2234\u2640\u2642\u2295\u2299\u2191\u2193\u2190\u2192\u2196\u2197\u2199\u2198\u2225\u2223\uFF0F"],["a240","\uFF3C\u2215\uFE68\uFF04\uFFE5\u3012\uFFE0\uFFE1\uFF05\uFF20\u2103\u2109\uFE69\uFE6A\uFE6B\u33D5\u339C\u339D\u339E\u33CE\u33A1\u338E\u338F\u33C4\xB0\u5159\u515B\u515E\u515D\u5161\u5163\u55E7\u74E9\u7CCE\u2581",7,"\u258F\u258E\u258D\u258C\u258B\u258A\u2589\u253C\u2534\u252C\u2524\u251C\u2594\u2500\u2502\u2595\u250C\u2510\u2514\u2518\u256D"],["a2a1","\u256E\u2570\u256F\u2550\u255E\u256A\u2561\u25E2\u25E3\u25E5\u25E4\u2571\u2572\u2573\uFF10",9,"\u2160",9,"\u3021",8,"\u5341\u5344\u5345\uFF21",25,"\uFF41",21],["a340","\uFF57\uFF58\uFF59\uFF5A\u0391",16,"\u03A3",6,"\u03B1",16,"\u03C3",6,"\u3105",10],["a3a1","\u3110",25,"\u02D9\u02C9\u02CA\u02C7\u02CB"],["a3e1","\u20AC"],["a440","\u4E00\u4E59\u4E01\u4E03\u4E43\u4E5D\u4E86\u4E8C\u4EBA\u513F\u5165\u516B\u51E0\u5200\u5201\u529B\u5315\u5341\u535C\u53C8\u4E09\u4E0B\u4E08\u4E0A\u4E2B\u4E38\u51E1\u4E45\u4E48\u4E5F\u4E5E\u4E8E\u4EA1\u5140\u5203\u52FA\u5343\u53C9\u53E3\u571F\u58EB\u5915\u5927\u5973\u5B50\u5B51\u5B53\u5BF8\u5C0F\u5C22\u5C38\u5C71\u5DDD\u5DE5\u5DF1\u5DF2\u5DF3\u5DFE\u5E72\u5EFE\u5F0B\u5F13\u624D"],["a4a1","\u4E11\u4E10\u4E0D\u4E2D\u4E30\u4E39\u4E4B\u5C39\u4E88\u4E91\u4E95\u4E92\u4E94\u4EA2\u4EC1\u4EC0\u4EC3\u4EC6\u4EC7\u4ECD\u4ECA\u4ECB\u4EC4\u5143\u5141\u5167\u516D\u516E\u516C\u5197\u51F6\u5206\u5207\u5208\u52FB\u52FE\u52FF\u5316\u5339\u5348\u5347\u5345\u535E\u5384\u53CB\u53CA\u53CD\u58EC\u5929\u592B\u592A\u592D\u5B54\u5C11\u5C24\u5C3A\u5C6F\u5DF4\u5E7B\u5EFF\u5F14\u5F15\u5FC3\u6208\u6236\u624B\u624E\u652F\u6587\u6597\u65A4\u65B9\u65E5\u66F0\u6708\u6728\u6B20\u6B62\u6B79\u6BCB\u6BD4\u6BDB\u6C0F\u6C34\u706B\u722A\u7236\u723B\u7247\u7259\u725B\u72AC\u738B\u4E19"],["a540","\u4E16\u4E15\u4E14\u4E18\u4E3B\u4E4D\u4E4F\u4E4E\u4EE5\u4ED8\u4ED4\u4ED5\u4ED6\u4ED7\u4EE3\u4EE4\u4ED9\u4EDE\u5145\u5144\u5189\u518A\u51AC\u51F9\u51FA\u51F8\u520A\u52A0\u529F\u5305\u5306\u5317\u531D\u4EDF\u534A\u5349\u5361\u5360\u536F\u536E\u53BB\u53EF\u53E4\u53F3\u53EC\u53EE\u53E9\u53E8\u53FC\u53F8\u53F5\u53EB\u53E6\u53EA\u53F2\u53F1\u53F0\u53E5\u53ED\u53FB\u56DB\u56DA\u5916"],["a5a1","\u592E\u5931\u5974\u5976\u5B55\u5B83\u5C3C\u5DE8\u5DE7\u5DE6\u5E02\u5E03\u5E73\u5E7C\u5F01\u5F18\u5F17\u5FC5\u620A\u6253\u6254\u6252\u6251\u65A5\u65E6\u672E\u672C\u672A\u672B\u672D\u6B63\u6BCD\u6C11\u6C10\u6C38\u6C41\u6C40\u6C3E\u72AF\u7384\u7389\u74DC\u74E6\u7518\u751F\u7528\u7529\u7530\u7531\u7532\u7533\u758B\u767D\u76AE\u76BF\u76EE\u77DB\u77E2\u77F3\u793A\u79BE\u7A74\u7ACB\u4E1E\u4E1F\u4E52\u4E53\u4E69\u4E99\u4EA4\u4EA6\u4EA5\u4EFF\u4F09\u4F19\u4F0A\u4F15\u4F0D\u4F10\u4F11\u4F0F\u4EF2\u4EF6\u4EFB\u4EF0\u4EF3\u4EFD\u4F01\u4F0B\u5149\u5147\u5146\u5148\u5168"],["a640","\u5171\u518D\u51B0\u5217\u5211\u5212\u520E\u5216\u52A3\u5308\u5321\u5320\u5370\u5371\u5409\u540F\u540C\u540A\u5410\u5401\u540B\u5404\u5411\u540D\u5408\u5403\u540E\u5406\u5412\u56E0\u56DE\u56DD\u5733\u5730\u5728\u572D\u572C\u572F\u5729\u5919\u591A\u5937\u5938\u5984\u5978\u5983\u597D\u5979\u5982\u5981\u5B57\u5B58\u5B87\u5B88\u5B85\u5B89\u5BFA\u5C16\u5C79\u5DDE\u5E06\u5E76\u5E74"],["a6a1","\u5F0F\u5F1B\u5FD9\u5FD6\u620E\u620C\u620D\u6210\u6263\u625B\u6258\u6536\u65E9\u65E8\u65EC\u65ED\u66F2\u66F3\u6709\u673D\u6734\u6731\u6735\u6B21\u6B64\u6B7B\u6C16\u6C5D\u6C57\u6C59\u6C5F\u6C60\u6C50\u6C55\u6C61\u6C5B\u6C4D\u6C4E\u7070\u725F\u725D\u767E\u7AF9\u7C73\u7CF8\u7F36\u7F8A\u7FBD\u8001\u8003\u800C\u8012\u8033\u807F\u8089\u808B\u808C\u81E3\u81EA\u81F3\u81FC\u820C\u821B\u821F\u826E\u8272\u827E\u866B\u8840\u884C\u8863\u897F\u9621\u4E32\u4EA8\u4F4D\u4F4F\u4F47\u4F57\u4F5E\u4F34\u4F5B\u4F55\u4F30\u4F50\u4F51\u4F3D\u4F3A\u4F38\u4F43\u4F54\u4F3C\u4F46\u4F63"],["a740","\u4F5C\u4F60\u4F2F\u4F4E\u4F36\u4F59\u4F5D\u4F48\u4F5A\u514C\u514B\u514D\u5175\u51B6\u51B7\u5225\u5224\u5229\u522A\u5228\u52AB\u52A9\u52AA\u52AC\u5323\u5373\u5375\u541D\u542D\u541E\u543E\u5426\u544E\u5427\u5446\u5443\u5433\u5448\u5442\u541B\u5429\u544A\u5439\u543B\u5438\u542E\u5435\u5436\u5420\u543C\u5440\u5431\u542B\u541F\u542C\u56EA\u56F0\u56E4\u56EB\u574A\u5751\u5740\u574D"],["a7a1","\u5747\u574E\u573E\u5750\u574F\u573B\u58EF\u593E\u599D\u5992\u59A8\u599E\u59A3\u5999\u5996\u598D\u59A4\u5993\u598A\u59A5\u5B5D\u5B5C\u5B5A\u5B5B\u5B8C\u5B8B\u5B8F\u5C2C\u5C40\u5C41\u5C3F\u5C3E\u5C90\u5C91\u5C94\u5C8C\u5DEB\u5E0C\u5E8F\u5E87\u5E8A\u5EF7\u5F04\u5F1F\u5F64\u5F62\u5F77\u5F79\u5FD8\u5FCC\u5FD7\u5FCD\u5FF1\u5FEB\u5FF8\u5FEA\u6212\u6211\u6284\u6297\u6296\u6280\u6276\u6289\u626D\u628A\u627C\u627E\u6279\u6273\u6292\u626F\u6298\u626E\u6295\u6293\u6291\u6286\u6539\u653B\u6538\u65F1\u66F4\u675F\u674E\u674F\u6750\u6751\u675C\u6756\u675E\u6749\u6746\u6760"],["a840","\u6753\u6757\u6B65\u6BCF\u6C42\u6C5E\u6C99\u6C81\u6C88\u6C89\u6C85\u6C9B\u6C6A\u6C7A\u6C90\u6C70\u6C8C\u6C68\u6C96\u6C92\u6C7D\u6C83\u6C72\u6C7E\u6C74\u6C86\u6C76\u6C8D\u6C94\u6C98\u6C82\u7076\u707C\u707D\u7078\u7262\u7261\u7260\u72C4\u72C2\u7396\u752C\u752B\u7537\u7538\u7682\u76EF\u77E3\u79C1\u79C0\u79BF\u7A76\u7CFB\u7F55\u8096\u8093\u809D\u8098\u809B\u809A\u80B2\u826F\u8292"],["a8a1","\u828B\u828D\u898B\u89D2\u8A00\u8C37\u8C46\u8C55\u8C9D\u8D64\u8D70\u8DB3\u8EAB\u8ECA\u8F9B\u8FB0\u8FC2\u8FC6\u8FC5\u8FC4\u5DE1\u9091\u90A2\u90AA\u90A6\u90A3\u9149\u91C6\u91CC\u9632\u962E\u9631\u962A\u962C\u4E26\u4E56\u4E73\u4E8B\u4E9B\u4E9E\u4EAB\u4EAC\u4F6F\u4F9D\u4F8D\u4F73\u4F7F\u4F6C\u4F9B\u4F8B\u4F86\u4F83\u4F70\u4F75\u4F88\u4F69\u4F7B\u4F96\u4F7E\u4F8F\u4F91\u4F7A\u5154\u5152\u5155\u5169\u5177\u5176\u5178\u51BD\u51FD\u523B\u5238\u5237\u523A\u5230\u522E\u5236\u5241\u52BE\u52BB\u5352\u5354\u5353\u5351\u5366\u5377\u5378\u5379\u53D6\u53D4\u53D7\u5473\u5475"],["a940","\u5496\u5478\u5495\u5480\u547B\u5477\u5484\u5492\u5486\u547C\u5490\u5471\u5476\u548C\u549A\u5462\u5468\u548B\u547D\u548E\u56FA\u5783\u5777\u576A\u5769\u5761\u5766\u5764\u577C\u591C\u5949\u5947\u5948\u5944\u5954\u59BE\u59BB\u59D4\u59B9\u59AE\u59D1\u59C6\u59D0\u59CD\u59CB\u59D3\u59CA\u59AF\u59B3\u59D2\u59C5\u5B5F\u5B64\u5B63\u5B97\u5B9A\u5B98\u5B9C\u5B99\u5B9B\u5C1A\u5C48\u5C45"],["a9a1","\u5C46\u5CB7\u5CA1\u5CB8\u5CA9\u5CAB\u5CB1\u5CB3\u5E18\u5E1A\u5E16\u5E15\u5E1B\u5E11\u5E78\u5E9A\u5E97\u5E9C\u5E95\u5E96\u5EF6\u5F26\u5F27\u5F29\u5F80\u5F81\u5F7F\u5F7C\u5FDD\u5FE0\u5FFD\u5FF5\u5FFF\u600F\u6014\u602F\u6035\u6016\u602A\u6015\u6021\u6027\u6029\u602B\u601B\u6216\u6215\u623F\u623E\u6240\u627F\u62C9\u62CC\u62C4\u62BF\u62C2\u62B9\u62D2\u62DB\u62AB\u62D3\u62D4\u62CB\u62C8\u62A8\u62BD\u62BC\u62D0\u62D9\u62C7\u62CD\u62B5\u62DA\u62B1\u62D8\u62D6\u62D7\u62C6\u62AC\u62CE\u653E\u65A7\u65BC\u65FA\u6614\u6613\u660C\u6606\u6602\u660E\u6600\u660F\u6615\u660A"],["aa40","\u6607\u670D\u670B\u676D\u678B\u6795\u6771\u679C\u6773\u6777\u6787\u679D\u6797\u676F\u6770\u677F\u6789\u677E\u6790\u6775\u679A\u6793\u677C\u676A\u6772\u6B23\u6B66\u6B67\u6B7F\u6C13\u6C1B\u6CE3\u6CE8\u6CF3\u6CB1\u6CCC\u6CE5\u6CB3\u6CBD\u6CBE\u6CBC\u6CE2\u6CAB\u6CD5\u6CD3\u6CB8\u6CC4\u6CB9\u6CC1\u6CAE\u6CD7\u6CC5\u6CF1\u6CBF\u6CBB\u6CE1\u6CDB\u6CCA\u6CAC\u6CEF\u6CDC\u6CD6\u6CE0"],["aaa1","\u7095\u708E\u7092\u708A\u7099\u722C\u722D\u7238\u7248\u7267\u7269\u72C0\u72CE\u72D9\u72D7\u72D0\u73A9\u73A8\u739F\u73AB\u73A5\u753D\u759D\u7599\u759A\u7684\u76C2\u76F2\u76F4\u77E5\u77FD\u793E\u7940\u7941\u79C9\u79C8\u7A7A\u7A79\u7AFA\u7CFE\u7F54\u7F8C\u7F8B\u8005\u80BA\u80A5\u80A2\u80B1\u80A1\u80AB\u80A9\u80B4\u80AA\u80AF\u81E5\u81FE\u820D\u82B3\u829D\u8299\u82AD\u82BD\u829F\u82B9\u82B1\u82AC\u82A5\u82AF\u82B8\u82A3\u82B0\u82BE\u82B7\u864E\u8671\u521D\u8868\u8ECB\u8FCE\u8FD4\u8FD1\u90B5\u90B8\u90B1\u90B6\u91C7\u91D1\u9577\u9580\u961C\u9640\u963F\u963B\u9644"],["ab40","\u9642\u96B9\u96E8\u9752\u975E\u4E9F\u4EAD\u4EAE\u4FE1\u4FB5\u4FAF\u4FBF\u4FE0\u4FD1\u4FCF\u4FDD\u4FC3\u4FB6\u4FD8\u4FDF\u4FCA\u4FD7\u4FAE\u4FD0\u4FC4\u4FC2\u4FDA\u4FCE\u4FDE\u4FB7\u5157\u5192\u5191\u51A0\u524E\u5243\u524A\u524D\u524C\u524B\u5247\u52C7\u52C9\u52C3\u52C1\u530D\u5357\u537B\u539A\u53DB\u54AC\u54C0\u54A8\u54CE\u54C9\u54B8\u54A6\u54B3\u54C7\u54C2\u54BD\u54AA\u54C1"],["aba1","\u54C4\u54C8\u54AF\u54AB\u54B1\u54BB\u54A9\u54A7\u54BF\u56FF\u5782\u578B\u57A0\u57A3\u57A2\u57CE\u57AE\u5793\u5955\u5951\u594F\u594E\u5950\u59DC\u59D8\u59FF\u59E3\u59E8\u5A03\u59E5\u59EA\u59DA\u59E6\u5A01\u59FB\u5B69\u5BA3\u5BA6\u5BA4\u5BA2\u5BA5\u5C01\u5C4E\u5C4F\u5C4D\u5C4B\u5CD9\u5CD2\u5DF7\u5E1D\u5E25\u5E1F\u5E7D\u5EA0\u5EA6\u5EFA\u5F08\u5F2D\u5F65\u5F88\u5F85\u5F8A\u5F8B\u5F87\u5F8C\u5F89\u6012\u601D\u6020\u6025\u600E\u6028\u604D\u6070\u6068\u6062\u6046\u6043\u606C\u606B\u606A\u6064\u6241\u62DC\u6316\u6309\u62FC\u62ED\u6301\u62EE\u62FD\u6307\u62F1\u62F7"],["ac40","\u62EF\u62EC\u62FE\u62F4\u6311\u6302\u653F\u6545\u65AB\u65BD\u65E2\u6625\u662D\u6620\u6627\u662F\u661F\u6628\u6631\u6624\u66F7\u67FF\u67D3\u67F1\u67D4\u67D0\u67EC\u67B6\u67AF\u67F5\u67E9\u67EF\u67C4\u67D1\u67B4\u67DA\u67E5\u67B8\u67CF\u67DE\u67F3\u67B0\u67D9\u67E2\u67DD\u67D2\u6B6A\u6B83\u6B86\u6BB5\u6BD2\u6BD7\u6C1F\u6CC9\u6D0B\u6D32\u6D2A\u6D41\u6D25\u6D0C\u6D31\u6D1E\u6D17"],["aca1","\u6D3B\u6D3D\u6D3E\u6D36\u6D1B\u6CF5\u6D39\u6D27\u6D38\u6D29\u6D2E\u6D35\u6D0E\u6D2B\u70AB\u70BA\u70B3\u70AC\u70AF\u70AD\u70B8\u70AE\u70A4\u7230\u7272\u726F\u7274\u72E9\u72E0\u72E1\u73B7\u73CA\u73BB\u73B2\u73CD\u73C0\u73B3\u751A\u752D\u754F\u754C\u754E\u754B\u75AB\u75A4\u75A5\u75A2\u75A3\u7678\u7686\u7687\u7688\u76C8\u76C6\u76C3\u76C5\u7701\u76F9\u76F8\u7709\u770B\u76FE\u76FC\u7707\u77DC\u7802\u7814\u780C\u780D\u7946\u7949\u7948\u7947\u79B9\u79BA\u79D1\u79D2\u79CB\u7A7F\u7A81\u7AFF\u7AFD\u7C7D\u7D02\u7D05\u7D00\u7D09\u7D07\u7D04\u7D06\u7F38\u7F8E\u7FBF\u8004"],["ad40","\u8010\u800D\u8011\u8036\u80D6\u80E5\u80DA\u80C3\u80C4\u80CC\u80E1\u80DB\u80CE\u80DE\u80E4\u80DD\u81F4\u8222\u82E7\u8303\u8305\u82E3\u82DB\u82E6\u8304\u82E5\u8302\u8309\u82D2\u82D7\u82F1\u8301\u82DC\u82D4\u82D1\u82DE\u82D3\u82DF\u82EF\u8306\u8650\u8679\u867B\u867A\u884D\u886B\u8981\u89D4\u8A08\u8A02\u8A03\u8C9E\u8CA0\u8D74\u8D73\u8DB4\u8ECD\u8ECC\u8FF0\u8FE6\u8FE2\u8FEA\u8FE5"],["ada1","\u8FED\u8FEB\u8FE4\u8FE8\u90CA\u90CE\u90C1\u90C3\u914B\u914A\u91CD\u9582\u9650\u964B\u964C\u964D\u9762\u9769\u97CB\u97ED\u97F3\u9801\u98A8\u98DB\u98DF\u9996\u9999\u4E58\u4EB3\u500C\u500D\u5023\u4FEF\u5026\u5025\u4FF8\u5029\u5016\u5006\u503C\u501F\u501A\u5012\u5011\u4FFA\u5000\u5014\u5028\u4FF1\u5021\u500B\u5019\u5018\u4FF3\u4FEE\u502D\u502A\u4FFE\u502B\u5009\u517C\u51A4\u51A5\u51A2\u51CD\u51CC\u51C6\u51CB\u5256\u525C\u5254\u525B\u525D\u532A\u537F\u539F\u539D\u53DF\u54E8\u5510\u5501\u5537\u54FC\u54E5\u54F2\u5506\u54FA\u5514\u54E9\u54ED\u54E1\u5509\u54EE\u54EA"],["ae40","\u54E6\u5527\u5507\u54FD\u550F\u5703\u5704\u57C2\u57D4\u57CB\u57C3\u5809\u590F\u5957\u5958\u595A\u5A11\u5A18\u5A1C\u5A1F\u5A1B\u5A13\u59EC\u5A20\u5A23\u5A29\u5A25\u5A0C\u5A09\u5B6B\u5C58\u5BB0\u5BB3\u5BB6\u5BB4\u5BAE\u5BB5\u5BB9\u5BB8\u5C04\u5C51\u5C55\u5C50\u5CED\u5CFD\u5CFB\u5CEA\u5CE8\u5CF0\u5CF6\u5D01\u5CF4\u5DEE\u5E2D\u5E2B\u5EAB\u5EAD\u5EA7\u5F31\u5F92\u5F91\u5F90\u6059"],["aea1","\u6063\u6065\u6050\u6055\u606D\u6069\u606F\u6084\u609F\u609A\u608D\u6094\u608C\u6085\u6096\u6247\u62F3\u6308\u62FF\u634E\u633E\u632F\u6355\u6342\u6346\u634F\u6349\u633A\u6350\u633D\u632A\u632B\u6328\u634D\u634C\u6548\u6549\u6599\u65C1\u65C5\u6642\u6649\u664F\u6643\u6652\u664C\u6645\u6641\u66F8\u6714\u6715\u6717\u6821\u6838\u6848\u6846\u6853\u6839\u6842\u6854\u6829\u68B3\u6817\u684C\u6851\u683D\u67F4\u6850\u6840\u683C\u6843\u682A\u6845\u6813\u6818\u6841\u6B8A\u6B89\u6BB7\u6C23\u6C27\u6C28\u6C26\u6C24\u6CF0\u6D6A\u6D95\u6D88\u6D87\u6D66\u6D78\u6D77\u6D59\u6D93"],["af40","\u6D6C\u6D89\u6D6E\u6D5A\u6D74\u6D69\u6D8C\u6D8A\u6D79\u6D85\u6D65\u6D94\u70CA\u70D8\u70E4\u70D9\u70C8\u70CF\u7239\u7279\u72FC\u72F9\u72FD\u72F8\u72F7\u7386\u73ED\u7409\u73EE\u73E0\u73EA\u73DE\u7554\u755D\u755C\u755A\u7559\u75BE\u75C5\u75C7\u75B2\u75B3\u75BD\u75BC\u75B9\u75C2\u75B8\u768B\u76B0\u76CA\u76CD\u76CE\u7729\u771F\u7720\u7728\u77E9\u7830\u7827\u7838\u781D\u7834\u7837"],["afa1","\u7825\u782D\u7820\u781F\u7832\u7955\u7950\u7960\u795F\u7956\u795E\u795D\u7957\u795A\u79E4\u79E3\u79E7\u79DF\u79E6\u79E9\u79D8\u7A84\u7A88\u7AD9\u7B06\u7B11\u7C89\u7D21\u7D17\u7D0B\u7D0A\u7D20\u7D22\u7D14\u7D10\u7D15\u7D1A\u7D1C\u7D0D\u7D19\u7D1B\u7F3A\u7F5F\u7F94\u7FC5\u7FC1\u8006\u8018\u8015\u8019\u8017\u803D\u803F\u80F1\u8102\u80F0\u8105\u80ED\u80F4\u8106\u80F8\u80F3\u8108\u80FD\u810A\u80FC\u80EF\u81ED\u81EC\u8200\u8210\u822A\u822B\u8228\u822C\u82BB\u832B\u8352\u8354\u834A\u8338\u8350\u8349\u8335\u8334\u834F\u8332\u8339\u8336\u8317\u8340\u8331\u8328\u8343"],["b040","\u8654\u868A\u86AA\u8693\u86A4\u86A9\u868C\u86A3\u869C\u8870\u8877\u8881\u8882\u887D\u8879\u8A18\u8A10\u8A0E\u8A0C\u8A15\u8A0A\u8A17\u8A13\u8A16\u8A0F\u8A11\u8C48\u8C7A\u8C79\u8CA1\u8CA2\u8D77\u8EAC\u8ED2\u8ED4\u8ECF\u8FB1\u9001\u9006\u8FF7\u9000\u8FFA\u8FF4\u9003\u8FFD\u9005\u8FF8\u9095\u90E1\u90DD\u90E2\u9152\u914D\u914C\u91D8\u91DD\u91D7\u91DC\u91D9\u9583\u9662\u9663\u9661"],["b0a1","\u965B\u965D\u9664\u9658\u965E\u96BB\u98E2\u99AC\u9AA8\u9AD8\u9B25\u9B32\u9B3C\u4E7E\u507A\u507D\u505C\u5047\u5043\u504C\u505A\u5049\u5065\u5076\u504E\u5055\u5075\u5074\u5077\u504F\u500F\u506F\u506D\u515C\u5195\u51F0\u526A\u526F\u52D2\u52D9\u52D8\u52D5\u5310\u530F\u5319\u533F\u5340\u533E\u53C3\u66FC\u5546\u556A\u5566\u5544\u555E\u5561\u5543\u554A\u5531\u5556\u554F\u5555\u552F\u5564\u5538\u552E\u555C\u552C\u5563\u5533\u5541\u5557\u5708\u570B\u5709\u57DF\u5805\u580A\u5806\u57E0\u57E4\u57FA\u5802\u5835\u57F7\u57F9\u5920\u5962\u5A36\u5A41\u5A49\u5A66\u5A6A\u5A40"],["b140","\u5A3C\u5A62\u5A5A\u5A46\u5A4A\u5B70\u5BC7\u5BC5\u5BC4\u5BC2\u5BBF\u5BC6\u5C09\u5C08\u5C07\u5C60\u5C5C\u5C5D\u5D07\u5D06\u5D0E\u5D1B\u5D16\u5D22\u5D11\u5D29\u5D14\u5D19\u5D24\u5D27\u5D17\u5DE2\u5E38\u5E36\u5E33\u5E37\u5EB7\u5EB8\u5EB6\u5EB5\u5EBE\u5F35\u5F37\u5F57\u5F6C\u5F69\u5F6B\u5F97\u5F99\u5F9E\u5F98\u5FA1\u5FA0\u5F9C\u607F\u60A3\u6089\u60A0\u60A8\u60CB\u60B4\u60E6\u60BD"],["b1a1","\u60C5\u60BB\u60B5\u60DC\u60BC\u60D8\u60D5\u60C6\u60DF\u60B8\u60DA\u60C7\u621A\u621B\u6248\u63A0\u63A7\u6372\u6396\u63A2\u63A5\u6377\u6367\u6398\u63AA\u6371\u63A9\u6389\u6383\u639B\u636B\u63A8\u6384\u6388\u6399\u63A1\u63AC\u6392\u638F\u6380\u637B\u6369\u6368\u637A\u655D\u6556\u6551\u6559\u6557\u555F\u654F\u6558\u6555\u6554\u659C\u659B\u65AC\u65CF\u65CB\u65CC\u65CE\u665D\u665A\u6664\u6668\u6666\u665E\u66F9\u52D7\u671B\u6881\u68AF\u68A2\u6893\u68B5\u687F\u6876\u68B1\u68A7\u6897\u68B0\u6883\u68C4\u68AD\u6886\u6885\u6894\u689D\u68A8\u689F\u68A1\u6882\u6B32\u6BBA"],["b240","\u6BEB\u6BEC\u6C2B\u6D8E\u6DBC\u6DF3\u6DD9\u6DB2\u6DE1\u6DCC\u6DE4\u6DFB\u6DFA\u6E05\u6DC7\u6DCB\u6DAF\u6DD1\u6DAE\u6DDE\u6DF9\u6DB8\u6DF7\u6DF5\u6DC5\u6DD2\u6E1A\u6DB5\u6DDA\u6DEB\u6DD8\u6DEA\u6DF1\u6DEE\u6DE8\u6DC6\u6DC4\u6DAA\u6DEC\u6DBF\u6DE6\u70F9\u7109\u710A\u70FD\u70EF\u723D\u727D\u7281\u731C\u731B\u7316\u7313\u7319\u7387\u7405\u740A\u7403\u7406\u73FE\u740D\u74E0\u74F6"],["b2a1","\u74F7\u751C\u7522\u7565\u7566\u7562\u7570\u758F\u75D4\u75D5\u75B5\u75CA\u75CD\u768E\u76D4\u76D2\u76DB\u7737\u773E\u773C\u7736\u7738\u773A\u786B\u7843\u784E\u7965\u7968\u796D\u79FB\u7A92\u7A95\u7B20\u7B28\u7B1B\u7B2C\u7B26\u7B19\u7B1E\u7B2E\u7C92\u7C97\u7C95\u7D46\u7D43\u7D71\u7D2E\u7D39\u7D3C\u7D40\u7D30\u7D33\u7D44\u7D2F\u7D42\u7D32\u7D31\u7F3D\u7F9E\u7F9A\u7FCC\u7FCE\u7FD2\u801C\u804A\u8046\u812F\u8116\u8123\u812B\u8129\u8130\u8124\u8202\u8235\u8237\u8236\u8239\u838E\u839E\u8398\u8378\u83A2\u8396\u83BD\u83AB\u8392\u838A\u8393\u8389\u83A0\u8377\u837B\u837C"],["b340","\u8386\u83A7\u8655\u5F6A\u86C7\u86C0\u86B6\u86C4\u86B5\u86C6\u86CB\u86B1\u86AF\u86C9\u8853\u889E\u8888\u88AB\u8892\u8896\u888D\u888B\u8993\u898F\u8A2A\u8A1D\u8A23\u8A25\u8A31\u8A2D\u8A1F\u8A1B\u8A22\u8C49\u8C5A\u8CA9\u8CAC\u8CAB\u8CA8\u8CAA\u8CA7\u8D67\u8D66\u8DBE\u8DBA\u8EDB\u8EDF\u9019\u900D\u901A\u9017\u9023\u901F\u901D\u9010\u9015\u901E\u9020\u900F\u9022\u9016\u901B\u9014"],["b3a1","\u90E8\u90ED\u90FD\u9157\u91CE\u91F5\u91E6\u91E3\u91E7\u91ED\u91E9\u9589\u966A\u9675\u9673\u9678\u9670\u9674\u9676\u9677\u966C\u96C0\u96EA\u96E9\u7AE0\u7ADF\u9802\u9803\u9B5A\u9CE5\u9E75\u9E7F\u9EA5\u9EBB\u50A2\u508D\u5085\u5099\u5091\u5080\u5096\u5098\u509A\u6700\u51F1\u5272\u5274\u5275\u5269\u52DE\u52DD\u52DB\u535A\u53A5\u557B\u5580\u55A7\u557C\u558A\u559D\u5598\u5582\u559C\u55AA\u5594\u5587\u558B\u5583\u55B3\u55AE\u559F\u553E\u55B2\u559A\u55BB\u55AC\u55B1\u557E\u5589\u55AB\u5599\u570D\u582F\u582A\u5834\u5824\u5830\u5831\u5821\u581D\u5820\u58F9\u58FA\u5960"],["b440","\u5A77\u5A9A\u5A7F\u5A92\u5A9B\u5AA7\u5B73\u5B71\u5BD2\u5BCC\u5BD3\u5BD0\u5C0A\u5C0B\u5C31\u5D4C\u5D50\u5D34\u5D47\u5DFD\u5E45\u5E3D\u5E40\u5E43\u5E7E\u5ECA\u5EC1\u5EC2\u5EC4\u5F3C\u5F6D\u5FA9\u5FAA\u5FA8\u60D1\u60E1\u60B2\u60B6\u60E0\u611C\u6123\u60FA\u6115\u60F0\u60FB\u60F4\u6168\u60F1\u610E\u60F6\u6109\u6100\u6112\u621F\u6249\u63A3\u638C\u63CF\u63C0\u63E9\u63C9\u63C6\u63CD"],["b4a1","\u63D2\u63E3\u63D0\u63E1\u63D6\u63ED\u63EE\u6376\u63F4\u63EA\u63DB\u6452\u63DA\u63F9\u655E\u6566\u6562\u6563\u6591\u6590\u65AF\u666E\u6670\u6674\u6676\u666F\u6691\u667A\u667E\u6677\u66FE\u66FF\u671F\u671D\u68FA\u68D5\u68E0\u68D8\u68D7\u6905\u68DF\u68F5\u68EE\u68E7\u68F9\u68D2\u68F2\u68E3\u68CB\u68CD\u690D\u6912\u690E\u68C9\u68DA\u696E\u68FB\u6B3E\u6B3A\u6B3D\u6B98\u6B96\u6BBC\u6BEF\u6C2E\u6C2F\u6C2C\u6E2F\u6E38\u6E54\u6E21\u6E32\u6E67\u6E4A\u6E20\u6E25\u6E23\u6E1B\u6E5B\u6E58\u6E24\u6E56\u6E6E\u6E2D\u6E26\u6E6F\u6E34\u6E4D\u6E3A\u6E2C\u6E43\u6E1D\u6E3E\u6ECB"],["b540","\u6E89\u6E19\u6E4E\u6E63\u6E44\u6E72\u6E69\u6E5F\u7119\u711A\u7126\u7130\u7121\u7136\u716E\u711C\u724C\u7284\u7280\u7336\u7325\u7334\u7329\u743A\u742A\u7433\u7422\u7425\u7435\u7436\u7434\u742F\u741B\u7426\u7428\u7525\u7526\u756B\u756A\u75E2\u75DB\u75E3\u75D9\u75D8\u75DE\u75E0\u767B\u767C\u7696\u7693\u76B4\u76DC\u774F\u77ED\u785D\u786C\u786F\u7A0D\u7A08\u7A0B\u7A05\u7A00\u7A98"],["b5a1","\u7A97\u7A96\u7AE5\u7AE3\u7B49\u7B56\u7B46\u7B50\u7B52\u7B54\u7B4D\u7B4B\u7B4F\u7B51\u7C9F\u7CA5\u7D5E\u7D50\u7D68\u7D55\u7D2B\u7D6E\u7D72\u7D61\u7D66\u7D62\u7D70\u7D73\u5584\u7FD4\u7FD5\u800B\u8052\u8085\u8155\u8154\u814B\u8151\u814E\u8139\u8146\u813E\u814C\u8153\u8174\u8212\u821C\u83E9\u8403\u83F8\u840D\u83E0\u83C5\u840B\u83C1\u83EF\u83F1\u83F4\u8457\u840A\u83F0\u840C\u83CC\u83FD\u83F2\u83CA\u8438\u840E\u8404\u83DC\u8407\u83D4\u83DF\u865B\u86DF\u86D9\u86ED\u86D4\u86DB\u86E4\u86D0\u86DE\u8857\u88C1\u88C2\u88B1\u8983\u8996\u8A3B\u8A60\u8A55\u8A5E\u8A3C\u8A41"],["b640","\u8A54\u8A5B\u8A50\u8A46\u8A34\u8A3A\u8A36\u8A56\u8C61\u8C82\u8CAF\u8CBC\u8CB3\u8CBD\u8CC1\u8CBB\u8CC0\u8CB4\u8CB7\u8CB6\u8CBF\u8CB8\u8D8A\u8D85\u8D81\u8DCE\u8DDD\u8DCB\u8DDA\u8DD1\u8DCC\u8DDB\u8DC6\u8EFB\u8EF8\u8EFC\u8F9C\u902E\u9035\u9031\u9038\u9032\u9036\u9102\u90F5\u9109\u90FE\u9163\u9165\u91CF\u9214\u9215\u9223\u9209\u921E\u920D\u9210\u9207\u9211\u9594\u958F\u958B\u9591"],["b6a1","\u9593\u9592\u958E\u968A\u968E\u968B\u967D\u9685\u9686\u968D\u9672\u9684\u96C1\u96C5\u96C4\u96C6\u96C7\u96EF\u96F2\u97CC\u9805\u9806\u9808\u98E7\u98EA\u98EF\u98E9\u98F2\u98ED\u99AE\u99AD\u9EC3\u9ECD\u9ED1\u4E82\u50AD\u50B5\u50B2\u50B3\u50C5\u50BE\u50AC\u50B7\u50BB\u50AF\u50C7\u527F\u5277\u527D\u52DF\u52E6\u52E4\u52E2\u52E3\u532F\u55DF\u55E8\u55D3\u55E6\u55CE\u55DC\u55C7\u55D1\u55E3\u55E4\u55EF\u55DA\u55E1\u55C5\u55C6\u55E5\u55C9\u5712\u5713\u585E\u5851\u5858\u5857\u585A\u5854\u586B\u584C\u586D\u584A\u5862\u5852\u584B\u5967\u5AC1\u5AC9\u5ACC\u5ABE\u5ABD\u5ABC"],["b740","\u5AB3\u5AC2\u5AB2\u5D69\u5D6F\u5E4C\u5E79\u5EC9\u5EC8\u5F12\u5F59\u5FAC\u5FAE\u611A\u610F\u6148\u611F\u60F3\u611B\u60F9\u6101\u6108\u614E\u614C\u6144\u614D\u613E\u6134\u6127\u610D\u6106\u6137\u6221\u6222\u6413\u643E\u641E\u642A\u642D\u643D\u642C\u640F\u641C\u6414\u640D\u6436\u6416\u6417\u6406\u656C\u659F\u65B0\u6697\u6689\u6687\u6688\u6696\u6684\u6698\u668D\u6703\u6994\u696D"],["b7a1","\u695A\u6977\u6960\u6954\u6975\u6930\u6982\u694A\u6968\u696B\u695E\u6953\u6979\u6986\u695D\u6963\u695B\u6B47\u6B72\u6BC0\u6BBF\u6BD3\u6BFD\u6EA2\u6EAF\u6ED3\u6EB6\u6EC2\u6E90\u6E9D\u6EC7\u6EC5\u6EA5\u6E98\u6EBC\u6EBA\u6EAB\u6ED1\u6E96\u6E9C\u6EC4\u6ED4\u6EAA\u6EA7\u6EB4\u714E\u7159\u7169\u7164\u7149\u7167\u715C\u716C\u7166\u714C\u7165\u715E\u7146\u7168\u7156\u723A\u7252\u7337\u7345\u733F\u733E\u746F\u745A\u7455\u745F\u745E\u7441\u743F\u7459\u745B\u745C\u7576\u7578\u7600\u75F0\u7601\u75F2\u75F1\u75FA\u75FF\u75F4\u75F3\u76DE\u76DF\u775B\u776B\u7766\u775E\u7763"],["b840","\u7779\u776A\u776C\u775C\u7765\u7768\u7762\u77EE\u788E\u78B0\u7897\u7898\u788C\u7889\u787C\u7891\u7893\u787F\u797A\u797F\u7981\u842C\u79BD\u7A1C\u7A1A\u7A20\u7A14\u7A1F\u7A1E\u7A9F\u7AA0\u7B77\u7BC0\u7B60\u7B6E\u7B67\u7CB1\u7CB3\u7CB5\u7D93\u7D79\u7D91\u7D81\u7D8F\u7D5B\u7F6E\u7F69\u7F6A\u7F72\u7FA9\u7FA8\u7FA4\u8056\u8058\u8086\u8084\u8171\u8170\u8178\u8165\u816E\u8173\u816B"],["b8a1","\u8179\u817A\u8166\u8205\u8247\u8482\u8477\u843D\u8431\u8475\u8466\u846B\u8449\u846C\u845B\u843C\u8435\u8461\u8463\u8469\u846D\u8446\u865E\u865C\u865F\u86F9\u8713\u8708\u8707\u8700\u86FE\u86FB\u8702\u8703\u8706\u870A\u8859\u88DF\u88D4\u88D9\u88DC\u88D8\u88DD\u88E1\u88CA\u88D5\u88D2\u899C\u89E3\u8A6B\u8A72\u8A73\u8A66\u8A69\u8A70\u8A87\u8A7C\u8A63\u8AA0\u8A71\u8A85\u8A6D\u8A62\u8A6E\u8A6C\u8A79\u8A7B\u8A3E\u8A68\u8C62\u8C8A\u8C89\u8CCA\u8CC7\u8CC8\u8CC4\u8CB2\u8CC3\u8CC2\u8CC5\u8DE1\u8DDF\u8DE8\u8DEF\u8DF3\u8DFA\u8DEA\u8DE4\u8DE6\u8EB2\u8F03\u8F09\u8EFE\u8F0A"],["b940","\u8F9F\u8FB2\u904B\u904A\u9053\u9042\u9054\u903C\u9055\u9050\u9047\u904F\u904E\u904D\u9051\u903E\u9041\u9112\u9117\u916C\u916A\u9169\u91C9\u9237\u9257\u9238\u923D\u9240\u923E\u925B\u924B\u9264\u9251\u9234\u9249\u924D\u9245\u9239\u923F\u925A\u9598\u9698\u9694\u9695\u96CD\u96CB\u96C9\u96CA\u96F7\u96FB\u96F9\u96F6\u9756\u9774\u9776\u9810\u9811\u9813\u980A\u9812\u980C\u98FC\u98F4"],["b9a1","\u98FD\u98FE\u99B3\u99B1\u99B4\u9AE1\u9CE9\u9E82\u9F0E\u9F13\u9F20\u50E7\u50EE\u50E5\u50D6\u50ED\u50DA\u50D5\u50CF\u50D1\u50F1\u50CE\u50E9\u5162\u51F3\u5283\u5282\u5331\u53AD\u55FE\u5600\u561B\u5617\u55FD\u5614\u5606\u5609\u560D\u560E\u55F7\u5616\u561F\u5608\u5610\u55F6\u5718\u5716\u5875\u587E\u5883\u5893\u588A\u5879\u5885\u587D\u58FD\u5925\u5922\u5924\u596A\u5969\u5AE1\u5AE6\u5AE9\u5AD7\u5AD6\u5AD8\u5AE3\u5B75\u5BDE\u5BE7\u5BE1\u5BE5\u5BE6\u5BE8\u5BE2\u5BE4\u5BDF\u5C0D\u5C62\u5D84\u5D87\u5E5B\u5E63\u5E55\u5E57\u5E54\u5ED3\u5ED6\u5F0A\u5F46\u5F70\u5FB9\u6147"],["ba40","\u613F\u614B\u6177\u6162\u6163\u615F\u615A\u6158\u6175\u622A\u6487\u6458\u6454\u64A4\u6478\u645F\u647A\u6451\u6467\u6434\u646D\u647B\u6572\u65A1\u65D7\u65D6\u66A2\u66A8\u669D\u699C\u69A8\u6995\u69C1\u69AE\u69D3\u69CB\u699B\u69B7\u69BB\u69AB\u69B4\u69D0\u69CD\u69AD\u69CC\u69A6\u69C3\u69A3\u6B49\u6B4C\u6C33\u6F33\u6F14\u6EFE\u6F13\u6EF4\u6F29\u6F3E\u6F20\u6F2C\u6F0F\u6F02\u6F22"],["baa1","\u6EFF\u6EEF\u6F06\u6F31\u6F38\u6F32\u6F23\u6F15\u6F2B\u6F2F\u6F88\u6F2A\u6EEC\u6F01\u6EF2\u6ECC\u6EF7\u7194\u7199\u717D\u718A\u7184\u7192\u723E\u7292\u7296\u7344\u7350\u7464\u7463\u746A\u7470\u746D\u7504\u7591\u7627\u760D\u760B\u7609\u7613\u76E1\u76E3\u7784\u777D\u777F\u7761\u78C1\u789F\u78A7\u78B3\u78A9\u78A3\u798E\u798F\u798D\u7A2E\u7A31\u7AAA\u7AA9\u7AED\u7AEF\u7BA1\u7B95\u7B8B\u7B75\u7B97\u7B9D\u7B94\u7B8F\u7BB8\u7B87\u7B84\u7CB9\u7CBD\u7CBE\u7DBB\u7DB0\u7D9C\u7DBD\u7DBE\u7DA0\u7DCA\u7DB4\u7DB2\u7DB1\u7DBA\u7DA2\u7DBF\u7DB5\u7DB8\u7DAD\u7DD2\u7DC7\u7DAC"],["bb40","\u7F70\u7FE0\u7FE1\u7FDF\u805E\u805A\u8087\u8150\u8180\u818F\u8188\u818A\u817F\u8182\u81E7\u81FA\u8207\u8214\u821E\u824B\u84C9\u84BF\u84C6\u84C4\u8499\u849E\u84B2\u849C\u84CB\u84B8\u84C0\u84D3\u8490\u84BC\u84D1\u84CA\u873F\u871C\u873B\u8722\u8725\u8734\u8718\u8755\u8737\u8729\u88F3\u8902\u88F4\u88F9\u88F8\u88FD\u88E8\u891A\u88EF\u8AA6\u8A8C\u8A9E\u8AA3\u8A8D\u8AA1\u8A93\u8AA4"],["bba1","\u8AAA\u8AA5\u8AA8\u8A98\u8A91\u8A9A\u8AA7\u8C6A\u8C8D\u8C8C\u8CD3\u8CD1\u8CD2\u8D6B\u8D99\u8D95\u8DFC\u8F14\u8F12\u8F15\u8F13\u8FA3\u9060\u9058\u905C\u9063\u9059\u905E\u9062\u905D\u905B\u9119\u9118\u911E\u9175\u9178\u9177\u9174\u9278\u9280\u9285\u9298\u9296\u927B\u9293\u929C\u92A8\u927C\u9291\u95A1\u95A8\u95A9\u95A3\u95A5\u95A4\u9699\u969C\u969B\u96CC\u96D2\u9700\u977C\u9785\u97F6\u9817\u9818\u98AF\u98B1\u9903\u9905\u990C\u9909\u99C1\u9AAF\u9AB0\u9AE6\u9B41\u9B42\u9CF4\u9CF6\u9CF3\u9EBC\u9F3B\u9F4A\u5104\u5100\u50FB\u50F5\u50F9\u5102\u5108\u5109\u5105\u51DC"],["bc40","\u5287\u5288\u5289\u528D\u528A\u52F0\u53B2\u562E\u563B\u5639\u5632\u563F\u5634\u5629\u5653\u564E\u5657\u5674\u5636\u562F\u5630\u5880\u589F\u589E\u58B3\u589C\u58AE\u58A9\u58A6\u596D\u5B09\u5AFB\u5B0B\u5AF5\u5B0C\u5B08\u5BEE\u5BEC\u5BE9\u5BEB\u5C64\u5C65\u5D9D\u5D94\u5E62\u5E5F\u5E61\u5EE2\u5EDA\u5EDF\u5EDD\u5EE3\u5EE0\u5F48\u5F71\u5FB7\u5FB5\u6176\u6167\u616E\u615D\u6155\u6182"],["bca1","\u617C\u6170\u616B\u617E\u61A7\u6190\u61AB\u618E\u61AC\u619A\u61A4\u6194\u61AE\u622E\u6469\u646F\u6479\u649E\u64B2\u6488\u6490\u64B0\u64A5\u6493\u6495\u64A9\u6492\u64AE\u64AD\u64AB\u649A\u64AC\u6499\u64A2\u64B3\u6575\u6577\u6578\u66AE\u66AB\u66B4\u66B1\u6A23\u6A1F\u69E8\u6A01\u6A1E\u6A19\u69FD\u6A21\u6A13\u6A0A\u69F3\u6A02\u6A05\u69ED\u6A11\u6B50\u6B4E\u6BA4\u6BC5\u6BC6\u6F3F\u6F7C\u6F84\u6F51\u6F66\u6F54\u6F86\u6F6D\u6F5B\u6F78\u6F6E\u6F8E\u6F7A\u6F70\u6F64\u6F97\u6F58\u6ED5\u6F6F\u6F60\u6F5F\u719F\u71AC\u71B1\u71A8\u7256\u729B\u734E\u7357\u7469\u748B\u7483"],["bd40","\u747E\u7480\u757F\u7620\u7629\u761F\u7624\u7626\u7621\u7622\u769A\u76BA\u76E4\u778E\u7787\u778C\u7791\u778B\u78CB\u78C5\u78BA\u78CA\u78BE\u78D5\u78BC\u78D0\u7A3F\u7A3C\u7A40\u7A3D\u7A37\u7A3B\u7AAF\u7AAE\u7BAD\u7BB1\u7BC4\u7BB4\u7BC6\u7BC7\u7BC1\u7BA0\u7BCC\u7CCA\u7DE0\u7DF4\u7DEF\u7DFB\u7DD8\u7DEC\u7DDD\u7DE8\u7DE3\u7DDA\u7DDE\u7DE9\u7D9E\u7DD9\u7DF2\u7DF9\u7F75\u7F77\u7FAF"],["bda1","\u7FE9\u8026\u819B\u819C\u819D\u81A0\u819A\u8198\u8517\u853D\u851A\u84EE\u852C\u852D\u8513\u8511\u8523\u8521\u8514\u84EC\u8525\u84FF\u8506\u8782\u8774\u8776\u8760\u8766\u8778\u8768\u8759\u8757\u874C\u8753\u885B\u885D\u8910\u8907\u8912\u8913\u8915\u890A\u8ABC\u8AD2\u8AC7\u8AC4\u8A95\u8ACB\u8AF8\u8AB2\u8AC9\u8AC2\u8ABF\u8AB0\u8AD6\u8ACD\u8AB6\u8AB9\u8ADB\u8C4C\u8C4E\u8C6C\u8CE0\u8CDE\u8CE6\u8CE4\u8CEC\u8CED\u8CE2\u8CE3\u8CDC\u8CEA\u8CE1\u8D6D\u8D9F\u8DA3\u8E2B\u8E10\u8E1D\u8E22\u8E0F\u8E29\u8E1F\u8E21\u8E1E\u8EBA\u8F1D\u8F1B\u8F1F\u8F29\u8F26\u8F2A\u8F1C\u8F1E"],["be40","\u8F25\u9069\u906E\u9068\u906D\u9077\u9130\u912D\u9127\u9131\u9187\u9189\u918B\u9183\u92C5\u92BB\u92B7\u92EA\u92AC\u92E4\u92C1\u92B3\u92BC\u92D2\u92C7\u92F0\u92B2\u95AD\u95B1\u9704\u9706\u9707\u9709\u9760\u978D\u978B\u978F\u9821\u982B\u981C\u98B3\u990A\u9913\u9912\u9918\u99DD\u99D0\u99DF\u99DB\u99D1\u99D5\u99D2\u99D9\u9AB7\u9AEE\u9AEF\u9B27\u9B45\u9B44\u9B77\u9B6F\u9D06\u9D09"],["bea1","\u9D03\u9EA9\u9EBE\u9ECE\u58A8\u9F52\u5112\u5118\u5114\u5110\u5115\u5180\u51AA\u51DD\u5291\u5293\u52F3\u5659\u566B\u5679\u5669\u5664\u5678\u566A\u5668\u5665\u5671\u566F\u566C\u5662\u5676\u58C1\u58BE\u58C7\u58C5\u596E\u5B1D\u5B34\u5B78\u5BF0\u5C0E\u5F4A\u61B2\u6191\u61A9\u618A\u61CD\u61B6\u61BE\u61CA\u61C8\u6230\u64C5\u64C1\u64CB\u64BB\u64BC\u64DA\u64C4\u64C7\u64C2\u64CD\u64BF\u64D2\u64D4\u64BE\u6574\u66C6\u66C9\u66B9\u66C4\u66C7\u66B8\u6A3D\u6A38\u6A3A\u6A59\u6A6B\u6A58\u6A39\u6A44\u6A62\u6A61\u6A4B\u6A47\u6A35\u6A5F\u6A48\u6B59\u6B77\u6C05\u6FC2\u6FB1\u6FA1"],["bf40","\u6FC3\u6FA4\u6FC1\u6FA7\u6FB3\u6FC0\u6FB9\u6FB6\u6FA6\u6FA0\u6FB4\u71BE\u71C9\u71D0\u71D2\u71C8\u71D5\u71B9\u71CE\u71D9\u71DC\u71C3\u71C4\u7368\u749C\u74A3\u7498\u749F\u749E\u74E2\u750C\u750D\u7634\u7638\u763A\u76E7\u76E5\u77A0\u779E\u779F\u77A5\u78E8\u78DA\u78EC\u78E7\u79A6\u7A4D\u7A4E\u7A46\u7A4C\u7A4B\u7ABA\u7BD9\u7C11\u7BC9\u7BE4\u7BDB\u7BE1\u7BE9\u7BE6\u7CD5\u7CD6\u7E0A"],["bfa1","\u7E11\u7E08\u7E1B\u7E23\u7E1E\u7E1D\u7E09\u7E10\u7F79\u7FB2\u7FF0\u7FF1\u7FEE\u8028\u81B3\u81A9\u81A8\u81FB\u8208\u8258\u8259\u854A\u8559\u8548\u8568\u8569\u8543\u8549\u856D\u856A\u855E\u8783\u879F\u879E\u87A2\u878D\u8861\u892A\u8932\u8925\u892B\u8921\u89AA\u89A6\u8AE6\u8AFA\u8AEB\u8AF1\u8B00\u8ADC\u8AE7\u8AEE\u8AFE\u8B01\u8B02\u8AF7\u8AED\u8AF3\u8AF6\u8AFC\u8C6B\u8C6D\u8C93\u8CF4\u8E44\u8E31\u8E34\u8E42\u8E39\u8E35\u8F3B\u8F2F\u8F38\u8F33\u8FA8\u8FA6\u9075\u9074\u9078\u9072\u907C\u907A\u9134\u9192\u9320\u9336\u92F8\u9333\u932F\u9322\u92FC\u932B\u9304\u931A"],["c040","\u9310\u9326\u9321\u9315\u932E\u9319\u95BB\u96A7\u96A8\u96AA\u96D5\u970E\u9711\u9716\u970D\u9713\u970F\u975B\u975C\u9766\u9798\u9830\u9838\u983B\u9837\u982D\u9839\u9824\u9910\u9928\u991E\u991B\u9921\u991A\u99ED\u99E2\u99F1\u9AB8\u9ABC\u9AFB\u9AED\u9B28\u9B91\u9D15\u9D23\u9D26\u9D28\u9D12\u9D1B\u9ED8\u9ED4\u9F8D\u9F9C\u512A\u511F\u5121\u5132\u52F5\u568E\u5680\u5690\u5685\u5687"],["c0a1","\u568F\u58D5\u58D3\u58D1\u58CE\u5B30\u5B2A\u5B24\u5B7A\u5C37\u5C68\u5DBC\u5DBA\u5DBD\u5DB8\u5E6B\u5F4C\u5FBD\u61C9\u61C2\u61C7\u61E6\u61CB\u6232\u6234\u64CE\u64CA\u64D8\u64E0\u64F0\u64E6\u64EC\u64F1\u64E2\u64ED\u6582\u6583\u66D9\u66D6\u6A80\u6A94\u6A84\u6AA2\u6A9C\u6ADB\u6AA3\u6A7E\u6A97\u6A90\u6AA0\u6B5C\u6BAE\u6BDA\u6C08\u6FD8\u6FF1\u6FDF\u6FE0\u6FDB\u6FE4\u6FEB\u6FEF\u6F80\u6FEC\u6FE1\u6FE9\u6FD5\u6FEE\u6FF0\u71E7\u71DF\u71EE\u71E6\u71E5\u71ED\u71EC\u71F4\u71E0\u7235\u7246\u7370\u7372\u74A9\u74B0\u74A6\u74A8\u7646\u7642\u764C\u76EA\u77B3\u77AA\u77B0\u77AC"],["c140","\u77A7\u77AD\u77EF\u78F7\u78FA\u78F4\u78EF\u7901\u79A7\u79AA\u7A57\u7ABF\u7C07\u7C0D\u7BFE\u7BF7\u7C0C\u7BE0\u7CE0\u7CDC\u7CDE\u7CE2\u7CDF\u7CD9\u7CDD\u7E2E\u7E3E\u7E46\u7E37\u7E32\u7E43\u7E2B\u7E3D\u7E31\u7E45\u7E41\u7E34\u7E39\u7E48\u7E35\u7E3F\u7E2F\u7F44\u7FF3\u7FFC\u8071\u8072\u8070\u806F\u8073\u81C6\u81C3\u81BA\u81C2\u81C0\u81BF\u81BD\u81C9\u81BE\u81E8\u8209\u8271\u85AA"],["c1a1","\u8584\u857E\u859C\u8591\u8594\u85AF\u859B\u8587\u85A8\u858A\u8667\u87C0\u87D1\u87B3\u87D2\u87C6\u87AB\u87BB\u87BA\u87C8\u87CB\u893B\u8936\u8944\u8938\u893D\u89AC\u8B0E\u8B17\u8B19\u8B1B\u8B0A\u8B20\u8B1D\u8B04\u8B10\u8C41\u8C3F\u8C73\u8CFA\u8CFD\u8CFC\u8CF8\u8CFB\u8DA8\u8E49\u8E4B\u8E48\u8E4A\u8F44\u8F3E\u8F42\u8F45\u8F3F\u907F\u907D\u9084\u9081\u9082\u9080\u9139\u91A3\u919E\u919C\u934D\u9382\u9328\u9375\u934A\u9365\u934B\u9318\u937E\u936C\u935B\u9370\u935A\u9354\u95CA\u95CB\u95CC\u95C8\u95C6\u96B1\u96B8\u96D6\u971C\u971E\u97A0\u97D3\u9846\u98B6\u9935\u9A01"],["c240","\u99FF\u9BAE\u9BAB\u9BAA\u9BAD\u9D3B\u9D3F\u9E8B\u9ECF\u9EDE\u9EDC\u9EDD\u9EDB\u9F3E\u9F4B\u53E2\u5695\u56AE\u58D9\u58D8\u5B38\u5F5D\u61E3\u6233\u64F4\u64F2\u64FE\u6506\u64FA\u64FB\u64F7\u65B7\u66DC\u6726\u6AB3\u6AAC\u6AC3\u6ABB\u6AB8\u6AC2\u6AAE\u6AAF\u6B5F\u6B78\u6BAF\u7009\u700B\u6FFE\u7006\u6FFA\u7011\u700F\u71FB\u71FC\u71FE\u71F8\u7377\u7375\u74A7\u74BF\u7515\u7656\u7658"],["c2a1","\u7652\u77BD\u77BF\u77BB\u77BC\u790E\u79AE\u7A61\u7A62\u7A60\u7AC4\u7AC5\u7C2B\u7C27\u7C2A\u7C1E\u7C23\u7C21\u7CE7\u7E54\u7E55\u7E5E\u7E5A\u7E61\u7E52\u7E59\u7F48\u7FF9\u7FFB\u8077\u8076\u81CD\u81CF\u820A\u85CF\u85A9\u85CD\u85D0\u85C9\u85B0\u85BA\u85B9\u85A6\u87EF\u87EC\u87F2\u87E0\u8986\u89B2\u89F4\u8B28\u8B39\u8B2C\u8B2B\u8C50\u8D05\u8E59\u8E63\u8E66\u8E64\u8E5F\u8E55\u8EC0\u8F49\u8F4D\u9087\u9083\u9088\u91AB\u91AC\u91D0\u9394\u938A\u9396\u93A2\u93B3\u93AE\u93AC\u93B0\u9398\u939A\u9397\u95D4\u95D6\u95D0\u95D5\u96E2\u96DC\u96D9\u96DB\u96DE\u9724\u97A3\u97A6"],["c340","\u97AD\u97F9\u984D\u984F\u984C\u984E\u9853\u98BA\u993E\u993F\u993D\u992E\u99A5\u9A0E\u9AC1\u9B03\u9B06\u9B4F\u9B4E\u9B4D\u9BCA\u9BC9\u9BFD\u9BC8\u9BC0\u9D51\u9D5D\u9D60\u9EE0\u9F15\u9F2C\u5133\u56A5\u58DE\u58DF\u58E2\u5BF5\u9F90\u5EEC\u61F2\u61F7\u61F6\u61F5\u6500\u650F\u66E0\u66DD\u6AE5\u6ADD\u6ADA\u6AD3\u701B\u701F\u7028\u701A\u701D\u7015\u7018\u7206\u720D\u7258\u72A2\u7378"],["c3a1","\u737A\u74BD\u74CA\u74E3\u7587\u7586\u765F\u7661\u77C7\u7919\u79B1\u7A6B\u7A69\u7C3E\u7C3F\u7C38\u7C3D\u7C37\u7C40\u7E6B\u7E6D\u7E79\u7E69\u7E6A\u7F85\u7E73\u7FB6\u7FB9\u7FB8\u81D8\u85E9\u85DD\u85EA\u85D5\u85E4\u85E5\u85F7\u87FB\u8805\u880D\u87F9\u87FE\u8960\u895F\u8956\u895E\u8B41\u8B5C\u8B58\u8B49\u8B5A\u8B4E\u8B4F\u8B46\u8B59\u8D08\u8D0A\u8E7C\u8E72\u8E87\u8E76\u8E6C\u8E7A\u8E74\u8F54\u8F4E\u8FAD\u908A\u908B\u91B1\u91AE\u93E1\u93D1\u93DF\u93C3\u93C8\u93DC\u93DD\u93D6\u93E2\u93CD\u93D8\u93E4\u93D7\u93E8\u95DC\u96B4\u96E3\u972A\u9727\u9761\u97DC\u97FB\u985E"],["c440","\u9858\u985B\u98BC\u9945\u9949\u9A16\u9A19\u9B0D\u9BE8\u9BE7\u9BD6\u9BDB\u9D89\u9D61\u9D72\u9D6A\u9D6C\u9E92\u9E97\u9E93\u9EB4\u52F8\u56A8\u56B7\u56B6\u56B4\u56BC\u58E4\u5B40\u5B43\u5B7D\u5BF6\u5DC9\u61F8\u61FA\u6518\u6514\u6519\u66E6\u6727\u6AEC\u703E\u7030\u7032\u7210\u737B\u74CF\u7662\u7665\u7926\u792A\u792C\u792B\u7AC7\u7AF6\u7C4C\u7C43\u7C4D\u7CEF\u7CF0\u8FAE\u7E7D\u7E7C"],["c4a1","\u7E82\u7F4C\u8000\u81DA\u8266\u85FB\u85F9\u8611\u85FA\u8606\u860B\u8607\u860A\u8814\u8815\u8964\u89BA\u89F8\u8B70\u8B6C\u8B66\u8B6F\u8B5F\u8B6B\u8D0F\u8D0D\u8E89\u8E81\u8E85\u8E82\u91B4\u91CB\u9418\u9403\u93FD\u95E1\u9730\u98C4\u9952\u9951\u99A8\u9A2B\u9A30\u9A37\u9A35\u9C13\u9C0D\u9E79\u9EB5\u9EE8\u9F2F\u9F5F\u9F63\u9F61\u5137\u5138\u56C1\u56C0\u56C2\u5914\u5C6C\u5DCD\u61FC\u61FE\u651D\u651C\u6595\u66E9\u6AFB\u6B04\u6AFA\u6BB2\u704C\u721B\u72A7\u74D6\u74D4\u7669\u77D3\u7C50\u7E8F\u7E8C\u7FBC\u8617\u862D\u861A\u8823\u8822\u8821\u881F\u896A\u896C\u89BD\u8B74"],["c540","\u8B77\u8B7D\u8D13\u8E8A\u8E8D\u8E8B\u8F5F\u8FAF\u91BA\u942E\u9433\u9435\u943A\u9438\u9432\u942B\u95E2\u9738\u9739\u9732\u97FF\u9867\u9865\u9957\u9A45\u9A43\u9A40\u9A3E\u9ACF\u9B54\u9B51\u9C2D\u9C25\u9DAF\u9DB4\u9DC2\u9DB8\u9E9D\u9EEF\u9F19\u9F5C\u9F66\u9F67\u513C\u513B\u56C8\u56CA\u56C9\u5B7F\u5DD4\u5DD2\u5F4E\u61FF\u6524\u6B0A\u6B61\u7051\u7058\u7380\u74E4\u758A\u766E\u766C"],["c5a1","\u79B3\u7C60\u7C5F\u807E\u807D\u81DF\u8972\u896F\u89FC\u8B80\u8D16\u8D17\u8E91\u8E93\u8F61\u9148\u9444\u9451\u9452\u973D\u973E\u97C3\u97C1\u986B\u9955\u9A55\u9A4D\u9AD2\u9B1A\u9C49\u9C31\u9C3E\u9C3B\u9DD3\u9DD7\u9F34\u9F6C\u9F6A\u9F94\u56CC\u5DD6\u6200\u6523\u652B\u652A\u66EC\u6B10\u74DA\u7ACA\u7C64\u7C63\u7C65\u7E93\u7E96\u7E94\u81E2\u8638\u863F\u8831\u8B8A\u9090\u908F\u9463\u9460\u9464\u9768\u986F\u995C\u9A5A\u9A5B\u9A57\u9AD3\u9AD4\u9AD1\u9C54\u9C57\u9C56\u9DE5\u9E9F\u9EF4\u56D1\u58E9\u652C\u705E\u7671\u7672\u77D7\u7F50\u7F88\u8836\u8839\u8862\u8B93\u8B92"],["c640","\u8B96\u8277\u8D1B\u91C0\u946A\u9742\u9748\u9744\u97C6\u9870\u9A5F\u9B22\u9B58\u9C5F\u9DF9\u9DFA\u9E7C\u9E7D\u9F07\u9F77\u9F72\u5EF3\u6B16\u7063\u7C6C\u7C6E\u883B\u89C0\u8EA1\u91C1\u9472\u9470\u9871\u995E\u9AD6\u9B23\u9ECC\u7064\u77DA\u8B9A\u9477\u97C9\u9A62\u9A65\u7E9C\u8B9C\u8EAA\u91C5\u947D\u947E\u947C\u9C77\u9C78\u9EF7\u8C54\u947F\u9E1A\u7228\u9A6A\u9B31\u9E1B\u9E1E\u7C72"],["c940","\u4E42\u4E5C\u51F5\u531A\u5382\u4E07\u4E0C\u4E47\u4E8D\u56D7\uFA0C\u5C6E\u5F73\u4E0F\u5187\u4E0E\u4E2E\u4E93\u4EC2\u4EC9\u4EC8\u5198\u52FC\u536C\u53B9\u5720\u5903\u592C\u5C10\u5DFF\u65E1\u6BB3\u6BCC\u6C14\u723F\u4E31\u4E3C\u4EE8\u4EDC\u4EE9\u4EE1\u4EDD\u4EDA\u520C\u531C\u534C\u5722\u5723\u5917\u592F\u5B81\u5B84\u5C12\u5C3B\u5C74\u5C73\u5E04\u5E80\u5E82\u5FC9\u6209\u6250\u6C15"],["c9a1","\u6C36\u6C43\u6C3F\u6C3B\u72AE\u72B0\u738A\u79B8\u808A\u961E\u4F0E\u4F18\u4F2C\u4EF5\u4F14\u4EF1\u4F00\u4EF7\u4F08\u4F1D\u4F02\u4F05\u4F22\u4F13\u4F04\u4EF4\u4F12\u51B1\u5213\u5209\u5210\u52A6\u5322\u531F\u534D\u538A\u5407\u56E1\u56DF\u572E\u572A\u5734\u593C\u5980\u597C\u5985\u597B\u597E\u5977\u597F\u5B56\u5C15\u5C25\u5C7C\u5C7A\u5C7B\u5C7E\u5DDF\u5E75\u5E84\u5F02\u5F1A\u5F74\u5FD5\u5FD4\u5FCF\u625C\u625E\u6264\u6261\u6266\u6262\u6259\u6260\u625A\u6265\u65EF\u65EE\u673E\u6739\u6738\u673B\u673A\u673F\u673C\u6733\u6C18\u6C46\u6C52\u6C5C\u6C4F\u6C4A\u6C54\u6C4B"],["ca40","\u6C4C\u7071\u725E\u72B4\u72B5\u738E\u752A\u767F\u7A75\u7F51\u8278\u827C\u8280\u827D\u827F\u864D\u897E\u9099\u9097\u9098\u909B\u9094\u9622\u9624\u9620\u9623\u4F56\u4F3B\u4F62\u4F49\u4F53\u4F64\u4F3E\u4F67\u4F52\u4F5F\u4F41\u4F58\u4F2D\u4F33\u4F3F\u4F61\u518F\u51B9\u521C\u521E\u5221\u52AD\u52AE\u5309\u5363\u5372\u538E\u538F\u5430\u5437\u542A\u5454\u5445\u5419\u541C\u5425\u5418"],["caa1","\u543D\u544F\u5441\u5428\u5424\u5447\u56EE\u56E7\u56E5\u5741\u5745\u574C\u5749\u574B\u5752\u5906\u5940\u59A6\u5998\u59A0\u5997\u598E\u59A2\u5990\u598F\u59A7\u59A1\u5B8E\u5B92\u5C28\u5C2A\u5C8D\u5C8F\u5C88\u5C8B\u5C89\u5C92\u5C8A\u5C86\u5C93\u5C95\u5DE0\u5E0A\u5E0E\u5E8B\u5E89\u5E8C\u5E88\u5E8D\u5F05\u5F1D\u5F78\u5F76\u5FD2\u5FD1\u5FD0\u5FED\u5FE8\u5FEE\u5FF3\u5FE1\u5FE4\u5FE3\u5FFA\u5FEF\u5FF7\u5FFB\u6000\u5FF4\u623A\u6283\u628C\u628E\u628F\u6294\u6287\u6271\u627B\u627A\u6270\u6281\u6288\u6277\u627D\u6272\u6274\u6537\u65F0\u65F4\u65F3\u65F2\u65F5\u6745\u6747"],["cb40","\u6759\u6755\u674C\u6748\u675D\u674D\u675A\u674B\u6BD0\u6C19\u6C1A\u6C78\u6C67\u6C6B\u6C84\u6C8B\u6C8F\u6C71\u6C6F\u6C69\u6C9A\u6C6D\u6C87\u6C95\u6C9C\u6C66\u6C73\u6C65\u6C7B\u6C8E\u7074\u707A\u7263\u72BF\u72BD\u72C3\u72C6\u72C1\u72BA\u72C5\u7395\u7397\u7393\u7394\u7392\u753A\u7539\u7594\u7595\u7681\u793D\u8034\u8095\u8099\u8090\u8092\u809C\u8290\u828F\u8285\u828E\u8291\u8293"],["cba1","\u828A\u8283\u8284\u8C78\u8FC9\u8FBF\u909F\u90A1\u90A5\u909E\u90A7\u90A0\u9630\u9628\u962F\u962D\u4E33\u4F98\u4F7C\u4F85\u4F7D\u4F80\u4F87\u4F76\u4F74\u4F89\u4F84\u4F77\u4F4C\u4F97\u4F6A\u4F9A\u4F79\u4F81\u4F78\u4F90\u4F9C\u4F94\u4F9E\u4F92\u4F82\u4F95\u4F6B\u4F6E\u519E\u51BC\u51BE\u5235\u5232\u5233\u5246\u5231\u52BC\u530A\u530B\u533C\u5392\u5394\u5487\u547F\u5481\u5491\u5482\u5488\u546B\u547A\u547E\u5465\u546C\u5474\u5466\u548D\u546F\u5461\u5460\u5498\u5463\u5467\u5464\u56F7\u56F9\u576F\u5772\u576D\u576B\u5771\u5770\u5776\u5780\u5775\u577B\u5773\u5774\u5762"],["cc40","\u5768\u577D\u590C\u5945\u59B5\u59BA\u59CF\u59CE\u59B2\u59CC\u59C1\u59B6\u59BC\u59C3\u59D6\u59B1\u59BD\u59C0\u59C8\u59B4\u59C7\u5B62\u5B65\u5B93\u5B95\u5C44\u5C47\u5CAE\u5CA4\u5CA0\u5CB5\u5CAF\u5CA8\u5CAC\u5C9F\u5CA3\u5CAD\u5CA2\u5CAA\u5CA7\u5C9D\u5CA5\u5CB6\u5CB0\u5CA6\u5E17\u5E14\u5E19\u5F28\u5F22\u5F23\u5F24\u5F54\u5F82\u5F7E\u5F7D\u5FDE\u5FE5\u602D\u6026\u6019\u6032\u600B"],["cca1","\u6034\u600A\u6017\u6033\u601A\u601E\u602C\u6022\u600D\u6010\u602E\u6013\u6011\u600C\u6009\u601C\u6214\u623D\u62AD\u62B4\u62D1\u62BE\u62AA\u62B6\u62CA\u62AE\u62B3\u62AF\u62BB\u62A9\u62B0\u62B8\u653D\u65A8\u65BB\u6609\u65FC\u6604\u6612\u6608\u65FB\u6603\u660B\u660D\u6605\u65FD\u6611\u6610\u66F6\u670A\u6785\u676C\u678E\u6792\u6776\u677B\u6798\u6786\u6784\u6774\u678D\u678C\u677A\u679F\u6791\u6799\u6783\u677D\u6781\u6778\u6779\u6794\u6B25\u6B80\u6B7E\u6BDE\u6C1D\u6C93\u6CEC\u6CEB\u6CEE\u6CD9\u6CB6\u6CD4\u6CAD\u6CE7\u6CB7\u6CD0\u6CC2\u6CBA\u6CC3\u6CC6\u6CED\u6CF2"],["cd40","\u6CD2\u6CDD\u6CB4\u6C8A\u6C9D\u6C80\u6CDE\u6CC0\u6D30\u6CCD\u6CC7\u6CB0\u6CF9\u6CCF\u6CE9\u6CD1\u7094\u7098\u7085\u7093\u7086\u7084\u7091\u7096\u7082\u709A\u7083\u726A\u72D6\u72CB\u72D8\u72C9\u72DC\u72D2\u72D4\u72DA\u72CC\u72D1\u73A4\u73A1\u73AD\u73A6\u73A2\u73A0\u73AC\u739D\u74DD\u74E8\u753F\u7540\u753E\u758C\u7598\u76AF\u76F3\u76F1\u76F0\u76F5\u77F8\u77FC\u77F9\u77FB\u77FA"],["cda1","\u77F7\u7942\u793F\u79C5\u7A78\u7A7B\u7AFB\u7C75\u7CFD\u8035\u808F\u80AE\u80A3\u80B8\u80B5\u80AD\u8220\u82A0\u82C0\u82AB\u829A\u8298\u829B\u82B5\u82A7\u82AE\u82BC\u829E\u82BA\u82B4\u82A8\u82A1\u82A9\u82C2\u82A4\u82C3\u82B6\u82A2\u8670\u866F\u866D\u866E\u8C56\u8FD2\u8FCB\u8FD3\u8FCD\u8FD6\u8FD5\u8FD7\u90B2\u90B4\u90AF\u90B3\u90B0\u9639\u963D\u963C\u963A\u9643\u4FCD\u4FC5\u4FD3\u4FB2\u4FC9\u4FCB\u4FC1\u4FD4\u4FDC\u4FD9\u4FBB\u4FB3\u4FDB\u4FC7\u4FD6\u4FBA\u4FC0\u4FB9\u4FEC\u5244\u5249\u52C0\u52C2\u533D\u537C\u5397\u5396\u5399\u5398\u54BA\u54A1\u54AD\u54A5\u54CF"],["ce40","\u54C3\u830D\u54B7\u54AE\u54D6\u54B6\u54C5\u54C6\u54A0\u5470\u54BC\u54A2\u54BE\u5472\u54DE\u54B0\u57B5\u579E\u579F\u57A4\u578C\u5797\u579D\u579B\u5794\u5798\u578F\u5799\u57A5\u579A\u5795\u58F4\u590D\u5953\u59E1\u59DE\u59EE\u5A00\u59F1\u59DD\u59FA\u59FD\u59FC\u59F6\u59E4\u59F2\u59F7\u59DB\u59E9\u59F3\u59F5\u59E0\u59FE\u59F4\u59ED\u5BA8\u5C4C\u5CD0\u5CD8\u5CCC\u5CD7\u5CCB\u5CDB"],["cea1","\u5CDE\u5CDA\u5CC9\u5CC7\u5CCA\u5CD6\u5CD3\u5CD4\u5CCF\u5CC8\u5CC6\u5CCE\u5CDF\u5CF8\u5DF9\u5E21\u5E22\u5E23\u5E20\u5E24\u5EB0\u5EA4\u5EA2\u5E9B\u5EA3\u5EA5\u5F07\u5F2E\u5F56\u5F86\u6037\u6039\u6054\u6072\u605E\u6045\u6053\u6047\u6049\u605B\u604C\u6040\u6042\u605F\u6024\u6044\u6058\u6066\u606E\u6242\u6243\u62CF\u630D\u630B\u62F5\u630E\u6303\u62EB\u62F9\u630F\u630C\u62F8\u62F6\u6300\u6313\u6314\u62FA\u6315\u62FB\u62F0\u6541\u6543\u65AA\u65BF\u6636\u6621\u6632\u6635\u661C\u6626\u6622\u6633\u662B\u663A\u661D\u6634\u6639\u662E\u670F\u6710\u67C1\u67F2\u67C8\u67BA"],["cf40","\u67DC\u67BB\u67F8\u67D8\u67C0\u67B7\u67C5\u67EB\u67E4\u67DF\u67B5\u67CD\u67B3\u67F7\u67F6\u67EE\u67E3\u67C2\u67B9\u67CE\u67E7\u67F0\u67B2\u67FC\u67C6\u67ED\u67CC\u67AE\u67E6\u67DB\u67FA\u67C9\u67CA\u67C3\u67EA\u67CB\u6B28\u6B82\u6B84\u6BB6\u6BD6\u6BD8\u6BE0\u6C20\u6C21\u6D28\u6D34\u6D2D\u6D1F\u6D3C\u6D3F\u6D12\u6D0A\u6CDA\u6D33\u6D04\u6D19\u6D3A\u6D1A\u6D11\u6D00\u6D1D\u6D42"],["cfa1","\u6D01\u6D18\u6D37\u6D03\u6D0F\u6D40\u6D07\u6D20\u6D2C\u6D08\u6D22\u6D09\u6D10\u70B7\u709F\u70BE\u70B1\u70B0\u70A1\u70B4\u70B5\u70A9\u7241\u7249\u724A\u726C\u7270\u7273\u726E\u72CA\u72E4\u72E8\u72EB\u72DF\u72EA\u72E6\u72E3\u7385\u73CC\u73C2\u73C8\u73C5\u73B9\u73B6\u73B5\u73B4\u73EB\u73BF\u73C7\u73BE\u73C3\u73C6\u73B8\u73CB\u74EC\u74EE\u752E\u7547\u7548\u75A7\u75AA\u7679\u76C4\u7708\u7703\u7704\u7705\u770A\u76F7\u76FB\u76FA\u77E7\u77E8\u7806\u7811\u7812\u7805\u7810\u780F\u780E\u7809\u7803\u7813\u794A\u794C\u794B\u7945\u7944\u79D5\u79CD\u79CF\u79D6\u79CE\u7A80"],["d040","\u7A7E\u7AD1\u7B00\u7B01\u7C7A\u7C78\u7C79\u7C7F\u7C80\u7C81\u7D03\u7D08\u7D01\u7F58\u7F91\u7F8D\u7FBE\u8007\u800E\u800F\u8014\u8037\u80D8\u80C7\u80E0\u80D1\u80C8\u80C2\u80D0\u80C5\u80E3\u80D9\u80DC\u80CA\u80D5\u80C9\u80CF\u80D7\u80E6\u80CD\u81FF\u8221\u8294\u82D9\u82FE\u82F9\u8307\u82E8\u8300\u82D5\u833A\u82EB\u82D6\u82F4\u82EC\u82E1\u82F2\u82F5\u830C\u82FB\u82F6\u82F0\u82EA"],["d0a1","\u82E4\u82E0\u82FA\u82F3\u82ED\u8677\u8674\u867C\u8673\u8841\u884E\u8867\u886A\u8869\u89D3\u8A04\u8A07\u8D72\u8FE3\u8FE1\u8FEE\u8FE0\u90F1\u90BD\u90BF\u90D5\u90C5\u90BE\u90C7\u90CB\u90C8\u91D4\u91D3\u9654\u964F\u9651\u9653\u964A\u964E\u501E\u5005\u5007\u5013\u5022\u5030\u501B\u4FF5\u4FF4\u5033\u5037\u502C\u4FF6\u4FF7\u5017\u501C\u5020\u5027\u5035\u502F\u5031\u500E\u515A\u5194\u5193\u51CA\u51C4\u51C5\u51C8\u51CE\u5261\u525A\u5252\u525E\u525F\u5255\u5262\u52CD\u530E\u539E\u5526\u54E2\u5517\u5512\u54E7\u54F3\u54E4\u551A\u54FF\u5504\u5508\u54EB\u5511\u5505\u54F1"],["d140","\u550A\u54FB\u54F7\u54F8\u54E0\u550E\u5503\u550B\u5701\u5702\u57CC\u5832\u57D5\u57D2\u57BA\u57C6\u57BD\u57BC\u57B8\u57B6\u57BF\u57C7\u57D0\u57B9\u57C1\u590E\u594A\u5A19\u5A16\u5A2D\u5A2E\u5A15\u5A0F\u5A17\u5A0A\u5A1E\u5A33\u5B6C\u5BA7\u5BAD\u5BAC\u5C03\u5C56\u5C54\u5CEC\u5CFF\u5CEE\u5CF1\u5CF7\u5D00\u5CF9\u5E29\u5E28\u5EA8\u5EAE\u5EAA\u5EAC\u5F33\u5F30\u5F67\u605D\u605A\u6067"],["d1a1","\u6041\u60A2\u6088\u6080\u6092\u6081\u609D\u6083\u6095\u609B\u6097\u6087\u609C\u608E\u6219\u6246\u62F2\u6310\u6356\u632C\u6344\u6345\u6336\u6343\u63E4\u6339\u634B\u634A\u633C\u6329\u6341\u6334\u6358\u6354\u6359\u632D\u6347\u6333\u635A\u6351\u6338\u6357\u6340\u6348\u654A\u6546\u65C6\u65C3\u65C4\u65C2\u664A\u665F\u6647\u6651\u6712\u6713\u681F\u681A\u6849\u6832\u6833\u683B\u684B\u684F\u6816\u6831\u681C\u6835\u682B\u682D\u682F\u684E\u6844\u6834\u681D\u6812\u6814\u6826\u6828\u682E\u684D\u683A\u6825\u6820\u6B2C\u6B2F\u6B2D\u6B31\u6B34\u6B6D\u8082\u6B88\u6BE6\u6BE4"],["d240","\u6BE8\u6BE3\u6BE2\u6BE7\u6C25\u6D7A\u6D63\u6D64\u6D76\u6D0D\u6D61\u6D92\u6D58\u6D62\u6D6D\u6D6F\u6D91\u6D8D\u6DEF\u6D7F\u6D86\u6D5E\u6D67\u6D60\u6D97\u6D70\u6D7C\u6D5F\u6D82\u6D98\u6D2F\u6D68\u6D8B\u6D7E\u6D80\u6D84\u6D16\u6D83\u6D7B\u6D7D\u6D75\u6D90\u70DC\u70D3\u70D1\u70DD\u70CB\u7F39\u70E2\u70D7\u70D2\u70DE\u70E0\u70D4\u70CD\u70C5\u70C6\u70C7\u70DA\u70CE\u70E1\u7242\u7278"],["d2a1","\u7277\u7276\u7300\u72FA\u72F4\u72FE\u72F6\u72F3\u72FB\u7301\u73D3\u73D9\u73E5\u73D6\u73BC\u73E7\u73E3\u73E9\u73DC\u73D2\u73DB\u73D4\u73DD\u73DA\u73D7\u73D8\u73E8\u74DE\u74DF\u74F4\u74F5\u7521\u755B\u755F\u75B0\u75C1\u75BB\u75C4\u75C0\u75BF\u75B6\u75BA\u768A\u76C9\u771D\u771B\u7710\u7713\u7712\u7723\u7711\u7715\u7719\u771A\u7722\u7727\u7823\u782C\u7822\u7835\u782F\u7828\u782E\u782B\u7821\u7829\u7833\u782A\u7831\u7954\u795B\u794F\u795C\u7953\u7952\u7951\u79EB\u79EC\u79E0\u79EE\u79ED\u79EA\u79DC\u79DE\u79DD\u7A86\u7A89\u7A85\u7A8B\u7A8C\u7A8A\u7A87\u7AD8\u7B10"],["d340","\u7B04\u7B13\u7B05\u7B0F\u7B08\u7B0A\u7B0E\u7B09\u7B12\u7C84\u7C91\u7C8A\u7C8C\u7C88\u7C8D\u7C85\u7D1E\u7D1D\u7D11\u7D0E\u7D18\u7D16\u7D13\u7D1F\u7D12\u7D0F\u7D0C\u7F5C\u7F61\u7F5E\u7F60\u7F5D\u7F5B\u7F96\u7F92\u7FC3\u7FC2\u7FC0\u8016\u803E\u8039\u80FA\u80F2\u80F9\u80F5\u8101\u80FB\u8100\u8201\u822F\u8225\u8333\u832D\u8344\u8319\u8351\u8325\u8356\u833F\u8341\u8326\u831C\u8322"],["d3a1","\u8342\u834E\u831B\u832A\u8308\u833C\u834D\u8316\u8324\u8320\u8337\u832F\u8329\u8347\u8345\u834C\u8353\u831E\u832C\u834B\u8327\u8348\u8653\u8652\u86A2\u86A8\u8696\u868D\u8691\u869E\u8687\u8697\u8686\u868B\u869A\u8685\u86A5\u8699\u86A1\u86A7\u8695\u8698\u868E\u869D\u8690\u8694\u8843\u8844\u886D\u8875\u8876\u8872\u8880\u8871\u887F\u886F\u8883\u887E\u8874\u887C\u8A12\u8C47\u8C57\u8C7B\u8CA4\u8CA3\u8D76\u8D78\u8DB5\u8DB7\u8DB6\u8ED1\u8ED3\u8FFE\u8FF5\u9002\u8FFF\u8FFB\u9004\u8FFC\u8FF6\u90D6\u90E0\u90D9\u90DA\u90E3\u90DF\u90E5\u90D8\u90DB\u90D7\u90DC\u90E4\u9150"],["d440","\u914E\u914F\u91D5\u91E2\u91DA\u965C\u965F\u96BC\u98E3\u9ADF\u9B2F\u4E7F\u5070\u506A\u5061\u505E\u5060\u5053\u504B\u505D\u5072\u5048\u504D\u5041\u505B\u504A\u5062\u5015\u5045\u505F\u5069\u506B\u5063\u5064\u5046\u5040\u506E\u5073\u5057\u5051\u51D0\u526B\u526D\u526C\u526E\u52D6\u52D3\u532D\u539C\u5575\u5576\u553C\u554D\u5550\u5534\u552A\u5551\u5562\u5536\u5535\u5530\u5552\u5545"],["d4a1","\u550C\u5532\u5565\u554E\u5539\u5548\u552D\u553B\u5540\u554B\u570A\u5707\u57FB\u5814\u57E2\u57F6\u57DC\u57F4\u5800\u57ED\u57FD\u5808\u57F8\u580B\u57F3\u57CF\u5807\u57EE\u57E3\u57F2\u57E5\u57EC\u57E1\u580E\u57FC\u5810\u57E7\u5801\u580C\u57F1\u57E9\u57F0\u580D\u5804\u595C\u5A60\u5A58\u5A55\u5A67\u5A5E\u5A38\u5A35\u5A6D\u5A50\u5A5F\u5A65\u5A6C\u5A53\u5A64\u5A57\u5A43\u5A5D\u5A52\u5A44\u5A5B\u5A48\u5A8E\u5A3E\u5A4D\u5A39\u5A4C\u5A70\u5A69\u5A47\u5A51\u5A56\u5A42\u5A5C\u5B72\u5B6E\u5BC1\u5BC0\u5C59\u5D1E\u5D0B\u5D1D\u5D1A\u5D20\u5D0C\u5D28\u5D0D\u5D26\u5D25\u5D0F"],["d540","\u5D30\u5D12\u5D23\u5D1F\u5D2E\u5E3E\u5E34\u5EB1\u5EB4\u5EB9\u5EB2\u5EB3\u5F36\u5F38\u5F9B\u5F96\u5F9F\u608A\u6090\u6086\u60BE\u60B0\u60BA\u60D3\u60D4\u60CF\u60E4\u60D9\u60DD\u60C8\u60B1\u60DB\u60B7\u60CA\u60BF\u60C3\u60CD\u60C0\u6332\u6365\u638A\u6382\u637D\u63BD\u639E\u63AD\u639D\u6397\u63AB\u638E\u636F\u6387\u6390\u636E\u63AF\u6375\u639C\u636D\u63AE\u637C\u63A4\u633B\u639F"],["d5a1","\u6378\u6385\u6381\u6391\u638D\u6370\u6553\u65CD\u6665\u6661\u665B\u6659\u665C\u6662\u6718\u6879\u6887\u6890\u689C\u686D\u686E\u68AE\u68AB\u6956\u686F\u68A3\u68AC\u68A9\u6875\u6874\u68B2\u688F\u6877\u6892\u687C\u686B\u6872\u68AA\u6880\u6871\u687E\u689B\u6896\u688B\u68A0\u6889\u68A4\u6878\u687B\u6891\u688C\u688A\u687D\u6B36\u6B33\u6B37\u6B38\u6B91\u6B8F\u6B8D\u6B8E\u6B8C\u6C2A\u6DC0\u6DAB\u6DB4\u6DB3\u6E74\u6DAC\u6DE9\u6DE2\u6DB7\u6DF6\u6DD4\u6E00\u6DC8\u6DE0\u6DDF\u6DD6\u6DBE\u6DE5\u6DDC\u6DDD\u6DDB\u6DF4\u6DCA\u6DBD\u6DED\u6DF0\u6DBA\u6DD5\u6DC2\u6DCF\u6DC9"],["d640","\u6DD0\u6DF2\u6DD3\u6DFD\u6DD7\u6DCD\u6DE3\u6DBB\u70FA\u710D\u70F7\u7117\u70F4\u710C\u70F0\u7104\u70F3\u7110\u70FC\u70FF\u7106\u7113\u7100\u70F8\u70F6\u710B\u7102\u710E\u727E\u727B\u727C\u727F\u731D\u7317\u7307\u7311\u7318\u730A\u7308\u72FF\u730F\u731E\u7388\u73F6\u73F8\u73F5\u7404\u7401\u73FD\u7407\u7400\u73FA\u73FC\u73FF\u740C\u740B\u73F4\u7408\u7564\u7563\u75CE\u75D2\u75CF"],["d6a1","\u75CB\u75CC\u75D1\u75D0\u768F\u7689\u76D3\u7739\u772F\u772D\u7731\u7732\u7734\u7733\u773D\u7725\u773B\u7735\u7848\u7852\u7849\u784D\u784A\u784C\u7826\u7845\u7850\u7964\u7967\u7969\u796A\u7963\u796B\u7961\u79BB\u79FA\u79F8\u79F6\u79F7\u7A8F\u7A94\u7A90\u7B35\u7B47\u7B34\u7B25\u7B30\u7B22\u7B24\u7B33\u7B18\u7B2A\u7B1D\u7B31\u7B2B\u7B2D\u7B2F\u7B32\u7B38\u7B1A\u7B23\u7C94\u7C98\u7C96\u7CA3\u7D35\u7D3D\u7D38\u7D36\u7D3A\u7D45\u7D2C\u7D29\u7D41\u7D47\u7D3E\u7D3F\u7D4A\u7D3B\u7D28\u7F63\u7F95\u7F9C\u7F9D\u7F9B\u7FCA\u7FCB\u7FCD\u7FD0\u7FD1\u7FC7\u7FCF\u7FC9\u801F"],["d740","\u801E\u801B\u8047\u8043\u8048\u8118\u8125\u8119\u811B\u812D\u811F\u812C\u811E\u8121\u8115\u8127\u811D\u8122\u8211\u8238\u8233\u823A\u8234\u8232\u8274\u8390\u83A3\u83A8\u838D\u837A\u8373\u83A4\u8374\u838F\u8381\u8395\u8399\u8375\u8394\u83A9\u837D\u8383\u838C\u839D\u839B\u83AA\u838B\u837E\u83A5\u83AF\u8388\u8397\u83B0\u837F\u83A6\u8387\u83AE\u8376\u839A\u8659\u8656\u86BF\u86B7"],["d7a1","\u86C2\u86C1\u86C5\u86BA\u86B0\u86C8\u86B9\u86B3\u86B8\u86CC\u86B4\u86BB\u86BC\u86C3\u86BD\u86BE\u8852\u8889\u8895\u88A8\u88A2\u88AA\u889A\u8891\u88A1\u889F\u8898\u88A7\u8899\u889B\u8897\u88A4\u88AC\u888C\u8893\u888E\u8982\u89D6\u89D9\u89D5\u8A30\u8A27\u8A2C\u8A1E\u8C39\u8C3B\u8C5C\u8C5D\u8C7D\u8CA5\u8D7D\u8D7B\u8D79\u8DBC\u8DC2\u8DB9\u8DBF\u8DC1\u8ED8\u8EDE\u8EDD\u8EDC\u8ED7\u8EE0\u8EE1\u9024\u900B\u9011\u901C\u900C\u9021\u90EF\u90EA\u90F0\u90F4\u90F2\u90F3\u90D4\u90EB\u90EC\u90E9\u9156\u9158\u915A\u9153\u9155\u91EC\u91F4\u91F1\u91F3\u91F8\u91E4\u91F9\u91EA"],["d840","\u91EB\u91F7\u91E8\u91EE\u957A\u9586\u9588\u967C\u966D\u966B\u9671\u966F\u96BF\u976A\u9804\u98E5\u9997\u509B\u5095\u5094\u509E\u508B\u50A3\u5083\u508C\u508E\u509D\u5068\u509C\u5092\u5082\u5087\u515F\u51D4\u5312\u5311\u53A4\u53A7\u5591\u55A8\u55A5\u55AD\u5577\u5645\u55A2\u5593\u5588\u558F\u55B5\u5581\u55A3\u5592\u55A4\u557D\u558C\u55A6\u557F\u5595\u55A1\u558E\u570C\u5829\u5837"],["d8a1","\u5819\u581E\u5827\u5823\u5828\u57F5\u5848\u5825\u581C\u581B\u5833\u583F\u5836\u582E\u5839\u5838\u582D\u582C\u583B\u5961\u5AAF\u5A94\u5A9F\u5A7A\u5AA2\u5A9E\u5A78\u5AA6\u5A7C\u5AA5\u5AAC\u5A95\u5AAE\u5A37\u5A84\u5A8A\u5A97\u5A83\u5A8B\u5AA9\u5A7B\u5A7D\u5A8C\u5A9C\u5A8F\u5A93\u5A9D\u5BEA\u5BCD\u5BCB\u5BD4\u5BD1\u5BCA\u5BCE\u5C0C\u5C30\u5D37\u5D43\u5D6B\u5D41\u5D4B\u5D3F\u5D35\u5D51\u5D4E\u5D55\u5D33\u5D3A\u5D52\u5D3D\u5D31\u5D59\u5D42\u5D39\u5D49\u5D38\u5D3C\u5D32\u5D36\u5D40\u5D45\u5E44\u5E41\u5F58\u5FA6\u5FA5\u5FAB\u60C9\u60B9\u60CC\u60E2\u60CE\u60C4\u6114"],["d940","\u60F2\u610A\u6116\u6105\u60F5\u6113\u60F8\u60FC\u60FE\u60C1\u6103\u6118\u611D\u6110\u60FF\u6104\u610B\u624A\u6394\u63B1\u63B0\u63CE\u63E5\u63E8\u63EF\u63C3\u649D\u63F3\u63CA\u63E0\u63F6\u63D5\u63F2\u63F5\u6461\u63DF\u63BE\u63DD\u63DC\u63C4\u63D8\u63D3\u63C2\u63C7\u63CC\u63CB\u63C8\u63F0\u63D7\u63D9\u6532\u6567\u656A\u6564\u655C\u6568\u6565\u658C\u659D\u659E\u65AE\u65D0\u65D2"],["d9a1","\u667C\u666C\u667B\u6680\u6671\u6679\u666A\u6672\u6701\u690C\u68D3\u6904\u68DC\u692A\u68EC\u68EA\u68F1\u690F\u68D6\u68F7\u68EB\u68E4\u68F6\u6913\u6910\u68F3\u68E1\u6907\u68CC\u6908\u6970\u68B4\u6911\u68EF\u68C6\u6914\u68F8\u68D0\u68FD\u68FC\u68E8\u690B\u690A\u6917\u68CE\u68C8\u68DD\u68DE\u68E6\u68F4\u68D1\u6906\u68D4\u68E9\u6915\u6925\u68C7\u6B39\u6B3B\u6B3F\u6B3C\u6B94\u6B97\u6B99\u6B95\u6BBD\u6BF0\u6BF2\u6BF3\u6C30\u6DFC\u6E46\u6E47\u6E1F\u6E49\u6E88\u6E3C\u6E3D\u6E45\u6E62\u6E2B\u6E3F\u6E41\u6E5D\u6E73\u6E1C\u6E33\u6E4B\u6E40\u6E51\u6E3B\u6E03\u6E2E\u6E5E"],["da40","\u6E68\u6E5C\u6E61\u6E31\u6E28\u6E60\u6E71\u6E6B\u6E39\u6E22\u6E30\u6E53\u6E65\u6E27\u6E78\u6E64\u6E77\u6E55\u6E79\u6E52\u6E66\u6E35\u6E36\u6E5A\u7120\u711E\u712F\u70FB\u712E\u7131\u7123\u7125\u7122\u7132\u711F\u7128\u713A\u711B\u724B\u725A\u7288\u7289\u7286\u7285\u728B\u7312\u730B\u7330\u7322\u7331\u7333\u7327\u7332\u732D\u7326\u7323\u7335\u730C\u742E\u742C\u7430\u742B\u7416"],["daa1","\u741A\u7421\u742D\u7431\u7424\u7423\u741D\u7429\u7420\u7432\u74FB\u752F\u756F\u756C\u75E7\u75DA\u75E1\u75E6\u75DD\u75DF\u75E4\u75D7\u7695\u7692\u76DA\u7746\u7747\u7744\u774D\u7745\u774A\u774E\u774B\u774C\u77DE\u77EC\u7860\u7864\u7865\u785C\u786D\u7871\u786A\u786E\u7870\u7869\u7868\u785E\u7862\u7974\u7973\u7972\u7970\u7A02\u7A0A\u7A03\u7A0C\u7A04\u7A99\u7AE6\u7AE4\u7B4A\u7B3B\u7B44\u7B48\u7B4C\u7B4E\u7B40\u7B58\u7B45\u7CA2\u7C9E\u7CA8\u7CA1\u7D58\u7D6F\u7D63\u7D53\u7D56\u7D67\u7D6A\u7D4F\u7D6D\u7D5C\u7D6B\u7D52\u7D54\u7D69\u7D51\u7D5F\u7D4E\u7F3E\u7F3F\u7F65"],["db40","\u7F66\u7FA2\u7FA0\u7FA1\u7FD7\u8051\u804F\u8050\u80FE\u80D4\u8143\u814A\u8152\u814F\u8147\u813D\u814D\u813A\u81E6\u81EE\u81F7\u81F8\u81F9\u8204\u823C\u823D\u823F\u8275\u833B\u83CF\u83F9\u8423\u83C0\u83E8\u8412\u83E7\u83E4\u83FC\u83F6\u8410\u83C6\u83C8\u83EB\u83E3\u83BF\u8401\u83DD\u83E5\u83D8\u83FF\u83E1\u83CB\u83CE\u83D6\u83F5\u83C9\u8409\u840F\u83DE\u8411\u8406\u83C2\u83F3"],["dba1","\u83D5\u83FA\u83C7\u83D1\u83EA\u8413\u83C3\u83EC\u83EE\u83C4\u83FB\u83D7\u83E2\u841B\u83DB\u83FE\u86D8\u86E2\u86E6\u86D3\u86E3\u86DA\u86EA\u86DD\u86EB\u86DC\u86EC\u86E9\u86D7\u86E8\u86D1\u8848\u8856\u8855\u88BA\u88D7\u88B9\u88B8\u88C0\u88BE\u88B6\u88BC\u88B7\u88BD\u88B2\u8901\u88C9\u8995\u8998\u8997\u89DD\u89DA\u89DB\u8A4E\u8A4D\u8A39\u8A59\u8A40\u8A57\u8A58\u8A44\u8A45\u8A52\u8A48\u8A51\u8A4A\u8A4C\u8A4F\u8C5F\u8C81\u8C80\u8CBA\u8CBE\u8CB0\u8CB9\u8CB5\u8D84\u8D80\u8D89\u8DD8\u8DD3\u8DCD\u8DC7\u8DD6\u8DDC\u8DCF\u8DD5\u8DD9\u8DC8\u8DD7\u8DC5\u8EEF\u8EF7\u8EFA"],["dc40","\u8EF9\u8EE6\u8EEE\u8EE5\u8EF5\u8EE7\u8EE8\u8EF6\u8EEB\u8EF1\u8EEC\u8EF4\u8EE9\u902D\u9034\u902F\u9106\u912C\u9104\u90FF\u90FC\u9108\u90F9\u90FB\u9101\u9100\u9107\u9105\u9103\u9161\u9164\u915F\u9162\u9160\u9201\u920A\u9225\u9203\u921A\u9226\u920F\u920C\u9200\u9212\u91FF\u91FD\u9206\u9204\u9227\u9202\u921C\u9224\u9219\u9217\u9205\u9216\u957B\u958D\u958C\u9590\u9687\u967E\u9688"],["dca1","\u9689\u9683\u9680\u96C2\u96C8\u96C3\u96F1\u96F0\u976C\u9770\u976E\u9807\u98A9\u98EB\u9CE6\u9EF9\u4E83\u4E84\u4EB6\u50BD\u50BF\u50C6\u50AE\u50C4\u50CA\u50B4\u50C8\u50C2\u50B0\u50C1\u50BA\u50B1\u50CB\u50C9\u50B6\u50B8\u51D7\u527A\u5278\u527B\u527C\u55C3\u55DB\u55CC\u55D0\u55CB\u55CA\u55DD\u55C0\u55D4\u55C4\u55E9\u55BF\u55D2\u558D\u55CF\u55D5\u55E2\u55D6\u55C8\u55F2\u55CD\u55D9\u55C2\u5714\u5853\u5868\u5864\u584F\u584D\u5849\u586F\u5855\u584E\u585D\u5859\u5865\u585B\u583D\u5863\u5871\u58FC\u5AC7\u5AC4\u5ACB\u5ABA\u5AB8\u5AB1\u5AB5\u5AB0\u5ABF\u5AC8\u5ABB\u5AC6"],["dd40","\u5AB7\u5AC0\u5ACA\u5AB4\u5AB6\u5ACD\u5AB9\u5A90\u5BD6\u5BD8\u5BD9\u5C1F\u5C33\u5D71\u5D63\u5D4A\u5D65\u5D72\u5D6C\u5D5E\u5D68\u5D67\u5D62\u5DF0\u5E4F\u5E4E\u5E4A\u5E4D\u5E4B\u5EC5\u5ECC\u5EC6\u5ECB\u5EC7\u5F40\u5FAF\u5FAD\u60F7\u6149\u614A\u612B\u6145\u6136\u6132\u612E\u6146\u612F\u614F\u6129\u6140\u6220\u9168\u6223\u6225\u6224\u63C5\u63F1\u63EB\u6410\u6412\u6409\u6420\u6424"],["dda1","\u6433\u6443\u641F\u6415\u6418\u6439\u6437\u6422\u6423\u640C\u6426\u6430\u6428\u6441\u6435\u642F\u640A\u641A\u6440\u6425\u6427\u640B\u63E7\u641B\u642E\u6421\u640E\u656F\u6592\u65D3\u6686\u668C\u6695\u6690\u668B\u668A\u6699\u6694\u6678\u6720\u6966\u695F\u6938\u694E\u6962\u6971\u693F\u6945\u696A\u6939\u6942\u6957\u6959\u697A\u6948\u6949\u6935\u696C\u6933\u693D\u6965\u68F0\u6978\u6934\u6969\u6940\u696F\u6944\u6976\u6958\u6941\u6974\u694C\u693B\u694B\u6937\u695C\u694F\u6951\u6932\u6952\u692F\u697B\u693C\u6B46\u6B45\u6B43\u6B42\u6B48\u6B41\u6B9B\uFA0D\u6BFB\u6BFC"],["de40","\u6BF9\u6BF7\u6BF8\u6E9B\u6ED6\u6EC8\u6E8F\u6EC0\u6E9F\u6E93\u6E94\u6EA0\u6EB1\u6EB9\u6EC6\u6ED2\u6EBD\u6EC1\u6E9E\u6EC9\u6EB7\u6EB0\u6ECD\u6EA6\u6ECF\u6EB2\u6EBE\u6EC3\u6EDC\u6ED8\u6E99\u6E92\u6E8E\u6E8D\u6EA4\u6EA1\u6EBF\u6EB3\u6ED0\u6ECA\u6E97\u6EAE\u6EA3\u7147\u7154\u7152\u7163\u7160\u7141\u715D\u7162\u7172\u7178\u716A\u7161\u7142\u7158\u7143\u714B\u7170\u715F\u7150\u7153"],["dea1","\u7144\u714D\u715A\u724F\u728D\u728C\u7291\u7290\u728E\u733C\u7342\u733B\u733A\u7340\u734A\u7349\u7444\u744A\u744B\u7452\u7451\u7457\u7440\u744F\u7450\u744E\u7442\u7446\u744D\u7454\u74E1\u74FF\u74FE\u74FD\u751D\u7579\u7577\u6983\u75EF\u760F\u7603\u75F7\u75FE\u75FC\u75F9\u75F8\u7610\u75FB\u75F6\u75ED\u75F5\u75FD\u7699\u76B5\u76DD\u7755\u775F\u7760\u7752\u7756\u775A\u7769\u7767\u7754\u7759\u776D\u77E0\u7887\u789A\u7894\u788F\u7884\u7895\u7885\u7886\u78A1\u7883\u7879\u7899\u7880\u7896\u787B\u797C\u7982\u797D\u7979\u7A11\u7A18\u7A19\u7A12\u7A17\u7A15\u7A22\u7A13"],["df40","\u7A1B\u7A10\u7AA3\u7AA2\u7A9E\u7AEB\u7B66\u7B64\u7B6D\u7B74\u7B69\u7B72\u7B65\u7B73\u7B71\u7B70\u7B61\u7B78\u7B76\u7B63\u7CB2\u7CB4\u7CAF\u7D88\u7D86\u7D80\u7D8D\u7D7F\u7D85\u7D7A\u7D8E\u7D7B\u7D83\u7D7C\u7D8C\u7D94\u7D84\u7D7D\u7D92\u7F6D\u7F6B\u7F67\u7F68\u7F6C\u7FA6\u7FA5\u7FA7\u7FDB\u7FDC\u8021\u8164\u8160\u8177\u815C\u8169\u815B\u8162\u8172\u6721\u815E\u8176\u8167\u816F"],["dfa1","\u8144\u8161\u821D\u8249\u8244\u8240\u8242\u8245\u84F1\u843F\u8456\u8476\u8479\u848F\u848D\u8465\u8451\u8440\u8486\u8467\u8430\u844D\u847D\u845A\u8459\u8474\u8473\u845D\u8507\u845E\u8437\u843A\u8434\u847A\u8443\u8478\u8432\u8445\u8429\u83D9\u844B\u842F\u8442\u842D\u845F\u8470\u8439\u844E\u844C\u8452\u846F\u84C5\u848E\u843B\u8447\u8436\u8433\u8468\u847E\u8444\u842B\u8460\u8454\u846E\u8450\u870B\u8704\u86F7\u870C\u86FA\u86D6\u86F5\u874D\u86F8\u870E\u8709\u8701\u86F6\u870D\u8705\u88D6\u88CB\u88CD\u88CE\u88DE\u88DB\u88DA\u88CC\u88D0\u8985\u899B\u89DF\u89E5\u89E4"],["e040","\u89E1\u89E0\u89E2\u89DC\u89E6\u8A76\u8A86\u8A7F\u8A61\u8A3F\u8A77\u8A82\u8A84\u8A75\u8A83\u8A81\u8A74\u8A7A\u8C3C\u8C4B\u8C4A\u8C65\u8C64\u8C66\u8C86\u8C84\u8C85\u8CCC\u8D68\u8D69\u8D91\u8D8C\u8D8E\u8D8F\u8D8D\u8D93\u8D94\u8D90\u8D92\u8DF0\u8DE0\u8DEC\u8DF1\u8DEE\u8DD0\u8DE9\u8DE3\u8DE2\u8DE7\u8DF2\u8DEB\u8DF4\u8F06\u8EFF\u8F01\u8F00\u8F05\u8F07\u8F08\u8F02\u8F0B\u9052\u903F"],["e0a1","\u9044\u9049\u903D\u9110\u910D\u910F\u9111\u9116\u9114\u910B\u910E\u916E\u916F\u9248\u9252\u9230\u923A\u9266\u9233\u9265\u925E\u9283\u922E\u924A\u9246\u926D\u926C\u924F\u9260\u9267\u926F\u9236\u9261\u9270\u9231\u9254\u9263\u9250\u9272\u924E\u9253\u924C\u9256\u9232\u959F\u959C\u959E\u959B\u9692\u9693\u9691\u9697\u96CE\u96FA\u96FD\u96F8\u96F5\u9773\u9777\u9778\u9772\u980F\u980D\u980E\u98AC\u98F6\u98F9\u99AF\u99B2\u99B0\u99B5\u9AAD\u9AAB\u9B5B\u9CEA\u9CED\u9CE7\u9E80\u9EFD\u50E6\u50D4\u50D7\u50E8\u50F3\u50DB\u50EA\u50DD\u50E4\u50D3\u50EC\u50F0\u50EF\u50E3\u50E0"],["e140","\u51D8\u5280\u5281\u52E9\u52EB\u5330\u53AC\u5627\u5615\u560C\u5612\u55FC\u560F\u561C\u5601\u5613\u5602\u55FA\u561D\u5604\u55FF\u55F9\u5889\u587C\u5890\u5898\u5886\u5881\u587F\u5874\u588B\u587A\u5887\u5891\u588E\u5876\u5882\u5888\u587B\u5894\u588F\u58FE\u596B\u5ADC\u5AEE\u5AE5\u5AD5\u5AEA\u5ADA\u5AED\u5AEB\u5AF3\u5AE2\u5AE0\u5ADB\u5AEC\u5ADE\u5ADD\u5AD9\u5AE8\u5ADF\u5B77\u5BE0"],["e1a1","\u5BE3\u5C63\u5D82\u5D80\u5D7D\u5D86\u5D7A\u5D81\u5D77\u5D8A\u5D89\u5D88\u5D7E\u5D7C\u5D8D\u5D79\u5D7F\u5E58\u5E59\u5E53\u5ED8\u5ED1\u5ED7\u5ECE\u5EDC\u5ED5\u5ED9\u5ED2\u5ED4\u5F44\u5F43\u5F6F\u5FB6\u612C\u6128\u6141\u615E\u6171\u6173\u6152\u6153\u6172\u616C\u6180\u6174\u6154\u617A\u615B\u6165\u613B\u616A\u6161\u6156\u6229\u6227\u622B\u642B\u644D\u645B\u645D\u6474\u6476\u6472\u6473\u647D\u6475\u6466\u64A6\u644E\u6482\u645E\u645C\u644B\u6453\u6460\u6450\u647F\u643F\u646C\u646B\u6459\u6465\u6477\u6573\u65A0\u66A1\u66A0\u669F\u6705\u6704\u6722\u69B1\u69B6\u69C9"],["e240","\u69A0\u69CE\u6996\u69B0\u69AC\u69BC\u6991\u6999\u698E\u69A7\u698D\u69A9\u69BE\u69AF\u69BF\u69C4\u69BD\u69A4\u69D4\u69B9\u69CA\u699A\u69CF\u69B3\u6993\u69AA\u69A1\u699E\u69D9\u6997\u6990\u69C2\u69B5\u69A5\u69C6\u6B4A\u6B4D\u6B4B\u6B9E\u6B9F\u6BA0\u6BC3\u6BC4\u6BFE\u6ECE\u6EF5\u6EF1\u6F03\u6F25\u6EF8\u6F37\u6EFB\u6F2E\u6F09\u6F4E\u6F19\u6F1A\u6F27\u6F18\u6F3B\u6F12\u6EED\u6F0A"],["e2a1","\u6F36\u6F73\u6EF9\u6EEE\u6F2D\u6F40\u6F30\u6F3C\u6F35\u6EEB\u6F07\u6F0E\u6F43\u6F05\u6EFD\u6EF6\u6F39\u6F1C\u6EFC\u6F3A\u6F1F\u6F0D\u6F1E\u6F08\u6F21\u7187\u7190\u7189\u7180\u7185\u7182\u718F\u717B\u7186\u7181\u7197\u7244\u7253\u7297\u7295\u7293\u7343\u734D\u7351\u734C\u7462\u7473\u7471\u7475\u7472\u7467\u746E\u7500\u7502\u7503\u757D\u7590\u7616\u7608\u760C\u7615\u7611\u760A\u7614\u76B8\u7781\u777C\u7785\u7782\u776E\u7780\u776F\u777E\u7783\u78B2\u78AA\u78B4\u78AD\u78A8\u787E\u78AB\u789E\u78A5\u78A0\u78AC\u78A2\u78A4\u7998\u798A\u798B\u7996\u7995\u7994\u7993"],["e340","\u7997\u7988\u7992\u7990\u7A2B\u7A4A\u7A30\u7A2F\u7A28\u7A26\u7AA8\u7AAB\u7AAC\u7AEE\u7B88\u7B9C\u7B8A\u7B91\u7B90\u7B96\u7B8D\u7B8C\u7B9B\u7B8E\u7B85\u7B98\u5284\u7B99\u7BA4\u7B82\u7CBB\u7CBF\u7CBC\u7CBA\u7DA7\u7DB7\u7DC2\u7DA3\u7DAA\u7DC1\u7DC0\u7DC5\u7D9D\u7DCE\u7DC4\u7DC6\u7DCB\u7DCC\u7DAF\u7DB9\u7D96\u7DBC\u7D9F\u7DA6\u7DAE\u7DA9\u7DA1\u7DC9\u7F73\u7FE2\u7FE3\u7FE5\u7FDE"],["e3a1","\u8024\u805D\u805C\u8189\u8186\u8183\u8187\u818D\u818C\u818B\u8215\u8497\u84A4\u84A1\u849F\u84BA\u84CE\u84C2\u84AC\u84AE\u84AB\u84B9\u84B4\u84C1\u84CD\u84AA\u849A\u84B1\u84D0\u849D\u84A7\u84BB\u84A2\u8494\u84C7\u84CC\u849B\u84A9\u84AF\u84A8\u84D6\u8498\u84B6\u84CF\u84A0\u84D7\u84D4\u84D2\u84DB\u84B0\u8491\u8661\u8733\u8723\u8728\u876B\u8740\u872E\u871E\u8721\u8719\u871B\u8743\u872C\u8741\u873E\u8746\u8720\u8732\u872A\u872D\u873C\u8712\u873A\u8731\u8735\u8742\u8726\u8727\u8738\u8724\u871A\u8730\u8711\u88F7\u88E7\u88F1\u88F2\u88FA\u88FE\u88EE\u88FC\u88F6\u88FB"],["e440","\u88F0\u88EC\u88EB\u899D\u89A1\u899F\u899E\u89E9\u89EB\u89E8\u8AAB\u8A99\u8A8B\u8A92\u8A8F\u8A96\u8C3D\u8C68\u8C69\u8CD5\u8CCF\u8CD7\u8D96\u8E09\u8E02\u8DFF\u8E0D\u8DFD\u8E0A\u8E03\u8E07\u8E06\u8E05\u8DFE\u8E00\u8E04\u8F10\u8F11\u8F0E\u8F0D\u9123\u911C\u9120\u9122\u911F\u911D\u911A\u9124\u9121\u911B\u917A\u9172\u9179\u9173\u92A5\u92A4\u9276\u929B\u927A\u92A0\u9294\u92AA\u928D"],["e4a1","\u92A6\u929A\u92AB\u9279\u9297\u927F\u92A3\u92EE\u928E\u9282\u9295\u92A2\u927D\u9288\u92A1\u928A\u9286\u928C\u9299\u92A7\u927E\u9287\u92A9\u929D\u928B\u922D\u969E\u96A1\u96FF\u9758\u977D\u977A\u977E\u9783\u9780\u9782\u977B\u9784\u9781\u977F\u97CE\u97CD\u9816\u98AD\u98AE\u9902\u9900\u9907\u999D\u999C\u99C3\u99B9\u99BB\u99BA\u99C2\u99BD\u99C7\u9AB1\u9AE3\u9AE7\u9B3E\u9B3F\u9B60\u9B61\u9B5F\u9CF1\u9CF2\u9CF5\u9EA7\u50FF\u5103\u5130\u50F8\u5106\u5107\u50F6\u50FE\u510B\u510C\u50FD\u510A\u528B\u528C\u52F1\u52EF\u5648\u5642\u564C\u5635\u5641\u564A\u5649\u5646\u5658"],["e540","\u565A\u5640\u5633\u563D\u562C\u563E\u5638\u562A\u563A\u571A\u58AB\u589D\u58B1\u58A0\u58A3\u58AF\u58AC\u58A5\u58A1\u58FF\u5AFF\u5AF4\u5AFD\u5AF7\u5AF6\u5B03\u5AF8\u5B02\u5AF9\u5B01\u5B07\u5B05\u5B0F\u5C67\u5D99\u5D97\u5D9F\u5D92\u5DA2\u5D93\u5D95\u5DA0\u5D9C\u5DA1\u5D9A\u5D9E\u5E69\u5E5D\u5E60\u5E5C\u7DF3\u5EDB\u5EDE\u5EE1\u5F49\u5FB2\u618B\u6183\u6179\u61B1\u61B0\u61A2\u6189"],["e5a1","\u619B\u6193\u61AF\u61AD\u619F\u6192\u61AA\u61A1\u618D\u6166\u61B3\u622D\u646E\u6470\u6496\u64A0\u6485\u6497\u649C\u648F\u648B\u648A\u648C\u64A3\u649F\u6468\u64B1\u6498\u6576\u657A\u6579\u657B\u65B2\u65B3\u66B5\u66B0\u66A9\u66B2\u66B7\u66AA\u66AF\u6A00\u6A06\u6A17\u69E5\u69F8\u6A15\u69F1\u69E4\u6A20\u69FF\u69EC\u69E2\u6A1B\u6A1D\u69FE\u6A27\u69F2\u69EE\u6A14\u69F7\u69E7\u6A40\u6A08\u69E6\u69FB\u6A0D\u69FC\u69EB\u6A09\u6A04\u6A18\u6A25\u6A0F\u69F6\u6A26\u6A07\u69F4\u6A16\u6B51\u6BA5\u6BA3\u6BA2\u6BA6\u6C01\u6C00\u6BFF\u6C02\u6F41\u6F26\u6F7E\u6F87\u6FC6\u6F92"],["e640","\u6F8D\u6F89\u6F8C\u6F62\u6F4F\u6F85\u6F5A\u6F96\u6F76\u6F6C\u6F82\u6F55\u6F72\u6F52\u6F50\u6F57\u6F94\u6F93\u6F5D\u6F00\u6F61\u6F6B\u6F7D\u6F67\u6F90\u6F53\u6F8B\u6F69\u6F7F\u6F95\u6F63\u6F77\u6F6A\u6F7B\u71B2\u71AF\u719B\u71B0\u71A0\u719A\u71A9\u71B5\u719D\u71A5\u719E\u71A4\u71A1\u71AA\u719C\u71A7\u71B3\u7298\u729A\u7358\u7352\u735E\u735F\u7360\u735D\u735B\u7361\u735A\u7359"],["e6a1","\u7362\u7487\u7489\u748A\u7486\u7481\u747D\u7485\u7488\u747C\u7479\u7508\u7507\u757E\u7625\u761E\u7619\u761D\u761C\u7623\u761A\u7628\u761B\u769C\u769D\u769E\u769B\u778D\u778F\u7789\u7788\u78CD\u78BB\u78CF\u78CC\u78D1\u78CE\u78D4\u78C8\u78C3\u78C4\u78C9\u799A\u79A1\u79A0\u799C\u79A2\u799B\u6B76\u7A39\u7AB2\u7AB4\u7AB3\u7BB7\u7BCB\u7BBE\u7BAC\u7BCE\u7BAF\u7BB9\u7BCA\u7BB5\u7CC5\u7CC8\u7CCC\u7CCB\u7DF7\u7DDB\u7DEA\u7DE7\u7DD7\u7DE1\u7E03\u7DFA\u7DE6\u7DF6\u7DF1\u7DF0\u7DEE\u7DDF\u7F76\u7FAC\u7FB0\u7FAD\u7FED\u7FEB\u7FEA\u7FEC\u7FE6\u7FE8\u8064\u8067\u81A3\u819F"],["e740","\u819E\u8195\u81A2\u8199\u8197\u8216\u824F\u8253\u8252\u8250\u824E\u8251\u8524\u853B\u850F\u8500\u8529\u850E\u8509\u850D\u851F\u850A\u8527\u851C\u84FB\u852B\u84FA\u8508\u850C\u84F4\u852A\u84F2\u8515\u84F7\u84EB\u84F3\u84FC\u8512\u84EA\u84E9\u8516\u84FE\u8528\u851D\u852E\u8502\u84FD\u851E\u84F6\u8531\u8526\u84E7\u84E8\u84F0\u84EF\u84F9\u8518\u8520\u8530\u850B\u8519\u852F\u8662"],["e7a1","\u8756\u8763\u8764\u8777\u87E1\u8773\u8758\u8754\u875B\u8752\u8761\u875A\u8751\u875E\u876D\u876A\u8750\u874E\u875F\u875D\u876F\u876C\u877A\u876E\u875C\u8765\u874F\u877B\u8775\u8762\u8767\u8769\u885A\u8905\u890C\u8914\u890B\u8917\u8918\u8919\u8906\u8916\u8911\u890E\u8909\u89A2\u89A4\u89A3\u89ED\u89F0\u89EC\u8ACF\u8AC6\u8AB8\u8AD3\u8AD1\u8AD4\u8AD5\u8ABB\u8AD7\u8ABE\u8AC0\u8AC5\u8AD8\u8AC3\u8ABA\u8ABD\u8AD9\u8C3E\u8C4D\u8C8F\u8CE5\u8CDF\u8CD9\u8CE8\u8CDA\u8CDD\u8CE7\u8DA0\u8D9C\u8DA1\u8D9B\u8E20\u8E23\u8E25\u8E24\u8E2E\u8E15\u8E1B\u8E16\u8E11\u8E19\u8E26\u8E27"],["e840","\u8E14\u8E12\u8E18\u8E13\u8E1C\u8E17\u8E1A\u8F2C\u8F24\u8F18\u8F1A\u8F20\u8F23\u8F16\u8F17\u9073\u9070\u906F\u9067\u906B\u912F\u912B\u9129\u912A\u9132\u9126\u912E\u9185\u9186\u918A\u9181\u9182\u9184\u9180\u92D0\u92C3\u92C4\u92C0\u92D9\u92B6\u92CF\u92F1\u92DF\u92D8\u92E9\u92D7\u92DD\u92CC\u92EF\u92C2\u92E8\u92CA\u92C8\u92CE\u92E6\u92CD\u92D5\u92C9\u92E0\u92DE\u92E7\u92D1\u92D3"],["e8a1","\u92B5\u92E1\u92C6\u92B4\u957C\u95AC\u95AB\u95AE\u95B0\u96A4\u96A2\u96D3\u9705\u9708\u9702\u975A\u978A\u978E\u9788\u97D0\u97CF\u981E\u981D\u9826\u9829\u9828\u9820\u981B\u9827\u98B2\u9908\u98FA\u9911\u9914\u9916\u9917\u9915\u99DC\u99CD\u99CF\u99D3\u99D4\u99CE\u99C9\u99D6\u99D8\u99CB\u99D7\u99CC\u9AB3\u9AEC\u9AEB\u9AF3\u9AF2\u9AF1\u9B46\u9B43\u9B67\u9B74\u9B71\u9B66\u9B76\u9B75\u9B70\u9B68\u9B64\u9B6C\u9CFC\u9CFA\u9CFD\u9CFF\u9CF7\u9D07\u9D00\u9CF9\u9CFB\u9D08\u9D05\u9D04\u9E83\u9ED3\u9F0F\u9F10\u511C\u5113\u5117\u511A\u5111\u51DE\u5334\u53E1\u5670\u5660\u566E"],["e940","\u5673\u5666\u5663\u566D\u5672\u565E\u5677\u571C\u571B\u58C8\u58BD\u58C9\u58BF\u58BA\u58C2\u58BC\u58C6\u5B17\u5B19\u5B1B\u5B21\u5B14\u5B13\u5B10\u5B16\u5B28\u5B1A\u5B20\u5B1E\u5BEF\u5DAC\u5DB1\u5DA9\u5DA7\u5DB5\u5DB0\u5DAE\u5DAA\u5DA8\u5DB2\u5DAD\u5DAF\u5DB4\u5E67\u5E68\u5E66\u5E6F\u5EE9\u5EE7\u5EE6\u5EE8\u5EE5\u5F4B\u5FBC\u619D\u61A8\u6196\u61C5\u61B4\u61C6\u61C1\u61CC\u61BA"],["e9a1","\u61BF\u61B8\u618C\u64D7\u64D6\u64D0\u64CF\u64C9\u64BD\u6489\u64C3\u64DB\u64F3\u64D9\u6533\u657F\u657C\u65A2\u66C8\u66BE\u66C0\u66CA\u66CB\u66CF\u66BD\u66BB\u66BA\u66CC\u6723\u6A34\u6A66\u6A49\u6A67\u6A32\u6A68\u6A3E\u6A5D\u6A6D\u6A76\u6A5B\u6A51\u6A28\u6A5A\u6A3B\u6A3F\u6A41\u6A6A\u6A64\u6A50\u6A4F\u6A54\u6A6F\u6A69\u6A60\u6A3C\u6A5E\u6A56\u6A55\u6A4D\u6A4E\u6A46\u6B55\u6B54\u6B56\u6BA7\u6BAA\u6BAB\u6BC8\u6BC7\u6C04\u6C03\u6C06\u6FAD\u6FCB\u6FA3\u6FC7\u6FBC\u6FCE\u6FC8\u6F5E\u6FC4\u6FBD\u6F9E\u6FCA\u6FA8\u7004\u6FA5\u6FAE\u6FBA\u6FAC\u6FAA\u6FCF\u6FBF\u6FB8"],["ea40","\u6FA2\u6FC9\u6FAB\u6FCD\u6FAF\u6FB2\u6FB0\u71C5\u71C2\u71BF\u71B8\u71D6\u71C0\u71C1\u71CB\u71D4\u71CA\u71C7\u71CF\u71BD\u71D8\u71BC\u71C6\u71DA\u71DB\u729D\u729E\u7369\u7366\u7367\u736C\u7365\u736B\u736A\u747F\u749A\u74A0\u7494\u7492\u7495\u74A1\u750B\u7580\u762F\u762D\u7631\u763D\u7633\u763C\u7635\u7632\u7630\u76BB\u76E6\u779A\u779D\u77A1\u779C\u779B\u77A2\u77A3\u7795\u7799"],["eaa1","\u7797\u78DD\u78E9\u78E5\u78EA\u78DE\u78E3\u78DB\u78E1\u78E2\u78ED\u78DF\u78E0\u79A4\u7A44\u7A48\u7A47\u7AB6\u7AB8\u7AB5\u7AB1\u7AB7\u7BDE\u7BE3\u7BE7\u7BDD\u7BD5\u7BE5\u7BDA\u7BE8\u7BF9\u7BD4\u7BEA\u7BE2\u7BDC\u7BEB\u7BD8\u7BDF\u7CD2\u7CD4\u7CD7\u7CD0\u7CD1\u7E12\u7E21\u7E17\u7E0C\u7E1F\u7E20\u7E13\u7E0E\u7E1C\u7E15\u7E1A\u7E22\u7E0B\u7E0F\u7E16\u7E0D\u7E14\u7E25\u7E24\u7F43\u7F7B\u7F7C\u7F7A\u7FB1\u7FEF\u802A\u8029\u806C\u81B1\u81A6\u81AE\u81B9\u81B5\u81AB\u81B0\u81AC\u81B4\u81B2\u81B7\u81A7\u81F2\u8255\u8256\u8257\u8556\u8545\u856B\u854D\u8553\u8561\u8558"],["eb40","\u8540\u8546\u8564\u8541\u8562\u8544\u8551\u8547\u8563\u853E\u855B\u8571\u854E\u856E\u8575\u8555\u8567\u8560\u858C\u8566\u855D\u8554\u8565\u856C\u8663\u8665\u8664\u879B\u878F\u8797\u8793\u8792\u8788\u8781\u8796\u8798\u8779\u8787\u87A3\u8785\u8790\u8791\u879D\u8784\u8794\u879C\u879A\u8789\u891E\u8926\u8930\u892D\u892E\u8927\u8931\u8922\u8929\u8923\u892F\u892C\u891F\u89F1\u8AE0"],["eba1","\u8AE2\u8AF2\u8AF4\u8AF5\u8ADD\u8B14\u8AE4\u8ADF\u8AF0\u8AC8\u8ADE\u8AE1\u8AE8\u8AFF\u8AEF\u8AFB\u8C91\u8C92\u8C90\u8CF5\u8CEE\u8CF1\u8CF0\u8CF3\u8D6C\u8D6E\u8DA5\u8DA7\u8E33\u8E3E\u8E38\u8E40\u8E45\u8E36\u8E3C\u8E3D\u8E41\u8E30\u8E3F\u8EBD\u8F36\u8F2E\u8F35\u8F32\u8F39\u8F37\u8F34\u9076\u9079\u907B\u9086\u90FA\u9133\u9135\u9136\u9193\u9190\u9191\u918D\u918F\u9327\u931E\u9308\u931F\u9306\u930F\u937A\u9338\u933C\u931B\u9323\u9312\u9301\u9346\u932D\u930E\u930D\u92CB\u931D\u92FA\u9325\u9313\u92F9\u92F7\u9334\u9302\u9324\u92FF\u9329\u9339\u9335\u932A\u9314\u930C"],["ec40","\u930B\u92FE\u9309\u9300\u92FB\u9316\u95BC\u95CD\u95BE\u95B9\u95BA\u95B6\u95BF\u95B5\u95BD\u96A9\u96D4\u970B\u9712\u9710\u9799\u9797\u9794\u97F0\u97F8\u9835\u982F\u9832\u9924\u991F\u9927\u9929\u999E\u99EE\u99EC\u99E5\u99E4\u99F0\u99E3\u99EA\u99E9\u99E7\u9AB9\u9ABF\u9AB4\u9ABB\u9AF6\u9AFA\u9AF9\u9AF7\u9B33\u9B80\u9B85\u9B87\u9B7C\u9B7E\u9B7B\u9B82\u9B93\u9B92\u9B90\u9B7A\u9B95"],["eca1","\u9B7D\u9B88\u9D25\u9D17\u9D20\u9D1E\u9D14\u9D29\u9D1D\u9D18\u9D22\u9D10\u9D19\u9D1F\u9E88\u9E86\u9E87\u9EAE\u9EAD\u9ED5\u9ED6\u9EFA\u9F12\u9F3D\u5126\u5125\u5122\u5124\u5120\u5129\u52F4\u5693\u568C\u568D\u5686\u5684\u5683\u567E\u5682\u567F\u5681\u58D6\u58D4\u58CF\u58D2\u5B2D\u5B25\u5B32\u5B23\u5B2C\u5B27\u5B26\u5B2F\u5B2E\u5B7B\u5BF1\u5BF2\u5DB7\u5E6C\u5E6A\u5FBE\u5FBB\u61C3\u61B5\u61BC\u61E7\u61E0\u61E5\u61E4\u61E8\u61DE\u64EF\u64E9\u64E3\u64EB\u64E4\u64E8\u6581\u6580\u65B6\u65DA\u66D2\u6A8D\u6A96\u6A81\u6AA5\u6A89\u6A9F\u6A9B\u6AA1\u6A9E\u6A87\u6A93\u6A8E"],["ed40","\u6A95\u6A83\u6AA8\u6AA4\u6A91\u6A7F\u6AA6\u6A9A\u6A85\u6A8C\u6A92\u6B5B\u6BAD\u6C09\u6FCC\u6FA9\u6FF4\u6FD4\u6FE3\u6FDC\u6FED\u6FE7\u6FE6\u6FDE\u6FF2\u6FDD\u6FE2\u6FE8\u71E1\u71F1\u71E8\u71F2\u71E4\u71F0\u71E2\u7373\u736E\u736F\u7497\u74B2\u74AB\u7490\u74AA\u74AD\u74B1\u74A5\u74AF\u7510\u7511\u7512\u750F\u7584\u7643\u7648\u7649\u7647\u76A4\u76E9\u77B5\u77AB\u77B2\u77B7\u77B6"],["eda1","\u77B4\u77B1\u77A8\u77F0\u78F3\u78FD\u7902\u78FB\u78FC\u78F2\u7905\u78F9\u78FE\u7904\u79AB\u79A8\u7A5C\u7A5B\u7A56\u7A58\u7A54\u7A5A\u7ABE\u7AC0\u7AC1\u7C05\u7C0F\u7BF2\u7C00\u7BFF\u7BFB\u7C0E\u7BF4\u7C0B\u7BF3\u7C02\u7C09\u7C03\u7C01\u7BF8\u7BFD\u7C06\u7BF0\u7BF1\u7C10\u7C0A\u7CE8\u7E2D\u7E3C\u7E42\u7E33\u9848\u7E38\u7E2A\u7E49\u7E40\u7E47\u7E29\u7E4C\u7E30\u7E3B\u7E36\u7E44\u7E3A\u7F45\u7F7F\u7F7E\u7F7D\u7FF4\u7FF2\u802C\u81BB\u81C4\u81CC\u81CA\u81C5\u81C7\u81BC\u81E9\u825B\u825A\u825C\u8583\u8580\u858F\u85A7\u8595\u85A0\u858B\u85A3\u857B\u85A4\u859A\u859E"],["ee40","\u8577\u857C\u8589\u85A1\u857A\u8578\u8557\u858E\u8596\u8586\u858D\u8599\u859D\u8581\u85A2\u8582\u8588\u8585\u8579\u8576\u8598\u8590\u859F\u8668\u87BE\u87AA\u87AD\u87C5\u87B0\u87AC\u87B9\u87B5\u87BC\u87AE\u87C9\u87C3\u87C2\u87CC\u87B7\u87AF\u87C4\u87CA\u87B4\u87B6\u87BF\u87B8\u87BD\u87DE\u87B2\u8935\u8933\u893C\u893E\u8941\u8952\u8937\u8942\u89AD\u89AF\u89AE\u89F2\u89F3\u8B1E"],["eea1","\u8B18\u8B16\u8B11\u8B05\u8B0B\u8B22\u8B0F\u8B12\u8B15\u8B07\u8B0D\u8B08\u8B06\u8B1C\u8B13\u8B1A\u8C4F\u8C70\u8C72\u8C71\u8C6F\u8C95\u8C94\u8CF9\u8D6F\u8E4E\u8E4D\u8E53\u8E50\u8E4C\u8E47\u8F43\u8F40\u9085\u907E\u9138\u919A\u91A2\u919B\u9199\u919F\u91A1\u919D\u91A0\u93A1\u9383\u93AF\u9364\u9356\u9347\u937C\u9358\u935C\u9376\u9349\u9350\u9351\u9360\u936D\u938F\u934C\u936A\u9379\u9357\u9355\u9352\u934F\u9371\u9377\u937B\u9361\u935E\u9363\u9367\u9380\u934E\u9359\u95C7\u95C0\u95C9\u95C3\u95C5\u95B7\u96AE\u96B0\u96AC\u9720\u971F\u9718\u971D\u9719\u979A\u97A1\u979C"],["ef40","\u979E\u979D\u97D5\u97D4\u97F1\u9841\u9844\u984A\u9849\u9845\u9843\u9925\u992B\u992C\u992A\u9933\u9932\u992F\u992D\u9931\u9930\u9998\u99A3\u99A1\u9A02\u99FA\u99F4\u99F7\u99F9\u99F8\u99F6\u99FB\u99FD\u99FE\u99FC\u9A03\u9ABE\u9AFE\u9AFD\u9B01\u9AFC\u9B48\u9B9A\u9BA8\u9B9E\u9B9B\u9BA6\u9BA1\u9BA5\u9BA4\u9B86\u9BA2\u9BA0\u9BAF\u9D33\u9D41\u9D67\u9D36\u9D2E\u9D2F\u9D31\u9D38\u9D30"],["efa1","\u9D45\u9D42\u9D43\u9D3E\u9D37\u9D40\u9D3D\u7FF5\u9D2D\u9E8A\u9E89\u9E8D\u9EB0\u9EC8\u9EDA\u9EFB\u9EFF\u9F24\u9F23\u9F22\u9F54\u9FA0\u5131\u512D\u512E\u5698\u569C\u5697\u569A\u569D\u5699\u5970\u5B3C\u5C69\u5C6A\u5DC0\u5E6D\u5E6E\u61D8\u61DF\u61ED\u61EE\u61F1\u61EA\u61F0\u61EB\u61D6\u61E9\u64FF\u6504\u64FD\u64F8\u6501\u6503\u64FC\u6594\u65DB\u66DA\u66DB\u66D8\u6AC5\u6AB9\u6ABD\u6AE1\u6AC6\u6ABA\u6AB6\u6AB7\u6AC7\u6AB4\u6AAD\u6B5E\u6BC9\u6C0B\u7007\u700C\u700D\u7001\u7005\u7014\u700E\u6FFF\u7000\u6FFB\u7026\u6FFC\u6FF7\u700A\u7201\u71FF\u71F9\u7203\u71FD\u7376"],["f040","\u74B8\u74C0\u74B5\u74C1\u74BE\u74B6\u74BB\u74C2\u7514\u7513\u765C\u7664\u7659\u7650\u7653\u7657\u765A\u76A6\u76BD\u76EC\u77C2\u77BA\u78FF\u790C\u7913\u7914\u7909\u7910\u7912\u7911\u79AD\u79AC\u7A5F\u7C1C\u7C29\u7C19\u7C20\u7C1F\u7C2D\u7C1D\u7C26\u7C28\u7C22\u7C25\u7C30\u7E5C\u7E50\u7E56\u7E63\u7E58\u7E62\u7E5F\u7E51\u7E60\u7E57\u7E53\u7FB5\u7FB3\u7FF7\u7FF8\u8075\u81D1\u81D2"],["f0a1","\u81D0\u825F\u825E\u85B4\u85C6\u85C0\u85C3\u85C2\u85B3\u85B5\u85BD\u85C7\u85C4\u85BF\u85CB\u85CE\u85C8\u85C5\u85B1\u85B6\u85D2\u8624\u85B8\u85B7\u85BE\u8669\u87E7\u87E6\u87E2\u87DB\u87EB\u87EA\u87E5\u87DF\u87F3\u87E4\u87D4\u87DC\u87D3\u87ED\u87D8\u87E3\u87A4\u87D7\u87D9\u8801\u87F4\u87E8\u87DD\u8953\u894B\u894F\u894C\u8946\u8950\u8951\u8949\u8B2A\u8B27\u8B23\u8B33\u8B30\u8B35\u8B47\u8B2F\u8B3C\u8B3E\u8B31\u8B25\u8B37\u8B26\u8B36\u8B2E\u8B24\u8B3B\u8B3D\u8B3A\u8C42\u8C75\u8C99\u8C98\u8C97\u8CFE\u8D04\u8D02\u8D00\u8E5C\u8E62\u8E60\u8E57\u8E56\u8E5E\u8E65\u8E67"],["f140","\u8E5B\u8E5A\u8E61\u8E5D\u8E69\u8E54\u8F46\u8F47\u8F48\u8F4B\u9128\u913A\u913B\u913E\u91A8\u91A5\u91A7\u91AF\u91AA\u93B5\u938C\u9392\u93B7\u939B\u939D\u9389\u93A7\u938E\u93AA\u939E\u93A6\u9395\u9388\u9399\u939F\u938D\u93B1\u9391\u93B2\u93A4\u93A8\u93B4\u93A3\u93A5\u95D2\u95D3\u95D1\u96B3\u96D7\u96DA\u5DC2\u96DF\u96D8\u96DD\u9723\u9722\u9725\u97AC\u97AE\u97A8\u97AB\u97A4\u97AA"],["f1a1","\u97A2\u97A5\u97D7\u97D9\u97D6\u97D8\u97FA\u9850\u9851\u9852\u98B8\u9941\u993C\u993A\u9A0F\u9A0B\u9A09\u9A0D\u9A04\u9A11\u9A0A\u9A05\u9A07\u9A06\u9AC0\u9ADC\u9B08\u9B04\u9B05\u9B29\u9B35\u9B4A\u9B4C\u9B4B\u9BC7\u9BC6\u9BC3\u9BBF\u9BC1\u9BB5\u9BB8\u9BD3\u9BB6\u9BC4\u9BB9\u9BBD\u9D5C\u9D53\u9D4F\u9D4A\u9D5B\u9D4B\u9D59\u9D56\u9D4C\u9D57\u9D52\u9D54\u9D5F\u9D58\u9D5A\u9E8E\u9E8C\u9EDF\u9F01\u9F00\u9F16\u9F25\u9F2B\u9F2A\u9F29\u9F28\u9F4C\u9F55\u5134\u5135\u5296\u52F7\u53B4\u56AB\u56AD\u56A6\u56A7\u56AA\u56AC\u58DA\u58DD\u58DB\u5912\u5B3D\u5B3E\u5B3F\u5DC3\u5E70"],["f240","\u5FBF\u61FB\u6507\u6510\u650D\u6509\u650C\u650E\u6584\u65DE\u65DD\u66DE\u6AE7\u6AE0\u6ACC\u6AD1\u6AD9\u6ACB\u6ADF\u6ADC\u6AD0\u6AEB\u6ACF\u6ACD\u6ADE\u6B60\u6BB0\u6C0C\u7019\u7027\u7020\u7016\u702B\u7021\u7022\u7023\u7029\u7017\u7024\u701C\u702A\u720C\u720A\u7207\u7202\u7205\u72A5\u72A6\u72A4\u72A3\u72A1\u74CB\u74C5\u74B7\u74C3\u7516\u7660\u77C9\u77CA\u77C4\u77F1\u791D\u791B"],["f2a1","\u7921\u791C\u7917\u791E\u79B0\u7A67\u7A68\u7C33\u7C3C\u7C39\u7C2C\u7C3B\u7CEC\u7CEA\u7E76\u7E75\u7E78\u7E70\u7E77\u7E6F\u7E7A\u7E72\u7E74\u7E68\u7F4B\u7F4A\u7F83\u7F86\u7FB7\u7FFD\u7FFE\u8078\u81D7\u81D5\u8264\u8261\u8263\u85EB\u85F1\u85ED\u85D9\u85E1\u85E8\u85DA\u85D7\u85EC\u85F2\u85F8\u85D8\u85DF\u85E3\u85DC\u85D1\u85F0\u85E6\u85EF\u85DE\u85E2\u8800\u87FA\u8803\u87F6\u87F7\u8809\u880C\u880B\u8806\u87FC\u8808\u87FF\u880A\u8802\u8962\u895A\u895B\u8957\u8961\u895C\u8958\u895D\u8959\u8988\u89B7\u89B6\u89F6\u8B50\u8B48\u8B4A\u8B40\u8B53\u8B56\u8B54\u8B4B\u8B55"],["f340","\u8B51\u8B42\u8B52\u8B57\u8C43\u8C77\u8C76\u8C9A\u8D06\u8D07\u8D09\u8DAC\u8DAA\u8DAD\u8DAB\u8E6D\u8E78\u8E73\u8E6A\u8E6F\u8E7B\u8EC2\u8F52\u8F51\u8F4F\u8F50\u8F53\u8FB4\u9140\u913F\u91B0\u91AD\u93DE\u93C7\u93CF\u93C2\u93DA\u93D0\u93F9\u93EC\u93CC\u93D9\u93A9\u93E6\u93CA\u93D4\u93EE\u93E3\u93D5\u93C4\u93CE\u93C0\u93D2\u93E7\u957D\u95DA\u95DB\u96E1\u9729\u972B\u972C\u9728\u9726"],["f3a1","\u97B3\u97B7\u97B6\u97DD\u97DE\u97DF\u985C\u9859\u985D\u9857\u98BF\u98BD\u98BB\u98BE\u9948\u9947\u9943\u99A6\u99A7\u9A1A\u9A15\u9A25\u9A1D\u9A24\u9A1B\u9A22\u9A20\u9A27\u9A23\u9A1E\u9A1C\u9A14\u9AC2\u9B0B\u9B0A\u9B0E\u9B0C\u9B37\u9BEA\u9BEB\u9BE0\u9BDE\u9BE4\u9BE6\u9BE2\u9BF0\u9BD4\u9BD7\u9BEC\u9BDC\u9BD9\u9BE5\u9BD5\u9BE1\u9BDA\u9D77\u9D81\u9D8A\u9D84\u9D88\u9D71\u9D80\u9D78\u9D86\u9D8B\u9D8C\u9D7D\u9D6B\u9D74\u9D75\u9D70\u9D69\u9D85\u9D73\u9D7B\u9D82\u9D6F\u9D79\u9D7F\u9D87\u9D68\u9E94\u9E91\u9EC0\u9EFC\u9F2D\u9F40\u9F41\u9F4D\u9F56\u9F57\u9F58\u5337\u56B2"],["f440","\u56B5\u56B3\u58E3\u5B45\u5DC6\u5DC7\u5EEE\u5EEF\u5FC0\u5FC1\u61F9\u6517\u6516\u6515\u6513\u65DF\u66E8\u66E3\u66E4\u6AF3\u6AF0\u6AEA\u6AE8\u6AF9\u6AF1\u6AEE\u6AEF\u703C\u7035\u702F\u7037\u7034\u7031\u7042\u7038\u703F\u703A\u7039\u7040\u703B\u7033\u7041\u7213\u7214\u72A8\u737D\u737C\u74BA\u76AB\u76AA\u76BE\u76ED\u77CC\u77CE\u77CF\u77CD\u77F2\u7925\u7923\u7927\u7928\u7924\u7929"],["f4a1","\u79B2\u7A6E\u7A6C\u7A6D\u7AF7\u7C49\u7C48\u7C4A\u7C47\u7C45\u7CEE\u7E7B\u7E7E\u7E81\u7E80\u7FBA\u7FFF\u8079\u81DB\u81D9\u820B\u8268\u8269\u8622\u85FF\u8601\u85FE\u861B\u8600\u85F6\u8604\u8609\u8605\u860C\u85FD\u8819\u8810\u8811\u8817\u8813\u8816\u8963\u8966\u89B9\u89F7\u8B60\u8B6A\u8B5D\u8B68\u8B63\u8B65\u8B67\u8B6D\u8DAE\u8E86\u8E88\u8E84\u8F59\u8F56\u8F57\u8F55\u8F58\u8F5A\u908D\u9143\u9141\u91B7\u91B5\u91B2\u91B3\u940B\u9413\u93FB\u9420\u940F\u9414\u93FE\u9415\u9410\u9428\u9419\u940D\u93F5\u9400\u93F7\u9407\u940E\u9416\u9412\u93FA\u9409\u93F8\u940A\u93FF"],["f540","\u93FC\u940C\u93F6\u9411\u9406\u95DE\u95E0\u95DF\u972E\u972F\u97B9\u97BB\u97FD\u97FE\u9860\u9862\u9863\u985F\u98C1\u98C2\u9950\u994E\u9959\u994C\u994B\u9953\u9A32\u9A34\u9A31\u9A2C\u9A2A\u9A36\u9A29\u9A2E\u9A38\u9A2D\u9AC7\u9ACA\u9AC6\u9B10\u9B12\u9B11\u9C0B\u9C08\u9BF7\u9C05\u9C12\u9BF8\u9C40\u9C07\u9C0E\u9C06\u9C17\u9C14\u9C09\u9D9F\u9D99\u9DA4\u9D9D\u9D92\u9D98\u9D90\u9D9B"],["f5a1","\u9DA0\u9D94\u9D9C\u9DAA\u9D97\u9DA1\u9D9A\u9DA2\u9DA8\u9D9E\u9DA3\u9DBF\u9DA9\u9D96\u9DA6\u9DA7\u9E99\u9E9B\u9E9A\u9EE5\u9EE4\u9EE7\u9EE6\u9F30\u9F2E\u9F5B\u9F60\u9F5E\u9F5D\u9F59\u9F91\u513A\u5139\u5298\u5297\u56C3\u56BD\u56BE\u5B48\u5B47\u5DCB\u5DCF\u5EF1\u61FD\u651B\u6B02\u6AFC\u6B03\u6AF8\u6B00\u7043\u7044\u704A\u7048\u7049\u7045\u7046\u721D\u721A\u7219\u737E\u7517\u766A\u77D0\u792D\u7931\u792F\u7C54\u7C53\u7CF2\u7E8A\u7E87\u7E88\u7E8B\u7E86\u7E8D\u7F4D\u7FBB\u8030\u81DD\u8618\u862A\u8626\u861F\u8623\u861C\u8619\u8627\u862E\u8621\u8620\u8629\u861E\u8625"],["f640","\u8829\u881D\u881B\u8820\u8824\u881C\u882B\u884A\u896D\u8969\u896E\u896B\u89FA\u8B79\u8B78\u8B45\u8B7A\u8B7B\u8D10\u8D14\u8DAF\u8E8E\u8E8C\u8F5E\u8F5B\u8F5D\u9146\u9144\u9145\u91B9\u943F\u943B\u9436\u9429\u943D\u943C\u9430\u9439\u942A\u9437\u942C\u9440\u9431\u95E5\u95E4\u95E3\u9735\u973A\u97BF\u97E1\u9864\u98C9\u98C6\u98C0\u9958\u9956\u9A39\u9A3D\u9A46\u9A44\u9A42\u9A41\u9A3A"],["f6a1","\u9A3F\u9ACD\u9B15\u9B17\u9B18\u9B16\u9B3A\u9B52\u9C2B\u9C1D\u9C1C\u9C2C\u9C23\u9C28\u9C29\u9C24\u9C21\u9DB7\u9DB6\u9DBC\u9DC1\u9DC7\u9DCA\u9DCF\u9DBE\u9DC5\u9DC3\u9DBB\u9DB5\u9DCE\u9DB9\u9DBA\u9DAC\u9DC8\u9DB1\u9DAD\u9DCC\u9DB3\u9DCD\u9DB2\u9E7A\u9E9C\u9EEB\u9EEE\u9EED\u9F1B\u9F18\u9F1A\u9F31\u9F4E\u9F65\u9F64\u9F92\u4EB9\u56C6\u56C5\u56CB\u5971\u5B4B\u5B4C\u5DD5\u5DD1\u5EF2\u6521\u6520\u6526\u6522\u6B0B\u6B08\u6B09\u6C0D\u7055\u7056\u7057\u7052\u721E\u721F\u72A9\u737F\u74D8\u74D5\u74D9\u74D7\u766D\u76AD\u7935\u79B4\u7A70\u7A71\u7C57\u7C5C\u7C59\u7C5B\u7C5A"],["f740","\u7CF4\u7CF1\u7E91\u7F4F\u7F87\u81DE\u826B\u8634\u8635\u8633\u862C\u8632\u8636\u882C\u8828\u8826\u882A\u8825\u8971\u89BF\u89BE\u89FB\u8B7E\u8B84\u8B82\u8B86\u8B85\u8B7F\u8D15\u8E95\u8E94\u8E9A\u8E92\u8E90\u8E96\u8E97\u8F60\u8F62\u9147\u944C\u9450\u944A\u944B\u944F\u9447\u9445\u9448\u9449\u9446\u973F\u97E3\u986A\u9869\u98CB\u9954\u995B\u9A4E\u9A53\u9A54\u9A4C\u9A4F\u9A48\u9A4A"],["f7a1","\u9A49\u9A52\u9A50\u9AD0\u9B19\u9B2B\u9B3B\u9B56\u9B55\u9C46\u9C48\u9C3F\u9C44\u9C39\u9C33\u9C41\u9C3C\u9C37\u9C34\u9C32\u9C3D\u9C36\u9DDB\u9DD2\u9DDE\u9DDA\u9DCB\u9DD0\u9DDC\u9DD1\u9DDF\u9DE9\u9DD9\u9DD8\u9DD6\u9DF5\u9DD5\u9DDD\u9EB6\u9EF0\u9F35\u9F33\u9F32\u9F42\u9F6B\u9F95\u9FA2\u513D\u5299\u58E8\u58E7\u5972\u5B4D\u5DD8\u882F\u5F4F\u6201\u6203\u6204\u6529\u6525\u6596\u66EB\u6B11\u6B12\u6B0F\u6BCA\u705B\u705A\u7222\u7382\u7381\u7383\u7670\u77D4\u7C67\u7C66\u7E95\u826C\u863A\u8640\u8639\u863C\u8631\u863B\u863E\u8830\u8832\u882E\u8833\u8976\u8974\u8973\u89FE"],["f840","\u8B8C\u8B8E\u8B8B\u8B88\u8C45\u8D19\u8E98\u8F64\u8F63\u91BC\u9462\u9455\u945D\u9457\u945E\u97C4\u97C5\u9800\u9A56\u9A59\u9B1E\u9B1F\u9B20\u9C52\u9C58\u9C50\u9C4A\u9C4D\u9C4B\u9C55\u9C59\u9C4C\u9C4E\u9DFB\u9DF7\u9DEF\u9DE3\u9DEB\u9DF8\u9DE4\u9DF6\u9DE1\u9DEE\u9DE6\u9DF2\u9DF0\u9DE2\u9DEC\u9DF4\u9DF3\u9DE8\u9DED\u9EC2\u9ED0\u9EF2\u9EF3\u9F06\u9F1C\u9F38\u9F37\u9F36\u9F43\u9F4F"],["f8a1","\u9F71\u9F70\u9F6E\u9F6F\u56D3\u56CD\u5B4E\u5C6D\u652D\u66ED\u66EE\u6B13\u705F\u7061\u705D\u7060\u7223\u74DB\u74E5\u77D5\u7938\u79B7\u79B6\u7C6A\u7E97\u7F89\u826D\u8643\u8838\u8837\u8835\u884B\u8B94\u8B95\u8E9E\u8E9F\u8EA0\u8E9D\u91BE\u91BD\u91C2\u946B\u9468\u9469\u96E5\u9746\u9743\u9747\u97C7\u97E5\u9A5E\u9AD5\u9B59\u9C63\u9C67\u9C66\u9C62\u9C5E\u9C60\u9E02\u9DFE\u9E07\u9E03\u9E06\u9E05\u9E00\u9E01\u9E09\u9DFF\u9DFD\u9E04\u9EA0\u9F1E\u9F46\u9F74\u9F75\u9F76\u56D4\u652E\u65B8\u6B18\u6B19\u6B17\u6B1A\u7062\u7226\u72AA\u77D8\u77D9\u7939\u7C69\u7C6B\u7CF6\u7E9A"],["f940","\u7E98\u7E9B\u7E99\u81E0\u81E1\u8646\u8647\u8648\u8979\u897A\u897C\u897B\u89FF\u8B98\u8B99\u8EA5\u8EA4\u8EA3\u946E\u946D\u946F\u9471\u9473\u9749\u9872\u995F\u9C68\u9C6E\u9C6D\u9E0B\u9E0D\u9E10\u9E0F\u9E12\u9E11\u9EA1\u9EF5\u9F09\u9F47\u9F78\u9F7B\u9F7A\u9F79\u571E\u7066\u7C6F\u883C\u8DB2\u8EA6\u91C3\u9474\u9478\u9476\u9475\u9A60\u9C74\u9C73\u9C71\u9C75\u9E14\u9E13\u9EF6\u9F0A"],["f9a1","\u9FA4\u7068\u7065\u7CF7\u866A\u883E\u883D\u883F\u8B9E\u8C9C\u8EA9\u8EC9\u974B\u9873\u9874\u98CC\u9961\u99AB\u9A64\u9A66\u9A67\u9B24\u9E15\u9E17\u9F48\u6207\u6B1E\u7227\u864C\u8EA8\u9482\u9480\u9481\u9A69\u9A68\u9B2E\u9E19\u7229\u864B\u8B9F\u9483\u9C79\u9EB7\u7675\u9A6B\u9C7A\u9E1D\u7069\u706A\u9EA4\u9F7E\u9F49\u9F98\u7881\u92B9\u88CF\u58BB\u6052\u7CA7\u5AFA\u2554\u2566\u2557\u2560\u256C\u2563\u255A\u2569\u255D\u2552\u2564\u2555\u255E\u256A\u2561\u2558\u2567\u255B\u2553\u2565\u2556\u255F\u256B\u2562\u2559\u2568\u255C\u2551\u2550\u256D\u256E\u2570\u256F\u2593"]]});var dIs=H((sig,q2l)=>{q2l.exports=[["8740","\u43F0\u4C32\u4603\u45A6\u4578\u{27267}\u4D77\u45B3\u{27CB1}\u4CE2\u{27CC5}\u3B95\u4736\u4744\u4C47\u4C40\u{242BF}\u{23617}\u{27352}\u{26E8B}\u{270D2}\u4C57\u{2A351}\u474F\u45DA\u4C85\u{27C6C}\u4D07\u4AA4\u46A1\u{26B23}\u7225\u{25A54}\u{21A63}\u{23E06}\u{23F61}\u664D\u56FB"],["8767","\u7D95\u591D\u{28BB9}\u3DF4\u9734\u{27BEF}\u5BDB\u{21D5E}\u5AA4\u3625\u{29EB0}\u5AD1\u5BB7\u5CFC\u676E\u8593\u{29945}\u7461\u749D\u3875\u{21D53}\u{2369E}\u{26021}\u3EEC"],["87a1","\u{258DE}\u3AF5\u7AFC\u9F97\u{24161}\u{2890D}\u{231EA}\u{20A8A}\u{2325E}\u430A\u8484\u9F96\u942F\u4930\u8613\u5896\u974A\u9218\u79D0\u7A32\u6660\u6A29\u889D\u744C\u7BC5\u6782\u7A2C\u524F\u9046\u34E6\u73C4\u{25DB9}\u74C6\u9FC7\u57B3\u492F\u544C\u4131\u{2368E}\u5818\u7A72\u{27B65}\u8B8F\u46AE\u{26E88}\u4181\u{25D99}\u7BAE\u{224BC}\u9FC8\u{224C1}\u{224C9}\u{224CC}\u9FC9\u8504\u{235BB}\u40B4\u9FCA\u44E1\u{2ADFF}\u62C1\u706E\u9FCB"],["8840","\u31C0",4,"\u{2010C}\u31C5\u{200D1}\u{200CD}\u31C6\u31C7\u{200CB}\u{21FE8}\u31C8\u{200CA}\u31C9\u31CA\u31CB\u31CC\u{2010E}\u31CD\u31CE\u0100\xC1\u01CD\xC0\u0112\xC9\u011A\xC8\u014C\xD3\u01D1\xD2\u0FFF\xCA\u0304\u1EBE\u0FFF\xCA\u030C\u1EC0\xCA\u0101\xE1\u01CE\xE0\u0251\u0113\xE9\u011B\xE8\u012B\xED\u01D0\xEC\u014D\xF3\u01D2\xF2\u016B\xFA\u01D4\xF9\u01D6\u01D8\u01DA"],["88a1","\u01DC\xFC\u0FFF\xEA\u0304\u1EBF\u0FFF\xEA\u030C\u1EC1\xEA\u0261\u23DA\u23DB"],["8940","\u{2A3A9}\u{21145}"],["8943","\u650A"],["8946","\u4E3D\u6EDD\u9D4E\u91DF"],["894c","\u{27735}\u6491\u4F1A\u4F28\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E"],["89a1","\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227"],["89ab","\u918C\u78B8\u915E\u80BC"],["89b0","\u8D0B\u80F6\u{209E7}"],["89b5","\u809F\u9EC7\u4CCD\u9DC9\u9E0C\u4C3E\u{29DF6}\u{2700E}\u9E0A\u{2A133}\u35C1"],["89c1","\u6E9A\u823E\u7519"],["89c5","\u4911\u9A6C\u9A8F\u9F99\u7987\u{2846C}\u{21DCA}\u{205D0}\u{22AE6}\u4E24\u4E81\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5"],["8a40","\u{27D84}\u5525"],["8a43","\u{20C42}\u{20D15}\u{2512B}\u5590\u{22CC6}\u39EC\u{20341}\u8E46\u{24DB8}\u{294E5}\u4053\u{280BE}\u777A\u{22C38}\u3A34\u47D5\u{2815D}\u{269F2}\u{24DEA}\u64DD\u{20D7C}\u{20FB4}\u{20CD5}\u{210F4}\u648D\u8E7E\u{20E96}\u{20C0B}\u{20F64}\u{22CA9}\u{28256}\u{244D3}"],["8a64","\u{20D46}\u{29A4D}\u{280E9}\u47F4\u{24EA7}\u{22CC2}\u9AB2\u3A67\u{295F4}\u3FED\u3506\u{252C7}\u{297D4}\u{278C8}\u{22D44}\u9D6E\u9815"],["8a76","\u43D9\u{260A5}\u64B4\u54E3\u{22D4C}\u{22BCA}\u{21077}\u39FB\u{2106F}"],["8aa1","\u{266DA}\u{26716}\u{279A0}\u64EA\u{25052}\u{20C43}\u8E68\u{221A1}\u{28B4C}\u{20731}"],["8aac","\u480B\u{201A9}\u3FFA\u5873\u{22D8D}"],["8ab2","\u{245C8}\u{204FC}\u{26097}\u{20F4C}\u{20D96}\u5579\u40BB\u43BA"],["8abb","\u4AB4\u{22A66}\u{2109D}\u81AA\u98F5\u{20D9C}\u6379\u39FE\u{22775}\u8DC0\u56A1\u647C\u3E43"],["8ac9","\u{2A601}\u{20E09}\u{22ACF}\u{22CC9}"],["8ace","\u{210C8}\u{239C2}\u3992\u3A06\u{2829B}\u3578\u{25E49}\u{220C7}\u5652\u{20F31}\u{22CB2}\u{29720}\u34BC\u6C3D\u{24E3B}"],["8adf","\u{27574}\u{22E8B}\u{22208}\u{2A65B}\u{28CCD}\u{20E7A}\u{20C34}\u{2681C}\u7F93\u{210CF}\u{22803}\u{22939}\u35FB\u{251E3}\u{20E8C}\u{20F8D}\u{20EAA}\u3F93\u{20F30}\u{20D47}\u{2114F}\u{20E4C}"],["8af6","\u{20EAB}\u{20BA9}\u{20D48}\u{210C0}\u{2113D}\u3FF9\u{22696}\u6432\u{20FAD}"],["8b40","\u{233F4}\u{27639}\u{22BCE}\u{20D7E}\u{20D7F}\u{22C51}\u{22C55}\u3A18\u{20E98}\u{210C7}\u{20F2E}\u{2A632}\u{26B50}\u{28CD2}\u{28D99}\u{28CCA}\u95AA\u54CC\u82C4\u55B9"],["8b55","\u{29EC3}\u9C26\u9AB6\u{2775E}\u{22DEE}\u7140\u816D\u80EC\u5C1C\u{26572}\u8134\u3797\u535F\u{280BD}\u91B6\u{20EFA}\u{20E0F}\u{20E77}\u{20EFB}\u35DD\u{24DEB}\u3609\u{20CD6}\u56AF\u{227B5}\u{210C9}\u{20E10}\u{20E78}\u{21078}\u{21148}\u{28207}\u{21455}\u{20E79}\u{24E50}\u{22DA4}\u5A54\u{2101D}\u{2101E}\u{210F5}\u{210F6}\u579C\u{20E11}"],["8ba1","\u{27694}\u{282CD}\u{20FB5}\u{20E7B}\u{2517E}\u3703\u{20FB6}\u{21180}\u{252D8}\u{2A2BD}\u{249DA}\u{2183A}\u{24177}\u{2827C}\u5899\u5268\u361A\u{2573D}\u7BB2\u5B68\u4800\u4B2C\u9F27\u49E7\u9C1F\u9B8D\u{25B74}\u{2313D}\u55FB\u35F2\u5689\u4E28\u5902\u{21BC1}\u{2F878}\u9751\u{20086}\u4E5B\u4EBB\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\u{248E9}\u7F52\u793B\u7CF9\u7F53\u{2626A}\u34C1"],["8bde","\u{2634B}\u8002\u8080\u{26612}\u{26951}\u535D\u8864\u89C1\u{278B2}\u8BA0\u8D1D\u9485\u9578\u957F\u95E8\u{28E0F}\u97E6\u9875\u98CE\u98DE\u9963\u{29810}\u9C7C\u9E1F\u9EC4\u6B6F\uF907\u4E37\u{20087}\u961D\u6237\u94A2"],["8c40","\u503B\u6DFE\u{29C73}\u9FA6\u3DC9\u888F\u{2414E}\u7077\u5CF5\u4B20\u{251CD}\u3559\u{25D30}\u6122\u{28A32}\u8FA7\u91F6\u7191\u6719\u73BA\u{23281}\u{2A107}\u3C8B\u{21980}\u4B10\u78E4\u7402\u51AE\u{2870F}\u4009\u6A63\u{2A2BA}\u4223\u860F\u{20A6F}\u7A2A\u{29947}\u{28AEA}\u9755\u704D\u5324\u{2207E}\u93F4\u76D9\u{289E3}\u9FA7\u77DD\u4EA3\u4FF0\u50BC\u4E2F\u4F17\u9FA8\u5434\u7D8B\u5892\u58D0\u{21DB6}\u5E92\u5E99\u5FC2\u{22712}\u658B"],["8ca1","\u{233F9}\u6919\u6A43\u{23C63}\u6CFF"],["8ca7","\u7200\u{24505}\u738C\u3EDB\u{24A13}\u5B15\u74B9\u8B83\u{25CA4}\u{25695}\u7A93\u7BEC\u7CC3\u7E6C\u82F8\u8597\u9FA9\u8890\u9FAA\u8EB9\u9FAB\u8FCF\u855F\u99E0\u9221\u9FAC\u{28DB9}\u{2143F}\u4071\u42A2\u5A1A"],["8cc9","\u9868\u676B\u4276\u573D"],["8cce","\u85D6\u{2497B}\u82BF\u{2710D}\u4C81\u{26D74}\u5D7B\u{26B15}\u{26FBE}\u9FAD\u9FAE\u5B96\u9FAF\u66E7\u7E5B\u6E57\u79CA\u3D88\u44C3\u{23256}\u{22796}\u439A\u4536"],["8ce6","\u5CD5\u{23B1A}\u8AF9\u5C78\u3D12\u{23551}\u5D78\u9FB2\u7157\u4558\u{240EC}\u{21E23}\u4C77\u3978\u344A\u{201A4}\u{26C41}\u8ACC\u4FB4\u{20239}\u59BF\u816C\u9856\u{298FA}\u5F3B"],["8d40","\u{20B9F}"],["8d42","\u{221C1}\u{2896D}\u4102\u46BB\u{29079}\u3F07\u9FB3\u{2A1B5}\u40F8\u37D6\u46F7\u{26C46}\u417C\u{286B2}\u{273FF}\u456D\u38D4\u{2549A}\u4561\u451B\u4D89\u4C7B\u4D76\u45EA\u3FC8\u{24B0F}\u3661\u44DE\u44BD\u41ED\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1"],["8da1","\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18\u6E29\u6E86\u{289C0}\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8\u6EE9\u6F24\u6F34\u3D46\u{23F41}\u6F81\u6FBE\u3D6A\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054\u706F\u707F\u7089\u{20325}\u43C1\u35F1\u{20ED8}"],["8e40","\u{23ED7}\u57BE\u{26ED3}\u713E\u{257E0}\u364E\u69A2\u{28BE9}\u5B74\u7A49\u{258E1}\u{294D9}\u7A65\u7A7D\u{259AC}\u7ABB\u7AB0\u7AC2\u7AC3\u71D1\u{2648D}\u41CA\u7ADA\u7ADD\u7AEA\u41EF\u54B2\u{25C01}\u7B0B\u7B55\u7B29\u{2530E}\u{25CFE}\u7BA2\u7B6F\u839C\u{25BB4}\u{26C7F}\u7BD0\u8421\u7B92\u7BB8\u{25D20}\u3DAD\u{25C65}\u8492\u7BFA\u7C06\u7C35\u{25CC1}\u7C44\u7C83\u{24882}\u7CA6\u667D\u{24578}\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\u7CCE"],["8ea1","\u7E67\u451D\u{26E44}\u7D5D\u{26ED6}\u748D\u7D89\u7DAB\u7135\u7DB3\u7DD2\u{24057}\u{26029}\u7DE4\u3D13\u7DF5\u{217F9}\u7DE5\u{2836D}\u7E1D\u{26121}\u{2615A}\u7E6E\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936\u{262D0}\u99E1\u7F97\u{26351}\u7FA3\u{21661}\u{20068}\u455C\u{23766}\u4503\u{2833A}\u7FFA\u{26489}\u8005\u8008\u801D\u8028\u802F\u{2A087}\u{26CC3}\u803B\u803C\u8061\u{22714}\u4989\u{26626}\u{23DE3}\u{266E8}\u6725\u80A7\u{28A48}\u8107\u811A\u58B0\u{226F6}\u6C7F\u{26498}\u{24FB8}\u64E7\u{2148A}\u8218\u{2185E}\u6A53\u{24A65}\u{24A95}\u447A\u8229\u{20B0D}\u{26A52}\u{23D7E}\u4FF9\u{214FD}\u84E2\u8362\u{26B0A}\u{249A7}\u{23530}\u{21773}\u{23DF8}\u82AA\u691B\u{2F994}\u41DB"],["8f40","\u854B\u82D0\u831A\u{20E16}\u{217B4}\u36C1\u{2317D}\u{2355A}\u827B\u82E2\u8318\u{23E8B}\u{26DA3}\u{26B05}\u{26B97}\u{235CE}\u3DBF\u831D\u55EC\u8385\u450B\u{26DA5}\u83AC\u83C1\u83D3\u347E\u{26ED4}\u6A57\u855A\u3496\u{26E42}\u{22EEF}\u8458\u{25BE4}\u8471\u3DD3\u44E4\u6AA7\u844A\u{23CB5}\u7958\u84A8\u{26B96}\u{26E77}\u{26E43}\u84DE\u840F\u8391\u44A0\u8493\u84E4\u{25C91}\u4240\u{25CC0}\u4543\u8534\u5AF2\u{26E99}\u4527\u8573\u4516\u67BF\u8616"],["8fa1","\u{28625}\u{2863B}\u85C1\u{27088}\u8602\u{21582}\u{270CD}\u{2F9B2}\u456A\u8628\u3648\u{218A2}\u53F7\u{2739A}\u867E\u8771\u{2A0F8}\u87EE\u{22C27}\u87B1\u87DA\u880F\u5661\u866C\u6856\u460F\u8845\u8846\u{275E0}\u{23DB9}\u{275E4}\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777\u{2770F}\u8987\u898A\u89A6\u89A9\u89A7\u89BC\u{28A25}\u89E7\u{27924}\u{27ABD}\u8A9C\u7793\u91FE\u8A90\u{27A59}\u7AE9\u{27B3A}\u{23F8F}\u4713\u{27B38}\u717C\u8B0C\u8B1F\u{25430}\u{25565}\u8B3F\u8B4C\u8B4D\u8AA9\u{24A7A}\u8B90\u8B9B\u8AAF\u{216DF}\u4615\u884F\u8C9B\u{27D54}\u{27D8F}\u{2F9D4}\u3725\u{27D53}\u8CD6\u{27D98}\u{27DBD}\u8D12\u8D03\u{21910}\u8CDB\u705C\u8D11\u{24CC9}\u3ED0\u8D77"],["9040","\u8DA9\u{28002}\u{21014}\u{2498A}\u3B7C\u{281BC}\u{2710C}\u7AE7\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\u{28365}\u{28412}\u8FA5\u9303\u{2A29F}\u{20A50}\u8FB3\u492A\u{289DE}\u{2853D}\u{23DBB}\u5EF8\u{23262}\u8FF9\u{2A014}\u{286BC}\u{28501}\u{22325}\u3980\u{26ED7}\u9037\u{2853C}\u{27ABE}\u9061\u{2856C}\u{2860B}\u90A8\u{28713}\u90C4\u{286E6}\u90AE\u90FD\u9167\u3AF0\u91A9\u91C4\u7CAC\u{28933}\u{21E89}\u920E\u6C9F\u9241\u9262\u{255B9}\u92B9\u{28AC6}\u{23C9B}\u{28B0C}\u{255DB}"],["90a1","\u{20D31}\u932C\u936B\u{28AE1}\u{28BEB}\u708F\u5AC3\u{28AE2}\u{28AE5}\u4965\u9244\u{28BEC}\u{28C39}\u{28BFF}\u9373\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9\u{2267A}\u{286D8}\u{2127C}\u{23E2E}\u49DF\u6C1C\u967B\u9696\u416C\u96A3\u{26ED5}\u61DA\u96B6\u78F5\u{28AE0}\u96BD\u53CC\u49A1\u{26CB8}\u{20274}\u{26410}\u{290AF}\u{290E5}\u{24AD1}\u{21915}\u{2330A}\u9731\u8642\u9736\u4A0F\u453D\u4585\u{24AE9}\u7075\u5B41\u971B\u975C\u{291D5}\u9757\u5B4A\u{291EB}\u975F\u9425\u50D0\u{230B7}\u{230BC}\u9789\u979F\u97B1\u97BE\u97C0\u97D2\u97E0\u{2546C}\u97EE\u741C\u{29433}\u97FF\u97F5\u{2941D}\u{2797A}\u4AD1\u9834\u9833\u984B\u9866\u3B0E\u{27175}\u3D51\u{20630}\u{2415C}"],["9140","\u{25706}\u98CA\u98B7\u98C8\u98C7\u4AFF\u{26D27}\u{216D3}\u55B0\u98E1\u98E6\u98EC\u9378\u9939\u{24A29}\u4B72\u{29857}\u{29905}\u99F5\u9A0C\u9A3B\u9A10\u9A58\u{25725}\u36C4\u{290B1}\u{29BD5}\u9AE0\u9AE2\u{29B05}\u9AF4\u4C0E\u9B14\u9B2D\u{28600}\u5034\u9B34\u{269A8}\u38C3\u{2307D}\u9B50\u9B40\u{29D3E}\u5A45\u{21863}\u9B8E\u{2424B}\u9C02\u9BFF\u9C0C\u{29E68}\u9DD4\u{29FB7}\u{2A192}\u{2A1AB}\u{2A0E1}\u{2A123}\u{2A1DF}\u9D7E\u9D83\u{2A134}\u9E0E\u6888"],["91a1","\u9DC4\u{2215B}\u{2A193}\u{2A220}\u{2193B}\u{2A233}\u9D39\u{2A0B9}\u{2A2B4}\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA\u9EAF\u{24364}\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE\u{28C2B}\u9F02\u9F08\u4B96\u9424\u{26DA2}\u9F17\u9F16\u9F39\u569F\u568A\u9F45\u99B8\u{2908B}\u97F2\u847F\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\u{24975}\u{249BB}\u7177\u{249F8}\u{24348}\u{24A51}\u739E\u{28BDA}\u{218FA}\u799F\u{2897E}\u{28E36}\u9369\u93F3\u{28A44}\u92EC\u9381\u93CB\u{2896C}\u{244B9}\u7217\u3EEB\u7772\u7A43\u70D0\u{24473}\u{243F8}\u717E\u{217EF}\u70A3\u{218BE}\u{23599}\u3EC7\u{21885}\u{2542F}\u{217F8}\u3722\u{216FB}\u{21839}\u36E1\u{21774}\u{218D1}\u{25F4B}\u3723\u{216C0}\u575B\u{24A25}\u{213FE}\u{212A8}"],["9240","\u{213C6}\u{214B6}\u8503\u{236A6}\u8503\u8455\u{24994}\u{27165}\u{23E31}\u{2555C}\u{23EFB}\u{27052}\u44F4\u{236EE}\u{2999D}\u{26F26}\u67F9\u3733\u3C15\u3DE7\u586C\u{21922}\u6810\u4057\u{2373F}\u{240E1}\u{2408B}\u{2410F}\u{26C21}\u54CB\u569E\u{266B1}\u5692\u{20FDF}\u{20BA8}\u{20E0D}\u93C6\u{28B13}\u939C\u4EF8\u512B\u3819\u{24436}\u4EBC\u{20465}\u{2037F}\u4F4B\u4F8A\u{25651}\u5A68\u{201AB}\u{203CB}\u3999\u{2030A}\u{20414}\u3435\u4F29\u{202C0}\u{28EB3}\u{20275}\u8ADA\u{2020C}\u4E98"],["92a1","\u50CD\u510D\u4FA2\u4F03\u{24A0E}\u{23E8A}\u4F42\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\u5159\u515B\u515D\u515E\u6E76\u{23595}\u{23E39}\u{23EBF}\u6D72\u{21884}\u{23E89}\u51A8\u51C3\u{205E0}\u44DD\u{204A3}\u{20492}\u{20491}\u8D7A\u{28A9C}\u{2070E}\u5259\u52A4\u{20873}\u52E1\u936E\u467A\u718C\u{2438C}\u{20C20}\u{249AC}\u{210E4}\u69D1\u{20E1D}\u7479\u3EDE\u7499\u7414\u7456\u7398\u4B8E\u{24ABC}\u{2408D}\u53D0\u3584\u720F\u{240C9}\u55B4\u{20345}\u54CD\u{20BC6}\u571D\u925D\u96F4\u9366\u57DD\u578D\u577F\u363E\u58CB\u5A99\u{28A46}\u{216FA}\u{2176F}\u{21710}\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\u{25946}\u{219F3}\u{21861}\u{24295}\u36F5\u6D05\u7443\u5A21\u{25E83}"],["9340","\u5A81\u{28BD7}\u{20413}\u93E0\u748C\u{21303}\u7105\u4972\u9408\u{289FB}\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48\u{21996}\u{2197C}\u{23AEE}\u5ECD\u5B4F\u{21903}\u{21904}\u3701\u{218A0}\u36DD\u{216FE}\u36D3\u812A\u{28A47}\u{21DBA}\u{23472}\u{289A8}\u5F0C\u5F0E\u{21927}\u{217AB}\u5A6B\u{2173B}\u5B44\u8614\u{275FD}\u8860\u607E\u{22860}\u{2262B}\u5FDB\u3EB8\u{225AF}\u{225BE}\u{29088}\u{26F73}\u61C0\u{2003E}\u{20046}\u{2261B}\u6199\u6198\u6075\u{22C9B}\u{22D07}\u{246D4}\u{2914D}"],["93a1","\u6471\u{24665}\u{22B6A}\u3A29\u{22B22}\u{23450}\u{298EA}\u{22E78}\u6337\u{2A45B}\u64B6\u6331\u63D1\u{249E3}\u{22D67}\u62A4\u{22CA1}\u643B\u656B\u6972\u3BF4\u{2308E}\u{232AD}\u{24989}\u{232AB}\u550D\u{232E0}\u{218D9}\u{2943F}\u66CE\u{23289}\u{231B3}\u3AE0\u4190\u{25584}\u{28B22}\u{2558F}\u{216FC}\u{2555B}\u{25425}\u78EE\u{23103}\u{2182A}\u{23234}\u3464\u{2320F}\u{23182}\u{242C9}\u668E\u{26D24}\u666B\u4B93\u6630\u{27870}\u{21DEB}\u6663\u{232D2}\u{232E1}\u661E\u{25872}\u38D1\u{2383A}\u{237BC}\u3B99\u{237A2}\u{233FE}\u74D0\u3B96\u678F\u{2462A}\u68B6\u681E\u3BC4\u6ABE\u3863\u{237D5}\u{24487}\u6A33\u6A52\u6AC9\u6B05\u{21912}\u6511\u6898\u6A4C\u3BD7\u6A7A\u6B57\u{23FC0}\u{23C9A}\u93A0\u92F2\u{28BEA}\u{28ACB}"],["9440","\u9289\u{2801E}\u{289DC}\u9467\u6DA5\u6F0B\u{249EC}\u6D67\u{23F7F}\u3D8F\u6E04\u{2403C}\u5A3D\u6E0A\u5847\u6D24\u7842\u713B\u{2431A}\u{24276}\u70F1\u7250\u7287\u7294\u{2478F}\u{24725}\u5179\u{24AA4}\u{205EB}\u747A\u{23EF8}\u{2365F}\u{24A4A}\u{24917}\u{25FE1}\u3F06\u3EB1\u{24ADF}\u{28C23}\u{23F35}\u60A7\u3EF3\u74CC\u743C\u9387\u7437\u449F\u{26DEA}\u4551\u7583\u3F63\u{24CD9}\u{24D06}\u3F58\u7555\u7673\u{2A5C6}\u3B19\u7468\u{28ACC}\u{249AB}\u{2498E}\u3AFB"],["94a1","\u3DCD\u{24A4E}\u3EFF\u{249C5}\u{248F3}\u91FA\u5732\u9342\u{28AE3}\u{21864}\u50DF\u{25221}\u{251E7}\u7778\u{23232}\u770E\u770F\u777B\u{24697}\u{23781}\u3A5E\u{248F0}\u7438\u749B\u3EBF\u{24ABA}\u{24AC7}\u40C8\u{24A96}\u{261AE}\u9307\u{25581}\u781E\u788D\u7888\u78D2\u73D0\u7959\u{27741}\u{256E3}\u410E\u799B\u8496\u79A5\u6A2D\u{23EFA}\u7A3A\u79F4\u416E\u{216E6}\u4132\u9235\u79F1\u{20D4C}\u{2498C}\u{20299}\u{23DBA}\u{2176E}\u3597\u556B\u3570\u36AA\u{201D4}\u{20C0D}\u7AE2\u5A59\u{226F5}\u{25AAF}\u{25A9C}\u5A0D\u{2025B}\u78F0\u5A2A\u{25BC6}\u7AFE\u41F9\u7C5D\u7C6D\u4211\u{25BB3}\u{25EBC}\u{25EA6}\u7CCD\u{249F9}\u{217B0}\u7C8E\u7C7C\u7CAE\u6AB2\u7DDC\u7E07\u7DD3\u7F4E\u{26261}"],["9540","\u{2615C}\u{27B48}\u7D97\u{25E82}\u426A\u{26B75}\u{20916}\u67D6\u{2004E}\u{235CF}\u57C4\u{26412}\u{263F8}\u{24962}\u7FDD\u7B27\u{2082C}\u{25AE9}\u{25D43}\u7B0C\u{25E0E}\u99E6\u8645\u9A63\u6A1C\u{2343F}\u39E2\u{249F7}\u{265AD}\u9A1F\u{265A0}\u8480\u{27127}\u{26CD1}\u44EA\u8137\u4402\u80C6\u8109\u8142\u{267B4}\u98C3\u{26A42}\u8262\u8265\u{26A51}\u8453\u{26DA7}\u8610\u{2721B}\u5A86\u417F\u{21840}\u5B2B\u{218A1}\u5AE4\u{218D8}\u86A0\u{2F9BC}\u{23D8F}\u882D\u{27422}\u5A02"],["95a1","\u886E\u4F45\u8887\u88BF\u88E6\u8965\u894D\u{25683}\u8954\u{27785}\u{27784}\u{28BF5}\u{28BD9}\u{28B9C}\u{289F9}\u3EAD\u84A3\u46F5\u46CF\u37F2\u8A3D\u8A1C\u{29448}\u5F4D\u922B\u{24284}\u65D4\u7129\u70C4\u{21845}\u9D6D\u8C9F\u8CE9\u{27DDC}\u599A\u77C3\u59F0\u436E\u36D4\u8E2A\u8EA7\u{24C09}\u8F30\u8F4A\u42F4\u6C58\u6FBB\u{22321}\u489B\u6F79\u6E8B\u{217DA}\u9BE9\u36B5\u{2492F}\u90BB\u9097\u5571\u4906\u91BB\u9404\u{28A4B}\u4062\u{28AFC}\u9427\u{28C1D}\u{28C3B}\u84E5\u8A2B\u9599\u95A7\u9597\u9596\u{28D34}\u7445\u3EC2\u{248FF}\u{24A42}\u{243EA}\u3EE7\u{23225}\u968F\u{28EE7}\u{28E66}\u{28E65}\u3ECC\u{249ED}\u{24A78}\u{23FEE}\u7412\u746B\u3EFC\u9741\u{290B0}"],["9640","\u6847\u4A1D\u{29093}\u{257DF}\u975D\u9368\u{28989}\u{28C26}\u{28B2F}\u{263BE}\u92BA\u5B11\u8B69\u493C\u73F9\u{2421B}\u979B\u9771\u9938\u{20F26}\u5DC1\u{28BC5}\u{24AB2}\u981F\u{294DA}\u92F6\u{295D7}\u91E5\u44C0\u{28B50}\u{24A67}\u{28B64}\u98DC\u{28A45}\u3F00\u922A\u4925\u8414\u993B\u994D\u{27B06}\u3DFD\u999B\u4B6F\u99AA\u9A5C\u{28B65}\u{258C8}\u6A8F\u9A21\u5AFE\u9A2F\u{298F1}\u4B90\u{29948}\u99BC\u4BBD\u4B97\u937D\u5872\u{21302}\u5822\u{249B8}"],["96a1","\u{214E8}\u7844\u{2271F}\u{23DB8}\u68C5\u3D7D\u9458\u3927\u6150\u{22781}\u{2296B}\u6107\u9C4F\u9C53\u9C7B\u9C35\u9C10\u9B7F\u9BCF\u{29E2D}\u9B9F\u{2A1F5}\u{2A0FE}\u9D21\u4CAE\u{24104}\u9E18\u4CB0\u9D0C\u{2A1B4}\u{2A0ED}\u{2A0F3}\u{2992F}\u9DA5\u84BD\u{26E12}\u{26FDF}\u{26B82}\u85FC\u4533\u{26DA4}\u{26E84}\u{26DF0}\u8420\u85EE\u{26E00}\u{237D7}\u{26064}\u79E2\u{2359C}\u{23640}\u492D\u{249DE}\u3D62\u93DB\u92BE\u9348\u{202BF}\u78B9\u9277\u944D\u4FE4\u3440\u9064\u{2555D}\u783D\u7854\u78B6\u784B\u{21757}\u{231C9}\u{24941}\u369A\u4F72\u6FDA\u6FD9\u701E\u701E\u5414\u{241B5}\u57BB\u58F3\u578A\u9D16\u57D7\u7134\u34AF\u{241AC}\u71EB\u{26C40}\u{24F97}\u5B28\u{217B5}\u{28A49}"],["9740","\u610C\u5ACE\u5A0B\u42BC\u{24488}\u372C\u4B7B\u{289FC}\u93BB\u93B8\u{218D6}\u{20F1D}\u8472\u{26CC0}\u{21413}\u{242FA}\u{22C26}\u{243C1}\u5994\u{23DB7}\u{26741}\u7DA8\u{2615B}\u{260A4}\u{249B9}\u{2498B}\u{289FA}\u92E5\u73E2\u3EE9\u74B4\u{28B63}\u{2189F}\u3EE1\u{24AB3}\u6AD8\u73F3\u73FB\u3ED6\u{24A3E}\u{24A94}\u{217D9}\u{24A66}\u{203A7}\u{21424}\u{249E5}\u7448\u{24916}\u70A5\u{24976}\u9284\u73E6\u935F\u{204FE}\u9331\u{28ACE}\u{28A16}\u9386\u{28BE7}\u{255D5}\u4935\u{28A82}\u716B"],["97a1","\u{24943}\u{20CFF}\u56A4\u{2061A}\u{20BEB}\u{20CB8}\u5502\u79C4\u{217FA}\u7DFE\u{216C2}\u{24A50}\u{21852}\u452E\u9401\u370A\u{28AC0}\u{249AD}\u59B0\u{218BF}\u{21883}\u{27484}\u5AA1\u36E2\u{23D5B}\u36B0\u925F\u5A79\u{28A81}\u{21862}\u9374\u3CCD\u{20AB4}\u4A96\u398A\u50F4\u3D69\u3D4C\u{2139C}\u7175\u42FB\u{28218}\u6E0F\u{290E4}\u44EB\u6D57\u{27E4F}\u7067\u6CAF\u3CD6\u{23FED}\u{23E2D}\u6E02\u6F0C\u3D6F\u{203F5}\u7551\u36BC\u34C8\u4680\u3EDA\u4871\u59C4\u926E\u493E\u8F41\u{28C1C}\u{26BC0}\u5812\u57C8\u36D6\u{21452}\u70FE\u{24362}\u{24A71}\u{22FE3}\u{212B0}\u{223BD}\u68B9\u6967\u{21398}\u{234E5}\u{27BF4}\u{236DF}\u{28A83}\u{237D6}\u{233FA}\u{24C9F}\u6A1A\u{236AD}\u{26CB7}\u843E\u44DF\u44CE"],["9840","\u{26D26}\u{26D51}\u{26C82}\u{26FDE}\u6F17\u{27109}\u833D\u{2173A}\u83ED\u{26C80}\u{27053}\u{217DB}\u5989\u5A82\u{217B3}\u5A61\u5A71\u{21905}\u{241FC}\u372D\u59EF\u{2173C}\u36C7\u718E\u9390\u669A\u{242A5}\u5A6E\u5A2B\u{24293}\u6A2B\u{23EF9}\u{27736}\u{2445B}\u{242CA}\u711D\u{24259}\u{289E1}\u4FB0\u{26D28}\u5CC2\u{244CE}\u{27E4D}\u{243BD}\u6A0C\u{24256}\u{21304}\u70A6\u7133\u{243E9}\u3DA5\u6CDF\u{2F825}\u{24A4F}\u7E65\u59EB\u5D2F\u3DF3\u5F5C\u{24A5D}\u{217DF}\u7DA4\u8426"],["98a1","\u5485\u{23AFA}\u{23300}\u{20214}\u577E\u{208D5}\u{20619}\u3FE5\u{21F9E}\u{2A2B6}\u7003\u{2915B}\u5D70\u738F\u7CD3\u{28A59}\u{29420}\u4FC8\u7FE7\u72CD\u7310\u{27AF4}\u7338\u7339\u{256F6}\u7341\u7348\u3EA9\u{27B18}\u906C\u71F5\u{248F2}\u73E1\u81F6\u3ECA\u770C\u3ED1\u6CA2\u56FD\u7419\u741E\u741F\u3EE2\u3EF0\u3EF4\u3EFA\u74D3\u3F0E\u3F53\u7542\u756D\u7572\u758D\u3F7C\u75C8\u75DC\u3FC0\u764D\u3FD7\u7674\u3FDC\u767A\u{24F5C}\u7188\u5623\u8980\u5869\u401D\u7743\u4039\u6761\u4045\u35DB\u7798\u406A\u406F\u5C5E\u77BE\u77CB\u58F2\u7818\u70B9\u781C\u40A8\u7839\u7847\u7851\u7866\u8448\u{25535}\u7933\u6803\u7932\u4103"],["9940","\u4109\u7991\u7999\u8FBB\u7A06\u8FBC\u4167\u7A91\u41B2\u7ABC\u8279\u41C4\u7ACF\u7ADB\u41CF\u4E21\u7B62\u7B6C\u7B7B\u7C12\u7C1B\u4260\u427A\u7C7B\u7C9C\u428C\u7CB8\u4294\u7CED\u8F93\u70C0\u{20CCF}\u7DCF\u7DD4\u7DD0\u7DFD\u7FAE\u7FB4\u729F\u4397\u8020\u8025\u7B39\u802E\u8031\u8054\u3DCC\u57B4\u70A0\u80B7\u80E9\u43ED\u810C\u732A\u810E\u8112\u7560\u8114\u4401\u3B39\u8156\u8159\u815A"],["99a1","\u4413\u583A\u817C\u8184\u4425\u8193\u442D\u81A5\u57EF\u81C1\u81E4\u8254\u448F\u82A6\u8276\u82CA\u82D8\u82FF\u44B0\u8357\u9669\u698A\u8405\u70F5\u8464\u60E3\u8488\u4504\u84BE\u84E1\u84F8\u8510\u8538\u8552\u453B\u856F\u8570\u85E0\u4577\u8672\u8692\u86B2\u86EF\u9645\u878B\u4606\u4617\u88AE\u88FF\u8924\u8947\u8991\u{27967}\u8A29\u8A38\u8A94\u8AB4\u8C51\u8CD4\u8CF2\u8D1C\u4798\u585F\u8DC3\u47ED\u4EEE\u8E3A\u55D8\u5754\u8E71\u55F5\u8EB0\u4837\u8ECE\u8EE2\u8EE4\u8EED\u8EF2\u8FB7\u8FC1\u8FCA\u8FCC\u9033\u99C4\u48AD\u98E0\u9213\u491E\u9228\u9258\u926B\u92B1\u92AE\u92BF"],["9a40","\u92E3\u92EB\u92F3\u92F4\u92FD\u9343\u9384\u93AD\u4945\u4951\u9EBF\u9417\u5301\u941D\u942D\u943E\u496A\u9454\u9479\u952D\u95A2\u49A7\u95F4\u9633\u49E5\u67A0\u4A24\u9740\u4A35\u97B2\u97C2\u5654\u4AE4\u60E8\u98B9\u4B19\u98F1\u5844\u990E\u9919\u51B4\u991C\u9937\u9942\u995D\u9962\u4B70\u99C5\u4B9D\u9A3C\u9B0F\u7A83\u9B69\u9B81\u9BDD\u9BF1\u9BF4\u4C6D\u9C20\u376F\u{21BC2}\u9D49\u9C3A"],["9aa1","\u9EFE\u5650\u9D93\u9DBD\u9DC0\u9DFC\u94F6\u8FB6\u9E7B\u9EAC\u9EB1\u9EBD\u9EC6\u94DC\u9EE2\u9EF1\u9EF8\u7AC8\u9F44\u{20094}\u{202B7}\u{203A0}\u691A\u94C3\u59AC\u{204D7}\u5840\u94C1\u37B9\u{205D5}\u{20615}\u{20676}\u{216BA}\u5757\u7173\u{20AC2}\u{20ACD}\u{20BBF}\u546A\u{2F83B}\u{20BCB}\u549E\u{20BFB}\u{20C3B}\u{20C53}\u{20C65}\u{20C7C}\u60E7\u{20C8D}\u567A\u{20CB5}\u{20CDD}\u{20CED}\u{20D6F}\u{20DB2}\u{20DC8}\u6955\u9C2F\u87A5\u{20E04}\u{20E0E}\u{20ED7}\u{20F90}\u{20F2D}\u{20E73}\u5C20\u{20FBC}\u5E0B\u{2105C}\u{2104F}\u{21076}\u671E\u{2107B}\u{21088}\u{21096}\u3647\u{210BF}\u{210D3}\u{2112F}\u{2113B}\u5364\u84AD\u{212E3}\u{21375}\u{21336}\u8B81\u{21577}\u{21619}\u{217C3}\u{217C7}\u4E78\u70BB\u{2182D}\u{2196A}"],["9b40","\u{21A2D}\u{21A45}\u{21C2A}\u{21C70}\u{21CAC}\u{21EC8}\u62C3\u{21ED5}\u{21F15}\u7198\u6855\u{22045}\u69E9\u36C8\u{2227C}\u{223D7}\u{223FA}\u{2272A}\u{22871}\u{2294F}\u82FD\u{22967}\u{22993}\u{22AD5}\u89A5\u{22AE8}\u8FA0\u{22B0E}\u97B8\u{22B3F}\u9847\u9ABD\u{22C4C}"],["9b62","\u{22C88}\u{22CB7}\u{25BE8}\u{22D08}\u{22D12}\u{22DB7}\u{22D95}\u{22E42}\u{22F74}\u{22FCC}\u{23033}\u{23066}\u{2331F}\u{233DE}\u5FB1\u6648\u66BF\u{27A79}\u{23567}\u{235F3}\u7201\u{249BA}\u77D7\u{2361A}\u{23716}\u7E87\u{20346}\u58B5\u670E"],["9ba1","\u6918\u{23AA7}\u{27657}\u{25FE2}\u{23E11}\u{23EB9}\u{275FE}\u{2209A}\u48D0\u4AB8\u{24119}\u{28A9A}\u{242EE}\u{2430D}\u{2403B}\u{24334}\u{24396}\u{24A45}\u{205CA}\u51D2\u{20611}\u599F\u{21EA8}\u3BBE\u{23CFF}\u{24404}\u{244D6}\u5788\u{24674}\u399B\u{2472F}\u{285E8}\u{299C9}\u3762\u{221C3}\u8B5E\u{28B4E}\u99D6\u{24812}\u{248FB}\u{24A15}\u7209\u{24AC0}\u{20C78}\u5965\u{24EA5}\u{24F86}\u{20779}\u8EDA\u{2502C}\u528F\u573F\u7171\u{25299}\u{25419}\u{23F4A}\u{24AA7}\u55BC\u{25446}\u{2546E}\u{26B52}\u91D4\u3473\u{2553F}\u{27632}\u{2555E}\u4718\u{25562}\u{25566}\u{257C7}\u{2493F}\u{2585D}\u5066\u34FB\u{233CC}\u60DE\u{25903}\u477C\u{28948}\u{25AAE}\u{25B89}\u{25C06}\u{21D90}\u57A1\u7151\u6FB6\u{26102}\u{27C12}\u9056\u{261B2}\u{24F9A}\u8B62\u{26402}\u{2644A}"],["9c40","\u5D5B\u{26BF7}\u8F36\u{26484}\u{2191C}\u8AEA\u{249F6}\u{26488}\u{23FEF}\u{26512}\u4BC0\u{265BF}\u{266B5}\u{2271B}\u9465\u{257E1}\u6195\u5A27\u{2F8CD}\u4FBB\u56B9\u{24521}\u{266FC}\u4E6A\u{24934}\u9656\u6D8F\u{26CBD}\u3618\u8977\u{26799}\u{2686E}\u{26411}\u{2685E}\u71DF\u{268C7}\u7B42\u{290C0}\u{20A11}\u{26926}\u9104\u{26939}\u7A45\u9DF0\u{269FA}\u9A26\u{26A2D}\u365F\u{26469}\u{20021}\u7983\u{26A34}\u{26B5B}\u5D2C\u{23519}\u83CF\u{26B9D}\u46D0\u{26CA4}\u753B\u8865\u{26DAE}\u58B6"],["9ca1","\u371C\u{2258D}\u{2704B}\u{271CD}\u3C54\u{27280}\u{27285}\u9281\u{2217A}\u{2728B}\u9330\u{272E6}\u{249D0}\u6C39\u949F\u{27450}\u{20EF8}\u8827\u88F5\u{22926}\u{28473}\u{217B1}\u6EB8\u{24A2A}\u{21820}\u39A4\u36B9\u5C10\u79E3\u453F\u66B6\u{29CAD}\u{298A4}\u8943\u{277CC}\u{27858}\u56D6\u40DF\u{2160A}\u39A1\u{2372F}\u{280E8}\u{213C5}\u71AD\u8366\u{279DD}\u{291A8}\u5A67\u4CB7\u{270AF}\u{289AB}\u{279FD}\u{27A0A}\u{27B0B}\u{27D66}\u{2417A}\u7B43\u797E\u{28009}\u6FB5\u{2A2DF}\u6A03\u{28318}\u53A2\u{26E07}\u93BF\u6836\u975D\u{2816F}\u{28023}\u{269B5}\u{213ED}\u{2322F}\u{28048}\u5D85\u{28C30}\u{28083}\u5715\u9823\u{28949}\u5DAB\u{24988}\u65BE\u69D5\u53D2\u{24AA5}\u{23F81}\u3C11\u6736\u{28090}\u{280F4}\u{2812E}\u{21FA1}\u{2814F}"],["9d40","\u{28189}\u{281AF}\u{2821A}\u{28306}\u{2832F}\u{2838A}\u35CA\u{28468}\u{286AA}\u48FA\u63E6\u{28956}\u7808\u9255\u{289B8}\u43F2\u{289E7}\u43DF\u{289E8}\u{28B46}\u{28BD4}\u59F8\u{28C09}\u8F0B\u{28FC5}\u{290EC}\u7B51\u{29110}\u{2913C}\u3DF7\u{2915E}\u{24ACA}\u8FD0\u728F\u568B\u{294E7}\u{295E9}\u{295B0}\u{295B8}\u{29732}\u{298D1}\u{29949}\u{2996A}\u{299C3}\u{29A28}\u{29B0E}\u{29D5A}\u{29D9B}\u7E9F\u{29EF8}\u{29F23}\u4CA4\u9547\u{2A293}\u71A2\u{2A2FF}\u4D91\u9012\u{2A5CB}\u4D9C\u{20C9C}\u8FBE\u55C1"],["9da1","\u8FBA\u{224B0}\u8FB9\u{24A93}\u4509\u7E7F\u6F56\u6AB1\u4EEA\u34E4\u{28B2C}\u{2789D}\u373A\u8E80\u{217F5}\u{28024}\u{28B6C}\u{28B99}\u{27A3E}\u{266AF}\u3DEB\u{27655}\u{23CB7}\u{25635}\u{25956}\u4E9A\u{25E81}\u{26258}\u56BF\u{20E6D}\u8E0E\u5B6D\u{23E88}\u{24C9E}\u63DE\u62D0\u{217F6}\u{2187B}\u6530\u562D\u{25C4A}\u541A\u{25311}\u3DC6\u{29D98}\u4C7D\u5622\u561E\u7F49\u{25ED8}\u5975\u{23D40}\u8770\u4E1C\u{20FEA}\u{20D49}\u{236BA}\u8117\u9D5E\u8D18\u763B\u9C45\u764E\u77B9\u9345\u5432\u8148\u82F7\u5625\u8132\u8418\u80BD\u55EA\u7962\u5643\u5416\u{20E9D}\u35CE\u5605\u55F1\u66F1\u{282E2}\u362D\u7534\u55F0\u55BA\u5497\u5572\u{20C41}\u{20C96}\u5ED0\u{25148}\u{20E76}\u{22C62}"],["9e40","\u{20EA2}\u9EAB\u7D5A\u55DE\u{21075}\u629D\u976D\u5494\u8CCD\u71F6\u9176\u63FC\u63B9\u63FE\u5569\u{22B43}\u9C72\u{22EB3}\u519A\u34DF\u{20DA7}\u51A7\u544D\u551E\u5513\u7666\u8E2D\u{2688A}\u75B1\u80B6\u8804\u8786\u88C7\u81B6\u841C\u{210C1}\u44EC\u7304\u{24706}\u5B90\u830B\u{26893}\u567B\u{226F4}\u{27D2F}\u{241A3}\u{27D73}\u{26ED0}\u{272B6}\u9170\u{211D9}\u9208\u{23CFC}\u{2A6A9}\u{20EAC}\u{20EF9}\u7266\u{21CA2}\u474E\u{24FC2}\u{27FF9}\u{20FEB}\u40FA"],["9ea1","\u9C5D\u651F\u{22DA0}\u48F3\u{247E0}\u{29D7C}\u{20FEC}\u{20E0A}\u6062\u{275A3}\u{20FED}"],["9ead","\u{26048}\u{21187}\u71A3\u7E8E\u9D50\u4E1A\u4E04\u3577\u5B0D\u6CB2\u5367\u36AC\u39DC\u537D\u36A5\u{24618}\u589A\u{24B6E}\u822D\u544B\u57AA\u{25A95}\u{20979}"],["9ec5","\u3A52\u{22465}\u7374\u{29EAC}\u4D09\u9BED\u{23CFE}\u{29F30}\u4C5B\u{24FA9}\u{2959E}\u{29FDE}\u845C\u{23DB6}\u{272B2}\u{267B3}\u{23720}\u632E\u7D25\u{23EF7}\u{23E2C}\u3A2A\u9008\u52CC\u3E74\u367A\u45E9\u{2048E}\u7640\u5AF0\u{20EB6}\u787A\u{27F2E}\u58A7\u40BF\u567C\u9B8B\u5D74\u7654\u{2A434}\u9E85\u4CE1\u75F9\u37FB\u6119\u{230DA}\u{243F2}"],["9ef5","\u565D\u{212A9}\u57A7\u{24963}\u{29E06}\u5234\u{270AE}\u35AD\u6C4A\u9D7C"],["9f40","\u7C56\u9B39\u57DE\u{2176C}\u5C53\u64D3\u{294D0}\u{26335}\u{27164}\u86AD\u{20D28}\u{26D22}\u{24AE2}\u{20D71}"],["9f4f","\u51FE\u{21F0F}\u5D8E\u9703\u{21DD1}\u9E81\u904C\u7B1F\u9B02\u5CD1\u7BA3\u6268\u6335\u9AFF\u7BCF\u9B2A\u7C7E\u9B2E\u7C42\u7C86\u9C15\u7BFC\u9B09\u9F17\u9C1B\u{2493E}\u9F5A\u5573\u5BC3\u4FFD\u9E98\u4FF2\u5260\u3E06\u52D1\u5767\u5056\u59B7\u5E12\u97C8\u9DAB\u8F5C\u5469\u97B4\u9940\u97BA\u532C\u6130"],["9fa1","\u692C\u53DA\u9C0A\u9D02\u4C3B\u9641\u6980\u50A6\u7546\u{2176D}\u99DA\u5273"],["9fae","\u9159\u9681\u915C"],["9fb2","\u9151\u{28E97}\u637F\u{26D23}\u6ACA\u5611\u918E\u757A\u6285\u{203FC}\u734F\u7C70\u{25C21}\u{23CFD}"],["9fc1","\u{24919}\u76D6\u9B9D\u4E2A\u{20CD4}\u83BE\u8842"],["9fc9","\u5C4A\u69C0\u50ED\u577A\u521F\u5DF5\u4ECE\u6C31\u{201F2}\u4F39\u549C\u54DA\u529A\u8D82\u35FE\u5F0C\u35F3"],["9fdb","\u6B52\u917C\u9FA5\u9B97\u982E\u98B4\u9ABA\u9EA8\u9E84\u717A\u7B14"],["9fe7","\u6BFA\u8818\u7F78"],["9feb","\u5620\u{2A64A}\u8E77\u9F53"],["9ff0","\u8DD4\u8E4F\u9E1C\u8E01\u6282\u{2837D}\u8E28\u8E75\u7AD3\u{24A77}\u7A3E\u78D8\u6CEA\u8A67\u7607"],["a040","\u{28A5A}\u9F26\u6CCE\u87D6\u75C3\u{2A2B2}\u7853\u{2F840}\u8D0C\u72E2\u7371\u8B2D\u7302\u74F1\u8CEB\u{24ABB}\u862F\u5FBA\u88A0\u44B7"],["a055","\u{2183B}\u{26E05}"],["a058","\u8A7E\u{2251B}"],["a05b","\u60FD\u7667\u9AD7\u9D44\u936E\u9B8F\u87F5"],["a063","\u880F\u8CF7\u732C\u9721\u9BB0\u35D6\u72B2\u4C07\u7C51\u994A\u{26159}\u6159\u4C04\u9E96\u617D"],["a073","\u575F\u616F\u62A6\u6239\u62CE\u3A5C\u61E2\u53AA\u{233F5}\u6364\u6802\u35D2"],["a0a1","\u5D57\u{28BC2}\u8FDA\u{28E39}"],["a0a6","\u50D9\u{21D46}\u7906\u5332\u9638\u{20F3B}\u4065"],["a0ae","\u77FE"],["a0b0","\u7CC2\u{25F1A}\u7CDA\u7A2D\u8066\u8063\u7D4D\u7505\u74F2\u8994\u821A\u670C\u8062\u{27486}\u805B\u74F0\u8103\u7724\u8989\u{267CC}\u7553\u{26ED1}\u87A9\u87CE\u81C8\u878C\u8A49\u8CAD\u8B43\u772B\u74F8\u84DA\u3635\u69B2\u8DA6"],["a0d4","\u89A9\u7468\u6DB9\u87C1\u{24011}\u74E7\u3DDB\u7176\u60A4\u619C\u3CD1\u7162\u6077"],["a0e2","\u7F71\u{28B2D}\u7250\u60E9\u4B7E\u5220\u3C18\u{23CC7}\u{25ED7}\u{27656}\u{25531}\u{21944}\u{212FE}\u{29903}\u{26DDC}\u{270AD}\u5CC1\u{261AD}\u{28A0F}\u{23677}\u{200EE}\u{26846}\u{24F0E}\u4562\u5B1F\u{2634C}\u9F50\u9EA6\u{2626B}"],["a3c0","\u2400",31,"\u2421"],["c6a1","\u2460",9,"\u2474",9,"\u2170",9,"\u4E36\u4E3F\u4E85\u4EA0\u5182\u5196\u51AB\u52F9\u5338\u5369\u53B6\u590A\u5B80\u5DDB\u2F33\u5E7F\u5EF4\u5F50\u5F61\u6534\u65E0\u7592\u7676\u8FB5\u96B6\xA8\u02C6\u30FD\u30FE\u309D\u309E\u3003\u4EDD\u3005\u3006\u3007\u30FC\uFF3B\uFF3D\u273D\u3041",23],["c740","\u3059",58,"\u30A1\u30A2\u30A3\u30A4"],["c7a1","\u30A5",81,"\u0410",5,"\u0401\u0416",4],["c840","\u041B",26,"\u0451\u0436",25,"\u21E7\u21B8\u21B9\u31CF\u{200CC}\u4E5A\u{2008A}\u5202\u4491"],["c8a1","\u9FB0\u5188\u9FB1\u{27607}"],["c8cd","\uFFE2\uFFE4\uFF07\uFF02\u3231\u2116\u2121\u309B\u309C\u2E80\u2E84\u2E86\u2E87\u2E88\u2E8A\u2E8C\u2E8D\u2E95\u2E9C\u2E9D\u2EA5\u2EA7\u2EAA\u2EAC\u2EAE\u2EB6\u2EBC\u2EBE\u2EC6\u2ECA\u2ECC\u2ECD\u2ECF\u2ED6\u2ED7\u2EDE\u2EE3"],["c8f5","\u0283\u0250\u025B\u0254\u0275\u0153\xF8\u014B\u028A\u026A"],["f9fe","\uFFED"],["fa40","\u{20547}\u92DB\u{205DF}\u{23FC5}\u854C\u42B5\u73EF\u51B5\u3649\u{24942}\u{289E4}\u9344\u{219DB}\u82EE\u{23CC8}\u783C\u6744\u62DF\u{24933}\u{289AA}\u{202A0}\u{26BB3}\u{21305}\u4FAB\u{224ED}\u5008\u{26D29}\u{27A84}\u{23600}\u{24AB1}\u{22513}\u5029\u{2037E}\u5FA4\u{20380}\u{20347}\u6EDB\u{2041F}\u507D\u5101\u347A\u510E\u986C\u3743\u8416\u{249A4}\u{20487}\u5160\u{233B4}\u516A\u{20BFF}\u{220FC}\u{202E5}\u{22530}\u{2058E}\u{23233}\u{21983}\u5B82\u877D\u{205B3}\u{23C99}\u51B2\u51B8"],["faa1","\u9D34\u51C9\u51CF\u51D1\u3CDC\u51D3\u{24AA6}\u51B3\u51E2\u5342\u51ED\u83CD\u693E\u{2372D}\u5F7B\u520B\u5226\u523C\u52B5\u5257\u5294\u52B9\u52C5\u7C15\u8542\u52E0\u860D\u{26B13}\u5305\u{28ADE}\u5549\u6ED9\u{23F80}\u{20954}\u{23FEC}\u5333\u5344\u{20BE2}\u6CCB\u{21726}\u681B\u73D5\u604A\u3EAA\u38CC\u{216E8}\u71DD\u44A2\u536D\u5374\u{286AB}\u537E\u537F\u{21596}\u{21613}\u77E6\u5393\u{28A9B}\u53A0\u53AB\u53AE\u73A7\u{25772}\u3F59\u739C\u53C1\u53C5\u6C49\u4E49\u57FE\u53D9\u3AAB\u{20B8F}\u53E0\u{23FEB}\u{22DA3}\u53F6\u{20C77}\u5413\u7079\u552B\u6657\u6D5B\u546D\u{26B53}\u{20D74}\u555D\u548F\u54A4\u47A6\u{2170D}\u{20EDD}\u3DB4\u{20D4D}"],["fb40","\u{289BC}\u{22698}\u5547\u4CED\u542F\u7417\u5586\u55A9\u5605\u{218D7}\u{2403A}\u4552\u{24435}\u66B3\u{210B4}\u5637\u66CD\u{2328A}\u66A4\u66AD\u564D\u564F\u78F1\u56F1\u9787\u53FE\u5700\u56EF\u56ED\u{28B66}\u3623\u{2124F}\u5746\u{241A5}\u6C6E\u708B\u5742\u36B1\u{26C7E}\u57E6\u{21416}\u5803\u{21454}\u{24363}\u5826\u{24BF5}\u585C\u58AA\u3561\u58E0\u58DC\u{2123C}\u58FB\u5BFF\u5743\u{2A150}\u{24278}\u93D3\u35A1\u591F\u68A6\u36C3\u6E59"],["fba1","\u{2163E}\u5A24\u5553\u{21692}\u8505\u59C9\u{20D4E}\u{26C81}\u{26D2A}\u{217DC}\u59D9\u{217FB}\u{217B2}\u{26DA6}\u6D71\u{21828}\u{216D5}\u59F9\u{26E45}\u5AAB\u5A63\u36E6\u{249A9}\u5A77\u3708\u5A96\u7465\u5AD3\u{26FA1}\u{22554}\u3D85\u{21911}\u3732\u{216B8}\u5E83\u52D0\u5B76\u6588\u5B7C\u{27A0E}\u4004\u485D\u{20204}\u5BD5\u6160\u{21A34}\u{259CC}\u{205A5}\u5BF3\u5B9D\u4D10\u5C05\u{21B44}\u5C13\u73CE\u5C14\u{21CA5}\u{26B28}\u5C49\u48DD\u5C85\u5CE9\u5CEF\u5D8B\u{21DF9}\u{21E37}\u5D10\u5D18\u5D46\u{21EA4}\u5CBA\u5DD7\u82FC\u382D\u{24901}\u{22049}\u{22173}\u8287\u3836\u3BC2\u5E2E\u6A8A\u5E75\u5E7A\u{244BC}\u{20CD3}\u53A6\u4EB7\u5ED0\u53A8\u{21771}\u5E09\u5EF4\u{28482}"],["fc40","\u5EF9\u5EFB\u38A0\u5EFC\u683E\u941B\u5F0D\u{201C1}\u{2F894}\u3ADE\u48AE\u{2133A}\u5F3A\u{26888}\u{223D0}\u5F58\u{22471}\u5F63\u97BD\u{26E6E}\u5F72\u9340\u{28A36}\u5FA7\u5DB6\u3D5F\u{25250}\u{21F6A}\u{270F8}\u{22668}\u91D6\u{2029E}\u{28A29}\u6031\u6685\u{21877}\u3963\u3DC7\u3639\u5790\u{227B4}\u7971\u3E40\u609E\u60A4\u60B3\u{24982}\u{2498F}\u{27A53}\u74A4\u50E1\u5AA0\u6164\u8424\u6142\u{2F8A6}\u{26ED2}\u6181\u51F4\u{20656}\u6187\u5BAA\u{23FB7}"],["fca1","\u{2285F}\u61D3\u{28B9D}\u{2995D}\u61D0\u3932\u{22980}\u{228C1}\u6023\u615C\u651E\u638B\u{20118}\u62C5\u{21770}\u62D5\u{22E0D}\u636C\u{249DF}\u3A17\u6438\u63F8\u{2138E}\u{217FC}\u6490\u6F8A\u{22E36}\u9814\u{2408C}\u{2571D}\u64E1\u64E5\u947B\u3A66\u643A\u3A57\u654D\u6F16\u{24A28}\u{24A23}\u6585\u656D\u655F\u{2307E}\u65B5\u{24940}\u4B37\u65D1\u40D8\u{21829}\u65E0\u65E3\u5FDF\u{23400}\u6618\u{231F7}\u{231F8}\u6644\u{231A4}\u{231A5}\u664B\u{20E75}\u6667\u{251E6}\u6673\u6674\u{21E3D}\u{23231}\u{285F4}\u{231C8}\u{25313}\u77C5\u{228F7}\u99A4\u6702\u{2439C}\u{24A21}\u3B2B\u69FA\u{237C2}\u675E\u6767\u6762\u{241CD}\u{290ED}\u67D7\u44E9\u6822\u6E50\u923C\u6801\u{233E6}\u{26DA0}\u685D"],["fd40","\u{2346F}\u69E1\u6A0B\u{28ADF}\u6973\u68C3\u{235CD}\u6901\u6900\u3D32\u3A01\u{2363C}\u3B80\u67AC\u6961\u{28A4A}\u42FC\u6936\u6998\u3BA1\u{203C9}\u8363\u5090\u69F9\u{23659}\u{2212A}\u6A45\u{23703}\u6A9D\u3BF3\u67B1\u6AC8\u{2919C}\u3C0D\u6B1D\u{20923}\u60DE\u6B35\u6B74\u{227CD}\u6EB5\u{23ADB}\u{203B5}\u{21958}\u3740\u5421\u{23B5A}\u6BE1\u{23EFC}\u6BDC\u6C37\u{2248B}\u{248F1}\u{26B51}\u6C5A\u8226\u6C79\u{23DBC}\u44C5\u{23DBD}\u{241A4}\u{2490C}\u{24900}"],["fda1","\u{23CC9}\u36E5\u3CEB\u{20D32}\u9B83\u{231F9}\u{22491}\u7F8F\u6837\u{26D25}\u{26DA1}\u{26DEB}\u6D96\u6D5C\u6E7C\u6F04\u{2497F}\u{24085}\u{26E72}\u8533\u{26F74}\u51C7\u6C9C\u6E1D\u842E\u{28B21}\u6E2F\u{23E2F}\u7453\u{23F82}\u79CC\u6E4F\u5A91\u{2304B}\u6FF8\u370D\u6F9D\u{23E30}\u6EFA\u{21497}\u{2403D}\u4555\u93F0\u6F44\u6F5C\u3D4E\u6F74\u{29170}\u3D3B\u6F9F\u{24144}\u6FD3\u{24091}\u{24155}\u{24039}\u{23FF0}\u{23FB4}\u{2413F}\u51DF\u{24156}\u{24157}\u{24140}\u{261DD}\u704B\u707E\u70A7\u7081\u70CC\u70D5\u70D6\u70DF\u4104\u3DE8\u71B4\u7196\u{24277}\u712B\u7145\u5A88\u714A\u716E\u5C9C\u{24365}\u714F\u9362\u{242C1}\u712C\u{2445A}\u{24A27}\u{24A22}\u71BA\u{28BE8}\u70BD\u720E"],["fe40","\u9442\u7215\u5911\u9443\u7224\u9341\u{25605}\u722E\u7240\u{24974}\u68BD\u7255\u7257\u3E55\u{23044}\u680D\u6F3D\u7282\u732A\u732B\u{24823}\u{2882B}\u48ED\u{28804}\u7328\u732E\u73CF\u73AA\u{20C3A}\u{26A2E}\u73C9\u7449\u{241E2}\u{216E7}\u{24A24}\u6623\u36C5\u{249B7}\u{2498D}\u{249FB}\u73F7\u7415\u6903\u{24A26}\u7439\u{205C3}\u3ED7\u745C\u{228AD}\u7460\u{28EB2}\u7447\u73E4\u7476\u83B9\u746C\u3730\u7474\u93F1\u6A2C\u7482\u4953\u{24A8C}"],["fea1","\u{2415F}\u{24A79}\u{28B8F}\u5B46\u{28C03}\u{2189E}\u74C8\u{21988}\u750E\u74E9\u751E\u{28ED9}\u{21A4B}\u5BD7\u{28EAC}\u9385\u754D\u754A\u7567\u756E\u{24F82}\u3F04\u{24D13}\u758E\u745D\u759E\u75B4\u7602\u762C\u7651\u764F\u766F\u7676\u{263F5}\u7690\u81EF\u37F8\u{26911}\u{2690E}\u76A1\u76A5\u76B7\u76CC\u{26F9F}\u8462\u{2509D}\u{2517D}\u{21E1C}\u771E\u7726\u7740\u64AF\u{25220}\u7758\u{232AC}\u77AF\u{28964}\u{28968}\u{216C1}\u77F4\u7809\u{21376}\u{24A12}\u68CA\u78AF\u78C7\u78D3\u96A5\u792E\u{255E0}\u78D7\u7934\u78B1\u{2760C}\u8FB8\u8884\u{28B2B}\u{26083}\u{2261C}\u7986\u8900\u6902\u7980\u{25857}\u799D\u{27B39}\u793C\u79A9\u6E2A\u{27126}\u3EA8\u79C6\u{2910D}\u79D4"]]});var fIs=H((oig,pIs)=>{"use strict";pIs.exports={shiftjis:{type:"_dbcs",table:function(){return lIs()},encodeAdd:{"\xA5":92,"\u203E":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return uIs()},encodeAdd:{"\xA5":92,"\u203E":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return JFt()}},gbk:{type:"_dbcs",table:function(){return JFt().concat(E8r())}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return JFt().concat(E8r())},gb18030:function(){return gIs()},encodeSkipVals:[128],encodeAdd:{"\u20AC":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return AIs()}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return S8r()}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return S8r().concat(dIs())},encodeSkipVals:[36457,36463,36478,36523,36532,36557,36560,36695,36713,36718,36811,36862,36973,36986,37060,37084,37105,37311,37551,37552,37553,37554,37585,37959,38090,38361,38652,39285,39798,39800,39803,39878,39902,39916,39926,40002,40019,40034,40040,40043,40055,40124,40125,40144,40279,40282,40388,40431,40443,40617,40687,40701,40800,40907,41079,41180,41183,36812,37576,38468,38637,41636,41637,41639,41638,41676,41678]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}});var mIs=H((hIs,QGe)=>{"use strict";var IIs=[Qfs(),Ufs(),zfs(),$fs(),tIs(),nIs(),sIs(),cIs(),fIs()];for(UFt=0;UFt{"use strict";var CIs=ere().Buffer;_Is.exports=function(e){var t=e.Transform;function r(a,o){this.conv=a,o=o||{},o.decodeStrings=!1,t.call(this,o)}r.prototype=Object.create(t.prototype,{constructor:{value:r}}),r.prototype._transform=function(a,o,l){if(typeof a!="string")return l(new Error("Iconv encoding stream needs strings as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A),l()}catch(f){l(f)}},r.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o),a()}catch(l){a(l)}},r.prototype.collect=function(a){var o=[];return this.on("error",a),this.on("data",function(l){o.push(l)}),this.on("end",function(){a(null,CIs.concat(o))}),this};function n(a,o){this.conv=a,o=o||{},o.encoding=this.encoding="utf8",t.call(this,o)}return n.prototype=Object.create(t.prototype,{constructor:{value:n}}),n.prototype._transform=function(a,o,l){if(!CIs.isBuffer(a)&&!(a instanceof Uint8Array))return l(new Error("Iconv decoding stream needs buffers as its input."));try{var A=this.conv.write(a);A&&A.length&&this.push(A,this.encoding),l()}catch(f){l(f)}},n.prototype._flush=function(a){try{var o=this.conv.end();o&&o.length&&this.push(o,this.encoding),a()}catch(l){a(l)}},n.prototype.collect=function(a){var o="";return this.on("error",a),this.on("data",function(l){o+=l}),this.on("end",function(){a(null,o)}),this},{IconvLiteEncoderStream:r,IconvLiteDecoderStream:n}}});var vIs=H((cig,SIs)=>{"use strict";var bIs=ere().Buffer,EIs=Hfs(),zI=SIs.exports;zI.encodings=null;zI.defaultCharUnicode="\uFFFD";zI.defaultCharSingleByte="?";zI.encode=function(t,r,n){t=""+(t||"");var a=zI.getEncoder(r,n),o=a.write(t),l=a.end();return l&&l.length>0?bIs.concat([o,l]):o};zI.decode=function(t,r,n){typeof t=="string"&&(zI.skipDecodeWarning||(console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding"),zI.skipDecodeWarning=!0),t=bIs.from(""+(t||""),"binary"));var a=zI.getDecoder(r,n),o=a.write(t),l=a.end();return l?o+l:o};zI.encodingExists=function(t){try{return zI.getCodec(t),!0}catch{return!1}};zI.toEncoding=zI.encode;zI.fromEncoding=zI.decode;zI._codecDataCache={};zI.getCodec=function(t){zI.encodings||(zI.encodings=mIs());for(var r=zI._canonicalizeEncoding(t),n={};;){var a=zI._codecDataCache[r];if(a)return a;var o=zI.encodings[r];switch(typeof o){case"string":r=o;break;case"object":for(var l in o)n[l]=o[l];n.encodingName||(n.encodingName=r),r=o.type;break;case"function":return n.encodingName||(n.encodingName=r),a=new o(n,zI),zI._codecDataCache[n.encodingName]=a,a;default:throw new Error("Encoding not recognized: '"+t+"' (searched as: '"+r+"')")}}};zI._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};zI.getEncoder=function(t,r){var n=zI.getCodec(t),a=new n.encoder(r,n);return n.bomAware&&r&&r.addBOM&&(a=new EIs.PrependBOM(a,r)),a};zI.getDecoder=function(t,r){var n=zI.getCodec(t),a=new n.decoder(r,n);return n.bomAware&&!(r&&r.stripBOM===!1)&&(a=new EIs.StripBOM(a,r)),a};zI.enableStreamingAPI=function(t){if(!zI.supportsStreams){var r=yIs()(t);zI.IconvLiteEncoderStream=r.IconvLiteEncoderStream,zI.IconvLiteDecoderStream=r.IconvLiteDecoderStream,zI.encodeStream=function(a,o){return new zI.IconvLiteEncoderStream(zI.getEncoder(a,o),o)},zI.decodeStream=function(a,o){return new zI.IconvLiteDecoderStream(zI.getDecoder(a,o),o)},zI.supportsStreams=!0}};var jFt;try{jFt=wt("stream")}catch{}jFt&&jFt.Transform?zI.enableStreamingAPI(jFt):zI.encodeStream=zI.decodeStream=function(){throw new Error("iconv-lite Streaming API is not enabled. Use iconv.enableStreamingAPI(require('stream')); to enable it.")}});var TIs=H((lig,wIs)=>{"use strict";var zFt=vIs();wIs.exports.convert=$2l;function $2l(e,t,r){r=BIs(r||"UTF-8"),t=BIs(t||"UTF-8"),e=e||"";var n;if(r!=="UTF-8"&&typeof e=="string"&&(e=Buffer.from(e,"binary")),r===t)typeof e=="string"?n=Buffer.from(e):n=e;else try{n=eSl(e,t,r)}catch(a){console.error(a),n=e}return typeof n=="string"&&(n=Buffer.from(n,"utf-8")),n}function eSl(e,t,r){return t==="UTF-8"?zFt.decode(e,r):r==="UTF-8"?zFt.encode(e,t):zFt.encode(zFt.decode(e,r),t)}function BIs(e){return(e||"").toString().trim().replace(/^latin[\-_]?(\d+)$/i,"ISO-8859-$1").replace(/^win(?:dows)?[\-_]?(\d+)$/i,"WINDOWS-$1").replace(/^utf[\-_]?(\d+)$/i,"UTF-$1").replace(/^ks_c_5601\-1987$/i,"CP949").replace(/^us[\-_]?ascii$/i,"ASCII").toUpperCase()}});var $Ft=H((uig,DIs)=>{"use strict";var{Minipass:N6}=rF(),v8r=Lfs(),NIs=Pfs(),{BUFFER:tSl}=NIs,V7e=MKr(),B8r;try{B8r=TIs().convert}catch{}var rre=Symbol("Body internals"),S0e=Symbol("consumeBody"),qFt=class{constructor(t,r={}){let{size:n=0,timeout:a=0}=r,o=t==null?null:RIs(t)?Buffer.from(t.toString()):P7e(t)||Buffer.isBuffer(t)?t:Object.prototype.toString.call(t)==="[object ArrayBuffer]"?Buffer.from(t):ArrayBuffer.isView(t)?Buffer.from(t.buffer,t.byteOffset,t.byteLength):N6.isStream(t)?t:Buffer.from(String(t));this[rre]={body:o,disturbed:!1,error:null},this.size=n,this.timeout=a,N6.isStream(o)&&o.on("error",l=>{let A=l.name==="AbortError"?l:new V7e(`Invalid response while trying to fetch ${this.url}: ${l.message}`,"system",l);this[rre].error=A})}get body(){return this[rre].body}get bodyUsed(){return this[rre].disturbed}arrayBuffer(){return this[S0e]().then(t=>t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength))}blob(){let t=this.headers&&this.headers.get("content-type")||"";return this[S0e]().then(r=>Object.assign(new NIs([],{type:t.toLowerCase()}),{[tSl]:r}))}async json(){let t=await this[S0e]();try{return JSON.parse(t.toString())}catch(r){throw new V7e(`invalid json response body at ${this.url} reason: ${r.message}`,"invalid-json")}}text(){return this[S0e]().then(t=>t.toString())}buffer(){return this[S0e]()}textConverted(){return this[S0e]().then(t=>rSl(t,this.headers))}[S0e](){if(this[rre].disturbed)return Promise.reject(new TypeError(`body used already for: ${this.url}`));if(this[rre].disturbed=!0,this[rre].error)return Promise.reject(this[rre].error);if(this.body===null)return Promise.resolve(Buffer.alloc(0));if(Buffer.isBuffer(this.body))return Promise.resolve(this.body);let t=P7e(this.body)?this.body.stream():this.body;if(!N6.isStream(t))return Promise.resolve(Buffer.alloc(0));let r=this.size&&t instanceof v8r||!this.size&&t instanceof N6&&!(t instanceof v8r)?t:this.size?new v8r({size:this.size}):new N6,n=this.timeout&&r.writable?setTimeout(()=>{r.emit("error",new V7e(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`,"body-timeout"))},this.timeout):null;return n&&n.unref&&n.unref(),new Promise(a=>{r!==t&&(t.on("error",o=>r.emit("error",o)),t.pipe(r)),a()}).then(()=>r.concat()).then(a=>(clearTimeout(n),a)).catch(a=>{throw clearTimeout(n),a.name==="AbortError"||a.name==="FetchError"?a:a.name==="RangeError"?new V7e(`Could not create Buffer from response body for ${this.url}: ${a.message}`,"system",a):new V7e(`Invalid response body while trying to fetch ${this.url}: ${a.message}`,"system",a)})}static clone(t){if(t.bodyUsed)throw new Error("cannot clone body after it is used");let r=t.body;if(N6.isStream(r)&&typeof r.getBoundary!="function"){let n=new N6,a=new N6,o=new N6;return n.on("error",l=>{a.emit("error",l),o.emit("error",l)}),r.on("error",l=>n.emit("error",l)),n.pipe(a),n.pipe(o),r.pipe(n),t[rre].body=a,o}else return t.body}static extractContentType(t){return t==null?null:typeof t=="string"?"text/plain;charset=UTF-8":RIs(t)?"application/x-www-form-urlencoded;charset=UTF-8":P7e(t)?t.type||null:Buffer.isBuffer(t)||Object.prototype.toString.call(t)==="[object ArrayBuffer]"||ArrayBuffer.isView(t)?null:typeof t.getBoundary=="function"?`multipart/form-data;boundary=${t.getBoundary()}`:N6.isStream(t)?null:"text/plain;charset=UTF-8"}static getTotalBytes(t){let{body:r}=t;return r==null?0:P7e(r)?r.size:Buffer.isBuffer(r)?r.length:r&&typeof r.getLengthSync=="function"&&(r._lengthRetrievers&&r._lengthRetrievers.length===0||r.hasKnownLength&&r.hasKnownLength())?r.getLengthSync():null}static writeToStream(t,r){let{body:n}=r;return n==null?t.end():Buffer.isBuffer(n)||typeof n=="string"?t.end(n):(P7e(n)?n.stream():n).on("error",o=>t.emit("error",o)).pipe(t),t}};Object.defineProperties(qFt.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}});var RIs=e=>typeof e!="object"||typeof e.append!="function"||typeof e.delete!="function"||typeof e.get!="function"||typeof e.getAll!="function"||typeof e.has!="function"||typeof e.set!="function"?!1:e.constructor.name==="URLSearchParams"||Object.prototype.toString.call(e)==="[object URLSearchParams]"||typeof e.sort=="function",P7e=e=>typeof e=="object"&&typeof e.arrayBuffer=="function"&&typeof e.type=="string"&&typeof e.stream=="function"&&typeof e.constructor=="function"&&typeof e.constructor.name=="string"&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),rSl=(e,t)=>{if(typeof B8r!="function")throw new Error("The package `encoding` must be installed to use the textConverted() function");let r=t&&t.get("content-type"),n="utf-8",a;r&&(a=/charset=([^;]*)/i.exec(r));let o=e.slice(0,1024).toString();return!a&&o&&(a=/{"use strict";var xIs=/[^^_`a-zA-Z\-0-9!#$%&'*+.|~]/,T8r=/[^\t\x20-\x7e\x80-\xff]/,W7e=e=>{if(e=`${e}`,xIs.test(e)||e==="")throw new TypeError(`${e} is not a legal HTTP header name`)},kIs=e=>{if(e=`${e}`,T8r.test(e))throw new TypeError(`${e} is not a legal HTTP header value`)},XGe=(e,t)=>{t=t.toLowerCase();for(let r in e)if(r.toLowerCase()===t)return r},Aw=Symbol("map"),eZt=class e{constructor(t=void 0){if(this[Aw]=Object.create(null),t instanceof e){let r=t.raw(),n=Object.keys(r);for(let a of n)for(let o of r[a])this.append(a,o);return}if(t!=null)if(typeof t=="object"){let r=t[Symbol.iterator];if(r!=null){if(typeof r!="function")throw new TypeError("Header pairs must be iterable");let n=[];for(let a of t){if(typeof a!="object"||typeof a[Symbol.iterator]!="function")throw new TypeError("Each header pair must be iterable");let o=Array.from(a);if(o.length!==2)throw new TypeError("Each header pair must be a name/value tuple");n.push(o)}for(let a of n)this.append(a[0],a[1])}else for(let n of Object.keys(t))this.append(n,t[n])}else throw new TypeError("Provided initializer must be an object")}get(t){t=`${t}`,W7e(t);let r=XGe(this[Aw],t);return r===void 0?null:this[Aw][r].join(", ")}forEach(t,r=void 0){let n=R8r(this);for(let a=0;aObject.keys(e[Aw]).sort().map(t==="key"?r=>r.toLowerCase():t==="value"?r=>e[Aw][r].join(", "):r=>[r.toLowerCase(),e[Aw][r].join(", ")]),w8r=Symbol("internal"),v0e=class e{constructor(t,r){this[w8r]={target:t,kind:r,index:0}}get[Symbol.toStringTag](){return"HeadersIterator"}next(){if(!this||Object.getPrototypeOf(this)!==e.prototype)throw new TypeError("Value of `this` is not a HeadersIterator");let{target:t,kind:r,index:n}=this[w8r],a=R8r(t,r),o=a.length;return n>=o?{value:void 0,done:!0}:(this[w8r].index++,{value:a[n],done:!1})}};Object.setPrototypeOf(v0e.prototype,Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));GIs.exports=eZt});var VIs=H((Aig,LIs)=>{"use strict";var nSl=wt("http"),{STATUS_CODES:iSl}=nSl,FIs=tZt(),ZIs=$Ft(),{clone:sSl,extractContentType:oSl}=ZIs,nre=Symbol("Response internals"),rZt=class e extends ZIs{constructor(t=null,r={}){super(t,r);let n=r.status||200,a=new FIs(r.headers);if(t!=null&&!a.has("Content-Type")){let o=oSl(t);o&&a.append("Content-Type",o)}this[nre]={url:r.url,status:n,statusText:r.statusText||iSl[n],headers:a,counter:r.counter,trailer:Promise.resolve(r.trailer||new FIs)}}get trailer(){return this[nre].trailer}get url(){return this[nre].url||""}get status(){return this[nre].status}get ok(){return this[nre].status>=200&&this[nre].status<300}get redirected(){return this[nre].counter>0}get statusText(){return this[nre].statusText}get headers(){return this[nre].headers}clone(){return new e(sSl(this),{url:this.url,status:this.status,statusText:this.statusText,headers:this.headers,ok:this.ok,redirected:this.redirected,trailer:this.trailer})}get[Symbol.toStringTag](){return"Response"}};LIs.exports=rZt;Object.defineProperties(rZt.prototype,{url:{enumerable:!0},status:{enumerable:!0},ok:{enumerable:!0},redirected:{enumerable:!0},statusText:{enumerable:!0},headers:{enumerable:!0},clone:{enumerable:!0}})});var PIs=H((dig,aSl)=>{aSl.exports={name:"minipass-fetch",version:"4.0.1",description:"An implementation of window.fetch in Node.js using Minipass streams",license:"MIT",main:"lib/index.js",scripts:{"test:tls-fixtures":"./test/fixtures/tls/setup.sh",test:"tap",snap:"tap",lint:"npm run eslint",postlint:"template-oss-check",lintfix:"npm run eslint -- --fix",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},tap:{"coverage-map":"map.js","check-coverage":!0,"nyc-arg":["--exclude","tap-snapshots/**"]},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3","@ungap/url-search-params":"^0.2.2","abort-controller":"^3.0.0","abortcontroller-polyfill":"~1.7.3",encoding:"^0.1.13","form-data":"^4.0.0",nock:"^13.2.4",parted:"^0.1.1","string-to-arraybuffer":"^1.0.2",tap:"^16.0.0"},dependencies:{minipass:"^7.0.3","minipass-sized":"^1.0.3",minizlib:"^3.0.1"},optionalDependencies:{encoding:"^0.1.13"},repository:{type:"git",url:"git+https://github.com/npm/minipass-fetch.git"},keywords:["fetch","minipass","node-fetch","window.fetch"],files:["bin/","lib/"],engines:{node:"^18.17.0 || >=20.5.0"},author:"GitHub Inc.",templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.3",publish:"true"}}});var MIs=H((pig,OIs)=>{"use strict";var{URL:N8r}=wt("url"),{Minipass:cSl}=rF(),D8r=tZt(),{exportNodeCompatibleHeaders:lSl}=D8r,WIs=$Ft(),{clone:uSl,extractContentType:gSl,getTotalBytes:ASl}=WIs,dSl=PIs().version,pSl=`minipass-fetch/${dSl} (+https://github.com/isaacs/minipass-fetch)`,eJ=Symbol("Request internals"),nZt=e=>typeof e=="object"&&typeof e[eJ]=="object",fSl=e=>{let t=e&&typeof e=="object"&&Object.getPrototypeOf(e);return!!(t&&t.constructor.name==="AbortSignal")},iZt=class e extends WIs{constructor(t,r={}){let n=nZt(t)?new N8r(t.url):t&&t.href?new N8r(t.href):new N8r(`${t}`);nZt(t)?r={...t[eJ],...r}:(!t||typeof t=="string")&&(t={});let a=(r.method||t.method||"GET").toUpperCase(),o=a==="GET"||a==="HEAD";if((r.body!==null&&r.body!==void 0||nZt(t)&&t.body!==null)&&o)throw new TypeError("Request with GET/HEAD method cannot have body");let l=r.body!==null&&r.body!==void 0?r.body:nZt(t)&&t.body!==null?uSl(t):null;super(l,{timeout:r.timeout||t.timeout||0,size:r.size||t.size||0});let A=new D8r(r.headers||t.headers||{});if(l!=null&&!A.has("Content-Type")){let De=gSl(l);De&&A.append("Content-Type",De)}let f="signal"in r?r.signal:null;if(f!=null&&!fSl(f))throw new TypeError("Expected signal must be an instanceof AbortSignal");let{ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0",secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se}=r;this[eJ]={method:a,redirect:r.redirect||t.redirect||"follow",headers:A,parsedURL:n,signal:f,ca:I,cert:C,ciphers:b,clientCertEngine:E,crl:N,dhparam:B,ecdhCurve:F,family:Q,honorCipherOrder:X,key:ae,passphrase:ne,pfx:ce,rejectUnauthorized:fe,secureOptions:ue,secureProtocol:de,servername:be,sessionIdContext:Se},this.follow=r.follow!==void 0?r.follow:t.follow!==void 0?t.follow:20,this.compress=r.compress!==void 0?r.compress:t.compress!==void 0?t.compress:!0,this.counter=r.counter||t.counter||0,this.agent=r.agent||t.agent}get method(){return this[eJ].method}get url(){return this[eJ].parsedURL.toString()}get headers(){return this[eJ].headers}get redirect(){return this[eJ].redirect}get signal(){return this[eJ].signal}clone(){return new e(this)}get[Symbol.toStringTag](){return"Request"}static getNodeRequestOptions(t){let r=t[eJ].parsedURL,n=new D8r(t[eJ].headers);if(n.has("Accept")||n.set("Accept","*/*"),!/^https?:$/.test(r.protocol))throw new TypeError("Only HTTP(S) protocols are supported");if(t.signal&&cSl.isStream(t.body)&&typeof t.body.destroy!="function")throw new Error("Cancellation of streamed requests with AbortSignal is not supported");let a=(t.body===null||t.body===void 0)&&/^(POST|PUT)$/i.test(t.method)?"0":t.body!==null&&t.body!==void 0?ASl(t):null;a&&n.set("Content-Length",a+""),n.has("User-Agent")||n.set("User-Agent",pSl),t.compress&&!n.has("Accept-Encoding")&&n.set("Accept-Encoding","gzip,deflate");let o=typeof t.agent=="function"?t.agent(r):t.agent;!n.has("Connection")&&!o&&n.set("Connection","close");let{ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue}=t[eJ];return{...{auth:r.username||r.password?`${r.username}:${r.password}`:"",host:r.host,hostname:r.hostname,path:`${r.pathname}${r.search}`,port:r.port,protocol:r.protocol},method:t.method,headers:lSl(n),agent:o,ca:l,cert:A,ciphers:f,clientCertEngine:I,crl:C,dhparam:b,ecdhCurve:E,family:N,honorCipherOrder:B,key:F,passphrase:Q,pfx:X,rejectUnauthorized:ae,secureOptions:ne,secureProtocol:ce,servername:fe,sessionIdContext:ue,timeout:t.timeout}}};OIs.exports=iZt;Object.defineProperties(iZt.prototype,{method:{enumerable:!0},url:{enumerable:!0},headers:{enumerable:!0},redirect:{enumerable:!0},clone:{enumerable:!0},signal:{enumerable:!0}})});var YIs=H((fig,HIs)=>{"use strict";var k8r=class extends Error{constructor(t){super(t),this.code="FETCH_ABORTED",this.type="aborted",Error.captureStackTrace(this,this.constructor)}get name(){return"AbortError"}set name(t){}};HIs.exports=k8r});var H7e=H((Iig,JIs)=>{"use strict";var{URL:O7e}=wt("url"),ISl=wt("http"),hSl=wt("https"),JGe=Bfs(),{Minipass:QIs}=rF(),mSl=$Ft(),{writeToStream:CSl,getTotalBytes:_Sl}=mSl,B0e=VIs(),G8r=tZt(),{createHeadersLenient:XIs}=G8r,M7e=MIs(),{getNodeRequestOptions:ySl}=M7e,Pue=MKr(),x8r=YIs(),ire=async(e,t)=>{if(/^data:/.test(e)){let r=new M7e(e,t);return Promise.resolve().then(()=>new Promise((n,a)=>{let o,l;try{let{pathname:I,search:C}=new O7e(e),b=I.split(",");if(b.length<2)throw new Error("invalid data: URI");let E=b.shift(),N=/;base64$/.test(E);o=N?E.slice(0,-1*7):E;let B=decodeURIComponent(b.join(",")+C);l=N?Buffer.from(B,"base64"):Buffer.from(B)}catch(I){return a(new Pue(`[${r.method}] ${r.url} invalid URL, ${I.message}`,"system",I))}let{signal:A}=r;if(A&&A.aborted)return a(new x8r("The user aborted a request."));let f={"Content-Length":l.length};return o&&(f["Content-Type"]=o),n(new B0e(l,{headers:f}))}))}return new Promise((r,n)=>{let a=new M7e(e,t),o;try{o=ySl(a)}catch(B){return n(B)}let l=(o.protocol==="https:"?hSl:ISl).request,{signal:A}=a,f=null,I=()=>{let B=new x8r("The user aborted a request.");n(B),QIs.isStream(a.body)&&typeof a.body.destroy=="function"&&a.body.destroy(B),f&&f.body&&f.body.emit("error",B)};if(A&&A.aborted)return I();let C=()=>{I(),b()},b=()=>{E.abort(),A&&A.removeEventListener("abort",C),clearTimeout(N)},E=l(o);A&&A.addEventListener("abort",C);let N=null;a.timeout&&E.once("socket",()=>{N=setTimeout(()=>{n(new Pue(`network timeout at: ${a.url}`,"request-timeout")),b()},a.timeout)}),E.on("error",B=>{E.res&&E.res.emit("error",B),n(new Pue(`request to ${a.url} failed, reason: ${B.message}`,"system",B)),b()}),E.on("response",B=>{clearTimeout(N);let F=XIs(B.headers);if(ire.isRedirect(B.statusCode)){let fe=F.get("Location"),ue=null;try{ue=fe===null?null:new O7e(fe,a.url).toString()}catch{if(a.redirect!=="manual"){n(new Pue(`uri requested responds with an invalid redirect URL: ${fe}`,"invalid-redirect")),b();return}}if(a.redirect==="error"){n(new Pue(`uri requested responds with a redirect, redirect mode is set to error: ${a.url}`,"no-redirect")),b();return}else if(a.redirect==="manual"){if(ue!==null)try{F.set("Location",ue)}catch(de){n(de)}}else if(a.redirect==="follow"&&ue!==null){if(a.counter>=a.follow){n(new Pue(`maximum redirect reached at: ${a.url}`,"max-redirect")),b();return}if(B.statusCode!==303&&a.body&&_Sl(a)===null){n(new Pue("Cannot follow redirect with body being a readable stream","unsupported-redirect")),b();return}a.headers.set("host",new O7e(ue).host);let de={headers:new G8r(a.headers),follow:a.follow,counter:a.counter+1,agent:a.agent,compress:a.compress,method:a.method,body:a.body,signal:a.signal,timeout:a.timeout},be=new O7e(a.url),Se=new O7e(ue);be.hostname!==Se.hostname&&(de.headers.delete("authorization"),de.headers.delete("cookie")),(B.statusCode===303||(B.statusCode===301||B.statusCode===302)&&a.method==="POST")&&(de.method="GET",de.body=void 0,de.headers.delete("content-length")),r(ire(new M7e(ue,de))),b();return}}B.once("end",()=>A&&A.removeEventListener("abort",C));let Q=new QIs;Q.on("error",b),B.on("error",fe=>Q.emit("error",fe)),B.on("data",fe=>Q.write(fe)),B.on("end",()=>Q.end());let X={url:a.url,status:B.statusCode,statusText:B.statusMessage,headers:F,size:a.size,timeout:a.timeout,counter:a.counter,trailer:new Promise(fe=>B.on("end",()=>fe(XIs(B.trailers))))},ae=F.get("Content-Encoding");if(!a.compress||a.method==="HEAD"||ae===null||B.statusCode===204||B.statusCode===304){f=new B0e(Q,X),r(f);return}let ne={flush:JGe.constants.Z_SYNC_FLUSH,finishFlush:JGe.constants.Z_SYNC_FLUSH};if(ae==="gzip"||ae==="x-gzip"){let fe=new JGe.Gunzip(ne);f=new B0e(Q.on("error",ue=>fe.emit("error",ue)).pipe(fe),X),r(f);return}if(ae==="deflate"||ae==="x-deflate"){B.once("data",fe=>{let ue=(fe[0]&15)===8?new JGe.Inflate:new JGe.InflateRaw;Q.on("error",de=>ue.emit("error",de)).pipe(ue),f=new B0e(ue,X),r(f)});return}if(ae==="br"){try{var ce=new JGe.BrotliDecompress}catch(fe){n(fe),b();return}Q.on("error",fe=>ce.emit("error",fe)).pipe(ce),f=new B0e(ce,X),r(f);return}f=new B0e(Q,X),r(f)}),CSl(E,a)})};JIs.exports=ire;ire.isRedirect=e=>e===301||e===302||e===303||e===307||e===308;ire.Headers=G8r;ire.Request=M7e;ire.Response=B0e;ire.FetchError=Pue;ire.AbortError=x8r});var KIs=H((hig,UIs)=>{var bSl=wt("dns"),ESl=["if-modified-since","if-none-match","if-unmodified-since","if-match","if-range"],SSl=e=>{let{strictSSL:t,...r}={...e};if(r.method=r.method?r.method.toUpperCase():"GET",t==null?r.rejectUnauthorized=process.env.NODE_TLS_REJECT_UNAUTHORIZED!=="0":r.rejectUnauthorized=t!==!1,!r.retry)r.retry={retries:0};else if(typeof r.retry=="string"){let n=parseInt(r.retry,10);isFinite(n)?r.retry={retries:n}:r.retry={retries:0}}else typeof r.retry=="number"?r.retry={retries:r.retry}:r.retry={retries:0,...r.retry};return r.dns={ttl:5*60*1e3,lookup:bSl.lookup,...r.dns},r.cache=r.cache||"default",r.cache==="default"&&Object.keys(r.headers||{}).some(a=>ESl.includes(a.toLowerCase()))&&(r.cache="no-store"),r.cacheAdditionalHeaders=r.cacheAdditionalHeaders||[],r.cacheManager&&!r.cachePath&&(r.cachePath=r.cacheManager),r};UIs.exports=SSl});var $Is=H((mig,F8r)=>{"use strict";F8r.exports=qIs;F8r.exports.preferredCharsets=qIs;var vSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function BSl(e){for(var t=e.split(","),r=0,n=0;r0}});var nhs=H((Cig,Z8r)=>{"use strict";Z8r.exports=rhs;Z8r.exports.preferredEncodings=rhs;var DSl=/^\s*([^\s;]+)\s*(?:;(.*))?$/;function kSl(e){for(var t=e.split(","),r=!1,n=1,a=0,o=0;a0}});var chs=H((_ig,L8r)=>{"use strict";L8r.exports=ahs;L8r.exports.preferredLanguages=ahs;var LSl=/^\s*([^\s\-;]+)(?:-([^\s;]+))?\s*(?:;(.*))?$/;function VSl(e){for(var t=e.split(","),r=0,n=0;r0}});var phs=H((yig,V8r)=>{"use strict";V8r.exports=Ahs;V8r.exports.preferredMediaTypes=Ahs;var MSl=/^\s*([^\s\/;]+)\/([^;\s]+)\s*(?:;(.*))?$/;function HSl(e){for(var t=USl(e),r=0,n=0;r0)if(o.every(function(l){return t.params[l]=="*"||(t.params[l]||"").toLowerCase()==(n.params[l]||"").toLowerCase()}))a|=1;else return null;return{i:r,o:t.i,q:t.q,s:a}}function Ahs(e,t){var r=HSl(e===void 0?"*/*":e||"");if(!t)return r.filter(uhs).sort(lhs).map(XSl);var n=t.map(function(o,l){return YSl(o,r,l)});return n.filter(uhs).sort(lhs).map(function(o){return t[n.indexOf(o)]})}function lhs(e,t){return t.q-e.q||t.s-e.s||e.o-t.o||e.i-t.i||0}function XSl(e){return e.type+"/"+e.subtype}function uhs(e){return e.q>0}function dhs(e){for(var t=0,r=0;(r=e.indexOf('"',r))!==-1;)t++,r++;return t}function JSl(e){var t=e.indexOf("="),r,n;return t===-1?r=e:(r=e.slice(0,t),n=e.slice(t+1)),[r,n]}function USl(e){for(var t=e.split(","),r=1,n=0;r{"use strict";var jSl=$Is(),zSl=nhs(),qSl=chs(),$Sl=phs();P8r.exports=db;P8r.exports.Negotiator=db;function db(e){if(!(this instanceof db))return new db(e);this.request=e}db.prototype.charset=function(t){var r=this.charsets(t);return r&&r[0]};db.prototype.charsets=function(t){return jSl(this.request.headers["accept-charset"],t)};db.prototype.encoding=function(t,r){var n=this.encodings(t,r);return n&&n[0]};db.prototype.encodings=function(t,r){var n=r||{};return zSl(this.request.headers["accept-encoding"],t,n.preferred)};db.prototype.language=function(t){var r=this.languages(t);return r&&r[0]};db.prototype.languages=function(t){return qSl(this.request.headers["accept-language"],t)};db.prototype.mediaType=function(t){var r=this.mediaTypes(t);return r&&r[0]};db.prototype.mediaTypes=function(t){return $Sl(this.request.headers.accept,t)};db.prototype.preferredCharset=db.prototype.charset;db.prototype.preferredCharsets=db.prototype.charsets;db.prototype.preferredEncoding=db.prototype.encoding;db.prototype.preferredEncodings=db.prototype.encodings;db.prototype.preferredLanguage=db.prototype.language;db.prototype.preferredLanguages=db.prototype.languages;db.prototype.preferredMediaType=db.prototype.mediaType;db.prototype.preferredMediaTypes=db.prototype.mediaTypes});var O8r=H((Eig,_hs)=>{var Ihs=jur(),hhs=fhs(),evl=Jte(),mhs={shared:!1,ignoreCargoCult:!0},tvl={status:200,headers:{}},UGe=e=>{let t={method:e.method,url:e.url,headers:{},compress:e.compress};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},Chs=e=>{let t={status:e.status,headers:{}};return e.headers.forEach((r,n)=>{t.headers[n]=r}),t},W8r=class{constructor({entry:t,request:r,response:n,options:a}){this.entry=t,this.request=UGe(r),this.response=Chs(n),this.options=a,this.policy=new Ihs(this.request,this.response,mhs),this.entry&&(this.policy._responseTime=this.entry.metadata.time)}static storable(t,r){return!r.cachePath||r.cache==="no-store"||!["GET","HEAD"].includes(t.method)?!1:new Ihs(UGe(t),tvl,mhs).storable()}satisfies(t){let r=UGe(t);if(this.request.headers.host!==r.headers.host||this.request.compress!==r.compress)return!1;let n=new hhs(this.request),a=new hhs(r);return JSON.stringify(n.mediaTypes())!==JSON.stringify(a.mediaTypes())||JSON.stringify(n.languages())!==JSON.stringify(a.languages())||JSON.stringify(n.encodings())!==JSON.stringify(a.encodings())?!1:this.options.integrity?evl.parse(this.options.integrity).match(this.entry.integrity):!0}storable(){return this.policy.storable()}get mustRevalidate(){return!!this.policy._rescc["must-revalidate"]}needsRevalidation(t){let r=UGe(t);return r.method="GET",!this.policy.satisfiesWithoutRevalidation(r)}responseHeaders(){return this.policy.responseHeaders()}revalidationHeaders(t){let r=UGe(t);return this.policy.revalidationHeaders(r)}revalidated(t,r){let n=UGe(t),a=Chs(r);return!this.policy.revalidatedPolicy(n,a).modified}};_hs.exports=W8r});var bhs=H((Sig,yhs)=>{var M8r=class extends Error{constructor(t){super(`request to ${t} failed: cache mode is 'only-if-cached' but no cached response is available.`),this.code="ENOTCACHED"}};yhs.exports={NotCachedError:M8r}});var sZt=H((vig,Bhs)=>{var rvl=FFt(),Ehs=Symbol("_flush"),Shs=Symbol("_flushed"),vhs=Symbol("_flushing"),H8r=class extends rvl{constructor(t={}){if(typeof t=="function"&&(t={flush:t}),super(t),typeof t.flush!="function"&&typeof this.flush!="function")throw new TypeError("must provide flush function in options");this[Ehs]=t.flush||this.flush}emit(t,...r){if(t!=="end"&&t!=="finish"||this[Shs])return super.emit(t,...r);if(this[vhs])return;this[vhs]=!0;let n=o=>{this[Shs]=!0,o?super.emit("error",o):super.emit("end")},a=this[Ehs](n);a&&a.then&&a.then(()=>n(),o=>n(o))}};Bhs.exports=H8r});var J8r=H((Big,X8r)=>{var{Minipass:whs}=rF(),KGe=Symbol("_data"),jGe=Symbol("_length"),Y8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,n&&n(),!0}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return super.write(a),super.end(n)}};X8r.exports=Y8r;var Q8r=class extends whs{constructor(t){super(t),this[KGe]=[],this[jGe]=0}write(t,r,n){typeof r=="function"&&(n=r,r="utf8"),r||(r="utf8");let a=Buffer.isBuffer(t)?t:Buffer.from(t,r);return this[KGe].push(a),this[jGe]+=a.length,super.write(t,r,n)}end(t,r,n){typeof t=="function"&&(n=t,t=null),typeof r=="function"&&(n=r,r="utf8"),t&&this.write(t,r);let a=Buffer.concat(this[KGe],this[jGe]);return this.emit("collect",a),super.end(n)}};X8r.exports.PassThrough=Q8r});var zGe=H((wig,Dhs)=>{var nvl=FFt(),ivl=wt("events"),svl=e=>e&&e instanceof ivl&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"),w0e=Symbol("_head"),XO=Symbol("_tail"),U8r=Symbol("_linkStreams"),K8r=Symbol("_setHead"),j8r=Symbol("_setTail"),Ths=Symbol("_onError"),Rhs=Symbol("_onData"),z8r=Symbol("_onEnd"),Nhs=Symbol("_onDrain"),oZt=Symbol("_streams"),q8r=class extends nvl{constructor(t,...r){svl(t)&&(r.unshift(t),t={}),super(t),this[oZt]=[],r.length&&this.push(...r)}[U8r](t){return t.reduce((r,n)=>(r.on("error",a=>n.emit("error",a)),r.pipe(n),n))}push(...t){this[oZt].push(...t),this[XO]&&t.unshift(this[XO]);let r=this[U8r](t);this[j8r](r),this[w0e]||this[K8r](t[0])}unshift(...t){this[oZt].unshift(...t),this[w0e]&&t.push(this[w0e]);let r=this[U8r](t);this[K8r](t[0]),this[XO]||this[j8r](r)}destroy(t){return this[oZt].forEach(r=>typeof r.destroy=="function"&&r.destroy()),super.destroy(t)}[j8r](t){this[XO]=t,t.on("error",r=>this[Ths](t,r)),t.on("data",r=>this[Rhs](t,r)),t.on("end",()=>this[z8r](t)),t.on("finish",()=>this[z8r](t))}[Ths](t,r){t===this[XO]&&this.emit("error",r)}[Rhs](t,r){t===this[XO]&&super.write(r)}[z8r](t){t===this[XO]&&super.end()}pause(){return super.pause(),this[XO]&&this[XO].pause&&this[XO].pause()}emit(t,...r){return t==="resume"&&this[XO]&&this[XO].resume&&this[XO].resume(),super.emit(t,...r)}[K8r](t){this[w0e]=t,t.on("drain",()=>this[Nhs](t))}[Nhs](t){t===this[w0e]&&this.emit("drain")}write(t,r,n){return this[w0e].write(t,r,n)&&(this.flowing||this.buffer.length===0)}end(t,r,n){return this[w0e].end(t,r,n),this}};Dhs.exports=q8r});var khs=H((Tig,$8r)=>{(function(){var e;function t(r,n){var a=this instanceof t?this:e;if(a.reset(n),typeof r=="string"&&r.length>0&&a.hash(r),a!==this)return a}t.prototype.hash=function(r){var n,a,o,l,A;switch(A=r.length,this.len+=A,a=this.k1,o=0,this.rem){case 0:a^=A>o?r.charCodeAt(o++)&65535:0;case 1:a^=A>o?(r.charCodeAt(o++)&65535)<<8:0;case 2:a^=A>o?(r.charCodeAt(o++)&65535)<<16:0;case 3:a^=A>o?(r.charCodeAt(o)&255)<<24:0,a^=A>o?(r.charCodeAt(o++)&65280)>>8:0}if(this.rem=A+this.rem&3,A-=this.rem,A>0){for(n=this.h1;a=a*11601+(a&65535)*3432906752&4294967295,a=a<<15|a>>>17,a=a*13715+(a&65535)*461832192&4294967295,n^=a,n=n<<13|n>>>19,n=n*5+3864292196&4294967295,!(o>=A);)a=r.charCodeAt(o++)&65535^(r.charCodeAt(o++)&65535)<<8^(r.charCodeAt(o++)&65535)<<16,l=r.charCodeAt(o++),a^=(l&255)<<24^(l&65280)>>8;switch(a=0,this.rem){case 3:a^=(r.charCodeAt(o+2)&65535)<<16;case 2:a^=(r.charCodeAt(o+1)&65535)<<8;case 1:a^=r.charCodeAt(o)&65535}this.h1=n}return this.k1=a,this},t.prototype.result=function(){var r,n;return r=this.k1,n=this.h1,r>0&&(r=r*11601+(r&65535)*3432906752&4294967295,r=r<<15|r>>>17,r=r*13715+(r&65535)*461832192&4294967295,n^=r),n^=this.len,n^=n>>>16,n=n*51819+(n&65535)*2246770688&4294967295,n^=n>>>13,n=n*44597+(n&65535)*3266445312&4294967295,n^=n>>>16,n>>>0},t.prototype.reset=function(r){return this.h1=typeof r=="number"?r:0,this.rem=this.k1=this.len=0,this},e=new t,typeof $8r<"u"?$8r.exports=t:this.MurmurHash3=t})()});var Ghs=H((Rig,xhs)=>{"use strict";var ovl=khs();xhs.exports=function(e){if(e){var t=new ovl(e);return("00000000"+t.result().toString(16)).slice(-8)}else return(Math.random().toString(16)+"0000000").slice(2,10)}});var ejr=H((Nig,Fhs)=>{var avl=wt("path"),cvl=Ghs();Fhs.exports=function(e,t,r){return avl.join(e,(t?t+"-":"")+cvl(r))}});var tjr=H((Dig,lvl)=>{lvl.exports={name:"cacache",version:"19.0.1","cache-version":{content:"2",index:"5"},description:"Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",snap:"tap",coverage:"tap","test-docker":'docker run -it --rm --name pacotest -v "$PWD":/tmp -w /tmp node:latest npm test',lint:"npm run eslint",npmclilint:"npmcli-lint",lintfix:"npm run eslint -- --fix",postsnap:"npm run lintfix --",postlint:"template-oss-check",posttest:"npm run lint","template-oss-apply":"template-oss-apply --force",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"'},repository:{type:"git",url:"git+https://github.com/npm/cacache.git"},keywords:["cache","caching","content-addressable","sri","sri hash","subresource integrity","cache","storage","store","file store","filesystem","disk cache","disk storage"],license:"ISC",dependencies:{"@npmcli/fs":"^4.0.0","fs-minipass":"^3.0.0",glob:"^10.2.2","lru-cache":"^10.0.1",minipass:"^7.0.3","minipass-collect":"^2.0.1","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4","p-map":"^7.0.2",ssri:"^12.0.0",tar:"^7.4.3","unique-filename":"^4.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.3",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",windowsCI:!1,version:"4.23.3",publish:"true"},author:"GitHub Inc.",tap:{"nyc-arg":["--exclude","tap-snapshots/**"]}}});var rjr=H((kig,Zhs)=>{"use strict";Zhs.exports=uvl;function uvl(e){return[e.slice(0,2),e.slice(2,4),e.slice(4)]}});var qGe=H((xig,njr)=>{"use strict";var gvl=tjr()["cache-version"].content,Avl=rjr(),Lhs=wt("path"),dvl=Jte();njr.exports=pvl;function pvl(e,t){let r=dvl.parse(t,{single:!0});return Lhs.join(Vhs(e),r.algorithm,...Avl(r.hexDigest()))}njr.exports.contentDir=Vhs;function Vhs(e){return Lhs.join(e,`content-v${gvl}`)}});var ijr=H((Gig,Phs)=>{var fvl=(e,{copy:t,wrap:r})=>{let n={};if(e&&typeof e=="object")for(let a of t)e[a]!==void 0&&(n[a]=e[a]);else n[r]=e;return n};Phs.exports=fvl});var Ohs=H((Fig,Whs)=>{var Ivl=UC(),hvl=e=>Ivl.satisfies(process.version,e,{includePrerelease:!0});Whs.exports={satisfies:hvl}});var Mhs=H((Vig,ojr)=>{"use strict";var{inspect:mvl}=wt("util"),sjr=class{constructor(t,r,n){let a=`${r}: ${n.syscall} returned ${n.code} (${n.message})`;n.path!==void 0&&(a+=` ${n.path}`),n.dest!==void 0&&(a+=` => ${n.dest}`),this.code=t,Object.defineProperties(this,{name:{value:"SystemError",enumerable:!1,writable:!0,configurable:!0},message:{value:a,enumerable:!1,writable:!0,configurable:!0},info:{value:n,enumerable:!0,configurable:!0,writable:!1},errno:{get(){return n.errno},set(o){n.errno=o},enumerable:!0,configurable:!0},syscall:{get(){return n.syscall},set(o){n.syscall=o},enumerable:!0,configurable:!0}}),n.path!==void 0&&Object.defineProperty(this,"path",{get(){return n.path},set(o){n.path=o},enumerable:!0,configurable:!0}),n.dest!==void 0&&Object.defineProperty(this,"dest",{get(){return n.dest},set(o){n.dest=o},enumerable:!0,configurable:!0})}toString(){return`${this.name} [${this.code}]: ${this.message}`}[Symbol.for("nodejs.util.inspect.custom")](t,r){return mvl(this,{...r,getters:!0,customInspect:!1})}};function sre(e,t){ojr.exports[e]=class extends sjr{constructor(n){super(e,t,n)}}}sre("ERR_FS_CP_DIR_TO_NON_DIR","Cannot overwrite directory with non-directory");sre("ERR_FS_CP_EEXIST","Target already exists");sre("ERR_FS_CP_EINVAL","Invalid src or dest");sre("ERR_FS_CP_FIFO_PIPE","Cannot copy a FIFO pipe");sre("ERR_FS_CP_NON_DIR_TO_DIR","Cannot overwrite non-directory with directory");sre("ERR_FS_CP_SOCKET","Cannot copy a socket file");sre("ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY","Cannot overwrite symlink in subdirectory of self");sre("ERR_FS_CP_UNKNOWN","Cannot copy an unknown file type");sre("ERR_FS_EISDIR","Path is a directory");ojr.exports.ERR_INVALID_ARG_TYPE=class extends Error{constructor(t,r,n){super(),this.code="ERR_INVALID_ARG_TYPE",this.message=`The ${t} argument must be ${r}. Received ${typeof n}`}}});var ams=H((Pig,oms)=>{"use strict";var{ERR_FS_CP_DIR_TO_NON_DIR:Cvl,ERR_FS_CP_EEXIST:_vl,ERR_FS_CP_EINVAL:aZt,ERR_FS_CP_FIFO_PIPE:yvl,ERR_FS_CP_NON_DIR_TO_DIR:bvl,ERR_FS_CP_SOCKET:Evl,ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY:Svl,ERR_FS_CP_UNKNOWN:vvl,ERR_FS_EISDIR:Bvl,ERR_INVALID_ARG_TYPE:wvl}=Mhs(),{constants:{errno:{EEXIST:Tvl,EISDIR:Rvl,EINVAL:ore,ENOTDIR:Nvl}}}=wt("os"),{chmod:Dvl,copyFile:kvl,lstat:zhs,mkdir:qhs,readdir:xvl,readlink:Hhs,stat:$Ge,symlink:ajr,unlink:$hs,utimes:Gvl}=wt("fs/promises"),{dirname:Y7e,isAbsolute:Yhs,join:Qhs,parse:Fvl,resolve:Q7e,sep:Zvl,toNamespacedPath:Xhs}=wt("path"),{fileURLToPath:Lvl}=wt("url"),Vvl={dereference:!1,errorOnExist:!1,filter:void 0,force:!0,preserveTimestamps:!1,recursive:!1};async function Pvl(e,t,r){if(r!=null&&typeof r!="object")throw new wvl("options",["Object"],r);return Wvl(Xhs(Jhs(e)),Xhs(Jhs(t)),{...Vvl,...r})}function Jhs(e){return e!=null&&e.href&&e.origin?Lvl(e):e}async function Wvl(e,t,r){r.preserveTimestamps&&process.arch==="ia32"&&process.emitWarning("Using the preserveTimestamps option in 32-bit node is not recommended","TimestampPrecisionWarning");let n=await ems(e,t,r),{srcStat:a,destStat:o}=n;return await rms(e,a,t),r.filter?nms(Uhs,o,e,t,r):Uhs(o,e,t,r)}async function ems(e,t,r){let{0:n,1:a}=await Ovl(e,t,r);if(a){if(tms(n,a))throw new aZt({message:"src and dest cannot be the same",path:t,syscall:"cp",errno:ore});if(n.isDirectory()&&!a.isDirectory())throw new Cvl({message:`cannot overwrite directory ${e} with non-directory ${t}`,path:t,syscall:"cp",errno:Rvl});if(!n.isDirectory()&&a.isDirectory())throw new bvl({message:`cannot overwrite non-directory ${e} with directory ${t}`,path:t,syscall:"cp",errno:Nvl})}if(n.isDirectory()&&cjr(e,t))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${t}`,path:t,syscall:"cp",errno:ore});return{srcStat:n,destStat:a}}function tms(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Ovl(e,t,r){let n=r.dereference?a=>$Ge(a,{bigint:!0}):a=>zhs(a,{bigint:!0});return Promise.all([n(e),n(t).catch(a=>{if(a.code==="ENOENT")return null;throw a})])}async function Uhs(e,t,r,n){let a=Y7e(r);return await Mvl(a)||await qhs(a,{recursive:!0}),cZt(e,t,r,n)}function Mvl(e){return $Ge(e).then(()=>!0,t=>t.code==="ENOENT"?!1:Promise.reject(t))}async function rms(e,t,r){let n=Q7e(Y7e(e)),a=Q7e(Y7e(r));if(a===n||a===Fvl(a).root)return;let o;try{o=await $Ge(a,{bigint:!0})}catch(l){if(l.code==="ENOENT")return;throw l}if(tms(t,o))throw new aZt({message:`cannot copy ${e} to a subdirectory of self ${r}`,path:r,syscall:"cp",errno:ore});return rms(e,t,a)}var Khs=e=>Q7e(e).split(Zvl).filter(Boolean);function cjr(e,t){let r=Khs(e),n=Khs(t);return r.every((a,o)=>n[o]===a)}async function nms(e,t,r,n,a,o){if(await a.filter(r,n))return e(t,r,n,a,o)}function Hvl(e,t,r,n){return n.filter?nms(cZt,e,t,r,n):cZt(e,t,r,n)}async function cZt(e,t,r,n){let o=await(n.dereference?$Ge:zhs)(t);if(o.isDirectory()&&n.recursive)return jvl(o,e,t,r,n);if(o.isDirectory())throw new Bvl({message:`${t} is a directory (not copied)`,path:t,syscall:"cp",errno:ore});if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Yvl(o,e,t,r,n);if(o.isSymbolicLink())return qvl(e,t,r);throw o.isSocket()?new Evl({message:`cannot copy a socket file: ${r}`,path:r,syscall:"cp",errno:ore}):o.isFIFO()?new yvl({message:`cannot copy a FIFO pipe: ${r}`,path:r,syscall:"cp",errno:ore}):new vvl({message:`cannot copy an unknown file type: ${r}`,path:r,syscall:"cp",errno:ore})}function Yvl(e,t,r,n,a){return t?Qvl(e,r,n,a):ims(e,r,n,a)}async function Qvl(e,t,r,n){if(n.force)return await $hs(r),ims(e,t,r,n);if(n.errorOnExist)throw new _vl({message:`${r} already exists`,path:r,syscall:"cp",errno:Tvl})}async function ims(e,t,r,n){return await kvl(t,r),n.preserveTimestamps?Xvl(e.mode,t,r):lZt(r,e.mode)}async function Xvl(e,t,r){return Jvl(e)&&await Uvl(r,e),jhs(e,t,r)}function Jvl(e){return(e&128)===0}function Uvl(e,t){return lZt(e,t|128)}async function jhs(e,t,r){return await Kvl(t,r),lZt(r,e)}function lZt(e,t){return Dvl(e,t)}async function Kvl(e,t){let r=await $Ge(e);return Gvl(t,r.atime,r.mtime)}function jvl(e,t,r,n,a){return t?sms(r,n,a):zvl(e.mode,r,n,a)}async function zvl(e,t,r,n){return await qhs(r),await sms(t,r,n),lZt(r,e)}async function sms(e,t,r){let n=await xvl(e);for(let a=0;a{var eBl=wt("fs/promises"),tBl=ijr(),rBl=Ohs(),nBl=ams(),iBl=rBl.satisfies(">=16.7.0"),sBl=async(e,t,r)=>{let n=tBl(r,{copy:["dereference","errorOnExist","filter","force","preserveTimestamps","recursive"]});return iBl?eBl.cp(e,t,n):nBl(e,t,n)};cms.exports=sBl});var gms=H((Oig,ums)=>{var{join:oBl,sep:aBl}=wt("path"),cBl=ijr(),{mkdir:lBl,mkdtemp:uBl,rm:gBl}=wt("fs/promises"),ABl=async(e,t,r)=>{let n=cBl(r,{copy:["tmpPrefix"]});await lBl(e,{recursive:!0});let a=await uBl(oBl(`${e}${aBl}`,n.tmpPrefix||"")),o,l;try{l=await t(a)}catch(A){o=A}try{await gBl(a,{force:!0,recursive:!0})}catch{}if(o)throw o;return l};ums.exports=ABl});var fms=H((Mig,pms)=>{var{readdir:Ams}=wt("fs/promises"),{join:dms}=wt("path"),dBl=async e=>{let t=[];for(let r of await Ams(e))if(r.startsWith("@"))for(let n of await Ams(dms(e,r)))t.push(dms(r,n));else t.push(r);return t};pms.exports=dBl});var yms=H((Hig,_ms)=>{var{dirname:Ims,join:hms,resolve:mms,relative:pBl,isAbsolute:fBl}=wt("path"),D6=wt("fs/promises"),IBl=async e=>{try{return await D6.access(e),!0}catch(t){return t.code!=="ENOENT"}},Cms=async(e,t,r={},n=!0,a=[])=>{if(!e||!t)throw new TypeError("`source` and `destination` file required");if(r={overwrite:!0,...r},!r.overwrite&&await IBl(t))throw new Error(`The destination file exists: ${t}`);await D6.mkdir(Ims(t),{recursive:!0});try{await D6.rename(e,t)}catch(o){if(o.code==="EXDEV"||o.code==="EPERM"){let l=await D6.lstat(e);if(l.isDirectory()){let A=await D6.readdir(e);await Promise.all(A.map(f=>Cms(hms(e,f),hms(t,f),r,!1,a)))}else l.isSymbolicLink()?a.push({source:e,destination:t}):await D6.copyFile(e,t)}else throw o}n&&(await Promise.all(a.map(async({source:o,destination:l})=>{let A=await D6.readlink(o);fBl(A)&&(A=mms(l,pBl(o,A)));let f="file";try{f=await D6.stat(mms(Ims(o),A)),f.isDirectory()&&(f="junction")}catch{}await D6.symlink(A,l,f)})),await D6.rm(e,{recursive:!0,force:!0}))};_ms.exports=Cms});var uZt=H((Yig,bms)=>{"use strict";var hBl=lms(),mBl=gms(),CBl=fms(),_Bl=yms();bms.exports={cp:hBl,withTempDir:mBl,readdirScoped:CBl,moveFile:_Bl}});var gZt={};sI(gZt,{default:()=>Ems,pMapIterable:()=>yBl,pMapSkip:()=>X7e});async function Ems(e,t,{concurrency:r=Number.POSITIVE_INFINITY,stopOnError:n=!0,signal:a}={}){return new Promise((o,l)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw new TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!="function")throw new TypeError("Mapper function is required");if(!(Number.isSafeInteger(r)&&r>=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);let A=[],f=[],I=new Map,C=!1,b=!1,E=!1,N=0,B=0,F=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),Q=()=>{ne(a.reason)},X=()=>{a?.removeEventListener("abort",Q)},ae=fe=>{o(fe),X()},ne=fe=>{C=!0,b=!0,l(fe),X()};a&&(a.aborted&&ne(a.reason),a.addEventListener("abort",Q,{once:!0}));let ce=async()=>{if(b)return;let fe=await F.next(),ue=B;if(B++,fe.done){if(E=!0,N===0&&!b){if(!n&&f.length>0){ne(new AggregateError(f));return}if(b=!0,I.size===0){ae(A);return}let de=[];for(let[be,Se]of A.entries())I.get(be)!==X7e&&de.push(Se);ae(de)}return}N++,(async()=>{try{let de=await fe.value;if(b)return;let be=await t(de,ue);be===X7e&&I.set(ue,be),A[ue]=be,N--,await ce()}catch(de){if(n)ne(de);else{f.push(de),N--;try{await ce()}catch(be){ne(be)}}}})()};(async()=>{for(let fe=0;fe=1||r===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${r}\` (${typeof r})`);if(!(Number.isSafeInteger(n)&&n>=r||n===Number.POSITIVE_INFINITY))throw new TypeError(`Expected \`backpressure\` to be an integer from \`concurrency\` (${r}) and up or \`Infinity\`, got \`${n}\` (${typeof n})`);return{async*[Symbol.asyncIterator](){let a=e[Symbol.asyncIterator]===void 0?e[Symbol.iterator]():e[Symbol.asyncIterator](),o=[],l=0,A=!1,f=0;function I(){if(A||!(l{let{done:b,value:E}=await a.next();if(b)return l--,{done:!0};I();try{let N=await t(await E,f++);if(l--,N===X7e){let B=o.indexOf(C);B>0&&o.splice(B,1)}return I(),{done:!1,value:N}}catch(N){return l--,A=!0,{error:N}}})();o.push(C)}for(I();o.length>0;){let{error:C,done:b,value:E}=await o[0];if(o.shift(),C)throw C;if(b)return;I(),E!==X7e&&(yield E)}}}}var X7e,AZt=bc(()=>{X7e=Symbol("skip")});var eFe=H((Xig,JO)=>{"use strict";var bBl=wt("crypto"),{appendFile:EBl,mkdir:gjr,readFile:SBl,readdir:vBl,rm:Sms,writeFile:BBl}=wt("fs/promises"),{Minipass:wBl}=rF(),k6=wt("path"),TBl=Jte(),RBl=ejr(),NBl=qGe(),DBl=rjr(),kBl=tjr()["cache-version"].index,{moveFile:xBl}=uZt(),ljr=5;JO.exports.NotFoundError=class extends Error{constructor(t,r){super(`No cache entry for ${r} found in ${t}`),this.code="ENOENT",this.cache=t,this.key=r}};JO.exports.compact=GBl;async function GBl(e,t,r,n={}){let a=J7e(e,t),o=await dZt(a),l=[];for(let E=o.length-1;E>=0;--E){let N=o[E];if(N.integrity===null&&!n.validateEntry)break;(!n.validateEntry||n.validateEntry(N)===!0)&&(l.length===0||!l.find(B=>r(B,N)))&&l.unshift(N)}let A=` `+l.map(E=>{let N=JSON.stringify(E);return`${pZt(N)} ${N}`}).join(` -`),f=async()=>{let E=TBl(k6.join(e,"tmp"),n.tmpPrefix);return await gjr(k6.dirname(E),{recursive:!0}),{target:E,moved:!1}},I=async E=>{if(!E.moved)return Sms(E.target,{recursive:!0,force:!0})},C=async E=>{await vBl(E.target,A,{flag:"wx"}),await gjr(k6.dirname(a),{recursive:!0}),await kBl(E.target,a),E.moved=!0},b=await f();try{await C(b)}finally{await I(b)}return l.reverse().map(E=>fZt(e,E,!0))}JO.exports.insert=vms;async function vms(e,t,r,n={}){let{metadata:a,size:o,time:l}=n,A=J7e(e,t),f={key:t,integrity:r&&wBl.stringify(r),time:l||Date.now(),size:o,metadata:a};try{await gjr(k6.dirname(A),{recursive:!0});let I=JSON.stringify(f);await bBl(A,` -${pZt(I)} ${I}`)}catch(I){if(I.code==="ENOENT")return;throw I}return fZt(e,f)}JO.exports.find=GBl;async function GBl(e,t){let r=J7e(e,t);try{return(await dZt(r)).reduce((a,o)=>o&&o.key===t?fZt(e,o):a,null)}catch(n){if(n.code==="ENOENT")return null;throw n}}JO.exports.delete=FBl;function FBl(e,t,r={}){if(!r.removeFully)return vms(e,t,null,r);let n=J7e(e,t);return Sms(n,{recursive:!0,force:!0})}JO.exports.lsStream=Bms;function Bms(e){let t=Ajr(e),r=new BBl({objectMode:!0});return Promise.resolve().then(async()=>{let{default:n}=await Promise.resolve().then(()=>(AZt(),gZt)),a=await ujr(t);return await n(a,async o=>{let l=k6.join(t,o),A=await ujr(l);await n(A,async f=>{let I=k6.join(l,f),C=await ujr(I);await n(C,async b=>{let E=k6.join(I,b);try{let B=(await dZt(E)).reduce((F,Q)=>(F.set(Q.key,Q),F),new Map);for(let F of B.values()){let Q=fZt(e,F);Q&&r.write(Q)}}catch(N){if(N.code==="ENOENT")return;throw N}},{concurrency:ljr})},{concurrency:ljr})},{concurrency:ljr}),r.end(),r}).catch(n=>r.emit("error",n)),r}JO.exports.ls=ZBl;async function ZBl(e){return(await Bms(e).collect()).reduce((r,n)=>(r[n.key]=n,r),{})}JO.exports.bucketEntries=dZt;async function dZt(e,t){let r=await EBl(e,"utf8");return LBl(r,t)}function LBl(e){let t=[];return e.split(` -`).forEach(r=>{if(!r)return;let n=r.split(" ");if(!n[1]||pZt(n[1])!==n[0])return;let a;try{a=JSON.parse(n[1])}catch{}a&&t.push(a)}),t}JO.exports.bucketDir=Ajr;function Ajr(e){return k6.join(e,`index-v${DBl}`)}JO.exports.bucketPath=J7e;function J7e(e,t){let r=wms(t);return k6.join.apply(k6,[Ajr(e)].concat(NBl(r)))}JO.exports.hashKey=wms;function wms(e){return Tms(e,"sha256")}JO.exports.hashEntry=pZt;function pZt(e){return Tms(e,"sha1")}function Tms(e,t){return yBl.createHash(t).update(e).digest("hex")}function fZt(e,t,r){return!t.integrity&&!r?null:{key:t.key,integrity:t.integrity,path:t.integrity?RBl(e,t.integrity):void 0,size:t.size,time:t.time,metadata:t.metadata}}function ujr(e){return SBl(e).catch(t=>{if(t.code==="ENOENT"||t.code==="ENOTDIR")return[];throw t})}});var U7e=H((Xig,tFe)=>{"use strict";var{LRUCache:VBl}=yIe(),IZt=new VBl({max:500,maxSize:50*1024*1024,ttl:3*60*1e3,sizeCalculation:(e,t)=>t.startsWith("key:")?e.data.length:e.length});tFe.exports.clearMemoized=PBl;function PBl(){let e={};return IZt.forEach((t,r)=>{e[r]=t}),IZt.clear(),e}tFe.exports.put=WBl;function WBl(e,t,r,n){hZt(n).set(`key:${e}:${t.key}`,{entry:t,data:r}),Rms(e,t.integrity,r,n)}tFe.exports.put.byDigest=Rms;function Rms(e,t,r,n){hZt(n).set(`digest:${e}:${t}`,r)}tFe.exports.get=OBl;function OBl(e,t,r){return hZt(r).get(`key:${e}:${t}`)}tFe.exports.get.byDigest=MBl;function MBl(e,t,r){return hZt(r).get(`digest:${e}:${t}`)}var djr=class{constructor(t){this.obj=t}get(t){return this.obj[t]}set(t,r){this.obj[t]=r}};function hZt(e){return!e||!e.memoize?IZt:e.memoize.get&&e.memoize.set?e.memoize:typeof e.memoize=="object"?new djr(e.memoize):IZt}});var vZt=H(j7e=>{"use strict";var{Minipass:HBl}=rF(),YBl=wt("events").EventEmitter,qV=wt("fs"),QBl=qV.writev,oFe=Symbol("_autoClose"),tJ=Symbol("_close"),K7e=Symbol("_ended"),pb=Symbol("_fd"),Nms=Symbol("_finished"),Oue=Symbol("_flags"),pjr=Symbol("_flush"),Ijr=Symbol("_handleChunk"),hjr=Symbol("_makeBuf"),bZt=Symbol("_mode"),mZt=Symbol("_needDrain"),iFe=Symbol("_onerror"),aFe=Symbol("_onopen"),fjr=Symbol("_onread"),rFe=Symbol("_onwrite"),Mue=Symbol("_open"),are=Symbol("_path"),R0e=Symbol("_pos"),x6=Symbol("_queue"),nFe=Symbol("_read"),Dms=Symbol("_readSize"),Wue=Symbol("_reading"),CZt=Symbol("_remain"),kms=Symbol("_size"),_Zt=Symbol("_write"),T0e=Symbol("_writing"),yZt=Symbol("_defaultFlag"),sFe=Symbol("_errored"),EZt=class extends HBl{constructor(t,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof t!="string")throw new TypeError("path must be a string");this[sFe]=!1,this[pb]=typeof r.fd=="number"?r.fd:null,this[are]=t,this[Dms]=r.readSize||16*1024*1024,this[Wue]=!1,this[kms]=typeof r.size=="number"?r.size:1/0,this[CZt]=this[kms],this[oFe]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[pb]=="number"?this[nFe]():this[Mue]()}get fd(){return this[pb]}get path(){return this[are]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Mue](){qV.open(this[are],"r",(t,r)=>this[aFe](t,r))}[aFe](t,r){t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[nFe]())}[hjr](){return Buffer.allocUnsafe(Math.min(this[Dms],this[CZt]))}[nFe](){if(!this[Wue]){this[Wue]=!0;let t=this[hjr]();if(t.length===0)return process.nextTick(()=>this[fjr](null,0,t));qV.read(this[pb],t,0,t.length,null,(r,n,a)=>this[fjr](r,n,a))}}[fjr](t,r,n){this[Wue]=!1,t?this[iFe](t):this[Ijr](r,n)&&this[nFe]()}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}[iFe](t){this[Wue]=!0,this[tJ](),this.emit("error",t)}[Ijr](t,r){let n=!1;return this[CZt]-=t,t>0&&(n=super.write(tthis[aFe](t,r))}[aFe](t,r){this[yZt]&&this[Oue]==="r+"&&t&&t.code==="ENOENT"?(this[Oue]="w",this[Mue]()):t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[T0e]||this[pjr]())}end(t,r){return t&&this.write(t,r),this[K7e]=!0,!this[T0e]&&!this[x6].length&&typeof this[pb]=="number"&&this[rFe](null,0),this}write(t,r){return typeof t=="string"&&(t=Buffer.from(t,r)),this[K7e]?(this.emit("error",new Error("write() after end()")),!1):this[pb]===null||this[T0e]||this[x6].length?(this[x6].push(t),this[mZt]=!0,!1):(this[T0e]=!0,this[_Zt](t),!0)}[_Zt](t){qV.write(this[pb],t,0,t.length,this[R0e],(r,n)=>this[rFe](r,n))}[rFe](t,r){t?this[iFe](t):(this[R0e]!==null&&(this[R0e]+=r),this[x6].length?this[pjr]():(this[T0e]=!1,this[K7e]&&!this[Nms]?(this[Nms]=!0,this[tJ](),this.emit("finish")):this[mZt]&&(this[mZt]=!1,this.emit("drain"))))}[pjr](){if(this[x6].length===0)this[K7e]&&this[rFe](null,0);else if(this[x6].length===1)this[_Zt](this[x6].pop());else{let t=this[x6];this[x6]=[],QBl(this[pb],t,this[R0e],(r,n)=>this[rFe](r,n))}}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}},Cjr=class extends SZt{[Mue](){let t;if(this[yZt]&&this[Oue]==="r+")try{t=qV.openSync(this[are],this[Oue],this[bZt])}catch(r){if(r.code==="ENOENT")return this[Oue]="w",this[Mue]();throw r}else t=qV.openSync(this[are],this[Oue],this[bZt]);this[aFe](null,t)}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.closeSync(t),this.emit("close")}}[_Zt](t){let r=!0;try{this[rFe](null,qV.writeSync(this[pb],t,0,t.length,this[R0e])),r=!1}finally{if(r)try{this[tJ]()}catch{}}}};j7e.ReadStream=EZt;j7e.ReadStreamSync=mjr;j7e.WriteStream=SZt;j7e.WriteStreamSync=Cjr});var yjr=H((Uig,cFe)=>{"use strict";var z7e=wt("fs/promises"),XBl=vZt(),_jr=Jte(),JBl=qGe(),xms=zGe();cFe.exports=UBl;var Gms=64*1024*1024;async function UBl(e,t,r={}){let{size:n}=r,{stat:a,cpath:o,sri:l}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));if(a.size>Gms)return Fms(o,a.size,l,new xms).concat();let A=await z7e.readFile(o,{encoding:null});if(a.size!==A.length)throw zBl(a.size,A.length);if(!_jr.checkData(A,l))throw qBl(l,o);return A}var Fms=(e,t,r,n)=>(n.push(new XBl.ReadStream(e,{size:t,readSize:Gms}),_jr.integrityStream({integrity:r,size:t})),n);cFe.exports.stream=Zms;cFe.exports.readStream=Zms;function Zms(e,t,r={}){let{size:n}=r,a=new xms;return Promise.resolve().then(async()=>{let{stat:o,cpath:l,sri:A}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));return Fms(l,o.size,A,a)}).catch(o=>a.emit("error",o)),a}cFe.exports.copy=KBl;function KBl(e,t,r){return q7e(e,t,n=>z7e.copyFile(n,r))}cFe.exports.hasContent=jBl;async function jBl(e,t){if(!t)return!1;try{return await q7e(e,t,async(r,n)=>{let a=await z7e.stat(r);return{size:a.size,sri:n,stat:a}})}catch(r){if(r.code==="ENOENT")return!1;if(r.code==="EPERM"){if(process.platform!=="win32")throw r;return!1}}}async function q7e(e,t,r){let n=_jr.parse(t),a=n.pickAlgorithm(),o=n[a];if(o.length<=1){let l=JBl(e,o[0]);return r(l,o[0])}else{let l=await Promise.all(o.map(async I=>{try{return await q7e(e,I,r)}catch(C){return C.code==="ENOENT"?Object.assign(new Error("No matching content found for "+n.toString()),{code:"ENOENT"}):C}})),A=l.find(I=>!(I instanceof Error));if(A)return A;let f=l.find(I=>I.code==="ENOENT");throw f||l.find(I=>I instanceof Error)}}function zBl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function qBl(e,t){let r=new Error(`Integrity verification failed for ${e} (${t})`);return r.code="EINTEGRITY",r.sri=e,r.path=t,r}});var Wms=H((Kig,lre)=>{"use strict";var Lms=J8r(),{Minipass:Vms}=rF(),Pms=zGe(),N0e=eFe(),cre=U7e(),D0e=yjr();async function $Bl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get(e,t,r);if(l&&a!==!1)return{metadata:l.entry.metadata,data:l.data,integrity:l.entry.integrity,size:l.entry.size};let A=await N0e.find(e,t,r);if(!A)throw new N0e.NotFoundError(e,t);let f=await D0e(e,A.integrity,{integrity:n,size:o});return a&&cre.put(e,A,f,r),{data:f,metadata:A.metadata,size:A.size,integrity:A.integrity}}lre.exports=$Bl;async function ewl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get.byDigest(e,t,r);if(l&&a!==!1)return l;let A=await D0e(e,t,{integrity:n,size:o});return a&&cre.put.byDigest(e,t,A,r),A}lre.exports.byDigest=ewl;var twl=e=>{let t=new Vms;return t.on("newListener",function(r,n){r==="metadata"&&n(e.entry.metadata),r==="integrity"&&n(e.entry.integrity),r==="size"&&n(e.entry.size)}),t.end(e.data),t};function rwl(e,t,r={}){let{memoize:n,size:a}=r,o=cre.get(e,t,r);if(o&&n!==!1)return twl(o);let l=new Pms;return Promise.resolve().then(async()=>{let A=await N0e.find(e,t);if(!A)throw new N0e.NotFoundError(e,t);l.emit("metadata",A.metadata),l.emit("integrity",A.integrity),l.emit("size",A.size),l.on("newListener",function(I,C){I==="metadata"&&C(A.metadata),I==="integrity"&&C(A.integrity),I==="size"&&C(A.size)});let f=D0e.readStream(e,A.integrity,{...r,size:typeof a!="number"?A.size:a});if(n){let I=new Lms.PassThrough;I.on("collect",C=>cre.put(e,A,C,r)),l.unshift(I)}return l.unshift(f),l}).catch(A=>l.emit("error",A)),l}lre.exports.stream=rwl;function nwl(e,t,r={}){let{memoize:n}=r,a=cre.get.byDigest(e,t,r);if(a&&n!==!1){let o=new Vms;return o.end(a),o}else{let o=D0e.readStream(e,t,r);if(!n)return o;let l=new Lms.PassThrough;return l.on("collect",A=>cre.put.byDigest(e,t,A,r)),new Pms(o,l)}}lre.exports.stream.byDigest=nwl;function iwl(e,t,r={}){let{memoize:n}=r,a=cre.get(e,t,r);return a&&n!==!1?Promise.resolve(a.entry):N0e.find(e,t)}lre.exports.info=iwl;async function swl(e,t,r,n={}){let a=await N0e.find(e,t,n);if(!a)throw new N0e.NotFoundError(e,t);return await D0e.copy(e,a.integrity,r,n),{metadata:a.metadata,size:a.size,integrity:a.integrity}}lre.exports.copy=swl;async function owl(e,t,r,n={}){return await D0e.copy(e,t,r,n),t}lre.exports.copy.byDigest=owl;lre.exports.hasContent=D0e.hasContent});var Qms=H((jig,vjr)=>{"use strict";var Oms=wt("events"),awl=qGe(),eze=wt("fs/promises"),{moveFile:cwl}=uZt(),{Minipass:lwl}=rF(),Mms=zGe(),uwl=sZt(),bjr=wt("path"),Ejr=Jte(),gwl=ejr(),Awl=vZt();vjr.exports=dwl;var $7e=new Map;async function dwl(e,t,r={}){let{algorithms:n,size:a,integrity:o}=r;if(typeof a=="number"&&t.length!==a)throw hwl(a,t.length);let l=Ejr.fromData(t,n?{algorithms:n}:{});if(o&&!Ejr.checkData(t,o,r))throw mwl(o,l);for(let A in l){let f=await Hms(e,r),I=l[A].toString();try{await eze.writeFile(f.target,t,{flag:"wx"}),await Yms(f,e,I,r)}finally{f.moved||await eze.rm(f.target,{recursive:!0,force:!0})}}return{integrity:l,size:t.length}}vjr.exports.stream=pwl;var Sjr=class extends uwl{constructor(t,r){super(),this.opts=r,this.cache=t,this.inputStream=new lwl,this.inputStream.on("error",n=>this.emit("error",n)),this.inputStream.on("drain",()=>this.emit("drain")),this.handleContentP=null}write(t,r,n){return this.handleContentP||(this.handleContentP=fwl(this.inputStream,this.cache,this.opts),this.handleContentP.catch(a=>this.emit("error",a))),this.inputStream.write(t,r,n)}flush(t){this.inputStream.end(()=>{if(!this.handleContentP){let r=new Error("Cache input stream was empty");return r.code="ENODATA",Promise.reject(r).catch(t)}this.handleContentP.then(r=>{r.integrity&&this.emit("integrity",r.integrity),r.size!==null&&this.emit("size",r.size),t()},r=>t(r))})}};function pwl(e,t={}){return new Sjr(e,t)}async function fwl(e,t,r){let n=await Hms(t,r);try{let a=await Iwl(e,t,n.target,r);return await Yms(n,t,a.integrity,r),a}finally{n.moved||await eze.rm(n.target,{recursive:!0,force:!0})}}async function Iwl(e,t,r,n){let a=new Awl.WriteStream(r,{flags:"wx"});if(n.integrityEmitter){let[I,C]=await Promise.all([Oms.once(n.integrityEmitter,"integrity").then(b=>b[0]),Oms.once(n.integrityEmitter,"size").then(b=>b[0]),new Mms(e,a).promise()]);return{integrity:I,size:C}}let o,l,A=Ejr.integrityStream({integrity:n.integrity,algorithms:n.algorithms,size:n.size});return A.on("integrity",I=>{o=I}),A.on("size",I=>{l=I}),await new Mms(e,A,a).promise(),{integrity:o,size:l}}async function Hms(e,t){let r=gwl(bjr.join(e,"tmp"),t.tmpPrefix);return await eze.mkdir(bjr.dirname(r),{recursive:!0}),{target:r,moved:!1}}async function Yms(e,t,r){let n=awl(t,r),a=bjr.dirname(n);return $7e.has(n)||$7e.set(n,eze.mkdir(a,{recursive:!0}).then(async()=>(await cwl(e.target,n,{overwrite:!1}),e.moved=!0,e.moved)).catch(o=>{if(!o.message.startsWith("The destination file exists"))throw Object.assign(o,{code:"EEXIST"})}).finally(()=>{$7e.delete(n)})),$7e.get(n)}function hwl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function mwl(e,t){let r=new Error(`Integrity check failed: +`),f=async()=>{let E=RBl(k6.join(e,"tmp"),n.tmpPrefix);return await gjr(k6.dirname(E),{recursive:!0}),{target:E,moved:!1}},I=async E=>{if(!E.moved)return Sms(E.target,{recursive:!0,force:!0})},C=async E=>{await BBl(E.target,A,{flag:"wx"}),await gjr(k6.dirname(a),{recursive:!0}),await xBl(E.target,a),E.moved=!0},b=await f();try{await C(b)}finally{await I(b)}return l.reverse().map(E=>fZt(e,E,!0))}JO.exports.insert=vms;async function vms(e,t,r,n={}){let{metadata:a,size:o,time:l}=n,A=J7e(e,t),f={key:t,integrity:r&&TBl.stringify(r),time:l||Date.now(),size:o,metadata:a};try{await gjr(k6.dirname(A),{recursive:!0});let I=JSON.stringify(f);await EBl(A,` +${pZt(I)} ${I}`)}catch(I){if(I.code==="ENOENT")return;throw I}return fZt(e,f)}JO.exports.find=FBl;async function FBl(e,t){let r=J7e(e,t);try{return(await dZt(r)).reduce((a,o)=>o&&o.key===t?fZt(e,o):a,null)}catch(n){if(n.code==="ENOENT")return null;throw n}}JO.exports.delete=ZBl;function ZBl(e,t,r={}){if(!r.removeFully)return vms(e,t,null,r);let n=J7e(e,t);return Sms(n,{recursive:!0,force:!0})}JO.exports.lsStream=Bms;function Bms(e){let t=Ajr(e),r=new wBl({objectMode:!0});return Promise.resolve().then(async()=>{let{default:n}=await Promise.resolve().then(()=>(AZt(),gZt)),a=await ujr(t);return await n(a,async o=>{let l=k6.join(t,o),A=await ujr(l);await n(A,async f=>{let I=k6.join(l,f),C=await ujr(I);await n(C,async b=>{let E=k6.join(I,b);try{let B=(await dZt(E)).reduce((F,Q)=>(F.set(Q.key,Q),F),new Map);for(let F of B.values()){let Q=fZt(e,F);Q&&r.write(Q)}}catch(N){if(N.code==="ENOENT")return;throw N}},{concurrency:ljr})},{concurrency:ljr})},{concurrency:ljr}),r.end(),r}).catch(n=>r.emit("error",n)),r}JO.exports.ls=LBl;async function LBl(e){return(await Bms(e).collect()).reduce((r,n)=>(r[n.key]=n,r),{})}JO.exports.bucketEntries=dZt;async function dZt(e,t){let r=await SBl(e,"utf8");return VBl(r,t)}function VBl(e){let t=[];return e.split(` +`).forEach(r=>{if(!r)return;let n=r.split(" ");if(!n[1]||pZt(n[1])!==n[0])return;let a;try{a=JSON.parse(n[1])}catch{}a&&t.push(a)}),t}JO.exports.bucketDir=Ajr;function Ajr(e){return k6.join(e,`index-v${kBl}`)}JO.exports.bucketPath=J7e;function J7e(e,t){let r=wms(t);return k6.join.apply(k6,[Ajr(e)].concat(DBl(r)))}JO.exports.hashKey=wms;function wms(e){return Tms(e,"sha256")}JO.exports.hashEntry=pZt;function pZt(e){return Tms(e,"sha1")}function Tms(e,t){return bBl.createHash(t).update(e).digest("hex")}function fZt(e,t,r){return!t.integrity&&!r?null:{key:t.key,integrity:t.integrity,path:t.integrity?NBl(e,t.integrity):void 0,size:t.size,time:t.time,metadata:t.metadata}}function ujr(e){return vBl(e).catch(t=>{if(t.code==="ENOENT"||t.code==="ENOTDIR")return[];throw t})}});var U7e=H((Jig,tFe)=>{"use strict";var{LRUCache:PBl}=yIe(),IZt=new PBl({max:500,maxSize:50*1024*1024,ttl:3*60*1e3,sizeCalculation:(e,t)=>t.startsWith("key:")?e.data.length:e.length});tFe.exports.clearMemoized=WBl;function WBl(){let e={};return IZt.forEach((t,r)=>{e[r]=t}),IZt.clear(),e}tFe.exports.put=OBl;function OBl(e,t,r,n){hZt(n).set(`key:${e}:${t.key}`,{entry:t,data:r}),Rms(e,t.integrity,r,n)}tFe.exports.put.byDigest=Rms;function Rms(e,t,r,n){hZt(n).set(`digest:${e}:${t}`,r)}tFe.exports.get=MBl;function MBl(e,t,r){return hZt(r).get(`key:${e}:${t}`)}tFe.exports.get.byDigest=HBl;function HBl(e,t,r){return hZt(r).get(`digest:${e}:${t}`)}var djr=class{constructor(t){this.obj=t}get(t){return this.obj[t]}set(t,r){this.obj[t]=r}};function hZt(e){return!e||!e.memoize?IZt:e.memoize.get&&e.memoize.set?e.memoize:typeof e.memoize=="object"?new djr(e.memoize):IZt}});var vZt=H(j7e=>{"use strict";var{Minipass:YBl}=rF(),QBl=wt("events").EventEmitter,qV=wt("fs"),XBl=qV.writev,oFe=Symbol("_autoClose"),tJ=Symbol("_close"),K7e=Symbol("_ended"),pb=Symbol("_fd"),Nms=Symbol("_finished"),Oue=Symbol("_flags"),pjr=Symbol("_flush"),Ijr=Symbol("_handleChunk"),hjr=Symbol("_makeBuf"),bZt=Symbol("_mode"),mZt=Symbol("_needDrain"),iFe=Symbol("_onerror"),aFe=Symbol("_onopen"),fjr=Symbol("_onread"),rFe=Symbol("_onwrite"),Mue=Symbol("_open"),are=Symbol("_path"),R0e=Symbol("_pos"),x6=Symbol("_queue"),nFe=Symbol("_read"),Dms=Symbol("_readSize"),Wue=Symbol("_reading"),CZt=Symbol("_remain"),kms=Symbol("_size"),_Zt=Symbol("_write"),T0e=Symbol("_writing"),yZt=Symbol("_defaultFlag"),sFe=Symbol("_errored"),EZt=class extends YBl{constructor(t,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof t!="string")throw new TypeError("path must be a string");this[sFe]=!1,this[pb]=typeof r.fd=="number"?r.fd:null,this[are]=t,this[Dms]=r.readSize||16*1024*1024,this[Wue]=!1,this[kms]=typeof r.size=="number"?r.size:1/0,this[CZt]=this[kms],this[oFe]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[pb]=="number"?this[nFe]():this[Mue]()}get fd(){return this[pb]}get path(){return this[are]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Mue](){qV.open(this[are],"r",(t,r)=>this[aFe](t,r))}[aFe](t,r){t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[nFe]())}[hjr](){return Buffer.allocUnsafe(Math.min(this[Dms],this[CZt]))}[nFe](){if(!this[Wue]){this[Wue]=!0;let t=this[hjr]();if(t.length===0)return process.nextTick(()=>this[fjr](null,0,t));qV.read(this[pb],t,0,t.length,null,(r,n,a)=>this[fjr](r,n,a))}}[fjr](t,r,n){this[Wue]=!1,t?this[iFe](t):this[Ijr](r,n)&&this[nFe]()}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}[iFe](t){this[Wue]=!0,this[tJ](),this.emit("error",t)}[Ijr](t,r){let n=!1;return this[CZt]-=t,t>0&&(n=super.write(tthis[aFe](t,r))}[aFe](t,r){this[yZt]&&this[Oue]==="r+"&&t&&t.code==="ENOENT"?(this[Oue]="w",this[Mue]()):t?this[iFe](t):(this[pb]=r,this.emit("open",r),this[T0e]||this[pjr]())}end(t,r){return t&&this.write(t,r),this[K7e]=!0,!this[T0e]&&!this[x6].length&&typeof this[pb]=="number"&&this[rFe](null,0),this}write(t,r){return typeof t=="string"&&(t=Buffer.from(t,r)),this[K7e]?(this.emit("error",new Error("write() after end()")),!1):this[pb]===null||this[T0e]||this[x6].length?(this[x6].push(t),this[mZt]=!0,!1):(this[T0e]=!0,this[_Zt](t),!0)}[_Zt](t){qV.write(this[pb],t,0,t.length,this[R0e],(r,n)=>this[rFe](r,n))}[rFe](t,r){t?this[iFe](t):(this[R0e]!==null&&(this[R0e]+=r),this[x6].length?this[pjr]():(this[T0e]=!1,this[K7e]&&!this[Nms]?(this[Nms]=!0,this[tJ](),this.emit("finish")):this[mZt]&&(this[mZt]=!1,this.emit("drain"))))}[pjr](){if(this[x6].length===0)this[K7e]&&this[rFe](null,0);else if(this[x6].length===1)this[_Zt](this[x6].pop());else{let t=this[x6];this[x6]=[],XBl(this[pb],t,this[R0e],(r,n)=>this[rFe](r,n))}}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.close(t,r=>r?this.emit("error",r):this.emit("close"))}}},Cjr=class extends SZt{[Mue](){let t;if(this[yZt]&&this[Oue]==="r+")try{t=qV.openSync(this[are],this[Oue],this[bZt])}catch(r){if(r.code==="ENOENT")return this[Oue]="w",this[Mue]();throw r}else t=qV.openSync(this[are],this[Oue],this[bZt]);this[aFe](null,t)}[tJ](){if(this[oFe]&&typeof this[pb]=="number"){let t=this[pb];this[pb]=null,qV.closeSync(t),this.emit("close")}}[_Zt](t){let r=!0;try{this[rFe](null,qV.writeSync(this[pb],t,0,t.length,this[R0e])),r=!1}finally{if(r)try{this[tJ]()}catch{}}}};j7e.ReadStream=EZt;j7e.ReadStreamSync=mjr;j7e.WriteStream=SZt;j7e.WriteStreamSync=Cjr});var yjr=H((Kig,cFe)=>{"use strict";var z7e=wt("fs/promises"),JBl=vZt(),_jr=Jte(),UBl=qGe(),xms=zGe();cFe.exports=KBl;var Gms=64*1024*1024;async function KBl(e,t,r={}){let{size:n}=r,{stat:a,cpath:o,sri:l}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));if(a.size>Gms)return Fms(o,a.size,l,new xms).concat();let A=await z7e.readFile(o,{encoding:null});if(a.size!==A.length)throw qBl(a.size,A.length);if(!_jr.checkData(A,l))throw $Bl(l,o);return A}var Fms=(e,t,r,n)=>(n.push(new JBl.ReadStream(e,{size:t,readSize:Gms}),_jr.integrityStream({integrity:r,size:t})),n);cFe.exports.stream=Zms;cFe.exports.readStream=Zms;function Zms(e,t,r={}){let{size:n}=r,a=new xms;return Promise.resolve().then(async()=>{let{stat:o,cpath:l,sri:A}=await q7e(e,t,async(f,I)=>({stat:n?{size:n}:await z7e.stat(f),cpath:f,sri:I}));return Fms(l,o.size,A,a)}).catch(o=>a.emit("error",o)),a}cFe.exports.copy=jBl;function jBl(e,t,r){return q7e(e,t,n=>z7e.copyFile(n,r))}cFe.exports.hasContent=zBl;async function zBl(e,t){if(!t)return!1;try{return await q7e(e,t,async(r,n)=>{let a=await z7e.stat(r);return{size:a.size,sri:n,stat:a}})}catch(r){if(r.code==="ENOENT")return!1;if(r.code==="EPERM"){if(process.platform!=="win32")throw r;return!1}}}async function q7e(e,t,r){let n=_jr.parse(t),a=n.pickAlgorithm(),o=n[a];if(o.length<=1){let l=UBl(e,o[0]);return r(l,o[0])}else{let l=await Promise.all(o.map(async I=>{try{return await q7e(e,I,r)}catch(C){return C.code==="ENOENT"?Object.assign(new Error("No matching content found for "+n.toString()),{code:"ENOENT"}):C}})),A=l.find(I=>!(I instanceof Error));if(A)return A;let f=l.find(I=>I.code==="ENOENT");throw f||l.find(I=>I instanceof Error)}}function qBl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function $Bl(e,t){let r=new Error(`Integrity verification failed for ${e} (${t})`);return r.code="EINTEGRITY",r.sri=e,r.path=t,r}});var Wms=H((jig,lre)=>{"use strict";var Lms=J8r(),{Minipass:Vms}=rF(),Pms=zGe(),N0e=eFe(),cre=U7e(),D0e=yjr();async function ewl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get(e,t,r);if(l&&a!==!1)return{metadata:l.entry.metadata,data:l.data,integrity:l.entry.integrity,size:l.entry.size};let A=await N0e.find(e,t,r);if(!A)throw new N0e.NotFoundError(e,t);let f=await D0e(e,A.integrity,{integrity:n,size:o});return a&&cre.put(e,A,f,r),{data:f,metadata:A.metadata,size:A.size,integrity:A.integrity}}lre.exports=ewl;async function twl(e,t,r={}){let{integrity:n,memoize:a,size:o}=r,l=cre.get.byDigest(e,t,r);if(l&&a!==!1)return l;let A=await D0e(e,t,{integrity:n,size:o});return a&&cre.put.byDigest(e,t,A,r),A}lre.exports.byDigest=twl;var rwl=e=>{let t=new Vms;return t.on("newListener",function(r,n){r==="metadata"&&n(e.entry.metadata),r==="integrity"&&n(e.entry.integrity),r==="size"&&n(e.entry.size)}),t.end(e.data),t};function nwl(e,t,r={}){let{memoize:n,size:a}=r,o=cre.get(e,t,r);if(o&&n!==!1)return rwl(o);let l=new Pms;return Promise.resolve().then(async()=>{let A=await N0e.find(e,t);if(!A)throw new N0e.NotFoundError(e,t);l.emit("metadata",A.metadata),l.emit("integrity",A.integrity),l.emit("size",A.size),l.on("newListener",function(I,C){I==="metadata"&&C(A.metadata),I==="integrity"&&C(A.integrity),I==="size"&&C(A.size)});let f=D0e.readStream(e,A.integrity,{...r,size:typeof a!="number"?A.size:a});if(n){let I=new Lms.PassThrough;I.on("collect",C=>cre.put(e,A,C,r)),l.unshift(I)}return l.unshift(f),l}).catch(A=>l.emit("error",A)),l}lre.exports.stream=nwl;function iwl(e,t,r={}){let{memoize:n}=r,a=cre.get.byDigest(e,t,r);if(a&&n!==!1){let o=new Vms;return o.end(a),o}else{let o=D0e.readStream(e,t,r);if(!n)return o;let l=new Lms.PassThrough;return l.on("collect",A=>cre.put.byDigest(e,t,A,r)),new Pms(o,l)}}lre.exports.stream.byDigest=iwl;function swl(e,t,r={}){let{memoize:n}=r,a=cre.get(e,t,r);return a&&n!==!1?Promise.resolve(a.entry):N0e.find(e,t)}lre.exports.info=swl;async function owl(e,t,r,n={}){let a=await N0e.find(e,t,n);if(!a)throw new N0e.NotFoundError(e,t);return await D0e.copy(e,a.integrity,r,n),{metadata:a.metadata,size:a.size,integrity:a.integrity}}lre.exports.copy=owl;async function awl(e,t,r,n={}){return await D0e.copy(e,t,r,n),t}lre.exports.copy.byDigest=awl;lre.exports.hasContent=D0e.hasContent});var Qms=H((zig,vjr)=>{"use strict";var Oms=wt("events"),cwl=qGe(),eze=wt("fs/promises"),{moveFile:lwl}=uZt(),{Minipass:uwl}=rF(),Mms=zGe(),gwl=sZt(),bjr=wt("path"),Ejr=Jte(),Awl=ejr(),dwl=vZt();vjr.exports=pwl;var $7e=new Map;async function pwl(e,t,r={}){let{algorithms:n,size:a,integrity:o}=r;if(typeof a=="number"&&t.length!==a)throw mwl(a,t.length);let l=Ejr.fromData(t,n?{algorithms:n}:{});if(o&&!Ejr.checkData(t,o,r))throw Cwl(o,l);for(let A in l){let f=await Hms(e,r),I=l[A].toString();try{await eze.writeFile(f.target,t,{flag:"wx"}),await Yms(f,e,I,r)}finally{f.moved||await eze.rm(f.target,{recursive:!0,force:!0})}}return{integrity:l,size:t.length}}vjr.exports.stream=fwl;var Sjr=class extends gwl{constructor(t,r){super(),this.opts=r,this.cache=t,this.inputStream=new uwl,this.inputStream.on("error",n=>this.emit("error",n)),this.inputStream.on("drain",()=>this.emit("drain")),this.handleContentP=null}write(t,r,n){return this.handleContentP||(this.handleContentP=Iwl(this.inputStream,this.cache,this.opts),this.handleContentP.catch(a=>this.emit("error",a))),this.inputStream.write(t,r,n)}flush(t){this.inputStream.end(()=>{if(!this.handleContentP){let r=new Error("Cache input stream was empty");return r.code="ENODATA",Promise.reject(r).catch(t)}this.handleContentP.then(r=>{r.integrity&&this.emit("integrity",r.integrity),r.size!==null&&this.emit("size",r.size),t()},r=>t(r))})}};function fwl(e,t={}){return new Sjr(e,t)}async function Iwl(e,t,r){let n=await Hms(t,r);try{let a=await hwl(e,t,n.target,r);return await Yms(n,t,a.integrity,r),a}finally{n.moved||await eze.rm(n.target,{recursive:!0,force:!0})}}async function hwl(e,t,r,n){let a=new dwl.WriteStream(r,{flags:"wx"});if(n.integrityEmitter){let[I,C]=await Promise.all([Oms.once(n.integrityEmitter,"integrity").then(b=>b[0]),Oms.once(n.integrityEmitter,"size").then(b=>b[0]),new Mms(e,a).promise()]);return{integrity:I,size:C}}let o,l,A=Ejr.integrityStream({integrity:n.integrity,algorithms:n.algorithms,size:n.size});return A.on("integrity",I=>{o=I}),A.on("size",I=>{l=I}),await new Mms(e,A,a).promise(),{integrity:o,size:l}}async function Hms(e,t){let r=Awl(bjr.join(e,"tmp"),t.tmpPrefix);return await eze.mkdir(bjr.dirname(r),{recursive:!0}),{target:r,moved:!1}}async function Yms(e,t,r){let n=cwl(t,r),a=bjr.dirname(n);return $7e.has(n)||$7e.set(n,eze.mkdir(a,{recursive:!0}).then(async()=>(await lwl(e.target,n,{overwrite:!1}),e.moved=!0,e.moved)).catch(o=>{if(!o.message.startsWith("The destination file exists"))throw Object.assign(o,{code:"EEXIST"})}).finally(()=>{$7e.delete(n)})),$7e.get(n)}function mwl(e,t){let r=new Error(`Bad data size: expected inserted data to be ${e} bytes, but got ${t} instead`);return r.expected=e,r.found=t,r.code="EBADSIZE",r}function Cwl(e,t){let r=new Error(`Integrity check failed: Wanted: ${e} - Found: ${t}`);return r.code="EINTEGRITY",r.expected=e,r.found=t,r}});var jms=H((zig,Bjr)=>{"use strict";var Xms=eFe(),Jms=U7e(),Ums=Qms(),Cwl=sZt(),{PassThrough:_wl}=J8r(),ywl=zGe(),Kms=e=>({algorithms:["sha512"],...e});Bjr.exports=bwl;async function bwl(e,t,r,n={}){let{memoize:a}=n;n=Kms(n);let o=await Ums(e,r,n),l=await Xms.insert(e,t,o.integrity,{...n,size:o.size});return a&&Jms.put(e,l,r,n),o.integrity}Bjr.exports.stream=Ewl;function Ewl(e,t,r={}){let{memoize:n}=r;r=Kms(r);let a,o,l,A,f=new ywl;if(n){let C=new _wl().on("collect",b=>{A=b});f.push(C)}let I=Ums.stream(e,r).on("integrity",C=>{a=C}).on("size",C=>{o=C}).on("error",C=>{l=C});return f.push(I),f.push(new Cwl({async flush(){if(!l){let C=await Xms.insert(e,t,a,{...r,size:o});n&&A&&Jms.put(e,C,A,r),f.emit("integrity",a),f.emit("size",o)}}})),f}});var wjr=H((qig,eCs)=>{"use strict";eCs.exports=qms;function qms(e,t,r){e instanceof RegExp&&(e=zms(e,r)),t instanceof RegExp&&(t=zms(t,r));var n=$ms(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function zms(e,t){var r=t.match(e);return r?r[0]:null}qms.range=$ms;function $ms(e,t,r){var n,a,o,l,A,f=r.indexOf(e),I=r.indexOf(t,f+1),C=f;if(f>=0&&I>0){if(e===t)return[f,I];for(n=[],o=r.length;C>=0&&!A;)C==f?(n.push(C),f=r.indexOf(e,C+1)):n.length==1?A=[n.pop(),I]:(a=n.pop(),a=0?f:I;n.length&&(A=[o,l])}return A}});var cCs=H(($ig,aCs)=>{var tCs=wjr();aCs.exports=Bwl;var rCs="\0SLASH"+Math.random()+"\0",nCs="\0OPEN"+Math.random()+"\0",Rjr="\0CLOSE"+Math.random()+"\0",iCs="\0COMMA"+Math.random()+"\0",sCs="\0PERIOD"+Math.random()+"\0";function Tjr(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function Swl(e){return e.split("\\\\").join(rCs).split("\\{").join(nCs).split("\\}").join(Rjr).split("\\,").join(iCs).split("\\.").join(sCs)}function vwl(e){return e.split(rCs).join("\\").split(nCs).join("{").split(Rjr).join("}").split(iCs).join(",").split(sCs).join(".")}function oCs(e){if(!e)return[""];var t=[],r=tCs("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=oCs(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function Bwl(e){return e?(e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),tze(Swl(e),!0).map(vwl)):[]}function wwl(e){return"{"+e+"}"}function Twl(e){return/^-?0\d/.test(e)}function Rwl(e,t){return e<=t}function Nwl(e,t){return e>=t}function tze(e,t){var r=[],n=tCs("{","}",e);if(!n)return[e];var a=n.pre,o=n.post.length?tze(n.post,!1):[""];if(/\$$/.test(n.pre))for(var l=0;l=0;if(!C&&!b)return n.post.match(/,.*\}/)?(e=n.pre+"{"+n.body+Rjr+n.post,tze(e)):[e];var E;if(C)E=n.body.split(/\.\./);else if(E=oCs(n.body),E.length===1&&(E=tze(E[0],!1).map(wwl),E.length===1))return o.map(function(De){return n.pre+E[0]+De});var N;if(C){var B=Tjr(E[0]),F=Tjr(E[1]),Q=Math.max(E[0].length,E[1].length),X=E.length==3?Math.abs(Tjr(E[2])):1,ae=Rwl,ne=F0){var be=new Array(de+1).join("0");fe<0?ue="-"+be+ue.slice(1):ue=be+ue}}N.push(ue)}}else{N=[];for(var Se=0;Se{"use strict";Object.defineProperty(BZt,"__esModule",{value:!0});BZt.assertValidPattern=void 0;var Dwl=1024*64,kwl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>Dwl)throw new TypeError("pattern is too long")};BZt.assertValidPattern=kwl});var gCs=H(wZt=>{"use strict";Object.defineProperty(wZt,"__esModule",{value:!0});wZt.parseClass=void 0;var xwl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},rze=e=>e.replace(/[[\]\\-]/g,"\\$&"),Gwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),uCs=e=>e.join(""),Fwl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(rze(b)+"-"+rze(F)):F===b&&n.push(rze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(rze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(rze(F)),o++}if(C{"use strict";Object.defineProperty(TZt,"__esModule",{value:!0});TZt.unescape=void 0;var Zwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");TZt.unescape=Zwl});var kjr=H(kZt=>{"use strict";Object.defineProperty(kZt,"__esModule",{value:!0});kZt.AST=void 0;var Lwl=gCs(),NZt=RZt(),Vwl=new Set(["!","?","+","*","@"]),ACs=e=>Vwl.has(e),Pwl="(?!(?:^|/)\\.\\.?(?:$|/))",DZt="(?!\\.)",Wwl=new Set(["[","."]),Owl=new Set(["..","."]),Mwl=new Set("().*{}+?[]^$\\!"),Hwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Djr="[^/]",dCs=Djr+"*?",pCs=Djr+"+?",Njr=class e{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?e.#d(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Owl.has(this.#r[0]))){let B=Wwl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?Pwl:Q?DZt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,NZt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#I(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString();return this.#r=[f],this.type=null,this.#t=void 0,[f,(0,NZt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!DZt?"":this.#I(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?DZt:"")+pCs;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?DZt:"")+dCs+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,NZt.unescape)(o),this.#t=!!this.#t,this.#n]}#I(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#d(t,r,n=!1){let a=!1,o="",l=!1;for(let A=0;A{"use strict";Object.defineProperty(xZt,"__esModule",{value:!0});xZt.escape=void 0;var Ywl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");xZt.escape=Ywl});var Hue=H(cd=>{"use strict";var Qwl=cd&&cd.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cd,"__esModule",{value:!0});cd.unescape=cd.escape=cd.AST=cd.Minimatch=cd.match=cd.makeRe=cd.braceExpand=cd.defaults=cd.filter=cd.GLOBSTAR=cd.sep=cd.minimatch=void 0;var Xwl=Qwl(cCs()),GZt=lCs(),hCs=kjr(),Jwl=xjr(),Uwl=RZt(),Kwl=(e,t,r={})=>((0,GZt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new k0e(t,r).match(e));cd.minimatch=Kwl;var jwl=/^\*+([^+@!?\*\[\(]*)$/,zwl=e=>t=>!t.startsWith(".")&&t.endsWith(e),qwl=e=>t=>t.endsWith(e),$wl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),eTl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),tTl=/^\*+\.\*+$/,rTl=e=>!e.startsWith(".")&&e.includes("."),nTl=e=>e!=="."&&e!==".."&&e.includes("."),iTl=/^\.\*+$/,sTl=e=>e!=="."&&e!==".."&&e.startsWith("."),oTl=/^\*+$/,aTl=e=>e.length!==0&&!e.startsWith("."),cTl=e=>e.length!==0&&e!=="."&&e!=="..",lTl=/^\?+([^+@!?\*\[\(]*)?$/,uTl=([e,t=""])=>{let r=mCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},gTl=([e,t=""])=>{let r=CCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},ATl=([e,t=""])=>{let r=CCs([e]);return t?n=>r(n)&&n.endsWith(t):r},dTl=([e,t=""])=>{let r=mCs([e]);return t?n=>r(n)&&n.endsWith(t):r},mCs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},CCs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},_Cs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",fCs={win32:{sep:"\\"},posix:{sep:"/"}};cd.sep=_Cs==="win32"?fCs.win32.sep:fCs.posix.sep;cd.minimatch.sep=cd.sep;cd.GLOBSTAR=Symbol("globstar **");cd.minimatch.GLOBSTAR=cd.GLOBSTAR;var pTl="[^/]",fTl=pTl+"*?",ITl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",hTl="(?:(?!(?:\\/|^)\\.).)*?",mTl=(e,t={})=>r=>(0,cd.minimatch)(r,e,t);cd.filter=mTl;cd.minimatch.filter=cd.filter;var OH=(e,t={})=>Object.assign({},e,t),CTl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return cd.minimatch;let t=cd.minimatch;return Object.assign((n,a,o={})=>t(n,a,OH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,OH(e,o))}static defaults(a){return t.defaults(OH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,OH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,OH(e,o))}},unescape:(n,a={})=>t.unescape(n,OH(e,a)),escape:(n,a={})=>t.escape(n,OH(e,a)),filter:(n,a={})=>t.filter(n,OH(e,a)),defaults:n=>t.defaults(OH(e,n)),makeRe:(n,a={})=>t.makeRe(n,OH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,OH(e,a)),match:(n,a,o={})=>t.match(n,a,OH(e,o)),sep:t.sep,GLOBSTAR:cd.GLOBSTAR})};cd.defaults=CTl;cd.minimatch.defaults=cd.defaults;var _Tl=(e,t={})=>((0,GZt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,Xwl.default)(e));cd.braceExpand=_Tl;cd.minimatch.braceExpand=cd.braceExpand;var yTl=(e,t={})=>new k0e(e,t).makeRe();cd.makeRe=yTl;cd.minimatch.makeRe=cd.makeRe;var bTl=(e,t,r={})=>{let n=new k0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};cd.match=bTl;cd.minimatch.match=cd.match;var ICs=/[?*]|[+@!]\(.*?\)|\[|\]/,ETl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,r={}){(0,GZt.assertValidPattern)(t),r=r||{},this.options=r,this.pattern=t,this.platform=r.platform||_Cs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!ICs.test(o[2]))&&!ICs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;ane?r=r.slice(ce):ne>ce&&(t=t.slice(ne)))}}let{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:r}),this.debug("matchOne",t.length,r.length);for(var l=0,A=0,f=t.length,I=r.length;l{"use strict";var Xms=eFe(),Jms=U7e(),Ums=Qms(),_wl=sZt(),{PassThrough:ywl}=J8r(),bwl=zGe(),Kms=e=>({algorithms:["sha512"],...e});Bjr.exports=Ewl;async function Ewl(e,t,r,n={}){let{memoize:a}=n;n=Kms(n);let o=await Ums(e,r,n),l=await Xms.insert(e,t,o.integrity,{...n,size:o.size});return a&&Jms.put(e,l,r,n),o.integrity}Bjr.exports.stream=Swl;function Swl(e,t,r={}){let{memoize:n}=r;r=Kms(r);let a,o,l,A,f=new bwl;if(n){let C=new ywl().on("collect",b=>{A=b});f.push(C)}let I=Ums.stream(e,r).on("integrity",C=>{a=C}).on("size",C=>{o=C}).on("error",C=>{l=C});return f.push(I),f.push(new _wl({async flush(){if(!l){let C=await Xms.insert(e,t,a,{...r,size:o});n&&A&&Jms.put(e,C,A,r),f.emit("integrity",a),f.emit("size",o)}}})),f}});var wjr=H(($ig,eCs)=>{"use strict";eCs.exports=qms;function qms(e,t,r){e instanceof RegExp&&(e=zms(e,r)),t instanceof RegExp&&(t=zms(t,r));var n=$ms(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function zms(e,t){var r=t.match(e);return r?r[0]:null}qms.range=$ms;function $ms(e,t,r){var n,a,o,l,A,f=r.indexOf(e),I=r.indexOf(t,f+1),C=f;if(f>=0&&I>0){if(e===t)return[f,I];for(n=[],o=r.length;C>=0&&!A;)C==f?(n.push(C),f=r.indexOf(e,C+1)):n.length==1?A=[n.pop(),I]:(a=n.pop(),a=0?f:I;n.length&&(A=[o,l])}return A}});var cCs=H((esg,aCs)=>{var tCs=wjr();aCs.exports=wwl;var rCs="\0SLASH"+Math.random()+"\0",nCs="\0OPEN"+Math.random()+"\0",Rjr="\0CLOSE"+Math.random()+"\0",iCs="\0COMMA"+Math.random()+"\0",sCs="\0PERIOD"+Math.random()+"\0";function Tjr(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function vwl(e){return e.split("\\\\").join(rCs).split("\\{").join(nCs).split("\\}").join(Rjr).split("\\,").join(iCs).split("\\.").join(sCs)}function Bwl(e){return e.split(rCs).join("\\").split(nCs).join("{").split(Rjr).join("}").split(iCs).join(",").split(sCs).join(".")}function oCs(e){if(!e)return[""];var t=[],r=tCs("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=oCs(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function wwl(e){return e?(e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),tze(vwl(e),!0).map(Bwl)):[]}function Twl(e){return"{"+e+"}"}function Rwl(e){return/^-?0\d/.test(e)}function Nwl(e,t){return e<=t}function Dwl(e,t){return e>=t}function tze(e,t){var r=[],n=tCs("{","}",e);if(!n)return[e];var a=n.pre,o=n.post.length?tze(n.post,!1):[""];if(/\$$/.test(n.pre))for(var l=0;l=0;if(!C&&!b)return n.post.match(/,.*\}/)?(e=n.pre+"{"+n.body+Rjr+n.post,tze(e)):[e];var E;if(C)E=n.body.split(/\.\./);else if(E=oCs(n.body),E.length===1&&(E=tze(E[0],!1).map(Twl),E.length===1))return o.map(function(De){return n.pre+E[0]+De});var N;if(C){var B=Tjr(E[0]),F=Tjr(E[1]),Q=Math.max(E[0].length,E[1].length),X=E.length==3?Math.abs(Tjr(E[2])):1,ae=Nwl,ne=F0){var be=new Array(de+1).join("0");fe<0?ue="-"+be+ue.slice(1):ue=be+ue}}N.push(ue)}}else{N=[];for(var Se=0;Se{"use strict";Object.defineProperty(BZt,"__esModule",{value:!0});BZt.assertValidPattern=void 0;var kwl=1024*64,xwl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>kwl)throw new TypeError("pattern is too long")};BZt.assertValidPattern=xwl});var gCs=H(wZt=>{"use strict";Object.defineProperty(wZt,"__esModule",{value:!0});wZt.parseClass=void 0;var Gwl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},rze=e=>e.replace(/[[\]\\-]/g,"\\$&"),Fwl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),uCs=e=>e.join(""),Zwl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(rze(b)+"-"+rze(F)):F===b&&n.push(rze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(rze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(rze(F)),o++}if(C{"use strict";Object.defineProperty(TZt,"__esModule",{value:!0});TZt.unescape=void 0;var Lwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");TZt.unescape=Lwl});var kjr=H(kZt=>{"use strict";Object.defineProperty(kZt,"__esModule",{value:!0});kZt.AST=void 0;var Vwl=gCs(),NZt=RZt(),Pwl=new Set(["!","?","+","*","@"]),ACs=e=>Pwl.has(e),Wwl="(?!(?:^|/)\\.\\.?(?:$|/))",DZt="(?!\\.)",Owl=new Set(["[","."]),Mwl=new Set(["..","."]),Hwl=new Set("().*{}+?[]^$\\!"),Ywl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Djr="[^/]",dCs=Djr+"*?",pCs=Djr+"+?",Njr=class e{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?e.#d(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&Mwl.has(this.#r[0]))){let B=Owl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?Wwl:Q?DZt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,NZt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#I(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString();return this.#r=[f],this.type=null,this.#t=void 0,[f,(0,NZt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!DZt?"":this.#I(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?DZt:"")+pCs;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?DZt:"")+dCs+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,NZt.unescape)(o),this.#t=!!this.#t,this.#n]}#I(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#d(t,r,n=!1){let a=!1,o="",l=!1;for(let A=0;A{"use strict";Object.defineProperty(xZt,"__esModule",{value:!0});xZt.escape=void 0;var Qwl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");xZt.escape=Qwl});var Hue=H(cd=>{"use strict";var Xwl=cd&&cd.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(cd,"__esModule",{value:!0});cd.unescape=cd.escape=cd.AST=cd.Minimatch=cd.match=cd.makeRe=cd.braceExpand=cd.defaults=cd.filter=cd.GLOBSTAR=cd.sep=cd.minimatch=void 0;var Jwl=Xwl(cCs()),GZt=lCs(),hCs=kjr(),Uwl=xjr(),Kwl=RZt(),jwl=(e,t,r={})=>((0,GZt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new k0e(t,r).match(e));cd.minimatch=jwl;var zwl=/^\*+([^+@!?\*\[\(]*)$/,qwl=e=>t=>!t.startsWith(".")&&t.endsWith(e),$wl=e=>t=>t.endsWith(e),eTl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),tTl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),rTl=/^\*+\.\*+$/,nTl=e=>!e.startsWith(".")&&e.includes("."),iTl=e=>e!=="."&&e!==".."&&e.includes("."),sTl=/^\.\*+$/,oTl=e=>e!=="."&&e!==".."&&e.startsWith("."),aTl=/^\*+$/,cTl=e=>e.length!==0&&!e.startsWith("."),lTl=e=>e.length!==0&&e!=="."&&e!=="..",uTl=/^\?+([^+@!?\*\[\(]*)?$/,gTl=([e,t=""])=>{let r=mCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},ATl=([e,t=""])=>{let r=CCs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},dTl=([e,t=""])=>{let r=CCs([e]);return t?n=>r(n)&&n.endsWith(t):r},pTl=([e,t=""])=>{let r=mCs([e]);return t?n=>r(n)&&n.endsWith(t):r},mCs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},CCs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},_Cs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",fCs={win32:{sep:"\\"},posix:{sep:"/"}};cd.sep=_Cs==="win32"?fCs.win32.sep:fCs.posix.sep;cd.minimatch.sep=cd.sep;cd.GLOBSTAR=Symbol("globstar **");cd.minimatch.GLOBSTAR=cd.GLOBSTAR;var fTl="[^/]",ITl=fTl+"*?",hTl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",mTl="(?:(?!(?:\\/|^)\\.).)*?",CTl=(e,t={})=>r=>(0,cd.minimatch)(r,e,t);cd.filter=CTl;cd.minimatch.filter=cd.filter;var OH=(e,t={})=>Object.assign({},e,t),_Tl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return cd.minimatch;let t=cd.minimatch;return Object.assign((n,a,o={})=>t(n,a,OH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,OH(e,o))}static defaults(a){return t.defaults(OH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,OH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,OH(e,o))}},unescape:(n,a={})=>t.unescape(n,OH(e,a)),escape:(n,a={})=>t.escape(n,OH(e,a)),filter:(n,a={})=>t.filter(n,OH(e,a)),defaults:n=>t.defaults(OH(e,n)),makeRe:(n,a={})=>t.makeRe(n,OH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,OH(e,a)),match:(n,a,o={})=>t.match(n,a,OH(e,o)),sep:t.sep,GLOBSTAR:cd.GLOBSTAR})};cd.defaults=_Tl;cd.minimatch.defaults=cd.defaults;var yTl=(e,t={})=>((0,GZt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,Jwl.default)(e));cd.braceExpand=yTl;cd.minimatch.braceExpand=cd.braceExpand;var bTl=(e,t={})=>new k0e(e,t).makeRe();cd.makeRe=bTl;cd.minimatch.makeRe=cd.makeRe;var ETl=(e,t,r={})=>{let n=new k0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};cd.match=ETl;cd.minimatch.match=cd.match;var ICs=/[?*]|[+@!]\(.*?\)|\[|\]/,STl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),k0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,r={}){(0,GZt.assertValidPattern)(t),r=r||{},this.options=r,this.pattern=t,this.platform=r.platform||_Cs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!ICs.test(o[2]))&&!ICs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;ane?r=r.slice(ce):ne>ce&&(t=t.slice(ne)))}}let{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:r}),this.debug("matchOne",t.length,r.length);for(var l=0,A=0,f=t.length,I=r.length;l>> no match, partial?`,t,E,r,N),E===f))}let F;if(typeof C=="string"?(F=b===C,this.debug("string match",C,b,F)):(F=C.test(b),this.debug("pattern match",C,b,F)),!F)return!1}if(l===f&&A===I)return!0;if(l===f)return n;if(A===I)return l===f-1&&t[l]==="";throw new Error("wtf?")}braceExpand(){return(0,cd.braceExpand)(this.pattern,this.options)}parse(t){(0,GZt.assertValidPattern)(t);let r=this.options;if(t==="**")return cd.GLOBSTAR;if(t==="")return"";let n,a=null;(n=t.match(oTl))?a=r.dot?cTl:aTl:(n=t.match(jwl))?a=(r.nocase?r.dot?eTl:$wl:r.dot?qwl:zwl)(n[1]):(n=t.match(lTl))?a=(r.nocase?r.dot?gTl:uTl:r.dot?ATl:dTl)(n):(n=t.match(tTl))?a=r.dot?nTl:rTl:(n=t.match(iTl))&&(a=sTl);let o=hCs.AST.fromGlob(t,this.options).toMMPattern();return a&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:a}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?fTl:r.dot?ITl:hTl,a=new Set(r.nocase?["i"]:[]),o=t.map(f=>{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?ETl(C):C===cd.GLOBSTAR?cd.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==cd.GLOBSTAR||N===cd.GLOBSTAR||(N===void 0?E!==void 0&&E!==cd.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==cd.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=cd.GLOBSTAR))}),I.filter(C=>C!==cd.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var wTl=z0&&z0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),TTl=z0&&z0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),RTl=z0&&z0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&wTl(t,e,r);return TTl(t,e),t};Object.defineProperty(z0,"__esModule",{value:!0});z0.PathScurry=z0.Path=z0.PathScurryDarwin=z0.PathScurryPosix=z0.PathScurryWin32=z0.PathScurryBase=z0.PathPosix=z0.PathWin32=z0.PathBase=z0.ChildrenCache=z0.ResolveCache=void 0;var BCs=yIe(),PZt=wt("node:path"),NTl=wt("node:url"),ize=wt("fs"),DTl=RTl(wt("node:fs")),kTl=ize.realpathSync.native,FZt=wt("node:fs/promises"),yCs=rF(),sze={lstatSync:ize.lstatSync,readdir:ize.readdir,readdirSync:ize.readdirSync,readlinkSync:ize.readlinkSync,realpathSync:kTl,promises:{lstat:FZt.lstat,readdir:FZt.readdir,readlink:FZt.readlink,realpath:FZt.realpath}},wCs=e=>!e||e===sze||e===DTl?sze:{...sze,...e,promises:{...sze.promises,...e.promises||{}}},TCs=/^\\\\\?\\([a-z]:)\\?$/i,xTl=e=>e.replace(/\//g,"\\").replace(TCs,"$1\\"),GTl=/[\\\/]/,HH=0,RCs=1,NCs=2,G6=4,DCs=6,kCs=8,x0e=10,xCs=12,MH=15,nze=~MH,Gjr=16,bCs=32,oze=64,rJ=128,ZZt=256,VZt=512,ECs=oze|rJ|VZt,FTl=1023,Fjr=e=>e.isFile()?kCs:e.isDirectory()?G6:e.isSymbolicLink()?x0e:e.isCharacterDevice()?NCs:e.isBlockDevice()?DCs:e.isSocket()?xCs:e.isFIFO()?RCs:HH,SCs=new Map,aze=e=>{let t=SCs.get(e);if(t)return t;let r=e.normalize("NFKD");return SCs.set(e,r),r},vCs=new Map,LZt=e=>{let t=vCs.get(e);if(t)return t;let r=aze(e.toLowerCase());return vCs.set(e,r),r},cze=class extends BCs.LRUCache{constructor(){super({max:256})}};z0.ResolveCache=cze;var WZt=class extends BCs.LRUCache{constructor(t=16*1024){super({maxSize:t,sizeCalculation:r=>r.length+1})}};z0.ChildrenCache=WZt;var GCs=Symbol("PathScurry setAsCwd"),fx=class{name;root;roots;parent;nocase;isCWD=!1;#e;#t;get dev(){return this.#t}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#i;get uid(){return this.#i}#s;get gid(){return this.#s}#o;get rdev(){return this.#o}#g;get blksize(){return this.#g}#l;get ino(){return this.#l}#u;get size(){return this.#u}#a;get blocks(){return this.#a}#m;get atimeMs(){return this.#m}#f;get mtimeMs(){return this.#f}#I;get ctimeMs(){return this.#I}#d;get birthtimeMs(){return this.#d}#b;get atime(){return this.#b}#h;get mtime(){return this.#h}#S;get ctime(){return this.#S}#v;get birthtime(){return this.#v}#C;#E;#_;#p;#B;#w;#c;#k;#y;#N;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,r=HH,n,a,o,l,A){this.name=t,this.#C=o?LZt(t):aze(t),this.#c=r&FTl,this.nocase=o,this.roots=a,this.root=n||this,this.#k=l,this.#_=A.fullpath,this.#B=A.relative,this.#w=A.relativePosix,this.parent=A.parent,this.parent?this.#e=this.parent.#e:this.#e=wCs(A.fs)}depth(){return this.#E!==void 0?this.#E:this.parent?this.#E=this.parent.depth()+1:this.#E=0}childrenCache(){return this.#k}resolve(t){if(!t)return this;let r=this.getRootString(t),a=t.substring(r.length).split(this.splitSep);return r?this.getRoot(r).#x(a):this.#x(a)}#x(t){let r=this;for(let n of t)r=r.child(n);return r}children(){let t=this.#k.get(this);if(t)return t;let r=Object.assign([],{provisional:0});return this.#k.set(this,r),this.#c&=~Gjr,r}child(t,r){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let n=this.children(),a=this.nocase?LZt(t):aze(t);for(let f of n)if(f.#C===a)return f;let o=this.parent?this.sep:"",l=this.#_?this.#_+o+t:void 0,A=this.newChild(t,HH,{...r,parent:this,fullpath:l});return this.canReaddir()||(A.#c|=rJ),n.push(A),A}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let t=this.name,r=this.parent;if(!r)return this.#B=this.name;let n=r.relative();return n+(!n||!r.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#w!==void 0)return this.#w;let t=this.name,r=this.parent;if(!r)return this.#w=this.fullpathPosix();let n=r.relativePosix();return n+(!n||!r.parent?"":"/")+t}fullpath(){if(this.#_!==void 0)return this.#_;let t=this.name,r=this.parent;if(!r)return this.#_=this.name;let a=r.fullpath()+(r.parent?this.sep:"")+t;return this.#_=a}fullpathPosix(){if(this.#p!==void 0)return this.#p;if(this.sep==="/")return this.#p=this.fullpath();if(!this.parent){let a=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(a)?this.#p=`//?/${a}`:this.#p=a}let t=this.parent,r=t.fullpathPosix(),n=r+(!r||!t.parent?"":"/")+this.name;return this.#p=n}isUnknown(){return(this.#c&MH)===HH}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#c&MH)===kCs}isDirectory(){return(this.#c&MH)===G6}isCharacterDevice(){return(this.#c&MH)===NCs}isBlockDevice(){return(this.#c&MH)===DCs}isFIFO(){return(this.#c&MH)===RCs}isSocket(){return(this.#c&MH)===xCs}isSymbolicLink(){return(this.#c&x0e)===x0e}lstatCached(){return this.#c&bCs?this:void 0}readlinkCached(){return this.#y}realpathCached(){return this.#N}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#y)return!0;if(!this.parent)return!1;let t=this.#c&MH;return!(t!==HH&&t!==x0e||this.#c&ZZt||this.#c&rJ)}calledReaddir(){return!!(this.#c&Gjr)}isENOENT(){return!!(this.#c&rJ)}isNamed(t){return this.nocase?this.#C===LZt(t):this.#C===aze(t)}async readlink(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=await this.#e.promises.readlink(this.fullpath()),n=(await this.parent.realpath())?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}readlinkSync(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=this.#e.readlinkSync(this.fullpath()),n=this.parent.realpathSync()?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}#G(t){this.#c|=Gjr;for(let r=t.provisional;rn(null,t))}readdirCB(t,r=!1){if(!this.canReaddir()){r?t(null,[]):queueMicrotask(()=>t(null,[]));return}let n=this.children();if(this.calledReaddir()){let o=n.slice(0,n.provisional);r?t(null,o):queueMicrotask(()=>t(null,o));return}if(this.#H.push(t),this.#Y)return;this.#Y=!0;let a=this.fullpath();this.#e.readdir(a,{withFileTypes:!0},(o,l)=>{if(o)this.#L(o.code),n.provisional=0;else{for(let A of l)this.#P(A,n);this.#G(n)}this.#X(n.slice(0,n.provisional))})}#M;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();if(this.#M)await this.#M;else{let n=()=>{};this.#M=new Promise(a=>n=a);try{for(let a of await this.#e.promises.readdir(r,{withFileTypes:!0}))this.#P(a,t);this.#G(t)}catch(a){this.#L(a.code),t.provisional=0}this.#M=void 0,n()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();try{for(let n of this.#e.readdirSync(r,{withFileTypes:!0}))this.#P(n,t);this.#G(t)}catch(n){this.#L(n.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#c&ECs)return!1;let t=MH&this.#c;return t===HH||t===G6||t===x0e}shouldWalk(t,r){return(this.#c&G6)===G6&&!(this.#c&ECs)&&!t.has(this)&&(!r||r(this))}async realpath(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=await this.#e.promises.realpath(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}realpathSync(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=this.#e.realpathSync(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}[GCs](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let r=new Set([]),n=[],a=this;for(;a&&a.parent;)r.add(a),a.#B=n.join(this.sep),a.#w=n.join("/"),a=a.parent,n.push("..");for(a=t;a&&a.parent&&!r.has(a);)a.#B=void 0,a.#w=void 0,a=a.parent}};z0.PathBase=fx;var lze=class e extends fx{sep="\\";splitSep=GTl;constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}getRootString(t){return PZt.win32.parse(t).root}getRoot(t){if(t=xTl(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,n]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=n;return this.roots[t]=new Aze(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(TCs,"$1\\"),t===r}};z0.PathWin32=lze;var uze=class e extends fx{splitSep="/";sep="/";constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}};z0.PathPosix=uze;var gze=class{root;rootPath;roots;cwd;#e;#t;#n;nocase;#r;constructor(t=process.cwd(),r,n,{nocase:a,childrenCacheSize:o=16*1024,fs:l=sze}={}){this.#r=wCs(l),(t instanceof URL||t.startsWith("file://"))&&(t=(0,NTl.fileURLToPath)(t));let A=r.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(A),this.#e=new cze,this.#t=new cze,this.#n=new WZt(o);let f=A.substring(this.rootPath.length).split(n);if(f.length===1&&!f[0]&&f.pop(),a===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=a,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let I=this.root,C=f.length-1,b=r.sep,E=this.rootPath,N=!1;for(let B of f){let F=C--;I=I.child(B,{relative:new Array(F).fill("..").join(b),relativePosix:new Array(F).fill("..").join("/"),fullpath:E+=(N?"":b)+B}),N=!0}this.cwd=I}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#e.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpath();return this.#e.set(r,a),a}resolvePosix(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#t.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpathPosix();return this.#t.set(r,a),a}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n}=r;if(t.canReaddir()){let a=await t.readdir();return n?a:a.map(o=>o.name)}else return[]}readdirSync(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0}=r;return t.canReaddir()?n?t.readdirSync():t.readdirSync().map(a=>a.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.readlink();return r?n:n?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.readlinkSync();return r?n:n?.fullpath()}async realpath(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.realpath();return r?n:n?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.realpathSync();return r?n:n?.fullpath()}async walk(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set,I=(b,E)=>{f.add(b),b.readdirCB((N,B)=>{if(N)return E(N);let F=B.length;if(!F)return E();let Q=()=>{--F===0&&E()};for(let X of B)(!o||o(X))&&A.push(n?X:X.fullpath()),a&&X.isSymbolicLink()?X.realpath().then(ae=>ae?.isUnknown()?ae.lstat():ae).then(ae=>ae?.shouldWalk(f,l)?I(ae,Q):Q()):X.shouldWalk(f,l)?I(X,Q):Q()},!0)},C=t;return new Promise((b,E)=>{I(C,N=>{if(N)return E(N);b(A)})})}walkSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set([t]);for(let I of f){let C=I.readdirSync();for(let b of C){(!o||o(b))&&A.push(n?b:b.fullpath());let E=b;if(b.isSymbolicLink()){if(!(a&&(E=b.realpathSync())))continue;E.isUnknown()&&E.lstatSync()}E.shouldWalk(f,l)&&f.add(E)}}return A}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,r={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd),this.stream(t,r)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r;(!o||o(t))&&(yield n?t:t.fullpath());let A=new Set([t]);for(let f of A){let I=f.readdirSync();for(let C of I){(!o||o(C))&&(yield n?C:C.fullpath());let b=C;if(C.isSymbolicLink()){if(!(a&&(b=C.realpathSync())))continue;b.isUnknown()&&b.lstatSync()}b.shouldWalk(A,l)&&A.add(b)}}}stream(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0});(!o||o(t))&&A.write(n?t:t.fullpath());let f=new Set,I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=(Q,X,ae=!1)=>{if(Q)return A.emit("error",Q);if(a&&!ae){let ne=[];for(let ce of X)ce.isSymbolicLink()&&ne.push(ce.realpath().then(fe=>fe?.isUnknown()?fe.lstat():fe));if(ne.length){Promise.all(ne).then(()=>B(null,X,!0));return}}for(let ne of X)ne&&(!o||o(ne))&&(A.write(n?ne:ne.fullpath())||(E=!0));C--;for(let ne of X){let ce=ne.realpathCached()||ne;ce.shouldWalk(f,l)&&I.push(ce)}E&&!A.flowing?A.once("drain",b):F||b()},F=!0;N.readdirCB(B,!0),F=!1}};return b(),A}streamSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0}),f=new Set;(!o||o(t))&&A.write(n?t:t.fullpath());let I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=N.readdirSync();for(let F of B)(!o||o(F))&&(A.write(n?F:F.fullpath())||(E=!0));C--;for(let F of B){let Q=F;if(F.isSymbolicLink()){if(!(a&&(Q=F.realpathSync())))continue;Q.isUnknown()&&Q.lstatSync()}Q.shouldWalk(f,l)&&I.push(Q)}}E&&!A.flowing&&A.once("drain",b)};return b(),A}chdir(t=this.cwd){let r=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[GCs](r)}};z0.PathScurryBase=gze;var Aze=class extends gze{sep="\\";constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,PZt.win32,"\\",{...r,nocase:n}),this.nocase=n;for(let a=this.cwd;a;a=a.parent)a.nocase=this.nocase}parseRootPath(t){return PZt.win32.parse(t).root.toUpperCase()}newRoot(t){return new lze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}};z0.PathScurryWin32=Aze;var dze=class extends gze{sep="/";constructor(t=process.cwd(),r={}){let{nocase:n=!1}=r;super(t,PZt.posix,"/",{...r,nocase:n}),this.nocase=n}parseRootPath(t){return"/"}newRoot(t){return new uze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}};z0.PathScurryPosix=dze;var OZt=class extends dze{constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,{...r,nocase:n})}};z0.PathScurryDarwin=OZt;z0.Path=process.platform==="win32"?lze:uze;z0.PathScurry=process.platform==="win32"?Aze:process.platform==="darwin"?OZt:dze});var Ljr=H(MZt=>{"use strict";Object.defineProperty(MZt,"__esModule",{value:!0});MZt.Pattern=void 0;var ZTl=Hue(),LTl=e=>e.length>=1,VTl=e=>e.length>=1,Zjr=class e{#e;#t;#n;length;#r;#i;#s;#o;#g;#l;#u=!0;constructor(t,r,n,a){if(!LTl(t))throw new TypeError("empty pattern list");if(!VTl(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,n<0||n>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#t=r,this.#n=n,this.#r=a,this.#n===0){if(this.isUNC()){let[o,l,A,f,...I]=this.#e,[C,b,E,N,...B]=this.#t;I[0]===""&&(I.shift(),B.shift());let F=[o,l,A,f,""].join("/"),Q=[C,b,E,N,""].join("/");this.#e=[F,...I],this.#t=[Q,...B],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[o,...l]=this.#e,[A,...f]=this.#t;l[0]===""&&(l.shift(),f.shift());let I=o+"/",C=A+"/";this.#e=[I,...l],this.#t=[C,...f],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===ZTl.GLOBSTAR}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#s=this.#s||(this.#n===0?this.isAbsolute()?this.#t[0]+this.#t.slice(1).join("/"):this.#t.join("/"):this.#t.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#i!==void 0?this.#i:this.hasMore()?(this.#i=new e(this.#e,this.#t,this.#n+1,this.#r),this.#i.#l=this.#l,this.#i.#g=this.#g,this.#i.#o=this.#o,this.#i):this.#i=null}isUNC(){let t=this.#e;return this.#g!==void 0?this.#g:this.#g=this.#r==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#o!==void 0?this.#o:this.#o=this.#r==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#l!==void 0?this.#l:this.#l=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};MZt.Pattern=Zjr});var Pjr=H(HZt=>{"use strict";Object.defineProperty(HZt,"__esModule",{value:!0});HZt.Ignore=void 0;var ZCs=Hue(),PTl=Ljr(),WTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Vjr=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:r,nocase:n,noext:a,noglobstar:o,platform:l=WTl}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=l,this.mmopts={dot:!0,nobrace:r,nocase:n,noext:a,noglobstar:o,optimizationLevel:2,platform:l,nocomment:!0,nonegate:!0};for(let A of t)this.add(A)}add(t){let r=new ZCs.Minimatch(t,this.mmopts);for(let n=0;n{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});F6.Processor=F6.SubWalks=F6.MatchRecord=F6.HasWalkedCache=void 0;var LCs=Hue(),YZt=class e{store;constructor(t=new Map){this.store=t}copy(){return new e(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let n=t.fullpath(),a=this.store.get(n);a?a.add(r.globString()):this.store.set(n,new Set([r.globString()]))}};F6.HasWalkedCache=YZt;var QZt=class{store=new Map;add(t,r,n){let a=(r?2:0)|(n?1:0),o=this.store.get(t);this.store.set(t,o===void 0?a:a&o)}entries(){return[...this.store.entries()].map(([t,r])=>[t,!!(r&2),!!(r&1)])}};F6.MatchRecord=QZt;var XZt=class{store=new Map;add(t,r){if(!t.canReaddir())return;let n=this.store.get(t);n?n.find(a=>a.globString()===r.globString())||n.push(r):this.store.set(t,[r])}get(t){let r=this.store.get(t);if(!r)throw new Error("attempting to walk unknown path");return r}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}};F6.SubWalks=XZt;var Wjr=class e{hasWalkedCache;matches=new QZt;subwalks=new XZt;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new YZt}processPatterns(t,r){this.patterns=r;let n=r.map(a=>[t,a]);for(let[a,o]of n){this.hasWalkedCache.storeWalked(a,o);let l=o.root(),A=o.isAbsolute()&&this.opts.absolute!==!1;if(l){a=a.resolve(l==="/"&&this.opts.root!==void 0?this.opts.root:l);let b=o.rest();if(b)o=b;else{this.matches.add(a,!0,!1);continue}}if(a.isENOENT())continue;let f,I,C=!1;for(;typeof(f=o.pattern())=="string"&&(I=o.rest());)a=a.resolve(f),o=I,C=!0;if(f=o.pattern(),I=o.rest(),C){if(this.hasWalkedCache.hasWalked(a,o))continue;this.hasWalkedCache.storeWalked(a,o)}if(typeof f=="string"){let b=f===".."||f===""||f===".";this.matches.add(a.resolve(f),A,b);continue}else if(f===LCs.GLOBSTAR){(!a.isSymbolicLink()||this.follow||o.checkFollowGlobstar())&&this.subwalks.add(a,o);let b=I?.pattern(),E=I?.rest();if(!I||(b===""||b===".")&&!E)this.matches.add(a,A,b===""||b===".");else if(b===".."){let N=a.parent||a;E?this.hasWalkedCache.hasWalked(N,E)||this.subwalks.add(N,E):this.matches.add(N,A,!0)}}else f instanceof RegExp&&this.subwalks.add(a,o)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new e(this.opts,this.hasWalkedCache)}filterEntries(t,r){let n=this.subwalks.get(t),a=this.child();for(let o of r)for(let l of n){let A=l.isAbsolute(),f=l.pattern(),I=l.rest();f===LCs.GLOBSTAR?a.testGlobstar(o,l,I,A):f instanceof RegExp?a.testRegExp(o,f,I,A):a.testString(o,f,I,A)}return a}testGlobstar(t,r,n,a){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,a,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(n&&r.checkFollowGlobstar()?this.subwalks.add(t,n):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),n){let o=n.pattern();if(typeof o=="string"&&o!==".."&&o!==""&&o!==".")this.testString(t,o,n.rest(),a);else if(o===".."){let l=t.parent||t;this.subwalks.add(l,n)}else o instanceof RegExp&&this.testRegExp(t,o,n.rest(),a)}}testRegExp(t,r,n,a){r.test(t.name)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}testString(t,r,n,a){t.isNamed(r)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}};F6.Processor=Wjr});var OCs=H(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});Yue.GlobStream=Yue.GlobWalker=Yue.GlobUtil=void 0;var OTl=rF(),PCs=Pjr(),WCs=VCs(),MTl=(e,t)=>typeof e=="string"?new PCs.Ignore([e],t):Array.isArray(e)?new PCs.Ignore(e,t):e,pze=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#t;#n;signal;maxDepth;includeChildMatches;constructor(t,r,n){if(this.patterns=t,this.path=r,this.opts=n,this.#n=!n.posix&&n.platform==="win32"?"\\":"/",this.includeChildMatches=n.includeChildMatches!==!1,(n.ignore||!this.includeChildMatches)&&(this.#t=MTl(n.ignore??[],n),!this.includeChildMatches&&typeof this.#t.add!="function")){let a="cannot ignore child matches, ignore lacks add() method.";throw new Error(a)}this.maxDepth=n.maxDepth||1/0,n.signal&&(this.signal=n.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#r(t){return this.seen.has(t)||!!this.#t?.ignored?.(t)}#i(t){return!!this.#t?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#e.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#e.push(t):t())}async matchCheck(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||await t.realpath(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=await o.realpath();l&&(l.isUnknown()||this.opts.stat)&&await l.lstat()}return this.matchCheckTest(o,r)}matchCheckTest(t,r){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!r||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||t.realpathSync(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=o.realpathSync();l&&(l?.isUnknown()||this.opts.stat)&&l.lstatSync()}return this.matchCheckTest(o,r)}matchFinish(t,r){if(this.#r(t))return;if(!this.includeChildMatches&&this.#t?.add){let o=`${t.relativePosix()}/**`;this.#t.add(o)}let n=this.opts.absolute===void 0?r:this.opts.absolute;this.seen.add(t);let a=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(n){let o=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(o+a)}else{let o=this.opts.posix?t.relativePosix():t.relative(),l=this.opts.dotRelative&&!o.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(o?l+o+a:"."+a)}}async match(t,r,n){let a=await this.matchCheck(t,n);a&&this.matchFinish(a,r)}matchSync(t,r,n){let a=this.matchCheckSync(t,n);a&&this.matchFinish(a,r)}walkCB(t,r,n){this.signal?.aborted&&n(),this.walkCB2(t,r,new WCs.Processor(this.opts),n)}walkCB2(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirCached();A.calledReaddir()?this.walkCB3(A,f,n,l):A.readdirCB((I,C)=>this.walkCB3(A,C,n,l),!0)}l()}walkCB3(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let[A,f]of n.subwalks.entries())o++,this.walkCB2(A,f,n.child(),l);l()}walkCBSync(t,r,n){this.signal?.aborted&&n(),this.walkCB2Sync(t,r,new WCs.Processor(this.opts),n)}walkCB2Sync(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2Sync(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirSync();this.walkCB3Sync(A,f,n,l)}l()}walkCB3Sync(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let[A,f]of n.subwalks.entries())o++,this.walkCB2Sync(A,f,n.child(),l);l()}};Yue.GlobUtil=pze;var Ojr=class extends pze{matches=new Set;constructor(t,r,n){super(t,r,n)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,r)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?r(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}};Yue.GlobWalker=Ojr;var Mjr=class extends pze{results;constructor(t,r,n){super(t,r,n),this.results=new OTl.Minipass({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};Yue.GlobStream=Mjr});var Yjr=H(KZt=>{"use strict";Object.defineProperty(KZt,"__esModule",{value:!0});KZt.Glob=void 0;var HTl=Hue(),YTl=wt("node:url"),JZt=FCs(),QTl=Ljr(),UZt=OCs(),XTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Hjr=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,r){if(!r)throw new TypeError("glob options required");if(this.withFileTypes=!!r.withFileTypes,this.signal=r.signal,this.follow=!!r.follow,this.dot=!!r.dot,this.dotRelative=!!r.dotRelative,this.nodir=!!r.nodir,this.mark=!!r.mark,r.cwd?(r.cwd instanceof URL||r.cwd.startsWith("file://"))&&(r.cwd=(0,YTl.fileURLToPath)(r.cwd)):this.cwd="",this.cwd=r.cwd||"",this.root=r.root,this.magicalBraces=!!r.magicalBraces,this.nobrace=!!r.nobrace,this.noext=!!r.noext,this.realpath=!!r.realpath,this.absolute=r.absolute,this.includeChildMatches=r.includeChildMatches!==!1,this.noglobstar=!!r.noglobstar,this.matchBase=!!r.matchBase,this.maxDepth=typeof r.maxDepth=="number"?r.maxDepth:1/0,this.stat=!!r.stat,this.ignore=r.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(f=>f.replace(/\\/g,"/"))),this.matchBase){if(r.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(f=>f.includes("/")?f:`./**/${f}`)}if(this.pattern=t,this.platform=r.platform||XTl,this.opts={...r,platform:this.platform},r.scurry){if(this.scurry=r.scurry,r.nocase!==void 0&&r.nocase!==r.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let f=r.platform==="win32"?JZt.PathScurryWin32:r.platform==="darwin"?JZt.PathScurryDarwin:r.platform?JZt.PathScurryPosix:JZt.PathScurry;this.scurry=new f(this.cwd,{nocase:r.nocase,fs:r.fs})}this.nocase=this.scurry.nocase;let n=this.platform==="darwin"||this.platform==="win32",a={...r,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:n,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},o=this.pattern.map(f=>new HTl.Minimatch(f,a)),[l,A]=o.reduce((f,I)=>(f[0].push(...I.set),f[1].push(...I.globParts),f),[[],[]]);this.patterns=l.map((f,I)=>{let C=A[I];if(!C)throw new Error("invalid pattern object");return new QTl.Pattern(f,C,0,this.platform)})}async walk(){return[...await new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};KZt.Glob=Hjr});var Qjr=H(jZt=>{"use strict";Object.defineProperty(jZt,"__esModule",{value:!0});jZt.hasMagic=void 0;var JTl=Hue(),UTl=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new JTl.Minimatch(r,t).hasMagic())return!0;return!1};jZt.hasMagic=UTl});var QCs=H(lC=>{"use strict";Object.defineProperty(lC,"__esModule",{value:!0});lC.glob=lC.sync=lC.iterate=lC.iterateSync=lC.stream=lC.streamSync=lC.Ignore=lC.hasMagic=lC.Glob=lC.unescape=lC.escape=void 0;lC.globStreamSync=fze;lC.globStream=Xjr;lC.globSync=Jjr;lC.globIterateSync=Ize;lC.globIterate=Ujr;var MCs=Hue(),G0e=Yjr(),KTl=Qjr(),YCs=Hue();Object.defineProperty(lC,"escape",{enumerable:!0,get:function(){return YCs.escape}});Object.defineProperty(lC,"unescape",{enumerable:!0,get:function(){return YCs.unescape}});var jTl=Yjr();Object.defineProperty(lC,"Glob",{enumerable:!0,get:function(){return jTl.Glob}});var zTl=Qjr();Object.defineProperty(lC,"hasMagic",{enumerable:!0,get:function(){return zTl.hasMagic}});var qTl=Pjr();Object.defineProperty(lC,"Ignore",{enumerable:!0,get:function(){return qTl.Ignore}});function fze(e,t={}){return new G0e.Glob(e,t).streamSync()}function Xjr(e,t={}){return new G0e.Glob(e,t).stream()}function Jjr(e,t={}){return new G0e.Glob(e,t).walkSync()}async function HCs(e,t={}){return new G0e.Glob(e,t).walk()}function Ize(e,t={}){return new G0e.Glob(e,t).iterateSync()}function Ujr(e,t={}){return new G0e.Glob(e,t).iterate()}lC.streamSync=fze;lC.stream=Object.assign(Xjr,{sync:fze});lC.iterateSync=Ize;lC.iterate=Object.assign(Ujr,{sync:Ize});lC.sync=Object.assign(Jjr,{stream:fze,iterate:Ize});lC.glob=Object.assign(HCs,{glob:HCs,globSync:Jjr,sync:lC.sync,globStream:Xjr,stream:lC.stream,globStreamSync:fze,streamSync:lC.streamSync,globIterate:Ujr,iterate:lC.iterate,globIterateSync:Ize,iterateSync:lC.iterateSync,Glob:G0e.Glob,hasMagic:KTl.hasMagic,escape:MCs.escape,unescape:MCs.unescape});lC.glob.glob=lC.glob});var Kjr=H((Isg,JCs)=>{"use strict";var{glob:$Tl}=QCs(),XCs=wt("path"),eRl=e=>e.split(XCs.win32.sep).join(XCs.posix.sep);JCs.exports=(e,t)=>$Tl(eRl(e),t)});var KCs=H((hsg,UCs)=>{"use strict";var tRl=wt("fs/promises"),rRl=qGe(),{hasContent:nRl}=yjr();UCs.exports=iRl;async function iRl(e,t){let r=await nRl(e,t);return r&&r.sri?(await tRl.rm(rRl(e,r.sri),{recursive:!0,force:!0}),!0):!1}});var zCs=H((msg,hze)=>{"use strict";var{rm:sRl}=wt("fs/promises"),oRl=Kjr(),aRl=eFe(),jjr=U7e(),cRl=wt("path"),lRl=KCs();hze.exports=jCs;hze.exports.entry=jCs;function jCs(e,t,r){return jjr.clearMemoized(),aRl.delete(e,t,r)}hze.exports.content=uRl;function uRl(e,t){return jjr.clearMemoized(),lRl(e,t)}hze.exports.all=gRl;async function gRl(e){jjr.clearMemoized();let t=await oRl(cRl.join(e,"*(content-*|index-*)"),{silent:!0,nosort:!0});return Promise.all(t.map(r=>sRl(r,{recursive:!0,force:!0})))}});var $Cs=H((Csg,e6r)=>{"use strict";var{mkdir:ARl,readFile:dRl,rm:qjr,stat:$jr,truncate:pRl,writeFile:fRl}=wt("fs/promises"),qCs=qGe(),IRl=vZt(),hRl=Kjr(),lFe=eFe(),zZt=wt("path"),zjr=Jte(),mRl=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),CRl=e=>({concurrency:20,log:{silly(){}},...e});e6r.exports=_Rl;async function _Rl(e,t){t=CRl(t),t.log.silly("verify","verifying cache at",e);let r=[yRl,ERl,SRl,BRl,TRl,RRl,bRl],n={};for(let a of r){let o=a.name,l=new Date,A=await a(e,t);A&&Object.keys(A).forEach(I=>{n[I]=A[I]});let f=new Date;n.runTime||(n.runTime={}),n.runTime[o]=f-l}return n.runTime.total=n.endTime-n.startTime,t.log.silly("verify","verification finished for",e,"in",`${n.runTime.total}ms`),n}async function yRl(){return{startTime:new Date}}async function bRl(){return{endTime:new Date}}async function ERl(e,t){return t.log.silly("verify","fixing cache permissions"),await ARl(e,{recursive:!0}),null}async function SRl(e,t){t.log.silly("verify","garbage collecting content");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=lFe.lsStream(e),a=new Set;n.on("data",f=>{if(t.filter&&!t.filter(f))return;let I=zjr.parse(f.integrity);for(let C in I)a.add(I[C].toString())}),await new Promise((f,I)=>{n.on("end",f).on("error",I)});let o=qCs.contentDir(e),l=await hRl(zZt.join(o,"**"),{follow:!1,nodir:!0,nosort:!0}),A={verifiedContent:0,reclaimedCount:0,reclaimedSize:0,badContentCount:0,keptSize:0};return await r(l,async f=>{let I=f.split(/[/\\]/),C=I.slice(I.length-3).join(""),b=I[I.length-4],E=zjr.fromHex(C,b);if(a.has(E.toString())){let N=await vRl(f,E);N.valid?(A.verifiedContent++,A.keptSize+=N.size):(A.reclaimedCount++,A.badContentCount++,A.reclaimedSize+=N.size)}else{A.reclaimedCount++;let N=await $jr(f);await qjr(f,{recursive:!0,force:!0}),A.reclaimedSize+=N.size}return A},{concurrency:t.concurrency}),A}async function vRl(e,t){let r={};try{let{size:n}=await $jr(e);r.size=n,r.valid=!0,await zjr.checkStream(new IRl.ReadStream(e),t)}catch(n){if(n.code==="ENOENT")return{size:0,valid:!1};if(n.code!=="EINTEGRITY")throw n;await qjr(e,{recursive:!0,force:!0}),r.valid=!1}return r}async function BRl(e,t){t.log.silly("verify","rebuilding index");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=await lFe.ls(e),a={missingContent:0,rejectedEntries:0,totalEntries:0},o={};for(let l in n)if(mRl(n,l)){let A=lFe.hashKey(l),f=n[l],I=t.filter&&!t.filter(f);I&&a.rejectedEntries++,o[A]&&!I?o[A].push(f):o[A]&&I||(I?(o[A]=[],o[A]._path=lFe.bucketPath(e,l)):(o[A]=[f],o[A]._path=lFe.bucketPath(e,l)))}return await r(Object.keys(o),l=>wRl(e,o[l],a,t),{concurrency:t.concurrency}),a}async function wRl(e,t,r){await pRl(t._path);for(let n of t){let a=qCs(e,n.integrity);try{await $jr(a),await lFe.insert(e,n.key,n.integrity,{metadata:n.metadata,size:n.size,time:n.time}),r.totalEntries++}catch(o){if(o.code==="ENOENT")r.rejectedEntries++,r.missingContent++;else throw o}}}function TRl(e,t){return t.log.silly("verify","cleaning tmp directory"),qjr(zZt.join(e,"tmp"),{recursive:!0,force:!0})}async function RRl(e,t){let r=zZt.join(e,"_lastverified");return t.log.silly("verify","writing verifile to "+r),fRl(r,`${Date.now()}`)}e6r.exports.lastRun=NRl;async function NRl(e){let t=await dRl(zZt.join(e,"_lastverified"),{encoding:"utf8"});return new Date(+t)}});var t_s=H((_sg,r6r)=>{"use strict";var{withTempDir:DRl}=uZt(),e_s=wt("fs/promises"),t6r=wt("path");r6r.exports.mkdir=kRl;async function kRl(e,t={}){let{tmpPrefix:r}=t,n=t6r.join(e,"tmp");await e_s.mkdir(n,{recursive:!0,owner:"inherit"});let a=`${n}${t6r.sep}${r||""}`;return e_s.mkdtemp(a,{owner:"inherit"})}r6r.exports.withTmp=xRl;function xRl(e,t,r){return r||(r=t,t={}),DRl(t6r.join(e,"tmp"),r,t)}});var s_s=H((ysg,rE)=>{"use strict";var Que=Wms(),r_s=jms(),n6r=zCs(),n_s=$Cs(),{clearMemoized:GRl}=U7e(),i_s=t_s(),qZt=eFe();rE.exports.index={};rE.exports.index.compact=qZt.compact;rE.exports.index.insert=qZt.insert;rE.exports.ls=qZt.ls;rE.exports.ls.stream=qZt.lsStream;rE.exports.get=Que;rE.exports.get.byDigest=Que.byDigest;rE.exports.get.stream=Que.stream;rE.exports.get.stream.byDigest=Que.stream.byDigest;rE.exports.get.copy=Que.copy;rE.exports.get.copy.byDigest=Que.copy.byDigest;rE.exports.get.info=Que.info;rE.exports.get.hasContent=Que.hasContent;rE.exports.put=r_s;rE.exports.put.stream=r_s.stream;rE.exports.rm=n6r.entry;rE.exports.rm.all=n6r.all;rE.exports.rm.entry=rE.exports.rm;rE.exports.rm.content=n6r.content;rE.exports.clearMemoized=GRl;rE.exports.tmp={};rE.exports.tmp.mkdir=i_s.mkdir;rE.exports.tmp.withTmp=i_s.withTmp;rE.exports.verify=n_s;rE.exports.verify.lastRun=n_s.lastRun});var s6r=H((bsg,o_s)=>{"use strict";var FRl=zGe(),i6r=class extends FRl{#e=[];#t=new Map;constructor(t,...r){super(),this.#e=t.events,r.length&&this.push(...r)}on(t,r){return this.#e.includes(t)&&this.#t.has(t)?r(...this.#t.get(t)):super.on(t,r)}emit(t,...r){return this.#e.includes(t)&&this.#t.set(t,r),super.emit(t,...r)}};o_s.exports=i6r});var c_s=H((Esg,a_s)=>{var{URL:ZRl,format:LRl}=wt("url"),VRl={auth:!1,fragment:!1,search:!0,unicode:!1},PRl=e=>{let t=new ZRl(e.url);return`make-fetch-happen:request-cache:${LRl(t,VRl)}`};a_s.exports=PRl});var g_s=H((Ssg,u_s)=>{"use strict";function l_s(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function WRl(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=void 0),t!=null&&(r.code=t);try{return l_s(e,r)}catch{r.message=e.message,r.stack=e.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(e)),l_s(new a,r)}}u_s.exports=WRl});var d_s=H((vsg,A_s)=>{function YH(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}A_s.exports=YH;YH.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};YH.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};YH.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var n=this,a=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r);return this._options.unref&&a.unref(),!0};YH.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};YH.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};YH.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};YH.prototype.start=YH.prototype.try;YH.prototype.errors=function(){return this._errors};YH.prototype.attempts=function(){return this._attempts};YH.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=a,r=l)}return t}});var p_s=H(F0e=>{var ORl=d_s();F0e.operation=function(e){var t=F0e.timeouts(e);return new ORl(t,{forever:e&&e.forever,unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};F0e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],a=0;a{f_s.exports=p_s()});var o6r=H((Tsg,m_s)=>{"use strict";var MRl=g_s(),HRl=I_s(),YRl=Object.prototype.hasOwnProperty;function h_s(e){return e&&e.code==="EPROMISERETRY"&&YRl.call(e,"retried")}function QRl(e,t){var r,n;return typeof e=="object"&&typeof t=="function"&&(r=t,t=e,e=r),n=HRl.operation(t),new Promise(function(a,o){n.attempt(function(l){Promise.resolve().then(function(){return e(function(A){throw h_s(A)&&(A=A.retried),MRl(new Error("Retrying"),"EPROMISERETRY",{retried:A})},l)}).then(a,function(A){h_s(A)&&(A=A.retried,n.retry(A||new Error))||o(A)})})})}m_s.exports=QRl});var a6r=H((Rsg,C_s)=>{var XRl=Symbol("proc-log.meta");C_s.exports={META:XRl,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...e){return process.emit("output","standard",...e)},error:function(...e){return process.emit("output","error",...e)},buffer:function(...e){return process.emit("output","buffer",...e)},flush:function(...e){return process.emit("output","flush",...e)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...e){return process.emit("log","error",...e)},notice:function(...e){return process.emit("log","notice",...e)},warn:function(...e){return process.emit("log","warn",...e)},info:function(...e){return process.emit("log","info",...e)},verbose:function(...e){return process.emit("log","verbose",...e)},http:function(...e){return process.emit("log","http",...e)},silly:function(...e){return process.emit("log","silly",...e)},timing:function(...e){return process.emit("log","timing",...e)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(e,t){process.emit("time","start",e);function r(){return process.emit("time","end",e)}if(typeof t=="function"){let n=t();return n&&n.finally?n.finally(r):(r(),n)}return r},end:function(e){return process.emit("time","end",e)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(e){process.emit("input","start");function t(){return process.emit("input","end")}if(typeof e=="function"){let r=e();return r&&r.finally?r.finally(t):(t(),r)}return t},end:function(){return process.emit("input","end")},read:function(...e){let t,r,n=new Promise((a,o)=>{t=a,r=o});return process.emit("input","read",t,r,...e),n}}}});var c6r=H((Nsg,y_s)=>{"use strict";var{LRUCache:JRl}=yIe(),__s=wt("dns"),$Zt=new JRl({max:50}),URl=({family:e=0,hints:t=__s.ADDRCONFIG,all:r=!1,verbatim:n=void 0,ttl:a=5*60*1e3,lookup:o=__s.lookup})=>({hints:t,lookup:(l,...A)=>{let f=A.pop(),I=A[0]??{},C={family:e,hints:t,all:r,verbatim:n,...typeof I=="number"?{family:I}:I},b=JSON.stringify({hostname:l,...C});if($Zt.has(b)){let E=$Zt.get(b);return process.nextTick(f,null,...E)}o(l,C,(E,...N)=>E?f(E):($Zt.set(b,N,{ttl:a}),f(null,...N)))}});y_s.exports={cache:$Zt,getOptions:URl}});var l6r=H((Dsg,E_s)=>{"use strict";var KRl=c6r(),jRl=e=>{let t=parseInt(e.family??"0",10),r=e.keepAlive??!0,n={keepAliveMsecs:r?1e3:void 0,maxSockets:e.maxSockets??15,maxTotalSockets:1/0,maxFreeSockets:r?256:void 0,scheduling:"fifo",...e,family:t,keepAlive:r,timeouts:{idle:e.timeout??0,connection:0,response:0,transfer:0,...e.timeouts},...KRl.getOptions({family:t,...e.dns})};return delete n.timeout,n},b_s=e=>{let t="",r=Object.entries(e).sort((n,a)=>n[0]-a[0]);for(let[n,a]of r)a==null?a="null":a instanceof URL?a=a.toString():typeof a=="object"&&(a=b_s(a)),t+=`${n}:${a}:`;return t},zRl=({secureEndpoint:e,...t})=>b_s({secureEndpoint:!!e,family:t.family,hints:t.hints,localAddress:t.localAddress,strictSsl:e?!!t.rejectUnauthorized:!1,ca:e?t.ca:null,cert:e?t.cert:null,key:e?t.key:null,keepAlive:t.keepAlive,keepAliveMsecs:t.keepAliveMsecs,maxSockets:t.maxSockets,maxTotalSockets:t.maxTotalSockets,maxFreeSockets:t.maxFreeSockets,scheduling:t.scheduling,timeouts:t.timeouts,proxy:t.proxy});E_s.exports={normalizeOptions:jRl,cacheOptions:zRl}});var B_s=H($V=>{"use strict";var qRl=$V&&$V.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),$Rl=$V&&$V.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S_s=$V&&$V.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&qRl(t,e,r);return $Rl(t,e),t};Object.defineProperty($V,"__esModule",{value:!0});$V.req=$V.json=$V.toBuffer=void 0;var eNl=S_s(wt("http")),tNl=S_s(wt("https"));async function v_s(e){let t=0,r=[];for await(let n of e)t+=n.length,r.push(n);return Buffer.concat(r,t)}$V.toBuffer=v_s;async function rNl(e){let r=(await v_s(e)).toString("utf8");try{return JSON.parse(r)}catch(n){let a=n;throw a.message+=` (input: ${r})`,a}}$V.json=rNl;function nNl(e,t={}){let n=((typeof e=="string"?e:e.href).startsWith("https:")?tNl:eNl).request(e,t),a=new Promise((o,l)=>{n.once("response",o).once("error",l).end()});return n.then=a.then.bind(a),n}$V.req=nNl});var mze=H(UO=>{"use strict";var T_s=UO&&UO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),iNl=UO&&UO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),R_s=UO&&UO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&T_s(t,e,r);return iNl(t,e),t},sNl=UO&&UO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T_s(t,e,r)};Object.defineProperty(UO,"__esModule",{value:!0});UO.Agent=void 0;var oNl=R_s(wt("net")),w_s=R_s(wt("http")),aNl=wt("https");sNl(B_s(),UO);var Z6=Symbol("AgentBaseInternalState"),u6r=class extends w_s.Agent{constructor(t){super(t),this[Z6]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(` -`).some(n=>n.indexOf("(https.js:")!==-1||n.indexOf("node:https:")!==-1)}incrementSockets(t){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[t]||(this.sockets[t]=[]);let r=new oNl.Socket({writable:!1});return this.sockets[t].push(r),this.totalSocketCount++,r}decrementSockets(t,r){if(!this.sockets[t]||r===null)return;let n=this.sockets[t],a=n.indexOf(r);a!==-1&&(n.splice(a,1),this.totalSocketCount--,n.length===0&&delete this.sockets[t])}getName(t){return(typeof t.secureEndpoint=="boolean"?t.secureEndpoint:this.isSecureEndpoint(t))?aNl.Agent.prototype.getName.call(this,t):super.getName(t)}createSocket(t,r,n){let a={...r,secureEndpoint:this.isSecureEndpoint(r)},o=this.getName(a),l=this.incrementSockets(o);Promise.resolve().then(()=>this.connect(t,a)).then(A=>{if(this.decrementSockets(o,l),A instanceof w_s.Agent)return A.addRequest(t,a);this[Z6].currentSocket=A,super.createSocket(t,r,n)},A=>{this.decrementSockets(o,l),n(A)})}createConnection(){let t=this[Z6].currentSocket;if(this[Z6].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Z6].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Z6]&&(this[Z6].defaultPort=t)}get protocol(){return this[Z6].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Z6]&&(this[Z6].protocol=t)}};UO.Agent=u6r});var k_s=H(QH=>{"use strict";var cNl=QH&&QH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),lNl=QH&&QH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),D_s=QH&&QH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&cNl(t,e,r);return lNl(t,e),t},uNl=QH&&QH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QH,"__esModule",{value:!0});QH.HttpProxyAgent=void 0;var gNl=D_s(wt("net")),ANl=D_s(wt("tls")),dNl=uNl(uT()),pNl=wt("events"),fNl=mze(),N_s=wt("url"),uFe=(0,dNl.default)("http-proxy-agent"),eLt=class extends fNl.Agent{constructor(t,r){super(r),this.proxy=typeof t=="string"?new N_s.URL(t):t,this.proxyHeaders=r?.headers??{},uFe("Creating new HttpProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?INl(r,"headers"):null,host:n,port:a}}addRequest(t,r){t._header=null,this.setRequestProps(t,r),super.addRequest(t,r)}setRequestProps(t,r){let{proxy:n}=this,a=r.secureEndpoint?"https:":"http:",o=t.getHeader("host")||"localhost",l=`${a}//${o}`,A=new N_s.URL(t.path,l);r.port!==80&&(A.port=String(r.port)),t.path=String(A);let f=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(n.username||n.password){let I=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;f["Proxy-Authorization"]=`Basic ${Buffer.from(I).toString("base64")}`}f["Proxy-Connection"]||(f["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let I of Object.keys(f)){let C=f[I];C&&t.setHeader(I,C)}}async connect(t,r){t._header=null,t.path.includes("://")||this.setRequestProps(t,r);let n,a;uFe("Regenerating stored HTTP header string for request"),t._implicitHeader(),t.outputData&&t.outputData.length>0&&(uFe("Patching connection write() output buffer with updated header"),n=t.outputData[0].data,a=n.indexOf(`\r +>>> no match, partial?`,t,E,r,N),E===f))}let F;if(typeof C=="string"?(F=b===C,this.debug("string match",C,b,F)):(F=C.test(b),this.debug("pattern match",C,b,F)),!F)return!1}if(l===f&&A===I)return!0;if(l===f)return n;if(A===I)return l===f-1&&t[l]==="";throw new Error("wtf?")}braceExpand(){return(0,cd.braceExpand)(this.pattern,this.options)}parse(t){(0,GZt.assertValidPattern)(t);let r=this.options;if(t==="**")return cd.GLOBSTAR;if(t==="")return"";let n,a=null;(n=t.match(aTl))?a=r.dot?lTl:cTl:(n=t.match(zwl))?a=(r.nocase?r.dot?tTl:eTl:r.dot?$wl:qwl)(n[1]):(n=t.match(uTl))?a=(r.nocase?r.dot?ATl:gTl:r.dot?dTl:pTl)(n):(n=t.match(rTl))?a=r.dot?iTl:nTl:(n=t.match(sTl))&&(a=oTl);let o=hCs.AST.fromGlob(t,this.options).toMMPattern();return a&&typeof o=="object"&&Reflect.defineProperty(o,"test",{value:a}),o}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let t=this.set;if(!t.length)return this.regexp=!1,this.regexp;let r=this.options,n=r.noglobstar?ITl:r.dot?hTl:mTl,a=new Set(r.nocase?["i"]:[]),o=t.map(f=>{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?STl(C):C===cd.GLOBSTAR?cd.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==cd.GLOBSTAR||N===cd.GLOBSTAR||(N===void 0?E!==void 0&&E!==cd.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==cd.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=cd.GLOBSTAR))}),I.filter(C=>C!==cd.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var TTl=z0&&z0.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),RTl=z0&&z0.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),NTl=z0&&z0.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&TTl(t,e,r);return RTl(t,e),t};Object.defineProperty(z0,"__esModule",{value:!0});z0.PathScurry=z0.Path=z0.PathScurryDarwin=z0.PathScurryPosix=z0.PathScurryWin32=z0.PathScurryBase=z0.PathPosix=z0.PathWin32=z0.PathBase=z0.ChildrenCache=z0.ResolveCache=void 0;var BCs=yIe(),PZt=wt("node:path"),DTl=wt("node:url"),ize=wt("fs"),kTl=NTl(wt("node:fs")),xTl=ize.realpathSync.native,FZt=wt("node:fs/promises"),yCs=rF(),sze={lstatSync:ize.lstatSync,readdir:ize.readdir,readdirSync:ize.readdirSync,readlinkSync:ize.readlinkSync,realpathSync:xTl,promises:{lstat:FZt.lstat,readdir:FZt.readdir,readlink:FZt.readlink,realpath:FZt.realpath}},wCs=e=>!e||e===sze||e===kTl?sze:{...sze,...e,promises:{...sze.promises,...e.promises||{}}},TCs=/^\\\\\?\\([a-z]:)\\?$/i,GTl=e=>e.replace(/\//g,"\\").replace(TCs,"$1\\"),FTl=/[\\\/]/,HH=0,RCs=1,NCs=2,G6=4,DCs=6,kCs=8,x0e=10,xCs=12,MH=15,nze=~MH,Gjr=16,bCs=32,oze=64,rJ=128,ZZt=256,VZt=512,ECs=oze|rJ|VZt,ZTl=1023,Fjr=e=>e.isFile()?kCs:e.isDirectory()?G6:e.isSymbolicLink()?x0e:e.isCharacterDevice()?NCs:e.isBlockDevice()?DCs:e.isSocket()?xCs:e.isFIFO()?RCs:HH,SCs=new Map,aze=e=>{let t=SCs.get(e);if(t)return t;let r=e.normalize("NFKD");return SCs.set(e,r),r},vCs=new Map,LZt=e=>{let t=vCs.get(e);if(t)return t;let r=aze(e.toLowerCase());return vCs.set(e,r),r},cze=class extends BCs.LRUCache{constructor(){super({max:256})}};z0.ResolveCache=cze;var WZt=class extends BCs.LRUCache{constructor(t=16*1024){super({maxSize:t,sizeCalculation:r=>r.length+1})}};z0.ChildrenCache=WZt;var GCs=Symbol("PathScurry setAsCwd"),fx=class{name;root;roots;parent;nocase;isCWD=!1;#e;#t;get dev(){return this.#t}#n;get mode(){return this.#n}#r;get nlink(){return this.#r}#i;get uid(){return this.#i}#s;get gid(){return this.#s}#o;get rdev(){return this.#o}#g;get blksize(){return this.#g}#l;get ino(){return this.#l}#u;get size(){return this.#u}#a;get blocks(){return this.#a}#m;get atimeMs(){return this.#m}#f;get mtimeMs(){return this.#f}#I;get ctimeMs(){return this.#I}#d;get birthtimeMs(){return this.#d}#b;get atime(){return this.#b}#h;get mtime(){return this.#h}#S;get ctime(){return this.#S}#v;get birthtime(){return this.#v}#C;#E;#_;#p;#B;#w;#c;#k;#y;#N;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(t,r=HH,n,a,o,l,A){this.name=t,this.#C=o?LZt(t):aze(t),this.#c=r&ZTl,this.nocase=o,this.roots=a,this.root=n||this,this.#k=l,this.#_=A.fullpath,this.#B=A.relative,this.#w=A.relativePosix,this.parent=A.parent,this.parent?this.#e=this.parent.#e:this.#e=wCs(A.fs)}depth(){return this.#E!==void 0?this.#E:this.parent?this.#E=this.parent.depth()+1:this.#E=0}childrenCache(){return this.#k}resolve(t){if(!t)return this;let r=this.getRootString(t),a=t.substring(r.length).split(this.splitSep);return r?this.getRoot(r).#x(a):this.#x(a)}#x(t){let r=this;for(let n of t)r=r.child(n);return r}children(){let t=this.#k.get(this);if(t)return t;let r=Object.assign([],{provisional:0});return this.#k.set(this,r),this.#c&=~Gjr,r}child(t,r){if(t===""||t===".")return this;if(t==="..")return this.parent||this;let n=this.children(),a=this.nocase?LZt(t):aze(t);for(let f of n)if(f.#C===a)return f;let o=this.parent?this.sep:"",l=this.#_?this.#_+o+t:void 0,A=this.newChild(t,HH,{...r,parent:this,fullpath:l});return this.canReaddir()||(A.#c|=rJ),n.push(A),A}relative(){if(this.isCWD)return"";if(this.#B!==void 0)return this.#B;let t=this.name,r=this.parent;if(!r)return this.#B=this.name;let n=r.relative();return n+(!n||!r.parent?"":this.sep)+t}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#w!==void 0)return this.#w;let t=this.name,r=this.parent;if(!r)return this.#w=this.fullpathPosix();let n=r.relativePosix();return n+(!n||!r.parent?"":"/")+t}fullpath(){if(this.#_!==void 0)return this.#_;let t=this.name,r=this.parent;if(!r)return this.#_=this.name;let a=r.fullpath()+(r.parent?this.sep:"")+t;return this.#_=a}fullpathPosix(){if(this.#p!==void 0)return this.#p;if(this.sep==="/")return this.#p=this.fullpath();if(!this.parent){let a=this.fullpath().replace(/\\/g,"/");return/^[a-z]:\//i.test(a)?this.#p=`//?/${a}`:this.#p=a}let t=this.parent,r=t.fullpathPosix(),n=r+(!r||!t.parent?"":"/")+this.name;return this.#p=n}isUnknown(){return(this.#c&MH)===HH}isType(t){return this[`is${t}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#c&MH)===kCs}isDirectory(){return(this.#c&MH)===G6}isCharacterDevice(){return(this.#c&MH)===NCs}isBlockDevice(){return(this.#c&MH)===DCs}isFIFO(){return(this.#c&MH)===RCs}isSocket(){return(this.#c&MH)===xCs}isSymbolicLink(){return(this.#c&x0e)===x0e}lstatCached(){return this.#c&bCs?this:void 0}readlinkCached(){return this.#y}realpathCached(){return this.#N}readdirCached(){let t=this.children();return t.slice(0,t.provisional)}canReadlink(){if(this.#y)return!0;if(!this.parent)return!1;let t=this.#c&MH;return!(t!==HH&&t!==x0e||this.#c&ZZt||this.#c&rJ)}calledReaddir(){return!!(this.#c&Gjr)}isENOENT(){return!!(this.#c&rJ)}isNamed(t){return this.nocase?this.#C===LZt(t):this.#C===aze(t)}async readlink(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=await this.#e.promises.readlink(this.fullpath()),n=(await this.parent.realpath())?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}readlinkSync(){let t=this.#y;if(t)return t;if(this.canReadlink()&&this.parent)try{let r=this.#e.readlinkSync(this.fullpath()),n=this.parent.realpathSync()?.resolve(r);if(n)return this.#y=n}catch(r){this.#A(r.code);return}}#G(t){this.#c|=Gjr;for(let r=t.provisional;rn(null,t))}readdirCB(t,r=!1){if(!this.canReaddir()){r?t(null,[]):queueMicrotask(()=>t(null,[]));return}let n=this.children();if(this.calledReaddir()){let o=n.slice(0,n.provisional);r?t(null,o):queueMicrotask(()=>t(null,o));return}if(this.#H.push(t),this.#Y)return;this.#Y=!0;let a=this.fullpath();this.#e.readdir(a,{withFileTypes:!0},(o,l)=>{if(o)this.#L(o.code),n.provisional=0;else{for(let A of l)this.#P(A,n);this.#G(n)}this.#X(n.slice(0,n.provisional))})}#M;async readdir(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();if(this.#M)await this.#M;else{let n=()=>{};this.#M=new Promise(a=>n=a);try{for(let a of await this.#e.promises.readdir(r,{withFileTypes:!0}))this.#P(a,t);this.#G(t)}catch(a){this.#L(a.code),t.provisional=0}this.#M=void 0,n()}return t.slice(0,t.provisional)}readdirSync(){if(!this.canReaddir())return[];let t=this.children();if(this.calledReaddir())return t.slice(0,t.provisional);let r=this.fullpath();try{for(let n of this.#e.readdirSync(r,{withFileTypes:!0}))this.#P(n,t);this.#G(t)}catch(n){this.#L(n.code),t.provisional=0}return t.slice(0,t.provisional)}canReaddir(){if(this.#c&ECs)return!1;let t=MH&this.#c;return t===HH||t===G6||t===x0e}shouldWalk(t,r){return(this.#c&G6)===G6&&!(this.#c&ECs)&&!t.has(this)&&(!r||r(this))}async realpath(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=await this.#e.promises.realpath(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}realpathSync(){if(this.#N)return this.#N;if(!((VZt|ZZt|rJ)&this.#c))try{let t=this.#e.realpathSync(this.fullpath());return this.#N=this.resolve(t)}catch{this.#R()}}[GCs](t){if(t===this)return;t.isCWD=!1,this.isCWD=!0;let r=new Set([]),n=[],a=this;for(;a&&a.parent;)r.add(a),a.#B=n.join(this.sep),a.#w=n.join("/"),a=a.parent,n.push("..");for(a=t;a&&a.parent&&!r.has(a);)a.#B=void 0,a.#w=void 0,a=a.parent}};z0.PathBase=fx;var lze=class e extends fx{sep="\\";splitSep=FTl;constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}getRootString(t){return PZt.win32.parse(t).root}getRoot(t){if(t=GTl(t.toUpperCase()),t===this.root.name)return this.root;for(let[r,n]of Object.entries(this.roots))if(this.sameRoot(t,r))return this.roots[t]=n;return this.roots[t]=new Aze(t,this).root}sameRoot(t,r=this.root.name){return t=t.toUpperCase().replace(/\//g,"\\").replace(TCs,"$1\\"),t===r}};z0.PathWin32=lze;var uze=class e extends fx{splitSep="/";sep="/";constructor(t,r=HH,n,a,o,l,A){super(t,r,n,a,o,l,A)}getRootString(t){return t.startsWith("/")?"/":""}getRoot(t){return this.root}newChild(t,r=HH,n={}){return new e(t,r,this.root,this.roots,this.nocase,this.childrenCache(),n)}};z0.PathPosix=uze;var gze=class{root;rootPath;roots;cwd;#e;#t;#n;nocase;#r;constructor(t=process.cwd(),r,n,{nocase:a,childrenCacheSize:o=16*1024,fs:l=sze}={}){this.#r=wCs(l),(t instanceof URL||t.startsWith("file://"))&&(t=(0,DTl.fileURLToPath)(t));let A=r.resolve(t);this.roots=Object.create(null),this.rootPath=this.parseRootPath(A),this.#e=new cze,this.#t=new cze,this.#n=new WZt(o);let f=A.substring(this.rootPath.length).split(n);if(f.length===1&&!f[0]&&f.pop(),a===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=a,this.root=this.newRoot(this.#r),this.roots[this.rootPath]=this.root;let I=this.root,C=f.length-1,b=r.sep,E=this.rootPath,N=!1;for(let B of f){let F=C--;I=I.child(B,{relative:new Array(F).fill("..").join(b),relativePosix:new Array(F).fill("..").join("/"),fullpath:E+=(N?"":b)+B}),N=!0}this.cwd=I}depth(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.depth()}childrenCache(){return this.#n}resolve(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#e.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpath();return this.#e.set(r,a),a}resolvePosix(...t){let r="";for(let o=t.length-1;o>=0;o--){let l=t[o];if(!(!l||l===".")&&(r=r?`${l}/${r}`:l,this.isAbsolute(l)))break}let n=this.#t.get(r);if(n!==void 0)return n;let a=this.cwd.resolve(r).fullpathPosix();return this.#t.set(r,a),a}relative(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relative()}relativePosix(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.relativePosix()}basename(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.name}dirname(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),(t.parent||t).fullpath()}async readdir(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n}=r;if(t.canReaddir()){let a=await t.readdir();return n?a:a.map(o=>o.name)}else return[]}readdirSync(t=this.cwd,r={withFileTypes:!0}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0}=r;return t.canReaddir()?n?t.readdirSync():t.readdirSync().map(a=>a.name):[]}async lstat(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstat()}lstatSync(t=this.cwd){return typeof t=="string"&&(t=this.cwd.resolve(t)),t.lstatSync()}async readlink(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.readlink();return r?n:n?.fullpath()}readlinkSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.readlinkSync();return r?n:n?.fullpath()}async realpath(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=await t.realpath();return r?n:n?.fullpath()}realpathSync(t=this.cwd,{withFileTypes:r}={withFileTypes:!1}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t.withFileTypes,t=this.cwd);let n=t.realpathSync();return r?n:n?.fullpath()}async walk(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set,I=(b,E)=>{f.add(b),b.readdirCB((N,B)=>{if(N)return E(N);let F=B.length;if(!F)return E();let Q=()=>{--F===0&&E()};for(let X of B)(!o||o(X))&&A.push(n?X:X.fullpath()),a&&X.isSymbolicLink()?X.realpath().then(ae=>ae?.isUnknown()?ae.lstat():ae).then(ae=>ae?.shouldWalk(f,l)?I(ae,Q):Q()):X.shouldWalk(f,l)?I(X,Q):Q()},!0)},C=t;return new Promise((b,E)=>{I(C,N=>{if(N)return E(N);b(A)})})}walkSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=[];(!o||o(t))&&A.push(n?t:t.fullpath());let f=new Set([t]);for(let I of f){let C=I.readdirSync();for(let b of C){(!o||o(b))&&A.push(n?b:b.fullpath());let E=b;if(b.isSymbolicLink()){if(!(a&&(E=b.realpathSync())))continue;E.isUnknown()&&E.lstatSync()}E.shouldWalk(f,l)&&f.add(E)}}return A}[Symbol.asyncIterator](){return this.iterate()}iterate(t=this.cwd,r={}){return typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd),this.stream(t,r)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r;(!o||o(t))&&(yield n?t:t.fullpath());let A=new Set([t]);for(let f of A){let I=f.readdirSync();for(let C of I){(!o||o(C))&&(yield n?C:C.fullpath());let b=C;if(C.isSymbolicLink()){if(!(a&&(b=C.realpathSync())))continue;b.isUnknown()&&b.lstatSync()}b.shouldWalk(A,l)&&A.add(b)}}}stream(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0});(!o||o(t))&&A.write(n?t:t.fullpath());let f=new Set,I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=(Q,X,ae=!1)=>{if(Q)return A.emit("error",Q);if(a&&!ae){let ne=[];for(let ce of X)ce.isSymbolicLink()&&ne.push(ce.realpath().then(fe=>fe?.isUnknown()?fe.lstat():fe));if(ne.length){Promise.all(ne).then(()=>B(null,X,!0));return}}for(let ne of X)ne&&(!o||o(ne))&&(A.write(n?ne:ne.fullpath())||(E=!0));C--;for(let ne of X){let ce=ne.realpathCached()||ne;ce.shouldWalk(f,l)&&I.push(ce)}E&&!A.flowing?A.once("drain",b):F||b()},F=!0;N.readdirCB(B,!0),F=!1}};return b(),A}streamSync(t=this.cwd,r={}){typeof t=="string"?t=this.cwd.resolve(t):t instanceof fx||(r=t,t=this.cwd);let{withFileTypes:n=!0,follow:a=!1,filter:o,walkFilter:l}=r,A=new yCs.Minipass({objectMode:!0}),f=new Set;(!o||o(t))&&A.write(n?t:t.fullpath());let I=[t],C=0,b=()=>{let E=!1;for(;!E;){let N=I.shift();if(!N){C===0&&A.end();return}C++,f.add(N);let B=N.readdirSync();for(let F of B)(!o||o(F))&&(A.write(n?F:F.fullpath())||(E=!0));C--;for(let F of B){let Q=F;if(F.isSymbolicLink()){if(!(a&&(Q=F.realpathSync())))continue;Q.isUnknown()&&Q.lstatSync()}Q.shouldWalk(f,l)&&I.push(Q)}}E&&!A.flowing&&A.once("drain",b)};return b(),A}chdir(t=this.cwd){let r=this.cwd;this.cwd=typeof t=="string"?this.cwd.resolve(t):t,this.cwd[GCs](r)}};z0.PathScurryBase=gze;var Aze=class extends gze{sep="\\";constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,PZt.win32,"\\",{...r,nocase:n}),this.nocase=n;for(let a=this.cwd;a;a=a.parent)a.nocase=this.nocase}parseRootPath(t){return PZt.win32.parse(t).root.toUpperCase()}newRoot(t){return new lze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")||t.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(t)}};z0.PathScurryWin32=Aze;var dze=class extends gze{sep="/";constructor(t=process.cwd(),r={}){let{nocase:n=!1}=r;super(t,PZt.posix,"/",{...r,nocase:n}),this.nocase=n}parseRootPath(t){return"/"}newRoot(t){return new uze(this.rootPath,G6,void 0,this.roots,this.nocase,this.childrenCache(),{fs:t})}isAbsolute(t){return t.startsWith("/")}};z0.PathScurryPosix=dze;var OZt=class extends dze{constructor(t=process.cwd(),r={}){let{nocase:n=!0}=r;super(t,{...r,nocase:n})}};z0.PathScurryDarwin=OZt;z0.Path=process.platform==="win32"?lze:uze;z0.PathScurry=process.platform==="win32"?Aze:process.platform==="darwin"?OZt:dze});var Ljr=H(MZt=>{"use strict";Object.defineProperty(MZt,"__esModule",{value:!0});MZt.Pattern=void 0;var LTl=Hue(),VTl=e=>e.length>=1,PTl=e=>e.length>=1,Zjr=class e{#e;#t;#n;length;#r;#i;#s;#o;#g;#l;#u=!0;constructor(t,r,n,a){if(!VTl(t))throw new TypeError("empty pattern list");if(!PTl(r))throw new TypeError("empty glob list");if(r.length!==t.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=t.length,n<0||n>=this.length)throw new TypeError("index out of range");if(this.#e=t,this.#t=r,this.#n=n,this.#r=a,this.#n===0){if(this.isUNC()){let[o,l,A,f,...I]=this.#e,[C,b,E,N,...B]=this.#t;I[0]===""&&(I.shift(),B.shift());let F=[o,l,A,f,""].join("/"),Q=[C,b,E,N,""].join("/");this.#e=[F,...I],this.#t=[Q,...B],this.length=this.#e.length}else if(this.isDrive()||this.isAbsolute()){let[o,...l]=this.#e,[A,...f]=this.#t;l[0]===""&&(l.shift(),f.shift());let I=o+"/",C=A+"/";this.#e=[I,...l],this.#t=[C,...f],this.length=this.#e.length}}}pattern(){return this.#e[this.#n]}isString(){return typeof this.#e[this.#n]=="string"}isGlobstar(){return this.#e[this.#n]===LTl.GLOBSTAR}isRegExp(){return this.#e[this.#n]instanceof RegExp}globString(){return this.#s=this.#s||(this.#n===0?this.isAbsolute()?this.#t[0]+this.#t.slice(1).join("/"):this.#t.join("/"):this.#t.slice(this.#n).join("/"))}hasMore(){return this.length>this.#n+1}rest(){return this.#i!==void 0?this.#i:this.hasMore()?(this.#i=new e(this.#e,this.#t,this.#n+1,this.#r),this.#i.#l=this.#l,this.#i.#g=this.#g,this.#i.#o=this.#o,this.#i):this.#i=null}isUNC(){let t=this.#e;return this.#g!==void 0?this.#g:this.#g=this.#r==="win32"&&this.#n===0&&t[0]===""&&t[1]===""&&typeof t[2]=="string"&&!!t[2]&&typeof t[3]=="string"&&!!t[3]}isDrive(){let t=this.#e;return this.#o!==void 0?this.#o:this.#o=this.#r==="win32"&&this.#n===0&&this.length>1&&typeof t[0]=="string"&&/^[a-z]:$/i.test(t[0])}isAbsolute(){let t=this.#e;return this.#l!==void 0?this.#l:this.#l=t[0]===""&&t.length>1||this.isDrive()||this.isUNC()}root(){let t=this.#e[0];return typeof t=="string"&&this.isAbsolute()&&this.#n===0?t:""}checkFollowGlobstar(){return!(this.#n===0||!this.isGlobstar()||!this.#u)}markFollowGlobstar(){return this.#n===0||!this.isGlobstar()||!this.#u?!1:(this.#u=!1,!0)}};MZt.Pattern=Zjr});var Pjr=H(HZt=>{"use strict";Object.defineProperty(HZt,"__esModule",{value:!0});HZt.Ignore=void 0;var ZCs=Hue(),WTl=Ljr(),OTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Vjr=class{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(t,{nobrace:r,nocase:n,noext:a,noglobstar:o,platform:l=OTl}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=l,this.mmopts={dot:!0,nobrace:r,nocase:n,noext:a,noglobstar:o,optimizationLevel:2,platform:l,nocomment:!0,nonegate:!0};for(let A of t)this.add(A)}add(t){let r=new ZCs.Minimatch(t,this.mmopts);for(let n=0;n{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});F6.Processor=F6.SubWalks=F6.MatchRecord=F6.HasWalkedCache=void 0;var LCs=Hue(),YZt=class e{store;constructor(t=new Map){this.store=t}copy(){return new e(new Map(this.store))}hasWalked(t,r){return this.store.get(t.fullpath())?.has(r.globString())}storeWalked(t,r){let n=t.fullpath(),a=this.store.get(n);a?a.add(r.globString()):this.store.set(n,new Set([r.globString()]))}};F6.HasWalkedCache=YZt;var QZt=class{store=new Map;add(t,r,n){let a=(r?2:0)|(n?1:0),o=this.store.get(t);this.store.set(t,o===void 0?a:a&o)}entries(){return[...this.store.entries()].map(([t,r])=>[t,!!(r&2),!!(r&1)])}};F6.MatchRecord=QZt;var XZt=class{store=new Map;add(t,r){if(!t.canReaddir())return;let n=this.store.get(t);n?n.find(a=>a.globString()===r.globString())||n.push(r):this.store.set(t,[r])}get(t){let r=this.store.get(t);if(!r)throw new Error("attempting to walk unknown path");return r}entries(){return this.keys().map(t=>[t,this.store.get(t)])}keys(){return[...this.store.keys()].filter(t=>t.canReaddir())}};F6.SubWalks=XZt;var Wjr=class e{hasWalkedCache;matches=new QZt;subwalks=new XZt;patterns;follow;dot;opts;constructor(t,r){this.opts=t,this.follow=!!t.follow,this.dot=!!t.dot,this.hasWalkedCache=r?r.copy():new YZt}processPatterns(t,r){this.patterns=r;let n=r.map(a=>[t,a]);for(let[a,o]of n){this.hasWalkedCache.storeWalked(a,o);let l=o.root(),A=o.isAbsolute()&&this.opts.absolute!==!1;if(l){a=a.resolve(l==="/"&&this.opts.root!==void 0?this.opts.root:l);let b=o.rest();if(b)o=b;else{this.matches.add(a,!0,!1);continue}}if(a.isENOENT())continue;let f,I,C=!1;for(;typeof(f=o.pattern())=="string"&&(I=o.rest());)a=a.resolve(f),o=I,C=!0;if(f=o.pattern(),I=o.rest(),C){if(this.hasWalkedCache.hasWalked(a,o))continue;this.hasWalkedCache.storeWalked(a,o)}if(typeof f=="string"){let b=f===".."||f===""||f===".";this.matches.add(a.resolve(f),A,b);continue}else if(f===LCs.GLOBSTAR){(!a.isSymbolicLink()||this.follow||o.checkFollowGlobstar())&&this.subwalks.add(a,o);let b=I?.pattern(),E=I?.rest();if(!I||(b===""||b===".")&&!E)this.matches.add(a,A,b===""||b===".");else if(b===".."){let N=a.parent||a;E?this.hasWalkedCache.hasWalked(N,E)||this.subwalks.add(N,E):this.matches.add(N,A,!0)}}else f instanceof RegExp&&this.subwalks.add(a,o)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new e(this.opts,this.hasWalkedCache)}filterEntries(t,r){let n=this.subwalks.get(t),a=this.child();for(let o of r)for(let l of n){let A=l.isAbsolute(),f=l.pattern(),I=l.rest();f===LCs.GLOBSTAR?a.testGlobstar(o,l,I,A):f instanceof RegExp?a.testRegExp(o,f,I,A):a.testString(o,f,I,A)}return a}testGlobstar(t,r,n,a){if((this.dot||!t.name.startsWith("."))&&(r.hasMore()||this.matches.add(t,a,!1),t.canReaddir()&&(this.follow||!t.isSymbolicLink()?this.subwalks.add(t,r):t.isSymbolicLink()&&(n&&r.checkFollowGlobstar()?this.subwalks.add(t,n):r.markFollowGlobstar()&&this.subwalks.add(t,r)))),n){let o=n.pattern();if(typeof o=="string"&&o!==".."&&o!==""&&o!==".")this.testString(t,o,n.rest(),a);else if(o===".."){let l=t.parent||t;this.subwalks.add(l,n)}else o instanceof RegExp&&this.testRegExp(t,o,n.rest(),a)}}testRegExp(t,r,n,a){r.test(t.name)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}testString(t,r,n,a){t.isNamed(r)&&(n?this.subwalks.add(t,n):this.matches.add(t,a,!1))}};F6.Processor=Wjr});var OCs=H(Yue=>{"use strict";Object.defineProperty(Yue,"__esModule",{value:!0});Yue.GlobStream=Yue.GlobWalker=Yue.GlobUtil=void 0;var MTl=rF(),PCs=Pjr(),WCs=VCs(),HTl=(e,t)=>typeof e=="string"?new PCs.Ignore([e],t):Array.isArray(e)?new PCs.Ignore(e,t):e,pze=class{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#e=[];#t;#n;signal;maxDepth;includeChildMatches;constructor(t,r,n){if(this.patterns=t,this.path=r,this.opts=n,this.#n=!n.posix&&n.platform==="win32"?"\\":"/",this.includeChildMatches=n.includeChildMatches!==!1,(n.ignore||!this.includeChildMatches)&&(this.#t=HTl(n.ignore??[],n),!this.includeChildMatches&&typeof this.#t.add!="function")){let a="cannot ignore child matches, ignore lacks add() method.";throw new Error(a)}this.maxDepth=n.maxDepth||1/0,n.signal&&(this.signal=n.signal,this.signal.addEventListener("abort",()=>{this.#e.length=0}))}#r(t){return this.seen.has(t)||!!this.#t?.ignored?.(t)}#i(t){return!!this.#t?.childrenIgnored?.(t)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let t;for(;!this.paused&&(t=this.#e.shift());)t()}onResume(t){this.signal?.aborted||(this.paused?this.#e.push(t):t())}async matchCheck(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||await t.realpath(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?await t.lstat():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=await o.realpath();l&&(l.isUnknown()||this.opts.stat)&&await l.lstat()}return this.matchCheckTest(o,r)}matchCheckTest(t,r){return t&&(this.maxDepth===1/0||t.depth()<=this.maxDepth)&&(!r||t.canReaddir())&&(!this.opts.nodir||!t.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!t.isSymbolicLink()||!t.realpathCached()?.isDirectory())&&!this.#r(t)?t:void 0}matchCheckSync(t,r){if(r&&this.opts.nodir)return;let n;if(this.opts.realpath){if(n=t.realpathCached()||t.realpathSync(),!n)return;t=n}let o=t.isUnknown()||this.opts.stat?t.lstatSync():t;if(this.opts.follow&&this.opts.nodir&&o?.isSymbolicLink()){let l=o.realpathSync();l&&(l?.isUnknown()||this.opts.stat)&&l.lstatSync()}return this.matchCheckTest(o,r)}matchFinish(t,r){if(this.#r(t))return;if(!this.includeChildMatches&&this.#t?.add){let o=`${t.relativePosix()}/**`;this.#t.add(o)}let n=this.opts.absolute===void 0?r:this.opts.absolute;this.seen.add(t);let a=this.opts.mark&&t.isDirectory()?this.#n:"";if(this.opts.withFileTypes)this.matchEmit(t);else if(n){let o=this.opts.posix?t.fullpathPosix():t.fullpath();this.matchEmit(o+a)}else{let o=this.opts.posix?t.relativePosix():t.relative(),l=this.opts.dotRelative&&!o.startsWith(".."+this.#n)?"."+this.#n:"";this.matchEmit(o?l+o+a:"."+a)}}async match(t,r,n){let a=await this.matchCheck(t,n);a&&this.matchFinish(a,r)}matchSync(t,r,n){let a=this.matchCheckSync(t,n);a&&this.matchFinish(a,r)}walkCB(t,r,n){this.signal?.aborted&&n(),this.walkCB2(t,r,new WCs.Processor(this.opts),n)}walkCB2(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirCached();A.calledReaddir()?this.walkCB3(A,f,n,l):A.readdirCB((I,C)=>this.walkCB3(A,C,n,l),!0)}l()}walkCB3(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||(o++,this.match(A,f,I).then(()=>l()));for(let[A,f]of n.subwalks.entries())o++,this.walkCB2(A,f,n.child(),l);l()}walkCBSync(t,r,n){this.signal?.aborted&&n(),this.walkCB2Sync(t,r,new WCs.Processor(this.opts),n)}walkCB2Sync(t,r,n,a){if(this.#i(t))return a();if(this.signal?.aborted&&a(),this.paused){this.onResume(()=>this.walkCB2Sync(t,r,n,a));return}n.processPatterns(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let A of n.subwalkTargets()){if(this.maxDepth!==1/0&&A.depth()>=this.maxDepth)continue;o++;let f=A.readdirSync();this.walkCB3Sync(A,f,n,l)}l()}walkCB3Sync(t,r,n,a){n=n.filterEntries(t,r);let o=1,l=()=>{--o===0&&a()};for(let[A,f,I]of n.matches.entries())this.#r(A)||this.matchSync(A,f,I);for(let[A,f]of n.subwalks.entries())o++,this.walkCB2Sync(A,f,n.child(),l);l()}};Yue.GlobUtil=pze;var Ojr=class extends pze{matches=new Set;constructor(t,r,n){super(t,r,n)}matchEmit(t){this.matches.add(t)}async walk(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&await this.path.lstat(),await new Promise((t,r)=>{this.walkCB(this.path,this.patterns,()=>{this.signal?.aborted?r(this.signal.reason):t(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}};Yue.GlobWalker=Ojr;var Mjr=class extends pze{results;constructor(t,r,n){super(t,r,n),this.results=new MTl.Minipass({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(t){this.results.write(t),this.results.flowing||this.pause()}stream(){let t=this.path;return t.isUnknown()?t.lstat().then(()=>{this.walkCB(t,this.patterns,()=>this.results.end())}):this.walkCB(t,this.patterns,()=>this.results.end()),this.results}streamSync(){return this.path.isUnknown()&&this.path.lstatSync(),this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}};Yue.GlobStream=Mjr});var Yjr=H(KZt=>{"use strict";Object.defineProperty(KZt,"__esModule",{value:!0});KZt.Glob=void 0;var YTl=Hue(),QTl=wt("node:url"),JZt=FCs(),XTl=Ljr(),UZt=OCs(),JTl=typeof process=="object"&&process&&typeof process.platform=="string"?process.platform:"linux",Hjr=class{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(t,r){if(!r)throw new TypeError("glob options required");if(this.withFileTypes=!!r.withFileTypes,this.signal=r.signal,this.follow=!!r.follow,this.dot=!!r.dot,this.dotRelative=!!r.dotRelative,this.nodir=!!r.nodir,this.mark=!!r.mark,r.cwd?(r.cwd instanceof URL||r.cwd.startsWith("file://"))&&(r.cwd=(0,QTl.fileURLToPath)(r.cwd)):this.cwd="",this.cwd=r.cwd||"",this.root=r.root,this.magicalBraces=!!r.magicalBraces,this.nobrace=!!r.nobrace,this.noext=!!r.noext,this.realpath=!!r.realpath,this.absolute=r.absolute,this.includeChildMatches=r.includeChildMatches!==!1,this.noglobstar=!!r.noglobstar,this.matchBase=!!r.matchBase,this.maxDepth=typeof r.maxDepth=="number"?r.maxDepth:1/0,this.stat=!!r.stat,this.ignore=r.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof t=="string"&&(t=[t]),this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(t=t.map(f=>f.replace(/\\/g,"/"))),this.matchBase){if(r.noglobstar)throw new TypeError("base matching requires globstar");t=t.map(f=>f.includes("/")?f:`./**/${f}`)}if(this.pattern=t,this.platform=r.platform||JTl,this.opts={...r,platform:this.platform},r.scurry){if(this.scurry=r.scurry,r.nocase!==void 0&&r.nocase!==r.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let f=r.platform==="win32"?JZt.PathScurryWin32:r.platform==="darwin"?JZt.PathScurryDarwin:r.platform?JZt.PathScurryPosix:JZt.PathScurry;this.scurry=new f(this.cwd,{nocase:r.nocase,fs:r.fs})}this.nocase=this.scurry.nocase;let n=this.platform==="darwin"||this.platform==="win32",a={...r,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:n,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},o=this.pattern.map(f=>new YTl.Minimatch(f,a)),[l,A]=o.reduce((f,I)=>(f[0].push(...I.set),f[1].push(...I.globParts),f),[[],[]]);this.patterns=l.map((f,I)=>{let C=A[I];if(!C)throw new Error("invalid pattern object");return new XTl.Pattern(f,C,0,this.platform)})}async walk(){return[...await new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new UZt.GlobWalker(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new UZt.GlobStream(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}};KZt.Glob=Hjr});var Qjr=H(jZt=>{"use strict";Object.defineProperty(jZt,"__esModule",{value:!0});jZt.hasMagic=void 0;var UTl=Hue(),KTl=(e,t={})=>{Array.isArray(e)||(e=[e]);for(let r of e)if(new UTl.Minimatch(r,t).hasMagic())return!0;return!1};jZt.hasMagic=KTl});var QCs=H(lC=>{"use strict";Object.defineProperty(lC,"__esModule",{value:!0});lC.glob=lC.sync=lC.iterate=lC.iterateSync=lC.stream=lC.streamSync=lC.Ignore=lC.hasMagic=lC.Glob=lC.unescape=lC.escape=void 0;lC.globStreamSync=fze;lC.globStream=Xjr;lC.globSync=Jjr;lC.globIterateSync=Ize;lC.globIterate=Ujr;var MCs=Hue(),G0e=Yjr(),jTl=Qjr(),YCs=Hue();Object.defineProperty(lC,"escape",{enumerable:!0,get:function(){return YCs.escape}});Object.defineProperty(lC,"unescape",{enumerable:!0,get:function(){return YCs.unescape}});var zTl=Yjr();Object.defineProperty(lC,"Glob",{enumerable:!0,get:function(){return zTl.Glob}});var qTl=Qjr();Object.defineProperty(lC,"hasMagic",{enumerable:!0,get:function(){return qTl.hasMagic}});var $Tl=Pjr();Object.defineProperty(lC,"Ignore",{enumerable:!0,get:function(){return $Tl.Ignore}});function fze(e,t={}){return new G0e.Glob(e,t).streamSync()}function Xjr(e,t={}){return new G0e.Glob(e,t).stream()}function Jjr(e,t={}){return new G0e.Glob(e,t).walkSync()}async function HCs(e,t={}){return new G0e.Glob(e,t).walk()}function Ize(e,t={}){return new G0e.Glob(e,t).iterateSync()}function Ujr(e,t={}){return new G0e.Glob(e,t).iterate()}lC.streamSync=fze;lC.stream=Object.assign(Xjr,{sync:fze});lC.iterateSync=Ize;lC.iterate=Object.assign(Ujr,{sync:Ize});lC.sync=Object.assign(Jjr,{stream:fze,iterate:Ize});lC.glob=Object.assign(HCs,{glob:HCs,globSync:Jjr,sync:lC.sync,globStream:Xjr,stream:lC.stream,globStreamSync:fze,streamSync:lC.streamSync,globIterate:Ujr,iterate:lC.iterate,globIterateSync:Ize,iterateSync:lC.iterateSync,Glob:G0e.Glob,hasMagic:jTl.hasMagic,escape:MCs.escape,unescape:MCs.unescape});lC.glob.glob=lC.glob});var Kjr=H((hsg,JCs)=>{"use strict";var{glob:eRl}=QCs(),XCs=wt("path"),tRl=e=>e.split(XCs.win32.sep).join(XCs.posix.sep);JCs.exports=(e,t)=>eRl(tRl(e),t)});var KCs=H((msg,UCs)=>{"use strict";var rRl=wt("fs/promises"),nRl=qGe(),{hasContent:iRl}=yjr();UCs.exports=sRl;async function sRl(e,t){let r=await iRl(e,t);return r&&r.sri?(await rRl.rm(nRl(e,r.sri),{recursive:!0,force:!0}),!0):!1}});var zCs=H((Csg,hze)=>{"use strict";var{rm:oRl}=wt("fs/promises"),aRl=Kjr(),cRl=eFe(),jjr=U7e(),lRl=wt("path"),uRl=KCs();hze.exports=jCs;hze.exports.entry=jCs;function jCs(e,t,r){return jjr.clearMemoized(),cRl.delete(e,t,r)}hze.exports.content=gRl;function gRl(e,t){return jjr.clearMemoized(),uRl(e,t)}hze.exports.all=ARl;async function ARl(e){jjr.clearMemoized();let t=await aRl(lRl.join(e,"*(content-*|index-*)"),{silent:!0,nosort:!0});return Promise.all(t.map(r=>oRl(r,{recursive:!0,force:!0})))}});var $Cs=H((_sg,e6r)=>{"use strict";var{mkdir:dRl,readFile:pRl,rm:qjr,stat:$jr,truncate:fRl,writeFile:IRl}=wt("fs/promises"),qCs=qGe(),hRl=vZt(),mRl=Kjr(),lFe=eFe(),zZt=wt("path"),zjr=Jte(),CRl=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),_Rl=e=>({concurrency:20,log:{silly(){}},...e});e6r.exports=yRl;async function yRl(e,t){t=_Rl(t),t.log.silly("verify","verifying cache at",e);let r=[bRl,SRl,vRl,wRl,RRl,NRl,ERl],n={};for(let a of r){let o=a.name,l=new Date,A=await a(e,t);A&&Object.keys(A).forEach(I=>{n[I]=A[I]});let f=new Date;n.runTime||(n.runTime={}),n.runTime[o]=f-l}return n.runTime.total=n.endTime-n.startTime,t.log.silly("verify","verification finished for",e,"in",`${n.runTime.total}ms`),n}async function bRl(){return{startTime:new Date}}async function ERl(){return{endTime:new Date}}async function SRl(e,t){return t.log.silly("verify","fixing cache permissions"),await dRl(e,{recursive:!0}),null}async function vRl(e,t){t.log.silly("verify","garbage collecting content");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=lFe.lsStream(e),a=new Set;n.on("data",f=>{if(t.filter&&!t.filter(f))return;let I=zjr.parse(f.integrity);for(let C in I)a.add(I[C].toString())}),await new Promise((f,I)=>{n.on("end",f).on("error",I)});let o=qCs.contentDir(e),l=await mRl(zZt.join(o,"**"),{follow:!1,nodir:!0,nosort:!0}),A={verifiedContent:0,reclaimedCount:0,reclaimedSize:0,badContentCount:0,keptSize:0};return await r(l,async f=>{let I=f.split(/[/\\]/),C=I.slice(I.length-3).join(""),b=I[I.length-4],E=zjr.fromHex(C,b);if(a.has(E.toString())){let N=await BRl(f,E);N.valid?(A.verifiedContent++,A.keptSize+=N.size):(A.reclaimedCount++,A.badContentCount++,A.reclaimedSize+=N.size)}else{A.reclaimedCount++;let N=await $jr(f);await qjr(f,{recursive:!0,force:!0}),A.reclaimedSize+=N.size}return A},{concurrency:t.concurrency}),A}async function BRl(e,t){let r={};try{let{size:n}=await $jr(e);r.size=n,r.valid=!0,await zjr.checkStream(new hRl.ReadStream(e),t)}catch(n){if(n.code==="ENOENT")return{size:0,valid:!1};if(n.code!=="EINTEGRITY")throw n;await qjr(e,{recursive:!0,force:!0}),r.valid=!1}return r}async function wRl(e,t){t.log.silly("verify","rebuilding index");let{default:r}=await Promise.resolve().then(()=>(AZt(),gZt)),n=await lFe.ls(e),a={missingContent:0,rejectedEntries:0,totalEntries:0},o={};for(let l in n)if(CRl(n,l)){let A=lFe.hashKey(l),f=n[l],I=t.filter&&!t.filter(f);I&&a.rejectedEntries++,o[A]&&!I?o[A].push(f):o[A]&&I||(I?(o[A]=[],o[A]._path=lFe.bucketPath(e,l)):(o[A]=[f],o[A]._path=lFe.bucketPath(e,l)))}return await r(Object.keys(o),l=>TRl(e,o[l],a,t),{concurrency:t.concurrency}),a}async function TRl(e,t,r){await fRl(t._path);for(let n of t){let a=qCs(e,n.integrity);try{await $jr(a),await lFe.insert(e,n.key,n.integrity,{metadata:n.metadata,size:n.size,time:n.time}),r.totalEntries++}catch(o){if(o.code==="ENOENT")r.rejectedEntries++,r.missingContent++;else throw o}}}function RRl(e,t){return t.log.silly("verify","cleaning tmp directory"),qjr(zZt.join(e,"tmp"),{recursive:!0,force:!0})}async function NRl(e,t){let r=zZt.join(e,"_lastverified");return t.log.silly("verify","writing verifile to "+r),IRl(r,`${Date.now()}`)}e6r.exports.lastRun=DRl;async function DRl(e){let t=await pRl(zZt.join(e,"_lastverified"),{encoding:"utf8"});return new Date(+t)}});var t_s=H((ysg,r6r)=>{"use strict";var{withTempDir:kRl}=uZt(),e_s=wt("fs/promises"),t6r=wt("path");r6r.exports.mkdir=xRl;async function xRl(e,t={}){let{tmpPrefix:r}=t,n=t6r.join(e,"tmp");await e_s.mkdir(n,{recursive:!0,owner:"inherit"});let a=`${n}${t6r.sep}${r||""}`;return e_s.mkdtemp(a,{owner:"inherit"})}r6r.exports.withTmp=GRl;function GRl(e,t,r){return r||(r=t,t={}),kRl(t6r.join(e,"tmp"),r,t)}});var s_s=H((bsg,rE)=>{"use strict";var Que=Wms(),r_s=jms(),n6r=zCs(),n_s=$Cs(),{clearMemoized:FRl}=U7e(),i_s=t_s(),qZt=eFe();rE.exports.index={};rE.exports.index.compact=qZt.compact;rE.exports.index.insert=qZt.insert;rE.exports.ls=qZt.ls;rE.exports.ls.stream=qZt.lsStream;rE.exports.get=Que;rE.exports.get.byDigest=Que.byDigest;rE.exports.get.stream=Que.stream;rE.exports.get.stream.byDigest=Que.stream.byDigest;rE.exports.get.copy=Que.copy;rE.exports.get.copy.byDigest=Que.copy.byDigest;rE.exports.get.info=Que.info;rE.exports.get.hasContent=Que.hasContent;rE.exports.put=r_s;rE.exports.put.stream=r_s.stream;rE.exports.rm=n6r.entry;rE.exports.rm.all=n6r.all;rE.exports.rm.entry=rE.exports.rm;rE.exports.rm.content=n6r.content;rE.exports.clearMemoized=FRl;rE.exports.tmp={};rE.exports.tmp.mkdir=i_s.mkdir;rE.exports.tmp.withTmp=i_s.withTmp;rE.exports.verify=n_s;rE.exports.verify.lastRun=n_s.lastRun});var s6r=H((Esg,o_s)=>{"use strict";var ZRl=zGe(),i6r=class extends ZRl{#e=[];#t=new Map;constructor(t,...r){super(),this.#e=t.events,r.length&&this.push(...r)}on(t,r){return this.#e.includes(t)&&this.#t.has(t)?r(...this.#t.get(t)):super.on(t,r)}emit(t,...r){return this.#e.includes(t)&&this.#t.set(t,r),super.emit(t,...r)}};o_s.exports=i6r});var c_s=H((Ssg,a_s)=>{var{URL:LRl,format:VRl}=wt("url"),PRl={auth:!1,fragment:!1,search:!0,unicode:!1},WRl=e=>{let t=new LRl(e.url);return`make-fetch-happen:request-cache:${VRl(t,PRl)}`};a_s.exports=WRl});var g_s=H((vsg,u_s)=>{"use strict";function l_s(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function ORl(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=void 0),t!=null&&(r.code=t);try{return l_s(e,r)}catch{r.message=e.message,r.stack=e.stack;let a=function(){};return a.prototype=Object.create(Object.getPrototypeOf(e)),l_s(new a,r)}}u_s.exports=ORl});var d_s=H((Bsg,A_s)=>{function YH(e,t){typeof t=="boolean"&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}A_s.exports=YH;YH.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts};YH.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null};YH.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=new Date().getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(r===void 0)if(this._cachedTimeouts)this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),r=this._timeouts.shift();else return!1;var n=this,a=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r);return this._options.unref&&a.unref(),!0};YH.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)};YH.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)};YH.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)};YH.prototype.start=YH.prototype.try;YH.prototype.errors=function(){return this._errors};YH.prototype.attempts=function(){return this._attempts};YH.prototype.mainError=function(){if(this._errors.length===0)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=a,r=l)}return t}});var p_s=H(F0e=>{var MRl=d_s();F0e.operation=function(e){var t=F0e.timeouts(e);return new MRl(t,{forever:e&&e.forever,unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})};F0e.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1*1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],a=0;a{f_s.exports=p_s()});var o6r=H((Rsg,m_s)=>{"use strict";var HRl=g_s(),YRl=I_s(),QRl=Object.prototype.hasOwnProperty;function h_s(e){return e&&e.code==="EPROMISERETRY"&&QRl.call(e,"retried")}function XRl(e,t){var r,n;return typeof e=="object"&&typeof t=="function"&&(r=t,t=e,e=r),n=YRl.operation(t),new Promise(function(a,o){n.attempt(function(l){Promise.resolve().then(function(){return e(function(A){throw h_s(A)&&(A=A.retried),HRl(new Error("Retrying"),"EPROMISERETRY",{retried:A})},l)}).then(a,function(A){h_s(A)&&(A=A.retried,n.retry(A||new Error))||o(A)})})})}m_s.exports=XRl});var a6r=H((Nsg,C_s)=>{var JRl=Symbol("proc-log.meta");C_s.exports={META:JRl,output:{LEVELS:["standard","error","buffer","flush"],KEYS:{standard:"standard",error:"error",buffer:"buffer",flush:"flush"},standard:function(...e){return process.emit("output","standard",...e)},error:function(...e){return process.emit("output","error",...e)},buffer:function(...e){return process.emit("output","buffer",...e)},flush:function(...e){return process.emit("output","flush",...e)}},log:{LEVELS:["notice","error","warn","info","verbose","http","silly","timing","pause","resume"],KEYS:{notice:"notice",error:"error",warn:"warn",info:"info",verbose:"verbose",http:"http",silly:"silly",timing:"timing",pause:"pause",resume:"resume"},error:function(...e){return process.emit("log","error",...e)},notice:function(...e){return process.emit("log","notice",...e)},warn:function(...e){return process.emit("log","warn",...e)},info:function(...e){return process.emit("log","info",...e)},verbose:function(...e){return process.emit("log","verbose",...e)},http:function(...e){return process.emit("log","http",...e)},silly:function(...e){return process.emit("log","silly",...e)},timing:function(...e){return process.emit("log","timing",...e)},pause:function(){return process.emit("log","pause")},resume:function(){return process.emit("log","resume")}},time:{LEVELS:["start","end"],KEYS:{start:"start",end:"end"},start:function(e,t){process.emit("time","start",e);function r(){return process.emit("time","end",e)}if(typeof t=="function"){let n=t();return n&&n.finally?n.finally(r):(r(),n)}return r},end:function(e){return process.emit("time","end",e)}},input:{LEVELS:["start","end","read"],KEYS:{start:"start",end:"end",read:"read"},start:function(e){process.emit("input","start");function t(){return process.emit("input","end")}if(typeof e=="function"){let r=e();return r&&r.finally?r.finally(t):(t(),r)}return t},end:function(){return process.emit("input","end")},read:function(...e){let t,r,n=new Promise((a,o)=>{t=a,r=o});return process.emit("input","read",t,r,...e),n}}}});var c6r=H((Dsg,y_s)=>{"use strict";var{LRUCache:URl}=yIe(),__s=wt("dns"),$Zt=new URl({max:50}),KRl=({family:e=0,hints:t=__s.ADDRCONFIG,all:r=!1,verbatim:n=void 0,ttl:a=5*60*1e3,lookup:o=__s.lookup})=>({hints:t,lookup:(l,...A)=>{let f=A.pop(),I=A[0]??{},C={family:e,hints:t,all:r,verbatim:n,...typeof I=="number"?{family:I}:I},b=JSON.stringify({hostname:l,...C});if($Zt.has(b)){let E=$Zt.get(b);return process.nextTick(f,null,...E)}o(l,C,(E,...N)=>E?f(E):($Zt.set(b,N,{ttl:a}),f(null,...N)))}});y_s.exports={cache:$Zt,getOptions:KRl}});var l6r=H((ksg,E_s)=>{"use strict";var jRl=c6r(),zRl=e=>{let t=parseInt(e.family??"0",10),r=e.keepAlive??!0,n={keepAliveMsecs:r?1e3:void 0,maxSockets:e.maxSockets??15,maxTotalSockets:1/0,maxFreeSockets:r?256:void 0,scheduling:"fifo",...e,family:t,keepAlive:r,timeouts:{idle:e.timeout??0,connection:0,response:0,transfer:0,...e.timeouts},...jRl.getOptions({family:t,...e.dns})};return delete n.timeout,n},b_s=e=>{let t="",r=Object.entries(e).sort((n,a)=>n[0]-a[0]);for(let[n,a]of r)a==null?a="null":a instanceof URL?a=a.toString():typeof a=="object"&&(a=b_s(a)),t+=`${n}:${a}:`;return t},qRl=({secureEndpoint:e,...t})=>b_s({secureEndpoint:!!e,family:t.family,hints:t.hints,localAddress:t.localAddress,strictSsl:e?!!t.rejectUnauthorized:!1,ca:e?t.ca:null,cert:e?t.cert:null,key:e?t.key:null,keepAlive:t.keepAlive,keepAliveMsecs:t.keepAliveMsecs,maxSockets:t.maxSockets,maxTotalSockets:t.maxTotalSockets,maxFreeSockets:t.maxFreeSockets,scheduling:t.scheduling,timeouts:t.timeouts,proxy:t.proxy});E_s.exports={normalizeOptions:zRl,cacheOptions:qRl}});var B_s=H($V=>{"use strict";var $Rl=$V&&$V.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),eNl=$V&&$V.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),S_s=$V&&$V.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&$Rl(t,e,r);return eNl(t,e),t};Object.defineProperty($V,"__esModule",{value:!0});$V.req=$V.json=$V.toBuffer=void 0;var tNl=S_s(wt("http")),rNl=S_s(wt("https"));async function v_s(e){let t=0,r=[];for await(let n of e)t+=n.length,r.push(n);return Buffer.concat(r,t)}$V.toBuffer=v_s;async function nNl(e){let r=(await v_s(e)).toString("utf8");try{return JSON.parse(r)}catch(n){let a=n;throw a.message+=` (input: ${r})`,a}}$V.json=nNl;function iNl(e,t={}){let n=((typeof e=="string"?e:e.href).startsWith("https:")?rNl:tNl).request(e,t),a=new Promise((o,l)=>{n.once("response",o).once("error",l).end()});return n.then=a.then.bind(a),n}$V.req=iNl});var mze=H(UO=>{"use strict";var T_s=UO&&UO.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),sNl=UO&&UO.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),R_s=UO&&UO.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&T_s(t,e,r);return sNl(t,e),t},oNl=UO&&UO.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&T_s(t,e,r)};Object.defineProperty(UO,"__esModule",{value:!0});UO.Agent=void 0;var aNl=R_s(wt("net")),w_s=R_s(wt("http")),cNl=wt("https");oNl(B_s(),UO);var Z6=Symbol("AgentBaseInternalState"),u6r=class extends w_s.Agent{constructor(t){super(t),this[Z6]={}}isSecureEndpoint(t){if(t){if(typeof t.secureEndpoint=="boolean")return t.secureEndpoint;if(typeof t.protocol=="string")return t.protocol==="https:"}let{stack:r}=new Error;return typeof r!="string"?!1:r.split(` +`).some(n=>n.indexOf("(https.js:")!==-1||n.indexOf("node:https:")!==-1)}incrementSockets(t){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[t]||(this.sockets[t]=[]);let r=new aNl.Socket({writable:!1});return this.sockets[t].push(r),this.totalSocketCount++,r}decrementSockets(t,r){if(!this.sockets[t]||r===null)return;let n=this.sockets[t],a=n.indexOf(r);a!==-1&&(n.splice(a,1),this.totalSocketCount--,n.length===0&&delete this.sockets[t])}getName(t){return(typeof t.secureEndpoint=="boolean"?t.secureEndpoint:this.isSecureEndpoint(t))?cNl.Agent.prototype.getName.call(this,t):super.getName(t)}createSocket(t,r,n){let a={...r,secureEndpoint:this.isSecureEndpoint(r)},o=this.getName(a),l=this.incrementSockets(o);Promise.resolve().then(()=>this.connect(t,a)).then(A=>{if(this.decrementSockets(o,l),A instanceof w_s.Agent)return A.addRequest(t,a);this[Z6].currentSocket=A,super.createSocket(t,r,n)},A=>{this.decrementSockets(o,l),n(A)})}createConnection(){let t=this[Z6].currentSocket;if(this[Z6].currentSocket=void 0,!t)throw new Error("No socket was returned in the `connect()` function");return t}get defaultPort(){return this[Z6].defaultPort??(this.protocol==="https:"?443:80)}set defaultPort(t){this[Z6]&&(this[Z6].defaultPort=t)}get protocol(){return this[Z6].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(t){this[Z6]&&(this[Z6].protocol=t)}};UO.Agent=u6r});var k_s=H(QH=>{"use strict";var lNl=QH&&QH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),uNl=QH&&QH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),D_s=QH&&QH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&lNl(t,e,r);return uNl(t,e),t},gNl=QH&&QH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(QH,"__esModule",{value:!0});QH.HttpProxyAgent=void 0;var ANl=D_s(wt("net")),dNl=D_s(wt("tls")),pNl=gNl(uT()),fNl=wt("events"),INl=mze(),N_s=wt("url"),uFe=(0,pNl.default)("http-proxy-agent"),eLt=class extends INl.Agent{constructor(t,r){super(r),this.proxy=typeof t=="string"?new N_s.URL(t):t,this.proxyHeaders=r?.headers??{},uFe("Creating new HttpProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={...r?hNl(r,"headers"):null,host:n,port:a}}addRequest(t,r){t._header=null,this.setRequestProps(t,r),super.addRequest(t,r)}setRequestProps(t,r){let{proxy:n}=this,a=r.secureEndpoint?"https:":"http:",o=t.getHeader("host")||"localhost",l=`${a}//${o}`,A=new N_s.URL(t.path,l);r.port!==80&&(A.port=String(r.port)),t.path=String(A);let f=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders};if(n.username||n.password){let I=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;f["Proxy-Authorization"]=`Basic ${Buffer.from(I).toString("base64")}`}f["Proxy-Connection"]||(f["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let I of Object.keys(f)){let C=f[I];C&&t.setHeader(I,C)}}async connect(t,r){t._header=null,t.path.includes("://")||this.setRequestProps(t,r);let n,a;uFe("Regenerating stored HTTP header string for request"),t._implicitHeader(),t.outputData&&t.outputData.length>0&&(uFe("Patching connection write() output buffer with updated header"),n=t.outputData[0].data,a=n.indexOf(`\r \r -`)+4,t.outputData[0].data=t._header+n.substring(a),uFe("Output buffer: %o",t.outputData[0].data));let o;return this.proxy.protocol==="https:"?(uFe("Creating `tls.Socket`: %o",this.connectOpts),o=ANl.connect(this.connectOpts)):(uFe("Creating `net.Socket`: %o",this.connectOpts),o=gNl.connect(this.connectOpts)),await(0,pNl.once)(o,"connect"),o}};eLt.protocols=["http","https"];QH.HttpProxyAgent=eLt;function INl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var x_s=H(gFe=>{"use strict";var hNl=gFe&&gFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gFe,"__esModule",{value:!0});gFe.parseProxyResponse=void 0;var mNl=hNl(uT()),tLt=(0,mNl.default)("https-proxy-agent:parse-proxy-response");function CNl(e){return new Promise((t,r)=>{let n=0,a=[];function o(){let C=e.read();C?I(C):e.once("readable",o)}function l(){e.removeListener("end",A),e.removeListener("error",f),e.removeListener("readable",o)}function A(){l(),tLt("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function f(C){l(),tLt("onerror %o",C),r(C)}function I(C){a.push(C),n+=C.length;let b=Buffer.concat(a,n),E=b.indexOf(`\r +`)+4,t.outputData[0].data=t._header+n.substring(a),uFe("Output buffer: %o",t.outputData[0].data));let o;return this.proxy.protocol==="https:"?(uFe("Creating `tls.Socket`: %o",this.connectOpts),o=dNl.connect(this.connectOpts)):(uFe("Creating `net.Socket`: %o",this.connectOpts),o=ANl.connect(this.connectOpts)),await(0,fNl.once)(o,"connect"),o}};eLt.protocols=["http","https"];QH.HttpProxyAgent=eLt;function hNl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var x_s=H(gFe=>{"use strict";var mNl=gFe&&gFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(gFe,"__esModule",{value:!0});gFe.parseProxyResponse=void 0;var CNl=mNl(uT()),tLt=(0,CNl.default)("https-proxy-agent:parse-proxy-response");function _Nl(e){return new Promise((t,r)=>{let n=0,a=[];function o(){let C=e.read();C?I(C):e.once("readable",o)}function l(){e.removeListener("end",A),e.removeListener("error",f),e.removeListener("readable",o)}function A(){l(),tLt("onend"),r(new Error("Proxy connection ended before receiving CONNECT response"))}function f(C){l(),tLt("onerror %o",C),r(C)}function I(C){a.push(C),n+=C.length;let b=Buffer.concat(a,n),E=b.indexOf(`\r \r `);if(E===-1){tLt("have not received end of HTTP headers yet..."),o();return}let N=b.slice(0,E).toString("ascii").split(`\r -`),B=N.shift();if(!B)return e.destroy(),r(new Error("No header received from proxy CONNECT response"));let F=B.split(" "),Q=+F[1],X=F.slice(2).join(" "),ae={};for(let ne of N){if(!ne)continue;let ce=ne.indexOf(":");if(ce===-1)return e.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${ne}"`));let fe=ne.slice(0,ce).toLowerCase(),ue=ne.slice(ce+1).trimStart(),de=ae[fe];typeof de=="string"?ae[fe]=[de,ue]:Array.isArray(de)?de.push(ue):ae[fe]=ue}tLt("got proxy server response: %o %o",B,ae),l(),t({connect:{statusCode:Q,statusText:X,headers:ae},buffered:b})}e.on("error",f),e.on("end",A),o()})}gFe.parseProxyResponse=CNl});var V_s=H(XH=>{"use strict";var _Nl=XH&&XH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),yNl=XH&&XH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Z_s=XH&&XH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&_Nl(t,e,r);return yNl(t,e),t},L_s=XH&&XH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XH,"__esModule",{value:!0});XH.HttpsProxyAgent=void 0;var g6r=Z_s(wt("net")),G_s=Z_s(wt("tls")),bNl=L_s(wt("assert")),ENl=L_s(uT()),SNl=mze(),vNl=wt("url"),BNl=x_s(),Cze=(0,ENl.default)("https-proxy-agent"),rLt=class extends SNl.Agent{constructor(t,r){super(r),this.options={path:void 0},this.proxy=typeof t=="string"?new vNl.URL(t):t,this.proxyHeaders=r?.headers??{},Cze("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?F_s(r,"headers"):null,host:n,port:a}}async connect(t,r){let{proxy:n}=this;if(!r.host)throw new TypeError('No "host" provided');let a;if(n.protocol==="https:"){Cze("Creating `tls.Socket`: %o",this.connectOpts);let E=this.connectOpts.servername||this.connectOpts.host;a=G_s.connect({...this.connectOpts,servername:E})}else Cze("Creating `net.Socket`: %o",this.connectOpts),a=g6r.connect(this.connectOpts);let o=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},l=g6r.isIPv6(r.host)?`[${r.host}]`:r.host,A=`CONNECT ${l}:${r.port} HTTP/1.1\r +`),B=N.shift();if(!B)return e.destroy(),r(new Error("No header received from proxy CONNECT response"));let F=B.split(" "),Q=+F[1],X=F.slice(2).join(" "),ae={};for(let ne of N){if(!ne)continue;let ce=ne.indexOf(":");if(ce===-1)return e.destroy(),r(new Error(`Invalid header from proxy CONNECT response: "${ne}"`));let fe=ne.slice(0,ce).toLowerCase(),ue=ne.slice(ce+1).trimStart(),de=ae[fe];typeof de=="string"?ae[fe]=[de,ue]:Array.isArray(de)?de.push(ue):ae[fe]=ue}tLt("got proxy server response: %o %o",B,ae),l(),t({connect:{statusCode:Q,statusText:X,headers:ae},buffered:b})}e.on("error",f),e.on("end",A),o()})}gFe.parseProxyResponse=_Nl});var V_s=H(XH=>{"use strict";var yNl=XH&&XH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),bNl=XH&&XH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Z_s=XH&&XH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&yNl(t,e,r);return bNl(t,e),t},L_s=XH&&XH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(XH,"__esModule",{value:!0});XH.HttpsProxyAgent=void 0;var g6r=Z_s(wt("net")),G_s=Z_s(wt("tls")),ENl=L_s(wt("assert")),SNl=L_s(uT()),vNl=mze(),BNl=wt("url"),wNl=x_s(),Cze=(0,SNl.default)("https-proxy-agent"),rLt=class extends vNl.Agent{constructor(t,r){super(r),this.options={path:void 0},this.proxy=typeof t=="string"?new BNl.URL(t):t,this.proxyHeaders=r?.headers??{},Cze("Creating new HttpsProxyAgent instance: %o",this.proxy.href);let n=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),a=this.proxy.port?parseInt(this.proxy.port,10):this.proxy.protocol==="https:"?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...r?F_s(r,"headers"):null,host:n,port:a}}async connect(t,r){let{proxy:n}=this;if(!r.host)throw new TypeError('No "host" provided');let a;if(n.protocol==="https:"){Cze("Creating `tls.Socket`: %o",this.connectOpts);let E=this.connectOpts.servername||this.connectOpts.host;a=G_s.connect({...this.connectOpts,servername:E})}else Cze("Creating `net.Socket`: %o",this.connectOpts),a=g6r.connect(this.connectOpts);let o=typeof this.proxyHeaders=="function"?this.proxyHeaders():{...this.proxyHeaders},l=g6r.isIPv6(r.host)?`[${r.host}]`:r.host,A=`CONNECT ${l}:${r.port} HTTP/1.1\r `;if(n.username||n.password){let E=`${decodeURIComponent(n.username)}:${decodeURIComponent(n.password)}`;o["Proxy-Authorization"]=`Basic ${Buffer.from(E).toString("base64")}`}o.Host=`${l}:${r.port}`,o["Proxy-Connection"]||(o["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close");for(let E of Object.keys(o))A+=`${E}: ${o[E]}\r -`;let f=(0,BNl.parseProxyResponse)(a);a.write(`${A}\r -`);let{connect:I,buffered:C}=await f;if(t.emit("proxyConnect",I),this.emit("proxyConnect",I,t),I.statusCode===200){if(t.once("socket",wNl),r.secureEndpoint){Cze("Upgrading socket connection to TLS");let E=r.servername||r.host;return G_s.connect({...F_s(r,"host","path","port"),socket:a,servername:E})}return a}a.destroy();let b=new g6r.Socket({writable:!1});return b.readable=!0,t.once("socket",E=>{Cze("Replaying proxy buffer for failed request"),(0,bNl.default)(E.listenerCount("data")>0),E.push(C),E.push(null)}),b}};rLt.protocols=["http","https"];XH.HttpsProxyAgent=rLt;function wNl(e){e.resume()}function F_s(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var M_s=H(ure=>{"use strict";Object.defineProperty(ure,"__esModule",{value:!0});var P_s=wt("buffer"),Z0e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};ure.ERRORS=Z0e;function TNl(e){if(!P_s.Buffer.isEncoding(e))throw new Error(Z0e.INVALID_ENCODING)}ure.checkEncoding=TNl;function W_s(e){return typeof e=="number"&&isFinite(e)&&kNl(e)}ure.isFiniteInteger=W_s;function O_s(e,t){if(typeof e=="number"){if(!W_s(e)||e<0)throw new Error(t?Z0e.INVALID_OFFSET:Z0e.INVALID_LENGTH)}else throw new Error(t?Z0e.INVALID_OFFSET_NON_NUMBER:Z0e.INVALID_LENGTH_NON_NUMBER)}function RNl(e){O_s(e,!1)}ure.checkLengthValue=RNl;function NNl(e){O_s(e,!0)}ure.checkOffsetValue=NNl;function DNl(e,t){if(e<0||e>t.length)throw new Error(Z0e.INVALID_TARGET_OFFSET)}ure.checkTargetOffset=DNl;function kNl(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e}function xNl(e){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof P_s.Buffer.prototype[e]>"u")throw new Error(`Platform does not support Buffer.prototype.${e}.`)}ure.bigIntAndBufferInt64Check=xNl});var Y_s=H(d6r=>{"use strict";Object.defineProperty(d6r,"__esModule",{value:!0});var Yh=M_s(),H_s=4096,GNl="utf8",A6r=class e{constructor(t){if(this.length=0,this._encoding=GNl,this._writeOffset=0,this._readOffset=0,e.isSmartBufferOptions(t))if(t.encoding&&(Yh.checkEncoding(t.encoding),this._encoding=t.encoding),t.size)if(Yh.isFiniteInteger(t.size)&&t.size>0)this._buff=Buffer.allocUnsafe(t.size);else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(t.buff)if(Buffer.isBuffer(t.buff))this._buff=t.buff,this.length=t.buff.length;else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(H_s);else{if(typeof t<"u")throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(H_s)}}static fromSize(t,r){return new this({size:t,encoding:r})}static fromBuffer(t,r){return new this({buff:t,encoding:r})}static fromOptions(t){return new this(t)}static isSmartBufferOptions(t){let r=t;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(t){return this._readNumberValue(Buffer.prototype.readInt8,1,t)}readInt16BE(t){return this._readNumberValue(Buffer.prototype.readInt16BE,2,t)}readInt16LE(t){return this._readNumberValue(Buffer.prototype.readInt16LE,2,t)}readInt32BE(t){return this._readNumberValue(Buffer.prototype.readInt32BE,4,t)}readInt32LE(t){return this._readNumberValue(Buffer.prototype.readInt32LE,4,t)}readBigInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,t)}readBigInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,t)}writeInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,t,r),this}insertInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,t,r)}writeInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}insertInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}writeInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}insertInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}writeInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}insertInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}writeInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}insertInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}writeBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}insertBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}writeBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}insertBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}readUInt8(t){return this._readNumberValue(Buffer.prototype.readUInt8,1,t)}readUInt16BE(t){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,t)}readUInt16LE(t){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,t)}readUInt32BE(t){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,t)}readUInt32LE(t){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,t)}readBigUInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,t)}readBigUInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,t)}writeUInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,t,r)}insertUInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,t,r)}writeUInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}insertUInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}writeUInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}insertUInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}writeUInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}insertUInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}writeUInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}insertUInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}writeBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}insertBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}writeBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}insertBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}readFloatBE(t){return this._readNumberValue(Buffer.prototype.readFloatBE,4,t)}readFloatLE(t){return this._readNumberValue(Buffer.prototype.readFloatLE,4,t)}writeFloatBE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}insertFloatBE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}writeFloatLE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}insertFloatLE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}readDoubleBE(t){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,t)}readDoubleLE(t){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,t)}writeDoubleBE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}insertDoubleBE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}writeDoubleLE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}insertDoubleLE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}readString(t,r){let n;typeof t=="number"?(Yh.checkLengthValue(t),n=Math.min(t,this.length-this._readOffset)):(r=t,n=this.length-this._readOffset),typeof r<"u"&&Yh.checkEncoding(r);let a=this._buff.slice(this._readOffset,this._readOffset+n).toString(r||this._encoding);return this._readOffset+=n,a}insertString(t,r,n){return Yh.checkOffsetValue(r),this._handleString(t,!0,r,n)}writeString(t,r,n){return this._handleString(t,!1,r,n)}readStringNT(t){typeof t<"u"&&Yh.checkEncoding(t);let r=this.length;for(let a=this._readOffset;athis.length)throw new Error(Yh.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(t,r){Yh.checkOffsetValue(r),this._ensureCapacity(this.length+t),rthis.length?this.length=r+t:this.length+=t}_ensureWriteable(t,r){let n=typeof r=="number"?r:this._writeOffset;this._ensureCapacity(n+t),n+t>this.length&&(this.length=n+t)}_ensureCapacity(t){let r=this._buff.length;if(t>r){let n=this._buff,a=r*3/2+1;a"u"&&(this._readOffset+=r),a}_insertNumberValue(t,r,n,a){return Yh.checkOffsetValue(a),this.ensureInsertable(r,a),t.call(this._buff,n,a),this._writeOffset+=r,this}_writeNumberValue(t,r,n,a){if(typeof a=="number"){if(a<0)throw new Error(Yh.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);Yh.checkOffsetValue(a)}let o=typeof a=="number"?a:this._writeOffset;return this._ensureWriteable(r,o),t.call(this._buff,n,o),typeof a=="number"?this._writeOffset=Math.max(this._writeOffset,o+r):this._writeOffset+=r,this}};d6r.SmartBuffer=A6r});var p6r=H(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.SOCKS5_NO_ACCEPTABLE_AUTH=HE.SOCKS5_CUSTOM_AUTH_END=HE.SOCKS5_CUSTOM_AUTH_START=HE.SOCKS_INCOMING_PACKET_SIZES=HE.SocksClientState=HE.Socks5Response=HE.Socks5HostType=HE.Socks5Auth=HE.Socks4Response=HE.SocksCommand=HE.ERRORS=HE.DEFAULT_TIMEOUT=void 0;var FNl=3e4;HE.DEFAULT_TIMEOUT=FNl;var ZNl={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"};HE.ERRORS=ZNl;var LNl={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:e=>e+7,Socks4Response:8};HE.SOCKS_INCOMING_PACKET_SIZES=LNl;var Q_s;(function(e){e[e.connect=1]="connect",e[e.bind=2]="bind",e[e.associate=3]="associate"})(Q_s||(HE.SocksCommand=Q_s={}));var X_s;(function(e){e[e.Granted=90]="Granted",e[e.Failed=91]="Failed",e[e.Rejected=92]="Rejected",e[e.RejectedIdent=93]="RejectedIdent"})(X_s||(HE.Socks4Response=X_s={}));var J_s;(function(e){e[e.NoAuth=0]="NoAuth",e[e.GSSApi=1]="GSSApi",e[e.UserPass=2]="UserPass"})(J_s||(HE.Socks5Auth=J_s={}));var VNl=128;HE.SOCKS5_CUSTOM_AUTH_START=VNl;var PNl=254;HE.SOCKS5_CUSTOM_AUTH_END=PNl;var WNl=255;HE.SOCKS5_NO_ACCEPTABLE_AUTH=WNl;var U_s;(function(e){e[e.Granted=0]="Granted",e[e.Failure=1]="Failure",e[e.NotAllowed=2]="NotAllowed",e[e.NetworkUnreachable=3]="NetworkUnreachable",e[e.HostUnreachable=4]="HostUnreachable",e[e.ConnectionRefused=5]="ConnectionRefused",e[e.TTLExpired=6]="TTLExpired",e[e.CommandNotSupported=7]="CommandNotSupported",e[e.AddressNotSupported=8]="AddressNotSupported"})(U_s||(HE.Socks5Response=U_s={}));var K_s;(function(e){e[e.IPv4=1]="IPv4",e[e.Hostname=3]="Hostname",e[e.IPv6=4]="IPv6"})(K_s||(HE.Socks5HostType=K_s={}));var j_s;(function(e){e[e.Created=0]="Created",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.SentInitialHandshake=3]="SentInitialHandshake",e[e.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",e[e.SentAuthentication=5]="SentAuthentication",e[e.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",e[e.SentFinalHandshake=7]="SentFinalHandshake",e[e.ReceivedFinalResponse=8]="ReceivedFinalResponse",e[e.BoundWaitingForConnection=9]="BoundWaitingForConnection",e[e.Established=10]="Established",e[e.Disconnected=11]="Disconnected",e[e.Error=99]="Error"})(j_s||(HE.SocksClientState=j_s={}))});var I6r=H(AFe=>{"use strict";Object.defineProperty(AFe,"__esModule",{value:!0});AFe.shuffleArray=AFe.SocksClientError=void 0;var f6r=class extends Error{constructor(t,r){super(t),this.options=r}};AFe.SocksClientError=f6r;function ONl(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]]}}AFe.shuffleArray=ONl});var h6r=H(dFe=>{"use strict";Object.defineProperty(dFe,"__esModule",{value:!0});dFe.isCorrect=dFe.isInSubnet=void 0;function MNl(e){return this.subnetMask{"use strict";Object.defineProperty(L6,"__esModule",{value:!0});L6.RE_SUBNET_STRING=L6.RE_ADDRESS=L6.GROUPS=L6.BITS=void 0;L6.BITS=32;L6.GROUPS=4;L6.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;L6.RE_SUBNET_STRING=/\/\d{1,2}$/});var iLt=H(nLt=>{"use strict";Object.defineProperty(nLt,"__esModule",{value:!0});nLt.AddressError=void 0;var C6r=class extends Error{constructor(t,r){super(t),this.name="AddressError",r!==null&&(this.parseMessage=r)}};nLt.AddressError=C6r});var _6r=H((sLt,z_s)=>{(function(){var e,t=0xdeadbeefcafe,r=(t&16777215)==15715070;function n(Er,Zt,yn){Er!=null&&(typeof Er=="number"?this.fromNumber(Er,Zt,yn):Zt==null&&typeof Er!="string"?this.fromString(Er,256):this.fromString(Er,Zt))}function a(){return new n(null)}function o(Er,Zt,yn,ls,oa,Fs){for(;--Fs>=0;){var Wa=Zt*this[Er++]+yn[ls]+oa;oa=Math.floor(Wa/67108864),yn[ls++]=Wa&67108863}return oa}function l(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&32767,Ca=Zt>>15;--Fs>=0;){var ld=this[Er]&32767,Rp=this[Er++]>>15,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&32767)<<15)+yn[ls]+(oa&1073741823),oa=(ld>>>30)+(np>>>15)+Ca*Rp+(oa>>>30),yn[ls++]=ld&1073741823}return oa}function A(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&16383,Ca=Zt>>14;--Fs>=0;){var ld=this[Er]&16383,Rp=this[Er++]>>14,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&16383)<<14)+yn[ls]+oa,oa=(ld>>28)+(np>>14)+Ca*Rp,yn[ls++]=ld&268435455}return oa}var f=typeof navigator<"u";f&&r&&navigator.appName=="Microsoft Internet Explorer"?(n.prototype.am=l,e=30):f&&r&&navigator.appName!="Netscape"?(n.prototype.am=o,e=26):(n.prototype.am=A,e=28),n.prototype.DB=e,n.prototype.DM=(1<=0;--Zt)Er[Zt]=this[Zt];Er.t=this.t,Er.s=this.s}function X(Er){this.t=1,this.s=Er<0?-1:0,Er>0?this[0]=Er:Er<-1?this[0]=Er+this.DV:this.t=0}function ae(Er){var Zt=a();return Zt.fromInt(Er),Zt}function ne(Er,Zt){var yn;if(Zt==16)yn=4;else if(Zt==8)yn=3;else if(Zt==256)yn=8;else if(Zt==2)yn=1;else if(Zt==32)yn=5;else if(Zt==4)yn=2;else{this.fromRadix(Er,Zt);return}this.t=0,this.s=0;for(var ls=Er.length,oa=!1,Fs=0;--ls>=0;){var Wa=yn==8?Er[ls]&255:F(Er,ls);if(Wa<0){Er.charAt(ls)=="-"&&(oa=!0);continue}oa=!1,Fs==0?this[this.t++]=Wa:Fs+yn>this.DB?(this[this.t-1]|=(Wa&(1<>this.DB-Fs):this[this.t-1]|=Wa<=this.DB&&(Fs-=this.DB)}yn==8&&Er[0]&128&&(this.s=-1,Fs>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==Er;)--this.t}function fe(Er){if(this.s<0)return"-"+this.negate().toString(Er);var Zt;if(Er==16)Zt=4;else if(Er==8)Zt=3;else if(Er==2)Zt=1;else if(Er==32)Zt=5;else if(Er==4)Zt=2;else return this.toRadix(Er);var yn=(1<0)for(Ca>Ca)>0&&(oa=!0,Fs=B(ls));Wa>=0;)Ca>(Ca+=this.DB-Zt)):(ls=this[Wa]>>(Ca-=Zt)&yn,Ca<=0&&(Ca+=this.DB,--Wa)),ls>0&&(oa=!0),oa&&(Fs+=B(ls));return oa?Fs:"0"}function ue(){var Er=a();return n.ZERO.subTo(this,Er),Er}function de(){return this.s<0?this.negate():this}function be(Er){var Zt=this.s-Er.s;if(Zt!=0)return Zt;var yn=this.t;if(Zt=yn-Er.t,Zt!=0)return this.s<0?-Zt:Zt;for(;--yn>=0;)if((Zt=this[yn]-Er[yn])!=0)return Zt;return 0}function Se(Er){var Zt=1,yn;return(yn=Er>>>16)!=0&&(Er=yn,Zt+=16),(yn=Er>>8)!=0&&(Er=yn,Zt+=8),(yn=Er>>4)!=0&&(Er=yn,Zt+=4),(yn=Er>>2)!=0&&(Er=yn,Zt+=2),(yn=Er>>1)!=0&&(Er=yn,Zt+=1),Zt}function De(){return this.t<=0?0:this.DB*(this.t-1)+Se(this[this.t-1]^this.s&this.DM)}function k(Er,Zt){var yn;for(yn=this.t-1;yn>=0;--yn)Zt[yn+Er]=this[yn];for(yn=Er-1;yn>=0;--yn)Zt[yn]=0;Zt.t=this.t+Er,Zt.s=this.s}function et(Er,Zt){for(var yn=Er;yn=0;--Ca)Zt[Ca+Fs+1]=this[Ca]>>ls|Wa,Wa=(this[Ca]&oa)<=0;--Ca)Zt[Ca]=0;Zt[Fs]=Wa,Zt.t=this.t+Fs+1,Zt.s=this.s,Zt.clamp()}function Me(Er,Zt){Zt.s=this.s;var yn=Math.floor(Er/this.DB);if(yn>=this.t){Zt.t=0;return}var ls=Er%this.DB,oa=this.DB-ls,Fs=(1<>ls;for(var Wa=yn+1;Wa>ls;ls>0&&(Zt[this.t-yn-1]|=(this.s&Fs)<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls-=Er.s}Zt.s=ls<0?-1:0,ls<-1?Zt[yn++]=this.DV+ls:ls>0&&(Zt[yn++]=ls),Zt.t=yn,Zt.clamp()}function St(Er,Zt){var yn=this.abs(),ls=Er.abs(),oa=yn.t;for(Zt.t=oa+ls.t;--oa>=0;)Zt[oa]=0;for(oa=0;oa=0;)Er[yn]=0;for(yn=0;yn=Zt.DV&&(Er[yn+Zt.t]-=Zt.DV,Er[yn+Zt.t+1]=1)}Er.t>0&&(Er[Er.t-1]+=Zt.am(yn,Zt[yn],Er,2*yn,0,1)),Er.s=0,Er.clamp()}function Yt(Er,Zt,yn){var ls=Er.abs();if(!(ls.t<=0)){var oa=this.abs();if(oa.t0?(ls.lShiftTo(ld,Fs),oa.lShiftTo(ld,yn)):(ls.copyTo(Fs),oa.copyTo(yn));var Rp=Fs.t,np=Fs[Rp-1];if(np!=0){var HA=np*(1<1?Fs[Rp-2]>>this.F2:0),df=this.FV/HA,Zs=(1<=0&&(yn[yn.t++]=1,yn.subTo(Dr,yn)),n.ONE.dlShiftTo(Rp,Dr),Dr.subTo(Fs,Fs);Fs.t=0;){var Wn=yn[--Ea]==np?this.DM:Math.floor(yn[Ea]*df+(yn[Ea-1]+so)*Zs);if((yn[Ea]+=Fs.am(0,Wn,yn,Ml,0,Rp))0&&yn.rShiftTo(ld,yn),Wa<0&&n.ZERO.subTo(yn,yn)}}}function Tr(Er){var Zt=a();return this.abs().divRemTo(Er,null,Zt),this.s<0&&Zt.compareTo(n.ZERO)>0&&Er.subTo(Zt,Zt),Zt}function Nr(Er){this.m=Er}function er(Er){return Er.s<0||Er.compareTo(this.m)>=0?Er.mod(this.m):Er}function vt(Er){return Er}function xt(Er){Er.divRemTo(this.m,null,Er)}function Zr(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}function qt(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}Nr.prototype.convert=er,Nr.prototype.revert=vt,Nr.prototype.reduce=xt,Nr.prototype.mulTo=Zr,Nr.prototype.sqrTo=qt;function Xt(){if(this.t<1)return 0;var Er=this[0];if(!(Er&1))return 0;var Zt=Er&3;return Zt=Zt*(2-(Er&15)*Zt)&15,Zt=Zt*(2-(Er&255)*Zt)&255,Zt=Zt*(2-((Er&65535)*Zt&65535))&65535,Zt=Zt*(2-Er*Zt%this.DV)%this.DV,Zt>0?this.DV-Zt:-Zt}function lr(Er){this.m=Er,this.mp=Er.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(Zt,Zt),Zt}function Ar(Er){var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function qr(Er){for(;Er.t<=this.mt2;)Er[Er.t++]=0;for(var Zt=0;Zt>15)*this.mpl&this.um)<<15)&Er.DM;for(yn=Zt+this.m.t,Er[yn]+=this.m.am(0,ls,Er,Zt,0,this.m.t);Er[yn]>=Er.DV;)Er[yn]-=Er.DV,Er[++yn]++}Er.clamp(),Er.drShiftTo(this.m.t,Er),Er.compareTo(this.m)>=0&&Er.subTo(this.m,Er)}function _n(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function ke(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}lr.prototype.convert=cr,lr.prototype.revert=Ar,lr.prototype.reduce=qr,lr.prototype.mulTo=ke,lr.prototype.sqrTo=_n;function jt(){return(this.t>0?this[0]&1:this.s)==0}function Fn(Er,Zt){if(Er>4294967295||Er<1)return n.ONE;var yn=a(),ls=a(),oa=Zt.convert(this),Fs=Se(Er)-1;for(oa.copyTo(yn);--Fs>=0;)if(Zt.sqrTo(yn,ls),(Er&1<0)Zt.mulTo(ls,oa,yn);else{var Wa=yn;yn=ls,ls=Wa}return Zt.revert(yn)}function Nn(Er,Zt){var yn;return Er<256||Zt.isEven()?yn=new Nr(Zt):yn=new lr(Zt),this.exp(Er,yn)}n.prototype.copyTo=Q,n.prototype.fromInt=X,n.prototype.fromString=ne,n.prototype.clamp=ce,n.prototype.dlShiftTo=k,n.prototype.drShiftTo=et,n.prototype.lShiftTo=ct,n.prototype.rShiftTo=Me,n.prototype.subTo=je,n.prototype.multiplyTo=St,n.prototype.squareTo=At,n.prototype.divRemTo=Yt,n.prototype.invDigit=Xt,n.prototype.isEven=jt,n.prototype.exp=Fn,n.prototype.toString=fe,n.prototype.negate=ue,n.prototype.abs=de,n.prototype.compareTo=be,n.prototype.bitLength=De,n.prototype.mod=Tr,n.prototype.modPowInt=Nn,n.ZERO=ae(0),n.ONE=ae(1);function Hi(){var Er=a();return this.copyTo(Er),Er}function po(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>24}function xi(){return this.t==0?this.s:this[0]<<16>>16}function io(Er){return Math.floor(Math.LN2*this.DB/Math.log(Er))}function ga(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function Ya(Er){if(Er==null&&(Er=10),this.signum()==0||Er<2||Er>36)return"0";var Zt=this.chunkSize(Er),yn=Math.pow(Er,Zt),ls=ae(yn),oa=a(),Fs=a(),Wa="";for(this.divRemTo(ls,oa,Fs);oa.signum()>0;)Wa=(yn+Fs.intValue()).toString(Er).substr(1)+Wa,oa.divRemTo(ls,oa,Fs);return Fs.intValue().toString(Er)+Wa}function Gc(Er,Zt){this.fromInt(0),Zt==null&&(Zt=10);for(var yn=this.chunkSize(Zt),ls=Math.pow(Zt,yn),oa=!1,Fs=0,Wa=0,Ca=0;Ca=yn&&(this.dMultiply(ls),this.dAddOffset(Wa,0),Fs=0,Wa=0)}Fs>0&&(this.dMultiply(Math.pow(Zt,Fs)),this.dAddOffset(Wa,0)),oa&&n.ZERO.subTo(this,this)}function cl(Er,Zt,yn){if(typeof Zt=="number")if(Er<2)this.fromInt(1);else for(this.fromNumber(Er,yn),this.testBit(Er-1)||this.bitwiseTo(n.ONE.shiftLeft(Er-1),Qi,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(Zt);)this.dAddOffset(2,0),this.bitLength()>Er&&this.subTo(n.ONE.shiftLeft(Er-1),this);else{var ls=new Array,oa=Er&7;ls.length=(Er>>3)+1,Zt.nextBytes(ls),oa>0?ls[0]&=(1<0)for(yn>yn)!=(this.s&this.DM)>>yn&&(Zt[oa++]=ls|this.s<=0;)yn<8?(ls=(this[Er]&(1<>(yn+=this.DB-8)):(ls=this[Er]>>(yn-=8)&255,yn<=0&&(yn+=this.DB,--Er)),ls&128&&(ls|=-256),oa==0&&(this.s&128)!=(ls&128)&&++oa,(oa>0||ls!=this.s)&&(Zt[oa++]=ls);return Zt}function Hr(Er){return this.compareTo(Er)==0}function Wr(Er){return this.compareTo(Er)<0?this:Er}function Ft(Er){return this.compareTo(Er)>0?this:Er}function zr(Er,Zt,yn){var ls,oa,Fs=Math.min(Er.t,this.t);for(ls=0;ls>=16,Zt+=16),Er&255||(Er>>=8,Zt+=8),Er&15||(Er>>=4,Zt+=4),Er&3||(Er>>=2,Zt+=2),Er&1||++Zt,Zt}function vu(){for(var Er=0;Er=this.t?this.s!=0:(this[Zt]&1<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls+=Er.s}Zt.s=ls<0?-1:0,ls>0?Zt[yn++]=ls:ls<-1&&(Zt[yn++]=this.DV+ls),Zt.t=yn,Zt.clamp()}function Ul(Er){var Zt=a();return this.addTo(Er,Zt),Zt}function Xu(Er){var Zt=a();return this.subTo(Er,Zt),Zt}function Da(Er){var Zt=a();return this.multiplyTo(Er,Zt),Zt}function pu(){var Er=a();return this.squareTo(Er),Er}function _g(Er){var Zt=a();return this.divRemTo(Er,Zt,null),Zt}function mI(Er){var Zt=a();return this.divRemTo(Er,null,Zt),Zt}function Qh(Er){var Zt=a(),yn=a();return this.divRemTo(Er,Zt,yn),new Array(Zt,yn)}function Ri(Er){this[this.t]=this.am(0,Er-1,this,0,0,this.t),++this.t,this.clamp()}function Do(Er,Zt){if(Er!=0){for(;this.t<=Zt;)this[this.t++]=0;for(this[Zt]+=Er;this[Zt]>=this.DV;)this[Zt]-=this.DV,++Zt>=this.t&&(this[this.t++]=0),++this[Zt]}}function Wt(){}function Hu(Er){return Er}function Ru(Er,Zt,yn){Er.multiplyTo(Zt,yn)}function Vs(Er,Zt){Er.squareTo(Zt)}Wt.prototype.convert=Hu,Wt.prototype.revert=Hu,Wt.prototype.mulTo=Ru,Wt.prototype.sqrTo=Vs;function Ju(Er){return this.exp(Er,new Wt)}function Yn(Er,Zt,yn){var ls=Math.min(this.t+Er.t,Zt);for(yn.s=0,yn.t=ls;ls>0;)yn[--ls]=0;var oa;for(oa=yn.t-this.t;ls=0;)yn[ls]=0;for(ls=Math.max(Zt-this.t,0);ls2*this.m.t)return Er.mod(this.m);if(Er.compareTo(this.m)<0)return Er;var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function GA(Er){return Er}function $i(Er){for(Er.drShiftTo(this.m.t-1,this.r2),Er.t>this.m.t+1&&(Er.t=this.m.t+1,Er.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);Er.compareTo(this.r2)<0;)Er.dAddOffset(1,this.m.t+1);for(Er.subTo(this.r2,Er);Er.compareTo(this.m)>=0;)Er.subTo(this.m,Er)}function dl(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function Uf(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}Eg.prototype.convert=OA,Eg.prototype.revert=GA,Eg.prototype.reduce=$i,Eg.prototype.mulTo=Uf,Eg.prototype.sqrTo=dl;function Kd(Er,Zt){var yn=Er.bitLength(),ls,oa=ae(1),Fs;if(yn<=0)return oa;yn<18?ls=1:yn<48?ls=3:yn<144?ls=4:yn<768?ls=5:ls=6,yn<8?Fs=new Nr(Zt):Zt.isEven()?Fs=new Eg(Zt):Fs=new lr(Zt);var Wa=new Array,Ca=3,ld=ls-1,Rp=(1<1){var np=a();for(Fs.sqrTo(Wa[1],np);Ca<=Rp;)Wa[Ca]=a(),Fs.mulTo(np,Wa[Ca-2],Wa[Ca]),Ca+=2}var HA=Er.t-1,df,Zs=!0,so=a(),Ea;for(yn=Se(Er[HA])-1;HA>=0;){for(yn>=ld?df=Er[HA]>>yn-ld&Rp:(df=(Er[HA]&(1<0&&(df|=Er[HA-1]>>this.DB+yn-ld)),Ca=ls;!(df&1);)df>>=1,--Ca;if((yn-=Ca)<0&&(yn+=this.DB,--HA),Zs)Wa[df].copyTo(oa),Zs=!1;else{for(;Ca>1;)Fs.sqrTo(oa,so),Fs.sqrTo(so,oa),Ca-=2;Ca>0?Fs.sqrTo(oa,so):(Ea=oa,oa=so,so=Ea),Fs.mulTo(so,Wa[df],oa)}for(;HA>=0&&!(Er[HA]&1<0&&(Zt.rShiftTo(Fs,Zt),yn.rShiftTo(Fs,yn));Zt.signum()>0;)(oa=Zt.getLowestSetBit())>0&&Zt.rShiftTo(oa,Zt),(oa=yn.getLowestSetBit())>0&&yn.rShiftTo(oa,yn),Zt.compareTo(yn)>=0?(Zt.subTo(yn,Zt),Zt.rShiftTo(1,Zt)):(yn.subTo(Zt,yn),yn.rShiftTo(1,yn));return Fs>0&&yn.lShiftTo(Fs,yn),yn}function oo(Er){if(Er<=0)return 0;var Zt=this.DV%Er,yn=this.s<0?Er-1:0;if(this.t>0)if(Zt==0)yn=this[0]%Er;else for(var ls=this.t-1;ls>=0;--ls)yn=(Zt*yn+this[ls])%Er;return yn}function Ki(Er){var Zt=Er.isEven();if(this.isEven()&&Zt||Er.signum()==0)return n.ZERO;for(var yn=Er.clone(),ls=this.clone(),oa=ae(1),Fs=ae(0),Wa=ae(0),Ca=ae(1);yn.signum()!=0;){for(;yn.isEven();)yn.rShiftTo(1,yn),Zt?((!oa.isEven()||!Fs.isEven())&&(oa.addTo(this,oa),Fs.subTo(Er,Fs)),oa.rShiftTo(1,oa)):Fs.isEven()||Fs.subTo(Er,Fs),Fs.rShiftTo(1,Fs);for(;ls.isEven();)ls.rShiftTo(1,ls),Zt?((!Wa.isEven()||!Ca.isEven())&&(Wa.addTo(this,Wa),Ca.subTo(Er,Ca)),Wa.rShiftTo(1,Wa)):Ca.isEven()||Ca.subTo(Er,Ca),Ca.rShiftTo(1,Ca);yn.compareTo(ls)>=0?(yn.subTo(ls,yn),Zt&&oa.subTo(Wa,oa),Fs.subTo(Ca,Fs)):(ls.subTo(yn,ls),Zt&&Wa.subTo(oa,Wa),Ca.subTo(Fs,Ca))}if(ls.compareTo(n.ONE)!=0)return n.ZERO;if(Ca.compareTo(Er)>=0)return Ca.subtract(Er);if(Ca.signum()<0)Ca.addTo(Er,Ca);else return Ca;return Ca.signum()<0?Ca.add(Er):Ca}var cc=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Xs=(1<<26)/cc[cc.length-1];function ws(Er){var Zt,yn=this.abs();if(yn.t==1&&yn[0]<=cc[cc.length-1]){for(Zt=0;Zt>1,Er>cc.length&&(Er=cc.length);for(var oa=a(),Fs=0;Fs>8&255,Dc[As++]^=Er>>16&255,Dc[As++]^=Er>>24&255,As>=MA&&(As-=MA)}function cm(){Tf(new Date().getTime())}if(Dc==null){Dc=new Array,As=0;var Fl;if(typeof window<"u"&&window.crypto){if(window.crypto.getRandomValues){var rc=new Uint8Array(32);for(window.crypto.getRandomValues(rc),Fl=0;Fl<32;++Fl)Dc[As++]=rc[Fl]}else if(navigator.appName=="Netscape"&&navigator.appVersion<"5"){var sd=window.crypto.random(32);for(Fl=0;Fl>>8,Dc[As++]=Fl&255;As=0,cm()}function Om(){if(Ma==null){for(cm(),Ma=Mp(),Ma.init(Dc),As=0;As{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function t(l){return n(o(l),arguments)}function r(l,A){return t.apply(null,[l].concat(A||[]))}function n(l,A){var f=1,I=l.length,C,b="",E,N,B,F,Q,X,ae,ne;for(E=0;E=0),B.type){case"b":C=parseInt(C,10).toString(2);break;case"c":C=String.fromCharCode(parseInt(C,10));break;case"d":case"i":C=parseInt(C,10);break;case"j":C=JSON.stringify(C,null,B.width?parseInt(B.width):0);break;case"e":C=B.precision?parseFloat(C).toExponential(B.precision):parseFloat(C).toExponential();break;case"f":C=B.precision?parseFloat(C).toFixed(B.precision):parseFloat(C);break;case"g":C=B.precision?String(Number(C.toPrecision(B.precision))):parseFloat(C);break;case"o":C=(parseInt(C,10)>>>0).toString(8);break;case"s":C=String(C),C=B.precision?C.substring(0,B.precision):C;break;case"t":C=String(!!C),C=B.precision?C.substring(0,B.precision):C;break;case"T":C=Object.prototype.toString.call(C).slice(8,-1).toLowerCase(),C=B.precision?C.substring(0,B.precision):C;break;case"u":C=parseInt(C,10)>>>0;break;case"v":C=C.valueOf(),C=B.precision?C.substring(0,B.precision):C;break;case"x":C=(parseInt(C,10)>>>0).toString(16);break;case"X":C=(parseInt(C,10)>>>0).toString(16).toUpperCase();break}e.json.test(B.type)?b+=C:(e.number.test(B.type)&&(!ae||B.sign)?(ne=ae?"+":"-",C=C.toString().replace(e.sign,"")):ne="",Q=B.pad_char?B.pad_char==="0"?"0":B.pad_char.charAt(1):" ",X=B.width-(ne+C).length,F=B.width&&X>0?Q.repeat(X):"",b+=B.align?ne+C+F:Q==="0"?ne+F+C:F+ne+C)}return b}var a=Object.create(null);function o(l){if(a[l])return a[l];for(var A=l,f,I=[],C=0;A;){if((f=e.text.exec(A))!==null)I.push(f[0]);else if((f=e.modulo.exec(A))!==null)I.push("%");else if((f=e.placeholder.exec(A))!==null){if(f[2]){C|=1;var b=[],E=f[2],N=[];if((N=e.key.exec(E))!==null)for(b.push(N[1]);(E=E.substring(N[0].length))!=="";)if((N=e.key_access.exec(E))!==null)b.push(N[1]);else if((N=e.index_access.exec(E))!==null)b.push(N[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=b}else C|=2;if(C===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");I.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");A=A.substring(f[0].length)}return a[l]=I}typeof oLt<"u"&&(oLt.sprintf=t,oLt.vsprintf=r),typeof window<"u"&&(window.sprintf=t,window.vsprintf=r,typeof define=="function"&&define.amd&&define(function(){return{sprintf:t,vsprintf:r}}))})()});var b6r=H(V6=>{"use strict";var YNl=V6&&V6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),QNl=V6&&V6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),e0s=V6&&V6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&YNl(t,e,r);return QNl(t,e),t};Object.defineProperty(V6,"__esModule",{value:!0});V6.Address4=void 0;var q_s=e0s(h6r()),nJ=e0s(m6r()),$_s=iLt(),yze=_6r(),pFe=_ze(),y6r=class e{constructor(t){this.groups=nJ.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=q_s.isCorrect(nJ.BITS),this.isInSubnet=q_s.isInSubnet,this.address=t;let r=nJ.RE_SUBNET_STRING.exec(t);if(r){if(this.parsedSubnet=r[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>nJ.BITS)throw new $_s.AddressError("Invalid subnet mask.");t=t.replace(nJ.RE_SUBNET_STRING,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}static isValid(t){try{return new e(t),!0}catch{return!1}}parse(t){let r=t.split(".");if(!t.match(nJ.RE_ADDRESS))throw new $_s.AddressError("Invalid IPv4 address.");return r}correctForm(){return this.parsedAddress.map(t=>parseInt(t,10)).join(".")}static fromHex(t){let r=t.replace(/:/g,"").padStart(8,"0"),n=[],a;for(a=0;a<8;a+=2){let o=r.slice(a,a+2);n.push(parseInt(o,16))}return new e(n.join("."))}static fromInteger(t){return e.fromHex(t.toString(16))}static fromArpa(t){let n=t.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new e(n)}toHex(){return this.parsedAddress.map(t=>(0,pFe.sprintf)("%02x",parseInt(t,10))).join(":")}toArray(){return this.parsedAddress.map(t=>parseInt(t,10))}toGroup6(){let t=[],r;for(r=0;r(0,pFe.sprintf)("%02x",parseInt(t,10))).join(""),16)}_startAddress(){return new yze.BigInteger(this.mask()+"0".repeat(nJ.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new yze.BigInteger(this.mask()+"1".repeat(nJ.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}static fromBigInteger(t){return e.fromInteger(parseInt(t.toString(),10))}mask(t){return t===void 0&&(t=this.subnetMask),this.getBitsBase2(0,t)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}reverseForm(t){t||(t={});let r=this.correctForm().split(".").reverse().join(".");return t.omitSuffix?r:(0,pFe.sprintf)("%s.in-addr.arpa.",r)}isMulticast(){return this.isInSubnet(new e("224.0.0.0/4"))}binaryZeroPad(){return this.bigInteger().toString(2).padStart(nJ.BITS,"0")}groupForV6(){let t=this.parsedAddress;return this.address.replace(nJ.RE_ADDRESS,(0,pFe.sprintf)('%s.%s',t.slice(0,2).join("."),t.slice(2,4).join(".")))}};V6.Address4=y6r});var E6r=H(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.RE_URL_WITH_PORT=rB.RE_URL=rB.RE_ZONE_STRING=rB.RE_SUBNET_STRING=rB.RE_BAD_ADDRESS=rB.RE_BAD_CHARACTERS=rB.TYPES=rB.SCOPES=rB.GROUPS=rB.BITS=void 0;rB.BITS=128;rB.GROUPS=8;rB.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"};rB.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"};rB.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi;rB.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;rB.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/;rB.RE_ZONE_STRING=/%.*$/;rB.RE_URL=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/);rB.RE_URL_WITH_PORT=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)});var S6r=H(P6=>{"use strict";Object.defineProperty(P6,"__esModule",{value:!0});P6.simpleGroup=P6.spanLeadingZeroes=P6.spanAll=P6.spanAllZeroes=void 0;var t0s=_ze();function r0s(e){return e.replace(/(0+)/g,'$1')}P6.spanAllZeroes=r0s;function XNl(e,t=0){return e.split("").map((n,a)=>(0,t0s.sprintf)('%s',n,a+t,r0s(n))).join("")}P6.spanAll=XNl;function n0s(e){return e.replace(/^(0+)/,'$1')}function JNl(e){return e.split(":").map(r=>n0s(r)).join(":")}P6.spanLeadingZeroes=JNl;function UNl(e,t=0){return e.split(":").map((n,a)=>/group-v4/.test(n)?n:(0,t0s.sprintf)('%s',a+t,n0s(n)))}P6.simpleGroup=UNl});var i0s=H(vD=>{"use strict";var KNl=vD&&vD.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),jNl=vD&&vD.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),zNl=vD&&vD.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&KNl(t,e,r);return jNl(t,e),t};Object.defineProperty(vD,"__esModule",{value:!0});vD.possibleElisions=vD.simpleRegularExpression=vD.ADDRESS_BOUNDARY=vD.padGroup=vD.groupPossibilities=void 0;var qNl=zNl(E6r()),fFe=_ze();function cLt(e){return(0,fFe.sprintf)("(%s)",e.join("|"))}vD.groupPossibilities=cLt;function aLt(e){return e.length<4?(0,fFe.sprintf)("0{0,%d}%s",4-e.length,e):e}vD.padGroup=aLt;vD.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]";function $Nl(e){let t=[];e.forEach((n,a)=>{parseInt(n,16)===0&&t.push(a)});let r=t.map(n=>e.map((a,o)=>{if(o===n){let l=o===0||o===qNl.GROUPS-1?":":"";return cLt([aLt(a),l])}return aLt(a)}).join(":"));return r.push(e.map(aLt).join(":")),cLt(r)}vD.simpleRegularExpression=$Nl;function eDl(e,t,r){let n=t?"":":",a=r?"":":",o=[];!t&&!r&&o.push("::"),t&&r&&o.push(""),(r&&!t||!r&&t)&&o.push(":"),o.push((0,fFe.sprintf)("%s(:0{1,4}){1,%d}",n,e-1)),o.push((0,fFe.sprintf)("(0{1,4}:){1,%d}%s",e-1,a)),o.push((0,fFe.sprintf)("(0{1,4}:){%d}0{1,4}",e-1));for(let l=1;l{"use strict";var tDl=W6&&W6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),rDl=W6&&W6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uLt=W6&&W6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&tDl(t,e,r);return rDl(t,e),t};Object.defineProperty(W6,"__esModule",{value:!0});W6.Address6=void 0;var s0s=uLt(h6r()),v6r=uLt(m6r()),YE=uLt(E6r()),B6r=uLt(S6r()),L0e=b6r(),V0e=i0s(),gre=iLt(),fL=_6r(),IL=_ze();function lLt(e){if(!e)throw new Error("Assertion failed.")}function nDl(e){let t=/(\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}function iDl(e){return e=e.replace(/^(0{1,})([1-9]+)$/,'$1$2'),e=e.replace(/^(0{1,})(0)$/,'$1$2'),e}function sDl(e,t){let r=[],n=[],a;for(a=0;at[1]&&n.push(e[a]);return r.concat(["compact"]).concat(n)}function o0s(e){return(0,IL.sprintf)("%04x",parseInt(e,16))}function a0s(e){return e&255}var w6r=class e{constructor(t,r){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=s0s.isInSubnet,this.isCorrect=s0s.isCorrect(YE.BITS),r===void 0?this.groups=YE.GROUPS:this.groups=r,this.address=t;let n=YE.RE_SUBNET_STRING.exec(t);if(n){if(this.parsedSubnet=n[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>YE.BITS)throw new gre.AddressError("Invalid subnet mask.");t=t.replace(YE.RE_SUBNET_STRING,"")}else if(/\//.test(t))throw new gre.AddressError("Invalid subnet mask.");let a=YE.RE_ZONE_STRING.exec(t);a&&(this.zone=a[0],t=t.replace(YE.RE_ZONE_STRING,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(t){try{return new e(t),!0}catch{return!1}}static fromBigInteger(t){let r=t.toString(16).padStart(32,"0"),n=[],a;for(a=0;a65536)&&(n=null)):n=null,{address:new e(r),port:n}}static fromAddress4(t){let r=new L0e.Address4(t),n=YE.BITS-(v6r.BITS-r.subnetMask);return new e(`::ffff:${r.correctForm()}/${n}`)}static fromArpa(t){let r=t.replace(/(\.ip6\.arpa)?\.$/,""),n=7;if(r.length!==63)throw new gre.AddressError("Invalid 'ip6.arpa' form.");let a=r.split(".").reverse();for(let o=n;o>0;o--){let l=o*4;a.splice(l,0,":")}return r=a.join(""),new e(r)}microsoftTranscription(){return(0,IL.sprintf)("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))}mask(t=this.subnetMask){return this.getBitsBase2(0,t)}possibleSubnets(t=128){let r=YE.BITS-this.subnetMask,n=Math.abs(t-YE.BITS),a=r-n;return a<0?"0":nDl(new fL.BigInteger("2",10).pow(a).toString(10))}_startAddress(){return new fL.BigInteger(this.mask()+"0".repeat(YE.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new fL.BigInteger(this.mask()+"1".repeat(YE.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}getScope(){let t=YE.SCOPES[this.getBits(12,16).intValue()];return this.getType()==="Global unicast"&&t!=="Link local"&&(t="Global"),t||"Unknown"}getType(){for(let t of Object.keys(YE.TYPES))if(this.isInSubnet(new e(t)))return YE.TYPES[t];return"Global unicast"}getBits(t,r){return new fL.BigInteger(this.getBitsBase2(t,r),2)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}getBitsBase16(t,r){let n=r-t;if(n%4!==0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,r).toString(16).padStart(n/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,YE.BITS)}reverseForm(t){t||(t={});let r=Math.floor(this.subnetMask/4),n=this.canonicalForm().replace(/:/g,"").split("").slice(0,r).reverse().join(".");return r>0?t.omitSuffix?n:(0,IL.sprintf)("%s.ip6.arpa.",n):t.omitSuffix?"":"ip6.arpa."}correctForm(){let t,r=[],n=0,a=[];for(t=0;t0&&(n>1&&a.push([t-n,t-1]),n=0)}n>1&&a.push([this.parsedAddress.length-n,this.parsedAddress.length-1]);let o=a.map(A=>A[1]-A[0]+1);if(a.length>0){let A=o.indexOf(Math.max(...o));r=sDl(this.parsedAddress,a[A])}else r=this.parsedAddress;for(t=0;t1?"s":"",r.join("")),t.replace(YE.RE_BAD_CHARACTERS,'$1'));let n=t.match(YE.RE_BAD_ADDRESS);if(n)throw new gre.AddressError((0,IL.sprintf)("Address failed regex: %s",n.join("")),t.replace(YE.RE_BAD_ADDRESS,'$1'));let a=[],o=t.split("::");if(o.length===2){let l=o[0].split(":"),A=o[1].split(":");l.length===1&&l[0]===""&&(l=[]),A.length===1&&A[0]===""&&(A=[]);let f=this.groups-(l.length+A.length);if(!f)throw new gre.AddressError("Error parsing groups");this.elidedGroups=f,this.elisionBegin=l.length,this.elisionEnd=l.length+this.elidedGroups,a=a.concat(l);for(let I=0;I(0,IL.sprintf)("%x",parseInt(l,16))),a.length!==this.groups)throw new gre.AddressError("Incorrect number of groups found");return a}canonicalForm(){return this.parsedAddress.map(o0s).join(":")}decimal(){return this.parsedAddress.map(t=>(0,IL.sprintf)("%05d",parseInt(t,16))).join(":")}bigInteger(){return new fL.BigInteger(this.parsedAddress.map(o0s).join(""),16)}to4(){let t=this.binaryZeroPad().split("");return L0e.Address4.fromHex(new fL.BigInteger(t.slice(96,128).join(""),2).toString(16))}to4in6(){let t=this.to4(),n=new e(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),a="";return/:$/.test(n)||(a=":"),n+a+t.address}inspectTeredo(){let t=this.getBitsBase16(0,32),r=this.getBits(80,96).xor(new fL.BigInteger("ffff",16)).toString(),n=L0e.Address4.fromHex(this.getBitsBase16(32,64)),a=L0e.Address4.fromHex(this.getBits(96,128).xor(new fL.BigInteger("ffffffff",16)).toString(16)),o=this.getBits(64,80),l=this.getBitsBase2(64,80),A=o.testBit(15),f=o.testBit(14),I=o.testBit(8),C=o.testBit(9),b=new fL.BigInteger(l.slice(2,6)+l.slice(8,16),2).toString(10);return{prefix:(0,IL.sprintf)("%s:%s",t.slice(0,4),t.slice(4,8)),server4:n.address,client4:a.address,flags:l,coneNat:A,microsoft:{reserved:f,universalLocal:C,groupIndividual:I,nonce:b},udpPort:r}}inspect6to4(){let t=this.getBitsBase16(0,16),r=L0e.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:(0,IL.sprintf)("%s",t.slice(0,4)),gateway:r.address}}to6to4(){if(!this.is4())return null;let t=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new e(t)}toByteArray(){let t=this.bigInteger().toByteArray();return t.length===17&&t[0]===0?t.slice(1):t}toUnsignedByteArray(){return this.toByteArray().map(a0s)}static fromByteArray(t){return this.fromUnsignedByteArray(t.map(a0s))}static fromUnsignedByteArray(t){let r=new fL.BigInteger("256",10),n=new fL.BigInteger("0",10),a=new fL.BigInteger("1",10);for(let o=t.length-1;o>=0;o--)n=n.add(a.multiply(new fL.BigInteger(t[o].toString(10),10))),a=a.multiply(r);return e.fromBigInteger(n)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return this.getBitsBase2(0,64)==="1111111010000000000000000000000000000000000000000000000000000000"}isMulticast(){return this.getType()==="Multicast"}is4(){return this.v4}isTeredo(){return this.isInSubnet(new e("2001::/32"))}is6to4(){return this.isInSubnet(new e("2002::/16"))}isLoopback(){return this.getType()==="Loopback"}href(t){return t===void 0?t="":t=(0,IL.sprintf)(":%s",t),(0,IL.sprintf)("http://[%s]%s/",this.correctForm(),t)}link(t){t||(t={}),t.className===void 0&&(t.className=""),t.prefix===void 0&&(t.prefix="/#address="),t.v4===void 0&&(t.v4=!1);let r=this.correctForm;return t.v4&&(r=this.to4in6),t.className?(0,IL.sprintf)('%2$s',t.prefix,r.call(this),t.className):(0,IL.sprintf)('%2$s',t.prefix,r.call(this))}group(){if(this.elidedGroups===0)return B6r.simpleGroup(this.address).join(":");lLt(typeof this.elidedGroups=="number"),lLt(typeof this.elisionBegin=="number");let t=[],[r,n]=this.address.split("::");r.length?t.push(...B6r.simpleGroup(r)):t.push("");let a=["hover-group"];for(let o=this.elisionBegin;o',a.join(" "))),n.length?t.push(...B6r.simpleGroup(n,this.elisionEnd)):t.push(""),this.is4()&&(lLt(this.address4 instanceof L0e.Address4),t.pop(),t.push(this.address4.groupForV6())),t.join(":")}regularExpressionString(t=!1){let r=[],n=new e(this.correctForm());if(n.elidedGroups===0)r.push((0,V0e.simpleRegularExpression)(n.parsedAddress));else if(n.elidedGroups===YE.GROUPS)r.push((0,V0e.possibleElisions)(YE.GROUPS));else{let a=n.address.split("::");a[0].length&&r.push((0,V0e.simpleRegularExpression)(a[0].split(":"))),lLt(typeof n.elidedGroups=="number"),r.push((0,V0e.possibleElisions)(n.elidedGroups,a[0].length!==0,a[1].length!==0)),a[1].length&&r.push((0,V0e.simpleRegularExpression)(a[1].split(":"))),r=[r.join(":")]}return t||(r=["(?=^|",V0e.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...r,")(?=[^\\w\\:]|",V0e.ADDRESS_BOUNDARY,"|$)"]),r.join("")}regularExpression(t=!1){return new RegExp(this.regularExpressionString(t),"i")}};W6.Address6=w6r});var T6r=H(aF=>{"use strict";var oDl=aF&&aF.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),aDl=aF&&aF.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),cDl=aF&&aF.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&oDl(t,e,r);return aDl(t,e),t};Object.defineProperty(aF,"__esModule",{value:!0});aF.v6=aF.AddressError=aF.Address6=aF.Address4=void 0;var lDl=b6r();Object.defineProperty(aF,"Address4",{enumerable:!0,get:function(){return lDl.Address4}});var uDl=c0s();Object.defineProperty(aF,"Address6",{enumerable:!0,get:function(){return uDl.Address6}});var gDl=iLt();Object.defineProperty(aF,"AddressError",{enumerable:!0,get:function(){return gDl.AddressError}});var ADl=cDl(S6r());aF.v6={helpers:ADl}});var p0s=H(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.ipToBuffer=JH.int32ToIpv4=JH.ipv4ToInt32=JH.validateSocksClientChainOptions=JH.validateSocksClientOptions=void 0;var hL=I6r(),BD=p6r(),dDl=wt("stream"),R6r=T6r(),l0s=wt("net");function pDl(e,t=["connect","bind","associate"]){if(!BD.SocksCommand[e.command])throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommand,e);if(t.indexOf(e.command)===-1)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandForOperation,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!A0s(e.proxy))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);if(u0s(e.proxy,e),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e);if(e.existing_socket&&!(e.existing_socket instanceof dDl.Duplex))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsExistingSocket,e)}JH.validateSocksClientOptions=pDl;function fDl(e){if(e.command!=="connect")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandChain,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!(e.proxies&&Array.isArray(e.proxies)&&e.proxies.length>=2))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxiesLength,e);if(e.proxies.forEach(t=>{if(!A0s(t))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);u0s(t,e)}),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e)}JH.validateSocksClientChainOptions=fDl;function u0s(e,t){if(e.custom_auth_method!==void 0){if(e.custom_auth_methodBD.SOCKS5_CUSTOM_AUTH_END)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthRange,t);if(e.custom_auth_request_handler===void 0||typeof e.custom_auth_request_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_size===void 0)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_handler===void 0||typeof e.custom_auth_response_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t)}}function g0s(e){return e&&typeof e.host=="string"&&typeof e.port=="number"&&e.port>=0&&e.port<=65535}function A0s(e){return e&&(typeof e.host=="string"||typeof e.ipaddress=="string")&&typeof e.port=="number"&&e.port>=0&&e.port<=65535&&(e.type===4||e.type===5)}function d0s(e){return typeof e=="number"&&e>0}function IDl(e){return new R6r.Address4(e).toArray().reduce((r,n)=>(r<<8)+n,0)}JH.ipv4ToInt32=IDl;function hDl(e){let t=e>>>24&255,r=e>>>16&255,n=e>>>8&255,a=e&255;return[t,r,n,a].join(".")}JH.int32ToIpv4=hDl;function mDl(e){if(l0s.isIPv4(e)){let t=new R6r.Address4(e);return Buffer.from(t.toArray())}else if(l0s.isIPv6(e)){let t=new R6r.Address6(e);return Buffer.from(t.canonicalForm().split(":").map(r=>r.padStart(4,"0")).join(""),"hex")}else throw new Error("Invalid IP address format")}JH.ipToBuffer=mDl});var f0s=H(gLt=>{"use strict";Object.defineProperty(gLt,"__esModule",{value:!0});gLt.ReceiveBuffer=void 0;var N6r=class{constructor(t=4096){this.buffer=Buffer.allocUnsafe(t),this.offset=0,this.originalSize=t}get length(){return this.offset}append(t){if(!Buffer.isBuffer(t))throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+t.length>=this.buffer.length){let r=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+t.length)),r.copy(this.buffer)}return t.copy(this.buffer,this.offset),this.offset+=t.length}peek(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,t)}get(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");let r=Buffer.allocUnsafe(t);return this.buffer.slice(0,t).copy(r),this.buffer.copyWithin(0,t,t+this.offset-t),this.offset-=t,r}};gLt.ReceiveBuffer=N6r});var I0s=H(Xue=>{"use strict";var IFe=Xue&&Xue.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(Xue,"__esModule",{value:!0});Xue.SocksClientError=Xue.SocksClient=void 0;var CDl=wt("events"),hFe=wt("net"),eP=Y_s(),lu=p6r(),KO=p0s(),_Dl=f0s(),k6r=I6r();Object.defineProperty(Xue,"SocksClientError",{enumerable:!0,get:function(){return k6r.SocksClientError}});var D6r=T6r(),x6r=class e extends CDl.EventEmitter{constructor(t){super(),this.options=Object.assign({},t),(0,KO.validateSocksClientOptions)(t),this.setState(lu.SocksClientState.Created)}static createConnection(t,r){return new Promise((n,a)=>{try{(0,KO.validateSocksClientOptions)(t,["connect"])}catch(l){return typeof r=="function"?(r(l),n(l)):a(l)}let o=new e(t);o.connect(t.existing_socket),o.once("established",l=>{o.removeAllListeners(),typeof r=="function"&&r(null,l),n(l)}),o.once("error",l=>{o.removeAllListeners(),typeof r=="function"?(r(l),n(l)):a(l)})})}static createConnectionChain(t,r){return new Promise((n,a)=>IFe(this,void 0,void 0,function*(){try{(0,KO.validateSocksClientChainOptions)(t)}catch(o){return typeof r=="function"?(r(o),n(o)):a(o)}t.randomizeChain&&(0,k6r.shuffleArray)(t.proxies);try{let o;for(let l=0;lthis.onDataReceivedHandler(n),this.onClose=()=>this.onCloseHandler(),this.onError=n=>this.onErrorHandler(n),this.onConnect=()=>this.onConnectHandler();let r=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||lu.DEFAULT_TIMEOUT);r.unref&&typeof r.unref=="function"&&r.unref(),t?this.socket=t:this.socket=new hFe.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(lu.SocksClientState.Connecting),this.receiveBuffer=new _Dl.ReceiveBuffer,t?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),this.options.set_tcp_nodelay!==void 0&&this.options.set_tcp_nodelay!==null&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",n=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let a=this.receiveBuffer.get(this.receiveBuffer.length);n.socket.emit("data",a)}n.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.BoundWaitingForConnection&&this.closeSocket(lu.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(lu.SocksClientState.Connected),this.options.proxy.type===4?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(lu.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(t){this.receiveBuffer.append(t),this.processData()}processData(){for(;this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===lu.SocksClientState.SentInitialHandshake)this.options.proxy.type===4?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===lu.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===lu.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===lu.SocksClientState.BoundWaitingForConnection)this.options.proxy.type===4?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(lu.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(lu.ERRORS.SocketClosed)}onErrorHandler(t){this.closeSocket(t.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(t){this.state!==lu.SocksClientState.Error&&(this.setState(lu.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new k6r.SocksClientError(t,this.options)))}sendSocks4InitialHandshake(){let t=this.options.proxy.userId||"",r=new eP.SmartBuffer;r.writeUInt8(4),r.writeUInt8(lu.SocksCommand[this.options.command]),r.writeUInt16BE(this.options.destination.port),hFe.isIPv4(this.options.destination.host)?(r.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host)),r.writeStringNT(t)):(r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(1),r.writeStringNT(t),r.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(r.toBuffer())}handleSocks4FinalHandshakeResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedConnection} - (${lu.Socks4Response[t[1]]})`);else if(lu.SocksCommand[this.options.command]===lu.SocksCommand.bind){let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};n.host==="0.0.0.0"&&(n.host=this.options.proxy.ipaddress),this.setState(lu.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:n,socket:this.socket})}else this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${lu.Socks4Response[t[1]]})`);else{let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:n,socket:this.socket})}}sendSocks5InitialHandshake(){let t=new eP.SmartBuffer,r=[lu.Socks5Auth.NoAuth];(this.options.proxy.userId||this.options.proxy.password)&&r.push(lu.Socks5Auth.UserPass),this.options.proxy.custom_auth_method!==void 0&&r.push(this.options.proxy.custom_auth_method),t.writeUInt8(5),t.writeUInt8(r.length);for(let n of r)t.writeUInt8(n);this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let t=this.receiveBuffer.get(2);t[0]!==5?this.closeSocket(lu.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):t[1]===lu.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):t[1]===lu.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=lu.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):t[1]===lu.Socks5Auth.UserPass?(this.socks5ChosenAuthType=lu.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):t[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let t=this.options.proxy.userId||"",r=this.options.proxy.password||"",n=new eP.SmartBuffer;n.writeUInt8(1),n.writeUInt8(Buffer.byteLength(t)),n.writeString(t),n.writeUInt8(Buffer.byteLength(r)),n.writeString(r),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(n.toBuffer()),this.setState(lu.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return IFe(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write(yield this.options.proxy.custom_auth_request_handler()),this.setState(lu.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(t)})}handleSocks5AuthenticationNoAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleSocks5AuthenticationUserPassHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleInitialSocks5AuthenticationHandshakeResponse(){return IFe(this,void 0,void 0,function*(){this.setState(lu.SocksClientState.ReceivedAuthenticationResponse);let t=!1;this.socks5ChosenAuthType===lu.Socks5Auth.NoAuth?t=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===lu.Socks5Auth.UserPass?t=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(t=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),t?this.sendSocks5CommandRequest():this.closeSocket(lu.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let t=new eP.SmartBuffer;t.writeUInt8(5),t.writeUInt8(lu.SocksCommand[this.options.command]),t.writeUInt8(0),hFe.isIPv4(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv4),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):hFe.isIPv6(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv6),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):(t.writeUInt8(lu.Socks5HostType.Hostname),t.writeUInt8(this.options.destination.host.length),t.writeString(this.options.destination.host)),t.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let t=this.receiveBuffer.peek(5);if(t[0]!==5||t[1]!==lu.Socks5Response.Granted)this.closeSocket(`${lu.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${lu.Socks5Response[t[1]]}`);else{let r=t[3],n,a;if(r===lu.Socks5HostType.IPv4){let o=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length{"use strict";var yDl=P0e&&P0e.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),bDl=P0e&&P0e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&yDl(t,e,r)};Object.defineProperty(P0e,"__esModule",{value:!0});bDl(I0s(),P0e)});var C0s=H(UH=>{"use strict";var EDl=UH&&UH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),SDl=UH&&UH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),m0s=UH&&UH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&EDl(t,e,r);return SDl(t,e),t},vDl=UH&&UH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UH,"__esModule",{value:!0});UH.SocksProxyAgent=void 0;var BDl=h0s(),wDl=mze(),TDl=vDl(uT()),RDl=m0s(wt("dns")),NDl=m0s(wt("tls")),DDl=wt("url"),ALt=(0,TDl.default)("socks-proxy-agent");function kDl(e){let t=!1,r=5,n=e.hostname,a=parseInt(e.port,10)||1080;switch(e.protocol.replace(":","")){case"socks4":t=!0,r=4;break;case"socks4a":r=4;break;case"socks5":t=!0,r=5;break;case"socks":r=5;break;case"socks5h":r=5;break;default:throw new TypeError(`A "socks" protocol must be specified! Got: ${String(e.protocol)}`)}let o={host:n,port:a,type:r};return e.username&&Object.defineProperty(o,"userId",{value:decodeURIComponent(e.username),enumerable:!1}),e.password!=null&&Object.defineProperty(o,"password",{value:decodeURIComponent(e.password),enumerable:!1}),{lookup:t,proxy:o}}var dLt=class extends wDl.Agent{constructor(t,r){super(r);let n=typeof t=="string"?new DDl.URL(t):t,{proxy:a,lookup:o}=kDl(n);this.shouldLookup=o,this.proxy=a,this.timeout=r?.timeout??null,this.socketOptions=r?.socketOptions??null}async connect(t,r){let{shouldLookup:n,proxy:a,timeout:o}=this;if(!r.host)throw new Error("No `host` defined!");let{host:l}=r,{port:A,lookup:f=RDl.lookup}=r;n&&(l=await new Promise((E,N)=>{f(l,{},(B,F)=>{B?N(B):E(F)})}));let I={proxy:a,destination:{host:l,port:typeof A=="number"?A:parseInt(A,10)},command:"connect",timeout:o??void 0,socket_options:this.socketOptions??void 0},C=E=>{t.destroy(),b.destroy(),E&&E.destroy()};ALt("Creating socks proxy connection: %o",I);let{socket:b}=await BDl.SocksClient.createConnection(I);if(ALt("Successfully created socks proxy connection"),o!==null&&(b.setTimeout(o),b.on("timeout",()=>C())),r.secureEndpoint){ALt("Upgrading socket connection to TLS");let E=r.servername||r.host,N=NDl.connect({...xDl(r,"host","path","port"),socket:b,servername:E});return N.once("error",B=>{ALt("Socket TLS error",B.message),C(N)}),N}return b}};dLt.protocols=["socks","socks4","socks4a","socks5","socks5h"];UH.SocksProxyAgent=dLt;function xDl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var P6r=H((rog,_0s)=>{"use strict";var G6r=class extends Error{constructor(t){super(`Invalid protocol \`${t.protocol}\` connecting to proxy \`${t.host}\``),this.code="EINVALIDPROXY",this.proxy=t}},F6r=class extends Error{constructor(t){super(`Timeout connecting to host \`${t}\``),this.code="ECONNECTIONTIMEOUT",this.host=t}},Z6r=class extends Error{constructor(t){super(`Idle timeout reached for host \`${t}\``),this.code="EIDLETIMEOUT",this.host=t}},L6r=class extends Error{constructor(t,r){let n="Response timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`connecting to host \`${t.host}\``,super(n),this.code="ERESPONSETIMEOUT",this.proxy=r,this.request=t}},V6r=class extends Error{constructor(t,r){let n="Transfer timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`for \`${t.host}\``,super(n),this.code="ETRANSFERTIMEOUT",this.proxy=r,this.request=t}};_0s.exports={InvalidProxyProtocolError:G6r,ConnectionTimeoutError:F6r,IdleTimeoutError:Z6r,ResponseTimeoutError:L6r,TransferTimeoutError:V6r}});var W6r=H((nog,b0s)=>{"use strict";var{HttpProxyAgent:GDl}=k_s(),{HttpsProxyAgent:FDl}=V_s(),{SocksProxyAgent:y0s}=C0s(),{LRUCache:ZDl}=yIe(),{InvalidProxyProtocolError:LDl}=P6r(),VDl=new ZDl({max:20}),PDl=new Set(y0s.protocols),WDl=new Set(["https_proxy","http_proxy","proxy","no_proxy"]),bze=Object.entries(process.env).reduce((e,[t,r])=>(t=t.toLowerCase(),WDl.has(t)&&(e[t]=r),e),{}),ODl=e=>{e=new URL(e);let t=e.protocol.slice(0,-1);if(PDl.has(t))return y0s;if(t==="https"||t==="http")return[GDl,FDl];throw new LDl(e)},MDl=(e,t)=>{if(typeof t=="string"&&(t=t.split(",").map(n=>n.trim()).filter(Boolean)),!t||!t.length)return!1;let r=e.hostname.split(".").reverse();return t.some(n=>{let a=n.split(".").filter(Boolean).reverse();if(!a.length)return!1;for(let o=0;o(e=new URL(e),t||(t=e.protocol==="https:"?bze.https_proxy:bze.https_proxy||bze.http_proxy||bze.proxy),r||(r=bze.no_proxy),!t||MDl(e,r)?null:new URL(t));b0s.exports={getProxyAgent:ODl,getProxy:HDl,proxyCache:VDl}});var v0s=H((sog,S0s)=>{"use strict";var YDl=wt("net"),QDl=wt("tls"),{once:E0s}=wt("events"),XDl=wt("timers/promises"),{normalizeOptions:JDl,cacheOptions:UDl}=l6r(),{getProxy:KDl,getProxyAgent:jDl,proxyCache:O6r}=W6r(),pLt=P6r(),{Agent:zDl}=mze();S0s.exports=class extends zDl{#e;#t;#n;#r;#i;constructor(t={}){let{timeouts:r,proxy:n,noProxy:a,...o}=JDl(t);super(o),this.#e=o,this.#t=r,n&&(this.#n=new URL(n),this.#r=a,this.#i=jDl(n))}get proxy(){return this.#n?{url:this.#n}:{}}#s(t){if(!this.#n)return;let r=KDl(`${t.protocol}//${t.host}:${t.port}`,{proxy:this.#n,noProxy:this.#r});if(!r)return;let n=UDl({...t,...this.#e,timeouts:this.#t,proxy:r});if(O6r.has(n))return O6r.get(n);let a=this.#i;Array.isArray(a)&&(a=this.isSecureEndpoint(t)?a[1]:a[0]);let o=new a(r,{...this.#e,socketOptions:{family:this.#e.family}});return O6r.set(n,o),o}async#o({promises:t,options:r,timeout:n},a=new AbortController){if(n){let l=XDl.setTimeout(n,null,{signal:a.signal}).then(()=>{throw new pLt.ConnectionTimeoutError(`${r.host}:${r.port}`)}).catch(A=>{if(A.name!=="AbortError")throw A});t.push(l)}let o;try{o=await Promise.race(t),a.abort()}catch(l){throw a.abort(),l}return o}async connect(t,r){r.lookup??=this.#e.lookup;let n,a=this.#t.connection,o=this.isSecureEndpoint(r),l=this.#s(r);if(l){let C=Date.now();n=await this.#o({options:r,timeout:a,promises:[l.connect(t,r)]}),a&&(a=a-(Date.now()-C))}else n=(o?QDl:YDl).connect(r);n.setKeepAlive(this.keepAlive,this.keepAliveMsecs),n.setNoDelay(this.keepAlive);let A=new AbortController,{signal:f}=A,I=n[o?"secureConnecting":"connecting"]?E0s(n,o?"secureConnect":"connect",{signal:f}):Promise.resolve();return await this.#o({options:r,timeout:a,promises:[I,E0s(n,"error",{signal:f}).then(C=>{throw C[0]})]},A),this.#t.idle&&n.setTimeout(this.#t.idle,()=>{n.destroy(new pLt.IdleTimeoutError(`${r.host}:${r.port}`))}),n}addRequest(t,r){let n=this.#s(r);if(n?.setRequestProps&&n.setRequestProps(t,r),t.setHeader("connection",this.keepAlive?"keep-alive":"close"),this.#t.response){let a;t.once("finish",()=>{setTimeout(()=>{t.destroy(new pLt.ResponseTimeoutError(t,this.#n))},this.#t.response)}),t.once("response",()=>{clearTimeout(a)})}if(this.#t.transfer){let a;t.once("response",o=>{setTimeout(()=>{o.destroy(new pLt.TransferTimeoutError(t,this.#n))},this.#t.transfer),o.once("close",()=>{clearTimeout(a)})})}return super.addRequest(t,r)}}});var R0s=H((oog,T0s)=>{"use strict";var{LRUCache:qDl}=yIe(),{normalizeOptions:$Dl,cacheOptions:ekl}=l6r(),{getProxy:tkl,proxyCache:B0s}=W6r(),w0s=c6r(),fLt=v0s(),Eze=new qDl({max:20}),rkl=(e,{agent:t,proxy:r,noProxy:n,...a}={})=>{if(t!=null)return t;e=new URL(e);let o=tkl(e,{proxy:r,noProxy:n}),l={...$Dl(a),proxy:o},A=ekl({...l,secureEndpoint:e.protocol==="https:"});if(Eze.has(A))return Eze.get(A);let f=new fLt(l);return Eze.set(A,f),f};T0s.exports={getAgent:rkl,Agent:fLt,HttpAgent:fLt,HttpsAgent:fLt,cache:{proxy:B0s,agent:Eze,dns:w0s.cache,clear:()=>{B0s.clear(),Eze.clear(),w0s.cache.clear()}}}});var N0s=H((aog,nkl)=>{nkl.exports={name:"make-fetch-happen",version:"14.0.3",description:"Opinionated, caching, retrying fetch client",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",posttest:"npm run lint",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"',lint:"npm run eslint",lintfix:"npm run eslint -- --fix",postlint:"template-oss-check",snap:"tap","template-oss-apply":"template-oss-apply --force"},repository:{type:"git",url:"git+https://github.com/npm/make-fetch-happen.git"},keywords:["http","request","fetch","mean girls","caching","cache","subresource integrity"],author:"GitHub Inc.",license:"ISC",dependencies:{"@npmcli/agent":"^3.0.0",cacache:"^19.0.1","http-cache-semantics":"^4.1.1",minipass:"^7.0.2","minipass-fetch":"^4.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4",negotiator:"^1.0.0","proc-log":"^5.0.0","promise-retry":"^2.0.1",ssri:"^12.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.4",nock:"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},tap:{color:1,files:"test/*.js","check-coverage":!0,timeout:60,"nyc-arg":["--exclude","tap-snapshots/**"]},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.4",publish:"true"}}});var hLt=H((cog,k0s)=>{var{Minipass:ikl}=rF(),ILt=H7e(),skl=o6r(),okl=Jte(),{log:D0s}=a6r(),akl=s6r(),{getAgent:ckl}=R0s(),M6r=N0s(),lkl=`${M6r.name}/${M6r.version} (+https://npm.im/${M6r.name})`,ukl=["ECONNRESET","ECONNREFUSED","EADDRINUSE","ETIMEDOUT","ECONNECTIONTIMEOUT","EIDLETIMEOUT","ERESPONSETIMEOUT","ETRANSFERTIMEOUT"],gkl=["request-timeout"],Akl=(e,t)=>{let r=ckl(e.url,{...t,signal:void 0});e.headers.has("connection")||e.headers.set("connection",r?"keep-alive":"close"),e.headers.has("user-agent")||e.headers.set("user-agent",lkl);let n={...t,agent:r,redirect:"manual"};return skl(async(a,o)=>{let l=new ILt.Request(e,n);try{let A=await ILt(l,n);if(n.integrity&&A.status===200){let C=okl.integrityStream({algorithms:n.algorithms,integrity:n.integrity,size:n.size}),b=new akl({events:["integrity","size"]},A.body,C);C.on("integrity",E=>b.emit("integrity",E)),C.on("size",E=>b.emit("size",E)),A=new ILt.Response(b,A),A.body.hasIntegrityEmitter=!0}A.headers.set("x-fetch-attempts",o);let f=ikl.isStream(l.body);return l.method!=="POST"&&!f&&([408,420,429].includes(A.status)||A.status>=500)?(typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.status}`),a(A)):A}catch(A){let f=A.code==="EPROMISERETRY"?A.retried.code:A.code,I=A.retried instanceof ILt.Response||ukl.includes(f)&&gkl.includes(A.type);if(l.method==="POST"||I)throw A;return typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.code}`),a(A)}},t.retry).catch(a=>{if(a.status>=400&&a.type!=="system")return a;throw a})};k0s.exports=Akl});var V0s=H((log,L0s)=>{var{Request:x0s,Response:H6r}=H7e(),{Minipass:G0s}=rF(),dkl=sZt(),W0e=s_s(),pkl=wt("url"),fkl=s6r(),Ikl=O8r(),Y6r=c_s(),hkl=hLt(),Sze=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),mkl=["accept-charset","accept-encoding","accept-language","accept","cache-control"],Z0s=["cache-control","content-encoding","content-language","content-type","date","etag","expires","last-modified","link","location","pragma","vary"],F0s=(e,t,r)=>{let n={time:Date.now(),url:e.url,reqHeaders:{},resHeaders:{},options:{compress:r.compress!=null?r.compress:e.compress}};t.status!==200&&t.status!==304&&(n.status=t.status);for(let l of mkl)e.headers.has(l)&&(n.reqHeaders[l]=e.headers.get(l));let a=e.headers.get("host"),o=new pkl.URL(e.url);if(a&&o.host!==a&&(n.reqHeaders.host=a),t.headers.has("vary")){let l=t.headers.get("vary");if(l!=="*"){let A=l.trim().toLowerCase().split(/\s*,\s*/);for(let f of A)e.headers.has(f)&&(n.reqHeaders[f]=e.headers.get(f))}}for(let l of Z0s)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));for(let l of r.cacheAdditionalHeaders)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));return n},mLt=Symbol("request"),CLt=Symbol("response"),_Lt=Symbol("policy"),Q6r=class e{constructor({entry:t,request:r,response:n,options:a}){t?(this.key=t.key,this.entry=t,this.entry.metadata.time=this.entry.metadata.time||this.entry.time):this.key=Y6r(r),this.options=a,this[mLt]=r,this[CLt]=n,this[_Lt]=null}static async find(t,r){try{var n=await W0e.index.compact(r.cachePath,Y6r(t),(o,l)=>{let A=new e({entry:o,options:r}),f=new e({entry:l,options:r});return A.policy.satisfies(f.request)},{validateEntry:o=>o.metadata&&o.metadata.resHeaders&&o.metadata.resHeaders["content-encoding"]===null?!1:o.integrity===null?!!(o.metadata&&o.metadata.status):!0})}catch{return}if(r.cache==="reload")return;let a;for(let o of n){let l=new e({entry:o,options:r});if(l.policy.satisfies(t)){a=l;break}}return a}static async invalidate(t,r){let n=Y6r(t);try{await W0e.rm.entry(r.cachePath,n,{removeFully:!0})}catch{}}get request(){return this[mLt]||(this[mLt]=new x0s(this.entry.metadata.url,{method:"GET",headers:this.entry.metadata.reqHeaders,...this.entry.metadata.options})),this[mLt]}get response(){return this[CLt]||(this[CLt]=new H6r(null,{url:this.entry.metadata.url,counter:this.options.counter,status:this.entry.metadata.status||200,headers:{...this.entry.metadata.resHeaders,"content-length":this.entry.size}})),this[CLt]}get policy(){return this[_Lt]||(this[_Lt]=new Ikl({entry:this.entry,request:this.request,response:this.response,options:this.options})),this[_Lt]}async store(t){if(this.request.method!=="GET"||![200,301,308].includes(this.response.status)||!this.policy.storable())return this.response.headers.set("x-local-cache-status","skip"),this.response;let r=this.response.headers.get("content-length"),n={algorithms:this.options.algorithms,metadata:F0s(this.request,this.response,this.options),size:r,integrity:this.options.integrity,integrityEmitter:this.response.body.hasIntegrityEmitter&&this.response.body},a=null;if(this.response.status===200){let l,A,f=new Promise((C,b)=>{l=C,A=b}).catch(C=>{a.emit("error",C)});a=new fkl({events:["integrity","size"]},new dkl({flush(){return f}})),a.hasIntegrityEmitter=!0;let I=()=>{let C=new G0s,b=W0e.put.stream(this.options.cachePath,this.key,n);b.on("integrity",E=>a.emit("integrity",E)),b.on("size",E=>a.emit("size",E)),C.pipe(b),b.promise().then(l,A),a.unshift(C),a.unshift(this.response.body)};a.once("resume",I),a.once("end",()=>a.removeListener("resume",I))}else await W0e.index.insert(this.options.cachePath,this.key,null,n);return this.response.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),this.response.headers.set("x-local-cache-key",encodeURIComponent(this.key)),this.response.headers.set("x-local-cache-mode","stream"),this.response.headers.set("x-local-cache-status",t),this.response.headers.set("x-local-cache-time",new Date().toISOString()),new H6r(a,{url:this.response.url,status:this.response.status,headers:this.response.headers,counter:this.options.counter})}async respond(t,r,n){let a;if(t==="HEAD"||[301,308].includes(this.response.status))a=this.response;else{let o=new G0s,l={...this.policy.responseHeaders()},A=()=>{let f=W0e.get.stream.byDigest(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize});f.on("error",async I=>{f.pause(),I.code==="EINTEGRITY"&&await W0e.rm.content(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize}),(I.code==="ENOENT"||I.code==="EINTEGRITY")&&await e.invalidate(this.request,this.options),o.emit("error",I),f.resume()}),o.emit("integrity",this.entry.integrity),o.emit("size",Number(l["content-length"])),f.pipe(o)};o.once("resume",A),o.once("end",()=>o.removeListener("resume",A)),a=new H6r(o,{url:this.entry.metadata.url,counter:r.counter,status:200,headers:l})}return a.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),a.headers.set("x-local-cache-hash",encodeURIComponent(this.entry.integrity)),a.headers.set("x-local-cache-key",encodeURIComponent(this.key)),a.headers.set("x-local-cache-mode","stream"),a.headers.set("x-local-cache-status",n),a.headers.set("x-local-cache-time",new Date(this.entry.metadata.time).toUTCString()),a}async revalidate(t,r){let n=new x0s(t,{headers:this.policy.revalidationHeaders(t)});try{var a=await hkl(n,{...r,headers:void 0})}catch(l){if(!this.policy.mustRevalidate)return this.respond(t.method,r,"stale");throw l}if(this.policy.revalidated(n,a)){let l=F0s(t,a,r);for(let A of Z0s)!Sze(l.resHeaders,A)&&Sze(this.entry.metadata.resHeaders,A)&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]);for(let A of r.cacheAdditionalHeaders){let f=Sze(l.resHeaders,A),I=Sze(this.entry.metadata.resHeaders,A),C=Sze(this.policy.response.headers,A);!f&&I&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]),!C&&f&&(this.policy.response.headers[A]=l.resHeaders[A])}try{await W0e.index.insert(r.cachePath,this.key,this.entry.integrity,{size:this.entry.size,metadata:l})}catch{}return this.respond(t.method,r,"revalidated")}return new e({request:t,response:a,options:r}).store("updated")}};L0s.exports=Q6r});var O0s=H((uog,W0s)=>{var{NotCachedError:Ckl}=bhs(),X6r=V0s(),_kl=hLt(),P0s=async(e,t)=>{let r=await X6r.find(e,t);if(!r){if(t.cache==="only-if-cached")throw new Ckl(e.url);let a=await _kl(e,t);return new X6r({request:e,response:a,options:t}).store("miss")}if(t.cache==="no-cache")return r.revalidate(e,t);let n=r.policy.needsRevalidation(e);return t.cache==="force-cache"||t.cache==="only-if-cached"||!n?r.respond(e.method,t,n?"stale":"hit"):r.revalidate(e,t)};P0s.invalidate=async(e,t)=>{if(t.cachePath)return X6r.invalidate(e,t)};W0s.exports=P0s});var Q0s=H((gog,Y0s)=>{"use strict";var{FetchError:J6r,Request:ykl,isRedirect:bkl}=H7e(),U6r=wt("url"),Ekl=O8r(),M0s=O0s(),Skl=hLt(),vkl=(e,t,r)=>{if(!bkl(t.status)||r.redirect==="manual")return!1;if(r.redirect==="error")throw new J6r(`redirect mode is set to error: ${e.url}`,"no-redirect",{code:"ENOREDIRECT"});if(!t.headers.has("location"))throw new J6r(`redirect location header missing for: ${e.url}`,"no-location",{code:"EINVALIDREDIRECT"});if(e.counter>=e.follow)throw new J6r(`maximum redirect reached at: ${e.url}`,"max-redirect",{code:"EMAXREDIRECT"});return!0},Bkl=(e,t,r)=>{let n={...r},a=t.headers.get("location"),o=new U6r.URL(a,/^https?:/.test(a)?void 0:e.url);return new U6r.URL(e.url).hostname!==o.hostname&&(e.headers.delete("authorization"),e.headers.delete("cookie")),(t.status===303||e.method==="POST"&&[301,302].includes(t.status))&&(n.method="GET",n.body=null,e.headers.delete("content-length")),n.headers={},e.headers.forEach((A,f)=>{n.headers[f]=A}),n.counter=++e.counter,{request:new ykl(U6r.format(o),n),options:n}},H0s=async(e,t)=>{let r=Ekl.storable(e,t)?await M0s(e,t):await Skl(e,t);if(!["GET","HEAD"].includes(e.method)&&r.status>=200&&r.status<=399&&await M0s.invalidate(e,t),!vkl(e,r,t))return r;let n=Bkl(e,r,t);return H0s(n.request,n.options)};Y0s.exports=H0s});var bLt=H((Aog,mFe)=>{var{FetchError:wkl,Headers:Tkl,Request:X0s,Response:Rkl}=H7e(),Nkl=KIs(),Dkl=Q0s(),yLt=(e,t)=>{let r=Nkl(t),n=new X0s(e,r);return Dkl(n,r)};yLt.defaults=(e,t={},r=yLt)=>{typeof e=="object"&&(t=e,e=null);let n=(a,o={})=>{let l=a||e,A={...t,...o,headers:{...t.headers,...o.headers}};return r(l,A)};return n.defaults=(a,o={})=>yLt.defaults(a,o,n),n};mFe.exports=yLt;mFe.exports.FetchError=wkl;mFe.exports.Headers=Tkl;mFe.exports.Request=X0s;mFe.exports.Response=Rkl});var J0s=H(CFe=>{"use strict";var kkl=CFe&&CFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(CFe,"__esModule",{value:!0});CFe.CIContextProvider=void 0;var xkl=kkl(bLt()),Gkl=[Fkl,Zkl],K6r=class{constructor(t="sigstore"){this.audience=t}async getToken(){return Promise.any(Gkl.map(t=>t(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};CFe.CIContextProvider=K6r;async function Fkl(e){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let t=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return t.searchParams.append("audience",e),(await(0,xkl.default)(t.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(n=>n.value)}async function Zkl(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var U0s=H(ELt=>{"use strict";Object.defineProperty(ELt,"__esModule",{value:!0});ELt.CIContextProvider=void 0;var Lkl=J0s();Object.defineProperty(ELt,"CIContextProvider",{enumerable:!0,get:function(){return Lkl.CIContextProvider}})});var SLt=H(vze=>{"use strict";var j0s=vze&&vze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vze,"__esModule",{value:!0});vze.fetchWithRetry=Kkl;var Vkl=wt("http2"),Pkl=j0s(bLt()),K0s=a6r(),Wkl=j0s(o6r()),Okl=Zue(),Mkl=BFt(),{HTTP2_HEADER_LOCATION:Hkl,HTTP2_HEADER_CONTENT_TYPE:Ykl,HTTP2_HEADER_USER_AGENT:Qkl,HTTP_STATUS_INTERNAL_SERVER_ERROR:Xkl,HTTP_STATUS_TOO_MANY_REQUESTS:Jkl,HTTP_STATUS_REQUEST_TIMEOUT:Ukl}=Vkl.constants;async function Kkl(e,t){return(0,Wkl.default)(async(r,n)=>{let a=t.method||"POST",o={[Qkl]:Okl.ua.getUserAgent(),...t.headers},l=await(0,Pkl.default)(e,{method:a,headers:o,body:t.body,timeout:t.timeout,retry:!1}).catch(A=>(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${A}`),r(A)));if(l.ok)return l;{let A=await jkl(l);if(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${l.status}`),zkl(l.status))return r(A);throw A}},qkl(t.retry))}var jkl=async e=>{let t=e.statusText,r=e.headers.get(Hkl)||void 0;if(e.headers.get(Ykl)?.includes("application/json"))try{t=(await e.json()).message||t}catch{}return new Mkl.HTTPError({status:e.status,message:t,location:r})},zkl=e=>[Ukl,Jkl].includes(e)||e>=Xkl,qkl=e=>typeof e=="boolean"?{retries:e?1:0}:typeof e=="number"?{retries:e}:{retries:0,...e}});var z0s=H(vLt=>{"use strict";Object.defineProperty(vLt,"__esModule",{value:!0});vLt.Fulcio=void 0;var $kl=SLt(),j6r=class{constructor(t){this.options=t}async createSigningCertificate(t){let{baseURL:r,retry:n,timeout:a}=this.options,o=`${r}/api/v2/signingCert`;return(await(0,$kl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:a,retry:n})).json()}};vLt.Fulcio=j6r});var q0s=H(BLt=>{"use strict";Object.defineProperty(BLt,"__esModule",{value:!0});BLt.CAClient=void 0;var exl=PGe(),txl=z0s(),z6r=class{constructor(t){this.fulcio=new txl.Fulcio({baseURL:t.fulcioBaseURL,retry:t.retry,timeout:t.timeout})}async createSigningCertificate(t,r,n){let a=rxl(t,r,n);try{let o=await this.fulcio.createSigningCertificate(a);return(o.signedCertificateEmbeddedSct?o.signedCertificateEmbeddedSct:o.signedCertificateDetachedSct).chain.certificates}catch(o){(0,exl.internalError)(o,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};BLt.CAClient=z6r;function rxl(e,t,r){return{credentials:{oidcIdentityToken:e},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:t},proofOfPossession:r.toString("base64")}}}});var eys=H(_Fe=>{"use strict";var nxl=_Fe&&_Fe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Fe,"__esModule",{value:!0});_Fe.EphemeralSigner=void 0;var $0s=nxl(wt("crypto")),ixl="ec",sxl="P-256",q6r=class{constructor(){this.keypair=$0s.default.generateKeyPairSync(ixl,{namedCurve:sxl})}async sign(t){let r=$0s.default.sign(null,t,this.keypair.privateKey),n=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:n}}}};_Fe.EphemeralSigner=q6r});var tys=H(O0e=>{"use strict";Object.defineProperty(O0e,"__esModule",{value:!0});O0e.FulcioSigner=O0e.DEFAULT_FULCIO_URL=void 0;var $6r=PGe(),oxl=Zue(),axl=q0s(),cxl=eys();O0e.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var e7r=class{constructor(t){this.ca=new axl.CAClient({...t,fulcioBaseURL:t.fulcioBaseURL||O0e.DEFAULT_FULCIO_URL}),this.identityProvider=t.identityProvider,this.keyHolder=t.keyHolder||new cxl.EphemeralSigner}async sign(t){let r=await this.getIdentityToken(),n;try{n=oxl.oidc.extractJWTSubject(r)}catch(A){throw new $6r.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:A})}let a=await this.keyHolder.sign(Buffer.from(n));if(a.key.$case!=="publicKey")throw new $6r.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let o=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(t)).signature,key:{$case:"x509Certificate",certificate:o[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(t){throw new $6r.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:t})}}};O0e.FulcioSigner=e7r});var nys=H(yFe=>{"use strict";Object.defineProperty(yFe,"__esModule",{value:!0});yFe.FulcioSigner=yFe.DEFAULT_FULCIO_URL=void 0;var rys=tys();Object.defineProperty(yFe,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return rys.DEFAULT_FULCIO_URL}});Object.defineProperty(yFe,"FulcioSigner",{enumerable:!0,get:function(){return rys.FulcioSigner}})});var oys=H(wLt=>{"use strict";Object.defineProperty(wLt,"__esModule",{value:!0});wLt.Rekor=void 0;var iys=SLt(),t7r=class{constructor(t){this.options=t}async createEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries`,A=await(await(0,iys.fetchWithRetry)(o,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).json();return sys(A)}async getEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries/${t}`,A=await(await(0,iys.fetchWithRetry)(o,{method:"GET",headers:{Accept:"application/json"},timeout:n,retry:a})).json();return sys(A)}};wLt.Rekor=t7r;function sys(e){let t=Object.entries(e);if(t.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,n]=t[0];return{...n,uuid:r}}});var cys=H(TLt=>{"use strict";Object.defineProperty(TLt,"__esModule",{value:!0});TLt.TLogClient=void 0;var ays=PGe(),lxl=BFt(),uxl=oys(),r7r=class{constructor(t){this.fetchOnConflict=t.fetchOnConflict??!1,this.rekor=new uxl.Rekor({baseURL:t.rekorBaseURL,retry:t.retry,timeout:t.timeout})}async createEntry(t){let r;try{r=await this.rekor.createEntry(t)}catch(n){if(gxl(n)&&this.fetchOnConflict){let a=n.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(o){(0,ays.internalError)(o,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,ays.internalError)(n,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};TLt.TLogClient=r7r;function gxl(e){return e instanceof lxl.HTTPError&&e.statusCode===409&&e.location!==void 0}});var lys=H(n7r=>{"use strict";Object.defineProperty(n7r,"__esModule",{value:!0});n7r.toProposedEntry=dxl;var Axl=S7e(),Jue=Zue(),Bze="sha256";function dxl(e,t,r="dsse"){switch(e.$case){case"dsseEnvelope":return r==="intoto"?Ixl(e.dsseEnvelope,t):fxl(e.dsseEnvelope,t);case"messageSignature":return pxl(e.messageSignature,t)}}function pxl(e,t){let r=e.messageDigest.digest.toString("hex"),n=e.signature.toString("base64"),a=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:Bze,value:r}},signature:{content:n,publicKey:{content:a}}}}}function fxl(e,t){let r=JSON.stringify((0,Axl.envelopeToJSON)(e)),n=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[n]}}}}function Ixl(e,t){let r=Jue.crypto.digest(Bze,e.payload).toString("hex"),n=hxl(e,t),a=Jue.encoding.base64Encode(e.payload.toString("base64")),o=Jue.encoding.base64Encode(e.signatures[0].sig.toString("base64")),l=e.signatures[0].keyid,A=Jue.encoding.base64Encode(t),f={payloadType:e.payloadType,payload:a,signatures:[{sig:o,publicKey:A}]};return l.length>0&&(f.signatures[0].keyid=l),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:f,hash:{algorithm:Bze,value:n},payloadHash:{algorithm:Bze,value:r}}}}}function hxl(e,t){let r={payloadType:e.payloadType,payload:e.payload.toString("base64"),signatures:[{sig:e.signatures[0].sig.toString("base64"),publicKey:t}]};return e.signatures[0].keyid.length>0&&(r.signatures[0].keyid=e.signatures[0].keyid),Jue.crypto.digest(Bze,Jue.json.canonicalize(r)).toString("hex")}});var uys=H(M0e=>{"use strict";Object.defineProperty(M0e,"__esModule",{value:!0});M0e.RekorWitness=M0e.DEFAULT_REKOR_URL=void 0;var mxl=Zue(),Cxl=cys(),_xl=lys();M0e.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var i7r=class{constructor(t){this.entryType=t.entryType,this.tlog=new Cxl.TLogClient({...t,rekorBaseURL:t.rekorBaseURL||M0e.DEFAULT_REKOR_URL})}async testify(t,r){let n=(0,_xl.toProposedEntry)(t,r,this.entryType),a=await this.tlog.createEntry(n);return yxl(a)}};M0e.RekorWitness=i7r;function yxl(e){let t=Buffer.from(e.logID,"hex"),r=mxl.encoding.base64Decode(e.body),n=JSON.parse(r),a=e?.verification?.signedEntryTimestamp?bxl(e.verification.signedEntryTimestamp):void 0,o=e?.verification?.inclusionProof?Exl(e.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:e.logIndex.toString(),logId:{keyId:t},integratedTime:e.integratedTime.toString(),kindVersion:{kind:n.kind,version:n.apiVersion},inclusionPromise:a,inclusionProof:o,canonicalizedBody:Buffer.from(e.body,"base64")}]}}function bxl(e){return{signedEntryTimestamp:Buffer.from(e,"base64")}}function Exl(e){return{logIndex:e.logIndex.toString(),treeSize:e.treeSize.toString(),rootHash:Buffer.from(e.rootHash,"hex"),hashes:e.hashes.map(t=>Buffer.from(t,"hex")),checkpoint:{envelope:e.checkpoint}}}});var gys=H(RLt=>{"use strict";Object.defineProperty(RLt,"__esModule",{value:!0});RLt.TimestampAuthority=void 0;var Sxl=SLt(),s7r=class{constructor(t){this.options=t}async createTimestamp(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/timestamp`;return(await(0,Sxl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).buffer()}};RLt.TimestampAuthority=s7r});var dys=H(NLt=>{"use strict";Object.defineProperty(NLt,"__esModule",{value:!0});NLt.TSAClient=void 0;var vxl=PGe(),Bxl=gys(),wxl=Zue(),Ays="sha256",o7r=class{constructor(t){this.tsa=new Bxl.TimestampAuthority({baseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async createTimestamp(t){let r={artifactHash:wxl.crypto.digest(Ays,t).toString("base64"),hashAlgorithm:Ays};try{return await this.tsa.createTimestamp(r)}catch(n){(0,vxl.internalError)(n,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};NLt.TSAClient=o7r});var pys=H(DLt=>{"use strict";Object.defineProperty(DLt,"__esModule",{value:!0});DLt.TSAWitness=void 0;var Txl=dys(),a7r=class{constructor(t){this.tsa=new Txl.TSAClient({tsaBaseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async testify(t){let r=Rxl(t);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};DLt.TSAWitness=a7r;function Rxl(e){switch(e.$case){case"dsseEnvelope":return e.dsseEnvelope.signatures[0].sig;case"messageSignature":return e.messageSignature.signature}}});var Iys=H(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});Uue.TSAWitness=Uue.RekorWitness=Uue.DEFAULT_REKOR_URL=void 0;var fys=uys();Object.defineProperty(Uue,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return fys.DEFAULT_REKOR_URL}});Object.defineProperty(Uue,"RekorWitness",{enumerable:!0,get:function(){return fys.RekorWitness}});var Nxl=pys();Object.defineProperty(Uue,"TSAWitness",{enumerable:!0,get:function(){return Nxl.TSAWitness}})});var l7r=H(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});BT.TSAWitness=BT.RekorWitness=BT.DEFAULT_REKOR_URL=BT.FulcioSigner=BT.DEFAULT_FULCIO_URL=BT.CIContextProvider=BT.InternalError=BT.MessageSignatureBundleBuilder=BT.DSSEBundleBuilder=void 0;var hys=Efs();Object.defineProperty(BT,"DSSEBundleBuilder",{enumerable:!0,get:function(){return hys.DSSEBundleBuilder}});Object.defineProperty(BT,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return hys.MessageSignatureBundleBuilder}});var Dxl=PGe();Object.defineProperty(BT,"InternalError",{enumerable:!0,get:function(){return Dxl.InternalError}});var kxl=U0s();Object.defineProperty(BT,"CIContextProvider",{enumerable:!0,get:function(){return kxl.CIContextProvider}});var mys=nys();Object.defineProperty(BT,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return mys.DEFAULT_FULCIO_URL}});Object.defineProperty(BT,"FulcioSigner",{enumerable:!0,get:function(){return mys.FulcioSigner}});var c7r=Iys();Object.defineProperty(BT,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return c7r.DEFAULT_REKOR_URL}});Object.defineProperty(BT,"RekorWitness",{enumerable:!0,get:function(){return c7r.RekorWitness}});Object.defineProperty(BT,"TSAWitness",{enumerable:!0,get:function(){return c7r.TSAWitness}})});var _ys=H(wze=>{"use strict";var Cys=wze&&wze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wze,"__esModule",{value:!0});wze.appDataPath=Gxl;var xxl=Cys(wt("os")),bFe=Cys(wt("path"));function Gxl(e){let t=xxl.default.homedir();switch(process.platform){case"darwin":{let r=bFe.default.join(t,"Library","Application Support");return bFe.default.join(r,e)}case"win32":{let r=process.env.LOCALAPPDATA||bFe.default.join(t,"AppData","Local");return bFe.default.join(r,e,"Data")}default:{let r=process.env.XDG_DATA_HOME||bFe.default.join(t,".local","share");return bFe.default.join(r,e)}}}});var O6=H(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.UnsupportedAlgorithmError=tP.CryptoError=tP.LengthOrHashMismatchError=tP.UnsignedMetadataError=tP.RepositoryError=tP.ValueError=void 0;var u7r=class extends Error{};tP.ValueError=u7r;var Tze=class extends Error{};tP.RepositoryError=Tze;var g7r=class extends Tze{};tP.UnsignedMetadataError=g7r;var A7r=class extends Tze{};tP.LengthOrHashMismatchError=A7r;var kLt=class extends Error{};tP.CryptoError=kLt;var d7r=class extends kLt{};tP.UnsupportedAlgorithmError=d7r});var bys=H(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});Kue.isDefined=Fxl;Kue.isObject=yys;Kue.isStringArray=Zxl;Kue.isObjectArray=Lxl;Kue.isStringRecord=Vxl;Kue.isObjectRecord=Pxl;function Fxl(e){return e!==void 0}function yys(e){return typeof e=="object"&&e!==null}function Zxl(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Lxl(e){return Array.isArray(e)&&e.every(yys)}function Vxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="string")}function Pxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="object"&&t!==null)}});var f7r=H((xog,vys)=>{var Eys=",",Wxl=":",Oxl="[",Mxl="]",Hxl="{",Yxl="}";function p7r(e){let t=[];if(typeof e=="string")t.push(Sys(e));else if(typeof e=="boolean")t.push(JSON.stringify(e));else if(Number.isInteger(e))t.push(JSON.stringify(e));else if(e===null)t.push(JSON.stringify(e));else if(Array.isArray(e)){t.push(Oxl);let r=!0;e.forEach(n=>{r||t.push(Eys),r=!1,t.push(p7r(n))}),t.push(Mxl)}else if(typeof e=="object"){t.push(Hxl);let r=!0;Object.keys(e).sort().forEach(n=>{r||t.push(Eys),r=!1,t.push(Sys(n)),t.push(Wxl),t.push(p7r(e[n]))}),t.push(Yxl)}else throw new TypeError("cannot encode "+e.toString());return t.join("")}function Sys(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}vys.exports={canonicalize:p7r}});var Bys=H(EFe=>{"use strict";var Qxl=EFe&&EFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EFe,"__esModule",{value:!0});EFe.verifySignature=void 0;var Xxl=f7r(),Jxl=Qxl(wt("crypto")),Uxl=(e,t,r)=>{let n=Buffer.from((0,Xxl.canonicalize)(e));return Jxl.default.verify(void 0,n,t,Buffer.from(r,"hex"))};EFe.verifySignature=Uxl});var iJ=H(KH=>{"use strict";var Kxl=KH&&KH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),jxl=KH&&KH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wys=KH&&KH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Kxl(t,e,r);return jxl(t,e),t};Object.defineProperty(KH,"__esModule",{value:!0});KH.crypto=KH.guard=void 0;KH.guard=wys(bys());KH.crypto=wys(Bys())});var H0e=H(Are=>{"use strict";var zxl=Are&&Are.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Are,"__esModule",{value:!0});Are.Signed=Are.MetadataKind=void 0;Are.isMetadataKind=$xl;var qxl=zxl(wt("util")),Rze=O6(),I7r=iJ(),Tys=["1","0","31"],h7r;(function(e){e.Root="root",e.Timestamp="timestamp",e.Snapshot="snapshot",e.Targets="targets"})(h7r||(Are.MetadataKind=h7r={}));function $xl(e){return typeof e=="string"&&Object.values(h7r).includes(e)}var m7r=class e{constructor(t){this.specVersion=t.specVersion||Tys.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(n=>eGl(n)))throw new Rze.ValueError("Failed to parse specVersion");if(r[0]!=Tys[0])throw new Rze.ValueError("Unsupported specVersion");this.expires=t.expires,this.version=t.version,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.specVersion===t.specVersion&&this.expires===t.expires&&this.version===t.version&&qxl.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}isExpired(t){return t||(t=new Date),t>=new Date(this.expires)}static commonFieldsFromJSON(t){let{spec_version:r,expires:n,version:a,...o}=t;if(I7r.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new Rze.ValueError("spec_version is not defined");if(I7r.guard.isDefined(n)){if(typeof n!="string")throw new TypeError("expires must be a string")}else throw new Rze.ValueError("expires is not defined");if(I7r.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new Rze.ValueError("version is not defined");return{specVersion:r,expires:n,version:a,unrecognizedFields:o}}};Are.Signed=m7r;function eGl(e){return!isNaN(Number(e))}});var Nze=H(zue=>{"use strict";var Rys=zue&&zue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zue,"__esModule",{value:!0});zue.TargetFile=zue.MetaFile=void 0;var Nys=Rys(wt("crypto")),GLt=Rys(wt("util")),jue=O6(),xLt=iJ(),C7r=class e{constructor(t){if(t.version<=0)throw new jue.ValueError("Metafile version must be at least 1");t.length!==void 0&&Dys(t.length),this.version=t.version,this.length=t.length,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.version===t.version&&this.length===t.length&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}verify(t){if(this.length!==void 0&&t.length!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${t.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,n])=>{let a;try{a=Nys.default.createHash(r)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let o=a.update(t).digest("hex");if(o!==n)throw new jue.LengthOrHashMismatchError(`Expected hash ${n} but got ${o}`)})}toJSON(){let t={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(t.length=this.length),this.hashes&&(t.hashes=this.hashes),t}static fromJSON(t){let{version:r,length:n,hashes:a,...o}=t;if(typeof r!="number")throw new TypeError("version must be a number");if(xLt.guard.isDefined(n)&&typeof n!="number")throw new TypeError("length must be a number");if(xLt.guard.isDefined(a)&&!xLt.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new e({version:r,length:n,hashes:a,unrecognizedFields:o})}};zue.MetaFile=C7r;var _7r=class e{constructor(t){Dys(t.length),this.length=t.length,this.path=t.path,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}get custom(){let t=this.unrecognizedFields.custom;return!t||Array.isArray(t)||typeof t!="object"?{}:t}equals(t){return t instanceof e?this.length===t.length&&this.path===t.path&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}async verify(t){let r=0,n=Object.keys(this.hashes).reduce((a,o)=>{try{a[o]=Nys.default.createHash(o)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${o} not supported`)}return a},{});for await(let a of t)r+=a.length,Object.values(n).forEach(o=>{o.update(a)});if(r!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(n).forEach(([a,o])=>{let l=this.hashes[a],A=o.digest("hex");if(A!==l)throw new jue.LengthOrHashMismatchError(`Expected hash ${l} but got ${A}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(t,r){let{length:n,hashes:a,...o}=r;if(typeof n!="number")throw new TypeError("length must be a number");if(!xLt.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new e({length:n,path:t,hashes:a,unrecognizedFields:o})}};zue.TargetFile=_7r;function Dys(e){if(e<0)throw new jue.ValueError("Length must be at least 0")}});var kys=H(y7r=>{"use strict";Object.defineProperty(y7r,"__esModule",{value:!0});y7r.encodeOIDString=rGl;var tGl=6;function rGl(e){let t=e.split("."),r=parseInt(t[0],10)*40+parseInt(t[1],10),n=[];t.slice(2).forEach(o=>{let l=nGl(parseInt(o,10));n.push(...l)});let a=Buffer.from([r,...n]);return Buffer.from([tGl,a.length,...a])}function nGl(e){let t=[],r=0;for(;e>0;)t.unshift(e&127|r),e>>=7,r=128;return t}});var Zys=H(kze=>{"use strict";var iGl=kze&&kze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kze,"__esModule",{value:!0});kze.getPublicKey=cGl;var SFe=iGl(wt("crypto")),Dze=O6(),b7r=kys(),FLt=48,xys=3,Gys=0,sGl="1.3.101.112",oGl="1.2.840.10045.2.1",aGl="1.2.840.10045.3.1.7",E7r="-----BEGIN PUBLIC KEY-----";function cGl(e){switch(e.keyType){case"rsa":return lGl(e);case"ed25519":return uGl(e);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return gGl(e);default:throw new Dze.UnsupportedAlgorithmError(`Unsupported key type: ${e.keyType}`)}}function lGl(e){if(!e.keyVal.startsWith(E7r))throw new Dze.CryptoError("Invalid key format");let t=SFe.default.createPublicKey(e.keyVal);switch(e.scheme){case"rsassa-pss-sha256":return{key:t,padding:SFe.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new Dze.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${e.scheme}`)}}function uGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:AGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}function gGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:dGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}var AGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=(0,b7r.encodeOIDString)(sGl),n=Buffer.concat([Buffer.concat([Buffer.from([FLt]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t])]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n])}},dGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t]),n=Buffer.concat([(0,b7r.encodeOIDString)(oGl),(0,b7r.encodeOIDString)(aGl)]),a=Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([a.length+r.length]),a,r])}},Fys=e=>/^[0-9a-fA-F]+$/.test(e)});var ZLt=H(vFe=>{"use strict";var pGl=vFe&&vFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vFe,"__esModule",{value:!0});vFe.Key=void 0;var Lys=pGl(wt("util")),xze=O6(),Vys=iJ(),fGl=Zys(),S7r=class e{constructor(t){let{keyID:r,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l}=t;this.keyID=r,this.keyType=n,this.scheme=a,this.keyVal=o,this.unrecognizedFields=l||{}}verifySignature(t){let r=t.signatures[this.keyID];if(!r)throw new xze.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new xze.UnsignedMetadataError("no public key found");let n=(0,fGl.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=t.signed.toJSON();try{if(!Vys.crypto.verifySignature(a,n,r.sig))throw new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(o){throw o instanceof xze.UnsignedMetadataError?o:new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(t){return t instanceof e?this.keyID===t.keyID&&this.keyType===t.keyType&&this.scheme===t.scheme&&Lys.default.isDeepStrictEqual(this.keyVal,t.keyVal)&&Lys.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(t,r){let{keytype:n,scheme:a,keyval:o,...l}=r;if(typeof n!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!Vys.guard.isStringRecord(o))throw new TypeError("keyval must be a string record");return new e({keyID:t,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l})}};vFe.Key=S7r});var Xys=H((Oog,Qys)=>{var Pys=wjr();Qys.exports=mGl;var Wys="\0SLASH"+Math.random()+"\0",Oys="\0OPEN"+Math.random()+"\0",B7r="\0CLOSE"+Math.random()+"\0",Mys="\0COMMA"+Math.random()+"\0",Hys="\0PERIOD"+Math.random()+"\0";function v7r(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function IGl(e){return e.split("\\\\").join(Wys).split("\\{").join(Oys).split("\\}").join(B7r).split("\\,").join(Mys).split("\\.").join(Hys)}function hGl(e){return e.split(Wys).join("\\").split(Oys).join("{").split(B7r).join("}").split(Mys).join(",").split(Hys).join(".")}function Yys(e){if(!e)return[""];var t=[],r=Pys("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=Yys(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function mGl(e,t){if(!e)return[];t=t||{};var r=t.max==null?1/0:t.max;return e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),Gze(IGl(e),r,!0).map(hGl)}function CGl(e){return"{"+e+"}"}function _Gl(e){return/^-?0\d/.test(e)}function yGl(e,t){return e<=t}function bGl(e,t){return e>=t}function Gze(e,t,r){var n=[],a=Pys("{","}",e);if(!a)return[e];var o=a.pre,l=a.post.length?Gze(a.post,t,!1):[""];if(/\$$/.test(a.pre))for(var A=0;A=0;if(!b&&!E)return a.post.match(/,(?!,).*\}/)?(e=a.pre+"{"+a.body+B7r+a.post,Gze(e,t,!0)):[e];var N;if(b)N=a.body.split(/\.\./);else if(N=Yys(a.body),N.length===1&&(N=Gze(N[0],t,!1).map(CGl),N.length===1))return l.map(function(k){return a.pre+N[0]+k});var B;if(b){var F=v7r(N[0]),Q=v7r(N[1]),X=Math.max(N[0].length,N[1].length),ae=N.length==3?Math.max(Math.abs(v7r(N[2])),1):1,ne=yGl,ce=Q0){var Se=new Array(be+1).join("0");ue<0?de="-"+Se+de.slice(1):de=Se+de}}B.push(de)}}else{B=[];for(var De=0;De{"use strict";Object.defineProperty(LLt,"__esModule",{value:!0});LLt.assertValidPattern=void 0;var EGl=1024*64,SGl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>EGl)throw new TypeError("pattern is too long")};LLt.assertValidPattern=SGl});var Kys=H(VLt=>{"use strict";Object.defineProperty(VLt,"__esModule",{value:!0});VLt.parseClass=void 0;var vGl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Fze=e=>e.replace(/[[\]\\-]/g,"\\$&"),BGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Uys=e=>e.join(""),wGl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(Fze(b)+"-"+Fze(F)):F===b&&n.push(Fze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(Fze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(Fze(F)),o++}if(C{"use strict";Object.defineProperty(PLt,"__esModule",{value:!0});PLt.unescape=void 0;var TGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");PLt.unescape=TGl});var R7r=H(YLt=>{"use strict";var rP;Object.defineProperty(YLt,"__esModule",{value:!0});YLt.AST=void 0;var RGl=Kys(),OLt=WLt(),NGl=new Set(["!","?","+","*","@"]),w7r=e=>NGl.has(e),jys=e=>w7r(e.type),DGl=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),kGl=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),xGl=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),zys=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),GGl="(?!(?:^|/)\\.\\.?(?:$|/))",MLt="(?!\\.)",FGl=new Set(["[","."]),ZGl=new Set(["..","."]),LGl=new Set("().*{}+?[]^$\\!"),VGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),T7r="[^/]",qys=T7r+"*?",$ys=T7r+"+?",HLt=class{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?rP.#B(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&ZGl.has(this.#r[0]))){let B=FGl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?GGl:Q?MLt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,OLt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#p(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString(),I=this;return I.#r=[f],I.type=null,I.#t=void 0,[f,(0,OLt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!MLt?"":this.#p(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?MLt:"")+$ys;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?MLt:"")+qys+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,OLt.unescape)(o),this.#t=!!this.#t,this.#n]}#p(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#B(t,r,n=!1){let a=!1,o="",l=!1,A=!1;for(let f=0;f{"use strict";Object.defineProperty(QLt,"__esModule",{value:!0});QLt.escape=void 0;var PGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");QLt.escape=PGl});var obs=H(xA=>{"use strict";var WGl=xA&&xA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xA,"__esModule",{value:!0});xA.unescape=xA.escape=xA.AST=xA.Minimatch=xA.match=xA.makeRe=xA.braceExpand=xA.defaults=xA.filter=xA.GLOBSTAR=xA.sep=xA.minimatch=void 0;var OGl=WGl(Xys()),XLt=Jys(),rbs=R7r(),MGl=N7r(),HGl=WLt(),YGl=(e,t,r={})=>((0,XLt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new Y0e(t,r).match(e));xA.minimatch=YGl;var QGl=/^\*+([^+@!?\*\[\(]*)$/,XGl=e=>t=>!t.startsWith(".")&&t.endsWith(e),JGl=e=>t=>t.endsWith(e),UGl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),KGl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),jGl=/^\*+\.\*+$/,zGl=e=>!e.startsWith(".")&&e.includes("."),qGl=e=>e!=="."&&e!==".."&&e.includes("."),$Gl=/^\.\*+$/,eFl=e=>e!=="."&&e!==".."&&e.startsWith("."),tFl=/^\*+$/,rFl=e=>e.length!==0&&!e.startsWith("."),nFl=e=>e.length!==0&&e!=="."&&e!=="..",iFl=/^\?+([^+@!?\*\[\(]*)?$/,sFl=([e,t=""])=>{let r=nbs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},oFl=([e,t=""])=>{let r=ibs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},aFl=([e,t=""])=>{let r=ibs([e]);return t?n=>r(n)&&n.endsWith(t):r},cFl=([e,t=""])=>{let r=nbs([e]);return t?n=>r(n)&&n.endsWith(t):r},nbs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},ibs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},sbs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",ebs={win32:{sep:"\\"},posix:{sep:"/"}};xA.sep=sbs==="win32"?ebs.win32.sep:ebs.posix.sep;xA.minimatch.sep=xA.sep;xA.GLOBSTAR=Symbol("globstar **");xA.minimatch.GLOBSTAR=xA.GLOBSTAR;var lFl="[^/]",uFl=lFl+"*?",gFl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",AFl="(?:(?!(?:\\/|^)\\.).)*?",dFl=(e,t={})=>r=>(0,xA.minimatch)(r,e,t);xA.filter=dFl;xA.minimatch.filter=xA.filter;var jH=(e,t={})=>Object.assign({},e,t),pFl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return xA.minimatch;let t=xA.minimatch;return Object.assign((n,a,o={})=>t(n,a,jH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,jH(e,o))}static defaults(a){return t.defaults(jH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,jH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,jH(e,o))}},unescape:(n,a={})=>t.unescape(n,jH(e,a)),escape:(n,a={})=>t.escape(n,jH(e,a)),filter:(n,a={})=>t.filter(n,jH(e,a)),defaults:n=>t.defaults(jH(e,n)),makeRe:(n,a={})=>t.makeRe(n,jH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,jH(e,a)),match:(n,a,o={})=>t.match(n,a,jH(e,o)),sep:t.sep,GLOBSTAR:xA.GLOBSTAR})};xA.defaults=pFl;xA.minimatch.defaults=xA.defaults;var fFl=(e,t={})=>((0,XLt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,OGl.default)(e));xA.braceExpand=fFl;xA.minimatch.braceExpand=xA.braceExpand;var IFl=(e,t={})=>new Y0e(e,t).makeRe();xA.makeRe=IFl;xA.minimatch.makeRe=xA.makeRe;var hFl=(e,t,r={})=>{let n=new Y0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};xA.match=hFl;xA.minimatch.match=xA.match;var tbs=/[?*]|[+@!]\(.*?\)|\[|\]/,mFl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Y0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){(0,XLt.assertValidPattern)(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||sbs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!tbs.test(o[2]))&&!tbs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;a=2&&(t=this.levelTwoFileOptimize(t)),r.includes(xA.GLOBSTAR)?this.#e(t,r,n,a,o):this.#n(t,r,n,a,o)}#e(t,r,n,a,o){let l=r.indexOf(xA.GLOBSTAR,o),A=r.lastIndexOf(xA.GLOBSTAR),[f,I,C]=n?[r.slice(o,l),r.slice(l+1),[]]:[r.slice(o,l),r.slice(l+1,A),r.slice(A+1)];if(f.length){let ae=t.slice(a,a+f.length);if(!this.#n(ae,f,n,0,0))return!1;a+=f.length}let b=0;if(C.length){if(C.length+a>t.length)return!1;let ae=t.length-C.length;if(this.#n(t,C,n,ae,0))b=C.length;else{if(t[t.length-1]!==""||a+C.length===t.length||(ae--,!this.#n(t,C,n,ae,0)))return!1;b=C.length+1}}if(!I.length){let ae=!!b;for(let ne=a;ne{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?mFl(C):C===xA.GLOBSTAR?xA.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==xA.GLOBSTAR||N===xA.GLOBSTAR||(N===void 0?E!==void 0&&E!==xA.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==xA.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=xA.GLOBSTAR))}),I.filter(C=>C!==xA.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var abs=zH&&zH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zH,"__esModule",{value:!0});zH.SuccinctRoles=zH.DelegatedRole=zH.Role=zH.TOP_LEVEL_ROLE_NAMES=void 0;var cbs=abs(wt("crypto")),bFl=obs(),JLt=abs(wt("util")),ULt=O6(),Q0e=iJ();zH.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var Zze=class e{constructor(t){let{keyIDs:r,threshold:n,unrecognizedFields:a}=t;if(EFl(r))throw new ULt.ValueError("duplicate key IDs found");if(n<1)throw new ULt.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=n,this.unrecognizedFields=a||{}}equals(t){return t instanceof e?this.threshold===t.threshold&&JLt.default.isDeepStrictEqual(this.keyIDs,t.keyIDs)&&JLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(t){let{keyids:r,threshold:n,...a}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof n!="number")throw new TypeError("threshold must be a number");return new e({keyIDs:r,threshold:n,unrecognizedFields:a})}};zH.Role=Zze;function EFl(e){return new Set(e).size!==e.length}var D7r=class e extends Zze{constructor(t){super(t);let{name:r,terminating:n,paths:a,pathHashPrefixes:o}=t;if(this.name=r,this.terminating=n,t.paths&&t.pathHashPrefixes)throw new ULt.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=o}equals(t){return t instanceof e?super.equals(t)&&this.name===t.name&&this.terminating===t.terminating&&JLt.default.isDeepStrictEqual(this.paths,t.paths)&&JLt.default.isDeepStrictEqual(this.pathHashPrefixes,t.pathHashPrefixes):!1}isDelegatedPath(t){if(this.paths)return this.paths.some(r=>vFl(t,r));if(this.pathHashPrefixes){let n=cbs.default.createHash("sha256").update(t).digest("hex");return this.pathHashPrefixes.some(a=>n.startsWith(a))}return!1}toJSON(){let t={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(t.paths=this.paths),this.pathHashPrefixes&&(t.path_hash_prefixes=this.pathHashPrefixes),t}static fromJSON(t){let{keyids:r,threshold:n,name:a,terminating:o,paths:l,path_hash_prefixes:A,...f}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof n!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof o!="boolean")throw new TypeError("terminating must be a boolean");if(Q0e.guard.isDefined(l)&&!Q0e.guard.isStringArray(l))throw new TypeError("paths must be an array of strings");if(Q0e.guard.isDefined(A)&&!Q0e.guard.isStringArray(A))throw new TypeError("path_hash_prefixes must be an array of strings");return new e({keyIDs:r,threshold:n,name:a,terminating:o,paths:l,pathHashPrefixes:A,unrecognizedFields:f})}};zH.DelegatedRole=D7r;var SFl=(e,t)=>e.map((r,n)=>[r,t[n]]);function vFl(e,t){let r=e.split("/"),n=t.split("/");return n.length!=r.length?!1:SFl(r,n).every(([a,o])=>(0,bFl.minimatch)(a,o))}var k7r=class e extends Zze{constructor(t){super(t);let{bitLength:r,namePrefix:n}=t;if(r<=0||r>32)throw new ULt.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=n,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(t){return t instanceof e?super.equals(t)&&this.bitLength===t.bitLength&&this.namePrefix===t.namePrefix:!1}getRoleForTarget(t){let a=cbs.default.createHash("sha256").update(t).digest().subarray(0,4),o=32-this.bitLength,A=(a.readUInt32BE()>>>o).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${A}`}*getRoles(){for(let t=0;t{"use strict";var BFl=BFe&&BFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BFe,"__esModule",{value:!0});BFe.Root=void 0;var lbs=BFl(wt("util")),G7r=H0e(),ubs=O6(),wFl=ZLt(),KLt=x7r(),jLt=iJ(),F7r=class e extends G7r.Signed{constructor(t){if(super(t),this.type=G7r.MetadataKind.Root,this.keys=t.keys||{},this.consistentSnapshot=t.consistentSnapshot??!0,!t.roles)this.roles=KLt.TOP_LEVEL_ROLE_NAMES.reduce((r,n)=>({...r,[n]:new KLt.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(t.roles));if(!KLt.TOP_LEVEL_ROLE_NAMES.every(n=>r.has(n)))throw new ubs.ValueError("missing top-level role");this.roles=t.roles}}addKey(t,r){if(!this.roles[r])throw new ubs.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(t.keyID)||this.roles[r].keyIDs.push(t.keyID),this.keys[t.keyID]=t}equals(t){return t instanceof e?super.equals(t)&&this.consistentSnapshot===t.consistentSnapshot&&lbs.default.isDeepStrictEqual(this.keys,t.keys)&&lbs.default.isDeepStrictEqual(this.roles,t.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:TFl(this.keys),roles:RFl(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=G7r.Signed.commonFieldsFromJSON(t),{keys:a,roles:o,consistent_snapshot:l,...A}=r;if(typeof l!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new e({...n,keys:NFl(a),roles:DFl(o),consistentSnapshot:l,unrecognizedFields:A})}};BFe.Root=F7r;function TFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function RFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function NFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("keys must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:wFl.Key.fromJSON(n,a)}),{})}return t}function DFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("roles must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:KLt.Role.fromJSON(a)}),{})}return t}});var V7r=H(zLt=>{"use strict";Object.defineProperty(zLt,"__esModule",{value:!0});zLt.Signature=void 0;var L7r=class e{constructor(t){let{keyID:r,sig:n}=t;this.keyID=r,this.sig=n}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(t){let{keyid:r,sig:n}=t;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof n!="string")throw new TypeError("sig must be a string");return new e({keyID:r,sig:n})}};zLt.Signature=L7r});var O7r=H(wFe=>{"use strict";var kFl=wFe&&wFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wFe,"__esModule",{value:!0});wFe.Snapshot=void 0;var xFl=kFl(wt("util")),P7r=H0e(),Abs=Nze(),gbs=iJ(),W7r=class e extends P7r.Signed{constructor(t){super(t),this.type=P7r.MetadataKind.Snapshot,this.meta=t.meta||{"targets.json":new Abs.MetaFile({version:1})}}equals(t){return t instanceof e?super.equals(t)&&xFl.default.isDeepStrictEqual(this.meta,t.meta):!1}toJSON(){return{_type:this.type,meta:GFl(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=P7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,meta:FFl(a),unrecognizedFields:o})}};wFe.Snapshot=W7r;function GFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function FFl(e){let t;if(gbs.guard.isDefined(e))if(gbs.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:Abs.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return t}});var dbs=H(TFe=>{"use strict";var ZFl=TFe&&TFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TFe,"__esModule",{value:!0});TFe.Delegations=void 0;var qLt=ZFl(wt("util")),LFl=O6(),VFl=ZLt(),M7r=x7r(),$Lt=iJ(),H7r=class e{constructor(t){if(this.keys=t.keys,this.unrecognizedFields=t.unrecognizedFields||{},t.roles&&Object.keys(t.roles).some(r=>M7r.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new LFl.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=t.succinctRoles,this.roles=t.roles}equals(t){return t instanceof e?qLt.default.isDeepStrictEqual(this.keys,t.keys)&&qLt.default.isDeepStrictEqual(this.roles,t.roles)&&qLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields)&&qLt.default.isDeepStrictEqual(this.succinctRoles,t.succinctRoles):!1}*rolesForTarget(t){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(t)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(t),terminating:!0})}toJSON(){let t={keys:PFl(this.keys),...this.unrecognizedFields};return this.roles?t.roles=WFl(this.roles):this.succinctRoles&&(t.succinct_roles=this.succinctRoles.toJSON()),t}static fromJSON(t){let{keys:r,roles:n,succinct_roles:a,...o}=t,l;return $Lt.guard.isObject(a)&&(l=M7r.SuccinctRoles.fromJSON(a)),new e({keys:OFl(r),roles:MFl(n),unrecognizedFields:o,succinctRoles:l})}};TFe.Delegations=H7r;function PFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function WFl(e){return Object.values(e).map(t=>t.toJSON())}function OFl(e){if(!$Lt.guard.isObjectRecord(e))throw new TypeError("keys is malformed");return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:VFl.Key.fromJSON(r,n)}),{})}function MFl(e){let t;if($Lt.guard.isDefined(e)){if(!$Lt.guard.isObjectArray(e))throw new TypeError("roles is malformed");t=e.reduce((r,n)=>{let a=M7r.DelegatedRole.fromJSON(n);return{...r,[a.name]:a}},{})}return t}});var X7r=H(RFe=>{"use strict";var HFl=RFe&&RFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RFe,"__esModule",{value:!0});RFe.Targets=void 0;var pbs=HFl(wt("util")),Y7r=H0e(),YFl=dbs(),QFl=Nze(),e9t=iJ(),Q7r=class e extends Y7r.Signed{constructor(t){super(t),this.type=Y7r.MetadataKind.Targets,this.targets=t.targets||{},this.delegations=t.delegations}addTarget(t){this.targets[t.path]=t}equals(t){return t instanceof e?super.equals(t)&&pbs.default.isDeepStrictEqual(this.targets,t.targets)&&pbs.default.isDeepStrictEqual(this.delegations,t.delegations):!1}toJSON(){let t={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:XFl(this.targets),...this.unrecognizedFields};return this.delegations&&(t.delegations=this.delegations.toJSON()),t}static fromJSON(t){let{unrecognizedFields:r,...n}=Y7r.Signed.commonFieldsFromJSON(t),{targets:a,delegations:o,...l}=r;return new e({...n,targets:JFl(a),delegations:UFl(o),unrecognizedFields:l})}};RFe.Targets=Q7r;function XFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function JFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:QFl.TargetFile.fromJSON(n,a)}),{});else throw new TypeError("targets must be an object");return t}function UFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObject(e))t=YFl.Delegations.fromJSON(e);else throw new TypeError("delegations must be an object");return t}});var j7r=H(t9t=>{"use strict";Object.defineProperty(t9t,"__esModule",{value:!0});t9t.Timestamp=void 0;var J7r=H0e(),fbs=Nze(),U7r=iJ(),K7r=class e extends J7r.Signed{constructor(t){super(t),this.type=J7r.MetadataKind.Timestamp,this.snapshotMeta=t.snapshotMeta||new fbs.MetaFile({version:1})}equals(t){return t instanceof e?super.equals(t)&&this.snapshotMeta.equals(t.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=J7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,snapshotMeta:KFl(a),unrecognizedFields:o})}};t9t.Timestamp=K7r;function KFl(e){let t;if(U7r.guard.isDefined(e)){let r=e["snapshot.json"];if(!U7r.guard.isDefined(r)||!U7r.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");t=fbs.MetaFile.fromJSON(r)}return t}});var hbs=H(DFe=>{"use strict";var jFl=DFe&&DFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DFe,"__esModule",{value:!0});DFe.Metadata=void 0;var zFl=f7r(),Ibs=jFl(wt("util")),NFe=H0e(),Lze=O6(),qFl=Z7r(),$Fl=V7r(),eZl=O7r(),tZl=X7r(),rZl=j7r(),z7r=iJ(),q7r=class e{constructor(t,r,n){this.signed=t,this.signatures=r||{},this.unrecognizedFields=n||{}}sign(t,r=!0){let n=Buffer.from((0,zFl.canonicalize)(this.signed.toJSON())),a=t(n);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(t,r){let n,a={};switch(this.signed.type){case NFe.MetadataKind.Root:a=this.signed.keys,n=this.signed.roles[t];break;case NFe.MetadataKind.Targets:if(!this.signed.delegations)throw new Lze.ValueError(`No delegations found for ${t}`);a=this.signed.delegations.keys,this.signed.delegations.roles?n=this.signed.delegations.roles[t]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(t)&&(n=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!n)throw new Lze.ValueError(`no delegation found for ${t}`);let o=new Set;if(n.keyIDs.forEach(l=>{let A=a[l];if(A)try{A.verifySignature(r),o.add(A.keyID)}catch{}}),o.sizer.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(t,r){let{signed:n,signatures:a,...o}=r;if(!z7r.guard.isDefined(n)||!z7r.guard.isObject(n))throw new TypeError("signed is not defined");if(t!==n._type)throw new Lze.ValueError(`expected '${t}', got ${n._type}`);if(!z7r.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let l;switch(t){case NFe.MetadataKind.Root:l=qFl.Root.fromJSON(n);break;case NFe.MetadataKind.Timestamp:l=rZl.Timestamp.fromJSON(n);break;case NFe.MetadataKind.Snapshot:l=eZl.Snapshot.fromJSON(n);break;case NFe.MetadataKind.Targets:l=tZl.Targets.fromJSON(n);break;default:throw new TypeError("invalid metadata type")}let A={};return a.forEach(f=>{let I=$Fl.Signature.fromJSON(f);if(A[I.keyID])throw new Lze.ValueError(`multiple signatures found for keyid: ${I.keyID}`);A[I.keyID]=I}),new e(l,A,o)}};DFe.Metadata=q7r});var r9t=H(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.Timestamp=W2.Targets=W2.Snapshot=W2.Signature=W2.Root=W2.Metadata=W2.Key=W2.TargetFile=W2.MetaFile=W2.ValueError=W2.MetadataKind=void 0;var nZl=H0e();Object.defineProperty(W2,"MetadataKind",{enumerable:!0,get:function(){return nZl.MetadataKind}});var iZl=O6();Object.defineProperty(W2,"ValueError",{enumerable:!0,get:function(){return iZl.ValueError}});var mbs=Nze();Object.defineProperty(W2,"MetaFile",{enumerable:!0,get:function(){return mbs.MetaFile}});Object.defineProperty(W2,"TargetFile",{enumerable:!0,get:function(){return mbs.TargetFile}});var sZl=ZLt();Object.defineProperty(W2,"Key",{enumerable:!0,get:function(){return sZl.Key}});var oZl=hbs();Object.defineProperty(W2,"Metadata",{enumerable:!0,get:function(){return oZl.Metadata}});var aZl=Z7r();Object.defineProperty(W2,"Root",{enumerable:!0,get:function(){return aZl.Root}});var cZl=V7r();Object.defineProperty(W2,"Signature",{enumerable:!0,get:function(){return cZl.Signature}});var lZl=O7r();Object.defineProperty(W2,"Snapshot",{enumerable:!0,get:function(){return lZl.Snapshot}});var uZl=X7r();Object.defineProperty(W2,"Targets",{enumerable:!0,get:function(){return uZl.Targets}});var gZl=j7r();Object.defineProperty(W2,"Timestamp",{enumerable:!0,get:function(){return gZl.Timestamp}})});var $7r=H((sag,Cbs)=>{function AZl(e){r.debug=r,r.default=r,r.coerce=f,r.disable=l,r.enable=a,r.enabled=A,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b=(typeof C=="string"?C:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?r.skips.push(E.slice(1)):r.names.push(E)}function o(C,b){let E=0,N=0,B=-1,F=0;for(;E"-"+b)].join(",");return r.enable(""),C}function A(C){for(let b of r.skips)if(o(C,b))return!1;for(let b of r.names)if(o(C,b))return!0;return!1}function f(C){return C instanceof Error?C.stack||C.message:C}function I(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Cbs.exports=AZl});var _bs=H((nP,n9t)=>{nP.formatArgs=pZl;nP.save=fZl;nP.load=IZl;nP.useColors=dZl;nP.storage=hZl();nP.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();nP.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function dZl(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function pZl(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+n9t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}nP.log=console.debug||console.log||(()=>{});function fZl(e){try{e?nP.storage.setItem("debug",e):nP.storage.removeItem("debug")}catch{}}function IZl(){let e;try{e=nP.storage.getItem("debug")||nP.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function hZl(){try{return localStorage}catch{}}n9t.exports=$7r()(nP);var{formatters:mZl}=n9t.exports;mZl.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bbs=H((wD,s9t)=>{var CZl=wt("tty"),i9t=wt("util");wD.init=BZl;wD.log=EZl;wD.formatArgs=yZl;wD.save=SZl;wD.load=vZl;wD.useColors=_Zl;wD.destroy=i9t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");wD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(wD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}wD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function _Zl(){return"colors"in wD.inspectOpts?!!wD.inspectOpts.colors:CZl.isatty(process.stderr.fd)}function yZl(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` +`;let f=(0,wNl.parseProxyResponse)(a);a.write(`${A}\r +`);let{connect:I,buffered:C}=await f;if(t.emit("proxyConnect",I),this.emit("proxyConnect",I,t),I.statusCode===200){if(t.once("socket",TNl),r.secureEndpoint){Cze("Upgrading socket connection to TLS");let E=r.servername||r.host;return G_s.connect({...F_s(r,"host","path","port"),socket:a,servername:E})}return a}a.destroy();let b=new g6r.Socket({writable:!1});return b.readable=!0,t.once("socket",E=>{Cze("Replaying proxy buffer for failed request"),(0,ENl.default)(E.listenerCount("data")>0),E.push(C),E.push(null)}),b}};rLt.protocols=["http","https"];XH.HttpsProxyAgent=rLt;function TNl(e){e.resume()}function F_s(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var M_s=H(ure=>{"use strict";Object.defineProperty(ure,"__esModule",{value:!0});var P_s=wt("buffer"),Z0e={INVALID_ENCODING:"Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.",INVALID_SMARTBUFFER_SIZE:"Invalid size provided. Size must be a valid integer greater than zero.",INVALID_SMARTBUFFER_BUFFER:"Invalid Buffer provided in SmartBufferOptions.",INVALID_SMARTBUFFER_OBJECT:"Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.",INVALID_OFFSET:"An invalid offset value was provided.",INVALID_OFFSET_NON_NUMBER:"An invalid offset value was provided. A numeric value is required.",INVALID_LENGTH:"An invalid length value was provided.",INVALID_LENGTH_NON_NUMBER:"An invalid length value was provived. A numeric value is required.",INVALID_TARGET_OFFSET:"Target offset is beyond the bounds of the internal SmartBuffer data.",INVALID_TARGET_LENGTH:"Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.",INVALID_READ_BEYOND_BOUNDS:"Attempted to read beyond the bounds of the managed data.",INVALID_WRITE_BEYOND_BOUNDS:"Attempted to write beyond the bounds of the managed data."};ure.ERRORS=Z0e;function RNl(e){if(!P_s.Buffer.isEncoding(e))throw new Error(Z0e.INVALID_ENCODING)}ure.checkEncoding=RNl;function W_s(e){return typeof e=="number"&&isFinite(e)&&xNl(e)}ure.isFiniteInteger=W_s;function O_s(e,t){if(typeof e=="number"){if(!W_s(e)||e<0)throw new Error(t?Z0e.INVALID_OFFSET:Z0e.INVALID_LENGTH)}else throw new Error(t?Z0e.INVALID_OFFSET_NON_NUMBER:Z0e.INVALID_LENGTH_NON_NUMBER)}function NNl(e){O_s(e,!1)}ure.checkLengthValue=NNl;function DNl(e){O_s(e,!0)}ure.checkOffsetValue=DNl;function kNl(e,t){if(e<0||e>t.length)throw new Error(Z0e.INVALID_TARGET_OFFSET)}ure.checkTargetOffset=kNl;function xNl(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e}function GNl(e){if(typeof BigInt>"u")throw new Error("Platform does not support JS BigInt type.");if(typeof P_s.Buffer.prototype[e]>"u")throw new Error(`Platform does not support Buffer.prototype.${e}.`)}ure.bigIntAndBufferInt64Check=GNl});var Y_s=H(d6r=>{"use strict";Object.defineProperty(d6r,"__esModule",{value:!0});var Yh=M_s(),H_s=4096,FNl="utf8",A6r=class e{constructor(t){if(this.length=0,this._encoding=FNl,this._writeOffset=0,this._readOffset=0,e.isSmartBufferOptions(t))if(t.encoding&&(Yh.checkEncoding(t.encoding),this._encoding=t.encoding),t.size)if(Yh.isFiniteInteger(t.size)&&t.size>0)this._buff=Buffer.allocUnsafe(t.size);else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_SIZE);else if(t.buff)if(Buffer.isBuffer(t.buff))this._buff=t.buff,this.length=t.buff.length;else throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_BUFFER);else this._buff=Buffer.allocUnsafe(H_s);else{if(typeof t<"u")throw new Error(Yh.ERRORS.INVALID_SMARTBUFFER_OBJECT);this._buff=Buffer.allocUnsafe(H_s)}}static fromSize(t,r){return new this({size:t,encoding:r})}static fromBuffer(t,r){return new this({buff:t,encoding:r})}static fromOptions(t){return new this(t)}static isSmartBufferOptions(t){let r=t;return r&&(r.encoding!==void 0||r.size!==void 0||r.buff!==void 0)}readInt8(t){return this._readNumberValue(Buffer.prototype.readInt8,1,t)}readInt16BE(t){return this._readNumberValue(Buffer.prototype.readInt16BE,2,t)}readInt16LE(t){return this._readNumberValue(Buffer.prototype.readInt16LE,2,t)}readInt32BE(t){return this._readNumberValue(Buffer.prototype.readInt32BE,4,t)}readInt32LE(t){return this._readNumberValue(Buffer.prototype.readInt32LE,4,t)}readBigInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64BE"),this._readNumberValue(Buffer.prototype.readBigInt64BE,8,t)}readBigInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigInt64LE"),this._readNumberValue(Buffer.prototype.readBigInt64LE,8,t)}writeInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeInt8,1,t,r),this}insertInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeInt8,1,t,r)}writeInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}insertInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16BE,2,t,r)}writeInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}insertInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt16LE,2,t,r)}writeInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}insertInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32BE,4,t,r)}writeInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}insertInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeInt32LE,4,t,r)}writeBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}insertBigInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigInt64BE,8,t,r)}writeBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}insertBigInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigInt64LE,8,t,r)}readUInt8(t){return this._readNumberValue(Buffer.prototype.readUInt8,1,t)}readUInt16BE(t){return this._readNumberValue(Buffer.prototype.readUInt16BE,2,t)}readUInt16LE(t){return this._readNumberValue(Buffer.prototype.readUInt16LE,2,t)}readUInt32BE(t){return this._readNumberValue(Buffer.prototype.readUInt32BE,4,t)}readUInt32LE(t){return this._readNumberValue(Buffer.prototype.readUInt32LE,4,t)}readBigUInt64BE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64BE"),this._readNumberValue(Buffer.prototype.readBigUInt64BE,8,t)}readBigUInt64LE(t){return Yh.bigIntAndBufferInt64Check("readBigUInt64LE"),this._readNumberValue(Buffer.prototype.readBigUInt64LE,8,t)}writeUInt8(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt8,1,t,r)}insertUInt8(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt8,1,t,r)}writeUInt16BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}insertUInt16BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16BE,2,t,r)}writeUInt16LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}insertUInt16LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt16LE,2,t,r)}writeUInt32BE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}insertUInt32BE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32BE,4,t,r)}writeUInt32LE(t,r){return this._writeNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}insertUInt32LE(t,r){return this._insertNumberValue(Buffer.prototype.writeUInt32LE,4,t,r)}writeBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}insertBigUInt64BE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64BE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64BE,8,t,r)}writeBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._writeNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}insertBigUInt64LE(t,r){return Yh.bigIntAndBufferInt64Check("writeBigUInt64LE"),this._insertNumberValue(Buffer.prototype.writeBigUInt64LE,8,t,r)}readFloatBE(t){return this._readNumberValue(Buffer.prototype.readFloatBE,4,t)}readFloatLE(t){return this._readNumberValue(Buffer.prototype.readFloatLE,4,t)}writeFloatBE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}insertFloatBE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatBE,4,t,r)}writeFloatLE(t,r){return this._writeNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}insertFloatLE(t,r){return this._insertNumberValue(Buffer.prototype.writeFloatLE,4,t,r)}readDoubleBE(t){return this._readNumberValue(Buffer.prototype.readDoubleBE,8,t)}readDoubleLE(t){return this._readNumberValue(Buffer.prototype.readDoubleLE,8,t)}writeDoubleBE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}insertDoubleBE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleBE,8,t,r)}writeDoubleLE(t,r){return this._writeNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}insertDoubleLE(t,r){return this._insertNumberValue(Buffer.prototype.writeDoubleLE,8,t,r)}readString(t,r){let n;typeof t=="number"?(Yh.checkLengthValue(t),n=Math.min(t,this.length-this._readOffset)):(r=t,n=this.length-this._readOffset),typeof r<"u"&&Yh.checkEncoding(r);let a=this._buff.slice(this._readOffset,this._readOffset+n).toString(r||this._encoding);return this._readOffset+=n,a}insertString(t,r,n){return Yh.checkOffsetValue(r),this._handleString(t,!0,r,n)}writeString(t,r,n){return this._handleString(t,!1,r,n)}readStringNT(t){typeof t<"u"&&Yh.checkEncoding(t);let r=this.length;for(let a=this._readOffset;athis.length)throw new Error(Yh.ERRORS.INVALID_READ_BEYOND_BOUNDS)}ensureInsertable(t,r){Yh.checkOffsetValue(r),this._ensureCapacity(this.length+t),rthis.length?this.length=r+t:this.length+=t}_ensureWriteable(t,r){let n=typeof r=="number"?r:this._writeOffset;this._ensureCapacity(n+t),n+t>this.length&&(this.length=n+t)}_ensureCapacity(t){let r=this._buff.length;if(t>r){let n=this._buff,a=r*3/2+1;a"u"&&(this._readOffset+=r),a}_insertNumberValue(t,r,n,a){return Yh.checkOffsetValue(a),this.ensureInsertable(r,a),t.call(this._buff,n,a),this._writeOffset+=r,this}_writeNumberValue(t,r,n,a){if(typeof a=="number"){if(a<0)throw new Error(Yh.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);Yh.checkOffsetValue(a)}let o=typeof a=="number"?a:this._writeOffset;return this._ensureWriteable(r,o),t.call(this._buff,n,o),typeof a=="number"?this._writeOffset=Math.max(this._writeOffset,o+r):this._writeOffset+=r,this}};d6r.SmartBuffer=A6r});var p6r=H(HE=>{"use strict";Object.defineProperty(HE,"__esModule",{value:!0});HE.SOCKS5_NO_ACCEPTABLE_AUTH=HE.SOCKS5_CUSTOM_AUTH_END=HE.SOCKS5_CUSTOM_AUTH_START=HE.SOCKS_INCOMING_PACKET_SIZES=HE.SocksClientState=HE.Socks5Response=HE.Socks5HostType=HE.Socks5Auth=HE.Socks4Response=HE.SocksCommand=HE.ERRORS=HE.DEFAULT_TIMEOUT=void 0;var ZNl=3e4;HE.DEFAULT_TIMEOUT=ZNl;var LNl={InvalidSocksCommand:"An invalid SOCKS command was provided. Valid options are connect, bind, and associate.",InvalidSocksCommandForOperation:"An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.",InvalidSocksCommandChain:"An invalid SOCKS command was provided. Chaining currently only supports the connect command.",InvalidSocksClientOptionsDestination:"An invalid destination host was provided.",InvalidSocksClientOptionsExistingSocket:"An invalid existing socket was provided. This should be an instance of stream.Duplex.",InvalidSocksClientOptionsProxy:"Invalid SOCKS proxy details were provided.",InvalidSocksClientOptionsTimeout:"An invalid timeout value was provided. Please enter a value above 0 (in ms).",InvalidSocksClientOptionsProxiesLength:"At least two socks proxies must be provided for chaining.",InvalidSocksClientOptionsCustomAuthRange:"Custom auth must be a value between 0x80 and 0xFE.",InvalidSocksClientOptionsCustomAuthOptions:"When a custom_auth_method is provided, custom_auth_request_handler, custom_auth_response_size, and custom_auth_response_handler must also be provided and valid.",NegotiationError:"Negotiation error",SocketClosed:"Socket closed",ProxyConnectionTimedOut:"Proxy connection timed out",InternalError:"SocksClient internal error (this should not happen)",InvalidSocks4HandshakeResponse:"Received invalid Socks4 handshake response",Socks4ProxyRejectedConnection:"Socks4 Proxy rejected connection",InvalidSocks4IncomingConnectionResponse:"Socks4 invalid incoming connection response",Socks4ProxyRejectedIncomingBoundConnection:"Socks4 Proxy rejected incoming bound connection",InvalidSocks5InitialHandshakeResponse:"Received invalid Socks5 initial handshake response",InvalidSocks5IntiailHandshakeSocksVersion:"Received invalid Socks5 initial handshake (invalid socks version)",InvalidSocks5InitialHandshakeNoAcceptedAuthType:"Received invalid Socks5 initial handshake (no accepted authentication type)",InvalidSocks5InitialHandshakeUnknownAuthType:"Received invalid Socks5 initial handshake (unknown authentication type)",Socks5AuthenticationFailed:"Socks5 Authentication failed",InvalidSocks5FinalHandshake:"Received invalid Socks5 final handshake response",InvalidSocks5FinalHandshakeRejected:"Socks5 proxy rejected connection",InvalidSocks5IncomingConnectionResponse:"Received invalid Socks5 incoming connection response",Socks5ProxyRejectedIncomingBoundConnection:"Socks5 Proxy rejected incoming bound connection"};HE.ERRORS=LNl;var VNl={Socks5InitialHandshakeResponse:2,Socks5UserPassAuthenticationResponse:2,Socks5ResponseHeader:5,Socks5ResponseIPv4:10,Socks5ResponseIPv6:22,Socks5ResponseHostname:e=>e+7,Socks4Response:8};HE.SOCKS_INCOMING_PACKET_SIZES=VNl;var Q_s;(function(e){e[e.connect=1]="connect",e[e.bind=2]="bind",e[e.associate=3]="associate"})(Q_s||(HE.SocksCommand=Q_s={}));var X_s;(function(e){e[e.Granted=90]="Granted",e[e.Failed=91]="Failed",e[e.Rejected=92]="Rejected",e[e.RejectedIdent=93]="RejectedIdent"})(X_s||(HE.Socks4Response=X_s={}));var J_s;(function(e){e[e.NoAuth=0]="NoAuth",e[e.GSSApi=1]="GSSApi",e[e.UserPass=2]="UserPass"})(J_s||(HE.Socks5Auth=J_s={}));var PNl=128;HE.SOCKS5_CUSTOM_AUTH_START=PNl;var WNl=254;HE.SOCKS5_CUSTOM_AUTH_END=WNl;var ONl=255;HE.SOCKS5_NO_ACCEPTABLE_AUTH=ONl;var U_s;(function(e){e[e.Granted=0]="Granted",e[e.Failure=1]="Failure",e[e.NotAllowed=2]="NotAllowed",e[e.NetworkUnreachable=3]="NetworkUnreachable",e[e.HostUnreachable=4]="HostUnreachable",e[e.ConnectionRefused=5]="ConnectionRefused",e[e.TTLExpired=6]="TTLExpired",e[e.CommandNotSupported=7]="CommandNotSupported",e[e.AddressNotSupported=8]="AddressNotSupported"})(U_s||(HE.Socks5Response=U_s={}));var K_s;(function(e){e[e.IPv4=1]="IPv4",e[e.Hostname=3]="Hostname",e[e.IPv6=4]="IPv6"})(K_s||(HE.Socks5HostType=K_s={}));var j_s;(function(e){e[e.Created=0]="Created",e[e.Connecting=1]="Connecting",e[e.Connected=2]="Connected",e[e.SentInitialHandshake=3]="SentInitialHandshake",e[e.ReceivedInitialHandshakeResponse=4]="ReceivedInitialHandshakeResponse",e[e.SentAuthentication=5]="SentAuthentication",e[e.ReceivedAuthenticationResponse=6]="ReceivedAuthenticationResponse",e[e.SentFinalHandshake=7]="SentFinalHandshake",e[e.ReceivedFinalResponse=8]="ReceivedFinalResponse",e[e.BoundWaitingForConnection=9]="BoundWaitingForConnection",e[e.Established=10]="Established",e[e.Disconnected=11]="Disconnected",e[e.Error=99]="Error"})(j_s||(HE.SocksClientState=j_s={}))});var I6r=H(AFe=>{"use strict";Object.defineProperty(AFe,"__esModule",{value:!0});AFe.shuffleArray=AFe.SocksClientError=void 0;var f6r=class extends Error{constructor(t,r){super(t),this.options=r}};AFe.SocksClientError=f6r;function MNl(e){for(let t=e.length-1;t>0;t--){let r=Math.floor(Math.random()*(t+1));[e[t],e[r]]=[e[r],e[t]]}}AFe.shuffleArray=MNl});var h6r=H(dFe=>{"use strict";Object.defineProperty(dFe,"__esModule",{value:!0});dFe.isCorrect=dFe.isInSubnet=void 0;function HNl(e){return this.subnetMask{"use strict";Object.defineProperty(L6,"__esModule",{value:!0});L6.RE_SUBNET_STRING=L6.RE_ADDRESS=L6.GROUPS=L6.BITS=void 0;L6.BITS=32;L6.GROUPS=4;L6.RE_ADDRESS=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;L6.RE_SUBNET_STRING=/\/\d{1,2}$/});var iLt=H(nLt=>{"use strict";Object.defineProperty(nLt,"__esModule",{value:!0});nLt.AddressError=void 0;var C6r=class extends Error{constructor(t,r){super(t),this.name="AddressError",r!==null&&(this.parseMessage=r)}};nLt.AddressError=C6r});var _6r=H((sLt,z_s)=>{(function(){var e,t=0xdeadbeefcafe,r=(t&16777215)==15715070;function n(Er,Zt,yn){Er!=null&&(typeof Er=="number"?this.fromNumber(Er,Zt,yn):Zt==null&&typeof Er!="string"?this.fromString(Er,256):this.fromString(Er,Zt))}function a(){return new n(null)}function o(Er,Zt,yn,ls,oa,Fs){for(;--Fs>=0;){var Wa=Zt*this[Er++]+yn[ls]+oa;oa=Math.floor(Wa/67108864),yn[ls++]=Wa&67108863}return oa}function l(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&32767,Ca=Zt>>15;--Fs>=0;){var ld=this[Er]&32767,Rp=this[Er++]>>15,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&32767)<<15)+yn[ls]+(oa&1073741823),oa=(ld>>>30)+(np>>>15)+Ca*Rp+(oa>>>30),yn[ls++]=ld&1073741823}return oa}function A(Er,Zt,yn,ls,oa,Fs){for(var Wa=Zt&16383,Ca=Zt>>14;--Fs>=0;){var ld=this[Er]&16383,Rp=this[Er++]>>14,np=Ca*ld+Rp*Wa;ld=Wa*ld+((np&16383)<<14)+yn[ls]+oa,oa=(ld>>28)+(np>>14)+Ca*Rp,yn[ls++]=ld&268435455}return oa}var f=typeof navigator<"u";f&&r&&navigator.appName=="Microsoft Internet Explorer"?(n.prototype.am=l,e=30):f&&r&&navigator.appName!="Netscape"?(n.prototype.am=o,e=26):(n.prototype.am=A,e=28),n.prototype.DB=e,n.prototype.DM=(1<=0;--Zt)Er[Zt]=this[Zt];Er.t=this.t,Er.s=this.s}function X(Er){this.t=1,this.s=Er<0?-1:0,Er>0?this[0]=Er:Er<-1?this[0]=Er+this.DV:this.t=0}function ae(Er){var Zt=a();return Zt.fromInt(Er),Zt}function ne(Er,Zt){var yn;if(Zt==16)yn=4;else if(Zt==8)yn=3;else if(Zt==256)yn=8;else if(Zt==2)yn=1;else if(Zt==32)yn=5;else if(Zt==4)yn=2;else{this.fromRadix(Er,Zt);return}this.t=0,this.s=0;for(var ls=Er.length,oa=!1,Fs=0;--ls>=0;){var Wa=yn==8?Er[ls]&255:F(Er,ls);if(Wa<0){Er.charAt(ls)=="-"&&(oa=!0);continue}oa=!1,Fs==0?this[this.t++]=Wa:Fs+yn>this.DB?(this[this.t-1]|=(Wa&(1<>this.DB-Fs):this[this.t-1]|=Wa<=this.DB&&(Fs-=this.DB)}yn==8&&Er[0]&128&&(this.s=-1,Fs>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==Er;)--this.t}function fe(Er){if(this.s<0)return"-"+this.negate().toString(Er);var Zt;if(Er==16)Zt=4;else if(Er==8)Zt=3;else if(Er==2)Zt=1;else if(Er==32)Zt=5;else if(Er==4)Zt=2;else return this.toRadix(Er);var yn=(1<0)for(Ca>Ca)>0&&(oa=!0,Fs=B(ls));Wa>=0;)Ca>(Ca+=this.DB-Zt)):(ls=this[Wa]>>(Ca-=Zt)&yn,Ca<=0&&(Ca+=this.DB,--Wa)),ls>0&&(oa=!0),oa&&(Fs+=B(ls));return oa?Fs:"0"}function ue(){var Er=a();return n.ZERO.subTo(this,Er),Er}function de(){return this.s<0?this.negate():this}function be(Er){var Zt=this.s-Er.s;if(Zt!=0)return Zt;var yn=this.t;if(Zt=yn-Er.t,Zt!=0)return this.s<0?-Zt:Zt;for(;--yn>=0;)if((Zt=this[yn]-Er[yn])!=0)return Zt;return 0}function Se(Er){var Zt=1,yn;return(yn=Er>>>16)!=0&&(Er=yn,Zt+=16),(yn=Er>>8)!=0&&(Er=yn,Zt+=8),(yn=Er>>4)!=0&&(Er=yn,Zt+=4),(yn=Er>>2)!=0&&(Er=yn,Zt+=2),(yn=Er>>1)!=0&&(Er=yn,Zt+=1),Zt}function De(){return this.t<=0?0:this.DB*(this.t-1)+Se(this[this.t-1]^this.s&this.DM)}function k(Er,Zt){var yn;for(yn=this.t-1;yn>=0;--yn)Zt[yn+Er]=this[yn];for(yn=Er-1;yn>=0;--yn)Zt[yn]=0;Zt.t=this.t+Er,Zt.s=this.s}function et(Er,Zt){for(var yn=Er;yn=0;--Ca)Zt[Ca+Fs+1]=this[Ca]>>ls|Wa,Wa=(this[Ca]&oa)<=0;--Ca)Zt[Ca]=0;Zt[Fs]=Wa,Zt.t=this.t+Fs+1,Zt.s=this.s,Zt.clamp()}function Me(Er,Zt){Zt.s=this.s;var yn=Math.floor(Er/this.DB);if(yn>=this.t){Zt.t=0;return}var ls=Er%this.DB,oa=this.DB-ls,Fs=(1<>ls;for(var Wa=yn+1;Wa>ls;ls>0&&(Zt[this.t-yn-1]|=(this.s&Fs)<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls-=Er.s}Zt.s=ls<0?-1:0,ls<-1?Zt[yn++]=this.DV+ls:ls>0&&(Zt[yn++]=ls),Zt.t=yn,Zt.clamp()}function St(Er,Zt){var yn=this.abs(),ls=Er.abs(),oa=yn.t;for(Zt.t=oa+ls.t;--oa>=0;)Zt[oa]=0;for(oa=0;oa=0;)Er[yn]=0;for(yn=0;yn=Zt.DV&&(Er[yn+Zt.t]-=Zt.DV,Er[yn+Zt.t+1]=1)}Er.t>0&&(Er[Er.t-1]+=Zt.am(yn,Zt[yn],Er,2*yn,0,1)),Er.s=0,Er.clamp()}function Yt(Er,Zt,yn){var ls=Er.abs();if(!(ls.t<=0)){var oa=this.abs();if(oa.t0?(ls.lShiftTo(ld,Fs),oa.lShiftTo(ld,yn)):(ls.copyTo(Fs),oa.copyTo(yn));var Rp=Fs.t,np=Fs[Rp-1];if(np!=0){var HA=np*(1<1?Fs[Rp-2]>>this.F2:0),df=this.FV/HA,Zs=(1<=0&&(yn[yn.t++]=1,yn.subTo(Dr,yn)),n.ONE.dlShiftTo(Rp,Dr),Dr.subTo(Fs,Fs);Fs.t=0;){var Wn=yn[--Ea]==np?this.DM:Math.floor(yn[Ea]*df+(yn[Ea-1]+so)*Zs);if((yn[Ea]+=Fs.am(0,Wn,yn,Ml,0,Rp))0&&yn.rShiftTo(ld,yn),Wa<0&&n.ZERO.subTo(yn,yn)}}}function Tr(Er){var Zt=a();return this.abs().divRemTo(Er,null,Zt),this.s<0&&Zt.compareTo(n.ZERO)>0&&Er.subTo(Zt,Zt),Zt}function Nr(Er){this.m=Er}function er(Er){return Er.s<0||Er.compareTo(this.m)>=0?Er.mod(this.m):Er}function vt(Er){return Er}function xt(Er){Er.divRemTo(this.m,null,Er)}function Zr(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}function qt(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}Nr.prototype.convert=er,Nr.prototype.revert=vt,Nr.prototype.reduce=xt,Nr.prototype.mulTo=Zr,Nr.prototype.sqrTo=qt;function Xt(){if(this.t<1)return 0;var Er=this[0];if(!(Er&1))return 0;var Zt=Er&3;return Zt=Zt*(2-(Er&15)*Zt)&15,Zt=Zt*(2-(Er&255)*Zt)&255,Zt=Zt*(2-((Er&65535)*Zt&65535))&65535,Zt=Zt*(2-Er*Zt%this.DV)%this.DV,Zt>0?this.DV-Zt:-Zt}function lr(Er){this.m=Er,this.mp=Er.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(Zt,Zt),Zt}function Ar(Er){var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function qr(Er){for(;Er.t<=this.mt2;)Er[Er.t++]=0;for(var Zt=0;Zt>15)*this.mpl&this.um)<<15)&Er.DM;for(yn=Zt+this.m.t,Er[yn]+=this.m.am(0,ls,Er,Zt,0,this.m.t);Er[yn]>=Er.DV;)Er[yn]-=Er.DV,Er[++yn]++}Er.clamp(),Er.drShiftTo(this.m.t,Er),Er.compareTo(this.m)>=0&&Er.subTo(this.m,Er)}function _n(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function ke(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}lr.prototype.convert=cr,lr.prototype.revert=Ar,lr.prototype.reduce=qr,lr.prototype.mulTo=ke,lr.prototype.sqrTo=_n;function jt(){return(this.t>0?this[0]&1:this.s)==0}function Fn(Er,Zt){if(Er>4294967295||Er<1)return n.ONE;var yn=a(),ls=a(),oa=Zt.convert(this),Fs=Se(Er)-1;for(oa.copyTo(yn);--Fs>=0;)if(Zt.sqrTo(yn,ls),(Er&1<0)Zt.mulTo(ls,oa,yn);else{var Wa=yn;yn=ls,ls=Wa}return Zt.revert(yn)}function Nn(Er,Zt){var yn;return Er<256||Zt.isEven()?yn=new Nr(Zt):yn=new lr(Zt),this.exp(Er,yn)}n.prototype.copyTo=Q,n.prototype.fromInt=X,n.prototype.fromString=ne,n.prototype.clamp=ce,n.prototype.dlShiftTo=k,n.prototype.drShiftTo=et,n.prototype.lShiftTo=ct,n.prototype.rShiftTo=Me,n.prototype.subTo=je,n.prototype.multiplyTo=St,n.prototype.squareTo=At,n.prototype.divRemTo=Yt,n.prototype.invDigit=Xt,n.prototype.isEven=jt,n.prototype.exp=Fn,n.prototype.toString=fe,n.prototype.negate=ue,n.prototype.abs=de,n.prototype.compareTo=be,n.prototype.bitLength=De,n.prototype.mod=Tr,n.prototype.modPowInt=Nn,n.ZERO=ae(0),n.ONE=ae(1);function Hi(){var Er=a();return this.copyTo(Er),Er}function po(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>24}function xi(){return this.t==0?this.s:this[0]<<16>>16}function io(Er){return Math.floor(Math.LN2*this.DB/Math.log(Er))}function ga(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1}function Ya(Er){if(Er==null&&(Er=10),this.signum()==0||Er<2||Er>36)return"0";var Zt=this.chunkSize(Er),yn=Math.pow(Er,Zt),ls=ae(yn),oa=a(),Fs=a(),Wa="";for(this.divRemTo(ls,oa,Fs);oa.signum()>0;)Wa=(yn+Fs.intValue()).toString(Er).substr(1)+Wa,oa.divRemTo(ls,oa,Fs);return Fs.intValue().toString(Er)+Wa}function Gc(Er,Zt){this.fromInt(0),Zt==null&&(Zt=10);for(var yn=this.chunkSize(Zt),ls=Math.pow(Zt,yn),oa=!1,Fs=0,Wa=0,Ca=0;Ca=yn&&(this.dMultiply(ls),this.dAddOffset(Wa,0),Fs=0,Wa=0)}Fs>0&&(this.dMultiply(Math.pow(Zt,Fs)),this.dAddOffset(Wa,0)),oa&&n.ZERO.subTo(this,this)}function cl(Er,Zt,yn){if(typeof Zt=="number")if(Er<2)this.fromInt(1);else for(this.fromNumber(Er,yn),this.testBit(Er-1)||this.bitwiseTo(n.ONE.shiftLeft(Er-1),Qi,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(Zt);)this.dAddOffset(2,0),this.bitLength()>Er&&this.subTo(n.ONE.shiftLeft(Er-1),this);else{var ls=new Array,oa=Er&7;ls.length=(Er>>3)+1,Zt.nextBytes(ls),oa>0?ls[0]&=(1<0)for(yn>yn)!=(this.s&this.DM)>>yn&&(Zt[oa++]=ls|this.s<=0;)yn<8?(ls=(this[Er]&(1<>(yn+=this.DB-8)):(ls=this[Er]>>(yn-=8)&255,yn<=0&&(yn+=this.DB,--Er)),ls&128&&(ls|=-256),oa==0&&(this.s&128)!=(ls&128)&&++oa,(oa>0||ls!=this.s)&&(Zt[oa++]=ls);return Zt}function Hr(Er){return this.compareTo(Er)==0}function Wr(Er){return this.compareTo(Er)<0?this:Er}function Ft(Er){return this.compareTo(Er)>0?this:Er}function zr(Er,Zt,yn){var ls,oa,Fs=Math.min(Er.t,this.t);for(ls=0;ls>=16,Zt+=16),Er&255||(Er>>=8,Zt+=8),Er&15||(Er>>=4,Zt+=4),Er&3||(Er>>=2,Zt+=2),Er&1||++Zt,Zt}function vu(){for(var Er=0;Er=this.t?this.s!=0:(this[Zt]&1<>=this.DB;if(Er.t>=this.DB;ls+=this.s}else{for(ls+=this.s;yn>=this.DB;ls+=Er.s}Zt.s=ls<0?-1:0,ls>0?Zt[yn++]=ls:ls<-1&&(Zt[yn++]=this.DV+ls),Zt.t=yn,Zt.clamp()}function Ul(Er){var Zt=a();return this.addTo(Er,Zt),Zt}function Xu(Er){var Zt=a();return this.subTo(Er,Zt),Zt}function Da(Er){var Zt=a();return this.multiplyTo(Er,Zt),Zt}function pu(){var Er=a();return this.squareTo(Er),Er}function _g(Er){var Zt=a();return this.divRemTo(Er,Zt,null),Zt}function mI(Er){var Zt=a();return this.divRemTo(Er,null,Zt),Zt}function Qh(Er){var Zt=a(),yn=a();return this.divRemTo(Er,Zt,yn),new Array(Zt,yn)}function Ri(Er){this[this.t]=this.am(0,Er-1,this,0,0,this.t),++this.t,this.clamp()}function Do(Er,Zt){if(Er!=0){for(;this.t<=Zt;)this[this.t++]=0;for(this[Zt]+=Er;this[Zt]>=this.DV;)this[Zt]-=this.DV,++Zt>=this.t&&(this[this.t++]=0),++this[Zt]}}function Wt(){}function Hu(Er){return Er}function Ru(Er,Zt,yn){Er.multiplyTo(Zt,yn)}function Vs(Er,Zt){Er.squareTo(Zt)}Wt.prototype.convert=Hu,Wt.prototype.revert=Hu,Wt.prototype.mulTo=Ru,Wt.prototype.sqrTo=Vs;function Ju(Er){return this.exp(Er,new Wt)}function Yn(Er,Zt,yn){var ls=Math.min(this.t+Er.t,Zt);for(yn.s=0,yn.t=ls;ls>0;)yn[--ls]=0;var oa;for(oa=yn.t-this.t;ls=0;)yn[ls]=0;for(ls=Math.max(Zt-this.t,0);ls2*this.m.t)return Er.mod(this.m);if(Er.compareTo(this.m)<0)return Er;var Zt=a();return Er.copyTo(Zt),this.reduce(Zt),Zt}function GA(Er){return Er}function $i(Er){for(Er.drShiftTo(this.m.t-1,this.r2),Er.t>this.m.t+1&&(Er.t=this.m.t+1,Er.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);Er.compareTo(this.r2)<0;)Er.dAddOffset(1,this.m.t+1);for(Er.subTo(this.r2,Er);Er.compareTo(this.m)>=0;)Er.subTo(this.m,Er)}function dl(Er,Zt){Er.squareTo(Zt),this.reduce(Zt)}function Uf(Er,Zt,yn){Er.multiplyTo(Zt,yn),this.reduce(yn)}Eg.prototype.convert=OA,Eg.prototype.revert=GA,Eg.prototype.reduce=$i,Eg.prototype.mulTo=Uf,Eg.prototype.sqrTo=dl;function Kd(Er,Zt){var yn=Er.bitLength(),ls,oa=ae(1),Fs;if(yn<=0)return oa;yn<18?ls=1:yn<48?ls=3:yn<144?ls=4:yn<768?ls=5:ls=6,yn<8?Fs=new Nr(Zt):Zt.isEven()?Fs=new Eg(Zt):Fs=new lr(Zt);var Wa=new Array,Ca=3,ld=ls-1,Rp=(1<1){var np=a();for(Fs.sqrTo(Wa[1],np);Ca<=Rp;)Wa[Ca]=a(),Fs.mulTo(np,Wa[Ca-2],Wa[Ca]),Ca+=2}var HA=Er.t-1,df,Zs=!0,so=a(),Ea;for(yn=Se(Er[HA])-1;HA>=0;){for(yn>=ld?df=Er[HA]>>yn-ld&Rp:(df=(Er[HA]&(1<0&&(df|=Er[HA-1]>>this.DB+yn-ld)),Ca=ls;!(df&1);)df>>=1,--Ca;if((yn-=Ca)<0&&(yn+=this.DB,--HA),Zs)Wa[df].copyTo(oa),Zs=!1;else{for(;Ca>1;)Fs.sqrTo(oa,so),Fs.sqrTo(so,oa),Ca-=2;Ca>0?Fs.sqrTo(oa,so):(Ea=oa,oa=so,so=Ea),Fs.mulTo(so,Wa[df],oa)}for(;HA>=0&&!(Er[HA]&1<0&&(Zt.rShiftTo(Fs,Zt),yn.rShiftTo(Fs,yn));Zt.signum()>0;)(oa=Zt.getLowestSetBit())>0&&Zt.rShiftTo(oa,Zt),(oa=yn.getLowestSetBit())>0&&yn.rShiftTo(oa,yn),Zt.compareTo(yn)>=0?(Zt.subTo(yn,Zt),Zt.rShiftTo(1,Zt)):(yn.subTo(Zt,yn),yn.rShiftTo(1,yn));return Fs>0&&yn.lShiftTo(Fs,yn),yn}function oo(Er){if(Er<=0)return 0;var Zt=this.DV%Er,yn=this.s<0?Er-1:0;if(this.t>0)if(Zt==0)yn=this[0]%Er;else for(var ls=this.t-1;ls>=0;--ls)yn=(Zt*yn+this[ls])%Er;return yn}function Ki(Er){var Zt=Er.isEven();if(this.isEven()&&Zt||Er.signum()==0)return n.ZERO;for(var yn=Er.clone(),ls=this.clone(),oa=ae(1),Fs=ae(0),Wa=ae(0),Ca=ae(1);yn.signum()!=0;){for(;yn.isEven();)yn.rShiftTo(1,yn),Zt?((!oa.isEven()||!Fs.isEven())&&(oa.addTo(this,oa),Fs.subTo(Er,Fs)),oa.rShiftTo(1,oa)):Fs.isEven()||Fs.subTo(Er,Fs),Fs.rShiftTo(1,Fs);for(;ls.isEven();)ls.rShiftTo(1,ls),Zt?((!Wa.isEven()||!Ca.isEven())&&(Wa.addTo(this,Wa),Ca.subTo(Er,Ca)),Wa.rShiftTo(1,Wa)):Ca.isEven()||Ca.subTo(Er,Ca),Ca.rShiftTo(1,Ca);yn.compareTo(ls)>=0?(yn.subTo(ls,yn),Zt&&oa.subTo(Wa,oa),Fs.subTo(Ca,Fs)):(ls.subTo(yn,ls),Zt&&Wa.subTo(oa,Wa),Ca.subTo(Fs,Ca))}if(ls.compareTo(n.ONE)!=0)return n.ZERO;if(Ca.compareTo(Er)>=0)return Ca.subtract(Er);if(Ca.signum()<0)Ca.addTo(Er,Ca);else return Ca;return Ca.signum()<0?Ca.add(Er):Ca}var cc=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],Xs=(1<<26)/cc[cc.length-1];function ws(Er){var Zt,yn=this.abs();if(yn.t==1&&yn[0]<=cc[cc.length-1]){for(Zt=0;Zt>1,Er>cc.length&&(Er=cc.length);for(var oa=a(),Fs=0;Fs>8&255,Dc[As++]^=Er>>16&255,Dc[As++]^=Er>>24&255,As>=MA&&(As-=MA)}function cm(){Tf(new Date().getTime())}if(Dc==null){Dc=new Array,As=0;var Fl;if(typeof window<"u"&&window.crypto){if(window.crypto.getRandomValues){var rc=new Uint8Array(32);for(window.crypto.getRandomValues(rc),Fl=0;Fl<32;++Fl)Dc[As++]=rc[Fl]}else if(navigator.appName=="Netscape"&&navigator.appVersion<"5"){var sd=window.crypto.random(32);for(Fl=0;Fl>>8,Dc[As++]=Fl&255;As=0,cm()}function Om(){if(Ma==null){for(cm(),Ma=Mp(),Ma.init(Dc),As=0;As{(function(){"use strict";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function t(l){return n(o(l),arguments)}function r(l,A){return t.apply(null,[l].concat(A||[]))}function n(l,A){var f=1,I=l.length,C,b="",E,N,B,F,Q,X,ae,ne;for(E=0;E=0),B.type){case"b":C=parseInt(C,10).toString(2);break;case"c":C=String.fromCharCode(parseInt(C,10));break;case"d":case"i":C=parseInt(C,10);break;case"j":C=JSON.stringify(C,null,B.width?parseInt(B.width):0);break;case"e":C=B.precision?parseFloat(C).toExponential(B.precision):parseFloat(C).toExponential();break;case"f":C=B.precision?parseFloat(C).toFixed(B.precision):parseFloat(C);break;case"g":C=B.precision?String(Number(C.toPrecision(B.precision))):parseFloat(C);break;case"o":C=(parseInt(C,10)>>>0).toString(8);break;case"s":C=String(C),C=B.precision?C.substring(0,B.precision):C;break;case"t":C=String(!!C),C=B.precision?C.substring(0,B.precision):C;break;case"T":C=Object.prototype.toString.call(C).slice(8,-1).toLowerCase(),C=B.precision?C.substring(0,B.precision):C;break;case"u":C=parseInt(C,10)>>>0;break;case"v":C=C.valueOf(),C=B.precision?C.substring(0,B.precision):C;break;case"x":C=(parseInt(C,10)>>>0).toString(16);break;case"X":C=(parseInt(C,10)>>>0).toString(16).toUpperCase();break}e.json.test(B.type)?b+=C:(e.number.test(B.type)&&(!ae||B.sign)?(ne=ae?"+":"-",C=C.toString().replace(e.sign,"")):ne="",Q=B.pad_char?B.pad_char==="0"?"0":B.pad_char.charAt(1):" ",X=B.width-(ne+C).length,F=B.width&&X>0?Q.repeat(X):"",b+=B.align?ne+C+F:Q==="0"?ne+F+C:F+ne+C)}return b}var a=Object.create(null);function o(l){if(a[l])return a[l];for(var A=l,f,I=[],C=0;A;){if((f=e.text.exec(A))!==null)I.push(f[0]);else if((f=e.modulo.exec(A))!==null)I.push("%");else if((f=e.placeholder.exec(A))!==null){if(f[2]){C|=1;var b=[],E=f[2],N=[];if((N=e.key.exec(E))!==null)for(b.push(N[1]);(E=E.substring(N[0].length))!=="";)if((N=e.key_access.exec(E))!==null)b.push(N[1]);else if((N=e.index_access.exec(E))!==null)b.push(N[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");f[2]=b}else C|=2;if(C===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");I.push({placeholder:f[0],param_no:f[1],keys:f[2],sign:f[3],pad_char:f[4],align:f[5],width:f[6],precision:f[7],type:f[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");A=A.substring(f[0].length)}return a[l]=I}typeof oLt<"u"&&(oLt.sprintf=t,oLt.vsprintf=r),typeof window<"u"&&(window.sprintf=t,window.vsprintf=r,typeof define=="function"&&define.amd&&define(function(){return{sprintf:t,vsprintf:r}}))})()});var b6r=H(V6=>{"use strict";var QNl=V6&&V6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),XNl=V6&&V6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),e0s=V6&&V6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&QNl(t,e,r);return XNl(t,e),t};Object.defineProperty(V6,"__esModule",{value:!0});V6.Address4=void 0;var q_s=e0s(h6r()),nJ=e0s(m6r()),$_s=iLt(),yze=_6r(),pFe=_ze(),y6r=class e{constructor(t){this.groups=nJ.GROUPS,this.parsedAddress=[],this.parsedSubnet="",this.subnet="/32",this.subnetMask=32,this.v4=!0,this.isCorrect=q_s.isCorrect(nJ.BITS),this.isInSubnet=q_s.isInSubnet,this.address=t;let r=nJ.RE_SUBNET_STRING.exec(t);if(r){if(this.parsedSubnet=r[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,this.subnetMask<0||this.subnetMask>nJ.BITS)throw new $_s.AddressError("Invalid subnet mask.");t=t.replace(nJ.RE_SUBNET_STRING,"")}this.addressMinusSuffix=t,this.parsedAddress=this.parse(t)}static isValid(t){try{return new e(t),!0}catch{return!1}}parse(t){let r=t.split(".");if(!t.match(nJ.RE_ADDRESS))throw new $_s.AddressError("Invalid IPv4 address.");return r}correctForm(){return this.parsedAddress.map(t=>parseInt(t,10)).join(".")}static fromHex(t){let r=t.replace(/:/g,"").padStart(8,"0"),n=[],a;for(a=0;a<8;a+=2){let o=r.slice(a,a+2);n.push(parseInt(o,16))}return new e(n.join("."))}static fromInteger(t){return e.fromHex(t.toString(16))}static fromArpa(t){let n=t.replace(/(\.in-addr\.arpa)?\.$/,"").split(".").reverse().join(".");return new e(n)}toHex(){return this.parsedAddress.map(t=>(0,pFe.sprintf)("%02x",parseInt(t,10))).join(":")}toArray(){return this.parsedAddress.map(t=>parseInt(t,10))}toGroup6(){let t=[],r;for(r=0;r(0,pFe.sprintf)("%02x",parseInt(t,10))).join(""),16)}_startAddress(){return new yze.BigInteger(this.mask()+"0".repeat(nJ.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new yze.BigInteger(this.mask()+"1".repeat(nJ.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new yze.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}static fromBigInteger(t){return e.fromInteger(parseInt(t.toString(),10))}mask(t){return t===void 0&&(t=this.subnetMask),this.getBitsBase2(0,t)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}reverseForm(t){t||(t={});let r=this.correctForm().split(".").reverse().join(".");return t.omitSuffix?r:(0,pFe.sprintf)("%s.in-addr.arpa.",r)}isMulticast(){return this.isInSubnet(new e("224.0.0.0/4"))}binaryZeroPad(){return this.bigInteger().toString(2).padStart(nJ.BITS,"0")}groupForV6(){let t=this.parsedAddress;return this.address.replace(nJ.RE_ADDRESS,(0,pFe.sprintf)('%s.%s',t.slice(0,2).join("."),t.slice(2,4).join(".")))}};V6.Address4=y6r});var E6r=H(rB=>{"use strict";Object.defineProperty(rB,"__esModule",{value:!0});rB.RE_URL_WITH_PORT=rB.RE_URL=rB.RE_ZONE_STRING=rB.RE_SUBNET_STRING=rB.RE_BAD_ADDRESS=rB.RE_BAD_CHARACTERS=rB.TYPES=rB.SCOPES=rB.GROUPS=rB.BITS=void 0;rB.BITS=128;rB.GROUPS=8;rB.SCOPES={0:"Reserved",1:"Interface local",2:"Link local",4:"Admin local",5:"Site local",8:"Organization local",14:"Global",15:"Reserved"};rB.TYPES={"ff01::1/128":"Multicast (All nodes on this interface)","ff01::2/128":"Multicast (All routers on this interface)","ff02::1/128":"Multicast (All nodes on this link)","ff02::2/128":"Multicast (All routers on this link)","ff05::2/128":"Multicast (All routers in this site)","ff02::5/128":"Multicast (OSPFv3 AllSPF routers)","ff02::6/128":"Multicast (OSPFv3 AllDR routers)","ff02::9/128":"Multicast (RIP routers)","ff02::a/128":"Multicast (EIGRP routers)","ff02::d/128":"Multicast (PIM routers)","ff02::16/128":"Multicast (MLDv2 reports)","ff01::fb/128":"Multicast (mDNSv6)","ff02::fb/128":"Multicast (mDNSv6)","ff05::fb/128":"Multicast (mDNSv6)","ff02::1:2/128":"Multicast (All DHCP servers and relay agents on this link)","ff05::1:2/128":"Multicast (All DHCP servers and relay agents in this site)","ff02::1:3/128":"Multicast (All DHCP servers on this link)","ff05::1:3/128":"Multicast (All DHCP servers in this site)","::/128":"Unspecified","::1/128":"Loopback","ff00::/8":"Multicast","fe80::/10":"Link-local unicast"};rB.RE_BAD_CHARACTERS=/([^0-9a-f:/%])/gi;rB.RE_BAD_ADDRESS=/([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\/$)/gi;rB.RE_SUBNET_STRING=/\/\d{1,3}(?=%|$)/;rB.RE_ZONE_STRING=/%.*$/;rB.RE_URL=new RegExp(/^\[{0,1}([0-9a-f:]+)\]{0,1}/);rB.RE_URL_WITH_PORT=new RegExp(/\[([0-9a-f:]+)\]:([0-9]{1,5})/)});var S6r=H(P6=>{"use strict";Object.defineProperty(P6,"__esModule",{value:!0});P6.simpleGroup=P6.spanLeadingZeroes=P6.spanAll=P6.spanAllZeroes=void 0;var t0s=_ze();function r0s(e){return e.replace(/(0+)/g,'$1')}P6.spanAllZeroes=r0s;function JNl(e,t=0){return e.split("").map((n,a)=>(0,t0s.sprintf)('%s',n,a+t,r0s(n))).join("")}P6.spanAll=JNl;function n0s(e){return e.replace(/^(0+)/,'$1')}function UNl(e){return e.split(":").map(r=>n0s(r)).join(":")}P6.spanLeadingZeroes=UNl;function KNl(e,t=0){return e.split(":").map((n,a)=>/group-v4/.test(n)?n:(0,t0s.sprintf)('%s',a+t,n0s(n)))}P6.simpleGroup=KNl});var i0s=H(vD=>{"use strict";var jNl=vD&&vD.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zNl=vD&&vD.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),qNl=vD&&vD.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&jNl(t,e,r);return zNl(t,e),t};Object.defineProperty(vD,"__esModule",{value:!0});vD.possibleElisions=vD.simpleRegularExpression=vD.ADDRESS_BOUNDARY=vD.padGroup=vD.groupPossibilities=void 0;var $Nl=qNl(E6r()),fFe=_ze();function cLt(e){return(0,fFe.sprintf)("(%s)",e.join("|"))}vD.groupPossibilities=cLt;function aLt(e){return e.length<4?(0,fFe.sprintf)("0{0,%d}%s",4-e.length,e):e}vD.padGroup=aLt;vD.ADDRESS_BOUNDARY="[^A-Fa-f0-9:]";function eDl(e){let t=[];e.forEach((n,a)=>{parseInt(n,16)===0&&t.push(a)});let r=t.map(n=>e.map((a,o)=>{if(o===n){let l=o===0||o===$Nl.GROUPS-1?":":"";return cLt([aLt(a),l])}return aLt(a)}).join(":"));return r.push(e.map(aLt).join(":")),cLt(r)}vD.simpleRegularExpression=eDl;function tDl(e,t,r){let n=t?"":":",a=r?"":":",o=[];!t&&!r&&o.push("::"),t&&r&&o.push(""),(r&&!t||!r&&t)&&o.push(":"),o.push((0,fFe.sprintf)("%s(:0{1,4}){1,%d}",n,e-1)),o.push((0,fFe.sprintf)("(0{1,4}:){1,%d}%s",e-1,a)),o.push((0,fFe.sprintf)("(0{1,4}:){%d}0{1,4}",e-1));for(let l=1;l{"use strict";var rDl=W6&&W6.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),nDl=W6&&W6.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),uLt=W6&&W6.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&rDl(t,e,r);return nDl(t,e),t};Object.defineProperty(W6,"__esModule",{value:!0});W6.Address6=void 0;var s0s=uLt(h6r()),v6r=uLt(m6r()),YE=uLt(E6r()),B6r=uLt(S6r()),L0e=b6r(),V0e=i0s(),gre=iLt(),fL=_6r(),IL=_ze();function lLt(e){if(!e)throw new Error("Assertion failed.")}function iDl(e){let t=/(\d+)(\d{3})/;for(;t.test(e);)e=e.replace(t,"$1,$2");return e}function sDl(e){return e=e.replace(/^(0{1,})([1-9]+)$/,'$1$2'),e=e.replace(/^(0{1,})(0)$/,'$1$2'),e}function oDl(e,t){let r=[],n=[],a;for(a=0;at[1]&&n.push(e[a]);return r.concat(["compact"]).concat(n)}function o0s(e){return(0,IL.sprintf)("%04x",parseInt(e,16))}function a0s(e){return e&255}var w6r=class e{constructor(t,r){this.addressMinusSuffix="",this.parsedSubnet="",this.subnet="/128",this.subnetMask=128,this.v4=!1,this.zone="",this.isInSubnet=s0s.isInSubnet,this.isCorrect=s0s.isCorrect(YE.BITS),r===void 0?this.groups=YE.GROUPS:this.groups=r,this.address=t;let n=YE.RE_SUBNET_STRING.exec(t);if(n){if(this.parsedSubnet=n[0].replace("/",""),this.subnetMask=parseInt(this.parsedSubnet,10),this.subnet=`/${this.subnetMask}`,Number.isNaN(this.subnetMask)||this.subnetMask<0||this.subnetMask>YE.BITS)throw new gre.AddressError("Invalid subnet mask.");t=t.replace(YE.RE_SUBNET_STRING,"")}else if(/\//.test(t))throw new gre.AddressError("Invalid subnet mask.");let a=YE.RE_ZONE_STRING.exec(t);a&&(this.zone=a[0],t=t.replace(YE.RE_ZONE_STRING,"")),this.addressMinusSuffix=t,this.parsedAddress=this.parse(this.addressMinusSuffix)}static isValid(t){try{return new e(t),!0}catch{return!1}}static fromBigInteger(t){let r=t.toString(16).padStart(32,"0"),n=[],a;for(a=0;a65536)&&(n=null)):n=null,{address:new e(r),port:n}}static fromAddress4(t){let r=new L0e.Address4(t),n=YE.BITS-(v6r.BITS-r.subnetMask);return new e(`::ffff:${r.correctForm()}/${n}`)}static fromArpa(t){let r=t.replace(/(\.ip6\.arpa)?\.$/,""),n=7;if(r.length!==63)throw new gre.AddressError("Invalid 'ip6.arpa' form.");let a=r.split(".").reverse();for(let o=n;o>0;o--){let l=o*4;a.splice(l,0,":")}return r=a.join(""),new e(r)}microsoftTranscription(){return(0,IL.sprintf)("%s.ipv6-literal.net",this.correctForm().replace(/:/g,"-"))}mask(t=this.subnetMask){return this.getBitsBase2(0,t)}possibleSubnets(t=128){let r=YE.BITS-this.subnetMask,n=Math.abs(t-YE.BITS),a=r-n;return a<0?"0":iDl(new fL.BigInteger("2",10).pow(a).toString(10))}_startAddress(){return new fL.BigInteger(this.mask()+"0".repeat(YE.BITS-this.subnetMask),2)}startAddress(){return e.fromBigInteger(this._startAddress())}startAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._startAddress().add(t))}_endAddress(){return new fL.BigInteger(this.mask()+"1".repeat(YE.BITS-this.subnetMask),2)}endAddress(){return e.fromBigInteger(this._endAddress())}endAddressExclusive(){let t=new fL.BigInteger("1");return e.fromBigInteger(this._endAddress().subtract(t))}getScope(){let t=YE.SCOPES[this.getBits(12,16).intValue()];return this.getType()==="Global unicast"&&t!=="Link local"&&(t="Global"),t||"Unknown"}getType(){for(let t of Object.keys(YE.TYPES))if(this.isInSubnet(new e(t)))return YE.TYPES[t];return"Global unicast"}getBits(t,r){return new fL.BigInteger(this.getBitsBase2(t,r),2)}getBitsBase2(t,r){return this.binaryZeroPad().slice(t,r)}getBitsBase16(t,r){let n=r-t;if(n%4!==0)throw new Error("Length of bits to retrieve must be divisible by four");return this.getBits(t,r).toString(16).padStart(n/4,"0")}getBitsPastSubnet(){return this.getBitsBase2(this.subnetMask,YE.BITS)}reverseForm(t){t||(t={});let r=Math.floor(this.subnetMask/4),n=this.canonicalForm().replace(/:/g,"").split("").slice(0,r).reverse().join(".");return r>0?t.omitSuffix?n:(0,IL.sprintf)("%s.ip6.arpa.",n):t.omitSuffix?"":"ip6.arpa."}correctForm(){let t,r=[],n=0,a=[];for(t=0;t0&&(n>1&&a.push([t-n,t-1]),n=0)}n>1&&a.push([this.parsedAddress.length-n,this.parsedAddress.length-1]);let o=a.map(A=>A[1]-A[0]+1);if(a.length>0){let A=o.indexOf(Math.max(...o));r=oDl(this.parsedAddress,a[A])}else r=this.parsedAddress;for(t=0;t1?"s":"",r.join("")),t.replace(YE.RE_BAD_CHARACTERS,'$1'));let n=t.match(YE.RE_BAD_ADDRESS);if(n)throw new gre.AddressError((0,IL.sprintf)("Address failed regex: %s",n.join("")),t.replace(YE.RE_BAD_ADDRESS,'$1'));let a=[],o=t.split("::");if(o.length===2){let l=o[0].split(":"),A=o[1].split(":");l.length===1&&l[0]===""&&(l=[]),A.length===1&&A[0]===""&&(A=[]);let f=this.groups-(l.length+A.length);if(!f)throw new gre.AddressError("Error parsing groups");this.elidedGroups=f,this.elisionBegin=l.length,this.elisionEnd=l.length+this.elidedGroups,a=a.concat(l);for(let I=0;I(0,IL.sprintf)("%x",parseInt(l,16))),a.length!==this.groups)throw new gre.AddressError("Incorrect number of groups found");return a}canonicalForm(){return this.parsedAddress.map(o0s).join(":")}decimal(){return this.parsedAddress.map(t=>(0,IL.sprintf)("%05d",parseInt(t,16))).join(":")}bigInteger(){return new fL.BigInteger(this.parsedAddress.map(o0s).join(""),16)}to4(){let t=this.binaryZeroPad().split("");return L0e.Address4.fromHex(new fL.BigInteger(t.slice(96,128).join(""),2).toString(16))}to4in6(){let t=this.to4(),n=new e(this.parsedAddress.slice(0,6).join(":"),6).correctForm(),a="";return/:$/.test(n)||(a=":"),n+a+t.address}inspectTeredo(){let t=this.getBitsBase16(0,32),r=this.getBits(80,96).xor(new fL.BigInteger("ffff",16)).toString(),n=L0e.Address4.fromHex(this.getBitsBase16(32,64)),a=L0e.Address4.fromHex(this.getBits(96,128).xor(new fL.BigInteger("ffffffff",16)).toString(16)),o=this.getBits(64,80),l=this.getBitsBase2(64,80),A=o.testBit(15),f=o.testBit(14),I=o.testBit(8),C=o.testBit(9),b=new fL.BigInteger(l.slice(2,6)+l.slice(8,16),2).toString(10);return{prefix:(0,IL.sprintf)("%s:%s",t.slice(0,4),t.slice(4,8)),server4:n.address,client4:a.address,flags:l,coneNat:A,microsoft:{reserved:f,universalLocal:C,groupIndividual:I,nonce:b},udpPort:r}}inspect6to4(){let t=this.getBitsBase16(0,16),r=L0e.Address4.fromHex(this.getBitsBase16(16,48));return{prefix:(0,IL.sprintf)("%s",t.slice(0,4)),gateway:r.address}}to6to4(){if(!this.is4())return null;let t=["2002",this.getBitsBase16(96,112),this.getBitsBase16(112,128),"","/16"].join(":");return new e(t)}toByteArray(){let t=this.bigInteger().toByteArray();return t.length===17&&t[0]===0?t.slice(1):t}toUnsignedByteArray(){return this.toByteArray().map(a0s)}static fromByteArray(t){return this.fromUnsignedByteArray(t.map(a0s))}static fromUnsignedByteArray(t){let r=new fL.BigInteger("256",10),n=new fL.BigInteger("0",10),a=new fL.BigInteger("1",10);for(let o=t.length-1;o>=0;o--)n=n.add(a.multiply(new fL.BigInteger(t[o].toString(10),10))),a=a.multiply(r);return e.fromBigInteger(n)}isCanonical(){return this.addressMinusSuffix===this.canonicalForm()}isLinkLocal(){return this.getBitsBase2(0,64)==="1111111010000000000000000000000000000000000000000000000000000000"}isMulticast(){return this.getType()==="Multicast"}is4(){return this.v4}isTeredo(){return this.isInSubnet(new e("2001::/32"))}is6to4(){return this.isInSubnet(new e("2002::/16"))}isLoopback(){return this.getType()==="Loopback"}href(t){return t===void 0?t="":t=(0,IL.sprintf)(":%s",t),(0,IL.sprintf)("http://[%s]%s/",this.correctForm(),t)}link(t){t||(t={}),t.className===void 0&&(t.className=""),t.prefix===void 0&&(t.prefix="/#address="),t.v4===void 0&&(t.v4=!1);let r=this.correctForm;return t.v4&&(r=this.to4in6),t.className?(0,IL.sprintf)('%2$s',t.prefix,r.call(this),t.className):(0,IL.sprintf)('%2$s',t.prefix,r.call(this))}group(){if(this.elidedGroups===0)return B6r.simpleGroup(this.address).join(":");lLt(typeof this.elidedGroups=="number"),lLt(typeof this.elisionBegin=="number");let t=[],[r,n]=this.address.split("::");r.length?t.push(...B6r.simpleGroup(r)):t.push("");let a=["hover-group"];for(let o=this.elisionBegin;o',a.join(" "))),n.length?t.push(...B6r.simpleGroup(n,this.elisionEnd)):t.push(""),this.is4()&&(lLt(this.address4 instanceof L0e.Address4),t.pop(),t.push(this.address4.groupForV6())),t.join(":")}regularExpressionString(t=!1){let r=[],n=new e(this.correctForm());if(n.elidedGroups===0)r.push((0,V0e.simpleRegularExpression)(n.parsedAddress));else if(n.elidedGroups===YE.GROUPS)r.push((0,V0e.possibleElisions)(YE.GROUPS));else{let a=n.address.split("::");a[0].length&&r.push((0,V0e.simpleRegularExpression)(a[0].split(":"))),lLt(typeof n.elidedGroups=="number"),r.push((0,V0e.possibleElisions)(n.elidedGroups,a[0].length!==0,a[1].length!==0)),a[1].length&&r.push((0,V0e.simpleRegularExpression)(a[1].split(":"))),r=[r.join(":")]}return t||(r=["(?=^|",V0e.ADDRESS_BOUNDARY,"|[^\\w\\:])(",...r,")(?=[^\\w\\:]|",V0e.ADDRESS_BOUNDARY,"|$)"]),r.join("")}regularExpression(t=!1){return new RegExp(this.regularExpressionString(t),"i")}};W6.Address6=w6r});var T6r=H(aF=>{"use strict";var aDl=aF&&aF.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),cDl=aF&&aF.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),lDl=aF&&aF.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&aDl(t,e,r);return cDl(t,e),t};Object.defineProperty(aF,"__esModule",{value:!0});aF.v6=aF.AddressError=aF.Address6=aF.Address4=void 0;var uDl=b6r();Object.defineProperty(aF,"Address4",{enumerable:!0,get:function(){return uDl.Address4}});var gDl=c0s();Object.defineProperty(aF,"Address6",{enumerable:!0,get:function(){return gDl.Address6}});var ADl=iLt();Object.defineProperty(aF,"AddressError",{enumerable:!0,get:function(){return ADl.AddressError}});var dDl=lDl(S6r());aF.v6={helpers:dDl}});var p0s=H(JH=>{"use strict";Object.defineProperty(JH,"__esModule",{value:!0});JH.ipToBuffer=JH.int32ToIpv4=JH.ipv4ToInt32=JH.validateSocksClientChainOptions=JH.validateSocksClientOptions=void 0;var hL=I6r(),BD=p6r(),pDl=wt("stream"),R6r=T6r(),l0s=wt("net");function fDl(e,t=["connect","bind","associate"]){if(!BD.SocksCommand[e.command])throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommand,e);if(t.indexOf(e.command)===-1)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandForOperation,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!A0s(e.proxy))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);if(u0s(e.proxy,e),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e);if(e.existing_socket&&!(e.existing_socket instanceof pDl.Duplex))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsExistingSocket,e)}JH.validateSocksClientOptions=fDl;function IDl(e){if(e.command!=="connect")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksCommandChain,e);if(!g0s(e.destination))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsDestination,e);if(!(e.proxies&&Array.isArray(e.proxies)&&e.proxies.length>=2))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxiesLength,e);if(e.proxies.forEach(t=>{if(!A0s(t))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsProxy,e);u0s(t,e)}),e.timeout&&!d0s(e.timeout))throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsTimeout,e)}JH.validateSocksClientChainOptions=IDl;function u0s(e,t){if(e.custom_auth_method!==void 0){if(e.custom_auth_methodBD.SOCKS5_CUSTOM_AUTH_END)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthRange,t);if(e.custom_auth_request_handler===void 0||typeof e.custom_auth_request_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_size===void 0)throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t);if(e.custom_auth_response_handler===void 0||typeof e.custom_auth_response_handler!="function")throw new hL.SocksClientError(BD.ERRORS.InvalidSocksClientOptionsCustomAuthOptions,t)}}function g0s(e){return e&&typeof e.host=="string"&&typeof e.port=="number"&&e.port>=0&&e.port<=65535}function A0s(e){return e&&(typeof e.host=="string"||typeof e.ipaddress=="string")&&typeof e.port=="number"&&e.port>=0&&e.port<=65535&&(e.type===4||e.type===5)}function d0s(e){return typeof e=="number"&&e>0}function hDl(e){return new R6r.Address4(e).toArray().reduce((r,n)=>(r<<8)+n,0)}JH.ipv4ToInt32=hDl;function mDl(e){let t=e>>>24&255,r=e>>>16&255,n=e>>>8&255,a=e&255;return[t,r,n,a].join(".")}JH.int32ToIpv4=mDl;function CDl(e){if(l0s.isIPv4(e)){let t=new R6r.Address4(e);return Buffer.from(t.toArray())}else if(l0s.isIPv6(e)){let t=new R6r.Address6(e);return Buffer.from(t.canonicalForm().split(":").map(r=>r.padStart(4,"0")).join(""),"hex")}else throw new Error("Invalid IP address format")}JH.ipToBuffer=CDl});var f0s=H(gLt=>{"use strict";Object.defineProperty(gLt,"__esModule",{value:!0});gLt.ReceiveBuffer=void 0;var N6r=class{constructor(t=4096){this.buffer=Buffer.allocUnsafe(t),this.offset=0,this.originalSize=t}get length(){return this.offset}append(t){if(!Buffer.isBuffer(t))throw new Error("Attempted to append a non-buffer instance to ReceiveBuffer.");if(this.offset+t.length>=this.buffer.length){let r=this.buffer;this.buffer=Buffer.allocUnsafe(Math.max(this.buffer.length+this.originalSize,this.buffer.length+t.length)),r.copy(this.buffer)}return t.copy(this.buffer,this.offset),this.offset+=t.length}peek(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");return this.buffer.slice(0,t)}get(t){if(t>this.offset)throw new Error("Attempted to read beyond the bounds of the managed internal data.");let r=Buffer.allocUnsafe(t);return this.buffer.slice(0,t).copy(r),this.buffer.copyWithin(0,t,t+this.offset-t),this.offset-=t,r}};gLt.ReceiveBuffer=N6r});var I0s=H(Xue=>{"use strict";var IFe=Xue&&Xue.__awaiter||function(e,t,r,n){function a(o){return o instanceof r?o:new r(function(l){l(o)})}return new(r||(r=Promise))(function(o,l){function A(C){try{I(n.next(C))}catch(b){l(b)}}function f(C){try{I(n.throw(C))}catch(b){l(b)}}function I(C){C.done?o(C.value):a(C.value).then(A,f)}I((n=n.apply(e,t||[])).next())})};Object.defineProperty(Xue,"__esModule",{value:!0});Xue.SocksClientError=Xue.SocksClient=void 0;var _Dl=wt("events"),hFe=wt("net"),eP=Y_s(),lu=p6r(),KO=p0s(),yDl=f0s(),k6r=I6r();Object.defineProperty(Xue,"SocksClientError",{enumerable:!0,get:function(){return k6r.SocksClientError}});var D6r=T6r(),x6r=class e extends _Dl.EventEmitter{constructor(t){super(),this.options=Object.assign({},t),(0,KO.validateSocksClientOptions)(t),this.setState(lu.SocksClientState.Created)}static createConnection(t,r){return new Promise((n,a)=>{try{(0,KO.validateSocksClientOptions)(t,["connect"])}catch(l){return typeof r=="function"?(r(l),n(l)):a(l)}let o=new e(t);o.connect(t.existing_socket),o.once("established",l=>{o.removeAllListeners(),typeof r=="function"&&r(null,l),n(l)}),o.once("error",l=>{o.removeAllListeners(),typeof r=="function"?(r(l),n(l)):a(l)})})}static createConnectionChain(t,r){return new Promise((n,a)=>IFe(this,void 0,void 0,function*(){try{(0,KO.validateSocksClientChainOptions)(t)}catch(o){return typeof r=="function"?(r(o),n(o)):a(o)}t.randomizeChain&&(0,k6r.shuffleArray)(t.proxies);try{let o;for(let l=0;lthis.onDataReceivedHandler(n),this.onClose=()=>this.onCloseHandler(),this.onError=n=>this.onErrorHandler(n),this.onConnect=()=>this.onConnectHandler();let r=setTimeout(()=>this.onEstablishedTimeout(),this.options.timeout||lu.DEFAULT_TIMEOUT);r.unref&&typeof r.unref=="function"&&r.unref(),t?this.socket=t:this.socket=new hFe.Socket,this.socket.once("close",this.onClose),this.socket.once("error",this.onError),this.socket.once("connect",this.onConnect),this.socket.on("data",this.onDataReceived),this.setState(lu.SocksClientState.Connecting),this.receiveBuffer=new yDl.ReceiveBuffer,t?this.socket.emit("connect"):(this.socket.connect(this.getSocketOptions()),this.options.set_tcp_nodelay!==void 0&&this.options.set_tcp_nodelay!==null&&this.socket.setNoDelay(!!this.options.set_tcp_nodelay)),this.prependOnceListener("established",n=>{setImmediate(()=>{if(this.receiveBuffer.length>0){let a=this.receiveBuffer.get(this.receiveBuffer.length);n.socket.emit("data",a)}n.socket.resume()})})}getSocketOptions(){return Object.assign(Object.assign({},this.options.socket_options),{host:this.options.proxy.host||this.options.proxy.ipaddress,port:this.options.proxy.port})}onEstablishedTimeout(){this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.BoundWaitingForConnection&&this.closeSocket(lu.ERRORS.ProxyConnectionTimedOut)}onConnectHandler(){this.setState(lu.SocksClientState.Connected),this.options.proxy.type===4?this.sendSocks4InitialHandshake():this.sendSocks5InitialHandshake(),this.setState(lu.SocksClientState.SentInitialHandshake)}onDataReceivedHandler(t){this.receiveBuffer.append(t),this.processData()}processData(){for(;this.state!==lu.SocksClientState.Established&&this.state!==lu.SocksClientState.Error&&this.receiveBuffer.length>=this.nextRequiredPacketBufferSize;)if(this.state===lu.SocksClientState.SentInitialHandshake)this.options.proxy.type===4?this.handleSocks4FinalHandshakeResponse():this.handleInitialSocks5HandshakeResponse();else if(this.state===lu.SocksClientState.SentAuthentication)this.handleInitialSocks5AuthenticationHandshakeResponse();else if(this.state===lu.SocksClientState.SentFinalHandshake)this.handleSocks5FinalHandshakeResponse();else if(this.state===lu.SocksClientState.BoundWaitingForConnection)this.options.proxy.type===4?this.handleSocks4IncomingConnectionResponse():this.handleSocks5IncomingConnectionResponse();else{this.closeSocket(lu.ERRORS.InternalError);break}}onCloseHandler(){this.closeSocket(lu.ERRORS.SocketClosed)}onErrorHandler(t){this.closeSocket(t.message)}removeInternalSocketHandlers(){this.socket.pause(),this.socket.removeListener("data",this.onDataReceived),this.socket.removeListener("close",this.onClose),this.socket.removeListener("error",this.onError),this.socket.removeListener("connect",this.onConnect)}closeSocket(t){this.state!==lu.SocksClientState.Error&&(this.setState(lu.SocksClientState.Error),this.socket.destroy(),this.removeInternalSocketHandlers(),this.emit("error",new k6r.SocksClientError(t,this.options)))}sendSocks4InitialHandshake(){let t=this.options.proxy.userId||"",r=new eP.SmartBuffer;r.writeUInt8(4),r.writeUInt8(lu.SocksCommand[this.options.command]),r.writeUInt16BE(this.options.destination.port),hFe.isIPv4(this.options.destination.host)?(r.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host)),r.writeStringNT(t)):(r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(0),r.writeUInt8(1),r.writeStringNT(t),r.writeStringNT(this.options.destination.host)),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks4Response,this.socket.write(r.toBuffer())}handleSocks4FinalHandshakeResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedConnection} - (${lu.Socks4Response[t[1]]})`);else if(lu.SocksCommand[this.options.command]===lu.SocksCommand.bind){let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};n.host==="0.0.0.0"&&(n.host=this.options.proxy.ipaddress),this.setState(lu.SocksClientState.BoundWaitingForConnection),this.emit("bound",{remoteHost:n,socket:this.socket})}else this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{socket:this.socket})}handleSocks4IncomingConnectionResponse(){let t=this.receiveBuffer.get(8);if(t[1]!==lu.Socks4Response.Granted)this.closeSocket(`${lu.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${lu.Socks4Response[t[1]]})`);else{let r=eP.SmartBuffer.fromBuffer(t);r.readOffset=2;let n={port:r.readUInt16BE(),host:(0,KO.int32ToIpv4)(r.readUInt32BE())};this.setState(lu.SocksClientState.Established),this.removeInternalSocketHandlers(),this.emit("established",{remoteHost:n,socket:this.socket})}}sendSocks5InitialHandshake(){let t=new eP.SmartBuffer,r=[lu.Socks5Auth.NoAuth];(this.options.proxy.userId||this.options.proxy.password)&&r.push(lu.Socks5Auth.UserPass),this.options.proxy.custom_auth_method!==void 0&&r.push(this.options.proxy.custom_auth_method),t.writeUInt8(5),t.writeUInt8(r.length);for(let n of r)t.writeUInt8(n);this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentInitialHandshake)}handleInitialSocks5HandshakeResponse(){let t=this.receiveBuffer.get(2);t[0]!==5?this.closeSocket(lu.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion):t[1]===lu.SOCKS5_NO_ACCEPTABLE_AUTH?this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType):t[1]===lu.Socks5Auth.NoAuth?(this.socks5ChosenAuthType=lu.Socks5Auth.NoAuth,this.sendSocks5CommandRequest()):t[1]===lu.Socks5Auth.UserPass?(this.socks5ChosenAuthType=lu.Socks5Auth.UserPass,this.sendSocks5UserPassAuthentication()):t[1]===this.options.proxy.custom_auth_method?(this.socks5ChosenAuthType=this.options.proxy.custom_auth_method,this.sendSocks5CustomAuthentication()):this.closeSocket(lu.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType)}sendSocks5UserPassAuthentication(){let t=this.options.proxy.userId||"",r=this.options.proxy.password||"",n=new eP.SmartBuffer;n.writeUInt8(1),n.writeUInt8(Buffer.byteLength(t)),n.writeString(t),n.writeUInt8(Buffer.byteLength(r)),n.writeString(r),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse,this.socket.write(n.toBuffer()),this.setState(lu.SocksClientState.SentAuthentication)}sendSocks5CustomAuthentication(){return IFe(this,void 0,void 0,function*(){this.nextRequiredPacketBufferSize=this.options.proxy.custom_auth_response_size,this.socket.write(yield this.options.proxy.custom_auth_request_handler()),this.setState(lu.SocksClientState.SentAuthentication)})}handleSocks5CustomAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return yield this.options.proxy.custom_auth_response_handler(t)})}handleSocks5AuthenticationNoAuthHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleSocks5AuthenticationUserPassHandshakeResponse(t){return IFe(this,void 0,void 0,function*(){return t[1]===0})}handleInitialSocks5AuthenticationHandshakeResponse(){return IFe(this,void 0,void 0,function*(){this.setState(lu.SocksClientState.ReceivedAuthenticationResponse);let t=!1;this.socks5ChosenAuthType===lu.Socks5Auth.NoAuth?t=yield this.handleSocks5AuthenticationNoAuthHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===lu.Socks5Auth.UserPass?t=yield this.handleSocks5AuthenticationUserPassHandshakeResponse(this.receiveBuffer.get(2)):this.socks5ChosenAuthType===this.options.proxy.custom_auth_method&&(t=yield this.handleSocks5CustomAuthHandshakeResponse(this.receiveBuffer.get(this.options.proxy.custom_auth_response_size))),t?this.sendSocks5CommandRequest():this.closeSocket(lu.ERRORS.Socks5AuthenticationFailed)})}sendSocks5CommandRequest(){let t=new eP.SmartBuffer;t.writeUInt8(5),t.writeUInt8(lu.SocksCommand[this.options.command]),t.writeUInt8(0),hFe.isIPv4(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv4),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):hFe.isIPv6(this.options.destination.host)?(t.writeUInt8(lu.Socks5HostType.IPv6),t.writeBuffer((0,KO.ipToBuffer)(this.options.destination.host))):(t.writeUInt8(lu.Socks5HostType.Hostname),t.writeUInt8(this.options.destination.host.length),t.writeString(this.options.destination.host)),t.writeUInt16BE(this.options.destination.port),this.nextRequiredPacketBufferSize=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader,this.socket.write(t.toBuffer()),this.setState(lu.SocksClientState.SentFinalHandshake)}handleSocks5FinalHandshakeResponse(){let t=this.receiveBuffer.peek(5);if(t[0]!==5||t[1]!==lu.Socks5Response.Granted)this.closeSocket(`${lu.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${lu.Socks5Response[t[1]]}`);else{let r=t[3],n,a;if(r===lu.Socks5HostType.IPv4){let o=lu.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;if(this.receiveBuffer.length{"use strict";var bDl=P0e&&P0e.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),EDl=P0e&&P0e.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&bDl(t,e,r)};Object.defineProperty(P0e,"__esModule",{value:!0});EDl(I0s(),P0e)});var C0s=H(UH=>{"use strict";var SDl=UH&&UH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),vDl=UH&&UH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),m0s=UH&&UH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&SDl(t,e,r);return vDl(t,e),t},BDl=UH&&UH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(UH,"__esModule",{value:!0});UH.SocksProxyAgent=void 0;var wDl=h0s(),TDl=mze(),RDl=BDl(uT()),NDl=m0s(wt("dns")),DDl=m0s(wt("tls")),kDl=wt("url"),ALt=(0,RDl.default)("socks-proxy-agent");function xDl(e){let t=!1,r=5,n=e.hostname,a=parseInt(e.port,10)||1080;switch(e.protocol.replace(":","")){case"socks4":t=!0,r=4;break;case"socks4a":r=4;break;case"socks5":t=!0,r=5;break;case"socks":r=5;break;case"socks5h":r=5;break;default:throw new TypeError(`A "socks" protocol must be specified! Got: ${String(e.protocol)}`)}let o={host:n,port:a,type:r};return e.username&&Object.defineProperty(o,"userId",{value:decodeURIComponent(e.username),enumerable:!1}),e.password!=null&&Object.defineProperty(o,"password",{value:decodeURIComponent(e.password),enumerable:!1}),{lookup:t,proxy:o}}var dLt=class extends TDl.Agent{constructor(t,r){super(r);let n=typeof t=="string"?new kDl.URL(t):t,{proxy:a,lookup:o}=xDl(n);this.shouldLookup=o,this.proxy=a,this.timeout=r?.timeout??null,this.socketOptions=r?.socketOptions??null}async connect(t,r){let{shouldLookup:n,proxy:a,timeout:o}=this;if(!r.host)throw new Error("No `host` defined!");let{host:l}=r,{port:A,lookup:f=NDl.lookup}=r;n&&(l=await new Promise((E,N)=>{f(l,{},(B,F)=>{B?N(B):E(F)})}));let I={proxy:a,destination:{host:l,port:typeof A=="number"?A:parseInt(A,10)},command:"connect",timeout:o??void 0,socket_options:this.socketOptions??void 0},C=E=>{t.destroy(),b.destroy(),E&&E.destroy()};ALt("Creating socks proxy connection: %o",I);let{socket:b}=await wDl.SocksClient.createConnection(I);if(ALt("Successfully created socks proxy connection"),o!==null&&(b.setTimeout(o),b.on("timeout",()=>C())),r.secureEndpoint){ALt("Upgrading socket connection to TLS");let E=r.servername||r.host,N=DDl.connect({...GDl(r,"host","path","port"),socket:b,servername:E});return N.once("error",B=>{ALt("Socket TLS error",B.message),C(N)}),N}return b}};dLt.protocols=["socks","socks4","socks4a","socks5","socks5h"];UH.SocksProxyAgent=dLt;function GDl(e,...t){let r={},n;for(n in e)t.includes(n)||(r[n]=e[n]);return r}});var P6r=H((nog,_0s)=>{"use strict";var G6r=class extends Error{constructor(t){super(`Invalid protocol \`${t.protocol}\` connecting to proxy \`${t.host}\``),this.code="EINVALIDPROXY",this.proxy=t}},F6r=class extends Error{constructor(t){super(`Timeout connecting to host \`${t}\``),this.code="ECONNECTIONTIMEOUT",this.host=t}},Z6r=class extends Error{constructor(t){super(`Idle timeout reached for host \`${t}\``),this.code="EIDLETIMEOUT",this.host=t}},L6r=class extends Error{constructor(t,r){let n="Response timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`connecting to host \`${t.host}\``,super(n),this.code="ERESPONSETIMEOUT",this.proxy=r,this.request=t}},V6r=class extends Error{constructor(t,r){let n="Transfer timeout ";r&&(n+=`from proxy \`${r.host}\` `),n+=`for \`${t.host}\``,super(n),this.code="ETRANSFERTIMEOUT",this.proxy=r,this.request=t}};_0s.exports={InvalidProxyProtocolError:G6r,ConnectionTimeoutError:F6r,IdleTimeoutError:Z6r,ResponseTimeoutError:L6r,TransferTimeoutError:V6r}});var W6r=H((iog,b0s)=>{"use strict";var{HttpProxyAgent:FDl}=k_s(),{HttpsProxyAgent:ZDl}=V_s(),{SocksProxyAgent:y0s}=C0s(),{LRUCache:LDl}=yIe(),{InvalidProxyProtocolError:VDl}=P6r(),PDl=new LDl({max:20}),WDl=new Set(y0s.protocols),ODl=new Set(["https_proxy","http_proxy","proxy","no_proxy"]),bze=Object.entries(process.env).reduce((e,[t,r])=>(t=t.toLowerCase(),ODl.has(t)&&(e[t]=r),e),{}),MDl=e=>{e=new URL(e);let t=e.protocol.slice(0,-1);if(WDl.has(t))return y0s;if(t==="https"||t==="http")return[FDl,ZDl];throw new VDl(e)},HDl=(e,t)=>{if(typeof t=="string"&&(t=t.split(",").map(n=>n.trim()).filter(Boolean)),!t||!t.length)return!1;let r=e.hostname.split(".").reverse();return t.some(n=>{let a=n.split(".").filter(Boolean).reverse();if(!a.length)return!1;for(let o=0;o(e=new URL(e),t||(t=e.protocol==="https:"?bze.https_proxy:bze.https_proxy||bze.http_proxy||bze.proxy),r||(r=bze.no_proxy),!t||HDl(e,r)?null:new URL(t));b0s.exports={getProxyAgent:MDl,getProxy:YDl,proxyCache:PDl}});var v0s=H((oog,S0s)=>{"use strict";var QDl=wt("net"),XDl=wt("tls"),{once:E0s}=wt("events"),JDl=wt("timers/promises"),{normalizeOptions:UDl,cacheOptions:KDl}=l6r(),{getProxy:jDl,getProxyAgent:zDl,proxyCache:O6r}=W6r(),pLt=P6r(),{Agent:qDl}=mze();S0s.exports=class extends qDl{#e;#t;#n;#r;#i;constructor(t={}){let{timeouts:r,proxy:n,noProxy:a,...o}=UDl(t);super(o),this.#e=o,this.#t=r,n&&(this.#n=new URL(n),this.#r=a,this.#i=zDl(n))}get proxy(){return this.#n?{url:this.#n}:{}}#s(t){if(!this.#n)return;let r=jDl(`${t.protocol}//${t.host}:${t.port}`,{proxy:this.#n,noProxy:this.#r});if(!r)return;let n=KDl({...t,...this.#e,timeouts:this.#t,proxy:r});if(O6r.has(n))return O6r.get(n);let a=this.#i;Array.isArray(a)&&(a=this.isSecureEndpoint(t)?a[1]:a[0]);let o=new a(r,{...this.#e,socketOptions:{family:this.#e.family}});return O6r.set(n,o),o}async#o({promises:t,options:r,timeout:n},a=new AbortController){if(n){let l=JDl.setTimeout(n,null,{signal:a.signal}).then(()=>{throw new pLt.ConnectionTimeoutError(`${r.host}:${r.port}`)}).catch(A=>{if(A.name!=="AbortError")throw A});t.push(l)}let o;try{o=await Promise.race(t),a.abort()}catch(l){throw a.abort(),l}return o}async connect(t,r){r.lookup??=this.#e.lookup;let n,a=this.#t.connection,o=this.isSecureEndpoint(r),l=this.#s(r);if(l){let C=Date.now();n=await this.#o({options:r,timeout:a,promises:[l.connect(t,r)]}),a&&(a=a-(Date.now()-C))}else n=(o?XDl:QDl).connect(r);n.setKeepAlive(this.keepAlive,this.keepAliveMsecs),n.setNoDelay(this.keepAlive);let A=new AbortController,{signal:f}=A,I=n[o?"secureConnecting":"connecting"]?E0s(n,o?"secureConnect":"connect",{signal:f}):Promise.resolve();return await this.#o({options:r,timeout:a,promises:[I,E0s(n,"error",{signal:f}).then(C=>{throw C[0]})]},A),this.#t.idle&&n.setTimeout(this.#t.idle,()=>{n.destroy(new pLt.IdleTimeoutError(`${r.host}:${r.port}`))}),n}addRequest(t,r){let n=this.#s(r);if(n?.setRequestProps&&n.setRequestProps(t,r),t.setHeader("connection",this.keepAlive?"keep-alive":"close"),this.#t.response){let a;t.once("finish",()=>{setTimeout(()=>{t.destroy(new pLt.ResponseTimeoutError(t,this.#n))},this.#t.response)}),t.once("response",()=>{clearTimeout(a)})}if(this.#t.transfer){let a;t.once("response",o=>{setTimeout(()=>{o.destroy(new pLt.TransferTimeoutError(t,this.#n))},this.#t.transfer),o.once("close",()=>{clearTimeout(a)})})}return super.addRequest(t,r)}}});var R0s=H((aog,T0s)=>{"use strict";var{LRUCache:$Dl}=yIe(),{normalizeOptions:ekl,cacheOptions:tkl}=l6r(),{getProxy:rkl,proxyCache:B0s}=W6r(),w0s=c6r(),fLt=v0s(),Eze=new $Dl({max:20}),nkl=(e,{agent:t,proxy:r,noProxy:n,...a}={})=>{if(t!=null)return t;e=new URL(e);let o=rkl(e,{proxy:r,noProxy:n}),l={...ekl(a),proxy:o},A=tkl({...l,secureEndpoint:e.protocol==="https:"});if(Eze.has(A))return Eze.get(A);let f=new fLt(l);return Eze.set(A,f),f};T0s.exports={getAgent:nkl,Agent:fLt,HttpAgent:fLt,HttpsAgent:fLt,cache:{proxy:B0s,agent:Eze,dns:w0s.cache,clear:()=>{B0s.clear(),Eze.clear(),w0s.cache.clear()}}}});var N0s=H((cog,ikl)=>{ikl.exports={name:"make-fetch-happen",version:"14.0.3",description:"Opinionated, caching, retrying fetch client",main:"lib/index.js",files:["bin/","lib/"],scripts:{test:"tap",posttest:"npm run lint",eslint:'eslint "**/*.{js,cjs,ts,mjs,jsx,tsx}"',lint:"npm run eslint",lintfix:"npm run eslint -- --fix",postlint:"template-oss-check",snap:"tap","template-oss-apply":"template-oss-apply --force"},repository:{type:"git",url:"git+https://github.com/npm/make-fetch-happen.git"},keywords:["http","request","fetch","mean girls","caching","cache","subresource integrity"],author:"GitHub Inc.",license:"ISC",dependencies:{"@npmcli/agent":"^3.0.0",cacache:"^19.0.1","http-cache-semantics":"^4.1.1",minipass:"^7.0.2","minipass-fetch":"^4.0.0","minipass-flush":"^1.0.5","minipass-pipeline":"^1.2.4",negotiator:"^1.0.0","proc-log":"^5.0.0","promise-retry":"^2.0.1",ssri:"^12.0.0"},devDependencies:{"@npmcli/eslint-config":"^5.0.0","@npmcli/template-oss":"4.23.4",nock:"^13.2.4","safe-buffer":"^5.2.1","standard-version":"^9.3.2",tap:"^16.0.0"},engines:{node:"^18.17.0 || >=20.5.0"},tap:{color:1,files:"test/*.js","check-coverage":!0,timeout:60,"nyc-arg":["--exclude","tap-snapshots/**"]},templateOSS:{"//@npmcli/template-oss":"This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",version:"4.23.4",publish:"true"}}});var hLt=H((log,k0s)=>{var{Minipass:skl}=rF(),ILt=H7e(),okl=o6r(),akl=Jte(),{log:D0s}=a6r(),ckl=s6r(),{getAgent:lkl}=R0s(),M6r=N0s(),ukl=`${M6r.name}/${M6r.version} (+https://npm.im/${M6r.name})`,gkl=["ECONNRESET","ECONNREFUSED","EADDRINUSE","ETIMEDOUT","ECONNECTIONTIMEOUT","EIDLETIMEOUT","ERESPONSETIMEOUT","ETRANSFERTIMEOUT"],Akl=["request-timeout"],dkl=(e,t)=>{let r=lkl(e.url,{...t,signal:void 0});e.headers.has("connection")||e.headers.set("connection",r?"keep-alive":"close"),e.headers.has("user-agent")||e.headers.set("user-agent",ukl);let n={...t,agent:r,redirect:"manual"};return okl(async(a,o)=>{let l=new ILt.Request(e,n);try{let A=await ILt(l,n);if(n.integrity&&A.status===200){let C=akl.integrityStream({algorithms:n.algorithms,integrity:n.integrity,size:n.size}),b=new ckl({events:["integrity","size"]},A.body,C);C.on("integrity",E=>b.emit("integrity",E)),C.on("size",E=>b.emit("size",E)),A=new ILt.Response(b,A),A.body.hasIntegrityEmitter=!0}A.headers.set("x-fetch-attempts",o);let f=skl.isStream(l.body);return l.method!=="POST"&&!f&&([408,420,429].includes(A.status)||A.status>=500)?(typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.status}`),a(A)):A}catch(A){let f=A.code==="EPROMISERETRY"?A.retried.code:A.code,I=A.retried instanceof ILt.Response||gkl.includes(f)&&Akl.includes(A.type);if(l.method==="POST"||I)throw A;return typeof t.onRetry=="function"&&t.onRetry(A),D0s.http("fetch",`${l.method} ${l.url} attempt ${o} failed with ${A.code}`),a(A)}},t.retry).catch(a=>{if(a.status>=400&&a.type!=="system")return a;throw a})};k0s.exports=dkl});var V0s=H((uog,L0s)=>{var{Request:x0s,Response:H6r}=H7e(),{Minipass:G0s}=rF(),pkl=sZt(),W0e=s_s(),fkl=wt("url"),Ikl=s6r(),hkl=O8r(),Y6r=c_s(),mkl=hLt(),Sze=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Ckl=["accept-charset","accept-encoding","accept-language","accept","cache-control"],Z0s=["cache-control","content-encoding","content-language","content-type","date","etag","expires","last-modified","link","location","pragma","vary"],F0s=(e,t,r)=>{let n={time:Date.now(),url:e.url,reqHeaders:{},resHeaders:{},options:{compress:r.compress!=null?r.compress:e.compress}};t.status!==200&&t.status!==304&&(n.status=t.status);for(let l of Ckl)e.headers.has(l)&&(n.reqHeaders[l]=e.headers.get(l));let a=e.headers.get("host"),o=new fkl.URL(e.url);if(a&&o.host!==a&&(n.reqHeaders.host=a),t.headers.has("vary")){let l=t.headers.get("vary");if(l!=="*"){let A=l.trim().toLowerCase().split(/\s*,\s*/);for(let f of A)e.headers.has(f)&&(n.reqHeaders[f]=e.headers.get(f))}}for(let l of Z0s)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));for(let l of r.cacheAdditionalHeaders)t.headers.has(l)&&(n.resHeaders[l]=t.headers.get(l));return n},mLt=Symbol("request"),CLt=Symbol("response"),_Lt=Symbol("policy"),Q6r=class e{constructor({entry:t,request:r,response:n,options:a}){t?(this.key=t.key,this.entry=t,this.entry.metadata.time=this.entry.metadata.time||this.entry.time):this.key=Y6r(r),this.options=a,this[mLt]=r,this[CLt]=n,this[_Lt]=null}static async find(t,r){try{var n=await W0e.index.compact(r.cachePath,Y6r(t),(o,l)=>{let A=new e({entry:o,options:r}),f=new e({entry:l,options:r});return A.policy.satisfies(f.request)},{validateEntry:o=>o.metadata&&o.metadata.resHeaders&&o.metadata.resHeaders["content-encoding"]===null?!1:o.integrity===null?!!(o.metadata&&o.metadata.status):!0})}catch{return}if(r.cache==="reload")return;let a;for(let o of n){let l=new e({entry:o,options:r});if(l.policy.satisfies(t)){a=l;break}}return a}static async invalidate(t,r){let n=Y6r(t);try{await W0e.rm.entry(r.cachePath,n,{removeFully:!0})}catch{}}get request(){return this[mLt]||(this[mLt]=new x0s(this.entry.metadata.url,{method:"GET",headers:this.entry.metadata.reqHeaders,...this.entry.metadata.options})),this[mLt]}get response(){return this[CLt]||(this[CLt]=new H6r(null,{url:this.entry.metadata.url,counter:this.options.counter,status:this.entry.metadata.status||200,headers:{...this.entry.metadata.resHeaders,"content-length":this.entry.size}})),this[CLt]}get policy(){return this[_Lt]||(this[_Lt]=new hkl({entry:this.entry,request:this.request,response:this.response,options:this.options})),this[_Lt]}async store(t){if(this.request.method!=="GET"||![200,301,308].includes(this.response.status)||!this.policy.storable())return this.response.headers.set("x-local-cache-status","skip"),this.response;let r=this.response.headers.get("content-length"),n={algorithms:this.options.algorithms,metadata:F0s(this.request,this.response,this.options),size:r,integrity:this.options.integrity,integrityEmitter:this.response.body.hasIntegrityEmitter&&this.response.body},a=null;if(this.response.status===200){let l,A,f=new Promise((C,b)=>{l=C,A=b}).catch(C=>{a.emit("error",C)});a=new Ikl({events:["integrity","size"]},new pkl({flush(){return f}})),a.hasIntegrityEmitter=!0;let I=()=>{let C=new G0s,b=W0e.put.stream(this.options.cachePath,this.key,n);b.on("integrity",E=>a.emit("integrity",E)),b.on("size",E=>a.emit("size",E)),C.pipe(b),b.promise().then(l,A),a.unshift(C),a.unshift(this.response.body)};a.once("resume",I),a.once("end",()=>a.removeListener("resume",I))}else await W0e.index.insert(this.options.cachePath,this.key,null,n);return this.response.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),this.response.headers.set("x-local-cache-key",encodeURIComponent(this.key)),this.response.headers.set("x-local-cache-mode","stream"),this.response.headers.set("x-local-cache-status",t),this.response.headers.set("x-local-cache-time",new Date().toISOString()),new H6r(a,{url:this.response.url,status:this.response.status,headers:this.response.headers,counter:this.options.counter})}async respond(t,r,n){let a;if(t==="HEAD"||[301,308].includes(this.response.status))a=this.response;else{let o=new G0s,l={...this.policy.responseHeaders()},A=()=>{let f=W0e.get.stream.byDigest(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize});f.on("error",async I=>{f.pause(),I.code==="EINTEGRITY"&&await W0e.rm.content(this.options.cachePath,this.entry.integrity,{memoize:this.options.memoize}),(I.code==="ENOENT"||I.code==="EINTEGRITY")&&await e.invalidate(this.request,this.options),o.emit("error",I),f.resume()}),o.emit("integrity",this.entry.integrity),o.emit("size",Number(l["content-length"])),f.pipe(o)};o.once("resume",A),o.once("end",()=>o.removeListener("resume",A)),a=new H6r(o,{url:this.entry.metadata.url,counter:r.counter,status:200,headers:l})}return a.headers.set("x-local-cache",encodeURIComponent(this.options.cachePath)),a.headers.set("x-local-cache-hash",encodeURIComponent(this.entry.integrity)),a.headers.set("x-local-cache-key",encodeURIComponent(this.key)),a.headers.set("x-local-cache-mode","stream"),a.headers.set("x-local-cache-status",n),a.headers.set("x-local-cache-time",new Date(this.entry.metadata.time).toUTCString()),a}async revalidate(t,r){let n=new x0s(t,{headers:this.policy.revalidationHeaders(t)});try{var a=await mkl(n,{...r,headers:void 0})}catch(l){if(!this.policy.mustRevalidate)return this.respond(t.method,r,"stale");throw l}if(this.policy.revalidated(n,a)){let l=F0s(t,a,r);for(let A of Z0s)!Sze(l.resHeaders,A)&&Sze(this.entry.metadata.resHeaders,A)&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]);for(let A of r.cacheAdditionalHeaders){let f=Sze(l.resHeaders,A),I=Sze(this.entry.metadata.resHeaders,A),C=Sze(this.policy.response.headers,A);!f&&I&&(l.resHeaders[A]=this.entry.metadata.resHeaders[A]),!C&&f&&(this.policy.response.headers[A]=l.resHeaders[A])}try{await W0e.index.insert(r.cachePath,this.key,this.entry.integrity,{size:this.entry.size,metadata:l})}catch{}return this.respond(t.method,r,"revalidated")}return new e({request:t,response:a,options:r}).store("updated")}};L0s.exports=Q6r});var O0s=H((gog,W0s)=>{var{NotCachedError:_kl}=bhs(),X6r=V0s(),ykl=hLt(),P0s=async(e,t)=>{let r=await X6r.find(e,t);if(!r){if(t.cache==="only-if-cached")throw new _kl(e.url);let a=await ykl(e,t);return new X6r({request:e,response:a,options:t}).store("miss")}if(t.cache==="no-cache")return r.revalidate(e,t);let n=r.policy.needsRevalidation(e);return t.cache==="force-cache"||t.cache==="only-if-cached"||!n?r.respond(e.method,t,n?"stale":"hit"):r.revalidate(e,t)};P0s.invalidate=async(e,t)=>{if(t.cachePath)return X6r.invalidate(e,t)};W0s.exports=P0s});var Q0s=H((Aog,Y0s)=>{"use strict";var{FetchError:J6r,Request:bkl,isRedirect:Ekl}=H7e(),U6r=wt("url"),Skl=O8r(),M0s=O0s(),vkl=hLt(),Bkl=(e,t,r)=>{if(!Ekl(t.status)||r.redirect==="manual")return!1;if(r.redirect==="error")throw new J6r(`redirect mode is set to error: ${e.url}`,"no-redirect",{code:"ENOREDIRECT"});if(!t.headers.has("location"))throw new J6r(`redirect location header missing for: ${e.url}`,"no-location",{code:"EINVALIDREDIRECT"});if(e.counter>=e.follow)throw new J6r(`maximum redirect reached at: ${e.url}`,"max-redirect",{code:"EMAXREDIRECT"});return!0},wkl=(e,t,r)=>{let n={...r},a=t.headers.get("location"),o=new U6r.URL(a,/^https?:/.test(a)?void 0:e.url);return new U6r.URL(e.url).hostname!==o.hostname&&(e.headers.delete("authorization"),e.headers.delete("cookie")),(t.status===303||e.method==="POST"&&[301,302].includes(t.status))&&(n.method="GET",n.body=null,e.headers.delete("content-length")),n.headers={},e.headers.forEach((A,f)=>{n.headers[f]=A}),n.counter=++e.counter,{request:new bkl(U6r.format(o),n),options:n}},H0s=async(e,t)=>{let r=Skl.storable(e,t)?await M0s(e,t):await vkl(e,t);if(!["GET","HEAD"].includes(e.method)&&r.status>=200&&r.status<=399&&await M0s.invalidate(e,t),!Bkl(e,r,t))return r;let n=wkl(e,r,t);return H0s(n.request,n.options)};Y0s.exports=H0s});var bLt=H((dog,mFe)=>{var{FetchError:Tkl,Headers:Rkl,Request:X0s,Response:Nkl}=H7e(),Dkl=KIs(),kkl=Q0s(),yLt=(e,t)=>{let r=Dkl(t),n=new X0s(e,r);return kkl(n,r)};yLt.defaults=(e,t={},r=yLt)=>{typeof e=="object"&&(t=e,e=null);let n=(a,o={})=>{let l=a||e,A={...t,...o,headers:{...t.headers,...o.headers}};return r(l,A)};return n.defaults=(a,o={})=>yLt.defaults(a,o,n),n};mFe.exports=yLt;mFe.exports.FetchError=Tkl;mFe.exports.Headers=Rkl;mFe.exports.Request=X0s;mFe.exports.Response=Nkl});var J0s=H(CFe=>{"use strict";var xkl=CFe&&CFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(CFe,"__esModule",{value:!0});CFe.CIContextProvider=void 0;var Gkl=xkl(bLt()),Fkl=[Zkl,Lkl],K6r=class{constructor(t="sigstore"){this.audience=t}async getToken(){return Promise.any(Fkl.map(t=>t(this.audience))).catch(()=>Promise.reject("CI: no tokens available"))}};CFe.CIContextProvider=K6r;async function Zkl(e){if(!process.env.ACTIONS_ID_TOKEN_REQUEST_URL||!process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN)return Promise.reject("no token available");let t=new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);return t.searchParams.append("audience",e),(await(0,Gkl.default)(t.href,{retry:2,headers:{Accept:"application/json",Authorization:`Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`}})).json().then(n=>n.value)}async function Lkl(){return process.env.SIGSTORE_ID_TOKEN?process.env.SIGSTORE_ID_TOKEN:Promise.reject("no token available")}});var U0s=H(ELt=>{"use strict";Object.defineProperty(ELt,"__esModule",{value:!0});ELt.CIContextProvider=void 0;var Vkl=J0s();Object.defineProperty(ELt,"CIContextProvider",{enumerable:!0,get:function(){return Vkl.CIContextProvider}})});var SLt=H(vze=>{"use strict";var j0s=vze&&vze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vze,"__esModule",{value:!0});vze.fetchWithRetry=jkl;var Pkl=wt("http2"),Wkl=j0s(bLt()),K0s=a6r(),Okl=j0s(o6r()),Mkl=Zue(),Hkl=BFt(),{HTTP2_HEADER_LOCATION:Ykl,HTTP2_HEADER_CONTENT_TYPE:Qkl,HTTP2_HEADER_USER_AGENT:Xkl,HTTP_STATUS_INTERNAL_SERVER_ERROR:Jkl,HTTP_STATUS_TOO_MANY_REQUESTS:Ukl,HTTP_STATUS_REQUEST_TIMEOUT:Kkl}=Pkl.constants;async function jkl(e,t){return(0,Okl.default)(async(r,n)=>{let a=t.method||"POST",o={[Xkl]:Mkl.ua.getUserAgent(),...t.headers},l=await(0,Wkl.default)(e,{method:a,headers:o,body:t.body,timeout:t.timeout,retry:!1}).catch(A=>(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${A}`),r(A)));if(l.ok)return l;{let A=await zkl(l);if(K0s.log.http("fetch",`${a} ${e} attempt ${n} failed with ${l.status}`),qkl(l.status))return r(A);throw A}},$kl(t.retry))}var zkl=async e=>{let t=e.statusText,r=e.headers.get(Ykl)||void 0;if(e.headers.get(Qkl)?.includes("application/json"))try{t=(await e.json()).message||t}catch{}return new Hkl.HTTPError({status:e.status,message:t,location:r})},qkl=e=>[Kkl,Ukl].includes(e)||e>=Jkl,$kl=e=>typeof e=="boolean"?{retries:e?1:0}:typeof e=="number"?{retries:e}:{retries:0,...e}});var z0s=H(vLt=>{"use strict";Object.defineProperty(vLt,"__esModule",{value:!0});vLt.Fulcio=void 0;var exl=SLt(),j6r=class{constructor(t){this.options=t}async createSigningCertificate(t){let{baseURL:r,retry:n,timeout:a}=this.options,o=`${r}/api/v2/signingCert`;return(await(0,exl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:a,retry:n})).json()}};vLt.Fulcio=j6r});var q0s=H(BLt=>{"use strict";Object.defineProperty(BLt,"__esModule",{value:!0});BLt.CAClient=void 0;var txl=PGe(),rxl=z0s(),z6r=class{constructor(t){this.fulcio=new rxl.Fulcio({baseURL:t.fulcioBaseURL,retry:t.retry,timeout:t.timeout})}async createSigningCertificate(t,r,n){let a=nxl(t,r,n);try{let o=await this.fulcio.createSigningCertificate(a);return(o.signedCertificateEmbeddedSct?o.signedCertificateEmbeddedSct:o.signedCertificateDetachedSct).chain.certificates}catch(o){(0,txl.internalError)(o,"CA_CREATE_SIGNING_CERTIFICATE_ERROR","error creating signing certificate")}}};BLt.CAClient=z6r;function nxl(e,t,r){return{credentials:{oidcIdentityToken:e},publicKeyRequest:{publicKey:{algorithm:"ECDSA",content:t},proofOfPossession:r.toString("base64")}}}});var eys=H(_Fe=>{"use strict";var ixl=_Fe&&_Fe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_Fe,"__esModule",{value:!0});_Fe.EphemeralSigner=void 0;var $0s=ixl(wt("crypto")),sxl="ec",oxl="P-256",q6r=class{constructor(){this.keypair=$0s.default.generateKeyPairSync(sxl,{namedCurve:oxl})}async sign(t){let r=$0s.default.sign(null,t,this.keypair.privateKey),n=this.keypair.publicKey.export({format:"pem",type:"spki"}).toString("ascii");return{signature:r,key:{$case:"publicKey",publicKey:n}}}};_Fe.EphemeralSigner=q6r});var tys=H(O0e=>{"use strict";Object.defineProperty(O0e,"__esModule",{value:!0});O0e.FulcioSigner=O0e.DEFAULT_FULCIO_URL=void 0;var $6r=PGe(),axl=Zue(),cxl=q0s(),lxl=eys();O0e.DEFAULT_FULCIO_URL="https://fulcio.sigstore.dev";var e7r=class{constructor(t){this.ca=new cxl.CAClient({...t,fulcioBaseURL:t.fulcioBaseURL||O0e.DEFAULT_FULCIO_URL}),this.identityProvider=t.identityProvider,this.keyHolder=t.keyHolder||new lxl.EphemeralSigner}async sign(t){let r=await this.getIdentityToken(),n;try{n=axl.oidc.extractJWTSubject(r)}catch(A){throw new $6r.InternalError({code:"IDENTITY_TOKEN_PARSE_ERROR",message:`invalid identity token: ${r}`,cause:A})}let a=await this.keyHolder.sign(Buffer.from(n));if(a.key.$case!=="publicKey")throw new $6r.InternalError({code:"CA_CREATE_SIGNING_CERTIFICATE_ERROR",message:"unexpected format for signing key"});let o=await this.ca.createSigningCertificate(r,a.key.publicKey,a.signature);return{signature:(await this.keyHolder.sign(t)).signature,key:{$case:"x509Certificate",certificate:o[0]}}}async getIdentityToken(){try{return await this.identityProvider.getToken()}catch(t){throw new $6r.InternalError({code:"IDENTITY_TOKEN_READ_ERROR",message:"error retrieving identity token",cause:t})}}};O0e.FulcioSigner=e7r});var nys=H(yFe=>{"use strict";Object.defineProperty(yFe,"__esModule",{value:!0});yFe.FulcioSigner=yFe.DEFAULT_FULCIO_URL=void 0;var rys=tys();Object.defineProperty(yFe,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return rys.DEFAULT_FULCIO_URL}});Object.defineProperty(yFe,"FulcioSigner",{enumerable:!0,get:function(){return rys.FulcioSigner}})});var oys=H(wLt=>{"use strict";Object.defineProperty(wLt,"__esModule",{value:!0});wLt.Rekor=void 0;var iys=SLt(),t7r=class{constructor(t){this.options=t}async createEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries`,A=await(await(0,iys.fetchWithRetry)(o,{headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).json();return sys(A)}async getEntry(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/log/entries/${t}`,A=await(await(0,iys.fetchWithRetry)(o,{method:"GET",headers:{Accept:"application/json"},timeout:n,retry:a})).json();return sys(A)}};wLt.Rekor=t7r;function sys(e){let t=Object.entries(e);if(t.length!=1)throw new Error("Received multiple entries in Rekor response");let[r,n]=t[0];return{...n,uuid:r}}});var cys=H(TLt=>{"use strict";Object.defineProperty(TLt,"__esModule",{value:!0});TLt.TLogClient=void 0;var ays=PGe(),uxl=BFt(),gxl=oys(),r7r=class{constructor(t){this.fetchOnConflict=t.fetchOnConflict??!1,this.rekor=new gxl.Rekor({baseURL:t.rekorBaseURL,retry:t.retry,timeout:t.timeout})}async createEntry(t){let r;try{r=await this.rekor.createEntry(t)}catch(n){if(Axl(n)&&this.fetchOnConflict){let a=n.location.split("/").pop()||"";try{r=await this.rekor.getEntry(a)}catch(o){(0,ays.internalError)(o,"TLOG_FETCH_ENTRY_ERROR","error fetching tlog entry")}}else(0,ays.internalError)(n,"TLOG_CREATE_ENTRY_ERROR","error creating tlog entry")}return r}};TLt.TLogClient=r7r;function Axl(e){return e instanceof uxl.HTTPError&&e.statusCode===409&&e.location!==void 0}});var lys=H(n7r=>{"use strict";Object.defineProperty(n7r,"__esModule",{value:!0});n7r.toProposedEntry=pxl;var dxl=S7e(),Jue=Zue(),Bze="sha256";function pxl(e,t,r="dsse"){switch(e.$case){case"dsseEnvelope":return r==="intoto"?hxl(e.dsseEnvelope,t):Ixl(e.dsseEnvelope,t);case"messageSignature":return fxl(e.messageSignature,t)}}function fxl(e,t){let r=e.messageDigest.digest.toString("hex"),n=e.signature.toString("base64"),a=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"hashedrekord",spec:{data:{hash:{algorithm:Bze,value:r}},signature:{content:n,publicKey:{content:a}}}}}function Ixl(e,t){let r=JSON.stringify((0,dxl.envelopeToJSON)(e)),n=Jue.encoding.base64Encode(t);return{apiVersion:"0.0.1",kind:"dsse",spec:{proposedContent:{envelope:r,verifiers:[n]}}}}function hxl(e,t){let r=Jue.crypto.digest(Bze,e.payload).toString("hex"),n=mxl(e,t),a=Jue.encoding.base64Encode(e.payload.toString("base64")),o=Jue.encoding.base64Encode(e.signatures[0].sig.toString("base64")),l=e.signatures[0].keyid,A=Jue.encoding.base64Encode(t),f={payloadType:e.payloadType,payload:a,signatures:[{sig:o,publicKey:A}]};return l.length>0&&(f.signatures[0].keyid=l),{apiVersion:"0.0.2",kind:"intoto",spec:{content:{envelope:f,hash:{algorithm:Bze,value:n},payloadHash:{algorithm:Bze,value:r}}}}}function mxl(e,t){let r={payloadType:e.payloadType,payload:e.payload.toString("base64"),signatures:[{sig:e.signatures[0].sig.toString("base64"),publicKey:t}]};return e.signatures[0].keyid.length>0&&(r.signatures[0].keyid=e.signatures[0].keyid),Jue.crypto.digest(Bze,Jue.json.canonicalize(r)).toString("hex")}});var uys=H(M0e=>{"use strict";Object.defineProperty(M0e,"__esModule",{value:!0});M0e.RekorWitness=M0e.DEFAULT_REKOR_URL=void 0;var Cxl=Zue(),_xl=cys(),yxl=lys();M0e.DEFAULT_REKOR_URL="https://rekor.sigstore.dev";var i7r=class{constructor(t){this.entryType=t.entryType,this.tlog=new _xl.TLogClient({...t,rekorBaseURL:t.rekorBaseURL||M0e.DEFAULT_REKOR_URL})}async testify(t,r){let n=(0,yxl.toProposedEntry)(t,r,this.entryType),a=await this.tlog.createEntry(n);return bxl(a)}};M0e.RekorWitness=i7r;function bxl(e){let t=Buffer.from(e.logID,"hex"),r=Cxl.encoding.base64Decode(e.body),n=JSON.parse(r),a=e?.verification?.signedEntryTimestamp?Exl(e.verification.signedEntryTimestamp):void 0,o=e?.verification?.inclusionProof?Sxl(e.verification.inclusionProof):void 0;return{tlogEntries:[{logIndex:e.logIndex.toString(),logId:{keyId:t},integratedTime:e.integratedTime.toString(),kindVersion:{kind:n.kind,version:n.apiVersion},inclusionPromise:a,inclusionProof:o,canonicalizedBody:Buffer.from(e.body,"base64")}]}}function Exl(e){return{signedEntryTimestamp:Buffer.from(e,"base64")}}function Sxl(e){return{logIndex:e.logIndex.toString(),treeSize:e.treeSize.toString(),rootHash:Buffer.from(e.rootHash,"hex"),hashes:e.hashes.map(t=>Buffer.from(t,"hex")),checkpoint:{envelope:e.checkpoint}}}});var gys=H(RLt=>{"use strict";Object.defineProperty(RLt,"__esModule",{value:!0});RLt.TimestampAuthority=void 0;var vxl=SLt(),s7r=class{constructor(t){this.options=t}async createTimestamp(t){let{baseURL:r,timeout:n,retry:a}=this.options,o=`${r}/api/v1/timestamp`;return(await(0,vxl.fetchWithRetry)(o,{headers:{"Content-Type":"application/json"},body:JSON.stringify(t),timeout:n,retry:a})).buffer()}};RLt.TimestampAuthority=s7r});var dys=H(NLt=>{"use strict";Object.defineProperty(NLt,"__esModule",{value:!0});NLt.TSAClient=void 0;var Bxl=PGe(),wxl=gys(),Txl=Zue(),Ays="sha256",o7r=class{constructor(t){this.tsa=new wxl.TimestampAuthority({baseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async createTimestamp(t){let r={artifactHash:Txl.crypto.digest(Ays,t).toString("base64"),hashAlgorithm:Ays};try{return await this.tsa.createTimestamp(r)}catch(n){(0,Bxl.internalError)(n,"TSA_CREATE_TIMESTAMP_ERROR","error creating timestamp")}}};NLt.TSAClient=o7r});var pys=H(DLt=>{"use strict";Object.defineProperty(DLt,"__esModule",{value:!0});DLt.TSAWitness=void 0;var Rxl=dys(),a7r=class{constructor(t){this.tsa=new Rxl.TSAClient({tsaBaseURL:t.tsaBaseURL,retry:t.retry,timeout:t.timeout})}async testify(t){let r=Nxl(t);return{rfc3161Timestamps:[{signedTimestamp:await this.tsa.createTimestamp(r)}]}}};DLt.TSAWitness=a7r;function Nxl(e){switch(e.$case){case"dsseEnvelope":return e.dsseEnvelope.signatures[0].sig;case"messageSignature":return e.messageSignature.signature}}});var Iys=H(Uue=>{"use strict";Object.defineProperty(Uue,"__esModule",{value:!0});Uue.TSAWitness=Uue.RekorWitness=Uue.DEFAULT_REKOR_URL=void 0;var fys=uys();Object.defineProperty(Uue,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return fys.DEFAULT_REKOR_URL}});Object.defineProperty(Uue,"RekorWitness",{enumerable:!0,get:function(){return fys.RekorWitness}});var Dxl=pys();Object.defineProperty(Uue,"TSAWitness",{enumerable:!0,get:function(){return Dxl.TSAWitness}})});var l7r=H(BT=>{"use strict";Object.defineProperty(BT,"__esModule",{value:!0});BT.TSAWitness=BT.RekorWitness=BT.DEFAULT_REKOR_URL=BT.FulcioSigner=BT.DEFAULT_FULCIO_URL=BT.CIContextProvider=BT.InternalError=BT.MessageSignatureBundleBuilder=BT.DSSEBundleBuilder=void 0;var hys=Efs();Object.defineProperty(BT,"DSSEBundleBuilder",{enumerable:!0,get:function(){return hys.DSSEBundleBuilder}});Object.defineProperty(BT,"MessageSignatureBundleBuilder",{enumerable:!0,get:function(){return hys.MessageSignatureBundleBuilder}});var kxl=PGe();Object.defineProperty(BT,"InternalError",{enumerable:!0,get:function(){return kxl.InternalError}});var xxl=U0s();Object.defineProperty(BT,"CIContextProvider",{enumerable:!0,get:function(){return xxl.CIContextProvider}});var mys=nys();Object.defineProperty(BT,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return mys.DEFAULT_FULCIO_URL}});Object.defineProperty(BT,"FulcioSigner",{enumerable:!0,get:function(){return mys.FulcioSigner}});var c7r=Iys();Object.defineProperty(BT,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return c7r.DEFAULT_REKOR_URL}});Object.defineProperty(BT,"RekorWitness",{enumerable:!0,get:function(){return c7r.RekorWitness}});Object.defineProperty(BT,"TSAWitness",{enumerable:!0,get:function(){return c7r.TSAWitness}})});var _ys=H(wze=>{"use strict";var Cys=wze&&wze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wze,"__esModule",{value:!0});wze.appDataPath=Fxl;var Gxl=Cys(wt("os")),bFe=Cys(wt("path"));function Fxl(e){let t=Gxl.default.homedir();switch(process.platform){case"darwin":{let r=bFe.default.join(t,"Library","Application Support");return bFe.default.join(r,e)}case"win32":{let r=process.env.LOCALAPPDATA||bFe.default.join(t,"AppData","Local");return bFe.default.join(r,e,"Data")}default:{let r=process.env.XDG_DATA_HOME||bFe.default.join(t,".local","share");return bFe.default.join(r,e)}}}});var O6=H(tP=>{"use strict";Object.defineProperty(tP,"__esModule",{value:!0});tP.UnsupportedAlgorithmError=tP.CryptoError=tP.LengthOrHashMismatchError=tP.UnsignedMetadataError=tP.RepositoryError=tP.ValueError=void 0;var u7r=class extends Error{};tP.ValueError=u7r;var Tze=class extends Error{};tP.RepositoryError=Tze;var g7r=class extends Tze{};tP.UnsignedMetadataError=g7r;var A7r=class extends Tze{};tP.LengthOrHashMismatchError=A7r;var kLt=class extends Error{};tP.CryptoError=kLt;var d7r=class extends kLt{};tP.UnsupportedAlgorithmError=d7r});var bys=H(Kue=>{"use strict";Object.defineProperty(Kue,"__esModule",{value:!0});Kue.isDefined=Zxl;Kue.isObject=yys;Kue.isStringArray=Lxl;Kue.isObjectArray=Vxl;Kue.isStringRecord=Pxl;Kue.isObjectRecord=Wxl;function Zxl(e){return e!==void 0}function yys(e){return typeof e=="object"&&e!==null}function Lxl(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function Vxl(e){return Array.isArray(e)&&e.every(yys)}function Pxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="string")}function Wxl(e){return typeof e=="object"&&e!==null&&Object.keys(e).every(t=>typeof t=="string")&&Object.values(e).every(t=>typeof t=="object"&&t!==null)}});var f7r=H((Gog,vys)=>{var Eys=",",Oxl=":",Mxl="[",Hxl="]",Yxl="{",Qxl="}";function p7r(e){let t=[];if(typeof e=="string")t.push(Sys(e));else if(typeof e=="boolean")t.push(JSON.stringify(e));else if(Number.isInteger(e))t.push(JSON.stringify(e));else if(e===null)t.push(JSON.stringify(e));else if(Array.isArray(e)){t.push(Mxl);let r=!0;e.forEach(n=>{r||t.push(Eys),r=!1,t.push(p7r(n))}),t.push(Hxl)}else if(typeof e=="object"){t.push(Yxl);let r=!0;Object.keys(e).sort().forEach(n=>{r||t.push(Eys),r=!1,t.push(Sys(n)),t.push(Oxl),t.push(p7r(e[n]))}),t.push(Qxl)}else throw new TypeError("cannot encode "+e.toString());return t.join("")}function Sys(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"'}vys.exports={canonicalize:p7r}});var Bys=H(EFe=>{"use strict";var Xxl=EFe&&EFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(EFe,"__esModule",{value:!0});EFe.verifySignature=void 0;var Jxl=f7r(),Uxl=Xxl(wt("crypto")),Kxl=(e,t,r)=>{let n=Buffer.from((0,Jxl.canonicalize)(e));return Uxl.default.verify(void 0,n,t,Buffer.from(r,"hex"))};EFe.verifySignature=Kxl});var iJ=H(KH=>{"use strict";var jxl=KH&&KH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),zxl=KH&&KH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),wys=KH&&KH.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&jxl(t,e,r);return zxl(t,e),t};Object.defineProperty(KH,"__esModule",{value:!0});KH.crypto=KH.guard=void 0;KH.guard=wys(bys());KH.crypto=wys(Bys())});var H0e=H(Are=>{"use strict";var qxl=Are&&Are.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Are,"__esModule",{value:!0});Are.Signed=Are.MetadataKind=void 0;Are.isMetadataKind=eGl;var $xl=qxl(wt("util")),Rze=O6(),I7r=iJ(),Tys=["1","0","31"],h7r;(function(e){e.Root="root",e.Timestamp="timestamp",e.Snapshot="snapshot",e.Targets="targets"})(h7r||(Are.MetadataKind=h7r={}));function eGl(e){return typeof e=="string"&&Object.values(h7r).includes(e)}var m7r=class e{constructor(t){this.specVersion=t.specVersion||Tys.join(".");let r=this.specVersion.split(".");if(!(r.length===2||r.length===3)||!r.every(n=>tGl(n)))throw new Rze.ValueError("Failed to parse specVersion");if(r[0]!=Tys[0])throw new Rze.ValueError("Unsupported specVersion");this.expires=t.expires,this.version=t.version,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.specVersion===t.specVersion&&this.expires===t.expires&&this.version===t.version&&$xl.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}isExpired(t){return t||(t=new Date),t>=new Date(this.expires)}static commonFieldsFromJSON(t){let{spec_version:r,expires:n,version:a,...o}=t;if(I7r.guard.isDefined(r)){if(typeof r!="string")throw new TypeError("spec_version must be a string")}else throw new Rze.ValueError("spec_version is not defined");if(I7r.guard.isDefined(n)){if(typeof n!="string")throw new TypeError("expires must be a string")}else throw new Rze.ValueError("expires is not defined");if(I7r.guard.isDefined(a)){if(typeof a!="number")throw new TypeError("version must be a number")}else throw new Rze.ValueError("version is not defined");return{specVersion:r,expires:n,version:a,unrecognizedFields:o}}};Are.Signed=m7r;function tGl(e){return!isNaN(Number(e))}});var Nze=H(zue=>{"use strict";var Rys=zue&&zue.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zue,"__esModule",{value:!0});zue.TargetFile=zue.MetaFile=void 0;var Nys=Rys(wt("crypto")),GLt=Rys(wt("util")),jue=O6(),xLt=iJ(),C7r=class e{constructor(t){if(t.version<=0)throw new jue.ValueError("Metafile version must be at least 1");t.length!==void 0&&Dys(t.length),this.version=t.version,this.length=t.length,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}equals(t){return t instanceof e?this.version===t.version&&this.length===t.length&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}verify(t){if(this.length!==void 0&&t.length!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${t.length}`);this.hashes&&Object.entries(this.hashes).forEach(([r,n])=>{let a;try{a=Nys.default.createHash(r)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${r} not supported`)}let o=a.update(t).digest("hex");if(o!==n)throw new jue.LengthOrHashMismatchError(`Expected hash ${n} but got ${o}`)})}toJSON(){let t={version:this.version,...this.unrecognizedFields};return this.length!==void 0&&(t.length=this.length),this.hashes&&(t.hashes=this.hashes),t}static fromJSON(t){let{version:r,length:n,hashes:a,...o}=t;if(typeof r!="number")throw new TypeError("version must be a number");if(xLt.guard.isDefined(n)&&typeof n!="number")throw new TypeError("length must be a number");if(xLt.guard.isDefined(a)&&!xLt.guard.isStringRecord(a))throw new TypeError("hashes must be string keys and values");return new e({version:r,length:n,hashes:a,unrecognizedFields:o})}};zue.MetaFile=C7r;var _7r=class e{constructor(t){Dys(t.length),this.length=t.length,this.path=t.path,this.hashes=t.hashes,this.unrecognizedFields=t.unrecognizedFields||{}}get custom(){let t=this.unrecognizedFields.custom;return!t||Array.isArray(t)||typeof t!="object"?{}:t}equals(t){return t instanceof e?this.length===t.length&&this.path===t.path&&GLt.default.isDeepStrictEqual(this.hashes,t.hashes)&&GLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}async verify(t){let r=0,n=Object.keys(this.hashes).reduce((a,o)=>{try{a[o]=Nys.default.createHash(o)}catch{throw new jue.LengthOrHashMismatchError(`Hash algorithm ${o} not supported`)}return a},{});for await(let a of t)r+=a.length,Object.values(n).forEach(o=>{o.update(a)});if(r!==this.length)throw new jue.LengthOrHashMismatchError(`Expected length ${this.length} but got ${r}`);Object.entries(n).forEach(([a,o])=>{let l=this.hashes[a],A=o.digest("hex");if(A!==l)throw new jue.LengthOrHashMismatchError(`Expected hash ${l} but got ${A}`)})}toJSON(){return{length:this.length,hashes:this.hashes,...this.unrecognizedFields}}static fromJSON(t,r){let{length:n,hashes:a,...o}=r;if(typeof n!="number")throw new TypeError("length must be a number");if(!xLt.guard.isStringRecord(a))throw new TypeError("hashes must have string keys and values");return new e({length:n,path:t,hashes:a,unrecognizedFields:o})}};zue.TargetFile=_7r;function Dys(e){if(e<0)throw new jue.ValueError("Length must be at least 0")}});var kys=H(y7r=>{"use strict";Object.defineProperty(y7r,"__esModule",{value:!0});y7r.encodeOIDString=nGl;var rGl=6;function nGl(e){let t=e.split("."),r=parseInt(t[0],10)*40+parseInt(t[1],10),n=[];t.slice(2).forEach(o=>{let l=iGl(parseInt(o,10));n.push(...l)});let a=Buffer.from([r,...n]);return Buffer.from([rGl,a.length,...a])}function iGl(e){let t=[],r=0;for(;e>0;)t.unshift(e&127|r),e>>=7,r=128;return t}});var Zys=H(kze=>{"use strict";var sGl=kze&&kze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kze,"__esModule",{value:!0});kze.getPublicKey=lGl;var SFe=sGl(wt("crypto")),Dze=O6(),b7r=kys(),FLt=48,xys=3,Gys=0,oGl="1.3.101.112",aGl="1.2.840.10045.2.1",cGl="1.2.840.10045.3.1.7",E7r="-----BEGIN PUBLIC KEY-----";function lGl(e){switch(e.keyType){case"rsa":return uGl(e);case"ed25519":return gGl(e);case"ecdsa":case"ecdsa-sha2-nistp256":case"ecdsa-sha2-nistp384":return AGl(e);default:throw new Dze.UnsupportedAlgorithmError(`Unsupported key type: ${e.keyType}`)}}function uGl(e){if(!e.keyVal.startsWith(E7r))throw new Dze.CryptoError("Invalid key format");let t=SFe.default.createPublicKey(e.keyVal);switch(e.scheme){case"rsassa-pss-sha256":return{key:t,padding:SFe.default.constants.RSA_PKCS1_PSS_PADDING};default:throw new Dze.UnsupportedAlgorithmError(`Unsupported RSA scheme: ${e.scheme}`)}}function gGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:dGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}function AGl(e){let t;if(e.keyVal.startsWith(E7r))t=SFe.default.createPublicKey(e.keyVal);else{if(!Fys(e.keyVal))throw new Dze.CryptoError("Invalid key format");t=SFe.default.createPublicKey({key:pGl.hexToDER(e.keyVal),format:"der",type:"spki"})}return{key:t}}var dGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=(0,b7r.encodeOIDString)(oGl),n=Buffer.concat([Buffer.concat([Buffer.from([FLt]),Buffer.from([r.length]),r]),Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t])]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n])}},pGl={hexToDER:e=>{let t=Buffer.from(e,"hex"),r=Buffer.concat([Buffer.from([xys]),Buffer.from([t.length+1]),Buffer.from([Gys]),t]),n=Buffer.concat([(0,b7r.encodeOIDString)(aGl),(0,b7r.encodeOIDString)(cGl)]),a=Buffer.concat([Buffer.from([FLt]),Buffer.from([n.length]),n]);return Buffer.concat([Buffer.from([FLt]),Buffer.from([a.length+r.length]),a,r])}},Fys=e=>/^[0-9a-fA-F]+$/.test(e)});var ZLt=H(vFe=>{"use strict";var fGl=vFe&&vFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(vFe,"__esModule",{value:!0});vFe.Key=void 0;var Lys=fGl(wt("util")),xze=O6(),Vys=iJ(),IGl=Zys(),S7r=class e{constructor(t){let{keyID:r,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l}=t;this.keyID=r,this.keyType=n,this.scheme=a,this.keyVal=o,this.unrecognizedFields=l||{}}verifySignature(t){let r=t.signatures[this.keyID];if(!r)throw new xze.UnsignedMetadataError("no signature for key found in metadata");if(!this.keyVal.public)throw new xze.UnsignedMetadataError("no public key found");let n=(0,IGl.getPublicKey)({keyType:this.keyType,scheme:this.scheme,keyVal:this.keyVal.public}),a=t.signed.toJSON();try{if(!Vys.crypto.verifySignature(a,n,r.sig))throw new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}catch(o){throw o instanceof xze.UnsignedMetadataError?o:new xze.UnsignedMetadataError(`failed to verify ${this.keyID} signature`)}}equals(t){return t instanceof e?this.keyID===t.keyID&&this.keyType===t.keyType&&this.scheme===t.scheme&&Lys.default.isDeepStrictEqual(this.keyVal,t.keyVal)&&Lys.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keytype:this.keyType,scheme:this.scheme,keyval:this.keyVal,...this.unrecognizedFields}}static fromJSON(t,r){let{keytype:n,scheme:a,keyval:o,...l}=r;if(typeof n!="string")throw new TypeError("keytype must be a string");if(typeof a!="string")throw new TypeError("scheme must be a string");if(!Vys.guard.isStringRecord(o))throw new TypeError("keyval must be a string record");return new e({keyID:t,keyType:n,scheme:a,keyVal:o,unrecognizedFields:l})}};vFe.Key=S7r});var Xys=H((Mog,Qys)=>{var Pys=wjr();Qys.exports=CGl;var Wys="\0SLASH"+Math.random()+"\0",Oys="\0OPEN"+Math.random()+"\0",B7r="\0CLOSE"+Math.random()+"\0",Mys="\0COMMA"+Math.random()+"\0",Hys="\0PERIOD"+Math.random()+"\0";function v7r(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function hGl(e){return e.split("\\\\").join(Wys).split("\\{").join(Oys).split("\\}").join(B7r).split("\\,").join(Mys).split("\\.").join(Hys)}function mGl(e){return e.split(Wys).join("\\").split(Oys).join("{").split(B7r).join("}").split(Mys).join(",").split(Hys).join(".")}function Yys(e){if(!e)return[""];var t=[],r=Pys("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,l=n.split(",");l[l.length-1]+="{"+a+"}";var A=Yys(o);return o.length&&(l[l.length-1]+=A.shift(),l.push.apply(l,A)),t.push.apply(t,l),t}function CGl(e,t){if(!e)return[];t=t||{};var r=t.max==null?1/0:t.max;return e.substr(0,2)==="{}"&&(e="\\{\\}"+e.substr(2)),Gze(hGl(e),r,!0).map(mGl)}function _Gl(e){return"{"+e+"}"}function yGl(e){return/^-?0\d/.test(e)}function bGl(e,t){return e<=t}function EGl(e,t){return e>=t}function Gze(e,t,r){var n=[],a=Pys("{","}",e);if(!a)return[e];var o=a.pre,l=a.post.length?Gze(a.post,t,!1):[""];if(/\$$/.test(a.pre))for(var A=0;A=0;if(!b&&!E)return a.post.match(/,(?!,).*\}/)?(e=a.pre+"{"+a.body+B7r+a.post,Gze(e,t,!0)):[e];var N;if(b)N=a.body.split(/\.\./);else if(N=Yys(a.body),N.length===1&&(N=Gze(N[0],t,!1).map(_Gl),N.length===1))return l.map(function(k){return a.pre+N[0]+k});var B;if(b){var F=v7r(N[0]),Q=v7r(N[1]),X=Math.max(N[0].length,N[1].length),ae=N.length==3?Math.max(Math.abs(v7r(N[2])),1):1,ne=bGl,ce=Q0){var Se=new Array(be+1).join("0");ue<0?de="-"+Se+de.slice(1):de=Se+de}}B.push(de)}}else{B=[];for(var De=0;De{"use strict";Object.defineProperty(LLt,"__esModule",{value:!0});LLt.assertValidPattern=void 0;var SGl=1024*64,vGl=e=>{if(typeof e!="string")throw new TypeError("invalid pattern");if(e.length>SGl)throw new TypeError("pattern is too long")};LLt.assertValidPattern=vGl});var Kys=H(VLt=>{"use strict";Object.defineProperty(VLt,"__esModule",{value:!0});VLt.parseClass=void 0;var BGl={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Fze=e=>e.replace(/[[\]\\-]/g,"\\$&"),wGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Uys=e=>e.join(""),TGl=(e,t)=>{let r=t;if(e.charAt(r)!=="[")throw new Error("not in a brace expression");let n=[],a=[],o=r+1,l=!1,A=!1,f=!1,I=!1,C=r,b="";e:for(;ob?n.push(Fze(b)+"-"+Fze(F)):F===b&&n.push(Fze(F)),b="",o++;continue}if(e.startsWith("-]",o+1)){n.push(Fze(F+"-")),o+=2;continue}if(e.startsWith("-",o+1)){b=F,o+=2;continue}n.push(Fze(F)),o++}if(C{"use strict";Object.defineProperty(PLt,"__esModule",{value:!0});PLt.unescape=void 0;var RGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/\[([^\/\\])\]/g,"$1"):e.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1");PLt.unescape=RGl});var R7r=H(YLt=>{"use strict";var rP;Object.defineProperty(YLt,"__esModule",{value:!0});YLt.AST=void 0;var NGl=Kys(),OLt=WLt(),DGl=new Set(["!","?","+","*","@"]),w7r=e=>DGl.has(e),jys=e=>w7r(e.type),kGl=new Map([["!",["@"]],["?",["?","@"]],["@",["@"]],["*",["*","+","?","@"]],["+",["+","@"]]]),xGl=new Map([["!",["?"]],["@",["?"]],["+",["?","*"]]]),GGl=new Map([["!",["?","@"]],["?",["?","@"]],["@",["?","@"]],["*",["*","+","?","@"]],["+",["+","@","?","*"]]]),zys=new Map([["!",new Map([["!","@"]])],["?",new Map([["*","*"],["+","*"]])],["@",new Map([["!","!"],["?","?"],["@","@"],["*","*"],["+","+"]])],["+",new Map([["?","*"],["*","*"]])]]),FGl="(?!(?:^|/)\\.\\.?(?:$|/))",MLt="(?!\\.)",ZGl=new Set(["[","."]),LGl=new Set(["..","."]),VGl=new Set("().*{}+?[]^$\\!"),PGl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),T7r="[^/]",qys=T7r+"*?",$ys=T7r+"+?",HLt=class{type;#e;#t;#n=!1;#r=[];#i;#s;#o;#g=!1;#l;#u;#a=!1;constructor(t,r,n={}){this.type=t,t&&(this.#t=!0),this.#i=r,this.#e=this.#i?this.#i.#e:this,this.#l=this.#e===this?n:this.#e.#l,this.#o=this.#e===this?[]:this.#e.#o,t==="!"&&!this.#e.#g&&this.#o.push(this),this.#s=this.#i?this.#i.#r.length:0}get hasMagic(){if(this.#t!==void 0)return this.#t;for(let t of this.#r)if(typeof t!="string"&&(t.type||t.hasMagic))return this.#t=!0;return this.#t}toString(){return this.#u!==void 0?this.#u:this.type?this.#u=this.type+"("+this.#r.map(t=>String(t)).join("|")+")":this.#u=this.#r.map(t=>String(t)).join("")}#m(){if(this!==this.#e)throw new Error("should only call on root");if(this.#g)return this;this.toString(),this.#g=!0;let t;for(;t=this.#o.pop();){if(t.type!=="!")continue;let r=t,n=r.#i;for(;n;){for(let a=r.#s+1;!n.type&&atypeof r=="string"?r:r.toJSON()):[this.type,...this.#r.map(r=>r.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#e||this.#e.#g&&this.#i?.type==="!")&&t.push({}),t}isStart(){if(this.#e===this)return!0;if(!this.#i?.isStart())return!1;if(this.#s===0)return!0;let t=this.#i;for(let r=0;r{let[B,F,Q,X]=typeof N=="string"?rP.#B(N,this.#t,f):N.toRegExpSource(t);return this.#t=this.#t||Q,this.#n=this.#n||X,B}).join(""),C="";if(this.isStart()&&typeof this.#r[0]=="string"&&!(this.#r.length===1&&LGl.has(this.#r[0]))){let B=ZGl,F=r&&B.has(I.charAt(0))||I.startsWith("\\.")&&B.has(I.charAt(2))||I.startsWith("\\.\\.")&&B.has(I.charAt(4)),Q=!r&&!t&&B.has(I.charAt(0));C=F?FGl:Q?MLt:""}let b="";return this.isEnd()&&this.#e.#g&&this.#i?.type==="!"&&(b="(?:$|\\/)"),[C+I+b,(0,OLt.unescape)(I),this.#t=!!this.#t,this.#n]}let n=this.type==="*"||this.type==="+",a=this.type==="!"?"(?:(?!(?:":"(?:",o=this.#p(r);if(this.isStart()&&this.isEnd()&&!o&&this.type!=="!"){let f=this.toString(),I=this;return I.#r=[f],I.type=null,I.#t=void 0,[f,(0,OLt.unescape)(this.toString()),!1,!1]}let l=!n||t||r||!MLt?"":this.#p(!0);l===o&&(l=""),l&&(o=`(?:${o})(?:${l})*?`);let A="";if(this.type==="!"&&this.#a)A=(this.isStart()&&!r?MLt:"")+$ys;else{let f=this.type==="!"?"))"+(this.isStart()&&!r&&!t?MLt:"")+qys+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&l?")":this.type==="*"&&l?")?":`)${this.type}`;A=a+o+f}return[A,(0,OLt.unescape)(o),this.#t=!!this.#t,this.#n]}#p(t){return this.#r.map(r=>{if(typeof r=="string")throw new Error("string type in extglob ast??");let[n,a,o,l]=r.toRegExpSource(t);return this.#n=this.#n||l,n}).filter(r=>!(this.isStart()&&this.isEnd())||!!r).join("|")}static#B(t,r,n=!1){let a=!1,o="",l=!1,A=!1;for(let f=0;f{"use strict";Object.defineProperty(QLt,"__esModule",{value:!0});QLt.escape=void 0;var WGl=(e,{windowsPathsNoEscape:t=!1}={})=>t?e.replace(/[?*()[\]]/g,"[$&]"):e.replace(/[?*()[\]\\]/g,"\\$&");QLt.escape=WGl});var obs=H(xA=>{"use strict";var OGl=xA&&xA.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xA,"__esModule",{value:!0});xA.unescape=xA.escape=xA.AST=xA.Minimatch=xA.match=xA.makeRe=xA.braceExpand=xA.defaults=xA.filter=xA.GLOBSTAR=xA.sep=xA.minimatch=void 0;var MGl=OGl(Xys()),XLt=Jys(),rbs=R7r(),HGl=N7r(),YGl=WLt(),QGl=(e,t,r={})=>((0,XLt.assertValidPattern)(t),!r.nocomment&&t.charAt(0)==="#"?!1:new Y0e(t,r).match(e));xA.minimatch=QGl;var XGl=/^\*+([^+@!?\*\[\(]*)$/,JGl=e=>t=>!t.startsWith(".")&&t.endsWith(e),UGl=e=>t=>t.endsWith(e),KGl=e=>(e=e.toLowerCase(),t=>!t.startsWith(".")&&t.toLowerCase().endsWith(e)),jGl=e=>(e=e.toLowerCase(),t=>t.toLowerCase().endsWith(e)),zGl=/^\*+\.\*+$/,qGl=e=>!e.startsWith(".")&&e.includes("."),$Gl=e=>e!=="."&&e!==".."&&e.includes("."),eFl=/^\.\*+$/,tFl=e=>e!=="."&&e!==".."&&e.startsWith("."),rFl=/^\*+$/,nFl=e=>e.length!==0&&!e.startsWith("."),iFl=e=>e.length!==0&&e!=="."&&e!=="..",sFl=/^\?+([^+@!?\*\[\(]*)?$/,oFl=([e,t=""])=>{let r=nbs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},aFl=([e,t=""])=>{let r=ibs([e]);return t?(t=t.toLowerCase(),n=>r(n)&&n.toLowerCase().endsWith(t)):r},cFl=([e,t=""])=>{let r=ibs([e]);return t?n=>r(n)&&n.endsWith(t):r},lFl=([e,t=""])=>{let r=nbs([e]);return t?n=>r(n)&&n.endsWith(t):r},nbs=([e])=>{let t=e.length;return r=>r.length===t&&!r.startsWith(".")},ibs=([e])=>{let t=e.length;return r=>r.length===t&&r!=="."&&r!==".."},sbs=typeof process=="object"&&process?typeof process.env=="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",ebs={win32:{sep:"\\"},posix:{sep:"/"}};xA.sep=sbs==="win32"?ebs.win32.sep:ebs.posix.sep;xA.minimatch.sep=xA.sep;xA.GLOBSTAR=Symbol("globstar **");xA.minimatch.GLOBSTAR=xA.GLOBSTAR;var uFl="[^/]",gFl=uFl+"*?",AFl="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",dFl="(?:(?!(?:\\/|^)\\.).)*?",pFl=(e,t={})=>r=>(0,xA.minimatch)(r,e,t);xA.filter=pFl;xA.minimatch.filter=xA.filter;var jH=(e,t={})=>Object.assign({},e,t),fFl=e=>{if(!e||typeof e!="object"||!Object.keys(e).length)return xA.minimatch;let t=xA.minimatch;return Object.assign((n,a,o={})=>t(n,a,jH(e,o)),{Minimatch:class extends t.Minimatch{constructor(a,o={}){super(a,jH(e,o))}static defaults(a){return t.defaults(jH(e,a)).Minimatch}},AST:class extends t.AST{constructor(a,o,l={}){super(a,o,jH(e,l))}static fromGlob(a,o={}){return t.AST.fromGlob(a,jH(e,o))}},unescape:(n,a={})=>t.unescape(n,jH(e,a)),escape:(n,a={})=>t.escape(n,jH(e,a)),filter:(n,a={})=>t.filter(n,jH(e,a)),defaults:n=>t.defaults(jH(e,n)),makeRe:(n,a={})=>t.makeRe(n,jH(e,a)),braceExpand:(n,a={})=>t.braceExpand(n,jH(e,a)),match:(n,a,o={})=>t.match(n,a,jH(e,o)),sep:t.sep,GLOBSTAR:xA.GLOBSTAR})};xA.defaults=fFl;xA.minimatch.defaults=xA.defaults;var IFl=(e,t={})=>((0,XLt.assertValidPattern)(e),t.nobrace||!/\{(?:(?!\{).)*\}/.test(e)?[e]:(0,MGl.default)(e));xA.braceExpand=IFl;xA.minimatch.braceExpand=xA.braceExpand;var hFl=(e,t={})=>new Y0e(e,t).makeRe();xA.makeRe=hFl;xA.minimatch.makeRe=xA.makeRe;var mFl=(e,t,r={})=>{let n=new Y0e(t,r);return e=e.filter(a=>n.match(a)),n.options.nonull&&!e.length&&e.push(t),e};xA.match=mFl;xA.minimatch.match=xA.match;var tbs=/[?*]|[+@!]\(.*?\)|\[|\]/,CFl=e=>e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Y0e=class{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;maxGlobstarRecursion;regexp;constructor(t,r={}){(0,XLt.assertValidPattern)(t),r=r||{},this.options=r,this.maxGlobstarRecursion=r.maxGlobstarRecursion??200,this.pattern=t,this.platform=r.platform||sbs,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!r.windowsPathsNoEscape||r.allowWindowsEscape===!1,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!r.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!r.nonegate,this.comment=!1,this.empty=!1,this.partial=!!r.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=r.windowsNoMagicRoot!==void 0?r.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let t of this.set)for(let r of t)if(typeof r!="string")return!0;return!1}debug(...t){}make(){let t=this.pattern,r=this.options;if(!r.nocomment&&t.charAt(0)==="#"){this.comment=!0;return}if(!t){this.empty=!0;return}this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],r.debug&&(this.debug=(...o)=>console.error(...o)),this.debug(this.pattern,this.globSet);let n=this.globSet.map(o=>this.slashSplit(o));this.globParts=this.preprocess(n),this.debug(this.pattern,this.globParts);let a=this.globParts.map((o,l,A)=>{if(this.isWindows&&this.windowsNoMagicRoot){let f=o[0]===""&&o[1]===""&&(o[2]==="?"||!tbs.test(o[2]))&&!tbs.test(o[3]),I=/^[a-z]:/i.test(o[0]);if(f)return[...o.slice(0,4),...o.slice(4).map(C=>this.parse(C))];if(I)return[o[0],...o.slice(1).map(C=>this.parse(C))]}return o.map(f=>this.parse(f))});if(this.debug(this.pattern,a),this.set=a.filter(o=>o.indexOf(!1)===-1),this.isWindows)for(let o=0;o=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):r>=1?t=this.levelOneOptimize(t):t=this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(r=>{let n=-1;for(;(n=r.indexOf("**",n+1))!==-1;){let a=n;for(;r[a+1]==="**";)a++;a!==n&&r.splice(n,a-n)}return r})}levelOneOptimize(t){return t.map(r=>(r=r.reduce((n,a)=>{let o=n[n.length-1];return a==="**"&&o==="**"?n:a===".."&&o&&o!==".."&&o!=="."&&o!=="**"?(n.pop(),n):(n.push(a),n)},[]),r.length===0?[""]:r))}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let r=!1;do{if(r=!1,!this.preserveMultipleSlashes){for(let a=1;aa&&n.splice(a+1,l-a);let A=n[a+1],f=n[a+2],I=n[a+3];if(A!==".."||!f||f==="."||f===".."||!I||I==="."||I==="..")continue;r=!0,n.splice(a,1);let C=n.slice(0);C[a]="**",t.push(C),a--}if(!this.preserveMultipleSlashes){for(let l=1;lr.length)}partsMatch(t,r,n=!1){let a=0,o=0,l=[],A="";for(;a=2&&(t=this.levelTwoFileOptimize(t)),r.includes(xA.GLOBSTAR)?this.#e(t,r,n,a,o):this.#n(t,r,n,a,o)}#e(t,r,n,a,o){let l=r.indexOf(xA.GLOBSTAR,o),A=r.lastIndexOf(xA.GLOBSTAR),[f,I,C]=n?[r.slice(o,l),r.slice(l+1),[]]:[r.slice(o,l),r.slice(l+1,A),r.slice(A+1)];if(f.length){let ae=t.slice(a,a+f.length);if(!this.#n(ae,f,n,0,0))return!1;a+=f.length}let b=0;if(C.length){if(C.length+a>t.length)return!1;let ae=t.length-C.length;if(this.#n(t,C,n,ae,0))b=C.length;else{if(t[t.length-1]!==""||a+C.length===t.length||(ae--,!this.#n(t,C,n,ae,0)))return!1;b=C.length+1}}if(!I.length){let ae=!!b;for(let ne=a;ne{let I=f.map(C=>{if(C instanceof RegExp)for(let b of C.flags.split(""))a.add(b);return typeof C=="string"?CFl(C):C===xA.GLOBSTAR?xA.GLOBSTAR:C._src});return I.forEach((C,b)=>{let E=I[b+1],N=I[b-1];C!==xA.GLOBSTAR||N===xA.GLOBSTAR||(N===void 0?E!==void 0&&E!==xA.GLOBSTAR?I[b+1]="(?:\\/|"+n+"\\/)?"+E:I[b]=n:E===void 0?I[b-1]=N+"(?:\\/|"+n+")?":E!==xA.GLOBSTAR&&(I[b-1]=N+"(?:\\/|\\/"+n+"\\/)"+E,I[b+1]=xA.GLOBSTAR))}),I.filter(C=>C!==xA.GLOBSTAR).join("/")}).join("|"),[l,A]=t.length>1?["(?:",")"]:["",""];o="^"+l+o+A+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...a].join(""))}catch{this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,r=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return t==="";if(t==="/"&&r)return!0;let n=this.options;this.isWindows&&(t=t.split("\\").join("/"));let a=this.slashSplit(t);this.debug(this.pattern,"split",a);let o=this.set;this.debug(this.pattern,"set",o);let l=a[a.length-1];if(!l)for(let A=a.length-2;!l&&A>=0;A--)l=a[A];for(let A=0;A{"use strict";var abs=zH&&zH.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zH,"__esModule",{value:!0});zH.SuccinctRoles=zH.DelegatedRole=zH.Role=zH.TOP_LEVEL_ROLE_NAMES=void 0;var cbs=abs(wt("crypto")),EFl=obs(),JLt=abs(wt("util")),ULt=O6(),Q0e=iJ();zH.TOP_LEVEL_ROLE_NAMES=["root","targets","snapshot","timestamp"];var Zze=class e{constructor(t){let{keyIDs:r,threshold:n,unrecognizedFields:a}=t;if(SFl(r))throw new ULt.ValueError("duplicate key IDs found");if(n<1)throw new ULt.ValueError("threshold must be at least 1");this.keyIDs=r,this.threshold=n,this.unrecognizedFields=a||{}}equals(t){return t instanceof e?this.threshold===t.threshold&&JLt.default.isDeepStrictEqual(this.keyIDs,t.keyIDs)&&JLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields):!1}toJSON(){return{keyids:this.keyIDs,threshold:this.threshold,...this.unrecognizedFields}}static fromJSON(t){let{keyids:r,threshold:n,...a}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array");if(typeof n!="number")throw new TypeError("threshold must be a number");return new e({keyIDs:r,threshold:n,unrecognizedFields:a})}};zH.Role=Zze;function SFl(e){return new Set(e).size!==e.length}var D7r=class e extends Zze{constructor(t){super(t);let{name:r,terminating:n,paths:a,pathHashPrefixes:o}=t;if(this.name=r,this.terminating=n,t.paths&&t.pathHashPrefixes)throw new ULt.ValueError("paths and pathHashPrefixes are mutually exclusive");this.paths=a,this.pathHashPrefixes=o}equals(t){return t instanceof e?super.equals(t)&&this.name===t.name&&this.terminating===t.terminating&&JLt.default.isDeepStrictEqual(this.paths,t.paths)&&JLt.default.isDeepStrictEqual(this.pathHashPrefixes,t.pathHashPrefixes):!1}isDelegatedPath(t){if(this.paths)return this.paths.some(r=>BFl(t,r));if(this.pathHashPrefixes){let n=cbs.default.createHash("sha256").update(t).digest("hex");return this.pathHashPrefixes.some(a=>n.startsWith(a))}return!1}toJSON(){let t={...super.toJSON(),name:this.name,terminating:this.terminating};return this.paths&&(t.paths=this.paths),this.pathHashPrefixes&&(t.path_hash_prefixes=this.pathHashPrefixes),t}static fromJSON(t){let{keyids:r,threshold:n,name:a,terminating:o,paths:l,path_hash_prefixes:A,...f}=t;if(!Q0e.guard.isStringArray(r))throw new TypeError("keyids must be an array of strings");if(typeof n!="number")throw new TypeError("threshold must be a number");if(typeof a!="string")throw new TypeError("name must be a string");if(typeof o!="boolean")throw new TypeError("terminating must be a boolean");if(Q0e.guard.isDefined(l)&&!Q0e.guard.isStringArray(l))throw new TypeError("paths must be an array of strings");if(Q0e.guard.isDefined(A)&&!Q0e.guard.isStringArray(A))throw new TypeError("path_hash_prefixes must be an array of strings");return new e({keyIDs:r,threshold:n,name:a,terminating:o,paths:l,pathHashPrefixes:A,unrecognizedFields:f})}};zH.DelegatedRole=D7r;var vFl=(e,t)=>e.map((r,n)=>[r,t[n]]);function BFl(e,t){let r=e.split("/"),n=t.split("/");return n.length!=r.length?!1:vFl(r,n).every(([a,o])=>(0,EFl.minimatch)(a,o))}var k7r=class e extends Zze{constructor(t){super(t);let{bitLength:r,namePrefix:n}=t;if(r<=0||r>32)throw new ULt.ValueError("bitLength must be between 1 and 32");this.bitLength=r,this.namePrefix=n,this.numberOfBins=Math.pow(2,r),this.suffixLen=(this.numberOfBins-1).toString(16).length}equals(t){return t instanceof e?super.equals(t)&&this.bitLength===t.bitLength&&this.namePrefix===t.namePrefix:!1}getRoleForTarget(t){let a=cbs.default.createHash("sha256").update(t).digest().subarray(0,4),o=32-this.bitLength,A=(a.readUInt32BE()>>>o).toString(16).padStart(this.suffixLen,"0");return`${this.namePrefix}-${A}`}*getRoles(){for(let t=0;t{"use strict";var wFl=BFe&&BFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(BFe,"__esModule",{value:!0});BFe.Root=void 0;var lbs=wFl(wt("util")),G7r=H0e(),ubs=O6(),TFl=ZLt(),KLt=x7r(),jLt=iJ(),F7r=class e extends G7r.Signed{constructor(t){if(super(t),this.type=G7r.MetadataKind.Root,this.keys=t.keys||{},this.consistentSnapshot=t.consistentSnapshot??!0,!t.roles)this.roles=KLt.TOP_LEVEL_ROLE_NAMES.reduce((r,n)=>({...r,[n]:new KLt.Role({keyIDs:[],threshold:1})}),{});else{let r=new Set(Object.keys(t.roles));if(!KLt.TOP_LEVEL_ROLE_NAMES.every(n=>r.has(n)))throw new ubs.ValueError("missing top-level role");this.roles=t.roles}}addKey(t,r){if(!this.roles[r])throw new ubs.ValueError(`role ${r} does not exist`);this.roles[r].keyIDs.includes(t.keyID)||this.roles[r].keyIDs.push(t.keyID),this.keys[t.keyID]=t}equals(t){return t instanceof e?super.equals(t)&&this.consistentSnapshot===t.consistentSnapshot&&lbs.default.isDeepStrictEqual(this.keys,t.keys)&&lbs.default.isDeepStrictEqual(this.roles,t.roles):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,keys:RFl(this.keys),roles:NFl(this.roles),consistent_snapshot:this.consistentSnapshot,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=G7r.Signed.commonFieldsFromJSON(t),{keys:a,roles:o,consistent_snapshot:l,...A}=r;if(typeof l!="boolean")throw new TypeError("consistent_snapshot must be a boolean");return new e({...n,keys:DFl(a),roles:kFl(o),consistentSnapshot:l,unrecognizedFields:A})}};BFe.Root=F7r;function RFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function NFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function DFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("keys must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:TFl.Key.fromJSON(n,a)}),{})}return t}function kFl(e){let t;if(jLt.guard.isDefined(e)){if(!jLt.guard.isObjectRecord(e))throw new TypeError("roles must be an object");t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:KLt.Role.fromJSON(a)}),{})}return t}});var V7r=H(zLt=>{"use strict";Object.defineProperty(zLt,"__esModule",{value:!0});zLt.Signature=void 0;var L7r=class e{constructor(t){let{keyID:r,sig:n}=t;this.keyID=r,this.sig=n}toJSON(){return{keyid:this.keyID,sig:this.sig}}static fromJSON(t){let{keyid:r,sig:n}=t;if(typeof r!="string")throw new TypeError("keyid must be a string");if(typeof n!="string")throw new TypeError("sig must be a string");return new e({keyID:r,sig:n})}};zLt.Signature=L7r});var O7r=H(wFe=>{"use strict";var xFl=wFe&&wFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wFe,"__esModule",{value:!0});wFe.Snapshot=void 0;var GFl=xFl(wt("util")),P7r=H0e(),Abs=Nze(),gbs=iJ(),W7r=class e extends P7r.Signed{constructor(t){super(t),this.type=P7r.MetadataKind.Snapshot,this.meta=t.meta||{"targets.json":new Abs.MetaFile({version:1})}}equals(t){return t instanceof e?super.equals(t)&&GFl.default.isDeepStrictEqual(this.meta,t.meta):!1}toJSON(){return{_type:this.type,meta:FFl(this.meta),spec_version:this.specVersion,version:this.version,expires:this.expires,...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=P7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,meta:ZFl(a),unrecognizedFields:o})}};wFe.Snapshot=W7r;function FFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function ZFl(e){let t;if(gbs.guard.isDefined(e))if(gbs.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:Abs.MetaFile.fromJSON(a)}),{});else throw new TypeError("meta field is malformed");return t}});var dbs=H(TFe=>{"use strict";var LFl=TFe&&TFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(TFe,"__esModule",{value:!0});TFe.Delegations=void 0;var qLt=LFl(wt("util")),VFl=O6(),PFl=ZLt(),M7r=x7r(),$Lt=iJ(),H7r=class e{constructor(t){if(this.keys=t.keys,this.unrecognizedFields=t.unrecognizedFields||{},t.roles&&Object.keys(t.roles).some(r=>M7r.TOP_LEVEL_ROLE_NAMES.includes(r)))throw new VFl.ValueError("Delegated role name conflicts with top-level role name");this.succinctRoles=t.succinctRoles,this.roles=t.roles}equals(t){return t instanceof e?qLt.default.isDeepStrictEqual(this.keys,t.keys)&&qLt.default.isDeepStrictEqual(this.roles,t.roles)&&qLt.default.isDeepStrictEqual(this.unrecognizedFields,t.unrecognizedFields)&&qLt.default.isDeepStrictEqual(this.succinctRoles,t.succinctRoles):!1}*rolesForTarget(t){if(this.roles)for(let r of Object.values(this.roles))r.isDelegatedPath(t)&&(yield{role:r.name,terminating:r.terminating});else this.succinctRoles&&(yield{role:this.succinctRoles.getRoleForTarget(t),terminating:!0})}toJSON(){let t={keys:WFl(this.keys),...this.unrecognizedFields};return this.roles?t.roles=OFl(this.roles):this.succinctRoles&&(t.succinct_roles=this.succinctRoles.toJSON()),t}static fromJSON(t){let{keys:r,roles:n,succinct_roles:a,...o}=t,l;return $Lt.guard.isObject(a)&&(l=M7r.SuccinctRoles.fromJSON(a)),new e({keys:MFl(r),roles:HFl(n),unrecognizedFields:o,succinctRoles:l})}};TFe.Delegations=H7r;function WFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function OFl(e){return Object.values(e).map(t=>t.toJSON())}function MFl(e){if(!$Lt.guard.isObjectRecord(e))throw new TypeError("keys is malformed");return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:PFl.Key.fromJSON(r,n)}),{})}function HFl(e){let t;if($Lt.guard.isDefined(e)){if(!$Lt.guard.isObjectArray(e))throw new TypeError("roles is malformed");t=e.reduce((r,n)=>{let a=M7r.DelegatedRole.fromJSON(n);return{...r,[a.name]:a}},{})}return t}});var X7r=H(RFe=>{"use strict";var YFl=RFe&&RFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(RFe,"__esModule",{value:!0});RFe.Targets=void 0;var pbs=YFl(wt("util")),Y7r=H0e(),QFl=dbs(),XFl=Nze(),e9t=iJ(),Q7r=class e extends Y7r.Signed{constructor(t){super(t),this.type=Y7r.MetadataKind.Targets,this.targets=t.targets||{},this.delegations=t.delegations}addTarget(t){this.targets[t.path]=t}equals(t){return t instanceof e?super.equals(t)&&pbs.default.isDeepStrictEqual(this.targets,t.targets)&&pbs.default.isDeepStrictEqual(this.delegations,t.delegations):!1}toJSON(){let t={_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,targets:JFl(this.targets),...this.unrecognizedFields};return this.delegations&&(t.delegations=this.delegations.toJSON()),t}static fromJSON(t){let{unrecognizedFields:r,...n}=Y7r.Signed.commonFieldsFromJSON(t),{targets:a,delegations:o,...l}=r;return new e({...n,targets:UFl(a),delegations:KFl(o),unrecognizedFields:l})}};RFe.Targets=Q7r;function JFl(e){return Object.entries(e).reduce((t,[r,n])=>({...t,[r]:n.toJSON()}),{})}function UFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObjectRecord(e))t=Object.entries(e).reduce((r,[n,a])=>({...r,[n]:XFl.TargetFile.fromJSON(n,a)}),{});else throw new TypeError("targets must be an object");return t}function KFl(e){let t;if(e9t.guard.isDefined(e))if(e9t.guard.isObject(e))t=QFl.Delegations.fromJSON(e);else throw new TypeError("delegations must be an object");return t}});var j7r=H(t9t=>{"use strict";Object.defineProperty(t9t,"__esModule",{value:!0});t9t.Timestamp=void 0;var J7r=H0e(),fbs=Nze(),U7r=iJ(),K7r=class e extends J7r.Signed{constructor(t){super(t),this.type=J7r.MetadataKind.Timestamp,this.snapshotMeta=t.snapshotMeta||new fbs.MetaFile({version:1})}equals(t){return t instanceof e?super.equals(t)&&this.snapshotMeta.equals(t.snapshotMeta):!1}toJSON(){return{_type:this.type,spec_version:this.specVersion,version:this.version,expires:this.expires,meta:{"snapshot.json":this.snapshotMeta.toJSON()},...this.unrecognizedFields}}static fromJSON(t){let{unrecognizedFields:r,...n}=J7r.Signed.commonFieldsFromJSON(t),{meta:a,...o}=r;return new e({...n,snapshotMeta:jFl(a),unrecognizedFields:o})}};t9t.Timestamp=K7r;function jFl(e){let t;if(U7r.guard.isDefined(e)){let r=e["snapshot.json"];if(!U7r.guard.isDefined(r)||!U7r.guard.isObject(r))throw new TypeError("missing snapshot.json in meta");t=fbs.MetaFile.fromJSON(r)}return t}});var hbs=H(DFe=>{"use strict";var zFl=DFe&&DFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(DFe,"__esModule",{value:!0});DFe.Metadata=void 0;var qFl=f7r(),Ibs=zFl(wt("util")),NFe=H0e(),Lze=O6(),$Fl=Z7r(),eZl=V7r(),tZl=O7r(),rZl=X7r(),nZl=j7r(),z7r=iJ(),q7r=class e{constructor(t,r,n){this.signed=t,this.signatures=r||{},this.unrecognizedFields=n||{}}sign(t,r=!0){let n=Buffer.from((0,qFl.canonicalize)(this.signed.toJSON())),a=t(n);r||(this.signatures={}),this.signatures[a.keyID]=a}verifyDelegate(t,r){let n,a={};switch(this.signed.type){case NFe.MetadataKind.Root:a=this.signed.keys,n=this.signed.roles[t];break;case NFe.MetadataKind.Targets:if(!this.signed.delegations)throw new Lze.ValueError(`No delegations found for ${t}`);a=this.signed.delegations.keys,this.signed.delegations.roles?n=this.signed.delegations.roles[t]:this.signed.delegations.succinctRoles&&this.signed.delegations.succinctRoles.isDelegatedRole(t)&&(n=this.signed.delegations.succinctRoles);break;default:throw new TypeError("invalid metadata type")}if(!n)throw new Lze.ValueError(`no delegation found for ${t}`);let o=new Set;if(n.keyIDs.forEach(l=>{let A=a[l];if(A)try{A.verifySignature(r),o.add(A.keyID)}catch{}}),o.sizer.toJSON()),signed:this.signed.toJSON(),...this.unrecognizedFields}}static fromJSON(t,r){let{signed:n,signatures:a,...o}=r;if(!z7r.guard.isDefined(n)||!z7r.guard.isObject(n))throw new TypeError("signed is not defined");if(t!==n._type)throw new Lze.ValueError(`expected '${t}', got ${n._type}`);if(!z7r.guard.isObjectArray(a))throw new TypeError("signatures is not an array");let l;switch(t){case NFe.MetadataKind.Root:l=$Fl.Root.fromJSON(n);break;case NFe.MetadataKind.Timestamp:l=nZl.Timestamp.fromJSON(n);break;case NFe.MetadataKind.Snapshot:l=tZl.Snapshot.fromJSON(n);break;case NFe.MetadataKind.Targets:l=rZl.Targets.fromJSON(n);break;default:throw new TypeError("invalid metadata type")}let A={};return a.forEach(f=>{let I=eZl.Signature.fromJSON(f);if(A[I.keyID])throw new Lze.ValueError(`multiple signatures found for keyid: ${I.keyID}`);A[I.keyID]=I}),new e(l,A,o)}};DFe.Metadata=q7r});var r9t=H(W2=>{"use strict";Object.defineProperty(W2,"__esModule",{value:!0});W2.Timestamp=W2.Targets=W2.Snapshot=W2.Signature=W2.Root=W2.Metadata=W2.Key=W2.TargetFile=W2.MetaFile=W2.ValueError=W2.MetadataKind=void 0;var iZl=H0e();Object.defineProperty(W2,"MetadataKind",{enumerable:!0,get:function(){return iZl.MetadataKind}});var sZl=O6();Object.defineProperty(W2,"ValueError",{enumerable:!0,get:function(){return sZl.ValueError}});var mbs=Nze();Object.defineProperty(W2,"MetaFile",{enumerable:!0,get:function(){return mbs.MetaFile}});Object.defineProperty(W2,"TargetFile",{enumerable:!0,get:function(){return mbs.TargetFile}});var oZl=ZLt();Object.defineProperty(W2,"Key",{enumerable:!0,get:function(){return oZl.Key}});var aZl=hbs();Object.defineProperty(W2,"Metadata",{enumerable:!0,get:function(){return aZl.Metadata}});var cZl=Z7r();Object.defineProperty(W2,"Root",{enumerable:!0,get:function(){return cZl.Root}});var lZl=V7r();Object.defineProperty(W2,"Signature",{enumerable:!0,get:function(){return lZl.Signature}});var uZl=O7r();Object.defineProperty(W2,"Snapshot",{enumerable:!0,get:function(){return uZl.Snapshot}});var gZl=X7r();Object.defineProperty(W2,"Targets",{enumerable:!0,get:function(){return gZl.Targets}});var AZl=j7r();Object.defineProperty(W2,"Timestamp",{enumerable:!0,get:function(){return AZl.Timestamp}})});var $7r=H((oag,Cbs)=>{function dZl(e){r.debug=r,r.default=r,r.coerce=f,r.disable=l,r.enable=a,r.enabled=A,r.humanize=X2r(),r.destroy=I,Object.keys(e).forEach(C=>{r[C]=e[C]}),r.names=[],r.skips=[],r.formatters={};function t(C){let b=0;for(let E=0;E{if(ue==="%%")return"%";ce++;let be=r.formatters[de];if(typeof be=="function"){let Se=Q[ce];ue=be.call(X,Se),Q.splice(ce,1),ce--}return ue}),r.formatArgs.call(X,Q),(X.log||r.log).apply(X,Q)}return F.namespace=C,F.useColors=r.useColors(),F.color=r.selectColor(C),F.extend=n,F.destroy=r.destroy,Object.defineProperty(F,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(N!==r.namespaces&&(N=r.namespaces,B=r.enabled(C)),B),set:Q=>{E=Q}}),typeof r.init=="function"&&r.init(F),F}function n(C,b){let E=r(this.namespace+(typeof b>"u"?":":b)+C);return E.log=this.log,E}function a(C){r.save(C),r.namespaces=C,r.names=[],r.skips=[];let b=(typeof C=="string"?C:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?r.skips.push(E.slice(1)):r.names.push(E)}function o(C,b){let E=0,N=0,B=-1,F=0;for(;E"-"+b)].join(",");return r.enable(""),C}function A(C){for(let b of r.skips)if(o(C,b))return!1;for(let b of r.names)if(o(C,b))return!0;return!1}function f(C){return C instanceof Error?C.stack||C.message:C}function I(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}Cbs.exports=dZl});var _bs=H((nP,n9t)=>{nP.formatArgs=fZl;nP.save=IZl;nP.load=hZl;nP.useColors=pZl;nP.storage=mZl();nP.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();nP.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function pZl(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function fZl(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+n9t.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,a=>{a!=="%%"&&(r++,a==="%c"&&(n=r))}),e.splice(n,0,t)}nP.log=console.debug||console.log||(()=>{});function IZl(e){try{e?nP.storage.setItem("debug",e):nP.storage.removeItem("debug")}catch{}}function hZl(){let e;try{e=nP.storage.getItem("debug")||nP.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function mZl(){try{return localStorage}catch{}}n9t.exports=$7r()(nP);var{formatters:CZl}=n9t.exports;CZl.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var bbs=H((wD,s9t)=>{var _Zl=wt("tty"),i9t=wt("util");wD.init=wZl;wD.log=SZl;wD.formatArgs=bZl;wD.save=vZl;wD.load=BZl;wD.useColors=yZl;wD.destroy=i9t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");wD.colors=[6,2,3,4,5,1];try{let e=wt("supports-color");e&&(e.stderr||e).level>=2&&(wD.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}wD.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let r=t.substring(6).toLowerCase().replace(/_([a-z])/g,(a,o)=>o.toUpperCase()),n=process.env[t];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),e[r]=n,e},{});function yZl(){return"colors"in wD.inspectOpts?!!wD.inspectOpts.colors:_Zl.isatty(process.stderr.fd)}function bZl(e){let{namespace:t,useColors:r}=this;if(r){let n=this.color,a="\x1B[3"+(n<8?n:"8;5;"+n),o=` ${a};1m${t} \x1B[0m`;e[0]=o+e[0].split(` `).join(` -`+o),e.push(a+"m+"+s9t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=bZl()+t+" "+e[0]}function bZl(){return wD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function EZl(...e){return process.stderr.write(i9t.formatWithOptions(wD.inspectOpts,...e)+` -`)}function SZl(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function vZl(){return process.env.DEBUG}function BZl(e){e.inspectOpts={};let t=Object.keys(wD.inspectOpts);for(let r=0;rt.trim()).join(" ")};ybs.O=function(e){return this.inspectOpts.colors=this.useColors,i9t.inspect(e,this.inspectOpts)}});var tzr=H((oag,ezr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ezr.exports=_bs():ezr.exports=bbs()});var a9t=H(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.DownloadHTTPError=nB.DownloadLengthMismatchError=nB.DownloadError=nB.ExpiredMetadataError=nB.EqualVersionError=nB.BadVersionError=nB.RepositoryError=nB.PersistError=nB.RuntimeError=nB.ValueError=void 0;var rzr=class extends Error{};nB.ValueError=rzr;var nzr=class extends Error{};nB.RuntimeError=nzr;var izr=class extends Error{};nB.PersistError=izr;var Vze=class extends Error{};nB.RepositoryError=Vze;var o9t=class extends Vze{};nB.BadVersionError=o9t;var szr=class extends o9t{};nB.EqualVersionError=szr;var ozr=class extends Vze{};nB.ExpiredMetadataError=ozr;var Pze=class extends Error{};nB.DownloadError=Pze;var azr=class extends Pze{};nB.DownloadLengthMismatchError=azr;var czr=class extends Pze{statusCode;constructor(t,r){super(t),this.statusCode=r}};nB.DownloadHTTPError=czr});var Sbs=H(kFe=>{"use strict";var uzr=kFe&&kFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kFe,"__esModule",{value:!0});kFe.withTempFile=void 0;var lzr=uzr(wt("fs/promises")),wZl=uzr(wt("os")),Ebs=uzr(wt("path")),TZl=async e=>RZl(async t=>e(Ebs.default.join(t,"tempfile")));kFe.withTempFile=TZl;var RZl=async e=>{let t=await lzr.default.realpath(wZl.default.tmpdir()),r=await lzr.default.mkdtemp(t+Ebs.default.sep);try{return await e(r)}finally{await lzr.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var Azr=H(que=>{"use strict";var l9t=que&&que.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(que,"__esModule",{value:!0});que.DefaultFetcher=que.BaseFetcher=void 0;var NZl=l9t(tzr()),vbs=l9t(wt("fs")),DZl=l9t(bLt()),kZl=l9t(wt("util")),Bbs=a9t(),xZl=Sbs(),GZl=(0,NZl.default)("tuf:fetch"),c9t=class{async downloadFile(t,r,n){return(0,xZl.withTempFile)(async a=>{let o=await this.fetch(t),l=0,A=vbs.default.createWriteStream(a);try{for await(let f of o){if(l+=f.length,l>r)throw new Bbs.DownloadLengthMismatchError("Max length reached");await FZl(A,f)}}finally{await kZl.default.promisify(A.close).bind(A)()}return n(a)})}async downloadBytes(t,r){return this.downloadFile(t,r,async n=>{let a=vbs.default.createReadStream(n),o=[];for await(let l of a)o.push(l);return Buffer.concat(o)})}};que.BaseFetcher=c9t;var gzr=class extends c9t{timeout;retry;constructor(t={}){super(),this.timeout=t.timeout,this.retry=t.retry}async fetch(t){GZl("GET %s",t);let r=await(0,DZl.default)(t,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Bbs.DownloadHTTPError("Failed to download",r.status);return r.body}};que.DefaultFetcher=gzr;var FZl=async(e,t)=>new Promise((r,n)=>{e.write(t,a=>{a&&n(a),r(!0)})})});var wbs=H(u9t=>{"use strict";Object.defineProperty(u9t,"__esModule",{value:!0});u9t.defaultConfig=void 0;u9t.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Tbs=H(g9t=>{"use strict";Object.defineProperty(g9t,"__esModule",{value:!0});g9t.TrustedMetadataStore=void 0;var wT=r9t(),OS=a9t(),dzr=class{trustedSet={};referenceTime;constructor(t){this.referenceTime=new Date,this.loadTrustedRoot(t)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(t){return this.trustedSet[t]}updateRoot(t){let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Root,r);if(n.signed.type!=wT.MetadataKind.Root)throw new OS.RepositoryError(`Expected 'root', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Root,n),n.signed.version!=this.root.signed.version+1)throw new OS.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${n.signed.version}`);return n.verifyDelegate(wT.MetadataKind.Root,n),this.trustedSet.root=n,n}updateTimestamp(t){if(this.snapshot)throw new OS.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new OS.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Timestamp,r);if(n.signed.type!=wT.MetadataKind.Timestamp)throw new OS.RepositoryError(`Expected 'timestamp', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Timestamp,n),this.timestamp){if(n.signed.version{let f=o.signed.meta[l];if(!f)throw new OS.RepositoryError(`Missing file ${l} in new snapshot`);if(f.version{"use strict";Object.defineProperty(pzr,"__esModule",{value:!0});pzr.join=LZl;var ZZl=wt("url");function LZl(e,t){return new ZZl.URL(VZl(e)+PZl(t)).toString()}function VZl(e){return e.endsWith("/")?e:e+"/"}function PZl(e){return e.startsWith("/")?e.slice(1):e}});var Nbs=H(qH=>{"use strict";var WZl=qH&&qH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),OZl=qH&&qH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hzr=qH&&qH.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{await t.verify(xFe.createReadStream(f)),fzr("WRITE %s",a),xFe.copyFileSync(f,a)}),a}async findCachedTarget(t,r){r||(r=this.generateTargetPath(t));try{if(xFe.existsSync(r))return await t.verify(xFe.createReadStream(r)),r}catch{return}}loadLocalMetadata(t){let r=A9t.join(this.dir,`${t}.json`);return fzr("READ %s",r),xFe.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,n=r+this.config.maxRootRotations;for(let a=r;a0;){let{roleName:a,parentRoleName:o}=r.pop();if(n.has(a))continue;let l=(await this.loadTargets(a,o))?.signed;if(!l)continue;let A=l.targets?.[t];if(A)return A;if(n.add(a),l.delegations){let f=[],I=l.delegations.rolesForTarget(t);for(let{role:C,terminating:b}of I)if(f.push({roleName:C,parentRoleName:a}),b){r.splice(0);break}f.reverse(),r.push(...f)}}}generateTargetPath(t){if(!this.targetDir)throw new X0e.ValueError("Target directory not set");let r=encodeURIComponent(t.path);return A9t.join(this.targetDir,r)}persistMetadata(t,r){let n=encodeURIComponent(t);try{let a=A9t.join(this.dir,`${n}.json`);fzr("WRITE %s",a),xFe.writeFileSync(a,r.toString("utf8"))}catch(a){throw new X0e.PersistError(`Failed to persist metadata ${n} error: ${a}`)}}};qH.Updater=Izr});var Dbs=H($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});$ue.Updater=$ue.BaseFetcher=$ue.TargetFile=void 0;var JZl=r9t();Object.defineProperty($ue,"TargetFile",{enumerable:!0,get:function(){return JZl.TargetFile}});var UZl=Azr();Object.defineProperty($ue,"BaseFetcher",{enumerable:!0,get:function(){return UZl.BaseFetcher}});var KZl=Nbs();Object.defineProperty($ue,"Updater",{enumerable:!0,get:function(){return KZl.Updater}})});var Czr=H(d9t=>{"use strict";Object.defineProperty(d9t,"__esModule",{value:!0});d9t.TUFError=void 0;var mzr=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}};d9t.TUFError=mzr});var kbs=H(Oze=>{"use strict";var jZl=Oze&&Oze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oze,"__esModule",{value:!0});Oze.readTarget=qZl;var zZl=jZl(wt("fs")),p9t=Czr();async function qZl(e,t){let r=await $Zl(e,t);return new Promise((n,a)=>{zZl.default.readFile(r,"utf-8",(o,l)=>{o?a(new p9t.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:o})):n(l)})})}async function $Zl(e,t){let r;try{r=await e.getTargetInfo(t)}catch(a){throw new p9t.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new p9t.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${t} not found`});let n=await e.findCachedTarget(r);if(!n)try{n=await e.downloadTarget(r)}catch(a){throw new p9t.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${n}`,cause:a})}return n}});var xbs=H((hag,eLl)=>{eLl.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiIgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGIwYmNmMTg5Y2UxYjkzZTdkYjk2NDlkNWJlNTEyYTE4ODBjMGUzNTg4NzBlMzkzM2U0MjZjNWFmYjhhNDA2MTAwMjIwNmQyMTRiZDc5YjA5ZjQ1OGNjYzUyMWEyOTBhYTk2MGM0MTcwMTRmYzE2ZTYwNmY4MjA5MWI1ZTMxODE0ODg2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIiIKICB9LAogIHsKICAgImtleWlkIjogIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAic2lnIjogIjMwNDUwMjIxMDBhOWI5ZTI5NGVjMjFiNjJkZmNhNmExNmExOWQwODQxODJjMTI1NzJlMzNkOWM0ZGNhYjUzMTdmYTFlOGE0NTlkMDIyMDY5ZjY4ZTU1ZWExZjk1YzVhMzY3YWFjN2E2MWE2NTc1N2Y5M2RhNWEwMDZhNWY0ZDFjZjk5NWJlODEyZDc2MDIiCiAgfSwKICB7CiAgICJrZXlpZCI6ICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIiwKICAgInNpZyI6ICIzMDQ0MDIyMDc4MTE3OGVjMzkxNWNiMTZhY2E3NTdkNDBlMjg0MzVhYzUzNzhkNmI0ODdhY2IxMTFkMWVlYjMzOTM5N2Y3OWEwMjIwNzgxY2NlNDhhZTQ2ZjllNDdiOTdhODQxNGZjZjQ2NmE5ODY3MjZhNTg5NmM3MmEwZTRhYmEzMTYyY2I4MjZkZCIKICB9CiBdLAogInNpZ25lZCI6IHsKICAiX3R5cGUiOiAicm9vdCIsCiAgImNvbnNpc3RlbnRfc25hcHNob3QiOiB0cnVlLAogICJleHBpcmVzIjogIjIwMjUtMDgtMTlUMTQ6MzM6MDlaIiwKICAia2V5cyI6IHsKICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6cHJvamVjdHMvc2lnc3RvcmUtcm9vdC1zaWduaW5nL2xvY2F0aW9ucy9nbG9iYWwva2V5UmluZ3Mvcm9vdC9jcnlwdG9LZXlzL3RpbWVzdGFtcC9jcnlwdG9LZXlWZXJzaW9ucy8xIgogICB9LAogICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXpCelZPbUhDUG9qTVZMU0kzNjRXaWlWOE5QckRcbjZJZ1J4Vmxpc2t6L3YreTNKRVI1bWNWR2NPTmxpRGNXTUM1SjJsZkhtalBOUGhiNEg3eG04THpmU0E9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAc2FudGlhZ290b3JyZXMiCiAgIH0sCiAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaW5pa1NzQVFtWWtOZUg1ZVlxL0NuSXpMYWFjT1xueGxTYWF3UURPd3FLeS90Q3F4cTV4eFBTSmMyMUs0V0loczlHeU9rS2Z6dWVZM0dJTHpjTUpaNGNXdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBib2JjYWxsYXdheSIKICAgfSwKICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV5OFhLc21oQllESThKYzBHd3pCeGVLYXgwY201XG5TVEtFVTY1SFBGdW5VbjQxc1Q4cGkwRmpNNElrSHovWVVtd21MVU8wV3Q3bHhoajZCa0xJSzRxWUF3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGRsb3JlbmMiCiAgIH0sCiAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFMGdocmg5Mkx3MVlyM2lkR1Y1V3FDdE1EQjhDeFxuK0Q4aGRDNHcyWkxOSXBsVlJvVkdMc2tZYTNnaGVNeU9qaUo4a1BpMTVhUTIvLzdQK29qN1V2SlBHdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBqb3NodWFnbCIKICAgfSwKICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVFWHN6M1NaWEZiOGpNVjQyajZwSmx5amJqUjhLXG5OM0J3b2NleHE2TE1JYjVxc1dLT1F2TE4xNk5VZWZMYzRIc3dPb3VtUnNWVmFhalNwUVM2Zm9ia1J3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQG1ubTY3OCIKICAgfQogIH0sCiAgInJvbGVzIjogewogICAicm9vdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiLAogICAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIiwKICAgICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiIsCiAgICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAzCiAgIH0sCiAgICJzbmFwc2hvdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDM2NTAsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiAzNjUKICAgfSwKICAgInRhcmdldHMiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAidGltZXN0YW1wIjogewogICAgImtleWlkcyI6IFsKICAgICAiMGM4NzQzMmMzYmYwOWZkOTkxODlmZGMzMmZhNWVhZWRmNGU0YTVmYWM3YmFiNzNmYTA0YTJlMGZjNjRhZjZmNSIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMSwKICAgICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogNywKICAgICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDYKICAgfQogIH0sCiAgInNwZWNfdmVyc2lvbiI6ICIxLjAiLAogICJ2ZXJzaW9uIjogMTIsCiAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAxOTcsCiAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogNDYKIH0KfQ==",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXQp9Cg==","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var Fbs=H(GFe=>{"use strict";var Gbs=GFe&&GFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GFe,"__esModule",{value:!0});GFe.TUFClient=void 0;var ege=Gbs(wt("fs")),Mze=Gbs(wt("path")),tLl=Dbs(),rLl=f9t(),nLl=kbs(),yzr="targets",_zr=class{constructor(t){let r=new URL(t.mirrorURL),n=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=Mze.default.join(t.cachePath,n);iLl(a),sLl({cachePath:a,mirrorURL:t.mirrorURL,tufRootPath:t.rootPath,forceInit:t.forceInit}),this.updater=oLl({mirrorURL:t.mirrorURL,cachePath:a,forceCache:t.forceCache,retry:t.retry,timeout:t.timeout})}async refresh(){return this.updater.refresh()}getTarget(t){return(0,nLl.readTarget)(this.updater,t)}};GFe.TUFClient=_zr;function iLl(e){let t=Mze.default.join(e,yzr);ege.default.existsSync(e)||ege.default.mkdirSync(e,{recursive:!0}),ege.default.existsSync(t)||ege.default.mkdirSync(t)}function sLl({cachePath:e,mirrorURL:t,tufRootPath:r,forceInit:n}){let a=Mze.default.join(e,"root.json");if(!ege.default.existsSync(a)||n)if(r)ege.default.copyFileSync(r,a);else{let l=xbs()[t];if(!l)throw new rLl.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${t}`});ege.default.writeFileSync(a,Buffer.from(l["root.json"],"base64")),Object.entries(l.targets).forEach(([A,f])=>{ege.default.writeFileSync(Mze.default.join(e,yzr,A),Buffer.from(f,"base64"))})}}function oLl(e){let t={fetchTimeout:e.timeout,fetchRetry:e.retry};return new tLl.Updater({metadataBaseUrl:e.mirrorURL,targetBaseUrl:`${e.mirrorURL}/targets`,metadataDir:e.cachePath,targetDir:Mze.default.join(e.cachePath,yzr),forceCache:e.forceCache,config:t})}});var f9t=H(dre=>{"use strict";Object.defineProperty(dre,"__esModule",{value:!0});dre.TUFError=dre.DEFAULT_MIRROR_URL=void 0;dre.getTrustedRoot=pLl;dre.initTUF=fLl;var aLl=b7e(),cLl=_ys(),lLl=Fbs();dre.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var uLl="sigstore-js",gLl={retries:2},ALl=5e3,dLl="trusted_root.json";async function pLl(e={}){let r=await Zbs(e).getTarget(dLl);return aLl.TrustedRoot.fromJSON(JSON.parse(r))}async function fLl(e={}){let t=Zbs(e);return t.refresh().then(()=>t)}function Zbs(e){return new lLl.TUFClient({cachePath:e.cachePath||(0,cLl.appDataPath)(uLl),rootPath:e.rootPath,mirrorURL:e.mirrorURL||dre.DEFAULT_MIRROR_URL,retry:e.retry??gLl,timeout:e.timeout??ALl,forceCache:e.forceCache??!1,forceInit:e.forceInit??e.force??!1})}var ILl=Czr();Object.defineProperty(dre,"TUFError",{enumerable:!0,get:function(){return ILl.TUFError}})});var Lbs=H(I9t=>{"use strict";Object.defineProperty(I9t,"__esModule",{value:!0});I9t.DSSESignatureContent=void 0;var Hze=jV(),bzr=class{constructor(t){this.env=t}compareDigest(t){return Hze.crypto.bufferEqual(t,Hze.crypto.digest("sha256",this.env.payload))}compareSignature(t){return Hze.crypto.bufferEqual(t,this.signature)}verifySignature(t){return Hze.crypto.verify(this.preAuthEncoding,t,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return Hze.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};I9t.DSSESignatureContent=bzr});var Vbs=H(h9t=>{"use strict";Object.defineProperty(h9t,"__esModule",{value:!0});h9t.MessageSignatureContent=void 0;var Ezr=jV(),Szr=class{constructor(t,r){this.signature=t.signature,this.messageDigest=t.messageDigest.digest,this.artifact=r}compareSignature(t){return Ezr.crypto.bufferEqual(t,this.signature)}compareDigest(t){return Ezr.crypto.bufferEqual(t,this.messageDigest)}verifySignature(t){return Ezr.crypto.verify(this.artifact,t,this.signature)}};h9t.MessageSignatureContent=Szr});var Wbs=H(m9t=>{"use strict";Object.defineProperty(m9t,"__esModule",{value:!0});m9t.toSignedEntity=CLl;m9t.signatureContent=Pbs;var vzr=jV(),hLl=Lbs(),mLl=Vbs();function CLl(e,t){let{tlogEntries:r,timestampVerificationData:n}=e.verificationMaterial,a=[];for(let o of r)a.push({$case:"transparency-log",tlogEntry:o});for(let o of n?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:vzr.RFC3161Timestamp.parse(o.signedTimestamp)});return{signature:Pbs(e,t),key:_Ll(e),tlogEntries:r,timestamps:a}}function Pbs(e,t){switch(e.content.$case){case"dsseEnvelope":return new hLl.DSSESignatureContent(e.content.dsseEnvelope);case"messageSignature":return new mLl.MessageSignatureContent(e.content.messageSignature,t)}}function _Ll(e){switch(e.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:e.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.certificate.rawBytes)}}}});var Ix=H(FFe=>{"use strict";Object.defineProperty(FFe,"__esModule",{value:!0});FFe.PolicyError=FFe.VerificationError=void 0;var C9t=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}},Bzr=class extends C9t{};FFe.VerificationError=Bzr;var wzr=class extends C9t{};FFe.PolicyError=wzr});var Obs=H(_9t=>{"use strict";Object.defineProperty(_9t,"__esModule",{value:!0});_9t.filterCertAuthorities=yLl;_9t.filterTLogAuthorities=bLl;function yLl(e,t){return e.filter(r=>r.validFor.start<=t&&r.validFor.end>=t)}function bLl(e,t){return e.filter(r=>t.logID&&!r.logID.equals(t.logID)?!1:r.validFor.start<=t.targetDate&&t.targetDate<=r.validFor.end)}});var U0e=H(J0e=>{"use strict";Object.defineProperty(J0e,"__esModule",{value:!0});J0e.filterTLogAuthorities=J0e.filterCertAuthorities=void 0;J0e.toTrustMaterial=SLl;var Tzr=jV(),Yze=b7e(),ELl=Ix(),Rzr=new Date(0),Nzr=new Date(864e13),Ybs=Obs();Object.defineProperty(J0e,"filterCertAuthorities",{enumerable:!0,get:function(){return Ybs.filterCertAuthorities}});Object.defineProperty(J0e,"filterTLogAuthorities",{enumerable:!0,get:function(){return Ybs.filterTLogAuthorities}});function SLl(e,t){let r=typeof t=="function"?t:vLl(t);return{certificateAuthorities:e.certificateAuthorities.map(Hbs),timestampAuthorities:e.timestampAuthorities.map(Hbs),tlogs:e.tlogs.map(Mbs),ctlogs:e.ctlogs.map(Mbs),publicKey:r}}function Mbs(e){let t=e.publicKey.keyDetails,r=t===Yze.PublicKeyDetails.PKCS1_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:e.logId.keyId,publicKey:Tzr.crypto.createPublicKey(e.publicKey.rawBytes,r),validFor:{start:e.publicKey.validFor?.start||Rzr,end:e.publicKey.validFor?.end||Nzr}}}function Hbs(e){return{certChain:e.certChain.certificates.map(t=>Tzr.X509Certificate.parse(t.rawBytes)),validFor:{start:e.validFor?.start||Rzr,end:e.validFor?.end||Nzr}}}function vLl(e){return t=>{let r=(e||{})[t];if(!r)throw new ELl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:Tzr.crypto.createPublicKey(r.rawBytes),validFor:n=>(r.validFor?.start||Rzr)<=n&&(r.validFor?.end||Nzr)>=n}}}});var Dzr=H(Qze=>{"use strict";Object.defineProperty(Qze,"__esModule",{value:!0});Qze.CertificateChainVerifier=void 0;Qze.verifyCertificateChain=wLl;var tge=Ix(),BLl=U0e();function wLl(e,t,r){let n=(0,BLl.filterCertAuthorities)(r,e),a;for(let o of n)try{return new y9t({trustedCerts:o.certChain,untrustedCert:t,timestamp:e}).verify()}catch(l){a=l}throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:a})}var y9t=class{constructor(t){this.untrustedCert=t.untrustedCert,this.trustedCerts=t.trustedCerts,this.localCerts=TLl([...t.trustedCerts,t.untrustedCert]),this.timestamp=t.timestamp}verify(){let t=this.sort();if(this.checkPath(t),!t.every(n=>n.validForDate(this.timestamp)))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return t}sort(){let t=this.untrustedCert,r=this.buildPaths(t);if(r=r.filter(a=>a.some(o=>this.trustedCerts.includes(o))),r.length===0)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let n=r.reduce((a,o)=>a.length{if(n&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(n)&&r.push(a);return}a.subject.equals(t.issuer)&&r.push(a)}),r=r.filter(a=>{try{return t.verify(a)}catch{return!1}}),r)}checkPath(t){if(t.length<1)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!t.slice(1).every(n=>n.isCA))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let n=t.length-2;n>=0;n--)if(!t[n].issuer.equals(t[n+1].subject))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let n=0;n{"use strict";Object.defineProperty(kzr,"__esModule",{value:!0});kzr.verifySCTs=DLl;var b9t=jV(),RLl=Ix(),NLl=U0e();function DLl(e,t,r){let n,a=e.clone();for(let f=0;f{if(!(0,NLl.filterTLogAuthorities)(r,{logID:f.logID,targetDate:f.datetime}).some(b=>f.verify(o.buffer,b.publicKey)))throw new RLl.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return f.logID})}});var Xbs=H(E9t=>{"use strict";Object.defineProperty(E9t,"__esModule",{value:!0});E9t.verifyPublicKey=VLl;E9t.verifyCertificate=PLl;var kLl=jV(),xLl=Ix(),GLl=Dzr(),FLl=Qbs(),ZLl="1.3.6.1.4.1.57264.1.1",LLl="1.3.6.1.4.1.57264.1.8";function VLl(e,t,r){let n=r.publicKey(e);return t.forEach(a=>{if(!n.validFor(a))throw new xLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:n.publicKey}}function PLl(e,t,r){let n=[];return t.forEach(a=>{n=(0,GLl.verifyCertificateChain)(a,e,r.certificateAuthorities)}),{scts:(0,FLl.verifySCTs)(n[0],n[1],r.ctlogs),signer:WLl(n[0])}}function WLl(e){let t,r=e.extension(LLl);r?t=r.valueObj.subs?.[0]?.value.toString("ascii"):t=e.extension(ZLl)?.value.toString("ascii");let n={extensions:{issuer:t},subjectAlternativeName:e.subjectAltName};return{key:kLl.crypto.createPublicKey(e.publicKey),identity:n}}});var Ubs=H(S9t=>{"use strict";Object.defineProperty(S9t,"__esModule",{value:!0});S9t.verifySubjectAlternativeName=OLl;S9t.verifyExtensions=MLl;var Jbs=Ix();function OLl(e,t){if(t===void 0||!t.match(e))throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${e}, got ${t}`})}function MLl(e,t={}){let r;for(r in e)if(t[r]!==e[r])throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${e[r]}, got ${r}=${t[r]}`})}});var Kbs=H(Lzr=>{"use strict";Object.defineProperty(Lzr,"__esModule",{value:!0});Lzr.verifyCheckpoint=QLl;var Gzr=jV(),ZFe=Ix(),HLl=U0e(),xzr=` - -`,YLl=/\u2014 (\S+) (\S+)\n/g;function QLl(e,t){let r=(0,HLl.filterTLogAuthorities)(t,{targetDate:new Date(Number(e.integratedTime)*1e3)}),n=e.inclusionProof,a=Fzr.fromString(n.checkpoint.envelope),o=Zzr.fromString(a.note);if(!XLl(a,r))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!Gzr.crypto.bufferEqual(o.logHash,n.rootHash))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function XLl(e,t){let r=Buffer.from(e.note,"utf-8");return e.signatures.every(n=>{let a=t.find(o=>Gzr.crypto.bufferEqual(o.logID.subarray(0,4),n.keyHint));return a?Gzr.crypto.verify(r,a.publicKey,n.signature):!1})}var Fzr=class e{constructor(t,r){this.note=t,this.signatures=r}static fromString(t){if(!t.includes(xzr))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=t.indexOf(xzr),n=t.slice(0,r+1),o=t.slice(r+xzr.length).matchAll(YLl),l=Array.from(o,A=>{let[,f,I]=A,C=Buffer.from(I,"base64");if(C.length<5)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:f,keyHint:C.subarray(0,4),signature:C.subarray(4)}});if(l.length===0)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new e(n,l)}},Zzr=class e{constructor(t,r,n,a){this.origin=t,this.logSize=r,this.logHash=n,this.rest=a}static fromString(t){let r=t.trimEnd().split(` -`);if(r.length<3)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let n=r[0],a=BigInt(r[1]),o=Buffer.from(r[2],"base64"),l=r.slice(3);return new e(n,a,o,l)}}});var jbs=H(Ozr=>{"use strict";Object.defineProperty(Ozr,"__esModule",{value:!0});Ozr.verifyMerkleInclusion=KLl;var Wzr=jV(),Vzr=Ix(),JLl=Buffer.from([0]),ULl=Buffer.from([1]);function KLl(e){let t=e.inclusionProof,r=BigInt(t.logIndex),n=BigInt(t.treeSize);if(r<0n||r>=n)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:o}=jLl(r,n);if(t.hashes.length!==a+o)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let l=t.hashes.slice(0,a),A=t.hashes.slice(a),f=r9l(e.canonicalizedBody),I=qLl(zLl(f,l,r),A);if(!Wzr.crypto.bufferEqual(I,t.rootHash))throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function jLl(e,t){let r=$Ll(e,t),n=e9l(e>>BigInt(r));return{inner:r,border:n}}function zLl(e,t,r){return t.reduce((n,a,o)=>r>>BigInt(o)&BigInt(1)?Pzr(a,n):Pzr(n,a),e)}function qLl(e,t){return t.reduce((r,n)=>Pzr(n,r),e)}function $Ll(e,t){return t9l(e^t-BigInt(1))}function e9l(e){return e.toString(2).split("1").length-1}function t9l(e){return e===0n?0:e.toString(2).length}function Pzr(e,t){return Wzr.crypto.digest("sha256",ULl,e,t)}function r9l(e){return Wzr.crypto.digest("sha256",JLl,e)}});var qbs=H(Mzr=>{"use strict";Object.defineProperty(Mzr,"__esModule",{value:!0});Mzr.verifyTLogSET=s9l;var zbs=jV(),n9l=Ix(),i9l=U0e();function s9l(e,t){if(!(0,i9l.filterTLogAuthorities)(t,{logID:e.logId.keyId,targetDate:new Date(Number(e.integratedTime)*1e3)}).some(a=>{let o=o9l(e),l=Buffer.from(zbs.json.canonicalize(o),"utf8"),A=e.inclusionPromise.signedEntryTimestamp;return zbs.crypto.verify(l,a.publicKey,A)}))throw new n9l.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function o9l(e){let{integratedTime:t,logIndex:r,logId:n,canonicalizedBody:a}=e;return{body:a.toString("base64"),integratedTime:Number(t),logIndex:Number(r),logID:n.keyId.toString("hex")}}});var eEs=H(Yzr=>{"use strict";Object.defineProperty(Yzr,"__esModule",{value:!0});Yzr.verifyRFC3161Timestamp=l9l;var Hzr=jV(),$bs=Ix(),a9l=Dzr(),c9l=U0e();function l9l(e,t,r){let n=e.signingTime;if(r=(0,c9l.filterCertAuthorities)(r,n),r=g9l(r,{serialNumber:e.signerSerialNumber,issuer:e.signerIssuer}),!r.some(o=>{try{return u9l(e,t,o),!0}catch{return!1}}))throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function u9l(e,t,r){let[n,...a]=r.certChain,o=Hzr.crypto.createPublicKey(n.publicKey),l=e.signingTime;try{new a9l.CertificateChainVerifier({untrustedCert:n,trustedCerts:a,timestamp:l}).verify()}catch{throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}e.verify(t,o)}function g9l(e,t){return e.filter(r=>r.certChain.length>0&&Hzr.crypto.bufferEqual(r.certChain[0].serialNumber,t.serialNumber)&&Hzr.crypto.bufferEqual(r.certChain[0].issuer,t.issuer))}});var tEs=H(v9t=>{"use strict";Object.defineProperty(v9t,"__esModule",{value:!0});v9t.verifyTSATimestamp=h9l;v9t.verifyTLogTimestamp=m9l;var A9l=Ix(),d9l=Kbs(),p9l=jbs(),f9l=qbs(),I9l=eEs();function h9l(e,t,r){return(0,I9l.verifyRFC3161Timestamp)(e,t,r),{type:"timestamp-authority",logID:e.signerSerialNumber,timestamp:e.signingTime}}function m9l(e,t){let r=!1;if(C9l(e)&&((0,f9l.verifyTLogSET)(e,t),r=!0),_9l(e)&&((0,p9l.verifyMerkleInclusion)(e),(0,d9l.verifyCheckpoint)(e,t),r=!0),!r)throw new A9l.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:e.logId.keyId,timestamp:new Date(Number(e.integratedTime)*1e3)}}function C9l(e){return e.inclusionPromise!==void 0}function _9l(e){return e.inclusionProof!==void 0}});var rEs=H(Qzr=>{"use strict";Object.defineProperty(Qzr,"__esModule",{value:!0});Qzr.verifyDSSETLogBody=y9l;var B9t=Ix();function y9l(e,t){switch(e.apiVersion){case"0.0.1":return b9l(e,t);default:throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${e.apiVersion}`})}}function b9l(e,t){if(e.spec.signatures?.length!==1)throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=e.spec.signatures[0].signature;if(!t.compareSignature(Buffer.from(r,"base64")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var nEs=H(Jzr=>{"use strict";Object.defineProperty(Jzr,"__esModule",{value:!0});Jzr.verifyHashedRekordTLogBody=E9l;var Xzr=Ix();function E9l(e,t){switch(e.apiVersion){case"0.0.1":return S9l(e,t);default:throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${e.apiVersion}`})}}function S9l(e,t){let r=e.spec.signature.content||"";if(!t.compareSignature(Buffer.from(r,"base64")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let n=e.spec.data.hash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var iEs=H(Uzr=>{"use strict";Object.defineProperty(Uzr,"__esModule",{value:!0});Uzr.verifyIntotoTLogBody=v9l;var w9t=Ix();function v9l(e,t){switch(e.apiVersion){case"0.0.2":return B9l(e,t);default:throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${e.apiVersion}`})}}function B9l(e,t){if(e.spec.content.envelope.signatures?.length!==1)throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=w9l(e.spec.content.envelope.signatures[0].sig);if(!t.compareSignature(Buffer.from(r,"base64")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.content.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function w9l(e){return Buffer.from(e,"base64").toString("utf-8")}});var oEs=H(Kzr=>{"use strict";Object.defineProperty(Kzr,"__esModule",{value:!0});Kzr.verifyTLogBody=D9l;var sEs=Ix(),T9l=rEs(),R9l=nEs(),N9l=iEs();function D9l(e,t){let{kind:r,version:n}=e.kindVersion,a=JSON.parse(e.canonicalizedBody.toString("utf8"));if(r!==a.kind||n!==a.apiVersion)throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${n}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,T9l.verifyDSSETLogBody)(a,t);case"intoto":return(0,N9l.verifyIntotoTLogBody)(a,t);case"hashedrekord":return(0,R9l.verifyHashedRekordTLogBody)(a,t);default:throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var gEs=H(T9t=>{"use strict";Object.defineProperty(T9t,"__esModule",{value:!0});T9t.Verifier=void 0;var k9l=wt("util"),LFe=Ix(),aEs=Xbs(),cEs=Ubs(),lEs=tEs(),x9l=oEs(),jzr=class{constructor(t,r={}){this.trustMaterial=t,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(t,r){let n=this.verifyTimestamps(t),a=this.verifySigningKey(t,n);return this.verifyTLogs(t),this.verifySignature(t,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(t){let r=0,n=0,a=t.timestamps.map(o=>{switch(o.$case){case"timestamp-authority":return n++,(0,lEs.verifyTSATimestamp)(o.timestamp,t.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,lEs.verifyTLogTimestamp)(o.tlogEntry,this.trustMaterial.tlogs)}});if(uEs(a))throw new LFe.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(ro.timestamp)}verifySigningKey({key:t},r){switch(t.$case){case"public-key":return(0,aEs.verifyPublicKey)(t.hint,r,this.trustMaterial);case"certificate":{let n=(0,aEs.verifyCertificate)(t.certificate,r,this.trustMaterial);if(uEs(n.scts))throw new LFe.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(n.scts.length(0,x9l.verifyTLogBody)(n,t))}verifySignature(t,r){if(!t.signature.verifySignature(r.key))throw new LFe.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(t,r){t.subjectAlternativeName&&(0,cEs.verifySubjectAlternativeName)(t.subjectAlternativeName,r.subjectAlternativeName),t.extensions&&(0,cEs.verifyExtensions)(t.extensions,r.extensions)}};T9t.Verifier=jzr;function uEs(e){for(let t=0;t{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.Verifier=$H.toTrustMaterial=$H.VerificationError=$H.PolicyError=$H.toSignedEntity=void 0;var G9l=Wbs();Object.defineProperty($H,"toSignedEntity",{enumerable:!0,get:function(){return G9l.toSignedEntity}});var AEs=Ix();Object.defineProperty($H,"PolicyError",{enumerable:!0,get:function(){return AEs.PolicyError}});Object.defineProperty($H,"VerificationError",{enumerable:!0,get:function(){return AEs.VerificationError}});var F9l=U0e();Object.defineProperty($H,"toTrustMaterial",{enumerable:!0,get:function(){return F9l.toTrustMaterial}});var Z9l=gEs();Object.defineProperty($H,"Verifier",{enumerable:!0,get:function(){return Z9l.Verifier}})});var dEs=H(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.DEFAULT_TIMEOUT=mL.DEFAULT_RETRY=void 0;mL.createBundleBuilder=P9l;mL.createKeyFinder=W9l;mL.createVerificationPolicy=O9l;var L9l=jV(),VFe=l7r(),V9l=R9t();mL.DEFAULT_RETRY={retries:2};mL.DEFAULT_TIMEOUT=5e3;function P9l(e,t){let r={signer:M9l(t),witnesses:Y9l(t)};switch(e){case"messageSignature":return new VFe.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new VFe.DSSEBundleBuilder({...r,certificateChain:t.legacyCompatibility})}}function W9l(e){return t=>{let r=e(t);if(!r)throw new V9l.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:L9l.crypto.createPublicKey(r),validFor:()=>!0}}}function O9l(e){let t={},r=e.certificateIdentityEmail||e.certificateIdentityURI;return r&&(t.subjectAlternativeName=r),e.certificateIssuer&&(t.extensions={issuer:e.certificateIssuer}),t}function M9l(e){return new VFe.FulcioSigner({fulcioBaseURL:e.fulcioURL,identityProvider:e.identityProvider||H9l(e),retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})}function H9l(e){let t=e.identityToken;return t?{getToken:()=>Promise.resolve(t)}:new VFe.CIContextProvider("sigstore")}function Y9l(e){let t=[];return Q9l(e)&&t.push(new VFe.RekorWitness({rekorBaseURL:e.rekorURL,entryType:e.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),X9l(e)&&t.push(new VFe.TSAWitness({tsaBaseURL:e.tsaServerURL,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),t}function Q9l(e){return e.tlogUpload!==!1}function X9l(e){return e.tsaServerURL!==void 0}});var IEs=H(eY=>{"use strict";var J9l=eY&&eY.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),U9l=eY&&eY.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pEs=eY&&eY.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aa.verify(e,n))}async function fEs(e={}){let t=await K9l.getTrustedRoot({mirrorURL:e.tufMirrorURL,rootPath:e.tufRootPath,cachePath:e.tufCachePath,forceCache:e.tufForceCache,retry:e.retry??PFe.DEFAULT_RETRY,timeout:e.timeout??PFe.DEFAULT_TIMEOUT}),r=e.keySelector?PFe.createKeyFinder(e.keySelector):void 0,n=(0,zzr.toTrustMaterial)(t,r),a={ctlogThreshold:e.ctLogThreshold,tlogThreshold:e.tlogThreshold},o=new zzr.Verifier(n,a),l=PFe.createVerificationPolicy(e);return{verify:(A,f)=>{let I=(0,qzr.bundleFromJSON)(A),C=(0,zzr.toSignedEntity)(I,f);o.verify(C,l)}}}});var mEs=H(O2=>{"use strict";Object.defineProperty(O2,"__esModule",{value:!0});O2.verify=O2.sign=O2.createVerifier=O2.attest=O2.VerificationError=O2.PolicyError=O2.TUFError=O2.InternalError=O2.DEFAULT_REKOR_URL=O2.DEFAULT_FULCIO_URL=O2.ValidationError=void 0;var $9l=S7e();Object.defineProperty(O2,"ValidationError",{enumerable:!0,get:function(){return $9l.ValidationError}});var $zr=l7r();Object.defineProperty(O2,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_FULCIO_URL}});Object.defineProperty(O2,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_REKOR_URL}});Object.defineProperty(O2,"InternalError",{enumerable:!0,get:function(){return $zr.InternalError}});var eVl=f9t();Object.defineProperty(O2,"TUFError",{enumerable:!0,get:function(){return eVl.TUFError}});var hEs=R9t();Object.defineProperty(O2,"PolicyError",{enumerable:!0,get:function(){return hEs.PolicyError}});Object.defineProperty(O2,"VerificationError",{enumerable:!0,get:function(){return hEs.VerificationError}});var N9t=IEs();Object.defineProperty(O2,"attest",{enumerable:!0,get:function(){return N9t.attest}});Object.defineProperty(O2,"createVerifier",{enumerable:!0,get:function(){return N9t.createVerifier}});Object.defineProperty(O2,"sign",{enumerable:!0,get:function(){return N9t.sign}});Object.defineProperty(O2,"verify",{enumerable:!0,get:function(){return N9t.verify}})});var CEs=H(D9t=>{"use strict";Object.defineProperty(D9t,"__esModule",{value:!0});D9t.generateProvenance=void 0;var tVl=(Pa(),vi(Va)),WFe=Bn(),rVl=tVl.__importStar(mEs()),{env:zc}=process,nVl="application/vnd.in-toto+json",iVl="https://in-toto.io/Statement/v0.1",sVl="https://in-toto.io/Statement/v1",oVl="https://slsa.dev/provenance/v0.2",aVl="https://slsa.dev/provenance/v1",cVl="https://github.com/actions/runner",lVl="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",uVl="https://github.com/npm/cli/gitlab",gVl="v0alpha1",AVl=async(e,t)=>{let r;if(zc.GITHUB_ACTIONS){if(!zc.ACTIONS_ID_TOKEN_REQUEST_URL)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let n=(zc.GITHUB_WORKFLOW_REF||"").replace(`${zc.GITHUB_REPOSITORY}/`,""),a=n.indexOf("@"),o=n.slice(0,a),l=n.slice(a+1);r={_type:sVl,subject:e,predicateType:aVl,predicate:{buildDefinition:{buildType:lVl,externalParameters:{workflow:{ref:l,repository:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}`,path:o}},internalParameters:{github:{event_name:zc.GITHUB_EVENT_NAME,repository_id:zc.GITHUB_REPOSITORY_ID,repository_owner_id:zc.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}@${zc.GITHUB_REF}`,digest:{gitCommit:zc.GITHUB_SHA}}]},runDetails:{builder:{id:`${cVl}/${zc.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}/actions/runs/${zc.GITHUB_RUN_ID}/attempts/${zc.GITHUB_RUN_ATTEMPT}`}}}}}else if(zc.GITLAB_CI){if(!zc.SIGSTORE_ID_TOKEN)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: -https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:iVl,subject:e,predicateType:oVl,predicate:{buildType:`${uVl}/${gVl}`,builder:{id:`${zc.CI_PROJECT_URL}/-/runners/${zc.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA},entryPoint:zc.CI_JOB_NAME},parameters:{CI:zc.CI,CI_API_GRAPHQL_URL:zc.CI_API_GRAPHQL_URL,CI_API_V4_URL:zc.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:zc.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:zc.CI_BUILD_ID,CI_BUILD_NAME:zc.CI_BUILD_NAME,CI_BUILD_REF:zc.CI_BUILD_REF,CI_BUILD_REF_NAME:zc.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:zc.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:zc.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:zc.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:zc.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:zc.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:zc.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:zc.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:zc.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:zc.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:zc.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:zc.CI_COMMIT_TITLE,CI_CONFIG_PATH:zc.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:zc.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:zc.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:zc.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:zc.CI_JOB_ID,CI_JOB_NAME:zc.CI_JOB_NAME,CI_JOB_NAME_SLUG:zc.CI_JOB_NAME_SLUG,CI_JOB_STAGE:zc.CI_JOB_STAGE,CI_JOB_STARTED_AT:zc.CI_JOB_STARTED_AT,CI_JOB_URL:zc.CI_JOB_URL,CI_NODE_TOTAL:zc.CI_NODE_TOTAL,CI_PAGES_DOMAIN:zc.CI_PAGES_DOMAIN,CI_PAGES_URL:zc.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:zc.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:zc.CI_PIPELINE_ID,CI_PIPELINE_IID:zc.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:zc.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:zc.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:zc.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:zc.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:zc.CI_PROJECT_ID,CI_PROJECT_NAME:zc.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:zc.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:zc.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:zc.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:zc.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:zc.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:zc.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:zc.CI_PROJECT_TITLE,CI_PROJECT_URL:zc.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:zc.CI_PROJECT_VISIBILITY,CI_REGISTRY:zc.CI_REGISTRY,CI_REGISTRY_IMAGE:zc.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:zc.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:zc.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:zc.CI_RUNNER_ID,CI_RUNNER_TAGS:zc.CI_RUNNER_TAGS,CI_SERVER_HOST:zc.CI_SERVER_HOST,CI_SERVER_NAME:zc.CI_SERVER_NAME,CI_SERVER_PORT:zc.CI_SERVER_PORT,CI_SERVER_PROTOCOL:zc.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:zc.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:zc.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:zc.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:zc.CI_SERVER_URL,CI_SERVER_VERSION:zc.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:zc.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:zc.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:zc.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:zc.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:zc.GITLAB_CI,GITLAB_FEATURES:zc.GITLAB_FEATURES,GITLAB_USER_ID:zc.GITLAB_USER_ID,GITLAB_USER_LOGIN:zc.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:zc.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:zc.CI_RUNNER_DESCRIPTION,architecture:zc.CI_RUNNER_EXECUTABLE_ARCH,server:zc.CI_SERVER_URL,project:zc.CI_PROJECT_PATH,job:{id:zc.CI_JOB_ID},pipeline:{id:zc.CI_PIPELINE_ID,ref:zc.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${zc.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA}}]}}}else throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,"Provenance generation is only supported in GitHub Actions and GitLab CI");return rVl.attest(Buffer.from(JSON.stringify(r)),nVl,t)};D9t.generateProvenance=AVl});var SEs=H(OFe=>{"use strict";Object.defineProperty(OFe,"__esModule",{value:!0});OFe.makePublishBody=CVl;OFe.getGitHead=_Vl;OFe.getPublishAccess=bEs;OFe.getReadmeContent=EEs;var dVl=(Pa(),vi(Va)),pVl=Bn(),yEs=Bn(),_Es=no(),fVl=$he(),IVl=dVl.__importDefault(Jte()),hVl=c0e(),mVl=CEs();async function CVl(e,t,{access:r,tag:n,registry:a,gitHead:o,provenance:l}){let A=e.manifest.name,f=e.manifest.version,I=yEs.structUtils.stringifyIdent(A),C=IVl.default.fromData(t,{algorithms:["sha1","sha512"]}),b=r??bEs(e,A),E=await EEs(e),N=await fVl.packUtils.genPackageManifest(e),B=`${I}-${f}.tgz`,F=new URL(`${(0,hVl.normalizeRegistry)(a)}/${I}/-/${B}`),Q={[B]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}};if(l){let X={name:`pkg:npm/${I.replace(/^@/,"%40")}@${f}`,digest:{sha512:C.sha512[0].hexDigest()}},ae=await(0,mVl.generateProvenance)([X]),ne=JSON.stringify(ae);Q[`${I}-${f}.sigstore`]={content_type:ae.mediaType,data:ne,length:ne.length}}return{_id:I,_attachments:Q,name:I,access:b,"dist-tags":{[n]:f},versions:{[f]:{...N,_id:`${I}@${f}`,name:I,version:f,gitHead:o,dist:{shasum:C.sha1[0].hexDigest(),integrity:C.sha512[0].toString(),tarball:F.toString()}}},readme:E}}async function _Vl(e){try{let{stdout:t}=await pVl.execUtils.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:e});return t.trim()===""?void 0:t.trim()}catch{return}}function bEs(e,t){let r=e.project.configuration;return e.manifest.publishConfig&&typeof e.manifest.publishConfig.access=="string"?e.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):t.scope?"restricted":"public"}async function EEs(e){let t=_Es.npath.toPortablePath(`${e.cwd}/README.md`),r=e.manifest.name,a=`# ${yEs.structUtils.stringifyIdent(r)} -`;try{a=await _Es.xfs.readFilePromise(t,"utf8")}catch(o){if(o.code==="ENOENT")return a;throw o}return a}});var sJ=H(QR=>{"use strict";Object.defineProperty(QR,"__esModule",{value:!0});QR.NpmTagResolver=QR.NpmSemverResolver=QR.NpmSemverFetcher=QR.NpmRemapResolver=QR.NpmHttpFetcher=QR.npmPublishUtils=QR.npmHttpUtils=QR.npmConfigUtils=void 0;var tqr=(Pa(),vi(Va)),jO=Bn(),BEs=zds();Object.defineProperty(QR,"NpmHttpFetcher",{enumerable:!0,get:function(){return BEs.NpmHttpFetcher}});var wEs=qds();Object.defineProperty(QR,"NpmRemapResolver",{enumerable:!0,get:function(){return wEs.NpmRemapResolver}});var TEs=PGt();Object.defineProperty(QR,"NpmSemverFetcher",{enumerable:!0,get:function(){return TEs.NpmSemverFetcher}});var REs=ips();Object.defineProperty(QR,"NpmSemverResolver",{enumerable:!0,get:function(){return REs.NpmSemverResolver}});var NEs=aps();Object.defineProperty(QR,"NpmTagResolver",{enumerable:!0,get:function(){return NEs.NpmTagResolver}});var DEs=tqr.__importStar(c0e());QR.npmConfigUtils=DEs;var yVl=tqr.__importStar(vGe());QR.npmHttpUtils=yVl;var bVl=tqr.__importStar(SEs());QR.npmPublishUtils=bVl;var eqr={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null}},vEs={npmAuditRegistry:{description:"Registry to query for audit reports",type:jO.SettingsType.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:jO.SettingsType.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.STRING,default:"https://registry.yarnpkg.com"}},EVl={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:jO.SettingsType.DURATION,unit:jO.DurationUnit.MINUTES,default:"0m"},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:jO.SettingsType.STRING,isArray:!0,default:[]}},SVl={configuration:{...eqr,...vEs,...EVl,npmScopes:{description:"Settings per package scope",type:jO.SettingsType.MAP,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr,...vEs}}},npmRegistries:{description:"Settings per registry",type:jO.SettingsType.MAP,normalizeKeys:DEs.normalizeRegistry,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr}}}},fetchers:[BEs.NpmHttpFetcher,TEs.NpmSemverFetcher],resolvers:[wEs.NpmRemapResolver,REs.NpmSemverResolver,NEs.NpmTagResolver]};QR.default=SVl});var k9t=H(MFe=>{"use strict";Object.defineProperty(MFe,"__esModule",{value:!0});MFe.Severity=MFe.Environment=void 0;var kEs;(function(e){e.All="all",e.Production="production",e.Development="development"})(kEs||(MFe.Environment=kEs={}));var xEs;(function(e){e.Info="info",e.Low="low",e.Moderate="moderate",e.High="high",e.Critical="critical"})(xEs||(MFe.Severity=xEs={}))});var rqr=H(oJ=>{"use strict";Object.defineProperty(oJ,"__esModule",{value:!0});oJ.allSeverities=void 0;oJ.getSeverityInclusions=BVl;oJ.getReportTree=wVl;oJ.getTopLevelDependencies=TVl;oJ.getPackages=RVl;var GEs=(Pa(),vi(Va)),QE=Bn(),vVl=GEs.__importDefault(UC()),pre=GEs.__importStar(k9t());oJ.allSeverities=[pre.Severity.Info,pre.Severity.Low,pre.Severity.Moderate,pre.Severity.High,pre.Severity.Critical];function BVl(e){if(typeof e>"u")return new Set(oJ.allSeverities);let t=oJ.allSeverities.indexOf(e),r=oJ.allSeverities.slice(t);return new Set(r)}function wVl(e){let t={},r={children:t};for(let[n,a]of QE.miscUtils.sortMap(Object.entries(e),o=>o[0]))for(let o of QE.miscUtils.sortMap(a,l=>`${l.id}`))t[`${n}/${o.id}`]={value:QE.formatUtils.tuple(QE.formatUtils.Type.IDENT,QE.structUtils.parseIdent(n)),children:{ID:typeof o.id<"u"&&{label:"ID",value:QE.formatUtils.tuple(QE.formatUtils.Type.ID,o.id)},Issue:{label:"Issue",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.title)},URL:typeof o.url<"u"&&{label:"URL",value:QE.formatUtils.tuple(QE.formatUtils.Type.URL,o.url)},Severity:{label:"Severity",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:QE.formatUtils.tuple(QE.formatUtils.Type.RANGE,o.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...o.versions].sort(vVl.default.compare).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.REFERENCE,l)}))},Dependents:{label:"Dependents",children:QE.miscUtils.sortMap(o.dependents,l=>QE.structUtils.stringifyLocator(l)).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.LOCATOR,l)}))}}};return r}function TVl(e,t,{all:r,environment:n}){let a=[],o=r?e.workspaces:[t],l=[pre.Environment.All,pre.Environment.Production].includes(n),A=[pre.Environment.All,pre.Environment.Development].includes(n);for(let f of o)for(let I of f.anchoredPackage.dependencies.values())(f.manifest.devDependencies.has(I.identHash)?!A:!l)||a.push({workspace:f,dependency:I});return a}function RVl(e,t,{recursive:r}){let n=new Map,a=new Set,o=[],l=e.configuration.makeResolver(),A={project:e,resolver:l},f=(I,C)=>{let b=e.storedResolutions.get(C.descriptorHash);if(typeof b>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(b))a.add(b);else return;let E=e.storedPackages.get(b);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let N=QE.structUtils.ensureDevirtualizedDescriptor(C);if(l.supportsDescriptor(N,A)){let F=l.getResolutionDependencies(N,A);if(Object.keys(F).length>0)for(let Q of Object.values(F))f(I,Q)}if(QE.structUtils.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let F=QE.structUtils.stringifyIdent(E),Q=QE.miscUtils.getMapWithDefault(n,F);QE.miscUtils.getArrayWithDefault(Q,E.version).push(I)}if(r)for(let F of E.dependencies.values())o.push([E,F])};for(let{workspace:I,dependency:C}of t)o.push([I.anchoredLocator,C]);for(;o.length>0;){let[I,C]=o.shift();f(I,C)}return n}});var VEs=H(nqr=>{"use strict";Object.defineProperty(nqr,"__esModule",{value:!0});var G9t=(Pa(),vi(Va)),FEs=el(),H6=Bn(),NVl=Bn(),x9t=sJ(),fre=($c(),vi(rg)),ZEs=G9t.__importDefault(Ek()),LEs=G9t.__importStar((CZ(),vi(mZ))),Xze=G9t.__importStar(k9t()),Jze=G9t.__importStar(rqr()),Uze=class extends FEs.BaseCommand{constructor(){super(...arguments),this.all=fre.Option.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"}),this.recursive=fre.Option.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"}),this.environment=fre.Option.String("--environment",Xze.Environment.All,{description:"Which environments to cover",validator:LEs.isEnum(Xze.Environment)}),this.json=fre.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.noDeprecations=fre.Option.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"}),this.severity=fre.Option.String("--severity",Xze.Severity.Info,{description:"Minimal severity requested for packages to be displayed",validator:LEs.isEnum(Xze.Severity)}),this.excludes=fre.Option.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"}),this.ignores=fre.Option.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await H6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await H6.Project.find(t,this.context.cwd);if(!n)throw new FEs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=Jze.getTopLevelDependencies(r,n,{all:this.all,environment:this.environment}),o=Jze.getPackages(r,a,{recursive:this.recursive}),l=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes])),A=Object.create(null);for(let[F,Q]of o)l.some(X=>ZEs.default.isMatch(F,X))||(A[F]=[...Q.keys()]);let f=x9t.npmConfigUtils.getAuditRegistry({configuration:t}),I,C=await H6.LightReport.start({configuration:t,stdout:this.context.stdout},async()=>{let F=x9t.npmHttpUtils.post("/-/npm/v1/security/advisories/bulk",A,{authType:x9t.npmHttpUtils.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:f}),Q=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(A),async([ae,ne])=>{let ce=await x9t.npmHttpUtils.getPackageMetadata(NVl.structUtils.parseIdent(ae),{project:r});return H6.miscUtils.mapAndFilter(ne,fe=>{let{deprecated:ue}=ce.versions[fe];return ue?[ae,fe,ue]:H6.miscUtils.mapAndFilter.skip})})),X=await F;for(let[ae,ne,ce]of Q.flat(1))Object.hasOwn(X,ae)&&X[ae].some(fe=>H6.semverUtils.satisfiesWithPrereleases(ne,fe.vulnerable_versions))||(X[ae]??=[],X[ae].push({id:`${ae} (deprecation)`,title:(typeof ce=="string"?ce:"").trim()||"This package has been deprecated.",severity:Xze.Severity.Moderate,vulnerable_versions:ne}));I=X});if(C.hasErrors())return C.exitCode();let b=Jze.getSeverityInclusions(this.severity),E=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores])),N=Object.create(null);for(let[F,Q]of Object.entries(I)){let X=Q.filter(ae=>!ZEs.default.isMatch(`${ae.id}`,E)&&b.has(ae.severity));X.length>0&&(N[F]=X.map(ae=>{let ne=o.get(F);if(typeof ne>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...ne.keys()].filter(ue=>H6.semverUtils.satisfiesWithPrereleases(ue,ae.vulnerable_versions)),fe=new Map;for(let ue of ce)for(let de of ne.get(ue))fe.set(de.locatorHash,de);return{...ae,versions:ce,dependents:[...fe.values()]}}))}let B=Object.keys(N).length>0;return B?(H6.treeUtils.emitTree(Jze.getReportTree(N),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await H6.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async F=>{F.reportInfo(H6.MessageName.EXCEPTION,"No audit suggestions")}),B?1:0)}};Uze.paths=[["npm","audit"]];Uze.usage=fre.Command.Usage({description:"perform a vulnerability audit against the installed packages",details:` +`+o),e.push(a+"m+"+s9t.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=EZl()+t+" "+e[0]}function EZl(){return wD.inspectOpts.hideDate?"":new Date().toISOString()+" "}function SZl(...e){return process.stderr.write(i9t.formatWithOptions(wD.inspectOpts,...e)+` +`)}function vZl(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function BZl(){return process.env.DEBUG}function wZl(e){e.inspectOpts={};let t=Object.keys(wD.inspectOpts);for(let r=0;rt.trim()).join(" ")};ybs.O=function(e){return this.inspectOpts.colors=this.useColors,i9t.inspect(e,this.inspectOpts)}});var tzr=H((aag,ezr)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?ezr.exports=_bs():ezr.exports=bbs()});var a9t=H(nB=>{"use strict";Object.defineProperty(nB,"__esModule",{value:!0});nB.DownloadHTTPError=nB.DownloadLengthMismatchError=nB.DownloadError=nB.ExpiredMetadataError=nB.EqualVersionError=nB.BadVersionError=nB.RepositoryError=nB.PersistError=nB.RuntimeError=nB.ValueError=void 0;var rzr=class extends Error{};nB.ValueError=rzr;var nzr=class extends Error{};nB.RuntimeError=nzr;var izr=class extends Error{};nB.PersistError=izr;var Vze=class extends Error{};nB.RepositoryError=Vze;var o9t=class extends Vze{};nB.BadVersionError=o9t;var szr=class extends o9t{};nB.EqualVersionError=szr;var ozr=class extends Vze{};nB.ExpiredMetadataError=ozr;var Pze=class extends Error{};nB.DownloadError=Pze;var azr=class extends Pze{};nB.DownloadLengthMismatchError=azr;var czr=class extends Pze{statusCode;constructor(t,r){super(t),this.statusCode=r}};nB.DownloadHTTPError=czr});var Sbs=H(kFe=>{"use strict";var uzr=kFe&&kFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(kFe,"__esModule",{value:!0});kFe.withTempFile=void 0;var lzr=uzr(wt("fs/promises")),TZl=uzr(wt("os")),Ebs=uzr(wt("path")),RZl=async e=>NZl(async t=>e(Ebs.default.join(t,"tempfile")));kFe.withTempFile=RZl;var NZl=async e=>{let t=await lzr.default.realpath(TZl.default.tmpdir()),r=await lzr.default.mkdtemp(t+Ebs.default.sep);try{return await e(r)}finally{await lzr.default.rm(r,{force:!0,recursive:!0,maxRetries:3})}}});var Azr=H(que=>{"use strict";var l9t=que&&que.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(que,"__esModule",{value:!0});que.DefaultFetcher=que.BaseFetcher=void 0;var DZl=l9t(tzr()),vbs=l9t(wt("fs")),kZl=l9t(bLt()),xZl=l9t(wt("util")),Bbs=a9t(),GZl=Sbs(),FZl=(0,DZl.default)("tuf:fetch"),c9t=class{async downloadFile(t,r,n){return(0,GZl.withTempFile)(async a=>{let o=await this.fetch(t),l=0,A=vbs.default.createWriteStream(a);try{for await(let f of o){if(l+=f.length,l>r)throw new Bbs.DownloadLengthMismatchError("Max length reached");await ZZl(A,f)}}finally{await xZl.default.promisify(A.close).bind(A)()}return n(a)})}async downloadBytes(t,r){return this.downloadFile(t,r,async n=>{let a=vbs.default.createReadStream(n),o=[];for await(let l of a)o.push(l);return Buffer.concat(o)})}};que.BaseFetcher=c9t;var gzr=class extends c9t{timeout;retry;constructor(t={}){super(),this.timeout=t.timeout,this.retry=t.retry}async fetch(t){FZl("GET %s",t);let r=await(0,kZl.default)(t,{timeout:this.timeout,retry:this.retry});if(!r.ok||!r?.body)throw new Bbs.DownloadHTTPError("Failed to download",r.status);return r.body}};que.DefaultFetcher=gzr;var ZZl=async(e,t)=>new Promise((r,n)=>{e.write(t,a=>{a&&n(a),r(!0)})})});var wbs=H(u9t=>{"use strict";Object.defineProperty(u9t,"__esModule",{value:!0});u9t.defaultConfig=void 0;u9t.defaultConfig={maxRootRotations:256,maxDelegations:32,rootMaxLength:512e3,timestampMaxLength:16384,snapshotMaxLength:2e6,targetsMaxLength:5e6,prefixTargetsWithHash:!0,fetchTimeout:1e5,fetchRetries:void 0,fetchRetry:2}});var Tbs=H(g9t=>{"use strict";Object.defineProperty(g9t,"__esModule",{value:!0});g9t.TrustedMetadataStore=void 0;var wT=r9t(),OS=a9t(),dzr=class{trustedSet={};referenceTime;constructor(t){this.referenceTime=new Date,this.loadTrustedRoot(t)}get root(){if(!this.trustedSet.root)throw new ReferenceError("No trusted root metadata");return this.trustedSet.root}get timestamp(){return this.trustedSet.timestamp}get snapshot(){return this.trustedSet.snapshot}get targets(){return this.trustedSet.targets}getRole(t){return this.trustedSet[t]}updateRoot(t){let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Root,r);if(n.signed.type!=wT.MetadataKind.Root)throw new OS.RepositoryError(`Expected 'root', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Root,n),n.signed.version!=this.root.signed.version+1)throw new OS.BadVersionError(`Expected version ${this.root.signed.version+1}, got ${n.signed.version}`);return n.verifyDelegate(wT.MetadataKind.Root,n),this.trustedSet.root=n,n}updateTimestamp(t){if(this.snapshot)throw new OS.RuntimeError("Cannot update timestamp after snapshot");if(this.root.signed.isExpired(this.referenceTime))throw new OS.ExpiredMetadataError("Final root.json is expired");let r=JSON.parse(t.toString("utf8")),n=wT.Metadata.fromJSON(wT.MetadataKind.Timestamp,r);if(n.signed.type!=wT.MetadataKind.Timestamp)throw new OS.RepositoryError(`Expected 'timestamp', got ${n.signed.type}`);if(this.root.verifyDelegate(wT.MetadataKind.Timestamp,n),this.timestamp){if(n.signed.version{let f=o.signed.meta[l];if(!f)throw new OS.RepositoryError(`Missing file ${l} in new snapshot`);if(f.version{"use strict";Object.defineProperty(pzr,"__esModule",{value:!0});pzr.join=VZl;var LZl=wt("url");function VZl(e,t){return new LZl.URL(PZl(e)+WZl(t)).toString()}function PZl(e){return e.endsWith("/")?e:e+"/"}function WZl(e){return e.startsWith("/")?e.slice(1):e}});var Nbs=H(qH=>{"use strict";var OZl=qH&&qH.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),MZl=qH&&qH.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),hzr=qH&&qH.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;a{await t.verify(xFe.createReadStream(f)),fzr("WRITE %s",a),xFe.copyFileSync(f,a)}),a}async findCachedTarget(t,r){r||(r=this.generateTargetPath(t));try{if(xFe.existsSync(r))return await t.verify(xFe.createReadStream(r)),r}catch{return}}loadLocalMetadata(t){let r=A9t.join(this.dir,`${t}.json`);return fzr("READ %s",r),xFe.readFileSync(r)}async loadRoot(){let r=this.trustedSet.root.signed.version+1,n=r+this.config.maxRootRotations;for(let a=r;a0;){let{roleName:a,parentRoleName:o}=r.pop();if(n.has(a))continue;let l=(await this.loadTargets(a,o))?.signed;if(!l)continue;let A=l.targets?.[t];if(A)return A;if(n.add(a),l.delegations){let f=[],I=l.delegations.rolesForTarget(t);for(let{role:C,terminating:b}of I)if(f.push({roleName:C,parentRoleName:a}),b){r.splice(0);break}f.reverse(),r.push(...f)}}}generateTargetPath(t){if(!this.targetDir)throw new X0e.ValueError("Target directory not set");let r=encodeURIComponent(t.path);return A9t.join(this.targetDir,r)}persistMetadata(t,r){let n=encodeURIComponent(t);try{let a=A9t.join(this.dir,`${n}.json`);fzr("WRITE %s",a),xFe.writeFileSync(a,r.toString("utf8"))}catch(a){throw new X0e.PersistError(`Failed to persist metadata ${n} error: ${a}`)}}};qH.Updater=Izr});var Dbs=H($ue=>{"use strict";Object.defineProperty($ue,"__esModule",{value:!0});$ue.Updater=$ue.BaseFetcher=$ue.TargetFile=void 0;var UZl=r9t();Object.defineProperty($ue,"TargetFile",{enumerable:!0,get:function(){return UZl.TargetFile}});var KZl=Azr();Object.defineProperty($ue,"BaseFetcher",{enumerable:!0,get:function(){return KZl.BaseFetcher}});var jZl=Nbs();Object.defineProperty($ue,"Updater",{enumerable:!0,get:function(){return jZl.Updater}})});var Czr=H(d9t=>{"use strict";Object.defineProperty(d9t,"__esModule",{value:!0});d9t.TUFError=void 0;var mzr=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}};d9t.TUFError=mzr});var kbs=H(Oze=>{"use strict";var zZl=Oze&&Oze.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Oze,"__esModule",{value:!0});Oze.readTarget=$Zl;var qZl=zZl(wt("fs")),p9t=Czr();async function $Zl(e,t){let r=await eLl(e,t);return new Promise((n,a)=>{qZl.default.readFile(r,"utf-8",(o,l)=>{o?a(new p9t.TUFError({code:"TUF_READ_TARGET_ERROR",message:`error reading target ${r}`,cause:o})):n(l)})})}async function eLl(e,t){let r;try{r=await e.getTargetInfo(t)}catch(a){throw new p9t.TUFError({code:"TUF_REFRESH_METADATA_ERROR",message:"error refreshing TUF metadata",cause:a})}if(!r)throw new p9t.TUFError({code:"TUF_FIND_TARGET_ERROR",message:`target ${t} not found`});let n=await e.findCachedTarget(r);if(!n)try{n=await e.downloadTarget(r)}catch(a){throw new p9t.TUFError({code:"TUF_DOWNLOAD_TARGET_ERROR",message:`error downloading target ${n}`,cause:a})}return n}});var xbs=H((mag,tLl)=>{tLl.exports={"https://tuf-repo-cdn.sigstore.dev":{"root.json":"ewogInNpZ25hdHVyZXMiOiBbCiAgewogICAia2V5aWQiOiAiNmYyNjAwODlkNTkyM2RhZjIwMTY2Y2E2NTdjNTQzYWY2MTgzNDZhYjk3MTg4NGE5OTk2MmIwMTk4OGJiZTBjMyIsCiAgICJzaWciOiAiIgogIH0sCiAgewogICAia2V5aWQiOiAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICJzaWciOiAiMzA0NTAyMjEwMGIwYmNmMTg5Y2UxYjkzZTdkYjk2NDlkNWJlNTEyYTE4ODBjMGUzNTg4NzBlMzkzM2U0MjZjNWFmYjhhNDA2MTAwMjIwNmQyMTRiZDc5YjA5ZjQ1OGNjYzUyMWEyOTBhYTk2MGM0MTcwMTRmYzE2ZTYwNmY4MjA5MWI1ZTMxODE0ODg2YSIKICB9LAogIHsKICAgImtleWlkIjogIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAic2lnIjogIiIKICB9LAogIHsKICAgImtleWlkIjogIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAic2lnIjogIjMwNDUwMjIxMDBhOWI5ZTI5NGVjMjFiNjJkZmNhNmExNmExOWQwODQxODJjMTI1NzJlMzNkOWM0ZGNhYjUzMTdmYTFlOGE0NTlkMDIyMDY5ZjY4ZTU1ZWExZjk1YzVhMzY3YWFjN2E2MWE2NTc1N2Y5M2RhNWEwMDZhNWY0ZDFjZjk5NWJlODEyZDc2MDIiCiAgfSwKICB7CiAgICJrZXlpZCI6ICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIiwKICAgInNpZyI6ICIzMDQ0MDIyMDc4MTE3OGVjMzkxNWNiMTZhY2E3NTdkNDBlMjg0MzVhYzUzNzhkNmI0ODdhY2IxMTFkMWVlYjMzOTM5N2Y3OWEwMjIwNzgxY2NlNDhhZTQ2ZjllNDdiOTdhODQxNGZjZjQ2NmE5ODY3MjZhNTg5NmM3MmEwZTRhYmEzMTYyY2I4MjZkZCIKICB9CiBdLAogInNpZ25lZCI6IHsKICAiX3R5cGUiOiAicm9vdCIsCiAgImNvbnNpc3RlbnRfc25hcHNob3QiOiB0cnVlLAogICJleHBpcmVzIjogIjIwMjUtMDgtMTlUMTQ6MzM6MDlaIiwKICAia2V5cyI6IHsKICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVXUmlHcjUraiszSjVTc0grWnRyNW5FMkgyd083XG5CVituTzNzOTNnTGNhMThxVE96SFkxb1d5QUdEeWtNU3NHVFVCU3Q5RCtBbjBLZktzRDJtZlNNNDJRPT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2ktb25saW5lLXVyaSI6ICJnY3BrbXM6cHJvamVjdHMvc2lnc3RvcmUtcm9vdC1zaWduaW5nL2xvY2F0aW9ucy9nbG9iYWwva2V5UmluZ3Mvcm9vdC9jcnlwdG9LZXlzL3RpbWVzdGFtcC9jcnlwdG9LZXlWZXJzaW9ucy8xIgogICB9LAogICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiI6IHsKICAgICJrZXlpZF9oYXNoX2FsZ29yaXRobXMiOiBbCiAgICAgInNoYTI1NiIsCiAgICAgInNoYTUxMiIKICAgIF0sCiAgICAia2V5dHlwZSI6ICJlY2RzYSIsCiAgICAia2V5dmFsIjogewogICAgICJwdWJsaWMiOiAiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRXpCelZPbUhDUG9qTVZMU0kzNjRXaWlWOE5QckRcbjZJZ1J4Vmxpc2t6L3YreTNKRVI1bWNWR2NPTmxpRGNXTUM1SjJsZkhtalBOUGhiNEg3eG04THpmU0E9PVxuLS0tLS1FTkQgUFVCTElDIEtFWS0tLS0tXG4iCiAgICB9LAogICAgInNjaGVtZSI6ICJlY2RzYS1zaGEyLW5pc3RwMjU2IiwKICAgICJ4LXR1Zi1vbi1jaS1rZXlvd25lciI6ICJAc2FudGlhZ290b3JyZXMiCiAgIH0sCiAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaW5pa1NzQVFtWWtOZUg1ZVlxL0NuSXpMYWFjT1xueGxTYWF3UURPd3FLeS90Q3F4cTV4eFBTSmMyMUs0V0loczlHeU9rS2Z6dWVZM0dJTHpjTUpaNGNXdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBib2JjYWxsYXdheSIKICAgfSwKICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUV5OFhLc21oQllESThKYzBHd3pCeGVLYXgwY201XG5TVEtFVTY1SFBGdW5VbjQxc1Q4cGkwRmpNNElrSHovWVVtd21MVU8wV3Q3bHhoajZCa0xJSzRxWUF3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQGRsb3JlbmMiCiAgIH0sCiAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIjogewogICAgImtleWlkX2hhc2hfYWxnb3JpdGhtcyI6IFsKICAgICAic2hhMjU2IiwKICAgICAic2hhNTEyIgogICAgXSwKICAgICJrZXl0eXBlIjogImVjZHNhIiwKICAgICJrZXl2YWwiOiB7CiAgICAgInB1YmxpYyI6ICItLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLVxuTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFMGdocmg5Mkx3MVlyM2lkR1Y1V3FDdE1EQjhDeFxuK0Q4aGRDNHcyWkxOSXBsVlJvVkdMc2tZYTNnaGVNeU9qaUo4a1BpMTVhUTIvLzdQK29qN1V2SlBHdz09XG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS1cbiIKICAgIH0sCiAgICAic2NoZW1lIjogImVjZHNhLXNoYTItbmlzdHAyNTYiLAogICAgIngtdHVmLW9uLWNpLWtleW93bmVyIjogIkBqb3NodWFnbCIKICAgfSwKICAgImU3MWE1NGQ1NDM4MzViYTg2YWRhZDk0NjAzNzljNzY0MWZiODcyNmQxNjRlYTc2NjgwMWExYzUyMmFiYTdlYTIiOiB7CiAgICAia2V5aWRfaGFzaF9hbGdvcml0aG1zIjogWwogICAgICJzaGEyNTYiLAogICAgICJzaGE1MTIiCiAgICBdLAogICAgImtleXR5cGUiOiAiZWNkc2EiLAogICAgImtleXZhbCI6IHsKICAgICAicHVibGljIjogIi0tLS0tQkVHSU4gUFVCTElDIEtFWS0tLS0tXG5NRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVFWHN6M1NaWEZiOGpNVjQyajZwSmx5amJqUjhLXG5OM0J3b2NleHE2TE1JYjVxc1dLT1F2TE4xNk5VZWZMYzRIc3dPb3VtUnNWVmFhalNwUVM2Zm9ia1J3PT1cbi0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLVxuIgogICAgfSwKICAgICJzY2hlbWUiOiAiZWNkc2Etc2hhMi1uaXN0cDI1NiIsCiAgICAieC10dWYtb24tY2kta2V5b3duZXIiOiAiQG1ubTY3OCIKICAgfQogIH0sCiAgInJvbGVzIjogewogICAicm9vdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjZmMjYwMDg5ZDU5MjNkYWYyMDE2NmNhNjU3YzU0M2FmNjE4MzQ2YWI5NzE4ODRhOTk5NjJiMDE5ODhiYmUwYzMiLAogICAgICJlNzFhNTRkNTQzODM1YmE4NmFkYWQ5NDYwMzc5Yzc2NDFmYjg3MjZkMTY0ZWE3NjY4MDFhMWM1MjJhYmE3ZWEyIiwKICAgICAiMjJmNGNhZWM2ZDhlNmY5NTU1YWY2NmIzZDRjM2NiMDZhM2JiMjNmZGM3ZTM5YzkxNmM2MWY0NjJlNmY1MmIwNiIsCiAgICAgIjYxNjQzODM4MTI1YjQ0MGI0MGRiNjk0MmY1Y2I1YTMxYzBkYzA0MzY4MzE2ZWIyYWFhNThiOTU5MDRhNTgyMjIiLAogICAgICJhNjg3ZTViZjRmYWI4MmIwZWU1OGQ0NmUwNWM5NTM1MTQ1YTJjOWFmYjQ1OGY0M2Q0MmI0NWNhMGZkY2UyYTcwIgogICAgXSwKICAgICJ0aHJlc2hvbGQiOiAzCiAgIH0sCiAgICJzbmFwc2hvdCI6IHsKICAgICJrZXlpZHMiOiBbCiAgICAgIjBjODc0MzJjM2JmMDlmZDk5MTg5ZmRjMzJmYTVlYWVkZjRlNGE1ZmFjN2JhYjczZmEwNGEyZTBmYzY0YWY2ZjUiCiAgICBdLAogICAgInRocmVzaG9sZCI6IDEsCiAgICAieC10dWYtb24tY2ktZXhwaXJ5LXBlcmlvZCI6IDM2NTAsCiAgICAieC10dWYtb24tY2ktc2lnbmluZy1wZXJpb2QiOiAzNjUKICAgfSwKICAgInRhcmdldHMiOiB7CiAgICAia2V5aWRzIjogWwogICAgICI2ZjI2MDA4OWQ1OTIzZGFmMjAxNjZjYTY1N2M1NDNhZjYxODM0NmFiOTcxODg0YTk5OTYyYjAxOTg4YmJlMGMzIiwKICAgICAiZTcxYTU0ZDU0MzgzNWJhODZhZGFkOTQ2MDM3OWM3NjQxZmI4NzI2ZDE2NGVhNzY2ODAxYTFjNTIyYWJhN2VhMiIsCiAgICAgIjIyZjRjYWVjNmQ4ZTZmOTU1NWFmNjZiM2Q0YzNjYjA2YTNiYjIzZmRjN2UzOWM5MTZjNjFmNDYyZTZmNTJiMDYiLAogICAgICI2MTY0MzgzODEyNWI0NDBiNDBkYjY5NDJmNWNiNWEzMWMwZGMwNDM2ODMxNmViMmFhYTU4Yjk1OTA0YTU4MjIyIiwKICAgICAiYTY4N2U1YmY0ZmFiODJiMGVlNThkNDZlMDVjOTUzNTE0NWEyYzlhZmI0NThmNDNkNDJiNDVjYTBmZGNlMmE3MCIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMwogICB9LAogICAidGltZXN0YW1wIjogewogICAgImtleWlkcyI6IFsKICAgICAiMGM4NzQzMmMzYmYwOWZkOTkxODlmZGMzMmZhNWVhZWRmNGU0YTVmYWM3YmFiNzNmYTA0YTJlMGZjNjRhZjZmNSIKICAgIF0sCiAgICAidGhyZXNob2xkIjogMSwKICAgICJ4LXR1Zi1vbi1jaS1leHBpcnktcGVyaW9kIjogNywKICAgICJ4LXR1Zi1vbi1jaS1zaWduaW5nLXBlcmlvZCI6IDYKICAgfQogIH0sCiAgInNwZWNfdmVyc2lvbiI6ICIxLjAiLAogICJ2ZXJzaW9uIjogMTIsCiAgIngtdHVmLW9uLWNpLWV4cGlyeS1wZXJpb2QiOiAxOTcsCiAgIngtdHVmLW9uLWNpLXNpZ25pbmctcGVyaW9kIjogNDYKIH0KfQ==",targets:{"trusted_root.json":"ewogICJtZWRpYVR5cGUiOiAiYXBwbGljYXRpb24vdm5kLmRldi5zaWdzdG9yZS50cnVzdGVkcm9vdCtqc29uO3ZlcnNpb249MC4xIiwKICAidGxvZ3MiOiBbCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vcmVrb3Iuc2lnc3RvcmUuZGV2IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUyRzJZKzJ0YWJkVFY1QmNHaUJJeDBhOWZBRndya0JibUxTR3RrczRMM3FYNnlZWTB6dWZCbmhDOFVyL2l5NTVHaFdQLzlBL2JZMkxoQzMwTTkrUll0dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDEtMTJUMTE6NTM6MjcuMDAwWiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAid05JOWF0UUdseitWV2ZPNkxSeWdINFFVZlkvOFc0UkZ3aVQ1aTVXUmdCMD0iCiAgICAgIH0KICAgIH0KICBdLAogICJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjogWwogICAgewogICAgICAic3ViamVjdCI6IHsKICAgICAgICAib3JnYW5pemF0aW9uIjogInNpZ3N0b3JlLmRldiIsCiAgICAgICAgImNvbW1vbk5hbWUiOiAic2lnc3RvcmUiCiAgICAgIH0sCiAgICAgICJ1cmkiOiAiaHR0cHM6Ly9mdWxjaW8uc2lnc3RvcmUuZGV2IiwKICAgICAgImNlcnRDaGFpbiI6IHsKICAgICAgICAiY2VydGlmaWNhdGVzIjogWwogICAgICAgICAgewogICAgICAgICAgICAicmF3Qnl0ZXMiOiAiTUlJQitEQ0NBWDZnQXdJQkFnSVROVmtEWm9DaW9mUERzeTdkZm02Z2VMYnVoekFLQmdncWhrak9QUVFEQXpBcU1SVXdFd1lEVlFRS0V3eHphV2R6ZEc5eVpTNWtaWFl4RVRBUEJnTlZCQU1UQ0hOcFozTjBiM0psTUI0WERUSXhNRE13TnpBek1qQXlPVm9YRFRNeE1ESXlNekF6TWpBeU9Wb3dLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQjJNQkFHQnlxR1NNNDlBZ0VHQlN1QkJBQWlBMklBQkxTeUE3SWk1aytwTk84WkVXWTB5bGVtV0Rvd09rTmEza0wrR1pFNVo1R1dlaEw5L0E5YlJOQTNSYnJzWjVpMEpjYXN0YVJMN1NwNWZwL2pENWR4cWMvVWRUVm5sdlMxNmFuKzJZZnN3ZS9RdUxvbFJVQ3JjT0UyKzJpQTUrdHpkNk5tTUdRd0RnWURWUjBQQVFIL0JBUURBZ0VHTUJJR0ExVWRFd0VCL3dRSU1BWUJBZjhDQVFFd0hRWURWUjBPQkJZRUZNakZIUUJCbWlRcE1sRWs2dzJ1U3UxS0J0UHNNQjhHQTFVZEl3UVlNQmFBRk1qRkhRQkJtaVFwTWxFazZ3MnVTdTFLQnRQc01Bb0dDQ3FHU000OUJBTURBMmdBTUdVQ01IOGxpV0pmTXVpNnZYWEJoakRnWTRNd3NsbU4vVEp4VmUvODNXckZvbXdtTmYwNTZ5MVg0OEY5YzRtM2Ezb3pYQUl4QUtqUmF5NS9hai9qc0tLR0lrbVFhdGpJOHV1cEhyLytDeEZ2YUpXbXBZcU5rTERHUlUrOW9yemg1aEkyUnJjdWFRPT0iCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMDdUMDM6MjA6MjkuMDAwWiIsCiAgICAgICAgImVuZCI6ICIyMDIyLTEyLTMxVDIzOjU5OjU5Ljk5OVoiCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJzdWJqZWN0IjogewogICAgICAgICJvcmdhbml6YXRpb24iOiAic2lnc3RvcmUuZGV2IiwKICAgICAgICAiY29tbW9uTmFtZSI6ICJzaWdzdG9yZSIKICAgICAgfSwKICAgICAgInVyaSI6ICJodHRwczovL2Z1bGNpby5zaWdzdG9yZS5kZXYiLAogICAgICAiY2VydENoYWluIjogewogICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCiAgICAgICAgICB7CiAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNSUlDR2pDQ0FhR2dBd0lCQWdJVUFMblZpVmZuVTBickphc21Sa0hybi9VbmZhUXdDZ1lJS29aSXpqMEVBd013S2pFVk1CTUdBMVVFQ2hNTWMybG5jM1J2Y21VdVpHVjJNUkV3RHdZRFZRUURFd2h6YVdkemRHOXlaVEFlRncweU1qQTBNVE15TURBMk1UVmFGdzB6TVRFd01EVXhNelUyTlRoYU1EY3hGVEFUQmdOVkJBb1RESE5wWjNOMGIzSmxMbVJsZGpFZU1Cd0dBMVVFQXhNVmMybG5jM1J2Y21VdGFXNTBaWEp0WldScFlYUmxNSFl3RUFZSEtvWkl6ajBDQVFZRks0RUVBQ0lEWWdBRThSVlMveXNIK05PdnVEWnlQSVp0aWxnVUY5TmxhcllwQWQ5SFAxdkJCSDFVNUNWNzdMU1M3czBaaUg0bkU3SHY3cHRTNkx2dlIvU1RrNzk4TFZnTXpMbEo0SGVJZkYzdEhTYWV4TGNZcFNBU3Ixa1MwTi9SZ0JKei85aldDaVhubzNzd2VUQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0V3WURWUjBsQkF3d0NnWUlLd1lCQlFVSEF3TXdFZ1lEVlIwVEFRSC9CQWd3QmdFQi93SUJBREFkQmdOVkhRNEVGZ1FVMzlQcHoxWWtFWmI1cU5qcEtGV2l4aTRZWkQ4d0h3WURWUjBqQkJnd0ZvQVVXTUFlWDVGRnBXYXBlc3lRb1pNaTBDckZ4Zm93Q2dZSUtvWkl6ajBFQXdNRFp3QXdaQUl3UENzUUs0RFlpWllEUElhRGk1SEZLbmZ4WHg2QVNTVm1FUmZzeW5ZQmlYMlg2U0pSblpVODQvOURaZG5GdnZ4bUFqQk90NlFwQmxjNEovMER4dmtUQ3FwY2x2emlMNkJDQ1BuamRsSUIzUHUzQnhzUG15Z1VZN0lpMnpiZENkbGlpb3c9IgogICAgICAgICAgfSwKICAgICAgICAgIHsKICAgICAgICAgICAgInJhd0J5dGVzIjogIk1JSUI5ekNDQVh5Z0F3SUJBZ0lVQUxaTkFQRmR4SFB3amVEbG9Ed3lZQ2hBTy80d0NnWUlLb1pJemowRUF3TXdLakVWTUJNR0ExVUVDaE1NYzJsbmMzUnZjbVV1WkdWMk1SRXdEd1lEVlFRREV3aHphV2R6ZEc5eVpUQWVGdzB5TVRFd01EY3hNelUyTlRsYUZ3MHpNVEV3TURVeE16VTJOVGhhTUNveEZUQVRCZ05WQkFvVERITnBaM04wYjNKbExtUmxkakVSTUE4R0ExVUVBeE1JYzJsbmMzUnZjbVV3ZGpBUUJnY3Foa2pPUFFJQkJnVXJnUVFBSWdOaUFBVDdYZUZUNHJiM1BRR3dTNElhanRMazMvT2xucGdhbmdhQmNsWXBzWUJyNWkrNHluQjA3Y2ViM0xQME9JT1pkeGV4WDY5YzVpVnV5SlJRK0h6MDV5aStVRjN1QldBbEhwaVM1c2gwK0gyR0hFN1NYcmsxRUM1bTFUcjE5TDlnZzkyall6QmhNQTRHQTFVZER3RUIvd1FFQXdJQkJqQVBCZ05WSFJNQkFmOEVCVEFEQVFIL01CMEdBMVVkRGdRV0JCUll3QjVma1VXbFpxbDZ6SkNoa3lMUUtzWEYrakFmQmdOVkhTTUVHREFXZ0JSWXdCNWZrVVdsWnFsNnpKQ2hreUxRS3NYRitqQUtCZ2dxaGtqT1BRUURBd05wQURCbUFqRUFqMW5IZVhacCsxM05XQk5hK0VEc0RQOEcxV1dnMXRDTVdQL1dIUHFwYVZvMGpoc3dlTkZaZ1NzMGVFN3dZSTRxQWpFQTJXQjlvdDk4c0lrb0YzdlpZZGQzL1Z0V0I1YjlUTk1lYTdJeC9zdEo1VGZjTExlQUJMRTRCTkpPc1E0dm5CSEoiCiAgICAgICAgICB9CiAgICAgICAgXQogICAgICB9LAogICAgICAidmFsaWRGb3IiOiB7CiAgICAgICAgInN0YXJ0IjogIjIwMjItMDQtMTNUMjA6MDY6MTUuMDAwWiIKICAgICAgfQogICAgfQogIF0sCiAgImN0bG9ncyI6IFsKICAgIHsKICAgICAgImJhc2VVcmwiOiAiaHR0cHM6Ly9jdGZlLnNpZ3N0b3JlLmRldi90ZXN0IiwKICAgICAgImhhc2hBbGdvcml0aG0iOiAiU0hBMl8yNTYiLAogICAgICAicHVibGljS2V5IjogewogICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUViZndSK1JKdWRYc2NnUkJScEtYMVhGRHkzUHl1ZER4ei9TZm5SaTFmVDhla3BmQmQyTzF1b3o3anIzWjhuS3p4QTY5RVVRK2VGQ0ZJM3pldWJQV1U3dz09IiwKICAgICAgICAia2V5RGV0YWlscyI6ICJQS0lYX0VDRFNBX1AyNTZfU0hBXzI1NiIsCiAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgInN0YXJ0IjogIjIwMjEtMDMtMTRUMDA6MDA6MDAuMDAwWiIsCiAgICAgICAgICAiZW5kIjogIjIwMjItMTAtMzFUMjM6NTk6NTkuOTk5WiIKICAgICAgICB9CiAgICAgIH0sCiAgICAgICJsb2dJZCI6IHsKICAgICAgICAia2V5SWQiOiAiQ0dDUzhDaFMvMmhGMGRGcko0U2NSV2NZckJZOXd6alNiZWE4SWdZMmIzST0iCiAgICAgIH0KICAgIH0sCiAgICB7CiAgICAgICJiYXNlVXJsIjogImh0dHBzOi8vY3RmZS5zaWdzdG9yZS5kZXYvMjAyMiIsCiAgICAgICJoYXNoQWxnb3JpdGhtIjogIlNIQTJfMjU2IiwKICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAicmF3Qnl0ZXMiOiAiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFaVBTbEZpMENtRlRmRWpDVXFGOUh1Q0VjWVhOS0FhWWFsSUptQlo4eXllelBqVHFoeHJLQnBNbmFvY1Z0TEpCSTFlTTN1WG5RelFHQUpkSjRnczlGeXc9PSIsCiAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICJzdGFydCI6ICIyMDIyLTEwLTIwVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgfQogICAgICB9LAogICAgICAibG9nSWQiOiB7CiAgICAgICAgImtleUlkIjogIjNUMHdhc2JIRVRKakdSNGNtV2MzQXFKS1hyamVQSzMvaDRweWdDOHA3bzQ9IgogICAgICB9CiAgICB9CiAgXQp9Cg==","registry.npmjs.org%2Fkeys.json":"ewogICAgImtleXMiOiBbCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OmpsM2J3c3d1ODBQampva0NnaDBvMnc1YzJVNExoUUFFNTdnajljejFrekEiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRTFPbGIzek1BRkZ4WEtIaUlrUU81Y0ozWWhsNWk2VVBwK0lodXRlQkpidUhjQTVVb2dLbzBFV3RsV3dXNktTYUtvVE5FWUw3SmxDUWlWbmtoQmt0VWdnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIxOTk5LTAxLTAxVDAwOjAwOjAwLjAwMFoiLAogICAgICAgICAgICAgICAgICAgICJlbmQiOiAiMjAyNS0wMS0yOVQwMDowMDowMC4wMDBaIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgICJrZXlJZCI6ICJTSEEyNTY6amwzYndzd3U4MFBqam9rQ2doMG8ydzVjMlU0TGhRQUU1N2dqOWN6MWt6QSIsCiAgICAgICAgICAgICJrZXlVc2FnZSI6ICJucG06YXR0ZXN0YXRpb25zIiwKICAgICAgICAgICAgInB1YmxpY0tleSI6IHsKICAgICAgICAgICAgICAgICJyYXdCeXRlcyI6ICJNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUUxT2xiM3pNQUZGeFhLSGlJa1FPNWNKM1lobDVpNlVQcCtJaHV0ZUJKYnVIY0E1VW9nS28wRVd0bFd3VzZLU2FLb1RORVlMN0psQ1FpVm5raEJrdFVnZz09IiwKICAgICAgICAgICAgICAgICJrZXlEZXRhaWxzIjogIlBLSVhfRUNEU0FfUDI1Nl9TSEFfMjU2IiwKICAgICAgICAgICAgICAgICJ2YWxpZEZvciI6IHsKICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMjAyMi0xMi0wMVQwMDowMDowMC4wMDBaIiwKICAgICAgICAgICAgICAgICAgICAiZW5kIjogIjIwMjUtMDEtMjlUMDA6MDA6MDAuMDAwWiIKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICAia2V5SWQiOiAiU0hBMjU2OkRoUTh3UjVBUEJ2RkhMRi8rVGMrQVl2UE9kVHBjSURxT2h4c0JIUndDN1UiLAogICAgICAgICAgICAia2V5VXNhZ2UiOiAibnBtOnNpZ25hdHVyZXMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgImtleUlkIjogIlNIQTI1NjpEaFE4d1I1QVBCdkZITEYvK1RjK0FZdlBPZFRwY0lEcU9oeHNCSFJ3QzdVIiwKICAgICAgICAgICAgImtleVVzYWdlIjogIm5wbTphdHRlc3RhdGlvbnMiLAogICAgICAgICAgICAicHVibGljS2V5IjogewogICAgICAgICAgICAgICAgInJhd0J5dGVzIjogIk1Ga3dFd1lIS29aSXpqMENBUVlJS29aSXpqMERBUWNEUWdBRVk2WWE3VysrN2FVUHp2TVRyZXpINlljeDNjK0hPS1lDY05HeWJKWlNDSnEvZmQ3UWE4dXVBS3RkSWtVUXRRaUVLRVJoQW1FNWxNTUpoUDhPa0RPYTJnPT0iLAogICAgICAgICAgICAgICAgImtleURldGFpbHMiOiAiUEtJWF9FQ0RTQV9QMjU2X1NIQV8yNTYiLAogICAgICAgICAgICAgICAgInZhbGlkRm9yIjogewogICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIyMDI1LTAxLTEzVDAwOjAwOjAwLjAwMFoiCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBdCn0K"}}}});var Fbs=H(GFe=>{"use strict";var Gbs=GFe&&GFe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(GFe,"__esModule",{value:!0});GFe.TUFClient=void 0;var ege=Gbs(wt("fs")),Mze=Gbs(wt("path")),rLl=Dbs(),nLl=f9t(),iLl=kbs(),yzr="targets",_zr=class{constructor(t){let r=new URL(t.mirrorURL),n=encodeURIComponent(r.host+r.pathname.replace(/\/$/,"")),a=Mze.default.join(t.cachePath,n);sLl(a),oLl({cachePath:a,mirrorURL:t.mirrorURL,tufRootPath:t.rootPath,forceInit:t.forceInit}),this.updater=aLl({mirrorURL:t.mirrorURL,cachePath:a,forceCache:t.forceCache,retry:t.retry,timeout:t.timeout})}async refresh(){return this.updater.refresh()}getTarget(t){return(0,iLl.readTarget)(this.updater,t)}};GFe.TUFClient=_zr;function sLl(e){let t=Mze.default.join(e,yzr);ege.default.existsSync(e)||ege.default.mkdirSync(e,{recursive:!0}),ege.default.existsSync(t)||ege.default.mkdirSync(t)}function oLl({cachePath:e,mirrorURL:t,tufRootPath:r,forceInit:n}){let a=Mze.default.join(e,"root.json");if(!ege.default.existsSync(a)||n)if(r)ege.default.copyFileSync(r,a);else{let l=xbs()[t];if(!l)throw new nLl.TUFError({code:"TUF_INIT_CACHE_ERROR",message:`No root.json found for mirror: ${t}`});ege.default.writeFileSync(a,Buffer.from(l["root.json"],"base64")),Object.entries(l.targets).forEach(([A,f])=>{ege.default.writeFileSync(Mze.default.join(e,yzr,A),Buffer.from(f,"base64"))})}}function aLl(e){let t={fetchTimeout:e.timeout,fetchRetry:e.retry};return new rLl.Updater({metadataBaseUrl:e.mirrorURL,targetBaseUrl:`${e.mirrorURL}/targets`,metadataDir:e.cachePath,targetDir:Mze.default.join(e.cachePath,yzr),forceCache:e.forceCache,config:t})}});var f9t=H(dre=>{"use strict";Object.defineProperty(dre,"__esModule",{value:!0});dre.TUFError=dre.DEFAULT_MIRROR_URL=void 0;dre.getTrustedRoot=fLl;dre.initTUF=ILl;var cLl=b7e(),lLl=_ys(),uLl=Fbs();dre.DEFAULT_MIRROR_URL="https://tuf-repo-cdn.sigstore.dev";var gLl="sigstore-js",ALl={retries:2},dLl=5e3,pLl="trusted_root.json";async function fLl(e={}){let r=await Zbs(e).getTarget(pLl);return cLl.TrustedRoot.fromJSON(JSON.parse(r))}async function ILl(e={}){let t=Zbs(e);return t.refresh().then(()=>t)}function Zbs(e){return new uLl.TUFClient({cachePath:e.cachePath||(0,lLl.appDataPath)(gLl),rootPath:e.rootPath,mirrorURL:e.mirrorURL||dre.DEFAULT_MIRROR_URL,retry:e.retry??ALl,timeout:e.timeout??dLl,forceCache:e.forceCache??!1,forceInit:e.forceInit??e.force??!1})}var hLl=Czr();Object.defineProperty(dre,"TUFError",{enumerable:!0,get:function(){return hLl.TUFError}})});var Lbs=H(I9t=>{"use strict";Object.defineProperty(I9t,"__esModule",{value:!0});I9t.DSSESignatureContent=void 0;var Hze=jV(),bzr=class{constructor(t){this.env=t}compareDigest(t){return Hze.crypto.bufferEqual(t,Hze.crypto.digest("sha256",this.env.payload))}compareSignature(t){return Hze.crypto.bufferEqual(t,this.signature)}verifySignature(t){return Hze.crypto.verify(this.preAuthEncoding,t,this.signature)}get signature(){return this.env.signatures.length>0?this.env.signatures[0].sig:Buffer.from("")}get preAuthEncoding(){return Hze.dsse.preAuthEncoding(this.env.payloadType,this.env.payload)}};I9t.DSSESignatureContent=bzr});var Vbs=H(h9t=>{"use strict";Object.defineProperty(h9t,"__esModule",{value:!0});h9t.MessageSignatureContent=void 0;var Ezr=jV(),Szr=class{constructor(t,r){this.signature=t.signature,this.messageDigest=t.messageDigest.digest,this.artifact=r}compareSignature(t){return Ezr.crypto.bufferEqual(t,this.signature)}compareDigest(t){return Ezr.crypto.bufferEqual(t,this.messageDigest)}verifySignature(t){return Ezr.crypto.verify(this.artifact,t,this.signature)}};h9t.MessageSignatureContent=Szr});var Wbs=H(m9t=>{"use strict";Object.defineProperty(m9t,"__esModule",{value:!0});m9t.toSignedEntity=_Ll;m9t.signatureContent=Pbs;var vzr=jV(),mLl=Lbs(),CLl=Vbs();function _Ll(e,t){let{tlogEntries:r,timestampVerificationData:n}=e.verificationMaterial,a=[];for(let o of r)a.push({$case:"transparency-log",tlogEntry:o});for(let o of n?.rfc3161Timestamps??[])a.push({$case:"timestamp-authority",timestamp:vzr.RFC3161Timestamp.parse(o.signedTimestamp)});return{signature:Pbs(e,t),key:yLl(e),tlogEntries:r,timestamps:a}}function Pbs(e,t){switch(e.content.$case){case"dsseEnvelope":return new mLl.DSSESignatureContent(e.content.dsseEnvelope);case"messageSignature":return new CLl.MessageSignatureContent(e.content.messageSignature,t)}}function yLl(e){switch(e.verificationMaterial.content.$case){case"publicKey":return{$case:"public-key",hint:e.verificationMaterial.content.publicKey.hint};case"x509CertificateChain":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.x509CertificateChain.certificates[0].rawBytes)};case"certificate":return{$case:"certificate",certificate:vzr.X509Certificate.parse(e.verificationMaterial.content.certificate.rawBytes)}}}});var Ix=H(FFe=>{"use strict";Object.defineProperty(FFe,"__esModule",{value:!0});FFe.PolicyError=FFe.VerificationError=void 0;var C9t=class extends Error{constructor({code:t,message:r,cause:n}){super(r),this.code=t,this.cause=n,this.name=this.constructor.name}},Bzr=class extends C9t{};FFe.VerificationError=Bzr;var wzr=class extends C9t{};FFe.PolicyError=wzr});var Obs=H(_9t=>{"use strict";Object.defineProperty(_9t,"__esModule",{value:!0});_9t.filterCertAuthorities=bLl;_9t.filterTLogAuthorities=ELl;function bLl(e,t){return e.filter(r=>r.validFor.start<=t&&r.validFor.end>=t)}function ELl(e,t){return e.filter(r=>t.logID&&!r.logID.equals(t.logID)?!1:r.validFor.start<=t.targetDate&&t.targetDate<=r.validFor.end)}});var U0e=H(J0e=>{"use strict";Object.defineProperty(J0e,"__esModule",{value:!0});J0e.filterTLogAuthorities=J0e.filterCertAuthorities=void 0;J0e.toTrustMaterial=vLl;var Tzr=jV(),Yze=b7e(),SLl=Ix(),Rzr=new Date(0),Nzr=new Date(864e13),Ybs=Obs();Object.defineProperty(J0e,"filterCertAuthorities",{enumerable:!0,get:function(){return Ybs.filterCertAuthorities}});Object.defineProperty(J0e,"filterTLogAuthorities",{enumerable:!0,get:function(){return Ybs.filterTLogAuthorities}});function vLl(e,t){let r=typeof t=="function"?t:BLl(t);return{certificateAuthorities:e.certificateAuthorities.map(Hbs),timestampAuthorities:e.timestampAuthorities.map(Hbs),tlogs:e.tlogs.map(Mbs),ctlogs:e.ctlogs.map(Mbs),publicKey:r}}function Mbs(e){let t=e.publicKey.keyDetails,r=t===Yze.PublicKeyDetails.PKCS1_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V5||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_2048_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_3072_SHA256||t===Yze.PublicKeyDetails.PKIX_RSA_PKCS1V15_4096_SHA256?"pkcs1":"spki";return{logID:e.logId.keyId,publicKey:Tzr.crypto.createPublicKey(e.publicKey.rawBytes,r),validFor:{start:e.publicKey.validFor?.start||Rzr,end:e.publicKey.validFor?.end||Nzr}}}function Hbs(e){return{certChain:e.certChain.certificates.map(t=>Tzr.X509Certificate.parse(t.rawBytes)),validFor:{start:e.validFor?.start||Rzr,end:e.validFor?.end||Nzr}}}function BLl(e){return t=>{let r=(e||{})[t];if(!r)throw new SLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:Tzr.crypto.createPublicKey(r.rawBytes),validFor:n=>(r.validFor?.start||Rzr)<=n&&(r.validFor?.end||Nzr)>=n}}}});var Dzr=H(Qze=>{"use strict";Object.defineProperty(Qze,"__esModule",{value:!0});Qze.CertificateChainVerifier=void 0;Qze.verifyCertificateChain=TLl;var tge=Ix(),wLl=U0e();function TLl(e,t,r){let n=(0,wLl.filterCertAuthorities)(r,e),a;for(let o of n)try{return new y9t({trustedCerts:o.certChain,untrustedCert:t,timestamp:e}).verify()}catch(l){a=l}throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"Failed to verify certificate chain",cause:a})}var y9t=class{constructor(t){this.untrustedCert=t.untrustedCert,this.trustedCerts=t.trustedCerts,this.localCerts=RLl([...t.trustedCerts,t.untrustedCert]),this.timestamp=t.timestamp}verify(){let t=this.sort();if(this.checkPath(t),!t.every(n=>n.validForDate(this.timestamp)))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate is not valid or expired at the specified date"});return t}sort(){let t=this.untrustedCert,r=this.buildPaths(t);if(r=r.filter(a=>a.some(o=>this.trustedCerts.includes(o))),r.length===0)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"no trusted certificate path found"});let n=r.reduce((a,o)=>a.length{if(n&&a.extSubjectKeyID){a.extSubjectKeyID.keyIdentifier.equals(n)&&r.push(a);return}a.subject.equals(t.issuer)&&r.push(a)}),r=r.filter(a=>{try{return t.verify(a)}catch{return!1}}),r)}checkPath(t){if(t.length<1)throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"certificate chain must contain at least one certificate"});if(!t.slice(1).every(n=>n.isCA))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"intermediate certificate is not a CA"});for(let n=t.length-2;n>=0;n--)if(!t[n].issuer.equals(t[n+1].subject))throw new tge.VerificationError({code:"CERTIFICATE_ERROR",message:"incorrect certificate name chaining"});for(let n=0;n{"use strict";Object.defineProperty(kzr,"__esModule",{value:!0});kzr.verifySCTs=kLl;var b9t=jV(),NLl=Ix(),DLl=U0e();function kLl(e,t,r){let n,a=e.clone();for(let f=0;f{if(!(0,DLl.filterTLogAuthorities)(r,{logID:f.logID,targetDate:f.datetime}).some(b=>f.verify(o.buffer,b.publicKey)))throw new NLl.VerificationError({code:"CERTIFICATE_ERROR",message:"SCT verification failed"});return f.logID})}});var Xbs=H(E9t=>{"use strict";Object.defineProperty(E9t,"__esModule",{value:!0});E9t.verifyPublicKey=PLl;E9t.verifyCertificate=WLl;var xLl=jV(),GLl=Ix(),FLl=Dzr(),ZLl=Qbs(),LLl="1.3.6.1.4.1.57264.1.1",VLl="1.3.6.1.4.1.57264.1.8";function PLl(e,t,r){let n=r.publicKey(e);return t.forEach(a=>{if(!n.validFor(a))throw new GLl.VerificationError({code:"PUBLIC_KEY_ERROR",message:`Public key is not valid for timestamp: ${a.toISOString()}`})}),{key:n.publicKey}}function WLl(e,t,r){let n=[];return t.forEach(a=>{n=(0,FLl.verifyCertificateChain)(a,e,r.certificateAuthorities)}),{scts:(0,ZLl.verifySCTs)(n[0],n[1],r.ctlogs),signer:OLl(n[0])}}function OLl(e){let t,r=e.extension(VLl);r?t=r.valueObj.subs?.[0]?.value.toString("ascii"):t=e.extension(LLl)?.value.toString("ascii");let n={extensions:{issuer:t},subjectAlternativeName:e.subjectAltName};return{key:xLl.crypto.createPublicKey(e.publicKey),identity:n}}});var Ubs=H(S9t=>{"use strict";Object.defineProperty(S9t,"__esModule",{value:!0});S9t.verifySubjectAlternativeName=MLl;S9t.verifyExtensions=HLl;var Jbs=Ix();function MLl(e,t){if(t===void 0||!t.match(e))throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`certificate identity error - expected ${e}, got ${t}`})}function HLl(e,t={}){let r;for(r in e)if(t[r]!==e[r])throw new Jbs.PolicyError({code:"UNTRUSTED_SIGNER_ERROR",message:`invalid certificate extension - expected ${r}=${e[r]}, got ${r}=${t[r]}`})}});var Kbs=H(Lzr=>{"use strict";Object.defineProperty(Lzr,"__esModule",{value:!0});Lzr.verifyCheckpoint=XLl;var Gzr=jV(),ZFe=Ix(),YLl=U0e(),xzr=` + +`,QLl=/\u2014 (\S+) (\S+)\n/g;function XLl(e,t){let r=(0,YLl.filterTLogAuthorities)(t,{targetDate:new Date(Number(e.integratedTime)*1e3)}),n=e.inclusionProof,a=Fzr.fromString(n.checkpoint.envelope),o=Zzr.fromString(a.note);if(!JLl(a,r))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid checkpoint signature"});if(!Gzr.crypto.bufferEqual(o.logHash,n.rootHash))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"root hash mismatch"})}function JLl(e,t){let r=Buffer.from(e.note,"utf-8");return e.signatures.every(n=>{let a=t.find(o=>Gzr.crypto.bufferEqual(o.logID.subarray(0,4),n.keyHint));return a?Gzr.crypto.verify(r,a.publicKey,n.signature):!1})}var Fzr=class e{constructor(t,r){this.note=t,this.signatures=r}static fromString(t){if(!t.includes(xzr))throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"missing checkpoint separator"});let r=t.indexOf(xzr),n=t.slice(0,r+1),o=t.slice(r+xzr.length).matchAll(QLl),l=Array.from(o,A=>{let[,f,I]=A,C=Buffer.from(I,"base64");if(C.length<5)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"malformed checkpoint signature"});return{name:f,keyHint:C.subarray(0,4),signature:C.subarray(4)}});if(l.length===0)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"no signatures found in checkpoint"});return new e(n,l)}},Zzr=class e{constructor(t,r,n,a){this.origin=t,this.logSize=r,this.logHash=n,this.rest=a}static fromString(t){let r=t.trimEnd().split(` +`);if(r.length<3)throw new ZFe.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"too few lines in checkpoint header"});let n=r[0],a=BigInt(r[1]),o=Buffer.from(r[2],"base64"),l=r.slice(3);return new e(n,a,o,l)}}});var jbs=H(Ozr=>{"use strict";Object.defineProperty(Ozr,"__esModule",{value:!0});Ozr.verifyMerkleInclusion=jLl;var Wzr=jV(),Vzr=Ix(),ULl=Buffer.from([0]),KLl=Buffer.from([1]);function jLl(e){let t=e.inclusionProof,r=BigInt(t.logIndex),n=BigInt(t.treeSize);if(r<0n||r>=n)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:`invalid index: ${r}`});let{inner:a,border:o}=zLl(r,n);if(t.hashes.length!==a+o)throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"invalid hash count"});let l=t.hashes.slice(0,a),A=t.hashes.slice(a),f=n9l(e.canonicalizedBody),I=$Ll(qLl(f,l,r),A);if(!Wzr.crypto.bufferEqual(I,t.rootHash))throw new Vzr.VerificationError({code:"TLOG_INCLUSION_PROOF_ERROR",message:"calculated root hash does not match inclusion proof"})}function zLl(e,t){let r=e9l(e,t),n=t9l(e>>BigInt(r));return{inner:r,border:n}}function qLl(e,t,r){return t.reduce((n,a,o)=>r>>BigInt(o)&BigInt(1)?Pzr(a,n):Pzr(n,a),e)}function $Ll(e,t){return t.reduce((r,n)=>Pzr(n,r),e)}function e9l(e,t){return r9l(e^t-BigInt(1))}function t9l(e){return e.toString(2).split("1").length-1}function r9l(e){return e===0n?0:e.toString(2).length}function Pzr(e,t){return Wzr.crypto.digest("sha256",KLl,e,t)}function n9l(e){return Wzr.crypto.digest("sha256",ULl,e)}});var qbs=H(Mzr=>{"use strict";Object.defineProperty(Mzr,"__esModule",{value:!0});Mzr.verifyTLogSET=o9l;var zbs=jV(),i9l=Ix(),s9l=U0e();function o9l(e,t){if(!(0,s9l.filterTLogAuthorities)(t,{logID:e.logId.keyId,targetDate:new Date(Number(e.integratedTime)*1e3)}).some(a=>{let o=a9l(e),l=Buffer.from(zbs.json.canonicalize(o),"utf8"),A=e.inclusionPromise.signedEntryTimestamp;return zbs.crypto.verify(l,a.publicKey,A)}))throw new i9l.VerificationError({code:"TLOG_INCLUSION_PROMISE_ERROR",message:"inclusion promise could not be verified"})}function a9l(e){let{integratedTime:t,logIndex:r,logId:n,canonicalizedBody:a}=e;return{body:a.toString("base64"),integratedTime:Number(t),logIndex:Number(r),logID:n.keyId.toString("hex")}}});var eEs=H(Yzr=>{"use strict";Object.defineProperty(Yzr,"__esModule",{value:!0});Yzr.verifyRFC3161Timestamp=u9l;var Hzr=jV(),$bs=Ix(),c9l=Dzr(),l9l=U0e();function u9l(e,t,r){let n=e.signingTime;if(r=(0,l9l.filterCertAuthorities)(r,n),r=A9l(r,{serialNumber:e.signerSerialNumber,issuer:e.signerIssuer}),!r.some(o=>{try{return g9l(e,t,o),!0}catch{return!1}}))throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"timestamp could not be verified"})}function g9l(e,t,r){let[n,...a]=r.certChain,o=Hzr.crypto.createPublicKey(n.publicKey),l=e.signingTime;try{new c9l.CertificateChainVerifier({untrustedCert:n,trustedCerts:a,timestamp:l}).verify()}catch{throw new $bs.VerificationError({code:"TIMESTAMP_ERROR",message:"invalid certificate chain"})}e.verify(t,o)}function A9l(e,t){return e.filter(r=>r.certChain.length>0&&Hzr.crypto.bufferEqual(r.certChain[0].serialNumber,t.serialNumber)&&Hzr.crypto.bufferEqual(r.certChain[0].issuer,t.issuer))}});var tEs=H(v9t=>{"use strict";Object.defineProperty(v9t,"__esModule",{value:!0});v9t.verifyTSATimestamp=m9l;v9t.verifyTLogTimestamp=C9l;var d9l=Ix(),p9l=Kbs(),f9l=jbs(),I9l=qbs(),h9l=eEs();function m9l(e,t,r){return(0,h9l.verifyRFC3161Timestamp)(e,t,r),{type:"timestamp-authority",logID:e.signerSerialNumber,timestamp:e.signingTime}}function C9l(e,t){let r=!1;if(_9l(e)&&((0,I9l.verifyTLogSET)(e,t),r=!0),y9l(e)&&((0,f9l.verifyMerkleInclusion)(e),(0,p9l.verifyCheckpoint)(e,t),r=!0),!r)throw new d9l.VerificationError({code:"TLOG_MISSING_INCLUSION_ERROR",message:"inclusion could not be verified"});return{type:"transparency-log",logID:e.logId.keyId,timestamp:new Date(Number(e.integratedTime)*1e3)}}function _9l(e){return e.inclusionPromise!==void 0}function y9l(e){return e.inclusionProof!==void 0}});var rEs=H(Qzr=>{"use strict";Object.defineProperty(Qzr,"__esModule",{value:!0});Qzr.verifyDSSETLogBody=b9l;var B9t=Ix();function b9l(e,t){switch(e.apiVersion){case"0.0.1":return E9l(e,t);default:throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported dsse version: ${e.apiVersion}`})}}function E9l(e,t){if(e.spec.signatures?.length!==1)throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=e.spec.signatures[0].signature;if(!t.compareSignature(Buffer.from(r,"base64")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new B9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}});var nEs=H(Jzr=>{"use strict";Object.defineProperty(Jzr,"__esModule",{value:!0});Jzr.verifyHashedRekordTLogBody=S9l;var Xzr=Ix();function S9l(e,t){switch(e.apiVersion){case"0.0.1":return v9l(e,t);default:throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported hashedrekord version: ${e.apiVersion}`})}}function v9l(e,t){let r=e.spec.signature.content||"";if(!t.compareSignature(Buffer.from(r,"base64")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"signature mismatch"});let n=e.spec.data.hash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new Xzr.VerificationError({code:"TLOG_BODY_ERROR",message:"digest mismatch"})}});var iEs=H(Uzr=>{"use strict";Object.defineProperty(Uzr,"__esModule",{value:!0});Uzr.verifyIntotoTLogBody=B9l;var w9t=Ix();function B9l(e,t){switch(e.apiVersion){case"0.0.2":return w9l(e,t);default:throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported intoto version: ${e.apiVersion}`})}}function w9l(e,t){if(e.spec.content.envelope.signatures?.length!==1)throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"signature count mismatch"});let r=T9l(e.spec.content.envelope.signatures[0].sig);if(!t.compareSignature(Buffer.from(r,"base64")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"tlog entry signature mismatch"});let n=e.spec.content.payloadHash?.value||"";if(!t.compareDigest(Buffer.from(n,"hex")))throw new w9t.VerificationError({code:"TLOG_BODY_ERROR",message:"DSSE payload hash mismatch"})}function T9l(e){return Buffer.from(e,"base64").toString("utf-8")}});var oEs=H(Kzr=>{"use strict";Object.defineProperty(Kzr,"__esModule",{value:!0});Kzr.verifyTLogBody=k9l;var sEs=Ix(),R9l=rEs(),N9l=nEs(),D9l=iEs();function k9l(e,t){let{kind:r,version:n}=e.kindVersion,a=JSON.parse(e.canonicalizedBody.toString("utf8"));if(r!==a.kind||n!==a.apiVersion)throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`kind/version mismatch - expected: ${r}/${n}, received: ${a.kind}/${a.apiVersion}`});switch(a.kind){case"dsse":return(0,R9l.verifyDSSETLogBody)(a,t);case"intoto":return(0,D9l.verifyIntotoTLogBody)(a,t);case"hashedrekord":return(0,N9l.verifyHashedRekordTLogBody)(a,t);default:throw new sEs.VerificationError({code:"TLOG_BODY_ERROR",message:`unsupported kind: ${r}`})}}});var gEs=H(T9t=>{"use strict";Object.defineProperty(T9t,"__esModule",{value:!0});T9t.Verifier=void 0;var x9l=wt("util"),LFe=Ix(),aEs=Xbs(),cEs=Ubs(),lEs=tEs(),G9l=oEs(),jzr=class{constructor(t,r={}){this.trustMaterial=t,this.options={ctlogThreshold:r.ctlogThreshold??1,tlogThreshold:r.tlogThreshold??1,tsaThreshold:r.tsaThreshold??0}}verify(t,r){let n=this.verifyTimestamps(t),a=this.verifySigningKey(t,n);return this.verifyTLogs(t),this.verifySignature(t,a),r&&this.verifyPolicy(r,a.identity||{}),a}verifyTimestamps(t){let r=0,n=0,a=t.timestamps.map(o=>{switch(o.$case){case"timestamp-authority":return n++,(0,lEs.verifyTSATimestamp)(o.timestamp,t.signature.signature,this.trustMaterial.timestampAuthorities);case"transparency-log":return r++,(0,lEs.verifyTLogTimestamp)(o.tlogEntry,this.trustMaterial.tlogs)}});if(uEs(a))throw new LFe.VerificationError({code:"TIMESTAMP_ERROR",message:"duplicate timestamp"});if(ro.timestamp)}verifySigningKey({key:t},r){switch(t.$case){case"public-key":return(0,aEs.verifyPublicKey)(t.hint,r,this.trustMaterial);case"certificate":{let n=(0,aEs.verifyCertificate)(t.certificate,r,this.trustMaterial);if(uEs(n.scts))throw new LFe.VerificationError({code:"CERTIFICATE_ERROR",message:"duplicate SCT"});if(n.scts.length(0,G9l.verifyTLogBody)(n,t))}verifySignature(t,r){if(!t.signature.verifySignature(r.key))throw new LFe.VerificationError({code:"SIGNATURE_ERROR",message:"signature verification failed"})}verifyPolicy(t,r){t.subjectAlternativeName&&(0,cEs.verifySubjectAlternativeName)(t.subjectAlternativeName,r.subjectAlternativeName),t.extensions&&(0,cEs.verifyExtensions)(t.extensions,r.extensions)}};T9t.Verifier=jzr;function uEs(e){for(let t=0;t{"use strict";Object.defineProperty($H,"__esModule",{value:!0});$H.Verifier=$H.toTrustMaterial=$H.VerificationError=$H.PolicyError=$H.toSignedEntity=void 0;var F9l=Wbs();Object.defineProperty($H,"toSignedEntity",{enumerable:!0,get:function(){return F9l.toSignedEntity}});var AEs=Ix();Object.defineProperty($H,"PolicyError",{enumerable:!0,get:function(){return AEs.PolicyError}});Object.defineProperty($H,"VerificationError",{enumerable:!0,get:function(){return AEs.VerificationError}});var Z9l=U0e();Object.defineProperty($H,"toTrustMaterial",{enumerable:!0,get:function(){return Z9l.toTrustMaterial}});var L9l=gEs();Object.defineProperty($H,"Verifier",{enumerable:!0,get:function(){return L9l.Verifier}})});var dEs=H(mL=>{"use strict";Object.defineProperty(mL,"__esModule",{value:!0});mL.DEFAULT_TIMEOUT=mL.DEFAULT_RETRY=void 0;mL.createBundleBuilder=W9l;mL.createKeyFinder=O9l;mL.createVerificationPolicy=M9l;var V9l=jV(),VFe=l7r(),P9l=R9t();mL.DEFAULT_RETRY={retries:2};mL.DEFAULT_TIMEOUT=5e3;function W9l(e,t){let r={signer:H9l(t),witnesses:Q9l(t)};switch(e){case"messageSignature":return new VFe.MessageSignatureBundleBuilder(r);case"dsseEnvelope":return new VFe.DSSEBundleBuilder({...r,certificateChain:t.legacyCompatibility})}}function O9l(e){return t=>{let r=e(t);if(!r)throw new P9l.VerificationError({code:"PUBLIC_KEY_ERROR",message:`key not found: ${t}`});return{publicKey:V9l.crypto.createPublicKey(r),validFor:()=>!0}}}function M9l(e){let t={},r=e.certificateIdentityEmail||e.certificateIdentityURI;return r&&(t.subjectAlternativeName=r),e.certificateIssuer&&(t.extensions={issuer:e.certificateIssuer}),t}function H9l(e){return new VFe.FulcioSigner({fulcioBaseURL:e.fulcioURL,identityProvider:e.identityProvider||Y9l(e),retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})}function Y9l(e){let t=e.identityToken;return t?{getToken:()=>Promise.resolve(t)}:new VFe.CIContextProvider("sigstore")}function Q9l(e){let t=[];return X9l(e)&&t.push(new VFe.RekorWitness({rekorBaseURL:e.rekorURL,entryType:e.legacyCompatibility?"intoto":"dsse",fetchOnConflict:!1,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),J9l(e)&&t.push(new VFe.TSAWitness({tsaBaseURL:e.tsaServerURL,retry:e.retry??mL.DEFAULT_RETRY,timeout:e.timeout??mL.DEFAULT_TIMEOUT})),t}function X9l(e){return e.tlogUpload!==!1}function J9l(e){return e.tsaServerURL!==void 0}});var IEs=H(eY=>{"use strict";var U9l=eY&&eY.__createBinding||(Object.create?function(e,t,r,n){n===void 0&&(n=r);var a=Object.getOwnPropertyDescriptor(t,r);(!a||("get"in a?!t.__esModule:a.writable||a.configurable))&&(a={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,a)}:function(e,t,r,n){n===void 0&&(n=r),e[n]=t[r]}),K9l=eY&&eY.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),pEs=eY&&eY.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(r){var n=[];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(n[n.length]=a);return n},e(t)};return function(t){if(t&&t.__esModule)return t;var r={};if(t!=null)for(var n=e(t),a=0;aa.verify(e,n))}async function fEs(e={}){let t=await j9l.getTrustedRoot({mirrorURL:e.tufMirrorURL,rootPath:e.tufRootPath,cachePath:e.tufCachePath,forceCache:e.tufForceCache,retry:e.retry??PFe.DEFAULT_RETRY,timeout:e.timeout??PFe.DEFAULT_TIMEOUT}),r=e.keySelector?PFe.createKeyFinder(e.keySelector):void 0,n=(0,zzr.toTrustMaterial)(t,r),a={ctlogThreshold:e.ctLogThreshold,tlogThreshold:e.tlogThreshold},o=new zzr.Verifier(n,a),l=PFe.createVerificationPolicy(e);return{verify:(A,f)=>{let I=(0,qzr.bundleFromJSON)(A),C=(0,zzr.toSignedEntity)(I,f);o.verify(C,l)}}}});var mEs=H(O2=>{"use strict";Object.defineProperty(O2,"__esModule",{value:!0});O2.verify=O2.sign=O2.createVerifier=O2.attest=O2.VerificationError=O2.PolicyError=O2.TUFError=O2.InternalError=O2.DEFAULT_REKOR_URL=O2.DEFAULT_FULCIO_URL=O2.ValidationError=void 0;var eVl=S7e();Object.defineProperty(O2,"ValidationError",{enumerable:!0,get:function(){return eVl.ValidationError}});var $zr=l7r();Object.defineProperty(O2,"DEFAULT_FULCIO_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_FULCIO_URL}});Object.defineProperty(O2,"DEFAULT_REKOR_URL",{enumerable:!0,get:function(){return $zr.DEFAULT_REKOR_URL}});Object.defineProperty(O2,"InternalError",{enumerable:!0,get:function(){return $zr.InternalError}});var tVl=f9t();Object.defineProperty(O2,"TUFError",{enumerable:!0,get:function(){return tVl.TUFError}});var hEs=R9t();Object.defineProperty(O2,"PolicyError",{enumerable:!0,get:function(){return hEs.PolicyError}});Object.defineProperty(O2,"VerificationError",{enumerable:!0,get:function(){return hEs.VerificationError}});var N9t=IEs();Object.defineProperty(O2,"attest",{enumerable:!0,get:function(){return N9t.attest}});Object.defineProperty(O2,"createVerifier",{enumerable:!0,get:function(){return N9t.createVerifier}});Object.defineProperty(O2,"sign",{enumerable:!0,get:function(){return N9t.sign}});Object.defineProperty(O2,"verify",{enumerable:!0,get:function(){return N9t.verify}})});var CEs=H(D9t=>{"use strict";Object.defineProperty(D9t,"__esModule",{value:!0});D9t.generateProvenance=void 0;var rVl=(Pa(),vi(Va)),WFe=Bn(),nVl=rVl.__importStar(mEs()),{env:zc}=process,iVl="application/vnd.in-toto+json",sVl="https://in-toto.io/Statement/v0.1",oVl="https://in-toto.io/Statement/v1",aVl="https://slsa.dev/provenance/v0.2",cVl="https://slsa.dev/provenance/v1",lVl="https://github.com/actions/runner",uVl="https://slsa-framework.github.io/github-actions-buildtypes/workflow/v1",gVl="https://github.com/npm/cli/gitlab",AVl="v0alpha1",dVl=async(e,t)=>{let r;if(zc.GITHUB_ACTIONS){if(!zc.ACTIONS_ID_TOKEN_REQUEST_URL)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,'Provenance generation in GitHub Actions requires "write" access to the "id-token" permission');let n=(zc.GITHUB_WORKFLOW_REF||"").replace(`${zc.GITHUB_REPOSITORY}/`,""),a=n.indexOf("@"),o=n.slice(0,a),l=n.slice(a+1);r={_type:oVl,subject:e,predicateType:cVl,predicate:{buildDefinition:{buildType:uVl,externalParameters:{workflow:{ref:l,repository:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}`,path:o}},internalParameters:{github:{event_name:zc.GITHUB_EVENT_NAME,repository_id:zc.GITHUB_REPOSITORY_ID,repository_owner_id:zc.GITHUB_REPOSITORY_OWNER_ID}},resolvedDependencies:[{uri:`git+${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}@${zc.GITHUB_REF}`,digest:{gitCommit:zc.GITHUB_SHA}}]},runDetails:{builder:{id:`${lVl}/${zc.RUNNER_ENVIRONMENT}`},metadata:{invocationId:`${zc.GITHUB_SERVER_URL}/${zc.GITHUB_REPOSITORY}/actions/runs/${zc.GITHUB_RUN_ID}/attempts/${zc.GITHUB_RUN_ATTEMPT}`}}}}}else if(zc.GITLAB_CI){if(!zc.SIGSTORE_ID_TOKEN)throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,`Provenance generation in GitLab CI requires "SIGSTORE_ID_TOKEN" with "sigstore" audience to be present in "id_tokens". For more info see: +https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:sVl,subject:e,predicateType:aVl,predicate:{buildType:`${gVl}/${AVl}`,builder:{id:`${zc.CI_PROJECT_URL}/-/runners/${zc.CI_RUNNER_ID}`},invocation:{configSource:{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA},entryPoint:zc.CI_JOB_NAME},parameters:{CI:zc.CI,CI_API_GRAPHQL_URL:zc.CI_API_GRAPHQL_URL,CI_API_V4_URL:zc.CI_API_V4_URL,CI_BUILD_BEFORE_SHA:zc.CI_BUILD_BEFORE_SHA,CI_BUILD_ID:zc.CI_BUILD_ID,CI_BUILD_NAME:zc.CI_BUILD_NAME,CI_BUILD_REF:zc.CI_BUILD_REF,CI_BUILD_REF_NAME:zc.CI_BUILD_REF_NAME,CI_BUILD_REF_SLUG:zc.CI_BUILD_REF_SLUG,CI_BUILD_STAGE:zc.CI_BUILD_STAGE,CI_COMMIT_BEFORE_SHA:zc.CI_COMMIT_BEFORE_SHA,CI_COMMIT_BRANCH:zc.CI_COMMIT_BRANCH,CI_COMMIT_REF_NAME:zc.CI_COMMIT_REF_NAME,CI_COMMIT_REF_PROTECTED:zc.CI_COMMIT_REF_PROTECTED,CI_COMMIT_REF_SLUG:zc.CI_COMMIT_REF_SLUG,CI_COMMIT_SHA:zc.CI_COMMIT_SHA,CI_COMMIT_SHORT_SHA:zc.CI_COMMIT_SHORT_SHA,CI_COMMIT_TIMESTAMP:zc.CI_COMMIT_TIMESTAMP,CI_COMMIT_TITLE:zc.CI_COMMIT_TITLE,CI_CONFIG_PATH:zc.CI_CONFIG_PATH,CI_DEFAULT_BRANCH:zc.CI_DEFAULT_BRANCH,CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX:zc.CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX,CI_DEPENDENCY_PROXY_SERVER:zc.CI_DEPENDENCY_PROXY_SERVER,CI_DEPENDENCY_PROXY_USER:zc.CI_DEPENDENCY_PROXY_USER,CI_JOB_ID:zc.CI_JOB_ID,CI_JOB_NAME:zc.CI_JOB_NAME,CI_JOB_NAME_SLUG:zc.CI_JOB_NAME_SLUG,CI_JOB_STAGE:zc.CI_JOB_STAGE,CI_JOB_STARTED_AT:zc.CI_JOB_STARTED_AT,CI_JOB_URL:zc.CI_JOB_URL,CI_NODE_TOTAL:zc.CI_NODE_TOTAL,CI_PAGES_DOMAIN:zc.CI_PAGES_DOMAIN,CI_PAGES_URL:zc.CI_PAGES_URL,CI_PIPELINE_CREATED_AT:zc.CI_PIPELINE_CREATED_AT,CI_PIPELINE_ID:zc.CI_PIPELINE_ID,CI_PIPELINE_IID:zc.CI_PIPELINE_IID,CI_PIPELINE_SOURCE:zc.CI_PIPELINE_SOURCE,CI_PIPELINE_URL:zc.CI_PIPELINE_URL,CI_PROJECT_CLASSIFICATION_LABEL:zc.CI_PROJECT_CLASSIFICATION_LABEL,CI_PROJECT_DESCRIPTION:zc.CI_PROJECT_DESCRIPTION,CI_PROJECT_ID:zc.CI_PROJECT_ID,CI_PROJECT_NAME:zc.CI_PROJECT_NAME,CI_PROJECT_NAMESPACE:zc.CI_PROJECT_NAMESPACE,CI_PROJECT_NAMESPACE_ID:zc.CI_PROJECT_NAMESPACE_ID,CI_PROJECT_PATH:zc.CI_PROJECT_PATH,CI_PROJECT_PATH_SLUG:zc.CI_PROJECT_PATH_SLUG,CI_PROJECT_REPOSITORY_LANGUAGES:zc.CI_PROJECT_REPOSITORY_LANGUAGES,CI_PROJECT_ROOT_NAMESPACE:zc.CI_PROJECT_ROOT_NAMESPACE,CI_PROJECT_TITLE:zc.CI_PROJECT_TITLE,CI_PROJECT_URL:zc.CI_PROJECT_URL,CI_PROJECT_VISIBILITY:zc.CI_PROJECT_VISIBILITY,CI_REGISTRY:zc.CI_REGISTRY,CI_REGISTRY_IMAGE:zc.CI_REGISTRY_IMAGE,CI_REGISTRY_USER:zc.CI_REGISTRY_USER,CI_RUNNER_DESCRIPTION:zc.CI_RUNNER_DESCRIPTION,CI_RUNNER_ID:zc.CI_RUNNER_ID,CI_RUNNER_TAGS:zc.CI_RUNNER_TAGS,CI_SERVER_HOST:zc.CI_SERVER_HOST,CI_SERVER_NAME:zc.CI_SERVER_NAME,CI_SERVER_PORT:zc.CI_SERVER_PORT,CI_SERVER_PROTOCOL:zc.CI_SERVER_PROTOCOL,CI_SERVER_REVISION:zc.CI_SERVER_REVISION,CI_SERVER_SHELL_SSH_HOST:zc.CI_SERVER_SHELL_SSH_HOST,CI_SERVER_SHELL_SSH_PORT:zc.CI_SERVER_SHELL_SSH_PORT,CI_SERVER_URL:zc.CI_SERVER_URL,CI_SERVER_VERSION:zc.CI_SERVER_VERSION,CI_SERVER_VERSION_MAJOR:zc.CI_SERVER_VERSION_MAJOR,CI_SERVER_VERSION_MINOR:zc.CI_SERVER_VERSION_MINOR,CI_SERVER_VERSION_PATCH:zc.CI_SERVER_VERSION_PATCH,CI_TEMPLATE_REGISTRY_HOST:zc.CI_TEMPLATE_REGISTRY_HOST,GITLAB_CI:zc.GITLAB_CI,GITLAB_FEATURES:zc.GITLAB_FEATURES,GITLAB_USER_ID:zc.GITLAB_USER_ID,GITLAB_USER_LOGIN:zc.GITLAB_USER_LOGIN,RUNNER_GENERATE_ARTIFACTS_METADATA:zc.RUNNER_GENERATE_ARTIFACTS_METADATA},environment:{name:zc.CI_RUNNER_DESCRIPTION,architecture:zc.CI_RUNNER_EXECUTABLE_ARCH,server:zc.CI_SERVER_URL,project:zc.CI_PROJECT_PATH,job:{id:zc.CI_JOB_ID},pipeline:{id:zc.CI_PIPELINE_ID,ref:zc.CI_CONFIG_PATH}}},metadata:{buildInvocationId:`${zc.CI_JOB_URL}`,completeness:{parameters:!0,environment:!0,materials:!1},reproducible:!1},materials:[{uri:`git+${zc.CI_PROJECT_URL}`,digest:{sha1:zc.CI_COMMIT_SHA}}]}}}else throw new WFe.ReportError(WFe.MessageName.INVALID_PROVENANCE_ENVIRONMENT,"Provenance generation is only supported in GitHub Actions and GitLab CI");return nVl.attest(Buffer.from(JSON.stringify(r)),iVl,t)};D9t.generateProvenance=dVl});var SEs=H(OFe=>{"use strict";Object.defineProperty(OFe,"__esModule",{value:!0});OFe.makePublishBody=_Vl;OFe.getGitHead=yVl;OFe.getPublishAccess=bEs;OFe.getReadmeContent=EEs;var pVl=(Pa(),vi(Va)),fVl=Bn(),yEs=Bn(),_Es=no(),IVl=$he(),hVl=pVl.__importDefault(Jte()),mVl=c0e(),CVl=CEs();async function _Vl(e,t,{access:r,tag:n,registry:a,gitHead:o,provenance:l}){let A=e.manifest.name,f=e.manifest.version,I=yEs.structUtils.stringifyIdent(A),C=hVl.default.fromData(t,{algorithms:["sha1","sha512"]}),b=r??bEs(e,A),E=await EEs(e),N=await IVl.packUtils.genPackageManifest(e),B=`${I}-${f}.tgz`,F=new URL(`${(0,mVl.normalizeRegistry)(a)}/${I}/-/${B}`),Q={[B]:{content_type:"application/octet-stream",data:t.toString("base64"),length:t.length}};if(l){let X={name:`pkg:npm/${I.replace(/^@/,"%40")}@${f}`,digest:{sha512:C.sha512[0].hexDigest()}},ae=await(0,CVl.generateProvenance)([X]),ne=JSON.stringify(ae);Q[`${I}-${f}.sigstore`]={content_type:ae.mediaType,data:ne,length:ne.length}}return{_id:I,_attachments:Q,name:I,access:b,"dist-tags":{[n]:f},versions:{[f]:{...N,_id:`${I}@${f}`,name:I,version:f,gitHead:o,dist:{shasum:C.sha1[0].hexDigest(),integrity:C.sha512[0].toString(),tarball:F.toString()}}},readme:E}}async function yVl(e){try{let{stdout:t}=await fVl.execUtils.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:e});return t.trim()===""?void 0:t.trim()}catch{return}}function bEs(e,t){let r=e.project.configuration;return e.manifest.publishConfig&&typeof e.manifest.publishConfig.access=="string"?e.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):t.scope?"restricted":"public"}async function EEs(e){let t=_Es.npath.toPortablePath(`${e.cwd}/README.md`),r=e.manifest.name,a=`# ${yEs.structUtils.stringifyIdent(r)} +`;try{a=await _Es.xfs.readFilePromise(t,"utf8")}catch(o){if(o.code==="ENOENT")return a;throw o}return a}});var sJ=H(QR=>{"use strict";Object.defineProperty(QR,"__esModule",{value:!0});QR.NpmTagResolver=QR.NpmSemverResolver=QR.NpmSemverFetcher=QR.NpmRemapResolver=QR.NpmHttpFetcher=QR.npmPublishUtils=QR.npmHttpUtils=QR.npmConfigUtils=void 0;var tqr=(Pa(),vi(Va)),jO=Bn(),BEs=zds();Object.defineProperty(QR,"NpmHttpFetcher",{enumerable:!0,get:function(){return BEs.NpmHttpFetcher}});var wEs=qds();Object.defineProperty(QR,"NpmRemapResolver",{enumerable:!0,get:function(){return wEs.NpmRemapResolver}});var TEs=PGt();Object.defineProperty(QR,"NpmSemverFetcher",{enumerable:!0,get:function(){return TEs.NpmSemverFetcher}});var REs=ips();Object.defineProperty(QR,"NpmSemverResolver",{enumerable:!0,get:function(){return REs.NpmSemverResolver}});var NEs=aps();Object.defineProperty(QR,"NpmTagResolver",{enumerable:!0,get:function(){return NEs.NpmTagResolver}});var DEs=tqr.__importStar(c0e());QR.npmConfigUtils=DEs;var bVl=tqr.__importStar(vGe());QR.npmHttpUtils=bVl;var EVl=tqr.__importStar(SEs());QR.npmPublishUtils=EVl;var eqr={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:jO.SettingsType.SECRET,default:null}},vEs={npmAuditRegistry:{description:"Registry to query for audit reports",type:jO.SettingsType.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:jO.SettingsType.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:jO.SettingsType.STRING,default:"https://registry.yarnpkg.com"}},SVl={npmMinimalAgeGate:{description:"Minimum age of a package version according to the publish date on the npm registry to be considered for installation",type:jO.SettingsType.DURATION,unit:jO.DurationUnit.MINUTES,default:"0m"},npmPreapprovedPackages:{description:"Array of package descriptors or package name glob patterns to exclude from the minimum release age check",type:jO.SettingsType.STRING,isArray:!0,default:[]}},vVl={configuration:{...eqr,...vEs,...SVl,npmScopes:{description:"Settings per package scope",type:jO.SettingsType.MAP,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr,...vEs}}},npmRegistries:{description:"Settings per registry",type:jO.SettingsType.MAP,normalizeKeys:DEs.normalizeRegistry,valueDefinition:{description:"",type:jO.SettingsType.SHAPE,properties:{...eqr}}}},fetchers:[BEs.NpmHttpFetcher,TEs.NpmSemverFetcher],resolvers:[wEs.NpmRemapResolver,REs.NpmSemverResolver,NEs.NpmTagResolver]};QR.default=vVl});var k9t=H(MFe=>{"use strict";Object.defineProperty(MFe,"__esModule",{value:!0});MFe.Severity=MFe.Environment=void 0;var kEs;(function(e){e.All="all",e.Production="production",e.Development="development"})(kEs||(MFe.Environment=kEs={}));var xEs;(function(e){e.Info="info",e.Low="low",e.Moderate="moderate",e.High="high",e.Critical="critical"})(xEs||(MFe.Severity=xEs={}))});var rqr=H(oJ=>{"use strict";Object.defineProperty(oJ,"__esModule",{value:!0});oJ.allSeverities=void 0;oJ.getSeverityInclusions=wVl;oJ.getReportTree=TVl;oJ.getTopLevelDependencies=RVl;oJ.getPackages=NVl;var GEs=(Pa(),vi(Va)),QE=Bn(),BVl=GEs.__importDefault(UC()),pre=GEs.__importStar(k9t());oJ.allSeverities=[pre.Severity.Info,pre.Severity.Low,pre.Severity.Moderate,pre.Severity.High,pre.Severity.Critical];function wVl(e){if(typeof e>"u")return new Set(oJ.allSeverities);let t=oJ.allSeverities.indexOf(e),r=oJ.allSeverities.slice(t);return new Set(r)}function TVl(e){let t={},r={children:t};for(let[n,a]of QE.miscUtils.sortMap(Object.entries(e),o=>o[0]))for(let o of QE.miscUtils.sortMap(a,l=>`${l.id}`))t[`${n}/${o.id}`]={value:QE.formatUtils.tuple(QE.formatUtils.Type.IDENT,QE.structUtils.parseIdent(n)),children:{ID:typeof o.id<"u"&&{label:"ID",value:QE.formatUtils.tuple(QE.formatUtils.Type.ID,o.id)},Issue:{label:"Issue",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.title)},URL:typeof o.url<"u"&&{label:"URL",value:QE.formatUtils.tuple(QE.formatUtils.Type.URL,o.url)},Severity:{label:"Severity",value:QE.formatUtils.tuple(QE.formatUtils.Type.NO_HINT,o.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:QE.formatUtils.tuple(QE.formatUtils.Type.RANGE,o.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...o.versions].sort(BVl.default.compare).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.REFERENCE,l)}))},Dependents:{label:"Dependents",children:QE.miscUtils.sortMap(o.dependents,l=>QE.structUtils.stringifyLocator(l)).map(l=>({value:QE.formatUtils.tuple(QE.formatUtils.Type.LOCATOR,l)}))}}};return r}function RVl(e,t,{all:r,environment:n}){let a=[],o=r?e.workspaces:[t],l=[pre.Environment.All,pre.Environment.Production].includes(n),A=[pre.Environment.All,pre.Environment.Development].includes(n);for(let f of o)for(let I of f.anchoredPackage.dependencies.values())(f.manifest.devDependencies.has(I.identHash)?!A:!l)||a.push({workspace:f,dependency:I});return a}function NVl(e,t,{recursive:r}){let n=new Map,a=new Set,o=[],l=e.configuration.makeResolver(),A={project:e,resolver:l},f=(I,C)=>{let b=e.storedResolutions.get(C.descriptorHash);if(typeof b>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(b))a.add(b);else return;let E=e.storedPackages.get(b);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let N=QE.structUtils.ensureDevirtualizedDescriptor(C);if(l.supportsDescriptor(N,A)){let F=l.getResolutionDependencies(N,A);if(Object.keys(F).length>0)for(let Q of Object.values(F))f(I,Q)}if(QE.structUtils.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let F=QE.structUtils.stringifyIdent(E),Q=QE.miscUtils.getMapWithDefault(n,F);QE.miscUtils.getArrayWithDefault(Q,E.version).push(I)}if(r)for(let F of E.dependencies.values())o.push([E,F])};for(let{workspace:I,dependency:C}of t)o.push([I.anchoredLocator,C]);for(;o.length>0;){let[I,C]=o.shift();f(I,C)}return n}});var VEs=H(nqr=>{"use strict";Object.defineProperty(nqr,"__esModule",{value:!0});var G9t=(Pa(),vi(Va)),FEs=el(),H6=Bn(),DVl=Bn(),x9t=sJ(),fre=($c(),vi(rg)),ZEs=G9t.__importDefault(Ek()),LEs=G9t.__importStar((CZ(),vi(mZ))),Xze=G9t.__importStar(k9t()),Jze=G9t.__importStar(rqr()),Uze=class extends FEs.BaseCommand{constructor(){super(...arguments),this.all=fre.Option.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"}),this.recursive=fre.Option.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"}),this.environment=fre.Option.String("--environment",Xze.Environment.All,{description:"Which environments to cover",validator:LEs.isEnum(Xze.Environment)}),this.json=fre.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.noDeprecations=fre.Option.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"}),this.severity=fre.Option.String("--severity",Xze.Severity.Info,{description:"Minimal severity requested for packages to be displayed",validator:LEs.isEnum(Xze.Severity)}),this.excludes=fre.Option.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"}),this.ignores=fre.Option.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let t=await H6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await H6.Project.find(t,this.context.cwd);if(!n)throw new FEs.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=Jze.getTopLevelDependencies(r,n,{all:this.all,environment:this.environment}),o=Jze.getPackages(r,a,{recursive:this.recursive}),l=Array.from(new Set([...t.get("npmAuditExcludePackages"),...this.excludes])),A=Object.create(null);for(let[F,Q]of o)l.some(X=>ZEs.default.isMatch(F,X))||(A[F]=[...Q.keys()]);let f=x9t.npmConfigUtils.getAuditRegistry({configuration:t}),I,C=await H6.LightReport.start({configuration:t,stdout:this.context.stdout},async()=>{let F=x9t.npmHttpUtils.post("/-/npm/v1/security/advisories/bulk",A,{authType:x9t.npmHttpUtils.AuthType.BEST_EFFORT,configuration:t,jsonResponse:!0,registry:f}),Q=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(A),async([ae,ne])=>{let ce=await x9t.npmHttpUtils.getPackageMetadata(DVl.structUtils.parseIdent(ae),{project:r});return H6.miscUtils.mapAndFilter(ne,fe=>{let{deprecated:ue}=ce.versions[fe];return ue?[ae,fe,ue]:H6.miscUtils.mapAndFilter.skip})})),X=await F;for(let[ae,ne,ce]of Q.flat(1))Object.hasOwn(X,ae)&&X[ae].some(fe=>H6.semverUtils.satisfiesWithPrereleases(ne,fe.vulnerable_versions))||(X[ae]??=[],X[ae].push({id:`${ae} (deprecation)`,title:(typeof ce=="string"?ce:"").trim()||"This package has been deprecated.",severity:Xze.Severity.Moderate,vulnerable_versions:ne}));I=X});if(C.hasErrors())return C.exitCode();let b=Jze.getSeverityInclusions(this.severity),E=Array.from(new Set([...t.get("npmAuditIgnoreAdvisories"),...this.ignores])),N=Object.create(null);for(let[F,Q]of Object.entries(I)){let X=Q.filter(ae=>!ZEs.default.isMatch(`${ae.id}`,E)&&b.has(ae.severity));X.length>0&&(N[F]=X.map(ae=>{let ne=o.get(F);if(typeof ne>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...ne.keys()].filter(ue=>H6.semverUtils.satisfiesWithPrereleases(ue,ae.vulnerable_versions)),fe=new Map;for(let ue of ce)for(let de of ne.get(ue))fe.set(de.locatorHash,de);return{...ae,versions:ce,dependents:[...fe.values()]}}))}let B=Object.keys(N).length>0;return B?(H6.treeUtils.emitTree(Jze.getReportTree(N),{configuration:t,json:this.json,stdout:this.context.stdout,separators:2}),1):(await H6.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async F=>{F.reportInfo(H6.MessageName.EXCEPTION,"No audit suggestions")}),B?1:0)}};Uze.paths=[["npm","audit"]];Uze.usage=fre.Command.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. @@ -1765,30 +1765,30 @@ https://docs.gitlab.com/ee/ci/secrets/id_token_authentication.html`);r={_type:iV If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});nqr.default=Uze});var OEs=H(aqr=>{"use strict";Object.defineProperty(aqr,"__esModule",{value:!0});var DVl=(Pa(),vi(Va)),kVl=el(),aJ=Bn(),Kze=Bn(),iqr=no(),sqr=sJ(),jze=($c(),vi(rg)),PEs=DVl.__importDefault(UC()),WEs=wt("util"),zze=class extends kVl.BaseCommand{constructor(){super(...arguments),this.fields=jze.Option.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"}),this.json=jze.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.packages=jze.Option.Rest()}async execute(){let t=await aJ.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await aJ.Project.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,a=[],o=!1,l=await Kze.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async A=>{for(let f of this.packages){let I;if(f==="."){let ne=r.topLevelWorkspace;if(!ne.manifest.name)throw new jze.UsageError(`Missing ${aJ.formatUtils.pretty(t,"name",aJ.formatUtils.Type.CODE)} field in ${iqr.npath.fromPortablePath(iqr.ppath.join(ne.cwd,iqr.Filename.manifest))}`);I=aJ.structUtils.makeDescriptor(ne.manifest.name,"unknown")}else I=aJ.structUtils.parseDescriptor(f);let C=sqr.npmHttpUtils.getIdentUrl(I),b=oqr(await sqr.npmHttpUtils.get(C,{configuration:t,ident:I,jsonResponse:!0,customErrorMessage:sqr.npmHttpUtils.customPackageError})),E=Object.keys(b.versions).sort(PEs.default.compareLoose),B=b["dist-tags"].latest||E[E.length-1],F=Kze.semverUtils.validRange(I.range);if(F){let ne=PEs.default.maxSatisfying(E,F);ne!==null?B=ne:(A.reportWarning(Kze.MessageName.UNNAMED,`Unmet range ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0)}else Object.hasOwn(b["dist-tags"],I.range)?B=b["dist-tags"][I.range]:I.range!=="unknown"&&(A.reportWarning(Kze.MessageName.UNNAMED,`Unknown tag ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0);let Q=b.versions[B],X={...b,...Q,version:B,versions:E},ae;if(n!==null){ae={};for(let ne of n){let ce=X[ne];if(typeof ce<"u")ae[ne]=ce;else{A.reportWarning(Kze.MessageName.EXCEPTION,`The ${aJ.formatUtils.pretty(t,ne,aJ.formatUtils.Type.CODE)} field doesn't exist inside ${aJ.structUtils.prettyIdent(t,I)}'s information`),o=!0;continue}}}else this.json||(delete X.dist,delete X.readme,delete X.users),ae=X;A.reportJson(ae),this.json||a.push(ae)}});WEs.inspect.styles.name="cyan";for(let A of a)(A!==a[0]||o)&&this.context.stdout.write(` + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});nqr.default=Uze});var OEs=H(aqr=>{"use strict";Object.defineProperty(aqr,"__esModule",{value:!0});var kVl=(Pa(),vi(Va)),xVl=el(),aJ=Bn(),Kze=Bn(),iqr=no(),sqr=sJ(),jze=($c(),vi(rg)),PEs=kVl.__importDefault(UC()),WEs=wt("util"),zze=class extends xVl.BaseCommand{constructor(){super(...arguments),this.fields=jze.Option.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"}),this.json=jze.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.packages=jze.Option.Rest()}async execute(){let t=await aJ.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await aJ.Project.find(t,this.context.cwd),n=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,a=[],o=!1,l=await Kze.StreamReport.start({configuration:t,includeFooter:!1,json:this.json,stdout:this.context.stdout},async A=>{for(let f of this.packages){let I;if(f==="."){let ne=r.topLevelWorkspace;if(!ne.manifest.name)throw new jze.UsageError(`Missing ${aJ.formatUtils.pretty(t,"name",aJ.formatUtils.Type.CODE)} field in ${iqr.npath.fromPortablePath(iqr.ppath.join(ne.cwd,iqr.Filename.manifest))}`);I=aJ.structUtils.makeDescriptor(ne.manifest.name,"unknown")}else I=aJ.structUtils.parseDescriptor(f);let C=sqr.npmHttpUtils.getIdentUrl(I),b=oqr(await sqr.npmHttpUtils.get(C,{configuration:t,ident:I,jsonResponse:!0,customErrorMessage:sqr.npmHttpUtils.customPackageError})),E=Object.keys(b.versions).sort(PEs.default.compareLoose),B=b["dist-tags"].latest||E[E.length-1],F=Kze.semverUtils.validRange(I.range);if(F){let ne=PEs.default.maxSatisfying(E,F);ne!==null?B=ne:(A.reportWarning(Kze.MessageName.UNNAMED,`Unmet range ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0)}else Object.hasOwn(b["dist-tags"],I.range)?B=b["dist-tags"][I.range]:I.range!=="unknown"&&(A.reportWarning(Kze.MessageName.UNNAMED,`Unknown tag ${aJ.structUtils.prettyRange(t,I.range)}; falling back to the latest version`),o=!0);let Q=b.versions[B],X={...b,...Q,version:B,versions:E},ae;if(n!==null){ae={};for(let ne of n){let ce=X[ne];if(typeof ce<"u")ae[ne]=ce;else{A.reportWarning(Kze.MessageName.EXCEPTION,`The ${aJ.formatUtils.pretty(t,ne,aJ.formatUtils.Type.CODE)} field doesn't exist inside ${aJ.structUtils.prettyIdent(t,I)}'s information`),o=!0;continue}}}else this.json||(delete X.dist,delete X.readme,delete X.users),ae=X;A.reportJson(ae),this.json||a.push(ae)}});WEs.inspect.styles.name="cyan";for(let A of a)(A!==a[0]||o)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,WEs.inspect)(A,{depth:1/0,colors:!0,compact:!1})} -`);return l.exitCode()}};zze.paths=[["npm","info"]];zze.usage=jze.Command.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});aqr.default=zze;function oqr(e){if(Array.isArray(e)){let t=[];for(let r of e)r=oqr(r),r&&t.push(r);return t}else if(typeof e=="object"&&e!==null){let t={};for(let r of Object.keys(e)){if(r.startsWith("_"))continue;let n=oqr(e[r]);n&&(t[r]=n)}return t}else return e||null}});var cqr=H(F9t=>{"use strict";Object.defineProperty(F9t,"__esModule",{value:!0});F9t.getRegistry=YEs;var MEs=el(),hx=Bn(),xVl=Bn(),tY=sJ(),qze=($c(),vi(rg)),HEs=Lje(),$ze=class extends MEs.BaseCommand{constructor(){super(...arguments),this.scope=qze.Option.String("-s,--scope",{description:"Login to the registry configured for a given scope"}),this.publish=qze.Option.Boolean("--publish",!1,{description:"Login to the publish registry"}),this.alwaysAuth=qze.Option.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"}),this.webLogin=qze.Option.Boolean("--web-login",{description:"Enable web login"})}async execute(){let t=await hx.Configuration.find(this.context.cwd,this.context.plugins),r=await YEs({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await xVl.StreamReport.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async a=>{let o=await VVl({registry:r,configuration:t,report:a,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await WVl(r,o,{alwaysAuth:this.alwaysAuth,scope:this.scope}),a.reportInfo(hx.MessageName.UNNAMED,"Successfully logged in")})).exitCode()}};$ze.paths=[["npm","login"]];$ze.usage=qze.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});F9t.default=$ze;async function YEs({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:tY.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?tY.npmConfigUtils.getPublishRegistry((await(0,MEs.openWorkspace)(r,n)).manifest,{configuration:r}):tY.npmConfigUtils.getDefaultRegistry({configuration:r})}async function GVl(e,t){let r;try{r=await tY.npmHttpUtils.post("/-/v1/login",null,{configuration:t,registry:e,authType:tY.npmHttpUtils.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function FVl(e,t){let r=await hx.httpUtils.request(e,null,{configuration:t,jsonResponse:!0});if(r.statusCode===202){let n=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(n,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function ZVl({registry:e,configuration:t,report:r}){let n=await GVl(e,t);if(!n)return null;if(hx.nodeUtils.openUrl){r.reportInfo(hx.MessageName.UNNAMED,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,HEs.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await hx.nodeUtils.openUrl(n.loginUrl))&&(r.reportWarning(hx.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(hx.MessageName.UNNAMED,hx.formatUtils.pretty(t,n.loginUrl,hx.formatUtils.Type.URL)),r.reportSeparator())}for(;;){let a=await FVl(n.doneUrl,t);if(a===null)return null;if(a.type==="waiting")await new Promise(o=>setTimeout(o,a.sleep*1e3));else return a.token}}var LVl=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function VVl(e){if(e.webLogin??LVl.includes(e.registry)){let t=await ZVl(e);if(t!==null)return t}return await PVl(e)}async function PVl({registry:e,configuration:t,report:r,stdin:n,stdout:a}){let o=await OVl({configuration:t,registry:e,report:r,stdin:n,stdout:a}),l=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,A={_id:`org.couchdb.user:${o.name}`,name:o.name,password:o.password,type:"user",roles:[],date:new Date().toISOString()},f={attemptedAs:o.name,configuration:t,registry:e,jsonResponse:!0,authType:tY.npmHttpUtils.AuthType.NO_AUTH};try{return(await tY.npmHttpUtils.put(l,A,f)).token}catch(N){if(!(N.originalError?.name==="HTTPError"&&N.originalError?.response.statusCode===409))throw N}let I={...f,authType:tY.npmHttpUtils.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${o.name}:${o.password}`).toString("base64")}`}},C=await tY.npmHttpUtils.get(l,I);for(let[N,B]of Object.entries(C))(!A[N]||N==="roles")&&(A[N]=B);let b=`${l}/-rev/${A._rev}`;return(await tY.npmHttpUtils.put(b,A,I)).token}async function WVl(e,t,{alwaysAuth:r,scope:n}){let a=l=>A=>{let f=hx.miscUtils.isIndexableObject(A)?A:{},I=f[l],C=hx.miscUtils.isIndexableObject(I)?I:{};return{...f,[l]:{...C,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:t}}},o=n?{npmScopes:a(n)}:{npmRegistries:a(e)};return await hx.Configuration.updateHomeConfiguration(o)}async function OVl({configuration:e,registry:t,report:r,stdin:n,stdout:a}){r.reportInfo(hx.MessageName.UNNAMED,`Logging in to ${hx.formatUtils.pretty(e,t,hx.formatUtils.Type.URL)}`);let o=!1;if(t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(hx.MessageName.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),o=!0),r.reportSeparator(),e.env.YARN_IS_TEST_ENV)return{name:e.env.YARN_INJECT_NPM_USER||"",password:e.env.YARN_INJECT_NPM_PASSWORD||""};let l=await(0,HEs.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a},{type:"password",name:"password",message:o?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a}]);return r.reportSeparator(),l}});var JEs=H(lqr=>{"use strict";Object.defineProperty(lqr,"__esModule",{value:!0});var MVl=el(),iP=Bn(),HVl=Bn(),YVl=sJ(),Z9t=($c(),vi(rg)),QEs=cqr(),HFe=new Set(["npmAuthIdent","npmAuthToken"]),eqe=class extends MVl.BaseCommand{constructor(){super(...arguments),this.scope=Z9t.Option.String("-s,--scope",{description:"Logout of the registry configured for a given scope"}),this.publish=Z9t.Option.Boolean("--publish",!1,{description:"Logout of the publish registry"}),this.all=Z9t.Option.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await iP.Configuration.find(this.context.cwd,this.context.plugins),r=async()=>{let a=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await iP.Configuration.find(this.context.cwd,this.context.plugins),l=iP.structUtils.makeIdent(this.scope??null,"pkg");return!YVl.npmConfigUtils.getAuthConfiguration(a,{configuration:o,ident:l}).get("npmAuthToken")};return(await HVl.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{if(this.all&&(await XVl(),a.reportInfo(iP.MessageName.UNNAMED,"Successfully logged out from everything")),this.scope){await XEs("npmScopes",this.scope),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${this.scope}`):a.reportWarning(iP.MessageName.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish});await XEs("npmRegistries",o),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${o}`):a.reportWarning(iP.MessageName.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};eqe.paths=[["npm","logout"]];eqe.usage=Z9t.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});lqr.default=eqe;function QVl(e,t){let r=e[t];if(!iP.miscUtils.isIndexableObject(r))return!1;let n=new Set(Object.keys(r));if([...HFe].every(o=>!n.has(o)))return!1;for(let o of HFe)n.delete(o);if(n.size===0)return e[t]=void 0,!0;let a={...r};for(let o of HFe)delete a[o];return e[t]=a,!0}async function XVl(){let e=t=>{let r=!1,n=iP.miscUtils.isIndexableObject(t)?{...t}:{};n.npmAuthToken&&(delete n.npmAuthToken,r=!0);for(let a of Object.keys(n))QVl(n,a)&&(r=!0);if(Object.keys(n).length!==0)return r?n:t};return await iP.Configuration.updateHomeConfiguration({npmRegistries:e,npmScopes:e})}async function XEs(e,t){return await iP.Configuration.updateHomeConfiguration({[e]:r=>{let n=iP.miscUtils.isIndexableObject(r)?r:{};if(!Object.hasOwn(n,t))return r;let a=n[t],o=iP.miscUtils.isIndexableObject(a)?a:{},l=new Set(Object.keys(o));if([...HFe].every(f=>!l.has(f)))return r;for(let f of HFe)l.delete(f);if(l.size===0)return Object.keys(n).length===1?void 0:{...n,[t]:void 0};let A={};for(let f of HFe)A[f]=void 0;return{...n,[t]:{...o,...A}}}})}});var KEs=H(Aqr=>{"use strict";Object.defineProperty(Aqr,"__esModule",{value:!0});var UEs=el(),rY=Bn(),uqr=no(),K0e=sJ(),gqr=$he(),Y6=($c(),vi(rg)),tqe=class extends UEs.BaseCommand{constructor(){super(...arguments),this.access=Y6.Option.String("--access",{description:"The access for the published package (public or restricted)"}),this.tag=Y6.Option.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"}),this.tolerateRepublish=Y6.Option.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"}),this.otp=Y6.Option.String("--otp",{description:"The OTP token to use with the command"}),this.provenance=Y6.Option.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."}),this.dryRun=Y6.Option.Boolean("-n,--dry-run",!1,{description:"Show what would be published without actually publishing"}),this.json=Y6.Option.Boolean("--json",!1,{description:"Output the result in JSON format"})}async execute(){let t=await rY.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await rY.Project.find(t,this.context.cwd);if(!n)throw new UEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(n.manifest.private)throw new Y6.UsageError("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Y6.UsageError("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let a=n.manifest.name,o=n.manifest.version,l=K0e.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t});return(await rY.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async f=>{if(f.reportInfo(rY.MessageName.UNNAMED,`Publishing to ${l} with tag ${this.tag}`),this.tolerateRepublish)try{let I=await K0e.npmHttpUtils.get(K0e.npmHttpUtils.getIdentUrl(a),{configuration:t,registry:l,ident:a,jsonResponse:!0});if(!Object.hasOwn(I,"versions"))throw new rY.ReportError(rY.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(I.versions,o)){let C=`Registry already knows about version ${o}; skipping.`;f.reportWarning(rY.MessageName.UNNAMED,C),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,warning:C,skipped:!0});return}}catch(I){if(I.originalError?.response?.statusCode!==404)throw I}await rY.scriptUtils.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:f}),await gqr.packUtils.prepareForPack(n,{report:f},async()=>{let I=await gqr.packUtils.genPackList(n);for(let X of I)f.reportInfo(null,uqr.npath.fromPortablePath(X)),f.reportJson({file:uqr.npath.fromPortablePath(X)});let C=await gqr.packUtils.genPackStream(n,I),b=await rY.miscUtils.bufferStream(C),E=await K0e.npmPublishUtils.getGitHead(n.cwd),N=!1,B="";n.manifest.publishConfig&&"provenance"in n.manifest.publishConfig?(N=!!n.manifest.publishConfig.provenance,B=N?"Generating provenance statement because `publishConfig.provenance` field is set.":"Skipping provenance statement because `publishConfig.provenance` field is set to false."):this.provenance?(N=!0,B="Generating provenance statement because `--provenance` flag is set."):t.get("npmPublishProvenance")&&(N=!0,B="Generating provenance statement because `npmPublishProvenance` setting is set."),B&&(f.reportInfo(null,B),f.reportJson({type:"provenance",enabled:N,provenanceMessage:B}));let F=await K0e.npmPublishUtils.makePublishBody(n,b,{access:this.access,tag:this.tag,registry:l,gitHead:E,provenance:N});this.dryRun||await K0e.npmHttpUtils.put(K0e.npmHttpUtils.getIdentUrl(a),F,{configuration:t,registry:l,ident:a,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB_CI))});let Q=this.dryRun?"Package archive not published (dry run)":"Package archive published";f.reportInfo(rY.MessageName.UNNAMED,Q),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,tag:this.tag||"latest",files:I.map(X=>uqr.npath.fromPortablePath(X)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:Q,provenance:!!N})})})).exitCode()}};tqe.paths=[["npm","publish"]];tqe.usage=Y6.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Aqr.default=tqe});var P9t=H(V9t=>{"use strict";Object.defineProperty(V9t,"__esModule",{value:!0});V9t.getDistTags=zEs;var jEs=el(),Ire=Bn(),dqr=no(),pqr=sJ(),L9t=($c(),vi(rg)),rqe=class extends jEs.BaseCommand{constructor(){super(...arguments),this.json=L9t.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=L9t.Option.String({required:!1})}async execute(){let t=await Ire.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ire.Project.find(t,this.context.cwd),a;if(typeof this.package<"u")a=Ire.structUtils.parseIdent(this.package);else{if(!n)throw new jEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(!n.manifest.name)throw new L9t.UsageError(`Missing 'name' field in ${dqr.npath.fromPortablePath(dqr.ppath.join(n.cwd,dqr.Filename.manifest))}`);a=n.manifest.name}let o=await zEs(a,t),A={children:Ire.miscUtils.sortMap(Object.entries(o),([f])=>f).map(([f,I])=>({value:Ire.formatUtils.tuple(Ire.formatUtils.Type.RESOLUTION,{descriptor:Ire.structUtils.makeDescriptor(a,f),locator:Ire.structUtils.makeLocator(a,I)})}))};return Ire.treeUtils.emitTree(A,{configuration:t,json:this.json,stdout:this.context.stdout})}};rqe.paths=[["npm","tag","list"]];rqe.usage=L9t.Command.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` +`);return l.exitCode()}};zze.paths=[["npm","info"]];zze.usage=jze.Command.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});aqr.default=zze;function oqr(e){if(Array.isArray(e)){let t=[];for(let r of e)r=oqr(r),r&&t.push(r);return t}else if(typeof e=="object"&&e!==null){let t={};for(let r of Object.keys(e)){if(r.startsWith("_"))continue;let n=oqr(e[r]);n&&(t[r]=n)}return t}else return e||null}});var cqr=H(F9t=>{"use strict";Object.defineProperty(F9t,"__esModule",{value:!0});F9t.getRegistry=YEs;var MEs=el(),hx=Bn(),GVl=Bn(),tY=sJ(),qze=($c(),vi(rg)),HEs=Lje(),$ze=class extends MEs.BaseCommand{constructor(){super(...arguments),this.scope=qze.Option.String("-s,--scope",{description:"Login to the registry configured for a given scope"}),this.publish=qze.Option.Boolean("--publish",!1,{description:"Login to the publish registry"}),this.alwaysAuth=qze.Option.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"}),this.webLogin=qze.Option.Boolean("--web-login",{description:"Enable web login"})}async execute(){let t=await hx.Configuration.find(this.context.cwd,this.context.plugins),r=await YEs({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await GVl.StreamReport.start({configuration:t,stdout:this.context.stdout,includeFooter:!1},async a=>{let o=await PVl({registry:r,configuration:t,report:a,webLogin:this.webLogin,stdin:this.context.stdin,stdout:this.context.stdout});return await OVl(r,o,{alwaysAuth:this.alwaysAuth,scope:this.scope}),a.reportInfo(hx.MessageName.UNNAMED,"Successfully logged in")})).exitCode()}};$ze.paths=[["npm","login"]];$ze.usage=qze.Command.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});F9t.default=$ze;async function YEs({scope:e,publish:t,configuration:r,cwd:n}){return e&&t?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r,type:tY.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):e?tY.npmConfigUtils.getScopeRegistry(e,{configuration:r}):t?tY.npmConfigUtils.getPublishRegistry((await(0,MEs.openWorkspace)(r,n)).manifest,{configuration:r}):tY.npmConfigUtils.getDefaultRegistry({configuration:r})}async function FVl(e,t){let r;try{r=await tY.npmHttpUtils.post("/-/v1/login",null,{configuration:t,registry:e,authType:tY.npmHttpUtils.AuthType.NO_AUTH,jsonResponse:!0,headers:{"npm-auth-type":"web"}})}catch{return null}return r}async function ZVl(e,t){let r=await hx.httpUtils.request(e,null,{configuration:t,jsonResponse:!0});if(r.statusCode===202){let n=r.headers["retry-after"]??"1";return{type:"waiting",sleep:parseInt(n,10)}}return r.statusCode===200?{type:"success",token:r.body.token}:null}async function LVl({registry:e,configuration:t,report:r}){let n=await FVl(e,t);if(!n)return null;if(hx.nodeUtils.openUrl){r.reportInfo(hx.MessageName.UNNAMED,"Starting the web login process..."),r.reportSeparator();let{openNow:a}=await(0,HEs.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open your browser now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});r.reportSeparator(),(!a||!await hx.nodeUtils.openUrl(n.loginUrl))&&(r.reportWarning(hx.MessageName.UNNAMED,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice:"),r.reportWarning(hx.MessageName.UNNAMED,hx.formatUtils.pretty(t,n.loginUrl,hx.formatUtils.Type.URL)),r.reportSeparator())}for(;;){let a=await ZVl(n.doneUrl,t);if(a===null)return null;if(a.type==="waiting")await new Promise(o=>setTimeout(o,a.sleep*1e3));else return a.token}}var VVl=["https://registry.yarnpkg.com","https://registry.npmjs.org"];async function PVl(e){if(e.webLogin??VVl.includes(e.registry)){let t=await LVl(e);if(t!==null)return t}return await WVl(e)}async function WVl({registry:e,configuration:t,report:r,stdin:n,stdout:a}){let o=await MVl({configuration:t,registry:e,report:r,stdin:n,stdout:a}),l=`/-/user/org.couchdb.user:${encodeURIComponent(o.name)}`,A={_id:`org.couchdb.user:${o.name}`,name:o.name,password:o.password,type:"user",roles:[],date:new Date().toISOString()},f={attemptedAs:o.name,configuration:t,registry:e,jsonResponse:!0,authType:tY.npmHttpUtils.AuthType.NO_AUTH};try{return(await tY.npmHttpUtils.put(l,A,f)).token}catch(N){if(!(N.originalError?.name==="HTTPError"&&N.originalError?.response.statusCode===409))throw N}let I={...f,authType:tY.npmHttpUtils.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${o.name}:${o.password}`).toString("base64")}`}},C=await tY.npmHttpUtils.get(l,I);for(let[N,B]of Object.entries(C))(!A[N]||N==="roles")&&(A[N]=B);let b=`${l}/-rev/${A._rev}`;return(await tY.npmHttpUtils.put(b,A,I)).token}async function OVl(e,t,{alwaysAuth:r,scope:n}){let a=l=>A=>{let f=hx.miscUtils.isIndexableObject(A)?A:{},I=f[l],C=hx.miscUtils.isIndexableObject(I)?I:{};return{...f,[l]:{...C,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:t}}},o=n?{npmScopes:a(n)}:{npmRegistries:a(e)};return await hx.Configuration.updateHomeConfiguration(o)}async function MVl({configuration:e,registry:t,report:r,stdin:n,stdout:a}){r.reportInfo(hx.MessageName.UNNAMED,`Logging in to ${hx.formatUtils.pretty(e,t,hx.formatUtils.Type.URL)}`);let o=!1;if(t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(hx.MessageName.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),o=!0),r.reportSeparator(),e.env.YARN_IS_TEST_ENV)return{name:e.env.YARN_INJECT_NPM_USER||"",password:e.env.YARN_INJECT_NPM_PASSWORD||""};let l=await(0,HEs.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a},{type:"password",name:"password",message:o?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:n,stdout:a}]);return r.reportSeparator(),l}});var JEs=H(lqr=>{"use strict";Object.defineProperty(lqr,"__esModule",{value:!0});var HVl=el(),iP=Bn(),YVl=Bn(),QVl=sJ(),Z9t=($c(),vi(rg)),QEs=cqr(),HFe=new Set(["npmAuthIdent","npmAuthToken"]),eqe=class extends HVl.BaseCommand{constructor(){super(...arguments),this.scope=Z9t.Option.String("-s,--scope",{description:"Logout of the registry configured for a given scope"}),this.publish=Z9t.Option.Boolean("--publish",!1,{description:"Logout of the publish registry"}),this.all=Z9t.Option.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let t=await iP.Configuration.find(this.context.cwd,this.context.plugins),r=async()=>{let a=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),o=await iP.Configuration.find(this.context.cwd,this.context.plugins),l=iP.structUtils.makeIdent(this.scope??null,"pkg");return!QVl.npmConfigUtils.getAuthConfiguration(a,{configuration:o,ident:l}).get("npmAuthToken")};return(await YVl.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{if(this.all&&(await JVl(),a.reportInfo(iP.MessageName.UNNAMED,"Successfully logged out from everything")),this.scope){await XEs("npmScopes",this.scope),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${this.scope}`):a.reportWarning(iP.MessageName.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let o=await(0,QEs.getRegistry)({configuration:t,cwd:this.context.cwd,publish:this.publish});await XEs("npmRegistries",o),await r()?a.reportInfo(iP.MessageName.UNNAMED,`Successfully logged out from ${o}`):a.reportWarning(iP.MessageName.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};eqe.paths=[["npm","logout"]];eqe.usage=Z9t.Command.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});lqr.default=eqe;function XVl(e,t){let r=e[t];if(!iP.miscUtils.isIndexableObject(r))return!1;let n=new Set(Object.keys(r));if([...HFe].every(o=>!n.has(o)))return!1;for(let o of HFe)n.delete(o);if(n.size===0)return e[t]=void 0,!0;let a={...r};for(let o of HFe)delete a[o];return e[t]=a,!0}async function JVl(){let e=t=>{let r=!1,n=iP.miscUtils.isIndexableObject(t)?{...t}:{};n.npmAuthToken&&(delete n.npmAuthToken,r=!0);for(let a of Object.keys(n))XVl(n,a)&&(r=!0);if(Object.keys(n).length!==0)return r?n:t};return await iP.Configuration.updateHomeConfiguration({npmRegistries:e,npmScopes:e})}async function XEs(e,t){return await iP.Configuration.updateHomeConfiguration({[e]:r=>{let n=iP.miscUtils.isIndexableObject(r)?r:{};if(!Object.hasOwn(n,t))return r;let a=n[t],o=iP.miscUtils.isIndexableObject(a)?a:{},l=new Set(Object.keys(o));if([...HFe].every(f=>!l.has(f)))return r;for(let f of HFe)l.delete(f);if(l.size===0)return Object.keys(n).length===1?void 0:{...n,[t]:void 0};let A={};for(let f of HFe)A[f]=void 0;return{...n,[t]:{...o,...A}}}})}});var KEs=H(Aqr=>{"use strict";Object.defineProperty(Aqr,"__esModule",{value:!0});var UEs=el(),rY=Bn(),uqr=no(),K0e=sJ(),gqr=$he(),Y6=($c(),vi(rg)),tqe=class extends UEs.BaseCommand{constructor(){super(...arguments),this.access=Y6.Option.String("--access",{description:"The access for the published package (public or restricted)"}),this.tag=Y6.Option.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"}),this.tolerateRepublish=Y6.Option.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"}),this.otp=Y6.Option.String("--otp",{description:"The OTP token to use with the command"}),this.provenance=Y6.Option.Boolean("--provenance",!1,{description:"Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the `npmPublishProvenance` setting or the `YARN_NPM_CONFIG_PROVENANCE` environment variable, or per-package through the `publishConfig.provenance` field in package.json."}),this.dryRun=Y6.Option.Boolean("-n,--dry-run",!1,{description:"Show what would be published without actually publishing"}),this.json=Y6.Option.Boolean("--json",!1,{description:"Output the result in JSON format"})}async execute(){let t=await rY.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await rY.Project.find(t,this.context.cwd);if(!n)throw new UEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(n.manifest.private)throw new Y6.UsageError("Private workspaces cannot be published");if(n.manifest.name===null||n.manifest.version===null)throw new Y6.UsageError("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let a=n.manifest.name,o=n.manifest.version,l=K0e.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t});return(await rY.StreamReport.start({configuration:t,stdout:this.context.stdout,json:this.json},async f=>{if(f.reportInfo(rY.MessageName.UNNAMED,`Publishing to ${l} with tag ${this.tag}`),this.tolerateRepublish)try{let I=await K0e.npmHttpUtils.get(K0e.npmHttpUtils.getIdentUrl(a),{configuration:t,registry:l,ident:a,jsonResponse:!0});if(!Object.hasOwn(I,"versions"))throw new rY.ReportError(rY.MessageName.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(I.versions,o)){let C=`Registry already knows about version ${o}; skipping.`;f.reportWarning(rY.MessageName.UNNAMED,C),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,warning:C,skipped:!0});return}}catch(I){if(I.originalError?.response?.statusCode!==404)throw I}await rY.scriptUtils.maybeExecuteWorkspaceLifecycleScript(n,"prepublish",{report:f}),await gqr.packUtils.prepareForPack(n,{report:f},async()=>{let I=await gqr.packUtils.genPackList(n);for(let X of I)f.reportInfo(null,uqr.npath.fromPortablePath(X)),f.reportJson({file:uqr.npath.fromPortablePath(X)});let C=await gqr.packUtils.genPackStream(n,I),b=await rY.miscUtils.bufferStream(C),E=await K0e.npmPublishUtils.getGitHead(n.cwd),N=!1,B="";n.manifest.publishConfig&&"provenance"in n.manifest.publishConfig?(N=!!n.manifest.publishConfig.provenance,B=N?"Generating provenance statement because `publishConfig.provenance` field is set.":"Skipping provenance statement because `publishConfig.provenance` field is set to false."):this.provenance?(N=!0,B="Generating provenance statement because `--provenance` flag is set."):t.get("npmPublishProvenance")&&(N=!0,B="Generating provenance statement because `npmPublishProvenance` setting is set."),B&&(f.reportInfo(null,B),f.reportJson({type:"provenance",enabled:N,provenanceMessage:B}));let F=await K0e.npmPublishUtils.makePublishBody(n,b,{access:this.access,tag:this.tag,registry:l,gitHead:E,provenance:N});this.dryRun||await K0e.npmHttpUtils.put(K0e.npmHttpUtils.getIdentUrl(a),F,{configuration:t,registry:l,ident:a,otp:this.otp,jsonResponse:!0,allowOidc:!!(process.env.CI&&(process.env.GITHUB_ACTIONS||process.env.GITLAB_CI))});let Q=this.dryRun?"Package archive not published (dry run)":"Package archive published";f.reportInfo(rY.MessageName.UNNAMED,Q),f.reportJson({name:rY.structUtils.stringifyIdent(a),version:o,registry:l,tag:this.tag||"latest",files:I.map(X=>uqr.npath.fromPortablePath(X)),access:this.access||null,dryRun:this.dryRun,published:!this.dryRun,message:Q,provenance:!!N})})})).exitCode()}};tqe.paths=[["npm","publish"]];tqe.usage=Y6.Command.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Aqr.default=tqe});var P9t=H(V9t=>{"use strict";Object.defineProperty(V9t,"__esModule",{value:!0});V9t.getDistTags=zEs;var jEs=el(),Ire=Bn(),dqr=no(),pqr=sJ(),L9t=($c(),vi(rg)),rqe=class extends jEs.BaseCommand{constructor(){super(...arguments),this.json=L9t.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=L9t.Option.String({required:!1})}async execute(){let t=await Ire.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await Ire.Project.find(t,this.context.cwd),a;if(typeof this.package<"u")a=Ire.structUtils.parseIdent(this.package);else{if(!n)throw new jEs.WorkspaceRequiredError(r.cwd,this.context.cwd);if(!n.manifest.name)throw new L9t.UsageError(`Missing 'name' field in ${dqr.npath.fromPortablePath(dqr.ppath.join(n.cwd,dqr.Filename.manifest))}`);a=n.manifest.name}let o=await zEs(a,t),A={children:Ire.miscUtils.sortMap(Object.entries(o),([f])=>f).map(([f,I])=>({value:Ire.formatUtils.tuple(Ire.formatUtils.Type.RESOLUTION,{descriptor:Ire.structUtils.makeDescriptor(a,f),locator:Ire.structUtils.makeLocator(a,I)})}))};return Ire.treeUtils.emitTree(A,{configuration:t,json:this.json,stdout:this.context.stdout})}};rqe.paths=[["npm","tag","list"]];rqe.usage=L9t.Command.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});V9t.default=rqe;async function zEs(e,t){let r=`/-/package${pqr.npmHttpUtils.getIdentUrl(e)}/dist-tags`;return pqr.npmHttpUtils.get(r,{configuration:t,ident:e,jsonResponse:!0,customErrorMessage:pqr.npmHttpUtils.customPackageError})}});var $Es=H(Iqr=>{"use strict";Object.defineProperty(Iqr,"__esModule",{value:!0});var JVl=(Pa(),vi(Va)),qEs=el(),sP=Bn(),fqr=sJ(),W9t=($c(),vi(rg)),UVl=JVl.__importDefault(UC()),KVl=P9t(),nqe=class extends qEs.BaseCommand{constructor(){super(...arguments),this.package=W9t.Option.String(),this.tag=W9t.Option.String()}async execute(){let t=await sP.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await sP.Project.find(t,this.context.cwd);if(!n)throw new qEs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=sP.structUtils.parseDescriptor(this.package,!0),o=a.range;if(!UVl.default.valid(o))throw new W9t.UsageError(`The range ${sP.formatUtils.pretty(t,a.range,sP.formatUtils.Type.RANGE)} must be a valid semver version`);let l=fqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),A=sP.formatUtils.pretty(t,a,sP.formatUtils.Type.IDENT),f=sP.formatUtils.pretty(t,o,sP.formatUtils.Type.RANGE),I=sP.formatUtils.pretty(t,this.tag,sP.formatUtils.Type.CODE);return(await sP.StreamReport.start({configuration:t,stdout:this.context.stdout},async b=>{let E=await(0,KVl.getDistTags)(a,t);Object.hasOwn(E,this.tag)&&E[this.tag]===o&&b.reportWarning(sP.MessageName.UNNAMED,`Tag ${I} is already set to version ${f}`);let N=`/-/package${fqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await fqr.npmHttpUtils.put(N,o,{configuration:t,registry:l,ident:a,jsonRequest:!0,jsonResponse:!0}),b.reportInfo(sP.MessageName.UNNAMED,`Tag ${I} added to version ${f} of package ${A}`)})).exitCode()}};nqe.paths=[["npm","tag","add"]];nqe.usage=W9t.Command.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});V9t.default=rqe;async function zEs(e,t){let r=`/-/package${pqr.npmHttpUtils.getIdentUrl(e)}/dist-tags`;return pqr.npmHttpUtils.get(r,{configuration:t,ident:e,jsonResponse:!0,customErrorMessage:pqr.npmHttpUtils.customPackageError})}});var $Es=H(Iqr=>{"use strict";Object.defineProperty(Iqr,"__esModule",{value:!0});var UVl=(Pa(),vi(Va)),qEs=el(),sP=Bn(),fqr=sJ(),W9t=($c(),vi(rg)),KVl=UVl.__importDefault(UC()),jVl=P9t(),nqe=class extends qEs.BaseCommand{constructor(){super(...arguments),this.package=W9t.Option.String(),this.tag=W9t.Option.String()}async execute(){let t=await sP.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await sP.Project.find(t,this.context.cwd);if(!n)throw new qEs.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=sP.structUtils.parseDescriptor(this.package,!0),o=a.range;if(!KVl.default.valid(o))throw new W9t.UsageError(`The range ${sP.formatUtils.pretty(t,a.range,sP.formatUtils.Type.RANGE)} must be a valid semver version`);let l=fqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),A=sP.formatUtils.pretty(t,a,sP.formatUtils.Type.IDENT),f=sP.formatUtils.pretty(t,o,sP.formatUtils.Type.RANGE),I=sP.formatUtils.pretty(t,this.tag,sP.formatUtils.Type.CODE);return(await sP.StreamReport.start({configuration:t,stdout:this.context.stdout},async b=>{let E=await(0,jVl.getDistTags)(a,t);Object.hasOwn(E,this.tag)&&E[this.tag]===o&&b.reportWarning(sP.MessageName.UNNAMED,`Tag ${I} is already set to version ${f}`);let N=`/-/package${fqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await fqr.npmHttpUtils.put(N,o,{configuration:t,registry:l,ident:a,jsonRequest:!0,jsonResponse:!0}),b.reportInfo(sP.MessageName.UNNAMED,`Tag ${I} added to version ${f} of package ${A}`)})).exitCode()}};nqe.paths=[["npm","tag","add"]];nqe.usage=W9t.Command.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Iqr.default=nqe});var t1s=H(mqr=>{"use strict";Object.defineProperty(mqr,"__esModule",{value:!0});var e1s=el(),hre=Bn(),hqr=sJ(),iqe=($c(),vi(rg)),jVl=P9t(),sqe=class extends e1s.BaseCommand{constructor(){super(...arguments),this.package=iqe.Option.String(),this.tag=iqe.Option.String()}async execute(){if(this.tag==="latest")throw new iqe.UsageError("The 'latest' tag cannot be removed.");let t=await hre.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hre.Project.find(t,this.context.cwd);if(!n)throw new e1s.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=hre.structUtils.parseIdent(this.package),o=hqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),l=hre.formatUtils.pretty(t,this.tag,hre.formatUtils.Type.CODE),A=hre.formatUtils.pretty(t,a,hre.formatUtils.Type.IDENT),f=await(0,jVl.getDistTags)(a,t);if(!Object.hasOwn(f,this.tag))throw new iqe.UsageError(`${l} is not a tag of package ${A}`);return(await hre.StreamReport.start({configuration:t,stdout:this.context.stdout},async C=>{let b=`/-/package${hqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await hqr.npmHttpUtils.del(b,{configuration:t,registry:o,ident:a,jsonResponse:!0}),C.reportInfo(hre.MessageName.UNNAMED,`Tag ${l} removed from package ${A}`)})).exitCode()}};sqe.paths=[["npm","tag","remove"]];sqe.usage=iqe.Command.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Iqr.default=nqe});var t1s=H(mqr=>{"use strict";Object.defineProperty(mqr,"__esModule",{value:!0});var e1s=el(),hre=Bn(),hqr=sJ(),iqe=($c(),vi(rg)),zVl=P9t(),sqe=class extends e1s.BaseCommand{constructor(){super(...arguments),this.package=iqe.Option.String(),this.tag=iqe.Option.String()}async execute(){if(this.tag==="latest")throw new iqe.UsageError("The 'latest' tag cannot be removed.");let t=await hre.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await hre.Project.find(t,this.context.cwd);if(!n)throw new e1s.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=hre.structUtils.parseIdent(this.package),o=hqr.npmConfigUtils.getPublishRegistry(n.manifest,{configuration:t}),l=hre.formatUtils.pretty(t,this.tag,hre.formatUtils.Type.CODE),A=hre.formatUtils.pretty(t,a,hre.formatUtils.Type.IDENT),f=await(0,zVl.getDistTags)(a,t);if(!Object.hasOwn(f,this.tag))throw new iqe.UsageError(`${l} is not a tag of package ${A}`);return(await hre.StreamReport.start({configuration:t,stdout:this.context.stdout},async C=>{let b=`/-/package${hqr.npmHttpUtils.getIdentUrl(a)}/dist-tags/${encodeURIComponent(this.tag)}`;await hqr.npmHttpUtils.del(b,{configuration:t,registry:o,ident:a,jsonResponse:!0}),C.reportInfo(hre.MessageName.UNNAMED,`Tag ${l} removed from package ${A}`)})).exitCode()}};sqe.paths=[["npm","tag","remove"]];sqe.usage=iqe.Command.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});mqr.default=sqe});var i1s=H(yqr=>{"use strict";Object.defineProperty(yqr,"__esModule",{value:!0});var r1s=el(),Cqr=Bn(),n1s=Bn(),j0e=sJ(),_qr=($c(),vi(rg)),oqe=class extends r1s.BaseCommand{constructor(){super(...arguments),this.scope=_qr.Option.String("-s,--scope",{description:"Print username for the registry configured for a given scope"}),this.publish=_qr.Option.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Cqr.Configuration.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t,type:j0e.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t}):this.publish?r=j0e.npmConfigUtils.getPublishRegistry((await(0,r1s.openWorkspace)(t,this.context.cwd)).manifest,{configuration:t}):r=j0e.npmConfigUtils.getDefaultRegistry({configuration:t}),(await n1s.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o;try{o=await j0e.npmHttpUtils.get("/-/whoami",{configuration:t,registry:r,authType:j0e.npmHttpUtils.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?n1s.structUtils.makeIdent(this.scope,""):void 0})}catch(l){if(l.response?.statusCode===401||l.response?.statusCode===403){a.reportError(Cqr.MessageName.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}a.reportInfo(Cqr.MessageName.UNNAMED,o.username)})).exitCode()}};oqe.paths=[["npm","whoami"]];oqe.usage=_qr.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});yqr.default=oqe});var p1s=H(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});U1.NpmWhoamiCommand=U1.NpmTagRemoveCommand=U1.NpmTagListCommand=U1.NpmTagAddCommand=U1.NpmPublishCommand=U1.NpmLogoutCommand=U1.NpmLoginCommand=U1.NpmInfoCommand=U1.NpmAuditCommand=U1.npmAuditUtils=U1.npmAuditTypes=void 0;var cJ=(Pa(),vi(Va)),O9t=Bn(),s1s=cJ.__importDefault(VEs());U1.NpmAuditCommand=s1s.default;var o1s=cJ.__importDefault(OEs());U1.NpmInfoCommand=o1s.default;var a1s=cJ.__importDefault(cqr());U1.NpmLoginCommand=a1s.default;var c1s=cJ.__importDefault(JEs());U1.NpmLogoutCommand=c1s.default;var l1s=cJ.__importDefault(KEs());U1.NpmPublishCommand=l1s.default;var u1s=cJ.__importDefault($Es());U1.NpmTagAddCommand=u1s.default;var g1s=cJ.__importDefault(P9t());U1.NpmTagListCommand=g1s.default;var A1s=cJ.__importDefault(t1s());U1.NpmTagRemoveCommand=A1s.default;var d1s=cJ.__importDefault(i1s());U1.NpmWhoamiCommand=d1s.default;var zVl=cJ.__importStar(k9t());U1.npmAuditTypes=zVl;var qVl=cJ.__importStar(rqr());U1.npmAuditUtils=qVl;var $Vl={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:O9t.SettingsType.STRING,default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:O9t.SettingsType.BOOLEAN,default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0}},commands:[s1s.default,o1s.default,a1s.default,c1s.default,l1s.default,u1s.default,g1s.default,A1s.default,d1s.default]};U1.default=$Vl});var f1s=H(M9t=>{"use strict";Object.defineProperty(M9t,"__esModule",{value:!0});M9t.CACHE_VERSION=void 0;M9t.CACHE_VERSION=3});var Y9t=H(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});CL.PatchMutationType=CL.EXECUTABLE_FILE_MODE=CL.NON_EXECUTABLE_FILE_MODE=void 0;CL.getPath=z0e;CL.parseHunkHeaderLine=h1s;CL.interpretParsedPatchFile=m1s;CL.parsePatchFile=iPl;CL.verifyHunkIntegrity=C1s;var bqr=Bn(),aqe=no(),ePl=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function z0e(e){return aqe.ppath.relative(aqe.PortablePath.root,aqe.ppath.resolve(aqe.PortablePath.root,aqe.npath.toPortablePath(e)))}function h1s(e){let t=e.trim().match(ePl);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}CL.NON_EXECUTABLE_FILE_MODE=420;CL.EXECUTABLE_FILE_MODE=493;var nY;(function(e){e.Context="context",e.Insertion="insertion",e.Deletion="deletion"})(nY||(CL.PatchMutationType=nY={}));var I1s=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),tPl=e=>({header:h1s(e),parts:[]}),rPl={"@":"header","-":nY.Deletion,"+":nY.Insertion," ":nY.Context,"\\":"pragma",undefined:nY.Context};function nPl(e){let t=[],r=I1s(),n="parsing header",a=null,o=null;function l(){a&&(o&&(a.parts.push(o),o=null),r.hunks.push(a),a=null)}function A(){l(),t.push(r),r=I1s()}for(let f=0;f0?"patch":"mode change",ae=null;switch(X){case"rename":{if(!C||!b)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:n,fromPath:z0e(C),toPath:z0e(b)}),ae=b}break;case"file deletion":{let ne=a||B;if(!ne)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(f),hash:E})}break;case"file creation":{let ne=o||F;if(!ne)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(I),hash:N})}break;case"patch":case"mode change":ae=F||o;break;default:bqr.miscUtils.assertNever(X);break}ae&&l&&A&&l!==A&&t.push({type:"mode change",semverExclusivity:n,path:z0e(ae),oldMode:H9t(l),newMode:H9t(A)}),ae&&Q&&Q.length&&t.push({type:"patch",semverExclusivity:n,path:z0e(ae),hunks:Q,beforeHash:E,afterHash:N})}if(t.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return t}function H9t(e){let t=parseInt(e,8)&511;if(t!==CL.NON_EXECUTABLE_FILE_MODE&&t!==CL.EXECUTABLE_FILE_MODE)throw new Error(`Unexpected file mode string: ${e}`);return t}function iPl(e){let t=e.split(/\n/g);return t[t.length-1]===""&&t.pop(),m1s(nPl(t))}function C1s(e){let t=0,r=0;for(let{type:n,lines:a}of e.parts)switch(n){case nY.Context:r+=a.length,t+=a.length;break;case nY.Deletion:t+=a.length;break;case nY.Insertion:r+=a.length;break;default:bqr.miscUtils.assertNever(n);break}if(t!==e.header.original.length||r!==e.header.patched.length){let n=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}});var Sqr=H(Q9t=>{"use strict";Object.defineProperty(Q9t,"__esModule",{value:!0});Q9t.UnmatchedHunkError=void 0;var Eqr=class extends Error{constructor(t,r){super(`Cannot apply hunk #${t+1}`),this.hunk=r}};Q9t.UnmatchedHunkError=Eqr});var S1s=H(U9t=>{"use strict";Object.defineProperty(U9t,"__esModule",{value:!0});U9t.applyPatchFile=oPl;U9t.applyPatch=E1s;var J9t=Bn(),mre=no(),sPl=Sqr(),X9t=Y9t();async function YFe(e,t,r){let n=await e.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await e.lutimesPromise(t,n.atime,n.mtime)}async function oPl(e,{baseFs:t=new mre.NodeFS,dryRun:r=!1,version:n=null}={}){for(let a of e)if(!(a.semverExclusivity!==null&&n!==null&&!J9t.semverUtils.satisfiesWithPrereleases(n,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!t.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await YFe(t,mre.ppath.dirname(a.path),async()=>{await t.unlinkPromise(a.path)});break;case"rename":if(r){if(!t.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await YFe(t,mre.ppath.dirname(a.fromPath),async()=>{await YFe(t,mre.ppath.dirname(a.toPath),async()=>{await YFe(t,a.fromPath,async()=>(await t.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(t.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let o=a.hunk?a.hunk.parts[0].lines.join(` + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});mqr.default=sqe});var i1s=H(yqr=>{"use strict";Object.defineProperty(yqr,"__esModule",{value:!0});var r1s=el(),Cqr=Bn(),n1s=Bn(),j0e=sJ(),_qr=($c(),vi(rg)),oqe=class extends r1s.BaseCommand{constructor(){super(...arguments),this.scope=_qr.Option.String("-s,--scope",{description:"Print username for the registry configured for a given scope"}),this.publish=_qr.Option.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let t=await Cqr.Configuration.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t,type:j0e.npmConfigUtils.RegistryType.PUBLISH_REGISTRY}):this.scope?r=j0e.npmConfigUtils.getScopeRegistry(this.scope,{configuration:t}):this.publish?r=j0e.npmConfigUtils.getPublishRegistry((await(0,r1s.openWorkspace)(t,this.context.cwd)).manifest,{configuration:t}):r=j0e.npmConfigUtils.getDefaultRegistry({configuration:t}),(await n1s.StreamReport.start({configuration:t,stdout:this.context.stdout},async a=>{let o;try{o=await j0e.npmHttpUtils.get("/-/whoami",{configuration:t,registry:r,authType:j0e.npmHttpUtils.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?n1s.structUtils.makeIdent(this.scope,""):void 0})}catch(l){if(l.response?.statusCode===401||l.response?.statusCode===403){a.reportError(Cqr.MessageName.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}a.reportInfo(Cqr.MessageName.UNNAMED,o.username)})).exitCode()}};oqe.paths=[["npm","whoami"]];oqe.usage=_qr.Command.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});yqr.default=oqe});var p1s=H(U1=>{"use strict";Object.defineProperty(U1,"__esModule",{value:!0});U1.NpmWhoamiCommand=U1.NpmTagRemoveCommand=U1.NpmTagListCommand=U1.NpmTagAddCommand=U1.NpmPublishCommand=U1.NpmLogoutCommand=U1.NpmLoginCommand=U1.NpmInfoCommand=U1.NpmAuditCommand=U1.npmAuditUtils=U1.npmAuditTypes=void 0;var cJ=(Pa(),vi(Va)),O9t=Bn(),s1s=cJ.__importDefault(VEs());U1.NpmAuditCommand=s1s.default;var o1s=cJ.__importDefault(OEs());U1.NpmInfoCommand=o1s.default;var a1s=cJ.__importDefault(cqr());U1.NpmLoginCommand=a1s.default;var c1s=cJ.__importDefault(JEs());U1.NpmLogoutCommand=c1s.default;var l1s=cJ.__importDefault(KEs());U1.NpmPublishCommand=l1s.default;var u1s=cJ.__importDefault($Es());U1.NpmTagAddCommand=u1s.default;var g1s=cJ.__importDefault(P9t());U1.NpmTagListCommand=g1s.default;var A1s=cJ.__importDefault(t1s());U1.NpmTagRemoveCommand=A1s.default;var d1s=cJ.__importDefault(i1s());U1.NpmWhoamiCommand=d1s.default;var qVl=cJ.__importStar(k9t());U1.npmAuditTypes=qVl;var $Vl=cJ.__importStar(rqr());U1.npmAuditUtils=$Vl;var ePl={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:O9t.SettingsType.STRING,default:null},npmPublishProvenance:{description:"Whether to generate provenance for the published packages",type:O9t.SettingsType.BOOLEAN,default:!1},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:O9t.SettingsType.STRING,default:[],isArray:!0}},commands:[s1s.default,o1s.default,a1s.default,c1s.default,l1s.default,u1s.default,g1s.default,A1s.default,d1s.default]};U1.default=ePl});var f1s=H(M9t=>{"use strict";Object.defineProperty(M9t,"__esModule",{value:!0});M9t.CACHE_VERSION=void 0;M9t.CACHE_VERSION=3});var Y9t=H(CL=>{"use strict";Object.defineProperty(CL,"__esModule",{value:!0});CL.PatchMutationType=CL.EXECUTABLE_FILE_MODE=CL.NON_EXECUTABLE_FILE_MODE=void 0;CL.getPath=z0e;CL.parseHunkHeaderLine=h1s;CL.interpretParsedPatchFile=m1s;CL.parsePatchFile=sPl;CL.verifyHunkIntegrity=C1s;var bqr=Bn(),aqe=no(),tPl=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function z0e(e){return aqe.ppath.relative(aqe.PortablePath.root,aqe.ppath.resolve(aqe.PortablePath.root,aqe.npath.toPortablePath(e)))}function h1s(e){let t=e.trim().match(tPl);if(!t)throw new Error(`Bad header line: '${e}'`);return{original:{start:Math.max(Number(t[1]),1),length:Number(t[3]||1)},patched:{start:Math.max(Number(t[4]),1),length:Number(t[6]||1)}}}CL.NON_EXECUTABLE_FILE_MODE=420;CL.EXECUTABLE_FILE_MODE=493;var nY;(function(e){e.Context="context",e.Insertion="insertion",e.Deletion="deletion"})(nY||(CL.PatchMutationType=nY={}));var I1s=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),rPl=e=>({header:h1s(e),parts:[]}),nPl={"@":"header","-":nY.Deletion,"+":nY.Insertion," ":nY.Context,"\\":"pragma",undefined:nY.Context};function iPl(e){let t=[],r=I1s(),n="parsing header",a=null,o=null;function l(){a&&(o&&(a.parts.push(o),o=null),r.hunks.push(a),a=null)}function A(){l(),t.push(r),r=I1s()}for(let f=0;f0?"patch":"mode change",ae=null;switch(X){case"rename":{if(!C||!b)throw new Error("Bad parser state: rename from & to not given");t.push({type:"rename",semverExclusivity:n,fromPath:z0e(C),toPath:z0e(b)}),ae=b}break;case"file deletion":{let ne=a||B;if(!ne)throw new Error("Bad parse state: no path given for file deletion");t.push({type:"file deletion",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(f),hash:E})}break;case"file creation":{let ne=o||F;if(!ne)throw new Error("Bad parse state: no path given for file creation");t.push({type:"file creation",semverExclusivity:n,hunk:Q&&Q[0]||null,path:z0e(ne),mode:H9t(I),hash:N})}break;case"patch":case"mode change":ae=F||o;break;default:bqr.miscUtils.assertNever(X);break}ae&&l&&A&&l!==A&&t.push({type:"mode change",semverExclusivity:n,path:z0e(ae),oldMode:H9t(l),newMode:H9t(A)}),ae&&Q&&Q.length&&t.push({type:"patch",semverExclusivity:n,path:z0e(ae),hunks:Q,beforeHash:E,afterHash:N})}if(t.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return t}function H9t(e){let t=parseInt(e,8)&511;if(t!==CL.NON_EXECUTABLE_FILE_MODE&&t!==CL.EXECUTABLE_FILE_MODE)throw new Error(`Unexpected file mode string: ${e}`);return t}function sPl(e){let t=e.split(/\n/g);return t[t.length-1]===""&&t.pop(),m1s(iPl(t))}function C1s(e){let t=0,r=0;for(let{type:n,lines:a}of e.parts)switch(n){case nY.Context:r+=a.length,t+=a.length;break;case nY.Deletion:t+=a.length;break;case nY.Insertion:r+=a.length;break;default:bqr.miscUtils.assertNever(n);break}if(t!==e.header.original.length||r!==e.header.patched.length){let n=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${n(e.header.original.length)} ${n(e.header.patched.length)} @@, got @@ ${n(t)} ${n(r)} @@)`)}}});var Sqr=H(Q9t=>{"use strict";Object.defineProperty(Q9t,"__esModule",{value:!0});Q9t.UnmatchedHunkError=void 0;var Eqr=class extends Error{constructor(t,r){super(`Cannot apply hunk #${t+1}`),this.hunk=r}};Q9t.UnmatchedHunkError=Eqr});var S1s=H(U9t=>{"use strict";Object.defineProperty(U9t,"__esModule",{value:!0});U9t.applyPatchFile=aPl;U9t.applyPatch=E1s;var J9t=Bn(),mre=no(),oPl=Sqr(),X9t=Y9t();async function YFe(e,t,r){let n=await e.lstatPromise(t),a=await r();typeof a<"u"&&(t=a),await e.lutimesPromise(t,n.atime,n.mtime)}async function aPl(e,{baseFs:t=new mre.NodeFS,dryRun:r=!1,version:n=null}={}){for(let a of e)if(!(a.semverExclusivity!==null&&n!==null&&!J9t.semverUtils.satisfiesWithPrereleases(n,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!t.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await YFe(t,mre.ppath.dirname(a.path),async()=>{await t.unlinkPromise(a.path)});break;case"rename":if(r){if(!t.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await YFe(t,mre.ppath.dirname(a.fromPath),async()=>{await YFe(t,mre.ppath.dirname(a.toPath),async()=>{await YFe(t,a.fromPath,async()=>(await t.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(t.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let o=a.hunk?a.hunk.parts[0].lines.join(` `)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await t.mkdirpPromise(mre.ppath.dirname(a.path),{chmod:493,utimes:[mre.constants.SAFE_TIME,mre.constants.SAFE_TIME]}),await t.writeFilePromise(a.path,o,{mode:a.mode}),await t.utimesPromise(a.path,mre.constants.SAFE_TIME,mre.constants.SAFE_TIME)}break;case"patch":await YFe(t,a.path,async()=>{await E1s(a,{baseFs:t,dryRun:r})});break;case"mode change":{let l=(await t.statPromise(a.path)).mode;if(_1s(a.newMode)!==_1s(l))continue;await YFe(t,a.path,async()=>{await t.chmodPromise(a.path,a.newMode)})}break;default:J9t.miscUtils.assertNever(a);break}}function _1s(e){return(e&64)>0}function y1s(e){return e.replace(/\s+$/,"")}function aPl(e,t){return y1s(e)===y1s(t)}async function E1s({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){let a=await r.statSync(t).mode,l=(await r.readFileSync(t,"utf8")).split(/\n/),A=[],f=0,I=0;for(let b of e){let E=Math.max(I,b.header.patched.start+f),N=Math.max(0,E-I),B=Math.max(0,l.length-E-b.header.original.length),F=Math.max(N,B),Q=0,X=0,ae=null;for(;Q<=F;){if(Q<=N&&(X=E-Q,ae=b1s(b,l,X),ae!==null)){Q=-Q;break}if(Q<=B&&(X=E+Q,ae=b1s(b,l,X),ae!==null))break;Q+=1}if(ae===null)throw new sPl.UnmatchedHunkError(e.indexOf(b),b);A.push(ae),f+=Q,I=X+b.header.original.length}if(n)return;let C=0;for(let b of A)for(let E of b)switch(E.type){case"splice":{let N=E.index+C;l.splice(N,E.numToDelete,...E.linesToInsert),C+=E.linesToInsert.length-E.numToDelete}break;case"pop":l.pop();break;case"push":l.push(E.line);break;default:J9t.miscUtils.assertNever(E);break}await r.writeFilePromise(t,l.join(` -`),{mode:a})}function b1s(e,t,r){let n=[];for(let a of e.parts)switch(a.type){case X9t.PatchMutationType.Context:case X9t.PatchMutationType.Deletion:{for(let o of a.lines){let l=t[r];if(l==null||!aPl(l,o))return null;r+=1}a.type===X9t.PatchMutationType.Deletion&&(n.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&n.push({type:"push",line:""}))}break;case X9t.PatchMutationType.Insertion:n.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:J9t.miscUtils.assertNever(a.type);break}return n}});var XFe=H(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.parsePatchFile=iB.applyPatchFile=void 0;iB.isPatchDescriptor=B1s;iB.isPatchLocator=w1s;iB.parseDescriptor=gPl;iB.parseLocator=APl;iB.unpatchDescriptor=dPl;iB.unpatchLocator=pPl;iB.ensureUnpatchedDescriptor=fPl;iB.ensureUnpatchedLocator=T1s;iB.makeDescriptor=IPl;iB.makeLocator=hPl;iB.extractPatchFlags=D1s;iB.isParentRequired=mPl;iB.loadPatchFiles=CPl;iB.extractPackageToDisk=_Pl;iB.diffFolders=yPl;iB.makePatchHash=bPl;var M2=Bn(),dw=no(),cPl=f1s(),v1s=Y9t();Object.defineProperty(iB,"parsePatchFile",{enumerable:!0,get:function(){return v1s.parsePatchFile}});var lPl=S1s();Object.defineProperty(iB,"applyPatchFile",{enumerable:!0,get:function(){return lPl.applyPatchFile}});var uPl=/^builtin<([^>]+)>$/;function QFe(e,t){let{protocol:r,source:n,selector:a,params:o}=M2.structUtils.parseRange(e);if(r!=="patch:")throw new Error("Invalid patch range");if(n===null)throw new Error("Patch locators must explicitly define their source");let l=a?a.split(/&/).map(C=>dw.npath.toPortablePath(C)):[],A=o&&typeof o.locator=="string"?M2.structUtils.parseLocator(o.locator):null,f=o&&typeof o.version=="string"?o.version:null,I=t(n);return{parentLocator:A,sourceItem:I,patchPaths:l,sourceVersion:f}}function B1s(e){return e.range.startsWith("patch:")}function w1s(e){return e.reference.startsWith("patch:")}function gPl(e){let{sourceItem:t,...r}=QFe(e.range,M2.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function APl(e){let{sourceItem:t,...r}=QFe(e.reference,M2.structUtils.parseLocator);return{...r,sourceLocator:t}}function dPl(e){let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function pPl(e){let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function fPl(e){if(!B1s(e))return e;let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function T1s(e){if(!w1s(e))return e;let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function R1s({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:a},o){let l=e!==null?{locator:M2.structUtils.stringifyLocator(e)}:{},A=typeof n<"u"?{version:n}:{},f=typeof a<"u"?{hash:a}:{};return M2.structUtils.makeRange({protocol:"patch:",source:o(t),selector:r.join("&"),params:{...A,...f,...l}})}function IPl(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return M2.structUtils.makeDescriptor(e,R1s({parentLocator:t,sourceItem:r,patchPaths:n},M2.structUtils.stringifyDescriptor))}function hPl(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:a}){return M2.structUtils.makeLocator(e,R1s({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:a},M2.structUtils.stringifyLocator))}function N1s({onAbsolute:e,onRelative:t,onProject:r,onBuiltin:n},a){let o=a.lastIndexOf("!");o!==-1&&(a=a.slice(o+1));let l=a.match(uPl);return l!==null?n(l[1]):a.startsWith("~/")?r(a.slice(2)):dw.ppath.isAbsolute(a)?e(a):t(a)}function D1s(e){let t=e.lastIndexOf("!");return{optional:(t!==-1?new Set(e.slice(0,t).split(/!/)):new Set).has("optional")}}function mPl(e){return N1s({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},e)}async function CPl(e,t,r){let n=e!==null?await r.fetcher.fetch(e,r):null,a=n&&n.localPath?{packageFs:new dw.CwdFS(dw.PortablePath.root),prefixPath:dw.ppath.relative(dw.PortablePath.root,n.localPath)}:n;n&&n!==a&&n.releaseFs&&n.releaseFs();let o=await M2.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async l=>{let A=D1s(l),f=await N1s({onAbsolute:async I=>await dw.xfs.readFilePromise(I,"utf8"),onRelative:async I=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(dw.ppath.join(a.prefixPath,I),"utf8")},onProject:async I=>await dw.xfs.readFilePromise(dw.ppath.join(r.project.cwd,I),"utf8"),onBuiltin:async I=>await r.project.configuration.firstHook(C=>C.getBuiltinPatch,r.project,I)},l);return{...A,source:f}})));for(let l of o)typeof l.source=="string"&&(l.source=l.source.replace(/\r\n?/g,` -`));return o}async function _Pl(e,{cache:t,project:r}){let n=r.storedPackages.get(e.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=T1s(e),o=r.storedChecksums,l=new M2.ThrowReport,A=await dw.xfs.mktempPromise(),f=dw.ppath.join(A,"source"),I=dw.ppath.join(A,"user"),C=dw.ppath.join(A,".yarn-patch.json"),b=r.configuration.makeFetcher(),E=[];try{let N,B;if(e.locatorHash===a.locatorHash){let F=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l});E.push(()=>F.releaseFs?.()),N=F,B=F}else N=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>N.releaseFs?.()),B=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>B.releaseFs?.());await Promise.all([dw.xfs.copyPromise(f,N.prefixPath,{baseFs:N.packageFs}),dw.xfs.copyPromise(I,B.prefixPath,{baseFs:B.packageFs}),dw.xfs.writeJsonPromise(C,{locator:M2.structUtils.stringifyLocator(e),version:n.version})])}finally{for(let N of E)N()}return dw.xfs.detachTemp(A),I}async function yPl(e,t){let r=dw.npath.fromPortablePath(e).replace(/\\/g,"/"),n=dw.npath.fromPortablePath(t).replace(/\\/g,"/"),{stdout:a,stderr:o}=await M2.execUtils.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,n],{cwd:dw.npath.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(o.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +`):"";await t.mkdirpPromise(mre.ppath.dirname(a.path),{chmod:493,utimes:[mre.constants.SAFE_TIME,mre.constants.SAFE_TIME]}),await t.writeFilePromise(a.path,o,{mode:a.mode}),await t.utimesPromise(a.path,mre.constants.SAFE_TIME,mre.constants.SAFE_TIME)}break;case"patch":await YFe(t,a.path,async()=>{await E1s(a,{baseFs:t,dryRun:r})});break;case"mode change":{let l=(await t.statPromise(a.path)).mode;if(_1s(a.newMode)!==_1s(l))continue;await YFe(t,a.path,async()=>{await t.chmodPromise(a.path,a.newMode)})}break;default:J9t.miscUtils.assertNever(a);break}}function _1s(e){return(e&64)>0}function y1s(e){return e.replace(/\s+$/,"")}function cPl(e,t){return y1s(e)===y1s(t)}async function E1s({hunks:e,path:t},{baseFs:r,dryRun:n=!1}){let a=await r.statSync(t).mode,l=(await r.readFileSync(t,"utf8")).split(/\n/),A=[],f=0,I=0;for(let b of e){let E=Math.max(I,b.header.patched.start+f),N=Math.max(0,E-I),B=Math.max(0,l.length-E-b.header.original.length),F=Math.max(N,B),Q=0,X=0,ae=null;for(;Q<=F;){if(Q<=N&&(X=E-Q,ae=b1s(b,l,X),ae!==null)){Q=-Q;break}if(Q<=B&&(X=E+Q,ae=b1s(b,l,X),ae!==null))break;Q+=1}if(ae===null)throw new oPl.UnmatchedHunkError(e.indexOf(b),b);A.push(ae),f+=Q,I=X+b.header.original.length}if(n)return;let C=0;for(let b of A)for(let E of b)switch(E.type){case"splice":{let N=E.index+C;l.splice(N,E.numToDelete,...E.linesToInsert),C+=E.linesToInsert.length-E.numToDelete}break;case"pop":l.pop();break;case"push":l.push(E.line);break;default:J9t.miscUtils.assertNever(E);break}await r.writeFilePromise(t,l.join(` +`),{mode:a})}function b1s(e,t,r){let n=[];for(let a of e.parts)switch(a.type){case X9t.PatchMutationType.Context:case X9t.PatchMutationType.Deletion:{for(let o of a.lines){let l=t[r];if(l==null||!cPl(l,o))return null;r+=1}a.type===X9t.PatchMutationType.Deletion&&(n.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&n.push({type:"push",line:""}))}break;case X9t.PatchMutationType.Insertion:n.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&n.push({type:"pop"});break;default:J9t.miscUtils.assertNever(a.type);break}return n}});var XFe=H(iB=>{"use strict";Object.defineProperty(iB,"__esModule",{value:!0});iB.parsePatchFile=iB.applyPatchFile=void 0;iB.isPatchDescriptor=B1s;iB.isPatchLocator=w1s;iB.parseDescriptor=APl;iB.parseLocator=dPl;iB.unpatchDescriptor=pPl;iB.unpatchLocator=fPl;iB.ensureUnpatchedDescriptor=IPl;iB.ensureUnpatchedLocator=T1s;iB.makeDescriptor=hPl;iB.makeLocator=mPl;iB.extractPatchFlags=D1s;iB.isParentRequired=CPl;iB.loadPatchFiles=_Pl;iB.extractPackageToDisk=yPl;iB.diffFolders=bPl;iB.makePatchHash=EPl;var M2=Bn(),dw=no(),lPl=f1s(),v1s=Y9t();Object.defineProperty(iB,"parsePatchFile",{enumerable:!0,get:function(){return v1s.parsePatchFile}});var uPl=S1s();Object.defineProperty(iB,"applyPatchFile",{enumerable:!0,get:function(){return uPl.applyPatchFile}});var gPl=/^builtin<([^>]+)>$/;function QFe(e,t){let{protocol:r,source:n,selector:a,params:o}=M2.structUtils.parseRange(e);if(r!=="patch:")throw new Error("Invalid patch range");if(n===null)throw new Error("Patch locators must explicitly define their source");let l=a?a.split(/&/).map(C=>dw.npath.toPortablePath(C)):[],A=o&&typeof o.locator=="string"?M2.structUtils.parseLocator(o.locator):null,f=o&&typeof o.version=="string"?o.version:null,I=t(n);return{parentLocator:A,sourceItem:I,patchPaths:l,sourceVersion:f}}function B1s(e){return e.range.startsWith("patch:")}function w1s(e){return e.reference.startsWith("patch:")}function APl(e){let{sourceItem:t,...r}=QFe(e.range,M2.structUtils.parseDescriptor);return{...r,sourceDescriptor:t}}function dPl(e){let{sourceItem:t,...r}=QFe(e.reference,M2.structUtils.parseLocator);return{...r,sourceLocator:t}}function pPl(e){let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function fPl(e){let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function IPl(e){if(!B1s(e))return e;let{sourceItem:t}=QFe(e.range,M2.structUtils.parseDescriptor);return t}function T1s(e){if(!w1s(e))return e;let{sourceItem:t}=QFe(e.reference,M2.structUtils.parseLocator);return t}function R1s({parentLocator:e,sourceItem:t,patchPaths:r,sourceVersion:n,patchHash:a},o){let l=e!==null?{locator:M2.structUtils.stringifyLocator(e)}:{},A=typeof n<"u"?{version:n}:{},f=typeof a<"u"?{hash:a}:{};return M2.structUtils.makeRange({protocol:"patch:",source:o(t),selector:r.join("&"),params:{...A,...f,...l}})}function hPl(e,{parentLocator:t,sourceDescriptor:r,patchPaths:n}){return M2.structUtils.makeDescriptor(e,R1s({parentLocator:t,sourceItem:r,patchPaths:n},M2.structUtils.stringifyDescriptor))}function mPl(e,{parentLocator:t,sourcePackage:r,patchPaths:n,patchHash:a}){return M2.structUtils.makeLocator(e,R1s({parentLocator:t,sourceItem:r,sourceVersion:r.version,patchPaths:n,patchHash:a},M2.structUtils.stringifyLocator))}function N1s({onAbsolute:e,onRelative:t,onProject:r,onBuiltin:n},a){let o=a.lastIndexOf("!");o!==-1&&(a=a.slice(o+1));let l=a.match(gPl);return l!==null?n(l[1]):a.startsWith("~/")?r(a.slice(2)):dw.ppath.isAbsolute(a)?e(a):t(a)}function D1s(e){let t=e.lastIndexOf("!");return{optional:(t!==-1?new Set(e.slice(0,t).split(/!/)):new Set).has("optional")}}function CPl(e){return N1s({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},e)}async function _Pl(e,t,r){let n=e!==null?await r.fetcher.fetch(e,r):null,a=n&&n.localPath?{packageFs:new dw.CwdFS(dw.PortablePath.root),prefixPath:dw.ppath.relative(dw.PortablePath.root,n.localPath)}:n;n&&n!==a&&n.releaseFs&&n.releaseFs();let o=await M2.miscUtils.releaseAfterUseAsync(async()=>await Promise.all(t.map(async l=>{let A=D1s(l),f=await N1s({onAbsolute:async I=>await dw.xfs.readFilePromise(I,"utf8"),onRelative:async I=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(dw.ppath.join(a.prefixPath,I),"utf8")},onProject:async I=>await dw.xfs.readFilePromise(dw.ppath.join(r.project.cwd,I),"utf8"),onBuiltin:async I=>await r.project.configuration.firstHook(C=>C.getBuiltinPatch,r.project,I)},l);return{...A,source:f}})));for(let l of o)typeof l.source=="string"&&(l.source=l.source.replace(/\r\n?/g,` +`));return o}async function yPl(e,{cache:t,project:r}){let n=r.storedPackages.get(e.locatorHash);if(typeof n>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=T1s(e),o=r.storedChecksums,l=new M2.ThrowReport,A=await dw.xfs.mktempPromise(),f=dw.ppath.join(A,"source"),I=dw.ppath.join(A,"user"),C=dw.ppath.join(A,".yarn-patch.json"),b=r.configuration.makeFetcher(),E=[];try{let N,B;if(e.locatorHash===a.locatorHash){let F=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l});E.push(()=>F.releaseFs?.()),N=F,B=F}else N=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>N.releaseFs?.()),B=await b.fetch(e,{cache:t,project:r,fetcher:b,checksums:o,report:l}),E.push(()=>B.releaseFs?.());await Promise.all([dw.xfs.copyPromise(f,N.prefixPath,{baseFs:N.packageFs}),dw.xfs.copyPromise(I,B.prefixPath,{baseFs:B.packageFs}),dw.xfs.writeJsonPromise(C,{locator:M2.structUtils.stringifyLocator(e),version:n.version})])}finally{for(let N of E)N()}return dw.xfs.detachTemp(A),I}async function bPl(e,t){let r=dw.npath.fromPortablePath(e).replace(/\\/g,"/"),n=dw.npath.fromPortablePath(t).replace(/\\/g,"/"),{stdout:a,stderr:o}=await M2.execUtils.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,n],{cwd:dw.npath.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(o.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': -${o}`);let l=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${M2.miscUtils.escapeRegExp(`/${l(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${M2.miscUtils.escapeRegExp(`/${l(n)}/`)}`,"g"),"$1/").replace(new RegExp(M2.miscUtils.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(M2.miscUtils.escapeRegExp(`${n}/`),"g"),"")}function bPl(e,t){let r=[];for(let{source:n}of e){if(n===null)continue;let a=(0,v1s.parsePatchFile)(n);for(let o of a){let{semverExclusivity:l,...A}=o;l!==null&&t!==null&&!M2.semverUtils.satisfiesWithPrereleases(t,l)||r.push(JSON.stringify(A))}}return M2.hashUtils.makeHash(`${cPl.CACHE_VERSION}`,...r).slice(0,6)}});var k1s=H(Bqr=>{"use strict";Object.defineProperty(Bqr,"__esModule",{value:!0});Bqr.reportHunk=EPl;var rge=Bn(),vqr=Y9t();function EPl(e,{configuration:t,report:r}){for(let n of e.parts)for(let a of n.lines)switch(n.type){case vqr.PatchMutationType.Context:r.reportInfo(null,` ${rge.formatUtils.pretty(t,a,"grey")}`);break;case vqr.PatchMutationType.Deletion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`- ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.REMOVED)}`);break;case vqr.PatchMutationType.Insertion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`+ ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.ADDED)}`);break;default:rge.miscUtils.assertNever(n.type)}}});var x1s=H(K9t=>{"use strict";Object.defineProperty(K9t,"__esModule",{value:!0});K9t.PatchFetcher=void 0;var SPl=(Pa(),vi(Va)),wqr=Bn(),cqe=Bn(),lqe=no(),Tqr=zK(),uqe=SPl.__importStar(XFe()),vPl=Sqr(),BPl=k1s(),Rqr=class{supports(t,r){return!!uqe.isPatchLocator(t)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${cqe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:cqe.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async patchPackage(t,r){let{parentLocator:n,sourceLocator:a,sourceVersion:o,patchPaths:l}=uqe.parseLocator(t),A=await uqe.loadPatchFiles(n,l,r),f=await lqe.xfs.mktempPromise(),I=lqe.ppath.join(f,"current.zip"),C=await r.fetcher.fetch(a,r),b=cqe.structUtils.getIdentVendorPath(t),E=new Tqr.ZipFS(I,{create:!0,level:r.project.configuration.get("compressionLevel")});await cqe.miscUtils.releaseAfterUseAsync(async()=>{await E.copyPromise(b,C.prefixPath,{baseFs:C.packageFs,stableSort:!0})},C.releaseFs),E.saveAndClose();for(let{source:N,optional:B}of A){if(N===null)continue;let F=new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")}),Q=new lqe.CwdFS(lqe.ppath.resolve(lqe.PortablePath.root,b),{baseFs:F});try{await uqe.applyPatchFile(uqe.parsePatchFile(N),{baseFs:Q,version:o})}catch(X){if(!(X instanceof vPl.UnmatchedHunkError))throw X;let ae=r.project.configuration.get("enableInlineHunks"),ne=!ae&&!B?" (set enableInlineHunks for details)":"",ce=`${cqe.structUtils.prettyLocator(r.project.configuration,t)}: ${X.message}${ne}`,fe=ue=>{ae&&(0,BPl.reportHunk)(X.hunk,{configuration:r.project.configuration,report:ue})};if(F.discardAndClose(),B){r.report.reportWarningOnce(wqr.MessageName.PATCH_HUNK_FAILED,ce,{reportExtra:fe});continue}else throw new wqr.ReportError(wqr.MessageName.PATCH_HUNK_FAILED,ce,fe)}F.saveAndClose()}return new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")})}};K9t.PatchFetcher=Rqr});var F1s=H(j9t=>{"use strict";Object.defineProperty(j9t,"__esModule",{value:!0});j9t.PatchResolver=void 0;var wPl=(Pa(),vi(Va)),G1s=Bn(),Q6=wPl.__importStar(XFe()),Nqr=class{supportsDescriptor(t,r){return!!Q6.isPatchDescriptor(t)}supportsLocator(t,r){return!!Q6.isPatchLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){let{patchPaths:a}=Q6.parseDescriptor(t);return a.every(o=>!Q6.isParentRequired(o))?t:G1s.structUtils.bindDescriptor(t,{locator:G1s.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){let{sourceDescriptor:n}=Q6.parseDescriptor(t);return{sourceDescriptor:r.project.configuration.normalizeDependency(n)}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:o}=Q6.parseDescriptor(t),l=await Q6.loadPatchFiles(a,o,n.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let f=Q6.makePatchHash(l,A.version);return[Q6.makeLocator(t,{parentLocator:a,sourcePackage:A,patchPaths:o,patchHash:f})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let{sourceLocator:n}=Q6.parseLocator(t);return{...await r.resolver.resolve(n,r),...t}}};j9t.PatchResolver=Nqr});var L1s=H(Dqr=>{"use strict";Object.defineProperty(Dqr,"__esModule",{value:!0});var TPl=(Pa(),vi(Va)),Z1s=el(),X6=Bn(),_L=no(),gqe=($c(),vi(rg)),z9t=TPl.__importStar(XFe()),Aqe=class extends Z1s.BaseCommand{constructor(){super(...arguments),this.save=gqe.Option.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"}),this.patchFolder=gqe.Option.String()}async execute(){let t=await X6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await X6.Project.find(t,this.context.cwd);if(!n)throw new Z1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=_L.ppath.resolve(this.context.cwd,_L.npath.toPortablePath(this.patchFolder)),o=_L.ppath.join(a,"../source"),l=_L.ppath.join(a,"../.yarn-patch.json");if(!_L.xfs.existsSync(o))throw new gqe.UsageError("The argument folder didn't get created by 'yarn patch'");let A=await z9t.diffFolders(o,a),f=await _L.xfs.readJsonPromise(l),I=X6.structUtils.parseLocator(f.locator,!0);if(!r.storedPackages.has(I.locatorHash))throw new gqe.UsageError("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(A);return}let C=t.get("patchFolder"),b=_L.ppath.join(C,`${X6.structUtils.slugifyLocator(I)}.patch`);await _L.xfs.mkdirPromise(C,{recursive:!0}),await _L.xfs.writeFilePromise(b,A);let E=[],N=new Map;for(let B of r.storedPackages.values()){if(X6.structUtils.isVirtualLocator(B))continue;let F=B.dependencies.get(I.identHash);if(!F)continue;let Q=X6.structUtils.ensureDevirtualizedDescriptor(F),X=z9t.ensureUnpatchedDescriptor(Q),ae=r.storedResolutions.get(X.descriptorHash);if(!ae)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!r.storedPackages.get(ae))throw new Error("Assertion failed: Expected the package to have been registered");let ce=r.tryWorkspaceByLocator(B);if(ce)E.push(ce);else{let fe=r.originalPackages.get(B.locatorHash);if(!fe)throw new Error("Assertion failed: Expected the original package to have been registered");let ue=fe.dependencies.get(F.identHash);if(!ue)throw new Error("Assertion failed: Expected the original dependency to have been registered");N.set(ue.descriptorHash,ue)}}for(let B of E)for(let F of X6.Manifest.hardDependencies){let Q=B.manifest[F].get(I.identHash);if(!Q)continue;let X=z9t.makeDescriptor(Q,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});B.manifest[F].set(Q.identHash,X)}for(let B of N.values()){let F=z9t.makeDescriptor(B,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:X6.structUtils.stringifyIdent(F),description:B.range}},reference:F.range})}await r.persist()}};Aqe.paths=[["patch-commit"]];Aqe.usage=gqe.Command.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Dqr.default=Aqe});var P1s=H(Gqr=>{"use strict";Object.defineProperty(Gqr,"__esModule",{value:!0});var RPl=(Pa(),vi(Va)),V1s=el(),TD=Bn(),kqr=no(),q0e=($c(),vi(rg)),xqr=RPl.__importStar(XFe()),dqe=class extends V1s.BaseCommand{constructor(){super(...arguments),this.update=q0e.Option.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"}),this.json=q0e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=q0e.Option.String()}async execute(){let t=await TD.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TD.Project.find(t,this.context.cwd),a=await TD.Cache.find(t);if(!n)throw new V1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=TD.structUtils.parseLocator(this.package);if(o.reference==="unknown"){let l=TD.miscUtils.mapAndFilter([...r.storedPackages.values()],A=>A.identHash!==o.identHash||TD.structUtils.isVirtualLocator(A)||xqr.isPatchLocator(A)!==this.update?TD.miscUtils.mapAndFilter.skip:A);if(l.length===0)throw new q0e.UsageError("No package found in the project for the given locator");if(l.length>1)throw new q0e.UsageError(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${o}`);let l=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${M2.miscUtils.escapeRegExp(`/${l(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${M2.miscUtils.escapeRegExp(`/${l(n)}/`)}`,"g"),"$1/").replace(new RegExp(M2.miscUtils.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(M2.miscUtils.escapeRegExp(`${n}/`),"g"),"")}function EPl(e,t){let r=[];for(let{source:n}of e){if(n===null)continue;let a=(0,v1s.parsePatchFile)(n);for(let o of a){let{semverExclusivity:l,...A}=o;l!==null&&t!==null&&!M2.semverUtils.satisfiesWithPrereleases(t,l)||r.push(JSON.stringify(A))}}return M2.hashUtils.makeHash(`${lPl.CACHE_VERSION}`,...r).slice(0,6)}});var k1s=H(Bqr=>{"use strict";Object.defineProperty(Bqr,"__esModule",{value:!0});Bqr.reportHunk=SPl;var rge=Bn(),vqr=Y9t();function SPl(e,{configuration:t,report:r}){for(let n of e.parts)for(let a of n.lines)switch(n.type){case vqr.PatchMutationType.Context:r.reportInfo(null,` ${rge.formatUtils.pretty(t,a,"grey")}`);break;case vqr.PatchMutationType.Deletion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`- ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.REMOVED)}`);break;case vqr.PatchMutationType.Insertion:r.reportError(rge.MessageName.FROZEN_LOCKFILE_EXCEPTION,`+ ${rge.formatUtils.pretty(t,a,rge.formatUtils.Type.ADDED)}`);break;default:rge.miscUtils.assertNever(n.type)}}});var x1s=H(K9t=>{"use strict";Object.defineProperty(K9t,"__esModule",{value:!0});K9t.PatchFetcher=void 0;var vPl=(Pa(),vi(Va)),wqr=Bn(),cqe=Bn(),lqe=no(),Tqr=zK(),uqe=vPl.__importStar(XFe()),BPl=Sqr(),wPl=k1s(),Rqr=class{supports(t,r){return!!uqe.isPatchLocator(t)}getLocalPath(t,r){return null}async fetch(t,r){let n=r.checksums.get(t.locatorHash)||null,[a,o,l]=await r.cache.fetchPackageFromCache(t,n,{onHit:()=>r.report.reportCacheHit(t),onMiss:()=>r.report.reportCacheMiss(t,`${cqe.structUtils.prettyLocator(r.project.configuration,t)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(t,r),...r.cacheOptions});return{packageFs:a,releaseFs:o,prefixPath:cqe.structUtils.getIdentVendorPath(t),localPath:this.getLocalPath(t,r),checksum:l}}async patchPackage(t,r){let{parentLocator:n,sourceLocator:a,sourceVersion:o,patchPaths:l}=uqe.parseLocator(t),A=await uqe.loadPatchFiles(n,l,r),f=await lqe.xfs.mktempPromise(),I=lqe.ppath.join(f,"current.zip"),C=await r.fetcher.fetch(a,r),b=cqe.structUtils.getIdentVendorPath(t),E=new Tqr.ZipFS(I,{create:!0,level:r.project.configuration.get("compressionLevel")});await cqe.miscUtils.releaseAfterUseAsync(async()=>{await E.copyPromise(b,C.prefixPath,{baseFs:C.packageFs,stableSort:!0})},C.releaseFs),E.saveAndClose();for(let{source:N,optional:B}of A){if(N===null)continue;let F=new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")}),Q=new lqe.CwdFS(lqe.ppath.resolve(lqe.PortablePath.root,b),{baseFs:F});try{await uqe.applyPatchFile(uqe.parsePatchFile(N),{baseFs:Q,version:o})}catch(X){if(!(X instanceof BPl.UnmatchedHunkError))throw X;let ae=r.project.configuration.get("enableInlineHunks"),ne=!ae&&!B?" (set enableInlineHunks for details)":"",ce=`${cqe.structUtils.prettyLocator(r.project.configuration,t)}: ${X.message}${ne}`,fe=ue=>{ae&&(0,wPl.reportHunk)(X.hunk,{configuration:r.project.configuration,report:ue})};if(F.discardAndClose(),B){r.report.reportWarningOnce(wqr.MessageName.PATCH_HUNK_FAILED,ce,{reportExtra:fe});continue}else throw new wqr.ReportError(wqr.MessageName.PATCH_HUNK_FAILED,ce,fe)}F.saveAndClose()}return new Tqr.ZipFS(I,{level:r.project.configuration.get("compressionLevel")})}};K9t.PatchFetcher=Rqr});var F1s=H(j9t=>{"use strict";Object.defineProperty(j9t,"__esModule",{value:!0});j9t.PatchResolver=void 0;var TPl=(Pa(),vi(Va)),G1s=Bn(),Q6=TPl.__importStar(XFe()),Nqr=class{supportsDescriptor(t,r){return!!Q6.isPatchDescriptor(t)}supportsLocator(t,r){return!!Q6.isPatchLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){let{patchPaths:a}=Q6.parseDescriptor(t);return a.every(o=>!Q6.isParentRequired(o))?t:G1s.structUtils.bindDescriptor(t,{locator:G1s.structUtils.stringifyLocator(r)})}getResolutionDependencies(t,r){let{sourceDescriptor:n}=Q6.parseDescriptor(t);return{sourceDescriptor:r.project.configuration.normalizeDependency(n)}}async getCandidates(t,r,n){if(!n.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:o}=Q6.parseDescriptor(t),l=await Q6.loadPatchFiles(a,o,n.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let f=Q6.makePatchHash(l,A.version);return[Q6.makeLocator(t,{parentLocator:a,sourcePackage:A,patchPaths:o,patchHash:f})]}async getSatisfying(t,r,n,a){let[o]=await this.getCandidates(t,r,a);return{locators:n.filter(l=>l.locatorHash===o.locatorHash),sorted:!1}}async resolve(t,r){let{sourceLocator:n}=Q6.parseLocator(t);return{...await r.resolver.resolve(n,r),...t}}};j9t.PatchResolver=Nqr});var L1s=H(Dqr=>{"use strict";Object.defineProperty(Dqr,"__esModule",{value:!0});var RPl=(Pa(),vi(Va)),Z1s=el(),X6=Bn(),_L=no(),gqe=($c(),vi(rg)),z9t=RPl.__importStar(XFe()),Aqe=class extends Z1s.BaseCommand{constructor(){super(...arguments),this.save=gqe.Option.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"}),this.patchFolder=gqe.Option.String()}async execute(){let t=await X6.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await X6.Project.find(t,this.context.cwd);if(!n)throw new Z1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let a=_L.ppath.resolve(this.context.cwd,_L.npath.toPortablePath(this.patchFolder)),o=_L.ppath.join(a,"../source"),l=_L.ppath.join(a,"../.yarn-patch.json");if(!_L.xfs.existsSync(o))throw new gqe.UsageError("The argument folder didn't get created by 'yarn patch'");let A=await z9t.diffFolders(o,a),f=await _L.xfs.readJsonPromise(l),I=X6.structUtils.parseLocator(f.locator,!0);if(!r.storedPackages.has(I.locatorHash))throw new gqe.UsageError("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(A);return}let C=t.get("patchFolder"),b=_L.ppath.join(C,`${X6.structUtils.slugifyLocator(I)}.patch`);await _L.xfs.mkdirPromise(C,{recursive:!0}),await _L.xfs.writeFilePromise(b,A);let E=[],N=new Map;for(let B of r.storedPackages.values()){if(X6.structUtils.isVirtualLocator(B))continue;let F=B.dependencies.get(I.identHash);if(!F)continue;let Q=X6.structUtils.ensureDevirtualizedDescriptor(F),X=z9t.ensureUnpatchedDescriptor(Q),ae=r.storedResolutions.get(X.descriptorHash);if(!ae)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!r.storedPackages.get(ae))throw new Error("Assertion failed: Expected the package to have been registered");let ce=r.tryWorkspaceByLocator(B);if(ce)E.push(ce);else{let fe=r.originalPackages.get(B.locatorHash);if(!fe)throw new Error("Assertion failed: Expected the original package to have been registered");let ue=fe.dependencies.get(F.identHash);if(!ue)throw new Error("Assertion failed: Expected the original dependency to have been registered");N.set(ue.descriptorHash,ue)}}for(let B of E)for(let F of X6.Manifest.hardDependencies){let Q=B.manifest[F].get(I.identHash);if(!Q)continue;let X=z9t.makeDescriptor(Q,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});B.manifest[F].set(Q.identHash,X)}for(let B of N.values()){let F=z9t.makeDescriptor(B,{parentLocator:null,sourceDescriptor:X6.structUtils.convertLocatorToDescriptor(I),patchPaths:[_L.ppath.join(_L.Filename.home,_L.ppath.relative(r.cwd,b))]});r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:X6.structUtils.stringifyIdent(F),description:B.range}},reference:F.range})}await r.persist()}};Aqe.paths=[["patch-commit"]];Aqe.usage=gqe.Command.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Dqr.default=Aqe});var P1s=H(Gqr=>{"use strict";Object.defineProperty(Gqr,"__esModule",{value:!0});var NPl=(Pa(),vi(Va)),V1s=el(),TD=Bn(),kqr=no(),q0e=($c(),vi(rg)),xqr=NPl.__importStar(XFe()),dqe=class extends V1s.BaseCommand{constructor(){super(...arguments),this.update=q0e.Option.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"}),this.json=q0e.Option.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"}),this.package=q0e.Option.String()}async execute(){let t=await TD.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await TD.Project.find(t,this.context.cwd),a=await TD.Cache.find(t);if(!n)throw new V1s.WorkspaceRequiredError(r.cwd,this.context.cwd);await r.restoreInstallState();let o=TD.structUtils.parseLocator(this.package);if(o.reference==="unknown"){let l=TD.miscUtils.mapAndFilter([...r.storedPackages.values()],A=>A.identHash!==o.identHash||TD.structUtils.isVirtualLocator(A)||xqr.isPatchLocator(A)!==this.update?TD.miscUtils.mapAndFilter.skip:A);if(l.length===0)throw new q0e.UsageError("No package found in the project for the given locator");if(l.length>1)throw new q0e.UsageError(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${l.map(A=>` -- ${TD.structUtils.prettyLocator(t,A)}`).join("")}`);o=l[0]}if(!r.storedPackages.has(o.locatorHash))throw new q0e.UsageError("No package found in the project for the given locator");await TD.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=xqr.ensureUnpatchedLocator(o),f=await xqr.extractPackageToDisk(o,{cache:a,project:r});l.reportJson({locator:TD.structUtils.stringifyLocator(A),path:kqr.npath.fromPortablePath(f)});let I=this.update?" along with its current modifications":"";l.reportInfo(TD.MessageName.UNNAMED,`Package ${TD.structUtils.prettyLocator(t,A)} got extracted with success${I}!`),l.reportInfo(TD.MessageName.UNNAMED,`You can now edit the following folder: ${TD.formatUtils.pretty(t,kqr.npath.fromPortablePath(f),"magenta")}`),l.reportInfo(TD.MessageName.UNNAMED,`Once you are done run ${TD.formatUtils.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${kqr.npath.fromPortablePath(f)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};dqe.paths=[["patch"]];dqe.usage=q0e.Command.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});Gqr.default=dqe});var Q1s=H(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.patchUtils=zO.PatchCommand=zO.PatchCommitCommand=zO.PatchResolver=zO.PatchFetcher=void 0;var Fqr=(Pa(),vi(Va)),W1s=Bn(),O1s=x1s();Object.defineProperty(zO,"PatchFetcher",{enumerable:!0,get:function(){return O1s.PatchFetcher}});var M1s=F1s();Object.defineProperty(zO,"PatchResolver",{enumerable:!0,get:function(){return M1s.PatchResolver}});var H1s=Fqr.__importDefault(L1s());zO.PatchCommitCommand=H1s.default;var Y1s=Fqr.__importDefault(P1s());zO.PatchCommand=Y1s.default;var NPl=Fqr.__importStar(XFe());zO.patchUtils=NPl;var DPl={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:W1s.SettingsType.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:W1s.SettingsType.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[H1s.default,Y1s.default],fetchers:[O1s.PatchFetcher],resolvers:[M1s.PatchResolver]};zO.default=DPl});var K1s=H(q9t=>{"use strict";Object.defineProperty(q9t,"__esModule",{value:!0});q9t.PnpmLinker=void 0;var MS=Bn(),Wm=no(),X1s=mGe(),Zqr=($c(),vi(rg)),Lqr=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=a.pathsByLocator.get(t.locatorHash);if(typeof o>"u")throw new Zqr.UsageError(`Couldn't find ${MS.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed pnpm map - running an install might help`);return o.packageLocation}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=t.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(o){let f=a.locatorByPath.get(o[1]);if(f)return f}let l=t,A=t;do{A=l,l=Wm.ppath.dirname(A);let f=a.locatorByPath.get(A);if(f)return f}while(l!==A);return null}makeInstaller(t){return new Vqr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="pnpm"}};q9t.PnpmLinker=Lqr;var Vqr=class{constructor(t){this.opts=t,this.asyncActions=new MS.miscUtils.AsyncActions(10),this.customData={pathsByLocator:new Map,locatorByPath:new Map},this.indexFolderPromise=(0,Wm.setupCopyIndex)(Wm.xfs,{indexPath:Wm.ppath.join(t.project.configuration.get("globalFolder"),"index")})}attachCustomData(t){}async installPackage(t,r,n){switch(t.linkType){case MS.LinkType.SOFT:return this.installPackageSoft(t,r,n);case MS.LinkType.HARD:return this.installPackageHard(t,r,n)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(t,r,n){let a=Wm.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),o=this.opts.project.tryWorkspaceByLocator(t)?Wm.ppath.join(a,Wm.Filename.nodeModules):null;return this.customData.pathsByLocator.set(t.locatorHash,{packageLocation:a,dependenciesLocation:o}),{packageLocation:a,buildRequest:null}}async installPackageHard(t,r,n){let a=xPl(t,{project:this.opts.project}),o=a.packageLocation;this.customData.locatorByPath.set(o,MS.structUtils.stringifyLocator(t)),this.customData.pathsByLocator.set(t.locatorHash,a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{await Wm.xfs.mkdirPromise(o,{recursive:!0}),await Wm.xfs.copyPromise(o,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=MS.structUtils.isVirtualLocator(t)?MS.structUtils.devirtualizeLocator(t):t,f={manifest:await MS.Manifest.tryFind(r.prefixPath,{baseFs:r.packageFs})??new MS.Manifest,misc:{hasBindingGyp:X1s.jsInstallUtils.hasBindingGyp(r)}},I=this.opts.project.getDependencyMeta(A,t.version),C=X1s.jsInstallUtils.extractBuildRequest(t,f,I,{configuration:this.opts.project.configuration});return{packageLocation:o,buildRequest:C}}async attachInternalDependencies(t,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!J1s(t,{project:this.opts.project}))return;let n=this.customData.pathsByLocator.get(t.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(t)})`);let{dependenciesLocation:a}=n;a&&this.asyncActions.reduce(t.locatorHash,async o=>{await Wm.xfs.mkdirPromise(a,{recursive:!0});let l=await GPl(a),A=new Map(l),f=[o],I=(b,E)=>{let N=E;J1s(E,{project:this.opts.project})||(this.opts.report.reportWarningOnce(MS.MessageName.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),N=MS.structUtils.devirtualizeLocator(E));let B=this.customData.pathsByLocator.get(N.locatorHash);if(typeof B>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(E)})`);let F=MS.structUtils.stringifyIdent(b),Q=Wm.ppath.join(a,F),X=Wm.ppath.relative(Wm.ppath.dirname(Q),B.packageLocation),ae=A.get(F);A.delete(F),f.push(Promise.resolve().then(async()=>{if(ae){if(ae.isSymbolicLink()&&await Wm.xfs.readlinkPromise(Q)===X)return;await Wm.xfs.removePromise(Q)}await Wm.xfs.mkdirpPromise(Wm.ppath.dirname(Q)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")===MS.WindowsLinkType.JUNCTIONS?await Wm.xfs.symlinkPromise(B.packageLocation,Q,"junction"):await Wm.xfs.symlinkPromise(X,Q)}))},C=!1;for(let[b,E]of r)b.identHash===t.identHash&&(C=!0),I(b,E);!C&&!this.opts.project.tryWorkspaceByLocator(t)&&I(MS.structUtils.convertLocatorToDescriptor(t),t),f.push(FPl(a,A)),await Promise.all(f)})}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let t=U1s(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await Wm.xfs.removePromise(t);else{let r;try{r=new Set(await Wm.xfs.readdirPromise(t))}catch{r=new Set}for(let{dependenciesLocation:n}of this.customData.pathsByLocator.values()){if(!n)continue;let a=Wm.ppath.contains(t,n);if(a===null)continue;let[o]=a.split(Wm.ppath.sep);r.delete(o)}await Promise.all([...r].map(async n=>{await Wm.xfs.removePromise(Wm.ppath.join(t,n))}))}return await this.asyncActions.wait(),await Pqr(t),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await Pqr(kPl(this.opts.project)),{customData:this.customData}}};function kPl(e){return Wm.ppath.join(e.cwd,Wm.Filename.nodeModules)}function U1s(e){return e.configuration.get("pnpmStoreFolder")}function xPl(e,{project:t}){let r=MS.structUtils.slugifyLocator(e),n=U1s(t),a=Wm.ppath.join(n,r,"package"),o=Wm.ppath.join(n,r,Wm.Filename.nodeModules);return{packageLocation:a,dependenciesLocation:o}}function J1s(e,{project:t}){return!MS.structUtils.isVirtualLocator(e)||!t.tryWorkspaceByLocator(e)}async function GPl(e){let t=new Map,r=[];try{r=await Wm.xfs.readdirPromise(e,{withFileTypes:!0})}catch(n){if(n.code!=="ENOENT")throw n}try{for(let n of r)if(!n.name.startsWith("."))if(n.name.startsWith("@")){let a=await Wm.xfs.readdirPromise(Wm.ppath.join(e,n.name),{withFileTypes:!0});if(a.length===0)t.set(n.name,n);else for(let o of a)t.set(`${n.name}/${o.name}`,o)}else t.set(n.name,n)}catch(n){if(n.code!=="ENOENT")throw n}return t}async function FPl(e,t){let r=[],n=new Set;for(let a of t.keys()){r.push(Wm.xfs.removePromise(Wm.ppath.join(e,a)));let o=MS.structUtils.tryParseIdent(a)?.scope;o&&n.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...n].map(a=>Pqr(Wm.ppath.join(e,a)))))}async function Pqr(e){try{await Wm.xfs.rmdirPromise(e)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY"&&t.code!=="EBUSY")throw t}}});var z1s=H(pqe=>{"use strict";Object.defineProperty(pqe,"__esModule",{value:!0});pqe.PnpmLinker=void 0;var ZPl=Bn(),j1s=K1s();Object.defineProperty(pqe,"PnpmLinker",{enumerable:!0,get:function(){return j1s.PnpmLinker}});var LPl={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:ZPl.SettingsType.ABSOLUTE_PATH,default:"./node_modules/.store"}},linkers:[j1s.PnpmLinker]};pqe.default=LPl});var Wqr=H(lJ=>{"use strict";Object.defineProperty(lJ,"__esModule",{value:!0});lJ.ActionType=void 0;lJ.findVcsRoot=VPl;lJ.isYarnFile=PPl;lJ.expandDirectory=WPl;lJ.checkConsensus=$9t;lJ.findConsensus=OPl;lJ.getCommitPrefix=q1s;lJ.genCommitMessage=HPl;var nge=no(),$0e;(function(e){e[e.CREATE=0]="CREATE",e[e.DELETE=1]="DELETE",e[e.ADD=2]="ADD",e[e.REMOVE=3]="REMOVE",e[e.MODIFY=4]="MODIFY"})($0e||(lJ.ActionType=$0e={}));async function VPl(e,{marker:t}){do if(!nge.xfs.existsSync(nge.ppath.join(e,t)))e=nge.ppath.dirname(e);else return e;while(e!=="/");return null}function PPl(e,{roots:t,names:r}){if(r.has(nge.ppath.basename(e)))return!0;do if(!t.has(e))e=nge.ppath.dirname(e);else return!0;while(e!=="/");return!1}function WPl(e){let t=[],r=[e];for(;r.length>0;){let n=r.pop(),a=nge.xfs.readdirSync(n);for(let o of a){let l=nge.ppath.resolve(n,o);nge.xfs.lstatSync(l).isDirectory()?r.push(l):t.push(l)}}return t}function $9t(e,t){let r=0,n=0;for(let a of e)a!=="wip"&&(t.test(a)?r+=1:n+=1);return r>=n}function OPl(e){let t=$9t(e,/^(\w\(\w+\):\s*)?\w+s/),r=$9t(e,/^(\w\(\w+\):\s*)?[A-Z]/),n=$9t(e,/^\w\(\w+\):/);return{useThirdPerson:t,useUpperCase:r,useComponent:n}}function q1s(e){return e.useComponent?"chore(yarn): ":""}var MPl=new Map([[$0e.CREATE,"create"],[$0e.DELETE,"delete"],[$0e.ADD,"add"],[$0e.REMOVE,"remove"],[$0e.MODIFY,"update"]]);function HPl(e,t){let r=q1s(e),n=[],a=t.slice().sort((o,l)=>o[0]-l[0]);for(;a.length>0;){let[o,l]=a.shift(),A=MPl.get(o);e.useUpperCase&&n.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),e.useThirdPerson&&(A+="s");let f=[l];for(;a.length>0&&a[0][0]===o;){let[,C]=a.shift();f.push(C)}f.sort();let I=f.shift();f.length===1?I+=" (and one other)":f.length>1&&(I+=` (and ${f.length} others)`),n.push(`${A} ${I}`)}return`${r}${n.join(", ")}`}});var e2s=H(eVt=>{"use strict";Object.defineProperty(eVt,"__esModule",{value:!0});eVt.Driver=void 0;var YPl=(Pa(),vi(Va)),mx=Bn(),JFe=no(),K1=YPl.__importStar(Wqr()),QPl="Commit generated via `yarn stage`",XPl=11;async function $1s(e){let{code:t,stdout:r}=await mx.execUtils.execvp("git",["log","-1","--pretty=format:%H"],{cwd:e});return t===0?r.trim():null}async function JPl(e,t){let r=[],n=t.filter(I=>JFe.ppath.basename(I.path)==="package.json");for(let{action:I,path:C}of n){let b=JFe.ppath.relative(e,C);if(I===K1.ActionType.MODIFY){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N),F=await mx.Manifest.fromFile(C),Q=new Map([...F.dependencies,...F.devDependencies]),X=new Map([...B.dependencies,...B.devDependencies]);for(let[ae,ne]of X){let ce=mx.structUtils.stringifyIdent(ne),fe=Q.get(ae);fe?fe.range!==ne.range&&r.push([K1.ActionType.MODIFY,`${ce} to ${fe.range}`]):r.push([K1.ActionType.REMOVE,ce])}for(let[ae,ne]of Q)X.has(ae)||r.push([K1.ActionType.ADD,mx.structUtils.stringifyIdent(ne)])}else if(I===K1.ActionType.CREATE){let E=await mx.Manifest.fromFile(C);E.name?r.push([K1.ActionType.CREATE,mx.structUtils.stringifyIdent(E.name)]):r.push([K1.ActionType.CREATE,"a package"])}else if(I===K1.ActionType.DELETE){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N);B.name?r.push([K1.ActionType.DELETE,mx.structUtils.stringifyIdent(B.name)]):r.push([K1.ActionType.DELETE,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:o}=await mx.execUtils.execvp("git",["log",`-${XPl}`,"--pretty=format:%s"],{cwd:e}),l=a===0?o.split(/\n/g).filter(I=>I!==""):[],A=K1.findConsensus(l);return K1.genCommitMessage(A,r)}var UPl={[K1.ActionType.CREATE]:[" A ","?? "],[K1.ActionType.MODIFY]:[" M "],[K1.ActionType.DELETE]:[" D "]},KPl={[K1.ActionType.CREATE]:["A "],[K1.ActionType.MODIFY]:["M "],[K1.ActionType.DELETE]:["D "]};eVt.Driver={async findRoot(e){return await K1.findVcsRoot(e,{marker:".git"})},async filterChanges(e,t,r,n){let{stdout:a}=await mx.execUtils.execvp("git",["status","-s"],{cwd:e,strict:!0}),o=a.toString().split(/\n/g),l=n?.staged?KPl:UPl;return[].concat(...o.map(f=>{if(f==="")return[];let I=f.slice(0,3),C=JFe.ppath.resolve(e,f.slice(3));if(!n?.staged&&I==="?? "&&f.endsWith("/"))return K1.expandDirectory(C).map(b=>({action:K1.ActionType.CREATE,path:b}));{let E=[K1.ActionType.CREATE,K1.ActionType.MODIFY,K1.ActionType.DELETE].find(N=>l[N].includes(I));return E!==void 0?[{action:E,path:C}]:[]}})).filter(f=>K1.isYarnFile(f.path,{roots:t,names:r}))},async genCommitMessage(e,t){return await JPl(e,t)},async makeStage(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["add","--",...r],{cwd:e,strict:!0})},async makeCommit(e,t,r){let n=t.map(a=>JFe.npath.fromPortablePath(a.path));await mx.execUtils.execvp("git",["add","-N","--",...n],{cwd:e,strict:!0}),await mx.execUtils.execvp("git",["commit","-m",`${r} +- ${TD.structUtils.prettyLocator(t,A)}`).join("")}`);o=l[0]}if(!r.storedPackages.has(o.locatorHash))throw new q0e.UsageError("No package found in the project for the given locator");await TD.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async l=>{let A=xqr.ensureUnpatchedLocator(o),f=await xqr.extractPackageToDisk(o,{cache:a,project:r});l.reportJson({locator:TD.structUtils.stringifyLocator(A),path:kqr.npath.fromPortablePath(f)});let I=this.update?" along with its current modifications":"";l.reportInfo(TD.MessageName.UNNAMED,`Package ${TD.structUtils.prettyLocator(t,A)} got extracted with success${I}!`),l.reportInfo(TD.MessageName.UNNAMED,`You can now edit the following folder: ${TD.formatUtils.pretty(t,kqr.npath.fromPortablePath(f),"magenta")}`),l.reportInfo(TD.MessageName.UNNAMED,`Once you are done run ${TD.formatUtils.pretty(t,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${kqr.npath.fromPortablePath(f)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};dqe.paths=[["patch"]];dqe.usage=q0e.Command.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});Gqr.default=dqe});var Q1s=H(zO=>{"use strict";Object.defineProperty(zO,"__esModule",{value:!0});zO.patchUtils=zO.PatchCommand=zO.PatchCommitCommand=zO.PatchResolver=zO.PatchFetcher=void 0;var Fqr=(Pa(),vi(Va)),W1s=Bn(),O1s=x1s();Object.defineProperty(zO,"PatchFetcher",{enumerable:!0,get:function(){return O1s.PatchFetcher}});var M1s=F1s();Object.defineProperty(zO,"PatchResolver",{enumerable:!0,get:function(){return M1s.PatchResolver}});var H1s=Fqr.__importDefault(L1s());zO.PatchCommitCommand=H1s.default;var Y1s=Fqr.__importDefault(P1s());zO.PatchCommand=Y1s.default;var DPl=Fqr.__importStar(XFe());zO.patchUtils=DPl;var kPl={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:W1s.SettingsType.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:W1s.SettingsType.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[H1s.default,Y1s.default],fetchers:[O1s.PatchFetcher],resolvers:[M1s.PatchResolver]};zO.default=kPl});var K1s=H(q9t=>{"use strict";Object.defineProperty(q9t,"__esModule",{value:!0});q9t.PnpmLinker=void 0;var MS=Bn(),Wm=no(),X1s=mGe(),Zqr=($c(),vi(rg)),Lqr=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(t,r){return this.isEnabled(r)}async findPackageLocation(t,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=a.pathsByLocator.get(t.locatorHash);if(typeof o>"u")throw new Zqr.UsageError(`Couldn't find ${MS.structUtils.prettyLocator(r.project.configuration,t)} in the currently installed pnpm map - running an install might help`);return o.packageLocation}async findPackageLocator(t,r){if(!this.isEnabled(r))return null;let n=this.getCustomDataKey(),a=r.project.linkersCustomData.get(n);if(!a)throw new Zqr.UsageError(`The project in ${MS.formatUtils.pretty(r.project.configuration,`${r.project.cwd}/package.json`,MS.formatUtils.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let o=t.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(o){let f=a.locatorByPath.get(o[1]);if(f)return f}let l=t,A=t;do{A=l,l=Wm.ppath.dirname(A);let f=a.locatorByPath.get(A);if(f)return f}while(l!==A);return null}makeInstaller(t){return new Vqr(t)}isEnabled(t){return t.project.configuration.get("nodeLinker")==="pnpm"}};q9t.PnpmLinker=Lqr;var Vqr=class{constructor(t){this.opts=t,this.asyncActions=new MS.miscUtils.AsyncActions(10),this.customData={pathsByLocator:new Map,locatorByPath:new Map},this.indexFolderPromise=(0,Wm.setupCopyIndex)(Wm.xfs,{indexPath:Wm.ppath.join(t.project.configuration.get("globalFolder"),"index")})}attachCustomData(t){}async installPackage(t,r,n){switch(t.linkType){case MS.LinkType.SOFT:return this.installPackageSoft(t,r,n);case MS.LinkType.HARD:return this.installPackageHard(t,r,n)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(t,r,n){let a=Wm.ppath.resolve(r.packageFs.getRealPath(),r.prefixPath),o=this.opts.project.tryWorkspaceByLocator(t)?Wm.ppath.join(a,Wm.Filename.nodeModules):null;return this.customData.pathsByLocator.set(t.locatorHash,{packageLocation:a,dependenciesLocation:o}),{packageLocation:a,buildRequest:null}}async installPackageHard(t,r,n){let a=GPl(t,{project:this.opts.project}),o=a.packageLocation;this.customData.locatorByPath.set(o,MS.structUtils.stringifyLocator(t)),this.customData.pathsByLocator.set(t.locatorHash,a),n.holdFetchResult(this.asyncActions.set(t.locatorHash,async()=>{await Wm.xfs.mkdirPromise(o,{recursive:!0}),await Wm.xfs.copyPromise(o,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=MS.structUtils.isVirtualLocator(t)?MS.structUtils.devirtualizeLocator(t):t,f={manifest:await MS.Manifest.tryFind(r.prefixPath,{baseFs:r.packageFs})??new MS.Manifest,misc:{hasBindingGyp:X1s.jsInstallUtils.hasBindingGyp(r)}},I=this.opts.project.getDependencyMeta(A,t.version),C=X1s.jsInstallUtils.extractBuildRequest(t,f,I,{configuration:this.opts.project.configuration});return{packageLocation:o,buildRequest:C}}async attachInternalDependencies(t,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!J1s(t,{project:this.opts.project}))return;let n=this.customData.pathsByLocator.get(t.locatorHash);if(typeof n>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(t)})`);let{dependenciesLocation:a}=n;a&&this.asyncActions.reduce(t.locatorHash,async o=>{await Wm.xfs.mkdirPromise(a,{recursive:!0});let l=await FPl(a),A=new Map(l),f=[o],I=(b,E)=>{let N=E;J1s(E,{project:this.opts.project})||(this.opts.report.reportWarningOnce(MS.MessageName.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),N=MS.structUtils.devirtualizeLocator(E));let B=this.customData.pathsByLocator.get(N.locatorHash);if(typeof B>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${MS.structUtils.stringifyLocator(E)})`);let F=MS.structUtils.stringifyIdent(b),Q=Wm.ppath.join(a,F),X=Wm.ppath.relative(Wm.ppath.dirname(Q),B.packageLocation),ae=A.get(F);A.delete(F),f.push(Promise.resolve().then(async()=>{if(ae){if(ae.isSymbolicLink()&&await Wm.xfs.readlinkPromise(Q)===X)return;await Wm.xfs.removePromise(Q)}await Wm.xfs.mkdirpPromise(Wm.ppath.dirname(Q)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")===MS.WindowsLinkType.JUNCTIONS?await Wm.xfs.symlinkPromise(B.packageLocation,Q,"junction"):await Wm.xfs.symlinkPromise(X,Q)}))},C=!1;for(let[b,E]of r)b.identHash===t.identHash&&(C=!0),I(b,E);!C&&!this.opts.project.tryWorkspaceByLocator(t)&&I(MS.structUtils.convertLocatorToDescriptor(t),t),f.push(ZPl(a,A)),await Promise.all(f)})}async attachExternalDependents(t,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let t=U1s(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await Wm.xfs.removePromise(t);else{let r;try{r=new Set(await Wm.xfs.readdirPromise(t))}catch{r=new Set}for(let{dependenciesLocation:n}of this.customData.pathsByLocator.values()){if(!n)continue;let a=Wm.ppath.contains(t,n);if(a===null)continue;let[o]=a.split(Wm.ppath.sep);r.delete(o)}await Promise.all([...r].map(async n=>{await Wm.xfs.removePromise(Wm.ppath.join(t,n))}))}return await this.asyncActions.wait(),await Pqr(t),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await Pqr(xPl(this.opts.project)),{customData:this.customData}}};function xPl(e){return Wm.ppath.join(e.cwd,Wm.Filename.nodeModules)}function U1s(e){return e.configuration.get("pnpmStoreFolder")}function GPl(e,{project:t}){let r=MS.structUtils.slugifyLocator(e),n=U1s(t),a=Wm.ppath.join(n,r,"package"),o=Wm.ppath.join(n,r,Wm.Filename.nodeModules);return{packageLocation:a,dependenciesLocation:o}}function J1s(e,{project:t}){return!MS.structUtils.isVirtualLocator(e)||!t.tryWorkspaceByLocator(e)}async function FPl(e){let t=new Map,r=[];try{r=await Wm.xfs.readdirPromise(e,{withFileTypes:!0})}catch(n){if(n.code!=="ENOENT")throw n}try{for(let n of r)if(!n.name.startsWith("."))if(n.name.startsWith("@")){let a=await Wm.xfs.readdirPromise(Wm.ppath.join(e,n.name),{withFileTypes:!0});if(a.length===0)t.set(n.name,n);else for(let o of a)t.set(`${n.name}/${o.name}`,o)}else t.set(n.name,n)}catch(n){if(n.code!=="ENOENT")throw n}return t}async function ZPl(e,t){let r=[],n=new Set;for(let a of t.keys()){r.push(Wm.xfs.removePromise(Wm.ppath.join(e,a)));let o=MS.structUtils.tryParseIdent(a)?.scope;o&&n.add(`@${o}`)}return Promise.all(r).then(()=>Promise.all([...n].map(a=>Pqr(Wm.ppath.join(e,a)))))}async function Pqr(e){try{await Wm.xfs.rmdirPromise(e)}catch(t){if(t.code!=="ENOENT"&&t.code!=="ENOTEMPTY"&&t.code!=="EBUSY")throw t}}});var z1s=H(pqe=>{"use strict";Object.defineProperty(pqe,"__esModule",{value:!0});pqe.PnpmLinker=void 0;var LPl=Bn(),j1s=K1s();Object.defineProperty(pqe,"PnpmLinker",{enumerable:!0,get:function(){return j1s.PnpmLinker}});var VPl={configuration:{pnpmStoreFolder:{description:"By default, the store is stored in the 'node_modules/.store' of the project. Sometimes in CI scenario's it is convenient to store this in a different location so it can be cached and reused.",type:LPl.SettingsType.ABSOLUTE_PATH,default:"./node_modules/.store"}},linkers:[j1s.PnpmLinker]};pqe.default=VPl});var Wqr=H(lJ=>{"use strict";Object.defineProperty(lJ,"__esModule",{value:!0});lJ.ActionType=void 0;lJ.findVcsRoot=PPl;lJ.isYarnFile=WPl;lJ.expandDirectory=OPl;lJ.checkConsensus=$9t;lJ.findConsensus=MPl;lJ.getCommitPrefix=q1s;lJ.genCommitMessage=YPl;var nge=no(),$0e;(function(e){e[e.CREATE=0]="CREATE",e[e.DELETE=1]="DELETE",e[e.ADD=2]="ADD",e[e.REMOVE=3]="REMOVE",e[e.MODIFY=4]="MODIFY"})($0e||(lJ.ActionType=$0e={}));async function PPl(e,{marker:t}){do if(!nge.xfs.existsSync(nge.ppath.join(e,t)))e=nge.ppath.dirname(e);else return e;while(e!=="/");return null}function WPl(e,{roots:t,names:r}){if(r.has(nge.ppath.basename(e)))return!0;do if(!t.has(e))e=nge.ppath.dirname(e);else return!0;while(e!=="/");return!1}function OPl(e){let t=[],r=[e];for(;r.length>0;){let n=r.pop(),a=nge.xfs.readdirSync(n);for(let o of a){let l=nge.ppath.resolve(n,o);nge.xfs.lstatSync(l).isDirectory()?r.push(l):t.push(l)}}return t}function $9t(e,t){let r=0,n=0;for(let a of e)a!=="wip"&&(t.test(a)?r+=1:n+=1);return r>=n}function MPl(e){let t=$9t(e,/^(\w\(\w+\):\s*)?\w+s/),r=$9t(e,/^(\w\(\w+\):\s*)?[A-Z]/),n=$9t(e,/^\w\(\w+\):/);return{useThirdPerson:t,useUpperCase:r,useComponent:n}}function q1s(e){return e.useComponent?"chore(yarn): ":""}var HPl=new Map([[$0e.CREATE,"create"],[$0e.DELETE,"delete"],[$0e.ADD,"add"],[$0e.REMOVE,"remove"],[$0e.MODIFY,"update"]]);function YPl(e,t){let r=q1s(e),n=[],a=t.slice().sort((o,l)=>o[0]-l[0]);for(;a.length>0;){let[o,l]=a.shift(),A=HPl.get(o);e.useUpperCase&&n.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),e.useThirdPerson&&(A+="s");let f=[l];for(;a.length>0&&a[0][0]===o;){let[,C]=a.shift();f.push(C)}f.sort();let I=f.shift();f.length===1?I+=" (and one other)":f.length>1&&(I+=` (and ${f.length} others)`),n.push(`${A} ${I}`)}return`${r}${n.join(", ")}`}});var e2s=H(eVt=>{"use strict";Object.defineProperty(eVt,"__esModule",{value:!0});eVt.Driver=void 0;var QPl=(Pa(),vi(Va)),mx=Bn(),JFe=no(),K1=QPl.__importStar(Wqr()),XPl="Commit generated via `yarn stage`",JPl=11;async function $1s(e){let{code:t,stdout:r}=await mx.execUtils.execvp("git",["log","-1","--pretty=format:%H"],{cwd:e});return t===0?r.trim():null}async function UPl(e,t){let r=[],n=t.filter(I=>JFe.ppath.basename(I.path)==="package.json");for(let{action:I,path:C}of n){let b=JFe.ppath.relative(e,C);if(I===K1.ActionType.MODIFY){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N),F=await mx.Manifest.fromFile(C),Q=new Map([...F.dependencies,...F.devDependencies]),X=new Map([...B.dependencies,...B.devDependencies]);for(let[ae,ne]of X){let ce=mx.structUtils.stringifyIdent(ne),fe=Q.get(ae);fe?fe.range!==ne.range&&r.push([K1.ActionType.MODIFY,`${ce} to ${fe.range}`]):r.push([K1.ActionType.REMOVE,ce])}for(let[ae,ne]of Q)X.has(ae)||r.push([K1.ActionType.ADD,mx.structUtils.stringifyIdent(ne)])}else if(I===K1.ActionType.CREATE){let E=await mx.Manifest.fromFile(C);E.name?r.push([K1.ActionType.CREATE,mx.structUtils.stringifyIdent(E.name)]):r.push([K1.ActionType.CREATE,"a package"])}else if(I===K1.ActionType.DELETE){let E=await $1s(e),{stdout:N}=await mx.execUtils.execvp("git",["show",`${E}:${b}`],{cwd:e,strict:!0}),B=await mx.Manifest.fromText(N);B.name?r.push([K1.ActionType.DELETE,mx.structUtils.stringifyIdent(B.name)]):r.push([K1.ActionType.DELETE,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:o}=await mx.execUtils.execvp("git",["log",`-${JPl}`,"--pretty=format:%s"],{cwd:e}),l=a===0?o.split(/\n/g).filter(I=>I!==""):[],A=K1.findConsensus(l);return K1.genCommitMessage(A,r)}var KPl={[K1.ActionType.CREATE]:[" A ","?? "],[K1.ActionType.MODIFY]:[" M "],[K1.ActionType.DELETE]:[" D "]},jPl={[K1.ActionType.CREATE]:["A "],[K1.ActionType.MODIFY]:["M "],[K1.ActionType.DELETE]:["D "]};eVt.Driver={async findRoot(e){return await K1.findVcsRoot(e,{marker:".git"})},async filterChanges(e,t,r,n){let{stdout:a}=await mx.execUtils.execvp("git",["status","-s"],{cwd:e,strict:!0}),o=a.toString().split(/\n/g),l=n?.staged?jPl:KPl;return[].concat(...o.map(f=>{if(f==="")return[];let I=f.slice(0,3),C=JFe.ppath.resolve(e,f.slice(3));if(!n?.staged&&I==="?? "&&f.endsWith("/"))return K1.expandDirectory(C).map(b=>({action:K1.ActionType.CREATE,path:b}));{let E=[K1.ActionType.CREATE,K1.ActionType.MODIFY,K1.ActionType.DELETE].find(N=>l[N].includes(I));return E!==void 0?[{action:E,path:C}]:[]}})).filter(f=>K1.isYarnFile(f.path,{roots:t,names:r}))},async genCommitMessage(e,t){return await UPl(e,t)},async makeStage(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["add","--",...r],{cwd:e,strict:!0})},async makeCommit(e,t,r){let n=t.map(a=>JFe.npath.fromPortablePath(a.path));await mx.execUtils.execvp("git",["add","-N","--",...n],{cwd:e,strict:!0}),await mx.execUtils.execvp("git",["commit","-m",`${r} -${QPl} -`,"--",...n],{cwd:e,strict:!0})},async makeReset(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["reset","HEAD","--",...r],{cwd:e,strict:!0})}}});var r2s=H(Oqr=>{"use strict";Object.defineProperty(Oqr,"__esModule",{value:!0});var jPl=el(),t2s=Bn(),eye=no(),UFe=($c(),vi(rg)),zPl=e2s(),qPl=[zPl.Driver],fqe=class extends jPl.BaseCommand{constructor(){super(...arguments),this.commit=UFe.Option.Boolean("-c,--commit",!1,{description:"Commit the staged files"}),this.reset=UFe.Option.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"}),this.dryRun=UFe.Option.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"}),this.update=UFe.Option.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let t=await t2s.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await t2s.Project.find(t,this.context.cwd),{driver:n,root:a}=await $Pl(r.cwd),o=[t.get("cacheFolder"),t.get("globalFolder"),t.get("virtualFolder"),t.get("yarnPath")];await t.triggerHook(C=>C.populateYarnPaths,r,C=>{o.push(C)});let l=new Set;for(let C of o)for(let b of eWl(a,C))l.add(b);let A=new Set([t.get("rcFilename"),eye.Filename.lockfile,eye.Filename.manifest]),f=await n.filterChanges(a,l,A),I=await n.genCommitMessage(a,f);if(this.dryRun)if(this.commit)this.context.stdout.write(`${I} +${XPl} +`,"--",...n],{cwd:e,strict:!0})},async makeReset(e,t){let r=t.map(n=>JFe.npath.fromPortablePath(n.path));await mx.execUtils.execvp("git",["reset","HEAD","--",...r],{cwd:e,strict:!0})}}});var r2s=H(Oqr=>{"use strict";Object.defineProperty(Oqr,"__esModule",{value:!0});var zPl=el(),t2s=Bn(),eye=no(),UFe=($c(),vi(rg)),qPl=e2s(),$Pl=[qPl.Driver],fqe=class extends zPl.BaseCommand{constructor(){super(...arguments),this.commit=UFe.Option.Boolean("-c,--commit",!1,{description:"Commit the staged files"}),this.reset=UFe.Option.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"}),this.dryRun=UFe.Option.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"}),this.update=UFe.Option.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let t=await t2s.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await t2s.Project.find(t,this.context.cwd),{driver:n,root:a}=await eWl(r.cwd),o=[t.get("cacheFolder"),t.get("globalFolder"),t.get("virtualFolder"),t.get("yarnPath")];await t.triggerHook(C=>C.populateYarnPaths,r,C=>{o.push(C)});let l=new Set;for(let C of o)for(let b of tWl(a,C))l.add(b);let A=new Set([t.get("rcFilename"),eye.Filename.lockfile,eye.Filename.manifest]),f=await n.filterChanges(a,l,A),I=await n.genCommitMessage(a,f);if(this.dryRun)if(this.commit)this.context.stdout.write(`${I} `);else for(let C of f)this.context.stdout.write(`${eye.npath.fromPortablePath(C.path)} -`);else if(this.reset){let C=await n.filterChanges(a,l,A,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await n.makeReset(a,C)}else f.length===0?this.context.stdout.write("No changes found!"):this.commit?await n.makeCommit(a,f,I):(await n.makeStage(a,f),this.context.stdout.write(I))}};fqe.paths=[["stage"]];fqe.usage=UFe.Command.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});Oqr.default=fqe;async function $Pl(e){let t=null,r=null;for(let n of qPl)if((r=await n.findRoot(e))!==null){t=n;break}if(t===null||r===null)throw new UFe.UsageError("No stage driver has been found for your current project");return{driver:t,root:r}}function eWl(e,t){let r=[];if(t===null)return r;for(;;){(t===e||t.startsWith(`${e}/`))&&r.push(t);let n;try{n=eye.xfs.statSync(t)}catch{break}if(n.isSymbolicLink())t=eye.ppath.resolve(eye.ppath.dirname(t),eye.xfs.readlinkSync(t));else break}return r}});var s2s=H(tye=>{"use strict";Object.defineProperty(tye,"__esModule",{value:!0});tye.stageUtils=tye.StageCommand=void 0;var n2s=(Pa(),vi(Va)),i2s=n2s.__importDefault(r2s());tye.StageCommand=i2s.default;var tWl=n2s.__importStar(Wqr());tye.stageUtils=tWl;var rWl={commands:[i2s.default]};tye.default=rWl});var Hqr=Nt(el(),1),Yqr=Nt(no(),1),Qqr=Nt(no(),1);var nWl=Nt(el()),iWl=Nt(Bn()),sWl=Nt(no()),oWl=Nt(zK()),aWl=Nt(TW()),cWl=Nt(_5e());$c();var lWl=Nt(UC());CZ();var opr={};sI(opr,{BadgesCommand:()=>z5e,default:()=>oVn});var eVn=Nt(el(),1),tVn=Nt(el(),1),rVn=Nt(Bn(),1),nVn=Nt(Bn(),1),iVn=Nt(Bn(),1),j5e=Nt(Bn(),1),sVn=Nt(Bn(),1);import{readFileSync as nHo}from"node:fs";import{writeFileSync as iHo}from"node:fs";import{join as $9n}from"node:path";var z9n=["@atls/code-service","@atls/schematics","@atls/next-identity-integration","@atls/react-kratos-browser-flows","@atls/nestjs-dataloader","@atls/nestjs-external-renderer","@atls/nestjs-gateway","@atls/nestjs-grpc-errors","@atls/nestjs-grpc-http-proxy","@atls/nestjs-grpc-identity","@atls/nestjs-grpc-playground","@atls/nestjs-grpc-reflection","@atls/nestjs-hydra","@atls/nestjs-keto","@atls/nestjs-kratos","@atls/nestjs-typesense-typeorm","@atls/nestjs-typesense","@atls-ui-generators/button","@atls-ui-generators/input","@atls-ui-generators/icons"],ipr={"@atls/nestjs":{labelColor:"#CB5458",color:"#BE4045"},"@atls/next":{labelColor:"#354247",color:"#1D282D"},"@atls/react":{labelColor:"#43CFF4",color:"#2DBFE6"},"@atls-ui":{labelColor:"#097CEB",color:"#0B6DCC"},tools:{labelColor:"#ECEEF5",color:"#D7DCEB"}};var q9n=Nt(Bn(),1),spr=Nt(Bn(),1),tdt=class e{constructor(t,r){this.stdout=t;this.configuration=r}static PROGRESS_FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];static PROGRESS_INTERVAL=120;running=!1;position=0;isEnabled(){return this.stdout.isTTY&&!process.env.TOOLS_DISABLE_PROGRESS}start(){this.isEnabled()&&(this.running=!0,this.write(),this.tick())}end(){this.isEnabled()&&this.running&&(this.running=!1,this.clear(!0))}tick(){setTimeout(()=>{this.running&&(this.clear(),this.write(),this.position=this.position===e.PROGRESS_FRAMES.length-1?0:this.position+1,this.tick())},e.PROGRESS_INTERVAL)}write(){let t=e.PROGRESS_FRAMES[this.position],r=spr.formatUtils.pretty(this.configuration,`YN${q9n.MessageName.UNNAMED.toString(10).padStart(4,"0")}`,"gray");this.stdout.write(`${spr.formatUtils.pretty(this.configuration,"\u27A4","blueBright")} ${r}: \u2502 ${t} +`);else if(this.reset){let C=await n.filterChanges(a,l,A,{staged:!0});C.length===0?this.context.stdout.write("No staged changes found!"):await n.makeReset(a,C)}else f.length===0?this.context.stdout.write("No changes found!"):this.commit?await n.makeCommit(a,f,I):(await n.makeStage(a,f),this.context.stdout.write(I))}};fqe.paths=[["stage"]];fqe.usage=UFe.Command.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});Oqr.default=fqe;async function eWl(e){let t=null,r=null;for(let n of $Pl)if((r=await n.findRoot(e))!==null){t=n;break}if(t===null||r===null)throw new UFe.UsageError("No stage driver has been found for your current project");return{driver:t,root:r}}function tWl(e,t){let r=[];if(t===null)return r;for(;;){(t===e||t.startsWith(`${e}/`))&&r.push(t);let n;try{n=eye.xfs.statSync(t)}catch{break}if(n.isSymbolicLink())t=eye.ppath.resolve(eye.ppath.dirname(t),eye.xfs.readlinkSync(t));else break}return r}});var s2s=H(tye=>{"use strict";Object.defineProperty(tye,"__esModule",{value:!0});tye.stageUtils=tye.StageCommand=void 0;var n2s=(Pa(),vi(Va)),i2s=n2s.__importDefault(r2s());tye.StageCommand=i2s.default;var rWl=n2s.__importStar(Wqr());tye.stageUtils=rWl;var nWl={commands:[i2s.default]};tye.default=nWl});var Hqr=Nt(el(),1),Yqr=Nt(no(),1),Qqr=Nt(no(),1);var iWl=Nt(el()),sWl=Nt(Bn()),oWl=Nt(no()),aWl=Nt(zK()),cWl=Nt(TW()),lWl=Nt(_5e());$c();var uWl=Nt(UC());CZ();var opr={};sI(opr,{BadgesCommand:()=>z5e,default:()=>oVn});var eVn=Nt(el(),1),tVn=Nt(el(),1),rVn=Nt(Bn(),1),nVn=Nt(Bn(),1),iVn=Nt(Bn(),1),j5e=Nt(Bn(),1),sVn=Nt(Bn(),1);import{readFileSync as nHo}from"node:fs";import{writeFileSync as iHo}from"node:fs";import{join as $9n}from"node:path";var z9n=["@atls/code-service","@atls/schematics","@atls/next-identity-integration","@atls/react-kratos-browser-flows","@atls/nestjs-dataloader","@atls/nestjs-external-renderer","@atls/nestjs-gateway","@atls/nestjs-grpc-errors","@atls/nestjs-grpc-http-proxy","@atls/nestjs-grpc-identity","@atls/nestjs-grpc-playground","@atls/nestjs-grpc-reflection","@atls/nestjs-hydra","@atls/nestjs-keto","@atls/nestjs-kratos","@atls/nestjs-typesense-typeorm","@atls/nestjs-typesense","@atls-ui-generators/button","@atls-ui-generators/input","@atls-ui-generators/icons"],ipr={"@atls/nestjs":{labelColor:"#CB5458",color:"#BE4045"},"@atls/next":{labelColor:"#354247",color:"#1D282D"},"@atls/react":{labelColor:"#43CFF4",color:"#2DBFE6"},"@atls-ui":{labelColor:"#097CEB",color:"#0B6DCC"},tools:{labelColor:"#ECEEF5",color:"#D7DCEB"}};var q9n=Nt(Bn(),1),spr=Nt(Bn(),1),tdt=class e{constructor(t,r){this.stdout=t;this.configuration=r}static PROGRESS_FRAMES=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"];static PROGRESS_INTERVAL=120;running=!1;position=0;isEnabled(){return this.stdout.isTTY&&!process.env.TOOLS_DISABLE_PROGRESS}start(){this.isEnabled()&&(this.running=!0,this.write(),this.tick())}end(){this.isEnabled()&&this.running&&(this.running=!1,this.clear(!0))}tick(){setTimeout(()=>{this.running&&(this.clear(),this.write(),this.position=this.position===e.PROGRESS_FRAMES.length-1?0:this.position+1,this.tick())},e.PROGRESS_INTERVAL)}write(){let t=e.PROGRESS_FRAMES[this.position],r=spr.formatUtils.pretty(this.configuration,`YN${q9n.MessageName.UNNAMED.toString(10).padStart(4,"0")}`,"gray");this.stdout.write(`${spr.formatUtils.pretty(this.configuration,"\u27A4","blueBright")} ${r}: \u2502 ${t} `)}clear(t=!1){this.stdout.write("\x1B[0A"),t&&this.stdout.write("\x1B[0J")}};var z5e=class e extends eVn.BaseCommand{static paths=[["badges","generate"]];static VERSIONS_SEPARATOR="[//]: # (VERSIONS)";static BADGE_URL="https://img.shields.io/static/v1";static BADGE_STYLE="for-the-badge";static REGISTRY_URL="https://npmjs.com";static REGISTRY_PACKAGE_PATH="/package";async execute(){let t=await nVn.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await iVn.Project.find(t,this.context.cwd);if(!n)throw new tVn.WorkspaceRequiredError(r.cwd,this.context.cwd);return await r.restoreInstallState(),(await rVn.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Generating badges",async()=>{let l=new tdt(this.context.stdout,t);l.start();let A=X=>{let ae=X.anchoredLocator.locatorHash,ne=new Map,ce=[ae];for(;ce.length>0;){let fe=ce.shift();if(fe){if(ne.has(fe))continue;let ue=r.storedPackages.get(fe);if(typeof ue>"u")throw new Error("Assertion failed: Expected the package to be registered");if(ne.set(fe,ue),j5e.structUtils.isVirtualLocator(ue)&&ce.push(j5e.structUtils.devirtualizeLocator(ue).locatorHash),fe!==ae)continue;for(let de of ue.dependencies.values()){let be=r.storedResolutions.get(de.descriptorHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the resolution to be registered");ce.push(be)}}}return ne.values()},I=(()=>{let X=new Map;for(let ae of r.workspaces)for(let ne of A(ae))X.set(ne.locatorHash,ne);return X.values()})(),C=sVn.miscUtils.sortMap([...I],X=>j5e.structUtils.stringifyLocator(X)),b=async X=>{let ae=j5e.structUtils.parseDescriptor(X),ne=C.filter(ce=>ce.scope===ae.scope&&ce.name===ae.name);return ne.length>0&&ne.shift()?.version||""},E=$9n(process.cwd(),"README.md"),B=nHo(E).toString("utf-8").split(e.VERSIONS_SEPARATOR),F=await Promise.all(z9n.map(async X=>({name:X,version:await b(X)}))),Q=(X,ae)=>{let ne=()=>{let ce=ue=>({labelColor:ue.labelColor.replace("#",""),color:ue.color.replace("#","")}),fe=Object.entries(ipr).find(([ue])=>ae.name.search(ue)!==-1);if(fe){let[,ue]=fe;return ce(ue)}return ce(ipr.tools)};if(ae.version){let ce=`${e.REGISTRY_URL}${e.REGISTRY_PACKAGE_PATH}/${ae.name}`;$9n(e.REGISTRY_URL,e.REGISTRY_PACKAGE_PATH,ae.name);let fe=new URLSearchParams({style:e.BADGE_STYLE,label:ae.name,message:ae.version,...ne()}),ue=`badge`;return`${X}${((be,Se)=>`[${be}](${Se})`)(ue,ce)} `}return X};B[1]=F.reduce(Q,""),B[1]=` ${B[1]} @@ -2000,7 +2000,7 @@ ${GVn(l)}`),l}async function kWn(e={}){let t=` {{/if}} `,a=SJo();return a.mainTemplate=e,a.headerPartial=t,a.commitPartial=r,a.footerPartial=n,a}function SJo(){return{transform:(e,t)=>{let r=!0,n=e.notes.map(C=>(r=!1,{...C,title:"BREAKING CHANGES"})),a=e.type;if(e.type==="feat")a="Features";else if(e.type==="fix")a="Bug Fixes";else if(e.type==="perf")a="Performance Improvements";else if(e.type==="revert"||e.revert)a="Reverts";else{if(r)return;e.type==="docs"?a="Documentation":e.type==="style"?a="Styles":e.type==="refactor"?a="Code Refactoring":e.type==="test"?a="Tests":e.type==="build"?a="Build System":e.type==="ci"&&(a="Continuous Integration")}let o=e.scope==="*"?"":e.scope,l=typeof e.hash=="string"?e.hash.substring(0,7):e.shortHash,A=[],f=e.subject;if(typeof f=="string"){let C=t.repository?`${t.host}/${t.owner}/${t.repository}`:t.repoUrl;C&&(C=`${C}/issues/`,f=f.replace(/#([0-9]+)/g,(b,E)=>(A.push(E),`[#${E}](${C}${E})`))),t.host&&(f=f.replace(/\B@([a-z0-9](?:-?[a-z0-9/]){0,38})/g,(b,E)=>E.includes("/")?`@${E}`:`[@${E}](${t.host}/${E})`))}let I=e.references.filter(C=>!A.includes(C.issue));return{notes:n,type:a,scope:o,shortHash:l,subject:f,references:I}},groupBy:"type",commitGroupsSort:"title",commitsSort:["scope","subject"],noteGroupsSort:"title",notesSort:G3n.default}}function Z3n(e){let t=2,r=0,n=0;return e.forEach(a=>{a.notes.length>0?(r+=a.notes.length,t=0):a.type==="feat"&&(n+=1,t===2&&(t=1))}),{level:t,reason:r===1?`There is ${r} BREAKING CHANGE and ${n} features`:`There are ${r} BREAKING CHANGES and ${n} features`}}async function Jfr(){return{parser:v3n(),writer:await F3n(),whatBump:Z3n}}var qve=class{async generate({path:t,packageName:r,debug:n,tagPrefix:a,file:o,releaseCount:l}){let A={lernaPackage:`${r}`,tagPrefix:a,debug:n?console.debug:void 0,warn:console.warn,append:!0,releaseCount:l,pkg:{path:L3n(t,"package.json")},config:Jfr};return o?this.generateToFile(A,t):this.generateToStdOut(A)}async generateToStdOut(t){return new Promise((r,n)=>{let a=Qfr(t,void 0,{path:wJo(t.pkg?.path??"./")}),o="";a.on("data",l=>{o+=l.toString()}),a.on("end",()=>{r(o)}),a.on("error",l=>{n(l)})})}async generateToFile(t,r){let n=L3n(r,"CHANGELOG.md");try{let a=await this.generateToStdOut(t),o="";try{o=await vJo(n,"utf8")}catch(A){let f=A;if(f.code!=="ENOENT")throw f}let l=o?`${a} -${o}`:a;return await BJo(n,l,"utf8"),l}catch(a){throw console.error("Error generating changelog:",a),a}}};var ept=class extends V3n.BaseCommand{static paths=[["changelog","generate"]];debug=Su.Boolean("--debug");tagPrefix=Su.String("-t,--tag-prefix");stdOut=Su.Boolean("--stdout",!1);async execute(){let t=await W3n.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await M3n.Project.find(t,this.context.cwd);if(!n)throw new P3n.WorkspaceRequiredError(r.cwd,this.context.cwd);let a;return(await O3n.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Generating changelog",async()=>{let A="";n.manifest.name?.scope&&(A+=`@${n.manifest.name.scope}/`),A+=`${n.manifest.name?.name}`;let f=TJo(r.cwd,this.context.cwd);a=await new qve().generate({path:f,packageName:A,debug:this.debug,file:!this.stdOut,tagPrefix:this.tagPrefix}),this.stdOut&&console.log(a)})})).exitCode()}};var H3n={commands:[ept]};var Kfr={};sI(Kfr,{CheckCommand:()=>CMe,default:()=>Q3n});var Y3n=Nt(el(),1),CMe=class extends Y3n.BaseCommand{static paths=[["check"]];async execute(){await this.cli.run(["format"]),await this.cli.run(["typecheck"]),await this.cli.run(["lint"])}};var Q3n={commands:[CMe]};var r1r={};sI(r1r,{ChecksLintCommand:()=>gQe,ChecksTestIntegrationCommand:()=>hQe,ChecksTestUnitCommand:()=>mQe,ChecksTypeCheckCommand:()=>CQe,default:()=>bii});var yni=Nt(el(),1),bni=Nt(Bn(),1),TEr=Nt(Bn(),1),Eni=Nt(Bn(),1),REr=Nt(Bn(),1),NEr=Nt(no(),1),Sni=Nt(oIr(),1),vni=Nt(Bn(),1),DEr=Nt(no(),1),Bni=Nt(no(),1);$c();import{readFileSync as zya}from"node:fs";import{resolve as qya}from"node:path";var Bhr=Nt(Al(),1),Moe=Nt(Al(),1);var Ehr=Nt(Al(),1),Shr=Nt(Pc(),1),A8=({children:e,line:t=0,column:r=0})=>(0,Shr.jsxs)(Ehr.Text,{color:"cyan",children:[e,(0,Shr.jsxs)(Ehr.Text,{color:"yellow",children:[":",t,":",r]})]});var IYn=Nt(Al(),1),hYn=Nt(Pc(),1),J9=({offset:e=0})=>(0,hYn.jsx)(IYn.Text,{color:"gray",children:Array.from({length:process.stdout.columns-e},()=>"\u2500").join("")});var _Yn=Nt(oIr(),1),yYn=Nt(Al(),1);import vhr from"node:process";import Hjo from"node:os";import mYn from"node:tty";function bM(e,t=globalThis.Deno?globalThis.Deno.args:vhr.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function Xjo(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Yjo();n!==void 0&&(Opt=n);let a=r?Opt:n;if(a===0)return 0;if(r){if(bM("color=16m")||bM("color=full")||bM("color=truecolor"))return 3;if(bM("color=256"))return 2}if("TF_BUILD"in wS&&"AGENT_NAME"in wS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(wS.TERM==="dumb")return o;if(vhr.platform==="win32"){let l=Hjo.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in wS)return"GITHUB_ACTIONS"in wS||"GITEA_ACTIONS"in wS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in wS)||wS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in wS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(wS.TEAMCITY_VERSION)?1:0;if(wS.COLORTERM==="truecolor"||wS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in wS){let l=Number.parseInt((wS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(wS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(wS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(wS.TERM)||"COLORTERM"in wS?1:o}function Mpt(e,t={}){let r=Xjo(e,{streamIsTTY:e&&e.isTTY,...t});return Qjo(r)}var Sru={stdout:Mpt({isTTY:mYn.isatty(1)}),stderr:Mpt({isTTY:mYn.isatty(2)})};var bYn=Nt(Pc(),1),{level:Jjo}=Mpt({isTTY:!0})||{level:0},CYn=Jjo>=1,Ujo=(e,t,r,n)=>(0,_Yn.codeFrameColumns)(e,{start:{column:r,line:t}},{highlightCode:CYn,forceColor:CYn,message:n}),d8=({children:e,line:t,column:r,message:n})=>(0,bYn.jsx)(yYn.Text,{children:Ujo(e,t,r,n)});var qN=Nt(Pc(),1),EYn=({filePath:e,message:t,source:r})=>(0,qN.jsxs)(Moe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,qN.jsxs)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,qN.jsx)(Moe.Box,{flexDirection:"row",flexGrow:1,children:(0,qN.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsxs)(Bhr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(J9,{offset:2})}),!!r&&(0,qN.jsxs)(qN.Fragment,{children:[(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,qN.jsx)(J9,{offset:2})]}),(0,qN.jsx)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,qN.jsxs)(Bhr.Text,{color:"white",children:[" ",t.message]})})]});var BYn=Nt(Al(),1);import{isAbsolute as zjo}from"node:path";import{relative as qjo}from"node:path";import{webcrypto as vYn}from"node:crypto";var SYn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Kjo=128,DIe,IBe;function jjo(e){!DIe||DIe.lengthDIe.length&&(vYn.getRandomValues(DIe),IBe=0),IBe+=e}function OW(e=21){jjo(e-=0);let t="";for(let r=IBe-e;r{let a=(0,wYn.useMemo)(()=>zjo(e)?qjo(n,e):e,[e]);return r.length===0?null:(0,whr.jsx)(BYn.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,whr.jsx)(EYn,{filePath:a,message:o,source:t},OW()))})};import x6o from"node:events";import{readFileSync as G6o}from"node:fs";import{readFile as F6o}from"node:fs/promises";import{writeFile as Z6o}from"node:fs/promises";import{relative as L6o}from"node:path";import{join as gQn}from"node:path";var qYn=Nt(Xcr(),1),dHe=Nt(nve(),1),AHe=Nt(FYn(),1);import S6o from"node:fs";import v6o from"node:path";var Lhr=Nt(nve(),1),QYn=Nt(uHe(),1);import _6o from"node:process";import YYn from"node:fs";import mBe from"node:path";function hBe(e){let t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}import{fileURLToPath as m6o}from"node:url";import{Transform as C6o}from"node:stream";var gHe=e=>e instanceof URL?m6o(e):e,Ypt=class extends C6o{constructor(t){super({objectMode:!0,transform(r,n,a){a(void 0,t(r)?r:void 0)}})}},Qpt=e=>e[0]==="!";var XYn={ignore:["**/node_modules","**/flow-typed","**/coverage","**/.git"],absolute:!0,dot:!0},JYn="**/.gitignore",y6o=(e,t)=>Qpt(e)?"!"+mBe.posix.join(t,e.slice(1)):mBe.posix.join(t,e),b6o=(e,t)=>{let r=hBe(mBe.relative(t,mBe.dirname(e.filePath)));return e.content.split(/\r?\n/).filter(n=>n&&!n.startsWith("#")).map(n=>y6o(n,r))},E6o=(e,t)=>{if(t=hBe(t),mBe.isAbsolute(e)){if(hBe(e).startsWith(t))return mBe.relative(t,e);throw new Error(`Path ${e} is not in cwd ${t}`)}return e},UYn=(e,t)=>{let r=e.flatMap(a=>b6o(a,t)),n=(0,QYn.default)().add(r);return a=>(a=gHe(a),a=E6o(a,t),a?n.ignores(hBe(a)):!1)},KYn=(e={})=>({cwd:gHe(e.cwd)||_6o.cwd(),suppressErrors:!!e.suppressErrors,deep:typeof e.deep=="number"?e.deep:Number.POSITIVE_INFINITY}),jYn=async(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),o=await(0,Lhr.default)(e,{cwd:r,suppressErrors:n,deep:a,...XYn}),l=await Promise.all(o.map(async A=>({filePath:A,content:await YYn.promises.readFile(A,"utf8")})));return UYn(l,r)},zYn=(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),l=Lhr.default.sync(e,{cwd:r,suppressErrors:n,deep:a,...XYn}).map(A=>({filePath:A,content:YYn.readFileSync(A,"utf8")}));return UYn(l,r)};var B6o=e=>{if(e.some(t=>typeof t!="string"))throw new TypeError("Patterns must be a string or an array of strings")},Vhr=e=>(e=[...new Set([e].flat())],B6o(e),e),w6o=e=>{if(!e.cwd)return;let t;try{t=S6o.statSync(e.cwd)}catch{return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},$Yn=(e={})=>(e={...e,ignore:e.ignore||[],expandDirectories:e.expandDirectories===void 0?!0:e.expandDirectories,cwd:gHe(e.cwd)},w6o(e),e),eQn=e=>async(t,r)=>e(Vhr(t),$Yn(r)),Xpt=e=>(t,r)=>e(Vhr(t),$Yn(r)),tQn=e=>{let{ignoreFiles:t,gitignore:r}=e,n=t?Vhr(t):[];return r&&n.push(JYn),n},T6o=async e=>{let t=tQn(e);return nQn(t.length>0&&await jYn(t,e))},rQn=e=>{let t=tQn(e);return nQn(t.length>0&&zYn(t,e))},nQn=e=>{let t=new Set;return r=>{let n=r.path||r,a=v6o.normalize(n),o=t.has(a)||e&&e(n);return t.add(a),!o}},iQn=(e,t)=>e.flat().filter(r=>t(r)),R6o=(e,t)=>(0,qYn.default)(e).pipe(new Ypt(r=>t(r))),sQn=(e,t)=>{let r=[];for(;e.length>0;){let n=e.findIndex(o=>Qpt(o));if(n===-1){r.push({patterns:e,options:t});break}let a=e[n].slice(1);for(let o of r)o.options.ignore.push(a);n!==0&&r.push({patterns:e.slice(0,n),options:{...t,ignore:[...t.ignore,a]}}),e=e.slice(n+1)}return r},oQn=(e,t)=>({...t?{cwd:t}:{},...Array.isArray(e)?{files:e}:e}),aQn=async(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return Promise.all(r.map(async A=>{let{patterns:f,options:I}=A;return[f,I.ignore]=await Promise.all([(0,AHe.default)(f,o),(0,AHe.default)(I.ignore,l)]),{patterns:f,options:I}}))},Phr=(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return r.map(A=>{let{patterns:f,options:I}=A;return f=AHe.default.sync(f,o),I.ignore=AHe.default.sync(I.ignore,l),{patterns:f,options:I}})},b$=eQn(async(e,t)=>{let[r,n]=await Promise.all([aQn(e,t),T6o(t)]),a=await Promise.all(r.map(o=>(0,dHe.default)(o.patterns,o.options)));return iQn(a,n)}),cQn=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.sync(o.patterns,o.options));return iQn(a,n)}),gnu=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.stream(o.patterns,o.options));return R6o(a,n)}),Anu=Xpt((e,t)=>e.some(r=>dHe.default.isDynamicPattern(r,t))),dnu=eQn(aQn),pnu=Xpt(Phr);var AQn=Nt(uHe(),1);import{join as N6o}from"node:path";var lQn=[".c9",".pnp.js",".pnp.cjs",".pnp.loader.mjs",".pnp-ts.loader.mjs",".git","node_modules","coverage","bundles","dist","gen",".yarn",".vscode",".next","**/**/dist/*","**/**/build/*","**/**/.cache/*","**/**/bundles/*","**/**/templates/*.yaml","**/templates/*.yaml","**/types/**",".terraform",".idea","yarn.mjs"],D6o=["./**/*.{js,mjs,cjs,jsx,ts,tsx}"],k6o=["!**/node_modules/**","!./node_modules/**","!**/.{git,svn,hg}/**","!./.{git,svn,hg}/**","!**/.yarn/**","!./.yarn/**","!**/gen/**","!**/.idea/**"],uQn=e=>[...D6o.map(t=>N6o(e,t)),...k6o];var Whr=(e,t,r)=>({filePath:e,source:t,messages:r,fixableErrorCount:0,fixableWarningCount:0,usedDeprecatedRules:[],suppressedMessages:[],errorCount:r.filter(n=>n.severity===1).length,fatalErrorCount:r.filter(n=>n.fatal).length,warningCount:r.filter(n=>n.severity===2).length});var CBe=class e extends x6o{constructor(r,n,a,o){super();this.linter=r;this.cacheLinter=n;this.config=a;this.cwd=o;this.ignore=AQn.default.default().add(lQn).add(this.getProjectIgnorePatterns())}ignore;static async initialize(r,n){let{Linter:a,ESLint:o}=await import("@atls/code-runtime/eslint"),{eslintconfig:l}=await import("@atls/code-runtime/eslint"),A=new a({configType:"flat"}),f=l.map(C=>({...C,languageOptions:{...C.languageOptions||{},parserOptions:{...C.languageOptions?.parserOptions||{},tsconfigRootDir:r}}})),I=new o({cache:!0,baseConfig:f,overrideConfigFile:!0,cwd:n,cacheLocation:gQn(r,".config/eslint/.eslintcache")});return new e(A,I,f,n)}async lintFile(r,n){let a=await F6o(r,"utf8");if(n?.fix){let{messages:o,fixed:l,output:A}=this.linter.verifyAndFix(a,this.config,{filename:r});return l&&await Z6o(r,A,"utf8"),Whr(r,A,o)}return Whr(r,a,this.linter.verify(a,this.config,{filename:r}))}async lintFiles(r=[],n){let a=[];this.emit("start",{files:r});for await(let o of r){this.emit("lint:start",{file:o});let l=await this.lintFile(o,n);a.push(l),this.emit("lint:end",{result:l})}return this.emit("end",{results:a}),a}async lint(r,n){let o=(r&&r.length>0?r:await b$(uQn(this.cwd),{dot:!0})).filter(l=>this.ignore.filter([L6o(this.cwd,l)]).length!==0);return n?.cache?this.lintWithCache(o):this.lintFiles(o,n)}async lintWithCache(r=[]){this.emit("start",{files:r});let n=await this.cacheLinter.lintFiles(r);for(let a of n)this.emit("lint:end",{result:a});return this.emit("end",{results:n}),n}getProjectIgnorePatterns(){let r=G6o(gQn(this.cwd,"package.json"),"utf-8"),{linterIgnorePatterns:n=[]}=JSON.parse(r);return n}};var dQn=Nt(Al(),1);import{EventEmitter as V6o}from"node:events";var Jpt=class extends V6o{frames=[];get columns(){return process.stdout.columns||160}write=t=>{this.frames.push(t)}},xE=e=>{let t=new Jpt,r=new Jpt,{cleanup:n}=(0,dQn.render)(e,{stdout:t,stderr:r,debug:!0,exitOnCtrlC:!1,patchConsole:!1});return n(),[...t.frames,...r.frames].join(` +${o}`:a;return await BJo(n,l,"utf8"),l}catch(a){throw console.error("Error generating changelog:",a),a}}};var ept=class extends V3n.BaseCommand{static paths=[["changelog","generate"]];debug=Su.Boolean("--debug");tagPrefix=Su.String("-t,--tag-prefix");stdOut=Su.Boolean("--stdout",!1);async execute(){let t=await W3n.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await M3n.Project.find(t,this.context.cwd);if(!n)throw new P3n.WorkspaceRequiredError(r.cwd,this.context.cwd);let a;return(await O3n.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Generating changelog",async()=>{let A="";n.manifest.name?.scope&&(A+=`@${n.manifest.name.scope}/`),A+=`${n.manifest.name?.name}`;let f=TJo(r.cwd,this.context.cwd);a=await new qve().generate({path:f,packageName:A,debug:this.debug,file:!this.stdOut,tagPrefix:this.tagPrefix}),this.stdOut&&console.log(a)})})).exitCode()}};var H3n={commands:[ept]};var Kfr={};sI(Kfr,{CheckCommand:()=>CMe,default:()=>Q3n});var Y3n=Nt(el(),1),CMe=class extends Y3n.BaseCommand{static paths=[["check"]];async execute(){await this.cli.run(["format"]),await this.cli.run(["typecheck"]),await this.cli.run(["lint"])}};var Q3n={commands:[CMe]};var r1r={};sI(r1r,{ChecksLintCommand:()=>gQe,ChecksTestIntegrationCommand:()=>hQe,ChecksTestUnitCommand:()=>mQe,ChecksTypeCheckCommand:()=>CQe,default:()=>bii});var yni=Nt(el(),1),bni=Nt(Bn(),1),TEr=Nt(Bn(),1),Eni=Nt(Bn(),1),REr=Nt(Bn(),1),NEr=Nt(no(),1),Sni=Nt(oIr(),1),vni=Nt(Bn(),1),DEr=Nt(no(),1),Bni=Nt(no(),1);$c();import{readFileSync as zya}from"node:fs";import{resolve as qya}from"node:path";var Bhr=Nt(Al(),1),Moe=Nt(Al(),1);var Ehr=Nt(Al(),1),Shr=Nt(Pc(),1),A8=({children:e,line:t=0,column:r=0})=>(0,Shr.jsxs)(Ehr.Text,{color:"cyan",children:[e,(0,Shr.jsxs)(Ehr.Text,{color:"yellow",children:[":",t,":",r]})]});var IYn=Nt(Al(),1),hYn=Nt(Pc(),1),J9=({offset:e=0})=>(0,hYn.jsx)(IYn.Text,{color:"gray",children:Array.from({length:process.stdout.columns-e},()=>"\u2500").join("")});var _Yn=Nt(oIr(),1),yYn=Nt(Al(),1);import vhr from"node:process";import Hjo from"node:os";import mYn from"node:tty";function bM(e,t=globalThis.Deno?globalThis.Deno.args:vhr.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function Xjo(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=Yjo();n!==void 0&&(Opt=n);let a=r?Opt:n;if(a===0)return 0;if(r){if(bM("color=16m")||bM("color=full")||bM("color=truecolor"))return 3;if(bM("color=256"))return 2}if("TF_BUILD"in wS&&"AGENT_NAME"in wS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(wS.TERM==="dumb")return o;if(vhr.platform==="win32"){let l=Hjo.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in wS)return"GITHUB_ACTIONS"in wS||"GITEA_ACTIONS"in wS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in wS)||wS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in wS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(wS.TEAMCITY_VERSION)?1:0;if(wS.COLORTERM==="truecolor"||wS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in wS){let l=Number.parseInt((wS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(wS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(wS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(wS.TERM)||"COLORTERM"in wS?1:o}function Mpt(e,t={}){let r=Xjo(e,{streamIsTTY:e&&e.isTTY,...t});return Qjo(r)}var vru={stdout:Mpt({isTTY:mYn.isatty(1)}),stderr:Mpt({isTTY:mYn.isatty(2)})};var bYn=Nt(Pc(),1),{level:Jjo}=Mpt({isTTY:!0})||{level:0},CYn=Jjo>=1,Ujo=(e,t,r,n)=>(0,_Yn.codeFrameColumns)(e,{start:{column:r,line:t}},{highlightCode:CYn,forceColor:CYn,message:n}),d8=({children:e,line:t,column:r,message:n})=>(0,bYn.jsx)(yYn.Text,{children:Ujo(e,t,r,n)});var qN=Nt(Pc(),1),EYn=({filePath:e,message:t,source:r})=>(0,qN.jsxs)(Moe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,qN.jsxs)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,qN.jsx)(Moe.Box,{flexDirection:"row",flexGrow:1,children:(0,qN.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsxs)(Bhr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(J9,{offset:2})}),!!r&&(0,qN.jsxs)(qN.Fragment,{children:[(0,qN.jsx)(Moe.Box,{children:(0,qN.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,qN.jsx)(J9,{offset:2})]}),(0,qN.jsx)(Moe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,qN.jsxs)(Bhr.Text,{color:"white",children:[" ",t.message]})})]});var BYn=Nt(Al(),1);import{isAbsolute as zjo}from"node:path";import{relative as qjo}from"node:path";import{webcrypto as vYn}from"node:crypto";var SYn="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Kjo=128,DIe,IBe;function jjo(e){!DIe||DIe.lengthDIe.length&&(vYn.getRandomValues(DIe),IBe=0),IBe+=e}function OW(e=21){jjo(e-=0);let t="";for(let r=IBe-e;r{let a=(0,wYn.useMemo)(()=>zjo(e)?qjo(n,e):e,[e]);return r.length===0?null:(0,whr.jsx)(BYn.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,whr.jsx)(EYn,{filePath:a,message:o,source:t},OW()))})};import x6o from"node:events";import{readFileSync as G6o}from"node:fs";import{readFile as F6o}from"node:fs/promises";import{writeFile as Z6o}from"node:fs/promises";import{relative as L6o}from"node:path";import{join as gQn}from"node:path";var qYn=Nt(Xcr(),1),dHe=Nt(nve(),1),AHe=Nt(FYn(),1);import S6o from"node:fs";import v6o from"node:path";var Lhr=Nt(nve(),1),QYn=Nt(uHe(),1);import _6o from"node:process";import YYn from"node:fs";import mBe from"node:path";function hBe(e){let t=/^\\\\\?\\/.test(e),r=/[^\u0000-\u0080]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}import{fileURLToPath as m6o}from"node:url";import{Transform as C6o}from"node:stream";var gHe=e=>e instanceof URL?m6o(e):e,Ypt=class extends C6o{constructor(t){super({objectMode:!0,transform(r,n,a){a(void 0,t(r)?r:void 0)}})}},Qpt=e=>e[0]==="!";var XYn={ignore:["**/node_modules","**/flow-typed","**/coverage","**/.git"],absolute:!0,dot:!0},JYn="**/.gitignore",y6o=(e,t)=>Qpt(e)?"!"+mBe.posix.join(t,e.slice(1)):mBe.posix.join(t,e),b6o=(e,t)=>{let r=hBe(mBe.relative(t,mBe.dirname(e.filePath)));return e.content.split(/\r?\n/).filter(n=>n&&!n.startsWith("#")).map(n=>y6o(n,r))},E6o=(e,t)=>{if(t=hBe(t),mBe.isAbsolute(e)){if(hBe(e).startsWith(t))return mBe.relative(t,e);throw new Error(`Path ${e} is not in cwd ${t}`)}return e},UYn=(e,t)=>{let r=e.flatMap(a=>b6o(a,t)),n=(0,QYn.default)().add(r);return a=>(a=gHe(a),a=E6o(a,t),a?n.ignores(hBe(a)):!1)},KYn=(e={})=>({cwd:gHe(e.cwd)||_6o.cwd(),suppressErrors:!!e.suppressErrors,deep:typeof e.deep=="number"?e.deep:Number.POSITIVE_INFINITY}),jYn=async(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),o=await(0,Lhr.default)(e,{cwd:r,suppressErrors:n,deep:a,...XYn}),l=await Promise.all(o.map(async A=>({filePath:A,content:await YYn.promises.readFile(A,"utf8")})));return UYn(l,r)},zYn=(e,t)=>{let{cwd:r,suppressErrors:n,deep:a}=KYn(t),l=Lhr.default.sync(e,{cwd:r,suppressErrors:n,deep:a,...XYn}).map(A=>({filePath:A,content:YYn.readFileSync(A,"utf8")}));return UYn(l,r)};var B6o=e=>{if(e.some(t=>typeof t!="string"))throw new TypeError("Patterns must be a string or an array of strings")},Vhr=e=>(e=[...new Set([e].flat())],B6o(e),e),w6o=e=>{if(!e.cwd)return;let t;try{t=S6o.statSync(e.cwd)}catch{return}if(!t.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},$Yn=(e={})=>(e={...e,ignore:e.ignore||[],expandDirectories:e.expandDirectories===void 0?!0:e.expandDirectories,cwd:gHe(e.cwd)},w6o(e),e),eQn=e=>async(t,r)=>e(Vhr(t),$Yn(r)),Xpt=e=>(t,r)=>e(Vhr(t),$Yn(r)),tQn=e=>{let{ignoreFiles:t,gitignore:r}=e,n=t?Vhr(t):[];return r&&n.push(JYn),n},T6o=async e=>{let t=tQn(e);return nQn(t.length>0&&await jYn(t,e))},rQn=e=>{let t=tQn(e);return nQn(t.length>0&&zYn(t,e))},nQn=e=>{let t=new Set;return r=>{let n=r.path||r,a=v6o.normalize(n),o=t.has(a)||e&&e(n);return t.add(a),!o}},iQn=(e,t)=>e.flat().filter(r=>t(r)),R6o=(e,t)=>(0,qYn.default)(e).pipe(new Ypt(r=>t(r))),sQn=(e,t)=>{let r=[];for(;e.length>0;){let n=e.findIndex(o=>Qpt(o));if(n===-1){r.push({patterns:e,options:t});break}let a=e[n].slice(1);for(let o of r)o.options.ignore.push(a);n!==0&&r.push({patterns:e.slice(0,n),options:{...t,ignore:[...t.ignore,a]}}),e=e.slice(n+1)}return r},oQn=(e,t)=>({...t?{cwd:t}:{},...Array.isArray(e)?{files:e}:e}),aQn=async(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return Promise.all(r.map(async A=>{let{patterns:f,options:I}=A;return[f,I.ignore]=await Promise.all([(0,AHe.default)(f,o),(0,AHe.default)(I.ignore,l)]),{patterns:f,options:I}}))},Phr=(e,t)=>{let r=sQn(e,t),{cwd:n,expandDirectories:a}=t;if(!a)return r;let o=oQn(a,n),l=n?{cwd:n}:void 0;return r.map(A=>{let{patterns:f,options:I}=A;return f=AHe.default.sync(f,o),I.ignore=AHe.default.sync(I.ignore,l),{patterns:f,options:I}})},b$=eQn(async(e,t)=>{let[r,n]=await Promise.all([aQn(e,t),T6o(t)]),a=await Promise.all(r.map(o=>(0,dHe.default)(o.patterns,o.options)));return iQn(a,n)}),cQn=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.sync(o.patterns,o.options));return iQn(a,n)}),Anu=Xpt((e,t)=>{let r=Phr(e,t),n=rQn(t),a=r.map(o=>dHe.default.stream(o.patterns,o.options));return R6o(a,n)}),dnu=Xpt((e,t)=>e.some(r=>dHe.default.isDynamicPattern(r,t))),pnu=eQn(aQn),fnu=Xpt(Phr);var AQn=Nt(uHe(),1);import{join as N6o}from"node:path";var lQn=[".c9",".pnp.js",".pnp.cjs",".pnp.loader.mjs",".pnp-ts.loader.mjs",".git","node_modules","coverage","bundles","dist","gen",".yarn",".vscode",".next","**/**/dist/*","**/**/build/*","**/**/.cache/*","**/**/bundles/*","**/**/templates/*.yaml","**/templates/*.yaml","**/types/**",".terraform",".idea","yarn.mjs"],D6o=["./**/*.{js,mjs,cjs,jsx,ts,tsx}"],k6o=["!**/node_modules/**","!./node_modules/**","!**/.{git,svn,hg}/**","!./.{git,svn,hg}/**","!**/.yarn/**","!./.yarn/**","!**/gen/**","!**/.idea/**"],uQn=e=>[...D6o.map(t=>N6o(e,t)),...k6o];var Whr=(e,t,r)=>({filePath:e,source:t,messages:r,fixableErrorCount:0,fixableWarningCount:0,usedDeprecatedRules:[],suppressedMessages:[],errorCount:r.filter(n=>n.severity===1).length,fatalErrorCount:r.filter(n=>n.fatal).length,warningCount:r.filter(n=>n.severity===2).length});var CBe=class e extends x6o{constructor(r,n,a,o){super();this.linter=r;this.cacheLinter=n;this.config=a;this.cwd=o;this.ignore=AQn.default.default().add(lQn).add(this.getProjectIgnorePatterns())}ignore;static async initialize(r,n){let{Linter:a,ESLint:o}=await import("@atls/code-runtime/eslint"),{eslintconfig:l}=await import("@atls/code-runtime/eslint"),A=new a({configType:"flat"}),f=l.map(C=>({...C,languageOptions:{...C.languageOptions||{},parserOptions:{...C.languageOptions?.parserOptions||{},tsconfigRootDir:r}}})),I=new o({cache:!0,baseConfig:f,overrideConfigFile:!0,cwd:n,cacheLocation:gQn(r,".config/eslint/.eslintcache")});return new e(A,I,f,n)}async lintFile(r,n){let a=await F6o(r,"utf8");if(n?.fix){let{messages:o,fixed:l,output:A}=this.linter.verifyAndFix(a,this.config,{filename:r});return l&&await Z6o(r,A,"utf8"),Whr(r,A,o)}return Whr(r,a,this.linter.verify(a,this.config,{filename:r}))}async lintFiles(r=[],n){let a=[];this.emit("start",{files:r});for await(let o of r){this.emit("lint:start",{file:o});let l=await this.lintFile(o,n);a.push(l),this.emit("lint:end",{result:l})}return this.emit("end",{results:a}),a}async lint(r,n){let o=(r&&r.length>0?r:await b$(uQn(this.cwd),{dot:!0})).filter(l=>this.ignore.filter([L6o(this.cwd,l)]).length!==0);return n?.cache?this.lintWithCache(o):this.lintFiles(o,n)}async lintWithCache(r=[]){this.emit("start",{files:r});let n=await this.cacheLinter.lintFiles(r);for(let a of n)this.emit("lint:end",{result:a});return this.emit("end",{results:n}),n}getProjectIgnorePatterns(){let r=G6o(gQn(this.cwd,"package.json"),"utf-8"),{linterIgnorePatterns:n=[]}=JSON.parse(r);return n}};var dQn=Nt(Al(),1);import{EventEmitter as V6o}from"node:events";var Jpt=class extends V6o{frames=[];get columns(){return process.stdout.columns||160}write=t=>{this.frames.push(t)}},xE=e=>{let t=new Jpt,r=new Jpt,{cleanup:n}=(0,dQn.render)(e,{stdout:t,stderr:r,debug:!0,exitOnCtrlC:!1,patchConsole:!1});return n(),[...t.frames,...r.frames].join(` `)};var SEr={};sI(SEr,{FilesChangedListCommand:()=>cQe,default:()=>fni,getChangedCommmits:()=>Pmt,getChangedFiles:()=>oO,getCommitData:()=>cni,getEventCommmits:()=>ani,getGithubChangedFiles:()=>lni});var uni=Nt(el(),1),gni=Nt(el(),1),Ani=Nt(Bn(),1),dni=Nt(Bn(),1),pni=Nt(Bn(),1);$c();var sO=Nt(sTe(),1),Vmt=Nt(sTe(),1),oni=Nt(Bn(),1),Lya=100,ani=async()=>{if(sO.context.eventName==="push")return sO.context.payload.commits;if(sO.context.eventName==="pull_request"&&sO.context.payload.pull_request){let e=sO.context.payload.pull_request.commits_url;return(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN).paginate(`GET ${e}`,sO.context.repo)}return console.log(`Unknown event "${sO.context.eventName}". Only "push" and "pull_request" supported.`),[]},cni=async e=>{let t=(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN),r=[],n;for await(let a of t.paginate.iterator(t.rest.repos.getCommit,{...sO.context.repo,ref:e,per_page:Lya})){let o=a;n??=o,r.push(...o.data.files??[])}if(!n)throw new Error(`Could not resolve commit "${e}"`);return{...n,data:{...n.data,files:r}}},Pmt=async()=>{let e=await ani();return Promise.all(e.map(async t=>cni(t.id||t.sha)))},lni=async()=>{if(sO.context.eventName==="pull_request"&&sO.context.payload.pull_request){let t=(0,Vmt.getOctokit)(process.env.GITHUB_TOKEN);return(await t.paginate(t.rest.pulls.listFiles,{...sO.context.repo,pull_number:sO.context.payload.pull_request.number,per_page:100})).map(n=>n.filename).filter(Boolean)}return(await Pmt()).map(t=>t.data.files?t.data.files.map(r=>r.filename).filter(Boolean):[]).flat()},oO=async(e,t)=>{let{stdout:r}=await oni.execUtils.execvp("git",["diff","--name-only",...t?[t]:[]],{cwd:e.cwd,strict:!0}),n=r.split(/\r?\n/).filter(Boolean);return n.length>0?n:!t&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?lni():[]};var cQe=class extends uni.BaseCommand{static paths=[["files","changed","list"]];json=Su.Boolean("--json",!1);async execute(){let t=await Ani.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await dni.Project.find(t,this.context.cwd);if(!n)throw new gni.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await pni.StreamReport.start({configuration:t,json:this.json,stdout:this.context.stdout},async o=>{let l=await oO(r);for(let A of l)o.reportInfo(null,A),o.reportJson({location:A})})).exitCode()}};var fni={commands:[cQe]};var Cni=Nt(Bn(),1),vEr=Nt(no(),1),uQe=Nt(no(),1),BEr=Nt(no(),1);import{join as Qya}from"node:path";var lQe="RAIJIN_NODE_LOADER",Ini="--import",Vya="data:text/javascript,import%20%7B%20register%20%7D%20from%20%22node%3Amodule%22%3B",Pya=new Set(["--experimental-loader","--loader"]),Wya=e=>`data:text/javascript,${encodeURIComponent(['import { register } from "node:module";','import { pathToFileURL } from "node:url";',`register(${JSON.stringify(e)}, pathToFileURL("./"));`].join(" "))}`,Oya=(e,t,r)=>[e,t,r].filter(Boolean).join(" "),Mya=e=>e?.startsWith(Vya)??!1,Hya=e=>e?.includes(".pnp.loader.mjs")??!1,Yya=e=>{if(!e)return;let t=e.split(/\s+/).filter(Boolean),r=[];for(let n=0;n0?r.join(" "):void 0},Wmt=e=>{let t=e[lQe];if(!t)return;let r=Yya(e.NODE_OPTIONS);e.NODE_OPTIONS=Oya(r,Ini,Wya(t))};var Xya=process.platform==="win32"?"yarn.cmd":"yarn",Jya=process.platform==="win32"?"node.cmd":"node",Uya=process.platform==="win32"?["yarn.cmd","yarnpkg.cmd"]:["yarn","yarnpkg"],hni=e=>`'${e.replaceAll("'","'\\''")}'`,mni=(e,t)=>process.platform==="win32"?`@echo off\r "${e}" ${t.map(r=>`"${r.replaceAll('"','""')}"`).join(" ")} %*\r `:`#!/bin/sh @@ -2018,18 +2018,18 @@ exec ${hni(e)} ${t.map(hni).join(" ")} "$@" The same release step can be disabled from top-level package.json with tools.checks.release=false. `});changed=Su.Boolean("--changed",!1);noRelease=Su.Boolean("--no-release",!1);async execute(){let t=await $ni.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await eii.Project.find(t,this.context.cwd),n=Mmt(r);return(await qni.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await this.runCheck(r,r.cwd,["typecheck"],o)!==0||await this.runCheck(r,r.cwd,["lint"],o)!==0||(await Promise.all([this.runCheck(r,r.cwd,["test","unit"],o),this.runCheck(r,r.cwd,["test","integration"],o)])).some(A=>A!==0)||!this.noRelease&&n.enabled&&await this.runCheck(r,r.cwd,["release"],o)})).exitCode()}async runCheck(t,r,n,a){try{let l=this.changed&&(n[0]==="lint"||n[0]==="typecheck")&&!n.includes("--changed")?[...n,"--changed"]:n,A=await rii.xfs.mktempPromise(),{executable:f,env:I}=await iC({binFolder:A,project:t}),{code:C}=await tii.execUtils.pipevp(f,["checks",...l],{cwd:r,env:I,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return C!==0&&a.reportError(PEr.MessageName.UNNAMED,`Run check ${n.join(" ")} failed: ${C}`),C}catch(o){return a.reportError(PEr.MessageName.UNNAMED,`Run check ${n.join(" ")} error: ${o instanceof Error?o.message:o}`),1}}};var dii=Nt(Bn(),1),YEr=Nt(Bn(),1),QEr=Nt(Bn(),1),XEr=Nt(no(),1),pii=Nt(Bn(),1),fii=Nt(no(),1);import oba from"node:events";import{readFileSync as aba}from"node:fs";import{relative as WEr}from"node:path";import{join as cba}from"node:path";import{run as sii}from"node:test";import{tap as oii}from"node:test/reporters";var aii=Nt(uHe(),1);import{readFile as rba}from"node:fs/promises";var Qmt=class{static async load(t){return Promise.all(t.map(async r=>{let n=await rba(r,"utf8");return{file:r,source:n,tests:n.match(/test\(/gm)?.length||0}}))}};var nba="RAIJIN_TEST_EXEC_ARGV";var iba="@atls/code-runtime/runtime-exec-argv",sba=async()=>await import(iba);var nii=async e=>{let{createRuntimeExecArgv:t}=await sba();return t(e)},iii=(e=process.env[nba])=>{if(!e)return[];try{let t=JSON.parse(e);if(Array.isArray(t)&&t.every(r=>typeof r=="string"))return t}catch{return[]}return[]};var lba=1e3,aTe=(e,t)=>({type:e,data:t}),uba=e=>!e.file,gba=e=>e.includes(` not ok `)||/# (?:fail|cancelled) [1-9]\d*/.test(e),V8=class e extends oba{constructor(r){super();this.cwd=r;this.ignore=aii.default.default().add(this.getProjectIgnorePatterns())}ignore;async run(r,n,a,o=!1,l){let A=iii(),f=A.length>0?A:await nii(this.cwd),I={files:r,timeout:n,concurrency:a,watch:o,...f.length>0?{execArgv:f}:{}};if(l==="tap"){let X=sii(I),ae=X.compose(oii);return ae.pipe(process.stdout),this.collectTestsStream(X,ae,o)}let C=await Qmt.load(r);this.emit("start",{tests:C});let b=sii(I),E=b.compose(oii),N=X=>{this.emit("test:pass",X)},B=X=>{this.emit("test:fail",X)},F=X=>{this.emit("test:stdout",X)},Q=X=>{this.emit("test:stderr",X)};b.on("test:pass",N),b.on("test:fail",B),b.on("test:stdout",F),b.on("test:stderr",Q);try{return await this.collectTestsStream(b,E,o)}finally{this.emit("end"),b.off("test:pass",N),b.off("test:fail",B),b.off("test:stdout",F),b.off("test:stderr",Q)}}static async initialize(r){return new e(r)}async collectTestsStream(r,n,a=!1){let o=[],l="",A=setInterval(()=>{},lba);return new Promise((f,I)=>{let C=()=>{};function b(){C(),f(o)}function E(fe){o.push(aTe("test:pass",fe))}function N(fe){o.push(aTe("test:fail",fe))}function B(fe){o.push(aTe("test:stdout",fe))}function F(fe){o.push(aTe("test:stderr",fe))}function Q(fe){o.push(aTe("test:summary",fe)),!a&&uba(fe)&&b()}function X(fe){l+=fe.toString()}function ae(){gba(l)&&o.push(aTe("test:fail",{})),b()}function ne(){b()}function ce(fe){C(),I(fe)}C=()=>{clearInterval(A),r.off("test:pass",E),r.off("test:fail",N),r.off("test:stdout",B),r.off("test:stderr",F),r.off("test:summary",Q),r.off("end",ne),r.off("error",ce),n?.off("data",X),n?.off("end",ae),n?.off("error",ce)},r.on("test:pass",E),r.on("test:fail",N),r.on("test:stdout",B),r.on("test:stderr",F),r.on("test:summary",Q),r.once("end",ne),r.once("error",ce),n?.on("data",X),n?.once("end",ae),n?.once("error",ce)})}async unit(r,n){let o=(await this.collectTestFiles(r,"unit",n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,24e4,!0,n?.watch,n?.testReporter)}async integration(r,n){let o=(await this.collectTestFiles(r,"integration",n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,42e4,!1,n?.watch,n?.testReporter)}async general(r,n){let o=(await this.collectTestFiles(r,void 0,n?.files)).filter(l=>this.ignore.filter([WEr(this.cwd,l)]).length!==0);return this.run(o,42e4,!0,n?.watch,n?.testReporter)}async collectTestFiles(r,n,a){let o="*";return n!==void 0&&(o=n==="unit"?"!(integration)":"integration"),!a||a.length<1?b$([`**/${o}/*.test.{ts,tsx,js,jsx}`],{cwd:r,dot:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/.yarn/**"]}):b$(a.map(l=>this.isFilename(l)?`**/${o}/*${l}*.test.{ts,tsx,js,jsx}`:this.isRootPath(l)?l:`**/${l}`),{cwd:r,dot:!0,absolute:!0,ignore:["**/node_modules/**","**/dist/**","**/.yarn/**"]})}isFilename(r){let n=r.includes("/")||r.includes("\\"),a=/\.(js|jsx|ts|tsx)$/.test(r);return!n&&!a}isRootPath(r){return r.startsWith("/")||r.startsWith("\\")}getProjectIgnorePatterns(){let r=aba(cba(this.cwd,"package.json"),"utf-8"),{testIgnorePatterns:n=[]}=JSON.parse(r);return n}};var Aii=Nt(el(),1);import{relative as Aba}from"node:path";var dba=1,pba="failure",lii=new Set(["test failed"]),fba=["Error","AssertionError","TypeError:","SyntaxError:","ReferenceError:","RangeError:"],MEr=e=>typeof e=="object"&&e!==null,OEr=e=>typeof e=="string"&&e.length>0?e:void 0,vhe=e=>MEr(e)?OEr(e.message):OEr(e),cii=e=>{if(MEr(e))return OEr(e.stack)},Xmt=e=>{if(!MEr(e)||e.cause===void 0)return e;let t=Xmt(e.cause),r=vhe(t);return r&&!lii.has(r)?t:e},HEr=e=>e===void 0||lii.has(e),Iba=e=>e.reduce((t,r)=>{if(r.type!=="test:stderr")return t;let{file:n,message:a}=r.data;return n&&a&&t.set(n,`${t.get(n)??""}${a}`),t},new Map),uii=e=>e?e.split(` -`).map(r=>r.trim()).filter(Boolean).find(r=>fba.some(n=>r.startsWith(n))):void 0,hba=e=>e.reduce((t,r)=>(r.file&&t.set(r.file,(t.get(r.file)??0)+1),t),new Map),mba=(e,t,r)=>{if(!t||r>1)return!1;let n=Xmt(e),a=vhe(n);return HEr(a)&&uii(t)!==void 0},Cba=(e,t)=>{let r=Xmt(e),n=vhe(r),a=uii(t);return a&&HEr(n)?a:n??vhe(e)??"Test failed"},_ba=(e,t)=>{let r=Xmt(e),n=vhe(r);return t&&HEr(n)?t.trim():cii(r)??vhe(r)??cii(e)??vhe(e)??"Test failed"},gii=(e,t,r=[])=>{let n=Iba(r),a=hba(e);return e.map(o=>{let l=o.file?n.get(o.file):void 0,A=o.file?a.get(o.file)??0:0,f=mba(o.details.error,l,A)?l:void 0,I=Cba(o.details.error,f),C=o.line??dba;return{path:o.file?Aba(t,o.file):t,start_line:C,end_line:C,annotation_level:pba,raw_details:_ba(o.details.error,f),title:I,message:I}})};var cTe=class extends Aii.BaseCommand{formatResults(t,r,n=[]){return gii(t,r,n)}};var hQe=class extends cTe{static paths=[["checks","test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(XEr.Filename.pnpCjs)&&t.includes(XEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd),n=await fii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await pii.execUtils.pipevp(a,["checks","test","integration"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","integration"]);let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd);return(await dii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Integration"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).integration(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Integration run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Iii=Nt(Bn(),1),JEr=Nt(Bn(),1),UEr=Nt(Bn(),1),KEr=Nt(no(),1),hii=Nt(Bn(),1),mii=Nt(no(),1);var mQe=class extends cTe{static paths=[["checks","test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(KEr.Filename.pnpCjs)&&t.includes(KEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd),n=await mii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await hii.execUtils.pipevp(a,["checks","test","unit"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","unit"]);let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd);return(await Iii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Unit"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).unit(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Unit run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Cii=Nt(el(),1),zEr=Nt(Bn(),1),qEr=Nt(Bn(),1),_ii=Nt(Bn(),1),Jmt=Nt(Bn(),1),$Er=Nt(no(),1),yii=Nt(Bn(),1),lTe=Nt(no(),1),e1r=Nt(no(),1),t1r=Nt(no(),1);$c();import{spawn as yba}from"node:child_process";import{resolve as bba}from"node:path";var jEr=5*60*1e3,CQe=class extends Cii.BaseCommand{static paths=[["checks","typecheck"]];changed=Su.Boolean("--changed",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes($Er.Filename.pnpCjs)&&t.includes($Er.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd),n=await lTe.xfs.mktempPromise(),a=["checks","typecheck",...this.changed?["--changed"]:[]],{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await yii.execUtils.pipevp(o,a,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd);return(await _ii.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{let o=new WM("TypeCheck");try{let{id:l}=await o.start();await a.startTimerPromise("TypeCheck",async()=>{try{let A=await this.getIncludes(r);if(this.changed&&A.length===0){a.reportInfo(Jmt.MessageName.UNNAMED,"No TypeScript files changed"),await o.complete(l,{title:"Successful",summary:"No TypeScript files changed",annotations:[]});return}a.reportInfo(Jmt.MessageName.UNNAMED,`TypeCheck targets: ${A.length}`);let f=await this.runTypecheck(r,A);f===0?await o.complete(l,{title:"Successful",summary:"All checks passed",annotations:[]}):(await o.failure({title:"TypeCheck run failed",summary:f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`},l),a.reportError(Jmt.MessageName.UNNAMED,f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`))}catch(A){await o.failure({title:"TypeCheck run failed",summary:A instanceof Error?A.message:A},l)}})}catch(l){await o.failure({title:"TypeCheck start failed",summary:l instanceof Error?l.message:l})}})).exitCode()}async getIncludes(t){if(this.changed){let r=(await oO(t)).filter(a=>/\.(cts|mts|ts|tsx)$/.test(a)),n=await Promise.all(r.map(async a=>lTe.xfs.existsPromise(e1r.npath.toPortablePath(bba(t.cwd,a)))));return r.filter((a,o)=>n[o])}if(await lTe.xfs.existsPromise(t1r.ppath.join(t.cwd,"tsconfig.json"))){let r=await lTe.xfs.readJsonPromise(t1r.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}async runTypecheck(t,r){let n=await lTe.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:t,env:{COMMAND_PROXY_EXECUTION:"true"}}),l;return new Promise((A,f)=>{let I=!1,C=yba(a,["typecheck",...r],{cwd:e1r.npath.fromPortablePath(t.cwd),env:o,stdio:["ignore","pipe","pipe"]});C.stdout.pipe(this.context.stdout,{end:!1}),C.stderr.pipe(this.context.stderr,{end:!1}),l=setTimeout(()=>{I=!0,C.kill("SIGTERM"),setTimeout(()=>{C.killed||C.kill("SIGKILL")},5e3).unref()},jEr),C.on("error",f),C.on("close",b=>{l&&clearTimeout(l),A(I?124:b??1)})})}};var bii={commands:[hQe,mQe,CQe,gQe,Hmt,Ymt]};var i1r={};sI(i1r,{beforeWorkspacePacking:()=>n1r,default:()=>Eii});var n1r=(e,t)=>{t.name==="@atls/yarn-cli"&&(t.dependencies=new Proxy({},{set:()=>!0}))};var Eii={hooks:{beforeWorkspacePacking:n1r}};var TBr={};sI(TBr,{default:()=>dhi});var mli=Nt(el(),1),Cli=Nt(Bn(),1),_li=Nt(Bn(),1);var Osi=Nt(wii(),1);var Oii=Nt(Pii(),1);function Wii(e){let t=[];return new Promise((r,n)=>e.on("data",a=>t.push(a.toString("utf-8"))).on("error",n).on("end",()=>r(t)))}async function Mii(e,t={}){return Wii((0,Oii.default)(e,{cwd:t.cwd}))}import Xba from"path";import yQe from"node:path";import Vba from"node:process";import Pba from"node:path";import Fuu,{promises as Hii}from"node:fs";import{fileURLToPath as Wba}from"node:url";var s1r=class{value;next;constructor(t){this.value=t}},_Qe=class{#e;#t;#n;constructor(){this.clear()}enqueue(t){let r=new s1r(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#n++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#n--,t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}};function Kmt(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new _Qe,r=0,n=()=>{r--,t.size>0&&t.dequeue()()},a=async(A,f,I)=>{r++;let C=(async()=>A(...I))();f(C);try{await C}catch{}n()},o=(A,f,I)=>{t.enqueue(a.bind(void 0,A,f,I)),(async()=>(await Promise.resolve(),r0&&t.dequeue()()))()},l=(A,...f)=>new Promise(I=>{o(A,I,f)});return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),l}var jmt=class extends Error{constructor(t){super(),this.value=t}},Zba=async(e,t)=>t(await e),Lba=async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new jmt(t[0]);return!1};async function o1r(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){let a=Kmt(r),o=[...e].map(A=>[A,a(Zba,A,t)]),l=Kmt(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(A=>l(Lba,A)))}catch(A){if(A instanceof jmt)return A.value;throw A}}var Yii={directory:"isDirectory",file:"isFile"};function Oba(e){if(!Object.hasOwnProperty.call(Yii,e))throw new Error(`Invalid type specified: ${e}`)}var Mba=(e,t)=>t[Yii[e]](),Hba=e=>e instanceof URL?Wba(e):e;async function a1r(e,{cwd:t=Vba.cwd(),type:r="file",allowSymlinks:n=!0,concurrency:a,preserveOrder:o}={}){Oba(r),t=Hba(t);let l=n?Hii.stat:Hii.lstat;return o1r(e,async A=>{try{let f=await l(Pba.resolve(t,A));return Mba(r,f)}catch{return!1}},{concurrency:a,preserveOrder:o})}Vfr();var Yba=Symbol("findUpStop");async function Qba(e,t={}){let r=yQe.resolve(mMe(t.cwd)??""),{root:n}=yQe.parse(r),a=yQe.resolve(r,mMe(t.stopAt??n)),o=t.limit??Number.POSITIVE_INFINITY,l=[e].flat(),A=async I=>{if(typeof e!="function")return a1r(l,I);let C=await e(I.cwd);return typeof C=="string"?a1r([C],I):C},f=[];for(;;){let I=await A({...t,cwd:r});if(I===Yba||(I&&f.push(yQe.resolve(r,I)),r===a||f.length>=o))break;r=yQe.dirname(r)}return f}async function c1r(e,t={}){return(await Qba(e,{...t,limit:1}))[0]}var Qii=Jba;async function Jba(e){let t=await Uba(e);return typeof t!="string"?t:Xba.join(t,"..")}async function Uba(e){let t=await c1r(".git",{cwd:e,type:"file"}),r=await c1r(".git",{cwd:e,type:"directory"});return t||r}import Kba from"fs/promises";import zmt from"path";import Xii from"fs/promises";async function Jii(e,t){if(typeof t=="string")return zmt.resolve(e,t);let r=zmt.join(e,".git");if((await Xii.lstat(r)).isDirectory())return zmt.join(e,".git/COMMIT_EDITMSG");let o=(await Xii.readFile(r,{encoding:"utf-8"})).replace("gitdir: ","").replace(` +`).map(r=>r.trim()).filter(Boolean).find(r=>fba.some(n=>r.startsWith(n))):void 0,hba=e=>e.reduce((t,r)=>(r.file&&t.set(r.file,(t.get(r.file)??0)+1),t),new Map),mba=(e,t,r)=>{if(!t||r>1)return!1;let n=Xmt(e),a=vhe(n);return HEr(a)&&uii(t)!==void 0},Cba=(e,t)=>{let r=Xmt(e),n=vhe(r),a=uii(t);return a&&HEr(n)?a:n??vhe(e)??"Test failed"},_ba=(e,t)=>{let r=Xmt(e),n=vhe(r);return t&&HEr(n)?t.trim():cii(r)??vhe(r)??cii(e)??vhe(e)??"Test failed"},gii=(e,t,r=[])=>{let n=Iba(r),a=hba(e);return e.map(o=>{let l=o.file?n.get(o.file):void 0,A=o.file?a.get(o.file)??0:0,f=mba(o.details.error,l,A)?l:void 0,I=Cba(o.details.error,f),C=o.line??dba;return{path:o.file?Aba(t,o.file):t,start_line:C,end_line:C,annotation_level:pba,raw_details:_ba(o.details.error,f),title:I,message:I}})};var cTe=class extends Aii.BaseCommand{formatResults(t,r,n=[]){return gii(t,r,n)}};var hQe=class extends cTe{static paths=[["checks","test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(XEr.Filename.pnpCjs)&&t.includes(XEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd),n=await fii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await pii.execUtils.pipevp(a,["checks","test","integration"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","integration"]);let t=await YEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await QEr.Project.find(t,this.context.cwd);return(await dii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Integration"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).integration(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Integration run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Iii=Nt(Bn(),1),JEr=Nt(Bn(),1),UEr=Nt(Bn(),1),KEr=Nt(no(),1),hii=Nt(Bn(),1),mii=Nt(no(),1);var mQe=class extends cTe{static paths=[["checks","test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(KEr.Filename.pnpCjs)&&t.includes(KEr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd),n=await mii.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await hii.execUtils.pipevp(a,["checks","test","unit"],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){if(!process.env.GITHUB_TOKEN)return this.cli.run(["test","unit"]);let t=await JEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await UEr.Project.find(t,this.context.cwd);return(await Iii.StreamReport.start({stdout:this.context.stdout,configuration:t},async()=>{let a=new WM("Test:Unit"),{id:o}=await a.start();try{let A=await(await V8.initialize(this.context.cwd)).unit(r.cwd),f=this.formatResults(A.filter(I=>I.type==="test:fail").map(I=>I.data),r.cwd,A);await a.complete(o,{title:f.length>0?`Errors ${f.length}`:"Successful",summary:f.length>0?`Found ${f.length} errors`:"All checks passed",annotations:f})}catch(l){await a.failure({title:"Test:Unit run failed",summary:l instanceof Error?l.message:l},o)}})).exitCode()}};var Cii=Nt(el(),1),zEr=Nt(Bn(),1),qEr=Nt(Bn(),1),_ii=Nt(Bn(),1),Jmt=Nt(Bn(),1),$Er=Nt(no(),1),yii=Nt(Bn(),1),lTe=Nt(no(),1),e1r=Nt(no(),1),t1r=Nt(no(),1);$c();import{spawn as yba}from"node:child_process";import{resolve as bba}from"node:path";var jEr=5*60*1e3,CQe=class extends Cii.BaseCommand{static paths=[["checks","typecheck"]];changed=Su.Boolean("--changed",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes($Er.Filename.pnpCjs)&&t.includes($Er.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd),n=await lTe.xfs.mktempPromise(),a=["checks","typecheck",...this.changed?["--changed"]:[]],{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await yii.execUtils.pipevp(o,a,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await zEr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await qEr.Project.find(t,this.context.cwd);return(await _ii.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{let o=new WM("TypeCheck");try{let{id:l}=await o.start();await a.startTimerPromise("TypeCheck",async()=>{try{let A=await this.getIncludes(r);if(this.changed&&A.length===0){a.reportInfo(Jmt.MessageName.UNNAMED,"No TypeScript files changed"),await o.complete(l,{title:"Successful",summary:"No TypeScript files changed",annotations:[]});return}a.reportInfo(Jmt.MessageName.UNNAMED,`TypeCheck targets: ${A.length}`);let f=await this.runTypecheck(r,A);f===0?await o.complete(l,{title:"Successful",summary:"All checks passed",annotations:[]}):(await o.failure({title:"TypeCheck run failed",summary:f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`},l),a.reportError(Jmt.MessageName.UNNAMED,f===124?`TypeCheck timed out after ${jEr/1e3}s`:`TypeCheck failed with exit code ${f}`))}catch(A){await o.failure({title:"TypeCheck run failed",summary:A instanceof Error?A.message:A},l)}})}catch(l){await o.failure({title:"TypeCheck start failed",summary:l instanceof Error?l.message:l})}})).exitCode()}async getIncludes(t){if(this.changed){let r=(await oO(t)).filter(a=>/\.(cts|mts|ts|tsx)$/.test(a)),n=await Promise.all(r.map(async a=>lTe.xfs.existsPromise(e1r.npath.toPortablePath(bba(t.cwd,a)))));return r.filter((a,o)=>n[o])}if(await lTe.xfs.existsPromise(t1r.ppath.join(t.cwd,"tsconfig.json"))){let r=await lTe.xfs.readJsonPromise(t1r.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}async runTypecheck(t,r){let n=await lTe.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:t,env:{COMMAND_PROXY_EXECUTION:"true"}}),l;return new Promise((A,f)=>{let I=!1,C=yba(a,["typecheck",...r],{cwd:e1r.npath.fromPortablePath(t.cwd),env:o,stdio:["ignore","pipe","pipe"]});C.stdout.pipe(this.context.stdout,{end:!1}),C.stderr.pipe(this.context.stderr,{end:!1}),l=setTimeout(()=>{I=!0,C.kill("SIGTERM"),setTimeout(()=>{C.killed||C.kill("SIGKILL")},5e3).unref()},jEr),C.on("error",f),C.on("close",b=>{l&&clearTimeout(l),A(I?124:b??1)})})}};var bii={commands:[hQe,mQe,CQe,gQe,Hmt,Ymt]};var i1r={};sI(i1r,{beforeWorkspacePacking:()=>n1r,default:()=>Eii});var n1r=(e,t)=>{t.name==="@atls/yarn-cli"&&(t.dependencies=new Proxy({},{set:()=>!0}))};var Eii={hooks:{beforeWorkspacePacking:n1r}};var TBr={};sI(TBr,{default:()=>dhi});var mli=Nt(el(),1),Cli=Nt(Bn(),1),_li=Nt(Bn(),1);var Osi=Nt(wii(),1);var Oii=Nt(Pii(),1);function Wii(e){let t=[];return new Promise((r,n)=>e.on("data",a=>t.push(a.toString("utf-8"))).on("error",n).on("end",()=>r(t)))}async function Mii(e,t={}){return Wii((0,Oii.default)(e,{cwd:t.cwd}))}import Xba from"path";import yQe from"node:path";import Vba from"node:process";import Pba from"node:path";import Zuu,{promises as Hii}from"node:fs";import{fileURLToPath as Wba}from"node:url";var s1r=class{value;next;constructor(t){this.value=t}},_Qe=class{#e;#t;#n;constructor(){this.clear()}enqueue(t){let r=new s1r(t);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#n++}dequeue(){let t=this.#e;if(t)return this.#e=this.#e.next,this.#n--,t.value}peek(){if(this.#e)return this.#e.value}clear(){this.#e=void 0,this.#t=void 0,this.#n=0}get size(){return this.#n}*[Symbol.iterator](){let t=this.#e;for(;t;)yield t.value,t=t.next}};function Kmt(e){if(!((Number.isInteger(e)||e===Number.POSITIVE_INFINITY)&&e>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let t=new _Qe,r=0,n=()=>{r--,t.size>0&&t.dequeue()()},a=async(A,f,I)=>{r++;let C=(async()=>A(...I))();f(C);try{await C}catch{}n()},o=(A,f,I)=>{t.enqueue(a.bind(void 0,A,f,I)),(async()=>(await Promise.resolve(),r0&&t.dequeue()()))()},l=(A,...f)=>new Promise(I=>{o(A,I,f)});return Object.defineProperties(l,{activeCount:{get:()=>r},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}}),l}var jmt=class extends Error{constructor(t){super(),this.value=t}},Zba=async(e,t)=>t(await e),Lba=async e=>{let t=await Promise.all(e);if(t[1]===!0)throw new jmt(t[0]);return!1};async function o1r(e,t,{concurrency:r=Number.POSITIVE_INFINITY,preserveOrder:n=!0}={}){let a=Kmt(r),o=[...e].map(A=>[A,a(Zba,A,t)]),l=Kmt(n?1:Number.POSITIVE_INFINITY);try{await Promise.all(o.map(A=>l(Lba,A)))}catch(A){if(A instanceof jmt)return A.value;throw A}}var Yii={directory:"isDirectory",file:"isFile"};function Oba(e){if(!Object.hasOwnProperty.call(Yii,e))throw new Error(`Invalid type specified: ${e}`)}var Mba=(e,t)=>t[Yii[e]](),Hba=e=>e instanceof URL?Wba(e):e;async function a1r(e,{cwd:t=Vba.cwd(),type:r="file",allowSymlinks:n=!0,concurrency:a,preserveOrder:o}={}){Oba(r),t=Hba(t);let l=n?Hii.stat:Hii.lstat;return o1r(e,async A=>{try{let f=await l(Pba.resolve(t,A));return Mba(r,f)}catch{return!1}},{concurrency:a,preserveOrder:o})}Vfr();var Yba=Symbol("findUpStop");async function Qba(e,t={}){let r=yQe.resolve(mMe(t.cwd)??""),{root:n}=yQe.parse(r),a=yQe.resolve(r,mMe(t.stopAt??n)),o=t.limit??Number.POSITIVE_INFINITY,l=[e].flat(),A=async I=>{if(typeof e!="function")return a1r(l,I);let C=await e(I.cwd);return typeof C=="string"?a1r([C],I):C},f=[];for(;;){let I=await A({...t,cwd:r});if(I===Yba||(I&&f.push(yQe.resolve(r,I)),r===a||f.length>=o))break;r=yQe.dirname(r)}return f}async function c1r(e,t={}){return(await Qba(e,{...t,limit:1}))[0]}var Qii=Jba;async function Jba(e){let t=await Uba(e);return typeof t!="string"?t:Xba.join(t,"..")}async function Uba(e){let t=await c1r(".git",{cwd:e,type:"file"}),r=await c1r(".git",{cwd:e,type:"directory"});return t||r}import Kba from"fs/promises";import zmt from"path";import Xii from"fs/promises";async function Jii(e,t){if(typeof t=="string")return zmt.resolve(e,t);let r=zmt.join(e,".git");if((await Xii.lstat(r)).isDirectory())return zmt.join(e,".git/COMMIT_EDITMSG");let o=(await Xii.readFile(r,{encoding:"utf-8"})).replace("gitdir: ","").replace(` `,"");return zmt.resolve(e,o,"COMMIT_EDITMSG")}async function Uii(e,t){let r=await Qii(e);if(typeof r!="string")throw new TypeError(`Could not find git root from ${e}`);let n=await Jii(r,t);return[`${(await Kba.readFile(n)).toString("utf-8")} `]}var Lsi=Nt(Lct(),1);import{Buffer as u1a}from"node:buffer";import g1a from"node:path";import x1r from"node:child_process";import ACt from"node:process";function l1r(e){let t=typeof e=="string"?` `:10,r=typeof e=="string"?"\r":13;return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e}import $mt from"node:process";import bQe from"node:path";import{fileURLToPath as Kii}from"node:url";function qmt(e={}){let{env:t=process.env,platform:r=process.platform}=e;return r!=="win32"?"PATH":Object.keys(t).reverse().find(n=>n.toUpperCase()==="PATH")||"Path"}var jba=({cwd:e=$mt.cwd(),path:t=$mt.env[qmt()],preferLocal:r=!0,execPath:n=$mt.execPath,addExecPath:a=!0}={})=>{let o=e instanceof URL?Kii(e):e,l=bQe.resolve(o),A=[];return r&&zba(A,l),a&&qba(A,n,l),[...A,t].join(bQe.delimiter)},zba=(e,t)=>{let r;for(;r!==t;)e.push(bQe.join(t,"node_modules/.bin")),r=t,t=bQe.resolve(t,"..")},qba=(e,t,r)=>{let n=t instanceof URL?Kii(t):t;e.push(bQe.resolve(r,n,".."))},jii=({env:e=$mt.env,...t}={})=>{e={...e};let r=qmt({env:e});return t.path=e[r],e[r]=jba(t),e};var $ba=(e,t,r,n)=>{if(r==="length"||r==="prototype"||r==="arguments"||r==="caller")return;let a=Object.getOwnPropertyDescriptor(e,r),o=Object.getOwnPropertyDescriptor(t,r);!eEa(a,o)&&n||Object.defineProperty(e,r,o)},eEa=function(e,t){return e===void 0||e.configurable||e.writable===t.writable&&e.enumerable===t.enumerable&&e.configurable===t.configurable&&(e.writable||e.value===t.value)},tEa=(e,t)=>{let r=Object.getPrototypeOf(t);r!==Object.getPrototypeOf(e)&&Object.setPrototypeOf(e,r)},rEa=(e,t)=>`/* Wrapped ${e}*/ -${t}`,nEa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),iEa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),sEa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=rEa.bind(null,n,t.toString());Object.defineProperty(a,"name",iEa),Object.defineProperty(e,"toString",{...nEa,value:a})};function u1r(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))$ba(e,t,a,r);return tEa(e,t),sEa(e,t,n),e}var eCt=new WeakMap,zii=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(eCt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return u1r(o,e),eCt.set(o,n),o};zii.callCount=e=>{if(!eCt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return eCt.get(e)};var qii=zii;import fEa from"node:process";import{constants as lEa}from"node:os";var $ii=()=>{let e=tsi-esi+1;return Array.from({length:e},oEa)},oEa=(e,t)=>({name:`SIGRT${t+1}`,number:esi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),esi=34,tsi=64;import{constants as aEa}from"node:os";var rsi=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var g1r=()=>{let e=$ii();return[...rsi,...e].map(cEa)},cEa=({name:e,number:t,description:r,action:n,forced:a=!1,standard:o})=>{let{signals:{[e]:l}}=aEa,A=l!==void 0;return{name:e,number:A?l:t,description:r,supported:A,action:n,forced:a,standard:o}};var uEa=()=>{let e=g1r();return Object.fromEntries(e.map(gEa))},gEa=({name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l})=>[e,{name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l}],nsi=uEa(),AEa=()=>{let e=g1r(),t=65,r=Array.from({length:t},(n,a)=>dEa(a,e));return Object.assign({},...r)},dEa=(e,t)=>{let r=pEa(e,t);if(r===void 0)return{};let{name:n,description:a,supported:o,action:l,forced:A,standard:f}=r;return{[e]:{name:n,number:e,description:a,supported:o,action:l,forced:A,standard:f}}},pEa=(e,t)=>{let r=t.find(({name:n})=>lEa.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},bgu=AEa();var IEa=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:a,exitCode:o,isCanceled:l})=>e?`timed out after ${t} milliseconds`:l?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",EQe=({stdout:e,stderr:t,all:r,error:n,signal:a,exitCode:o,command:l,escapedCommand:A,timedOut:f,isCanceled:I,killed:C,parsed:{options:{timeout:b,cwd:E=fEa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let N=a===void 0?void 0:nsi[a].description,B=n&&n.code,Q=`Command ${IEa({timedOut:f,timeout:b,errorCode:B,signal:a,signalDescription:N,exitCode:o,isCanceled:I})}: ${l}`,X=Object.prototype.toString.call(n)==="[object Error]",ae=X?`${Q} +${t}`,nEa=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),iEa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),sEa=(e,t,r)=>{let n=r===""?"":`with ${r.trim()}() `,a=rEa.bind(null,n,t.toString());Object.defineProperty(a,"name",iEa),Object.defineProperty(e,"toString",{...nEa,value:a})};function u1r(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let a of Reflect.ownKeys(t))$ba(e,t,a,r);return tEa(e,t),sEa(e,t,n),e}var eCt=new WeakMap,zii=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let r,n=0,a=e.displayName||e.name||"",o=function(...l){if(eCt.set(o,++n),n===1)r=e.apply(this,l),e=null;else if(t.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return u1r(o,e),eCt.set(o,n),o};zii.callCount=e=>{if(!eCt.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return eCt.get(e)};var qii=zii;import fEa from"node:process";import{constants as lEa}from"node:os";var $ii=()=>{let e=tsi-esi+1;return Array.from({length:e},oEa)},oEa=(e,t)=>({name:`SIGRT${t+1}`,number:esi+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),esi=34,tsi=64;import{constants as aEa}from"node:os";var rsi=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];var g1r=()=>{let e=$ii();return[...rsi,...e].map(cEa)},cEa=({name:e,number:t,description:r,action:n,forced:a=!1,standard:o})=>{let{signals:{[e]:l}}=aEa,A=l!==void 0;return{name:e,number:A?l:t,description:r,supported:A,action:n,forced:a,standard:o}};var uEa=()=>{let e=g1r();return Object.fromEntries(e.map(gEa))},gEa=({name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l})=>[e,{name:e,number:t,description:r,supported:n,action:a,forced:o,standard:l}],nsi=uEa(),AEa=()=>{let e=g1r(),t=65,r=Array.from({length:t},(n,a)=>dEa(a,e));return Object.assign({},...r)},dEa=(e,t)=>{let r=pEa(e,t);if(r===void 0)return{};let{name:n,description:a,supported:o,action:l,forced:A,standard:f}=r;return{[e]:{name:n,number:e,description:a,supported:o,action:l,forced:A,standard:f}}},pEa=(e,t)=>{let r=t.find(({name:n})=>lEa.signals[n]===e);return r!==void 0?r:t.find(n=>n.number===e)},Egu=AEa();var IEa=({timedOut:e,timeout:t,errorCode:r,signal:n,signalDescription:a,exitCode:o,isCanceled:l})=>e?`timed out after ${t} milliseconds`:l?"was canceled":r!==void 0?`failed with ${r}`:n!==void 0?`was killed with ${n} (${a})`:o!==void 0?`failed with exit code ${o}`:"failed",EQe=({stdout:e,stderr:t,all:r,error:n,signal:a,exitCode:o,command:l,escapedCommand:A,timedOut:f,isCanceled:I,killed:C,parsed:{options:{timeout:b,cwd:E=fEa.cwd()}}})=>{o=o===null?void 0:o,a=a===null?void 0:a;let N=a===void 0?void 0:nsi[a].description,B=n&&n.code,Q=`Command ${IEa({timedOut:f,timeout:b,errorCode:B,signal:a,signalDescription:N,exitCode:o,isCanceled:I})}: ${l}`,X=Object.prototype.toString.call(n)==="[object Error]",ae=X?`${Q} ${n.message}`:Q,ne=[ae,t,e].filter(Boolean).join(` `);return X?(n.originalMessage=n.message,n.message=ne):n=new Error(ne),n.shortMessage=ae,n.command=l,n.escapedCommand=A,n.exitCode=o,n.signal=a,n.signalDescription=N,n.stdout=e,n.stderr=t,n.cwd=E,r!==void 0&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!f,n.isCanceled=I,n.killed=C&&!f,n};var tCt=["stdin","stdout","stderr"],hEa=e=>tCt.some(t=>e[t]!==void 0),isi=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return tCt.map(n=>e[n]);if(hEa(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${tCt.map(n=>`\`${n}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let r=Math.max(t.length,tCt.length);return Array.from({length:r},(n,a)=>t[a])};m1r();import _Ea from"node:os";var yEa=1e3*5,osi=(e,t="SIGTERM",r={})=>{let n=e(t);return bEa(e,t,r,n),n},bEa=(e,t,r,n)=>{if(!EEa(t,r,n))return;let a=vEa(r),o=setTimeout(()=>{e("SIGKILL")},a);o.unref&&o.unref()},EEa=(e,{forceKillAfterTimeout:t},r)=>SEa(e)&&t!==!1&&r,SEa=e=>e===_Ea.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",vEa=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return yEa;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},asi=(e,t)=>{e.kill()&&(t.isCanceled=!0)},BEa=(e,t,r)=>{e.kill(t),r(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},csi=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{if(t===0||t===void 0)return n;let a,o=new Promise((A,f)=>{a=setTimeout(()=>{BEa(e,r,f)},t)}),l=n.finally(()=>{clearTimeout(a)});return Promise.race([o,l])},lsi=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},usi=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let a=iCt(()=>{e.kill()});return n.finally(()=>{a()})};import{createWriteStream as wEa}from"node:fs";import{ChildProcess as TEa}from"node:child_process";function sCt(e){return e!==null&&typeof e=="object"&&typeof e.pipe=="function"}function C1r(e){return sCt(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object"}var REa=e=>e instanceof TEa&&typeof e.then=="function",_1r=(e,t,r)=>{if(typeof r=="string")return e[t].pipe(wEa(r)),e;if(C1r(r))return e[t].pipe(r),e;if(!REa(r))throw new TypeError("The second argument must be a string, a stream or an Execa child process.");if(!C1r(r.stdin))throw new TypeError("The target child process's stdin must be available.");return e[t].pipe(r.stdin),r},gsi=e=>{e.stdout!==null&&(e.pipeStdout=_1r.bind(void 0,e,"stdout")),e.stderr!==null&&(e.pipeStderr=_1r.bind(void 0,e,"stderr")),e.all!==void 0&&(e.pipeAll=_1r.bind(void 0,e,"all"))};import{createReadStream as UEa,readFileSync as KEa}from"node:fs";import{setTimeout as jEa}from"node:timers/promises";var SQe=async(e,{init:t,convertChunk:r,getSize:n,truncateChunk:a,addChunk:o,getFinalChunk:l,finalize:A},{maxBuffer:f=Number.POSITIVE_INFINITY}={})=>{if(!DEa(e))throw new Error("The first argument must be a Readable, a ReadableStream, or an async iterable.");let I=t();I.length=0;try{for await(let C of e){let b=kEa(C),E=r[b](C,I);psi({convertedChunk:E,state:I,getSize:n,truncateChunk:a,addChunk:o,maxBuffer:f})}return NEa({state:I,convertChunk:r,getSize:n,truncateChunk:a,addChunk:o,getFinalChunk:l,maxBuffer:f}),A(I)}catch(C){throw C.bufferedData=A(I),C}},NEa=({state:e,getSize:t,truncateChunk:r,addChunk:n,getFinalChunk:a,maxBuffer:o})=>{let l=a(e);l!==void 0&&psi({convertedChunk:l,state:e,getSize:t,truncateChunk:r,addChunk:n,maxBuffer:o})},psi=({convertedChunk:e,state:t,getSize:r,truncateChunk:n,addChunk:a,maxBuffer:o})=>{let l=r(e),A=t.length+l;if(A<=o){Asi(e,t,a,A);return}let f=n(e,o-t.length);throw f!==void 0&&Asi(f,t,a,o),new oCt},Asi=(e,t,r,n)=>{t.contents=r(e,t,n),t.length=n},DEa=e=>typeof e=="object"&&e!==null&&typeof e[Symbol.asyncIterator]=="function",kEa=e=>{let t=typeof e;if(t==="string")return"string";if(t!=="object"||e===null)return"others";if(globalThis.Buffer?.isBuffer(e))return"buffer";let r=dsi.call(e);return r==="[object ArrayBuffer]"?"arrayBuffer":r==="[object DataView]"?"dataView":Number.isInteger(e.byteLength)&&Number.isInteger(e.byteOffset)&&dsi.call(e.buffer)==="[object ArrayBuffer]"?"typedArray":"others"},{toString:dsi}=Object.prototype,oCt=class extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}};var y1r=e=>e,b1r=()=>{},E1r=({contents:e})=>e,aCt=e=>{throw new Error(`Streams in object mode are not supported: ${String(e)}`)},cCt=e=>e.length;async function S1r(e,t){return SQe(e,OEa,t)}var xEa=()=>({contents:new ArrayBuffer(0)}),GEa=e=>FEa.encode(e),FEa=new TextEncoder,fsi=e=>new Uint8Array(e),Isi=e=>new Uint8Array(e.buffer,e.byteOffset,e.byteLength),ZEa=(e,t)=>e.slice(0,t),LEa=(e,{contents:t,length:r},n)=>{let a=Csi()?PEa(t,n):VEa(t,n);return new Uint8Array(a).set(e,r),a},VEa=(e,t)=>{if(t<=e.byteLength)return e;let r=new ArrayBuffer(msi(t));return new Uint8Array(r).set(new Uint8Array(e),0),r},PEa=(e,t)=>{if(t<=e.maxByteLength)return e.resize(t),e;let r=new ArrayBuffer(t,{maxByteLength:msi(t)});return new Uint8Array(r).set(new Uint8Array(e),0),r},msi=e=>hsi**Math.ceil(Math.log(e)/Math.log(hsi)),hsi=2,WEa=({contents:e,length:t})=>Csi()?e:e.slice(0,t),Csi=()=>"resize"in ArrayBuffer.prototype,OEa={init:xEa,convertChunk:{string:GEa,buffer:fsi,arrayBuffer:fsi,dataView:Isi,typedArray:Isi,others:aCt},getSize:cCt,truncateChunk:ZEa,addChunk:LEa,getFinalChunk:b1r,finalize:WEa};async function lCt(e,t){if(!("Buffer"in globalThis))throw new Error("getStreamAsBuffer() is only supported in Node.js");try{return _si(await S1r(e,t))}catch(r){throw r.bufferedData!==void 0&&(r.bufferedData=_si(r.bufferedData)),r}}var _si=e=>globalThis.Buffer.from(e);async function v1r(e,t){return SQe(e,XEa,t)}var MEa=()=>({contents:"",textDecoder:new TextDecoder}),uCt=(e,{textDecoder:t})=>t.decode(e,{stream:!0}),HEa=(e,{contents:t})=>t+e,YEa=(e,t)=>e.slice(0,t),QEa=({textDecoder:e})=>{let t=e.decode();return t===""?void 0:t},XEa={init:MEa,convertChunk:{string:y1r,buffer:uCt,arrayBuffer:uCt,dataView:uCt,typedArray:uCt,others:aCt},getSize:cCt,truncateChunk:YEa,addChunk:HEa,getFinalChunk:QEa,finalize:E1r};var Esi=Nt(bsi(),1),Ssi=e=>{if(e!==void 0)throw new TypeError("The `input` and `inputFile` options cannot be both set.")},zEa=({input:e,inputFile:t})=>typeof t!="string"?e:(Ssi(e),KEa(t)),vsi=e=>{let t=zEa(e);if(sCt(t))throw new TypeError("The `input` option cannot be a stream in sync mode");return t},qEa=({input:e,inputFile:t})=>typeof t!="string"?e:(Ssi(e),UEa(t)),Bsi=(e,t)=>{let r=qEa(t);r!==void 0&&(sCt(r)?r.pipe(e.stdin):e.stdin.end(r))},wsi=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let r=(0,Esi.default)();return e.stdout&&r.add(e.stdout),e.stderr&&r.add(e.stderr),r},B1r=async(e,t)=>{if(!(!e||t===void 0)){await jEa(0),e.destroy();try{return await t}catch(r){return r.bufferedData}}},w1r=(e,{encoding:t,buffer:r,maxBuffer:n})=>{if(!(!e||!r))return t==="utf8"||t==="utf-8"?v1r(e,{maxBuffer:n}):t===null||t==="buffer"?lCt(e,{maxBuffer:n}):$Ea(e,n,t)},$Ea=async(e,t,r)=>(await lCt(e,{maxBuffer:t})).toString(r),Tsi=async({stdout:e,stderr:t,all:r},{encoding:n,buffer:a,maxBuffer:o},l)=>{let A=w1r(e,{encoding:n,buffer:a,maxBuffer:o}),f=w1r(t,{encoding:n,buffer:a,maxBuffer:o}),I=w1r(r,{encoding:n,buffer:a,maxBuffer:o*2});try{return await Promise.all([l,A,f,I])}catch(C){return Promise.all([{error:C,signal:C.signal,timedOut:C.timedOut},B1r(e,A),B1r(t,f),B1r(r,I)])}};var e1a=(async()=>{})().constructor.prototype,t1a=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(e1a,e)]),T1r=(e,t)=>{for(let[r,n]of t1a){let a=typeof t=="function"?(...o)=>Reflect.apply(n.value,t(),o):n.value.bind(t);Reflect.defineProperty(e,r,{...n,value:a})}},Rsi=e=>new Promise((t,r)=>{e.on("exit",(n,a)=>{t({exitCode:n,signal:a})}),e.on("error",n=>{r(n)}),e.stdin&&e.stdin.on("error",n=>{r(n)})});import{Buffer as r1a}from"node:buffer";import{ChildProcess as n1a}from"node:child_process";var ksi=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],i1a=/^[\w.-]+$/,s1a=e=>typeof e!="string"||i1a.test(e)?e:`"${e.replaceAll('"','\\"')}"`,R1r=(e,t)=>ksi(e,t).join(" "),N1r=(e,t)=>ksi(e,t).map(r=>s1a(r)).join(" "),xsi=/ +/g,Gsi=e=>{let t=[];for(let r of e.trim().split(xsi)){let n=t.at(-1);n&&n.endsWith("\\")?t[t.length-1]=`${n.slice(0,-1)} ${r}`:t.push(r)}return t},Nsi=e=>{let t=typeof e;if(t==="string")return e;if(t==="number")return String(e);if(t==="object"&&e!==null&&!(e instanceof n1a)&&"stdout"in e){let r=typeof e.stdout;if(r==="string")return e.stdout;if(r1a.isBuffer(e.stdout))return e.stdout.toString();throw new TypeError(`Unexpected "${r}" stdout in template expression`)}throw new TypeError(`Unexpected "${t}" in template expression`)},Dsi=(e,t,r)=>r||e.length===0||t.length===0?[...e,...t]:[...e.slice(0,-1),`${e.at(-1)}${t[0]}`,...t.slice(1)],o1a=({templates:e,expressions:t,tokens:r,index:n,template:a})=>{let o=a??e.raw[n],l=o.split(xsi).filter(Boolean),A=Dsi(r,l,o.startsWith(" "));if(n===t.length)return A;let f=t[n],I=Array.isArray(f)?f.map(C=>Nsi(C)):[Nsi(f)];return Dsi(A,I,o.endsWith(" "))},D1r=(e,t)=>{let r=[];for(let[n,a]of e.entries())r=o1a({templates:e,expressions:t,tokens:r,index:n,template:a});return r};import{debuglog as a1a}from"node:util";import c1a from"node:process";var Fsi=a1a("execa").enabled,gCt=(e,t)=>String(e).padStart(t,"0"),l1a=()=>{let e=new Date;return`${gCt(e.getHours(),2)}:${gCt(e.getMinutes(),2)}:${gCt(e.getSeconds(),2)}.${gCt(e.getMilliseconds(),3)}`},k1r=(e,{verbose:t})=>{t&&c1a.stderr.write(`[${l1a()}] ${e} -`)};var A1a=1e3*1e3*100,d1a=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:a})=>{let o=t?{...ACt.env,...e}:e;return r?jii({env:o,cwd:n,execPath:a}):o},Vsi=(e,t,r={})=>{let n=Lsi.default._parse(e,t,r);return e=n.command,t=n.args,r=n.options,r={maxBuffer:A1a,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||ACt.cwd(),execPath:ACt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Fsi,...r},r.env=d1a(r),r.stdio=isi(r),ACt.platform==="win32"&&g1a.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},vQe=(e,t,r)=>typeof t!="string"&&!u1a.isBuffer(t)?r===void 0?void 0:"":e.stripFinalNewline?l1r(t):t;function j$(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options),lsi(n.options);let l;try{l=x1r.spawn(n.file,n.args,n.options)}catch(N){let B=new x1r.ChildProcess,F=Promise.reject(EQe({error:N,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return T1r(B,F),B}let A=Rsi(l),f=csi(l,n.options,A),I=usi(l,n.options,f),C={isCanceled:!1};l.kill=osi.bind(null,l.kill.bind(l)),l.cancel=asi.bind(null,l,C);let E=qii(async()=>{let[{error:N,exitCode:B,signal:F,timedOut:Q},X,ae,ne]=await Tsi(l,n.options,I),ce=vQe(n.options,X),fe=vQe(n.options,ae),ue=vQe(n.options,ne);if(N||B!==0||F!==null){let de=EQe({error:N,exitCode:B,signal:F,stdout:ce,stderr:fe,all:ue,command:a,escapedCommand:o,parsed:n,timedOut:Q,isCanceled:C.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:l.killed});if(!n.options.reject)return de;throw de}return{command:a,escapedCommand:o,exitCode:0,stdout:ce,stderr:fe,all:ue,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Bsi(l,n.options),l.all=wsi(l,n.options),gsi(l),T1r(l,E),l}function p1a(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options);let l=vsi(n.options),A;try{A=x1r.spawnSync(n.file,n.args,{...n.options,input:l})}catch(C){throw EQe({error:C,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let f=vQe(n.options,A.stdout,A.error),I=vQe(n.options,A.stderr,A.error);if(A.error||A.status!==0||A.signal!==null){let C=EQe({stdout:f,stderr:I,error:A.error,signal:A.signal,exitCode:A.status,command:a,escapedCommand:o,parsed:n,timedOut:A.error&&A.error.code==="ETIMEDOUT",isCanceled:!1,killed:A.signal!==null});if(!n.options.reject)return C;throw C}return{command:a,escapedCommand:o,exitCode:0,stdout:f,stderr:I,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var f1a=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},Zsi=(e={})=>({preferLocal:!0,...f1a(e),...e});function Psi(e){function t(r,...n){if(!Array.isArray(r))return Psi({...e,...r});let[a,...o]=D1r(r,n);return j$(a,o,Zsi(e))}return t.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=D1r(r,n);return p1a(a,o,Zsi(e))},t}var ZAu=Psi();function Wsi(e,t){let[r,...n]=Gsi(e);return j$(r,n,t)}async function dCt(e){let{cwd:t,fromLastTag:r,to:n,last:a,edit:o,gitLogArgs:l}=e,A=e.from;if(o)return Uii(t,o);if(a){let C=(await j$("git",["log","-1","--pretty=format:%B"],{cwd:t})).stdout;return C[0]=='"'&&C[C.length-1]=='"'&&(C=C.slice(1,-1)),[C]}if(!A&&r){let{stdout:I}=await j$("git",["describe","--abbrev=40","--always","--first-parent","--long","--tags"],{cwd:t});if(I.length===40)A=I;else{let C=I.lastIndexOf("-",I.length-43);A=I.slice(0,C)}}let f={from:A,to:n};return l&&(f={...(0,Osi.default)(l.split(" ")),from:A,to:n}),Mii(f,{cwd:t})}var pCt;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(pCt||(pCt={}));var Msi;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(Msi||(Msi={}));var Hsi=(e=0)=>t=>`\x1B[${t+e}m`,Ysi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Qsi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,w2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},qAu=Object.keys(w2.modifier),I1a=Object.keys(w2.color),h1a=Object.keys(w2.bgColor),$Au=[...I1a,...h1a];function m1a(){let e=new Map;for(let[t,r]of Object.entries(w2)){for(let[n,a]of Object.entries(r))w2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=w2[n],e.set(a[0],a[1]);Object.defineProperty(w2,t,{value:r,enumerable:!1})}return Object.defineProperty(w2,"codes",{value:e,enumerable:!1}),w2.color.close="\x1B[39m",w2.bgColor.close="\x1B[49m",w2.color.ansi=Hsi(),w2.color.ansi256=Ysi(),w2.color.ansi16m=Qsi(),w2.bgColor.ansi=Hsi(10),w2.bgColor.ansi256=Ysi(10),w2.bgColor.ansi16m=Qsi(10),Object.defineProperties(w2,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>w2.rgbToAnsi256(...w2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>w2.ansi256ToAnsi(w2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>w2.ansi256ToAnsi(w2.hexToAnsi256(t)),enumerable:!1}}),w2}var C1a=m1a(),OX=C1a;import G1r from"node:process";import _1a from"node:os";import Xsi from"node:tty";function OM(e,t=globalThis.Deno?globalThis.Deno.args:G1r.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function E1a(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=y1a();n!==void 0&&(fCt=n);let a=r?fCt:n;if(a===0)return 0;if(r){if(OM("color=16m")||OM("color=full")||OM("color=truecolor"))return 3;if(OM("color=256"))return 2}if("TF_BUILD"in DS&&"AGENT_NAME"in DS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(DS.TERM==="dumb")return o;if(G1r.platform==="win32"){let l=_1a.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in DS)return"GITHUB_ACTIONS"in DS||"GITEA_ACTIONS"in DS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in DS)||DS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in DS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(DS.TEAMCITY_VERSION)?1:0;if(DS.COLORTERM==="truecolor"||DS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in DS){let l=Number.parseInt((DS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(DS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(DS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(DS.TERM)||"COLORTERM"in DS?1:o}function Jsi(e,t={}){let r=E1a(e,{streamIsTTY:e&&e.isTTY,...t});return b1a(r)}var S1a={stdout:Jsi({isTTY:Xsi.isatty(1)}),stderr:Jsi({isTTY:Xsi.isatty(2)})},Usi=S1a;function Ksi(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.slice(o,n)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.slice(o),l}function jsi(e,t,r,n){let a=0,o="";do{let l=e[n-1]==="\r";o+=e.slice(a,l?n-1:n)+t+(l?`\r +`)};var A1a=1e3*1e3*100,d1a=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:a})=>{let o=t?{...ACt.env,...e}:e;return r?jii({env:o,cwd:n,execPath:a}):o},Vsi=(e,t,r={})=>{let n=Lsi.default._parse(e,t,r);return e=n.command,t=n.args,r=n.options,r={maxBuffer:A1a,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:r.cwd||ACt.cwd(),execPath:ACt.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:Fsi,...r},r.env=d1a(r),r.stdio=isi(r),ACt.platform==="win32"&&g1a.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n}},vQe=(e,t,r)=>typeof t!="string"&&!u1a.isBuffer(t)?r===void 0?void 0:"":e.stripFinalNewline?l1r(t):t;function j$(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options),lsi(n.options);let l;try{l=x1r.spawn(n.file,n.args,n.options)}catch(N){let B=new x1r.ChildProcess,F=Promise.reject(EQe({error:N,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1}));return T1r(B,F),B}let A=Rsi(l),f=csi(l,n.options,A),I=usi(l,n.options,f),C={isCanceled:!1};l.kill=osi.bind(null,l.kill.bind(l)),l.cancel=asi.bind(null,l,C);let E=qii(async()=>{let[{error:N,exitCode:B,signal:F,timedOut:Q},X,ae,ne]=await Tsi(l,n.options,I),ce=vQe(n.options,X),fe=vQe(n.options,ae),ue=vQe(n.options,ne);if(N||B!==0||F!==null){let de=EQe({error:N,exitCode:B,signal:F,stdout:ce,stderr:fe,all:ue,command:a,escapedCommand:o,parsed:n,timedOut:Q,isCanceled:C.isCanceled||(n.options.signal?n.options.signal.aborted:!1),killed:l.killed});if(!n.options.reject)return de;throw de}return{command:a,escapedCommand:o,exitCode:0,stdout:ce,stderr:fe,all:ue,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return Bsi(l,n.options),l.all=wsi(l,n.options),gsi(l),T1r(l,E),l}function p1a(e,t,r){let n=Vsi(e,t,r),a=R1r(e,t),o=N1r(e,t);k1r(o,n.options);let l=vsi(n.options),A;try{A=x1r.spawnSync(n.file,n.args,{...n.options,input:l})}catch(C){throw EQe({error:C,stdout:"",stderr:"",all:"",command:a,escapedCommand:o,parsed:n,timedOut:!1,isCanceled:!1,killed:!1})}let f=vQe(n.options,A.stdout,A.error),I=vQe(n.options,A.stderr,A.error);if(A.error||A.status!==0||A.signal!==null){let C=EQe({stdout:f,stderr:I,error:A.error,signal:A.signal,exitCode:A.status,command:a,escapedCommand:o,parsed:n,timedOut:A.error&&A.error.code==="ETIMEDOUT",isCanceled:!1,killed:A.signal!==null});if(!n.options.reject)return C;throw C}return{command:a,escapedCommand:o,exitCode:0,stdout:f,stderr:I,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}}var f1a=({input:e,inputFile:t,stdio:r})=>e===void 0&&t===void 0&&r===void 0?{stdin:"inherit"}:{},Zsi=(e={})=>({preferLocal:!0,...f1a(e),...e});function Psi(e){function t(r,...n){if(!Array.isArray(r))return Psi({...e,...r});let[a,...o]=D1r(r,n);return j$(a,o,Zsi(e))}return t.sync=(r,...n)=>{if(!Array.isArray(r))throw new TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[a,...o]=D1r(r,n);return p1a(a,o,Zsi(e))},t}var LAu=Psi();function Wsi(e,t){let[r,...n]=Gsi(e);return j$(r,n,t)}async function dCt(e){let{cwd:t,fromLastTag:r,to:n,last:a,edit:o,gitLogArgs:l}=e,A=e.from;if(o)return Uii(t,o);if(a){let C=(await j$("git",["log","-1","--pretty=format:%B"],{cwd:t})).stdout;return C[0]=='"'&&C[C.length-1]=='"'&&(C=C.slice(1,-1)),[C]}if(!A&&r){let{stdout:I}=await j$("git",["describe","--abbrev=40","--always","--first-parent","--long","--tags"],{cwd:t});if(I.length===40)A=I;else{let C=I.lastIndexOf("-",I.length-43);A=I.slice(0,C)}}let f={from:A,to:n};return l&&(f={...(0,Osi.default)(l.split(" ")),from:A,to:n}),Mii(f,{cwd:t})}var pCt;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(pCt||(pCt={}));var Msi;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(Msi||(Msi={}));var Hsi=(e=0)=>t=>`\x1B[${t+e}m`,Ysi=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Qsi=(e=0)=>(t,r,n)=>`\x1B[${38+e};2;${t};${r};${n}m`,w2={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},$Au=Object.keys(w2.modifier),I1a=Object.keys(w2.color),h1a=Object.keys(w2.bgColor),edu=[...I1a,...h1a];function m1a(){let e=new Map;for(let[t,r]of Object.entries(w2)){for(let[n,a]of Object.entries(r))w2[n]={open:`\x1B[${a[0]}m`,close:`\x1B[${a[1]}m`},r[n]=w2[n],e.set(a[0],a[1]);Object.defineProperty(w2,t,{value:r,enumerable:!1})}return Object.defineProperty(w2,"codes",{value:e,enumerable:!1}),w2.color.close="\x1B[39m",w2.bgColor.close="\x1B[49m",w2.color.ansi=Hsi(),w2.color.ansi256=Ysi(),w2.color.ansi16m=Qsi(),w2.bgColor.ansi=Hsi(10),w2.bgColor.ansi256=Ysi(10),w2.bgColor.ansi16m=Qsi(10),Object.defineProperties(w2,{rgbToAnsi256:{value(t,r,n){return t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[n]=r;n.length===3&&(n=[...n].map(o=>o+o).join(""));let a=Number.parseInt(n,16);return[a>>16&255,a>>8&255,a&255]},enumerable:!1},hexToAnsi256:{value:t=>w2.rgbToAnsi256(...w2.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,n,a;if(t>=232)r=((t-232)*10+8)/255,n=r,a=r;else{t-=16;let A=t%36;r=Math.floor(t/36)/5,n=Math.floor(A/6)/5,a=A%6/5}let o=Math.max(r,n,a)*2;if(o===0)return 30;let l=30+(Math.round(a)<<2|Math.round(n)<<1|Math.round(r));return o===2&&(l+=60),l},enumerable:!1},rgbToAnsi:{value:(t,r,n)=>w2.ansi256ToAnsi(w2.rgbToAnsi256(t,r,n)),enumerable:!1},hexToAnsi:{value:t=>w2.ansi256ToAnsi(w2.hexToAnsi256(t)),enumerable:!1}}),w2}var C1a=m1a(),OX=C1a;import G1r from"node:process";import _1a from"node:os";import Xsi from"node:tty";function OM(e,t=globalThis.Deno?globalThis.Deno.args:G1r.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return n!==-1&&(a===-1||n=2,has16m:e>=3}}function E1a(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let n=y1a();n!==void 0&&(fCt=n);let a=r?fCt:n;if(a===0)return 0;if(r){if(OM("color=16m")||OM("color=full")||OM("color=truecolor"))return 3;if(OM("color=256"))return 2}if("TF_BUILD"in DS&&"AGENT_NAME"in DS)return 1;if(e&&!t&&a===void 0)return 0;let o=a||0;if(DS.TERM==="dumb")return o;if(G1r.platform==="win32"){let l=_1a.release().split(".");return Number(l[0])>=10&&Number(l[2])>=10586?Number(l[2])>=14931?3:2:1}if("CI"in DS)return"GITHUB_ACTIONS"in DS||"GITEA_ACTIONS"in DS?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(l=>l in DS)||DS.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in DS)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(DS.TEAMCITY_VERSION)?1:0;if(DS.COLORTERM==="truecolor"||DS.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in DS){let l=Number.parseInt((DS.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(DS.TERM_PROGRAM){case"iTerm.app":return l>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(DS.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(DS.TERM)||"COLORTERM"in DS?1:o}function Jsi(e,t={}){let r=E1a(e,{streamIsTTY:e&&e.isTTY,...t});return b1a(r)}var S1a={stdout:Jsi({isTTY:Xsi.isatty(1)}),stderr:Jsi({isTTY:Xsi.isatty(2)})},Usi=S1a;function Ksi(e,t,r){let n=e.indexOf(t);if(n===-1)return e;let a=t.length,o=0,l="";do l+=e.slice(o,n)+t+r,o=n+a,n=e.indexOf(t,o);while(n!==-1);return l+=e.slice(o),l}function jsi(e,t,r,n){let a=0,o="";do{let l=e[n-1]==="\r";o+=e.slice(a,l?n-1:n)+t+(l?`\r `:` `)+r,a=n+1,n=e.indexOf(` `,a)}while(n!==-1);return o+=e.slice(a),o}var{stdout:zsi,stderr:qsi}=Usi,F1r=Symbol("GENERATOR"),uTe=Symbol("STYLER"),BQe=Symbol("IS_EMPTY"),$si=["ansi","ansi","ansi256","ansi16m"],gTe=Object.create(null),v1a=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=zsi?zsi.level:0;e.level=t.level===void 0?r:t.level};var B1a=e=>{let t=(...r)=>r.join(" ");return v1a(t,e),Object.setPrototypeOf(t,wQe.prototype),t};function wQe(e){return B1a(e)}Object.setPrototypeOf(wQe.prototype,Function.prototype);for(let[e,t]of Object.entries(OX))gTe[e]={get(){let r=ICt(this,L1r(t.open,t.close,this[uTe]),this[BQe]);return Object.defineProperty(this,e,{value:r}),r}};gTe.visible={get(){let e=ICt(this,this[uTe],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Z1r=(e,t,r,...n)=>e==="rgb"?t==="ansi16m"?OX[r].ansi16m(...n):t==="ansi256"?OX[r].ansi256(OX.rgbToAnsi256(...n)):OX[r].ansi(OX.rgbToAnsi(...n)):e==="hex"?Z1r("rgb",t,r,...OX.hexToRgb(...n)):OX[r][e](...n),w1a=["rgb","hex","ansi256"];for(let e of w1a){gTe[e]={get(){let{level:r}=this;return function(...n){let a=L1r(Z1r(e,$si[r],"color",...n),OX.color.close,this[uTe]);return ICt(this,a,this[BQe])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);gTe[t]={get(){let{level:r}=this;return function(...n){let a=L1r(Z1r(e,$si[r],"bgColor",...n),OX.bgColor.close,this[uTe]);return ICt(this,a,this[BQe])}}}}var T1a=Object.defineProperties(()=>{},{...gTe,level:{enumerable:!0,get(){return this[F1r].level},set(e){this[F1r].level=e}}}),L1r=(e,t,r)=>{let n,a;return r===void 0?(n=e,a=t):(n=r.openAll+e,a=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:a,parent:r}},ICt=(e,t,r)=>{let n=(...a)=>R1a(n,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(n,T1a),n[F1r]=e,n[uTe]=t,n[BQe]=r,n},R1a=(e,t)=>{if(e.level<=0||!t)return e[BQe]?"":t;let r=e[uTe];if(r===void 0)return t;let{openAll:n,closeAll:a}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Ksi(t,r.close,r.open),r=r.parent;let o=t.indexOf(` -`);return o!==-1&&(t=jsi(t,a,n,o)),n+t+a};Object.defineProperties(wQe.prototype,gTe);var N1a=wQe(),ldu=wQe({level:qsi?qsi.level:0});var fp=N1a;var D1a=[" ","\u26A0","\u2716"],k1a=["white","yellow","red"];function eoi(e={},t={}){let{results:r=[]}=e,n=o=>x1a(o,t),a=o=>G1a(o,t);return r.filter(o=>Array.isArray(o.warnings)||Array.isArray(o.errors)).map(o=>[...n(o),...a(o)]).reduce((o,l)=>Array.isArray(l)?[...o,...l]:[...o,l],[]).join(` +`);return o!==-1&&(t=jsi(t,a,n,o)),n+t+a};Object.defineProperties(wQe.prototype,gTe);var N1a=wQe(),udu=wQe({level:qsi?qsi.level:0});var fp=N1a;var D1a=[" ","\u26A0","\u2716"],k1a=["white","yellow","red"];function eoi(e={},t={}){let{results:r=[]}=e,n=o=>x1a(o,t),a=o=>G1a(o,t);return r.filter(o=>Array.isArray(o.warnings)||Array.isArray(o.errors)).map(o=>[...n(o),...a(o)]).reduce((o,l)=>Array.isArray(l)?[...o,...l]:[...o,l],[]).join(` `)}function x1a(e,t={}){let{color:r=!0}=t,{errors:n=[],warnings:a=[],input:o=""}=e;if(!o)return[""];let l="\u29D7",A=r?fp.gray(l):l,f=r?fp.bold(o):o,I=n.length>0||a.length>0;return t.verbose||I?[`${A} input: ${f}`]:[]}function G1a(e={},t={}){let{signs:r=D1a,colors:n=k1a,color:a=!0}=t,{errors:o=[],warnings:l=[]}=e,A=[...o,...l].map(X=>{let ae=r[X.level]||"",ne=n[X.level]||"white",ce=a?fp[ne](ae):ae,fe=a?fp.grey(`[${X.name}]`):`[${X.name}]`;return`${ce} ${X.message} ${fe}`}),f=F1a(e),I=Z1a(e),C=a?fp[I](f):f,b=o.length,E=l.length,N=A.length>0,B=t.verbose||N?`${C} found ${b} problems, ${E} warnings`:void 0,F=a&&typeof B=="string"?fp.bold(B):B,Q=N&&t.helpUrl?`\u24D8 Get help: ${t.helpUrl}`:void 0;return[...A,N?"":void 0,F,Q,N?"":void 0].filter(X=>typeof X=="string")}function F1a(e){return(e.errors||[]).length>0?"\u2716":(e.warnings||[]).length?"\u26A0":"\u2714"}function Z1a(e){return(e.errors||[]).length>0?"red":(e.warnings||[]).length?"yellow":"green"}import hTe from"util";var toi=Nt(UC(),1),L1a=e=>{let t=e.split(` `).shift();if(typeof t!="string")return!1;let r=t.replace(/^chore(\([^)]+\))?:/,"").trim();return toi.default.valid(r)!==null},yae=e=>e.test.bind(e),roi=[yae(/^((Merge pull request)|(Merge (.*?) into (.*?)|(Merge branch (.*?)))(?:\r?\n)*$)/m),yae(/^(Merge tag (.*?))(?:\r?\n)*$/m),yae(/^(R|r)evert (.*)/),yae(/^(amend|fixup|squash)!/),L1a,yae(/^(Merged (.*?)(in|into) (.*)|Merged PR (.*): (.*))/),yae(/^Merge remote-tracking branch(\s*)(.*)/),yae(/^Automatic merge(.*)/),yae(/^Auto-merged (.*?) into (.*)/)];function hCt(e="",t={}){let r=typeof t.ignores>"u"?[]:t.ignores;if(!Array.isArray(r))throw new Error(`ignores must be of type array, received ${r} of type ${typeof r}`);let n=r.filter(o=>typeof o!="function");if(n.length>0)throw new Error(`ignores must be array of type function, received items of type: ${n.map(o=>typeof o).join(", ")}`);return[...t.defaults===!1?[]:roi,...r].some(o=>o(e))}var Eoi=Nt(Aoi(),1),Soi=Nt(boi(),1);async function a2a(e,t=Eoi.sync,r){let o={...(await(0,Soi.default)()).parserOpts,fieldPattern:null,...r||{}},l=t(e,o);return l.raw=e,l}var voi=a2a;var e2r=Nt(joi(),1),Rci=Nt(Cai(),1),Nci=Nt(Mai(),1),t2r=Nt(nci(),1),Dci=Nt(Tci(),1);function SCt(e,t){switch(t){case"camel-case":return(0,e2r.default)(e);case"kebab-case":return(0,Rci.default)(e);case"snake-case":return(0,Nci.default)(e);case"pascal-case":return(0,t2r.default)((0,e2r.default)(e));case"start-case":return(0,Dci.default)(e);case"upper-case":case"uppercase":return e.toUpperCase();case"sentence-case":case"sentencecase":return(0,t2r.default)(e);case"lower-case":case"lowercase":case"lowerCase":return e.toLowerCase();default:throw new TypeError(`to-case: Unknown target case "${t}"`)}}var MX=qBa;function qBa(e="",t="lowercase"){let r=String(e).replace(/`.*?`|".*?"|'.*?'/g,"").trim(),n=SCt(r,t);return n===""||n.match(/^\d/)?!0:n===r}var TQe=(e,t=[])=>e===void 0||!Array.isArray(t)?!1:t.indexOf(e)>-1;var HZ=(e,t)=>typeof e=="string"&&e.length<=t;var RQe=(e,t)=>typeof e=="string"&&e.split(/\r?\n/).every(r=>HZ(r,t));var aO=(e,t)=>typeof e=="string"&&e.length>=t;var HX=e=>typeof e=="string"&&e.length>0;function Jf(e=[]){return e.filter(Boolean).join(" ")}var r2r=e=>e==="never",kci=(e,t="always",r=[])=>{let{body:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return r2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[r2r(t)?!o:o,Jf(["body must",r2r(t)?"not":null,`be ${l}`])]};var xci=(e,t="always")=>{let r=t==="never",n=HX(e.body||"");return[r?n:!n,Jf(["body",r?"may not":"must","be empty"])]};var Gci=(e,t="always",r=".")=>{let n=e.body;if(!n)return[!0];let a=t==="never",o=n[n.length-1]===r;return[a?!o:o,Jf(["body",a?"may not":"must","end with full stop"])]};function P8(e){return typeof e!="string"?[]:e.split(/(?:\r?\n)/)}var Fci=(e,t)=>{if(!e.body)return[!0];let r=t==="never",[n]=P8(e.raw).slice(1),a=n==="";return[r?!a:a,Jf(["body",r?"may not":"must","have leading blank line"])]};var Zci=(e,t=void 0,r=0)=>{let n=e.body;return n?[HZ(n,r),`body must not be longer than ${r} characters`]:[!0]};var Lci=(e,t=void 0,r=0)=>{let n=e.body;return n?[RQe(n,r),`body's lines must not be longer than ${r} characters`]:[!0]};var Vci=(e,t=void 0,r=0)=>e.body?[aO(e.body,r),`body must not be shorter than ${r} characters`]:[!0];var Pci=(e,t="always")=>{let r=t==="never",n=HX(e.footer||"");return[r?n:!n,Jf(["footer",r?"may not":"must","be empty"])]};var Wci=(e,t="always")=>{if(!e.footer)return[!0];let r=t==="never",n=P8(e.raw),a=P8(e.footer),o=n.indexOf(a[0]),[l]=n.slice(o-1),A=l==="";return[r?!A:A,Jf(["footer",r?"may not":"must","have leading blank line"])]};var Oci=(e,t=void 0,r=0)=>{let n=e.footer;return n?[HZ(n,r),`footer must not be longer than ${r} characters`]:[!0]};var Mci=(e,t=void 0,r=0)=>{let n=e.footer;return n?[RQe(n,r),`footer's lines must not be longer than ${r} characters`]:[!0]};var Hci=(e,t=void 0,r=0)=>e.footer?[aO(e.footer,r),`footer must not be shorter than ${r} characters`]:[!0];var n2r=e=>e==="never",Yci=(e,t="always",r=[])=>{let{header:n}=e;if(typeof n!="string"||!n.match(/^[a-z]/i))return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return n2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[n2r(t)?!o:o,Jf(["header must",n2r(t)?"not":null,`be ${l}`])]};var Qci=(e,t="always",r=".")=>{let{header:n}=e,a=t==="never",o=n?.[n.length-1]===r;return[a?!o:o,Jf(["header",a?"may not":"must","end with full stop"])]};var Xci=(e,t=void 0,r=0)=>[HZ(e.header,r),`header must not be longer than ${r} characters, current length is ${e.header?.length}`];var Jci=(e,t=void 0,r=0)=>[aO(e.header,r),`header must not be shorter than ${r} characters, current length is ${e.header?.length}`];var Uci=e=>{let{header:t}=e;if(!t)return[!0];let r=t!==t.trimStart(),n=t!==t.trimEnd();switch(!0){case(r&&n):return[!1,Jf(["header","must not be surrounded by whitespace"])];case r:return[!1,Jf(["header","must not start with whitespace"])];case n:return[!1,Jf(["header","must not end with whitespace"])];default:return[!0]}};var Kci=(e,t="never")=>{let r=t==="always",n=e.references.length>0;return[r?!n:n,Jf(["references",r?"must":"may not","be empty"])]};var i2r=e=>e==="never",jci=(e,t="always",r=[])=>{let{scope:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(I=>typeof I=="string"?{when:"always",case:I}:I),o=/\/|\\|, ?/g,l=n.split(o),A=a.some(I=>{let C=l.every(b=>o.test(b)||MX(b,I.case));return i2r(I.when)?!C:C}),f=a.map(I=>I.case).join(", ");return[i2r(t)?!A:A,Jf(["scope must",i2r(t)?"not":null,`be ${f}`])]};var zci=(e,t="never")=>{let r=t==="always",n=HX(e.scope||"");return[r?!n:n,Jf(["scope",r?"must":"may not","be empty"])]};var qci=({scope:e},t="always",r=[])=>{if(!e||!r.length)return[!0,""];let n=/\/|\\|, ?/g,a=e.split(n),o=["scope must",`be one of [${r.join(", ")}]`],l=f=>TQe(f,r),A;return t==="never"?(A=!a.some(l),o.splice(1,0,"not")):A=a.every(l),[A,Jf(o)]};var $ci=(e,t=void 0,r=0)=>{let n=e.scope;return n?[HZ(n,r),`scope must not be longer than ${r} characters`]:[!0]};var eli=(e,t=void 0,r=0)=>{let n=e.scope;return n?[aO(n,r),`scope must not be shorter than ${r} characters`]:[!0]};var tli=(e,t="always",r="")=>{let n=P8(e.raw).filter(A=>!A.startsWith("#")&&!!A),a=n[n.length-1],o=t==="never",l=a?a.startsWith(r):!1;return[o?!l:l,Jf(["message",o?"must not":"must","be signed off"])]};var $Ba=/^[\p{Ll}\p{Lu}\p{Lt}]/iu,s2r=e=>e==="never",rli=(e,t="always",r=[])=>{let{subject:n}=e;if(typeof n!="string"||!n.match($Ba))return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return s2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[s2r(t)?!o:o,Jf(["subject must",s2r(t)?"not":null,`be ${l}`])]};var nli=(e,t="always")=>{let r=t==="never",n=HX(e.subject||"");return[r?n:!n,Jf(["subject",r?"may not":"must","be empty"])]};var ili=(e,t="always",r=".")=>{let n=e.header?.indexOf(":")||0;if(n>0&&n===e.header.length-1)return[!0];let a=e.header,o=t==="never",l=a?.[a.length-1]===r;return a?.slice(-3)==="..."&&(l=!1),[o?!l:l,Jf(["subject",o?"may not":"must","end with full stop"])]};var sli=(e,t=void 0,r=0)=>{let n=e.subject;return n?[HZ(n,r),`subject must not be longer than ${r} characters`]:[!0]};var oli=(e,t=void 0,r=0)=>{let n=e.subject;return n?[aO(n,r),`subject must not be shorter than ${r} characters`]:[!0]};var ali=(e,t="always")=>{let r=e.header;if(!r)return[!0,""];let n=t==="never",a=/!:/.test(r);return[n?!a:a,Jf(["subject",n?"must not":"must","have an exclamation mark in the subject to identify a breaking change"])]};import{spawnSync as ewa}from"child_process";var cli=(e,t="always",r="")=>{let n=ewa("git",["interpret-trailers","--parse"],{input:e.raw||""}).stdout,a=P8(n.toString()).filter(A=>A.startsWith(r)).length,o=t==="never",l=a>0;return[o?!l:l,Jf(["message",o?"must not":"must","have `"+r+"` trailer"])]};var o2r=e=>e==="never",lli=(e,t="always",r=[])=>{let{type:n}=e;if(!n)return[!0];let a=(Array.isArray(r)?r:[r]).map(A=>typeof A=="string"?{when:"always",case:A}:A),o=a.some(A=>{let f=MX(n,A.case);return o2r(A.when)?!f:f}),l=a.map(A=>A.case).join(", ");return[o2r(t)?!o:o,Jf(["type must",o2r(t)?"not":null,`be ${l}`])]};var uli=(e,t="always")=>{let r=t==="never",n=HX(e.type||"");return[r?n:!n,Jf(["type",r?"may not":"must","be empty"])]};var gli=(e,t="always",r=[])=>{let{type:n}=e;if(!n)return[!0];let a=t==="never",o=TQe(n,r);return[a?!o:o,Jf(["type must",a?"not":null,`be one of [${r.join(", ")}]`])]};var Ali=(e,t=void 0,r=0)=>{let n=e.type;return n?[HZ(n,r),`type must not be longer than ${r} characters`]:[!0]};var dli=(e,t=void 0,r=0)=>{let n=e.type;return n?[aO(n,r),`type must not be shorter than ${r} characters`]:[!0]};var pli={"body-case":kci,"body-empty":xci,"body-full-stop":Gci,"body-leading-blank":Fci,"body-max-length":Zci,"body-max-line-length":Lci,"body-min-length":Vci,"footer-empty":Pci,"footer-leading-blank":Wci,"footer-max-length":Oci,"footer-max-line-length":Mci,"footer-min-length":Hci,"header-case":Yci,"header-full-stop":Qci,"header-max-length":Xci,"header-min-length":Jci,"header-trim":Uci,"references-empty":Kci,"scope-case":jci,"scope-empty":zci,"scope-enum":qci,"scope-max-length":$ci,"scope-min-length":eli,"signed-off-by":tli,"subject-case":rli,"subject-empty":nli,"subject-full-stop":ili,"subject-max-length":sli,"subject-min-length":oli,"subject-exclamation-mark":ali,"trailer-exists":cli,"type-case":lli,"type-empty":uli,"type-enum":gli,"type-max-length":Ali,"type-min-length":dli};var ITe;(function(e){e[e.Disabled=0]="Disabled",e[e.Warning=1]="Warning",e[e.Error=2]="Error"})(ITe||(ITe={}));var fli;(function(e){e[e.User=0]="User",e[e.Qualified=1]="Qualified"})(fli||(fli={}));var Ili=({header:e,body:t,footer:r})=>{let n=e;return n=t?`${n} @@ -2037,10 +2037,10 @@ ${t}`:n,n=r?`${n} ${r}`:n,n||""};async function a2r(e,t,r){let n=r||{defaultIgnores:void 0,ignores:void 0},a=t||{};if(hCt(e,{defaults:n.defaultIgnores,ignores:n.ignores}))return{valid:!0,errors:[],warnings:[],input:e};let o=e===""?{header:null,body:null,footer:null}:await voi(e,void 0,n.parserOpts);if(o.header===null&&o.body===null&&o.footer===null)return{valid:!0,errors:[],warnings:[],input:e};let l=new Map(Object.entries(pli));n.plugins&&Object.values(n.plugins).forEach(B=>{B.rules&&Object.keys(B.rules).forEach(F=>l.set(F,B.rules[F]))});let A=Object.keys(a).filter(B=>typeof l.get(B)!="function");if(A.length>0){let B=[...l.keys()];throw new RangeError([`Found rules without implementation: ${A.join(", ")}.`,`Supported rules are: ${B.join(", ")}.`].join(` `))}let f=Object.entries(a).map(([B,F])=>{if(!Array.isArray(F))return new Error(`config for rule ${B} must be array, received ${hTe.inspect(F)} of type ${typeof F}`);let[Q]=F;if(Q===ITe.Disabled&&F.length===1)return null;let[,X]=F;return typeof Q!="number"||isNaN(Q)?new Error(`level for rule ${B} must be number, received ${hTe.inspect(Q)} of type ${typeof Q}`):F.length<2||F.length>3?new Error(`config for rule ${B} must be 2 or 3 items long, received ${hTe.inspect(F)} of length ${F.length}`):Q<0||Q>2?new RangeError(`level for rule ${B} must be between 0 and 2, received ${hTe.inspect(Q)}`):typeof X!="string"?new Error(`condition for rule ${B} must be string, received ${hTe.inspect(X)} of type ${typeof X}`):X!=="never"&&X!=="always"?new Error(`condition for rule ${B} must be "always" or "never", received ${hTe.inspect(X)}`):null}).filter(B=>B instanceof Error);if(f.length>0)throw new Error(f.map(B=>B.message).join(` -`));let I=Object.entries(a).filter(([,B])=>!!B&&B.length&&B[0]>0).map(async B=>{let[F,Q]=B,[X,ae,ne]=Q,ce=l.get(F);if(!ce)throw new Error(`Could not find rule implementation for ${F}`);let fe=ce,[ue,de]=await fe(o,ae,ne);return{level:X,valid:ue,name:F,message:de}}),C=(await Promise.all(I)).filter(B=>B!==null),b=C.filter(B=>B.level===ITe.Error&&!B.valid),E=C.filter(B=>B.level===ITe.Warning&&!B.valid);return{valid:b.length===0,errors:b,warnings:E,input:Ili(o)}}var c2r={back:{description:"Changes that affect backend code"},front:{description:"Changes that affect frontend code"},devops:{description:"Changes that affect devops code"},custom:{description:"Enter manually custom scope"}},NQe={feat:{description:"A new feature"},fix:{description:"Bug Fixes"},docs:{description:"Documentation only changes"},style:{description:"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"},refactor:{description:"A code change that neither fixes a bug nor adds a feature"},perf:{description:"A code change that improves performance"},test:{description:"Adding missing tests or correcting existing tests"},deps:{description:"Changes that affect external dependencies"},build:{description:"Changes that affect the build system"},ci:{description:"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)"},chore:{description:"Other changes that don't modify src or test files"},revert:{description:"Reverts a previous commit"}};var hli={"body-leading-blank":[1,"always"],"body-max-line-length":[2,"always",180],"footer-leading-blank":[1,"always"],"footer-max-line-length":[2,"always",100],"header-max-length":[2,"always",140],"subject-case":[2,"never",["sentence-case","start-case","pascal-case","upper-case"]],"subject-empty":[2,"never"],"subject-full-stop":[2,"never","."],"type-case":[2,"always","lower-case"],"type-empty":[2,"never"],"type-enum":[2,"always",Object.keys(NQe)],"scope-case":[2,"always","lower-case"],"scope-empty":[2,"never"]};var twa={headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w{7,40})\b/i,revertCorrespondence:["header","hash"]},rwa={parserOpts:twa},vCt=class{scopes;workspaceNames;constructor({scopes:t,workspaceNames:r}){this.scopes=t,this.workspaceNames=r}async lint(t){let r=this.prepareConfig(hli);return a2r(t,r,rwa)}format(t,r={helpUrl:"https://github.com/conventional-changelog/commitlint/#what-is-commitlint"}){return eoi(t,r)}prepareConfig(t){let r=[];this.scopes&&r.push(...this.scopes.filter(a=>a&&a!=="atls")),this.workspaceNames&&r.push(...this.workspaceNames.filter(a=>a));let n=["common","github",...r];return t["scope-enum"]=[pCt.Error,"always",n],t}};var BCt=class extends mli.BaseCommand{static paths=[["commit","message","lint"]];async execute(){let t=await Cli.Configuration.find(this.context.cwd,this.context.plugins),{project:{workspaces:r}}=await _li.Project.find(t,this.context.cwd),n=new Set(r.map(({manifest:I})=>I.name?.name??"")),a=new Set(r.map(({manifest:I})=>I.name?.scope??"")),o=new vCt({scopes:Array.from(a),workspaceNames:Array.from(n)}),l=await dCt({edit:!0}),A=await Promise.all(l.map(async I=>o.lint(I))),f=o.format({results:A});return f!==""&&this.context.stdout.write(f),A.some(I=>!I.valid)?1:0}};var lgi=Nt(el(),1),ugi=Nt(no(),1),ggi=Nt(Bli(),1);$c();var Agi=Nt(Rli(),1),dgi=Nt(Al(),1),pgi=Nt(Ec(),1),fgi=Nt(Ec(),1),$Ct=Nt(Dli(),1);var agi=Nt(Ec(),1),Bae=Nt(Ec(),1);var wTe=Nt(Al(),1),BTe=Nt(Al(),1),Hui=Nt(Ec(),1),G2r=Nt(Pui(),1);import Wui from"node:process";function D2r(){let{env:e}=Wui,{TERM:t,TERM_PROGRAM:r}=e;return Wui.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Oui={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Mui={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},fRa={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},IRa={...Oui,...Mui},hRa={...Oui,...fRa},mRa=D2r(),CRa=mRa?IRa:hRa,kI=CRa,lhu=Object.entries(Mui);var k2r=Nt(Al(),1),x2r=Nt(Al(),1),STe=Nt(Pc(),1),vTe=({label:e,value:t})=>(0,STe.jsxs)(x2r.Box,{children:[(0,STe.jsx)(x2r.Box,{width:12,children:(0,STe.jsx)(k2r.Text,{bold:!0,color:"#d7875f",children:t})}),(0,STe.jsx)(k2r.Text,{children:e})]});var cO=Nt(Pc(),1),_Ra=G2r.default.default||G2r.default,yRa=[{label:"Add a scope",value:"scope"},{label:"Resolves issues",value:"issues"},{label:"Introduces breaking changes",value:"breaking"},{label:"Add a long description",value:"body"},{label:"Skip ci/cd setups",value:"skipci"}],bRa=({isSelected:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{children:kI.circleFilled}):(0,cO.jsx)(wTe.Text,{children:" "})}),ERa=({isHighlighted:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{color:"cyanBright",children:kI.pointer}):(0,cO.jsx)(wTe.Text,{children:" "})}),Yui=({onSubmit:e})=>{let t=(0,Hui.useCallback)(r=>{e(r.reduce((n,a)=>({...n,[a.value]:!0}),{}))},[e]);return(0,cO.jsxs)(BTe.Box,{flexDirection:"column",children:[(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(wTe.Text,{bold:!0,color:"cyanBright",children:"Please select additional actions:"})}),(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(_Ra,{items:yRa,indicatorComponent:ERa,itemComponent:vTe,checkboxComponent:bRa,onSubmit:t})})]})};var F2r=Nt(Al(),1),TTe=Nt(Al(),1);var Sae=Nt(Ec(),1),XCt=Nt(Al(),1);function Qui({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A}){let[f,I]=(0,Sae.useState)({cursorOffset:(e||"").length,cursorWidth:0}),{cursorOffset:C,cursorWidth:b}=f;(0,Sae.useEffect)(()=>{I(Q=>{if(!r||!o)return Q;let X=e||"";return Q.cursorOffset>X.length-1?{cursorOffset:X.length,cursorWidth:0}:Q})},[e,r,o]);let E=a?b:0,N=n?n.repeat(e.length):e,B=N,F=t?fp.grey(t):void 0;if(o&&r){F=t.length>0?fp.inverse(t[0])+fp.grey(t.slice(1)):fp.inverse(" "),B=N.length>0?"":fp.inverse(" ");let Q=0;for(let X of N)B+=Q>=C-E&&Q<=C?fp.inverse(X):X,Q++;N.length>0&&C===N.length&&(B+=fp.inverse(" "))}return(0,XCt.useInput)((Q,X)=>{if(X.upArrow||X.downArrow||X.ctrl&&Q==="c"||X.tab||X.shift&&X.tab)return;if(X.return){A&&A(e);return}let ae=C,ne=e,ce=0;X.leftArrow?o&&ae--:X.rightArrow?o&&ae++:X.backspace||X.delete?C>0&&(ne=e.slice(0,C-1)+e.slice(C,e.length),ae--):(ne=e.slice(0,C)+Q+e.slice(C,e.length),ae+=Q.length,Q.length>1&&(ce=Q.length)),C<0&&(ae=0),C>e.length&&(ae=e.length),I({cursorOffset:ae,cursorWidth:ce}),ne!==e&&l(ne)},{isActive:r}),Sae.default.createElement(XCt.Text,null,t?N.length>0?B:F:B)}var JCt=Qui;function O8({initialValue:e="",...t}){let[r,n]=(0,Sae.useState)(e);return Sae.default.createElement(Qui,{...t,value:r,onChange:n})}var M8=Nt(Pc(),1),Xui=({onSubmit:e})=>(0,M8.jsxs)(TTe.Box,{flexDirection:"column",children:[(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(F2r.Text,{bold:!0,color:"cyanBright",children:"Please give a long description:"})}),(0,M8.jsxs)(TTe.Box,{children:[(0,M8.jsx)(TTe.Box,{marginRight:1,children:(0,M8.jsx)(F2r.Text,{color:"gray",children:"\u2192"})}),(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(O8,{onSubmit:e})})]})]});var Z2r=Nt(Al(),1),RTe=Nt(Al(),1);var H8=Nt(Pc(),1),Jui=({onSubmit:e})=>(0,H8.jsxs)(RTe.Box,{flexDirection:"column",children:[(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(Z2r.Text,{bold:!0,color:"cyanBright",children:"Describe the breaking changes:"})}),(0,H8.jsxs)(RTe.Box,{children:[(0,H8.jsx)(RTe.Box,{marginRight:1,children:(0,H8.jsx)(Z2r.Text,{color:"gray",children:"\u2192"})}),(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(O8,{onSubmit:e})})]})]});var L2r=Nt(Al(),1),NTe=Nt(Al(),1);var Y8=Nt(Pc(),1),Uui=({onSubmit:e})=>(0,Y8.jsxs)(NTe.Box,{flexDirection:"column",children:[(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(L2r.Text,{bold:!0,color:"cyanBright",children:'Add issue references (e.g. "fix #123, re #124".):'})}),(0,Y8.jsxs)(NTe.Box,{children:[(0,Y8.jsx)(NTe.Box,{marginRight:1,children:(0,Y8.jsx)(L2r.Text,{color:"gray",children:kI.arrowRight})}),(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(O8,{onSubmit:e})})]})]});var zCt=Nt(Al(),1),$$=Nt(Al(),1);var O2r=Nt(Ec(),1),M2r=Nt(Ec(),1),egi=Nt(Ec(),1);var UCt=Nt(Ec(),1),VQe=Nt(Al(),1);function SRa({isSelected:e=!1}){return UCt.default.createElement(VQe.Box,{marginRight:1},e?UCt.default.createElement(VQe.Text,{color:"blue"},kI.pointer):UCt.default.createElement(VQe.Text,null," "))}var V2r=SRa;var Kui=Nt(Ec(),1),jui=Nt(Al(),1);function vRa({isSelected:e=!1,label:t}){return Kui.createElement(jui.Text,{color:e?"blue":void 0},t)}var P2r=vRa;var oV=Nt(Ec(),1),zui=Nt(b2r(),1);function DTe(e,t){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);if(!Number.isSafeInteger(t))throw new TypeError(`The \`steps\` parameter must be an integer, got ${t}.`);let{length:r}=e;if(r===0)return[...e];let n=(t%r+r)%r;return n===0?[...e]:[...e.slice(-n),...e.slice(0,-n)]}var PQe=Nt(Al(),1);function BRa({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:n=V2r,itemComponent:a=P2r,limit:o,onSelect:l,onHighlight:A}){let f=typeof o=="number"&&e.length>o,I=f?Math.min(o,e.length):e.length,C=I-1,[b,E]=(0,oV.useState)(r>C?C-r:0),[N,B]=(0,oV.useState)(r?r>C?C:r:0),F=(0,oV.useRef)(e);(0,oV.useEffect)(()=>{(0,zui.default)(F.current.map(X=>X.value),e.map(X=>X.value))||(E(0),B(0)),F.current=e},[e]),(0,PQe.useInput)((0,oV.useCallback)((X,ae)=>{if(X==="k"||ae.upArrow){let ne=(f?I:e.length)-1,ce=N===0,fe=f?N:ne,ue=ce?b+1:b,de=ce?fe:N-1;E(ue),B(de);let be=f?DTe(e,ue).slice(0,I):e;typeof A=="function"&&A(be[de])}if(X==="j"||ae.downArrow){let ne=N===(f?I:e.length)-1,ce=f?N:0,fe=ne?b-1:b,ue=ne?ce:N+1;E(fe),B(ue);let de=f?DTe(e,fe).slice(0,I):e;typeof A=="function"&&A(de[ue])}if(ae.return){let ne=f?DTe(e,b).slice(0,I):e;typeof l=="function"&&l(ne[N])}},[f,I,b,N,e,l,A]),{isActive:t});let Q=f?DTe(e,b).slice(0,I):e;return oV.default.createElement(PQe.Box,{flexDirection:"column"},Q.map((X,ae)=>{let ne=ae===N;return oV.default.createElement(PQe.Box,{key:X.key??X.value},oV.default.createElement(n,{isSelected:ne}),oV.default.createElement(a,{...X,isSelected:ne}))}))}var WQe=BRa;var W2r=Nt(Al(),1),qui=Nt(Al(),1);var KCt=Nt(Pc(),1),jCt=({isSelected:e=!1})=>(0,KCt.jsx)(qui.Box,{marginRight:1,children:e?(0,KCt.jsx)(W2r.Text,{color:"cyanBright",children:kI.pointer}):(0,KCt.jsx)(W2r.Text,{children:" "})});var vG=Nt(Pc(),1),$ui=Object.keys(c2r).map(e=>({label:c2r[e].description,value:e})),tgi=({onSubmit:e})=>{let[t,r]=(0,O2r.useState)(!1),[n,a]=(0,O2r.useState)(""),o=(0,M2r.useMemo)(()=>n.length>0?$ui.filter(f=>f.label.toLowerCase().includes(n.toLowerCase())):$ui,[n]),l=(0,M2r.useMemo)(()=>o.length>0,[o]),A=(0,egi.useCallback)(f=>{f.value==="custom"?r(!0):e(f.value)},[r,e]);return t?(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Please state the scope of the change:"})}),(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{color:"gray",children:"\u2192"})}),(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(O8,{onSubmit:e})})]})]}):(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Type of scope:"})}),(0,vG.jsx)(JCt,{value:n,onChange:a})]}),!!l&&(0,vG.jsx)(WQe,{items:o,indicatorComponent:jCt,itemComponent:vTe,onSelect:A})]})};var H2r=Nt(Al(),1),kTe=Nt(Al(),1);var Q8=Nt(Pc(),1),rgi=({onSubmit:e})=>(0,Q8.jsxs)(kTe.Box,{flexDirection:"column",children:[(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(H2r.Text,{bold:!0,color:"cyanBright",children:"Write a short description (max 93) chars):"})}),(0,Q8.jsxs)(kTe.Box,{children:[(0,Q8.jsx)(kTe.Box,{marginRight:1,children:(0,Q8.jsx)(H2r.Text,{color:"gray",children:"\u2192"})}),(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(O8,{onSubmit:e})})]})]});var igi=Nt(Al(),1),qCt=Nt(Al(),1),sgi=Nt(Ec(),1),Y2r=Nt(Ec(),1);var vae=Nt(Pc(),1),ngi=Object.keys(NQe).map(e=>({label:NQe[e].description,value:e})),ogi=({onSubmit:e})=>{let[t,r]=(0,sgi.useState)(""),n=(0,Y2r.useMemo)(()=>t.length>0?ngi.filter(o=>o.label.toLowerCase().includes(t.toLowerCase())):ngi,[t]),a=(0,Y2r.useMemo)(()=>n.length>0,[n]);return(0,vae.jsxs)(qCt.Box,{flexDirection:"column",children:[(0,vae.jsxs)(qCt.Box,{children:[(0,vae.jsx)(qCt.Box,{marginRight:1,children:(0,vae.jsx)(igi.Text,{bold:!0,color:"cyanBright",children:"Type of commit:"})}),(0,vae.jsx)(JCt,{value:t,onChange:r})]}),!!a&&(0,vae.jsx)(WQe,{items:n,indicatorComponent:jCt,itemComponent:vTe,onSelect:o=>{e(o.value)}})]})};var eee=Nt(Pc(),1),wRa=({onSubmit:e,...t})=>((0,agi.useEffect)(()=>{e(t)},[t,e]),null),cgi=({onSubmit:e})=>{let[t,r]=(0,Bae.useState)(),[n,a]=(0,Bae.useState)(),[o,l]=(0,Bae.useState)(),[A,f]=(0,Bae.useState)(),[I,C]=(0,Bae.useState)(),[b,E]=(0,Bae.useState)(),[N,B]=(0,Bae.useState)();return t?o?N?N.scope&&!n?(0,eee.jsx)(tgi,{onSubmit:a}):N.issues&&!A?(0,eee.jsx)(Uui,{onSubmit:f}):N.body&&!I?(0,eee.jsx)(Xui,{onSubmit:C}):N.breaking&&!b?(0,eee.jsx)(Jui,{onSubmit:E}):(0,eee.jsx)(wRa,{type:t,scope:n,subject:o,issues:A,body:I,breaking:b,skipci:N.skipci,onSubmit:e}):(0,eee.jsx)(Yui,{onSubmit:B}):(0,eee.jsx)(rgi,{onSubmit:l}):(0,eee.jsx)(ogi,{onSubmit:r})};var Q2r=Nt(Pc(),1),TRa=({commit:e,useSubmit:t})=>{let{stdin:r}=(0,dgi.useStdin)();return t(e),(0,pgi.useEffect)(()=>{r?.emit("keypress","",{name:"return"})},[r]),null},RRa=({useSubmit:e})=>{let[t,r]=(0,fgi.useState)();return t?(0,Q2r.jsx)(TRa,{commit:t,useSubmit:e}):(0,Q2r.jsx)(cgi,{onSubmit:r})},e_t=class extends lgi.BaseCommand{static paths=[["commit","message"]];args=Su.Rest({required:0});async execute(){let[t,r]=this.args;if(r)return 0;if(!t)throw new Error("Commit edit message file required.");let n=(0,Agi.forceStdinTty)(),a=await(0,ggi.renderForm)(RRa,{},{stdin:process.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return a&&await ugi.xfs.writeFilePromise(t,this.formatCommit(a)),n&&process.stdin.destroy(),a?0:1}formatCommit(t){let r={trim:!0,cut:!1,newline:` +`));let I=Object.entries(a).filter(([,B])=>!!B&&B.length&&B[0]>0).map(async B=>{let[F,Q]=B,[X,ae,ne]=Q,ce=l.get(F);if(!ce)throw new Error(`Could not find rule implementation for ${F}`);let fe=ce,[ue,de]=await fe(o,ae,ne);return{level:X,valid:ue,name:F,message:de}}),C=(await Promise.all(I)).filter(B=>B!==null),b=C.filter(B=>B.level===ITe.Error&&!B.valid),E=C.filter(B=>B.level===ITe.Warning&&!B.valid);return{valid:b.length===0,errors:b,warnings:E,input:Ili(o)}}var c2r={back:{description:"Changes that affect backend code"},front:{description:"Changes that affect frontend code"},devops:{description:"Changes that affect devops code"},custom:{description:"Enter manually custom scope"}},NQe={feat:{description:"A new feature"},fix:{description:"Bug Fixes"},docs:{description:"Documentation only changes"},style:{description:"Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)"},refactor:{description:"A code change that neither fixes a bug nor adds a feature"},perf:{description:"A code change that improves performance"},test:{description:"Adding missing tests or correcting existing tests"},deps:{description:"Changes that affect external dependencies"},build:{description:"Changes that affect the build system"},ci:{description:"Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)"},chore:{description:"Other changes that don't modify src or test files"},revert:{description:"Reverts a previous commit"}};var hli={"body-leading-blank":[1,"always"],"body-max-line-length":[2,"always",180],"footer-leading-blank":[1,"always"],"footer-max-line-length":[2,"always",100],"header-max-length":[2,"always",140],"subject-case":[2,"never",["sentence-case","start-case","pascal-case","upper-case"]],"subject-empty":[2,"never"],"subject-full-stop":[2,"never","."],"type-case":[2,"always","lower-case"],"type-empty":[2,"never"],"type-enum":[2,"always",Object.keys(NQe)],"scope-case":[2,"always","lower-case"],"scope-empty":[2,"never"]};var twa={headerPattern:/^(\w*)(?:\((.*)\))?: (.*)$/,headerCorrespondence:["type","scope","subject"],noteKeywords:["BREAKING CHANGE"],revertPattern:/^(?:Revert|revert:)\s"?([\s\S]+?)"?\s*This reverts commit (\w{7,40})\b/i,revertCorrespondence:["header","hash"]},rwa={parserOpts:twa},vCt=class{scopes;workspaceNames;constructor({scopes:t,workspaceNames:r}){this.scopes=t,this.workspaceNames=r}async lint(t){let r=this.prepareConfig(hli);return a2r(t,r,rwa)}format(t,r={helpUrl:"https://github.com/conventional-changelog/commitlint/#what-is-commitlint"}){return eoi(t,r)}prepareConfig(t){let r=[];this.scopes&&r.push(...this.scopes.filter(a=>a&&a!=="atls")),this.workspaceNames&&r.push(...this.workspaceNames.filter(a=>a));let n=["common","github",...r];return t["scope-enum"]=[pCt.Error,"always",n],t}};var BCt=class extends mli.BaseCommand{static paths=[["commit","message","lint"]];async execute(){let t=await Cli.Configuration.find(this.context.cwd,this.context.plugins),{project:{workspaces:r}}=await _li.Project.find(t,this.context.cwd),n=new Set(r.map(({manifest:I})=>I.name?.name??"")),a=new Set(r.map(({manifest:I})=>I.name?.scope??"")),o=new vCt({scopes:Array.from(a),workspaceNames:Array.from(n)}),l=await dCt({edit:!0}),A=await Promise.all(l.map(async I=>o.lint(I))),f=o.format({results:A});return f!==""&&this.context.stdout.write(f),A.some(I=>!I.valid)?1:0}};var lgi=Nt(el(),1),ugi=Nt(no(),1),ggi=Nt(Bli(),1);$c();var Agi=Nt(Rli(),1),dgi=Nt(Al(),1),pgi=Nt(Ec(),1),fgi=Nt(Ec(),1),$Ct=Nt(Dli(),1);var agi=Nt(Ec(),1),Bae=Nt(Ec(),1);var wTe=Nt(Al(),1),BTe=Nt(Al(),1),Hui=Nt(Ec(),1),G2r=Nt(Pui(),1);import Wui from"node:process";function D2r(){let{env:e}=Wui,{TERM:t,TERM_PROGRAM:r}=e;return Wui.platform!=="win32"?t!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||r==="Terminus-Sublime"||r==="vscode"||t==="xterm-256color"||t==="alacritty"||t==="rxvt-unicode"||t==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Oui={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},Mui={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},fRa={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},IRa={...Oui,...Mui},hRa={...Oui,...fRa},mRa=D2r(),CRa=mRa?IRa:hRa,kI=CRa,uhu=Object.entries(Mui);var k2r=Nt(Al(),1),x2r=Nt(Al(),1),STe=Nt(Pc(),1),vTe=({label:e,value:t})=>(0,STe.jsxs)(x2r.Box,{children:[(0,STe.jsx)(x2r.Box,{width:12,children:(0,STe.jsx)(k2r.Text,{bold:!0,color:"#d7875f",children:t})}),(0,STe.jsx)(k2r.Text,{children:e})]});var cO=Nt(Pc(),1),_Ra=G2r.default.default||G2r.default,yRa=[{label:"Add a scope",value:"scope"},{label:"Resolves issues",value:"issues"},{label:"Introduces breaking changes",value:"breaking"},{label:"Add a long description",value:"body"},{label:"Skip ci/cd setups",value:"skipci"}],bRa=({isSelected:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{children:kI.circleFilled}):(0,cO.jsx)(wTe.Text,{children:" "})}),ERa=({isHighlighted:e=!1})=>(0,cO.jsx)(BTe.Box,{marginRight:1,children:e?(0,cO.jsx)(wTe.Text,{color:"cyanBright",children:kI.pointer}):(0,cO.jsx)(wTe.Text,{children:" "})}),Yui=({onSubmit:e})=>{let t=(0,Hui.useCallback)(r=>{e(r.reduce((n,a)=>({...n,[a.value]:!0}),{}))},[e]);return(0,cO.jsxs)(BTe.Box,{flexDirection:"column",children:[(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(wTe.Text,{bold:!0,color:"cyanBright",children:"Please select additional actions:"})}),(0,cO.jsx)(BTe.Box,{children:(0,cO.jsx)(_Ra,{items:yRa,indicatorComponent:ERa,itemComponent:vTe,checkboxComponent:bRa,onSubmit:t})})]})};var F2r=Nt(Al(),1),TTe=Nt(Al(),1);var Sae=Nt(Ec(),1),XCt=Nt(Al(),1);function Qui({value:e,placeholder:t="",focus:r=!0,mask:n,highlightPastedText:a=!1,showCursor:o=!0,onChange:l,onSubmit:A}){let[f,I]=(0,Sae.useState)({cursorOffset:(e||"").length,cursorWidth:0}),{cursorOffset:C,cursorWidth:b}=f;(0,Sae.useEffect)(()=>{I(Q=>{if(!r||!o)return Q;let X=e||"";return Q.cursorOffset>X.length-1?{cursorOffset:X.length,cursorWidth:0}:Q})},[e,r,o]);let E=a?b:0,N=n?n.repeat(e.length):e,B=N,F=t?fp.grey(t):void 0;if(o&&r){F=t.length>0?fp.inverse(t[0])+fp.grey(t.slice(1)):fp.inverse(" "),B=N.length>0?"":fp.inverse(" ");let Q=0;for(let X of N)B+=Q>=C-E&&Q<=C?fp.inverse(X):X,Q++;N.length>0&&C===N.length&&(B+=fp.inverse(" "))}return(0,XCt.useInput)((Q,X)=>{if(X.upArrow||X.downArrow||X.ctrl&&Q==="c"||X.tab||X.shift&&X.tab)return;if(X.return){A&&A(e);return}let ae=C,ne=e,ce=0;X.leftArrow?o&&ae--:X.rightArrow?o&&ae++:X.backspace||X.delete?C>0&&(ne=e.slice(0,C-1)+e.slice(C,e.length),ae--):(ne=e.slice(0,C)+Q+e.slice(C,e.length),ae+=Q.length,Q.length>1&&(ce=Q.length)),C<0&&(ae=0),C>e.length&&(ae=e.length),I({cursorOffset:ae,cursorWidth:ce}),ne!==e&&l(ne)},{isActive:r}),Sae.default.createElement(XCt.Text,null,t?N.length>0?B:F:B)}var JCt=Qui;function O8({initialValue:e="",...t}){let[r,n]=(0,Sae.useState)(e);return Sae.default.createElement(Qui,{...t,value:r,onChange:n})}var M8=Nt(Pc(),1),Xui=({onSubmit:e})=>(0,M8.jsxs)(TTe.Box,{flexDirection:"column",children:[(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(F2r.Text,{bold:!0,color:"cyanBright",children:"Please give a long description:"})}),(0,M8.jsxs)(TTe.Box,{children:[(0,M8.jsx)(TTe.Box,{marginRight:1,children:(0,M8.jsx)(F2r.Text,{color:"gray",children:"\u2192"})}),(0,M8.jsx)(TTe.Box,{children:(0,M8.jsx)(O8,{onSubmit:e})})]})]});var Z2r=Nt(Al(),1),RTe=Nt(Al(),1);var H8=Nt(Pc(),1),Jui=({onSubmit:e})=>(0,H8.jsxs)(RTe.Box,{flexDirection:"column",children:[(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(Z2r.Text,{bold:!0,color:"cyanBright",children:"Describe the breaking changes:"})}),(0,H8.jsxs)(RTe.Box,{children:[(0,H8.jsx)(RTe.Box,{marginRight:1,children:(0,H8.jsx)(Z2r.Text,{color:"gray",children:"\u2192"})}),(0,H8.jsx)(RTe.Box,{children:(0,H8.jsx)(O8,{onSubmit:e})})]})]});var L2r=Nt(Al(),1),NTe=Nt(Al(),1);var Y8=Nt(Pc(),1),Uui=({onSubmit:e})=>(0,Y8.jsxs)(NTe.Box,{flexDirection:"column",children:[(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(L2r.Text,{bold:!0,color:"cyanBright",children:'Add issue references (e.g. "fix #123, re #124".):'})}),(0,Y8.jsxs)(NTe.Box,{children:[(0,Y8.jsx)(NTe.Box,{marginRight:1,children:(0,Y8.jsx)(L2r.Text,{color:"gray",children:kI.arrowRight})}),(0,Y8.jsx)(NTe.Box,{children:(0,Y8.jsx)(O8,{onSubmit:e})})]})]});var zCt=Nt(Al(),1),$$=Nt(Al(),1);var O2r=Nt(Ec(),1),M2r=Nt(Ec(),1),egi=Nt(Ec(),1);var UCt=Nt(Ec(),1),VQe=Nt(Al(),1);function SRa({isSelected:e=!1}){return UCt.default.createElement(VQe.Box,{marginRight:1},e?UCt.default.createElement(VQe.Text,{color:"blue"},kI.pointer):UCt.default.createElement(VQe.Text,null," "))}var V2r=SRa;var Kui=Nt(Ec(),1),jui=Nt(Al(),1);function vRa({isSelected:e=!1,label:t}){return Kui.createElement(jui.Text,{color:e?"blue":void 0},t)}var P2r=vRa;var oV=Nt(Ec(),1),zui=Nt(b2r(),1);function DTe(e,t){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);if(!Number.isSafeInteger(t))throw new TypeError(`The \`steps\` parameter must be an integer, got ${t}.`);let{length:r}=e;if(r===0)return[...e];let n=(t%r+r)%r;return n===0?[...e]:[...e.slice(-n),...e.slice(0,-n)]}var PQe=Nt(Al(),1);function BRa({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:n=V2r,itemComponent:a=P2r,limit:o,onSelect:l,onHighlight:A}){let f=typeof o=="number"&&e.length>o,I=f?Math.min(o,e.length):e.length,C=I-1,[b,E]=(0,oV.useState)(r>C?C-r:0),[N,B]=(0,oV.useState)(r?r>C?C:r:0),F=(0,oV.useRef)(e);(0,oV.useEffect)(()=>{(0,zui.default)(F.current.map(X=>X.value),e.map(X=>X.value))||(E(0),B(0)),F.current=e},[e]),(0,PQe.useInput)((0,oV.useCallback)((X,ae)=>{if(X==="k"||ae.upArrow){let ne=(f?I:e.length)-1,ce=N===0,fe=f?N:ne,ue=ce?b+1:b,de=ce?fe:N-1;E(ue),B(de);let be=f?DTe(e,ue).slice(0,I):e;typeof A=="function"&&A(be[de])}if(X==="j"||ae.downArrow){let ne=N===(f?I:e.length)-1,ce=f?N:0,fe=ne?b-1:b,ue=ne?ce:N+1;E(fe),B(ue);let de=f?DTe(e,fe).slice(0,I):e;typeof A=="function"&&A(de[ue])}if(ae.return){let ne=f?DTe(e,b).slice(0,I):e;typeof l=="function"&&l(ne[N])}},[f,I,b,N,e,l,A]),{isActive:t});let Q=f?DTe(e,b).slice(0,I):e;return oV.default.createElement(PQe.Box,{flexDirection:"column"},Q.map((X,ae)=>{let ne=ae===N;return oV.default.createElement(PQe.Box,{key:X.key??X.value},oV.default.createElement(n,{isSelected:ne}),oV.default.createElement(a,{...X,isSelected:ne}))}))}var WQe=BRa;var W2r=Nt(Al(),1),qui=Nt(Al(),1);var KCt=Nt(Pc(),1),jCt=({isSelected:e=!1})=>(0,KCt.jsx)(qui.Box,{marginRight:1,children:e?(0,KCt.jsx)(W2r.Text,{color:"cyanBright",children:kI.pointer}):(0,KCt.jsx)(W2r.Text,{children:" "})});var vG=Nt(Pc(),1),$ui=Object.keys(c2r).map(e=>({label:c2r[e].description,value:e})),tgi=({onSubmit:e})=>{let[t,r]=(0,O2r.useState)(!1),[n,a]=(0,O2r.useState)(""),o=(0,M2r.useMemo)(()=>n.length>0?$ui.filter(f=>f.label.toLowerCase().includes(n.toLowerCase())):$ui,[n]),l=(0,M2r.useMemo)(()=>o.length>0,[o]),A=(0,egi.useCallback)(f=>{f.value==="custom"?r(!0):e(f.value)},[r,e]);return t?(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Please state the scope of the change:"})}),(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{color:"gray",children:"\u2192"})}),(0,vG.jsx)($$.Box,{children:(0,vG.jsx)(O8,{onSubmit:e})})]})]}):(0,vG.jsxs)($$.Box,{flexDirection:"column",children:[(0,vG.jsxs)($$.Box,{children:[(0,vG.jsx)($$.Box,{marginRight:1,children:(0,vG.jsx)(zCt.Text,{bold:!0,color:"cyanBright",children:"Type of scope:"})}),(0,vG.jsx)(JCt,{value:n,onChange:a})]}),!!l&&(0,vG.jsx)(WQe,{items:o,indicatorComponent:jCt,itemComponent:vTe,onSelect:A})]})};var H2r=Nt(Al(),1),kTe=Nt(Al(),1);var Q8=Nt(Pc(),1),rgi=({onSubmit:e})=>(0,Q8.jsxs)(kTe.Box,{flexDirection:"column",children:[(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(H2r.Text,{bold:!0,color:"cyanBright",children:"Write a short description (max 93) chars):"})}),(0,Q8.jsxs)(kTe.Box,{children:[(0,Q8.jsx)(kTe.Box,{marginRight:1,children:(0,Q8.jsx)(H2r.Text,{color:"gray",children:"\u2192"})}),(0,Q8.jsx)(kTe.Box,{children:(0,Q8.jsx)(O8,{onSubmit:e})})]})]});var igi=Nt(Al(),1),qCt=Nt(Al(),1),sgi=Nt(Ec(),1),Y2r=Nt(Ec(),1);var vae=Nt(Pc(),1),ngi=Object.keys(NQe).map(e=>({label:NQe[e].description,value:e})),ogi=({onSubmit:e})=>{let[t,r]=(0,sgi.useState)(""),n=(0,Y2r.useMemo)(()=>t.length>0?ngi.filter(o=>o.label.toLowerCase().includes(t.toLowerCase())):ngi,[t]),a=(0,Y2r.useMemo)(()=>n.length>0,[n]);return(0,vae.jsxs)(qCt.Box,{flexDirection:"column",children:[(0,vae.jsxs)(qCt.Box,{children:[(0,vae.jsx)(qCt.Box,{marginRight:1,children:(0,vae.jsx)(igi.Text,{bold:!0,color:"cyanBright",children:"Type of commit:"})}),(0,vae.jsx)(JCt,{value:t,onChange:r})]}),!!a&&(0,vae.jsx)(WQe,{items:n,indicatorComponent:jCt,itemComponent:vTe,onSelect:o=>{e(o.value)}})]})};var eee=Nt(Pc(),1),wRa=({onSubmit:e,...t})=>((0,agi.useEffect)(()=>{e(t)},[t,e]),null),cgi=({onSubmit:e})=>{let[t,r]=(0,Bae.useState)(),[n,a]=(0,Bae.useState)(),[o,l]=(0,Bae.useState)(),[A,f]=(0,Bae.useState)(),[I,C]=(0,Bae.useState)(),[b,E]=(0,Bae.useState)(),[N,B]=(0,Bae.useState)();return t?o?N?N.scope&&!n?(0,eee.jsx)(tgi,{onSubmit:a}):N.issues&&!A?(0,eee.jsx)(Uui,{onSubmit:f}):N.body&&!I?(0,eee.jsx)(Xui,{onSubmit:C}):N.breaking&&!b?(0,eee.jsx)(Jui,{onSubmit:E}):(0,eee.jsx)(wRa,{type:t,scope:n,subject:o,issues:A,body:I,breaking:b,skipci:N.skipci,onSubmit:e}):(0,eee.jsx)(Yui,{onSubmit:B}):(0,eee.jsx)(rgi,{onSubmit:l}):(0,eee.jsx)(ogi,{onSubmit:r})};var Q2r=Nt(Pc(),1),TRa=({commit:e,useSubmit:t})=>{let{stdin:r}=(0,dgi.useStdin)();return t(e),(0,pgi.useEffect)(()=>{r?.emit("keypress","",{name:"return"})},[r]),null},RRa=({useSubmit:e})=>{let[t,r]=(0,fgi.useState)();return t?(0,Q2r.jsx)(TRa,{commit:t,useSubmit:e}):(0,Q2r.jsx)(cgi,{onSubmit:r})},e_t=class extends lgi.BaseCommand{static paths=[["commit","message"]];args=Su.Rest({required:0});async execute(){let[t,r]=this.args;if(r)return 0;if(!t)throw new Error("Commit edit message file required.");let n=(0,Agi.forceStdinTty)(),a=await(0,ggi.renderForm)(RRa,{},{stdin:process.stdin,stdout:this.context.stdout,stderr:this.context.stderr});return a&&await ugi.xfs.writeFilePromise(t,this.formatCommit(a)),n&&process.stdin.destroy(),a?0:1}formatCommit(t){let r={trim:!0,cut:!1,newline:` `,indent:"",width:100},n=`${t.type}${t.scope?`(${t.scope})`:""}: ${t.subject}`;t.skipci&&(n+=" [skip ci]");let a=t.body?(0,$Ct.default)(t.body,r):!1,o=t.breaking?(0,$Ct.default)(`BREAKING CHANGE: ${t.breaking.trim().replace(/^BREAKING CHANGE: /,"")}`,r):!1,l=t.issues?(0,$Ct.default)(t.issues,r):!1;return[n,a,o,l].filter(Boolean).join(` -`)}};var Ahi=Nt(el(),1);$c();import{execSync as ghi}from"node:child_process";var lhi=Nt(uT(),1);var ygi=Nt(uT(),1);var jRa=(0,ygi.default)("lint-staged:execGit"),zRa=["-c","submodule.recurse=false"],qRa=[...zRa],QZ=async(e,t={})=>{jRa("Running git command",e);try{let{stdout:r}=await j$("git",qRa.concat(e),{...t,all:!0,cwd:t.cwd||process.cwd(),stdin:"ignore"});return r}catch({all:r}){throw new Error(r)}};import{inspect as HDa}from"node:util";var Sgi=Nt(Egi(),1);var vgi=Sgi.default;import*as o_t from"tty";var{env:wae={},argv:wgi=[],platform:tNa=""}=typeof process>"u"?{}:process,rNa="NO_COLOR"in wae||wgi.includes("--no-color"),nNa="FORCE_COLOR"in wae||wgi.includes("--color"),iNa=tNa==="win32",Tgi=wae.TERM==="dumb",sNa=o_t&&o_t.isatty&&o_t.isatty(1)&&wae.TERM&&!Tgi,oNa="CI"in wae&&("GITHUB_ACTIONS"in wae||"GITLAB_CI"in wae||"CIRCLECI"in wae),aNa=!rNa&&(nNa||iNa&&!Tgi||sNa||oNa),Rgi=(e,t,r,n,a=t.substring(0,e)+n,o=t.substring(e+r.length),l=o.indexOf(r))=>a+(l<0?o:Rgi(l,o,r,n)),cNa=(e,t,r,n,a)=>e<0?r+t+n:r+Rgi(e,t,n,a)+n,lNa=(e,t,r=e,n=e.length+1)=>a=>a||!(a===""||a===void 0)?cNa((""+a).indexOf(t,n),a,e,t,r):"",Sh=(e,t,r)=>lNa(`\x1B[${e}m`,`\x1B[${t}m`,r),Bgi={reset:Sh(0,0),bold:Sh(1,22,"\x1B[22m\x1B[1m"),dim:Sh(2,22,"\x1B[22m\x1B[2m"),italic:Sh(3,23),underline:Sh(4,24),inverse:Sh(7,27),hidden:Sh(8,28),strikethrough:Sh(9,29),black:Sh(30,39),red:Sh(31,39),green:Sh(32,39),yellow:Sh(33,39),blue:Sh(34,39),magenta:Sh(35,39),cyan:Sh(36,39),white:Sh(37,39),gray:Sh(90,39),bgBlack:Sh(40,49),bgRed:Sh(41,49),bgGreen:Sh(42,49),bgYellow:Sh(43,49),bgBlue:Sh(44,49),bgMagenta:Sh(45,49),bgCyan:Sh(46,49),bgWhite:Sh(47,49),blackBright:Sh(90,39),redBright:Sh(91,39),greenBright:Sh(92,39),yellowBright:Sh(93,39),blueBright:Sh(94,39),magentaBright:Sh(95,39),cyanBright:Sh(96,39),whiteBright:Sh(97,39),bgBlackBright:Sh(100,49),bgRedBright:Sh(101,49),bgGreenBright:Sh(102,49),bgYellowBright:Sh(103,49),bgBlueBright:Sh(104,49),bgMagentaBright:Sh(105,49),bgCyanBright:Sh(106,49),bgWhiteBright:Sh(107,49)},j2r=({useColor:e=aNa}={})=>e?Bgi:Object.keys(Bgi).reduce((t,r)=>({...t,[r]:String}),{}),{reset:ymu,bold:bmu,dim:Emu,italic:Smu,underline:vmu,inverse:Bmu,hidden:wmu,strikethrough:Tmu,black:Rmu,red:Nmu,green:Dmu,yellow:kmu,blue:xmu,magenta:Gmu,cyan:Fmu,white:Zmu,gray:Lmu,bgBlack:Vmu,bgRed:Pmu,bgGreen:Wmu,bgYellow:Omu,bgBlue:Mmu,bgMagenta:Hmu,bgCyan:Ymu,bgWhite:Qmu,blackBright:Xmu,redBright:Jmu,greenBright:Umu,yellowBright:Kmu,blueBright:jmu,magentaBright:zmu,cyanBright:qmu,whiteBright:$mu,bgBlackBright:eCu,bgRedBright:tCu,bgGreenBright:rCu,bgYellowBright:nCu,bgBlueBright:iCu,bgMagentaBright:sCu,bgCyanBright:oCu,bgWhiteBright:aCu}=j2r();var PAi=Nt(Dgi(),1);import{format as vDa}from"util";import{EOL as EAi}from"os";import{StringDecoder as BDa}from"string_decoder";import{EOL as m_t}from"os";import{Writable as wDa}from"stream";import{EOL as C_t}from"os";import{randomUUID as WDa}from"crypto";var yDa=Object.defineProperty,wp=(e,t)=>yDa(e,"name",{value:t,configurable:!0}),yAi="\x1B[",bAi={CURSOR_HIDE:yAi+"?25l",CURSOR_SHOW:yAi+"?25h"};var TAi=(e=>(e.WAITING="WAITING",e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.RETRY="RETRY",e.PAUSED="PAUSED",e.PROMPT="PROMPT",e.PROMPT_COMPLETED="PROMPT_COMPLETED",e.PROMPT_FAILED="PROMPT_FAILED",e))(TAi||{}),RAi=class{static{wp(this,"EventManager")}emitter=new vgi;emit(e,t){this.emitter.emit(e,t)}on(e,t){this.emitter.addListener(e,t)}once(e,t){this.emitter.once(e,t)}off(e,t){this.emitter.off(e,t)}complete(){this.emitter.removeAllListeners()}},h_u=class{static{wp(this,"BaseEventMap")}};function NAi(e){return!!e&&typeof e=="object"&&typeof e.subscribe=="function"}wp(NAi,"isObservable");function DAi(e){return!!e&&typeof e=="object"&&e.readable===!0&&typeof e.read=="function"&&typeof e.on=="function"}wp(DAi,"isReadable");function ySr(){return!!process.env.LISTR_FORCE_UNICODE||process.platform!=="win32"||!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"}wp(ySr,"isUnicodeSupported");var bDa="(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+",EDa=/\u0007/;function WTe(e){return String(e).replace(new RegExp(bDa,"gmi"),"").replace(new RegExp(EDa,"gmi"),"").trim()}wp(WTe,"cleanseAnsi");var X0=j2r();function fSr(e,t){return e.replace(/^(?!\s*$)/gm," ".repeat(t))}wp(fSr,"indent");var kAi={warning:"\u26A0",cross:"\u2716",arrowDown:"\u2193",tick:"\u2714",arrowRight:"\u2192",pointer:"\u276F",checkboxOn:"\u2612",arrowLeft:"\u2190",squareSmallFilled:"\u25FC",pointerSmall:"\u203A"},SDa={...kAi,warning:"\u203C",cross:"\xD7",tick:"\u221A",pointer:">",checkboxOn:"[\xD7]",squareSmallFilled:"\u25A0"},sb=ySr()?kAi:SDa;function PTe(e,...t){return vDa(String(e),...t)}wp(PTe,"splat");var __t={icon:{STARTED:sb.pointer,FAILED:sb.cross,SKIPPED:sb.arrowDown,COMPLETED:sb.tick,OUTPUT:sb.pointerSmall,TITLE:sb.arrowRight,RETRY:sb.warning,ROLLBACK:sb.arrowLeft,PAUSED:sb.squareSmallFilled},color:{STARTED:X0.yellow,FAILED:X0.red,SKIPPED:X0.yellow,COMPLETED:X0.green,RETRY:X0.yellowBright,ROLLBACK:X0.redBright,PAUSED:X0.yellowBright}},xAi=["RETRY","ROLLBACK","FAILED"],OTe=class{constructor(e){this.options=e,this.options={useIcons:!0,toStderr:[],...e??{}},this.options.fields??={},this.options.fields.prefix??=[],this.options.fields.suffix??=[],this.process=this.options.processOutput??new bSr}static{wp(this,"ListrLogger")}process;log(e,t,r){let n=this.format(e,t,r);if(this.options.toStderr.includes(e)){this.process.toStderr(n);return}this.process.toStdout(n)}toStdout(e,t,r=!0){this.process.toStdout(this.format(null,e,t),r)}toStderr(e,t,r=!0){this.process.toStderr(this.format(null,e,t),r)}wrap(e,t){return e&&this.applyFormat(`[${e}]`,t)}splat(...e){let t=e.shift()??"";return e.length===0?t:PTe(t,e)}suffix(e,...t){return t.filter(Boolean).forEach(r=>{if(e+=this.spacing(e),typeof r=="string")e+=this.wrap(r);else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e+=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format(...r.args)})}}),e}prefix(e,...t){return t.filter(Boolean).forEach(r=>{if(e=this.spacing(e)+e,typeof r=="string")e=this.wrap(r)+e;else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format()})+e}}),e}fields(e,t){return this.options?.fields?.prefix&&(e=this.prefix(e,...this.options.fields.prefix)),t?.prefix&&(e=this.prefix(e,...t.prefix)),t?.suffix&&(e=this.suffix(e,...t.suffix)),this.options?.fields?.suffix&&(e=this.suffix(e,...this.options.fields.suffix)),e}icon(e,t){if(!e)return null;t||=this.options.icon?.[e];let r=this.options.color?.[e];return t&&r&&(t=r(t)),t}format(e,t,r){return Array.isArray(t)||(t=[t]),t=this.splat(t.shift(),...t).toString().split(EAi).filter(n=>!n||n.trim()!=="").map(n=>this.style(e,this.fields(n,{prefix:Array.isArray(r?.prefix)?r.prefix:[r?.prefix],suffix:Array.isArray(r?.suffix)?r.suffix:[r?.suffix]}))).join(EAi),t}style(e,t){if(!e||!t)return t;let r=this.icon(e,!this.options.useIcons&&this.wrap(e));return r&&(t=r+" "+t),t}applyFormat(e,t){return t?.format?t.format(e):e}spacing(e){return typeof e>"u"||e.trim()===""?"":" "}},ISr=class{constructor(e){this.options=e}static{wp(this,"ProcessOutputBuffer")}buffer=[];decoder=new BDa;get all(){return this.buffer}get last(){return this.buffer.at(-1)}get length(){return this.buffer.length}write(e,...t){let r=t[t.length-1];return this.buffer.push({time:Date.now(),stream:this.options?.stream,entry:this.decoder.write(typeof e=="string"?Buffer.from(e,typeof t[0]=="string"?t[0]:void 0):Buffer.from(e))}),this.options?.limit&&(this.buffer=this.buffer.slice(-this.options.limit)),typeof r=="function"&&r(),!0}reset(){this.buffer=[]}},SAi=class{constructor(e){this.stream=e,this.method=e.write,this.buffer=new ISr({stream:e})}static{wp(this,"ProcessOutputStream")}method;buffer;get out(){return Object.assign({},this.stream,{write:this.write.bind(this)})}hijack(){this.stream.write=this.buffer.write.bind(this.buffer)}release(){this.stream.write=this.method;let e=[...this.buffer.all];return this.buffer.reset(),e}write(...e){return this.method.apply(this.stream,e)}},bSr=class{constructor(e,t,r){this.options=r,this.stream={stdout:new SAi(e??process.stdout),stderr:new SAi(t??process.stderr)},this.options={dump:["stdout","stderr"],leaveEmptyLine:!0,...r}}static{wp(this,"ProcessOutput")}stream;active;get stdout(){return this.stream.stdout.out}get stderr(){return this.stream.stderr.out}hijack(){if(this.active)throw new Error("ProcessOutput has been already hijacked!");this.stream.stdout.write(bAi.CURSOR_HIDE),Object.values(this.stream).forEach(e=>e.hijack()),this.active=!0}release(){let e=Object.entries(this.stream).map(([t,r])=>({name:t,buffer:r.release()})).filter(t=>this.options.dump.includes(t.name)).flatMap(t=>t.buffer).sort((t,r)=>t.time-r.time).map(t=>({...t,entry:WTe(t.entry)})).filter(t=>t.entry);e.length>0&&(this.options.leaveEmptyLine&&this.stdout.write(m_t),e.forEach(t=>{(t.stream??this.stdout).write(t.entry+m_t)})),this.stream.stdout.write(bAi.CURSOR_SHOW),this.active=!1}toStdout(e,t=!0){return t&&(e=e+m_t),this.stream.stdout.write(e)}toStderr(e,t=!0){return t&&(e=e+m_t),this.stream.stderr.write(e)}};function GAi(e){let t=new wDa;return t.rows=1/0,t.columns=1/0,t.write=r=>(e(r.toString()),!0),t}wp(GAi,"createWritable");var S_u=class{constructor(e,t){this.task=e,this.wrapper=t}static{wp(this,"ListrPromptAdapter")}state;reportStarted(){if(this.state=this.task.state,this.task.prompt)throw new OAi("There is already an active prompt attached to this task which may not be cleaned up properly.");this.task.prompt=this,this.task.state$="PROMPT"}reportFailed(){this.task.state$="PROMPT_FAILED",this.restoreState()}reportCompleted(){this.task.state$="PROMPT_COMPLETED",this.restoreState()}restoreState(){this.task.prompt=void 0,this.state&&(this.task.state=this.state)}},TDa=class{static{wp(this,"Spinner")}spinner=ySr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"];id;spinnerPosition=0;spin(){this.spinnerPosition=++this.spinnerPosition%this.spinner.length}fetch(){return this.spinner[this.spinnerPosition]}isRunning(){return!!this.id}start(e,t=100){this.id=setInterval(()=>{this.spin(),e&&e()},t)}stop(){clearInterval(this.id)}};var vAi={icon:{SKIPPED_WITH_COLLAPSE:sb.arrowDown,SKIPPED_WITHOUT_COLLAPSE:sb.warning,OUTPUT:sb.pointerSmall,OUTPUT_WITH_BOTTOMBAR:sb.pointerSmall,PENDING:sb.pointer,COMPLETED:sb.tick,COMPLETED_WITH_FAILED_SUBTASKS:sb.warning,COMPLETED_WITH_SISTER_TASKS_FAILED:sb.squareSmallFilled,RETRY:sb.warning,ROLLING_BACK:sb.warning,ROLLED_BACK:sb.arrowLeft,FAILED:sb.cross,FAILED_WITH_SUBTASKS:sb.pointer,WAITING:sb.squareSmallFilled,PAUSED:sb.squareSmallFilled},color:{SKIPPED_WITH_COLLAPSE:X0.yellow,SKIPPED_WITHOUT_COLLAPSE:X0.yellow,PENDING:X0.yellow,COMPLETED:X0.green,COMPLETED_WITH_FAILED_SUBTASKS:X0.yellow,COMPLETED_WITH_SISTER_TASKS_FAILED:X0.red,RETRY:X0.yellowBright,ROLLING_BACK:X0.redBright,ROLLED_BACK:X0.redBright,FAILED:X0.red,FAILED_WITH_SUBTASKS:X0.red,WAITING:X0.dim,PAUSED:X0.yellowBright}};function FAi(e){let t=Math.floor(e/1e3),r=Math.floor(t/60),n;return t===0&&r===0&&(n=`0.${Math.floor(e/100)}s`),t>0&&(n=`${t%60}s`),r>0&&(n=`${r}m${n}`),n}wp(FAi,"parseTimer");var ESr={condition:!0,field:FAi,format:wp(()=>X0.dim,"format")};function RDa(){let e=new Date;return String(e.getHours()).padStart(2,"0")+":"+String(e.getMinutes()).padStart(2,"0")+":"+String(e.getSeconds()).padStart(2,"0")}wp(RDa,"parseTimestamp");var NDa=class hSr{constructor(t,r,n){this.tasks=t,this.options=r,this.events=n,this.options={...hSr.rendererOptions,...this.options,icon:{...vAi.icon,...r?.icon??{}},color:{...vAi.color,...r?.color??{}}},this.spinner=this.options.spinner??new TDa,this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:[]}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color}static{wp(this,"DefaultRenderer")}static nonTTY=!1;static rendererOptions={indentation:2,clearOutput:!1,showSubtasks:!0,collapseSubtasks:!0,collapseSkips:!0,showSkipMessage:!0,suffixSkips:!1,collapseErrors:!0,showErrorMessage:!0,suffixRetries:!0,lazy:!1,removeEmptyLines:!0,formatOutput:"wrap",pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={outputBar:!0};prompt;activePrompt;spinner;logger;updater;truncate;wrap;buffer={output:new Map,bottom:new Map};cache={render:new Map,rendererOptions:new Map,rendererTaskOptions:new Map};async render(){let{createLogUpdate:t}=await Promise.resolve().then(()=>(dAi(),AAi)),{default:r}=await Promise.resolve().then(()=>(_Ai(),CAi)),{default:n}=await Promise.resolve().then(()=>(oSr(),aAi));this.updater=t(this.logger.process.stdout),this.truncate=r,this.wrap=n,this.logger.process.hijack(),this.options?.lazy||this.spinner.start(()=>{this.update()}),this.events.on("SHOUD_REFRESH_RENDER",()=>{this.update()})}update(){this.updater(this.create())}end(){this.spinner.stop(),this.updater.clear(),this.updater.done(),this.options.clearOutput||this.logger.process.toStdout(this.create({prompt:!1})),this.logger.process.release()}create(t){t={tasks:!0,bottomBar:!0,prompt:!0,...t};let r=[],n=this.renderer(this.tasks),a=this.renderBottomBar(),o=this.renderPrompt();return t.tasks&&n.length>0&&r.push(...n),t.bottomBar&&a.length>0&&(r.length>0&&r.push(""),r.push(...a)),t.prompt&&o.length>0&&(r.length>0&&r.push(""),r.push(...o)),r.join(C_t)}style(t,r=!1){let n=this.cache.rendererOptions.get(t.id);if(t.isSkipped()){if(r||n.collapseSkips)return this.logger.icon("SKIPPED_WITH_COLLAPSE");if(n.collapseSkips===!1)return this.logger.icon("SKIPPED_WITHOUT_COLLAPSE")}if(r)return this.shouldOutputToBottomBar(t)?this.logger.icon("OUTPUT_WITH_BOTTOMBAR"):this.logger.icon("OUTPUT");if(t.hasSubtasks()){if(t.isStarted()||t.isPrompt()&&n.showSubtasks!==!1&&!t.subtasks.every(a=>!a.hasTitle()))return this.logger.icon("PENDING");if(t.isCompleted()&&t.subtasks.some(a=>a.hasFailed()))return this.logger.icon("COMPLETED_WITH_FAILED_SUBTASKS");if(t.hasFailed())return this.logger.icon("FAILED_WITH_SUBTASKS")}return t.isStarted()||t.isPrompt()?this.logger.icon("PENDING",!this.options?.lazy&&this.spinner.fetch()):t.isCompleted()?this.logger.icon("COMPLETED"):t.isRetrying()?this.logger.icon("RETRY",!this.options?.lazy&&this.spinner.fetch()):t.isRollingBack()?this.logger.icon("ROLLING_BACK",!this.options?.lazy&&this.spinner.fetch()):t.hasRolledBack()?this.logger.icon("ROLLED_BACK"):t.hasFailed()?this.logger.icon("FAILED"):t.isPaused()?this.logger.icon("PAUSED"):this.logger.icon("WAITING")}format(t,r,n){if(t.trim()==="")return[];r&&(t=r+" "+t);let a,o=(process.stdout.columns??80)-n*this.options.indentation-2;switch(this.options.formatOutput){case"truncate":a=t.split(C_t).map((l,A)=>this.truncate(this.indent(l,A),o));break;case"wrap":a=this.wrap(t,o,{hard:!0}).split(C_t).map((l,A)=>this.indent(l,A));break;default:throw new BAi("Format option for the renderer is wrong.")}return this.options.removeEmptyLines&&(a=a.filter(Boolean)),a.map(l=>fSr(l,n*this.options.indentation))}shouldOutputToOutputBar(t){let r=this.cache.rendererTaskOptions.get(t.id).outputBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1}shouldOutputToBottomBar(t){let r=this.cache.rendererTaskOptions.get(t.id).bottomBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1||!t.hasTitle()}renderer(t,r=0){return t.flatMap(n=>{if(!n.isEnabled())return[];if(this.cache.render.has(n.id))return this.cache.render.get(n.id);this.calculate(n),this.setupBuffer(n);let a=this.cache.rendererOptions.get(n.id),o=this.cache.rendererTaskOptions.get(n.id),l=[];if(n.isPrompt()){if(this.activePrompt&&this.activePrompt!==n.id)throw new BAi("Only one prompt can be active at the given time, please re-evaluate your task design.");this.activePrompt||(n.on("PROMPT",A=>{let f=WTe(A);f&&(this.prompt=f)}),n.on("STATE",A=>{(A==="PROMPT_COMPLETED"||n.hasFinalized()||n.hasReset())&&(this.prompt=null,this.activePrompt=null,n.off("PROMPT"))}),this.activePrompt=n.id)}if(n.hasTitle()&&(t.some(A=>A.hasFailed())&&!n.hasFailed()&&n.options.exitOnError!==!1&&!(n.isCompleted()||n.isSkipped())?l.push(...this.format(n.title,this.logger.icon("COMPLETED_WITH_SISTER_TASKS_FAILED"),r)):n.hasFailed()&&a.collapseErrors?l.push(...this.format(!n.hasSubtasks()&&n.message.error&&a.showErrorMessage?n.message.error:n.title,this.style(n),r)):n.isSkipped()&&a.collapseSkips?l.push(...this.format(this.logger.suffix(n.message.skip&&a.showSkipMessage?n.message.skip:n.title,{field:"SKIPPED",condition:a.suffixSkips,format:wp(()=>X0.dim,"format")}),this.style(n),r)):n.isRetrying()?l.push(...this.format(this.logger.suffix(n.title,{field:`RETRY:${n.message.retry.count}`,format:wp(()=>X0.yellow,"format"),condition:a.suffixRetries}),this.style(n),r)):n.isCompleted()&&n.hasTitle()&&Lhe(o.timer?.condition,n.message.duration)?l.push(...this.format(this.logger.suffix(n?.title,{...o.timer,args:[n.message.duration]}),this.style(n),r)):n.isPaused()?l.push(...this.format(this.logger.suffix(n.title,{...a.pausedTimer,args:[n.message.paused-Date.now()]}),this.style(n),r)):l.push(...this.format(n.title,this.style(n),r))),(!n.hasSubtasks()||!a.showSubtasks)&&(n.hasFailed()&&a.collapseErrors===!1&&(a.showErrorMessage||!a.showSubtasks)?l.push(...this.dump(n,r,"FAILED")):n.isSkipped()&&a.collapseSkips===!1&&(a.showSkipMessage||!a.showSubtasks)&&l.push(...this.dump(n,r,"SKIPPED"))),(n.isPending()||o.persistentOutput)&&l.push(...this.renderOutputBar(n,r)),a.showSubtasks!==!1&&n.hasSubtasks()&&(n.isPending()||n.hasFinalized()&&!n.hasTitle()||n.isCompleted()&&a.collapseSubtasks===!1&&!n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!0)||n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!1)||n.subtasks.some(A=>A.hasFailed())||n.subtasks.some(A=>A.hasRolledBack()))){let A=n.hasTitle()?r+1:r,f=this.renderer(n.subtasks,A);l.push(...f)}return n.hasFinalized()&&(o.persistentOutput||(this.buffer.bottom.delete(n.id),this.buffer.output.delete(n.id))),n.isClosed()&&(this.cache.render.set(n.id,l),this.reset(n)),l})}renderOutputBar(t,r){let n=this.buffer.output.get(t.id);return n?n.all.flatMap(a=>this.dump(t,r,"OUTPUT",a.entry)):[]}renderBottomBar(){return this.buffer.bottom.size===0?[]:Array.from(this.buffer.bottom.values()).flatMap(t=>t.all).sort((t,r)=>t.time-r.time).map(t=>t.entry)}renderPrompt(){return this.prompt?[this.prompt]:[]}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...hSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}setupBuffer(t){if(this.buffer.bottom.has(t.id)||this.buffer.output.has(t.id))return;let r=this.cache.rendererTaskOptions.get(t.id);this.shouldOutputToBottomBar(t)&&!this.buffer.bottom.has(t.id)?(this.buffer.bottom.set(t.id,new ISr({limit:typeof r.bottomBar=="number"?r.bottomBar:1})),t.on("OUTPUT",n=>{let a=this.dump(t,-1,"OUTPUT",n);this.buffer.bottom.get(t.id).write(a.join(C_t))}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.bottom.delete(t.id);break}})):this.shouldOutputToOutputBar(t)&&!this.buffer.output.has(t.id)&&(this.buffer.output.set(t.id,new ISr({limit:typeof r.outputBar=="number"?r.outputBar:1})),t.on("OUTPUT",n=>{this.buffer.output.get(t.id).write(n)}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.output.delete(t.id);break}}))}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id),this.buffer.output.delete(t.id)}dump(t,r,n="OUTPUT",a){if(!a)switch(n){case"OUTPUT":a=t.output;break;case"SKIPPED":a=t.message.skip;break;case"FAILED":a=t.message.error;break}return t.hasTitle()&&n==="FAILED"&&a===t.title||typeof a!="string"?[]:(n==="OUTPUT"&&(a=WTe(a)),this.format(a,this.style(t,!0),r+1))}indent(t,r){return r>0?fSr(t.trim(),this.options.indentation):t.trim()}},DDa=class{constructor(e,t){this.tasks=e,this.options=t}static{wp(this,"SilentRenderer")}static nonTTY=!0;static rendererOptions;static rendererTaskOptions;render(){}end(){}},kDa=class mSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...mSr.rendererOptions,...r,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"SimpleRenderer")}static nonTTY=!0;static rendererOptions={pausedTimer:{...ESr,field:wp(t=>`PAUSED:${t}`,"field"),format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={};logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};end(){}render(){this.renderer(this.tasks)}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle())if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a?.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}else o==="PROMPT"?(this.logger.process.hijack(),r.on("PROMPT",l=>{this.logger.process.toStderr(l,!1)})):o==="PROMPT_COMPLETED"&&(r.off("PROMPT"),this.logger.process.release())}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("MESSAGE",o=>{if(o.error)this.logger.log("FAILED",r.title,{suffix:{field:`FAILED: ${o.error}`,format:wp(()=>X0.red,"format")}});else if(o.skip)this.logger.log("SKIPPED",r.title,{suffix:{field:`SKIPPED: ${o.skip}`,format:wp(()=>X0.yellow,"format")}});else if(o.rollback)this.logger.log("ROLLBACK",r.title,{suffix:{field:`ROLLBACK: ${o.rollback}`,format:wp(()=>X0.red,"format")}});else if(o.retry)this.logger.log("RETRY",r.title,{suffix:{field:`RETRY:${o.retry.count}`,format:wp(()=>X0.red,"format")}});else if(o.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...mSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},xDa=class{constructor(e){this.options=e}static{wp(this,"TestRendererSerializer")}serialize(e,t,r){return JSON.stringify(this.generate(e,t,r))}generate(e,t,r){let n={event:e,data:t};if(typeof this.options?.task!="boolean"){let a=Object.fromEntries(this.options.task.map(o=>{let l=r[o];return typeof l=="function"?[o,l.call(r)]:[o,l]}));Object.keys(r).length>0&&(n.task=a)}return n}},GDa=class ZAi{constructor(t,r){this.tasks=t,this.options=r,this.options={...ZAi.rendererOptions,...this.options},this.logger=this.options.logger??new OTe({useIcons:!1}),this.serializer=new xDa(this.options)}static{wp(this,"TestRenderer")}static nonTTY=!0;static rendererOptions={subtasks:!0,state:Object.values(TAi),output:!0,prompt:!0,title:!0,messages:["skip","error","retry","rollback","paused"],messagesToStderr:["error","rollback","retry"],task:["hasRolledBack","isRollingBack","isCompleted","isSkipped","hasFinalized","hasSubtasks","title","hasReset","hasTitle","isPrompt","isPaused","isPending","isSkipped","isStarted","hasFailed","isEnabled","isRetrying","path"]};static rendererTaskOptions;logger;serializer;render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.options.subtasks&&r.on("SUBTASK",n=>{this.renderer(n)}),this.options.state&&r.on("STATE",n=>{this.logger.toStdout(this.serializer.serialize("STATE",n,r))}),this.options.output&&r.on("OUTPUT",n=>{this.logger.toStdout(this.serializer.serialize("OUTPUT",n,r))}),this.options.prompt&&r.on("PROMPT",n=>{this.logger.toStdout(this.serializer.serialize("PROMPT",n,r))}),this.options.title&&r.on("TITLE",n=>{this.logger.toStdout(this.serializer.serialize("TITLE",n,r))}),r.on("MESSAGE",n=>{let a=Object.fromEntries(Object.entries(n).map(([o,l])=>{if(this.options.messages.includes(o))return[o,l]}).filter(Boolean));if(Object.keys(a).length>0){let o=this.serializer.serialize("MESSAGE",a,r);this.options.messagesToStderr.some(l=>Object.keys(a).includes(l))?this.logger.toStderr(o):this.logger.toStdout(o)}})})}},FDa=class CSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...CSr.rendererOptions,...this.options,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!1,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"VerboseRenderer")}static nonTTY=!0;static rendererOptions={logTitleChange:!1,pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions;logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle()){if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}}}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("PROMPT",o=>{let l=WTe(o);l&&this.logger.log("PROMPT",l)}),this.options?.logTitleChange!==!1&&r.on("TITLE",o=>{this.logger.log("TITLE",o)}),r.on("MESSAGE",o=>{if(o?.error)this.logger.log("FAILED",o.error);else if(o?.skip)this.logger.log("SKIPPED",o.skip);else if(o?.rollback)this.logger.log("ROLLBACK",o.rollback);else if(o?.retry)this.logger.log("RETRY",r.title,{suffix:o.retry.count.toString()});else if(o?.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...CSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},pSr={default:NDa,simple:kDa,verbose:FDa,test:GDa,silent:DDa};function LAi(e){return process.stdout.isTTY===!0||e.nonTTY===!0}wp(LAi,"isRendererSupported");function XQe(e){return typeof e=="string"?pSr[e]??pSr.default:typeof e=="function"?e:pSr.default}wp(XQe,"getRendererClass");function VAi(e){if(Lhe(e?.silentRendererCondition))return{renderer:XQe("silent"),selection:"SILENT"};let t={renderer:XQe(e.renderer),options:e.rendererOptions,selection:"PRIMARY"};return!LAi(t.renderer)||Lhe(e?.fallbackRendererCondition)?{renderer:XQe(e.fallbackRenderer),options:e.fallbackRendererOptions,selection:"SECONDARY"}:t}wp(VAi,"getRenderer");function Lhe(e,...t){return typeof e=="function"?e(...t):e}wp(Lhe,"assertFunctionOrSelf");var ZDa=(0,PAi.default)({circles:!0});function _Sr(e){return ZDa(e)}wp(_Sr,"cloneObject");var LDa=class{static{wp(this,"Concurrency")}concurrency;count;queue;constructor(e){this.concurrency=e.concurrency,this.count=0,this.queue=new Set}add(e){return this.count{let r=wp(()=>t(this.run(e)),"callback");this.queue.add(r)})}flush(){for(let e of this.queue){if(this.count>=this.concurrency)break;this.queue.delete(e),e()}}run(e){this.count++;let t=e(),r=wp(()=>{this.count--,this.flush()},"cleanup");return t.then(r,()=>{this.queue.clear()}),t}};function WAi(e){return new Promise(t=>{setTimeout(t,e)})}wp(WAi,"delay");var VDa=class extends Error{constructor(e,t,r){super(e.message),this.error=e,this.type=t,this.task=r,this.name="ListrError",this.path=r.path,r?.options.collectErrors==="full"&&(this.task=_Sr(r),this.ctx=_Sr(r.listr.ctx)),this.stack=e?.stack}static{wp(this,"ListrError")}path;ctx},BAi=class extends Error{static{wp(this,"ListrRendererError")}},OAi=class extends Error{static{wp(this,"PromptError")}},PDa=class{constructor(e){this.task=e}static{wp(this,"TaskWrapper")}get title(){return this.task.title}set title(e){e=Array.isArray(e)?e:[e],this.task.title$=PTe(e.shift(),...e)}get output(){return this.task.output}set output(e){e=Array.isArray(e)?e:[e],this.task.output$=PTe(e.shift(),...e)}set promptOutput(e){this.task.promptOutput$=e}newListr(e,t){let r;return typeof e=="function"?r=e(this):r=e,new y_t(r,t,this.task)}report(e,t){this.task.options.collectErrors!==!1&&this.task.listr.errors.push(new VDa(e,t,this.task)),this.task.message$={error:e.message??this.task?.title}}skip(e,...t){this.task.state$="SKIPPED",e&&(this.task.message$={skip:e?PTe(e,...t):this.task?.title})}isRetrying(){return this.task.isRetrying()?this.task.retry:{count:0}}prompt(e){return this.task.prompt?this.task.prompt:new e(this.task,this)}stdout(e){return GAi(t=>{switch(e){case"PROMPT":this.promptOutput=t;break;default:this.output=t}})}run(e){return this.task.run(e,this)}},ODa=class extends RAi{static{wp(this,"ListrTaskEventManager")}},MDa=class extends ODa{constructor(e,t,r,n,a){if(super(),this.listr=e,this.task=t,this.options=r,this.rendererOptions=n,this.rendererTaskOptions=a,t.title){let o=Array.isArray(t?.title)?t.title:[t.title];this.title=PTe(o.shift(),...o),this.initialTitle=this.title}this.taskFn=t.task,this.parent=e.parentTask}static{wp(this,"Task")}id=WDa();state="WAITING";subtasks;title;initialTitle;output;retry;message={};prompt;parent;enabled;taskFn;closed;set state$(e){if(this.state=e,this.emit("STATE",e),this.hasSubtasks()&&this.hasFailed())for(let t of this.subtasks)t.state==="STARTED"&&(t.state$="FAILED");this.listr.events.emit("SHOUD_REFRESH_RENDER")}set output$(e){this.output=e,this.emit("OUTPUT",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set promptOutput$(e){this.emit("PROMPT",e),WTe(e)&&this.listr.events.emit("SHOUD_REFRESH_RENDER")}set message$(e){this.message={...this.message,...e},this.emit("MESSAGE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set title$(e){this.title=e,this.emit("TITLE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}get path(){return[...this.listr.path,this.initialTitle]}async check(e){return this.state==="WAITING"&&(this.enabled=await Lhe(this.task?.enabled??!0,e),this.emit("ENABLED",this.enabled),this.listr.events.emit("SHOUD_REFRESH_RENDER")),this.enabled}hasSubtasks(){return this.subtasks?.length>0}hasFinalized(){return this.isCompleted()||this.hasFailed()||this.isSkipped()||this.hasRolledBack()}isPending(){return this.isStarted()||this.isPrompt()||this.hasReset()}isStarted(){return this.state==="STARTED"}isSkipped(){return this.state==="SKIPPED"}isCompleted(){return this.state==="COMPLETED"}hasFailed(){return this.state==="FAILED"}isRollingBack(){return this.state==="ROLLING_BACK"}hasRolledBack(){return this.state==="ROLLED_BACK"}isRetrying(){return this.state==="RETRY"}hasReset(){return this.state==="RETRY"||this.state==="ROLLING_BACK"}isEnabled(){return this.enabled}hasTitle(){return typeof this?.title=="string"}isPrompt(){return this.state==="PROMPT"||this.state==="PROMPT_COMPLETED"}isPaused(){return this.state==="PAUSED"}isClosed(){return this.closed}async pause(e){let t=this.state;this.state$="PAUSED",this.message$={paused:Date.now()+e},await WAi(e),this.state$=t,this.message$={paused:null}}async run(e,t){let r=wp(o=>(o instanceof y_t?(o.options={...this.options,...o.options},o.rendererClass=XQe("silent"),this.subtasks=o.tasks,o.errors=this.listr.errors,this.emit("SUBTASK",this.subtasks),o=o.run(e)):o instanceof Promise?o=o.then(r):DAi(o)?o=new Promise((l,A)=>{o.on("data",f=>{this.output$=f.toString()}),o.on("error",f=>A(f)),o.on("end",()=>l(null))}):NAi(o)&&(o=new Promise((l,A)=>{o.subscribe({next:wp(f=>{this.output$=f},"next"),error:A,complete:l})})),o),"handleResult"),n=Date.now();this.state$="STARTED";let a=await Lhe(this.task?.skip??!1,e);if(a){typeof a=="string"?this.message$={skip:a}:this.hasTitle()?this.message$={skip:this.title}:this.message$={skip:"Skipped task without a title."},this.state$="SKIPPED";return}try{let o=typeof this.task?.retry=="number"&&this.task.retry>0?this.task.retry+1:typeof this.task?.retry=="object"&&this.task.retry.tries>0?this.task.retry.tries+1:1,l=typeof this.task.retry=="object"&&this.task.retry.delay;for(let A=1;A<=o;A++)try{await r(this.taskFn(e,t));break}catch(f){if(A!==o)this.retry={count:A,error:f},this.message$={retry:this.retry},this.title$=this.initialTitle,this.output=void 0,t.report(f,"WILL_RETRY"),this.state$="RETRY",l&&await this.pause(l);else throw f}(this.isStarted()||this.isRetrying())&&(this.message$={duration:Date.now()-n},this.state$="COMPLETED")}catch(o){if(this.prompt instanceof OAi&&(o=this.prompt),this.task?.rollback){t.report(o,"WILL_ROLLBACK");try{this.state$="ROLLING_BACK",await this.task.rollback(e,t),this.message$={rollback:this.title},this.state$="ROLLED_BACK"}catch(l){throw this.state$="FAILED",t.report(l,"HAS_FAILED_TO_ROLLBACK"),this.close(),l}if(this.listr.options?.exitAfterRollback!==!1)throw this.close(),o}else{if(this.state$="FAILED",this.listr.options.exitOnError!==!1&&await Lhe(this.task?.exitOnError,e)!==!1)throw t.report(o,"HAS_FAILED"),this.close(),o;this.hasSubtasks()||t.report(o,"HAS_FAILED_WITHOUT_ERROR")}}finally{this.close()}}close(){this.emit("CLOSED"),this.listr.events.emit("SHOUD_REFRESH_RENDER"),this.complete()}},wAi=class extends RAi{static{wp(this,"ListrEventManager")}},y_t=class{constructor(e,t,r){this.task=e,this.options=t,this.parentTask=r,this.options={concurrent:!1,renderer:"default",fallbackRenderer:"simple",exitOnError:!0,exitAfterRollback:!0,collectErrors:!1,registerSignalListeners:!0,...this.parentTask?.options??{},...t},this.options.concurrent===!0?this.options.concurrent=1/0:typeof this.options.concurrent!="number"&&(this.options.concurrent=1),this.concurrency=new LDa({concurrency:this.options.concurrent}),r&&(this.path=[...r.listr.path,r.title],this.errors=r.listr.errors),this.parentTask?.listr.events instanceof wAi?this.events=this.parentTask.listr.events:this.events=new wAi;let n=VAi({renderer:this.options.renderer,rendererOptions:this.options.rendererOptions,fallbackRenderer:this.options.fallbackRenderer,fallbackRendererOptions:this.options.fallbackRendererOptions,fallbackRendererCondition:this.options?.fallbackRendererCondition,silentRendererCondition:this.options?.silentRendererCondition});this.rendererClass=n.renderer,this.rendererClassOptions=n.options,this.rendererSelection=n.selection,this.add(e??[]),this.options.registerSignalListeners&&(this.boundSignalHandler=this.signalHandler.bind(this),process.once("SIGINT",this.boundSignalHandler).setMaxListeners(0)),(this.options?.forceTTY||process.env.LISTR_FORCE_TTY)&&(process.stdout.isTTY=!0,process.stderr.isTTY=!0),this.options?.forceUnicode&&(process.env.LISTR_FORCE_UNICODE="1")}static{wp(this,"Listr")}tasks=[];errors=[];ctx;events;path=[];rendererClass;rendererClassOptions;rendererSelection;boundSignalHandler;concurrency;renderer;isRoot(){return!this.parentTask}isSubtask(){return!!this.parentTask}add(e){this.tasks.push(...this.generate(e))}async run(e){this.renderer||(this.renderer=new this.rendererClass(this.tasks,this.rendererClassOptions,this.events)),await this.renderer.render(),this.ctx=this.options?.ctx??e??{},await Promise.all(this.tasks.map(t=>t.check(this.ctx)));try{await Promise.all(this.tasks.map(t=>this.concurrency.add(()=>this.runTask(t)))),this.renderer.end(),this.removeSignalHandler()}catch(t){if(this.options.exitOnError!==!1)throw this.renderer.end(t),this.removeSignalHandler(),t}return this.ctx}generate(e){return e=Array.isArray(e)?e:[e],e.map(t=>{let r;return this.rendererSelection==="PRIMARY"?r=t.rendererOptions:this.rendererSelection==="SECONDARY"&&(r=t.fallbackRendererOptions),new MDa(this,t,this.options,this.rendererClassOptions,r)})}async runTask(e){if(await e.check(this.ctx))return new PDa(e).run(this.ctx)}signalHandler(){this.tasks?.forEach(async e=>{e.isPending()&&(e.state$="FAILED")}),this.isRoot()&&(this.renderer.end(new Error("Interrupted.")),process.exit(127))}removeSignalHandler(){this.boundSignalHandler&&process.removeListener("SIGINT",this.boundSignalHandler)}};var JQe=fp.blue(sb.arrowRight),HM=fp.redBright(sb.cross),MTe=fp.yellow(sb.warning);var UQe=(e,t,r)=>`${fp.redBright(`${HM} Validation Error:`)} +`)}};var Ahi=Nt(el(),1);$c();import{execSync as ghi}from"node:child_process";var lhi=Nt(uT(),1);var ygi=Nt(uT(),1);var jRa=(0,ygi.default)("lint-staged:execGit"),zRa=["-c","submodule.recurse=false"],qRa=[...zRa],QZ=async(e,t={})=>{jRa("Running git command",e);try{let{stdout:r}=await j$("git",qRa.concat(e),{...t,all:!0,cwd:t.cwd||process.cwd(),stdin:"ignore"});return r}catch({all:r}){throw new Error(r)}};import{inspect as HDa}from"node:util";var Sgi=Nt(Egi(),1);var vgi=Sgi.default;import*as o_t from"tty";var{env:wae={},argv:wgi=[],platform:tNa=""}=typeof process>"u"?{}:process,rNa="NO_COLOR"in wae||wgi.includes("--no-color"),nNa="FORCE_COLOR"in wae||wgi.includes("--color"),iNa=tNa==="win32",Tgi=wae.TERM==="dumb",sNa=o_t&&o_t.isatty&&o_t.isatty(1)&&wae.TERM&&!Tgi,oNa="CI"in wae&&("GITHUB_ACTIONS"in wae||"GITLAB_CI"in wae||"CIRCLECI"in wae),aNa=!rNa&&(nNa||iNa&&!Tgi||sNa||oNa),Rgi=(e,t,r,n,a=t.substring(0,e)+n,o=t.substring(e+r.length),l=o.indexOf(r))=>a+(l<0?o:Rgi(l,o,r,n)),cNa=(e,t,r,n,a)=>e<0?r+t+n:r+Rgi(e,t,n,a)+n,lNa=(e,t,r=e,n=e.length+1)=>a=>a||!(a===""||a===void 0)?cNa((""+a).indexOf(t,n),a,e,t,r):"",Sh=(e,t,r)=>lNa(`\x1B[${e}m`,`\x1B[${t}m`,r),Bgi={reset:Sh(0,0),bold:Sh(1,22,"\x1B[22m\x1B[1m"),dim:Sh(2,22,"\x1B[22m\x1B[2m"),italic:Sh(3,23),underline:Sh(4,24),inverse:Sh(7,27),hidden:Sh(8,28),strikethrough:Sh(9,29),black:Sh(30,39),red:Sh(31,39),green:Sh(32,39),yellow:Sh(33,39),blue:Sh(34,39),magenta:Sh(35,39),cyan:Sh(36,39),white:Sh(37,39),gray:Sh(90,39),bgBlack:Sh(40,49),bgRed:Sh(41,49),bgGreen:Sh(42,49),bgYellow:Sh(43,49),bgBlue:Sh(44,49),bgMagenta:Sh(45,49),bgCyan:Sh(46,49),bgWhite:Sh(47,49),blackBright:Sh(90,39),redBright:Sh(91,39),greenBright:Sh(92,39),yellowBright:Sh(93,39),blueBright:Sh(94,39),magentaBright:Sh(95,39),cyanBright:Sh(96,39),whiteBright:Sh(97,39),bgBlackBright:Sh(100,49),bgRedBright:Sh(101,49),bgGreenBright:Sh(102,49),bgYellowBright:Sh(103,49),bgBlueBright:Sh(104,49),bgMagentaBright:Sh(105,49),bgCyanBright:Sh(106,49),bgWhiteBright:Sh(107,49)},j2r=({useColor:e=aNa}={})=>e?Bgi:Object.keys(Bgi).reduce((t,r)=>({...t,[r]:String}),{}),{reset:bmu,bold:Emu,dim:Smu,italic:vmu,underline:Bmu,inverse:wmu,hidden:Tmu,strikethrough:Rmu,black:Nmu,red:Dmu,green:kmu,yellow:xmu,blue:Gmu,magenta:Fmu,cyan:Zmu,white:Lmu,gray:Vmu,bgBlack:Pmu,bgRed:Wmu,bgGreen:Omu,bgYellow:Mmu,bgBlue:Hmu,bgMagenta:Ymu,bgCyan:Qmu,bgWhite:Xmu,blackBright:Jmu,redBright:Umu,greenBright:Kmu,yellowBright:jmu,blueBright:zmu,magentaBright:qmu,cyanBright:$mu,whiteBright:eCu,bgBlackBright:tCu,bgRedBright:rCu,bgGreenBright:nCu,bgYellowBright:iCu,bgBlueBright:sCu,bgMagentaBright:oCu,bgCyanBright:aCu,bgWhiteBright:cCu}=j2r();var PAi=Nt(Dgi(),1);import{format as vDa}from"util";import{EOL as EAi}from"os";import{StringDecoder as BDa}from"string_decoder";import{EOL as m_t}from"os";import{Writable as wDa}from"stream";import{EOL as C_t}from"os";import{randomUUID as WDa}from"crypto";var yDa=Object.defineProperty,wp=(e,t)=>yDa(e,"name",{value:t,configurable:!0}),yAi="\x1B[",bAi={CURSOR_HIDE:yAi+"?25l",CURSOR_SHOW:yAi+"?25h"};var TAi=(e=>(e.WAITING="WAITING",e.STARTED="STARTED",e.COMPLETED="COMPLETED",e.FAILED="FAILED",e.SKIPPED="SKIPPED",e.ROLLING_BACK="ROLLING_BACK",e.ROLLED_BACK="ROLLED_BACK",e.RETRY="RETRY",e.PAUSED="PAUSED",e.PROMPT="PROMPT",e.PROMPT_COMPLETED="PROMPT_COMPLETED",e.PROMPT_FAILED="PROMPT_FAILED",e))(TAi||{}),RAi=class{static{wp(this,"EventManager")}emitter=new vgi;emit(e,t){this.emitter.emit(e,t)}on(e,t){this.emitter.addListener(e,t)}once(e,t){this.emitter.once(e,t)}off(e,t){this.emitter.off(e,t)}complete(){this.emitter.removeAllListeners()}},m_u=class{static{wp(this,"BaseEventMap")}};function NAi(e){return!!e&&typeof e=="object"&&typeof e.subscribe=="function"}wp(NAi,"isObservable");function DAi(e){return!!e&&typeof e=="object"&&e.readable===!0&&typeof e.read=="function"&&typeof e.on=="function"}wp(DAi,"isReadable");function ySr(){return!!process.env.LISTR_FORCE_UNICODE||process.platform!=="win32"||!!process.env.CI||!!process.env.WT_SESSION||process.env.TERM_PROGRAM==="vscode"||process.env.TERM==="xterm-256color"||process.env.TERM==="alacritty"}wp(ySr,"isUnicodeSupported");var bDa="(?:\\u001b|\\u009b)\\[[\\=><~/#&.:=?%@~_-]*[0-9]*[\\a-ln-tqyz=><~/#&.:=?%@~_-]+",EDa=/\u0007/;function WTe(e){return String(e).replace(new RegExp(bDa,"gmi"),"").replace(new RegExp(EDa,"gmi"),"").trim()}wp(WTe,"cleanseAnsi");var X0=j2r();function fSr(e,t){return e.replace(/^(?!\s*$)/gm," ".repeat(t))}wp(fSr,"indent");var kAi={warning:"\u26A0",cross:"\u2716",arrowDown:"\u2193",tick:"\u2714",arrowRight:"\u2192",pointer:"\u276F",checkboxOn:"\u2612",arrowLeft:"\u2190",squareSmallFilled:"\u25FC",pointerSmall:"\u203A"},SDa={...kAi,warning:"\u203C",cross:"\xD7",tick:"\u221A",pointer:">",checkboxOn:"[\xD7]",squareSmallFilled:"\u25A0"},sb=ySr()?kAi:SDa;function PTe(e,...t){return vDa(String(e),...t)}wp(PTe,"splat");var __t={icon:{STARTED:sb.pointer,FAILED:sb.cross,SKIPPED:sb.arrowDown,COMPLETED:sb.tick,OUTPUT:sb.pointerSmall,TITLE:sb.arrowRight,RETRY:sb.warning,ROLLBACK:sb.arrowLeft,PAUSED:sb.squareSmallFilled},color:{STARTED:X0.yellow,FAILED:X0.red,SKIPPED:X0.yellow,COMPLETED:X0.green,RETRY:X0.yellowBright,ROLLBACK:X0.redBright,PAUSED:X0.yellowBright}},xAi=["RETRY","ROLLBACK","FAILED"],OTe=class{constructor(e){this.options=e,this.options={useIcons:!0,toStderr:[],...e??{}},this.options.fields??={},this.options.fields.prefix??=[],this.options.fields.suffix??=[],this.process=this.options.processOutput??new bSr}static{wp(this,"ListrLogger")}process;log(e,t,r){let n=this.format(e,t,r);if(this.options.toStderr.includes(e)){this.process.toStderr(n);return}this.process.toStdout(n)}toStdout(e,t,r=!0){this.process.toStdout(this.format(null,e,t),r)}toStderr(e,t,r=!0){this.process.toStderr(this.format(null,e,t),r)}wrap(e,t){return e&&this.applyFormat(`[${e}]`,t)}splat(...e){let t=e.shift()??"";return e.length===0?t:PTe(t,e)}suffix(e,...t){return t.filter(Boolean).forEach(r=>{if(e+=this.spacing(e),typeof r=="string")e+=this.wrap(r);else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e+=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format(...r.args)})}}),e}prefix(e,...t){return t.filter(Boolean).forEach(r=>{if(e=this.spacing(e)+e,typeof r=="string")e=this.wrap(r)+e;else if(typeof r=="object"){if(r.args??=[],typeof r.condition=="function"?!r.condition(...r.args):!(r.condition??!0))return e;e=this.wrap(typeof r.field=="function"?r.field(...r.args):r.field,{format:r?.format()})+e}}),e}fields(e,t){return this.options?.fields?.prefix&&(e=this.prefix(e,...this.options.fields.prefix)),t?.prefix&&(e=this.prefix(e,...t.prefix)),t?.suffix&&(e=this.suffix(e,...t.suffix)),this.options?.fields?.suffix&&(e=this.suffix(e,...this.options.fields.suffix)),e}icon(e,t){if(!e)return null;t||=this.options.icon?.[e];let r=this.options.color?.[e];return t&&r&&(t=r(t)),t}format(e,t,r){return Array.isArray(t)||(t=[t]),t=this.splat(t.shift(),...t).toString().split(EAi).filter(n=>!n||n.trim()!=="").map(n=>this.style(e,this.fields(n,{prefix:Array.isArray(r?.prefix)?r.prefix:[r?.prefix],suffix:Array.isArray(r?.suffix)?r.suffix:[r?.suffix]}))).join(EAi),t}style(e,t){if(!e||!t)return t;let r=this.icon(e,!this.options.useIcons&&this.wrap(e));return r&&(t=r+" "+t),t}applyFormat(e,t){return t?.format?t.format(e):e}spacing(e){return typeof e>"u"||e.trim()===""?"":" "}},ISr=class{constructor(e){this.options=e}static{wp(this,"ProcessOutputBuffer")}buffer=[];decoder=new BDa;get all(){return this.buffer}get last(){return this.buffer.at(-1)}get length(){return this.buffer.length}write(e,...t){let r=t[t.length-1];return this.buffer.push({time:Date.now(),stream:this.options?.stream,entry:this.decoder.write(typeof e=="string"?Buffer.from(e,typeof t[0]=="string"?t[0]:void 0):Buffer.from(e))}),this.options?.limit&&(this.buffer=this.buffer.slice(-this.options.limit)),typeof r=="function"&&r(),!0}reset(){this.buffer=[]}},SAi=class{constructor(e){this.stream=e,this.method=e.write,this.buffer=new ISr({stream:e})}static{wp(this,"ProcessOutputStream")}method;buffer;get out(){return Object.assign({},this.stream,{write:this.write.bind(this)})}hijack(){this.stream.write=this.buffer.write.bind(this.buffer)}release(){this.stream.write=this.method;let e=[...this.buffer.all];return this.buffer.reset(),e}write(...e){return this.method.apply(this.stream,e)}},bSr=class{constructor(e,t,r){this.options=r,this.stream={stdout:new SAi(e??process.stdout),stderr:new SAi(t??process.stderr)},this.options={dump:["stdout","stderr"],leaveEmptyLine:!0,...r}}static{wp(this,"ProcessOutput")}stream;active;get stdout(){return this.stream.stdout.out}get stderr(){return this.stream.stderr.out}hijack(){if(this.active)throw new Error("ProcessOutput has been already hijacked!");this.stream.stdout.write(bAi.CURSOR_HIDE),Object.values(this.stream).forEach(e=>e.hijack()),this.active=!0}release(){let e=Object.entries(this.stream).map(([t,r])=>({name:t,buffer:r.release()})).filter(t=>this.options.dump.includes(t.name)).flatMap(t=>t.buffer).sort((t,r)=>t.time-r.time).map(t=>({...t,entry:WTe(t.entry)})).filter(t=>t.entry);e.length>0&&(this.options.leaveEmptyLine&&this.stdout.write(m_t),e.forEach(t=>{(t.stream??this.stdout).write(t.entry+m_t)})),this.stream.stdout.write(bAi.CURSOR_SHOW),this.active=!1}toStdout(e,t=!0){return t&&(e=e+m_t),this.stream.stdout.write(e)}toStderr(e,t=!0){return t&&(e=e+m_t),this.stream.stderr.write(e)}};function GAi(e){let t=new wDa;return t.rows=1/0,t.columns=1/0,t.write=r=>(e(r.toString()),!0),t}wp(GAi,"createWritable");var v_u=class{constructor(e,t){this.task=e,this.wrapper=t}static{wp(this,"ListrPromptAdapter")}state;reportStarted(){if(this.state=this.task.state,this.task.prompt)throw new OAi("There is already an active prompt attached to this task which may not be cleaned up properly.");this.task.prompt=this,this.task.state$="PROMPT"}reportFailed(){this.task.state$="PROMPT_FAILED",this.restoreState()}reportCompleted(){this.task.state$="PROMPT_COMPLETED",this.restoreState()}restoreState(){this.task.prompt=void 0,this.state&&(this.task.state=this.state)}},TDa=class{static{wp(this,"Spinner")}spinner=ySr()?["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]:["-","\\","|","/"];id;spinnerPosition=0;spin(){this.spinnerPosition=++this.spinnerPosition%this.spinner.length}fetch(){return this.spinner[this.spinnerPosition]}isRunning(){return!!this.id}start(e,t=100){this.id=setInterval(()=>{this.spin(),e&&e()},t)}stop(){clearInterval(this.id)}};var vAi={icon:{SKIPPED_WITH_COLLAPSE:sb.arrowDown,SKIPPED_WITHOUT_COLLAPSE:sb.warning,OUTPUT:sb.pointerSmall,OUTPUT_WITH_BOTTOMBAR:sb.pointerSmall,PENDING:sb.pointer,COMPLETED:sb.tick,COMPLETED_WITH_FAILED_SUBTASKS:sb.warning,COMPLETED_WITH_SISTER_TASKS_FAILED:sb.squareSmallFilled,RETRY:sb.warning,ROLLING_BACK:sb.warning,ROLLED_BACK:sb.arrowLeft,FAILED:sb.cross,FAILED_WITH_SUBTASKS:sb.pointer,WAITING:sb.squareSmallFilled,PAUSED:sb.squareSmallFilled},color:{SKIPPED_WITH_COLLAPSE:X0.yellow,SKIPPED_WITHOUT_COLLAPSE:X0.yellow,PENDING:X0.yellow,COMPLETED:X0.green,COMPLETED_WITH_FAILED_SUBTASKS:X0.yellow,COMPLETED_WITH_SISTER_TASKS_FAILED:X0.red,RETRY:X0.yellowBright,ROLLING_BACK:X0.redBright,ROLLED_BACK:X0.redBright,FAILED:X0.red,FAILED_WITH_SUBTASKS:X0.red,WAITING:X0.dim,PAUSED:X0.yellowBright}};function FAi(e){let t=Math.floor(e/1e3),r=Math.floor(t/60),n;return t===0&&r===0&&(n=`0.${Math.floor(e/100)}s`),t>0&&(n=`${t%60}s`),r>0&&(n=`${r}m${n}`),n}wp(FAi,"parseTimer");var ESr={condition:!0,field:FAi,format:wp(()=>X0.dim,"format")};function RDa(){let e=new Date;return String(e.getHours()).padStart(2,"0")+":"+String(e.getMinutes()).padStart(2,"0")+":"+String(e.getSeconds()).padStart(2,"0")}wp(RDa,"parseTimestamp");var NDa=class hSr{constructor(t,r,n){this.tasks=t,this.options=r,this.events=n,this.options={...hSr.rendererOptions,...this.options,icon:{...vAi.icon,...r?.icon??{}},color:{...vAi.color,...r?.color??{}}},this.spinner=this.options.spinner??new TDa,this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:[]}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color}static{wp(this,"DefaultRenderer")}static nonTTY=!1;static rendererOptions={indentation:2,clearOutput:!1,showSubtasks:!0,collapseSubtasks:!0,collapseSkips:!0,showSkipMessage:!0,suffixSkips:!1,collapseErrors:!0,showErrorMessage:!0,suffixRetries:!0,lazy:!1,removeEmptyLines:!0,formatOutput:"wrap",pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={outputBar:!0};prompt;activePrompt;spinner;logger;updater;truncate;wrap;buffer={output:new Map,bottom:new Map};cache={render:new Map,rendererOptions:new Map,rendererTaskOptions:new Map};async render(){let{createLogUpdate:t}=await Promise.resolve().then(()=>(dAi(),AAi)),{default:r}=await Promise.resolve().then(()=>(_Ai(),CAi)),{default:n}=await Promise.resolve().then(()=>(oSr(),aAi));this.updater=t(this.logger.process.stdout),this.truncate=r,this.wrap=n,this.logger.process.hijack(),this.options?.lazy||this.spinner.start(()=>{this.update()}),this.events.on("SHOUD_REFRESH_RENDER",()=>{this.update()})}update(){this.updater(this.create())}end(){this.spinner.stop(),this.updater.clear(),this.updater.done(),this.options.clearOutput||this.logger.process.toStdout(this.create({prompt:!1})),this.logger.process.release()}create(t){t={tasks:!0,bottomBar:!0,prompt:!0,...t};let r=[],n=this.renderer(this.tasks),a=this.renderBottomBar(),o=this.renderPrompt();return t.tasks&&n.length>0&&r.push(...n),t.bottomBar&&a.length>0&&(r.length>0&&r.push(""),r.push(...a)),t.prompt&&o.length>0&&(r.length>0&&r.push(""),r.push(...o)),r.join(C_t)}style(t,r=!1){let n=this.cache.rendererOptions.get(t.id);if(t.isSkipped()){if(r||n.collapseSkips)return this.logger.icon("SKIPPED_WITH_COLLAPSE");if(n.collapseSkips===!1)return this.logger.icon("SKIPPED_WITHOUT_COLLAPSE")}if(r)return this.shouldOutputToBottomBar(t)?this.logger.icon("OUTPUT_WITH_BOTTOMBAR"):this.logger.icon("OUTPUT");if(t.hasSubtasks()){if(t.isStarted()||t.isPrompt()&&n.showSubtasks!==!1&&!t.subtasks.every(a=>!a.hasTitle()))return this.logger.icon("PENDING");if(t.isCompleted()&&t.subtasks.some(a=>a.hasFailed()))return this.logger.icon("COMPLETED_WITH_FAILED_SUBTASKS");if(t.hasFailed())return this.logger.icon("FAILED_WITH_SUBTASKS")}return t.isStarted()||t.isPrompt()?this.logger.icon("PENDING",!this.options?.lazy&&this.spinner.fetch()):t.isCompleted()?this.logger.icon("COMPLETED"):t.isRetrying()?this.logger.icon("RETRY",!this.options?.lazy&&this.spinner.fetch()):t.isRollingBack()?this.logger.icon("ROLLING_BACK",!this.options?.lazy&&this.spinner.fetch()):t.hasRolledBack()?this.logger.icon("ROLLED_BACK"):t.hasFailed()?this.logger.icon("FAILED"):t.isPaused()?this.logger.icon("PAUSED"):this.logger.icon("WAITING")}format(t,r,n){if(t.trim()==="")return[];r&&(t=r+" "+t);let a,o=(process.stdout.columns??80)-n*this.options.indentation-2;switch(this.options.formatOutput){case"truncate":a=t.split(C_t).map((l,A)=>this.truncate(this.indent(l,A),o));break;case"wrap":a=this.wrap(t,o,{hard:!0}).split(C_t).map((l,A)=>this.indent(l,A));break;default:throw new BAi("Format option for the renderer is wrong.")}return this.options.removeEmptyLines&&(a=a.filter(Boolean)),a.map(l=>fSr(l,n*this.options.indentation))}shouldOutputToOutputBar(t){let r=this.cache.rendererTaskOptions.get(t.id).outputBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1}shouldOutputToBottomBar(t){let r=this.cache.rendererTaskOptions.get(t.id).bottomBar;return typeof r=="number"&&r!==0||typeof r=="boolean"&&r!==!1||!t.hasTitle()}renderer(t,r=0){return t.flatMap(n=>{if(!n.isEnabled())return[];if(this.cache.render.has(n.id))return this.cache.render.get(n.id);this.calculate(n),this.setupBuffer(n);let a=this.cache.rendererOptions.get(n.id),o=this.cache.rendererTaskOptions.get(n.id),l=[];if(n.isPrompt()){if(this.activePrompt&&this.activePrompt!==n.id)throw new BAi("Only one prompt can be active at the given time, please re-evaluate your task design.");this.activePrompt||(n.on("PROMPT",A=>{let f=WTe(A);f&&(this.prompt=f)}),n.on("STATE",A=>{(A==="PROMPT_COMPLETED"||n.hasFinalized()||n.hasReset())&&(this.prompt=null,this.activePrompt=null,n.off("PROMPT"))}),this.activePrompt=n.id)}if(n.hasTitle()&&(t.some(A=>A.hasFailed())&&!n.hasFailed()&&n.options.exitOnError!==!1&&!(n.isCompleted()||n.isSkipped())?l.push(...this.format(n.title,this.logger.icon("COMPLETED_WITH_SISTER_TASKS_FAILED"),r)):n.hasFailed()&&a.collapseErrors?l.push(...this.format(!n.hasSubtasks()&&n.message.error&&a.showErrorMessage?n.message.error:n.title,this.style(n),r)):n.isSkipped()&&a.collapseSkips?l.push(...this.format(this.logger.suffix(n.message.skip&&a.showSkipMessage?n.message.skip:n.title,{field:"SKIPPED",condition:a.suffixSkips,format:wp(()=>X0.dim,"format")}),this.style(n),r)):n.isRetrying()?l.push(...this.format(this.logger.suffix(n.title,{field:`RETRY:${n.message.retry.count}`,format:wp(()=>X0.yellow,"format"),condition:a.suffixRetries}),this.style(n),r)):n.isCompleted()&&n.hasTitle()&&Lhe(o.timer?.condition,n.message.duration)?l.push(...this.format(this.logger.suffix(n?.title,{...o.timer,args:[n.message.duration]}),this.style(n),r)):n.isPaused()?l.push(...this.format(this.logger.suffix(n.title,{...a.pausedTimer,args:[n.message.paused-Date.now()]}),this.style(n),r)):l.push(...this.format(n.title,this.style(n),r))),(!n.hasSubtasks()||!a.showSubtasks)&&(n.hasFailed()&&a.collapseErrors===!1&&(a.showErrorMessage||!a.showSubtasks)?l.push(...this.dump(n,r,"FAILED")):n.isSkipped()&&a.collapseSkips===!1&&(a.showSkipMessage||!a.showSubtasks)&&l.push(...this.dump(n,r,"SKIPPED"))),(n.isPending()||o.persistentOutput)&&l.push(...this.renderOutputBar(n,r)),a.showSubtasks!==!1&&n.hasSubtasks()&&(n.isPending()||n.hasFinalized()&&!n.hasTitle()||n.isCompleted()&&a.collapseSubtasks===!1&&!n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!0)||n.subtasks.some(A=>this.cache.rendererOptions.get(A.id)?.collapseSubtasks===!1)||n.subtasks.some(A=>A.hasFailed())||n.subtasks.some(A=>A.hasRolledBack()))){let A=n.hasTitle()?r+1:r,f=this.renderer(n.subtasks,A);l.push(...f)}return n.hasFinalized()&&(o.persistentOutput||(this.buffer.bottom.delete(n.id),this.buffer.output.delete(n.id))),n.isClosed()&&(this.cache.render.set(n.id,l),this.reset(n)),l})}renderOutputBar(t,r){let n=this.buffer.output.get(t.id);return n?n.all.flatMap(a=>this.dump(t,r,"OUTPUT",a.entry)):[]}renderBottomBar(){return this.buffer.bottom.size===0?[]:Array.from(this.buffer.bottom.values()).flatMap(t=>t.all).sort((t,r)=>t.time-r.time).map(t=>t.entry)}renderPrompt(){return this.prompt?[this.prompt]:[]}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...hSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}setupBuffer(t){if(this.buffer.bottom.has(t.id)||this.buffer.output.has(t.id))return;let r=this.cache.rendererTaskOptions.get(t.id);this.shouldOutputToBottomBar(t)&&!this.buffer.bottom.has(t.id)?(this.buffer.bottom.set(t.id,new ISr({limit:typeof r.bottomBar=="number"?r.bottomBar:1})),t.on("OUTPUT",n=>{let a=this.dump(t,-1,"OUTPUT",n);this.buffer.bottom.get(t.id).write(a.join(C_t))}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.bottom.delete(t.id);break}})):this.shouldOutputToOutputBar(t)&&!this.buffer.output.has(t.id)&&(this.buffer.output.set(t.id,new ISr({limit:typeof r.outputBar=="number"?r.outputBar:1})),t.on("OUTPUT",n=>{this.buffer.output.get(t.id).write(n)}),t.on("STATE",n=>{switch(n){case"RETRY":this.buffer.output.delete(t.id);break}}))}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id),this.buffer.output.delete(t.id)}dump(t,r,n="OUTPUT",a){if(!a)switch(n){case"OUTPUT":a=t.output;break;case"SKIPPED":a=t.message.skip;break;case"FAILED":a=t.message.error;break}return t.hasTitle()&&n==="FAILED"&&a===t.title||typeof a!="string"?[]:(n==="OUTPUT"&&(a=WTe(a)),this.format(a,this.style(t,!0),r+1))}indent(t,r){return r>0?fSr(t.trim(),this.options.indentation):t.trim()}},DDa=class{constructor(e,t){this.tasks=e,this.options=t}static{wp(this,"SilentRenderer")}static nonTTY=!0;static rendererOptions;static rendererTaskOptions;render(){}end(){}},kDa=class mSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...mSr.rendererOptions,...r,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!0,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"SimpleRenderer")}static nonTTY=!0;static rendererOptions={pausedTimer:{...ESr,field:wp(t=>`PAUSED:${t}`,"field"),format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions={};logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};end(){}render(){this.renderer(this.tasks)}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle())if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a?.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}else o==="PROMPT"?(this.logger.process.hijack(),r.on("PROMPT",l=>{this.logger.process.toStderr(l,!1)})):o==="PROMPT_COMPLETED"&&(r.off("PROMPT"),this.logger.process.release())}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("MESSAGE",o=>{if(o.error)this.logger.log("FAILED",r.title,{suffix:{field:`FAILED: ${o.error}`,format:wp(()=>X0.red,"format")}});else if(o.skip)this.logger.log("SKIPPED",r.title,{suffix:{field:`SKIPPED: ${o.skip}`,format:wp(()=>X0.yellow,"format")}});else if(o.rollback)this.logger.log("ROLLBACK",r.title,{suffix:{field:`ROLLBACK: ${o.rollback}`,format:wp(()=>X0.red,"format")}});else if(o.retry)this.logger.log("RETRY",r.title,{suffix:{field:`RETRY:${o.retry.count}`,format:wp(()=>X0.red,"format")}});else if(o.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...mSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},xDa=class{constructor(e){this.options=e}static{wp(this,"TestRendererSerializer")}serialize(e,t,r){return JSON.stringify(this.generate(e,t,r))}generate(e,t,r){let n={event:e,data:t};if(typeof this.options?.task!="boolean"){let a=Object.fromEntries(this.options.task.map(o=>{let l=r[o];return typeof l=="function"?[o,l.call(r)]:[o,l]}));Object.keys(r).length>0&&(n.task=a)}return n}},GDa=class ZAi{constructor(t,r){this.tasks=t,this.options=r,this.options={...ZAi.rendererOptions,...this.options},this.logger=this.options.logger??new OTe({useIcons:!1}),this.serializer=new xDa(this.options)}static{wp(this,"TestRenderer")}static nonTTY=!0;static rendererOptions={subtasks:!0,state:Object.values(TAi),output:!0,prompt:!0,title:!0,messages:["skip","error","retry","rollback","paused"],messagesToStderr:["error","rollback","retry"],task:["hasRolledBack","isRollingBack","isCompleted","isSkipped","hasFinalized","hasSubtasks","title","hasReset","hasTitle","isPrompt","isPaused","isPending","isSkipped","isStarted","hasFailed","isEnabled","isRetrying","path"]};static rendererTaskOptions;logger;serializer;render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.options.subtasks&&r.on("SUBTASK",n=>{this.renderer(n)}),this.options.state&&r.on("STATE",n=>{this.logger.toStdout(this.serializer.serialize("STATE",n,r))}),this.options.output&&r.on("OUTPUT",n=>{this.logger.toStdout(this.serializer.serialize("OUTPUT",n,r))}),this.options.prompt&&r.on("PROMPT",n=>{this.logger.toStdout(this.serializer.serialize("PROMPT",n,r))}),this.options.title&&r.on("TITLE",n=>{this.logger.toStdout(this.serializer.serialize("TITLE",n,r))}),r.on("MESSAGE",n=>{let a=Object.fromEntries(Object.entries(n).map(([o,l])=>{if(this.options.messages.includes(o))return[o,l]}).filter(Boolean));if(Object.keys(a).length>0){let o=this.serializer.serialize("MESSAGE",a,r);this.options.messagesToStderr.some(l=>Object.keys(a).includes(l))?this.logger.toStderr(o):this.logger.toStdout(o)}})})}},FDa=class CSr{constructor(t,r){this.tasks=t,this.options=r,this.options={...CSr.rendererOptions,...this.options,icon:{...__t.icon,...r?.icon??{}},color:{...__t.color,...r?.color??{}}},this.logger=this.options.logger??new OTe({useIcons:!1,toStderr:xAi}),this.logger.options.icon=this.options.icon,this.logger.options.color=this.options.color,this.options.timestamp&&this.logger.options.fields.prefix.unshift(this.options.timestamp)}static{wp(this,"VerboseRenderer")}static nonTTY=!0;static rendererOptions={logTitleChange:!1,pausedTimer:{...ESr,format:wp(()=>X0.yellowBright,"format")}};static rendererTaskOptions;logger;cache={rendererOptions:new Map,rendererTaskOptions:new Map};render(){this.renderer(this.tasks)}end(){}renderer(t){t.forEach(r=>{this.calculate(r),r.once("CLOSED",()=>{this.reset(r)});let n=this.cache.rendererOptions.get(r.id),a=this.cache.rendererTaskOptions.get(r.id);r.on("SUBTASK",o=>{this.renderer(o)}),r.on("STATE",o=>{if(r.hasTitle()){if(o==="STARTED")this.logger.log("STARTED",r.title);else if(o==="COMPLETED"){let l=a.timer;this.logger.log("COMPLETED",r.title,l&&{suffix:{...l,condition:!!r.message?.duration&&l.condition,args:[r.message.duration]}})}}}),r.on("OUTPUT",o=>{this.logger.log("OUTPUT",o)}),r.on("PROMPT",o=>{let l=WTe(o);l&&this.logger.log("PROMPT",l)}),this.options?.logTitleChange!==!1&&r.on("TITLE",o=>{this.logger.log("TITLE",o)}),r.on("MESSAGE",o=>{if(o?.error)this.logger.log("FAILED",o.error);else if(o?.skip)this.logger.log("SKIPPED",o.skip);else if(o?.rollback)this.logger.log("ROLLBACK",o.rollback);else if(o?.retry)this.logger.log("RETRY",r.title,{suffix:o.retry.count.toString()});else if(o?.paused){let l=n?.pausedTimer;this.logger.log("PAUSED",r.title,l&&{suffix:{...l,condition:!!o?.paused&&l.condition,args:[o.paused-Date.now()]}})}})})}calculate(t){if(this.cache.rendererOptions.has(t.id)&&this.cache.rendererTaskOptions.has(t.id))return;let r={...this.options,...t.rendererOptions};this.cache.rendererOptions.set(t.id,r),this.cache.rendererTaskOptions.set(t.id,{...CSr.rendererTaskOptions,timer:r.timer,...t.rendererTaskOptions})}reset(t){this.cache.rendererOptions.delete(t.id),this.cache.rendererTaskOptions.delete(t.id)}},pSr={default:NDa,simple:kDa,verbose:FDa,test:GDa,silent:DDa};function LAi(e){return process.stdout.isTTY===!0||e.nonTTY===!0}wp(LAi,"isRendererSupported");function XQe(e){return typeof e=="string"?pSr[e]??pSr.default:typeof e=="function"?e:pSr.default}wp(XQe,"getRendererClass");function VAi(e){if(Lhe(e?.silentRendererCondition))return{renderer:XQe("silent"),selection:"SILENT"};let t={renderer:XQe(e.renderer),options:e.rendererOptions,selection:"PRIMARY"};return!LAi(t.renderer)||Lhe(e?.fallbackRendererCondition)?{renderer:XQe(e.fallbackRenderer),options:e.fallbackRendererOptions,selection:"SECONDARY"}:t}wp(VAi,"getRenderer");function Lhe(e,...t){return typeof e=="function"?e(...t):e}wp(Lhe,"assertFunctionOrSelf");var ZDa=(0,PAi.default)({circles:!0});function _Sr(e){return ZDa(e)}wp(_Sr,"cloneObject");var LDa=class{static{wp(this,"Concurrency")}concurrency;count;queue;constructor(e){this.concurrency=e.concurrency,this.count=0,this.queue=new Set}add(e){return this.count{let r=wp(()=>t(this.run(e)),"callback");this.queue.add(r)})}flush(){for(let e of this.queue){if(this.count>=this.concurrency)break;this.queue.delete(e),e()}}run(e){this.count++;let t=e(),r=wp(()=>{this.count--,this.flush()},"cleanup");return t.then(r,()=>{this.queue.clear()}),t}};function WAi(e){return new Promise(t=>{setTimeout(t,e)})}wp(WAi,"delay");var VDa=class extends Error{constructor(e,t,r){super(e.message),this.error=e,this.type=t,this.task=r,this.name="ListrError",this.path=r.path,r?.options.collectErrors==="full"&&(this.task=_Sr(r),this.ctx=_Sr(r.listr.ctx)),this.stack=e?.stack}static{wp(this,"ListrError")}path;ctx},BAi=class extends Error{static{wp(this,"ListrRendererError")}},OAi=class extends Error{static{wp(this,"PromptError")}},PDa=class{constructor(e){this.task=e}static{wp(this,"TaskWrapper")}get title(){return this.task.title}set title(e){e=Array.isArray(e)?e:[e],this.task.title$=PTe(e.shift(),...e)}get output(){return this.task.output}set output(e){e=Array.isArray(e)?e:[e],this.task.output$=PTe(e.shift(),...e)}set promptOutput(e){this.task.promptOutput$=e}newListr(e,t){let r;return typeof e=="function"?r=e(this):r=e,new y_t(r,t,this.task)}report(e,t){this.task.options.collectErrors!==!1&&this.task.listr.errors.push(new VDa(e,t,this.task)),this.task.message$={error:e.message??this.task?.title}}skip(e,...t){this.task.state$="SKIPPED",e&&(this.task.message$={skip:e?PTe(e,...t):this.task?.title})}isRetrying(){return this.task.isRetrying()?this.task.retry:{count:0}}prompt(e){return this.task.prompt?this.task.prompt:new e(this.task,this)}stdout(e){return GAi(t=>{switch(e){case"PROMPT":this.promptOutput=t;break;default:this.output=t}})}run(e){return this.task.run(e,this)}},ODa=class extends RAi{static{wp(this,"ListrTaskEventManager")}},MDa=class extends ODa{constructor(e,t,r,n,a){if(super(),this.listr=e,this.task=t,this.options=r,this.rendererOptions=n,this.rendererTaskOptions=a,t.title){let o=Array.isArray(t?.title)?t.title:[t.title];this.title=PTe(o.shift(),...o),this.initialTitle=this.title}this.taskFn=t.task,this.parent=e.parentTask}static{wp(this,"Task")}id=WDa();state="WAITING";subtasks;title;initialTitle;output;retry;message={};prompt;parent;enabled;taskFn;closed;set state$(e){if(this.state=e,this.emit("STATE",e),this.hasSubtasks()&&this.hasFailed())for(let t of this.subtasks)t.state==="STARTED"&&(t.state$="FAILED");this.listr.events.emit("SHOUD_REFRESH_RENDER")}set output$(e){this.output=e,this.emit("OUTPUT",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set promptOutput$(e){this.emit("PROMPT",e),WTe(e)&&this.listr.events.emit("SHOUD_REFRESH_RENDER")}set message$(e){this.message={...this.message,...e},this.emit("MESSAGE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}set title$(e){this.title=e,this.emit("TITLE",e),this.listr.events.emit("SHOUD_REFRESH_RENDER")}get path(){return[...this.listr.path,this.initialTitle]}async check(e){return this.state==="WAITING"&&(this.enabled=await Lhe(this.task?.enabled??!0,e),this.emit("ENABLED",this.enabled),this.listr.events.emit("SHOUD_REFRESH_RENDER")),this.enabled}hasSubtasks(){return this.subtasks?.length>0}hasFinalized(){return this.isCompleted()||this.hasFailed()||this.isSkipped()||this.hasRolledBack()}isPending(){return this.isStarted()||this.isPrompt()||this.hasReset()}isStarted(){return this.state==="STARTED"}isSkipped(){return this.state==="SKIPPED"}isCompleted(){return this.state==="COMPLETED"}hasFailed(){return this.state==="FAILED"}isRollingBack(){return this.state==="ROLLING_BACK"}hasRolledBack(){return this.state==="ROLLED_BACK"}isRetrying(){return this.state==="RETRY"}hasReset(){return this.state==="RETRY"||this.state==="ROLLING_BACK"}isEnabled(){return this.enabled}hasTitle(){return typeof this?.title=="string"}isPrompt(){return this.state==="PROMPT"||this.state==="PROMPT_COMPLETED"}isPaused(){return this.state==="PAUSED"}isClosed(){return this.closed}async pause(e){let t=this.state;this.state$="PAUSED",this.message$={paused:Date.now()+e},await WAi(e),this.state$=t,this.message$={paused:null}}async run(e,t){let r=wp(o=>(o instanceof y_t?(o.options={...this.options,...o.options},o.rendererClass=XQe("silent"),this.subtasks=o.tasks,o.errors=this.listr.errors,this.emit("SUBTASK",this.subtasks),o=o.run(e)):o instanceof Promise?o=o.then(r):DAi(o)?o=new Promise((l,A)=>{o.on("data",f=>{this.output$=f.toString()}),o.on("error",f=>A(f)),o.on("end",()=>l(null))}):NAi(o)&&(o=new Promise((l,A)=>{o.subscribe({next:wp(f=>{this.output$=f},"next"),error:A,complete:l})})),o),"handleResult"),n=Date.now();this.state$="STARTED";let a=await Lhe(this.task?.skip??!1,e);if(a){typeof a=="string"?this.message$={skip:a}:this.hasTitle()?this.message$={skip:this.title}:this.message$={skip:"Skipped task without a title."},this.state$="SKIPPED";return}try{let o=typeof this.task?.retry=="number"&&this.task.retry>0?this.task.retry+1:typeof this.task?.retry=="object"&&this.task.retry.tries>0?this.task.retry.tries+1:1,l=typeof this.task.retry=="object"&&this.task.retry.delay;for(let A=1;A<=o;A++)try{await r(this.taskFn(e,t));break}catch(f){if(A!==o)this.retry={count:A,error:f},this.message$={retry:this.retry},this.title$=this.initialTitle,this.output=void 0,t.report(f,"WILL_RETRY"),this.state$="RETRY",l&&await this.pause(l);else throw f}(this.isStarted()||this.isRetrying())&&(this.message$={duration:Date.now()-n},this.state$="COMPLETED")}catch(o){if(this.prompt instanceof OAi&&(o=this.prompt),this.task?.rollback){t.report(o,"WILL_ROLLBACK");try{this.state$="ROLLING_BACK",await this.task.rollback(e,t),this.message$={rollback:this.title},this.state$="ROLLED_BACK"}catch(l){throw this.state$="FAILED",t.report(l,"HAS_FAILED_TO_ROLLBACK"),this.close(),l}if(this.listr.options?.exitAfterRollback!==!1)throw this.close(),o}else{if(this.state$="FAILED",this.listr.options.exitOnError!==!1&&await Lhe(this.task?.exitOnError,e)!==!1)throw t.report(o,"HAS_FAILED"),this.close(),o;this.hasSubtasks()||t.report(o,"HAS_FAILED_WITHOUT_ERROR")}}finally{this.close()}}close(){this.emit("CLOSED"),this.listr.events.emit("SHOUD_REFRESH_RENDER"),this.complete()}},wAi=class extends RAi{static{wp(this,"ListrEventManager")}},y_t=class{constructor(e,t,r){this.task=e,this.options=t,this.parentTask=r,this.options={concurrent:!1,renderer:"default",fallbackRenderer:"simple",exitOnError:!0,exitAfterRollback:!0,collectErrors:!1,registerSignalListeners:!0,...this.parentTask?.options??{},...t},this.options.concurrent===!0?this.options.concurrent=1/0:typeof this.options.concurrent!="number"&&(this.options.concurrent=1),this.concurrency=new LDa({concurrency:this.options.concurrent}),r&&(this.path=[...r.listr.path,r.title],this.errors=r.listr.errors),this.parentTask?.listr.events instanceof wAi?this.events=this.parentTask.listr.events:this.events=new wAi;let n=VAi({renderer:this.options.renderer,rendererOptions:this.options.rendererOptions,fallbackRenderer:this.options.fallbackRenderer,fallbackRendererOptions:this.options.fallbackRendererOptions,fallbackRendererCondition:this.options?.fallbackRendererCondition,silentRendererCondition:this.options?.silentRendererCondition});this.rendererClass=n.renderer,this.rendererClassOptions=n.options,this.rendererSelection=n.selection,this.add(e??[]),this.options.registerSignalListeners&&(this.boundSignalHandler=this.signalHandler.bind(this),process.once("SIGINT",this.boundSignalHandler).setMaxListeners(0)),(this.options?.forceTTY||process.env.LISTR_FORCE_TTY)&&(process.stdout.isTTY=!0,process.stderr.isTTY=!0),this.options?.forceUnicode&&(process.env.LISTR_FORCE_UNICODE="1")}static{wp(this,"Listr")}tasks=[];errors=[];ctx;events;path=[];rendererClass;rendererClassOptions;rendererSelection;boundSignalHandler;concurrency;renderer;isRoot(){return!this.parentTask}isSubtask(){return!!this.parentTask}add(e){this.tasks.push(...this.generate(e))}async run(e){this.renderer||(this.renderer=new this.rendererClass(this.tasks,this.rendererClassOptions,this.events)),await this.renderer.render(),this.ctx=this.options?.ctx??e??{},await Promise.all(this.tasks.map(t=>t.check(this.ctx)));try{await Promise.all(this.tasks.map(t=>this.concurrency.add(()=>this.runTask(t)))),this.renderer.end(),this.removeSignalHandler()}catch(t){if(this.options.exitOnError!==!1)throw this.renderer.end(t),this.removeSignalHandler(),t}return this.ctx}generate(e){return e=Array.isArray(e)?e:[e],e.map(t=>{let r;return this.rendererSelection==="PRIMARY"?r=t.rendererOptions:this.rendererSelection==="SECONDARY"&&(r=t.fallbackRendererOptions),new MDa(this,t,this.options,this.rendererClassOptions,r)})}async runTask(e){if(await e.check(this.ctx))return new PDa(e).run(this.ctx)}signalHandler(){this.tasks?.forEach(async e=>{e.isPending()&&(e.state$="FAILED")}),this.isRoot()&&(this.renderer.end(new Error("Interrupted.")),process.exit(127))}removeSignalHandler(){this.boundSignalHandler&&process.removeListener("SIGINT",this.boundSignalHandler)}};var JQe=fp.blue(sb.arrowRight),HM=fp.redBright(sb.cross),MTe=fp.yellow(sb.warning);var UQe=(e,t,r)=>`${fp.redBright(`${HM} Validation Error:`)} Invalid value for '${fp.bold(e)}': ${fp.bold(HDa(r))} @@ -2063,7 +2063,7 @@ See https://github.com/okonet/lint-staged#command-line-flags`,qAi=` > git stash list stash@{0}: automatic lint-staged backup > git stash apply --index stash@{0} -`,$_u=fp.redBright(`${HM} Failed to read config from stdin.`),edi=e=>fp.redBright(`${HM} Failed to read config from file "${e}".`),BSr=(e,t)=>`${fp.redBright(`${t} Failed to parse config from file "${e}".`)} +`,e0u=fp.redBright(`${HM} Failed to read config from stdin.`),edi=e=>fp.redBright(`${HM} Failed to read config from file "${e}".`),BSr=(e,t)=>`${fp.redBright(`${t} Failed to parse config from file "${e}".`)} ${t} @@ -2076,21 +2076,21 @@ ${HM} ${e} failed without output (${A}).`);r.quiet||r.output.push(f)}},Eka=async `);throw r.error(BSr(t,o)),new Error(o)}return BBr("Validated config from `%s`:",t),BBr(cLa(e,{compact:!1})),a},DXe=(e,t,r)=>{try{return lLa(e,t,r)}catch(n){throw r.error(BSr(t,n)),n}};var nee=(0,thi.default)("lint-staged:searchConfigs"),qIi=["ls-files","-z","--full-name","-t"],uLa=e=>B0t.includes(ehi.basename(e)),$Ii=e=>e.split("/").length,gLa=(e,t)=>$Ii(e)>$Ii(t)?-1:1,ALa=e=>t=>t.startsWith(wG(e)),rhi=async({configObject:e,configPath:t,cwd:r=process.cwd(),topLevelDir:n=r},a)=>{if(nee("Searching for configuration files..."),e)return nee("Using single direct configuration object..."),{"":DXe(e,"config object",a)};if(t){nee("Using single configuration path...");let{config:C,filepath:b}=await D0t({configPath:t},a);return C?{[t]:DXe(C,b,a)}:{}}let[o,l]=await Promise.all([QZ(qIi,{cwd:n}).then(jQe),QZ([...qIi,"--others","--exclude-standard"],{cwd:n}).then(jQe)]),A=[...o,...l].flatMap(C=>C.startsWith("S ")?[]:[C.replace(/^[HSMRCK?U] /,"")]).filter(uLa).map(C=>wG(ehi.join(n,C))).filter(ALa(r)).sort(gLa);nee("Found possible config files:",A);let f=A.reduce((C,b)=>Object.assign(C,{[b]:null}),{});await Promise.all(Object.keys(f).map(C=>D0t({configPath:C},a).then(({config:b,filepath:E})=>{b&&(C!==E&&nee('Config file "%s" resolved to "%s"',C,E),f[C]=DXe(b,E,a))})));let I=Object.entries(f).filter(([,C])=>!!C).reduce((C,[b,E])=>({...C,[b]:E}),{});if(!Object.keys(I).length){nee('Could not find config files inside "%s"',r);let{config:C,filepath:b}=await D0t({cwd:r},a);C?(nee('Found parent configuration file from "%s"',b),I[b]=DXe(C,b,a)):nee('Could not find parent configuration files from "%s"',r)}return nee("Found %d config files",Object.keys(I).length),I};var xXe=(0,nhi.default)("lint-staged:runAll"),k0t=e=>Object.assign(new Error("lint-staged failed"),{ctx:e}),ihi=async({allowEmpty:e=!1,concurrent:t=!0,configObject:r,configPath:n,cwd:a,debug:o=!1,diff:l,diffFilter:A,maxArgLength:f,quiet:I=!1,relative:C=!1,shell:b=!1,stash:E=l===void 0,hidePartiallyStaged:N=E,verbose:B=!1},F=console)=>{xXe("Running all linter scripts...");let Q=!!a;a=Q?kXe.resolve(a):process.cwd(),xXe("Using working directory `%s`",a);let X=R_t({quiet:I}),{topLevelDir:ae,gitConfigDir:ne}=await jdi(a);if(!ae)throw I||X.output.push(MAi),X.errors.add(Adi),k0t(X);let ce=await QZ(["log","-1"],{cwd:ae}).then(()=>!0).catch(()=>!1);X.shouldBackup=ce&&E,!X.shouldBackup&&!I&&F.warn(UAi(ce,l)),X.shouldHidePartiallyStaged=N,!X.shouldHidePartiallyStaged&&!I&&F.warn(KAi(ce&&E,l));let fe=await cdi({cwd:ae,diff:l,diffFilter:A});if(!fe)throw I||X.output.push(HAi),X.errors.add(xSr),k0t(X,xSr);if(xXe(`Loaded list of staged files in git: %O`,fe),fe.length===0)return I||X.output.push(XAi),X;let ue=await rhi({configObject:r,configPath:n,cwd:a,topLevelDir:ae},F),de=Object.keys(ue).length;if(de===0)throw X.errors.add(qQe),k0t(X,qQe);let be=await ydi({configs:ue,files:fe,singleConfigMode:r||n!==void 0}),Se=de>1,De=!1,k={ctx:X,exitOnError:!1,registerSignalListeners:!1,...adi({debug:o,quiet:I},F)},et=0,ct=[],Me=new Set;for(let[Yt,{config:Tr,files:Nr}]of Object.entries(be)){let er=Yt?wG(kXe.relative(a,Yt)):"Config object",vt=RSr({baseDir:ae,files:Nr,maxArgLength:f,relative:C}),xt=Se&&!Q?kXe.dirname(Yt):a,Zr=vt.length;Zr>1&&xXe("Chunked staged files from `%s` into %d part",Yt,Zr);for(let[qt,Xt]of vt.entries()){let lr=await Promise.all(sdi({config:Tr,cwd:xt,files:Xt,relative:C}).map(cr=>Udi({commands:cr.commands,cwd:xt,files:cr.fileList,topLevelDir:ae,shell:b,verbose:B}).then(Ar=>{cr.fileList.forEach(_n=>{let ke=kXe.isAbsolute(_n)?_n:wG(kXe.join(xt,_n));Me.add(ke)}),De=De||Ar.some(_n=>_n.command==="git add");let qr=cr.fileList.length;return{title:`${cr.pattern}${fp.dim(` \u2014 ${qr} ${qr===1?"file":"files"}`)}`,task:async(_n,ke)=>ke.newListr(Ar,{concurrent:!1,exitOnError:!0}),skip:()=>qr===0?`${cr.pattern}${fp.dim(" \u2014 no files")}`:!1}})));et+=lr.length,ct.push({title:`${er}${fp.dim(` \u2014 ${Xt.length} ${Xt.length>1?"files":"file"}`)}`+(Zr>1?fp.dim(` (chunk ${qt+1}/${Zr})...`):""),task:(cr,Ar)=>Ar.newListr(lr,{concurrent:t,exitOnError:!0}),skip:()=>X.errors.has(QX)?zAi:lr.every(cr=>cr.skip())?`${er}${fp.dim(" \u2014 no tasks to run")}`:!1})}}if(De&&!I&&F.warn(jAi),ct.every(Yt=>Yt.skip()))return I||X.output.push(JAi),X;let je=RSr({baseDir:a,files:Array.from(Me),maxArgLength:f,relative:!1}),St=new w_t({allowEmpty:e,gitConfigDir:ne,topLevelDir:ae,matchedFileChunks:je,diff:l,diffFilter:A}),At=new y_t([{title:"Preparing lint-staged...",task:Yt=>St.prepare(Yt)},{title:"Hiding unstaged changes to partially staged files...",task:Yt=>St.hideUnstagedChanges(Yt),enabled:PSr},{title:`Running tasks for ${l?"changed":"staged"} files...`,task:(Yt,Tr)=>Tr.newListr(ct,{concurrent:t}),skip:()=>ct.every(Yt=>Yt.skip())},{title:"Applying modifications from tasks...",task:Yt=>St.applyModifications(Yt),skip:Zdi},{title:"Restoring unstaged changes to partially staged files...",task:Yt=>St.restoreUnstagedChanges(Yt),enabled:PSr,skip:Ldi},{title:"Reverting to original state because of errors...",task:Yt=>St.restoreOriginalState(Yt),enabled:Vdi,skip:Pdi},{title:"Cleaning up temporary files...",task:Yt=>St.cleanup(Yt),enabled:Wdi,skip:Odi}],k);if(xXe("Set max event listeners to the number of tasks: %i",et),X.events.setMaxListeners(et),await At.run(),X.errors.size>0)throw k0t(X);return X};var ahi=Nt(uT(),1);import{constants as shi}from"node:fs";import ohi from"node:fs/promises";import dLa from"node:path";var x0t=(0,ahi.default)("lint-staged:validateOptions"),chi=async(e={},t)=>{if(x0t("Validating options..."),typeof e.cwd=="string")try{let r=dLa.resolve(e.cwd);await ohi.access(r,shi.F_OK)}catch(r){throw x0t("Failed to validate options: %o",e),t.error(vSr("cwd",e.cwd,r.message)),GSr}if(typeof e.shell=="string")try{await ohi.access(e.shell,shi.X_OK)}catch(r){throw x0t("Failed to validate options: %o",e),t.error(vSr("shell",e.shell,r.message)),GSr}x0t("Validated options: %o",e)};var wBr=(0,lhi.default)("lint-staged"),pLa=()=>{switch(process.platform){case"darwin":return 262144;case"win32":return 8191;default:return 131072}},fLa=async({allowEmpty:e=!1,concurrent:t=!0,config:r,configPath:n,cwd:a,debug:o=!1,diff:l,diffFilter:A,maxArgLength:f=pLa()/2,quiet:I=!1,relative:C=!1,shell:b=!1,stash:E=l===void 0,hidePartiallyStaged:N=E,verbose:B=!1}={},F=console)=>{let Q=await QZ(["version","--build-options"],{cwd:a});wBr("%s",Q);let X={allowEmpty:e,concurrent:t,configObject:r,configPath:n,cwd:a,debug:o,diff:l,diffFilter:A,maxArgLength:f,quiet:I,relative:C,shell:b,stash:E,hidePartiallyStaged:N,verbose:B};await chi(X,F),wBr("Unset GIT_LITERAL_PATHSPECS (was `%s`)",process.env.GIT_LITERAL_PATHSPECS),delete process.env.GIT_LITERAL_PATHSPECS;try{let ae=await ihi(X,F);return wBr("Tasks were executed successfully!"),wSr(ae,F),!0}catch(ae){if(ae?.ctx?.errors){let{ctx:ne}=ae;return ne.errors.has(qQe)?F.error(QAi):ne.errors.has(Rae)?F.warn(qAi):ne.errors.has(QX)&&!ne.errors.has(v_t)&&(F.error(Tae),ne.shouldBackup&&F.error($Ai)),wSr(ne,F),!1}throw ae}},uhi=fLa;var ILa=()=>{try{return ghi("git rev-parse --show-toplevel",{encoding:"utf-8"}).trim()}catch{return process.cwd()}},hLa=e=>JSON.stringify(e),mLa=()=>process.env.npm_execpath||process.argv[1]||"yarn",CLa=(e=mLa())=>{let t=r=>`${hLa(e)} ${r}`;return{"*.{yml,yaml,json,graphql,md}":t("format"),"*.{js,mjs,cjs,jsx,ts,tsx}":[t("format"),t("lint")],"*.{ts,tsx}":t("typecheck"),"*.{test,spec}.{ts,tsx}":t("test unit")}},G0t=class extends Ahi.BaseCommand{static paths=[["commit","staged"]];args=Su.Rest({required:0});async execute(){try{let t=8190;try{let n=parseInt(ghi("getconf ARG_MAX",{encoding:"utf-8"}),10);t=Math.floor(n*.5)}catch{}return await uhi({config:CLa(),cwd:ILa(),maxArgLength:t})?0:1}catch{return 1}}};var dhi={commands:[e_t,BCt,G0t]};var NBr={};sI(NBr,{SetVersionCommand:()=>GXe,default:()=>_hi});var mhi=Nt(el(),1),Chi=Nt(Bn(),1);$c();import{access as _La}from"node:fs/promises";import{writeFile as yLa}from"node:fs/promises";import{dirname as bLa}from"node:path";import{join as fhi}from"node:path";var ELa="package.json",SLa="yarn.lock",vLa="Package manifest was not found in current directory or its ancestors",phi="/unc/",BLa=/^\/([A-Za-z]:)(?=\/|$)/,wLa=/^([A-Za-z]:)(?=\/|$)/,TLa=e=>{if(!e.toLowerCase().startsWith(phi))return null;let[t,r,...n]=e.slice(phi.length).split("/");if(!t||!r)return null;let a=n.length>0?`/${n.join("/")}`:"";return[t,r,a]},RLa=e=>{if(!e.startsWith("\\\\")&&!e.startsWith("//"))return null;let[t,r,...n]=e.slice(2).replace(/\\/g,"/").split("/");if(!t||!r)return null;let a=n.length>0?`/${n.join("/")}`:"";return[t,r,a]},F0t=(e,t=process.platform)=>{if(t!=="win32")return e;let r=TLa(e);if(r){let[n,a,o]=r;return`\\\\${n}\\${a}${o.replace(/\//g,"\\")}`}return e.replace(BLa,"$1").replace(/\//g,"\\")},NLa=(e,t=process.platform)=>{if(t!=="win32")return e;let r=RLa(e);if(r){let[n,a,o]=r;return`/unc/${n}/${a}${o.replace(/\\/g,"/")}`}return e.replace(/\\/g,"/").replace(wLa,"/$1")},Ihi=async e=>{try{return await _La(e),!0}catch{return!1}},RBr=async e=>{let t=F0t(e);if(await Ihi(fhi(t,ELa)))return e;let r=NLa(bLa(t));if(r===e)throw new Error(vLa);return RBr(r)},hhi=async e=>{let t=fhi(F0t(e),SLa);await Ihi(t)||await yLa(t,"")};var GXe=class extends mhi.BaseCommand{static paths=[["set","version","atls"]];static usage=_C.Usage({description:"lock the Yarn version used by the project",details:"\n This command will get latest Atlantis bundle from [Atlantis Raijin repo](https://github.com/atls/raijin) and bump `@atls/code-runtime` dependency\n "});async execute(){let t=await RBr(this.context.cwd),r=process.cwd();await hhi(t);try{process.chdir(F0t(t));let n=["set","version"];n.push("https://raw.githubusercontent.com/atls/raijin/master/yarn/cli/dist/yarn.mjs");let a=await this.cli.run(n,{cwd:t}),o=["up","@atls/code-runtime"],l=await this.cli.run(o,{cwd:t}),A=await Chi.Configuration.find(t,this.context.plugins);return await A.triggerHook(f=>f.afterYarnVersionSet,A,{...this.context,cwd:t}),a||l}finally{process.chdir(r)}}};var _hi={commands:[GXe]};var nTr={};sI(nTr,{WorkspaceExportCommand:()=>l4e,default:()=>Y_i});var V_i=Nt(el(),1),P_i=Nt(el(),1),W_i=Nt(Bn(),1),O_i=Nt(Bn(),1),M_i=Nt(Bn(),1),H_i=Nt(Bn(),1);$c();var Z0t=Nt(no(),1),FXe=Nt(no(),1);var yhi=async(e,t,r)=>{let n=e.configuration.get("rcFilename"),a=FXe.ppath.join(e.cwd,n);await Z0t.xfs.existsPromise(a)&&(r.reportInfo(null,n),await Z0t.xfs.copyPromise(FXe.ppath.join(t,n),a,{overwrite:!0}))},bhi=async(e,t,r)=>{let n=e.configuration.get("yarnPath");if(!n)throw new Error("`yarnPath` is not set");let a=FXe.ppath.relative(e.cwd,n),o=FXe.ppath.join(t,a);r.reportInfo(null,a),await Z0t.xfs.copyPromise(o,n,{overwrite:!0})};var SRe={};sI(SRe,{IMAGE_PACK_NODE_LINKER:()=>rTr,pack:()=>FOa,resolveSupportedArchitectures:()=>L_i});var tTr=Nt(Bn(),1),D_i=Nt(Bn(),1),k_i=Nt(Bn(),1),x_i=Nt(no(),1),G_i=Nt(Bn(),1),F_i=Nt(no(),1),Z_i=Nt($he(),1);import{arch as R_i}from"node:os";var cCi=Nt(Bn(),1),lCi=Nt(Bn(),1),uCi=Nt(no(),1),gCi=Nt(no(),1),ACi=Nt(no(),1),hwr=Nt(Bn(),1),mwr=Nt(no(),1),dCi=Nt(no(),1),oyt=class e extends cCi.Cache{nodeLinker;parentCache;parentMirror=new Map;workspaceMutexes=new Map;static async find(t,r){let n=t.get("nodeLinker"),a=new e(t.get("cacheFolder"),{configuration:t,nodeLinker:n,parentCache:r});return await a.setup(),a}constructor(t,{configuration:r,nodeLinker:n,parentCache:a}){super(t,{configuration:r}),this.nodeLinker=n,this.parentCache=a}getLocatorMirrorPath(t){return this.parentMirror.get(hwr.structUtils.slugifyLocator(t))??null}async setup(){await super.setup();let t=await dCi.xfs.readdirPromise(this.parentCache.cwd,{withFileTypes:!0});for(let r of t){let n;r.isDirectory()||!(n=r.name.match(/^(.*)-[a-f\d]+\.zip$/i))||this.parentMirror.set(n[1],mwr.ppath.join(this.parentCache.cwd,r.name))}}async fetchPackageFromCache(t,r,{loader:n}){let a=new gCi.NodeFS,o=async()=>{let l=mwr.ppath.resolve(this.cwd,"../workspaces",hwr.structUtils.stringifyIdent(t)),f=(async()=>{if(!await a.existsPromise(l)){let C=await n();await a.copyPromise(l,ACi.PortablePath.root,{baseFs:C}),C.discardAndClose()}return l})();this.workspaceMutexes.set(t.locatorHash,f);try{return await f}finally{this.workspaceMutexes.delete(t.locatorHash)}};if(t.reference.startsWith(lCi.WorkspaceResolver.protocol)){for(let A;A=this.workspaceMutexes.get(t.locatorHash);)await A;let l=await o();return[new uCi.JailFS(l,{baseFs:a}),()=>{},null]}else return await super.fetchPackageFromCache(t,r,{loader:n})}};var b_i=Nt(Bn(),1),E_i=Nt(Bn(),1);var S_i=Nt(Bn(),1),zwr=Nt(no(),1),ame=Nt(no(),1),qwr=Nt($he(),1),ROa=Nt(f_i(),1);var Uwr=Nt(Bn(),1),myt=class{resolvers;constructor(t){this.resolvers=t.filter(r=>r)}supportsDescriptor(t,r){return!!this.tryResolverByDescriptor(t,r)}supportsLocator(t,r){return!!this.tryResolverByLocator(t,r)}shouldPersistResolution(t,r){return this.getResolverByLocator(t,r).shouldPersistResolution(t,r)}bindDescriptor(t,r,n){return this.getResolverByDescriptor(t,n).bindDescriptor(t,r,n)}getResolutionDependencies(t,r){return this.getResolverByDescriptor(t,r).getResolutionDependencies(t,r)}async getCandidates(t,r,n){return await this.getResolverByDescriptor(t,n).getCandidates(t,r,n)}async getSatisfying(t,r,n,a){return this.getResolverByDescriptor(t,a).getSatisfying(t,r,n,a)}async resolve(t,r){return await this.getResolverByLocator(t,r).resolve(t,r)}tryResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));return n||null}getResolverByDescriptor(t,r){let n=this.resolvers.find(a=>a.supportsDescriptor(t,r));if(!n)throw new Error(`${Uwr.structUtils.prettyDescriptor(r.project.configuration,t)} isn't supported by any available resolver`);return n}tryResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));return n||null}getResolverByLocator(t,r){let n=this.resolvers.find(a=>a.supportsLocator(t,r));if(!n)throw new Error(`${Uwr.structUtils.prettyLocator(r.project.configuration,t)} isn't supported by any available resolver`);return n}};var h_i=Nt(Bn(),1),Cyt=Nt(Bn(),1),m_i=Nt(UC(),1),I_i=/^(?!v)[a-z0-9._-]+$/i,_yt=class{supportsDescriptor(t,r){return!!(h_i.semverUtils.validRange(t.range)||I_i.test(t.range))}supportsLocator(t,r){return!!(m_i.default.valid(t.reference)||I_i.test(t.reference))}shouldPersistResolution(t,r){return r.resolver.shouldPersistResolution(this.forwardLocator(t,r),r)}bindDescriptor(t,r,n){return n.resolver.bindDescriptor(this.forwardDescriptor(t,n),r,n)}getResolutionDependencies(t,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(t,r),r)}async getCandidates(t,r,n){return n.resolver.getCandidates(this.forwardDescriptor(t,n),r,n)}async getSatisfying(t,r,n,a){return a.resolver.getSatisfying(this.forwardDescriptor(t,a),r,n,a)}async resolve(t,r){let n=await r.resolver.resolve(this.forwardLocator(t,r),r);return Cyt.structUtils.renamePackage(n,t)}forwardDescriptor(t,r){return Cyt.structUtils.makeDescriptor(t,`${r.project.configuration.get("defaultProtocol")}${t.range}`)}forwardLocator(t,r){return Cyt.structUtils.makeLocator(t,`${r.project.configuration.get("defaultProtocol")}${t.reference}`)}};var yyt=class e{static protocol="virtual:";static isVirtualDescriptor(t){return!!t.range.startsWith(e.protocol)}static isVirtualLocator(t){return!!t.reference.startsWith(e.protocol)}supportsDescriptor(t,r){return e.isVirtualDescriptor(t)}supportsLocator(t,r){return e.isVirtualLocator(t)}shouldPersistResolution(t,r){return!1}bindDescriptor(t,r,n){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(t,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(t,r,n){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(t,r,n,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(t,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}};var Kwr=Nt(Bn(),1),C_i=Nt(Bn(),1),__i=Nt(no(),1);var byt=class extends C_i.WorkspaceFetcher{constructor(r){super();this.originalProject=r}getLocalPath(r,n){return super.getLocalPath(r,this.rewriteOpts(r,n))}async fetch(r,n){if(r.reference.slice(Kwr.WorkspaceResolver.protocol.length)===".")return await super.fetch(r,n);let a=n.checksums.get(r.locatorHash)||null,[o,l]=await n.cache.fetchPackageFromCache(r,a,{loader:()=>this.packWorkspace(r)});return{packageFs:o,releaseFs:l,localPath:this.getLocalPath(r,n),prefixPath:__i.PortablePath.dot}}async packWorkspace(r){let n=this.originalProject.getWorkspaceByLocator(r);return await y_i(n,{compressionLevel:this.originalProject.configuration.get("compressionLevel"),stripComponents:1})}rewriteOpts(r,n){return r.reference.slice(Kwr.WorkspaceResolver.protocol.length)==="."?n:{...n,project:this.originalProject}}};var jwr=Nt(Bn(),1),Eyt=Nt(Bn(),1),Syt=class extends Eyt.WorkspaceResolver{constructor(r){super();this.originalProject=r}supportsDescriptor(r,n){return super.supportsDescriptor(r,this.rewriteOpts(r,n))}supportsLocator(r,n){return super.supportsLocator(r,this.rewriteOpts(r,n))}shouldPersistResolution(r,n){return super.shouldPersistResolution(r,this.rewriteOpts(r,n))}bindDescriptor(r,n,a){return super.bindDescriptor(r,n,this.rewriteOpts(r,a))}getResolutionDependencies(r,n){return super.getResolutionDependencies(r,this.rewriteOpts(r,n))}async getCandidates(r,n,a){return await super.getCandidates(r,n,this.rewriteOpts(r,a))}async getSatisfying(r,n,a){return await super.getSatisfying(r,n,this.rewriteOpts(r,a))}async resolve(r,n){let a=r.reference.slice(Eyt.WorkspaceResolver.protocol.length),{project:o}=this.rewriteOpts(r,n),l=o.getWorkspaceByCwd(a);return{...r,version:l.manifest.version||"0.0.0",languageName:"unknown",linkType:a==="."?jwr.LinkType.SOFT:jwr.LinkType.HARD,dependencies:l.manifest.dependencies,peerDependencies:l.manifest.peerDependencies,dependenciesMeta:l.manifest.dependenciesMeta,peerDependenciesMeta:l.manifest.peerDependenciesMeta,bin:l.manifest.bin}}rewriteOpts(r,n){return("descriptorHash"in r?r.range:r.reference).slice(Eyt.WorkspaceResolver.protocol.length)==="."?n:{...n,project:this.originalProject}}};var v_i=e=>{let t=[];for(let r of e.configuration.plugins.values())for(let n of r.fetchers||[])t.push(new n);return new E_i.MultiFetcher([new b_i.VirtualFetcher,new byt(e),...t])},B_i=e=>{let t=[];for(let r of e.configuration.plugins.values())for(let n of r.resolvers||[])t.push(new n);return new myt([new yyt,new Syt(e),new _yt,...t])};var w_i=async e=>{let t=await ame.xfs.mktempPromise(),r=await qwr.packUtils.genPackStream(e),n=zwr.ppath.join(t,"package.tgz"),a=ame.xfs.createWriteStream(n);return r.pipe(a),await new Promise(o=>{a.on("finish",o)}),ame.xfs.readFilePromise(n)},y_i=async(e,t)=>await ame.xfs.mktempPromise(async r=>{let n=await qwr.packUtils.genPackStream(e),a=zwr.ppath.join(r,"package.tgz"),o=ame.xfs.createWriteStream(a);n.pipe(o),await new Promise(A=>{o.on("finish",A)});let l=await ame.xfs.readFilePromise(a);return await S_i.tgzUtils.convertToZip(l,t)});var $wr=Nt(no(),1),eTr=Nt(no(),1),T_i=async e=>{let t=$wr.ppath.join(e,".yarn","releases");if(!await eTr.xfs.existsPromise(t))return;let r=(await eTr.xfs.readdirPromise(t)).sort().find(n=>n.endsWith(".cjs")||n.endsWith(".mjs"));if(r)return $wr.ppath.join(".yarn","releases",r)};var NOa="linux",DOa="glibc",rTr="pnp",kOa={386:"ia32",amd64:"x64",mips64le:"mips64el",ppc64le:"ppc64"},xOa={windows:"win32"},N_i=e=>{if(e)return kOa[e]??e},GOa=e=>xOa[e]??e,L_i=e=>{let[t,r]=e?.split("/").slice(0,2)??[],n=GOa(t||NOa);return new Map([["os",[n]],["cpu",[N_i(r)??N_i(R_i())??R_i()]],["libc",n==="linux"?[DOa]:[]]])},FOa=async(e,t,r,n,a,o={})=>{process.env.IMAGE_PACK=!0;let l=await k_i.Cache.find(e,{immutable:!0});await t.restoreInstallState(),await Z_i.packUtils.prepareForPack(r,{report:n},async()=>{r.manifest.devDependencies.clear();let A=new x_i.CwdFS(a),f=await w_i(r);await G_i.tgzUtils.extractArchiveTo(f,A,{stripComponents:1}),await yhi(t,a,n),t.configuration.get("yarnPath")&&await bhi(t,a,n);let I=tTr.Configuration.create(a,a,e.plugins);I.values.set("compressionLevel",t.configuration.get("compressionLevel")),I.values.set("enableGlobalCache",!1),I.values.set("enableMirror",!1),I.values.set("globalFolder",e.get("globalFolder")),I.values.set("nodeLinker",rTr),I.values.set("pnpEnableEsmLoader",e.get("pnpEnableEsmLoader")),o.platform&&I.values.set("supportedArchitectures",L_i(o.platform)),I.values.set("cacheFolder",F_i.ppath.join(a,".yarn/packages")),I.values.set("preferAggregateCacheInfo",!0),await tTr.Configuration.updateConfiguration(a,{cacheFolder:".yarn/packages",compressionLevel:I.get("compressionLevel"),enableGlobalCache:I.get("enableGlobalCache"),enableNetwork:I.get("enableNetwork"),enableMirror:I.get("enableMirror"),globalFolder:".yarn/berry",nodeLinker:rTr,yarnPath:await T_i(a)}),await I.getPackageExtensions();let{project:C,workspace:b}=await D_i.Project.find(I,a);if(!b)throw new Error("Workspace not found");b.manifest.dependencies=r.manifest.dependencies,b.manifest.resolutions=t.topLevelWorkspace.manifest.resolutions,b.manifest.devDependencies.clear(),await C.install({cache:await oyt.find(I,l),fetcher:v_i(t),resolver:B_i(t),persistProject:!0,report:n})})};var ZOa=Nt($he(),1);var l4e=class extends V_i.BaseCommand{static paths=[["export"]];destination=Su.String("-d,--destination",{required:!0});async execute(){let t=await W_i.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await O_i.Project.find(t,this.context.cwd);if(!n)throw new P_i.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await M_i.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{await SRe.pack(t,r,n,o,this.destination),o.reportInfo(null,`Workspace ${n.manifest.name?H_i.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} exported to ${this.destination}`)})).exitCode()}};var Y_i={commands:[l4e]};var kkr={};sI(kkr,{FormatCommand:()=>tUe,default:()=>MNi});var VNi=Nt(el(),1),PNi=Nt(Bn(),1),WNi=Nt(Bn(),1);$c();var ONi=Nt(Al(),1);var xyt=Nt(Al(),1),i0i=Nt(Al(),1);var vyt=class{constructor(t){this.frames=t}get topFrame(){return this.frames.find(t=>t.file)}};var Q_i=Nt(Fpt(),1);var X_i=e=>{let t=e.split(` -`),r=process.cwd(),n=new Q_i.default({cwd:r}),a=t.reduce((o,l)=>{let A=n.parseLine(l.trim());return A&&o.push(A),o},[]);return new vyt(a)};var n0i=Nt(Al(),1),wRe=Nt(Al(),1);var Dyt=Nt(Ec(),1);var e0i=Nt(Al(),1),Ryt=Nt(Ec(),1);import{basename as POa}from"node:path";import{isAbsolute as WOa}from"node:path";import{relative as OOa}from"node:path";var sTr=Nt(Ec(),1),Tyt=Nt(Al(),1),lme=Nt(mTe(),1);var yy="\x1B[",u4e="\x1B]",vRe="\x07",Byt=";",J_i=process.env.TERM_PROGRAM==="Apple_Terminal",SC={};SC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?yy+(e+1)+"G":yy+(t+1)+";"+(e+1)+"H"};SC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=yy+-e+"D":e>0&&(r+=yy+e+"C"),t<0?r+=yy+-t+"A":t>0&&(r+=yy+t+"B"),r};SC.cursorUp=(e=1)=>yy+e+"A";SC.cursorDown=(e=1)=>yy+e+"B";SC.cursorForward=(e=1)=>yy+e+"C";SC.cursorBackward=(e=1)=>yy+e+"D";SC.cursorLeft=yy+"G";SC.cursorSavePosition=J_i?"\x1B7":yy+"s";SC.cursorRestorePosition=J_i?"\x1B8":yy+"u";SC.cursorGetPosition=yy+"6n";SC.cursorNextLine=yy+"E";SC.cursorPrevLine=yy+"F";SC.cursorHide=yy+"?25l";SC.cursorShow=yy+"?25h";SC.eraseLines=e=>{let t="";for(let r=0;r[u4e,"8",Byt,Byt,t,vRe,e,u4e,"8",Byt,Byt,vRe].join("");SC.image=(e,t={})=>{let r=`${u4e}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+vRe};SC.iTerm={setCwd:(e=process.cwd())=>`${u4e}50;CurrentDir=${e}${vRe}`,annotation:(e,t={})=>{let r=`${u4e}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+vRe}};var U_i=SC;var wyt=Nt(z_i(),1);function cme(e,t,{target:r="stdout",...n}={}){return wyt.default[r]?U_i.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}cme.isSupported=wyt.default.stdout;cme.stderr=(e,t,r={})=>cme(e,t,{target:"stderr",...r});cme.stderr.isSupported=wyt.default.stderr;var q_i=({children:e,url:t,fallback:r=!0})=>sTr.default.createElement(Tyt.Transform,{transform:n=>cme(n,t,{fallback:r})},sTr.default.createElement(Tyt.Text,null,e));q_i.propTypes={children:lme.default.oneOfType([lme.default.arrayOf(lme.default.node),lme.default.node]).isRequired,url:lme.default.string.isRequired,fallback:lme.default.bool};var $_i=q_i;var Nyt=Nt(Pc(),1),t0i=({url:e,cwd:t=process.cwd(),column:r=0,line:n=0})=>{let a=(0,Ryt.useMemo)(()=>{try{return new URL(e).pathname}catch{return e}},[e]),o=(0,Ryt.useMemo)(()=>WOa(a)?OOa(t,a):a,[a]),l=(0,Ryt.useMemo)(()=>o.includes("/node_modules/")?POa(o):o,[o]);return(0,Nyt.jsx)($_i,{url:e,children:(0,Nyt.jsxs)(e0i.Text,{color:"gray",children:[l,":",n,":",r]})})};import{readFileSync as MOa}from"node:fs";import{fileURLToPath as HOa}from"node:url";var r0i=e=>{if(e.sourceMap)return e.sourceMap.payload.sourcesContent[0];if(e.file)try{return MOa(e.file.startsWith("file:/")?HOa(new URL(e.file)):e.file,"utf-8")}catch{return null}return null};var ej=Nt(Pc(),1),kyt=({children:e,cwd:t})=>{let r=(0,Dyt.useMemo)(()=>X_i(e),[e]),n=(0,Dyt.useMemo)(()=>r.topFrame||r.frames.at(0),[r]),a=(0,Dyt.useMemo)(()=>n?r0i(n):null,[n]);return(0,ej.jsxs)(wRe.Box,{flexDirection:"column",flexGrow:1,children:[!!a&&!!r.topFrame?.line&&(0,ej.jsx)(wRe.Box,{marginBottom:1,children:(0,ej.jsx)(d8,{line:r.topFrame.line,column:r.topFrame.column,children:a})}),r.frames.map(o=>(0,ej.jsxs)(wRe.Box,{flexDirection:"row",children:[(0,ej.jsx)(wRe.Box,{flexBasis:"30%",children:(0,ej.jsx)(n0i.Text,{children:o.function})}),(0,ej.jsx)(wRe.Box,{flexBasis:"70%",justifyContent:"flex-end",children:!!o.file&&(0,ej.jsx)(t0i,{cwd:t,url:o.file,line:o.line,column:o.column})})]},OW()))]})};var zae=Nt(Pc(),1),YOa=({children:e})=>e?(0,zae.jsx)(xyt.Box,{marginBottom:1,children:(0,zae.jsx)(i0i.Text,{bold:!0,color:"red",children:e})}):null,Fk=({error:e,cwd:t})=>(0,zae.jsxs)(xyt.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,children:[(0,zae.jsx)(YOa,{children:e.message}),!!e.stack&&(0,zae.jsx)(xyt.Box,{children:(0,zae.jsx)(kyt,{cwd:t,children:e.stack})})]});var m4e=Nt(Al(),1),Y0i=Nt(Ec(),1),Q0i=Nt(Ec(),1);var aTr=Nt(Al(),1),cTr=Nt(Ec(),1);var A4e=Nt(Ec(),1),C3a=Nt(oTr(),1);var c0i={info:"blue",success:"green",error:"red",warning:"yellow"},i3a={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:c0i[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:c0i[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=kI.info),e==="success"&&(t=kI.tick),e==="error"&&(t=kI.cross),e==="warning"&&(t=kI.warning),{icon:t}}},l0i=i3a;var s3a={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},u0i=s3a;var o3a={styles:{input:({isFocused:e})=>({dimColor:!e})}},g0i=o3a;var a3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},A0i=a3a;var c3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},d0i=c3a;var l3a={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:kI.square,remainingCharacter:kI.squareLightShade})},p0i=l3a;var u3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},f0i=u3a;var g3a={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},I0i=g3a;var A3a={success:"green",error:"red",warning:"yellow",info:"blue"},d3a={success:kI.tick,error:kI.cross,warning:kI.warning,info:kI.info},p3a={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:A3a[e]}),message:()=>({})},config:({variant:e})=>({icon:d3a[e]})},h0i=p3a;var f3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:kI.line})},m0i=f3a;var I3a={styles:{value:()=>({})}},C0i=I3a;var h3a={styles:{value:()=>({})}},_0i=h3a;var m3a={styles:{value:()=>({})}},y0i=m3a;var _3a={components:{Alert:l0i,Badge:u0i,ConfirmInput:g0i,MultiSelect:A0i,OrderedList:d0i,ProgressBar:p0i,Select:f0i,Spinner:I0i,StatusMessage:h0i,UnorderedList:m0i,TextInput:C0i,EmailInput:_0i,PasswordInput:y0i}},y3a=(0,A4e.createContext)(_3a);var xS=e=>(0,A4e.useContext)(y3a).components[e];function RG({children:e,color:t="magenta"}){let{styles:r}=xS("Badge"),n=e;return typeof e=="string"&&(n=e.toUpperCase()),cTr.default.createElement(aTr.Text,{...r.container({color:t})}," ",cTr.default.createElement(aTr.Text,{...r.label()},n)," ")}var b3a=Nt(Ec(),1),b0i=Nt(Al(),1);var B0i=Nt(Al(),1),cee=Nt(Ec(),1);var p4e=Nt(Al(),1),RRe=Nt(Ec(),1);var E0i=Nt(Ec(),1);var d4e=kI.line;var Gyt=(0,E0i.createContext)({marker:d4e});function S0i({children:e}){let{marker:t}=(0,RRe.useContext)(Gyt),{styles:r}=xS("UnorderedList");return RRe.default.createElement(p4e.Box,{...r.listItem()},RRe.default.createElement(p4e.Text,{...r.marker()},t),RRe.default.createElement(p4e.Box,{...r.content()},e))}var v0i=Nt(Ec(),1),lTr=(0,v0i.createContext)({depth:0});function E3a({children:e}){let{depth:t}=(0,cee.useContext)(lTr),{styles:r,config:n}=xS("UnorderedList"),a=(0,cee.useMemo)(()=>({depth:t+1}),[t]),o=(0,cee.useMemo)(()=>{let{marker:l}=n();return typeof l=="string"?{marker:l}:Array.isArray(l)?{marker:l[t]??l.at(-1)??d4e}:{marker:d4e}},[n,t]);return cee.default.createElement(lTr.Provider,{value:a},cee.default.createElement(Gyt.Provider,{value:o},cee.default.createElement(B0i.Box,{...r.list()},e)))}E3a.Item=S0i;var w3a=Nt(Ec(),1),T0i=Nt(Al(),1);var S3a=Nt(Ec(),1),w0i=Nt(Al(),1);var f4e=Nt(Ec(),1);var B3a=Nt(Al(),1);var ume=Nt(Ec(),1),gme=Nt(Al(),1);function JM({value:e}){let[t,r]=(0,ume.useState)(0),[n,a]=(0,ume.useState)(null);if(n){let C=(0,gme.measureElement)(n);C.width!==t&&r(C.width)}let o=Math.min(100,Math.max(0,e)),l=Math.round(o/100*t),A=t-l,{styles:f,config:I}=xS("ProgressBar");return ume.default.createElement(gme.Box,{ref:a,...f.container()},l>0&&ume.default.createElement(gme.Text,{...f.completed()},I().completedCharacter.repeat(l)),A>0&&ume.default.createElement(gme.Text,{...f.remaining()},I().remainingCharacter.repeat(A)))}var N3a=Nt(Ec(),1),N0i=Nt(Al(),1);var T3a=Nt(Ec(),1),R0i=Nt(Al(),1);var I4e=Nt(Ec(),1);var R3a=Nt(Al(),1);var D3a=Nt(Ec(),1),k0i=Nt(Al(),1);var D0i=Nt(Ec(),1);var G3a=Nt(Ec(),1),F3a=Nt(Al(),1);var Fyt=Nt(Ec(),1);var k3a=Nt(Ec(),1),x3a=Nt(Al(),1);var Kvu=fp.inverse(" ");var F0i=Nt(Al(),1),jX=Nt(Ec(),1);var h4e=Nt(Al(),1),NRe=Nt(Ec(),1);var x0i=Nt(Ec(),1);var Zyt=(0,x0i.createContext)({marker:kI.line});function Lyt({children:e}){let{marker:t}=(0,NRe.useContext)(Zyt),{styles:r}=xS("OrderedList");return NRe.default.createElement(h4e.Box,{...r.listItem()},NRe.default.createElement(h4e.Text,{...r.marker()},t),NRe.default.createElement(h4e.Box,{...r.content()},e))}var G0i=Nt(Ec(),1),uTr=(0,G0i.createContext)({marker:""});function Z3a({children:e}){let{marker:t}=(0,jX.useContext)(uTr),{styles:r}=xS("OrderedList"),n=0;for(let o of jX.default.Children.toArray(e))!(0,jX.isValidElement)(o)||o.type!==Lyt||n++;let a=String(n).length;return jX.default.createElement(F0i.Box,{...r.list()},jX.default.Children.map(e,(o,l)=>{if(!(0,jX.isValidElement)(o)||o.type!==Lyt)return o;let A=`${String(l+1).padStart(a)}.`,f=`${t}${A}`;return jX.default.createElement(uTr.Provider,{value:{marker:f}},jX.default.createElement(Zyt.Provider,{value:{marker:f}},o))}))}Z3a.Item=Lyt;var P3a=Nt(Ec(),1),W3a=Nt(Al(),1);var gTr=Nt(Ec(),1);var L3a=Nt(Ec(),1),V3a=Nt(Al(),1);var _Bu=fp.inverse(" ");var O3a=Nt(Ec(),1),Z0i=Nt(Al(),1);var M3a=Nt(Ec(),1),L0i=Nt(Al(),1);var Q3a=Nt(Ec(),1),X3a=Nt(Al(),1);var Vyt=Nt(Ec(),1);var H3a=Nt(Ec(),1),Y3a=Nt(Al(),1);var WBu=fp.inverse(" ");var V0i=Nt(Ec(),1),ATr=Nt(Ec(),1),W0i=Nt(Pc(),1),P0i=({formatter:e})=>{let[t,r]=(0,ATr.useState)(0),[n,a]=(0,ATr.useState)(0);return(0,V0i.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("format:end",l),e.on("end",A),()=>{e.off("start",o),e.off("format:end",l),e.off("end",A)}},[e,t,r,a]),(0,W0i.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as O0i}from"node:path";var DRe=Nt(Al(),1),AO=Nt(Al(),1),M0i=Nt(Ec(),1),Pyt=Nt(Ec(),1);var GS=Nt(Pc(),1),J3a=({changed:e})=>e?(0,GS.jsx)(AO.Text,{color:"green",children:kI.tick}):(0,GS.jsx)(AO.Text,{color:"white",children:kI.circleDotted}),U3a=({changed:e,children:t})=>e?(0,GS.jsx)(AO.Text,{color:"white",children:t}):(0,GS.jsx)(AO.Text,{color:"gray",children:t}),H0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Pyt.useState)(void 0),[a,o]=(0,Pyt.useState)(0),[l,A]=(0,Pyt.useState)(0);return(0,M0i.useEffect)(()=>{let f=b=>{o(b.files.length)},I=b=>{n({changed:!1,file:O0i(e,b.file)})},C=b=>{n({changed:b.changed,file:O0i(e,b.file)}),b.changed&&A(E=>E+1)};return t.on("start",f),t.on("format:start",I),t.on("format:end",C),()=>{t.off("start",f),t.off("format:start",I),t.off("format:end",C)}},[t,n,o,A]),r?(0,GS.jsxs)(DRe.Box,{flexDirection:"row",width:"100%",children:[(0,GS.jsxs)(DRe.Box,{flexGrow:1,children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(U3a,{changed:r.changed,children:r.file})]}),(0,GS.jsx)(DRe.Box,{flexDirection:"row",children:(0,GS.jsxs)(DRe.Box,{children:[(0,GS.jsx)(J3a,{changed:r.changed}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"green",children:[l," Formatted"]}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"white",children:[a," Files"]}),(0,GS.jsx)(AO.Text,{children:" "})]})})]}):(0,GS.jsxs)(DRe.Box,{flexDirection:"row",children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(AO.Text,{color:"white",children:"Loading files..."})]})};var qae=Nt(Pc(),1),X0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Y0i.useState)(!1);return(0,Q0i.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,qae.jsx)(m4e.Box,{position:"relative",height:7,children:(0,qae.jsxs)(m4e.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,qae.jsx)(m4e.Box,{children:(0,qae.jsx)(H0i,{cwd:e,formatter:t})}),(0,qae.jsx)(m4e.Box,{marginTop:1,marginBottom:1,children:(0,qae.jsx)(P0i,{formatter:t})})]})})};import Lgc from"node:events";import{writeFile as Vgc}from"node:fs/promises";import{readFile as ZNi}from"node:fs/promises";import{relative as Pgc}from"node:path";import{join as Wgc}from"node:path";var FRe={};sI(FRe,{default:()=>cMa,parsers:()=>GRe});var K3a=Object.create,mTr=Object.defineProperty,j3a=Object.getOwnPropertyDescriptor,z3a=Object.getOwnPropertyNames,q3a=Object.getPrototypeOf,$3a=Object.prototype.hasOwnProperty,e5a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),t5a=(e,t)=>{for(var r in t)mTr(e,r,{get:t[r],enumerable:!0})},r5a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of z3a(t))!$3a.call(e,a)&&a!==r&&mTr(e,a,{get:()=>t[a],enumerable:!(n=j3a(t,a))||n.enumerable});return e},iyi=(e,t,r)=>(r=e!=null?K3a(q3a(e)):{},r5a(t||!e||!e.__esModule?mTr(r,"default",{value:e,enumerable:!0}):r,e)),syi=e5a(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(se,O){if(se==null)return{};var K={};for(var we in se)if({}.hasOwnProperty.call(se,we)){if(O.includes(we))continue;K[we]=se[we]}return K}var r=class{constructor(se,O,K){this.line=void 0,this.column=void 0,this.index=void 0,this.line=se,this.column=O,this.index=K}},n=class{constructor(se,O){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=se,this.end=O}};function a(se,O){let{line:K,column:we,index:gt}=se;return new r(K,we+O,gt+O)}var o="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",l={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:o},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:o}},A={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},f=se=>se.type==="UpdateExpression"?A.UpdateExpression[`${se.prefix}`]:A[se.type],I={AccessorIsGenerator:({kind:se})=>`A ${se}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:se})=>`Missing initializer in ${se} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:se})=>`\`${se}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:se})=>`'import.${se}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:se,exportName:O})=>`A string literal cannot be used as an exported binding without \`from\`. +`),r=process.cwd(),n=new Q_i.default({cwd:r}),a=t.reduce((o,l)=>{let A=n.parseLine(l.trim());return A&&o.push(A),o},[]);return new vyt(a)};var n0i=Nt(Al(),1),wRe=Nt(Al(),1);var Dyt=Nt(Ec(),1);var e0i=Nt(Al(),1),Ryt=Nt(Ec(),1);import{basename as POa}from"node:path";import{isAbsolute as WOa}from"node:path";import{relative as OOa}from"node:path";var sTr=Nt(Ec(),1),Tyt=Nt(Al(),1),lme=Nt(mTe(),1);var yy="\x1B[",u4e="\x1B]",vRe="\x07",Byt=";",J_i=process.env.TERM_PROGRAM==="Apple_Terminal",SC={};SC.cursorTo=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof t!="number"?yy+(e+1)+"G":yy+(t+1)+";"+(e+1)+"H"};SC.cursorMove=(e,t)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let r="";return e<0?r+=yy+-e+"D":e>0&&(r+=yy+e+"C"),t<0?r+=yy+-t+"A":t>0&&(r+=yy+t+"B"),r};SC.cursorUp=(e=1)=>yy+e+"A";SC.cursorDown=(e=1)=>yy+e+"B";SC.cursorForward=(e=1)=>yy+e+"C";SC.cursorBackward=(e=1)=>yy+e+"D";SC.cursorLeft=yy+"G";SC.cursorSavePosition=J_i?"\x1B7":yy+"s";SC.cursorRestorePosition=J_i?"\x1B8":yy+"u";SC.cursorGetPosition=yy+"6n";SC.cursorNextLine=yy+"E";SC.cursorPrevLine=yy+"F";SC.cursorHide=yy+"?25l";SC.cursorShow=yy+"?25h";SC.eraseLines=e=>{let t="";for(let r=0;r[u4e,"8",Byt,Byt,t,vRe,e,u4e,"8",Byt,Byt,vRe].join("");SC.image=(e,t={})=>{let r=`${u4e}1337;File=inline=1`;return t.width&&(r+=`;width=${t.width}`),t.height&&(r+=`;height=${t.height}`),t.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+e.toString("base64")+vRe};SC.iTerm={setCwd:(e=process.cwd())=>`${u4e}50;CurrentDir=${e}${vRe}`,annotation:(e,t={})=>{let r=`${u4e}1337;`,n=typeof t.x<"u",a=typeof t.y<"u";if((n||a)&&!(n&&a&&typeof t.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replace(/\|/g,""),r+=t.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",t.length>0?r+=(n?[e,t.length,t.x,t.y]:[t.length,e]).join("|"):r+=e,r+vRe}};var U_i=SC;var wyt=Nt(z_i(),1);function cme(e,t,{target:r="stdout",...n}={}){return wyt.default[r]?U_i.link(e,t):n.fallback===!1?e:typeof n.fallback=="function"?n.fallback(e,t):`${e} (\u200B${t}\u200B)`}cme.isSupported=wyt.default.stdout;cme.stderr=(e,t,r={})=>cme(e,t,{target:"stderr",...r});cme.stderr.isSupported=wyt.default.stderr;var q_i=({children:e,url:t,fallback:r=!0})=>sTr.default.createElement(Tyt.Transform,{transform:n=>cme(n,t,{fallback:r})},sTr.default.createElement(Tyt.Text,null,e));q_i.propTypes={children:lme.default.oneOfType([lme.default.arrayOf(lme.default.node),lme.default.node]).isRequired,url:lme.default.string.isRequired,fallback:lme.default.bool};var $_i=q_i;var Nyt=Nt(Pc(),1),t0i=({url:e,cwd:t=process.cwd(),column:r=0,line:n=0})=>{let a=(0,Ryt.useMemo)(()=>{try{return new URL(e).pathname}catch{return e}},[e]),o=(0,Ryt.useMemo)(()=>WOa(a)?OOa(t,a):a,[a]),l=(0,Ryt.useMemo)(()=>o.includes("/node_modules/")?POa(o):o,[o]);return(0,Nyt.jsx)($_i,{url:e,children:(0,Nyt.jsxs)(e0i.Text,{color:"gray",children:[l,":",n,":",r]})})};import{readFileSync as MOa}from"node:fs";import{fileURLToPath as HOa}from"node:url";var r0i=e=>{if(e.sourceMap)return e.sourceMap.payload.sourcesContent[0];if(e.file)try{return MOa(e.file.startsWith("file:/")?HOa(new URL(e.file)):e.file,"utf-8")}catch{return null}return null};var ej=Nt(Pc(),1),kyt=({children:e,cwd:t})=>{let r=(0,Dyt.useMemo)(()=>X_i(e),[e]),n=(0,Dyt.useMemo)(()=>r.topFrame||r.frames.at(0),[r]),a=(0,Dyt.useMemo)(()=>n?r0i(n):null,[n]);return(0,ej.jsxs)(wRe.Box,{flexDirection:"column",flexGrow:1,children:[!!a&&!!r.topFrame?.line&&(0,ej.jsx)(wRe.Box,{marginBottom:1,children:(0,ej.jsx)(d8,{line:r.topFrame.line,column:r.topFrame.column,children:a})}),r.frames.map(o=>(0,ej.jsxs)(wRe.Box,{flexDirection:"row",children:[(0,ej.jsx)(wRe.Box,{flexBasis:"30%",children:(0,ej.jsx)(n0i.Text,{children:o.function})}),(0,ej.jsx)(wRe.Box,{flexBasis:"70%",justifyContent:"flex-end",children:!!o.file&&(0,ej.jsx)(t0i,{cwd:t,url:o.file,line:o.line,column:o.column})})]},OW()))]})};var zae=Nt(Pc(),1),YOa=({children:e})=>e?(0,zae.jsx)(xyt.Box,{marginBottom:1,children:(0,zae.jsx)(i0i.Text,{bold:!0,color:"red",children:e})}):null,Fk=({error:e,cwd:t})=>(0,zae.jsxs)(xyt.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,children:[(0,zae.jsx)(YOa,{children:e.message}),!!e.stack&&(0,zae.jsx)(xyt.Box,{children:(0,zae.jsx)(kyt,{cwd:t,children:e.stack})})]});var m4e=Nt(Al(),1),Y0i=Nt(Ec(),1),Q0i=Nt(Ec(),1);var aTr=Nt(Al(),1),cTr=Nt(Ec(),1);var A4e=Nt(Ec(),1),C3a=Nt(oTr(),1);var c0i={info:"blue",success:"green",error:"red",warning:"yellow"},i3a={styles:{container:({variant:e})=>({flexGrow:1,borderStyle:"round",borderColor:c0i[e],gap:1,paddingX:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:c0i[e]}),content:()=>({flexShrink:1,flexGrow:1,minWidth:0,flexDirection:"column",gap:1}),title:()=>({bold:!0}),message:()=>({})},config({variant:e}){let t;return e==="info"&&(t=kI.info),e==="success"&&(t=kI.tick),e==="error"&&(t=kI.cross),e==="warning"&&(t=kI.warning),{icon:t}}},l0i=i3a;var s3a={styles:{container:({color:e})=>({backgroundColor:e}),label:()=>({color:"black"})}},u0i=s3a;var o3a={styles:{input:({isFocused:e})=>({dimColor:!e})}},g0i=o3a;var a3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},A0i=a3a;var c3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})}},d0i=c3a;var l3a={styles:{container:()=>({flexGrow:1,minWidth:0}),completed:()=>({color:"magenta"}),remaining:()=>({dimColor:!0})},config:()=>({completedCharacter:kI.square,remainingCharacter:kI.squareLightShade})},p0i=l3a;var u3a={styles:{container:()=>({flexDirection:"column"}),option:({isFocused:e})=>({gap:1,paddingLeft:e?0:2}),selectedIndicator:()=>({color:"green"}),focusIndicator:()=>({color:"blue"}),label({isFocused:e,isSelected:t}){let r;return t&&(r="green"),e&&(r="blue"),{color:r}},highlightedText:()=>({bold:!0})}},f0i=u3a;var g3a={styles:{container:()=>({gap:1}),frame:()=>({color:"blue"}),label:()=>({})}},I0i=g3a;var A3a={success:"green",error:"red",warning:"yellow",info:"blue"},d3a={success:kI.tick,error:kI.cross,warning:kI.warning,info:kI.info},p3a={styles:{container:()=>({gap:1}),iconContainer:()=>({flexShrink:0}),icon:({variant:e})=>({color:A3a[e]}),message:()=>({})},config:({variant:e})=>({icon:d3a[e]})},h0i=p3a;var f3a={styles:{list:()=>({flexDirection:"column"}),listItem:()=>({gap:1}),marker:()=>({dimColor:!0}),content:()=>({flexDirection:"column"})},config:()=>({marker:kI.line})},m0i=f3a;var I3a={styles:{value:()=>({})}},C0i=I3a;var h3a={styles:{value:()=>({})}},_0i=h3a;var m3a={styles:{value:()=>({})}},y0i=m3a;var _3a={components:{Alert:l0i,Badge:u0i,ConfirmInput:g0i,MultiSelect:A0i,OrderedList:d0i,ProgressBar:p0i,Select:f0i,Spinner:I0i,StatusMessage:h0i,UnorderedList:m0i,TextInput:C0i,EmailInput:_0i,PasswordInput:y0i}},y3a=(0,A4e.createContext)(_3a);var xS=e=>(0,A4e.useContext)(y3a).components[e];function RG({children:e,color:t="magenta"}){let{styles:r}=xS("Badge"),n=e;return typeof e=="string"&&(n=e.toUpperCase()),cTr.default.createElement(aTr.Text,{...r.container({color:t})}," ",cTr.default.createElement(aTr.Text,{...r.label()},n)," ")}var b3a=Nt(Ec(),1),b0i=Nt(Al(),1);var B0i=Nt(Al(),1),cee=Nt(Ec(),1);var p4e=Nt(Al(),1),RRe=Nt(Ec(),1);var E0i=Nt(Ec(),1);var d4e=kI.line;var Gyt=(0,E0i.createContext)({marker:d4e});function S0i({children:e}){let{marker:t}=(0,RRe.useContext)(Gyt),{styles:r}=xS("UnorderedList");return RRe.default.createElement(p4e.Box,{...r.listItem()},RRe.default.createElement(p4e.Text,{...r.marker()},t),RRe.default.createElement(p4e.Box,{...r.content()},e))}var v0i=Nt(Ec(),1),lTr=(0,v0i.createContext)({depth:0});function E3a({children:e}){let{depth:t}=(0,cee.useContext)(lTr),{styles:r,config:n}=xS("UnorderedList"),a=(0,cee.useMemo)(()=>({depth:t+1}),[t]),o=(0,cee.useMemo)(()=>{let{marker:l}=n();return typeof l=="string"?{marker:l}:Array.isArray(l)?{marker:l[t]??l.at(-1)??d4e}:{marker:d4e}},[n,t]);return cee.default.createElement(lTr.Provider,{value:a},cee.default.createElement(Gyt.Provider,{value:o},cee.default.createElement(B0i.Box,{...r.list()},e)))}E3a.Item=S0i;var w3a=Nt(Ec(),1),T0i=Nt(Al(),1);var S3a=Nt(Ec(),1),w0i=Nt(Al(),1);var f4e=Nt(Ec(),1);var B3a=Nt(Al(),1);var ume=Nt(Ec(),1),gme=Nt(Al(),1);function JM({value:e}){let[t,r]=(0,ume.useState)(0),[n,a]=(0,ume.useState)(null);if(n){let C=(0,gme.measureElement)(n);C.width!==t&&r(C.width)}let o=Math.min(100,Math.max(0,e)),l=Math.round(o/100*t),A=t-l,{styles:f,config:I}=xS("ProgressBar");return ume.default.createElement(gme.Box,{ref:a,...f.container()},l>0&&ume.default.createElement(gme.Text,{...f.completed()},I().completedCharacter.repeat(l)),A>0&&ume.default.createElement(gme.Text,{...f.remaining()},I().remainingCharacter.repeat(A)))}var N3a=Nt(Ec(),1),N0i=Nt(Al(),1);var T3a=Nt(Ec(),1),R0i=Nt(Al(),1);var I4e=Nt(Ec(),1);var R3a=Nt(Al(),1);var D3a=Nt(Ec(),1),k0i=Nt(Al(),1);var D0i=Nt(Ec(),1);var G3a=Nt(Ec(),1),F3a=Nt(Al(),1);var Fyt=Nt(Ec(),1);var k3a=Nt(Ec(),1),x3a=Nt(Al(),1);var jvu=fp.inverse(" ");var F0i=Nt(Al(),1),jX=Nt(Ec(),1);var h4e=Nt(Al(),1),NRe=Nt(Ec(),1);var x0i=Nt(Ec(),1);var Zyt=(0,x0i.createContext)({marker:kI.line});function Lyt({children:e}){let{marker:t}=(0,NRe.useContext)(Zyt),{styles:r}=xS("OrderedList");return NRe.default.createElement(h4e.Box,{...r.listItem()},NRe.default.createElement(h4e.Text,{...r.marker()},t),NRe.default.createElement(h4e.Box,{...r.content()},e))}var G0i=Nt(Ec(),1),uTr=(0,G0i.createContext)({marker:""});function Z3a({children:e}){let{marker:t}=(0,jX.useContext)(uTr),{styles:r}=xS("OrderedList"),n=0;for(let o of jX.default.Children.toArray(e))!(0,jX.isValidElement)(o)||o.type!==Lyt||n++;let a=String(n).length;return jX.default.createElement(F0i.Box,{...r.list()},jX.default.Children.map(e,(o,l)=>{if(!(0,jX.isValidElement)(o)||o.type!==Lyt)return o;let A=`${String(l+1).padStart(a)}.`,f=`${t}${A}`;return jX.default.createElement(uTr.Provider,{value:{marker:f}},jX.default.createElement(Zyt.Provider,{value:{marker:f}},o))}))}Z3a.Item=Lyt;var P3a=Nt(Ec(),1),W3a=Nt(Al(),1);var gTr=Nt(Ec(),1);var L3a=Nt(Ec(),1),V3a=Nt(Al(),1);var yBu=fp.inverse(" ");var O3a=Nt(Ec(),1),Z0i=Nt(Al(),1);var M3a=Nt(Ec(),1),L0i=Nt(Al(),1);var Q3a=Nt(Ec(),1),X3a=Nt(Al(),1);var Vyt=Nt(Ec(),1);var H3a=Nt(Ec(),1),Y3a=Nt(Al(),1);var OBu=fp.inverse(" ");var V0i=Nt(Ec(),1),ATr=Nt(Ec(),1),W0i=Nt(Pc(),1),P0i=({formatter:e})=>{let[t,r]=(0,ATr.useState)(0),[n,a]=(0,ATr.useState)(0);return(0,V0i.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("format:end",l),e.on("end",A),()=>{e.off("start",o),e.off("format:end",l),e.off("end",A)}},[e,t,r,a]),(0,W0i.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as O0i}from"node:path";var DRe=Nt(Al(),1),AO=Nt(Al(),1),M0i=Nt(Ec(),1),Pyt=Nt(Ec(),1);var GS=Nt(Pc(),1),J3a=({changed:e})=>e?(0,GS.jsx)(AO.Text,{color:"green",children:kI.tick}):(0,GS.jsx)(AO.Text,{color:"white",children:kI.circleDotted}),U3a=({changed:e,children:t})=>e?(0,GS.jsx)(AO.Text,{color:"white",children:t}):(0,GS.jsx)(AO.Text,{color:"gray",children:t}),H0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Pyt.useState)(void 0),[a,o]=(0,Pyt.useState)(0),[l,A]=(0,Pyt.useState)(0);return(0,M0i.useEffect)(()=>{let f=b=>{o(b.files.length)},I=b=>{n({changed:!1,file:O0i(e,b.file)})},C=b=>{n({changed:b.changed,file:O0i(e,b.file)}),b.changed&&A(E=>E+1)};return t.on("start",f),t.on("format:start",I),t.on("format:end",C),()=>{t.off("start",f),t.off("format:start",I),t.off("format:end",C)}},[t,n,o,A]),r?(0,GS.jsxs)(DRe.Box,{flexDirection:"row",width:"100%",children:[(0,GS.jsxs)(DRe.Box,{flexGrow:1,children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(U3a,{changed:r.changed,children:r.file})]}),(0,GS.jsx)(DRe.Box,{flexDirection:"row",children:(0,GS.jsxs)(DRe.Box,{children:[(0,GS.jsx)(J3a,{changed:r.changed}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"green",children:[l," Formatted"]}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsxs)(AO.Text,{color:"white",children:[a," Files"]}),(0,GS.jsx)(AO.Text,{children:" "})]})})]}):(0,GS.jsxs)(DRe.Box,{flexDirection:"row",children:[(0,GS.jsx)(RG,{color:"cyan",children:"Format:"}),(0,GS.jsx)(AO.Text,{children:" "}),(0,GS.jsx)(AO.Text,{color:"white",children:"Loading files..."})]})};var qae=Nt(Pc(),1),X0i=({cwd:e,formatter:t})=>{let[r,n]=(0,Y0i.useState)(!1);return(0,Q0i.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,qae.jsx)(m4e.Box,{position:"relative",height:7,children:(0,qae.jsxs)(m4e.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,qae.jsx)(m4e.Box,{children:(0,qae.jsx)(H0i,{cwd:e,formatter:t})}),(0,qae.jsx)(m4e.Box,{marginTop:1,marginBottom:1,children:(0,qae.jsx)(P0i,{formatter:t})})]})})};import Lgc from"node:events";import{writeFile as Vgc}from"node:fs/promises";import{readFile as ZNi}from"node:fs/promises";import{relative as Pgc}from"node:path";import{join as Wgc}from"node:path";var FRe={};sI(FRe,{default:()=>cMa,parsers:()=>GRe});var K3a=Object.create,mTr=Object.defineProperty,j3a=Object.getOwnPropertyDescriptor,z3a=Object.getOwnPropertyNames,q3a=Object.getPrototypeOf,$3a=Object.prototype.hasOwnProperty,e5a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),t5a=(e,t)=>{for(var r in t)mTr(e,r,{get:t[r],enumerable:!0})},r5a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of z3a(t))!$3a.call(e,a)&&a!==r&&mTr(e,a,{get:()=>t[a],enumerable:!(n=j3a(t,a))||n.enumerable});return e},iyi=(e,t,r)=>(r=e!=null?K3a(q3a(e)):{},r5a(t||!e||!e.__esModule?mTr(r,"default",{value:e,enumerable:!0}):r,e)),syi=e5a(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(se,O){if(se==null)return{};var K={};for(var we in se)if({}.hasOwnProperty.call(se,we)){if(O.includes(we))continue;K[we]=se[we]}return K}var r=class{constructor(se,O,K){this.line=void 0,this.column=void 0,this.index=void 0,this.line=se,this.column=O,this.index=K}},n=class{constructor(se,O){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=se,this.end=O}};function a(se,O){let{line:K,column:we,index:gt}=se;return new r(K,we+O,gt+O)}var o="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",l={ImportMetaOutsideModule:{message:`import.meta may appear only with 'sourceType: "module"'`,code:o},ImportOutsideModule:{message:`'import' and 'export' may appear only with 'sourceType: "module"'`,code:o}},A={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},f=se=>se.type==="UpdateExpression"?A.UpdateExpression[`${se.prefix}`]:A[se.type],I={AccessorIsGenerator:({kind:se})=>`A ${se}ter cannot be a generator.`,ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncFunction:"'await' is only allowed within async functions.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:({kind:se})=>`Missing initializer in ${se} declaration.`,DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:({exportName:se})=>`\`${se}\` has already been exported. Exported identifiers must be unique.`,DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",DynamicImportPhaseRequiresImportExpressions:({phase:se})=>`'import.${se}(...)' can only be parsed when using the 'createImportExpressions' option.`,ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:({localName:se,exportName:O})=>`A string literal cannot be used as an exported binding without \`from\`. - Did you mean \`export { '${se}' as '${O}' } from 'some-module'\`?`,ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:({type:se})=>`'${se==="ForInStatement"?"for-in":"for-of"}' loop variable declaration may not have an initializer.`,ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:({type:se})=>`Unsyntactic ${se==="BreakStatement"?"break":"continue"}.`,IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.",ImportBindingIsString:({importName:se})=>`A string literal cannot be used as an imported binding. - Did you mean \`import { "${se}" as foo }\`?`,ImportCallArity:"`import()` requires exactly one or two arguments.",ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:({radix:se})=>`Expected number in radix ${se}.`,InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:({reservedWord:se})=>`Escape sequence in keyword ${se}.`,InvalidIdentifier:({identifierName:se})=>`Invalid identifier ${se}.`,InvalidLhs:({ancestor:se})=>`Invalid left-hand side in ${f(se)}.`,InvalidLhsBinding:({ancestor:se})=>`Binding invalid left-hand side in ${f(se)}.`,InvalidLhsOptionalChaining:({ancestor:se})=>`Invalid optional chaining in the left-hand side of ${f(se)}.`,InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:({unexpected:se})=>`Unexpected character '${se}'.`,InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:({identifierName:se})=>`Private name #${se} is not defined.`,InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:({labelName:se})=>`Label '${se}' is already declared.`,LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:({missingPlugin:se})=>`This experimental syntax requires enabling the parser plugin: ${se.map(O=>JSON.stringify(O)).join(", ")}.`,MissingOneOfPlugins:({missingPlugin:se})=>`This experimental syntax requires enabling one of the following parser plugin(s): ${se.map(O=>JSON.stringify(O)).join(", ")}.`,MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:({key:se})=>`Duplicate key "${se}" is not allowed in module attributes.`,ModuleExportNameHasLoneSurrogate:({surrogateCharCode:se})=>`An export name cannot include a lone surrogate, found '\\u${se.toString(16)}'.`,ModuleExportUndefined:({localName:se})=>`Export '${se}' is not defined.`,MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:({identifierName:se})=>`Private names are only allowed in property accesses (\`obj.#${se}\`) or in \`in\` expressions (\`#${se} in obj\`).`,PrivateNameRedeclaration:({identifierName:se})=>`Duplicate private name #${se}.`,RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:({keyword:se})=>`Unexpected keyword '${se}'.`,UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:({reservedWord:se})=>`Unexpected reserved word '${se}'.`,UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:({expected:se,unexpected:O})=>`Unexpected token${O?` '${O}'.`:""}${se?`, expected "${se}"`:""}`,UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script`.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:({target:se,onlyValidPropertyName:O})=>`The only valid meta property for ${se} is ${se}.${O}.`,UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:({identifierName:se})=>`Identifier '${se}' has already been declared.`,YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},C={StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:({referenceName:se})=>`Assigning to '${se}' in strict mode.`,StrictEvalArgumentsBinding:({bindingName:se})=>`Binding '${se}' in strict mode.`,StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."},b=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),E=Object.assign({PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:({token:se})=>`Invalid topic token ${se}. In order to use ${se} as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "${se}" }.`,PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:({type:se})=>`Hack-style pipe body cannot be an unparenthesized ${f({type:se})}; please wrap it in parentheses.`},{PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'}),N=["message"];function B(se,O,K){Object.defineProperty(se,O,{enumerable:!1,configurable:!0,value:K})}function F({toMessage:se,code:O,reasonCode:K,syntaxPlugin:we}){let gt=K==="MissingPlugin"||K==="MissingOneOfPlugins";{let sr={AccessorCannotDeclareThisParameter:"AccesorCannotDeclareThisParameter",AccessorCannotHaveTypeParameters:"AccesorCannotHaveTypeParameters",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",SetAccessorCannotHaveOptionalParameter:"SetAccesorCannotHaveOptionalParameter",SetAccessorCannotHaveRestParameter:"SetAccesorCannotHaveRestParameter",SetAccessorCannotHaveReturnType:"SetAccesorCannotHaveReturnType"};sr[K]&&(K=sr[K])}return function sr(Yr,Lr){let fi=new SyntaxError;return fi.code=O,fi.reasonCode=K,fi.loc=Yr,fi.pos=Yr.index,fi.syntaxPlugin=we,gt&&(fi.missingPlugin=Lr.missingPlugin),B(fi,"clone",function($n={}){var ra;let{line:kc,column:Nl,index:ca}=(ra=$n.loc)!=null?ra:Yr;return sr(new r(kc,Nl,ca),Object.assign({},Lr,$n.details))}),B(fi,"details",Lr),Object.defineProperty(fi,"message",{configurable:!0,get(){let $n=`${se(Lr)} (${Yr.line}:${Yr.column})`;return this.message=$n,$n},set($n){Object.defineProperty(this,"message",{value:$n,writable:!0})}}),fi}}function Q(se,O){if(Array.isArray(se))return we=>Q(we,se[0]);let K={};for(let we of Object.keys(se)){let gt=se[we],sr=typeof gt=="string"?{message:()=>gt}:typeof gt=="function"?{message:gt}:gt,{message:Yr}=sr,Lr=t(sr,N),fi=typeof Yr=="string"?()=>Yr:Yr;K[we]=F(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:we,toMessage:fi},O?{syntaxPlugin:O}:{},Lr))}return K}var X=Object.assign({},Q(l),Q(I),Q(C),Q`pipelineOperator`(E));function ae(){return{sourceType:"script",sourceFilename:void 0,startIndex:0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,plugins:[],strictMode:null,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0}}function ne(se){let O=ae();if(se==null)return O;if(se.annexB!=null&&se.annexB!==!1)throw new Error("The `annexB` option can only be set to `false`.");for(let K of Object.keys(O))se[K]!=null&&(O[K]=se[K]);if(O.startLine===1)se.startIndex==null&&O.startColumn>0?O.startIndex=O.startColumn:se.startColumn==null&&O.startIndex>0&&(O.startColumn=O.startIndex);else if((se.startColumn==null||se.startIndex==null)&&se.startIndex!=null)throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");return O}var{defineProperty:ce}=Object,fe=(se,O)=>{se&&ce(se,O,{enumerable:!1,value:se[O]})};function ue(se){return fe(se.loc.start,"index"),fe(se.loc.end,"index"),se}var de=se=>class extends se{parse(){let O=ue(super.parse());return this.optionFlags&128&&(O.tokens=O.tokens.map(ue)),O}parseRegExpLiteral({pattern:O,flags:K}){let we=null;try{we=new RegExp(O,K)}catch{}let gt=this.estreeParseLiteral(we);return gt.regex={pattern:O,flags:K},gt}parseBigIntLiteral(O){let K;try{K=BigInt(O)}catch{K=null}let we=this.estreeParseLiteral(K);return we.bigint=String(we.value||O),we}parseDecimalLiteral(O){let K=this.estreeParseLiteral(null);return K.decimal=String(K.value||O),K}estreeParseLiteral(O){return this.parseLiteral(O,"Literal")}parseStringLiteral(O){return this.estreeParseLiteral(O)}parseNumericLiteral(O){return this.estreeParseLiteral(O)}parseNullLiteral(){return this.estreeParseLiteral(null)}parseBooleanLiteral(O){return this.estreeParseLiteral(O)}directiveToStmt(O){let K=O.value;delete O.value,K.type="Literal",K.raw=K.extra.raw,K.value=K.extra.expressionValue;let we=O;return we.type="ExpressionStatement",we.expression=K,we.directive=K.extra.rawValue,delete K.extra,we}initFunction(O,K){super.initFunction(O,K),O.expression=!1}checkDeclaration(O){O!=null&&this.isObjectProperty(O)?this.checkDeclaration(O.value):super.checkDeclaration(O)}getObjectOrClassMethodParams(O){return O.value.params}isValidDirective(O){var K;return O.type==="ExpressionStatement"&&O.expression.type==="Literal"&&typeof O.expression.value=="string"&&!((K=O.expression.extra)!=null&&K.parenthesized)}parseBlockBody(O,K,we,gt,sr){super.parseBlockBody(O,K,we,gt,sr);let Yr=O.directives.map(Lr=>this.directiveToStmt(Lr));O.body=Yr.concat(O.body),delete O.directives}parsePrivateName(){let O=super.parsePrivateName();return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(O):O}convertPrivateNameToPrivateIdentifier(O){let K=super.getPrivateNameSV(O);return O=O,delete O.id,O.name=K,O.type="PrivateIdentifier",O}isPrivateName(O){return this.getPluginOption("estree","classFeatures")?O.type==="PrivateIdentifier":super.isPrivateName(O)}getPrivateNameSV(O){return this.getPluginOption("estree","classFeatures")?O.name:super.getPrivateNameSV(O)}parseLiteral(O,K){let we=super.parseLiteral(O,K);return we.raw=we.extra.raw,delete we.extra,we}parseFunctionBody(O,K,we=!1){super.parseFunctionBody(O,K,we),O.expression=O.body.type!=="BlockStatement"}parseMethod(O,K,we,gt,sr,Yr,Lr=!1){let fi=this.startNode();fi.kind=O.kind,fi=super.parseMethod(fi,K,we,gt,sr,Yr,Lr),fi.type="FunctionExpression",delete fi.kind,O.value=fi;let{typeParameters:$n}=O;return $n&&(delete O.typeParameters,fi.typeParameters=$n,this.resetStartLocationFromNode(fi,$n)),Yr==="ClassPrivateMethod"&&(O.computed=!1),this.finishNode(O,"MethodDefinition")}nameIsConstructor(O){return O.type==="Literal"?O.value==="constructor":super.nameIsConstructor(O)}parseClassProperty(...O){let K=super.parseClassProperty(...O);return this.getPluginOption("estree","classFeatures")&&(K.type="PropertyDefinition"),K}parseClassPrivateProperty(...O){let K=super.parseClassPrivateProperty(...O);return this.getPluginOption("estree","classFeatures")&&(K.type="PropertyDefinition",K.computed=!1),K}parseObjectMethod(O,K,we,gt,sr){let Yr=super.parseObjectMethod(O,K,we,gt,sr);return Yr&&(Yr.type="Property",Yr.kind==="method"&&(Yr.kind="init"),Yr.shorthand=!1),Yr}parseObjectProperty(O,K,we,gt){let sr=super.parseObjectProperty(O,K,we,gt);return sr&&(sr.kind="init",sr.type="Property"),sr}isValidLVal(O,K,we){return O==="Property"?"value":super.isValidLVal(O,K,we)}isAssignable(O,K){return O!=null&&this.isObjectProperty(O)?this.isAssignable(O.value,K):super.isAssignable(O,K)}toAssignable(O,K=!1){if(O!=null&&this.isObjectProperty(O)){let{key:we,value:gt}=O;this.isPrivateName(we)&&this.classScope.usePrivateName(this.getPrivateNameSV(we),we.loc.start),this.toAssignable(gt,K)}else super.toAssignable(O,K)}toAssignableObjectExpressionProp(O,K,we){O.type==="Property"&&(O.kind==="get"||O.kind==="set")?this.raise(X.PatternHasAccessor,O.key):O.type==="Property"&&O.method?this.raise(X.PatternHasMethod,O.key):super.toAssignableObjectExpressionProp(O,K,we)}finishCallExpression(O,K){let we=super.finishCallExpression(O,K);if(we.callee.type==="Import"){var gt,sr;we.type="ImportExpression",we.source=we.arguments[0],we.options=(gt=we.arguments[1])!=null?gt:null,we.attributes=(sr=we.arguments[1])!=null?sr:null,delete we.arguments,delete we.callee}return we}toReferencedArguments(O){O.type!=="ImportExpression"&&super.toReferencedArguments(O)}parseExport(O,K){let we=this.state.lastTokStartLoc,gt=super.parseExport(O,K);switch(gt.type){case"ExportAllDeclaration":gt.exported=null;break;case"ExportNamedDeclaration":gt.specifiers.length===1&>.specifiers[0].type==="ExportNamespaceSpecifier"&&(gt.type="ExportAllDeclaration",gt.exported=gt.specifiers[0].exported,delete gt.specifiers);case"ExportDefaultDeclaration":{var sr;let{declaration:Yr}=gt;Yr?.type==="ClassDeclaration"&&((sr=Yr.decorators)==null?void 0:sr.length)>0&&Yr.start===gt.start&&this.resetStartLocation(gt,we)}break}return gt}parseSubscript(O,K,we,gt){let sr=super.parseSubscript(O,K,we,gt);if(gt.optionalChainMember){if((sr.type==="OptionalMemberExpression"||sr.type==="OptionalCallExpression")&&(sr.type=sr.type.substring(8)),gt.stop){let Yr=this.startNodeAtNode(sr);return Yr.expression=sr,this.finishNode(Yr,"ChainExpression")}}else(sr.type==="MemberExpression"||sr.type==="CallExpression")&&(sr.optional=!1);return sr}isOptionalMemberExpression(O){return O.type==="ChainExpression"?O.expression.type==="MemberExpression":super.isOptionalMemberExpression(O)}hasPropertyAsPrivateName(O){return O.type==="ChainExpression"&&(O=O.expression),super.hasPropertyAsPrivateName(O)}isObjectProperty(O){return O.type==="Property"&&O.kind==="init"&&!O.method}isObjectMethod(O){return O.type==="Property"&&(O.method||O.kind==="get"||O.kind==="set")}finishNodeAt(O,K,we){return ue(super.finishNodeAt(O,K,we))}resetStartLocation(O,K){super.resetStartLocation(O,K),ue(O)}resetEndLocation(O,K=this.state.lastTokEndLoc){super.resetEndLocation(O,K),ue(O)}},be=class{constructor(se,O){this.token=void 0,this.preserveSpace=void 0,this.token=se,this.preserveSpace=!!O}},Se={brace:new be("{"),j_oTag:new be("...",!0)};Se.template=new be("`",!0);var De=!0,k=!0,et=!0,ct=!0,Me=!0,je=!0,St=class{constructor(se,O={}){this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=se,this.keyword=O.keyword,this.beforeExpr=!!O.beforeExpr,this.startsExpr=!!O.startsExpr,this.rightAssociative=!!O.rightAssociative,this.isLoop=!!O.isLoop,this.isAssign=!!O.isAssign,this.prefix=!!O.prefix,this.postfix=!!O.postfix,this.binop=O.binop!=null?O.binop:null,this.updateContext=null}},At=new Map;function Yt(se,O={}){O.keyword=se;let K=lr(se,O);return At.set(se,K),K}function Tr(se,O){return lr(se,{beforeExpr:De,binop:O})}var Nr=-1,er=[],vt=[],xt=[],Zr=[],qt=[],Xt=[];function lr(se,O={}){var K,we,gt,sr;return++Nr,vt.push(se),xt.push((K=O.binop)!=null?K:-1),Zr.push((we=O.beforeExpr)!=null?we:!1),qt.push((gt=O.startsExpr)!=null?gt:!1),Xt.push((sr=O.prefix)!=null?sr:!1),er.push(new St(se,O)),Nr}function cr(se,O={}){var K,we,gt,sr;return++Nr,At.set(se,Nr),vt.push(se),xt.push((K=O.binop)!=null?K:-1),Zr.push((we=O.beforeExpr)!=null?we:!1),qt.push((gt=O.startsExpr)!=null?gt:!1),Xt.push((sr=O.prefix)!=null?sr:!1),er.push(new St("name",O)),Nr}var Ar={bracketL:lr("[",{beforeExpr:De,startsExpr:k}),bracketHashL:lr("#[",{beforeExpr:De,startsExpr:k}),bracketBarL:lr("[|",{beforeExpr:De,startsExpr:k}),bracketR:lr("]"),bracketBarR:lr("|]"),braceL:lr("{",{beforeExpr:De,startsExpr:k}),braceBarL:lr("{|",{beforeExpr:De,startsExpr:k}),braceHashL:lr("#{",{beforeExpr:De,startsExpr:k}),braceR:lr("}"),braceBarR:lr("|}"),parenL:lr("(",{beforeExpr:De,startsExpr:k}),parenR:lr(")"),comma:lr(",",{beforeExpr:De}),semi:lr(";",{beforeExpr:De}),colon:lr(":",{beforeExpr:De}),doubleColon:lr("::",{beforeExpr:De}),dot:lr("."),question:lr("?",{beforeExpr:De}),questionDot:lr("?."),arrow:lr("=>",{beforeExpr:De}),template:lr("template"),ellipsis:lr("...",{beforeExpr:De}),backQuote:lr("`",{startsExpr:k}),dollarBraceL:lr("${",{beforeExpr:De,startsExpr:k}),templateTail:lr("...`",{startsExpr:k}),templateNonTail:lr("...${",{beforeExpr:De,startsExpr:k}),at:lr("@"),hash:lr("#",{startsExpr:k}),interpreterDirective:lr("#!..."),eq:lr("=",{beforeExpr:De,isAssign:ct}),assign:lr("_=",{beforeExpr:De,isAssign:ct}),slashAssign:lr("_=",{beforeExpr:De,isAssign:ct}),xorAssign:lr("_=",{beforeExpr:De,isAssign:ct}),moduloAssign:lr("_=",{beforeExpr:De,isAssign:ct}),incDec:lr("++/--",{prefix:Me,postfix:je,startsExpr:k}),bang:lr("!",{beforeExpr:De,prefix:Me,startsExpr:k}),tilde:lr("~",{beforeExpr:De,prefix:Me,startsExpr:k}),doubleCaret:lr("^^",{startsExpr:k}),doubleAt:lr("@@",{startsExpr:k}),pipeline:Tr("|>",0),nullishCoalescing:Tr("??",1),logicalOR:Tr("||",1),logicalAND:Tr("&&",2),bitwiseOR:Tr("|",3),bitwiseXOR:Tr("^",4),bitwiseAND:Tr("&",5),equality:Tr("==/!=/===/!==",6),lt:Tr("/<=/>=",7),gt:Tr("/<=/>=",7),relational:Tr("/<=/>=",7),bitShift:Tr("<>/>>>",8),bitShiftL:Tr("<>/>>>",8),bitShiftR:Tr("<>/>>>",8),plusMin:lr("+/-",{beforeExpr:De,binop:9,prefix:Me,startsExpr:k}),modulo:lr("%",{binop:10,startsExpr:k}),star:lr("*",{binop:10}),slash:Tr("/",10),exponent:lr("**",{beforeExpr:De,binop:11,rightAssociative:!0}),_in:Yt("in",{beforeExpr:De,binop:7}),_instanceof:Yt("instanceof",{beforeExpr:De,binop:7}),_break:Yt("break"),_case:Yt("case",{beforeExpr:De}),_catch:Yt("catch"),_continue:Yt("continue"),_debugger:Yt("debugger"),_default:Yt("default",{beforeExpr:De}),_else:Yt("else",{beforeExpr:De}),_finally:Yt("finally"),_function:Yt("function",{startsExpr:k}),_if:Yt("if"),_return:Yt("return",{beforeExpr:De}),_switch:Yt("switch"),_throw:Yt("throw",{beforeExpr:De,prefix:Me,startsExpr:k}),_try:Yt("try"),_var:Yt("var"),_const:Yt("const"),_with:Yt("with"),_new:Yt("new",{beforeExpr:De,startsExpr:k}),_this:Yt("this",{startsExpr:k}),_super:Yt("super",{startsExpr:k}),_class:Yt("class",{startsExpr:k}),_extends:Yt("extends",{beforeExpr:De}),_export:Yt("export"),_import:Yt("import",{startsExpr:k}),_null:Yt("null",{startsExpr:k}),_true:Yt("true",{startsExpr:k}),_false:Yt("false",{startsExpr:k}),_typeof:Yt("typeof",{beforeExpr:De,prefix:Me,startsExpr:k}),_void:Yt("void",{beforeExpr:De,prefix:Me,startsExpr:k}),_delete:Yt("delete",{beforeExpr:De,prefix:Me,startsExpr:k}),_do:Yt("do",{isLoop:et,beforeExpr:De}),_for:Yt("for",{isLoop:et}),_while:Yt("while",{isLoop:et}),_as:cr("as",{startsExpr:k}),_assert:cr("assert",{startsExpr:k}),_async:cr("async",{startsExpr:k}),_await:cr("await",{startsExpr:k}),_defer:cr("defer",{startsExpr:k}),_from:cr("from",{startsExpr:k}),_get:cr("get",{startsExpr:k}),_let:cr("let",{startsExpr:k}),_meta:cr("meta",{startsExpr:k}),_of:cr("of",{startsExpr:k}),_sent:cr("sent",{startsExpr:k}),_set:cr("set",{startsExpr:k}),_source:cr("source",{startsExpr:k}),_static:cr("static",{startsExpr:k}),_using:cr("using",{startsExpr:k}),_yield:cr("yield",{startsExpr:k}),_asserts:cr("asserts",{startsExpr:k}),_checks:cr("checks",{startsExpr:k}),_exports:cr("exports",{startsExpr:k}),_global:cr("global",{startsExpr:k}),_implements:cr("implements",{startsExpr:k}),_intrinsic:cr("intrinsic",{startsExpr:k}),_infer:cr("infer",{startsExpr:k}),_is:cr("is",{startsExpr:k}),_mixins:cr("mixins",{startsExpr:k}),_proto:cr("proto",{startsExpr:k}),_require:cr("require",{startsExpr:k}),_satisfies:cr("satisfies",{startsExpr:k}),_keyof:cr("keyof",{startsExpr:k}),_readonly:cr("readonly",{startsExpr:k}),_unique:cr("unique",{startsExpr:k}),_abstract:cr("abstract",{startsExpr:k}),_declare:cr("declare",{startsExpr:k}),_enum:cr("enum",{startsExpr:k}),_module:cr("module",{startsExpr:k}),_namespace:cr("namespace",{startsExpr:k}),_interface:cr("interface",{startsExpr:k}),_type:cr("type",{startsExpr:k}),_opaque:cr("opaque",{startsExpr:k}),name:lr("name",{startsExpr:k}),placeholder:lr("%%",{startsExpr:!0}),string:lr("string",{startsExpr:k}),num:lr("num",{startsExpr:k}),bigint:lr("bigint",{startsExpr:k}),decimal:lr("decimal",{startsExpr:k}),regexp:lr("regexp",{startsExpr:k}),privateName:lr("#name",{startsExpr:k}),eof:lr("eof"),jsxName:lr("jsxName"),jsxText:lr("jsxText",{beforeExpr:!0}),jsxTagStart:lr("jsxTagStart",{startsExpr:!0}),jsxTagEnd:lr("jsxTagEnd")};function qr(se){return se>=93&&se<=133}function _n(se){return se<=92}function ke(se){return se>=58&&se<=133}function jt(se){return se>=58&&se<=137}function Fn(se){return Zr[se]}function Nn(se){return qt[se]}function Hi(se){return se>=29&&se<=33}function po(se){return se>=129&&se<=131}function Vr(se){return se>=90&&se<=92}function xi(se){return se>=58&&se<=92}function io(se){return se>=39&&se<=59}function ga(se){return se===34}function Ya(se){return Xt[se]}function Gc(se){return se>=121&&se<=123}function cl(se){return se>=124&&se<=130}function Sc(se){return vt[se]}function Hr(se){return xt[se]}function Wr(se){return se===57}function Ft(se){return se>=24&&se<=25}function zr(se){return er[se]}er[8].updateContext=se=>{se.pop()},er[5].updateContext=er[7].updateContext=er[23].updateContext=se=>{se.push(Se.brace)},er[22].updateContext=se=>{se[se.length-1]===Se.template?se.pop():se.push(Se.template)},er[143].updateContext=se=>{se.push(Se.j_expr,Se.j_oTag)};var Rn="\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",Or="\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65",Qi=new RegExp("["+Rn+"]"),ps=new RegExp("["+Rn+Or+"]");Rn=Or=null;var yo=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],bo=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239];function Qa(se,O){let K=65536;for(let we=0,gt=O.length;wese)return!1;if(K+=O[we+1],K>=se)return!0}return!1}function gc(se){return se<65?se===36:se<=90?!0:se<97?se===95:se<=122?!0:se<=65535?se>=170&&Qi.test(String.fromCharCode(se)):Qa(se,yo)}function Cg(se){return se<48?se===36:se<58?!0:se<65?!1:se<=90?!0:se<97?se===95:se<=122?!0:se<=65535?se>=170&&ps.test(String.fromCharCode(se)):Qa(se,yo)||Qa(se,bo)}var Nc={keyword:["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"],strict:["implements","interface","let","package","private","protected","public","static","yield"],strictBind:["eval","arguments"]},iA=new Set(Nc.keyword),ma=new Set(Nc.strict),vu=new Set(Nc.strictBind);function li(se,O){return O&&se==="await"||se==="enum"}function Ei(se,O){return li(se,O)||ma.has(se)}function Ps(se){return vu.has(se)}function Xa(se,O){return Ei(se,O)||Ps(se)}function ac(se){return iA.has(se)}function Yl(se,O,K){return se===64&&O===64&&gc(K)}var Wc=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);function Sg(se){return Wc.has(se)}var Ul=class{constructor(se){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=se}},Xu=class{constructor(se,O){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=se,this.inModule=O}get inTopLevel(){return(this.currentScope().flags&1)>0}get inFunction(){return(this.currentVarScopeFlags()&2)>0}get allowSuper(){return(this.currentThisScopeFlags()&16)>0}get allowDirectSuper(){return(this.currentThisScopeFlags()&32)>0}get inClass(){return(this.currentThisScopeFlags()&64)>0}get inClassAndNotInNonArrowFunction(){let se=this.currentThisScopeFlags();return(se&64)>0&&(se&2)===0}get inStaticBlock(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&128)return!0;if(O&451)return!1}}get inNonArrowFunction(){return(this.currentThisScopeFlags()&2)>0}get treatFunctionsAsVar(){return this.treatFunctionsAsVarInScope(this.currentScope())}createScope(se){return new Ul(se)}enter(se){this.scopeStack.push(this.createScope(se))}exit(){return this.scopeStack.pop().flags}treatFunctionsAsVarInScope(se){return!!(se.flags&130||!this.parser.inModule&&se.flags&1)}declareName(se,O,K){let we=this.currentScope();if(O&8||O&16){this.checkRedeclarationInScope(we,se,O,K);let gt=we.names.get(se)||0;O&16?gt=gt|4:(we.firstLexicalName||(we.firstLexicalName=se),gt=gt|2),we.names.set(se,gt),O&8&&this.maybeExportDefined(we,se)}else if(O&4)for(let gt=this.scopeStack.length-1;gt>=0&&(we=this.scopeStack[gt],this.checkRedeclarationInScope(we,se,O,K),we.names.set(se,(we.names.get(se)||0)|1),this.maybeExportDefined(we,se),!(we.flags&387));--gt);this.parser.inModule&&we.flags&1&&this.undefinedExports.delete(se)}maybeExportDefined(se,O){this.parser.inModule&&se.flags&1&&this.undefinedExports.delete(O)}checkRedeclarationInScope(se,O,K,we){this.isRedeclaredInScope(se,O,K)&&this.parser.raise(X.VarRedeclaration,we,{identifierName:O})}isRedeclaredInScope(se,O,K){if(!(K&1))return!1;if(K&8)return se.names.has(O);let we=se.names.get(O);return K&16?(we&2)>0||!this.treatFunctionsAsVarInScope(se)&&(we&1)>0:(we&2)>0&&!(se.flags&8&&se.firstLexicalName===O)||!this.treatFunctionsAsVarInScope(se)&&(we&4)>0}checkLocalExport(se){let{name:O}=se;this.scopeStack[0].names.has(O)||this.undefinedExports.set(O,se.loc.start)}currentScope(){return this.scopeStack[this.scopeStack.length-1]}currentVarScopeFlags(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&387)return O}}currentThisScopeFlags(){for(let se=this.scopeStack.length-1;;se--){let{flags:O}=this.scopeStack[se];if(O&451&&!(O&4))return O}}},Da=class extends Ul{constructor(...se){super(...se),this.declareFunctions=new Set}},pu=class extends Xu{createScope(se){return new Da(se)}declareName(se,O,K){let we=this.currentScope();if(O&2048){this.checkRedeclarationInScope(we,se,O,K),this.maybeExportDefined(we,se),we.declareFunctions.add(se);return}super.declareName(se,O,K)}isRedeclaredInScope(se,O,K){if(super.isRedeclaredInScope(se,O,K))return!0;if(K&2048&&!se.declareFunctions.has(O)){let we=se.names.get(O);return(we&4)>0||(we&2)>0}return!1}checkLocalExport(se){this.scopeStack[0].declareFunctions.has(se.name)||super.checkLocalExport(se)}},_g=class{constructor(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}sourceToOffsetPos(se){return se+this.startIndex}offsetToSourcePos(se){return se-this.startIndex}hasPlugin(se){if(typeof se=="string")return this.plugins.has(se);{let[O,K]=se;if(!this.hasPlugin(O))return!1;let we=this.plugins.get(O);for(let gt of Object.keys(K))if(we?.[gt]!==K[gt])return!1;return!0}}getPluginOption(se,O){var K;return(K=this.plugins.get(se))==null?void 0:K[O]}};function mI(se,O){se.trailingComments===void 0?se.trailingComments=O:se.trailingComments.unshift(...O)}function Qh(se,O){se.leadingComments===void 0?se.leadingComments=O:se.leadingComments.unshift(...O)}function Ri(se,O){se.innerComments===void 0?se.innerComments=O:se.innerComments.unshift(...O)}function Do(se,O,K){let we=null,gt=O.length;for(;we===null&>>0;)we=O[--gt];we===null||we.start>K.start?Ri(se,K.comments):mI(we,K.comments)}var Wt=class extends _g{addComment(se){this.filename&&(se.loc.filename=this.filename);let{commentsLen:O}=this.state;this.comments.length!==O&&(this.comments.length=O),this.comments.push(se),this.state.commentsLen++}processComment(se){let{commentStack:O}=this.state,K=O.length;if(K===0)return;let we=K-1,gt=O[we];gt.start===se.end&&(gt.leadingNode=se,we--);let{start:sr}=se;for(;we>=0;we--){let Yr=O[we],Lr=Yr.end;if(Lr>sr)Yr.containingNode=se,this.finalizeComment(Yr),O.splice(we,1);else{Lr===sr&&(Yr.trailingNode=se);break}}}finalizeComment(se){let{comments:O}=se;if(se.leadingNode!==null||se.trailingNode!==null)se.leadingNode!==null&&mI(se.leadingNode,O),se.trailingNode!==null&&Qh(se.trailingNode,O);else{let{containingNode:K,start:we}=se;if(this.input.charCodeAt(this.offsetToSourcePos(we)-1)===44)switch(K.type){case"ObjectExpression":case"ObjectPattern":case"RecordExpression":Do(K,K.properties,se);break;case"CallExpression":case"OptionalCallExpression":Do(K,K.arguments,se);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Do(K,K.params,se);break;case"ArrayExpression":case"ArrayPattern":case"TupleExpression":Do(K,K.elements,se);break;case"ExportNamedDeclaration":case"ImportDeclaration":Do(K,K.specifiers,se);break;case"TSEnumDeclaration":Do(K,K.members,se);break;case"TSEnumBody":Do(K,K.members,se);break;default:Ri(K,O)}else Ri(K,O)}}finalizeRemainingComments(){let{commentStack:se}=this.state;for(let O=se.length-1;O>=0;O--)this.finalizeComment(se[O]);this.state.commentStack=[]}resetPreviousNodeTrailingComments(se){let{commentStack:O}=this.state,{length:K}=O;if(K===0)return;let we=O[K-1];we.leadingNode===se&&(we.leadingNode=null)}resetPreviousIdentifierLeadingComments(se){let{commentStack:O}=this.state,{length:K}=O;K!==0&&(O[K-1].trailingNode===se?O[K-1].trailingNode=null:K>=2&&O[K-2].trailingNode===se&&(O[K-2].trailingNode=null))}takeSurroundingComments(se,O,K){let{commentStack:we}=this.state,gt=we.length;if(gt===0)return;let sr=gt-1;for(;sr>=0;sr--){let Yr=we[sr],Lr=Yr.end;if(Yr.start===K)Yr.leadingNode=se;else if(Lr===O)Yr.trailingNode=se;else if(Lr0}set strict(O){O?this.flags|=1:this.flags&=-2}init({strictMode:O,sourceType:K,startIndex:we,startLine:gt,startColumn:sr}){this.strict=O===!1?!1:O===!0?!0:K==="module",this.startIndex=we,this.curLine=gt,this.lineStart=-sr,this.startLoc=this.endLoc=new r(gt,sr,we)}get maybeInArrowParameters(){return(this.flags&2)>0}set maybeInArrowParameters(O){O?this.flags|=2:this.flags&=-3}get inType(){return(this.flags&4)>0}set inType(O){O?this.flags|=4:this.flags&=-5}get noAnonFunctionType(){return(this.flags&8)>0}set noAnonFunctionType(O){O?this.flags|=8:this.flags&=-9}get hasFlowComment(){return(this.flags&16)>0}set hasFlowComment(O){O?this.flags|=16:this.flags&=-17}get isAmbientContext(){return(this.flags&32)>0}set isAmbientContext(O){O?this.flags|=32:this.flags&=-33}get inAbstractClass(){return(this.flags&64)>0}set inAbstractClass(O){O?this.flags|=64:this.flags&=-65}get inDisallowConditionalTypesContext(){return(this.flags&128)>0}set inDisallowConditionalTypesContext(O){O?this.flags|=128:this.flags&=-129}get soloAwait(){return(this.flags&256)>0}set soloAwait(O){O?this.flags|=256:this.flags&=-257}get inFSharpPipelineDirectBody(){return(this.flags&512)>0}set inFSharpPipelineDirectBody(O){O?this.flags|=512:this.flags&=-513}get canStartJSXElement(){return(this.flags&1024)>0}set canStartJSXElement(O){O?this.flags|=1024:this.flags&=-1025}get containsEsc(){return(this.flags&2048)>0}set containsEsc(O){O?this.flags|=2048:this.flags&=-2049}get hasTopLevelAwait(){return(this.flags&4096)>0}set hasTopLevelAwait(O){O?this.flags|=4096:this.flags&=-4097}curPosition(){return new r(this.curLine,this.pos-this.lineStart,this.pos+this.startIndex)}clone(){let O=new oyi;return O.flags=this.flags,O.startIndex=this.startIndex,O.curLine=this.curLine,O.lineStart=this.lineStart,O.startLoc=this.startLoc,O.endLoc=this.endLoc,O.errors=this.errors.slice(),O.potentialArrowAt=this.potentialArrowAt,O.noArrowAt=this.noArrowAt.slice(),O.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),O.topicContext=this.topicContext,O.labels=this.labels.slice(),O.commentsLen=this.commentsLen,O.commentStack=this.commentStack.slice(),O.pos=this.pos,O.type=this.type,O.value=this.value,O.start=this.start,O.end=this.end,O.lastTokEndLoc=this.lastTokEndLoc,O.lastTokStartLoc=this.lastTokStartLoc,O.context=this.context.slice(),O.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,O.strictErrors=this.strictErrors,O.tokensLength=this.tokensLength,O}},GA=function(se){return se>=48&&se<=57},$i={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},dl={bin:se=>se===48||se===49,oct:se=>se>=48&&se<=55,dec:se=>se>=48&&se<=57,hex:se=>se>=48&&se<=57||se>=65&&se<=70||se>=97&&se<=102};function Uf(se,O,K,we,gt,sr){let Yr=K,Lr=we,fi=gt,$n="",ra=null,kc=K,{length:Nl}=O;for(;;){if(K>=Nl){sr.unterminated(Yr,Lr,fi),$n+=O.slice(kc,K);break}let ca=O.charCodeAt(K);if(Kd(se,ca,O,K)){$n+=O.slice(kc,K);break}if(ca===92){$n+=O.slice(kc,K);let Bl=oA(O,K,we,gt,se==="template",sr);Bl.ch===null&&!ra?ra={pos:K,lineStart:we,curLine:gt}:$n+=Bl.ch,{pos:K,lineStart:we,curLine:gt}=Bl,kc=K}else ca===8232||ca===8233?(++K,++gt,we=K):ca===10||ca===13?se==="template"?($n+=O.slice(kc,K)+` `,++K,ca===13&&O.charCodeAt(K)===10&&++K,++gt,kc=we=K):sr.unterminated(Yr,Lr,fi):++K}return{pos:K,str:$n,firstInvalidLoc:ra,lineStart:we,curLine:gt,containsInvalid:!!ra}}function Kd(se,O,K,we){return se==="template"?O===96||O===36&&K.charCodeAt(we+1)===123:O===(se==="double"?34:39)}function oA(se,O,K,we,gt,sr){let Yr=!gt;O++;let Lr=$n=>({pos:O,ch:$n,lineStart:K,curLine:we}),fi=se.charCodeAt(O++);switch(fi){case 110:return Lr(` `);case 114:return Lr("\r");case 120:{let $n;return{code:$n,pos:O}=oo(se,O,K,we,2,!1,Yr,sr),Lr($n===null?null:String.fromCharCode($n))}case 117:{let $n;return{code:$n,pos:O}=cc(se,O,K,we,Yr,sr),Lr($n===null?null:String.fromCodePoint($n))}case 116:return Lr(" ");case 98:return Lr("\b");case 118:return Lr("\v");case 102:return Lr("\f");case 13:se.charCodeAt(O)===10&&++O;case 10:K=O,++we;case 8232:case 8233:return Lr("");case 56:case 57:if(gt)return Lr(null);sr.strictNumericEscape(O-1,K,we);default:if(fi>=48&&fi<=55){let $n=O-1,ra=/^[0-7]+/.exec(se.slice($n,O+2))[0],kc=parseInt(ra,8);kc>255&&(ra=ra.slice(0,-1),kc=parseInt(ra,8)),O+=ra.length-1;let Nl=se.charCodeAt(O);if(ra!=="0"||Nl===56||Nl===57){if(gt)return Lr(null);sr.strictNumericEscape($n,K,we)}return Lr(String.fromCharCode(kc))}return Lr(String.fromCharCode(fi))}}function oo(se,O,K,we,gt,sr,Yr,Lr){let fi=O,$n;return{n:$n,pos:O}=Ki(se,O,K,we,16,gt,sr,!1,Lr,!Yr),$n===null&&(Yr?Lr.invalidEscapeSequence(fi,K,we):O=fi-1),{code:$n,pos:O}}function Ki(se,O,K,we,gt,sr,Yr,Lr,fi,$n){let ra=O,kc=gt===16?$i.hex:$i.decBinOct,Nl=gt===16?dl.hex:gt===10?dl.dec:gt===8?dl.oct:dl.bin,ca=!1,Bl=0;for(let $g=0,SA=sr??1/0;$g=97?lp=lI-97+10:lI>=65?lp=lI-65+10:GA(lI)?lp=lI-48:lp=1/0,lp>=gt){if(lp<=9&&$n)return{n:null,pos:O};if(lp<=9&&fi.invalidDigit(O,K,we,gt))lp=0;else if(Yr)lp=0,ca=!0;else break}++O,Bl=Bl*gt+lp}return O===ra||sr!=null&&O-ra!==sr||ca?{n:null,pos:O}:{n:Bl,pos:O}}function cc(se,O,K,we,gt,sr){let Yr=se.charCodeAt(O),Lr;if(Yr===123){if(++O,{code:Lr,pos:O}=oo(se,O,K,we,se.indexOf("}",O)-O,!0,gt,sr),++O,Lr!==null&&Lr>1114111)if(gt)sr.invalidCodePoint(O,K,we);else return{code:null,pos:O}}else({code:Lr,pos:O}=oo(se,O,K,we,4,!1,gt,sr));return{code:Lr,pos:O}}function Xs(se,O,K){return new r(K,se-O,se)}var ws=new Set([103,109,115,105,121,117,100,118]),Gs=class{constructor(se){let O=se.startIndex||0;this.type=se.type,this.value=se.value,this.start=O+se.start,this.end=O+se.end,this.loc=new n(se.startLoc,se.endLoc)}},Ma=class extends Wt{constructor(se,O){super(),this.isLookahead=void 0,this.tokens=[],this.errorHandlers_readInt={invalidDigit:(K,we,gt,sr)=>this.optionFlags&1024?(this.raise(X.InvalidDigit,Xs(K,we,gt),{radix:sr}),!0):!1,numericSeparatorInEscapeSequence:this.errorBuilder(X.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:this.errorBuilder(X.UnexpectedNumericSeparator)},this.errorHandlers_readCodePoint=Object.assign({},this.errorHandlers_readInt,{invalidEscapeSequence:this.errorBuilder(X.InvalidEscapeSequence),invalidCodePoint:this.errorBuilder(X.InvalidCodePoint)}),this.errorHandlers_readStringContents_string=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:(K,we,gt)=>{this.recordStrictModeErrors(X.StrictNumericEscape,Xs(K,we,gt))},unterminated:(K,we,gt)=>{throw this.raise(X.UnterminatedString,Xs(K-1,we,gt))}}),this.errorHandlers_readStringContents_template=Object.assign({},this.errorHandlers_readCodePoint,{strictNumericEscape:this.errorBuilder(X.StrictNumericEscape),unterminated:(K,we,gt)=>{throw this.raise(X.UnterminatedTemplate,Xs(K,we,gt))}}),this.state=new OA,this.state.init(se),this.input=O,this.length=O.length,this.comments=[],this.isLookahead=!1}pushToken(se){this.tokens.length=this.state.tokensLength,this.tokens.push(se),++this.state.tokensLength}next(){this.checkKeywordEscapes(),this.optionFlags&128&&this.pushToken(new Gs(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()}eat(se){return this.match(se)?(this.next(),!0):!1}match(se){return this.state.type===se}createLookaheadState(se){return{pos:se.pos,value:null,type:se.type,start:se.start,end:se.end,context:[this.curContext()],inType:se.inType,startLoc:se.startLoc,lastTokEndLoc:se.lastTokEndLoc,curLine:se.curLine,lineStart:se.lineStart,curPosition:se.curPosition}}lookahead(){let se=this.state;this.state=this.createLookaheadState(se),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;let O=this.state;return this.state=se,O}nextTokenStart(){return this.nextTokenStartSince(this.state.pos)}nextTokenStartSince(se){return Yn.lastIndex=se,Yn.test(this.input)?Yn.lastIndex:se}lookaheadCharCode(){return this.input.charCodeAt(this.nextTokenStart())}nextTokenInLineStart(){return this.nextTokenInLineStartSince(this.state.pos)}nextTokenInLineStartSince(se){return Ko.lastIndex=se,Ko.test(this.input)?Ko.lastIndex:se}lookaheadInLineCharCode(){return this.input.charCodeAt(this.nextTokenInLineStart())}codePointAtPos(se){let O=this.input.charCodeAt(se);if((O&64512)===55296&&++sethis.raise(O,K)),this.state.strictErrors.clear())}curContext(){return this.state.context[this.state.context.length-1]}nextToken(){if(this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length){this.finishToken(140);return}this.getTokenFromCode(this.codePointAtPos(this.state.pos))}skipBlockComment(se){let O;this.isLookahead||(O=this.state.curPosition());let K=this.state.pos,we=this.input.indexOf(se,K+2);if(we===-1)throw this.raise(X.UnterminatedComment,this.state.curPosition());for(this.state.pos=we+se.length,Ru.lastIndex=K+2;Ru.test(this.input)&&Ru.lastIndex<=we;)++this.state.curLine,this.state.lineStart=Ru.lastIndex;if(this.isLookahead)return;let gt={type:"CommentBlock",value:this.input.slice(K+2,we),start:this.sourceToOffsetPos(K),end:this.sourceToOffsetPos(we+se.length),loc:new n(O,this.state.curPosition())};return this.optionFlags&128&&this.pushToken(gt),gt}skipLineComment(se){let O=this.state.pos,K;this.isLookahead||(K=this.state.curPosition());let we=this.input.charCodeAt(this.state.pos+=se);if(this.state.posse)){let gt=this.skipLineComment(3);gt!==void 0&&(this.addComment(gt),O?.push(gt))}else break e}else if(K===60&&!this.inModule&&this.optionFlags&4096){let we=this.state.pos;if(this.input.charCodeAt(we+1)===33&&this.input.charCodeAt(we+2)===45&&this.input.charCodeAt(we+3)===45){let gt=this.skipLineComment(4);gt!==void 0&&(this.addComment(gt),O?.push(gt))}else break e}else break e}}if(O?.length>0){let K=this.state.pos,we={start:this.sourceToOffsetPos(se),end:this.sourceToOffsetPos(K),comments:O,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(we)}}finishToken(se,O){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();let K=this.state.type;this.state.type=se,this.state.value=O,this.isLookahead||this.updateContext(K)}replaceToken(se){this.state.type=se,this.updateContext()}readToken_numberSign(){if(this.state.pos===0&&this.readToken_interpreter())return;let se=this.state.pos+1,O=this.codePointAtPos(se);if(O>=48&&O<=57)throw this.raise(X.UnexpectedDigitAfterHash,this.state.curPosition());if(O===123||O===91&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),this.getPluginOption("recordAndTuple","syntaxType")==="bar")throw this.raise(O===123?X.RecordExpressionHashIncorrectStartSyntaxType:X.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,O===123?this.finishToken(7):this.finishToken(1)}else gc(O)?(++this.state.pos,this.finishToken(139,this.readWord1(O))):O===92?(++this.state.pos,this.finishToken(139,this.readWord1())):this.finishOp(27,1)}readToken_dot(){let se=this.input.charCodeAt(this.state.pos+1);if(se>=48&&se<=57){this.readNumber(!0);return}se===46&&this.input.charCodeAt(this.state.pos+2)===46?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))}readToken_slash(){this.input.charCodeAt(this.state.pos+1)===61?this.finishOp(31,2):this.finishOp(56,1)}readToken_interpreter(){if(this.state.pos!==0||this.length<2)return!1;let se=this.input.charCodeAt(this.state.pos+1);if(se!==33)return!1;let O=this.state.pos;for(this.state.pos+=1;!Vs(se)&&++this.state.pos=48&&O<=57)?(this.state.pos+=2,this.finishToken(18)):(++this.state.pos,this.finishToken(17))}getTokenFromCode(se){switch(se){case 46:this.readToken_dot();return;case 40:++this.state.pos,this.finishToken(10);return;case 41:++this.state.pos,this.finishToken(11);return;case 59:++this.state.pos,this.finishToken(13);return;case 44:++this.state.pos,this.finishToken(12);return;case 91:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(X.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:++this.state.pos,this.finishToken(3);return;case 123:if(this.hasPlugin("recordAndTuple")&&this.input.charCodeAt(this.state.pos+1)===124){if(this.getPluginOption("recordAndTuple","syntaxType")!=="bar")throw this.raise(X.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:++this.state.pos,this.finishToken(8);return;case 58:this.hasPlugin("functionBind")&&this.input.charCodeAt(this.state.pos+1)===58?this.finishOp(15,2):(++this.state.pos,this.finishToken(14));return;case 63:this.readToken_question();return;case 96:this.readTemplateToken();return;case 48:{let O=this.input.charCodeAt(this.state.pos+1);if(O===120||O===88){this.readRadixNumber(16);return}if(O===111||O===79){this.readRadixNumber(8);return}if(O===98||O===66){this.readRadixNumber(2);return}}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:this.readNumber(!1);return;case 34:case 39:this.readString(se);return;case 47:this.readToken_slash();return;case 37:case 42:this.readToken_mult_modulo(se);return;case 124:case 38:this.readToken_pipe_amp(se);return;case 94:this.readToken_caret();return;case 43:case 45:this.readToken_plus_min(se);return;case 60:this.readToken_lt();return;case 62:this.readToken_gt();return;case 61:case 33:this.readToken_eq_excl(se);return;case 126:this.finishOp(36,1);return;case 64:this.readToken_atSign();return;case 35:this.readToken_numberSign();return;case 92:this.readWord();return;default:if(gc(se)){this.readWord(se);return}}throw this.raise(X.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(se)})}finishOp(se,O){let K=this.input.slice(this.state.pos,this.state.pos+O);this.state.pos+=O,this.finishToken(se,K)}readRegexp(){let se=this.state.startLoc,O=this.state.start+1,K,we,{pos:gt}=this.state;for(;;++gt){if(gt>=this.length)throw this.raise(X.UnterminatedRegExp,a(se,1));let fi=this.input.charCodeAt(gt);if(Vs(fi))throw this.raise(X.UnterminatedRegExp,a(se,1));if(K)K=!1;else{if(fi===91)we=!0;else if(fi===93&&we)we=!1;else if(fi===47&&!we)break;K=fi===92}}let sr=this.input.slice(O,gt);++gt;let Yr="",Lr=()=>a(se,gt+2-O);for(;gt=2&&this.input.charCodeAt(O)===48;if(Lr){let Nl=this.input.slice(O,this.state.pos);if(this.recordStrictModeErrors(X.StrictOctalLiteral,K),!this.state.strict){let ca=Nl.indexOf("_");ca>0&&this.raise(X.ZeroDigitNumericSeparator,a(K,ca))}Yr=Lr&&!/[89]/.test(Nl)}let fi=this.input.charCodeAt(this.state.pos);if(fi===46&&!Yr&&(++this.state.pos,this.readInt(10),we=!0,fi=this.input.charCodeAt(this.state.pos)),(fi===69||fi===101)&&!Yr&&(fi=this.input.charCodeAt(++this.state.pos),(fi===43||fi===45)&&++this.state.pos,this.readInt(10)===null&&this.raise(X.InvalidOrMissingExponent,K),we=!0,sr=!0,fi=this.input.charCodeAt(this.state.pos)),fi===110&&((we||Lr)&&this.raise(X.InvalidBigIntLiteral,K),++this.state.pos,gt=!0),fi===109){this.expectPlugin("decimal",this.state.curPosition()),(sr||Lr)&&this.raise(X.InvalidDecimal,K),++this.state.pos;var $n=!0}if(gc(this.codePointAtPos(this.state.pos)))throw this.raise(X.NumberIdentifier,this.state.curPosition());let ra=this.input.slice(O,this.state.pos).replace(/[_mn]/g,"");if(gt){this.finishToken(136,ra);return}if($n){this.finishToken(137,ra);return}let kc=Yr?parseInt(ra,8):parseFloat(ra);this.finishToken(135,kc)}readCodePoint(se){let{code:O,pos:K}=cc(this.input,this.state.pos,this.state.lineStart,this.state.curLine,se,this.errorHandlers_readCodePoint);return this.state.pos=K,O}readString(se){let{str:O,pos:K,curLine:we,lineStart:gt}=Uf(se===34?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string);this.state.pos=K+1,this.state.lineStart=gt,this.state.curLine=we,this.finishToken(134,O)}readTemplateContinuation(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()}readTemplateToken(){let se=this.input[this.state.pos],{str:O,firstInvalidLoc:K,pos:we,curLine:gt,lineStart:sr}=Uf("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template);this.state.pos=we+1,this.state.lineStart=sr,this.state.curLine=gt,K&&(this.state.firstInvalidTemplateEscapePos=new r(K.curLine,K.pos-K.lineStart,this.sourceToOffsetPos(K.pos))),this.input.codePointAt(we)===96?this.finishToken(24,K?null:se+O+"`"):(this.state.pos++,this.finishToken(25,K?null:se+O+"${"))}recordStrictModeErrors(se,O){let K=O.index;this.state.strict&&!this.state.strictErrors.has(K)?this.raise(se,O):this.state.strictErrors.set(K,[se,O])}readWord1(se){this.state.containsEsc=!1;let O="",K=this.state.pos,we=this.state.pos;for(se!==void 0&&(this.state.pos+=se<=65535?1:2);this.state.pos=0;Yr--){let Lr=sr[Yr];if(Lr.loc.index===gt)return sr[Yr]=se(we,K);if(Lr.loc.indexthis.hasPlugin(O)))throw this.raise(X.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:se})}errorBuilder(se){return(O,K,we)=>{this.raise(se,Xs(O,K,we))}}},Dc=class{constructor(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}},As=class{constructor(se){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=se}current(){return this.stack[this.stack.length-1]}enter(){this.stack.push(new Dc)}exit(){let se=this.stack.pop(),O=this.current();for(let[K,we]of Array.from(se.undefinedPrivateNames))O?O.undefinedPrivateNames.has(K)||O.undefinedPrivateNames.set(K,we):this.parser.raise(X.InvalidPrivateFieldResolution,we,{identifierName:K})}declarePrivateName(se,O,K){let{privateNames:we,loneAccessors:gt,undefinedPrivateNames:sr}=this.current(),Yr=we.has(se);if(O&3){let Lr=Yr&>.get(se);if(Lr){let fi=Lr&4,$n=O&4,ra=Lr&3,kc=O&3;Yr=ra===kc||fi!==$n,Yr||gt.delete(se)}else Yr||gt.set(se,O)}Yr&&this.parser.raise(X.PrivateNameRedeclaration,K,{identifierName:se}),we.add(se),sr.delete(se)}usePrivateName(se,O){let K;for(K of this.stack)if(K.privateNames.has(se))return;K?K.undefinedPrivateNames.set(se,O):this.parser.raise(X.InvalidPrivateFieldResolution,O,{identifierName:se})}},Tf=class{constructor(se=0){this.type=se}canBeArrowParameterDeclaration(){return this.type===2||this.type===1}isCertainlyParameterDeclaration(){return this.type===3}},cm=class extends Tf{constructor(se){super(se),this.declarationErrors=new Map}recordDeclarationError(se,O){let K=O.index;this.declarationErrors.set(K,[se,O])}clearDeclarationError(se){this.declarationErrors.delete(se)}iterateErrors(se){this.declarationErrors.forEach(se)}},Fl=class{constructor(se){this.parser=void 0,this.stack=[new Tf],this.parser=se}enter(se){this.stack.push(se)}exit(){this.stack.pop()}recordParameterInitializerError(se,O){let K=O.loc.start,{stack:we}=this,gt=we.length-1,sr=we[gt];for(;!sr.isCertainlyParameterDeclaration();){if(sr.canBeArrowParameterDeclaration())sr.recordDeclarationError(se,K);else return;sr=we[--gt]}this.parser.raise(se,K)}recordArrowParameterBindingError(se,O){let{stack:K}=this,we=K[K.length-1],gt=O.loc.start;if(we.isCertainlyParameterDeclaration())this.parser.raise(se,gt);else if(we.canBeArrowParameterDeclaration())we.recordDeclarationError(se,gt);else return}recordAsyncArrowParametersError(se){let{stack:O}=this,K=O.length-1,we=O[K];for(;we.canBeArrowParameterDeclaration();)we.type===2&&we.recordDeclarationError(X.AwaitBindingIdentifier,se),we=O[--K]}validateAsPattern(){let{stack:se}=this,O=se[se.length-1];O.canBeArrowParameterDeclaration()&&O.iterateErrors(([K,we])=>{this.parser.raise(K,we);let gt=se.length-2,sr=se[gt];for(;sr.canBeArrowParameterDeclaration();)sr.clearDeclarationError(we.index),sr=se[--gt]})}};function rc(){return new Tf(3)}function sd(){return new cm(1)}function Om(){return new cm(2)}function il(){return new Tf}var FA=class{constructor(){this.stacks=[]}enter(se){this.stacks.push(se)}exit(){this.stacks.pop()}currentFlags(){return this.stacks[this.stacks.length-1]}get hasAwait(){return(this.currentFlags()&2)>0}get hasYield(){return(this.currentFlags()&1)>0}get hasReturn(){return(this.currentFlags()&4)>0}get hasIn(){return(this.currentFlags()&8)>0}};function ZA(se,O){return(se?2:0)|(O?1:0)}var El=class extends Ma{addExtra(se,O,K,we=!0){if(!se)return;let{extra:gt}=se;gt==null&&(gt={},se.extra=gt),we?gt[O]=K:Object.defineProperty(gt,O,{enumerable:we,value:K})}isContextual(se){return this.state.type===se&&!this.state.containsEsc}isUnparsedContextual(se,O){let K=se+O.length;if(this.input.slice(se,K)===O){let we=this.input.charCodeAt(K);return!(Cg(we)||(we&64512)===55296)}return!1}isLookaheadContextual(se){let O=this.nextTokenStart();return this.isUnparsedContextual(O,se)}eatContextual(se){return this.isContextual(se)?(this.next(),!0):!1}expectContextual(se,O){if(!this.eatContextual(se)){if(O!=null)throw this.raise(O,this.state.startLoc);this.unexpected(null,se)}}canInsertSemicolon(){return this.match(140)||this.match(8)||this.hasPrecedingLineBreak()}hasPrecedingLineBreak(){return Ju(this.input,this.offsetToSourcePos(this.state.lastTokEndLoc.index),this.state.start)}hasFollowingLineBreak(){return Ju(this.input,this.state.end,this.nextTokenStart())}isLineTerminator(){return this.eat(13)||this.canInsertSemicolon()}semicolon(se=!0){(se?this.isLineTerminator():this.eat(13))||this.raise(X.MissingSemicolon,this.state.lastTokEndLoc)}expect(se,O){this.eat(se)||this.unexpected(O,se)}tryParse(se,O=this.state.clone()){let K={node:null};try{let we=se((gt=null)=>{throw K.node=gt,K});if(this.state.errors.length>O.errors.length){let gt=this.state;return this.state=O,this.state.tokensLength=gt.tokensLength,{node:we,error:gt.errors[O.errors.length],thrown:!1,aborted:!1,failState:gt}}return{node:we,error:null,thrown:!1,aborted:!1,failState:null}}catch(we){let gt=this.state;if(this.state=O,we instanceof SyntaxError)return{node:null,error:we,thrown:!0,aborted:!1,failState:gt};if(we===K)return{node:K.node,error:null,thrown:!1,aborted:!0,failState:gt};throw we}}checkExpressionErrors(se,O){if(!se)return!1;let{shorthandAssignLoc:K,doubleProtoLoc:we,privateKeyLoc:gt,optionalParametersLoc:sr}=se,Yr=!!K||!!we||!!sr||!!gt;if(!O)return Yr;K!=null&&this.raise(X.InvalidCoverInitializedName,K),we!=null&&this.raise(X.DuplicateProto,we),gt!=null&&this.raise(X.UnexpectedPrivateField,gt),sr!=null&&this.unexpected(sr)}isLiteralPropertyName(){return jt(this.state.type)}isPrivateName(se){return se.type==="PrivateName"}getPrivateNameSV(se){return se.id.name}hasPropertyAsPrivateName(se){return(se.type==="MemberExpression"||se.type==="OptionalMemberExpression")&&this.isPrivateName(se.property)}isObjectProperty(se){return se.type==="ObjectProperty"}isObjectMethod(se){return se.type==="ObjectMethod"}initializeScopes(se=this.options.sourceType==="module"){let O=this.state.labels;this.state.labels=[];let K=this.exportedIdentifiers;this.exportedIdentifiers=new Set;let we=this.inModule;this.inModule=se;let gt=this.scope,sr=this.getScopeHandler();this.scope=new sr(this,se);let Yr=this.prodParam;this.prodParam=new FA;let Lr=this.classScope;this.classScope=new As(this);let fi=this.expressionScope;return this.expressionScope=new Fl(this),()=>{this.state.labels=O,this.exportedIdentifiers=K,this.inModule=we,this.scope=gt,this.prodParam=Yr,this.classScope=Lr,this.expressionScope=fi}}enterInitialScopes(){let se=0;this.inModule&&(se|=2),this.scope.enter(1),this.prodParam.enter(se)}checkDestructuringPrivate(se){let{privateKeyLoc:O}=se;O!==null&&this.expectPlugin("destructuringPrivate",O)}},yg=class{constructor(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null}},Mp=class{constructor(se,O,K){this.type="",this.start=O,this.end=0,this.loc=new n(K),se?.optionFlags&64&&(this.range=[O,0]),se!=null&&se.filename&&(this.loc.filename=se.filename)}},MA=Mp.prototype;MA.__clone=function(){let se=new Mp(void 0,this.start,this.loc.start),O=Object.keys(this);for(let K=0,we=O.length;K`Cannot overwrite reserved type ${se}.`,DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:({memberName:se,enumName:O})=>`Boolean enum members need to be initialized. Use either \`${se} = true,\` or \`${se} = false,\` in enum \`${O}\`.`,EnumDuplicateMemberName:({memberName:se,enumName:O})=>`Enum member names need to be unique, but the name \`${se}\` has already been used before in enum \`${O}\`.`,EnumInconsistentMemberValues:({enumName:se})=>`Enum \`${se}\` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.`,EnumInvalidExplicitType:({invalidEnumType:se,enumName:O})=>`Enum type \`${se}\` is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${O}\`.`,EnumInvalidExplicitTypeUnknownSupplied:({enumName:se})=>`Supplied enum type is not valid. Use one of \`boolean\`, \`number\`, \`string\`, or \`symbol\` in enum \`${se}\`.`,EnumInvalidMemberInitializerPrimaryType:({enumName:se,memberName:O,explicitType:K})=>`Enum \`${se}\` has type \`${K}\`, so the initializer of \`${O}\` needs to be a ${K} literal.`,EnumInvalidMemberInitializerSymbolType:({enumName:se,memberName:O})=>`Symbol enum members cannot be initialized. Use \`${O},\` in enum \`${se}\`.`,EnumInvalidMemberInitializerUnknownType:({enumName:se,memberName:O})=>`The enum member initializer for \`${O}\` needs to be a literal (either a boolean, number, or string) in enum \`${se}\`.`,EnumInvalidMemberName:({enumName:se,memberName:O,suggestion:K})=>`Enum member names cannot start with lowercase 'a' through 'z'. Instead of using \`${O}\`, consider using \`${K}\`, in enum \`${se}\`.`,EnumNumberMemberNotInitialized:({enumName:se,memberName:O})=>`Number enum members need to be initialized, e.g. \`${O} = 1\` in enum \`${se}\`.`,EnumStringMemberInconsistentlyInitialized:({enumName:se})=>`String enum members need to consistently either all use initializers, or use no initializers, in enum \`${se}\`.`,GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:({reservedType:se})=>`Unexpected reserved type ${se}.`,UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.",UnsupportedDeclareExportKind:({unsupportedExportKind:se,suggestion:O})=>`\`declare export ${se}\` is not supported. Use \`${O}\` instead.`,UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function Wa(se){return se.type==="DeclareExportAllDeclaration"||se.type==="DeclareExportDeclaration"&&(!se.declaration||se.declaration.type!=="TypeAlias"&&se.declaration.type!=="InterfaceDeclaration")}function Ca(se){return se.importKind==="type"||se.importKind==="typeof"}var ld={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};function Rp(se,O){let K=[],we=[];for(let gt=0;gtclass extends se{constructor(...O){super(...O),this.flowPragma=void 0}getScopeHandler(){return pu}shouldParseTypes(){return this.getPluginOption("flow","all")||this.flowPragma==="flow"}finishToken(O,K){O!==134&&O!==13&&O!==28&&this.flowPragma===void 0&&(this.flowPragma=null),super.finishToken(O,K)}addComment(O){if(this.flowPragma===void 0){let K=np.exec(O.value);if(K)if(K[1]==="flow")this.flowPragma="flow";else if(K[1]==="noflow")this.flowPragma="noflow";else throw new Error("Unexpected flow pragma")}super.addComment(O)}flowParseTypeInitialiser(O){let K=this.state.inType;this.state.inType=!0,this.expect(O||14);let we=this.flowParseType();return this.state.inType=K,we}flowParsePredicate(){let O=this.startNode(),K=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>K.index+1&&this.raise(Fs.UnexpectedSpaceBetweenModuloChecks,K),this.eat(10)?(O.value=super.parseExpression(),this.expect(11),this.finishNode(O,"DeclaredPredicate")):this.finishNode(O,"InferredPredicate")}flowParseTypeAndPredicateInitialiser(){let O=this.state.inType;this.state.inType=!0,this.expect(14);let K=null,we=null;return this.match(54)?(this.state.inType=O,we=this.flowParsePredicate()):(K=this.flowParseType(),this.state.inType=O,this.match(54)&&(we=this.flowParsePredicate())),[K,we]}flowParseDeclareClass(O){return this.next(),this.flowParseInterfaceish(O,!0),this.finishNode(O,"DeclareClass")}flowParseDeclareFunction(O){this.next();let K=O.id=this.parseIdentifier(),we=this.startNode(),gt=this.startNode();this.match(47)?we.typeParameters=this.flowParseTypeParameterDeclaration():we.typeParameters=null,this.expect(10);let sr=this.flowParseFunctionTypeParams();return we.params=sr.params,we.rest=sr.rest,we.this=sr._this,this.expect(11),[we.returnType,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),gt.typeAnnotation=this.finishNode(we,"FunctionTypeAnnotation"),K.typeAnnotation=this.finishNode(gt,"TypeAnnotation"),this.resetEndLocation(K),this.semicolon(),this.scope.declareName(O.id.name,2048,O.id.loc.start),this.finishNode(O,"DeclareFunction")}flowParseDeclare(O,K){if(this.match(80))return this.flowParseDeclareClass(O);if(this.match(68))return this.flowParseDeclareFunction(O);if(this.match(74))return this.flowParseDeclareVariable(O);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(O):(K&&this.raise(Fs.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(O));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(O);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(O);if(this.isContextual(129))return this.flowParseDeclareInterface(O);if(this.match(82))return this.flowParseDeclareExportDeclaration(O,K);this.unexpected()}flowParseDeclareVariable(O){return this.next(),O.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(O.id.name,5,O.id.loc.start),this.semicolon(),this.finishNode(O,"DeclareVariable")}flowParseDeclareModule(O){this.scope.enter(0),this.match(134)?O.id=super.parseExprAtom():O.id=this.parseIdentifier();let K=O.body=this.startNode(),we=K.body=[];for(this.expect(5);!this.match(8);){let Yr=this.startNode();this.match(83)?(this.next(),!this.isContextual(130)&&!this.match(87)&&this.raise(Fs.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),super.parseImport(Yr)):(this.expectContextual(125,Fs.UnsupportedStatementInDeclareModule),Yr=this.flowParseDeclare(Yr,!0)),we.push(Yr)}this.scope.exit(),this.expect(8),this.finishNode(K,"BlockStatement");let gt=null,sr=!1;return we.forEach(Yr=>{Wa(Yr)?(gt==="CommonJS"&&this.raise(Fs.AmbiguousDeclareModuleKind,Yr),gt="ES"):Yr.type==="DeclareModuleExports"&&(sr&&this.raise(Fs.DuplicateDeclareModuleExports,Yr),gt==="ES"&&this.raise(Fs.AmbiguousDeclareModuleKind,Yr),gt="CommonJS",sr=!0)}),O.kind=gt||"CommonJS",this.finishNode(O,"DeclareModule")}flowParseDeclareExportDeclaration(O,K){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?O.declaration=this.flowParseDeclare(this.startNode()):(O.declaration=this.flowParseType(),this.semicolon()),O.default=!0,this.finishNode(O,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!K){let we=this.state.value;throw this.raise(Fs.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:we,suggestion:ld[we]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return O.declaration=this.flowParseDeclare(this.startNode()),O.default=!1,this.finishNode(O,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return O=this.parseExport(O,null),O.type==="ExportNamedDeclaration"&&(O.type="ExportDeclaration",O.default=!1,delete O.exportKind),O.type="Declare"+O.type,O;this.unexpected()}flowParseDeclareModuleExports(O){return this.next(),this.expectContextual(111),O.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(O,"DeclareModuleExports")}flowParseDeclareTypeAlias(O){this.next();let K=this.flowParseTypeAlias(O);return K.type="DeclareTypeAlias",K}flowParseDeclareOpaqueType(O){this.next();let K=this.flowParseOpaqueType(O,!0);return K.type="DeclareOpaqueType",K}flowParseDeclareInterface(O){return this.next(),this.flowParseInterfaceish(O,!1),this.finishNode(O,"DeclareInterface")}flowParseInterfaceish(O,K){if(O.id=this.flowParseRestrictedIdentifier(!K,!0),this.scope.declareName(O.id.name,K?17:8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.extends=[],this.eat(81))do O.extends.push(this.flowParseInterfaceExtends());while(!K&&this.eat(12));if(K){if(O.implements=[],O.mixins=[],this.eatContextual(117))do O.mixins.push(this.flowParseInterfaceExtends());while(this.eat(12));if(this.eatContextual(113))do O.implements.push(this.flowParseInterfaceExtends());while(this.eat(12))}O.body=this.flowParseObjectType({allowStatic:K,allowExact:!1,allowSpread:!1,allowProto:K,allowInexact:!1})}flowParseInterfaceExtends(){let O=this.startNode();return O.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?O.typeParameters=this.flowParseTypeParameterInstantiation():O.typeParameters=null,this.finishNode(O,"InterfaceExtends")}flowParseInterface(O){return this.flowParseInterfaceish(O,!1),this.finishNode(O,"InterfaceDeclaration")}checkNotUnderscore(O){O==="_"&&this.raise(Fs.UnexpectedReservedUnderscore,this.state.startLoc)}checkReservedType(O,K,we){oa.has(O)&&this.raise(we?Fs.AssignReservedType:Fs.UnexpectedReservedType,K,{reservedType:O})}flowParseRestrictedIdentifier(O,K){return this.checkReservedType(this.state.value,this.state.startLoc,K),this.parseIdentifier(O)}flowParseTypeAlias(O){return O.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(O.id.name,8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(O,"TypeAlias")}flowParseOpaqueType(O,K){return this.expectContextual(130),O.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(O.id.name,8201,O.id.loc.start),this.match(47)?O.typeParameters=this.flowParseTypeParameterDeclaration():O.typeParameters=null,O.supertype=null,this.match(14)&&(O.supertype=this.flowParseTypeInitialiser(14)),O.impltype=null,K||(O.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(O,"OpaqueType")}flowParseTypeParameter(O=!1){let K=this.state.startLoc,we=this.startNode(),gt=this.flowParseVariance(),sr=this.flowParseTypeAnnotatableIdentifier();return we.name=sr.name,we.variance=gt,we.bound=sr.typeAnnotation,this.match(29)?(this.eat(29),we.default=this.flowParseType()):O&&this.raise(Fs.MissingTypeParamDefault,K),this.finishNode(we,"TypeParameter")}flowParseTypeParameterDeclaration(){let O=this.state.inType,K=this.startNode();K.params=[],this.state.inType=!0,this.match(47)||this.match(143)?this.next():this.unexpected();let we=!1;do{let gt=this.flowParseTypeParameter(we);K.params.push(gt),gt.default&&(we=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=O,this.finishNode(K,"TypeParameterDeclaration")}flowInTopLevelContext(O){if(this.curContext()!==Se.brace){let K=this.state.context;this.state.context=[K[0]];try{return O()}finally{this.state.context=K}}else return O()}flowParseTypeParameterInstantiationInExpression(){if(this.reScan_lt()===47)return this.flowParseTypeParameterInstantiation()}flowParseTypeParameterInstantiation(){let O=this.startNode(),K=this.state.inType;return this.state.inType=!0,O.params=[],this.flowInTopLevelContext(()=>{this.expect(47);let we=this.state.noAnonFunctionType;for(this.state.noAnonFunctionType=!1;!this.match(48);)O.params.push(this.flowParseType()),this.match(48)||this.expect(12);this.state.noAnonFunctionType=we}),this.state.inType=K,!this.state.inType&&this.curContext()===Se.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(O,"TypeParameterInstantiation")}flowParseTypeParameterInstantiationCallOrNew(){if(this.reScan_lt()!==47)return;let O=this.startNode(),K=this.state.inType;for(O.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)O.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=K,this.finishNode(O,"TypeParameterInstantiation")}flowParseInterfaceType(){let O=this.startNode();if(this.expectContextual(129),O.extends=[],this.eat(81))do O.extends.push(this.flowParseInterfaceExtends());while(this.eat(12));return O.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(O,"InterfaceTypeAnnotation")}flowParseObjectPropertyKey(){return this.match(135)||this.match(134)?super.parseExprAtom():this.parseIdentifier(!0)}flowParseObjectTypeIndexer(O,K,we){return O.static=K,this.lookahead().type===14?(O.id=this.flowParseObjectPropertyKey(),O.key=this.flowParseTypeInitialiser()):(O.id=null,O.key=this.flowParseType()),this.expect(3),O.value=this.flowParseTypeInitialiser(),O.variance=we,this.finishNode(O,"ObjectTypeIndexer")}flowParseObjectTypeInternalSlot(O,K){return O.static=K,O.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(O.method=!0,O.optional=!1,O.value=this.flowParseObjectTypeMethodish(this.startNodeAt(O.loc.start))):(O.method=!1,this.eat(17)&&(O.optional=!0),O.value=this.flowParseTypeInitialiser()),this.finishNode(O,"ObjectTypeInternalSlot")}flowParseObjectTypeMethodish(O){for(O.params=[],O.rest=null,O.typeParameters=null,O.this=null,this.match(47)&&(O.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(O.this=this.flowParseFunctionTypeParam(!0),O.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)O.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(O.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),O.returnType=this.flowParseTypeInitialiser(),this.finishNode(O,"FunctionTypeAnnotation")}flowParseObjectTypeCallProperty(O,K){let we=this.startNode();return O.static=K,O.value=this.flowParseObjectTypeMethodish(we),this.finishNode(O,"ObjectTypeCallProperty")}flowParseObjectType({allowStatic:O,allowExact:K,allowSpread:we,allowProto:gt,allowInexact:sr}){let Yr=this.state.inType;this.state.inType=!0;let Lr=this.startNode();Lr.callProperties=[],Lr.properties=[],Lr.indexers=[],Lr.internalSlots=[];let fi,$n,ra=!1;for(K&&this.match(6)?(this.expect(6),fi=9,$n=!0):(this.expect(5),fi=8,$n=!1),Lr.exact=$n;!this.match(fi);){let Nl=!1,ca=null,Bl=null,$g=this.startNode();if(gt&&this.isContextual(118)){let lI=this.lookahead();lI.type!==14&&lI.type!==17&&(this.next(),ca=this.state.startLoc,O=!1)}if(O&&this.isContextual(106)){let lI=this.lookahead();lI.type!==14&&lI.type!==17&&(this.next(),Nl=!0)}let SA=this.flowParseVariance();if(this.eat(0))ca!=null&&this.unexpected(ca),this.eat(0)?(SA&&this.unexpected(SA.loc.start),Lr.internalSlots.push(this.flowParseObjectTypeInternalSlot($g,Nl))):Lr.indexers.push(this.flowParseObjectTypeIndexer($g,Nl,SA));else if(this.match(10)||this.match(47))ca!=null&&this.unexpected(ca),SA&&this.unexpected(SA.loc.start),Lr.callProperties.push(this.flowParseObjectTypeCallProperty($g,Nl));else{let lI="init";if(this.isContextual(99)||this.isContextual(104)){let Ib=this.lookahead();jt(Ib.type)&&(lI=this.state.value,this.next())}let lp=this.flowParseObjectTypeProperty($g,Nl,ca,SA,lI,we,sr??!$n);lp===null?(ra=!0,Bl=this.state.lastTokStartLoc):Lr.properties.push(lp)}this.flowObjectTypeSemicolon(),Bl&&!this.match(8)&&!this.match(9)&&this.raise(Fs.UnexpectedExplicitInexactInObject,Bl)}this.expect(fi),we&&(Lr.inexact=ra);let kc=this.finishNode(Lr,"ObjectTypeAnnotation");return this.state.inType=Yr,kc}flowParseObjectTypeProperty(O,K,we,gt,sr,Yr,Lr){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(Yr?Lr||this.raise(Fs.InexactInsideExact,this.state.lastTokStartLoc):this.raise(Fs.InexactInsideNonObject,this.state.lastTokStartLoc),gt&&this.raise(Fs.InexactVariance,gt),null):(Yr||this.raise(Fs.UnexpectedSpreadType,this.state.lastTokStartLoc),we!=null&&this.unexpected(we),gt&&this.raise(Fs.SpreadVariance,gt),O.argument=this.flowParseType(),this.finishNode(O,"ObjectTypeSpreadProperty"));{O.key=this.flowParseObjectPropertyKey(),O.static=K,O.proto=we!=null,O.kind=sr;let fi=!1;return this.match(47)||this.match(10)?(O.method=!0,we!=null&&this.unexpected(we),gt&&this.unexpected(gt.loc.start),O.value=this.flowParseObjectTypeMethodish(this.startNodeAt(O.loc.start)),(sr==="get"||sr==="set")&&this.flowCheckGetterSetterParams(O),!Yr&&O.key.name==="constructor"&&O.value.this&&this.raise(Fs.ThisParamBannedInConstructor,O.value.this)):(sr!=="init"&&this.unexpected(),O.method=!1,this.eat(17)&&(fi=!0),O.value=this.flowParseTypeInitialiser(),O.variance=gt),O.optional=fi,this.finishNode(O,"ObjectTypeProperty")}}flowCheckGetterSetterParams(O){let K=O.kind==="get"?0:1,we=O.value.params.length+(O.value.rest?1:0);O.value.this&&this.raise(O.kind==="get"?Fs.GetterMayNotHaveThisParam:Fs.SetterMayNotHaveThisParam,O.value.this),we!==K&&this.raise(O.kind==="get"?X.BadGetterArity:X.BadSetterArity,O),O.kind==="set"&&O.value.rest&&this.raise(X.BadSetterRestParameter,O)}flowObjectTypeSemicolon(){!this.eat(13)&&!this.eat(12)&&!this.match(8)&&!this.match(9)&&this.unexpected()}flowParseQualifiedTypeIdentifier(O,K){var we;(we=O)!=null||(O=this.state.startLoc);let gt=K||this.flowParseRestrictedIdentifier(!0);for(;this.eat(16);){let sr=this.startNodeAt(O);sr.qualification=gt,sr.id=this.flowParseRestrictedIdentifier(!0),gt=this.finishNode(sr,"QualifiedTypeIdentifier")}return gt}flowParseGenericType(O,K){let we=this.startNodeAt(O);return we.typeParameters=null,we.id=this.flowParseQualifiedTypeIdentifier(O,K),this.match(47)&&(we.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(we,"GenericTypeAnnotation")}flowParseTypeofType(){let O=this.startNode();return this.expect(87),O.argument=this.flowParsePrimaryType(),this.finishNode(O,"TypeofTypeAnnotation")}flowParseTupleType(){let O=this.startNode();for(O.types=[],this.expect(0);this.state.possuper.parseFunctionBody(O,!0,we));return}super.parseFunctionBody(O,!1,we)}parseFunctionBodyAndFinish(O,K,we=!1){if(this.match(14)){let gt=this.startNode();[gt.typeAnnotation,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),O.returnType=gt.typeAnnotation?this.finishNode(gt,"TypeAnnotation"):null}return super.parseFunctionBodyAndFinish(O,K,we)}parseStatementLike(O){if(this.state.strict&&this.isContextual(129)){let we=this.lookahead();if(ke(we.type)){let gt=this.startNode();return this.next(),this.flowParseInterface(gt)}}else if(this.isContextual(126)){let we=this.startNode();return this.next(),this.flowParseEnumDeclaration(we)}let K=super.parseStatementLike(O);return this.flowPragma===void 0&&!this.isValidDirective(K)&&(this.flowPragma=null),K}parseExpressionStatement(O,K,we){if(K.type==="Identifier"){if(K.name==="declare"){if(this.match(80)||qr(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(O)}else if(qr(this.state.type)){if(K.name==="interface")return this.flowParseInterface(O);if(K.name==="type")return this.flowParseTypeAlias(O);if(K.name==="opaque")return this.flowParseOpaqueType(O,!1)}}return super.parseExpressionStatement(O,K,we)}shouldParseExportDeclaration(){let{type:O}=this.state;return O===126||po(O)?!this.state.containsEsc:super.shouldParseExportDeclaration()}isExportDefaultSpecifier(){let{type:O}=this.state;return O===126||po(O)?this.state.containsEsc:super.isExportDefaultSpecifier()}parseExportDefaultExpression(){if(this.isContextual(126)){let O=this.startNode();return this.next(),this.flowParseEnumDeclaration(O)}return super.parseExportDefaultExpression()}parseConditional(O,K,we){if(!this.match(17))return O;if(this.state.maybeInArrowParameters){let kc=this.lookaheadCharCode();if(kc===44||kc===61||kc===58||kc===41)return this.setOptionalParametersError(we),O}this.expect(17);let gt=this.state.clone(),sr=this.state.noArrowAt,Yr=this.startNodeAt(K),{consequent:Lr,failed:fi}=this.tryParseConditionalConsequent(),[$n,ra]=this.getArrowLikeExpressions(Lr);if(fi||ra.length>0){let kc=[...sr];if(ra.length>0){this.state=gt,this.state.noArrowAt=kc;for(let Nl=0;Nl1&&this.raise(Fs.AmbiguousConditionalArrow,gt.startLoc),fi&&$n.length===1&&(this.state=gt,kc.push($n[0].start),this.state.noArrowAt=kc,{consequent:Lr,failed:fi}=this.tryParseConditionalConsequent())}return this.getArrowLikeExpressions(Lr,!0),this.state.noArrowAt=sr,this.expect(14),Yr.test=O,Yr.consequent=Lr,Yr.alternate=this.forwardNoArrowParamsConversionAt(Yr,()=>this.parseMaybeAssign(void 0,void 0)),this.finishNode(Yr,"ConditionalExpression")}tryParseConditionalConsequent(){this.state.noArrowParamsConversionAt.push(this.state.start);let O=this.parseMaybeAssignAllowIn(),K=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:O,failed:K}}getArrowLikeExpressions(O,K){let we=[O],gt=[];for(;we.length!==0;){let sr=we.pop();sr.type==="ArrowFunctionExpression"&&sr.body.type!=="BlockStatement"?(sr.typeParameters||!sr.returnType?this.finishArrowValidation(sr):gt.push(sr),we.push(sr.body)):sr.type==="ConditionalExpression"&&(we.push(sr.consequent),we.push(sr.alternate))}return K?(gt.forEach(sr=>this.finishArrowValidation(sr)),[gt,[]]):Rp(gt,sr=>sr.params.every(Yr=>this.isAssignable(Yr,!0)))}finishArrowValidation(O){var K;this.toAssignableList(O.params,(K=O.extra)==null?void 0:K.trailingCommaLoc,!1),this.scope.enter(6),super.checkParams(O,!1,!0),this.scope.exit()}forwardNoArrowParamsConversionAt(O,K){let we;return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start))?(this.state.noArrowParamsConversionAt.push(this.state.start),we=K(),this.state.noArrowParamsConversionAt.pop()):we=K(),we}parseParenItem(O,K){let we=super.parseParenItem(O,K);if(this.eat(17)&&(we.optional=!0,this.resetEndLocation(O)),this.match(14)){let gt=this.startNodeAt(K);return gt.expression=we,gt.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(gt,"TypeCastExpression")}return we}assertModuleNodeAllowed(O){O.type==="ImportDeclaration"&&(O.importKind==="type"||O.importKind==="typeof")||O.type==="ExportNamedDeclaration"&&O.exportKind==="type"||O.type==="ExportAllDeclaration"&&O.exportKind==="type"||super.assertModuleNodeAllowed(O)}parseExportDeclaration(O){if(this.isContextual(130)){O.exportKind="type";let K=this.startNode();return this.next(),this.match(5)?(O.specifiers=this.parseExportSpecifiers(!0),super.parseExportFrom(O),null):this.flowParseTypeAlias(K)}else if(this.isContextual(131)){O.exportKind="type";let K=this.startNode();return this.next(),this.flowParseOpaqueType(K,!1)}else if(this.isContextual(129)){O.exportKind="type";let K=this.startNode();return this.next(),this.flowParseInterface(K)}else if(this.isContextual(126)){O.exportKind="value";let K=this.startNode();return this.next(),this.flowParseEnumDeclaration(K)}else return super.parseExportDeclaration(O)}eatExportStar(O){return super.eatExportStar(O)?!0:this.isContextual(130)&&this.lookahead().type===55?(O.exportKind="type",this.next(),this.next(),!0):!1}maybeParseExportNamespaceSpecifier(O){let{startLoc:K}=this.state,we=super.maybeParseExportNamespaceSpecifier(O);return we&&O.exportKind==="type"&&this.unexpected(K),we}parseClassId(O,K,we){super.parseClassId(O,K,we),this.match(47)&&(O.typeParameters=this.flowParseTypeParameterDeclaration())}parseClassMember(O,K,we){let{startLoc:gt}=this.state;if(this.isContextual(125)){if(super.parseClassMemberFromModifier(O,K))return;K.declare=!0}super.parseClassMember(O,K,we),K.declare&&(K.type!=="ClassProperty"&&K.type!=="ClassPrivateProperty"&&K.type!=="PropertyDefinition"?this.raise(Fs.DeclareClassElement,gt):K.value&&this.raise(Fs.DeclareClassFieldInitializer,K.value))}isIterator(O){return O==="iterator"||O==="asyncIterator"}readIterator(){let O=super.readWord1(),K="@@"+O;(!this.isIterator(O)||!this.state.inType)&&this.raise(X.InvalidIdentifier,this.state.curPosition(),{identifierName:K}),this.finishToken(132,K)}getTokenFromCode(O){let K=this.input.charCodeAt(this.state.pos+1);O===123&&K===124?this.finishOp(6,2):this.state.inType&&(O===62||O===60)?this.finishOp(O===62?48:47,1):this.state.inType&&O===63?K===46?this.finishOp(18,2):this.finishOp(17,1):Yl(O,K,this.input.charCodeAt(this.state.pos+2))?(this.state.pos+=2,this.readIterator()):super.getTokenFromCode(O)}isAssignable(O,K){return O.type==="TypeCastExpression"?this.isAssignable(O.expression,K):super.isAssignable(O,K)}toAssignable(O,K=!1){!K&&O.type==="AssignmentExpression"&&O.left.type==="TypeCastExpression"&&(O.left=this.typeCastToParameter(O.left)),super.toAssignable(O,K)}toAssignableList(O,K,we){for(let gt=0;gt1||!K)&&this.raise(Fs.TypeCastInPattern,sr.typeAnnotation)}return O}parseArrayLike(O,K,we,gt){let sr=super.parseArrayLike(O,K,we,gt);return K&&!this.state.maybeInArrowParameters&&this.toReferencedList(sr.elements),sr}isValidLVal(O,K,we){return O==="TypeCastExpression"||super.isValidLVal(O,K,we)}parseClassProperty(O){return this.match(14)&&(O.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassProperty(O)}parseClassPrivateProperty(O){return this.match(14)&&(O.typeAnnotation=this.flowParseTypeAnnotation()),super.parseClassPrivateProperty(O)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(14)||super.isClassProperty()}isNonstaticConstructor(O){return!this.match(14)&&super.isNonstaticConstructor(O)}pushClassMethod(O,K,we,gt,sr,Yr){if(K.variance&&this.unexpected(K.variance.loc.start),delete K.variance,this.match(47)&&(K.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassMethod(O,K,we,gt,sr,Yr),K.params&&sr){let Lr=K.params;Lr.length>0&&this.isThisParam(Lr[0])&&this.raise(Fs.ThisParamBannedInConstructor,K)}else if(K.type==="MethodDefinition"&&sr&&K.value.params){let Lr=K.value.params;Lr.length>0&&this.isThisParam(Lr[0])&&this.raise(Fs.ThisParamBannedInConstructor,K)}}pushClassPrivateMethod(O,K,we,gt){K.variance&&this.unexpected(K.variance.loc.start),delete K.variance,this.match(47)&&(K.typeParameters=this.flowParseTypeParameterDeclaration()),super.pushClassPrivateMethod(O,K,we,gt)}parseClassSuper(O){if(super.parseClassSuper(O),O.superClass&&(this.match(47)||this.match(51))&&(O.superTypeParameters=this.flowParseTypeParameterInstantiationInExpression()),this.isContextual(113)){this.next();let K=O.implements=[];do{let we=this.startNode();we.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?we.typeParameters=this.flowParseTypeParameterInstantiation():we.typeParameters=null,K.push(this.finishNode(we,"ClassImplements"))}while(this.eat(12))}}checkGetterSetterParams(O){super.checkGetterSetterParams(O);let K=this.getObjectOrClassMethodParams(O);if(K.length>0){let we=K[0];this.isThisParam(we)&&O.kind==="get"?this.raise(Fs.GetterMayNotHaveThisParam,we):this.isThisParam(we)&&this.raise(Fs.SetterMayNotHaveThisParam,we)}}parsePropertyNamePrefixOperator(O){O.variance=this.flowParseVariance()}parseObjPropValue(O,K,we,gt,sr,Yr,Lr){O.variance&&this.unexpected(O.variance.loc.start),delete O.variance;let fi;this.match(47)&&!Yr&&(fi=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());let $n=super.parseObjPropValue(O,K,we,gt,sr,Yr,Lr);return fi&&(($n.value||$n).typeParameters=fi),$n}parseFunctionParamType(O){return this.eat(17)&&(O.type!=="Identifier"&&this.raise(Fs.PatternIsOptional,O),this.isThisParam(O)&&this.raise(Fs.ThisParamMayNotBeOptional,O),O.optional=!0),this.match(14)?O.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(O)&&this.raise(Fs.ThisParamAnnotationRequired,O),this.match(29)&&this.isThisParam(O)&&this.raise(Fs.ThisParamNoDefault,O),this.resetEndLocation(O),O}parseMaybeDefault(O,K){let we=super.parseMaybeDefault(O,K);return we.type==="AssignmentPattern"&&we.typeAnnotation&&we.right.startsuper.parseMaybeAssign(O,K),gt),!sr.error)return sr.node;let{context:fi}=this.state,$n=fi[fi.length-1];($n===Se.j_oTag||$n===Se.j_expr)&&fi.pop()}if((we=sr)!=null&&we.error||this.match(47)){var Yr,Lr;gt=gt||this.state.clone();let fi,$n=this.tryParse(kc=>{var Nl;fi=this.flowParseTypeParameterDeclaration();let ca=this.forwardNoArrowParamsConversionAt(fi,()=>{let $g=super.parseMaybeAssign(O,K);return this.resetStartLocationFromNode($g,fi),$g});(Nl=ca.extra)!=null&&Nl.parenthesized&&kc();let Bl=this.maybeUnwrapTypeCastExpression(ca);return Bl.type!=="ArrowFunctionExpression"&&kc(),Bl.typeParameters=fi,this.resetStartLocationFromNode(Bl,fi),ca},gt),ra=null;if($n.node&&this.maybeUnwrapTypeCastExpression($n.node).type==="ArrowFunctionExpression"){if(!$n.error&&!$n.aborted)return $n.node.async&&this.raise(Fs.UnexpectedTypeParameterBeforeAsyncArrowFunction,fi),$n.node;ra=$n.node}if((Yr=sr)!=null&&Yr.node)return this.state=sr.failState,sr.node;if(ra)return this.state=$n.failState,ra;throw(Lr=sr)!=null&&Lr.thrown?sr.error:$n.thrown?$n.error:this.raise(Fs.UnexpectedTokenAfterTypeParameter,fi)}return super.parseMaybeAssign(O,K)}parseArrow(O){if(this.match(14)){let K=this.tryParse(()=>{let we=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;let gt=this.startNode();return[gt.typeAnnotation,O.predicate]=this.flowParseTypeAndPredicateInitialiser(),this.state.noAnonFunctionType=we,this.canInsertSemicolon()&&this.unexpected(),this.match(19)||this.unexpected(),gt});if(K.thrown)return null;K.error&&(this.state=K.failState),O.returnType=K.node.typeAnnotation?this.finishNode(K.node,"TypeAnnotation"):null}return super.parseArrow(O)}shouldParseArrow(O){return this.match(14)||super.shouldParseArrow(O)}setArrowFunctionParameters(O,K){this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start))?O.params=K:super.setArrowFunctionParameters(O,K)}checkParams(O,K,we,gt=!0){if(!(we&&this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(O.start)))){for(let sr=0;sr0&&this.raise(Fs.ThisParamMustBeFirst,O.params[sr]);super.checkParams(O,K,we,gt)}}parseParenAndDistinguishExpression(O){return super.parseParenAndDistinguishExpression(O&&!this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)))}parseSubscripts(O,K,we){if(O.type==="Identifier"&&O.name==="async"&&this.state.noArrowAt.includes(K.index)){this.next();let gt=this.startNodeAt(K);gt.callee=O,gt.arguments=super.parseCallExpressionArguments(11),O=this.finishNode(gt,"CallExpression")}else if(O.type==="Identifier"&&O.name==="async"&&this.match(47)){let gt=this.state.clone(),sr=this.tryParse(Lr=>this.parseAsyncArrowWithTypeParameters(K)||Lr(),gt);if(!sr.error&&!sr.aborted)return sr.node;let Yr=this.tryParse(()=>super.parseSubscripts(O,K,we),gt);if(Yr.node&&!Yr.error)return Yr.node;if(sr.node)return this.state=sr.failState,sr.node;if(Yr.node)return this.state=Yr.failState,Yr.node;throw sr.error||Yr.error}return super.parseSubscripts(O,K,we)}parseSubscript(O,K,we,gt){if(this.match(18)&&this.isLookaheadToken_lt()){if(gt.optionalChainMember=!0,we)return gt.stop=!0,O;this.next();let sr=this.startNodeAt(K);return sr.callee=O,sr.typeArguments=this.flowParseTypeParameterInstantiationInExpression(),this.expect(10),sr.arguments=this.parseCallExpressionArguments(11),sr.optional=!0,this.finishCallExpression(sr,!0)}else if(!we&&this.shouldParseTypes()&&(this.match(47)||this.match(51))){let sr=this.startNodeAt(K);sr.callee=O;let Yr=this.tryParse(()=>(sr.typeArguments=this.flowParseTypeParameterInstantiationCallOrNew(),this.expect(10),sr.arguments=super.parseCallExpressionArguments(11),gt.optionalChainMember&&(sr.optional=!1),this.finishCallExpression(sr,gt.optionalChainMember)));if(Yr.node)return Yr.error&&(this.state=Yr.failState),Yr.node}return super.parseSubscript(O,K,we,gt)}parseNewCallee(O){super.parseNewCallee(O);let K=null;this.shouldParseTypes()&&this.match(47)&&(K=this.tryParse(()=>this.flowParseTypeParameterInstantiationCallOrNew()).node),O.typeArguments=K}parseAsyncArrowWithTypeParameters(O){let K=this.startNodeAt(O);if(this.parseFunctionParams(K,!1),!!this.parseArrow(K))return super.parseArrowExpression(K,void 0,!0)}readToken_mult_modulo(O){let K=this.input.charCodeAt(this.state.pos+1);if(O===42&&K===47&&this.state.hasFlowComment){this.state.hasFlowComment=!1,this.state.pos+=2,this.nextToken();return}super.readToken_mult_modulo(O)}readToken_pipe_amp(O){let K=this.input.charCodeAt(this.state.pos+1);if(O===124&&K===125){this.finishOp(9,2);return}super.readToken_pipe_amp(O)}parseTopLevel(O,K){let we=super.parseTopLevel(O,K);return this.state.hasFlowComment&&this.raise(Fs.UnterminatedFlowComment,this.state.curPosition()),we}skipBlockComment(){if(this.hasPlugin("flowComments")&&this.skipFlowComment()){if(this.state.hasFlowComment)throw this.raise(Fs.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();let O=this.skipFlowComment();O&&(this.state.pos+=O,this.state.hasFlowComment=!0);return}return super.skipBlockComment(this.state.hasFlowComment?"*-/":"*/")}skipFlowComment(){let{pos:O}=this.state,K=2;for(;[32,9].includes(this.input.charCodeAt(O+K));)K++;let we=this.input.charCodeAt(K+O),gt=this.input.charCodeAt(K+O+1);return we===58&>===58?K+2:this.input.slice(K+O,K+O+12)==="flow-include"?K+12:we===58&>!==58?K:!1}hasFlowCommentCompletion(){if(this.input.indexOf("*/",this.state.pos)===-1)throw this.raise(X.UnterminatedComment,this.state.curPosition())}flowEnumErrorBooleanMemberNotInitialized(O,{enumName:K,memberName:we}){this.raise(Fs.EnumBooleanMemberNotInitialized,O,{memberName:we,enumName:K})}flowEnumErrorInvalidMemberInitializer(O,K){return this.raise(K.explicitType?K.explicitType==="symbol"?Fs.EnumInvalidMemberInitializerSymbolType:Fs.EnumInvalidMemberInitializerPrimaryType:Fs.EnumInvalidMemberInitializerUnknownType,O,K)}flowEnumErrorNumberMemberNotInitialized(O,K){this.raise(Fs.EnumNumberMemberNotInitialized,O,K)}flowEnumErrorStringMemberInconsistentlyInitialized(O,K){this.raise(Fs.EnumStringMemberInconsistentlyInitialized,O,K)}flowEnumMemberInit(){let O=this.state.startLoc,K=()=>this.match(12)||this.match(8);switch(this.state.type){case 135:{let we=this.parseNumericLiteral(this.state.value);return K()?{type:"number",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}case 134:{let we=this.parseStringLiteral(this.state.value);return K()?{type:"string",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}case 85:case 86:{let we=this.parseBooleanLiteral(this.match(85));return K()?{type:"boolean",loc:we.loc.start,value:we}:{type:"invalid",loc:O}}default:return{type:"invalid",loc:O}}}flowEnumMemberRaw(){let O=this.state.startLoc,K=this.parseIdentifier(!0),we=this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:O};return{id:K,init:we}}flowEnumCheckExplicitTypeMismatch(O,K,we){let{explicitType:gt}=K;gt!==null&>!==we&&this.flowEnumErrorInvalidMemberInitializer(O,K)}flowEnumMembers({enumName:O,explicitType:K}){let we=new Set,gt={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},sr=!1;for(;!this.match(8);){if(this.eat(21)){sr=!0;break}let Yr=this.startNode(),{id:Lr,init:fi}=this.flowEnumMemberRaw(),$n=Lr.name;if($n==="")continue;/^[a-z]/.test($n)&&this.raise(Fs.EnumInvalidMemberName,Lr,{memberName:$n,suggestion:$n[0].toUpperCase()+$n.slice(1),enumName:O}),we.has($n)&&this.raise(Fs.EnumDuplicateMemberName,Lr,{memberName:$n,enumName:O}),we.add($n);let ra={enumName:O,explicitType:K,memberName:$n};switch(Yr.id=Lr,fi.type){case"boolean":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"boolean"),Yr.init=fi.value,gt.booleanMembers.push(this.finishNode(Yr,"EnumBooleanMember"));break}case"number":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"number"),Yr.init=fi.value,gt.numberMembers.push(this.finishNode(Yr,"EnumNumberMember"));break}case"string":{this.flowEnumCheckExplicitTypeMismatch(fi.loc,ra,"string"),Yr.init=fi.value,gt.stringMembers.push(this.finishNode(Yr,"EnumStringMember"));break}case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(fi.loc,ra);case"none":switch(K){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(fi.loc,ra);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(fi.loc,ra);break;default:gt.defaultedMembers.push(this.finishNode(Yr,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}return{members:gt,hasUnknownMembers:sr}}flowEnumStringMembers(O,K,{enumName:we}){if(O.length===0)return K;if(K.length===0)return O;if(K.length>O.length){for(let gt of O)this.flowEnumErrorStringMemberInconsistentlyInitialized(gt,{enumName:we});return K}else{for(let gt of K)this.flowEnumErrorStringMemberInconsistentlyInitialized(gt,{enumName:we});return O}}flowEnumParseExplicitType({enumName:O}){if(!this.eatContextual(102))return null;if(!qr(this.state.type))throw this.raise(Fs.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:O});let{value:K}=this.state;return this.next(),K!=="boolean"&&K!=="number"&&K!=="string"&&K!=="symbol"&&this.raise(Fs.EnumInvalidExplicitType,this.state.startLoc,{enumName:O,invalidEnumType:K}),K}flowEnumBody(O,K){let we=K.name,gt=K.loc.start,sr=this.flowEnumParseExplicitType({enumName:we});this.expect(5);let{members:Yr,hasUnknownMembers:Lr}=this.flowEnumMembers({enumName:we,explicitType:sr});switch(O.hasUnknownMembers=Lr,sr){case"boolean":return O.explicitType=!0,O.members=Yr.booleanMembers,this.expect(8),this.finishNode(O,"EnumBooleanBody");case"number":return O.explicitType=!0,O.members=Yr.numberMembers,this.expect(8),this.finishNode(O,"EnumNumberBody");case"string":return O.explicitType=!0,O.members=this.flowEnumStringMembers(Yr.stringMembers,Yr.defaultedMembers,{enumName:we}),this.expect(8),this.finishNode(O,"EnumStringBody");case"symbol":return O.members=Yr.defaultedMembers,this.expect(8),this.finishNode(O,"EnumSymbolBody");default:{let fi=()=>(O.members=[],this.expect(8),this.finishNode(O,"EnumStringBody"));O.explicitType=!1;let $n=Yr.booleanMembers.length,ra=Yr.numberMembers.length,kc=Yr.stringMembers.length,Nl=Yr.defaultedMembers.length;if(!$n&&!ra&&!kc&&!Nl)return fi();if(!$n&&!ra)return O.members=this.flowEnumStringMembers(Yr.stringMembers,Yr.defaultedMembers,{enumName:we}),this.expect(8),this.finishNode(O,"EnumStringBody");if(!ra&&!kc&&$n>=Nl){for(let ca of Yr.defaultedMembers)this.flowEnumErrorBooleanMemberNotInitialized(ca.loc.start,{enumName:we,memberName:ca.id.name});return O.members=Yr.booleanMembers,this.expect(8),this.finishNode(O,"EnumBooleanBody")}else if(!$n&&!kc&&ra>=Nl){for(let ca of Yr.defaultedMembers)this.flowEnumErrorNumberMemberNotInitialized(ca.loc.start,{enumName:we,memberName:ca.id.name});return O.members=Yr.numberMembers,this.expect(8),this.finishNode(O,"EnumNumberBody")}else return this.raise(Fs.EnumInconsistentMemberValues,gt,{enumName:we}),fi()}}}flowParseEnumDeclaration(O){let K=this.parseIdentifier();return O.id=K,O.body=this.flowEnumBody(this.startNode(),K),this.finishNode(O,"EnumDeclaration")}jsxParseOpeningElementAfterName(O){return this.shouldParseTypes()&&(this.match(47)||this.match(51))&&(O.typeArguments=this.flowParseTypeParameterInstantiationInExpression()),super.jsxParseOpeningElementAfterName(O)}isLookaheadToken_lt(){let O=this.nextTokenStart();if(this.input.charCodeAt(O)===60){let K=this.input.charCodeAt(O+1);return K!==60&&K!==61}return!1}reScan_lt_gt(){let{type:O}=this.state;O===47?(this.state.pos-=1,this.readToken_lt()):O===48&&(this.state.pos-=1,this.readToken_gt())}reScan_lt(){let{type:O}=this.state;return O===51?(this.state.pos-=2,this.finishOp(47,1),47):O}maybeUnwrapTypeCastExpression(O){return O.type==="TypeCastExpression"?O.expression:O}},df=Q`jsx`({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:({openingTagName:se})=>`Expected corresponding JSX closing tag for <${se}>.`,MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:({unexpected:se,HTMLEntity:O})=>`Unexpected token \`${se}\`. Did you mean \`${O}\` or \`{'${se}'}\`?`,UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?"});function Zs(se){return se?se.type==="JSXOpeningFragment"||se.type==="JSXClosingFragment":!1}function so(se){if(se.type==="JSXIdentifier")return se.name;if(se.type==="JSXNamespacedName")return se.namespace.name+":"+se.name.name;if(se.type==="JSXMemberExpression")return so(se.object)+"."+so(se.property);throw new Error("Node had unexpected type: "+se.type)}var Ea=se=>class extends se{jsxReadToken(){let O="",K=this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(df.UnterminatedJsxContent,this.state.startLoc);let we=this.input.charCodeAt(this.state.pos);switch(we){case 60:case 123:if(this.state.pos===this.state.start){we===60&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(143)):super.getTokenFromCode(we);return}O+=this.input.slice(K,this.state.pos),this.finishToken(142,O);return;case 38:O+=this.input.slice(K,this.state.pos),O+=this.jsxReadEntity(),K=this.state.pos;break;case 62:case 125:default:Vs(we)?(O+=this.input.slice(K,this.state.pos),O+=this.jsxReadNewLine(!0),K=this.state.pos):++this.state.pos}}}jsxReadNewLine(O){let K=this.input.charCodeAt(this.state.pos),we;return++this.state.pos,K===13&&this.input.charCodeAt(this.state.pos)===10?(++this.state.pos,we=O?` `:`\r `):we=String.fromCharCode(K),++this.state.curLine,this.state.lineStart=this.state.pos,we}jsxReadString(O){let K="",we=++this.state.pos;for(;;){if(this.state.pos>=this.length)throw this.raise(X.UnterminatedString,this.state.startLoc);let gt=this.input.charCodeAt(this.state.pos);if(gt===O)break;gt===38?(K+=this.input.slice(we,this.state.pos),K+=this.jsxReadEntity(),we=this.state.pos):Vs(gt)?(K+=this.input.slice(we,this.state.pos),K+=this.jsxReadNewLine(!1),we=this.state.pos):++this.state.pos}K+=this.input.slice(we,this.state.pos++),this.finishToken(134,K)}jsxReadEntity(){let O=++this.state.pos;if(this.codePointAtPos(this.state.pos)===35){++this.state.pos;let K=10;this.codePointAtPos(this.state.pos)===120&&(K=16,++this.state.pos);let we=this.readInt(K,void 0,!1,"bail");if(we!==null&&this.codePointAtPos(this.state.pos)===59)return++this.state.pos,String.fromCodePoint(we)}else{let K=0,we=!1;for(;K++<10&&this.state.pos1){for(let we=0;we0){if(K&256){let gt=!!(K&512),sr=(we&4)>0;return gt!==sr}return!0}return K&128&&(we&8)>0?se.names.get(O)&2?!!(K&1):!1:K&2&&(we&1)>0?!0:super.isRedeclaredInScope(se,O,K)}checkLocalExport(se){let{name:O}=se;if(this.hasImport(O))return;let K=this.scopeStack.length;for(let we=K-1;we>=0;we--){let gt=this.scopeStack[we].tsNames.get(O);if((gt&1)>0||(gt&16)>0)return}super.checkLocalExport(se)}},Wn=se=>se.type==="ParenthesizedExpression"?Wn(se.expression):se,di=class extends ls{toAssignable(se,O=!1){var K,we;let gt;switch((se.type==="ParenthesizedExpression"||(K=se.extra)!=null&&K.parenthesized)&&(gt=Wn(se),O?gt.type==="Identifier"?this.expressionScope.recordArrowParameterBindingError(X.InvalidParenthesizedAssignment,se):gt.type!=="MemberExpression"&&!this.isOptionalMemberExpression(gt)&&this.raise(X.InvalidParenthesizedAssignment,se):this.raise(X.InvalidParenthesizedAssignment,se)),se.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":se.type="ObjectPattern";for(let Yr=0,Lr=se.properties.length,fi=Lr-1;Yrwe.type!=="ObjectMethod"&&(gt===K||we.type!=="SpreadElement")&&this.isAssignable(we))}case"ObjectProperty":return this.isAssignable(se.value);case"SpreadElement":return this.isAssignable(se.argument);case"ArrayExpression":return se.elements.every(K=>K===null||this.isAssignable(K));case"AssignmentExpression":return se.operator==="=";case"ParenthesizedExpression":return this.isAssignable(se.expression);case"MemberExpression":case"OptionalMemberExpression":return!O;default:return!1}}toReferencedList(se,O){return se}toReferencedListDeep(se,O){this.toReferencedList(se,O);for(let K of se)K?.type==="ArrayExpression"&&this.toReferencedListDeep(K.elements)}parseSpread(se){let O=this.startNode();return this.next(),O.argument=this.parseMaybeAssignAllowIn(se,void 0),this.finishNode(O,"SpreadElement")}parseRestBinding(){let se=this.startNode();return this.next(),se.argument=this.parseBindingAtom(),this.finishNode(se,"RestElement")}parseBindingAtom(){switch(this.state.type){case 0:{let se=this.startNode();return this.next(),se.elements=this.parseBindingList(3,93,1),this.finishNode(se,"ArrayPattern")}case 5:return this.parseObjectLike(8,!0)}return this.parseIdentifier()}parseBindingList(se,O,K){let we=K&1,gt=[],sr=!0;for(;!this.eat(se);)if(sr?sr=!1:this.expect(12),we&&this.match(12))gt.push(null);else{if(this.eat(se))break;if(this.match(21)){let Yr=this.parseRestBinding();if((this.hasPlugin("flow")||K&2)&&(Yr=this.parseFunctionParamType(Yr)),gt.push(Yr),!this.checkCommaAfterRest(O)){this.expect(se);break}}else{let Yr=[];for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(X.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)Yr.push(this.parseDecorator());gt.push(this.parseAssignableListItem(K,Yr))}}return gt}parseBindingRestProperty(se){return this.next(),se.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(se,"RestElement")}parseBindingProperty(){let{type:se,startLoc:O}=this.state;if(se===21)return this.parseBindingRestProperty(this.startNode());let K=this.startNode();return se===139?(this.expectPlugin("destructuringPrivate",O),this.classScope.usePrivateName(this.state.value,O),K.key=this.parsePrivateName()):this.parsePropertyName(K),K.method=!1,this.parseObjPropValue(K,O,!1,!1,!0,!1)}parseAssignableListItem(se,O){let K=this.parseMaybeDefault();(this.hasPlugin("flow")||se&2)&&this.parseFunctionParamType(K);let we=this.parseMaybeDefault(K.loc.start,K);return O.length&&(K.decorators=O),we}parseFunctionParamType(se){return se}parseMaybeDefault(se,O){var K,we;if((K=se)!=null||(se=this.state.startLoc),O=(we=O)!=null?we:this.parseBindingAtom(),!this.eat(29))return O;let gt=this.startNodeAt(se);return gt.left=O,gt.right=this.parseMaybeAssignAllowIn(),this.finishNode(gt,"AssignmentPattern")}isValidLVal(se,O,K){switch(se){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties"}return!1}isOptionalMemberExpression(se){return se.type==="OptionalMemberExpression"}checkLVal(se,O,K=64,we=!1,gt=!1,sr=!1){var Yr;let Lr=se.type;if(this.isObjectMethod(se))return;let fi=this.isOptionalMemberExpression(se);if(fi||Lr==="MemberExpression"){fi&&(this.expectPlugin("optionalChainingAssign",se.loc.start),O.type!=="AssignmentExpression"&&this.raise(X.InvalidLhsOptionalChaining,se,{ancestor:O})),K!==64&&this.raise(X.InvalidPropertyBindingPattern,se);return}if(Lr==="Identifier"){this.checkIdentifier(se,K,gt);let{name:Bl}=se;we&&(we.has(Bl)?this.raise(X.ParamDupe,se):we.add(Bl));return}let $n=this.isValidLVal(Lr,!(sr||(Yr=se.extra)!=null&&Yr.parenthesized)&&O.type==="AssignmentExpression",K);if($n===!0)return;if($n===!1){let Bl=K===64?X.InvalidLhs:X.InvalidLhsBinding;this.raise(Bl,se,{ancestor:O});return}let ra,kc;typeof $n=="string"?(ra=$n,kc=Lr==="ParenthesizedExpression"):[ra,kc]=$n;let Nl=Lr==="ArrayPattern"||Lr==="ObjectPattern"?{type:Lr}:O,ca=se[ra];if(Array.isArray(ca))for(let Bl of ca)Bl&&this.checkLVal(Bl,Nl,K,we,gt,kc);else ca&&this.checkLVal(ca,Nl,K,we,gt,kc)}checkIdentifier(se,O,K=!1){this.state.strict&&(K?Xa(se.name,this.inModule):Ps(se.name))&&(O===64?this.raise(X.StrictEvalArguments,se,{referenceName:se.name}):this.raise(X.StrictEvalArgumentsBinding,se,{bindingName:se.name})),O&8192&&se.name==="let"&&this.raise(X.LetInLexicalBinding,se),O&64||this.declareNameFromIdentifier(se,O)}declareNameFromIdentifier(se,O){this.scope.declareName(se.name,O,se.loc.start)}checkToRestConversion(se,O){switch(se.type){case"ParenthesizedExpression":this.checkToRestConversion(se.expression,O);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(O)break;default:this.raise(X.InvalidRestAssignmentPattern,se)}}checkCommaAfterRest(se){return this.match(12)?(this.raise(this.lookaheadCharCode()===se?X.RestTrailingComma:X.ElementAfterRest,this.state.startLoc),!0):!1}};function aa(se){if(se==null)throw new Error(`Unexpected ${se} value.`);return se}function Bo(se){if(!se)throw new Error("Assert fail")}var us=Q`typescript`({AbstractMethodHasImplementation:({methodName:se})=>`Method '${se}' cannot have an implementation because it is marked abstract.`,AbstractPropertyHasInitializer:({propertyName:se})=>`Property '${se}' cannot have an initializer because it is marked abstract.`,AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",AccessorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccessorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:({kind:se})=>`'declare' is not allowed in ${se}ters.`,DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:({modifier:se})=>"Accessibility modifier already seen.",DuplicateModifier:({modifier:se})=>`Duplicate modifier: '${se}'.`,EmptyHeritageClauseType:({token:se})=>`'${se}' list cannot be empty.`,EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:({modifiers:se})=>`'${se[0]}' modifier cannot be used with '${se[1]}' modifier.`,IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:({modifier:se})=>`Index signatures cannot have an accessibility modifier ('${se}').`,IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidModifierOnTypeMember:({modifier:se})=>`'${se}' modifier cannot appear on a type member.`,InvalidModifierOnTypeParameter:({modifier:se})=>`'${se}' modifier cannot appear on a type parameter.`,InvalidModifierOnTypeParameterPositions:({modifier:se})=>`'${se}' modifier can only appear on a type parameter of a class, interface or type alias.`,InvalidModifiersOrder:({orderedModifiers:se})=>`'${se[0]}' modifier must precede '${se[1]}' modifier.`,InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifer:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:({modifier:se})=>`Private elements cannot have an accessibility modifier ('${se}').`,ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccessorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccessorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccessorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:({typeParameterName:se})=>`Single type parameter ${se} should have a trailing comma. Example usage: <${se},>.`,StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:({type:se})=>`Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${se}.`});function Ql(se){switch(se){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}function LA(se){return se==="private"||se==="public"||se==="protected"}function pf(se){return se==="in"||se==="out"}var ef=se=>class extends se{constructor(...O){super(...O),this.tsParseInOutModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:us.InvalidModifierOnTypeParameter}),this.tsParseConstModifier=this.tsParseModifiers.bind(this,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:us.InvalidModifierOnTypeParameterPositions}),this.tsParseInOutConstModifiers=this.tsParseModifiers.bind(this,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:us.InvalidModifierOnTypeParameter})}getScopeHandler(){return Dr}tsIsIdentifier(){return qr(this.state.type)}tsTokenCanFollowModifier(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(139)||this.isLiteralPropertyName()}tsNextTokenOnSameLineAndCanFollowModifier(){return this.next(),this.hasPrecedingLineBreak()?!1:this.tsTokenCanFollowModifier()}tsNextTokenCanFollowModifier(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()}tsParseModifier(O,K){if(!qr(this.state.type)&&this.state.type!==58&&this.state.type!==75)return;let we=this.state.value;if(O.includes(we)){if(K&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return we}}tsParseModifiers({allowedModifiers:O,disallowedModifiers:K,stopOnStartOfClassStaticBlock:we,errorTemplate:gt=us.InvalidModifierOnTypeMember},sr){let Yr=(fi,$n,ra,kc)=>{$n===ra&&sr[kc]&&this.raise(us.InvalidModifiersOrder,fi,{orderedModifiers:[ra,kc]})},Lr=(fi,$n,ra,kc)=>{(sr[ra]&&$n===kc||sr[kc]&&$n===ra)&&this.raise(us.IncompatibleModifiers,fi,{modifiers:[ra,kc]})};for(;;){let{startLoc:fi}=this.state,$n=this.tsParseModifier(O.concat(K??[]),we);if(!$n)break;LA($n)?sr.accessibility?this.raise(us.DuplicateAccessibilityModifier,fi,{modifier:$n}):(Yr(fi,$n,$n,"override"),Yr(fi,$n,$n,"static"),Yr(fi,$n,$n,"readonly"),sr.accessibility=$n):pf($n)?(sr[$n]&&this.raise(us.DuplicateModifier,fi,{modifier:$n}),sr[$n]=!0,Yr(fi,$n,"in","out")):(hasOwnProperty.call(sr,$n)?this.raise(us.DuplicateModifier,fi,{modifier:$n}):(Yr(fi,$n,"static","readonly"),Yr(fi,$n,"static","override"),Yr(fi,$n,"override","readonly"),Yr(fi,$n,"abstract","override"),Lr(fi,$n,"declare","override"),Lr(fi,$n,"static","abstract")),sr[$n]=!0),K!=null&&K.includes($n)&&this.raise(gt,fi,{modifier:$n})}}tsIsListTerminator(O){switch(O){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}}tsParseList(O,K){let we=[];for(;!this.tsIsListTerminator(O);)we.push(K());return we}tsParseDelimitedList(O,K,we){return aa(this.tsParseDelimitedListWorker(O,K,!0,we))}tsParseDelimitedListWorker(O,K,we,gt){let sr=[],Yr=-1;for(;!this.tsIsListTerminator(O);){Yr=-1;let Lr=K();if(Lr==null)return;if(sr.push(Lr),this.eat(12)){Yr=this.state.lastTokStartLoc.index;continue}if(this.tsIsListTerminator(O))break;we&&this.expect(12);return}return gt&&(gt.value=Yr),sr}tsParseBracketedList(O,K,we,gt,sr){gt||(we?this.expect(0):this.expect(47));let Yr=this.tsParseDelimitedList(O,K,sr);return we?this.expect(3):this.expect(48),Yr}tsParseImportType(){let O=this.startNode();return this.expect(83),this.expect(10),this.match(134)?O.argument=this.parseStringLiteral(this.state.value):(this.raise(us.UnsupportedImportTypeArgument,this.state.startLoc),O.argument=super.parseExprAtom()),this.eat(12)&&!this.match(11)?(O.options=super.parseMaybeAssignAllowIn(),this.eat(12)):O.options=null,this.expect(11),this.eat(16)&&(O.qualifier=this.tsParseEntityName(3)),this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSImportType")}tsParseEntityName(O){let K;if(O&1&&this.match(78))if(O&2)K=this.parseIdentifier(!0);else{let we=this.startNode();this.next(),K=this.finishNode(we,"ThisExpression")}else K=this.parseIdentifier(!!(O&1));for(;this.eat(16);){let we=this.startNodeAtNode(K);we.left=K,we.right=this.parseIdentifier(!!(O&1)),K=this.finishNode(we,"TSQualifiedName")}return K}tsParseTypeReference(){let O=this.startNode();return O.typeName=this.tsParseEntityName(1),!this.hasPrecedingLineBreak()&&this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSTypeReference")}tsParseThisTypePredicate(O){this.next();let K=this.startNodeAtNode(O);return K.parameterName=O,K.typeAnnotation=this.tsParseTypeAnnotation(!1),K.asserts=!1,this.finishNode(K,"TSTypePredicate")}tsParseThisTypeNode(){let O=this.startNode();return this.next(),this.finishNode(O,"TSThisType")}tsParseTypeQuery(){let O=this.startNode();return this.expect(87),this.match(83)?O.exprName=this.tsParseImportType():O.exprName=this.tsParseEntityName(3),!this.hasPrecedingLineBreak()&&this.match(47)&&(O.typeParameters=this.tsParseTypeArguments()),this.finishNode(O,"TSTypeQuery")}tsParseTypeParameter(O){let K=this.startNode();return O(K),K.name=this.tsParseTypeParameterName(),K.constraint=this.tsEatThenParseType(81),K.default=this.tsEatThenParseType(29),this.finishNode(K,"TSTypeParameter")}tsTryParseTypeParameters(O){if(this.match(47))return this.tsParseTypeParameters(O)}tsParseTypeParameters(O){let K=this.startNode();this.match(47)||this.match(143)?this.next():this.unexpected();let we={value:-1};return K.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,O),!1,!0,we),K.params.length===0&&this.raise(us.EmptyTypeParameters,K),we.value!==-1&&this.addExtra(K,"trailingComma",we.value),this.finishNode(K,"TSTypeParameterDeclaration")}tsFillSignature(O,K){let we=O===19,gt="parameters",sr="typeAnnotation";K.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),K[gt]=this.tsParseBindingListForSignature(),we?K[sr]=this.tsParseTypeOrTypePredicateAnnotation(O):this.match(O)&&(K[sr]=this.tsParseTypeOrTypePredicateAnnotation(O))}tsParseBindingListForSignature(){let O=super.parseBindingList(11,41,2);for(let K of O){let{type:we}=K;(we==="AssignmentPattern"||we==="TSParameterProperty")&&this.raise(us.UnsupportedSignatureParameterKind,K,{type:we})}return O}tsParseTypeMemberSemicolon(){!this.eat(12)&&!this.isLineTerminator()&&this.expect(13)}tsParseSignatureMember(O,K){return this.tsFillSignature(14,K),this.tsParseTypeMemberSemicolon(),this.finishNode(K,O)}tsIsUnambiguouslyIndexSignature(){return this.next(),qr(this.state.type)?(this.next(),this.match(14)):!1}tsTryParseIndexSignature(O){if(!(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))))return;this.expect(0);let K=this.parseIdentifier();K.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(K),this.expect(3),O.parameters=[K];let we=this.tsTryParseTypeAnnotation();return we&&(O.typeAnnotation=we),this.tsParseTypeMemberSemicolon(),this.finishNode(O,"TSIndexSignature")}tsParsePropertyOrMethodSignature(O,K){this.eat(17)&&(O.optional=!0);let we=O;if(this.match(10)||this.match(47)){K&&this.raise(us.ReadonlyForMethodSignature,O);let gt=we;gt.kind&&this.match(47)&&this.raise(us.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,gt),this.tsParseTypeMemberSemicolon();let sr="parameters",Yr="typeAnnotation";if(gt.kind==="get")gt[sr].length>0&&(this.raise(X.BadGetterArity,this.state.curPosition()),this.isThisParam(gt[sr][0])&&this.raise(us.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if(gt.kind==="set"){if(gt[sr].length!==1)this.raise(X.BadSetterArity,this.state.curPosition());else{let Lr=gt[sr][0];this.isThisParam(Lr)&&this.raise(us.AccessorCannotDeclareThisParameter,this.state.curPosition()),Lr.type==="Identifier"&&Lr.optional&&this.raise(us.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),Lr.type==="RestElement"&&this.raise(us.SetAccessorCannotHaveRestParameter,this.state.curPosition())}gt[Yr]&&this.raise(us.SetAccessorCannotHaveReturnType,gt[Yr])}else gt.kind="method";return this.finishNode(gt,"TSMethodSignature")}else{let gt=we;K&&(gt.readonly=!0);let sr=this.tsTryParseTypeAnnotation();return sr&&(gt.typeAnnotation=sr),this.tsParseTypeMemberSemicolon(),this.finishNode(gt,"TSPropertySignature")}}tsParseTypeMember(){let O=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",O);if(this.match(77)){let we=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",O):(O.key=this.createIdentifier(we,"new"),this.tsParsePropertyOrMethodSignature(O,!1))}return this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},O),this.tsTryParseIndexSignature(O)||(super.parsePropertyName(O),!O.computed&&O.key.type==="Identifier"&&(O.key.name==="get"||O.key.name==="set")&&this.tsTokenCanFollowModifier()&&(O.kind=O.key.name,super.parsePropertyName(O)),this.tsParsePropertyOrMethodSignature(O,!!O.readonly))}tsParseTypeLiteral(){let O=this.startNode();return O.members=this.tsParseObjectTypeMembers(),this.finishNode(O,"TSTypeLiteral")}tsParseObjectTypeMembers(){this.expect(5);let O=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),O}tsIsStartOfMappedType(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!this.match(0)||(this.next(),!this.tsIsIdentifier())?!1:(this.next(),this.match(58)))}tsParseMappedType(){let O=this.startNode();this.expect(5),this.match(53)?(O.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(O.readonly=!0),this.expect(0);{let K=this.startNode();K.name=this.tsParseTypeParameterName(),K.constraint=this.tsExpectThenParseType(58),O.typeParameter=this.finishNode(K,"TSTypeParameter")}return O.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(O.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(O.optional=!0),O.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(O,"TSMappedType")}tsParseTupleType(){let O=this.startNode();O.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);let K=!1;return O.elementTypes.forEach(we=>{let{type:gt}=we;K&>!=="TSRestType"&>!=="TSOptionalType"&&!(gt==="TSNamedTupleMember"&&we.optional)&&this.raise(us.OptionalTypeBeforeRequired,we),K||(K=gt==="TSNamedTupleMember"&&we.optional||gt==="TSOptionalType")}),this.finishNode(O,"TSTupleType")}tsParseTupleElementType(){let O=this.state.startLoc,K=this.eat(21),{startLoc:we}=this.state,gt,sr,Yr,Lr,fi=ke(this.state.type)?this.lookaheadCharCode():null;if(fi===58)gt=!0,Yr=!1,sr=this.parseIdentifier(!0),this.expect(14),Lr=this.tsParseType();else if(fi===63){Yr=!0;let $n=this.state.value,ra=this.tsParseNonArrayType();this.lookaheadCharCode()===58?(gt=!0,sr=this.createIdentifier(this.startNodeAt(we),$n),this.expect(17),this.expect(14),Lr=this.tsParseType()):(gt=!1,Lr=ra,this.expect(17))}else Lr=this.tsParseType(),Yr=this.eat(17),gt=this.eat(14);if(gt){let $n;sr?($n=this.startNodeAt(we),$n.optional=Yr,$n.label=sr,$n.elementType=Lr,this.eat(17)&&($n.optional=!0,this.raise(us.TupleOptionalAfterType,this.state.lastTokStartLoc))):($n=this.startNodeAt(we),$n.optional=Yr,this.raise(us.InvalidTupleMemberLabel,Lr),$n.label=Lr,$n.elementType=this.tsParseType()),Lr=this.finishNode($n,"TSNamedTupleMember")}else if(Yr){let $n=this.startNodeAt(we);$n.typeAnnotation=Lr,Lr=this.finishNode($n,"TSOptionalType")}if(K){let $n=this.startNodeAt(O);$n.typeAnnotation=Lr,Lr=this.finishNode($n,"TSRestType")}return Lr}tsParseParenthesizedType(){let O=this.startNode();return this.expect(10),O.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(O,"TSParenthesizedType")}tsParseFunctionOrConstructorType(O,K){let we=this.startNode();return O==="TSConstructorType"&&(we.abstract=!!K,K&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(()=>this.tsFillSignature(19,we)),this.finishNode(we,O)}tsParseLiteralTypeNode(){let O=this.startNode();switch(this.state.type){case 135:case 136:case 134:case 85:case 86:O.literal=super.parseExprAtom();break;default:this.unexpected()}return this.finishNode(O,"TSLiteralType")}tsParseTemplateLiteralType(){{let O=this.startNode();return O.literal=super.parseTemplate(!1),this.finishNode(O,"TSLiteralType")}}parseTemplateSubstitution(){return this.state.inType?this.tsParseType():super.parseTemplateSubstitution()}tsParseThisTypeOrThisTypePredicate(){let O=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(O):O}tsParseNonArrayType(){switch(this.state.type){case 134:case 135:case 136:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if(this.state.value==="-"){let O=this.startNode(),K=this.lookahead();return K.type!==135&&K.type!==136&&this.unexpected(),O.literal=this.parseMaybeUnary(),this.finishNode(O,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:{let{type:O}=this.state;if(qr(O)||O===88||O===84){let K=O===88?"TSVoidKeyword":O===84?"TSNullKeyword":Ql(this.state.value);if(K!==void 0&&this.lookaheadCharCode()!==46){let we=this.startNode();return this.next(),this.finishNode(we,K)}return this.tsParseTypeReference()}}}this.unexpected()}tsParseArrayTypeOrHigher(){let{startLoc:O}=this.state,K=this.tsParseNonArrayType();for(;!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){let we=this.startNodeAt(O);we.elementType=K,this.expect(3),K=this.finishNode(we,"TSArrayType")}else{let we=this.startNodeAt(O);we.objectType=K,we.indexType=this.tsParseType(),this.expect(3),K=this.finishNode(we,"TSIndexedAccessType")}return K}tsParseTypeOperator(){let O=this.startNode(),K=this.state.value;return this.next(),O.operator=K,O.typeAnnotation=this.tsParseTypeOperatorOrHigher(),K==="readonly"&&this.tsCheckTypeAnnotationForReadOnly(O),this.finishNode(O,"TSTypeOperator")}tsCheckTypeAnnotationForReadOnly(O){switch(O.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(us.UnexpectedReadonly,O)}}tsParseInferType(){let O=this.startNode();this.expectContextual(115);let K=this.startNode();return K.name=this.tsParseTypeParameterName(),K.constraint=this.tsTryParse(()=>this.tsParseConstraintForInferType()),O.typeParameter=this.finishNode(K,"TSTypeParameter"),this.finishNode(O,"TSInferType")}tsParseConstraintForInferType(){if(this.eat(81)){let O=this.tsInDisallowConditionalTypesContext(()=>this.tsParseType());if(this.state.inDisallowConditionalTypesContext||!this.match(17))return O}}tsParseTypeOperatorOrHigher(){return Gc(this.state.type)&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(()=>this.tsParseArrayTypeOrHigher())}tsParseUnionOrIntersectionType(O,K,we){let gt=this.startNode(),sr=this.eat(we),Yr=[];do Yr.push(K());while(this.eat(we));return Yr.length===1&&!sr?Yr[0]:(gt.types=Yr,this.finishNode(gt,O))}tsParseIntersectionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)}tsParseUnionTypeOrHigher(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)}tsIsStartOfFunctionType(){return this.match(47)?!0:this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))}tsSkipParameterStart(){if(qr(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){let{errors:O}=this.state,K=O.length;try{return this.parseObjectLike(8,!0),O.length===K}catch{return!1}}if(this.match(0)){this.next();let{errors:O}=this.state,K=O.length;try{return super.parseBindingList(3,93,1),O.length===K}catch{return!1}}return!1}tsIsUnambiguouslyStartOfFunctionType(){return this.next(),!!(this.match(11)||this.match(21)||this.tsSkipParameterStart()&&(this.match(14)||this.match(12)||this.match(17)||this.match(29)||this.match(11)&&(this.next(),this.match(19))))}tsParseTypeOrTypePredicateAnnotation(O){return this.tsInType(()=>{let K=this.startNode();this.expect(O);let we=this.startNode(),gt=!!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this));if(gt&&this.match(78)){let Lr=this.tsParseThisTypeOrThisTypePredicate();return Lr.type==="TSThisType"?(we.parameterName=Lr,we.asserts=!0,we.typeAnnotation=null,Lr=this.finishNode(we,"TSTypePredicate")):(this.resetStartLocationFromNode(Lr,we),Lr.asserts=!0),K.typeAnnotation=Lr,this.finishNode(K,"TSTypeAnnotation")}let sr=this.tsIsIdentifier()&&this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));if(!sr)return gt?(we.parameterName=this.parseIdentifier(),we.asserts=gt,we.typeAnnotation=null,K.typeAnnotation=this.finishNode(we,"TSTypePredicate"),this.finishNode(K,"TSTypeAnnotation")):this.tsParseTypeAnnotation(!1,K);let Yr=this.tsParseTypeAnnotation(!1);return we.parameterName=sr,we.typeAnnotation=Yr,we.asserts=gt,K.typeAnnotation=this.finishNode(we,"TSTypePredicate"),this.finishNode(K,"TSTypeAnnotation")})}tsTryParseTypeOrTypePredicateAnnotation(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)}tsTryParseTypeAnnotation(){if(this.match(14))return this.tsParseTypeAnnotation()}tsTryParseType(){return this.tsEatThenParseType(14)}tsParseTypePredicatePrefix(){let O=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),O}tsParseTypePredicateAsserts(){if(this.state.type!==109)return!1;let O=this.state.containsEsc;return this.next(),!qr(this.state.type)&&!this.match(78)?!1:(O&&this.raise(X.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)}tsParseTypeAnnotation(O=!0,K=this.startNode()){return this.tsInType(()=>{O&&this.expect(14),K.typeAnnotation=this.tsParseType()}),this.finishNode(K,"TSTypeAnnotation")}tsParseType(){Bo(this.state.inType);let O=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return O;let K=this.startNodeAtNode(O);return K.checkType=O,K.extendsType=this.tsInDisallowConditionalTypesContext(()=>this.tsParseNonConditionalType()),this.expect(17),K.trueType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.expect(14),K.falseType=this.tsInAllowConditionalTypesContext(()=>this.tsParseType()),this.finishNode(K,"TSConditionalType")}isAbstractConstructorSignature(){return this.isContextual(124)&&this.lookahead().type===77}tsParseNonConditionalType(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()}tsParseTypeAssertion(){this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(us.ReservedTypeAssertion,this.state.startLoc);let O=this.startNode();return O.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?this.tsParseTypeReference():this.tsParseType())),this.expect(48),O.expression=this.parseMaybeUnary(),this.finishNode(O,"TSTypeAssertion")}tsParseHeritageClause(O){let K=this.state.startLoc,we=this.tsParseDelimitedList("HeritageClauseElement",()=>{let gt=this.startNode();return gt.expression=this.tsParseEntityName(3),this.match(47)&&(gt.typeParameters=this.tsParseTypeArguments()),this.finishNode(gt,"TSExpressionWithTypeArguments")});return we.length||this.raise(us.EmptyHeritageClauseType,K,{token:O}),we}tsParseInterfaceDeclaration(O,K={}){if(this.hasFollowingLineBreak())return null;this.expectContextual(129),K.declare&&(O.declare=!0),qr(this.state.type)?(O.id=this.parseIdentifier(),this.checkIdentifier(O.id,130)):(O.id=null,this.raise(us.MissingInterfaceName,this.state.startLoc)),O.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(O.extends=this.tsParseHeritageClause("extends"));let we=this.startNode();return we.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),O.body=this.finishNode(we,"TSInterfaceBody"),this.finishNode(O,"TSInterfaceDeclaration")}tsParseTypeAliasDeclaration(O){return O.id=this.parseIdentifier(),this.checkIdentifier(O.id,2),O.typeAnnotation=this.tsInType(()=>{if(O.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutModifiers),this.expect(29),this.isContextual(114)&&this.lookahead().type!==16){let K=this.startNode();return this.next(),this.finishNode(K,"TSIntrinsicKeyword")}return this.tsParseType()}),this.semicolon(),this.finishNode(O,"TSTypeAliasDeclaration")}tsInTopLevelContext(O){if(this.curContext()!==Se.brace){let K=this.state.context;this.state.context=[K[0]];try{return O()}finally{this.state.context=K}}else return O()}tsInType(O){let K=this.state.inType;this.state.inType=!0;try{return O()}finally{this.state.inType=K}}tsInDisallowConditionalTypesContext(O){let K=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return O()}finally{this.state.inDisallowConditionalTypesContext=K}}tsInAllowConditionalTypesContext(O){let K=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return O()}finally{this.state.inDisallowConditionalTypesContext=K}}tsEatThenParseType(O){if(this.match(O))return this.tsNextThenParseType()}tsExpectThenParseType(O){return this.tsInType(()=>(this.expect(O),this.tsParseType()))}tsNextThenParseType(){return this.tsInType(()=>(this.next(),this.tsParseType()))}tsParseEnumMember(){let O=this.startNode();return O.id=this.match(134)?super.parseStringLiteral(this.state.value):this.parseIdentifier(!0),this.eat(29)&&(O.initializer=super.parseMaybeAssignAllowIn()),this.finishNode(O,"TSEnumMember")}tsParseEnumDeclaration(O,K={}){return K.const&&(O.const=!0),K.declare&&(O.declare=!0),this.expectContextual(126),O.id=this.parseIdentifier(),this.checkIdentifier(O.id,O.const?8971:8459),this.expect(5),O.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(O,"TSEnumDeclaration")}tsParseEnumBody(){let O=this.startNode();return this.expect(5),O.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(O,"TSEnumBody")}tsParseModuleBlock(){let O=this.startNode();return this.scope.enter(0),this.expect(5),super.parseBlockOrModuleBlockBody(O.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(O,"TSModuleBlock")}tsParseModuleOrNamespaceDeclaration(O,K=!1){if(O.id=this.parseIdentifier(),K||this.checkIdentifier(O.id,1024),this.eat(16)){let we=this.startNode();this.tsParseModuleOrNamespaceDeclaration(we,!0),O.body=we}else this.scope.enter(256),this.prodParam.enter(0),O.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(O,"TSModuleDeclaration")}tsParseAmbientExternalModuleDeclaration(O){return this.isContextual(112)?(O.kind="global",O.global=!0,O.id=this.parseIdentifier()):this.match(134)?(O.kind="module",O.id=super.parseStringLiteral(this.state.value)):this.unexpected(),this.match(5)?(this.scope.enter(256),this.prodParam.enter(0),O.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(O,"TSModuleDeclaration")}tsParseImportEqualsDeclaration(O,K,we){O.isExport=we||!1,O.id=K||this.parseIdentifier(),this.checkIdentifier(O.id,4096),this.expect(29);let gt=this.tsParseModuleReference();return O.importKind==="type"&>.type!=="TSExternalModuleReference"&&this.raise(us.ImportAliasHasImportType,gt),O.moduleReference=gt,this.semicolon(),this.finishNode(O,"TSImportEqualsDeclaration")}tsIsExternalModuleReference(){return this.isContextual(119)&&this.lookaheadCharCode()===40}tsParseModuleReference(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(0)}tsParseExternalModuleReference(){let O=this.startNode();return this.expectContextual(119),this.expect(10),this.match(134)||this.unexpected(),O.expression=super.parseExprAtom(),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(O,"TSExternalModuleReference")}tsLookAhead(O){let K=this.state.clone(),we=O();return this.state=K,we}tsTryParseAndCatch(O){let K=this.tryParse(we=>O()||we());if(!(K.aborted||!K.node))return K.error&&(this.state=K.failState),K.node}tsTryParse(O){let K=this.state.clone(),we=O();if(we!==void 0&&we!==!1)return we;this.state=K}tsTryParseDeclare(O){if(this.isLineTerminator())return;let K=this.state.type,we;return this.isContextual(100)&&(K=74,we="let"),this.tsInAmbientContext(()=>{switch(K){case 68:return O.declare=!0,super.parseFunctionStatement(O,!1,!1);case 80:return O.declare=!0,this.parseClass(O,!0,!1);case 126:return this.tsParseEnumDeclaration(O,{declare:!0});case 112:return this.tsParseAmbientExternalModuleDeclaration(O);case 75:case 74:return!this.match(75)||!this.isLookaheadContextual("enum")?(O.declare=!0,this.parseVarStatement(O,we||this.state.value,!0)):(this.expect(75),this.tsParseEnumDeclaration(O,{const:!0,declare:!0}));case 129:{let gt=this.tsParseInterfaceDeclaration(O,{declare:!0});if(gt)return gt}default:if(qr(K))return this.tsParseDeclaration(O,this.state.value,!0,null)}})}tsTryParseExportDeclaration(){return this.tsParseDeclaration(this.startNode(),this.state.value,!0,null)}tsParseExpressionStatement(O,K,we){switch(K.name){case"declare":{let gt=this.tsTryParseDeclare(O);return gt&&(gt.declare=!0),gt}case"global":if(this.match(5)){this.scope.enter(256),this.prodParam.enter(0);let gt=O;return gt.kind="global",O.global=!0,gt.id=K,gt.body=this.tsParseModuleBlock(),this.scope.exit(),this.prodParam.exit(),this.finishNode(gt,"TSModuleDeclaration")}break;default:return this.tsParseDeclaration(O,K.name,!1,we)}}tsParseDeclaration(O,K,we,gt){switch(K){case"abstract":if(this.tsCheckLineTerminator(we)&&(this.match(80)||qr(this.state.type)))return this.tsParseAbstractDeclaration(O,gt);break;case"module":if(this.tsCheckLineTerminator(we)){if(this.match(134))return this.tsParseAmbientExternalModuleDeclaration(O);if(qr(this.state.type))return O.kind="module",this.tsParseModuleOrNamespaceDeclaration(O)}break;case"namespace":if(this.tsCheckLineTerminator(we)&&qr(this.state.type))return O.kind="namespace",this.tsParseModuleOrNamespaceDeclaration(O);break;case"type":if(this.tsCheckLineTerminator(we)&&qr(this.state.type))return this.tsParseTypeAliasDeclaration(O);break}}tsCheckLineTerminator(O){return O?this.hasFollowingLineBreak()?!1:(this.next(),!0):!this.isLineTerminator()}tsTryParseGenericAsyncArrowFunction(O){if(!this.match(47))return;let K=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;let we=this.tsTryParseAndCatch(()=>{let gt=this.startNodeAt(O);return gt.typeParameters=this.tsParseTypeParameters(this.tsParseConstModifier),super.parseFunctionParams(gt),gt.returnType=this.tsTryParseTypeOrTypePredicateAnnotation(),this.expect(19),gt});if(this.state.maybeInArrowParameters=K,!!we)return super.parseArrowExpression(we,null,!0)}tsParseTypeArgumentsInExpression(){if(this.reScan_lt()===47)return this.tsParseTypeArguments()}tsParseTypeArguments(){let O=this.startNode();return O.params=this.tsInType(()=>this.tsInTopLevelContext(()=>(this.expect(47),this.tsParseDelimitedList("TypeParametersOrArguments",this.tsParseType.bind(this))))),O.params.length===0?this.raise(us.EmptyTypeArguments,O):!this.state.inType&&this.curContext()===Se.brace&&this.reScan_lt_gt(),this.expect(48),this.finishNode(O,"TSTypeParameterInstantiation")}tsIsDeclarationStart(){return cl(this.state.type)}isExportDefaultSpecifier(){return this.tsIsDeclarationStart()?!1:super.isExportDefaultSpecifier()}parseAssignableListItem(O,K){let we=this.state.startLoc,gt={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},gt);let sr=gt.accessibility,Yr=gt.override,Lr=gt.readonly;!(O&4)&&(sr||Lr||Yr)&&this.raise(us.UnexpectedParameterModifier,we);let fi=this.parseMaybeDefault();O&2&&this.parseFunctionParamType(fi);let $n=this.parseMaybeDefault(fi.loc.start,fi);if(sr||Lr||Yr){let ra=this.startNodeAt(we);return K.length&&(ra.decorators=K),sr&&(ra.accessibility=sr),Lr&&(ra.readonly=Lr),Yr&&(ra.override=Yr),$n.type!=="Identifier"&&$n.type!=="AssignmentPattern"&&this.raise(us.UnsupportedParameterPropertyKind,ra),ra.parameter=$n,this.finishNode(ra,"TSParameterProperty")}return K.length&&(fi.decorators=K),$n}isSimpleParameter(O){return O.type==="TSParameterProperty"&&super.isSimpleParameter(O.parameter)||super.isSimpleParameter(O)}tsDisallowOptionalPattern(O){for(let K of O.params)K.type!=="Identifier"&&K.optional&&!this.state.isAmbientContext&&this.raise(us.PatternIsOptional,K)}setArrowFunctionParameters(O,K,we){super.setArrowFunctionParameters(O,K,we),this.tsDisallowOptionalPattern(O)}parseFunctionBodyAndFinish(O,K,we=!1){this.match(14)&&(O.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));let gt=K==="FunctionDeclaration"?"TSDeclareFunction":K==="ClassMethod"||K==="ClassPrivateMethod"?"TSDeclareMethod":void 0;return gt&&!this.match(5)&&this.isLineTerminator()?this.finishNode(O,gt):gt==="TSDeclareFunction"&&this.state.isAmbientContext&&(this.raise(us.DeclareFunctionHasImplementation,O),O.declare)?super.parseFunctionBodyAndFinish(O,gt,we):(this.tsDisallowOptionalPattern(O),super.parseFunctionBodyAndFinish(O,K,we))}registerFunctionStatementId(O){!O.body&&O.id?this.checkIdentifier(O.id,1024):super.registerFunctionStatementId(O)}tsCheckForInvalidTypeCasts(O){O.forEach(K=>{K?.type==="TSTypeCastExpression"&&this.raise(us.UnexpectedTypeAnnotation,K.typeAnnotation)})}toReferencedList(O,K){return this.tsCheckForInvalidTypeCasts(O),O}parseArrayLike(O,K,we,gt){let sr=super.parseArrayLike(O,K,we,gt);return sr.type==="ArrayExpression"&&this.tsCheckForInvalidTypeCasts(sr.elements),sr}parseSubscript(O,K,we,gt){if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();let Yr=this.startNodeAt(K);return Yr.expression=O,this.finishNode(Yr,"TSNonNullExpression")}let sr=!1;if(this.match(18)&&this.lookaheadCharCode()===60){if(we)return gt.stop=!0,O;gt.optionalChainMember=sr=!0,this.next()}if(this.match(47)||this.match(51)){let Yr,Lr=this.tsTryParseAndCatch(()=>{if(!we&&this.atPossibleAsyncArrow(O)){let kc=this.tsTryParseGenericAsyncArrowFunction(K);if(kc)return kc}let fi=this.tsParseTypeArgumentsInExpression();if(!fi)return;if(sr&&!this.match(10)){Yr=this.state.curPosition();return}if(Ft(this.state.type)){let kc=super.parseTaggedTemplateExpression(O,K,gt);return kc.typeParameters=fi,kc}if(!we&&this.eat(10)){let kc=this.startNodeAt(K);return kc.callee=O,kc.arguments=this.parseCallExpressionArguments(11),this.tsCheckForInvalidTypeCasts(kc.arguments),kc.typeParameters=fi,gt.optionalChainMember&&(kc.optional=sr),this.finishCallExpression(kc,gt.optionalChainMember)}let $n=this.state.type;if($n===48||$n===52||$n!==10&&Nn($n)&&!this.hasPrecedingLineBreak())return;let ra=this.startNodeAt(K);return ra.expression=O,ra.typeParameters=fi,this.finishNode(ra,"TSInstantiationExpression")});if(Yr&&this.unexpected(Yr,10),Lr)return Lr.type==="TSInstantiationExpression"&&(this.match(16)||this.match(18)&&this.lookaheadCharCode()!==40)&&this.raise(us.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),Lr}return super.parseSubscript(O,K,we,gt)}parseNewCallee(O){var K;super.parseNewCallee(O);let{callee:we}=O;we.type==="TSInstantiationExpression"&&!((K=we.extra)!=null&&K.parenthesized)&&(O.typeParameters=we.typeParameters,O.callee=we.expression)}parseExprOp(O,K,we){let gt;if(Hr(58)>we&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(gt=this.isContextual(120)))){let sr=this.startNodeAt(K);return sr.expression=O,sr.typeAnnotation=this.tsInType(()=>(this.next(),this.match(75)?(gt&&this.raise(X.UnexpectedKeyword,this.state.startLoc,{keyword:"const"}),this.tsParseTypeReference()):this.tsParseType())),this.finishNode(sr,gt?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(sr,K,we)}return super.parseExprOp(O,K,we)}checkReservedWord(O,K,we,gt){this.state.isAmbientContext||super.checkReservedWord(O,K,we,gt)}checkImportReflection(O){super.checkImportReflection(O),O.module&&O.importKind!=="value"&&this.raise(us.ImportReflectionHasImportType,O.specifiers[0].loc.start)}checkDuplicateExports(){}isPotentialImportPhase(O){if(super.isPotentialImportPhase(O))return!0;if(this.isContextual(130)){let K=this.lookaheadCharCode();return O?K===123||K===42:K!==61}return!O&&this.isContextual(87)}applyImportPhase(O,K,we,gt){super.applyImportPhase(O,K,we,gt),K?O.exportKind=we==="type"?"type":"value":O.importKind=we==="type"||we==="typeof"?we:"value"}parseImport(O){if(this.match(134))return O.importKind="value",super.parseImport(O);let K;if(qr(this.state.type)&&this.lookaheadCharCode()===61)return O.importKind="value",this.tsParseImportEqualsDeclaration(O);if(this.isContextual(130)){let we=this.parseMaybeImportPhase(O,!1);if(this.lookaheadCharCode()===61)return this.tsParseImportEqualsDeclaration(O,we);K=super.parseImportSpecifiersAndAfter(O,we)}else K=super.parseImport(O);return K.importKind==="type"&&K.specifiers.length>1&&K.specifiers[0].type==="ImportDefaultSpecifier"&&this.raise(us.TypeImportCannotSpecifyDefaultAndNamed,K),K}parseExport(O,K){if(this.match(83)){let we=O;this.next();let gt=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?gt=this.parseMaybeImportPhase(we,!1):we.importKind="value",this.tsParseImportEqualsDeclaration(we,gt,!0)}else if(this.eat(29)){let we=O;return we.expression=super.parseExpression(),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(we,"TSExportAssignment")}else if(this.eatContextual(93)){let we=O;return this.expectContextual(128),we.id=this.parseIdentifier(),this.semicolon(),this.finishNode(we,"TSNamespaceExportDeclaration")}else return super.parseExport(O,K)}isAbstractClass(){return this.isContextual(124)&&this.lookahead().type===80}parseExportDefaultExpression(){if(this.isAbstractClass()){let O=this.startNode();return this.next(),O.abstract=!0,this.parseClass(O,!0,!0)}if(this.match(129)){let O=this.tsParseInterfaceDeclaration(this.startNode());if(O)return O}return super.parseExportDefaultExpression()}parseVarStatement(O,K,we=!1){let{isAmbientContext:gt}=this.state,sr=super.parseVarStatement(O,K,we||gt);if(!gt)return sr;for(let{id:Yr,init:Lr}of sr.declarations)Lr&&(K!=="const"||Yr.typeAnnotation?this.raise(us.InitializerNotAllowedInAmbientContext,Lr):_d(Lr,this.hasPlugin("estree"))||this.raise(us.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,Lr));return sr}parseStatementContent(O,K){if(this.match(75)&&this.isLookaheadContextual("enum")){let we=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(we,{const:!0})}if(this.isContextual(126))return this.tsParseEnumDeclaration(this.startNode());if(this.isContextual(129)){let we=this.tsParseInterfaceDeclaration(this.startNode());if(we)return we}return super.parseStatementContent(O,K)}parseAccessModifier(){return this.tsParseModifier(["public","protected","private"])}tsHasSomeModifiers(O,K){return K.some(we=>LA(we)?O.accessibility===we:!!O[we])}tsIsStartOfStaticBlocks(){return this.isContextual(106)&&this.lookaheadCharCode()===123}parseClassMember(O,K,we){let gt=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:gt,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:us.InvalidModifierOnTypeParameterPositions},K);let sr=()=>{this.tsIsStartOfStaticBlocks()?(this.next(),this.next(),this.tsHasSomeModifiers(K,gt)&&this.raise(us.StaticBlockCannotHaveModifier,this.state.curPosition()),super.parseClassStaticBlock(O,K)):this.parseClassMemberWithIsStatic(O,K,we,!!K.static)};K.declare?this.tsInAmbientContext(sr):sr()}parseClassMemberWithIsStatic(O,K,we,gt){let sr=this.tsTryParseIndexSignature(K);if(sr){O.body.push(sr),K.abstract&&this.raise(us.IndexSignatureHasAbstract,K),K.accessibility&&this.raise(us.IndexSignatureHasAccessibility,K,{modifier:K.accessibility}),K.declare&&this.raise(us.IndexSignatureHasDeclare,K),K.override&&this.raise(us.IndexSignatureHasOverride,K);return}!this.state.inAbstractClass&&K.abstract&&this.raise(us.NonAbstractClassHasAbstractMethod,K),K.override&&(we.hadSuperClass||this.raise(us.OverrideNotInSubClass,K)),super.parseClassMemberWithIsStatic(O,K,we,gt)}parsePostMemberNameModifiers(O){this.eat(17)&&(O.optional=!0),O.readonly&&this.match(10)&&this.raise(us.ClassMethodHasReadonly,O),O.declare&&this.match(10)&&this.raise(us.ClassMethodHasDeclare,O)}parseExpressionStatement(O,K,we){return(K.type==="Identifier"?this.tsParseExpressionStatement(O,K,we):void 0)||super.parseExpressionStatement(O,K,we)}shouldParseExportDeclaration(){return this.tsIsDeclarationStart()?!0:super.shouldParseExportDeclaration()}parseConditional(O,K,we){if(!this.state.maybeInArrowParameters||!this.match(17))return super.parseConditional(O,K,we);let gt=this.tryParse(()=>super.parseConditional(O,K));return gt.node?(gt.error&&(this.state=gt.failState),gt.node):(gt.error&&super.setOptionalParametersError(we,gt.error),O)}parseParenItem(O,K){let we=super.parseParenItem(O,K);if(this.eat(17)&&(we.optional=!0,this.resetEndLocation(O)),this.match(14)){let gt=this.startNodeAt(K);return gt.expression=O,gt.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(gt,"TSTypeCastExpression")}return O}parseExportDeclaration(O){if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(()=>this.parseExportDeclaration(O));let K=this.state.startLoc,we=this.eatContextual(125);if(we&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(us.ExpectedAmbientAfterExportDeclare,this.state.startLoc);let gt=qr(this.state.type)&&this.tsTryParseExportDeclaration()||super.parseExportDeclaration(O);return gt?((gt.type==="TSInterfaceDeclaration"||gt.type==="TSTypeAliasDeclaration"||we)&&(O.exportKind="type"),we&>.type!=="TSImportEqualsDeclaration"&&(this.resetStartLocation(gt,K),gt.declare=!0),gt):null}parseClassId(O,K,we,gt){if((!K||we)&&this.isContextual(113))return;super.parseClassId(O,K,we,O.declare?1024:8331);let sr=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);sr&&(O.typeParameters=sr)}parseClassPropertyAnnotation(O){O.optional||(this.eat(35)?O.definite=!0:this.eat(17)&&(O.optional=!0));let K=this.tsTryParseTypeAnnotation();K&&(O.typeAnnotation=K)}parseClassProperty(O){if(this.parseClassPropertyAnnotation(O),this.state.isAmbientContext&&!(O.readonly&&!O.typeAnnotation)&&this.match(29)&&this.raise(us.DeclareClassFieldHasInitializer,this.state.startLoc),O.abstract&&this.match(29)){let{key:K}=O;this.raise(us.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:K.type==="Identifier"&&!O.computed?K.name:`[${this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end))}]`})}return super.parseClassProperty(O)}parseClassPrivateProperty(O){return O.abstract&&this.raise(us.PrivateElementHasAbstract,O),O.accessibility&&this.raise(us.PrivateElementHasAccessibility,O,{modifier:O.accessibility}),this.parseClassPropertyAnnotation(O),super.parseClassPrivateProperty(O)}parseClassAccessorProperty(O){return this.parseClassPropertyAnnotation(O),O.optional&&this.raise(us.AccessorCannotBeOptional,O),super.parseClassAccessorProperty(O)}pushClassMethod(O,K,we,gt,sr,Yr){let Lr=this.tsTryParseTypeParameters(this.tsParseConstModifier);Lr&&sr&&this.raise(us.ConstructorHasTypeParameters,Lr);let{declare:fi=!1,kind:$n}=K;fi&&($n==="get"||$n==="set")&&this.raise(us.DeclareAccessor,K,{kind:$n}),Lr&&(K.typeParameters=Lr),super.pushClassMethod(O,K,we,gt,sr,Yr)}pushClassPrivateMethod(O,K,we,gt){let sr=this.tsTryParseTypeParameters(this.tsParseConstModifier);sr&&(K.typeParameters=sr),super.pushClassPrivateMethod(O,K,we,gt)}declareClassPrivateMethodInScope(O,K){O.type!=="TSDeclareMethod"&&(O.type==="MethodDefinition"&&!hasOwnProperty.call(O.value,"body")||super.declareClassPrivateMethodInScope(O,K))}parseClassSuper(O){super.parseClassSuper(O),O.superClass&&(this.match(47)||this.match(51))&&(O.superTypeParameters=this.tsParseTypeArgumentsInExpression()),this.eatContextual(113)&&(O.implements=this.tsParseHeritageClause("implements"))}parseObjPropValue(O,K,we,gt,sr,Yr,Lr){let fi=this.tsTryParseTypeParameters(this.tsParseConstModifier);return fi&&(O.typeParameters=fi),super.parseObjPropValue(O,K,we,gt,sr,Yr,Lr)}parseFunctionParams(O,K){let we=this.tsTryParseTypeParameters(this.tsParseConstModifier);we&&(O.typeParameters=we),super.parseFunctionParams(O,K)}parseVarId(O,K){super.parseVarId(O,K),O.id.type==="Identifier"&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(O.definite=!0);let we=this.tsTryParseTypeAnnotation();we&&(O.id.typeAnnotation=we,this.resetEndLocation(O.id))}parseAsyncArrowFromCallExpression(O,K){return this.match(14)&&(O.returnType=this.tsParseTypeAnnotation()),super.parseAsyncArrowFromCallExpression(O,K)}parseMaybeAssign(O,K){var we,gt,sr,Yr,Lr;let fi,$n,ra;if(this.hasPlugin("jsx")&&(this.match(143)||this.match(47))){if(fi=this.state.clone(),$n=this.tryParse(()=>super.parseMaybeAssign(O,K),fi),!$n.error)return $n.node;let{context:ca}=this.state,Bl=ca[ca.length-1];(Bl===Se.j_oTag||Bl===Se.j_expr)&&ca.pop()}if(!((we=$n)!=null&&we.error)&&!this.match(47))return super.parseMaybeAssign(O,K);(!fi||fi===this.state)&&(fi=this.state.clone());let kc,Nl=this.tryParse(ca=>{var Bl,$g;kc=this.tsParseTypeParameters(this.tsParseConstModifier);let SA=super.parseMaybeAssign(O,K);return(SA.type!=="ArrowFunctionExpression"||(Bl=SA.extra)!=null&&Bl.parenthesized)&&ca(),(($g=kc)==null?void 0:$g.params.length)!==0&&this.resetStartLocationFromNode(SA,kc),SA.typeParameters=kc,SA},fi);if(!Nl.error&&!Nl.aborted)return kc&&this.reportReservedArrowTypeParam(kc),Nl.node;if(!$n&&(Bo(!this.hasPlugin("jsx")),ra=this.tryParse(()=>super.parseMaybeAssign(O,K),fi),!ra.error))return ra.node;if((gt=$n)!=null&>.node)return this.state=$n.failState,$n.node;if(Nl.node)return this.state=Nl.failState,kc&&this.reportReservedArrowTypeParam(kc),Nl.node;if((sr=ra)!=null&&sr.node)return this.state=ra.failState,ra.node;throw((Yr=$n)==null?void 0:Yr.error)||Nl.error||((Lr=ra)==null?void 0:Lr.error)}reportReservedArrowTypeParam(O){var K;O.params.length===1&&!O.params[0].constraint&&!((K=O.extra)!=null&&K.trailingComma)&&this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(us.ReservedArrowTypeParam,O)}parseMaybeUnary(O,K){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():super.parseMaybeUnary(O,K)}parseArrow(O){if(this.match(14)){let K=this.tryParse(we=>{let gt=this.tsParseTypeOrTypePredicateAnnotation(14);return(this.canInsertSemicolon()||!this.match(19))&&we(),gt});if(K.aborted)return;K.thrown||(K.error&&(this.state=K.failState),O.returnType=K.node)}return super.parseArrow(O)}parseFunctionParamType(O){this.eat(17)&&(O.optional=!0);let K=this.tsTryParseTypeAnnotation();return K&&(O.typeAnnotation=K),this.resetEndLocation(O),O}isAssignable(O,K){switch(O.type){case"TSTypeCastExpression":return this.isAssignable(O.expression,K);case"TSParameterProperty":return!0;default:return super.isAssignable(O,K)}}toAssignable(O,K=!1){switch(O.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(O,K);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":K?this.expressionScope.recordArrowParameterBindingError(us.UnexpectedTypeCastInParameter,O):this.raise(us.UnexpectedTypeCastInParameter,O),this.toAssignable(O.expression,K);break;case"AssignmentExpression":!K&&O.left.type==="TSTypeCastExpression"&&(O.left=this.typeCastToParameter(O.left));default:super.toAssignable(O,K)}}toAssignableParenthesizedExpression(O,K){switch(O.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(O.expression,K);break;default:super.toAssignable(O,K)}}checkToRestConversion(O,K){switch(O.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(O.expression,!1);break;default:super.checkToRestConversion(O,K)}}isValidLVal(O,K,we){switch(O){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":case"TSInstantiationExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(we!==64||!K)&&["expression",!0];default:return super.isValidLVal(O,K,we)}}parseBindingAtom(){return this.state.type===78?this.parseIdentifier(!0):super.parseBindingAtom()}parseMaybeDecoratorArguments(O,K){if(this.match(47)||this.match(51)){let we=this.tsParseTypeArgumentsInExpression();if(this.match(10)){let gt=super.parseMaybeDecoratorArguments(O,K);return gt.typeParameters=we,gt}this.unexpected(null,10)}return super.parseMaybeDecoratorArguments(O,K)}checkCommaAfterRest(O){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===O?(this.next(),!1):super.checkCommaAfterRest(O)}isClassMethod(){return this.match(47)||super.isClassMethod()}isClassProperty(){return this.match(35)||this.match(14)||super.isClassProperty()}parseMaybeDefault(O,K){let we=super.parseMaybeDefault(O,K);return we.type==="AssignmentPattern"&&we.typeAnnotation&&we.right.startthis.isAssignable(K,!0)):super.shouldParseArrow(O)}shouldParseAsyncArrow(){return this.match(14)||super.shouldParseAsyncArrow()}canHaveLeadingDecorator(){return super.canHaveLeadingDecorator()||this.isAbstractClass()}jsxParseOpeningElementAfterName(O){if(this.match(47)||this.match(51)){let K=this.tsTryParseAndCatch(()=>this.tsParseTypeArgumentsInExpression());K&&(O.typeParameters=K)}return super.jsxParseOpeningElementAfterName(O)}getGetterSetterExpectedParamCount(O){let K=super.getGetterSetterExpectedParamCount(O),we=this.getObjectOrClassMethodParams(O)[0];return we&&this.isThisParam(we)?K+1:K}parseCatchClauseParam(){let O=super.parseCatchClauseParam(),K=this.tsTryParseTypeAnnotation();return K&&(O.typeAnnotation=K,this.resetEndLocation(O)),O}tsInAmbientContext(O){let{isAmbientContext:K,strict:we}=this.state;this.state.isAmbientContext=!0,this.state.strict=!1;try{return O()}finally{this.state.isAmbientContext=K,this.state.strict=we}}parseClass(O,K,we){let gt=this.state.inAbstractClass;this.state.inAbstractClass=!!O.abstract;try{return super.parseClass(O,K,we)}finally{this.state.inAbstractClass=gt}}tsParseAbstractDeclaration(O,K){if(this.match(80))return O.abstract=!0,this.maybeTakeDecorators(K,this.parseClass(O,!0,!1));if(this.isContextual(129)){if(!this.hasFollowingLineBreak())return O.abstract=!0,this.raise(us.NonClassMethodPropertyHasAbstractModifer,O),this.tsParseInterfaceDeclaration(O)}else this.unexpected(null,80)}parseMethod(O,K,we,gt,sr,Yr,Lr){let fi=super.parseMethod(O,K,we,gt,sr,Yr,Lr);if(fi.abstract&&(this.hasPlugin("estree")?fi.value:fi).body){let{key:$n}=fi;this.raise(us.AbstractMethodHasImplementation,fi,{methodName:$n.type==="Identifier"&&!fi.computed?$n.name:`[${this.input.slice(this.offsetToSourcePos($n.start),this.offsetToSourcePos($n.end))}]`})}return fi}tsParseTypeParameterName(){return this.parseIdentifier().name}shouldParseAsAmbientContext(){return!!this.getPluginOption("typescript","dts")}parse(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.parse()}getExpression(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),super.getExpression()}parseExportSpecifier(O,K,we,gt){return!K&>?(this.parseTypeOnlyImportExportSpecifier(O,!1,we),this.finishNode(O,"ExportSpecifier")):(O.exportKind="value",super.parseExportSpecifier(O,K,we,gt))}parseImportSpecifier(O,K,we,gt,sr){return!K&>?(this.parseTypeOnlyImportExportSpecifier(O,!0,we),this.finishNode(O,"ImportSpecifier")):(O.importKind="value",super.parseImportSpecifier(O,K,we,gt,we?4098:4096))}parseTypeOnlyImportExportSpecifier(O,K,we){let gt=K?"imported":"local",sr=K?"local":"exported",Yr=O[gt],Lr,fi=!1,$n=!0,ra=Yr.loc.start;if(this.isContextual(93)){let Nl=this.parseIdentifier();if(this.isContextual(93)){let ca=this.parseIdentifier();ke(this.state.type)?(fi=!0,Yr=Nl,Lr=K?this.parseIdentifier():this.parseModuleExportName(),$n=!1):(Lr=ca,$n=!1)}else ke(this.state.type)?($n=!1,Lr=K?this.parseIdentifier():this.parseModuleExportName()):(fi=!0,Yr=Nl)}else ke(this.state.type)&&(fi=!0,K?(Yr=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(Yr.name,Yr.loc.start,!0,!0)):Yr=this.parseModuleExportName());fi&&we&&this.raise(K?us.TypeModifierIsUsedInTypeImports:us.TypeModifierIsUsedInTypeExports,ra),O[gt]=Yr,O[sr]=Lr;let kc=K?"importKind":"exportKind";O[kc]=fi?"type":"value",$n&&this.eatContextual(93)&&(O[sr]=K?this.parseIdentifier():this.parseModuleExportName()),O[sr]||(O[sr]=Zt(O[gt])),K&&this.checkIdentifier(O[sr],fi?4098:4096)}};function ip(se){if(se.type!=="MemberExpression")return!1;let{computed:O,property:K}=se;return O&&K.type!=="StringLiteral"&&(K.type!=="TemplateLiteral"||K.expressions.length>0)?!1:YA(se.object)}function _d(se,O){var K;let{type:we}=se;if((K=se.extra)!=null&&K.parenthesized)return!1;if(O){if(we==="Literal"){let{value:gt}=se;if(typeof gt=="string"||typeof gt=="boolean")return!0}}else if(we==="StringLiteral"||we==="BooleanLiteral")return!0;return!!(j1(se,O)||pw(se,O)||we==="TemplateLiteral"&&se.expressions.length===0||ip(se))}function j1(se,O){return O?se.type==="Literal"&&(typeof se.value=="number"||"bigint"in se):se.type==="NumericLiteral"||se.type==="BigIntLiteral"}function pw(se,O){if(se.type==="UnaryExpression"){let{operator:K,argument:we}=se;if(K==="-"&&j1(we,O))return!0}return!1}function YA(se){return se.type==="Identifier"?!0:se.type!=="MemberExpression"||se.computed?!1:YA(se.object)}var Ac=Q`placeholders`({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."}),Nm=se=>class extends se{parsePlaceholder(O){if(this.match(133)){let K=this.startNode();return this.next(),this.assertNoSpace(),K.name=super.parseIdentifier(!0),this.assertNoSpace(),this.expect(133),this.finishPlaceholder(K,O)}}finishPlaceholder(O,K){let we=O;return(!we.expectedNode||!we.type)&&(we=this.finishNode(we,"Placeholder")),we.expectedNode=K,we}getTokenFromCode(O){O===37&&this.input.charCodeAt(this.state.pos+1)===37?this.finishOp(133,2):super.getTokenFromCode(O)}parseExprAtom(O){return this.parsePlaceholder("Expression")||super.parseExprAtom(O)}parseIdentifier(O){return this.parsePlaceholder("Identifier")||super.parseIdentifier(O)}checkReservedWord(O,K,we,gt){O!==void 0&&super.checkReservedWord(O,K,we,gt)}parseBindingAtom(){return this.parsePlaceholder("Pattern")||super.parseBindingAtom()}isValidLVal(O,K,we){return O==="Placeholder"||super.isValidLVal(O,K,we)}toAssignable(O,K){O&&O.type==="Placeholder"&&O.expectedNode==="Expression"?O.expectedNode="Pattern":super.toAssignable(O,K)}chStartsBindingIdentifier(O,K){return!!(super.chStartsBindingIdentifier(O,K)||this.lookahead().type===133)}verifyBreakContinue(O,K){O.label&&O.label.type==="Placeholder"||super.verifyBreakContinue(O,K)}parseExpressionStatement(O,K){var we;if(K.type!=="Placeholder"||(we=K.extra)!=null&&we.parenthesized)return super.parseExpressionStatement(O,K);if(this.match(14)){let sr=O;return sr.label=this.finishPlaceholder(K,"Identifier"),this.next(),sr.body=super.parseStatementOrSloppyAnnexBFunctionDeclaration(),this.finishNode(sr,"LabeledStatement")}this.semicolon();let gt=O;return gt.name=K.name,this.finishPlaceholder(gt,"Statement")}parseBlock(O,K,we){return this.parsePlaceholder("BlockStatement")||super.parseBlock(O,K,we)}parseFunctionId(O){return this.parsePlaceholder("Identifier")||super.parseFunctionId(O)}parseClass(O,K,we){let gt=K?"ClassDeclaration":"ClassExpression";this.next();let sr=this.state.strict,Yr=this.parsePlaceholder("Identifier");if(Yr)if(this.match(81)||this.match(133)||this.match(5))O.id=Yr;else{if(we||!K)return O.id=null,O.body=this.finishPlaceholder(Yr,"ClassBody"),this.finishNode(O,gt);throw this.raise(Ac.ClassNameIsRequired,this.state.startLoc)}else this.parseClassId(O,K,we);return super.parseClassSuper(O),O.body=this.parsePlaceholder("ClassBody")||super.parseClassBody(!!O.superClass,sr),this.finishNode(O,gt)}parseExport(O,K){let we=this.parsePlaceholder("Identifier");if(!we)return super.parseExport(O,K);let gt=O;if(!this.isContextual(98)&&!this.match(12))return gt.specifiers=[],gt.source=null,gt.declaration=this.finishPlaceholder(we,"Declaration"),this.finishNode(gt,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");let sr=this.startNode();return sr.exported=we,gt.specifiers=[this.finishNode(sr,"ExportDefaultSpecifier")],super.parseExport(gt,K)}isExportDefaultSpecifier(){if(this.match(65)){let O=this.nextTokenStart();if(this.isUnparsedContextual(O,"from")&&this.input.startsWith(Sc(133),this.nextTokenStartSince(O+4)))return!0}return super.isExportDefaultSpecifier()}maybeParseExportDefaultSpecifier(O,K){var we;return(we=O.specifiers)!=null&&we.length?!0:super.maybeParseExportDefaultSpecifier(O,K)}checkExport(O){let{specifiers:K}=O;K!=null&&K.length&&(O.specifiers=K.filter(we=>we.exported.type==="Placeholder")),super.checkExport(O),O.specifiers=K}parseImport(O){let K=this.parsePlaceholder("Identifier");if(!K)return super.parseImport(O);if(O.specifiers=[],!this.isContextual(98)&&!this.match(12))return O.source=this.finishPlaceholder(K,"StringLiteral"),this.semicolon(),this.finishNode(O,"ImportDeclaration");let we=this.startNodeAtNode(K);return we.local=K,O.specifiers.push(this.finishNode(we,"ImportDefaultSpecifier")),this.eat(12)&&(this.maybeParseStarImportSpecifier(O)||this.parseNamedImportSpecifiers(O)),this.expectContextual(98),O.source=this.parseImportSource(),this.semicolon(),this.finishNode(O,"ImportDeclaration")}parseImportSource(){return this.parsePlaceholder("StringLiteral")||super.parseImportSource()}assertNoSpace(){this.state.start>this.offsetToSourcePos(this.state.lastTokEndLoc.index)&&this.raise(Ac.UnexpectedSpace,this.state.lastTokEndLoc)}},HS=se=>class extends se{parseV8Intrinsic(){if(this.match(54)){let O=this.state.startLoc,K=this.startNode();if(this.next(),qr(this.state.type)){let we=this.parseIdentifierName(),gt=this.createIdentifier(K,we);if(gt.type="V8IntrinsicIdentifier",this.match(10))return gt}this.unexpected(O)}}parseExprAtom(O){return this.parseV8Intrinsic()||super.parseExprAtom(O)}},jd=["minimal","fsharp","hack","smart"],dh=["^^","@@","^","%","#"];function Hp(se){if(se.has("decorators")){if(se.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");let K=se.get("decorators").decoratorsBeforeExport;if(K!=null&&typeof K!="boolean")throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");let we=se.get("decorators").allowCallParenthesized;if(we!=null&&typeof we!="boolean")throw new Error("'allowCallParenthesized' must be a boolean.")}if(se.has("flow")&&se.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(se.has("placeholders")&&se.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(se.has("pipelineOperator")){var O;let K=se.get("pipelineOperator").proposal;if(!jd.includes(K)){let gt=jd.map(sr=>`"${sr}"`).join(", ");throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${gt}.`)}let we=((O=se.get("recordAndTuple"))==null?void 0:O.syntaxType)==="hash";if(K==="hack"){if(se.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(se.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");let gt=se.get("pipelineOperator").topicToken;if(!dh.includes(gt)){let sr=dh.map(Yr=>`"${Yr}"`).join(", ");throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${sr}.`)}if(gt==="#"&&we)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "hack", topicToken: "#" }]\` and \`${JSON.stringify(["recordAndTuple",se.get("recordAndTuple")])}\`.`)}else if(K==="smart"&&we)throw new Error(`Plugin conflict between \`["pipelineOperator", { proposal: "smart" }]\` and \`${JSON.stringify(["recordAndTuple",se.get("recordAndTuple")])}\`.`)}if(se.has("moduleAttributes")){if(se.has("deprecatedImportAssert")||se.has("importAssertions"))throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");if(se.get("moduleAttributes").version!=="may-2020")throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(se.has("importAssertions")&&se.has("deprecatedImportAssert"))throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");if(!se.has("deprecatedImportAssert")&&se.has("importAttributes")&&se.get("importAttributes").deprecatedAssertSyntax&&se.set("deprecatedImportAssert",{}),se.has("recordAndTuple")){let K=se.get("recordAndTuple").syntaxType;if(K!=null){let we=["hash","bar"];if(!we.includes(K))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+we.map(gt=>`'${gt}'`).join(", "))}}if(se.has("asyncDoExpressions")&&!se.has("doExpressions")){let K=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw K.missingPlugins="doExpressions",K}if(se.has("optionalChainingAssign")&&se.get("optionalChainingAssign").version!=="2023-07")throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.")}var uC={estree:de,jsx:Ea,flow:HA,typescript:ef,v8intrinsic:HS,placeholders:Nm},nE=Object.keys(uC),J_=class extends di{checkProto(se,O,K,we){if(se.type==="SpreadElement"||this.isObjectMethod(se)||se.computed||se.shorthand)return;let gt=se.key;if((gt.type==="Identifier"?gt.name:gt.value)==="__proto__"){if(O){this.raise(X.RecordNoProto,gt);return}K.used&&(we?we.doubleProtoLoc===null&&(we.doubleProtoLoc=gt.loc.start):this.raise(X.DuplicateProto,gt)),K.used=!0}}shouldExitDescending(se,O){return se.type==="ArrowFunctionExpression"&&this.offsetToSourcePos(se.start)===O}getExpression(){this.enterInitialScopes(),this.nextToken();let se=this.parseExpression();return this.match(140)||this.unexpected(),this.finalizeRemainingComments(),se.comments=this.comments,se.errors=this.state.errors,this.optionFlags&128&&(se.tokens=this.tokens),se}parseExpression(se,O){return se?this.disallowInAnd(()=>this.parseExpressionBase(O)):this.allowInAnd(()=>this.parseExpressionBase(O))}parseExpressionBase(se){let O=this.state.startLoc,K=this.parseMaybeAssign(se);if(this.match(12)){let we=this.startNodeAt(O);for(we.expressions=[K];this.eat(12);)we.expressions.push(this.parseMaybeAssign(se));return this.toReferencedList(we.expressions),this.finishNode(we,"SequenceExpression")}return K}parseMaybeAssignDisallowIn(se,O){return this.disallowInAnd(()=>this.parseMaybeAssign(se,O))}parseMaybeAssignAllowIn(se,O){return this.allowInAnd(()=>this.parseMaybeAssign(se,O))}setOptionalParametersError(se,O){var K;se.optionalParametersLoc=(K=O?.loc)!=null?K:this.state.startLoc}parseMaybeAssign(se,O){let K=this.state.startLoc;if(this.isContextual(108)&&this.prodParam.hasYield){let Yr=this.parseYield();return O&&(Yr=O.call(this,Yr,K)),Yr}let we;se?we=!1:(se=new yg,we=!0);let{type:gt}=this.state;(gt===10||qr(gt))&&(this.state.potentialArrowAt=this.state.start);let sr=this.parseMaybeConditional(se);if(O&&(sr=O.call(this,sr,K)),Hi(this.state.type)){let Yr=this.startNodeAt(K),Lr=this.state.value;if(Yr.operator=Lr,this.match(29)){this.toAssignable(sr,!0),Yr.left=sr;let fi=K.index;se.doubleProtoLoc!=null&&se.doubleProtoLoc.index>=fi&&(se.doubleProtoLoc=null),se.shorthandAssignLoc!=null&&se.shorthandAssignLoc.index>=fi&&(se.shorthandAssignLoc=null),se.privateKeyLoc!=null&&se.privateKeyLoc.index>=fi&&(this.checkDestructuringPrivate(se),se.privateKeyLoc=null)}else Yr.left=sr;return this.next(),Yr.right=this.parseMaybeAssign(),this.checkLVal(sr,this.finishNode(Yr,"AssignmentExpression")),Yr}else we&&this.checkExpressionErrors(se,!0);return sr}parseMaybeConditional(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseExprOps(se);return this.shouldExitDescending(we,K)?we:this.parseConditional(we,O,se)}parseConditional(se,O,K){if(this.eat(17)){let we=this.startNodeAt(O);return we.test=se,we.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),we.alternate=this.parseMaybeAssign(),this.finishNode(we,"ConditionalExpression")}return se}parseMaybeUnaryOrPrivate(se){return this.match(139)?this.parsePrivateName():this.parseMaybeUnary(se)}parseExprOps(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseMaybeUnaryOrPrivate(se);return this.shouldExitDescending(we,K)?we:this.parseExprOp(we,O,-1)}parseExprOp(se,O,K){if(this.isPrivateName(se)){let gt=this.getPrivateNameSV(se);(K>=Hr(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(X.PrivateInExpectedIn,se,{identifierName:gt}),this.classScope.usePrivateName(gt,se.loc.start)}let we=this.state.type;if(io(we)&&(this.prodParam.hasIn||!this.match(58))){let gt=Hr(we);if(gt>K){if(we===39){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return se;this.checkPipelineAtInfixOperator(se,O)}let sr=this.startNodeAt(O);sr.left=se,sr.operator=this.state.value;let Yr=we===41||we===42,Lr=we===40;if(Lr&&(gt=Hr(42)),this.next(),we===39&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&this.state.type===96&&this.prodParam.hasAwait)throw this.raise(X.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);sr.right=this.parseExprOpRightExpr(we,gt);let fi=this.finishNode(sr,Yr||Lr?"LogicalExpression":"BinaryExpression"),$n=this.state.type;if(Lr&&($n===41||$n===42)||Yr&&$n===40)throw this.raise(X.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(fi,O,K)}}return se}parseExprOpRightExpr(se,O){let K=this.state.startLoc;switch(se){case 39:switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(()=>this.parseHackPipeBody());case"fsharp":return this.withSoloAwaitPermittingContext(()=>this.parseFSharpPipelineBody(O))}if(this.getPluginOption("pipelineOperator","proposal")==="smart")return this.withTopicBindingContext(()=>{if(this.prodParam.hasYield&&this.isContextual(108))throw this.raise(X.PipeBodyIsTighter,this.state.startLoc);return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(se,O),K)});default:return this.parseExprOpBaseRightExpr(se,O)}}parseExprOpBaseRightExpr(se,O){let K=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),K,Wr(se)?O-1:O)}parseHackPipeBody(){var se;let{startLoc:O}=this.state,K=this.parseMaybeAssign();return b.has(K.type)&&!((se=K.extra)!=null&&se.parenthesized)&&this.raise(X.PipeUnparenthesizedBody,O,{type:K.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipeTopicUnused,O),K}checkExponentialAfterUnary(se){this.match(57)&&this.raise(X.UnexpectedTokenUnaryExponentiation,se.argument)}parseMaybeUnary(se,O){let K=this.state.startLoc,we=this.isContextual(96);if(we&&this.recordAwaitIfAllowed()){this.next();let Lr=this.parseAwait(K);return O||this.checkExponentialAfterUnary(Lr),Lr}let gt=this.match(34),sr=this.startNode();if(Ya(this.state.type)){sr.operator=this.state.value,sr.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");let Lr=this.match(89);if(this.next(),sr.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(se,!0),this.state.strict&&Lr){let fi=sr.argument;fi.type==="Identifier"?this.raise(X.StrictDelete,sr):this.hasPropertyAsPrivateName(fi)&&this.raise(X.DeletePrivateField,sr)}if(!gt)return O||this.checkExponentialAfterUnary(sr),this.finishNode(sr,"UnaryExpression")}let Yr=this.parseUpdate(sr,gt,se);if(we){let{type:Lr}=this.state;if((this.hasPlugin("v8intrinsic")?Nn(Lr):Nn(Lr)&&!this.match(54))&&!this.isAmbiguousAwait())return this.raiseOverwrite(X.AwaitNotInAsyncContext,K),this.parseAwait(K)}return Yr}parseUpdate(se,O,K){if(O){let sr=se;return this.checkLVal(sr.argument,this.finishNode(sr,"UpdateExpression")),se}let we=this.state.startLoc,gt=this.parseExprSubscripts(K);if(this.checkExpressionErrors(K,!1))return gt;for(;ga(this.state.type)&&!this.canInsertSemicolon();){let sr=this.startNodeAt(we);sr.operator=this.state.value,sr.prefix=!1,sr.argument=gt,this.next(),this.checkLVal(gt,gt=this.finishNode(sr,"UpdateExpression"))}return gt}parseExprSubscripts(se){let O=this.state.startLoc,K=this.state.potentialArrowAt,we=this.parseExprAtom(se);return this.shouldExitDescending(we,K)?we:this.parseSubscripts(we,O)}parseSubscripts(se,O,K){let we={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(se),stop:!1};do se=this.parseSubscript(se,O,K,we),we.maybeAsyncArrow=!1;while(!we.stop);return se}parseSubscript(se,O,K,we){let{type:gt}=this.state;if(!K&>===15)return this.parseBind(se,O,K,we);if(Ft(gt))return this.parseTaggedTemplateExpression(se,O,we);let sr=!1;if(gt===18){if(K&&(this.raise(X.OptionalChainingNoNew,this.state.startLoc),this.lookaheadCharCode()===40))return we.stop=!0,se;we.optionalChainMember=sr=!0,this.next()}if(!K&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(se,O,we,sr);{let Yr=this.eat(0);return Yr||sr||this.eat(16)?this.parseMember(se,O,we,Yr,sr):(we.stop=!0,se)}}parseMember(se,O,K,we,gt){let sr=this.startNodeAt(O);return sr.object=se,sr.computed=we,we?(sr.property=this.parseExpression(),this.expect(3)):this.match(139)?(se.type==="Super"&&this.raise(X.SuperPrivateField,O),this.classScope.usePrivateName(this.state.value,this.state.startLoc),sr.property=this.parsePrivateName()):sr.property=this.parseIdentifier(!0),K.optionalChainMember?(sr.optional=gt,this.finishNode(sr,"OptionalMemberExpression")):this.finishNode(sr,"MemberExpression")}parseBind(se,O,K,we){let gt=this.startNodeAt(O);return gt.object=se,this.next(),gt.callee=this.parseNoCallExpr(),we.stop=!0,this.parseSubscripts(this.finishNode(gt,"BindExpression"),O,K)}parseCoverCallAndAsyncArrowHead(se,O,K,we){let gt=this.state.maybeInArrowParameters,sr=null;this.state.maybeInArrowParameters=!0,this.next();let Yr=this.startNodeAt(O);Yr.callee=se;let{maybeAsyncArrow:Lr,optionalChainMember:fi}=K;Lr&&(this.expressionScope.enter(Om()),sr=new yg),fi&&(Yr.optional=we),we?Yr.arguments=this.parseCallExpressionArguments(11):Yr.arguments=this.parseCallExpressionArguments(11,se.type!=="Super",Yr,sr);let $n=this.finishCallExpression(Yr,fi);return Lr&&this.shouldParseAsyncArrow()&&!we?(K.stop=!0,this.checkDestructuringPrivate(sr),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),$n=this.parseAsyncArrowFromCallExpression(this.startNodeAt(O),$n)):(Lr&&(this.checkExpressionErrors(sr,!0),this.expressionScope.exit()),this.toReferencedArguments($n)),this.state.maybeInArrowParameters=gt,$n}toReferencedArguments(se,O){this.toReferencedListDeep(se.arguments,O)}parseTaggedTemplateExpression(se,O,K){let we=this.startNodeAt(O);return we.tag=se,we.quasi=this.parseTemplate(!0),K.optionalChainMember&&this.raise(X.OptionalChainingNoTemplate,O),this.finishNode(we,"TaggedTemplateExpression")}atPossibleAsyncArrow(se){return se.type==="Identifier"&&se.name==="async"&&this.state.lastTokEndLoc.index===se.end&&!this.canInsertSemicolon()&&se.end-se.start===5&&this.offsetToSourcePos(se.start)===this.state.potentialArrowAt}finishCallExpression(se,O){if(se.callee.type==="Import")if(se.arguments.length===0||se.arguments.length>2)this.raise(X.ImportCallArity,se);else for(let K of se.arguments)K.type==="SpreadElement"&&this.raise(X.ImportCallSpreadArgument,K);return this.finishNode(se,O?"OptionalCallExpression":"CallExpression")}parseCallExpressionArguments(se,O,K,we){let gt=[],sr=!0,Yr=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(se);){if(sr)sr=!1;else if(this.expect(12),this.match(se)){K&&this.addTrailingCommaExtraToNode(K),this.next();break}gt.push(this.parseExprListItem(!1,we,O))}return this.state.inFSharpPipelineDirectBody=Yr,gt}shouldParseAsyncArrow(){return this.match(19)&&!this.canInsertSemicolon()}parseAsyncArrowFromCallExpression(se,O){var K;return this.resetPreviousNodeTrailingComments(O),this.expect(19),this.parseArrowExpression(se,O.arguments,!0,(K=O.extra)==null?void 0:K.trailingCommaLoc),O.innerComments&&Ri(se,O.innerComments),O.callee.trailingComments&&Ri(se,O.callee.trailingComments),se}parseNoCallExpr(){let se=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),se,!0)}parseExprAtom(se){let O,K=null,{type:we}=this.state;switch(we){case 79:return this.parseSuper();case 83:return O=this.startNode(),this.next(),this.match(16)?this.parseImportMetaProperty(O):this.match(10)?this.optionFlags&256?this.parseImportCall(O):this.finishNode(O,"Import"):(this.raise(X.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(O,"Import"));case 78:return O=this.startNode(),this.next(),this.finishNode(O,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 135:return this.parseNumericLiteral(this.state.value);case 136:return this.parseBigIntLiteral(this.state.value);case 134:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:{let gt=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(gt)}case 2:case 1:return this.parseArrayLike(this.state.type===2?4:3,!1,!0);case 0:return this.parseArrayLike(3,!0,!1,se);case 6:case 7:return this.parseObjectLike(this.state.type===6?9:8,!1,!0);case 5:return this.parseObjectLike(8,!1,!1,se);case 68:return this.parseFunctionOrFunctionSent();case 26:K=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(K,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:{O=this.startNode(),this.next(),O.object=null;let gt=O.callee=this.parseNoCallExpr();if(gt.type==="MemberExpression")return this.finishNode(O,"BindExpression");throw this.raise(X.UnsupportedBind,gt)}case 139:return this.raise(X.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:{let gt=this.getPluginOption("pipelineOperator","proposal");if(gt)return this.parseTopicReference(gt);this.unexpected();break}case 47:{let gt=this.input.codePointAt(this.nextTokenStart());gc(gt)||gt===62?this.expectOnePlugin(["jsx","flow","typescript"]):this.unexpected();break}default:if(we===137)return this.parseDecimalLiteral(this.state.value);if(qr(we)){if(this.isContextual(127)&&this.lookaheadInLineCharCode()===123)return this.parseModuleExpression();let gt=this.state.potentialArrowAt===this.state.start,sr=this.state.containsEsc,Yr=this.parseIdentifier();if(!sr&&Yr.name==="async"&&!this.canInsertSemicolon()){let{type:Lr}=this.state;if(Lr===68)return this.resetPreviousNodeTrailingComments(Yr),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(Yr));if(qr(Lr))return this.lookaheadCharCode()===61?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(Yr)):Yr;if(Lr===90)return this.resetPreviousNodeTrailingComments(Yr),this.parseDo(this.startNodeAtNode(Yr),!0)}return gt&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(Yr),[Yr],!1)):Yr}else this.unexpected()}}parseTopicReferenceThenEqualsSign(se,O){let K=this.getPluginOption("pipelineOperator","proposal");if(K)return this.state.type=se,this.state.value=O,this.state.pos--,this.state.end--,this.state.endLoc=a(this.state.endLoc,-1),this.parseTopicReference(K);this.unexpected()}parseTopicReference(se){let O=this.startNode(),K=this.state.startLoc,we=this.state.type;return this.next(),this.finishTopicReference(O,K,se,we)}finishTopicReference(se,O,K,we){if(this.testTopicReferenceConfiguration(K,O,we))return K==="hack"?(this.topicReferenceIsAllowedInCurrentContext()||this.raise(X.PipeTopicUnbound,O),this.registerTopicReference(),this.finishNode(se,"TopicReference")):(this.topicReferenceIsAllowedInCurrentContext()||this.raise(X.PrimaryTopicNotAllowed,O),this.registerTopicReference(),this.finishNode(se,"PipelinePrimaryTopicReference"));throw this.raise(X.PipeTopicUnconfiguredToken,O,{token:Sc(we)})}testTopicReferenceConfiguration(se,O,K){switch(se){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:Sc(K)}]);case"smart":return K===27;default:throw this.raise(X.PipeTopicRequiresHackPipes,O)}}parseAsyncArrowUnaryFunction(se){this.prodParam.enter(ZA(!0,this.prodParam.hasYield));let O=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(X.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(se,O,!0)}parseDo(se,O){this.expectPlugin("doExpressions"),O&&this.expectPlugin("asyncDoExpressions"),se.async=O,this.next();let K=this.state.labels;return this.state.labels=[],O?(this.prodParam.enter(2),se.body=this.parseBlock(),this.prodParam.exit()):se.body=this.parseBlock(),this.state.labels=K,this.finishNode(se,"DoExpression")}parseSuper(){let se=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper&&!(this.optionFlags&16)?this.raise(X.SuperNotAllowed,se):!this.scope.allowSuper&&!(this.optionFlags&16)&&this.raise(X.UnexpectedSuper,se),!this.match(10)&&!this.match(0)&&!this.match(16)&&this.raise(X.UnsupportedSuper,se),this.finishNode(se,"Super")}parsePrivateName(){let se=this.startNode(),O=this.startNodeAt(a(this.state.startLoc,1)),K=this.state.value;return this.next(),se.id=this.createIdentifier(O,K),this.finishNode(se,"PrivateName")}parseFunctionOrFunctionSent(){let se=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){let O=this.createIdentifier(this.startNodeAtNode(se),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(se,O,"sent")}return this.parseFunction(se)}parseMetaProperty(se,O,K){se.meta=O;let we=this.state.containsEsc;return se.property=this.parseIdentifier(!0),(se.property.name!==K||we)&&this.raise(X.UnsupportedMetaProperty,se.property,{target:O.name,onlyValidPropertyName:K}),this.finishNode(se,"MetaProperty")}parseImportMetaProperty(se){let O=this.createIdentifier(this.startNodeAtNode(se),"import");if(this.next(),this.isContextual(101))this.inModule||this.raise(X.ImportMetaOutsideModule,O),this.sawUnambiguousESM=!0;else if(this.isContextual(105)||this.isContextual(97)){let K=this.isContextual(105);if(this.expectPlugin(K?"sourcePhaseImports":"deferredImportEvaluation"),!(this.optionFlags&256))throw this.raise(X.DynamicImportPhaseRequiresImportExpressions,this.state.startLoc,{phase:this.state.value});return this.next(),se.phase=K?"source":"defer",this.parseImportCall(se)}return this.parseMetaProperty(se,O,"meta")}parseLiteralAtNode(se,O,K){return this.addExtra(K,"rawValue",se),this.addExtra(K,"raw",this.input.slice(this.offsetToSourcePos(K.start),this.state.end)),K.value=se,this.next(),this.finishNode(K,O)}parseLiteral(se,O){let K=this.startNode();return this.parseLiteralAtNode(se,O,K)}parseStringLiteral(se){return this.parseLiteral(se,"StringLiteral")}parseNumericLiteral(se){return this.parseLiteral(se,"NumericLiteral")}parseBigIntLiteral(se){return this.parseLiteral(se,"BigIntLiteral")}parseDecimalLiteral(se){return this.parseLiteral(se,"DecimalLiteral")}parseRegExpLiteral(se){let O=this.startNode();return this.addExtra(O,"raw",this.input.slice(this.offsetToSourcePos(O.start),this.state.end)),O.pattern=se.pattern,O.flags=se.flags,this.next(),this.finishNode(O,"RegExpLiteral")}parseBooleanLiteral(se){let O=this.startNode();return O.value=se,this.next(),this.finishNode(O,"BooleanLiteral")}parseNullLiteral(){let se=this.startNode();return this.next(),this.finishNode(se,"NullLiteral")}parseParenAndDistinguishExpression(se){let O=this.state.startLoc,K;this.next(),this.expressionScope.enter(sd());let we=this.state.maybeInArrowParameters,gt=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;let sr=this.state.startLoc,Yr=[],Lr=new yg,fi=!0,$n,ra;for(;!this.match(11);){if(fi)fi=!1;else if(this.expect(12,Lr.optionalParametersLoc===null?null:Lr.optionalParametersLoc),this.match(11)){ra=this.state.startLoc;break}if(this.match(21)){let ca=this.state.startLoc;if($n=this.state.startLoc,Yr.push(this.parseParenItem(this.parseRestBinding(),ca)),!this.checkCommaAfterRest(41))break}else Yr.push(this.parseMaybeAssignAllowIn(Lr,this.parseParenItem))}let kc=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=we,this.state.inFSharpPipelineDirectBody=gt;let Nl=this.startNodeAt(O);return se&&this.shouldParseArrow(Yr)&&(Nl=this.parseArrow(Nl))?(this.checkDestructuringPrivate(Lr),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(Nl,Yr,!1),Nl):(this.expressionScope.exit(),Yr.length||this.unexpected(this.state.lastTokStartLoc),ra&&this.unexpected(ra),$n&&this.unexpected($n),this.checkExpressionErrors(Lr,!0),this.toReferencedListDeep(Yr,!0),Yr.length>1?(K=this.startNodeAt(sr),K.expressions=Yr,this.finishNode(K,"SequenceExpression"),this.resetEndLocation(K,kc)):K=Yr[0],this.wrapParenthesis(O,K))}wrapParenthesis(se,O){if(!(this.optionFlags&512))return this.addExtra(O,"parenthesized",!0),this.addExtra(O,"parenStart",se.index),this.takeSurroundingComments(O,se.index,this.state.lastTokEndLoc.index),O;let K=this.startNodeAt(se);return K.expression=O,this.finishNode(K,"ParenthesizedExpression")}shouldParseArrow(se){return!this.canInsertSemicolon()}parseArrow(se){if(this.eat(19))return se}parseParenItem(se,O){return se}parseNewOrNewTarget(){let se=this.startNode();if(this.next(),this.match(16)){let O=this.createIdentifier(this.startNodeAtNode(se),"new");this.next();let K=this.parseMetaProperty(se,O,"target");return!this.scope.inNonArrowFunction&&!this.scope.inClass&&!(this.optionFlags&4)&&this.raise(X.UnexpectedNewTarget,K),K}return this.parseNew(se)}parseNew(se){if(this.parseNewCallee(se),this.eat(10)){let O=this.parseExprList(11);this.toReferencedList(O),se.arguments=O}else se.arguments=[];return this.finishNode(se,"NewExpression")}parseNewCallee(se){let O=this.match(83),K=this.parseNoCallExpr();se.callee=K,O&&(K.type==="Import"||K.type==="ImportExpression")&&this.raise(X.ImportCallNotNewExpression,K)}parseTemplateElement(se){let{start:O,startLoc:K,end:we,value:gt}=this.state,sr=O+1,Yr=this.startNodeAt(a(K,1));gt===null&&(se||this.raise(X.InvalidEscapeSequenceTemplate,a(this.state.firstInvalidTemplateEscapePos,1)));let Lr=this.match(24),fi=Lr?-1:-2,$n=we+fi;Yr.value={raw:this.input.slice(sr,$n).replace(/\r\n?/g,` -`),cooked:gt===null?null:gt.slice(1,fi)},Yr.tail=Lr,this.next();let ra=this.finishNode(Yr,"TemplateElement");return this.resetEndLocation(ra,a(this.state.lastTokEndLoc,fi)),ra}parseTemplate(se){let O=this.startNode(),K=this.parseTemplateElement(se),we=[K],gt=[];for(;!K.tail;)gt.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),we.push(K=this.parseTemplateElement(se));return O.expressions=gt,O.quasis=we,this.finishNode(O,"TemplateLiteral")}parseTemplateSubstitution(){return this.parseExpression()}parseObjectLike(se,O,K,we){K&&this.expectPlugin("recordAndTuple");let gt=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let sr=Object.create(null),Yr=!0,Lr=this.startNode();for(Lr.properties=[],this.next();!this.match(se);){if(Yr)Yr=!1;else if(this.expect(12),this.match(se)){this.addTrailingCommaExtraToNode(Lr);break}let $n;O?$n=this.parseBindingProperty():($n=this.parsePropertyDefinition(we),this.checkProto($n,K,sr,we)),K&&!this.isObjectProperty($n)&&$n.type!=="SpreadElement"&&this.raise(X.InvalidRecordProperty,$n),$n.shorthand&&this.addExtra($n,"shorthand",!0),Lr.properties.push($n)}this.next(),this.state.inFSharpPipelineDirectBody=gt;let fi="ObjectExpression";return O?fi="ObjectPattern":K&&(fi="RecordExpression"),this.finishNode(Lr,fi)}addTrailingCommaExtraToNode(se){this.addExtra(se,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(se,"trailingCommaLoc",this.state.lastTokStartLoc,!1)}maybeAsyncOrAccessorProp(se){return!se.computed&&se.key.type==="Identifier"&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))}parsePropertyDefinition(se){let O=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(X.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)O.push(this.parseDecorator());let K=this.startNode(),we=!1,gt=!1,sr;if(this.match(21))return O.length&&this.unexpected(),this.parseSpread();O.length&&(K.decorators=O,O=[]),K.method=!1,se&&(sr=this.state.startLoc);let Yr=this.eat(55);this.parsePropertyNamePrefixOperator(K);let Lr=this.state.containsEsc;if(this.parsePropertyName(K,se),!Yr&&!Lr&&this.maybeAsyncOrAccessorProp(K)){let{key:fi}=K,$n=fi.name;$n==="async"&&!this.hasPrecedingLineBreak()&&(we=!0,this.resetPreviousNodeTrailingComments(fi),Yr=this.eat(55),this.parsePropertyName(K)),($n==="get"||$n==="set")&&(gt=!0,this.resetPreviousNodeTrailingComments(fi),K.kind=$n,this.match(55)&&(Yr=!0,this.raise(X.AccessorIsGenerator,this.state.curPosition(),{kind:$n}),this.next()),this.parsePropertyName(K))}return this.parseObjPropValue(K,sr,Yr,we,!1,gt,se)}getGetterSetterExpectedParamCount(se){return se.kind==="get"?0:1}getObjectOrClassMethodParams(se){return se.params}checkGetterSetterParams(se){var O;let K=this.getGetterSetterExpectedParamCount(se),we=this.getObjectOrClassMethodParams(se);we.length!==K&&this.raise(se.kind==="get"?X.BadGetterArity:X.BadSetterArity,se),se.kind==="set"&&((O=we[we.length-1])==null?void 0:O.type)==="RestElement"&&this.raise(X.BadSetterRestParameter,se)}parseObjectMethod(se,O,K,we,gt){if(gt){let sr=this.parseMethod(se,O,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(sr),sr}if(K||O||this.match(10))return we&&this.unexpected(),se.kind="method",se.method=!0,this.parseMethod(se,O,K,!1,!1,"ObjectMethod")}parseObjectProperty(se,O,K,we){if(se.shorthand=!1,this.eat(14))return se.value=K?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowIn(we),this.finishNode(se,"ObjectProperty");if(!se.computed&&se.key.type==="Identifier"){if(this.checkReservedWord(se.key.name,se.key.loc.start,!0,!1),K)se.value=this.parseMaybeDefault(O,Zt(se.key));else if(this.match(29)){let gt=this.state.startLoc;we!=null?we.shorthandAssignLoc===null&&(we.shorthandAssignLoc=gt):this.raise(X.InvalidCoverInitializedName,gt),se.value=this.parseMaybeDefault(O,Zt(se.key))}else se.value=Zt(se.key);return se.shorthand=!0,this.finishNode(se,"ObjectProperty")}}parseObjPropValue(se,O,K,we,gt,sr,Yr){let Lr=this.parseObjectMethod(se,K,we,gt,sr)||this.parseObjectProperty(se,O,gt,Yr);return Lr||this.unexpected(),Lr}parsePropertyName(se,O){if(this.eat(0))se.computed=!0,se.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{let{type:K,value:we}=this.state,gt;if(ke(K))gt=this.parseIdentifier(!0);else switch(K){case 135:gt=this.parseNumericLiteral(we);break;case 134:gt=this.parseStringLiteral(we);break;case 136:gt=this.parseBigIntLiteral(we);break;case 139:{let sr=this.state.startLoc;O!=null?O.privateKeyLoc===null&&(O.privateKeyLoc=sr):this.raise(X.UnexpectedPrivateField,sr),gt=this.parsePrivateName();break}default:if(K===137){gt=this.parseDecimalLiteral(we);break}this.unexpected()}se.key=gt,K!==139&&(se.computed=!1)}}initFunction(se,O){se.id=null,se.generator=!1,se.async=O}parseMethod(se,O,K,we,gt,sr,Yr=!1){this.initFunction(se,K),se.generator=O,this.scope.enter(18|(Yr?64:0)|(gt?32:0)),this.prodParam.enter(ZA(K,se.generator)),this.parseFunctionParams(se,we);let Lr=this.parseFunctionBodyAndFinish(se,sr,!0);return this.prodParam.exit(),this.scope.exit(),Lr}parseArrayLike(se,O,K,we){K&&this.expectPlugin("recordAndTuple");let gt=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;let sr=this.startNode();return this.next(),sr.elements=this.parseExprList(se,!K,we,sr),this.state.inFSharpPipelineDirectBody=gt,this.finishNode(sr,K?"TupleExpression":"ArrayExpression")}parseArrowExpression(se,O,K,we){this.scope.enter(6);let gt=ZA(K,!1);!this.match(5)&&this.prodParam.hasIn&&(gt|=8),this.prodParam.enter(gt),this.initFunction(se,K);let sr=this.state.maybeInArrowParameters;return O&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(se,O,we)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(se,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=sr,this.finishNode(se,"ArrowFunctionExpression")}setArrowFunctionParameters(se,O,K){this.toAssignableList(O,K,!1),se.params=O}parseFunctionBodyAndFinish(se,O,K=!1){return this.parseFunctionBody(se,!1,K),this.finishNode(se,O)}parseFunctionBody(se,O,K=!1){let we=O&&!this.match(5);if(this.expressionScope.enter(il()),we)se.body=this.parseMaybeAssign(),this.checkParams(se,!1,O,!1);else{let gt=this.state.strict,sr=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|4),se.body=this.parseBlock(!0,!1,Yr=>{let Lr=!this.isSimpleParamList(se.params);Yr&&Lr&&this.raise(X.IllegalLanguageModeDirective,(se.kind==="method"||se.kind==="constructor")&&se.key?se.key.loc.end:se);let fi=!gt&&this.state.strict;this.checkParams(se,!this.state.strict&&!O&&!K&&!Lr,O,fi),this.state.strict&&se.id&&this.checkIdentifier(se.id,65,fi)}),this.prodParam.exit(),this.state.labels=sr}this.expressionScope.exit()}isSimpleParameter(se){return se.type==="Identifier"}isSimpleParamList(se){for(let O=0,K=se.length;O10||!Sg(se))){if(K&&ac(se)){this.raise(X.UnexpectedKeyword,O,{keyword:se});return}if((this.state.strict?we?Xa:Ei:li)(se,this.inModule)){this.raise(X.UnexpectedReservedWord,O,{reservedWord:se});return}else if(se==="yield"){if(this.prodParam.hasYield){this.raise(X.YieldBindingIdentifier,O);return}}else if(se==="await"){if(this.prodParam.hasAwait){this.raise(X.AwaitBindingIdentifier,O);return}if(this.scope.inStaticBlock){this.raise(X.AwaitBindingIdentifierInStaticBlock,O);return}this.expressionScope.recordAsyncArrowParametersError(O)}else if(se==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(X.ArgumentsInClass,O);return}}}recordAwaitIfAllowed(){let se=this.prodParam.hasAwait||this.optionFlags&1&&!this.scope.inFunction;return se&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),se}parseAwait(se){let O=this.startNodeAt(se);return this.expressionScope.recordParameterInitializerError(X.AwaitExpressionFormalParameter,O),this.eat(55)&&this.raise(X.ObsoleteAwaitStar,O),!this.scope.inFunction&&!(this.optionFlags&1)&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(O.argument=this.parseMaybeUnary(null,!0)),this.finishNode(O,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:se}=this.state;return se===53||se===10||se===0||Ft(se)||se===102&&!this.state.containsEsc||se===138||se===56||this.hasPlugin("v8intrinsic")&&se===54}parseYield(){let se=this.startNode();this.expressionScope.recordParameterInitializerError(X.YieldInParameter,se),this.next();let O=!1,K=null;if(!this.hasPrecedingLineBreak())switch(O=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!O)break;default:K=this.parseMaybeAssign()}return se.delegate=O,se.argument=K,this.finishNode(se,"YieldExpression")}parseImportCall(se){if(this.next(),se.source=this.parseMaybeAssignAllowIn(),se.options=null,this.eat(12)&&!this.match(11)&&(se.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&!this.match(11))){do this.parseMaybeAssignAllowIn();while(this.eat(12)&&!this.match(11));this.raise(X.ImportCallArity,se)}return this.expect(11),this.finishNode(se,"ImportExpression")}checkPipelineAtInfixOperator(se,O){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&se.type==="SequenceExpression"&&this.raise(X.PipelineHeadSequenceExpression,O)}parseSmartPipelineBodyInStyle(se,O){if(this.isSimpleReference(se)){let K=this.startNodeAt(O);return K.callee=se,this.finishNode(K,"PipelineBareFunction")}else{let K=this.startNodeAt(O);return this.checkSmartPipeTopicBodyEarlyErrors(O),K.expression=se,this.finishNode(K,"PipelineTopicExpression")}}isSimpleReference(se){switch(se.type){case"MemberExpression":return!se.computed&&this.isSimpleReference(se.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(se){if(this.match(19))throw this.raise(X.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipelineTopicUnused,se)}withTopicBindingContext(se){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}withSmartMixTopicForbiddingContext(se){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}else return se()}withSoloAwaitPermittingContext(se){let O=this.state.soloAwait;this.state.soloAwait=!0;try{return se()}finally{this.state.soloAwait=O}}allowInAnd(se){let O=this.prodParam.currentFlags();if(8&~O){this.prodParam.enter(O|8);try{return se()}finally{this.prodParam.exit()}}return se()}disallowInAnd(se){let O=this.prodParam.currentFlags();if(8&O){this.prodParam.enter(O&-9);try{return se()}finally{this.prodParam.exit()}}return se()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(se){let O=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let K=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let we=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),O,se);return this.state.inFSharpPipelineDirectBody=K,we}parseModuleExpression(){this.expectPlugin("moduleBlocks");let se=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);let O=this.startNodeAt(this.state.endLoc);this.next();let K=this.initializeScopes(!0);this.enterInitialScopes();try{se.body=this.parseProgram(O,8,"module")}finally{K()}return this.finishNode(se,"ModuleExpression")}parsePropertyNamePrefixOperator(se){}},q0={kind:1},XE={kind:2},TC=/[\uD800-\uDFFF]/u,t_=/in(?:stanceof)?/y;function cp(se,O,K){for(let we=0;we0)for(let[gt,sr]of Array.from(this.scope.undefinedExports))this.raise(X.ModuleExportUndefined,sr,{localName:gt});this.addExtra(se,"topLevelAwait",this.state.hasTopLevelAwait)}let we;return O===140?we=this.finishNode(se,"Program"):we=this.finishNodeAt(se,"Program",a(this.state.startLoc,-1)),we}stmtToDirective(se){let O=se;O.type="Directive",O.value=O.expression,delete O.expression;let K=O.value,we=K.value,gt=this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end)),sr=K.value=gt.slice(1,-1);return this.addExtra(K,"raw",gt),this.addExtra(K,"rawValue",sr),this.addExtra(K,"expressionValue",we),K.type="DirectiveLiteral",O}parseInterpreterDirective(){if(!this.match(28))return null;let se=this.startNode();return se.value=this.state.value,this.next(),this.finishNode(se,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(se,O){if(gc(se)){if(t_.lastIndex=O,t_.test(this.input)){let K=this.codePointAtPos(t_.lastIndex);if(!Cg(K)&&K!==92)return!1}return!0}else return se===92}chStartsBindingPattern(se){return se===91||se===123}hasFollowingBindingAtom(){let se=this.nextTokenStart(),O=this.codePointAtPos(se);return this.chStartsBindingPattern(O)||this.chStartsBindingIdentifier(O,se)}hasInLineFollowingBindingIdentifierOrBrace(){let se=this.nextTokenInLineStart(),O=this.codePointAtPos(se);return O===123||this.chStartsBindingIdentifier(O,se)}startsUsingForOf(){let{type:se,containsEsc:O}=this.lookahead();if(se===102&&!O)return!1;if(qr(se)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let se=this.nextTokenInLineStart();if(this.isUnparsedContextual(se,"using")){se=this.nextTokenInLineStartSince(se+5);let O=this.codePointAtPos(se);if(this.chStartsBindingIdentifier(O,se))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(se=!1){let O=0;return this.options.annexB&&!this.state.strict&&(O|=4,se&&(O|=8)),this.parseStatementLike(O)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(se){let O=null;return this.match(26)&&(O=this.parseDecorators(!0)),this.parseStatementContent(se,O)}parseStatementContent(se,O){let K=this.state.type,we=this.startNode(),gt=!!(se&2),sr=!!(se&4),Yr=se&1;switch(K){case 60:return this.parseBreakContinueStatement(we,!0);case 63:return this.parseBreakContinueStatement(we,!1);case 64:return this.parseDebuggerStatement(we);case 90:return this.parseDoWhileStatement(we);case 91:return this.parseForStatement(we);case 68:if(this.lookaheadCharCode()===46)break;return sr||this.raise(this.state.strict?X.StrictFunction:this.options.annexB?X.SloppyFunctionAnnexB:X.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(we,!1,!gt&&sr);case 80:return gt||this.unexpected(),this.parseClass(this.maybeTakeDecorators(O,we),!0);case 69:return this.parseIfStatement(we);case 70:return this.parseReturnStatement(we);case 71:return this.parseSwitchStatement(we);case 72:return this.parseThrowStatement(we);case 73:return this.parseTryStatement(we);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?gt||this.raise(X.UnexpectedLexicalDeclaration,we):this.raise(X.AwaitUsingNotInAsyncContext,we),this.next(),this.parseVarStatement(we,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(X.UnexpectedUsingDeclaration,this.state.startLoc):gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(we,"using");case 100:{if(this.state.containsEsc)break;let $n=this.nextTokenStart(),ra=this.codePointAtPos($n);if(ra!==91&&(!gt&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(ra,$n)&&ra!==123))break}case 75:gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{let $n=this.state.value;return this.parseVarStatement(we,$n)}case 92:return this.parseWhileStatement(we);case 76:return this.parseWithStatement(we);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(we);case 83:{let $n=this.lookaheadCharCode();if($n===40||$n===46)break}case 82:{!(this.optionFlags&8)&&!Yr&&this.raise(X.UnexpectedImportExport,this.state.startLoc),this.next();let $n;return K===83?($n=this.parseImport(we),$n.type==="ImportDeclaration"&&(!$n.importKind||$n.importKind==="value")&&(this.sawUnambiguousESM=!0)):($n=this.parseExport(we,O),($n.type==="ExportNamedDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportAllDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed($n),$n}default:if(this.isAsyncFunction())return gt||this.raise(X.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(we,!0,!gt&&sr)}let Lr=this.state.value,fi=this.parseExpression();return qr(K)&&fi.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(we,Lr,fi,se):this.parseExpressionStatement(we,fi,O)}assertModuleNodeAllowed(se){!(this.optionFlags&8)&&!this.inModule&&this.raise(X.ImportOutsideModule,se)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(se,O,K){if(se){var we;(we=O.decorators)!=null&&we.length?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(X.DecoratorsBeforeAfterExport,O.decorators[0]),O.decorators.unshift(...se)):O.decorators=se,this.resetStartLocationFromNode(O,se[0]),K&&this.resetStartLocationFromNode(K,O)}return O}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(se){let O=[];do O.push(this.parseDecorator());while(this.match(26));if(this.match(82))se||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(X.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(X.UnexpectedLeadingDecorator,this.state.startLoc);return O}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);let se=this.startNode();if(this.next(),this.hasPlugin("decorators")){let O=this.state.startLoc,K;if(this.match(10)){let we=this.state.startLoc;this.next(),K=this.parseExpression(),this.expect(11),K=this.wrapParenthesis(we,K);let gt=this.state.startLoc;se.expression=this.parseMaybeDecoratorArguments(K,we),this.getPluginOption("decorators","allowCallParenthesized")===!1&&se.expression!==K&&this.raise(X.DecoratorArgumentsOutsideParentheses,gt)}else{for(K=this.parseIdentifier(!1);this.eat(16);){let we=this.startNodeAt(O);we.object=K,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),we.property=this.parsePrivateName()):we.property=this.parseIdentifier(!0),we.computed=!1,K=this.finishNode(we,"MemberExpression")}se.expression=this.parseMaybeDecoratorArguments(K,O)}}else se.expression=this.parseExprSubscripts();return this.finishNode(se,"Decorator")}parseMaybeDecoratorArguments(se,O){if(this.eat(10)){let K=this.startNodeAt(O);return K.callee=se,K.arguments=this.parseCallExpressionArguments(11),this.toReferencedList(K.arguments),this.finishNode(K,"CallExpression")}return se}parseBreakContinueStatement(se,O){return this.next(),this.isLineTerminator()?se.label=null:(se.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(se,O),this.finishNode(se,O?"BreakStatement":"ContinueStatement")}verifyBreakContinue(se,O){let K;for(K=0;Kthis.parseStatement()),this.state.labels.pop(),this.expect(92),se.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(se,"DoWhileStatement")}parseForStatement(se){this.next(),this.state.labels.push(q0);let O=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(O=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return O!==null&&this.unexpected(O),this.parseFor(se,null);let K=this.isContextual(100);{let Lr=this.isContextual(96)&&this.startsAwaitUsing(),fi=Lr||this.isContextual(107)&&this.startsUsingForOf(),$n=K&&this.hasFollowingBindingAtom()||fi;if(this.match(74)||this.match(75)||$n){let ra=this.startNode(),kc;Lr?(kc="await using",this.recordAwaitIfAllowed()||this.raise(X.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):kc=this.state.value,this.next(),this.parseVar(ra,!0,kc);let Nl=this.finishNode(ra,"VariableDeclaration"),ca=this.match(58);return ca&&fi&&this.raise(X.ForInUsing,Nl),(ca||this.isContextual(102))&&Nl.declarations.length===1?this.parseForIn(se,Nl,O):(O!==null&&this.unexpected(O),this.parseFor(se,Nl))}}let we=this.isContextual(95),gt=new yg,sr=this.parseExpression(!0,gt),Yr=this.isContextual(102);if(Yr&&(K&&this.raise(X.ForOfLet,sr),O===null&&we&&sr.type==="Identifier"&&this.raise(X.ForOfAsync,sr)),Yr||this.match(58)){this.checkDestructuringPrivate(gt),this.toAssignable(sr,!0);let Lr=Yr?"ForOfStatement":"ForInStatement";return this.checkLVal(sr,{type:Lr}),this.parseForIn(se,sr,O)}else this.checkExpressionErrors(gt,!0);return O!==null&&this.unexpected(O),this.parseFor(se,sr)}parseFunctionStatement(se,O,K){return this.next(),this.parseFunction(se,1|(K?2:0)|(O?8:0))}parseIfStatement(se){return this.next(),se.test=this.parseHeaderExpression(),se.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),se.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(se,"IfStatement")}parseReturnStatement(se){return!this.prodParam.hasReturn&&!(this.optionFlags&2)&&this.raise(X.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?se.argument=null:(se.argument=this.parseExpression(),this.semicolon()),this.finishNode(se,"ReturnStatement")}parseSwitchStatement(se){this.next(),se.discriminant=this.parseHeaderExpression();let O=se.cases=[];this.expect(5),this.state.labels.push(XE),this.scope.enter(0);let K;for(let we;!this.match(8);)if(this.match(61)||this.match(65)){let gt=this.match(61);K&&this.finishNode(K,"SwitchCase"),O.push(K=this.startNode()),K.consequent=[],this.next(),gt?K.test=this.parseExpression():(we&&this.raise(X.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),we=!0,K.test=null),this.expect(14)}else K?K.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),K&&this.finishNode(K,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(se,"SwitchStatement")}parseThrowStatement(se){return this.next(),this.hasPrecedingLineBreak()&&this.raise(X.NewlineAfterThrow,this.state.lastTokEndLoc),se.argument=this.parseExpression(),this.semicolon(),this.finishNode(se,"ThrowStatement")}parseCatchClauseParam(){let se=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&se.type==="Identifier"?8:0),this.checkLVal(se,{type:"CatchClause"},9),se}parseTryStatement(se){if(this.next(),se.block=this.parseBlock(),se.handler=null,this.match(62)){let O=this.startNode();this.next(),this.match(10)?(this.expect(10),O.param=this.parseCatchClauseParam(),this.expect(11)):(O.param=null,this.scope.enter(0)),O.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),se.handler=this.finishNode(O,"CatchClause")}return se.finalizer=this.eat(67)?this.parseBlock():null,!se.handler&&!se.finalizer&&this.raise(X.NoCatchOrFinally,se),this.finishNode(se,"TryStatement")}parseVarStatement(se,O,K=!1){return this.next(),this.parseVar(se,!1,O,K),this.semicolon(),this.finishNode(se,"VariableDeclaration")}parseWhileStatement(se){return this.next(),se.test=this.parseHeaderExpression(),this.state.labels.push(q0),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(se,"WhileStatement")}parseWithStatement(se){return this.state.strict&&this.raise(X.StrictWith,this.state.startLoc),this.next(),se.object=this.parseHeaderExpression(),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(se,"WithStatement")}parseEmptyStatement(se){return this.next(),this.finishNode(se,"EmptyStatement")}parseLabeledStatement(se,O,K,we){for(let sr of this.state.labels)sr.name===O&&this.raise(X.LabelRedeclaration,K,{labelName:O});let gt=Vr(this.state.type)?1:this.match(71)?2:null;for(let sr=this.state.labels.length-1;sr>=0;sr--){let Yr=this.state.labels[sr];if(Yr.statementStart===se.start)Yr.statementStart=this.sourceToOffsetPos(this.state.start),Yr.kind=gt;else break}return this.state.labels.push({name:O,kind:gt,statementStart:this.sourceToOffsetPos(this.state.start)}),se.body=we&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),se.label=K,this.finishNode(se,"LabeledStatement")}parseExpressionStatement(se,O,K){return se.expression=O,this.semicolon(),this.finishNode(se,"ExpressionStatement")}parseBlock(se=!1,O=!0,K){let we=this.startNode();return se&&this.state.strictErrors.clear(),this.expect(5),O&&this.scope.enter(0),this.parseBlockBody(we,se,!1,8,K),O&&this.scope.exit(),this.finishNode(we,"BlockStatement")}isValidDirective(se){return se.type==="ExpressionStatement"&&se.expression.type==="StringLiteral"&&!se.expression.extra.parenthesized}parseBlockBody(se,O,K,we,gt){let sr=se.body=[],Yr=se.directives=[];this.parseBlockOrModuleBlockBody(sr,O?Yr:void 0,K,we,gt)}parseBlockOrModuleBlockBody(se,O,K,we,gt){let sr=this.state.strict,Yr=!1,Lr=!1;for(;!this.match(we);){let fi=K?this.parseModuleItem():this.parseStatementListItem();if(O&&!Lr){if(this.isValidDirective(fi)){let $n=this.stmtToDirective(fi);O.push($n),!Yr&&$n.value.value==="use strict"&&(Yr=!0,this.setStrict(!0));continue}Lr=!0,this.state.strictErrors.clear()}se.push(fi)}gt?.call(this,Yr),sr||this.setStrict(!1),this.next()}parseFor(se,O){return se.init=O,this.semicolon(!1),se.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),se.update=this.match(11)?null:this.parseExpression(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,"ForStatement")}parseForIn(se,O,K){let we=this.match(58);return this.next(),we?K!==null&&this.unexpected(K):se.await=K!==null,O.type==="VariableDeclaration"&&O.declarations[0].init!=null&&(!we||!this.options.annexB||this.state.strict||O.kind!=="var"||O.declarations[0].id.type!=="Identifier")&&this.raise(X.ForInOfLoopInitializer,O,{type:we?"ForInStatement":"ForOfStatement"}),O.type==="AssignmentPattern"&&this.raise(X.InvalidLhs,O,{ancestor:{type:"ForStatement"}}),se.left=O,se.right=we?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,we?"ForInStatement":"ForOfStatement")}parseVar(se,O,K,we=!1){let gt=se.declarations=[];for(se.kind=K;;){let sr=this.startNode();if(this.parseVarId(sr,K),sr.init=this.eat(29)?O?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,sr.init===null&&!we&&(sr.id.type!=="Identifier"&&!(O&&(this.match(58)||this.isContextual(102)))?this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(K==="const"||K==="using"||K==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:K})),gt.push(this.finishNode(sr,"VariableDeclarator")),!this.eat(12))break}return se}parseVarId(se,O){let K=this.parseBindingAtom();(O==="using"||O==="await using")&&(K.type==="ArrayPattern"||K.type==="ObjectPattern")&&this.raise(X.UsingDeclarationHasBindingPattern,K.loc.start),this.checkLVal(K,{type:"VariableDeclarator"},O==="var"?5:8201),se.id=K}parseAsyncFunctionExpression(se){return this.parseFunction(se,8)}parseFunction(se,O=0){let K=O&2,we=!!(O&1),gt=we&&!(O&4),sr=!!(O&8);this.initFunction(se,sr),this.match(55)&&(K&&this.raise(X.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),se.generator=!0),we&&(se.id=this.parseFunctionId(gt));let Yr=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(ZA(sr,se.generator)),we||(se.id=this.parseFunctionId()),this.parseFunctionParams(se,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(se,we?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),we&&!K&&this.registerFunctionStatementId(se),this.state.maybeInArrowParameters=Yr,se}parseFunctionId(se){return se||qr(this.state.type)?this.parseIdentifier():null}parseFunctionParams(se,O){this.expect(10),this.expressionScope.enter(rc()),se.params=this.parseBindingList(11,41,2|(O?4:0)),this.expressionScope.exit()}registerFunctionStatementId(se){se.id&&this.scope.declareName(se.id.name,!this.options.annexB||this.state.strict||se.generator||se.async?this.scope.treatFunctionsAsVar?5:8201:17,se.id.loc.start)}parseClass(se,O,K){this.next();let we=this.state.strict;return this.state.strict=!0,this.parseClassId(se,O,K),this.parseClassSuper(se),se.body=this.parseClassBody(!!se.superClass,we),this.finishNode(se,O?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(se){return se.type==="Identifier"&&se.name==="constructor"||se.type==="StringLiteral"&&se.value==="constructor"}isNonstaticConstructor(se){return!se.computed&&!se.static&&this.nameIsConstructor(se.key)}parseClassBody(se,O){this.classScope.enter();let K={hadConstructor:!1,hadSuperClass:se},we=[],gt=this.startNode();if(gt.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(we.length>0)throw this.raise(X.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){we.push(this.parseDecorator());continue}let sr=this.startNode();we.length&&(sr.decorators=we,this.resetStartLocationFromNode(sr,we[0]),we=[]),this.parseClassMember(gt,sr,K),sr.kind==="constructor"&&sr.decorators&&sr.decorators.length>0&&this.raise(X.DecoratorConstructor,sr)}}),this.state.strict=O,this.next(),we.length)throw this.raise(X.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(gt,"ClassBody")}parseClassMemberFromModifier(se,O){let K=this.parseIdentifier(!0);if(this.isClassMethod()){let we=O;return we.kind="method",we.computed=!1,we.key=K,we.static=!1,this.pushClassMethod(se,we,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let we=O;return we.computed=!1,we.key=K,we.static=!1,se.body.push(this.parseClassProperty(we)),!0}return this.resetPreviousNodeTrailingComments(K),!1}parseClassMember(se,O,K){let we=this.isContextual(106);if(we){if(this.parseClassMemberFromModifier(se,O))return;if(this.eat(5)){this.parseClassStaticBlock(se,O);return}}this.parseClassMemberWithIsStatic(se,O,K,we)}parseClassMemberWithIsStatic(se,O,K,we){let gt=O,sr=O,Yr=O,Lr=O,fi=O,$n=gt,ra=gt;if(O.static=we,this.parsePropertyNamePrefixOperator(O),this.eat(55)){$n.kind="method";let SA=this.match(139);if(this.parseClassElementName($n),SA){this.pushClassPrivateMethod(se,sr,!0,!1);return}this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsGenerator,gt.key),this.pushClassMethod(se,gt,!0,!1,!1,!1);return}let kc=!this.state.containsEsc&&qr(this.state.type),Nl=this.parseClassElementName(O),ca=kc?Nl.name:null,Bl=this.isPrivateName(Nl),$g=this.state.startLoc;if(this.parsePostMemberNameModifiers(ra),this.isClassMethod()){if($n.kind="method",Bl){this.pushClassPrivateMethod(se,sr,!1,!1);return}let SA=this.isNonstaticConstructor(gt),lI=!1;SA&&(gt.kind="constructor",K.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(X.DuplicateConstructor,Nl),SA&&this.hasPlugin("typescript")&&O.override&&this.raise(X.OverrideOnConstructor,Nl),K.hadConstructor=!0,lI=K.hadSuperClass),this.pushClassMethod(se,gt,!1,!1,SA,lI)}else if(this.isClassProperty())Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr);else if(ca==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(Nl);let SA=this.eat(55);ra.optional&&this.unexpected($g),$n.kind="method";let lI=this.match(139);this.parseClassElementName($n),this.parsePostMemberNameModifiers(ra),lI?this.pushClassPrivateMethod(se,sr,SA,!0):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAsync,gt.key),this.pushClassMethod(se,gt,SA,!0,!1,!1))}else if((ca==="get"||ca==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(Nl),$n.kind=ca;let SA=this.match(139);this.parseClassElementName(gt),SA?this.pushClassPrivateMethod(se,sr,!1,!1):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAccessor,gt.key),this.pushClassMethod(se,gt,!1,!1,!1,!1)),this.checkGetterSetterParams(gt)}else if(ca==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(Nl);let SA=this.match(139);this.parseClassElementName(Yr),this.pushClassAccessorProperty(se,fi,SA)}else this.isLineTerminator()?Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr):this.unexpected()}parseClassElementName(se){let{type:O,value:K}=this.state;if((O===132||O===134)&&se.static&&K==="prototype"&&this.raise(X.StaticPrototype,this.state.startLoc),O===139){K==="constructor"&&this.raise(X.ConstructorClassPrivateField,this.state.startLoc);let we=this.parsePrivateName();return se.key=we,we}return this.parsePropertyName(se),se.key}parseClassStaticBlock(se,O){var K;this.scope.enter(208);let we=this.state.labels;this.state.labels=[],this.prodParam.enter(0);let gt=O.body=[];this.parseBlockOrModuleBlockBody(gt,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=we,se.body.push(this.finishNode(O,"StaticBlock")),(K=O.decorators)!=null&&K.length&&this.raise(X.DecoratorStaticBlock,O)}pushClassProperty(se,O){!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key),se.body.push(this.parseClassProperty(O))}pushClassPrivateProperty(se,O){let K=this.parseClassPrivateProperty(O);se.body.push(K),this.classScope.declarePrivateName(this.getPrivateNameSV(K.key),0,K.key.loc.start)}pushClassAccessorProperty(se,O,K){!K&&!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key);let we=this.parseClassAccessorProperty(O);se.body.push(we),K&&this.classScope.declarePrivateName(this.getPrivateNameSV(we.key),0,we.key.loc.start)}pushClassMethod(se,O,K,we,gt,sr){se.body.push(this.parseMethod(O,K,we,gt,sr,"ClassMethod",!0))}pushClassPrivateMethod(se,O,K,we){let gt=this.parseMethod(O,K,we,!1,!1,"ClassPrivateMethod",!0);se.body.push(gt);let sr=gt.kind==="get"?gt.static?6:2:gt.kind==="set"?gt.static?5:1:0;this.declareClassPrivateMethodInScope(gt,sr)}declareClassPrivateMethodInScope(se,O){this.classScope.declarePrivateName(this.getPrivateNameSV(se.key),O,se.key.loc.start)}parsePostMemberNameModifiers(se){}parseClassPrivateProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassPrivateProperty")}parseClassProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassProperty")}parseClassAccessorProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassAccessorProperty")}parseInitializer(se){this.scope.enter(80),this.expressionScope.enter(il()),this.prodParam.enter(0),se.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(se,O,K,we=8331){if(qr(this.state.type))se.id=this.parseIdentifier(),O&&this.declareNameFromIdentifier(se.id,we);else if(K||!O)se.id=null;else throw this.raise(X.MissingClassName,this.state.startLoc)}parseClassSuper(se){se.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(se,O){let K=this.parseMaybeImportPhase(se,!0),we=this.maybeParseExportDefaultSpecifier(se,K),gt=!we||this.eat(12),sr=gt&&this.eatExportStar(se),Yr=sr&&this.maybeParseExportNamespaceSpecifier(se),Lr=gt&&(!Yr||this.eat(12)),fi=we||sr;if(sr&&!Yr){if(we&&this.unexpected(),O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.parseExportFrom(se,!0),this.finishNode(se,"ExportAllDeclaration")}let $n=this.maybeParseExportNamedSpecifiers(se);we&>&&!sr&&!$n&&this.unexpected(null,5),Yr&&Lr&&this.unexpected(null,98);let ra;if(fi||$n){if(ra=!1,O)throw this.raise(X.UnsupportedDecoratorExport,se);this.parseExportFrom(se,fi)}else ra=this.maybeParseExportDeclaration(se);if(fi||$n||ra){var kc;let Nl=se;if(this.checkExport(Nl,!0,!1,!!Nl.source),((kc=Nl.declaration)==null?void 0:kc.type)==="ClassDeclaration")this.maybeTakeDecorators(O,Nl.declaration,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.finishNode(Nl,"ExportNamedDeclaration")}if(this.eat(65)){let Nl=se,ca=this.parseExportDefaultExpression();if(Nl.declaration=ca,ca.type==="ClassDeclaration")this.maybeTakeDecorators(O,ca,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.checkExport(Nl,!0,!0),this.finishNode(Nl,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(se){return this.eat(55)}maybeParseExportDefaultSpecifier(se,O){if(O||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",O?.loc.start);let K=O||this.parseIdentifier(!0),we=this.startNodeAtNode(K);return we.exported=K,se.specifiers=[this.finishNode(we,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(se){if(this.isContextual(93)){var O,K;(K=(O=se).specifiers)!=null||(O.specifiers=[]);let we=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),we.exported=this.parseModuleExportName(),se.specifiers.push(this.finishNode(we,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(se){if(this.match(5)){let O=se;O.specifiers||(O.specifiers=[]);let K=O.exportKind==="type";return O.specifiers.push(...this.parseExportSpecifiers(K)),O.source=null,O.declaration=null,this.hasPlugin("importAssertions")&&(O.assertions=[]),!0}return!1}maybeParseExportDeclaration(se){return this.shouldParseExportDeclaration()?(se.specifiers=[],se.source=null,this.hasPlugin("importAssertions")&&(se.assertions=[]),se.declaration=this.parseExportDeclaration(se),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let se=this.nextTokenInLineStart();return this.isUnparsedContextual(se,"function")}parseExportDefaultExpression(){let se=this.startNode();if(this.match(68))return this.next(),this.parseFunction(se,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(se,13);if(this.match(80))return this.parseClass(se,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(X.UnsupportedDefaultExport,this.state.startLoc);let O=this.parseMaybeAssignAllowIn();return this.semicolon(),O}parseExportDeclaration(se){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){let{type:se}=this.state;if(qr(se)){if(se===95&&!this.state.containsEsc||se===100)return!1;if((se===130||se===129)&&!this.state.containsEsc){let{type:we}=this.lookahead();if(qr(we)&&we!==98||we===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let O=this.nextTokenStart(),K=this.isUnparsedContextual(O,"from");if(this.input.charCodeAt(O)===44||qr(this.state.type)&&K)return!0;if(this.match(65)&&K){let we=this.input.charCodeAt(this.nextTokenStartSince(O+4));return we===34||we===39}return!1}parseExportFrom(se,O){this.eatContextual(98)?(se.source=this.parseImportSource(),this.checkExport(se),this.maybeParseImportAttributes(se),this.checkJSONModuleImport(se)):O&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){let{type:se}=this.state;return se===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):se===74||se===75||se===68||se===80||this.isLet()||this.isAsyncFunction()}checkExport(se,O,K,we){if(O){var gt;if(K){if(this.checkDuplicateExports(se,"default"),this.hasPlugin("exportDefaultFrom")){var sr;let Yr=se.declaration;Yr.type==="Identifier"&&Yr.name==="from"&&Yr.end-Yr.start===4&&!((sr=Yr.extra)!=null&&sr.parenthesized)&&this.raise(X.ExportDefaultFromAsIdentifier,Yr)}}else if((gt=se.specifiers)!=null&>.length)for(let Yr of se.specifiers){let{exported:Lr}=Yr,fi=Lr.type==="Identifier"?Lr.name:Lr.value;if(this.checkDuplicateExports(Yr,fi),!we&&Yr.local){let{local:$n}=Yr;$n.type!=="Identifier"?this.raise(X.ExportBindingIsString,Yr,{localName:$n.value,exportName:fi}):(this.checkReservedWord($n.name,$n.loc.start,!0,!1),this.scope.checkLocalExport($n))}}else if(se.declaration){let Yr=se.declaration;if(Yr.type==="FunctionDeclaration"||Yr.type==="ClassDeclaration"){let{id:Lr}=Yr;if(!Lr)throw new Error("Assertion failure");this.checkDuplicateExports(se,Lr.name)}else if(Yr.type==="VariableDeclaration")for(let Lr of Yr.declarations)this.checkDeclaration(Lr.id)}}}checkDeclaration(se){if(se.type==="Identifier")this.checkDuplicateExports(se,se.name);else if(se.type==="ObjectPattern")for(let O of se.properties)this.checkDeclaration(O);else if(se.type==="ArrayPattern")for(let O of se.elements)O&&this.checkDeclaration(O);else se.type==="ObjectProperty"?this.checkDeclaration(se.value):se.type==="RestElement"?this.checkDeclaration(se.argument):se.type==="AssignmentPattern"&&this.checkDeclaration(se.left)}checkDuplicateExports(se,O){this.exportedIdentifiers.has(O)&&(O==="default"?this.raise(X.DuplicateDefaultExport,se):this.raise(X.DuplicateExport,se,{exportName:O})),this.exportedIdentifiers.add(O)}parseExportSpecifiers(se){let O=[],K=!0;for(this.expect(5);!this.eat(8);){if(K)K=!1;else if(this.expect(12),this.eat(8))break;let we=this.isContextual(130),gt=this.match(134),sr=this.startNode();sr.local=this.parseModuleExportName(),O.push(this.parseExportSpecifier(sr,gt,se,we))}return O}parseExportSpecifier(se,O,K,we){return this.eatContextual(93)?se.exported=this.parseModuleExportName():O?se.exported=yn(se.local):se.exported||(se.exported=Zt(se.local)),this.finishNode(se,"ExportSpecifier")}parseModuleExportName(){if(this.match(134)){let se=this.parseStringLiteral(this.state.value),O=TC.exec(se.value);return O&&this.raise(X.ModuleExportNameHasLoneSurrogate,se,{surrogateCharCode:O[0].charCodeAt(0)}),se}return this.parseIdentifier(!0)}isJSONModuleImport(se){return se.assertions!=null?se.assertions.some(({key:O,value:K})=>K.value==="json"&&(O.type==="Identifier"?O.name==="type":O.value==="type")):!1}checkImportReflection(se){let{specifiers:O}=se,K=O.length===1?O[0].type:null;if(se.phase==="source")K!=="ImportDefaultSpecifier"&&this.raise(X.SourcePhaseImportRequiresDefault,O[0].loc.start);else if(se.phase==="defer")K!=="ImportNamespaceSpecifier"&&this.raise(X.DeferImportRequiresNamespace,O[0].loc.start);else if(se.module){var we;K!=="ImportDefaultSpecifier"&&this.raise(X.ImportReflectionNotBinding,O[0].loc.start),((we=se.assertions)==null?void 0:we.length)>0&&this.raise(X.ImportReflectionHasAssertion,O[0].loc.start)}}checkJSONModuleImport(se){if(this.isJSONModuleImport(se)&&se.type!=="ExportAllDeclaration"){let{specifiers:O}=se;if(O!=null){let K=O.find(we=>{let gt;if(we.type==="ExportSpecifier"?gt=we.local:we.type==="ImportSpecifier"&&(gt=we.imported),gt!==void 0)return gt.type==="Identifier"?gt.name!=="default":gt.value!=="default"});K!==void 0&&this.raise(X.ImportJSONBindingNotDefault,K.loc.start)}}}isPotentialImportPhase(se){return se?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(se,O,K,we){O||(K==="module"?(this.expectPlugin("importReflection",we),se.module=!0):this.hasPlugin("importReflection")&&(se.module=!1),K==="source"?(this.expectPlugin("sourcePhaseImports",we),se.phase="source"):K==="defer"?(this.expectPlugin("deferredImportEvaluation",we),se.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(se.phase=null))}parseMaybeImportPhase(se,O){if(!this.isPotentialImportPhase(O))return this.applyImportPhase(se,O,null),null;let K=this.parseIdentifier(!0),{type:we}=this.state;return(ke(we)?we!==98||this.lookaheadCharCode()===102:we!==12)?(this.resetPreviousIdentifierLeadingComments(K),this.applyImportPhase(se,O,K.name,K.loc.start),null):(this.applyImportPhase(se,O,null),K)}isPrecedingIdImportPhase(se){let{type:O}=this.state;return qr(O)?O!==98||this.lookaheadCharCode()===102:O!==12}parseImport(se){return this.match(134)?this.parseImportSourceAndAttributes(se):this.parseImportSpecifiersAndAfter(se,this.parseMaybeImportPhase(se,!1))}parseImportSpecifiersAndAfter(se,O){se.specifiers=[];let K=!this.maybeParseDefaultImportSpecifier(se,O)||this.eat(12),we=K&&this.maybeParseStarImportSpecifier(se);return K&&!we&&this.parseNamedImportSpecifiers(se),this.expectContextual(98),this.parseImportSourceAndAttributes(se)}parseImportSourceAndAttributes(se){var O;return(O=se.specifiers)!=null||(se.specifiers=[]),se.source=this.parseImportSource(),this.maybeParseImportAttributes(se),this.checkImportReflection(se),this.checkJSONModuleImport(se),this.semicolon(),this.finishNode(se,"ImportDeclaration")}parseImportSource(){return this.match(134)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(se,O,K){O.local=this.parseIdentifier(),se.specifiers.push(this.finishImportSpecifier(O,K))}finishImportSpecifier(se,O,K=8201){return this.checkLVal(se.local,{type:O},K),this.finishNode(se,O)}parseImportAttributes(){this.expect(5);let se=[],O=new Set;do{if(this.match(8))break;let K=this.startNode(),we=this.state.value;if(O.has(we)&&this.raise(X.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:we}),O.add(we),this.match(134)?K.key=this.parseStringLiteral(we):K.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return this.expect(8),se}parseModuleAttributes(){let se=[],O=new Set;do{let K=this.startNode();if(K.key=this.parseIdentifier(!0),K.key.name!=="type"&&this.raise(X.ModuleAttributeDifferentFromType,K.key),O.has(K.key.name)&&this.raise(X.ModuleAttributesWithDuplicateKeys,K.key,{key:K.key.name}),O.add(K.key.name),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return se}maybeParseImportAttributes(se){let O;var K=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?O=this.parseModuleAttributes():O=this.parseImportAttributes(),K=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(!this.hasPlugin("deprecatedImportAssert")&&!this.hasPlugin("importAssertions")&&this.raise(X.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin("importAssertions")||this.addExtra(se,"deprecatedAssertSyntax",!0),this.next(),O=this.parseImportAttributes()):O=[];!K&&this.hasPlugin("importAssertions")?se.assertions=O:se.attributes=O}maybeParseDefaultImportSpecifier(se,O){if(O){let K=this.startNodeAtNode(O);return K.local=O,se.specifiers.push(this.finishImportSpecifier(K,"ImportDefaultSpecifier")),!0}else if(ke(this.state.type))return this.parseImportSpecifierLocal(se,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(se){if(this.match(55)){let O=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(se,O,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(se){let O=!0;for(this.expect(5);!this.eat(8);){if(O)O=!1;else{if(this.eat(14))throw this.raise(X.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}let K=this.startNode(),we=this.match(134),gt=this.isContextual(130);K.imported=this.parseModuleExportName();let sr=this.parseImportSpecifier(K,we,se.importKind==="type"||se.importKind==="typeof",gt,void 0);se.specifiers.push(sr)}}parseImportSpecifier(se,O,K,we,gt){if(this.eatContextual(93))se.local=this.parseIdentifier();else{let{imported:sr}=se;if(O)throw this.raise(X.ImportBindingIsString,se,{importName:sr.value});this.checkReservedWord(sr.name,se.loc.start,!0,!0),se.local||(se.local=Zt(sr))}return this.finishImportSpecifier(se,"ImportSpecifier",gt)}isThisParam(se){return se.type==="Identifier"&&se.name==="this"}},fb=class extends Mm{constructor(se,O,K){se=ne(se),super(se,O),this.options=se,this.initializeScopes(),this.plugins=K,this.filename=se.sourceFilename,this.startIndex=se.startIndex;let we=0;se.allowAwaitOutsideFunction&&(we|=1),se.allowReturnOutsideFunction&&(we|=2),se.allowImportExportEverywhere&&(we|=8),se.allowSuperOutsideMethod&&(we|=16),se.allowUndeclaredExports&&(we|=32),se.allowNewTargetOutsideFunction&&(we|=4),se.ranges&&(we|=64),se.tokens&&(we|=128),se.createImportExpressions&&(we|=256),se.createParenthesizedExpressions&&(we|=512),se.errorRecovery&&(we|=1024),se.attachComment&&(we|=2048),se.annexB&&(we|=4096),this.optionFlags=we}getScopeHandler(){return Xu}parse(){this.enterInitialScopes();let se=this.startNode(),O=this.startNode();return this.nextToken(),se.errors=null,this.parseTopLevel(se,O),se.errors=this.state.errors,se.comments.length=this.state.commentsLen,se}};function pe(se,O){var K;if(((K=O)==null?void 0:K.sourceType)==="unambiguous"){O=Object.assign({},O);try{O.sourceType="module";let we=_I(O,se),gt=we.parse();if(we.sawUnambiguousESM)return gt;if(we.ambiguousScriptDifferentAst)try{return O.sourceType="script",_I(O,se).parse()}catch{}else gt.program.sourceType="script";return gt}catch(we){try{return O.sourceType="script",_I(O,se).parse()}catch{}throw we}}else return _I(O,se).parse()}function lm(se,O){let K=_I(O,se);return K.options.strictMode&&(K.state.strict=!0),K.getExpression()}function Kf(se){let O={};for(let K of Object.keys(se))O[K]=zr(se[K]);return O}var CI=Kf(Ar);function _I(se,O){let K=fb,we=new Map;if(se!=null&&se.plugins){for(let gt of se.plugins){let sr,Yr;typeof gt=="string"?sr=gt:[sr,Yr]=gt,we.has(sr)||we.set(sr,Yr||{})}Hp(we),K=iE(we)}return new K(se,O,we)}var H2=new Map;function iE(se){let O=[];for(let gt of nE)se.has(gt)&&O.push(gt);let K=O.join("|"),we=H2.get(K);if(!we){we=fb;for(let gt of O)we=uC[gt](we);H2.set(K,we)}return we}e.parse=pe,e.parseExpression=lm,e.tokTypes=CI}),ayi={};t5a(ayi,{parsers:()=>GRe});var J0i=iyi(syi(),1);function Oyt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{let Lr=!this.isSimpleParamList(se.params);Yr&&Lr&&this.raise(X.IllegalLanguageModeDirective,(se.kind==="method"||se.kind==="constructor")&&se.key?se.key.loc.end:se);let fi=!gt&&this.state.strict;this.checkParams(se,!this.state.strict&&!O&&!K&&!Lr,O,fi),this.state.strict&&se.id&&this.checkIdentifier(se.id,65,fi)}),this.prodParam.exit(),this.state.labels=sr}this.expressionScope.exit()}isSimpleParameter(se){return se.type==="Identifier"}isSimpleParamList(se){for(let O=0,K=se.length;O10||!Sg(se))){if(K&&ac(se)){this.raise(X.UnexpectedKeyword,O,{keyword:se});return}if((this.state.strict?we?Xa:Ei:li)(se,this.inModule)){this.raise(X.UnexpectedReservedWord,O,{reservedWord:se});return}else if(se==="yield"){if(this.prodParam.hasYield){this.raise(X.YieldBindingIdentifier,O);return}}else if(se==="await"){if(this.prodParam.hasAwait){this.raise(X.AwaitBindingIdentifier,O);return}if(this.scope.inStaticBlock){this.raise(X.AwaitBindingIdentifierInStaticBlock,O);return}this.expressionScope.recordAsyncArrowParametersError(O)}else if(se==="arguments"&&this.scope.inClassAndNotInNonArrowFunction){this.raise(X.ArgumentsInClass,O);return}}}recordAwaitIfAllowed(){let se=this.prodParam.hasAwait||this.optionFlags&1&&!this.scope.inFunction;return se&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),se}parseAwait(se){let O=this.startNodeAt(se);return this.expressionScope.recordParameterInitializerError(X.AwaitExpressionFormalParameter,O),this.eat(55)&&this.raise(X.ObsoleteAwaitStar,O),!this.scope.inFunction&&!(this.optionFlags&1)&&(this.isAmbiguousAwait()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(O.argument=this.parseMaybeUnary(null,!0)),this.finishNode(O,"AwaitExpression")}isAmbiguousAwait(){if(this.hasPrecedingLineBreak())return!0;let{type:se}=this.state;return se===53||se===10||se===0||Ft(se)||se===102&&!this.state.containsEsc||se===138||se===56||this.hasPlugin("v8intrinsic")&&se===54}parseYield(){let se=this.startNode();this.expressionScope.recordParameterInitializerError(X.YieldInParameter,se),this.next();let O=!1,K=null;if(!this.hasPrecedingLineBreak())switch(O=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!O)break;default:K=this.parseMaybeAssign()}return se.delegate=O,se.argument=K,this.finishNode(se,"YieldExpression")}parseImportCall(se){if(this.next(),se.source=this.parseMaybeAssignAllowIn(),se.options=null,this.eat(12)&&!this.match(11)&&(se.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&!this.match(11))){do this.parseMaybeAssignAllowIn();while(this.eat(12)&&!this.match(11));this.raise(X.ImportCallArity,se)}return this.expect(11),this.finishNode(se,"ImportExpression")}checkPipelineAtInfixOperator(se,O){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&se.type==="SequenceExpression"&&this.raise(X.PipelineHeadSequenceExpression,O)}parseSmartPipelineBodyInStyle(se,O){if(this.isSimpleReference(se)){let K=this.startNodeAt(O);return K.callee=se,this.finishNode(K,"PipelineBareFunction")}else{let K=this.startNodeAt(O);return this.checkSmartPipeTopicBodyEarlyErrors(O),K.expression=se,this.finishNode(K,"PipelineTopicExpression")}}isSimpleReference(se){switch(se.type){case"MemberExpression":return!se.computed&&this.isSimpleReference(se.object);case"Identifier":return!0;default:return!1}}checkSmartPipeTopicBodyEarlyErrors(se){if(this.match(19))throw this.raise(X.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(X.PipelineTopicUnused,se)}withTopicBindingContext(se){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}withSmartMixTopicForbiddingContext(se){if(this.hasPlugin(["pipelineOperator",{proposal:"smart"}])){let O=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return se()}finally{this.state.topicContext=O}}else return se()}withSoloAwaitPermittingContext(se){let O=this.state.soloAwait;this.state.soloAwait=!0;try{return se()}finally{this.state.soloAwait=O}}allowInAnd(se){let O=this.prodParam.currentFlags();if(8&~O){this.prodParam.enter(O|8);try{return se()}finally{this.prodParam.exit()}}return se()}disallowInAnd(se){let O=this.prodParam.currentFlags();if(8&O){this.prodParam.enter(O&-9);try{return se()}finally{this.prodParam.exit()}}return se()}registerTopicReference(){this.state.topicContext.maxTopicIndex=0}topicReferenceIsAllowedInCurrentContext(){return this.state.topicContext.maxNumOfResolvableTopics>=1}topicReferenceWasUsedInCurrentContext(){return this.state.topicContext.maxTopicIndex!=null&&this.state.topicContext.maxTopicIndex>=0}parseFSharpPipelineBody(se){let O=this.state.startLoc;this.state.potentialArrowAt=this.state.start;let K=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;let we=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),O,se);return this.state.inFSharpPipelineDirectBody=K,we}parseModuleExpression(){this.expectPlugin("moduleBlocks");let se=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);let O=this.startNodeAt(this.state.endLoc);this.next();let K=this.initializeScopes(!0);this.enterInitialScopes();try{se.body=this.parseProgram(O,8,"module")}finally{K()}return this.finishNode(se,"ModuleExpression")}parsePropertyNamePrefixOperator(se){}},q0={kind:1},XE={kind:2},TC=/[\uD800-\uDFFF]/u,t_=/in(?:stanceof)?/y;function cp(se,O,K){for(let we=0;we0)for(let[gt,sr]of Array.from(this.scope.undefinedExports))this.raise(X.ModuleExportUndefined,sr,{localName:gt});this.addExtra(se,"topLevelAwait",this.state.hasTopLevelAwait)}let we;return O===140?we=this.finishNode(se,"Program"):we=this.finishNodeAt(se,"Program",a(this.state.startLoc,-1)),we}stmtToDirective(se){let O=se;O.type="Directive",O.value=O.expression,delete O.expression;let K=O.value,we=K.value,gt=this.input.slice(this.offsetToSourcePos(K.start),this.offsetToSourcePos(K.end)),sr=K.value=gt.slice(1,-1);return this.addExtra(K,"raw",gt),this.addExtra(K,"rawValue",sr),this.addExtra(K,"expressionValue",we),K.type="DirectiveLiteral",O}parseInterpreterDirective(){if(!this.match(28))return null;let se=this.startNode();return se.value=this.state.value,this.next(),this.finishNode(se,"InterpreterDirective")}isLet(){return this.isContextual(100)?this.hasFollowingBindingAtom():!1}chStartsBindingIdentifier(se,O){if(gc(se)){if(t_.lastIndex=O,t_.test(this.input)){let K=this.codePointAtPos(t_.lastIndex);if(!Cg(K)&&K!==92)return!1}return!0}else return se===92}chStartsBindingPattern(se){return se===91||se===123}hasFollowingBindingAtom(){let se=this.nextTokenStart(),O=this.codePointAtPos(se);return this.chStartsBindingPattern(O)||this.chStartsBindingIdentifier(O,se)}hasInLineFollowingBindingIdentifierOrBrace(){let se=this.nextTokenInLineStart(),O=this.codePointAtPos(se);return O===123||this.chStartsBindingIdentifier(O,se)}startsUsingForOf(){let{type:se,containsEsc:O}=this.lookahead();if(se===102&&!O)return!1;if(qr(se)&&!this.hasFollowingLineBreak())return this.expectPlugin("explicitResourceManagement"),!0}startsAwaitUsing(){let se=this.nextTokenInLineStart();if(this.isUnparsedContextual(se,"using")){se=this.nextTokenInLineStartSince(se+5);let O=this.codePointAtPos(se);if(this.chStartsBindingIdentifier(O,se))return this.expectPlugin("explicitResourceManagement"),!0}return!1}parseModuleItem(){return this.parseStatementLike(15)}parseStatementListItem(){return this.parseStatementLike(6|(!this.options.annexB||this.state.strict?0:8))}parseStatementOrSloppyAnnexBFunctionDeclaration(se=!1){let O=0;return this.options.annexB&&!this.state.strict&&(O|=4,se&&(O|=8)),this.parseStatementLike(O)}parseStatement(){return this.parseStatementLike(0)}parseStatementLike(se){let O=null;return this.match(26)&&(O=this.parseDecorators(!0)),this.parseStatementContent(se,O)}parseStatementContent(se,O){let K=this.state.type,we=this.startNode(),gt=!!(se&2),sr=!!(se&4),Yr=se&1;switch(K){case 60:return this.parseBreakContinueStatement(we,!0);case 63:return this.parseBreakContinueStatement(we,!1);case 64:return this.parseDebuggerStatement(we);case 90:return this.parseDoWhileStatement(we);case 91:return this.parseForStatement(we);case 68:if(this.lookaheadCharCode()===46)break;return sr||this.raise(this.state.strict?X.StrictFunction:this.options.annexB?X.SloppyFunctionAnnexB:X.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(we,!1,!gt&&sr);case 80:return gt||this.unexpected(),this.parseClass(this.maybeTakeDecorators(O,we),!0);case 69:return this.parseIfStatement(we);case 70:return this.parseReturnStatement(we);case 71:return this.parseSwitchStatement(we);case 72:return this.parseThrowStatement(we);case 73:return this.parseTryStatement(we);case 96:if(!this.state.containsEsc&&this.startsAwaitUsing())return this.recordAwaitIfAllowed()?gt||this.raise(X.UnexpectedLexicalDeclaration,we):this.raise(X.AwaitUsingNotInAsyncContext,we),this.next(),this.parseVarStatement(we,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.expectPlugin("explicitResourceManagement"),!this.scope.inModule&&this.scope.inTopLevel?this.raise(X.UnexpectedUsingDeclaration,this.state.startLoc):gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc),this.parseVarStatement(we,"using");case 100:{if(this.state.containsEsc)break;let $n=this.nextTokenStart(),ra=this.codePointAtPos($n);if(ra!==91&&(!gt&&this.hasFollowingLineBreak()||!this.chStartsBindingIdentifier(ra,$n)&&ra!==123))break}case 75:gt||this.raise(X.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:{let $n=this.state.value;return this.parseVarStatement(we,$n)}case 92:return this.parseWhileStatement(we);case 76:return this.parseWithStatement(we);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(we);case 83:{let $n=this.lookaheadCharCode();if($n===40||$n===46)break}case 82:{!(this.optionFlags&8)&&!Yr&&this.raise(X.UnexpectedImportExport,this.state.startLoc),this.next();let $n;return K===83?($n=this.parseImport(we),$n.type==="ImportDeclaration"&&(!$n.importKind||$n.importKind==="value")&&(this.sawUnambiguousESM=!0)):($n=this.parseExport(we,O),($n.type==="ExportNamedDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportAllDeclaration"&&(!$n.exportKind||$n.exportKind==="value")||$n.type==="ExportDefaultDeclaration")&&(this.sawUnambiguousESM=!0)),this.assertModuleNodeAllowed($n),$n}default:if(this.isAsyncFunction())return gt||this.raise(X.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(we,!0,!gt&&sr)}let Lr=this.state.value,fi=this.parseExpression();return qr(K)&&fi.type==="Identifier"&&this.eat(14)?this.parseLabeledStatement(we,Lr,fi,se):this.parseExpressionStatement(we,fi,O)}assertModuleNodeAllowed(se){!(this.optionFlags&8)&&!this.inModule&&this.raise(X.ImportOutsideModule,se)}decoratorsEnabledBeforeExport(){return this.hasPlugin("decorators-legacy")?!0:this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")!==!1}maybeTakeDecorators(se,O,K){if(se){var we;(we=O.decorators)!=null&&we.length?(typeof this.getPluginOption("decorators","decoratorsBeforeExport")!="boolean"&&this.raise(X.DecoratorsBeforeAfterExport,O.decorators[0]),O.decorators.unshift(...se)):O.decorators=se,this.resetStartLocationFromNode(O,se[0]),K&&this.resetStartLocationFromNode(K,O)}return O}canHaveLeadingDecorator(){return this.match(80)}parseDecorators(se){let O=[];do O.push(this.parseDecorator());while(this.match(26));if(this.match(82))se||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(X.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(X.UnexpectedLeadingDecorator,this.state.startLoc);return O}parseDecorator(){this.expectOnePlugin(["decorators","decorators-legacy"]);let se=this.startNode();if(this.next(),this.hasPlugin("decorators")){let O=this.state.startLoc,K;if(this.match(10)){let we=this.state.startLoc;this.next(),K=this.parseExpression(),this.expect(11),K=this.wrapParenthesis(we,K);let gt=this.state.startLoc;se.expression=this.parseMaybeDecoratorArguments(K,we),this.getPluginOption("decorators","allowCallParenthesized")===!1&&se.expression!==K&&this.raise(X.DecoratorArgumentsOutsideParentheses,gt)}else{for(K=this.parseIdentifier(!1);this.eat(16);){let we=this.startNodeAt(O);we.object=K,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),we.property=this.parsePrivateName()):we.property=this.parseIdentifier(!0),we.computed=!1,K=this.finishNode(we,"MemberExpression")}se.expression=this.parseMaybeDecoratorArguments(K,O)}}else se.expression=this.parseExprSubscripts();return this.finishNode(se,"Decorator")}parseMaybeDecoratorArguments(se,O){if(this.eat(10)){let K=this.startNodeAt(O);return K.callee=se,K.arguments=this.parseCallExpressionArguments(11),this.toReferencedList(K.arguments),this.finishNode(K,"CallExpression")}return se}parseBreakContinueStatement(se,O){return this.next(),this.isLineTerminator()?se.label=null:(se.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(se,O),this.finishNode(se,O?"BreakStatement":"ContinueStatement")}verifyBreakContinue(se,O){let K;for(K=0;Kthis.parseStatement()),this.state.labels.pop(),this.expect(92),se.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(se,"DoWhileStatement")}parseForStatement(se){this.next(),this.state.labels.push(q0);let O=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(O=this.state.startLoc,this.next()),this.scope.enter(0),this.expect(10),this.match(13))return O!==null&&this.unexpected(O),this.parseFor(se,null);let K=this.isContextual(100);{let Lr=this.isContextual(96)&&this.startsAwaitUsing(),fi=Lr||this.isContextual(107)&&this.startsUsingForOf(),$n=K&&this.hasFollowingBindingAtom()||fi;if(this.match(74)||this.match(75)||$n){let ra=this.startNode(),kc;Lr?(kc="await using",this.recordAwaitIfAllowed()||this.raise(X.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):kc=this.state.value,this.next(),this.parseVar(ra,!0,kc);let Nl=this.finishNode(ra,"VariableDeclaration"),ca=this.match(58);return ca&&fi&&this.raise(X.ForInUsing,Nl),(ca||this.isContextual(102))&&Nl.declarations.length===1?this.parseForIn(se,Nl,O):(O!==null&&this.unexpected(O),this.parseFor(se,Nl))}}let we=this.isContextual(95),gt=new yg,sr=this.parseExpression(!0,gt),Yr=this.isContextual(102);if(Yr&&(K&&this.raise(X.ForOfLet,sr),O===null&&we&&sr.type==="Identifier"&&this.raise(X.ForOfAsync,sr)),Yr||this.match(58)){this.checkDestructuringPrivate(gt),this.toAssignable(sr,!0);let Lr=Yr?"ForOfStatement":"ForInStatement";return this.checkLVal(sr,{type:Lr}),this.parseForIn(se,sr,O)}else this.checkExpressionErrors(gt,!0);return O!==null&&this.unexpected(O),this.parseFor(se,sr)}parseFunctionStatement(se,O,K){return this.next(),this.parseFunction(se,1|(K?2:0)|(O?8:0))}parseIfStatement(se){return this.next(),se.test=this.parseHeaderExpression(),se.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),se.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(se,"IfStatement")}parseReturnStatement(se){return!this.prodParam.hasReturn&&!(this.optionFlags&2)&&this.raise(X.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?se.argument=null:(se.argument=this.parseExpression(),this.semicolon()),this.finishNode(se,"ReturnStatement")}parseSwitchStatement(se){this.next(),se.discriminant=this.parseHeaderExpression();let O=se.cases=[];this.expect(5),this.state.labels.push(XE),this.scope.enter(0);let K;for(let we;!this.match(8);)if(this.match(61)||this.match(65)){let gt=this.match(61);K&&this.finishNode(K,"SwitchCase"),O.push(K=this.startNode()),K.consequent=[],this.next(),gt?K.test=this.parseExpression():(we&&this.raise(X.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),we=!0,K.test=null),this.expect(14)}else K?K.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),K&&this.finishNode(K,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(se,"SwitchStatement")}parseThrowStatement(se){return this.next(),this.hasPrecedingLineBreak()&&this.raise(X.NewlineAfterThrow,this.state.lastTokEndLoc),se.argument=this.parseExpression(),this.semicolon(),this.finishNode(se,"ThrowStatement")}parseCatchClauseParam(){let se=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&se.type==="Identifier"?8:0),this.checkLVal(se,{type:"CatchClause"},9),se}parseTryStatement(se){if(this.next(),se.block=this.parseBlock(),se.handler=null,this.match(62)){let O=this.startNode();this.next(),this.match(10)?(this.expect(10),O.param=this.parseCatchClauseParam(),this.expect(11)):(O.param=null,this.scope.enter(0)),O.body=this.withSmartMixTopicForbiddingContext(()=>this.parseBlock(!1,!1)),this.scope.exit(),se.handler=this.finishNode(O,"CatchClause")}return se.finalizer=this.eat(67)?this.parseBlock():null,!se.handler&&!se.finalizer&&this.raise(X.NoCatchOrFinally,se),this.finishNode(se,"TryStatement")}parseVarStatement(se,O,K=!1){return this.next(),this.parseVar(se,!1,O,K),this.semicolon(),this.finishNode(se,"VariableDeclaration")}parseWhileStatement(se){return this.next(),se.test=this.parseHeaderExpression(),this.state.labels.push(q0),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.state.labels.pop(),this.finishNode(se,"WhileStatement")}parseWithStatement(se){return this.state.strict&&this.raise(X.StrictWith,this.state.startLoc),this.next(),se.object=this.parseHeaderExpression(),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.finishNode(se,"WithStatement")}parseEmptyStatement(se){return this.next(),this.finishNode(se,"EmptyStatement")}parseLabeledStatement(se,O,K,we){for(let sr of this.state.labels)sr.name===O&&this.raise(X.LabelRedeclaration,K,{labelName:O});let gt=Vr(this.state.type)?1:this.match(71)?2:null;for(let sr=this.state.labels.length-1;sr>=0;sr--){let Yr=this.state.labels[sr];if(Yr.statementStart===se.start)Yr.statementStart=this.sourceToOffsetPos(this.state.start),Yr.kind=gt;else break}return this.state.labels.push({name:O,kind:gt,statementStart:this.sourceToOffsetPos(this.state.start)}),se.body=we&8?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),se.label=K,this.finishNode(se,"LabeledStatement")}parseExpressionStatement(se,O,K){return se.expression=O,this.semicolon(),this.finishNode(se,"ExpressionStatement")}parseBlock(se=!1,O=!0,K){let we=this.startNode();return se&&this.state.strictErrors.clear(),this.expect(5),O&&this.scope.enter(0),this.parseBlockBody(we,se,!1,8,K),O&&this.scope.exit(),this.finishNode(we,"BlockStatement")}isValidDirective(se){return se.type==="ExpressionStatement"&&se.expression.type==="StringLiteral"&&!se.expression.extra.parenthesized}parseBlockBody(se,O,K,we,gt){let sr=se.body=[],Yr=se.directives=[];this.parseBlockOrModuleBlockBody(sr,O?Yr:void 0,K,we,gt)}parseBlockOrModuleBlockBody(se,O,K,we,gt){let sr=this.state.strict,Yr=!1,Lr=!1;for(;!this.match(we);){let fi=K?this.parseModuleItem():this.parseStatementListItem();if(O&&!Lr){if(this.isValidDirective(fi)){let $n=this.stmtToDirective(fi);O.push($n),!Yr&&$n.value.value==="use strict"&&(Yr=!0,this.setStrict(!0));continue}Lr=!0,this.state.strictErrors.clear()}se.push(fi)}gt?.call(this,Yr),sr||this.setStrict(!1),this.next()}parseFor(se,O){return se.init=O,this.semicolon(!1),se.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),se.update=this.match(11)?null:this.parseExpression(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,"ForStatement")}parseForIn(se,O,K){let we=this.match(58);return this.next(),we?K!==null&&this.unexpected(K):se.await=K!==null,O.type==="VariableDeclaration"&&O.declarations[0].init!=null&&(!we||!this.options.annexB||this.state.strict||O.kind!=="var"||O.declarations[0].id.type!=="Identifier")&&this.raise(X.ForInOfLoopInitializer,O,{type:we?"ForInStatement":"ForOfStatement"}),O.type==="AssignmentPattern"&&this.raise(X.InvalidLhs,O,{ancestor:{type:"ForStatement"}}),se.left=O,se.right=we?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),se.body=this.withSmartMixTopicForbiddingContext(()=>this.parseStatement()),this.scope.exit(),this.state.labels.pop(),this.finishNode(se,we?"ForInStatement":"ForOfStatement")}parseVar(se,O,K,we=!1){let gt=se.declarations=[];for(se.kind=K;;){let sr=this.startNode();if(this.parseVarId(sr,K),sr.init=this.eat(29)?O?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,sr.init===null&&!we&&(sr.id.type!=="Identifier"&&!(O&&(this.match(58)||this.isContextual(102)))?this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"}):(K==="const"||K==="using"||K==="await using")&&!(this.match(58)||this.isContextual(102))&&this.raise(X.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:K})),gt.push(this.finishNode(sr,"VariableDeclarator")),!this.eat(12))break}return se}parseVarId(se,O){let K=this.parseBindingAtom();(O==="using"||O==="await using")&&(K.type==="ArrayPattern"||K.type==="ObjectPattern")&&this.raise(X.UsingDeclarationHasBindingPattern,K.loc.start),this.checkLVal(K,{type:"VariableDeclarator"},O==="var"?5:8201),se.id=K}parseAsyncFunctionExpression(se){return this.parseFunction(se,8)}parseFunction(se,O=0){let K=O&2,we=!!(O&1),gt=we&&!(O&4),sr=!!(O&8);this.initFunction(se,sr),this.match(55)&&(K&&this.raise(X.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),se.generator=!0),we&&(se.id=this.parseFunctionId(gt));let Yr=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(2),this.prodParam.enter(ZA(sr,se.generator)),we||(se.id=this.parseFunctionId()),this.parseFunctionParams(se,!1),this.withSmartMixTopicForbiddingContext(()=>{this.parseFunctionBodyAndFinish(se,we?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),we&&!K&&this.registerFunctionStatementId(se),this.state.maybeInArrowParameters=Yr,se}parseFunctionId(se){return se||qr(this.state.type)?this.parseIdentifier():null}parseFunctionParams(se,O){this.expect(10),this.expressionScope.enter(rc()),se.params=this.parseBindingList(11,41,2|(O?4:0)),this.expressionScope.exit()}registerFunctionStatementId(se){se.id&&this.scope.declareName(se.id.name,!this.options.annexB||this.state.strict||se.generator||se.async?this.scope.treatFunctionsAsVar?5:8201:17,se.id.loc.start)}parseClass(se,O,K){this.next();let we=this.state.strict;return this.state.strict=!0,this.parseClassId(se,O,K),this.parseClassSuper(se),se.body=this.parseClassBody(!!se.superClass,we),this.finishNode(se,O?"ClassDeclaration":"ClassExpression")}isClassProperty(){return this.match(29)||this.match(13)||this.match(8)}isClassMethod(){return this.match(10)}nameIsConstructor(se){return se.type==="Identifier"&&se.name==="constructor"||se.type==="StringLiteral"&&se.value==="constructor"}isNonstaticConstructor(se){return!se.computed&&!se.static&&this.nameIsConstructor(se.key)}parseClassBody(se,O){this.classScope.enter();let K={hadConstructor:!1,hadSuperClass:se},we=[],gt=this.startNode();if(gt.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(()=>{for(;!this.match(8);){if(this.eat(13)){if(we.length>0)throw this.raise(X.DecoratorSemicolon,this.state.lastTokEndLoc);continue}if(this.match(26)){we.push(this.parseDecorator());continue}let sr=this.startNode();we.length&&(sr.decorators=we,this.resetStartLocationFromNode(sr,we[0]),we=[]),this.parseClassMember(gt,sr,K),sr.kind==="constructor"&&sr.decorators&&sr.decorators.length>0&&this.raise(X.DecoratorConstructor,sr)}}),this.state.strict=O,this.next(),we.length)throw this.raise(X.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(gt,"ClassBody")}parseClassMemberFromModifier(se,O){let K=this.parseIdentifier(!0);if(this.isClassMethod()){let we=O;return we.kind="method",we.computed=!1,we.key=K,we.static=!1,this.pushClassMethod(se,we,!1,!1,!1,!1),!0}else if(this.isClassProperty()){let we=O;return we.computed=!1,we.key=K,we.static=!1,se.body.push(this.parseClassProperty(we)),!0}return this.resetPreviousNodeTrailingComments(K),!1}parseClassMember(se,O,K){let we=this.isContextual(106);if(we){if(this.parseClassMemberFromModifier(se,O))return;if(this.eat(5)){this.parseClassStaticBlock(se,O);return}}this.parseClassMemberWithIsStatic(se,O,K,we)}parseClassMemberWithIsStatic(se,O,K,we){let gt=O,sr=O,Yr=O,Lr=O,fi=O,$n=gt,ra=gt;if(O.static=we,this.parsePropertyNamePrefixOperator(O),this.eat(55)){$n.kind="method";let SA=this.match(139);if(this.parseClassElementName($n),SA){this.pushClassPrivateMethod(se,sr,!0,!1);return}this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsGenerator,gt.key),this.pushClassMethod(se,gt,!0,!1,!1,!1);return}let kc=!this.state.containsEsc&&qr(this.state.type),Nl=this.parseClassElementName(O),ca=kc?Nl.name:null,Bl=this.isPrivateName(Nl),$g=this.state.startLoc;if(this.parsePostMemberNameModifiers(ra),this.isClassMethod()){if($n.kind="method",Bl){this.pushClassPrivateMethod(se,sr,!1,!1);return}let SA=this.isNonstaticConstructor(gt),lI=!1;SA&&(gt.kind="constructor",K.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(X.DuplicateConstructor,Nl),SA&&this.hasPlugin("typescript")&&O.override&&this.raise(X.OverrideOnConstructor,Nl),K.hadConstructor=!0,lI=K.hadSuperClass),this.pushClassMethod(se,gt,!1,!1,SA,lI)}else if(this.isClassProperty())Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr);else if(ca==="async"&&!this.isLineTerminator()){this.resetPreviousNodeTrailingComments(Nl);let SA=this.eat(55);ra.optional&&this.unexpected($g),$n.kind="method";let lI=this.match(139);this.parseClassElementName($n),this.parsePostMemberNameModifiers(ra),lI?this.pushClassPrivateMethod(se,sr,SA,!0):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAsync,gt.key),this.pushClassMethod(se,gt,SA,!0,!1,!1))}else if((ca==="get"||ca==="set")&&!(this.match(55)&&this.isLineTerminator())){this.resetPreviousNodeTrailingComments(Nl),$n.kind=ca;let SA=this.match(139);this.parseClassElementName(gt),SA?this.pushClassPrivateMethod(se,sr,!1,!1):(this.isNonstaticConstructor(gt)&&this.raise(X.ConstructorIsAccessor,gt.key),this.pushClassMethod(se,gt,!1,!1,!1,!1)),this.checkGetterSetterParams(gt)}else if(ca==="accessor"&&!this.isLineTerminator()){this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(Nl);let SA=this.match(139);this.parseClassElementName(Yr),this.pushClassAccessorProperty(se,fi,SA)}else this.isLineTerminator()?Bl?this.pushClassPrivateProperty(se,Lr):this.pushClassProperty(se,Yr):this.unexpected()}parseClassElementName(se){let{type:O,value:K}=this.state;if((O===132||O===134)&&se.static&&K==="prototype"&&this.raise(X.StaticPrototype,this.state.startLoc),O===139){K==="constructor"&&this.raise(X.ConstructorClassPrivateField,this.state.startLoc);let we=this.parsePrivateName();return se.key=we,we}return this.parsePropertyName(se),se.key}parseClassStaticBlock(se,O){var K;this.scope.enter(208);let we=this.state.labels;this.state.labels=[],this.prodParam.enter(0);let gt=O.body=[];this.parseBlockOrModuleBlockBody(gt,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=we,se.body.push(this.finishNode(O,"StaticBlock")),(K=O.decorators)!=null&&K.length&&this.raise(X.DecoratorStaticBlock,O)}pushClassProperty(se,O){!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key),se.body.push(this.parseClassProperty(O))}pushClassPrivateProperty(se,O){let K=this.parseClassPrivateProperty(O);se.body.push(K),this.classScope.declarePrivateName(this.getPrivateNameSV(K.key),0,K.key.loc.start)}pushClassAccessorProperty(se,O,K){!K&&!O.computed&&this.nameIsConstructor(O.key)&&this.raise(X.ConstructorClassField,O.key);let we=this.parseClassAccessorProperty(O);se.body.push(we),K&&this.classScope.declarePrivateName(this.getPrivateNameSV(we.key),0,we.key.loc.start)}pushClassMethod(se,O,K,we,gt,sr){se.body.push(this.parseMethod(O,K,we,gt,sr,"ClassMethod",!0))}pushClassPrivateMethod(se,O,K,we){let gt=this.parseMethod(O,K,we,!1,!1,"ClassPrivateMethod",!0);se.body.push(gt);let sr=gt.kind==="get"?gt.static?6:2:gt.kind==="set"?gt.static?5:1:0;this.declareClassPrivateMethodInScope(gt,sr)}declareClassPrivateMethodInScope(se,O){this.classScope.declarePrivateName(this.getPrivateNameSV(se.key),O,se.key.loc.start)}parsePostMemberNameModifiers(se){}parseClassPrivateProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassPrivateProperty")}parseClassProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassProperty")}parseClassAccessorProperty(se){return this.parseInitializer(se),this.semicolon(),this.finishNode(se,"ClassAccessorProperty")}parseInitializer(se){this.scope.enter(80),this.expressionScope.enter(il()),this.prodParam.enter(0),se.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()}parseClassId(se,O,K,we=8331){if(qr(this.state.type))se.id=this.parseIdentifier(),O&&this.declareNameFromIdentifier(se.id,we);else if(K||!O)se.id=null;else throw this.raise(X.MissingClassName,this.state.startLoc)}parseClassSuper(se){se.superClass=this.eat(81)?this.parseExprSubscripts():null}parseExport(se,O){let K=this.parseMaybeImportPhase(se,!0),we=this.maybeParseExportDefaultSpecifier(se,K),gt=!we||this.eat(12),sr=gt&&this.eatExportStar(se),Yr=sr&&this.maybeParseExportNamespaceSpecifier(se),Lr=gt&&(!Yr||this.eat(12)),fi=we||sr;if(sr&&!Yr){if(we&&this.unexpected(),O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.parseExportFrom(se,!0),this.finishNode(se,"ExportAllDeclaration")}let $n=this.maybeParseExportNamedSpecifiers(se);we&>&&!sr&&!$n&&this.unexpected(null,5),Yr&&Lr&&this.unexpected(null,98);let ra;if(fi||$n){if(ra=!1,O)throw this.raise(X.UnsupportedDecoratorExport,se);this.parseExportFrom(se,fi)}else ra=this.maybeParseExportDeclaration(se);if(fi||$n||ra){var kc;let Nl=se;if(this.checkExport(Nl,!0,!1,!!Nl.source),((kc=Nl.declaration)==null?void 0:kc.type)==="ClassDeclaration")this.maybeTakeDecorators(O,Nl.declaration,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.finishNode(Nl,"ExportNamedDeclaration")}if(this.eat(65)){let Nl=se,ca=this.parseExportDefaultExpression();if(Nl.declaration=ca,ca.type==="ClassDeclaration")this.maybeTakeDecorators(O,ca,Nl);else if(O)throw this.raise(X.UnsupportedDecoratorExport,se);return this.checkExport(Nl,!0,!0),this.finishNode(Nl,"ExportDefaultDeclaration")}this.unexpected(null,5)}eatExportStar(se){return this.eat(55)}maybeParseExportDefaultSpecifier(se,O){if(O||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",O?.loc.start);let K=O||this.parseIdentifier(!0),we=this.startNodeAtNode(K);return we.exported=K,se.specifiers=[this.finishNode(we,"ExportDefaultSpecifier")],!0}return!1}maybeParseExportNamespaceSpecifier(se){if(this.isContextual(93)){var O,K;(K=(O=se).specifiers)!=null||(O.specifiers=[]);let we=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),we.exported=this.parseModuleExportName(),se.specifiers.push(this.finishNode(we,"ExportNamespaceSpecifier")),!0}return!1}maybeParseExportNamedSpecifiers(se){if(this.match(5)){let O=se;O.specifiers||(O.specifiers=[]);let K=O.exportKind==="type";return O.specifiers.push(...this.parseExportSpecifiers(K)),O.source=null,O.declaration=null,this.hasPlugin("importAssertions")&&(O.assertions=[]),!0}return!1}maybeParseExportDeclaration(se){return this.shouldParseExportDeclaration()?(se.specifiers=[],se.source=null,this.hasPlugin("importAssertions")&&(se.assertions=[]),se.declaration=this.parseExportDeclaration(se),!0):!1}isAsyncFunction(){if(!this.isContextual(95))return!1;let se=this.nextTokenInLineStart();return this.isUnparsedContextual(se,"function")}parseExportDefaultExpression(){let se=this.startNode();if(this.match(68))return this.next(),this.parseFunction(se,5);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(se,13);if(this.match(80))return this.parseClass(se,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet())throw this.raise(X.UnsupportedDefaultExport,this.state.startLoc);let O=this.parseMaybeAssignAllowIn();return this.semicolon(),O}parseExportDeclaration(se){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()}isExportDefaultSpecifier(){let{type:se}=this.state;if(qr(se)){if(se===95&&!this.state.containsEsc||se===100)return!1;if((se===130||se===129)&&!this.state.containsEsc){let{type:we}=this.lookahead();if(qr(we)&&we!==98||we===5)return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;let O=this.nextTokenStart(),K=this.isUnparsedContextual(O,"from");if(this.input.charCodeAt(O)===44||qr(this.state.type)&&K)return!0;if(this.match(65)&&K){let we=this.input.charCodeAt(this.nextTokenStartSince(O+4));return we===34||we===39}return!1}parseExportFrom(se,O){this.eatContextual(98)?(se.source=this.parseImportSource(),this.checkExport(se),this.maybeParseImportAttributes(se),this.checkJSONModuleImport(se)):O&&this.unexpected(),this.semicolon()}shouldParseExportDeclaration(){let{type:se}=this.state;return se===26&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(this.getPluginOption("decorators","decoratorsBeforeExport")===!0&&this.raise(X.DecoratorBeforeExport,this.state.startLoc),!0):this.isContextual(107)?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):this.isContextual(96)&&this.startsAwaitUsing()?(this.raise(X.UsingDeclarationExport,this.state.startLoc),!0):se===74||se===75||se===68||se===80||this.isLet()||this.isAsyncFunction()}checkExport(se,O,K,we){if(O){var gt;if(K){if(this.checkDuplicateExports(se,"default"),this.hasPlugin("exportDefaultFrom")){var sr;let Yr=se.declaration;Yr.type==="Identifier"&&Yr.name==="from"&&Yr.end-Yr.start===4&&!((sr=Yr.extra)!=null&&sr.parenthesized)&&this.raise(X.ExportDefaultFromAsIdentifier,Yr)}}else if((gt=se.specifiers)!=null&>.length)for(let Yr of se.specifiers){let{exported:Lr}=Yr,fi=Lr.type==="Identifier"?Lr.name:Lr.value;if(this.checkDuplicateExports(Yr,fi),!we&&Yr.local){let{local:$n}=Yr;$n.type!=="Identifier"?this.raise(X.ExportBindingIsString,Yr,{localName:$n.value,exportName:fi}):(this.checkReservedWord($n.name,$n.loc.start,!0,!1),this.scope.checkLocalExport($n))}}else if(se.declaration){let Yr=se.declaration;if(Yr.type==="FunctionDeclaration"||Yr.type==="ClassDeclaration"){let{id:Lr}=Yr;if(!Lr)throw new Error("Assertion failure");this.checkDuplicateExports(se,Lr.name)}else if(Yr.type==="VariableDeclaration")for(let Lr of Yr.declarations)this.checkDeclaration(Lr.id)}}}checkDeclaration(se){if(se.type==="Identifier")this.checkDuplicateExports(se,se.name);else if(se.type==="ObjectPattern")for(let O of se.properties)this.checkDeclaration(O);else if(se.type==="ArrayPattern")for(let O of se.elements)O&&this.checkDeclaration(O);else se.type==="ObjectProperty"?this.checkDeclaration(se.value):se.type==="RestElement"?this.checkDeclaration(se.argument):se.type==="AssignmentPattern"&&this.checkDeclaration(se.left)}checkDuplicateExports(se,O){this.exportedIdentifiers.has(O)&&(O==="default"?this.raise(X.DuplicateDefaultExport,se):this.raise(X.DuplicateExport,se,{exportName:O})),this.exportedIdentifiers.add(O)}parseExportSpecifiers(se){let O=[],K=!0;for(this.expect(5);!this.eat(8);){if(K)K=!1;else if(this.expect(12),this.eat(8))break;let we=this.isContextual(130),gt=this.match(134),sr=this.startNode();sr.local=this.parseModuleExportName(),O.push(this.parseExportSpecifier(sr,gt,se,we))}return O}parseExportSpecifier(se,O,K,we){return this.eatContextual(93)?se.exported=this.parseModuleExportName():O?se.exported=yn(se.local):se.exported||(se.exported=Zt(se.local)),this.finishNode(se,"ExportSpecifier")}parseModuleExportName(){if(this.match(134)){let se=this.parseStringLiteral(this.state.value),O=TC.exec(se.value);return O&&this.raise(X.ModuleExportNameHasLoneSurrogate,se,{surrogateCharCode:O[0].charCodeAt(0)}),se}return this.parseIdentifier(!0)}isJSONModuleImport(se){return se.assertions!=null?se.assertions.some(({key:O,value:K})=>K.value==="json"&&(O.type==="Identifier"?O.name==="type":O.value==="type")):!1}checkImportReflection(se){let{specifiers:O}=se,K=O.length===1?O[0].type:null;if(se.phase==="source")K!=="ImportDefaultSpecifier"&&this.raise(X.SourcePhaseImportRequiresDefault,O[0].loc.start);else if(se.phase==="defer")K!=="ImportNamespaceSpecifier"&&this.raise(X.DeferImportRequiresNamespace,O[0].loc.start);else if(se.module){var we;K!=="ImportDefaultSpecifier"&&this.raise(X.ImportReflectionNotBinding,O[0].loc.start),((we=se.assertions)==null?void 0:we.length)>0&&this.raise(X.ImportReflectionHasAssertion,O[0].loc.start)}}checkJSONModuleImport(se){if(this.isJSONModuleImport(se)&&se.type!=="ExportAllDeclaration"){let{specifiers:O}=se;if(O!=null){let K=O.find(we=>{let gt;if(we.type==="ExportSpecifier"?gt=we.local:we.type==="ImportSpecifier"&&(gt=we.imported),gt!==void 0)return gt.type==="Identifier"?gt.name!=="default":gt.value!=="default"});K!==void 0&&this.raise(X.ImportJSONBindingNotDefault,K.loc.start)}}}isPotentialImportPhase(se){return se?!1:this.isContextual(105)||this.isContextual(97)||this.isContextual(127)}applyImportPhase(se,O,K,we){O||(K==="module"?(this.expectPlugin("importReflection",we),se.module=!0):this.hasPlugin("importReflection")&&(se.module=!1),K==="source"?(this.expectPlugin("sourcePhaseImports",we),se.phase="source"):K==="defer"?(this.expectPlugin("deferredImportEvaluation",we),se.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(se.phase=null))}parseMaybeImportPhase(se,O){if(!this.isPotentialImportPhase(O))return this.applyImportPhase(se,O,null),null;let K=this.parseIdentifier(!0),{type:we}=this.state;return(ke(we)?we!==98||this.lookaheadCharCode()===102:we!==12)?(this.resetPreviousIdentifierLeadingComments(K),this.applyImportPhase(se,O,K.name,K.loc.start),null):(this.applyImportPhase(se,O,null),K)}isPrecedingIdImportPhase(se){let{type:O}=this.state;return qr(O)?O!==98||this.lookaheadCharCode()===102:O!==12}parseImport(se){return this.match(134)?this.parseImportSourceAndAttributes(se):this.parseImportSpecifiersAndAfter(se,this.parseMaybeImportPhase(se,!1))}parseImportSpecifiersAndAfter(se,O){se.specifiers=[];let K=!this.maybeParseDefaultImportSpecifier(se,O)||this.eat(12),we=K&&this.maybeParseStarImportSpecifier(se);return K&&!we&&this.parseNamedImportSpecifiers(se),this.expectContextual(98),this.parseImportSourceAndAttributes(se)}parseImportSourceAndAttributes(se){var O;return(O=se.specifiers)!=null||(se.specifiers=[]),se.source=this.parseImportSource(),this.maybeParseImportAttributes(se),this.checkImportReflection(se),this.checkJSONModuleImport(se),this.semicolon(),this.finishNode(se,"ImportDeclaration")}parseImportSource(){return this.match(134)||this.unexpected(),this.parseExprAtom()}parseImportSpecifierLocal(se,O,K){O.local=this.parseIdentifier(),se.specifiers.push(this.finishImportSpecifier(O,K))}finishImportSpecifier(se,O,K=8201){return this.checkLVal(se.local,{type:O},K),this.finishNode(se,O)}parseImportAttributes(){this.expect(5);let se=[],O=new Set;do{if(this.match(8))break;let K=this.startNode(),we=this.state.value;if(O.has(we)&&this.raise(X.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:we}),O.add(we),this.match(134)?K.key=this.parseStringLiteral(we):K.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return this.expect(8),se}parseModuleAttributes(){let se=[],O=new Set;do{let K=this.startNode();if(K.key=this.parseIdentifier(!0),K.key.name!=="type"&&this.raise(X.ModuleAttributeDifferentFromType,K.key),O.has(K.key.name)&&this.raise(X.ModuleAttributesWithDuplicateKeys,K.key,{key:K.key.name}),O.add(K.key.name),this.expect(14),!this.match(134))throw this.raise(X.ModuleAttributeInvalidValue,this.state.startLoc);K.value=this.parseStringLiteral(this.state.value),se.push(this.finishNode(K,"ImportAttribute"))}while(this.eat(12));return se}maybeParseImportAttributes(se){let O;var K=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&this.lookaheadCharCode()===40)return;this.next(),this.hasPlugin("moduleAttributes")?O=this.parseModuleAttributes():O=this.parseImportAttributes(),K=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(!this.hasPlugin("deprecatedImportAssert")&&!this.hasPlugin("importAssertions")&&this.raise(X.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin("importAssertions")||this.addExtra(se,"deprecatedAssertSyntax",!0),this.next(),O=this.parseImportAttributes()):O=[];!K&&this.hasPlugin("importAssertions")?se.assertions=O:se.attributes=O}maybeParseDefaultImportSpecifier(se,O){if(O){let K=this.startNodeAtNode(O);return K.local=O,se.specifiers.push(this.finishImportSpecifier(K,"ImportDefaultSpecifier")),!0}else if(ke(this.state.type))return this.parseImportSpecifierLocal(se,this.startNode(),"ImportDefaultSpecifier"),!0;return!1}maybeParseStarImportSpecifier(se){if(this.match(55)){let O=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(se,O,"ImportNamespaceSpecifier"),!0}return!1}parseNamedImportSpecifiers(se){let O=!0;for(this.expect(5);!this.eat(8);){if(O)O=!1;else{if(this.eat(14))throw this.raise(X.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}let K=this.startNode(),we=this.match(134),gt=this.isContextual(130);K.imported=this.parseModuleExportName();let sr=this.parseImportSpecifier(K,we,se.importKind==="type"||se.importKind==="typeof",gt,void 0);se.specifiers.push(sr)}}parseImportSpecifier(se,O,K,we,gt){if(this.eatContextual(93))se.local=this.parseIdentifier();else{let{imported:sr}=se;if(O)throw this.raise(X.ImportBindingIsString,se,{importName:sr.value});this.checkReservedWord(sr.name,se.loc.start,!0,!0),se.local||(se.local=Zt(sr))}return this.finishImportSpecifier(se,"ImportSpecifier",gt)}isThisParam(se){return se.type==="Identifier"&&se.name==="this"}},fb=class extends Mm{constructor(se,O,K){se=ne(se),super(se,O),this.options=se,this.initializeScopes(),this.plugins=K,this.filename=se.sourceFilename,this.startIndex=se.startIndex;let we=0;se.allowAwaitOutsideFunction&&(we|=1),se.allowReturnOutsideFunction&&(we|=2),se.allowImportExportEverywhere&&(we|=8),se.allowSuperOutsideMethod&&(we|=16),se.allowUndeclaredExports&&(we|=32),se.allowNewTargetOutsideFunction&&(we|=4),se.ranges&&(we|=64),se.tokens&&(we|=128),se.createImportExpressions&&(we|=256),se.createParenthesizedExpressions&&(we|=512),se.errorRecovery&&(we|=1024),se.attachComment&&(we|=2048),se.annexB&&(we|=4096),this.optionFlags=we}getScopeHandler(){return Xu}parse(){this.enterInitialScopes();let se=this.startNode(),O=this.startNode();return this.nextToken(),se.errors=null,this.parseTopLevel(se,O),se.errors=this.state.errors,se.comments.length=this.state.commentsLen,se}};function pe(se,O){var K;if(((K=O)==null?void 0:K.sourceType)==="unambiguous"){O=Object.assign({},O);try{O.sourceType="module";let we=_I(O,se),gt=we.parse();if(we.sawUnambiguousESM)return gt;if(we.ambiguousScriptDifferentAst)try{return O.sourceType="script",_I(O,se).parse()}catch{}else gt.program.sourceType="script";return gt}catch(we){try{return O.sourceType="script",_I(O,se).parse()}catch{}throw we}}else return _I(O,se).parse()}function lm(se,O){let K=_I(O,se);return K.options.strictMode&&(K.state.strict=!0),K.getExpression()}function Kf(se){let O={};for(let K of Object.keys(se))O[K]=zr(se[K]);return O}var CI=Kf(Ar);function _I(se,O){let K=fb,we=new Map;if(se!=null&&se.plugins){for(let gt of se.plugins){let sr,Yr;typeof gt=="string"?sr=gt:[sr,Yr]=gt,we.has(sr)||we.set(sr,Yr||{})}Hp(we),K=iE(we)}return new K(se,O,we)}var H2=new Map;function iE(se){let O=[];for(let gt of nE)se.has(gt)&&O.push(gt);let K=O.join("|"),we=H2.get(K);if(!we){we=fb;for(let gt of O)we=uC[gt](we);H2.set(K,we)}return we}e.parse=pe,e.parseExpression=lm,e.tokTypes=CI}),ayi={};t5a(ayi,{parsers:()=>GRe});var J0i=iyi(syi(),1);function Oyt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0i=I5a;function h5a(e){return Array.isArray(e)&&e.length>0}var CTr=h5a;function tj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(tj(o),a):a}function Ame(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function m5a(e){let t=new Set(e);return r=>t.has(r?.type)}var C5a=m5a,_5a=C5a(["Block","CommentBlock","MultiLine"]),fTr=_5a;function y5a(e){let t=`*${e.value}*`.split(` `);return t.length>1&&t.every(r=>r.trimStart()[0]==="*")}var K0i=y5a;function b5a(e){return fTr(e)&&e.value[0]==="*"&&/@(?:type|satisfies)\b/u.test(e.value)}var E5a=b5a,C4e=null;function y4e(e){if(C4e!==null&&typeof C4e.property){let t=C4e;return C4e=y4e.prototype=null,t}return C4e=y4e.prototype=e??Object.create(null),new y4e}var S5a=10;for(let e=0;e<=S5a;e++)y4e();function v5a(e){return y4e(e)}function B5a(e,t="type"){v5a(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var w5a=B5a,T5a={ArrayExpression:["elements"],AssignmentExpression:["left","right"],BinaryExpression:["left","right"],InterpreterDirective:[],Directive:["value"],DirectiveLiteral:[],BlockStatement:["directives","body"],BreakStatement:["label"],CallExpression:["callee","arguments","typeParameters","typeArguments"],CatchClause:["param","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],File:["program"],ForInStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","typeParameters","params","predicate","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["typeAnnotation","decorators"],IfStatement:["test","consequent","alternate"],LabeledStatement:["label","body"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],NewExpression:["callee","arguments","typeParameters","typeArguments"],Program:["directives","body"],ObjectExpression:["properties"],ObjectMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectProperty:["key","value","decorators"],RestElement:["argument","typeAnnotation","decorators"],ReturnStatement:["argument"],SequenceExpression:["expressions"],ParenthesizedExpression:["expression"],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],AssignmentPattern:["left","right","decorators","typeAnnotation"],ArrayPattern:["elements","typeAnnotation","decorators"],ArrowFunctionExpression:["typeParameters","params","predicate","returnType","body"],ClassBody:["body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ExportAllDeclaration:["source","attributes","exported"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source","attributes"],ExportSpecifier:["local","exported"],ForOfStatement:["left","right","body"],ImportDeclaration:["specifiers","source","attributes"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],ImportExpression:["source","options"],MetaProperty:["meta","property"],ClassMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectPattern:["properties","typeAnnotation","decorators"],SpreadElement:["argument"],Super:[],TaggedTemplateExpression:["tag","typeParameters","quasi","typeArguments"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],YieldExpression:["argument"],AwaitExpression:["argument"],BigIntLiteral:[],ExportNamespaceSpecifier:["exported"],OptionalMemberExpression:["object","property"],OptionalCallExpression:["callee","arguments","typeParameters","typeArguments"],ClassProperty:["decorators","variance","key","typeAnnotation","value"],ClassAccessorProperty:["decorators","key","typeAnnotation","value"],ClassPrivateProperty:["decorators","variance","key","typeAnnotation","value"],ClassPrivateMethod:["decorators","key","typeParameters","params","returnType","body"],PrivateName:["id"],StaticBlock:["body"],AnyTypeAnnotation:[],ArrayTypeAnnotation:["elementType"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:["id","typeParameters"],DeclareClass:["id","typeParameters","extends","mixins","implements","body"],DeclareFunction:["id","predicate"],DeclareInterface:["id","typeParameters","extends","body"],DeclareModule:["id","body"],DeclareModuleExports:["typeAnnotation"],DeclareTypeAlias:["id","typeParameters","right"],DeclareOpaqueType:["id","typeParameters","supertype"],DeclareVariable:["id"],DeclareExportDeclaration:["declaration","specifiers","source","attributes"],DeclareExportAllDeclaration:["source","attributes"],DeclaredPredicate:["value"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:["typeParameters","this","params","rest","returnType"],FunctionTypeParam:["name","typeAnnotation"],GenericTypeAnnotation:["id","typeParameters"],InferredPredicate:[],InterfaceExtends:["id","typeParameters"],InterfaceDeclaration:["id","typeParameters","extends","body"],InterfaceTypeAnnotation:["extends","body"],IntersectionTypeAnnotation:["types"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:["typeAnnotation"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:["properties","indexers","callProperties","internalSlots"],ObjectTypeInternalSlot:["id","value"],ObjectTypeCallProperty:["value"],ObjectTypeIndexer:["variance","id","key","value"],ObjectTypeProperty:["key","value","variance"],ObjectTypeSpreadProperty:["argument"],OpaqueType:["id","typeParameters","supertype","impltype"],QualifiedTypeIdentifier:["qualification","id"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:["types","elementTypes"],TypeofTypeAnnotation:["argument","typeArguments"],TypeAlias:["id","typeParameters","right"],TypeAnnotation:["typeAnnotation"],TypeCastExpression:["expression","typeAnnotation"],TypeParameter:["bound","default","variance"],TypeParameterDeclaration:["params"],TypeParameterInstantiation:["params"],UnionTypeAnnotation:["types"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:["id","body"],EnumBooleanBody:["members"],EnumNumberBody:["members"],EnumStringBody:["members"],EnumSymbolBody:["members"],EnumBooleanMember:["id","init"],EnumNumberMember:["id","init"],EnumStringMember:["id","init"],EnumDefaultedMember:["id"],IndexedAccessType:["objectType","indexType"],OptionalIndexedAccessType:["objectType","indexType"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXSpreadChild:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","typeParameters","typeArguments","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:["object","callee"],ImportAttribute:["key","value"],Decorator:["expression"],DoExpression:["body"],ExportDefaultSpecifier:["exported"],RecordExpression:["properties"],TupleExpression:["elements"],ModuleExpression:["body"],TopicReference:[],PipelineTopicExpression:["expression"],PipelineBareFunction:["callee"],PipelinePrimaryTopicReference:[],TSParameterProperty:["parameter","decorators"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareMethod:["decorators","key","typeParameters","params","returnType"],TSQualifiedName:["left","right"],TSCallSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSPropertySignature:["key","typeAnnotation"],TSMethodSignature:["key","typeParameters","parameters","typeAnnotation","params","returnType"],TSIndexSignature:["parameters","typeAnnotation"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructorType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSTypeReference:["typeName","typeParameters","typeArguments"],TSTypePredicate:["parameterName","typeAnnotation"],TSTypeQuery:["exprName","typeParameters","typeArguments"],TSTypeLiteral:["members"],TSArrayType:["elementType"],TSTupleType:["elementTypes"],TSOptionalType:["typeAnnotation"],TSRestType:["typeAnnotation"],TSNamedTupleMember:["label","elementType"],TSUnionType:["types"],TSIntersectionType:["types"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSInferType:["typeParameter"],TSParenthesizedType:["typeAnnotation"],TSTypeOperator:["typeAnnotation"],TSIndexedAccessType:["objectType","indexType"],TSMappedType:["typeParameter","nameType","typeAnnotation"],TSTemplateLiteralType:["quasis","types"],TSLiteralType:["literal"],TSExpressionWithTypeArguments:["expression","typeParameters"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceBody:["body"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSInstantiationExpression:["expression","typeParameters","typeArguments"],TSAsExpression:["expression","typeAnnotation"],TSSatisfiesExpression:["expression","typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSEnumBody:["members"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSModuleDeclaration:["id","body"],TSModuleBlock:["body"],TSImportType:["argument","options","qualifier","typeParameters","typeArguments"],TSImportEqualsDeclaration:["id","moduleReference"],TSExternalModuleReference:["expression"],TSNonNullExpression:["expression"],TSExportAssignment:["expression"],TSNamespaceExportDeclaration:["id"],TSTypeAnnotation:["typeAnnotation"],TSTypeParameterInstantiation:["params"],TSTypeParameterDeclaration:["params"],TSTypeParameter:["constraint","default","name"],ChainExpression:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],Literal:[],MethodDefinition:["decorators","key","value"],PrivateIdentifier:[],Property:["key","value"],PropertyDefinition:["decorators","key","typeAnnotation","value","variance"],AccessorProperty:["decorators","key","typeAnnotation","value"],TSAbstractAccessorProperty:["decorators","key","typeAnnotation"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAsyncKeyword:[],TSClassImplements:["expression","typeArguments","typeParameters"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSExportKeyword:[],TSInterfaceHeritage:["expression","typeArguments","typeParameters"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],AsConstExpression:["expression"],AsExpression:["expression","typeAnnotation"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:["id","params","body","typeParameters","rendersType"],ComponentParameter:["name","local"],ComponentTypeAnnotation:["params","rest","typeParameters","rendersType"],ComponentTypeParameter:["name","typeAnnotation"],ConditionalTypeAnnotation:["checkType","extendsType","trueType","falseType"],DeclareComponent:["id","params","rest","typeParameters","rendersType"],DeclareEnum:["id","body"],DeclareHook:["id"],DeclareNamespace:["id","body"],EnumBigIntBody:["members"],EnumBigIntMember:["id","init"],HookDeclaration:["id","params","body","typeParameters","returnType"],HookTypeAnnotation:["params","returnType","rest","typeParameters"],InferTypeAnnotation:["typeParameter"],KeyofTypeAnnotation:["argument"],ObjectTypeMappedTypeProperty:["keyTparam","propType","sourceType","variance"],QualifiedTypeofIdentifier:["qualification","id"],TupleTypeLabeledElement:["label","elementType","variance"],TupleTypeSpreadElement:["label","typeAnnotation"],TypeOperator:["typeAnnotation"],TypePredicate:["parameterName","typeAnnotation","asserts"],NGRoot:["node"],NGPipeExpression:["left","right","arguments"],NGChainedExpression:["expressions"],NGEmptyExpression:[],NGMicrosyntax:["body"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:["expression","alias"],NGMicrosyntaxKeyedExpression:["key","expression"],NGMicrosyntaxLet:["key","value"],NGMicrosyntaxAs:["key","alias"],JsExpressionRoot:["node"],JsonRoot:["node"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:["typeAnnotation"],TSJSDocNonNullableType:["typeAnnotation"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:["expression","typeAnnotation"]},R5a=w5a(T5a),N5a=R5a;function ITr(e,t){if(!(e!==null&&typeof e=="object"))return e;if(Array.isArray(e)){for(let n=0;n{var l;(l=o.leadingComments)!=null&&l.some(E5a)&&a.add(tj(o))}),e=dTr(e,o=>{if(o.type==="ParenthesizedExpression"){let{expression:l}=o;if(l.type==="TypeCastExpression")return l.range=[...o.range],l;let A=tj(o);if(!a.has(A))return l.extra={...l.extra,parenthesized:!0},l}})}if(e=dTr(e,a=>{switch(a.type){case"LogicalExpression":if(lyi(a))return hTr(a);break;case"VariableDeclaration":{let o=U0i(!1,a.declarations,-1);o!=null&&o.init&&n[Ame(o)]!==";"&&(a.range=[tj(a),Ame(o)]);break}case"TSParenthesizedType":return a.typeAnnotation;case"TSTypeParameter":if(typeof a.name=="string"){let o=tj(a);a.name={type:"Identifier",name:a.name,range:[o,o+a.name.length]}}break;case"TopicReference":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case"TSUnionType":case"TSIntersectionType":if(a.types.length===1)return a.types[0];break}}),CTr(e.comments)){let a=U0i(!1,e.comments,-1);for(let o=e.comments.length-2;o>=0;o--){let l=e.comments[o];Ame(l)===tj(a)&&fTr(l)&&fTr(a)&&K0i(l)&&K0i(a)&&(e.comments.splice(o+1,1),l.value+="*//*"+a.value,l.range=[tj(l),Ame(a)]),a=l}}return e.type==="Program"&&(e.range=[0,n.length]),e}function lyi(e){return e.type==="LogicalExpression"&&e.right.type==="LogicalExpression"&&e.operator===e.right.operator}function hTr(e){return lyi(e)?hTr({type:"LogicalExpression",operator:e.operator,left:hTr({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[tj(e.left),Ame(e.right.left)]}),right:e.right.right,range:[tj(e),Ame(e)]}):e}var k5a=D5a;function x5a(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var uyi=x5a;function G5a(e){let{message:t,loc:{line:r,column:n},reasonCode:a}=e,o=e;(a==="MissingPlugin"||a==="MissingOneOfPlugins")&&(t="Unexpected token.",o=void 0);let l=` (${r}:${n})`;return t.endsWith(l)&&(t=t.slice(0,-l.length)),uyi(t,{loc:{start:{line:r,column:n+1}},cause:o})}var gyi=G5a,F5a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Wyt=F5a,Z5a=/\*\/$/,L5a=/^\/\*\*?/,V5a=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,P5a=/(^|\s+)\/\/([^\n\r]*)/g,j0i=/^(\r?\n)+/,W5a=/(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g,z0i=/(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g,O5a=/(\r?\n|^) *\* ?/g,M5a=[];function H5a(e){let t=e.match(V5a);return t?t[0].trimStart():""}function Y5a(e){let t=` -`;e=Wyt(!1,e.replace(L5a,"").replace(Z5a,""),O5a,"$1");let r="";for(;r!==e;)r=e,e=Wyt(!1,e,W5a,`${t}$1 $2${t}`);e=e.replace(j0i,"").trimEnd();let n=Object.create(null),a=Wyt(!1,e,z0i,"").replace(j0i,"").trimEnd(),o;for(;o=z0i.exec(e);){let l=Wyt(!1,o[2],P5a,"");if(typeof n[o[1]]=="string"||Array.isArray(n[o[1]])){let A=n[o[1]];n[o[1]]=[...M5a,...Array.isArray(A)?A:[A],l]}else n[o[1]]=l}return{comments:a,pragmas:n}}function Q5a(e){let t=cyi(e);t&&(e=e.slice(t.length+1));let r=H5a(e),{pragmas:n,comments:a}=Y5a(r);return{shebang:t,text:e,pragmas:n,comments:a}}function X5a(e){let{pragmas:t}=Q5a(e);return Object.prototype.hasOwnProperty.call(t,"prettier")||Object.prototype.hasOwnProperty.call(t,"format")}function J5a(e){return e=typeof e=="function"?{parse:e}:e,{astFormat:"estree",hasPragma:X5a,locStart:tj,locEnd:Ame,...e}}var _4e=J5a;function U5a(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(".cjs")||t.endsWith(".cts"))return"script";if(t.endsWith(".mjs")||t.endsWith(".mts"))return"module"}}var K5a=U5a;function j5a(e,t){let{type:r="JsExpressionRoot",rootMarker:n,text:a}=t,{tokens:o,comments:l}=e;return delete e.tokens,delete e.comments,{tokens:o,comments:l,type:r,node:e,range:[0,a.length],rootMarker:n}}var Ayi=j5a,xRe=e=>_4e(tMa(e)),z5a={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,createImportExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication","decorators","moduleBlocks","asyncDoExpressions","destructuringPrivate","decoratorAutoAccessors","explicitResourceManagement","sourcePhaseImports","deferredImportEvaluation",["optionalChainingAssign",{version:"2023-07"}],"recordAndTuple"],tokens:!0,ranges:!0},q0i="v8intrinsic",$0i=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"fsharp"}]],lee=(e,t=z5a)=>({...t,plugins:[...t.plugins,...e]}),q5a=/@(?:no)?flow\b/u;function $5a(e,t){var r;if((r=t.filepath)!=null&&r.endsWith(".js.flow"))return!0;let n=cyi(e);n&&(e=e.slice(n.length));let a=A5a(e,0);return a!==!1&&(e=e.slice(0,a)),q5a.test(e)}function eMa(e,t,r){let n=e(t,r),a=n.errors.find(o=>!rMa.has(o.reasonCode));if(a)throw a;return n}function tMa({isExpression:e=!1,optionsCombinations:t}){return(r,n={})=>{if((n.parser==="babel"||n.parser==="__babel_estree")&&$5a(r,n))return n.parser="babel-flow",pyi.parse(r,n);let a=t;(n.__babelSourceType??K5a(n))==="script"&&(a=a.map(f=>({...f,sourceType:"script"})));let o=/%[A-Z]/u.test(r);r.includes("|>")?a=(o?[...$0i,q0i]:$0i).flatMap(f=>a.map(I=>lee([f],I))):o&&(a=a.map(f=>lee([q0i],f)));let l=e?J0i.parseExpression:J0i.parse,A;try{A=p5a(a.map(f=>()=>eMa(l,r,f)))}catch({errors:[f]}){throw gyi(f)}return e&&(A=Ayi(A,{text:r,rootMarker:n.rootMarker})),k5a(A,{parser:"babel",text:r})}}var rMa=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","ForInOfLoopInitializer","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport","ImportAttributesUseAssert"]),dyi=[lee(["jsx"])],eyi=xRe({optionsCombinations:dyi}),tyi=xRe({optionsCombinations:[lee(["jsx","typescript"]),lee(["typescript"])]}),ryi=xRe({isExpression:!0,optionsCombinations:[lee(["jsx"])]}),nyi=xRe({isExpression:!0,optionsCombinations:[lee(["typescript"])]}),pyi=xRe({optionsCombinations:[lee(["jsx",["flow",{all:!0}],"flowComments"])]}),nMa=xRe({optionsCombinations:dyi.map(e=>lee(["estree"],e))}),iMa={babel:eyi,"babel-flow":pyi,"babel-ts":tyi,__js_expression:ryi,__ts_expression:nyi,__vue_expression:ryi,__vue_ts_expression:nyi,__vue_event_binding:eyi,__vue_ts_event_binding:tyi,__babel_estree:nMa},sMa=iyi(syi(),1);function fyi(e={}){let{allowComments:t=!0}=e;return function(r){let n;try{n=(0,sMa.parseExpression)(r,{tokens:!0,ranges:!0,attachComment:!1})}catch(a){throw gyi(a)}if(!t&&CTr(n.comments))throw $ae(n.comments[0],"Comment");return kRe(n),Ayi(n,{type:"JsonRoot",text:r})}}function $ae(e,t){let[r,n]=[e.loc.start,e.loc.end].map(({line:a,column:o})=>({line:a,column:o+1}));return uyi(`${t} is not allowed in JSON.`,{loc:{start:r,end:n}})}function kRe(e){switch(e.type){case"ArrayExpression":for(let t of e.elements)t!==null&&kRe(t);return;case"ObjectExpression":for(let t of e.properties)kRe(t);return;case"ObjectProperty":if(e.computed)throw $ae(e.key,"Computed key");if(e.shorthand)throw $ae(e.key,"Shorthand property");e.key.type!=="Identifier"&&kRe(e.key),kRe(e.value);return;case"UnaryExpression":{let{operator:t,argument:r}=e;if(t!=="+"&&t!=="-")throw $ae(e,`Operator '${e.operator}'`);if(r.type==="NumericLiteral"||r.type==="Identifier"&&(r.name==="Infinity"||r.name==="NaN"))return;throw $ae(r,`Operator '${t}' before '${r.type}'`)}case"Identifier":if(e.name!=="Infinity"&&e.name!=="NaN"&&e.name!=="undefined")throw $ae(e,`Identifier '${e.name}'`);return;case"TemplateLiteral":if(CTr(e.expressions))throw $ae(e.expressions[0],"'TemplateLiteral' with expression");for(let t of e.quasis)kRe(t);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw $ae(e,`'${e.type}'`)}}var pTr=fyi(),oMa={json:_4e({parse:pTr,hasPragma(){return!0}}),json5:_4e(pTr),jsonc:_4e(pTr),"json-stringify":_4e({parse:fyi({allowComments:!1}),astFormat:"estree-json"})},aMa=oMa,GRe={...iMa,...aMa},cMa=ayi;var vme={};sI(vme,{default:()=>mJa,languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var lMa=Object.defineProperty,Oyi=e=>{throw TypeError(e)},tbt=(e,t)=>{for(var r in t)lMa(e,r,{get:t[r],enumerable:!0})},Myi=(e,t,r)=>t.has(e)||Oyi("Cannot "+r),ece=(e,t,r)=>(Myi(e,t,"read from private field"),r?r.call(e):t.get(e)),uMa=(e,t,r)=>t.has(e)?Oyi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),gMa=(e,t,r,n)=>(Myi(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Hyi={};tbt(Hyi,{languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var AMa=[{linguistLanguageId:183,name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib",".wxs"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell","zx"],parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"]},{linguistLanguageId:183,name:"Flow",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:[],extensions:[".js.flow"],filenames:[],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"]},{linguistLanguageId:183,name:"JSX",type:"programming",tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0,aliases:void 0,extensions:[".jsx"],filenames:void 0,interpreters:void 0,parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],group:"JavaScript"},{linguistLanguageId:378,name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]},{linguistLanguageId:94901924,name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]}],Yyi={};tbt(Yyi,{canAttachComment:()=>mYa,embed:()=>sQa,experimentalFeatures:()=>lJa,getCommentChildNodes:()=>CYa,getVisitorKeys:()=>Uyi,handleComments:()=>fbi,insertPragma:()=>mQa,isBlockComment:()=>zM,isGap:()=>_Ya,massageAstNode:()=>hHa,print:()=>cJa,printComment:()=>ZHa,willPrintOwnComments:()=>Bbi});var dMa=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Zk=dMa,pMa=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0=pMa;function fMa(e){return e!==null&&typeof e=="object"}var IMa=fMa;function*hMa(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,a=o=>IMa(o)&&n(o);for(let o of r(e)){let l=e[o];if(Array.isArray(l))for(let A of l)a(A)&&(yield A);else a(l)&&(yield l)}}function*mMa(e,t){let r=[e];for(let n=0;n/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function yMa(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function bMa(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var EMa=e=>!(yMa(e)||bMa(e)),SMa=/[^\x20-\x7F]/u;function vMa(e){if(!e)return 0;if(!SMa.test(e))return e.length;e=e.replace(_Ma()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=EMa(n)?1:2)}return t}var WRe=vMa;function rbt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l_4e(tMa(e)),z5a={sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowUndeclaredExports:!0,errorRecovery:!0,createParenthesizedExpressions:!0,createImportExpressions:!0,plugins:["doExpressions","exportDefaultFrom","functionBind","functionSent","throwExpressions","partialApplication","decorators","moduleBlocks","asyncDoExpressions","destructuringPrivate","decoratorAutoAccessors","explicitResourceManagement","sourcePhaseImports","deferredImportEvaluation",["optionalChainingAssign",{version:"2023-07"}],"recordAndTuple"],tokens:!0,ranges:!0},q0i="v8intrinsic",$0i=[["pipelineOperator",{proposal:"hack",topicToken:"%"}],["pipelineOperator",{proposal:"fsharp"}]],lee=(e,t=z5a)=>({...t,plugins:[...t.plugins,...e]}),q5a=/@(?:no)?flow\b/u;function $5a(e,t){var r;if((r=t.filepath)!=null&&r.endsWith(".js.flow"))return!0;let n=cyi(e);n&&(e=e.slice(n.length));let a=A5a(e,0);return a!==!1&&(e=e.slice(0,a)),q5a.test(e)}function eMa(e,t,r){let n=e(t,r),a=n.errors.find(o=>!rMa.has(o.reasonCode));if(a)throw a;return n}function tMa({isExpression:e=!1,optionsCombinations:t}){return(r,n={})=>{if((n.parser==="babel"||n.parser==="__babel_estree")&&$5a(r,n))return n.parser="babel-flow",pyi.parse(r,n);let a=t;(n.__babelSourceType??K5a(n))==="script"&&(a=a.map(f=>({...f,sourceType:"script"})));let o=/%[A-Z]/u.test(r);r.includes("|>")?a=(o?[...$0i,q0i]:$0i).flatMap(f=>a.map(I=>lee([f],I))):o&&(a=a.map(f=>lee([q0i],f)));let l=e?J0i.parseExpression:J0i.parse,A;try{A=p5a(a.map(f=>()=>eMa(l,r,f)))}catch({errors:[f]}){throw gyi(f)}return e&&(A=Ayi(A,{text:r,rootMarker:n.rootMarker})),k5a(A,{parser:"babel",text:r})}}var rMa=new Set(["StrictNumericEscape","StrictWith","StrictOctalLiteral","StrictDelete","StrictEvalArguments","StrictEvalArgumentsBinding","StrictFunction","ForInOfLoopInitializer","EmptyTypeArguments","EmptyTypeParameters","ConstructorHasTypeParameters","UnsupportedParameterPropertyKind","DecoratorExportClass","ParamDupe","InvalidDecimal","RestTrailingComma","UnsupportedParameterDecorator","UnterminatedJsxContent","UnexpectedReservedWord","ModuleAttributesWithDuplicateKeys","LineTerminatorBeforeArrow","InvalidEscapeSequenceTemplate","NonAbstractClassHasAbstractMethod","OptionalTypeBeforeRequired","PatternIsOptional","OptionalBindingPattern","DeclareClassFieldHasInitializer","TypeImportCannotSpecifyDefaultAndNamed","ConstructorClassField","VarRedeclaration","InvalidPrivateFieldResolution","DuplicateExport","ImportAttributesUseAssert"]),dyi=[lee(["jsx"])],eyi=xRe({optionsCombinations:dyi}),tyi=xRe({optionsCombinations:[lee(["jsx","typescript"]),lee(["typescript"])]}),ryi=xRe({isExpression:!0,optionsCombinations:[lee(["jsx"])]}),nyi=xRe({isExpression:!0,optionsCombinations:[lee(["typescript"])]}),pyi=xRe({optionsCombinations:[lee(["jsx",["flow",{all:!0}],"flowComments"])]}),nMa=xRe({optionsCombinations:dyi.map(e=>lee(["estree"],e))}),iMa={babel:eyi,"babel-flow":pyi,"babel-ts":tyi,__js_expression:ryi,__ts_expression:nyi,__vue_expression:ryi,__vue_ts_expression:nyi,__vue_event_binding:eyi,__vue_ts_event_binding:tyi,__babel_estree:nMa},sMa=iyi(syi(),1);function fyi(e={}){let{allowComments:t=!0}=e;return function(r){let n;try{n=(0,sMa.parseExpression)(r,{tokens:!0,ranges:!0,attachComment:!1})}catch(a){throw gyi(a)}if(!t&&CTr(n.comments))throw $ae(n.comments[0],"Comment");return kRe(n),Ayi(n,{type:"JsonRoot",text:r})}}function $ae(e,t){let[r,n]=[e.loc.start,e.loc.end].map(({line:a,column:o})=>({line:a,column:o+1}));return uyi(`${t} is not allowed in JSON.`,{loc:{start:r,end:n}})}function kRe(e){switch(e.type){case"ArrayExpression":for(let t of e.elements)t!==null&&kRe(t);return;case"ObjectExpression":for(let t of e.properties)kRe(t);return;case"ObjectProperty":if(e.computed)throw $ae(e.key,"Computed key");if(e.shorthand)throw $ae(e.key,"Shorthand property");e.key.type!=="Identifier"&&kRe(e.key),kRe(e.value);return;case"UnaryExpression":{let{operator:t,argument:r}=e;if(t!=="+"&&t!=="-")throw $ae(e,`Operator '${e.operator}'`);if(r.type==="NumericLiteral"||r.type==="Identifier"&&(r.name==="Infinity"||r.name==="NaN"))return;throw $ae(r,`Operator '${t}' before '${r.type}'`)}case"Identifier":if(e.name!=="Infinity"&&e.name!=="NaN"&&e.name!=="undefined")throw $ae(e,`Identifier '${e.name}'`);return;case"TemplateLiteral":if(CTr(e.expressions))throw $ae(e.expressions[0],"'TemplateLiteral' with expression");for(let t of e.quasis)kRe(t);return;case"NullLiteral":case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"TemplateElement":return;default:throw $ae(e,`'${e.type}'`)}}var pTr=fyi(),oMa={json:_4e({parse:pTr,hasPragma(){return!0}}),json5:_4e(pTr),jsonc:_4e(pTr),"json-stringify":_4e({parse:fyi({allowComments:!1}),astFormat:"estree-json"})},aMa=oMa,GRe={...iMa,...aMa},cMa=ayi;var vme={};sI(vme,{default:()=>mJa,languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var lMa=Object.defineProperty,Oyi=e=>{throw TypeError(e)},tbt=(e,t)=>{for(var r in t)lMa(e,r,{get:t[r],enumerable:!0})},Myi=(e,t,r)=>t.has(e)||Oyi("Cannot "+r),ece=(e,t,r)=>(Myi(e,t,"read from private field"),r?r.call(e):t.get(e)),uMa=(e,t,r)=>t.has(e)?Oyi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),gMa=(e,t,r,n)=>(Myi(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),Hyi={};tbt(Hyi,{languages:()=>qEi,options:()=>zEi,printers:()=>qRe});var AMa=[{linguistLanguageId:183,name:"JavaScript",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:["js","node"],extensions:[".js","._js",".bones",".cjs",".es",".es6",".frag",".gs",".jake",".javascript",".jsb",".jscad",".jsfl",".jslib",".jsm",".jspre",".jss",".mjs",".njs",".pac",".sjs",".ssjs",".xsjs",".xsjslib",".wxs"],filenames:["Jakefile"],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell","zx"],parsers:["babel","acorn","espree","meriyah","babel-flow","babel-ts","flow","typescript"],vscodeLanguageIds:["javascript","mongo"]},{linguistLanguageId:183,name:"Flow",type:"programming",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",color:"#f1e05a",aliases:[],extensions:[".js.flow"],filenames:[],interpreters:["chakra","d8","gjs","js","node","nodejs","qjs","rhino","v8","v8-shell"],parsers:["flow","babel-flow"],vscodeLanguageIds:["javascript"]},{linguistLanguageId:183,name:"JSX",type:"programming",tmScope:"source.js.jsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",color:void 0,aliases:void 0,extensions:[".jsx"],filenames:void 0,interpreters:void 0,parsers:["babel","babel-flow","babel-ts","flow","typescript","espree","meriyah"],vscodeLanguageIds:["javascriptreact"],group:"JavaScript"},{linguistLanguageId:378,name:"TypeScript",type:"programming",color:"#3178c6",aliases:["ts"],interpreters:["deno","ts-node"],extensions:[".ts",".cts",".mts"],tmScope:"source.ts",aceMode:"typescript",codemirrorMode:"javascript",codemirrorMimeType:"application/typescript",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescript"]},{linguistLanguageId:94901924,name:"TSX",type:"programming",color:"#3178c6",group:"TypeScript",extensions:[".tsx"],tmScope:"source.tsx",aceMode:"javascript",codemirrorMode:"jsx",codemirrorMimeType:"text/jsx",parsers:["typescript","babel-ts"],vscodeLanguageIds:["typescriptreact"]}],Yyi={};tbt(Yyi,{canAttachComment:()=>mYa,embed:()=>sQa,experimentalFeatures:()=>lJa,getCommentChildNodes:()=>CYa,getVisitorKeys:()=>Uyi,handleComments:()=>fbi,insertPragma:()=>mQa,isBlockComment:()=>zM,isGap:()=>_Ya,massageAstNode:()=>hHa,print:()=>cJa,printComment:()=>ZHa,willPrintOwnComments:()=>Bbi});var dMa=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},Zk=dMa,pMa=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},U0=pMa;function fMa(e){return e!==null&&typeof e=="object"}var IMa=fMa;function*hMa(e,t){let{getVisitorKeys:r,filter:n=()=>!0}=t,a=o=>IMa(o)&&n(o);for(let o of r(e)){let l=e[o];if(Array.isArray(l))for(let A of l)a(A)&&(yield A);else a(l)&&(yield l)}}function*mMa(e,t){let r=[e];for(let n=0;n/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;function yMa(e){return e===12288||e>=65281&&e<=65376||e>=65504&&e<=65510}function bMa(e){return e>=4352&&e<=4447||e===8986||e===8987||e===9001||e===9002||e>=9193&&e<=9196||e===9200||e===9203||e===9725||e===9726||e===9748||e===9749||e>=9776&&e<=9783||e>=9800&&e<=9811||e===9855||e>=9866&&e<=9871||e===9875||e===9889||e===9898||e===9899||e===9917||e===9918||e===9924||e===9925||e===9934||e===9940||e===9962||e===9970||e===9971||e===9973||e===9978||e===9981||e===9989||e===9994||e===9995||e===10024||e===10060||e===10062||e>=10067&&e<=10069||e===10071||e>=10133&&e<=10135||e===10160||e===10175||e===11035||e===11036||e===11088||e===11093||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12287||e>=12289&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12591||e>=12593&&e<=12686||e>=12688&&e<=12773||e>=12783&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=94176&&e<=94180||e===94192||e===94193||e>=94208&&e<=100343||e>=100352&&e<=101589||e>=101631&&e<=101640||e>=110576&&e<=110579||e>=110581&&e<=110587||e===110589||e===110590||e>=110592&&e<=110882||e===110898||e>=110928&&e<=110930||e===110933||e>=110948&&e<=110951||e>=110960&&e<=111355||e>=119552&&e<=119638||e>=119648&&e<=119670||e===126980||e===127183||e===127374||e>=127377&&e<=127386||e>=127488&&e<=127490||e>=127504&&e<=127547||e>=127552&&e<=127560||e===127568||e===127569||e>=127584&&e<=127589||e>=127744&&e<=127776||e>=127789&&e<=127797||e>=127799&&e<=127868||e>=127870&&e<=127891||e>=127904&&e<=127946||e>=127951&&e<=127955||e>=127968&&e<=127984||e===127988||e>=127992&&e<=128062||e===128064||e>=128066&&e<=128252||e>=128255&&e<=128317||e>=128331&&e<=128334||e>=128336&&e<=128359||e===128378||e===128405||e===128406||e===128420||e>=128507&&e<=128591||e>=128640&&e<=128709||e===128716||e>=128720&&e<=128722||e>=128725&&e<=128727||e>=128732&&e<=128735||e===128747||e===128748||e>=128756&&e<=128764||e>=128992&&e<=129003||e===129008||e>=129292&&e<=129338||e>=129340&&e<=129349||e>=129351&&e<=129535||e>=129648&&e<=129660||e>=129664&&e<=129673||e>=129679&&e<=129734||e>=129742&&e<=129756||e>=129759&&e<=129769||e>=129776&&e<=129784||e>=131072&&e<=196605||e>=196608&&e<=262141}var EMa=e=>!(yMa(e)||bMa(e)),SMa=/[^\x20-\x7F]/u;function vMa(e){if(!e)return 0;if(!SMa.test(e))return e.length;e=e.replace(_Ma()," ");let t=0;for(let r of e){let n=r.codePointAt(0);n<=31||n>=127&&n<=159||n>=768&&n<=879||(t+=EMa(n)?1:2)}return t}var WRe=vMa;function rbt(e){return(t,r,n)=>{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l=f&&o(C)<=I&&l.add(C);return r.slice(f,I)}var _Qa=CQa;function WTr(e,t){var r,n,a,o,l,A,f,I,C;if(e.isRoot)return!1;let{node:b,key:E,parent:N}=e;if(t.__isInHtmlInterpolation&&!t.bracketSpacing&&SQa(b)&&S4e(e))return!0;if(yQa(b))return!1;if(b.type==="Identifier"){if((r=b.extra)!=null&&r.parenthesized&&/^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/u.test(b.name)||E==="left"&&(b.name==="async"&&!N.await||b.name==="let")&&N.type==="ForOfStatement")return!0;if(b.name==="let"){let B=(n=e.findAncestor(F=>F.type==="ForOfStatement"))==null?void 0:n.left;if(B&&JZ(B,F=>F===b))return!0}if(E==="object"&&b.name==="let"&&N.type==="MemberExpression"&&N.computed&&!N.optional){let B=e.findAncestor(Q=>Q.type==="ExpressionStatement"||Q.type==="ForStatement"||Q.type==="ForInStatement"),F=B?B.type==="ExpressionStatement"?B.expression:B.type==="ForStatement"?B.init:B.left:void 0;if(F&&JZ(F,Q=>Q===b))return!0}if(E==="expression")switch(b.name){case"await":case"interface":case"module":case"using":case"yield":case"let":case"component":case"hook":case"type":{let B=e.findAncestor(F=>!nj(F));if(B!==N&&B.type==="ExpressionStatement")return!0}}return!1}if(b.type==="ObjectExpression"||b.type==="FunctionExpression"||b.type==="ClassExpression"||b.type==="DoExpression"){let B=(a=e.findAncestor(F=>F.type==="ExpressionStatement"))==null?void 0:a.expression;if(B&&JZ(B,F=>F===b))return!0}if(b.type==="ObjectExpression"){let B=(o=e.findAncestor(F=>F.type==="ArrowFunctionExpression"))==null?void 0:o.body;if(B&&B.type!=="SequenceExpression"&&B.type!=="AssignmentExpression"&&JZ(B,F=>F===b))return!0}switch(N.type){case"ParenthesizedExpression":return!1;case"ClassDeclaration":case"ClassExpression":if(E==="superClass"&&(b.type==="ArrowFunctionExpression"||b.type==="AssignmentExpression"||b.type==="AwaitExpression"||b.type==="BinaryExpression"||b.type==="ConditionalExpression"||b.type==="LogicalExpression"||b.type==="NewExpression"||b.type==="ObjectExpression"||b.type==="SequenceExpression"||b.type==="TaggedTemplateExpression"||b.type==="UnaryExpression"||b.type==="UpdateExpression"||b.type==="YieldExpression"||b.type==="TSNonNullExpression"||b.type==="ClassExpression"&&H_(b.decorators)))return!0;break;case"ExportDefaultDeclaration":return Zbi(e,t)||b.type==="SequenceExpression";case"Decorator":if(E==="expression"&&!BQa(b))return!0;break;case"TypeAnnotation":if(e.match(void 0,void 0,(B,F)=>F==="returnType"&&B.type==="ArrowFunctionExpression")&&EQa(b))return!0;break;case"BinaryExpression":if(E==="left"&&(N.operator==="in"||N.operator==="instanceof")&&b.type==="UnaryExpression")return!0;break;case"VariableDeclarator":if(E==="init"&&e.match(void 0,void 0,(B,F)=>F==="declarations"&&B.type==="VariableDeclaration",(B,F)=>F==="left"&&B.type==="ForInStatement"))return!0;break}switch(b.type){case"UpdateExpression":if(N.type==="UnaryExpression")return b.prefix&&(b.operator==="++"&&N.operator==="+"||b.operator==="--"&&N.operator==="-");case"UnaryExpression":switch(N.type){case"UnaryExpression":return b.operator===N.operator&&(b.operator==="+"||b.operator==="-");case"BindExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"TaggedTemplateExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"BinaryExpression":return E==="left"&&N.operator==="**";case"TSNonNullExpression":return!0;default:return!1}case"BinaryExpression":if(N.type==="UpdateExpression"||b.operator==="in"&&bQa(e))return!0;if(b.operator==="|>"&&(l=b.extra)!=null&&l.parenthesized){let B=e.grandparent;if(B.type==="BinaryExpression"&&B.operator==="|>")return!0}case"TSTypeAssertion":case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"LogicalExpression":switch(N.type){case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return!nj(b);case"ConditionalExpression":return nj(b)||eHa(b);case"CallExpression":case"NewExpression":case"OptionalCallExpression":return E==="callee";case"ClassExpression":case"ClassDeclaration":return E==="superClass";case"TSTypeAssertion":case"TaggedTemplateExpression":case"UnaryExpression":case"JSXSpreadAttribute":case"SpreadElement":case"BindExpression":case"AwaitExpression":case"TSNonNullExpression":case"UpdateExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"AssignmentExpression":case"AssignmentPattern":return E==="left"&&(b.type==="TSTypeAssertion"||nj(b));case"LogicalExpression":if(b.type==="LogicalExpression")return N.operator!==b.operator;case"BinaryExpression":{let{operator:B,type:F}=b;if(!B&&F!=="TSTypeAssertion")return!0;let Q=jyt(B),X=N.operator,ae=jyt(X);return ae>Q||E==="right"&&ae===Q||ae===Q&&!tRr(X,B)?!0:ae");default:return!1}case"TSFunctionType":if(e.match(B=>B.type==="TSFunctionType",(B,F)=>F==="typeAnnotation"&&B.type==="TSTypeAnnotation",(B,F)=>F==="returnType"&&B.type==="ArrowFunctionExpression"))return!0;case"TSConditionalType":case"TSConstructorType":case"ConditionalTypeAnnotation":if(E==="extendsType"&&oce(b)&&N.type===b.type||E==="checkType"&&oce(N))return!0;if(E==="extendsType"&&N.type==="TSConditionalType"){let{typeAnnotation:B}=b.returnType||b.typeAnnotation;if(B.type==="TSTypePredicate"&&B.typeAnnotation&&(B=B.typeAnnotation.typeAnnotation),B.type==="TSInferType"&&B.typeParameter.constraint)return!0}case"TSUnionType":case"TSIntersectionType":if((sce(N)||rRr(N))&&N.types.length>1&&(!b.types||b.types.length>1))return!0;case"TSInferType":if(b.type==="TSInferType"){if(N.type==="TSRestType")return!1;if(E==="types"&&(N.type==="TSUnionType"||N.type==="TSIntersectionType")&&b.typeParameter.type==="TSTypeParameter"&&b.typeParameter.constraint)return!0}case"TSTypeOperator":return N.type==="TSArrayType"||N.type==="TSOptionalType"||N.type==="TSRestType"||E==="objectType"&&N.type==="TSIndexedAccessType"||N.type==="TSTypeOperator"||N.type==="TSTypeAnnotation"&&e.grandparent.type.startsWith("TSJSDoc");case"TSTypeQuery":return E==="objectType"&&N.type==="TSIndexedAccessType"||E==="elementType"&&N.type==="TSArrayType";case"TypeOperator":return N.type==="ArrayTypeAnnotation"||N.type==="NullableTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType")||N.type==="TypeOperator";case"TypeofTypeAnnotation":return E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType")||E==="elementType"&&N.type==="ArrayTypeAnnotation";case"ArrayTypeAnnotation":return N.type==="NullableTypeAnnotation";case"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return N.type==="TypeOperator"||N.type==="ArrayTypeAnnotation"||N.type==="NullableTypeAnnotation"||N.type==="IntersectionTypeAnnotation"||N.type==="UnionTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType");case"InferTypeAnnotation":case"NullableTypeAnnotation":return N.type==="ArrayTypeAnnotation"||E==="objectType"&&(N.type==="IndexedAccessType"||N.type==="OptionalIndexedAccessType");case"ComponentTypeAnnotation":case"FunctionTypeAnnotation":{if(b.type==="ComponentTypeAnnotation"&&(b.rendersType===null||b.rendersType===void 0))return!1;if(e.match(void 0,(F,Q)=>Q==="typeAnnotation"&&F.type==="TypeAnnotation",(F,Q)=>Q==="returnType"&&F.type==="ArrowFunctionExpression")||e.match(void 0,(F,Q)=>Q==="typeAnnotation"&&F.type==="TypePredicate",(F,Q)=>Q==="typeAnnotation"&&F.type==="TypeAnnotation",(F,Q)=>Q==="returnType"&&F.type==="ArrowFunctionExpression"))return!0;let B=N.type==="NullableTypeAnnotation"?e.grandparent:N;return B.type==="UnionTypeAnnotation"||B.type==="IntersectionTypeAnnotation"||B.type==="ArrayTypeAnnotation"||E==="objectType"&&(B.type==="IndexedAccessType"||B.type==="OptionalIndexedAccessType")||E==="checkType"&&N.type==="ConditionalTypeAnnotation"||E==="extendsType"&&N.type==="ConditionalTypeAnnotation"&&((A=b.returnType)==null?void 0:A.type)==="InferTypeAnnotation"&&((f=b.returnType)==null?void 0:f.typeParameter.bound)||B.type==="NullableTypeAnnotation"||N.type==="FunctionTypeParam"&&N.name===null&&NG(b).some(F=>{var Q;return((Q=F.typeAnnotation)==null?void 0:Q.type)==="NullableTypeAnnotation"})}case"OptionalIndexedAccessType":return E==="objectType"&&N.type==="IndexedAccessType";case"StringLiteral":case"NumericLiteral":case"Literal":if(typeof b.value=="string"&&N.type==="ExpressionStatement"&&!N.directive){let B=e.grandparent;return B.type==="Program"||B.type==="BlockStatement"}return E==="object"&&N.type==="MemberExpression"&&typeof b.value=="number";case"AssignmentExpression":{let B=e.grandparent;return E==="body"&&N.type==="ArrowFunctionExpression"?!0:E==="key"&&(N.type==="ClassProperty"||N.type==="PropertyDefinition")&&N.computed||(E==="init"||E==="update")&&N.type==="ForStatement"?!1:N.type==="ExpressionStatement"?b.left.type==="ObjectPattern":!(E==="key"&&N.type==="TSPropertySignature"||N.type==="AssignmentExpression"||N.type==="SequenceExpression"&&B.type==="ForStatement"&&(B.init===N||B.update===N)||E==="value"&&N.type==="Property"&&B.type==="ObjectPattern"&&B.properties.includes(N)||N.type==="NGChainedExpression"||E==="node"&&N.type==="JsExpressionRoot")}case"ConditionalExpression":switch(N.type){case"TaggedTemplateExpression":case"UnaryExpression":case"SpreadElement":case"BinaryExpression":case"LogicalExpression":case"NGPipeExpression":case"ExportDefaultDeclaration":case"AwaitExpression":case"JSXSpreadAttribute":case"TSTypeAssertion":case"TypeCastExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"TSNonNullExpression":return!0;case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"ConditionalExpression":return t.experimentalTernaries?!1:E==="test";case"MemberExpression":case"OptionalMemberExpression":return E==="object";default:return!1}case"FunctionExpression":switch(N.type){case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"TaggedTemplateExpression":return!0;default:return!1}case"ArrowFunctionExpression":switch(N.type){case"BinaryExpression":return N.operator!=="|>"||((I=b.extra)==null?void 0:I.parenthesized);case"NewExpression":case"CallExpression":case"OptionalCallExpression":return E==="callee";case"MemberExpression":case"OptionalMemberExpression":return E==="object";case"TSAsExpression":case"TSSatisfiesExpression":case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":case"TSNonNullExpression":case"BindExpression":case"TaggedTemplateExpression":case"UnaryExpression":case"LogicalExpression":case"AwaitExpression":case"TSTypeAssertion":return!0;case"ConditionalExpression":return E==="test";default:return!1}case"ClassExpression":switch(N.type){case"NewExpression":return E==="callee";default:return!1}case"OptionalMemberExpression":case"OptionalCallExpression":case"CallExpression":case"MemberExpression":if(vQa(e))return!0;case"TaggedTemplateExpression":case"TSNonNullExpression":if(E==="callee"&&(N.type==="BindExpression"||N.type==="NewExpression")){let B=b;for(;B;)switch(B.type){case"CallExpression":case"OptionalCallExpression":return!0;case"MemberExpression":case"OptionalMemberExpression":case"BindExpression":B=B.object;break;case"TaggedTemplateExpression":B=B.tag;break;case"TSNonNullExpression":B=B.expression;break;default:return!1}}return!1;case"BindExpression":return E==="callee"&&(N.type==="BindExpression"||N.type==="NewExpression")||E==="object"&&Yv(N);case"NGPipeExpression":return!(N.type==="NGRoot"||N.type==="NGMicrosyntaxExpression"||N.type==="ObjectProperty"&&!((C=b.extra)!=null&&C.parenthesized)||Vk(N)||E==="arguments"&&b_(N)||E==="right"&&N.type==="NGPipeExpression"||E==="property"&&N.type==="MemberExpression"||N.type==="AssignmentExpression");case"JSXFragment":case"JSXElement":return E==="callee"||E==="left"&&N.type==="BinaryExpression"&&N.operator==="<"||!Vk(N)&&N.type!=="ArrowFunctionExpression"&&N.type!=="AssignmentExpression"&&N.type!=="AssignmentPattern"&&N.type!=="BinaryExpression"&&N.type!=="NewExpression"&&N.type!=="ConditionalExpression"&&N.type!=="ExpressionStatement"&&N.type!=="JsExpressionRoot"&&N.type!=="JSXAttribute"&&N.type!=="JSXElement"&&N.type!=="JSXExpressionContainer"&&N.type!=="JSXFragment"&&N.type!=="LogicalExpression"&&!b_(N)&&!Iee(N)&&N.type!=="ReturnStatement"&&N.type!=="ThrowStatement"&&N.type!=="TypeCastExpression"&&N.type!=="VariableDeclarator"&&N.type!=="YieldExpression";case"TSInstantiationExpression":return E==="object"&&Yv(N)}return!1}var yQa=_0(["BlockStatement","BreakStatement","ComponentDeclaration","ClassBody","ClassDeclaration","ClassMethod","ClassProperty","PropertyDefinition","ClassPrivateProperty","ContinueStatement","DebuggerStatement","DeclareComponent","DeclareClass","DeclareExportAllDeclaration","DeclareExportDeclaration","DeclareFunction","DeclareHook","DeclareInterface","DeclareModule","DeclareModuleExports","DeclareNamespace","DeclareVariable","DeclareEnum","DoWhileStatement","EnumDeclaration","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExpressionStatement","ForInStatement","ForOfStatement","ForStatement","FunctionDeclaration","HookDeclaration","IfStatement","ImportDeclaration","InterfaceDeclaration","LabeledStatement","MethodDefinition","ReturnStatement","SwitchStatement","ThrowStatement","TryStatement","TSDeclareFunction","TSEnumDeclaration","TSImportEqualsDeclaration","TSInterfaceDeclaration","TSModuleDeclaration","TSNamespaceExportDeclaration","TypeAlias","VariableDeclaration","WhileStatement","WithStatement"]);function bQa(e){let t=0,{node:r}=e;for(;r;){let n=e.getParentNode(t++);if(n?.type==="ForStatement"&&n.init===r)return!0;r=n}return!1}function EQa(e){return DTr(e,t=>t.type==="ObjectTypeAnnotation"&&DTr(t,r=>r.type==="FunctionTypeAnnotation"))}function SQa(e){return e4(e)}function S4e(e){let{parent:t,key:r}=e;switch(t.type){case"NGPipeExpression":if(r==="arguments"&&e.isLast)return e.callParent(S4e);break;case"ObjectProperty":if(r==="value")return e.callParent(()=>e.key==="properties"&&e.isLast);break;case"BinaryExpression":case"LogicalExpression":if(r==="right")return e.callParent(S4e);break;case"ConditionalExpression":if(r==="alternate")return e.callParent(S4e);break;case"UnaryExpression":if(t.prefix)return e.callParent(S4e);break}return!1}function Zbi(e,t){let{node:r,parent:n}=e;return r.type==="FunctionExpression"||r.type==="ClassExpression"?n.type==="ExportDefaultDeclaration"||!WTr(e,t):!zTr(r)||n.type!=="ExportDefaultDeclaration"&&WTr(e,t)?!1:e.call(()=>Zbi(e,t),...zyi(r))}function vQa(e){return!!(e.match(void 0,(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(void 0,(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(void 0,(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="tag"&&t.type==="TaggedTemplateExpression")||e.match(t=>t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&(t.type==="CallExpression"||t.type==="NewExpression"))||e.match(t=>t.type==="OptionalMemberExpression"||t.type==="OptionalCallExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression")||e.match(t=>t.type==="CallExpression"||t.type==="MemberExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression")&&(e.match(void 0,void 0,(t,r)=>r==="callee"&&(t.type==="CallExpression"&&!t.optional||t.type==="NewExpression")||r==="object"&&t.type==="MemberExpression"&&!t.optional)||e.match(void 0,void 0,(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression"))||e.match(t=>t.type==="CallExpression"||t.type==="MemberExpression",(t,r)=>r==="expression"&&t.type==="TSNonNullExpression",(t,r)=>r==="expression"&&t.type==="ChainExpression",(t,r)=>r==="object"&&t.type==="MemberExpression"||r==="callee"&&t.type==="CallExpression"))}function OTr(e){return e.type==="Identifier"?!0:Yv(e)?!e.computed&&!e.optional&&e.property.type==="Identifier"&&OTr(e.object):!1}function BQa(e){return e.type==="ChainExpression"&&(e=e.expression),OTr(e)||b_(e)&&!e.optional&&OTr(e.callee)}var Eme=WTr;function wQa(e,t){let r=t-1;r=ORe(e,r,{backwards:!0}),r=MRe(e,r,{backwards:!0}),r=ORe(e,r,{backwards:!0});let n=MRe(e,r,{backwards:!0});return r!==n}var TQa=wQa,RQa=()=>!0;function ARr(e,t){let r=e.node;return r.printed=!0,t.printer.printComment(e,t)}function NQa(e,t){var r;let n=e.node,a=[ARr(e,t)],{printer:o,originalText:l,locStart:A,locEnd:f}=t;if((r=o.isBlockComment)!=null&&r.call(o,n)){let C=dO(l,f(n))?dO(l,A(n),{backwards:!0})?xl:zg:" ";a.push(C)}else a.push(xl);let I=MRe(l,ORe(l,f(n)));return I!==!1&&dO(l,I)&&a.push(xl),a}function DQa(e,t,r){var n;let a=e.node,o=ARr(e,t),{printer:l,originalText:A,locStart:f}=t,I=(n=l.isBlockComment)==null?void 0:n.call(l,a);if(r!=null&&r.hasLineSuffix&&!(r!=null&&r.isBlock)||dO(A,f(a),{backwards:!0})){let C=TQa(A,f(a));return{doc:Eyi([xl,C?xl:"",o]),isBlock:I,hasLineSuffix:!0}}return!I||r!=null&&r.hasLineSuffix?{doc:[Eyi([" ",o]),aj],isBlock:I,hasLineSuffix:!0}:{doc:[" ",o],isBlock:I,hasLineSuffix:!1}}function N2(e,t,r={}){let{node:n}=e;if(!H_(n?.comments))return"";let{indent:a=!1,marker:o,filter:l=RQa}=r,A=[];if(e.each(({node:I})=>{I.leading||I.trailing||I.marker!==o||!l(I)||A.push(ARr(e,t))},"comments"),A.length===0)return"";let f=vC(xl,A);return a?Pl([xl,f]):f}function Lbi(e,t){let r=e.node;if(!r)return{};let n=t[Symbol.for("printedComments")];if((r.comments||[]).filter(A=>!n.has(A)).length===0)return{leading:"",trailing:""};let a=[],o=[],l;return e.each(()=>{let A=e.node;if(n!=null&&n.has(A))return;let{leading:f,trailing:I}=A;f?a.push(NQa(e,t)):I&&(l=DQa(e,t,l),o.push(l.doc))},"comments"),{leading:a,trailing:o}}function $X(e,t,r){let{leading:n,trailing:a}=Lbi(e,r);return!n&&!a?t:GTr(t,o=>[n,o,a])}var kQa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},jRe=kQa;function xQa(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}var zX,GQa=class{constructor(e){uMa(this,zX),gMa(this,zX,new Set(e))}getLeadingWhitespaceCount(e){let t=ece(this,zX),r=0;for(let n=0;n=0&&t.has(e.charAt(n));n--)r++;return r}getLeadingWhitespace(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(0,t)}getTrailingWhitespace(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(e.length-t)}hasLeadingWhitespace(e){return ece(this,zX).has(e.charAt(0))}hasTrailingWhitespace(e){return ece(this,zX).has(U0(!1,e,-1))}trimStart(e){let t=this.getLeadingWhitespaceCount(e);return e.slice(t)}trimEnd(e){let t=this.getTrailingWhitespaceCount(e);return e.slice(0,e.length-t)}trim(e){return this.trimEnd(this.trimStart(e))}split(e,t=!1){let r=`[${xQa([...ece(this,zX)].join(""))}]+`,n=new RegExp(t?`(${r})`:r,"u");return e.split(n)}hasWhitespaceCharacter(e){let t=ece(this,zX);return Array.prototype.some.call(e,r=>t.has(r))}hasNonWhitespaceCharacter(e){let t=ece(this,zX);return Array.prototype.some.call(e,r=>!t.has(r))}isWhitespaceOnly(e){let t=ece(this,zX);return Array.prototype.every.call(e,r=>t.has(r))}};zX=new WeakMap;var FQa=GQa,Jyt=new FQa(` \r `),vTr=e=>e===""||e===zg||e===xl||e===bl;function ZQa(e,t,r){var n,a,o,l,A;let{node:f}=e;if(f.type==="JSXElement"&&zQa(f))return[r("openingElement"),r("closingElement")];let I=f.type==="JSXElement"?r("openingElement"):r("openingFragment"),C=f.type==="JSXElement"?r("closingElement"):r("closingFragment");if(f.children.length===1&&f.children[0].type==="JSXExpressionContainer"&&(f.children[0].expression.type==="TemplateLiteral"||f.children[0].expression.type==="TaggedTemplateExpression"))return[I,...e.map(r,"children"),C];f.children=f.children.map(be=>qQa(be)?{type:"JSXText",value:" ",raw:" "}:be);let b=f.children.some(nD),E=f.children.filter(be=>be.type==="JSXExpressionContainer").length>1,N=f.type==="JSXElement"&&f.openingElement.attributes.length>1,B=UZ(I)||b||N||E,F=e.parent.rootMarker==="mdx",Q=t.singleQuote?"{' '}":'{" "}',X=F?zg:lh([Q,bl]," "),ae=((a=(n=f.openingElement)==null?void 0:n.name)==null?void 0:a.name)==="fbt",ne=LQa(e,t,r,X,ae),ce=f.children.some(be=>N4e(be));for(let be=ne.length-2;be>=0;be--){let Se=ne[be]===""&&ne[be+1]==="",De=ne[be]===xl&&ne[be+1]===""&&ne[be+2]===xl,k=(ne[be]===bl||ne[be]===xl)&&ne[be+1]===""&&ne[be+2]===X,et=ne[be]===X&&ne[be+1]===""&&(ne[be+2]===bl||ne[be+2]===xl),ct=ne[be]===X&&ne[be+1]===""&&ne[be+2]===X,Me=ne[be]===bl&&ne[be+1]===""&&ne[be+2]===xl||ne[be]===xl&&ne[be+1]===""&&ne[be+2]===bl;De&&ce||Se||k||ct||Me?ne.splice(be,2):et&&ne.splice(be+1,2)}for(;ne.length>0&&vTr(U0(!1,ne,-1));)ne.pop();for(;ne.length>1&&vTr(ne[0])&&vTr(ne[1]);)ne.shift(),ne.shift();let fe=[""];for(let[be,Se]of ne.entries()){if(Se===X){if(be===1&&RHa(ne[be-1])){if(ne.length===2){fe.push([fe.pop(),Q]);continue}fe.push([Q,xl],"");continue}else if(be===ne.length-1){fe.push([fe.pop(),Q]);continue}else if(ne[be-1]===""&&ne[be-2]===xl){fe.push([fe.pop(),Q]);continue}}be%2===0?fe.push([fe.pop(),Se]):fe.push(Se,""),UZ(Se)&&(B=!0)}let ue=ce?Abi(fe):Ia(fe,{shouldBreak:!0});if(((o=t.cursorNode)==null?void 0:o.type)==="JSXText"&&f.children.includes(t.cursorNode)?ue=[Yyt,ue,Yyt]:((l=t.nodeBeforeCursor)==null?void 0:l.type)==="JSXText"&&f.children.includes(t.nodeBeforeCursor)?ue=[Yyt,ue]:((A=t.nodeAfterCursor)==null?void 0:A.type)==="JSXText"&&f.children.includes(t.nodeAfterCursor)&&(ue=[ue,Yyt]),F)return ue;let de=Ia([I,Pl([xl,ue]),xl,C]);return B?de:dme([Ia([I,...ne,C]),de])}function LQa(e,t,r,n,a){let o="",l=[o];function A(I){o=I,l.push([l.pop(),I])}function f(I){I!==""&&(o=I,l.push(I,""))}return e.each(({node:I,next:C})=>{if(I.type==="JSXText"){let b=UM(I);if(N4e(I)){let E=Jyt.split(b,!0);E[0]===""&&(E.shift(),/\n/u.test(E[0])?f(Ryi(a,E[1],I,C)):f(n),E.shift());let N;if(U0(!1,E,-1)===""&&(E.pop(),N=E.pop()),E.length===0)return;for(let[B,F]of E.entries())B%2===1?f(zg):A(F);N!==void 0?/\n/u.test(N)?f(Ryi(a,o,I,C)):f(n):f(Tyi(a,o,I,C))}else/\n/u.test(b)?b.match(/\n/gu).length>1&&f(xl):f(n)}else{let b=r();if(A(b),C&&N4e(C)){let E=Jyt.trim(UM(C)),[N]=Jyt.split(E);f(Tyi(a,N,I,C))}else f(xl)}},"children"),l}function Tyi(e,t,r,n){return e?"":r.type==="JSXElement"&&!r.closingElement||n?.type==="JSXElement"&&!n.closingElement?t.length===1?bl:xl:bl}function Ryi(e,t,r,n){return e?xl:t.length===1?r.type==="JSXElement"&&!r.closingElement||n?.type==="JSXElement"&&!n.closingElement?xl:bl:xl}var VQa=new Set(["ArrayExpression","TupleExpression","JSXAttribute","JSXElement","JSXExpressionContainer","JSXFragment","ExpressionStatement","CallExpression","OptionalCallExpression","ConditionalExpression","JsExpressionRoot"]);function PQa(e,t,r){let{parent:n}=e;if(VQa.has(n.type))return t;let a=e.match(void 0,l=>l.type==="ArrowFunctionExpression",b_,l=>l.type==="JSXExpressionContainer"),o=Eme(e,r);return Ia([o?"":lh("("),Pl([bl,t]),bl,o?"":lh(")")],{shouldBreak:a})}function WQa(e,t,r){let{node:n}=e,a=[];if(a.push(r("name")),n.value){let o;if(gV(n.value)){let l=UM(n.value),A=Zk(!1,Zk(!1,l.slice(1,-1),"'","'"),""",'"'),f=Xyi(A,t.jsxSingleQuote);A=f==='"'?Zk(!1,A,'"',"""):Zk(!1,A,"'","'"),o=e.call(()=>$X(e,pme(f+A+f),t),"value")}else o=r("value");a.push("=",o)}return a}function OQa(e,t,r){let{node:n}=e,a=(o,l)=>o.type==="JSXEmptyExpression"||!ig(o)&&(Vk(o)||e4(o)||o.type==="ArrowFunctionExpression"||o.type==="AwaitExpression"&&(a(o.argument,o)||o.argument.type==="JSXElement")||b_(o)||o.type==="ChainExpression"&&b_(o.expression)||o.type==="FunctionExpression"||o.type==="TemplateLiteral"||o.type==="TaggedTemplateExpression"||o.type==="DoExpression"||nD(l)&&(o.type==="ConditionalExpression"||gee(o)));return a(n.expression,e.parent)?Ia(["{",r("expression"),dee,"}"]):Ia(["{",Pl([bl,r("expression")]),bl,dee,"}"])}function MQa(e,t,r){var n,a;let{node:o}=e,l=ig(o.name)||ig(o.typeParameters)||ig(o.typeArguments);if(o.selfClosing&&o.attributes.length===0&&!l)return["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters")," />"];if(((n=o.attributes)==null?void 0:n.length)===1&&gV(o.attributes[0].value)&&!o.attributes[0].value.value.includes(` `)&&!l&&!ig(o.attributes[0]))return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters")," ",...e.map(r,"attributes"),o.selfClosing?" />":">"]);let A=(a=o.attributes)==null?void 0:a.some(I=>gV(I.value)&&I.value.value.includes(` -`)),f=t.singleAttributePerLine&&o.attributes.length>1?xl:zg;return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters"),Pl(e.map(()=>[f,r()],"attributes")),...HQa(o,t,l)],{shouldBreak:A})}function HQa(e,t,r){return e.selfClosing?[zg,"/>"]:YQa(e,t,r)?[">"]:[bl,">"]}function YQa(e,t,r){let n=e.attributes.length>0&&ig(U0(!1,e.attributes,-1),fA.Trailing);return e.attributes.length===0&&!r||(t.bracketSameLine||t.jsxBracketSameLine)&&(!r||e.attributes.length>0)&&!n}function QQa(e,t,r){let{node:n}=e,a=[];a.push(""),a}function XQa(e,t){let{node:r}=e,n=ig(r),a=ig(r,fA.Line),o=r.type==="JSXOpeningFragment";return[o?"<":""]}function JQa(e,t,r){let n=$X(e,ZQa(e,t,r),t);return PQa(e,n,t)}function UQa(e,t){let{node:r}=e,n=ig(r,fA.Line);return[N2(e,t,{indent:n}),n?xl:""]}function KQa(e,t,r){let{node:n}=e;return["{",e.call(({node:a})=>{let o=["...",r()];return!ig(a)||!Bbi(e)?o:[Pl([bl,$X(e,o,t)]),bl]},n.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function jQa(e,t,r){let{node:n}=e;if(n.type.startsWith("JSX"))switch(n.type){case"JSXAttribute":return WQa(e,t,r);case"JSXIdentifier":return n.name;case"JSXNamespacedName":return vC(":",[r("namespace"),r("name")]);case"JSXMemberExpression":return vC(".",[r("object"),r("property")]);case"JSXSpreadAttribute":case"JSXSpreadChild":return KQa(e,t,r);case"JSXExpressionContainer":return OQa(e,t,r);case"JSXFragment":case"JSXElement":return JQa(e,t,r);case"JSXOpeningElement":return MQa(e,t,r);case"JSXClosingElement":return QQa(e,t,r);case"JSXOpeningFragment":case"JSXClosingFragment":return XQa(e,t);case"JSXEmptyExpression":return UQa(e,t);case"JSXText":throw new Error("JSXText should be handled by JSXElement");default:throw new jRe(n,"JSX")}}function zQa(e){if(e.children.length===0)return!0;if(e.children.length>1)return!1;let t=e.children[0];return t.type==="JSXText"&&!N4e(t)}function N4e(e){return e.type==="JSXText"&&(Jyt.hasNonWhitespaceCharacter(UM(e))||!/\n/u.test(UM(e)))}function qQa(e){return e.type==="JSXExpressionContainer"&&gV(e.expression)&&e.expression.value===" "&&!ig(e.expression)}function $Qa(e){let{node:t,parent:r}=e;if(!nD(t)||!nD(r))return!1;let{index:n,siblings:a}=e,o;for(let l=n;l>0;l--){let A=a[l-1];if(!(A.type==="JSXText"&&!N4e(A))){o=A;break}}return o?.type==="JSXExpressionContainer"&&o.expression.type==="JSXEmptyExpression"&&obt(o.expression)}function eXa(e){return obt(e.node)||$Qa(e)}var Vbi=eXa,tXa=0;function Pbi(e,t,r){var n;let{node:a,parent:o,grandparent:l,key:A}=e,f=A!=="body"&&(o.type==="IfStatement"||o.type==="WhileStatement"||o.type==="SwitchStatement"||o.type==="DoWhileStatement"),I=a.operator==="|>"&&((n=e.root.extra)==null?void 0:n.__isUsingHackPipeline),C=MTr(e,r,t,!1,f);if(f)return C;if(I)return Ia(C);if(b_(o)&&o.callee===a||o.type==="UnaryExpression"||Yv(o)&&!o.computed)return Ia([Pl([bl,...C]),bl]);let b=o.type==="ReturnStatement"||o.type==="ThrowStatement"||o.type==="JSXExpressionContainer"&&l.type==="JSXAttribute"||a.operator!=="|"&&o.type==="JsExpressionRoot"||a.type!=="NGPipeExpression"&&(o.type==="NGRoot"&&t.parser==="__ng_binding"||o.type==="NGMicrosyntaxExpression"&&l.type==="NGMicrosyntax"&&l.body.length===1)||a===o.body&&o.type==="ArrowFunctionExpression"||a!==o.body&&o.type==="ForStatement"||o.type==="ConditionalExpression"&&l.type!=="ReturnStatement"&&l.type!=="ThrowStatement"&&!b_(l)||o.type==="TemplateLiteral",E=o.type==="AssignmentExpression"||o.type==="VariableDeclarator"||o.type==="ClassProperty"||o.type==="PropertyDefinition"||o.type==="TSAbstractPropertyDefinition"||o.type==="ClassPrivateProperty"||Iee(o),N=gee(a.left)&&tRr(a.operator,a.left.operator);if(b||D4e(a)&&!N||!D4e(a)&&E)return Ia(C);if(C.length===0)return"";let B=nD(a.right),F=C.findIndex(fe=>typeof fe!="string"&&!Array.isArray(fe)&&fe.type===KM),Q=C.slice(0,F===-1?1:F+1),X=C.slice(Q.length,B?-1:void 0),ae=Symbol("logicalChain-"+ ++tXa),ne=Ia([...Q,Pl(X)],{id:ae});if(!B)return ne;let ce=U0(!1,C,-1);return Ia([ne,abt(ce,{groupId:ae})])}function MTr(e,t,r,n,a){var o;let{node:l}=e;if(!gee(l))return[Ia(t())];let A=[];tRr(l.operator,l.left.operator)?A=e.call(Q=>MTr(Q,t,r,!0,a),"left"):A.push(Ia(t("left")));let f=D4e(l),I=(l.operator==="|>"||l.type==="NGPipeExpression"||rXa(e,r))&&!ice(r.originalText,l.right),C=!ig(l.right,fA.Leading,Ibi)&&ice(r.originalText,l.right),b=l.type==="NGPipeExpression"?"|":l.operator,E=l.type==="NGPipeExpression"&&l.arguments.length>0?Ia(Pl([bl,": ",vC([zg,": "],e.map(()=>oj(2,Ia(t())),"arguments"))])):"",N;if(f)N=[b," ",t("right"),E];else{let Q=b==="|>"&&((o=e.root.extra)!=null&&o.__isUsingHackPipeline)?e.call(X=>MTr(X,t,r,!0,a),"right"):t("right");if(r.experimentalOperatorPosition==="start"){let X="";if(C)switch(uce(Q)){case Aee:X=Q.splice(0,1)[0];break;case hee:X=Q.contents.splice(0,1)[0];break}N=[zg,X,b," ",Q,E]}else N=[I?zg:"",b,I?" ":zg,Q,E]}let{parent:B}=e,F=ig(l.left,fA.Trailing|fA.Line);if((F||!(a&&l.type==="LogicalExpression")&&B.type!==l.type&&l.left.type!==l.type&&l.right.type!==l.type)&&(N=Ia(N,{shouldBreak:F})),r.experimentalOperatorPosition==="start"?A.push(f||C?" ":"",N):A.push(I?"":" ",N),n&&ig(l)){let Q=iRr($X(e,A,r));return Q.type===cce?Q.parts:Array.isArray(Q)?Q:[Q]}return A}function D4e(e){return e.type!=="LogicalExpression"?!1:!!(e4(e.right)&&e.right.properties.length>0||Vk(e.right)&&e.right.elements.length>0||nD(e.right))}var Nyi=e=>e.type==="BinaryExpression"&&e.operator==="|";function rXa(e,t){return(t.parser==="__vue_expression"||t.parser==="__vue_ts_expression")&&Nyi(e.node)&&!e.hasAncestor(r=>!Nyi(r)&&r.type!=="JsExpressionRoot")}function nXa(e,t,r){let{node:n}=e;if(n.type.startsWith("NG"))switch(n.type){case"NGRoot":return[r("node"),ig(n.node)?" //"+PRe(n.node)[0].value.trimEnd():""];case"NGPipeExpression":return Pbi(e,t,r);case"NGChainedExpression":return Ia(vC([";",zg],e.map(()=>sXa(e)?r():["(",r(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGMicrosyntax":return e.map(()=>[e.isFirst?"":Dyi(e)?" ":[";",zg],r()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/iu.test(n.name)?n.name:JSON.stringify(n.name);case"NGMicrosyntaxExpression":return[r("expression"),n.alias===null?"":[" as ",r("alias")]];case"NGMicrosyntaxKeyedExpression":{let{index:a,parent:o}=e,l=Dyi(e)||(a===1&&(n.key.name==="then"||n.key.name==="else"||n.key.name==="as")||(a===2||a===3)&&(n.key.name==="else"&&o.body[a-1].type==="NGMicrosyntaxKeyedExpression"&&o.body[a-1].key.name==="then"||n.key.name==="track"))&&o.body[0].type==="NGMicrosyntaxExpression";return[r("key"),l?" ":": ",r("expression")]}case"NGMicrosyntaxLet":return["let ",r("key"),n.value===null?"":[" = ",r("value")]];case"NGMicrosyntaxAs":return[r("key")," as ",r("alias")];default:throw new jRe(n,"Angular")}}function Dyi({node:e,index:t}){return e.type==="NGMicrosyntaxKeyedExpression"&&e.key.name==="of"&&t===1}var iXa=_0(["CallExpression","OptionalCallExpression","AssignmentExpression"]);function sXa({node:e}){return DTr(e,iXa)}function Wbi(e,t,r){let{node:n}=e;return Ia([vC(zg,e.map(r,"decorators")),Obi(n,t)?xl:zg])}function oXa(e,t,r){return Mbi(e.node)?[vC(xl,e.map(r,"declaration","decorators")),xl]:""}function aXa(e,t,r){let{node:n,parent:a}=e,{decorators:o}=n;if(!H_(o)||Mbi(a)||Vbi(e))return"";let l=n.type==="ClassExpression"||n.type==="ClassDeclaration"||Obi(n,t);return[e.key==="declaration"&&$Ma(a)?xl:l?aj:"",vC(zg,e.map(r,"decorators")),zg]}function Obi(e,t){return e.decorators.some(r=>dO(t.originalText,BC(r)))}function Mbi(e){var t;if(e.type!=="ExportDefaultDeclaration"&&e.type!=="ExportNamedDeclaration"&&e.type!=="DeclareExportDeclaration")return!1;let r=(t=e.declaration)==null?void 0:t.decorators;return H_(r)&&nbt(e,r[0])}var $yt=class extends Error{name="ArgExpansionBailout"};function cXa(e,t,r){let{node:n}=e,a=qM(n);if(a.length===0)return["(",N2(e,t),")"];let o=a.length-1;if(gXa(a)){let b=["("];return zyt(e,(E,N)=>{b.push(r()),N!==o&&b.push(", ")}),b.push(")"),b}let l=!1,A=[];zyt(e,({node:b},E)=>{let N=r();E===o||(fee(b,t)?(l=!0,N=[N,",",xl,xl]):N=[N,",",zg]),A.push(N)});let f=!t.parser.startsWith("__ng_")&&n.type!=="ImportExpression"&&pee(t,"all")?",":"";function I(){return Ia(["(",Pl([zg,...A]),f,zg,")"],{shouldBreak:!0})}if(l||e.parent.type!=="Decorator"&&lHa(a))return I();if(uXa(a)){let b=A.slice(1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,0),{expandFirstArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])]:dme([["(",E,", ",...b,")"],["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])}if(lXa(a,A,t)){let b=A.slice(0,-1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,-1),{expandLastArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])]:dme([["(",...b,E,")"],["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])}let C=["(",Pl([bl,...A]),lh(f),bl,")"];return sbi(e)?C:Ia(C,{shouldBreak:A.some(UZ)||l})}function B4e(e,t=!1){return e4(e)&&(e.properties.length>0||ig(e))||Vk(e)&&(e.elements.length>0||ig(e))||e.type==="TSTypeAssertion"&&B4e(e.expression)||nj(e)&&B4e(e.expression)||e.type==="FunctionExpression"||e.type==="ArrowFunctionExpression"&&(!e.returnType||!e.returnType.typeAnnotation||e.returnType.typeAnnotation.type!=="TSTypeReference"||AXa(e.body))&&(e.body.type==="BlockStatement"||e.body.type==="ArrowFunctionExpression"&&B4e(e.body,!0)||e4(e.body)||Vk(e.body)||!t&&(b_(e.body)||e.body.type==="ConditionalExpression")||nD(e.body))||e.type==="DoExpression"||e.type==="ModuleExpression"}function lXa(e,t,r){var n,a;let o=U0(!1,e,-1);if(e.length===1){let A=U0(!1,t,-1);if((n=A.label)!=null&&n.embed&&((a=A.label)==null?void 0:a.hug)!==!1)return!0}let l=U0(!1,e,-2);return!ig(o,fA.Leading)&&!ig(o,fA.Trailing)&&B4e(o)&&(!l||l.type!==o.type)&&(e.length!==2||l.type!=="ArrowFunctionExpression"||!Vk(o))&&!(e.length>1&&pEi(o,r))}function uXa(e){if(e.length!==2)return!1;let[t,r]=e;return t.type==="ModuleExpression"&&dXa(r)?!0:!ig(t)&&(t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement")&&r.type!=="FunctionExpression"&&r.type!=="ArrowFunctionExpression"&&r.type!=="ConditionalExpression"&&Hbi(r)&&!B4e(r)}function Hbi(e){if(e.type==="ParenthesizedExpression")return Hbi(e.expression);if(nj(e)||e.type==="TypeCastExpression"){let{typeAnnotation:t}=e;if(t.type==="TypeAnnotation"&&(t=t.typeAnnotation),t.type==="TSArrayType"&&(t=t.elementType,t.type==="TSArrayType"&&(t=t.elementType)),t.type==="GenericTypeAnnotation"||t.type==="TSTypeReference"){let r=t.typeArguments??t.typeParameters;r?.params.length===1&&(t=r.params[0])}return $Tr(t)&&qX(e.expression,1)}return YRe(e)&&qM(e).length>1?!1:gee(e)?qX(e.left,1)&&qX(e.right,1):$yi(e)||qX(e)}function gXa(e){return e.length===2?kyi(e,0):e.length===3?e[0].type==="Identifier"&&kyi(e,1):!1}function kyi(e,t){let r=e[t],n=e[t+1];return r.type==="ArrowFunctionExpression"&&NG(r).length===0&&r.body.type==="BlockStatement"&&n.type==="ArrayExpression"&&!e.some(a=>ig(a))}function AXa(e){return e.type==="BlockStatement"&&(e.body.some(t=>t.type!=="EmptyStatement")||ig(e,fA.Dangling))}function dXa(e){return e.type==="ObjectExpression"&&e.properties.length===1&&Iee(e.properties[0])&&e.properties[0].key.type==="Identifier"&&e.properties[0].key.name==="type"&&gV(e.properties[0].value)&&e.properties[0].value.value==="module"}var HTr=cXa,pXa=e=>((e.type==="ChainExpression"||e.type==="TSNonNullExpression")&&(e=e.expression),b_(e)&&qM(e).length>0);function fXa(e,t,r){var n;let a=r("object"),o=Ybi(e,t,r),{node:l}=e,A=e.findAncestor(C=>!(Yv(C)||C.type==="TSNonNullExpression")),f=e.findAncestor(C=>!(C.type==="ChainExpression"||C.type==="TSNonNullExpression")),I=A&&(A.type==="NewExpression"||A.type==="BindExpression"||A.type==="AssignmentExpression"&&A.left.type!=="Identifier")||l.computed||l.object.type==="Identifier"&&l.property.type==="Identifier"&&!Yv(f)||(f.type==="AssignmentExpression"||f.type==="VariableDeclarator")&&(pXa(l.object)||((n=a.label)==null?void 0:n.memberChain));return k4e(a.label,[a,I?o:Ia(Pl([bl,o]))])}function Ybi(e,t,r){let n=r("property"),{node:a}=e,o=KZ(e);return a.computed?!a.property||uee(a.property)?[o,"[",n,"]"]:Ia([o,"[",Pl([bl,n]),bl,"]"]):[o,".",n]}function Qbi(e,t,r){if(e.node.type==="ChainExpression")return e.call(()=>Qbi(e,t,r),"expression");let{parent:n}=e,a=!n||n.type==="ExpressionStatement",o=[];function l(Me){let{originalText:je}=t,St=KRe(je,BC(Me));return je.charAt(St)===")"?St!==!1&&KTr(je,St+1):fee(Me,t)}function A(){let{node:Me}=e;if(Me.type==="ChainExpression")return e.call(A,"expression");if(b_(Me)&&(LRe(Me.callee)||b_(Me.callee))){let je=l(Me);o.unshift({node:Me,hasTrailingEmptyLine:je,printed:[$X(e,[KZ(e),fme(e,t,r),HTr(e,t,r)],t),je?xl:""]}),e.call(A,"callee")}else LRe(Me)?(o.unshift({node:Me,needsParens:Eme(e,t),printed:$X(e,Yv(Me)?Ybi(e,t,r):AEi(e,t,r),t)}),e.call(A,"object")):Me.type==="TSNonNullExpression"?(o.unshift({node:Me,printed:$X(e,"!",t)}),e.call(A,"expression")):o.unshift({node:Me,printed:r()})}let{node:f}=e;o.unshift({node:f,printed:[KZ(e),fme(e,t,r),HTr(e,t,r)]}),f.callee&&e.call(A,"callee");let I=[],C=[o[0]],b=1;for(;b0&&I.push(C);function N(Me){return/^[A-Z]|^[$_]+$/u.test(Me)}function B(Me){return Me.length<=t.tabWidth}function F(Me){var je;let St=(je=Me[1][0])==null?void 0:je.node.computed;if(Me[0].length===1){let Yt=Me[0][0].node;return Yt.type==="ThisExpression"||Yt.type==="Identifier"&&(N(Yt.name)||a&&B(Yt.name)||St)}let At=U0(!1,Me[0],-1).node;return Yv(At)&&At.property.type==="Identifier"&&(N(At.property.name)||St)}let Q=I.length>=2&&!ig(I[1][0].node)&&F(I);function X(Me){let je=Me.map(St=>St.printed);return Me.length>0&&U0(!1,Me,-1).needsParens?["(",...je,")"]:je}function ae(Me){return Me.length===0?"":Pl([xl,vC(xl,Me.map(X))])}let ne=I.map(X),ce=ne,fe=Q?3:2,ue=I.flat(),de=ue.slice(1,-1).some(Me=>ig(Me.node,fA.Leading))||ue.slice(0,-1).some(Me=>ig(Me.node,fA.Trailing))||I[fe]&&ig(I[fe][0].node,fA.Leading);if(I.length<=fe&&!de&&!I.some(Me=>U0(!1,Me,-1).hasTrailingEmptyLine))return sbi(e)?ce:Ia(ce);let be=U0(!1,I[Q?1:0],-1).node,Se=!b_(be)&&l(be),De=[X(I[0]),Q?I.slice(1,2).map(X):"",Se?xl:"",ae(I.slice(Q?2:1))],k=o.map(({node:Me})=>Me).filter(b_);function et(){let Me=U0(!1,U0(!1,I,-1),-1).node,je=U0(!1,ne,-1);return b_(Me)&&UZ(je)&&k.slice(0,-1).some(St=>St.arguments.some(T4e))}let ct;return de||k.length>2&&k.some(Me=>!Me.arguments.every(je=>qX(je)))||ne.slice(0,-1).some(UZ)||et()?ct=Ia(De):ct=[UZ(ce)||Se?aj:"",dme([ce,De])],k4e({memberChain:!0},ct)}var IXa=Qbi;function Xbi(e,t,r){var n;let{node:a}=e,o=a.type==="NewExpression",l=a.type==="ImportExpression",A=KZ(e),f=qM(a),I=f.length===1&&nbi(f[0],t.originalText);if(I||hXa(e)||sbt(a,e.parent)){let b=[];if(zyt(e,()=>{b.push(r())}),!(I&&(n=b[0].label)!=null&&n.embed))return[o?"new ":"",xyi(e,r),A,fme(e,t,r),"(",vC(", ",b),")"]}if(!l&&!o&&LRe(a.callee)&&!e.call(b=>Eme(b,t),"callee",...a.callee.type==="ChainExpression"?["expression"]:[]))return IXa(e,t,r);let C=[o?"new ":"",xyi(e,r),A,fme(e,t,r),HTr(e,t,r)];return l||b_(a.callee)?Ia(C):C}function xyi(e,t){let{node:r}=e;return r.type==="ImportExpression"?`import${r.phase?`.${r.phase}`:""}`:t("callee")}function hXa(e){let{node:t}=e;if(t.type!=="CallExpression"||t.optional||t.callee.type!=="Identifier")return!1;let r=qM(t);return t.callee.name==="require"?r.length===1&&gV(r[0])||r.length>1:t.callee.name==="define"&&e.parent.type==="ExpressionStatement"?r.length===1||r.length===2&&r[0].type==="ArrayExpression"||r.length===3&&gV(r[0])&&r[1].type==="ArrayExpression":!1}function x4e(e,t,r,n,a,o){let l=_Xa(e,t,r,n,o),A=o?r(o,{assignmentLayout:l}):"";switch(l){case"break-after-operator":return Ia([Ia(n),a,Ia(Pl([zg,A]))]);case"never-break-after-operator":return Ia([Ia(n),a," ",A]);case"fluid":{let f=Symbol("assignment");return Ia([Ia(n),a,Ia(Pl(zg),{id:f}),dee,abt(A,{groupId:f})])}case"break-lhs":return Ia([n,a," ",Ia(A)]);case"chain":return[Ia(n),a,zg,A];case"chain-tail":return[Ia(n),a,Pl([zg,A])];case"chain-tail-arrow-chain":return[Ia(n),a,A];case"only-left":return n}}function mXa(e,t,r){let{node:n}=e;return x4e(e,t,r,r("left"),[" ",n.operator],"right")}function CXa(e,t,r){return x4e(e,t,r,r("id")," =","init")}function _Xa(e,t,r,n,a){let{node:o}=e,l=o[a];if(!l)return"only-left";let A=!Uyt(l);if(e.match(Uyt,Jbi,C=>!A||C.type!=="ExpressionStatement"&&C.type!=="VariableDeclaration"))return A?l.type==="ArrowFunctionExpression"&&l.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!A&&Uyt(l.right)||ice(t.originalText,l))return"break-after-operator";if(o.type==="ImportAttribute"||l.type==="CallExpression"&&l.callee.name==="require"||t.parser==="json5"||t.parser==="jsonc"||t.parser==="json")return"never-break-after-operator";let f=THa(n);if(bXa(o)||BXa(o)||Ubi(o)&&f)return"break-lhs";let I=TXa(o,n,t);return e.call(()=>yXa(e,t,r,I),a)?"break-after-operator":EXa(o)?"break-lhs":!f&&(I||l.type==="TemplateLiteral"||l.type==="TaggedTemplateExpression"||l.type==="BooleanLiteral"||uee(l)||l.type==="ClassExpression")?"never-break-after-operator":"fluid"}function yXa(e,t,r,n){let a=e.node;if(gee(a)&&!D4e(a))return!0;switch(a.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"TSConditionalType":case"ConditionalTypeAnnotation":if(!t.experimentalTernaries&&!DXa(a))break;return!0;case"ConditionalExpression":{if(!t.experimentalTernaries){let{test:I}=a;return gee(I)&&!D4e(I)}let{consequent:A,alternate:f}=a;return A.type==="ConditionalExpression"||f.type==="ConditionalExpression"}case"ClassExpression":return H_(a.decorators)}if(n)return!1;let o=a,l=[];for(;;)if(o.type==="UnaryExpression"||o.type==="AwaitExpression"||o.type==="YieldExpression"&&o.argument!==null)o=o.argument,l.push("argument");else if(o.type==="TSNonNullExpression")o=o.expression,l.push("expression");else break;return!!(gV(o)||e.call(()=>Kbi(e,t,r),...l))}function bXa(e){if(Jbi(e)){let t=e.left||e.id;return t.type==="ObjectPattern"&&t.properties.length>2&&t.properties.some(r=>{var n;return Iee(r)&&(!r.shorthand||((n=r.value)==null?void 0:n.type)==="AssignmentPattern")})}return!1}function Uyt(e){return e.type==="AssignmentExpression"}function Jbi(e){return Uyt(e)||e.type==="VariableDeclarator"}function EXa(e){let t=vXa(e);if(H_(t)){let r=e.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(t.length>1&&t.some(n=>n[r]||n.default))return!0}return!1}var SXa=_0(["TSTypeAliasDeclaration","TypeAlias"]);function vXa(e){var t;if(SXa(e))return(t=e.typeParameters)==null?void 0:t.params}function BXa(e){if(e.type!=="VariableDeclarator")return!1;let{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;let r=Gyi(t.typeAnnotation);return H_(r)&&r.length>1&&r.some(n=>H_(Gyi(n))||n.type==="TSConditionalType")}function Ubi(e){var t;return e.type==="VariableDeclarator"&&((t=e.init)==null?void 0:t.type)==="ArrowFunctionExpression"}var wXa=_0(["TSTypeReference","GenericTypeAnnotation"]);function Gyi(e){var t;if(wXa(e))return(t=e.typeArguments??e.typeParameters)==null?void 0:t.params}function Kbi(e,t,r,n=!1){var a;let{node:o}=e,l=()=>Kbi(e,t,r,!0);if(o.type==="ChainExpression"||o.type==="TSNonNullExpression")return e.call(l,"expression");if(b_(o)){if((a=Xbi(e,t,r).label)!=null&&a.memberChain)return!1;let A=qM(o);return!(A.length===0||A.length===1&&eRr(A[0],t))||RXa(o,r)?!1:e.call(l,"callee")}return Yv(o)?e.call(l,"object"):n&&(o.type==="Identifier"||o.type==="ThisExpression")}function TXa(e,t,r){return Iee(e)?(t=iRr(t),typeof t=="string"&&WRe(t)1)return!0;if(r.length===1){let a=r[0];if(sce(a)||rRr(a)||a.type==="TSTypeLiteral"||a.type==="ObjectTypeAnnotation")return!0}let n=e.typeParameters?"typeParameters":"typeArguments";if(UZ(t(n)))return!0}return!1}function NXa(e){var t;return(t=e.typeParameters??e.typeArguments)==null?void 0:t.params}function DXa(e){function t(r){switch(r.type){case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"TSFunctionType":return!!r.typeParameters;case"TSTypeReference":return!!(r.typeArguments??r.typeParameters);default:return!1}}return t(e.checkType)||t(e.extendsType)}function Sme(e,t,r,n,a){let o=e.node,l=NG(o),A=a?fme(e,r,t):"";if(l.length===0)return[A,"(",N2(e,r,{filter:N=>t4(r.originalText,BC(N))===")"}),")"];let{parent:f}=e,I=sbt(f),C=jbi(o),b=[];if(fHa(e,(N,B)=>{let F=B===l.length-1;F&&o.rest&&b.push("..."),b.push(t()),!F&&(b.push(","),I||C?b.push(" "):fee(l[B],r)?b.push(xl,xl):b.push(zg))}),n&&!xXa(e)){if(UZ(A)||UZ(b))throw new $yt;return Ia([xTr(A),"(",xTr(b),")"])}let E=l.every(N=>!H_(N.decorators));return C&&E?[A,"(",...b,")"]:I?[A,"(",...b,")"]:(ebi(f)||nHa(f)||f.type==="TypeAlias"||f.type==="UnionTypeAnnotation"||f.type==="IntersectionTypeAnnotation"||f.type==="FunctionTypeAnnotation"&&f.returnType===o)&&l.length===1&&l[0].name===null&&o.this!==l[0]&&l[0].typeAnnotation&&o.typeParameters===null&&$Tr(l[0].typeAnnotation)&&!o.rest?r.arrowParens==="always"||o.type==="HookTypeAnnotation"?["(",...b,")"]:b:[A,"(",Pl([bl,...b]),lh(!pHa(o)&&pee(r,"all")?",":""),bl,")"]}function jbi(e){if(!e)return!1;let t=NG(e);if(t.length!==1)return!1;let[r]=t;return!ig(r)&&(r.type==="ObjectPattern"||r.type==="ArrayPattern"||r.type==="Identifier"&&r.typeAnnotation&&(r.typeAnnotation.type==="TypeAnnotation"||r.typeAnnotation.type==="TSTypeAnnotation")&&nce(r.typeAnnotation.typeAnnotation)||r.type==="FunctionTypeParam"&&nce(r.typeAnnotation)&&r!==e.rest||r.type==="AssignmentPattern"&&(r.left.type==="ObjectPattern"||r.left.type==="ArrayPattern")&&(r.right.type==="Identifier"||e4(r.right)&&r.right.properties.length===0||Vk(r.right)&&r.right.elements.length===0))}function kXa(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}function zRe(e,t){var r;let n=kXa(e);if(!n)return!1;let a=(r=e.typeParameters)==null?void 0:r.params;if(a){if(a.length>1)return!1;if(a.length===1){let o=a[0];if(o.constraint||o.default)return!1}}return NG(e).length===1&&(nce(n)||UZ(t))}function xXa(e){return e.match(t=>t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement",(t,r)=>{if(t.type==="CallExpression"&&r==="arguments"&&t.arguments.length===1&&t.callee.type==="CallExpression"){let n=t.callee.callee;return n.type==="Identifier"||n.type==="MemberExpression"&&!n.computed&&n.object.type==="Identifier"&&n.property.type==="Identifier"}return!1},(t,r)=>t.type==="VariableDeclarator"&&r==="init"||t.type==="ExportDefaultDeclaration"&&r==="declaration"||t.type==="TSExportAssignment"&&r==="expression"||t.type==="AssignmentExpression"&&r==="right"&&t.left.type==="MemberExpression"&&t.left.object.type==="Identifier"&&t.left.object.name==="module"&&t.left.property.type==="Identifier"&&t.left.property.name==="exports",t=>t.type!=="VariableDeclaration"||t.kind==="const"&&t.declarations.length===1)}function GXa(e){let t=NG(e);return t.length>1&&t.some(r=>r.type==="TSParameterProperty")}var FXa=_0(["VoidTypeAnnotation","TSVoidKeyword","NullLiteralTypeAnnotation","TSNullKeyword"]),ZXa=_0(["ObjectTypeAnnotation","TSTypeLiteral","GenericTypeAnnotation","TSTypeReference"]);function LXa(e){let{types:t}=e;if(t.some(n=>ig(n)))return!1;let r=t.find(n=>ZXa(n));return r?t.every(n=>n===r||FXa(n)):!1}function zbi(e){return $Tr(e)||nce(e)?!0:sce(e)?LXa(e):!1}function VXa(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e),"opaque type ",r("id"),r("typeParameters")];return a.supertype&&o.push(": ",r("supertype")),a.impltype&&o.push(" = ",r("impltype")),o.push(n),o}function qbi(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e)];o.push("type ",r("id"),r("typeParameters"));let l=a.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[x4e(e,t,r,o," =",l),n]}function $bi(e,t,r){let n=!1;return Ia(e.map(({isFirst:a,previous:o,node:l,index:A})=>{let f=r();if(a)return f;let I=nce(l),C=nce(o);return C&&I?[" & ",n?Pl(f):f]:!C&&!I?t.experimentalOperatorPosition==="start"?Pl([zg,"& ",f]):Pl([" &",zg,f]):(A>1&&(n=!0),[" & ",A>1?Pl(f):f])},"types"))}function eEi(e,t,r){let{node:n}=e,{parent:a}=e,o=a.type!=="TypeParameterInstantiation"&&(!oce(a)||!t.experimentalTernaries)&&a.type!=="TSTypeParameterInstantiation"&&a.type!=="GenericTypeAnnotation"&&a.type!=="TSTypeReference"&&a.type!=="TSTypeAssertion"&&a.type!=="TupleTypeAnnotation"&&a.type!=="TSTupleType"&&!(a.type==="FunctionTypeParam"&&!a.name&&e.grandparent.this!==a)&&!((a.type==="TypeAlias"||a.type==="VariableDeclarator"||a.type==="TSTypeAliasDeclaration")&&ice(t.originalText,n)),l=zbi(n),A=e.map(C=>{let b=r();return l||(b=oj(2,b)),$X(C,b,t)},"types");if(l)return vC(" | ",A);let f=o&&!ice(t.originalText,n),I=[lh([f?zg:"","| "]),vC([zg,"| "],A)];return Eme(e,t)?Ia([Pl(I),bl]):(a.type==="TupleTypeAnnotation"||a.type==="TSTupleType")&&a[a.type==="TupleTypeAnnotation"&&a.types?"types":"elementTypes"].length>1?Ia([Pl([lh(["(",bl]),I]),bl,lh(")")]):Ia(o?Pl(I):I)}function PXa(e){var t;let{node:r,parent:n}=e;return r.type==="FunctionTypeAnnotation"&&(ebi(n)||!((n.type==="ObjectTypeProperty"||n.type==="ObjectTypeInternalSlot")&&!n.variance&&!n.optional&&nbt(n,r)||n.type==="ObjectTypeCallProperty"||((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareFunction"))}function tEi(e,t,r){let{node:n}=e,a=[cbt(e)];(n.type==="TSConstructorType"||n.type==="TSConstructSignatureDeclaration")&&a.push("new ");let o=Sme(e,r,t,!1,!0),l=[];return n.type==="FunctionTypeAnnotation"?l.push(PXa(e)?" => ":": ",r("returnType")):l.push(Lk(e,r,n.returnType?"returnType":"typeAnnotation")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function rEi(e,t,r){return[r("objectType"),KZ(e),"[",r("indexType"),"]"]}function nEi(e,t,r){return["infer ",r("typeParameter")]}function Fyi(e,t,r){let{node:n}=e;return[n.postfix?"":r,Lk(e,t),n.postfix?r:""]}function iEi(e,t,r){let{node:n}=e;return["...",...n.type==="TupleTypeSpreadElement"&&n.label?[r("label"),": "]:[],r("typeAnnotation")]}function sEi(e,t,r){let{node:n}=e;return[n.variance?r("variance"):"",r("label"),n.optional?"?":"",": ",r("elementType")]}var WXa=new WeakSet;function Lk(e,t,r="typeAnnotation"){let{node:{[r]:n}}=e;if(!n)return"";let a=!1;if(n.type==="TSTypeAnnotation"||n.type==="TypeAnnotation"){let o=e.call(oEi,r);(o==="=>"||o===":"&&ig(n,fA.Leading))&&(a=!0),WXa.add(n)}return a?[" ",t(r)]:t(r)}var oEi=e=>e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>(r==="returnType"||r==="typeAnnotation")&&(t.type==="TSFunctionType"||t.type==="TSConstructorType"))?"=>":e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>r==="typeAnnotation"&&(t.type==="TSJSDocNullableType"||t.type==="TSJSDocNonNullableType"||t.type==="TSTypePredicate"))||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareFunction")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareHook")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="bound"&&t.type==="TypeParameter"&&t.usesExtendsBound)?"":":";function aEi(e,t,r){let n=oEi(e);return n?[n," ",r("typeAnnotation")]:r("typeAnnotation")}function cEi(e){return[e("elementType"),"[]"]}function lEi({node:e},t){let r=e.type==="TSTypeQuery"?"exprName":"argument",n=e.type==="TypeofTypeAnnotation"||e.typeArguments?"typeArguments":"typeParameters";return["typeof ",t(r),t(n)]}function uEi(e,t){let{node:r}=e;return[r.type==="TSTypePredicate"&&r.asserts?"asserts ":r.type==="TypePredicate"&&r.kind?`${r.kind} `:"",t("parameterName"),r.typeAnnotation?[" is ",Lk(e,t)]:""]}function KZ(e){let{node:t}=e;return!t.optional||t.type==="Identifier"&&t===e.parent.key?"":b_(t)||Yv(t)&&t.computed||t.type==="OptionalIndexedAccessType"?"?.":"?"}function gEi(e){return e.node.definite||e.match(void 0,(t,r)=>r==="id"&&t.type==="VariableDeclarator"&&t.definite)?"!":""}var OXa=new Set(["DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclareOpaqueType","DeclareTypeAlias","DeclareEnum","DeclareInterface"]);function AV(e){let{node:t}=e;return t.declare||OXa.has(t.type)&&e.parent.type!=="DeclareExportDeclaration"?"declare ":""}var MXa=new Set(["TSAbstractMethodDefinition","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function cbt({node:e}){return e.abstract||MXa.has(e.type)?"abstract ":""}function fme(e,t,r){let n=e.node;return n.typeArguments?r("typeArguments"):n.typeParameters?r("typeParameters"):""}function AEi(e,t,r){return["::",r("callee")]}function tce(e,t,r){return e.type==="EmptyStatement"?";":e.type==="BlockStatement"||r?[" ",t]:Pl([zg,t])}function dEi(e,t){return["...",t("argument"),Lk(e,t)]}function ebt(e){return e.accessibility?e.accessibility+" ":""}function HXa(e,t,r,n){let{node:a}=e,o=a.inexact?"...":"";return ig(a,fA.Dangling)?Ia([r,o,N2(e,t,{indent:!0}),bl,n]):[r,o,n]}function dRr(e,t,r){let{node:n}=e,a=[],o=n.type==="TupleExpression"?"#[":"[",l="]",A=n.type==="TupleTypeAnnotation"&&n.types?"types":n.type==="TSTupleType"||n.type==="TupleTypeAnnotation"?"elementTypes":"elements",f=n[A];if(f.length===0)a.push(HXa(e,t,o,l));else{let I=U0(!1,f,-1),C=I?.type!=="RestElement"&&!n.inexact,b=I===null,E=Symbol("array"),N=!t.__inJestEach&&f.length>1&&f.every((Q,X,ae)=>{let ne=Q?.type;if(!Vk(Q)&&!e4(Q))return!1;let ce=ae[X+1];if(ce&&ne!==ce.type)return!1;let fe=Vk(Q)?"elements":"properties";return Q[fe]&&Q[fe].length>1}),B=pEi(n,t),F=C?b?",":pee(t)?B?lh(",","",{groupId:E}):lh(","):"":"";a.push(Ia([o,Pl([bl,B?QXa(e,t,r,F):[YXa(e,t,A,n.inexact,r),F],N2(e,t)]),bl,l],{shouldBreak:N,id:E}))}return a.push(KZ(e),Lk(e,r)),a}function pEi(e,t){return Vk(e)&&e.elements.length>1&&e.elements.every(r=>r&&(uee(r)||qyi(r)&&!ig(r.argument))&&!ig(r,fA.Trailing|fA.Line,n=>!dO(t.originalText,ZS(n),{backwards:!0})))}function fEi({node:e},{originalText:t}){let r=a=>JTr(t,UTr(t,a)),n=a=>t[a]===","?a:n(r(a+1));return KTr(t,n(BC(e)))}function YXa(e,t,r,n,a){let o=[];return e.each(({node:l,isLast:A})=>{o.push(l?Ia(a()):""),(!A||n)&&o.push([",",zg,l&&fEi(e,t)?bl:""])},r),n&&o.push("..."),o}function QXa(e,t,r,n){let a=[];return e.each(({isLast:o,next:l})=>{a.push([r(),o?n:","]),o||a.push(fEi(e,t)?[xl,xl]:ig(l,fA.Leading|fA.Line)?xl:zg)},"elements"),Abi(a)}var XXa=/^[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/,JXa=e=>XXa.test(e),UXa=JXa;function KXa(e){return e.length===1?e:e.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/u,"$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/u,"$1").replace(/^([+-])?\./u,"$10.").replace(/(\.\d+?)0+(?=e|$)/u,"$1").replace(/\.(?=e|$)/u,"")}var QRe=KXa,Kyt=new WeakMap;function IEi(e){return/^(?:\d+|\d+\.\d+)$/u.test(e)}function Zyi(e,t){return t.parser==="json"||t.parser==="jsonc"||!gV(e.key)||HRe(UM(e.key),t).slice(1,-1)!==e.key.value?!1:!!(UXa(e.key.value)&&!(t.parser==="babel-ts"&&e.type==="ClassProperty"||t.parser==="typescript"&&e.type==="PropertyDefinition")||IEi(e.key.value)&&String(Number(e.key.value))===e.key.value&&e.type!=="ImportAttribute"&&(t.parser==="babel"||t.parser==="acorn"||t.parser==="espree"||t.parser==="meriyah"||t.parser==="__babel_estree"))}function jXa(e,t){let{key:r}=e.node;return(r.type==="Identifier"||uee(r)&&IEi(QRe(UM(r)))&&String(r.value)===QRe(UM(r))&&!(t.parser==="typescript"||t.parser==="babel-ts"))&&(t.parser==="json"||t.parser==="jsonc"||t.quoteProps==="consistent"&&Kyt.get(e.parent))}function G4e(e,t,r){let{node:n}=e;if(n.computed)return["[",r("key"),"]"];let{parent:a}=e,{key:o}=n;if(t.quoteProps==="consistent"&&!Kyt.has(a)){let l=e.siblings.some(A=>!A.computed&&gV(A.key)&&!Zyi(A,t));Kyt.set(a,l)}if(jXa(e,t)){let l=HRe(JSON.stringify(o.type==="Identifier"?o.name:o.value.toString()),t);return e.call(A=>$X(A,l,t),"key")}return Zyi(n,t)&&(t.quoteProps==="as-needed"||t.quoteProps==="consistent"&&!Kyt.get(a))?e.call(l=>$X(l,/^\d/u.test(o.value)?QRe(o.value):o.value,t),"key"):r("key")}function BTr(e,t,r){let{node:n}=e;return n.shorthand?r("value"):x4e(e,t,r,G4e(e,t,r),":","value")}var zXa=({node:e,key:t,parent:r})=>t==="value"&&e.type==="FunctionExpression"&&(r.type==="ObjectMethod"||r.type==="ClassMethod"||r.type==="ClassPrivateMethod"||r.type==="MethodDefinition"||r.type==="TSAbstractMethodDefinition"||r.type==="TSDeclareMethod"||r.type==="Property"&&ibt(r));function hEi(e,t,r,n){if(zXa(e))return pRr(e,r,t);let{node:a}=e,o=!1;if((a.type==="FunctionDeclaration"||a.type==="FunctionExpression")&&n!=null&&n.expandLastArg){let{parent:C}=e;b_(C)&&(qM(C).length>1||NG(a).every(b=>b.type==="Identifier"&&!b.typeAnnotation))&&(o=!0)}let l=[AV(e),a.async?"async ":"",`function${a.generator?"*":""} `,a.id?t("id"):""],A=Sme(e,t,r,o),f=lbt(e,t),I=zRe(a,f);return l.push(fme(e,r,t),Ia([I?Ia(A):A,f]),a.body?" ":"",t("body")),r.semi&&(a.declare||!a.body)&&l.push(";"),l}function YTr(e,t,r){let{node:n}=e,{kind:a}=n,o=n.value||n,l=[];return!a||a==="init"||a==="method"||a==="constructor"?o.async&&l.push("async "):(jTr.ok(a==="get"||a==="set"),l.push(a," ")),o.generator&&l.push("*"),l.push(G4e(e,t,r),n.optional||n.key.optional?"?":"",n===o?pRr(e,t,r):r("value")),l}function pRr(e,t,r){let{node:n}=e,a=Sme(e,r,t),o=lbt(e,r),l=GXa(n),A=zRe(n,o),f=[fme(e,t,r),Ia([l?Ia(a,{shouldBreak:!0}):A?Ia(a):a,o])];return n.body?f.push(" ",r("body")):f.push(t.semi?";":""),f}function qXa(e){let t=NG(e);return t.length===1&&!e.typeParameters&&!ig(e,fA.Dangling)&&t[0].type==="Identifier"&&!t[0].typeAnnotation&&!ig(t[0])&&!t[0].optional&&!e.predicate&&!e.returnType}function mEi(e,t){if(t.arrowParens==="always")return!1;if(t.arrowParens==="avoid"){let{node:r}=e;return qXa(r)}return!1}function lbt(e,t){let{node:r}=e,n=[Lk(e,t,"returnType")];return r.predicate&&n.push(t("predicate")),n}function CEi(e,t,r){let{node:n}=e,a=t.semi?";":"",o=[];if(n.argument){let f=r("argument");t4a(t,n.argument)?f=["(",Pl([xl,f]),xl,")"]:(gee(n.argument)||n.argument.type==="SequenceExpression"||t.experimentalTernaries&&n.argument.type==="ConditionalExpression"&&(n.argument.consequent.type==="ConditionalExpression"||n.argument.alternate.type==="ConditionalExpression"))&&(f=Ia([lh("("),Pl([bl,f]),bl,lh(")")])),o.push(" ",f)}let l=ig(n,fA.Dangling),A=a&&l&&ig(n,fA.Last|fA.Line);return A&&o.push(a),l&&o.push(" ",N2(e,t)),A||o.push(a),o}function $Xa(e,t,r){return["return",CEi(e,t,r)]}function e4a(e,t,r){return["throw",CEi(e,t,r)]}function t4a(e,t){if(ice(e.originalText,t)||ig(t,fA.Leading,r=>ace(e.originalText,ZS(r),BC(r)))&&!nD(t))return!0;if(zTr(t)){let r=t,n;for(;n=qMa(r);)if(r=n,ice(e.originalText,r))return!0}return!1}var wTr=new WeakMap;function _Ei(e){return wTr.has(e)||wTr.set(e,e.type==="ConditionalExpression"&&!JZ(e,t=>t.type==="ObjectExpression")),wTr.get(e)}var yEi=e=>e.type==="SequenceExpression";function r4a(e,t,r,n={}){let a=[],o,l=[],A=!1,f=!n.expandLastArg&&e.node.body.type==="ArrowFunctionExpression",I;(function X(){let{node:ae}=e,ne=n4a(e,t,r,n);if(a.length===0)a.push(ne);else{let{leading:ce,trailing:fe}=Lbi(e,t);a.push([ce,ne]),l.unshift(fe)}f&&(A||(A=ae.returnType&&NG(ae).length>0||ae.typeParameters||NG(ae).some(ce=>ce.type!=="Identifier"))),!f||ae.body.type!=="ArrowFunctionExpression"?(o=r("body",n),I=ae.body):e.call(X,"body")})();let C=!ice(t.originalText,I)&&(yEi(I)||i4a(I,o,t)||!A&&_Ei(I)),b=e.key==="callee"&&YRe(e.parent),E=Symbol("arrow-chain"),N=s4a(e,n,{signatureDocs:a,shouldBreak:A}),B=!1,F=!1,Q=!1;return f&&(b||n.assignmentLayout)&&(F=!0,Q=!ig(e.node,fA.Leading&fA.Line),B=n.assignmentLayout==="chain-tail-arrow-chain"||b&&!C),o=o4a(e,t,n,{bodyDoc:o,bodyComments:l,functionBody:I,shouldPutBodyOnSameLine:C}),Ia([Ia(F?Pl([Q?bl:"",N]):N,{shouldBreak:B,id:E})," =>",f?abt(o,{groupId:E}):Ia(o),f&&b?lh(bl,"",{groupId:E}):""])}function n4a(e,t,r,n){let{node:a}=e,o=[];if(a.async&&o.push("async "),mEi(e,t))o.push(r(["params",0]));else{let A=n.expandLastArg||n.expandFirstArg,f=lbt(e,r);if(A){if(UZ(f))throw new $yt;f=Ia(xTr(f))}o.push(Ia([Sme(e,r,t,A,!0),f]))}let l=N2(e,t,{filter(A){let f=KRe(t.originalText,BC(A));return f!==!1&&t.originalText.slice(f,f+2)==="=>"}});return l&&o.push(" ",l),o}function i4a(e,t,r){var n,a;return Vk(e)||e4(e)||e.type==="ArrowFunctionExpression"||e.type==="DoExpression"||e.type==="BlockStatement"||nD(e)||((n=t.label)==null?void 0:n.hug)!==!1&&(((a=t.label)==null?void 0:a.embed)||nbi(e,r.originalText))}function s4a(e,t,{signatureDocs:r,shouldBreak:n}){if(r.length===1)return r[0];let{parent:a,key:o}=e;return o!=="callee"&&YRe(a)||gee(a)?Ia([r[0]," =>",Pl([zg,vC([" =>",zg],r.slice(1))])],{shouldBreak:n}):o==="callee"&&YRe(a)||t.assignmentLayout?Ia(vC([" =>",zg],r),{shouldBreak:n}):Ia(Pl(vC([" =>",zg],r)),{shouldBreak:n})}function o4a(e,t,r,{bodyDoc:n,bodyComments:a,functionBody:o,shouldPutBodyOnSameLine:l}){let{node:A,parent:f}=e,I=r.expandLastArg&&pee(t,"all")?lh(","):"",C=(r.expandLastArg||f.type==="JSXExpressionContainer")&&!ig(A)?bl:"";return l&&_Ei(o)?[" ",Ia([lh("","("),Pl([bl,n]),lh("",")"),I,C]),a]:(yEi(o)&&(n=Ia(["(",Pl([bl,n]),bl,")"])),l?[" ",n,a]:[Pl([zg,n,a]),I,C])}var a4a=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let a=t[n];if(r(a,n,t))return a}}},c4a=a4a;function QTr(e,t,r,n){let{node:a}=e,o=[],l=c4a(!1,a[n],A=>A.type!=="EmptyStatement");return e.each(({node:A})=>{A.type!=="EmptyStatement"&&(o.push(r()),A!==l&&(o.push(xl),fee(A,t)&&o.push(xl)))},n),o}function bEi(e,t,r){let n=l4a(e,t,r),{node:a,parent:o}=e;if(a.type==="Program"&&o?.type!=="ModuleExpression")return n?[n,xl]:"";let l=[];if(a.type==="StaticBlock"&&l.push("static "),l.push("{"),n)l.push(Pl([xl,n]),xl);else{let A=e.grandparent;o.type==="ArrowFunctionExpression"||o.type==="FunctionExpression"||o.type==="FunctionDeclaration"||o.type==="ComponentDeclaration"||o.type==="HookDeclaration"||o.type==="ObjectMethod"||o.type==="ClassMethod"||o.type==="ClassPrivateMethod"||o.type==="ForStatement"||o.type==="WhileStatement"||o.type==="DoWhileStatement"||o.type==="DoExpression"||o.type==="ModuleExpression"||o.type==="CatchClause"&&!A.finalizer||o.type==="TSModuleDeclaration"||a.type==="StaticBlock"||l.push(xl)}return l.push("}"),l}function l4a(e,t,r){let{node:n}=e,a=H_(n.directives),o=n.body.some(f=>f.type!=="EmptyStatement"),l=ig(n,fA.Dangling);if(!a&&!o&&!l)return"";let A=[];return a&&(A.push(QTr(e,t,r,"directives")),(o||l)&&(A.push(xl),fee(U0(!1,n.directives,-1),t)&&A.push(xl))),o&&A.push(QTr(e,t,r,"body")),l&&A.push(N2(e,t)),A}function u4a(e){let t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}var EEi=u4a;function g4a(e){switch(e){case null:return"";case"PlusOptional":return"+?";case"MinusOptional":return"-?";case"Optional":return"?"}}function A4a(e,t,r){let{node:n}=e;return Ia([n.variance?r("variance"):"","[",Pl([r("keyTparam")," in ",r("sourceType")]),"]",g4a(n.optional),": ",r("propType")])}function SEi(e,t){return e==="+"||e==="-"?e+t:t}function d4a(e,t,r){let{node:n}=e,a=t.objectWrap==="preserve"&&ace(t.originalText,ZS(n),ZS(n.typeParameter));return Ia(["{",Pl([t.bracketSpacing?zg:bl,Ia([r("typeParameter"),n.optional?SEi(n.optional,"?"):"",n.typeAnnotation?": ":"",r("typeAnnotation")]),t.semi?lh(";"):""]),N2(e,t),t.bracketSpacing?zg:bl,"}"],{shouldBreak:a})}var fRr=EEi("typeParameters");function p4a(e,t,r){let{node:n}=e;return NG(n).length===1&&n.type.startsWith("TS")&&!n[r][0].constraint&&e.parent.type==="ArrowFunctionExpression"&&!(t.filepath&&/\.ts$/u.test(t.filepath))}function w4e(e,t,r,n){let{node:a}=e;if(!a[n])return"";if(!Array.isArray(a[n]))return r(n);let o=sbt(e.grandparent),l=e.match(f=>!(f[n].length===1&&nce(f[n][0])),void 0,(f,I)=>I==="typeAnnotation",f=>f.type==="Identifier",Ubi);if(a[n].length===0||!l&&(o||a[n].length===1&&(a[n][0].type==="NullableTypeAnnotation"||zbi(a[n][0]))))return["<",vC(", ",e.map(r,n)),f4a(e,t),">"];let A=a.type==="TSTypeParameterInstantiation"?"":p4a(e,t,n)?",":pee(t)?lh(","):"";return Ia(["<",Pl([bl,vC([",",zg],e.map(r,n))]),A,bl,">"],{id:fRr(a)})}function f4a(e,t){let{node:r}=e;if(!ig(r,fA.Dangling))return"";let n=!ig(r,fA.Line),a=N2(e,t,{indent:!n});return n?a:[a,xl]}function vEi(e,t,r){let{node:n,parent:a}=e,o=[n.const?"const ":""],l=n.type==="TSTypeParameter"?r("name"):n.name;if(a.type==="TSMappedType")return a.readonly&&o.push(SEi(a.readonly,"readonly")," "),o.push("[",l),n.constraint&&o.push(" in ",r("constraint")),a.nameType&&o.push(" as ",e.callParent(()=>r("nameType"))),o.push("]"),o;if(n.variance&&o.push(r("variance")),n.in&&o.push("in "),n.out&&o.push("out "),o.push(l),n.bound&&(n.usesExtendsBound&&o.push(" extends "),o.push(Lk(e,r,"bound"))),n.constraint){let A=Symbol("constraint");o.push(" extends",Ia(Pl(zg),{id:A}),dee,abt(r("constraint"),{groupId:A}))}return n.default&&o.push(" = ",r("default")),Ia(o)}var BEi=_0(["ClassProperty","PropertyDefinition","ClassPrivateProperty","ClassAccessorProperty","AccessorProperty","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function wEi(e,t,r){let{node:n}=e,a=[AV(e),cbt(e),"class"],o=ig(n.id,fA.Trailing)||ig(n.typeParameters,fA.Trailing)||ig(n.superClass)||H_(n.extends)||H_(n.mixins)||H_(n.implements),l=[],A=[];if(n.id&&l.push(" ",r("id")),l.push(r("typeParameters")),n.superClass){let C=[m4a(e,t,r),r(n.superTypeArguments?"superTypeArguments":"superTypeParameters")],b=e.call(E=>["extends ",$X(E,C,t)],"superClass");o?A.push(zg,Ia(b)):A.push(" ",b)}else A.push(TTr(e,t,r,"extends"));A.push(TTr(e,t,r,"mixins"),TTr(e,t,r,"implements"));let f;if(o){let C;REi(n)?C=[...l,Pl(A)]:C=Pl([...l,A]),f=TEi(n),a.push(Ia(C,{id:f}))}else a.push(...l,...A);let I=n.body;return o&&H_(I.body)?a.push(lh(xl," ",{groupId:f})):a.push(" "),a.push(r("body")),a}var TEi=EEi("heritageGroup");function I4a(e){return lh(xl,"",{groupId:TEi(e)})}function h4a(e){return["extends","mixins","implements"].reduce((t,r)=>t+(Array.isArray(e[r])?e[r].length:0),e.superClass?1:0)>1}function REi(e){return e.typeParameters&&!ig(e.typeParameters,fA.Trailing|fA.Line)&&!h4a(e)}function TTr(e,t,r,n){let{node:a}=e;if(!H_(a[n]))return"";let o=N2(e,t,{marker:n});return[REi(a)?lh(" ",zg,{groupId:fRr(a.typeParameters)}):zg,o,o&&xl,n,Ia(Pl([zg,vC([",",zg],e.map(r,n))]))]}function m4a(e,t,r){let n=r("superClass"),{parent:a}=e;return a.type==="AssignmentExpression"?Ia(lh(["(",Pl([bl,n]),bl,")"],n)):n}function NEi(e,t,r){let{node:n}=e,a=[];return H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),a.push(YTr(e,t,r)),a}function DEi(e,t,r){let{node:n}=e,a=[],o=t.semi?";":"";H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(AV(e),ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),n.readonly&&a.push("readonly "),n.variance&&a.push(r("variance")),(n.type==="ClassAccessorProperty"||n.type==="AccessorProperty"||n.type==="TSAbstractAccessorProperty")&&a.push("accessor "),a.push(G4e(e,t,r),KZ(e),gEi(e),Lk(e,r));let l=n.type==="TSAbstractPropertyDefinition"||n.type==="TSAbstractAccessorProperty";return[x4e(e,t,r,a," =",l?void 0:"value"),o]}function C4a(e,t,r){let{node:n}=e,a=[];return e.each(({node:o,next:l,isLast:A})=>{a.push(r()),!t.semi&&BEi(o)&&_4a(o,l)&&a.push(";"),A||(a.push(xl),fee(o,t)&&a.push(xl))},"body"),ig(n,fA.Dangling)&&a.push(N2(e,t)),["{",a.length>0?[Pl([xl,a]),xl]:"","}"]}function _4a(e,t){var r;let{type:n,name:a}=e.key;if(!e.computed&&n==="Identifier"&&(a==="static"||a==="get"||a==="set")&&!e.value&&!e.typeAnnotation)return!0;if(!t||t.static||t.accessibility||t.readonly)return!1;if(!t.computed){let o=(r=t.key)==null?void 0:r.name;if(o==="in"||o==="instanceof")return!0}if(BEi(t)&&t.variance&&!t.static&&!t.declare)return!0;switch(t.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return t.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((t.value?t.value.async:t.async)||t.kind==="get"||t.kind==="set")return!1;let o=t.value?t.value.generator:t.generator;return!!(t.computed||o)}case"TSIndexSignature":return!0}return!1}var y4a=_0(["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"]);function kEi(e){return y4a(e)?kEi(e.expression):e}var b4a=_0(["FunctionExpression","ArrowFunctionExpression"]);function E4a(e){return e.type==="MemberExpression"||e.type==="OptionalMemberExpression"||e.type==="Identifier"&&e.name!=="undefined"}function S4a(e,t){if(t.semi||GEi(e,t)||FEi(e,t))return!1;let{node:r,key:n,parent:a}=e;return!!(r.type==="ExpressionStatement"&&(n==="body"&&(a.type==="Program"||a.type==="BlockStatement"||a.type==="StaticBlock"||a.type==="TSModuleBlock")||n==="consequent"&&a.type==="SwitchCase")&&e.call(()=>xEi(e,t),"expression"))}function xEi(e,t){let{node:r}=e;switch(r.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":if(!mEi(e,t))return!0;break;case"UnaryExpression":{let{prefix:n,operator:a}=r;if(n&&(a==="+"||a==="-"))return!0;break}case"BindExpression":if(!r.object)return!0;break;case"Literal":if(r.regex)return!0;break;default:if(nD(r))return!0}return Eme(e,t)?!0:zTr(r)?e.call(()=>xEi(e,t),...zyi(r)):!1}function GEi({node:e,parent:t},r){return(r.parentParser==="markdown"||r.parentParser==="mdx")&&e.type==="ExpressionStatement"&&nD(e.expression)&&t.type==="Program"&&t.body.length===1}function FEi({node:e,parent:t},r){return(r.parser==="__vue_event_binding"||r.parser==="__vue_ts_event_binding")&&e.type==="ExpressionStatement"&&t.type==="Program"&&t.body.length===1}function v4a(e,t,r){let n=[r("expression")];if(FEi(e,t)){let a=kEi(e.node.expression);(b4a(a)||E4a(a))&&n.push(";")}else GEi(e,t)||t.semi&&n.push(";");return n}function B4a(e,t,r){if(t.__isVueBindings||t.__isVueForBindingLeft){let n=e.map(r,"program","body",0,"params");if(n.length===1)return n[0];let a=vC([",",zg],n);return t.__isVueForBindingLeft?["(",Pl([bl,Ia(a)]),bl,")"]:a}if(t.__isEmbeddedTypescriptGenericParameters){let n=e.map(r,"program","body",0,"typeParameters","params");return vC([",",zg],n)}}function w4a(e,t){let{node:r}=e;switch(r.type){case"RegExpLiteral":return Lyi(r);case"BigIntLiteral":return XTr(r.extra.raw);case"NumericLiteral":return QRe(r.extra.raw);case"StringLiteral":return pme(HRe(r.extra.raw,t));case"NullLiteral":return"null";case"BooleanLiteral":return String(r.value);case"DirectiveLiteral":return Vyi(r.extra.raw,t);case"Literal":{if(r.regex)return Lyi(r.regex);if(r.bigint)return XTr(r.raw);let{value:n}=r;return typeof n=="number"?QRe(r.raw):typeof n=="string"?T4a(e)?Vyi(r.raw,t):pme(HRe(r.raw,t)):String(n)}}}function T4a(e){if(e.key!=="expression")return;let{parent:t}=e;return t.type==="ExpressionStatement"&&t.directive}function XTr(e){return e.toLowerCase()}function Lyi({pattern:e,flags:t}){return t=[...t].sort().join(""),`/${e}/${t}`}function Vyi(e,t){let r=e.slice(1,-1);if(r.includes('"')||r.includes("'"))return e;let n=t.singleQuote?"'":'"';return n+r+n}function R4a(e,t,r){let n=e.originalText.slice(t,r);for(let a of e[Symbol.for("comments")]){let o=ZS(a);if(o>r)break;let l=BC(a);if(le.type==="ExportDefaultDeclaration"||e.type==="DeclareExportDeclaration"&&e.default;function VEi(e,t,r){let{node:n}=e,a=[oXa(e,t,r),AV(e),"export",LEi(n)?" default":""],{declaration:o,exported:l}=n;return ig(n,fA.Dangling)&&(a.push(" ",N2(e,t)),ibi(n)&&a.push(xl)),o?a.push(" ",r("declaration")):(a.push(x4a(n)),n.type==="ExportAllDeclaration"||n.type==="DeclareExportAllDeclaration"?(a.push(" *"),l&&a.push(" as ",r("exported"))):a.push(OEi(e,t,r)),a.push(WEi(e,t,r),HEi(e,t,r))),a.push(k4a(n,t)),a}var D4a=_0(["ClassDeclaration","ComponentDeclaration","FunctionDeclaration","TSInterfaceDeclaration","DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","HookDeclaration","TSDeclareFunction","EnumDeclaration"]);function k4a(e,t){return t.semi&&(!e.declaration||LEi(e)&&!D4a(e.declaration))?";":""}function IRr(e,t=!0){return e&&e!=="value"?`${t?" ":""}${e}${t?"":" "}`:""}function PEi(e,t){return IRr(e.importKind,t)}function x4a(e){return IRr(e.exportKind)}function WEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=[];return MEi(n,t)&&a.push(" from"),a.push(" ",r("source")),a}function OEi(e,t,r){let{node:n}=e;if(!MEi(n,t))return"";let a=[" "];if(H_(n.specifiers)){let o=[],l=[];e.each(()=>{let A=e.node.type;if(A==="ExportNamespaceSpecifier"||A==="ExportDefaultSpecifier"||A==="ImportNamespaceSpecifier"||A==="ImportDefaultSpecifier")o.push(r());else if(A==="ExportSpecifier"||A==="ImportSpecifier")l.push(r());else throw new jRe(n,"specifier")},"specifiers"),a.push(vC(", ",o)),l.length>0&&(o.length>0&&a.push(", "),l.length>1||o.length>0||n.specifiers.some(A=>ig(A))?a.push(Ia(["{",Pl([t.bracketSpacing?zg:bl,vC([",",zg],l)]),lh(pee(t)?",":""),t.bracketSpacing?zg:bl,"}"])):a.push(["{",t.bracketSpacing?" ":"",...l,t.bracketSpacing?" ":"","}"]))}else a.push("{}");return a}function MEi(e,t){return e.type!=="ImportDeclaration"||H_(e.specifiers)||e.importKind==="type"?!0:ZEi(t,ZS(e),ZS(e.source)).trimEnd().endsWith("from")}function G4a(e,t){var r,n;if((r=e.extra)!=null&&r.deprecatedAssertSyntax)return"assert";let a=ZEi(t,BC(e.source),(n=e.attributes)!=null&&n[0]?ZS(e.attributes[0]):BC(e)).trimStart();return a.startsWith("assert")?"assert":a.startsWith("with")||H_(e.attributes)?"with":void 0}function HEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=G4a(n,t);if(!a)return"";let o=[` ${a} {`];return H_(n.attributes)&&(t.bracketSpacing&&o.push(" "),o.push(vC(", ",e.map(r,"attributes"))),t.bracketSpacing&&o.push(" ")),o.push("}"),o}function F4a(e,t,r){let{node:n}=e,{type:a}=n,o=a.startsWith("Import"),l=o?"imported":"local",A=o?"local":"exported",f=n[l],I=n[A],C="",b="";return a==="ExportNamespaceSpecifier"||a==="ImportNamespaceSpecifier"?C="*":f&&(C=r(l)),I&&!Z4a(n)&&(b=r(A)),[IRr(a==="ImportSpecifier"?n.importKind:n.exportKind,!1),C,C&&b?" as ":"",b]}function Z4a(e){if(e.type!=="ImportSpecifier"&&e.type!=="ExportSpecifier")return!1;let{local:t,[e.type==="ImportSpecifier"?"imported":"exported"]:r}=e;if(t.type!==r.type||!PMa(t,r))return!1;if(gV(t))return t.value===r.value&&UM(t)===UM(r);switch(t.type){case"Identifier":return t.name===r.name;default:return!1}}function ubt(e,t,r){var n;let a=t.semi?";":"",{node:o}=e,l=o.type==="ObjectTypeAnnotation",A=o.type==="TSEnumDeclaration"||o.type==="EnumBooleanBody"||o.type==="EnumNumberBody"||o.type==="EnumBigIntBody"||o.type==="EnumStringBody"||o.type==="EnumSymbolBody",f=[o.type==="TSTypeLiteral"||A?"members":o.type==="TSInterfaceBody"?"body":"properties"];l&&f.push("indexers","callProperties","internalSlots");let I=f.flatMap(ue=>e.map(({node:de})=>({node:de,printed:r(),loc:ZS(de)}),ue));f.length>1&&I.sort((ue,de)=>ue.loc-de.loc);let{parent:C,key:b}=e,E=l&&b==="body"&&(C.type==="InterfaceDeclaration"||C.type==="DeclareInterface"||C.type==="DeclareClass"),N=o.type==="TSInterfaceBody"||A||E||o.type==="ObjectPattern"&&C.type!=="FunctionDeclaration"&&C.type!=="FunctionExpression"&&C.type!=="ArrowFunctionExpression"&&C.type!=="ObjectMethod"&&C.type!=="ClassMethod"&&C.type!=="ClassPrivateMethod"&&C.type!=="AssignmentPattern"&&C.type!=="CatchClause"&&o.properties.some(ue=>ue.value&&(ue.value.type==="ObjectPattern"||ue.value.type==="ArrayPattern"))||o.type!=="ObjectPattern"&&t.objectWrap==="preserve"&&I.length>0&&ace(t.originalText,ZS(o),I[0].loc),B=E?";":o.type==="TSInterfaceBody"||o.type==="TSTypeLiteral"?lh(a,";"):",",F=o.type==="RecordExpression"?"#{":o.exact?"{|":"{",Q=o.exact?"|}":"}",X=[],ae=I.map(ue=>{let de=[...X,Ia(ue.printed)];return X=[B,zg],(ue.node.type==="TSPropertySignature"||ue.node.type==="TSMethodSignature"||ue.node.type==="TSConstructSignatureDeclaration"||ue.node.type==="TSCallSignatureDeclaration")&&ig(ue.node,fA.PrettierIgnore)&&X.shift(),fee(ue.node,t)&&X.push(xl),de});if(o.inexact||o.hasUnknownMembers){let ue;if(ig(o,fA.Dangling)){let de=ig(o,fA.Line);ue=[N2(e,t),de||dO(t.originalText,BC(U0(!1,PRe(o),-1)))?xl:zg,"..."]}else ue=["..."];ae.push([...X,...ue])}let ne=(n=U0(!1,I,-1))==null?void 0:n.node,ce=!(o.inexact||o.hasUnknownMembers||ne&&(ne.type==="RestElement"||(ne.type==="TSPropertySignature"||ne.type==="TSCallSignatureDeclaration"||ne.type==="TSMethodSignature"||ne.type==="TSConstructSignatureDeclaration")&&ig(ne,fA.PrettierIgnore))),fe;if(ae.length===0){if(!ig(o,fA.Dangling))return[F,Q,Lk(e,r)];fe=Ia([F,N2(e,t,{indent:!0}),bl,Q,KZ(e),Lk(e,r)])}else fe=[E&&H_(o.properties)?I4a(C):"",F,Pl([t.bracketSpacing?zg:bl,...ae]),lh(ce&&(B!==","||pee(t))?B:""),t.bracketSpacing?zg:bl,Q,KZ(e),Lk(e,r)];return e.match(ue=>ue.type==="ObjectPattern"&&!H_(ue.decorators),RTr)||nce(o)&&(e.match(void 0,(ue,de)=>de==="typeAnnotation",(ue,de)=>de==="typeAnnotation",RTr)||e.match(void 0,(ue,de)=>ue.type==="FunctionTypeParam"&&de==="typeAnnotation",RTr))||!N&&e.match(ue=>ue.type==="ObjectPattern",ue=>ue.type==="AssignmentExpression"||ue.type==="VariableDeclarator")?fe:Ia(fe,{shouldBreak:N})}function RTr(e,t){return(t==="params"||t==="parameters"||t==="this"||t==="rest")&&jbi(e)}function L4a(e){let t=[e];for(let r=0;rE[Se]===n),B=E.type===n.type&&!N,F,Q,X=0;do Q=F||n,F=e.getParentNode(X),X++;while(F&&F.type===n.type&&A.every(Se=>F[Se]!==Q));let ae=F||E,ne=Q;if(a&&(nD(n[A[0]])||nD(f)||nD(I)||L4a(ne))){b=!0,B=!0;let Se=k=>[lh("("),Pl([bl,k]),bl,lh(")")],De=k=>k.type==="NullLiteral"||k.type==="Literal"&&k.value===null||k.type==="Identifier"&&k.name==="undefined";C.push(" ? ",De(f)?r(o):Se(r(o))," : ",I.type===n.type||De(I)?r(l):Se(r(l)))}else{let Se=k=>t.useTabs?Pl(r(k)):oj(2,r(k)),De=[zg,"? ",f.type===n.type?lh("","("):"",Se(o),f.type===n.type?lh("",")"):"",zg,": ",Se(l)];C.push(E.type!==n.type||E[l]===n||N?De:t.useTabs?gbi(Pl(De)):oj(Math.max(0,t.tabWidth-2),De))}let ce=[o,l,...A].some(Se=>ig(n[Se],De=>zM(De)&&ace(t.originalText,ZS(De),BC(De)))),fe=Se=>E===ae?Ia(Se,{shouldBreak:ce}):ce?[Se,aj]:Se,ue=!b&&(Yv(E)||E.type==="NGPipeExpression"&&E.left===n)&&!E.computed,de=W4a(e),be=fe([V4a(e,t,r),B?C:Pl(C),a&&ue&&!de?bl:""]);return N||de?Ia([Pl([bl,be]),bl]):be}function M4a(e,t){return(Yv(t)||t.type==="NGPipeExpression"&&t.left===e)&&!t.computed}function H4a(e,t,r,n){return[...e.map(a=>PRe(a)),PRe(t),PRe(r)].flat().some(a=>zM(a)&&ace(n.originalText,ZS(a),BC(a)))}var Y4a=new Map([["AssignmentExpression","right"],["VariableDeclarator","init"],["ReturnStatement","argument"],["ThrowStatement","argument"],["UnaryExpression","argument"],["YieldExpression","argument"],["AwaitExpression","argument"]]);function Q4a(e){let{node:t}=e;if(t.type!=="ConditionalExpression")return!1;let r,n=t;for(let a=0;!r;a++){let o=e.getParentNode(a);if(o.type==="ChainExpression"&&o.expression===n||b_(o)&&o.callee===n||Yv(o)&&o.object===n||o.type==="TSNonNullExpression"&&o.expression===n){n=o;continue}o.type==="NewExpression"&&o.callee===n||nj(o)&&o.expression===n?(r=e.getParentNode(a+1),n=o):r=o}return n===t?!1:r[Y4a.get(r.type)]===n}var NTr=e=>[lh("("),Pl([bl,e]),bl,lh(")")];function hRr(e,t,r,n){if(!t.experimentalTernaries)return O4a(e,t,r);let{node:a}=e,o=a.type==="ConditionalExpression",l=oce(a),A=o?"consequent":"trueType",f=o?"alternate":"falseType",I=o?["test"]:["checkType","extendsType"],C=a[A],b=a[f],E=I.map(ke=>a[ke]),{parent:N}=e,B=N.type===a.type,F=B&&I.some(ke=>N[ke]===a),Q=B&&N[f]===a,X=C.type===a.type,ae=b.type===a.type,ne=ae||Q,ce=t.tabWidth>2||t.useTabs,fe,ue,de=0;do ue=fe||a,fe=e.getParentNode(de),de++;while(fe&&fe.type===a.type&&I.every(ke=>fe[ke]!==ue));let be=fe||N,Se=n&&n.assignmentLayout&&n.assignmentLayout!=="break-after-operator"&&(N.type==="AssignmentExpression"||N.type==="VariableDeclarator"||N.type==="ClassProperty"||N.type==="PropertyDefinition"||N.type==="ClassPrivateProperty"||N.type==="ObjectProperty"||N.type==="Property"),De=(N.type==="ReturnStatement"||N.type==="ThrowStatement")&&!(X||ae),k=o&&be.type==="JSXExpressionContainer"&&e.grandparent.type!=="JSXAttribute",et=Q4a(e),ct=M4a(a,N),Me=l&&Eme(e,t),je=ce?t.useTabs?" ":" ".repeat(t.tabWidth-1):"",St=H4a(E,C,b,t)||X||ae,At=!ne&&!B&&!l&&(k?C.type==="NullLiteral"||C.type==="Literal"&&C.value===null:eRr(C,t)&&hyi(a.test,3)),Yt=ne||Q||l&&!B||B&&o&&hyi(a.test,1)||At,Tr=[];!X&&ig(C,fA.Dangling)&&e.call(ke=>{Tr.push(N2(ke,t),xl)},"consequent");let Nr=[];ig(a.test,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"test"),!ae&&ig(b,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"alternate"),ig(a,fA.Dangling)&&Nr.push(N2(e,t));let er=Symbol("test"),vt=Symbol("consequent"),xt=Symbol("test-and-consequent"),Zr=o?[NTr(r("test")),a.test.type==="ConditionalExpression"?aj:""]:[r("checkType")," ","extends"," ",oce(a.extendsType)||a.extendsType.type==="TSMappedType"?r("extendsType"):Ia(NTr(r("extendsType")))],qt=Ia([Zr," ?"],{id:er}),Xt=r(A),lr=Pl([X||k&&(nD(C)||B||ne)?xl:zg,Tr,Xt]),cr=Yt?Ia([qt,ne?lr:lh(lr,Ia(lr,{id:vt}),{groupId:er})],{id:xt}):[qt,lr],Ar=r(f),qr=At?lh(Ar,gbi(NTr(Ar)),{groupId:xt}):Ar,_n=[cr,Nr.length>0?[Pl([xl,Nr]),xl]:ae?xl:At?lh(zg," ",{groupId:xt}):zg,":",ae?" ":ce?Yt?lh(je,lh(ne||At?" ":je," "),{groupId:xt}):lh(je," "):" ",ae?qr:Ia([Pl(qr),k&&!At?bl:""]),ct&&!et?bl:"",St?aj:""];return Se&&!St?Ia(Pl([bl,Ia(_n)])):Se||De?Ia(Pl(_n)):et||l&&F?Ia([Pl([bl,_n]),Me?bl:""]):N===be?Ia(_n):_n}function X4a(e,t,r,n){let{node:a}=e;if(qTr(a))return w4a(e,t);let o=t.semi?";":"",l=[];switch(a.type){case"JsExpressionRoot":return r("node");case"JsonRoot":return[r("node"),xl];case"File":return B4a(e,t,r)??r("program");case"EmptyStatement":return"";case"ExpressionStatement":return v4a(e,t,r);case"ChainExpression":return r("expression");case"ParenthesizedExpression":return!ig(a.expression)&&(e4(a.expression)||Vk(a.expression))?["(",r("expression"),")"]:Ia(["(",Pl([bl,r("expression")]),bl,")"]);case"AssignmentExpression":return mXa(e,t,r);case"VariableDeclarator":return CXa(e,t,r);case"BinaryExpression":case"LogicalExpression":return Pbi(e,t,r);case"AssignmentPattern":return[r("left")," = ",r("right")];case"OptionalMemberExpression":case"MemberExpression":return fXa(e,t,r);case"MetaProperty":return[r("meta"),".",r("property")];case"BindExpression":return a.object&&l.push(r("object")),l.push(Ia(Pl([bl,AEi(e,t,r)]))),l;case"Identifier":return[a.name,KZ(e),gEi(e),Lk(e,r)];case"V8IntrinsicIdentifier":return["%",a.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadPropertyPattern":case"RestElement":return dEi(e,r);case"FunctionDeclaration":case"FunctionExpression":return hEi(e,r,t,n);case"ArrowFunctionExpression":return r4a(e,t,r,n);case"YieldExpression":return l.push("yield"),a.delegate&&l.push("*"),a.argument&&l.push(" ",r("argument")),l;case"AwaitExpression":if(l.push("await"),a.argument){l.push(" ",r("argument"));let{parent:A}=e;if(b_(A)&&A.callee===a||Yv(A)&&A.object===a){l=[Pl([bl,...l]),bl];let f=e.findAncestor(I=>I.type==="AwaitExpression"||I.type==="BlockStatement");if(f?.type!=="AwaitExpression"||!JZ(f.argument,I=>I===a))return Ia(l)}}return l;case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return VEi(e,t,r);case"ImportDeclaration":return N4a(e,t,r);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return F4a(e,t,r);case"ImportAttribute":return BTr(e,t,r);case"Program":case"BlockStatement":case"StaticBlock":return bEi(e,t,r);case"ClassBody":return C4a(e,t,r);case"ThrowStatement":return e4a(e,t,r);case"ReturnStatement":return $Xa(e,t,r);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return Xbi(e,t,r);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return ubt(e,t,r);case"Property":return ibt(a)?YTr(e,t,r):BTr(e,t,r);case"ObjectProperty":return BTr(e,t,r);case"ObjectMethod":return YTr(e,t,r);case"Decorator":return["@",r("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return dRr(e,t,r);case"SequenceExpression":{let{parent:A}=e;if(A.type==="ExpressionStatement"||A.type==="ForStatement"){let f=[];return e.each(({isFirst:I})=>{I?f.push(r()):f.push(",",Pl([zg,r()]))},"expressions"),Ia(f)}return Ia(vC([",",zg],e.map(r,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[r("value"),o];case"UnaryExpression":return l.push(a.operator),/[a-z]$/u.test(a.operator)&&l.push(" "),ig(a.argument)?l.push(Ia(["(",Pl([bl,r("argument")]),bl,")"])):l.push(r("argument")),l;case"UpdateExpression":return[a.prefix?a.operator:"",r("argument"),a.prefix?"":a.operator];case"ConditionalExpression":return hRr(e,t,r,n);case"VariableDeclaration":{let A=e.map(r,"declarations"),f=e.parent,I=f.type==="ForStatement"||f.type==="ForInStatement"||f.type==="ForOfStatement",C=a.declarations.some(E=>E.init),b;return A.length===1&&!ig(a.declarations[0])?b=A[0]:A.length>0&&(b=Pl(A[0])),l=[AV(e),a.kind,b?[" ",b]:"",Pl(A.slice(1).map(E=>[",",C&&!I?xl:zg,E]))],I&&f.body!==a||l.push(o),Ia(l)}case"WithStatement":return Ia(["with (",r("object"),")",tce(a.body,r("body"))]);case"IfStatement":{let A=tce(a.consequent,r("consequent")),f=Ia(["if (",Ia([Pl([bl,r("test")]),bl]),")",A]);if(l.push(f),a.alternate){let I=ig(a.consequent,fA.Trailing|fA.Line)||ibi(a),C=a.consequent.type==="BlockStatement"&&!I;l.push(C?" ":xl),ig(a,fA.Dangling)&&l.push(N2(e,t),I?xl:" "),l.push("else",Ia(tce(a.alternate,r("alternate"),a.alternate.type==="IfStatement")))}return l}case"ForStatement":{let A=tce(a.body,r("body")),f=N2(e,t),I=f?[f,bl]:"";return!a.init&&!a.test&&!a.update?[I,Ia(["for (;;)",A])]:[I,Ia(["for (",Ia([Pl([bl,r("init"),";",zg,r("test"),";",zg,r("update")]),bl]),")",A])]}case"WhileStatement":return Ia(["while (",Ia([Pl([bl,r("test")]),bl]),")",tce(a.body,r("body"))]);case"ForInStatement":return Ia(["for (",r("left")," in ",r("right"),")",tce(a.body,r("body"))]);case"ForOfStatement":return Ia(["for",a.await?" await":""," (",r("left")," of ",r("right"),")",tce(a.body,r("body"))]);case"DoWhileStatement":{let A=tce(a.body,r("body"));return l=[Ia(["do",A])],a.body.type==="BlockStatement"?l.push(" "):l.push(xl),l.push("while (",Ia([Pl([bl,r("test")]),bl]),")",o),l}case"DoExpression":return[a.async?"async ":"","do ",r("body")];case"BreakStatement":case"ContinueStatement":return l.push(a.type==="BreakStatement"?"break":"continue"),a.label&&l.push(" ",r("label")),l.push(o),l;case"LabeledStatement":return a.body.type==="EmptyStatement"?[r("label"),":;"]:[r("label"),": ",r("body")];case"TryStatement":return["try ",r("block"),a.handler?[" ",r("handler")]:"",a.finalizer?[" finally ",r("finalizer")]:""];case"CatchClause":if(a.param){let A=ig(a.param,I=>!zM(I)||I.leading&&dO(t.originalText,BC(I))||I.trailing&&dO(t.originalText,ZS(I),{backwards:!0})),f=r("param");return["catch ",A?["(",Pl([bl,f]),bl,") "]:["(",f,") "],r("body")]}return["catch ",r("body")];case"SwitchStatement":return[Ia(["switch (",Pl([bl,r("discriminant")]),bl,")"])," {",a.cases.length>0?Pl([xl,vC(xl,e.map(({node:A,isLast:f})=>[r(),!f&&fee(A,t)?xl:""],"cases"))]):"",xl,"}"];case"SwitchCase":{a.test?l.push("case ",r("test"),":"):l.push("default:"),ig(a,fA.Dangling)&&l.push(" ",N2(e,t));let A=a.consequent.filter(f=>f.type!=="EmptyStatement");if(A.length>0){let f=QTr(e,t,r,"consequent");l.push(A.length===1&&A[0].type==="BlockStatement"?[" ",f]:Pl([xl,f]))}return l}case"DebuggerStatement":return["debugger",o];case"ClassDeclaration":case"ClassExpression":return wEi(e,t,r);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return NEi(e,t,r);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":case"AccessorProperty":return DEi(e,t,r);case"TemplateElement":return pme(a.value.raw);case"TemplateLiteral":return Rbi(e,r,t);case"TaggedTemplateExpression":return TYa(e,r);case"PrivateIdentifier":return["#",a.name];case"PrivateName":return["#",r("id")];case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":return["module ",r("body")];case"InterpreterDirective":default:throw new jRe(a,"ESTree")}}function YEi(e,t,r){let{parent:n,node:a,key:o}=e,l=[r("expression")];switch(a.type){case"AsConstExpression":l.push(" as const");break;case"AsExpression":case"TSAsExpression":l.push(" as ",r("typeAnnotation"));break;case"SatisfiesExpression":case"TSSatisfiesExpression":l.push(" satisfies ",r("typeAnnotation"));break}return o==="callee"&&b_(n)||o==="object"&&Yv(n)?Ia([Pl([bl,...l]),bl]):l}function J4a(e,t,r){let{node:n}=e,a=[AV(e),"component"];n.id&&a.push(" ",r("id")),a.push(r("typeParameters"));let o=U4a(e,r,t);return n.rendersType?a.push(Ia([o," ",r("rendersType")])):a.push(Ia([o])),n.body&&a.push(" ",r("body")),t.semi&&n.type==="DeclareComponent"&&a.push(";"),a}function U4a(e,t,r){let{node:n}=e,a=n.params;if(n.rest&&(a=[...a,n.rest]),a.length===0)return["(",N2(e,r,{filter:l=>t4(r.originalText,BC(l))===")"}),")"];let o=[];return j4a(e,(l,A)=>{let f=A===a.length-1;f&&n.rest&&o.push("..."),o.push(t()),!f&&(o.push(","),fee(a[A],r)?o.push(xl,xl):o.push(zg))}),["(",Pl([bl,...o]),lh(pee(r,"all")&&!K4a(n,a)?",":""),bl,")"]}function K4a(e,t){var r;return e.rest||((r=U0(!1,t,-1))==null?void 0:r.type)==="RestElement"}function j4a(e,t){let{node:r}=e,n=0,a=o=>t(o,n++);e.each(a,"params"),r.rest&&e.call(a,"rest")}function z4a(e,t,r){let{node:n}=e;return n.shorthand?r("local"):[r("name")," as ",r("local")]}function q4a(e,t,r){let{node:n}=e,a=[];return n.name&&a.push(r("name"),n.optional?"?: ":": "),a.push(r("typeAnnotation")),a}function QEi(e,t,r){return ubt(e,r,t)}function XEi(e,t){let{node:r}=e,n=t("id");r.computed&&(n=["[",n,"]"]);let a="";return r.initializer&&(a=t("initializer")),r.init&&(a=t("init")),a?[n," = ",a]:n}function $4a(e,t,r){let{node:n}=e,a;if(n.type==="EnumSymbolBody"||n.explicitType)switch(n.type){case"EnumBooleanBody":a="boolean";break;case"EnumNumberBody":a="number";break;case"EnumBigIntBody":a="bigint";break;case"EnumStringBody":a="string";break;case"EnumSymbolBody":a="symbol";break}return[a?`of ${a} `:"",QEi(e,t,r)]}function JEi(e,t,r){let{node:n}=e;return[AV(e),n.const?"const ":"","enum ",t("id")," ",n.type==="TSEnumDeclaration"?QEi(e,t,r):t("body")]}function eJa(e,t,r){let{node:n}=e,a=["hook"];n.id&&a.push(" ",r("id"));let o=Sme(e,r,t,!1,!0),l=lbt(e,r),A=zRe(n,l);return a.push(Ia([A?Ia(o):o,l]),n.body?" ":"",r("body")),a}function tJa(e,t,r){let{node:n}=e,a=[AV(e),"hook"];return n.id&&a.push(" ",r("id")),t.semi&&a.push(";"),a}function Pyi(e){var t;let{node:r}=e;return r.type==="HookTypeAnnotation"&&((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareHook"}function rJa(e,t,r){let{node:n}=e,a=[];a.push(Pyi(e)?"":"hook ");let o=Sme(e,r,t,!1,!0),l=[];return l.push(Pyi(e)?": ":" => ",r("returnType")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function UEi(e,t,r){let{node:n}=e,a=[AV(e),"interface"],o=[],l=[];n.type!=="InterfaceTypeAnnotation"&&o.push(" ",r("id"),r("typeParameters"));let A=n.typeParameters&&!ig(n.typeParameters,fA.Trailing|fA.Line);return H_(n.extends)&&l.push(A?lh(" ",zg,{groupId:fRr(n.typeParameters)}):zg,"extends ",(n.extends.length===1?gHa:Pl)(vC([",",zg],e.map(r,"extends")))),ig(n.id,fA.Trailing)||H_(n.extends)?A?a.push(Ia([...o,Pl(l)])):a.push(Ia(Pl([...o,...l]))):a.push(...o,...l),a.push(" ",r("body")),Ia(a)}function nJa(e,t,r){let{node:n}=e;if(Kyi(n))return n.type.slice(0,-14).toLowerCase();let a=t.semi?";":"";switch(n.type){case"ComponentDeclaration":case"DeclareComponent":case"ComponentTypeAnnotation":return J4a(e,t,r);case"ComponentParameter":return z4a(e,t,r);case"ComponentTypeParameter":return q4a(e,t,r);case"HookDeclaration":return eJa(e,t,r);case"DeclareHook":return tJa(e,t,r);case"HookTypeAnnotation":return rJa(e,t,r);case"DeclareClass":return wEi(e,t,r);case"DeclareFunction":return[AV(e),"function ",r("id"),r("predicate"),a];case"DeclareModule":return["declare module ",r("id")," ",r("body")];case"DeclareModuleExports":return["declare module.exports",Lk(e,r),a];case"DeclareNamespace":return["declare namespace ",r("id")," ",r("body")];case"DeclareVariable":return[AV(e),n.kind??"var"," ",r("id"),a];case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return VEi(e,t,r);case"DeclareOpaqueType":case"OpaqueType":return VXa(e,t,r);case"DeclareTypeAlias":case"TypeAlias":return qbi(e,t,r);case"IntersectionTypeAnnotation":return $bi(e,t,r);case"UnionTypeAnnotation":return eEi(e,t,r);case"ConditionalTypeAnnotation":return hRr(e,t,r);case"InferTypeAnnotation":return nEi(e,t,r);case"FunctionTypeAnnotation":return tEi(e,t,r);case"TupleTypeAnnotation":return dRr(e,t,r);case"TupleTypeLabeledElement":return sEi(e,t,r);case"TupleTypeSpreadElement":return iEi(e,t,r);case"GenericTypeAnnotation":return[r("id"),w4e(e,t,r,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return rEi(e,t,r);case"TypeAnnotation":return aEi(e,t,r);case"TypeParameter":return vEi(e,t,r);case"TypeofTypeAnnotation":return lEi(e,r);case"ExistsTypeAnnotation":return"*";case"ArrayTypeAnnotation":return cEi(r);case"DeclareEnum":case"EnumDeclaration":return JEi(e,r,t);case"EnumBooleanBody":case"EnumNumberBody":case"EnumBigIntBody":case"EnumStringBody":case"EnumSymbolBody":return $4a(e,r,t);case"EnumBooleanMember":case"EnumNumberMember":case"EnumBigIntMember":case"EnumStringMember":case"EnumDefaultedMember":return XEi(e,r);case"FunctionTypeParam":{let o=n.name?r("name"):e.parent.this===n?"this":"";return[o,KZ(e),o?": ":"",r("typeAnnotation")]}case"DeclareInterface":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return UEi(e,t,r);case"ClassImplements":case"InterfaceExtends":return[r("id"),r("typeParameters")];case"NullableTypeAnnotation":return["?",r("typeAnnotation")];case"Variance":{let{kind:o}=n;return jTr.ok(o==="plus"||o==="minus"),o==="plus"?"+":"-"}case"KeyofTypeAnnotation":return["keyof ",r("argument")];case"ObjectTypeCallProperty":return[n.static?"static ":"",r("value")];case"ObjectTypeMappedTypeProperty":return A4a(e,t,r);case"ObjectTypeIndexer":return[n.static?"static ":"",n.variance?r("variance"):"","[",r("id"),n.id?": ":"",r("key"),"]: ",r("value")];case"ObjectTypeProperty":{let o="";return n.proto?o="proto ":n.static&&(o="static "),[o,n.kind!=="init"?n.kind+" ":"",n.variance?r("variance"):"",G4e(e,t,r),KZ(e),ibt(n)?"":": ",r("value")]}case"ObjectTypeAnnotation":return ubt(e,t,r);case"ObjectTypeInternalSlot":return[n.static?"static ":"","[[",r("id"),"]]",KZ(e),n.method?"":": ",r("value")];case"ObjectTypeSpreadProperty":return dEi(e,r);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[r("qualification"),".",r("id")];case"NullLiteralTypeAnnotation":return"null";case"BooleanLiteralTypeAnnotation":return String(n.value);case"StringLiteralTypeAnnotation":return pme(HRe(UM(n),t));case"NumberLiteralTypeAnnotation":return QRe(n.raw??n.extra.raw);case"BigIntLiteralTypeAnnotation":return XTr(n.raw??n.extra.raw);case"TypeCastExpression":return["(",r("expression"),Lk(e,r),")"];case"TypePredicate":return uEi(e,r);case"TypeOperator":return[n.operator," ",r("typeAnnotation")];case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w4e(e,t,r,"params");case"InferredPredicate":case"DeclaredPredicate":return[e.key==="predicate"&&e.parent.type!=="DeclareFunction"&&!e.parent.returnType?": ":" ","%checks",...n.type==="DeclaredPredicate"?["(",r("value"),")"]:[]];case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return YEi(e,t,r)}}function iJa(e,t,r){var n;let{node:a}=e;if(!a.type.startsWith("TS"))return;if(jyi(a))return a.type.slice(2,-7).toLowerCase();let o=t.semi?";":"",l=[];switch(a.type){case"TSThisType":return"this";case"TSTypeAssertion":{let A=!(Vk(a.expression)||e4(a.expression)),f=Ia(["<",Pl([bl,r("typeAnnotation")]),bl,">"]),I=[lh("("),Pl([bl,r("expression")]),bl,lh(")")];return A?dme([[f,r("expression")],[f,Ia(I,{shouldBreak:!0})],[f,r("expression")]]):Ia([f,r("expression")])}case"TSDeclareFunction":return hEi(e,r,t);case"TSExportAssignment":return["export = ",r("expression"),o];case"TSModuleBlock":return bEi(e,t,r);case"TSInterfaceBody":case"TSTypeLiteral":return ubt(e,t,r);case"TSTypeAliasDeclaration":return qbi(e,t,r);case"TSQualifiedName":return[r("left"),".",r("right")];case"TSAbstractMethodDefinition":case"TSDeclareMethod":return NEi(e,t,r);case"TSAbstractAccessorProperty":case"TSAbstractPropertyDefinition":return DEi(e,t,r);case"TSInterfaceHeritage":case"TSClassImplements":case"TSExpressionWithTypeArguments":case"TSInstantiationExpression":return[r("expression"),r(a.typeArguments?"typeArguments":"typeParameters")];case"TSTemplateLiteralType":return Rbi(e,r,t);case"TSNamedTupleMember":return sEi(e,t,r);case"TSRestType":return iEi(e,t,r);case"TSOptionalType":return[r("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return UEi(e,t,r);case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return w4e(e,t,r,"params");case"TSTypeParameter":return vEi(e,t,r);case"TSAsExpression":case"TSSatisfiesExpression":return YEi(e,t,r);case"TSArrayType":return cEi(r);case"TSPropertySignature":return[a.readonly?"readonly ":"",G4e(e,t,r),KZ(e),Lk(e,r)];case"TSParameterProperty":return[ebt(a),a.static?"static ":"",a.override?"override ":"",a.readonly?"readonly ":"",r("parameter")];case"TSTypeQuery":return lEi(e,r);case"TSIndexSignature":{let A=a.parameters.length>1?lh(pee(t)?",":""):"",f=Ia([Pl([bl,vC([", ",bl],e.map(r,"parameters"))]),A,bl]),I=e.parent.type==="ClassBody"&&e.key==="body";return[I&&a.static?"static ":"",a.readonly?"readonly ":"","[",a.parameters?f:"","]",Lk(e,r),I?o:""]}case"TSTypePredicate":return uEi(e,r);case"TSNonNullExpression":return[r("expression"),"!"];case"TSImportType":return["import(",r("argument"),")",a.qualifier?[".",r("qualifier")]:"",w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSLiteralType":return r("literal");case"TSIndexedAccessType":return rEi(e,t,r);case"TSTypeOperator":return[a.operator," ",r("typeAnnotation")];case"TSMappedType":return d4a(e,t,r);case"TSMethodSignature":{let A=a.kind&&a.kind!=="method"?`${a.kind} `:"";l.push(ebt(a),A,a.computed?"[":"",r("key"),a.computed?"]":"",KZ(e));let f=Sme(e,r,t,!1,!0),I=a.returnType?"returnType":"typeAnnotation",C=a[I],b=C?Lk(e,r,I):"",E=zRe(a,b);return l.push(E?Ia(f):f),C&&l.push(Ia(b)),Ia(l)}case"TSNamespaceExportDeclaration":return["export as namespace ",r("id"),t.semi?";":""];case"TSEnumDeclaration":return JEi(e,r,t);case"TSEnumMember":return XEi(e,r);case"TSImportEqualsDeclaration":return[a.isExport?"export ":"","import ",PEi(a,!1),r("id")," = ",r("moduleReference"),t.semi?";":""];case"TSExternalModuleReference":return["require(",r("expression"),")"];case"TSModuleDeclaration":{let{parent:A}=e,f=A.type==="TSModuleDeclaration",I=((n=a.body)==null?void 0:n.type)==="TSModuleDeclaration";return f?l.push("."):(l.push(AV(e)),a.kind!=="global"&&l.push(a.kind," ")),l.push(r("id")),I?l.push(r("body")):a.body?l.push(" ",Ia(r("body"))):l.push(o),l}case"TSConditionalType":return hRr(e,t,r);case"TSInferType":return nEi(e,t,r);case"TSIntersectionType":return $bi(e,t,r);case"TSUnionType":return eEi(e,t,r);case"TSFunctionType":case"TSCallSignatureDeclaration":case"TSConstructorType":case"TSConstructSignatureDeclaration":return tEi(e,t,r);case"TSTupleType":return dRr(e,t,r);case"TSTypeReference":return[r("typeName"),w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSTypeAnnotation":return aEi(e,t,r);case"TSEmptyBodyFunctionExpression":return pRr(e,t,r);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Fyi(e,r,"?");case"TSJSDocNonNullableType":return Fyi(e,r,"!");case"TSParenthesizedType":default:throw new jRe(a,"TypeScript")}}function sJa(e,t,r,n){if(Vbi(e))return _Qa(e,t);for(let a of[nXa,jQa,nJa,iJa,X4a]){let o=a(e,t,r,n);if(o!==void 0)return o}}var oJa=_0(["ClassMethod","ClassPrivateMethod","ClassProperty","ClassAccessorProperty","AccessorProperty","TSAbstractAccessorProperty","PropertyDefinition","TSAbstractPropertyDefinition","ClassPrivateProperty","MethodDefinition","TSAbstractMethodDefinition","TSDeclareMethod"]);function aJa(e,t,r,n){var a;e.isRoot&&((a=t.__onHtmlBindingRoot)==null||a.call(t,e.node,t));let o=sJa(e,t,r,n);if(!o)return"";let{node:l}=e;if(oJa(l))return o;let A=H_(l.decorators),f=aXa(e,t,r),I=l.type==="ClassExpression";if(A&&!I)return GTr(o,E=>Ia([f,E]));let C=Eme(e,t),b=S4a(e,t);return!f&&!C&&!b?o:GTr(o,E=>[b?";":"",C?"(":"",C&&I&&A?[Pl([zg,f,E]),zg]:[f,E],C?")":""])}var cJa=aJa,lJa={avoidAstMutation:!0},uJa=[{linguistLanguageId:174,name:"JSON.stringify",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"],parsers:["json-stringify"],vscodeLanguageIds:["json"]},{linguistLanguageId:174,name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","flake.lock","mcmod.info",".babelrc",".jscsrc",".jshintrc",".jslintrc",".swcrc"],parsers:["json"],vscodeLanguageIds:["json"]},{linguistLanguageId:423,name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".code-workspace",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[],parsers:["jsonc"],vscodeLanguageIds:["jsonc"]},{linguistLanguageId:175,name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",parsers:["json5"],vscodeLanguageIds:["json5"]}],KEi={};tbt(KEi,{getVisitorKeys:()=>pJa,massageAstNode:()=>jEi,print:()=>fJa});var gJa={JsonRoot:["node"],ArrayExpression:["elements"],ObjectExpression:["properties"],ObjectProperty:["key","value"],UnaryExpression:["argument"],NullLiteral:[],BooleanLiteral:[],StringLiteral:[],NumericLiteral:[],Identifier:[],TemplateLiteral:["quasis"],TemplateElement:[]},AJa=gJa,dJa=Jyi(AJa),pJa=dJa;function fJa(e,t,r){let{node:n}=e;switch(n.type){case"JsonRoot":return[r("node"),xl];case"ArrayExpression":{if(n.elements.length===0)return"[]";let a=e.map(()=>e.node===null?"null":r(),"elements");return["[",Pl([xl,vC([",",xl],a)]),xl,"]"]}case"ObjectExpression":return n.properties.length===0?"{}":["{",Pl([xl,vC([",",xl],e.map(r,"properties"))]),xl,"}"];case"ObjectProperty":return[r("key"),": ",r("value")];case"UnaryExpression":return[n.operator==="+"?"":n.operator,r("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return n.value?"true":"false";case"StringLiteral":return JSON.stringify(n.value);case"NumericLiteral":return Wyi(e)?JSON.stringify(String(n.value)):JSON.stringify(n.value);case"Identifier":return Wyi(e)?JSON.stringify(n.name):n.name;case"TemplateLiteral":return r(["quasis",0]);case"TemplateElement":return JSON.stringify(n.value.cooked);default:throw new jRe(n,"JSON")}}function Wyi(e){return e.key==="key"&&e.parent.type==="ObjectProperty"}var IJa=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function jEi(e,t){let{type:r}=e;if(r==="ObjectProperty"){let{key:n}=e;n.type==="Identifier"?t.key={type:"StringLiteral",value:n.name}:n.type==="NumericLiteral"&&(t.key={type:"StringLiteral",value:String(n.value)});return}if(r==="UnaryExpression"&&e.operator==="+")return t.argument;if(r==="ArrayExpression"){for(let[n,a]of e.elements.entries())a===null&&t.elements.splice(n,0,{type:"NullLiteral"});return}if(r==="TemplateLiteral")return{type:"StringLiteral",value:e.quasis[0].value.cooked}}jEi.ignoredProperties=IJa;var E4e={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},rce="JavaScript",hJa={arrowParens:{category:rce,type:"choice",default:"always",description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:E4e.bracketSameLine,objectWrap:E4e.objectWrap,bracketSpacing:E4e.bracketSpacing,jsxBracketSameLine:{category:rce,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{category:rce,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},experimentalOperatorPosition:{category:rce,type:"choice",default:"end",description:"Where to print operators when binary expressions wrap lines.",choices:[{value:"start",description:"Print operators at the start of new lines."},{value:"end",description:"Print operators at the end of previous lines."}]},experimentalTernaries:{category:rce,type:"boolean",default:!1,description:"Use curious ternaries, with the question mark after the condition.",oppositeDescription:"Default behavior of ternaries; keep question marks on the same line as the consequent."},singleQuote:E4e.singleQuote,jsxSingleQuote:{category:rce,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{category:rce,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{category:rce,type:"choice",default:"all",description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"all",description:"Trailing commas wherever possible (including function arguments)."},{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."}]},singleAttributePerLine:E4e.singleAttributePerLine},zEi=hJa,qRe={estree:Yyi,"estree-json":KEi},qEi=[...AMa,...uJa],mJa=Hyi;var W4e={};sI(W4e,{default:()=>YUa,languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var CJa=Object.defineProperty,n1i=(e,t)=>{for(var r in t)CJa(e,r,{get:t[r],enumerable:!0})},i1i={};n1i(i1i,{languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var _Ja=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},mRr=_Ja,yJa="indent",bJa="group",EJa="if-break",ERr="line",SJa="break-parent",s1i=()=>{},V4e=s1i,o1i=s1i;function pV(e){return V4e(e),{type:yJa,contents:e}}function $M(e,t={}){return V4e(e),o1i(t.expandedStates,!0),{type:bJa,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function lj(e,t="",r={}){return V4e(e),t!==""&&V4e(t),{type:EJa,breakContents:e,flatContents:t,groupId:r.groupId}}var vJa={type:SJa},BJa={type:ERr,hard:!0},eNe={type:ERr},Qv={type:ERr,soft:!0},AT=[BJa,vJa];function Wk(e,t){V4e(e),o1i(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l1?xl:zg;return Ia(["<",r("name"),o.typeArguments?r("typeArguments"):r("typeParameters"),Pl(e.map(()=>[f,r()],"attributes")),...HQa(o,t,l)],{shouldBreak:A})}function HQa(e,t,r){return e.selfClosing?[zg,"/>"]:YQa(e,t,r)?[">"]:[bl,">"]}function YQa(e,t,r){let n=e.attributes.length>0&&ig(U0(!1,e.attributes,-1),fA.Trailing);return e.attributes.length===0&&!r||(t.bracketSameLine||t.jsxBracketSameLine)&&(!r||e.attributes.length>0)&&!n}function QQa(e,t,r){let{node:n}=e,a=[];a.push(""),a}function XQa(e,t){let{node:r}=e,n=ig(r),a=ig(r,fA.Line),o=r.type==="JSXOpeningFragment";return[o?"<":""]}function JQa(e,t,r){let n=$X(e,ZQa(e,t,r),t);return PQa(e,n,t)}function UQa(e,t){let{node:r}=e,n=ig(r,fA.Line);return[N2(e,t,{indent:n}),n?xl:""]}function KQa(e,t,r){let{node:n}=e;return["{",e.call(({node:a})=>{let o=["...",r()];return!ig(a)||!Bbi(e)?o:[Pl([bl,$X(e,o,t)]),bl]},n.type==="JSXSpreadAttribute"?"argument":"expression"),"}"]}function jQa(e,t,r){let{node:n}=e;if(n.type.startsWith("JSX"))switch(n.type){case"JSXAttribute":return WQa(e,t,r);case"JSXIdentifier":return n.name;case"JSXNamespacedName":return vC(":",[r("namespace"),r("name")]);case"JSXMemberExpression":return vC(".",[r("object"),r("property")]);case"JSXSpreadAttribute":case"JSXSpreadChild":return KQa(e,t,r);case"JSXExpressionContainer":return OQa(e,t,r);case"JSXFragment":case"JSXElement":return JQa(e,t,r);case"JSXOpeningElement":return MQa(e,t,r);case"JSXClosingElement":return QQa(e,t,r);case"JSXOpeningFragment":case"JSXClosingFragment":return XQa(e,t);case"JSXEmptyExpression":return UQa(e,t);case"JSXText":throw new Error("JSXText should be handled by JSXElement");default:throw new jRe(n,"JSX")}}function zQa(e){if(e.children.length===0)return!0;if(e.children.length>1)return!1;let t=e.children[0];return t.type==="JSXText"&&!N4e(t)}function N4e(e){return e.type==="JSXText"&&(Jyt.hasNonWhitespaceCharacter(UM(e))||!/\n/u.test(UM(e)))}function qQa(e){return e.type==="JSXExpressionContainer"&&gV(e.expression)&&e.expression.value===" "&&!ig(e.expression)}function $Qa(e){let{node:t,parent:r}=e;if(!nD(t)||!nD(r))return!1;let{index:n,siblings:a}=e,o;for(let l=n;l>0;l--){let A=a[l-1];if(!(A.type==="JSXText"&&!N4e(A))){o=A;break}}return o?.type==="JSXExpressionContainer"&&o.expression.type==="JSXEmptyExpression"&&obt(o.expression)}function eXa(e){return obt(e.node)||$Qa(e)}var Vbi=eXa,tXa=0;function Pbi(e,t,r){var n;let{node:a,parent:o,grandparent:l,key:A}=e,f=A!=="body"&&(o.type==="IfStatement"||o.type==="WhileStatement"||o.type==="SwitchStatement"||o.type==="DoWhileStatement"),I=a.operator==="|>"&&((n=e.root.extra)==null?void 0:n.__isUsingHackPipeline),C=MTr(e,r,t,!1,f);if(f)return C;if(I)return Ia(C);if(b_(o)&&o.callee===a||o.type==="UnaryExpression"||Yv(o)&&!o.computed)return Ia([Pl([bl,...C]),bl]);let b=o.type==="ReturnStatement"||o.type==="ThrowStatement"||o.type==="JSXExpressionContainer"&&l.type==="JSXAttribute"||a.operator!=="|"&&o.type==="JsExpressionRoot"||a.type!=="NGPipeExpression"&&(o.type==="NGRoot"&&t.parser==="__ng_binding"||o.type==="NGMicrosyntaxExpression"&&l.type==="NGMicrosyntax"&&l.body.length===1)||a===o.body&&o.type==="ArrowFunctionExpression"||a!==o.body&&o.type==="ForStatement"||o.type==="ConditionalExpression"&&l.type!=="ReturnStatement"&&l.type!=="ThrowStatement"&&!b_(l)||o.type==="TemplateLiteral",E=o.type==="AssignmentExpression"||o.type==="VariableDeclarator"||o.type==="ClassProperty"||o.type==="PropertyDefinition"||o.type==="TSAbstractPropertyDefinition"||o.type==="ClassPrivateProperty"||Iee(o),N=gee(a.left)&&tRr(a.operator,a.left.operator);if(b||D4e(a)&&!N||!D4e(a)&&E)return Ia(C);if(C.length===0)return"";let B=nD(a.right),F=C.findIndex(fe=>typeof fe!="string"&&!Array.isArray(fe)&&fe.type===KM),Q=C.slice(0,F===-1?1:F+1),X=C.slice(Q.length,B?-1:void 0),ae=Symbol("logicalChain-"+ ++tXa),ne=Ia([...Q,Pl(X)],{id:ae});if(!B)return ne;let ce=U0(!1,C,-1);return Ia([ne,abt(ce,{groupId:ae})])}function MTr(e,t,r,n,a){var o;let{node:l}=e;if(!gee(l))return[Ia(t())];let A=[];tRr(l.operator,l.left.operator)?A=e.call(Q=>MTr(Q,t,r,!0,a),"left"):A.push(Ia(t("left")));let f=D4e(l),I=(l.operator==="|>"||l.type==="NGPipeExpression"||rXa(e,r))&&!ice(r.originalText,l.right),C=!ig(l.right,fA.Leading,Ibi)&&ice(r.originalText,l.right),b=l.type==="NGPipeExpression"?"|":l.operator,E=l.type==="NGPipeExpression"&&l.arguments.length>0?Ia(Pl([bl,": ",vC([zg,": "],e.map(()=>oj(2,Ia(t())),"arguments"))])):"",N;if(f)N=[b," ",t("right"),E];else{let Q=b==="|>"&&((o=e.root.extra)!=null&&o.__isUsingHackPipeline)?e.call(X=>MTr(X,t,r,!0,a),"right"):t("right");if(r.experimentalOperatorPosition==="start"){let X="";if(C)switch(uce(Q)){case Aee:X=Q.splice(0,1)[0];break;case hee:X=Q.contents.splice(0,1)[0];break}N=[zg,X,b," ",Q,E]}else N=[I?zg:"",b,I?" ":zg,Q,E]}let{parent:B}=e,F=ig(l.left,fA.Trailing|fA.Line);if((F||!(a&&l.type==="LogicalExpression")&&B.type!==l.type&&l.left.type!==l.type&&l.right.type!==l.type)&&(N=Ia(N,{shouldBreak:F})),r.experimentalOperatorPosition==="start"?A.push(f||C?" ":"",N):A.push(I?"":" ",N),n&&ig(l)){let Q=iRr($X(e,A,r));return Q.type===cce?Q.parts:Array.isArray(Q)?Q:[Q]}return A}function D4e(e){return e.type!=="LogicalExpression"?!1:!!(e4(e.right)&&e.right.properties.length>0||Vk(e.right)&&e.right.elements.length>0||nD(e.right))}var Nyi=e=>e.type==="BinaryExpression"&&e.operator==="|";function rXa(e,t){return(t.parser==="__vue_expression"||t.parser==="__vue_ts_expression")&&Nyi(e.node)&&!e.hasAncestor(r=>!Nyi(r)&&r.type!=="JsExpressionRoot")}function nXa(e,t,r){let{node:n}=e;if(n.type.startsWith("NG"))switch(n.type){case"NGRoot":return[r("node"),ig(n.node)?" //"+PRe(n.node)[0].value.trimEnd():""];case"NGPipeExpression":return Pbi(e,t,r);case"NGChainedExpression":return Ia(vC([";",zg],e.map(()=>sXa(e)?r():["(",r(),")"],"expressions")));case"NGEmptyExpression":return"";case"NGMicrosyntax":return e.map(()=>[e.isFirst?"":Dyi(e)?" ":[";",zg],r()],"body");case"NGMicrosyntaxKey":return/^[$_a-z][\w$]*(?:-[$_a-z][\w$])*$/iu.test(n.name)?n.name:JSON.stringify(n.name);case"NGMicrosyntaxExpression":return[r("expression"),n.alias===null?"":[" as ",r("alias")]];case"NGMicrosyntaxKeyedExpression":{let{index:a,parent:o}=e,l=Dyi(e)||(a===1&&(n.key.name==="then"||n.key.name==="else"||n.key.name==="as")||(a===2||a===3)&&(n.key.name==="else"&&o.body[a-1].type==="NGMicrosyntaxKeyedExpression"&&o.body[a-1].key.name==="then"||n.key.name==="track"))&&o.body[0].type==="NGMicrosyntaxExpression";return[r("key"),l?" ":": ",r("expression")]}case"NGMicrosyntaxLet":return["let ",r("key"),n.value===null?"":[" = ",r("value")]];case"NGMicrosyntaxAs":return[r("key")," as ",r("alias")];default:throw new jRe(n,"Angular")}}function Dyi({node:e,index:t}){return e.type==="NGMicrosyntaxKeyedExpression"&&e.key.name==="of"&&t===1}var iXa=_0(["CallExpression","OptionalCallExpression","AssignmentExpression"]);function sXa({node:e}){return DTr(e,iXa)}function Wbi(e,t,r){let{node:n}=e;return Ia([vC(zg,e.map(r,"decorators")),Obi(n,t)?xl:zg])}function oXa(e,t,r){return Mbi(e.node)?[vC(xl,e.map(r,"declaration","decorators")),xl]:""}function aXa(e,t,r){let{node:n,parent:a}=e,{decorators:o}=n;if(!H_(o)||Mbi(a)||Vbi(e))return"";let l=n.type==="ClassExpression"||n.type==="ClassDeclaration"||Obi(n,t);return[e.key==="declaration"&&$Ma(a)?xl:l?aj:"",vC(zg,e.map(r,"decorators")),zg]}function Obi(e,t){return e.decorators.some(r=>dO(t.originalText,BC(r)))}function Mbi(e){var t;if(e.type!=="ExportDefaultDeclaration"&&e.type!=="ExportNamedDeclaration"&&e.type!=="DeclareExportDeclaration")return!1;let r=(t=e.declaration)==null?void 0:t.decorators;return H_(r)&&nbt(e,r[0])}var $yt=class extends Error{name="ArgExpansionBailout"};function cXa(e,t,r){let{node:n}=e,a=qM(n);if(a.length===0)return["(",N2(e,t),")"];let o=a.length-1;if(gXa(a)){let b=["("];return zyt(e,(E,N)=>{b.push(r()),N!==o&&b.push(", ")}),b.push(")"),b}let l=!1,A=[];zyt(e,({node:b},E)=>{let N=r();E===o||(fee(b,t)?(l=!0,N=[N,",",xl,xl]):N=[N,",",zg]),A.push(N)});let f=!t.parser.startsWith("__ng_")&&n.type!=="ImportExpression"&&pee(t,"all")?",":"";function I(){return Ia(["(",Pl([zg,...A]),f,zg,")"],{shouldBreak:!0})}if(l||e.parent.type!=="Decorator"&&lHa(a))return I();if(uXa(a)){let b=A.slice(1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,0),{expandFirstArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])]:dme([["(",E,", ",...b,")"],["(",Ia(E,{shouldBreak:!0}),", ",...b,")"],I()])}if(lXa(a,A,t)){let b=A.slice(0,-1);if(b.some(UZ))return I();let E;try{E=r(_yi(n,-1),{expandLastArg:!0})}catch(N){if(N instanceof $yt)return I();throw N}return UZ(E)?[aj,dme([["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])]:dme([["(",...b,E,")"],["(",...b,Ia(E,{shouldBreak:!0}),")"],I()])}let C=["(",Pl([bl,...A]),lh(f),bl,")"];return sbi(e)?C:Ia(C,{shouldBreak:A.some(UZ)||l})}function B4e(e,t=!1){return e4(e)&&(e.properties.length>0||ig(e))||Vk(e)&&(e.elements.length>0||ig(e))||e.type==="TSTypeAssertion"&&B4e(e.expression)||nj(e)&&B4e(e.expression)||e.type==="FunctionExpression"||e.type==="ArrowFunctionExpression"&&(!e.returnType||!e.returnType.typeAnnotation||e.returnType.typeAnnotation.type!=="TSTypeReference"||AXa(e.body))&&(e.body.type==="BlockStatement"||e.body.type==="ArrowFunctionExpression"&&B4e(e.body,!0)||e4(e.body)||Vk(e.body)||!t&&(b_(e.body)||e.body.type==="ConditionalExpression")||nD(e.body))||e.type==="DoExpression"||e.type==="ModuleExpression"}function lXa(e,t,r){var n,a;let o=U0(!1,e,-1);if(e.length===1){let A=U0(!1,t,-1);if((n=A.label)!=null&&n.embed&&((a=A.label)==null?void 0:a.hug)!==!1)return!0}let l=U0(!1,e,-2);return!ig(o,fA.Leading)&&!ig(o,fA.Trailing)&&B4e(o)&&(!l||l.type!==o.type)&&(e.length!==2||l.type!=="ArrowFunctionExpression"||!Vk(o))&&!(e.length>1&&pEi(o,r))}function uXa(e){if(e.length!==2)return!1;let[t,r]=e;return t.type==="ModuleExpression"&&dXa(r)?!0:!ig(t)&&(t.type==="FunctionExpression"||t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement")&&r.type!=="FunctionExpression"&&r.type!=="ArrowFunctionExpression"&&r.type!=="ConditionalExpression"&&Hbi(r)&&!B4e(r)}function Hbi(e){if(e.type==="ParenthesizedExpression")return Hbi(e.expression);if(nj(e)||e.type==="TypeCastExpression"){let{typeAnnotation:t}=e;if(t.type==="TypeAnnotation"&&(t=t.typeAnnotation),t.type==="TSArrayType"&&(t=t.elementType,t.type==="TSArrayType"&&(t=t.elementType)),t.type==="GenericTypeAnnotation"||t.type==="TSTypeReference"){let r=t.typeArguments??t.typeParameters;r?.params.length===1&&(t=r.params[0])}return $Tr(t)&&qX(e.expression,1)}return YRe(e)&&qM(e).length>1?!1:gee(e)?qX(e.left,1)&&qX(e.right,1):$yi(e)||qX(e)}function gXa(e){return e.length===2?kyi(e,0):e.length===3?e[0].type==="Identifier"&&kyi(e,1):!1}function kyi(e,t){let r=e[t],n=e[t+1];return r.type==="ArrowFunctionExpression"&&NG(r).length===0&&r.body.type==="BlockStatement"&&n.type==="ArrayExpression"&&!e.some(a=>ig(a))}function AXa(e){return e.type==="BlockStatement"&&(e.body.some(t=>t.type!=="EmptyStatement")||ig(e,fA.Dangling))}function dXa(e){return e.type==="ObjectExpression"&&e.properties.length===1&&Iee(e.properties[0])&&e.properties[0].key.type==="Identifier"&&e.properties[0].key.name==="type"&&gV(e.properties[0].value)&&e.properties[0].value.value==="module"}var HTr=cXa,pXa=e=>((e.type==="ChainExpression"||e.type==="TSNonNullExpression")&&(e=e.expression),b_(e)&&qM(e).length>0);function fXa(e,t,r){var n;let a=r("object"),o=Ybi(e,t,r),{node:l}=e,A=e.findAncestor(C=>!(Yv(C)||C.type==="TSNonNullExpression")),f=e.findAncestor(C=>!(C.type==="ChainExpression"||C.type==="TSNonNullExpression")),I=A&&(A.type==="NewExpression"||A.type==="BindExpression"||A.type==="AssignmentExpression"&&A.left.type!=="Identifier")||l.computed||l.object.type==="Identifier"&&l.property.type==="Identifier"&&!Yv(f)||(f.type==="AssignmentExpression"||f.type==="VariableDeclarator")&&(pXa(l.object)||((n=a.label)==null?void 0:n.memberChain));return k4e(a.label,[a,I?o:Ia(Pl([bl,o]))])}function Ybi(e,t,r){let n=r("property"),{node:a}=e,o=KZ(e);return a.computed?!a.property||uee(a.property)?[o,"[",n,"]"]:Ia([o,"[",Pl([bl,n]),bl,"]"]):[o,".",n]}function Qbi(e,t,r){if(e.node.type==="ChainExpression")return e.call(()=>Qbi(e,t,r),"expression");let{parent:n}=e,a=!n||n.type==="ExpressionStatement",o=[];function l(Me){let{originalText:je}=t,St=KRe(je,BC(Me));return je.charAt(St)===")"?St!==!1&&KTr(je,St+1):fee(Me,t)}function A(){let{node:Me}=e;if(Me.type==="ChainExpression")return e.call(A,"expression");if(b_(Me)&&(LRe(Me.callee)||b_(Me.callee))){let je=l(Me);o.unshift({node:Me,hasTrailingEmptyLine:je,printed:[$X(e,[KZ(e),fme(e,t,r),HTr(e,t,r)],t),je?xl:""]}),e.call(A,"callee")}else LRe(Me)?(o.unshift({node:Me,needsParens:Eme(e,t),printed:$X(e,Yv(Me)?Ybi(e,t,r):AEi(e,t,r),t)}),e.call(A,"object")):Me.type==="TSNonNullExpression"?(o.unshift({node:Me,printed:$X(e,"!",t)}),e.call(A,"expression")):o.unshift({node:Me,printed:r()})}let{node:f}=e;o.unshift({node:f,printed:[KZ(e),fme(e,t,r),HTr(e,t,r)]}),f.callee&&e.call(A,"callee");let I=[],C=[o[0]],b=1;for(;b0&&I.push(C);function N(Me){return/^[A-Z]|^[$_]+$/u.test(Me)}function B(Me){return Me.length<=t.tabWidth}function F(Me){var je;let St=(je=Me[1][0])==null?void 0:je.node.computed;if(Me[0].length===1){let Yt=Me[0][0].node;return Yt.type==="ThisExpression"||Yt.type==="Identifier"&&(N(Yt.name)||a&&B(Yt.name)||St)}let At=U0(!1,Me[0],-1).node;return Yv(At)&&At.property.type==="Identifier"&&(N(At.property.name)||St)}let Q=I.length>=2&&!ig(I[1][0].node)&&F(I);function X(Me){let je=Me.map(St=>St.printed);return Me.length>0&&U0(!1,Me,-1).needsParens?["(",...je,")"]:je}function ae(Me){return Me.length===0?"":Pl([xl,vC(xl,Me.map(X))])}let ne=I.map(X),ce=ne,fe=Q?3:2,ue=I.flat(),de=ue.slice(1,-1).some(Me=>ig(Me.node,fA.Leading))||ue.slice(0,-1).some(Me=>ig(Me.node,fA.Trailing))||I[fe]&&ig(I[fe][0].node,fA.Leading);if(I.length<=fe&&!de&&!I.some(Me=>U0(!1,Me,-1).hasTrailingEmptyLine))return sbi(e)?ce:Ia(ce);let be=U0(!1,I[Q?1:0],-1).node,Se=!b_(be)&&l(be),De=[X(I[0]),Q?I.slice(1,2).map(X):"",Se?xl:"",ae(I.slice(Q?2:1))],k=o.map(({node:Me})=>Me).filter(b_);function et(){let Me=U0(!1,U0(!1,I,-1),-1).node,je=U0(!1,ne,-1);return b_(Me)&&UZ(je)&&k.slice(0,-1).some(St=>St.arguments.some(T4e))}let ct;return de||k.length>2&&k.some(Me=>!Me.arguments.every(je=>qX(je)))||ne.slice(0,-1).some(UZ)||et()?ct=Ia(De):ct=[UZ(ce)||Se?aj:"",dme([ce,De])],k4e({memberChain:!0},ct)}var IXa=Qbi;function Xbi(e,t,r){var n;let{node:a}=e,o=a.type==="NewExpression",l=a.type==="ImportExpression",A=KZ(e),f=qM(a),I=f.length===1&&nbi(f[0],t.originalText);if(I||hXa(e)||sbt(a,e.parent)){let b=[];if(zyt(e,()=>{b.push(r())}),!(I&&(n=b[0].label)!=null&&n.embed))return[o?"new ":"",xyi(e,r),A,fme(e,t,r),"(",vC(", ",b),")"]}if(!l&&!o&&LRe(a.callee)&&!e.call(b=>Eme(b,t),"callee",...a.callee.type==="ChainExpression"?["expression"]:[]))return IXa(e,t,r);let C=[o?"new ":"",xyi(e,r),A,fme(e,t,r),HTr(e,t,r)];return l||b_(a.callee)?Ia(C):C}function xyi(e,t){let{node:r}=e;return r.type==="ImportExpression"?`import${r.phase?`.${r.phase}`:""}`:t("callee")}function hXa(e){let{node:t}=e;if(t.type!=="CallExpression"||t.optional||t.callee.type!=="Identifier")return!1;let r=qM(t);return t.callee.name==="require"?r.length===1&&gV(r[0])||r.length>1:t.callee.name==="define"&&e.parent.type==="ExpressionStatement"?r.length===1||r.length===2&&r[0].type==="ArrayExpression"||r.length===3&&gV(r[0])&&r[1].type==="ArrayExpression":!1}function x4e(e,t,r,n,a,o){let l=_Xa(e,t,r,n,o),A=o?r(o,{assignmentLayout:l}):"";switch(l){case"break-after-operator":return Ia([Ia(n),a,Ia(Pl([zg,A]))]);case"never-break-after-operator":return Ia([Ia(n),a," ",A]);case"fluid":{let f=Symbol("assignment");return Ia([Ia(n),a,Ia(Pl(zg),{id:f}),dee,abt(A,{groupId:f})])}case"break-lhs":return Ia([n,a," ",Ia(A)]);case"chain":return[Ia(n),a,zg,A];case"chain-tail":return[Ia(n),a,Pl([zg,A])];case"chain-tail-arrow-chain":return[Ia(n),a,A];case"only-left":return n}}function mXa(e,t,r){let{node:n}=e;return x4e(e,t,r,r("left"),[" ",n.operator],"right")}function CXa(e,t,r){return x4e(e,t,r,r("id")," =","init")}function _Xa(e,t,r,n,a){let{node:o}=e,l=o[a];if(!l)return"only-left";let A=!Uyt(l);if(e.match(Uyt,Jbi,C=>!A||C.type!=="ExpressionStatement"&&C.type!=="VariableDeclaration"))return A?l.type==="ArrowFunctionExpression"&&l.body.type==="ArrowFunctionExpression"?"chain-tail-arrow-chain":"chain-tail":"chain";if(!A&&Uyt(l.right)||ice(t.originalText,l))return"break-after-operator";if(o.type==="ImportAttribute"||l.type==="CallExpression"&&l.callee.name==="require"||t.parser==="json5"||t.parser==="jsonc"||t.parser==="json")return"never-break-after-operator";let f=THa(n);if(bXa(o)||BXa(o)||Ubi(o)&&f)return"break-lhs";let I=TXa(o,n,t);return e.call(()=>yXa(e,t,r,I),a)?"break-after-operator":EXa(o)?"break-lhs":!f&&(I||l.type==="TemplateLiteral"||l.type==="TaggedTemplateExpression"||l.type==="BooleanLiteral"||uee(l)||l.type==="ClassExpression")?"never-break-after-operator":"fluid"}function yXa(e,t,r,n){let a=e.node;if(gee(a)&&!D4e(a))return!0;switch(a.type){case"StringLiteralTypeAnnotation":case"SequenceExpression":return!0;case"TSConditionalType":case"ConditionalTypeAnnotation":if(!t.experimentalTernaries&&!DXa(a))break;return!0;case"ConditionalExpression":{if(!t.experimentalTernaries){let{test:I}=a;return gee(I)&&!D4e(I)}let{consequent:A,alternate:f}=a;return A.type==="ConditionalExpression"||f.type==="ConditionalExpression"}case"ClassExpression":return H_(a.decorators)}if(n)return!1;let o=a,l=[];for(;;)if(o.type==="UnaryExpression"||o.type==="AwaitExpression"||o.type==="YieldExpression"&&o.argument!==null)o=o.argument,l.push("argument");else if(o.type==="TSNonNullExpression")o=o.expression,l.push("expression");else break;return!!(gV(o)||e.call(()=>Kbi(e,t,r),...l))}function bXa(e){if(Jbi(e)){let t=e.left||e.id;return t.type==="ObjectPattern"&&t.properties.length>2&&t.properties.some(r=>{var n;return Iee(r)&&(!r.shorthand||((n=r.value)==null?void 0:n.type)==="AssignmentPattern")})}return!1}function Uyt(e){return e.type==="AssignmentExpression"}function Jbi(e){return Uyt(e)||e.type==="VariableDeclarator"}function EXa(e){let t=vXa(e);if(H_(t)){let r=e.type==="TSTypeAliasDeclaration"?"constraint":"bound";if(t.length>1&&t.some(n=>n[r]||n.default))return!0}return!1}var SXa=_0(["TSTypeAliasDeclaration","TypeAlias"]);function vXa(e){var t;if(SXa(e))return(t=e.typeParameters)==null?void 0:t.params}function BXa(e){if(e.type!=="VariableDeclarator")return!1;let{typeAnnotation:t}=e.id;if(!t||!t.typeAnnotation)return!1;let r=Gyi(t.typeAnnotation);return H_(r)&&r.length>1&&r.some(n=>H_(Gyi(n))||n.type==="TSConditionalType")}function Ubi(e){var t;return e.type==="VariableDeclarator"&&((t=e.init)==null?void 0:t.type)==="ArrowFunctionExpression"}var wXa=_0(["TSTypeReference","GenericTypeAnnotation"]);function Gyi(e){var t;if(wXa(e))return(t=e.typeArguments??e.typeParameters)==null?void 0:t.params}function Kbi(e,t,r,n=!1){var a;let{node:o}=e,l=()=>Kbi(e,t,r,!0);if(o.type==="ChainExpression"||o.type==="TSNonNullExpression")return e.call(l,"expression");if(b_(o)){if((a=Xbi(e,t,r).label)!=null&&a.memberChain)return!1;let A=qM(o);return!(A.length===0||A.length===1&&eRr(A[0],t))||RXa(o,r)?!1:e.call(l,"callee")}return Yv(o)?e.call(l,"object"):n&&(o.type==="Identifier"||o.type==="ThisExpression")}function TXa(e,t,r){return Iee(e)?(t=iRr(t),typeof t=="string"&&WRe(t)1)return!0;if(r.length===1){let a=r[0];if(sce(a)||rRr(a)||a.type==="TSTypeLiteral"||a.type==="ObjectTypeAnnotation")return!0}let n=e.typeParameters?"typeParameters":"typeArguments";if(UZ(t(n)))return!0}return!1}function NXa(e){var t;return(t=e.typeParameters??e.typeArguments)==null?void 0:t.params}function DXa(e){function t(r){switch(r.type){case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"TSFunctionType":return!!r.typeParameters;case"TSTypeReference":return!!(r.typeArguments??r.typeParameters);default:return!1}}return t(e.checkType)||t(e.extendsType)}function Sme(e,t,r,n,a){let o=e.node,l=NG(o),A=a?fme(e,r,t):"";if(l.length===0)return[A,"(",N2(e,r,{filter:N=>t4(r.originalText,BC(N))===")"}),")"];let{parent:f}=e,I=sbt(f),C=jbi(o),b=[];if(fHa(e,(N,B)=>{let F=B===l.length-1;F&&o.rest&&b.push("..."),b.push(t()),!F&&(b.push(","),I||C?b.push(" "):fee(l[B],r)?b.push(xl,xl):b.push(zg))}),n&&!xXa(e)){if(UZ(A)||UZ(b))throw new $yt;return Ia([xTr(A),"(",xTr(b),")"])}let E=l.every(N=>!H_(N.decorators));return C&&E?[A,"(",...b,")"]:I?[A,"(",...b,")"]:(ebi(f)||nHa(f)||f.type==="TypeAlias"||f.type==="UnionTypeAnnotation"||f.type==="IntersectionTypeAnnotation"||f.type==="FunctionTypeAnnotation"&&f.returnType===o)&&l.length===1&&l[0].name===null&&o.this!==l[0]&&l[0].typeAnnotation&&o.typeParameters===null&&$Tr(l[0].typeAnnotation)&&!o.rest?r.arrowParens==="always"||o.type==="HookTypeAnnotation"?["(",...b,")"]:b:[A,"(",Pl([bl,...b]),lh(!pHa(o)&&pee(r,"all")?",":""),bl,")"]}function jbi(e){if(!e)return!1;let t=NG(e);if(t.length!==1)return!1;let[r]=t;return!ig(r)&&(r.type==="ObjectPattern"||r.type==="ArrayPattern"||r.type==="Identifier"&&r.typeAnnotation&&(r.typeAnnotation.type==="TypeAnnotation"||r.typeAnnotation.type==="TSTypeAnnotation")&&nce(r.typeAnnotation.typeAnnotation)||r.type==="FunctionTypeParam"&&nce(r.typeAnnotation)&&r!==e.rest||r.type==="AssignmentPattern"&&(r.left.type==="ObjectPattern"||r.left.type==="ArrayPattern")&&(r.right.type==="Identifier"||e4(r.right)&&r.right.properties.length===0||Vk(r.right)&&r.right.elements.length===0))}function kXa(e){let t;return e.returnType?(t=e.returnType,t.typeAnnotation&&(t=t.typeAnnotation)):e.typeAnnotation&&(t=e.typeAnnotation),t}function zRe(e,t){var r;let n=kXa(e);if(!n)return!1;let a=(r=e.typeParameters)==null?void 0:r.params;if(a){if(a.length>1)return!1;if(a.length===1){let o=a[0];if(o.constraint||o.default)return!1}}return NG(e).length===1&&(nce(n)||UZ(t))}function xXa(e){return e.match(t=>t.type==="ArrowFunctionExpression"&&t.body.type==="BlockStatement",(t,r)=>{if(t.type==="CallExpression"&&r==="arguments"&&t.arguments.length===1&&t.callee.type==="CallExpression"){let n=t.callee.callee;return n.type==="Identifier"||n.type==="MemberExpression"&&!n.computed&&n.object.type==="Identifier"&&n.property.type==="Identifier"}return!1},(t,r)=>t.type==="VariableDeclarator"&&r==="init"||t.type==="ExportDefaultDeclaration"&&r==="declaration"||t.type==="TSExportAssignment"&&r==="expression"||t.type==="AssignmentExpression"&&r==="right"&&t.left.type==="MemberExpression"&&t.left.object.type==="Identifier"&&t.left.object.name==="module"&&t.left.property.type==="Identifier"&&t.left.property.name==="exports",t=>t.type!=="VariableDeclaration"||t.kind==="const"&&t.declarations.length===1)}function GXa(e){let t=NG(e);return t.length>1&&t.some(r=>r.type==="TSParameterProperty")}var FXa=_0(["VoidTypeAnnotation","TSVoidKeyword","NullLiteralTypeAnnotation","TSNullKeyword"]),ZXa=_0(["ObjectTypeAnnotation","TSTypeLiteral","GenericTypeAnnotation","TSTypeReference"]);function LXa(e){let{types:t}=e;if(t.some(n=>ig(n)))return!1;let r=t.find(n=>ZXa(n));return r?t.every(n=>n===r||FXa(n)):!1}function zbi(e){return $Tr(e)||nce(e)?!0:sce(e)?LXa(e):!1}function VXa(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e),"opaque type ",r("id"),r("typeParameters")];return a.supertype&&o.push(": ",r("supertype")),a.impltype&&o.push(" = ",r("impltype")),o.push(n),o}function qbi(e,t,r){let n=t.semi?";":"",{node:a}=e,o=[AV(e)];o.push("type ",r("id"),r("typeParameters"));let l=a.type==="TSTypeAliasDeclaration"?"typeAnnotation":"right";return[x4e(e,t,r,o," =",l),n]}function $bi(e,t,r){let n=!1;return Ia(e.map(({isFirst:a,previous:o,node:l,index:A})=>{let f=r();if(a)return f;let I=nce(l),C=nce(o);return C&&I?[" & ",n?Pl(f):f]:!C&&!I?t.experimentalOperatorPosition==="start"?Pl([zg,"& ",f]):Pl([" &",zg,f]):(A>1&&(n=!0),[" & ",A>1?Pl(f):f])},"types"))}function eEi(e,t,r){let{node:n}=e,{parent:a}=e,o=a.type!=="TypeParameterInstantiation"&&(!oce(a)||!t.experimentalTernaries)&&a.type!=="TSTypeParameterInstantiation"&&a.type!=="GenericTypeAnnotation"&&a.type!=="TSTypeReference"&&a.type!=="TSTypeAssertion"&&a.type!=="TupleTypeAnnotation"&&a.type!=="TSTupleType"&&!(a.type==="FunctionTypeParam"&&!a.name&&e.grandparent.this!==a)&&!((a.type==="TypeAlias"||a.type==="VariableDeclarator"||a.type==="TSTypeAliasDeclaration")&&ice(t.originalText,n)),l=zbi(n),A=e.map(C=>{let b=r();return l||(b=oj(2,b)),$X(C,b,t)},"types");if(l)return vC(" | ",A);let f=o&&!ice(t.originalText,n),I=[lh([f?zg:"","| "]),vC([zg,"| "],A)];return Eme(e,t)?Ia([Pl(I),bl]):(a.type==="TupleTypeAnnotation"||a.type==="TSTupleType")&&a[a.type==="TupleTypeAnnotation"&&a.types?"types":"elementTypes"].length>1?Ia([Pl([lh(["(",bl]),I]),bl,lh(")")]):Ia(o?Pl(I):I)}function PXa(e){var t;let{node:r,parent:n}=e;return r.type==="FunctionTypeAnnotation"&&(ebi(n)||!((n.type==="ObjectTypeProperty"||n.type==="ObjectTypeInternalSlot")&&!n.variance&&!n.optional&&nbt(n,r)||n.type==="ObjectTypeCallProperty"||((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareFunction"))}function tEi(e,t,r){let{node:n}=e,a=[cbt(e)];(n.type==="TSConstructorType"||n.type==="TSConstructSignatureDeclaration")&&a.push("new ");let o=Sme(e,r,t,!1,!0),l=[];return n.type==="FunctionTypeAnnotation"?l.push(PXa(e)?" => ":": ",r("returnType")):l.push(Lk(e,r,n.returnType?"returnType":"typeAnnotation")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function rEi(e,t,r){return[r("objectType"),KZ(e),"[",r("indexType"),"]"]}function nEi(e,t,r){return["infer ",r("typeParameter")]}function Fyi(e,t,r){let{node:n}=e;return[n.postfix?"":r,Lk(e,t),n.postfix?r:""]}function iEi(e,t,r){let{node:n}=e;return["...",...n.type==="TupleTypeSpreadElement"&&n.label?[r("label"),": "]:[],r("typeAnnotation")]}function sEi(e,t,r){let{node:n}=e;return[n.variance?r("variance"):"",r("label"),n.optional?"?":"",": ",r("elementType")]}var WXa=new WeakSet;function Lk(e,t,r="typeAnnotation"){let{node:{[r]:n}}=e;if(!n)return"";let a=!1;if(n.type==="TSTypeAnnotation"||n.type==="TypeAnnotation"){let o=e.call(oEi,r);(o==="=>"||o===":"&&ig(n,fA.Leading))&&(a=!0),WXa.add(n)}return a?[" ",t(r)]:t(r)}var oEi=e=>e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>(r==="returnType"||r==="typeAnnotation")&&(t.type==="TSFunctionType"||t.type==="TSConstructorType"))?"=>":e.match(t=>t.type==="TSTypeAnnotation",(t,r)=>r==="typeAnnotation"&&(t.type==="TSJSDocNullableType"||t.type==="TSJSDocNonNullableType"||t.type==="TSTypePredicate"))||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareFunction")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="typeAnnotation"&&t.type==="Identifier",(t,r)=>r==="id"&&t.type==="DeclareHook")||e.match(t=>t.type==="TypeAnnotation",(t,r)=>r==="bound"&&t.type==="TypeParameter"&&t.usesExtendsBound)?"":":";function aEi(e,t,r){let n=oEi(e);return n?[n," ",r("typeAnnotation")]:r("typeAnnotation")}function cEi(e){return[e("elementType"),"[]"]}function lEi({node:e},t){let r=e.type==="TSTypeQuery"?"exprName":"argument",n=e.type==="TypeofTypeAnnotation"||e.typeArguments?"typeArguments":"typeParameters";return["typeof ",t(r),t(n)]}function uEi(e,t){let{node:r}=e;return[r.type==="TSTypePredicate"&&r.asserts?"asserts ":r.type==="TypePredicate"&&r.kind?`${r.kind} `:"",t("parameterName"),r.typeAnnotation?[" is ",Lk(e,t)]:""]}function KZ(e){let{node:t}=e;return!t.optional||t.type==="Identifier"&&t===e.parent.key?"":b_(t)||Yv(t)&&t.computed||t.type==="OptionalIndexedAccessType"?"?.":"?"}function gEi(e){return e.node.definite||e.match(void 0,(t,r)=>r==="id"&&t.type==="VariableDeclarator"&&t.definite)?"!":""}var OXa=new Set(["DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","DeclareVariable","DeclareExportDeclaration","DeclareExportAllDeclaration","DeclareOpaqueType","DeclareTypeAlias","DeclareEnum","DeclareInterface"]);function AV(e){let{node:t}=e;return t.declare||OXa.has(t.type)&&e.parent.type!=="DeclareExportDeclaration"?"declare ":""}var MXa=new Set(["TSAbstractMethodDefinition","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function cbt({node:e}){return e.abstract||MXa.has(e.type)?"abstract ":""}function fme(e,t,r){let n=e.node;return n.typeArguments?r("typeArguments"):n.typeParameters?r("typeParameters"):""}function AEi(e,t,r){return["::",r("callee")]}function tce(e,t,r){return e.type==="EmptyStatement"?";":e.type==="BlockStatement"||r?[" ",t]:Pl([zg,t])}function dEi(e,t){return["...",t("argument"),Lk(e,t)]}function ebt(e){return e.accessibility?e.accessibility+" ":""}function HXa(e,t,r,n){let{node:a}=e,o=a.inexact?"...":"";return ig(a,fA.Dangling)?Ia([r,o,N2(e,t,{indent:!0}),bl,n]):[r,o,n]}function dRr(e,t,r){let{node:n}=e,a=[],o=n.type==="TupleExpression"?"#[":"[",l="]",A=n.type==="TupleTypeAnnotation"&&n.types?"types":n.type==="TSTupleType"||n.type==="TupleTypeAnnotation"?"elementTypes":"elements",f=n[A];if(f.length===0)a.push(HXa(e,t,o,l));else{let I=U0(!1,f,-1),C=I?.type!=="RestElement"&&!n.inexact,b=I===null,E=Symbol("array"),N=!t.__inJestEach&&f.length>1&&f.every((Q,X,ae)=>{let ne=Q?.type;if(!Vk(Q)&&!e4(Q))return!1;let ce=ae[X+1];if(ce&&ne!==ce.type)return!1;let fe=Vk(Q)?"elements":"properties";return Q[fe]&&Q[fe].length>1}),B=pEi(n,t),F=C?b?",":pee(t)?B?lh(",","",{groupId:E}):lh(","):"":"";a.push(Ia([o,Pl([bl,B?QXa(e,t,r,F):[YXa(e,t,A,n.inexact,r),F],N2(e,t)]),bl,l],{shouldBreak:N,id:E}))}return a.push(KZ(e),Lk(e,r)),a}function pEi(e,t){return Vk(e)&&e.elements.length>1&&e.elements.every(r=>r&&(uee(r)||qyi(r)&&!ig(r.argument))&&!ig(r,fA.Trailing|fA.Line,n=>!dO(t.originalText,ZS(n),{backwards:!0})))}function fEi({node:e},{originalText:t}){let r=a=>JTr(t,UTr(t,a)),n=a=>t[a]===","?a:n(r(a+1));return KTr(t,n(BC(e)))}function YXa(e,t,r,n,a){let o=[];return e.each(({node:l,isLast:A})=>{o.push(l?Ia(a()):""),(!A||n)&&o.push([",",zg,l&&fEi(e,t)?bl:""])},r),n&&o.push("..."),o}function QXa(e,t,r,n){let a=[];return e.each(({isLast:o,next:l})=>{a.push([r(),o?n:","]),o||a.push(fEi(e,t)?[xl,xl]:ig(l,fA.Leading|fA.Line)?xl:zg)},"elements"),Abi(a)}var XXa=/^[\$A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC][\$0-9A-Z_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]*$/,JXa=e=>XXa.test(e),UXa=JXa;function KXa(e){return e.length===1?e:e.toLowerCase().replace(/^([+-]?[\d.]+e)(?:\+|(-))?0*(?=\d)/u,"$1$2").replace(/^([+-]?[\d.]+)e[+-]?0+$/u,"$1").replace(/^([+-])?\./u,"$10.").replace(/(\.\d+?)0+(?=e|$)/u,"$1").replace(/\.(?=e|$)/u,"")}var QRe=KXa,Kyt=new WeakMap;function IEi(e){return/^(?:\d+|\d+\.\d+)$/u.test(e)}function Zyi(e,t){return t.parser==="json"||t.parser==="jsonc"||!gV(e.key)||HRe(UM(e.key),t).slice(1,-1)!==e.key.value?!1:!!(UXa(e.key.value)&&!(t.parser==="babel-ts"&&e.type==="ClassProperty"||t.parser==="typescript"&&e.type==="PropertyDefinition")||IEi(e.key.value)&&String(Number(e.key.value))===e.key.value&&e.type!=="ImportAttribute"&&(t.parser==="babel"||t.parser==="acorn"||t.parser==="espree"||t.parser==="meriyah"||t.parser==="__babel_estree"))}function jXa(e,t){let{key:r}=e.node;return(r.type==="Identifier"||uee(r)&&IEi(QRe(UM(r)))&&String(r.value)===QRe(UM(r))&&!(t.parser==="typescript"||t.parser==="babel-ts"))&&(t.parser==="json"||t.parser==="jsonc"||t.quoteProps==="consistent"&&Kyt.get(e.parent))}function G4e(e,t,r){let{node:n}=e;if(n.computed)return["[",r("key"),"]"];let{parent:a}=e,{key:o}=n;if(t.quoteProps==="consistent"&&!Kyt.has(a)){let l=e.siblings.some(A=>!A.computed&&gV(A.key)&&!Zyi(A,t));Kyt.set(a,l)}if(jXa(e,t)){let l=HRe(JSON.stringify(o.type==="Identifier"?o.name:o.value.toString()),t);return e.call(A=>$X(A,l,t),"key")}return Zyi(n,t)&&(t.quoteProps==="as-needed"||t.quoteProps==="consistent"&&!Kyt.get(a))?e.call(l=>$X(l,/^\d/u.test(o.value)?QRe(o.value):o.value,t),"key"):r("key")}function BTr(e,t,r){let{node:n}=e;return n.shorthand?r("value"):x4e(e,t,r,G4e(e,t,r),":","value")}var zXa=({node:e,key:t,parent:r})=>t==="value"&&e.type==="FunctionExpression"&&(r.type==="ObjectMethod"||r.type==="ClassMethod"||r.type==="ClassPrivateMethod"||r.type==="MethodDefinition"||r.type==="TSAbstractMethodDefinition"||r.type==="TSDeclareMethod"||r.type==="Property"&&ibt(r));function hEi(e,t,r,n){if(zXa(e))return pRr(e,r,t);let{node:a}=e,o=!1;if((a.type==="FunctionDeclaration"||a.type==="FunctionExpression")&&n!=null&&n.expandLastArg){let{parent:C}=e;b_(C)&&(qM(C).length>1||NG(a).every(b=>b.type==="Identifier"&&!b.typeAnnotation))&&(o=!0)}let l=[AV(e),a.async?"async ":"",`function${a.generator?"*":""} `,a.id?t("id"):""],A=Sme(e,t,r,o),f=lbt(e,t),I=zRe(a,f);return l.push(fme(e,r,t),Ia([I?Ia(A):A,f]),a.body?" ":"",t("body")),r.semi&&(a.declare||!a.body)&&l.push(";"),l}function YTr(e,t,r){let{node:n}=e,{kind:a}=n,o=n.value||n,l=[];return!a||a==="init"||a==="method"||a==="constructor"?o.async&&l.push("async "):(jTr.ok(a==="get"||a==="set"),l.push(a," ")),o.generator&&l.push("*"),l.push(G4e(e,t,r),n.optional||n.key.optional?"?":"",n===o?pRr(e,t,r):r("value")),l}function pRr(e,t,r){let{node:n}=e,a=Sme(e,r,t),o=lbt(e,r),l=GXa(n),A=zRe(n,o),f=[fme(e,t,r),Ia([l?Ia(a,{shouldBreak:!0}):A?Ia(a):a,o])];return n.body?f.push(" ",r("body")):f.push(t.semi?";":""),f}function qXa(e){let t=NG(e);return t.length===1&&!e.typeParameters&&!ig(e,fA.Dangling)&&t[0].type==="Identifier"&&!t[0].typeAnnotation&&!ig(t[0])&&!t[0].optional&&!e.predicate&&!e.returnType}function mEi(e,t){if(t.arrowParens==="always")return!1;if(t.arrowParens==="avoid"){let{node:r}=e;return qXa(r)}return!1}function lbt(e,t){let{node:r}=e,n=[Lk(e,t,"returnType")];return r.predicate&&n.push(t("predicate")),n}function CEi(e,t,r){let{node:n}=e,a=t.semi?";":"",o=[];if(n.argument){let f=r("argument");t4a(t,n.argument)?f=["(",Pl([xl,f]),xl,")"]:(gee(n.argument)||n.argument.type==="SequenceExpression"||t.experimentalTernaries&&n.argument.type==="ConditionalExpression"&&(n.argument.consequent.type==="ConditionalExpression"||n.argument.alternate.type==="ConditionalExpression"))&&(f=Ia([lh("("),Pl([bl,f]),bl,lh(")")])),o.push(" ",f)}let l=ig(n,fA.Dangling),A=a&&l&&ig(n,fA.Last|fA.Line);return A&&o.push(a),l&&o.push(" ",N2(e,t)),A||o.push(a),o}function $Xa(e,t,r){return["return",CEi(e,t,r)]}function e4a(e,t,r){return["throw",CEi(e,t,r)]}function t4a(e,t){if(ice(e.originalText,t)||ig(t,fA.Leading,r=>ace(e.originalText,ZS(r),BC(r)))&&!nD(t))return!0;if(zTr(t)){let r=t,n;for(;n=qMa(r);)if(r=n,ice(e.originalText,r))return!0}return!1}var wTr=new WeakMap;function _Ei(e){return wTr.has(e)||wTr.set(e,e.type==="ConditionalExpression"&&!JZ(e,t=>t.type==="ObjectExpression")),wTr.get(e)}var yEi=e=>e.type==="SequenceExpression";function r4a(e,t,r,n={}){let a=[],o,l=[],A=!1,f=!n.expandLastArg&&e.node.body.type==="ArrowFunctionExpression",I;(function X(){let{node:ae}=e,ne=n4a(e,t,r,n);if(a.length===0)a.push(ne);else{let{leading:ce,trailing:fe}=Lbi(e,t);a.push([ce,ne]),l.unshift(fe)}f&&(A||(A=ae.returnType&&NG(ae).length>0||ae.typeParameters||NG(ae).some(ce=>ce.type!=="Identifier"))),!f||ae.body.type!=="ArrowFunctionExpression"?(o=r("body",n),I=ae.body):e.call(X,"body")})();let C=!ice(t.originalText,I)&&(yEi(I)||i4a(I,o,t)||!A&&_Ei(I)),b=e.key==="callee"&&YRe(e.parent),E=Symbol("arrow-chain"),N=s4a(e,n,{signatureDocs:a,shouldBreak:A}),B=!1,F=!1,Q=!1;return f&&(b||n.assignmentLayout)&&(F=!0,Q=!ig(e.node,fA.Leading&fA.Line),B=n.assignmentLayout==="chain-tail-arrow-chain"||b&&!C),o=o4a(e,t,n,{bodyDoc:o,bodyComments:l,functionBody:I,shouldPutBodyOnSameLine:C}),Ia([Ia(F?Pl([Q?bl:"",N]):N,{shouldBreak:B,id:E})," =>",f?abt(o,{groupId:E}):Ia(o),f&&b?lh(bl,"",{groupId:E}):""])}function n4a(e,t,r,n){let{node:a}=e,o=[];if(a.async&&o.push("async "),mEi(e,t))o.push(r(["params",0]));else{let A=n.expandLastArg||n.expandFirstArg,f=lbt(e,r);if(A){if(UZ(f))throw new $yt;f=Ia(xTr(f))}o.push(Ia([Sme(e,r,t,A,!0),f]))}let l=N2(e,t,{filter(A){let f=KRe(t.originalText,BC(A));return f!==!1&&t.originalText.slice(f,f+2)==="=>"}});return l&&o.push(" ",l),o}function i4a(e,t,r){var n,a;return Vk(e)||e4(e)||e.type==="ArrowFunctionExpression"||e.type==="DoExpression"||e.type==="BlockStatement"||nD(e)||((n=t.label)==null?void 0:n.hug)!==!1&&(((a=t.label)==null?void 0:a.embed)||nbi(e,r.originalText))}function s4a(e,t,{signatureDocs:r,shouldBreak:n}){if(r.length===1)return r[0];let{parent:a,key:o}=e;return o!=="callee"&&YRe(a)||gee(a)?Ia([r[0]," =>",Pl([zg,vC([" =>",zg],r.slice(1))])],{shouldBreak:n}):o==="callee"&&YRe(a)||t.assignmentLayout?Ia(vC([" =>",zg],r),{shouldBreak:n}):Ia(Pl(vC([" =>",zg],r)),{shouldBreak:n})}function o4a(e,t,r,{bodyDoc:n,bodyComments:a,functionBody:o,shouldPutBodyOnSameLine:l}){let{node:A,parent:f}=e,I=r.expandLastArg&&pee(t,"all")?lh(","):"",C=(r.expandLastArg||f.type==="JSXExpressionContainer")&&!ig(A)?bl:"";return l&&_Ei(o)?[" ",Ia([lh("","("),Pl([bl,n]),lh("",")"),I,C]),a]:(yEi(o)&&(n=Ia(["(",Pl([bl,n]),bl,")"])),l?[" ",n,a]:[Pl([zg,n,a]),I,C])}var a4a=(e,t,r)=>{if(!(e&&t==null)){if(t.findLast)return t.findLast(r);for(let n=t.length-1;n>=0;n--){let a=t[n];if(r(a,n,t))return a}}},c4a=a4a;function QTr(e,t,r,n){let{node:a}=e,o=[],l=c4a(!1,a[n],A=>A.type!=="EmptyStatement");return e.each(({node:A})=>{A.type!=="EmptyStatement"&&(o.push(r()),A!==l&&(o.push(xl),fee(A,t)&&o.push(xl)))},n),o}function bEi(e,t,r){let n=l4a(e,t,r),{node:a,parent:o}=e;if(a.type==="Program"&&o?.type!=="ModuleExpression")return n?[n,xl]:"";let l=[];if(a.type==="StaticBlock"&&l.push("static "),l.push("{"),n)l.push(Pl([xl,n]),xl);else{let A=e.grandparent;o.type==="ArrowFunctionExpression"||o.type==="FunctionExpression"||o.type==="FunctionDeclaration"||o.type==="ComponentDeclaration"||o.type==="HookDeclaration"||o.type==="ObjectMethod"||o.type==="ClassMethod"||o.type==="ClassPrivateMethod"||o.type==="ForStatement"||o.type==="WhileStatement"||o.type==="DoWhileStatement"||o.type==="DoExpression"||o.type==="ModuleExpression"||o.type==="CatchClause"&&!A.finalizer||o.type==="TSModuleDeclaration"||a.type==="StaticBlock"||l.push(xl)}return l.push("}"),l}function l4a(e,t,r){let{node:n}=e,a=H_(n.directives),o=n.body.some(f=>f.type!=="EmptyStatement"),l=ig(n,fA.Dangling);if(!a&&!o&&!l)return"";let A=[];return a&&(A.push(QTr(e,t,r,"directives")),(o||l)&&(A.push(xl),fee(U0(!1,n.directives,-1),t)&&A.push(xl))),o&&A.push(QTr(e,t,r,"body")),l&&A.push(N2(e,t)),A}function u4a(e){let t=new WeakMap;return function(r){return t.has(r)||t.set(r,Symbol(e)),t.get(r)}}var EEi=u4a;function g4a(e){switch(e){case null:return"";case"PlusOptional":return"+?";case"MinusOptional":return"-?";case"Optional":return"?"}}function A4a(e,t,r){let{node:n}=e;return Ia([n.variance?r("variance"):"","[",Pl([r("keyTparam")," in ",r("sourceType")]),"]",g4a(n.optional),": ",r("propType")])}function SEi(e,t){return e==="+"||e==="-"?e+t:t}function d4a(e,t,r){let{node:n}=e,a=t.objectWrap==="preserve"&&ace(t.originalText,ZS(n),ZS(n.typeParameter));return Ia(["{",Pl([t.bracketSpacing?zg:bl,Ia([r("typeParameter"),n.optional?SEi(n.optional,"?"):"",n.typeAnnotation?": ":"",r("typeAnnotation")]),t.semi?lh(";"):""]),N2(e,t),t.bracketSpacing?zg:bl,"}"],{shouldBreak:a})}var fRr=EEi("typeParameters");function p4a(e,t,r){let{node:n}=e;return NG(n).length===1&&n.type.startsWith("TS")&&!n[r][0].constraint&&e.parent.type==="ArrowFunctionExpression"&&!(t.filepath&&/\.ts$/u.test(t.filepath))}function w4e(e,t,r,n){let{node:a}=e;if(!a[n])return"";if(!Array.isArray(a[n]))return r(n);let o=sbt(e.grandparent),l=e.match(f=>!(f[n].length===1&&nce(f[n][0])),void 0,(f,I)=>I==="typeAnnotation",f=>f.type==="Identifier",Ubi);if(a[n].length===0||!l&&(o||a[n].length===1&&(a[n][0].type==="NullableTypeAnnotation"||zbi(a[n][0]))))return["<",vC(", ",e.map(r,n)),f4a(e,t),">"];let A=a.type==="TSTypeParameterInstantiation"?"":p4a(e,t,n)?",":pee(t)?lh(","):"";return Ia(["<",Pl([bl,vC([",",zg],e.map(r,n))]),A,bl,">"],{id:fRr(a)})}function f4a(e,t){let{node:r}=e;if(!ig(r,fA.Dangling))return"";let n=!ig(r,fA.Line),a=N2(e,t,{indent:!n});return n?a:[a,xl]}function vEi(e,t,r){let{node:n,parent:a}=e,o=[n.const?"const ":""],l=n.type==="TSTypeParameter"?r("name"):n.name;if(a.type==="TSMappedType")return a.readonly&&o.push(SEi(a.readonly,"readonly")," "),o.push("[",l),n.constraint&&o.push(" in ",r("constraint")),a.nameType&&o.push(" as ",e.callParent(()=>r("nameType"))),o.push("]"),o;if(n.variance&&o.push(r("variance")),n.in&&o.push("in "),n.out&&o.push("out "),o.push(l),n.bound&&(n.usesExtendsBound&&o.push(" extends "),o.push(Lk(e,r,"bound"))),n.constraint){let A=Symbol("constraint");o.push(" extends",Ia(Pl(zg),{id:A}),dee,abt(r("constraint"),{groupId:A}))}return n.default&&o.push(" = ",r("default")),Ia(o)}var BEi=_0(["ClassProperty","PropertyDefinition","ClassPrivateProperty","ClassAccessorProperty","AccessorProperty","TSAbstractPropertyDefinition","TSAbstractAccessorProperty"]);function wEi(e,t,r){let{node:n}=e,a=[AV(e),cbt(e),"class"],o=ig(n.id,fA.Trailing)||ig(n.typeParameters,fA.Trailing)||ig(n.superClass)||H_(n.extends)||H_(n.mixins)||H_(n.implements),l=[],A=[];if(n.id&&l.push(" ",r("id")),l.push(r("typeParameters")),n.superClass){let C=[m4a(e,t,r),r(n.superTypeArguments?"superTypeArguments":"superTypeParameters")],b=e.call(E=>["extends ",$X(E,C,t)],"superClass");o?A.push(zg,Ia(b)):A.push(" ",b)}else A.push(TTr(e,t,r,"extends"));A.push(TTr(e,t,r,"mixins"),TTr(e,t,r,"implements"));let f;if(o){let C;REi(n)?C=[...l,Pl(A)]:C=Pl([...l,A]),f=TEi(n),a.push(Ia(C,{id:f}))}else a.push(...l,...A);let I=n.body;return o&&H_(I.body)?a.push(lh(xl," ",{groupId:f})):a.push(" "),a.push(r("body")),a}var TEi=EEi("heritageGroup");function I4a(e){return lh(xl,"",{groupId:TEi(e)})}function h4a(e){return["extends","mixins","implements"].reduce((t,r)=>t+(Array.isArray(e[r])?e[r].length:0),e.superClass?1:0)>1}function REi(e){return e.typeParameters&&!ig(e.typeParameters,fA.Trailing|fA.Line)&&!h4a(e)}function TTr(e,t,r,n){let{node:a}=e;if(!H_(a[n]))return"";let o=N2(e,t,{marker:n});return[REi(a)?lh(" ",zg,{groupId:fRr(a.typeParameters)}):zg,o,o&&xl,n,Ia(Pl([zg,vC([",",zg],e.map(r,n))]))]}function m4a(e,t,r){let n=r("superClass"),{parent:a}=e;return a.type==="AssignmentExpression"?Ia(lh(["(",Pl([bl,n]),bl,")"],n)):n}function NEi(e,t,r){let{node:n}=e,a=[];return H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),a.push(YTr(e,t,r)),a}function DEi(e,t,r){let{node:n}=e,a=[],o=t.semi?";":"";H_(n.decorators)&&a.push(Wbi(e,t,r)),a.push(AV(e),ebt(n)),n.static&&a.push("static "),a.push(cbt(e)),n.override&&a.push("override "),n.readonly&&a.push("readonly "),n.variance&&a.push(r("variance")),(n.type==="ClassAccessorProperty"||n.type==="AccessorProperty"||n.type==="TSAbstractAccessorProperty")&&a.push("accessor "),a.push(G4e(e,t,r),KZ(e),gEi(e),Lk(e,r));let l=n.type==="TSAbstractPropertyDefinition"||n.type==="TSAbstractAccessorProperty";return[x4e(e,t,r,a," =",l?void 0:"value"),o]}function C4a(e,t,r){let{node:n}=e,a=[];return e.each(({node:o,next:l,isLast:A})=>{a.push(r()),!t.semi&&BEi(o)&&_4a(o,l)&&a.push(";"),A||(a.push(xl),fee(o,t)&&a.push(xl))},"body"),ig(n,fA.Dangling)&&a.push(N2(e,t)),["{",a.length>0?[Pl([xl,a]),xl]:"","}"]}function _4a(e,t){var r;let{type:n,name:a}=e.key;if(!e.computed&&n==="Identifier"&&(a==="static"||a==="get"||a==="set")&&!e.value&&!e.typeAnnotation)return!0;if(!t||t.static||t.accessibility||t.readonly)return!1;if(!t.computed){let o=(r=t.key)==null?void 0:r.name;if(o==="in"||o==="instanceof")return!0}if(BEi(t)&&t.variance&&!t.static&&!t.declare)return!0;switch(t.type){case"ClassProperty":case"PropertyDefinition":case"TSAbstractPropertyDefinition":return t.computed;case"MethodDefinition":case"TSAbstractMethodDefinition":case"ClassMethod":case"ClassPrivateMethod":{if((t.value?t.value.async:t.async)||t.kind==="get"||t.kind==="set")return!1;let o=t.value?t.value.generator:t.generator;return!!(t.computed||o)}case"TSIndexSignature":return!0}return!1}var y4a=_0(["TSAsExpression","TSTypeAssertion","TSNonNullExpression","TSInstantiationExpression","TSSatisfiesExpression"]);function kEi(e){return y4a(e)?kEi(e.expression):e}var b4a=_0(["FunctionExpression","ArrowFunctionExpression"]);function E4a(e){return e.type==="MemberExpression"||e.type==="OptionalMemberExpression"||e.type==="Identifier"&&e.name!=="undefined"}function S4a(e,t){if(t.semi||GEi(e,t)||FEi(e,t))return!1;let{node:r,key:n,parent:a}=e;return!!(r.type==="ExpressionStatement"&&(n==="body"&&(a.type==="Program"||a.type==="BlockStatement"||a.type==="StaticBlock"||a.type==="TSModuleBlock")||n==="consequent"&&a.type==="SwitchCase")&&e.call(()=>xEi(e,t),"expression"))}function xEi(e,t){let{node:r}=e;switch(r.type){case"ParenthesizedExpression":case"TypeCastExpression":case"ArrayExpression":case"ArrayPattern":case"TemplateLiteral":case"TemplateElement":case"RegExpLiteral":return!0;case"ArrowFunctionExpression":if(!mEi(e,t))return!0;break;case"UnaryExpression":{let{prefix:n,operator:a}=r;if(n&&(a==="+"||a==="-"))return!0;break}case"BindExpression":if(!r.object)return!0;break;case"Literal":if(r.regex)return!0;break;default:if(nD(r))return!0}return Eme(e,t)?!0:zTr(r)?e.call(()=>xEi(e,t),...zyi(r)):!1}function GEi({node:e,parent:t},r){return(r.parentParser==="markdown"||r.parentParser==="mdx")&&e.type==="ExpressionStatement"&&nD(e.expression)&&t.type==="Program"&&t.body.length===1}function FEi({node:e,parent:t},r){return(r.parser==="__vue_event_binding"||r.parser==="__vue_ts_event_binding")&&e.type==="ExpressionStatement"&&t.type==="Program"&&t.body.length===1}function v4a(e,t,r){let n=[r("expression")];if(FEi(e,t)){let a=kEi(e.node.expression);(b4a(a)||E4a(a))&&n.push(";")}else GEi(e,t)||t.semi&&n.push(";");return n}function B4a(e,t,r){if(t.__isVueBindings||t.__isVueForBindingLeft){let n=e.map(r,"program","body",0,"params");if(n.length===1)return n[0];let a=vC([",",zg],n);return t.__isVueForBindingLeft?["(",Pl([bl,Ia(a)]),bl,")"]:a}if(t.__isEmbeddedTypescriptGenericParameters){let n=e.map(r,"program","body",0,"typeParameters","params");return vC([",",zg],n)}}function w4a(e,t){let{node:r}=e;switch(r.type){case"RegExpLiteral":return Lyi(r);case"BigIntLiteral":return XTr(r.extra.raw);case"NumericLiteral":return QRe(r.extra.raw);case"StringLiteral":return pme(HRe(r.extra.raw,t));case"NullLiteral":return"null";case"BooleanLiteral":return String(r.value);case"DirectiveLiteral":return Vyi(r.extra.raw,t);case"Literal":{if(r.regex)return Lyi(r.regex);if(r.bigint)return XTr(r.raw);let{value:n}=r;return typeof n=="number"?QRe(r.raw):typeof n=="string"?T4a(e)?Vyi(r.raw,t):pme(HRe(r.raw,t)):String(n)}}}function T4a(e){if(e.key!=="expression")return;let{parent:t}=e;return t.type==="ExpressionStatement"&&t.directive}function XTr(e){return e.toLowerCase()}function Lyi({pattern:e,flags:t}){return t=[...t].sort().join(""),`/${e}/${t}`}function Vyi(e,t){let r=e.slice(1,-1);if(r.includes('"')||r.includes("'"))return e;let n=t.singleQuote?"'":'"';return n+r+n}function R4a(e,t,r){let n=e.originalText.slice(t,r);for(let a of e[Symbol.for("comments")]){let o=ZS(a);if(o>r)break;let l=BC(a);if(le.type==="ExportDefaultDeclaration"||e.type==="DeclareExportDeclaration"&&e.default;function VEi(e,t,r){let{node:n}=e,a=[oXa(e,t,r),AV(e),"export",LEi(n)?" default":""],{declaration:o,exported:l}=n;return ig(n,fA.Dangling)&&(a.push(" ",N2(e,t)),ibi(n)&&a.push(xl)),o?a.push(" ",r("declaration")):(a.push(x4a(n)),n.type==="ExportAllDeclaration"||n.type==="DeclareExportAllDeclaration"?(a.push(" *"),l&&a.push(" as ",r("exported"))):a.push(OEi(e,t,r)),a.push(WEi(e,t,r),HEi(e,t,r))),a.push(k4a(n,t)),a}var D4a=_0(["ClassDeclaration","ComponentDeclaration","FunctionDeclaration","TSInterfaceDeclaration","DeclareClass","DeclareComponent","DeclareFunction","DeclareHook","HookDeclaration","TSDeclareFunction","EnumDeclaration"]);function k4a(e,t){return t.semi&&(!e.declaration||LEi(e)&&!D4a(e.declaration))?";":""}function IRr(e,t=!0){return e&&e!=="value"?`${t?" ":""}${e}${t?"":" "}`:""}function PEi(e,t){return IRr(e.importKind,t)}function x4a(e){return IRr(e.exportKind)}function WEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=[];return MEi(n,t)&&a.push(" from"),a.push(" ",r("source")),a}function OEi(e,t,r){let{node:n}=e;if(!MEi(n,t))return"";let a=[" "];if(H_(n.specifiers)){let o=[],l=[];e.each(()=>{let A=e.node.type;if(A==="ExportNamespaceSpecifier"||A==="ExportDefaultSpecifier"||A==="ImportNamespaceSpecifier"||A==="ImportDefaultSpecifier")o.push(r());else if(A==="ExportSpecifier"||A==="ImportSpecifier")l.push(r());else throw new jRe(n,"specifier")},"specifiers"),a.push(vC(", ",o)),l.length>0&&(o.length>0&&a.push(", "),l.length>1||o.length>0||n.specifiers.some(A=>ig(A))?a.push(Ia(["{",Pl([t.bracketSpacing?zg:bl,vC([",",zg],l)]),lh(pee(t)?",":""),t.bracketSpacing?zg:bl,"}"])):a.push(["{",t.bracketSpacing?" ":"",...l,t.bracketSpacing?" ":"","}"]))}else a.push("{}");return a}function MEi(e,t){return e.type!=="ImportDeclaration"||H_(e.specifiers)||e.importKind==="type"?!0:ZEi(t,ZS(e),ZS(e.source)).trimEnd().endsWith("from")}function G4a(e,t){var r,n;if((r=e.extra)!=null&&r.deprecatedAssertSyntax)return"assert";let a=ZEi(t,BC(e.source),(n=e.attributes)!=null&&n[0]?ZS(e.attributes[0]):BC(e)).trimStart();return a.startsWith("assert")?"assert":a.startsWith("with")||H_(e.attributes)?"with":void 0}function HEi(e,t,r){let{node:n}=e;if(!n.source)return"";let a=G4a(n,t);if(!a)return"";let o=[` ${a} {`];return H_(n.attributes)&&(t.bracketSpacing&&o.push(" "),o.push(vC(", ",e.map(r,"attributes"))),t.bracketSpacing&&o.push(" ")),o.push("}"),o}function F4a(e,t,r){let{node:n}=e,{type:a}=n,o=a.startsWith("Import"),l=o?"imported":"local",A=o?"local":"exported",f=n[l],I=n[A],C="",b="";return a==="ExportNamespaceSpecifier"||a==="ImportNamespaceSpecifier"?C="*":f&&(C=r(l)),I&&!Z4a(n)&&(b=r(A)),[IRr(a==="ImportSpecifier"?n.importKind:n.exportKind,!1),C,C&&b?" as ":"",b]}function Z4a(e){if(e.type!=="ImportSpecifier"&&e.type!=="ExportSpecifier")return!1;let{local:t,[e.type==="ImportSpecifier"?"imported":"exported"]:r}=e;if(t.type!==r.type||!PMa(t,r))return!1;if(gV(t))return t.value===r.value&&UM(t)===UM(r);switch(t.type){case"Identifier":return t.name===r.name;default:return!1}}function ubt(e,t,r){var n;let a=t.semi?";":"",{node:o}=e,l=o.type==="ObjectTypeAnnotation",A=o.type==="TSEnumDeclaration"||o.type==="EnumBooleanBody"||o.type==="EnumNumberBody"||o.type==="EnumBigIntBody"||o.type==="EnumStringBody"||o.type==="EnumSymbolBody",f=[o.type==="TSTypeLiteral"||A?"members":o.type==="TSInterfaceBody"?"body":"properties"];l&&f.push("indexers","callProperties","internalSlots");let I=f.flatMap(ue=>e.map(({node:de})=>({node:de,printed:r(),loc:ZS(de)}),ue));f.length>1&&I.sort((ue,de)=>ue.loc-de.loc);let{parent:C,key:b}=e,E=l&&b==="body"&&(C.type==="InterfaceDeclaration"||C.type==="DeclareInterface"||C.type==="DeclareClass"),N=o.type==="TSInterfaceBody"||A||E||o.type==="ObjectPattern"&&C.type!=="FunctionDeclaration"&&C.type!=="FunctionExpression"&&C.type!=="ArrowFunctionExpression"&&C.type!=="ObjectMethod"&&C.type!=="ClassMethod"&&C.type!=="ClassPrivateMethod"&&C.type!=="AssignmentPattern"&&C.type!=="CatchClause"&&o.properties.some(ue=>ue.value&&(ue.value.type==="ObjectPattern"||ue.value.type==="ArrayPattern"))||o.type!=="ObjectPattern"&&t.objectWrap==="preserve"&&I.length>0&&ace(t.originalText,ZS(o),I[0].loc),B=E?";":o.type==="TSInterfaceBody"||o.type==="TSTypeLiteral"?lh(a,";"):",",F=o.type==="RecordExpression"?"#{":o.exact?"{|":"{",Q=o.exact?"|}":"}",X=[],ae=I.map(ue=>{let de=[...X,Ia(ue.printed)];return X=[B,zg],(ue.node.type==="TSPropertySignature"||ue.node.type==="TSMethodSignature"||ue.node.type==="TSConstructSignatureDeclaration"||ue.node.type==="TSCallSignatureDeclaration")&&ig(ue.node,fA.PrettierIgnore)&&X.shift(),fee(ue.node,t)&&X.push(xl),de});if(o.inexact||o.hasUnknownMembers){let ue;if(ig(o,fA.Dangling)){let de=ig(o,fA.Line);ue=[N2(e,t),de||dO(t.originalText,BC(U0(!1,PRe(o),-1)))?xl:zg,"..."]}else ue=["..."];ae.push([...X,...ue])}let ne=(n=U0(!1,I,-1))==null?void 0:n.node,ce=!(o.inexact||o.hasUnknownMembers||ne&&(ne.type==="RestElement"||(ne.type==="TSPropertySignature"||ne.type==="TSCallSignatureDeclaration"||ne.type==="TSMethodSignature"||ne.type==="TSConstructSignatureDeclaration")&&ig(ne,fA.PrettierIgnore))),fe;if(ae.length===0){if(!ig(o,fA.Dangling))return[F,Q,Lk(e,r)];fe=Ia([F,N2(e,t,{indent:!0}),bl,Q,KZ(e),Lk(e,r)])}else fe=[E&&H_(o.properties)?I4a(C):"",F,Pl([t.bracketSpacing?zg:bl,...ae]),lh(ce&&(B!==","||pee(t))?B:""),t.bracketSpacing?zg:bl,Q,KZ(e),Lk(e,r)];return e.match(ue=>ue.type==="ObjectPattern"&&!H_(ue.decorators),RTr)||nce(o)&&(e.match(void 0,(ue,de)=>de==="typeAnnotation",(ue,de)=>de==="typeAnnotation",RTr)||e.match(void 0,(ue,de)=>ue.type==="FunctionTypeParam"&&de==="typeAnnotation",RTr))||!N&&e.match(ue=>ue.type==="ObjectPattern",ue=>ue.type==="AssignmentExpression"||ue.type==="VariableDeclarator")?fe:Ia(fe,{shouldBreak:N})}function RTr(e,t){return(t==="params"||t==="parameters"||t==="this"||t==="rest")&&jbi(e)}function L4a(e){let t=[e];for(let r=0;rE[Se]===n),B=E.type===n.type&&!N,F,Q,X=0;do Q=F||n,F=e.getParentNode(X),X++;while(F&&F.type===n.type&&A.every(Se=>F[Se]!==Q));let ae=F||E,ne=Q;if(a&&(nD(n[A[0]])||nD(f)||nD(I)||L4a(ne))){b=!0,B=!0;let Se=k=>[lh("("),Pl([bl,k]),bl,lh(")")],De=k=>k.type==="NullLiteral"||k.type==="Literal"&&k.value===null||k.type==="Identifier"&&k.name==="undefined";C.push(" ? ",De(f)?r(o):Se(r(o))," : ",I.type===n.type||De(I)?r(l):Se(r(l)))}else{let Se=k=>t.useTabs?Pl(r(k)):oj(2,r(k)),De=[zg,"? ",f.type===n.type?lh("","("):"",Se(o),f.type===n.type?lh("",")"):"",zg,": ",Se(l)];C.push(E.type!==n.type||E[l]===n||N?De:t.useTabs?gbi(Pl(De)):oj(Math.max(0,t.tabWidth-2),De))}let ce=[o,l,...A].some(Se=>ig(n[Se],De=>zM(De)&&ace(t.originalText,ZS(De),BC(De)))),fe=Se=>E===ae?Ia(Se,{shouldBreak:ce}):ce?[Se,aj]:Se,ue=!b&&(Yv(E)||E.type==="NGPipeExpression"&&E.left===n)&&!E.computed,de=W4a(e),be=fe([V4a(e,t,r),B?C:Pl(C),a&&ue&&!de?bl:""]);return N||de?Ia([Pl([bl,be]),bl]):be}function M4a(e,t){return(Yv(t)||t.type==="NGPipeExpression"&&t.left===e)&&!t.computed}function H4a(e,t,r,n){return[...e.map(a=>PRe(a)),PRe(t),PRe(r)].flat().some(a=>zM(a)&&ace(n.originalText,ZS(a),BC(a)))}var Y4a=new Map([["AssignmentExpression","right"],["VariableDeclarator","init"],["ReturnStatement","argument"],["ThrowStatement","argument"],["UnaryExpression","argument"],["YieldExpression","argument"],["AwaitExpression","argument"]]);function Q4a(e){let{node:t}=e;if(t.type!=="ConditionalExpression")return!1;let r,n=t;for(let a=0;!r;a++){let o=e.getParentNode(a);if(o.type==="ChainExpression"&&o.expression===n||b_(o)&&o.callee===n||Yv(o)&&o.object===n||o.type==="TSNonNullExpression"&&o.expression===n){n=o;continue}o.type==="NewExpression"&&o.callee===n||nj(o)&&o.expression===n?(r=e.getParentNode(a+1),n=o):r=o}return n===t?!1:r[Y4a.get(r.type)]===n}var NTr=e=>[lh("("),Pl([bl,e]),bl,lh(")")];function hRr(e,t,r,n){if(!t.experimentalTernaries)return O4a(e,t,r);let{node:a}=e,o=a.type==="ConditionalExpression",l=oce(a),A=o?"consequent":"trueType",f=o?"alternate":"falseType",I=o?["test"]:["checkType","extendsType"],C=a[A],b=a[f],E=I.map(ke=>a[ke]),{parent:N}=e,B=N.type===a.type,F=B&&I.some(ke=>N[ke]===a),Q=B&&N[f]===a,X=C.type===a.type,ae=b.type===a.type,ne=ae||Q,ce=t.tabWidth>2||t.useTabs,fe,ue,de=0;do ue=fe||a,fe=e.getParentNode(de),de++;while(fe&&fe.type===a.type&&I.every(ke=>fe[ke]!==ue));let be=fe||N,Se=n&&n.assignmentLayout&&n.assignmentLayout!=="break-after-operator"&&(N.type==="AssignmentExpression"||N.type==="VariableDeclarator"||N.type==="ClassProperty"||N.type==="PropertyDefinition"||N.type==="ClassPrivateProperty"||N.type==="ObjectProperty"||N.type==="Property"),De=(N.type==="ReturnStatement"||N.type==="ThrowStatement")&&!(X||ae),k=o&&be.type==="JSXExpressionContainer"&&e.grandparent.type!=="JSXAttribute",et=Q4a(e),ct=M4a(a,N),Me=l&&Eme(e,t),je=ce?t.useTabs?" ":" ".repeat(t.tabWidth-1):"",St=H4a(E,C,b,t)||X||ae,At=!ne&&!B&&!l&&(k?C.type==="NullLiteral"||C.type==="Literal"&&C.value===null:eRr(C,t)&&hyi(a.test,3)),Yt=ne||Q||l&&!B||B&&o&&hyi(a.test,1)||At,Tr=[];!X&&ig(C,fA.Dangling)&&e.call(ke=>{Tr.push(N2(ke,t),xl)},"consequent");let Nr=[];ig(a.test,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"test"),!ae&&ig(b,fA.Dangling)&&e.call(ke=>{Nr.push(N2(ke,t))},"alternate"),ig(a,fA.Dangling)&&Nr.push(N2(e,t));let er=Symbol("test"),vt=Symbol("consequent"),xt=Symbol("test-and-consequent"),Zr=o?[NTr(r("test")),a.test.type==="ConditionalExpression"?aj:""]:[r("checkType")," ","extends"," ",oce(a.extendsType)||a.extendsType.type==="TSMappedType"?r("extendsType"):Ia(NTr(r("extendsType")))],qt=Ia([Zr," ?"],{id:er}),Xt=r(A),lr=Pl([X||k&&(nD(C)||B||ne)?xl:zg,Tr,Xt]),cr=Yt?Ia([qt,ne?lr:lh(lr,Ia(lr,{id:vt}),{groupId:er})],{id:xt}):[qt,lr],Ar=r(f),qr=At?lh(Ar,gbi(NTr(Ar)),{groupId:xt}):Ar,_n=[cr,Nr.length>0?[Pl([xl,Nr]),xl]:ae?xl:At?lh(zg," ",{groupId:xt}):zg,":",ae?" ":ce?Yt?lh(je,lh(ne||At?" ":je," "),{groupId:xt}):lh(je," "):" ",ae?qr:Ia([Pl(qr),k&&!At?bl:""]),ct&&!et?bl:"",St?aj:""];return Se&&!St?Ia(Pl([bl,Ia(_n)])):Se||De?Ia(Pl(_n)):et||l&&F?Ia([Pl([bl,_n]),Me?bl:""]):N===be?Ia(_n):_n}function X4a(e,t,r,n){let{node:a}=e;if(qTr(a))return w4a(e,t);let o=t.semi?";":"",l=[];switch(a.type){case"JsExpressionRoot":return r("node");case"JsonRoot":return[r("node"),xl];case"File":return B4a(e,t,r)??r("program");case"EmptyStatement":return"";case"ExpressionStatement":return v4a(e,t,r);case"ChainExpression":return r("expression");case"ParenthesizedExpression":return!ig(a.expression)&&(e4(a.expression)||Vk(a.expression))?["(",r("expression"),")"]:Ia(["(",Pl([bl,r("expression")]),bl,")"]);case"AssignmentExpression":return mXa(e,t,r);case"VariableDeclarator":return CXa(e,t,r);case"BinaryExpression":case"LogicalExpression":return Pbi(e,t,r);case"AssignmentPattern":return[r("left")," = ",r("right")];case"OptionalMemberExpression":case"MemberExpression":return fXa(e,t,r);case"MetaProperty":return[r("meta"),".",r("property")];case"BindExpression":return a.object&&l.push(r("object")),l.push(Ia(Pl([bl,AEi(e,t,r)]))),l;case"Identifier":return[a.name,KZ(e),gEi(e),Lk(e,r)];case"V8IntrinsicIdentifier":return["%",a.name];case"SpreadElement":case"SpreadElementPattern":case"SpreadPropertyPattern":case"RestElement":return dEi(e,r);case"FunctionDeclaration":case"FunctionExpression":return hEi(e,r,t,n);case"ArrowFunctionExpression":return r4a(e,t,r,n);case"YieldExpression":return l.push("yield"),a.delegate&&l.push("*"),a.argument&&l.push(" ",r("argument")),l;case"AwaitExpression":if(l.push("await"),a.argument){l.push(" ",r("argument"));let{parent:A}=e;if(b_(A)&&A.callee===a||Yv(A)&&A.object===a){l=[Pl([bl,...l]),bl];let f=e.findAncestor(I=>I.type==="AwaitExpression"||I.type==="BlockStatement");if(f?.type!=="AwaitExpression"||!JZ(f.argument,I=>I===a))return Ia(l)}}return l;case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return VEi(e,t,r);case"ImportDeclaration":return N4a(e,t,r);case"ImportSpecifier":case"ExportSpecifier":case"ImportNamespaceSpecifier":case"ExportNamespaceSpecifier":case"ImportDefaultSpecifier":case"ExportDefaultSpecifier":return F4a(e,t,r);case"ImportAttribute":return BTr(e,t,r);case"Program":case"BlockStatement":case"StaticBlock":return bEi(e,t,r);case"ClassBody":return C4a(e,t,r);case"ThrowStatement":return e4a(e,t,r);case"ReturnStatement":return $Xa(e,t,r);case"NewExpression":case"ImportExpression":case"OptionalCallExpression":case"CallExpression":return Xbi(e,t,r);case"ObjectExpression":case"ObjectPattern":case"RecordExpression":return ubt(e,t,r);case"Property":return ibt(a)?YTr(e,t,r):BTr(e,t,r);case"ObjectProperty":return BTr(e,t,r);case"ObjectMethod":return YTr(e,t,r);case"Decorator":return["@",r("expression")];case"ArrayExpression":case"ArrayPattern":case"TupleExpression":return dRr(e,t,r);case"SequenceExpression":{let{parent:A}=e;if(A.type==="ExpressionStatement"||A.type==="ForStatement"){let f=[];return e.each(({isFirst:I})=>{I?f.push(r()):f.push(",",Pl([zg,r()]))},"expressions"),Ia(f)}return Ia(vC([",",zg],e.map(r,"expressions")))}case"ThisExpression":return"this";case"Super":return"super";case"Directive":return[r("value"),o];case"UnaryExpression":return l.push(a.operator),/[a-z]$/u.test(a.operator)&&l.push(" "),ig(a.argument)?l.push(Ia(["(",Pl([bl,r("argument")]),bl,")"])):l.push(r("argument")),l;case"UpdateExpression":return[a.prefix?a.operator:"",r("argument"),a.prefix?"":a.operator];case"ConditionalExpression":return hRr(e,t,r,n);case"VariableDeclaration":{let A=e.map(r,"declarations"),f=e.parent,I=f.type==="ForStatement"||f.type==="ForInStatement"||f.type==="ForOfStatement",C=a.declarations.some(E=>E.init),b;return A.length===1&&!ig(a.declarations[0])?b=A[0]:A.length>0&&(b=Pl(A[0])),l=[AV(e),a.kind,b?[" ",b]:"",Pl(A.slice(1).map(E=>[",",C&&!I?xl:zg,E]))],I&&f.body!==a||l.push(o),Ia(l)}case"WithStatement":return Ia(["with (",r("object"),")",tce(a.body,r("body"))]);case"IfStatement":{let A=tce(a.consequent,r("consequent")),f=Ia(["if (",Ia([Pl([bl,r("test")]),bl]),")",A]);if(l.push(f),a.alternate){let I=ig(a.consequent,fA.Trailing|fA.Line)||ibi(a),C=a.consequent.type==="BlockStatement"&&!I;l.push(C?" ":xl),ig(a,fA.Dangling)&&l.push(N2(e,t),I?xl:" "),l.push("else",Ia(tce(a.alternate,r("alternate"),a.alternate.type==="IfStatement")))}return l}case"ForStatement":{let A=tce(a.body,r("body")),f=N2(e,t),I=f?[f,bl]:"";return!a.init&&!a.test&&!a.update?[I,Ia(["for (;;)",A])]:[I,Ia(["for (",Ia([Pl([bl,r("init"),";",zg,r("test"),";",zg,r("update")]),bl]),")",A])]}case"WhileStatement":return Ia(["while (",Ia([Pl([bl,r("test")]),bl]),")",tce(a.body,r("body"))]);case"ForInStatement":return Ia(["for (",r("left")," in ",r("right"),")",tce(a.body,r("body"))]);case"ForOfStatement":return Ia(["for",a.await?" await":""," (",r("left")," of ",r("right"),")",tce(a.body,r("body"))]);case"DoWhileStatement":{let A=tce(a.body,r("body"));return l=[Ia(["do",A])],a.body.type==="BlockStatement"?l.push(" "):l.push(xl),l.push("while (",Ia([Pl([bl,r("test")]),bl]),")",o),l}case"DoExpression":return[a.async?"async ":"","do ",r("body")];case"BreakStatement":case"ContinueStatement":return l.push(a.type==="BreakStatement"?"break":"continue"),a.label&&l.push(" ",r("label")),l.push(o),l;case"LabeledStatement":return a.body.type==="EmptyStatement"?[r("label"),":;"]:[r("label"),": ",r("body")];case"TryStatement":return["try ",r("block"),a.handler?[" ",r("handler")]:"",a.finalizer?[" finally ",r("finalizer")]:""];case"CatchClause":if(a.param){let A=ig(a.param,I=>!zM(I)||I.leading&&dO(t.originalText,BC(I))||I.trailing&&dO(t.originalText,ZS(I),{backwards:!0})),f=r("param");return["catch ",A?["(",Pl([bl,f]),bl,") "]:["(",f,") "],r("body")]}return["catch ",r("body")];case"SwitchStatement":return[Ia(["switch (",Pl([bl,r("discriminant")]),bl,")"])," {",a.cases.length>0?Pl([xl,vC(xl,e.map(({node:A,isLast:f})=>[r(),!f&&fee(A,t)?xl:""],"cases"))]):"",xl,"}"];case"SwitchCase":{a.test?l.push("case ",r("test"),":"):l.push("default:"),ig(a,fA.Dangling)&&l.push(" ",N2(e,t));let A=a.consequent.filter(f=>f.type!=="EmptyStatement");if(A.length>0){let f=QTr(e,t,r,"consequent");l.push(A.length===1&&A[0].type==="BlockStatement"?[" ",f]:Pl([xl,f]))}return l}case"DebuggerStatement":return["debugger",o];case"ClassDeclaration":case"ClassExpression":return wEi(e,t,r);case"ClassMethod":case"ClassPrivateMethod":case"MethodDefinition":return NEi(e,t,r);case"ClassProperty":case"PropertyDefinition":case"ClassPrivateProperty":case"ClassAccessorProperty":case"AccessorProperty":return DEi(e,t,r);case"TemplateElement":return pme(a.value.raw);case"TemplateLiteral":return Rbi(e,r,t);case"TaggedTemplateExpression":return TYa(e,r);case"PrivateIdentifier":return["#",a.name];case"PrivateName":return["#",r("id")];case"TopicReference":return"%";case"ArgumentPlaceholder":return"?";case"ModuleExpression":return["module ",r("body")];case"InterpreterDirective":default:throw new jRe(a,"ESTree")}}function YEi(e,t,r){let{parent:n,node:a,key:o}=e,l=[r("expression")];switch(a.type){case"AsConstExpression":l.push(" as const");break;case"AsExpression":case"TSAsExpression":l.push(" as ",r("typeAnnotation"));break;case"SatisfiesExpression":case"TSSatisfiesExpression":l.push(" satisfies ",r("typeAnnotation"));break}return o==="callee"&&b_(n)||o==="object"&&Yv(n)?Ia([Pl([bl,...l]),bl]):l}function J4a(e,t,r){let{node:n}=e,a=[AV(e),"component"];n.id&&a.push(" ",r("id")),a.push(r("typeParameters"));let o=U4a(e,r,t);return n.rendersType?a.push(Ia([o," ",r("rendersType")])):a.push(Ia([o])),n.body&&a.push(" ",r("body")),t.semi&&n.type==="DeclareComponent"&&a.push(";"),a}function U4a(e,t,r){let{node:n}=e,a=n.params;if(n.rest&&(a=[...a,n.rest]),a.length===0)return["(",N2(e,r,{filter:l=>t4(r.originalText,BC(l))===")"}),")"];let o=[];return j4a(e,(l,A)=>{let f=A===a.length-1;f&&n.rest&&o.push("..."),o.push(t()),!f&&(o.push(","),fee(a[A],r)?o.push(xl,xl):o.push(zg))}),["(",Pl([bl,...o]),lh(pee(r,"all")&&!K4a(n,a)?",":""),bl,")"]}function K4a(e,t){var r;return e.rest||((r=U0(!1,t,-1))==null?void 0:r.type)==="RestElement"}function j4a(e,t){let{node:r}=e,n=0,a=o=>t(o,n++);e.each(a,"params"),r.rest&&e.call(a,"rest")}function z4a(e,t,r){let{node:n}=e;return n.shorthand?r("local"):[r("name")," as ",r("local")]}function q4a(e,t,r){let{node:n}=e,a=[];return n.name&&a.push(r("name"),n.optional?"?: ":": "),a.push(r("typeAnnotation")),a}function QEi(e,t,r){return ubt(e,r,t)}function XEi(e,t){let{node:r}=e,n=t("id");r.computed&&(n=["[",n,"]"]);let a="";return r.initializer&&(a=t("initializer")),r.init&&(a=t("init")),a?[n," = ",a]:n}function $4a(e,t,r){let{node:n}=e,a;if(n.type==="EnumSymbolBody"||n.explicitType)switch(n.type){case"EnumBooleanBody":a="boolean";break;case"EnumNumberBody":a="number";break;case"EnumBigIntBody":a="bigint";break;case"EnumStringBody":a="string";break;case"EnumSymbolBody":a="symbol";break}return[a?`of ${a} `:"",QEi(e,t,r)]}function JEi(e,t,r){let{node:n}=e;return[AV(e),n.const?"const ":"","enum ",t("id")," ",n.type==="TSEnumDeclaration"?QEi(e,t,r):t("body")]}function eJa(e,t,r){let{node:n}=e,a=["hook"];n.id&&a.push(" ",r("id"));let o=Sme(e,r,t,!1,!0),l=lbt(e,r),A=zRe(n,l);return a.push(Ia([A?Ia(o):o,l]),n.body?" ":"",r("body")),a}function tJa(e,t,r){let{node:n}=e,a=[AV(e),"hook"];return n.id&&a.push(" ",r("id")),t.semi&&a.push(";"),a}function Pyi(e){var t;let{node:r}=e;return r.type==="HookTypeAnnotation"&&((t=e.getParentNode(2))==null?void 0:t.type)==="DeclareHook"}function rJa(e,t,r){let{node:n}=e,a=[];a.push(Pyi(e)?"":"hook ");let o=Sme(e,r,t,!1,!0),l=[];return l.push(Pyi(e)?": ":" => ",r("returnType")),zRe(n,l)&&(o=Ia(o)),a.push(o,l),Ia(a)}function UEi(e,t,r){let{node:n}=e,a=[AV(e),"interface"],o=[],l=[];n.type!=="InterfaceTypeAnnotation"&&o.push(" ",r("id"),r("typeParameters"));let A=n.typeParameters&&!ig(n.typeParameters,fA.Trailing|fA.Line);return H_(n.extends)&&l.push(A?lh(" ",zg,{groupId:fRr(n.typeParameters)}):zg,"extends ",(n.extends.length===1?gHa:Pl)(vC([",",zg],e.map(r,"extends")))),ig(n.id,fA.Trailing)||H_(n.extends)?A?a.push(Ia([...o,Pl(l)])):a.push(Ia(Pl([...o,...l]))):a.push(...o,...l),a.push(" ",r("body")),Ia(a)}function nJa(e,t,r){let{node:n}=e;if(Kyi(n))return n.type.slice(0,-14).toLowerCase();let a=t.semi?";":"";switch(n.type){case"ComponentDeclaration":case"DeclareComponent":case"ComponentTypeAnnotation":return J4a(e,t,r);case"ComponentParameter":return z4a(e,t,r);case"ComponentTypeParameter":return q4a(e,t,r);case"HookDeclaration":return eJa(e,t,r);case"DeclareHook":return tJa(e,t,r);case"HookTypeAnnotation":return rJa(e,t,r);case"DeclareClass":return wEi(e,t,r);case"DeclareFunction":return[AV(e),"function ",r("id"),r("predicate"),a];case"DeclareModule":return["declare module ",r("id")," ",r("body")];case"DeclareModuleExports":return["declare module.exports",Lk(e,r),a];case"DeclareNamespace":return["declare namespace ",r("id")," ",r("body")];case"DeclareVariable":return[AV(e),n.kind??"var"," ",r("id"),a];case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return VEi(e,t,r);case"DeclareOpaqueType":case"OpaqueType":return VXa(e,t,r);case"DeclareTypeAlias":case"TypeAlias":return qbi(e,t,r);case"IntersectionTypeAnnotation":return $bi(e,t,r);case"UnionTypeAnnotation":return eEi(e,t,r);case"ConditionalTypeAnnotation":return hRr(e,t,r);case"InferTypeAnnotation":return nEi(e,t,r);case"FunctionTypeAnnotation":return tEi(e,t,r);case"TupleTypeAnnotation":return dRr(e,t,r);case"TupleTypeLabeledElement":return sEi(e,t,r);case"TupleTypeSpreadElement":return iEi(e,t,r);case"GenericTypeAnnotation":return[r("id"),w4e(e,t,r,"typeParameters")];case"IndexedAccessType":case"OptionalIndexedAccessType":return rEi(e,t,r);case"TypeAnnotation":return aEi(e,t,r);case"TypeParameter":return vEi(e,t,r);case"TypeofTypeAnnotation":return lEi(e,r);case"ExistsTypeAnnotation":return"*";case"ArrayTypeAnnotation":return cEi(r);case"DeclareEnum":case"EnumDeclaration":return JEi(e,r,t);case"EnumBooleanBody":case"EnumNumberBody":case"EnumBigIntBody":case"EnumStringBody":case"EnumSymbolBody":return $4a(e,r,t);case"EnumBooleanMember":case"EnumNumberMember":case"EnumBigIntMember":case"EnumStringMember":case"EnumDefaultedMember":return XEi(e,r);case"FunctionTypeParam":{let o=n.name?r("name"):e.parent.this===n?"this":"";return[o,KZ(e),o?": ":"",r("typeAnnotation")]}case"DeclareInterface":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":return UEi(e,t,r);case"ClassImplements":case"InterfaceExtends":return[r("id"),r("typeParameters")];case"NullableTypeAnnotation":return["?",r("typeAnnotation")];case"Variance":{let{kind:o}=n;return jTr.ok(o==="plus"||o==="minus"),o==="plus"?"+":"-"}case"KeyofTypeAnnotation":return["keyof ",r("argument")];case"ObjectTypeCallProperty":return[n.static?"static ":"",r("value")];case"ObjectTypeMappedTypeProperty":return A4a(e,t,r);case"ObjectTypeIndexer":return[n.static?"static ":"",n.variance?r("variance"):"","[",r("id"),n.id?": ":"",r("key"),"]: ",r("value")];case"ObjectTypeProperty":{let o="";return n.proto?o="proto ":n.static&&(o="static "),[o,n.kind!=="init"?n.kind+" ":"",n.variance?r("variance"):"",G4e(e,t,r),KZ(e),ibt(n)?"":": ",r("value")]}case"ObjectTypeAnnotation":return ubt(e,t,r);case"ObjectTypeInternalSlot":return[n.static?"static ":"","[[",r("id"),"]]",KZ(e),n.method?"":": ",r("value")];case"ObjectTypeSpreadProperty":return dEi(e,r);case"QualifiedTypeofIdentifier":case"QualifiedTypeIdentifier":return[r("qualification"),".",r("id")];case"NullLiteralTypeAnnotation":return"null";case"BooleanLiteralTypeAnnotation":return String(n.value);case"StringLiteralTypeAnnotation":return pme(HRe(UM(n),t));case"NumberLiteralTypeAnnotation":return QRe(n.raw??n.extra.raw);case"BigIntLiteralTypeAnnotation":return XTr(n.raw??n.extra.raw);case"TypeCastExpression":return["(",r("expression"),Lk(e,r),")"];case"TypePredicate":return uEi(e,r);case"TypeOperator":return[n.operator," ",r("typeAnnotation")];case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w4e(e,t,r,"params");case"InferredPredicate":case"DeclaredPredicate":return[e.key==="predicate"&&e.parent.type!=="DeclareFunction"&&!e.parent.returnType?": ":" ","%checks",...n.type==="DeclaredPredicate"?["(",r("value"),")"]:[]];case"AsExpression":case"AsConstExpression":case"SatisfiesExpression":return YEi(e,t,r)}}function iJa(e,t,r){var n;let{node:a}=e;if(!a.type.startsWith("TS"))return;if(jyi(a))return a.type.slice(2,-7).toLowerCase();let o=t.semi?";":"",l=[];switch(a.type){case"TSThisType":return"this";case"TSTypeAssertion":{let A=!(Vk(a.expression)||e4(a.expression)),f=Ia(["<",Pl([bl,r("typeAnnotation")]),bl,">"]),I=[lh("("),Pl([bl,r("expression")]),bl,lh(")")];return A?dme([[f,r("expression")],[f,Ia(I,{shouldBreak:!0})],[f,r("expression")]]):Ia([f,r("expression")])}case"TSDeclareFunction":return hEi(e,r,t);case"TSExportAssignment":return["export = ",r("expression"),o];case"TSModuleBlock":return bEi(e,t,r);case"TSInterfaceBody":case"TSTypeLiteral":return ubt(e,t,r);case"TSTypeAliasDeclaration":return qbi(e,t,r);case"TSQualifiedName":return[r("left"),".",r("right")];case"TSAbstractMethodDefinition":case"TSDeclareMethod":return NEi(e,t,r);case"TSAbstractAccessorProperty":case"TSAbstractPropertyDefinition":return DEi(e,t,r);case"TSInterfaceHeritage":case"TSClassImplements":case"TSExpressionWithTypeArguments":case"TSInstantiationExpression":return[r("expression"),r(a.typeArguments?"typeArguments":"typeParameters")];case"TSTemplateLiteralType":return Rbi(e,r,t);case"TSNamedTupleMember":return sEi(e,t,r);case"TSRestType":return iEi(e,t,r);case"TSOptionalType":return[r("typeAnnotation"),"?"];case"TSInterfaceDeclaration":return UEi(e,t,r);case"TSTypeParameterDeclaration":case"TSTypeParameterInstantiation":return w4e(e,t,r,"params");case"TSTypeParameter":return vEi(e,t,r);case"TSAsExpression":case"TSSatisfiesExpression":return YEi(e,t,r);case"TSArrayType":return cEi(r);case"TSPropertySignature":return[a.readonly?"readonly ":"",G4e(e,t,r),KZ(e),Lk(e,r)];case"TSParameterProperty":return[ebt(a),a.static?"static ":"",a.override?"override ":"",a.readonly?"readonly ":"",r("parameter")];case"TSTypeQuery":return lEi(e,r);case"TSIndexSignature":{let A=a.parameters.length>1?lh(pee(t)?",":""):"",f=Ia([Pl([bl,vC([", ",bl],e.map(r,"parameters"))]),A,bl]),I=e.parent.type==="ClassBody"&&e.key==="body";return[I&&a.static?"static ":"",a.readonly?"readonly ":"","[",a.parameters?f:"","]",Lk(e,r),I?o:""]}case"TSTypePredicate":return uEi(e,r);case"TSNonNullExpression":return[r("expression"),"!"];case"TSImportType":return["import(",r("argument"),")",a.qualifier?[".",r("qualifier")]:"",w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSLiteralType":return r("literal");case"TSIndexedAccessType":return rEi(e,t,r);case"TSTypeOperator":return[a.operator," ",r("typeAnnotation")];case"TSMappedType":return d4a(e,t,r);case"TSMethodSignature":{let A=a.kind&&a.kind!=="method"?`${a.kind} `:"";l.push(ebt(a),A,a.computed?"[":"",r("key"),a.computed?"]":"",KZ(e));let f=Sme(e,r,t,!1,!0),I=a.returnType?"returnType":"typeAnnotation",C=a[I],b=C?Lk(e,r,I):"",E=zRe(a,b);return l.push(E?Ia(f):f),C&&l.push(Ia(b)),Ia(l)}case"TSNamespaceExportDeclaration":return["export as namespace ",r("id"),t.semi?";":""];case"TSEnumDeclaration":return JEi(e,r,t);case"TSEnumMember":return XEi(e,r);case"TSImportEqualsDeclaration":return[a.isExport?"export ":"","import ",PEi(a,!1),r("id")," = ",r("moduleReference"),t.semi?";":""];case"TSExternalModuleReference":return["require(",r("expression"),")"];case"TSModuleDeclaration":{let{parent:A}=e,f=A.type==="TSModuleDeclaration",I=((n=a.body)==null?void 0:n.type)==="TSModuleDeclaration";return f?l.push("."):(l.push(AV(e)),a.kind!=="global"&&l.push(a.kind," ")),l.push(r("id")),I?l.push(r("body")):a.body?l.push(" ",Ia(r("body"))):l.push(o),l}case"TSConditionalType":return hRr(e,t,r);case"TSInferType":return nEi(e,t,r);case"TSIntersectionType":return $bi(e,t,r);case"TSUnionType":return eEi(e,t,r);case"TSFunctionType":case"TSCallSignatureDeclaration":case"TSConstructorType":case"TSConstructSignatureDeclaration":return tEi(e,t,r);case"TSTupleType":return dRr(e,t,r);case"TSTypeReference":return[r("typeName"),w4e(e,t,r,a.typeArguments?"typeArguments":"typeParameters")];case"TSTypeAnnotation":return aEi(e,t,r);case"TSEmptyBodyFunctionExpression":return pRr(e,t,r);case"TSJSDocAllType":return"*";case"TSJSDocUnknownType":return"?";case"TSJSDocNullableType":return Fyi(e,r,"?");case"TSJSDocNonNullableType":return Fyi(e,r,"!");case"TSParenthesizedType":default:throw new jRe(a,"TypeScript")}}function sJa(e,t,r,n){if(Vbi(e))return _Qa(e,t);for(let a of[nXa,jQa,nJa,iJa,X4a]){let o=a(e,t,r,n);if(o!==void 0)return o}}var oJa=_0(["ClassMethod","ClassPrivateMethod","ClassProperty","ClassAccessorProperty","AccessorProperty","TSAbstractAccessorProperty","PropertyDefinition","TSAbstractPropertyDefinition","ClassPrivateProperty","MethodDefinition","TSAbstractMethodDefinition","TSDeclareMethod"]);function aJa(e,t,r,n){var a;e.isRoot&&((a=t.__onHtmlBindingRoot)==null||a.call(t,e.node,t));let o=sJa(e,t,r,n);if(!o)return"";let{node:l}=e;if(oJa(l))return o;let A=H_(l.decorators),f=aXa(e,t,r),I=l.type==="ClassExpression";if(A&&!I)return GTr(o,E=>Ia([f,E]));let C=Eme(e,t),b=S4a(e,t);return!f&&!C&&!b?o:GTr(o,E=>[b?";":"",C?"(":"",C&&I&&A?[Pl([zg,f,E]),zg]:[f,E],C?")":""])}var cJa=aJa,lJa={avoidAstMutation:!0},uJa=[{linguistLanguageId:174,name:"JSON.stringify",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".importmap"],filenames:["package.json","package-lock.json","composer.json"],parsers:["json-stringify"],vscodeLanguageIds:["json"]},{linguistLanguageId:174,name:"JSON",type:"data",color:"#292929",tmScope:"source.json",aceMode:"json",codemirrorMode:"javascript",codemirrorMimeType:"application/json",aliases:["geojson","jsonl","topojson"],extensions:[".json",".4DForm",".4DProject",".avsc",".geojson",".gltf",".har",".ice",".JSON-tmLanguage",".mcmeta",".tfstate",".tfstate.backup",".topojson",".webapp",".webmanifest",".yy",".yyp"],filenames:[".all-contributorsrc",".arcconfig",".auto-changelog",".c8rc",".htmlhintrc",".imgbotconfig",".nycrc",".tern-config",".tern-project",".watchmanconfig","Pipfile.lock","composer.lock","flake.lock","mcmod.info",".babelrc",".jscsrc",".jshintrc",".jslintrc",".swcrc"],parsers:["json"],vscodeLanguageIds:["json"]},{linguistLanguageId:423,name:"JSON with Comments",type:"data",color:"#292929",group:"JSON",tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"text/javascript",aliases:["jsonc"],extensions:[".jsonc",".code-snippets",".code-workspace",".sublime-build",".sublime-commands",".sublime-completions",".sublime-keymap",".sublime-macro",".sublime-menu",".sublime-mousemap",".sublime-project",".sublime-settings",".sublime-theme",".sublime-workspace",".sublime_metrics",".sublime_session"],filenames:[],parsers:["jsonc"],vscodeLanguageIds:["jsonc"]},{linguistLanguageId:175,name:"JSON5",type:"data",color:"#267CB9",extensions:[".json5"],tmScope:"source.js",aceMode:"javascript",codemirrorMode:"javascript",codemirrorMimeType:"application/json",parsers:["json5"],vscodeLanguageIds:["json5"]}],KEi={};tbt(KEi,{getVisitorKeys:()=>pJa,massageAstNode:()=>jEi,print:()=>fJa});var gJa={JsonRoot:["node"],ArrayExpression:["elements"],ObjectExpression:["properties"],ObjectProperty:["key","value"],UnaryExpression:["argument"],NullLiteral:[],BooleanLiteral:[],StringLiteral:[],NumericLiteral:[],Identifier:[],TemplateLiteral:["quasis"],TemplateElement:[]},AJa=gJa,dJa=Jyi(AJa),pJa=dJa;function fJa(e,t,r){let{node:n}=e;switch(n.type){case"JsonRoot":return[r("node"),xl];case"ArrayExpression":{if(n.elements.length===0)return"[]";let a=e.map(()=>e.node===null?"null":r(),"elements");return["[",Pl([xl,vC([",",xl],a)]),xl,"]"]}case"ObjectExpression":return n.properties.length===0?"{}":["{",Pl([xl,vC([",",xl],e.map(r,"properties"))]),xl,"}"];case"ObjectProperty":return[r("key"),": ",r("value")];case"UnaryExpression":return[n.operator==="+"?"":n.operator,r("argument")];case"NullLiteral":return"null";case"BooleanLiteral":return n.value?"true":"false";case"StringLiteral":return JSON.stringify(n.value);case"NumericLiteral":return Wyi(e)?JSON.stringify(String(n.value)):JSON.stringify(n.value);case"Identifier":return Wyi(e)?JSON.stringify(n.name):n.name;case"TemplateLiteral":return r(["quasis",0]);case"TemplateElement":return JSON.stringify(n.value.cooked);default:throw new jRe(n,"JSON")}}function Wyi(e){return e.key==="key"&&e.parent.type==="ObjectProperty"}var IJa=new Set(["start","end","extra","loc","comments","leadingComments","trailingComments","innerComments","errors","range","tokens"]);function jEi(e,t){let{type:r}=e;if(r==="ObjectProperty"){let{key:n}=e;n.type==="Identifier"?t.key={type:"StringLiteral",value:n.name}:n.type==="NumericLiteral"&&(t.key={type:"StringLiteral",value:String(n.value)});return}if(r==="UnaryExpression"&&e.operator==="+")return t.argument;if(r==="ArrayExpression"){for(let[n,a]of e.elements.entries())a===null&&t.elements.splice(n,0,{type:"NullLiteral"});return}if(r==="TemplateLiteral")return{type:"StringLiteral",value:e.quasis[0].value.cooked}}jEi.ignoredProperties=IJa;var E4e={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},rce="JavaScript",hJa={arrowParens:{category:rce,type:"choice",default:"always",description:"Include parentheses around a sole arrow function parameter.",choices:[{value:"always",description:"Always include parens. Example: `(x) => x`"},{value:"avoid",description:"Omit parens when possible. Example: `x => x`"}]},bracketSameLine:E4e.bracketSameLine,objectWrap:E4e.objectWrap,bracketSpacing:E4e.bracketSpacing,jsxBracketSameLine:{category:rce,type:"boolean",description:"Put > on the last line instead of at a new line.",deprecated:"2.4.0"},semi:{category:rce,type:"boolean",default:!0,description:"Print semicolons.",oppositeDescription:"Do not print semicolons, except at the beginning of lines which may need them."},experimentalOperatorPosition:{category:rce,type:"choice",default:"end",description:"Where to print operators when binary expressions wrap lines.",choices:[{value:"start",description:"Print operators at the start of new lines."},{value:"end",description:"Print operators at the end of previous lines."}]},experimentalTernaries:{category:rce,type:"boolean",default:!1,description:"Use curious ternaries, with the question mark after the condition.",oppositeDescription:"Default behavior of ternaries; keep question marks on the same line as the consequent."},singleQuote:E4e.singleQuote,jsxSingleQuote:{category:rce,type:"boolean",default:!1,description:"Use single quotes in JSX."},quoteProps:{category:rce,type:"choice",default:"as-needed",description:"Change when properties in objects are quoted.",choices:[{value:"as-needed",description:"Only add quotes around object properties where required."},{value:"consistent",description:"If at least one property in an object requires quotes, quote all properties."},{value:"preserve",description:"Respect the input use of quotes in object properties."}]},trailingComma:{category:rce,type:"choice",default:"all",description:"Print trailing commas wherever possible when multi-line.",choices:[{value:"all",description:"Trailing commas wherever possible (including function arguments)."},{value:"es5",description:"Trailing commas where valid in ES5 (objects, arrays, etc.)"},{value:"none",description:"No trailing commas."}]},singleAttributePerLine:E4e.singleAttributePerLine},zEi=hJa,qRe={estree:Yyi,"estree-json":KEi},qEi=[...AMa,...uJa],mJa=Hyi;var W4e={};sI(W4e,{default:()=>YUa,languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var CJa=Object.defineProperty,n1i=(e,t)=>{for(var r in t)CJa(e,r,{get:t[r],enumerable:!0})},i1i={};n1i(i1i,{languages:()=>f1i,options:()=>I1i,parsers:()=>SRr,printers:()=>B1i});var _Ja=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},mRr=_Ja,yJa="indent",bJa="group",EJa="if-break",ERr="line",SJa="break-parent",s1i=()=>{},V4e=s1i,o1i=s1i;function pV(e){return V4e(e),{type:yJa,contents:e}}function $M(e,t={}){return V4e(e),o1i(t.expandedStates,!0),{type:bJa,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function lj(e,t="",r={}){return V4e(e),t!==""&&V4e(t),{type:EJa,breakContents:e,flatContents:t,groupId:r.groupId}}var vJa={type:SJa},BJa={type:ERr,hard:!0},eNe={type:ERr},Qv={type:ERr,soft:!0},AT=[BJa,vJa];function Wk(e,t){V4e(e),o1i(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l0}var l1i=VJa,PJa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},WJa=PJa,F4e=null;function L4e(e){if(F4e!==null&&typeof F4e.property){let t=F4e;return F4e=L4e.prototype=null,t}return F4e=L4e.prototype=e??Object.create(null),new L4e}var OJa=10;for(let e=0;e<=OJa;e++)L4e();function MJa(e){return L4e(e)}function HJa(e,t="type"){MJa(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var YJa=HJa,QJa=class{constructor(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},u1i=class{constructor(e,t,r,n,a,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},g1i={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},gTu=new Set(Object.keys(g1i)),$Re;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})($Re||($Re={}));var XJa=YJa(g1i,"kind"),JJa=XJa;function A1i(e){return e.loc.start}function d1i(e){return e.loc.end}function UJa(e){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/u.test(e)}function KJa(e){return`# @format +`||a==="\r"||a==="\u2028"||a==="\u2029")return t+1}return t}var c1i=RJa;function NJa(e,t,r={}){let n=a1i(e,r.backwards?t-1:t,r),a=c1i(e,n,r);return n!==a}var DJa=NJa;function kJa(e,t){if(t===!1)return!1;if(e.charAt(t)==="/"&&e.charAt(t+1)==="*"){for(let r=t+2;r0}var l1i=VJa,PJa=class extends Error{name="UnexpectedNodeError";constructor(e,t,r="type"){super(`Unexpected ${t} node ${r}: ${JSON.stringify(e[r])}.`),this.node=e}},WJa=PJa,F4e=null;function L4e(e){if(F4e!==null&&typeof F4e.property){let t=F4e;return F4e=L4e.prototype=null,t}return F4e=L4e.prototype=e??Object.create(null),new L4e}var OJa=10;for(let e=0;e<=OJa;e++)L4e();function MJa(e){return L4e(e)}function HJa(e,t="type"){MJa(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var YJa=HJa,QJa=class{constructor(e,t,r){this.start=e.start,this.end=t.end,this.startToken=e,this.endToken=t,this.source=r}get[Symbol.toStringTag](){return"Location"}toJSON(){return{start:this.start,end:this.end}}},u1i=class{constructor(e,t,r,n,a,o){this.kind=e,this.start=t,this.end=r,this.line=n,this.column=a,this.value=o,this.prev=null,this.next=null}get[Symbol.toStringTag](){return"Token"}toJSON(){return{kind:this.kind,value:this.value,line:this.line,column:this.column}}},g1i={Name:[],Document:["definitions"],OperationDefinition:["name","variableDefinitions","directives","selectionSet"],VariableDefinition:["variable","type","defaultValue","directives"],Variable:["name"],SelectionSet:["selections"],Field:["alias","name","arguments","directives","selectionSet"],Argument:["name","value"],FragmentSpread:["name","directives"],InlineFragment:["typeCondition","directives","selectionSet"],FragmentDefinition:["name","variableDefinitions","typeCondition","directives","selectionSet"],IntValue:[],FloatValue:[],StringValue:[],BooleanValue:[],NullValue:[],EnumValue:[],ListValue:["values"],ObjectValue:["fields"],ObjectField:["name","value"],Directive:["name","arguments"],NamedType:["name"],ListType:["type"],NonNullType:["type"],SchemaDefinition:["description","directives","operationTypes"],OperationTypeDefinition:["type"],ScalarTypeDefinition:["description","name","directives"],ObjectTypeDefinition:["description","name","interfaces","directives","fields"],FieldDefinition:["description","name","arguments","type","directives"],InputValueDefinition:["description","name","type","defaultValue","directives"],InterfaceTypeDefinition:["description","name","interfaces","directives","fields"],UnionTypeDefinition:["description","name","directives","types"],EnumTypeDefinition:["description","name","directives","values"],EnumValueDefinition:["description","name","directives"],InputObjectTypeDefinition:["description","name","directives","fields"],DirectiveDefinition:["description","name","arguments","locations"],SchemaExtension:["directives","operationTypes"],ScalarTypeExtension:["name","directives"],ObjectTypeExtension:["name","interfaces","directives","fields"],InterfaceTypeExtension:["name","interfaces","directives","fields"],UnionTypeExtension:["name","directives","types"],EnumTypeExtension:["name","directives","values"],InputObjectTypeExtension:["name","directives","fields"]},ATu=new Set(Object.keys(g1i)),$Re;(function(e){e.QUERY="query",e.MUTATION="mutation",e.SUBSCRIPTION="subscription"})($Re||($Re={}));var XJa=YJa(g1i,"kind"),JJa=XJa;function A1i(e){return e.loc.start}function d1i(e){return e.loc.end}function UJa(e){return/^\s*#[^\S\n]*@(?:format|prettier)\s*(?:\n|$)/u.test(e)}function KJa(e){return`# @format `+e}function jJa(e,t,r){let{node:n}=e;if(!n.description)return"";let a=[r("description")];return n.kind==="InputValueDefinition"&&!n.description.block?a.push(eNe):a.push(AT),a}var Cee=jJa;function zJa(e,t,r){let{node:n}=e;switch(n.kind){case"Document":return[...Wk(AT,cj(e,t,r,"definitions")),AT];case"OperationDefinition":{let a=t.originalText[A1i(n)]!=="{",o=!!n.name;return[a?n.operation:"",a&&o?[" ",r("name")]:"",a&&!o&&l1i(n.variableDefinitions)?" ":"",$Ei(e,r),jZ(e,r,n),!a&&!o?"":" ",r("selectionSet")]}case"FragmentDefinition":return["fragment ",r("name"),$Ei(e,r)," on ",r("typeCondition"),jZ(e,r,n)," ",r("selectionSet")];case"SelectionSet":return["{",pV([AT,Wk(AT,cj(e,t,r,"selections"))]),AT,"}"];case"Field":return $M([n.alias?[r("alias"),": "]:"",r("name"),n.arguments.length>0?$M(["(",pV([Qv,Wk([lj("",", "),Qv],cj(e,t,r,"arguments"))]),Qv,")"]):"",jZ(e,r,n),n.selectionSet?" ":"",r("selectionSet")]);case"Name":return n.value;case"StringValue":if(n.block){let a=mRr(!1,n.value,'"""',String.raw`\"""`).split(` `);return a.length===1&&(a[0]=a[0].trim()),a.every(o=>o==="")&&(a.length=0),Wk(AT,['"""',...a,'"""'])}return['"',mRr(!1,mRr(!1,n.value,/["\\]/gu,String.raw`\$&`),` @@ -2215,7 +2215,7 @@ ${t.content}`},j8a=new Set(["position","raw"]);function A2i(e,t,r){if((e.type=== `," "),A=V8a(l,"`"),f="`".repeat(A||1),I=l.startsWith("`")||l.endsWith("`")||/^[\n ]/u.test(l)&&/[\n ]$/u.test(l)&&/[^\n ]/u.test(l)?" ":"";return[f,I,l,I,f]}case"wikiLink":{let l="";return t.proseWrap==="preserve"?l=o.value:l=DG(!1,o.value,/[\t\n]+/gu," "),["[[",l,"]]"]}case"link":switch(t.originalText[o.position.start.offset]){case"<":{let l="mailto:";return["<",o.url.startsWith(l)&&t.originalText.slice(o.position.start.offset+1,o.position.start.offset+1+l.length)!==l?o.url.slice(l.length):o.url,">"]}case"[":return["[",fV(e,t,r),"](",vRr(o.url,")"),mbt(o.title,t),")"];default:return t.originalText.slice(o.position.start.offset,o.position.end.offset)}case"image":return["![",o.alt||"","](",vRr(o.url,")"),mbt(o.title,t),")"];case"blockquote":return["> ",wme("> ",fV(e,t,r))];case"heading":return["#".repeat(o.depth)+" ",fV(e,t,r)];case"code":{if(o.isIndented){let f=" ".repeat(4);return wme(f,[f,rNe(o.value,DR)])}let l=t.__inJsTemplate?"~":"`",A=l.repeat(Math.max(3,l2i(o.value,l)+1));return[A,o.lang||"",o.meta?" "+o.meta:"",DR,rNe(I2i(o,t.originalText),DR),DR,A]}case"html":{let{parent:l,isLast:A}=e,f=l.type==="root"&&A?o.value.trimEnd():o.value,I=/^$/su.test(f);return rNe(f,I?DR:_bt(TRr))}case"list":{let l=L1i(o,e.parent),A=aja(o,t);return fV(e,t,r,{processor(f){let I=b(),C=f.node;if(C.children.length===2&&C.children[1].type==="html"&&C.children[0].position.start.column!==C.children[1].position.start.column)return[I,Z1i(f,t,r,I)];return[I,wme(" ".repeat(I.length),Z1i(f,t,r,I))];function b(){let E=o.ordered?(f.isFirst?o.start:A?1:o.start+f.index)+(l%2===0?". ":") "):l%2===0?"- ":"* ";return(o.isAligned||o.hasIndentedCodeblock)&&o.ordered?zja(E,t):E}}})}case"thematicBreak":{let{ancestors:l}=e,A=l.findIndex(f=>f.type==="list");return A===-1?"---":L1i(l[A],l[A+1])%2===0?"***":"---"}case"linkReference":return["[",fV(e,t,r),"]",o.referenceType==="full"?BRr(o):o.referenceType==="collapsed"?"[]":""];case"imageReference":switch(o.referenceType){case"full":return["![",o.alt||"","]",BRr(o)];default:return["![",o.alt,"]",o.referenceType==="collapsed"?"[]":""]}case"definition":{let l=t.proseWrap==="always"?o2i:" ";return hbt([BRr(o),":",wRr([l,vRr(o.url),o.title===null?"":[l,mbt(o.title,t,!1)]])])}case"footnote":return["[^",fV(e,t,r),"]"];case"footnoteReference":return O1i(o);case"footnoteDefinition":{let l=o.children.length===1&&o.children[0].type==="paragraph"&&(t.proseWrap==="never"||t.proseWrap==="preserve"&&o.children[0].position.start.line===o.children[0].position.end.line);return[O1i(o),": ",l?fV(e,t,r):hbt([wme(" ".repeat(4),fV(e,t,r,{processor:({isFirst:A})=>A?hbt([a2i,r()]):r()}))])]}case"table":return Tja(e,t,r);case"tableCell":return fV(e,t,r);case"break":return/\s/u.test(t.originalText[o.position.start.offset])?[" ",_bt(TRr)]:["\\",DR];case"liquidNode":return rNe(o.value,DR);case"import":case"export":case"jsx":return o.value;case"esComment":return["{/* ",o.value," */}"];case"math":return["$$",DR,o.value?[rNe(o.value,DR),DR]:"","$$"];case"inlineMath":return t.originalText.slice(bbt(o),Ebt(o));case"tableRow":case"listItem":case"text":default:throw new M8a(o,"Markdown")}}function Z1i(e,t,r,n){let{node:a}=e,o=a.checked===null?"":a.checked?"[x] ":"[ ] ";return[o,fV(e,t,r,{processor({node:l,isFirst:A}){if(A&&l.type!=="list")return wme(" ".repeat(o.length),r());let f=" ".repeat(i6a(t.tabWidth-n.length,0,3));return[f,wme(f,r())]}})]}function zja(e,t){let r=n();return e+" ".repeat(r>=4?0:r);function n(){let a=e.length%t.tabWidth;return a===0?0:t.tabWidth-a}}function L1i(e,t){return qja(e,t,r=>r.ordered===e.ordered)}function qja(e,t,r){let n=-1;for(let a of t.children)if(a.type===e.type&&r(a)?n++:n=-1,a===e)return n}function $ja(e,t,r){let n=[],a=null,{children:o}=e.node;for(let[l,A]of o.entries())switch(MRr(A)){case"start":a===null&&(a={index:l,offset:A.position.end.offset});break;case"end":a!==null&&(n.push({start:a,end:{index:l,offset:A.position.start.offset}}),a=null);break;default:break}return fV(e,t,r,{processor({index:l}){if(n.length>0){let A=n[0];if(l===A.start.index)return[V1i(o[A.start.index]),t.originalText.slice(A.start.offset,A.end.offset),V1i(o[A.end.index])];if(A.start.index{let l=a(e);l!==!1&&(o.length>0&&e6a(e)&&(o.push(DR),(t6a(e,t)||W1i(e))&&o.push(DR),W1i(e)&&o.push(DR)),o.push(l))},"children"),o}function V1i(e){if(e.type==="html")return e.value;if(e.type==="paragraph"&&Array.isArray(e.children)&&e.children.length===1&&e.children[0].type==="esComment")return["{/* ",e.children[0].value," */}"]}function MRr(e){let t;if(e.type==="html")t=e.value.match(/^$/u);else{let r;e.type==="esComment"?r=e:e.type==="paragraph"&&e.children.length===1&&e.children[0].type==="esComment"&&(r=e.children[0]),r&&(t=r.value.match(/^prettier-ignore(?:-(start|end))?$/u))}return t?t[1]||"next":!1}function e6a({node:e,parent:t}){let r=d2i.has(e.type),n=e.type==="html"&&p2i.has(t.type);return!r&&!n}function P1i(e,t){return e.type==="listItem"&&(e.spread||t.originalText.charAt(e.position.end.offset-1)===` `)}function t6a({node:e,previous:t,parent:r},n){if(P1i(t,n))return!0;let a=t.type===e.type&&Kja.has(e.type),o=r.type==="listItem"&&!P1i(r,n),l=MRr(t)==="next",A=e.type==="html"&&t.type==="html"&&t.position.end.line+1===e.position.start.line,f=e.type==="html"&&r.type==="listItem"&&t.type==="paragraph"&&t.position.end.line+1===e.position.start.line;return!(a||o||l||A||f)}function W1i({node:e,previous:t}){let r=t.type==="list",n=e.type==="code"&&e.isIndented;return r&&n}function r6a(e){let t=e.findAncestor(r=>r.type==="linkReference"||r.type==="imageReference");return t&&(t.type!=="linkReference"||t.referenceType!=="full")}var n6a=(e,t)=>{for(let r of t)e=DG(!1,e,r,encodeURIComponent(r));return e};function vRr(e,t=[]){let r=[" ",...Array.isArray(t)?t:[t]];return new RegExp(r.map(n=>Bbt(n)).join("|"),"u").test(e)?`<${n6a(e,"<>")}>`:e}function mbt(e,t,r=!0){if(!e)return"";if(r)return" "+mbt(e,t,!1);if(e=DG(!1,e,/\\(?=["')])/gu,""),e.includes('"')&&e.includes("'")&&!e.includes(")"))return`(${e})`;let n=W8a(e,t.singleQuote);return e=DG(!1,e,"\\","\\\\"),e=DG(!1,e,n,`\\${n}`),`${n}${e}${n}`}function i6a(e,t,r){return Math.max(t,Math.min(e,r))}function s6a(e){return e.index>0&&MRr(e.previous)==="next"}function BRr(e){return`[${(0,S8a.default)(e.label)}]`}function O1i(e){return`[^${e.label}]`}var o6a={preprocess:Hja,print:jja,embed:lja,massageAstNode:z8a,hasPrettierIgnore:s6a,insertPragma:K8a,getVisitorKeys:hja},a6a=o6a,m2i=[{linguistLanguageId:222,name:"Markdown",type:"prose",color:"#083fa1",aliases:["md","pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".md",".livemd",".markdown",".mdown",".mdwn",".mkd",".mkdn",".mkdown",".ronn",".scd",".workbook"],filenames:["contents.lr","README"],tmScope:"text.md",parsers:["markdown"],vscodeLanguageIds:["markdown"]},{linguistLanguageId:222,name:"MDX",type:"prose",color:"#083fa1",aliases:["md","pandoc"],aceMode:"markdown",codemirrorMode:"gfm",codemirrorMimeType:"text/x-gfm",wrap:!0,extensions:[".mdx"],filenames:[],tmScope:"text.md",parsers:["mdx"],vscodeLanguageIds:["mdx"]}],M1i={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},c6a={proseWrap:M1i.proseWrap,singleQuote:M1i.singleQuote},C2i=c6a,HRr={};X1i(HRr,{markdown:()=>Y1i,mdx:()=>T6a,remark:()=>Y1i});var l6a=oNe($Ua(),1),u6a=oNe(rKa(),1),g6a=oNe(c8a(),1),A6a=oNe(y8a(),1),d6a=/^import\s/u,p6a=/^export\s/u,f6a=String.raw`[a-z][a-z0-9]*(\.[a-z][a-z0-9]*)*|`,I6a=/|/u,h6a=/^\{\s*\/\*(.*)\*\/\s*\}/u,m6a=` -`,_2i=e=>d6a.test(e),kRr=e=>p6a.test(e),y2i=(e,t)=>{let r=t.indexOf(m6a),n=t.slice(0,r);if(kRr(n)||_2i(n))return e(n)({type:kRr(n)?"export":"import",value:n})},b2i=(e,t)=>{let r=h6a.exec(t);if(r)return e(r[0])({type:"esComment",value:r[1].trim()})};y2i.locator=e=>kRr(e)||_2i(e)?-1:1;b2i.locator=(e,t)=>e.indexOf("{",t);var C6a=function(){let{Parser:e}=this,{blockTokenizers:t,blockMethods:r,inlineTokenizers:n,inlineMethods:a}=e.prototype;t.esSyntax=y2i,n.esComment=b2i,r.splice(r.indexOf("paragraph"),0,"esSyntax"),a.splice(a.indexOf("text"),0,"esComment")},_6a=function(){let e=this.Parser.prototype;e.blockMethods=["frontMatter",...e.blockMethods],e.blockTokenizers.frontMatter=t;function t(r,n){let a=WRr(n);if(a.frontMatter)return r(a.frontMatter.raw)(a.frontMatter)}t.onlyAtStart=!0},y6a=_6a;function b6a(){return e=>dNe(e,(t,r,[n])=>t.type!=="html"||I6a.test(t.value)||p2i.has(n.type)?t:{...t,type:"jsx"})}var E6a=b6a,S6a=function(){let e=this.Parser.prototype,t=e.inlineMethods;t.splice(t.indexOf("text"),0,"liquid"),e.inlineTokenizers.liquid=r;function r(n,a){let o=a.match(/^(\{%.*?%\}|\{\{.*?\}\})/su);if(o)return n(o[0])({type:"liquidNode",value:o[0]})}r.locator=function(n,a){return n.indexOf("{",a)}},v6a=S6a,B6a=function(){let e="wikiLink",t=/^\[\[(?.+?)\]\]/su,r=this.Parser.prototype,n=r.inlineMethods;n.splice(n.indexOf("link"),0,e),r.inlineTokenizers.wikiLink=a;function a(o,l){let A=t.exec(l);if(A){let f=A.groups.linkContents.trim();return o(A[0])({type:e,value:f})}}a.locator=function(o,l){return o.indexOf("[",l)}},w6a=B6a;function E2i({isMDX:e}){return t=>{let r=(0,A6a.default)().use(g6a.default,{commonmark:!0,...e&&{blocks:[f6a]}}).use(l6a.default).use(y6a).use(u6a.default).use(e?C6a:H1i).use(v6a).use(e?E6a:H1i).use(w6a);return r.run(r.parse(t))}}function H1i(){}var S2i={astFormat:"mdast",hasPragma:U8a,locStart:bbt,locEnd:Ebt},Y1i={...S2i,parse:E2i({isMDX:!1})},T6a={...S2i,parse:E2i({isMDX:!0})},v2i={mdast:a6a},R6a=n2i;var Xme={};sI(Xme,{default:()=>Rnc,parsers:()=>Sce});var MSi=Object.defineProperty,HSi=e=>{throw TypeError(e)},N6a=(e,t,r)=>t in e?MSi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,YSi=(e,t)=>{for(var r in t)MSi(e,r,{get:t[r],enumerable:!0})},eJe=(e,t,r)=>N6a(e,typeof t!="symbol"?t+"":t,r),D6a=(e,t,r)=>t.has(e)||HSi("Cannot "+r),k6a=(e,t,r)=>t.has(e)?HSi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),fg=(e,t,r)=>(D6a(e,t,"access private method"),r),QSi={};YSi(QSi,{parsers:()=>Sce});var Sce={};YSi(Sce,{typescript:()=>Tnc});var x6a=()=>()=>{},TNr=x6a,G6a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ENe=G6a,F6a="5.7",x2=[],Z6a=new Map;function cJe(e){return e!==void 0?e.length:0}function hO(e,t){if(e!==void 0)for(let r=0;r0;return!1}function NNr(e,t){return t===void 0||t.length===0?e:e===void 0||e.length===0?t:[...e,...t]}function O6a(e,t,r=kNr){if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;ne?.at(t):(e,t)=>{if(e!==void 0&&(t=sNr(e,t),t>1),f=r(e[A],A);switch(n(f,t)){case-1:o=A+1;break;case 0:return A;case 1:l=A-1;break}}return~o}function K6a(e,t,r,n,a){if(e&&e.length>0){let o=e.length;if(o>0){let l=n===void 0||n<0?0:n,A=a===void 0||l+a>o-1?o-1:l+a,f;for(arguments.length<=2?(f=e[l],l++):f=r;l<=A;)f=t(f,e[l],l),l++;return f}}return r}var KSi=Object.prototype.hasOwnProperty;function fj(e,t){return KSi.call(e,t)}function j6a(e){let t=[];for(let r in e)KSi.call(e,r)&&t.push(r);return t}function z6a(){let e=new Map;return e.add=q6a,e.remove=$6a,e}function q6a(e,t){let r=this.get(e);return r!==void 0?r.push(t):this.set(e,r=[t]),r}function $6a(e,t){let r=this.get(e);r!==void 0&&(c7a(r,t),r.length||this.delete(e))}function Tee(e){return Array.isArray(e)}function QRr(e){return Tee(e)?e:[e]}function e7a(e,t){return e!==void 0&&t(e)?e:void 0}function Aj(e,t){return e!==void 0&&t(e)?e:Zo.fail(`Invalid cast. The supplied value ${e} did not pass the test '${Zo.getFunctionName(t)}'.`)}function NNe(e){}function t7a(){return!0}function VE(e){return e}function w2i(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function eH(e){let t=new Map;return r=>{let n=`${typeof r}:${r}`,a=t.get(n);return a===void 0&&!t.has(n)&&(a=e(r),t.set(n,a)),a}}function kNr(e,t){return e===t}function xNr(e,t){return e===t||e!==void 0&&t!==void 0&&e.toUpperCase()===t.toUpperCase()}function r7a(e,t){return kNr(e,t)}function n7a(e,t){return e===t?0:e===void 0?-1:t===void 0?1:er?A-r:1),C=Math.floor(t.length>r+A?r+A:t.length);a[0]=A;let b=A;for(let N=1;Nr)return;let E=n;n=a,a=E}let l=n[t.length];return l>r?void 0:l}function o7a(e,t,r){let n=e.length-t.length;return n>=0&&(r?xNr(e.slice(n),t):e.indexOf(t,n)===n)}function a7a(e,t){e[t]=e[e.length-1],e.pop()}function c7a(e,t){return l7a(e,r=>r===t)}function l7a(e,t){for(let r=0;r{let t=0;e.currentLogLevel=2,e.isDebugging=!1;function r(Ft){return e.currentLogLevel<=Ft}e.shouldLog=r;function n(Ft,zr){e.loggingHost&&r(Ft)&&e.loggingHost.log(Ft,zr)}function a(Ft){n(3,Ft)}e.log=a,(Ft=>{function zr(ps){n(1,ps)}Ft.error=zr;function Rn(ps){n(2,ps)}Ft.warn=Rn;function Or(ps){n(3,ps)}Ft.log=Or;function Qi(ps){n(4,ps)}Ft.trace=Qi})(a=e.log||(e.log={}));let o={};function l(){return t}e.getAssertionLevel=l;function A(Ft){let zr=t;if(t=Ft,Ft>zr)for(let Rn of j6a(o)){let Or=o[Rn];Or!==void 0&&e[Rn]!==Or.assertion&&Ft>=Or.level&&(e[Rn]=Or,o[Rn]=void 0)}}e.setAssertionLevel=A;function f(Ft){return t>=Ft}e.shouldAssert=f;function I(Ft,zr){return f(Ft)?!0:(o[zr]={level:Ft,assertion:e[zr]},e[zr]=NNe,!1)}function C(Ft,zr){debugger;let Rn=new Error(Ft?`Debug Failure. ${Ft}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Rn,zr||C),Rn}e.fail=C;function b(Ft,zr,Rn){return C(`${zr||"Unexpected node."}\r +`,_2i=e=>d6a.test(e),kRr=e=>p6a.test(e),y2i=(e,t)=>{let r=t.indexOf(m6a),n=t.slice(0,r);if(kRr(n)||_2i(n))return e(n)({type:kRr(n)?"export":"import",value:n})},b2i=(e,t)=>{let r=h6a.exec(t);if(r)return e(r[0])({type:"esComment",value:r[1].trim()})};y2i.locator=e=>kRr(e)||_2i(e)?-1:1;b2i.locator=(e,t)=>e.indexOf("{",t);var C6a=function(){let{Parser:e}=this,{blockTokenizers:t,blockMethods:r,inlineTokenizers:n,inlineMethods:a}=e.prototype;t.esSyntax=y2i,n.esComment=b2i,r.splice(r.indexOf("paragraph"),0,"esSyntax"),a.splice(a.indexOf("text"),0,"esComment")},_6a=function(){let e=this.Parser.prototype;e.blockMethods=["frontMatter",...e.blockMethods],e.blockTokenizers.frontMatter=t;function t(r,n){let a=WRr(n);if(a.frontMatter)return r(a.frontMatter.raw)(a.frontMatter)}t.onlyAtStart=!0},y6a=_6a;function b6a(){return e=>dNe(e,(t,r,[n])=>t.type!=="html"||I6a.test(t.value)||p2i.has(n.type)?t:{...t,type:"jsx"})}var E6a=b6a,S6a=function(){let e=this.Parser.prototype,t=e.inlineMethods;t.splice(t.indexOf("text"),0,"liquid"),e.inlineTokenizers.liquid=r;function r(n,a){let o=a.match(/^(\{%.*?%\}|\{\{.*?\}\})/su);if(o)return n(o[0])({type:"liquidNode",value:o[0]})}r.locator=function(n,a){return n.indexOf("{",a)}},v6a=S6a,B6a=function(){let e="wikiLink",t=/^\[\[(?.+?)\]\]/su,r=this.Parser.prototype,n=r.inlineMethods;n.splice(n.indexOf("link"),0,e),r.inlineTokenizers.wikiLink=a;function a(o,l){let A=t.exec(l);if(A){let f=A.groups.linkContents.trim();return o(A[0])({type:e,value:f})}}a.locator=function(o,l){return o.indexOf("[",l)}},w6a=B6a;function E2i({isMDX:e}){return t=>{let r=(0,A6a.default)().use(g6a.default,{commonmark:!0,...e&&{blocks:[f6a]}}).use(l6a.default).use(y6a).use(u6a.default).use(e?C6a:H1i).use(v6a).use(e?E6a:H1i).use(w6a);return r.run(r.parse(t))}}function H1i(){}var S2i={astFormat:"mdast",hasPragma:U8a,locStart:bbt,locEnd:Ebt},Y1i={...S2i,parse:E2i({isMDX:!1})},T6a={...S2i,parse:E2i({isMDX:!0})},v2i={mdast:a6a},R6a=n2i;var Xme={};sI(Xme,{default:()=>Rnc,parsers:()=>Sce});var MSi=Object.defineProperty,HSi=e=>{throw TypeError(e)},N6a=(e,t,r)=>t in e?MSi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,YSi=(e,t)=>{for(var r in t)MSi(e,r,{get:t[r],enumerable:!0})},eJe=(e,t,r)=>N6a(e,typeof t!="symbol"?t+"":t,r),D6a=(e,t,r)=>t.has(e)||HSi("Cannot "+r),k6a=(e,t,r)=>t.has(e)?HSi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),fg=(e,t,r)=>(D6a(e,t,"access private method"),r),QSi={};YSi(QSi,{parsers:()=>Sce});var Sce={};YSi(Sce,{typescript:()=>Tnc});var x6a=()=>()=>{},TNr=x6a,G6a=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},ENe=G6a,F6a="5.7",x2=[],Z6a=new Map;function cJe(e){return e!==void 0?e.length:0}function hO(e,t){if(e!==void 0)for(let r=0;r0;return!1}function NNr(e,t){return t===void 0||t.length===0?e:e===void 0||e.length===0?t:[...e,...t]}function O6a(e,t,r=kNr){if(e===void 0||t===void 0)return e===t;if(e.length!==t.length)return!1;for(let n=0;ne?.at(t):(e,t)=>{if(e!==void 0&&(t=sNr(e,t),t>1),f=r(e[A],A);switch(n(f,t)){case-1:o=A+1;break;case 0:return A;case 1:l=A-1;break}}return~o}function K6a(e,t,r,n,a){if(e&&e.length>0){let o=e.length;if(o>0){let l=n===void 0||n<0?0:n,A=a===void 0||l+a>o-1?o-1:l+a,f;for(arguments.length<=2?(f=e[l],l++):f=r;l<=A;)f=t(f,e[l],l),l++;return f}}return r}var KSi=Object.prototype.hasOwnProperty;function fj(e,t){return KSi.call(e,t)}function j6a(e){let t=[];for(let r in e)KSi.call(e,r)&&t.push(r);return t}function z6a(){let e=new Map;return e.add=q6a,e.remove=$6a,e}function q6a(e,t){let r=this.get(e);return r!==void 0?r.push(t):this.set(e,r=[t]),r}function $6a(e,t){let r=this.get(e);r!==void 0&&(c7a(r,t),r.length||this.delete(e))}function Tee(e){return Array.isArray(e)}function QRr(e){return Tee(e)?e:[e]}function e7a(e,t){return e!==void 0&&t(e)?e:void 0}function Aj(e,t){return e!==void 0&&t(e)?e:Zo.fail(`Invalid cast. The supplied value ${e} did not pass the test '${Zo.getFunctionName(t)}'.`)}function NNe(e){}function t7a(){return!0}function VE(e){return e}function w2i(e){let t;return()=>(e&&(t=e(),e=void 0),t)}function eH(e){let t=new Map;return r=>{let n=`${typeof r}:${r}`,a=t.get(n);return a===void 0&&!t.has(n)&&(a=e(r),t.set(n,a)),a}}function kNr(e,t){return e===t}function xNr(e,t){return e===t||e!==void 0&&t!==void 0&&e.toUpperCase()===t.toUpperCase()}function r7a(e,t){return kNr(e,t)}function n7a(e,t){return e===t?0:e===void 0?-1:t===void 0?1:er?A-r:1),C=Math.floor(t.length>r+A?r+A:t.length);a[0]=A;let b=A;for(let N=1;Nr)return;let E=n;n=a,a=E}let l=n[t.length];return l>r?void 0:l}function o7a(e,t,r){let n=e.length-t.length;return n>=0&&(r?xNr(e.slice(n),t):e.indexOf(t,n)===n)}function a7a(e,t){e[t]=e[e.length-1],e.pop()}function c7a(e,t){return l7a(e,r=>r===t)}function l7a(e,t){for(let r=0;r{let t=0;e.currentLogLevel=2,e.isDebugging=!1;function r(Ft){return e.currentLogLevel<=Ft}e.shouldLog=r;function n(Ft,zr){e.loggingHost&&r(Ft)&&e.loggingHost.log(Ft,zr)}function a(Ft){n(3,Ft)}e.log=a,(Ft=>{function zr(ps){n(1,ps)}Ft.error=zr;function Rn(ps){n(2,ps)}Ft.warn=Rn;function Or(ps){n(3,ps)}Ft.log=Or;function Qi(ps){n(4,ps)}Ft.trace=Qi})(a=e.log||(e.log={}));let o={};function l(){return t}e.getAssertionLevel=l;function A(Ft){let zr=t;if(t=Ft,Ft>zr)for(let Rn of j6a(o)){let Or=o[Rn];Or!==void 0&&e[Rn]!==Or.assertion&&Ft>=Or.level&&(e[Rn]=Or,o[Rn]=void 0)}}e.setAssertionLevel=A;function f(Ft){return t>=Ft}e.shouldAssert=f;function I(Ft,zr){return f(Ft)?!0:(o[zr]={level:Ft,assertion:e[zr]},e[zr]=NNe,!1)}function C(Ft,zr){debugger;let Rn=new Error(Ft?`Debug Failure. ${Ft}`:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Rn,zr||C),Rn}e.fail=C;function b(Ft,zr,Rn){return C(`${zr||"Unexpected node."}\r Node ${Yt(Ft.kind)} was unexpected.`,Rn||b)}e.failBadSyntaxKind=b;function E(Ft,zr,Rn,Or){Ft||(zr=zr?`False expression: ${zr}`:"False expression.",Rn&&(zr+=`\r Verbose Debug Information: `+(typeof Rn=="string"?Rn:Rn())),C(zr,Or||E))}e.assert=E;function N(Ft,zr,Rn,Or,Qi){if(Ft!==zr){let ps=Rn?Or?`${Rn} ${Or}`:Rn:"";C(`Expected ${Ft} === ${zr}. ${ps}`,Qi||N)}}e.assertEqual=N;function B(Ft,zr,Rn,Or){Ft>=zr&&C(`Expected ${Ft} < ${zr}. ${Rn||""}`,Or||B)}e.assertLessThan=B;function F(Ft,zr,Rn){Ft>zr&&C(`Expected ${Ft} <= ${zr}`,Rn||F)}e.assertLessThanOrEqual=F;function Q(Ft,zr,Rn){Ft= ${zr}`,Rn||Q)}e.assertGreaterThanOrEqual=Q;function X(Ft,zr,Rn){Ft==null&&C(zr,Rn||X)}e.assertIsDefined=X;function ae(Ft,zr,Rn){return X(Ft,zr,Rn||ae),Ft}e.checkDefined=ae;function ne(Ft,zr,Rn){for(let Or of Ft)X(Or,zr,Rn||ne)}e.assertEachIsDefined=ne;function ce(Ft,zr,Rn){return ne(Ft,zr,Rn||ce),Ft}e.checkEachDefined=ce;function fe(Ft,zr="Illegal value:",Rn){let Or=typeof Ft=="object"&&fj(Ft,"kind")&&fj(Ft,"pos")?"SyntaxKind: "+Yt(Ft.kind):JSON.stringify(Ft);return C(`${zr} ${Or}`,Rn||fe)}e.assertNever=fe;function ue(Ft,zr,Rn,Or){I(1,"assertEachNode")&&E(zr===void 0||RNr(Ft,zr),Rn||"Unexpected node.",()=>`Node array did not pass test '${ct(zr)}'.`,Or||ue)}e.assertEachNode=ue;function de(Ft,zr,Rn,Or){I(1,"assertNode")&&E(Ft!==void 0&&(zr===void 0||zr(Ft)),Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} did not pass test '${ct(zr)}'.`,Or||de)}e.assertNode=de;function be(Ft,zr,Rn,Or){I(1,"assertNotNode")&&E(Ft===void 0||zr===void 0||!zr(Ft),Rn||"Unexpected node.",()=>`Node ${Yt(Ft.kind)} should not have passed test '${ct(zr)}'.`,Or||be)}e.assertNotNode=be;function Se(Ft,zr,Rn,Or){I(1,"assertOptionalNode")&&E(zr===void 0||Ft===void 0||zr(Ft),Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} did not pass test '${ct(zr)}'.`,Or||Se)}e.assertOptionalNode=Se;function De(Ft,zr,Rn,Or){I(1,"assertOptionalToken")&&E(zr===void 0||Ft===void 0||Ft.kind===zr,Rn||"Unexpected node.",()=>`Node ${Yt(Ft?.kind)} was not a '${Yt(zr)}' token.`,Or||De)}e.assertOptionalToken=De;function k(Ft,zr,Rn){I(1,"assertMissingNode")&&E(Ft===void 0,zr||"Unexpected node.",()=>`Node ${Yt(Ft.kind)} was unexpected'.`,Rn||k)}e.assertMissingNode=k;function et(Ft){}e.type=et;function ct(Ft){if(typeof Ft!="function")return"";if(fj(Ft,"name"))return Ft.name;{let zr=Function.prototype.toString.call(Ft),Rn=/^function\s+([\w$]+)\s*\(/.exec(zr);return Rn?Rn[1]:""}}e.getFunctionName=ct;function Me(Ft){return`{ name: ${mJe(Ft.escapedName)}; flags: ${Xt(Ft.flags)}; declarations: ${iNr(Ft.declarations,zr=>Yt(zr.kind))} }`}e.formatSymbol=Me;function je(Ft=0,zr,Rn){let Or=At(zr);if(Ft===0)return Or.length>0&&Or[0][0]===0?Or[0][1]:"0";if(Rn){let Qi=[],ps=Ft;for(let[yo,bo]of Or){if(yo>Ft)break;yo!==0&&yo&Ft&&(Qi.push(bo),ps&=~yo)}if(ps===0)return Qi.join("|")}else for(let[Qi,ps]of Or)if(Qi===Ft)return ps;return Ft.toString()}e.formatEnum=je;let St=new Map;function At(Ft){let zr=St.get(Ft);if(zr)return zr;let Rn=[];for(let Qi in Ft){let ps=Ft[Qi];typeof ps=="number"&&Rn.push([ps,Qi])}let Or=Y6a(Rn,(Qi,ps)=>jSi(Qi[0],ps[0]));return St.set(Ft,Or),Or}function Yt(Ft){return je(Ft,Tp,!1)}e.formatSyntaxKind=Yt;function Tr(Ft){return je(Ft,svi,!1)}e.formatSnippetKind=Tr;function Nr(Ft){return je(Ft,Bee,!1)}e.formatScriptKind=Nr;function er(Ft){return je(Ft,IO,!0)}e.formatNodeFlags=er;function vt(Ft){return je(Ft,evi,!0)}e.formatNodeCheckFlags=vt;function xt(Ft){return je(Ft,zSi,!0)}e.formatModifierFlags=xt;function Zr(Ft){return je(Ft,ivi,!0)}e.formatTransformFlags=Zr;function qt(Ft){return je(Ft,ovi,!0)}e.formatEmitFlags=qt;function Xt(Ft){return je(Ft,$Si,!0)}e.formatSymbolFlags=Xt;function lr(Ft){return je(Ft,kG,!0)}e.formatTypeFlags=lr;function cr(Ft){return je(Ft,rvi,!0)}e.formatSignatureFlags=cr;function Ar(Ft){return je(Ft,tvi,!0)}e.formatObjectFlags=Ar;function qr(Ft){return je(Ft,aNr,!0)}e.formatFlowFlags=qr;function _n(Ft){return je(Ft,qSi,!0)}e.formatRelationComparisonResult=_n;function ke(Ft){return je(Ft,CheckMode,!0)}e.formatCheckMode=ke;function jt(Ft){return je(Ft,SignatureCheckMode,!0)}e.formatSignatureCheckMode=jt;function Fn(Ft){return je(Ft,TypeFacts,!0)}e.formatTypeFacts=Fn;let Nn=!1,Hi;function po(Ft){"__debugFlowFlags"in Ft||Object.defineProperties(Ft,{__tsDebuggerDisplay:{value(){let zr=this.flags&2?"FlowStart":this.flags&4?"FlowBranchLabel":this.flags&8?"FlowLoopLabel":this.flags&16?"FlowAssignment":this.flags&32?"FlowTrueCondition":this.flags&64?"FlowFalseCondition":this.flags&128?"FlowSwitchClause":this.flags&256?"FlowArrayMutation":this.flags&512?"FlowCall":this.flags&1024?"FlowReduceLabel":this.flags&1?"FlowUnreachable":"UnknownFlow",Rn=this.flags&-2048;return`${zr}${Rn?` (${qr(Rn)})`:""}`}},__debugFlowFlags:{get(){return je(this.flags,aNr,!0)}},__debugToString:{value(){return Wr(this)}}})}function Vr(Ft){return Nn&&(typeof Object.setPrototypeOf=="function"?(Hi||(Hi=Object.create(Object.prototype),po(Hi)),Object.setPrototypeOf(Ft,Hi)):po(Ft)),Ft}e.attachFlowNodeDebugInfo=Vr;let xi;function io(Ft){"__tsDebuggerDisplay"in Ft||Object.defineProperties(Ft,{__tsDebuggerDisplay:{value(zr){return zr=String(zr).replace(/(?:,[\s\w]+:[^,]+)+\]$/,"]"),`NodeArray ${zr}`}}})}function ga(Ft){Nn&&(typeof Object.setPrototypeOf=="function"?(xi||(xi=Object.create(Array.prototype),io(xi)),Object.setPrototypeOf(Ft,xi)):io(Ft))}e.attachNodeArrayDebugInfo=ga;function Ya(){if(Nn)return;let Ft=new WeakMap,zr=new WeakMap;Object.defineProperties(k2.getSymbolConstructor().prototype,{__tsDebuggerDisplay:{value(){let Or=this.flags&33554432?"TransientSymbol":"Symbol",Qi=this.flags&-33554433;return`${Or} '${uNr(this)}'${Qi?` (${Xt(Qi)})`:""}`}},__debugFlags:{get(){return Xt(this.flags)}}}),Object.defineProperties(k2.getTypeConstructor().prototype,{__tsDebuggerDisplay:{value(){let Or=this.flags&67359327?`IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName?` (${this.debugIntrinsicName})`:""}`:this.flags&98304?"NullableType":this.flags&384?`LiteralType ${JSON.stringify(this.value)}`:this.flags&2048?`LiteralType ${this.value.negative?"-":""}${this.value.base10Value}n`:this.flags&8192?"UniqueESSymbolType":this.flags&32?"EnumType":this.flags&1048576?"UnionType":this.flags&2097152?"IntersectionType":this.flags&4194304?"IndexType":this.flags&8388608?"IndexedAccessType":this.flags&16777216?"ConditionalType":this.flags&33554432?"SubstitutionType":this.flags&262144?"TypeParameter":this.flags&524288?this.objectFlags&3?"InterfaceType":this.objectFlags&4?"TypeReference":this.objectFlags&8?"TupleType":this.objectFlags&16?"AnonymousType":this.objectFlags&32?"MappedType":this.objectFlags&1024?"ReverseMappedType":this.objectFlags&256?"EvolvingArrayType":"ObjectType":"Type",Qi=this.flags&524288?this.objectFlags&-1344:0;return`${Or}${this.symbol?` '${uNr(this.symbol)}'`:""}${Qi?` (${Ar(Qi)})`:""}`}},__debugFlags:{get(){return lr(this.flags)}},__debugObjectFlags:{get(){return this.flags&524288?Ar(this.objectFlags):""}},__debugTypeToString:{value(){let Or=Ft.get(this);return Or===void 0&&(Or=this.checker.typeToString(this),Ft.set(this,Or)),Or}}}),Object.defineProperties(k2.getSignatureConstructor().prototype,{__debugFlags:{get(){return cr(this.flags)}},__debugSignatureToString:{value(){var Or;return(Or=this.checker)==null?void 0:Or.signatureToString(this)}}});let Rn=[k2.getNodeConstructor(),k2.getIdentifierConstructor(),k2.getTokenConstructor(),k2.getSourceFileConstructor()];for(let Or of Rn)fj(Or.prototype,"__debugKind")||Object.defineProperties(Or.prototype,{__tsDebuggerDisplay:{value(){return`${vNe(this)?"GeneratedIdentifier":$C(this)?`Identifier '${yV(this)}'`:Yme(this)?`PrivateIdentifier '${yV(this)}'`:tEt(this)?`StringLiteral ${JSON.stringify(this.text.length<10?this.text:this.text.slice(10)+"...")}`:kNe(this)?`NumericLiteral ${this.text}`:v$a(this)?`BigIntLiteral ${this.text}n`:eBi(this)?"TypeParameterDeclaration":Ubt(this)?"ParameterDeclaration":tBi(this)?"ConstructorDeclaration":hNr(this)?"GetAccessorDeclaration":jbt(this)?"SetAccessorDeclaration":x$a(this)?"CallSignatureDeclaration":G$a(this)?"ConstructSignatureDeclaration":rBi(this)?"IndexSignatureDeclaration":F$a(this)?"TypePredicateNode":nBi(this)?"TypeReferenceNode":iBi(this)?"FunctionTypeNode":sBi(this)?"ConstructorTypeNode":Z$a(this)?"TypeQueryNode":L$a(this)?"TypeLiteralNode":V$a(this)?"ArrayTypeNode":P$a(this)?"TupleTypeNode":O$a(this)?"OptionalTypeNode":M$a(this)?"RestTypeNode":H$a(this)?"UnionTypeNode":Y$a(this)?"IntersectionTypeNode":Q$a(this)?"ConditionalTypeNode":X$a(this)?"InferTypeNode":J$a(this)?"ParenthesizedTypeNode":U$a(this)?"ThisTypeNode":K$a(this)?"TypeOperatorNode":j$a(this)?"IndexedAccessTypeNode":z$a(this)?"MappedTypeNode":q$a(this)?"LiteralTypeNode":W$a(this)?"NamedTupleMember":$$a(this)?"ImportTypeNode":Yt(this.kind)}${this.flags?` (${er(this.flags)})`:""}`}},__debugKind:{get(){return Yt(this.kind)}},__debugNodeFlags:{get(){return er(this.flags)}},__debugModifierFlags:{get(){return xt(Fqa(this))}},__debugTransformFlags:{get(){return Zr(this.transformFlags)}},__debugIsParseTreeNode:{get(){return Qbt(this)}},__debugEmitFlags:{get(){return qt(RNe(this))}},__debugGetText:{value(Qi){if(CNe(this))return"";let ps=zr.get(this);if(ps===void 0){let yo=z7a(this),bo=yo&&bce(yo);ps=bo?M2i(bo,yo,Qi):"",zr.set(this,ps)}return ps}}});Nn=!0}e.enableDebugInfo=Ya;function Gc(Ft){let zr=Ft&7,Rn=zr===0?"in out":zr===3?"[bivariant]":zr===2?"in":zr===1?"out":zr===4?"[independent]":"";return Ft&8?Rn+=" (unmeasurable)":Ft&16&&(Rn+=" (unreliable)"),Rn}e.formatVariance=Gc;class cl{__debugToString(){var zr;switch(this.kind){case 3:return((zr=this.debugInfo)==null?void 0:zr.call(this))||"(function mapper)";case 0:return`${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;case 1:return B2i(this.sources,this.targets||iNr(this.sources,()=>"any"),(Rn,Or)=>`${Rn.__debugTypeToString()} -> ${typeof Or=="string"?Or:Or.__debugTypeToString()}`).join(", ");case 2:return B2i(this.sources,this.targets,(Rn,Or)=>`${Rn.__debugTypeToString()} -> ${Or().__debugTypeToString()}`).join(", ");case 5:case 4:return`m1: ${this.mapper1.__debugToString().split(` `).join(` @@ -2225,13 +2225,13 @@ m2: ${this.mapper2.__debugToString().split(` `)}`;default:return fe(this)}}}e.DebugTypeMapper=cl;function Sc(Ft){return e.isDebugging?Object.setPrototypeOf(Ft,cl.prototype):Ft}e.attachDebugPrototypeIfDebug=Sc;function Hr(Ft){return console.log(Wr(Ft))}e.printControlFlowGraph=Hr;function Wr(Ft){let zr=-1;function Rn(Wt){return Wt.id||(Wt.id=zr,zr--),Wt.id}let Or;(Wt=>{Wt.lr="\u2500",Wt.ud="\u2502",Wt.dr="\u256D",Wt.dl="\u256E",Wt.ul="\u256F",Wt.ur="\u2570",Wt.udr="\u251C",Wt.udl="\u2524",Wt.dlr="\u252C",Wt.ulr="\u2534",Wt.udlr="\u256B"})(Or||(Or={}));let Qi;(Wt=>{Wt[Wt.None=0]="None",Wt[Wt.Up=1]="Up",Wt[Wt.Down=2]="Down",Wt[Wt.Left=4]="Left",Wt[Wt.Right=8]="Right",Wt[Wt.UpDown=3]="UpDown",Wt[Wt.LeftRight=12]="LeftRight",Wt[Wt.UpLeft=5]="UpLeft",Wt[Wt.UpRight=9]="UpRight",Wt[Wt.DownLeft=6]="DownLeft",Wt[Wt.DownRight=10]="DownRight",Wt[Wt.UpDownLeft=7]="UpDownLeft",Wt[Wt.UpDownRight=11]="UpDownRight",Wt[Wt.UpLeftRight=13]="UpLeftRight",Wt[Wt.DownLeftRight=14]="DownLeftRight",Wt[Wt.UpDownLeftRight=15]="UpDownLeftRight",Wt[Wt.NoChildren=16]="NoChildren"})(Qi||(Qi={}));let ps=2032,yo=882,bo=Object.create(null),Qa=[],gc=[],Cg=ac(Ft,new Set);for(let Wt of Qa)Wt.text=_g(Wt.flowNode,Wt.circular),Wc(Wt);let Nc=Sg(Cg),iA=Ul(Nc);return Xu(Cg,0),mI();function ma(Wt){return!!(Wt.flags&128)}function vu(Wt){return!!(Wt.flags&12)&&!!Wt.antecedent}function li(Wt){return!!(Wt.flags&ps)}function Ei(Wt){return!!(Wt.flags&yo)}function Ps(Wt){let Hu=[];for(let Ru of Wt.edges)Ru.source===Wt&&Hu.push(Ru.target);return Hu}function Xa(Wt){let Hu=[];for(let Ru of Wt.edges)Ru.target===Wt&&Hu.push(Ru.source);return Hu}function ac(Wt,Hu){let Ru=Rn(Wt),Vs=bo[Ru];if(Vs&&Hu.has(Wt))return Vs.circular=!0,Vs={id:-1,flowNode:Wt,edges:[],text:"",lane:-1,endLane:-1,level:-1,circular:"circularity"},Qa.push(Vs),Vs;if(Hu.add(Wt),!Vs)if(bo[Ru]=Vs={id:Ru,flowNode:Wt,edges:[],text:"",lane:-1,endLane:-1,level:-1,circular:!1},Qa.push(Vs),vu(Wt))for(let Ju of Wt.antecedent)Yl(Vs,Ju,Hu);else li(Wt)&&Yl(Vs,Wt.antecedent,Hu);return Hu.delete(Wt),Vs}function Yl(Wt,Hu,Ru){let Vs=ac(Hu,Ru),Ju={source:Wt,target:Vs};gc.push(Ju),Wt.edges.push(Ju),Vs.edges.push(Ju)}function Wc(Wt){if(Wt.level!==-1)return Wt.level;let Hu=0;for(let Ru of Xa(Wt))Hu=Math.max(Hu,Wc(Ru)+1);return Wt.level=Hu}function Sg(Wt){let Hu=0;for(let Ru of Ps(Wt))Hu=Math.max(Hu,Sg(Ru));return Hu+1}function Ul(Wt){let Hu=Ri(Array(Wt),0);for(let Ru of Qa)Hu[Ru.level]=Math.max(Hu[Ru.level],Ru.text.length);return Hu}function Xu(Wt,Hu){if(Wt.lane===-1){Wt.lane=Hu,Wt.endLane=Hu;let Ru=Ps(Wt);for(let Vs=0;Vs0&&Hu++;let Ju=Ru[Vs];Xu(Ju,Hu),Ju.endLane>Wt.endLane&&(Hu=Ju.endLane)}Wt.endLane=Hu}}function Da(Wt){if(Wt&2)return"Start";if(Wt&4)return"Branch";if(Wt&8)return"Loop";if(Wt&16)return"Assignment";if(Wt&32)return"True";if(Wt&64)return"False";if(Wt&128)return"SwitchClause";if(Wt&256)return"ArrayMutation";if(Wt&512)return"Call";if(Wt&1024)return"ReduceLabel";if(Wt&1)return"Unreachable";throw new Error}function pu(Wt){let Hu=bce(Wt);return M2i(Hu,Wt,!1)}function _g(Wt,Hu){let Ru=Da(Wt.flags);if(Hu&&(Ru=`${Ru}#${Rn(Wt)}`),ma(Wt)){let Vs=[],{switchStatement:Ju,clauseStart:Yn,clauseEnd:Ko}=Wt.node;for(let Eg=Yn;EgKo.lane)+1,Ru=Ri(Array(Hu),""),Vs=iA.map(()=>Array(Hu)),Ju=iA.map(()=>Ri(Array(Hu),0));for(let Ko of Qa){Vs[Ko.level][Ko.lane]=Ko;let Eg=Ps(Ko);for(let GA=0;GA0&&(dl|=1),GA0&&(dl|=1),GA0?Ju[Ko-1][Eg]:0,GA=Eg>0?Ju[Ko][Eg-1]:0,$i=Ju[Ko][Eg];$i||(OA&8&&($i|=12),GA&2&&($i|=3),Ju[Ko][Eg]=$i)}for(let Ko=0;Ko0?Wt.repeat(Hu):"";let Ru="";for(;Ru.length{},u7a=()=>{},Fbt,Tp=(e=>(e[e.Unknown=0]="Unknown",e[e.EndOfFileToken=1]="EndOfFileToken",e[e.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",e[e.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",e[e.NewLineTrivia=4]="NewLineTrivia",e[e.WhitespaceTrivia=5]="WhitespaceTrivia",e[e.ShebangTrivia=6]="ShebangTrivia",e[e.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",e[e.NonTextFileMarkerTrivia=8]="NonTextFileMarkerTrivia",e[e.NumericLiteral=9]="NumericLiteral",e[e.BigIntLiteral=10]="BigIntLiteral",e[e.StringLiteral=11]="StringLiteral",e[e.JsxText=12]="JsxText",e[e.JsxTextAllWhiteSpaces=13]="JsxTextAllWhiteSpaces",e[e.RegularExpressionLiteral=14]="RegularExpressionLiteral",e[e.NoSubstitutionTemplateLiteral=15]="NoSubstitutionTemplateLiteral",e[e.TemplateHead=16]="TemplateHead",e[e.TemplateMiddle=17]="TemplateMiddle",e[e.TemplateTail=18]="TemplateTail",e[e.OpenBraceToken=19]="OpenBraceToken",e[e.CloseBraceToken=20]="CloseBraceToken",e[e.OpenParenToken=21]="OpenParenToken",e[e.CloseParenToken=22]="CloseParenToken",e[e.OpenBracketToken=23]="OpenBracketToken",e[e.CloseBracketToken=24]="CloseBracketToken",e[e.DotToken=25]="DotToken",e[e.DotDotDotToken=26]="DotDotDotToken",e[e.SemicolonToken=27]="SemicolonToken",e[e.CommaToken=28]="CommaToken",e[e.QuestionDotToken=29]="QuestionDotToken",e[e.LessThanToken=30]="LessThanToken",e[e.LessThanSlashToken=31]="LessThanSlashToken",e[e.GreaterThanToken=32]="GreaterThanToken",e[e.LessThanEqualsToken=33]="LessThanEqualsToken",e[e.GreaterThanEqualsToken=34]="GreaterThanEqualsToken",e[e.EqualsEqualsToken=35]="EqualsEqualsToken",e[e.ExclamationEqualsToken=36]="ExclamationEqualsToken",e[e.EqualsEqualsEqualsToken=37]="EqualsEqualsEqualsToken",e[e.ExclamationEqualsEqualsToken=38]="ExclamationEqualsEqualsToken",e[e.EqualsGreaterThanToken=39]="EqualsGreaterThanToken",e[e.PlusToken=40]="PlusToken",e[e.MinusToken=41]="MinusToken",e[e.AsteriskToken=42]="AsteriskToken",e[e.AsteriskAsteriskToken=43]="AsteriskAsteriskToken",e[e.SlashToken=44]="SlashToken",e[e.PercentToken=45]="PercentToken",e[e.PlusPlusToken=46]="PlusPlusToken",e[e.MinusMinusToken=47]="MinusMinusToken",e[e.LessThanLessThanToken=48]="LessThanLessThanToken",e[e.GreaterThanGreaterThanToken=49]="GreaterThanGreaterThanToken",e[e.GreaterThanGreaterThanGreaterThanToken=50]="GreaterThanGreaterThanGreaterThanToken",e[e.AmpersandToken=51]="AmpersandToken",e[e.BarToken=52]="BarToken",e[e.CaretToken=53]="CaretToken",e[e.ExclamationToken=54]="ExclamationToken",e[e.TildeToken=55]="TildeToken",e[e.AmpersandAmpersandToken=56]="AmpersandAmpersandToken",e[e.BarBarToken=57]="BarBarToken",e[e.QuestionToken=58]="QuestionToken",e[e.ColonToken=59]="ColonToken",e[e.AtToken=60]="AtToken",e[e.QuestionQuestionToken=61]="QuestionQuestionToken",e[e.BacktickToken=62]="BacktickToken",e[e.HashToken=63]="HashToken",e[e.EqualsToken=64]="EqualsToken",e[e.PlusEqualsToken=65]="PlusEqualsToken",e[e.MinusEqualsToken=66]="MinusEqualsToken",e[e.AsteriskEqualsToken=67]="AsteriskEqualsToken",e[e.AsteriskAsteriskEqualsToken=68]="AsteriskAsteriskEqualsToken",e[e.SlashEqualsToken=69]="SlashEqualsToken",e[e.PercentEqualsToken=70]="PercentEqualsToken",e[e.LessThanLessThanEqualsToken=71]="LessThanLessThanEqualsToken",e[e.GreaterThanGreaterThanEqualsToken=72]="GreaterThanGreaterThanEqualsToken",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]="GreaterThanGreaterThanGreaterThanEqualsToken",e[e.AmpersandEqualsToken=74]="AmpersandEqualsToken",e[e.BarEqualsToken=75]="BarEqualsToken",e[e.BarBarEqualsToken=76]="BarBarEqualsToken",e[e.AmpersandAmpersandEqualsToken=77]="AmpersandAmpersandEqualsToken",e[e.QuestionQuestionEqualsToken=78]="QuestionQuestionEqualsToken",e[e.CaretEqualsToken=79]="CaretEqualsToken",e[e.Identifier=80]="Identifier",e[e.PrivateIdentifier=81]="PrivateIdentifier",e[e.JSDocCommentTextToken=82]="JSDocCommentTextToken",e[e.BreakKeyword=83]="BreakKeyword",e[e.CaseKeyword=84]="CaseKeyword",e[e.CatchKeyword=85]="CatchKeyword",e[e.ClassKeyword=86]="ClassKeyword",e[e.ConstKeyword=87]="ConstKeyword",e[e.ContinueKeyword=88]="ContinueKeyword",e[e.DebuggerKeyword=89]="DebuggerKeyword",e[e.DefaultKeyword=90]="DefaultKeyword",e[e.DeleteKeyword=91]="DeleteKeyword",e[e.DoKeyword=92]="DoKeyword",e[e.ElseKeyword=93]="ElseKeyword",e[e.EnumKeyword=94]="EnumKeyword",e[e.ExportKeyword=95]="ExportKeyword",e[e.ExtendsKeyword=96]="ExtendsKeyword",e[e.FalseKeyword=97]="FalseKeyword",e[e.FinallyKeyword=98]="FinallyKeyword",e[e.ForKeyword=99]="ForKeyword",e[e.FunctionKeyword=100]="FunctionKeyword",e[e.IfKeyword=101]="IfKeyword",e[e.ImportKeyword=102]="ImportKeyword",e[e.InKeyword=103]="InKeyword",e[e.InstanceOfKeyword=104]="InstanceOfKeyword",e[e.NewKeyword=105]="NewKeyword",e[e.NullKeyword=106]="NullKeyword",e[e.ReturnKeyword=107]="ReturnKeyword",e[e.SuperKeyword=108]="SuperKeyword",e[e.SwitchKeyword=109]="SwitchKeyword",e[e.ThisKeyword=110]="ThisKeyword",e[e.ThrowKeyword=111]="ThrowKeyword",e[e.TrueKeyword=112]="TrueKeyword",e[e.TryKeyword=113]="TryKeyword",e[e.TypeOfKeyword=114]="TypeOfKeyword",e[e.VarKeyword=115]="VarKeyword",e[e.VoidKeyword=116]="VoidKeyword",e[e.WhileKeyword=117]="WhileKeyword",e[e.WithKeyword=118]="WithKeyword",e[e.ImplementsKeyword=119]="ImplementsKeyword",e[e.InterfaceKeyword=120]="InterfaceKeyword",e[e.LetKeyword=121]="LetKeyword",e[e.PackageKeyword=122]="PackageKeyword",e[e.PrivateKeyword=123]="PrivateKeyword",e[e.ProtectedKeyword=124]="ProtectedKeyword",e[e.PublicKeyword=125]="PublicKeyword",e[e.StaticKeyword=126]="StaticKeyword",e[e.YieldKeyword=127]="YieldKeyword",e[e.AbstractKeyword=128]="AbstractKeyword",e[e.AccessorKeyword=129]="AccessorKeyword",e[e.AsKeyword=130]="AsKeyword",e[e.AssertsKeyword=131]="AssertsKeyword",e[e.AssertKeyword=132]="AssertKeyword",e[e.AnyKeyword=133]="AnyKeyword",e[e.AsyncKeyword=134]="AsyncKeyword",e[e.AwaitKeyword=135]="AwaitKeyword",e[e.BooleanKeyword=136]="BooleanKeyword",e[e.ConstructorKeyword=137]="ConstructorKeyword",e[e.DeclareKeyword=138]="DeclareKeyword",e[e.GetKeyword=139]="GetKeyword",e[e.InferKeyword=140]="InferKeyword",e[e.IntrinsicKeyword=141]="IntrinsicKeyword",e[e.IsKeyword=142]="IsKeyword",e[e.KeyOfKeyword=143]="KeyOfKeyword",e[e.ModuleKeyword=144]="ModuleKeyword",e[e.NamespaceKeyword=145]="NamespaceKeyword",e[e.NeverKeyword=146]="NeverKeyword",e[e.OutKeyword=147]="OutKeyword",e[e.ReadonlyKeyword=148]="ReadonlyKeyword",e[e.RequireKeyword=149]="RequireKeyword",e[e.NumberKeyword=150]="NumberKeyword",e[e.ObjectKeyword=151]="ObjectKeyword",e[e.SatisfiesKeyword=152]="SatisfiesKeyword",e[e.SetKeyword=153]="SetKeyword",e[e.StringKeyword=154]="StringKeyword",e[e.SymbolKeyword=155]="SymbolKeyword",e[e.TypeKeyword=156]="TypeKeyword",e[e.UndefinedKeyword=157]="UndefinedKeyword",e[e.UniqueKeyword=158]="UniqueKeyword",e[e.UnknownKeyword=159]="UnknownKeyword",e[e.UsingKeyword=160]="UsingKeyword",e[e.FromKeyword=161]="FromKeyword",e[e.GlobalKeyword=162]="GlobalKeyword",e[e.BigIntKeyword=163]="BigIntKeyword",e[e.OverrideKeyword=164]="OverrideKeyword",e[e.OfKeyword=165]="OfKeyword",e[e.QualifiedName=166]="QualifiedName",e[e.ComputedPropertyName=167]="ComputedPropertyName",e[e.TypeParameter=168]="TypeParameter",e[e.Parameter=169]="Parameter",e[e.Decorator=170]="Decorator",e[e.PropertySignature=171]="PropertySignature",e[e.PropertyDeclaration=172]="PropertyDeclaration",e[e.MethodSignature=173]="MethodSignature",e[e.MethodDeclaration=174]="MethodDeclaration",e[e.ClassStaticBlockDeclaration=175]="ClassStaticBlockDeclaration",e[e.Constructor=176]="Constructor",e[e.GetAccessor=177]="GetAccessor",e[e.SetAccessor=178]="SetAccessor",e[e.CallSignature=179]="CallSignature",e[e.ConstructSignature=180]="ConstructSignature",e[e.IndexSignature=181]="IndexSignature",e[e.TypePredicate=182]="TypePredicate",e[e.TypeReference=183]="TypeReference",e[e.FunctionType=184]="FunctionType",e[e.ConstructorType=185]="ConstructorType",e[e.TypeQuery=186]="TypeQuery",e[e.TypeLiteral=187]="TypeLiteral",e[e.ArrayType=188]="ArrayType",e[e.TupleType=189]="TupleType",e[e.OptionalType=190]="OptionalType",e[e.RestType=191]="RestType",e[e.UnionType=192]="UnionType",e[e.IntersectionType=193]="IntersectionType",e[e.ConditionalType=194]="ConditionalType",e[e.InferType=195]="InferType",e[e.ParenthesizedType=196]="ParenthesizedType",e[e.ThisType=197]="ThisType",e[e.TypeOperator=198]="TypeOperator",e[e.IndexedAccessType=199]="IndexedAccessType",e[e.MappedType=200]="MappedType",e[e.LiteralType=201]="LiteralType",e[e.NamedTupleMember=202]="NamedTupleMember",e[e.TemplateLiteralType=203]="TemplateLiteralType",e[e.TemplateLiteralTypeSpan=204]="TemplateLiteralTypeSpan",e[e.ImportType=205]="ImportType",e[e.ObjectBindingPattern=206]="ObjectBindingPattern",e[e.ArrayBindingPattern=207]="ArrayBindingPattern",e[e.BindingElement=208]="BindingElement",e[e.ArrayLiteralExpression=209]="ArrayLiteralExpression",e[e.ObjectLiteralExpression=210]="ObjectLiteralExpression",e[e.PropertyAccessExpression=211]="PropertyAccessExpression",e[e.ElementAccessExpression=212]="ElementAccessExpression",e[e.CallExpression=213]="CallExpression",e[e.NewExpression=214]="NewExpression",e[e.TaggedTemplateExpression=215]="TaggedTemplateExpression",e[e.TypeAssertionExpression=216]="TypeAssertionExpression",e[e.ParenthesizedExpression=217]="ParenthesizedExpression",e[e.FunctionExpression=218]="FunctionExpression",e[e.ArrowFunction=219]="ArrowFunction",e[e.DeleteExpression=220]="DeleteExpression",e[e.TypeOfExpression=221]="TypeOfExpression",e[e.VoidExpression=222]="VoidExpression",e[e.AwaitExpression=223]="AwaitExpression",e[e.PrefixUnaryExpression=224]="PrefixUnaryExpression",e[e.PostfixUnaryExpression=225]="PostfixUnaryExpression",e[e.BinaryExpression=226]="BinaryExpression",e[e.ConditionalExpression=227]="ConditionalExpression",e[e.TemplateExpression=228]="TemplateExpression",e[e.YieldExpression=229]="YieldExpression",e[e.SpreadElement=230]="SpreadElement",e[e.ClassExpression=231]="ClassExpression",e[e.OmittedExpression=232]="OmittedExpression",e[e.ExpressionWithTypeArguments=233]="ExpressionWithTypeArguments",e[e.AsExpression=234]="AsExpression",e[e.NonNullExpression=235]="NonNullExpression",e[e.MetaProperty=236]="MetaProperty",e[e.SyntheticExpression=237]="SyntheticExpression",e[e.SatisfiesExpression=238]="SatisfiesExpression",e[e.TemplateSpan=239]="TemplateSpan",e[e.SemicolonClassElement=240]="SemicolonClassElement",e[e.Block=241]="Block",e[e.EmptyStatement=242]="EmptyStatement",e[e.VariableStatement=243]="VariableStatement",e[e.ExpressionStatement=244]="ExpressionStatement",e[e.IfStatement=245]="IfStatement",e[e.DoStatement=246]="DoStatement",e[e.WhileStatement=247]="WhileStatement",e[e.ForStatement=248]="ForStatement",e[e.ForInStatement=249]="ForInStatement",e[e.ForOfStatement=250]="ForOfStatement",e[e.ContinueStatement=251]="ContinueStatement",e[e.BreakStatement=252]="BreakStatement",e[e.ReturnStatement=253]="ReturnStatement",e[e.WithStatement=254]="WithStatement",e[e.SwitchStatement=255]="SwitchStatement",e[e.LabeledStatement=256]="LabeledStatement",e[e.ThrowStatement=257]="ThrowStatement",e[e.TryStatement=258]="TryStatement",e[e.DebuggerStatement=259]="DebuggerStatement",e[e.VariableDeclaration=260]="VariableDeclaration",e[e.VariableDeclarationList=261]="VariableDeclarationList",e[e.FunctionDeclaration=262]="FunctionDeclaration",e[e.ClassDeclaration=263]="ClassDeclaration",e[e.InterfaceDeclaration=264]="InterfaceDeclaration",e[e.TypeAliasDeclaration=265]="TypeAliasDeclaration",e[e.EnumDeclaration=266]="EnumDeclaration",e[e.ModuleDeclaration=267]="ModuleDeclaration",e[e.ModuleBlock=268]="ModuleBlock",e[e.CaseBlock=269]="CaseBlock",e[e.NamespaceExportDeclaration=270]="NamespaceExportDeclaration",e[e.ImportEqualsDeclaration=271]="ImportEqualsDeclaration",e[e.ImportDeclaration=272]="ImportDeclaration",e[e.ImportClause=273]="ImportClause",e[e.NamespaceImport=274]="NamespaceImport",e[e.NamedImports=275]="NamedImports",e[e.ImportSpecifier=276]="ImportSpecifier",e[e.ExportAssignment=277]="ExportAssignment",e[e.ExportDeclaration=278]="ExportDeclaration",e[e.NamedExports=279]="NamedExports",e[e.NamespaceExport=280]="NamespaceExport",e[e.ExportSpecifier=281]="ExportSpecifier",e[e.MissingDeclaration=282]="MissingDeclaration",e[e.ExternalModuleReference=283]="ExternalModuleReference",e[e.JsxElement=284]="JsxElement",e[e.JsxSelfClosingElement=285]="JsxSelfClosingElement",e[e.JsxOpeningElement=286]="JsxOpeningElement",e[e.JsxClosingElement=287]="JsxClosingElement",e[e.JsxFragment=288]="JsxFragment",e[e.JsxOpeningFragment=289]="JsxOpeningFragment",e[e.JsxClosingFragment=290]="JsxClosingFragment",e[e.JsxAttribute=291]="JsxAttribute",e[e.JsxAttributes=292]="JsxAttributes",e[e.JsxSpreadAttribute=293]="JsxSpreadAttribute",e[e.JsxExpression=294]="JsxExpression",e[e.JsxNamespacedName=295]="JsxNamespacedName",e[e.CaseClause=296]="CaseClause",e[e.DefaultClause=297]="DefaultClause",e[e.HeritageClause=298]="HeritageClause",e[e.CatchClause=299]="CatchClause",e[e.ImportAttributes=300]="ImportAttributes",e[e.ImportAttribute=301]="ImportAttribute",e[e.AssertClause=300]="AssertClause",e[e.AssertEntry=301]="AssertEntry",e[e.ImportTypeAssertionContainer=302]="ImportTypeAssertionContainer",e[e.PropertyAssignment=303]="PropertyAssignment",e[e.ShorthandPropertyAssignment=304]="ShorthandPropertyAssignment",e[e.SpreadAssignment=305]="SpreadAssignment",e[e.EnumMember=306]="EnumMember",e[e.SourceFile=307]="SourceFile",e[e.Bundle=308]="Bundle",e[e.JSDocTypeExpression=309]="JSDocTypeExpression",e[e.JSDocNameReference=310]="JSDocNameReference",e[e.JSDocMemberName=311]="JSDocMemberName",e[e.JSDocAllType=312]="JSDocAllType",e[e.JSDocUnknownType=313]="JSDocUnknownType",e[e.JSDocNullableType=314]="JSDocNullableType",e[e.JSDocNonNullableType=315]="JSDocNonNullableType",e[e.JSDocOptionalType=316]="JSDocOptionalType",e[e.JSDocFunctionType=317]="JSDocFunctionType",e[e.JSDocVariadicType=318]="JSDocVariadicType",e[e.JSDocNamepathType=319]="JSDocNamepathType",e[e.JSDoc=320]="JSDoc",e[e.JSDocComment=320]="JSDocComment",e[e.JSDocText=321]="JSDocText",e[e.JSDocTypeLiteral=322]="JSDocTypeLiteral",e[e.JSDocSignature=323]="JSDocSignature",e[e.JSDocLink=324]="JSDocLink",e[e.JSDocLinkCode=325]="JSDocLinkCode",e[e.JSDocLinkPlain=326]="JSDocLinkPlain",e[e.JSDocTag=327]="JSDocTag",e[e.JSDocAugmentsTag=328]="JSDocAugmentsTag",e[e.JSDocImplementsTag=329]="JSDocImplementsTag",e[e.JSDocAuthorTag=330]="JSDocAuthorTag",e[e.JSDocDeprecatedTag=331]="JSDocDeprecatedTag",e[e.JSDocClassTag=332]="JSDocClassTag",e[e.JSDocPublicTag=333]="JSDocPublicTag",e[e.JSDocPrivateTag=334]="JSDocPrivateTag",e[e.JSDocProtectedTag=335]="JSDocProtectedTag",e[e.JSDocReadonlyTag=336]="JSDocReadonlyTag",e[e.JSDocOverrideTag=337]="JSDocOverrideTag",e[e.JSDocCallbackTag=338]="JSDocCallbackTag",e[e.JSDocOverloadTag=339]="JSDocOverloadTag",e[e.JSDocEnumTag=340]="JSDocEnumTag",e[e.JSDocParameterTag=341]="JSDocParameterTag",e[e.JSDocReturnTag=342]="JSDocReturnTag",e[e.JSDocThisTag=343]="JSDocThisTag",e[e.JSDocTypeTag=344]="JSDocTypeTag",e[e.JSDocTemplateTag=345]="JSDocTemplateTag",e[e.JSDocTypedefTag=346]="JSDocTypedefTag",e[e.JSDocSeeTag=347]="JSDocSeeTag",e[e.JSDocPropertyTag=348]="JSDocPropertyTag",e[e.JSDocThrowsTag=349]="JSDocThrowsTag",e[e.JSDocSatisfiesTag=350]="JSDocSatisfiesTag",e[e.JSDocImportTag=351]="JSDocImportTag",e[e.SyntaxList=352]="SyntaxList",e[e.NotEmittedStatement=353]="NotEmittedStatement",e[e.NotEmittedTypeElement=354]="NotEmittedTypeElement",e[e.PartiallyEmittedExpression=355]="PartiallyEmittedExpression",e[e.CommaListExpression=356]="CommaListExpression",e[e.SyntheticReferenceExpression=357]="SyntheticReferenceExpression",e[e.Count=358]="Count",e[e.FirstAssignment=64]="FirstAssignment",e[e.LastAssignment=79]="LastAssignment",e[e.FirstCompoundAssignment=65]="FirstCompoundAssignment",e[e.LastCompoundAssignment=79]="LastCompoundAssignment",e[e.FirstReservedWord=83]="FirstReservedWord",e[e.LastReservedWord=118]="LastReservedWord",e[e.FirstKeyword=83]="FirstKeyword",e[e.LastKeyword=165]="LastKeyword",e[e.FirstFutureReservedWord=119]="FirstFutureReservedWord",e[e.LastFutureReservedWord=127]="LastFutureReservedWord",e[e.FirstTypeNode=182]="FirstTypeNode",e[e.LastTypeNode=205]="LastTypeNode",e[e.FirstPunctuation=19]="FirstPunctuation",e[e.LastPunctuation=79]="LastPunctuation",e[e.FirstToken=0]="FirstToken",e[e.LastToken=165]="LastToken",e[e.FirstTriviaToken=2]="FirstTriviaToken",e[e.LastTriviaToken=7]="LastTriviaToken",e[e.FirstLiteralToken=9]="FirstLiteralToken",e[e.LastLiteralToken=15]="LastLiteralToken",e[e.FirstTemplateToken=15]="FirstTemplateToken",e[e.LastTemplateToken=18]="LastTemplateToken",e[e.FirstBinaryOperator=30]="FirstBinaryOperator",e[e.LastBinaryOperator=79]="LastBinaryOperator",e[e.FirstStatement=243]="FirstStatement",e[e.LastStatement=259]="LastStatement",e[e.FirstNode=166]="FirstNode",e[e.FirstJSDocNode=309]="FirstJSDocNode",e[e.LastJSDocNode=351]="LastJSDocNode",e[e.FirstJSDocTagNode=327]="FirstJSDocTagNode",e[e.LastJSDocTagNode=351]="LastJSDocTagNode",e[e.FirstContextualKeyword=128]="FirstContextualKeyword",e[e.LastContextualKeyword=165]="LastContextualKeyword",e))(Tp||{}),IO=(e=>(e[e.None=0]="None",e[e.Let=1]="Let",e[e.Const=2]="Const",e[e.Using=4]="Using",e[e.AwaitUsing=6]="AwaitUsing",e[e.NestedNamespace=8]="NestedNamespace",e[e.Synthesized=16]="Synthesized",e[e.Namespace=32]="Namespace",e[e.OptionalChain=64]="OptionalChain",e[e.ExportContext=128]="ExportContext",e[e.ContainsThis=256]="ContainsThis",e[e.HasImplicitReturn=512]="HasImplicitReturn",e[e.HasExplicitReturn=1024]="HasExplicitReturn",e[e.GlobalAugmentation=2048]="GlobalAugmentation",e[e.HasAsyncFunctions=4096]="HasAsyncFunctions",e[e.DisallowInContext=8192]="DisallowInContext",e[e.YieldContext=16384]="YieldContext",e[e.DecoratorContext=32768]="DecoratorContext",e[e.AwaitContext=65536]="AwaitContext",e[e.DisallowConditionalTypesContext=131072]="DisallowConditionalTypesContext",e[e.ThisNodeHasError=262144]="ThisNodeHasError",e[e.JavaScriptFile=524288]="JavaScriptFile",e[e.ThisNodeOrAnySubNodesHasError=1048576]="ThisNodeOrAnySubNodesHasError",e[e.HasAggregatedChildData=2097152]="HasAggregatedChildData",e[e.PossiblyContainsDynamicImport=4194304]="PossiblyContainsDynamicImport",e[e.PossiblyContainsImportMeta=8388608]="PossiblyContainsImportMeta",e[e.JSDoc=16777216]="JSDoc",e[e.Ambient=33554432]="Ambient",e[e.InWithStatement=67108864]="InWithStatement",e[e.JsonFile=134217728]="JsonFile",e[e.TypeCached=268435456]="TypeCached",e[e.Deprecated=536870912]="Deprecated",e[e.BlockScoped=7]="BlockScoped",e[e.Constant=6]="Constant",e[e.ReachabilityCheckFlags=1536]="ReachabilityCheckFlags",e[e.ReachabilityAndEmitFlags=5632]="ReachabilityAndEmitFlags",e[e.ContextFlags=101441536]="ContextFlags",e[e.TypeExcludesFlags=81920]="TypeExcludesFlags",e[e.PermanentlySetIncrementalFlags=12582912]="PermanentlySetIncrementalFlags",e[e.IdentifierHasExtendedUnicodeEscape=256]="IdentifierHasExtendedUnicodeEscape",e[e.IdentifierIsInJSDocNamespace=4096]="IdentifierIsInJSDocNamespace",e))(IO||{}),zSi=(e=>(e[e.None=0]="None",e[e.Public=1]="Public",e[e.Private=2]="Private",e[e.Protected=4]="Protected",e[e.Readonly=8]="Readonly",e[e.Override=16]="Override",e[e.Export=32]="Export",e[e.Abstract=64]="Abstract",e[e.Ambient=128]="Ambient",e[e.Static=256]="Static",e[e.Accessor=512]="Accessor",e[e.Async=1024]="Async",e[e.Default=2048]="Default",e[e.Const=4096]="Const",e[e.In=8192]="In",e[e.Out=16384]="Out",e[e.Decorator=32768]="Decorator",e[e.Deprecated=65536]="Deprecated",e[e.JSDocPublic=8388608]="JSDocPublic",e[e.JSDocPrivate=16777216]="JSDocPrivate",e[e.JSDocProtected=33554432]="JSDocProtected",e[e.JSDocReadonly=67108864]="JSDocReadonly",e[e.JSDocOverride=134217728]="JSDocOverride",e[e.SyntacticOrJSDocModifiers=31]="SyntacticOrJSDocModifiers",e[e.SyntacticOnlyModifiers=65504]="SyntacticOnlyModifiers",e[e.SyntacticModifiers=65535]="SyntacticModifiers",e[e.JSDocCacheOnlyModifiers=260046848]="JSDocCacheOnlyModifiers",e[e.JSDocOnlyModifiers=65536]="JSDocOnlyModifiers",e[e.NonCacheOnlyModifiers=131071]="NonCacheOnlyModifiers",e[e.HasComputedJSDocModifiers=268435456]="HasComputedJSDocModifiers",e[e.HasComputedFlags=536870912]="HasComputedFlags",e[e.AccessibilityModifier=7]="AccessibilityModifier",e[e.ParameterPropertyModifier=31]="ParameterPropertyModifier",e[e.NonPublicAccessibilityModifier=6]="NonPublicAccessibilityModifier",e[e.TypeScriptModifier=28895]="TypeScriptModifier",e[e.ExportDefault=2080]="ExportDefault",e[e.All=131071]="All",e[e.Modifier=98303]="Modifier",e))(zSi||{}),qSi=(e=>(e[e.None=0]="None",e[e.Succeeded=1]="Succeeded",e[e.Failed=2]="Failed",e[e.ReportsUnmeasurable=8]="ReportsUnmeasurable",e[e.ReportsUnreliable=16]="ReportsUnreliable",e[e.ReportsMask=24]="ReportsMask",e[e.ComplexityOverflow=32]="ComplexityOverflow",e[e.StackDepthOverflow=64]="StackDepthOverflow",e[e.Overflow=96]="Overflow",e))(qSi||{}),aNr=(e=>(e[e.Unreachable=1]="Unreachable",e[e.Start=2]="Start",e[e.BranchLabel=4]="BranchLabel",e[e.LoopLabel=8]="LoopLabel",e[e.Assignment=16]="Assignment",e[e.TrueCondition=32]="TrueCondition",e[e.FalseCondition=64]="FalseCondition",e[e.SwitchClause=128]="SwitchClause",e[e.ArrayMutation=256]="ArrayMutation",e[e.Call=512]="Call",e[e.ReduceLabel=1024]="ReduceLabel",e[e.Referenced=2048]="Referenced",e[e.Shared=4096]="Shared",e[e.Label=12]="Label",e[e.Condition=96]="Condition",e))(aNr||{}),$Si=(e=>(e[e.None=0]="None",e[e.FunctionScopedVariable=1]="FunctionScopedVariable",e[e.BlockScopedVariable=2]="BlockScopedVariable",e[e.Property=4]="Property",e[e.EnumMember=8]="EnumMember",e[e.Function=16]="Function",e[e.Class=32]="Class",e[e.Interface=64]="Interface",e[e.ConstEnum=128]="ConstEnum",e[e.RegularEnum=256]="RegularEnum",e[e.ValueModule=512]="ValueModule",e[e.NamespaceModule=1024]="NamespaceModule",e[e.TypeLiteral=2048]="TypeLiteral",e[e.ObjectLiteral=4096]="ObjectLiteral",e[e.Method=8192]="Method",e[e.Constructor=16384]="Constructor",e[e.GetAccessor=32768]="GetAccessor",e[e.SetAccessor=65536]="SetAccessor",e[e.Signature=131072]="Signature",e[e.TypeParameter=262144]="TypeParameter",e[e.TypeAlias=524288]="TypeAlias",e[e.ExportValue=1048576]="ExportValue",e[e.Alias=2097152]="Alias",e[e.Prototype=4194304]="Prototype",e[e.ExportStar=8388608]="ExportStar",e[e.Optional=16777216]="Optional",e[e.Transient=33554432]="Transient",e[e.Assignment=67108864]="Assignment",e[e.ModuleExports=134217728]="ModuleExports",e[e.All=-1]="All",e[e.Enum=384]="Enum",e[e.Variable=3]="Variable",e[e.Value=111551]="Value",e[e.Type=788968]="Type",e[e.Namespace=1920]="Namespace",e[e.Module=1536]="Module",e[e.Accessor=98304]="Accessor",e[e.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",e[e.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",e[e.ParameterExcludes=111551]="ParameterExcludes",e[e.PropertyExcludes=0]="PropertyExcludes",e[e.EnumMemberExcludes=900095]="EnumMemberExcludes",e[e.FunctionExcludes=110991]="FunctionExcludes",e[e.ClassExcludes=899503]="ClassExcludes",e[e.InterfaceExcludes=788872]="InterfaceExcludes",e[e.RegularEnumExcludes=899327]="RegularEnumExcludes",e[e.ConstEnumExcludes=899967]="ConstEnumExcludes",e[e.ValueModuleExcludes=110735]="ValueModuleExcludes",e[e.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",e[e.MethodExcludes=103359]="MethodExcludes",e[e.GetAccessorExcludes=46015]="GetAccessorExcludes",e[e.SetAccessorExcludes=78783]="SetAccessorExcludes",e[e.AccessorExcludes=13247]="AccessorExcludes",e[e.TypeParameterExcludes=526824]="TypeParameterExcludes",e[e.TypeAliasExcludes=788968]="TypeAliasExcludes",e[e.AliasExcludes=2097152]="AliasExcludes",e[e.ModuleMember=2623475]="ModuleMember",e[e.ExportHasLocal=944]="ExportHasLocal",e[e.BlockScoped=418]="BlockScoped",e[e.PropertyOrAccessor=98308]="PropertyOrAccessor",e[e.ClassMember=106500]="ClassMember",e[e.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",e[e.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",e[e.Classifiable=2885600]="Classifiable",e[e.LateBindingContainer=6256]="LateBindingContainer",e))($Si||{}),evi=(e=>(e[e.None=0]="None",e[e.TypeChecked=1]="TypeChecked",e[e.LexicalThis=2]="LexicalThis",e[e.CaptureThis=4]="CaptureThis",e[e.CaptureNewTarget=8]="CaptureNewTarget",e[e.SuperInstance=16]="SuperInstance",e[e.SuperStatic=32]="SuperStatic",e[e.ContextChecked=64]="ContextChecked",e[e.MethodWithSuperPropertyAccessInAsync=128]="MethodWithSuperPropertyAccessInAsync",e[e.MethodWithSuperPropertyAssignmentInAsync=256]="MethodWithSuperPropertyAssignmentInAsync",e[e.CaptureArguments=512]="CaptureArguments",e[e.EnumValuesComputed=1024]="EnumValuesComputed",e[e.LexicalModuleMergesWithClass=2048]="LexicalModuleMergesWithClass",e[e.LoopWithCapturedBlockScopedBinding=4096]="LoopWithCapturedBlockScopedBinding",e[e.ContainsCapturedBlockScopeBinding=8192]="ContainsCapturedBlockScopeBinding",e[e.CapturedBlockScopedBinding=16384]="CapturedBlockScopedBinding",e[e.BlockScopedBindingInLoop=32768]="BlockScopedBindingInLoop",e[e.NeedsLoopOutParameter=65536]="NeedsLoopOutParameter",e[e.AssignmentsMarked=131072]="AssignmentsMarked",e[e.ContainsConstructorReference=262144]="ContainsConstructorReference",e[e.ConstructorReference=536870912]="ConstructorReference",e[e.ContainsClassWithPrivateIdentifiers=1048576]="ContainsClassWithPrivateIdentifiers",e[e.ContainsSuperPropertyInStaticInitializer=2097152]="ContainsSuperPropertyInStaticInitializer",e[e.InCheckIdentifier=4194304]="InCheckIdentifier",e[e.PartiallyTypeChecked=8388608]="PartiallyTypeChecked",e[e.LazyFlags=539358128]="LazyFlags",e))(evi||{}),kG=(e=>(e[e.Any=1]="Any",e[e.Unknown=2]="Unknown",e[e.String=4]="String",e[e.Number=8]="Number",e[e.Boolean=16]="Boolean",e[e.Enum=32]="Enum",e[e.BigInt=64]="BigInt",e[e.StringLiteral=128]="StringLiteral",e[e.NumberLiteral=256]="NumberLiteral",e[e.BooleanLiteral=512]="BooleanLiteral",e[e.EnumLiteral=1024]="EnumLiteral",e[e.BigIntLiteral=2048]="BigIntLiteral",e[e.ESSymbol=4096]="ESSymbol",e[e.UniqueESSymbol=8192]="UniqueESSymbol",e[e.Void=16384]="Void",e[e.Undefined=32768]="Undefined",e[e.Null=65536]="Null",e[e.Never=131072]="Never",e[e.TypeParameter=262144]="TypeParameter",e[e.Object=524288]="Object",e[e.Union=1048576]="Union",e[e.Intersection=2097152]="Intersection",e[e.Index=4194304]="Index",e[e.IndexedAccess=8388608]="IndexedAccess",e[e.Conditional=16777216]="Conditional",e[e.Substitution=33554432]="Substitution",e[e.NonPrimitive=67108864]="NonPrimitive",e[e.TemplateLiteral=134217728]="TemplateLiteral",e[e.StringMapping=268435456]="StringMapping",e[e.Reserved1=536870912]="Reserved1",e[e.Reserved2=1073741824]="Reserved2",e[e.AnyOrUnknown=3]="AnyOrUnknown",e[e.Nullable=98304]="Nullable",e[e.Literal=2944]="Literal",e[e.Unit=109472]="Unit",e[e.Freshable=2976]="Freshable",e[e.StringOrNumberLiteral=384]="StringOrNumberLiteral",e[e.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",e[e.DefinitelyFalsy=117632]="DefinitelyFalsy",e[e.PossiblyFalsy=117724]="PossiblyFalsy",e[e.Intrinsic=67359327]="Intrinsic",e[e.StringLike=402653316]="StringLike",e[e.NumberLike=296]="NumberLike",e[e.BigIntLike=2112]="BigIntLike",e[e.BooleanLike=528]="BooleanLike",e[e.EnumLike=1056]="EnumLike",e[e.ESSymbolLike=12288]="ESSymbolLike",e[e.VoidLike=49152]="VoidLike",e[e.Primitive=402784252]="Primitive",e[e.DefinitelyNonNullable=470302716]="DefinitelyNonNullable",e[e.DisjointDomains=469892092]="DisjointDomains",e[e.UnionOrIntersection=3145728]="UnionOrIntersection",e[e.StructuredType=3670016]="StructuredType",e[e.TypeVariable=8650752]="TypeVariable",e[e.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",e[e.InstantiablePrimitive=406847488]="InstantiablePrimitive",e[e.Instantiable=465829888]="Instantiable",e[e.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",e[e.ObjectFlagsType=3899393]="ObjectFlagsType",e[e.Simplifiable=25165824]="Simplifiable",e[e.Singleton=67358815]="Singleton",e[e.Narrowable=536624127]="Narrowable",e[e.IncludesMask=473694207]="IncludesMask",e[e.IncludesMissingType=262144]="IncludesMissingType",e[e.IncludesNonWideningType=4194304]="IncludesNonWideningType",e[e.IncludesWildcard=8388608]="IncludesWildcard",e[e.IncludesEmptyObject=16777216]="IncludesEmptyObject",e[e.IncludesInstantiable=33554432]="IncludesInstantiable",e[e.IncludesConstrainedTypeVariable=536870912]="IncludesConstrainedTypeVariable",e[e.IncludesError=1073741824]="IncludesError",e[e.NotPrimitiveUnion=36323331]="NotPrimitiveUnion",e))(kG||{}),tvi=(e=>(e[e.None=0]="None",e[e.Class=1]="Class",e[e.Interface=2]="Interface",e[e.Reference=4]="Reference",e[e.Tuple=8]="Tuple",e[e.Anonymous=16]="Anonymous",e[e.Mapped=32]="Mapped",e[e.Instantiated=64]="Instantiated",e[e.ObjectLiteral=128]="ObjectLiteral",e[e.EvolvingArray=256]="EvolvingArray",e[e.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",e[e.ReverseMapped=1024]="ReverseMapped",e[e.JsxAttributes=2048]="JsxAttributes",e[e.JSLiteral=4096]="JSLiteral",e[e.FreshLiteral=8192]="FreshLiteral",e[e.ArrayLiteral=16384]="ArrayLiteral",e[e.PrimitiveUnion=32768]="PrimitiveUnion",e[e.ContainsWideningType=65536]="ContainsWideningType",e[e.ContainsObjectOrArrayLiteral=131072]="ContainsObjectOrArrayLiteral",e[e.NonInferrableType=262144]="NonInferrableType",e[e.CouldContainTypeVariablesComputed=524288]="CouldContainTypeVariablesComputed",e[e.CouldContainTypeVariables=1048576]="CouldContainTypeVariables",e[e.ClassOrInterface=3]="ClassOrInterface",e[e.RequiresWidening=196608]="RequiresWidening",e[e.PropagatingFlags=458752]="PropagatingFlags",e[e.InstantiatedMapped=96]="InstantiatedMapped",e[e.ObjectTypeKindMask=1343]="ObjectTypeKindMask",e[e.ContainsSpread=2097152]="ContainsSpread",e[e.ObjectRestType=4194304]="ObjectRestType",e[e.InstantiationExpressionType=8388608]="InstantiationExpressionType",e[e.SingleSignatureType=134217728]="SingleSignatureType",e[e.IsClassInstanceClone=16777216]="IsClassInstanceClone",e[e.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",e[e.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",e[e.IsGenericTypeComputed=2097152]="IsGenericTypeComputed",e[e.IsGenericObjectType=4194304]="IsGenericObjectType",e[e.IsGenericIndexType=8388608]="IsGenericIndexType",e[e.IsGenericType=12582912]="IsGenericType",e[e.ContainsIntersections=16777216]="ContainsIntersections",e[e.IsUnknownLikeUnionComputed=33554432]="IsUnknownLikeUnionComputed",e[e.IsUnknownLikeUnion=67108864]="IsUnknownLikeUnion",e[e.IsNeverIntersectionComputed=16777216]="IsNeverIntersectionComputed",e[e.IsNeverIntersection=33554432]="IsNeverIntersection",e[e.IsConstrainedTypeVariable=67108864]="IsConstrainedTypeVariable",e))(tvi||{}),rvi=(e=>(e[e.None=0]="None",e[e.HasRestParameter=1]="HasRestParameter",e[e.HasLiteralTypes=2]="HasLiteralTypes",e[e.Abstract=4]="Abstract",e[e.IsInnerCallChain=8]="IsInnerCallChain",e[e.IsOuterCallChain=16]="IsOuterCallChain",e[e.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",e[e.IsNonInferrable=64]="IsNonInferrable",e[e.IsSignatureCandidateForOverloadFailure=128]="IsSignatureCandidateForOverloadFailure",e[e.PropagatingFlags=167]="PropagatingFlags",e[e.CallChainFlags=24]="CallChainFlags",e))(rvi||{}),Bee=(e=>(e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX",e[e.External=5]="External",e[e.JSON=6]="JSON",e[e.Deferred=7]="Deferred",e))(Bee||{}),GNr=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ES2021=8]="ES2021",e[e.ES2022=9]="ES2022",e[e.ES2023=10]="ES2023",e[e.ES2024=11]="ES2024",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(GNr||{}),nvi=(e=>(e[e.Standard=0]="Standard",e[e.JSX=1]="JSX",e))(nvi||{}),tH=(e=>(e.Ts=".ts",e.Tsx=".tsx",e.Dts=".d.ts",e.Js=".js",e.Jsx=".jsx",e.Json=".json",e.TsBuildInfo=".tsbuildinfo",e.Mjs=".mjs",e.Mts=".mts",e.Dmts=".d.mts",e.Cjs=".cjs",e.Cts=".cts",e.Dcts=".d.cts",e))(tH||{}),ivi=(e=>(e[e.None=0]="None",e[e.ContainsTypeScript=1]="ContainsTypeScript",e[e.ContainsJsx=2]="ContainsJsx",e[e.ContainsESNext=4]="ContainsESNext",e[e.ContainsES2022=8]="ContainsES2022",e[e.ContainsES2021=16]="ContainsES2021",e[e.ContainsES2020=32]="ContainsES2020",e[e.ContainsES2019=64]="ContainsES2019",e[e.ContainsES2018=128]="ContainsES2018",e[e.ContainsES2017=256]="ContainsES2017",e[e.ContainsES2016=512]="ContainsES2016",e[e.ContainsES2015=1024]="ContainsES2015",e[e.ContainsGenerator=2048]="ContainsGenerator",e[e.ContainsDestructuringAssignment=4096]="ContainsDestructuringAssignment",e[e.ContainsTypeScriptClassSyntax=8192]="ContainsTypeScriptClassSyntax",e[e.ContainsLexicalThis=16384]="ContainsLexicalThis",e[e.ContainsRestOrSpread=32768]="ContainsRestOrSpread",e[e.ContainsObjectRestOrSpread=65536]="ContainsObjectRestOrSpread",e[e.ContainsComputedPropertyName=131072]="ContainsComputedPropertyName",e[e.ContainsBlockScopedBinding=262144]="ContainsBlockScopedBinding",e[e.ContainsBindingPattern=524288]="ContainsBindingPattern",e[e.ContainsYield=1048576]="ContainsYield",e[e.ContainsAwait=2097152]="ContainsAwait",e[e.ContainsHoistedDeclarationOrCompletion=4194304]="ContainsHoistedDeclarationOrCompletion",e[e.ContainsDynamicImport=8388608]="ContainsDynamicImport",e[e.ContainsClassFields=16777216]="ContainsClassFields",e[e.ContainsDecorators=33554432]="ContainsDecorators",e[e.ContainsPossibleTopLevelAwait=67108864]="ContainsPossibleTopLevelAwait",e[e.ContainsLexicalSuper=134217728]="ContainsLexicalSuper",e[e.ContainsUpdateExpressionForIdentifier=268435456]="ContainsUpdateExpressionForIdentifier",e[e.ContainsPrivateIdentifierInExpression=536870912]="ContainsPrivateIdentifierInExpression",e[e.HasComputedFlags=-2147483648]="HasComputedFlags",e[e.AssertTypeScript=1]="AssertTypeScript",e[e.AssertJsx=2]="AssertJsx",e[e.AssertESNext=4]="AssertESNext",e[e.AssertES2022=8]="AssertES2022",e[e.AssertES2021=16]="AssertES2021",e[e.AssertES2020=32]="AssertES2020",e[e.AssertES2019=64]="AssertES2019",e[e.AssertES2018=128]="AssertES2018",e[e.AssertES2017=256]="AssertES2017",e[e.AssertES2016=512]="AssertES2016",e[e.AssertES2015=1024]="AssertES2015",e[e.AssertGenerator=2048]="AssertGenerator",e[e.AssertDestructuringAssignment=4096]="AssertDestructuringAssignment",e[e.OuterExpressionExcludes=-2147483648]="OuterExpressionExcludes",e[e.PropertyAccessExcludes=-2147483648]="PropertyAccessExcludes",e[e.NodeExcludes=-2147483648]="NodeExcludes",e[e.ArrowFunctionExcludes=-2072174592]="ArrowFunctionExcludes",e[e.FunctionExcludes=-1937940480]="FunctionExcludes",e[e.ConstructorExcludes=-1937948672]="ConstructorExcludes",e[e.MethodOrAccessorExcludes=-2005057536]="MethodOrAccessorExcludes",e[e.PropertyExcludes=-2013249536]="PropertyExcludes",e[e.ClassExcludes=-2147344384]="ClassExcludes",e[e.ModuleExcludes=-1941676032]="ModuleExcludes",e[e.TypeExcludes=-2]="TypeExcludes",e[e.ObjectLiteralExcludes=-2147278848]="ObjectLiteralExcludes",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]="ArrayLiteralOrCallOrNewExcludes",e[e.VariableDeclarationListExcludes=-2146893824]="VariableDeclarationListExcludes",e[e.ParameterExcludes=-2147483648]="ParameterExcludes",e[e.CatchClauseExcludes=-2147418112]="CatchClauseExcludes",e[e.BindingPatternExcludes=-2147450880]="BindingPatternExcludes",e[e.ContainsLexicalThisOrSuper=134234112]="ContainsLexicalThisOrSuper",e[e.PropertyNamePropagatingFlags=134234112]="PropertyNamePropagatingFlags",e))(ivi||{}),svi=(e=>(e[e.TabStop=0]="TabStop",e[e.Placeholder=1]="Placeholder",e[e.Choice=2]="Choice",e[e.Variable=3]="Variable",e))(svi||{}),ovi=(e=>(e[e.None=0]="None",e[e.SingleLine=1]="SingleLine",e[e.MultiLine=2]="MultiLine",e[e.AdviseOnEmitNode=4]="AdviseOnEmitNode",e[e.NoSubstitution=8]="NoSubstitution",e[e.CapturesThis=16]="CapturesThis",e[e.NoLeadingSourceMap=32]="NoLeadingSourceMap",e[e.NoTrailingSourceMap=64]="NoTrailingSourceMap",e[e.NoSourceMap=96]="NoSourceMap",e[e.NoNestedSourceMaps=128]="NoNestedSourceMaps",e[e.NoTokenLeadingSourceMaps=256]="NoTokenLeadingSourceMaps",e[e.NoTokenTrailingSourceMaps=512]="NoTokenTrailingSourceMaps",e[e.NoTokenSourceMaps=768]="NoTokenSourceMaps",e[e.NoLeadingComments=1024]="NoLeadingComments",e[e.NoTrailingComments=2048]="NoTrailingComments",e[e.NoComments=3072]="NoComments",e[e.NoNestedComments=4096]="NoNestedComments",e[e.HelperName=8192]="HelperName",e[e.ExportName=16384]="ExportName",e[e.LocalName=32768]="LocalName",e[e.InternalName=65536]="InternalName",e[e.Indented=131072]="Indented",e[e.NoIndentation=262144]="NoIndentation",e[e.AsyncFunctionBody=524288]="AsyncFunctionBody",e[e.ReuseTempVariableScope=1048576]="ReuseTempVariableScope",e[e.CustomPrologue=2097152]="CustomPrologue",e[e.NoHoisting=4194304]="NoHoisting",e[e.Iterator=8388608]="Iterator",e[e.NoAsciiEscaping=16777216]="NoAsciiEscaping",e))(ovi||{}),tJe={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99},avi={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0},{name:"resolution-mode",optional:!0},{name:"preserve",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}},uJe=(e=>(e[e.ParseAll=0]="ParseAll",e[e.ParseNone=1]="ParseNone",e[e.ParseForTypeErrors=2]="ParseForTypeErrors",e[e.ParseForTypeInfo=3]="ParseForTypeInfo",e))(uJe||{}),Hme="/",g7a="\\",R2i="://",A7a=/\\/g;function d7a(e){return e===47||e===92}function p7a(e,t){return e.length>t.length&&o7a(e,t)}function FNr(e){return e.length>0&&d7a(e.charCodeAt(e.length-1))}function N2i(e){return e>=97&&e<=122||e>=65&&e<=90}function f7a(e,t){let r=e.charCodeAt(t);if(r===58)return t+1;if(r===37&&e.charCodeAt(t+1)===51){let n=e.charCodeAt(t+2);if(n===97||n===65)return t+3}return-1}function I7a(e){if(!e)return 0;let t=e.charCodeAt(0);if(t===47||t===92){if(e.charCodeAt(1)!==t)return 1;let n=e.indexOf(t===47?Hme:g7a,2);return n<0?e.length:n+1}if(N2i(t)&&e.charCodeAt(1)===58){let n=e.charCodeAt(2);if(n===47||n===92)return 3;if(e.length===2)return 2}let r=e.indexOf(R2i);if(r!==-1){let n=r+R2i.length,a=e.indexOf(Hme,n);if(a!==-1){let o=e.slice(0,r),l=e.slice(n,a);if(o==="file"&&(l===""||l==="localhost")&&N2i(e.charCodeAt(a+1))){let A=f7a(e,a+2);if(A!==-1){if(e.charCodeAt(A)===47)return~(A+1);if(A===e.length)return~A}}return~(a+1)}return~e.length}return 0}function Mbt(e){let t=I7a(e);return t<0?~t:t}function cvi(e,t,r){if(e=Hbt(e),Mbt(e)===e.length)return"";e=uvi(e);let n=e.slice(Math.max(Mbt(e),e.lastIndexOf(Hme)+1)),a=t!==void 0&&r!==void 0?lvi(n,t,r):void 0;return a?n.slice(0,n.length-a.length):n}function D2i(e,t,r){if(Obt(t,".")||(t="."+t),e.length>=t.length&&e.charCodeAt(e.length-t.length)===46){let n=e.slice(e.length-t.length);if(r(n,t))return n}}function h7a(e,t,r){if(typeof t=="string")return D2i(e,t,r)||"";for(let n of t){let a=D2i(e,n,r);if(a)return a}return""}function lvi(e,t,r){if(t)return h7a(uvi(e),t,r?xNr:r7a);let n=cvi(e),a=n.lastIndexOf(".");return a>=0?n.substring(a):""}function m7a(e,t){let r=e.substring(0,t),n=e.substring(t).split(Hme);return n.length&&!Vme(n)&&n.pop(),[r,...n]}function C7a(e,t=""){return e=b7a(t,e),m7a(e,Mbt(e))}function _7a(e,t){return e.length===0?"":(e[0]&&ZNr(e[0]))+e.slice(1,t).join(Hme)}function Hbt(e){return e.includes("\\")?e.replace(A7a,Hme):e}function y7a(e){if(!oD(e))return[];let t=[e[0]];for(let r=1;r1){if(t[t.length-1]!==".."){t.pop();continue}}else if(t[0])continue}t.push(n)}}return t}function b7a(e,...t){e&&(e=Hbt(e));for(let r of t)r&&(r=Hbt(r),!e||Mbt(r)!==0?e=r:e=ZNr(e)+r);return e}function E7a(e){if(e=Hbt(e),!k2i.test(e))return e;let t=e.replace(/\/\.\//g,"/").replace(/^\.\//,"");if(t!==e&&(e=t,!k2i.test(e)))return e;let r=_7a(y7a(C7a(e)));return r&&FNr(e)?ZNr(r):r}function uvi(e){return FNr(e)?e.substr(0,e.length-1):e}function ZNr(e){return FNr(e)?e:e+Hme}var k2i=/\/\/|(?:^|\/)\.\.?(?:$|\/)/;function $(e,t,r,n,a,o,l){return{code:e,category:t,key:r,message:n,reportsUnnecessary:a,elidedInCompatabilityPyramid:o,reportsDeprecated:l}}var ts={Unterminated_string_literal:$(1002,1,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:$(1003,1,"Identifier_expected_1003","Identifier expected."),_0_expected:$(1005,1,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:$(1006,1,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:$(1007,1,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:$(1009,1,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:$(1010,1,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:$(1011,1,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:$(1012,1,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:$(1013,1,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:$(1014,1,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:$(1015,1,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:$(1016,1,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:$(1017,1,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:$(1018,1,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:$(1019,1,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:$(1020,1,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:$(1021,1,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:$(1022,1,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:$(1024,1,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:$(1025,1,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:$(1028,1,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:$(1029,1,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:$(1030,1,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:$(1031,1,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:$(1034,1,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:$(1035,1,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:$(1036,1,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:$(1038,1,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:$(1039,1,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:$(1040,1,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:$(1042,1,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:$(1044,1,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:$(1046,1,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:$(1047,1,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:$(1048,1,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:$(1049,1,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:$(1051,1,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:$(1052,1,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:$(1053,1,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:$(1054,1,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:$(1055,1,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055","Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:$(1056,1,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1058,1,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:$(1059,1,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:$(1060,1,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:$(1061,1,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:$(1062,1,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:$(1063,1,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:$(1064,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:$(1065,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065","The return type of an async function or method must be the global Promise type."),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:$(1066,1,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:$(1068,1,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:$(1069,1,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:$(1070,1,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:$(1071,1,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:$(1079,1,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:$(1084,1,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),_0_modifier_cannot_appear_on_a_constructor_declaration:$(1089,1,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:$(1090,1,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:$(1091,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:$(1092,1,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:$(1093,1,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:$(1094,1,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:$(1095,1,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:$(1096,1,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:$(1097,1,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:$(1098,1,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:$(1099,1,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:$(1100,1,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:$(1101,1,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:$(1102,1,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1103,1,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:$(1104,1,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:$(1105,1,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:$(1106,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:$(1107,1,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:$(1108,1,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:$(1109,1,"Expression_expected_1109","Expression expected."),Type_expected:$(1110,1,"Type_expected_1110","Type expected."),Private_field_0_must_be_declared_in_an_enclosing_class:$(1111,1,"Private_field_0_must_be_declared_in_an_enclosing_class_1111","Private field '{0}' must be declared in an enclosing class."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:$(1113,1,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:$(1114,1,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:$(1115,1,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:$(1116,1,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name:$(1117,1,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:$(1118,1,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:$(1119,1,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:$(1120,1,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_Use_the_syntax_0:$(1121,1,"Octal_literals_are_not_allowed_Use_the_syntax_0_1121","Octal literals are not allowed. Use the syntax '{0}'."),Variable_declaration_list_cannot_be_empty:$(1123,1,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:$(1124,1,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:$(1125,1,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:$(1126,1,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:$(1127,1,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:$(1128,1,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:$(1129,1,"Statement_expected_1129","Statement expected."),case_or_default_expected:$(1130,1,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:$(1131,1,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:$(1132,1,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:$(1134,1,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:$(1135,1,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:$(1136,1,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:$(1137,1,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:$(1138,1,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:$(1139,1,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:$(1140,1,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:$(1141,1,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:$(1142,1,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:$(1144,1,"or_expected_1144","'{' or ';' expected."),or_JSX_element_expected:$(1145,1,"or_JSX_element_expected_1145","'{' or JSX element expected."),Declaration_expected:$(1146,1,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:$(1147,1,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:$(1148,1,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:$(1149,1,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),_0_declarations_must_be_initialized:$(1155,1,"_0_declarations_must_be_initialized_1155","'{0}' declarations must be initialized."),_0_declarations_can_only_be_declared_inside_a_block:$(1156,1,"_0_declarations_can_only_be_declared_inside_a_block_1156","'{0}' declarations can only be declared inside a block."),Unterminated_template_literal:$(1160,1,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:$(1161,1,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:$(1162,1,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:$(1163,1,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:$(1164,1,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1165,1,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:$(1166,1,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1168,1,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1169,1,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1170,1,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:$(1171,1,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:$(1172,1,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:$(1173,1,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:$(1174,1,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:$(1175,1,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:$(1176,1,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:$(1177,1,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:$(1178,1,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:$(1179,1,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:$(1180,1,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:$(1181,1,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:$(1182,1,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:$(1183,1,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:$(1184,1,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:$(1185,1,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:$(1186,1,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:$(1187,1,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:$(1188,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:$(1189,1,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:$(1190,1,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:$(1191,1,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:$(1192,1,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:$(1193,1,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:$(1194,1,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:$(1195,1,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:$(1196,1,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:$(1197,1,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:$(1198,1,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:$(1199,1,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:$(1200,1,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:$(1202,1,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:$(1203,1,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:$(1205,1,"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205","Re-exporting a type when '{0}' is enabled requires using 'export type'."),Decorators_are_not_valid_here:$(1206,1,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:$(1207,1,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:$(1209,1,"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209","Invalid optional chain from new expression. Did you mean to call '{0}()'?"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:$(1210,1,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:$(1211,1,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:$(1212,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:$(1213,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:$(1214,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:$(1215,1,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:$(1216,1,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:$(1218,1,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Generators_are_not_allowed_in_an_ambient_context:$(1221,1,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:$(1222,1,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:$(1223,1,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:$(1224,1,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:$(1225,1,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:$(1226,1,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:$(1227,1,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:$(1228,1,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:$(1229,1,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:$(1230,1,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1231,1,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1232,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1233,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:$(1234,1,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:$(1235,1,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:$(1236,1,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:$(1237,1,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:$(1238,1,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:$(1239,1,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:$(1240,1,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:$(1241,1,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:$(1242,1,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:$(1243,1,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:$(1244,1,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:$(1245,1,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:$(1246,1,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:$(1247,1,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:$(1248,1,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:$(1249,1,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:$(1250,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:$(1251,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:$(1252,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode."),Abstract_properties_can_only_appear_within_an_abstract_class:$(1253,1,"Abstract_properties_can_only_appear_within_an_abstract_class_1253","Abstract properties can only appear within an abstract class."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:$(1254,1,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:$(1255,1,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:$(1257,1,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1258,1,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:$(1259,1,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:$(1260,1,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:$(1261,1,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:$(1262,1,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:$(1263,1,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:$(1264,1,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:$(1265,1,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:$(1266,1,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:$(1267,1,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:$(1268,1,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:$(1269,1,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269","Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),Decorator_function_return_type_0_is_not_assignable_to_type_1:$(1270,1,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:$(1271,1,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:$(1272,1,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:$(1273,1,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:$(1274,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),accessor_modifier_can_only_appear_on_a_property_declaration:$(1275,1,"accessor_modifier_can_only_appear_on_a_property_declaration_1275","'accessor' modifier can only appear on a property declaration."),An_accessor_property_cannot_be_declared_optional:$(1276,1,"An_accessor_property_cannot_be_declared_optional_1276","An 'accessor' property cannot be declared optional."),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:$(1277,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277","'{0}' modifier can only appear on a type parameter of a function, method or class"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:$(1278,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278","The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:$(1279,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279","The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:$(1280,1,"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280","Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:$(1281,1,"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281","Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1282,1,"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282","An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1283,1,"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283","An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1284,1,"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284","An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1285,1,"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285","An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1286,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286","ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1287,1,"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287","A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:$(1288,1,"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288","An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1289,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1290,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1291,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1292,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:$(1293,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293","ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'."),with_statements_are_not_allowed_in_an_async_function_block:$(1300,1,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1308,1,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:$(1309,1,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:$(1312,1,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:$(1313,1,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:$(1314,1,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:$(1315,1,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:$(1316,1,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:$(1317,1,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:$(1318,1,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:$(1319,1,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1320,1,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1321,1,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1322,1,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:$(1323,1,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodenext_or_preserve:$(1324,1,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodene_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'nodenext', or 'preserve'."),Argument_of_dynamic_import_cannot_be_spread_element:$(1325,1,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:$(1326,1,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),String_literal_with_double_quotes_expected:$(1327,1,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:$(1328,1,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:$(1329,1,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:$(1330,1,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:$(1331,1,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:$(1332,1,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:$(1333,1,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:$(1334,1,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:$(1335,1,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:$(1337,1,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:$(1338,1,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:$(1339,1,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:$(1340,1,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Class_constructor_may_not_be_an_accessor:$(1341,1,"Class_constructor_may_not_be_an_accessor_1341","Class constructor may not be an accessor."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:$(1343,1,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),A_label_is_not_allowed_here:$(1344,1,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:$(1345,1,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:$(1346,1,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:$(1347,1,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:$(1348,1,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:$(1349,1,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:$(1350,3,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:$(1351,1,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:$(1352,1,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:$(1353,1,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:$(1354,1,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:$(1355,1,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:$(1356,1,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:$(1357,1,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:$(1358,1,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:$(1359,1,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Type_0_does_not_satisfy_the_expected_type_1:$(1360,1,"Type_0_does_not_satisfy_the_expected_type_1_1360","Type '{0}' does not satisfy the expected type '{1}'."),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:$(1361,1,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:$(1362,1,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:$(1363,1,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:$(1364,3,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:$(1365,3,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:$(1366,3,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:$(1367,3,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Class_constructor_may_not_be_a_generator:$(1368,1,"Class_constructor_may_not_be_a_generator_1368","Class constructor may not be a generator."),Did_you_mean_0:$(1369,3,"Did_you_mean_0_1369","Did you mean '{0}'?"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1375,1,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:$(1376,3,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:$(1377,3,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1378,1,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:$(1379,1,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:$(1380,1,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:$(1381,1,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:$(1382,1,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1385,1,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1386,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1387,1,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1388,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:$(1389,1,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),_0_is_not_allowed_as_a_parameter_name:$(1390,1,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),An_import_alias_cannot_use_import_type:$(1392,1,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:$(1393,3,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:$(1394,3,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:$(1395,3,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:$(1396,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:$(1397,3,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:$(1398,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:$(1399,3,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:$(1400,3,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:$(1401,3,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:$(1402,3,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:$(1403,3,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:$(1404,3,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:$(1405,3,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:$(1406,3,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:$(1407,3,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:$(1408,3,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:$(1409,3,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:$(1410,3,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:$(1411,3,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:$(1412,3,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:$(1413,3,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:$(1414,3,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:$(1415,3,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:$(1416,3,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:$(1417,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:$(1418,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:$(1419,3,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:$(1420,3,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:$(1421,3,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:$(1422,3,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:$(1423,3,"File_is_library_specified_here_1423","File is library specified here."),Default_library:$(1424,3,"Default_library_1424","Default library"),Default_library_for_target_0:$(1425,3,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:$(1426,3,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:$(1427,3,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:$(1428,3,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:$(1429,3,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:$(1430,3,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1431,1,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1432,1,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:$(1433,1,"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433","Neither decorators nor modifiers may be applied to 'this' parameters."),Unexpected_keyword_or_identifier:$(1434,1,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:$(1435,1,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:$(1436,1,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:$(1437,1,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:$(1438,1,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:$(1439,1,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:$(1440,1,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:$(1441,1,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:$(1442,1,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:$(1443,1,"Module_declaration_names_may_only_use_or_quoted_strings_1443",`Module declaration names may only use ' or " quoted strings.`),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:$(1448,1,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:$(1449,3,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:$(1450,3,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional set of attributes as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:$(1451,1,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),resolution_mode_should_be_either_require_or_import:$(1453,1,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:$(1454,1,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:$(1455,1,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1456,1,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:$(1457,3,"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457","Matched by default include pattern '**/*'"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:$(1458,3,"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458",`File is ECMAScript module because '{0}' has field "type" with value "module"`),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:$(1459,3,"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459",`File is CommonJS module because '{0}' has field "type" whose value is not "module"`),File_is_CommonJS_module_because_0_does_not_have_field_type:$(1460,3,"File_is_CommonJS_module_because_0_does_not_have_field_type_1460",`File is CommonJS module because '{0}' does not have field "type"`),File_is_CommonJS_module_because_package_json_was_not_found:$(1461,3,"File_is_CommonJS_module_because_package_json_was_not_found_1461","File is CommonJS module because 'package.json' was not found"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:$(1463,1,"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463","'resolution-mode' is the only valid key for type import attributes."),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1464,1,"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464","Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:$(1470,1,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:$(1471,1,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),catch_or_finally_expected:$(1472,1,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1473,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1474,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:$(1475,3,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:$(1476,3,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:$(1477,1,"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477","An instantiation expression cannot be followed by a property access."),Identifier_or_string_literal_expected:$(1478,1,"Identifier_or_string_literal_expected_1478","Identifier or string literal expected."),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:$(1479,1,"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479",`The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:$(1480,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480",'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:$(1481,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481",`To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:$(1482,3,"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482",'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:$(1483,3,"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483",'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1484,1,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484","'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1485,1,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),Decorator_used_before_export_here:$(1486,1,"Decorator_used_before_export_here_1486","Decorator used before 'export' here."),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:$(1487,1,"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487","Octal escape sequences are not allowed. Use the syntax '{0}'."),Escape_sequence_0_is_not_allowed:$(1488,1,"Escape_sequence_0_is_not_allowed_1488","Escape sequence '{0}' is not allowed."),Decimals_with_leading_zeros_are_not_allowed:$(1489,1,"Decimals_with_leading_zeros_are_not_allowed_1489","Decimals with leading zeros are not allowed."),File_appears_to_be_binary:$(1490,1,"File_appears_to_be_binary_1490","File appears to be binary."),_0_modifier_cannot_appear_on_a_using_declaration:$(1491,1,"_0_modifier_cannot_appear_on_a_using_declaration_1491","'{0}' modifier cannot appear on a 'using' declaration."),_0_declarations_may_not_have_binding_patterns:$(1492,1,"_0_declarations_may_not_have_binding_patterns_1492","'{0}' declarations may not have binding patterns."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:$(1493,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493","The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:$(1494,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494","The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),_0_modifier_cannot_appear_on_an_await_using_declaration:$(1495,1,"_0_modifier_cannot_appear_on_an_await_using_declaration_1495","'{0}' modifier cannot appear on an 'await using' declaration."),Identifier_string_literal_or_number_literal_expected:$(1496,1,"Identifier_string_literal_or_number_literal_expected_1496","Identifier, string literal, or number literal expected."),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:$(1497,1,"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497","Expression must be enclosed in parentheses to be used as a decorator."),Invalid_syntax_in_decorator:$(1498,1,"Invalid_syntax_in_decorator_1498","Invalid syntax in decorator."),Unknown_regular_expression_flag:$(1499,1,"Unknown_regular_expression_flag_1499","Unknown regular expression flag."),Duplicate_regular_expression_flag:$(1500,1,"Duplicate_regular_expression_flag_1500","Duplicate regular expression flag."),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:$(1501,1,"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501","This regular expression flag is only available when targeting '{0}' or later."),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:$(1502,1,"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502","The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:$(1503,1,"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503","Named capturing groups are only available when targeting 'ES2018' or later."),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:$(1504,1,"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504","Subpattern flags must be present when there is a minus sign."),Incomplete_quantifier_Digit_expected:$(1505,1,"Incomplete_quantifier_Digit_expected_1505","Incomplete quantifier. Digit expected."),Numbers_out_of_order_in_quantifier:$(1506,1,"Numbers_out_of_order_in_quantifier_1506","Numbers out of order in quantifier."),There_is_nothing_available_for_repetition:$(1507,1,"There_is_nothing_available_for_repetition_1507","There is nothing available for repetition."),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:$(1508,1,"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508","Unexpected '{0}'. Did you mean to escape it with backslash?"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:$(1509,1,"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509","This regular expression flag cannot be toggled within a subpattern."),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:$(1510,1,"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510","'\\k' must be followed by a capturing group name enclosed in angle brackets."),q_is_only_available_inside_character_class:$(1511,1,"q_is_only_available_inside_character_class_1511","'\\q' is only available inside character class."),c_must_be_followed_by_an_ASCII_letter:$(1512,1,"c_must_be_followed_by_an_ASCII_letter_1512","'\\c' must be followed by an ASCII letter."),Undetermined_character_escape:$(1513,1,"Undetermined_character_escape_1513","Undetermined character escape."),Expected_a_capturing_group_name:$(1514,1,"Expected_a_capturing_group_name_1514","Expected a capturing group name."),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:$(1515,1,"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515","Named capturing groups with the same name must be mutually exclusive to each other."),A_character_class_range_must_not_be_bounded_by_another_character_class:$(1516,1,"A_character_class_range_must_not_be_bounded_by_another_character_class_1516","A character class range must not be bounded by another character class."),Range_out_of_order_in_character_class:$(1517,1,"Range_out_of_order_in_character_class_1517","Range out of order in character class."),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:$(1518,1,"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518","Anything that would possibly match more than a single character is invalid inside a negated character class."),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:$(1519,1,"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519","Operators must not be mixed within a character class. Wrap it in a nested class instead."),Expected_a_class_set_operand:$(1520,1,"Expected_a_class_set_operand_1520","Expected a class set operand."),q_must_be_followed_by_string_alternatives_enclosed_in_braces:$(1521,1,"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521","'\\q' must be followed by string alternatives enclosed in braces."),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:$(1522,1,"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522","A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),Expected_a_Unicode_property_name:$(1523,1,"Expected_a_Unicode_property_name_1523","Expected a Unicode property name."),Unknown_Unicode_property_name:$(1524,1,"Unknown_Unicode_property_name_1524","Unknown Unicode property name."),Expected_a_Unicode_property_value:$(1525,1,"Expected_a_Unicode_property_value_1525","Expected a Unicode property value."),Unknown_Unicode_property_value:$(1526,1,"Unknown_Unicode_property_value_1526","Unknown Unicode property value."),Expected_a_Unicode_property_name_or_value:$(1527,1,"Expected_a_Unicode_property_name_or_value_1527","Expected a Unicode property name or value."),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:$(1528,1,"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528","Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),Unknown_Unicode_property_name_or_value:$(1529,1,"Unknown_Unicode_property_name_or_value_1529","Unknown Unicode property name or value."),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1530,1,"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530","Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:$(1531,1,"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531","'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),There_is_no_capturing_group_named_0_in_this_regular_expression:$(1532,1,"There_is_no_capturing_group_named_0_in_this_regular_expression_1532","There is no capturing group named '{0}' in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:$(1533,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533","This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:$(1534,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534","This backreference refers to a group that does not exist. There are no capturing groups in this regular expression."),This_character_cannot_be_escaped_in_a_regular_expression:$(1535,1,"This_character_cannot_be_escaped_in_a_regular_expression_1535","This character cannot be escaped in a regular expression."),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:$(1536,1,"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536","Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead."),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:$(1537,1,"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537","Decimal escape sequences and backreferences are not allowed in a character class."),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1538,1,"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538","Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),A_bigint_literal_cannot_be_used_as_a_property_name:$(1539,1,"A_bigint_literal_cannot_be_used_as_a_property_name_1539","A 'bigint' literal cannot be used as a property name."),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:$(1540,2,"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540","A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1541,1,"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541","Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1542,1,"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542","Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:$(1543,1,"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543",`Importing a JSON file into an ECMAScript module requires a 'type: "json"' import attribute when 'module' is set to '{0}'.`),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:$(1544,1,"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544","Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),The_types_of_0_are_incompatible_between_these_types:$(2200,1,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:$(2201,1,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:$(2202,1,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:$(2203,1,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2204,1,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2205,1,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:$(2206,1,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:$(2207,1,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),This_type_parameter_might_need_an_extends_0_constraint:$(2208,1,"This_type_parameter_might_need_an_extends_0_constraint_2208","This type parameter might need an `extends {0}` constraint."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2209,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2210,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),Add_extends_constraint:$(2211,3,"Add_extends_constraint_2211","Add `extends` constraint."),Add_extends_constraint_to_all_type_parameters:$(2212,3,"Add_extends_constraint_to_all_type_parameters_2212","Add `extends` constraint to all type parameters"),Duplicate_identifier_0:$(2300,1,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2301,1,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:$(2302,1,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:$(2303,1,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:$(2304,1,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:$(2305,1,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:$(2306,1,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:$(2307,1,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:$(2308,1,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:$(2309,1,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:$(2310,1,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:$(2311,1,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2312,1,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:$(2313,1,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:$(2314,1,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:$(2315,1,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:$(2316,1,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:$(2317,1,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:$(2318,1,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:$(2319,1,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:$(2320,1,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:$(2321,1,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:$(2322,1,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:$(2323,1,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:$(2324,1,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:$(2325,1,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:$(2326,1,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:$(2327,1,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:$(2328,1,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:$(2329,1,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:$(2330,1,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:$(2331,1,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:$(2332,1,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_a_static_property_initializer:$(2334,1,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:$(2335,1,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:$(2336,1,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:$(2337,1,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:$(2338,1,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:$(2339,1,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:$(2340,1,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:$(2341,1,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:$(2343,1,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:$(2344,1,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:$(2345,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Untyped_function_calls_may_not_accept_type_arguments:$(2347,1,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:$(2348,1,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:$(2349,1,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:$(2350,1,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:$(2351,1,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:$(2352,1,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:$(2353,1,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:$(2354,1,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:$(2355,1,"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:$(2356,1,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:$(2357,1,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:$(2358,1,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:$(2359,1,"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359","The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2362,1,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2363,1,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:$(2364,1,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:$(2365,1,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:$(2366,1,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:$(2367,1,"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367","This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),Type_parameter_name_cannot_be_0:$(2368,1,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:$(2369,1,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:$(2370,1,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:$(2371,1,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:$(2372,1,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:$(2373,1,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:$(2374,1,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2375,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2376,1,"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:$(2377,1,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:$(2378,1,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2379,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),Overload_signatures_must_all_be_exported_or_non_exported:$(2383,1,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:$(2384,1,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:$(2385,1,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:$(2386,1,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:$(2387,1,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:$(2388,1,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:$(2389,1,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:$(2390,1,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:$(2391,1,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:$(2392,1,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:$(2393,1,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:$(2394,1,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:$(2395,1,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:$(2396,1,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:$(2397,1,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:$(2398,1,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:$(2399,1,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:$(2400,1,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2401,1,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:$(2402,1,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:$(2403,1,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:$(2404,1,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:$(2405,1,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:$(2406,1,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:$(2407,1,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:$(2408,1,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:$(2409,1,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:$(2410,1,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:$(2412,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:$(2411,1,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:$(2413,1,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:$(2414,1,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:$(2415,1,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:$(2416,1,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:$(2417,1,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:$(2418,1,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:$(2419,1,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:$(2420,1,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2422,1,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:$(2423,1,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:$(2425,1,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:$(2426,1,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:$(2427,1,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:$(2428,1,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:$(2430,1,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:$(2431,1,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:$(2432,1,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:$(2433,1,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:$(2434,1,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:$(2435,1,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:$(2436,1,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:$(2437,1,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:$(2438,1,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:$(2439,1,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:$(2440,1,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:$(2441,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:$(2442,1,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:$(2443,1,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:$(2444,1,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:$(2445,1,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:$(2446,1,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:$(2447,1,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:$(2448,1,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:$(2449,1,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:$(2450,1,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:$(2451,1,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:$(2452,1,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),Variable_0_is_used_before_being_assigned:$(2454,1,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_alias_0_circularly_references_itself:$(2456,1,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:$(2457,1,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:$(2458,1,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:$(2459,1,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:$(2460,1,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:$(2461,1,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:$(2462,1,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:$(2463,1,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:$(2464,1,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:$(2465,1,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:$(2466,1,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:$(2467,1,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:$(2468,1,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:$(2469,1,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:$(2472,1,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:$(2473,1,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_must_be_constant_expressions:$(2474,1,"const_enum_member_initializers_must_be_constant_expressions_2474","const enum member initializers must be constant expressions."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:$(2475,1,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:$(2476,1,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:$(2477,1,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:$(2478,1,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:$(2480,1,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:$(2481,1,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:$(2483,1,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:$(2484,1,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:$(2487,1,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2488,1,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:$(2489,1,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:$(2490,1,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:$(2491,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:$(2492,1,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:$(2493,1,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:$(2494,1,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:$(2495,1,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:$(2496,1,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496","The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:$(2497,1,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:$(2498,1,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2499,1,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2500,1,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:$(2501,1,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:$(2502,1,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:$(2503,1,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:$(2504,1,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:$(2505,1,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:$(2506,1,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:$(2507,1,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:$(2508,1,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2509,1,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:$(2510,1,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:$(2511,1,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:$(2512,1,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:$(2513,1,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),A_tuple_type_cannot_be_indexed_with_a_negative_value:$(2514,1,"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514","A tuple type cannot be indexed with a negative value."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:$(2515,1,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:$(2516,1,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:$(2517,1,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:$(2518,1,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:$(2519,1,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:$(2520,1,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:$(2522,1,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522","The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:$(2523,1,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:$(2524,1,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:$(2526,1,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:$(2527,1,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:$(2528,1,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:$(2529,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:$(2530,1,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:$(2531,1,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:$(2532,1,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:$(2533,1,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:$(2534,1,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Type_0_cannot_be_used_to_index_type_1:$(2536,1,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:$(2537,1,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:$(2538,1,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:$(2539,1,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:$(2540,1,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),Index_signature_in_type_0_only_permits_reading:$(2542,1,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:$(2543,1,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:$(2544,1,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:$(2545,1,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:$(2547,1,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2548,1,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2549,1,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:$(2550,1,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:$(2551,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:$(2552,1,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:$(2553,1,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:$(2554,1,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:$(2555,1,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:$(2556,1,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:$(2558,1,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:$(2559,1,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:$(2560,1,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:$(2561,1,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:$(2562,1,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:$(2563,1,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:$(2564,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:$(2565,1,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:$(2566,1,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:$(2567,1,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:$(2568,1,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Could_not_find_name_0_Did_you_mean_1:$(2570,1,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:$(2571,1,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),A_rest_element_type_must_be_an_array_type:$(2574,1,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:$(2575,1,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:$(2576,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:$(2577,1,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:$(2578,1,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:$(2580,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:$(2581,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:$(2582,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:$(2583,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:$(2584,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:$(2585,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Cannot_assign_to_0_because_it_is_a_constant:$(2588,1,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:$(2589,1,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:$(2590,1,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:$(2591,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:$(2592,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:$(2593,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:$(2594,1,"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594","This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:$(2595,1,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2596,1,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:$(2597,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2598,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:$(2602,1,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:$(2603,1,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:$(2604,1,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:$(2606,1,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:$(2607,1,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:$(2608,1,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:$(2609,1,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:$(2610,1,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:$(2611,1,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:$(2612,1,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:$(2613,1,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:$(2614,1,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:$(2615,1,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:$(2616,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2617,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:$(2618,1,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:$(2619,1,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:$(2620,1,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:$(2621,1,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:$(2623,1,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:$(2624,1,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:$(2625,1,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:$(2626,1,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:$(2627,1,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:$(2628,1,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:$(2629,1,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:$(2630,1,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:$(2631,1,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:$(2632,1,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:$(2633,1,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:$(2634,1,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:$(2635,1,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:$(2636,1,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:$(2637,1,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:$(2638,1,"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638","Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),React_components_cannot_include_JSX_namespace_names:$(2639,1,"React_components_cannot_include_JSX_namespace_names_2639","React components cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:$(2649,1,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:$(2650,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650","Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:$(2651,1,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:$(2652,1,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:$(2653,1,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:$(2654,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:$(2655,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:$(2656,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656","Non-abstract class expression is missing implementations for the following members of '{0}': {1}."),JSX_expressions_must_have_one_parent_element:$(2657,1,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:$(2658,1,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:$(2659,1,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:$(2660,1,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:$(2661,1,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:$(2662,1,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:$(2663,1,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:$(2664,1,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:$(2665,1,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:$(2666,1,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:$(2667,1,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:$(2668,1,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:$(2669,1,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:$(2670,1,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:$(2671,1,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:$(2672,1,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:$(2673,1,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:$(2674,1,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:$(2675,1,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:$(2676,1,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:$(2677,1,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:$(2678,1,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:$(2679,1,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:$(2680,1,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:$(2681,1,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:$(2683,1,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:$(2684,1,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:$(2685,1,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:$(2686,1,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:$(2687,1,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:$(2688,1,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:$(2689,1,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:$(2690,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:$(2692,1,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:$(2693,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:$(2694,1,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:$(2695,1,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:$(2696,1,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2697,1,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:$(2698,1,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:$(2699,1,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:$(2700,1,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:$(2701,1,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:$(2702,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:$(2703,1,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:$(2704,1,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2705,1,"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705","An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:$(2706,1,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:$(2707,1,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:$(2708,1,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:$(2709,1,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:$(2710,1,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2711,1,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2712,1,"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712","A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:$(2713,1,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:$(2714,1,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:$(2715,1,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:$(2716,1,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:$(2717,1,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:$(2718,1,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:$(2719,1,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:$(2720,1,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:$(2721,1,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:$(2722,1,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:$(2723,1,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:$(2724,1,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:$(2725,1,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:$(2726,1,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:$(2727,1,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:$(2728,3,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:$(2729,1,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:$(2730,1,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:$(2731,1,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:$(2732,1,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:$(2733,1,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:$(2734,1,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:$(2735,1,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:$(2736,1,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:$(2737,1,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:$(2738,3,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:$(2739,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:$(2740,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:$(2741,1,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:$(2742,1,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:$(2743,1,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:$(2744,1,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:$(2745,1,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:$(2746,1,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:$(2747,1,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_0_is_enabled:$(2748,1,"Cannot_access_ambient_const_enums_when_0_is_enabled_2748","Cannot access ambient const enums when '{0}' is enabled."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:$(2749,1,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:$(2750,1,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:$(2751,1,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:$(2752,1,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:$(2753,1,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:$(2754,1,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:$(2755,1,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:$(2756,1,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:$(2757,1,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2758,1,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:$(2759,1,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:$(2760,1,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:$(2761,1,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2762,1,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:$(2763,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:$(2764,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:$(2765,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:$(2766,1,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:$(2767,1,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:$(2768,1,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:$(2769,1,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:$(2770,1,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:$(2771,1,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:$(2772,1,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:$(2773,1,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:$(2774,1,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:$(2775,1,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:$(2776,1,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:$(2777,1,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:$(2778,1,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:$(2779,1,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:$(2780,1,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:$(2781,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:$(2782,3,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:$(2783,1,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:$(2784,1,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:$(2785,1,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:$(2786,1,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:$(2787,1,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:$(2788,1,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:$(2789,1,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:$(2790,1,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:$(2791,1,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:$(2792,1,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:$(2793,1,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:$(2794,1,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:$(2795,1,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:$(2796,1,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:$(2797,1,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:$(2798,1,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:$(2799,1,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:$(2800,1,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:$(2801,1,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:$(2802,1,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:$(2803,1,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:$(2804,1,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Private_accessor_was_defined_without_a_getter:$(2806,1,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:$(2807,1,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:$(2808,1,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:$(2809,1,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:$(2810,1,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),Initializer_for_property_0:$(2811,1,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:$(2812,1,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:$(2813,1,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:$(2814,1,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers:$(2815,1,"arguments_cannot_be_referenced_in_property_initializers_2815","'arguments' cannot be referenced in property initializers."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:$(2816,1,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:$(2817,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:$(2818,1,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:$(2819,1,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:$(2820,1,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2821,1,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2821","Import assertions are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:$(2822,1,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2823,1,"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2823","Import attributes are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Cannot_find_namespace_0_Did_you_mean_1:$(2833,1,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:$(2834,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:$(2835,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2836,1,"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836","Import assertions are not allowed on statements that compile to CommonJS 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:$(2837,1,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:$(2838,1,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:$(2839,1,"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839","This condition will always return '{0}' since JavaScript compares objects by reference, not value."),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:$(2840,1,"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840","An interface cannot extend a primitive type like '{0}'. It can only extend other named object types."),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:$(2842,1,"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842","'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:$(2843,1,"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843","We can only write a type for '{0}' by adding a type for the entire parameter here."),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2844,1,"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844","Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),This_condition_will_always_return_0:$(2845,1,"This_condition_will_always_return_0_2845","This condition will always return '{0}'."),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:$(2846,1,"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846","A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:$(2848,1,"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848","The right-hand side of an 'instanceof' expression must not be an instantiation expression."),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:$(2849,1,"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849","Target signature provides too few arguments. Expected {0} or more, but got {1}."),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:$(2850,1,"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850","The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:$(2851,1,"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851","The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(2852,1,"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852","'await using' statements are only allowed within async functions and at the top levels of modules."),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(2853,1,"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853","'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(2854,1,"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854","Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:$(2855,1,"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855","Class field '{0}' defined by the parent class is not accessible in the child class via super."),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2856,1,"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856","Import attributes are not allowed on statements that compile to CommonJS 'require' calls."),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:$(2857,1,"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857","Import attributes cannot be used with type-only imports or exports."),Import_attribute_values_must_be_string_literal_expressions:$(2858,1,"Import_attribute_values_must_be_string_literal_expressions_2858","Import attribute values must be string literal expressions."),Excessive_complexity_comparing_types_0_and_1:$(2859,1,"Excessive_complexity_comparing_types_0_and_1_2859","Excessive complexity comparing types '{0}' and '{1}'."),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:$(2860,1,"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860","The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:$(2861,1,"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861","An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),Type_0_is_generic_and_can_only_be_indexed_for_reading:$(2862,1,"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862","Type '{0}' is generic and can only be indexed for reading."),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:$(2863,1,"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863","A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:$(2864,1,"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864","A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2865,1,"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865","Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2866,1,"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866","Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:$(2867,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:$(2868,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig."),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:$(2869,1,"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869","Right operand of ?? is unreachable because the left operand is never nullish."),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:$(2870,1,"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870","This binary expression is never nullish. Are you missing parentheses?"),This_expression_is_always_nullish:$(2871,1,"This_expression_is_always_nullish_2871","This expression is always nullish."),This_kind_of_expression_is_always_truthy:$(2872,1,"This_kind_of_expression_is_always_truthy_2872","This kind of expression is always truthy."),This_kind_of_expression_is_always_falsy:$(2873,1,"This_kind_of_expression_is_always_falsy_2873","This kind of expression is always falsy."),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:$(2874,1,"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874","This JSX tag requires '{0}' to be in scope, but it could not be found."),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:$(2875,1,"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875","This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed."),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:$(2876,1,"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to "{0}".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:$(2877,1,"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877","This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path."),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:$(2878,1,"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878","This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files."),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:$(2879,1,"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879","Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),Import_declaration_0_is_using_private_name_1:$(4e3,1,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:$(4002,1,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:$(4004,1,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4006,1,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4008,1,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4010,1,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4012,1,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4014,1,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4016,1,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4019,1,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4020,1,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:$(4021,1,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:$(4022,1,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4023,1,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:$(4024,1,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:$(4025,1,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4026,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4027,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:$(4028,1,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4029,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4030,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:$(4031,1,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4032,1,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:$(4033,1,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4034,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4035,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4036,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4037,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4038,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4039,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4040,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4041,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4042,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4043,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4044,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:$(4045,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4046,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:$(4047,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4048,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:$(4049,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4050,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4051,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:$(4052,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4053,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4054,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:$(4055,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4056,1,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:$(4057,1,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4058,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:$(4059,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:$(4060,1,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4061,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4062,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:$(4063,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4064,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4065,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4066,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4067,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4068,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4069,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4070,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4071,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4072,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4073,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4074,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4075,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4076,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:$(4077,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4078,1,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:$(4081,1,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:$(4082,1,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:$(4083,1,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:$(4084,1,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:$(4085,1,"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085","Extends clause for inferred type '{0}' has or is using private name '{1}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4091,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:$(4092,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:$(4094,1,"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094","Property '{0}' of exported anonymous class type may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4095,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4096,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:$(4097,1,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4098,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4099,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:$(4100,1,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4101,1,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:$(4102,1,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:$(4103,1,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:$(4104,1,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:$(4105,1,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:$(4106,1,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:$(4107,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4108,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:$(4109,1,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:$(4110,1,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:$(4111,1,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:$(4112,1,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:$(4113,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:$(4114,1,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:$(4115,1,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:$(4116,1,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4117,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:$(4118,1,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4119,1,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4120,1,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:$(4121,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:$(4122,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4123,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:$(4124,1,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:$(4125,1,"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125","Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given."),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:$(4126,1,"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126","One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value."),The_current_host_does_not_support_the_0_option:$(5001,1,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:$(5009,1,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5010,1,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:$(5012,1,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Unknown_compiler_option_0:$(5023,1,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:$(5024,1,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:$(5025,1,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:$(5033,1,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:$(5042,1,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:$(5047,1,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:$(5051,1,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:$(5052,1,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:$(5053,1,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:$(5054,1,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:$(5055,1,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:$(5056,1,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:$(5057,1,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:$(5058,1,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:$(5059,1,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:$(5061,1,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:$(5062,1,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:$(5063,1,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:$(5064,1,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5065,1,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:$(5066,1,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:$(5067,1,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:$(5068,1,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:$(5069,1,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:$(5070,1,"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070","Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:$(5071,1,"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071","Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'."),Unknown_build_option_0:$(5072,1,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:$(5073,1,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:$(5074,1,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:$(5075,1,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:$(5076,1,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:$(5077,1,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:$(5078,1,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:$(5079,1,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:$(5080,1,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:$(5081,1,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:$(5082,1,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:$(5083,1,"Cannot_read_file_0_5083","Cannot read file '{0}'."),A_tuple_member_cannot_be_both_optional_and_rest:$(5085,1,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:$(5086,1,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:$(5087,1,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:$(5088,1,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:$(5089,1,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:$(5090,1,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:$(5091,1,"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),The_root_value_of_a_0_file_must_be_an_object:$(5092,1,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:$(5093,1,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:$(5094,1,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:$(5095,1,"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095","Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:$(5096,1,"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096","Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:$(5097,1,"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097","An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:$(5098,1,"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098","Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:$(5101,1,"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101",`Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),Option_0_has_been_removed_Please_remove_it_from_your_configuration:$(5102,1,"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102","Option '{0}' has been removed. Please remove it from your configuration."),Invalid_value_for_ignoreDeprecations:$(5103,1,"Invalid_value_for_ignoreDeprecations_5103","Invalid value for '--ignoreDeprecations'."),Option_0_is_redundant_and_cannot_be_specified_with_option_1:$(5104,1,"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104","Option '{0}' is redundant and cannot be specified with option '{1}'."),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:$(5105,1,"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105","Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),Use_0_instead:$(5106,3,"Use_0_instead_5106","Use '{0}' instead."),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:$(5107,1,"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107",`Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:$(5108,1,"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108","Option '{0}={1}' has been removed. Please remove it from your configuration."),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:$(5109,1,"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109","Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:$(5110,1,"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110","Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:$(6e3,3,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:$(6001,3,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:$(6002,3,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:$(6004,3,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:$(6005,3,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:$(6006,3,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:$(6007,3,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:$(6008,3,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:$(6009,3,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:$(6010,3,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:$(6011,3,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:$(6012,3,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:$(6013,3,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:$(6014,3,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:$(6015,3,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:$(6016,3,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:$(6017,3,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:$(6019,3,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:$(6020,3,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:$(6023,3,"Syntax_Colon_0_6023","Syntax: {0}"),options:$(6024,3,"options_6024","options"),file:$(6025,3,"file_6025","file"),Examples_Colon_0:$(6026,3,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:$(6027,3,"Options_Colon_6027","Options:"),Version_0:$(6029,3,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:$(6030,3,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:$(6031,3,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:$(6032,3,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:$(6034,3,"KIND_6034","KIND"),FILE:$(6035,3,"FILE_6035","FILE"),VERSION:$(6036,3,"VERSION_6036","VERSION"),LOCATION:$(6037,3,"LOCATION_6037","LOCATION"),DIRECTORY:$(6038,3,"DIRECTORY_6038","DIRECTORY"),STRATEGY:$(6039,3,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:$(6040,3,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Errors_Files:$(6041,3,"Errors_Files_6041","Errors Files"),Generates_corresponding_map_file:$(6043,3,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:$(6044,1,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:$(6045,1,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:$(6046,1,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:$(6048,1,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unable_to_open_file_0:$(6050,1,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:$(6051,1,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:$(6052,3,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:$(6053,1,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:$(6054,1,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:$(6055,3,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:$(6056,3,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:$(6058,3,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:$(6059,1,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:$(6060,3,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:$(6061,3,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:$(6064,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:$(6065,3,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:$(6066,3,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:$(6070,3,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:$(6071,3,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:$(6072,3,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:$(6073,3,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:$(6074,3,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:$(6075,3,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:$(6076,3,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:$(6077,3,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:$(6078,3,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:$(6079,3,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:$(6080,3,"Specify_JSX_code_generation_6080","Specify JSX code generation."),Only_amd_and_system_modules_are_supported_alongside_0:$(6082,1,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:$(6083,3,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:$(6084,3,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:$(6085,3,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:$(6086,3,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:$(6087,3,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:$(6088,3,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:$(6089,3,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:$(6090,3,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:$(6091,3,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:$(6092,3,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:$(6093,3,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:$(6094,3,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:$(6095,3,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095","Loading module as file / folder, candidate module location '{0}', target file types: {1}."),File_0_does_not_exist:$(6096,3,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exists_use_it_as_a_name_resolution_result:$(6097,3,"File_0_exists_use_it_as_a_name_resolution_result_6097","File '{0}' exists - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:$(6098,3,"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098","Loading module '{0}' from 'node_modules' folder, target file types: {1}."),Found_package_json_at_0:$(6099,3,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:$(6100,3,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:$(6101,3,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:$(6102,3,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:$(6104,3,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:$(6105,3,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:$(6106,3,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:$(6107,3,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:$(6108,3,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:$(6109,3,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:$(6110,3,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:$(6111,3,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:$(6112,3,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:$(6113,3,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:$(6114,1,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:$(6115,3,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:$(6116,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:$(6119,3,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:$(6120,3,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:$(6121,3,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:$(6122,3,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:$(6123,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:$(6124,3,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:$(6125,3,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:$(6126,3,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:$(6127,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:$(6128,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:$(6130,3,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:$(6131,1,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:$(6132,3,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:$(6133,1,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:$(6134,3,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:$(6135,3,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:$(6136,3,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:$(6137,1,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:$(6138,1,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:$(6139,3,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:$(6140,1,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:$(6141,3,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:$(6142,1,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:$(6144,3,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:$(6146,3,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:$(6147,3,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:$(6148,3,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:$(6149,3,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:$(6150,3,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:$(6151,3,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:$(6152,3,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:$(6153,3,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:$(6154,3,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:$(6155,3,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:$(6156,3,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:$(6157,3,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:$(6158,3,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:$(6159,3,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:$(6160,3,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:$(6161,3,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:$(6162,3,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:$(6163,3,"The_character_set_of_the_input_files_6163","The character set of the input files."),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:$(6164,3,"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164","Skipping module '{0}' that looks like an absolute URI, target file types: {1}."),Do_not_truncate_error_messages:$(6165,3,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:$(6166,3,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:$(6167,3,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:$(6168,3,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:$(6169,3,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:$(6170,3,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:$(6171,3,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:$(6179,3,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'."),Enable_all_strict_type_checking_options:$(6180,3,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),Scoped_package_detected_looking_in_0:$(6182,3,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6183,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6184,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:$(6186,3,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:$(6187,3,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:$(6188,1,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:$(6189,1,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:$(6191,3,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:$(6192,1,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:$(6193,3,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:$(6194,3,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:$(6195,3,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:$(6196,1,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:$(6197,3,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:$(6198,1,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:$(6199,1,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:$(6200,1,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:$(6201,3,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:$(6202,1,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:$(6203,3,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:$(6204,3,"and_here_6204","and here."),All_type_parameters_are_unused:$(6205,1,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:$(6206,3,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:$(6207,3,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:$(6208,3,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:$(6209,3,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:$(6210,3,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:$(6211,3,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:$(6212,3,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:$(6213,3,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:$(6214,3,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:$(6215,3,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:$(6216,3,"Found_1_error_6216","Found 1 error."),Found_0_errors:$(6217,3,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:$(6218,3,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:$(6219,3,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:$(6220,3,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:$(6221,3,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:$(6222,3,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:$(6223,3,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:$(6224,3,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:$(6225,3,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:$(6226,3,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:$(6227,3,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:$(6229,1,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:$(6230,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:$(6231,1,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:$(6232,1,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:$(6233,1,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:$(6234,1,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:$(6235,3,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:$(6236,1,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:$(6237,3,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:$(6238,1,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:$(6239,3,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:$(6240,3,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:$(6241,3,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:$(6242,3,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:$(6243,3,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:$(6244,3,"Modules_6244","Modules"),File_Management:$(6245,3,"File_Management_6245","File Management"),Emit:$(6246,3,"Emit_6246","Emit"),JavaScript_Support:$(6247,3,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:$(6248,3,"Type_Checking_6248","Type Checking"),Editor_Support:$(6249,3,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:$(6250,3,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:$(6251,3,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:$(6252,3,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:$(6253,3,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:$(6254,3,"Language_and_Environment_6254","Language and Environment"),Projects:$(6255,3,"Projects_6255","Projects"),Output_Formatting:$(6256,3,"Output_Formatting_6256","Output Formatting"),Completeness:$(6257,3,"Completeness_6257","Completeness"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:$(6258,1,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_0:$(6259,3,"Found_1_error_in_0_6259","Found 1 error in {0}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:$(6260,3,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:$(6261,3,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),File_name_0_has_a_1_extension_looking_up_2_instead:$(6262,3,"File_name_0_has_a_1_extension_looking_up_2_instead_6262","File name '{0}' has a '{1}' extension - looking up '{2}' instead."),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:$(6263,1,"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263","Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:$(6264,3,"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264","Enable importing files with any extension, provided a declaration file is present."),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:$(6265,3,"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265","Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."),Option_0_can_only_be_specified_on_command_line:$(6266,1,"Option_0_can_only_be_specified_on_command_line_6266","Option '{0}' can only be specified on command line."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:$(6270,3,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6271,3,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:$(6272,3,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:$(6273,3,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:$(6274,3,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:$(6275,3,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6276,3,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:$(6277,3,"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277","Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:$(6278,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278",`There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:$(6279,3,"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279","Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:$(6280,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280","There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),package_json_has_a_peerDependencies_field:$(6281,3,"package_json_has_a_peerDependencies_field_6281","'package.json' has a 'peerDependencies' field."),Found_peerDependency_0_with_1_version:$(6282,3,"Found_peerDependency_0_with_1_version_6282","Found peerDependency '{0}' with '{1}' version."),Failed_to_find_peerDependency_0:$(6283,3,"Failed_to_find_peerDependency_0_6283","Failed to find peerDependency '{0}'."),Enable_project_compilation:$(6302,3,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:$(6304,1,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:$(6305,1,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:$(6306,1,"Referenced_project_0_must_have_setting_composite_Colon_true_6306",`Referenced project '{0}' must have setting "composite": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:$(6307,1,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Referenced_project_0_may_not_disable_emit:$(6310,1,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:$(6350,3,"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350","Project '{0}' is out of date because output '{1}' is older than input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:$(6351,3,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:$(6352,3,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:$(6353,3,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:$(6354,3,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:$(6355,3,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:$(6356,3,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:$(6357,3,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:$(6358,3,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:$(6359,3,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),Project_0_is_up_to_date:$(6361,3,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:$(6362,3,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:$(6363,3,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:$(6364,3,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:$(6365,3,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects."),Show_what_would_be_built_or_deleted_if_specified_with_clean:$(6367,3,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:$(6369,1,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:$(6370,1,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:$(6371,3,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:$(6374,3,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:$(6377,1,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Composite_projects_may_not_disable_incremental_compilation:$(6379,1,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:$(6380,3,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:$(6381,3,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:$(6382,3,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:$(6383,3,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6384,3,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:$(6385,2,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:$(6386,3,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:$(6387,2,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:$(6388,3,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:$(6389,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6390,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6391,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:$(6392,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6393,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6394,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6395,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6396,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6397,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6398,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:$(6399,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399","Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:$(6400,3,"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400","Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:$(6401,3,"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401","Project '{0}' is out of date because there was error reading file '{1}'"),Resolving_in_0_mode_with_conditions_1:$(6402,3,"Resolving_in_0_mode_with_conditions_1_6402","Resolving in {0} mode with conditions {1}."),Matched_0_condition_1:$(6403,3,"Matched_0_condition_1_6403","Matched '{0}' condition '{1}'."),Using_0_subpath_1_with_target_2:$(6404,3,"Using_0_subpath_1_with_target_2_6404","Using '{0}' subpath '{1}' with target '{2}'."),Saw_non_matching_condition_0:$(6405,3,"Saw_non_matching_condition_0_6405","Saw non-matching condition '{0}'."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:$(6406,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406","Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:$(6407,3,"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407","Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),Use_the_package_json_exports_field_when_resolving_package_imports:$(6408,3,"Use_the_package_json_exports_field_when_resolving_package_imports_6408","Use the package.json 'exports' field when resolving package imports."),Use_the_package_json_imports_field_when_resolving_imports:$(6409,3,"Use_the_package_json_imports_field_when_resolving_imports_6409","Use the package.json 'imports' field when resolving imports."),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:$(6410,3,"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410","Conditions to set in addition to the resolver-specific defaults when resolving imports."),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:$(6411,3,"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411","`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:$(6412,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412","Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),Entering_conditional_exports:$(6413,3,"Entering_conditional_exports_6413","Entering conditional exports."),Resolved_under_condition_0:$(6414,3,"Resolved_under_condition_0_6414","Resolved under condition '{0}'."),Failed_to_resolve_under_condition_0:$(6415,3,"Failed_to_resolve_under_condition_0_6415","Failed to resolve under condition '{0}'."),Exiting_conditional_exports:$(6416,3,"Exiting_conditional_exports_6416","Exiting conditional exports."),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:$(6417,3,"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417","Searching all ancestor node_modules directories for preferred extensions: {0}."),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:$(6418,3,"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418","Searching all ancestor node_modules directories for fallback extensions: {0}."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:$(6419,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419","Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors."),Project_0_is_out_of_date_because_1:$(6420,3,"Project_0_is_out_of_date_because_1_6420","Project '{0}' is out of date because {1}."),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:$(6421,3,"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421","Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:$(6500,3,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:$(6501,3,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:$(6502,3,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:$(6503,3,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:$(6504,1,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:$(6505,3,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:$(6506,3,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:$(6600,3,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:$(6601,3,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:$(6602,3,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:$(6603,3,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:$(6604,3,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:$(6605,3,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6606,3,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:$(6607,3,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:$(6608,3,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:$(6609,3,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:$(6611,3,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:$(6612,3,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:$(6613,3,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:$(6614,3,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:$(6615,3,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:$(6616,3,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:$(6617,3,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:$(6618,3,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:$(6619,3,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:$(6620,3,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects."),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:$(6621,3,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:$(6622,3,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Only_output_d_ts_files_and_not_JavaScript_files:$(6623,3,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:$(6624,3,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:$(6625,3,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:$(6626,3,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),Filters_results_from_the_include_option:$(6627,3,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:$(6628,3,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:$(6629,3,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_legacy_experimental_decorators:$(6630,3,"Enable_experimental_support_for_legacy_experimental_decorators_6630","Enable experimental support for legacy experimental decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:$(6631,3,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:$(6632,3,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:$(6633,3,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:$(6634,3,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:$(6635,3,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:$(6636,3,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date."),Ensure_that_casing_is_correct_in_imports:$(6637,3,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:$(6638,3,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:$(6639,3,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Skip_building_downstream_projects_on_error_in_upstream_project:$(6640,3,"Skip_building_downstream_projects_on_error_in_upstream_project_6640","Skip building downstream projects on error in upstream project."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:$(6641,3,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:$(6642,3,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:$(6643,3,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:$(6644,3,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:$(6645,3,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:$(6646,3,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:$(6647,3,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:$(6648,3,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:$(6649,3,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:$(6650,3,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:$(6651,3,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:$(6652,3,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:$(6653,3,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:$(6654,3,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:$(6655,3,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:$(6656,3,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),Specify_what_module_code_is_generated:$(6657,3,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:$(6658,3,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:$(6659,3,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:$(6660,3,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:$(6661,3,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like '__extends' in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:$(6662,3,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:$(6663,3,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:$(6664,3,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:$(6665,3,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied 'any' type."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:$(6666,3,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:$(6667,3,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:$(6668,3,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when 'this' is given the type 'any'."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:$(6669,3,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:$(6670,3,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:$(6671,3,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type."),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:$(6672,3,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:$(6673,3,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:$(6674,3,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add 'undefined' to a type when accessed using an index."),Enable_error_reporting_when_local_variables_aren_t_read:$(6675,3,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:$(6676,3,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read."),Deprecated_setting_Use_outFile_instead:$(6677,3,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use 'outFile' instead."),Specify_an_output_folder_for_all_emitted_files:$(6678,3,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:$(6679,3,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:$(6680,3,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:$(6681,3,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:$(6682,3,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing 'const enum' declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:$(6683,3,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:$(6684,3,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode."),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:$(6685,3,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read."),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:$(6686,3,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:$(6687,3,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:$(6688,3,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:$(6689,3,"Enable_importing_json_files_6689","Enable importing .json files."),Specify_the_root_folder_within_your_source_files:$(6690,3,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:$(6691,3,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:$(6692,3,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:$(6693,3,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:$(6694,3,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:$(6695,3,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:$(6697,3,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:$(6698,3,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:$(6699,3,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account 'null' and 'undefined'."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:$(6700,3,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:$(6701,3,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have '@internal' in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:$(6702,3,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:$(6703,3,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:$(6704,3,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:$(6705,3,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:$(6706,3,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the 'moduleResolution' process."),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:$(6707,3,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),Specify_options_for_automatic_acquisition_of_declaration_files:$(6709,3,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:$(6710,3,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like './node_modules/@types'."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:$(6711,3,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:$(6712,3,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:$(6713,3,"Enable_verbose_logging_6713","Enable verbose logging."),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:$(6714,3,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:$(6715,3,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:$(6717,3,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:$(6718,3,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types."),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:$(6719,3,"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719","Require sufficient annotation on exports so other tools can trivially generate declaration files."),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:$(6720,3,"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720","Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'."),Default_catch_clause_variables_as_unknown_instead_of_any:$(6803,3,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default catch clause variables as 'unknown' instead of 'any'."),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:$(6804,3,"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804","Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:$(6805,3,"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805","Disable full type checking (only critical parse and emit errors will be reported)."),Check_side_effect_imports:$(6806,3,"Check_side_effect_imports_6806","Check side effect imports."),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:$(6807,1,"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807","This operation can be simplified. This shift is identical to `{0} {1} {2}`."),one_of_Colon:$(6900,3,"one_of_Colon_6900","one of:"),one_or_more_Colon:$(6901,3,"one_or_more_Colon_6901","one or more:"),type_Colon:$(6902,3,"type_Colon_6902","type:"),default_Colon:$(6903,3,"default_Colon_6903","default:"),module_system_or_esModuleInterop:$(6904,3,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:$(6905,3,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:$(6906,3,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:$(6907,3,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:$(6908,3,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:$(6909,3,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:$(69010,3,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:$(6911,3,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:$(6912,3,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:$(6913,3,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:$(6914,3,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:$(6915,3,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:$(6916,3,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:$(6917,3,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:$(6918,3,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:$(6919,3,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:$(6920,3,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:$(6921,3,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:$(6922,3,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:$(6923,3,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:$(6924,3,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:$(6925,3,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:$(6926,3,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:$(6927,3,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:$(6928,3,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:$(6929,3,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),true_for_ES2022_and_above_including_ESNext:$(6930,3,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:$(6931,1,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),Variable_0_implicitly_has_an_1_type:$(7005,1,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:$(7006,1,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:$(7008,1,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:$(7009,1,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:$(7010,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7011,1,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:$(7012,1,"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012","This overload implicitly returns the type '{0}' because it lacks a return type annotation."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7013,1,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7014,1,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:$(7015,1,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:$(7016,1,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:$(7017,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:$(7018,1,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:$(7019,1,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7020,1,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:$(7022,1,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7023,1,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7024,1,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:$(7025,1,"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025","Generator implicitly has yield type '{0}'. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:$(7026,1,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:$(7027,1,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:$(7028,1,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:$(7029,1,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:$(7030,1,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:$(7031,1,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:$(7032,1,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:$(7033,1,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:$(7034,1,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:$(7035,1,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:$(7036,1,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:$(7037,3,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:$(7038,3,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:$(7039,1,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:$(7040,1,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:$(7041,1,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:$(7042,1,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7043,2,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7044,2,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7045,2,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:$(7046,2,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:$(7047,2,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:$(7048,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:$(7049,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:$(7050,2,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:$(7051,1,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:$(7052,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:$(7053,1,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:$(7054,1,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:$(7055,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:$(7056,1,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:$(7057,1,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:$(7058,1,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:$(7059,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:$(7060,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:$(7061,1,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),You_cannot_rename_this_element:$(8e3,1,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:$(8001,1,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:$(8002,1,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:$(8003,1,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:$(8004,1,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:$(8005,1,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:$(8006,1,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:$(8008,1,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:$(8009,1,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:$(8010,1,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:$(8011,1,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:$(8012,1,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:$(8013,1,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:$(8016,1,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Signature_declarations_can_only_be_used_in_TypeScript_files:$(8017,1,"Signature_declarations_can_only_be_used_in_TypeScript_files_8017","Signature declarations can only be used in TypeScript files."),Report_errors_in_js_files:$(8019,3,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:$(8020,1,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:$(8021,1,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:$(8022,1,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:$(8023,1,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:$(8024,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:$(8025,1,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:$(8026,1,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:$(8027,1,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:$(8028,1,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:$(8029,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:$(8030,1,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:$(8031,1,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:$(8032,1,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:$(8033,1,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:$(8034,1,"The_tag_was_first_specified_here_8034","The tag was first specified here."),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:$(8035,1,"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035","You cannot rename elements that are defined in a 'node_modules' folder."),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:$(8036,1,"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036","You cannot rename elements that are defined in another 'node_modules' folder."),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:$(8037,1,"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037","Type satisfaction expressions can only be used in TypeScript files."),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:$(8038,1,"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038","Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:$(8039,1,"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039","A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:$(9005,1,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:$(9006,1,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9007,1,"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007","Function must have an explicit return type annotation with --isolatedDeclarations."),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9008,1,"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008","Method must have an explicit return type annotation with --isolatedDeclarations."),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9009,1,"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009","At least one accessor must have an explicit type annotation with --isolatedDeclarations."),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9010,1,"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010","Variable must have an explicit type annotation with --isolatedDeclarations."),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9011,1,"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011","Parameter must have an explicit type annotation with --isolatedDeclarations."),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9012,1,"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012","Property must have an explicit type annotation with --isolatedDeclarations."),Expression_type_can_t_be_inferred_with_isolatedDeclarations:$(9013,1,"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013","Expression type can't be inferred with --isolatedDeclarations."),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:$(9014,1,"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014","Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:$(9015,1,"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015","Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:$(9016,1,"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016","Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:$(9017,1,"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017","Only const arrays can be inferred with --isolatedDeclarations."),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:$(9018,1,"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018","Arrays with spread elements can't inferred with --isolatedDeclarations."),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:$(9019,1,"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019","Binding elements can't be exported directly with --isolatedDeclarations."),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:$(9020,1,"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020","Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:$(9021,1,"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021","Extends clause can't contain an expression with --isolatedDeclarations."),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:$(9022,1,"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022","Inference from class expressions is not supported with --isolatedDeclarations."),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:$(9023,1,"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023","Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:$(9025,1,"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025","Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations."),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:$(9026,1,"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026","Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),Add_a_type_annotation_to_the_variable_0:$(9027,1,"Add_a_type_annotation_to_the_variable_0_9027","Add a type annotation to the variable {0}."),Add_a_type_annotation_to_the_parameter_0:$(9028,1,"Add_a_type_annotation_to_the_parameter_0_9028","Add a type annotation to the parameter {0}."),Add_a_type_annotation_to_the_property_0:$(9029,1,"Add_a_type_annotation_to_the_property_0_9029","Add a type annotation to the property {0}."),Add_a_return_type_to_the_function_expression:$(9030,1,"Add_a_return_type_to_the_function_expression_9030","Add a return type to the function expression."),Add_a_return_type_to_the_function_declaration:$(9031,1,"Add_a_return_type_to_the_function_declaration_9031","Add a return type to the function declaration."),Add_a_return_type_to_the_get_accessor_declaration:$(9032,1,"Add_a_return_type_to_the_get_accessor_declaration_9032","Add a return type to the get accessor declaration."),Add_a_type_to_parameter_of_the_set_accessor_declaration:$(9033,1,"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033","Add a type to parameter of the set accessor declaration."),Add_a_return_type_to_the_method:$(9034,1,"Add_a_return_type_to_the_method_9034","Add a return type to the method"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:$(9035,1,"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035","Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:$(9036,1,"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036","Move the expression in default export to a variable and add a type annotation to it."),Default_exports_can_t_be_inferred_with_isolatedDeclarations:$(9037,1,"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037","Default exports can't be inferred with --isolatedDeclarations."),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:$(9038,1,"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038","Computed property names on class or object literals cannot be inferred with --isolatedDeclarations."),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:$(9039,1,"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039","Type containing private name '{0}' can't be used with --isolatedDeclarations."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:$(17e3,1,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:$(17001,1,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:$(17002,1,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:$(17004,1,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:$(17005,1,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17006,1,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17007,1,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:$(17008,1,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:$(17009,1,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:$(17010,1,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:$(17011,1,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:$(17012,1,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:$(17013,1,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:$(17014,1,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:$(17015,1,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:$(17016,1,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:$(17017,1,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:$(17018,1,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17019,1,"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019","'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17020,1,"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020","'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),Unicode_escape_sequence_cannot_appear_here:$(17021,1,"Unicode_escape_sequence_cannot_appear_here_17021","Unicode escape sequence cannot appear here."),Circularity_detected_while_resolving_configuration_Colon_0:$(18e3,1,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),The_files_list_in_config_file_0_is_empty:$(18002,1,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:$(18003,1,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:$(80001,2,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES module."),This_constructor_function_may_be_converted_to_a_class_declaration:$(80002,2,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:$(80003,2,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:$(80004,2,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:$(80005,2,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:$(80006,2,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:$(80007,2,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:$(80008,2,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),JSDoc_typedef_may_be_converted_to_TypeScript_type:$(80009,2,"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009","JSDoc typedef may be converted to TypeScript type."),JSDoc_typedefs_may_be_converted_to_TypeScript_types:$(80010,2,"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010","JSDoc typedefs may be converted to TypeScript types."),Add_missing_super_call:$(90001,3,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:$(90002,3,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:$(90003,3,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:$(90004,3,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:$(90005,3,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:$(90006,3,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:$(90007,3,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:$(90008,3,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:$(90010,3,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:$(90011,3,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:$(90012,3,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_1:$(90013,3,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:$(90014,3,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Declare_property_0:$(90016,3,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:$(90017,3,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:$(90018,3,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:$(90019,3,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:$(90020,3,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:$(90021,3,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:$(90022,3,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:$(90023,3,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:$(90024,3,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:$(90025,3,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:$(90026,3,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:$(90027,3,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:$(90028,3,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:$(90029,3,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:$(90030,3,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:$(90031,3,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Add_parameter_name:$(90034,3,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:$(90035,3,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:$(90036,3,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:$(90037,3,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:$(90038,3,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:$(90039,3,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:$(90041,3,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:$(90053,3,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Includes_imports_of_types_referenced_by_0:$(90054,3,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:$(90055,3,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:$(90056,3,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:$(90057,3,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:$(90058,3,"Update_import_from_0_90058",'Update import from "{0}"'),Export_0_from_module_1:$(90059,3,"Export_0_from_module_1_90059","Export '{0}' from module '{1}'"),Export_all_referenced_locals:$(90060,3,"Export_all_referenced_locals_90060","Export all referenced locals"),Update_modifiers_of_0:$(90061,3,"Update_modifiers_of_0_90061","Update modifiers of '{0}'"),Add_annotation_of_type_0:$(90062,3,"Add_annotation_of_type_0_90062","Add annotation of type '{0}'"),Add_return_type_0:$(90063,3,"Add_return_type_0_90063","Add return type '{0}'"),Extract_base_class_to_variable:$(90064,3,"Extract_base_class_to_variable_90064","Extract base class to variable"),Extract_default_export_to_variable:$(90065,3,"Extract_default_export_to_variable_90065","Extract default export to variable"),Extract_binding_expressions_to_variable:$(90066,3,"Extract_binding_expressions_to_variable_90066","Extract binding expressions to variable"),Add_all_missing_type_annotations:$(90067,3,"Add_all_missing_type_annotations_90067","Add all missing type annotations"),Add_satisfies_and_an_inline_type_assertion_with_0:$(90068,3,"Add_satisfies_and_an_inline_type_assertion_with_0_90068","Add satisfies and an inline type assertion with '{0}'"),Extract_to_variable_and_replace_with_0_as_typeof_0:$(90069,3,"Extract_to_variable_and_replace_with_0_as_typeof_0_90069","Extract to variable and replace with '{0} as typeof {0}'"),Mark_array_literal_as_const:$(90070,3,"Mark_array_literal_as_const_90070","Mark array literal as const"),Annotate_types_of_properties_expando_function_in_a_namespace:$(90071,3,"Annotate_types_of_properties_expando_function_in_a_namespace_90071","Annotate types of properties expando function in a namespace"),Convert_function_to_an_ES2015_class:$(95001,3,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_0_to_1_in_0:$(95003,3,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:$(95004,3,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:$(95005,3,"Extract_function_95005","Extract function"),Extract_constant:$(95006,3,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:$(95007,3,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:$(95008,3,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:$(95009,3,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Infer_type_of_0_from_usage:$(95011,3,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:$(95012,3,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:$(95013,3,"Convert_to_default_import_95013","Convert to default import"),Install_0:$(95014,3,"Install_0_95014","Install '{0}'"),Replace_import_with_0:$(95015,3,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:$(95016,3,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES_module:$(95017,3,"Convert_to_ES_module_95017","Convert to ES module"),Add_undefined_type_to_property_0:$(95018,3,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:$(95019,3,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:$(95020,3,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:$(95021,3,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:$(95022,3,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:$(95023,3,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:$(95024,3,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:$(95025,3,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:$(95026,3,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:$(95027,3,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:$(95028,3,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:$(95029,3,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:$(95030,3,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:$(95031,3,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:$(95032,3,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:$(95033,3,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:$(95034,3,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:$(95035,3,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:$(95036,3,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:$(95037,3,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:$(95038,3,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:$(95039,3,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:$(95040,3,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:$(95041,3,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:$(95042,3,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:$(95043,3,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:$(95044,3,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:$(95045,3,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:$(95046,3,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:$(95047,3,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:$(95048,3,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:$(95049,3,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:$(95050,3,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:$(95051,3,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:$(95052,3,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:$(95053,3,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:$(95054,3,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:$(95055,3,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:$(95056,3,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:$(95057,3,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:$(95058,3,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:$(95059,3,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:$(95060,3,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:$(95061,3,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:$(95062,3,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:$(95063,3,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:$(95064,3,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:$(95065,3,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:$(95066,3,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:$(95067,3,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:$(95068,3,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:$(95069,3,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:$(95070,3,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:$(95071,3,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:$(95072,3,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:$(95073,3,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:$(95074,3,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:$(95075,3,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:$(95077,3,"Extract_type_95077","Extract type"),Extract_to_type_alias:$(95078,3,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:$(95079,3,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:$(95080,3,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:$(95081,3,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:$(95082,3,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:$(95083,3,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:$(95084,3,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:$(95085,3,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:$(95086,3,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:$(95087,3,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:$(95088,3,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:$(95089,3,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:$(95090,3,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:$(95091,3,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:$(95092,3,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:$(95093,3,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:$(95094,3,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:$(95095,3,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:$(95096,3,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:$(95097,3,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:$(95098,3,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:$(95099,3,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:$(95100,3,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:$(95101,3,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Convert_all_const_to_let:$(95102,3,"Convert_all_const_to_let_95102","Convert all 'const' to 'let'"),Convert_function_expression_0_to_arrow_function:$(95105,3,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:$(95106,3,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:$(95107,3,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:$(95108,3,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:$(95109,3,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:$(95110,3,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig to read more about this file"),Add_a_return_statement:$(95111,3,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:$(95112,3,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:$(95113,3,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:$(95114,3,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:$(95115,3,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:$(95116,3,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:$(95117,3,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:$(95118,3,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:$(95119,3,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:$(95120,3,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:$(95121,3,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:$(95122,3,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:$(95123,3,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:$(95124,3,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:$(95125,3,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:$(95126,3,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:$(95127,3,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:$(95128,3,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:$(95129,3,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:$(95130,3,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:$(95131,3,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:$(95132,3,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:$(95133,3,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:$(95134,3,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:$(95135,3,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:$(95136,3,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:$(95137,3,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:$(95138,3,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:$(95139,3,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:$(95140,3,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:$(95141,3,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:$(95142,3,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:$(95143,3,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:$(95144,3,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:$(95145,3,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:$(95146,3,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:$(95147,3,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:$(95148,3,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:$(95149,3,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:$(95150,3,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:$(95151,3,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:$(95152,3,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:$(95153,3,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenations_and_string_literals:$(95154,3,"Can_only_convert_string_concatenations_and_string_literals_95154","Can only convert string concatenations and string literals"),Selection_is_not_a_valid_statement_or_statements:$(95155,3,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:$(95156,3,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:$(95157,3,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:$(95158,3,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:$(95159,3,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:$(95160,3,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:$(95161,3,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:$(95162,3,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:$(95163,3,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:$(95164,3,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:$(95165,3,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:$(95166,3,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:$(95167,3,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:$(95168,3,"Add_all_missing_attributes_95168","Add all missing attributes"),Add_undefined_to_optional_property_type:$(95169,3,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:$(95170,3,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:$(95171,3,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:$(95172,3,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:$(95173,3,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),Use_0:$(95174,3,"Use_0_95174","Use `{0}`."),Use_Number_isNaN_in_all_conditions:$(95175,3,"Use_Number_isNaN_in_all_conditions_95175","Use `Number.isNaN` in all conditions."),Convert_typedef_to_TypeScript_type:$(95176,3,"Convert_typedef_to_TypeScript_type_95176","Convert typedef to TypeScript type."),Convert_all_typedef_to_TypeScript_types:$(95177,3,"Convert_all_typedef_to_TypeScript_types_95177","Convert all typedef to TypeScript types."),Move_to_file:$(95178,3,"Move_to_file_95178","Move to file"),Cannot_move_to_file_selected_file_is_invalid:$(95179,3,"Cannot_move_to_file_selected_file_is_invalid_95179","Cannot move to file, selected file is invalid"),Use_import_type:$(95180,3,"Use_import_type_95180","Use 'import type'"),Use_type_0:$(95181,3,"Use_type_0_95181","Use 'type {0}'"),Fix_all_with_type_only_imports:$(95182,3,"Fix_all_with_type_only_imports_95182","Fix all with type-only imports"),Cannot_move_statements_to_the_selected_file:$(95183,3,"Cannot_move_statements_to_the_selected_file_95183","Cannot move statements to the selected file"),Inline_variable:$(95184,3,"Inline_variable_95184","Inline variable"),Could_not_find_variable_to_inline:$(95185,3,"Could_not_find_variable_to_inline_95185","Could not find variable to inline."),Variables_with_multiple_declarations_cannot_be_inlined:$(95186,3,"Variables_with_multiple_declarations_cannot_be_inlined_95186","Variables with multiple declarations cannot be inlined."),Add_missing_comma_for_object_member_completion_0:$(95187,3,"Add_missing_comma_for_object_member_completion_0_95187","Add missing comma for object member completion '{0}'."),Add_missing_parameter_to_0:$(95188,3,"Add_missing_parameter_to_0_95188","Add missing parameter to '{0}'"),Add_missing_parameters_to_0:$(95189,3,"Add_missing_parameters_to_0_95189","Add missing parameters to '{0}'"),Add_all_missing_parameters:$(95190,3,"Add_all_missing_parameters_95190","Add all missing parameters"),Add_optional_parameter_to_0:$(95191,3,"Add_optional_parameter_to_0_95191","Add optional parameter to '{0}'"),Add_optional_parameters_to_0:$(95192,3,"Add_optional_parameters_to_0_95192","Add optional parameters to '{0}'"),Add_all_optional_parameters:$(95193,3,"Add_all_optional_parameters_95193","Add all optional parameters"),Wrap_in_parentheses:$(95194,3,"Wrap_in_parentheses_95194","Wrap in parentheses"),Wrap_all_invalid_decorator_expressions_in_parentheses:$(95195,3,"Wrap_all_invalid_decorator_expressions_in_parentheses_95195","Wrap all invalid decorator expressions in parentheses"),Add_resolution_mode_import_attribute:$(95196,3,"Add_resolution_mode_import_attribute_95196","Add 'resolution-mode' import attribute"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:$(95197,3,"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197","Add 'resolution-mode' import attribute to all type-only imports that need it"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:$(18004,1,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:$(18006,1,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:$(18007,1,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:$(18009,1,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:$(18010,1,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:$(18011,1,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:$(18012,1,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:$(18013,1,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:$(18014,1,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:$(18015,1,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:$(18016,1,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:$(18017,1,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:$(18018,1,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:$(18019,1,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:$(18024,1,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:$(18026,1,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:$(18027,1,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18028,1,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:$(18029,1,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:$(18030,1,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:$(18031,1,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:$(18032,1,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:$(18033,1,"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033","Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:$(18034,3,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:$(18035,1,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:$(18036,1,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),await_expression_cannot_be_used_inside_a_class_static_block:$(18037,1,"await_expression_cannot_be_used_inside_a_class_static_block_18037","'await' expression cannot be used inside a class static block."),for_await_loops_cannot_be_used_inside_a_class_static_block:$(18038,1,"for_await_loops_cannot_be_used_inside_a_class_static_block_18038","'for await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:$(18039,1,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:$(18041,1,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block."),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:$(18042,1,"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042","'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),Types_cannot_appear_in_export_declarations_in_JavaScript_files:$(18043,1,"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043","Types cannot appear in export declarations in JavaScript files."),_0_is_automatically_exported_here:$(18044,3,"_0_is_automatically_exported_here_18044","'{0}' is automatically exported here."),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18045,1,"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045","Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),_0_is_of_type_unknown:$(18046,1,"_0_is_of_type_unknown_18046","'{0}' is of type 'unknown'."),_0_is_possibly_null:$(18047,1,"_0_is_possibly_null_18047","'{0}' is possibly 'null'."),_0_is_possibly_undefined:$(18048,1,"_0_is_possibly_undefined_18048","'{0}' is possibly 'undefined'."),_0_is_possibly_null_or_undefined:$(18049,1,"_0_is_possibly_null_or_undefined_18049","'{0}' is possibly 'null' or 'undefined'."),The_value_0_cannot_be_used_here:$(18050,1,"The_value_0_cannot_be_used_here_18050","The value '{0}' cannot be used here."),Compiler_option_0_cannot_be_given_an_empty_string:$(18051,1,"Compiler_option_0_cannot_be_given_an_empty_string_18051","Compiler option '{0}' cannot be given an empty string."),Its_type_0_is_not_a_valid_JSX_element_type:$(18053,1,"Its_type_0_is_not_a_valid_JSX_element_type_18053","Its type '{0}' is not a valid JSX element type."),await_using_statements_cannot_be_used_inside_a_class_static_block:$(18054,1,"await_using_statements_cannot_be_used_inside_a_class_static_block_18054","'await using' statements cannot be used inside a class static block."),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:$(18055,1,"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055","'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled."),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:$(18056,1,"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056","Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled."),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:$(18057,1,"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057","String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.")};function H1(e){return e>=80}function S7a(e){return e===32||H1(e)}var LNr={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},v7a=new Map(Object.entries(LNr)),gvi=new Map(Object.entries({...LNr,"{":19,"}":20,"(":21,")":22,"[":23,"]":24,".":25,"...":26,";":27,",":28,"<":30,">":32,"<=":33,">=":34,"==":35,"!=":36,"===":37,"!==":38,"=>":39,"+":40,"-":41,"**":43,"*":42,"/":44,"%":45,"++":46,"--":47,"<<":48,">":49,">>>":50,"&":51,"|":52,"^":53,"!":54,"~":55,"&&":56,"||":57,"?":58,"??":61,"?.":29,":":59,"=":64,"+=":65,"-=":66,"*=":67,"**=":68,"/=":69,"%=":70,"<<=":71,">>=":72,">>>=":73,"&=":74,"|=":75,"^=":79,"||=":76,"&&=":77,"??=":78,"@":60,"#":63,"`":62})),Avi=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),B7a=new Map([[1,tJe.RegularExpressionFlagsHasIndices],[16,tJe.RegularExpressionFlagsDotAll],[32,tJe.RegularExpressionFlagsUnicode],[64,tJe.RegularExpressionFlagsUnicodeSets],[128,tJe.RegularExpressionFlagsSticky]]),w7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],T7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],R7a=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],N7a=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],D7a=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,k7a=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/,x7a=/@(?:see|link)/i;function Ybt(e,t){if(e=2?Ybt(e,R7a):Ybt(e,w7a)}function F7a(e,t){return t>=2?Ybt(e,N7a):Ybt(e,T7a)}function dvi(e){let t=[];return e.forEach((r,n)=>{t[r]=n}),t}var Z7a=dvi(gvi);function by(e){return Z7a[e]}function pvi(e){return gvi.get(e)}var ETu=dvi(Avi);function x2i(e){return Avi.get(e)}function fvi(e){let t=[],r=0,n=0;for(;r127&&CV(a)&&(t.push(n),n=r);break}}return t.push(n),t}function L7a(e,t,r,n,a){(t<0||t>=e.length)&&(a?t=t<0?0:t>=e.length?e.length-1:t:Zo.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${n!==void 0?O6a(e,fvi(n)):"unknown"}`));let o=e[t]+r;return a?o>e[t+1]?e[t+1]:typeof n=="string"&&o>n.length?n.length:o:(t=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function CV(e){return e===10||e===13||e===8232||e===8233}function mce(e){return e>=48&&e<=57}function XRr(e){return mce(e)||e>=65&&e<=70||e>=97&&e<=102}function VNr(e){return e>=65&&e<=90||e>=97&&e<=122}function hvi(e){return VNr(e)||mce(e)||e===95}function JRr(e){return e>=48&&e<=55}function dj(e,t,r,n,a){if(bJe(t))return t;let o=!1;for(;;){let l=e.charCodeAt(t);switch(l){case 13:e.charCodeAt(t+1)===10&&t++;case 10:if(t++,r)return t;o=!!a;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(n)break;if(e.charCodeAt(t+1)===47){for(t+=2;t127&&BNe(l)){t++;continue}break}return t}}var Zbt=7;function Gme(e,t){if(Zo.assert(t>=0),t===0||CV(e.charCodeAt(t-1))){let r=e.charCodeAt(t);if(t+Zbt=0&&r127&&BNe(B)){b&&CV(B)&&(C=!0),r++;continue}break e}}return b&&(N=a(A,f,I,C,o,N)),N}function W7a(e,t,r,n){return $bt(!1,e,t,!1,r,n)}function O7a(e,t,r,n){return $bt(!1,e,t,!0,r,n)}function M7a(e,t,r,n,a){return $bt(!0,e,t,!1,r,n,a)}function H7a(e,t,r,n,a){return $bt(!0,e,t,!0,r,n,a)}function _vi(e,t,r,n,a,o=[]){return o.push({kind:r,pos:e,end:t,hasTrailingNewLine:n}),o}function lNr(e,t){return M7a(e,t,_vi,void 0,void 0)}function Y7a(e,t){return H7a(e,t,_vi,void 0,void 0)}function yvi(e){let t=PNr.exec(e);if(t)return t[0]}function i4(e,t){return VNr(e)||e===36||e===95||e>127&&G7a(e,t)}function See(e,t,r){return hvi(e)||e===36||(r===1?e===45||e===58:!1)||e>127&&F7a(e,t)}function Q7a(e,t,r){let n=Fme(e,0);if(!i4(n,t))return!1;for(let a=xR(n);aC,getStartPos:()=>C,getTokenEnd:()=>f,getTextPos:()=>f,getToken:()=>E,getTokenStart:()=>b,getTokenPos:()=>b,getTokenText:()=>A.substring(b,f),getTokenValue:()=>N,hasUnicodeEscape:()=>(B&1024)!==0,hasExtendedUnicodeEscape:()=>(B&8)!==0,hasPrecedingLineBreak:()=>(B&1)!==0,hasPrecedingJSDocComment:()=>(B&2)!==0,hasPrecedingJSDocLeadingAsterisks:()=>(B&32768)!==0,isIdentifier:()=>E===80||E>118,isReservedWord:()=>E>=83&&E<=118,isUnterminated:()=>(B&4)!==0,getCommentDirectives:()=>F,getNumericLiteralFlags:()=>B&25584,getTokenFlags:()=>B,reScanGreaterToken:qr,reScanAsteriskEqualsToken:_n,reScanSlashToken:ke,reScanTemplateToken:po,reScanTemplateHeadOrNoSubstitutionTemplate:Vr,scanJsxIdentifier:cl,scanJsxAttributeValue:Sc,reScanJsxAttributeValue:Hr,reScanJsxToken:xi,reScanLessThanToken:io,reScanHashToken:ga,reScanQuestionToken:Ya,reScanInvalidIdentifier:cr,scanJsxToken:Gc,scanJsDocToken:Ft,scanJSDocCommentTextToken:Wr,scan:Xt,getText:ps,clearCommentDirectives:yo,setText:bo,setScriptTarget:gc,setLanguageVariant:Cg,setScriptKind:Nc,setJSDocParsingMode:iA,setOnError:Qa,resetTokenState:ma,setTextPos:ma,setSkipJsDocLeadingAsterisks:vu,tryScan:Qi,lookAhead:Or,scanRange:Rn};return Zo.isDebugging&&Object.defineProperty(ne,"__debugShowCurrentPositionInText",{get:()=>{let li=ne.getText();return li.slice(0,ne.getTokenFullStart())+"\u2551"+li.slice(ne.getTokenFullStart())}}),ne;function ce(li){return Fme(A,li)}function fe(li){return li>=0&&li=0&&li=65&&Wc<=70)Wc+=32;else if(!(Wc>=48&&Wc<=57||Wc>=97&&Wc<=102))break;Xa.push(Wc),f++,Yl=!1}return Xa.length=I){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}let ac=ue(f);if(ac===Ei){Ps+=A.substring(Xa,f),f++;break}if(ac===92&&!li){Ps+=A.substring(Xa,f),Ps+=Yt(3),Xa=f;continue}if((ac===10||ac===13)&&!li){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}f++}return Ps}function At(li){let Ei=ue(f)===96;f++;let Ps=f,Xa="",ac;for(;;){if(f>=I){Xa+=A.substring(Ps,f),B|=4,be(ts.Unterminated_template_literal),ac=Ei?15:18;break}let Yl=ue(f);if(Yl===96){Xa+=A.substring(Ps,f),f++,ac=Ei?15:18;break}if(Yl===36&&f+10?Wt.repeat(Hu):"";let Ru="";for(;Ru.length{},u7a=()=>{},Fbt,Tp=(e=>(e[e.Unknown=0]="Unknown",e[e.EndOfFileToken=1]="EndOfFileToken",e[e.SingleLineCommentTrivia=2]="SingleLineCommentTrivia",e[e.MultiLineCommentTrivia=3]="MultiLineCommentTrivia",e[e.NewLineTrivia=4]="NewLineTrivia",e[e.WhitespaceTrivia=5]="WhitespaceTrivia",e[e.ShebangTrivia=6]="ShebangTrivia",e[e.ConflictMarkerTrivia=7]="ConflictMarkerTrivia",e[e.NonTextFileMarkerTrivia=8]="NonTextFileMarkerTrivia",e[e.NumericLiteral=9]="NumericLiteral",e[e.BigIntLiteral=10]="BigIntLiteral",e[e.StringLiteral=11]="StringLiteral",e[e.JsxText=12]="JsxText",e[e.JsxTextAllWhiteSpaces=13]="JsxTextAllWhiteSpaces",e[e.RegularExpressionLiteral=14]="RegularExpressionLiteral",e[e.NoSubstitutionTemplateLiteral=15]="NoSubstitutionTemplateLiteral",e[e.TemplateHead=16]="TemplateHead",e[e.TemplateMiddle=17]="TemplateMiddle",e[e.TemplateTail=18]="TemplateTail",e[e.OpenBraceToken=19]="OpenBraceToken",e[e.CloseBraceToken=20]="CloseBraceToken",e[e.OpenParenToken=21]="OpenParenToken",e[e.CloseParenToken=22]="CloseParenToken",e[e.OpenBracketToken=23]="OpenBracketToken",e[e.CloseBracketToken=24]="CloseBracketToken",e[e.DotToken=25]="DotToken",e[e.DotDotDotToken=26]="DotDotDotToken",e[e.SemicolonToken=27]="SemicolonToken",e[e.CommaToken=28]="CommaToken",e[e.QuestionDotToken=29]="QuestionDotToken",e[e.LessThanToken=30]="LessThanToken",e[e.LessThanSlashToken=31]="LessThanSlashToken",e[e.GreaterThanToken=32]="GreaterThanToken",e[e.LessThanEqualsToken=33]="LessThanEqualsToken",e[e.GreaterThanEqualsToken=34]="GreaterThanEqualsToken",e[e.EqualsEqualsToken=35]="EqualsEqualsToken",e[e.ExclamationEqualsToken=36]="ExclamationEqualsToken",e[e.EqualsEqualsEqualsToken=37]="EqualsEqualsEqualsToken",e[e.ExclamationEqualsEqualsToken=38]="ExclamationEqualsEqualsToken",e[e.EqualsGreaterThanToken=39]="EqualsGreaterThanToken",e[e.PlusToken=40]="PlusToken",e[e.MinusToken=41]="MinusToken",e[e.AsteriskToken=42]="AsteriskToken",e[e.AsteriskAsteriskToken=43]="AsteriskAsteriskToken",e[e.SlashToken=44]="SlashToken",e[e.PercentToken=45]="PercentToken",e[e.PlusPlusToken=46]="PlusPlusToken",e[e.MinusMinusToken=47]="MinusMinusToken",e[e.LessThanLessThanToken=48]="LessThanLessThanToken",e[e.GreaterThanGreaterThanToken=49]="GreaterThanGreaterThanToken",e[e.GreaterThanGreaterThanGreaterThanToken=50]="GreaterThanGreaterThanGreaterThanToken",e[e.AmpersandToken=51]="AmpersandToken",e[e.BarToken=52]="BarToken",e[e.CaretToken=53]="CaretToken",e[e.ExclamationToken=54]="ExclamationToken",e[e.TildeToken=55]="TildeToken",e[e.AmpersandAmpersandToken=56]="AmpersandAmpersandToken",e[e.BarBarToken=57]="BarBarToken",e[e.QuestionToken=58]="QuestionToken",e[e.ColonToken=59]="ColonToken",e[e.AtToken=60]="AtToken",e[e.QuestionQuestionToken=61]="QuestionQuestionToken",e[e.BacktickToken=62]="BacktickToken",e[e.HashToken=63]="HashToken",e[e.EqualsToken=64]="EqualsToken",e[e.PlusEqualsToken=65]="PlusEqualsToken",e[e.MinusEqualsToken=66]="MinusEqualsToken",e[e.AsteriskEqualsToken=67]="AsteriskEqualsToken",e[e.AsteriskAsteriskEqualsToken=68]="AsteriskAsteriskEqualsToken",e[e.SlashEqualsToken=69]="SlashEqualsToken",e[e.PercentEqualsToken=70]="PercentEqualsToken",e[e.LessThanLessThanEqualsToken=71]="LessThanLessThanEqualsToken",e[e.GreaterThanGreaterThanEqualsToken=72]="GreaterThanGreaterThanEqualsToken",e[e.GreaterThanGreaterThanGreaterThanEqualsToken=73]="GreaterThanGreaterThanGreaterThanEqualsToken",e[e.AmpersandEqualsToken=74]="AmpersandEqualsToken",e[e.BarEqualsToken=75]="BarEqualsToken",e[e.BarBarEqualsToken=76]="BarBarEqualsToken",e[e.AmpersandAmpersandEqualsToken=77]="AmpersandAmpersandEqualsToken",e[e.QuestionQuestionEqualsToken=78]="QuestionQuestionEqualsToken",e[e.CaretEqualsToken=79]="CaretEqualsToken",e[e.Identifier=80]="Identifier",e[e.PrivateIdentifier=81]="PrivateIdentifier",e[e.JSDocCommentTextToken=82]="JSDocCommentTextToken",e[e.BreakKeyword=83]="BreakKeyword",e[e.CaseKeyword=84]="CaseKeyword",e[e.CatchKeyword=85]="CatchKeyword",e[e.ClassKeyword=86]="ClassKeyword",e[e.ConstKeyword=87]="ConstKeyword",e[e.ContinueKeyword=88]="ContinueKeyword",e[e.DebuggerKeyword=89]="DebuggerKeyword",e[e.DefaultKeyword=90]="DefaultKeyword",e[e.DeleteKeyword=91]="DeleteKeyword",e[e.DoKeyword=92]="DoKeyword",e[e.ElseKeyword=93]="ElseKeyword",e[e.EnumKeyword=94]="EnumKeyword",e[e.ExportKeyword=95]="ExportKeyword",e[e.ExtendsKeyword=96]="ExtendsKeyword",e[e.FalseKeyword=97]="FalseKeyword",e[e.FinallyKeyword=98]="FinallyKeyword",e[e.ForKeyword=99]="ForKeyword",e[e.FunctionKeyword=100]="FunctionKeyword",e[e.IfKeyword=101]="IfKeyword",e[e.ImportKeyword=102]="ImportKeyword",e[e.InKeyword=103]="InKeyword",e[e.InstanceOfKeyword=104]="InstanceOfKeyword",e[e.NewKeyword=105]="NewKeyword",e[e.NullKeyword=106]="NullKeyword",e[e.ReturnKeyword=107]="ReturnKeyword",e[e.SuperKeyword=108]="SuperKeyword",e[e.SwitchKeyword=109]="SwitchKeyword",e[e.ThisKeyword=110]="ThisKeyword",e[e.ThrowKeyword=111]="ThrowKeyword",e[e.TrueKeyword=112]="TrueKeyword",e[e.TryKeyword=113]="TryKeyword",e[e.TypeOfKeyword=114]="TypeOfKeyword",e[e.VarKeyword=115]="VarKeyword",e[e.VoidKeyword=116]="VoidKeyword",e[e.WhileKeyword=117]="WhileKeyword",e[e.WithKeyword=118]="WithKeyword",e[e.ImplementsKeyword=119]="ImplementsKeyword",e[e.InterfaceKeyword=120]="InterfaceKeyword",e[e.LetKeyword=121]="LetKeyword",e[e.PackageKeyword=122]="PackageKeyword",e[e.PrivateKeyword=123]="PrivateKeyword",e[e.ProtectedKeyword=124]="ProtectedKeyword",e[e.PublicKeyword=125]="PublicKeyword",e[e.StaticKeyword=126]="StaticKeyword",e[e.YieldKeyword=127]="YieldKeyword",e[e.AbstractKeyword=128]="AbstractKeyword",e[e.AccessorKeyword=129]="AccessorKeyword",e[e.AsKeyword=130]="AsKeyword",e[e.AssertsKeyword=131]="AssertsKeyword",e[e.AssertKeyword=132]="AssertKeyword",e[e.AnyKeyword=133]="AnyKeyword",e[e.AsyncKeyword=134]="AsyncKeyword",e[e.AwaitKeyword=135]="AwaitKeyword",e[e.BooleanKeyword=136]="BooleanKeyword",e[e.ConstructorKeyword=137]="ConstructorKeyword",e[e.DeclareKeyword=138]="DeclareKeyword",e[e.GetKeyword=139]="GetKeyword",e[e.InferKeyword=140]="InferKeyword",e[e.IntrinsicKeyword=141]="IntrinsicKeyword",e[e.IsKeyword=142]="IsKeyword",e[e.KeyOfKeyword=143]="KeyOfKeyword",e[e.ModuleKeyword=144]="ModuleKeyword",e[e.NamespaceKeyword=145]="NamespaceKeyword",e[e.NeverKeyword=146]="NeverKeyword",e[e.OutKeyword=147]="OutKeyword",e[e.ReadonlyKeyword=148]="ReadonlyKeyword",e[e.RequireKeyword=149]="RequireKeyword",e[e.NumberKeyword=150]="NumberKeyword",e[e.ObjectKeyword=151]="ObjectKeyword",e[e.SatisfiesKeyword=152]="SatisfiesKeyword",e[e.SetKeyword=153]="SetKeyword",e[e.StringKeyword=154]="StringKeyword",e[e.SymbolKeyword=155]="SymbolKeyword",e[e.TypeKeyword=156]="TypeKeyword",e[e.UndefinedKeyword=157]="UndefinedKeyword",e[e.UniqueKeyword=158]="UniqueKeyword",e[e.UnknownKeyword=159]="UnknownKeyword",e[e.UsingKeyword=160]="UsingKeyword",e[e.FromKeyword=161]="FromKeyword",e[e.GlobalKeyword=162]="GlobalKeyword",e[e.BigIntKeyword=163]="BigIntKeyword",e[e.OverrideKeyword=164]="OverrideKeyword",e[e.OfKeyword=165]="OfKeyword",e[e.QualifiedName=166]="QualifiedName",e[e.ComputedPropertyName=167]="ComputedPropertyName",e[e.TypeParameter=168]="TypeParameter",e[e.Parameter=169]="Parameter",e[e.Decorator=170]="Decorator",e[e.PropertySignature=171]="PropertySignature",e[e.PropertyDeclaration=172]="PropertyDeclaration",e[e.MethodSignature=173]="MethodSignature",e[e.MethodDeclaration=174]="MethodDeclaration",e[e.ClassStaticBlockDeclaration=175]="ClassStaticBlockDeclaration",e[e.Constructor=176]="Constructor",e[e.GetAccessor=177]="GetAccessor",e[e.SetAccessor=178]="SetAccessor",e[e.CallSignature=179]="CallSignature",e[e.ConstructSignature=180]="ConstructSignature",e[e.IndexSignature=181]="IndexSignature",e[e.TypePredicate=182]="TypePredicate",e[e.TypeReference=183]="TypeReference",e[e.FunctionType=184]="FunctionType",e[e.ConstructorType=185]="ConstructorType",e[e.TypeQuery=186]="TypeQuery",e[e.TypeLiteral=187]="TypeLiteral",e[e.ArrayType=188]="ArrayType",e[e.TupleType=189]="TupleType",e[e.OptionalType=190]="OptionalType",e[e.RestType=191]="RestType",e[e.UnionType=192]="UnionType",e[e.IntersectionType=193]="IntersectionType",e[e.ConditionalType=194]="ConditionalType",e[e.InferType=195]="InferType",e[e.ParenthesizedType=196]="ParenthesizedType",e[e.ThisType=197]="ThisType",e[e.TypeOperator=198]="TypeOperator",e[e.IndexedAccessType=199]="IndexedAccessType",e[e.MappedType=200]="MappedType",e[e.LiteralType=201]="LiteralType",e[e.NamedTupleMember=202]="NamedTupleMember",e[e.TemplateLiteralType=203]="TemplateLiteralType",e[e.TemplateLiteralTypeSpan=204]="TemplateLiteralTypeSpan",e[e.ImportType=205]="ImportType",e[e.ObjectBindingPattern=206]="ObjectBindingPattern",e[e.ArrayBindingPattern=207]="ArrayBindingPattern",e[e.BindingElement=208]="BindingElement",e[e.ArrayLiteralExpression=209]="ArrayLiteralExpression",e[e.ObjectLiteralExpression=210]="ObjectLiteralExpression",e[e.PropertyAccessExpression=211]="PropertyAccessExpression",e[e.ElementAccessExpression=212]="ElementAccessExpression",e[e.CallExpression=213]="CallExpression",e[e.NewExpression=214]="NewExpression",e[e.TaggedTemplateExpression=215]="TaggedTemplateExpression",e[e.TypeAssertionExpression=216]="TypeAssertionExpression",e[e.ParenthesizedExpression=217]="ParenthesizedExpression",e[e.FunctionExpression=218]="FunctionExpression",e[e.ArrowFunction=219]="ArrowFunction",e[e.DeleteExpression=220]="DeleteExpression",e[e.TypeOfExpression=221]="TypeOfExpression",e[e.VoidExpression=222]="VoidExpression",e[e.AwaitExpression=223]="AwaitExpression",e[e.PrefixUnaryExpression=224]="PrefixUnaryExpression",e[e.PostfixUnaryExpression=225]="PostfixUnaryExpression",e[e.BinaryExpression=226]="BinaryExpression",e[e.ConditionalExpression=227]="ConditionalExpression",e[e.TemplateExpression=228]="TemplateExpression",e[e.YieldExpression=229]="YieldExpression",e[e.SpreadElement=230]="SpreadElement",e[e.ClassExpression=231]="ClassExpression",e[e.OmittedExpression=232]="OmittedExpression",e[e.ExpressionWithTypeArguments=233]="ExpressionWithTypeArguments",e[e.AsExpression=234]="AsExpression",e[e.NonNullExpression=235]="NonNullExpression",e[e.MetaProperty=236]="MetaProperty",e[e.SyntheticExpression=237]="SyntheticExpression",e[e.SatisfiesExpression=238]="SatisfiesExpression",e[e.TemplateSpan=239]="TemplateSpan",e[e.SemicolonClassElement=240]="SemicolonClassElement",e[e.Block=241]="Block",e[e.EmptyStatement=242]="EmptyStatement",e[e.VariableStatement=243]="VariableStatement",e[e.ExpressionStatement=244]="ExpressionStatement",e[e.IfStatement=245]="IfStatement",e[e.DoStatement=246]="DoStatement",e[e.WhileStatement=247]="WhileStatement",e[e.ForStatement=248]="ForStatement",e[e.ForInStatement=249]="ForInStatement",e[e.ForOfStatement=250]="ForOfStatement",e[e.ContinueStatement=251]="ContinueStatement",e[e.BreakStatement=252]="BreakStatement",e[e.ReturnStatement=253]="ReturnStatement",e[e.WithStatement=254]="WithStatement",e[e.SwitchStatement=255]="SwitchStatement",e[e.LabeledStatement=256]="LabeledStatement",e[e.ThrowStatement=257]="ThrowStatement",e[e.TryStatement=258]="TryStatement",e[e.DebuggerStatement=259]="DebuggerStatement",e[e.VariableDeclaration=260]="VariableDeclaration",e[e.VariableDeclarationList=261]="VariableDeclarationList",e[e.FunctionDeclaration=262]="FunctionDeclaration",e[e.ClassDeclaration=263]="ClassDeclaration",e[e.InterfaceDeclaration=264]="InterfaceDeclaration",e[e.TypeAliasDeclaration=265]="TypeAliasDeclaration",e[e.EnumDeclaration=266]="EnumDeclaration",e[e.ModuleDeclaration=267]="ModuleDeclaration",e[e.ModuleBlock=268]="ModuleBlock",e[e.CaseBlock=269]="CaseBlock",e[e.NamespaceExportDeclaration=270]="NamespaceExportDeclaration",e[e.ImportEqualsDeclaration=271]="ImportEqualsDeclaration",e[e.ImportDeclaration=272]="ImportDeclaration",e[e.ImportClause=273]="ImportClause",e[e.NamespaceImport=274]="NamespaceImport",e[e.NamedImports=275]="NamedImports",e[e.ImportSpecifier=276]="ImportSpecifier",e[e.ExportAssignment=277]="ExportAssignment",e[e.ExportDeclaration=278]="ExportDeclaration",e[e.NamedExports=279]="NamedExports",e[e.NamespaceExport=280]="NamespaceExport",e[e.ExportSpecifier=281]="ExportSpecifier",e[e.MissingDeclaration=282]="MissingDeclaration",e[e.ExternalModuleReference=283]="ExternalModuleReference",e[e.JsxElement=284]="JsxElement",e[e.JsxSelfClosingElement=285]="JsxSelfClosingElement",e[e.JsxOpeningElement=286]="JsxOpeningElement",e[e.JsxClosingElement=287]="JsxClosingElement",e[e.JsxFragment=288]="JsxFragment",e[e.JsxOpeningFragment=289]="JsxOpeningFragment",e[e.JsxClosingFragment=290]="JsxClosingFragment",e[e.JsxAttribute=291]="JsxAttribute",e[e.JsxAttributes=292]="JsxAttributes",e[e.JsxSpreadAttribute=293]="JsxSpreadAttribute",e[e.JsxExpression=294]="JsxExpression",e[e.JsxNamespacedName=295]="JsxNamespacedName",e[e.CaseClause=296]="CaseClause",e[e.DefaultClause=297]="DefaultClause",e[e.HeritageClause=298]="HeritageClause",e[e.CatchClause=299]="CatchClause",e[e.ImportAttributes=300]="ImportAttributes",e[e.ImportAttribute=301]="ImportAttribute",e[e.AssertClause=300]="AssertClause",e[e.AssertEntry=301]="AssertEntry",e[e.ImportTypeAssertionContainer=302]="ImportTypeAssertionContainer",e[e.PropertyAssignment=303]="PropertyAssignment",e[e.ShorthandPropertyAssignment=304]="ShorthandPropertyAssignment",e[e.SpreadAssignment=305]="SpreadAssignment",e[e.EnumMember=306]="EnumMember",e[e.SourceFile=307]="SourceFile",e[e.Bundle=308]="Bundle",e[e.JSDocTypeExpression=309]="JSDocTypeExpression",e[e.JSDocNameReference=310]="JSDocNameReference",e[e.JSDocMemberName=311]="JSDocMemberName",e[e.JSDocAllType=312]="JSDocAllType",e[e.JSDocUnknownType=313]="JSDocUnknownType",e[e.JSDocNullableType=314]="JSDocNullableType",e[e.JSDocNonNullableType=315]="JSDocNonNullableType",e[e.JSDocOptionalType=316]="JSDocOptionalType",e[e.JSDocFunctionType=317]="JSDocFunctionType",e[e.JSDocVariadicType=318]="JSDocVariadicType",e[e.JSDocNamepathType=319]="JSDocNamepathType",e[e.JSDoc=320]="JSDoc",e[e.JSDocComment=320]="JSDocComment",e[e.JSDocText=321]="JSDocText",e[e.JSDocTypeLiteral=322]="JSDocTypeLiteral",e[e.JSDocSignature=323]="JSDocSignature",e[e.JSDocLink=324]="JSDocLink",e[e.JSDocLinkCode=325]="JSDocLinkCode",e[e.JSDocLinkPlain=326]="JSDocLinkPlain",e[e.JSDocTag=327]="JSDocTag",e[e.JSDocAugmentsTag=328]="JSDocAugmentsTag",e[e.JSDocImplementsTag=329]="JSDocImplementsTag",e[e.JSDocAuthorTag=330]="JSDocAuthorTag",e[e.JSDocDeprecatedTag=331]="JSDocDeprecatedTag",e[e.JSDocClassTag=332]="JSDocClassTag",e[e.JSDocPublicTag=333]="JSDocPublicTag",e[e.JSDocPrivateTag=334]="JSDocPrivateTag",e[e.JSDocProtectedTag=335]="JSDocProtectedTag",e[e.JSDocReadonlyTag=336]="JSDocReadonlyTag",e[e.JSDocOverrideTag=337]="JSDocOverrideTag",e[e.JSDocCallbackTag=338]="JSDocCallbackTag",e[e.JSDocOverloadTag=339]="JSDocOverloadTag",e[e.JSDocEnumTag=340]="JSDocEnumTag",e[e.JSDocParameterTag=341]="JSDocParameterTag",e[e.JSDocReturnTag=342]="JSDocReturnTag",e[e.JSDocThisTag=343]="JSDocThisTag",e[e.JSDocTypeTag=344]="JSDocTypeTag",e[e.JSDocTemplateTag=345]="JSDocTemplateTag",e[e.JSDocTypedefTag=346]="JSDocTypedefTag",e[e.JSDocSeeTag=347]="JSDocSeeTag",e[e.JSDocPropertyTag=348]="JSDocPropertyTag",e[e.JSDocThrowsTag=349]="JSDocThrowsTag",e[e.JSDocSatisfiesTag=350]="JSDocSatisfiesTag",e[e.JSDocImportTag=351]="JSDocImportTag",e[e.SyntaxList=352]="SyntaxList",e[e.NotEmittedStatement=353]="NotEmittedStatement",e[e.NotEmittedTypeElement=354]="NotEmittedTypeElement",e[e.PartiallyEmittedExpression=355]="PartiallyEmittedExpression",e[e.CommaListExpression=356]="CommaListExpression",e[e.SyntheticReferenceExpression=357]="SyntheticReferenceExpression",e[e.Count=358]="Count",e[e.FirstAssignment=64]="FirstAssignment",e[e.LastAssignment=79]="LastAssignment",e[e.FirstCompoundAssignment=65]="FirstCompoundAssignment",e[e.LastCompoundAssignment=79]="LastCompoundAssignment",e[e.FirstReservedWord=83]="FirstReservedWord",e[e.LastReservedWord=118]="LastReservedWord",e[e.FirstKeyword=83]="FirstKeyword",e[e.LastKeyword=165]="LastKeyword",e[e.FirstFutureReservedWord=119]="FirstFutureReservedWord",e[e.LastFutureReservedWord=127]="LastFutureReservedWord",e[e.FirstTypeNode=182]="FirstTypeNode",e[e.LastTypeNode=205]="LastTypeNode",e[e.FirstPunctuation=19]="FirstPunctuation",e[e.LastPunctuation=79]="LastPunctuation",e[e.FirstToken=0]="FirstToken",e[e.LastToken=165]="LastToken",e[e.FirstTriviaToken=2]="FirstTriviaToken",e[e.LastTriviaToken=7]="LastTriviaToken",e[e.FirstLiteralToken=9]="FirstLiteralToken",e[e.LastLiteralToken=15]="LastLiteralToken",e[e.FirstTemplateToken=15]="FirstTemplateToken",e[e.LastTemplateToken=18]="LastTemplateToken",e[e.FirstBinaryOperator=30]="FirstBinaryOperator",e[e.LastBinaryOperator=79]="LastBinaryOperator",e[e.FirstStatement=243]="FirstStatement",e[e.LastStatement=259]="LastStatement",e[e.FirstNode=166]="FirstNode",e[e.FirstJSDocNode=309]="FirstJSDocNode",e[e.LastJSDocNode=351]="LastJSDocNode",e[e.FirstJSDocTagNode=327]="FirstJSDocTagNode",e[e.LastJSDocTagNode=351]="LastJSDocTagNode",e[e.FirstContextualKeyword=128]="FirstContextualKeyword",e[e.LastContextualKeyword=165]="LastContextualKeyword",e))(Tp||{}),IO=(e=>(e[e.None=0]="None",e[e.Let=1]="Let",e[e.Const=2]="Const",e[e.Using=4]="Using",e[e.AwaitUsing=6]="AwaitUsing",e[e.NestedNamespace=8]="NestedNamespace",e[e.Synthesized=16]="Synthesized",e[e.Namespace=32]="Namespace",e[e.OptionalChain=64]="OptionalChain",e[e.ExportContext=128]="ExportContext",e[e.ContainsThis=256]="ContainsThis",e[e.HasImplicitReturn=512]="HasImplicitReturn",e[e.HasExplicitReturn=1024]="HasExplicitReturn",e[e.GlobalAugmentation=2048]="GlobalAugmentation",e[e.HasAsyncFunctions=4096]="HasAsyncFunctions",e[e.DisallowInContext=8192]="DisallowInContext",e[e.YieldContext=16384]="YieldContext",e[e.DecoratorContext=32768]="DecoratorContext",e[e.AwaitContext=65536]="AwaitContext",e[e.DisallowConditionalTypesContext=131072]="DisallowConditionalTypesContext",e[e.ThisNodeHasError=262144]="ThisNodeHasError",e[e.JavaScriptFile=524288]="JavaScriptFile",e[e.ThisNodeOrAnySubNodesHasError=1048576]="ThisNodeOrAnySubNodesHasError",e[e.HasAggregatedChildData=2097152]="HasAggregatedChildData",e[e.PossiblyContainsDynamicImport=4194304]="PossiblyContainsDynamicImport",e[e.PossiblyContainsImportMeta=8388608]="PossiblyContainsImportMeta",e[e.JSDoc=16777216]="JSDoc",e[e.Ambient=33554432]="Ambient",e[e.InWithStatement=67108864]="InWithStatement",e[e.JsonFile=134217728]="JsonFile",e[e.TypeCached=268435456]="TypeCached",e[e.Deprecated=536870912]="Deprecated",e[e.BlockScoped=7]="BlockScoped",e[e.Constant=6]="Constant",e[e.ReachabilityCheckFlags=1536]="ReachabilityCheckFlags",e[e.ReachabilityAndEmitFlags=5632]="ReachabilityAndEmitFlags",e[e.ContextFlags=101441536]="ContextFlags",e[e.TypeExcludesFlags=81920]="TypeExcludesFlags",e[e.PermanentlySetIncrementalFlags=12582912]="PermanentlySetIncrementalFlags",e[e.IdentifierHasExtendedUnicodeEscape=256]="IdentifierHasExtendedUnicodeEscape",e[e.IdentifierIsInJSDocNamespace=4096]="IdentifierIsInJSDocNamespace",e))(IO||{}),zSi=(e=>(e[e.None=0]="None",e[e.Public=1]="Public",e[e.Private=2]="Private",e[e.Protected=4]="Protected",e[e.Readonly=8]="Readonly",e[e.Override=16]="Override",e[e.Export=32]="Export",e[e.Abstract=64]="Abstract",e[e.Ambient=128]="Ambient",e[e.Static=256]="Static",e[e.Accessor=512]="Accessor",e[e.Async=1024]="Async",e[e.Default=2048]="Default",e[e.Const=4096]="Const",e[e.In=8192]="In",e[e.Out=16384]="Out",e[e.Decorator=32768]="Decorator",e[e.Deprecated=65536]="Deprecated",e[e.JSDocPublic=8388608]="JSDocPublic",e[e.JSDocPrivate=16777216]="JSDocPrivate",e[e.JSDocProtected=33554432]="JSDocProtected",e[e.JSDocReadonly=67108864]="JSDocReadonly",e[e.JSDocOverride=134217728]="JSDocOverride",e[e.SyntacticOrJSDocModifiers=31]="SyntacticOrJSDocModifiers",e[e.SyntacticOnlyModifiers=65504]="SyntacticOnlyModifiers",e[e.SyntacticModifiers=65535]="SyntacticModifiers",e[e.JSDocCacheOnlyModifiers=260046848]="JSDocCacheOnlyModifiers",e[e.JSDocOnlyModifiers=65536]="JSDocOnlyModifiers",e[e.NonCacheOnlyModifiers=131071]="NonCacheOnlyModifiers",e[e.HasComputedJSDocModifiers=268435456]="HasComputedJSDocModifiers",e[e.HasComputedFlags=536870912]="HasComputedFlags",e[e.AccessibilityModifier=7]="AccessibilityModifier",e[e.ParameterPropertyModifier=31]="ParameterPropertyModifier",e[e.NonPublicAccessibilityModifier=6]="NonPublicAccessibilityModifier",e[e.TypeScriptModifier=28895]="TypeScriptModifier",e[e.ExportDefault=2080]="ExportDefault",e[e.All=131071]="All",e[e.Modifier=98303]="Modifier",e))(zSi||{}),qSi=(e=>(e[e.None=0]="None",e[e.Succeeded=1]="Succeeded",e[e.Failed=2]="Failed",e[e.ReportsUnmeasurable=8]="ReportsUnmeasurable",e[e.ReportsUnreliable=16]="ReportsUnreliable",e[e.ReportsMask=24]="ReportsMask",e[e.ComplexityOverflow=32]="ComplexityOverflow",e[e.StackDepthOverflow=64]="StackDepthOverflow",e[e.Overflow=96]="Overflow",e))(qSi||{}),aNr=(e=>(e[e.Unreachable=1]="Unreachable",e[e.Start=2]="Start",e[e.BranchLabel=4]="BranchLabel",e[e.LoopLabel=8]="LoopLabel",e[e.Assignment=16]="Assignment",e[e.TrueCondition=32]="TrueCondition",e[e.FalseCondition=64]="FalseCondition",e[e.SwitchClause=128]="SwitchClause",e[e.ArrayMutation=256]="ArrayMutation",e[e.Call=512]="Call",e[e.ReduceLabel=1024]="ReduceLabel",e[e.Referenced=2048]="Referenced",e[e.Shared=4096]="Shared",e[e.Label=12]="Label",e[e.Condition=96]="Condition",e))(aNr||{}),$Si=(e=>(e[e.None=0]="None",e[e.FunctionScopedVariable=1]="FunctionScopedVariable",e[e.BlockScopedVariable=2]="BlockScopedVariable",e[e.Property=4]="Property",e[e.EnumMember=8]="EnumMember",e[e.Function=16]="Function",e[e.Class=32]="Class",e[e.Interface=64]="Interface",e[e.ConstEnum=128]="ConstEnum",e[e.RegularEnum=256]="RegularEnum",e[e.ValueModule=512]="ValueModule",e[e.NamespaceModule=1024]="NamespaceModule",e[e.TypeLiteral=2048]="TypeLiteral",e[e.ObjectLiteral=4096]="ObjectLiteral",e[e.Method=8192]="Method",e[e.Constructor=16384]="Constructor",e[e.GetAccessor=32768]="GetAccessor",e[e.SetAccessor=65536]="SetAccessor",e[e.Signature=131072]="Signature",e[e.TypeParameter=262144]="TypeParameter",e[e.TypeAlias=524288]="TypeAlias",e[e.ExportValue=1048576]="ExportValue",e[e.Alias=2097152]="Alias",e[e.Prototype=4194304]="Prototype",e[e.ExportStar=8388608]="ExportStar",e[e.Optional=16777216]="Optional",e[e.Transient=33554432]="Transient",e[e.Assignment=67108864]="Assignment",e[e.ModuleExports=134217728]="ModuleExports",e[e.All=-1]="All",e[e.Enum=384]="Enum",e[e.Variable=3]="Variable",e[e.Value=111551]="Value",e[e.Type=788968]="Type",e[e.Namespace=1920]="Namespace",e[e.Module=1536]="Module",e[e.Accessor=98304]="Accessor",e[e.FunctionScopedVariableExcludes=111550]="FunctionScopedVariableExcludes",e[e.BlockScopedVariableExcludes=111551]="BlockScopedVariableExcludes",e[e.ParameterExcludes=111551]="ParameterExcludes",e[e.PropertyExcludes=0]="PropertyExcludes",e[e.EnumMemberExcludes=900095]="EnumMemberExcludes",e[e.FunctionExcludes=110991]="FunctionExcludes",e[e.ClassExcludes=899503]="ClassExcludes",e[e.InterfaceExcludes=788872]="InterfaceExcludes",e[e.RegularEnumExcludes=899327]="RegularEnumExcludes",e[e.ConstEnumExcludes=899967]="ConstEnumExcludes",e[e.ValueModuleExcludes=110735]="ValueModuleExcludes",e[e.NamespaceModuleExcludes=0]="NamespaceModuleExcludes",e[e.MethodExcludes=103359]="MethodExcludes",e[e.GetAccessorExcludes=46015]="GetAccessorExcludes",e[e.SetAccessorExcludes=78783]="SetAccessorExcludes",e[e.AccessorExcludes=13247]="AccessorExcludes",e[e.TypeParameterExcludes=526824]="TypeParameterExcludes",e[e.TypeAliasExcludes=788968]="TypeAliasExcludes",e[e.AliasExcludes=2097152]="AliasExcludes",e[e.ModuleMember=2623475]="ModuleMember",e[e.ExportHasLocal=944]="ExportHasLocal",e[e.BlockScoped=418]="BlockScoped",e[e.PropertyOrAccessor=98308]="PropertyOrAccessor",e[e.ClassMember=106500]="ClassMember",e[e.ExportSupportsDefaultModifier=112]="ExportSupportsDefaultModifier",e[e.ExportDoesNotSupportDefaultModifier=-113]="ExportDoesNotSupportDefaultModifier",e[e.Classifiable=2885600]="Classifiable",e[e.LateBindingContainer=6256]="LateBindingContainer",e))($Si||{}),evi=(e=>(e[e.None=0]="None",e[e.TypeChecked=1]="TypeChecked",e[e.LexicalThis=2]="LexicalThis",e[e.CaptureThis=4]="CaptureThis",e[e.CaptureNewTarget=8]="CaptureNewTarget",e[e.SuperInstance=16]="SuperInstance",e[e.SuperStatic=32]="SuperStatic",e[e.ContextChecked=64]="ContextChecked",e[e.MethodWithSuperPropertyAccessInAsync=128]="MethodWithSuperPropertyAccessInAsync",e[e.MethodWithSuperPropertyAssignmentInAsync=256]="MethodWithSuperPropertyAssignmentInAsync",e[e.CaptureArguments=512]="CaptureArguments",e[e.EnumValuesComputed=1024]="EnumValuesComputed",e[e.LexicalModuleMergesWithClass=2048]="LexicalModuleMergesWithClass",e[e.LoopWithCapturedBlockScopedBinding=4096]="LoopWithCapturedBlockScopedBinding",e[e.ContainsCapturedBlockScopeBinding=8192]="ContainsCapturedBlockScopeBinding",e[e.CapturedBlockScopedBinding=16384]="CapturedBlockScopedBinding",e[e.BlockScopedBindingInLoop=32768]="BlockScopedBindingInLoop",e[e.NeedsLoopOutParameter=65536]="NeedsLoopOutParameter",e[e.AssignmentsMarked=131072]="AssignmentsMarked",e[e.ContainsConstructorReference=262144]="ContainsConstructorReference",e[e.ConstructorReference=536870912]="ConstructorReference",e[e.ContainsClassWithPrivateIdentifiers=1048576]="ContainsClassWithPrivateIdentifiers",e[e.ContainsSuperPropertyInStaticInitializer=2097152]="ContainsSuperPropertyInStaticInitializer",e[e.InCheckIdentifier=4194304]="InCheckIdentifier",e[e.PartiallyTypeChecked=8388608]="PartiallyTypeChecked",e[e.LazyFlags=539358128]="LazyFlags",e))(evi||{}),kG=(e=>(e[e.Any=1]="Any",e[e.Unknown=2]="Unknown",e[e.String=4]="String",e[e.Number=8]="Number",e[e.Boolean=16]="Boolean",e[e.Enum=32]="Enum",e[e.BigInt=64]="BigInt",e[e.StringLiteral=128]="StringLiteral",e[e.NumberLiteral=256]="NumberLiteral",e[e.BooleanLiteral=512]="BooleanLiteral",e[e.EnumLiteral=1024]="EnumLiteral",e[e.BigIntLiteral=2048]="BigIntLiteral",e[e.ESSymbol=4096]="ESSymbol",e[e.UniqueESSymbol=8192]="UniqueESSymbol",e[e.Void=16384]="Void",e[e.Undefined=32768]="Undefined",e[e.Null=65536]="Null",e[e.Never=131072]="Never",e[e.TypeParameter=262144]="TypeParameter",e[e.Object=524288]="Object",e[e.Union=1048576]="Union",e[e.Intersection=2097152]="Intersection",e[e.Index=4194304]="Index",e[e.IndexedAccess=8388608]="IndexedAccess",e[e.Conditional=16777216]="Conditional",e[e.Substitution=33554432]="Substitution",e[e.NonPrimitive=67108864]="NonPrimitive",e[e.TemplateLiteral=134217728]="TemplateLiteral",e[e.StringMapping=268435456]="StringMapping",e[e.Reserved1=536870912]="Reserved1",e[e.Reserved2=1073741824]="Reserved2",e[e.AnyOrUnknown=3]="AnyOrUnknown",e[e.Nullable=98304]="Nullable",e[e.Literal=2944]="Literal",e[e.Unit=109472]="Unit",e[e.Freshable=2976]="Freshable",e[e.StringOrNumberLiteral=384]="StringOrNumberLiteral",e[e.StringOrNumberLiteralOrUnique=8576]="StringOrNumberLiteralOrUnique",e[e.DefinitelyFalsy=117632]="DefinitelyFalsy",e[e.PossiblyFalsy=117724]="PossiblyFalsy",e[e.Intrinsic=67359327]="Intrinsic",e[e.StringLike=402653316]="StringLike",e[e.NumberLike=296]="NumberLike",e[e.BigIntLike=2112]="BigIntLike",e[e.BooleanLike=528]="BooleanLike",e[e.EnumLike=1056]="EnumLike",e[e.ESSymbolLike=12288]="ESSymbolLike",e[e.VoidLike=49152]="VoidLike",e[e.Primitive=402784252]="Primitive",e[e.DefinitelyNonNullable=470302716]="DefinitelyNonNullable",e[e.DisjointDomains=469892092]="DisjointDomains",e[e.UnionOrIntersection=3145728]="UnionOrIntersection",e[e.StructuredType=3670016]="StructuredType",e[e.TypeVariable=8650752]="TypeVariable",e[e.InstantiableNonPrimitive=58982400]="InstantiableNonPrimitive",e[e.InstantiablePrimitive=406847488]="InstantiablePrimitive",e[e.Instantiable=465829888]="Instantiable",e[e.StructuredOrInstantiable=469499904]="StructuredOrInstantiable",e[e.ObjectFlagsType=3899393]="ObjectFlagsType",e[e.Simplifiable=25165824]="Simplifiable",e[e.Singleton=67358815]="Singleton",e[e.Narrowable=536624127]="Narrowable",e[e.IncludesMask=473694207]="IncludesMask",e[e.IncludesMissingType=262144]="IncludesMissingType",e[e.IncludesNonWideningType=4194304]="IncludesNonWideningType",e[e.IncludesWildcard=8388608]="IncludesWildcard",e[e.IncludesEmptyObject=16777216]="IncludesEmptyObject",e[e.IncludesInstantiable=33554432]="IncludesInstantiable",e[e.IncludesConstrainedTypeVariable=536870912]="IncludesConstrainedTypeVariable",e[e.IncludesError=1073741824]="IncludesError",e[e.NotPrimitiveUnion=36323331]="NotPrimitiveUnion",e))(kG||{}),tvi=(e=>(e[e.None=0]="None",e[e.Class=1]="Class",e[e.Interface=2]="Interface",e[e.Reference=4]="Reference",e[e.Tuple=8]="Tuple",e[e.Anonymous=16]="Anonymous",e[e.Mapped=32]="Mapped",e[e.Instantiated=64]="Instantiated",e[e.ObjectLiteral=128]="ObjectLiteral",e[e.EvolvingArray=256]="EvolvingArray",e[e.ObjectLiteralPatternWithComputedProperties=512]="ObjectLiteralPatternWithComputedProperties",e[e.ReverseMapped=1024]="ReverseMapped",e[e.JsxAttributes=2048]="JsxAttributes",e[e.JSLiteral=4096]="JSLiteral",e[e.FreshLiteral=8192]="FreshLiteral",e[e.ArrayLiteral=16384]="ArrayLiteral",e[e.PrimitiveUnion=32768]="PrimitiveUnion",e[e.ContainsWideningType=65536]="ContainsWideningType",e[e.ContainsObjectOrArrayLiteral=131072]="ContainsObjectOrArrayLiteral",e[e.NonInferrableType=262144]="NonInferrableType",e[e.CouldContainTypeVariablesComputed=524288]="CouldContainTypeVariablesComputed",e[e.CouldContainTypeVariables=1048576]="CouldContainTypeVariables",e[e.ClassOrInterface=3]="ClassOrInterface",e[e.RequiresWidening=196608]="RequiresWidening",e[e.PropagatingFlags=458752]="PropagatingFlags",e[e.InstantiatedMapped=96]="InstantiatedMapped",e[e.ObjectTypeKindMask=1343]="ObjectTypeKindMask",e[e.ContainsSpread=2097152]="ContainsSpread",e[e.ObjectRestType=4194304]="ObjectRestType",e[e.InstantiationExpressionType=8388608]="InstantiationExpressionType",e[e.SingleSignatureType=134217728]="SingleSignatureType",e[e.IsClassInstanceClone=16777216]="IsClassInstanceClone",e[e.IdenticalBaseTypeCalculated=33554432]="IdenticalBaseTypeCalculated",e[e.IdenticalBaseTypeExists=67108864]="IdenticalBaseTypeExists",e[e.IsGenericTypeComputed=2097152]="IsGenericTypeComputed",e[e.IsGenericObjectType=4194304]="IsGenericObjectType",e[e.IsGenericIndexType=8388608]="IsGenericIndexType",e[e.IsGenericType=12582912]="IsGenericType",e[e.ContainsIntersections=16777216]="ContainsIntersections",e[e.IsUnknownLikeUnionComputed=33554432]="IsUnknownLikeUnionComputed",e[e.IsUnknownLikeUnion=67108864]="IsUnknownLikeUnion",e[e.IsNeverIntersectionComputed=16777216]="IsNeverIntersectionComputed",e[e.IsNeverIntersection=33554432]="IsNeverIntersection",e[e.IsConstrainedTypeVariable=67108864]="IsConstrainedTypeVariable",e))(tvi||{}),rvi=(e=>(e[e.None=0]="None",e[e.HasRestParameter=1]="HasRestParameter",e[e.HasLiteralTypes=2]="HasLiteralTypes",e[e.Abstract=4]="Abstract",e[e.IsInnerCallChain=8]="IsInnerCallChain",e[e.IsOuterCallChain=16]="IsOuterCallChain",e[e.IsUntypedSignatureInJSFile=32]="IsUntypedSignatureInJSFile",e[e.IsNonInferrable=64]="IsNonInferrable",e[e.IsSignatureCandidateForOverloadFailure=128]="IsSignatureCandidateForOverloadFailure",e[e.PropagatingFlags=167]="PropagatingFlags",e[e.CallChainFlags=24]="CallChainFlags",e))(rvi||{}),Bee=(e=>(e[e.Unknown=0]="Unknown",e[e.JS=1]="JS",e[e.JSX=2]="JSX",e[e.TS=3]="TS",e[e.TSX=4]="TSX",e[e.External=5]="External",e[e.JSON=6]="JSON",e[e.Deferred=7]="Deferred",e))(Bee||{}),GNr=(e=>(e[e.ES3=0]="ES3",e[e.ES5=1]="ES5",e[e.ES2015=2]="ES2015",e[e.ES2016=3]="ES2016",e[e.ES2017=4]="ES2017",e[e.ES2018=5]="ES2018",e[e.ES2019=6]="ES2019",e[e.ES2020=7]="ES2020",e[e.ES2021=8]="ES2021",e[e.ES2022=9]="ES2022",e[e.ES2023=10]="ES2023",e[e.ES2024=11]="ES2024",e[e.ESNext=99]="ESNext",e[e.JSON=100]="JSON",e[e.Latest=99]="Latest",e))(GNr||{}),nvi=(e=>(e[e.Standard=0]="Standard",e[e.JSX=1]="JSX",e))(nvi||{}),tH=(e=>(e.Ts=".ts",e.Tsx=".tsx",e.Dts=".d.ts",e.Js=".js",e.Jsx=".jsx",e.Json=".json",e.TsBuildInfo=".tsbuildinfo",e.Mjs=".mjs",e.Mts=".mts",e.Dmts=".d.mts",e.Cjs=".cjs",e.Cts=".cts",e.Dcts=".d.cts",e))(tH||{}),ivi=(e=>(e[e.None=0]="None",e[e.ContainsTypeScript=1]="ContainsTypeScript",e[e.ContainsJsx=2]="ContainsJsx",e[e.ContainsESNext=4]="ContainsESNext",e[e.ContainsES2022=8]="ContainsES2022",e[e.ContainsES2021=16]="ContainsES2021",e[e.ContainsES2020=32]="ContainsES2020",e[e.ContainsES2019=64]="ContainsES2019",e[e.ContainsES2018=128]="ContainsES2018",e[e.ContainsES2017=256]="ContainsES2017",e[e.ContainsES2016=512]="ContainsES2016",e[e.ContainsES2015=1024]="ContainsES2015",e[e.ContainsGenerator=2048]="ContainsGenerator",e[e.ContainsDestructuringAssignment=4096]="ContainsDestructuringAssignment",e[e.ContainsTypeScriptClassSyntax=8192]="ContainsTypeScriptClassSyntax",e[e.ContainsLexicalThis=16384]="ContainsLexicalThis",e[e.ContainsRestOrSpread=32768]="ContainsRestOrSpread",e[e.ContainsObjectRestOrSpread=65536]="ContainsObjectRestOrSpread",e[e.ContainsComputedPropertyName=131072]="ContainsComputedPropertyName",e[e.ContainsBlockScopedBinding=262144]="ContainsBlockScopedBinding",e[e.ContainsBindingPattern=524288]="ContainsBindingPattern",e[e.ContainsYield=1048576]="ContainsYield",e[e.ContainsAwait=2097152]="ContainsAwait",e[e.ContainsHoistedDeclarationOrCompletion=4194304]="ContainsHoistedDeclarationOrCompletion",e[e.ContainsDynamicImport=8388608]="ContainsDynamicImport",e[e.ContainsClassFields=16777216]="ContainsClassFields",e[e.ContainsDecorators=33554432]="ContainsDecorators",e[e.ContainsPossibleTopLevelAwait=67108864]="ContainsPossibleTopLevelAwait",e[e.ContainsLexicalSuper=134217728]="ContainsLexicalSuper",e[e.ContainsUpdateExpressionForIdentifier=268435456]="ContainsUpdateExpressionForIdentifier",e[e.ContainsPrivateIdentifierInExpression=536870912]="ContainsPrivateIdentifierInExpression",e[e.HasComputedFlags=-2147483648]="HasComputedFlags",e[e.AssertTypeScript=1]="AssertTypeScript",e[e.AssertJsx=2]="AssertJsx",e[e.AssertESNext=4]="AssertESNext",e[e.AssertES2022=8]="AssertES2022",e[e.AssertES2021=16]="AssertES2021",e[e.AssertES2020=32]="AssertES2020",e[e.AssertES2019=64]="AssertES2019",e[e.AssertES2018=128]="AssertES2018",e[e.AssertES2017=256]="AssertES2017",e[e.AssertES2016=512]="AssertES2016",e[e.AssertES2015=1024]="AssertES2015",e[e.AssertGenerator=2048]="AssertGenerator",e[e.AssertDestructuringAssignment=4096]="AssertDestructuringAssignment",e[e.OuterExpressionExcludes=-2147483648]="OuterExpressionExcludes",e[e.PropertyAccessExcludes=-2147483648]="PropertyAccessExcludes",e[e.NodeExcludes=-2147483648]="NodeExcludes",e[e.ArrowFunctionExcludes=-2072174592]="ArrowFunctionExcludes",e[e.FunctionExcludes=-1937940480]="FunctionExcludes",e[e.ConstructorExcludes=-1937948672]="ConstructorExcludes",e[e.MethodOrAccessorExcludes=-2005057536]="MethodOrAccessorExcludes",e[e.PropertyExcludes=-2013249536]="PropertyExcludes",e[e.ClassExcludes=-2147344384]="ClassExcludes",e[e.ModuleExcludes=-1941676032]="ModuleExcludes",e[e.TypeExcludes=-2]="TypeExcludes",e[e.ObjectLiteralExcludes=-2147278848]="ObjectLiteralExcludes",e[e.ArrayLiteralOrCallOrNewExcludes=-2147450880]="ArrayLiteralOrCallOrNewExcludes",e[e.VariableDeclarationListExcludes=-2146893824]="VariableDeclarationListExcludes",e[e.ParameterExcludes=-2147483648]="ParameterExcludes",e[e.CatchClauseExcludes=-2147418112]="CatchClauseExcludes",e[e.BindingPatternExcludes=-2147450880]="BindingPatternExcludes",e[e.ContainsLexicalThisOrSuper=134234112]="ContainsLexicalThisOrSuper",e[e.PropertyNamePropagatingFlags=134234112]="PropertyNamePropagatingFlags",e))(ivi||{}),svi=(e=>(e[e.TabStop=0]="TabStop",e[e.Placeholder=1]="Placeholder",e[e.Choice=2]="Choice",e[e.Variable=3]="Variable",e))(svi||{}),ovi=(e=>(e[e.None=0]="None",e[e.SingleLine=1]="SingleLine",e[e.MultiLine=2]="MultiLine",e[e.AdviseOnEmitNode=4]="AdviseOnEmitNode",e[e.NoSubstitution=8]="NoSubstitution",e[e.CapturesThis=16]="CapturesThis",e[e.NoLeadingSourceMap=32]="NoLeadingSourceMap",e[e.NoTrailingSourceMap=64]="NoTrailingSourceMap",e[e.NoSourceMap=96]="NoSourceMap",e[e.NoNestedSourceMaps=128]="NoNestedSourceMaps",e[e.NoTokenLeadingSourceMaps=256]="NoTokenLeadingSourceMaps",e[e.NoTokenTrailingSourceMaps=512]="NoTokenTrailingSourceMaps",e[e.NoTokenSourceMaps=768]="NoTokenSourceMaps",e[e.NoLeadingComments=1024]="NoLeadingComments",e[e.NoTrailingComments=2048]="NoTrailingComments",e[e.NoComments=3072]="NoComments",e[e.NoNestedComments=4096]="NoNestedComments",e[e.HelperName=8192]="HelperName",e[e.ExportName=16384]="ExportName",e[e.LocalName=32768]="LocalName",e[e.InternalName=65536]="InternalName",e[e.Indented=131072]="Indented",e[e.NoIndentation=262144]="NoIndentation",e[e.AsyncFunctionBody=524288]="AsyncFunctionBody",e[e.ReuseTempVariableScope=1048576]="ReuseTempVariableScope",e[e.CustomPrologue=2097152]="CustomPrologue",e[e.NoHoisting=4194304]="NoHoisting",e[e.Iterator=8388608]="Iterator",e[e.NoAsciiEscaping=16777216]="NoAsciiEscaping",e))(ovi||{}),tJe={Classes:2,ForOf:2,Generators:2,Iteration:2,SpreadElements:2,RestElements:2,TaggedTemplates:2,DestructuringAssignment:2,BindingPatterns:2,ArrowFunctions:2,BlockScopedVariables:2,ObjectAssign:2,RegularExpressionFlagsUnicode:2,RegularExpressionFlagsSticky:2,Exponentiation:3,AsyncFunctions:4,ForAwaitOf:5,AsyncGenerators:5,AsyncIteration:5,ObjectSpreadRest:5,RegularExpressionFlagsDotAll:5,BindinglessCatch:6,BigInt:7,NullishCoalesce:7,OptionalChaining:7,LogicalAssignment:8,TopLevelAwait:9,ClassFields:9,PrivateNamesAndClassStaticBlocks:9,RegularExpressionFlagsHasIndices:9,ShebangComments:10,RegularExpressionFlagsUnicodeSets:11,UsingAndAwaitUsing:99,ClassAndClassElementDecorators:99},avi={reference:{args:[{name:"types",optional:!0,captureSpan:!0},{name:"lib",optional:!0,captureSpan:!0},{name:"path",optional:!0,captureSpan:!0},{name:"no-default-lib",optional:!0},{name:"resolution-mode",optional:!0},{name:"preserve",optional:!0}],kind:1},"amd-dependency":{args:[{name:"path"},{name:"name",optional:!0}],kind:1},"amd-module":{args:[{name:"name"}],kind:1},"ts-check":{kind:2},"ts-nocheck":{kind:2},jsx:{args:[{name:"factory"}],kind:4},jsxfrag:{args:[{name:"factory"}],kind:4},jsximportsource:{args:[{name:"factory"}],kind:4},jsxruntime:{args:[{name:"factory"}],kind:4}},uJe=(e=>(e[e.ParseAll=0]="ParseAll",e[e.ParseNone=1]="ParseNone",e[e.ParseForTypeErrors=2]="ParseForTypeErrors",e[e.ParseForTypeInfo=3]="ParseForTypeInfo",e))(uJe||{}),Hme="/",g7a="\\",R2i="://",A7a=/\\/g;function d7a(e){return e===47||e===92}function p7a(e,t){return e.length>t.length&&o7a(e,t)}function FNr(e){return e.length>0&&d7a(e.charCodeAt(e.length-1))}function N2i(e){return e>=97&&e<=122||e>=65&&e<=90}function f7a(e,t){let r=e.charCodeAt(t);if(r===58)return t+1;if(r===37&&e.charCodeAt(t+1)===51){let n=e.charCodeAt(t+2);if(n===97||n===65)return t+3}return-1}function I7a(e){if(!e)return 0;let t=e.charCodeAt(0);if(t===47||t===92){if(e.charCodeAt(1)!==t)return 1;let n=e.indexOf(t===47?Hme:g7a,2);return n<0?e.length:n+1}if(N2i(t)&&e.charCodeAt(1)===58){let n=e.charCodeAt(2);if(n===47||n===92)return 3;if(e.length===2)return 2}let r=e.indexOf(R2i);if(r!==-1){let n=r+R2i.length,a=e.indexOf(Hme,n);if(a!==-1){let o=e.slice(0,r),l=e.slice(n,a);if(o==="file"&&(l===""||l==="localhost")&&N2i(e.charCodeAt(a+1))){let A=f7a(e,a+2);if(A!==-1){if(e.charCodeAt(A)===47)return~(A+1);if(A===e.length)return~A}}return~(a+1)}return~e.length}return 0}function Mbt(e){let t=I7a(e);return t<0?~t:t}function cvi(e,t,r){if(e=Hbt(e),Mbt(e)===e.length)return"";e=uvi(e);let n=e.slice(Math.max(Mbt(e),e.lastIndexOf(Hme)+1)),a=t!==void 0&&r!==void 0?lvi(n,t,r):void 0;return a?n.slice(0,n.length-a.length):n}function D2i(e,t,r){if(Obt(t,".")||(t="."+t),e.length>=t.length&&e.charCodeAt(e.length-t.length)===46){let n=e.slice(e.length-t.length);if(r(n,t))return n}}function h7a(e,t,r){if(typeof t=="string")return D2i(e,t,r)||"";for(let n of t){let a=D2i(e,n,r);if(a)return a}return""}function lvi(e,t,r){if(t)return h7a(uvi(e),t,r?xNr:r7a);let n=cvi(e),a=n.lastIndexOf(".");return a>=0?n.substring(a):""}function m7a(e,t){let r=e.substring(0,t),n=e.substring(t).split(Hme);return n.length&&!Vme(n)&&n.pop(),[r,...n]}function C7a(e,t=""){return e=b7a(t,e),m7a(e,Mbt(e))}function _7a(e,t){return e.length===0?"":(e[0]&&ZNr(e[0]))+e.slice(1,t).join(Hme)}function Hbt(e){return e.includes("\\")?e.replace(A7a,Hme):e}function y7a(e){if(!oD(e))return[];let t=[e[0]];for(let r=1;r1){if(t[t.length-1]!==".."){t.pop();continue}}else if(t[0])continue}t.push(n)}}return t}function b7a(e,...t){e&&(e=Hbt(e));for(let r of t)r&&(r=Hbt(r),!e||Mbt(r)!==0?e=r:e=ZNr(e)+r);return e}function E7a(e){if(e=Hbt(e),!k2i.test(e))return e;let t=e.replace(/\/\.\//g,"/").replace(/^\.\//,"");if(t!==e&&(e=t,!k2i.test(e)))return e;let r=_7a(y7a(C7a(e)));return r&&FNr(e)?ZNr(r):r}function uvi(e){return FNr(e)?e.substr(0,e.length-1):e}function ZNr(e){return FNr(e)?e:e+Hme}var k2i=/\/\/|(?:^|\/)\.\.?(?:$|\/)/;function $(e,t,r,n,a,o,l){return{code:e,category:t,key:r,message:n,reportsUnnecessary:a,elidedInCompatabilityPyramid:o,reportsDeprecated:l}}var ts={Unterminated_string_literal:$(1002,1,"Unterminated_string_literal_1002","Unterminated string literal."),Identifier_expected:$(1003,1,"Identifier_expected_1003","Identifier expected."),_0_expected:$(1005,1,"_0_expected_1005","'{0}' expected."),A_file_cannot_have_a_reference_to_itself:$(1006,1,"A_file_cannot_have_a_reference_to_itself_1006","A file cannot have a reference to itself."),The_parser_expected_to_find_a_1_to_match_the_0_token_here:$(1007,1,"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007","The parser expected to find a '{1}' to match the '{0}' token here."),Trailing_comma_not_allowed:$(1009,1,"Trailing_comma_not_allowed_1009","Trailing comma not allowed."),Asterisk_Slash_expected:$(1010,1,"Asterisk_Slash_expected_1010","'*/' expected."),An_element_access_expression_should_take_an_argument:$(1011,1,"An_element_access_expression_should_take_an_argument_1011","An element access expression should take an argument."),Unexpected_token:$(1012,1,"Unexpected_token_1012","Unexpected token."),A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma:$(1013,1,"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013","A rest parameter or binding pattern may not have a trailing comma."),A_rest_parameter_must_be_last_in_a_parameter_list:$(1014,1,"A_rest_parameter_must_be_last_in_a_parameter_list_1014","A rest parameter must be last in a parameter list."),Parameter_cannot_have_question_mark_and_initializer:$(1015,1,"Parameter_cannot_have_question_mark_and_initializer_1015","Parameter cannot have question mark and initializer."),A_required_parameter_cannot_follow_an_optional_parameter:$(1016,1,"A_required_parameter_cannot_follow_an_optional_parameter_1016","A required parameter cannot follow an optional parameter."),An_index_signature_cannot_have_a_rest_parameter:$(1017,1,"An_index_signature_cannot_have_a_rest_parameter_1017","An index signature cannot have a rest parameter."),An_index_signature_parameter_cannot_have_an_accessibility_modifier:$(1018,1,"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018","An index signature parameter cannot have an accessibility modifier."),An_index_signature_parameter_cannot_have_a_question_mark:$(1019,1,"An_index_signature_parameter_cannot_have_a_question_mark_1019","An index signature parameter cannot have a question mark."),An_index_signature_parameter_cannot_have_an_initializer:$(1020,1,"An_index_signature_parameter_cannot_have_an_initializer_1020","An index signature parameter cannot have an initializer."),An_index_signature_must_have_a_type_annotation:$(1021,1,"An_index_signature_must_have_a_type_annotation_1021","An index signature must have a type annotation."),An_index_signature_parameter_must_have_a_type_annotation:$(1022,1,"An_index_signature_parameter_must_have_a_type_annotation_1022","An index signature parameter must have a type annotation."),readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature:$(1024,1,"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024","'readonly' modifier can only appear on a property declaration or index signature."),An_index_signature_cannot_have_a_trailing_comma:$(1025,1,"An_index_signature_cannot_have_a_trailing_comma_1025","An index signature cannot have a trailing comma."),Accessibility_modifier_already_seen:$(1028,1,"Accessibility_modifier_already_seen_1028","Accessibility modifier already seen."),_0_modifier_must_precede_1_modifier:$(1029,1,"_0_modifier_must_precede_1_modifier_1029","'{0}' modifier must precede '{1}' modifier."),_0_modifier_already_seen:$(1030,1,"_0_modifier_already_seen_1030","'{0}' modifier already seen."),_0_modifier_cannot_appear_on_class_elements_of_this_kind:$(1031,1,"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031","'{0}' modifier cannot appear on class elements of this kind."),super_must_be_followed_by_an_argument_list_or_member_access:$(1034,1,"super_must_be_followed_by_an_argument_list_or_member_access_1034","'super' must be followed by an argument list or member access."),Only_ambient_modules_can_use_quoted_names:$(1035,1,"Only_ambient_modules_can_use_quoted_names_1035","Only ambient modules can use quoted names."),Statements_are_not_allowed_in_ambient_contexts:$(1036,1,"Statements_are_not_allowed_in_ambient_contexts_1036","Statements are not allowed in ambient contexts."),A_declare_modifier_cannot_be_used_in_an_already_ambient_context:$(1038,1,"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038","A 'declare' modifier cannot be used in an already ambient context."),Initializers_are_not_allowed_in_ambient_contexts:$(1039,1,"Initializers_are_not_allowed_in_ambient_contexts_1039","Initializers are not allowed in ambient contexts."),_0_modifier_cannot_be_used_in_an_ambient_context:$(1040,1,"_0_modifier_cannot_be_used_in_an_ambient_context_1040","'{0}' modifier cannot be used in an ambient context."),_0_modifier_cannot_be_used_here:$(1042,1,"_0_modifier_cannot_be_used_here_1042","'{0}' modifier cannot be used here."),_0_modifier_cannot_appear_on_a_module_or_namespace_element:$(1044,1,"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044","'{0}' modifier cannot appear on a module or namespace element."),Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier:$(1046,1,"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046","Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier."),A_rest_parameter_cannot_be_optional:$(1047,1,"A_rest_parameter_cannot_be_optional_1047","A rest parameter cannot be optional."),A_rest_parameter_cannot_have_an_initializer:$(1048,1,"A_rest_parameter_cannot_have_an_initializer_1048","A rest parameter cannot have an initializer."),A_set_accessor_must_have_exactly_one_parameter:$(1049,1,"A_set_accessor_must_have_exactly_one_parameter_1049","A 'set' accessor must have exactly one parameter."),A_set_accessor_cannot_have_an_optional_parameter:$(1051,1,"A_set_accessor_cannot_have_an_optional_parameter_1051","A 'set' accessor cannot have an optional parameter."),A_set_accessor_parameter_cannot_have_an_initializer:$(1052,1,"A_set_accessor_parameter_cannot_have_an_initializer_1052","A 'set' accessor parameter cannot have an initializer."),A_set_accessor_cannot_have_rest_parameter:$(1053,1,"A_set_accessor_cannot_have_rest_parameter_1053","A 'set' accessor cannot have rest parameter."),A_get_accessor_cannot_have_parameters:$(1054,1,"A_get_accessor_cannot_have_parameters_1054","A 'get' accessor cannot have parameters."),Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value:$(1055,1,"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055","Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value."),Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher:$(1056,1,"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056","Accessors are only available when targeting ECMAScript 5 and higher."),The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1058,1,"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058","The return type of an async function must either be a valid promise or must not contain a callable 'then' member."),A_promise_must_have_a_then_method:$(1059,1,"A_promise_must_have_a_then_method_1059","A promise must have a 'then' method."),The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback:$(1060,1,"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060","The first parameter of the 'then' method of a promise must be a callback."),Enum_member_must_have_initializer:$(1061,1,"Enum_member_must_have_initializer_1061","Enum member must have initializer."),Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method:$(1062,1,"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062","Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method."),An_export_assignment_cannot_be_used_in_a_namespace:$(1063,1,"An_export_assignment_cannot_be_used_in_a_namespace_1063","An export assignment cannot be used in a namespace."),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0:$(1064,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064","The return type of an async function or method must be the global Promise type. Did you mean to write 'Promise<{0}>'?"),The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type:$(1065,1,"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065","The return type of an async function or method must be the global Promise type."),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:$(1066,1,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:$(1068,1,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:$(1069,1,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:$(1070,1,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:$(1071,1,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:$(1079,1,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:$(1084,1,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),_0_modifier_cannot_appear_on_a_constructor_declaration:$(1089,1,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:$(1090,1,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:$(1091,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:$(1092,1,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:$(1093,1,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:$(1094,1,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:$(1095,1,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:$(1096,1,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:$(1097,1,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:$(1098,1,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:$(1099,1,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:$(1100,1,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:$(1101,1,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:$(1102,1,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1103,1,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:$(1104,1,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:$(1105,1,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:$(1106,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:$(1107,1,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:$(1108,1,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:$(1109,1,"Expression_expected_1109","Expression expected."),Type_expected:$(1110,1,"Type_expected_1110","Type expected."),Private_field_0_must_be_declared_in_an_enclosing_class:$(1111,1,"Private_field_0_must_be_declared_in_an_enclosing_class_1111","Private field '{0}' must be declared in an enclosing class."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:$(1113,1,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:$(1114,1,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:$(1115,1,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:$(1116,1,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name:$(1117,1,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117","An object literal cannot have multiple properties with the same name."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:$(1118,1,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:$(1119,1,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:$(1120,1,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_Use_the_syntax_0:$(1121,1,"Octal_literals_are_not_allowed_Use_the_syntax_0_1121","Octal literals are not allowed. Use the syntax '{0}'."),Variable_declaration_list_cannot_be_empty:$(1123,1,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:$(1124,1,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:$(1125,1,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:$(1126,1,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:$(1127,1,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:$(1128,1,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:$(1129,1,"Statement_expected_1129","Statement expected."),case_or_default_expected:$(1130,1,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:$(1131,1,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:$(1132,1,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:$(1134,1,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:$(1135,1,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:$(1136,1,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:$(1137,1,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:$(1138,1,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:$(1139,1,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:$(1140,1,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:$(1141,1,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:$(1142,1,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:$(1144,1,"or_expected_1144","'{' or ';' expected."),or_JSX_element_expected:$(1145,1,"or_JSX_element_expected_1145","'{' or JSX element expected."),Declaration_expected:$(1146,1,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:$(1147,1,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:$(1148,1,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:$(1149,1,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),_0_declarations_must_be_initialized:$(1155,1,"_0_declarations_must_be_initialized_1155","'{0}' declarations must be initialized."),_0_declarations_can_only_be_declared_inside_a_block:$(1156,1,"_0_declarations_can_only_be_declared_inside_a_block_1156","'{0}' declarations can only be declared inside a block."),Unterminated_template_literal:$(1160,1,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:$(1161,1,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:$(1162,1,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:$(1163,1,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:$(1164,1,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1165,1,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:$(1166,1,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1168,1,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1169,1,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:$(1170,1,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:$(1171,1,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:$(1172,1,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:$(1173,1,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:$(1174,1,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:$(1175,1,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:$(1176,1,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:$(1177,1,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:$(1178,1,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:$(1179,1,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:$(1180,1,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:$(1181,1,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:$(1182,1,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:$(1183,1,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:$(1184,1,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:$(1185,1,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:$(1186,1,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:$(1187,1,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:$(1188,1,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:$(1189,1,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:$(1190,1,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:$(1191,1,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:$(1192,1,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:$(1193,1,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:$(1194,1,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:$(1195,1,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:$(1196,1,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:$(1197,1,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:$(1198,1,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:$(1199,1,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:$(1200,1,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:$(1202,1,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:$(1203,1,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_0_is_enabled_requires_using_export_type:$(1205,1,"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205","Re-exporting a type when '{0}' is enabled requires using 'export type'."),Decorators_are_not_valid_here:$(1206,1,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:$(1207,1,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0:$(1209,1,"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209","Invalid optional chain from new expression. Did you mean to call '{0}()'?"),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:$(1210,1,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:$(1211,1,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:$(1212,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:$(1213,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:$(1214,1,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:$(1215,1,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:$(1216,1,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:$(1218,1,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Generators_are_not_allowed_in_an_ambient_context:$(1221,1,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:$(1222,1,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:$(1223,1,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:$(1224,1,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:$(1225,1,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:$(1226,1,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:$(1227,1,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:$(1228,1,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:$(1229,1,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:$(1230,1,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1231,1,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1232,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232","An import declaration can only be used at the top level of a namespace or module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module:$(1233,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233","An export declaration can only be used at the top level of a namespace or module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:$(1234,1,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module:$(1235,1,"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235","A namespace declaration is only allowed at the top level of a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:$(1236,1,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:$(1237,1,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:$(1238,1,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:$(1239,1,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:$(1240,1,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:$(1241,1,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:$(1242,1,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:$(1243,1,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:$(1244,1,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:$(1245,1,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:$(1246,1,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:$(1247,1,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:$(1248,1,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:$(1249,1,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5:$(1250,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode:$(1251,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode:$(1252,1,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode."),Abstract_properties_can_only_appear_within_an_abstract_class:$(1253,1,"Abstract_properties_can_only_appear_within_an_abstract_class_1253","Abstract properties can only appear within an abstract class."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:$(1254,1,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:$(1255,1,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:$(1257,1,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:$(1258,1,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:$(1259,1,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:$(1260,1,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:$(1261,1,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:$(1262,1,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:$(1263,1,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:$(1264,1,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:$(1265,1,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:$(1266,1,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:$(1267,1,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:$(1268,1,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled:$(1269,1,"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269","Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled."),Decorator_function_return_type_0_is_not_assignable_to_type_1:$(1270,1,"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270","Decorator function return type '{0}' is not assignable to type '{1}'."),Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any:$(1271,1,"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271","Decorator function return type is '{0}' but is expected to be 'void' or 'any'."),A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled:$(1272,1,"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272","A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled."),_0_modifier_cannot_appear_on_a_type_parameter:$(1273,1,"_0_modifier_cannot_appear_on_a_type_parameter_1273","'{0}' modifier cannot appear on a type parameter"),_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias:$(1274,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274","'{0}' modifier can only appear on a type parameter of a class, interface or type alias"),accessor_modifier_can_only_appear_on_a_property_declaration:$(1275,1,"accessor_modifier_can_only_appear_on_a_property_declaration_1275","'accessor' modifier can only appear on a property declaration."),An_accessor_property_cannot_be_declared_optional:$(1276,1,"An_accessor_property_cannot_be_declared_optional_1276","An 'accessor' property cannot be declared optional."),_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class:$(1277,1,"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277","'{0}' modifier can only appear on a type parameter of a function, method or class"),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0:$(1278,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278","The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}."),The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0:$(1279,1,"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279","The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}."),Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement:$(1280,1,"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280","Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement."),Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead:$(1281,1,"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281","Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead."),An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1282,1,"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282","An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1283,1,"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283","An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type:$(1284,1,"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284","An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type."),An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration:$(1285,1,"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285","An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1286,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled_1286","ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled."),A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled:$(1287,1,"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287","A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled."),An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled:$(1288,1,"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288","An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1289,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1290,1,"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290","'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported:$(1291,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported."),_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default:$(1292,1,"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292","'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'."),ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve:$(1293,1,"ESM_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293","ESM syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'."),with_statements_are_not_allowed_in_an_async_function_block:$(1300,1,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(1308,1,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level:$(1309,1,"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309","The current file is a CommonJS module and cannot use 'await' at the top level."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:$(1312,1,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:$(1313,1,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:$(1314,1,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:$(1315,1,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:$(1316,1,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:$(1317,1,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:$(1318,1,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:$(1319,1,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1320,1,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1321,1,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:$(1322,1,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_or_nodenext:$(1323,1,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', or 'nodenext'."),Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodenext_or_preserve:$(1324,1,"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_nodene_1324","Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'nodenext', or 'preserve'."),Argument_of_dynamic_import_cannot_be_spread_element:$(1325,1,"Argument_of_dynamic_import_cannot_be_spread_element_1325","Argument of dynamic import cannot be spread element."),This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments:$(1326,1,"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326","This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments."),String_literal_with_double_quotes_expected:$(1327,1,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:$(1328,1,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:$(1329,1,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:$(1330,1,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:$(1331,1,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:$(1332,1,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:$(1333,1,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:$(1334,1,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:$(1335,1,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:$(1337,1,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:$(1338,1,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:$(1339,1,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:$(1340,1,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Class_constructor_may_not_be_an_accessor:$(1341,1,"Class_constructor_may_not_be_an_accessor_1341","Class constructor may not be an accessor."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_or_nodenext:$(1343,1,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', or 'nodenext'."),A_label_is_not_allowed_here:$(1344,1,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:$(1345,1,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:$(1346,1,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:$(1347,1,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:$(1348,1,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:$(1349,1,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:$(1350,3,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:$(1351,1,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:$(1352,1,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:$(1353,1,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:$(1354,1,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:$(1355,1,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:$(1356,1,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:$(1357,1,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:$(1358,1,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:$(1359,1,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Type_0_does_not_satisfy_the_expected_type_1:$(1360,1,"Type_0_does_not_satisfy_the_expected_type_1_1360","Type '{0}' does not satisfy the expected type '{1}'."),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:$(1361,1,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:$(1362,1,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:$(1363,1,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:$(1364,3,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:$(1365,3,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:$(1366,3,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:$(1367,3,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Class_constructor_may_not_be_a_generator:$(1368,1,"Class_constructor_may_not_be_a_generator_1368","Class constructor may not be a generator."),Did_you_mean_0:$(1369,3,"Did_you_mean_0_1369","Did you mean '{0}'?"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1375,1,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:$(1376,3,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:$(1377,3,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1378,1,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:$(1379,1,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:$(1380,1,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:$(1381,1,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:$(1382,1,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1385,1,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:$(1386,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1387,1,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:$(1388,1,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:$(1389,1,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),_0_is_not_allowed_as_a_parameter_name:$(1390,1,"_0_is_not_allowed_as_a_parameter_name_1390","'{0}' is not allowed as a parameter name."),An_import_alias_cannot_use_import_type:$(1392,1,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:$(1393,3,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:$(1394,3,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:$(1395,3,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:$(1396,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:$(1397,3,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:$(1398,3,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:$(1399,3,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:$(1400,3,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:$(1401,3,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:$(1402,3,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:$(1403,3,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:$(1404,3,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:$(1405,3,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:$(1406,3,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:$(1407,3,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:$(1408,3,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:$(1409,3,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:$(1410,3,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:$(1411,3,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:$(1412,3,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:$(1413,3,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:$(1414,3,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:$(1415,3,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:$(1416,3,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:$(1417,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:$(1418,3,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:$(1419,3,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:$(1420,3,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:$(1421,3,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:$(1422,3,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:$(1423,3,"File_is_library_specified_here_1423","File is library specified here."),Default_library:$(1424,3,"Default_library_1424","Default library"),Default_library_for_target_0:$(1425,3,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:$(1426,3,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:$(1427,3,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:$(1428,3,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:$(1429,3,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:$(1430,3,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(1431,1,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(1432,1,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters:$(1433,1,"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433","Neither decorators nor modifiers may be applied to 'this' parameters."),Unexpected_keyword_or_identifier:$(1434,1,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:$(1435,1,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:$(1436,1,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:$(1437,1,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:$(1438,1,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:$(1439,1,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:$(1440,1,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:$(1441,1,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:$(1442,1,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:$(1443,1,"Module_declaration_names_may_only_use_or_quoted_strings_1443",`Module declaration names may only use ' or " quoted strings.`),_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled:$(1448,1,"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448","'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled."),Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed:$(1449,3,"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449","Preserve unused imported values in the JavaScript output that would otherwise be removed."),Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments:$(1450,3,"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450","Dynamic imports can only accept a module specifier and an optional set of attributes as arguments"),Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression:$(1451,1,"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451","Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression"),resolution_mode_should_be_either_require_or_import:$(1453,1,"resolution_mode_should_be_either_require_or_import_1453","`resolution-mode` should be either `require` or `import`."),resolution_mode_can_only_be_set_for_type_only_imports:$(1454,1,"resolution_mode_can_only_be_set_for_type_only_imports_1454","`resolution-mode` can only be set for type-only imports."),resolution_mode_is_the_only_valid_key_for_type_import_assertions:$(1455,1,"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455","`resolution-mode` is the only valid key for type import assertions."),Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1456,1,"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456","Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`."),Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk:$(1457,3,"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457","Matched by default include pattern '**/*'"),File_is_ECMAScript_module_because_0_has_field_type_with_value_module:$(1458,3,"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458",`File is ECMAScript module because '{0}' has field "type" with value "module"`),File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module:$(1459,3,"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459",`File is CommonJS module because '{0}' has field "type" whose value is not "module"`),File_is_CommonJS_module_because_0_does_not_have_field_type:$(1460,3,"File_is_CommonJS_module_because_0_does_not_have_field_type_1460",`File is CommonJS module because '{0}' does not have field "type"`),File_is_CommonJS_module_because_package_json_was_not_found:$(1461,3,"File_is_CommonJS_module_because_package_json_was_not_found_1461","File is CommonJS module because 'package.json' was not found"),resolution_mode_is_the_only_valid_key_for_type_import_attributes:$(1463,1,"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463","'resolution-mode' is the only valid key for type import attributes."),Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require:$(1464,1,"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464","Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'."),The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output:$(1470,1,"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470","The 'import.meta' meta-property is not allowed in files which will build into CommonJS output."),Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead:$(1471,1,"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471","Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead."),catch_or_finally_expected:$(1472,1,"catch_or_finally_expected_1472","'catch' or 'finally' expected."),An_import_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1473,1,"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473","An import declaration can only be used at the top level of a module."),An_export_declaration_can_only_be_used_at_the_top_level_of_a_module:$(1474,1,"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474","An export declaration can only be used at the top level of a module."),Control_what_method_is_used_to_detect_module_format_JS_files:$(1475,3,"Control_what_method_is_used_to_detect_module_format_JS_files_1475","Control what method is used to detect module-format JS files."),auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules:$(1476,3,"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476",'"auto": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),An_instantiation_expression_cannot_be_followed_by_a_property_access:$(1477,1,"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477","An instantiation expression cannot be followed by a property access."),Identifier_or_string_literal_expected:$(1478,1,"Identifier_or_string_literal_expected_1478","Identifier or string literal expected."),The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead:$(1479,1,"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479",`The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import("{0}")' call instead.`),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module:$(1480,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480",'To convert this file to an ECMAScript module, change its file extension to \'{0}\' or create a local package.json file with `{ "type": "module" }`.'),To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1:$(1481,3,"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481",`To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \`"type": "module"\` to '{1}'.`),To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0:$(1482,3,"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482",'To convert this file to an ECMAScript module, add the field `"type": "module"` to \'{0}\'.'),To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module:$(1483,3,"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483",'To convert this file to an ECMAScript module, create a local package.json file with `{ "type": "module" }`.'),_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1484,1,"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484","'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled:$(1485,1,"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485","'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled."),Decorator_used_before_export_here:$(1486,1,"Decorator_used_before_export_here_1486","Decorator used before 'export' here."),Octal_escape_sequences_are_not_allowed_Use_the_syntax_0:$(1487,1,"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487","Octal escape sequences are not allowed. Use the syntax '{0}'."),Escape_sequence_0_is_not_allowed:$(1488,1,"Escape_sequence_0_is_not_allowed_1488","Escape sequence '{0}' is not allowed."),Decimals_with_leading_zeros_are_not_allowed:$(1489,1,"Decimals_with_leading_zeros_are_not_allowed_1489","Decimals with leading zeros are not allowed."),File_appears_to_be_binary:$(1490,1,"File_appears_to_be_binary_1490","File appears to be binary."),_0_modifier_cannot_appear_on_a_using_declaration:$(1491,1,"_0_modifier_cannot_appear_on_a_using_declaration_1491","'{0}' modifier cannot appear on a 'using' declaration."),_0_declarations_may_not_have_binding_patterns:$(1492,1,"_0_declarations_may_not_have_binding_patterns_1492","'{0}' declarations may not have binding patterns."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration:$(1493,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493","The left-hand side of a 'for...in' statement cannot be a 'using' declaration."),The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration:$(1494,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494","The left-hand side of a 'for...in' statement cannot be an 'await using' declaration."),_0_modifier_cannot_appear_on_an_await_using_declaration:$(1495,1,"_0_modifier_cannot_appear_on_an_await_using_declaration_1495","'{0}' modifier cannot appear on an 'await using' declaration."),Identifier_string_literal_or_number_literal_expected:$(1496,1,"Identifier_string_literal_or_number_literal_expected_1496","Identifier, string literal, or number literal expected."),Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator:$(1497,1,"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497","Expression must be enclosed in parentheses to be used as a decorator."),Invalid_syntax_in_decorator:$(1498,1,"Invalid_syntax_in_decorator_1498","Invalid syntax in decorator."),Unknown_regular_expression_flag:$(1499,1,"Unknown_regular_expression_flag_1499","Unknown regular expression flag."),Duplicate_regular_expression_flag:$(1500,1,"Duplicate_regular_expression_flag_1500","Duplicate regular expression flag."),This_regular_expression_flag_is_only_available_when_targeting_0_or_later:$(1501,1,"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501","This regular expression flag is only available when targeting '{0}' or later."),The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously:$(1502,1,"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502","The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously."),Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later:$(1503,1,"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503","Named capturing groups are only available when targeting 'ES2018' or later."),Subpattern_flags_must_be_present_when_there_is_a_minus_sign:$(1504,1,"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504","Subpattern flags must be present when there is a minus sign."),Incomplete_quantifier_Digit_expected:$(1505,1,"Incomplete_quantifier_Digit_expected_1505","Incomplete quantifier. Digit expected."),Numbers_out_of_order_in_quantifier:$(1506,1,"Numbers_out_of_order_in_quantifier_1506","Numbers out of order in quantifier."),There_is_nothing_available_for_repetition:$(1507,1,"There_is_nothing_available_for_repetition_1507","There is nothing available for repetition."),Unexpected_0_Did_you_mean_to_escape_it_with_backslash:$(1508,1,"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508","Unexpected '{0}'. Did you mean to escape it with backslash?"),This_regular_expression_flag_cannot_be_toggled_within_a_subpattern:$(1509,1,"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509","This regular expression flag cannot be toggled within a subpattern."),k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets:$(1510,1,"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510","'\\k' must be followed by a capturing group name enclosed in angle brackets."),q_is_only_available_inside_character_class:$(1511,1,"q_is_only_available_inside_character_class_1511","'\\q' is only available inside character class."),c_must_be_followed_by_an_ASCII_letter:$(1512,1,"c_must_be_followed_by_an_ASCII_letter_1512","'\\c' must be followed by an ASCII letter."),Undetermined_character_escape:$(1513,1,"Undetermined_character_escape_1513","Undetermined character escape."),Expected_a_capturing_group_name:$(1514,1,"Expected_a_capturing_group_name_1514","Expected a capturing group name."),Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other:$(1515,1,"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515","Named capturing groups with the same name must be mutually exclusive to each other."),A_character_class_range_must_not_be_bounded_by_another_character_class:$(1516,1,"A_character_class_range_must_not_be_bounded_by_another_character_class_1516","A character class range must not be bounded by another character class."),Range_out_of_order_in_character_class:$(1517,1,"Range_out_of_order_in_character_class_1517","Range out of order in character class."),Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class:$(1518,1,"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518","Anything that would possibly match more than a single character is invalid inside a negated character class."),Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead:$(1519,1,"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519","Operators must not be mixed within a character class. Wrap it in a nested class instead."),Expected_a_class_set_operand:$(1520,1,"Expected_a_class_set_operand_1520","Expected a class set operand."),q_must_be_followed_by_string_alternatives_enclosed_in_braces:$(1521,1,"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521","'\\q' must be followed by string alternatives enclosed in braces."),A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash:$(1522,1,"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522","A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?"),Expected_a_Unicode_property_name:$(1523,1,"Expected_a_Unicode_property_name_1523","Expected a Unicode property name."),Unknown_Unicode_property_name:$(1524,1,"Unknown_Unicode_property_name_1524","Unknown Unicode property name."),Expected_a_Unicode_property_value:$(1525,1,"Expected_a_Unicode_property_value_1525","Expected a Unicode property value."),Unknown_Unicode_property_value:$(1526,1,"Unknown_Unicode_property_value_1526","Unknown Unicode property value."),Expected_a_Unicode_property_name_or_value:$(1527,1,"Expected_a_Unicode_property_name_or_value_1527","Expected a Unicode property name or value."),Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set:$(1528,1,"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528","Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set."),Unknown_Unicode_property_name_or_value:$(1529,1,"Unknown_Unicode_property_name_or_value_1529","Unknown Unicode property name or value."),Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1530,1,"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530","Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces:$(1531,1,"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531","'\\{0}' must be followed by a Unicode property value expression enclosed in braces."),There_is_no_capturing_group_named_0_in_this_regular_expression:$(1532,1,"There_is_no_capturing_group_named_0_in_this_regular_expression_1532","There is no capturing group named '{0}' in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression:$(1533,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533","This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression."),This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression:$(1534,1,"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534","This backreference refers to a group that does not exist. There are no capturing groups in this regular expression."),This_character_cannot_be_escaped_in_a_regular_expression:$(1535,1,"This_character_cannot_be_escaped_in_a_regular_expression_1535","This character cannot be escaped in a regular expression."),Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead:$(1536,1,"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536","Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead."),Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class:$(1537,1,"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537","Decimal escape sequences and backreferences are not allowed in a character class."),Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set:$(1538,1,"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538","Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set."),A_bigint_literal_cannot_be_used_as_a_property_name:$(1539,1,"A_bigint_literal_cannot_be_used_as_a_property_name_1539","A 'bigint' literal cannot be used as a property name."),A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead:$(1540,2,"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540","A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.",void 0,void 0,!0),Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1541,1,"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541","Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute:$(1542,1,"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542","Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute."),Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0:$(1543,1,"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543",`Importing a JSON file into an ECMAScript module requires a 'type: "json"' import attribute when 'module' is set to '{0}'.`),Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0:$(1544,1,"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544","Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'."),The_types_of_0_are_incompatible_between_these_types:$(2200,1,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:$(2201,1,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:$(2202,1,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:$(2203,1,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2204,1,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:$(2205,1,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement:$(2206,1,"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206","The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement."),The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement:$(2207,1,"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207","The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement."),This_type_parameter_might_need_an_extends_0_constraint:$(2208,1,"This_type_parameter_might_need_an_extends_0_constraint_2208","This type parameter might need an `extends {0}` constraint."),The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2209,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209","The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate:$(2210,1,"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210","The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate."),Add_extends_constraint:$(2211,3,"Add_extends_constraint_2211","Add `extends` constraint."),Add_extends_constraint_to_all_type_parameters:$(2212,3,"Add_extends_constraint_to_all_type_parameters_2212","Add `extends` constraint to all type parameters"),Duplicate_identifier_0:$(2300,1,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2301,1,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:$(2302,1,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:$(2303,1,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:$(2304,1,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:$(2305,1,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:$(2306,1,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:$(2307,1,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:$(2308,1,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:$(2309,1,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:$(2310,1,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function:$(2311,1,"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311","Cannot find name '{0}'. Did you mean to write this in an async function?"),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2312,1,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:$(2313,1,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:$(2314,1,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:$(2315,1,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:$(2316,1,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:$(2317,1,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:$(2318,1,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:$(2319,1,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:$(2320,1,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:$(2321,1,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:$(2322,1,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:$(2323,1,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:$(2324,1,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:$(2325,1,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:$(2326,1,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:$(2327,1,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:$(2328,1,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:$(2329,1,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:$(2330,1,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:$(2331,1,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:$(2332,1,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_a_static_property_initializer:$(2334,1,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:$(2335,1,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:$(2336,1,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:$(2337,1,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:$(2338,1,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:$(2339,1,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:$(2340,1,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:$(2341,1,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:$(2343,1,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:$(2344,1,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:$(2345,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Untyped_function_calls_may_not_accept_type_arguments:$(2347,1,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:$(2348,1,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:$(2349,1,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:$(2350,1,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:$(2351,1,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:$(2352,1,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:$(2353,1,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:$(2354,1,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value:$(2355,1,"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:$(2356,1,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:$(2357,1,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:$(2358,1,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method:$(2359,1,"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359","The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2362,1,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:$(2363,1,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:$(2364,1,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:$(2365,1,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:$(2366,1,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap:$(2367,1,"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367","This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap."),Type_parameter_name_cannot_be_0:$(2368,1,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:$(2369,1,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:$(2370,1,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:$(2371,1,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:$(2372,1,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:$(2373,1,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:$(2374,1,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2375,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2376,1,"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376","A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:$(2377,1,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:$(2378,1,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties:$(2379,1,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379","Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties."),Overload_signatures_must_all_be_exported_or_non_exported:$(2383,1,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:$(2384,1,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:$(2385,1,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:$(2386,1,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:$(2387,1,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:$(2388,1,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:$(2389,1,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:$(2390,1,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:$(2391,1,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:$(2392,1,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:$(2393,1,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:$(2394,1,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:$(2395,1,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:$(2396,1,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:$(2397,1,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:$(2398,1,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:$(2399,1,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:$(2400,1,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers:$(2401,1,"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401","A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:$(2402,1,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:$(2403,1,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:$(2404,1,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:$(2405,1,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:$(2406,1,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:$(2407,1,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:$(2408,1,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:$(2409,1,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:$(2410,1,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target:$(2412,1,"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412","Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:$(2411,1,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:$(2413,1,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:$(2414,1,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:$(2415,1,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:$(2416,1,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:$(2417,1,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:$(2418,1,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:$(2419,1,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:$(2420,1,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2422,1,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:$(2423,1,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:$(2425,1,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:$(2426,1,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:$(2427,1,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:$(2428,1,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:$(2430,1,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:$(2431,1,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:$(2432,1,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:$(2433,1,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:$(2434,1,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:$(2435,1,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:$(2436,1,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:$(2437,1,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:$(2438,1,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:$(2439,1,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:$(2440,1,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:$(2441,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:$(2442,1,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:$(2443,1,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:$(2444,1,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:$(2445,1,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:$(2446,1,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:$(2447,1,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:$(2448,1,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:$(2449,1,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:$(2450,1,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:$(2451,1,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:$(2452,1,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),Variable_0_is_used_before_being_assigned:$(2454,1,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_alias_0_circularly_references_itself:$(2456,1,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:$(2457,1,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:$(2458,1,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:$(2459,1,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:$(2460,1,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:$(2461,1,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:$(2462,1,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:$(2463,1,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:$(2464,1,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:$(2465,1,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:$(2466,1,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:$(2467,1,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:$(2468,1,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:$(2469,1,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:$(2472,1,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:$(2473,1,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_must_be_constant_expressions:$(2474,1,"const_enum_member_initializers_must_be_constant_expressions_2474","const enum member initializers must be constant expressions."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:$(2475,1,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:$(2476,1,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:$(2477,1,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:$(2478,1,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:$(2480,1,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:$(2481,1,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:$(2483,1,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:$(2484,1,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:$(2487,1,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2488,1,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:$(2489,1,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:$(2490,1,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:$(2491,1,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:$(2492,1,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:$(2493,1,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:$(2494,1,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:$(2495,1,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression:$(2496,1,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496","The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:$(2497,1,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:$(2498,1,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2499,1,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:$(2500,1,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:$(2501,1,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:$(2502,1,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:$(2503,1,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:$(2504,1,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:$(2505,1,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:$(2506,1,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:$(2507,1,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:$(2508,1,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:$(2509,1,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:$(2510,1,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:$(2511,1,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:$(2512,1,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:$(2513,1,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),A_tuple_type_cannot_be_indexed_with_a_negative_value:$(2514,1,"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514","A tuple type cannot be indexed with a negative value."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:$(2515,1,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:$(2516,1,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:$(2517,1,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:$(2518,1,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:$(2519,1,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:$(2520,1,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method:$(2522,1,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522","The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:$(2523,1,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:$(2524,1,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:$(2526,1,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:$(2527,1,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:$(2528,1,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:$(2529,1,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:$(2530,1,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:$(2531,1,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:$(2532,1,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:$(2533,1,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:$(2534,1,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Type_0_cannot_be_used_to_index_type_1:$(2536,1,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:$(2537,1,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:$(2538,1,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:$(2539,1,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:$(2540,1,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),Index_signature_in_type_0_only_permits_reading:$(2542,1,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:$(2543,1,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:$(2544,1,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:$(2545,1,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:$(2547,1,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2548,1,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:$(2549,1,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:$(2550,1,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:$(2551,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:$(2552,1,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:$(2553,1,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:$(2554,1,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:$(2555,1,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:$(2556,1,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:$(2558,1,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:$(2559,1,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:$(2560,1,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:$(2561,1,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:$(2562,1,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:$(2563,1,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:$(2564,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:$(2565,1,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:$(2566,1,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:$(2567,1,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:$(2568,1,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Could_not_find_name_0_Did_you_mean_1:$(2570,1,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:$(2571,1,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),A_rest_element_type_must_be_an_array_type:$(2574,1,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:$(2575,1,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:$(2576,1,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:$(2577,1,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:$(2578,1,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:$(2580,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:$(2581,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:$(2582,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:$(2583,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:$(2584,1,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:$(2585,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Cannot_assign_to_0_because_it_is_a_constant:$(2588,1,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:$(2589,1,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:$(2590,1,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:$(2591,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:$(2592,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:$(2593,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:$(2594,1,"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594","This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:$(2595,1,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2596,1,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:$(2597,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2598,1,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:$(2602,1,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:$(2603,1,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:$(2604,1,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:$(2606,1,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:$(2607,1,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:$(2608,1,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:$(2609,1,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:$(2610,1,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:$(2611,1,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:$(2612,1,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:$(2613,1,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:$(2614,1,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:$(2615,1,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:$(2616,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:$(2617,1,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:$(2618,1,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:$(2619,1,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:$(2620,1,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:$(2621,1,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:$(2623,1,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:$(2624,1,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:$(2625,1,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:$(2626,1,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:$(2627,1,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:$(2628,1,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:$(2629,1,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:$(2630,1,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:$(2631,1,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:$(2632,1,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:$(2633,1,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:$(2634,1,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable:$(2635,1,"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635","Type '{0}' has no signatures for which the type argument list is applicable."),Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation:$(2636,1,"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636","Type '{0}' is not assignable to type '{1}' as implied by variance annotation."),Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types:$(2637,1,"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637","Variance annotations are only supported in type aliases for object, function, constructor, and mapped types."),Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator:$(2638,1,"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638","Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator."),React_components_cannot_include_JSX_namespace_names:$(2639,1,"React_components_cannot_include_JSX_namespace_names_2639","React components cannot include JSX namespace names"),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:$(2649,1,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more:$(2650,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650","Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:$(2651,1,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:$(2652,1,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:$(2653,1,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2:$(2654,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}."),Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more:$(2655,1,"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655","Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more."),Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1:$(2656,1,"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656","Non-abstract class expression is missing implementations for the following members of '{0}': {1}."),JSX_expressions_must_have_one_parent_element:$(2657,1,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:$(2658,1,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:$(2659,1,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:$(2660,1,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:$(2661,1,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:$(2662,1,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:$(2663,1,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:$(2664,1,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:$(2665,1,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:$(2666,1,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:$(2667,1,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:$(2668,1,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:$(2669,1,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:$(2670,1,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:$(2671,1,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:$(2672,1,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:$(2673,1,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:$(2674,1,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:$(2675,1,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:$(2676,1,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:$(2677,1,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:$(2678,1,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:$(2679,1,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:$(2680,1,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:$(2681,1,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:$(2683,1,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:$(2684,1,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:$(2685,1,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:$(2686,1,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:$(2687,1,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:$(2688,1,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:$(2689,1,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:$(2690,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:$(2692,1,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:$(2693,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:$(2694,1,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:$(2695,1,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:$(2696,1,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2697,1,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:$(2698,1,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:$(2699,1,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:$(2700,1,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:$(2701,1,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:$(2702,1,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:$(2703,1,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:$(2704,1,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2705,1,"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705","An async function or method in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:$(2706,1,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:$(2707,1,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:$(2708,1,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:$(2709,1,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:$(2710,1,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:$(2711,1,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:$(2712,1,"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712","A dynamic import call in ES5 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:$(2713,1,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:$(2714,1,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:$(2715,1,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:$(2716,1,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:$(2717,1,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:$(2718,1,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:$(2719,1,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:$(2720,1,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:$(2721,1,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:$(2722,1,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:$(2723,1,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:$(2724,1,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:$(2725,1,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:$(2726,1,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:$(2727,1,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:$(2728,3,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:$(2729,1,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:$(2730,1,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:$(2731,1,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:$(2732,1,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:$(2733,1,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:$(2734,1,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:$(2735,1,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:$(2736,1,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:$(2737,1,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:$(2738,3,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:$(2739,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:$(2740,1,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:$(2741,1,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:$(2742,1,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:$(2743,1,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:$(2744,1,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:$(2745,1,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:$(2746,1,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:$(2747,1,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_0_is_enabled:$(2748,1,"Cannot_access_ambient_const_enums_when_0_is_enabled_2748","Cannot access ambient const enums when '{0}' is enabled."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:$(2749,1,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:$(2750,1,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:$(2751,1,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:$(2752,1,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:$(2753,1,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:$(2754,1,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:$(2755,1,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:$(2756,1,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:$(2757,1,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2758,1,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:$(2759,1,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:$(2760,1,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:$(2761,1,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:$(2762,1,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:$(2763,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:$(2764,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:$(2765,1,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:$(2766,1,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:$(2767,1,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:$(2768,1,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:$(2769,1,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:$(2770,1,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:$(2771,1,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:$(2772,1,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:$(2773,1,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:$(2774,1,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:$(2775,1,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:$(2776,1,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:$(2777,1,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:$(2778,1,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:$(2779,1,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:$(2780,1,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:$(2781,1,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:$(2782,3,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:$(2783,1,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:$(2784,1,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:$(2785,1,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:$(2786,1,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:$(2787,1,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:$(2788,1,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:$(2789,1,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:$(2790,1,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:$(2791,1,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option:$(2792,1,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:$(2793,1,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:$(2794,1,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:$(2795,1,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:$(2796,1,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:$(2797,1,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:$(2798,1,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:$(2799,1,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:$(2800,1,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:$(2801,1,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:$(2802,1,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:$(2803,1,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:$(2804,1,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Private_accessor_was_defined_without_a_getter:$(2806,1,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:$(2807,1,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:$(2808,1,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses:$(2809,1,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses."),Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments:$(2810,1,"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810","Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments."),Initializer_for_property_0:$(2811,1,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:$(2812,1,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:$(2813,1,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:$(2814,1,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers:$(2815,1,"arguments_cannot_be_referenced_in_property_initializers_2815","'arguments' cannot be referenced in property initializers."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:$(2816,1,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:$(2817,1,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:$(2818,1,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:$(2819,1,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Type_0_is_not_assignable_to_type_1_Did_you_mean_2:$(2820,1,"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820","Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?"),Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2821,1,"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2821","Import assertions are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Import_assertions_cannot_be_used_with_type_only_imports_or_exports:$(2822,1,"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822","Import assertions cannot be used with type-only imports or exports."),Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve:$(2823,1,"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_nodenext_or_preserve_2823","Import attributes are only supported when the '--module' option is set to 'esnext', 'nodenext', or 'preserve'."),Cannot_find_namespace_0_Did_you_mean_1:$(2833,1,"Cannot_find_namespace_0_Did_you_mean_1_2833","Cannot find namespace '{0}'. Did you mean '{1}'?"),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path:$(2834,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path."),Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0:$(2835,1,"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835","Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?"),Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2836,1,"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836","Import assertions are not allowed on statements that compile to CommonJS 'require' calls."),Import_assertion_values_must_be_string_literal_expressions:$(2837,1,"Import_assertion_values_must_be_string_literal_expressions_2837","Import assertion values must be string literal expressions."),All_declarations_of_0_must_have_identical_constraints:$(2838,1,"All_declarations_of_0_must_have_identical_constraints_2838","All declarations of '{0}' must have identical constraints."),This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value:$(2839,1,"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839","This condition will always return '{0}' since JavaScript compares objects by reference, not value."),An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types:$(2840,1,"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840","An interface cannot extend a primitive type like '{0}'. It can only extend other named object types."),_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation:$(2842,1,"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842","'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?"),We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here:$(2843,1,"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843","We can only write a type for '{0}' by adding a type for the entire parameter here."),Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:$(2844,1,"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844","Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),This_condition_will_always_return_0:$(2845,1,"This_condition_will_always_return_0_2845","This condition will always return '{0}'."),A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead:$(2846,1,"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846","A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?"),The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression:$(2848,1,"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848","The right-hand side of an 'instanceof' expression must not be an instantiation expression."),Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1:$(2849,1,"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849","Target signature provides too few arguments. Expected {0} or more, but got {1}."),The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined:$(2850,1,"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850","The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined:$(2851,1,"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851","The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'."),await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:$(2852,1,"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852","'await using' statements are only allowed within async functions and at the top levels of modules."),await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:$(2853,1,"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853","'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher:$(2854,1,"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854","Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher."),Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super:$(2855,1,"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855","Class field '{0}' defined by the parent class is not accessible in the child class via super."),Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls:$(2856,1,"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856","Import attributes are not allowed on statements that compile to CommonJS 'require' calls."),Import_attributes_cannot_be_used_with_type_only_imports_or_exports:$(2857,1,"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857","Import attributes cannot be used with type-only imports or exports."),Import_attribute_values_must_be_string_literal_expressions:$(2858,1,"Import_attribute_values_must_be_string_literal_expressions_2858","Import attribute values must be string literal expressions."),Excessive_complexity_comparing_types_0_and_1:$(2859,1,"Excessive_complexity_comparing_types_0_and_1_2859","Excessive complexity comparing types '{0}' and '{1}'."),The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method:$(2860,1,"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860","The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method."),An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression:$(2861,1,"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861","An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression."),Type_0_is_generic_and_can_only_be_indexed_for_reading:$(2862,1,"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862","Type '{0}' is generic and can only be indexed for reading."),A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values:$(2863,1,"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863","A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values."),A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types:$(2864,1,"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864","A class cannot implement a primitive type like '{0}'. It can only implement other named object types."),Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2865,1,"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865","Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled."),Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled:$(2866,1,"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866","Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun:$(2867,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig:$(2868,1,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868","Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig."),Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish:$(2869,1,"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869","Right operand of ?? is unreachable because the left operand is never nullish."),This_binary_expression_is_never_nullish_Are_you_missing_parentheses:$(2870,1,"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870","This binary expression is never nullish. Are you missing parentheses?"),This_expression_is_always_nullish:$(2871,1,"This_expression_is_always_nullish_2871","This expression is always nullish."),This_kind_of_expression_is_always_truthy:$(2872,1,"This_kind_of_expression_is_always_truthy_2872","This kind of expression is always truthy."),This_kind_of_expression_is_always_falsy:$(2873,1,"This_kind_of_expression_is_always_falsy_2873","This kind of expression is always falsy."),This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found:$(2874,1,"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874","This JSX tag requires '{0}' to be in scope, but it could not be found."),This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed:$(2875,1,"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875","This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed."),This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0:$(2876,1,"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876",'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to "{0}".'),This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path:$(2877,1,"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877","This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path."),This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files:$(2878,1,"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878","This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files."),Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found:$(2879,1,"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879","Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found."),Import_declaration_0_is_using_private_name_1:$(4e3,1,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:$(4002,1,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:$(4004,1,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4006,1,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4008,1,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4010,1,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4012,1,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4014,1,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4016,1,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4019,1,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:$(4020,1,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:$(4021,1,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:$(4022,1,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4023,1,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:$(4024,1,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:$(4025,1,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4026,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4027,1,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:$(4028,1,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4029,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4030,1,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:$(4031,1,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4032,1,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:$(4033,1,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4034,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4035,1,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4036,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:$(4037,1,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4038,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4039,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4040,1,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4041,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4042,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:$(4043,1,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4044,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:$(4045,1,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4046,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:$(4047,1,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4048,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:$(4049,1,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4050,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4051,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:$(4052,1,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4053,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:$(4054,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:$(4055,1,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:$(4056,1,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:$(4057,1,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:$(4058,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:$(4059,1,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:$(4060,1,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4061,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4062,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:$(4063,1,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4064,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:$(4065,1,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4066,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:$(4067,1,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4068,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4069,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:$(4070,1,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4071,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:$(4072,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:$(4073,1,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4074,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:$(4075,1,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4076,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:$(4077,1,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:$(4078,1,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:$(4081,1,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:$(4082,1,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:$(4083,1,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:$(4084,1,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1:$(4085,1,"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085","Extends clause for inferred type '{0}' has or is using private name '{1}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4091,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:$(4092,1,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected:$(4094,1,"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094","Property '{0}' of exported anonymous class type may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4095,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4096,1,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:$(4097,1,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4098,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:$(4099,1,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:$(4100,1,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:$(4101,1,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:$(4102,1,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:$(4103,1,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:$(4104,1,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:$(4105,1,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:$(4106,1,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:$(4107,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:$(4108,1,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:$(4109,1,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:$(4110,1,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:$(4111,1,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:$(4112,1,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:$(4113,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:$(4114,1,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:$(4115,1,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:$(4116,1,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4117,1,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:$(4118,1,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4119,1,"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119","This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0:$(4120,1,"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120","This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class:$(4121,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121","This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0:$(4122,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122","This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'."),This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:$(4123,1,"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123","This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?"),Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next:$(4124,1,"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124","Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'."),Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given:$(4125,1,"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125","Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given."),One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value:$(4126,1,"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126","One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value."),The_current_host_does_not_support_the_0_option:$(5001,1,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:$(5009,1,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5010,1,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:$(5012,1,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Unknown_compiler_option_0:$(5023,1,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:$(5024,1,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:$(5025,1,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:$(5033,1,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:$(5042,1,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:$(5047,1,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:$(5051,1,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:$(5052,1,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:$(5053,1,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:$(5054,1,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:$(5055,1,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:$(5056,1,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:$(5057,1,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:$(5058,1,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:$(5059,1,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:$(5061,1,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:$(5062,1,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:$(5063,1,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:$(5064,1,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:$(5065,1,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:$(5066,1,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:$(5067,1,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:$(5068,1,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:$(5069,1,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic:$(5070,1,"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070","Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'."),Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd:$(5071,1,"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071","Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'."),Unknown_build_option_0:$(5072,1,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:$(5073,1,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:$(5074,1,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:$(5075,1,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:$(5076,1,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:$(5077,1,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:$(5078,1,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:$(5079,1,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:$(5080,1,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:$(5081,1,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:$(5082,1,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:$(5083,1,"Cannot_read_file_0_5083","Cannot read file '{0}'."),A_tuple_member_cannot_be_both_optional_and_rest:$(5085,1,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:$(5086,1,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:$(5087,1,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:$(5088,1,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:$(5089,1,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:$(5090,1,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled:$(5091,1,"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled."),The_root_value_of_a_0_file_must_be_an_object:$(5092,1,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:$(5093,1,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:$(5094,1,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later:$(5095,1,"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095","Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later."),Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set:$(5096,1,"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096","Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set."),An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled:$(5097,1,"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097","An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled."),Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler:$(5098,1,"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098","Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'."),Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error:$(5101,1,"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101",`Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '"ignoreDeprecations": "{2}"' to silence this error.`),Option_0_has_been_removed_Please_remove_it_from_your_configuration:$(5102,1,"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102","Option '{0}' has been removed. Please remove it from your configuration."),Invalid_value_for_ignoreDeprecations:$(5103,1,"Invalid_value_for_ignoreDeprecations_5103","Invalid value for '--ignoreDeprecations'."),Option_0_is_redundant_and_cannot_be_specified_with_option_1:$(5104,1,"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104","Option '{0}' is redundant and cannot be specified with option '{1}'."),Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System:$(5105,1,"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105","Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'."),Use_0_instead:$(5106,3,"Use_0_instead_5106","Use '{0}' instead."),Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error:$(5107,1,"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107",`Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '"ignoreDeprecations": "{3}"' to silence this error.`),Option_0_1_has_been_removed_Please_remove_it_from_your_configuration:$(5108,1,"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108","Option '{0}={1}' has been removed. Please remove it from your configuration."),Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1:$(5109,1,"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109","Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'."),Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1:$(5110,1,"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110","Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:$(6e3,3,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:$(6001,3,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:$(6002,3,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:$(6004,3,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:$(6005,3,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:$(6006,3,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:$(6007,3,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:$(6008,3,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:$(6009,3,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:$(6010,3,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:$(6011,3,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:$(6012,3,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:$(6013,3,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:$(6014,3,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:$(6015,3,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:$(6016,3,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:$(6017,3,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:$(6019,3,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:$(6020,3,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:$(6023,3,"Syntax_Colon_0_6023","Syntax: {0}"),options:$(6024,3,"options_6024","options"),file:$(6025,3,"file_6025","file"),Examples_Colon_0:$(6026,3,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:$(6027,3,"Options_Colon_6027","Options:"),Version_0:$(6029,3,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:$(6030,3,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:$(6031,3,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:$(6032,3,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:$(6034,3,"KIND_6034","KIND"),FILE:$(6035,3,"FILE_6035","FILE"),VERSION:$(6036,3,"VERSION_6036","VERSION"),LOCATION:$(6037,3,"LOCATION_6037","LOCATION"),DIRECTORY:$(6038,3,"DIRECTORY_6038","DIRECTORY"),STRATEGY:$(6039,3,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:$(6040,3,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Errors_Files:$(6041,3,"Errors_Files_6041","Errors Files"),Generates_corresponding_map_file:$(6043,3,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:$(6044,1,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:$(6045,1,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:$(6046,1,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:$(6048,1,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unable_to_open_file_0:$(6050,1,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:$(6051,1,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:$(6052,3,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:$(6053,1,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:$(6054,1,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:$(6055,3,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:$(6056,3,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:$(6058,3,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:$(6059,1,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:$(6060,3,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:$(6061,3,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:$(6064,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:$(6065,3,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:$(6066,3,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:$(6070,3,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:$(6071,3,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:$(6072,3,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:$(6073,3,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:$(6074,3,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:$(6075,3,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:$(6076,3,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:$(6077,3,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:$(6078,3,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:$(6079,3,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:$(6080,3,"Specify_JSX_code_generation_6080","Specify JSX code generation."),Only_amd_and_system_modules_are_supported_alongside_0:$(6082,1,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:$(6083,3,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:$(6084,3,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:$(6085,3,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:$(6086,3,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:$(6087,3,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:$(6088,3,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:$(6089,3,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:$(6090,3,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:$(6091,3,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:$(6092,3,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:$(6093,3,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:$(6094,3,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1:$(6095,3,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095","Loading module as file / folder, candidate module location '{0}', target file types: {1}."),File_0_does_not_exist:$(6096,3,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exists_use_it_as_a_name_resolution_result:$(6097,3,"File_0_exists_use_it_as_a_name_resolution_result_6097","File '{0}' exists - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_types_Colon_1:$(6098,3,"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098","Loading module '{0}' from 'node_modules' folder, target file types: {1}."),Found_package_json_at_0:$(6099,3,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:$(6100,3,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:$(6101,3,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:$(6102,3,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:$(6104,3,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:$(6105,3,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:$(6106,3,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:$(6107,3,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:$(6108,3,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:$(6109,3,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:$(6110,3,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:$(6111,3,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:$(6112,3,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:$(6113,3,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:$(6114,1,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:$(6115,3,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:$(6116,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:$(6119,3,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:$(6120,3,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:$(6121,3,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:$(6122,3,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:$(6123,3,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:$(6124,3,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:$(6125,3,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:$(6126,3,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:$(6127,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:$(6128,3,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:$(6130,3,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:$(6131,1,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:$(6132,3,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:$(6133,1,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:$(6134,3,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:$(6135,3,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:$(6136,3,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:$(6137,1,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:$(6138,1,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:$(6139,3,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:$(6140,1,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:$(6141,3,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:$(6142,1,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:$(6144,3,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:$(6146,3,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:$(6147,3,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:$(6148,3,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:$(6149,3,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:$(6150,3,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:$(6151,3,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:$(6152,3,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:$(6153,3,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:$(6154,3,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:$(6155,3,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:$(6156,3,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:$(6157,3,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:$(6158,3,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:$(6159,3,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:$(6160,3,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:$(6161,3,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:$(6162,3,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:$(6163,3,"The_character_set_of_the_input_files_6163","The character set of the input files."),Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1:$(6164,3,"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164","Skipping module '{0}' that looks like an absolute URI, target file types: {1}."),Do_not_truncate_error_messages:$(6165,3,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:$(6166,3,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:$(6167,3,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:$(6168,3,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:$(6169,3,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:$(6170,3,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:$(6171,3,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5:$(6179,3,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'."),Enable_all_strict_type_checking_options:$(6180,3,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),Scoped_package_detected_looking_in_0:$(6182,3,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6183,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6184,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:$(6186,3,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:$(6187,3,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:$(6188,1,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:$(6189,1,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:$(6191,3,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:$(6192,1,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:$(6193,3,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:$(6194,3,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:$(6195,3,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:$(6196,1,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:$(6197,3,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:$(6198,1,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:$(6199,1,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:$(6200,1,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:$(6201,3,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:$(6202,1,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:$(6203,3,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:$(6204,3,"and_here_6204","and here."),All_type_parameters_are_unused:$(6205,1,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:$(6206,3,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:$(6207,3,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:$(6208,3,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:$(6209,3,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:$(6210,3,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:$(6211,3,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:$(6212,3,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:$(6213,3,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:$(6214,3,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:$(6215,3,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:$(6216,3,"Found_1_error_6216","Found 1 error."),Found_0_errors:$(6217,3,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:$(6218,3,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:$(6219,3,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:$(6220,3,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:$(6221,3,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:$(6222,3,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:$(6223,3,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:$(6224,3,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:$(6225,3,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:$(6226,3,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:$(6227,3,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:$(6229,1,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:$(6230,1,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:$(6231,1,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:$(6232,1,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:$(6233,1,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:$(6234,1,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:$(6235,3,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:$(6236,1,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:$(6237,3,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:$(6238,1,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:$(6239,3,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:$(6240,3,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:$(6241,3,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:$(6242,3,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:$(6243,3,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:$(6244,3,"Modules_6244","Modules"),File_Management:$(6245,3,"File_Management_6245","File Management"),Emit:$(6246,3,"Emit_6246","Emit"),JavaScript_Support:$(6247,3,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:$(6248,3,"Type_Checking_6248","Type Checking"),Editor_Support:$(6249,3,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:$(6250,3,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:$(6251,3,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:$(6252,3,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:$(6253,3,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:$(6254,3,"Language_and_Environment_6254","Language and Environment"),Projects:$(6255,3,"Projects_6255","Projects"),Output_Formatting:$(6256,3,"Output_Formatting_6256","Output Formatting"),Completeness:$(6257,3,"Completeness_6257","Completeness"),_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file:$(6258,1,"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258","'{0}' should be set inside the 'compilerOptions' object of the config json file"),Found_1_error_in_0:$(6259,3,"Found_1_error_in_0_6259","Found 1 error in {0}"),Found_0_errors_in_the_same_file_starting_at_Colon_1:$(6260,3,"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260","Found {0} errors in the same file, starting at: {1}"),Found_0_errors_in_1_files:$(6261,3,"Found_0_errors_in_1_files_6261","Found {0} errors in {1} files."),File_name_0_has_a_1_extension_looking_up_2_instead:$(6262,3,"File_name_0_has_a_1_extension_looking_up_2_instead_6262","File name '{0}' has a '{1}' extension - looking up '{2}' instead."),Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set:$(6263,1,"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263","Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set."),Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present:$(6264,3,"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264","Enable importing files with any extension, provided a declaration file is present."),Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder:$(6265,3,"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265","Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder."),Option_0_can_only_be_specified_on_command_line:$(6266,1,"Option_0_can_only_be_specified_on_command_line_6266","Option '{0}' can only be specified on command line."),Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve:$(6270,3,"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270","Directory '{0}' has no containing package.json scope. Imports will not resolve."),Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6271,3,"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271","Import specifier '{0}' does not exist in package.json scope at path '{1}'."),Invalid_import_specifier_0_has_no_possible_resolutions:$(6272,3,"Invalid_import_specifier_0_has_no_possible_resolutions_6272","Invalid import specifier '{0}' has no possible resolutions."),package_json_scope_0_has_no_imports_defined:$(6273,3,"package_json_scope_0_has_no_imports_defined_6273","package.json scope '{0}' has no imports defined."),package_json_scope_0_explicitly_maps_specifier_1_to_null:$(6274,3,"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274","package.json scope '{0}' explicitly maps specifier '{1}' to null."),package_json_scope_0_has_invalid_type_for_target_of_specifier_1:$(6275,3,"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275","package.json scope '{0}' has invalid type for target of specifier '{1}'"),Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1:$(6276,3,"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276","Export specifier '{0}' does not exist in package.json scope at path '{1}'."),Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update:$(6277,3,"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277","Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings:$(6278,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278",`There are types at '{0}', but this result could not be resolved when respecting package.json "exports". The '{1}' library may need to update its package.json or typings.`),Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update:$(6279,3,"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279","Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update."),There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler:$(6280,3,"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280","There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'."),package_json_has_a_peerDependencies_field:$(6281,3,"package_json_has_a_peerDependencies_field_6281","'package.json' has a 'peerDependencies' field."),Found_peerDependency_0_with_1_version:$(6282,3,"Found_peerDependency_0_with_1_version_6282","Found peerDependency '{0}' with '{1}' version."),Failed_to_find_peerDependency_0:$(6283,3,"Failed_to_find_peerDependency_0_6283","Failed to find peerDependency '{0}'."),Enable_project_compilation:$(6302,3,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:$(6304,1,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:$(6305,1,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:$(6306,1,"Referenced_project_0_must_have_setting_composite_Colon_true_6306",`Referenced project '{0}' must have setting "composite": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:$(6307,1,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Referenced_project_0_may_not_disable_emit:$(6310,1,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_output_1_is_older_than_input_2:$(6350,3,"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350","Project '{0}' is out of date because output '{1}' is older than input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2:$(6351,3,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:$(6352,3,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:$(6353,3,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:$(6354,3,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:$(6355,3,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:$(6356,3,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:$(6357,3,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:$(6358,3,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:$(6359,3,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),Project_0_is_up_to_date:$(6361,3,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:$(6362,3,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:$(6363,3,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:$(6364,3,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:$(6365,3,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects."),Show_what_would_be_built_or_deleted_if_specified_with_clean:$(6367,3,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:$(6369,1,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:$(6370,1,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:$(6371,3,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:$(6374,3,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:$(6377,1,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Composite_projects_may_not_disable_incremental_compilation:$(6379,1,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:$(6380,3,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:$(6381,3,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:$(6382,3,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:$(6383,3,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6384,3,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:$(6385,2,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:$(6386,3,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:$(6387,2,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:$(6388,3,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:$(6389,3,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:$(6390,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:$(6391,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:$(6392,3,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6393,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6394,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6395,3,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:$(6396,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:$(6397,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:$(6398,3,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted:$(6399,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399","Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted"),Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files:$(6400,3,"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400","Project '{0}' is up to date but needs to update timestamps of output files that are older than input files"),Project_0_is_out_of_date_because_there_was_error_reading_file_1:$(6401,3,"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401","Project '{0}' is out of date because there was error reading file '{1}'"),Resolving_in_0_mode_with_conditions_1:$(6402,3,"Resolving_in_0_mode_with_conditions_1_6402","Resolving in {0} mode with conditions {1}."),Matched_0_condition_1:$(6403,3,"Matched_0_condition_1_6403","Matched '{0}' condition '{1}'."),Using_0_subpath_1_with_target_2:$(6404,3,"Using_0_subpath_1_with_target_2_6404","Using '{0}' subpath '{1}' with target '{2}'."),Saw_non_matching_condition_0:$(6405,3,"Saw_non_matching_condition_0_6405","Saw non-matching condition '{0}'."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions:$(6406,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406","Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions"),Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set:$(6407,3,"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407","Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set."),Use_the_package_json_exports_field_when_resolving_package_imports:$(6408,3,"Use_the_package_json_exports_field_when_resolving_package_imports_6408","Use the package.json 'exports' field when resolving package imports."),Use_the_package_json_imports_field_when_resolving_imports:$(6409,3,"Use_the_package_json_imports_field_when_resolving_imports_6409","Use the package.json 'imports' field when resolving imports."),Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports:$(6410,3,"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410","Conditions to set in addition to the resolver-specific defaults when resolving imports."),true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false:$(6411,3,"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411","`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more:$(6412,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412","Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more."),Entering_conditional_exports:$(6413,3,"Entering_conditional_exports_6413","Entering conditional exports."),Resolved_under_condition_0:$(6414,3,"Resolved_under_condition_0_6414","Resolved under condition '{0}'."),Failed_to_resolve_under_condition_0:$(6415,3,"Failed_to_resolve_under_condition_0_6415","Failed to resolve under condition '{0}'."),Exiting_conditional_exports:$(6416,3,"Exiting_conditional_exports_6416","Exiting conditional exports."),Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0:$(6417,3,"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417","Searching all ancestor node_modules directories for preferred extensions: {0}."),Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0:$(6418,3,"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418","Searching all ancestor node_modules directories for fallback extensions: {0}."),Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors:$(6419,3,"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419","Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors."),Project_0_is_out_of_date_because_1:$(6420,3,"Project_0_is_out_of_date_because_1_6420","Project '{0}' is out of date because {1}."),Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files:$(6421,3,"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421","Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:$(6500,3,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:$(6501,3,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:$(6502,3,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:$(6503,3,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:$(6504,1,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:$(6505,3,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:$(6506,3,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:$(6600,3,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:$(6601,3,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:$(6602,3,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:$(6603,3,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:$(6604,3,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:$(6605,3,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:$(6606,3,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:$(6607,3,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:$(6608,3,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:$(6609,3,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:$(6611,3,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:$(6612,3,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:$(6613,3,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:$(6614,3,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:$(6615,3,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:$(6616,3,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:$(6617,3,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:$(6618,3,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:$(6619,3,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:$(6620,3,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects."),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:$(6621,3,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:$(6622,3,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Only_output_d_ts_files_and_not_JavaScript_files:$(6623,3,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:$(6624,3,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:$(6625,3,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:$(6626,3,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility."),Filters_results_from_the_include_option:$(6627,3,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:$(6628,3,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:$(6629,3,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_legacy_experimental_decorators:$(6630,3,"Enable_experimental_support_for_legacy_experimental_decorators_6630","Enable experimental support for legacy experimental decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:$(6631,3,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:$(6632,3,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:$(6633,3,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:$(6634,3,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:$(6635,3,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:$(6636,3,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date."),Ensure_that_casing_is_correct_in_imports:$(6637,3,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:$(6638,3,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:$(6639,3,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Skip_building_downstream_projects_on_error_in_upstream_project:$(6640,3,"Skip_building_downstream_projects_on_error_in_upstream_project_6640","Skip building downstream projects on error in upstream project."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:$(6641,3,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:$(6642,3,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:$(6643,3,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:$(6644,3,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:$(6645,3,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:$(6646,3,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:$(6647,3,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'."),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:$(6648,3,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:$(6649,3,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'."),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:$(6650,3,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:$(6651,3,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:$(6652,3,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:$(6653,3,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:$(6654,3,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:$(6655,3,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:$(6656,3,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'."),Specify_what_module_code_is_generated:$(6657,3,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:$(6658,3,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:$(6659,3,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:$(6660,3,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:$(6661,3,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like '__extends' in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:$(6662,3,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:$(6663,3,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:$(6664,3,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:$(6665,3,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied 'any' type."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:$(6666,3,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:$(6667,3,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:$(6668,3,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when 'this' is given the type 'any'."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:$(6669,3,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:$(6670,3,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:$(6671,3,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type."),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:$(6672,3,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:$(6673,3,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:$(6674,3,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add 'undefined' to a type when accessed using an index."),Enable_error_reporting_when_local_variables_aren_t_read:$(6675,3,"Enable_error_reporting_when_local_variables_aren_t_read_6675","Enable error reporting when local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:$(6676,3,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read."),Deprecated_setting_Use_outFile_instead:$(6677,3,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use 'outFile' instead."),Specify_an_output_folder_for_all_emitted_files:$(6678,3,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:$(6679,3,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:$(6680,3,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:$(6681,3,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:$(6682,3,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing 'const enum' declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:$(6683,3,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:$(6684,3,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode."),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:$(6685,3,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read."),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:$(6686,3,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:$(6687,3,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:$(6688,3,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:$(6689,3,"Enable_importing_json_files_6689","Enable importing .json files."),Specify_the_root_folder_within_your_source_files:$(6690,3,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:$(6691,3,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:$(6692,3,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:$(6693,3,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:$(6694,3,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:$(6695,3,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:$(6697,3,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for 'bind', 'call', and 'apply' methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:$(6698,3,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:$(6699,3,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account 'null' and 'undefined'."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:$(6700,3,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:$(6701,3,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have '@internal' in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:$(6702,3,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:$(6703,3,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress 'noImplicitAny' errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:$(6704,3,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:$(6705,3,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:$(6706,3,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the 'moduleResolution' process."),Specify_the_path_to_tsbuildinfo_incremental_compilation_file:$(6707,3,"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707","Specify the path to .tsbuildinfo incremental compilation file."),Specify_options_for_automatic_acquisition_of_declaration_files:$(6709,3,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:$(6710,3,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like './node_modules/@types'."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:$(6711,3,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:$(6712,3,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:$(6713,3,"Enable_verbose_logging_6713","Enable verbose logging."),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:$(6714,3,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:$(6715,3,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:$(6717,3,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:$(6718,3,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types."),Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files:$(6719,3,"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719","Require sufficient annotation on exports so other tools can trivially generate declaration files."),Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any:$(6720,3,"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720","Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'."),Default_catch_clause_variables_as_unknown_instead_of_any:$(6803,3,"Default_catch_clause_variables_as_unknown_instead_of_any_6803","Default catch clause variables as 'unknown' instead of 'any'."),Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting:$(6804,3,"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804","Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting."),Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported:$(6805,3,"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805","Disable full type checking (only critical parse and emit errors will be reported)."),Check_side_effect_imports:$(6806,3,"Check_side_effect_imports_6806","Check side effect imports."),This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2:$(6807,1,"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807","This operation can be simplified. This shift is identical to `{0} {1} {2}`."),one_of_Colon:$(6900,3,"one_of_Colon_6900","one of:"),one_or_more_Colon:$(6901,3,"one_or_more_Colon_6901","one or more:"),type_Colon:$(6902,3,"type_Colon_6902","type:"),default_Colon:$(6903,3,"default_Colon_6903","default:"),module_system_or_esModuleInterop:$(6904,3,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:$(6905,3,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:$(6906,3,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:$(6907,3,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:$(6908,3,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:$(6909,3,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:$(69010,3,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:$(6911,3,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:$(6912,3,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:$(6913,3,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:$(6914,3,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:$(6915,3,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:$(6916,3,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:$(6917,3,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:$(6918,3,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:$(6919,3,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:$(6920,3,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:$(6921,3,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:$(6922,3,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:$(6923,3,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:$(6924,3,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:$(6925,3,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:$(6926,3,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:$(6927,3,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:$(6928,3,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:$(6929,3,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),true_for_ES2022_and_above_including_ESNext:$(6930,3,"true_for_ES2022_and_above_including_ESNext_6930","`true` for ES2022 and above, including ESNext."),List_of_file_name_suffixes_to_search_when_resolving_a_module:$(6931,1,"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931","List of file name suffixes to search when resolving a module."),Variable_0_implicitly_has_an_1_type:$(7005,1,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:$(7006,1,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:$(7008,1,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:$(7009,1,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:$(7010,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7011,1,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation:$(7012,1,"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012","This overload implicitly returns the type '{0}' because it lacks a return type annotation."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7013,1,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:$(7014,1,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:$(7015,1,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:$(7016,1,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:$(7017,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:$(7018,1,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:$(7019,1,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:$(7020,1,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:$(7022,1,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7023,1,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:$(7024,1,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation:$(7025,1,"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025","Generator implicitly has yield type '{0}'. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:$(7026,1,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:$(7027,1,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:$(7028,1,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:$(7029,1,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:$(7030,1,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:$(7031,1,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:$(7032,1,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:$(7033,1,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:$(7034,1,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:$(7035,1,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:$(7036,1,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:$(7037,3,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:$(7038,3,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:$(7039,1,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:$(7040,1,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:$(7041,1,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:$(7042,1,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7043,2,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7044,2,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:$(7045,2,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:$(7046,2,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:$(7047,2,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:$(7048,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:$(7049,2,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:$(7050,2,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:$(7051,1,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:$(7052,1,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:$(7053,1,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:$(7054,1,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:$(7055,1,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:$(7056,1,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:$(7057,1,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1:$(7058,1,"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058","If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`"),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead:$(7059,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059","This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead."),This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint:$(7060,1,"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060","This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint."),A_mapped_type_may_not_declare_properties_or_methods:$(7061,1,"A_mapped_type_may_not_declare_properties_or_methods_7061","A mapped type may not declare properties or methods."),You_cannot_rename_this_element:$(8e3,1,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:$(8001,1,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:$(8002,1,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:$(8003,1,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:$(8004,1,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:$(8005,1,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:$(8006,1,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:$(8008,1,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:$(8009,1,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:$(8010,1,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:$(8011,1,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:$(8012,1,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:$(8013,1,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:$(8016,1,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Signature_declarations_can_only_be_used_in_TypeScript_files:$(8017,1,"Signature_declarations_can_only_be_used_in_TypeScript_files_8017","Signature declarations can only be used in TypeScript files."),Report_errors_in_js_files:$(8019,3,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:$(8020,1,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:$(8021,1,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:$(8022,1,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:$(8023,1,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:$(8024,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:$(8025,1,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:$(8026,1,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:$(8027,1,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:$(8028,1,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:$(8029,1,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:$(8030,1,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:$(8031,1,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:$(8032,1,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:$(8033,1,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:$(8034,1,"The_tag_was_first_specified_here_8034","The tag was first specified here."),You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder:$(8035,1,"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035","You cannot rename elements that are defined in a 'node_modules' folder."),You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder:$(8036,1,"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036","You cannot rename elements that are defined in another 'node_modules' folder."),Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files:$(8037,1,"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037","Type satisfaction expressions can only be used in TypeScript files."),Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export:$(8038,1,"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038","Decorators may not appear after 'export' or 'export default' if they also appear before 'export'."),A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag:$(8039,1,"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039","A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag"),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:$(9005,1,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:$(9006,1,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9007,1,"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007","Function must have an explicit return type annotation with --isolatedDeclarations."),Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations:$(9008,1,"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008","Method must have an explicit return type annotation with --isolatedDeclarations."),At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9009,1,"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009","At least one accessor must have an explicit type annotation with --isolatedDeclarations."),Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9010,1,"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010","Variable must have an explicit type annotation with --isolatedDeclarations."),Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9011,1,"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011","Parameter must have an explicit type annotation with --isolatedDeclarations."),Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations:$(9012,1,"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012","Property must have an explicit type annotation with --isolatedDeclarations."),Expression_type_can_t_be_inferred_with_isolatedDeclarations:$(9013,1,"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013","Expression type can't be inferred with --isolatedDeclarations."),Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations:$(9014,1,"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014","Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations."),Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations:$(9015,1,"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015","Objects that contain spread assignments can't be inferred with --isolatedDeclarations."),Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations:$(9016,1,"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016","Objects that contain shorthand properties can't be inferred with --isolatedDeclarations."),Only_const_arrays_can_be_inferred_with_isolatedDeclarations:$(9017,1,"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017","Only const arrays can be inferred with --isolatedDeclarations."),Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations:$(9018,1,"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018","Arrays with spread elements can't inferred with --isolatedDeclarations."),Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations:$(9019,1,"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019","Binding elements can't be exported directly with --isolatedDeclarations."),Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations:$(9020,1,"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020","Enum member initializers must be computable without references to external symbols with --isolatedDeclarations."),Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations:$(9021,1,"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021","Extends clause can't contain an expression with --isolatedDeclarations."),Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations:$(9022,1,"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022","Inference from class expressions is not supported with --isolatedDeclarations."),Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function:$(9023,1,"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023","Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function."),Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations:$(9025,1,"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025","Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations."),Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations:$(9026,1,"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026","Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations."),Add_a_type_annotation_to_the_variable_0:$(9027,1,"Add_a_type_annotation_to_the_variable_0_9027","Add a type annotation to the variable {0}."),Add_a_type_annotation_to_the_parameter_0:$(9028,1,"Add_a_type_annotation_to_the_parameter_0_9028","Add a type annotation to the parameter {0}."),Add_a_type_annotation_to_the_property_0:$(9029,1,"Add_a_type_annotation_to_the_property_0_9029","Add a type annotation to the property {0}."),Add_a_return_type_to_the_function_expression:$(9030,1,"Add_a_return_type_to_the_function_expression_9030","Add a return type to the function expression."),Add_a_return_type_to_the_function_declaration:$(9031,1,"Add_a_return_type_to_the_function_declaration_9031","Add a return type to the function declaration."),Add_a_return_type_to_the_get_accessor_declaration:$(9032,1,"Add_a_return_type_to_the_get_accessor_declaration_9032","Add a return type to the get accessor declaration."),Add_a_type_to_parameter_of_the_set_accessor_declaration:$(9033,1,"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033","Add a type to parameter of the set accessor declaration."),Add_a_return_type_to_the_method:$(9034,1,"Add_a_return_type_to_the_method_9034","Add a return type to the method"),Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit:$(9035,1,"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035","Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit."),Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it:$(9036,1,"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036","Move the expression in default export to a variable and add a type annotation to it."),Default_exports_can_t_be_inferred_with_isolatedDeclarations:$(9037,1,"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037","Default exports can't be inferred with --isolatedDeclarations."),Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations:$(9038,1,"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038","Computed property names on class or object literals cannot be inferred with --isolatedDeclarations."),Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations:$(9039,1,"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039","Type containing private name '{0}' can't be used with --isolatedDeclarations."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:$(17e3,1,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:$(17001,1,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:$(17002,1,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:$(17004,1,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:$(17005,1,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17006,1,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:$(17007,1,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:$(17008,1,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:$(17009,1,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:$(17010,1,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:$(17011,1,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:$(17012,1,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:$(17013,1,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:$(17014,1,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:$(17015,1,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:$(17016,1,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:$(17017,1,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:$(17018,1,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17019,1,"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019","'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1:$(17020,1,"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020","'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?"),Unicode_escape_sequence_cannot_appear_here:$(17021,1,"Unicode_escape_sequence_cannot_appear_here_17021","Unicode escape sequence cannot appear here."),Circularity_detected_while_resolving_configuration_Colon_0:$(18e3,1,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),The_files_list_in_config_file_0_is_empty:$(18002,1,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:$(18003,1,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module:$(80001,2,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001","File is a CommonJS module; it may be converted to an ES module."),This_constructor_function_may_be_converted_to_a_class_declaration:$(80002,2,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:$(80003,2,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:$(80004,2,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:$(80005,2,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:$(80006,2,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:$(80007,2,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:$(80008,2,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),JSDoc_typedef_may_be_converted_to_TypeScript_type:$(80009,2,"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009","JSDoc typedef may be converted to TypeScript type."),JSDoc_typedefs_may_be_converted_to_TypeScript_types:$(80010,2,"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010","JSDoc typedefs may be converted to TypeScript types."),Add_missing_super_call:$(90001,3,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:$(90002,3,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:$(90003,3,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:$(90004,3,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:$(90005,3,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:$(90006,3,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:$(90007,3,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:$(90008,3,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:$(90010,3,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:$(90011,3,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:$(90012,3,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_1:$(90013,3,"Import_0_from_1_90013",`Import '{0}' from "{1}"`),Change_0_to_1:$(90014,3,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Declare_property_0:$(90016,3,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:$(90017,3,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:$(90018,3,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:$(90019,3,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:$(90020,3,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:$(90021,3,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:$(90022,3,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:$(90023,3,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:$(90024,3,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:$(90025,3,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:$(90026,3,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:$(90027,3,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:$(90028,3,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:$(90029,3,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:$(90030,3,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:$(90031,3,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Add_parameter_name:$(90034,3,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:$(90035,3,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:$(90036,3,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:$(90037,3,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:$(90038,3,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:$(90039,3,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:$(90041,3,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:$(90053,3,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Includes_imports_of_types_referenced_by_0:$(90054,3,"Includes_imports_of_types_referenced_by_0_90054","Includes imports of types referenced by '{0}'"),Remove_type_from_import_declaration_from_0:$(90055,3,"Remove_type_from_import_declaration_from_0_90055",`Remove 'type' from import declaration from "{0}"`),Remove_type_from_import_of_0_from_1:$(90056,3,"Remove_type_from_import_of_0_from_1_90056",`Remove 'type' from import of '{0}' from "{1}"`),Add_import_from_0:$(90057,3,"Add_import_from_0_90057",'Add import from "{0}"'),Update_import_from_0:$(90058,3,"Update_import_from_0_90058",'Update import from "{0}"'),Export_0_from_module_1:$(90059,3,"Export_0_from_module_1_90059","Export '{0}' from module '{1}'"),Export_all_referenced_locals:$(90060,3,"Export_all_referenced_locals_90060","Export all referenced locals"),Update_modifiers_of_0:$(90061,3,"Update_modifiers_of_0_90061","Update modifiers of '{0}'"),Add_annotation_of_type_0:$(90062,3,"Add_annotation_of_type_0_90062","Add annotation of type '{0}'"),Add_return_type_0:$(90063,3,"Add_return_type_0_90063","Add return type '{0}'"),Extract_base_class_to_variable:$(90064,3,"Extract_base_class_to_variable_90064","Extract base class to variable"),Extract_default_export_to_variable:$(90065,3,"Extract_default_export_to_variable_90065","Extract default export to variable"),Extract_binding_expressions_to_variable:$(90066,3,"Extract_binding_expressions_to_variable_90066","Extract binding expressions to variable"),Add_all_missing_type_annotations:$(90067,3,"Add_all_missing_type_annotations_90067","Add all missing type annotations"),Add_satisfies_and_an_inline_type_assertion_with_0:$(90068,3,"Add_satisfies_and_an_inline_type_assertion_with_0_90068","Add satisfies and an inline type assertion with '{0}'"),Extract_to_variable_and_replace_with_0_as_typeof_0:$(90069,3,"Extract_to_variable_and_replace_with_0_as_typeof_0_90069","Extract to variable and replace with '{0} as typeof {0}'"),Mark_array_literal_as_const:$(90070,3,"Mark_array_literal_as_const_90070","Mark array literal as const"),Annotate_types_of_properties_expando_function_in_a_namespace:$(90071,3,"Annotate_types_of_properties_expando_function_in_a_namespace_90071","Annotate types of properties expando function in a namespace"),Convert_function_to_an_ES2015_class:$(95001,3,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_0_to_1_in_0:$(95003,3,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:$(95004,3,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:$(95005,3,"Extract_function_95005","Extract function"),Extract_constant:$(95006,3,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:$(95007,3,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:$(95008,3,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:$(95009,3,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Infer_type_of_0_from_usage:$(95011,3,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:$(95012,3,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:$(95013,3,"Convert_to_default_import_95013","Convert to default import"),Install_0:$(95014,3,"Install_0_95014","Install '{0}'"),Replace_import_with_0:$(95015,3,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:$(95016,3,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES_module:$(95017,3,"Convert_to_ES_module_95017","Convert to ES module"),Add_undefined_type_to_property_0:$(95018,3,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:$(95019,3,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:$(95020,3,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:$(95021,3,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:$(95022,3,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:$(95023,3,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:$(95024,3,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:$(95025,3,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:$(95026,3,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:$(95027,3,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:$(95028,3,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:$(95029,3,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:$(95030,3,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:$(95031,3,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:$(95032,3,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:$(95033,3,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:$(95034,3,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:$(95035,3,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:$(95036,3,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:$(95037,3,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:$(95038,3,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:$(95039,3,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:$(95040,3,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:$(95041,3,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:$(95042,3,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:$(95043,3,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:$(95044,3,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:$(95045,3,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:$(95046,3,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:$(95047,3,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:$(95048,3,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:$(95049,3,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:$(95050,3,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:$(95051,3,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:$(95052,3,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:$(95053,3,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:$(95054,3,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:$(95055,3,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:$(95056,3,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:$(95057,3,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:$(95058,3,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:$(95059,3,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:$(95060,3,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:$(95061,3,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:$(95062,3,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:$(95063,3,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:$(95064,3,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:$(95065,3,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:$(95066,3,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:$(95067,3,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:$(95068,3,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:$(95069,3,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:$(95070,3,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:$(95071,3,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:$(95072,3,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:$(95073,3,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:$(95074,3,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:$(95075,3,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:$(95077,3,"Extract_type_95077","Extract type"),Extract_to_type_alias:$(95078,3,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:$(95079,3,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:$(95080,3,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:$(95081,3,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:$(95082,3,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:$(95083,3,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:$(95084,3,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:$(95085,3,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:$(95086,3,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:$(95087,3,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:$(95088,3,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:$(95089,3,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:$(95090,3,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:$(95091,3,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:$(95092,3,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:$(95093,3,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:$(95094,3,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:$(95095,3,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:$(95096,3,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:$(95097,3,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:$(95098,3,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:$(95099,3,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:$(95100,3,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:$(95101,3,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Convert_all_const_to_let:$(95102,3,"Convert_all_const_to_let_95102","Convert all 'const' to 'let'"),Convert_function_expression_0_to_arrow_function:$(95105,3,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:$(95106,3,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:$(95107,3,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:$(95108,3,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:$(95109,3,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file:$(95110,3,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig to read more about this file"),Add_a_return_statement:$(95111,3,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:$(95112,3,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:$(95113,3,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:$(95114,3,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:$(95115,3,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:$(95116,3,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:$(95117,3,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:$(95118,3,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:$(95119,3,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:$(95120,3,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:$(95121,3,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:$(95122,3,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:$(95123,3,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:$(95124,3,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:$(95125,3,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:$(95126,3,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:$(95127,3,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:$(95128,3,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:$(95129,3,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:$(95130,3,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:$(95131,3,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:$(95132,3,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:$(95133,3,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:$(95134,3,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:$(95135,3,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:$(95136,3,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:$(95137,3,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:$(95138,3,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:$(95139,3,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:$(95140,3,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:$(95141,3,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:$(95142,3,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:$(95143,3,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:$(95144,3,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:$(95145,3,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:$(95146,3,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:$(95147,3,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:$(95148,3,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:$(95149,3,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:$(95150,3,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:$(95151,3,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:$(95152,3,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:$(95153,3,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenations_and_string_literals:$(95154,3,"Can_only_convert_string_concatenations_and_string_literals_95154","Can only convert string concatenations and string literals"),Selection_is_not_a_valid_statement_or_statements:$(95155,3,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:$(95156,3,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:$(95157,3,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:$(95158,3,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:$(95159,3,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:$(95160,3,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:$(95161,3,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:$(95162,3,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:$(95163,3,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:$(95164,3,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:$(95165,3,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:$(95166,3,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:$(95167,3,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:$(95168,3,"Add_all_missing_attributes_95168","Add all missing attributes"),Add_undefined_to_optional_property_type:$(95169,3,"Add_undefined_to_optional_property_type_95169","Add 'undefined' to optional property type"),Convert_named_imports_to_default_import:$(95170,3,"Convert_named_imports_to_default_import_95170","Convert named imports to default import"),Delete_unused_param_tag_0:$(95171,3,"Delete_unused_param_tag_0_95171","Delete unused '@param' tag '{0}'"),Delete_all_unused_param_tags:$(95172,3,"Delete_all_unused_param_tags_95172","Delete all unused '@param' tags"),Rename_param_tag_name_0_to_1:$(95173,3,"Rename_param_tag_name_0_to_1_95173","Rename '@param' tag name '{0}' to '{1}'"),Use_0:$(95174,3,"Use_0_95174","Use `{0}`."),Use_Number_isNaN_in_all_conditions:$(95175,3,"Use_Number_isNaN_in_all_conditions_95175","Use `Number.isNaN` in all conditions."),Convert_typedef_to_TypeScript_type:$(95176,3,"Convert_typedef_to_TypeScript_type_95176","Convert typedef to TypeScript type."),Convert_all_typedef_to_TypeScript_types:$(95177,3,"Convert_all_typedef_to_TypeScript_types_95177","Convert all typedef to TypeScript types."),Move_to_file:$(95178,3,"Move_to_file_95178","Move to file"),Cannot_move_to_file_selected_file_is_invalid:$(95179,3,"Cannot_move_to_file_selected_file_is_invalid_95179","Cannot move to file, selected file is invalid"),Use_import_type:$(95180,3,"Use_import_type_95180","Use 'import type'"),Use_type_0:$(95181,3,"Use_type_0_95181","Use 'type {0}'"),Fix_all_with_type_only_imports:$(95182,3,"Fix_all_with_type_only_imports_95182","Fix all with type-only imports"),Cannot_move_statements_to_the_selected_file:$(95183,3,"Cannot_move_statements_to_the_selected_file_95183","Cannot move statements to the selected file"),Inline_variable:$(95184,3,"Inline_variable_95184","Inline variable"),Could_not_find_variable_to_inline:$(95185,3,"Could_not_find_variable_to_inline_95185","Could not find variable to inline."),Variables_with_multiple_declarations_cannot_be_inlined:$(95186,3,"Variables_with_multiple_declarations_cannot_be_inlined_95186","Variables with multiple declarations cannot be inlined."),Add_missing_comma_for_object_member_completion_0:$(95187,3,"Add_missing_comma_for_object_member_completion_0_95187","Add missing comma for object member completion '{0}'."),Add_missing_parameter_to_0:$(95188,3,"Add_missing_parameter_to_0_95188","Add missing parameter to '{0}'"),Add_missing_parameters_to_0:$(95189,3,"Add_missing_parameters_to_0_95189","Add missing parameters to '{0}'"),Add_all_missing_parameters:$(95190,3,"Add_all_missing_parameters_95190","Add all missing parameters"),Add_optional_parameter_to_0:$(95191,3,"Add_optional_parameter_to_0_95191","Add optional parameter to '{0}'"),Add_optional_parameters_to_0:$(95192,3,"Add_optional_parameters_to_0_95192","Add optional parameters to '{0}'"),Add_all_optional_parameters:$(95193,3,"Add_all_optional_parameters_95193","Add all optional parameters"),Wrap_in_parentheses:$(95194,3,"Wrap_in_parentheses_95194","Wrap in parentheses"),Wrap_all_invalid_decorator_expressions_in_parentheses:$(95195,3,"Wrap_all_invalid_decorator_expressions_in_parentheses_95195","Wrap all invalid decorator expressions in parentheses"),Add_resolution_mode_import_attribute:$(95196,3,"Add_resolution_mode_import_attribute_95196","Add 'resolution-mode' import attribute"),Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it:$(95197,3,"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197","Add 'resolution-mode' import attribute to all type-only imports that need it"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:$(18004,1,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:$(18006,1,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:$(18007,1,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:$(18009,1,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:$(18010,1,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:$(18011,1,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:$(18012,1,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:$(18013,1,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:$(18014,1,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:$(18015,1,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:$(18016,1,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:$(18017,1,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:$(18018,1,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:$(18019,1,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:$(18024,1,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:$(18026,1,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:$(18027,1,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18028,1,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:$(18029,1,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:$(18030,1,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:$(18031,1,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:$(18032,1,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values:$(18033,1,"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033","Type '{0}' is not assignable to type '{1}' as required for computed enum member values."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:$(18034,3,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:$(18035,1,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:$(18036,1,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),await_expression_cannot_be_used_inside_a_class_static_block:$(18037,1,"await_expression_cannot_be_used_inside_a_class_static_block_18037","'await' expression cannot be used inside a class static block."),for_await_loops_cannot_be_used_inside_a_class_static_block:$(18038,1,"for_await_loops_cannot_be_used_inside_a_class_static_block_18038","'for await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:$(18039,1,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:$(18041,1,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block."),_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation:$(18042,1,"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042","'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation."),Types_cannot_appear_in_export_declarations_in_JavaScript_files:$(18043,1,"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043","Types cannot appear in export declarations in JavaScript files."),_0_is_automatically_exported_here:$(18044,3,"_0_is_automatically_exported_here_18044","'{0}' is automatically exported here."),Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher:$(18045,1,"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045","Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher."),_0_is_of_type_unknown:$(18046,1,"_0_is_of_type_unknown_18046","'{0}' is of type 'unknown'."),_0_is_possibly_null:$(18047,1,"_0_is_possibly_null_18047","'{0}' is possibly 'null'."),_0_is_possibly_undefined:$(18048,1,"_0_is_possibly_undefined_18048","'{0}' is possibly 'undefined'."),_0_is_possibly_null_or_undefined:$(18049,1,"_0_is_possibly_null_or_undefined_18049","'{0}' is possibly 'null' or 'undefined'."),The_value_0_cannot_be_used_here:$(18050,1,"The_value_0_cannot_be_used_here_18050","The value '{0}' cannot be used here."),Compiler_option_0_cannot_be_given_an_empty_string:$(18051,1,"Compiler_option_0_cannot_be_given_an_empty_string_18051","Compiler option '{0}' cannot be given an empty string."),Its_type_0_is_not_a_valid_JSX_element_type:$(18053,1,"Its_type_0_is_not_a_valid_JSX_element_type_18053","Its type '{0}' is not a valid JSX element type."),await_using_statements_cannot_be_used_inside_a_class_static_block:$(18054,1,"await_using_statements_cannot_be_used_inside_a_class_static_block_18054","'await using' statements cannot be used inside a class static block."),_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled:$(18055,1,"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055","'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled."),Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled:$(18056,1,"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056","Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled."),String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020:$(18057,1,"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057","String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.")};function H1(e){return e>=80}function S7a(e){return e===32||H1(e)}var LNr={abstract:128,accessor:129,any:133,as:130,asserts:131,assert:132,bigint:163,boolean:136,break:83,case:84,catch:85,class:86,continue:88,const:87,constructor:137,debugger:89,declare:138,default:90,delete:91,do:92,else:93,enum:94,export:95,extends:96,false:97,finally:98,for:99,from:161,function:100,get:139,if:101,implements:119,import:102,in:103,infer:140,instanceof:104,interface:120,intrinsic:141,is:142,keyof:143,let:121,module:144,namespace:145,never:146,new:105,null:106,number:150,object:151,package:122,private:123,protected:124,public:125,override:164,out:147,readonly:148,require:149,global:162,return:107,satisfies:152,set:153,static:126,string:154,super:108,switch:109,symbol:155,this:110,throw:111,true:112,try:113,type:156,typeof:114,undefined:157,unique:158,unknown:159,using:160,var:115,void:116,while:117,with:118,yield:127,async:134,await:135,of:165},v7a=new Map(Object.entries(LNr)),gvi=new Map(Object.entries({...LNr,"{":19,"}":20,"(":21,")":22,"[":23,"]":24,".":25,"...":26,";":27,",":28,"<":30,">":32,"<=":33,">=":34,"==":35,"!=":36,"===":37,"!==":38,"=>":39,"+":40,"-":41,"**":43,"*":42,"/":44,"%":45,"++":46,"--":47,"<<":48,">":49,">>>":50,"&":51,"|":52,"^":53,"!":54,"~":55,"&&":56,"||":57,"?":58,"??":61,"?.":29,":":59,"=":64,"+=":65,"-=":66,"*=":67,"**=":68,"/=":69,"%=":70,"<<=":71,">>=":72,">>>=":73,"&=":74,"|=":75,"^=":79,"||=":76,"&&=":77,"??=":78,"@":60,"#":63,"`":62})),Avi=new Map([[100,1],[103,2],[105,4],[109,8],[115,16],[117,32],[118,64],[121,128]]),B7a=new Map([[1,tJe.RegularExpressionFlagsHasIndices],[16,tJe.RegularExpressionFlagsDotAll],[32,tJe.RegularExpressionFlagsUnicode],[64,tJe.RegularExpressionFlagsUnicodeSets],[128,tJe.RegularExpressionFlagsSticky]]),w7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],T7a=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],R7a=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2160,2183,2185,2190,2208,2249,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3165,3165,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3293,3294,3296,3297,3313,3314,3332,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5905,5919,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6988,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69248,69289,69296,69297,69376,69404,69415,69415,69424,69445,69488,69505,69552,69572,69600,69622,69635,69687,69745,69746,69749,69749,69763,69807,69840,69864,69891,69926,69956,69956,69959,69959,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70207,70208,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70753,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71488,71494,71680,71723,71840,71903,71935,71942,71945,71945,71948,71955,71957,71958,71960,71983,71999,71999,72001,72001,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72368,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73474,73474,73476,73488,73490,73523,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78913,78918,82944,83526,92160,92728,92736,92766,92784,92862,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,122624,122654,122661,122666,122928,122989,123136,123180,123191,123197,123214,123214,123536,123565,123584,123627,124112,124139,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743],N7a=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2160,2183,2185,2190,2200,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2901,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3132,3140,3142,3144,3146,3149,3157,3158,3160,3162,3165,3165,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3293,3294,3296,3299,3302,3311,3313,3315,3328,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3457,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3790,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5909,5919,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6159,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6847,6862,6912,6988,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12543,12549,12591,12593,12686,12704,12735,12784,12799,13312,19903,19968,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42954,42960,42961,42963,42963,42965,42969,42994,43047,43052,43052,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43881,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,66928,66938,66940,66954,66956,66962,66964,66965,66967,66977,66979,66993,66995,67001,67003,67004,67072,67382,67392,67413,67424,67431,67456,67461,67463,67504,67506,67514,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69248,69289,69291,69292,69296,69297,69373,69404,69415,69415,69424,69456,69488,69509,69552,69572,69600,69622,69632,69702,69734,69749,69759,69818,69826,69826,69840,69864,69872,69881,69888,69940,69942,69951,69956,69959,69968,70003,70006,70006,70016,70084,70089,70092,70094,70106,70108,70108,70144,70161,70163,70199,70206,70209,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70753,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71488,71494,71680,71738,71840,71913,71935,71942,71945,71945,71948,71955,71957,71958,71960,71989,71991,71992,71995,72003,72016,72025,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72368,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73472,73488,73490,73530,73534,73538,73552,73561,73648,73648,73728,74649,74752,74862,74880,75075,77712,77808,77824,78895,78912,78933,82944,83526,92160,92728,92736,92766,92768,92777,92784,92862,92864,92873,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94180,94192,94193,94208,100343,100352,101589,101632,101640,110576,110579,110581,110587,110589,110590,110592,110882,110898,110898,110928,110930,110933,110933,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,118528,118573,118576,118598,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122624,122654,122661,122666,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,122928,122989,123023,123023,123136,123180,123184,123197,123200,123209,123214,123214,123536,123566,123584,123641,124112,124153,124896,124902,124904,124907,124909,124910,124912,124926,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,130032,130041,131072,173791,173824,177977,177984,178205,178208,183969,183984,191456,191472,192093,194560,195101,196608,201546,201552,205743,917760,917999],D7a=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,k7a=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/,x7a=/@(?:see|link)/i;function Ybt(e,t){if(e=2?Ybt(e,R7a):Ybt(e,w7a)}function F7a(e,t){return t>=2?Ybt(e,N7a):Ybt(e,T7a)}function dvi(e){let t=[];return e.forEach((r,n)=>{t[r]=n}),t}var Z7a=dvi(gvi);function by(e){return Z7a[e]}function pvi(e){return gvi.get(e)}var STu=dvi(Avi);function x2i(e){return Avi.get(e)}function fvi(e){let t=[],r=0,n=0;for(;r127&&CV(a)&&(t.push(n),n=r);break}}return t.push(n),t}function L7a(e,t,r,n,a){(t<0||t>=e.length)&&(a?t=t<0?0:t>=e.length?e.length-1:t:Zo.fail(`Bad line number. Line: ${t}, lineStarts.length: ${e.length} , line map is correct? ${n!==void 0?O6a(e,fvi(n)):"unknown"}`));let o=e[t]+r;return a?o>e[t+1]?e[t+1]:typeof n=="string"&&o>n.length?n.length:o:(t=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function CV(e){return e===10||e===13||e===8232||e===8233}function mce(e){return e>=48&&e<=57}function XRr(e){return mce(e)||e>=65&&e<=70||e>=97&&e<=102}function VNr(e){return e>=65&&e<=90||e>=97&&e<=122}function hvi(e){return VNr(e)||mce(e)||e===95}function JRr(e){return e>=48&&e<=55}function dj(e,t,r,n,a){if(bJe(t))return t;let o=!1;for(;;){let l=e.charCodeAt(t);switch(l){case 13:e.charCodeAt(t+1)===10&&t++;case 10:if(t++,r)return t;o=!!a;continue;case 9:case 11:case 12:case 32:t++;continue;case 47:if(n)break;if(e.charCodeAt(t+1)===47){for(t+=2;t127&&BNe(l)){t++;continue}break}return t}}var Zbt=7;function Gme(e,t){if(Zo.assert(t>=0),t===0||CV(e.charCodeAt(t-1))){let r=e.charCodeAt(t);if(t+Zbt=0&&r127&&BNe(B)){b&&CV(B)&&(C=!0),r++;continue}break e}}return b&&(N=a(A,f,I,C,o,N)),N}function W7a(e,t,r,n){return $bt(!1,e,t,!1,r,n)}function O7a(e,t,r,n){return $bt(!1,e,t,!0,r,n)}function M7a(e,t,r,n,a){return $bt(!0,e,t,!1,r,n,a)}function H7a(e,t,r,n,a){return $bt(!0,e,t,!0,r,n,a)}function _vi(e,t,r,n,a,o=[]){return o.push({kind:r,pos:e,end:t,hasTrailingNewLine:n}),o}function lNr(e,t){return M7a(e,t,_vi,void 0,void 0)}function Y7a(e,t){return H7a(e,t,_vi,void 0,void 0)}function yvi(e){let t=PNr.exec(e);if(t)return t[0]}function i4(e,t){return VNr(e)||e===36||e===95||e>127&&G7a(e,t)}function See(e,t,r){return hvi(e)||e===36||(r===1?e===45||e===58:!1)||e>127&&F7a(e,t)}function Q7a(e,t,r){let n=Fme(e,0);if(!i4(n,t))return!1;for(let a=xR(n);aC,getStartPos:()=>C,getTokenEnd:()=>f,getTextPos:()=>f,getToken:()=>E,getTokenStart:()=>b,getTokenPos:()=>b,getTokenText:()=>A.substring(b,f),getTokenValue:()=>N,hasUnicodeEscape:()=>(B&1024)!==0,hasExtendedUnicodeEscape:()=>(B&8)!==0,hasPrecedingLineBreak:()=>(B&1)!==0,hasPrecedingJSDocComment:()=>(B&2)!==0,hasPrecedingJSDocLeadingAsterisks:()=>(B&32768)!==0,isIdentifier:()=>E===80||E>118,isReservedWord:()=>E>=83&&E<=118,isUnterminated:()=>(B&4)!==0,getCommentDirectives:()=>F,getNumericLiteralFlags:()=>B&25584,getTokenFlags:()=>B,reScanGreaterToken:qr,reScanAsteriskEqualsToken:_n,reScanSlashToken:ke,reScanTemplateToken:po,reScanTemplateHeadOrNoSubstitutionTemplate:Vr,scanJsxIdentifier:cl,scanJsxAttributeValue:Sc,reScanJsxAttributeValue:Hr,reScanJsxToken:xi,reScanLessThanToken:io,reScanHashToken:ga,reScanQuestionToken:Ya,reScanInvalidIdentifier:cr,scanJsxToken:Gc,scanJsDocToken:Ft,scanJSDocCommentTextToken:Wr,scan:Xt,getText:ps,clearCommentDirectives:yo,setText:bo,setScriptTarget:gc,setLanguageVariant:Cg,setScriptKind:Nc,setJSDocParsingMode:iA,setOnError:Qa,resetTokenState:ma,setTextPos:ma,setSkipJsDocLeadingAsterisks:vu,tryScan:Qi,lookAhead:Or,scanRange:Rn};return Zo.isDebugging&&Object.defineProperty(ne,"__debugShowCurrentPositionInText",{get:()=>{let li=ne.getText();return li.slice(0,ne.getTokenFullStart())+"\u2551"+li.slice(ne.getTokenFullStart())}}),ne;function ce(li){return Fme(A,li)}function fe(li){return li>=0&&li=0&&li=65&&Wc<=70)Wc+=32;else if(!(Wc>=48&&Wc<=57||Wc>=97&&Wc<=102))break;Xa.push(Wc),f++,Yl=!1}return Xa.length=I){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}let ac=ue(f);if(ac===Ei){Ps+=A.substring(Xa,f),f++;break}if(ac===92&&!li){Ps+=A.substring(Xa,f),Ps+=Yt(3),Xa=f;continue}if((ac===10||ac===13)&&!li){Ps+=A.substring(Xa,f),B|=4,be(ts.Unterminated_string_literal);break}f++}return Ps}function At(li){let Ei=ue(f)===96;f++;let Ps=f,Xa="",ac;for(;;){if(f>=I){Xa+=A.substring(Ps,f),B|=4,be(ts.Unterminated_template_literal),ac=Ei?15:18;break}let Yl=ue(f);if(Yl===96){Xa+=A.substring(Ps,f),f++,ac=Ei?15:18;break}if(Yl===36&&f+1=I)return be(ts.Unexpected_end_of_text),"";let Ps=ue(f);switch(f++,Ps){case 48:if(f>=I||!mce(ue(f)))return"\0";case 49:case 50:case 51:f=55296&&Xa<=56319&&f+6=56320&&Sg<=57343)return f=Wc,ac+String.fromCharCode(Sg)}return ac;case 120:for(;f1114111&&(li&&be(ts.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,Ps,f-Ps),Yl=!0),f>=I?(li&&be(ts.Unexpected_end_of_text),Yl=!0):ue(f)===125?f++:(li&&be(ts.Unterminated_Unicode_escape_sequence),Yl=!0),Yl?(B|=2048,A.substring(Ei,f)):(B|=8,G2i(ac))}function Nr(){if(f+5=0&&See(Ps,e)){li+=Tr(!0),Ei=f;continue}if(Ps=Nr(),!(Ps>=0&&See(Ps,e)))break;B|=1024,li+=A.substring(Ei,f),li+=G2i(Ps),f+=6,Ei=f}else break}return li+=A.substring(Ei,f),li}function xt(){let li=N.length;if(li>=2&&li<=12){let Ei=N.charCodeAt(0);if(Ei>=97&&Ei<=122){let Ps=v7a.get(N);if(Ps!==void 0)return E=Ps}}return E=80}function Zr(li){let Ei="",Ps=!1,Xa=!1;for(;;){let ac=ue(f);if(ac===95){B|=512,Ps?(Ps=!1,Xa=!0):be(Xa?ts.Multiple_consecutive_numeric_separators_are_not_permitted:ts.Numeric_separators_are_not_allowed_here,f,1),f++;continue}if(Ps=!0,!mce(ac)||ac-48>=li)break;Ei+=A[f],f++,Xa=!1}return ue(f-1)===95&&be(ts.Numeric_separators_are_not_allowed_here,f-1,1),Ei}function qt(){return ue(f)===110?(N+="n",B&384&&(N=a$a(N)+"n"),f++,10):(N=""+(B&128?parseInt(N.slice(2),2):B&256?parseInt(N.slice(2),8):+N),9)}function Xt(){for(C=f,B=0;;){if(b=f,f>=I)return E=1;let li=ce(f);if(f===0&&li===35&&mvi(A,f)){if(f=Cvi(A,f),t)continue;return E=6}switch(li){case 10:case 13:if(B|=1,t){f++;continue}else return li===13&&f+1=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(be(ts.Invalid_character),f++,E=0);case 35:if(f!==0&&A[f+1]==="!")return be(ts.can_only_be_used_at_the_start_of_a_file,f,2),f++,E=0;let Xa=ce(f+1);if(Xa===92){f++;let Wc=er();if(Wc>=0&&i4(Wc,e))return N="#"+Tr(!0)+vt(),E=81;let Sg=Nr();if(Sg>=0&&i4(Sg,e))return f+=6,B|=1024,N="#"+String.fromCharCode(Sg)+vt(),E=81;f--}return i4(Xa,e)?(f++,Ar(Xa,e)):(N="#",be(ts.Invalid_character,f++,xR(li))),E=81;case 65533:return be(ts.File_appears_to_be_binary,0,0),f=I,E=8;default:let ac=Ar(li,e);if(ac)return E=ac;if(gJe(li)){f+=xR(li);continue}else if(CV(li)){B|=1,f+=xR(li);continue}let Yl=xR(li);return be(ts.Invalid_character,f,Yl),f+=Yl,E=0}}}function lr(){switch(ae){case 0:return!0;case 1:return!1}return X!==3&&X!==4?!0:ae===3?!1:x7a.test(A.slice(C,f))}function cr(){Zo.assert(E===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),f=b=C,B=0;let li=ce(f),Ei=Ar(li,99);return Ei?E=Ei:(f+=xR(li),E)}function Ar(li,Ei){let Ps=li;if(i4(Ps,Ei)){for(f+=xR(Ps);f=I)return E=1;let Ei=ue(f);if(Ei===60)return ue(f+1)===47?(f+=2,E=31):(f++,E=30);if(Ei===123)return f++,E=19;let Ps=0;for(;f0)break;BNe(Ei)||(Ps=f)}f++}return N=A.substring(C,f),Ps===-1?13:12}function cl(){if(H1(E)){for(;f=I)return E=1;for(let Ei=ue(f);f=0&&gJe(ue(f-1))&&!(f+1=I)return E=1;let li=ce(f);switch(f+=xR(li),li){case 9:case 11:case 12:case 32:for(;f=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(f++,E=0)}if(i4(li,e)){let Ei=li;for(;f=0),f=li,C=li,b=li,E=0,N=void 0,B=0}function vu(li){Q+=li?1:-1}}function Fme(e,t){return e.codePointAt(t)}function xR(e){return e>=65536?2:e===-1?0:1}function X7a(e){if(Zo.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);let t=Math.floor((e-65536)/1024)+55296,r=(e-65536)%1024+56320;return String.fromCharCode(t,r)}var J7a=String.fromCodePoint?e=>String.fromCodePoint(e):X7a;function G2i(e){return J7a(e)}var F2i=new Map(Object.entries({General_Category:"General_Category",gc:"General_Category",Script:"Script",sc:"Script",Script_Extensions:"Script_Extensions",scx:"Script_Extensions"})),Z2i=new Set(["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","EComp","Emoji_Modifier","EMod","Emoji_Modifier_Base","EBase","Emoji_Presentation","EPres","Extended_Pictographic","ExtPict","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"]),L2i=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"]),SNe={General_Category:new Set(["C","Other","Cc","Control","cntrl","Cf","Format","Cn","Unassigned","Co","Private_Use","Cs","Surrogate","L","Letter","LC","Cased_Letter","Ll","Lowercase_Letter","Lm","Modifier_Letter","Lo","Other_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter","M","Mark","Combining_Mark","Mc","Spacing_Mark","Me","Enclosing_Mark","Mn","Nonspacing_Mark","N","Number","Nd","Decimal_Number","digit","Nl","Letter_Number","No","Other_Number","P","Punctuation","punct","Pc","Connector_Punctuation","Pd","Dash_Punctuation","Pe","Close_Punctuation","Pf","Final_Punctuation","Pi","Initial_Punctuation","Po","Other_Punctuation","Ps","Open_Punctuation","S","Symbol","Sc","Currency_Symbol","Sk","Modifier_Symbol","Sm","Math_Symbol","So","Other_Symbol","Z","Separator","Zl","Line_Separator","Zp","Paragraph_Separator","Zs","Space_Separator"]),Script:new Set(["Adlm","Adlam","Aghb","Caucasian_Albanian","Ahom","Arab","Arabic","Armi","Imperial_Aramaic","Armn","Armenian","Avst","Avestan","Bali","Balinese","Bamu","Bamum","Bass","Bassa_Vah","Batk","Batak","Beng","Bengali","Bhks","Bhaiksuki","Bopo","Bopomofo","Brah","Brahmi","Brai","Braille","Bugi","Buginese","Buhd","Buhid","Cakm","Chakma","Cans","Canadian_Aboriginal","Cari","Carian","Cham","Cher","Cherokee","Chrs","Chorasmian","Copt","Coptic","Qaac","Cpmn","Cypro_Minoan","Cprt","Cypriot","Cyrl","Cyrillic","Deva","Devanagari","Diak","Dives_Akuru","Dogr","Dogra","Dsrt","Deseret","Dupl","Duployan","Egyp","Egyptian_Hieroglyphs","Elba","Elbasan","Elym","Elymaic","Ethi","Ethiopic","Geor","Georgian","Glag","Glagolitic","Gong","Gunjala_Gondi","Gonm","Masaram_Gondi","Goth","Gothic","Gran","Grantha","Grek","Greek","Gujr","Gujarati","Guru","Gurmukhi","Hang","Hangul","Hani","Han","Hano","Hanunoo","Hatr","Hatran","Hebr","Hebrew","Hira","Hiragana","Hluw","Anatolian_Hieroglyphs","Hmng","Pahawh_Hmong","Hmnp","Nyiakeng_Puachue_Hmong","Hrkt","Katakana_Or_Hiragana","Hung","Old_Hungarian","Ital","Old_Italic","Java","Javanese","Kali","Kayah_Li","Kana","Katakana","Kawi","Khar","Kharoshthi","Khmr","Khmer","Khoj","Khojki","Kits","Khitan_Small_Script","Knda","Kannada","Kthi","Kaithi","Lana","Tai_Tham","Laoo","Lao","Latn","Latin","Lepc","Lepcha","Limb","Limbu","Lina","Linear_A","Linb","Linear_B","Lisu","Lyci","Lycian","Lydi","Lydian","Mahj","Mahajani","Maka","Makasar","Mand","Mandaic","Mani","Manichaean","Marc","Marchen","Medf","Medefaidrin","Mend","Mende_Kikakui","Merc","Meroitic_Cursive","Mero","Meroitic_Hieroglyphs","Mlym","Malayalam","Modi","Mong","Mongolian","Mroo","Mro","Mtei","Meetei_Mayek","Mult","Multani","Mymr","Myanmar","Nagm","Nag_Mundari","Nand","Nandinagari","Narb","Old_North_Arabian","Nbat","Nabataean","Newa","Nkoo","Nko","Nshu","Nushu","Ogam","Ogham","Olck","Ol_Chiki","Orkh","Old_Turkic","Orya","Oriya","Osge","Osage","Osma","Osmanya","Ougr","Old_Uyghur","Palm","Palmyrene","Pauc","Pau_Cin_Hau","Perm","Old_Permic","Phag","Phags_Pa","Phli","Inscriptional_Pahlavi","Phlp","Psalter_Pahlavi","Phnx","Phoenician","Plrd","Miao","Prti","Inscriptional_Parthian","Rjng","Rejang","Rohg","Hanifi_Rohingya","Runr","Runic","Samr","Samaritan","Sarb","Old_South_Arabian","Saur","Saurashtra","Sgnw","SignWriting","Shaw","Shavian","Shrd","Sharada","Sidd","Siddham","Sind","Khudawadi","Sinh","Sinhala","Sogd","Sogdian","Sogo","Old_Sogdian","Sora","Sora_Sompeng","Soyo","Soyombo","Sund","Sundanese","Sylo","Syloti_Nagri","Syrc","Syriac","Tagb","Tagbanwa","Takr","Takri","Tale","Tai_Le","Talu","New_Tai_Lue","Taml","Tamil","Tang","Tangut","Tavt","Tai_Viet","Telu","Telugu","Tfng","Tifinagh","Tglg","Tagalog","Thaa","Thaana","Thai","Tibt","Tibetan","Tirh","Tirhuta","Tnsa","Tangsa","Toto","Ugar","Ugaritic","Vaii","Vai","Vith","Vithkuqi","Wara","Warang_Citi","Wcho","Wancho","Xpeo","Old_Persian","Xsux","Cuneiform","Yezi","Yezidi","Yiii","Yi","Zanb","Zanabazar_Square","Zinh","Inherited","Qaai","Zyyy","Common","Zzzz","Unknown"]),Script_Extensions:void 0};SNe.Script_Extensions=SNe.Script;function gj(e){return e.start+e.length}function U7a(e){return e.length===0}function ONr(e,t){if(e<0)throw new Error("start < 0");if(t<0)throw new Error("length < 0");return{start:e,length:t}}function K7a(e,t){return ONr(e,t-e)}function rJe(e){return ONr(e.span.start,e.newLength)}function j7a(e){return U7a(e.span)&&e.newLength===0}function bvi(e,t){if(t<0)throw new Error("newLength < 0");return{span:e,newLength:t}}var STu=bvi(ONr(0,0),0);function Evi(e,t){for(;e;){let r=t(e);if(r==="quit")return;if(r)return e;e=e.parent}}function Qbt(e){return(e.flags&16)===0}function z7a(e,t){if(e===void 0||Qbt(e))return e;for(e=e.original;e;){if(Qbt(e))return!t||t(e)?e:void 0;e=e.original}}function mNe(e){return e.length>=2&&e.charCodeAt(0)===95&&e.charCodeAt(1)===95?"_"+e:e}function mJe(e){let t=e;return t.length>=3&&t.charCodeAt(0)===95&&t.charCodeAt(1)===95&&t.charCodeAt(2)===95?t.substr(1):t}function yV(e){return mJe(e.escapedText)}function Svi(e){let t=pvi(e.escapedText);return t?e7a(t,Cce):void 0}function uNr(e){return e.valueDeclaration&&bza(e.valueDeclaration)?yV(e.valueDeclaration.name):mJe(e.escapedName)}function vvi(e){let t=e.parent.parent;if(t){if(W2i(t))return Tbt(t);switch(t.kind){case 243:if(t.declarationList&&t.declarationList.declarations[0])return Tbt(t.declarationList.declarations[0]);break;case 244:let r=t.expression;switch(r.kind===226&&r.operatorToken.kind===64&&(r=r.left),r.kind){case 211:return r.name;case 212:let n=r.argumentExpression;if($C(n))return n}break;case 217:return Tbt(t.expression);case 256:{if(W2i(t.statement)||Fza(t.statement))return Tbt(t.statement);break}}}}function Tbt(e){let t=Bvi(e);return t&&$C(t)?t:void 0}function q7a(e){return e.name||vvi(e)}function $7a(e){return!!e.name}function MNr(e){switch(e.kind){case 80:return e;case 348:case 341:{let{name:r}=e;if(r.kind===166)return r.right;break}case 213:case 226:{let r=e;switch(JNr(r)){case 1:case 4:case 5:case 3:return UNr(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}}case 346:return q7a(e);case 340:return vvi(e);case 277:{let{expression:r}=e;return $C(r)?r:void 0}case 212:let t=e;if(Mvi(t))return t.argumentExpression}return e.name}function Bvi(e){if(e!==void 0)return MNr(e)||(cBi(e)||lBi(e)||mNr(e)?eza(e):void 0)}function eza(e){if(e.parent){if(hec(e.parent)||eec(e.parent))return e.parent.name;if(DNe(e.parent)&&e===e.parent.right){if($C(e.parent.left))return e.parent.left;if(Uvi(e.parent.left))return UNr(e.parent.left)}else if(gBi(e.parent)&&$C(e.parent.name))return e.parent.name}else return}function tza(e){if(Rqa(e))return wee(e.modifiers,tDr)}function rza(e){if(vJe(e,98303))return wee(e.modifiers,vza)}function wvi(e,t){if(e.name)if($C(e.name)){let r=e.name.escapedText;return CJe(e.parent,t).filter(n=>rSi(n)&&$C(n.name)&&n.name.escapedText===r)}else{let r=e.parent.parameters.indexOf(e);Zo.assert(r>-1,"Parameters should always be in their parents' parameter list");let n=CJe(e.parent,t).filter(rSi);if(rkec(n)&&n.typeParameters.some(a=>a.name.escapedText===r))}function sza(e){return Tvi(e,!1)}function oza(e){return Tvi(e,!0)}function aza(e){return vce(e,Eec)}function cza(e){return Iza(e,xec)}function lza(e){return vce(e,Sec,!0)}function uza(e){return vce(e,vec,!0)}function gza(e){return vce(e,Bec,!0)}function Aza(e){return vce(e,wec,!0)}function dza(e){return vce(e,Tec,!0)}function pza(e){return vce(e,Nec,!0)}function fza(e){let t=vce(e,iDr);if(t&&t.typeExpression&&t.typeExpression.type)return t}function CJe(e,t){var r;if(!KNr(e))return x2;let n=(r=e.jsDoc)==null?void 0:r.jsDocCache;if(n===void 0||t){let a=dqa(e,t);Zo.assert(a.length<2||a[0]!==a[1]),n=USi(a,o=>_Bi(o)?o.tags:o),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=n)}return n}function Rvi(e){return CJe(e,!1)}function vce(e,t,r){return XSi(CJe(e,r),t)}function Iza(e,t){return Rvi(e).filter(t)}function gNr(e){return e.kind===80||e.kind===81}function hza(e){return Bce(e)&&!!(e.flags&64)}function mza(e){return BJe(e)&&!!(e.flags&64)}function V2i(e){return aBi(e)&&!!(e.flags&64)}function HNr(e){return sDr(e,8)}function Cza(e){return Vbt(e)&&!!(e.flags&64)}function YNr(e){return e>=166}function Nvi(e){return e>=0&&e<=165}function _za(e){return Nvi(e.kind)}function _ce(e){return fj(e,"pos")&&fj(e,"end")}function yza(e){return 9<=e&&e<=15}function P2i(e){return 15<=e&&e<=18}function vNe(e){var t;return $C(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function Dvi(e){var t;return Yme(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function bza(e){return(Kbt(e)||Tza(e))&&Yme(e.name)}function vee(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function Eza(e){return!!(Xvi(e)&31)}function Sza(e){return Eza(e)||e===126||e===164||e===129}function vza(e){return vee(e.kind)}function kvi(e){let t=e.kind;return t===80||t===81||t===11||t===9||t===167}function xvi(e){return!!e&&wza(e.kind)}function Bza(e){switch(e){case 262:case 174:case 176:case 177:case 178:case 218:case 219:return!0;default:return!1}}function wza(e){switch(e){case 173:case 179:case 323:case 180:case 181:case 184:case 317:case 185:return!0;default:return Bza(e)}}function wNe(e){return e&&(e.kind===263||e.kind===231)}function Tza(e){switch(e.kind){case 174:case 177:case 178:return!0;default:return!1}}function Rza(e){let t=e.kind;return t===303||t===304||t===305||t===174||t===177||t===178}function Nza(e){return Wqa(e.kind)}function Dza(e){if(e){let t=e.kind;return t===207||t===206}return!1}function kza(e){let t=e.kind;return t===209||t===210}function xza(e){switch(e.kind){case 260:case 169:case 208:return!0}return!1}function TNe(e){return Gvi(HNr(e).kind)}function Gvi(e){switch(e){case 211:case 212:case 214:case 213:case 284:case 285:case 288:case 215:case 209:case 217:case 210:case 231:case 218:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 228:case 97:case 106:case 110:case 112:case 108:case 235:case 233:case 236:case 102:case 282:return!0;default:return!1}}function Gza(e){return Fvi(HNr(e).kind)}function Fvi(e){switch(e){case 224:case 225:case 220:case 221:case 222:case 223:case 216:return!0;default:return Gvi(e)}}function Fza(e){return Zza(HNr(e).kind)}function Zza(e){switch(e){case 227:case 229:case 219:case 226:case 230:case 234:case 232:case 356:case 355:case 238:return!0;default:return Fvi(e)}}function Lza(e){return e===219||e===208||e===263||e===231||e===175||e===176||e===266||e===306||e===281||e===262||e===218||e===177||e===273||e===271||e===276||e===264||e===291||e===174||e===173||e===267||e===270||e===274||e===280||e===169||e===303||e===172||e===171||e===178||e===304||e===265||e===168||e===260||e===346||e===338||e===348||e===202}function Zvi(e){return e===262||e===282||e===263||e===264||e===265||e===266||e===267||e===272||e===271||e===278||e===277||e===270}function Lvi(e){return e===252||e===251||e===259||e===246||e===244||e===242||e===249||e===250||e===248||e===245||e===256||e===253||e===255||e===257||e===258||e===243||e===247||e===254||e===353}function W2i(e){return e.kind===168?e.parent&&e.parent.kind!==345||Qme(e):Lza(e.kind)}function Vza(e){let t=e.kind;return Lvi(t)||Zvi(t)||Pza(e)}function Pza(e){return e.kind!==241||e.parent!==void 0&&(e.parent.kind===258||e.parent.kind===299)?!1:!eqa(e)}function Wza(e){let t=e.kind;return Lvi(t)||Zvi(t)||t===241}function Vvi(e){return e.kind>=309&&e.kind<=351}function Oza(e){return e.kind===320||e.kind===319||e.kind===321||Yza(e)||Mza(e)||bec(e)||yBi(e)}function Mza(e){return e.kind>=327&&e.kind<=351}function Rbt(e){return e.kind===178}function Nbt(e){return e.kind===177}function Pme(e){if(!KNr(e))return!1;let{jsDoc:t}=e;return!!t&&t.length>0}function Hza(e){return!!e.initializer}function QNr(e){return e.kind===11||e.kind===15}function Yza(e){return e.kind===324||e.kind===325||e.kind===326}function O2i(e){return(e.flags&33554432)!==0}var vTu=Qza();function Qza(){var e="";let t=r=>e+=r;return{getText:()=>e,write:t,rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:(r,n)=>t(r),writeTrailingSemicolon:t,writeComment:t,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&BNe(e.charCodeAt(e.length-1)),writeLine:()=>e+=" ",increaseIndent:NNe,decreaseIndent:NNe,clear:()=>e=""}}function Xza(e,t){let r=e.entries();for(let[n,a]of r){let o=t(a,n);if(o)return o}}function Jza(e){return e.end-e.pos}function Pvi(e){return Uza(e),(e.flags&1048576)!==0}function Uza(e){e.flags&2097152||((e.flags&262144||Ok(e,Pvi))&&(e.flags|=1048576),e.flags|=2097152)}function bce(e){for(;e&&e.kind!==307;)e=e.parent;return e}function Wme(e){return e===void 0?!0:e.pos===e.end&&e.pos>=0&&e.kind!==1}function ANr(e){return!Wme(e)}function Xbt(e,t,r){if(Wme(e))return e.pos;if(Vvi(e)||e.kind===12)return dj((t??bce(e)).text,e.pos,!1,!0);if(r&&Pme(e))return Xbt(e.jsDoc[0],t);if(e.kind===352){t??(t=bce(e));let n=DNr(bBi(e,t));if(n)return Xbt(n,t,r)}return dj((t??bce(e)).text,e.pos,!1,!1,tqa(e))}function M2i(e,t,r=!1){return AJe(e.text,t,r)}function Kza(e){return!!Evi(e,Cec)}function AJe(e,t,r=!1){if(Wme(t))return"";let n=e.substring(r?t.pos:dj(e,t.pos),t.end);return Kza(t)&&(n=n.split(/\r\n|\n|\r/).map(a=>a.replace(/^\s*\*/,"").trimStart()).join(` -`)),n}function RNe(e){let t=e.emitNode;return t&&t.flags||0}function jza(e,t,r){Zo.assertGreaterThanOrEqual(t,0),Zo.assertGreaterThanOrEqual(r,0),Zo.assertLessThanOrEqual(t,e.length),Zo.assertLessThanOrEqual(t+r,e.length)}function Lbt(e){return e.kind===244&&e.expression.kind===11}function XNr(e){return!!(RNe(e)&2097152)}function H2i(e){return XNr(e)&&ABi(e)}function zza(e){return $C(e.name)&&!e.initializer}function Y2i(e){return XNr(e)&&rEt(e)&&RNr(e.declarationList.declarations,zza)}function qza(e,t){let r=e.kind===169||e.kind===168||e.kind===218||e.kind===219||e.kind===217||e.kind===260||e.kind===281?NNr(Y7a(t,e.pos),lNr(t,e.pos)):lNr(t,e.pos);return wee(r,n=>n.end<=e.end&&t.charCodeAt(n.pos+1)===42&&t.charCodeAt(n.pos+2)===42&&t.charCodeAt(n.pos+3)!==47)}function $za(e){if(e)switch(e.kind){case 208:case 306:case 169:case 303:case 172:case 171:case 304:case 260:return!0}return!1}function eqa(e){return e&&e.kind===241&&xvi(e.parent)}function Q2i(e){let t=e.kind;return(t===211||t===212)&&e.expression.kind===108}function Qme(e){return!!e&&!!(e.flags&524288)}function tqa(e){return!!e&&!!(e.flags&16777216)}function rqa(e){for(;Jbt(e,!0);)e=e.right;return e}function nqa(e){return $C(e)&&e.escapedText==="exports"}function iqa(e){return $C(e)&&e.escapedText==="module"}function Wvi(e){return(Bce(e)||Ovi(e))&&iqa(e.expression)&&yJe(e)==="exports"}function JNr(e){let t=oqa(e);return t===5||Qme(e)?t:0}function sqa(e){return cJe(e.arguments)===3&&Bce(e.expression)&&$C(e.expression.expression)&&yV(e.expression.expression)==="Object"&&yV(e.expression.name)==="defineProperty"&&eEt(e.arguments[1])&&_Je(e.arguments[0],!0)}function Ovi(e){return BJe(e)&&eEt(e.argumentExpression)}function SJe(e,t){return Bce(e)&&(!t&&e.expression.kind===110||$C(e.name)&&_Je(e.expression,!0))||Mvi(e,t)}function Mvi(e,t){return Ovi(e)&&(!t&&e.expression.kind===110||qNr(e.expression)||SJe(e.expression,!0))}function _Je(e,t){return qNr(e)||SJe(e,t)}function oqa(e){if(aBi(e)){if(!sqa(e))return 0;let t=e.arguments[0];return nqa(t)||Wvi(t)?8:SJe(t)&&yJe(t)==="prototype"?9:7}return e.operatorToken.kind!==64||!Uvi(e.left)||aqa(rqa(e))?0:_Je(e.left.expression,!0)&&yJe(e.left)==="prototype"&&oBi(lqa(e))?6:cqa(e.left)}function aqa(e){return nec(e)&&kNe(e.expression)&&e.expression.text==="0"}function UNr(e){if(Bce(e))return e.name;let t=jNr(e.argumentExpression);return kNe(t)||QNr(t)?t:e}function yJe(e){let t=UNr(e);if(t){if($C(t))return t.escapedText;if(QNr(t)||kNe(t))return mNe(t.text)}}function cqa(e){if(e.expression.kind===110)return 4;if(Wvi(e))return 2;if(_Je(e.expression,!0)){if(Vqa(e.expression))return 3;let t=e;for(;!$C(t.expression);)t=t.expression;let r=t.expression;if((r.escapedText==="exports"||r.escapedText==="module"&&yJe(t)==="exports")&&SJe(e))return 1;if(_Je(e,!0)||BJe(e)&&Eqa(e))return 5}return 0}function lqa(e){for(;DNe(e.right);)e=e.right;return e.right}function uqa(e){return uBi(e)&&DNe(e.expression)&&JNr(e.expression)!==0&&DNe(e.expression.right)&&(e.expression.right.operatorToken.kind===57||e.expression.right.operatorToken.kind===61)?e.expression.right.right:void 0}function gqa(e){switch(e.kind){case 243:let t=dNr(e);return t&&t.initializer;case 172:return e.initializer;case 303:return e.initializer}}function dNr(e){return rEt(e)?DNr(e.declarationList.declarations):void 0}function Aqa(e){return EJe(e)&&e.body&&e.body.kind===267?e.body:void 0}function KNr(e){switch(e.kind){case 219:case 226:case 241:case 252:case 179:case 296:case 263:case 231:case 175:case 176:case 185:case 180:case 251:case 259:case 246:case 212:case 242:case 1:case 266:case 306:case 277:case 278:case 281:case 244:case 249:case 250:case 248:case 262:case 218:case 184:case 177:case 80:case 245:case 272:case 271:case 181:case 264:case 317:case 323:case 256:case 174:case 173:case 267:case 202:case 270:case 210:case 169:case 217:case 211:case 303:case 172:case 171:case 253:case 240:case 178:case 304:case 305:case 255:case 257:case 258:case 265:case 168:case 260:case 243:case 247:case 254:return!0;default:return!1}}function dqa(e,t){let r;$za(e)&&Hza(e)&&Pme(e.initializer)&&(r=_V(r,X2i(e,e.initializer.jsDoc)));let n=e;for(;n&&n.parent;){if(Pme(n)&&(r=_V(r,X2i(e,n.jsDoc))),n.kind===169){r=_V(r,(t?iza:nza)(n));break}if(n.kind===168){r=_V(r,(t?oza:sza)(n));break}n=fqa(n)}return r||x2}function X2i(e,t){let r=Q6a(t);return USi(t,n=>{if(n===r){let a=wee(n.tags,o=>pqa(e,o));return n.tags===a?[n]:a}else return wee(n.tags,Rec)})}function pqa(e,t){return!(iDr(t)||Gec(t))||!t.parent||!_Bi(t.parent)||!rDr(t.parent.parent)||t.parent.parent===e}function fqa(e){let t=e.parent;if(t.kind===303||t.kind===277||t.kind===172||t.kind===244&&e.kind===211||t.kind===253||Aqa(t)||Jbt(e))return t;if(t.parent&&(dNr(t.parent)===e||Jbt(t)))return t.parent;if(t.parent&&t.parent.parent&&(dNr(t.parent.parent)||gqa(t.parent.parent)===e||uqa(t.parent.parent)))return t.parent.parent}function jNr(e,t){return sDr(e,t?-2147483647:1)}function Iqa(e){let t=hqa(e);if(t&&Qme(e)){let r=aza(e);if(r)return r.class}return t}function hqa(e){let t=zNr(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function mqa(e){if(Qme(e))return cza(e).map(t=>t.class);{let t=zNr(e.heritageClauses,119);return t?.types}}function Cqa(e){return nDr(e)?_qa(e)||x2:wNe(e)&&NNr(oNr(Iqa(e)),mqa(e))||x2}function _qa(e){let t=zNr(e.heritageClauses,96);return t?t.types:void 0}function zNr(e,t){if(e){for(let r of e)if(r.token===t)return r}}function Cce(e){return 83<=e&&e<=165}function yqa(e){return 19<=e&&e<=79}function URr(e){return Cce(e)||yqa(e)}function eEt(e){return QNr(e)||kNe(e)}function bqa(e){return iec(e)&&(e.operator===40||e.operator===41)&&kNe(e.operand)}function Eqa(e){if(!(e.kind===167||e.kind===212))return!1;let t=BJe(e)?jNr(e.argumentExpression):e.expression;return!eEt(t)&&!bqa(t)}function Sqa(e){return gNr(e)?yV(e):CBi(e)?d$a(e):e.text}function CNe(e){return bJe(e.pos)||bJe(e.end)}function KRr(e){switch(e){case 61:return 4;case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function jRr(e){return!!((e.templateFlags||0)&2048)}function vqa(e){return e&&!!(B$a(e)?jRr(e):jRr(e.head)||oD(e.templateSpans,t=>jRr(t.literal)))}var BTu=new Map(Object.entries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"})),wTu=new Map(Object.entries({'"':""","'":"'"}));function Bqa(e){return!!e&&e.kind===80&&wqa(e)}function wqa(e){return e.escapedText==="this"}function vJe(e,t){return!!Nqa(e,t)}function Tqa(e){return vJe(e,256)}function Rqa(e){return vJe(e,32768)}function Nqa(e,t){return kqa(e)&t}function Dqa(e,t,r){return e.kind>=0&&e.kind<=165?0:(e.modifierFlagsCache&536870912||(e.modifierFlagsCache=Qvi(e)|536870912),r||t&&Qme(e)?(!(e.modifierFlagsCache&268435456)&&e.parent&&(e.modifierFlagsCache|=Hvi(e)|268435456),Yvi(e.modifierFlagsCache)):xqa(e.modifierFlagsCache))}function kqa(e){return Dqa(e,!1)}function Hvi(e){let t=0;return e.parent&&!Ubt(e)&&(Qme(e)&&(lza(e)&&(t|=8388608),uza(e)&&(t|=16777216),gza(e)&&(t|=33554432),Aza(e)&&(t|=67108864),dza(e)&&(t|=134217728)),pza(e)&&(t|=65536)),t}function xqa(e){return e&65535}function Yvi(e){return e&131071|(e&260046848)>>>23}function Gqa(e){return Yvi(Hvi(e))}function Fqa(e){return Qvi(e)|Gqa(e)}function Qvi(e){let t=oDr(e)?fO(e.modifiers):0;return(e.flags&8||e.kind===80&&e.flags&4096)&&(t|=32),t}function fO(e){let t=0;if(e)for(let r of e)t|=Xvi(r.kind);return t}function Xvi(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 170:return 32768}return 0}function Zqa(e){return e===76||e===77||e===78}function Jvi(e){return e>=64&&e<=79}function Jbt(e,t){return DNe(e)&&(t?e.operatorToken.kind===64:Jvi(e.operatorToken.kind))&&TNe(e.left)}function qNr(e){return e.kind===80||Lqa(e)}function Lqa(e){return Bce(e)&&$C(e.name)&&qNr(e.expression)}function Vqa(e){return SJe(e)&&yJe(e)==="prototype"}function zRr(e){return e.flags&3899393?e.objectFlags:0}function Pqa(e){let t;return Ok(e,r=>{ANr(r)&&(t=r)},r=>{for(let n=r.length-1;n>=0;n--)if(ANr(r[n])){t=r[n];break}}),t}function Wqa(e){return e>=182&&e<=205||e===133||e===159||e===150||e===163||e===151||e===136||e===154||e===155||e===116||e===157||e===146||e===141||e===233||e===312||e===313||e===314||e===315||e===316||e===317||e===318}function Uvi(e){return e.kind===211||e.kind===212}function Oqa(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function Mqa(e,t){this.flags=t,(Zo.isDebugging||Fbt)&&(this.checker=e)}function Hqa(e,t){this.flags=t,Zo.isDebugging&&(this.checker=e)}function qRr(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Yqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function Qqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Xqa(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}var k2={getNodeConstructor:()=>qRr,getTokenConstructor:()=>Yqa,getIdentifierConstructor:()=>Qqa,getPrivateIdentifierConstructor:()=>qRr,getSourceFileConstructor:()=>qRr,getSymbolConstructor:()=>Oqa,getTypeConstructor:()=>Mqa,getSignatureConstructor:()=>Hqa,getSourceMapSourceConstructor:()=>Xqa},Jqa=[];function Uqa(e){Object.assign(k2,e),hO(Jqa,t=>t(k2))}function Kqa(e,t){return e.replace(/\{(\d+)\}/g,(r,n)=>""+Zo.checkDefined(t[+n]))}var J2i;function jqa(e){return J2i&&J2i[e.key]||e.message}function pNe(e,t,r,n,a,...o){r+n>t.length&&(n=t.length-r),jza(t,r,n);let l=jqa(a);return oD(o)&&(l=Kqa(l,o)),{file:void 0,start:r,length:n,messageText:l,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary,fileName:e}}function zqa(e){return e.file===void 0&&e.start!==void 0&&e.length!==void 0&&typeof e.fileName=="string"}function Kvi(e,t){let r=t.fileName||"",n=t.text.length;Zo.assertEqual(e.fileName,r),Zo.assertLessThanOrEqual(e.start,n),Zo.assertLessThanOrEqual(e.start+e.length,n);let a={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){a.relatedInformation=[];for(let o of e.relatedInformation)zqa(o)&&o.fileName===r?(Zo.assertLessThanOrEqual(o.start,n),Zo.assertLessThanOrEqual(o.start+o.length,n),a.relatedInformation.push(Kvi(o,t))):a.relatedInformation.push(o)}return a}function Nme(e,t){let r=[];for(let n of e)r.push(Kvi(n,t));return r}function U2i(e){return e===4||e===2||e===1||e===6?1:0}var y0={allowImportingTsExtensions:{dependencies:["rewriteRelativeImportExtensions"],computeValue:e=>!!(e.allowImportingTsExtensions||e.rewriteRelativeImportExtensions)},target:{dependencies:["module"],computeValue:e=>(e.target===0?void 0:e.target)??(e.module===100&&9||e.module===199&&99||1)},module:{dependencies:["target"],computeValue:e=>typeof e.module=="number"?e.module:y0.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:["module","target"],computeValue:e=>{let t=e.moduleResolution;if(t===void 0)switch(y0.module.computeValue(e)){case 1:t=2;break;case 100:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1;break}return t}},moduleDetection:{dependencies:["module","target"],computeValue:e=>e.moduleDetection||(y0.module.computeValue(e)===100||y0.module.computeValue(e)===199?3:2)},isolatedModules:{dependencies:["verbatimModuleSyntax"],computeValue:e=>!!(e.isolatedModules||e.verbatimModuleSyntax)},esModuleInterop:{dependencies:["module","target"],computeValue:e=>{if(e.esModuleInterop!==void 0)return e.esModuleInterop;switch(y0.module.computeValue(e)){case 100:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:["module","target","moduleResolution"],computeValue:e=>e.allowSyntheticDefaultImports!==void 0?e.allowSyntheticDefaultImports:y0.esModuleInterop.computeValue(e)||y0.module.computeValue(e)===4||y0.moduleResolution.computeValue(e)===100},resolvePackageJsonExports:{dependencies:["moduleResolution"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:["moduleResolution","resolvePackageJsonExports"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:["moduleResolution","module","target"],computeValue:e=>e.resolveJsonModule!==void 0?e.resolveJsonModule:y0.moduleResolution.computeValue(e)===100},declaration:{dependencies:["composite"],computeValue:e=>!!(e.declaration||e.composite)},preserveConstEnums:{dependencies:["isolatedModules","verbatimModuleSyntax"],computeValue:e=>!!(e.preserveConstEnums||y0.isolatedModules.computeValue(e))},incremental:{dependencies:["composite"],computeValue:e=>!!(e.incremental||e.composite)},declarationMap:{dependencies:["declaration","composite"],computeValue:e=>!!(e.declarationMap&&y0.declaration.computeValue(e))},allowJs:{dependencies:["checkJs"],computeValue:e=>e.allowJs===void 0?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:["target","module"],computeValue:e=>e.useDefineForClassFields===void 0?y0.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitAny")},noImplicitThis:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitThis")},strictNullChecks:{dependencies:["strict"],computeValue:e=>Eee(e,"strictNullChecks")},strictFunctionTypes:{dependencies:["strict"],computeValue:e=>Eee(e,"strictFunctionTypes")},strictBindCallApply:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBindCallApply")},strictPropertyInitialization:{dependencies:["strict"],computeValue:e=>Eee(e,"strictPropertyInitialization")},strictBuiltinIteratorReturn:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBuiltinIteratorReturn")},alwaysStrict:{dependencies:["strict"],computeValue:e=>Eee(e,"alwaysStrict")},useUnknownInCatchVariables:{dependencies:["strict"],computeValue:e=>Eee(e,"useUnknownInCatchVariables")}},TTu=y0.allowImportingTsExtensions.computeValue,RTu=y0.target.computeValue,NTu=y0.module.computeValue,DTu=y0.moduleResolution.computeValue,kTu=y0.moduleDetection.computeValue,xTu=y0.isolatedModules.computeValue,GTu=y0.esModuleInterop.computeValue,FTu=y0.allowSyntheticDefaultImports.computeValue,ZTu=y0.resolvePackageJsonExports.computeValue,LTu=y0.resolvePackageJsonImports.computeValue,VTu=y0.resolveJsonModule.computeValue,PTu=y0.declaration.computeValue,WTu=y0.preserveConstEnums.computeValue,OTu=y0.incremental.computeValue,MTu=y0.declarationMap.computeValue,HTu=y0.allowJs.computeValue,YTu=y0.useDefineForClassFields.computeValue;function K2i(e){return e>=3&&e<=99||e===100}function Eee(e,t){return e[t]===void 0?!!e.strict:!!e[t]}function qqa(e){return Xza(targetOptionDeclaration.type,(t,r)=>t===e?r:void 0)}var $qa=["node_modules","bower_components","jspm_packages"],jvi=`(?!(${$qa.join("|")})(/|$))`,e$a={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,e$a.singleAsteriskRegexFragment)},t$a={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,t$a.singleAsteriskRegexFragment)};function zvi(e,t){return e==="*"?t:e==="?"?"[^/]":"\\"+e}function r$a(e,t){return t||n$a(e)||3}function n$a(e){switch(e.substr(e.lastIndexOf(".")).toLowerCase()){case".js":case".cjs":case".mjs":return 1;case".jsx":return 2;case".ts":case".cts":case".mts":return 3;case".tsx":return 4;case".json":return 6;default:return 0}}var qvi=[[".ts",".tsx",".d.ts"],[".cts",".d.cts"],[".mts",".d.mts"]],QTu=JSi(qvi),XTu=[...qvi,[".json"]],i$a=[[".js",".jsx"],[".mjs"],[".cjs"]],JTu=JSi(i$a),s$a=[[".ts",".tsx",".d.ts",".js",".jsx"],[".cts",".d.cts",".cjs"],[".mts",".d.mts",".mjs"]],UTu=[...s$a,[".json"]],o$a=[".d.ts",".d.cts",".d.mts"];function bJe(e){return!(e>=0)}function Dbt(e,...t){return t.length&&(e.relatedInformation||(e.relatedInformation=[]),Zo.assert(e.relatedInformation!==x2,"Diagnostic had empty array singleton for related info, but is still being constructed!"),e.relatedInformation.push(...t)),e}function a$a(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:let I=e.length-1,C=0;for(;e.charCodeAt(C)===48;)C++;return e.slice(C,I)||"0"}let r=2,n=e.length-1,a=(n-r)*t,o=new Uint16Array((a>>>4)+(a&15?1:0));for(let I=n-1,C=0;I>=r;I--,C+=t){let b=C>>>4,E=e.charCodeAt(I),N=(E<=57?E-48:10+E-(E<=70?65:97))<<(C&15);o[b]|=N;let B=N>>>16;B&&(o[b+1]|=B)}let l="",A=o.length-1,f=!0;for(;f;){let I=0;f=!1;for(let C=A;C>=0;C--){let b=I<<16|o[C],E=b/10|0;o[C]=E,I=b-E*10,E&&!f&&(A=C,f=!0)}l=I+l}return l}function c$a({negative:e,base10Value:t}){return(e&&t!=="0"?"-":"")+t}function pNr(e,t){return e.pos=t,e}function l$a(e,t){return e.end=t,e}function Ece(e,t,r){return l$a(pNr(e,t),r)}function j2i(e,t,r){return Ece(e,t,t+r)}function $Nr(e,t){return e&&t&&(e.parent=t),e}function u$a(e,t){if(!e)return e;return vSi(e,Vvi(e)?r:a),e;function r(o,l){if(t&&o.parent===l)return"skip";$Nr(o,l)}function n(o){if(Pme(o))for(let l of o.jsDoc)r(l,o),vSi(l,r)}function a(o,l){return r(o,l)||n(o)}}function g$a(e){return!!(e.flags&262144&&e.isThisType)}function A$a(e){var t;return((t=getSnippetElement(e))==null?void 0:t.kind)===0}function d$a(e){return`${yV(e.namespace)}:${yV(e.name)}`}var KTu=String.prototype.replace,fNr=["assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","inspector/promises","module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","test/mock_loader","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"],jTu=new Set(fNr),p$a=new Set(["node:sea","node:sqlite","node:test","node:test/reporters"]),zTu=new Set([...fNr,...fNr.map(e=>`node:${e}`),...p$a]);function f$a(){let e,t,r,n,a;return{createBaseSourceFileNode:o,createBaseIdentifierNode:l,createBasePrivateIdentifierNode:A,createBaseTokenNode:f,createBaseNode:I};function o(C){return new(a||(a=k2.getSourceFileConstructor()))(C,-1,-1)}function l(C){return new(r||(r=k2.getIdentifierConstructor()))(C,-1,-1)}function A(C){return new(n||(n=k2.getPrivateIdentifierConstructor()))(C,-1,-1)}function f(C){return new(t||(t=k2.getTokenConstructor()))(C,-1,-1)}function I(C){return new(e||(e=k2.getNodeConstructor()))(C,-1,-1)}}var I$a={getParenthesizeLeftSideOfBinaryForOperator:e=>VE,getParenthesizeRightSideOfBinaryForOperator:e=>VE,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,r)=>r,parenthesizeExpressionOfComputedPropertyName:VE,parenthesizeConditionOfConditionalExpression:VE,parenthesizeBranchOfConditionalExpression:VE,parenthesizeExpressionOfExportDefault:VE,parenthesizeExpressionOfNew:e=>Aj(e,TNe),parenthesizeLeftSideOfAccess:e=>Aj(e,TNe),parenthesizeOperandOfPostfixUnary:e=>Aj(e,TNe),parenthesizeOperandOfPrefixUnary:e=>Aj(e,Gza),parenthesizeExpressionsOfCommaDelimitedList:e=>Aj(e,_ce),parenthesizeExpressionForDisallowedComma:VE,parenthesizeExpressionOfExpressionStatement:VE,parenthesizeConciseBodyOfArrowFunction:VE,parenthesizeCheckTypeOfConditionalType:VE,parenthesizeExtendsTypeOfConditionalType:VE,parenthesizeConstituentTypesOfUnionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfUnionType:VE,parenthesizeConstituentTypesOfIntersectionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfIntersectionType:VE,parenthesizeOperandOfTypeOperator:VE,parenthesizeOperandOfReadonlyTypeOperator:VE,parenthesizeNonArrayTypeOfPostfixType:VE,parenthesizeElementTypesOfTupleType:e=>Aj(e,_ce),parenthesizeElementTypeOfTupleType:VE,parenthesizeTypeOfOptionalType:VE,parenthesizeTypeArguments:e=>e&&Aj(e,_ce),parenthesizeLeadingTypeArgument:VE},kbt=0,h$a=[];function eDr(e,t){let r=e&8?VE:b$a,n=w2i(()=>e&1?I$a:createParenthesizerRules(X)),a=w2i(()=>e&2?nullNodeConverters:createNodeConverters(X)),o=eH(z=>(ye,Ve)=>gt(ye,z,Ve)),l=eH(z=>ye=>se(z,ye)),A=eH(z=>ye=>K(ye,z)),f=eH(z=>()=>ND(z)),I=eH(z=>ye=>q_(z,ye)),C=eH(z=>(ye,Ve)=>UR(z,ye,Ve)),b=eH(z=>(ye,Ve)=>DD(z,ye,Ve)),E=eH(z=>(ye,Ve)=>kD(z,ye,Ve)),N=eH(z=>(ye,Ve)=>Mo(z,ye,Ve)),B=eH(z=>(ye,Ve,Ct)=>gp(z,ye,Ve,Ct)),F=eH(z=>(ye,Ve,Ct)=>lF(z,ye,Ve,Ct)),Q=eH(z=>(ye,Ve,Ct,wr)=>uF(z,ye,Ve,Ct,wr)),X={get parenthesizer(){return n()},get converters(){return a()},baseFactory:t,flags:e,createNodeArray:ae,createNumericLiteral:ue,createBigIntLiteral:de,createStringLiteral:Se,createStringLiteralFromNode:De,createRegularExpressionLiteral:k,createLiteralLikeNode:et,createIdentifier:je,createTempVariable:St,createLoopVariable:At,createUniqueName:Yt,getGeneratedNameForNode:Tr,createPrivateIdentifier:er,createUniquePrivateName:xt,getGeneratedPrivateNameForNode:Zr,createToken:Xt,createSuper:lr,createThis:cr,createNull:Ar,createTrue:qr,createFalse:_n,createModifier:ke,createModifiersFromModifierFlags:jt,createQualifiedName:Fn,updateQualifiedName:Nn,createComputedPropertyName:Hi,updateComputedPropertyName:po,createTypeParameterDeclaration:Vr,updateTypeParameterDeclaration:xi,createParameterDeclaration:io,updateParameterDeclaration:ga,createDecorator:Ya,updateDecorator:Gc,createPropertySignature:cl,updatePropertySignature:Sc,createPropertyDeclaration:Wr,updatePropertyDeclaration:Ft,createMethodSignature:zr,updateMethodSignature:Rn,createMethodDeclaration:Or,updateMethodDeclaration:Qi,createConstructorDeclaration:gc,updateConstructorDeclaration:Cg,createGetAccessorDeclaration:iA,updateGetAccessorDeclaration:ma,createSetAccessorDeclaration:li,updateSetAccessorDeclaration:Ei,createCallSignature:Xa,updateCallSignature:ac,createConstructSignature:Yl,updateConstructSignature:Wc,createIndexSignature:Sg,updateIndexSignature:Ul,createClassStaticBlockDeclaration:yo,updateClassStaticBlockDeclaration:bo,createTemplateLiteralTypeSpan:Xu,updateTemplateLiteralTypeSpan:Da,createKeywordTypeNode:pu,createTypePredicateNode:_g,updateTypePredicateNode:mI,createTypeReferenceNode:Qh,updateTypeReferenceNode:Ri,createFunctionTypeNode:Do,updateFunctionTypeNode:Wt,createConstructorTypeNode:Ru,updateConstructorTypeNode:Yn,createTypeQueryNode:OA,updateTypeQueryNode:GA,createTypeLiteralNode:$i,updateTypeLiteralNode:dl,createArrayTypeNode:Uf,updateArrayTypeNode:Kd,createTupleTypeNode:oA,updateTupleTypeNode:oo,createNamedTupleMember:Ki,updateNamedTupleMember:cc,createOptionalTypeNode:Xs,updateOptionalTypeNode:ws,createRestTypeNode:Gs,updateRestTypeNode:Ma,createUnionTypeNode:Tf,updateUnionTypeNode:cm,createIntersectionTypeNode:Fl,updateIntersectionTypeNode:rc,createConditionalTypeNode:sd,updateConditionalTypeNode:Om,createInferTypeNode:il,updateInferTypeNode:FA,createImportTypeNode:yg,updateImportTypeNode:Mp,createParenthesizedType:MA,updateParenthesizedType:Er,createThisTypeNode:Zt,createTypeOperatorNode:yn,updateTypeOperatorNode:ls,createIndexedAccessTypeNode:oa,updateIndexedAccessTypeNode:Fs,createMappedTypeNode:Wa,updateMappedTypeNode:Ca,createLiteralTypeNode:ld,updateLiteralTypeNode:Rp,createTemplateLiteralType:ZA,updateTemplateLiteralType:El,createObjectBindingPattern:np,updateObjectBindingPattern:HA,createArrayBindingPattern:df,updateArrayBindingPattern:Zs,createBindingElement:so,updateBindingElement:Ea,createArrayLiteralExpression:Ml,updateArrayLiteralExpression:Dr,createObjectLiteralExpression:Wn,updateObjectLiteralExpression:di,createPropertyAccessExpression:e&4?(z,ye)=>setEmitFlags(Bo(z,ye),262144):Bo,updatePropertyAccessExpression:us,createPropertyAccessChain:e&4?(z,ye,Ve)=>setEmitFlags(Ql(z,ye,Ve),262144):Ql,updatePropertyAccessChain:LA,createElementAccessExpression:ef,updateElementAccessExpression:ip,createElementAccessChain:_d,updateElementAccessChain:j1,createCallExpression:YA,updateCallExpression:Ac,createCallChain:Nm,updateCallChain:HS,createNewExpression:jd,updateNewExpression:dh,createTaggedTemplateExpression:Hp,updateTaggedTemplateExpression:uC,createTypeAssertion:nE,updateTypeAssertion:J_,createParenthesizedExpression:q0,updateParenthesizedExpression:XE,createFunctionExpression:TC,updateFunctionExpression:t_,createArrowFunction:cp,updateArrowFunction:Mm,createDeleteExpression:fb,updateDeleteExpression:pe,createTypeOfExpression:lm,updateTypeOfExpression:Kf,createVoidExpression:CI,updateVoidExpression:_I,createAwaitExpression:H2,updateAwaitExpression:iE,createPrefixUnaryExpression:se,updatePrefixUnaryExpression:O,createPostfixUnaryExpression:K,updatePostfixUnaryExpression:we,createBinaryExpression:gt,updateBinaryExpression:Yr,createConditionalExpression:Lr,updateConditionalExpression:fi,createTemplateExpression:$n,updateTemplateExpression:ra,createTemplateHead:SA,createTemplateMiddle:lI,createTemplateTail:lp,createNoSubstitutionTemplateLiteral:Ib,createTemplateLiteralLikeNode:$g,createYieldExpression:Na,updateYieldExpression:wd,createSpreadElement:z1,updateSpreadElement:T_,createClassExpression:RC,updateClassExpression:Hm,createOmittedExpression:YS,createExpressionWithTypeArguments:Fg,updateExpressionWithTypeArguments:hb,createAsExpression:gC,updateAsExpression:NC,createNonNullExpression:Y2,updateNonNullExpression:U_,createSatisfiesExpression:DC,updateSatisfiesExpression:kC,createNonNullChain:qI,updateNonNullChain:ph,createMetaProperty:vA,updateMetaProperty:Td,createTemplateSpan:Mc,updateTemplateSpan:Pf,createSemicolonClassElement:sE,createBlock:eA,updateBlock:QS,createVariableStatement:XS,updateVariableStatement:um,createEmptyStatement:gm,createExpressionStatement:cs,updateExpressionStatement:na,createIfStatement:ko,updateIfStatement:ki,createDoStatement:Kl,updateDoStatement:fd,createWhileStatement:jf,updateWhileStatement:Ld,createForStatement:AC,updateForStatement:JE,createForInStatement:Ym,updateForInStatement:vy,createForOfStatement:K_,updateForOfStatement:od,createContinueStatement:UE,updateContinueStatement:KE,createBreakStatement:Yp,updateBreakStatement:JS,createReturnStatement:By,updateReturnStatement:$0,createWithStatement:fw,updateWithStatement:Q2,createSwitchStatement:xc,updateSwitchStatement:ut,createLabeledStatement:ar,updateLabeledStatement:Jr,createThrowStatement:Gn,updateThrowStatement:Ts,createTryStatement:Qo,updateTryStatement:vg,createDebuggerStatement:Ng,createVariableDeclaration:Rf,updateVariableDeclaration:uI,createVariableDeclarationList:Th,updateVariableDeclarationList:oE,createFunctionDeclaration:TT,updateFunctionDeclaration:sB,createClassDeclaration:wy,updateClassDeclaration:jE,createInterfaceDeclaration:j_,updateInterfaceDeclaration:NT,createTypeAliasDeclaration:tf,updateTypeAliasDeclaration:Ty,createEnumDeclaration:US,updateEnumDeclaration:$I,createModuleDeclaration:BA,updateModuleDeclaration:$A,createModuleBlock:Qm,updateModuleBlock:zf,createCaseBlock:mb,updateCaseBlock:R_,createNamespaceExportDeclaration:Cb,updateNamespaceExportDeclaration:Ry,createImportEqualsDeclaration:_b,updateImportEqualsDeclaration:z_,createImportDeclaration:zE,updateImportDeclaration:oB,createImportClause:DT,updateImportClause:aB,createAssertClause:jS,updateAssertClause:XR,createAssertEntry:zS,updateAssertEntry:qE,createImportTypeAssertionContainer:X2,updateImportTypeAssertionContainer:kT,createImportAttributes:pn,updateImportAttributes:q1,createImportAttribute:J2,updateImportAttribute:ey,createNamespaceImport:up,updateNamespaceImport:Iw,createNamespaceExport:cB,updateNamespaceExport:RD,createNamedImports:Rd,updateNamedImports:JR,createImportSpecifier:ty,updateImportSpecifier:cF,createExportAssignment:$1,updateExportAssignment:$E,createExportDeclaration:N_,updateExportDeclaration:e1,createNamedExports:ry,updateNamedExports:xT,createExportSpecifier:yb,updateExportSpecifier:r_,createMissingDeclaration:Rh,createExternalModuleReference:bb,updateExternalModuleReference:lB,get createJSDocAllType(){return f(312)},get createJSDocUnknownType(){return f(313)},get createJSDocNonNullableType(){return b(315)},get updateJSDocNonNullableType(){return E(315)},get createJSDocNullableType(){return b(314)},get updateJSDocNullableType(){return E(314)},get createJSDocOptionalType(){return I(316)},get updateJSDocOptionalType(){return C(316)},get createJSDocVariadicType(){return I(318)},get updateJSDocVariadicType(){return C(318)},get createJSDocNamepathType(){return I(319)},get updateJSDocNamepathType(){return C(319)},createJSDocFunctionType:lc,updateJSDocFunctionType:fh,createJSDocTypeLiteral:rf,updateJSDocTypeLiteral:yI,createJSDocTypeExpression:aE,updateJSDocTypeExpression:qS,createJSDocSignature:Qp,updateJSDocSignature:uB,createJSDocTemplateTag:r1,updateJSDocTemplateTag:gB,createJSDocTypedefTag:hw,updateJSDocTypedefTag:GT,createJSDocParameterTag:b0,updateJSDocParameterTag:ia,createJSDocPropertyTag:e2,updateJSDocPropertyTag:yd,createJSDocCallbackTag:bI,updateJSDocCallbackTag:ag,createJSDocOverloadTag:Eb,updateJSDocOverloadTag:n1,createJSDocAugmentsTag:U2,updateJSDocAugmentsTag:e0,createJSDocImplementsTag:n_,updateJSDocImplementsTag:Wf,createJSDocSeeTag:Xp,updateJSDocSeeTag:cE,createJSDocImportTag:Dp,updateJSDocImportTag:t2,createJSDocNameReference:lE,updateJSDocNameReference:Ip,createJSDocMemberName:Xh,updateJSDocMemberName:E0,createJSDocLink:aA,updateJSDocLink:fu,createJSDocLinkCode:Jp,updateJSDocLinkCode:dC,createJSDocLinkPlain:uE,updateJSDocLinkPlain:eh,get createJSDocTypeTag(){return F(344)},get updateJSDocTypeTag(){return Q(344)},get createJSDocReturnTag(){return F(342)},get updateJSDocReturnTag(){return Q(342)},get createJSDocThisTag(){return F(343)},get updateJSDocThisTag(){return Q(343)},get createJSDocAuthorTag(){return N(330)},get updateJSDocAuthorTag(){return B(330)},get createJSDocClassTag(){return N(332)},get updateJSDocClassTag(){return B(332)},get createJSDocPublicTag(){return N(333)},get updateJSDocPublicTag(){return B(333)},get createJSDocPrivateTag(){return N(334)},get updateJSDocPrivateTag(){return B(334)},get createJSDocProtectedTag(){return N(335)},get updateJSDocProtectedTag(){return B(335)},get createJSDocReadonlyTag(){return N(336)},get updateJSDocReadonlyTag(){return B(336)},get createJSDocOverrideTag(){return N(337)},get updateJSDocOverrideTag(){return B(337)},get createJSDocDeprecatedTag(){return N(331)},get updateJSDocDeprecatedTag(){return B(331)},get createJSDocThrowsTag(){return F(349)},get updateJSDocThrowsTag(){return Q(349)},get createJSDocSatisfiesTag(){return F(350)},get updateJSDocSatisfiesTag(){return Q(350)},createJSDocEnumTag:Np,updateJSDocEnumTag:Dm,createJSDocUnknownTag:gE,updateJSDocUnknownTag:FT,createJSDocText:Ro,updateJSDocText:AE,createJSDocComment:AB,updateJSDocComment:Xc,createJsxElement:iu,updateJsxElement:dE,createJsxSelfClosingElement:yL,updateJsxSelfClosingElement:KR,createJsxOpeningElement:Ou,updateJsxOpeningElement:ny,createJsxClosingElement:hp,updateJsxClosingElement:Am,createJsxFragment:K2,createJsxText:dB,updateJsxText:ZT,createJsxOpeningFragment:Cx,createJsxJsxClosingFragment:pB,updateJsxFragment:i_,createJsxAttribute:qf,updateJsxAttribute:Jh,createJsxAttributes:$S,updateJsxAttributes:Sb,createJsxSpreadAttribute:mp,updateJsxSpreadAttribute:r2,createJsxExpression:i1,updateJsxExpression:Of,createJsxNamespacedName:pE,updateJsxNamespacedName:Vd,createCaseClause:j,updateCaseClause:Z,createDefaultClause:Id,updateDefaultClause:fB,createHeritageClause:ev,updateHeritageClause:Ny,createCatchClause:vb,updateCatchClause:xD,createPropertyAssignment:IB,updatePropertyAssignment:Bb,createShorthandPropertyAssignment:gF,updateShorthandPropertyAssignment:x,createSpreadAssignment:te,updateSpreadAssignment:Re,createEnumMember:Le,updateEnumMember:ft,createSourceFile:dr,updateSourceFile:Ho,createRedirectedSourceFile:Ur,createBundle:Wg,updateBundle:cA,createSyntheticExpression:th,createSyntaxList:xn,createNotEmittedStatement:rn,createNotEmittedTypeElement:ec,createPartiallyEmittedExpression:Ci,updatePartiallyEmittedExpression:Po,createCommaListExpression:dc,updateCommaListExpression:Iu,createSyntheticReferenceExpression:Cl,updateSyntheticReferenceExpression:wl,cloneNode:tv,get createComma(){return o(28)},get createAssignment(){return o(64)},get createLogicalOr(){return o(57)},get createLogicalAnd(){return o(56)},get createBitwiseOr(){return o(52)},get createBitwiseXor(){return o(53)},get createBitwiseAnd(){return o(51)},get createStrictEquality(){return o(37)},get createStrictInequality(){return o(38)},get createEquality(){return o(35)},get createInequality(){return o(36)},get createLessThan(){return o(30)},get createLessThanEquals(){return o(33)},get createGreaterThan(){return o(32)},get createGreaterThanEquals(){return o(34)},get createLeftShift(){return o(48)},get createRightShift(){return o(49)},get createUnsignedRightShift(){return o(50)},get createAdd(){return o(40)},get createSubtract(){return o(41)},get createMultiply(){return o(42)},get createDivide(){return o(44)},get createModulo(){return o(45)},get createExponent(){return o(43)},get createPrefixPlus(){return l(40)},get createPrefixMinus(){return l(41)},get createPrefixIncrement(){return l(46)},get createPrefixDecrement(){return l(47)},get createBitwiseNot(){return l(55)},get createLogicalNot(){return l(54)},get createPostfixIncrement(){return A(46)},get createPostfixDecrement(){return A(47)},createImmediatelyInvokedFunctionExpression:Yu,createImmediatelyInvokedArrowFunction:qO,createVoidZero:hB,createExportDefault:mw,createExternalModuleExport:AF,createTypeCheck:$O,createIsNotTypeCheck:iY,createMethodCall:LT,createGlobalMethodCall:ff,createFunctionBindCall:GD,createFunctionCallCall:dF,createFunctionApplyCall:EL,createArraySliceCall:FD,createArrayConcatCall:fE,createObjectDefinePropertyCall:n2,createObjectGetOwnPropertyDescriptorCall:mB,createReflectGetCall:bd,createReflectSetCall:s1,createPropertyDescriptor:wb,createCallBinding:aY,createAssignmentTargetWrapper:tt,inlineExpressions:Jt,getInternalName:Xr,getLocalName:ui,getExportName:Is,getDeclarationName:Hs,getNamespaceMemberName:Rs,getExternalModuleOrNamespaceExportName:ja,restoreOuterExpressions:sY,restoreEnclosingLabel:oY,createUseStrictPrologue:Nd,copyPrologue:ho,copyStandardPrologue:ed,copyCustomPrologue:Og,ensureUseStrict:Nh,liftToBlock:o1,mergeLexicalEnvironment:q2,replaceModifiers:IE,replaceDecoratorsAndModifiers:zR,replacePropertyName:e3};return hO(h$a,z=>z(X)),X;function ae(z,ye){if(z===void 0||z===x2)z=[];else if(_ce(z)){if(ye===void 0||z.hasTrailingComma===ye)return z.transformFlags===void 0&&q2i(z),Zo.attachNodeArrayDebugInfo(z),z;let wr=z.slice();return wr.pos=z.pos,wr.end=z.end,wr.hasTrailingComma=ye,wr.transformFlags=z.transformFlags,Zo.attachNodeArrayDebugInfo(wr),wr}let Ve=z.length,Ct=Ve>=1&&Ve<=4?z.slice():z;return Ct.pos=-1,Ct.end=-1,Ct.hasTrailingComma=!!ye,Ct.transformFlags=0,q2i(Ct),Zo.attachNodeArrayDebugInfo(Ct),Ct}function ne(z){return t.createBaseNode(z)}function ce(z){let ye=ne(z);return ye.symbol=void 0,ye.localSymbol=void 0,ye}function fe(z,ye){return z!==ye&&(z.typeArguments=ye.typeArguments),Eo(z,ye)}function ue(z,ye=0){let Ve=typeof z=="number"?z+"":z;Zo.assert(Ve.charCodeAt(0)!==45,"Negative numbers should be created in combination with createPrefixUnaryExpression");let Ct=ce(9);return Ct.text=Ve,Ct.numericLiteralFlags=ye,ye&384&&(Ct.transformFlags|=1024),Ct}function de(z){let ye=qt(10);return ye.text=typeof z=="string"?z:c$a(z)+"n",ye.transformFlags|=32,ye}function be(z,ye){let Ve=ce(11);return Ve.text=z,Ve.singleQuote=ye,Ve}function Se(z,ye,Ve){let Ct=be(z,ye);return Ct.hasExtendedUnicodeEscape=Ve,Ve&&(Ct.transformFlags|=1024),Ct}function De(z){let ye=be(Sqa(z),void 0);return ye.textSourceNode=z,ye}function k(z){let ye=qt(14);return ye.text=z,ye}function et(z,ye){switch(z){case 9:return ue(ye,0);case 10:return de(ye);case 11:return Se(ye,void 0);case 12:return dB(ye,!1);case 13:return dB(ye,!0);case 14:return k(ye);case 15:return $g(z,ye,void 0,0)}}function ct(z){let ye=t.createBaseIdentifierNode(80);return ye.escapedText=z,ye.jsDoc=void 0,ye.flowNode=void 0,ye.symbol=void 0,ye}function Me(z,ye,Ve,Ct){let wr=ct(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function je(z,ye,Ve){ye===void 0&&z&&(ye=pvi(z)),ye===80&&(ye=void 0);let Ct=ct(mNe(z));return Ve&&(Ct.flags|=256),Ct.escapedText==="await"&&(Ct.transformFlags|=67108864),Ct.flags&256&&(Ct.transformFlags|=1024),Ct}function St(z,ye,Ve,Ct){let wr=1;ye&&(wr|=8);let ai=Me("",wr,Ve,Ct);return z&&z(ai),ai}function At(z){let ye=2;return z&&(ye|=8),Me("",ye,void 0,void 0)}function Yt(z,ye=0,Ve,Ct){return Zo.assert(!(ye&7),"Argument out of range: flags"),Zo.assert((ye&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Me(z,3|ye,Ve,Ct)}function Tr(z,ye=0,Ve,Ct){Zo.assert(!(ye&7),"Argument out of range: flags");let wr=z?gNr(z)?CNr(!1,Ve,z,Ct,yV):`generated@${getNodeId(z)}`:"";(Ve||Ct)&&(ye|=16);let ai=Me(wr,4|ye,Ve,Ct);return ai.original=z,ai}function Nr(z){let ye=t.createBasePrivateIdentifierNode(81);return ye.escapedText=z,ye.transformFlags|=16777216,ye}function er(z){return Obt(z,"#")||Zo.fail("First character of private identifier must be #: "+z),Nr(mNe(z))}function vt(z,ye,Ve,Ct){let wr=Nr(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function xt(z,ye,Ve){z&&!Obt(z,"#")&&Zo.fail("First character of private identifier must be #: "+z);let Ct=8|(z?3:1);return vt(z??"",Ct,ye,Ve)}function Zr(z,ye,Ve){let Ct=gNr(z)?CNr(!0,ye,z,Ve,yV):`#generated@${getNodeId(z)}`,wr=vt(Ct,4|(ye||Ve?16:0),ye,Ve);return wr.original=z,wr}function qt(z){return t.createBaseTokenNode(z)}function Xt(z){Zo.assert(z>=0&&z<=165,"Invalid token"),Zo.assert(z<=15||z>=18,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),Zo.assert(z<=9||z>=15,"Invalid token. Use 'createLiteralLikeNode' to create literals."),Zo.assert(z!==80,"Invalid token. Use 'createIdentifier' to create identifiers");let ye=qt(z),Ve=0;switch(z){case 134:Ve=384;break;case 160:Ve=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:Ve=1;break;case 108:Ve=134218752,ye.flowNode=void 0;break;case 126:Ve=1024;break;case 129:Ve=16777216;break;case 110:Ve=16384,ye.flowNode=void 0;break}return Ve&&(ye.transformFlags|=Ve),ye}function lr(){return Xt(108)}function cr(){return Xt(110)}function Ar(){return Xt(106)}function qr(){return Xt(112)}function _n(){return Xt(97)}function ke(z){return Xt(z)}function jt(z){let ye=[];return z&32&&ye.push(ke(95)),z&128&&ye.push(ke(138)),z&2048&&ye.push(ke(90)),z&4096&&ye.push(ke(87)),z&1&&ye.push(ke(125)),z&2&&ye.push(ke(123)),z&4&&ye.push(ke(124)),z&64&&ye.push(ke(128)),z&256&&ye.push(ke(126)),z&16&&ye.push(ke(164)),z&8&&ye.push(ke(148)),z&512&&ye.push(ke(129)),z&1024&&ye.push(ke(134)),z&8192&&ye.push(ke(103)),z&16384&&ye.push(ke(147)),ye.length?ye:void 0}function Fn(z,ye){let Ve=ne(166);return Ve.left=z,Ve.right=EI(ye),Ve.transformFlags|=$o(Ve.left)|_Ne(Ve.right),Ve.flowNode=void 0,Ve}function Nn(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Fn(ye,Ve),z):z}function Hi(z){let ye=ne(167);return ye.expression=n().parenthesizeExpressionOfComputedPropertyName(z),ye.transformFlags|=$o(ye.expression)|1024|131072,ye}function po(z,ye){return z.expression!==ye?Eo(Hi(ye),z):z}function Vr(z,ye,Ve,Ct){let wr=ce(168);return wr.modifiers=IA(z),wr.name=EI(ye),wr.constraint=Ve,wr.default=Ct,wr.transformFlags=1,wr.expression=void 0,wr.jsDoc=void 0,wr}function xi(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.constraint!==Ct||z.default!==wr?Eo(Vr(ye,Ve,Ct,wr),z):z}function io(z,ye,Ve,Ct,wr,ai){let Lo=ce(169);return Lo.modifiers=IA(z),Lo.dotDotDotToken=ye,Lo.name=EI(Ve),Lo.questionToken=Ct,Lo.type=wr,Lo.initializer=wA(ai),Bqa(Lo.name)?Lo.transformFlags=1:Lo.transformFlags=qA(Lo.modifiers)|$o(Lo.dotDotDotToken)|pO(Lo.name)|$o(Lo.questionToken)|$o(Lo.initializer)|(Lo.questionToken??Lo.type?1:0)|(Lo.dotDotDotToken??Lo.initializer?1024:0)|(fO(Lo.modifiers)&31?8192:0),Lo.jsDoc=void 0,Lo}function ga(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.dotDotDotToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.type!==ai||z.initializer!==Lo?Eo(io(ye,Ve,Ct,wr,ai,Lo),z):z}function Ya(z){let ye=ne(170);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1|8192|33554432,ye}function Gc(z,ye){return z.expression!==ye?Eo(Ya(ye),z):z}function cl(z,ye,Ve,Ct){let wr=ce(171);return wr.modifiers=IA(z),wr.name=EI(ye),wr.type=Ct,wr.questionToken=Ve,wr.transformFlags=1,wr.initializer=void 0,wr.jsDoc=void 0,wr}function Sc(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Hr(cl(ye,Ve,Ct,wr),z):z}function Hr(z,ye){return z!==ye&&(z.initializer=ye.initializer),Eo(z,ye)}function Wr(z,ye,Ve,Ct,wr){let ai=ce(172);ai.modifiers=IA(z),ai.name=EI(ye),ai.questionToken=Ve&&eSi(Ve)?Ve:void 0,ai.exclamationToken=Ve&&$2i(Ve)?Ve:void 0,ai.type=Ct,ai.initializer=wA(wr);let Lo=ai.flags&33554432||fO(ai.modifiers)&128;return ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|$o(ai.initializer)|(Lo||ai.questionToken||ai.exclamationToken||ai.type?1:0)|($vi(ai.name)||fO(ai.modifiers)&256&&ai.initializer?8192:0)|16777216,ai.jsDoc=void 0,ai}function Ft(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==(Ct!==void 0&&eSi(Ct)?Ct:void 0)||z.exclamationToken!==(Ct!==void 0&&$2i(Ct)?Ct:void 0)||z.type!==wr||z.initializer!==ai?Eo(Wr(ye,Ve,Ct,wr,ai),z):z}function zr(z,ye,Ve,Ct,wr,ai){let Lo=ce(173);return Lo.modifiers=IA(z),Lo.name=EI(ye),Lo.questionToken=Ve,Lo.typeParameters=IA(Ct),Lo.parameters=IA(wr),Lo.type=ai,Lo.transformFlags=1,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.typeArguments=void 0,Lo}function Rn(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo?fe(zr(ye,Ve,Ct,wr,ai,Lo),z):z}function Or(z,ye,Ve,Ct,wr,ai,Lo,Hc){let ad=ce(174);if(ad.modifiers=IA(z),ad.asteriskToken=ye,ad.name=EI(Ve),ad.questionToken=Ct,ad.exclamationToken=void 0,ad.typeParameters=IA(wr),ad.parameters=ae(ai),ad.type=Lo,ad.body=Hc,!ad.body)ad.transformFlags=1;else{let dm=fO(ad.modifiers)&1024,rv=!!ad.asteriskToken,nv=dm&&rv;ad.transformFlags=qA(ad.modifiers)|$o(ad.asteriskToken)|pO(ad.name)|$o(ad.questionToken)|qA(ad.typeParameters)|qA(ad.parameters)|$o(ad.type)|$o(ad.body)&-67108865|(nv?128:dm?256:rv?2048:0)|(ad.questionToken||ad.typeParameters||ad.type?1:0)|1024}return ad.typeArguments=void 0,ad.jsDoc=void 0,ad.locals=void 0,ad.nextContainer=void 0,ad.flowNode=void 0,ad.endFlowNode=void 0,ad.returnFlowNode=void 0,ad}function Qi(z,ye,Ve,Ct,wr,ai,Lo,Hc,ad){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.typeParameters!==ai||z.parameters!==Lo||z.type!==Hc||z.body!==ad?ps(Or(ye,Ve,Ct,wr,ai,Lo,Hc,ad),z):z}function ps(z,ye){return z!==ye&&(z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function yo(z){let ye=ce(175);return ye.body=z,ye.transformFlags=$o(z)|16777216,ye.modifiers=void 0,ye.jsDoc=void 0,ye.locals=void 0,ye.nextContainer=void 0,ye.endFlowNode=void 0,ye.returnFlowNode=void 0,ye}function bo(z,ye){return z.body!==ye?Qa(yo(ye),z):z}function Qa(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function gc(z,ye,Ve){let Ct=ce(176);return Ct.modifiers=IA(z),Ct.parameters=ae(ye),Ct.body=Ve,Ct.body?Ct.transformFlags=qA(Ct.modifiers)|qA(Ct.parameters)|$o(Ct.body)&-67108865|1024:Ct.transformFlags=1,Ct.typeParameters=void 0,Ct.type=void 0,Ct.typeArguments=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.returnFlowNode=void 0,Ct}function Cg(z,ye,Ve,Ct){return z.modifiers!==ye||z.parameters!==Ve||z.body!==Ct?Nc(gc(ye,Ve,Ct),z):z}function Nc(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function iA(z,ye,Ve,Ct,wr){let ai=ce(177);return ai.modifiers=IA(z),ai.name=EI(ye),ai.parameters=ae(Ve),ai.type=Ct,ai.body=wr,ai.body?ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|qA(ai.parameters)|$o(ai.type)|$o(ai.body)&-67108865|(ai.type?1:0):ai.transformFlags=1,ai.typeArguments=void 0,ai.typeParameters=void 0,ai.jsDoc=void 0,ai.locals=void 0,ai.nextContainer=void 0,ai.flowNode=void 0,ai.endFlowNode=void 0,ai.returnFlowNode=void 0,ai}function ma(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.type!==wr||z.body!==ai?vu(iA(ye,Ve,Ct,wr,ai),z):z}function vu(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters),fe(z,ye)}function li(z,ye,Ve,Ct){let wr=ce(178);return wr.modifiers=IA(z),wr.name=EI(ye),wr.parameters=ae(Ve),wr.body=Ct,wr.body?wr.transformFlags=qA(wr.modifiers)|pO(wr.name)|qA(wr.parameters)|$o(wr.body)&-67108865|(wr.type?1:0):wr.transformFlags=1,wr.typeArguments=void 0,wr.typeParameters=void 0,wr.type=void 0,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr.endFlowNode=void 0,wr.returnFlowNode=void 0,wr}function Ei(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.body!==wr?Ps(li(ye,Ve,Ct,wr),z):z}function Ps(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function Xa(z,ye,Ve){let Ct=ce(179);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function ac(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Xa(ye,Ve,Ct),z):z}function Yl(z,ye,Ve){let Ct=ce(180);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wc(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Yl(ye,Ve,Ct),z):z}function Sg(z,ye,Ve){let Ct=ce(181);return Ct.modifiers=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Ul(z,ye,Ve,Ct){return z.parameters!==Ve||z.type!==Ct||z.modifiers!==ye?fe(Sg(ye,Ve,Ct),z):z}function Xu(z,ye){let Ve=ne(204);return Ve.type=z,Ve.literal=ye,Ve.transformFlags=1,Ve}function Da(z,ye,Ve){return z.type!==ye||z.literal!==Ve?Eo(Xu(ye,Ve),z):z}function pu(z){return Xt(z)}function _g(z,ye,Ve){let Ct=ne(182);return Ct.assertsModifier=z,Ct.parameterName=EI(ye),Ct.type=Ve,Ct.transformFlags=1,Ct}function mI(z,ye,Ve,Ct){return z.assertsModifier!==ye||z.parameterName!==Ve||z.type!==Ct?Eo(_g(ye,Ve,Ct),z):z}function Qh(z,ye){let Ve=ne(183);return Ve.typeName=EI(z),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ae(ye)),Ve.transformFlags=1,Ve}function Ri(z,ye,Ve){return z.typeName!==ye||z.typeArguments!==Ve?Eo(Qh(ye,Ve),z):z}function Do(z,ye,Ve){let Ct=ce(184);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.modifiers=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wt(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Hu(Do(ye,Ve,Ct),z):z}function Hu(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),fe(z,ye)}function Ru(...z){return z.length===4?Vs(...z):z.length===3?Ju(...z):Zo.fail("Incorrect number of arguments specified.")}function Vs(z,ye,Ve,Ct){let wr=ce(185);return wr.modifiers=IA(z),wr.typeParameters=IA(ye),wr.parameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.typeArguments=void 0,wr}function Ju(z,ye,Ve){return Vs(void 0,z,ye,Ve)}function Yn(...z){return z.length===5?Ko(...z):z.length===4?Eg(...z):Zo.fail("Incorrect number of arguments specified.")}function Ko(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr?fe(Ru(ye,Ve,Ct,wr),z):z}function Eg(z,ye,Ve,Ct){return Ko(z,z.modifiers,ye,Ve,Ct)}function OA(z,ye){let Ve=ne(186);return Ve.exprName=z,Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags=1,Ve}function GA(z,ye,Ve){return z.exprName!==ye||z.typeArguments!==Ve?Eo(OA(ye,Ve),z):z}function $i(z){let ye=ce(187);return ye.members=ae(z),ye.transformFlags=1,ye}function dl(z,ye){return z.members!==ye?Eo($i(ye),z):z}function Uf(z){let ye=ne(188);return ye.elementType=n().parenthesizeNonArrayTypeOfPostfixType(z),ye.transformFlags=1,ye}function Kd(z,ye){return z.elementType!==ye?Eo(Uf(ye),z):z}function oA(z){let ye=ne(189);return ye.elements=ae(n().parenthesizeElementTypesOfTupleType(z)),ye.transformFlags=1,ye}function oo(z,ye){return z.elements!==ye?Eo(oA(ye),z):z}function Ki(z,ye,Ve,Ct){let wr=ce(202);return wr.dotDotDotToken=z,wr.name=ye,wr.questionToken=Ve,wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr}function cc(z,ye,Ve,Ct,wr){return z.dotDotDotToken!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Eo(Ki(ye,Ve,Ct,wr),z):z}function Xs(z){let ye=ne(190);return ye.type=n().parenthesizeTypeOfOptionalType(z),ye.transformFlags=1,ye}function ws(z,ye){return z.type!==ye?Eo(Xs(ye),z):z}function Gs(z){let ye=ne(191);return ye.type=z,ye.transformFlags=1,ye}function Ma(z,ye){return z.type!==ye?Eo(Gs(ye),z):z}function Dc(z,ye,Ve){let Ct=ne(z);return Ct.types=X.createNodeArray(Ve(ye)),Ct.transformFlags=1,Ct}function As(z,ye,Ve){return z.types!==ye?Eo(Dc(z.kind,ye,Ve),z):z}function Tf(z){return Dc(192,z,n().parenthesizeConstituentTypesOfUnionType)}function cm(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfUnionType)}function Fl(z){return Dc(193,z,n().parenthesizeConstituentTypesOfIntersectionType)}function rc(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfIntersectionType)}function sd(z,ye,Ve,Ct){let wr=ne(194);return wr.checkType=n().parenthesizeCheckTypeOfConditionalType(z),wr.extendsType=n().parenthesizeExtendsTypeOfConditionalType(ye),wr.trueType=Ve,wr.falseType=Ct,wr.transformFlags=1,wr.locals=void 0,wr.nextContainer=void 0,wr}function Om(z,ye,Ve,Ct,wr){return z.checkType!==ye||z.extendsType!==Ve||z.trueType!==Ct||z.falseType!==wr?Eo(sd(ye,Ve,Ct,wr),z):z}function il(z){let ye=ne(195);return ye.typeParameter=z,ye.transformFlags=1,ye}function FA(z,ye){return z.typeParameter!==ye?Eo(il(ye),z):z}function ZA(z,ye){let Ve=ne(203);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags=1,Ve}function El(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo(ZA(ye,Ve),z):z}function yg(z,ye,Ve,Ct,wr=!1){let ai=ne(205);return ai.argument=z,ai.attributes=ye,ai.assertions&&ai.assertions.assertClause&&ai.attributes&&(ai.assertions.assertClause=ai.attributes),ai.qualifier=Ve,ai.typeArguments=Ct&&n().parenthesizeTypeArguments(Ct),ai.isTypeOf=wr,ai.transformFlags=1,ai}function Mp(z,ye,Ve,Ct,wr,ai=z.isTypeOf){return z.argument!==ye||z.attributes!==Ve||z.qualifier!==Ct||z.typeArguments!==wr||z.isTypeOf!==ai?Eo(yg(ye,Ve,Ct,wr,ai),z):z}function MA(z){let ye=ne(196);return ye.type=z,ye.transformFlags=1,ye}function Er(z,ye){return z.type!==ye?Eo(MA(ye),z):z}function Zt(){let z=ne(197);return z.transformFlags=1,z}function yn(z,ye){let Ve=ne(198);return Ve.operator=z,Ve.type=z===148?n().parenthesizeOperandOfReadonlyTypeOperator(ye):n().parenthesizeOperandOfTypeOperator(ye),Ve.transformFlags=1,Ve}function ls(z,ye){return z.type!==ye?Eo(yn(z.operator,ye),z):z}function oa(z,ye){let Ve=ne(199);return Ve.objectType=n().parenthesizeNonArrayTypeOfPostfixType(z),Ve.indexType=ye,Ve.transformFlags=1,Ve}function Fs(z,ye,Ve){return z.objectType!==ye||z.indexType!==Ve?Eo(oa(ye,Ve),z):z}function Wa(z,ye,Ve,Ct,wr,ai){let Lo=ce(200);return Lo.readonlyToken=z,Lo.typeParameter=ye,Lo.nameType=Ve,Lo.questionToken=Ct,Lo.type=wr,Lo.members=ai&&ae(ai),Lo.transformFlags=1,Lo.locals=void 0,Lo.nextContainer=void 0,Lo}function Ca(z,ye,Ve,Ct,wr,ai,Lo){return z.readonlyToken!==ye||z.typeParameter!==Ve||z.nameType!==Ct||z.questionToken!==wr||z.type!==ai||z.members!==Lo?Eo(Wa(ye,Ve,Ct,wr,ai,Lo),z):z}function ld(z){let ye=ne(201);return ye.literal=z,ye.transformFlags=1,ye}function Rp(z,ye){return z.literal!==ye?Eo(ld(ye),z):z}function np(z){let ye=ne(206);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye.transformFlags&32768&&(ye.transformFlags|=65664),ye}function HA(z,ye){return z.elements!==ye?Eo(np(ye),z):z}function df(z){let ye=ne(207);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye}function Zs(z,ye){return z.elements!==ye?Eo(df(ye),z):z}function so(z,ye,Ve,Ct){let wr=ce(208);return wr.dotDotDotToken=z,wr.propertyName=EI(ye),wr.name=EI(Ve),wr.initializer=wA(Ct),wr.transformFlags|=$o(wr.dotDotDotToken)|pO(wr.propertyName)|pO(wr.name)|$o(wr.initializer)|(wr.dotDotDotToken?32768:0)|1024,wr.flowNode=void 0,wr}function Ea(z,ye,Ve,Ct,wr){return z.propertyName!==Ve||z.dotDotDotToken!==ye||z.name!==Ct||z.initializer!==wr?Eo(so(ye,Ve,Ct,wr),z):z}function Ml(z,ye){let Ve=ne(209),Ct=z&&Vme(z),wr=ae(z,Ct&&oec(Ct)?!0:void 0);return Ve.elements=n().parenthesizeExpressionsOfCommaDelimitedList(wr),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.elements),Ve}function Dr(z,ye){return z.elements!==ye?Eo(Ml(ye,z.multiLine),z):z}function Wn(z,ye){let Ve=ce(210);return Ve.properties=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.properties),Ve.jsDoc=void 0,Ve}function di(z,ye){return z.properties!==ye?Eo(Wn(ye,z.multiLine),z):z}function aa(z,ye,Ve){let Ct=ce(211);return Ct.expression=z,Ct.questionDotToken=ye,Ct.name=Ve,Ct.transformFlags=$o(Ct.expression)|$o(Ct.questionDotToken)|($C(Ct.name)?_Ne(Ct.name):$o(Ct.name)|536870912),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function Bo(z,ye){let Ve=aa(n().parenthesizeLeftSideOfAccess(z,!1),void 0,EI(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function us(z,ye,Ve){return hza(z)?LA(z,ye,z.questionDotToken,Aj(Ve,$C)):z.expression!==ye||z.name!==Ve?Eo(Bo(ye,Ve),z):z}function Ql(z,ye,Ve){let Ct=aa(n().parenthesizeLeftSideOfAccess(z,!0),ye,EI(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function LA(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.name!==Ct?Eo(Ql(ye,Ve,Ct),z):z}function pf(z,ye,Ve){let Ct=ce(212);return Ct.expression=z,Ct.questionDotToken=ye,Ct.argumentExpression=Ve,Ct.transformFlags|=$o(Ct.expression)|$o(Ct.questionDotToken)|$o(Ct.argumentExpression),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ef(z,ye){let Ve=pf(n().parenthesizeLeftSideOfAccess(z,!1),void 0,zd(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function ip(z,ye,Ve){return mza(z)?j1(z,ye,z.questionDotToken,Ve):z.expression!==ye||z.argumentExpression!==Ve?Eo(ef(ye,Ve),z):z}function _d(z,ye,Ve){let Ct=pf(n().parenthesizeLeftSideOfAccess(z,!0),ye,zd(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function j1(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.argumentExpression!==Ct?Eo(_d(ye,Ve,Ct),z):z}function pw(z,ye,Ve,Ct){let wr=ce(213);return wr.expression=z,wr.questionDotToken=ye,wr.typeArguments=Ve,wr.arguments=Ct,wr.transformFlags|=$o(wr.expression)|$o(wr.questionDotToken)|qA(wr.typeArguments)|qA(wr.arguments),wr.typeArguments&&(wr.transformFlags|=1),Q2i(wr.expression)&&(wr.transformFlags|=16384),wr}function YA(z,ye,Ve){let Ct=pw(n().parenthesizeLeftSideOfAccess(z,!1),void 0,IA(ye),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ve)));return R$a(Ct.expression)&&(Ct.transformFlags|=8388608),Ct}function Ac(z,ye,Ve,Ct){return V2i(z)?HS(z,ye,z.questionDotToken,Ve,Ct):z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(YA(ye,Ve,Ct),z):z}function Nm(z,ye,Ve,Ct){let wr=pw(n().parenthesizeLeftSideOfAccess(z,!0),ye,IA(Ve),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ct)));return wr.flags|=64,wr.transformFlags|=32,wr}function HS(z,ye,Ve,Ct,wr){return Zo.assert(!!(z.flags&64),"Cannot update a CallExpression using updateCallChain. Use updateCall instead."),z.expression!==ye||z.questionDotToken!==Ve||z.typeArguments!==Ct||z.arguments!==wr?Eo(Nm(ye,Ve,Ct,wr),z):z}function jd(z,ye,Ve){let Ct=ce(214);return Ct.expression=n().parenthesizeExpressionOfNew(z),Ct.typeArguments=IA(ye),Ct.arguments=Ve?n().parenthesizeExpressionsOfCommaDelimitedList(Ve):void 0,Ct.transformFlags|=$o(Ct.expression)|qA(Ct.typeArguments)|qA(Ct.arguments)|32,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function dh(z,ye,Ve,Ct){return z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(jd(ye,Ve,Ct),z):z}function Hp(z,ye,Ve){let Ct=ne(215);return Ct.tag=n().parenthesizeLeftSideOfAccess(z,!1),Ct.typeArguments=IA(ye),Ct.template=Ve,Ct.transformFlags|=$o(Ct.tag)|qA(Ct.typeArguments)|$o(Ct.template)|1024,Ct.typeArguments&&(Ct.transformFlags|=1),vqa(Ct.template)&&(Ct.transformFlags|=128),Ct}function uC(z,ye,Ve,Ct){return z.tag!==ye||z.typeArguments!==Ve||z.template!==Ct?Eo(Hp(ye,Ve,Ct),z):z}function nE(z,ye){let Ve=ne(216);return Ve.expression=n().parenthesizeOperandOfPrefixUnary(ye),Ve.type=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function J_(z,ye,Ve){return z.type!==ye||z.expression!==Ve?Eo(nE(ye,Ve),z):z}function q0(z){let ye=ne(217);return ye.expression=z,ye.transformFlags=$o(ye.expression),ye.jsDoc=void 0,ye}function XE(z,ye){return z.expression!==ye?Eo(q0(ye),z):z}function TC(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(218);Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo;let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;return Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304,Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.flowNode=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function t_(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.name!==Ct||z.modifiers!==ye||z.asteriskToken!==Ve||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?fe(TC(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function cp(z,ye,Ve,Ct,wr,ai){let Lo=ce(219);Lo.modifiers=IA(z),Lo.typeParameters=IA(ye),Lo.parameters=ae(Ve),Lo.type=Ct,Lo.equalsGreaterThanToken=wr??Xt(39),Lo.body=n().parenthesizeConciseBodyOfArrowFunction(ai);let Hc=fO(Lo.modifiers)&1024;return Lo.transformFlags=qA(Lo.modifiers)|qA(Lo.typeParameters)|qA(Lo.parameters)|$o(Lo.type)|$o(Lo.equalsGreaterThanToken)|$o(Lo.body)&-67108865|(Lo.typeParameters||Lo.type?1:0)|(Hc?16640:0)|1024,Lo.typeArguments=void 0,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.flowNode=void 0,Lo.endFlowNode=void 0,Lo.returnFlowNode=void 0,Lo}function Mm(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr||z.equalsGreaterThanToken!==ai||z.body!==Lo?fe(cp(ye,Ve,Ct,wr,ai,Lo),z):z}function fb(z){let ye=ne(220);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function pe(z,ye){return z.expression!==ye?Eo(fb(ye),z):z}function lm(z){let ye=ne(221);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function Kf(z,ye){return z.expression!==ye?Eo(lm(ye),z):z}function CI(z){let ye=ne(222);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function _I(z,ye){return z.expression!==ye?Eo(CI(ye),z):z}function H2(z){let ye=ne(223);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression)|256|128|2097152,ye}function iE(z,ye){return z.expression!==ye?Eo(H2(ye),z):z}function se(z,ye){let Ve=ne(224);return Ve.operator=z,Ve.operand=n().parenthesizeOperandOfPrefixUnary(ye),Ve.transformFlags|=$o(Ve.operand),(z===46||z===47)&&$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function O(z,ye){return z.operand!==ye?Eo(se(z.operator,ye),z):z}function K(z,ye){let Ve=ne(225);return Ve.operator=ye,Ve.operand=n().parenthesizeOperandOfPostfixUnary(z),Ve.transformFlags|=$o(Ve.operand),$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function we(z,ye){return z.operand!==ye?Eo(K(ye,z.operator),z):z}function gt(z,ye,Ve){let Ct=ce(226),wr=qR(ye),ai=wr.kind;return Ct.left=n().parenthesizeLeftSideOfBinary(ai,z),Ct.operatorToken=wr,Ct.right=n().parenthesizeRightSideOfBinary(ai,Ct.left,Ve),Ct.transformFlags|=$o(Ct.left)|$o(Ct.operatorToken)|$o(Ct.right),ai===61?Ct.transformFlags|=32:ai===64?oBi(Ct.left)?Ct.transformFlags|=5248|sr(Ct.left):tec(Ct.left)&&(Ct.transformFlags|=5120|sr(Ct.left)):ai===43||ai===68?Ct.transformFlags|=512:Zqa(ai)&&(Ct.transformFlags|=16),ai===103&&Yme(Ct.left)&&(Ct.transformFlags|=536870912),Ct.jsDoc=void 0,Ct}function sr(z){return SBi(z)?65536:0}function Yr(z,ye,Ve,Ct){return z.left!==ye||z.operatorToken!==Ve||z.right!==Ct?Eo(gt(ye,Ve,Ct),z):z}function Lr(z,ye,Ve,Ct,wr){let ai=ne(227);return ai.condition=n().parenthesizeConditionOfConditionalExpression(z),ai.questionToken=ye??Xt(58),ai.whenTrue=n().parenthesizeBranchOfConditionalExpression(Ve),ai.colonToken=Ct??Xt(59),ai.whenFalse=n().parenthesizeBranchOfConditionalExpression(wr),ai.transformFlags|=$o(ai.condition)|$o(ai.questionToken)|$o(ai.whenTrue)|$o(ai.colonToken)|$o(ai.whenFalse),ai}function fi(z,ye,Ve,Ct,wr,ai){return z.condition!==ye||z.questionToken!==Ve||z.whenTrue!==Ct||z.colonToken!==wr||z.whenFalse!==ai?Eo(Lr(ye,Ve,Ct,wr,ai),z):z}function $n(z,ye){let Ve=ne(228);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags|=$o(Ve.head)|qA(Ve.templateSpans)|1024,Ve}function ra(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo($n(ye,Ve),z):z}function kc(z,ye,Ve,Ct=0){Zo.assert(!(Ct&-7177),"Unsupported template flags.");let wr;if(Ve!==void 0&&Ve!==ye&&(wr=m$a(z,Ve),typeof wr=="object"))return Zo.fail("Invalid raw text");if(ye===void 0){if(wr===void 0)return Zo.fail("Arguments 'text' and 'rawText' may not both be undefined.");ye=wr}else wr!==void 0&&Zo.assert(ye===wr,"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");return ye}function Nl(z){let ye=1024;return z&&(ye|=128),ye}function ca(z,ye,Ve,Ct){let wr=qt(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function Bl(z,ye,Ve,Ct){let wr=ce(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function $g(z,ye,Ve,Ct){return z===15?Bl(z,ye,Ve,Ct):ca(z,ye,Ve,Ct)}function SA(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(16,z,ye,Ve)}function lI(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(17,z,ye,Ve)}function lp(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(18,z,ye,Ve)}function Ib(z,ye,Ve){return z=kc(16,z,ye,Ve),Bl(15,z,ye,Ve)}function Na(z,ye){Zo.assert(!z||!!ye,"A `YieldExpression` with an asteriskToken must have an expression.");let Ve=ne(229);return Ve.expression=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.asteriskToken=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.asteriskToken)|1024|128|1048576,Ve}function wd(z,ye,Ve){return z.expression!==Ve||z.asteriskToken!==ye?Eo(Na(ye,Ve),z):z}function z1(z){let ye=ne(230);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|1024|32768,ye}function T_(z,ye){return z.expression!==ye?Eo(z1(ye),z):z}function RC(z,ye,Ve,Ct,wr){let ai=ce(231);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.jsDoc=void 0,ai}function Hm(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(RC(ye,Ve,Ct,wr,ai),z):z}function YS(){return ne(232)}function Fg(z,ye){let Ve=ne(233);return Ve.expression=n().parenthesizeLeftSideOfAccess(z,!1),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.typeArguments)|1024,Ve}function hb(z,ye,Ve){return z.expression!==ye||z.typeArguments!==Ve?Eo(Fg(ye,Ve),z):z}function gC(z,ye){let Ve=ne(234);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function NC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(gC(ye,Ve),z):z}function Y2(z){let ye=ne(235);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1,ye}function U_(z,ye){return Cza(z)?ph(z,ye):z.expression!==ye?Eo(Y2(ye),z):z}function DC(z,ye){let Ve=ne(238);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function kC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(DC(ye,Ve),z):z}function qI(z){let ye=ne(235);return ye.flags|=64,ye.expression=n().parenthesizeLeftSideOfAccess(z,!0),ye.transformFlags|=$o(ye.expression)|1,ye}function ph(z,ye){return Zo.assert(!!(z.flags&64),"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."),z.expression!==ye?Eo(qI(ye),z):z}function vA(z,ye){let Ve=ne(236);switch(Ve.keywordToken=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.name),z){case 105:Ve.transformFlags|=1024;break;case 102:Ve.transformFlags|=32;break;default:return Zo.assertNever(z)}return Ve.flowNode=void 0,Ve}function Td(z,ye){return z.name!==ye?Eo(vA(z.keywordToken,ye),z):z}function Mc(z,ye){let Ve=ne(239);return Ve.expression=z,Ve.literal=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.literal)|1024,Ve}function Pf(z,ye,Ve){return z.expression!==ye||z.literal!==Ve?Eo(Mc(ye,Ve),z):z}function sE(){let z=ne(240);return z.transformFlags|=1024,z}function eA(z,ye){let Ve=ne(241);return Ve.statements=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.statements),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function QS(z,ye){return z.statements!==ye?Eo(eA(ye,z.multiLine),z):z}function XS(z,ye){let Ve=ne(243);return Ve.modifiers=IA(z),Ve.declarationList=Tee(ye)?Th(ye):ye,Ve.transformFlags|=qA(Ve.modifiers)|$o(Ve.declarationList),fO(Ve.modifiers)&128&&(Ve.transformFlags=1),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function um(z,ye,Ve){return z.modifiers!==ye||z.declarationList!==Ve?Eo(XS(ye,Ve),z):z}function gm(){let z=ne(242);return z.jsDoc=void 0,z}function cs(z){let ye=ne(244);return ye.expression=n().parenthesizeExpressionOfExpressionStatement(z),ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function na(z,ye){return z.expression!==ye?Eo(cs(ye),z):z}function ko(z,ye,Ve){let Ct=ne(245);return Ct.expression=z,Ct.thenStatement=sy(ye),Ct.elseStatement=sy(Ve),Ct.transformFlags|=$o(Ct.expression)|$o(Ct.thenStatement)|$o(Ct.elseStatement),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ki(z,ye,Ve,Ct){return z.expression!==ye||z.thenStatement!==Ve||z.elseStatement!==Ct?Eo(ko(ye,Ve,Ct),z):z}function Kl(z,ye){let Ve=ne(246);return Ve.statement=sy(z),Ve.expression=ye,Ve.transformFlags|=$o(Ve.statement)|$o(Ve.expression),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function fd(z,ye,Ve){return z.statement!==ye||z.expression!==Ve?Eo(Kl(ye,Ve),z):z}function jf(z,ye){let Ve=ne(247);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Ld(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(jf(ye,Ve),z):z}function AC(z,ye,Ve,Ct){let wr=ne(248);return wr.initializer=z,wr.condition=ye,wr.incrementor=Ve,wr.statement=sy(Ct),wr.transformFlags|=$o(wr.initializer)|$o(wr.condition)|$o(wr.incrementor)|$o(wr.statement),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function JE(z,ye,Ve,Ct,wr){return z.initializer!==ye||z.condition!==Ve||z.incrementor!==Ct||z.statement!==wr?Eo(AC(ye,Ve,Ct,wr),z):z}function Ym(z,ye,Ve){let Ct=ne(249);return Ct.initializer=z,Ct.expression=ye,Ct.statement=sy(Ve),Ct.transformFlags|=$o(Ct.initializer)|$o(Ct.expression)|$o(Ct.statement),Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.flowNode=void 0,Ct}function vy(z,ye,Ve,Ct){return z.initializer!==ye||z.expression!==Ve||z.statement!==Ct?Eo(Ym(ye,Ve,Ct),z):z}function K_(z,ye,Ve,Ct){let wr=ne(250);return wr.awaitModifier=z,wr.initializer=ye,wr.expression=n().parenthesizeExpressionForDisallowedComma(Ve),wr.statement=sy(Ct),wr.transformFlags|=$o(wr.awaitModifier)|$o(wr.initializer)|$o(wr.expression)|$o(wr.statement)|1024,z&&(wr.transformFlags|=128),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function od(z,ye,Ve,Ct,wr){return z.awaitModifier!==ye||z.initializer!==Ve||z.expression!==Ct||z.statement!==wr?Eo(K_(ye,Ve,Ct,wr),z):z}function UE(z){let ye=ne(251);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function KE(z,ye){return z.label!==ye?Eo(UE(ye),z):z}function Yp(z){let ye=ne(252);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function JS(z,ye){return z.label!==ye?Eo(Yp(ye),z):z}function By(z){let ye=ne(253);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|128|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function $0(z,ye){return z.expression!==ye?Eo(By(ye),z):z}function fw(z,ye){let Ve=ne(254);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Q2(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(fw(ye,Ve),z):z}function xc(z,ye){let Ve=ne(255);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.caseBlock=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.caseBlock),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve.possiblyExhaustive=!1,Ve}function ut(z,ye,Ve){return z.expression!==ye||z.caseBlock!==Ve?Eo(xc(ye,Ve),z):z}function ar(z,ye){let Ve=ne(256);return Ve.label=EI(z),Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.label)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Jr(z,ye,Ve){return z.label!==ye||z.statement!==Ve?Eo(ar(ye,Ve),z):z}function Gn(z){let ye=ne(257);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function Ts(z,ye){return z.expression!==ye?Eo(Gn(ye),z):z}function Qo(z,ye,Ve){let Ct=ne(258);return Ct.tryBlock=z,Ct.catchClause=ye,Ct.finallyBlock=Ve,Ct.transformFlags|=$o(Ct.tryBlock)|$o(Ct.catchClause)|$o(Ct.finallyBlock),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function vg(z,ye,Ve,Ct){return z.tryBlock!==ye||z.catchClause!==Ve||z.finallyBlock!==Ct?Eo(Qo(ye,Ve,Ct),z):z}function Ng(){let z=ne(259);return z.jsDoc=void 0,z.flowNode=void 0,z}function Rf(z,ye,Ve,Ct){let wr=ce(260);return wr.name=EI(z),wr.exclamationToken=ye,wr.type=Ve,wr.initializer=wA(Ct),wr.transformFlags|=pO(wr.name)|$o(wr.initializer)|(wr.exclamationToken??wr.type?1:0),wr.jsDoc=void 0,wr}function uI(z,ye,Ve,Ct,wr){return z.name!==ye||z.type!==Ct||z.exclamationToken!==Ve||z.initializer!==wr?Eo(Rf(ye,Ve,Ct,wr),z):z}function Th(z,ye=0){let Ve=ne(261);return Ve.flags|=ye&7,Ve.declarations=ae(z),Ve.transformFlags|=qA(Ve.declarations)|4194304,ye&7&&(Ve.transformFlags|=263168),ye&4&&(Ve.transformFlags|=4),Ve}function oE(z,ye){return z.declarations!==ye?Eo(Th(ye,z.flags),z):z}function TT(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(262);if(Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo,!Hc.body||fO(Hc.modifiers)&128)Hc.transformFlags=1;else{let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304}return Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function sB(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?RT(TT(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function RT(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),fe(z,ye)}function wy(z,ye,Ve,Ct,wr){let ai=ce(263);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),fO(ai.modifiers)&128?ai.transformFlags=1:(ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.transformFlags&8192&&(ai.transformFlags|=1)),ai.jsDoc=void 0,ai}function jE(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(wy(ye,Ve,Ct,wr,ai),z):z}function j_(z,ye,Ve,Ct,wr){let ai=ce(264);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags=1,ai.jsDoc=void 0,ai}function NT(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(j_(ye,Ve,Ct,wr,ai),z):z}function tf(z,ye,Ve,Ct){let wr=ce(265);return wr.modifiers=IA(z),wr.name=EI(ye),wr.typeParameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function Ty(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.type!==wr?Eo(tf(ye,Ve,Ct,wr),z):z}function US(z,ye,Ve){let Ct=ce(266);return Ct.modifiers=IA(z),Ct.name=EI(ye),Ct.members=ae(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.name)|qA(Ct.members)|1,Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $I(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.members!==Ct?Eo(US(ye,Ve,Ct),z):z}function BA(z,ye,Ve,Ct=0){let wr=ce(267);return wr.modifiers=IA(z),wr.flags|=Ct&2088,wr.name=ye,wr.body=Ve,fO(wr.modifiers)&128?wr.transformFlags=1:wr.transformFlags|=qA(wr.modifiers)|$o(wr.name)|$o(wr.body)|1,wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function $A(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.body!==Ct?Eo(BA(ye,Ve,Ct,z.flags),z):z}function Qm(z){let ye=ne(268);return ye.statements=ae(z),ye.transformFlags|=qA(ye.statements),ye.jsDoc=void 0,ye}function zf(z,ye){return z.statements!==ye?Eo(Qm(ye),z):z}function mb(z){let ye=ne(269);return ye.clauses=ae(z),ye.transformFlags|=qA(ye.clauses),ye.locals=void 0,ye.nextContainer=void 0,ye}function R_(z,ye){return z.clauses!==ye?Eo(mb(ye),z):z}function Cb(z){let ye=ce(270);return ye.name=EI(z),ye.transformFlags|=_Ne(ye.name)|1,ye.modifiers=void 0,ye.jsDoc=void 0,ye}function Ry(z,ye){return z.name!==ye?KS(Cb(ye),z):z}function KS(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function _b(z,ye,Ve,Ct){let wr=ce(271);return wr.modifiers=IA(z),wr.name=EI(Ve),wr.isTypeOnly=ye,wr.moduleReference=Ct,wr.transformFlags|=qA(wr.modifiers)|_Ne(wr.name)|$o(wr.moduleReference),mBi(wr.moduleReference)||(wr.transformFlags|=1),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function z_(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.name!==Ct||z.moduleReference!==wr?Eo(_b(ye,Ve,Ct,wr),z):z}function zE(z,ye,Ve,Ct){let wr=ne(272);return wr.modifiers=IA(z),wr.importClause=ye,wr.moduleSpecifier=Ve,wr.attributes=wr.assertClause=Ct,wr.transformFlags|=$o(wr.importClause)|$o(wr.moduleSpecifier),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function oB(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(zE(ye,Ve,Ct,wr),z):z}function DT(z,ye,Ve){let Ct=ce(273);return Ct.isTypeOnly=z,Ct.name=ye,Ct.namedBindings=Ve,Ct.transformFlags|=$o(Ct.name)|$o(Ct.namedBindings),z&&(Ct.transformFlags|=1),Ct.transformFlags&=-67108865,Ct}function aB(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.name!==Ve||z.namedBindings!==Ct?Eo(DT(ye,Ve,Ct),z):z}function jS(z,ye){let Ve=ne(300);return Ve.elements=ae(z),Ve.multiLine=ye,Ve.token=132,Ve.transformFlags|=4,Ve}function XR(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(jS(ye,Ve),z):z}function zS(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function qE(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(zS(ye,Ve),z):z}function X2(z,ye){let Ve=ne(302);return Ve.assertClause=z,Ve.multiLine=ye,Ve}function kT(z,ye,Ve){return z.assertClause!==ye||z.multiLine!==Ve?Eo(X2(ye,Ve),z):z}function pn(z,ye,Ve){let Ct=ne(300);return Ct.token=Ve??118,Ct.elements=ae(z),Ct.multiLine=ye,Ct.transformFlags|=4,Ct}function q1(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(pn(ye,Ve,z.token),z):z}function J2(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function ey(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(J2(ye,Ve),z):z}function up(z){let ye=ce(274);return ye.name=z,ye.transformFlags|=$o(ye.name),ye.transformFlags&=-67108865,ye}function Iw(z,ye){return z.name!==ye?Eo(up(ye),z):z}function cB(z){let ye=ce(280);return ye.name=z,ye.transformFlags|=$o(ye.name)|32,ye.transformFlags&=-67108865,ye}function RD(z,ye){return z.name!==ye?Eo(cB(ye),z):z}function Rd(z){let ye=ne(275);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function JR(z,ye){return z.elements!==ye?Eo(Rd(ye),z):z}function ty(z,ye,Ve){let Ct=ce(276);return Ct.isTypeOnly=z,Ct.propertyName=ye,Ct.name=Ve,Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct}function cF(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(ty(ye,Ve,Ct),z):z}function $1(z,ye,Ve){let Ct=ce(277);return Ct.modifiers=IA(z),Ct.isExportEquals=ye,Ct.expression=ye?n().parenthesizeRightSideOfBinary(64,void 0,Ve):n().parenthesizeExpressionOfExportDefault(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.expression),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $E(z,ye,Ve){return z.modifiers!==ye||z.expression!==Ve?Eo($1(ye,z.isExportEquals,Ve),z):z}function N_(z,ye,Ve,Ct,wr){let ai=ce(278);return ai.modifiers=IA(z),ai.isTypeOnly=ye,ai.exportClause=Ve,ai.moduleSpecifier=Ct,ai.attributes=ai.assertClause=wr,ai.transformFlags|=qA(ai.modifiers)|$o(ai.exportClause)|$o(ai.moduleSpecifier),ai.transformFlags&=-67108865,ai.jsDoc=void 0,ai}function e1(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.exportClause!==Ct||z.moduleSpecifier!==wr||z.attributes!==ai?t1(N_(ye,Ve,Ct,wr,ai),z):z}function t1(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),Eo(z,ye)}function ry(z){let ye=ne(279);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function xT(z,ye){return z.elements!==ye?Eo(ry(ye),z):z}function yb(z,ye,Ve){let Ct=ne(281);return Ct.isTypeOnly=z,Ct.propertyName=EI(ye),Ct.name=EI(Ve),Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function r_(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(yb(ye,Ve,Ct),z):z}function Rh(){let z=ce(282);return z.jsDoc=void 0,z}function bb(z){let ye=ne(283);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.transformFlags&=-67108865,ye}function lB(z,ye){return z.expression!==ye?Eo(bb(ye),z):z}function ND(z){return ne(z)}function DD(z,ye,Ve=!1){let Ct=q_(z,Ve?ye&&n().parenthesizeNonArrayTypeOfPostfixType(ye):ye);return Ct.postfix=Ve,Ct}function q_(z,ye){let Ve=ne(z);return Ve.type=ye,Ve}function kD(z,ye,Ve){return ye.type!==Ve?Eo(DD(z,Ve,ye.postfix),ye):ye}function UR(z,ye,Ve){return ye.type!==Ve?Eo(q_(z,Ve),ye):ye}function lc(z,ye){let Ve=ce(317);return Ve.parameters=IA(z),Ve.type=ye,Ve.transformFlags=qA(Ve.parameters)|(Ve.type?1:0),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve.typeArguments=void 0,Ve}function fh(z,ye,Ve){return z.parameters!==ye||z.type!==Ve?Eo(lc(ye,Ve),z):z}function rf(z,ye=!1){let Ve=ce(322);return Ve.jsDocPropertyTags=IA(z),Ve.isArrayType=ye,Ve}function yI(z,ye,Ve){return z.jsDocPropertyTags!==ye||z.isArrayType!==Ve?Eo(rf(ye,Ve),z):z}function aE(z){let ye=ne(309);return ye.type=z,ye}function qS(z,ye){return z.type!==ye?Eo(aE(ye),z):z}function Qp(z,ye,Ve){let Ct=ce(323);return Ct.typeParameters=IA(z),Ct.parameters=ae(ye),Ct.type=Ve,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function uB(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Eo(Qp(ye,Ve,Ct),z):z}function Ih(z){let ye=xbt(z.kind);return z.tagName.escapedText===mNe(ye)?z.tagName:je(ye)}function xC(z,ye,Ve){let Ct=ne(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function $_(z,ye,Ve){let Ct=ce(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function r1(z,ye,Ve,Ct){let wr=xC(345,z??je("template"),Ct);return wr.constraint=ye,wr.typeParameters=ae(Ve),wr}function gB(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.constraint!==Ve||z.typeParameters!==Ct||z.comment!==wr?Eo(r1(ye,Ve,Ct,wr),z):z}function hw(z,ye,Ve,Ct){let wr=$_(346,z??je("typedef"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function GT(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(hw(ye,Ve,Ct,wr),z):z}function b0(z,ye,Ve,Ct,wr,ai){let Lo=$_(341,z??je("param"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function ia(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(b0(ye,Ve,Ct,wr,ai,Lo),z):z}function e2(z,ye,Ve,Ct,wr,ai){let Lo=$_(348,z??je("prop"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function yd(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(e2(ye,Ve,Ct,wr,ai,Lo),z):z}function bI(z,ye,Ve,Ct){let wr=$_(338,z??je("callback"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function ag(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(bI(ye,Ve,Ct,wr),z):z}function Eb(z,ye,Ve){let Ct=xC(339,z??je("overload"),Ve);return Ct.typeExpression=ye,Ct}function n1(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Eb(ye,Ve,Ct),z):z}function U2(z,ye,Ve){let Ct=xC(328,z??je("augments"),Ve);return Ct.class=ye,Ct}function e0(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(U2(ye,Ve,Ct),z):z}function n_(z,ye,Ve){let Ct=xC(329,z??je("implements"),Ve);return Ct.class=ye,Ct}function Xp(z,ye,Ve){let Ct=xC(347,z??je("see"),Ve);return Ct.name=ye,Ct}function cE(z,ye,Ve,Ct){return z.tagName!==ye||z.name!==Ve||z.comment!==Ct?Eo(Xp(ye,Ve,Ct),z):z}function lE(z){let ye=ne(310);return ye.name=z,ye}function Ip(z,ye){return z.name!==ye?Eo(lE(ye),z):z}function Xh(z,ye){let Ve=ne(311);return Ve.left=z,Ve.right=ye,Ve.transformFlags|=$o(Ve.left)|$o(Ve.right),Ve}function E0(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Xh(ye,Ve),z):z}function aA(z,ye){let Ve=ne(324);return Ve.name=z,Ve.text=ye,Ve}function fu(z,ye,Ve){return z.name!==ye?Eo(aA(ye,Ve),z):z}function Jp(z,ye){let Ve=ne(325);return Ve.name=z,Ve.text=ye,Ve}function dC(z,ye,Ve){return z.name!==ye?Eo(Jp(ye,Ve),z):z}function uE(z,ye){let Ve=ne(326);return Ve.name=z,Ve.text=ye,Ve}function eh(z,ye,Ve){return z.name!==ye?Eo(uE(ye,Ve),z):z}function Wf(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(n_(ye,Ve,Ct),z):z}function Mo(z,ye,Ve){return xC(z,ye??je(xbt(z)),Ve)}function gp(z,ye,Ve=Ih(ye),Ct){return ye.tagName!==Ve||ye.comment!==Ct?Eo(Mo(z,Ve,Ct),ye):ye}function lF(z,ye,Ve,Ct){let wr=xC(z,ye??je(xbt(z)),Ct);return wr.typeExpression=Ve,wr}function uF(z,ye,Ve=Ih(ye),Ct,wr){return ye.tagName!==Ve||ye.typeExpression!==Ct||ye.comment!==wr?Eo(lF(z,Ve,Ct,wr),ye):ye}function gE(z,ye){return xC(327,z,ye)}function FT(z,ye,Ve){return z.tagName!==ye||z.comment!==Ve?Eo(gE(ye,Ve),z):z}function Np(z,ye,Ve){let Ct=$_(340,z??je(xbt(340)),Ve);return Ct.typeExpression=ye,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function Dm(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Np(ye,Ve,Ct),z):z}function Dp(z,ye,Ve,Ct,wr){let ai=xC(351,z??je("import"),wr);return ai.importClause=ye,ai.moduleSpecifier=Ve,ai.attributes=Ct,ai.comment=wr,ai}function t2(z,ye,Ve,Ct,wr,ai){return z.tagName!==ye||z.comment!==ai||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(Dp(ye,Ve,Ct,wr,ai),z):z}function Ro(z){let ye=ne(321);return ye.text=z,ye}function AE(z,ye){return z.text!==ye?Eo(Ro(ye),z):z}function AB(z,ye){let Ve=ne(320);return Ve.comment=z,Ve.tags=IA(ye),Ve}function Xc(z,ye,Ve){return z.comment!==ye||z.tags!==Ve?Eo(AB(ye,Ve),z):z}function iu(z,ye,Ve){let Ct=ne(284);return Ct.openingElement=z,Ct.children=ae(ye),Ct.closingElement=Ve,Ct.transformFlags|=$o(Ct.openingElement)|qA(Ct.children)|$o(Ct.closingElement)|2,Ct}function dE(z,ye,Ve,Ct){return z.openingElement!==ye||z.children!==Ve||z.closingElement!==Ct?Eo(iu(ye,Ve,Ct),z):z}function yL(z,ye,Ve){let Ct=ne(285);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function KR(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(yL(ye,Ve,Ct),z):z}function Ou(z,ye,Ve){let Ct=ne(286);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,ye&&(Ct.transformFlags|=1),Ct}function ny(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(Ou(ye,Ve,Ct),z):z}function hp(z){let ye=ne(287);return ye.tagName=z,ye.transformFlags|=$o(ye.tagName)|2,ye}function Am(z,ye){return z.tagName!==ye?Eo(hp(ye),z):z}function K2(z,ye,Ve){let Ct=ne(288);return Ct.openingFragment=z,Ct.children=ae(ye),Ct.closingFragment=Ve,Ct.transformFlags|=$o(Ct.openingFragment)|qA(Ct.children)|$o(Ct.closingFragment)|2,Ct}function i_(z,ye,Ve,Ct){return z.openingFragment!==ye||z.children!==Ve||z.closingFragment!==Ct?Eo(K2(ye,Ve,Ct),z):z}function dB(z,ye){let Ve=ne(12);return Ve.text=z,Ve.containsOnlyTriviaWhiteSpaces=!!ye,Ve.transformFlags|=2,Ve}function ZT(z,ye,Ve){return z.text!==ye||z.containsOnlyTriviaWhiteSpaces!==Ve?Eo(dB(ye,Ve),z):z}function Cx(){let z=ne(289);return z.transformFlags|=2,z}function pB(){let z=ne(290);return z.transformFlags|=2,z}function qf(z,ye){let Ve=ce(291);return Ve.name=z,Ve.initializer=ye,Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|2,Ve}function Jh(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(qf(ye,Ve),z):z}function $S(z){let ye=ce(292);return ye.properties=ae(z),ye.transformFlags|=qA(ye.properties)|2,ye}function Sb(z,ye){return z.properties!==ye?Eo($S(ye),z):z}function mp(z){let ye=ne(293);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|2,ye}function r2(z,ye){return z.expression!==ye?Eo(mp(ye),z):z}function i1(z,ye){let Ve=ne(294);return Ve.dotDotDotToken=z,Ve.expression=ye,Ve.transformFlags|=$o(Ve.dotDotDotToken)|$o(Ve.expression)|2,Ve}function Of(z,ye){return z.expression!==ye?Eo(i1(z.dotDotDotToken,ye),z):z}function pE(z,ye){let Ve=ne(295);return Ve.namespace=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.namespace)|$o(Ve.name)|2,Ve}function Vd(z,ye,Ve){return z.namespace!==ye||z.name!==Ve?Eo(pE(ye,Ve),z):z}function j(z,ye){let Ve=ne(296);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.statements=ae(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.statements),Ve.jsDoc=void 0,Ve}function Z(z,ye,Ve){return z.expression!==ye||z.statements!==Ve?Eo(j(ye,Ve),z):z}function Id(z){let ye=ne(297);return ye.statements=ae(z),ye.transformFlags=qA(ye.statements),ye}function fB(z,ye){return z.statements!==ye?Eo(Id(ye),z):z}function ev(z,ye){let Ve=ne(298);switch(Ve.token=z,Ve.types=ae(ye),Ve.transformFlags|=qA(Ve.types),z){case 96:Ve.transformFlags|=1024;break;case 119:Ve.transformFlags|=1;break;default:return Zo.assertNever(z)}return Ve}function Ny(z,ye){return z.types!==ye?Eo(ev(z.token,ye),z):z}function vb(z,ye){let Ve=ne(299);return Ve.variableDeclaration=$2(z),Ve.block=ye,Ve.transformFlags|=$o(Ve.variableDeclaration)|$o(Ve.block)|(z?0:64),Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function xD(z,ye,Ve){return z.variableDeclaration!==ye||z.block!==Ve?Eo(vb(ye,Ve),z):z}function IB(z,ye){let Ve=ce(303);return Ve.name=EI(z),Ve.initializer=n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=pO(Ve.name)|$o(Ve.initializer),Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function Bb(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?bL(IB(ye,Ve),z):z}function bL(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function gF(z,ye){let Ve=ce(304);return Ve.name=EI(z),Ve.objectAssignmentInitializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=_Ne(Ve.name)|$o(Ve.objectAssignmentInitializer)|1024,Ve.equalsToken=void 0,Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function x(z,ye,Ve){return z.name!==ye||z.objectAssignmentInitializer!==Ve?L(gF(ye,Ve),z):z}function L(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken,z.equalsToken=ye.equalsToken),Eo(z,ye)}function te(z){let ye=ce(305);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|128|65536,ye.jsDoc=void 0,ye}function Re(z,ye){return z.expression!==ye?Eo(te(ye),z):z}function Le(z,ye){let Ve=ce(306);return Ve.name=EI(z),Ve.initializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|1,Ve.jsDoc=void 0,Ve}function ft(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(Le(ye,Ve),z):z}function dr(z,ye,Ve){let Ct=t.createBaseSourceFileNode(307);return Ct.statements=ae(z),Ct.endOfFileToken=ye,Ct.flags|=Ve,Ct.text="",Ct.fileName="",Ct.path="",Ct.resolvedPath="",Ct.originalFileName="",Ct.languageVersion=1,Ct.languageVariant=0,Ct.scriptKind=0,Ct.isDeclarationFile=!1,Ct.hasNoDefaultLib=!1,Ct.transformFlags|=qA(Ct.statements)|$o(Ct.endOfFileToken),Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.nodeCount=0,Ct.identifierCount=0,Ct.symbolCount=0,Ct.parseDiagnostics=void 0,Ct.bindDiagnostics=void 0,Ct.bindSuggestionDiagnostics=void 0,Ct.lineMap=void 0,Ct.externalModuleIndicator=void 0,Ct.setExternalModuleIndicator=void 0,Ct.pragmas=void 0,Ct.checkJsDirective=void 0,Ct.referencedFiles=void 0,Ct.typeReferenceDirectives=void 0,Ct.libReferenceDirectives=void 0,Ct.amdDependencies=void 0,Ct.commentDirectives=void 0,Ct.identifiers=void 0,Ct.packageJsonLocations=void 0,Ct.packageJsonScope=void 0,Ct.imports=void 0,Ct.moduleAugmentations=void 0,Ct.ambientModuleNames=void 0,Ct.classifiableNames=void 0,Ct.impliedNodeFormat=void 0,Ct}function Ur(z){let ye=Object.create(z.redirectTarget);return Object.defineProperties(ye,{id:{get(){return this.redirectInfo.redirectTarget.id},set(Ve){this.redirectInfo.redirectTarget.id=Ve}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(Ve){this.redirectInfo.redirectTarget.symbol=Ve}}}),ye.redirectInfo=z,ye}function mi(z){let ye=Ur(z.redirectInfo);return ye.flags|=z.flags&-17,ye.fileName=z.fileName,ye.path=z.path,ye.resolvedPath=z.resolvedPath,ye.originalFileName=z.originalFileName,ye.packageJsonLocations=z.packageJsonLocations,ye.packageJsonScope=z.packageJsonScope,ye.emitNode=void 0,ye}function Vi(z){let ye=t.createBaseSourceFileNode(307);ye.flags|=z.flags&-17;for(let Ve in z)if(!(fj(ye,Ve)||!fj(z,Ve))){if(Ve==="emitNode"){ye.emitNode=void 0;continue}ye[Ve]=z[Ve]}return ye}function Ta(z){let ye=z.redirectInfo?mi(z):Vi(z);return r(ye,z),ye}function Sl(z,ye,Ve,Ct,wr,ai,Lo){let Hc=Ta(z);return Hc.statements=ae(ye),Hc.isDeclarationFile=Ve,Hc.referencedFiles=Ct,Hc.typeReferenceDirectives=wr,Hc.hasNoDefaultLib=ai,Hc.libReferenceDirectives=Lo,Hc.transformFlags=qA(Hc.statements)|$o(Hc.endOfFileToken),Hc}function Ho(z,ye,Ve=z.isDeclarationFile,Ct=z.referencedFiles,wr=z.typeReferenceDirectives,ai=z.hasNoDefaultLib,Lo=z.libReferenceDirectives){return z.statements!==ye||z.isDeclarationFile!==Ve||z.referencedFiles!==Ct||z.typeReferenceDirectives!==wr||z.hasNoDefaultLib!==ai||z.libReferenceDirectives!==Lo?Eo(Sl(z,ye,Ve,Ct,wr,ai,Lo),z):z}function Wg(z){let ye=ne(308);return ye.sourceFiles=z,ye.syntheticFileReferences=void 0,ye.syntheticTypeReferences=void 0,ye.syntheticLibReferences=void 0,ye.hasNoDefaultLib=void 0,ye}function cA(z,ye){return z.sourceFiles!==ye?Eo(Wg(ye),z):z}function th(z,ye=!1,Ve){let Ct=ne(237);return Ct.type=z,Ct.isSpread=ye,Ct.tupleNameSource=Ve,Ct}function xn(z){let ye=ne(352);return ye._children=z,ye}function rn(z){let ye=ne(353);return ye.original=z,zZ(ye,z),ye}function Ci(z,ye){let Ve=ne(355);return Ve.expression=z,Ve.original=ye,Ve.transformFlags|=$o(Ve.expression)|1,zZ(Ve,ye),Ve}function Po(z,ye){return z.expression!==ye?Eo(Ci(ye,z.original),z):z}function ec(){return ne(354)}function Ra(z){if(CNe(z)&&!Qbt(z)&&!z.original&&!z.emitNode&&!z.id){if(lec(z))return z.elements;if(DNe(z)&&w$a(z.operatorToken))return[z.left,z.right]}return z}function dc(z){let ye=ne(356);return ye.elements=ae(P6a(z,Ra)),ye.transformFlags|=qA(ye.elements),ye}function Iu(z,ye){return z.elements!==ye?Eo(dc(ye),z):z}function Cl(z,ye){let Ve=ne(357);return Ve.expression=z,Ve.thisArg=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.thisArg),Ve}function wl(z,ye,Ve){return z.expression!==ye||z.thisArg!==Ve?Eo(Cl(ye,Ve),z):z}function $f(z){let ye=ct(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function j2(z){let ye=ct(z.escapedText);ye.flags|=z.flags&-17,ye.jsDoc=z.jsDoc,ye.flowNode=z.flowNode,ye.symbol=z.symbol,ye.transformFlags=z.transformFlags,r(ye,z);let Ve=getIdentifierTypeArguments(z);return Ve&&setIdentifierTypeArguments(ye,Ve),ye}function _x(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function z2(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),ye}function tv(z){if(z===void 0)return z;if(mec(z))return Ta(z);if(vNe(z))return $f(z);if($C(z))return j2(z);if(Dvi(z))return _x(z);if(Yme(z))return z2(z);let ye=YNr(z.kind)?t.createBaseNode(z.kind):t.createBaseTokenNode(z.kind);ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z);for(let Ve in z)fj(ye,Ve)||!fj(z,Ve)||(ye[Ve]=z[Ve]);return ye}function Yu(z,ye,Ve){return YA(TC(void 0,void 0,void 0,void 0,ye?[ye]:[],void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function qO(z,ye,Ve){return YA(cp(void 0,void 0,ye?[ye]:[],void 0,void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function hB(){return CI(ue("0"))}function mw(z){return $1(void 0,!1,z)}function AF(z){return N_(void 0,!1,ry([yb(!1,void 0,z)]))}function $O(z,ye){return ye==="null"?X.createStrictEquality(z,Ar()):ye==="undefined"?X.createStrictEquality(z,hB()):X.createStrictEquality(lm(z),Se(ye))}function iY(z,ye){return ye==="null"?X.createStrictInequality(z,Ar()):ye==="undefined"?X.createStrictInequality(z,hB()):X.createStrictInequality(lm(z),Se(ye))}function LT(z,ye,Ve){return V2i(z)?Nm(Ql(z,void 0,ye),void 0,void 0,Ve):YA(Bo(z,ye),void 0,Ve)}function GD(z,ye,Ve){return LT(z,"bind",[ye,...Ve])}function dF(z,ye,Ve){return LT(z,"call",[ye,...Ve])}function EL(z,ye,Ve){return LT(z,"apply",[ye,Ve])}function ff(z,ye,Ve){return LT(je(z),ye,Ve)}function FD(z,ye){return LT(z,"slice",ye===void 0?[]:[zd(ye)])}function fE(z,ye){return LT(z,"concat",ye)}function n2(z,ye,Ve){return ff("Object","defineProperty",[z,zd(ye),Ve])}function mB(z,ye){return ff("Object","getOwnPropertyDescriptor",[z,zd(ye)])}function bd(z,ye,Ve){return ff("Reflect","get",Ve?[z,ye,Ve]:[z,ye])}function s1(z,ye,Ve,Ct){return ff("Reflect","set",Ct?[z,ye,Ve,Ct]:[z,ye,Ve])}function Uh(z,ye,Ve){return Ve?(z.push(IB(ye,Ve)),!0):!1}function wb(z,ye){let Ve=[];Uh(Ve,"enumerable",zd(z.enumerable)),Uh(Ve,"configurable",zd(z.configurable));let Ct=Uh(Ve,"writable",zd(z.writable));Ct=Uh(Ve,"value",z.value)||Ct;let wr=Uh(Ve,"get",z.get);return wr=Uh(Ve,"set",z.set)||wr,Zo.assert(!(Ct&&wr),"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."),Wn(Ve,!ye)}function Uu(z,ye){switch(z.kind){case 217:return XE(z,ye);case 216:return J_(z,z.type,ye);case 234:return NC(z,ye,z.type);case 238:return kC(z,ye,z.type);case 235:return U_(z,ye);case 233:return hb(z,ye,z.typeArguments);case 355:return Po(z,ye)}}function iy(z){return rDr(z)&&CNe(z)&&CNe(getSourceMapRange(z))&&CNe(getCommentRange(z))&&!oD(getSyntheticLeadingComments(z))&&!oD(getSyntheticTrailingComments(z))}function sY(z,ye,Ve=31){return z&&EBi(z,Ve)&&!iy(z)?Uu(z,sY(z.expression,ye)):ye}function oY(z,ye,Ve){if(!ye)return z;let Ct=Jr(ye,ye.label,uec(ye.statement)?oY(z,ye.statement):z);return Ve&&Ve(ye),Ct}function jR(z,ye){let Ve=jNr(z);switch(Ve.kind){case 80:return ye;case 110:case 9:case 10:case 11:return!1;case 209:return Ve.elements.length!==0;case 210:return Ve.properties.length>0;default:return!0}}function aY(z,ye,Ve,Ct=!1){let wr=sDr(z,31),ai,Lo;return Q2i(wr)?(ai=cr(),Lo=wr):$Rr(wr)?(ai=cr(),Lo=Ve!==void 0&&Ve<2?zZ(je("_super"),wr):wr):RNe(wr)&8192?(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(wr,!1)):Bce(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=Bo(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.name),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):BJe(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=ef(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.argumentExpression),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(z,!1)),{target:Lo,thisArg:ai}}function tt(z,ye){return Bo(q0(Wn([li(void 0,"value",[io(void 0,void 0,z,void 0,void 0,void 0)],eA([cs(ye)]))])),"value")}function Jt(z){return z.length>10?dc(z):K6a(z,X.createComma)}function kr(z,ye,Ve,Ct=0,wr){let ai=wr?z&&MNr(z):Bvi(z);if(ai&&$C(ai)&&!vNe(ai)){let Lo=$Nr(zZ(tv(ai),ai),ai.parent);return Ct|=RNe(ai),Ve||(Ct|=96),ye||(Ct|=3072),Ct&&setEmitFlags(Lo,Ct),Lo}return Tr(z)}function Xr(z,ye,Ve){return kr(z,ye,Ve,98304)}function ui(z,ye,Ve,Ct){return kr(z,ye,Ve,32768,Ct)}function Is(z,ye,Ve){return kr(z,ye,Ve,16384)}function Hs(z,ye,Ve){return kr(z,ye,Ve)}function Rs(z,ye,Ve,Ct){let wr=Bo(z,CNe(ye)?ye:tv(ye));zZ(wr,ye);let ai=0;return Ct||(ai|=96),Ve||(ai|=3072),ai&&setEmitFlags(wr,ai),wr}function ja(z,ye,Ve,Ct){return z&&vJe(ye,32)?Rs(z,kr(ye),Ve,Ct):Is(ye,Ve,Ct)}function ho(z,ye,Ve,Ct){let wr=ed(z,ye,0,Ve);return Og(z,ye,wr,Ct)}function sl(z){return tEt(z.expression)&&z.expression.text==="use strict"}function Nd(){return Wec(cs(Se("use strict")))}function ed(z,ye,Ve=0,Ct){Zo.assert(ye.length===0,"Prologue directives should be at the first statement in the target statements array");let wr=!1,ai=z.length;for(;VeHc&&dm.splice(wr,0,...ye.slice(Hc,ad)),Hc>Lo&&dm.splice(Ct,0,...ye.slice(Lo,Hc)),Lo>ai&&dm.splice(Ve,0,...ye.slice(ai,Lo)),ai>0)if(Ve===0)dm.splice(0,0,...ye.slice(0,ai));else{let rv=new Map;for(let nv=0;nv=0;nv--){let yx=ye[nv];rv.has(yx.expression.text)||dm.unshift(yx)}}return _ce(z)?zZ(ae(dm,z.hasTrailingComma),z):z}function IE(z,ye){let Ve;return typeof ye=="number"?Ve=jt(ye):Ve=ye,eBi(z)?xi(z,Ve,z.name,z.constraint,z.default):Ubt(z)?ga(z,Ve,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):sBi(z)?Ko(z,Ve,z.typeParameters,z.parameters,z.type):D$a(z)?Sc(z,Ve,z.name,z.questionToken,z.type):Kbt(z)?Ft(z,Ve,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):k$a(z)?Rn(z,Ve,z.name,z.questionToken,z.typeParameters,z.parameters,z.type):INr(z)?Qi(z,Ve,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):tBi(z)?Cg(z,Ve,z.parameters,z.body):hNr(z)?ma(z,Ve,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,Ve,z.name,z.parameters,z.body):rBi(z)?Ul(z,Ve,z.parameters,z.type):cBi(z)?t_(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):lBi(z)?Mm(z,Ve,z.typeParameters,z.parameters,z.type,z.equalsGreaterThanToken,z.body):mNr(z)?Hm(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):rEt(z)?um(z,Ve,z.declarationList):ABi(z)?sB(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):zbt(z)?jE(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):nDr(z)?NT(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):dBi(z)?Ty(z,Ve,z.name,z.typeParameters,z.type):Aec(z)?$I(z,Ve,z.name,z.members):EJe(z)?$A(z,Ve,z.name,z.body):pBi(z)?z_(z,Ve,z.isTypeOnly,z.name,z.moduleReference):fBi(z)?oB(z,Ve,z.importClause,z.moduleSpecifier,z.attributes):IBi(z)?$E(z,Ve,z.expression):hBi(z)?e1(z,Ve,z.isTypeOnly,z.exportClause,z.moduleSpecifier,z.attributes):Zo.assertNever(z)}function zR(z,ye){return Ubt(z)?ga(z,ye,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):Kbt(z)?Ft(z,ye,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):INr(z)?Qi(z,ye,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):hNr(z)?ma(z,ye,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,ye,z.name,z.parameters,z.body):mNr(z)?Hm(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):zbt(z)?jE(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):Zo.assertNever(z)}function e3(z,ye){switch(z.kind){case 177:return ma(z,z.modifiers,ye,z.parameters,z.type,z.body);case 178:return Ei(z,z.modifiers,ye,z.parameters,z.body);case 174:return Qi(z,z.modifiers,z.asteriskToken,ye,z.questionToken,z.typeParameters,z.parameters,z.type,z.body);case 173:return Rn(z,z.modifiers,ye,z.questionToken,z.typeParameters,z.parameters,z.type);case 172:return Ft(z,z.modifiers,ye,z.questionToken??z.exclamationToken,z.type,z.initializer);case 171:return Sc(z,z.modifiers,ye,z.questionToken,z.type);case 303:return Bb(z,ye,z.initializer)}}function IA(z){return z?ae(z):void 0}function EI(z){return typeof z=="string"?je(z):z}function zd(z){return typeof z=="string"?Se(z):typeof z=="number"?ue(z):typeof z=="boolean"?z?qr():_n():z}function wA(z){return z&&n().parenthesizeExpressionForDisallowedComma(z)}function qR(z){return typeof z=="number"?Xt(z):z}function sy(z){return z&&pec(z)?zZ(r(gm(),z),z):z}function $2(z){return typeof z=="string"||z&&!gBi(z)?Rf(z,void 0,void 0,void 0):z}function Eo(z,ye){return z!==ye&&(r(z,ye),zZ(z,ye)),z}}function xbt(e){switch(e){case 344:return"type";case 342:return"returns";case 343:return"this";case 340:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 345:return"template";case 346:return"typedef";case 341:return"param";case 348:return"prop";case 338:return"callback";case 339:return"overload";case 328:return"augments";case 329:return"implements";case 351:return"import";default:return Zo.fail(`Unsupported kind: ${Zo.formatSyntaxKind(e)}`)}}var hV,z2i={};function m$a(e,t){switch(hV||(hV=WNr(99,!1,0)),e){case 15:hV.setText("`"+t+"`");break;case 16:hV.setText("`"+t+"${");break;case 17:hV.setText("}"+t+"${");break;case 18:hV.setText("}"+t+"`");break}let r=hV.scan();if(r===20&&(r=hV.reScanTemplateToken(!1)),hV.isUnterminated())return hV.setText(void 0),z2i;let n;switch(r){case 15:case 16:case 17:case 18:n=hV.getTokenValue();break}return n===void 0||hV.scan()!==1?(hV.setText(void 0),z2i):(hV.setText(void 0),n)}function pO(e){return e&&$C(e)?_Ne(e):$o(e)}function _Ne(e){return $o(e)&-67108865}function C$a(e,t){return t|e.transformFlags&134234112}function $o(e){if(!e)return 0;let t=e.transformFlags&~_$a(e.kind);return $7a(e)&&kvi(e.name)?C$a(e.name,t):t}function qA(e){return e?e.transformFlags:0}function q2i(e){let t=0;for(let r of e)t|=$o(r);e.transformFlags=t}function _$a(e){if(e>=182&&e<=205)return-2;switch(e){case 213:case 214:case 209:return-2147450880;case 267:return-1941676032;case 169:return-2147483648;case 219:return-2072174592;case 218:case 262:return-1937940480;case 261:return-2146893824;case 263:case 231:return-2147344384;case 176:return-1937948672;case 172:return-2013249536;case 174:case 177:case 178:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 168:case 171:case 173:case 179:case 180:case 181:case 264:case 265:return-2;case 210:return-2147278848;case 299:return-2147418112;case 206:case 207:return-2147450880;case 216:case 238:case 234:case 355:case 217:case 108:return-2147483648;case 211:case 212:return-2147483648;default:return-2147483648}}var nJe=f$a();function iJe(e){return e.flags|=16,e}var y$a={createBaseSourceFileNode:e=>iJe(nJe.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>iJe(nJe.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>iJe(nJe.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>iJe(nJe.createBaseTokenNode(e)),createBaseNode:e=>iJe(nJe.createBaseNode(e))},qTu=eDr(4,y$a);function b$a(e,t){if(e.original!==t&&(e.original=t,t)){let r=t.emitNode;r&&(e.emitNode=E$a(r,e.emitNode))}return e}function E$a(e,t){let{flags:r,internalFlags:n,leadingComments:a,trailingComments:o,commentRange:l,sourceMapRange:A,tokenSourceMapRanges:f,constantValue:I,helpers:C,startsOnNewLine:b,snippetElement:E,classThis:N,assignedName:B}=e;if(t||(t={}),r&&(t.flags=r),n&&(t.internalFlags=n&-9),a&&(t.leadingComments=_V(a.slice(),t.leadingComments)),o&&(t.trailingComments=_V(o.slice(),t.trailingComments)),l&&(t.commentRange=l),A&&(t.sourceMapRange=A),f&&(t.tokenSourceMapRanges=S$a(f,t.tokenSourceMapRanges)),I!==void 0&&(t.constantValue=I),C)for(let F of C)t.helpers=H6a(t.helpers,F);return b!==void 0&&(t.startsOnNewLine=b),E!==void 0&&(t.snippetElement=E),N&&(t.classThis=N),B&&(t.assignedName=B),t}function S$a(e,t){t||(t=[]);for(let r in e)t[r]=e[r];return t}function kNe(e){return e.kind===9}function v$a(e){return e.kind===10}function tEt(e){return e.kind===11}function B$a(e){return e.kind===15}function w$a(e){return e.kind===28}function $2i(e){return e.kind===54}function eSi(e){return e.kind===58}function $C(e){return e.kind===80}function Yme(e){return e.kind===81}function T$a(e){return e.kind===95}function Gbt(e){return e.kind===134}function $Rr(e){return e.kind===108}function R$a(e){return e.kind===102}function N$a(e){return e.kind===166}function $vi(e){return e.kind===167}function eBi(e){return e.kind===168}function Ubt(e){return e.kind===169}function tDr(e){return e.kind===170}function D$a(e){return e.kind===171}function Kbt(e){return e.kind===172}function k$a(e){return e.kind===173}function INr(e){return e.kind===174}function tBi(e){return e.kind===176}function hNr(e){return e.kind===177}function jbt(e){return e.kind===178}function x$a(e){return e.kind===179}function G$a(e){return e.kind===180}function rBi(e){return e.kind===181}function F$a(e){return e.kind===182}function nBi(e){return e.kind===183}function iBi(e){return e.kind===184}function sBi(e){return e.kind===185}function Z$a(e){return e.kind===186}function L$a(e){return e.kind===187}function V$a(e){return e.kind===188}function P$a(e){return e.kind===189}function W$a(e){return e.kind===202}function O$a(e){return e.kind===190}function M$a(e){return e.kind===191}function H$a(e){return e.kind===192}function Y$a(e){return e.kind===193}function Q$a(e){return e.kind===194}function X$a(e){return e.kind===195}function J$a(e){return e.kind===196}function U$a(e){return e.kind===197}function K$a(e){return e.kind===198}function j$a(e){return e.kind===199}function z$a(e){return e.kind===200}function q$a(e){return e.kind===201}function $$a(e){return e.kind===205}function eec(e){return e.kind===208}function tec(e){return e.kind===209}function oBi(e){return e.kind===210}function Bce(e){return e.kind===211}function BJe(e){return e.kind===212}function aBi(e){return e.kind===213}function rec(e){return e.kind===215}function rDr(e){return e.kind===217}function cBi(e){return e.kind===218}function lBi(e){return e.kind===219}function nec(e){return e.kind===222}function iec(e){return e.kind===224}function DNe(e){return e.kind===226}function sec(e){return e.kind===230}function mNr(e){return e.kind===231}function oec(e){return e.kind===232}function aec(e){return e.kind===233}function Vbt(e){return e.kind===235}function cec(e){return e.kind===236}function lec(e){return e.kind===356}function rEt(e){return e.kind===243}function uBi(e){return e.kind===244}function uec(e){return e.kind===256}function gBi(e){return e.kind===260}function gec(e){return e.kind===261}function ABi(e){return e.kind===262}function zbt(e){return e.kind===263}function nDr(e){return e.kind===264}function dBi(e){return e.kind===265}function Aec(e){return e.kind===266}function EJe(e){return e.kind===267}function pBi(e){return e.kind===271}function fBi(e){return e.kind===272}function IBi(e){return e.kind===277}function hBi(e){return e.kind===278}function dec(e){return e.kind===279}function pec(e){return e.kind===353}function mBi(e){return e.kind===283}function tSi(e){return e.kind===286}function fec(e){return e.kind===289}function CBi(e){return e.kind===295}function Iec(e){return e.kind===297}function hec(e){return e.kind===303}function mec(e){return e.kind===307}function Cec(e){return e.kind===309}function _ec(e){return e.kind===314}function yec(e){return e.kind===317}function _Bi(e){return e.kind===320}function bec(e){return e.kind===322}function yBi(e){return e.kind===323}function Eec(e){return e.kind===328}function Sec(e){return e.kind===333}function vec(e){return e.kind===334}function Bec(e){return e.kind===335}function wec(e){return e.kind===336}function Tec(e){return e.kind===337}function Rec(e){return e.kind===339}function Nec(e){return e.kind===331}function rSi(e){return e.kind===341}function Dec(e){return e.kind===342}function iDr(e){return e.kind===344}function kec(e){return e.kind===345}function xec(e){return e.kind===329}function Gec(e){return e.kind===350}var Ome=new WeakMap;function bBi(e,t){var r;let n=e.kind;return YNr(n)?n===352?e._children:(r=Ome.get(t))==null?void 0:r.get(e):x2}function Fec(e,t,r){e.kind===352&&Zo.fail("Should not need to re-set the children of a SyntaxList.");let n=Ome.get(t);return n===void 0&&(n=new WeakMap,Ome.set(t,n)),n.set(e,r),r}function nSi(e,t){var r;e.kind===352&&Zo.fail("Did not expect to unset the children of a SyntaxList."),(r=Ome.get(t))==null||r.delete(e)}function Zec(e,t){let r=Ome.get(e);r!==void 0&&(Ome.delete(e),Ome.set(t,r))}function iSi(e){return(RNe(e)&32768)!==0}function Lec(e){return tEt(e.expression)&&e.expression.text==="use strict"}function Vec(e){for(let t of e)if(Lbt(t)){if(Lec(t))return t}else break}function Pec(e){return rDr(e)&&Qme(e)&&!!fza(e)}function EBi(e,t=31){switch(e.kind){case 217:return t&-2147483648&&Pec(e)?!1:(t&1)!==0;case 216:case 234:case 238:return(t&2)!==0;case 233:return(t&16)!==0;case 235:return(t&4)!==0;case 355:return(t&8)!==0}return!1}function sDr(e,t=31){for(;EBi(e,t);)e=e.expression;return e}function Wec(e){return setStartsOnNewLine(e,!0)}function dJe(e){if(xza(e))return e.name;if(Rza(e)){switch(e.kind){case 303:return dJe(e.initializer);case 304:return e.name;case 305:return dJe(e.expression)}return}return Jbt(e,!0)?dJe(e.left):sec(e)?dJe(e.expression):e}function Oec(e){switch(e.kind){case 206:case 207:case 209:return e.elements;case 210:return e.properties}}function sSi(e){if(e){let t=e;for(;;){if($C(t)||!t.body)return $C(t)?t:t.name;t=t.body}}}var oSi;(e=>{function t(C,b,E,N,B,F,Q){let X=b>0?B[b-1]:void 0;return Zo.assertEqual(E[b],t),B[b]=C.onEnter(N[b],X,Q),E[b]=A(C,t),b}e.enter=t;function r(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],r),Zo.assertIsDefined(C.onLeft),E[b]=A(C,r);let X=C.onLeft(N[b].left,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.left=r;function n(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],n),Zo.assertIsDefined(C.onOperator),E[b]=A(C,n),C.onOperator(N[b].operatorToken,B[b],N[b]),b}e.operator=n;function a(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],a),Zo.assertIsDefined(C.onRight),E[b]=A(C,a);let X=C.onRight(N[b].right,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.right=a;function o(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],o),E[b]=A(C,o);let X=C.onExit(N[b],B[b]);if(b>0){if(b--,C.foldState){let ae=E[b]===o?"right":"left";B[b]=C.foldState(B[b],X,ae)}}else F.value=X;return b}e.exit=o;function l(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],l),b}e.done=l;function A(C,b){switch(b){case t:if(C.onLeft)return r;case r:if(C.onOperator)return n;case n:if(C.onRight)return a;case a:return o;case o:return l;case l:return l;default:Zo.fail("Invalid state")}}e.nextState=A;function f(C,b,E,N,B){return C++,b[C]=t,E[C]=B,N[C]=void 0,C}function I(C,b,E){if(Zo.shouldAssert(2))for(;C>=0;)Zo.assert(b[C]!==E,"Circular traversal detected."),C--}})(oSi||(oSi={}));function aSi(e,t){return typeof e=="object"?CNr(!1,e.prefix,e.node,e.suffix,t):typeof e=="string"?e.length>0&&e.charCodeAt(0)===35?e.slice(1):e:""}function Mec(e,t){return typeof e=="string"?e:Hec(e,Zo.checkDefined(t))}function Hec(e,t){return Dvi(e)?t(e).slice(1):vNe(e)?t(e):Yme(e)?e.escapedText.slice(1):yV(e)}function CNr(e,t,r,n,a){return t=aSi(t,a),n=aSi(n,a),r=Mec(r,a),`${e?"#":""}${t}${r}${n}`}function SBi(e){if(e.transformFlags&65536)return!0;if(e.transformFlags&128)for(let t of Oec(e)){let r=dJe(t);if(r&&kza(r)&&(r.transformFlags&65536||r.transformFlags&128&&SBi(r)))return!0}return!1}function zZ(e,t){return t?Ece(e,t.pos,t.end):e}function oDr(e){let t=e.kind;return t===168||t===169||t===171||t===172||t===173||t===174||t===176||t===177||t===178||t===181||t===185||t===218||t===219||t===231||t===243||t===262||t===263||t===264||t===265||t===266||t===267||t===271||t===272||t===277||t===278}function Yec(e){let t=e.kind;return t===169||t===172||t===174||t===177||t===178||t===231||t===263}var cSi,lSi,uSi,gSi,ASi,Qec={createBaseSourceFileNode:e=>new(ASi||(ASi=k2.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(uSi||(uSi=k2.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(gSi||(gSi=k2.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(lSi||(lSi=k2.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(cSi||(cSi=k2.getNodeConstructor()))(e,-1,-1)},$Tu=eDr(1,Qec);function wi(e,t){return t&&e(t)}function al(e,t,r){if(r){if(t)return t(r);for(let n of r){let a=e(n);if(a)return a}}}function Xec(e,t){return e.charCodeAt(t+1)===42&&e.charCodeAt(t+2)===42&&e.charCodeAt(t+3)!==47}function Jec(e){return hO(e.statements,Uec)||Kec(e)}function Uec(e){return oDr(e)&&jec(e,95)||pBi(e)&&mBi(e.moduleReference)||fBi(e)||IBi(e)||hBi(e)?e:void 0}function Kec(e){return e.flags&8388608?vBi(e):void 0}function vBi(e){return zec(e)?e:Ok(e,vBi)}function jec(e,t){return oD(e.modifiers,r=>r.kind===t)}function zec(e){return cec(e)&&e.keywordToken===102&&e.name.escapedText==="meta"}var qec={166:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},168:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.constraint)||wi(t,e.default)||wi(t,e.expression)},304:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.equalsToken)||wi(t,e.objectAssignmentInitializer)},305:function(e,t,r){return wi(t,e.expression)},169:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},172:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},171:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},303:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.initializer)},260:function(e,t,r){return wi(t,e.name)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},208:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.propertyName)||wi(t,e.name)||wi(t,e.initializer)},181:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},185:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},184:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},179:dSi,180:dSi,174:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},173:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},176:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},177:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},178:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},262:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},218:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},219:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.equalsGreaterThanToken)||wi(t,e.body)},175:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.body)},183:function(e,t,r){return wi(t,e.typeName)||al(t,r,e.typeArguments)},182:function(e,t,r){return wi(t,e.assertsModifier)||wi(t,e.parameterName)||wi(t,e.type)},186:function(e,t,r){return wi(t,e.exprName)||al(t,r,e.typeArguments)},187:function(e,t,r){return al(t,r,e.members)},188:function(e,t,r){return wi(t,e.elementType)},189:function(e,t,r){return al(t,r,e.elements)},192:pSi,193:pSi,194:function(e,t,r){return wi(t,e.checkType)||wi(t,e.extendsType)||wi(t,e.trueType)||wi(t,e.falseType)},195:function(e,t,r){return wi(t,e.typeParameter)},205:function(e,t,r){return wi(t,e.argument)||wi(t,e.attributes)||wi(t,e.qualifier)||al(t,r,e.typeArguments)},302:function(e,t,r){return wi(t,e.assertClause)},196:fSi,198:fSi,199:function(e,t,r){return wi(t,e.objectType)||wi(t,e.indexType)},200:function(e,t,r){return wi(t,e.readonlyToken)||wi(t,e.typeParameter)||wi(t,e.nameType)||wi(t,e.questionToken)||wi(t,e.type)||al(t,r,e.members)},201:function(e,t,r){return wi(t,e.literal)},202:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)},206:ISi,207:ISi,209:function(e,t,r){return al(t,r,e.elements)},210:function(e,t,r){return al(t,r,e.properties)},211:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.name)},212:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.argumentExpression)},213:hSi,214:hSi,215:function(e,t,r){return wi(t,e.tag)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||wi(t,e.template)},216:function(e,t,r){return wi(t,e.type)||wi(t,e.expression)},217:function(e,t,r){return wi(t,e.expression)},220:function(e,t,r){return wi(t,e.expression)},221:function(e,t,r){return wi(t,e.expression)},222:function(e,t,r){return wi(t,e.expression)},224:function(e,t,r){return wi(t,e.operand)},229:function(e,t,r){return wi(t,e.asteriskToken)||wi(t,e.expression)},223:function(e,t,r){return wi(t,e.expression)},225:function(e,t,r){return wi(t,e.operand)},226:function(e,t,r){return wi(t,e.left)||wi(t,e.operatorToken)||wi(t,e.right)},234:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},235:function(e,t,r){return wi(t,e.expression)},238:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},236:function(e,t,r){return wi(t,e.name)},227:function(e,t,r){return wi(t,e.condition)||wi(t,e.questionToken)||wi(t,e.whenTrue)||wi(t,e.colonToken)||wi(t,e.whenFalse)},230:function(e,t,r){return wi(t,e.expression)},241:mSi,268:mSi,307:function(e,t,r){return al(t,r,e.statements)||wi(t,e.endOfFileToken)},243:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.declarationList)},261:function(e,t,r){return al(t,r,e.declarations)},244:function(e,t,r){return wi(t,e.expression)},245:function(e,t,r){return wi(t,e.expression)||wi(t,e.thenStatement)||wi(t,e.elseStatement)},246:function(e,t,r){return wi(t,e.statement)||wi(t,e.expression)},247:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},248:function(e,t,r){return wi(t,e.initializer)||wi(t,e.condition)||wi(t,e.incrementor)||wi(t,e.statement)},249:function(e,t,r){return wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},250:function(e,t,r){return wi(t,e.awaitModifier)||wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},251:CSi,252:CSi,253:function(e,t,r){return wi(t,e.expression)},254:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},255:function(e,t,r){return wi(t,e.expression)||wi(t,e.caseBlock)},269:function(e,t,r){return al(t,r,e.clauses)},296:function(e,t,r){return wi(t,e.expression)||al(t,r,e.statements)},297:function(e,t,r){return al(t,r,e.statements)},256:function(e,t,r){return wi(t,e.label)||wi(t,e.statement)},257:function(e,t,r){return wi(t,e.expression)},258:function(e,t,r){return wi(t,e.tryBlock)||wi(t,e.catchClause)||wi(t,e.finallyBlock)},299:function(e,t,r){return wi(t,e.variableDeclaration)||wi(t,e.block)},170:function(e,t,r){return wi(t,e.expression)},263:_Si,231:_Si,264:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)},265:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||wi(t,e.type)},266:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.members)},306:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},267:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.body)},271:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.moduleReference)},272:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},273:function(e,t,r){return wi(t,e.name)||wi(t,e.namedBindings)},300:function(e,t,r){return al(t,r,e.elements)},301:function(e,t,r){return wi(t,e.name)||wi(t,e.value)},270:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)},274:function(e,t,r){return wi(t,e.name)},280:function(e,t,r){return wi(t,e.name)},275:ySi,279:ySi,278:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.exportClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},276:bSi,281:bSi,277:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.expression)},228:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},239:function(e,t,r){return wi(t,e.expression)||wi(t,e.literal)},203:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},204:function(e,t,r){return wi(t,e.type)||wi(t,e.literal)},167:function(e,t,r){return wi(t,e.expression)},298:function(e,t,r){return al(t,r,e.types)},233:function(e,t,r){return wi(t,e.expression)||al(t,r,e.typeArguments)},283:function(e,t,r){return wi(t,e.expression)},282:function(e,t,r){return al(t,r,e.modifiers)},356:function(e,t,r){return al(t,r,e.elements)},284:function(e,t,r){return wi(t,e.openingElement)||al(t,r,e.children)||wi(t,e.closingElement)},288:function(e,t,r){return wi(t,e.openingFragment)||al(t,r,e.children)||wi(t,e.closingFragment)},285:ESi,286:ESi,292:function(e,t,r){return al(t,r,e.properties)},291:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},293:function(e,t,r){return wi(t,e.expression)},294:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.expression)},287:function(e,t,r){return wi(t,e.tagName)},295:function(e,t,r){return wi(t,e.namespace)||wi(t,e.name)},190:Dme,191:Dme,309:Dme,315:Dme,314:Dme,316:Dme,318:Dme,317:function(e,t,r){return al(t,r,e.parameters)||wi(t,e.type)},320:function(e,t,r){return(typeof e.comment=="string"?void 0:al(t,r,e.comment))||al(t,r,e.tags)},347:function(e,t,r){return wi(t,e.tagName)||wi(t,e.name)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},310:function(e,t,r){return wi(t,e.name)},311:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},341:SSi,348:SSi,330:function(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},329:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},328:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},345:function(e,t,r){return wi(t,e.tagName)||wi(t,e.constraint)||al(t,r,e.typeParameters)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},346:function(e,t,r){return wi(t,e.tagName)||(e.typeExpression&&e.typeExpression.kind===309?wi(t,e.typeExpression)||wi(t,e.fullName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)):wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)))},338:function(e,t,r){return wi(t,e.tagName)||wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},342:kme,344:kme,343:kme,340:kme,350:kme,349:kme,339:kme,323:function(e,t,r){return hO(e.typeParameters,t)||hO(e.parameters,t)||wi(t,e.type)},324:eNr,325:eNr,326:eNr,322:function(e,t,r){return hO(e.jsDocPropertyTags,t)},327:Ice,332:Ice,333:Ice,334:Ice,335:Ice,336:Ice,331:Ice,337:Ice,351:$ec,355:etc};function dSi(e,t,r){return al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)}function pSi(e,t,r){return al(t,r,e.types)}function fSi(e,t,r){return wi(t,e.type)}function ISi(e,t,r){return al(t,r,e.elements)}function hSi(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||al(t,r,e.arguments)}function mSi(e,t,r){return al(t,r,e.statements)}function CSi(e,t,r){return wi(t,e.label)}function _Si(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)}function ySi(e,t,r){return al(t,r,e.elements)}function bSi(e,t,r){return wi(t,e.propertyName)||wi(t,e.name)}function ESi(e,t,r){return wi(t,e.tagName)||al(t,r,e.typeArguments)||wi(t,e.attributes)}function Dme(e,t,r){return wi(t,e.type)}function SSi(e,t,r){return wi(t,e.tagName)||(e.isNameFirst?wi(t,e.name)||wi(t,e.typeExpression):wi(t,e.typeExpression)||wi(t,e.name))||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function kme(e,t,r){return wi(t,e.tagName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function eNr(e,t,r){return wi(t,e.name)}function Ice(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function $ec(e,t,r){return wi(t,e.tagName)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function etc(e,t,r){return wi(t,e.expression)}function Ok(e,t,r){if(e===void 0||e.kind<=165)return;let n=qec[e.kind];return n===void 0?void 0:n(e,t,r)}function vSi(e,t,r){let n=BSi(e),a=[];for(;a.length=0;--A)n.push(o[A]),a.push(l)}else{let A=t(o,l);if(A){if(A==="skip")continue;return A}if(o.kind>=166)for(let f of BSi(o))n.push(f),a.push(o)}}}function BSi(e){let t=[];return Ok(e,r,r),t;function r(n){t.unshift(n)}}function BBi(e){e.externalModuleIndicator=Jec(e)}function ttc(e,t,r,n=!1,a){var o,l;(o=Fbt)==null||o.push(Fbt.Phase.Parse,"createSourceFile",{path:e},!0),T2i("beforeParse");let A,{languageVersion:f,setExternalModuleIndicator:I,impliedNodeFormat:C,jsDocParsingMode:b}=typeof r=="object"?r:{languageVersion:r};if(f===100)A=Mme.parseSourceFile(e,t,f,void 0,n,6,NNe,b);else{let E=C===void 0?I:N=>(N.impliedNodeFormat=C,(I||BBi)(N));A=Mme.parseSourceFile(e,t,f,void 0,n,a,E,b)}return T2i("afterParse"),u7a("Parse","beforeParse","afterParse"),(l=Fbt)==null||l.pop(),A}function rtc(e){return e.externalModuleIndicator!==void 0}function ntc(e,t,r,n=!1){let a=qbt.updateSourceFile(e,t,r,n);return a.flags|=e.flags&12582912,a}var Mme;(e=>{var t=WNr(99,!0),r=40960,n,a,o,l,A;function f(tt){return _n++,tt}var I={createBaseSourceFileNode:tt=>f(new A(tt,0,0)),createBaseIdentifierNode:tt=>f(new o(tt,0,0)),createBasePrivateIdentifierNode:tt=>f(new l(tt,0,0)),createBaseTokenNode:tt=>f(new a(tt,0,0)),createBaseNode:tt=>f(new n(tt,0,0))},C=eDr(11,I),{createNodeArray:b,createNumericLiteral:E,createStringLiteral:N,createLiteralLikeNode:B,createIdentifier:F,createPrivateIdentifier:Q,createToken:X,createArrayLiteralExpression:ae,createObjectLiteralExpression:ne,createPropertyAccessExpression:ce,createPropertyAccessChain:fe,createElementAccessExpression:ue,createElementAccessChain:de,createCallExpression:be,createCallChain:Se,createNewExpression:De,createParenthesizedExpression:k,createBlock:et,createVariableStatement:ct,createExpressionStatement:Me,createIfStatement:je,createWhileStatement:St,createForStatement:At,createForOfStatement:Yt,createVariableDeclaration:Tr,createVariableDeclarationList:Nr}=C,er,vt,xt,Zr,qt,Xt,lr,cr,Ar,qr,_n,ke,jt,Fn,Nn,Hi,po=!0,Vr=!1;function xi(tt,Jt,kr,Xr,ui=!1,Is,Hs,Rs=0){var ja;if(Is=r$a(tt,Is),Is===6){let sl=ga(tt,Jt,kr,Xr,ui);return convertToJson(sl,(ja=sl.statements[0])==null?void 0:ja.expression,sl.parseDiagnostics,!1,void 0),sl.referencedFiles=x2,sl.typeReferenceDirectives=x2,sl.libReferenceDirectives=x2,sl.amdDependencies=x2,sl.hasNoDefaultLib=!1,sl.pragmas=Z6a,sl}Ya(tt,Jt,kr,Xr,Is,Rs);let ho=cl(kr,ui,Is,Hs||BBi,Rs);return Gc(),ho}e.parseSourceFile=xi;function io(tt,Jt){Ya("",tt,Jt,void 0,1,0),Vs();let kr=se(!0),Xr=Wt()===1&&!lr.length;return Gc(),Xr?kr:void 0}e.parseIsolatedEntityName=io;function ga(tt,Jt,kr=2,Xr,ui=!1){Ya(tt,Jt,kr,Xr,6,0),vt=Hi,Vs();let Is=Ri(),Hs,Rs;if(Wt()===1)Hs=Er([],Is,Is),Rs=ZA();else{let sl;for(;Wt()!==1;){let Og;switch(Wt()){case 23:Og=ag();break;case 112:case 97:case 106:Og=ZA();break;case 41:oo(()=>Vs()===9&&Vs()!==59)?Og=ey():Og=n1();break;case 9:case 11:if(oo(()=>Vs()!==59)){Og=ra();break}default:Og=n1();break}sl&&Tee(sl)?sl.push(Og):sl?sl=[sl,Og]:(sl=Og,Wt()!==1&&Da(ts.Unexpected_token))}let Nd=Tee(sl)?Zt(ae(sl),Is):Zo.checkDefined(sl),ed=Me(Nd);Zt(ed,Is),Hs=Er([ed],Is),Rs=il(1,ts.Unexpected_token)}let ja=zr(tt,2,6,!1,Hs,Rs,vt,NNe);ui&&Ft(ja),ja.nodeCount=_n,ja.identifierCount=jt,ja.identifiers=ke,ja.parseDiagnostics=Nme(lr,ja),cr&&(ja.jsDocDiagnostics=Nme(cr,ja));let ho=ja;return Gc(),ho}e.parseJsonText=ga;function Ya(tt,Jt,kr,Xr,ui,Is){switch(n=k2.getNodeConstructor(),a=k2.getTokenConstructor(),o=k2.getIdentifierConstructor(),l=k2.getPrivateIdentifierConstructor(),A=k2.getSourceFileConstructor(),er=E7a(tt),xt=Jt,Zr=kr,Ar=Xr,qt=ui,Xt=U2i(ui),lr=[],Fn=0,ke=new Map,jt=0,_n=0,vt=0,po=!0,qt){case 1:case 2:Hi=524288;break;case 6:Hi=134742016;break;default:Hi=0;break}Vr=!1,t.setText(xt),t.setOnError(Qh),t.setScriptTarget(Zr),t.setLanguageVariant(Xt),t.setScriptKind(qt),t.setJSDocParsingMode(Is)}function Gc(){t.clearCommentDirectives(),t.setText(""),t.setOnError(void 0),t.setScriptKind(0),t.setJSDocParsingMode(0),xt=void 0,Zr=void 0,Ar=void 0,qt=void 0,Xt=void 0,vt=0,lr=void 0,cr=void 0,Fn=0,ke=void 0,Nn=void 0,po=!0}function cl(tt,Jt,kr,Xr,ui){let Is=otc(er);Is&&(Hi|=33554432),vt=Hi,Vs();let Hs=jd(0,Am);Zo.assert(Wt()===1);let Rs=Do(),ja=Hr(ZA(),Rs),ho=zr(er,tt,kr,Is,Hs,ja,vt,Xr);return ltc(ho,xt),utc(ho,sl),ho.commentDirectives=t.getCommentDirectives(),ho.nodeCount=_n,ho.identifierCount=jt,ho.identifiers=ke,ho.parseDiagnostics=Nme(lr,ho),ho.jsDocParsingMode=ui,cr&&(ho.jsDocDiagnostics=Nme(cr,ho)),Jt&&Ft(ho),ho;function sl(Nd,ed,Og){lr.push(pNe(er,xt,Nd,ed,Og))}}let Sc=!1;function Hr(tt,Jt){if(!Jt)return tt;Zo.assert(!tt.jsDoc);let kr=W6a(qza(tt,xt),Xr=>aY.parseJSDocComment(tt,Xr.pos,Xr.end-Xr.pos));return kr.length&&(tt.jsDoc=kr),Sc&&(Sc=!1,tt.flags|=536870912),tt}function Wr(tt){let Jt=Ar,kr=qbt.createSyntaxCursor(tt);Ar={currentNode:sl};let Xr=[],ui=lr;lr=[];let Is=0,Hs=ja(tt.statements,0);for(;Hs!==-1;){let Nd=tt.statements[Is],ed=tt.statements[Hs];_V(Xr,tt.statements,Is,Hs),Is=ho(tt.statements,Hs);let Og=YRr(ui,o1=>o1.start>=Nd.pos),Nh=Og>=0?YRr(ui,o1=>o1.start>=ed.pos,Og):-1;Og>=0&&_V(lr,ui,Og,Nh>=0?Nh:void 0),oA(()=>{let o1=Hi;for(Hi|=65536,t.resetTokenState(ed.pos),Vs();Wt()!==1;){let Tb=t.getTokenFullStart(),q2=dh(0,Am);if(Xr.push(q2),Tb===t.getTokenFullStart()&&Vs(),Is>=0){let IE=tt.statements[Is];if(q2.end===IE.pos)break;q2.end>IE.pos&&(Is=ho(tt.statements,Is+1))}}Hi=o1},2),Hs=Is>=0?ja(tt.statements,Is):-1}if(Is>=0){let Nd=tt.statements[Is];_V(Xr,tt.statements,Is);let ed=YRr(ui,Og=>Og.start>=Nd.pos);ed>=0&&_V(lr,ui,ed)}return Ar=Jt,C.updateSourceFile(tt,zZ(b(Xr),tt.statements));function Rs(Nd){return!(Nd.flags&65536)&&!!(Nd.transformFlags&67108864)}function ja(Nd,ed){for(let Og=ed;Og118}function Xs(){return Wt()===80?!0:Wt()===127&&Yl()||Wt()===135&&Xu()?!1:Wt()>118}function ws(tt,Jt,kr=!0){return Wt()===tt?(kr&&Vs(),!0):(Jt?Da(Jt):Da(ts._0_expected,by(tt)),!1)}let Gs=Object.keys(LNr).filter(tt=>tt.length>2);function Ma(tt){if(rec(tt)){_g(dj(xt,tt.template.pos),tt.template.end,ts.Module_declaration_names_may_only_use_or_quoted_strings);return}let Jt=$C(tt)?yV(tt):void 0;if(!Jt||!Q7a(Jt,Zr)){Da(ts._0_expected,by(27));return}let kr=dj(xt,tt.pos);switch(Jt){case"const":case"let":case"var":_g(kr,tt.end,ts.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":Dc(ts.Interface_name_cannot_be_0,ts.Interface_must_be_given_a_name,19);return;case"is":_g(kr,t.getTokenStart(),ts.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":Dc(ts.Namespace_name_cannot_be_0,ts.Namespace_must_be_given_a_name,19);return;case"type":Dc(ts.Type_alias_name_cannot_be_0,ts.Type_alias_must_be_given_a_name,64);return}let Xr=lJe(Jt,Gs,VE)??As(Jt);if(Xr){_g(kr,tt.end,ts.Unknown_keyword_or_identifier_Did_you_mean_0,Xr);return}Wt()!==0&&_g(kr,tt.end,ts.Unexpected_keyword_or_identifier)}function Dc(tt,Jt,kr){Wt()===kr?Da(Jt):Da(tt,t.getTokenValue())}function As(tt){for(let Jt of Gs)if(tt.length>Jt.length+2&&Obt(tt,Jt))return`${Jt} ${tt.slice(Jt.length)}`}function Tf(tt,Jt,kr){if(Wt()===60&&!t.hasPrecedingLineBreak()){Da(ts.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(Wt()===21){Da(ts.Cannot_start_a_function_call_in_a_type_annotation),Vs();return}if(Jt&&!yg()){kr?Da(ts._0_expected,by(27)):Da(ts.Expected_for_property_initializer);return}if(!Mp()){if(kr){Da(ts._0_expected,by(27));return}Ma(tt)}}function cm(tt){return Wt()===tt?(Ju(),!0):(Zo.assert(URr(tt)),Da(ts._0_expected,by(tt)),!1)}function Fl(tt,Jt,kr,Xr){if(Wt()===Jt){Vs();return}let ui=Da(ts._0_expected,by(Jt));kr&&ui&&Dbt(ui,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,by(tt),by(Jt)))}function rc(tt){return Wt()===tt?(Vs(),!0):!1}function sd(tt){if(Wt()===tt)return ZA()}function Om(tt){if(Wt()===tt)return El()}function il(tt,Jt,kr){return sd(tt)||yn(tt,!1,Jt||ts._0_expected,kr||by(tt))}function FA(tt){return Om(tt)||(Zo.assert(URr(tt)),yn(tt,!1,ts._0_expected,by(tt)))}function ZA(){let tt=Ri(),Jt=Wt();return Vs(),Zt(X(Jt),tt)}function El(){let tt=Ri(),Jt=Wt();return Ju(),Zt(X(Jt),tt)}function yg(){return Wt()===27?!0:Wt()===20||Wt()===1||t.hasPrecedingLineBreak()}function Mp(){return yg()?(Wt()===27&&Vs(),!0):!1}function MA(){return Mp()||ws(27)}function Er(tt,Jt,kr,Xr){let ui=b(tt,Xr);return Ece(ui,Jt,kr??t.getTokenFullStart()),ui}function Zt(tt,Jt,kr){return Ece(tt,Jt,kr??t.getTokenFullStart()),Hi&&(tt.flags|=Hi),Vr&&(Vr=!1,tt.flags|=262144),tt}function yn(tt,Jt,kr,...Xr){Jt?pu(t.getTokenFullStart(),0,kr,...Xr):kr&&Da(kr,...Xr);let ui=Ri(),Is=tt===80?F("",void 0):P2i(tt)?C.createTemplateLiteralLikeNode(tt,"","",void 0):tt===9?E("",void 0):tt===11?N("",void 0):tt===282?C.createMissingDeclaration():X(tt);return Zt(Is,ui)}function ls(tt){let Jt=ke.get(tt);return Jt===void 0&&ke.set(tt,Jt=tt),Jt}function oa(tt,Jt,kr){if(tt){jt++;let Rs=t.hasPrecedingJSDocLeadingAsterisks()?t.getTokenStart():Ri(),ja=Wt(),ho=ls(t.getTokenValue()),sl=t.hasExtendedUnicodeEscape();return Hu(),Zt(F(ho,ja,sl),Rs)}if(Wt()===81)return Da(kr||ts.Private_identifiers_are_not_allowed_outside_class_bodies),oa(!0);if(Wt()===0&&t.tryScan(()=>t.reScanInvalidIdentifier()===80))return oa(!0);jt++;let Xr=Wt()===1,ui=t.isReservedWord(),Is=t.getTokenText(),Hs=ui?ts.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:ts.Identifier_expected;return yn(80,Xr,Jt||Hs,Is)}function Fs(tt){return oa(cc(),void 0,tt)}function Wa(tt,Jt){return oa(Xs(),tt,Jt)}function Ca(tt){return oa(H1(Wt()),tt)}function ld(){return(t.hasUnicodeEscape()||t.hasExtendedUnicodeEscape())&&Da(ts.Unicode_escape_sequence_cannot_appear_here),oa(H1(Wt()))}function Rp(){return H1(Wt())||Wt()===11||Wt()===9||Wt()===10}function np(){return H1(Wt())||Wt()===11}function HA(tt){if(Wt()===11||Wt()===9||Wt()===10){let Jt=ra();return Jt.text=ls(Jt.text),Jt}return tt&&Wt()===23?Zs():Wt()===81?so():Ca()}function df(){return HA(!0)}function Zs(){let tt=Ri();ws(23);let Jt=gc($A);return ws(24),Zt(C.createComputedPropertyName(Jt),tt)}function so(){let tt=Ri(),Jt=Q(ls(t.getTokenValue()));return Vs(),Zt(Jt,tt)}function Ea(tt){return Wt()===tt&&Ki(Dr)}function Ml(){return Vs(),t.hasPrecedingLineBreak()?!1:Bo()}function Dr(){switch(Wt()){case 87:return Vs()===94;case 95:return Vs(),Wt()===90?oo(Ql):Wt()===156?oo(di):Wn();case 90:return Ql();case 126:return Vs(),Bo();case 139:case 153:return Vs(),us();default:return Ml()}}function Wn(){return Wt()===60||Wt()!==42&&Wt()!==130&&Wt()!==19&&Bo()}function di(){return Vs(),Wn()}function aa(){return vee(Wt())&&Ki(Dr)}function Bo(){return Wt()===23||Wt()===19||Wt()===42||Wt()===26||Rp()}function us(){return Wt()===23||Rp()}function Ql(){return Vs(),Wt()===86||Wt()===100||Wt()===120||Wt()===60||Wt()===128&&oo(Dp)||Wt()===134&&oo(t2)}function LA(tt,Jt){if(Hp(tt))return!0;switch(tt){case 0:case 1:case 3:return!(Wt()===27&&Jt)&&Xc();case 2:return Wt()===84||Wt()===90;case 4:return oo(gm);case 5:return oo(bL)||Wt()===27&&!Jt;case 6:return Wt()===23||Rp();case 12:switch(Wt()){case 23:case 42:case 26:case 25:return!0;default:return Rp()}case 18:return Rp();case 9:return Wt()===23||Wt()===26||Rp();case 24:return np();case 7:return Wt()===19?oo(pf):Jt?Xs()&&!j1():US()&&!j1();case 8:return i1();case 10:return Wt()===28||Wt()===26||i1();case 19:return Wt()===103||Wt()===87||Xs();case 15:switch(Wt()){case 28:case 25:return!0}case 11:return Wt()===26||$I();case 16:return NC(!1);case 17:return NC(!0);case 20:case 21:return Wt()===28||ut();case 22:return rn();case 23:return Wt()===161&&oo(Cx)?!1:Wt()===11?!0:H1(Wt());case 13:return H1(Wt())||Wt()===19;case 14:return!0;case 25:return!0;case 26:return Zo.fail("ParsingContext.Count used as a context");default:Zo.assertNever(tt,"Non-exhaustive case in 'isListElement'.")}}function pf(){if(Zo.assert(Wt()===19),Vs()===20){let tt=Vs();return tt===28||tt===19||tt===96||tt===119}return!0}function ef(){return Vs(),Xs()}function ip(){return Vs(),H1(Wt())}function _d(){return Vs(),S7a(Wt())}function j1(){return Wt()===119||Wt()===96?oo(pw):!1}function pw(){return Vs(),$I()}function YA(){return Vs(),ut()}function Ac(tt){if(Wt()===1)return!0;switch(tt){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return Wt()===20;case 3:return Wt()===20||Wt()===84||Wt()===90;case 7:return Wt()===19||Wt()===96||Wt()===119;case 8:return Nm();case 19:return Wt()===32||Wt()===21||Wt()===19||Wt()===96||Wt()===119;case 11:return Wt()===22||Wt()===27;case 15:case 21:case 10:return Wt()===24;case 17:case 16:case 18:return Wt()===22||Wt()===24;case 20:return Wt()!==28;case 22:return Wt()===19||Wt()===20;case 13:return Wt()===32||Wt()===44;case 14:return Wt()===30&&oo(tv);default:return!1}}function Nm(){return!!(yg()||qE(Wt())||Wt()===39)}function HS(){Zo.assert(Fn,"Missing parsing context");for(let tt=0;tt<26;tt++)if(Fn&1<=0)}function CI(tt){return tt===6?ts.An_enum_member_name_must_be_followed_by_a_or:void 0}function _I(){let tt=Er([],Ri());return tt.isMissingList=!0,tt}function H2(tt){return!!tt.isMissingList}function iE(tt,Jt,kr,Xr){if(ws(kr)){let ui=Kf(tt,Jt);return ws(Xr),ui}return _I()}function se(tt,Jt){let kr=Ri(),Xr=tt?Ca(Jt):Wa(Jt);for(;rc(25)&&Wt()!==30;)Xr=Zt(C.createQualifiedName(Xr,K(tt,!1,!0)),kr);return Xr}function O(tt,Jt){return Zt(C.createQualifiedName(tt,Jt),tt.pos)}function K(tt,Jt,kr){if(t.hasPrecedingLineBreak()&&H1(Wt())&&oo(Dm))return yn(80,!0,ts.Identifier_expected);if(Wt()===81){let Xr=so();return Jt?Xr:yn(80,!0,ts.Identifier_expected)}return tt?kr?Ca():ld():Wa()}function we(tt){let Jt=Ri(),kr=[],Xr;do Xr=$n(tt),kr.push(Xr);while(Xr.literal.kind===17);return Er(kr,Jt)}function gt(tt){let Jt=Ri();return Zt(C.createTemplateExpression(kc(tt),we(tt)),Jt)}function sr(){let tt=Ri();return Zt(C.createTemplateLiteralType(kc(!1),Yr()),tt)}function Yr(){let tt=Ri(),Jt=[],kr;do kr=Lr(),Jt.push(kr);while(kr.literal.kind===17);return Er(Jt,tt)}function Lr(){let tt=Ri();return Zt(C.createTemplateLiteralTypeSpan(tf(),fi(!1)),tt)}function fi(tt){return Wt()===20?(OA(tt),Nl()):il(18,ts._0_expected,by(20))}function $n(tt){let Jt=Ri();return Zt(C.createTemplateSpan(gc($A),fi(tt)),Jt)}function ra(){return Bl(Wt())}function kc(tt){!tt&&t.getTokenFlags()&26656&&OA(!1);let Jt=Bl(Wt());return Zo.assert(Jt.kind===16,"Template head has wrong token kind"),Jt}function Nl(){let tt=Bl(Wt());return Zo.assert(tt.kind===17||tt.kind===18,"Template fragment has wrong token kind"),tt}function ca(tt){let Jt=tt===15||tt===18,kr=t.getTokenText();return kr.substring(1,kr.length-(t.isUnterminated()?0:Jt?1:2))}function Bl(tt){let Jt=Ri(),kr=P2i(tt)?C.createTemplateLiteralLikeNode(tt,t.getTokenValue(),ca(tt),t.getTokenFlags()&7176):tt===9?E(t.getTokenValue(),t.getNumericLiteralFlags()):tt===11?N(t.getTokenValue(),void 0,t.hasExtendedUnicodeEscape()):yza(tt)?B(tt,t.getTokenValue()):Zo.fail();return t.hasExtendedUnicodeEscape()&&(kr.hasExtendedUnicodeEscape=!0),t.isUnterminated()&&(kr.isUnterminated=!0),Vs(),Zt(kr,Jt)}function $g(){return se(!0,ts.Type_expected)}function SA(){if(!t.hasPrecedingLineBreak()&&GA()===30)return iE(20,tf,30,32)}function lI(){let tt=Ri();return Zt(C.createTypeReferenceNode($g(),SA()),tt)}function lp(tt){switch(tt.kind){case 183:return Wme(tt.typeName);case 184:case 185:{let{parameters:Jt,type:kr}=tt;return H2(Jt)||lp(kr)}case 196:return lp(tt.type);default:return!1}}function Ib(tt){return Vs(),Zt(C.createTypePredicateNode(void 0,tt,tf()),tt.pos)}function Na(){let tt=Ri();return Vs(),Zt(C.createThisTypeNode(),tt)}function wd(){let tt=Ri();return Vs(),Zt(C.createJSDocAllType(),tt)}function z1(){let tt=Ri();return Vs(),Zt(C.createJSDocNonNullableType(xc(),!1),tt)}function T_(){let tt=Ri();return Vs(),Wt()===28||Wt()===20||Wt()===22||Wt()===32||Wt()===64||Wt()===52?Zt(C.createJSDocUnknownType(),tt):Zt(C.createJSDocNullableType(tf(),!1),tt)}function RC(){let tt=Ri(),Jt=Do();if(Ki(_x)){let kr=Mc(36),Xr=ph(59,!1);return Hr(Zt(C.createJSDocFunctionType(kr,Xr),tt),Jt)}return Zt(C.createTypeReferenceNode(Ca(),void 0),tt)}function Hm(){let tt=Ri(),Jt;return(Wt()===110||Wt()===105)&&(Jt=Ca(),ws(59)),Zt(C.createParameterDeclaration(void 0,void 0,Jt,void 0,YS(),void 0),tt)}function YS(){t.setSkipJsDocLeadingAsterisks(!0);let tt=Ri();if(rc(144)){let Xr=C.createJSDocNamepathType(void 0);e:for(;;)switch(Wt()){case 20:case 1:case 28:case 5:break e;default:Ju()}return t.setSkipJsDocLeadingAsterisks(!1),Zt(Xr,tt)}let Jt=rc(26),kr=jE();return t.setSkipJsDocLeadingAsterisks(!1),Jt&&(kr=Zt(C.createJSDocVariadicType(kr),tt)),Wt()===64?(Vs(),Zt(C.createJSDocOptionalType(kr),tt)):kr}function Fg(){let tt=Ri();ws(114);let Jt=se(!0),kr=t.hasPrecedingLineBreak()?void 0:xn();return Zt(C.createTypeQueryNode(Jt,kr),tt)}function hb(){let tt=Ri(),Jt=Le(!1,!0),kr=Wa(),Xr,ui;rc(96)&&(ut()||!$I()?Xr=tf():ui=JR());let Is=rc(64)?tf():void 0,Hs=C.createTypeParameterDeclaration(Jt,kr,Xr,Is);return Hs.expression=ui,Zt(Hs,tt)}function gC(){if(Wt()===30)return iE(19,hb,30,32)}function NC(tt){return Wt()===26||i1()||vee(Wt())||Wt()===60||ut(!tt)}function Y2(tt){let Jt=Of(ts.Private_identifiers_cannot_be_used_as_parameters);return Jza(Jt)===0&&!oD(tt)&&vee(Wt())&&Vs(),Jt}function U_(){return cc()||Wt()===23||Wt()===19}function DC(tt){return qI(tt)}function kC(tt){return qI(tt,!1)}function qI(tt,Jt=!0){let kr=Ri(),Xr=Do(),ui=tt?li(()=>Le(!0)):Ei(()=>Le(!0));if(Wt()===110){let ja=C.createParameterDeclaration(ui,void 0,oa(!0),void 0,Ty(),void 0),ho=DNr(ui);return ho&&mI(ho,ts.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),Hr(Zt(ja,kr),Xr)}let Is=po;po=!1;let Hs=sd(26);if(!Jt&&!U_())return;let Rs=Hr(Zt(C.createParameterDeclaration(ui,Hs,Y2(ui),sd(58),Ty(),Qm()),kr),Xr);return po=Is,Rs}function ph(tt,Jt){if(vA(tt,Jt))return Nc(jE)}function vA(tt,Jt){return tt===39?(ws(tt),!0):rc(59)?!0:Jt&&Wt()===39?(Da(ts._0_expected,by(59)),Vs(),!0):!1}function Td(tt,Jt){let kr=Yl(),Xr=Xu();Qi(!!(tt&1)),yo(!!(tt&2));let ui=tt&32?Kf(17,Hm):Kf(16,()=>Jt?DC(Xr):kC(Xr));return Qi(kr),yo(Xr),ui}function Mc(tt){if(!ws(21))return _I();let Jt=Td(tt,!0);return ws(22),Jt}function Pf(){rc(28)||MA()}function sE(tt){let Jt=Ri(),kr=Do();tt===180&&ws(105);let Xr=gC(),ui=Mc(4),Is=ph(59,!0);Pf();let Hs=tt===179?C.createCallSignature(Xr,ui,Is):C.createConstructSignature(Xr,ui,Is);return Hr(Zt(Hs,Jt),kr)}function eA(){return Wt()===23&&oo(QS)}function QS(){if(Vs(),Wt()===26||Wt()===24)return!0;if(vee(Wt())){if(Vs(),Xs())return!0}else if(Xs())Vs();else return!1;return Wt()===59||Wt()===28?!0:Wt()!==58?!1:(Vs(),Wt()===59||Wt()===28||Wt()===24)}function XS(tt,Jt,kr){let Xr=iE(16,()=>DC(!1),23,24),ui=Ty();Pf();let Is=C.createIndexSignature(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function um(tt,Jt,kr){let Xr=df(),ui=sd(58),Is;if(Wt()===21||Wt()===30){let Hs=gC(),Rs=Mc(4),ja=ph(59,!0);Is=C.createMethodSignature(kr,Xr,ui,Hs,Rs,ja)}else{let Hs=Ty();Is=C.createPropertySignature(kr,Xr,ui,Hs),Wt()===64&&(Is.initializer=Qm())}return Pf(),Hr(Zt(Is,tt),Jt)}function gm(){if(Wt()===21||Wt()===30||Wt()===139||Wt()===153)return!0;let tt=!1;for(;vee(Wt());)tt=!0,Vs();return Wt()===23?!0:(Rp()&&(tt=!0,Vs()),tt?Wt()===21||Wt()===30||Wt()===58||Wt()===59||Wt()===28||yg():!1)}function cs(){if(Wt()===21||Wt()===30)return sE(179);if(Wt()===105&&oo(na))return sE(180);let tt=Ri(),Jt=Do(),kr=Le(!1);return Ea(139)?Bb(tt,Jt,kr,177,4):Ea(153)?Bb(tt,Jt,kr,178,4):eA()?XS(tt,Jt,kr):um(tt,Jt,kr)}function na(){return Vs(),Wt()===21||Wt()===30}function ko(){return Vs()===25}function ki(){switch(Vs()){case 21:case 30:case 25:return!0}return!1}function Kl(){let tt=Ri();return Zt(C.createTypeLiteralNode(fd()),tt)}function fd(){let tt;return ws(19)?(tt=jd(4,cs),ws(20)):tt=_I(),tt}function jf(){return Vs(),Wt()===40||Wt()===41?Vs()===148:(Wt()===148&&Vs(),Wt()===23&&ef()&&Vs()===103)}function Ld(){let tt=Ri(),Jt=Ca();ws(103);let kr=tf();return Zt(C.createTypeParameterDeclaration(void 0,Jt,kr,void 0),tt)}function AC(){let tt=Ri();ws(19);let Jt;(Wt()===148||Wt()===40||Wt()===41)&&(Jt=ZA(),Jt.kind!==148&&ws(148)),ws(23);let kr=Ld(),Xr=rc(130)?tf():void 0;ws(24);let ui;(Wt()===58||Wt()===40||Wt()===41)&&(ui=ZA(),ui.kind!==58&&ws(58));let Is=Ty();MA();let Hs=jd(4,cs);return ws(20),Zt(C.createMappedTypeNode(Jt,kr,Xr,ui,Is,Hs),tt)}function JE(){let tt=Ri();if(rc(26))return Zt(C.createRestTypeNode(tf()),tt);let Jt=tf();if(_ec(Jt)&&Jt.pos===Jt.type.pos){let kr=C.createOptionalTypeNode(Jt.type);return zZ(kr,Jt),kr.flags=Jt.flags,kr}return Jt}function Ym(){return Vs()===59||Wt()===58&&Vs()===59}function vy(){return Wt()===26?H1(Vs())&&Ym():H1(Wt())&&Ym()}function K_(){if(oo(vy)){let tt=Ri(),Jt=Do(),kr=sd(26),Xr=Ca(),ui=sd(58);ws(59);let Is=JE(),Hs=C.createNamedTupleMember(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}return JE()}function od(){let tt=Ri();return Zt(C.createTupleTypeNode(iE(21,K_,23,24)),tt)}function UE(){let tt=Ri();ws(21);let Jt=tf();return ws(22),Zt(C.createParenthesizedType(Jt),tt)}function KE(){let tt;if(Wt()===128){let Jt=Ri();Vs();let kr=Zt(X(128),Jt);tt=Er([kr],Jt)}return tt}function Yp(){let tt=Ri(),Jt=Do(),kr=KE(),Xr=rc(105);Zo.assert(!kr||Xr,"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");let ui=gC(),Is=Mc(4),Hs=ph(39,!1),Rs=Xr?C.createConstructorTypeNode(kr,ui,Is,Hs):C.createFunctionTypeNode(ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function JS(){let tt=ZA();return Wt()===25?void 0:tt}function By(tt){let Jt=Ri();tt&&Vs();let kr=Wt()===112||Wt()===97||Wt()===106?ZA():Bl(Wt());return tt&&(kr=Zt(C.createPrefixUnaryExpression(41,kr),Jt)),Zt(C.createLiteralTypeNode(kr),Jt)}function $0(){return Vs(),Wt()===102}function fw(){vt|=4194304;let tt=Ri(),Jt=rc(114);ws(102),ws(21);let kr=tf(),Xr;if(rc(28)){let Hs=t.getTokenStart();ws(19);let Rs=Wt();if(Rs===118||Rs===132?Vs():Da(ts._0_expected,by(118)),ws(59),Xr=$O(Rs,!0),!ws(20)){let ja=Vme(lr);ja&&ja.code===ts._0_expected.code&&Dbt(ja,pNe(er,xt,Hs,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}}ws(22);let ui=rc(25)?$g():void 0,Is=SA();return Zt(C.createImportTypeNode(kr,Xr,ui,Is,Jt),tt)}function Q2(){return Vs(),Wt()===9||Wt()===10}function xc(){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return Ki(JS)||lI();case 67:t.reScanAsteriskEqualsToken();case 42:return wd();case 61:t.reScanQuestionToken();case 58:return T_();case 100:return RC();case 54:return z1();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return By();case 41:return oo(Q2)?By(!0):lI();case 116:return ZA();case 110:{let tt=Na();return Wt()===142&&!t.hasPrecedingLineBreak()?Ib(tt):tt}case 114:return oo($0)?fw():Fg();case 19:return oo(jf)?AC():Kl();case 23:return od();case 21:return UE();case 102:return fw();case 131:return oo(Dm)?NT():lI();case 16:return sr();default:return lI()}}function ut(tt){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!tt;case 41:return!tt&&oo(Q2);case 21:return!tt&&oo(ar);default:return Xs()}}function ar(){return Vs(),Wt()===22||NC(!1)||ut()}function Jr(){let tt=Ri(),Jt=xc();for(;!t.hasPrecedingLineBreak();)switch(Wt()){case 54:Vs(),Jt=Zt(C.createJSDocNonNullableType(Jt,!0),tt);break;case 58:if(oo(YA))return Jt;Vs(),Jt=Zt(C.createJSDocNullableType(Jt,!0),tt);break;case 23:if(ws(23),ut()){let kr=tf();ws(24),Jt=Zt(C.createIndexedAccessTypeNode(Jt,kr),tt)}else ws(24),Jt=Zt(C.createArrayTypeNode(Jt),tt);break;default:return Jt}return Jt}function Gn(tt){let Jt=Ri();return ws(tt),Zt(C.createTypeOperatorNode(tt,Ng()),Jt)}function Ts(){if(rc(96)){let tt=iA(tf);if(Sg()||Wt()!==58)return tt}}function Qo(){let tt=Ri(),Jt=Wa(),kr=Ki(Ts),Xr=C.createTypeParameterDeclaration(void 0,Jt,kr);return Zt(Xr,tt)}function vg(){let tt=Ri();return ws(140),Zt(C.createInferTypeNode(Qo()),tt)}function Ng(){let tt=Wt();switch(tt){case 143:case 158:case 148:return Gn(tt);case 140:return vg()}return Nc(Jr)}function Rf(tt){if(sB()){let Jt=Yp(),kr;return iBi(Jt)?kr=tt?ts.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:kr=tt?ts.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,mI(Jt,kr),Jt}}function uI(tt,Jt,kr){let Xr=Ri(),ui=tt===52,Is=rc(tt),Hs=Is&&Rf(ui)||Jt();if(Wt()===tt||Is){let Rs=[Hs];for(;rc(tt);)Rs.push(Rf(ui)||Jt());Hs=Zt(kr(Er(Rs,Xr)),Xr)}return Hs}function Th(){return uI(51,Ng,C.createIntersectionTypeNode)}function oE(){return uI(52,Th,C.createUnionTypeNode)}function TT(){return Vs(),Wt()===105}function sB(){return Wt()===30||Wt()===21&&oo(wy)?!0:Wt()===105||Wt()===128&&oo(TT)}function RT(){if(vee(Wt())&&Le(!1),Xs()||Wt()===110)return Vs(),!0;if(Wt()===23||Wt()===19){let tt=lr.length;return Of(),tt===lr.length}return!1}function wy(){return Vs(),!!(Wt()===22||Wt()===26||RT()&&(Wt()===59||Wt()===28||Wt()===58||Wt()===64||Wt()===22&&(Vs(),Wt()===39)))}function jE(){let tt=Ri(),Jt=Xs()&&Ki(j_),kr=tf();return Jt?Zt(C.createTypePredicateNode(void 0,Jt,kr),tt):kr}function j_(){let tt=Wa();if(Wt()===142&&!t.hasPrecedingLineBreak())return Vs(),tt}function NT(){let tt=Ri(),Jt=il(131),kr=Wt()===110?Na():Wa(),Xr=rc(142)?tf():void 0;return Zt(C.createTypePredicateNode(Jt,kr,Xr),tt)}function tf(){if(Hi&81920)return bo(81920,tf);if(sB())return Yp();let tt=Ri(),Jt=oE();if(!Sg()&&!t.hasPrecedingLineBreak()&&rc(96)){let kr=iA(tf);ws(58);let Xr=Nc(tf);ws(59);let ui=Nc(tf);return Zt(C.createConditionalTypeNode(Jt,kr,Xr,ui),tt)}return Jt}function Ty(){return rc(59)?tf():void 0}function US(){switch(Wt()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return oo(ki);default:return Xs()}}function $I(){if(US())return!0;switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return kT()?!0:Xs()}}function BA(){return Wt()!==19&&Wt()!==100&&Wt()!==86&&Wt()!==60&&$I()}function $A(){let tt=Ul();tt&&ps(!1);let Jt=Ri(),kr=zf(!0),Xr;for(;Xr=sd(28);)kr=q1(kr,Xr,zf(!0),Jt);return tt&&ps(!0),kr}function Qm(){return rc(64)?zf(!0):void 0}function zf(tt){if(mb())return Cb();let Jt=KS(tt)||oB(tt);if(Jt)return Jt;let kr=Ri(),Xr=Do(),ui=zS(0);return ui.kind===80&&Wt()===39?Ry(kr,ui,tt,Xr,void 0):TNe(ui)&&Jvi(Ko())?q1(ui,ZA(),zf(tt),kr):XR(ui,kr,tt)}function mb(){return Wt()===127?Yl()?!0:oo(Ro):!1}function R_(){return Vs(),!t.hasPrecedingLineBreak()&&Xs()}function Cb(){let tt=Ri();return Vs(),!t.hasPrecedingLineBreak()&&(Wt()===42||$I())?Zt(C.createYieldExpression(sd(42),zf(!0)),tt):Zt(C.createYieldExpression(void 0,void 0),tt)}function Ry(tt,Jt,kr,Xr,ui){Zo.assert(Wt()===39,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");let Is=C.createParameterDeclaration(void 0,void 0,Jt,void 0,void 0,void 0);Zt(Is,Jt.pos);let Hs=Er([Is],Is.pos,Is.end),Rs=il(39),ja=jS(!!ui,kr),ho=C.createArrowFunction(ui,void 0,Hs,void 0,Rs,ja);return Hr(Zt(ho,tt),Xr)}function KS(tt){let Jt=_b();if(Jt!==0)return Jt===1?aB(!0,!0):Ki(()=>zE(tt))}function _b(){return Wt()===21||Wt()===30||Wt()===134?oo(z_):Wt()===39?1:0}function z_(){if(Wt()===134&&(Vs(),t.hasPrecedingLineBreak()||Wt()!==21&&Wt()!==30))return 0;let tt=Wt(),Jt=Vs();if(tt===21){if(Jt===22)switch(Vs()){case 39:case 59:case 19:return 1;default:return 0}if(Jt===23||Jt===19)return 2;if(Jt===26)return 1;if(vee(Jt)&&Jt!==134&&oo(ef))return Vs()===130?0:1;if(!Xs()&&Jt!==110)return 0;switch(Vs()){case 59:return 1;case 58:return Vs(),Wt()===59||Wt()===28||Wt()===64||Wt()===22?1:0;case 28:case 64:case 22:return 2}return 0}else return Zo.assert(tt===30),!Xs()&&Wt()!==87?0:Xt===1?oo(()=>{rc(87);let kr=Vs();if(kr===96)switch(Vs()){case 64:case 32:case 44:return!1;default:return!0}else if(kr===28||kr===64)return!0;return!1})?1:0:2}function zE(tt){let Jt=t.getTokenStart();if(Nn!=null&&Nn.has(Jt))return;let kr=aB(!1,tt);return kr||(Nn||(Nn=new Set)).add(Jt),kr}function oB(tt){if(Wt()===134&&oo(DT)===1){let Jt=Ri(),kr=Do(),Xr=ft(),ui=zS(0);return Ry(Jt,ui,tt,kr,Xr)}}function DT(){if(Wt()===134){if(Vs(),t.hasPrecedingLineBreak()||Wt()===39)return 0;let tt=zS(0);if(!t.hasPrecedingLineBreak()&&tt.kind===80&&Wt()===39)return 1}return 0}function aB(tt,Jt){let kr=Ri(),Xr=Do(),ui=ft(),Is=oD(ui,Gbt)?2:0,Hs=gC(),Rs;if(ws(21)){if(tt)Rs=Td(Is,tt);else{let Tb=Td(Is,tt);if(!Tb)return;Rs=Tb}if(!ws(22)&&!tt)return}else{if(!tt)return;Rs=_I()}let ja=Wt()===59,ho=ph(59,!1);if(ho&&!tt&&lp(ho))return;let sl=ho;for(;sl?.kind===196;)sl=sl.type;let Nd=sl&&yec(sl);if(!tt&&Wt()!==39&&(Nd||Wt()!==19))return;let ed=Wt(),Og=il(39),Nh=ed===39||ed===19?jS(oD(ui,Gbt),Jt):Wa();if(!Jt&&ja&&Wt()!==59)return;let o1=C.createArrowFunction(ui,Hs,Rs,ho,Og,Nh);return Hr(Zt(o1,kr),Xr)}function jS(tt,Jt){if(Wt()===19)return cE(tt?2:0);if(Wt()!==27&&Wt()!==100&&Wt()!==86&&Xc()&&!BA())return cE(16|(tt?2:0));let kr=po;po=!1;let Xr=tt?li(()=>zf(Jt)):Ei(()=>zf(Jt));return po=kr,Xr}function XR(tt,Jt,kr){let Xr=sd(58);if(!Xr)return tt;let ui;return Zt(C.createConditionalExpression(tt,Xr,bo(r,()=>zf(!1)),ui=il(59),ANr(ui)?zf(kr):yn(80,!1,ts._0_expected,by(59))),Jt)}function zS(tt){let Jt=Ri(),kr=JR();return X2(tt,kr,Jt)}function qE(tt){return tt===103||tt===165}function X2(tt,Jt,kr){for(;;){Ko();let Xr=KRr(Wt());if(!(Wt()===43?Xr>=tt:Xr>tt)||Wt()===103&&Wc())break;if(Wt()===130||Wt()===152){if(t.hasPrecedingLineBreak())break;{let ui=Wt();Vs(),Jt=ui===152?pn(Jt,tf()):J2(Jt,tf())}}else Jt=q1(Jt,ZA(),zS(Xr),kr)}return Jt}function kT(){return Wc()&&Wt()===103?!1:KRr(Wt())>0}function pn(tt,Jt){return Zt(C.createSatisfiesExpression(tt,Jt),tt.pos)}function q1(tt,Jt,kr,Xr){return Zt(C.createBinaryExpression(tt,Jt,kr),Xr)}function J2(tt,Jt){return Zt(C.createAsExpression(tt,Jt),tt.pos)}function ey(){let tt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru(ty)),tt)}function up(){let tt=Ri();return Zt(C.createDeleteExpression(Ru(ty)),tt)}function Iw(){let tt=Ri();return Zt(C.createTypeOfExpression(Ru(ty)),tt)}function cB(){let tt=Ri();return Zt(C.createVoidExpression(Ru(ty)),tt)}function RD(){return Wt()===135?Xu()?!0:oo(Ro):!1}function Rd(){let tt=Ri();return Zt(C.createAwaitExpression(Ru(ty)),tt)}function JR(){if(cF()){let kr=Ri(),Xr=$1();return Wt()===43?X2(KRr(Wt()),Xr,kr):Xr}let tt=Wt(),Jt=ty();if(Wt()===43){let kr=dj(xt,Jt.pos),{end:Xr}=Jt;Jt.kind===216?_g(kr,Xr,ts.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(Zo.assert(URr(tt)),_g(kr,Xr,ts.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,by(tt)))}return Jt}function ty(){switch(Wt()){case 40:case 41:case 55:case 54:return ey();case 91:return up();case 114:return Iw();case 116:return cB();case 30:return Xt===1?t1(!0,void 0,void 0,!0):rf();case 135:if(RD())return Rd();default:return $1()}}function cF(){switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(Xt!==1)return!1;default:return!0}}function $1(){if(Wt()===46||Wt()===47){let Jt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru($E)),Jt)}else if(Xt===1&&Wt()===30&&oo(_d))return t1(!0);let tt=$E();if(Zo.assert(TNe(tt)),(Wt()===46||Wt()===47)&&!t.hasPrecedingLineBreak()){let Jt=Wt();return Vs(),Zt(C.createPostfixUnaryExpression(tt,Jt),tt.pos)}return tt}function $E(){let tt=Ri(),Jt;return Wt()===102?oo(na)?(vt|=4194304,Jt=ZA()):oo(ko)?(Vs(),Vs(),Jt=Zt(C.createMetaProperty(102,Ca()),tt),vt|=8388608):Jt=N_():Jt=Wt()===108?e1():N_(),r1(tt,Jt)}function N_(){let tt=Ri(),Jt=b0();return Ih(tt,Jt,!0)}function e1(){let tt=Ri(),Jt=ZA();if(Wt()===30){let kr=Ri(),Xr=Ki(hw);Xr!==void 0&&(_g(kr,Ri(),ts.super_may_not_use_type_arguments),xC()||(Jt=C.createExpressionWithTypeArguments(Jt,Xr)))}return Wt()===21||Wt()===25||Wt()===23?Jt:(il(25,ts.super_must_be_followed_by_an_argument_list_or_member_access),Zt(ce(Jt,K(!0,!0,!0)),tt))}function t1(tt,Jt,kr,Xr=!1){let ui=Ri(),Is=Rh(tt),Hs;if(Is.kind===286){let Rs=yb(Is),ja,ho=Rs[Rs.length-1];if(ho?.kind===284&&!hce(ho.openingElement.tagName,ho.closingElement.tagName)&&hce(Is.tagName,ho.closingElement.tagName)){let sl=ho.children.end,Nd=Zt(C.createJsxElement(ho.openingElement,ho.children,Zt(C.createJsxClosingElement(Zt(F(""),sl,sl)),sl,sl)),ho.openingElement.pos,sl);Rs=Er([...Rs.slice(0,Rs.length-1),Nd],Rs.pos,sl),ja=ho.closingElement}else ja=lc(Is,tt),hce(Is.tagName,ja.tagName)||(kr&&tSi(kr)&&hce(ja.tagName,kr.tagName)?mI(Is.tagName,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,Is.tagName)):mI(ja.tagName,ts.Expected_corresponding_JSX_closing_tag_for_0,AJe(xt,Is.tagName)));Hs=Zt(C.createJsxElement(Is,Rs,ja),ui)}else Is.kind===289?Hs=Zt(C.createJsxFragment(Is,yb(Is),fh(tt)),ui):(Zo.assert(Is.kind===285),Hs=Is);if(!Xr&&tt&&Wt()===30){let Rs=typeof Jt>"u"?Hs.pos:Jt,ja=Ki(()=>t1(!0,Rs));if(ja){let ho=yn(28,!1);return j2i(ho,ja.pos,0),_g(dj(xt,Rs),ja.end,ts.JSX_expressions_must_have_one_parent_element),Zt(C.createBinaryExpression(Hs,ho,ja),ui)}}return Hs}function ry(){let tt=Ri(),Jt=C.createJsxText(t.getTokenValue(),qr===13);return qr=t.scanJsxToken(),Zt(Jt,tt)}function xT(tt,Jt){switch(Jt){case 1:if(fec(tt))mI(tt,ts.JSX_fragment_has_no_corresponding_closing_tag);else{let kr=tt.tagName,Xr=Math.min(dj(xt,kr.pos),kr.end);_g(Xr,kr.end,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,tt.tagName))}return;case 31:case 7:return;case 12:case 13:return ry();case 19:return ND(!1);case 30:return t1(!1,void 0,tt);default:return Zo.assertNever(Jt)}}function yb(tt){let Jt=[],kr=Ri(),Xr=Fn;for(Fn|=16384;;){let ui=xT(tt,qr=t.reScanJsxToken());if(!ui||(Jt.push(ui),tSi(tt)&&ui?.kind===284&&!hce(ui.openingElement.tagName,ui.closingElement.tagName)&&hce(tt.tagName,ui.closingElement.tagName)))break}return Fn=Xr,Er(Jt,kr)}function r_(){let tt=Ri();return Zt(C.createJsxAttributes(jd(13,DD)),tt)}function Rh(tt){let Jt=Ri();if(ws(30),Wt()===32)return Uf(),Zt(C.createJsxOpeningFragment(),Jt);let kr=bb(),Xr=Hi&524288?void 0:xn(),ui=r_(),Is;return Wt()===32?(Uf(),Is=C.createJsxOpeningElement(kr,Xr,ui)):(ws(44),ws(32,void 0,!1)&&(tt?Vs():Uf()),Is=C.createJsxSelfClosingElement(kr,Xr,ui)),Zt(Is,Jt)}function bb(){let tt=Ri(),Jt=lB();if(CBi(Jt))return Jt;let kr=Jt;for(;rc(25);)kr=Zt(ce(kr,K(!0,!1,!1)),tt);return kr}function lB(){let tt=Ri();dl();let Jt=Wt()===110,kr=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(kr,ld()),tt)):Jt?Zt(C.createToken(110),tt):kr}function ND(tt){let Jt=Ri();if(!ws(19))return;let kr,Xr;return Wt()!==20&&(tt||(kr=sd(26)),Xr=$A()),tt?ws(20):ws(20,void 0,!1)&&Uf(),Zt(C.createJsxExpression(kr,Xr),Jt)}function DD(){if(Wt()===19)return UR();let tt=Ri();return Zt(C.createJsxAttribute(kD(),q_()),tt)}function q_(){if(Wt()===64){if(Kd()===11)return ra();if(Wt()===19)return ND(!0);if(Wt()===30)return t1(!0);Da(ts.or_JSX_element_expected)}}function kD(){let tt=Ri();dl();let Jt=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(Jt,ld()),tt)):Jt}function UR(){let tt=Ri();ws(19),ws(26);let Jt=$A();return ws(20),Zt(C.createJsxSpreadAttribute(Jt),tt)}function lc(tt,Jt){let kr=Ri();ws(31);let Xr=bb();return ws(32,void 0,!1)&&(Jt||!hce(tt.tagName,Xr)?Vs():Uf()),Zt(C.createJsxClosingElement(Xr),kr)}function fh(tt){let Jt=Ri();return ws(31),ws(32,ts.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(tt?Vs():Uf()),Zt(C.createJsxJsxClosingFragment(),Jt)}function rf(){Zo.assert(Xt!==1,"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");let tt=Ri();ws(30);let Jt=tf();ws(32);let kr=ty();return Zt(C.createTypeAssertion(Jt,kr),tt)}function yI(){return Vs(),H1(Wt())||Wt()===23||xC()}function aE(){return Wt()===29&&oo(yI)}function qS(tt){if(tt.flags&64)return!0;if(Vbt(tt)){let Jt=tt.expression;for(;Vbt(Jt)&&!(Jt.flags&64);)Jt=Jt.expression;if(Jt.flags&64){for(;Vbt(tt);)tt.flags|=64,tt=tt.expression;return!0}}return!1}function Qp(tt,Jt,kr){let Xr=K(!0,!0,!0),ui=kr||qS(Jt),Is=ui?fe(Jt,kr,Xr):ce(Jt,Xr);if(ui&&Yme(Is.name)&&mI(Is.name,ts.An_optional_chain_cannot_contain_private_identifiers),aec(Jt)&&Jt.typeArguments){let Hs=Jt.typeArguments.pos-1,Rs=dj(xt,Jt.typeArguments.end)+1;_g(Hs,Rs,ts.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return Zt(Is,tt)}function uB(tt,Jt,kr){let Xr;if(Wt()===24)Xr=yn(80,!0,ts.An_element_access_expression_should_take_an_argument);else{let Is=gc($A);eEt(Is)&&(Is.text=ls(Is.text)),Xr=Is}ws(24);let ui=kr||qS(Jt)?de(Jt,kr,Xr):ue(Jt,Xr);return Zt(ui,tt)}function Ih(tt,Jt,kr){for(;;){let Xr,ui=!1;if(kr&&aE()?(Xr=il(29),ui=H1(Wt())):ui=rc(25),ui){Jt=Qp(tt,Jt,Xr);continue}if((Xr||!Ul())&&rc(23)){Jt=uB(tt,Jt,Xr);continue}if(xC()){Jt=!Xr&&Jt.kind===233?$_(tt,Jt.expression,Xr,Jt.typeArguments):$_(tt,Jt,Xr,void 0);continue}if(!Xr){if(Wt()===54&&!t.hasPrecedingLineBreak()){Vs(),Jt=Zt(C.createNonNullExpression(Jt),tt);continue}let Is=Ki(hw);if(Is){Jt=Zt(C.createExpressionWithTypeArguments(Jt,Is),tt);continue}}return Jt}}function xC(){return Wt()===15||Wt()===16}function $_(tt,Jt,kr,Xr){let ui=C.createTaggedTemplateExpression(Jt,Xr,Wt()===15?(OA(!0),ra()):gt(!0));return(kr||Jt.flags&64)&&(ui.flags|=64),ui.questionDotToken=kr,Zt(ui,tt)}function r1(tt,Jt){for(;;){Jt=Ih(tt,Jt,!0);let kr,Xr=sd(29);if(Xr&&(kr=Ki(hw),xC())){Jt=$_(tt,Jt,Xr,kr);continue}if(kr||Wt()===21){!Xr&&Jt.kind===233&&(kr=Jt.typeArguments,Jt=Jt.expression);let ui=gB(),Is=Xr||qS(Jt)?Se(Jt,Xr,kr,ui):be(Jt,kr,ui);Jt=Zt(Is,tt);continue}if(Xr){let ui=yn(80,!1,ts.Identifier_expected);Jt=Zt(fe(Jt,Xr,ui),tt)}break}return Jt}function gB(){ws(21);let tt=Kf(11,bI);return ws(22),tt}function hw(){if(Hi&524288||GA()!==30)return;Vs();let tt=Kf(20,tf);if(Ko()===32)return Vs(),tt&>()?tt:void 0}function GT(){switch(Wt()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return t.hasPrecedingLineBreak()||kT()||!$I()}function b0(){switch(Wt()){case 15:t.getTokenFlags()&26656&&OA(!1);case 9:case 10:case 11:return ra();case 110:case 108:case 106:case 112:case 97:return ZA();case 21:return ia();case 23:return ag();case 19:return n1();case 134:if(!oo(t2))break;return U2();case 60:return Ur();case 86:return mi();case 100:return U2();case 105:return n_();case 44:case 69:if(Eg()===14)return ra();break;case 16:return gt(!1);case 81:return so()}return Wa(ts.Expression_expected)}function ia(){let tt=Ri(),Jt=Do();ws(21);let kr=gc($A);return ws(22),Hr(Zt(k(kr),tt),Jt)}function e2(){let tt=Ri();ws(26);let Jt=zf(!0);return Zt(C.createSpreadElement(Jt),tt)}function yd(){return Wt()===26?e2():Wt()===28?Zt(C.createOmittedExpression(),Ri()):zf(!0)}function bI(){return bo(r,yd)}function ag(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(23),Xr=t.hasPrecedingLineBreak(),ui=Kf(15,yd);return Fl(23,24,kr,Jt),Zt(ae(ui,Xr),tt)}function Eb(){let tt=Ri(),Jt=Do();if(sd(26)){let ho=zf(!0);return Hr(Zt(C.createSpreadAssignment(ho),tt),Jt)}let kr=Le(!0);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);let Xr=sd(42),ui=Xs(),Is=df(),Hs=sd(58),Rs=sd(54);if(Xr||Wt()===21||Wt()===30)return vb(tt,Jt,kr,Xr,Is,Hs,Rs);let ja;if(ui&&Wt()!==59){let ho=sd(64),sl=ho?gc(()=>zf(!0)):void 0;ja=C.createShorthandPropertyAssignment(Is,sl),ja.equalsToken=ho}else{ws(59);let ho=gc(()=>zf(!0));ja=C.createPropertyAssignment(Is,ho)}return ja.modifiers=kr,ja.questionToken=Hs,ja.exclamationToken=Rs,Hr(Zt(ja,tt),Jt)}function n1(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(19),Xr=t.hasPrecedingLineBreak(),ui=Kf(12,Eb,!0);return Fl(19,20,kr,Jt),Zt(ne(ui,Xr),tt)}function U2(){let tt=Ul();ps(!1);let Jt=Ri(),kr=Do(),Xr=Le(!1);ws(100);let ui=sd(42),Is=ui?1:0,Hs=oD(Xr,Gbt)?2:0,Rs=Is&&Hs?Ps(e0):Is?ma(e0):Hs?li(e0):e0(),ja=gC(),ho=Mc(Is|Hs),sl=ph(59,!1),Nd=cE(Is|Hs);ps(tt);let ed=C.createFunctionExpression(Xr,ui,Rs,ja,ho,sl,Nd);return Hr(Zt(ed,Jt),kr)}function e0(){return cc()?Fs():void 0}function n_(){let tt=Ri();if(ws(105),rc(25)){let Is=Ca();return Zt(C.createMetaProperty(105,Is),tt)}let Jt=Ri(),kr=Ih(Jt,b0(),!1),Xr;kr.kind===233&&(Xr=kr.typeArguments,kr=kr.expression),Wt()===29&&Da(ts.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,AJe(xt,kr));let ui=Wt()===21?gB():void 0;return Zt(De(kr,Xr,ui),tt)}function Xp(tt,Jt){let kr=Ri(),Xr=Do(),ui=t.getTokenStart(),Is=ws(19,Jt);if(Is||tt){let Hs=t.hasPrecedingLineBreak(),Rs=jd(1,Am);Fl(19,20,Is,ui);let ja=Hr(Zt(et(Rs,Hs),kr),Xr);return Wt()===64&&(Da(ts.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),Vs()),ja}else{let Hs=_I();return Hr(Zt(et(Hs,void 0),kr),Xr)}}function cE(tt,Jt){let kr=Yl();Qi(!!(tt&1));let Xr=Xu();yo(!!(tt&2));let ui=po;po=!1;let Is=Ul();Is&&ps(!1);let Hs=Xp(!!(tt&16),Jt);return Is&&ps(!0),po=ui,Qi(kr),yo(Xr),Hs}function lE(){let tt=Ri(),Jt=Do();return ws(27),Hr(Zt(C.createEmptyStatement(),tt),Jt)}function Ip(){let tt=Ri(),Jt=Do();ws(101);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am(),Hs=rc(93)?Am():void 0;return Hr(Zt(je(ui,Is,Hs),tt),Jt)}function Xh(){let tt=Ri(),Jt=Do();ws(92);let kr=Am();ws(117);let Xr=t.getTokenStart(),ui=ws(21),Is=gc($A);return Fl(21,22,ui,Xr),rc(27),Hr(Zt(C.createDoStatement(kr,Is),tt),Jt)}function E0(){let tt=Ri(),Jt=Do();ws(117);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am();return Hr(Zt(St(ui,Is),tt),Jt)}function aA(){let tt=Ri(),Jt=Do();ws(99);let kr=sd(135);ws(21);let Xr;Wt()!==27&&(Wt()===115||Wt()===121||Wt()===87||Wt()===160&&oo(yL)||Wt()===135&&oo(ny)?Xr=j(!0):Xr=Cg($A));let ui;if(kr?ws(165):rc(165)){let Is=gc(()=>zf(!0));ws(22),ui=Yt(kr,Xr,Is,Am())}else if(rc(103)){let Is=gc($A);ws(22),ui=C.createForInStatement(Xr,Is,Am())}else{ws(27);let Is=Wt()!==27&&Wt()!==22?gc($A):void 0;ws(27);let Hs=Wt()!==22?gc($A):void 0;ws(22),ui=At(Xr,Is,Hs,Am())}return Hr(Zt(ui,tt),Jt)}function fu(tt){let Jt=Ri(),kr=Do();ws(tt===252?83:88);let Xr=yg()?void 0:Wa();MA();let ui=tt===252?C.createBreakStatement(Xr):C.createContinueStatement(Xr);return Hr(Zt(ui,Jt),kr)}function Jp(){let tt=Ri(),Jt=Do();ws(107);let kr=yg()?void 0:gc($A);return MA(),Hr(Zt(C.createReturnStatement(kr),tt),Jt)}function dC(){let tt=Ri(),Jt=Do();ws(118);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Qa(67108864,Am);return Hr(Zt(C.createWithStatement(ui,Is),tt),Jt)}function uE(){let tt=Ri(),Jt=Do();ws(84);let kr=gc($A);ws(59);let Xr=jd(3,Am);return Hr(Zt(C.createCaseClause(kr,Xr),tt),Jt)}function eh(){let tt=Ri();ws(90),ws(59);let Jt=jd(3,Am);return Zt(C.createDefaultClause(Jt),tt)}function Wf(){return Wt()===84?uE():eh()}function Mo(){let tt=Ri();ws(19);let Jt=jd(2,Wf);return ws(20),Zt(C.createCaseBlock(Jt),tt)}function gp(){let tt=Ri(),Jt=Do();ws(109),ws(21);let kr=gc($A);ws(22);let Xr=Mo();return Hr(Zt(C.createSwitchStatement(kr,Xr),tt),Jt)}function lF(){let tt=Ri(),Jt=Do();ws(111);let kr=t.hasPrecedingLineBreak()?void 0:gc($A);return kr===void 0&&(jt++,kr=Zt(F(""),Ri())),Mp()||Ma(kr),Hr(Zt(C.createThrowStatement(kr),tt),Jt)}function uF(){let tt=Ri(),Jt=Do();ws(113);let kr=Xp(!1),Xr=Wt()===85?gE():void 0,ui;return(!Xr||Wt()===98)&&(ws(98,ts.catch_or_finally_expected),ui=Xp(!1)),Hr(Zt(C.createTryStatement(kr,Xr,ui),tt),Jt)}function gE(){let tt=Ri();ws(85);let Jt;rc(21)?(Jt=Vd(),ws(22)):Jt=void 0;let kr=Xp(!1);return Zt(C.createCatchClause(Jt,kr),tt)}function FT(){let tt=Ri(),Jt=Do();return ws(89),MA(),Hr(Zt(C.createDebuggerStatement(),tt),Jt)}function Np(){let tt=Ri(),Jt=Do(),kr,Xr=Wt()===21,ui=gc($A);return $C(ui)&&rc(59)?kr=C.createLabeledStatement(ui,Am()):(Mp()||Ma(ui),kr=Me(ui),Xr&&(Jt=!1)),Hr(Zt(kr,tt),Jt)}function Dm(){return Vs(),H1(Wt())&&!t.hasPrecedingLineBreak()}function Dp(){return Vs(),Wt()===86&&!t.hasPrecedingLineBreak()}function t2(){return Vs(),Wt()===100&&!t.hasPrecedingLineBreak()}function Ro(){return Vs(),(H1(Wt())||Wt()===9||Wt()===10||Wt()===11)&&!t.hasPrecedingLineBreak()}function AE(){for(;;)switch(Wt()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return Ou();case 135:return hp();case 120:case 156:return R_();case 144:case 145:return qf();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:let tt=Wt();if(Vs(),t.hasPrecedingLineBreak())return!1;if(tt===138&&Wt()===156)return!0;continue;case 162:return Vs(),Wt()===19||Wt()===80||Wt()===95;case 102:return Vs(),Wt()===11||Wt()===42||Wt()===19||H1(Wt());case 95:let Jt=Vs();if(Jt===156&&(Jt=oo(Vs)),Jt===64||Jt===42||Jt===19||Jt===90||Jt===130||Jt===60)return!0;continue;case 126:Vs();continue;default:return!1}}function AB(){return oo(AE)}function Xc(){switch(Wt()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:return!0;case 102:return AB()||oo(ki);case 87:case 95:return AB();case 134:case 138:case 120:case 144:case 145:case 156:case 162:return!0;case 129:case 125:case 123:case 124:case 126:case 148:return AB()||!oo(Dm);default:return $I()}}function iu(){return Vs(),cc()||Wt()===19||Wt()===23}function dE(){return oo(iu)}function yL(){return KR(!0)}function KR(tt){return Vs(),tt&&Wt()===165?!1:(cc()||Wt()===19)&&!t.hasPrecedingLineBreak()}function Ou(){return oo(KR)}function ny(tt){return Vs()===160?KR(tt):!1}function hp(){return oo(ny)}function Am(){switch(Wt()){case 27:return lE();case 19:return Xp(!1);case 115:return Id(Ri(),Do(),void 0);case 121:if(dE())return Id(Ri(),Do(),void 0);break;case 135:if(hp())return Id(Ri(),Do(),void 0);break;case 160:if(Ou())return Id(Ri(),Do(),void 0);break;case 100:return fB(Ri(),Do(),void 0);case 86:return Vi(Ri(),Do(),void 0);case 101:return Ip();case 92:return Xh();case 117:return E0();case 99:return aA();case 88:return fu(251);case 83:return fu(252);case 107:return Jp();case 118:return dC();case 109:return gp();case 111:return lF();case 113:case 85:case 98:return uF();case 89:return FT();case 60:return i_();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(AB())return i_();break}return Np()}function K2(tt){return tt.kind===138}function i_(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(oD(kr,K2)){let Xr=dB(tt);if(Xr)return Xr;for(let ui of kr)ui.flags|=33554432;return Qa(33554432,()=>ZT(tt,Jt,kr))}else return ZT(tt,Jt,kr)}function dB(tt){return Qa(33554432,()=>{let Jt=Hp(Fn,tt);if(Jt)return uC(Jt)})}function ZT(tt,Jt,kr){switch(Wt()){case 115:case 121:case 87:case 160:case 135:return Id(tt,Jt,kr);case 100:return fB(tt,Jt,kr);case 86:return Vi(tt,Jt,kr);case 120:return Po(tt,Jt,kr);case 156:return ec(tt,Jt,kr);case 94:return dc(tt,Jt,kr);case 162:case 144:case 145:return $f(tt,Jt,kr);case 102:return qO(tt,Jt,kr);case 95:switch(Vs(),Wt()){case 90:case 64:return sY(tt,Jt,kr);case 130:return Yu(tt,Jt,kr);default:return iy(tt,Jt,kr)}default:if(kr){let Xr=yn(282,!0,ts.Declaration_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}return}}function Cx(){return Vs()===11}function pB(){return Vs(),Wt()===161||Wt()===64}function qf(){return Vs(),!t.hasPrecedingLineBreak()&&(Xs()||Wt()===11)}function Jh(tt,Jt){if(Wt()!==19){if(tt&4){Pf();return}if(yg()){MA();return}}return cE(tt,Jt)}function $S(){let tt=Ri();if(Wt()===28)return Zt(C.createOmittedExpression(),tt);let Jt=sd(26),kr=Of(),Xr=Qm();return Zt(C.createBindingElement(Jt,void 0,kr,Xr),tt)}function Sb(){let tt=Ri(),Jt=sd(26),kr=cc(),Xr=df(),ui;kr&&Wt()!==59?(ui=Xr,Xr=void 0):(ws(59),ui=Of());let Is=Qm();return Zt(C.createBindingElement(Jt,Xr,ui,Is),tt)}function mp(){let tt=Ri();ws(19);let Jt=gc(()=>Kf(9,Sb));return ws(20),Zt(C.createObjectBindingPattern(Jt),tt)}function r2(){let tt=Ri();ws(23);let Jt=gc(()=>Kf(10,$S));return ws(24),Zt(C.createArrayBindingPattern(Jt),tt)}function i1(){return Wt()===19||Wt()===23||Wt()===81||cc()}function Of(tt){return Wt()===23?r2():Wt()===19?mp():Fs(tt)}function pE(){return Vd(!0)}function Vd(tt){let Jt=Ri(),kr=Do(),Xr=Of(ts.Private_identifiers_are_not_allowed_in_variable_declarations),ui;tt&&Xr.kind===80&&Wt()===54&&!t.hasPrecedingLineBreak()&&(ui=ZA());let Is=Ty(),Hs=qE(Wt())?void 0:Qm(),Rs=Tr(Xr,ui,Is,Hs);return Hr(Zt(Rs,Jt),kr)}function j(tt){let Jt=Ri(),kr=0;switch(Wt()){case 115:break;case 121:kr|=1;break;case 87:kr|=2;break;case 160:kr|=4;break;case 135:Zo.assert(hp()),kr|=6,Vs();break;default:Zo.fail()}Vs();let Xr;if(Wt()===165&&oo(Z))Xr=_I();else{let ui=Wc();Or(tt),Xr=Kf(8,tt?Vd:pE),Or(ui)}return Zt(Nr(Xr,kr),Jt)}function Z(){return ef()&&Vs()===22}function Id(tt,Jt,kr){let Xr=j(!1);MA();let ui=ct(kr,Xr);return Hr(Zt(ui,tt),Jt)}function fB(tt,Jt,kr){let Xr=Xu(),ui=fO(kr);ws(100);let Is=sd(42),Hs=ui&2048?e0():Fs(),Rs=Is?1:0,ja=ui&1024?2:0,ho=gC();ui&32&&yo(!0);let sl=Mc(Rs|ja),Nd=ph(59,!1),ed=Jh(Rs|ja,ts.or_expected);yo(Xr);let Og=C.createFunctionDeclaration(kr,Is,Hs,ho,sl,Nd,ed);return Hr(Zt(Og,tt),Jt)}function ev(){if(Wt()===137)return ws(137);if(Wt()===11&&oo(Vs)===21)return Ki(()=>{let tt=ra();return tt.text==="constructor"?tt:void 0})}function Ny(tt,Jt,kr){return Ki(()=>{if(ev()){let Xr=gC(),ui=Mc(0),Is=ph(59,!1),Hs=Jh(0,ts.or_expected),Rs=C.createConstructorDeclaration(kr,ui,Hs);return Rs.typeParameters=Xr,Rs.type=Is,Hr(Zt(Rs,tt),Jt)}})}function vb(tt,Jt,kr,Xr,ui,Is,Hs,Rs){let ja=Xr?1:0,ho=oD(kr,Gbt)?2:0,sl=gC(),Nd=Mc(ja|ho),ed=ph(59,!1),Og=Jh(ja|ho,Rs),Nh=C.createMethodDeclaration(kr,Xr,ui,Is,sl,Nd,ed,Og);return Nh.exclamationToken=Hs,Hr(Zt(Nh,tt),Jt)}function xD(tt,Jt,kr,Xr,ui){let Is=!ui&&!t.hasPrecedingLineBreak()?sd(54):void 0,Hs=Ty(),Rs=bo(90112,Qm);Tf(Xr,Hs,Rs);let ja=C.createPropertyDeclaration(kr,Xr,ui||Is,Hs,Rs);return Hr(Zt(ja,tt),Jt)}function IB(tt,Jt,kr){let Xr=sd(42),ui=df(),Is=sd(58);return Xr||Wt()===21||Wt()===30?vb(tt,Jt,kr,Xr,ui,Is,void 0,ts.or_expected):xD(tt,Jt,kr,ui,Is)}function Bb(tt,Jt,kr,Xr,ui){let Is=df(),Hs=gC(),Rs=Mc(0),ja=ph(59,!1),ho=Jh(ui),sl=Xr===177?C.createGetAccessorDeclaration(kr,Is,Rs,ja,ho):C.createSetAccessorDeclaration(kr,Is,Rs,ho);return sl.typeParameters=Hs,jbt(sl)&&(sl.type=ja),Hr(Zt(sl,tt),Jt)}function bL(){let tt;if(Wt()===60)return!0;for(;vee(Wt());){if(tt=Wt(),Sza(tt))return!0;Vs()}if(Wt()===42||(Rp()&&(tt=Wt(),Vs()),Wt()===23))return!0;if(tt!==void 0){if(!Cce(tt)||tt===153||tt===139)return!0;switch(Wt()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return yg()}}return!1}function gF(tt,Jt,kr){il(126);let Xr=x(),ui=Hr(Zt(C.createClassStaticBlockDeclaration(Xr),tt),Jt);return ui.modifiers=kr,ui}function x(){let tt=Yl(),Jt=Xu();Qi(!1),yo(!0);let kr=Xp(!1);return Qi(tt),yo(Jt),kr}function L(){if(Xu()&&Wt()===135){let tt=Ri(),Jt=Wa(ts.Expression_expected);Vs();let kr=Ih(tt,Jt,!0);return r1(tt,kr)}return $E()}function te(){let tt=Ri();if(!rc(60))return;let Jt=vu(L);return Zt(C.createDecorator(Jt),tt)}function Re(tt,Jt,kr){let Xr=Ri(),ui=Wt();if(Wt()===87&&Jt){if(!Ki(Ml))return}else if(kr&&Wt()===126&&oo(z2)||tt&&Wt()===126||!aa())return;return Zt(X(ui),Xr)}function Le(tt,Jt,kr){let Xr=Ri(),ui,Is,Hs,Rs=!1,ja=!1,ho=!1;if(tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is);for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs),ja=!0;if(ja&&tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is),ho=!0;if(ho)for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs);return ui&&Er(ui,Xr)}function ft(){let tt;if(Wt()===134){let Jt=Ri();Vs();let kr=Zt(X(134),Jt);tt=Er([kr],Jt)}return tt}function dr(){let tt=Ri(),Jt=Do();if(Wt()===27)return Vs(),Hr(Zt(C.createSemicolonClassElement(),tt),Jt);let kr=Le(!0,!0,!0);if(Wt()===126&&oo(z2))return gF(tt,Jt,kr);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);if(Wt()===137||Wt()===11){let Xr=Ny(tt,Jt,kr);if(Xr)return Xr}if(eA())return XS(tt,Jt,kr);if(H1(Wt())||Wt()===11||Wt()===9||Wt()===10||Wt()===42||Wt()===23)if(oD(kr,K2)){for(let Xr of kr)Xr.flags|=33554432;return Qa(33554432,()=>IB(tt,Jt,kr))}else return IB(tt,Jt,kr);if(kr){let Xr=yn(80,!0,ts.Declaration_expected);return xD(tt,Jt,kr,Xr,void 0)}return Zo.fail("Should not have attempted to parse class member declaration.")}function Ur(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(Wt()===86)return Ta(tt,Jt,kr,231);let Xr=yn(282,!0,ts.Expression_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}function mi(){return Ta(Ri(),Do(),void 0,231)}function Vi(tt,Jt,kr){return Ta(tt,Jt,kr,263)}function Ta(tt,Jt,kr,Xr){let ui=Xu();ws(86);let Is=Sl(),Hs=gC();oD(kr,T$a)&&yo(!0);let Rs=Wg(),ja;ws(19)?(ja=Ci(),ws(20)):ja=_I(),yo(ui);let ho=Xr===263?C.createClassDeclaration(kr,Is,Hs,Rs,ja):C.createClassExpression(kr,Is,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function Sl(){return cc()&&!Ho()?oa(cc()):void 0}function Ho(){return Wt()===119&&oo(ip)}function Wg(){if(rn())return jd(22,cA)}function cA(){let tt=Ri(),Jt=Wt();Zo.assert(Jt===96||Jt===119),Vs();let kr=Kf(7,th);return Zt(C.createHeritageClause(Jt,kr),tt)}function th(){let tt=Ri(),Jt=$E();if(Jt.kind===233)return Jt;let kr=xn();return Zt(C.createExpressionWithTypeArguments(Jt,kr),tt)}function xn(){return Wt()===30?iE(20,tf,30,32):void 0}function rn(){return Wt()===96||Wt()===119}function Ci(){return jd(5,dr)}function Po(tt,Jt,kr){ws(120);let Xr=Wa(),ui=gC(),Is=Wg(),Hs=fd(),Rs=C.createInterfaceDeclaration(kr,Xr,ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function ec(tt,Jt,kr){ws(156),t.hasPrecedingLineBreak()&&Da(ts.Line_break_not_permitted_here);let Xr=Wa(),ui=gC();ws(64);let Is=Wt()===141&&Ki(JS)||tf();MA();let Hs=C.createTypeAliasDeclaration(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}function Ra(){let tt=Ri(),Jt=Do(),kr=df(),Xr=gc(Qm);return Hr(Zt(C.createEnumMember(kr,Xr),tt),Jt)}function dc(tt,Jt,kr){ws(94);let Xr=Wa(),ui;ws(19)?(ui=Xa(()=>Kf(6,Ra)),ws(20)):ui=_I();let Is=C.createEnumDeclaration(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function Iu(){let tt=Ri(),Jt;return ws(19)?(Jt=jd(1,Am),ws(20)):Jt=_I(),Zt(C.createModuleBlock(Jt),tt)}function Cl(tt,Jt,kr,Xr){let ui=Xr&32,Is=Xr&8?Ca():Wa(),Hs=rc(25)?Cl(Ri(),!1,void 0,8|ui):Iu(),Rs=C.createModuleDeclaration(kr,Is,Hs,Xr);return Hr(Zt(Rs,tt),Jt)}function wl(tt,Jt,kr){let Xr=0,ui;Wt()===162?(ui=Wa(),Xr|=2048):(ui=ra(),ui.text=ls(ui.text));let Is;Wt()===19?Is=Iu():MA();let Hs=C.createModuleDeclaration(kr,ui,Is,Xr);return Hr(Zt(Hs,tt),Jt)}function $f(tt,Jt,kr){let Xr=0;if(Wt()===162)return wl(tt,Jt,kr);if(rc(145))Xr|=32;else if(ws(144),Wt()===11)return wl(tt,Jt,kr);return Cl(tt,Jt,kr,Xr)}function j2(){return Wt()===149&&oo(_x)}function _x(){return Vs()===21}function z2(){return Vs()===19}function tv(){return Vs()===44}function Yu(tt,Jt,kr){ws(130),ws(145);let Xr=Wa();MA();let ui=C.createNamespaceExportDeclaration(Xr);return ui.modifiers=kr,Hr(Zt(ui,tt),Jt)}function qO(tt,Jt,kr){ws(102);let Xr=t.getTokenFullStart(),ui;Xs()&&(ui=Wa());let Is=!1;if(ui?.escapedText==="type"&&(Wt()!==161||Xs()&&oo(pB))&&(Xs()||iY())&&(Is=!0,ui=Xs()?Wa():void 0),ui&&!LT())return GD(tt,Jt,kr,ui,Is);let Hs=hB(ui,Xr,Is),Rs=FD(),ja=mw();MA();let ho=C.createImportDeclaration(kr,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function hB(tt,Jt,kr,Xr=!1){let ui;return(tt||Wt()===42||Wt()===19)&&(ui=dF(tt,Jt,kr,Xr),ws(161)),ui}function mw(){let tt=Wt();if((tt===118||tt===132)&&!t.hasPrecedingLineBreak())return $O(tt)}function AF(){let tt=Ri(),Jt=H1(Wt())?Ca():Bl(11);ws(59);let kr=zf(!0);return Zt(C.createImportAttribute(Jt,kr),tt)}function $O(tt,Jt){let kr=Ri();Jt||ws(tt);let Xr=t.getTokenStart();if(ws(19)){let ui=t.hasPrecedingLineBreak(),Is=Kf(24,AF,!0);if(!ws(20)){let Hs=Vme(lr);Hs&&Hs.code===ts._0_expected.code&&Dbt(Hs,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Zt(C.createImportAttributes(Is,ui,tt),kr)}else{let ui=Er([],Ri(),void 0,!1);return Zt(C.createImportAttributes(ui,!1,tt),kr)}}function iY(){return Wt()===42||Wt()===19}function LT(){return Wt()===28||Wt()===161}function GD(tt,Jt,kr,Xr,ui){ws(64);let Is=EL();MA();let Hs=C.createImportEqualsDeclaration(kr,ui,Xr,Is);return Hr(Zt(Hs,tt),Jt)}function dF(tt,Jt,kr,Xr){let ui;return(!tt||rc(28))&&(Xr&&t.setSkipJsDocLeadingAsterisks(!0),ui=Wt()===42?fE():bd(275),Xr&&t.setSkipJsDocLeadingAsterisks(!1)),Zt(C.createImportClause(kr,tt,ui),Jt)}function EL(){return j2()?ff():se(!1)}function ff(){let tt=Ri();ws(149),ws(21);let Jt=FD();return ws(22),Zt(C.createExternalModuleReference(Jt),tt)}function FD(){if(Wt()===11){let tt=ra();return tt.text=ls(tt.text),tt}else return $A()}function fE(){let tt=Ri();ws(42),ws(130);let Jt=Wa();return Zt(C.createNamespaceImport(Jt),tt)}function n2(){return H1(Wt())||Wt()===11}function mB(tt){return Wt()===11?ra():tt()}function bd(tt){let Jt=Ri(),kr=tt===275?C.createNamedImports(iE(23,Uh,19,20)):C.createNamedExports(iE(23,s1,19,20));return Zt(kr,Jt)}function s1(){let tt=Do();return Hr(wb(281),tt)}function Uh(){return wb(276)}function wb(tt){let Jt=Ri(),kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Is=!1,Hs,Rs=!0,ja=mB(Ca);if(ja.kind===80&&ja.escapedText==="type")if(Wt()===130){let Nd=Ca();if(Wt()===130){let ed=Ca();n2()?(Is=!0,Hs=Nd,ja=mB(sl),Rs=!1):(Hs=ja,ja=ed,Rs=!1)}else n2()?(Hs=ja,Rs=!1,ja=mB(sl)):(Is=!0,ja=Nd)}else n2()&&(Is=!0,ja=mB(sl));Rs&&Wt()===130&&(Hs=ja,ws(130),ja=mB(sl)),tt===276&&(ja.kind!==80?(_g(dj(xt,ja.pos),ja.end,ts.Identifier_expected),ja=Ece(yn(80,!1),ja.pos,ja.pos)):kr&&_g(Xr,ui,ts.Identifier_expected));let ho=tt===276?C.createImportSpecifier(Is,Hs,ja):C.createExportSpecifier(Is,Hs,ja);return Zt(ho,Jt);function sl(){return kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Ca()}}function Uu(tt){return Zt(C.createNamespaceExport(mB(Ca)),tt)}function iy(tt,Jt,kr){let Xr=Xu();yo(!0);let ui,Is,Hs,Rs=rc(156),ja=Ri();rc(42)?(rc(130)&&(ui=Uu(ja)),ws(161),Is=FD()):(ui=bd(279),(Wt()===161||Wt()===11&&!t.hasPrecedingLineBreak())&&(ws(161),Is=FD()));let ho=Wt();Is&&(ho===118||ho===132)&&!t.hasPrecedingLineBreak()&&(Hs=$O(ho)),MA(),yo(Xr);let sl=C.createExportDeclaration(kr,Rs,ui,Is,Hs);return Hr(Zt(sl,tt),Jt)}function sY(tt,Jt,kr){let Xr=Xu();yo(!0);let ui;rc(64)?ui=!0:ws(90);let Is=zf(!0);MA(),yo(Xr);let Hs=C.createExportAssignment(kr,ui,Is);return Hr(Zt(Hs,tt),Jt)}let oY;(tt=>{tt[tt.SourceElements=0]="SourceElements",tt[tt.BlockStatements=1]="BlockStatements",tt[tt.SwitchClauses=2]="SwitchClauses",tt[tt.SwitchClauseStatements=3]="SwitchClauseStatements",tt[tt.TypeMembers=4]="TypeMembers",tt[tt.ClassMembers=5]="ClassMembers",tt[tt.EnumMembers=6]="EnumMembers",tt[tt.HeritageClauseElement=7]="HeritageClauseElement",tt[tt.VariableDeclarations=8]="VariableDeclarations",tt[tt.ObjectBindingElements=9]="ObjectBindingElements",tt[tt.ArrayBindingElements=10]="ArrayBindingElements",tt[tt.ArgumentExpressions=11]="ArgumentExpressions",tt[tt.ObjectLiteralMembers=12]="ObjectLiteralMembers",tt[tt.JsxAttributes=13]="JsxAttributes",tt[tt.JsxChildren=14]="JsxChildren",tt[tt.ArrayLiteralMembers=15]="ArrayLiteralMembers",tt[tt.Parameters=16]="Parameters",tt[tt.JSDocParameters=17]="JSDocParameters",tt[tt.RestProperties=18]="RestProperties",tt[tt.TypeParameters=19]="TypeParameters",tt[tt.TypeArguments=20]="TypeArguments",tt[tt.TupleElementTypes=21]="TupleElementTypes",tt[tt.HeritageClauses=22]="HeritageClauses",tt[tt.ImportOrExportSpecifiers=23]="ImportOrExportSpecifiers",tt[tt.ImportAttributes=24]="ImportAttributes",tt[tt.JSDocComment=25]="JSDocComment",tt[tt.Count=26]="Count"})(oY||(oY={}));let jR;(tt=>{tt[tt.False=0]="False",tt[tt.True=1]="True",tt[tt.Unknown=2]="Unknown"})(jR||(jR={}));let aY;(tt=>{function Jt(ho,sl,Nd){Ya("file.js",ho,99,void 0,1,0),t.setText(ho,sl,Nd),qr=t.scan();let ed=kr(),Og=zr("file.js",99,1,!1,[],X(1),0,NNe),Nh=Nme(lr,Og);return cr&&(Og.jsDocDiagnostics=Nme(cr,Og)),Gc(),ed?{jsDocTypeExpression:ed,diagnostics:Nh}:void 0}tt.parseJSDocTypeExpressionForTests=Jt;function kr(ho){let sl=Ri(),Nd=(ho?rc:ws)(19),ed=Qa(16777216,YS);(!ho||Nd)&&cm(20);let Og=C.createJSDocTypeExpression(ed);return Ft(Og),Zt(Og,sl)}tt.parseJSDocTypeExpression=kr;function Xr(){let ho=Ri(),sl=rc(19),Nd=Ri(),ed=se(!1);for(;Wt()===81;)$i(),Ju(),ed=Zt(C.createJSDocMemberName(ed,Wa()),Nd);sl&&cm(20);let Og=C.createJSDocNameReference(ed);return Ft(Og),Zt(Og,ho)}tt.parseJSDocNameReference=Xr;function ui(ho,sl,Nd){Ya("",ho,99,void 0,1,0);let ed=Qa(16777216,()=>ja(sl,Nd)),Og=Nme(lr,{languageVariant:0,text:ho});return Gc(),ed?{jsDoc:ed,diagnostics:Og}:void 0}tt.parseIsolatedJSDocComment=ui;function Is(ho,sl,Nd){let ed=qr,Og=lr.length,Nh=Vr,o1=Qa(16777216,()=>ja(sl,Nd));return $Nr(o1,ho),Hi&524288&&(cr||(cr=[]),_V(cr,lr,Og)),qr=ed,lr.length=Og,Vr=Nh,o1}tt.parseJSDocComment=Is;let Hs;(ho=>{ho[ho.BeginningOfLine=0]="BeginningOfLine",ho[ho.SawAsterisk=1]="SawAsterisk",ho[ho.SavingComments=2]="SavingComments",ho[ho.SavingBackticks=3]="SavingBackticks"})(Hs||(Hs={}));let Rs;(ho=>{ho[ho.Property=1]="Property",ho[ho.Parameter=2]="Parameter",ho[ho.CallbackParameter=4]="CallbackParameter"})(Rs||(Rs={}));function ja(ho=0,sl){let Nd=xt,ed=sl===void 0?Nd.length:ho+sl;if(sl=ed-ho,Zo.assert(ho>=0),Zo.assert(ho<=ed),Zo.assert(ed<=Nd.length),!Xec(Nd,ho))return;let Og,Nh,o1,Tb,q2,IE=[],zR=[],e3=Fn;Fn|=1<<25;let IA=t.scanRange(ho+3,sl-5,EI);return Fn=e3,IA;function EI(){let Es=1,Aa,ha=ho-(Nd.lastIndexOf(` +`;case 118:return"\v";case 102:return"\f";case 114:return"\r";case 39:return"'";case 34:return'"';case 117:if(f=55296&&Xa<=56319&&f+6=56320&&Sg<=57343)return f=Wc,ac+String.fromCharCode(Sg)}return ac;case 120:for(;f1114111&&(li&&be(ts.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive,Ps,f-Ps),Yl=!0),f>=I?(li&&be(ts.Unexpected_end_of_text),Yl=!0):ue(f)===125?f++:(li&&be(ts.Unterminated_Unicode_escape_sequence),Yl=!0),Yl?(B|=2048,A.substring(Ei,f)):(B|=8,G2i(ac))}function Nr(){if(f+5=0&&See(Ps,e)){li+=Tr(!0),Ei=f;continue}if(Ps=Nr(),!(Ps>=0&&See(Ps,e)))break;B|=1024,li+=A.substring(Ei,f),li+=G2i(Ps),f+=6,Ei=f}else break}return li+=A.substring(Ei,f),li}function xt(){let li=N.length;if(li>=2&&li<=12){let Ei=N.charCodeAt(0);if(Ei>=97&&Ei<=122){let Ps=v7a.get(N);if(Ps!==void 0)return E=Ps}}return E=80}function Zr(li){let Ei="",Ps=!1,Xa=!1;for(;;){let ac=ue(f);if(ac===95){B|=512,Ps?(Ps=!1,Xa=!0):be(Xa?ts.Multiple_consecutive_numeric_separators_are_not_permitted:ts.Numeric_separators_are_not_allowed_here,f,1),f++;continue}if(Ps=!0,!mce(ac)||ac-48>=li)break;Ei+=A[f],f++,Xa=!1}return ue(f-1)===95&&be(ts.Numeric_separators_are_not_allowed_here,f-1,1),Ei}function qt(){return ue(f)===110?(N+="n",B&384&&(N=a$a(N)+"n"),f++,10):(N=""+(B&128?parseInt(N.slice(2),2):B&256?parseInt(N.slice(2),8):+N),9)}function Xt(){for(C=f,B=0;;){if(b=f,f>=I)return E=1;let li=ce(f);if(f===0&&li===35&&mvi(A,f)){if(f=Cvi(A,f),t)continue;return E=6}switch(li){case 10:case 13:if(B|=1,t){f++;continue}else return li===13&&f+1=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(be(ts.Invalid_character),f++,E=0);case 35:if(f!==0&&A[f+1]==="!")return be(ts.can_only_be_used_at_the_start_of_a_file,f,2),f++,E=0;let Xa=ce(f+1);if(Xa===92){f++;let Wc=er();if(Wc>=0&&i4(Wc,e))return N="#"+Tr(!0)+vt(),E=81;let Sg=Nr();if(Sg>=0&&i4(Sg,e))return f+=6,B|=1024,N="#"+String.fromCharCode(Sg)+vt(),E=81;f--}return i4(Xa,e)?(f++,Ar(Xa,e)):(N="#",be(ts.Invalid_character,f++,xR(li))),E=81;case 65533:return be(ts.File_appears_to_be_binary,0,0),f=I,E=8;default:let ac=Ar(li,e);if(ac)return E=ac;if(gJe(li)){f+=xR(li);continue}else if(CV(li)){B|=1,f+=xR(li);continue}let Yl=xR(li);return be(ts.Invalid_character,f,Yl),f+=Yl,E=0}}}function lr(){switch(ae){case 0:return!0;case 1:return!1}return X!==3&&X!==4?!0:ae===3?!1:x7a.test(A.slice(C,f))}function cr(){Zo.assert(E===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),f=b=C,B=0;let li=ce(f),Ei=Ar(li,99);return Ei?E=Ei:(f+=xR(li),E)}function Ar(li,Ei){let Ps=li;if(i4(Ps,Ei)){for(f+=xR(Ps);f=I)return E=1;let Ei=ue(f);if(Ei===60)return ue(f+1)===47?(f+=2,E=31):(f++,E=30);if(Ei===123)return f++,E=19;let Ps=0;for(;f0)break;BNe(Ei)||(Ps=f)}f++}return N=A.substring(C,f),Ps===-1?13:12}function cl(){if(H1(E)){for(;f=I)return E=1;for(let Ei=ue(f);f=0&&gJe(ue(f-1))&&!(f+1=I)return E=1;let li=ce(f);switch(f+=xR(li),li){case 9:case 11:case 12:case 32:for(;f=0&&i4(Ei,e))return N=Tr(!0)+vt(),E=xt();let Ps=Nr();return Ps>=0&&i4(Ps,e)?(f+=6,B|=1024,N=String.fromCharCode(Ps)+vt(),E=xt()):(f++,E=0)}if(i4(li,e)){let Ei=li;for(;f=0),f=li,C=li,b=li,E=0,N=void 0,B=0}function vu(li){Q+=li?1:-1}}function Fme(e,t){return e.codePointAt(t)}function xR(e){return e>=65536?2:e===-1?0:1}function X7a(e){if(Zo.assert(0<=e&&e<=1114111),e<=65535)return String.fromCharCode(e);let t=Math.floor((e-65536)/1024)+55296,r=(e-65536)%1024+56320;return String.fromCharCode(t,r)}var J7a=String.fromCodePoint?e=>String.fromCodePoint(e):X7a;function G2i(e){return J7a(e)}var F2i=new Map(Object.entries({General_Category:"General_Category",gc:"General_Category",Script:"Script",sc:"Script",Script_Extensions:"Script_Extensions",scx:"Script_Extensions"})),Z2i=new Set(["ASCII","ASCII_Hex_Digit","AHex","Alphabetic","Alpha","Any","Assigned","Bidi_Control","Bidi_C","Bidi_Mirrored","Bidi_M","Case_Ignorable","CI","Cased","Changes_When_Casefolded","CWCF","Changes_When_Casemapped","CWCM","Changes_When_Lowercased","CWL","Changes_When_NFKC_Casefolded","CWKCF","Changes_When_Titlecased","CWT","Changes_When_Uppercased","CWU","Dash","Default_Ignorable_Code_Point","DI","Deprecated","Dep","Diacritic","Dia","Emoji","Emoji_Component","EComp","Emoji_Modifier","EMod","Emoji_Modifier_Base","EBase","Emoji_Presentation","EPres","Extended_Pictographic","ExtPict","Extender","Ext","Grapheme_Base","Gr_Base","Grapheme_Extend","Gr_Ext","Hex_Digit","Hex","IDS_Binary_Operator","IDSB","IDS_Trinary_Operator","IDST","ID_Continue","IDC","ID_Start","IDS","Ideographic","Ideo","Join_Control","Join_C","Logical_Order_Exception","LOE","Lowercase","Lower","Math","Noncharacter_Code_Point","NChar","Pattern_Syntax","Pat_Syn","Pattern_White_Space","Pat_WS","Quotation_Mark","QMark","Radical","Regional_Indicator","RI","Sentence_Terminal","STerm","Soft_Dotted","SD","Terminal_Punctuation","Term","Unified_Ideograph","UIdeo","Uppercase","Upper","Variation_Selector","VS","White_Space","space","XID_Continue","XIDC","XID_Start","XIDS"]),L2i=new Set(["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Flag_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence","RGI_Emoji"]),SNe={General_Category:new Set(["C","Other","Cc","Control","cntrl","Cf","Format","Cn","Unassigned","Co","Private_Use","Cs","Surrogate","L","Letter","LC","Cased_Letter","Ll","Lowercase_Letter","Lm","Modifier_Letter","Lo","Other_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter","M","Mark","Combining_Mark","Mc","Spacing_Mark","Me","Enclosing_Mark","Mn","Nonspacing_Mark","N","Number","Nd","Decimal_Number","digit","Nl","Letter_Number","No","Other_Number","P","Punctuation","punct","Pc","Connector_Punctuation","Pd","Dash_Punctuation","Pe","Close_Punctuation","Pf","Final_Punctuation","Pi","Initial_Punctuation","Po","Other_Punctuation","Ps","Open_Punctuation","S","Symbol","Sc","Currency_Symbol","Sk","Modifier_Symbol","Sm","Math_Symbol","So","Other_Symbol","Z","Separator","Zl","Line_Separator","Zp","Paragraph_Separator","Zs","Space_Separator"]),Script:new Set(["Adlm","Adlam","Aghb","Caucasian_Albanian","Ahom","Arab","Arabic","Armi","Imperial_Aramaic","Armn","Armenian","Avst","Avestan","Bali","Balinese","Bamu","Bamum","Bass","Bassa_Vah","Batk","Batak","Beng","Bengali","Bhks","Bhaiksuki","Bopo","Bopomofo","Brah","Brahmi","Brai","Braille","Bugi","Buginese","Buhd","Buhid","Cakm","Chakma","Cans","Canadian_Aboriginal","Cari","Carian","Cham","Cher","Cherokee","Chrs","Chorasmian","Copt","Coptic","Qaac","Cpmn","Cypro_Minoan","Cprt","Cypriot","Cyrl","Cyrillic","Deva","Devanagari","Diak","Dives_Akuru","Dogr","Dogra","Dsrt","Deseret","Dupl","Duployan","Egyp","Egyptian_Hieroglyphs","Elba","Elbasan","Elym","Elymaic","Ethi","Ethiopic","Geor","Georgian","Glag","Glagolitic","Gong","Gunjala_Gondi","Gonm","Masaram_Gondi","Goth","Gothic","Gran","Grantha","Grek","Greek","Gujr","Gujarati","Guru","Gurmukhi","Hang","Hangul","Hani","Han","Hano","Hanunoo","Hatr","Hatran","Hebr","Hebrew","Hira","Hiragana","Hluw","Anatolian_Hieroglyphs","Hmng","Pahawh_Hmong","Hmnp","Nyiakeng_Puachue_Hmong","Hrkt","Katakana_Or_Hiragana","Hung","Old_Hungarian","Ital","Old_Italic","Java","Javanese","Kali","Kayah_Li","Kana","Katakana","Kawi","Khar","Kharoshthi","Khmr","Khmer","Khoj","Khojki","Kits","Khitan_Small_Script","Knda","Kannada","Kthi","Kaithi","Lana","Tai_Tham","Laoo","Lao","Latn","Latin","Lepc","Lepcha","Limb","Limbu","Lina","Linear_A","Linb","Linear_B","Lisu","Lyci","Lycian","Lydi","Lydian","Mahj","Mahajani","Maka","Makasar","Mand","Mandaic","Mani","Manichaean","Marc","Marchen","Medf","Medefaidrin","Mend","Mende_Kikakui","Merc","Meroitic_Cursive","Mero","Meroitic_Hieroglyphs","Mlym","Malayalam","Modi","Mong","Mongolian","Mroo","Mro","Mtei","Meetei_Mayek","Mult","Multani","Mymr","Myanmar","Nagm","Nag_Mundari","Nand","Nandinagari","Narb","Old_North_Arabian","Nbat","Nabataean","Newa","Nkoo","Nko","Nshu","Nushu","Ogam","Ogham","Olck","Ol_Chiki","Orkh","Old_Turkic","Orya","Oriya","Osge","Osage","Osma","Osmanya","Ougr","Old_Uyghur","Palm","Palmyrene","Pauc","Pau_Cin_Hau","Perm","Old_Permic","Phag","Phags_Pa","Phli","Inscriptional_Pahlavi","Phlp","Psalter_Pahlavi","Phnx","Phoenician","Plrd","Miao","Prti","Inscriptional_Parthian","Rjng","Rejang","Rohg","Hanifi_Rohingya","Runr","Runic","Samr","Samaritan","Sarb","Old_South_Arabian","Saur","Saurashtra","Sgnw","SignWriting","Shaw","Shavian","Shrd","Sharada","Sidd","Siddham","Sind","Khudawadi","Sinh","Sinhala","Sogd","Sogdian","Sogo","Old_Sogdian","Sora","Sora_Sompeng","Soyo","Soyombo","Sund","Sundanese","Sylo","Syloti_Nagri","Syrc","Syriac","Tagb","Tagbanwa","Takr","Takri","Tale","Tai_Le","Talu","New_Tai_Lue","Taml","Tamil","Tang","Tangut","Tavt","Tai_Viet","Telu","Telugu","Tfng","Tifinagh","Tglg","Tagalog","Thaa","Thaana","Thai","Tibt","Tibetan","Tirh","Tirhuta","Tnsa","Tangsa","Toto","Ugar","Ugaritic","Vaii","Vai","Vith","Vithkuqi","Wara","Warang_Citi","Wcho","Wancho","Xpeo","Old_Persian","Xsux","Cuneiform","Yezi","Yezidi","Yiii","Yi","Zanb","Zanabazar_Square","Zinh","Inherited","Qaai","Zyyy","Common","Zzzz","Unknown"]),Script_Extensions:void 0};SNe.Script_Extensions=SNe.Script;function gj(e){return e.start+e.length}function U7a(e){return e.length===0}function ONr(e,t){if(e<0)throw new Error("start < 0");if(t<0)throw new Error("length < 0");return{start:e,length:t}}function K7a(e,t){return ONr(e,t-e)}function rJe(e){return ONr(e.span.start,e.newLength)}function j7a(e){return U7a(e.span)&&e.newLength===0}function bvi(e,t){if(t<0)throw new Error("newLength < 0");return{span:e,newLength:t}}var vTu=bvi(ONr(0,0),0);function Evi(e,t){for(;e;){let r=t(e);if(r==="quit")return;if(r)return e;e=e.parent}}function Qbt(e){return(e.flags&16)===0}function z7a(e,t){if(e===void 0||Qbt(e))return e;for(e=e.original;e;){if(Qbt(e))return!t||t(e)?e:void 0;e=e.original}}function mNe(e){return e.length>=2&&e.charCodeAt(0)===95&&e.charCodeAt(1)===95?"_"+e:e}function mJe(e){let t=e;return t.length>=3&&t.charCodeAt(0)===95&&t.charCodeAt(1)===95&&t.charCodeAt(2)===95?t.substr(1):t}function yV(e){return mJe(e.escapedText)}function Svi(e){let t=pvi(e.escapedText);return t?e7a(t,Cce):void 0}function uNr(e){return e.valueDeclaration&&bza(e.valueDeclaration)?yV(e.valueDeclaration.name):mJe(e.escapedName)}function vvi(e){let t=e.parent.parent;if(t){if(W2i(t))return Tbt(t);switch(t.kind){case 243:if(t.declarationList&&t.declarationList.declarations[0])return Tbt(t.declarationList.declarations[0]);break;case 244:let r=t.expression;switch(r.kind===226&&r.operatorToken.kind===64&&(r=r.left),r.kind){case 211:return r.name;case 212:let n=r.argumentExpression;if($C(n))return n}break;case 217:return Tbt(t.expression);case 256:{if(W2i(t.statement)||Fza(t.statement))return Tbt(t.statement);break}}}}function Tbt(e){let t=Bvi(e);return t&&$C(t)?t:void 0}function q7a(e){return e.name||vvi(e)}function $7a(e){return!!e.name}function MNr(e){switch(e.kind){case 80:return e;case 348:case 341:{let{name:r}=e;if(r.kind===166)return r.right;break}case 213:case 226:{let r=e;switch(JNr(r)){case 1:case 4:case 5:case 3:return UNr(r.left);case 7:case 8:case 9:return r.arguments[1];default:return}}case 346:return q7a(e);case 340:return vvi(e);case 277:{let{expression:r}=e;return $C(r)?r:void 0}case 212:let t=e;if(Mvi(t))return t.argumentExpression}return e.name}function Bvi(e){if(e!==void 0)return MNr(e)||(cBi(e)||lBi(e)||mNr(e)?eza(e):void 0)}function eza(e){if(e.parent){if(hec(e.parent)||eec(e.parent))return e.parent.name;if(DNe(e.parent)&&e===e.parent.right){if($C(e.parent.left))return e.parent.left;if(Uvi(e.parent.left))return UNr(e.parent.left)}else if(gBi(e.parent)&&$C(e.parent.name))return e.parent.name}else return}function tza(e){if(Rqa(e))return wee(e.modifiers,tDr)}function rza(e){if(vJe(e,98303))return wee(e.modifiers,vza)}function wvi(e,t){if(e.name)if($C(e.name)){let r=e.name.escapedText;return CJe(e.parent,t).filter(n=>rSi(n)&&$C(n.name)&&n.name.escapedText===r)}else{let r=e.parent.parameters.indexOf(e);Zo.assert(r>-1,"Parameters should always be in their parents' parameter list");let n=CJe(e.parent,t).filter(rSi);if(rkec(n)&&n.typeParameters.some(a=>a.name.escapedText===r))}function sza(e){return Tvi(e,!1)}function oza(e){return Tvi(e,!0)}function aza(e){return vce(e,Eec)}function cza(e){return Iza(e,xec)}function lza(e){return vce(e,Sec,!0)}function uza(e){return vce(e,vec,!0)}function gza(e){return vce(e,Bec,!0)}function Aza(e){return vce(e,wec,!0)}function dza(e){return vce(e,Tec,!0)}function pza(e){return vce(e,Nec,!0)}function fza(e){let t=vce(e,iDr);if(t&&t.typeExpression&&t.typeExpression.type)return t}function CJe(e,t){var r;if(!KNr(e))return x2;let n=(r=e.jsDoc)==null?void 0:r.jsDocCache;if(n===void 0||t){let a=dqa(e,t);Zo.assert(a.length<2||a[0]!==a[1]),n=USi(a,o=>_Bi(o)?o.tags:o),t||(e.jsDoc??(e.jsDoc=[]),e.jsDoc.jsDocCache=n)}return n}function Rvi(e){return CJe(e,!1)}function vce(e,t,r){return XSi(CJe(e,r),t)}function Iza(e,t){return Rvi(e).filter(t)}function gNr(e){return e.kind===80||e.kind===81}function hza(e){return Bce(e)&&!!(e.flags&64)}function mza(e){return BJe(e)&&!!(e.flags&64)}function V2i(e){return aBi(e)&&!!(e.flags&64)}function HNr(e){return sDr(e,8)}function Cza(e){return Vbt(e)&&!!(e.flags&64)}function YNr(e){return e>=166}function Nvi(e){return e>=0&&e<=165}function _za(e){return Nvi(e.kind)}function _ce(e){return fj(e,"pos")&&fj(e,"end")}function yza(e){return 9<=e&&e<=15}function P2i(e){return 15<=e&&e<=18}function vNe(e){var t;return $C(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function Dvi(e){var t;return Yme(e)&&((t=e.emitNode)==null?void 0:t.autoGenerate)!==void 0}function bza(e){return(Kbt(e)||Tza(e))&&Yme(e.name)}function vee(e){switch(e){case 128:case 129:case 134:case 87:case 138:case 90:case 95:case 103:case 125:case 123:case 124:case 148:case 126:case 147:case 164:return!0}return!1}function Eza(e){return!!(Xvi(e)&31)}function Sza(e){return Eza(e)||e===126||e===164||e===129}function vza(e){return vee(e.kind)}function kvi(e){let t=e.kind;return t===80||t===81||t===11||t===9||t===167}function xvi(e){return!!e&&wza(e.kind)}function Bza(e){switch(e){case 262:case 174:case 176:case 177:case 178:case 218:case 219:return!0;default:return!1}}function wza(e){switch(e){case 173:case 179:case 323:case 180:case 181:case 184:case 317:case 185:return!0;default:return Bza(e)}}function wNe(e){return e&&(e.kind===263||e.kind===231)}function Tza(e){switch(e.kind){case 174:case 177:case 178:return!0;default:return!1}}function Rza(e){let t=e.kind;return t===303||t===304||t===305||t===174||t===177||t===178}function Nza(e){return Wqa(e.kind)}function Dza(e){if(e){let t=e.kind;return t===207||t===206}return!1}function kza(e){let t=e.kind;return t===209||t===210}function xza(e){switch(e.kind){case 260:case 169:case 208:return!0}return!1}function TNe(e){return Gvi(HNr(e).kind)}function Gvi(e){switch(e){case 211:case 212:case 214:case 213:case 284:case 285:case 288:case 215:case 209:case 217:case 210:case 231:case 218:case 80:case 81:case 14:case 9:case 10:case 11:case 15:case 228:case 97:case 106:case 110:case 112:case 108:case 235:case 233:case 236:case 102:case 282:return!0;default:return!1}}function Gza(e){return Fvi(HNr(e).kind)}function Fvi(e){switch(e){case 224:case 225:case 220:case 221:case 222:case 223:case 216:return!0;default:return Gvi(e)}}function Fza(e){return Zza(HNr(e).kind)}function Zza(e){switch(e){case 227:case 229:case 219:case 226:case 230:case 234:case 232:case 356:case 355:case 238:return!0;default:return Fvi(e)}}function Lza(e){return e===219||e===208||e===263||e===231||e===175||e===176||e===266||e===306||e===281||e===262||e===218||e===177||e===273||e===271||e===276||e===264||e===291||e===174||e===173||e===267||e===270||e===274||e===280||e===169||e===303||e===172||e===171||e===178||e===304||e===265||e===168||e===260||e===346||e===338||e===348||e===202}function Zvi(e){return e===262||e===282||e===263||e===264||e===265||e===266||e===267||e===272||e===271||e===278||e===277||e===270}function Lvi(e){return e===252||e===251||e===259||e===246||e===244||e===242||e===249||e===250||e===248||e===245||e===256||e===253||e===255||e===257||e===258||e===243||e===247||e===254||e===353}function W2i(e){return e.kind===168?e.parent&&e.parent.kind!==345||Qme(e):Lza(e.kind)}function Vza(e){let t=e.kind;return Lvi(t)||Zvi(t)||Pza(e)}function Pza(e){return e.kind!==241||e.parent!==void 0&&(e.parent.kind===258||e.parent.kind===299)?!1:!eqa(e)}function Wza(e){let t=e.kind;return Lvi(t)||Zvi(t)||t===241}function Vvi(e){return e.kind>=309&&e.kind<=351}function Oza(e){return e.kind===320||e.kind===319||e.kind===321||Yza(e)||Mza(e)||bec(e)||yBi(e)}function Mza(e){return e.kind>=327&&e.kind<=351}function Rbt(e){return e.kind===178}function Nbt(e){return e.kind===177}function Pme(e){if(!KNr(e))return!1;let{jsDoc:t}=e;return!!t&&t.length>0}function Hza(e){return!!e.initializer}function QNr(e){return e.kind===11||e.kind===15}function Yza(e){return e.kind===324||e.kind===325||e.kind===326}function O2i(e){return(e.flags&33554432)!==0}var BTu=Qza();function Qza(){var e="";let t=r=>e+=r;return{getText:()=>e,write:t,rawWrite:t,writeKeyword:t,writeOperator:t,writePunctuation:t,writeSpace:t,writeStringLiteral:t,writeLiteral:t,writeParameter:t,writeProperty:t,writeSymbol:(r,n)=>t(r),writeTrailingSemicolon:t,writeComment:t,getTextPos:()=>e.length,getLine:()=>0,getColumn:()=>0,getIndent:()=>0,isAtStartOfLine:()=>!1,hasTrailingComment:()=>!1,hasTrailingWhitespace:()=>!!e.length&&BNe(e.charCodeAt(e.length-1)),writeLine:()=>e+=" ",increaseIndent:NNe,decreaseIndent:NNe,clear:()=>e=""}}function Xza(e,t){let r=e.entries();for(let[n,a]of r){let o=t(a,n);if(o)return o}}function Jza(e){return e.end-e.pos}function Pvi(e){return Uza(e),(e.flags&1048576)!==0}function Uza(e){e.flags&2097152||((e.flags&262144||Ok(e,Pvi))&&(e.flags|=1048576),e.flags|=2097152)}function bce(e){for(;e&&e.kind!==307;)e=e.parent;return e}function Wme(e){return e===void 0?!0:e.pos===e.end&&e.pos>=0&&e.kind!==1}function ANr(e){return!Wme(e)}function Xbt(e,t,r){if(Wme(e))return e.pos;if(Vvi(e)||e.kind===12)return dj((t??bce(e)).text,e.pos,!1,!0);if(r&&Pme(e))return Xbt(e.jsDoc[0],t);if(e.kind===352){t??(t=bce(e));let n=DNr(bBi(e,t));if(n)return Xbt(n,t,r)}return dj((t??bce(e)).text,e.pos,!1,!1,tqa(e))}function M2i(e,t,r=!1){return AJe(e.text,t,r)}function Kza(e){return!!Evi(e,Cec)}function AJe(e,t,r=!1){if(Wme(t))return"";let n=e.substring(r?t.pos:dj(e,t.pos),t.end);return Kza(t)&&(n=n.split(/\r\n|\n|\r/).map(a=>a.replace(/^\s*\*/,"").trimStart()).join(` +`)),n}function RNe(e){let t=e.emitNode;return t&&t.flags||0}function jza(e,t,r){Zo.assertGreaterThanOrEqual(t,0),Zo.assertGreaterThanOrEqual(r,0),Zo.assertLessThanOrEqual(t,e.length),Zo.assertLessThanOrEqual(t+r,e.length)}function Lbt(e){return e.kind===244&&e.expression.kind===11}function XNr(e){return!!(RNe(e)&2097152)}function H2i(e){return XNr(e)&&ABi(e)}function zza(e){return $C(e.name)&&!e.initializer}function Y2i(e){return XNr(e)&&rEt(e)&&RNr(e.declarationList.declarations,zza)}function qza(e,t){let r=e.kind===169||e.kind===168||e.kind===218||e.kind===219||e.kind===217||e.kind===260||e.kind===281?NNr(Y7a(t,e.pos),lNr(t,e.pos)):lNr(t,e.pos);return wee(r,n=>n.end<=e.end&&t.charCodeAt(n.pos+1)===42&&t.charCodeAt(n.pos+2)===42&&t.charCodeAt(n.pos+3)!==47)}function $za(e){if(e)switch(e.kind){case 208:case 306:case 169:case 303:case 172:case 171:case 304:case 260:return!0}return!1}function eqa(e){return e&&e.kind===241&&xvi(e.parent)}function Q2i(e){let t=e.kind;return(t===211||t===212)&&e.expression.kind===108}function Qme(e){return!!e&&!!(e.flags&524288)}function tqa(e){return!!e&&!!(e.flags&16777216)}function rqa(e){for(;Jbt(e,!0);)e=e.right;return e}function nqa(e){return $C(e)&&e.escapedText==="exports"}function iqa(e){return $C(e)&&e.escapedText==="module"}function Wvi(e){return(Bce(e)||Ovi(e))&&iqa(e.expression)&&yJe(e)==="exports"}function JNr(e){let t=oqa(e);return t===5||Qme(e)?t:0}function sqa(e){return cJe(e.arguments)===3&&Bce(e.expression)&&$C(e.expression.expression)&&yV(e.expression.expression)==="Object"&&yV(e.expression.name)==="defineProperty"&&eEt(e.arguments[1])&&_Je(e.arguments[0],!0)}function Ovi(e){return BJe(e)&&eEt(e.argumentExpression)}function SJe(e,t){return Bce(e)&&(!t&&e.expression.kind===110||$C(e.name)&&_Je(e.expression,!0))||Mvi(e,t)}function Mvi(e,t){return Ovi(e)&&(!t&&e.expression.kind===110||qNr(e.expression)||SJe(e.expression,!0))}function _Je(e,t){return qNr(e)||SJe(e,t)}function oqa(e){if(aBi(e)){if(!sqa(e))return 0;let t=e.arguments[0];return nqa(t)||Wvi(t)?8:SJe(t)&&yJe(t)==="prototype"?9:7}return e.operatorToken.kind!==64||!Uvi(e.left)||aqa(rqa(e))?0:_Je(e.left.expression,!0)&&yJe(e.left)==="prototype"&&oBi(lqa(e))?6:cqa(e.left)}function aqa(e){return nec(e)&&kNe(e.expression)&&e.expression.text==="0"}function UNr(e){if(Bce(e))return e.name;let t=jNr(e.argumentExpression);return kNe(t)||QNr(t)?t:e}function yJe(e){let t=UNr(e);if(t){if($C(t))return t.escapedText;if(QNr(t)||kNe(t))return mNe(t.text)}}function cqa(e){if(e.expression.kind===110)return 4;if(Wvi(e))return 2;if(_Je(e.expression,!0)){if(Vqa(e.expression))return 3;let t=e;for(;!$C(t.expression);)t=t.expression;let r=t.expression;if((r.escapedText==="exports"||r.escapedText==="module"&&yJe(t)==="exports")&&SJe(e))return 1;if(_Je(e,!0)||BJe(e)&&Eqa(e))return 5}return 0}function lqa(e){for(;DNe(e.right);)e=e.right;return e.right}function uqa(e){return uBi(e)&&DNe(e.expression)&&JNr(e.expression)!==0&&DNe(e.expression.right)&&(e.expression.right.operatorToken.kind===57||e.expression.right.operatorToken.kind===61)?e.expression.right.right:void 0}function gqa(e){switch(e.kind){case 243:let t=dNr(e);return t&&t.initializer;case 172:return e.initializer;case 303:return e.initializer}}function dNr(e){return rEt(e)?DNr(e.declarationList.declarations):void 0}function Aqa(e){return EJe(e)&&e.body&&e.body.kind===267?e.body:void 0}function KNr(e){switch(e.kind){case 219:case 226:case 241:case 252:case 179:case 296:case 263:case 231:case 175:case 176:case 185:case 180:case 251:case 259:case 246:case 212:case 242:case 1:case 266:case 306:case 277:case 278:case 281:case 244:case 249:case 250:case 248:case 262:case 218:case 184:case 177:case 80:case 245:case 272:case 271:case 181:case 264:case 317:case 323:case 256:case 174:case 173:case 267:case 202:case 270:case 210:case 169:case 217:case 211:case 303:case 172:case 171:case 253:case 240:case 178:case 304:case 305:case 255:case 257:case 258:case 265:case 168:case 260:case 243:case 247:case 254:return!0;default:return!1}}function dqa(e,t){let r;$za(e)&&Hza(e)&&Pme(e.initializer)&&(r=_V(r,X2i(e,e.initializer.jsDoc)));let n=e;for(;n&&n.parent;){if(Pme(n)&&(r=_V(r,X2i(e,n.jsDoc))),n.kind===169){r=_V(r,(t?iza:nza)(n));break}if(n.kind===168){r=_V(r,(t?oza:sza)(n));break}n=fqa(n)}return r||x2}function X2i(e,t){let r=Q6a(t);return USi(t,n=>{if(n===r){let a=wee(n.tags,o=>pqa(e,o));return n.tags===a?[n]:a}else return wee(n.tags,Rec)})}function pqa(e,t){return!(iDr(t)||Gec(t))||!t.parent||!_Bi(t.parent)||!rDr(t.parent.parent)||t.parent.parent===e}function fqa(e){let t=e.parent;if(t.kind===303||t.kind===277||t.kind===172||t.kind===244&&e.kind===211||t.kind===253||Aqa(t)||Jbt(e))return t;if(t.parent&&(dNr(t.parent)===e||Jbt(t)))return t.parent;if(t.parent&&t.parent.parent&&(dNr(t.parent.parent)||gqa(t.parent.parent)===e||uqa(t.parent.parent)))return t.parent.parent}function jNr(e,t){return sDr(e,t?-2147483647:1)}function Iqa(e){let t=hqa(e);if(t&&Qme(e)){let r=aza(e);if(r)return r.class}return t}function hqa(e){let t=zNr(e.heritageClauses,96);return t&&t.types.length>0?t.types[0]:void 0}function mqa(e){if(Qme(e))return cza(e).map(t=>t.class);{let t=zNr(e.heritageClauses,119);return t?.types}}function Cqa(e){return nDr(e)?_qa(e)||x2:wNe(e)&&NNr(oNr(Iqa(e)),mqa(e))||x2}function _qa(e){let t=zNr(e.heritageClauses,96);return t?t.types:void 0}function zNr(e,t){if(e){for(let r of e)if(r.token===t)return r}}function Cce(e){return 83<=e&&e<=165}function yqa(e){return 19<=e&&e<=79}function URr(e){return Cce(e)||yqa(e)}function eEt(e){return QNr(e)||kNe(e)}function bqa(e){return iec(e)&&(e.operator===40||e.operator===41)&&kNe(e.operand)}function Eqa(e){if(!(e.kind===167||e.kind===212))return!1;let t=BJe(e)?jNr(e.argumentExpression):e.expression;return!eEt(t)&&!bqa(t)}function Sqa(e){return gNr(e)?yV(e):CBi(e)?d$a(e):e.text}function CNe(e){return bJe(e.pos)||bJe(e.end)}function KRr(e){switch(e){case 61:return 4;case 57:return 5;case 56:return 6;case 52:return 7;case 53:return 8;case 51:return 9;case 35:case 36:case 37:case 38:return 10;case 30:case 32:case 33:case 34:case 104:case 103:case 130:case 152:return 11;case 48:case 49:case 50:return 12;case 40:case 41:return 13;case 42:case 44:case 45:return 14;case 43:return 15}return-1}function jRr(e){return!!((e.templateFlags||0)&2048)}function vqa(e){return e&&!!(B$a(e)?jRr(e):jRr(e.head)||oD(e.templateSpans,t=>jRr(t.literal)))}var wTu=new Map(Object.entries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"})),TTu=new Map(Object.entries({'"':""","'":"'"}));function Bqa(e){return!!e&&e.kind===80&&wqa(e)}function wqa(e){return e.escapedText==="this"}function vJe(e,t){return!!Nqa(e,t)}function Tqa(e){return vJe(e,256)}function Rqa(e){return vJe(e,32768)}function Nqa(e,t){return kqa(e)&t}function Dqa(e,t,r){return e.kind>=0&&e.kind<=165?0:(e.modifierFlagsCache&536870912||(e.modifierFlagsCache=Qvi(e)|536870912),r||t&&Qme(e)?(!(e.modifierFlagsCache&268435456)&&e.parent&&(e.modifierFlagsCache|=Hvi(e)|268435456),Yvi(e.modifierFlagsCache)):xqa(e.modifierFlagsCache))}function kqa(e){return Dqa(e,!1)}function Hvi(e){let t=0;return e.parent&&!Ubt(e)&&(Qme(e)&&(lza(e)&&(t|=8388608),uza(e)&&(t|=16777216),gza(e)&&(t|=33554432),Aza(e)&&(t|=67108864),dza(e)&&(t|=134217728)),pza(e)&&(t|=65536)),t}function xqa(e){return e&65535}function Yvi(e){return e&131071|(e&260046848)>>>23}function Gqa(e){return Yvi(Hvi(e))}function Fqa(e){return Qvi(e)|Gqa(e)}function Qvi(e){let t=oDr(e)?fO(e.modifiers):0;return(e.flags&8||e.kind===80&&e.flags&4096)&&(t|=32),t}function fO(e){let t=0;if(e)for(let r of e)t|=Xvi(r.kind);return t}function Xvi(e){switch(e){case 126:return 256;case 125:return 1;case 124:return 4;case 123:return 2;case 128:return 64;case 129:return 512;case 95:return 32;case 138:return 128;case 87:return 4096;case 90:return 2048;case 134:return 1024;case 148:return 8;case 164:return 16;case 103:return 8192;case 147:return 16384;case 170:return 32768}return 0}function Zqa(e){return e===76||e===77||e===78}function Jvi(e){return e>=64&&e<=79}function Jbt(e,t){return DNe(e)&&(t?e.operatorToken.kind===64:Jvi(e.operatorToken.kind))&&TNe(e.left)}function qNr(e){return e.kind===80||Lqa(e)}function Lqa(e){return Bce(e)&&$C(e.name)&&qNr(e.expression)}function Vqa(e){return SJe(e)&&yJe(e)==="prototype"}function zRr(e){return e.flags&3899393?e.objectFlags:0}function Pqa(e){let t;return Ok(e,r=>{ANr(r)&&(t=r)},r=>{for(let n=r.length-1;n>=0;n--)if(ANr(r[n])){t=r[n];break}}),t}function Wqa(e){return e>=182&&e<=205||e===133||e===159||e===150||e===163||e===151||e===136||e===154||e===155||e===116||e===157||e===146||e===141||e===233||e===312||e===313||e===314||e===315||e===316||e===317||e===318}function Uvi(e){return e.kind===211||e.kind===212}function Oqa(e,t){this.flags=e,this.escapedName=t,this.declarations=void 0,this.valueDeclaration=void 0,this.id=0,this.mergeId=0,this.parent=void 0,this.members=void 0,this.exports=void 0,this.exportSymbol=void 0,this.constEnumOnlyModule=void 0,this.isReferenced=void 0,this.lastAssignmentPos=void 0,this.links=void 0}function Mqa(e,t){this.flags=t,(Zo.isDebugging||Fbt)&&(this.checker=e)}function Hqa(e,t){this.flags=t,Zo.isDebugging&&(this.checker=e)}function qRr(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Yqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.emitNode=void 0}function Qqa(e,t,r){this.pos=t,this.end=r,this.kind=e,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.emitNode=void 0}function Xqa(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}var k2={getNodeConstructor:()=>qRr,getTokenConstructor:()=>Yqa,getIdentifierConstructor:()=>Qqa,getPrivateIdentifierConstructor:()=>qRr,getSourceFileConstructor:()=>qRr,getSymbolConstructor:()=>Oqa,getTypeConstructor:()=>Mqa,getSignatureConstructor:()=>Hqa,getSourceMapSourceConstructor:()=>Xqa},Jqa=[];function Uqa(e){Object.assign(k2,e),hO(Jqa,t=>t(k2))}function Kqa(e,t){return e.replace(/\{(\d+)\}/g,(r,n)=>""+Zo.checkDefined(t[+n]))}var J2i;function jqa(e){return J2i&&J2i[e.key]||e.message}function pNe(e,t,r,n,a,...o){r+n>t.length&&(n=t.length-r),jza(t,r,n);let l=jqa(a);return oD(o)&&(l=Kqa(l,o)),{file:void 0,start:r,length:n,messageText:l,category:a.category,code:a.code,reportsUnnecessary:a.reportsUnnecessary,fileName:e}}function zqa(e){return e.file===void 0&&e.start!==void 0&&e.length!==void 0&&typeof e.fileName=="string"}function Kvi(e,t){let r=t.fileName||"",n=t.text.length;Zo.assertEqual(e.fileName,r),Zo.assertLessThanOrEqual(e.start,n),Zo.assertLessThanOrEqual(e.start+e.length,n);let a={file:t,start:e.start,length:e.length,messageText:e.messageText,category:e.category,code:e.code,reportsUnnecessary:e.reportsUnnecessary};if(e.relatedInformation){a.relatedInformation=[];for(let o of e.relatedInformation)zqa(o)&&o.fileName===r?(Zo.assertLessThanOrEqual(o.start,n),Zo.assertLessThanOrEqual(o.start+o.length,n),a.relatedInformation.push(Kvi(o,t))):a.relatedInformation.push(o)}return a}function Nme(e,t){let r=[];for(let n of e)r.push(Kvi(n,t));return r}function U2i(e){return e===4||e===2||e===1||e===6?1:0}var y0={allowImportingTsExtensions:{dependencies:["rewriteRelativeImportExtensions"],computeValue:e=>!!(e.allowImportingTsExtensions||e.rewriteRelativeImportExtensions)},target:{dependencies:["module"],computeValue:e=>(e.target===0?void 0:e.target)??(e.module===100&&9||e.module===199&&99||1)},module:{dependencies:["target"],computeValue:e=>typeof e.module=="number"?e.module:y0.target.computeValue(e)>=2?5:1},moduleResolution:{dependencies:["module","target"],computeValue:e=>{let t=e.moduleResolution;if(t===void 0)switch(y0.module.computeValue(e)){case 1:t=2;break;case 100:t=3;break;case 199:t=99;break;case 200:t=100;break;default:t=1;break}return t}},moduleDetection:{dependencies:["module","target"],computeValue:e=>e.moduleDetection||(y0.module.computeValue(e)===100||y0.module.computeValue(e)===199?3:2)},isolatedModules:{dependencies:["verbatimModuleSyntax"],computeValue:e=>!!(e.isolatedModules||e.verbatimModuleSyntax)},esModuleInterop:{dependencies:["module","target"],computeValue:e=>{if(e.esModuleInterop!==void 0)return e.esModuleInterop;switch(y0.module.computeValue(e)){case 100:case 199:case 200:return!0}return!1}},allowSyntheticDefaultImports:{dependencies:["module","target","moduleResolution"],computeValue:e=>e.allowSyntheticDefaultImports!==void 0?e.allowSyntheticDefaultImports:y0.esModuleInterop.computeValue(e)||y0.module.computeValue(e)===4||y0.moduleResolution.computeValue(e)===100},resolvePackageJsonExports:{dependencies:["moduleResolution"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolvePackageJsonImports:{dependencies:["moduleResolution","resolvePackageJsonExports"],computeValue:e=>{let t=y0.moduleResolution.computeValue(e);if(!K2i(t))return!1;if(e.resolvePackageJsonExports!==void 0)return e.resolvePackageJsonExports;switch(t){case 3:case 99:case 100:return!0}return!1}},resolveJsonModule:{dependencies:["moduleResolution","module","target"],computeValue:e=>e.resolveJsonModule!==void 0?e.resolveJsonModule:y0.moduleResolution.computeValue(e)===100},declaration:{dependencies:["composite"],computeValue:e=>!!(e.declaration||e.composite)},preserveConstEnums:{dependencies:["isolatedModules","verbatimModuleSyntax"],computeValue:e=>!!(e.preserveConstEnums||y0.isolatedModules.computeValue(e))},incremental:{dependencies:["composite"],computeValue:e=>!!(e.incremental||e.composite)},declarationMap:{dependencies:["declaration","composite"],computeValue:e=>!!(e.declarationMap&&y0.declaration.computeValue(e))},allowJs:{dependencies:["checkJs"],computeValue:e=>e.allowJs===void 0?!!e.checkJs:e.allowJs},useDefineForClassFields:{dependencies:["target","module"],computeValue:e=>e.useDefineForClassFields===void 0?y0.target.computeValue(e)>=9:e.useDefineForClassFields},noImplicitAny:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitAny")},noImplicitThis:{dependencies:["strict"],computeValue:e=>Eee(e,"noImplicitThis")},strictNullChecks:{dependencies:["strict"],computeValue:e=>Eee(e,"strictNullChecks")},strictFunctionTypes:{dependencies:["strict"],computeValue:e=>Eee(e,"strictFunctionTypes")},strictBindCallApply:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBindCallApply")},strictPropertyInitialization:{dependencies:["strict"],computeValue:e=>Eee(e,"strictPropertyInitialization")},strictBuiltinIteratorReturn:{dependencies:["strict"],computeValue:e=>Eee(e,"strictBuiltinIteratorReturn")},alwaysStrict:{dependencies:["strict"],computeValue:e=>Eee(e,"alwaysStrict")},useUnknownInCatchVariables:{dependencies:["strict"],computeValue:e=>Eee(e,"useUnknownInCatchVariables")}},RTu=y0.allowImportingTsExtensions.computeValue,NTu=y0.target.computeValue,DTu=y0.module.computeValue,kTu=y0.moduleResolution.computeValue,xTu=y0.moduleDetection.computeValue,GTu=y0.isolatedModules.computeValue,FTu=y0.esModuleInterop.computeValue,ZTu=y0.allowSyntheticDefaultImports.computeValue,LTu=y0.resolvePackageJsonExports.computeValue,VTu=y0.resolvePackageJsonImports.computeValue,PTu=y0.resolveJsonModule.computeValue,WTu=y0.declaration.computeValue,OTu=y0.preserveConstEnums.computeValue,MTu=y0.incremental.computeValue,HTu=y0.declarationMap.computeValue,YTu=y0.allowJs.computeValue,QTu=y0.useDefineForClassFields.computeValue;function K2i(e){return e>=3&&e<=99||e===100}function Eee(e,t){return e[t]===void 0?!!e.strict:!!e[t]}function qqa(e){return Xza(targetOptionDeclaration.type,(t,r)=>t===e?r:void 0)}var $qa=["node_modules","bower_components","jspm_packages"],jvi=`(?!(${$qa.join("|")})(/|$))`,e$a={singleAsteriskRegexFragment:"([^./]|(\\.(?!min\\.js$))?)*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,e$a.singleAsteriskRegexFragment)},t$a={singleAsteriskRegexFragment:"[^/]*",doubleAsteriskRegexFragment:`(/${jvi}[^/.][^/]*)*?`,replaceWildcardCharacter:e=>zvi(e,t$a.singleAsteriskRegexFragment)};function zvi(e,t){return e==="*"?t:e==="?"?"[^/]":"\\"+e}function r$a(e,t){return t||n$a(e)||3}function n$a(e){switch(e.substr(e.lastIndexOf(".")).toLowerCase()){case".js":case".cjs":case".mjs":return 1;case".jsx":return 2;case".ts":case".cts":case".mts":return 3;case".tsx":return 4;case".json":return 6;default:return 0}}var qvi=[[".ts",".tsx",".d.ts"],[".cts",".d.cts"],[".mts",".d.mts"]],XTu=JSi(qvi),JTu=[...qvi,[".json"]],i$a=[[".js",".jsx"],[".mjs"],[".cjs"]],UTu=JSi(i$a),s$a=[[".ts",".tsx",".d.ts",".js",".jsx"],[".cts",".d.cts",".cjs"],[".mts",".d.mts",".mjs"]],KTu=[...s$a,[".json"]],o$a=[".d.ts",".d.cts",".d.mts"];function bJe(e){return!(e>=0)}function Dbt(e,...t){return t.length&&(e.relatedInformation||(e.relatedInformation=[]),Zo.assert(e.relatedInformation!==x2,"Diagnostic had empty array singleton for related info, but is still being constructed!"),e.relatedInformation.push(...t)),e}function a$a(e){let t;switch(e.charCodeAt(1)){case 98:case 66:t=1;break;case 111:case 79:t=3;break;case 120:case 88:t=4;break;default:let I=e.length-1,C=0;for(;e.charCodeAt(C)===48;)C++;return e.slice(C,I)||"0"}let r=2,n=e.length-1,a=(n-r)*t,o=new Uint16Array((a>>>4)+(a&15?1:0));for(let I=n-1,C=0;I>=r;I--,C+=t){let b=C>>>4,E=e.charCodeAt(I),N=(E<=57?E-48:10+E-(E<=70?65:97))<<(C&15);o[b]|=N;let B=N>>>16;B&&(o[b+1]|=B)}let l="",A=o.length-1,f=!0;for(;f;){let I=0;f=!1;for(let C=A;C>=0;C--){let b=I<<16|o[C],E=b/10|0;o[C]=E,I=b-E*10,E&&!f&&(A=C,f=!0)}l=I+l}return l}function c$a({negative:e,base10Value:t}){return(e&&t!=="0"?"-":"")+t}function pNr(e,t){return e.pos=t,e}function l$a(e,t){return e.end=t,e}function Ece(e,t,r){return l$a(pNr(e,t),r)}function j2i(e,t,r){return Ece(e,t,t+r)}function $Nr(e,t){return e&&t&&(e.parent=t),e}function u$a(e,t){if(!e)return e;return vSi(e,Vvi(e)?r:a),e;function r(o,l){if(t&&o.parent===l)return"skip";$Nr(o,l)}function n(o){if(Pme(o))for(let l of o.jsDoc)r(l,o),vSi(l,r)}function a(o,l){return r(o,l)||n(o)}}function g$a(e){return!!(e.flags&262144&&e.isThisType)}function A$a(e){var t;return((t=getSnippetElement(e))==null?void 0:t.kind)===0}function d$a(e){return`${yV(e.namespace)}:${yV(e.name)}`}var jTu=String.prototype.replace,fNr=["assert","assert/strict","async_hooks","buffer","child_process","cluster","console","constants","crypto","dgram","diagnostics_channel","dns","dns/promises","domain","events","fs","fs/promises","http","http2","https","inspector","inspector/promises","module","net","os","path","path/posix","path/win32","perf_hooks","process","punycode","querystring","readline","readline/promises","repl","stream","stream/consumers","stream/promises","stream/web","string_decoder","sys","test/mock_loader","timers","timers/promises","tls","trace_events","tty","url","util","util/types","v8","vm","wasi","worker_threads","zlib"],zTu=new Set(fNr),p$a=new Set(["node:sea","node:sqlite","node:test","node:test/reporters"]),qTu=new Set([...fNr,...fNr.map(e=>`node:${e}`),...p$a]);function f$a(){let e,t,r,n,a;return{createBaseSourceFileNode:o,createBaseIdentifierNode:l,createBasePrivateIdentifierNode:A,createBaseTokenNode:f,createBaseNode:I};function o(C){return new(a||(a=k2.getSourceFileConstructor()))(C,-1,-1)}function l(C){return new(r||(r=k2.getIdentifierConstructor()))(C,-1,-1)}function A(C){return new(n||(n=k2.getPrivateIdentifierConstructor()))(C,-1,-1)}function f(C){return new(t||(t=k2.getTokenConstructor()))(C,-1,-1)}function I(C){return new(e||(e=k2.getNodeConstructor()))(C,-1,-1)}}var I$a={getParenthesizeLeftSideOfBinaryForOperator:e=>VE,getParenthesizeRightSideOfBinaryForOperator:e=>VE,parenthesizeLeftSideOfBinary:(e,t)=>t,parenthesizeRightSideOfBinary:(e,t,r)=>r,parenthesizeExpressionOfComputedPropertyName:VE,parenthesizeConditionOfConditionalExpression:VE,parenthesizeBranchOfConditionalExpression:VE,parenthesizeExpressionOfExportDefault:VE,parenthesizeExpressionOfNew:e=>Aj(e,TNe),parenthesizeLeftSideOfAccess:e=>Aj(e,TNe),parenthesizeOperandOfPostfixUnary:e=>Aj(e,TNe),parenthesizeOperandOfPrefixUnary:e=>Aj(e,Gza),parenthesizeExpressionsOfCommaDelimitedList:e=>Aj(e,_ce),parenthesizeExpressionForDisallowedComma:VE,parenthesizeExpressionOfExpressionStatement:VE,parenthesizeConciseBodyOfArrowFunction:VE,parenthesizeCheckTypeOfConditionalType:VE,parenthesizeExtendsTypeOfConditionalType:VE,parenthesizeConstituentTypesOfUnionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfUnionType:VE,parenthesizeConstituentTypesOfIntersectionType:e=>Aj(e,_ce),parenthesizeConstituentTypeOfIntersectionType:VE,parenthesizeOperandOfTypeOperator:VE,parenthesizeOperandOfReadonlyTypeOperator:VE,parenthesizeNonArrayTypeOfPostfixType:VE,parenthesizeElementTypesOfTupleType:e=>Aj(e,_ce),parenthesizeElementTypeOfTupleType:VE,parenthesizeTypeOfOptionalType:VE,parenthesizeTypeArguments:e=>e&&Aj(e,_ce),parenthesizeLeadingTypeArgument:VE},kbt=0,h$a=[];function eDr(e,t){let r=e&8?VE:b$a,n=w2i(()=>e&1?I$a:createParenthesizerRules(X)),a=w2i(()=>e&2?nullNodeConverters:createNodeConverters(X)),o=eH(z=>(ye,Ve)=>gt(ye,z,Ve)),l=eH(z=>ye=>se(z,ye)),A=eH(z=>ye=>K(ye,z)),f=eH(z=>()=>ND(z)),I=eH(z=>ye=>q_(z,ye)),C=eH(z=>(ye,Ve)=>UR(z,ye,Ve)),b=eH(z=>(ye,Ve)=>DD(z,ye,Ve)),E=eH(z=>(ye,Ve)=>kD(z,ye,Ve)),N=eH(z=>(ye,Ve)=>Mo(z,ye,Ve)),B=eH(z=>(ye,Ve,Ct)=>gp(z,ye,Ve,Ct)),F=eH(z=>(ye,Ve,Ct)=>lF(z,ye,Ve,Ct)),Q=eH(z=>(ye,Ve,Ct,wr)=>uF(z,ye,Ve,Ct,wr)),X={get parenthesizer(){return n()},get converters(){return a()},baseFactory:t,flags:e,createNodeArray:ae,createNumericLiteral:ue,createBigIntLiteral:de,createStringLiteral:Se,createStringLiteralFromNode:De,createRegularExpressionLiteral:k,createLiteralLikeNode:et,createIdentifier:je,createTempVariable:St,createLoopVariable:At,createUniqueName:Yt,getGeneratedNameForNode:Tr,createPrivateIdentifier:er,createUniquePrivateName:xt,getGeneratedPrivateNameForNode:Zr,createToken:Xt,createSuper:lr,createThis:cr,createNull:Ar,createTrue:qr,createFalse:_n,createModifier:ke,createModifiersFromModifierFlags:jt,createQualifiedName:Fn,updateQualifiedName:Nn,createComputedPropertyName:Hi,updateComputedPropertyName:po,createTypeParameterDeclaration:Vr,updateTypeParameterDeclaration:xi,createParameterDeclaration:io,updateParameterDeclaration:ga,createDecorator:Ya,updateDecorator:Gc,createPropertySignature:cl,updatePropertySignature:Sc,createPropertyDeclaration:Wr,updatePropertyDeclaration:Ft,createMethodSignature:zr,updateMethodSignature:Rn,createMethodDeclaration:Or,updateMethodDeclaration:Qi,createConstructorDeclaration:gc,updateConstructorDeclaration:Cg,createGetAccessorDeclaration:iA,updateGetAccessorDeclaration:ma,createSetAccessorDeclaration:li,updateSetAccessorDeclaration:Ei,createCallSignature:Xa,updateCallSignature:ac,createConstructSignature:Yl,updateConstructSignature:Wc,createIndexSignature:Sg,updateIndexSignature:Ul,createClassStaticBlockDeclaration:yo,updateClassStaticBlockDeclaration:bo,createTemplateLiteralTypeSpan:Xu,updateTemplateLiteralTypeSpan:Da,createKeywordTypeNode:pu,createTypePredicateNode:_g,updateTypePredicateNode:mI,createTypeReferenceNode:Qh,updateTypeReferenceNode:Ri,createFunctionTypeNode:Do,updateFunctionTypeNode:Wt,createConstructorTypeNode:Ru,updateConstructorTypeNode:Yn,createTypeQueryNode:OA,updateTypeQueryNode:GA,createTypeLiteralNode:$i,updateTypeLiteralNode:dl,createArrayTypeNode:Uf,updateArrayTypeNode:Kd,createTupleTypeNode:oA,updateTupleTypeNode:oo,createNamedTupleMember:Ki,updateNamedTupleMember:cc,createOptionalTypeNode:Xs,updateOptionalTypeNode:ws,createRestTypeNode:Gs,updateRestTypeNode:Ma,createUnionTypeNode:Tf,updateUnionTypeNode:cm,createIntersectionTypeNode:Fl,updateIntersectionTypeNode:rc,createConditionalTypeNode:sd,updateConditionalTypeNode:Om,createInferTypeNode:il,updateInferTypeNode:FA,createImportTypeNode:yg,updateImportTypeNode:Mp,createParenthesizedType:MA,updateParenthesizedType:Er,createThisTypeNode:Zt,createTypeOperatorNode:yn,updateTypeOperatorNode:ls,createIndexedAccessTypeNode:oa,updateIndexedAccessTypeNode:Fs,createMappedTypeNode:Wa,updateMappedTypeNode:Ca,createLiteralTypeNode:ld,updateLiteralTypeNode:Rp,createTemplateLiteralType:ZA,updateTemplateLiteralType:El,createObjectBindingPattern:np,updateObjectBindingPattern:HA,createArrayBindingPattern:df,updateArrayBindingPattern:Zs,createBindingElement:so,updateBindingElement:Ea,createArrayLiteralExpression:Ml,updateArrayLiteralExpression:Dr,createObjectLiteralExpression:Wn,updateObjectLiteralExpression:di,createPropertyAccessExpression:e&4?(z,ye)=>setEmitFlags(Bo(z,ye),262144):Bo,updatePropertyAccessExpression:us,createPropertyAccessChain:e&4?(z,ye,Ve)=>setEmitFlags(Ql(z,ye,Ve),262144):Ql,updatePropertyAccessChain:LA,createElementAccessExpression:ef,updateElementAccessExpression:ip,createElementAccessChain:_d,updateElementAccessChain:j1,createCallExpression:YA,updateCallExpression:Ac,createCallChain:Nm,updateCallChain:HS,createNewExpression:jd,updateNewExpression:dh,createTaggedTemplateExpression:Hp,updateTaggedTemplateExpression:uC,createTypeAssertion:nE,updateTypeAssertion:J_,createParenthesizedExpression:q0,updateParenthesizedExpression:XE,createFunctionExpression:TC,updateFunctionExpression:t_,createArrowFunction:cp,updateArrowFunction:Mm,createDeleteExpression:fb,updateDeleteExpression:pe,createTypeOfExpression:lm,updateTypeOfExpression:Kf,createVoidExpression:CI,updateVoidExpression:_I,createAwaitExpression:H2,updateAwaitExpression:iE,createPrefixUnaryExpression:se,updatePrefixUnaryExpression:O,createPostfixUnaryExpression:K,updatePostfixUnaryExpression:we,createBinaryExpression:gt,updateBinaryExpression:Yr,createConditionalExpression:Lr,updateConditionalExpression:fi,createTemplateExpression:$n,updateTemplateExpression:ra,createTemplateHead:SA,createTemplateMiddle:lI,createTemplateTail:lp,createNoSubstitutionTemplateLiteral:Ib,createTemplateLiteralLikeNode:$g,createYieldExpression:Na,updateYieldExpression:wd,createSpreadElement:z1,updateSpreadElement:T_,createClassExpression:RC,updateClassExpression:Hm,createOmittedExpression:YS,createExpressionWithTypeArguments:Fg,updateExpressionWithTypeArguments:hb,createAsExpression:gC,updateAsExpression:NC,createNonNullExpression:Y2,updateNonNullExpression:U_,createSatisfiesExpression:DC,updateSatisfiesExpression:kC,createNonNullChain:qI,updateNonNullChain:ph,createMetaProperty:vA,updateMetaProperty:Td,createTemplateSpan:Mc,updateTemplateSpan:Pf,createSemicolonClassElement:sE,createBlock:eA,updateBlock:QS,createVariableStatement:XS,updateVariableStatement:um,createEmptyStatement:gm,createExpressionStatement:cs,updateExpressionStatement:na,createIfStatement:ko,updateIfStatement:ki,createDoStatement:Kl,updateDoStatement:fd,createWhileStatement:jf,updateWhileStatement:Ld,createForStatement:AC,updateForStatement:JE,createForInStatement:Ym,updateForInStatement:vy,createForOfStatement:K_,updateForOfStatement:od,createContinueStatement:UE,updateContinueStatement:KE,createBreakStatement:Yp,updateBreakStatement:JS,createReturnStatement:By,updateReturnStatement:$0,createWithStatement:fw,updateWithStatement:Q2,createSwitchStatement:xc,updateSwitchStatement:ut,createLabeledStatement:ar,updateLabeledStatement:Jr,createThrowStatement:Gn,updateThrowStatement:Ts,createTryStatement:Qo,updateTryStatement:vg,createDebuggerStatement:Ng,createVariableDeclaration:Rf,updateVariableDeclaration:uI,createVariableDeclarationList:Th,updateVariableDeclarationList:oE,createFunctionDeclaration:TT,updateFunctionDeclaration:sB,createClassDeclaration:wy,updateClassDeclaration:jE,createInterfaceDeclaration:j_,updateInterfaceDeclaration:NT,createTypeAliasDeclaration:tf,updateTypeAliasDeclaration:Ty,createEnumDeclaration:US,updateEnumDeclaration:$I,createModuleDeclaration:BA,updateModuleDeclaration:$A,createModuleBlock:Qm,updateModuleBlock:zf,createCaseBlock:mb,updateCaseBlock:R_,createNamespaceExportDeclaration:Cb,updateNamespaceExportDeclaration:Ry,createImportEqualsDeclaration:_b,updateImportEqualsDeclaration:z_,createImportDeclaration:zE,updateImportDeclaration:oB,createImportClause:DT,updateImportClause:aB,createAssertClause:jS,updateAssertClause:XR,createAssertEntry:zS,updateAssertEntry:qE,createImportTypeAssertionContainer:X2,updateImportTypeAssertionContainer:kT,createImportAttributes:pn,updateImportAttributes:q1,createImportAttribute:J2,updateImportAttribute:ey,createNamespaceImport:up,updateNamespaceImport:Iw,createNamespaceExport:cB,updateNamespaceExport:RD,createNamedImports:Rd,updateNamedImports:JR,createImportSpecifier:ty,updateImportSpecifier:cF,createExportAssignment:$1,updateExportAssignment:$E,createExportDeclaration:N_,updateExportDeclaration:e1,createNamedExports:ry,updateNamedExports:xT,createExportSpecifier:yb,updateExportSpecifier:r_,createMissingDeclaration:Rh,createExternalModuleReference:bb,updateExternalModuleReference:lB,get createJSDocAllType(){return f(312)},get createJSDocUnknownType(){return f(313)},get createJSDocNonNullableType(){return b(315)},get updateJSDocNonNullableType(){return E(315)},get createJSDocNullableType(){return b(314)},get updateJSDocNullableType(){return E(314)},get createJSDocOptionalType(){return I(316)},get updateJSDocOptionalType(){return C(316)},get createJSDocVariadicType(){return I(318)},get updateJSDocVariadicType(){return C(318)},get createJSDocNamepathType(){return I(319)},get updateJSDocNamepathType(){return C(319)},createJSDocFunctionType:lc,updateJSDocFunctionType:fh,createJSDocTypeLiteral:rf,updateJSDocTypeLiteral:yI,createJSDocTypeExpression:aE,updateJSDocTypeExpression:qS,createJSDocSignature:Qp,updateJSDocSignature:uB,createJSDocTemplateTag:r1,updateJSDocTemplateTag:gB,createJSDocTypedefTag:hw,updateJSDocTypedefTag:GT,createJSDocParameterTag:b0,updateJSDocParameterTag:ia,createJSDocPropertyTag:e2,updateJSDocPropertyTag:yd,createJSDocCallbackTag:bI,updateJSDocCallbackTag:ag,createJSDocOverloadTag:Eb,updateJSDocOverloadTag:n1,createJSDocAugmentsTag:U2,updateJSDocAugmentsTag:e0,createJSDocImplementsTag:n_,updateJSDocImplementsTag:Wf,createJSDocSeeTag:Xp,updateJSDocSeeTag:cE,createJSDocImportTag:Dp,updateJSDocImportTag:t2,createJSDocNameReference:lE,updateJSDocNameReference:Ip,createJSDocMemberName:Xh,updateJSDocMemberName:E0,createJSDocLink:aA,updateJSDocLink:fu,createJSDocLinkCode:Jp,updateJSDocLinkCode:dC,createJSDocLinkPlain:uE,updateJSDocLinkPlain:eh,get createJSDocTypeTag(){return F(344)},get updateJSDocTypeTag(){return Q(344)},get createJSDocReturnTag(){return F(342)},get updateJSDocReturnTag(){return Q(342)},get createJSDocThisTag(){return F(343)},get updateJSDocThisTag(){return Q(343)},get createJSDocAuthorTag(){return N(330)},get updateJSDocAuthorTag(){return B(330)},get createJSDocClassTag(){return N(332)},get updateJSDocClassTag(){return B(332)},get createJSDocPublicTag(){return N(333)},get updateJSDocPublicTag(){return B(333)},get createJSDocPrivateTag(){return N(334)},get updateJSDocPrivateTag(){return B(334)},get createJSDocProtectedTag(){return N(335)},get updateJSDocProtectedTag(){return B(335)},get createJSDocReadonlyTag(){return N(336)},get updateJSDocReadonlyTag(){return B(336)},get createJSDocOverrideTag(){return N(337)},get updateJSDocOverrideTag(){return B(337)},get createJSDocDeprecatedTag(){return N(331)},get updateJSDocDeprecatedTag(){return B(331)},get createJSDocThrowsTag(){return F(349)},get updateJSDocThrowsTag(){return Q(349)},get createJSDocSatisfiesTag(){return F(350)},get updateJSDocSatisfiesTag(){return Q(350)},createJSDocEnumTag:Np,updateJSDocEnumTag:Dm,createJSDocUnknownTag:gE,updateJSDocUnknownTag:FT,createJSDocText:Ro,updateJSDocText:AE,createJSDocComment:AB,updateJSDocComment:Xc,createJsxElement:iu,updateJsxElement:dE,createJsxSelfClosingElement:yL,updateJsxSelfClosingElement:KR,createJsxOpeningElement:Ou,updateJsxOpeningElement:ny,createJsxClosingElement:hp,updateJsxClosingElement:Am,createJsxFragment:K2,createJsxText:dB,updateJsxText:ZT,createJsxOpeningFragment:Cx,createJsxJsxClosingFragment:pB,updateJsxFragment:i_,createJsxAttribute:qf,updateJsxAttribute:Jh,createJsxAttributes:$S,updateJsxAttributes:Sb,createJsxSpreadAttribute:mp,updateJsxSpreadAttribute:r2,createJsxExpression:i1,updateJsxExpression:Of,createJsxNamespacedName:pE,updateJsxNamespacedName:Vd,createCaseClause:j,updateCaseClause:Z,createDefaultClause:Id,updateDefaultClause:fB,createHeritageClause:ev,updateHeritageClause:Ny,createCatchClause:vb,updateCatchClause:xD,createPropertyAssignment:IB,updatePropertyAssignment:Bb,createShorthandPropertyAssignment:gF,updateShorthandPropertyAssignment:x,createSpreadAssignment:te,updateSpreadAssignment:Re,createEnumMember:Le,updateEnumMember:ft,createSourceFile:dr,updateSourceFile:Ho,createRedirectedSourceFile:Ur,createBundle:Wg,updateBundle:cA,createSyntheticExpression:th,createSyntaxList:xn,createNotEmittedStatement:rn,createNotEmittedTypeElement:ec,createPartiallyEmittedExpression:Ci,updatePartiallyEmittedExpression:Po,createCommaListExpression:dc,updateCommaListExpression:Iu,createSyntheticReferenceExpression:Cl,updateSyntheticReferenceExpression:wl,cloneNode:tv,get createComma(){return o(28)},get createAssignment(){return o(64)},get createLogicalOr(){return o(57)},get createLogicalAnd(){return o(56)},get createBitwiseOr(){return o(52)},get createBitwiseXor(){return o(53)},get createBitwiseAnd(){return o(51)},get createStrictEquality(){return o(37)},get createStrictInequality(){return o(38)},get createEquality(){return o(35)},get createInequality(){return o(36)},get createLessThan(){return o(30)},get createLessThanEquals(){return o(33)},get createGreaterThan(){return o(32)},get createGreaterThanEquals(){return o(34)},get createLeftShift(){return o(48)},get createRightShift(){return o(49)},get createUnsignedRightShift(){return o(50)},get createAdd(){return o(40)},get createSubtract(){return o(41)},get createMultiply(){return o(42)},get createDivide(){return o(44)},get createModulo(){return o(45)},get createExponent(){return o(43)},get createPrefixPlus(){return l(40)},get createPrefixMinus(){return l(41)},get createPrefixIncrement(){return l(46)},get createPrefixDecrement(){return l(47)},get createBitwiseNot(){return l(55)},get createLogicalNot(){return l(54)},get createPostfixIncrement(){return A(46)},get createPostfixDecrement(){return A(47)},createImmediatelyInvokedFunctionExpression:Yu,createImmediatelyInvokedArrowFunction:qO,createVoidZero:hB,createExportDefault:mw,createExternalModuleExport:AF,createTypeCheck:$O,createIsNotTypeCheck:iY,createMethodCall:LT,createGlobalMethodCall:ff,createFunctionBindCall:GD,createFunctionCallCall:dF,createFunctionApplyCall:EL,createArraySliceCall:FD,createArrayConcatCall:fE,createObjectDefinePropertyCall:n2,createObjectGetOwnPropertyDescriptorCall:mB,createReflectGetCall:bd,createReflectSetCall:s1,createPropertyDescriptor:wb,createCallBinding:aY,createAssignmentTargetWrapper:tt,inlineExpressions:Jt,getInternalName:Xr,getLocalName:ui,getExportName:Is,getDeclarationName:Hs,getNamespaceMemberName:Rs,getExternalModuleOrNamespaceExportName:ja,restoreOuterExpressions:sY,restoreEnclosingLabel:oY,createUseStrictPrologue:Nd,copyPrologue:ho,copyStandardPrologue:ed,copyCustomPrologue:Og,ensureUseStrict:Nh,liftToBlock:o1,mergeLexicalEnvironment:q2,replaceModifiers:IE,replaceDecoratorsAndModifiers:zR,replacePropertyName:e3};return hO(h$a,z=>z(X)),X;function ae(z,ye){if(z===void 0||z===x2)z=[];else if(_ce(z)){if(ye===void 0||z.hasTrailingComma===ye)return z.transformFlags===void 0&&q2i(z),Zo.attachNodeArrayDebugInfo(z),z;let wr=z.slice();return wr.pos=z.pos,wr.end=z.end,wr.hasTrailingComma=ye,wr.transformFlags=z.transformFlags,Zo.attachNodeArrayDebugInfo(wr),wr}let Ve=z.length,Ct=Ve>=1&&Ve<=4?z.slice():z;return Ct.pos=-1,Ct.end=-1,Ct.hasTrailingComma=!!ye,Ct.transformFlags=0,q2i(Ct),Zo.attachNodeArrayDebugInfo(Ct),Ct}function ne(z){return t.createBaseNode(z)}function ce(z){let ye=ne(z);return ye.symbol=void 0,ye.localSymbol=void 0,ye}function fe(z,ye){return z!==ye&&(z.typeArguments=ye.typeArguments),Eo(z,ye)}function ue(z,ye=0){let Ve=typeof z=="number"?z+"":z;Zo.assert(Ve.charCodeAt(0)!==45,"Negative numbers should be created in combination with createPrefixUnaryExpression");let Ct=ce(9);return Ct.text=Ve,Ct.numericLiteralFlags=ye,ye&384&&(Ct.transformFlags|=1024),Ct}function de(z){let ye=qt(10);return ye.text=typeof z=="string"?z:c$a(z)+"n",ye.transformFlags|=32,ye}function be(z,ye){let Ve=ce(11);return Ve.text=z,Ve.singleQuote=ye,Ve}function Se(z,ye,Ve){let Ct=be(z,ye);return Ct.hasExtendedUnicodeEscape=Ve,Ve&&(Ct.transformFlags|=1024),Ct}function De(z){let ye=be(Sqa(z),void 0);return ye.textSourceNode=z,ye}function k(z){let ye=qt(14);return ye.text=z,ye}function et(z,ye){switch(z){case 9:return ue(ye,0);case 10:return de(ye);case 11:return Se(ye,void 0);case 12:return dB(ye,!1);case 13:return dB(ye,!0);case 14:return k(ye);case 15:return $g(z,ye,void 0,0)}}function ct(z){let ye=t.createBaseIdentifierNode(80);return ye.escapedText=z,ye.jsDoc=void 0,ye.flowNode=void 0,ye.symbol=void 0,ye}function Me(z,ye,Ve,Ct){let wr=ct(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function je(z,ye,Ve){ye===void 0&&z&&(ye=pvi(z)),ye===80&&(ye=void 0);let Ct=ct(mNe(z));return Ve&&(Ct.flags|=256),Ct.escapedText==="await"&&(Ct.transformFlags|=67108864),Ct.flags&256&&(Ct.transformFlags|=1024),Ct}function St(z,ye,Ve,Ct){let wr=1;ye&&(wr|=8);let ai=Me("",wr,Ve,Ct);return z&&z(ai),ai}function At(z){let ye=2;return z&&(ye|=8),Me("",ye,void 0,void 0)}function Yt(z,ye=0,Ve,Ct){return Zo.assert(!(ye&7),"Argument out of range: flags"),Zo.assert((ye&48)!==32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),Me(z,3|ye,Ve,Ct)}function Tr(z,ye=0,Ve,Ct){Zo.assert(!(ye&7),"Argument out of range: flags");let wr=z?gNr(z)?CNr(!1,Ve,z,Ct,yV):`generated@${getNodeId(z)}`:"";(Ve||Ct)&&(ye|=16);let ai=Me(wr,4|ye,Ve,Ct);return ai.original=z,ai}function Nr(z){let ye=t.createBasePrivateIdentifierNode(81);return ye.escapedText=z,ye.transformFlags|=16777216,ye}function er(z){return Obt(z,"#")||Zo.fail("First character of private identifier must be #: "+z),Nr(mNe(z))}function vt(z,ye,Ve,Ct){let wr=Nr(mNe(z));return setIdentifierAutoGenerate(wr,{flags:ye,id:kbt,prefix:Ve,suffix:Ct}),kbt++,wr}function xt(z,ye,Ve){z&&!Obt(z,"#")&&Zo.fail("First character of private identifier must be #: "+z);let Ct=8|(z?3:1);return vt(z??"",Ct,ye,Ve)}function Zr(z,ye,Ve){let Ct=gNr(z)?CNr(!0,ye,z,Ve,yV):`#generated@${getNodeId(z)}`,wr=vt(Ct,4|(ye||Ve?16:0),ye,Ve);return wr.original=z,wr}function qt(z){return t.createBaseTokenNode(z)}function Xt(z){Zo.assert(z>=0&&z<=165,"Invalid token"),Zo.assert(z<=15||z>=18,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),Zo.assert(z<=9||z>=15,"Invalid token. Use 'createLiteralLikeNode' to create literals."),Zo.assert(z!==80,"Invalid token. Use 'createIdentifier' to create identifiers");let ye=qt(z),Ve=0;switch(z){case 134:Ve=384;break;case 160:Ve=4;break;case 125:case 123:case 124:case 148:case 128:case 138:case 87:case 133:case 150:case 163:case 146:case 151:case 103:case 147:case 164:case 154:case 136:case 155:case 116:case 159:case 157:Ve=1;break;case 108:Ve=134218752,ye.flowNode=void 0;break;case 126:Ve=1024;break;case 129:Ve=16777216;break;case 110:Ve=16384,ye.flowNode=void 0;break}return Ve&&(ye.transformFlags|=Ve),ye}function lr(){return Xt(108)}function cr(){return Xt(110)}function Ar(){return Xt(106)}function qr(){return Xt(112)}function _n(){return Xt(97)}function ke(z){return Xt(z)}function jt(z){let ye=[];return z&32&&ye.push(ke(95)),z&128&&ye.push(ke(138)),z&2048&&ye.push(ke(90)),z&4096&&ye.push(ke(87)),z&1&&ye.push(ke(125)),z&2&&ye.push(ke(123)),z&4&&ye.push(ke(124)),z&64&&ye.push(ke(128)),z&256&&ye.push(ke(126)),z&16&&ye.push(ke(164)),z&8&&ye.push(ke(148)),z&512&&ye.push(ke(129)),z&1024&&ye.push(ke(134)),z&8192&&ye.push(ke(103)),z&16384&&ye.push(ke(147)),ye.length?ye:void 0}function Fn(z,ye){let Ve=ne(166);return Ve.left=z,Ve.right=EI(ye),Ve.transformFlags|=$o(Ve.left)|_Ne(Ve.right),Ve.flowNode=void 0,Ve}function Nn(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Fn(ye,Ve),z):z}function Hi(z){let ye=ne(167);return ye.expression=n().parenthesizeExpressionOfComputedPropertyName(z),ye.transformFlags|=$o(ye.expression)|1024|131072,ye}function po(z,ye){return z.expression!==ye?Eo(Hi(ye),z):z}function Vr(z,ye,Ve,Ct){let wr=ce(168);return wr.modifiers=IA(z),wr.name=EI(ye),wr.constraint=Ve,wr.default=Ct,wr.transformFlags=1,wr.expression=void 0,wr.jsDoc=void 0,wr}function xi(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.constraint!==Ct||z.default!==wr?Eo(Vr(ye,Ve,Ct,wr),z):z}function io(z,ye,Ve,Ct,wr,ai){let Lo=ce(169);return Lo.modifiers=IA(z),Lo.dotDotDotToken=ye,Lo.name=EI(Ve),Lo.questionToken=Ct,Lo.type=wr,Lo.initializer=wA(ai),Bqa(Lo.name)?Lo.transformFlags=1:Lo.transformFlags=qA(Lo.modifiers)|$o(Lo.dotDotDotToken)|pO(Lo.name)|$o(Lo.questionToken)|$o(Lo.initializer)|(Lo.questionToken??Lo.type?1:0)|(Lo.dotDotDotToken??Lo.initializer?1024:0)|(fO(Lo.modifiers)&31?8192:0),Lo.jsDoc=void 0,Lo}function ga(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.dotDotDotToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.type!==ai||z.initializer!==Lo?Eo(io(ye,Ve,Ct,wr,ai,Lo),z):z}function Ya(z){let ye=ne(170);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1|8192|33554432,ye}function Gc(z,ye){return z.expression!==ye?Eo(Ya(ye),z):z}function cl(z,ye,Ve,Ct){let wr=ce(171);return wr.modifiers=IA(z),wr.name=EI(ye),wr.type=Ct,wr.questionToken=Ve,wr.transformFlags=1,wr.initializer=void 0,wr.jsDoc=void 0,wr}function Sc(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Hr(cl(ye,Ve,Ct,wr),z):z}function Hr(z,ye){return z!==ye&&(z.initializer=ye.initializer),Eo(z,ye)}function Wr(z,ye,Ve,Ct,wr){let ai=ce(172);ai.modifiers=IA(z),ai.name=EI(ye),ai.questionToken=Ve&&eSi(Ve)?Ve:void 0,ai.exclamationToken=Ve&&$2i(Ve)?Ve:void 0,ai.type=Ct,ai.initializer=wA(wr);let Lo=ai.flags&33554432||fO(ai.modifiers)&128;return ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|$o(ai.initializer)|(Lo||ai.questionToken||ai.exclamationToken||ai.type?1:0)|($vi(ai.name)||fO(ai.modifiers)&256&&ai.initializer?8192:0)|16777216,ai.jsDoc=void 0,ai}function Ft(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==(Ct!==void 0&&eSi(Ct)?Ct:void 0)||z.exclamationToken!==(Ct!==void 0&&$2i(Ct)?Ct:void 0)||z.type!==wr||z.initializer!==ai?Eo(Wr(ye,Ve,Ct,wr,ai),z):z}function zr(z,ye,Ve,Ct,wr,ai){let Lo=ce(173);return Lo.modifiers=IA(z),Lo.name=EI(ye),Lo.questionToken=Ve,Lo.typeParameters=IA(Ct),Lo.parameters=IA(wr),Lo.type=ai,Lo.transformFlags=1,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.typeArguments=void 0,Lo}function Rn(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.name!==Ve||z.questionToken!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo?fe(zr(ye,Ve,Ct,wr,ai,Lo),z):z}function Or(z,ye,Ve,Ct,wr,ai,Lo,Hc){let ad=ce(174);if(ad.modifiers=IA(z),ad.asteriskToken=ye,ad.name=EI(Ve),ad.questionToken=Ct,ad.exclamationToken=void 0,ad.typeParameters=IA(wr),ad.parameters=ae(ai),ad.type=Lo,ad.body=Hc,!ad.body)ad.transformFlags=1;else{let dm=fO(ad.modifiers)&1024,rv=!!ad.asteriskToken,nv=dm&&rv;ad.transformFlags=qA(ad.modifiers)|$o(ad.asteriskToken)|pO(ad.name)|$o(ad.questionToken)|qA(ad.typeParameters)|qA(ad.parameters)|$o(ad.type)|$o(ad.body)&-67108865|(nv?128:dm?256:rv?2048:0)|(ad.questionToken||ad.typeParameters||ad.type?1:0)|1024}return ad.typeArguments=void 0,ad.jsDoc=void 0,ad.locals=void 0,ad.nextContainer=void 0,ad.flowNode=void 0,ad.endFlowNode=void 0,ad.returnFlowNode=void 0,ad}function Qi(z,ye,Ve,Ct,wr,ai,Lo,Hc,ad){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.questionToken!==wr||z.typeParameters!==ai||z.parameters!==Lo||z.type!==Hc||z.body!==ad?ps(Or(ye,Ve,Ct,wr,ai,Lo,Hc,ad),z):z}function ps(z,ye){return z!==ye&&(z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function yo(z){let ye=ce(175);return ye.body=z,ye.transformFlags=$o(z)|16777216,ye.modifiers=void 0,ye.jsDoc=void 0,ye.locals=void 0,ye.nextContainer=void 0,ye.endFlowNode=void 0,ye.returnFlowNode=void 0,ye}function bo(z,ye){return z.body!==ye?Qa(yo(ye),z):z}function Qa(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function gc(z,ye,Ve){let Ct=ce(176);return Ct.modifiers=IA(z),Ct.parameters=ae(ye),Ct.body=Ve,Ct.body?Ct.transformFlags=qA(Ct.modifiers)|qA(Ct.parameters)|$o(Ct.body)&-67108865|1024:Ct.transformFlags=1,Ct.typeParameters=void 0,Ct.type=void 0,Ct.typeArguments=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.returnFlowNode=void 0,Ct}function Cg(z,ye,Ve,Ct){return z.modifiers!==ye||z.parameters!==Ve||z.body!==Ct?Nc(gc(ye,Ve,Ct),z):z}function Nc(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function iA(z,ye,Ve,Ct,wr){let ai=ce(177);return ai.modifiers=IA(z),ai.name=EI(ye),ai.parameters=ae(Ve),ai.type=Ct,ai.body=wr,ai.body?ai.transformFlags=qA(ai.modifiers)|pO(ai.name)|qA(ai.parameters)|$o(ai.type)|$o(ai.body)&-67108865|(ai.type?1:0):ai.transformFlags=1,ai.typeArguments=void 0,ai.typeParameters=void 0,ai.jsDoc=void 0,ai.locals=void 0,ai.nextContainer=void 0,ai.flowNode=void 0,ai.endFlowNode=void 0,ai.returnFlowNode=void 0,ai}function ma(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.type!==wr||z.body!==ai?vu(iA(ye,Ve,Ct,wr,ai),z):z}function vu(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters),fe(z,ye)}function li(z,ye,Ve,Ct){let wr=ce(178);return wr.modifiers=IA(z),wr.name=EI(ye),wr.parameters=ae(Ve),wr.body=Ct,wr.body?wr.transformFlags=qA(wr.modifiers)|pO(wr.name)|qA(wr.parameters)|$o(wr.body)&-67108865|(wr.type?1:0):wr.transformFlags=1,wr.typeArguments=void 0,wr.typeParameters=void 0,wr.type=void 0,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr.endFlowNode=void 0,wr.returnFlowNode=void 0,wr}function Ei(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.parameters!==Ct||z.body!==wr?Ps(li(ye,Ve,Ct,wr),z):z}function Ps(z,ye){return z!==ye&&(z.typeParameters=ye.typeParameters,z.type=ye.type),fe(z,ye)}function Xa(z,ye,Ve){let Ct=ce(179);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function ac(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Xa(ye,Ve,Ct),z):z}function Yl(z,ye,Ve){let Ct=ce(180);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wc(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?fe(Yl(ye,Ve,Ct),z):z}function Sg(z,ye,Ve){let Ct=ce(181);return Ct.modifiers=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Ul(z,ye,Ve,Ct){return z.parameters!==Ve||z.type!==Ct||z.modifiers!==ye?fe(Sg(ye,Ve,Ct),z):z}function Xu(z,ye){let Ve=ne(204);return Ve.type=z,Ve.literal=ye,Ve.transformFlags=1,Ve}function Da(z,ye,Ve){return z.type!==ye||z.literal!==Ve?Eo(Xu(ye,Ve),z):z}function pu(z){return Xt(z)}function _g(z,ye,Ve){let Ct=ne(182);return Ct.assertsModifier=z,Ct.parameterName=EI(ye),Ct.type=Ve,Ct.transformFlags=1,Ct}function mI(z,ye,Ve,Ct){return z.assertsModifier!==ye||z.parameterName!==Ve||z.type!==Ct?Eo(_g(ye,Ve,Ct),z):z}function Qh(z,ye){let Ve=ne(183);return Ve.typeName=EI(z),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ae(ye)),Ve.transformFlags=1,Ve}function Ri(z,ye,Ve){return z.typeName!==ye||z.typeArguments!==Ve?Eo(Qh(ye,Ve),z):z}function Do(z,ye,Ve){let Ct=ce(184);return Ct.typeParameters=IA(z),Ct.parameters=IA(ye),Ct.type=Ve,Ct.transformFlags=1,Ct.modifiers=void 0,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.typeArguments=void 0,Ct}function Wt(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Hu(Do(ye,Ve,Ct),z):z}function Hu(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),fe(z,ye)}function Ru(...z){return z.length===4?Vs(...z):z.length===3?Ju(...z):Zo.fail("Incorrect number of arguments specified.")}function Vs(z,ye,Ve,Ct){let wr=ce(185);return wr.modifiers=IA(z),wr.typeParameters=IA(ye),wr.parameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.typeArguments=void 0,wr}function Ju(z,ye,Ve){return Vs(void 0,z,ye,Ve)}function Yn(...z){return z.length===5?Ko(...z):z.length===4?Eg(...z):Zo.fail("Incorrect number of arguments specified.")}function Ko(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr?fe(Ru(ye,Ve,Ct,wr),z):z}function Eg(z,ye,Ve,Ct){return Ko(z,z.modifiers,ye,Ve,Ct)}function OA(z,ye){let Ve=ne(186);return Ve.exprName=z,Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags=1,Ve}function GA(z,ye,Ve){return z.exprName!==ye||z.typeArguments!==Ve?Eo(OA(ye,Ve),z):z}function $i(z){let ye=ce(187);return ye.members=ae(z),ye.transformFlags=1,ye}function dl(z,ye){return z.members!==ye?Eo($i(ye),z):z}function Uf(z){let ye=ne(188);return ye.elementType=n().parenthesizeNonArrayTypeOfPostfixType(z),ye.transformFlags=1,ye}function Kd(z,ye){return z.elementType!==ye?Eo(Uf(ye),z):z}function oA(z){let ye=ne(189);return ye.elements=ae(n().parenthesizeElementTypesOfTupleType(z)),ye.transformFlags=1,ye}function oo(z,ye){return z.elements!==ye?Eo(oA(ye),z):z}function Ki(z,ye,Ve,Ct){let wr=ce(202);return wr.dotDotDotToken=z,wr.name=ye,wr.questionToken=Ve,wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr}function cc(z,ye,Ve,Ct,wr){return z.dotDotDotToken!==ye||z.name!==Ve||z.questionToken!==Ct||z.type!==wr?Eo(Ki(ye,Ve,Ct,wr),z):z}function Xs(z){let ye=ne(190);return ye.type=n().parenthesizeTypeOfOptionalType(z),ye.transformFlags=1,ye}function ws(z,ye){return z.type!==ye?Eo(Xs(ye),z):z}function Gs(z){let ye=ne(191);return ye.type=z,ye.transformFlags=1,ye}function Ma(z,ye){return z.type!==ye?Eo(Gs(ye),z):z}function Dc(z,ye,Ve){let Ct=ne(z);return Ct.types=X.createNodeArray(Ve(ye)),Ct.transformFlags=1,Ct}function As(z,ye,Ve){return z.types!==ye?Eo(Dc(z.kind,ye,Ve),z):z}function Tf(z){return Dc(192,z,n().parenthesizeConstituentTypesOfUnionType)}function cm(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfUnionType)}function Fl(z){return Dc(193,z,n().parenthesizeConstituentTypesOfIntersectionType)}function rc(z,ye){return As(z,ye,n().parenthesizeConstituentTypesOfIntersectionType)}function sd(z,ye,Ve,Ct){let wr=ne(194);return wr.checkType=n().parenthesizeCheckTypeOfConditionalType(z),wr.extendsType=n().parenthesizeExtendsTypeOfConditionalType(ye),wr.trueType=Ve,wr.falseType=Ct,wr.transformFlags=1,wr.locals=void 0,wr.nextContainer=void 0,wr}function Om(z,ye,Ve,Ct,wr){return z.checkType!==ye||z.extendsType!==Ve||z.trueType!==Ct||z.falseType!==wr?Eo(sd(ye,Ve,Ct,wr),z):z}function il(z){let ye=ne(195);return ye.typeParameter=z,ye.transformFlags=1,ye}function FA(z,ye){return z.typeParameter!==ye?Eo(il(ye),z):z}function ZA(z,ye){let Ve=ne(203);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags=1,Ve}function El(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo(ZA(ye,Ve),z):z}function yg(z,ye,Ve,Ct,wr=!1){let ai=ne(205);return ai.argument=z,ai.attributes=ye,ai.assertions&&ai.assertions.assertClause&&ai.attributes&&(ai.assertions.assertClause=ai.attributes),ai.qualifier=Ve,ai.typeArguments=Ct&&n().parenthesizeTypeArguments(Ct),ai.isTypeOf=wr,ai.transformFlags=1,ai}function Mp(z,ye,Ve,Ct,wr,ai=z.isTypeOf){return z.argument!==ye||z.attributes!==Ve||z.qualifier!==Ct||z.typeArguments!==wr||z.isTypeOf!==ai?Eo(yg(ye,Ve,Ct,wr,ai),z):z}function MA(z){let ye=ne(196);return ye.type=z,ye.transformFlags=1,ye}function Er(z,ye){return z.type!==ye?Eo(MA(ye),z):z}function Zt(){let z=ne(197);return z.transformFlags=1,z}function yn(z,ye){let Ve=ne(198);return Ve.operator=z,Ve.type=z===148?n().parenthesizeOperandOfReadonlyTypeOperator(ye):n().parenthesizeOperandOfTypeOperator(ye),Ve.transformFlags=1,Ve}function ls(z,ye){return z.type!==ye?Eo(yn(z.operator,ye),z):z}function oa(z,ye){let Ve=ne(199);return Ve.objectType=n().parenthesizeNonArrayTypeOfPostfixType(z),Ve.indexType=ye,Ve.transformFlags=1,Ve}function Fs(z,ye,Ve){return z.objectType!==ye||z.indexType!==Ve?Eo(oa(ye,Ve),z):z}function Wa(z,ye,Ve,Ct,wr,ai){let Lo=ce(200);return Lo.readonlyToken=z,Lo.typeParameter=ye,Lo.nameType=Ve,Lo.questionToken=Ct,Lo.type=wr,Lo.members=ai&&ae(ai),Lo.transformFlags=1,Lo.locals=void 0,Lo.nextContainer=void 0,Lo}function Ca(z,ye,Ve,Ct,wr,ai,Lo){return z.readonlyToken!==ye||z.typeParameter!==Ve||z.nameType!==Ct||z.questionToken!==wr||z.type!==ai||z.members!==Lo?Eo(Wa(ye,Ve,Ct,wr,ai,Lo),z):z}function ld(z){let ye=ne(201);return ye.literal=z,ye.transformFlags=1,ye}function Rp(z,ye){return z.literal!==ye?Eo(ld(ye),z):z}function np(z){let ye=ne(206);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye.transformFlags&32768&&(ye.transformFlags|=65664),ye}function HA(z,ye){return z.elements!==ye?Eo(np(ye),z):z}function df(z){let ye=ne(207);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements)|1024|524288,ye}function Zs(z,ye){return z.elements!==ye?Eo(df(ye),z):z}function so(z,ye,Ve,Ct){let wr=ce(208);return wr.dotDotDotToken=z,wr.propertyName=EI(ye),wr.name=EI(Ve),wr.initializer=wA(Ct),wr.transformFlags|=$o(wr.dotDotDotToken)|pO(wr.propertyName)|pO(wr.name)|$o(wr.initializer)|(wr.dotDotDotToken?32768:0)|1024,wr.flowNode=void 0,wr}function Ea(z,ye,Ve,Ct,wr){return z.propertyName!==Ve||z.dotDotDotToken!==ye||z.name!==Ct||z.initializer!==wr?Eo(so(ye,Ve,Ct,wr),z):z}function Ml(z,ye){let Ve=ne(209),Ct=z&&Vme(z),wr=ae(z,Ct&&oec(Ct)?!0:void 0);return Ve.elements=n().parenthesizeExpressionsOfCommaDelimitedList(wr),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.elements),Ve}function Dr(z,ye){return z.elements!==ye?Eo(Ml(ye,z.multiLine),z):z}function Wn(z,ye){let Ve=ce(210);return Ve.properties=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.properties),Ve.jsDoc=void 0,Ve}function di(z,ye){return z.properties!==ye?Eo(Wn(ye,z.multiLine),z):z}function aa(z,ye,Ve){let Ct=ce(211);return Ct.expression=z,Ct.questionDotToken=ye,Ct.name=Ve,Ct.transformFlags=$o(Ct.expression)|$o(Ct.questionDotToken)|($C(Ct.name)?_Ne(Ct.name):$o(Ct.name)|536870912),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function Bo(z,ye){let Ve=aa(n().parenthesizeLeftSideOfAccess(z,!1),void 0,EI(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function us(z,ye,Ve){return hza(z)?LA(z,ye,z.questionDotToken,Aj(Ve,$C)):z.expression!==ye||z.name!==Ve?Eo(Bo(ye,Ve),z):z}function Ql(z,ye,Ve){let Ct=aa(n().parenthesizeLeftSideOfAccess(z,!0),ye,EI(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function LA(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.name!==Ct?Eo(Ql(ye,Ve,Ct),z):z}function pf(z,ye,Ve){let Ct=ce(212);return Ct.expression=z,Ct.questionDotToken=ye,Ct.argumentExpression=Ve,Ct.transformFlags|=$o(Ct.expression)|$o(Ct.questionDotToken)|$o(Ct.argumentExpression),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ef(z,ye){let Ve=pf(n().parenthesizeLeftSideOfAccess(z,!1),void 0,zd(ye));return $Rr(z)&&(Ve.transformFlags|=384),Ve}function ip(z,ye,Ve){return mza(z)?j1(z,ye,z.questionDotToken,Ve):z.expression!==ye||z.argumentExpression!==Ve?Eo(ef(ye,Ve),z):z}function _d(z,ye,Ve){let Ct=pf(n().parenthesizeLeftSideOfAccess(z,!0),ye,zd(Ve));return Ct.flags|=64,Ct.transformFlags|=32,Ct}function j1(z,ye,Ve,Ct){return Zo.assert(!!(z.flags&64),"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead."),z.expression!==ye||z.questionDotToken!==Ve||z.argumentExpression!==Ct?Eo(_d(ye,Ve,Ct),z):z}function pw(z,ye,Ve,Ct){let wr=ce(213);return wr.expression=z,wr.questionDotToken=ye,wr.typeArguments=Ve,wr.arguments=Ct,wr.transformFlags|=$o(wr.expression)|$o(wr.questionDotToken)|qA(wr.typeArguments)|qA(wr.arguments),wr.typeArguments&&(wr.transformFlags|=1),Q2i(wr.expression)&&(wr.transformFlags|=16384),wr}function YA(z,ye,Ve){let Ct=pw(n().parenthesizeLeftSideOfAccess(z,!1),void 0,IA(ye),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ve)));return R$a(Ct.expression)&&(Ct.transformFlags|=8388608),Ct}function Ac(z,ye,Ve,Ct){return V2i(z)?HS(z,ye,z.questionDotToken,Ve,Ct):z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(YA(ye,Ve,Ct),z):z}function Nm(z,ye,Ve,Ct){let wr=pw(n().parenthesizeLeftSideOfAccess(z,!0),ye,IA(Ve),n().parenthesizeExpressionsOfCommaDelimitedList(ae(Ct)));return wr.flags|=64,wr.transformFlags|=32,wr}function HS(z,ye,Ve,Ct,wr){return Zo.assert(!!(z.flags&64),"Cannot update a CallExpression using updateCallChain. Use updateCall instead."),z.expression!==ye||z.questionDotToken!==Ve||z.typeArguments!==Ct||z.arguments!==wr?Eo(Nm(ye,Ve,Ct,wr),z):z}function jd(z,ye,Ve){let Ct=ce(214);return Ct.expression=n().parenthesizeExpressionOfNew(z),Ct.typeArguments=IA(ye),Ct.arguments=Ve?n().parenthesizeExpressionsOfCommaDelimitedList(Ve):void 0,Ct.transformFlags|=$o(Ct.expression)|qA(Ct.typeArguments)|qA(Ct.arguments)|32,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function dh(z,ye,Ve,Ct){return z.expression!==ye||z.typeArguments!==Ve||z.arguments!==Ct?Eo(jd(ye,Ve,Ct),z):z}function Hp(z,ye,Ve){let Ct=ne(215);return Ct.tag=n().parenthesizeLeftSideOfAccess(z,!1),Ct.typeArguments=IA(ye),Ct.template=Ve,Ct.transformFlags|=$o(Ct.tag)|qA(Ct.typeArguments)|$o(Ct.template)|1024,Ct.typeArguments&&(Ct.transformFlags|=1),vqa(Ct.template)&&(Ct.transformFlags|=128),Ct}function uC(z,ye,Ve,Ct){return z.tag!==ye||z.typeArguments!==Ve||z.template!==Ct?Eo(Hp(ye,Ve,Ct),z):z}function nE(z,ye){let Ve=ne(216);return Ve.expression=n().parenthesizeOperandOfPrefixUnary(ye),Ve.type=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function J_(z,ye,Ve){return z.type!==ye||z.expression!==Ve?Eo(nE(ye,Ve),z):z}function q0(z){let ye=ne(217);return ye.expression=z,ye.transformFlags=$o(ye.expression),ye.jsDoc=void 0,ye}function XE(z,ye){return z.expression!==ye?Eo(q0(ye),z):z}function TC(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(218);Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo;let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;return Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304,Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.flowNode=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function t_(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.name!==Ct||z.modifiers!==ye||z.asteriskToken!==Ve||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?fe(TC(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function cp(z,ye,Ve,Ct,wr,ai){let Lo=ce(219);Lo.modifiers=IA(z),Lo.typeParameters=IA(ye),Lo.parameters=ae(Ve),Lo.type=Ct,Lo.equalsGreaterThanToken=wr??Xt(39),Lo.body=n().parenthesizeConciseBodyOfArrowFunction(ai);let Hc=fO(Lo.modifiers)&1024;return Lo.transformFlags=qA(Lo.modifiers)|qA(Lo.typeParameters)|qA(Lo.parameters)|$o(Lo.type)|$o(Lo.equalsGreaterThanToken)|$o(Lo.body)&-67108865|(Lo.typeParameters||Lo.type?1:0)|(Hc?16640:0)|1024,Lo.typeArguments=void 0,Lo.jsDoc=void 0,Lo.locals=void 0,Lo.nextContainer=void 0,Lo.flowNode=void 0,Lo.endFlowNode=void 0,Lo.returnFlowNode=void 0,Lo}function Mm(z,ye,Ve,Ct,wr,ai,Lo){return z.modifiers!==ye||z.typeParameters!==Ve||z.parameters!==Ct||z.type!==wr||z.equalsGreaterThanToken!==ai||z.body!==Lo?fe(cp(ye,Ve,Ct,wr,ai,Lo),z):z}function fb(z){let ye=ne(220);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function pe(z,ye){return z.expression!==ye?Eo(fb(ye),z):z}function lm(z){let ye=ne(221);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function Kf(z,ye){return z.expression!==ye?Eo(lm(ye),z):z}function CI(z){let ye=ne(222);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression),ye}function _I(z,ye){return z.expression!==ye?Eo(CI(ye),z):z}function H2(z){let ye=ne(223);return ye.expression=n().parenthesizeOperandOfPrefixUnary(z),ye.transformFlags|=$o(ye.expression)|256|128|2097152,ye}function iE(z,ye){return z.expression!==ye?Eo(H2(ye),z):z}function se(z,ye){let Ve=ne(224);return Ve.operator=z,Ve.operand=n().parenthesizeOperandOfPrefixUnary(ye),Ve.transformFlags|=$o(Ve.operand),(z===46||z===47)&&$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function O(z,ye){return z.operand!==ye?Eo(se(z.operator,ye),z):z}function K(z,ye){let Ve=ne(225);return Ve.operator=ye,Ve.operand=n().parenthesizeOperandOfPostfixUnary(z),Ve.transformFlags|=$o(Ve.operand),$C(Ve.operand)&&!vNe(Ve.operand)&&!iSi(Ve.operand)&&(Ve.transformFlags|=268435456),Ve}function we(z,ye){return z.operand!==ye?Eo(K(ye,z.operator),z):z}function gt(z,ye,Ve){let Ct=ce(226),wr=qR(ye),ai=wr.kind;return Ct.left=n().parenthesizeLeftSideOfBinary(ai,z),Ct.operatorToken=wr,Ct.right=n().parenthesizeRightSideOfBinary(ai,Ct.left,Ve),Ct.transformFlags|=$o(Ct.left)|$o(Ct.operatorToken)|$o(Ct.right),ai===61?Ct.transformFlags|=32:ai===64?oBi(Ct.left)?Ct.transformFlags|=5248|sr(Ct.left):tec(Ct.left)&&(Ct.transformFlags|=5120|sr(Ct.left)):ai===43||ai===68?Ct.transformFlags|=512:Zqa(ai)&&(Ct.transformFlags|=16),ai===103&&Yme(Ct.left)&&(Ct.transformFlags|=536870912),Ct.jsDoc=void 0,Ct}function sr(z){return SBi(z)?65536:0}function Yr(z,ye,Ve,Ct){return z.left!==ye||z.operatorToken!==Ve||z.right!==Ct?Eo(gt(ye,Ve,Ct),z):z}function Lr(z,ye,Ve,Ct,wr){let ai=ne(227);return ai.condition=n().parenthesizeConditionOfConditionalExpression(z),ai.questionToken=ye??Xt(58),ai.whenTrue=n().parenthesizeBranchOfConditionalExpression(Ve),ai.colonToken=Ct??Xt(59),ai.whenFalse=n().parenthesizeBranchOfConditionalExpression(wr),ai.transformFlags|=$o(ai.condition)|$o(ai.questionToken)|$o(ai.whenTrue)|$o(ai.colonToken)|$o(ai.whenFalse),ai}function fi(z,ye,Ve,Ct,wr,ai){return z.condition!==ye||z.questionToken!==Ve||z.whenTrue!==Ct||z.colonToken!==wr||z.whenFalse!==ai?Eo(Lr(ye,Ve,Ct,wr,ai),z):z}function $n(z,ye){let Ve=ne(228);return Ve.head=z,Ve.templateSpans=ae(ye),Ve.transformFlags|=$o(Ve.head)|qA(Ve.templateSpans)|1024,Ve}function ra(z,ye,Ve){return z.head!==ye||z.templateSpans!==Ve?Eo($n(ye,Ve),z):z}function kc(z,ye,Ve,Ct=0){Zo.assert(!(Ct&-7177),"Unsupported template flags.");let wr;if(Ve!==void 0&&Ve!==ye&&(wr=m$a(z,Ve),typeof wr=="object"))return Zo.fail("Invalid raw text");if(ye===void 0){if(wr===void 0)return Zo.fail("Arguments 'text' and 'rawText' may not both be undefined.");ye=wr}else wr!==void 0&&Zo.assert(ye===wr,"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.");return ye}function Nl(z){let ye=1024;return z&&(ye|=128),ye}function ca(z,ye,Ve,Ct){let wr=qt(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function Bl(z,ye,Ve,Ct){let wr=ce(z);return wr.text=ye,wr.rawText=Ve,wr.templateFlags=Ct&7176,wr.transformFlags=Nl(wr.templateFlags),wr}function $g(z,ye,Ve,Ct){return z===15?Bl(z,ye,Ve,Ct):ca(z,ye,Ve,Ct)}function SA(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(16,z,ye,Ve)}function lI(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(17,z,ye,Ve)}function lp(z,ye,Ve){return z=kc(16,z,ye,Ve),$g(18,z,ye,Ve)}function Ib(z,ye,Ve){return z=kc(16,z,ye,Ve),Bl(15,z,ye,Ve)}function Na(z,ye){Zo.assert(!z||!!ye,"A `YieldExpression` with an asteriskToken must have an expression.");let Ve=ne(229);return Ve.expression=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.asteriskToken=z,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.asteriskToken)|1024|128|1048576,Ve}function wd(z,ye,Ve){return z.expression!==Ve||z.asteriskToken!==ye?Eo(Na(ye,Ve),z):z}function z1(z){let ye=ne(230);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|1024|32768,ye}function T_(z,ye){return z.expression!==ye?Eo(z1(ye),z):z}function RC(z,ye,Ve,Ct,wr){let ai=ce(231);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.jsDoc=void 0,ai}function Hm(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(RC(ye,Ve,Ct,wr,ai),z):z}function YS(){return ne(232)}function Fg(z,ye){let Ve=ne(233);return Ve.expression=n().parenthesizeLeftSideOfAccess(z,!1),Ve.typeArguments=ye&&n().parenthesizeTypeArguments(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.typeArguments)|1024,Ve}function hb(z,ye,Ve){return z.expression!==ye||z.typeArguments!==Ve?Eo(Fg(ye,Ve),z):z}function gC(z,ye){let Ve=ne(234);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function NC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(gC(ye,Ve),z):z}function Y2(z){let ye=ne(235);return ye.expression=n().parenthesizeLeftSideOfAccess(z,!1),ye.transformFlags|=$o(ye.expression)|1,ye}function U_(z,ye){return Cza(z)?ph(z,ye):z.expression!==ye?Eo(Y2(ye),z):z}function DC(z,ye){let Ve=ne(238);return Ve.expression=z,Ve.type=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.type)|1,Ve}function kC(z,ye,Ve){return z.expression!==ye||z.type!==Ve?Eo(DC(ye,Ve),z):z}function qI(z){let ye=ne(235);return ye.flags|=64,ye.expression=n().parenthesizeLeftSideOfAccess(z,!0),ye.transformFlags|=$o(ye.expression)|1,ye}function ph(z,ye){return Zo.assert(!!(z.flags&64),"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead."),z.expression!==ye?Eo(qI(ye),z):z}function vA(z,ye){let Ve=ne(236);switch(Ve.keywordToken=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.name),z){case 105:Ve.transformFlags|=1024;break;case 102:Ve.transformFlags|=32;break;default:return Zo.assertNever(z)}return Ve.flowNode=void 0,Ve}function Td(z,ye){return z.name!==ye?Eo(vA(z.keywordToken,ye),z):z}function Mc(z,ye){let Ve=ne(239);return Ve.expression=z,Ve.literal=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.literal)|1024,Ve}function Pf(z,ye,Ve){return z.expression!==ye||z.literal!==Ve?Eo(Mc(ye,Ve),z):z}function sE(){let z=ne(240);return z.transformFlags|=1024,z}function eA(z,ye){let Ve=ne(241);return Ve.statements=ae(z),Ve.multiLine=ye,Ve.transformFlags|=qA(Ve.statements),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function QS(z,ye){return z.statements!==ye?Eo(eA(ye,z.multiLine),z):z}function XS(z,ye){let Ve=ne(243);return Ve.modifiers=IA(z),Ve.declarationList=Tee(ye)?Th(ye):ye,Ve.transformFlags|=qA(Ve.modifiers)|$o(Ve.declarationList),fO(Ve.modifiers)&128&&(Ve.transformFlags=1),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function um(z,ye,Ve){return z.modifiers!==ye||z.declarationList!==Ve?Eo(XS(ye,Ve),z):z}function gm(){let z=ne(242);return z.jsDoc=void 0,z}function cs(z){let ye=ne(244);return ye.expression=n().parenthesizeExpressionOfExpressionStatement(z),ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function na(z,ye){return z.expression!==ye?Eo(cs(ye),z):z}function ko(z,ye,Ve){let Ct=ne(245);return Ct.expression=z,Ct.thenStatement=sy(ye),Ct.elseStatement=sy(Ve),Ct.transformFlags|=$o(Ct.expression)|$o(Ct.thenStatement)|$o(Ct.elseStatement),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function ki(z,ye,Ve,Ct){return z.expression!==ye||z.thenStatement!==Ve||z.elseStatement!==Ct?Eo(ko(ye,Ve,Ct),z):z}function Kl(z,ye){let Ve=ne(246);return Ve.statement=sy(z),Ve.expression=ye,Ve.transformFlags|=$o(Ve.statement)|$o(Ve.expression),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function fd(z,ye,Ve){return z.statement!==ye||z.expression!==Ve?Eo(Kl(ye,Ve),z):z}function jf(z,ye){let Ve=ne(247);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Ld(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(jf(ye,Ve),z):z}function AC(z,ye,Ve,Ct){let wr=ne(248);return wr.initializer=z,wr.condition=ye,wr.incrementor=Ve,wr.statement=sy(Ct),wr.transformFlags|=$o(wr.initializer)|$o(wr.condition)|$o(wr.incrementor)|$o(wr.statement),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function JE(z,ye,Ve,Ct,wr){return z.initializer!==ye||z.condition!==Ve||z.incrementor!==Ct||z.statement!==wr?Eo(AC(ye,Ve,Ct,wr),z):z}function Ym(z,ye,Ve){let Ct=ne(249);return Ct.initializer=z,Ct.expression=ye,Ct.statement=sy(Ve),Ct.transformFlags|=$o(Ct.initializer)|$o(Ct.expression)|$o(Ct.statement),Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct.flowNode=void 0,Ct}function vy(z,ye,Ve,Ct){return z.initializer!==ye||z.expression!==Ve||z.statement!==Ct?Eo(Ym(ye,Ve,Ct),z):z}function K_(z,ye,Ve,Ct){let wr=ne(250);return wr.awaitModifier=z,wr.initializer=ye,wr.expression=n().parenthesizeExpressionForDisallowedComma(Ve),wr.statement=sy(Ct),wr.transformFlags|=$o(wr.awaitModifier)|$o(wr.initializer)|$o(wr.expression)|$o(wr.statement)|1024,z&&(wr.transformFlags|=128),wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr.flowNode=void 0,wr}function od(z,ye,Ve,Ct,wr){return z.awaitModifier!==ye||z.initializer!==Ve||z.expression!==Ct||z.statement!==wr?Eo(K_(ye,Ve,Ct,wr),z):z}function UE(z){let ye=ne(251);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function KE(z,ye){return z.label!==ye?Eo(UE(ye),z):z}function Yp(z){let ye=ne(252);return ye.label=EI(z),ye.transformFlags|=$o(ye.label)|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function JS(z,ye){return z.label!==ye?Eo(Yp(ye),z):z}function By(z){let ye=ne(253);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|128|4194304,ye.jsDoc=void 0,ye.flowNode=void 0,ye}function $0(z,ye){return z.expression!==ye?Eo(By(ye),z):z}function fw(z,ye){let Ve=ne(254);return Ve.expression=z,Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.expression)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Q2(z,ye,Ve){return z.expression!==ye||z.statement!==Ve?Eo(fw(ye,Ve),z):z}function xc(z,ye){let Ve=ne(255);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.caseBlock=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.caseBlock),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve.possiblyExhaustive=!1,Ve}function ut(z,ye,Ve){return z.expression!==ye||z.caseBlock!==Ve?Eo(xc(ye,Ve),z):z}function ar(z,ye){let Ve=ne(256);return Ve.label=EI(z),Ve.statement=sy(ye),Ve.transformFlags|=$o(Ve.label)|$o(Ve.statement),Ve.jsDoc=void 0,Ve.flowNode=void 0,Ve}function Jr(z,ye,Ve){return z.label!==ye||z.statement!==Ve?Eo(ar(ye,Ve),z):z}function Gn(z){let ye=ne(257);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.jsDoc=void 0,ye.flowNode=void 0,ye}function Ts(z,ye){return z.expression!==ye?Eo(Gn(ye),z):z}function Qo(z,ye,Ve){let Ct=ne(258);return Ct.tryBlock=z,Ct.catchClause=ye,Ct.finallyBlock=Ve,Ct.transformFlags|=$o(Ct.tryBlock)|$o(Ct.catchClause)|$o(Ct.finallyBlock),Ct.jsDoc=void 0,Ct.flowNode=void 0,Ct}function vg(z,ye,Ve,Ct){return z.tryBlock!==ye||z.catchClause!==Ve||z.finallyBlock!==Ct?Eo(Qo(ye,Ve,Ct),z):z}function Ng(){let z=ne(259);return z.jsDoc=void 0,z.flowNode=void 0,z}function Rf(z,ye,Ve,Ct){let wr=ce(260);return wr.name=EI(z),wr.exclamationToken=ye,wr.type=Ve,wr.initializer=wA(Ct),wr.transformFlags|=pO(wr.name)|$o(wr.initializer)|(wr.exclamationToken??wr.type?1:0),wr.jsDoc=void 0,wr}function uI(z,ye,Ve,Ct,wr){return z.name!==ye||z.type!==Ct||z.exclamationToken!==Ve||z.initializer!==wr?Eo(Rf(ye,Ve,Ct,wr),z):z}function Th(z,ye=0){let Ve=ne(261);return Ve.flags|=ye&7,Ve.declarations=ae(z),Ve.transformFlags|=qA(Ve.declarations)|4194304,ye&7&&(Ve.transformFlags|=263168),ye&4&&(Ve.transformFlags|=4),Ve}function oE(z,ye){return z.declarations!==ye?Eo(Th(ye,z.flags),z):z}function TT(z,ye,Ve,Ct,wr,ai,Lo){let Hc=ce(262);if(Hc.modifiers=IA(z),Hc.asteriskToken=ye,Hc.name=EI(Ve),Hc.typeParameters=IA(Ct),Hc.parameters=ae(wr),Hc.type=ai,Hc.body=Lo,!Hc.body||fO(Hc.modifiers)&128)Hc.transformFlags=1;else{let ad=fO(Hc.modifiers)&1024,dm=!!Hc.asteriskToken,rv=ad&&dm;Hc.transformFlags=qA(Hc.modifiers)|$o(Hc.asteriskToken)|pO(Hc.name)|qA(Hc.typeParameters)|qA(Hc.parameters)|$o(Hc.type)|$o(Hc.body)&-67108865|(rv?128:ad?256:dm?2048:0)|(Hc.typeParameters||Hc.type?1:0)|4194304}return Hc.typeArguments=void 0,Hc.jsDoc=void 0,Hc.locals=void 0,Hc.nextContainer=void 0,Hc.endFlowNode=void 0,Hc.returnFlowNode=void 0,Hc}function sB(z,ye,Ve,Ct,wr,ai,Lo,Hc){return z.modifiers!==ye||z.asteriskToken!==Ve||z.name!==Ct||z.typeParameters!==wr||z.parameters!==ai||z.type!==Lo||z.body!==Hc?RT(TT(ye,Ve,Ct,wr,ai,Lo,Hc),z):z}function RT(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),fe(z,ye)}function wy(z,ye,Ve,Ct,wr){let ai=ce(263);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),fO(ai.modifiers)&128?ai.transformFlags=1:(ai.transformFlags|=qA(ai.modifiers)|pO(ai.name)|qA(ai.typeParameters)|qA(ai.heritageClauses)|qA(ai.members)|(ai.typeParameters?1:0)|1024,ai.transformFlags&8192&&(ai.transformFlags|=1)),ai.jsDoc=void 0,ai}function jE(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(wy(ye,Ve,Ct,wr,ai),z):z}function j_(z,ye,Ve,Ct,wr){let ai=ce(264);return ai.modifiers=IA(z),ai.name=EI(ye),ai.typeParameters=IA(Ve),ai.heritageClauses=IA(Ct),ai.members=ae(wr),ai.transformFlags=1,ai.jsDoc=void 0,ai}function NT(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.heritageClauses!==wr||z.members!==ai?Eo(j_(ye,Ve,Ct,wr,ai),z):z}function tf(z,ye,Ve,Ct){let wr=ce(265);return wr.modifiers=IA(z),wr.name=EI(ye),wr.typeParameters=IA(Ve),wr.type=Ct,wr.transformFlags=1,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function Ty(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.name!==Ve||z.typeParameters!==Ct||z.type!==wr?Eo(tf(ye,Ve,Ct,wr),z):z}function US(z,ye,Ve){let Ct=ce(266);return Ct.modifiers=IA(z),Ct.name=EI(ye),Ct.members=ae(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.name)|qA(Ct.members)|1,Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $I(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.members!==Ct?Eo(US(ye,Ve,Ct),z):z}function BA(z,ye,Ve,Ct=0){let wr=ce(267);return wr.modifiers=IA(z),wr.flags|=Ct&2088,wr.name=ye,wr.body=Ve,fO(wr.modifiers)&128?wr.transformFlags=1:wr.transformFlags|=qA(wr.modifiers)|$o(wr.name)|$o(wr.body)|1,wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr.locals=void 0,wr.nextContainer=void 0,wr}function $A(z,ye,Ve,Ct){return z.modifiers!==ye||z.name!==Ve||z.body!==Ct?Eo(BA(ye,Ve,Ct,z.flags),z):z}function Qm(z){let ye=ne(268);return ye.statements=ae(z),ye.transformFlags|=qA(ye.statements),ye.jsDoc=void 0,ye}function zf(z,ye){return z.statements!==ye?Eo(Qm(ye),z):z}function mb(z){let ye=ne(269);return ye.clauses=ae(z),ye.transformFlags|=qA(ye.clauses),ye.locals=void 0,ye.nextContainer=void 0,ye}function R_(z,ye){return z.clauses!==ye?Eo(mb(ye),z):z}function Cb(z){let ye=ce(270);return ye.name=EI(z),ye.transformFlags|=_Ne(ye.name)|1,ye.modifiers=void 0,ye.jsDoc=void 0,ye}function Ry(z,ye){return z.name!==ye?KS(Cb(ye),z):z}function KS(z,ye){return z!==ye&&(z.modifiers=ye.modifiers),Eo(z,ye)}function _b(z,ye,Ve,Ct){let wr=ce(271);return wr.modifiers=IA(z),wr.name=EI(Ve),wr.isTypeOnly=ye,wr.moduleReference=Ct,wr.transformFlags|=qA(wr.modifiers)|_Ne(wr.name)|$o(wr.moduleReference),mBi(wr.moduleReference)||(wr.transformFlags|=1),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function z_(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.name!==Ct||z.moduleReference!==wr?Eo(_b(ye,Ve,Ct,wr),z):z}function zE(z,ye,Ve,Ct){let wr=ne(272);return wr.modifiers=IA(z),wr.importClause=ye,wr.moduleSpecifier=Ve,wr.attributes=wr.assertClause=Ct,wr.transformFlags|=$o(wr.importClause)|$o(wr.moduleSpecifier),wr.transformFlags&=-67108865,wr.jsDoc=void 0,wr}function oB(z,ye,Ve,Ct,wr){return z.modifiers!==ye||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(zE(ye,Ve,Ct,wr),z):z}function DT(z,ye,Ve){let Ct=ce(273);return Ct.isTypeOnly=z,Ct.name=ye,Ct.namedBindings=Ve,Ct.transformFlags|=$o(Ct.name)|$o(Ct.namedBindings),z&&(Ct.transformFlags|=1),Ct.transformFlags&=-67108865,Ct}function aB(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.name!==Ve||z.namedBindings!==Ct?Eo(DT(ye,Ve,Ct),z):z}function jS(z,ye){let Ve=ne(300);return Ve.elements=ae(z),Ve.multiLine=ye,Ve.token=132,Ve.transformFlags|=4,Ve}function XR(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(jS(ye,Ve),z):z}function zS(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function qE(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(zS(ye,Ve),z):z}function X2(z,ye){let Ve=ne(302);return Ve.assertClause=z,Ve.multiLine=ye,Ve}function kT(z,ye,Ve){return z.assertClause!==ye||z.multiLine!==Ve?Eo(X2(ye,Ve),z):z}function pn(z,ye,Ve){let Ct=ne(300);return Ct.token=Ve??118,Ct.elements=ae(z),Ct.multiLine=ye,Ct.transformFlags|=4,Ct}function q1(z,ye,Ve){return z.elements!==ye||z.multiLine!==Ve?Eo(pn(ye,Ve,z.token),z):z}function J2(z,ye){let Ve=ne(301);return Ve.name=z,Ve.value=ye,Ve.transformFlags|=4,Ve}function ey(z,ye,Ve){return z.name!==ye||z.value!==Ve?Eo(J2(ye,Ve),z):z}function up(z){let ye=ce(274);return ye.name=z,ye.transformFlags|=$o(ye.name),ye.transformFlags&=-67108865,ye}function Iw(z,ye){return z.name!==ye?Eo(up(ye),z):z}function cB(z){let ye=ce(280);return ye.name=z,ye.transformFlags|=$o(ye.name)|32,ye.transformFlags&=-67108865,ye}function RD(z,ye){return z.name!==ye?Eo(cB(ye),z):z}function Rd(z){let ye=ne(275);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function JR(z,ye){return z.elements!==ye?Eo(Rd(ye),z):z}function ty(z,ye,Ve){let Ct=ce(276);return Ct.isTypeOnly=z,Ct.propertyName=ye,Ct.name=Ve,Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct}function cF(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(ty(ye,Ve,Ct),z):z}function $1(z,ye,Ve){let Ct=ce(277);return Ct.modifiers=IA(z),Ct.isExportEquals=ye,Ct.expression=ye?n().parenthesizeRightSideOfBinary(64,void 0,Ve):n().parenthesizeExpressionOfExportDefault(Ve),Ct.transformFlags|=qA(Ct.modifiers)|$o(Ct.expression),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function $E(z,ye,Ve){return z.modifiers!==ye||z.expression!==Ve?Eo($1(ye,z.isExportEquals,Ve),z):z}function N_(z,ye,Ve,Ct,wr){let ai=ce(278);return ai.modifiers=IA(z),ai.isTypeOnly=ye,ai.exportClause=Ve,ai.moduleSpecifier=Ct,ai.attributes=ai.assertClause=wr,ai.transformFlags|=qA(ai.modifiers)|$o(ai.exportClause)|$o(ai.moduleSpecifier),ai.transformFlags&=-67108865,ai.jsDoc=void 0,ai}function e1(z,ye,Ve,Ct,wr,ai){return z.modifiers!==ye||z.isTypeOnly!==Ve||z.exportClause!==Ct||z.moduleSpecifier!==wr||z.attributes!==ai?t1(N_(ye,Ve,Ct,wr,ai),z):z}function t1(z,ye){return z!==ye&&z.modifiers===ye.modifiers&&(z.modifiers=ye.modifiers),Eo(z,ye)}function ry(z){let ye=ne(279);return ye.elements=ae(z),ye.transformFlags|=qA(ye.elements),ye.transformFlags&=-67108865,ye}function xT(z,ye){return z.elements!==ye?Eo(ry(ye),z):z}function yb(z,ye,Ve){let Ct=ne(281);return Ct.isTypeOnly=z,Ct.propertyName=EI(ye),Ct.name=EI(Ve),Ct.transformFlags|=$o(Ct.propertyName)|$o(Ct.name),Ct.transformFlags&=-67108865,Ct.jsDoc=void 0,Ct}function r_(z,ye,Ve,Ct){return z.isTypeOnly!==ye||z.propertyName!==Ve||z.name!==Ct?Eo(yb(ye,Ve,Ct),z):z}function Rh(){let z=ce(282);return z.jsDoc=void 0,z}function bb(z){let ye=ne(283);return ye.expression=z,ye.transformFlags|=$o(ye.expression),ye.transformFlags&=-67108865,ye}function lB(z,ye){return z.expression!==ye?Eo(bb(ye),z):z}function ND(z){return ne(z)}function DD(z,ye,Ve=!1){let Ct=q_(z,Ve?ye&&n().parenthesizeNonArrayTypeOfPostfixType(ye):ye);return Ct.postfix=Ve,Ct}function q_(z,ye){let Ve=ne(z);return Ve.type=ye,Ve}function kD(z,ye,Ve){return ye.type!==Ve?Eo(DD(z,Ve,ye.postfix),ye):ye}function UR(z,ye,Ve){return ye.type!==Ve?Eo(q_(z,Ve),ye):ye}function lc(z,ye){let Ve=ce(317);return Ve.parameters=IA(z),Ve.type=ye,Ve.transformFlags=qA(Ve.parameters)|(Ve.type?1:0),Ve.jsDoc=void 0,Ve.locals=void 0,Ve.nextContainer=void 0,Ve.typeArguments=void 0,Ve}function fh(z,ye,Ve){return z.parameters!==ye||z.type!==Ve?Eo(lc(ye,Ve),z):z}function rf(z,ye=!1){let Ve=ce(322);return Ve.jsDocPropertyTags=IA(z),Ve.isArrayType=ye,Ve}function yI(z,ye,Ve){return z.jsDocPropertyTags!==ye||z.isArrayType!==Ve?Eo(rf(ye,Ve),z):z}function aE(z){let ye=ne(309);return ye.type=z,ye}function qS(z,ye){return z.type!==ye?Eo(aE(ye),z):z}function Qp(z,ye,Ve){let Ct=ce(323);return Ct.typeParameters=IA(z),Ct.parameters=ae(ye),Ct.type=Ve,Ct.jsDoc=void 0,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function uB(z,ye,Ve,Ct){return z.typeParameters!==ye||z.parameters!==Ve||z.type!==Ct?Eo(Qp(ye,Ve,Ct),z):z}function Ih(z){let ye=xbt(z.kind);return z.tagName.escapedText===mNe(ye)?z.tagName:je(ye)}function xC(z,ye,Ve){let Ct=ne(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function $_(z,ye,Ve){let Ct=ce(z);return Ct.tagName=ye,Ct.comment=Ve,Ct}function r1(z,ye,Ve,Ct){let wr=xC(345,z??je("template"),Ct);return wr.constraint=ye,wr.typeParameters=ae(Ve),wr}function gB(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.constraint!==Ve||z.typeParameters!==Ct||z.comment!==wr?Eo(r1(ye,Ve,Ct,wr),z):z}function hw(z,ye,Ve,Ct){let wr=$_(346,z??je("typedef"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function GT(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(hw(ye,Ve,Ct,wr),z):z}function b0(z,ye,Ve,Ct,wr,ai){let Lo=$_(341,z??je("param"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function ia(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(b0(ye,Ve,Ct,wr,ai,Lo),z):z}function e2(z,ye,Ve,Ct,wr,ai){let Lo=$_(348,z??je("prop"),ai);return Lo.typeExpression=Ct,Lo.name=ye,Lo.isNameFirst=!!wr,Lo.isBracketed=Ve,Lo}function yd(z,ye=Ih(z),Ve,Ct,wr,ai,Lo){return z.tagName!==ye||z.name!==Ve||z.isBracketed!==Ct||z.typeExpression!==wr||z.isNameFirst!==ai||z.comment!==Lo?Eo(e2(ye,Ve,Ct,wr,ai,Lo),z):z}function bI(z,ye,Ve,Ct){let wr=$_(338,z??je("callback"),Ct);return wr.typeExpression=ye,wr.fullName=Ve,wr.name=sSi(Ve),wr.locals=void 0,wr.nextContainer=void 0,wr}function ag(z,ye=Ih(z),Ve,Ct,wr){return z.tagName!==ye||z.typeExpression!==Ve||z.fullName!==Ct||z.comment!==wr?Eo(bI(ye,Ve,Ct,wr),z):z}function Eb(z,ye,Ve){let Ct=xC(339,z??je("overload"),Ve);return Ct.typeExpression=ye,Ct}function n1(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Eb(ye,Ve,Ct),z):z}function U2(z,ye,Ve){let Ct=xC(328,z??je("augments"),Ve);return Ct.class=ye,Ct}function e0(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(U2(ye,Ve,Ct),z):z}function n_(z,ye,Ve){let Ct=xC(329,z??je("implements"),Ve);return Ct.class=ye,Ct}function Xp(z,ye,Ve){let Ct=xC(347,z??je("see"),Ve);return Ct.name=ye,Ct}function cE(z,ye,Ve,Ct){return z.tagName!==ye||z.name!==Ve||z.comment!==Ct?Eo(Xp(ye,Ve,Ct),z):z}function lE(z){let ye=ne(310);return ye.name=z,ye}function Ip(z,ye){return z.name!==ye?Eo(lE(ye),z):z}function Xh(z,ye){let Ve=ne(311);return Ve.left=z,Ve.right=ye,Ve.transformFlags|=$o(Ve.left)|$o(Ve.right),Ve}function E0(z,ye,Ve){return z.left!==ye||z.right!==Ve?Eo(Xh(ye,Ve),z):z}function aA(z,ye){let Ve=ne(324);return Ve.name=z,Ve.text=ye,Ve}function fu(z,ye,Ve){return z.name!==ye?Eo(aA(ye,Ve),z):z}function Jp(z,ye){let Ve=ne(325);return Ve.name=z,Ve.text=ye,Ve}function dC(z,ye,Ve){return z.name!==ye?Eo(Jp(ye,Ve),z):z}function uE(z,ye){let Ve=ne(326);return Ve.name=z,Ve.text=ye,Ve}function eh(z,ye,Ve){return z.name!==ye?Eo(uE(ye,Ve),z):z}function Wf(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.class!==Ve||z.comment!==Ct?Eo(n_(ye,Ve,Ct),z):z}function Mo(z,ye,Ve){return xC(z,ye??je(xbt(z)),Ve)}function gp(z,ye,Ve=Ih(ye),Ct){return ye.tagName!==Ve||ye.comment!==Ct?Eo(Mo(z,Ve,Ct),ye):ye}function lF(z,ye,Ve,Ct){let wr=xC(z,ye??je(xbt(z)),Ct);return wr.typeExpression=Ve,wr}function uF(z,ye,Ve=Ih(ye),Ct,wr){return ye.tagName!==Ve||ye.typeExpression!==Ct||ye.comment!==wr?Eo(lF(z,Ve,Ct,wr),ye):ye}function gE(z,ye){return xC(327,z,ye)}function FT(z,ye,Ve){return z.tagName!==ye||z.comment!==Ve?Eo(gE(ye,Ve),z):z}function Np(z,ye,Ve){let Ct=$_(340,z??je(xbt(340)),Ve);return Ct.typeExpression=ye,Ct.locals=void 0,Ct.nextContainer=void 0,Ct}function Dm(z,ye=Ih(z),Ve,Ct){return z.tagName!==ye||z.typeExpression!==Ve||z.comment!==Ct?Eo(Np(ye,Ve,Ct),z):z}function Dp(z,ye,Ve,Ct,wr){let ai=xC(351,z??je("import"),wr);return ai.importClause=ye,ai.moduleSpecifier=Ve,ai.attributes=Ct,ai.comment=wr,ai}function t2(z,ye,Ve,Ct,wr,ai){return z.tagName!==ye||z.comment!==ai||z.importClause!==Ve||z.moduleSpecifier!==Ct||z.attributes!==wr?Eo(Dp(ye,Ve,Ct,wr,ai),z):z}function Ro(z){let ye=ne(321);return ye.text=z,ye}function AE(z,ye){return z.text!==ye?Eo(Ro(ye),z):z}function AB(z,ye){let Ve=ne(320);return Ve.comment=z,Ve.tags=IA(ye),Ve}function Xc(z,ye,Ve){return z.comment!==ye||z.tags!==Ve?Eo(AB(ye,Ve),z):z}function iu(z,ye,Ve){let Ct=ne(284);return Ct.openingElement=z,Ct.children=ae(ye),Ct.closingElement=Ve,Ct.transformFlags|=$o(Ct.openingElement)|qA(Ct.children)|$o(Ct.closingElement)|2,Ct}function dE(z,ye,Ve,Ct){return z.openingElement!==ye||z.children!==Ve||z.closingElement!==Ct?Eo(iu(ye,Ve,Ct),z):z}function yL(z,ye,Ve){let Ct=ne(285);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,Ct.typeArguments&&(Ct.transformFlags|=1),Ct}function KR(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(yL(ye,Ve,Ct),z):z}function Ou(z,ye,Ve){let Ct=ne(286);return Ct.tagName=z,Ct.typeArguments=IA(ye),Ct.attributes=Ve,Ct.transformFlags|=$o(Ct.tagName)|qA(Ct.typeArguments)|$o(Ct.attributes)|2,ye&&(Ct.transformFlags|=1),Ct}function ny(z,ye,Ve,Ct){return z.tagName!==ye||z.typeArguments!==Ve||z.attributes!==Ct?Eo(Ou(ye,Ve,Ct),z):z}function hp(z){let ye=ne(287);return ye.tagName=z,ye.transformFlags|=$o(ye.tagName)|2,ye}function Am(z,ye){return z.tagName!==ye?Eo(hp(ye),z):z}function K2(z,ye,Ve){let Ct=ne(288);return Ct.openingFragment=z,Ct.children=ae(ye),Ct.closingFragment=Ve,Ct.transformFlags|=$o(Ct.openingFragment)|qA(Ct.children)|$o(Ct.closingFragment)|2,Ct}function i_(z,ye,Ve,Ct){return z.openingFragment!==ye||z.children!==Ve||z.closingFragment!==Ct?Eo(K2(ye,Ve,Ct),z):z}function dB(z,ye){let Ve=ne(12);return Ve.text=z,Ve.containsOnlyTriviaWhiteSpaces=!!ye,Ve.transformFlags|=2,Ve}function ZT(z,ye,Ve){return z.text!==ye||z.containsOnlyTriviaWhiteSpaces!==Ve?Eo(dB(ye,Ve),z):z}function Cx(){let z=ne(289);return z.transformFlags|=2,z}function pB(){let z=ne(290);return z.transformFlags|=2,z}function qf(z,ye){let Ve=ce(291);return Ve.name=z,Ve.initializer=ye,Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|2,Ve}function Jh(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(qf(ye,Ve),z):z}function $S(z){let ye=ce(292);return ye.properties=ae(z),ye.transformFlags|=qA(ye.properties)|2,ye}function Sb(z,ye){return z.properties!==ye?Eo($S(ye),z):z}function mp(z){let ye=ne(293);return ye.expression=z,ye.transformFlags|=$o(ye.expression)|2,ye}function r2(z,ye){return z.expression!==ye?Eo(mp(ye),z):z}function i1(z,ye){let Ve=ne(294);return Ve.dotDotDotToken=z,Ve.expression=ye,Ve.transformFlags|=$o(Ve.dotDotDotToken)|$o(Ve.expression)|2,Ve}function Of(z,ye){return z.expression!==ye?Eo(i1(z.dotDotDotToken,ye),z):z}function pE(z,ye){let Ve=ne(295);return Ve.namespace=z,Ve.name=ye,Ve.transformFlags|=$o(Ve.namespace)|$o(Ve.name)|2,Ve}function Vd(z,ye,Ve){return z.namespace!==ye||z.name!==Ve?Eo(pE(ye,Ve),z):z}function j(z,ye){let Ve=ne(296);return Ve.expression=n().parenthesizeExpressionForDisallowedComma(z),Ve.statements=ae(ye),Ve.transformFlags|=$o(Ve.expression)|qA(Ve.statements),Ve.jsDoc=void 0,Ve}function Z(z,ye,Ve){return z.expression!==ye||z.statements!==Ve?Eo(j(ye,Ve),z):z}function Id(z){let ye=ne(297);return ye.statements=ae(z),ye.transformFlags=qA(ye.statements),ye}function fB(z,ye){return z.statements!==ye?Eo(Id(ye),z):z}function ev(z,ye){let Ve=ne(298);switch(Ve.token=z,Ve.types=ae(ye),Ve.transformFlags|=qA(Ve.types),z){case 96:Ve.transformFlags|=1024;break;case 119:Ve.transformFlags|=1;break;default:return Zo.assertNever(z)}return Ve}function Ny(z,ye){return z.types!==ye?Eo(ev(z.token,ye),z):z}function vb(z,ye){let Ve=ne(299);return Ve.variableDeclaration=$2(z),Ve.block=ye,Ve.transformFlags|=$o(Ve.variableDeclaration)|$o(Ve.block)|(z?0:64),Ve.locals=void 0,Ve.nextContainer=void 0,Ve}function xD(z,ye,Ve){return z.variableDeclaration!==ye||z.block!==Ve?Eo(vb(ye,Ve),z):z}function IB(z,ye){let Ve=ce(303);return Ve.name=EI(z),Ve.initializer=n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=pO(Ve.name)|$o(Ve.initializer),Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function Bb(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?bL(IB(ye,Ve),z):z}function bL(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken),Eo(z,ye)}function gF(z,ye){let Ve=ce(304);return Ve.name=EI(z),Ve.objectAssignmentInitializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=_Ne(Ve.name)|$o(Ve.objectAssignmentInitializer)|1024,Ve.equalsToken=void 0,Ve.modifiers=void 0,Ve.questionToken=void 0,Ve.exclamationToken=void 0,Ve.jsDoc=void 0,Ve}function x(z,ye,Ve){return z.name!==ye||z.objectAssignmentInitializer!==Ve?L(gF(ye,Ve),z):z}function L(z,ye){return z!==ye&&(z.modifiers=ye.modifiers,z.questionToken=ye.questionToken,z.exclamationToken=ye.exclamationToken,z.equalsToken=ye.equalsToken),Eo(z,ye)}function te(z){let ye=ce(305);return ye.expression=n().parenthesizeExpressionForDisallowedComma(z),ye.transformFlags|=$o(ye.expression)|128|65536,ye.jsDoc=void 0,ye}function Re(z,ye){return z.expression!==ye?Eo(te(ye),z):z}function Le(z,ye){let Ve=ce(306);return Ve.name=EI(z),Ve.initializer=ye&&n().parenthesizeExpressionForDisallowedComma(ye),Ve.transformFlags|=$o(Ve.name)|$o(Ve.initializer)|1,Ve.jsDoc=void 0,Ve}function ft(z,ye,Ve){return z.name!==ye||z.initializer!==Ve?Eo(Le(ye,Ve),z):z}function dr(z,ye,Ve){let Ct=t.createBaseSourceFileNode(307);return Ct.statements=ae(z),Ct.endOfFileToken=ye,Ct.flags|=Ve,Ct.text="",Ct.fileName="",Ct.path="",Ct.resolvedPath="",Ct.originalFileName="",Ct.languageVersion=1,Ct.languageVariant=0,Ct.scriptKind=0,Ct.isDeclarationFile=!1,Ct.hasNoDefaultLib=!1,Ct.transformFlags|=qA(Ct.statements)|$o(Ct.endOfFileToken),Ct.locals=void 0,Ct.nextContainer=void 0,Ct.endFlowNode=void 0,Ct.nodeCount=0,Ct.identifierCount=0,Ct.symbolCount=0,Ct.parseDiagnostics=void 0,Ct.bindDiagnostics=void 0,Ct.bindSuggestionDiagnostics=void 0,Ct.lineMap=void 0,Ct.externalModuleIndicator=void 0,Ct.setExternalModuleIndicator=void 0,Ct.pragmas=void 0,Ct.checkJsDirective=void 0,Ct.referencedFiles=void 0,Ct.typeReferenceDirectives=void 0,Ct.libReferenceDirectives=void 0,Ct.amdDependencies=void 0,Ct.commentDirectives=void 0,Ct.identifiers=void 0,Ct.packageJsonLocations=void 0,Ct.packageJsonScope=void 0,Ct.imports=void 0,Ct.moduleAugmentations=void 0,Ct.ambientModuleNames=void 0,Ct.classifiableNames=void 0,Ct.impliedNodeFormat=void 0,Ct}function Ur(z){let ye=Object.create(z.redirectTarget);return Object.defineProperties(ye,{id:{get(){return this.redirectInfo.redirectTarget.id},set(Ve){this.redirectInfo.redirectTarget.id=Ve}},symbol:{get(){return this.redirectInfo.redirectTarget.symbol},set(Ve){this.redirectInfo.redirectTarget.symbol=Ve}}}),ye.redirectInfo=z,ye}function mi(z){let ye=Ur(z.redirectInfo);return ye.flags|=z.flags&-17,ye.fileName=z.fileName,ye.path=z.path,ye.resolvedPath=z.resolvedPath,ye.originalFileName=z.originalFileName,ye.packageJsonLocations=z.packageJsonLocations,ye.packageJsonScope=z.packageJsonScope,ye.emitNode=void 0,ye}function Vi(z){let ye=t.createBaseSourceFileNode(307);ye.flags|=z.flags&-17;for(let Ve in z)if(!(fj(ye,Ve)||!fj(z,Ve))){if(Ve==="emitNode"){ye.emitNode=void 0;continue}ye[Ve]=z[Ve]}return ye}function Ta(z){let ye=z.redirectInfo?mi(z):Vi(z);return r(ye,z),ye}function Sl(z,ye,Ve,Ct,wr,ai,Lo){let Hc=Ta(z);return Hc.statements=ae(ye),Hc.isDeclarationFile=Ve,Hc.referencedFiles=Ct,Hc.typeReferenceDirectives=wr,Hc.hasNoDefaultLib=ai,Hc.libReferenceDirectives=Lo,Hc.transformFlags=qA(Hc.statements)|$o(Hc.endOfFileToken),Hc}function Ho(z,ye,Ve=z.isDeclarationFile,Ct=z.referencedFiles,wr=z.typeReferenceDirectives,ai=z.hasNoDefaultLib,Lo=z.libReferenceDirectives){return z.statements!==ye||z.isDeclarationFile!==Ve||z.referencedFiles!==Ct||z.typeReferenceDirectives!==wr||z.hasNoDefaultLib!==ai||z.libReferenceDirectives!==Lo?Eo(Sl(z,ye,Ve,Ct,wr,ai,Lo),z):z}function Wg(z){let ye=ne(308);return ye.sourceFiles=z,ye.syntheticFileReferences=void 0,ye.syntheticTypeReferences=void 0,ye.syntheticLibReferences=void 0,ye.hasNoDefaultLib=void 0,ye}function cA(z,ye){return z.sourceFiles!==ye?Eo(Wg(ye),z):z}function th(z,ye=!1,Ve){let Ct=ne(237);return Ct.type=z,Ct.isSpread=ye,Ct.tupleNameSource=Ve,Ct}function xn(z){let ye=ne(352);return ye._children=z,ye}function rn(z){let ye=ne(353);return ye.original=z,zZ(ye,z),ye}function Ci(z,ye){let Ve=ne(355);return Ve.expression=z,Ve.original=ye,Ve.transformFlags|=$o(Ve.expression)|1,zZ(Ve,ye),Ve}function Po(z,ye){return z.expression!==ye?Eo(Ci(ye,z.original),z):z}function ec(){return ne(354)}function Ra(z){if(CNe(z)&&!Qbt(z)&&!z.original&&!z.emitNode&&!z.id){if(lec(z))return z.elements;if(DNe(z)&&w$a(z.operatorToken))return[z.left,z.right]}return z}function dc(z){let ye=ne(356);return ye.elements=ae(P6a(z,Ra)),ye.transformFlags|=qA(ye.elements),ye}function Iu(z,ye){return z.elements!==ye?Eo(dc(ye),z):z}function Cl(z,ye){let Ve=ne(357);return Ve.expression=z,Ve.thisArg=ye,Ve.transformFlags|=$o(Ve.expression)|$o(Ve.thisArg),Ve}function wl(z,ye,Ve){return z.expression!==ye||z.thisArg!==Ve?Eo(Cl(ye,Ve),z):z}function $f(z){let ye=ct(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function j2(z){let ye=ct(z.escapedText);ye.flags|=z.flags&-17,ye.jsDoc=z.jsDoc,ye.flowNode=z.flowNode,ye.symbol=z.symbol,ye.transformFlags=z.transformFlags,r(ye,z);let Ve=getIdentifierTypeArguments(z);return Ve&&setIdentifierTypeArguments(ye,Ve),ye}function _x(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),setIdentifierAutoGenerate(ye,{...z.emitNode.autoGenerate}),ye}function z2(z){let ye=Nr(z.escapedText);return ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z),ye}function tv(z){if(z===void 0)return z;if(mec(z))return Ta(z);if(vNe(z))return $f(z);if($C(z))return j2(z);if(Dvi(z))return _x(z);if(Yme(z))return z2(z);let ye=YNr(z.kind)?t.createBaseNode(z.kind):t.createBaseTokenNode(z.kind);ye.flags|=z.flags&-17,ye.transformFlags=z.transformFlags,r(ye,z);for(let Ve in z)fj(ye,Ve)||!fj(z,Ve)||(ye[Ve]=z[Ve]);return ye}function Yu(z,ye,Ve){return YA(TC(void 0,void 0,void 0,void 0,ye?[ye]:[],void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function qO(z,ye,Ve){return YA(cp(void 0,void 0,ye?[ye]:[],void 0,void 0,eA(z,!0)),void 0,Ve?[Ve]:[])}function hB(){return CI(ue("0"))}function mw(z){return $1(void 0,!1,z)}function AF(z){return N_(void 0,!1,ry([yb(!1,void 0,z)]))}function $O(z,ye){return ye==="null"?X.createStrictEquality(z,Ar()):ye==="undefined"?X.createStrictEquality(z,hB()):X.createStrictEquality(lm(z),Se(ye))}function iY(z,ye){return ye==="null"?X.createStrictInequality(z,Ar()):ye==="undefined"?X.createStrictInequality(z,hB()):X.createStrictInequality(lm(z),Se(ye))}function LT(z,ye,Ve){return V2i(z)?Nm(Ql(z,void 0,ye),void 0,void 0,Ve):YA(Bo(z,ye),void 0,Ve)}function GD(z,ye,Ve){return LT(z,"bind",[ye,...Ve])}function dF(z,ye,Ve){return LT(z,"call",[ye,...Ve])}function EL(z,ye,Ve){return LT(z,"apply",[ye,Ve])}function ff(z,ye,Ve){return LT(je(z),ye,Ve)}function FD(z,ye){return LT(z,"slice",ye===void 0?[]:[zd(ye)])}function fE(z,ye){return LT(z,"concat",ye)}function n2(z,ye,Ve){return ff("Object","defineProperty",[z,zd(ye),Ve])}function mB(z,ye){return ff("Object","getOwnPropertyDescriptor",[z,zd(ye)])}function bd(z,ye,Ve){return ff("Reflect","get",Ve?[z,ye,Ve]:[z,ye])}function s1(z,ye,Ve,Ct){return ff("Reflect","set",Ct?[z,ye,Ve,Ct]:[z,ye,Ve])}function Uh(z,ye,Ve){return Ve?(z.push(IB(ye,Ve)),!0):!1}function wb(z,ye){let Ve=[];Uh(Ve,"enumerable",zd(z.enumerable)),Uh(Ve,"configurable",zd(z.configurable));let Ct=Uh(Ve,"writable",zd(z.writable));Ct=Uh(Ve,"value",z.value)||Ct;let wr=Uh(Ve,"get",z.get);return wr=Uh(Ve,"set",z.set)||wr,Zo.assert(!(Ct&&wr),"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor."),Wn(Ve,!ye)}function Uu(z,ye){switch(z.kind){case 217:return XE(z,ye);case 216:return J_(z,z.type,ye);case 234:return NC(z,ye,z.type);case 238:return kC(z,ye,z.type);case 235:return U_(z,ye);case 233:return hb(z,ye,z.typeArguments);case 355:return Po(z,ye)}}function iy(z){return rDr(z)&&CNe(z)&&CNe(getSourceMapRange(z))&&CNe(getCommentRange(z))&&!oD(getSyntheticLeadingComments(z))&&!oD(getSyntheticTrailingComments(z))}function sY(z,ye,Ve=31){return z&&EBi(z,Ve)&&!iy(z)?Uu(z,sY(z.expression,ye)):ye}function oY(z,ye,Ve){if(!ye)return z;let Ct=Jr(ye,ye.label,uec(ye.statement)?oY(z,ye.statement):z);return Ve&&Ve(ye),Ct}function jR(z,ye){let Ve=jNr(z);switch(Ve.kind){case 80:return ye;case 110:case 9:case 10:case 11:return!1;case 209:return Ve.elements.length!==0;case 210:return Ve.properties.length>0;default:return!0}}function aY(z,ye,Ve,Ct=!1){let wr=sDr(z,31),ai,Lo;return Q2i(wr)?(ai=cr(),Lo=wr):$Rr(wr)?(ai=cr(),Lo=Ve!==void 0&&Ve<2?zZ(je("_super"),wr):wr):RNe(wr)&8192?(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(wr,!1)):Bce(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=Bo(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.name),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):BJe(wr)?jR(wr.expression,Ct)?(ai=St(ye),Lo=ef(zZ(X.createAssignment(ai,wr.expression),wr.expression),wr.argumentExpression),zZ(Lo,wr)):(ai=wr.expression,Lo=wr):(ai=hB(),Lo=n().parenthesizeLeftSideOfAccess(z,!1)),{target:Lo,thisArg:ai}}function tt(z,ye){return Bo(q0(Wn([li(void 0,"value",[io(void 0,void 0,z,void 0,void 0,void 0)],eA([cs(ye)]))])),"value")}function Jt(z){return z.length>10?dc(z):K6a(z,X.createComma)}function kr(z,ye,Ve,Ct=0,wr){let ai=wr?z&&MNr(z):Bvi(z);if(ai&&$C(ai)&&!vNe(ai)){let Lo=$Nr(zZ(tv(ai),ai),ai.parent);return Ct|=RNe(ai),Ve||(Ct|=96),ye||(Ct|=3072),Ct&&setEmitFlags(Lo,Ct),Lo}return Tr(z)}function Xr(z,ye,Ve){return kr(z,ye,Ve,98304)}function ui(z,ye,Ve,Ct){return kr(z,ye,Ve,32768,Ct)}function Is(z,ye,Ve){return kr(z,ye,Ve,16384)}function Hs(z,ye,Ve){return kr(z,ye,Ve)}function Rs(z,ye,Ve,Ct){let wr=Bo(z,CNe(ye)?ye:tv(ye));zZ(wr,ye);let ai=0;return Ct||(ai|=96),Ve||(ai|=3072),ai&&setEmitFlags(wr,ai),wr}function ja(z,ye,Ve,Ct){return z&&vJe(ye,32)?Rs(z,kr(ye),Ve,Ct):Is(ye,Ve,Ct)}function ho(z,ye,Ve,Ct){let wr=ed(z,ye,0,Ve);return Og(z,ye,wr,Ct)}function sl(z){return tEt(z.expression)&&z.expression.text==="use strict"}function Nd(){return Wec(cs(Se("use strict")))}function ed(z,ye,Ve=0,Ct){Zo.assert(ye.length===0,"Prologue directives should be at the first statement in the target statements array");let wr=!1,ai=z.length;for(;VeHc&&dm.splice(wr,0,...ye.slice(Hc,ad)),Hc>Lo&&dm.splice(Ct,0,...ye.slice(Lo,Hc)),Lo>ai&&dm.splice(Ve,0,...ye.slice(ai,Lo)),ai>0)if(Ve===0)dm.splice(0,0,...ye.slice(0,ai));else{let rv=new Map;for(let nv=0;nv=0;nv--){let yx=ye[nv];rv.has(yx.expression.text)||dm.unshift(yx)}}return _ce(z)?zZ(ae(dm,z.hasTrailingComma),z):z}function IE(z,ye){let Ve;return typeof ye=="number"?Ve=jt(ye):Ve=ye,eBi(z)?xi(z,Ve,z.name,z.constraint,z.default):Ubt(z)?ga(z,Ve,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):sBi(z)?Ko(z,Ve,z.typeParameters,z.parameters,z.type):D$a(z)?Sc(z,Ve,z.name,z.questionToken,z.type):Kbt(z)?Ft(z,Ve,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):k$a(z)?Rn(z,Ve,z.name,z.questionToken,z.typeParameters,z.parameters,z.type):INr(z)?Qi(z,Ve,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):tBi(z)?Cg(z,Ve,z.parameters,z.body):hNr(z)?ma(z,Ve,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,Ve,z.name,z.parameters,z.body):rBi(z)?Ul(z,Ve,z.parameters,z.type):cBi(z)?t_(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):lBi(z)?Mm(z,Ve,z.typeParameters,z.parameters,z.type,z.equalsGreaterThanToken,z.body):mNr(z)?Hm(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):rEt(z)?um(z,Ve,z.declarationList):ABi(z)?sB(z,Ve,z.asteriskToken,z.name,z.typeParameters,z.parameters,z.type,z.body):zbt(z)?jE(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):nDr(z)?NT(z,Ve,z.name,z.typeParameters,z.heritageClauses,z.members):dBi(z)?Ty(z,Ve,z.name,z.typeParameters,z.type):Aec(z)?$I(z,Ve,z.name,z.members):EJe(z)?$A(z,Ve,z.name,z.body):pBi(z)?z_(z,Ve,z.isTypeOnly,z.name,z.moduleReference):fBi(z)?oB(z,Ve,z.importClause,z.moduleSpecifier,z.attributes):IBi(z)?$E(z,Ve,z.expression):hBi(z)?e1(z,Ve,z.isTypeOnly,z.exportClause,z.moduleSpecifier,z.attributes):Zo.assertNever(z)}function zR(z,ye){return Ubt(z)?ga(z,ye,z.dotDotDotToken,z.name,z.questionToken,z.type,z.initializer):Kbt(z)?Ft(z,ye,z.name,z.questionToken??z.exclamationToken,z.type,z.initializer):INr(z)?Qi(z,ye,z.asteriskToken,z.name,z.questionToken,z.typeParameters,z.parameters,z.type,z.body):hNr(z)?ma(z,ye,z.name,z.parameters,z.type,z.body):jbt(z)?Ei(z,ye,z.name,z.parameters,z.body):mNr(z)?Hm(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):zbt(z)?jE(z,ye,z.name,z.typeParameters,z.heritageClauses,z.members):Zo.assertNever(z)}function e3(z,ye){switch(z.kind){case 177:return ma(z,z.modifiers,ye,z.parameters,z.type,z.body);case 178:return Ei(z,z.modifiers,ye,z.parameters,z.body);case 174:return Qi(z,z.modifiers,z.asteriskToken,ye,z.questionToken,z.typeParameters,z.parameters,z.type,z.body);case 173:return Rn(z,z.modifiers,ye,z.questionToken,z.typeParameters,z.parameters,z.type);case 172:return Ft(z,z.modifiers,ye,z.questionToken??z.exclamationToken,z.type,z.initializer);case 171:return Sc(z,z.modifiers,ye,z.questionToken,z.type);case 303:return Bb(z,ye,z.initializer)}}function IA(z){return z?ae(z):void 0}function EI(z){return typeof z=="string"?je(z):z}function zd(z){return typeof z=="string"?Se(z):typeof z=="number"?ue(z):typeof z=="boolean"?z?qr():_n():z}function wA(z){return z&&n().parenthesizeExpressionForDisallowedComma(z)}function qR(z){return typeof z=="number"?Xt(z):z}function sy(z){return z&&pec(z)?zZ(r(gm(),z),z):z}function $2(z){return typeof z=="string"||z&&!gBi(z)?Rf(z,void 0,void 0,void 0):z}function Eo(z,ye){return z!==ye&&(r(z,ye),zZ(z,ye)),z}}function xbt(e){switch(e){case 344:return"type";case 342:return"returns";case 343:return"this";case 340:return"enum";case 330:return"author";case 332:return"class";case 333:return"public";case 334:return"private";case 335:return"protected";case 336:return"readonly";case 337:return"override";case 345:return"template";case 346:return"typedef";case 341:return"param";case 348:return"prop";case 338:return"callback";case 339:return"overload";case 328:return"augments";case 329:return"implements";case 351:return"import";default:return Zo.fail(`Unsupported kind: ${Zo.formatSyntaxKind(e)}`)}}var hV,z2i={};function m$a(e,t){switch(hV||(hV=WNr(99,!1,0)),e){case 15:hV.setText("`"+t+"`");break;case 16:hV.setText("`"+t+"${");break;case 17:hV.setText("}"+t+"${");break;case 18:hV.setText("}"+t+"`");break}let r=hV.scan();if(r===20&&(r=hV.reScanTemplateToken(!1)),hV.isUnterminated())return hV.setText(void 0),z2i;let n;switch(r){case 15:case 16:case 17:case 18:n=hV.getTokenValue();break}return n===void 0||hV.scan()!==1?(hV.setText(void 0),z2i):(hV.setText(void 0),n)}function pO(e){return e&&$C(e)?_Ne(e):$o(e)}function _Ne(e){return $o(e)&-67108865}function C$a(e,t){return t|e.transformFlags&134234112}function $o(e){if(!e)return 0;let t=e.transformFlags&~_$a(e.kind);return $7a(e)&&kvi(e.name)?C$a(e.name,t):t}function qA(e){return e?e.transformFlags:0}function q2i(e){let t=0;for(let r of e)t|=$o(r);e.transformFlags=t}function _$a(e){if(e>=182&&e<=205)return-2;switch(e){case 213:case 214:case 209:return-2147450880;case 267:return-1941676032;case 169:return-2147483648;case 219:return-2072174592;case 218:case 262:return-1937940480;case 261:return-2146893824;case 263:case 231:return-2147344384;case 176:return-1937948672;case 172:return-2013249536;case 174:case 177:case 178:return-2005057536;case 133:case 150:case 163:case 146:case 154:case 151:case 136:case 155:case 116:case 168:case 171:case 173:case 179:case 180:case 181:case 264:case 265:return-2;case 210:return-2147278848;case 299:return-2147418112;case 206:case 207:return-2147450880;case 216:case 238:case 234:case 355:case 217:case 108:return-2147483648;case 211:case 212:return-2147483648;default:return-2147483648}}var nJe=f$a();function iJe(e){return e.flags|=16,e}var y$a={createBaseSourceFileNode:e=>iJe(nJe.createBaseSourceFileNode(e)),createBaseIdentifierNode:e=>iJe(nJe.createBaseIdentifierNode(e)),createBasePrivateIdentifierNode:e=>iJe(nJe.createBasePrivateIdentifierNode(e)),createBaseTokenNode:e=>iJe(nJe.createBaseTokenNode(e)),createBaseNode:e=>iJe(nJe.createBaseNode(e))},$Tu=eDr(4,y$a);function b$a(e,t){if(e.original!==t&&(e.original=t,t)){let r=t.emitNode;r&&(e.emitNode=E$a(r,e.emitNode))}return e}function E$a(e,t){let{flags:r,internalFlags:n,leadingComments:a,trailingComments:o,commentRange:l,sourceMapRange:A,tokenSourceMapRanges:f,constantValue:I,helpers:C,startsOnNewLine:b,snippetElement:E,classThis:N,assignedName:B}=e;if(t||(t={}),r&&(t.flags=r),n&&(t.internalFlags=n&-9),a&&(t.leadingComments=_V(a.slice(),t.leadingComments)),o&&(t.trailingComments=_V(o.slice(),t.trailingComments)),l&&(t.commentRange=l),A&&(t.sourceMapRange=A),f&&(t.tokenSourceMapRanges=S$a(f,t.tokenSourceMapRanges)),I!==void 0&&(t.constantValue=I),C)for(let F of C)t.helpers=H6a(t.helpers,F);return b!==void 0&&(t.startsOnNewLine=b),E!==void 0&&(t.snippetElement=E),N&&(t.classThis=N),B&&(t.assignedName=B),t}function S$a(e,t){t||(t=[]);for(let r in e)t[r]=e[r];return t}function kNe(e){return e.kind===9}function v$a(e){return e.kind===10}function tEt(e){return e.kind===11}function B$a(e){return e.kind===15}function w$a(e){return e.kind===28}function $2i(e){return e.kind===54}function eSi(e){return e.kind===58}function $C(e){return e.kind===80}function Yme(e){return e.kind===81}function T$a(e){return e.kind===95}function Gbt(e){return e.kind===134}function $Rr(e){return e.kind===108}function R$a(e){return e.kind===102}function N$a(e){return e.kind===166}function $vi(e){return e.kind===167}function eBi(e){return e.kind===168}function Ubt(e){return e.kind===169}function tDr(e){return e.kind===170}function D$a(e){return e.kind===171}function Kbt(e){return e.kind===172}function k$a(e){return e.kind===173}function INr(e){return e.kind===174}function tBi(e){return e.kind===176}function hNr(e){return e.kind===177}function jbt(e){return e.kind===178}function x$a(e){return e.kind===179}function G$a(e){return e.kind===180}function rBi(e){return e.kind===181}function F$a(e){return e.kind===182}function nBi(e){return e.kind===183}function iBi(e){return e.kind===184}function sBi(e){return e.kind===185}function Z$a(e){return e.kind===186}function L$a(e){return e.kind===187}function V$a(e){return e.kind===188}function P$a(e){return e.kind===189}function W$a(e){return e.kind===202}function O$a(e){return e.kind===190}function M$a(e){return e.kind===191}function H$a(e){return e.kind===192}function Y$a(e){return e.kind===193}function Q$a(e){return e.kind===194}function X$a(e){return e.kind===195}function J$a(e){return e.kind===196}function U$a(e){return e.kind===197}function K$a(e){return e.kind===198}function j$a(e){return e.kind===199}function z$a(e){return e.kind===200}function q$a(e){return e.kind===201}function $$a(e){return e.kind===205}function eec(e){return e.kind===208}function tec(e){return e.kind===209}function oBi(e){return e.kind===210}function Bce(e){return e.kind===211}function BJe(e){return e.kind===212}function aBi(e){return e.kind===213}function rec(e){return e.kind===215}function rDr(e){return e.kind===217}function cBi(e){return e.kind===218}function lBi(e){return e.kind===219}function nec(e){return e.kind===222}function iec(e){return e.kind===224}function DNe(e){return e.kind===226}function sec(e){return e.kind===230}function mNr(e){return e.kind===231}function oec(e){return e.kind===232}function aec(e){return e.kind===233}function Vbt(e){return e.kind===235}function cec(e){return e.kind===236}function lec(e){return e.kind===356}function rEt(e){return e.kind===243}function uBi(e){return e.kind===244}function uec(e){return e.kind===256}function gBi(e){return e.kind===260}function gec(e){return e.kind===261}function ABi(e){return e.kind===262}function zbt(e){return e.kind===263}function nDr(e){return e.kind===264}function dBi(e){return e.kind===265}function Aec(e){return e.kind===266}function EJe(e){return e.kind===267}function pBi(e){return e.kind===271}function fBi(e){return e.kind===272}function IBi(e){return e.kind===277}function hBi(e){return e.kind===278}function dec(e){return e.kind===279}function pec(e){return e.kind===353}function mBi(e){return e.kind===283}function tSi(e){return e.kind===286}function fec(e){return e.kind===289}function CBi(e){return e.kind===295}function Iec(e){return e.kind===297}function hec(e){return e.kind===303}function mec(e){return e.kind===307}function Cec(e){return e.kind===309}function _ec(e){return e.kind===314}function yec(e){return e.kind===317}function _Bi(e){return e.kind===320}function bec(e){return e.kind===322}function yBi(e){return e.kind===323}function Eec(e){return e.kind===328}function Sec(e){return e.kind===333}function vec(e){return e.kind===334}function Bec(e){return e.kind===335}function wec(e){return e.kind===336}function Tec(e){return e.kind===337}function Rec(e){return e.kind===339}function Nec(e){return e.kind===331}function rSi(e){return e.kind===341}function Dec(e){return e.kind===342}function iDr(e){return e.kind===344}function kec(e){return e.kind===345}function xec(e){return e.kind===329}function Gec(e){return e.kind===350}var Ome=new WeakMap;function bBi(e,t){var r;let n=e.kind;return YNr(n)?n===352?e._children:(r=Ome.get(t))==null?void 0:r.get(e):x2}function Fec(e,t,r){e.kind===352&&Zo.fail("Should not need to re-set the children of a SyntaxList.");let n=Ome.get(t);return n===void 0&&(n=new WeakMap,Ome.set(t,n)),n.set(e,r),r}function nSi(e,t){var r;e.kind===352&&Zo.fail("Did not expect to unset the children of a SyntaxList."),(r=Ome.get(t))==null||r.delete(e)}function Zec(e,t){let r=Ome.get(e);r!==void 0&&(Ome.delete(e),Ome.set(t,r))}function iSi(e){return(RNe(e)&32768)!==0}function Lec(e){return tEt(e.expression)&&e.expression.text==="use strict"}function Vec(e){for(let t of e)if(Lbt(t)){if(Lec(t))return t}else break}function Pec(e){return rDr(e)&&Qme(e)&&!!fza(e)}function EBi(e,t=31){switch(e.kind){case 217:return t&-2147483648&&Pec(e)?!1:(t&1)!==0;case 216:case 234:case 238:return(t&2)!==0;case 233:return(t&16)!==0;case 235:return(t&4)!==0;case 355:return(t&8)!==0}return!1}function sDr(e,t=31){for(;EBi(e,t);)e=e.expression;return e}function Wec(e){return setStartsOnNewLine(e,!0)}function dJe(e){if(xza(e))return e.name;if(Rza(e)){switch(e.kind){case 303:return dJe(e.initializer);case 304:return e.name;case 305:return dJe(e.expression)}return}return Jbt(e,!0)?dJe(e.left):sec(e)?dJe(e.expression):e}function Oec(e){switch(e.kind){case 206:case 207:case 209:return e.elements;case 210:return e.properties}}function sSi(e){if(e){let t=e;for(;;){if($C(t)||!t.body)return $C(t)?t:t.name;t=t.body}}}var oSi;(e=>{function t(C,b,E,N,B,F,Q){let X=b>0?B[b-1]:void 0;return Zo.assertEqual(E[b],t),B[b]=C.onEnter(N[b],X,Q),E[b]=A(C,t),b}e.enter=t;function r(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],r),Zo.assertIsDefined(C.onLeft),E[b]=A(C,r);let X=C.onLeft(N[b].left,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.left=r;function n(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],n),Zo.assertIsDefined(C.onOperator),E[b]=A(C,n),C.onOperator(N[b].operatorToken,B[b],N[b]),b}e.operator=n;function a(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],a),Zo.assertIsDefined(C.onRight),E[b]=A(C,a);let X=C.onRight(N[b].right,B[b],N[b]);return X?(I(b,N,X),f(b,E,N,B,X)):b}e.right=a;function o(C,b,E,N,B,F,Q){Zo.assertEqual(E[b],o),E[b]=A(C,o);let X=C.onExit(N[b],B[b]);if(b>0){if(b--,C.foldState){let ae=E[b]===o?"right":"left";B[b]=C.foldState(B[b],X,ae)}}else F.value=X;return b}e.exit=o;function l(C,b,E,N,B,F,Q){return Zo.assertEqual(E[b],l),b}e.done=l;function A(C,b){switch(b){case t:if(C.onLeft)return r;case r:if(C.onOperator)return n;case n:if(C.onRight)return a;case a:return o;case o:return l;case l:return l;default:Zo.fail("Invalid state")}}e.nextState=A;function f(C,b,E,N,B){return C++,b[C]=t,E[C]=B,N[C]=void 0,C}function I(C,b,E){if(Zo.shouldAssert(2))for(;C>=0;)Zo.assert(b[C]!==E,"Circular traversal detected."),C--}})(oSi||(oSi={}));function aSi(e,t){return typeof e=="object"?CNr(!1,e.prefix,e.node,e.suffix,t):typeof e=="string"?e.length>0&&e.charCodeAt(0)===35?e.slice(1):e:""}function Mec(e,t){return typeof e=="string"?e:Hec(e,Zo.checkDefined(t))}function Hec(e,t){return Dvi(e)?t(e).slice(1):vNe(e)?t(e):Yme(e)?e.escapedText.slice(1):yV(e)}function CNr(e,t,r,n,a){return t=aSi(t,a),n=aSi(n,a),r=Mec(r,a),`${e?"#":""}${t}${r}${n}`}function SBi(e){if(e.transformFlags&65536)return!0;if(e.transformFlags&128)for(let t of Oec(e)){let r=dJe(t);if(r&&kza(r)&&(r.transformFlags&65536||r.transformFlags&128&&SBi(r)))return!0}return!1}function zZ(e,t){return t?Ece(e,t.pos,t.end):e}function oDr(e){let t=e.kind;return t===168||t===169||t===171||t===172||t===173||t===174||t===176||t===177||t===178||t===181||t===185||t===218||t===219||t===231||t===243||t===262||t===263||t===264||t===265||t===266||t===267||t===271||t===272||t===277||t===278}function Yec(e){let t=e.kind;return t===169||t===172||t===174||t===177||t===178||t===231||t===263}var cSi,lSi,uSi,gSi,ASi,Qec={createBaseSourceFileNode:e=>new(ASi||(ASi=k2.getSourceFileConstructor()))(e,-1,-1),createBaseIdentifierNode:e=>new(uSi||(uSi=k2.getIdentifierConstructor()))(e,-1,-1),createBasePrivateIdentifierNode:e=>new(gSi||(gSi=k2.getPrivateIdentifierConstructor()))(e,-1,-1),createBaseTokenNode:e=>new(lSi||(lSi=k2.getTokenConstructor()))(e,-1,-1),createBaseNode:e=>new(cSi||(cSi=k2.getNodeConstructor()))(e,-1,-1)},eRu=eDr(1,Qec);function wi(e,t){return t&&e(t)}function al(e,t,r){if(r){if(t)return t(r);for(let n of r){let a=e(n);if(a)return a}}}function Xec(e,t){return e.charCodeAt(t+1)===42&&e.charCodeAt(t+2)===42&&e.charCodeAt(t+3)!==47}function Jec(e){return hO(e.statements,Uec)||Kec(e)}function Uec(e){return oDr(e)&&jec(e,95)||pBi(e)&&mBi(e.moduleReference)||fBi(e)||IBi(e)||hBi(e)?e:void 0}function Kec(e){return e.flags&8388608?vBi(e):void 0}function vBi(e){return zec(e)?e:Ok(e,vBi)}function jec(e,t){return oD(e.modifiers,r=>r.kind===t)}function zec(e){return cec(e)&&e.keywordToken===102&&e.name.escapedText==="meta"}var qec={166:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},168:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.constraint)||wi(t,e.default)||wi(t,e.expression)},304:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.equalsToken)||wi(t,e.objectAssignmentInitializer)},305:function(e,t,r){return wi(t,e.expression)},169:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},172:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},171:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)||wi(t,e.initializer)},303:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||wi(t,e.initializer)},260:function(e,t,r){return wi(t,e.name)||wi(t,e.exclamationToken)||wi(t,e.type)||wi(t,e.initializer)},208:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.propertyName)||wi(t,e.name)||wi(t,e.initializer)},181:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},185:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},184:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},179:dSi,180:dSi,174:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.exclamationToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},173:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.questionToken)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)},176:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},177:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},178:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},262:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},218:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.asteriskToken)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.body)},219:function(e,t,r){return al(t,r,e.modifiers)||al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)||wi(t,e.equalsGreaterThanToken)||wi(t,e.body)},175:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.body)},183:function(e,t,r){return wi(t,e.typeName)||al(t,r,e.typeArguments)},182:function(e,t,r){return wi(t,e.assertsModifier)||wi(t,e.parameterName)||wi(t,e.type)},186:function(e,t,r){return wi(t,e.exprName)||al(t,r,e.typeArguments)},187:function(e,t,r){return al(t,r,e.members)},188:function(e,t,r){return wi(t,e.elementType)},189:function(e,t,r){return al(t,r,e.elements)},192:pSi,193:pSi,194:function(e,t,r){return wi(t,e.checkType)||wi(t,e.extendsType)||wi(t,e.trueType)||wi(t,e.falseType)},195:function(e,t,r){return wi(t,e.typeParameter)},205:function(e,t,r){return wi(t,e.argument)||wi(t,e.attributes)||wi(t,e.qualifier)||al(t,r,e.typeArguments)},302:function(e,t,r){return wi(t,e.assertClause)},196:fSi,198:fSi,199:function(e,t,r){return wi(t,e.objectType)||wi(t,e.indexType)},200:function(e,t,r){return wi(t,e.readonlyToken)||wi(t,e.typeParameter)||wi(t,e.nameType)||wi(t,e.questionToken)||wi(t,e.type)||al(t,r,e.members)},201:function(e,t,r){return wi(t,e.literal)},202:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.name)||wi(t,e.questionToken)||wi(t,e.type)},206:ISi,207:ISi,209:function(e,t,r){return al(t,r,e.elements)},210:function(e,t,r){return al(t,r,e.properties)},211:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.name)},212:function(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||wi(t,e.argumentExpression)},213:hSi,214:hSi,215:function(e,t,r){return wi(t,e.tag)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||wi(t,e.template)},216:function(e,t,r){return wi(t,e.type)||wi(t,e.expression)},217:function(e,t,r){return wi(t,e.expression)},220:function(e,t,r){return wi(t,e.expression)},221:function(e,t,r){return wi(t,e.expression)},222:function(e,t,r){return wi(t,e.expression)},224:function(e,t,r){return wi(t,e.operand)},229:function(e,t,r){return wi(t,e.asteriskToken)||wi(t,e.expression)},223:function(e,t,r){return wi(t,e.expression)},225:function(e,t,r){return wi(t,e.operand)},226:function(e,t,r){return wi(t,e.left)||wi(t,e.operatorToken)||wi(t,e.right)},234:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},235:function(e,t,r){return wi(t,e.expression)},238:function(e,t,r){return wi(t,e.expression)||wi(t,e.type)},236:function(e,t,r){return wi(t,e.name)},227:function(e,t,r){return wi(t,e.condition)||wi(t,e.questionToken)||wi(t,e.whenTrue)||wi(t,e.colonToken)||wi(t,e.whenFalse)},230:function(e,t,r){return wi(t,e.expression)},241:mSi,268:mSi,307:function(e,t,r){return al(t,r,e.statements)||wi(t,e.endOfFileToken)},243:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.declarationList)},261:function(e,t,r){return al(t,r,e.declarations)},244:function(e,t,r){return wi(t,e.expression)},245:function(e,t,r){return wi(t,e.expression)||wi(t,e.thenStatement)||wi(t,e.elseStatement)},246:function(e,t,r){return wi(t,e.statement)||wi(t,e.expression)},247:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},248:function(e,t,r){return wi(t,e.initializer)||wi(t,e.condition)||wi(t,e.incrementor)||wi(t,e.statement)},249:function(e,t,r){return wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},250:function(e,t,r){return wi(t,e.awaitModifier)||wi(t,e.initializer)||wi(t,e.expression)||wi(t,e.statement)},251:CSi,252:CSi,253:function(e,t,r){return wi(t,e.expression)},254:function(e,t,r){return wi(t,e.expression)||wi(t,e.statement)},255:function(e,t,r){return wi(t,e.expression)||wi(t,e.caseBlock)},269:function(e,t,r){return al(t,r,e.clauses)},296:function(e,t,r){return wi(t,e.expression)||al(t,r,e.statements)},297:function(e,t,r){return al(t,r,e.statements)},256:function(e,t,r){return wi(t,e.label)||wi(t,e.statement)},257:function(e,t,r){return wi(t,e.expression)},258:function(e,t,r){return wi(t,e.tryBlock)||wi(t,e.catchClause)||wi(t,e.finallyBlock)},299:function(e,t,r){return wi(t,e.variableDeclaration)||wi(t,e.block)},170:function(e,t,r){return wi(t,e.expression)},263:_Si,231:_Si,264:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)},265:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||wi(t,e.type)},266:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.members)},306:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},267:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.body)},271:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||wi(t,e.moduleReference)},272:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},273:function(e,t,r){return wi(t,e.name)||wi(t,e.namedBindings)},300:function(e,t,r){return al(t,r,e.elements)},301:function(e,t,r){return wi(t,e.name)||wi(t,e.value)},270:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)},274:function(e,t,r){return wi(t,e.name)},280:function(e,t,r){return wi(t,e.name)},275:ySi,279:ySi,278:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.exportClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)},276:bSi,281:bSi,277:function(e,t,r){return al(t,r,e.modifiers)||wi(t,e.expression)},228:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},239:function(e,t,r){return wi(t,e.expression)||wi(t,e.literal)},203:function(e,t,r){return wi(t,e.head)||al(t,r,e.templateSpans)},204:function(e,t,r){return wi(t,e.type)||wi(t,e.literal)},167:function(e,t,r){return wi(t,e.expression)},298:function(e,t,r){return al(t,r,e.types)},233:function(e,t,r){return wi(t,e.expression)||al(t,r,e.typeArguments)},283:function(e,t,r){return wi(t,e.expression)},282:function(e,t,r){return al(t,r,e.modifiers)},356:function(e,t,r){return al(t,r,e.elements)},284:function(e,t,r){return wi(t,e.openingElement)||al(t,r,e.children)||wi(t,e.closingElement)},288:function(e,t,r){return wi(t,e.openingFragment)||al(t,r,e.children)||wi(t,e.closingFragment)},285:ESi,286:ESi,292:function(e,t,r){return al(t,r,e.properties)},291:function(e,t,r){return wi(t,e.name)||wi(t,e.initializer)},293:function(e,t,r){return wi(t,e.expression)},294:function(e,t,r){return wi(t,e.dotDotDotToken)||wi(t,e.expression)},287:function(e,t,r){return wi(t,e.tagName)},295:function(e,t,r){return wi(t,e.namespace)||wi(t,e.name)},190:Dme,191:Dme,309:Dme,315:Dme,314:Dme,316:Dme,318:Dme,317:function(e,t,r){return al(t,r,e.parameters)||wi(t,e.type)},320:function(e,t,r){return(typeof e.comment=="string"?void 0:al(t,r,e.comment))||al(t,r,e.tags)},347:function(e,t,r){return wi(t,e.tagName)||wi(t,e.name)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},310:function(e,t,r){return wi(t,e.name)},311:function(e,t,r){return wi(t,e.left)||wi(t,e.right)},341:SSi,348:SSi,330:function(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},329:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},328:function(e,t,r){return wi(t,e.tagName)||wi(t,e.class)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},345:function(e,t,r){return wi(t,e.tagName)||wi(t,e.constraint)||al(t,r,e.typeParameters)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},346:function(e,t,r){return wi(t,e.tagName)||(e.typeExpression&&e.typeExpression.kind===309?wi(t,e.typeExpression)||wi(t,e.fullName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)):wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment)))},338:function(e,t,r){return wi(t,e.tagName)||wi(t,e.fullName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))},342:kme,344:kme,343:kme,340:kme,350:kme,349:kme,339:kme,323:function(e,t,r){return hO(e.typeParameters,t)||hO(e.parameters,t)||wi(t,e.type)},324:eNr,325:eNr,326:eNr,322:function(e,t,r){return hO(e.jsDocPropertyTags,t)},327:Ice,332:Ice,333:Ice,334:Ice,335:Ice,336:Ice,331:Ice,337:Ice,351:$ec,355:etc};function dSi(e,t,r){return al(t,r,e.typeParameters)||al(t,r,e.parameters)||wi(t,e.type)}function pSi(e,t,r){return al(t,r,e.types)}function fSi(e,t,r){return wi(t,e.type)}function ISi(e,t,r){return al(t,r,e.elements)}function hSi(e,t,r){return wi(t,e.expression)||wi(t,e.questionDotToken)||al(t,r,e.typeArguments)||al(t,r,e.arguments)}function mSi(e,t,r){return al(t,r,e.statements)}function CSi(e,t,r){return wi(t,e.label)}function _Si(e,t,r){return al(t,r,e.modifiers)||wi(t,e.name)||al(t,r,e.typeParameters)||al(t,r,e.heritageClauses)||al(t,r,e.members)}function ySi(e,t,r){return al(t,r,e.elements)}function bSi(e,t,r){return wi(t,e.propertyName)||wi(t,e.name)}function ESi(e,t,r){return wi(t,e.tagName)||al(t,r,e.typeArguments)||wi(t,e.attributes)}function Dme(e,t,r){return wi(t,e.type)}function SSi(e,t,r){return wi(t,e.tagName)||(e.isNameFirst?wi(t,e.name)||wi(t,e.typeExpression):wi(t,e.typeExpression)||wi(t,e.name))||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function kme(e,t,r){return wi(t,e.tagName)||wi(t,e.typeExpression)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function eNr(e,t,r){return wi(t,e.name)}function Ice(e,t,r){return wi(t,e.tagName)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function $ec(e,t,r){return wi(t,e.tagName)||wi(t,e.importClause)||wi(t,e.moduleSpecifier)||wi(t,e.attributes)||(typeof e.comment=="string"?void 0:al(t,r,e.comment))}function etc(e,t,r){return wi(t,e.expression)}function Ok(e,t,r){if(e===void 0||e.kind<=165)return;let n=qec[e.kind];return n===void 0?void 0:n(e,t,r)}function vSi(e,t,r){let n=BSi(e),a=[];for(;a.length=0;--A)n.push(o[A]),a.push(l)}else{let A=t(o,l);if(A){if(A==="skip")continue;return A}if(o.kind>=166)for(let f of BSi(o))n.push(f),a.push(o)}}}function BSi(e){let t=[];return Ok(e,r,r),t;function r(n){t.unshift(n)}}function BBi(e){e.externalModuleIndicator=Jec(e)}function ttc(e,t,r,n=!1,a){var o,l;(o=Fbt)==null||o.push(Fbt.Phase.Parse,"createSourceFile",{path:e},!0),T2i("beforeParse");let A,{languageVersion:f,setExternalModuleIndicator:I,impliedNodeFormat:C,jsDocParsingMode:b}=typeof r=="object"?r:{languageVersion:r};if(f===100)A=Mme.parseSourceFile(e,t,f,void 0,n,6,NNe,b);else{let E=C===void 0?I:N=>(N.impliedNodeFormat=C,(I||BBi)(N));A=Mme.parseSourceFile(e,t,f,void 0,n,a,E,b)}return T2i("afterParse"),u7a("Parse","beforeParse","afterParse"),(l=Fbt)==null||l.pop(),A}function rtc(e){return e.externalModuleIndicator!==void 0}function ntc(e,t,r,n=!1){let a=qbt.updateSourceFile(e,t,r,n);return a.flags|=e.flags&12582912,a}var Mme;(e=>{var t=WNr(99,!0),r=40960,n,a,o,l,A;function f(tt){return _n++,tt}var I={createBaseSourceFileNode:tt=>f(new A(tt,0,0)),createBaseIdentifierNode:tt=>f(new o(tt,0,0)),createBasePrivateIdentifierNode:tt=>f(new l(tt,0,0)),createBaseTokenNode:tt=>f(new a(tt,0,0)),createBaseNode:tt=>f(new n(tt,0,0))},C=eDr(11,I),{createNodeArray:b,createNumericLiteral:E,createStringLiteral:N,createLiteralLikeNode:B,createIdentifier:F,createPrivateIdentifier:Q,createToken:X,createArrayLiteralExpression:ae,createObjectLiteralExpression:ne,createPropertyAccessExpression:ce,createPropertyAccessChain:fe,createElementAccessExpression:ue,createElementAccessChain:de,createCallExpression:be,createCallChain:Se,createNewExpression:De,createParenthesizedExpression:k,createBlock:et,createVariableStatement:ct,createExpressionStatement:Me,createIfStatement:je,createWhileStatement:St,createForStatement:At,createForOfStatement:Yt,createVariableDeclaration:Tr,createVariableDeclarationList:Nr}=C,er,vt,xt,Zr,qt,Xt,lr,cr,Ar,qr,_n,ke,jt,Fn,Nn,Hi,po=!0,Vr=!1;function xi(tt,Jt,kr,Xr,ui=!1,Is,Hs,Rs=0){var ja;if(Is=r$a(tt,Is),Is===6){let sl=ga(tt,Jt,kr,Xr,ui);return convertToJson(sl,(ja=sl.statements[0])==null?void 0:ja.expression,sl.parseDiagnostics,!1,void 0),sl.referencedFiles=x2,sl.typeReferenceDirectives=x2,sl.libReferenceDirectives=x2,sl.amdDependencies=x2,sl.hasNoDefaultLib=!1,sl.pragmas=Z6a,sl}Ya(tt,Jt,kr,Xr,Is,Rs);let ho=cl(kr,ui,Is,Hs||BBi,Rs);return Gc(),ho}e.parseSourceFile=xi;function io(tt,Jt){Ya("",tt,Jt,void 0,1,0),Vs();let kr=se(!0),Xr=Wt()===1&&!lr.length;return Gc(),Xr?kr:void 0}e.parseIsolatedEntityName=io;function ga(tt,Jt,kr=2,Xr,ui=!1){Ya(tt,Jt,kr,Xr,6,0),vt=Hi,Vs();let Is=Ri(),Hs,Rs;if(Wt()===1)Hs=Er([],Is,Is),Rs=ZA();else{let sl;for(;Wt()!==1;){let Og;switch(Wt()){case 23:Og=ag();break;case 112:case 97:case 106:Og=ZA();break;case 41:oo(()=>Vs()===9&&Vs()!==59)?Og=ey():Og=n1();break;case 9:case 11:if(oo(()=>Vs()!==59)){Og=ra();break}default:Og=n1();break}sl&&Tee(sl)?sl.push(Og):sl?sl=[sl,Og]:(sl=Og,Wt()!==1&&Da(ts.Unexpected_token))}let Nd=Tee(sl)?Zt(ae(sl),Is):Zo.checkDefined(sl),ed=Me(Nd);Zt(ed,Is),Hs=Er([ed],Is),Rs=il(1,ts.Unexpected_token)}let ja=zr(tt,2,6,!1,Hs,Rs,vt,NNe);ui&&Ft(ja),ja.nodeCount=_n,ja.identifierCount=jt,ja.identifiers=ke,ja.parseDiagnostics=Nme(lr,ja),cr&&(ja.jsDocDiagnostics=Nme(cr,ja));let ho=ja;return Gc(),ho}e.parseJsonText=ga;function Ya(tt,Jt,kr,Xr,ui,Is){switch(n=k2.getNodeConstructor(),a=k2.getTokenConstructor(),o=k2.getIdentifierConstructor(),l=k2.getPrivateIdentifierConstructor(),A=k2.getSourceFileConstructor(),er=E7a(tt),xt=Jt,Zr=kr,Ar=Xr,qt=ui,Xt=U2i(ui),lr=[],Fn=0,ke=new Map,jt=0,_n=0,vt=0,po=!0,qt){case 1:case 2:Hi=524288;break;case 6:Hi=134742016;break;default:Hi=0;break}Vr=!1,t.setText(xt),t.setOnError(Qh),t.setScriptTarget(Zr),t.setLanguageVariant(Xt),t.setScriptKind(qt),t.setJSDocParsingMode(Is)}function Gc(){t.clearCommentDirectives(),t.setText(""),t.setOnError(void 0),t.setScriptKind(0),t.setJSDocParsingMode(0),xt=void 0,Zr=void 0,Ar=void 0,qt=void 0,Xt=void 0,vt=0,lr=void 0,cr=void 0,Fn=0,ke=void 0,Nn=void 0,po=!0}function cl(tt,Jt,kr,Xr,ui){let Is=otc(er);Is&&(Hi|=33554432),vt=Hi,Vs();let Hs=jd(0,Am);Zo.assert(Wt()===1);let Rs=Do(),ja=Hr(ZA(),Rs),ho=zr(er,tt,kr,Is,Hs,ja,vt,Xr);return ltc(ho,xt),utc(ho,sl),ho.commentDirectives=t.getCommentDirectives(),ho.nodeCount=_n,ho.identifierCount=jt,ho.identifiers=ke,ho.parseDiagnostics=Nme(lr,ho),ho.jsDocParsingMode=ui,cr&&(ho.jsDocDiagnostics=Nme(cr,ho)),Jt&&Ft(ho),ho;function sl(Nd,ed,Og){lr.push(pNe(er,xt,Nd,ed,Og))}}let Sc=!1;function Hr(tt,Jt){if(!Jt)return tt;Zo.assert(!tt.jsDoc);let kr=W6a(qza(tt,xt),Xr=>aY.parseJSDocComment(tt,Xr.pos,Xr.end-Xr.pos));return kr.length&&(tt.jsDoc=kr),Sc&&(Sc=!1,tt.flags|=536870912),tt}function Wr(tt){let Jt=Ar,kr=qbt.createSyntaxCursor(tt);Ar={currentNode:sl};let Xr=[],ui=lr;lr=[];let Is=0,Hs=ja(tt.statements,0);for(;Hs!==-1;){let Nd=tt.statements[Is],ed=tt.statements[Hs];_V(Xr,tt.statements,Is,Hs),Is=ho(tt.statements,Hs);let Og=YRr(ui,o1=>o1.start>=Nd.pos),Nh=Og>=0?YRr(ui,o1=>o1.start>=ed.pos,Og):-1;Og>=0&&_V(lr,ui,Og,Nh>=0?Nh:void 0),oA(()=>{let o1=Hi;for(Hi|=65536,t.resetTokenState(ed.pos),Vs();Wt()!==1;){let Tb=t.getTokenFullStart(),q2=dh(0,Am);if(Xr.push(q2),Tb===t.getTokenFullStart()&&Vs(),Is>=0){let IE=tt.statements[Is];if(q2.end===IE.pos)break;q2.end>IE.pos&&(Is=ho(tt.statements,Is+1))}}Hi=o1},2),Hs=Is>=0?ja(tt.statements,Is):-1}if(Is>=0){let Nd=tt.statements[Is];_V(Xr,tt.statements,Is);let ed=YRr(ui,Og=>Og.start>=Nd.pos);ed>=0&&_V(lr,ui,ed)}return Ar=Jt,C.updateSourceFile(tt,zZ(b(Xr),tt.statements));function Rs(Nd){return!(Nd.flags&65536)&&!!(Nd.transformFlags&67108864)}function ja(Nd,ed){for(let Og=ed;Og118}function Xs(){return Wt()===80?!0:Wt()===127&&Yl()||Wt()===135&&Xu()?!1:Wt()>118}function ws(tt,Jt,kr=!0){return Wt()===tt?(kr&&Vs(),!0):(Jt?Da(Jt):Da(ts._0_expected,by(tt)),!1)}let Gs=Object.keys(LNr).filter(tt=>tt.length>2);function Ma(tt){if(rec(tt)){_g(dj(xt,tt.template.pos),tt.template.end,ts.Module_declaration_names_may_only_use_or_quoted_strings);return}let Jt=$C(tt)?yV(tt):void 0;if(!Jt||!Q7a(Jt,Zr)){Da(ts._0_expected,by(27));return}let kr=dj(xt,tt.pos);switch(Jt){case"const":case"let":case"var":_g(kr,tt.end,ts.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":Dc(ts.Interface_name_cannot_be_0,ts.Interface_must_be_given_a_name,19);return;case"is":_g(kr,t.getTokenStart(),ts.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":Dc(ts.Namespace_name_cannot_be_0,ts.Namespace_must_be_given_a_name,19);return;case"type":Dc(ts.Type_alias_name_cannot_be_0,ts.Type_alias_must_be_given_a_name,64);return}let Xr=lJe(Jt,Gs,VE)??As(Jt);if(Xr){_g(kr,tt.end,ts.Unknown_keyword_or_identifier_Did_you_mean_0,Xr);return}Wt()!==0&&_g(kr,tt.end,ts.Unexpected_keyword_or_identifier)}function Dc(tt,Jt,kr){Wt()===kr?Da(Jt):Da(tt,t.getTokenValue())}function As(tt){for(let Jt of Gs)if(tt.length>Jt.length+2&&Obt(tt,Jt))return`${Jt} ${tt.slice(Jt.length)}`}function Tf(tt,Jt,kr){if(Wt()===60&&!t.hasPrecedingLineBreak()){Da(ts.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(Wt()===21){Da(ts.Cannot_start_a_function_call_in_a_type_annotation),Vs();return}if(Jt&&!yg()){kr?Da(ts._0_expected,by(27)):Da(ts.Expected_for_property_initializer);return}if(!Mp()){if(kr){Da(ts._0_expected,by(27));return}Ma(tt)}}function cm(tt){return Wt()===tt?(Ju(),!0):(Zo.assert(URr(tt)),Da(ts._0_expected,by(tt)),!1)}function Fl(tt,Jt,kr,Xr){if(Wt()===Jt){Vs();return}let ui=Da(ts._0_expected,by(Jt));kr&&ui&&Dbt(ui,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,by(tt),by(Jt)))}function rc(tt){return Wt()===tt?(Vs(),!0):!1}function sd(tt){if(Wt()===tt)return ZA()}function Om(tt){if(Wt()===tt)return El()}function il(tt,Jt,kr){return sd(tt)||yn(tt,!1,Jt||ts._0_expected,kr||by(tt))}function FA(tt){return Om(tt)||(Zo.assert(URr(tt)),yn(tt,!1,ts._0_expected,by(tt)))}function ZA(){let tt=Ri(),Jt=Wt();return Vs(),Zt(X(Jt),tt)}function El(){let tt=Ri(),Jt=Wt();return Ju(),Zt(X(Jt),tt)}function yg(){return Wt()===27?!0:Wt()===20||Wt()===1||t.hasPrecedingLineBreak()}function Mp(){return yg()?(Wt()===27&&Vs(),!0):!1}function MA(){return Mp()||ws(27)}function Er(tt,Jt,kr,Xr){let ui=b(tt,Xr);return Ece(ui,Jt,kr??t.getTokenFullStart()),ui}function Zt(tt,Jt,kr){return Ece(tt,Jt,kr??t.getTokenFullStart()),Hi&&(tt.flags|=Hi),Vr&&(Vr=!1,tt.flags|=262144),tt}function yn(tt,Jt,kr,...Xr){Jt?pu(t.getTokenFullStart(),0,kr,...Xr):kr&&Da(kr,...Xr);let ui=Ri(),Is=tt===80?F("",void 0):P2i(tt)?C.createTemplateLiteralLikeNode(tt,"","",void 0):tt===9?E("",void 0):tt===11?N("",void 0):tt===282?C.createMissingDeclaration():X(tt);return Zt(Is,ui)}function ls(tt){let Jt=ke.get(tt);return Jt===void 0&&ke.set(tt,Jt=tt),Jt}function oa(tt,Jt,kr){if(tt){jt++;let Rs=t.hasPrecedingJSDocLeadingAsterisks()?t.getTokenStart():Ri(),ja=Wt(),ho=ls(t.getTokenValue()),sl=t.hasExtendedUnicodeEscape();return Hu(),Zt(F(ho,ja,sl),Rs)}if(Wt()===81)return Da(kr||ts.Private_identifiers_are_not_allowed_outside_class_bodies),oa(!0);if(Wt()===0&&t.tryScan(()=>t.reScanInvalidIdentifier()===80))return oa(!0);jt++;let Xr=Wt()===1,ui=t.isReservedWord(),Is=t.getTokenText(),Hs=ui?ts.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:ts.Identifier_expected;return yn(80,Xr,Jt||Hs,Is)}function Fs(tt){return oa(cc(),void 0,tt)}function Wa(tt,Jt){return oa(Xs(),tt,Jt)}function Ca(tt){return oa(H1(Wt()),tt)}function ld(){return(t.hasUnicodeEscape()||t.hasExtendedUnicodeEscape())&&Da(ts.Unicode_escape_sequence_cannot_appear_here),oa(H1(Wt()))}function Rp(){return H1(Wt())||Wt()===11||Wt()===9||Wt()===10}function np(){return H1(Wt())||Wt()===11}function HA(tt){if(Wt()===11||Wt()===9||Wt()===10){let Jt=ra();return Jt.text=ls(Jt.text),Jt}return tt&&Wt()===23?Zs():Wt()===81?so():Ca()}function df(){return HA(!0)}function Zs(){let tt=Ri();ws(23);let Jt=gc($A);return ws(24),Zt(C.createComputedPropertyName(Jt),tt)}function so(){let tt=Ri(),Jt=Q(ls(t.getTokenValue()));return Vs(),Zt(Jt,tt)}function Ea(tt){return Wt()===tt&&Ki(Dr)}function Ml(){return Vs(),t.hasPrecedingLineBreak()?!1:Bo()}function Dr(){switch(Wt()){case 87:return Vs()===94;case 95:return Vs(),Wt()===90?oo(Ql):Wt()===156?oo(di):Wn();case 90:return Ql();case 126:return Vs(),Bo();case 139:case 153:return Vs(),us();default:return Ml()}}function Wn(){return Wt()===60||Wt()!==42&&Wt()!==130&&Wt()!==19&&Bo()}function di(){return Vs(),Wn()}function aa(){return vee(Wt())&&Ki(Dr)}function Bo(){return Wt()===23||Wt()===19||Wt()===42||Wt()===26||Rp()}function us(){return Wt()===23||Rp()}function Ql(){return Vs(),Wt()===86||Wt()===100||Wt()===120||Wt()===60||Wt()===128&&oo(Dp)||Wt()===134&&oo(t2)}function LA(tt,Jt){if(Hp(tt))return!0;switch(tt){case 0:case 1:case 3:return!(Wt()===27&&Jt)&&Xc();case 2:return Wt()===84||Wt()===90;case 4:return oo(gm);case 5:return oo(bL)||Wt()===27&&!Jt;case 6:return Wt()===23||Rp();case 12:switch(Wt()){case 23:case 42:case 26:case 25:return!0;default:return Rp()}case 18:return Rp();case 9:return Wt()===23||Wt()===26||Rp();case 24:return np();case 7:return Wt()===19?oo(pf):Jt?Xs()&&!j1():US()&&!j1();case 8:return i1();case 10:return Wt()===28||Wt()===26||i1();case 19:return Wt()===103||Wt()===87||Xs();case 15:switch(Wt()){case 28:case 25:return!0}case 11:return Wt()===26||$I();case 16:return NC(!1);case 17:return NC(!0);case 20:case 21:return Wt()===28||ut();case 22:return rn();case 23:return Wt()===161&&oo(Cx)?!1:Wt()===11?!0:H1(Wt());case 13:return H1(Wt())||Wt()===19;case 14:return!0;case 25:return!0;case 26:return Zo.fail("ParsingContext.Count used as a context");default:Zo.assertNever(tt,"Non-exhaustive case in 'isListElement'.")}}function pf(){if(Zo.assert(Wt()===19),Vs()===20){let tt=Vs();return tt===28||tt===19||tt===96||tt===119}return!0}function ef(){return Vs(),Xs()}function ip(){return Vs(),H1(Wt())}function _d(){return Vs(),S7a(Wt())}function j1(){return Wt()===119||Wt()===96?oo(pw):!1}function pw(){return Vs(),$I()}function YA(){return Vs(),ut()}function Ac(tt){if(Wt()===1)return!0;switch(tt){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:case 24:return Wt()===20;case 3:return Wt()===20||Wt()===84||Wt()===90;case 7:return Wt()===19||Wt()===96||Wt()===119;case 8:return Nm();case 19:return Wt()===32||Wt()===21||Wt()===19||Wt()===96||Wt()===119;case 11:return Wt()===22||Wt()===27;case 15:case 21:case 10:return Wt()===24;case 17:case 16:case 18:return Wt()===22||Wt()===24;case 20:return Wt()!==28;case 22:return Wt()===19||Wt()===20;case 13:return Wt()===32||Wt()===44;case 14:return Wt()===30&&oo(tv);default:return!1}}function Nm(){return!!(yg()||qE(Wt())||Wt()===39)}function HS(){Zo.assert(Fn,"Missing parsing context");for(let tt=0;tt<26;tt++)if(Fn&1<=0)}function CI(tt){return tt===6?ts.An_enum_member_name_must_be_followed_by_a_or:void 0}function _I(){let tt=Er([],Ri());return tt.isMissingList=!0,tt}function H2(tt){return!!tt.isMissingList}function iE(tt,Jt,kr,Xr){if(ws(kr)){let ui=Kf(tt,Jt);return ws(Xr),ui}return _I()}function se(tt,Jt){let kr=Ri(),Xr=tt?Ca(Jt):Wa(Jt);for(;rc(25)&&Wt()!==30;)Xr=Zt(C.createQualifiedName(Xr,K(tt,!1,!0)),kr);return Xr}function O(tt,Jt){return Zt(C.createQualifiedName(tt,Jt),tt.pos)}function K(tt,Jt,kr){if(t.hasPrecedingLineBreak()&&H1(Wt())&&oo(Dm))return yn(80,!0,ts.Identifier_expected);if(Wt()===81){let Xr=so();return Jt?Xr:yn(80,!0,ts.Identifier_expected)}return tt?kr?Ca():ld():Wa()}function we(tt){let Jt=Ri(),kr=[],Xr;do Xr=$n(tt),kr.push(Xr);while(Xr.literal.kind===17);return Er(kr,Jt)}function gt(tt){let Jt=Ri();return Zt(C.createTemplateExpression(kc(tt),we(tt)),Jt)}function sr(){let tt=Ri();return Zt(C.createTemplateLiteralType(kc(!1),Yr()),tt)}function Yr(){let tt=Ri(),Jt=[],kr;do kr=Lr(),Jt.push(kr);while(kr.literal.kind===17);return Er(Jt,tt)}function Lr(){let tt=Ri();return Zt(C.createTemplateLiteralTypeSpan(tf(),fi(!1)),tt)}function fi(tt){return Wt()===20?(OA(tt),Nl()):il(18,ts._0_expected,by(20))}function $n(tt){let Jt=Ri();return Zt(C.createTemplateSpan(gc($A),fi(tt)),Jt)}function ra(){return Bl(Wt())}function kc(tt){!tt&&t.getTokenFlags()&26656&&OA(!1);let Jt=Bl(Wt());return Zo.assert(Jt.kind===16,"Template head has wrong token kind"),Jt}function Nl(){let tt=Bl(Wt());return Zo.assert(tt.kind===17||tt.kind===18,"Template fragment has wrong token kind"),tt}function ca(tt){let Jt=tt===15||tt===18,kr=t.getTokenText();return kr.substring(1,kr.length-(t.isUnterminated()?0:Jt?1:2))}function Bl(tt){let Jt=Ri(),kr=P2i(tt)?C.createTemplateLiteralLikeNode(tt,t.getTokenValue(),ca(tt),t.getTokenFlags()&7176):tt===9?E(t.getTokenValue(),t.getNumericLiteralFlags()):tt===11?N(t.getTokenValue(),void 0,t.hasExtendedUnicodeEscape()):yza(tt)?B(tt,t.getTokenValue()):Zo.fail();return t.hasExtendedUnicodeEscape()&&(kr.hasExtendedUnicodeEscape=!0),t.isUnterminated()&&(kr.isUnterminated=!0),Vs(),Zt(kr,Jt)}function $g(){return se(!0,ts.Type_expected)}function SA(){if(!t.hasPrecedingLineBreak()&&GA()===30)return iE(20,tf,30,32)}function lI(){let tt=Ri();return Zt(C.createTypeReferenceNode($g(),SA()),tt)}function lp(tt){switch(tt.kind){case 183:return Wme(tt.typeName);case 184:case 185:{let{parameters:Jt,type:kr}=tt;return H2(Jt)||lp(kr)}case 196:return lp(tt.type);default:return!1}}function Ib(tt){return Vs(),Zt(C.createTypePredicateNode(void 0,tt,tf()),tt.pos)}function Na(){let tt=Ri();return Vs(),Zt(C.createThisTypeNode(),tt)}function wd(){let tt=Ri();return Vs(),Zt(C.createJSDocAllType(),tt)}function z1(){let tt=Ri();return Vs(),Zt(C.createJSDocNonNullableType(xc(),!1),tt)}function T_(){let tt=Ri();return Vs(),Wt()===28||Wt()===20||Wt()===22||Wt()===32||Wt()===64||Wt()===52?Zt(C.createJSDocUnknownType(),tt):Zt(C.createJSDocNullableType(tf(),!1),tt)}function RC(){let tt=Ri(),Jt=Do();if(Ki(_x)){let kr=Mc(36),Xr=ph(59,!1);return Hr(Zt(C.createJSDocFunctionType(kr,Xr),tt),Jt)}return Zt(C.createTypeReferenceNode(Ca(),void 0),tt)}function Hm(){let tt=Ri(),Jt;return(Wt()===110||Wt()===105)&&(Jt=Ca(),ws(59)),Zt(C.createParameterDeclaration(void 0,void 0,Jt,void 0,YS(),void 0),tt)}function YS(){t.setSkipJsDocLeadingAsterisks(!0);let tt=Ri();if(rc(144)){let Xr=C.createJSDocNamepathType(void 0);e:for(;;)switch(Wt()){case 20:case 1:case 28:case 5:break e;default:Ju()}return t.setSkipJsDocLeadingAsterisks(!1),Zt(Xr,tt)}let Jt=rc(26),kr=jE();return t.setSkipJsDocLeadingAsterisks(!1),Jt&&(kr=Zt(C.createJSDocVariadicType(kr),tt)),Wt()===64?(Vs(),Zt(C.createJSDocOptionalType(kr),tt)):kr}function Fg(){let tt=Ri();ws(114);let Jt=se(!0),kr=t.hasPrecedingLineBreak()?void 0:xn();return Zt(C.createTypeQueryNode(Jt,kr),tt)}function hb(){let tt=Ri(),Jt=Le(!1,!0),kr=Wa(),Xr,ui;rc(96)&&(ut()||!$I()?Xr=tf():ui=JR());let Is=rc(64)?tf():void 0,Hs=C.createTypeParameterDeclaration(Jt,kr,Xr,Is);return Hs.expression=ui,Zt(Hs,tt)}function gC(){if(Wt()===30)return iE(19,hb,30,32)}function NC(tt){return Wt()===26||i1()||vee(Wt())||Wt()===60||ut(!tt)}function Y2(tt){let Jt=Of(ts.Private_identifiers_cannot_be_used_as_parameters);return Jza(Jt)===0&&!oD(tt)&&vee(Wt())&&Vs(),Jt}function U_(){return cc()||Wt()===23||Wt()===19}function DC(tt){return qI(tt)}function kC(tt){return qI(tt,!1)}function qI(tt,Jt=!0){let kr=Ri(),Xr=Do(),ui=tt?li(()=>Le(!0)):Ei(()=>Le(!0));if(Wt()===110){let ja=C.createParameterDeclaration(ui,void 0,oa(!0),void 0,Ty(),void 0),ho=DNr(ui);return ho&&mI(ho,ts.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters),Hr(Zt(ja,kr),Xr)}let Is=po;po=!1;let Hs=sd(26);if(!Jt&&!U_())return;let Rs=Hr(Zt(C.createParameterDeclaration(ui,Hs,Y2(ui),sd(58),Ty(),Qm()),kr),Xr);return po=Is,Rs}function ph(tt,Jt){if(vA(tt,Jt))return Nc(jE)}function vA(tt,Jt){return tt===39?(ws(tt),!0):rc(59)?!0:Jt&&Wt()===39?(Da(ts._0_expected,by(59)),Vs(),!0):!1}function Td(tt,Jt){let kr=Yl(),Xr=Xu();Qi(!!(tt&1)),yo(!!(tt&2));let ui=tt&32?Kf(17,Hm):Kf(16,()=>Jt?DC(Xr):kC(Xr));return Qi(kr),yo(Xr),ui}function Mc(tt){if(!ws(21))return _I();let Jt=Td(tt,!0);return ws(22),Jt}function Pf(){rc(28)||MA()}function sE(tt){let Jt=Ri(),kr=Do();tt===180&&ws(105);let Xr=gC(),ui=Mc(4),Is=ph(59,!0);Pf();let Hs=tt===179?C.createCallSignature(Xr,ui,Is):C.createConstructSignature(Xr,ui,Is);return Hr(Zt(Hs,Jt),kr)}function eA(){return Wt()===23&&oo(QS)}function QS(){if(Vs(),Wt()===26||Wt()===24)return!0;if(vee(Wt())){if(Vs(),Xs())return!0}else if(Xs())Vs();else return!1;return Wt()===59||Wt()===28?!0:Wt()!==58?!1:(Vs(),Wt()===59||Wt()===28||Wt()===24)}function XS(tt,Jt,kr){let Xr=iE(16,()=>DC(!1),23,24),ui=Ty();Pf();let Is=C.createIndexSignature(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function um(tt,Jt,kr){let Xr=df(),ui=sd(58),Is;if(Wt()===21||Wt()===30){let Hs=gC(),Rs=Mc(4),ja=ph(59,!0);Is=C.createMethodSignature(kr,Xr,ui,Hs,Rs,ja)}else{let Hs=Ty();Is=C.createPropertySignature(kr,Xr,ui,Hs),Wt()===64&&(Is.initializer=Qm())}return Pf(),Hr(Zt(Is,tt),Jt)}function gm(){if(Wt()===21||Wt()===30||Wt()===139||Wt()===153)return!0;let tt=!1;for(;vee(Wt());)tt=!0,Vs();return Wt()===23?!0:(Rp()&&(tt=!0,Vs()),tt?Wt()===21||Wt()===30||Wt()===58||Wt()===59||Wt()===28||yg():!1)}function cs(){if(Wt()===21||Wt()===30)return sE(179);if(Wt()===105&&oo(na))return sE(180);let tt=Ri(),Jt=Do(),kr=Le(!1);return Ea(139)?Bb(tt,Jt,kr,177,4):Ea(153)?Bb(tt,Jt,kr,178,4):eA()?XS(tt,Jt,kr):um(tt,Jt,kr)}function na(){return Vs(),Wt()===21||Wt()===30}function ko(){return Vs()===25}function ki(){switch(Vs()){case 21:case 30:case 25:return!0}return!1}function Kl(){let tt=Ri();return Zt(C.createTypeLiteralNode(fd()),tt)}function fd(){let tt;return ws(19)?(tt=jd(4,cs),ws(20)):tt=_I(),tt}function jf(){return Vs(),Wt()===40||Wt()===41?Vs()===148:(Wt()===148&&Vs(),Wt()===23&&ef()&&Vs()===103)}function Ld(){let tt=Ri(),Jt=Ca();ws(103);let kr=tf();return Zt(C.createTypeParameterDeclaration(void 0,Jt,kr,void 0),tt)}function AC(){let tt=Ri();ws(19);let Jt;(Wt()===148||Wt()===40||Wt()===41)&&(Jt=ZA(),Jt.kind!==148&&ws(148)),ws(23);let kr=Ld(),Xr=rc(130)?tf():void 0;ws(24);let ui;(Wt()===58||Wt()===40||Wt()===41)&&(ui=ZA(),ui.kind!==58&&ws(58));let Is=Ty();MA();let Hs=jd(4,cs);return ws(20),Zt(C.createMappedTypeNode(Jt,kr,Xr,ui,Is,Hs),tt)}function JE(){let tt=Ri();if(rc(26))return Zt(C.createRestTypeNode(tf()),tt);let Jt=tf();if(_ec(Jt)&&Jt.pos===Jt.type.pos){let kr=C.createOptionalTypeNode(Jt.type);return zZ(kr,Jt),kr.flags=Jt.flags,kr}return Jt}function Ym(){return Vs()===59||Wt()===58&&Vs()===59}function vy(){return Wt()===26?H1(Vs())&&Ym():H1(Wt())&&Ym()}function K_(){if(oo(vy)){let tt=Ri(),Jt=Do(),kr=sd(26),Xr=Ca(),ui=sd(58);ws(59);let Is=JE(),Hs=C.createNamedTupleMember(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}return JE()}function od(){let tt=Ri();return Zt(C.createTupleTypeNode(iE(21,K_,23,24)),tt)}function UE(){let tt=Ri();ws(21);let Jt=tf();return ws(22),Zt(C.createParenthesizedType(Jt),tt)}function KE(){let tt;if(Wt()===128){let Jt=Ri();Vs();let kr=Zt(X(128),Jt);tt=Er([kr],Jt)}return tt}function Yp(){let tt=Ri(),Jt=Do(),kr=KE(),Xr=rc(105);Zo.assert(!kr||Xr,"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.");let ui=gC(),Is=Mc(4),Hs=ph(39,!1),Rs=Xr?C.createConstructorTypeNode(kr,ui,Is,Hs):C.createFunctionTypeNode(ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function JS(){let tt=ZA();return Wt()===25?void 0:tt}function By(tt){let Jt=Ri();tt&&Vs();let kr=Wt()===112||Wt()===97||Wt()===106?ZA():Bl(Wt());return tt&&(kr=Zt(C.createPrefixUnaryExpression(41,kr),Jt)),Zt(C.createLiteralTypeNode(kr),Jt)}function $0(){return Vs(),Wt()===102}function fw(){vt|=4194304;let tt=Ri(),Jt=rc(114);ws(102),ws(21);let kr=tf(),Xr;if(rc(28)){let Hs=t.getTokenStart();ws(19);let Rs=Wt();if(Rs===118||Rs===132?Vs():Da(ts._0_expected,by(118)),ws(59),Xr=$O(Rs,!0),!ws(20)){let ja=Vme(lr);ja&&ja.code===ts._0_expected.code&&Dbt(ja,pNe(er,xt,Hs,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}}ws(22);let ui=rc(25)?$g():void 0,Is=SA();return Zt(C.createImportTypeNode(kr,Xr,ui,Is,Jt),tt)}function Q2(){return Vs(),Wt()===9||Wt()===10}function xc(){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 155:case 136:case 157:case 146:case 151:return Ki(JS)||lI();case 67:t.reScanAsteriskEqualsToken();case 42:return wd();case 61:t.reScanQuestionToken();case 58:return T_();case 100:return RC();case 54:return z1();case 15:case 11:case 9:case 10:case 112:case 97:case 106:return By();case 41:return oo(Q2)?By(!0):lI();case 116:return ZA();case 110:{let tt=Na();return Wt()===142&&!t.hasPrecedingLineBreak()?Ib(tt):tt}case 114:return oo($0)?fw():Fg();case 19:return oo(jf)?AC():Kl();case 23:return od();case 21:return UE();case 102:return fw();case 131:return oo(Dm)?NT():lI();case 16:return sr();default:return lI()}}function ut(tt){switch(Wt()){case 133:case 159:case 154:case 150:case 163:case 136:case 148:case 155:case 158:case 116:case 157:case 106:case 110:case 114:case 146:case 19:case 23:case 30:case 52:case 51:case 105:case 11:case 9:case 10:case 112:case 97:case 151:case 42:case 58:case 54:case 26:case 140:case 102:case 131:case 15:case 16:return!0;case 100:return!tt;case 41:return!tt&&oo(Q2);case 21:return!tt&&oo(ar);default:return Xs()}}function ar(){return Vs(),Wt()===22||NC(!1)||ut()}function Jr(){let tt=Ri(),Jt=xc();for(;!t.hasPrecedingLineBreak();)switch(Wt()){case 54:Vs(),Jt=Zt(C.createJSDocNonNullableType(Jt,!0),tt);break;case 58:if(oo(YA))return Jt;Vs(),Jt=Zt(C.createJSDocNullableType(Jt,!0),tt);break;case 23:if(ws(23),ut()){let kr=tf();ws(24),Jt=Zt(C.createIndexedAccessTypeNode(Jt,kr),tt)}else ws(24),Jt=Zt(C.createArrayTypeNode(Jt),tt);break;default:return Jt}return Jt}function Gn(tt){let Jt=Ri();return ws(tt),Zt(C.createTypeOperatorNode(tt,Ng()),Jt)}function Ts(){if(rc(96)){let tt=iA(tf);if(Sg()||Wt()!==58)return tt}}function Qo(){let tt=Ri(),Jt=Wa(),kr=Ki(Ts),Xr=C.createTypeParameterDeclaration(void 0,Jt,kr);return Zt(Xr,tt)}function vg(){let tt=Ri();return ws(140),Zt(C.createInferTypeNode(Qo()),tt)}function Ng(){let tt=Wt();switch(tt){case 143:case 158:case 148:return Gn(tt);case 140:return vg()}return Nc(Jr)}function Rf(tt){if(sB()){let Jt=Yp(),kr;return iBi(Jt)?kr=tt?ts.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:kr=tt?ts.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:ts.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,mI(Jt,kr),Jt}}function uI(tt,Jt,kr){let Xr=Ri(),ui=tt===52,Is=rc(tt),Hs=Is&&Rf(ui)||Jt();if(Wt()===tt||Is){let Rs=[Hs];for(;rc(tt);)Rs.push(Rf(ui)||Jt());Hs=Zt(kr(Er(Rs,Xr)),Xr)}return Hs}function Th(){return uI(51,Ng,C.createIntersectionTypeNode)}function oE(){return uI(52,Th,C.createUnionTypeNode)}function TT(){return Vs(),Wt()===105}function sB(){return Wt()===30||Wt()===21&&oo(wy)?!0:Wt()===105||Wt()===128&&oo(TT)}function RT(){if(vee(Wt())&&Le(!1),Xs()||Wt()===110)return Vs(),!0;if(Wt()===23||Wt()===19){let tt=lr.length;return Of(),tt===lr.length}return!1}function wy(){return Vs(),!!(Wt()===22||Wt()===26||RT()&&(Wt()===59||Wt()===28||Wt()===58||Wt()===64||Wt()===22&&(Vs(),Wt()===39)))}function jE(){let tt=Ri(),Jt=Xs()&&Ki(j_),kr=tf();return Jt?Zt(C.createTypePredicateNode(void 0,Jt,kr),tt):kr}function j_(){let tt=Wa();if(Wt()===142&&!t.hasPrecedingLineBreak())return Vs(),tt}function NT(){let tt=Ri(),Jt=il(131),kr=Wt()===110?Na():Wa(),Xr=rc(142)?tf():void 0;return Zt(C.createTypePredicateNode(Jt,kr,Xr),tt)}function tf(){if(Hi&81920)return bo(81920,tf);if(sB())return Yp();let tt=Ri(),Jt=oE();if(!Sg()&&!t.hasPrecedingLineBreak()&&rc(96)){let kr=iA(tf);ws(58);let Xr=Nc(tf);ws(59);let ui=Nc(tf);return Zt(C.createConditionalTypeNode(Jt,kr,Xr,ui),tt)}return Jt}function Ty(){return rc(59)?tf():void 0}function US(){switch(Wt()){case 110:case 108:case 106:case 112:case 97:case 9:case 10:case 11:case 15:case 16:case 21:case 23:case 19:case 100:case 86:case 105:case 44:case 69:case 80:return!0;case 102:return oo(ki);default:return Xs()}}function $I(){if(US())return!0;switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 46:case 47:case 30:case 135:case 127:case 81:case 60:return!0;default:return kT()?!0:Xs()}}function BA(){return Wt()!==19&&Wt()!==100&&Wt()!==86&&Wt()!==60&&$I()}function $A(){let tt=Ul();tt&&ps(!1);let Jt=Ri(),kr=zf(!0),Xr;for(;Xr=sd(28);)kr=q1(kr,Xr,zf(!0),Jt);return tt&&ps(!0),kr}function Qm(){return rc(64)?zf(!0):void 0}function zf(tt){if(mb())return Cb();let Jt=KS(tt)||oB(tt);if(Jt)return Jt;let kr=Ri(),Xr=Do(),ui=zS(0);return ui.kind===80&&Wt()===39?Ry(kr,ui,tt,Xr,void 0):TNe(ui)&&Jvi(Ko())?q1(ui,ZA(),zf(tt),kr):XR(ui,kr,tt)}function mb(){return Wt()===127?Yl()?!0:oo(Ro):!1}function R_(){return Vs(),!t.hasPrecedingLineBreak()&&Xs()}function Cb(){let tt=Ri();return Vs(),!t.hasPrecedingLineBreak()&&(Wt()===42||$I())?Zt(C.createYieldExpression(sd(42),zf(!0)),tt):Zt(C.createYieldExpression(void 0,void 0),tt)}function Ry(tt,Jt,kr,Xr,ui){Zo.assert(Wt()===39,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");let Is=C.createParameterDeclaration(void 0,void 0,Jt,void 0,void 0,void 0);Zt(Is,Jt.pos);let Hs=Er([Is],Is.pos,Is.end),Rs=il(39),ja=jS(!!ui,kr),ho=C.createArrowFunction(ui,void 0,Hs,void 0,Rs,ja);return Hr(Zt(ho,tt),Xr)}function KS(tt){let Jt=_b();if(Jt!==0)return Jt===1?aB(!0,!0):Ki(()=>zE(tt))}function _b(){return Wt()===21||Wt()===30||Wt()===134?oo(z_):Wt()===39?1:0}function z_(){if(Wt()===134&&(Vs(),t.hasPrecedingLineBreak()||Wt()!==21&&Wt()!==30))return 0;let tt=Wt(),Jt=Vs();if(tt===21){if(Jt===22)switch(Vs()){case 39:case 59:case 19:return 1;default:return 0}if(Jt===23||Jt===19)return 2;if(Jt===26)return 1;if(vee(Jt)&&Jt!==134&&oo(ef))return Vs()===130?0:1;if(!Xs()&&Jt!==110)return 0;switch(Vs()){case 59:return 1;case 58:return Vs(),Wt()===59||Wt()===28||Wt()===64||Wt()===22?1:0;case 28:case 64:case 22:return 2}return 0}else return Zo.assert(tt===30),!Xs()&&Wt()!==87?0:Xt===1?oo(()=>{rc(87);let kr=Vs();if(kr===96)switch(Vs()){case 64:case 32:case 44:return!1;default:return!0}else if(kr===28||kr===64)return!0;return!1})?1:0:2}function zE(tt){let Jt=t.getTokenStart();if(Nn!=null&&Nn.has(Jt))return;let kr=aB(!1,tt);return kr||(Nn||(Nn=new Set)).add(Jt),kr}function oB(tt){if(Wt()===134&&oo(DT)===1){let Jt=Ri(),kr=Do(),Xr=ft(),ui=zS(0);return Ry(Jt,ui,tt,kr,Xr)}}function DT(){if(Wt()===134){if(Vs(),t.hasPrecedingLineBreak()||Wt()===39)return 0;let tt=zS(0);if(!t.hasPrecedingLineBreak()&&tt.kind===80&&Wt()===39)return 1}return 0}function aB(tt,Jt){let kr=Ri(),Xr=Do(),ui=ft(),Is=oD(ui,Gbt)?2:0,Hs=gC(),Rs;if(ws(21)){if(tt)Rs=Td(Is,tt);else{let Tb=Td(Is,tt);if(!Tb)return;Rs=Tb}if(!ws(22)&&!tt)return}else{if(!tt)return;Rs=_I()}let ja=Wt()===59,ho=ph(59,!1);if(ho&&!tt&&lp(ho))return;let sl=ho;for(;sl?.kind===196;)sl=sl.type;let Nd=sl&&yec(sl);if(!tt&&Wt()!==39&&(Nd||Wt()!==19))return;let ed=Wt(),Og=il(39),Nh=ed===39||ed===19?jS(oD(ui,Gbt),Jt):Wa();if(!Jt&&ja&&Wt()!==59)return;let o1=C.createArrowFunction(ui,Hs,Rs,ho,Og,Nh);return Hr(Zt(o1,kr),Xr)}function jS(tt,Jt){if(Wt()===19)return cE(tt?2:0);if(Wt()!==27&&Wt()!==100&&Wt()!==86&&Xc()&&!BA())return cE(16|(tt?2:0));let kr=po;po=!1;let Xr=tt?li(()=>zf(Jt)):Ei(()=>zf(Jt));return po=kr,Xr}function XR(tt,Jt,kr){let Xr=sd(58);if(!Xr)return tt;let ui;return Zt(C.createConditionalExpression(tt,Xr,bo(r,()=>zf(!1)),ui=il(59),ANr(ui)?zf(kr):yn(80,!1,ts._0_expected,by(59))),Jt)}function zS(tt){let Jt=Ri(),kr=JR();return X2(tt,kr,Jt)}function qE(tt){return tt===103||tt===165}function X2(tt,Jt,kr){for(;;){Ko();let Xr=KRr(Wt());if(!(Wt()===43?Xr>=tt:Xr>tt)||Wt()===103&&Wc())break;if(Wt()===130||Wt()===152){if(t.hasPrecedingLineBreak())break;{let ui=Wt();Vs(),Jt=ui===152?pn(Jt,tf()):J2(Jt,tf())}}else Jt=q1(Jt,ZA(),zS(Xr),kr)}return Jt}function kT(){return Wc()&&Wt()===103?!1:KRr(Wt())>0}function pn(tt,Jt){return Zt(C.createSatisfiesExpression(tt,Jt),tt.pos)}function q1(tt,Jt,kr,Xr){return Zt(C.createBinaryExpression(tt,Jt,kr),Xr)}function J2(tt,Jt){return Zt(C.createAsExpression(tt,Jt),tt.pos)}function ey(){let tt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru(ty)),tt)}function up(){let tt=Ri();return Zt(C.createDeleteExpression(Ru(ty)),tt)}function Iw(){let tt=Ri();return Zt(C.createTypeOfExpression(Ru(ty)),tt)}function cB(){let tt=Ri();return Zt(C.createVoidExpression(Ru(ty)),tt)}function RD(){return Wt()===135?Xu()?!0:oo(Ro):!1}function Rd(){let tt=Ri();return Zt(C.createAwaitExpression(Ru(ty)),tt)}function JR(){if(cF()){let kr=Ri(),Xr=$1();return Wt()===43?X2(KRr(Wt()),Xr,kr):Xr}let tt=Wt(),Jt=ty();if(Wt()===43){let kr=dj(xt,Jt.pos),{end:Xr}=Jt;Jt.kind===216?_g(kr,Xr,ts.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):(Zo.assert(URr(tt)),_g(kr,Xr,ts.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,by(tt)))}return Jt}function ty(){switch(Wt()){case 40:case 41:case 55:case 54:return ey();case 91:return up();case 114:return Iw();case 116:return cB();case 30:return Xt===1?t1(!0,void 0,void 0,!0):rf();case 135:if(RD())return Rd();default:return $1()}}function cF(){switch(Wt()){case 40:case 41:case 55:case 54:case 91:case 114:case 116:case 135:return!1;case 30:if(Xt!==1)return!1;default:return!0}}function $1(){if(Wt()===46||Wt()===47){let Jt=Ri();return Zt(C.createPrefixUnaryExpression(Wt(),Ru($E)),Jt)}else if(Xt===1&&Wt()===30&&oo(_d))return t1(!0);let tt=$E();if(Zo.assert(TNe(tt)),(Wt()===46||Wt()===47)&&!t.hasPrecedingLineBreak()){let Jt=Wt();return Vs(),Zt(C.createPostfixUnaryExpression(tt,Jt),tt.pos)}return tt}function $E(){let tt=Ri(),Jt;return Wt()===102?oo(na)?(vt|=4194304,Jt=ZA()):oo(ko)?(Vs(),Vs(),Jt=Zt(C.createMetaProperty(102,Ca()),tt),vt|=8388608):Jt=N_():Jt=Wt()===108?e1():N_(),r1(tt,Jt)}function N_(){let tt=Ri(),Jt=b0();return Ih(tt,Jt,!0)}function e1(){let tt=Ri(),Jt=ZA();if(Wt()===30){let kr=Ri(),Xr=Ki(hw);Xr!==void 0&&(_g(kr,Ri(),ts.super_may_not_use_type_arguments),xC()||(Jt=C.createExpressionWithTypeArguments(Jt,Xr)))}return Wt()===21||Wt()===25||Wt()===23?Jt:(il(25,ts.super_must_be_followed_by_an_argument_list_or_member_access),Zt(ce(Jt,K(!0,!0,!0)),tt))}function t1(tt,Jt,kr,Xr=!1){let ui=Ri(),Is=Rh(tt),Hs;if(Is.kind===286){let Rs=yb(Is),ja,ho=Rs[Rs.length-1];if(ho?.kind===284&&!hce(ho.openingElement.tagName,ho.closingElement.tagName)&&hce(Is.tagName,ho.closingElement.tagName)){let sl=ho.children.end,Nd=Zt(C.createJsxElement(ho.openingElement,ho.children,Zt(C.createJsxClosingElement(Zt(F(""),sl,sl)),sl,sl)),ho.openingElement.pos,sl);Rs=Er([...Rs.slice(0,Rs.length-1),Nd],Rs.pos,sl),ja=ho.closingElement}else ja=lc(Is,tt),hce(Is.tagName,ja.tagName)||(kr&&tSi(kr)&&hce(ja.tagName,kr.tagName)?mI(Is.tagName,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,Is.tagName)):mI(ja.tagName,ts.Expected_corresponding_JSX_closing_tag_for_0,AJe(xt,Is.tagName)));Hs=Zt(C.createJsxElement(Is,Rs,ja),ui)}else Is.kind===289?Hs=Zt(C.createJsxFragment(Is,yb(Is),fh(tt)),ui):(Zo.assert(Is.kind===285),Hs=Is);if(!Xr&&tt&&Wt()===30){let Rs=typeof Jt>"u"?Hs.pos:Jt,ja=Ki(()=>t1(!0,Rs));if(ja){let ho=yn(28,!1);return j2i(ho,ja.pos,0),_g(dj(xt,Rs),ja.end,ts.JSX_expressions_must_have_one_parent_element),Zt(C.createBinaryExpression(Hs,ho,ja),ui)}}return Hs}function ry(){let tt=Ri(),Jt=C.createJsxText(t.getTokenValue(),qr===13);return qr=t.scanJsxToken(),Zt(Jt,tt)}function xT(tt,Jt){switch(Jt){case 1:if(fec(tt))mI(tt,ts.JSX_fragment_has_no_corresponding_closing_tag);else{let kr=tt.tagName,Xr=Math.min(dj(xt,kr.pos),kr.end);_g(Xr,kr.end,ts.JSX_element_0_has_no_corresponding_closing_tag,AJe(xt,tt.tagName))}return;case 31:case 7:return;case 12:case 13:return ry();case 19:return ND(!1);case 30:return t1(!1,void 0,tt);default:return Zo.assertNever(Jt)}}function yb(tt){let Jt=[],kr=Ri(),Xr=Fn;for(Fn|=16384;;){let ui=xT(tt,qr=t.reScanJsxToken());if(!ui||(Jt.push(ui),tSi(tt)&&ui?.kind===284&&!hce(ui.openingElement.tagName,ui.closingElement.tagName)&&hce(tt.tagName,ui.closingElement.tagName)))break}return Fn=Xr,Er(Jt,kr)}function r_(){let tt=Ri();return Zt(C.createJsxAttributes(jd(13,DD)),tt)}function Rh(tt){let Jt=Ri();if(ws(30),Wt()===32)return Uf(),Zt(C.createJsxOpeningFragment(),Jt);let kr=bb(),Xr=Hi&524288?void 0:xn(),ui=r_(),Is;return Wt()===32?(Uf(),Is=C.createJsxOpeningElement(kr,Xr,ui)):(ws(44),ws(32,void 0,!1)&&(tt?Vs():Uf()),Is=C.createJsxSelfClosingElement(kr,Xr,ui)),Zt(Is,Jt)}function bb(){let tt=Ri(),Jt=lB();if(CBi(Jt))return Jt;let kr=Jt;for(;rc(25);)kr=Zt(ce(kr,K(!0,!1,!1)),tt);return kr}function lB(){let tt=Ri();dl();let Jt=Wt()===110,kr=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(kr,ld()),tt)):Jt?Zt(C.createToken(110),tt):kr}function ND(tt){let Jt=Ri();if(!ws(19))return;let kr,Xr;return Wt()!==20&&(tt||(kr=sd(26)),Xr=$A()),tt?ws(20):ws(20,void 0,!1)&&Uf(),Zt(C.createJsxExpression(kr,Xr),Jt)}function DD(){if(Wt()===19)return UR();let tt=Ri();return Zt(C.createJsxAttribute(kD(),q_()),tt)}function q_(){if(Wt()===64){if(Kd()===11)return ra();if(Wt()===19)return ND(!0);if(Wt()===30)return t1(!0);Da(ts.or_JSX_element_expected)}}function kD(){let tt=Ri();dl();let Jt=ld();return rc(59)?(dl(),Zt(C.createJsxNamespacedName(Jt,ld()),tt)):Jt}function UR(){let tt=Ri();ws(19),ws(26);let Jt=$A();return ws(20),Zt(C.createJsxSpreadAttribute(Jt),tt)}function lc(tt,Jt){let kr=Ri();ws(31);let Xr=bb();return ws(32,void 0,!1)&&(Jt||!hce(tt.tagName,Xr)?Vs():Uf()),Zt(C.createJsxClosingElement(Xr),kr)}function fh(tt){let Jt=Ri();return ws(31),ws(32,ts.Expected_corresponding_closing_tag_for_JSX_fragment,!1)&&(tt?Vs():Uf()),Zt(C.createJsxJsxClosingFragment(),Jt)}function rf(){Zo.assert(Xt!==1,"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.");let tt=Ri();ws(30);let Jt=tf();ws(32);let kr=ty();return Zt(C.createTypeAssertion(Jt,kr),tt)}function yI(){return Vs(),H1(Wt())||Wt()===23||xC()}function aE(){return Wt()===29&&oo(yI)}function qS(tt){if(tt.flags&64)return!0;if(Vbt(tt)){let Jt=tt.expression;for(;Vbt(Jt)&&!(Jt.flags&64);)Jt=Jt.expression;if(Jt.flags&64){for(;Vbt(tt);)tt.flags|=64,tt=tt.expression;return!0}}return!1}function Qp(tt,Jt,kr){let Xr=K(!0,!0,!0),ui=kr||qS(Jt),Is=ui?fe(Jt,kr,Xr):ce(Jt,Xr);if(ui&&Yme(Is.name)&&mI(Is.name,ts.An_optional_chain_cannot_contain_private_identifiers),aec(Jt)&&Jt.typeArguments){let Hs=Jt.typeArguments.pos-1,Rs=dj(xt,Jt.typeArguments.end)+1;_g(Hs,Rs,ts.An_instantiation_expression_cannot_be_followed_by_a_property_access)}return Zt(Is,tt)}function uB(tt,Jt,kr){let Xr;if(Wt()===24)Xr=yn(80,!0,ts.An_element_access_expression_should_take_an_argument);else{let Is=gc($A);eEt(Is)&&(Is.text=ls(Is.text)),Xr=Is}ws(24);let ui=kr||qS(Jt)?de(Jt,kr,Xr):ue(Jt,Xr);return Zt(ui,tt)}function Ih(tt,Jt,kr){for(;;){let Xr,ui=!1;if(kr&&aE()?(Xr=il(29),ui=H1(Wt())):ui=rc(25),ui){Jt=Qp(tt,Jt,Xr);continue}if((Xr||!Ul())&&rc(23)){Jt=uB(tt,Jt,Xr);continue}if(xC()){Jt=!Xr&&Jt.kind===233?$_(tt,Jt.expression,Xr,Jt.typeArguments):$_(tt,Jt,Xr,void 0);continue}if(!Xr){if(Wt()===54&&!t.hasPrecedingLineBreak()){Vs(),Jt=Zt(C.createNonNullExpression(Jt),tt);continue}let Is=Ki(hw);if(Is){Jt=Zt(C.createExpressionWithTypeArguments(Jt,Is),tt);continue}}return Jt}}function xC(){return Wt()===15||Wt()===16}function $_(tt,Jt,kr,Xr){let ui=C.createTaggedTemplateExpression(Jt,Xr,Wt()===15?(OA(!0),ra()):gt(!0));return(kr||Jt.flags&64)&&(ui.flags|=64),ui.questionDotToken=kr,Zt(ui,tt)}function r1(tt,Jt){for(;;){Jt=Ih(tt,Jt,!0);let kr,Xr=sd(29);if(Xr&&(kr=Ki(hw),xC())){Jt=$_(tt,Jt,Xr,kr);continue}if(kr||Wt()===21){!Xr&&Jt.kind===233&&(kr=Jt.typeArguments,Jt=Jt.expression);let ui=gB(),Is=Xr||qS(Jt)?Se(Jt,Xr,kr,ui):be(Jt,kr,ui);Jt=Zt(Is,tt);continue}if(Xr){let ui=yn(80,!1,ts.Identifier_expected);Jt=Zt(fe(Jt,Xr,ui),tt)}break}return Jt}function gB(){ws(21);let tt=Kf(11,bI);return ws(22),tt}function hw(){if(Hi&524288||GA()!==30)return;Vs();let tt=Kf(20,tf);if(Ko()===32)return Vs(),tt&>()?tt:void 0}function GT(){switch(Wt()){case 21:case 15:case 16:return!0;case 30:case 32:case 40:case 41:return!1}return t.hasPrecedingLineBreak()||kT()||!$I()}function b0(){switch(Wt()){case 15:t.getTokenFlags()&26656&&OA(!1);case 9:case 10:case 11:return ra();case 110:case 108:case 106:case 112:case 97:return ZA();case 21:return ia();case 23:return ag();case 19:return n1();case 134:if(!oo(t2))break;return U2();case 60:return Ur();case 86:return mi();case 100:return U2();case 105:return n_();case 44:case 69:if(Eg()===14)return ra();break;case 16:return gt(!1);case 81:return so()}return Wa(ts.Expression_expected)}function ia(){let tt=Ri(),Jt=Do();ws(21);let kr=gc($A);return ws(22),Hr(Zt(k(kr),tt),Jt)}function e2(){let tt=Ri();ws(26);let Jt=zf(!0);return Zt(C.createSpreadElement(Jt),tt)}function yd(){return Wt()===26?e2():Wt()===28?Zt(C.createOmittedExpression(),Ri()):zf(!0)}function bI(){return bo(r,yd)}function ag(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(23),Xr=t.hasPrecedingLineBreak(),ui=Kf(15,yd);return Fl(23,24,kr,Jt),Zt(ae(ui,Xr),tt)}function Eb(){let tt=Ri(),Jt=Do();if(sd(26)){let ho=zf(!0);return Hr(Zt(C.createSpreadAssignment(ho),tt),Jt)}let kr=Le(!0);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);let Xr=sd(42),ui=Xs(),Is=df(),Hs=sd(58),Rs=sd(54);if(Xr||Wt()===21||Wt()===30)return vb(tt,Jt,kr,Xr,Is,Hs,Rs);let ja;if(ui&&Wt()!==59){let ho=sd(64),sl=ho?gc(()=>zf(!0)):void 0;ja=C.createShorthandPropertyAssignment(Is,sl),ja.equalsToken=ho}else{ws(59);let ho=gc(()=>zf(!0));ja=C.createPropertyAssignment(Is,ho)}return ja.modifiers=kr,ja.questionToken=Hs,ja.exclamationToken=Rs,Hr(Zt(ja,tt),Jt)}function n1(){let tt=Ri(),Jt=t.getTokenStart(),kr=ws(19),Xr=t.hasPrecedingLineBreak(),ui=Kf(12,Eb,!0);return Fl(19,20,kr,Jt),Zt(ne(ui,Xr),tt)}function U2(){let tt=Ul();ps(!1);let Jt=Ri(),kr=Do(),Xr=Le(!1);ws(100);let ui=sd(42),Is=ui?1:0,Hs=oD(Xr,Gbt)?2:0,Rs=Is&&Hs?Ps(e0):Is?ma(e0):Hs?li(e0):e0(),ja=gC(),ho=Mc(Is|Hs),sl=ph(59,!1),Nd=cE(Is|Hs);ps(tt);let ed=C.createFunctionExpression(Xr,ui,Rs,ja,ho,sl,Nd);return Hr(Zt(ed,Jt),kr)}function e0(){return cc()?Fs():void 0}function n_(){let tt=Ri();if(ws(105),rc(25)){let Is=Ca();return Zt(C.createMetaProperty(105,Is),tt)}let Jt=Ri(),kr=Ih(Jt,b0(),!1),Xr;kr.kind===233&&(Xr=kr.typeArguments,kr=kr.expression),Wt()===29&&Da(ts.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0,AJe(xt,kr));let ui=Wt()===21?gB():void 0;return Zt(De(kr,Xr,ui),tt)}function Xp(tt,Jt){let kr=Ri(),Xr=Do(),ui=t.getTokenStart(),Is=ws(19,Jt);if(Is||tt){let Hs=t.hasPrecedingLineBreak(),Rs=jd(1,Am);Fl(19,20,Is,ui);let ja=Hr(Zt(et(Rs,Hs),kr),Xr);return Wt()===64&&(Da(ts.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses),Vs()),ja}else{let Hs=_I();return Hr(Zt(et(Hs,void 0),kr),Xr)}}function cE(tt,Jt){let kr=Yl();Qi(!!(tt&1));let Xr=Xu();yo(!!(tt&2));let ui=po;po=!1;let Is=Ul();Is&&ps(!1);let Hs=Xp(!!(tt&16),Jt);return Is&&ps(!0),po=ui,Qi(kr),yo(Xr),Hs}function lE(){let tt=Ri(),Jt=Do();return ws(27),Hr(Zt(C.createEmptyStatement(),tt),Jt)}function Ip(){let tt=Ri(),Jt=Do();ws(101);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am(),Hs=rc(93)?Am():void 0;return Hr(Zt(je(ui,Is,Hs),tt),Jt)}function Xh(){let tt=Ri(),Jt=Do();ws(92);let kr=Am();ws(117);let Xr=t.getTokenStart(),ui=ws(21),Is=gc($A);return Fl(21,22,ui,Xr),rc(27),Hr(Zt(C.createDoStatement(kr,Is),tt),Jt)}function E0(){let tt=Ri(),Jt=Do();ws(117);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Am();return Hr(Zt(St(ui,Is),tt),Jt)}function aA(){let tt=Ri(),Jt=Do();ws(99);let kr=sd(135);ws(21);let Xr;Wt()!==27&&(Wt()===115||Wt()===121||Wt()===87||Wt()===160&&oo(yL)||Wt()===135&&oo(ny)?Xr=j(!0):Xr=Cg($A));let ui;if(kr?ws(165):rc(165)){let Is=gc(()=>zf(!0));ws(22),ui=Yt(kr,Xr,Is,Am())}else if(rc(103)){let Is=gc($A);ws(22),ui=C.createForInStatement(Xr,Is,Am())}else{ws(27);let Is=Wt()!==27&&Wt()!==22?gc($A):void 0;ws(27);let Hs=Wt()!==22?gc($A):void 0;ws(22),ui=At(Xr,Is,Hs,Am())}return Hr(Zt(ui,tt),Jt)}function fu(tt){let Jt=Ri(),kr=Do();ws(tt===252?83:88);let Xr=yg()?void 0:Wa();MA();let ui=tt===252?C.createBreakStatement(Xr):C.createContinueStatement(Xr);return Hr(Zt(ui,Jt),kr)}function Jp(){let tt=Ri(),Jt=Do();ws(107);let kr=yg()?void 0:gc($A);return MA(),Hr(Zt(C.createReturnStatement(kr),tt),Jt)}function dC(){let tt=Ri(),Jt=Do();ws(118);let kr=t.getTokenStart(),Xr=ws(21),ui=gc($A);Fl(21,22,Xr,kr);let Is=Qa(67108864,Am);return Hr(Zt(C.createWithStatement(ui,Is),tt),Jt)}function uE(){let tt=Ri(),Jt=Do();ws(84);let kr=gc($A);ws(59);let Xr=jd(3,Am);return Hr(Zt(C.createCaseClause(kr,Xr),tt),Jt)}function eh(){let tt=Ri();ws(90),ws(59);let Jt=jd(3,Am);return Zt(C.createDefaultClause(Jt),tt)}function Wf(){return Wt()===84?uE():eh()}function Mo(){let tt=Ri();ws(19);let Jt=jd(2,Wf);return ws(20),Zt(C.createCaseBlock(Jt),tt)}function gp(){let tt=Ri(),Jt=Do();ws(109),ws(21);let kr=gc($A);ws(22);let Xr=Mo();return Hr(Zt(C.createSwitchStatement(kr,Xr),tt),Jt)}function lF(){let tt=Ri(),Jt=Do();ws(111);let kr=t.hasPrecedingLineBreak()?void 0:gc($A);return kr===void 0&&(jt++,kr=Zt(F(""),Ri())),Mp()||Ma(kr),Hr(Zt(C.createThrowStatement(kr),tt),Jt)}function uF(){let tt=Ri(),Jt=Do();ws(113);let kr=Xp(!1),Xr=Wt()===85?gE():void 0,ui;return(!Xr||Wt()===98)&&(ws(98,ts.catch_or_finally_expected),ui=Xp(!1)),Hr(Zt(C.createTryStatement(kr,Xr,ui),tt),Jt)}function gE(){let tt=Ri();ws(85);let Jt;rc(21)?(Jt=Vd(),ws(22)):Jt=void 0;let kr=Xp(!1);return Zt(C.createCatchClause(Jt,kr),tt)}function FT(){let tt=Ri(),Jt=Do();return ws(89),MA(),Hr(Zt(C.createDebuggerStatement(),tt),Jt)}function Np(){let tt=Ri(),Jt=Do(),kr,Xr=Wt()===21,ui=gc($A);return $C(ui)&&rc(59)?kr=C.createLabeledStatement(ui,Am()):(Mp()||Ma(ui),kr=Me(ui),Xr&&(Jt=!1)),Hr(Zt(kr,tt),Jt)}function Dm(){return Vs(),H1(Wt())&&!t.hasPrecedingLineBreak()}function Dp(){return Vs(),Wt()===86&&!t.hasPrecedingLineBreak()}function t2(){return Vs(),Wt()===100&&!t.hasPrecedingLineBreak()}function Ro(){return Vs(),(H1(Wt())||Wt()===9||Wt()===10||Wt()===11)&&!t.hasPrecedingLineBreak()}function AE(){for(;;)switch(Wt()){case 115:case 121:case 87:case 100:case 86:case 94:return!0;case 160:return Ou();case 135:return hp();case 120:case 156:return R_();case 144:case 145:return qf();case 128:case 129:case 134:case 138:case 123:case 124:case 125:case 148:let tt=Wt();if(Vs(),t.hasPrecedingLineBreak())return!1;if(tt===138&&Wt()===156)return!0;continue;case 162:return Vs(),Wt()===19||Wt()===80||Wt()===95;case 102:return Vs(),Wt()===11||Wt()===42||Wt()===19||H1(Wt());case 95:let Jt=Vs();if(Jt===156&&(Jt=oo(Vs)),Jt===64||Jt===42||Jt===19||Jt===90||Jt===130||Jt===60)return!0;continue;case 126:Vs();continue;default:return!1}}function AB(){return oo(AE)}function Xc(){switch(Wt()){case 60:case 27:case 19:case 115:case 121:case 160:case 100:case 86:case 94:case 101:case 92:case 117:case 99:case 88:case 83:case 107:case 118:case 109:case 111:case 113:case 89:case 85:case 98:return!0;case 102:return AB()||oo(ki);case 87:case 95:return AB();case 134:case 138:case 120:case 144:case 145:case 156:case 162:return!0;case 129:case 125:case 123:case 124:case 126:case 148:return AB()||!oo(Dm);default:return $I()}}function iu(){return Vs(),cc()||Wt()===19||Wt()===23}function dE(){return oo(iu)}function yL(){return KR(!0)}function KR(tt){return Vs(),tt&&Wt()===165?!1:(cc()||Wt()===19)&&!t.hasPrecedingLineBreak()}function Ou(){return oo(KR)}function ny(tt){return Vs()===160?KR(tt):!1}function hp(){return oo(ny)}function Am(){switch(Wt()){case 27:return lE();case 19:return Xp(!1);case 115:return Id(Ri(),Do(),void 0);case 121:if(dE())return Id(Ri(),Do(),void 0);break;case 135:if(hp())return Id(Ri(),Do(),void 0);break;case 160:if(Ou())return Id(Ri(),Do(),void 0);break;case 100:return fB(Ri(),Do(),void 0);case 86:return Vi(Ri(),Do(),void 0);case 101:return Ip();case 92:return Xh();case 117:return E0();case 99:return aA();case 88:return fu(251);case 83:return fu(252);case 107:return Jp();case 118:return dC();case 109:return gp();case 111:return lF();case 113:case 85:case 98:return uF();case 89:return FT();case 60:return i_();case 134:case 120:case 156:case 144:case 145:case 138:case 87:case 94:case 95:case 102:case 123:case 124:case 125:case 128:case 129:case 126:case 148:case 162:if(AB())return i_();break}return Np()}function K2(tt){return tt.kind===138}function i_(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(oD(kr,K2)){let Xr=dB(tt);if(Xr)return Xr;for(let ui of kr)ui.flags|=33554432;return Qa(33554432,()=>ZT(tt,Jt,kr))}else return ZT(tt,Jt,kr)}function dB(tt){return Qa(33554432,()=>{let Jt=Hp(Fn,tt);if(Jt)return uC(Jt)})}function ZT(tt,Jt,kr){switch(Wt()){case 115:case 121:case 87:case 160:case 135:return Id(tt,Jt,kr);case 100:return fB(tt,Jt,kr);case 86:return Vi(tt,Jt,kr);case 120:return Po(tt,Jt,kr);case 156:return ec(tt,Jt,kr);case 94:return dc(tt,Jt,kr);case 162:case 144:case 145:return $f(tt,Jt,kr);case 102:return qO(tt,Jt,kr);case 95:switch(Vs(),Wt()){case 90:case 64:return sY(tt,Jt,kr);case 130:return Yu(tt,Jt,kr);default:return iy(tt,Jt,kr)}default:if(kr){let Xr=yn(282,!0,ts.Declaration_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}return}}function Cx(){return Vs()===11}function pB(){return Vs(),Wt()===161||Wt()===64}function qf(){return Vs(),!t.hasPrecedingLineBreak()&&(Xs()||Wt()===11)}function Jh(tt,Jt){if(Wt()!==19){if(tt&4){Pf();return}if(yg()){MA();return}}return cE(tt,Jt)}function $S(){let tt=Ri();if(Wt()===28)return Zt(C.createOmittedExpression(),tt);let Jt=sd(26),kr=Of(),Xr=Qm();return Zt(C.createBindingElement(Jt,void 0,kr,Xr),tt)}function Sb(){let tt=Ri(),Jt=sd(26),kr=cc(),Xr=df(),ui;kr&&Wt()!==59?(ui=Xr,Xr=void 0):(ws(59),ui=Of());let Is=Qm();return Zt(C.createBindingElement(Jt,Xr,ui,Is),tt)}function mp(){let tt=Ri();ws(19);let Jt=gc(()=>Kf(9,Sb));return ws(20),Zt(C.createObjectBindingPattern(Jt),tt)}function r2(){let tt=Ri();ws(23);let Jt=gc(()=>Kf(10,$S));return ws(24),Zt(C.createArrayBindingPattern(Jt),tt)}function i1(){return Wt()===19||Wt()===23||Wt()===81||cc()}function Of(tt){return Wt()===23?r2():Wt()===19?mp():Fs(tt)}function pE(){return Vd(!0)}function Vd(tt){let Jt=Ri(),kr=Do(),Xr=Of(ts.Private_identifiers_are_not_allowed_in_variable_declarations),ui;tt&&Xr.kind===80&&Wt()===54&&!t.hasPrecedingLineBreak()&&(ui=ZA());let Is=Ty(),Hs=qE(Wt())?void 0:Qm(),Rs=Tr(Xr,ui,Is,Hs);return Hr(Zt(Rs,Jt),kr)}function j(tt){let Jt=Ri(),kr=0;switch(Wt()){case 115:break;case 121:kr|=1;break;case 87:kr|=2;break;case 160:kr|=4;break;case 135:Zo.assert(hp()),kr|=6,Vs();break;default:Zo.fail()}Vs();let Xr;if(Wt()===165&&oo(Z))Xr=_I();else{let ui=Wc();Or(tt),Xr=Kf(8,tt?Vd:pE),Or(ui)}return Zt(Nr(Xr,kr),Jt)}function Z(){return ef()&&Vs()===22}function Id(tt,Jt,kr){let Xr=j(!1);MA();let ui=ct(kr,Xr);return Hr(Zt(ui,tt),Jt)}function fB(tt,Jt,kr){let Xr=Xu(),ui=fO(kr);ws(100);let Is=sd(42),Hs=ui&2048?e0():Fs(),Rs=Is?1:0,ja=ui&1024?2:0,ho=gC();ui&32&&yo(!0);let sl=Mc(Rs|ja),Nd=ph(59,!1),ed=Jh(Rs|ja,ts.or_expected);yo(Xr);let Og=C.createFunctionDeclaration(kr,Is,Hs,ho,sl,Nd,ed);return Hr(Zt(Og,tt),Jt)}function ev(){if(Wt()===137)return ws(137);if(Wt()===11&&oo(Vs)===21)return Ki(()=>{let tt=ra();return tt.text==="constructor"?tt:void 0})}function Ny(tt,Jt,kr){return Ki(()=>{if(ev()){let Xr=gC(),ui=Mc(0),Is=ph(59,!1),Hs=Jh(0,ts.or_expected),Rs=C.createConstructorDeclaration(kr,ui,Hs);return Rs.typeParameters=Xr,Rs.type=Is,Hr(Zt(Rs,tt),Jt)}})}function vb(tt,Jt,kr,Xr,ui,Is,Hs,Rs){let ja=Xr?1:0,ho=oD(kr,Gbt)?2:0,sl=gC(),Nd=Mc(ja|ho),ed=ph(59,!1),Og=Jh(ja|ho,Rs),Nh=C.createMethodDeclaration(kr,Xr,ui,Is,sl,Nd,ed,Og);return Nh.exclamationToken=Hs,Hr(Zt(Nh,tt),Jt)}function xD(tt,Jt,kr,Xr,ui){let Is=!ui&&!t.hasPrecedingLineBreak()?sd(54):void 0,Hs=Ty(),Rs=bo(90112,Qm);Tf(Xr,Hs,Rs);let ja=C.createPropertyDeclaration(kr,Xr,ui||Is,Hs,Rs);return Hr(Zt(ja,tt),Jt)}function IB(tt,Jt,kr){let Xr=sd(42),ui=df(),Is=sd(58);return Xr||Wt()===21||Wt()===30?vb(tt,Jt,kr,Xr,ui,Is,void 0,ts.or_expected):xD(tt,Jt,kr,ui,Is)}function Bb(tt,Jt,kr,Xr,ui){let Is=df(),Hs=gC(),Rs=Mc(0),ja=ph(59,!1),ho=Jh(ui),sl=Xr===177?C.createGetAccessorDeclaration(kr,Is,Rs,ja,ho):C.createSetAccessorDeclaration(kr,Is,Rs,ho);return sl.typeParameters=Hs,jbt(sl)&&(sl.type=ja),Hr(Zt(sl,tt),Jt)}function bL(){let tt;if(Wt()===60)return!0;for(;vee(Wt());){if(tt=Wt(),Sza(tt))return!0;Vs()}if(Wt()===42||(Rp()&&(tt=Wt(),Vs()),Wt()===23))return!0;if(tt!==void 0){if(!Cce(tt)||tt===153||tt===139)return!0;switch(Wt()){case 21:case 30:case 54:case 59:case 64:case 58:return!0;default:return yg()}}return!1}function gF(tt,Jt,kr){il(126);let Xr=x(),ui=Hr(Zt(C.createClassStaticBlockDeclaration(Xr),tt),Jt);return ui.modifiers=kr,ui}function x(){let tt=Yl(),Jt=Xu();Qi(!1),yo(!0);let kr=Xp(!1);return Qi(tt),yo(Jt),kr}function L(){if(Xu()&&Wt()===135){let tt=Ri(),Jt=Wa(ts.Expression_expected);Vs();let kr=Ih(tt,Jt,!0);return r1(tt,kr)}return $E()}function te(){let tt=Ri();if(!rc(60))return;let Jt=vu(L);return Zt(C.createDecorator(Jt),tt)}function Re(tt,Jt,kr){let Xr=Ri(),ui=Wt();if(Wt()===87&&Jt){if(!Ki(Ml))return}else if(kr&&Wt()===126&&oo(z2)||tt&&Wt()===126||!aa())return;return Zt(X(ui),Xr)}function Le(tt,Jt,kr){let Xr=Ri(),ui,Is,Hs,Rs=!1,ja=!1,ho=!1;if(tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is);for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs),ja=!0;if(ja&&tt&&Wt()===60)for(;Is=te();)ui=mV(ui,Is),ho=!0;if(ho)for(;Hs=Re(Rs,Jt,kr);)Hs.kind===126&&(Rs=!0),ui=mV(ui,Hs);return ui&&Er(ui,Xr)}function ft(){let tt;if(Wt()===134){let Jt=Ri();Vs();let kr=Zt(X(134),Jt);tt=Er([kr],Jt)}return tt}function dr(){let tt=Ri(),Jt=Do();if(Wt()===27)return Vs(),Hr(Zt(C.createSemicolonClassElement(),tt),Jt);let kr=Le(!0,!0,!0);if(Wt()===126&&oo(z2))return gF(tt,Jt,kr);if(Ea(139))return Bb(tt,Jt,kr,177,0);if(Ea(153))return Bb(tt,Jt,kr,178,0);if(Wt()===137||Wt()===11){let Xr=Ny(tt,Jt,kr);if(Xr)return Xr}if(eA())return XS(tt,Jt,kr);if(H1(Wt())||Wt()===11||Wt()===9||Wt()===10||Wt()===42||Wt()===23)if(oD(kr,K2)){for(let Xr of kr)Xr.flags|=33554432;return Qa(33554432,()=>IB(tt,Jt,kr))}else return IB(tt,Jt,kr);if(kr){let Xr=yn(80,!0,ts.Declaration_expected);return xD(tt,Jt,kr,Xr,void 0)}return Zo.fail("Should not have attempted to parse class member declaration.")}function Ur(){let tt=Ri(),Jt=Do(),kr=Le(!0);if(Wt()===86)return Ta(tt,Jt,kr,231);let Xr=yn(282,!0,ts.Expression_expected);return pNr(Xr,tt),Xr.modifiers=kr,Xr}function mi(){return Ta(Ri(),Do(),void 0,231)}function Vi(tt,Jt,kr){return Ta(tt,Jt,kr,263)}function Ta(tt,Jt,kr,Xr){let ui=Xu();ws(86);let Is=Sl(),Hs=gC();oD(kr,T$a)&&yo(!0);let Rs=Wg(),ja;ws(19)?(ja=Ci(),ws(20)):ja=_I(),yo(ui);let ho=Xr===263?C.createClassDeclaration(kr,Is,Hs,Rs,ja):C.createClassExpression(kr,Is,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function Sl(){return cc()&&!Ho()?oa(cc()):void 0}function Ho(){return Wt()===119&&oo(ip)}function Wg(){if(rn())return jd(22,cA)}function cA(){let tt=Ri(),Jt=Wt();Zo.assert(Jt===96||Jt===119),Vs();let kr=Kf(7,th);return Zt(C.createHeritageClause(Jt,kr),tt)}function th(){let tt=Ri(),Jt=$E();if(Jt.kind===233)return Jt;let kr=xn();return Zt(C.createExpressionWithTypeArguments(Jt,kr),tt)}function xn(){return Wt()===30?iE(20,tf,30,32):void 0}function rn(){return Wt()===96||Wt()===119}function Ci(){return jd(5,dr)}function Po(tt,Jt,kr){ws(120);let Xr=Wa(),ui=gC(),Is=Wg(),Hs=fd(),Rs=C.createInterfaceDeclaration(kr,Xr,ui,Is,Hs);return Hr(Zt(Rs,tt),Jt)}function ec(tt,Jt,kr){ws(156),t.hasPrecedingLineBreak()&&Da(ts.Line_break_not_permitted_here);let Xr=Wa(),ui=gC();ws(64);let Is=Wt()===141&&Ki(JS)||tf();MA();let Hs=C.createTypeAliasDeclaration(kr,Xr,ui,Is);return Hr(Zt(Hs,tt),Jt)}function Ra(){let tt=Ri(),Jt=Do(),kr=df(),Xr=gc(Qm);return Hr(Zt(C.createEnumMember(kr,Xr),tt),Jt)}function dc(tt,Jt,kr){ws(94);let Xr=Wa(),ui;ws(19)?(ui=Xa(()=>Kf(6,Ra)),ws(20)):ui=_I();let Is=C.createEnumDeclaration(kr,Xr,ui);return Hr(Zt(Is,tt),Jt)}function Iu(){let tt=Ri(),Jt;return ws(19)?(Jt=jd(1,Am),ws(20)):Jt=_I(),Zt(C.createModuleBlock(Jt),tt)}function Cl(tt,Jt,kr,Xr){let ui=Xr&32,Is=Xr&8?Ca():Wa(),Hs=rc(25)?Cl(Ri(),!1,void 0,8|ui):Iu(),Rs=C.createModuleDeclaration(kr,Is,Hs,Xr);return Hr(Zt(Rs,tt),Jt)}function wl(tt,Jt,kr){let Xr=0,ui;Wt()===162?(ui=Wa(),Xr|=2048):(ui=ra(),ui.text=ls(ui.text));let Is;Wt()===19?Is=Iu():MA();let Hs=C.createModuleDeclaration(kr,ui,Is,Xr);return Hr(Zt(Hs,tt),Jt)}function $f(tt,Jt,kr){let Xr=0;if(Wt()===162)return wl(tt,Jt,kr);if(rc(145))Xr|=32;else if(ws(144),Wt()===11)return wl(tt,Jt,kr);return Cl(tt,Jt,kr,Xr)}function j2(){return Wt()===149&&oo(_x)}function _x(){return Vs()===21}function z2(){return Vs()===19}function tv(){return Vs()===44}function Yu(tt,Jt,kr){ws(130),ws(145);let Xr=Wa();MA();let ui=C.createNamespaceExportDeclaration(Xr);return ui.modifiers=kr,Hr(Zt(ui,tt),Jt)}function qO(tt,Jt,kr){ws(102);let Xr=t.getTokenFullStart(),ui;Xs()&&(ui=Wa());let Is=!1;if(ui?.escapedText==="type"&&(Wt()!==161||Xs()&&oo(pB))&&(Xs()||iY())&&(Is=!0,ui=Xs()?Wa():void 0),ui&&!LT())return GD(tt,Jt,kr,ui,Is);let Hs=hB(ui,Xr,Is),Rs=FD(),ja=mw();MA();let ho=C.createImportDeclaration(kr,Hs,Rs,ja);return Hr(Zt(ho,tt),Jt)}function hB(tt,Jt,kr,Xr=!1){let ui;return(tt||Wt()===42||Wt()===19)&&(ui=dF(tt,Jt,kr,Xr),ws(161)),ui}function mw(){let tt=Wt();if((tt===118||tt===132)&&!t.hasPrecedingLineBreak())return $O(tt)}function AF(){let tt=Ri(),Jt=H1(Wt())?Ca():Bl(11);ws(59);let kr=zf(!0);return Zt(C.createImportAttribute(Jt,kr),tt)}function $O(tt,Jt){let kr=Ri();Jt||ws(tt);let Xr=t.getTokenStart();if(ws(19)){let ui=t.hasPrecedingLineBreak(),Is=Kf(24,AF,!0);if(!ws(20)){let Hs=Vme(lr);Hs&&Hs.code===ts._0_expected.code&&Dbt(Hs,pNe(er,xt,Xr,1,ts.The_parser_expected_to_find_a_1_to_match_the_0_token_here,"{","}"))}return Zt(C.createImportAttributes(Is,ui,tt),kr)}else{let ui=Er([],Ri(),void 0,!1);return Zt(C.createImportAttributes(ui,!1,tt),kr)}}function iY(){return Wt()===42||Wt()===19}function LT(){return Wt()===28||Wt()===161}function GD(tt,Jt,kr,Xr,ui){ws(64);let Is=EL();MA();let Hs=C.createImportEqualsDeclaration(kr,ui,Xr,Is);return Hr(Zt(Hs,tt),Jt)}function dF(tt,Jt,kr,Xr){let ui;return(!tt||rc(28))&&(Xr&&t.setSkipJsDocLeadingAsterisks(!0),ui=Wt()===42?fE():bd(275),Xr&&t.setSkipJsDocLeadingAsterisks(!1)),Zt(C.createImportClause(kr,tt,ui),Jt)}function EL(){return j2()?ff():se(!1)}function ff(){let tt=Ri();ws(149),ws(21);let Jt=FD();return ws(22),Zt(C.createExternalModuleReference(Jt),tt)}function FD(){if(Wt()===11){let tt=ra();return tt.text=ls(tt.text),tt}else return $A()}function fE(){let tt=Ri();ws(42),ws(130);let Jt=Wa();return Zt(C.createNamespaceImport(Jt),tt)}function n2(){return H1(Wt())||Wt()===11}function mB(tt){return Wt()===11?ra():tt()}function bd(tt){let Jt=Ri(),kr=tt===275?C.createNamedImports(iE(23,Uh,19,20)):C.createNamedExports(iE(23,s1,19,20));return Zt(kr,Jt)}function s1(){let tt=Do();return Hr(wb(281),tt)}function Uh(){return wb(276)}function wb(tt){let Jt=Ri(),kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Is=!1,Hs,Rs=!0,ja=mB(Ca);if(ja.kind===80&&ja.escapedText==="type")if(Wt()===130){let Nd=Ca();if(Wt()===130){let ed=Ca();n2()?(Is=!0,Hs=Nd,ja=mB(sl),Rs=!1):(Hs=ja,ja=ed,Rs=!1)}else n2()?(Hs=ja,Rs=!1,ja=mB(sl)):(Is=!0,ja=Nd)}else n2()&&(Is=!0,ja=mB(sl));Rs&&Wt()===130&&(Hs=ja,ws(130),ja=mB(sl)),tt===276&&(ja.kind!==80?(_g(dj(xt,ja.pos),ja.end,ts.Identifier_expected),ja=Ece(yn(80,!1),ja.pos,ja.pos)):kr&&_g(Xr,ui,ts.Identifier_expected));let ho=tt===276?C.createImportSpecifier(Is,Hs,ja):C.createExportSpecifier(Is,Hs,ja);return Zt(ho,Jt);function sl(){return kr=Cce(Wt())&&!Xs(),Xr=t.getTokenStart(),ui=t.getTokenEnd(),Ca()}}function Uu(tt){return Zt(C.createNamespaceExport(mB(Ca)),tt)}function iy(tt,Jt,kr){let Xr=Xu();yo(!0);let ui,Is,Hs,Rs=rc(156),ja=Ri();rc(42)?(rc(130)&&(ui=Uu(ja)),ws(161),Is=FD()):(ui=bd(279),(Wt()===161||Wt()===11&&!t.hasPrecedingLineBreak())&&(ws(161),Is=FD()));let ho=Wt();Is&&(ho===118||ho===132)&&!t.hasPrecedingLineBreak()&&(Hs=$O(ho)),MA(),yo(Xr);let sl=C.createExportDeclaration(kr,Rs,ui,Is,Hs);return Hr(Zt(sl,tt),Jt)}function sY(tt,Jt,kr){let Xr=Xu();yo(!0);let ui;rc(64)?ui=!0:ws(90);let Is=zf(!0);MA(),yo(Xr);let Hs=C.createExportAssignment(kr,ui,Is);return Hr(Zt(Hs,tt),Jt)}let oY;(tt=>{tt[tt.SourceElements=0]="SourceElements",tt[tt.BlockStatements=1]="BlockStatements",tt[tt.SwitchClauses=2]="SwitchClauses",tt[tt.SwitchClauseStatements=3]="SwitchClauseStatements",tt[tt.TypeMembers=4]="TypeMembers",tt[tt.ClassMembers=5]="ClassMembers",tt[tt.EnumMembers=6]="EnumMembers",tt[tt.HeritageClauseElement=7]="HeritageClauseElement",tt[tt.VariableDeclarations=8]="VariableDeclarations",tt[tt.ObjectBindingElements=9]="ObjectBindingElements",tt[tt.ArrayBindingElements=10]="ArrayBindingElements",tt[tt.ArgumentExpressions=11]="ArgumentExpressions",tt[tt.ObjectLiteralMembers=12]="ObjectLiteralMembers",tt[tt.JsxAttributes=13]="JsxAttributes",tt[tt.JsxChildren=14]="JsxChildren",tt[tt.ArrayLiteralMembers=15]="ArrayLiteralMembers",tt[tt.Parameters=16]="Parameters",tt[tt.JSDocParameters=17]="JSDocParameters",tt[tt.RestProperties=18]="RestProperties",tt[tt.TypeParameters=19]="TypeParameters",tt[tt.TypeArguments=20]="TypeArguments",tt[tt.TupleElementTypes=21]="TupleElementTypes",tt[tt.HeritageClauses=22]="HeritageClauses",tt[tt.ImportOrExportSpecifiers=23]="ImportOrExportSpecifiers",tt[tt.ImportAttributes=24]="ImportAttributes",tt[tt.JSDocComment=25]="JSDocComment",tt[tt.Count=26]="Count"})(oY||(oY={}));let jR;(tt=>{tt[tt.False=0]="False",tt[tt.True=1]="True",tt[tt.Unknown=2]="Unknown"})(jR||(jR={}));let aY;(tt=>{function Jt(ho,sl,Nd){Ya("file.js",ho,99,void 0,1,0),t.setText(ho,sl,Nd),qr=t.scan();let ed=kr(),Og=zr("file.js",99,1,!1,[],X(1),0,NNe),Nh=Nme(lr,Og);return cr&&(Og.jsDocDiagnostics=Nme(cr,Og)),Gc(),ed?{jsDocTypeExpression:ed,diagnostics:Nh}:void 0}tt.parseJSDocTypeExpressionForTests=Jt;function kr(ho){let sl=Ri(),Nd=(ho?rc:ws)(19),ed=Qa(16777216,YS);(!ho||Nd)&&cm(20);let Og=C.createJSDocTypeExpression(ed);return Ft(Og),Zt(Og,sl)}tt.parseJSDocTypeExpression=kr;function Xr(){let ho=Ri(),sl=rc(19),Nd=Ri(),ed=se(!1);for(;Wt()===81;)$i(),Ju(),ed=Zt(C.createJSDocMemberName(ed,Wa()),Nd);sl&&cm(20);let Og=C.createJSDocNameReference(ed);return Ft(Og),Zt(Og,ho)}tt.parseJSDocNameReference=Xr;function ui(ho,sl,Nd){Ya("",ho,99,void 0,1,0);let ed=Qa(16777216,()=>ja(sl,Nd)),Og=Nme(lr,{languageVariant:0,text:ho});return Gc(),ed?{jsDoc:ed,diagnostics:Og}:void 0}tt.parseIsolatedJSDocComment=ui;function Is(ho,sl,Nd){let ed=qr,Og=lr.length,Nh=Vr,o1=Qa(16777216,()=>ja(sl,Nd));return $Nr(o1,ho),Hi&524288&&(cr||(cr=[]),_V(cr,lr,Og)),qr=ed,lr.length=Og,Vr=Nh,o1}tt.parseJSDocComment=Is;let Hs;(ho=>{ho[ho.BeginningOfLine=0]="BeginningOfLine",ho[ho.SawAsterisk=1]="SawAsterisk",ho[ho.SavingComments=2]="SavingComments",ho[ho.SavingBackticks=3]="SavingBackticks"})(Hs||(Hs={}));let Rs;(ho=>{ho[ho.Property=1]="Property",ho[ho.Parameter=2]="Parameter",ho[ho.CallbackParameter=4]="CallbackParameter"})(Rs||(Rs={}));function ja(ho=0,sl){let Nd=xt,ed=sl===void 0?Nd.length:ho+sl;if(sl=ed-ho,Zo.assert(ho>=0),Zo.assert(ho<=ed),Zo.assert(ed<=Nd.length),!Xec(Nd,ho))return;let Og,Nh,o1,Tb,q2,IE=[],zR=[],e3=Fn;Fn|=1<<25;let IA=t.scanRange(ho+3,sl-5,EI);return Fn=e3,IA;function EI(){let Es=1,Aa,ha=ho-(Nd.lastIndexOf(` `,ho)+1)+4;function Ua(Pd){Aa||(Aa=ha),IE.push(Pd),ha+=Pd.length}for(Ju();bx(5););bx(4)&&(Es=0,ha=0);e:for(;;){switch(Wt()){case 60:wA(IE),q2||(q2=Ri()),Hc(Eo(ha)),Es=0,Aa=void 0;break;case 4:IE.push(t.getTokenText()),Es=0,ha=0;break;case 42:let Pd=t.getTokenText();Es===1?(Es=2,Ua(Pd)):(Zo.assert(Es===0),Es=1,ha+=Pd.length);break;case 5:Zo.assert(Es!==2,"whitespace shouldn't come from the scanner while saving top-level comment text");let Kh=t.getTokenText();Aa!==void 0&&ha+Kh.length>Aa&&IE.push(Kh.slice(Aa-ha)),ha+=Kh.length;break;case 1:break e;case 82:Es=2,Ua(t.getTokenValue());break;case 19:Es=2;let i2=t.getTokenFullStart(),a1=t.getTokenEnd()-1,Nb=Ve(a1);if(Nb){Tb||zd(IE),zR.push(Zt(C.createJSDocText(IE.join("")),Tb??ho,i2)),zR.push(Nb),IE=[],Tb=t.getTokenEnd();break}default:Es=2,Ua(t.getTokenText());break}Es===2?Yn(!1):Ju()}let wc=IE.join("").trimEnd();zR.length&&wc.length&&zR.push(Zt(C.createJSDocText(wc),Tb??ho,q2)),zR.length&&Og&&Zo.assertIsDefined(q2,"having parsed tags implies that the end of the comment span should be set");let hA=Og&&Er(Og,Nh,o1);return Zt(C.createJSDocComment(zR.length?Er(zR,ho,q2):wc.length?wc:void 0,hA),ho,ed)}function zd(Es){for(;Es.length&&(Es[0]===` `||Es[0]==="\r");)Es.shift()}function wA(Es){for(;Es.length;){let Aa=Es[Es.length-1].trimEnd();if(Aa==="")Es.pop();else if(Aa.lengthKh&&(Ua.push(sv.slice(Kh-Es)),Pd=2),Es+=sv.length;break;case 19:Pd=2;let oP=t.getTokenFullStart(),fF=t.getTokenEnd()-1,ov=Ve(fF);ov?(wc.push(Zt(C.createJSDocText(Ua.join("")),hA??ha,oP)),wc.push(ov),Ua=[],hA=t.getTokenEnd()):i2(t.getTokenText());break;case 62:Pd===3?Pd=2:Pd=3,i2(t.getTokenText());break;case 82:Pd!==3&&(Pd=2),i2(t.getTokenValue());break;case 42:if(Pd===0){Pd=1,Es+=1;break}default:Pd!==3&&(Pd=2),i2(t.getTokenText());break}Pd===2||Pd===3?a1=Yn(Pd===3):a1=Ju()}zd(Ua);let Nb=Ua.join("").trimEnd();if(wc.length)return Nb.length&&wc.push(Zt(C.createJSDocText(Nb),hA??ha)),Er(wc,ha,t.getTokenEnd());if(Nb.length)return Nb}function Ve(Es){let Aa=Ki(wr);if(!Aa)return;Ju(),sy();let ha=Ct(),Ua=[];for(;Wt()!==20&&Wt()!==4&&Wt()!==1;)Ua.push(t.getTokenText()),Ju();let wc=Aa==="link"?C.createJSDocLink:Aa==="linkcode"?C.createJSDocLinkCode:C.createJSDocLinkPlain;return Zt(wc(ha,Ua.join("")),Es,t.getTokenEnd())}function Ct(){if(H1(Wt())){let Es=Ri(),Aa=Ca();for(;rc(25);)Aa=Zt(C.createQualifiedName(Aa,Wt()===81?yn(80,!1):Ca()),Es);for(;Wt()===81;)$i(),Ju(),Aa=Zt(C.createJSDocMemberName(Aa,Wa()),Es);return Aa}}function wr(){if($2(),Wt()===19&&Ju()===60&&H1(Ju())){let Es=t.getTokenValue();if(ai(Es))return Es}}function ai(Es){return Es==="link"||Es==="linkcode"||Es==="linkplain"}function Lo(Es,Aa,ha,Ua){return Zt(C.createJSDocUnknownTag(Aa,z(Es,Ri(),ha,Ua)),Es)}function Hc(Es){Es&&(Og?Og.push(Es):(Og=[Es],Nh=Es.pos),o1=Es.end)}function ad(){return $2(),Wt()===19?kr():void 0}function dm(){let Es=bx(23);Es&&sy();let Aa=bx(62),ha=_re();return Aa&&FA(62),Es&&(sy(),sd(64)&&$A(),ws(24)),{name:ha,isBracketed:Es}}function rv(Es){switch(Es.kind){case 151:return!0;case 188:return rv(Es.elementType);default:return nBi(Es)&&$C(Es.typeName)&&Es.typeName.escapedText==="Object"&&!Es.typeArguments}}function nv(Es,Aa,ha,Ua){let wc=ad(),hA=!wc;$2();let{name:Pd,isBracketed:Kh}=dm(),i2=$2();hA&&!oo(wr)&&(wc=ad());let a1=z(Es,Ri(),Ua,i2),Nb=yx(wc,Pd,ha,Ua);Nb&&(wc=Nb,hA=!0);let sv=ha===1?C.createJSDocPropertyTag(Aa,Pd,Kh,wc,hA,a1):C.createJSDocParameterTag(Aa,Pd,Kh,wc,hA,a1);return Zt(sv,Es)}function yx(Es,Aa,ha,Ua){if(Es&&rv(Es.type)){let wc=Ri(),hA,Pd;for(;hA=Ki(()=>r3(ha,Ua,Aa));)hA.kind===341||hA.kind===348?Pd=mV(Pd,hA):hA.kind===345&&mI(hA.tagName,ts.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);if(Pd){let Kh=Zt(C.createJSDocTypeLiteral(Pd,Es.type.kind===188),wc);return Zt(C.createJSDocTypeExpression(Kh),wc)}}}function Dd(Es,Aa,ha,Ua){oD(Og,Dec)&&_g(Aa.pos,t.getTokenStart(),ts._0_tag_already_specified,mJe(Aa.escapedText));let wc=ad();return Zt(C.createJSDocReturnTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function ji(Es,Aa,ha,Ua){oD(Og,iDr)&&_g(Aa.pos,t.getTokenStart(),ts._0_tag_already_specified,mJe(Aa.escapedText));let wc=kr(!0),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocTypeTag(Aa,wc,hA),Es)}function SL(Es,Aa,ha,Ua){let wc=Wt()===23||oo(()=>Ju()===60&&H1(Ju())&&ai(t.getTokenValue()))?void 0:Xr(),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocSeeTag(Aa,wc,hA),Es)}function $l(Es,Aa,ha,Ua){let wc=ad(),hA=z(Es,Ri(),ha,Ua);return Zt(C.createJSDocThrowsTag(Aa,wc,hA),Es)}function Ap(Es,Aa,ha,Ua){let wc=Ri(),hA=Bc(),Pd=t.getTokenFullStart(),Kh=z(Es,Pd,ha,Ua);Kh||(Pd=t.getTokenFullStart());let i2=typeof Kh!="string"?Er(NNr([Zt(hA,wc,Pd)],Kh),wc):hA.text+Kh;return Zt(C.createJSDocAuthorTag(Aa,i2),Es)}function Bc(){let Es=[],Aa=!1,ha=t.getToken();for(;ha!==1&&ha!==4;){if(ha===30)Aa=!0;else{if(ha===60&&!Aa)break;if(ha===32&&Aa){Es.push(t.getTokenText()),t.resetTokenState(t.getTokenEnd());break}}Es.push(t.getTokenText()),ha=Ju()}return C.createJSDocText(Es.join(""))}function Vo(Es,Aa,ha,Ua){let wc=cY();return Zt(C.createJSDocImplementsTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function iv(Es,Aa,ha,Ua){let wc=cY();return Zt(C.createJSDocAugmentsTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function nf(Es,Aa,ha,Ua){let wc=kr(!1),hA=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocSatisfiesTag(Aa,wc,hA),Es)}function J6(Es,Aa,ha,Ua){let wc=t.getTokenFullStart(),hA;Xs()&&(hA=Wa());let Pd=hB(hA,wc,!0,!0),Kh=FD(),i2=mw(),a1=ha!==void 0&&Ua!==void 0?z(Es,Ri(),ha,Ua):void 0;return Zt(C.createJSDocImportTag(Aa,Pd,Kh,i2,a1),Es)}function cY(){let Es=rc(19),Aa=Ri(),ha=t3();t.setSkipJsDocLeadingAsterisks(!0);let Ua=xn();t.setSkipJsDocLeadingAsterisks(!1);let wc=C.createExpressionWithTypeArguments(ha,Ua),hA=Zt(wc,Aa);return Es&&ws(20),hA}function t3(){let Es=Ri(),Aa=Ex();for(;rc(25);){let ha=Ex();Aa=Zt(ce(Aa,ha),Es)}return Aa}function pF(Es,Aa,ha,Ua,wc){return Zt(Aa(ha,z(Es,Ri(),Ua,wc)),Es)}function rh(Es,Aa,ha,Ua){let wc=kr(!0);return sy(),Zt(C.createJSDocThisTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function Cw(Es,Aa,ha,Ua){let wc=kr(!0);return sy(),Zt(C.createJSDocEnumTag(Aa,wc,z(Es,Ri(),ha,Ua)),Es)}function Il(Es,Aa,ha,Ua){let wc=ad();$2();let hA=CB();sy();let Pd=ye(ha),Kh;if(!wc||rv(wc.type)){let a1,Nb,sv,oP=!1;for(;(a1=Ki(()=>lY(ha)))&&a1.kind!==345;)if(oP=!0,a1.kind===344)if(Nb){let fF=Da(ts.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);fF&&Dbt(fF,pNe(er,xt,0,0,ts.The_tag_was_first_specified_here));break}else Nb=a1;else sv=mV(sv,a1);if(oP){let fF=wc&&wc.type.kind===188,ov=C.createJSDocTypeLiteral(sv,fF);wc=Nb&&Nb.typeExpression&&!rv(Nb.typeExpression.type)?Nb.typeExpression:Zt(ov,Es),Kh=wc.end}}Kh=Kh||Pd!==void 0?Ri():(hA??wc??Aa).end,Pd||(Pd=z(Es,Kh,ha,Ua));let i2=C.createJSDocTypedefTag(Aa,wc,hA,Pd);return Zt(i2,Es,Kh)}function CB(Es){let Aa=t.getTokenStart();if(!H1(Wt()))return;let ha=Ex();if(rc(25)){let Ua=CB(!0),wc=C.createModuleDeclaration(void 0,ha,Ua,Es?8:void 0);return Zt(wc,Aa)}return Es&&(ha.flags|=4096),ha}function Rb(Es){let Aa=Ri(),ha,Ua;for(;ha=Ki(()=>r3(4,Es));){if(ha.kind===345){mI(ha.tagName,ts.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);break}Ua=mV(Ua,ha)}return Er(Ua||[],Aa)}function $R(Es,Aa){let ha=Rb(Aa),Ua=Ki(()=>{if(bx(60)){let wc=Eo(Aa);if(wc&&wc.kind===342)return wc}});return Zt(C.createJSDocSignature(void 0,ha,Ua),Es)}function Cre(Es,Aa,ha,Ua){let wc=CB();sy();let hA=ye(ha),Pd=$R(Es,ha);hA||(hA=z(Es,Ri(),ha,Ua));let Kh=hA!==void 0?Ri():Pd.end;return Zt(C.createJSDocCallbackTag(Aa,Pd,wc,hA),Es,Kh)}function vL(Es,Aa,ha,Ua){sy();let wc=ye(ha),hA=$R(Es,ha);wc||(wc=z(Es,Ri(),ha,Ua));let Pd=wc!==void 0?Ri():hA.end;return Zt(C.createJSDocOverloadTag(Aa,hA,wc),Es,Pd)}function uJ(Es,Aa){for(;!$C(Es)||!$C(Aa);)if(!$C(Es)&&!$C(Aa)&&Es.right.escapedText===Aa.right.escapedText)Es=Es.left,Aa=Aa.left;else return!1;return Es.escapedText===Aa.escapedText}function lY(Es){return r3(1,Es)}function r3(Es,Aa,ha){let Ua=!0,wc=!1;for(;;)switch(Ju()){case 60:if(Ua){let hA=U6(Es,Aa);return hA&&(hA.kind===341||hA.kind===348)&&ha&&($C(hA.name)||!uJ(ha,hA.name.left))?!1:hA}wc=!1;break;case 4:Ua=!0,wc=!1;break;case 42:wc&&(Ua=!1),wc=!0;break;case 80:Ua=!1;break;case 1:return!1}}function U6(Es,Aa){Zo.assert(Wt()===60);let ha=t.getTokenFullStart();Ju();let Ua=Ex(),wc=$2(),hA;switch(Ua.escapedText){case"type":return Es===1&&ji(ha,Ua);case"prop":case"property":hA=1;break;case"arg":case"argument":case"param":hA=6;break;case"template":return uY(ha,Ua,Aa,wc);case"this":return rh(ha,Ua,Aa,wc);default:return!1}return Es&hA?nv(ha,Ua,Es,Aa):!1}function gJ(){let Es=Ri(),Aa=bx(23);Aa&&sy();let ha=Le(!1,!0),Ua=Ex(ts.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces),wc;if(Aa&&(sy(),ws(64),wc=Qa(16777216,YS),ws(24)),!Wme(Ua))return Zt(C.createTypeParameterDeclaration(ha,Ua,void 0,wc),Es)}function K6(){let Es=Ri(),Aa=[];do{sy();let ha=gJ();ha!==void 0&&Aa.push(ha),$2()}while(bx(28));return Er(Aa,Es)}function uY(Es,Aa,ha,Ua){let wc=Wt()===19?kr():void 0,hA=K6();return Zt(C.createJSDocTemplateTag(Aa,wc,hA,z(Es,Ri(),ha,Ua)),Es)}function bx(Es){return Wt()===Es?(Ju(),!0):!1}function _re(){let Es=Ex();for(rc(23)&&ws(24);rc(25);){let Aa=Ex();rc(23)&&ws(24),Es=O(Es,Aa)}return Es}function Ex(Es){if(!H1(Wt()))return yn(80,!Es,Es||ts.Identifier_expected);jt++;let Aa=t.getTokenStart(),ha=t.getTokenEnd(),Ua=Wt(),wc=ls(t.getTokenValue()),hA=Zt(F(wc,Ua),Aa,ha);return Ju(),hA}}})(aY=e.JSDocParser||(e.JSDocParser={}))})(Mme||(Mme={}));var wSi=new WeakSet;function itc(e){wSi.has(e)&&Zo.fail("Source file has already been incrementally parsed"),wSi.add(e)}var wBi=new WeakSet;function stc(e){return wBi.has(e)}function _Nr(e){wBi.add(e)}var qbt;(e=>{function t(N,B,F,Q){if(Q=Q||Zo.shouldAssert(2),C(N,B,F,Q),j7a(F))return N;if(N.statements.length===0)return Mme.parseSourceFile(N.fileName,B,N.languageVersion,void 0,!0,N.scriptKind,N.setExternalModuleIndicator,N.jsDocParsingMode);itc(N),Mme.fixupParentReferences(N);let X=N.text,ae=b(N),ne=f(N,F);C(N,B,ne,Q),Zo.assert(ne.span.start<=F.span.start),Zo.assert(gj(ne.span)===gj(F.span)),Zo.assert(gj(rJe(ne))===gj(rJe(F)));let ce=rJe(ne).length-ne.span.length;A(N,ne.span.start,gj(ne.span),gj(rJe(ne)),ce,X,B,Q);let fe=Mme.parseSourceFile(N.fileName,B,N.languageVersion,ae,!0,N.scriptKind,N.setExternalModuleIndicator,N.jsDocParsingMode);return fe.commentDirectives=r(N.commentDirectives,fe.commentDirectives,ne.span.start,gj(ne.span),ce,X,B,Q),fe.impliedNodeFormat=N.impliedNodeFormat,Zec(N,fe),fe}e.updateSourceFile=t;function r(N,B,F,Q,X,ae,ne,ce){if(!N)return B;let fe,ue=!1;for(let be of N){let{range:Se,type:De}=be;if(Se.endQ){de();let k={range:{pos:Se.pos+X,end:Se.end+X},type:De};fe=mV(fe,k),ce&&Zo.assert(ae.substring(Se.pos,Se.end)===ne.substring(k.range.pos,k.range.end))}}return de(),fe;function de(){ue||(ue=!0,fe?B&&fe.push(...B):fe=B)}}function n(N,B,F,Q,X,ae,ne){F?fe(N):ce(N);return;function ce(ue){let de="";if(ne&&a(ue)&&(de=X.substring(ue.pos,ue.end)),nSi(ue,B),Ece(ue,ue.pos+Q,ue.end+Q),ne&&a(ue)&&Zo.assert(de===ae.substring(ue.pos,ue.end)),Ok(ue,ce,fe),Pme(ue))for(let be of ue.jsDoc)ce(be);l(ue,ne)}function fe(ue){Ece(ue,ue.pos+Q,ue.end+Q);for(let de of ue)ce(de)}}function a(N){switch(N.kind){case 11:case 9:case 80:return!0}return!1}function o(N,B,F,Q,X){Zo.assert(N.end>=B,"Adjusting an element that was entirely before the change range"),Zo.assert(N.pos<=F,"Adjusting an element that was entirely after the change range"),Zo.assert(N.pos<=N.end);let ae=Math.min(N.pos,Q),ne=N.end>=F?N.end+X:Math.min(N.end,Q);if(Zo.assert(ae<=ne),N.parent){let ce=N.parent;Zo.assertGreaterThanOrEqual(ae,ce.pos),Zo.assertLessThanOrEqual(ne,ce.end)}Ece(N,ae,ne)}function l(N,B){if(B){let F=N.pos,Q=X=>{Zo.assert(X.pos>=F),F=X.end};if(Pme(N))for(let X of N.jsDoc)Q(X);Ok(N,Q),Zo.assert(F<=N.end)}}function A(N,B,F,Q,X,ae,ne,ce){fe(N);return;function fe(de){if(Zo.assert(de.pos<=de.end),de.pos>F){n(de,N,!1,X,ae,ne,ce);return}let be=de.end;if(be>=B){if(_Nr(de),nSi(de,N),o(de,B,F,Q,X),Ok(de,fe,ue),Pme(de))for(let Se of de.jsDoc)fe(Se);l(de,ce);return}Zo.assert(beF){n(de,N,!0,X,ae,ne,ce);return}let be=de.end;if(be>=B){_Nr(de),o(de,B,F,Q,X);for(let Se of de)fe(Se);return}Zo.assert(be0&&ae<=1;ae++){let ne=I(N,F);Zo.assert(ne.pos<=F);let ce=ne.pos;F=Math.max(0,ce-1)}let Q=K7a(F,gj(B.span)),X=B.newLength+(B.span.start-F);return bvi(Q,X)}function I(N,B){let F=N,Q;if(Ok(N,ae),Q){let ne=X(Q);ne.pos>F.pos&&(F=ne)}return F;function X(ne){for(;;){let ce=Pqa(ne);if(ce)ne=ce;else return ne}}function ae(ne){if(!Wme(ne))if(ne.pos<=B){if(ne.pos>=F.pos&&(F=ne),BB),!0}}function C(N,B,F,Q){let X=N.text;if(F&&(Zo.assert(X.length-F.span.length+F.newLength===B.length),Q||Zo.shouldAssert(3))){let ae=X.substr(0,F.span.start),ne=B.substr(0,F.span.start);Zo.assert(ae===ne);let ce=X.substring(gj(F.span),X.length),fe=B.substring(gj(rJe(F)),B.length);Zo.assert(ce===fe)}}function b(N){let B=N.statements,F=0;Zo.assert(F=ue.pos&&ne=ue.pos&&ne{N[N.Value=-1]="Value"})(E||(E={}))})(qbt||(qbt={}));function otc(e){return atc(e)!==void 0}function atc(e){let t=lvi(e,o$a,!1);if(t)return t;if(p7a(e,".ts")){let r=cvi(e),n=r.lastIndexOf(".d.");if(n>=0)return r.substring(n)}}function ctc(e,t,r,n){if(e){if(e==="import")return 99;if(e==="require")return 1;n(t,r-t,ts.resolution_mode_should_be_either_require_or_import)}}function ltc(e,t){let r=[];for(let n of lNr(t,0)||x2){let a=t.substring(n.pos,n.end);ptc(r,n,a)}e.pragmas=new Map;for(let n of r){if(e.pragmas.has(n.name)){let a=e.pragmas.get(n.name);a instanceof Array?a.push(n.args):e.pragmas.set(n.name,[a,n.args]);continue}e.pragmas.set(n.name,n.args)}}function utc(e,t){e.checkJsDirective=void 0,e.referencedFiles=[],e.typeReferenceDirectives=[],e.libReferenceDirectives=[],e.amdDependencies=[],e.hasNoDefaultLib=!1,e.pragmas.forEach((r,n)=>{switch(n){case"reference":{let a=e.referencedFiles,o=e.typeReferenceDirectives,l=e.libReferenceDirectives;hO(QRr(r),A=>{let{types:f,lib:I,path:C,["resolution-mode"]:b,preserve:E}=A.arguments,N=E==="true"?!0:void 0;if(A.arguments["no-default-lib"]==="true")e.hasNoDefaultLib=!0;else if(f){let B=ctc(b,f.pos,f.end,t);o.push({pos:f.pos,end:f.end,fileName:f.value,...B?{resolutionMode:B}:{},...N?{preserve:N}:{}})}else I?l.push({pos:I.pos,end:I.end,fileName:I.value,...N?{preserve:N}:{}}):C?a.push({pos:C.pos,end:C.end,fileName:C.value,...N?{preserve:N}:{}}):t(A.range.pos,A.range.end-A.range.pos,ts.Invalid_reference_directive_syntax)});break}case"amd-dependency":{e.amdDependencies=iNr(QRr(r),a=>({name:a.arguments.name,path:a.arguments.path}));break}case"amd-module":{if(r instanceof Array)for(let a of r)e.moduleName&&t(a.range.pos,a.range.end-a.range.pos,ts.An_AMD_module_cannot_have_multiple_name_assignments),e.moduleName=a.arguments.name;else e.moduleName=r.arguments.name;break}case"ts-nocheck":case"ts-check":{hO(QRr(r),a=>{(!e.checkJsDirective||a.range.pos>e.checkJsDirective.pos)&&(e.checkJsDirective={enabled:n==="ts-check",end:a.range.end,pos:a.range.pos})});break}case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:Zo.fail("Unhandled pragma kind")}})}var tNr=new Map;function gtc(e){if(tNr.has(e))return tNr.get(e);let t=new RegExp(`(\\s${e}\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`,"im");return tNr.set(e,t),t}var Atc=/^\/\/\/\s*<(\S+)\s.*?\/>/m,dtc=/^\/\/\/?\s*@([^\s:]+)((?:[^\S\r\n]|:).*)?$/m;function ptc(e,t,r){let n=t.kind===2&&Atc.exec(r);if(n){let o=n[1].toLowerCase(),l=avi[o];if(!l||!(l.kind&1))return;if(l.args){let A={};for(let f of l.args){let I=gtc(f.name).exec(r);if(!I&&!f.optional)return;if(I){let C=I[2]||I[3];if(f.captureSpan){let b=t.pos+I.index+I[1].length+1;A[f.name]={value:C,pos:b,end:b+C.length}}else A[f.name]=C}}e.push({name:o,args:{arguments:A,range:t}})}else e.push({name:o,args:{arguments:{},range:t}});return}let a=t.kind===2&&dtc.exec(r);if(a)return TSi(e,t,2,a);if(t.kind===3){let o=/@(\S+)(\s+(?:\S.*)?)?$/gm,l;for(;l=o.exec(r);)TSi(e,t,4,l)}}function TSi(e,t,r,n){if(!n)return;let a=n[1].toLowerCase(),o=avi[a];if(!o||!(o.kind&r))return;let l=n[2],A=ftc(o,l);A!=="fail"&&e.push({name:a,args:{arguments:A,range:t}})}function ftc(e,t){if(!t)return{};if(!e.args)return{};let r=t.trim().split(/\s+/),n={};for(let a=0;an.kind<309||n.kind>351);return r.kind<166?r:r.getFirstToken(e)}getLastToken(e){this.assertHasRealPosition();let t=this.getChildren(e),r=Vme(t);if(r)return r.kind<166?r:r.getLastToken(e)}forEachChild(e,t){return Ok(this,e,t)}};function Itc(e,t){let r=[];if(Oza(e))return e.forEachChild(l=>{r.push(l)}),r;fJe.setText((t||e.getSourceFile()).text);let n=e.pos,a=l=>{IJe(r,n,l.pos,e),r.push(l),n=l.end},o=l=>{IJe(r,n,l.pos,e),r.push(htc(l,e)),n=l.end};return hO(e.jsDoc,a),n=e.pos,e.forEachChild(a,o),IJe(r,n,e.end,e),fJe.setText(void 0),r}function IJe(e,t,r,n){for(fJe.resetTokenState(t);tt.tagName.text==="inheritDoc"||t.tagName.text==="inheritdoc")}function Pbt(e,t){if(!e)return x2;let r=ts_JsDoc_exports.getJsDocTagsFromDeclarations(e,t);if(t&&(r.length===0||e.some(kBi))){let n=new Set;for(let a of e){let o=xBi(t,a,l=>{var A;if(!n.has(l))return n.add(l),a.kind===177||a.kind===178?l.getContextualJsDocTags(a,t):((A=l.declarations)==null?void 0:A.length)===1?l.getJsDocTags(t):void 0});o&&(r=[...o,...r])}}return r}function pJe(e,t){if(!e)return x2;let r=ts_JsDoc_exports.getJsDocCommentsFromDeclarations(e,t);if(t&&(r.length===0||e.some(kBi))){let n=new Set;for(let a of e){let o=xBi(t,a,l=>{if(!n.has(l))return n.add(l),a.kind===177||a.kind===178?l.getContextualDocumentationComment(a,t):l.getDocumentationComment(t)});o&&(r=r.length===0?o.slice():o.concat(lineBreakPart(),r))}}return r}function xBi(e,t,r){var n;let a=((n=t.parent)==null?void 0:n.kind)===176?t.parent.parent:t.parent;if(!a)return;let o=Tqa(t);return L6a(Cqa(a),l=>{let A=e.getTypeAtLocation(l),f=o&&A.symbol?e.getTypeOfSymbol(A.symbol):A,I=e.getPropertyOfType(f,t.symbol.name);return I?r(I):void 0})}var ytc=class extends aDr{constructor(e,t,r){super(e,t,r)}update(e,t){return ntc(this,e,t)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}getLineStarts(){return cNr(this)}getPositionOfLineAndCharacter(e,t,r){return L7a(cNr(this),e,t,this.text,r)}getLineEndOfPosition(e){let{line:t}=this.getLineAndCharacterOfPosition(e),r=this.getLineStarts(),n;t+1>=r.length&&(n=this.getEnd()),n||(n=r[t+1]-1);let a=this.getFullText();return a[n]===` -`&&a[n-1]==="\r"?n-1:n}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){let e=z6a();return this.forEachChild(a),e;function t(o){let l=n(o);l&&e.add(l,o)}function r(o){let l=e.get(o);return l||e.set(o,l=[]),l}function n(o){let l=MNr(o);return l&&($vi(l)&&Bce(l.expression)?l.expression.name.text:kvi(l)?getNameFromPropertyName(l):void 0)}function a(o){switch(o.kind){case 262:case 218:case 174:case 173:let l=o,A=n(l);if(A){let C=r(A),b=Vme(C);b&&l.parent===b.parent&&l.symbol===b.symbol?l.body&&!b.body&&(C[C.length-1]=l):C.push(l)}Ok(o,a);break;case 263:case 231:case 264:case 265:case 266:case 267:case 271:case 281:case 276:case 273:case 274:case 177:case 178:case 187:t(o),Ok(o,a);break;case 169:if(!vJe(o,31))break;case 260:case 208:{let C=o;if(Dza(C.name)){Ok(C.name,a);break}C.initializer&&a(C.initializer)}case 306:case 172:case 171:t(o);break;case 278:let f=o;f.exportClause&&(dec(f.exportClause)?hO(f.exportClause.elements,a):a(f.exportClause.name));break;case 272:let I=o.importClause;I&&(I.name&&t(I.name),I.namedBindings&&(I.namedBindings.kind===274?t(I.namedBindings):hO(I.namedBindings.elements,a)));break;case 226:JNr(o)!==0&&t(o);default:Ok(o,a)}}}},btc=class{constructor(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}};function Etc(){return{getNodeConstructor:()=>aDr,getTokenConstructor:()=>RBi,getIdentifierConstructor:()=>NBi,getPrivateIdentifierConstructor:()=>DBi,getSourceFileConstructor:()=>ytc,getSymbolConstructor:()=>mtc,getTypeConstructor:()=>Ctc,getSignatureConstructor:()=>_tc,getSourceMapSourceConstructor:()=>btc}}var Stc=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints","getSupportedCodeFixes","getPasteEdits"],eRu=[...Stc,"getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors","preparePasteEditsForFile"];Uqa(Etc());var GBi=new Proxy({},{get:()=>!0}),FBi=GBi["4.8"];function Ij(e,t=!1){var r;if(e!=null){if(FBi){if(t||oDr(e)){let n=rza(e);return n?[...n]:void 0}return}return(r=e.modifiers)==null?void 0:r.filter(n=>!tDr(n))}}function yNe(e,t=!1){var r;if(e!=null){if(FBi){if(t||Yec(e)){let n=tza(e);return n?[...n]:void 0}return}return(r=e.decorators)==null?void 0:r.filter(tDr)}}var vtc={},ZBi=new Proxy({},{get:(e,t)=>t}),Btc=ZBi,wtc=ZBi,hs=Btc,sD=wtc,LBi=GBi["5.0"],au=Tp,Ttc=new Set([au.AmpersandAmpersandToken,au.BarBarToken,au.QuestionQuestionToken]),Rtc=new Set([Tp.AmpersandAmpersandEqualsToken,Tp.AmpersandEqualsToken,Tp.AsteriskAsteriskEqualsToken,Tp.AsteriskEqualsToken,Tp.BarBarEqualsToken,Tp.BarEqualsToken,Tp.CaretEqualsToken,Tp.EqualsToken,Tp.GreaterThanGreaterThanEqualsToken,Tp.GreaterThanGreaterThanGreaterThanEqualsToken,Tp.LessThanLessThanEqualsToken,Tp.MinusEqualsToken,Tp.PercentEqualsToken,Tp.PlusEqualsToken,Tp.QuestionQuestionEqualsToken,Tp.SlashEqualsToken]),Ntc=new Set([au.AmpersandAmpersandToken,au.AmpersandToken,au.AsteriskAsteriskToken,au.AsteriskToken,au.BarBarToken,au.BarToken,au.CaretToken,au.EqualsEqualsEqualsToken,au.EqualsEqualsToken,au.ExclamationEqualsEqualsToken,au.ExclamationEqualsToken,au.GreaterThanEqualsToken,au.GreaterThanGreaterThanGreaterThanToken,au.GreaterThanGreaterThanToken,au.GreaterThanToken,au.InKeyword,au.InstanceOfKeyword,au.LessThanEqualsToken,au.LessThanLessThanToken,au.LessThanToken,au.MinusToken,au.PercentToken,au.PlusToken,au.SlashToken]);function Dtc(e){return Rtc.has(e.kind)}function ktc(e){return Ttc.has(e.kind)}function xtc(e){return Ntc.has(e.kind)}function yce(e){return by(e)}function Gtc(e){return e.kind!==au.SemicolonClassElement}function vh(e,t){let r=Ij(t);return r?.some(n=>n.kind===e)===!0}function Ftc(e){let t=Ij(e);return t==null?null:t[t.length-1]??null}function Ztc(e){return e.kind===au.CommaToken}function Ltc(e){return e.kind===au.SingleLineCommentTrivia||e.kind===au.MultiLineCommentTrivia}function Vtc(e){return e.kind===au.JSDocComment}function Ptc(e){if(Dtc(e))return{type:hs.AssignmentExpression,operator:yce(e.kind)};if(ktc(e))return{type:hs.LogicalExpression,operator:yce(e.kind)};if(xtc(e))return{type:hs.BinaryExpression,operator:yce(e.kind)};throw new Error(`Unexpected binary operator ${by(e.kind)}`)}function Wbt(e,t){let r=t.getLineAndCharacterOfPosition(e);return{column:r.character,line:r.line+1}}function Zme(e,t){let[r,n]=e.map(a=>Wbt(a,t));return{end:n,start:r}}function Wtc(e){if(e.kind===Tp.Block)switch(e.parent.kind){case Tp.Constructor:case Tp.GetAccessor:case Tp.SetAccessor:case Tp.ArrowFunction:case Tp.FunctionExpression:case Tp.FunctionDeclaration:case Tp.MethodDeclaration:return!0;default:return!1}return!0}function sJe(e,t){return[e.getStart(t),e.getEnd()]}function Otc(e){return e.kind>=au.FirstToken&&e.kind<=au.LastToken}function VBi(e){return e.kind>=au.JsxElement&&e.kind<=au.JsxAttribute}function yNr(e){return e.flags&IO.Let?"let":(e.flags&IO.AwaitUsing)===IO.AwaitUsing?"await using":e.flags&IO.Const?"const":e.flags&IO.Using?"using":"var"}function xme(e){let t=Ij(e);if(t!=null)for(let r of t)switch(r.kind){case au.PublicKeyword:return"public";case au.ProtectedKeyword:return"protected";case au.PrivateKeyword:return"private";default:break}}function fNe(e,t,r){return n(t);function n(a){return _za(a)&&a.pos===e.end?a:ztc(a.getChildren(r),o=>(o.pos<=e.pos&&o.end>e.end||o.pos===e.end)&&jtc(o,r)?n(o):void 0)}}function Mtc(e,t){let r=e;for(;r;){if(t(r))return r;r=r.parent}}function Htc(e){return!!Mtc(e,VBi)}function RSi(e){return ENe(!1,e,/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,t=>{let r=t.slice(1,-1);if(r[0]==="#"){let n=r[1]==="x"?parseInt(r.slice(2),16):parseInt(r.slice(1),10);return n>1114111?t:String.fromCodePoint(n)}return vtc[r]||t})}function INe(e){return e.kind===au.ComputedPropertyName}function NSi(e){return!!e.questionToken}function PBi(e){return e.type===hs.ChainExpression}function Ytc(e,t){return PBi(t)&&e.expression.kind!==Tp.ParenthesizedExpression}function Qtc(e){let t;if(LBi&&e.kind===au.Identifier?t=Svi(e):"originalKeywordKind"in e&&(t=e.originalKeywordKind),t)return t===au.NullKeyword?sD.Null:t>=au.FirstFutureReservedWord&&t<=au.LastKeyword?sD.Identifier:sD.Keyword;if(e.kind>=au.FirstKeyword&&e.kind<=au.LastFutureReservedWord)return e.kind===au.FalseKeyword||e.kind===au.TrueKeyword?sD.Boolean:sD.Keyword;if(e.kind>=au.FirstPunctuation&&e.kind<=au.LastPunctuation)return sD.Punctuator;if(e.kind>=au.NoSubstitutionTemplateLiteral&&e.kind<=au.TemplateTail)return sD.Template;switch(e.kind){case au.NumericLiteral:return sD.Numeric;case au.JsxText:return sD.JSXText;case au.StringLiteral:return e.parent.kind===au.JsxAttribute||e.parent.kind===au.JsxElement?sD.JSXText:sD.String;case au.RegularExpressionLiteral:return sD.RegularExpression;case au.Identifier:case au.ConstructorKeyword:case au.GetKeyword:case au.SetKeyword:default:}return e.kind===au.Identifier&&(VBi(e.parent)||e.parent.kind===au.PropertyAccessExpression&&Htc(e))?sD.JSXIdentifier:sD.Identifier}function Xtc(e,t){let r=e.kind===au.JsxText?e.getFullStart():e.getStart(t),n=e.getEnd(),a=t.text.slice(r,n),o=Qtc(e),l=[r,n],A=Zme(l,t);return o===sD.RegularExpression?{type:o,loc:A,range:l,regex:{flags:a.slice(a.lastIndexOf("/")+1),pattern:a.slice(1,a.lastIndexOf("/"))},value:a}:{type:o,loc:A,range:l,value:a}}function Jtc(e){let t=[];function r(n){Ltc(n)||Vtc(n)||(Otc(n)&&n.kind!==au.EndOfFileToken?t.push(Xtc(n,e)):n.getChildren(e).forEach(r))}return r(e),t}var Utc=class extends Error{fileName;location;constructor(e,t,r){super(e),this.fileName=t,this.location=r,Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:new.target.name})}get index(){return this.location.start.offset}get lineNumber(){return this.location.start.line}get column(){return this.location.start.column}};function WBi(e,t,r,n=r){let[a,o]=[r,n].map(l=>{let{character:A,line:f}=t.getLineAndCharacterOfPosition(l);return{column:A,line:f+1,offset:l}});return new Utc(e,t.fileName,{end:o,start:a})}function Ktc(e){var t;return!!("illegalDecorators"in e&&(t=e.illegalDecorators)!=null&&t.length)}function jtc(e,t){return e.kind===au.EndOfFileToken?!!e.jsDoc:e.getWidth(t)!==0}function ztc(e,t){if(e!==void 0)for(let r=0;r=0&&e.kind!==au.EndOfFileToken}function DSi(e){return!erc(e)}function trc(e){return Evi(e.parent,xvi)}function rrc(e){return vh(au.AbstractKeyword,e)}function nrc(e){if(e.parameters.length&&!yBi(e)){let t=e.parameters[0];if(irc(t))return t}return null}function irc(e){return OBi(e.name)}function src(e){switch(e.kind){case au.ClassDeclaration:return!0;case au.ClassExpression:return!0;case au.PropertyDeclaration:{let{parent:t}=e;return!!(zbt(t)||wNe(t)&&!rrc(e))}case au.GetAccessor:case au.SetAccessor:case au.MethodDeclaration:{let{parent:t}=e;return!!e.body&&(zbt(t)||wNe(t))}case au.Parameter:{let{parent:t}=e,r=t.parent;return!!t&&"body"in t&&!!t.body&&(t.kind===au.Constructor||t.kind===au.MethodDeclaration||t.kind===au.SetAccessor)&&nrc(t)!==e&&!!r&&r.kind===au.ClassDeclaration}}return!1}function lDr(e){switch(e.kind){case au.Identifier:return!0;case au.PropertyAccessExpression:case au.ElementAccessExpression:return!(e.flags&IO.OptionalChain);case au.ParenthesizedExpression:case au.TypeAssertionExpression:case au.AsExpression:case au.SatisfiesExpression:case au.ExpressionWithTypeArguments:case au.NonNullExpression:return lDr(e.expression);default:return!1}}function orc(e){let t=Ij(e),r=e;for(;(!t||t.length===0)&&EJe(r.parent);){let n=Ij(r.parent);n!=null&&n.length&&(t=n),r=r.parent}return t}var On=Tp;function arc(e){return WBi("message"in e&&e.message||e.messageText,e.file,e.start)}var sg,bNr,MBi,$p,kR,bNe,ENr,crc=class{constructor(e,t){k6a(this,sg),eJe(this,"allowPattern",!1),eJe(this,"ast"),eJe(this,"esTreeNodeToTSNodeMap",new WeakMap),eJe(this,"options"),eJe(this,"tsNodeToESTreeNodeMap",new WeakMap),this.ast=e,this.options={...t}}assertModuleSpecifier(e,t){var r;!t&&e.moduleSpecifier==null&&fg(this,sg,kR).call(this,e,"Module specifier must be a string literal."),e.moduleSpecifier&&((r=e.moduleSpecifier)==null?void 0:r.kind)!==On.StringLiteral&&fg(this,sg,kR).call(this,e.moduleSpecifier,"Module specifier must be a string literal.")}convertBindingNameWithTypeAnnotation(e,t,r){let n=this.convertPattern(e);return t&&(n.typeAnnotation=this.convertTypeAnnotation(t,r),this.fixParentLocation(n,n.typeAnnotation.range)),n}convertBodyExpressions(e,t){let r=Wtc(t);return e.map(n=>{let a=this.convertChild(n);if(r){if(a!=null&&a.expression&&uBi(n)&&tEt(n.expression)){let o=a.expression.raw;return a.directive=o.slice(1,-1),a}r=!1}return a}).filter(n=>n)}convertChainExpression(e,t){let{child:r,isOptional:n}=e.type===hs.MemberExpression?{child:e.object,isOptional:e.optional}:e.type===hs.CallExpression?{child:e.callee,isOptional:e.optional}:{child:e.expression,isOptional:!1},a=Ytc(t,r);if(!a&&!n)return e;if(a&&PBi(r)){let o=r.expression;e.type===hs.MemberExpression?e.object=o:e.type===hs.CallExpression?e.callee=o:e.expression=o}return this.createNode(t,{type:hs.ChainExpression,expression:e})}convertChild(e,t){return this.converter(e,t,!1)}convertPattern(e,t){return this.converter(e,t,!0)}convertTypeAnnotation(e,t){let r=t?.kind===On.FunctionType||t?.kind===On.ConstructorType?2:1,n=[e.getFullStart()-r,e.end],a=Zme(n,this.ast);return{type:hs.TSTypeAnnotation,loc:a,range:n,typeAnnotation:this.convertChild(e)}}convertTypeArgumentsToTypeParameterInstantiation(e,t){let r=fNe(e,this.ast,this.ast);return this.createNode(t,{type:hs.TSTypeParameterInstantiation,range:[e.pos-1,r.end],params:e.map(n=>this.convertChild(n))})}convertTSTypeParametersToTypeParametersDeclaration(e){let t=fNe(e,this.ast,this.ast),r=[e.pos-1,t.end];return{type:hs.TSTypeParameterDeclaration,loc:Zme(r,this.ast),range:r,params:e.map(n=>this.convertChild(n))}}convertParameters(e){return e!=null&&e.length?e.map(t=>{var r;let n=this.convertChild(t);return n.decorators=((r=yNe(t))==null?void 0:r.map(a=>this.convertChild(a)))??[],n}):[]}converter(e,t,r){if(!e)return null;fg(this,sg,MBi).call(this,e);let n=this.allowPattern;r!=null&&(this.allowPattern=r);let a=this.convertNode(e,t??e.parent);return this.registerTSNodeInNodeMap(e,a),this.allowPattern=n,a}convertImportAttributes(e){return e==null?[]:e.elements.map(t=>this.convertChild(t))}convertJSXIdentifier(e){let t=this.createNode(e,{type:hs.JSXIdentifier,name:e.getText()});return this.registerTSNodeInNodeMap(e,t),t}convertJSXNamespaceOrIdentifier(e){if(e.kind===Tp.JsxNamespacedName){let n=this.createNode(e,{type:hs.JSXNamespacedName,name:this.createNode(e.name,{type:hs.JSXIdentifier,name:e.name.text}),namespace:this.createNode(e.namespace,{type:hs.JSXIdentifier,name:e.namespace.text})});return this.registerTSNodeInNodeMap(e,n),n}let t=e.getText(),r=t.indexOf(":");if(r>0){let n=sJe(e,this.ast),a=this.createNode(e,{type:hs.JSXNamespacedName,range:n,name:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0]+r+1,n[1]],name:t.slice(r+1)}),namespace:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0],n[0]+r],name:t.slice(0,r)})});return this.registerTSNodeInNodeMap(e,a),a}return this.convertJSXIdentifier(e)}convertJSXTagName(e,t){let r;switch(e.kind){case On.PropertyAccessExpression:e.name.kind===On.PrivateIdentifier&&fg(this,sg,$p).call(this,e.name,"Non-private identifier expected."),r=this.createNode(e,{type:hs.JSXMemberExpression,object:this.convertJSXTagName(e.expression,t),property:this.convertJSXIdentifier(e.name)});break;case On.ThisKeyword:case On.Identifier:default:return this.convertJSXNamespaceOrIdentifier(e)}return this.registerTSNodeInNodeMap(e,r),r}convertMethodSignature(e){return this.createNode(e,{type:hs.TSMethodSignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),kind:(()=>{switch(e.kind){case On.GetAccessor:return"get";case On.SetAccessor:return"set";case On.MethodSignature:return"method"}})(),optional:NSi(e),params:this.convertParameters(e.parameters),readonly:vh(On.ReadonlyKeyword,e),returnType:e.type&&this.convertTypeAnnotation(e.type,e),static:vh(On.StaticKeyword,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}fixParentLocation(e,t){t[0]e.range[1]&&(e.range[1]=t[1],e.loc.end=Wbt(e.range[1],this.ast))}convertNode(e,t){var r,n,a,o,l,A,f,I;switch(e.kind){case On.SourceFile:return this.createNode(e,{type:hs.Program,range:[e.getStart(this.ast),e.endOfFileToken.end],body:this.convertBodyExpressions(e.statements,e),comments:void 0,sourceType:e.externalModuleIndicator?"module":"script",tokens:void 0});case On.Block:return this.createNode(e,{type:hs.BlockStatement,body:this.convertBodyExpressions(e.statements,e)});case On.Identifier:return $tc(e)?this.createNode(e,{type:hs.ThisExpression}):this.createNode(e,{type:hs.Identifier,decorators:[],name:e.text,optional:!1,typeAnnotation:void 0});case On.PrivateIdentifier:return this.createNode(e,{type:hs.PrivateIdentifier,name:e.text.slice(1)});case On.WithStatement:return this.createNode(e,{type:hs.WithStatement,body:this.convertChild(e.statement),object:this.convertChild(e.expression)});case On.ReturnStatement:return this.createNode(e,{type:hs.ReturnStatement,argument:this.convertChild(e.expression)});case On.LabeledStatement:return this.createNode(e,{type:hs.LabeledStatement,body:this.convertChild(e.statement),label:this.convertChild(e.label)});case On.ContinueStatement:return this.createNode(e,{type:hs.ContinueStatement,label:this.convertChild(e.label)});case On.BreakStatement:return this.createNode(e,{type:hs.BreakStatement,label:this.convertChild(e.label)});case On.IfStatement:return this.createNode(e,{type:hs.IfStatement,alternate:this.convertChild(e.elseStatement),consequent:this.convertChild(e.thenStatement),test:this.convertChild(e.expression)});case On.SwitchStatement:return e.caseBlock.clauses.filter(C=>C.kind===On.DefaultClause).length>1&&fg(this,sg,$p).call(this,e,"A 'default' clause cannot appear more than once in a 'switch' statement."),this.createNode(e,{type:hs.SwitchStatement,cases:e.caseBlock.clauses.map(C=>this.convertChild(C)),discriminant:this.convertChild(e.expression)});case On.CaseClause:case On.DefaultClause:return this.createNode(e,{type:hs.SwitchCase,consequent:e.statements.map(C=>this.convertChild(C)),test:e.kind===On.CaseClause?this.convertChild(e.expression):null});case On.ThrowStatement:return e.expression.end===e.expression.pos&&fg(this,sg,kR).call(this,e,"A throw statement must throw an expression."),this.createNode(e,{type:hs.ThrowStatement,argument:this.convertChild(e.expression)});case On.TryStatement:return this.createNode(e,{type:hs.TryStatement,block:this.convertChild(e.tryBlock),finalizer:this.convertChild(e.finallyBlock),handler:this.convertChild(e.catchClause)});case On.CatchClause:return(r=e.variableDeclaration)!=null&&r.initializer&&fg(this,sg,$p).call(this,e.variableDeclaration.initializer,"Catch clause variable cannot have an initializer."),this.createNode(e,{type:hs.CatchClause,body:this.convertChild(e.block),param:e.variableDeclaration?this.convertBindingNameWithTypeAnnotation(e.variableDeclaration.name,e.variableDeclaration.type):null});case On.WhileStatement:return this.createNode(e,{type:hs.WhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.DoStatement:return this.createNode(e,{type:hs.DoWhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.ForStatement:return this.createNode(e,{type:hs.ForStatement,body:this.convertChild(e.statement),init:this.convertChild(e.initializer),test:this.convertChild(e.condition),update:this.convertChild(e.incrementor)});case On.ForInStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForInStatement,body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.ForOfStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForOfStatement,await:!!(e.awaitModifier&&e.awaitModifier.kind===On.AwaitKeyword),body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.FunctionDeclaration:{let C=vh(On.DeclareKeyword,e),b=vh(On.AsyncKeyword,e),E=!!e.asteriskToken;C?e.body?fg(this,sg,$p).call(this,e,"An implementation cannot be declared in ambient contexts."):b?fg(this,sg,$p).call(this,e,"'async' modifier cannot be used in an ambient context."):E&&fg(this,sg,$p).call(this,e,"Generators are not allowed in an ambient context."):!e.body&&E&&fg(this,sg,$p).call(this,e,"A function signature cannot be declared as a generator.");let N=this.createNode(e,{type:e.body?hs.FunctionDeclaration:hs.TSDeclareFunction,async:b,body:this.convertChild(e.body)||void 0,declare:C,expression:!1,generator:E,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,N)}case On.VariableDeclaration:{let C=!!e.exclamationToken,b=this.convertChild(e.initializer),E=this.convertBindingNameWithTypeAnnotation(e.name,e.type,e);return C&&(b?fg(this,sg,$p).call(this,e,"Declarations with initializers cannot also have definite assignment assertions."):(E.type!==hs.Identifier||!E.typeAnnotation)&&fg(this,sg,$p).call(this,e,"Declarations with definite assignment assertions must also have type annotations.")),this.createNode(e,{type:hs.VariableDeclarator,definite:C,id:E,init:b})}case On.VariableStatement:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarationList.declarations.map(b=>this.convertChild(b)),declare:vh(On.DeclareKeyword,e),kind:yNr(e.declarationList)});return C.declarations.length||fg(this,sg,kR).call(this,e,"A variable declaration list must have at least one variable declarator."),(C.kind==="using"||C.kind==="await using")&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init==null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations must be initialized.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),(C.declare||["await using","const","using"].includes(C.kind))&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].definite&&fg(this,sg,$p).call(this,b,"A definite assignment assertion '!' is not permitted in this context.")}),C.declare&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init&&(["let","var"].includes(C.kind)||C.declarations[E].id.typeAnnotation)&&fg(this,sg,$p).call(this,b,"Initializers are not permitted in ambient contexts.")}),this.fixExports(e,C)}case On.VariableDeclarationList:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarations.map(b=>this.convertChild(b)),declare:!1,kind:yNr(e)});return(C.kind==="using"||C.kind==="await using")&&e.declarations.forEach((b,E)=>{C.declarations[E].init!=null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations may not be initialized in for statement.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),C}case On.ExpressionStatement:return this.createNode(e,{type:hs.ExpressionStatement,directive:void 0,expression:this.convertChild(e.expression)});case On.ThisKeyword:return this.createNode(e,{type:hs.ThisExpression});case On.ArrayLiteralExpression:return this.allowPattern?this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0}):this.createNode(e,{type:hs.ArrayExpression,elements:e.elements.map(C=>this.convertChild(C))});case On.ObjectLiteralExpression:{if(this.allowPattern)return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.properties.map(b=>this.convertPattern(b)),typeAnnotation:void 0});let C=[];for(let b of e.properties)(b.kind===On.GetAccessor||b.kind===On.SetAccessor||b.kind===On.MethodDeclaration)&&!b.body&&fg(this,sg,kR).call(this,b.end-1,"'{' expected."),C.push(this.convertChild(b));return this.createNode(e,{type:hs.ObjectExpression,properties:C})}case On.PropertyAssignment:{let{exclamationToken:C,questionToken:b}=e;return b&&fg(this,sg,$p).call(this,b,"A property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A property assignment cannot have an exclamation token."),this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!1,value:this.converter(e.initializer,e,this.allowPattern)})}case On.ShorthandPropertyAssignment:{let{exclamationToken:C,modifiers:b,questionToken:E}=e;return b&&fg(this,sg,$p).call(this,b[0],"A shorthand property assignment cannot have modifiers."),E&&fg(this,sg,$p).call(this,E,"A shorthand property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A shorthand property assignment cannot have an exclamation token."),e.objectAssignmentInitializer?this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.name),optional:!1,right:this.convertChild(e.objectAssignmentInitializer),typeAnnotation:void 0})}):this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.convertChild(e.name)})}case On.ComputedPropertyName:return this.convertChild(e.expression);case On.PropertyDeclaration:{let C=vh(On.AbstractKeyword,e);C&&e.initializer&&fg(this,sg,$p).call(this,e.initializer,"Abstract property cannot have an initializer.");let b=vh(On.AccessorKeyword,e),E=b?C?hs.TSAbstractAccessorProperty:hs.AccessorProperty:C?hs.TSAbstractPropertyDefinition:hs.PropertyDefinition,N=this.convertChild(e.name);return this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),declare:vh(On.DeclareKeyword,e),decorators:((n=yNe(e))==null?void 0:n.map(B=>this.convertChild(B)))??[],definite:!!e.exclamationToken,key:N,optional:(N.type===hs.Literal||e.name.kind===On.Identifier||e.name.kind===On.ComputedPropertyName||e.name.kind===On.PrivateIdentifier)&&!!e.questionToken,override:vh(On.OverrideKeyword,e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e),value:C?null:this.convertChild(e.initializer)})}case On.GetAccessor:case On.SetAccessor:if(e.parent.kind===On.InterfaceDeclaration||e.parent.kind===On.TypeLiteral)return this.convertMethodSignature(e);case On.MethodDeclaration:{let C=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:null,params:[],returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});C.typeParameters&&this.fixParentLocation(C,C.typeParameters.range);let b;if(t.kind===On.ObjectLiteralExpression)C.params=e.parameters.map(E=>this.convertChild(E)),b=this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:e.kind===On.MethodDeclaration,optional:!!e.questionToken,shorthand:!1,value:C});else{C.params=this.convertParameters(e.parameters);let E=vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition;b=this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),decorators:((a=yNe(e))==null?void 0:a.map(N=>this.convertChild(N)))??[],key:this.convertChild(e.name),kind:"method",optional:!!e.questionToken,override:vh(On.OverrideKeyword,e),static:vh(On.StaticKeyword,e),value:C})}return e.kind===On.GetAccessor?b.kind="get":e.kind===On.SetAccessor?b.kind="set":!b.static&&e.name.kind===On.StringLiteral&&e.name.text==="constructor"&&b.type!==hs.Property&&(b.kind="constructor"),b}case On.Constructor:{let C=Ftc(e),b=(C&&fNe(C,e,this.ast))??e.getFirstToken(),E=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:!1,body:this.convertChild(e.body),declare:!1,expression:!1,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});E.typeParameters&&this.fixParentLocation(E,E.typeParameters.range);let N=this.createNode(e,{type:hs.Identifier,range:[b.getStart(this.ast),b.end],decorators:[],name:"constructor",optional:!1,typeAnnotation:void 0}),B=vh(On.StaticKeyword,e);return this.createNode(e,{type:vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition,accessibility:xme(e),computed:!1,decorators:[],key:N,kind:B?"method":"constructor",optional:!1,override:!1,static:B,value:E})}case On.FunctionExpression:return this.createNode(e,{type:hs.FunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.SuperKeyword:return this.createNode(e,{type:hs.Super});case On.ArrayBindingPattern:return this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0});case On.OmittedExpression:return null;case On.ObjectBindingPattern:return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.elements.map(C=>this.convertPattern(C)),typeAnnotation:void 0});case On.BindingElement:{if(t.kind===On.ArrayBindingPattern){let b=this.convertChild(e.name,t);return e.initializer?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:b,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}):e.dotDotDotToken?this.createNode(e,{type:hs.RestElement,argument:b,decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):b}let C;return e.dotDotDotToken?C=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.propertyName??e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):C=this.createNode(e,{type:hs.Property,computed:!!(e.propertyName&&e.propertyName.kind===On.ComputedPropertyName),key:this.convertChild(e.propertyName??e.name),kind:"init",method:!1,optional:!1,shorthand:!e.propertyName,value:this.convertChild(e.name)}),e.initializer&&(C.value=this.createNode(e,{type:hs.AssignmentPattern,range:[e.name.getStart(this.ast),e.initializer.end],decorators:[],left:this.convertChild(e.name),optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0})),C}case On.ArrowFunction:return this.createNode(e,{type:hs.ArrowFunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),expression:e.body.kind!==On.Block,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.YieldExpression:return this.createNode(e,{type:hs.YieldExpression,argument:this.convertChild(e.expression),delegate:!!e.asteriskToken});case On.AwaitExpression:return this.createNode(e,{type:hs.AwaitExpression,argument:this.convertChild(e.expression)});case On.NoSubstitutionTemplateLiteral:return this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.createNode(e,{type:hs.TemplateElement,tail:!0,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-1)}})]});case On.TemplateExpression:{let C=this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.convertChild(e.head)]});return e.templateSpans.forEach(b=>{C.expressions.push(this.convertChild(b.expression)),C.quasis.push(this.convertChild(b.literal))}),C}case On.TaggedTemplateExpression:return this.createNode(e,{type:hs.TaggedTemplateExpression,quasi:this.convertChild(e.template),tag:this.convertChild(e.tag),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.TemplateHead:case On.TemplateMiddle:case On.TemplateTail:{let C=e.kind===On.TemplateTail;return this.createNode(e,{type:hs.TemplateElement,tail:C,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-(C?1:2))}})}case On.SpreadAssignment:case On.SpreadElement:return this.allowPattern?this.createNode(e,{type:hs.RestElement,argument:this.convertPattern(e.expression),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):this.createNode(e,{type:hs.SpreadElement,argument:this.convertChild(e.expression)});case On.Parameter:{let C,b;return e.dotDotDotToken?C=b=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):e.initializer?(C=this.convertChild(e.name),b=this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:C,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}),Ij(e)&&(b.range[0]=C.range[0],b.loc=Zme(b.range,this.ast))):C=b=this.convertChild(e.name,t),e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),this.fixParentLocation(C,C.typeAnnotation.range)),e.questionToken&&(e.questionToken.end>C.range[1]&&(C.range[1]=e.questionToken.end,C.loc.end=Wbt(C.range[1],this.ast)),C.optional=!0),Ij(e)?this.createNode(e,{type:hs.TSParameterProperty,accessibility:xme(e),decorators:[],override:vh(On.OverrideKeyword,e),parameter:b,readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e)}):b}case On.ClassDeclaration:!e.name&&(!vh(Tp.ExportKeyword,e)||!vh(Tp.DefaultKeyword,e))&&fg(this,sg,kR).call(this,e,"A class declaration without the 'default' modifier must have a name.");case On.ClassExpression:{let C=e.heritageClauses??[],b=e.kind===On.ClassDeclaration?hs.ClassDeclaration:hs.ClassExpression,E,N;for(let F of C){let{token:Q,types:X}=F;X.length===0&&fg(this,sg,kR).call(this,F,`'${by(Q)}' list cannot be empty.`),Q===On.ExtendsKeyword?(E&&fg(this,sg,kR).call(this,F,"'extends' clause already seen."),N&&fg(this,sg,kR).call(this,F,"'extends' clause must precede 'implements' clause."),X.length>1&&fg(this,sg,kR).call(this,X[1],"Classes can only extend a single class."),E??(E=F)):Q===On.ImplementsKeyword&&(N&&fg(this,sg,kR).call(this,F,"'implements' clause already seen."),N??(N=F))}let B=this.createNode(e,{type:b,abstract:vh(On.AbstractKeyword,e),body:this.createNode(e,{type:hs.ClassBody,range:[e.members.pos-1,e.end],body:e.members.filter(Gtc).map(F=>this.convertChild(F))}),declare:vh(On.DeclareKeyword,e),decorators:((o=yNe(e))==null?void 0:o.map(F=>this.convertChild(F)))??[],id:this.convertChild(e.name),implements:N?.types.map(F=>this.convertChild(F))??[],superClass:E!=null&&E.types[0]?this.convertChild(E.types[0].expression):null,superTypeArguments:void 0,typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return(l=E?.types[0])!=null&&l.typeArguments&&(B.superTypeArguments=this.convertTypeArgumentsToTypeParameterInstantiation(E.types[0].typeArguments,E.types[0])),this.fixExports(e,B)}case On.ModuleBlock:return this.createNode(e,{type:hs.TSModuleBlock,body:this.convertBodyExpressions(e.statements,e)});case On.ImportDeclaration:{this.assertModuleSpecifier(e,!1);let C=this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),importKind:"value",source:this.convertChild(e.moduleSpecifier),specifiers:[]},"assertions","attributes",!0));if(e.importClause&&(e.importClause.isTypeOnly&&(C.importKind="type"),e.importClause.name&&C.specifiers.push(this.convertChild(e.importClause)),e.importClause.namedBindings))switch(e.importClause.namedBindings.kind){case On.NamespaceImport:C.specifiers.push(this.convertChild(e.importClause.namedBindings));break;case On.NamedImports:C.specifiers.push(...e.importClause.namedBindings.elements.map(b=>this.convertChild(b)));break}return C}case On.NamespaceImport:return this.createNode(e,{type:hs.ImportNamespaceSpecifier,local:this.convertChild(e.name)});case On.ImportSpecifier:return this.createNode(e,{type:hs.ImportSpecifier,imported:this.convertChild(e.propertyName??e.name),importKind:e.isTypeOnly?"type":"value",local:this.convertChild(e.name)});case On.ImportClause:{let C=this.convertChild(e.name);return this.createNode(e,{type:hs.ImportDefaultSpecifier,range:C.range,local:C})}case On.ExportDeclaration:return((A=e.exportClause)==null?void 0:A.kind)===On.NamedExports?(this.assertModuleSpecifier(e,!0),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),declaration:null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier),specifiers:e.exportClause.elements.map(C=>this.convertChild(C,e))},"assertions","attributes",!0))):(this.assertModuleSpecifier(e,!1),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportAllDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),exported:((f=e.exportClause)==null?void 0:f.kind)===On.NamespaceExport?this.convertChild(e.exportClause.name):null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier)},"assertions","attributes",!0)));case On.ExportSpecifier:{let C=e.propertyName??e.name;return C.kind===On.StringLiteral&&t.kind===On.ExportDeclaration&&((I=t.moduleSpecifier)==null?void 0:I.kind)!==On.StringLiteral&&fg(this,sg,$p).call(this,C,"A string literal cannot be used as a local exported binding without `from`."),this.createNode(e,{type:hs.ExportSpecifier,exported:this.convertChild(e.name),exportKind:e.isTypeOnly?"type":"value",local:this.convertChild(C)})}case On.ExportAssignment:return e.isExportEquals?this.createNode(e,{type:hs.TSExportAssignment,expression:this.convertChild(e.expression)}):this.createNode(e,{type:hs.ExportDefaultDeclaration,declaration:this.convertChild(e.expression),exportKind:"value"});case On.PrefixUnaryExpression:case On.PostfixUnaryExpression:{let C=yce(e.operator);return C==="++"||C==="--"?(lDr(e.operand)||fg(this,sg,kR).call(this,e.operand,"Invalid left-hand side expression in unary operation"),this.createNode(e,{type:hs.UpdateExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})):this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})}case On.DeleteExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"delete",prefix:!0});case On.VoidExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"void",prefix:!0});case On.TypeOfExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"typeof",prefix:!0});case On.TypeOperator:return this.createNode(e,{type:hs.TSTypeOperator,operator:yce(e.operator),typeAnnotation:this.convertChild(e.type)});case On.BinaryExpression:{if(Ztc(e.operatorToken)){let b=this.createNode(e,{type:hs.SequenceExpression,expressions:[]}),E=this.convertChild(e.left);return E.type===hs.SequenceExpression&&e.left.kind!==On.ParenthesizedExpression?b.expressions.push(...E.expressions):b.expressions.push(E),b.expressions.push(this.convertChild(e.right)),b}let C=Ptc(e.operatorToken);return this.allowPattern&&C.type===hs.AssignmentExpression?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.left,e),optional:!1,right:this.convertChild(e.right),typeAnnotation:void 0}):this.createNode(e,{...C,left:this.converter(e.left,e,C.type===hs.AssignmentExpression),right:this.convertChild(e.right)})}case On.PropertyAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.name),E=this.createNode(e,{type:hs.MemberExpression,computed:!1,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.ElementAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.argumentExpression),E=this.createNode(e,{type:hs.MemberExpression,computed:!0,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.CallExpression:{if(e.expression.kind===On.ImportKeyword)return e.arguments.length!==1&&e.arguments.length!==2&&fg(this,sg,kR).call(this,e.arguments[2]??e,"Dynamic import requires exactly one or two arguments."),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportExpression,options:e.arguments[1]?this.convertChild(e.arguments[1]):null,source:this.convertChild(e.arguments[0])},"attributes","options",!0));let C=this.convertChild(e.expression),b=e.arguments.map(B=>this.convertChild(B)),E=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),N=this.createNode(e,{type:hs.CallExpression,arguments:b,callee:C,optional:e.questionDotToken!=null,typeArguments:E});return this.convertChainExpression(N,e)}case On.NewExpression:{let C=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e);return this.createNode(e,{type:hs.NewExpression,arguments:e.arguments?e.arguments.map(b=>this.convertChild(b)):[],callee:this.convertChild(e.expression),typeArguments:C})}case On.ConditionalExpression:return this.createNode(e,{type:hs.ConditionalExpression,alternate:this.convertChild(e.whenFalse),consequent:this.convertChild(e.whenTrue),test:this.convertChild(e.condition)});case On.MetaProperty:return this.createNode(e,{type:hs.MetaProperty,meta:this.createNode(e.getFirstToken(),{type:hs.Identifier,decorators:[],name:yce(e.keywordToken),optional:!1,typeAnnotation:void 0}),property:this.convertChild(e.name)});case On.Decorator:return this.createNode(e,{type:hs.Decorator,expression:this.convertChild(e.expression)});case On.StringLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:t.kind===On.JsxAttribute?RSi(e.text):e.text});case On.NumericLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:Number(e.text)});case On.BigIntLiteral:{let C=sJe(e,this.ast),b=this.ast.text.slice(C[0],C[1]),E=ENe(!1,b.slice(0,-1),"_",""),N=typeof BigInt<"u"?BigInt(E):null;return this.createNode(e,{type:hs.Literal,range:C,bigint:N==null?E:String(N),raw:b,value:N})}case On.RegularExpressionLiteral:{let C=e.text.slice(1,e.text.lastIndexOf("/")),b=e.text.slice(e.text.lastIndexOf("/")+1),E=null;try{E=new RegExp(C,b)}catch{}return this.createNode(e,{type:hs.Literal,raw:e.text,regex:{flags:b,pattern:C},value:E})}case On.TrueKeyword:return this.createNode(e,{type:hs.Literal,raw:"true",value:!0});case On.FalseKeyword:return this.createNode(e,{type:hs.Literal,raw:"false",value:!1});case On.NullKeyword:return this.createNode(e,{type:hs.Literal,raw:"null",value:null});case On.EmptyStatement:return this.createNode(e,{type:hs.EmptyStatement});case On.DebuggerStatement:return this.createNode(e,{type:hs.DebuggerStatement});case On.JsxElement:return this.createNode(e,{type:hs.JSXElement,children:e.children.map(C=>this.convertChild(C)),closingElement:this.convertChild(e.closingElement),openingElement:this.convertChild(e.openingElement)});case On.JsxFragment:return this.createNode(e,{type:hs.JSXFragment,children:e.children.map(C=>this.convertChild(C)),closingFragment:this.convertChild(e.closingFragment),openingFragment:this.convertChild(e.openingFragment)});case On.JsxSelfClosingElement:return this.createNode(e,{type:hs.JSXElement,children:[],closingElement:null,openingElement:this.createNode(e,{type:hs.JSXOpeningElement,range:sJe(e,this.ast),attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!0,typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):void 0})});case On.JsxOpeningElement:return this.createNode(e,{type:hs.JSXOpeningElement,attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!1,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.JsxClosingElement:return this.createNode(e,{type:hs.JSXClosingElement,name:this.convertJSXTagName(e.tagName,e)});case On.JsxOpeningFragment:return this.createNode(e,{type:hs.JSXOpeningFragment});case On.JsxClosingFragment:return this.createNode(e,{type:hs.JSXClosingFragment});case On.JsxExpression:{let C=e.expression?this.convertChild(e.expression):this.createNode(e,{type:hs.JSXEmptyExpression,range:[e.getStart(this.ast)+1,e.getEnd()-1]});return e.dotDotDotToken?this.createNode(e,{type:hs.JSXSpreadChild,expression:C}):this.createNode(e,{type:hs.JSXExpressionContainer,expression:C})}case On.JsxAttribute:return this.createNode(e,{type:hs.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(e.name),value:this.convertChild(e.initializer)});case On.JsxText:{let C=e.getFullStart(),b=e.getEnd(),E=this.ast.text.slice(C,b);return this.createNode(e,{type:hs.JSXText,range:[C,b],raw:E,value:RSi(E)})}case On.JsxSpreadAttribute:return this.createNode(e,{type:hs.JSXSpreadAttribute,argument:this.convertChild(e.expression)});case On.QualifiedName:return this.createNode(e,{type:hs.TSQualifiedName,left:this.convertChild(e.left),right:this.convertChild(e.right)});case On.TypeReference:return this.createNode(e,{type:hs.TSTypeReference,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),typeName:this.convertChild(e.typeName)});case On.TypeParameter:return this.createNode(e,{type:hs.TSTypeParameter,const:vh(On.ConstKeyword,e),constraint:e.constraint&&this.convertChild(e.constraint),default:e.default?this.convertChild(e.default):void 0,in:vh(On.InKeyword,e),name:this.convertChild(e.name),out:vh(On.OutKeyword,e)});case On.ThisType:return this.createNode(e,{type:hs.TSThisType});case On.AnyKeyword:case On.BigIntKeyword:case On.BooleanKeyword:case On.NeverKeyword:case On.NumberKeyword:case On.ObjectKeyword:case On.StringKeyword:case On.SymbolKeyword:case On.UnknownKeyword:case On.VoidKeyword:case On.UndefinedKeyword:case On.IntrinsicKeyword:return this.createNode(e,{type:hs[`TS${On[e.kind]}`]});case On.NonNullExpression:{let C=this.createNode(e,{type:hs.TSNonNullExpression,expression:this.convertChild(e.expression)});return this.convertChainExpression(C,e)}case On.TypeLiteral:return this.createNode(e,{type:hs.TSTypeLiteral,members:e.members.map(C=>this.convertChild(C))});case On.ArrayType:return this.createNode(e,{type:hs.TSArrayType,elementType:this.convertChild(e.elementType)});case On.IndexedAccessType:return this.createNode(e,{type:hs.TSIndexedAccessType,indexType:this.convertChild(e.indexType),objectType:this.convertChild(e.objectType)});case On.ConditionalType:return this.createNode(e,{type:hs.TSConditionalType,checkType:this.convertChild(e.checkType),extendsType:this.convertChild(e.extendsType),falseType:this.convertChild(e.falseType),trueType:this.convertChild(e.trueType)});case On.TypeQuery:return this.createNode(e,{type:hs.TSTypeQuery,exprName:this.convertChild(e.exprName),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.MappedType:return e.members&&e.members.length>0&&fg(this,sg,kR).call(this,e.members[0],"A mapped type may not declare properties or methods."),this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSMappedType,constraint:this.convertChild(e.typeParameter.constraint),key:this.convertChild(e.typeParameter.name),nameType:this.convertChild(e.nameType)??null,optional:e.questionToken&&(e.questionToken.kind===On.QuestionToken||yce(e.questionToken.kind)),readonly:e.readonlyToken&&(e.readonlyToken.kind===On.ReadonlyKeyword||yce(e.readonlyToken.kind)),typeAnnotation:e.type&&this.convertChild(e.type)},"typeParameter","'constraint' and 'key'",this.convertChild(e.typeParameter)));case On.ParenthesizedExpression:return this.convertChild(e.expression,t);case On.TypeAliasDeclaration:{let C=this.createNode(e,{type:hs.TSTypeAliasDeclaration,declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name),typeAnnotation:this.convertChild(e.type),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,C)}case On.MethodSignature:return this.convertMethodSignature(e);case On.PropertySignature:{let{initializer:C}=e;return C&&fg(this,sg,$p).call(this,C,"A property signature cannot have an initializer."),this.createNode(e,{type:hs.TSPropertySignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),optional:NSi(e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)})}case On.IndexSignature:return this.createNode(e,{type:hs.TSIndexSignature,accessibility:xme(e),parameters:e.parameters.map(C=>this.convertChild(C)),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)});case On.ConstructorType:return this.createNode(e,{type:hs.TSConstructorType,abstract:vh(On.AbstractKeyword,e),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.FunctionType:{let{modifiers:C}=e;C&&fg(this,sg,$p).call(this,C[0],"A function type cannot have modifiers.")}case On.ConstructSignature:case On.CallSignature:{let C=e.kind===On.ConstructSignature?hs.TSConstructSignatureDeclaration:e.kind===On.CallSignature?hs.TSCallSignatureDeclaration:hs.TSFunctionType;return this.createNode(e,{type:C,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}case On.ExpressionWithTypeArguments:{let C=t.kind,b=C===On.InterfaceDeclaration?hs.TSInterfaceHeritage:C===On.HeritageClause?hs.TSClassImplements:hs.TSInstantiationExpression;return this.createNode(e,{type:b,expression:this.convertChild(e.expression),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)})}case On.InterfaceDeclaration:{let C=e.heritageClauses??[],b=[];for(let N of C){N.token!==On.ExtendsKeyword&&fg(this,sg,$p).call(this,N,N.token===On.ImplementsKeyword?"Interface declaration cannot have 'implements' clause.":"Unexpected token.");for(let B of N.types)b.push(this.convertChild(B,e))}let E=this.createNode(e,{type:hs.TSInterfaceDeclaration,body:this.createNode(e,{type:hs.TSInterfaceBody,range:[e.members.pos-1,e.end],body:e.members.map(N=>this.convertChild(N))}),declare:vh(On.DeclareKeyword,e),extends:b,id:this.convertChild(e.name),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,E)}case On.TypePredicate:{let C=this.createNode(e,{type:hs.TSTypePredicate,asserts:e.assertsModifier!=null,parameterName:this.convertChild(e.parameterName),typeAnnotation:null});return e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),C.typeAnnotation.loc=C.typeAnnotation.typeAnnotation.loc,C.typeAnnotation.range=C.typeAnnotation.typeAnnotation.range),C}case On.ImportType:{let C=sJe(e,this.ast);if(e.isTypeOf){let E=fNe(e.getFirstToken(),e,this.ast);C[0]=E.getStart(this.ast)}let b=this.createNode(e,{type:hs.TSImportType,range:C,argument:this.convertChild(e.argument),attributes:this.convertImportAttributes(e.attributes),qualifier:this.convertChild(e.qualifier),typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null});return e.isTypeOf?this.createNode(e,{type:hs.TSTypeQuery,exprName:b,typeArguments:void 0}):b}case On.EnumDeclaration:{let C=e.members.map(E=>this.convertChild(E)),b=this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSEnumDeclaration,body:this.createNode(e,{type:hs.TSEnumBody,range:[e.members.pos-1,e.end],members:C}),const:vh(On.ConstKeyword,e),declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name)},"members","'body.members'",e.members.map(E=>this.convertChild(E))));return this.fixExports(e,b)}case On.EnumMember:return this.createNode(e,{type:hs.TSEnumMember,computed:e.name.kind===Tp.ComputedPropertyName,id:this.convertChild(e.name),initializer:e.initializer&&this.convertChild(e.initializer)});case On.ModuleDeclaration:{let C=vh(On.DeclareKeyword,e),b=this.createNode(e,{type:hs.TSModuleDeclaration,...(()=>{if(e.flags&IO.GlobalAugmentation){let N=this.convertChild(e.name),B=this.convertChild(e.body);return(B==null||B.type===hs.TSModuleDeclaration)&&fg(this,sg,kR).call(this,e.body??e,"Expected a valid module body"),N.type!==hs.Identifier&&fg(this,sg,kR).call(this,e.name,"global module augmentation must have an Identifier id"),{body:B,declare:!1,global:!1,id:N,kind:"global"}}if(!(e.flags&IO.Namespace)){let N=this.convertChild(e.body);return{kind:"module",...N!=null?{body:N}:{},declare:!1,global:!1,id:this.convertChild(e.name)}}e.body==null&&fg(this,sg,kR).call(this,e,"Expected a module body"),e.name.kind!==Tp.Identifier&&fg(this,sg,kR).call(this,e.name,"`namespace`s must have an Identifier id");let E=this.createNode(e.name,{type:hs.Identifier,range:[e.name.getStart(this.ast),e.name.getEnd()],decorators:[],name:e.name.text,optional:!1,typeAnnotation:void 0});for(;e.body&&EJe(e.body)&&e.body.name;){e=e.body,C||(C=vh(On.DeclareKeyword,e));let N=e.name,B=this.createNode(N,{type:hs.Identifier,range:[N.getStart(this.ast),N.getEnd()],decorators:[],name:N.text,optional:!1,typeAnnotation:void 0});E=this.createNode(N,{type:hs.TSQualifiedName,range:[E.range[0],B.range[1]],left:E,right:B})}return{body:this.convertChild(e.body),declare:!1,global:!1,id:E,kind:"namespace"}})()});return b.declare=C,e.flags&IO.GlobalAugmentation&&(b.global=!0),this.fixExports(e,b)}case On.ParenthesizedType:return this.convertChild(e.type);case On.UnionType:return this.createNode(e,{type:hs.TSUnionType,types:e.types.map(C=>this.convertChild(C))});case On.IntersectionType:return this.createNode(e,{type:hs.TSIntersectionType,types:e.types.map(C=>this.convertChild(C))});case On.AsExpression:return this.createNode(e,{type:hs.TSAsExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.InferType:return this.createNode(e,{type:hs.TSInferType,typeParameter:this.convertChild(e.typeParameter)});case On.LiteralType:return e.literal.kind===On.NullKeyword?this.createNode(e.literal,{type:hs.TSNullKeyword}):this.createNode(e,{type:hs.TSLiteralType,literal:this.convertChild(e.literal)});case On.TypeAssertionExpression:return this.createNode(e,{type:hs.TSTypeAssertion,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.ImportEqualsDeclaration:return this.fixExports(e,this.createNode(e,{type:hs.TSImportEqualsDeclaration,id:this.convertChild(e.name),importKind:e.isTypeOnly?"type":"value",moduleReference:this.convertChild(e.moduleReference)}));case On.ExternalModuleReference:return e.expression.kind!==On.StringLiteral&&fg(this,sg,$p).call(this,e.expression,"String literal expected."),this.createNode(e,{type:hs.TSExternalModuleReference,expression:this.convertChild(e.expression)});case On.NamespaceExportDeclaration:return this.createNode(e,{type:hs.TSNamespaceExportDeclaration,id:this.convertChild(e.name)});case On.AbstractKeyword:return this.createNode(e,{type:hs.TSAbstractKeyword});case On.TupleType:{let C=e.elements.map(b=>this.convertChild(b));return this.createNode(e,{type:hs.TSTupleType,elementTypes:C})}case On.NamedTupleMember:{let C=this.createNode(e,{type:hs.TSNamedTupleMember,elementType:this.convertChild(e.type,e),label:this.convertChild(e.name,e),optional:e.questionToken!=null});return e.dotDotDotToken?(C.range[0]=C.label.range[0],C.loc.start=C.label.loc.start,this.createNode(e,{type:hs.TSRestType,typeAnnotation:C})):C}case On.OptionalType:return this.createNode(e,{type:hs.TSOptionalType,typeAnnotation:this.convertChild(e.type)});case On.RestType:return this.createNode(e,{type:hs.TSRestType,typeAnnotation:this.convertChild(e.type)});case On.TemplateLiteralType:{let C=this.createNode(e,{type:hs.TSTemplateLiteralType,quasis:[this.convertChild(e.head)],types:[]});return e.templateSpans.forEach(b=>{C.types.push(this.convertChild(b.type)),C.quasis.push(this.convertChild(b.literal))}),C}case On.ClassStaticBlockDeclaration:return this.createNode(e,{type:hs.StaticBlock,body:this.convertBodyExpressions(e.body.statements,e)});case On.AssertEntry:case On.ImportAttribute:return this.createNode(e,{type:hs.ImportAttribute,key:this.convertChild(e.name),value:this.convertChild(e.value)});case On.SatisfiesExpression:return this.createNode(e,{type:hs.TSSatisfiesExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});default:return this.deeplyCopy(e)}}createNode(e,t){let r=t;return r.range??(r.range=sJe(e,this.ast)),r.loc??(r.loc=Zme(r.range,this.ast)),r&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(r,e),r}convertProgram(){return this.converter(this.ast)}deeplyCopy(e){e.kind===Tp.JSDocFunctionType&&fg(this,sg,$p).call(this,e,"JSDoc types can only be used inside documentation comments.");let t=`TS${On[e.kind]}`;if(this.options.errorOnUnknownASTType&&!hs[t])throw new Error(`Unknown AST_NODE_TYPE: "${t}"`);let r=this.createNode(e,{type:t});"type"in e&&(r.typeAnnotation=e.type&&"kind"in e.type&&Nza(e.type)?this.convertTypeAnnotation(e.type,e):null),"typeArguments"in e&&(r.typeArguments=e.typeArguments&&"pos"in e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null),"typeParameters"in e&&(r.typeParameters=e.typeParameters&&"pos"in e.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters):null);let n=yNe(e);n!=null&&n.length&&(r.decorators=n.map(o=>this.convertChild(o)));let a=new Set(["_children","decorators","end","flags","heritageClauses","illegalDecorators","jsDoc","kind","locals","localSymbol","modifierFlagsCache","modifiers","nextContainer","parent","pos","symbol","transformFlags","type","typeArguments","typeParameters"]);return Object.entries(e).filter(([o])=>!a.has(o)).forEach(([o,l])=>{Array.isArray(l)?r[o]=l.map(A=>this.convertChild(A)):l&&typeof l=="object"&&l.kind?r[o]=this.convertChild(l):r[o]=l}),r}fixExports(e,t){let r=EJe(e)&&e.flags&IO.Namespace?orc(e):Ij(e);if(r?.[0].kind===On.ExportKeyword){this.registerTSNodeInNodeMap(e,t);let n=r[0],a=r[1],o=a?.kind===On.DefaultKeyword,l=o?fNe(a,this.ast,this.ast):fNe(n,this.ast,this.ast);if(t.range[0]=l.getStart(this.ast),t.loc=Zme(t.range,this.ast),o)return this.createNode(e,{type:hs.ExportDefaultDeclaration,range:[n.getStart(this.ast),t.range[1]],declaration:t,exportKind:"value"});let A=t.type===hs.TSInterfaceDeclaration||t.type===hs.TSTypeAliasDeclaration,f="declare"in t&&t.declare;return this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,range:[n.getStart(this.ast),t.range[1]],attributes:[],declaration:t,exportKind:A||f?"type":"value",source:null,specifiers:[]},"assertions","attributes",!0))}return t}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}registerTSNodeInNodeMap(e,t){t&&this.options.shouldPreserveNodeMaps&&!this.tsNodeToESTreeNodeMap.has(e)&&this.tsNodeToESTreeNodeMap.set(e,t)}};sg=new WeakSet,bNr=function(e,t){let r=t===Tp.ForInStatement?"for...in":"for...of";if(gec(e)){e.declarations.length!==1&&fg(this,sg,$p).call(this,e,`Only a single variable declaration is allowed in a '${r}' statement.`);let n=e.declarations[0];n.initializer?fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have an initializer.`):n.type&&fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have a type annotation.`),t===Tp.ForInStatement&&e.flags&IO.Using&&fg(this,sg,$p).call(this,e,"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.")}else!lDr(e)&&e.kind!==Tp.ObjectLiteralExpression&&e.kind!==Tp.ArrayLiteralExpression&&fg(this,sg,$p).call(this,e,`The left-hand side of a '${r}' statement must be a variable or a property access.`)},MBi=function(e){if(!this.options.allowInvalidAST){Ktc(e)&&fg(this,sg,$p).call(this,e.illegalDecorators[0],"Decorators are not valid here.");for(let t of yNe(e,!0)??[])src(e)||(INr(e)&&!DSi(e.body)?fg(this,sg,$p).call(this,t,"A decorator can only decorate a method implementation, not an overload."):fg(this,sg,$p).call(this,t,"Decorators are not valid here."));for(let t of Ij(e,!0)??[]){if(t.kind!==On.ReadonlyKeyword&&((e.kind===On.PropertySignature||e.kind===On.MethodSignature)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type member`),e.kind===On.IndexSignature&&(t.kind!==On.StaticKeyword||!wNe(e.parent))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on an index signature`)),t.kind!==On.InKeyword&&t.kind!==On.OutKeyword&&t.kind!==On.ConstKeyword&&e.kind===On.TypeParameter&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type parameter`),(t.kind===On.InKeyword||t.kind===On.OutKeyword)&&(e.kind!==On.TypeParameter||!(nDr(e.parent)||wNe(e.parent)||dBi(e.parent)))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`),t.kind===On.ReadonlyKeyword&&e.kind!==On.PropertyDeclaration&&e.kind!==On.PropertySignature&&e.kind!==On.IndexSignature&&e.kind!==On.Parameter&&fg(this,sg,$p).call(this,t,"'readonly' modifier can only appear on a property declaration or index signature."),t.kind===On.DeclareKeyword&&wNe(e.parent)&&!Kbt(e)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on class elements of this kind.`),t.kind===On.DeclareKeyword&&rEt(e)){let r=yNr(e.declarationList);(r==="using"||r==="await using")&&fg(this,sg,$p).call(this,t,`'declare' modifier cannot appear on a '${r}' declaration.`)}if(t.kind===On.AbstractKeyword&&e.kind!==On.ClassDeclaration&&e.kind!==On.ConstructorType&&e.kind!==On.MethodDeclaration&&e.kind!==On.PropertyDeclaration&&e.kind!==On.GetAccessor&&e.kind!==On.SetAccessor&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a class, method, or property declaration.`),(t.kind===On.StaticKeyword||t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)&&(e.parent.kind===On.ModuleBlock||e.parent.kind===On.SourceFile)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a module or namespace element.`),t.kind===On.AccessorKeyword&&e.kind!==On.PropertyDeclaration&&fg(this,sg,$p).call(this,t,"'accessor' modifier can only appear on a property declaration."),t.kind===On.AsyncKeyword&&e.kind!==On.MethodDeclaration&&e.kind!==On.FunctionDeclaration&&e.kind!==On.FunctionExpression&&e.kind!==On.ArrowFunction&&fg(this,sg,$p).call(this,t,"'async' modifier cannot be used here."),e.kind===On.Parameter&&(t.kind===On.StaticKeyword||t.kind===On.ExportKeyword||t.kind===On.DeclareKeyword||t.kind===On.AsyncKeyword)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a parameter.`),t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)for(let r of Ij(e)??[])r!==t&&(r.kind===On.PublicKeyword||r.kind===On.ProtectedKeyword||r.kind===On.PrivateKeyword)&&fg(this,sg,$p).call(this,r,"Accessibility modifier already seen.");if(e.kind===On.Parameter&&(t.kind===On.PublicKeyword||t.kind===On.PrivateKeyword||t.kind===On.ProtectedKeyword||t.kind===On.ReadonlyKeyword||t.kind===On.OverrideKeyword)){let r=trc(e);r.kind===On.Constructor&&DSi(r.body)||fg(this,sg,$p).call(this,t,"A parameter property is only allowed in a constructor implementation.")}}}},$p=function(e,t){let r,n;throw typeof e=="number"?r=n=e:(r=e.getStart(this.ast),n=e.getEnd()),WBi(t,this.ast,r,n)},kR=function(e,t){this.options.allowInvalidAST||fg(this,sg,$p).call(this,e,t)},bNe=function(e,t,r,n=!1){let a=n;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>e[r]:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use '${r}' instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),e[r]),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e},ENr=function(e,t,r,n){let a=!1;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>n:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use ${r} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),n),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e};function lrc(e,t,r=e.getSourceFile()){let n=[];for(;;){if(Nvi(e.kind))t(e);else{let a=e.getChildren(r);if(a.length===1){e=a[0];continue}for(let o=a.length-1;o>=0;--o)n.push(a[o])}if(n.length===0)break;e=n.pop()}}function urc(e,t,r=e.getSourceFile()){let n=r.text,a=r.languageVariant!==nvi.JSX;return lrc(e,l=>{if(l.pos!==l.end&&(l.kind!==Tp.JsxText&&W7a(n,l.pos===0?(yvi(n)??"").length:l.pos,o),a||grc(l)))return O7a(n,l.end,o)},r);function o(l,A,f){t(n,{end:A,kind:f,pos:l})}}function grc(e){switch(e.kind){case Tp.CloseBraceToken:return e.parent.kind!==Tp.JsxExpression||!rNr(e.parent.parent);case Tp.GreaterThanToken:switch(e.parent.kind){case Tp.JsxClosingElement:case Tp.JsxClosingFragment:return!rNr(e.parent.parent.parent);case Tp.JsxOpeningElement:return e.end!==e.parent.end;case Tp.JsxOpeningFragment:return!1;case Tp.JsxSelfClosingElement:return e.end!==e.parent.end||!rNr(e.parent.parent)}}return!0}function rNr(e){return e.kind===Tp.JsxElement||e.kind===Tp.JsxFragment}var[tRu,rRu]=F6a.split(".").map(e=>Number.parseInt(e,10)),nRu=kG.Intrinsic??kG.Any|kG.Unknown|kG.String|kG.Number|kG.BigInt|kG.Boolean|kG.BooleanLiteral|kG.ESSymbol|kG.Void|kG.Undefined|kG.Null|kG.Never|kG.NonPrimitive;function Arc(e,t){let r=[];return urc(e,(n,a)=>{let o=a.kind===Tp.SingleLineCommentTrivia?sD.Line:sD.Block,l=[a.pos,a.end],A=Zme(l,e),f=l[0]+2,I=a.kind===Tp.SingleLineCommentTrivia?l[1]-f:l[1]-f-2;r.push({type:o,loc:A,range:l,value:t.slice(f,f+I)})},e),r}var drc=()=>{};function prc(e,t,r){let{parseDiagnostics:n}=e;if(n.length)throw arc(n[0]);let a=new crc(e,{allowInvalidAST:t.allowInvalidAST,errorOnUnknownASTType:t.errorOnUnknownASTType,shouldPreserveNodeMaps:r,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings}),o=a.convertProgram();return(!t.range||!t.loc)&&drc(o,{enter:l=>{t.range||delete l.range,t.loc||delete l.loc}}),t.tokens&&(o.tokens=Jtc(e)),t.comment&&(o.comments=Arc(e,t.codeFullText)),{astMaps:a.getASTMaps(),estree:o}}function HBi(e){if(typeof e!="object"||e==null)return!1;let t=e;return t.kind===Tp.SourceFile&&typeof t.getFullText=="function"}var frc=function(e){return e&&e.__esModule?e:{default:e}},Irc=frc({extname:e=>"."+e.split(".").pop()});function hrc(e,t){switch(Irc.default.extname(e).toLowerCase()){case tH.Cjs:case tH.Js:case tH.Mjs:return Bee.JS;case tH.Cts:case tH.Mts:case tH.Ts:return Bee.TS;case tH.Json:return Bee.JSON;case tH.Jsx:return Bee.JSX;case tH.Tsx:return Bee.TSX;default:return t?Bee.TSX:Bee.TS}}var mrc={default:TNr},Crc=(0,mrc.default)("typescript-eslint:typescript-estree:create-program:createSourceFile");function _rc(e){return Crc("Getting AST without type information in %s mode for: %s",e.jsx?"TSX":"TS",e.filePath),HBi(e.code)?e.code:ttc(e.filePath,e.codeFullText,{jsDocParsingMode:e.jsDocParsingMode,languageVersion:GNr.Latest,setExternalModuleIndicator:e.setExternalModuleIndicator},!0,hrc(e.filePath,e.jsx))}var yrc=()=>{},brc=e=>e,Erc=class{},Src=()=>!1,vrc=()=>{},Brc=function(e){return e&&e.__esModule?e:{default:e}},SNr={default:TNr},wrc=Brc({extname:e=>"."+e.split(".").pop()}),Trc=(0,SNr.default)("typescript-eslint:typescript-estree:parseSettings:createParseSettings"),kSi,xSi=null,GSi,FSi,ZSi,LSi,oJe={ParseAll:(GSi=uJe)==null?void 0:GSi.ParseAll,ParseForTypeErrors:(FSi=uJe)==null?void 0:FSi.ParseForTypeErrors,ParseForTypeInfo:(ZSi=uJe)==null?void 0:ZSi.ParseForTypeInfo,ParseNone:(LSi=uJe)==null?void 0:LSi.ParseNone};function Rrc(e,t={}){var r;let n=Nrc(e),a=Src(t),o=typeof t.tsconfigRootDir=="string"?t.tsconfigRootDir:"/prettier-security-dirname-placeholder",l=typeof t.loggerFn=="function",A=brc(typeof t.filePath=="string"&&t.filePath!==""?t.filePath:Drc(t.jsx),o),f=wrc.default.extname(A).toLowerCase(),I=(()=>{switch(t.jsDocParsingMode){case"all":return oJe.ParseAll;case"none":return oJe.ParseNone;case"type-info":return oJe.ParseForTypeInfo;default:return oJe.ParseAll}})(),C={loc:t.loc===!0,range:t.range===!0,allowInvalidAST:t.allowInvalidAST===!0,code:e,codeFullText:n,comment:t.comment===!0,comments:[],debugLevel:t.debugLevel===!0?new Set(["typescript-eslint"]):Array.isArray(t.debugLevel)?new Set(t.debugLevel):new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:t.errorOnUnknownASTType===!0,extraFileExtensions:Array.isArray(t.extraFileExtensions)&&t.extraFileExtensions.every(b=>typeof b=="string")?t.extraFileExtensions:[],filePath:A,jsDocParsingMode:I,jsx:t.jsx===!0,log:typeof t.loggerFn=="function"?t.loggerFn:t.loggerFn===!1?()=>{}:console.log,preserveNodeMaps:t.preserveNodeMaps!==!1,programs:Array.isArray(t.programs)?t.programs:null,projects:new Map,projectService:t.projectService||t.project&&t.projectService!==!1&&(void 0).env.TYPESCRIPT_ESLINT_PROJECT_SERVICE==="true"?xSi??(xSi=yrc(t.projectService,I,o)):void 0,setExternalModuleIndicator:t.sourceType==="module"||t.sourceType==null&&f===tH.Mjs||t.sourceType==null&&f===tH.Mts?b=>{b.externalModuleIndicator=!0}:void 0,singleRun:a,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings??!0,tokens:t.tokens===!0?[]:null,tsconfigMatchCache:kSi??(kSi=new Erc(a?"Infinity":((r=t.cacheLifetime)==null?void 0:r.glob)??void 0)),tsconfigRootDir:o};if(C.debugLevel.size>0){let b=[];C.debugLevel.has("typescript-eslint")&&b.push("typescript-eslint:*"),(C.debugLevel.has("eslint")||SNr.default.enabled("eslint:*,-eslint:code-path"))&&b.push("eslint:*,-eslint:code-path"),SNr.default.enable(b.join(","))}if(Array.isArray(t.programs)){if(!t.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");Trc("parserOptions.programs was provided, so parserOptions.project will be ignored.")}return!C.programs&&!C.projectService&&(C.projects=new Map),t.jsDocParsingMode==null&&C.projects.size===0&&C.programs==null&&C.projectService==null&&(C.jsDocParsingMode=oJe.ParseNone),vrc(C,l),C}function Nrc(e){return HBi(e)?e.getFullText(e):typeof e=="string"?e:String(e)}function Drc(e){return e?"estree.tsx":"estree.ts"}var krc={default:TNr},iRu=(0,krc.default)("typescript-eslint:typescript-estree:parser");function xrc(e,t){let{ast:r}=Grc(e,t,!1);return r}function Grc(e,t,r){let n=Rrc(e,t);if(t!=null&&t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');let a=_rc(n),{astMaps:o,estree:l}=prc(a,n,r);return{ast:l,esTreeNodeToTSNodeMap:o.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:o.tsNodeToESTreeNodeMap}}function Frc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var Zrc=Frc;function Lrc(e){let t=[];for(let r of e)try{return r()}catch(n){t.push(n)}throw Object.assign(new Error("All combinations failed"),{errors:t})}var Vrc=Lrc,Prc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},VSi=Prc;function Wrc(e){return Array.isArray(e)&&e.length>0}var Orc=Wrc;function pj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(pj(o),a):a}function Lme(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function Mrc(e){let t=new Set(e);return r=>t.has(r?.type)}var Hrc=Mrc,Yrc=Hrc(["Block","CommentBlock","MultiLine"]),vNr=Yrc;function Qrc(e){let t=`*${e.value}*`.split(` +`&&a[n-1]==="\r"?n-1:n}getNamedDeclarations(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations}computeNamedDeclarations(){let e=z6a();return this.forEachChild(a),e;function t(o){let l=n(o);l&&e.add(l,o)}function r(o){let l=e.get(o);return l||e.set(o,l=[]),l}function n(o){let l=MNr(o);return l&&($vi(l)&&Bce(l.expression)?l.expression.name.text:kvi(l)?getNameFromPropertyName(l):void 0)}function a(o){switch(o.kind){case 262:case 218:case 174:case 173:let l=o,A=n(l);if(A){let C=r(A),b=Vme(C);b&&l.parent===b.parent&&l.symbol===b.symbol?l.body&&!b.body&&(C[C.length-1]=l):C.push(l)}Ok(o,a);break;case 263:case 231:case 264:case 265:case 266:case 267:case 271:case 281:case 276:case 273:case 274:case 177:case 178:case 187:t(o),Ok(o,a);break;case 169:if(!vJe(o,31))break;case 260:case 208:{let C=o;if(Dza(C.name)){Ok(C.name,a);break}C.initializer&&a(C.initializer)}case 306:case 172:case 171:t(o);break;case 278:let f=o;f.exportClause&&(dec(f.exportClause)?hO(f.exportClause.elements,a):a(f.exportClause.name));break;case 272:let I=o.importClause;I&&(I.name&&t(I.name),I.namedBindings&&(I.namedBindings.kind===274?t(I.namedBindings):hO(I.namedBindings.elements,a)));break;case 226:JNr(o)!==0&&t(o);default:Ok(o,a)}}}},btc=class{constructor(e,t,r){this.fileName=e,this.text=t,this.skipTrivia=r||(n=>n)}getLineAndCharacterOfPosition(e){return Ivi(this,e)}};function Etc(){return{getNodeConstructor:()=>aDr,getTokenConstructor:()=>RBi,getIdentifierConstructor:()=>NBi,getPrivateIdentifierConstructor:()=>DBi,getSourceFileConstructor:()=>ytc,getSymbolConstructor:()=>mtc,getTypeConstructor:()=>Ctc,getSignatureConstructor:()=>_tc,getSourceMapSourceConstructor:()=>btc}}var Stc=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints","getSupportedCodeFixes","getPasteEdits"],tRu=[...Stc,"getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors","preparePasteEditsForFile"];Uqa(Etc());var GBi=new Proxy({},{get:()=>!0}),FBi=GBi["4.8"];function Ij(e,t=!1){var r;if(e!=null){if(FBi){if(t||oDr(e)){let n=rza(e);return n?[...n]:void 0}return}return(r=e.modifiers)==null?void 0:r.filter(n=>!tDr(n))}}function yNe(e,t=!1){var r;if(e!=null){if(FBi){if(t||Yec(e)){let n=tza(e);return n?[...n]:void 0}return}return(r=e.decorators)==null?void 0:r.filter(tDr)}}var vtc={},ZBi=new Proxy({},{get:(e,t)=>t}),Btc=ZBi,wtc=ZBi,hs=Btc,sD=wtc,LBi=GBi["5.0"],au=Tp,Ttc=new Set([au.AmpersandAmpersandToken,au.BarBarToken,au.QuestionQuestionToken]),Rtc=new Set([Tp.AmpersandAmpersandEqualsToken,Tp.AmpersandEqualsToken,Tp.AsteriskAsteriskEqualsToken,Tp.AsteriskEqualsToken,Tp.BarBarEqualsToken,Tp.BarEqualsToken,Tp.CaretEqualsToken,Tp.EqualsToken,Tp.GreaterThanGreaterThanEqualsToken,Tp.GreaterThanGreaterThanGreaterThanEqualsToken,Tp.LessThanLessThanEqualsToken,Tp.MinusEqualsToken,Tp.PercentEqualsToken,Tp.PlusEqualsToken,Tp.QuestionQuestionEqualsToken,Tp.SlashEqualsToken]),Ntc=new Set([au.AmpersandAmpersandToken,au.AmpersandToken,au.AsteriskAsteriskToken,au.AsteriskToken,au.BarBarToken,au.BarToken,au.CaretToken,au.EqualsEqualsEqualsToken,au.EqualsEqualsToken,au.ExclamationEqualsEqualsToken,au.ExclamationEqualsToken,au.GreaterThanEqualsToken,au.GreaterThanGreaterThanGreaterThanToken,au.GreaterThanGreaterThanToken,au.GreaterThanToken,au.InKeyword,au.InstanceOfKeyword,au.LessThanEqualsToken,au.LessThanLessThanToken,au.LessThanToken,au.MinusToken,au.PercentToken,au.PlusToken,au.SlashToken]);function Dtc(e){return Rtc.has(e.kind)}function ktc(e){return Ttc.has(e.kind)}function xtc(e){return Ntc.has(e.kind)}function yce(e){return by(e)}function Gtc(e){return e.kind!==au.SemicolonClassElement}function vh(e,t){let r=Ij(t);return r?.some(n=>n.kind===e)===!0}function Ftc(e){let t=Ij(e);return t==null?null:t[t.length-1]??null}function Ztc(e){return e.kind===au.CommaToken}function Ltc(e){return e.kind===au.SingleLineCommentTrivia||e.kind===au.MultiLineCommentTrivia}function Vtc(e){return e.kind===au.JSDocComment}function Ptc(e){if(Dtc(e))return{type:hs.AssignmentExpression,operator:yce(e.kind)};if(ktc(e))return{type:hs.LogicalExpression,operator:yce(e.kind)};if(xtc(e))return{type:hs.BinaryExpression,operator:yce(e.kind)};throw new Error(`Unexpected binary operator ${by(e.kind)}`)}function Wbt(e,t){let r=t.getLineAndCharacterOfPosition(e);return{column:r.character,line:r.line+1}}function Zme(e,t){let[r,n]=e.map(a=>Wbt(a,t));return{end:n,start:r}}function Wtc(e){if(e.kind===Tp.Block)switch(e.parent.kind){case Tp.Constructor:case Tp.GetAccessor:case Tp.SetAccessor:case Tp.ArrowFunction:case Tp.FunctionExpression:case Tp.FunctionDeclaration:case Tp.MethodDeclaration:return!0;default:return!1}return!0}function sJe(e,t){return[e.getStart(t),e.getEnd()]}function Otc(e){return e.kind>=au.FirstToken&&e.kind<=au.LastToken}function VBi(e){return e.kind>=au.JsxElement&&e.kind<=au.JsxAttribute}function yNr(e){return e.flags&IO.Let?"let":(e.flags&IO.AwaitUsing)===IO.AwaitUsing?"await using":e.flags&IO.Const?"const":e.flags&IO.Using?"using":"var"}function xme(e){let t=Ij(e);if(t!=null)for(let r of t)switch(r.kind){case au.PublicKeyword:return"public";case au.ProtectedKeyword:return"protected";case au.PrivateKeyword:return"private";default:break}}function fNe(e,t,r){return n(t);function n(a){return _za(a)&&a.pos===e.end?a:ztc(a.getChildren(r),o=>(o.pos<=e.pos&&o.end>e.end||o.pos===e.end)&&jtc(o,r)?n(o):void 0)}}function Mtc(e,t){let r=e;for(;r;){if(t(r))return r;r=r.parent}}function Htc(e){return!!Mtc(e,VBi)}function RSi(e){return ENe(!1,e,/&(?:#\d+|#x[\da-fA-F]+|[0-9a-zA-Z]+);/g,t=>{let r=t.slice(1,-1);if(r[0]==="#"){let n=r[1]==="x"?parseInt(r.slice(2),16):parseInt(r.slice(1),10);return n>1114111?t:String.fromCodePoint(n)}return vtc[r]||t})}function INe(e){return e.kind===au.ComputedPropertyName}function NSi(e){return!!e.questionToken}function PBi(e){return e.type===hs.ChainExpression}function Ytc(e,t){return PBi(t)&&e.expression.kind!==Tp.ParenthesizedExpression}function Qtc(e){let t;if(LBi&&e.kind===au.Identifier?t=Svi(e):"originalKeywordKind"in e&&(t=e.originalKeywordKind),t)return t===au.NullKeyword?sD.Null:t>=au.FirstFutureReservedWord&&t<=au.LastKeyword?sD.Identifier:sD.Keyword;if(e.kind>=au.FirstKeyword&&e.kind<=au.LastFutureReservedWord)return e.kind===au.FalseKeyword||e.kind===au.TrueKeyword?sD.Boolean:sD.Keyword;if(e.kind>=au.FirstPunctuation&&e.kind<=au.LastPunctuation)return sD.Punctuator;if(e.kind>=au.NoSubstitutionTemplateLiteral&&e.kind<=au.TemplateTail)return sD.Template;switch(e.kind){case au.NumericLiteral:return sD.Numeric;case au.JsxText:return sD.JSXText;case au.StringLiteral:return e.parent.kind===au.JsxAttribute||e.parent.kind===au.JsxElement?sD.JSXText:sD.String;case au.RegularExpressionLiteral:return sD.RegularExpression;case au.Identifier:case au.ConstructorKeyword:case au.GetKeyword:case au.SetKeyword:default:}return e.kind===au.Identifier&&(VBi(e.parent)||e.parent.kind===au.PropertyAccessExpression&&Htc(e))?sD.JSXIdentifier:sD.Identifier}function Xtc(e,t){let r=e.kind===au.JsxText?e.getFullStart():e.getStart(t),n=e.getEnd(),a=t.text.slice(r,n),o=Qtc(e),l=[r,n],A=Zme(l,t);return o===sD.RegularExpression?{type:o,loc:A,range:l,regex:{flags:a.slice(a.lastIndexOf("/")+1),pattern:a.slice(1,a.lastIndexOf("/"))},value:a}:{type:o,loc:A,range:l,value:a}}function Jtc(e){let t=[];function r(n){Ltc(n)||Vtc(n)||(Otc(n)&&n.kind!==au.EndOfFileToken?t.push(Xtc(n,e)):n.getChildren(e).forEach(r))}return r(e),t}var Utc=class extends Error{fileName;location;constructor(e,t,r){super(e),this.fileName=t,this.location=r,Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:new.target.name})}get index(){return this.location.start.offset}get lineNumber(){return this.location.start.line}get column(){return this.location.start.column}};function WBi(e,t,r,n=r){let[a,o]=[r,n].map(l=>{let{character:A,line:f}=t.getLineAndCharacterOfPosition(l);return{column:A,line:f+1,offset:l}});return new Utc(e,t.fileName,{end:o,start:a})}function Ktc(e){var t;return!!("illegalDecorators"in e&&(t=e.illegalDecorators)!=null&&t.length)}function jtc(e,t){return e.kind===au.EndOfFileToken?!!e.jsDoc:e.getWidth(t)!==0}function ztc(e,t){if(e!==void 0)for(let r=0;r=0&&e.kind!==au.EndOfFileToken}function DSi(e){return!erc(e)}function trc(e){return Evi(e.parent,xvi)}function rrc(e){return vh(au.AbstractKeyword,e)}function nrc(e){if(e.parameters.length&&!yBi(e)){let t=e.parameters[0];if(irc(t))return t}return null}function irc(e){return OBi(e.name)}function src(e){switch(e.kind){case au.ClassDeclaration:return!0;case au.ClassExpression:return!0;case au.PropertyDeclaration:{let{parent:t}=e;return!!(zbt(t)||wNe(t)&&!rrc(e))}case au.GetAccessor:case au.SetAccessor:case au.MethodDeclaration:{let{parent:t}=e;return!!e.body&&(zbt(t)||wNe(t))}case au.Parameter:{let{parent:t}=e,r=t.parent;return!!t&&"body"in t&&!!t.body&&(t.kind===au.Constructor||t.kind===au.MethodDeclaration||t.kind===au.SetAccessor)&&nrc(t)!==e&&!!r&&r.kind===au.ClassDeclaration}}return!1}function lDr(e){switch(e.kind){case au.Identifier:return!0;case au.PropertyAccessExpression:case au.ElementAccessExpression:return!(e.flags&IO.OptionalChain);case au.ParenthesizedExpression:case au.TypeAssertionExpression:case au.AsExpression:case au.SatisfiesExpression:case au.ExpressionWithTypeArguments:case au.NonNullExpression:return lDr(e.expression);default:return!1}}function orc(e){let t=Ij(e),r=e;for(;(!t||t.length===0)&&EJe(r.parent);){let n=Ij(r.parent);n!=null&&n.length&&(t=n),r=r.parent}return t}var On=Tp;function arc(e){return WBi("message"in e&&e.message||e.messageText,e.file,e.start)}var sg,bNr,MBi,$p,kR,bNe,ENr,crc=class{constructor(e,t){k6a(this,sg),eJe(this,"allowPattern",!1),eJe(this,"ast"),eJe(this,"esTreeNodeToTSNodeMap",new WeakMap),eJe(this,"options"),eJe(this,"tsNodeToESTreeNodeMap",new WeakMap),this.ast=e,this.options={...t}}assertModuleSpecifier(e,t){var r;!t&&e.moduleSpecifier==null&&fg(this,sg,kR).call(this,e,"Module specifier must be a string literal."),e.moduleSpecifier&&((r=e.moduleSpecifier)==null?void 0:r.kind)!==On.StringLiteral&&fg(this,sg,kR).call(this,e.moduleSpecifier,"Module specifier must be a string literal.")}convertBindingNameWithTypeAnnotation(e,t,r){let n=this.convertPattern(e);return t&&(n.typeAnnotation=this.convertTypeAnnotation(t,r),this.fixParentLocation(n,n.typeAnnotation.range)),n}convertBodyExpressions(e,t){let r=Wtc(t);return e.map(n=>{let a=this.convertChild(n);if(r){if(a!=null&&a.expression&&uBi(n)&&tEt(n.expression)){let o=a.expression.raw;return a.directive=o.slice(1,-1),a}r=!1}return a}).filter(n=>n)}convertChainExpression(e,t){let{child:r,isOptional:n}=e.type===hs.MemberExpression?{child:e.object,isOptional:e.optional}:e.type===hs.CallExpression?{child:e.callee,isOptional:e.optional}:{child:e.expression,isOptional:!1},a=Ytc(t,r);if(!a&&!n)return e;if(a&&PBi(r)){let o=r.expression;e.type===hs.MemberExpression?e.object=o:e.type===hs.CallExpression?e.callee=o:e.expression=o}return this.createNode(t,{type:hs.ChainExpression,expression:e})}convertChild(e,t){return this.converter(e,t,!1)}convertPattern(e,t){return this.converter(e,t,!0)}convertTypeAnnotation(e,t){let r=t?.kind===On.FunctionType||t?.kind===On.ConstructorType?2:1,n=[e.getFullStart()-r,e.end],a=Zme(n,this.ast);return{type:hs.TSTypeAnnotation,loc:a,range:n,typeAnnotation:this.convertChild(e)}}convertTypeArgumentsToTypeParameterInstantiation(e,t){let r=fNe(e,this.ast,this.ast);return this.createNode(t,{type:hs.TSTypeParameterInstantiation,range:[e.pos-1,r.end],params:e.map(n=>this.convertChild(n))})}convertTSTypeParametersToTypeParametersDeclaration(e){let t=fNe(e,this.ast,this.ast),r=[e.pos-1,t.end];return{type:hs.TSTypeParameterDeclaration,loc:Zme(r,this.ast),range:r,params:e.map(n=>this.convertChild(n))}}convertParameters(e){return e!=null&&e.length?e.map(t=>{var r;let n=this.convertChild(t);return n.decorators=((r=yNe(t))==null?void 0:r.map(a=>this.convertChild(a)))??[],n}):[]}converter(e,t,r){if(!e)return null;fg(this,sg,MBi).call(this,e);let n=this.allowPattern;r!=null&&(this.allowPattern=r);let a=this.convertNode(e,t??e.parent);return this.registerTSNodeInNodeMap(e,a),this.allowPattern=n,a}convertImportAttributes(e){return e==null?[]:e.elements.map(t=>this.convertChild(t))}convertJSXIdentifier(e){let t=this.createNode(e,{type:hs.JSXIdentifier,name:e.getText()});return this.registerTSNodeInNodeMap(e,t),t}convertJSXNamespaceOrIdentifier(e){if(e.kind===Tp.JsxNamespacedName){let n=this.createNode(e,{type:hs.JSXNamespacedName,name:this.createNode(e.name,{type:hs.JSXIdentifier,name:e.name.text}),namespace:this.createNode(e.namespace,{type:hs.JSXIdentifier,name:e.namespace.text})});return this.registerTSNodeInNodeMap(e,n),n}let t=e.getText(),r=t.indexOf(":");if(r>0){let n=sJe(e,this.ast),a=this.createNode(e,{type:hs.JSXNamespacedName,range:n,name:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0]+r+1,n[1]],name:t.slice(r+1)}),namespace:this.createNode(e,{type:hs.JSXIdentifier,range:[n[0],n[0]+r],name:t.slice(0,r)})});return this.registerTSNodeInNodeMap(e,a),a}return this.convertJSXIdentifier(e)}convertJSXTagName(e,t){let r;switch(e.kind){case On.PropertyAccessExpression:e.name.kind===On.PrivateIdentifier&&fg(this,sg,$p).call(this,e.name,"Non-private identifier expected."),r=this.createNode(e,{type:hs.JSXMemberExpression,object:this.convertJSXTagName(e.expression,t),property:this.convertJSXIdentifier(e.name)});break;case On.ThisKeyword:case On.Identifier:default:return this.convertJSXNamespaceOrIdentifier(e)}return this.registerTSNodeInNodeMap(e,r),r}convertMethodSignature(e){return this.createNode(e,{type:hs.TSMethodSignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),kind:(()=>{switch(e.kind){case On.GetAccessor:return"get";case On.SetAccessor:return"set";case On.MethodSignature:return"method"}})(),optional:NSi(e),params:this.convertParameters(e.parameters),readonly:vh(On.ReadonlyKeyword,e),returnType:e.type&&this.convertTypeAnnotation(e.type,e),static:vh(On.StaticKeyword,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}fixParentLocation(e,t){t[0]e.range[1]&&(e.range[1]=t[1],e.loc.end=Wbt(e.range[1],this.ast))}convertNode(e,t){var r,n,a,o,l,A,f,I;switch(e.kind){case On.SourceFile:return this.createNode(e,{type:hs.Program,range:[e.getStart(this.ast),e.endOfFileToken.end],body:this.convertBodyExpressions(e.statements,e),comments:void 0,sourceType:e.externalModuleIndicator?"module":"script",tokens:void 0});case On.Block:return this.createNode(e,{type:hs.BlockStatement,body:this.convertBodyExpressions(e.statements,e)});case On.Identifier:return $tc(e)?this.createNode(e,{type:hs.ThisExpression}):this.createNode(e,{type:hs.Identifier,decorators:[],name:e.text,optional:!1,typeAnnotation:void 0});case On.PrivateIdentifier:return this.createNode(e,{type:hs.PrivateIdentifier,name:e.text.slice(1)});case On.WithStatement:return this.createNode(e,{type:hs.WithStatement,body:this.convertChild(e.statement),object:this.convertChild(e.expression)});case On.ReturnStatement:return this.createNode(e,{type:hs.ReturnStatement,argument:this.convertChild(e.expression)});case On.LabeledStatement:return this.createNode(e,{type:hs.LabeledStatement,body:this.convertChild(e.statement),label:this.convertChild(e.label)});case On.ContinueStatement:return this.createNode(e,{type:hs.ContinueStatement,label:this.convertChild(e.label)});case On.BreakStatement:return this.createNode(e,{type:hs.BreakStatement,label:this.convertChild(e.label)});case On.IfStatement:return this.createNode(e,{type:hs.IfStatement,alternate:this.convertChild(e.elseStatement),consequent:this.convertChild(e.thenStatement),test:this.convertChild(e.expression)});case On.SwitchStatement:return e.caseBlock.clauses.filter(C=>C.kind===On.DefaultClause).length>1&&fg(this,sg,$p).call(this,e,"A 'default' clause cannot appear more than once in a 'switch' statement."),this.createNode(e,{type:hs.SwitchStatement,cases:e.caseBlock.clauses.map(C=>this.convertChild(C)),discriminant:this.convertChild(e.expression)});case On.CaseClause:case On.DefaultClause:return this.createNode(e,{type:hs.SwitchCase,consequent:e.statements.map(C=>this.convertChild(C)),test:e.kind===On.CaseClause?this.convertChild(e.expression):null});case On.ThrowStatement:return e.expression.end===e.expression.pos&&fg(this,sg,kR).call(this,e,"A throw statement must throw an expression."),this.createNode(e,{type:hs.ThrowStatement,argument:this.convertChild(e.expression)});case On.TryStatement:return this.createNode(e,{type:hs.TryStatement,block:this.convertChild(e.tryBlock),finalizer:this.convertChild(e.finallyBlock),handler:this.convertChild(e.catchClause)});case On.CatchClause:return(r=e.variableDeclaration)!=null&&r.initializer&&fg(this,sg,$p).call(this,e.variableDeclaration.initializer,"Catch clause variable cannot have an initializer."),this.createNode(e,{type:hs.CatchClause,body:this.convertChild(e.block),param:e.variableDeclaration?this.convertBindingNameWithTypeAnnotation(e.variableDeclaration.name,e.variableDeclaration.type):null});case On.WhileStatement:return this.createNode(e,{type:hs.WhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.DoStatement:return this.createNode(e,{type:hs.DoWhileStatement,body:this.convertChild(e.statement),test:this.convertChild(e.expression)});case On.ForStatement:return this.createNode(e,{type:hs.ForStatement,body:this.convertChild(e.statement),init:this.convertChild(e.initializer),test:this.convertChild(e.condition),update:this.convertChild(e.incrementor)});case On.ForInStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForInStatement,body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.ForOfStatement:return fg(this,sg,bNr).call(this,e.initializer,e.kind),this.createNode(e,{type:hs.ForOfStatement,await:!!(e.awaitModifier&&e.awaitModifier.kind===On.AwaitKeyword),body:this.convertChild(e.statement),left:this.convertPattern(e.initializer),right:this.convertChild(e.expression)});case On.FunctionDeclaration:{let C=vh(On.DeclareKeyword,e),b=vh(On.AsyncKeyword,e),E=!!e.asteriskToken;C?e.body?fg(this,sg,$p).call(this,e,"An implementation cannot be declared in ambient contexts."):b?fg(this,sg,$p).call(this,e,"'async' modifier cannot be used in an ambient context."):E&&fg(this,sg,$p).call(this,e,"Generators are not allowed in an ambient context."):!e.body&&E&&fg(this,sg,$p).call(this,e,"A function signature cannot be declared as a generator.");let N=this.createNode(e,{type:e.body?hs.FunctionDeclaration:hs.TSDeclareFunction,async:b,body:this.convertChild(e.body)||void 0,declare:C,expression:!1,generator:E,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,N)}case On.VariableDeclaration:{let C=!!e.exclamationToken,b=this.convertChild(e.initializer),E=this.convertBindingNameWithTypeAnnotation(e.name,e.type,e);return C&&(b?fg(this,sg,$p).call(this,e,"Declarations with initializers cannot also have definite assignment assertions."):(E.type!==hs.Identifier||!E.typeAnnotation)&&fg(this,sg,$p).call(this,e,"Declarations with definite assignment assertions must also have type annotations.")),this.createNode(e,{type:hs.VariableDeclarator,definite:C,id:E,init:b})}case On.VariableStatement:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarationList.declarations.map(b=>this.convertChild(b)),declare:vh(On.DeclareKeyword,e),kind:yNr(e.declarationList)});return C.declarations.length||fg(this,sg,kR).call(this,e,"A variable declaration list must have at least one variable declarator."),(C.kind==="using"||C.kind==="await using")&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init==null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations must be initialized.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),(C.declare||["await using","const","using"].includes(C.kind))&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].definite&&fg(this,sg,$p).call(this,b,"A definite assignment assertion '!' is not permitted in this context.")}),C.declare&&e.declarationList.declarations.forEach((b,E)=>{C.declarations[E].init&&(["let","var"].includes(C.kind)||C.declarations[E].id.typeAnnotation)&&fg(this,sg,$p).call(this,b,"Initializers are not permitted in ambient contexts.")}),this.fixExports(e,C)}case On.VariableDeclarationList:{let C=this.createNode(e,{type:hs.VariableDeclaration,declarations:e.declarations.map(b=>this.convertChild(b)),declare:!1,kind:yNr(e)});return(C.kind==="using"||C.kind==="await using")&&e.declarations.forEach((b,E)=>{C.declarations[E].init!=null&&fg(this,sg,$p).call(this,b,`'${C.kind}' declarations may not be initialized in for statement.`),C.declarations[E].id.type!==hs.Identifier&&fg(this,sg,$p).call(this,b.name,`'${C.kind}' declarations may not have binding patterns.`)}),C}case On.ExpressionStatement:return this.createNode(e,{type:hs.ExpressionStatement,directive:void 0,expression:this.convertChild(e.expression)});case On.ThisKeyword:return this.createNode(e,{type:hs.ThisExpression});case On.ArrayLiteralExpression:return this.allowPattern?this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0}):this.createNode(e,{type:hs.ArrayExpression,elements:e.elements.map(C=>this.convertChild(C))});case On.ObjectLiteralExpression:{if(this.allowPattern)return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.properties.map(b=>this.convertPattern(b)),typeAnnotation:void 0});let C=[];for(let b of e.properties)(b.kind===On.GetAccessor||b.kind===On.SetAccessor||b.kind===On.MethodDeclaration)&&!b.body&&fg(this,sg,kR).call(this,b.end-1,"'{' expected."),C.push(this.convertChild(b));return this.createNode(e,{type:hs.ObjectExpression,properties:C})}case On.PropertyAssignment:{let{exclamationToken:C,questionToken:b}=e;return b&&fg(this,sg,$p).call(this,b,"A property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A property assignment cannot have an exclamation token."),this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!1,value:this.converter(e.initializer,e,this.allowPattern)})}case On.ShorthandPropertyAssignment:{let{exclamationToken:C,modifiers:b,questionToken:E}=e;return b&&fg(this,sg,$p).call(this,b[0],"A shorthand property assignment cannot have modifiers."),E&&fg(this,sg,$p).call(this,E,"A shorthand property assignment cannot have a question token."),C&&fg(this,sg,$p).call(this,C,"A shorthand property assignment cannot have an exclamation token."),e.objectAssignmentInitializer?this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.name),optional:!1,right:this.convertChild(e.objectAssignmentInitializer),typeAnnotation:void 0})}):this.createNode(e,{type:hs.Property,computed:!1,key:this.convertChild(e.name),kind:"init",method:!1,optional:!1,shorthand:!0,value:this.convertChild(e.name)})}case On.ComputedPropertyName:return this.convertChild(e.expression);case On.PropertyDeclaration:{let C=vh(On.AbstractKeyword,e);C&&e.initializer&&fg(this,sg,$p).call(this,e.initializer,"Abstract property cannot have an initializer.");let b=vh(On.AccessorKeyword,e),E=b?C?hs.TSAbstractAccessorProperty:hs.AccessorProperty:C?hs.TSAbstractPropertyDefinition:hs.PropertyDefinition,N=this.convertChild(e.name);return this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),declare:vh(On.DeclareKeyword,e),decorators:((n=yNe(e))==null?void 0:n.map(B=>this.convertChild(B)))??[],definite:!!e.exclamationToken,key:N,optional:(N.type===hs.Literal||e.name.kind===On.Identifier||e.name.kind===On.ComputedPropertyName||e.name.kind===On.PrivateIdentifier)&&!!e.questionToken,override:vh(On.OverrideKeyword,e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e),value:C?null:this.convertChild(e.initializer)})}case On.GetAccessor:case On.SetAccessor:if(e.parent.kind===On.InterfaceDeclaration||e.parent.kind===On.TypeLiteral)return this.convertMethodSignature(e);case On.MethodDeclaration:{let C=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:null,params:[],returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});C.typeParameters&&this.fixParentLocation(C,C.typeParameters.range);let b;if(t.kind===On.ObjectLiteralExpression)C.params=e.parameters.map(E=>this.convertChild(E)),b=this.createNode(e,{type:hs.Property,computed:INe(e.name),key:this.convertChild(e.name),kind:"init",method:e.kind===On.MethodDeclaration,optional:!!e.questionToken,shorthand:!1,value:C});else{C.params=this.convertParameters(e.parameters);let E=vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition;b=this.createNode(e,{type:E,accessibility:xme(e),computed:INe(e.name),decorators:((a=yNe(e))==null?void 0:a.map(N=>this.convertChild(N)))??[],key:this.convertChild(e.name),kind:"method",optional:!!e.questionToken,override:vh(On.OverrideKeyword,e),static:vh(On.StaticKeyword,e),value:C})}return e.kind===On.GetAccessor?b.kind="get":e.kind===On.SetAccessor?b.kind="set":!b.static&&e.name.kind===On.StringLiteral&&e.name.text==="constructor"&&b.type!==hs.Property&&(b.kind="constructor"),b}case On.Constructor:{let C=Ftc(e),b=(C&&fNe(C,e,this.ast))??e.getFirstToken(),E=this.createNode(e,{type:e.body?hs.FunctionExpression:hs.TSEmptyBodyFunctionExpression,range:[e.parameters.pos-1,e.end],async:!1,body:this.convertChild(e.body),declare:!1,expression:!1,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});E.typeParameters&&this.fixParentLocation(E,E.typeParameters.range);let N=this.createNode(e,{type:hs.Identifier,range:[b.getStart(this.ast),b.end],decorators:[],name:"constructor",optional:!1,typeAnnotation:void 0}),B=vh(On.StaticKeyword,e);return this.createNode(e,{type:vh(On.AbstractKeyword,e)?hs.TSAbstractMethodDefinition:hs.MethodDefinition,accessibility:xme(e),computed:!1,decorators:[],key:N,kind:B?"method":"constructor",optional:!1,override:!1,static:B,value:E})}case On.FunctionExpression:return this.createNode(e,{type:hs.FunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),declare:!1,expression:!1,generator:!!e.asteriskToken,id:this.convertChild(e.name),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.SuperKeyword:return this.createNode(e,{type:hs.Super});case On.ArrayBindingPattern:return this.createNode(e,{type:hs.ArrayPattern,decorators:[],elements:e.elements.map(C=>this.convertPattern(C)),optional:!1,typeAnnotation:void 0});case On.OmittedExpression:return null;case On.ObjectBindingPattern:return this.createNode(e,{type:hs.ObjectPattern,decorators:[],optional:!1,properties:e.elements.map(C=>this.convertPattern(C)),typeAnnotation:void 0});case On.BindingElement:{if(t.kind===On.ArrayBindingPattern){let b=this.convertChild(e.name,t);return e.initializer?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:b,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}):e.dotDotDotToken?this.createNode(e,{type:hs.RestElement,argument:b,decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):b}let C;return e.dotDotDotToken?C=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.propertyName??e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):C=this.createNode(e,{type:hs.Property,computed:!!(e.propertyName&&e.propertyName.kind===On.ComputedPropertyName),key:this.convertChild(e.propertyName??e.name),kind:"init",method:!1,optional:!1,shorthand:!e.propertyName,value:this.convertChild(e.name)}),e.initializer&&(C.value=this.createNode(e,{type:hs.AssignmentPattern,range:[e.name.getStart(this.ast),e.initializer.end],decorators:[],left:this.convertChild(e.name),optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0})),C}case On.ArrowFunction:return this.createNode(e,{type:hs.ArrowFunctionExpression,async:vh(On.AsyncKeyword,e),body:this.convertChild(e.body),expression:e.body.kind!==On.Block,generator:!1,id:null,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.YieldExpression:return this.createNode(e,{type:hs.YieldExpression,argument:this.convertChild(e.expression),delegate:!!e.asteriskToken});case On.AwaitExpression:return this.createNode(e,{type:hs.AwaitExpression,argument:this.convertChild(e.expression)});case On.NoSubstitutionTemplateLiteral:return this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.createNode(e,{type:hs.TemplateElement,tail:!0,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-1)}})]});case On.TemplateExpression:{let C=this.createNode(e,{type:hs.TemplateLiteral,expressions:[],quasis:[this.convertChild(e.head)]});return e.templateSpans.forEach(b=>{C.expressions.push(this.convertChild(b.expression)),C.quasis.push(this.convertChild(b.literal))}),C}case On.TaggedTemplateExpression:return this.createNode(e,{type:hs.TaggedTemplateExpression,quasi:this.convertChild(e.template),tag:this.convertChild(e.tag),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.TemplateHead:case On.TemplateMiddle:case On.TemplateTail:{let C=e.kind===On.TemplateTail;return this.createNode(e,{type:hs.TemplateElement,tail:C,value:{cooked:e.text,raw:this.ast.text.slice(e.getStart(this.ast)+1,e.end-(C?1:2))}})}case On.SpreadAssignment:case On.SpreadElement:return this.allowPattern?this.createNode(e,{type:hs.RestElement,argument:this.convertPattern(e.expression),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):this.createNode(e,{type:hs.SpreadElement,argument:this.convertChild(e.expression)});case On.Parameter:{let C,b;return e.dotDotDotToken?C=b=this.createNode(e,{type:hs.RestElement,argument:this.convertChild(e.name),decorators:[],optional:!1,typeAnnotation:void 0,value:void 0}):e.initializer?(C=this.convertChild(e.name),b=this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:C,optional:!1,right:this.convertChild(e.initializer),typeAnnotation:void 0}),Ij(e)&&(b.range[0]=C.range[0],b.loc=Zme(b.range,this.ast))):C=b=this.convertChild(e.name,t),e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),this.fixParentLocation(C,C.typeAnnotation.range)),e.questionToken&&(e.questionToken.end>C.range[1]&&(C.range[1]=e.questionToken.end,C.loc.end=Wbt(C.range[1],this.ast)),C.optional=!0),Ij(e)?this.createNode(e,{type:hs.TSParameterProperty,accessibility:xme(e),decorators:[],override:vh(On.OverrideKeyword,e),parameter:b,readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e)}):b}case On.ClassDeclaration:!e.name&&(!vh(Tp.ExportKeyword,e)||!vh(Tp.DefaultKeyword,e))&&fg(this,sg,kR).call(this,e,"A class declaration without the 'default' modifier must have a name.");case On.ClassExpression:{let C=e.heritageClauses??[],b=e.kind===On.ClassDeclaration?hs.ClassDeclaration:hs.ClassExpression,E,N;for(let F of C){let{token:Q,types:X}=F;X.length===0&&fg(this,sg,kR).call(this,F,`'${by(Q)}' list cannot be empty.`),Q===On.ExtendsKeyword?(E&&fg(this,sg,kR).call(this,F,"'extends' clause already seen."),N&&fg(this,sg,kR).call(this,F,"'extends' clause must precede 'implements' clause."),X.length>1&&fg(this,sg,kR).call(this,X[1],"Classes can only extend a single class."),E??(E=F)):Q===On.ImplementsKeyword&&(N&&fg(this,sg,kR).call(this,F,"'implements' clause already seen."),N??(N=F))}let B=this.createNode(e,{type:b,abstract:vh(On.AbstractKeyword,e),body:this.createNode(e,{type:hs.ClassBody,range:[e.members.pos-1,e.end],body:e.members.filter(Gtc).map(F=>this.convertChild(F))}),declare:vh(On.DeclareKeyword,e),decorators:((o=yNe(e))==null?void 0:o.map(F=>this.convertChild(F)))??[],id:this.convertChild(e.name),implements:N?.types.map(F=>this.convertChild(F))??[],superClass:E!=null&&E.types[0]?this.convertChild(E.types[0].expression):null,superTypeArguments:void 0,typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return(l=E?.types[0])!=null&&l.typeArguments&&(B.superTypeArguments=this.convertTypeArgumentsToTypeParameterInstantiation(E.types[0].typeArguments,E.types[0])),this.fixExports(e,B)}case On.ModuleBlock:return this.createNode(e,{type:hs.TSModuleBlock,body:this.convertBodyExpressions(e.statements,e)});case On.ImportDeclaration:{this.assertModuleSpecifier(e,!1);let C=this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),importKind:"value",source:this.convertChild(e.moduleSpecifier),specifiers:[]},"assertions","attributes",!0));if(e.importClause&&(e.importClause.isTypeOnly&&(C.importKind="type"),e.importClause.name&&C.specifiers.push(this.convertChild(e.importClause)),e.importClause.namedBindings))switch(e.importClause.namedBindings.kind){case On.NamespaceImport:C.specifiers.push(this.convertChild(e.importClause.namedBindings));break;case On.NamedImports:C.specifiers.push(...e.importClause.namedBindings.elements.map(b=>this.convertChild(b)));break}return C}case On.NamespaceImport:return this.createNode(e,{type:hs.ImportNamespaceSpecifier,local:this.convertChild(e.name)});case On.ImportSpecifier:return this.createNode(e,{type:hs.ImportSpecifier,imported:this.convertChild(e.propertyName??e.name),importKind:e.isTypeOnly?"type":"value",local:this.convertChild(e.name)});case On.ImportClause:{let C=this.convertChild(e.name);return this.createNode(e,{type:hs.ImportDefaultSpecifier,range:C.range,local:C})}case On.ExportDeclaration:return((A=e.exportClause)==null?void 0:A.kind)===On.NamedExports?(this.assertModuleSpecifier(e,!0),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),declaration:null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier),specifiers:e.exportClause.elements.map(C=>this.convertChild(C,e))},"assertions","attributes",!0))):(this.assertModuleSpecifier(e,!1),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportAllDeclaration,attributes:this.convertImportAttributes(e.attributes??e.assertClause),exported:((f=e.exportClause)==null?void 0:f.kind)===On.NamespaceExport?this.convertChild(e.exportClause.name):null,exportKind:e.isTypeOnly?"type":"value",source:this.convertChild(e.moduleSpecifier)},"assertions","attributes",!0)));case On.ExportSpecifier:{let C=e.propertyName??e.name;return C.kind===On.StringLiteral&&t.kind===On.ExportDeclaration&&((I=t.moduleSpecifier)==null?void 0:I.kind)!==On.StringLiteral&&fg(this,sg,$p).call(this,C,"A string literal cannot be used as a local exported binding without `from`."),this.createNode(e,{type:hs.ExportSpecifier,exported:this.convertChild(e.name),exportKind:e.isTypeOnly?"type":"value",local:this.convertChild(C)})}case On.ExportAssignment:return e.isExportEquals?this.createNode(e,{type:hs.TSExportAssignment,expression:this.convertChild(e.expression)}):this.createNode(e,{type:hs.ExportDefaultDeclaration,declaration:this.convertChild(e.expression),exportKind:"value"});case On.PrefixUnaryExpression:case On.PostfixUnaryExpression:{let C=yce(e.operator);return C==="++"||C==="--"?(lDr(e.operand)||fg(this,sg,kR).call(this,e.operand,"Invalid left-hand side expression in unary operation"),this.createNode(e,{type:hs.UpdateExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})):this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.operand),operator:C,prefix:e.kind===On.PrefixUnaryExpression})}case On.DeleteExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"delete",prefix:!0});case On.VoidExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"void",prefix:!0});case On.TypeOfExpression:return this.createNode(e,{type:hs.UnaryExpression,argument:this.convertChild(e.expression),operator:"typeof",prefix:!0});case On.TypeOperator:return this.createNode(e,{type:hs.TSTypeOperator,operator:yce(e.operator),typeAnnotation:this.convertChild(e.type)});case On.BinaryExpression:{if(Ztc(e.operatorToken)){let b=this.createNode(e,{type:hs.SequenceExpression,expressions:[]}),E=this.convertChild(e.left);return E.type===hs.SequenceExpression&&e.left.kind!==On.ParenthesizedExpression?b.expressions.push(...E.expressions):b.expressions.push(E),b.expressions.push(this.convertChild(e.right)),b}let C=Ptc(e.operatorToken);return this.allowPattern&&C.type===hs.AssignmentExpression?this.createNode(e,{type:hs.AssignmentPattern,decorators:[],left:this.convertPattern(e.left,e),optional:!1,right:this.convertChild(e.right),typeAnnotation:void 0}):this.createNode(e,{...C,left:this.converter(e.left,e,C.type===hs.AssignmentExpression),right:this.convertChild(e.right)})}case On.PropertyAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.name),E=this.createNode(e,{type:hs.MemberExpression,computed:!1,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.ElementAccessExpression:{let C=this.convertChild(e.expression),b=this.convertChild(e.argumentExpression),E=this.createNode(e,{type:hs.MemberExpression,computed:!0,object:C,optional:e.questionDotToken!=null,property:b});return this.convertChainExpression(E,e)}case On.CallExpression:{if(e.expression.kind===On.ImportKeyword)return e.arguments.length!==1&&e.arguments.length!==2&&fg(this,sg,kR).call(this,e.arguments[2]??e,"Dynamic import requires exactly one or two arguments."),this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ImportExpression,options:e.arguments[1]?this.convertChild(e.arguments[1]):null,source:this.convertChild(e.arguments[0])},"attributes","options",!0));let C=this.convertChild(e.expression),b=e.arguments.map(B=>this.convertChild(B)),E=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),N=this.createNode(e,{type:hs.CallExpression,arguments:b,callee:C,optional:e.questionDotToken!=null,typeArguments:E});return this.convertChainExpression(N,e)}case On.NewExpression:{let C=e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e);return this.createNode(e,{type:hs.NewExpression,arguments:e.arguments?e.arguments.map(b=>this.convertChild(b)):[],callee:this.convertChild(e.expression),typeArguments:C})}case On.ConditionalExpression:return this.createNode(e,{type:hs.ConditionalExpression,alternate:this.convertChild(e.whenFalse),consequent:this.convertChild(e.whenTrue),test:this.convertChild(e.condition)});case On.MetaProperty:return this.createNode(e,{type:hs.MetaProperty,meta:this.createNode(e.getFirstToken(),{type:hs.Identifier,decorators:[],name:yce(e.keywordToken),optional:!1,typeAnnotation:void 0}),property:this.convertChild(e.name)});case On.Decorator:return this.createNode(e,{type:hs.Decorator,expression:this.convertChild(e.expression)});case On.StringLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:t.kind===On.JsxAttribute?RSi(e.text):e.text});case On.NumericLiteral:return this.createNode(e,{type:hs.Literal,raw:e.getText(),value:Number(e.text)});case On.BigIntLiteral:{let C=sJe(e,this.ast),b=this.ast.text.slice(C[0],C[1]),E=ENe(!1,b.slice(0,-1),"_",""),N=typeof BigInt<"u"?BigInt(E):null;return this.createNode(e,{type:hs.Literal,range:C,bigint:N==null?E:String(N),raw:b,value:N})}case On.RegularExpressionLiteral:{let C=e.text.slice(1,e.text.lastIndexOf("/")),b=e.text.slice(e.text.lastIndexOf("/")+1),E=null;try{E=new RegExp(C,b)}catch{}return this.createNode(e,{type:hs.Literal,raw:e.text,regex:{flags:b,pattern:C},value:E})}case On.TrueKeyword:return this.createNode(e,{type:hs.Literal,raw:"true",value:!0});case On.FalseKeyword:return this.createNode(e,{type:hs.Literal,raw:"false",value:!1});case On.NullKeyword:return this.createNode(e,{type:hs.Literal,raw:"null",value:null});case On.EmptyStatement:return this.createNode(e,{type:hs.EmptyStatement});case On.DebuggerStatement:return this.createNode(e,{type:hs.DebuggerStatement});case On.JsxElement:return this.createNode(e,{type:hs.JSXElement,children:e.children.map(C=>this.convertChild(C)),closingElement:this.convertChild(e.closingElement),openingElement:this.convertChild(e.openingElement)});case On.JsxFragment:return this.createNode(e,{type:hs.JSXFragment,children:e.children.map(C=>this.convertChild(C)),closingFragment:this.convertChild(e.closingFragment),openingFragment:this.convertChild(e.openingFragment)});case On.JsxSelfClosingElement:return this.createNode(e,{type:hs.JSXElement,children:[],closingElement:null,openingElement:this.createNode(e,{type:hs.JSXOpeningElement,range:sJe(e,this.ast),attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!0,typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):void 0})});case On.JsxOpeningElement:return this.createNode(e,{type:hs.JSXOpeningElement,attributes:e.attributes.properties.map(C=>this.convertChild(C)),name:this.convertJSXTagName(e.tagName,e),selfClosing:!1,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.JsxClosingElement:return this.createNode(e,{type:hs.JSXClosingElement,name:this.convertJSXTagName(e.tagName,e)});case On.JsxOpeningFragment:return this.createNode(e,{type:hs.JSXOpeningFragment});case On.JsxClosingFragment:return this.createNode(e,{type:hs.JSXClosingFragment});case On.JsxExpression:{let C=e.expression?this.convertChild(e.expression):this.createNode(e,{type:hs.JSXEmptyExpression,range:[e.getStart(this.ast)+1,e.getEnd()-1]});return e.dotDotDotToken?this.createNode(e,{type:hs.JSXSpreadChild,expression:C}):this.createNode(e,{type:hs.JSXExpressionContainer,expression:C})}case On.JsxAttribute:return this.createNode(e,{type:hs.JSXAttribute,name:this.convertJSXNamespaceOrIdentifier(e.name),value:this.convertChild(e.initializer)});case On.JsxText:{let C=e.getFullStart(),b=e.getEnd(),E=this.ast.text.slice(C,b);return this.createNode(e,{type:hs.JSXText,range:[C,b],raw:E,value:RSi(E)})}case On.JsxSpreadAttribute:return this.createNode(e,{type:hs.JSXSpreadAttribute,argument:this.convertChild(e.expression)});case On.QualifiedName:return this.createNode(e,{type:hs.TSQualifiedName,left:this.convertChild(e.left),right:this.convertChild(e.right)});case On.TypeReference:return this.createNode(e,{type:hs.TSTypeReference,typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e),typeName:this.convertChild(e.typeName)});case On.TypeParameter:return this.createNode(e,{type:hs.TSTypeParameter,const:vh(On.ConstKeyword,e),constraint:e.constraint&&this.convertChild(e.constraint),default:e.default?this.convertChild(e.default):void 0,in:vh(On.InKeyword,e),name:this.convertChild(e.name),out:vh(On.OutKeyword,e)});case On.ThisType:return this.createNode(e,{type:hs.TSThisType});case On.AnyKeyword:case On.BigIntKeyword:case On.BooleanKeyword:case On.NeverKeyword:case On.NumberKeyword:case On.ObjectKeyword:case On.StringKeyword:case On.SymbolKeyword:case On.UnknownKeyword:case On.VoidKeyword:case On.UndefinedKeyword:case On.IntrinsicKeyword:return this.createNode(e,{type:hs[`TS${On[e.kind]}`]});case On.NonNullExpression:{let C=this.createNode(e,{type:hs.TSNonNullExpression,expression:this.convertChild(e.expression)});return this.convertChainExpression(C,e)}case On.TypeLiteral:return this.createNode(e,{type:hs.TSTypeLiteral,members:e.members.map(C=>this.convertChild(C))});case On.ArrayType:return this.createNode(e,{type:hs.TSArrayType,elementType:this.convertChild(e.elementType)});case On.IndexedAccessType:return this.createNode(e,{type:hs.TSIndexedAccessType,indexType:this.convertChild(e.indexType),objectType:this.convertChild(e.objectType)});case On.ConditionalType:return this.createNode(e,{type:hs.TSConditionalType,checkType:this.convertChild(e.checkType),extendsType:this.convertChild(e.extendsType),falseType:this.convertChild(e.falseType),trueType:this.convertChild(e.trueType)});case On.TypeQuery:return this.createNode(e,{type:hs.TSTypeQuery,exprName:this.convertChild(e.exprName),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)});case On.MappedType:return e.members&&e.members.length>0&&fg(this,sg,kR).call(this,e.members[0],"A mapped type may not declare properties or methods."),this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSMappedType,constraint:this.convertChild(e.typeParameter.constraint),key:this.convertChild(e.typeParameter.name),nameType:this.convertChild(e.nameType)??null,optional:e.questionToken&&(e.questionToken.kind===On.QuestionToken||yce(e.questionToken.kind)),readonly:e.readonlyToken&&(e.readonlyToken.kind===On.ReadonlyKeyword||yce(e.readonlyToken.kind)),typeAnnotation:e.type&&this.convertChild(e.type)},"typeParameter","'constraint' and 'key'",this.convertChild(e.typeParameter)));case On.ParenthesizedExpression:return this.convertChild(e.expression,t);case On.TypeAliasDeclaration:{let C=this.createNode(e,{type:hs.TSTypeAliasDeclaration,declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name),typeAnnotation:this.convertChild(e.type),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,C)}case On.MethodSignature:return this.convertMethodSignature(e);case On.PropertySignature:{let{initializer:C}=e;return C&&fg(this,sg,$p).call(this,C,"A property signature cannot have an initializer."),this.createNode(e,{type:hs.TSPropertySignature,accessibility:xme(e),computed:INe(e.name),key:this.convertChild(e.name),optional:NSi(e),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)})}case On.IndexSignature:return this.createNode(e,{type:hs.TSIndexSignature,accessibility:xme(e),parameters:e.parameters.map(C=>this.convertChild(C)),readonly:vh(On.ReadonlyKeyword,e),static:vh(On.StaticKeyword,e),typeAnnotation:e.type&&this.convertTypeAnnotation(e.type,e)});case On.ConstructorType:return this.createNode(e,{type:hs.TSConstructorType,abstract:vh(On.AbstractKeyword,e),params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});case On.FunctionType:{let{modifiers:C}=e;C&&fg(this,sg,$p).call(this,C[0],"A function type cannot have modifiers.")}case On.ConstructSignature:case On.CallSignature:{let C=e.kind===On.ConstructSignature?hs.TSConstructSignatureDeclaration:e.kind===On.CallSignature?hs.TSCallSignatureDeclaration:hs.TSFunctionType;return this.createNode(e,{type:C,params:this.convertParameters(e.parameters),returnType:e.type&&this.convertTypeAnnotation(e.type,e),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)})}case On.ExpressionWithTypeArguments:{let C=t.kind,b=C===On.InterfaceDeclaration?hs.TSInterfaceHeritage:C===On.HeritageClause?hs.TSClassImplements:hs.TSInstantiationExpression;return this.createNode(e,{type:b,expression:this.convertChild(e.expression),typeArguments:e.typeArguments&&this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e)})}case On.InterfaceDeclaration:{let C=e.heritageClauses??[],b=[];for(let N of C){N.token!==On.ExtendsKeyword&&fg(this,sg,$p).call(this,N,N.token===On.ImplementsKeyword?"Interface declaration cannot have 'implements' clause.":"Unexpected token.");for(let B of N.types)b.push(this.convertChild(B,e))}let E=this.createNode(e,{type:hs.TSInterfaceDeclaration,body:this.createNode(e,{type:hs.TSInterfaceBody,range:[e.members.pos-1,e.end],body:e.members.map(N=>this.convertChild(N))}),declare:vh(On.DeclareKeyword,e),extends:b,id:this.convertChild(e.name),typeParameters:e.typeParameters&&this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters)});return this.fixExports(e,E)}case On.TypePredicate:{let C=this.createNode(e,{type:hs.TSTypePredicate,asserts:e.assertsModifier!=null,parameterName:this.convertChild(e.parameterName),typeAnnotation:null});return e.type&&(C.typeAnnotation=this.convertTypeAnnotation(e.type,e),C.typeAnnotation.loc=C.typeAnnotation.typeAnnotation.loc,C.typeAnnotation.range=C.typeAnnotation.typeAnnotation.range),C}case On.ImportType:{let C=sJe(e,this.ast);if(e.isTypeOf){let E=fNe(e.getFirstToken(),e,this.ast);C[0]=E.getStart(this.ast)}let b=this.createNode(e,{type:hs.TSImportType,range:C,argument:this.convertChild(e.argument),attributes:this.convertImportAttributes(e.attributes),qualifier:this.convertChild(e.qualifier),typeArguments:e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null});return e.isTypeOf?this.createNode(e,{type:hs.TSTypeQuery,exprName:b,typeArguments:void 0}):b}case On.EnumDeclaration:{let C=e.members.map(E=>this.convertChild(E)),b=this.createNode(e,fg(this,sg,ENr).call(this,{type:hs.TSEnumDeclaration,body:this.createNode(e,{type:hs.TSEnumBody,range:[e.members.pos-1,e.end],members:C}),const:vh(On.ConstKeyword,e),declare:vh(On.DeclareKeyword,e),id:this.convertChild(e.name)},"members","'body.members'",e.members.map(E=>this.convertChild(E))));return this.fixExports(e,b)}case On.EnumMember:return this.createNode(e,{type:hs.TSEnumMember,computed:e.name.kind===Tp.ComputedPropertyName,id:this.convertChild(e.name),initializer:e.initializer&&this.convertChild(e.initializer)});case On.ModuleDeclaration:{let C=vh(On.DeclareKeyword,e),b=this.createNode(e,{type:hs.TSModuleDeclaration,...(()=>{if(e.flags&IO.GlobalAugmentation){let N=this.convertChild(e.name),B=this.convertChild(e.body);return(B==null||B.type===hs.TSModuleDeclaration)&&fg(this,sg,kR).call(this,e.body??e,"Expected a valid module body"),N.type!==hs.Identifier&&fg(this,sg,kR).call(this,e.name,"global module augmentation must have an Identifier id"),{body:B,declare:!1,global:!1,id:N,kind:"global"}}if(!(e.flags&IO.Namespace)){let N=this.convertChild(e.body);return{kind:"module",...N!=null?{body:N}:{},declare:!1,global:!1,id:this.convertChild(e.name)}}e.body==null&&fg(this,sg,kR).call(this,e,"Expected a module body"),e.name.kind!==Tp.Identifier&&fg(this,sg,kR).call(this,e.name,"`namespace`s must have an Identifier id");let E=this.createNode(e.name,{type:hs.Identifier,range:[e.name.getStart(this.ast),e.name.getEnd()],decorators:[],name:e.name.text,optional:!1,typeAnnotation:void 0});for(;e.body&&EJe(e.body)&&e.body.name;){e=e.body,C||(C=vh(On.DeclareKeyword,e));let N=e.name,B=this.createNode(N,{type:hs.Identifier,range:[N.getStart(this.ast),N.getEnd()],decorators:[],name:N.text,optional:!1,typeAnnotation:void 0});E=this.createNode(N,{type:hs.TSQualifiedName,range:[E.range[0],B.range[1]],left:E,right:B})}return{body:this.convertChild(e.body),declare:!1,global:!1,id:E,kind:"namespace"}})()});return b.declare=C,e.flags&IO.GlobalAugmentation&&(b.global=!0),this.fixExports(e,b)}case On.ParenthesizedType:return this.convertChild(e.type);case On.UnionType:return this.createNode(e,{type:hs.TSUnionType,types:e.types.map(C=>this.convertChild(C))});case On.IntersectionType:return this.createNode(e,{type:hs.TSIntersectionType,types:e.types.map(C=>this.convertChild(C))});case On.AsExpression:return this.createNode(e,{type:hs.TSAsExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.InferType:return this.createNode(e,{type:hs.TSInferType,typeParameter:this.convertChild(e.typeParameter)});case On.LiteralType:return e.literal.kind===On.NullKeyword?this.createNode(e.literal,{type:hs.TSNullKeyword}):this.createNode(e,{type:hs.TSLiteralType,literal:this.convertChild(e.literal)});case On.TypeAssertionExpression:return this.createNode(e,{type:hs.TSTypeAssertion,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});case On.ImportEqualsDeclaration:return this.fixExports(e,this.createNode(e,{type:hs.TSImportEqualsDeclaration,id:this.convertChild(e.name),importKind:e.isTypeOnly?"type":"value",moduleReference:this.convertChild(e.moduleReference)}));case On.ExternalModuleReference:return e.expression.kind!==On.StringLiteral&&fg(this,sg,$p).call(this,e.expression,"String literal expected."),this.createNode(e,{type:hs.TSExternalModuleReference,expression:this.convertChild(e.expression)});case On.NamespaceExportDeclaration:return this.createNode(e,{type:hs.TSNamespaceExportDeclaration,id:this.convertChild(e.name)});case On.AbstractKeyword:return this.createNode(e,{type:hs.TSAbstractKeyword});case On.TupleType:{let C=e.elements.map(b=>this.convertChild(b));return this.createNode(e,{type:hs.TSTupleType,elementTypes:C})}case On.NamedTupleMember:{let C=this.createNode(e,{type:hs.TSNamedTupleMember,elementType:this.convertChild(e.type,e),label:this.convertChild(e.name,e),optional:e.questionToken!=null});return e.dotDotDotToken?(C.range[0]=C.label.range[0],C.loc.start=C.label.loc.start,this.createNode(e,{type:hs.TSRestType,typeAnnotation:C})):C}case On.OptionalType:return this.createNode(e,{type:hs.TSOptionalType,typeAnnotation:this.convertChild(e.type)});case On.RestType:return this.createNode(e,{type:hs.TSRestType,typeAnnotation:this.convertChild(e.type)});case On.TemplateLiteralType:{let C=this.createNode(e,{type:hs.TSTemplateLiteralType,quasis:[this.convertChild(e.head)],types:[]});return e.templateSpans.forEach(b=>{C.types.push(this.convertChild(b.type)),C.quasis.push(this.convertChild(b.literal))}),C}case On.ClassStaticBlockDeclaration:return this.createNode(e,{type:hs.StaticBlock,body:this.convertBodyExpressions(e.body.statements,e)});case On.AssertEntry:case On.ImportAttribute:return this.createNode(e,{type:hs.ImportAttribute,key:this.convertChild(e.name),value:this.convertChild(e.value)});case On.SatisfiesExpression:return this.createNode(e,{type:hs.TSSatisfiesExpression,expression:this.convertChild(e.expression),typeAnnotation:this.convertChild(e.type)});default:return this.deeplyCopy(e)}}createNode(e,t){let r=t;return r.range??(r.range=sJe(e,this.ast)),r.loc??(r.loc=Zme(r.range,this.ast)),r&&this.options.shouldPreserveNodeMaps&&this.esTreeNodeToTSNodeMap.set(r,e),r}convertProgram(){return this.converter(this.ast)}deeplyCopy(e){e.kind===Tp.JSDocFunctionType&&fg(this,sg,$p).call(this,e,"JSDoc types can only be used inside documentation comments.");let t=`TS${On[e.kind]}`;if(this.options.errorOnUnknownASTType&&!hs[t])throw new Error(`Unknown AST_NODE_TYPE: "${t}"`);let r=this.createNode(e,{type:t});"type"in e&&(r.typeAnnotation=e.type&&"kind"in e.type&&Nza(e.type)?this.convertTypeAnnotation(e.type,e):null),"typeArguments"in e&&(r.typeArguments=e.typeArguments&&"pos"in e.typeArguments?this.convertTypeArgumentsToTypeParameterInstantiation(e.typeArguments,e):null),"typeParameters"in e&&(r.typeParameters=e.typeParameters&&"pos"in e.typeParameters?this.convertTSTypeParametersToTypeParametersDeclaration(e.typeParameters):null);let n=yNe(e);n!=null&&n.length&&(r.decorators=n.map(o=>this.convertChild(o)));let a=new Set(["_children","decorators","end","flags","heritageClauses","illegalDecorators","jsDoc","kind","locals","localSymbol","modifierFlagsCache","modifiers","nextContainer","parent","pos","symbol","transformFlags","type","typeArguments","typeParameters"]);return Object.entries(e).filter(([o])=>!a.has(o)).forEach(([o,l])=>{Array.isArray(l)?r[o]=l.map(A=>this.convertChild(A)):l&&typeof l=="object"&&l.kind?r[o]=this.convertChild(l):r[o]=l}),r}fixExports(e,t){let r=EJe(e)&&e.flags&IO.Namespace?orc(e):Ij(e);if(r?.[0].kind===On.ExportKeyword){this.registerTSNodeInNodeMap(e,t);let n=r[0],a=r[1],o=a?.kind===On.DefaultKeyword,l=o?fNe(a,this.ast,this.ast):fNe(n,this.ast,this.ast);if(t.range[0]=l.getStart(this.ast),t.loc=Zme(t.range,this.ast),o)return this.createNode(e,{type:hs.ExportDefaultDeclaration,range:[n.getStart(this.ast),t.range[1]],declaration:t,exportKind:"value"});let A=t.type===hs.TSInterfaceDeclaration||t.type===hs.TSTypeAliasDeclaration,f="declare"in t&&t.declare;return this.createNode(e,fg(this,sg,bNe).call(this,{type:hs.ExportNamedDeclaration,range:[n.getStart(this.ast),t.range[1]],attributes:[],declaration:t,exportKind:A||f?"type":"value",source:null,specifiers:[]},"assertions","attributes",!0))}return t}getASTMaps(){return{esTreeNodeToTSNodeMap:this.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:this.tsNodeToESTreeNodeMap}}registerTSNodeInNodeMap(e,t){t&&this.options.shouldPreserveNodeMaps&&!this.tsNodeToESTreeNodeMap.has(e)&&this.tsNodeToESTreeNodeMap.set(e,t)}};sg=new WeakSet,bNr=function(e,t){let r=t===Tp.ForInStatement?"for...in":"for...of";if(gec(e)){e.declarations.length!==1&&fg(this,sg,$p).call(this,e,`Only a single variable declaration is allowed in a '${r}' statement.`);let n=e.declarations[0];n.initializer?fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have an initializer.`):n.type&&fg(this,sg,$p).call(this,n,`The variable declaration of a '${r}' statement cannot have a type annotation.`),t===Tp.ForInStatement&&e.flags&IO.Using&&fg(this,sg,$p).call(this,e,"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.")}else!lDr(e)&&e.kind!==Tp.ObjectLiteralExpression&&e.kind!==Tp.ArrayLiteralExpression&&fg(this,sg,$p).call(this,e,`The left-hand side of a '${r}' statement must be a variable or a property access.`)},MBi=function(e){if(!this.options.allowInvalidAST){Ktc(e)&&fg(this,sg,$p).call(this,e.illegalDecorators[0],"Decorators are not valid here.");for(let t of yNe(e,!0)??[])src(e)||(INr(e)&&!DSi(e.body)?fg(this,sg,$p).call(this,t,"A decorator can only decorate a method implementation, not an overload."):fg(this,sg,$p).call(this,t,"Decorators are not valid here."));for(let t of Ij(e,!0)??[]){if(t.kind!==On.ReadonlyKeyword&&((e.kind===On.PropertySignature||e.kind===On.MethodSignature)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type member`),e.kind===On.IndexSignature&&(t.kind!==On.StaticKeyword||!wNe(e.parent))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on an index signature`)),t.kind!==On.InKeyword&&t.kind!==On.OutKeyword&&t.kind!==On.ConstKeyword&&e.kind===On.TypeParameter&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a type parameter`),(t.kind===On.InKeyword||t.kind===On.OutKeyword)&&(e.kind!==On.TypeParameter||!(nDr(e.parent)||wNe(e.parent)||dBi(e.parent)))&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a type parameter of a class, interface or type alias`),t.kind===On.ReadonlyKeyword&&e.kind!==On.PropertyDeclaration&&e.kind!==On.PropertySignature&&e.kind!==On.IndexSignature&&e.kind!==On.Parameter&&fg(this,sg,$p).call(this,t,"'readonly' modifier can only appear on a property declaration or index signature."),t.kind===On.DeclareKeyword&&wNe(e.parent)&&!Kbt(e)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on class elements of this kind.`),t.kind===On.DeclareKeyword&&rEt(e)){let r=yNr(e.declarationList);(r==="using"||r==="await using")&&fg(this,sg,$p).call(this,t,`'declare' modifier cannot appear on a '${r}' declaration.`)}if(t.kind===On.AbstractKeyword&&e.kind!==On.ClassDeclaration&&e.kind!==On.ConstructorType&&e.kind!==On.MethodDeclaration&&e.kind!==On.PropertyDeclaration&&e.kind!==On.GetAccessor&&e.kind!==On.SetAccessor&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier can only appear on a class, method, or property declaration.`),(t.kind===On.StaticKeyword||t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)&&(e.parent.kind===On.ModuleBlock||e.parent.kind===On.SourceFile)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a module or namespace element.`),t.kind===On.AccessorKeyword&&e.kind!==On.PropertyDeclaration&&fg(this,sg,$p).call(this,t,"'accessor' modifier can only appear on a property declaration."),t.kind===On.AsyncKeyword&&e.kind!==On.MethodDeclaration&&e.kind!==On.FunctionDeclaration&&e.kind!==On.FunctionExpression&&e.kind!==On.ArrowFunction&&fg(this,sg,$p).call(this,t,"'async' modifier cannot be used here."),e.kind===On.Parameter&&(t.kind===On.StaticKeyword||t.kind===On.ExportKeyword||t.kind===On.DeclareKeyword||t.kind===On.AsyncKeyword)&&fg(this,sg,$p).call(this,t,`'${by(t.kind)}' modifier cannot appear on a parameter.`),t.kind===On.PublicKeyword||t.kind===On.ProtectedKeyword||t.kind===On.PrivateKeyword)for(let r of Ij(e)??[])r!==t&&(r.kind===On.PublicKeyword||r.kind===On.ProtectedKeyword||r.kind===On.PrivateKeyword)&&fg(this,sg,$p).call(this,r,"Accessibility modifier already seen.");if(e.kind===On.Parameter&&(t.kind===On.PublicKeyword||t.kind===On.PrivateKeyword||t.kind===On.ProtectedKeyword||t.kind===On.ReadonlyKeyword||t.kind===On.OverrideKeyword)){let r=trc(e);r.kind===On.Constructor&&DSi(r.body)||fg(this,sg,$p).call(this,t,"A parameter property is only allowed in a constructor implementation.")}}}},$p=function(e,t){let r,n;throw typeof e=="number"?r=n=e:(r=e.getStart(this.ast),n=e.getEnd()),WBi(t,this.ast,r,n)},kR=function(e,t){this.options.allowInvalidAST||fg(this,sg,$p).call(this,e,t)},bNe=function(e,t,r,n=!1){let a=n;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>e[r]:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use '${r}' instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),e[r]),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e},ENr=function(e,t,r,n){let a=!1;return Object.defineProperty(e,t,{configurable:!0,get:this.options.suppressDeprecatedPropertyWarnings?()=>n:()=>(a||((void 0)(`The '${t}' property is deprecated on ${e.type} nodes. Use ${r} instead. See https://typescript-eslint.io/troubleshooting/faqs/general#the-key-property-is-deprecated-on-type-nodes-use-key-instead-warnings.`,"DeprecationWarning"),a=!0),n),set(o){Object.defineProperty(e,t,{enumerable:!0,value:o,writable:!0})}}),e};function lrc(e,t,r=e.getSourceFile()){let n=[];for(;;){if(Nvi(e.kind))t(e);else{let a=e.getChildren(r);if(a.length===1){e=a[0];continue}for(let o=a.length-1;o>=0;--o)n.push(a[o])}if(n.length===0)break;e=n.pop()}}function urc(e,t,r=e.getSourceFile()){let n=r.text,a=r.languageVariant!==nvi.JSX;return lrc(e,l=>{if(l.pos!==l.end&&(l.kind!==Tp.JsxText&&W7a(n,l.pos===0?(yvi(n)??"").length:l.pos,o),a||grc(l)))return O7a(n,l.end,o)},r);function o(l,A,f){t(n,{end:A,kind:f,pos:l})}}function grc(e){switch(e.kind){case Tp.CloseBraceToken:return e.parent.kind!==Tp.JsxExpression||!rNr(e.parent.parent);case Tp.GreaterThanToken:switch(e.parent.kind){case Tp.JsxClosingElement:case Tp.JsxClosingFragment:return!rNr(e.parent.parent.parent);case Tp.JsxOpeningElement:return e.end!==e.parent.end;case Tp.JsxOpeningFragment:return!1;case Tp.JsxSelfClosingElement:return e.end!==e.parent.end||!rNr(e.parent.parent)}}return!0}function rNr(e){return e.kind===Tp.JsxElement||e.kind===Tp.JsxFragment}var[rRu,nRu]=F6a.split(".").map(e=>Number.parseInt(e,10)),iRu=kG.Intrinsic??kG.Any|kG.Unknown|kG.String|kG.Number|kG.BigInt|kG.Boolean|kG.BooleanLiteral|kG.ESSymbol|kG.Void|kG.Undefined|kG.Null|kG.Never|kG.NonPrimitive;function Arc(e,t){let r=[];return urc(e,(n,a)=>{let o=a.kind===Tp.SingleLineCommentTrivia?sD.Line:sD.Block,l=[a.pos,a.end],A=Zme(l,e),f=l[0]+2,I=a.kind===Tp.SingleLineCommentTrivia?l[1]-f:l[1]-f-2;r.push({type:o,loc:A,range:l,value:t.slice(f,f+I)})},e),r}var drc=()=>{};function prc(e,t,r){let{parseDiagnostics:n}=e;if(n.length)throw arc(n[0]);let a=new crc(e,{allowInvalidAST:t.allowInvalidAST,errorOnUnknownASTType:t.errorOnUnknownASTType,shouldPreserveNodeMaps:r,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings}),o=a.convertProgram();return(!t.range||!t.loc)&&drc(o,{enter:l=>{t.range||delete l.range,t.loc||delete l.loc}}),t.tokens&&(o.tokens=Jtc(e)),t.comment&&(o.comments=Arc(e,t.codeFullText)),{astMaps:a.getASTMaps(),estree:o}}function HBi(e){if(typeof e!="object"||e==null)return!1;let t=e;return t.kind===Tp.SourceFile&&typeof t.getFullText=="function"}var frc=function(e){return e&&e.__esModule?e:{default:e}},Irc=frc({extname:e=>"."+e.split(".").pop()});function hrc(e,t){switch(Irc.default.extname(e).toLowerCase()){case tH.Cjs:case tH.Js:case tH.Mjs:return Bee.JS;case tH.Cts:case tH.Mts:case tH.Ts:return Bee.TS;case tH.Json:return Bee.JSON;case tH.Jsx:return Bee.JSX;case tH.Tsx:return Bee.TSX;default:return t?Bee.TSX:Bee.TS}}var mrc={default:TNr},Crc=(0,mrc.default)("typescript-eslint:typescript-estree:create-program:createSourceFile");function _rc(e){return Crc("Getting AST without type information in %s mode for: %s",e.jsx?"TSX":"TS",e.filePath),HBi(e.code)?e.code:ttc(e.filePath,e.codeFullText,{jsDocParsingMode:e.jsDocParsingMode,languageVersion:GNr.Latest,setExternalModuleIndicator:e.setExternalModuleIndicator},!0,hrc(e.filePath,e.jsx))}var yrc=()=>{},brc=e=>e,Erc=class{},Src=()=>!1,vrc=()=>{},Brc=function(e){return e&&e.__esModule?e:{default:e}},SNr={default:TNr},wrc=Brc({extname:e=>"."+e.split(".").pop()}),Trc=(0,SNr.default)("typescript-eslint:typescript-estree:parseSettings:createParseSettings"),kSi,xSi=null,GSi,FSi,ZSi,LSi,oJe={ParseAll:(GSi=uJe)==null?void 0:GSi.ParseAll,ParseForTypeErrors:(FSi=uJe)==null?void 0:FSi.ParseForTypeErrors,ParseForTypeInfo:(ZSi=uJe)==null?void 0:ZSi.ParseForTypeInfo,ParseNone:(LSi=uJe)==null?void 0:LSi.ParseNone};function Rrc(e,t={}){var r;let n=Nrc(e),a=Src(t),o=typeof t.tsconfigRootDir=="string"?t.tsconfigRootDir:"/prettier-security-dirname-placeholder",l=typeof t.loggerFn=="function",A=brc(typeof t.filePath=="string"&&t.filePath!==""?t.filePath:Drc(t.jsx),o),f=wrc.default.extname(A).toLowerCase(),I=(()=>{switch(t.jsDocParsingMode){case"all":return oJe.ParseAll;case"none":return oJe.ParseNone;case"type-info":return oJe.ParseForTypeInfo;default:return oJe.ParseAll}})(),C={loc:t.loc===!0,range:t.range===!0,allowInvalidAST:t.allowInvalidAST===!0,code:e,codeFullText:n,comment:t.comment===!0,comments:[],debugLevel:t.debugLevel===!0?new Set(["typescript-eslint"]):Array.isArray(t.debugLevel)?new Set(t.debugLevel):new Set,errorOnTypeScriptSyntacticAndSemanticIssues:!1,errorOnUnknownASTType:t.errorOnUnknownASTType===!0,extraFileExtensions:Array.isArray(t.extraFileExtensions)&&t.extraFileExtensions.every(b=>typeof b=="string")?t.extraFileExtensions:[],filePath:A,jsDocParsingMode:I,jsx:t.jsx===!0,log:typeof t.loggerFn=="function"?t.loggerFn:t.loggerFn===!1?()=>{}:console.log,preserveNodeMaps:t.preserveNodeMaps!==!1,programs:Array.isArray(t.programs)?t.programs:null,projects:new Map,projectService:t.projectService||t.project&&t.projectService!==!1&&(void 0).env.TYPESCRIPT_ESLINT_PROJECT_SERVICE==="true"?xSi??(xSi=yrc(t.projectService,I,o)):void 0,setExternalModuleIndicator:t.sourceType==="module"||t.sourceType==null&&f===tH.Mjs||t.sourceType==null&&f===tH.Mts?b=>{b.externalModuleIndicator=!0}:void 0,singleRun:a,suppressDeprecatedPropertyWarnings:t.suppressDeprecatedPropertyWarnings??!0,tokens:t.tokens===!0?[]:null,tsconfigMatchCache:kSi??(kSi=new Erc(a?"Infinity":((r=t.cacheLifetime)==null?void 0:r.glob)??void 0)),tsconfigRootDir:o};if(C.debugLevel.size>0){let b=[];C.debugLevel.has("typescript-eslint")&&b.push("typescript-eslint:*"),(C.debugLevel.has("eslint")||SNr.default.enabled("eslint:*,-eslint:code-path"))&&b.push("eslint:*,-eslint:code-path"),SNr.default.enable(b.join(","))}if(Array.isArray(t.programs)){if(!t.programs.length)throw new Error("You have set parserOptions.programs to an empty array. This will cause all files to not be found in existing programs. Either provide one or more existing TypeScript Program instances in the array, or remove the parserOptions.programs setting.");Trc("parserOptions.programs was provided, so parserOptions.project will be ignored.")}return!C.programs&&!C.projectService&&(C.projects=new Map),t.jsDocParsingMode==null&&C.projects.size===0&&C.programs==null&&C.projectService==null&&(C.jsDocParsingMode=oJe.ParseNone),vrc(C,l),C}function Nrc(e){return HBi(e)?e.getFullText(e):typeof e=="string"?e:String(e)}function Drc(e){return e?"estree.tsx":"estree.ts"}var krc={default:TNr},sRu=(0,krc.default)("typescript-eslint:typescript-estree:parser");function xrc(e,t){let{ast:r}=Grc(e,t,!1);return r}function Grc(e,t,r){let n=Rrc(e,t);if(t!=null&&t.errorOnTypeScriptSyntacticAndSemanticIssues)throw new Error('"errorOnTypeScriptSyntacticAndSemanticIssues" is only supported for parseAndGenerateServices()');let a=_rc(n),{astMaps:o,estree:l}=prc(a,n,r);return{ast:l,esTreeNodeToTSNodeMap:o.esTreeNodeToTSNodeMap,tsNodeToESTreeNodeMap:o.tsNodeToESTreeNodeMap}}function Frc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var Zrc=Frc;function Lrc(e){let t=[];for(let r of e)try{return r()}catch(n){t.push(n)}throw Object.assign(new Error("All combinations failed"),{errors:t})}var Vrc=Lrc,Prc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},VSi=Prc;function Wrc(e){return Array.isArray(e)&&e.length>0}var Orc=Wrc;function pj(e){var t,r,n;let a=((t=e.range)==null?void 0:t[0])??e.start,o=(n=((r=e.declaration)==null?void 0:r.decorators)??e.decorators)==null?void 0:n[0];return o?Math.min(pj(o),a):a}function Lme(e){var t;return((t=e.range)==null?void 0:t[1])??e.end}function Mrc(e){let t=new Set(e);return r=>t.has(r?.type)}var Hrc=Mrc,Yrc=Hrc(["Block","CommentBlock","MultiLine"]),vNr=Yrc;function Qrc(e){let t=`*${e.value}*`.split(` `);return t.length>1&&t.every(r=>r.trimStart()[0]==="*")}var PSi=Qrc;function Xrc(e){return vNr(e)&&e.value[0]==="*"&&/@(?:type|satisfies)\b/u.test(e.value)}var Jrc=Xrc,aJe=null;function hJe(e){if(aJe!==null&&typeof aJe.property){let t=aJe;return aJe=hJe.prototype=null,t}return aJe=hJe.prototype=e??Object.create(null),new hJe}var Urc=10;for(let e=0;e<=Urc;e++)hJe();function Krc(e){return hJe(e)}function jrc(e,t="type"){Krc(e);function r(n){let a=n[t],o=e[a];if(!Array.isArray(o))throw Object.assign(new Error(`Missing visitor keys for '${a}'.`),{node:n});return o}return r}var zrc=jrc,qrc={ArrayExpression:["elements"],AssignmentExpression:["left","right"],BinaryExpression:["left","right"],InterpreterDirective:[],Directive:["value"],DirectiveLiteral:[],BlockStatement:["directives","body"],BreakStatement:["label"],CallExpression:["callee","arguments","typeParameters","typeArguments"],CatchClause:["param","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],File:["program"],ForInStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","typeParameters","params","predicate","returnType","body"],FunctionExpression:["id","typeParameters","params","returnType","body"],Identifier:["typeAnnotation","decorators"],IfStatement:["test","consequent","alternate"],LabeledStatement:["label","body"],StringLiteral:[],NumericLiteral:[],NullLiteral:[],BooleanLiteral:[],RegExpLiteral:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],NewExpression:["callee","arguments","typeParameters","typeArguments"],Program:["directives","body"],ObjectExpression:["properties"],ObjectMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectProperty:["key","value","decorators"],RestElement:["argument","typeAnnotation","decorators"],ReturnStatement:["argument"],SequenceExpression:["expressions"],ParenthesizedExpression:["expression"],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],AssignmentPattern:["left","right","decorators","typeAnnotation"],ArrayPattern:["elements","typeAnnotation","decorators"],ArrowFunctionExpression:["typeParameters","params","predicate","returnType","body"],ClassBody:["body"],ClassExpression:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ClassDeclaration:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body","superTypeArguments"],ExportAllDeclaration:["source","attributes","exported"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source","attributes"],ExportSpecifier:["local","exported"],ForOfStatement:["left","right","body"],ImportDeclaration:["specifiers","source","attributes"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],ImportExpression:["source","options"],MetaProperty:["meta","property"],ClassMethod:["decorators","key","typeParameters","params","returnType","body"],ObjectPattern:["properties","typeAnnotation","decorators"],SpreadElement:["argument"],Super:[],TaggedTemplateExpression:["tag","typeParameters","quasi","typeArguments"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],YieldExpression:["argument"],AwaitExpression:["argument"],BigIntLiteral:[],ExportNamespaceSpecifier:["exported"],OptionalMemberExpression:["object","property"],OptionalCallExpression:["callee","arguments","typeParameters","typeArguments"],ClassProperty:["decorators","variance","key","typeAnnotation","value"],ClassAccessorProperty:["decorators","key","typeAnnotation","value"],ClassPrivateProperty:["decorators","variance","key","typeAnnotation","value"],ClassPrivateMethod:["decorators","key","typeParameters","params","returnType","body"],PrivateName:["id"],StaticBlock:["body"],AnyTypeAnnotation:[],ArrayTypeAnnotation:["elementType"],BooleanTypeAnnotation:[],BooleanLiteralTypeAnnotation:[],NullLiteralTypeAnnotation:[],ClassImplements:["id","typeParameters"],DeclareClass:["id","typeParameters","extends","mixins","implements","body"],DeclareFunction:["id","predicate"],DeclareInterface:["id","typeParameters","extends","body"],DeclareModule:["id","body"],DeclareModuleExports:["typeAnnotation"],DeclareTypeAlias:["id","typeParameters","right"],DeclareOpaqueType:["id","typeParameters","supertype"],DeclareVariable:["id"],DeclareExportDeclaration:["declaration","specifiers","source","attributes"],DeclareExportAllDeclaration:["source","attributes"],DeclaredPredicate:["value"],ExistsTypeAnnotation:[],FunctionTypeAnnotation:["typeParameters","this","params","rest","returnType"],FunctionTypeParam:["name","typeAnnotation"],GenericTypeAnnotation:["id","typeParameters"],InferredPredicate:[],InterfaceExtends:["id","typeParameters"],InterfaceDeclaration:["id","typeParameters","extends","body"],InterfaceTypeAnnotation:["extends","body"],IntersectionTypeAnnotation:["types"],MixedTypeAnnotation:[],EmptyTypeAnnotation:[],NullableTypeAnnotation:["typeAnnotation"],NumberLiteralTypeAnnotation:[],NumberTypeAnnotation:[],ObjectTypeAnnotation:["properties","indexers","callProperties","internalSlots"],ObjectTypeInternalSlot:["id","value"],ObjectTypeCallProperty:["value"],ObjectTypeIndexer:["variance","id","key","value"],ObjectTypeProperty:["key","value","variance"],ObjectTypeSpreadProperty:["argument"],OpaqueType:["id","typeParameters","supertype","impltype"],QualifiedTypeIdentifier:["qualification","id"],StringLiteralTypeAnnotation:[],StringTypeAnnotation:[],SymbolTypeAnnotation:[],ThisTypeAnnotation:[],TupleTypeAnnotation:["types","elementTypes"],TypeofTypeAnnotation:["argument","typeArguments"],TypeAlias:["id","typeParameters","right"],TypeAnnotation:["typeAnnotation"],TypeCastExpression:["expression","typeAnnotation"],TypeParameter:["bound","default","variance"],TypeParameterDeclaration:["params"],TypeParameterInstantiation:["params"],UnionTypeAnnotation:["types"],Variance:[],VoidTypeAnnotation:[],EnumDeclaration:["id","body"],EnumBooleanBody:["members"],EnumNumberBody:["members"],EnumStringBody:["members"],EnumSymbolBody:["members"],EnumBooleanMember:["id","init"],EnumNumberMember:["id","init"],EnumStringMember:["id","init"],EnumDefaultedMember:["id"],IndexedAccessType:["objectType","indexType"],OptionalIndexedAccessType:["objectType","indexType"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXSpreadChild:["expression"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","typeParameters","typeArguments","attributes"],JSXSpreadAttribute:["argument"],JSXText:[],JSXFragment:["openingFragment","children","closingFragment"],JSXOpeningFragment:[],JSXClosingFragment:[],Noop:[],Placeholder:[],V8IntrinsicIdentifier:[],ArgumentPlaceholder:[],BindExpression:["object","callee"],ImportAttribute:["key","value"],Decorator:["expression"],DoExpression:["body"],ExportDefaultSpecifier:["exported"],RecordExpression:["properties"],TupleExpression:["elements"],ModuleExpression:["body"],TopicReference:[],PipelineTopicExpression:["expression"],PipelineBareFunction:["callee"],PipelinePrimaryTopicReference:[],TSParameterProperty:["parameter","decorators"],TSDeclareFunction:["id","typeParameters","params","returnType","body"],TSDeclareMethod:["decorators","key","typeParameters","params","returnType"],TSQualifiedName:["left","right"],TSCallSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructSignatureDeclaration:["typeParameters","parameters","typeAnnotation","params","returnType"],TSPropertySignature:["key","typeAnnotation"],TSMethodSignature:["key","typeParameters","parameters","typeAnnotation","params","returnType"],TSIndexSignature:["parameters","typeAnnotation"],TSAnyKeyword:[],TSBooleanKeyword:[],TSBigIntKeyword:[],TSIntrinsicKeyword:[],TSNeverKeyword:[],TSNullKeyword:[],TSNumberKeyword:[],TSObjectKeyword:[],TSStringKeyword:[],TSSymbolKeyword:[],TSUndefinedKeyword:[],TSUnknownKeyword:[],TSVoidKeyword:[],TSThisType:[],TSFunctionType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSConstructorType:["typeParameters","parameters","typeAnnotation","params","returnType"],TSTypeReference:["typeName","typeParameters","typeArguments"],TSTypePredicate:["parameterName","typeAnnotation"],TSTypeQuery:["exprName","typeParameters","typeArguments"],TSTypeLiteral:["members"],TSArrayType:["elementType"],TSTupleType:["elementTypes"],TSOptionalType:["typeAnnotation"],TSRestType:["typeAnnotation"],TSNamedTupleMember:["label","elementType"],TSUnionType:["types"],TSIntersectionType:["types"],TSConditionalType:["checkType","extendsType","trueType","falseType"],TSInferType:["typeParameter"],TSParenthesizedType:["typeAnnotation"],TSTypeOperator:["typeAnnotation"],TSIndexedAccessType:["objectType","indexType"],TSMappedType:["typeParameter","nameType","typeAnnotation"],TSTemplateLiteralType:["quasis","types"],TSLiteralType:["literal"],TSExpressionWithTypeArguments:["expression","typeParameters"],TSInterfaceDeclaration:["id","typeParameters","extends","body"],TSInterfaceBody:["body"],TSTypeAliasDeclaration:["id","typeParameters","typeAnnotation"],TSInstantiationExpression:["expression","typeParameters","typeArguments"],TSAsExpression:["expression","typeAnnotation"],TSSatisfiesExpression:["expression","typeAnnotation"],TSTypeAssertion:["typeAnnotation","expression"],TSEnumBody:["members"],TSEnumDeclaration:["id","members"],TSEnumMember:["id","initializer"],TSModuleDeclaration:["id","body"],TSModuleBlock:["body"],TSImportType:["argument","options","qualifier","typeParameters","typeArguments"],TSImportEqualsDeclaration:["id","moduleReference"],TSExternalModuleReference:["expression"],TSNonNullExpression:["expression"],TSExportAssignment:["expression"],TSNamespaceExportDeclaration:["id"],TSTypeAnnotation:["typeAnnotation"],TSTypeParameterInstantiation:["params"],TSTypeParameterDeclaration:["params"],TSTypeParameter:["constraint","default","name"],ChainExpression:["expression"],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],Literal:[],MethodDefinition:["decorators","key","value"],PrivateIdentifier:[],Property:["key","value"],PropertyDefinition:["decorators","key","typeAnnotation","value","variance"],AccessorProperty:["decorators","key","typeAnnotation","value"],TSAbstractAccessorProperty:["decorators","key","typeAnnotation"],TSAbstractKeyword:[],TSAbstractMethodDefinition:["key","value"],TSAbstractPropertyDefinition:["decorators","key","typeAnnotation"],TSAsyncKeyword:[],TSClassImplements:["expression","typeArguments","typeParameters"],TSDeclareKeyword:[],TSEmptyBodyFunctionExpression:["id","typeParameters","params","returnType"],TSExportKeyword:[],TSInterfaceHeritage:["expression","typeArguments","typeParameters"],TSPrivateKeyword:[],TSProtectedKeyword:[],TSPublicKeyword:[],TSReadonlyKeyword:[],TSStaticKeyword:[],AsConstExpression:["expression"],AsExpression:["expression","typeAnnotation"],BigIntLiteralTypeAnnotation:[],BigIntTypeAnnotation:[],ComponentDeclaration:["id","params","body","typeParameters","rendersType"],ComponentParameter:["name","local"],ComponentTypeAnnotation:["params","rest","typeParameters","rendersType"],ComponentTypeParameter:["name","typeAnnotation"],ConditionalTypeAnnotation:["checkType","extendsType","trueType","falseType"],DeclareComponent:["id","params","rest","typeParameters","rendersType"],DeclareEnum:["id","body"],DeclareHook:["id"],DeclareNamespace:["id","body"],EnumBigIntBody:["members"],EnumBigIntMember:["id","init"],HookDeclaration:["id","params","body","typeParameters","returnType"],HookTypeAnnotation:["params","returnType","rest","typeParameters"],InferTypeAnnotation:["typeParameter"],KeyofTypeAnnotation:["argument"],ObjectTypeMappedTypeProperty:["keyTparam","propType","sourceType","variance"],QualifiedTypeofIdentifier:["qualification","id"],TupleTypeLabeledElement:["label","elementType","variance"],TupleTypeSpreadElement:["label","typeAnnotation"],TypeOperator:["typeAnnotation"],TypePredicate:["parameterName","typeAnnotation","asserts"],NGRoot:["node"],NGPipeExpression:["left","right","arguments"],NGChainedExpression:["expressions"],NGEmptyExpression:[],NGMicrosyntax:["body"],NGMicrosyntaxKey:[],NGMicrosyntaxExpression:["expression","alias"],NGMicrosyntaxKeyedExpression:["key","expression"],NGMicrosyntaxLet:["key","value"],NGMicrosyntaxAs:["key","alias"],JsExpressionRoot:["node"],JsonRoot:["node"],TSJSDocAllType:[],TSJSDocUnknownType:[],TSJSDocNullableType:["typeAnnotation"],TSJSDocNonNullableType:["typeAnnotation"],NeverTypeAnnotation:[],UndefinedTypeAnnotation:[],UnknownTypeAnnotation:[],SatisfiesExpression:["expression","typeAnnotation"]},$rc=zrc(qrc),enc=$rc;function BNr(e,t){if(!(e!==null&&typeof e=="object"))return e;if(Array.isArray(e)){for(let n=0;n{var l;(l=o.leadingComments)!=null&&l.some(Jrc)&&a.add(pj(o))}),e=nNr(e,o=>{if(o.type==="ParenthesizedExpression"){let{expression:l}=o;if(l.type==="TypeCastExpression")return l.range=[...o.range],l;let A=pj(o);if(!a.has(A))return l.extra={...l.extra,parenthesized:!0},l}})}if(e=nNr(e,a=>{switch(a.type){case"LogicalExpression":if(YBi(a))return wNr(a);break;case"VariableDeclaration":{let o=VSi(!1,a.declarations,-1);o!=null&&o.init&&n[Lme(o)]!==";"&&(a.range=[pj(a),Lme(o)]);break}case"TSParenthesizedType":return a.typeAnnotation;case"TSTypeParameter":if(typeof a.name=="string"){let o=pj(a);a.name={type:"Identifier",name:a.name,range:[o,o+a.name.length]}}break;case"TopicReference":e.extra={...e.extra,__isUsingHackPipeline:!0};break;case"TSUnionType":case"TSIntersectionType":if(a.types.length===1)return a.types[0];break}}),Orc(e.comments)){let a=VSi(!1,e.comments,-1);for(let o=e.comments.length-2;o>=0;o--){let l=e.comments[o];Lme(l)===pj(a)&&vNr(l)&&vNr(a)&&PSi(l)&&PSi(a)&&(e.comments.splice(o+1,1),l.value+="*//*"+a.value,l.range=[pj(l),Lme(a)]),a=l}}return e.type==="Program"&&(e.range=[0,n.length]),e}function YBi(e){return e.type==="LogicalExpression"&&e.right.type==="LogicalExpression"&&e.operator===e.right.operator}function wNr(e){return YBi(e)?wNr({type:"LogicalExpression",operator:e.operator,left:wNr({type:"LogicalExpression",operator:e.operator,left:e.left,right:e.right.left,range:[pj(e.left),Lme(e.right.left)]}),right:e.right.right,range:[pj(e),Lme(e)]}):e}var rnc=tnc,nnc=/\*\/$/,inc=/^\/\*\*?/,snc=/^\s*(\/\*\*?(.|\r?\n)*?\*\/)/,onc=/(^|\s+)\/\/([^\n\r]*)/g,WSi=/^(\r?\n)+/,anc=/(?:^|\r?\n) *(@[^\n\r]*?) *\r?\n *(?![^\n\r@]*\/\/[^]*)([^\s@][^\n\r@]+?) *\r?\n/g,OSi=/(?:^|\r?\n) *@(\S+) *([^\n\r]*)/g,cnc=/(\r?\n|^) *\* ?/g,lnc=[];function unc(e){let t=e.match(snc);return t?t[0].trimStart():""}function gnc(e){let t=` `;e=ENe(!1,e.replace(inc,"").replace(nnc,""),cnc,"$1");let r="";for(;r!==e;)r=e,e=ENe(!1,e,anc,`${t}$1 $2${t}`);e=e.replace(WSi,"").trimEnd();let n=Object.create(null),a=ENe(!1,e,OSi,"").replace(WSi,"").trimEnd(),o;for(;o=OSi.exec(e);){let l=ENe(!1,o[2],onc,"");if(typeof n[o[1]]=="string"||Array.isArray(n[o[1]])){let A=n[o[1]];n[o[1]]=[...lnc,...Array.isArray(A)?A:[A],l]}else n[o[1]]=l}return{comments:a,pragmas:n}}function Anc(e){if(!e.startsWith("#!"))return"";let t=e.indexOf(` `);return t===-1?e:e.slice(0,t)}var dnc=Anc;function pnc(e){let t=dnc(e);t&&(e=e.slice(t.length+1));let r=unc(e),{pragmas:n,comments:a}=gnc(r);return{shebang:t,text:e,pragmas:n,comments:a}}function fnc(e){let{pragmas:t}=pnc(e);return Object.prototype.hasOwnProperty.call(t,"prettier")||Object.prototype.hasOwnProperty.call(t,"format")}function Inc(e){return e=typeof e=="function"?{parse:e}:e,{astFormat:"estree",hasPragma:fnc,locStart:pj,locEnd:Lme,...e}}var hnc=Inc;function mnc(e){let{filepath:t}=e;if(t){if(t=t.toLowerCase(),t.endsWith(".cjs")||t.endsWith(".cts"))return"script";if(t.endsWith(".mjs")||t.endsWith(".mts"))return"module"}}var Cnc=mnc;function _nc(e){return e.charAt(0)==="#"&&e.charAt(1)==="!"?"//"+e.slice(2):e}var ync=_nc,bnc={loc:!0,range:!0,comment:!0,tokens:!0,loggerFn:!1,project:!1,jsDocParsingMode:"none",suppressDeprecatedPropertyWarnings:!0};function Enc(e){if(!(e!=null&&e.location))return e;let{message:t,location:{start:r,end:n}}=e;return Zrc(t,{loc:{start:{line:r.line,column:r.column+1},end:{line:n.line,column:n.column+1}},cause:e})}var Snc=e=>/\.(?:js|mjs|cjs|jsx|ts|mts|cts|tsx)$/iu.test(e);function vnc(e,t){let r=t?.filepath,n=[{...bnc,filePath:r}],a=Cnc(t);if(a?n=n.map(l=>({...l,sourceType:a})):n=["module","script"].flatMap(l=>n.map(A=>({...A,sourceType:l}))),r&&Snc(r))return n;let o=wnc(e);return[o,!o].flatMap(l=>n.map(A=>({...A,jsx:l})))}function Bnc(e,t={}){let r=ync(e),n=vnc(e,t),a;try{a=Vrc(n.map(o=>()=>xrc(r,o)))}catch({errors:[o]}){throw Enc(o)}return rnc(a,{text:e})}function wnc(e){return new RegExp(["(?:^[^\"'`]*)"].join(""),"mu").test(e)}var Tnc=hnc(Bnc),Rnc=QSi;var GJe={};sI(GJe,{default:()=>coc,languages:()=>Vwi,options:()=>Pwi,parsers:()=>xDr,printers:()=>$wi});var Nnc=Object.create,SDr=Object.defineProperty,Dnc=Object.getOwnPropertyDescriptor,knc=Object.getOwnPropertyNames,xnc=Object.getPrototypeOf,Gnc=Object.prototype.hasOwnProperty,Dee=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rwi=(e,t)=>{for(var r in t)SDr(e,r,{get:t[r],enumerable:!0})},Fnc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of knc(t))!Gnc.call(e,a)&&a!==r&&SDr(e,a,{get:()=>t[a],enumerable:!(n=Dnc(t,a))||n.enumerable});return e},nwi=(e,t,r)=>(r=e!=null?Nnc(xnc(e)):{},Fnc(t||!e||!e.__esModule?SDr(r,"default",{value:e,enumerable:!0}):r,e)),Kme=Dee(e=>{"use strict";var t={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},r={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},n="tag:yaml.org,2002:",a={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function o(ne){let ce=[0],fe=ne.indexOf(` @@ -2383,7 +2383,7 @@ ${De.commentBefore}`:Se}ce.comment=ue.after.join(` `}};t._defineProperty(ne,"defaults",l),e.Document=ne,e.defaultOptions=a,e.scalarOptions=o}),Vnc=Dee(e=>{"use strict";var t=Znc(),r=Lnc(),n=Awi(),a=Kme(),o=lwi();DJe();function l(N,B=!0,F){F===void 0&&typeof B=="string"&&(F=B,B=!0);let Q=Object.assign({},r.Document.defaults[r.defaultOptions.version],r.defaultOptions);return new n.Schema(Q).createNode(N,B,F)}var A=class extends r.Document{constructor(N){super(Object.assign({},r.defaultOptions,N))}};function f(N,B){let F=[],Q;for(let X of t.parse(N)){let ae=new A(B);ae.parse(X,Q),F.push(ae),Q=ae}return F}function I(N,B){let F=t.parse(N),Q=new A(B).parse(F[0]);if(F.length>1){let X="Source contains multiple documents; please use YAML.parseAllDocuments()";Q.errors.unshift(new a.YAMLSemanticError(F[1],X))}return Q}function C(N,B){let F=I(N,B);if(F.warnings.forEach(Q=>o.warn(Q)),F.errors.length>0)throw F.errors[0];return F.toJSON()}function b(N,B){let F=new A(B);return F.contents=N,String(F)}var E={createNode:l,defaultOptions:r.defaultOptions,Document:A,parse:C,parseAllDocuments:f,parseCST:t.parse,parseDocument:I,scalarOptions:r.scalarOptions,stringify:b};e.YAML=E}),Pnc=Dee((e,t)=>{t.exports=Vnc().YAML}),Wnc=Dee(e=>{"use strict";var t=DJe(),r=Kme();e.findPair=t.findPair,e.parseMap=t.resolveMap,e.parseSeq=t.resolveSeq,e.stringifyNumber=t.stringifyNumber,e.stringifyString=t.stringifyString,e.toJSON=t.toJSON,e.Type=r.Type,e.YAMLError=r.YAMLError,e.YAMLReferenceError=r.YAMLReferenceError,e.YAMLSemanticError=r.YAMLSemanticError,e.YAMLSyntaxError=r.YAMLSyntaxError,e.YAMLWarning=r.YAMLWarning}),fwi={};rwi(fwi,{languages:()=>Vwi,options:()=>Pwi,parsers:()=>xDr,printers:()=>$wi});var Onc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},uDr=Onc,Iwi="string",hwi="array",mwi="cursor",Cwi="indent",vDr="align",_wi="trim",BDr="group",wDr="fill",TDr="if-break",ywi="indent-if-break",RDr="line-suffix",bwi="line-suffix-boundary",ZNe="line",Ewi="label",NDr="break-parent",Swi=new Set([mwi,Cwi,vDr,_wi,BDr,wDr,TDr,ywi,RDr,bwi,ZNe,Ewi,NDr]),Mnc=(e,t,r)=>{if(!(e&&t==null))return Array.isArray(t)||typeof t=="string"?t[r<0?t.length+r:r]:t.at(r)},nH=Mnc;function Hnc(e){if(typeof e=="string")return Iwi;if(Array.isArray(e))return hwi;if(!e)return;let{type:t}=e;if(Swi.has(t))return t}var vwi=Hnc,Ync=e=>new Intl.ListFormat("en-US",{type:"disjunction"}).format(e);function Qnc(e){let t=e===null?"null":typeof e;if(t!=="string"&&t!=="object")return`Unexpected doc '${t}', Expected it to be 'string' or 'object'.`;if(vwi(e))throw new Error("doc is valid.");let r=Object.prototype.toString.call(e);if(r!=="[object Object]")return`Unexpected doc '${r}'.`;let n=Ync([...Swi].map(a=>`'${a}'`));return`Unexpected doc.type '${e.type}'. Expected it to be ${n}.`}var Xnc=class extends Error{name="InvalidDocError";constructor(e){super(Qnc(e)),this.doc=e}},Jnc=Xnc;function Unc(e,t){if(typeof e=="string")return t(e);let r=new Map;return n(e);function n(o){if(r.has(o))return r.get(o);let l=a(o);return r.set(o,l),l}function a(o){switch(vwi(o)){case hwi:return t(o.map(n));case wDr:return t({...o,parts:o.parts.map(n)});case TDr:return t({...o,breakContents:n(o.breakContents),flatContents:n(o.flatContents)});case BDr:{let{expandedStates:l,contents:A}=o;return l?(l=l.map(n),A=l[0]):A=n(A),t({...o,contents:A,expandedStates:l})}case vDr:case Cwi:case ywi:case Ewi:case RDr:return t({...o,contents:n(o.contents)});case Iwi:case mwi:case _wi:case bwi:case ZNe:case NDr:return t(o);default:throw new Jnc(o)}}}function Knc(e,t=CDr){return Unc(e,r=>typeof r=="string"?bV(t,r.split(` -`)):r)}var DDr=()=>{},FNe=DDr,Bwi=DDr,jnc=DDr;function uEt(e,t){return FNe(t),{type:vDr,contents:t,n:e}}function oEt(e,t={}){return FNe(e),Bwi(t.expandedStates,!0),{type:BDr,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function QBi(e){return uEt(Number.NEGATIVE_INFINITY,e)}function znc(e){return uEt({type:"root"},e)}function qnc(e){return uEt(-1,e)}function XBi(e,t){return oEt(e[0],{...t,expandedStates:e})}function wwi(e){return jnc(e),{type:wDr,parts:e}}function mDr(e,t="",r={}){return FNe(e),t!==""&&FNe(t),{type:TDr,breakContents:e,flatContents:t,groupId:r.groupId}}function $nc(e){return FNe(e),{type:RDr,contents:e}}var kDr={type:NDr},eic={type:ZNe,hard:!0},tic={type:ZNe,hard:!0,literal:!0},kJe={type:ZNe},Twi={type:ZNe,soft:!0},Y_=[eic,kDr],CDr=[tic,kDr];function bV(e,t){FNe(e),Bwi(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l{},FNe=DDr,Bwi=DDr,jnc=DDr;function uEt(e,t){return FNe(t),{type:vDr,contents:t,n:e}}function oEt(e,t={}){return FNe(e),Bwi(t.expandedStates,!0),{type:BDr,id:t.id,contents:e,break:!!t.shouldBreak,expandedStates:t.expandedStates}}function QBi(e){return uEt(Number.NEGATIVE_INFINITY,e)}function znc(e){return uEt({type:"root"},e)}function qnc(e){return uEt(-1,e)}function XBi(e,t){return oEt(e[0],{...t,expandedStates:e})}function wwi(e){return jnc(e),{type:wDr,parts:e}}function mDr(e,t="",r={}){return FNe(e),t!==""&&FNe(t),{type:TDr,breakContents:e,flatContents:t,groupId:r.groupId}}function $nc(e){return FNe(e),{type:RDr,contents:e}}var kDr={type:NDr},eic={type:ZNe,hard:!0},tic={type:ZNe,hard:!0,literal:!0},kJe={type:ZNe},Twi={type:ZNe,soft:!0},Y_=[eic,kDr],CDr=[tic,kDr];function bV(e,t){FNe(e),Bwi(t);let r=[];for(let n=0;n{let a=!!(n!=null&&n.backwards);if(r===!1)return!1;let{length:o}=t,l=r;for(;l>=0&&l0}var xJe=_ic;function N `).map((a,o,l)=>o===0&&o===l.length-1?a:o!==0&&o!==l.length-1?a.trim():o===0?a.trimEnd():a.trimStart());return r.proseWrap==="preserve"?n.map(a=>a.length===0?[]:[a]):n.map(a=>a.length===0?[]:xwi(a)).reduce((a,o,l)=>l!==0&&n[l-1].length>0&&o.length>0&&!(e==="quoteDouble"&&nH(!1,nH(!1,a,-1),-1).endsWith("\\"))?[...a.slice(0,-1),[...nH(!1,a,-1),...o]]:[...a,o],[]).map(a=>r.proseWrap==="never"?[a.join(" ")]:a)}function vic(e,{parentIndent:t,isLastDescendant:r,options:n}){let a=e.position.start.line===e.position.end.line?"":n.originalText.slice(e.position.start.offset,e.position.end.offset).match(/^[^\n]*\n(.*)$/su)[1],o;if(e.indent===null){let f=a.match(/^(? *)[^\n\r ]/mu);o=f?f.groups.leadingSpace.length:Number.POSITIVE_INFINITY}else o=e.indent-1+t;let l=a.split(` `).map(f=>f.slice(o));if(n.proseWrap==="preserve"||e.type==="blockLiteral")return A(l.map(f=>f.length===0?[]:[f]));return A(l.map(f=>f.length===0?[]:xwi(f)).reduce((f,I,C)=>C!==0&&l[C-1].length>0&&I.length>0&&!/^\s/u.test(I[0])&&!/^\s|\s$/u.test(nH(!1,f,-1))?[...f.slice(0,-1),[...nH(!1,f,-1),...I]]:[...f,I],[]).map(f=>f.reduce((I,C)=>I.length>0&&/\s$/u.test(nH(!1,I,-1))?[...I.slice(0,-1),nH(!1,I,-1)+" "+C]:[...I,C],[])).map(f=>n.proseWrap==="never"?[f.join(" ")]:f));function A(f){if(e.chomping==="keep")return nH(!1,f,-1).length===0?f.slice(0,-1):f;let I=0;for(let C=f.length-1;C>=0&&f[C].length===0;C--)I++;return I===0?f:I>=2&&!r?f.slice(0,-(I-1)):f.slice(0,-I)}}function yDr(e){if(!e)return!0;switch(e.type){case"plain":case"quoteDouble":case"quoteSingle":case"alias":case"flowMapping":case"flowSequence":return!0;default:return!1}}var gDr=new WeakMap;function Gwi(e,t){let{node:r,root:n}=e,a;return gDr.has(n)?a=gDr.get(n):(a=new Set,gDr.set(n,a)),!a.has(r.position.end.line)&&(a.add(r.position.end.line),yic(r,t)&&!Fwi(e.parent))?Twi:""}function Fwi(e){return o4(e)&&!Nee(e,["documentHead","documentBody","flowMapping","flowSequence"])}function rH(e,t){return uEt(" ".repeat(e),t)}function Bic(e,t,r){let{node:n}=e,a=e.ancestors.filter(I=>I.type==="sequence"||I.type==="mapping").length,o=Dwi(e),l=[n.type==="blockFolded"?">":"|"];n.indent!==null&&l.push(n.indent.toString()),n.chomping!=="clip"&&l.push(n.chomping==="keep"?"+":"-"),kwi(n)&&l.push(" ",t("indicatorComment"));let A=vic(n,{parentIndent:a,isLastDescendant:o,options:r}),f=[];for(let[I,C]of A.entries())I===0&&f.push(Y_),f.push(wwi(bV(kJe,C))),I!==A.length-1?f.push(C.length===0?Y_:znc(CDr)):n.chomping==="keep"&&o&&f.push(QBi(C.length===0?Y_:CDr));return n.indent===null?l.push(qnc(rH(r.tabWidth,f))):l.push(QBi(rH(n.indent-1+a,f))),l}var wic=Bic;function jBi(e,t,r){let{node:n}=e,a=n.type==="flowMapping",o=a?"{":"[",l=a?"}":"]",A=Twi;a&&n.children.length>0&&r.bracketSpacing&&(A=kJe);let f=nH(!1,n.children,-1),I=f?.type==="flowMappingItem"&&cEt(f.key)&&cEt(f.value);return[o,rH(r.tabWidth,[A,Tic(e,t,r),r.trailingComma==="none"?"":mDr(","),o4(n)?[Y_,bV(Y_,e.map(t,"endComments"))]:""]),I?"":A,l]}function Tic(e,t,r){return e.map(({isLast:n,node:a,next:o})=>[t(),n?"":[",",kJe,a.position.start.line!==o.position.start.line?Gwi(e,r.originalText):""]],"children")}function Ric(e,t,r){var n;let{node:a,parent:o}=e,{key:l,value:A}=a,f=cEt(l),I=cEt(A);if(f&&I)return": ";let C=t("key"),b=Nic(a)?" ":"";if(I)return a.type==="flowMappingItem"&&o.type==="flowMapping"?C:a.type==="mappingItem"&&ADr(l.content,r)&&!s4(l.content)&&((n=o.tag)==null?void 0:n.value)!=="tag:yaml.org,2002:set"?[C,b,":"]:["? ",rH(2,C)];let E=t("value");if(f)return[": ",rH(2,E)];if(wce(A)||!yDr(l.content))return["? ",rH(2,C),Y_,...e.map(()=>[t(),Y_],"value","leadingComments"),": ",rH(2,E)];if(Dic(l.content)&&!wce(l.content)&&!xNe(l.content)&&!s4(l.content)&&!o4(l)&&!wce(A.content)&&!xNe(A.content)&&!o4(A)&&ADr(A.content,r))return[C,b,": ",E];let N=Symbol("mappingKey"),B=oEt([mDr("? "),oEt(rH(2,C),{id:N})]),F=[Y_,": ",rH(2,E)],Q=[b,":"];wce(A.content)||o4(A)&&A.content&&!Nee(A.content,["mapping","sequence"])||o.type==="mapping"&&s4(l.content)&&yDr(A.content)||Nee(A.content,["mapping","sequence"])&&A.content.tag===null&&A.content.anchor===null?Q.push(Y_):A.content?Q.push(kJe):s4(A)&&Q.push(" "),Q.push(E);let X=rH(r.tabWidth,Q);return ADr(l.content,r)&&!wce(l.content)&&!xNe(l.content)&&!o4(l)?XBi([[C,X]]):XBi([[B,mDr(F,X,{groupId:N})]])}function ADr(e,t){if(!e)return!0;switch(e.type){case"plain":case"quoteSingle":case"quoteDouble":break;case"alias":return!0;default:return!1}if(t.proseWrap==="preserve")return e.position.start.line===e.position.end.line;if(/\\$/mu.test(t.originalText.slice(e.position.start.offset,e.position.end.offset)))return!1;switch(t.proseWrap){case"never":return!e.value.includes(` `);case"always":return!/[\n ]/u.test(e.value);default:return!1}}function Nic(e){var t;return((t=e.key.content)==null?void 0:t.type)==="alias"}function Dic(e){if(!e)return!0;switch(e.type){case"plain":case"quoteDouble":case"quoteSingle":return e.position.start.line===e.position.end.line;case"alias":return!0;default:return!1}}var kic=Ric;function xic(e){return Nwi(e,Gic)}function Gic(e){switch(e.type){case"document":TJe(e,"head",()=>e.children[0]),TJe(e,"body",()=>e.children[1]);break;case"documentBody":case"sequenceItem":case"flowSequenceItem":case"mappingKey":case"mappingValue":TJe(e,"content",()=>e.children[0]);break;case"mappingItem":case"flowMappingItem":TJe(e,"key",()=>e.children[0]),TJe(e,"value",()=>e.children[1]);break}return e}var Fic=xic;function Zic(e,t,r){let{node:n}=e,a=[];n.type!=="mappingValue"&&wce(n)&&a.push([bV(Y_,e.map(r,"leadingComments")),Y_]);let{tag:o,anchor:l}=n;o&&a.push(r("tag")),o&&l&&a.push(" "),l&&a.push(r("anchor"));let A="";return Nee(n,["mapping","sequence","comment","directive","mappingItem","sequenceItem"])&&!Dwi(e)&&(A=Gwi(e,t.originalText)),(o||l)&&(Nee(n,["sequence","mapping"])&&!xNe(n)?a.push(Y_):a.push(" ")),xNe(n)&&a.push([n.middleComments.length===1?"":Y_,bV(Y_,e.map(r,"middleComments")),Y_]),bic(e)?a.push(Knc(t.originalText.slice(n.position.start.offset,n.position.end.offset).trimEnd())):a.push(oEt(Lic(e,t,r))),s4(n)&&!Nee(n,["document","documentHead"])&&a.push($nc([n.type==="mappingValue"&&!n.content?"":" ",e.parent.type==="mappingKey"&&e.getParentNode(2).type==="mapping"&&yDr(n)?"":kDr,r("trailingComment")])),Fwi(n)&&a.push(rH(n.type==="sequenceItem"?2:0,[Y_,bV(Y_,e.map(({node:f})=>[iic(t.originalText,aEt(f))?Y_:"",r()],"endComments"))])),a.push(A),a}function Lic(e,t,r){let{node:n}=e;switch(n.type){case"root":{let a=[];e.each(({node:l,next:A,isFirst:f})=>{f||a.push(Y_),a.push(r()),Zwi(l,A)?(a.push(Y_,"..."),s4(l)&&a.push(" ",r("trailingComment"))):A&&!s4(A.head)&&a.push(Y_,"---")},"children");let o=_Dr(n);return(!Nee(o,["blockLiteral","blockFolded"])||o.chomping!=="keep")&&a.push(Y_),a}case"document":{let a=[];return Pic(e,t)==="head"&&((n.head.children.length>0||n.head.endComments.length>0)&&a.push(r("head")),s4(n.head)?a.push(["---"," ",r(["head","trailingComment"])]):a.push("---")),Vic(n)&&a.push(r("body")),bV(Y_,a)}case"documentHead":return bV(Y_,[...e.map(r,"children"),...e.map(r,"endComments")]);case"documentBody":{let{children:a,endComments:o}=n,l="";if(a.length>0&&o.length>0){let A=_Dr(n);Nee(A,["blockFolded","blockLiteral"])?A.chomping!=="keep"&&(l=[Y_,Y_]):l=Y_}return[bV(Y_,e.map(r,"children")),l,bV(Y_,e.map(r,"endComments"))]}case"directive":return["%",bV(" ",[n.name,...n.parameters])];case"comment":return["#",n.value];case"alias":return["*",n.value];case"tag":return t.originalText.slice(n.position.start.offset,n.position.end.offset);case"anchor":return["&",n.value];case"plain":return RJe(n.type,t.originalText.slice(n.position.start.offset,n.position.end.offset),t);case"quoteDouble":case"quoteSingle":{let a="'",o='"',l=t.originalText.slice(n.position.start.offset+1,n.position.end.offset-1);if(n.type==="quoteSingle"&&l.includes("\\")||n.type==="quoteDouble"&&/\\[^"]/u.test(l)){let f=n.type==="quoteDouble"?o:a;return[f,RJe(n.type,l,t),f]}if(l.includes(o))return[a,RJe(n.type,n.type==="quoteDouble"?uDr(!1,uDr(!1,l,String.raw`\"`,o),"'",a.repeat(2)):l,t),a];if(l.includes(a))return[o,RJe(n.type,n.type==="quoteSingle"?uDr(!1,l,"''",a):l,t),o];let A=t.singleQuote?a:o;return[A,RJe(n.type,l,t),A]}case"blockFolded":case"blockLiteral":return wic(e,r,t);case"mapping":case"sequence":return bV(Y_,e.map(r,"children"));case"sequenceItem":return["- ",rH(2,n.content?r("content"):"")];case"mappingKey":case"mappingValue":return n.content?r("content"):"";case"mappingItem":case"flowMappingItem":return kic(e,r,t);case"flowMapping":return jBi(e,r,t);case"flowSequence":return jBi(e,r,t);case"flowSequenceItem":return r("content");default:throw new oic(n,"YAML")}}function Vic(e){return e.body.children.length>0||o4(e.body)}function Zwi(e,t){return s4(e)||t&&(t.head.children.length>0||o4(t.head))}function Pic(e,t){let r=e.node;if(e.isFirst&&/---(?:\s|$)/u.test(t.originalText.slice(aEt(r),aEt(r)+4))||r.head.children.length>0||o4(r.head)||s4(r.head))return"head";let n=e.next;return Zwi(r,n)?!1:n?"root":!1}function RJe(e,t,r){let n=Sic(e,t,r);return bV(Y_,n.map(a=>wwi(bV(kJe,a))))}function Lwi(e,t){if(Nee(e))switch(e.type){case"comment":if(hic(e.value))return null;break;case"quoteDouble":case"quoteSingle":t.type="quote";break}}Lwi.ignoredProperties=new Set(["position"]);var Wic={preprocess:Fic,embed:aic,print:Zic,massageAstNode:Lwi,insertPragma:Cic,getVisitorKeys:fic},Oic=Wic,Vwi=[{linguistLanguageId:407,name:"YAML",type:"data",color:"#cb171e",tmScope:"source.yaml",aliases:["yml"],extensions:[".yml",".mir",".reek",".rviz",".sublime-syntax",".syntax",".yaml",".yaml-tmlanguage",".yaml.sed",".yml.mysql"],filenames:[".clang-format",".clang-tidy",".gemrc","CITATION.cff","glide.lock",".prettierrc",".stylelintrc",".lintstagedrc"],aceMode:"yaml",codemirrorMode:"yaml",codemirrorMimeType:"text/x-yaml",parsers:["yaml"],vscodeLanguageIds:["yaml","ansible","dockercompose","github-actions-workflow","home-assistant"]}],dDr={bracketSpacing:{category:"Common",type:"boolean",default:!0,description:"Print spaces between brackets.",oppositeDescription:"Do not print spaces between brackets."},objectWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap object literals.",choices:[{value:"preserve",description:"Keep as multi-line, if there is a newline between the opening brace and first property."},{value:"collapse",description:"Fit to a single line when possible."}]},singleQuote:{category:"Common",type:"boolean",default:!1,description:"Use single quotes instead of double quotes."},proseWrap:{category:"Common",type:"choice",default:"preserve",description:"How to wrap prose.",choices:[{value:"always",description:"Wrap prose if it exceeds the print width."},{value:"never",description:"Do not wrap prose."},{value:"preserve",description:"Wrap prose as-is."}]},bracketSameLine:{category:"Common",type:"boolean",default:!1,description:"Put > of opening tags on the last line instead of on a new line."},singleAttributePerLine:{category:"Common",type:"boolean",default:!1,description:"Enforce single attribute per line in HTML, Vue and JSX."}},Mic={bracketSpacing:dDr.bracketSpacing,singleQuote:dDr.singleQuote,proseWrap:dDr.proseWrap},Pwi=Mic,xDr={};rwi(xDr,{yaml:()=>aoc});var nEt=` -`,zBi="\r",Hic=function(){function e(t){this.length=t.length;for(var r=[0],n=0;nthis.length)return null;for(var r=0,n=this.offsets;n[r+1]<=t;)r++;var a=t-n[r];return{line:r,column:a}},e.prototype.indexForLocation=function(t){var r=t.line,n=t.column;return r<0||r>=this.offsets.length||n<0||n>this.lengthOfLine(r)?null:this.offsets[r]+n},e.prototype.lengthOfLine=function(t){var r=this.offsets[t],n=t===this.offsets.length-1?this.length:this.offsets[t+1];return n-r},e}();function mO(e,t=null){"children"in e&&e.children.forEach(r=>mO(r,e)),"anchor"in e&&e.anchor&&mO(e.anchor,e),"tag"in e&&e.tag&&mO(e.tag,e),"leadingComments"in e&&e.leadingComments.forEach(r=>mO(r,e)),"middleComments"in e&&e.middleComments.forEach(r=>mO(r,e)),"indicatorComment"in e&&e.indicatorComment&&mO(e.indicatorComment,e),"trailingComment"in e&&e.trailingComment&&mO(e.trailingComment,e),"endComments"in e&&e.endComments.forEach(r=>mO(r,e)),Object.defineProperty(e,"_parent",{value:t,enumerable:!1})}function lEt(e){return`${e.line}:${e.column}`}function Yic(e){mO(e);let t=Qic(e),r=e.children.slice();e.comments.sort((n,a)=>n.position.start.offset-a.position.end.offset).filter(n=>!n._parent).forEach(n=>{for(;r.length>1&&n.position.start.line>r[0].position.end.line;)r.shift();Xic(n,t,r[0])})}function Qic(e){let t=Array.from(new Array(e.position.end.line),()=>({}));for(let r of e.comments)t[r.position.start.line-1].comment=r;return Wwi(t,e),t}function Wwi(e,t){if(t.position.start.offset!==t.position.end.offset){if("leadingComments"in t){let{start:r}=t.position,{leadingAttachableNode:n}=e[r.line-1];(!n||r.column1&&t.type!=="document"&&t.type!=="documentHead"){let{end:r}=t.position,{trailingAttachableNode:n}=e[r.line-1];(!n||r.column>=n.position.end.column)&&(e[r.line-1].trailingAttachableNode=t)}if(t.type!=="root"&&t.type!=="document"&&t.type!=="documentHead"&&t.type!=="documentBody"){let{start:r,end:n}=t.position,a=[n.line].concat(r.line===n.line?[]:r.line);for(let o of a){let l=e[o-1].trailingNode;(!l||n.column>=l.position.end.column)&&(e[o-1].trailingNode=t)}}"children"in t&&t.children.forEach(r=>{Wwi(e,r)})}}function Xic(e,t,r){let n=e.position.start.line,{trailingAttachableNode:a}=t[n-1];if(a){if(a.trailingComment)throw new Error(`Unexpected multiple trailing comment at ${lEt(e.position.start)}`);mO(e,a),a.trailingComment=e;return}for(let l=n;l>=r.position.start.line;l--){let{trailingNode:A}=t[l-1],f;if(A)f=A;else if(l!==n&&t[l-1].comment)f=t[l-1].comment._parent;else continue;if((f.type==="sequence"||f.type==="mapping")&&(f=f.children[0]),f.type==="mappingItem"){let[I,C]=f.children;f=Owi(I)?I:C}for(;;){if(Jic(f,e)){mO(e,f),f.endComments.push(e);return}if(!f._parent)break;f=f._parent}break}for(let l=n+1;l<=r.position.end.line;l++){let{leadingAttachableNode:A}=t[l-1];if(A){mO(e,A),A.leadingComments.push(e);return}}let o=r.children[1];mO(e,o),o.endComments.push(e)}function Jic(e,t){if(e.position.start.offsett.position.end.offset)switch(e.type){case"flowMapping":case"flowSequence":return e.children.length===0||t.position.start.line>e.children[e.children.length-1].position.end.line}if(t.position.end.offsete.position.start.column;case"mappingKey":case"mappingValue":return t.position.start.column>e._parent.position.start.column&&(e.children.length===0||e.children.length===1&&e.children[0].type!=="blockFolded"&&e.children[0].type!=="blockLiteral")&&(e.type==="mappingValue"||Owi(e));default:return!1}}function Owi(e){return e.position.start!==e.position.end&&(e.children.length===0||e.position.start.offset!==e.children[0].position.start.offset)}function nw(e,t){return{type:e,position:t}}function Uic(e,t,r){return{...nw("root",e),children:t,comments:r}}function sEt(e){switch(e.type){case"DOCUMENT":for(let t=e.contents.length-1;t>=0;t--)e.contents[t].type==="BLANK_LINE"?e.contents.splice(t,1):sEt(e.contents[t]);for(let t=e.directives.length-1;t>=0;t--)e.directives[t].type==="BLANK_LINE"&&e.directives.splice(t,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];"char"in r||(r.type==="BLANK_LINE"?e.items.splice(t,1):sEt(r))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":e.node&&sEt(e.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error(`Unexpected node type ${JSON.stringify(e.type)}`)}}function LNe(){return{leadingComments:[]}}function AEt(e=null){return{trailingComment:e}}function jme(){return{...LNe(),...AEt()}}function Kic(e,t,r){return{...nw("alias",e),...jme(),...t,value:r}}function jic(e,t){let r=e.cstNode;return Kic(t.transformRange({origStart:r.valueRange.origStart-1,origEnd:r.valueRange.origEnd}),t.transformContent(e),r.rawValue)}function zic(e){return{...e,type:"blockFolded"}}function qic(e,t,r,n,a,o){return{...nw("blockValue",e),...LNe(),...t,chomping:r,indent:n,value:a,indicatorComment:o}}var GNe;(function(e){e.Tag="!",e.Anchor="&",e.Comment="#"})(GNe||(GNe={}));function $ic(e,t){return{...nw("anchor",e),value:t}}function GDr(e,t){return{...nw("comment",e),value:t}}function esc(e,t,r){return{anchor:t,tag:e,middleComments:r}}function tsc(e,t){return{...nw("tag",e),value:t}}function Mwi(e,t,r=()=>!1){let n=e.cstNode,a=[],o=null,l=null,A=null;for(let f of n.props){let I=t.text[f.origStart];switch(I){case GNe.Tag:o=o||f,l=tsc(t.transformRange(f),e.tag);break;case GNe.Anchor:o=o||f,A=$ic(t.transformRange(f),n.anchor);break;case GNe.Comment:{let C=GDr(t.transformRange(f),t.text.slice(f.origStart+1,f.origEnd));t.comments.push(C),!r(C)&&o&&o.origEnd<=f.origStart&&f.origEnd<=n.valueRange.origStart&&a.push(C);break}default:throw new Error(`Unexpected leading character ${JSON.stringify(I)}`)}}return esc(l,A,a)}var bDr;(function(e){e.CLIP="clip",e.STRIP="strip",e.KEEP="keep"})(bDr||(bDr={}));function Hwi(e,t){let r=e.cstNode,n=1,a=r.chomping==="CLIP"?0:1,o=r.header.origEnd-r.header.origStart-n-a!==0,l=t.transformRange({origStart:r.header.origStart,origEnd:r.valueRange.origEnd}),A=null,f=Mwi(e,t,I=>{if(!(l.start.offset=0;f--){let I=e.contents[f];if(I.type==="COMMENT"){let C=t.transformNode(I);r&&r.line===C.position.start.line?l.unshift(C):A?n.unshift(C):C.position.start.offset>=e.valueRange.origEnd?o.unshift(C):n.unshift(C)}else A=!0}if(o.length>1)throw new Error(`Unexpected multiple document trailing comments at ${lEt(o[1].position.start)}`);if(l.length>1)throw new Error(`Unexpected multiple documentHead trailing comments at ${lEt(l[1].position.start)}`);return{comments:n,endComments:a,documentTrailingComment:Tce(o)||null,documentHeadTrailingComment:Tce(l)||null}}function Asc(e,t,r){let n=Ywi(r.text.slice(e.valueRange.origEnd),/^\.\.\./),a=n===-1?e.valueRange.origEnd:Math.max(0,e.valueRange.origEnd-1);r.text[a-1]==="\r"&&a--;let o=r.transformRange({origStart:t!==null?t.position.start.offset:a,origEnd:a}),l=n===-1?o.end:r.transformOffset(e.valueRange.origEnd+3);return{position:o,documentEndPoint:l}}function dsc(e,t,r,n){return{...nw("documentHead",e),...zme(r),...AEt(n),children:t}}function psc(e,t){let r=e.cstNode,{directives:n,comments:a,endComments:o}=fsc(r,t),{position:l,endMarkerPoint:A}=Isc(r,n,t);return t.comments.push(...a,...o),{createDocumentHeadWithTrailingComment:f=>(f&&t.comments.push(f),dsc(l,n,o,f)),documentHeadEndMarkerPoint:A}}function fsc(e,t){let r=[],n=[],a=[],o=!1;for(let l=e.directives.length-1;l>=0;l--){let A=t.transformNode(e.directives[l]);A.type==="comment"?o?n.unshift(A):a.unshift(A):(o=!0,r.unshift(A))}return{directives:r,comments:n,endComments:a}}function Isc(e,t,r){let n=Ywi(r.text.slice(0,e.valueRange.origStart),/---\s*$/);n>0&&!/[\r\n]/.test(r.text[n-1])&&(n=-1);let a=n===-1?{origStart:e.valueRange.origStart,origEnd:e.valueRange.origStart}:{origStart:n,origEnd:n+3};return t.length!==0&&(a.origStart=t[0].position.start.offset),{position:r.transformRange(a),endMarkerPoint:n===-1?null:r.transformOffset(n)}}function hsc(e,t){let{createDocumentHeadWithTrailingComment:r,documentHeadEndMarkerPoint:n}=psc(e,t),{documentBody:a,documentEndPoint:o,documentTrailingComment:l,documentHeadTrailingComment:A}=usc(e,t,n),f=r(A);return l&&t.comments.push(l),csc(Ume(f.position.start,o),f,a,l)}function Qwi(e,t,r){return{...nw("flowCollection",e),...jme(),...zme(),...t,children:r}}function msc(e,t,r){return{...Qwi(e,t,r),type:"flowMapping"}}function Xwi(e,t,r){return{...nw("flowMappingItem",e),...LNe(),children:[t,r]}}function dEt(e,t){let r=[];for(let n of e)n&&"type"in n&&n.type==="COMMENT"?t.comments.push(t.transformNode(n)):r.push(n);return r}function Jwi(e){let[t,r]=["?",":"].map(n=>{let a=e.find(o=>"char"in o&&o.char===n);return a?{origStart:a.origOffset,origEnd:a.origOffset+1}:null});return{additionalKeyRange:t,additionalValueRange:r}}function Uwi(e,t){let r=t;return n=>e.slice(r,r=n)}function Kwi(e){let t=[],r=Uwi(e,1),n=!1;for(let a=1;a{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}),o=r[0],l=Tce(r);return msc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function _sc(e,t,r){return{...Qwi(e,t,r),type:"flowSequence"}}function ysc(e,t){return{...nw("flowSequenceItem",e),children:[t]}}function bsc(e,t){let r=dEt(e.cstNode.items,t),n=Kwi(r),a=e.items.map((A,f)=>{if(A.type!=="PAIR"){let I=t.transformNode(A);return ysc(Ume(I.position.start,I.position.end),I)}else{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}}),o=r[0],l=Tce(r);return _sc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function Esc(e,t,r){return{...nw("mapping",e),...LNe(),...t,children:r}}function Ssc(e,t,r){return{...nw("mappingItem",e),...LNe(),children:[t,r]}}function vsc(e,t){let r=e.cstNode;r.items.filter(l=>l.type==="MAP_KEY"||l.type==="MAP_VALUE").forEach(l=>FDr(l,t));let n=dEt(r.items,t),a=Bsc(n),o=e.items.map((l,A)=>{let f=a[A],[I,C]=f[0].type==="MAP_VALUE"?[null,f[0].range]:[f[0].range,f.length===1?null:f[1].range];return ZDr(l,t,Ssc,I,C)});return Esc(Ume(o[0].position.start,Tce(o).position.end),t.transformContent(e),o)}function Bsc(e){let t=[],r=Uwi(e,0),n=!1;for(let a=0;a=0;n--)if(r.test(e[n]))return n;return-1}function Rsc(e,t){let r=e.cstNode;return wsc(t.transformRange({origStart:r.valueRange.origStart,origEnd:Tsc(t.text,r.valueRange.origEnd-1,/\S/)+1}),t.transformContent(e),r.strValue)}function Nsc(e){return{...e,type:"quoteDouble"}}function Dsc(e,t,r){return{...nw("quoteValue",e),...t,...jme(),value:r}}function jwi(e,t){let r=e.cstNode;return Dsc(t.transformRange(r.valueRange),t.transformContent(e),r.strValue)}function ksc(e,t){return Nsc(jwi(e,t))}function xsc(e){return{...e,type:"quoteSingle"}}function Gsc(e,t){return xsc(jwi(e,t))}function Fsc(e,t,r){return{...nw("sequence",e),...LNe(),...zme(),...t,children:r}}function Zsc(e,t){return{...nw("sequenceItem",e),...jme(),...zme(),children:t?[t]:[]}}function Lsc(e,t){let r=dEt(e.cstNode.items,t).map((n,a)=>{FDr(n,t);let o=t.transformNode(e.items[a]);return Zsc(Ume(t.transformOffset(n.valueRange.origStart),o===null?t.transformOffset(n.valueRange.origStart+1):o.position.end),o)});return Fsc(Ume(r[0].position.start,Tce(r).position.end),t.transformContent(e),r)}function Vsc(e,t){if(e===null||e.type===void 0&&e.value===null)return null;switch(e.type){case"ALIAS":return jic(e,t);case"BLOCK_FOLDED":return rsc(e,t);case"BLOCK_LITERAL":return isc(e,t);case"COMMENT":return ssc(e,t);case"DIRECTIVE":return asc(e,t);case"DOCUMENT":return hsc(e,t);case"FLOW_MAP":return Csc(e,t);case"FLOW_SEQ":return bsc(e,t);case"MAP":return vsc(e,t);case"PLAIN":return Rsc(e,t);case"QUOTE_DOUBLE":return ksc(e,t);case"QUOTE_SINGLE":return Gsc(e,t);case"SEQ":return Lsc(e,t);default:throw new Error(`Unexpected node type ${e.type}`)}}function Psc(e,t,r){let n=new SyntaxError(e);return n.name="YAMLSyntaxError",n.source=t,n.position=r,n}function Wsc(e,t){let r=e.source.range||e.source.valueRange;return Psc(e.message,t.text,t.transformRange(r))}function Osc(e,t,r){return{offset:e,line:t,column:r}}function Msc(e,t){e<0?e=0:e>t.text.length&&(e=t.text.length);let r=t.locator.locationForIndex(e);return Osc(e,r.line+1,r.column+1)}function Hsc(e,t){return Ume(t.transformOffset(e.origStart),t.transformOffset(e.origEnd))}function Ysc(e){if(!e.setOrigRanges()){let t=r=>{if(Qsc(r))return r.origStart=r.start,r.origEnd=r.end,!0;if(Xsc(r))return r.origOffset=r.offset,!0};e.forEach(r=>EDr(r,t))}}function EDr(e,t){if(!(!e||typeof e!="object")&&t(e)!==!0)for(let r of Object.keys(e)){if(r==="context"||r==="error")continue;let n=e[r];Array.isArray(n)?n.forEach(a=>EDr(a,t)):EDr(n,t)}}function Qsc(e){return typeof e.start=="number"}function Xsc(e){return typeof e.offset=="number"}function zwi(e){if("children"in e){if(e.children.length===1){let t=e.children[0];if(t.type==="plain"&&t.tag===null&&t.anchor===null&&t.value==="")return e.children.splice(0,1),e}e.children.forEach(zwi)}return e}function twi(e,t,r,n){let a=t(e);return o=>{n(a,o)&&r(e,a=o)}}function qwi(e){if(e===null||!("children"in e))return;let t=e.children;if(t.forEach(qwi),e.type==="document"){let[o,l]=e.children;o.position.start.offset===o.position.end.offset?o.position.start=o.position.end=l.position.start:l.position.start.offset===l.position.end.offset&&(l.position.start=l.position.end=o.position.end)}let r=twi(e.position,Jsc,Usc,zsc),n=twi(e.position,Ksc,jsc,qsc);"endComments"in e&&e.endComments.length!==0&&(r(e.endComments[0].position.start),n(Tce(e.endComments).position.end));let a=t.filter(o=>o!==null);if(a.length!==0){let o=a[0],l=Tce(a);r(o.position.start),n(l.position.end),"leadingComments"in o&&o.leadingComments.length!==0&&r(o.leadingComments[0].position.start),"tag"in o&&o.tag&&r(o.tag.position.start),"anchor"in o&&o.anchor&&r(o.anchor.position.start),"trailingComment"in l&&l.trailingComment&&n(l.trailingComment.position.end)}}function Jsc(e){return e.start}function Usc(e,t){e.start=t}function Ksc(e){return e.end}function jsc(e,t){e.end=t}function zsc(e,t){return t.offsete.offset}var $sc=nwi(Pnc(),1),iH=nwi(Wnc(),1),yRu=iH.default.findPair,bRu=iH.default.toJSON,ERu=iH.default.parseMap,SRu=iH.default.parseSeq,vRu=iH.default.stringifyNumber,BRu=iH.default.stringifyString,wRu=iH.default.Type,TRu=iH.default.YAMLError,RRu=iH.default.YAMLReferenceError,eoc=iH.default.YAMLSemanticError,NRu=iH.default.YAMLSyntaxError,DRu=iH.default.YAMLWarning,{Document:toc,parseCST:roc}=$sc.default;function noc(e){let t=roc(e);Ysc(t);let r=t.map(A=>new toc({merge:!1,keepCstNodes:!0}).parse(A)),n=new Hic(e),a=[],o={text:e,locator:n,comments:a,transformOffset:A=>Msc(A,o),transformRange:A=>Hsc(A,o),transformNode:A=>Vsc(A,o),transformContent:A=>Mwi(A,o)};for(let A of r)for(let f of A.errors)if(!(f instanceof eoc&&f.message==='Map keys must be unique; "<<" is repeated'))throw Wsc(f,o);r.forEach(A=>sEt(A.cstNode));let l=Uic(o.transformRange({origStart:0,origEnd:o.text.length}),r.map(o.transformNode),a);return Yic(l),qwi(l),zwi(l),l}function ioc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var soc=ioc;function ooc(e){try{let t=noc(e);return delete t.comments,t}catch(t){throw t!=null&&t.position?soc(t.message,{loc:t.position,cause:t}):t}}var aoc={astFormat:"yaml",parse:ooc,hasPragma:mic,locStart:aEt,locEnd:Iic},$wi={yaml:Oic},coc=fwi;var loc=Object.create,tkr=Object.defineProperty,uoc=Object.getOwnPropertyDescriptor,goc=Object.getOwnPropertyNames,Aoc=Object.getPrototypeOf,doc=Object.prototype.hasOwnProperty,DTi=e=>{throw TypeError(e)},kTi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rkr=(e,t)=>{for(var r in t)tkr(e,r,{get:t[r],enumerable:!0})},poc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of goc(t))!doc.call(e,a)&&a!==r&&tkr(e,a,{get:()=>t[a],enumerable:!(n=uoc(t,a))||n.enumerable});return e},EEt=(e,t,r)=>(r=e!=null?loc(Aoc(e)):{},poc(t||!e||!e.__esModule?tkr(r,"default",{value:e,enumerable:!0}):r,e)),foc=(e,t,r)=>t.has(e)||DTi("Cannot "+r),Ioc=(e,t,r)=>t.has(e)?DTi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),FJe=(e,t,r)=>(foc(e,t,"access private method"),r),nkr=kTi((e,t)=>{"use strict";var r=new Proxy(String,{get:()=>r});t.exports=r}),hoc=kTi(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(){return new Proxy({},{get:()=>o=>o})}var r=/\r\n|[\n\r\u2028\u2029]/;function n(o,l,A){let f=Object.assign({column:0,line:-1},o.start),I=Object.assign({},f,o.end),{linesAbove:C=2,linesBelow:b=3}=A||{},E=f.line,N=f.column,B=I.line,F=I.column,Q=Math.max(E-(C+1),0),X=Math.min(l.length,B+b);E===-1&&(Q=0),B===-1&&(X=l.length);let ae=B-E,ne={};if(ae)for(let ce=0;ce<=ae;ce++){let fe=ce+E;if(!N)ne[fe]=!0;else if(ce===0){let ue=l[fe-1].length;ne[fe]=[N,ue-N+1]}else if(ce===ae)ne[fe]=[0,F];else{let ue=l[fe-ce].length;ne[fe]=[0,ue]}}else N===F?N?ne[E]=[N,0]:ne[E]=!0:ne[E]=[N,F-N];return{start:Q,end:X,markerLines:ne}}function a(o,l,A={}){let f=t(!1),I=o.split(r),{start:C,end:b,markerLines:E}=n(l,I,A),N=l.start&&typeof l.start.column=="number",B=String(b).length,F=o.split(r,b).slice(C,b).map((Q,X)=>{let ae=C+1+X,ne=` ${` ${ae}`.slice(-B)} |`,ce=E[ae],fe=!E[ae+1];if(ce){let ue="";if(Array.isArray(ce)){let de=Q.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` +`,zBi="\r",Hic=function(){function e(t){this.length=t.length;for(var r=[0],n=0;nthis.length)return null;for(var r=0,n=this.offsets;n[r+1]<=t;)r++;var a=t-n[r];return{line:r,column:a}},e.prototype.indexForLocation=function(t){var r=t.line,n=t.column;return r<0||r>=this.offsets.length||n<0||n>this.lengthOfLine(r)?null:this.offsets[r]+n},e.prototype.lengthOfLine=function(t){var r=this.offsets[t],n=t===this.offsets.length-1?this.length:this.offsets[t+1];return n-r},e}();function mO(e,t=null){"children"in e&&e.children.forEach(r=>mO(r,e)),"anchor"in e&&e.anchor&&mO(e.anchor,e),"tag"in e&&e.tag&&mO(e.tag,e),"leadingComments"in e&&e.leadingComments.forEach(r=>mO(r,e)),"middleComments"in e&&e.middleComments.forEach(r=>mO(r,e)),"indicatorComment"in e&&e.indicatorComment&&mO(e.indicatorComment,e),"trailingComment"in e&&e.trailingComment&&mO(e.trailingComment,e),"endComments"in e&&e.endComments.forEach(r=>mO(r,e)),Object.defineProperty(e,"_parent",{value:t,enumerable:!1})}function lEt(e){return`${e.line}:${e.column}`}function Yic(e){mO(e);let t=Qic(e),r=e.children.slice();e.comments.sort((n,a)=>n.position.start.offset-a.position.end.offset).filter(n=>!n._parent).forEach(n=>{for(;r.length>1&&n.position.start.line>r[0].position.end.line;)r.shift();Xic(n,t,r[0])})}function Qic(e){let t=Array.from(new Array(e.position.end.line),()=>({}));for(let r of e.comments)t[r.position.start.line-1].comment=r;return Wwi(t,e),t}function Wwi(e,t){if(t.position.start.offset!==t.position.end.offset){if("leadingComments"in t){let{start:r}=t.position,{leadingAttachableNode:n}=e[r.line-1];(!n||r.column1&&t.type!=="document"&&t.type!=="documentHead"){let{end:r}=t.position,{trailingAttachableNode:n}=e[r.line-1];(!n||r.column>=n.position.end.column)&&(e[r.line-1].trailingAttachableNode=t)}if(t.type!=="root"&&t.type!=="document"&&t.type!=="documentHead"&&t.type!=="documentBody"){let{start:r,end:n}=t.position,a=[n.line].concat(r.line===n.line?[]:r.line);for(let o of a){let l=e[o-1].trailingNode;(!l||n.column>=l.position.end.column)&&(e[o-1].trailingNode=t)}}"children"in t&&t.children.forEach(r=>{Wwi(e,r)})}}function Xic(e,t,r){let n=e.position.start.line,{trailingAttachableNode:a}=t[n-1];if(a){if(a.trailingComment)throw new Error(`Unexpected multiple trailing comment at ${lEt(e.position.start)}`);mO(e,a),a.trailingComment=e;return}for(let l=n;l>=r.position.start.line;l--){let{trailingNode:A}=t[l-1],f;if(A)f=A;else if(l!==n&&t[l-1].comment)f=t[l-1].comment._parent;else continue;if((f.type==="sequence"||f.type==="mapping")&&(f=f.children[0]),f.type==="mappingItem"){let[I,C]=f.children;f=Owi(I)?I:C}for(;;){if(Jic(f,e)){mO(e,f),f.endComments.push(e);return}if(!f._parent)break;f=f._parent}break}for(let l=n+1;l<=r.position.end.line;l++){let{leadingAttachableNode:A}=t[l-1];if(A){mO(e,A),A.leadingComments.push(e);return}}let o=r.children[1];mO(e,o),o.endComments.push(e)}function Jic(e,t){if(e.position.start.offsett.position.end.offset)switch(e.type){case"flowMapping":case"flowSequence":return e.children.length===0||t.position.start.line>e.children[e.children.length-1].position.end.line}if(t.position.end.offsete.position.start.column;case"mappingKey":case"mappingValue":return t.position.start.column>e._parent.position.start.column&&(e.children.length===0||e.children.length===1&&e.children[0].type!=="blockFolded"&&e.children[0].type!=="blockLiteral")&&(e.type==="mappingValue"||Owi(e));default:return!1}}function Owi(e){return e.position.start!==e.position.end&&(e.children.length===0||e.position.start.offset!==e.children[0].position.start.offset)}function nw(e,t){return{type:e,position:t}}function Uic(e,t,r){return{...nw("root",e),children:t,comments:r}}function sEt(e){switch(e.type){case"DOCUMENT":for(let t=e.contents.length-1;t>=0;t--)e.contents[t].type==="BLANK_LINE"?e.contents.splice(t,1):sEt(e.contents[t]);for(let t=e.directives.length-1;t>=0;t--)e.directives[t].type==="BLANK_LINE"&&e.directives.splice(t,1);break;case"FLOW_MAP":case"FLOW_SEQ":case"MAP":case"SEQ":for(let t=e.items.length-1;t>=0;t--){let r=e.items[t];"char"in r||(r.type==="BLANK_LINE"?e.items.splice(t,1):sEt(r))}break;case"MAP_KEY":case"MAP_VALUE":case"SEQ_ITEM":e.node&&sEt(e.node);break;case"ALIAS":case"BLANK_LINE":case"BLOCK_FOLDED":case"BLOCK_LITERAL":case"COMMENT":case"DIRECTIVE":case"PLAIN":case"QUOTE_DOUBLE":case"QUOTE_SINGLE":break;default:throw new Error(`Unexpected node type ${JSON.stringify(e.type)}`)}}function LNe(){return{leadingComments:[]}}function AEt(e=null){return{trailingComment:e}}function jme(){return{...LNe(),...AEt()}}function Kic(e,t,r){return{...nw("alias",e),...jme(),...t,value:r}}function jic(e,t){let r=e.cstNode;return Kic(t.transformRange({origStart:r.valueRange.origStart-1,origEnd:r.valueRange.origEnd}),t.transformContent(e),r.rawValue)}function zic(e){return{...e,type:"blockFolded"}}function qic(e,t,r,n,a,o){return{...nw("blockValue",e),...LNe(),...t,chomping:r,indent:n,value:a,indicatorComment:o}}var GNe;(function(e){e.Tag="!",e.Anchor="&",e.Comment="#"})(GNe||(GNe={}));function $ic(e,t){return{...nw("anchor",e),value:t}}function GDr(e,t){return{...nw("comment",e),value:t}}function esc(e,t,r){return{anchor:t,tag:e,middleComments:r}}function tsc(e,t){return{...nw("tag",e),value:t}}function Mwi(e,t,r=()=>!1){let n=e.cstNode,a=[],o=null,l=null,A=null;for(let f of n.props){let I=t.text[f.origStart];switch(I){case GNe.Tag:o=o||f,l=tsc(t.transformRange(f),e.tag);break;case GNe.Anchor:o=o||f,A=$ic(t.transformRange(f),n.anchor);break;case GNe.Comment:{let C=GDr(t.transformRange(f),t.text.slice(f.origStart+1,f.origEnd));t.comments.push(C),!r(C)&&o&&o.origEnd<=f.origStart&&f.origEnd<=n.valueRange.origStart&&a.push(C);break}default:throw new Error(`Unexpected leading character ${JSON.stringify(I)}`)}}return esc(l,A,a)}var bDr;(function(e){e.CLIP="clip",e.STRIP="strip",e.KEEP="keep"})(bDr||(bDr={}));function Hwi(e,t){let r=e.cstNode,n=1,a=r.chomping==="CLIP"?0:1,o=r.header.origEnd-r.header.origStart-n-a!==0,l=t.transformRange({origStart:r.header.origStart,origEnd:r.valueRange.origEnd}),A=null,f=Mwi(e,t,I=>{if(!(l.start.offset=0;f--){let I=e.contents[f];if(I.type==="COMMENT"){let C=t.transformNode(I);r&&r.line===C.position.start.line?l.unshift(C):A?n.unshift(C):C.position.start.offset>=e.valueRange.origEnd?o.unshift(C):n.unshift(C)}else A=!0}if(o.length>1)throw new Error(`Unexpected multiple document trailing comments at ${lEt(o[1].position.start)}`);if(l.length>1)throw new Error(`Unexpected multiple documentHead trailing comments at ${lEt(l[1].position.start)}`);return{comments:n,endComments:a,documentTrailingComment:Tce(o)||null,documentHeadTrailingComment:Tce(l)||null}}function Asc(e,t,r){let n=Ywi(r.text.slice(e.valueRange.origEnd),/^\.\.\./),a=n===-1?e.valueRange.origEnd:Math.max(0,e.valueRange.origEnd-1);r.text[a-1]==="\r"&&a--;let o=r.transformRange({origStart:t!==null?t.position.start.offset:a,origEnd:a}),l=n===-1?o.end:r.transformOffset(e.valueRange.origEnd+3);return{position:o,documentEndPoint:l}}function dsc(e,t,r,n){return{...nw("documentHead",e),...zme(r),...AEt(n),children:t}}function psc(e,t){let r=e.cstNode,{directives:n,comments:a,endComments:o}=fsc(r,t),{position:l,endMarkerPoint:A}=Isc(r,n,t);return t.comments.push(...a,...o),{createDocumentHeadWithTrailingComment:f=>(f&&t.comments.push(f),dsc(l,n,o,f)),documentHeadEndMarkerPoint:A}}function fsc(e,t){let r=[],n=[],a=[],o=!1;for(let l=e.directives.length-1;l>=0;l--){let A=t.transformNode(e.directives[l]);A.type==="comment"?o?n.unshift(A):a.unshift(A):(o=!0,r.unshift(A))}return{directives:r,comments:n,endComments:a}}function Isc(e,t,r){let n=Ywi(r.text.slice(0,e.valueRange.origStart),/---\s*$/);n>0&&!/[\r\n]/.test(r.text[n-1])&&(n=-1);let a=n===-1?{origStart:e.valueRange.origStart,origEnd:e.valueRange.origStart}:{origStart:n,origEnd:n+3};return t.length!==0&&(a.origStart=t[0].position.start.offset),{position:r.transformRange(a),endMarkerPoint:n===-1?null:r.transformOffset(n)}}function hsc(e,t){let{createDocumentHeadWithTrailingComment:r,documentHeadEndMarkerPoint:n}=psc(e,t),{documentBody:a,documentEndPoint:o,documentTrailingComment:l,documentHeadTrailingComment:A}=usc(e,t,n),f=r(A);return l&&t.comments.push(l),csc(Ume(f.position.start,o),f,a,l)}function Qwi(e,t,r){return{...nw("flowCollection",e),...jme(),...zme(),...t,children:r}}function msc(e,t,r){return{...Qwi(e,t,r),type:"flowMapping"}}function Xwi(e,t,r){return{...nw("flowMappingItem",e),...LNe(),children:[t,r]}}function dEt(e,t){let r=[];for(let n of e)n&&"type"in n&&n.type==="COMMENT"?t.comments.push(t.transformNode(n)):r.push(n);return r}function Jwi(e){let[t,r]=["?",":"].map(n=>{let a=e.find(o=>"char"in o&&o.char===n);return a?{origStart:a.origOffset,origEnd:a.origOffset+1}:null});return{additionalKeyRange:t,additionalValueRange:r}}function Uwi(e,t){let r=t;return n=>e.slice(r,r=n)}function Kwi(e){let t=[],r=Uwi(e,1),n=!1;for(let a=1;a{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}),o=r[0],l=Tce(r);return msc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function _sc(e,t,r){return{...Qwi(e,t,r),type:"flowSequence"}}function ysc(e,t){return{...nw("flowSequenceItem",e),children:[t]}}function bsc(e,t){let r=dEt(e.cstNode.items,t),n=Kwi(r),a=e.items.map((A,f)=>{if(A.type!=="PAIR"){let I=t.transformNode(A);return ysc(Ume(I.position.start,I.position.end),I)}else{let I=n[f],{additionalKeyRange:C,additionalValueRange:b}=Jwi(I);return ZDr(A,t,Xwi,C,b)}}),o=r[0],l=Tce(r);return _sc(t.transformRange({origStart:o.origOffset,origEnd:l.origOffset+1}),t.transformContent(e),a)}function Esc(e,t,r){return{...nw("mapping",e),...LNe(),...t,children:r}}function Ssc(e,t,r){return{...nw("mappingItem",e),...LNe(),children:[t,r]}}function vsc(e,t){let r=e.cstNode;r.items.filter(l=>l.type==="MAP_KEY"||l.type==="MAP_VALUE").forEach(l=>FDr(l,t));let n=dEt(r.items,t),a=Bsc(n),o=e.items.map((l,A)=>{let f=a[A],[I,C]=f[0].type==="MAP_VALUE"?[null,f[0].range]:[f[0].range,f.length===1?null:f[1].range];return ZDr(l,t,Ssc,I,C)});return Esc(Ume(o[0].position.start,Tce(o).position.end),t.transformContent(e),o)}function Bsc(e){let t=[],r=Uwi(e,0),n=!1;for(let a=0;a=0;n--)if(r.test(e[n]))return n;return-1}function Rsc(e,t){let r=e.cstNode;return wsc(t.transformRange({origStart:r.valueRange.origStart,origEnd:Tsc(t.text,r.valueRange.origEnd-1,/\S/)+1}),t.transformContent(e),r.strValue)}function Nsc(e){return{...e,type:"quoteDouble"}}function Dsc(e,t,r){return{...nw("quoteValue",e),...t,...jme(),value:r}}function jwi(e,t){let r=e.cstNode;return Dsc(t.transformRange(r.valueRange),t.transformContent(e),r.strValue)}function ksc(e,t){return Nsc(jwi(e,t))}function xsc(e){return{...e,type:"quoteSingle"}}function Gsc(e,t){return xsc(jwi(e,t))}function Fsc(e,t,r){return{...nw("sequence",e),...LNe(),...zme(),...t,children:r}}function Zsc(e,t){return{...nw("sequenceItem",e),...jme(),...zme(),children:t?[t]:[]}}function Lsc(e,t){let r=dEt(e.cstNode.items,t).map((n,a)=>{FDr(n,t);let o=t.transformNode(e.items[a]);return Zsc(Ume(t.transformOffset(n.valueRange.origStart),o===null?t.transformOffset(n.valueRange.origStart+1):o.position.end),o)});return Fsc(Ume(r[0].position.start,Tce(r).position.end),t.transformContent(e),r)}function Vsc(e,t){if(e===null||e.type===void 0&&e.value===null)return null;switch(e.type){case"ALIAS":return jic(e,t);case"BLOCK_FOLDED":return rsc(e,t);case"BLOCK_LITERAL":return isc(e,t);case"COMMENT":return ssc(e,t);case"DIRECTIVE":return asc(e,t);case"DOCUMENT":return hsc(e,t);case"FLOW_MAP":return Csc(e,t);case"FLOW_SEQ":return bsc(e,t);case"MAP":return vsc(e,t);case"PLAIN":return Rsc(e,t);case"QUOTE_DOUBLE":return ksc(e,t);case"QUOTE_SINGLE":return Gsc(e,t);case"SEQ":return Lsc(e,t);default:throw new Error(`Unexpected node type ${e.type}`)}}function Psc(e,t,r){let n=new SyntaxError(e);return n.name="YAMLSyntaxError",n.source=t,n.position=r,n}function Wsc(e,t){let r=e.source.range||e.source.valueRange;return Psc(e.message,t.text,t.transformRange(r))}function Osc(e,t,r){return{offset:e,line:t,column:r}}function Msc(e,t){e<0?e=0:e>t.text.length&&(e=t.text.length);let r=t.locator.locationForIndex(e);return Osc(e,r.line+1,r.column+1)}function Hsc(e,t){return Ume(t.transformOffset(e.origStart),t.transformOffset(e.origEnd))}function Ysc(e){if(!e.setOrigRanges()){let t=r=>{if(Qsc(r))return r.origStart=r.start,r.origEnd=r.end,!0;if(Xsc(r))return r.origOffset=r.offset,!0};e.forEach(r=>EDr(r,t))}}function EDr(e,t){if(!(!e||typeof e!="object")&&t(e)!==!0)for(let r of Object.keys(e)){if(r==="context"||r==="error")continue;let n=e[r];Array.isArray(n)?n.forEach(a=>EDr(a,t)):EDr(n,t)}}function Qsc(e){return typeof e.start=="number"}function Xsc(e){return typeof e.offset=="number"}function zwi(e){if("children"in e){if(e.children.length===1){let t=e.children[0];if(t.type==="plain"&&t.tag===null&&t.anchor===null&&t.value==="")return e.children.splice(0,1),e}e.children.forEach(zwi)}return e}function twi(e,t,r,n){let a=t(e);return o=>{n(a,o)&&r(e,a=o)}}function qwi(e){if(e===null||!("children"in e))return;let t=e.children;if(t.forEach(qwi),e.type==="document"){let[o,l]=e.children;o.position.start.offset===o.position.end.offset?o.position.start=o.position.end=l.position.start:l.position.start.offset===l.position.end.offset&&(l.position.start=l.position.end=o.position.end)}let r=twi(e.position,Jsc,Usc,zsc),n=twi(e.position,Ksc,jsc,qsc);"endComments"in e&&e.endComments.length!==0&&(r(e.endComments[0].position.start),n(Tce(e.endComments).position.end));let a=t.filter(o=>o!==null);if(a.length!==0){let o=a[0],l=Tce(a);r(o.position.start),n(l.position.end),"leadingComments"in o&&o.leadingComments.length!==0&&r(o.leadingComments[0].position.start),"tag"in o&&o.tag&&r(o.tag.position.start),"anchor"in o&&o.anchor&&r(o.anchor.position.start),"trailingComment"in l&&l.trailingComment&&n(l.trailingComment.position.end)}}function Jsc(e){return e.start}function Usc(e,t){e.start=t}function Ksc(e){return e.end}function jsc(e,t){e.end=t}function zsc(e,t){return t.offsete.offset}var $sc=nwi(Pnc(),1),iH=nwi(Wnc(),1),bRu=iH.default.findPair,ERu=iH.default.toJSON,SRu=iH.default.parseMap,vRu=iH.default.parseSeq,BRu=iH.default.stringifyNumber,wRu=iH.default.stringifyString,TRu=iH.default.Type,RRu=iH.default.YAMLError,NRu=iH.default.YAMLReferenceError,eoc=iH.default.YAMLSemanticError,DRu=iH.default.YAMLSyntaxError,kRu=iH.default.YAMLWarning,{Document:toc,parseCST:roc}=$sc.default;function noc(e){let t=roc(e);Ysc(t);let r=t.map(A=>new toc({merge:!1,keepCstNodes:!0}).parse(A)),n=new Hic(e),a=[],o={text:e,locator:n,comments:a,transformOffset:A=>Msc(A,o),transformRange:A=>Hsc(A,o),transformNode:A=>Vsc(A,o),transformContent:A=>Mwi(A,o)};for(let A of r)for(let f of A.errors)if(!(f instanceof eoc&&f.message==='Map keys must be unique; "<<" is repeated'))throw Wsc(f,o);r.forEach(A=>sEt(A.cstNode));let l=Uic(o.transformRange({origStart:0,origEnd:o.text.length}),r.map(o.transformNode),a);return Yic(l),qwi(l),zwi(l),l}function ioc(e,t){let r=new SyntaxError(e+" ("+t.loc.start.line+":"+t.loc.start.column+")");return Object.assign(r,t)}var soc=ioc;function ooc(e){try{let t=noc(e);return delete t.comments,t}catch(t){throw t!=null&&t.position?soc(t.message,{loc:t.position,cause:t}):t}}var aoc={astFormat:"yaml",parse:ooc,hasPragma:mic,locStart:aEt,locEnd:Iic},$wi={yaml:Oic},coc=fwi;var loc=Object.create,tkr=Object.defineProperty,uoc=Object.getOwnPropertyDescriptor,goc=Object.getOwnPropertyNames,Aoc=Object.getPrototypeOf,doc=Object.prototype.hasOwnProperty,DTi=e=>{throw TypeError(e)},kTi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rkr=(e,t)=>{for(var r in t)tkr(e,r,{get:t[r],enumerable:!0})},poc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of goc(t))!doc.call(e,a)&&a!==r&&tkr(e,a,{get:()=>t[a],enumerable:!(n=uoc(t,a))||n.enumerable});return e},EEt=(e,t,r)=>(r=e!=null?loc(Aoc(e)):{},poc(t||!e||!e.__esModule?tkr(r,"default",{value:e,enumerable:!0}):r,e)),foc=(e,t,r)=>t.has(e)||DTi("Cannot "+r),Ioc=(e,t,r)=>t.has(e)?DTi("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),FJe=(e,t,r)=>(foc(e,t,"access private method"),r),nkr=kTi((e,t)=>{"use strict";var r=new Proxy(String,{get:()=>r});t.exports=r}),hoc=kTi(e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});function t(){return new Proxy({},{get:()=>o=>o})}var r=/\r\n|[\n\r\u2028\u2029]/;function n(o,l,A){let f=Object.assign({column:0,line:-1},o.start),I=Object.assign({},f,o.end),{linesAbove:C=2,linesBelow:b=3}=A||{},E=f.line,N=f.column,B=I.line,F=I.column,Q=Math.max(E-(C+1),0),X=Math.min(l.length,B+b);E===-1&&(Q=0),B===-1&&(X=l.length);let ae=B-E,ne={};if(ae)for(let ce=0;ce<=ae;ce++){let fe=ce+E;if(!N)ne[fe]=!0;else if(ce===0){let ue=l[fe-1].length;ne[fe]=[N,ue-N+1]}else if(ce===ae)ne[fe]=[0,F];else{let ue=l[fe-ce].length;ne[fe]=[0,ue]}}else N===F?N?ne[E]=[N,0]:ne[E]=!0:ne[E]=[N,F-N];return{start:Q,end:X,markerLines:ne}}function a(o,l,A={}){let f=t(!1),I=o.split(r),{start:C,end:b,markerLines:E}=n(l,I,A),N=l.start&&typeof l.start.column=="number",B=String(b).length,F=o.split(r,b).slice(C,b).map((Q,X)=>{let ae=C+1+X,ne=` ${` ${ae}`.slice(-B)} |`,ce=E[ae],fe=!E[ae+1];if(ce){let ue="";if(Array.isArray(ce)){let de=Q.slice(0,Math.max(ce[0]-1,0)).replace(/[^\t]/g," "),be=ce[1]||1;ue=[` `,f.gutter(ne.replace(/\d/g," "))," ",de,f.marker("^").repeat(be)].join(""),fe&&A.message&&(ue+=" "+f.message(A.message))}return[f.marker(">"),f.gutter(ne),Q.length>0?` ${Q}`:"",ue].join("")}else return` ${f.gutter(ne)}${Q.length>0?` ${Q}`:""}`}).join(` `);return A.message&&!N&&(F=`${" ".repeat(B+1)}${A.message} -${F}`),F}e.codeFrameColumns=a}),moc={};rkr(moc,{__debug:()=>Blc,check:()=>Slc,doc:()=>pRi,format:()=>kEt,formatWithCursor:()=>IRi,getSupportInfo:()=>vlc,util:()=>fRi,version:()=>qcc});var Coc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},SEt=Coc;function a4(){}a4.prototype={diff:function(e,t){var r,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=n.callback;typeof n=="function"&&(a=n,n={});var o=this;function l(ne){return ne=o.postProcess(ne,n),a?(setTimeout(function(){a(ne)},0),!0):ne}e=this.castInput(e,n),t=this.castInput(t,n),e=this.removeEmpty(this.tokenize(e,n)),t=this.removeEmpty(this.tokenize(t,n));var A=t.length,f=e.length,I=1,C=A+f;n.maxEditLength!=null&&(C=Math.min(C,n.maxEditLength));var b=(r=n.timeout)!==null&&r!==void 0?r:1/0,E=Date.now()+b,N=[{oldPos:-1,lastComponent:void 0}],B=this.extractCommon(N[0],t,e,0,n);if(N[0].oldPos+1>=f&&B+1>=A)return l(eTi(o,N[0].lastComponent,t,e,o.useLongestToken));var F=-1/0,Q=1/0;function X(){for(var ne=Math.max(F,-I);ne<=Math.min(Q,I);ne+=2){var ce=void 0,fe=N[ne-1],ue=N[ne+1];fe&&(N[ne-1]=void 0);var de=!1;if(ue){var be=ue.oldPos-ne;de=ue&&0<=be&&be=f&&B+1>=A)return l(eTi(o,ce.lastComponent,t,e,o.useLongestToken));N[ne]=ce,ce.oldPos+1>=f&&(Q=Math.min(Q,ne-1)),B+1>=A&&(F=Math.max(F,ne+1))}I++}if(a)(function ne(){setTimeout(function(){if(I>C||Date.now()>E)return a();X()||ne()},0)})();else for(;I<=C&&Date.now()<=E;){var ae=X();if(ae)return ae}},addToPath:function(e,t,r,n,a){var o=e.lastComponent;return o&&!a.oneChangePerToken&&o.added===t&&o.removed===r?{oldPos:e.oldPos+n,lastComponent:{count:o.count+1,added:t,removed:r,previousComponent:o.previousComponent}}:{oldPos:e.oldPos+n,lastComponent:{count:1,added:t,removed:r,previousComponent:o}}},extractCommon:function(e,t,r,n,a){for(var o=t.length,l=r.length,A=e.oldPos,f=A-n,I=0;f+1N.length?F:N}),b.value=e.join(E)}else b.value=e.join(r.slice(I,I+b.count));I+=b.count,b.added||(C+=b.count)}}return o}var qRu=new a4;function tTi(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[l]!=t[o];)o=a[o];t[l]==t[o]&&o++}o=0;for(var A=r;A0&&e[A]!=t[o];)o=a[o];e[A]==t[o]&&o++}return o}var _Et="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",yoc=new RegExp("[".concat(_Et,"]+|\\s+|[^").concat(_Et,"]"),"ug"),vEt=new a4;vEt.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};vEt.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(o){return o.segment})}else r=e.match(yoc)||[];var n=[],a=null;return r.forEach(function(o){/\s/.test(o)?a==null?n.push(o):n.push(n.pop()+o):/\s/.test(a)?n[n.length-1]==a?n.push(n.pop()+o):n.push(a+o):n.push(o),a=o}),n};vEt.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};vEt.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,a=null;return e.forEach(function(o){o.added?n=o:o.removed?a=o:((n||a)&&iTi(r,a,n,o),r=o,n=null,a=null)}),(n||a)&&iTi(r,a,n,null),e};function iTi(e,t,r,n){if(t&&r){var a=t.value.match(/^\s*/)[0],o=t.value.match(/\s*$/)[0],l=r.value.match(/^\s*/)[0],A=r.value.match(/\s*$/)[0];if(e){var f=tTi(a,l);e.value=YDr(e.value,l,f),t.value=ZJe(t.value,f),r.value=ZJe(r.value,f)}if(n){var I=rTi(o,A);n.value=HDr(n.value,A,I),t.value=pEt(t.value,I),r.value=pEt(r.value,I)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var C=n.value.match(/^\s*/)[0],b=t.value.match(/^\s*/)[0],E=t.value.match(/\s*$/)[0],N=tTi(C,b);t.value=ZJe(t.value,N);var B=rTi(ZJe(C,N),E);t.value=pEt(t.value,B),n.value=HDr(n.value,C,B),e.value=YDr(e.value,C,C.slice(0,C.length-B.length))}else if(n){var F=n.value.match(/^\s*/)[0],Q=t.value.match(/\s*$/)[0],X=nTi(Q,F);t.value=pEt(t.value,X)}else if(e){var ae=e.value.match(/\s*$/)[0],ne=t.value.match(/^\s*/)[0],ce=nTi(ae,ne);t.value=ZJe(t.value,ce)}}var boc=new a4;boc.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(_Et,"]+|[^\\S\\n\\r]+|[^").concat(_Et,"]"),"ug");return e.match(t)||[]};var ikr=new a4;ikr.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` +${F}`),F}e.codeFrameColumns=a}),moc={};rkr(moc,{__debug:()=>Blc,check:()=>Slc,doc:()=>pRi,format:()=>kEt,formatWithCursor:()=>IRi,getSupportInfo:()=>vlc,util:()=>fRi,version:()=>qcc});var Coc=(e,t,r,n)=>{if(!(e&&t==null))return t.replaceAll?t.replaceAll(r,n):r.global?t.replace(r,n):t.split(r).join(n)},SEt=Coc;function a4(){}a4.prototype={diff:function(e,t){var r,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=n.callback;typeof n=="function"&&(a=n,n={});var o=this;function l(ne){return ne=o.postProcess(ne,n),a?(setTimeout(function(){a(ne)},0),!0):ne}e=this.castInput(e,n),t=this.castInput(t,n),e=this.removeEmpty(this.tokenize(e,n)),t=this.removeEmpty(this.tokenize(t,n));var A=t.length,f=e.length,I=1,C=A+f;n.maxEditLength!=null&&(C=Math.min(C,n.maxEditLength));var b=(r=n.timeout)!==null&&r!==void 0?r:1/0,E=Date.now()+b,N=[{oldPos:-1,lastComponent:void 0}],B=this.extractCommon(N[0],t,e,0,n);if(N[0].oldPos+1>=f&&B+1>=A)return l(eTi(o,N[0].lastComponent,t,e,o.useLongestToken));var F=-1/0,Q=1/0;function X(){for(var ne=Math.max(F,-I);ne<=Math.min(Q,I);ne+=2){var ce=void 0,fe=N[ne-1],ue=N[ne+1];fe&&(N[ne-1]=void 0);var de=!1;if(ue){var be=ue.oldPos-ne;de=ue&&0<=be&&be=f&&B+1>=A)return l(eTi(o,ce.lastComponent,t,e,o.useLongestToken));N[ne]=ce,ce.oldPos+1>=f&&(Q=Math.min(Q,ne-1)),B+1>=A&&(F=Math.max(F,ne+1))}I++}if(a)(function ne(){setTimeout(function(){if(I>C||Date.now()>E)return a();X()||ne()},0)})();else for(;I<=C&&Date.now()<=E;){var ae=X();if(ae)return ae}},addToPath:function(e,t,r,n,a){var o=e.lastComponent;return o&&!a.oneChangePerToken&&o.added===t&&o.removed===r?{oldPos:e.oldPos+n,lastComponent:{count:o.count+1,added:t,removed:r,previousComponent:o.previousComponent}}:{oldPos:e.oldPos+n,lastComponent:{count:1,added:t,removed:r,previousComponent:o}}},extractCommon:function(e,t,r,n,a){for(var o=t.length,l=r.length,A=e.oldPos,f=A-n,I=0;f+1N.length?F:N}),b.value=e.join(E)}else b.value=e.join(r.slice(I,I+b.count));I+=b.count,b.added||(C+=b.count)}}return o}var $Ru=new a4;function tTi(e,t){var r;for(r=0;rt.length&&(r=e.length-t.length);var n=t.length;e.length0&&t[l]!=t[o];)o=a[o];t[l]==t[o]&&o++}o=0;for(var A=r;A0&&e[A]!=t[o];)o=a[o];e[A]==t[o]&&o++}return o}var _Et="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",yoc=new RegExp("[".concat(_Et,"]+|\\s+|[^").concat(_Et,"]"),"ug"),vEt=new a4;vEt.equals=function(e,t,r){return r.ignoreCase&&(e=e.toLowerCase(),t=t.toLowerCase()),e.trim()===t.trim()};vEt.tokenize=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r;if(t.intlSegmenter){if(t.intlSegmenter.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');r=Array.from(t.intlSegmenter.segment(e),function(o){return o.segment})}else r=e.match(yoc)||[];var n=[],a=null;return r.forEach(function(o){/\s/.test(o)?a==null?n.push(o):n.push(n.pop()+o):/\s/.test(a)?n[n.length-1]==a?n.push(n.pop()+o):n.push(a+o):n.push(o),a=o}),n};vEt.join=function(e){return e.map(function(t,r){return r==0?t:t.replace(/^\s+/,"")}).join("")};vEt.postProcess=function(e,t){if(!e||t.oneChangePerToken)return e;var r=null,n=null,a=null;return e.forEach(function(o){o.added?n=o:o.removed?a=o:((n||a)&&iTi(r,a,n,o),r=o,n=null,a=null)}),(n||a)&&iTi(r,a,n,null),e};function iTi(e,t,r,n){if(t&&r){var a=t.value.match(/^\s*/)[0],o=t.value.match(/\s*$/)[0],l=r.value.match(/^\s*/)[0],A=r.value.match(/\s*$/)[0];if(e){var f=tTi(a,l);e.value=YDr(e.value,l,f),t.value=ZJe(t.value,f),r.value=ZJe(r.value,f)}if(n){var I=rTi(o,A);n.value=HDr(n.value,A,I),t.value=pEt(t.value,I),r.value=pEt(r.value,I)}}else if(r)e&&(r.value=r.value.replace(/^\s*/,"")),n&&(n.value=n.value.replace(/^\s*/,""));else if(e&&n){var C=n.value.match(/^\s*/)[0],b=t.value.match(/^\s*/)[0],E=t.value.match(/\s*$/)[0],N=tTi(C,b);t.value=ZJe(t.value,N);var B=rTi(ZJe(C,N),E);t.value=pEt(t.value,B),n.value=HDr(n.value,C,B),e.value=YDr(e.value,C,C.slice(0,C.length-B.length))}else if(n){var F=n.value.match(/^\s*/)[0],Q=t.value.match(/\s*$/)[0],X=nTi(Q,F);t.value=pEt(t.value,X)}else if(e){var ae=e.value.match(/\s*$/)[0],ne=t.value.match(/^\s*/)[0],ce=nTi(ae,ne);t.value=ZJe(t.value,ce)}}var boc=new a4;boc.tokenize=function(e){var t=new RegExp("(\\r?\\n)|[".concat(_Et,"]+|[^\\S\\n\\r]+|[^").concat(_Et,"]"),"ug");return e.match(t)||[]};var ikr=new a4;ikr.tokenize=function(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` `));var r=[],n=e.split(/(\n|\r\n)/);n[n.length-1]||n.pop();for(var a=0;a({_:{"schema-version":_Ac,id:e,name:e,version:"0.0.1"},io:{buildpacks:{exclude:await edc(n,a),builder:t,build:{env:r}}}});var Ykr=Nt(Bn(),1);import{platform as tdc}from"node:os";import{arch as rdc}from"node:os";var wDi="0.40.4",UNe=async(e,t,r)=>{let{code:n}=await Ykr.execUtils.pipevp(e,t,{...r,end:Ykr.execUtils.EndStrategy.ErrorCode});if(n!==0)throw new Error(`Command "${[e,...t].join(" ")}" failed with exit code ${n}`)},TDi=async({context:e,cwd:t})=>{let r;try{await UNe("pack",["--version"],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),r=!0}catch{r=!1}if(!r){console.log("Buildpack CLI (pack) is not installed. Installing it...");let n=`https://github.com/buildpacks/pack/releases/download/v${wDi}/pack-v${wDi}-`,a=tdc(),o=rdc();switch(a){case"linux":n+="linux.tgz";break;case"darwin":o==="arm64"?n+="macos-arm64.tgz":n+="macos.tgz";break;default:break}let l=`${t??e.cwd}/pack.tgz`;await UNe("curl",["-sSL","-o",l,n],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),await UNe("tar",["-C","/usr/local/bin/","--no-same-owner","-xzv",l],{cwd:t??e.cwd,env:process.env,stdin:e.stdin,stdout:e.stdout,stderr:e.stderr}),console.log("Buildpack CLI (pack) has been installed.")}};var DDi=async({workspace:e,registry:t,publish:r,tagPolicy:n,builder:a,buildpack:o,platform:l,require:A,cwd:f},I)=>{let C=f??I.cwd,b=e.replace("@","").replace(/\//g,"-"),E=`${t}${b}`,N=await YNi(n),B=[{name:"WORKSPACE",value:e},{name:"CNB_USER_ID",value:"1001"}];A&&A.length>0&&B.push({name:"BP_REQUIRE",value:A.join(",")});let F=await BDi({repo:b,builder:a,envs:B,cwd:C,platform:l}),Q=NDi.ppath.join(await Qkr.xfs.mktempPromise(),"project.toml");await Qkr.xfs.writeFilePromise(Q,(0,RDi.stringify)(F)),console.debug("project.toml",ndc(Q,"utf8"));let X=["build","--trust-builder",`${E}:${N}`,"--descriptor",Q,"--buildpack",o,"--tag",`${E}:latest`,"--creation-time","now","--clear-cache","--verbose"];return r&&X.push("--publish"),l&&X.push("--platform",l),console.debug("Packing with args:",X),await TDi({cwd:f,context:I}),await UNe("pack",["config","experimental","true"],{cwd:C,env:process.env,stdin:I.stdin,stdout:I.stdout,stderr:I.stderr}),await UNe("pack",X,{cwd:C,env:process.env,stdin:I.stdin,stdout:I.stdout,stderr:I.stderr}),{images:[`${E}:${N}`,`${E}:latest`],tags:[N,"latest"],workspace:e}};import{arch as idc}from"node:os";var sdc="24",odc="0.1.3",adc="atlantislab/builder-base",cdc="ghcr.io/atls/buildpack-yarn-workspace-start",ldc="linux",kDi=()=>`${ldc}/${idc()}`,xDi=({buildpack:e,buildpackImage:t,buildpackVersion:r})=>e||`${t??cdc}:${r??odc}`,GDi=({builder:e,builderImage:t,builderTag:r})=>e||`${t??adc}:${r??sdc}`;var iUe=class extends FDi.BaseCommand{static paths=[["image","pack"]];registry=Su.String("-r,--registry","");tagPolicy=Su.String("-t,--tag-policy","revision");publish=Su.Boolean("-p,--publish",!1);platform=Su.String("--platform");async execute(){let t=await ZDi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await LDi.Project.find(t,this.context.cwd),n=r.getWorkspaceByFilePath(this.context.cwd);return(await VDi.StreamReport.start({configuration:t,stdout:this.context.stdout},async o=>{if(!this.isWorkspaceAllowedForBundle(n)){o.reportInfo(null,`Workspace ${n.manifest.name?Xkr.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} not allowed for package.`);return}let l=await PDi.xfs.mktempPromise();o.reportInfo(null,`Package workspace ${n.manifest.name?Xkr.structUtils.prettyIdent(t,n.manifest.name):n.relativeCwd} to ${l}`);let A=udc(gdc(this.context.cwd,"package.json"),"utf-8"),{packConfiguration:f={}}=JSON.parse(A),{require:I}=f;await SRe.pack(t,r,n,o,l,{platform:this.platform??kDi()}),await DDi({workspace:n.manifest.raw.name,registry:this.registry,publish:this.publish,tagPolicy:this.tagPolicy,buildpack:xDi(f),builder:GDi(f),platform:this.platform,require:I,cwd:l},this.context)})).exitCode()}isWorkspaceAllowedForBundle(t){let{scripts:r,name:n}=t.manifest,a=r.get("build");return["actl service build","actl renderer build","build-storybook","storybook build","next build","builder build library","app service build","app renderer build","service build","renderer build","strapi build","astro build"].some(l=>a?.includes(l))&&!!n}};var WDi={commands:[iUe]};var rxr={};sI(rxr,{LibraryBuildCommand:()=>oUe,default:()=>Cki});var Aki=Nt(el(),1),dki=Nt(Bn(),1),pki=Nt(Bn(),1),txr=Nt(no(),1),fki=Nt(Bn(),1),Iki=Nt(no(),1);$c();var hki=Nt(Al(),1);import{rm as fdc}from"node:fs/promises";import{join as gki}from"node:path";var $kr=Nt(Al(),1),gCe=Nt(Al(),1),exr=Nt(Ec(),1),jDi=Nt(KDi(),1);import{isAbsolute as Adc}from"node:path";import{relative as ddc}from"node:path";var Hk=Nt(Pc(),1),KEt=({messageText:e,start:t,file:r,code:n,cwd:a=process.cwd()})=>{let o=(0,exr.useMemo)(()=>r?Adc(r.fileName)?ddc(a,r.fileName):r.fileName:null,[r]),l=(0,exr.useMemo)(()=>r&&t?r.getLineAndCharacterOfPosition(t):null,[r,t]);return(0,Hk.jsxs)(gCe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingY:1,width:"100%",children:[!!o&&(0,Hk.jsxs)(gCe.Box,{flexDirection:"row",children:[(0,Hk.jsx)(gCe.Box,{marginBottom:1,paddingX:2,flexGrow:1,children:(0,Hk.jsx)(A8,{line:l?l.line+1:1,column:l?.character,children:o})}),(0,Hk.jsx)(gCe.Box,{paddingX:2,children:(0,Hk.jsxs)($kr.Text,{bold:!0,color:"red",children:["TS",n]})})]}),(0,Hk.jsx)(J9,{offset:2}),!!r?.text&&!!l&&(0,Hk.jsxs)(Hk.Fragment,{children:[(0,Hk.jsx)(gCe.Box,{children:(0,Hk.jsx)(d8,{line:l.line+1,column:l.character,children:r.text})}),(0,Hk.jsx)(J9,{offset:2})]}),(0,Hk.jsx)(gCe.Box,{marginTop:1,paddingX:2,children:(0,Hk.jsx)($kr.Text,{color:"white",children:(0,jDi.flattenDiagnosticMessageText)(e,` `)})})]})};var sUe=Nt(Al(),1),ski=Nt(Ec(),1),oki=Nt(Ec(),1);var zDi=Nt(Ec(),1),qDi=Nt(Ec(),1),$Di=Nt(Ec(),1),tki=Nt(Pc(),1),eki=({typescript:e})=>{let[t,r]=(0,qDi.useState)(10),n=(0,$Di.useRef)();return(0,zDi.useEffect)(()=>{n.current=setInterval(()=>{r(o=>o+10)},100);let a=()=>{setTimeout(()=>{r(100),n.current&&clearInterval(n.current)},600)};return e.on("end",a),()=>{e.off("end",a),n.current&&clearInterval(n.current)}},[e,n,r]),(0,tki.jsx)(JM,{value:t/100*100})};var jNe=Nt(Al(),1),Oee=Nt(Al(),1),rki=Nt(Ec(),1),nki=Nt(Ec(),1);var Yk=Nt(Pc(),1),iki=({typescript:e})=>{let[t,r]=(0,nki.useState)(0);return(0,rki.useEffect)(()=>{let n=a=>{r(a.files.length)};return e.on("start",n),()=>{e.off("start",n)}},[e,r]),t===0?(0,Yk.jsxs)(jNe.Box,{flexDirection:"row",children:[(0,Yk.jsx)(RG,{color:"cyan",children:"TypeScript:"}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsx)(Oee.Text,{color:"white",children:"Loading files..."})]}):(0,Yk.jsxs)(jNe.Box,{flexDirection:"row",width:"100%",children:[(0,Yk.jsxs)(jNe.Box,{flexGrow:1,children:[(0,Yk.jsx)(RG,{color:"cyan",children:"TypeScript:"}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsx)(Oee.Text,{color:"white",children:"Processing..."})]}),(0,Yk.jsx)(jNe.Box,{flexDirection:"row",children:(0,Yk.jsxs)(jNe.Box,{children:[(0,Yk.jsx)(Oee.Text,{color:"green",children:kI.tick}),(0,Yk.jsx)(Oee.Text,{children:" "}),(0,Yk.jsxs)(Oee.Text,{color:"white",children:[t," Files"]}),(0,Yk.jsx)(Oee.Text,{children:" "})]})})]})};var Fce=Nt(Pc(),1),jEt=({typescript:e})=>{let[t,r]=(0,ski.useState)(!1);return(0,oki.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1e3)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Fce.jsx)(sUe.Box,{position:"relative",height:7,children:(0,Fce.jsxs)(sUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Fce.jsx)(sUe.Box,{children:(0,Fce.jsx)(iki,{typescript:e})}),(0,Fce.jsx)(sUe.Box,{marginTop:1,marginBottom:1,children:(0,Fce.jsx)(eki,{typescript:e})})]})})};import pdc from"node:events";import{readFileSync as cki}from"node:fs";import{createRequire as lki}from"node:module";import{join as uki}from"node:path";var bj={compilerOptions:{lib:["dom","dom.iterable","esnext"],declaration:!1,emitDecoratorMetadata:!0,experimentalDecorators:!0,esModuleInterop:!0,forceConsistentCasingInFileNames:!0,importHelpers:!1,isolatedModules:!1,moduleResolution:"NodeNext",noFallthroughCasesInSwitch:!0,noImplicitAny:!0,noImplicitReturns:!0,noImplicitThis:!0,noUnusedLocals:!1,noUnusedParameters:!1,pretty:!0,removeComments:!0,resolveJsonModule:!0,strict:!0,strictPropertyInitialization:!1,sourceMap:!1,module:"NodeNext",target:"es2022",jsx:"react-jsx",outDir:"./dist"},exclude:["**/*/next-env.d.ts","integration","node_modules","src/**/*.spec.ts","src/**/*.test.ts","src/**/*.story.ts","src/**/*.stories.ts","**/*/dist/**/*.ts","**/*/dist/**/*.d.ts","integration/**/*.test.ts",".idea"]};var aki=e=>t=>{let r=n=>{let{moduleSpecifier:a}=n;if(a&&e.isStringLiteral(a)){if(e.isImportDeclaration(n)&&a.text.endsWith(".jsx"))return t.factory.updateImportDeclaration(n,n.modifiers,n.importClause,t.factory.createStringLiteral(a.text.replace(".jsx",".js")),n.assertClause);if(e.isExportDeclaration(n))return t.factory.updateExportDeclaration(n,n.modifiers,n.isTypeOnly,n.exportClause,t.factory.createStringLiteral(a.text.replace(".jsx",".js")),n.assertClause)}return e.visitEachChild(n,r,t)};return n=>e.visitNode(n,r)};var zNe=class e extends pdc{constructor(r,n){super();this.ts=r;this.cwd=n}static async initialize(r){let a=lki(import.meta.url).resolve("@atls/code-runtime/package.json"),l=lki(a)("typescript");return new e(l,r)}async check(r=[]){return this.run(r)}async build(r=[],n={}){return this.run(r,n,!1)}async run(r=[],n={},a=!0){let o=this.getProjectIgnorePatterns(),l=this.getLibCheckOption(),A={...bj,compilerOptions:{...bj.compilerOptions,...n,skipLibCheck:l},include:r,exclude:[...bj.exclude,...o]},{fileNames:f,options:I,errors:C}=this.ts.parseJsonConfigFileContent(A,this.ts.sys,this.cwd);if(C.length>0)return this.emit("start",{files:[]}),this.emit("end",{diagnostics:C}),C;this.emit("start",{files:f});let b=this.ts.createProgram(f,{...I,noEmit:a}),E=Q=>X=>(this.emit("build:start",{file:X.fileName}),X),N=Q=>X=>(this.emit("build:end",{file:X.fileName}),X),B=b.emit(void 0,void 0,void 0,void 0,{before:[E],after:[N,aki(this.ts)]}),F=this.filterDiagnostics(this.ts.getPreEmitDiagnostics(b).concat(B.diagnostics));return this.emit("end",{diagnostics:F}),F}filterDiagnostics(r){return r.filter(n=>n.code!==2209).filter(n=>!(n.code===1479&&n.file?.fileName.includes("/.yarn/"))).filter(n=>!(n.code===2834&&n.file?.fileName.includes("/.yarn/"))).filter(n=>!(n.code===7016&&n.file?.fileName.includes("/lexical/"))).filter(n=>!(n.code===6133&&n.file?.fileName.includes("/@yarnpkg/libui/"))).filter(n=>!([2315,2411,2304,7006,7016].includes(n.code)&&n.file?.fileName.includes("/@strapi/"))).filter(n=>!([2688,2307,2503].includes(n.code)&&n.file?.fileName.includes("/pkg-tests-core/"))).filter(n=>!([2307].includes(n.code)&&n.file?.fileName.includes("/@nestjs/testing/")))}getProjectIgnorePatterns(){let r=cki(uki(this.cwd,"package.json"),"utf-8"),{typecheckIgnorePatterns:n=[]}=JSON.parse(r);return n}getLibCheckOption(){let r=cki(uki(this.cwd,"package.json"),"utf-8"),{typecheckSkipLibCheck:n=!1}=JSON.parse(r);return n}};var zEt=Nt(Pc(),1),oUe=class extends Aki.BaseCommand{static paths=[["library","build"]];target=Su.String("-t,--target","./dist");async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(txr.Filename.pnpCjs)&&t.includes(txr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await dki.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await pki.Project.find(t,this.context.cwd),n=[];this.target&&(n.push("-t"),n.push(this.target));let a=await Iki.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await fki.execUtils.pipevp(o,["library","build",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){await this.cleanTarget();let t=await zNe.initialize(this.context.cwd),{clear:r}=(0,hki.render)((0,zEt.jsx)(jEt,{typescript:t}));try{let n=await t.build([gki(this.context.cwd,"./src")],{outDir:gki(this.context.cwd,this.target),declaration:!0});return n.forEach(a=>{xE((0,zEt.jsx)(KEt,{...a})).split(` `).forEach(l=>{console.log(l)})}),n.length===0?0:1}catch(n){return xE((0,zEt.jsx)(Fk,{error:n})).split(` -`).forEach(a=>{console.error(a)}),1}finally{r()}}async cleanTarget(){try{await fdc(this.target,{recursive:!0,force:!0})}catch{}}};var mki=(e,t)=>{t.publishConfig&&t.publishConfig.exports&&(t.exports=t.publishConfig.exports)};var Cki={hooks:{beforeWorkspacePacking:mki},commands:[oUe]};var lxr={};sI(lxr,{LintCommand:()=>lUe,default:()=>Lki});var xki=Nt(el(),1),oxr=Nt(Bn(),1),axr=Nt(Bn(),1),cxr=Nt(no(),1),Gki=Nt(Bn(),1),Fki=Nt(no(),1);$c();var Zki=Nt(Al(),1);var cUe=Nt(Al(),1),Bki=Nt(Ec(),1),wki=Nt(Ec(),1);var _ki=Nt(Ec(),1),nxr=Nt(Ec(),1),bki=Nt(Pc(),1),yki=({linter:e})=>{let[t,r]=(0,nxr.useState)(0),[n,a]=(0,nxr.useState)(0);return(0,_ki.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("lint:end",l),e.on("end",A),()=>{e.off("start",o),e.off("lint:end",l),e.off("end",A)}},[e,t,r,a]),(0,bki.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as Eki}from"node:path";var qNe=Nt(Al(),1),Qk=Nt(Al(),1),Ski=Nt(Ec(),1),aUe=Nt(Ec(),1);var jb=Nt(Pc(),1),Idc=({state:e})=>e==="warning"?(0,jb.jsx)(Qk.Text,{color:"yellow",children:kI.warning}):e==="error"?(0,jb.jsx)(Qk.Text,{color:"red",children:kI.cross}):e==="success"?(0,jb.jsx)(Qk.Text,{color:"green",children:kI.tick}):(0,jb.jsx)(Qk.Text,{color:"white",children:kI.circleDotted}),hdc=({state:e,children:t})=>e==="in-progress"?(0,jb.jsx)(Qk.Text,{color:"gray",children:t}):(0,jb.jsx)(Qk.Text,{color:"white",children:t}),vki=({cwd:e,linter:t})=>{let[r,n]=(0,aUe.useState)(void 0),[a,o]=(0,aUe.useState)(0),[l,A]=(0,aUe.useState)(0),[f,I]=(0,aUe.useState)(0);return(0,Ski.useEffect)(()=>{let C=N=>{o(N.files.length)},b=N=>{n({state:"in-progress",file:Eki(e,N.file)})},E=({result:N})=>{let B="success";N.warningCount>0&&(I(F=>F+N.warningCount),B="warning"),N.errorCount>0&&(A(F=>F+N.errorCount),B="error"),n({state:B,file:Eki(e,N.filePath)})};return t.on("start",C),t.on("lint:start",b),t.on("lint:end",E),()=>{t.off("start",C),t.off("lint:start",b),t.off("lint:end",E)}},[t,n,o,A,I]),r?(0,jb.jsxs)(qNe.Box,{flexDirection:"row",width:"100%",children:[(0,jb.jsxs)(qNe.Box,{flexGrow:1,children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(hdc,{state:r.state,children:r.file})]}),(0,jb.jsx)(qNe.Box,{flexDirection:"row",children:(0,jb.jsxs)(qNe.Box,{children:[(0,jb.jsx)(Idc,{state:r.state}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"yellow",children:[f," Warnings"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"red",children:[l," Errors"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"white",children:[a," Files"]}),(0,jb.jsx)(Qk.Text,{children:" "})]})})]}):(0,jb.jsxs)(qNe.Box,{flexDirection:"row",children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(Qk.Text,{color:"white",children:"Loading files..."})]})};var Zce=Nt(Pc(),1),Tki=({cwd:e,linter:t})=>{let[r,n]=(0,Bki.useState)(!1);return(0,wki.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,Zce.jsx)(cUe.Box,{position:"relative",height:7,children:(0,Zce.jsxs)(cUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Zce.jsx)(cUe.Box,{children:(0,Zce.jsx)(vki,{cwd:e,linter:t})}),(0,Zce.jsx)(cUe.Box,{marginTop:1,marginBottom:1,children:(0,Zce.jsx)(yki,{linter:t})})]})})};var ixr=Nt(Al(),1),Lce=Nt(Al(),1);var lD=Nt(Pc(),1),Rki=({filePath:e,message:t,source:r})=>(0,lD.jsxs)(Lce.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,lD.jsxs)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,lD.jsx)(Lce.Box,{flexDirection:"row",flexGrow:1,children:(0,lD.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsxs)(ixr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(J9,{offset:2})}),!!r&&(0,lD.jsxs)(lD.Fragment,{children:[(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,lD.jsx)(J9,{offset:2})]}),(0,lD.jsx)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,lD.jsxs)(ixr.Text,{color:"white",children:[" ",t.message]})})]});var Nki=Nt(Al(),1);import{isAbsolute as mdc}from"node:path";import{relative as Cdc}from"node:path";var Dki=Nt(Ec(),1);var sxr=Nt(Pc(),1),kki=({filePath:e,source:t,messages:r,cwd:n=process.cwd()})=>{let a=(0,Dki.useMemo)(()=>mdc(e)?Cdc(n,e):e,[e]);return r.length===0?null:(0,sxr.jsx)(Nki.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,sxr.jsx)(Rki,{filePath:a,message:o,source:t},OW()))})};var qEt=Nt(Pc(),1),lUe=class extends xki.BaseCommand{static paths=[["lint"]];fix=Su.Boolean("--fix");files=Su.Rest({required:0});cache=Su.Boolean("--cache",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(cxr.Filename.pnpCjs)&&t.includes(cxr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await Fki.xfs.mktempPromise(),a=[];this.fix&&a.push("--fix"),this.cache&&a.push("--cache");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await Gki.execUtils.pipevp(o,["lint",...a,...this.files],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await CBe.initialize(r.cwd,this.context.cwd),{clear:a}=(0,Zki.render)((0,qEt.jsx)(Tki,{cwd:r.cwd,linter:n}));n.on("lint:end",({result:o})=>{o.messages.length>0&&xE((0,qEt.jsx)(kki,{...o})).split(` +`).forEach(a=>{console.error(a)}),1}finally{r()}}async cleanTarget(){try{await fdc(this.target,{recursive:!0,force:!0})}catch{}}};var Idc=(e,t)=>{t&&(t.exports&&(e.exports=t.exports),t.main&&(e.main=t.main),t.types&&(e.types=t.types),t.typings&&(e.typings=t.typings))},mki=(e,t)=>{let r=e.manifest.private;Idc(t,r?t.raijin?.pack:t.publishConfig),delete t.raijin};var Cki={hooks:{beforeWorkspacePacking:mki},commands:[oUe]};var lxr={};sI(lxr,{LintCommand:()=>lUe,default:()=>Lki});var xki=Nt(el(),1),oxr=Nt(Bn(),1),axr=Nt(Bn(),1),cxr=Nt(no(),1),Gki=Nt(Bn(),1),Fki=Nt(no(),1);$c();var Zki=Nt(Al(),1);var cUe=Nt(Al(),1),Bki=Nt(Ec(),1),wki=Nt(Ec(),1);var _ki=Nt(Ec(),1),nxr=Nt(Ec(),1),bki=Nt(Pc(),1),yki=({linter:e})=>{let[t,r]=(0,nxr.useState)(0),[n,a]=(0,nxr.useState)(0);return(0,_ki.useEffect)(()=>{let o=({files:f})=>{r(f.length)},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("lint:end",l),e.on("end",A),()=>{e.off("start",o),e.off("lint:end",l),e.off("end",A)}},[e,t,r,a]),(0,bki.jsx)(JM,{value:t>0?n/t*100:0})};import{relative as Eki}from"node:path";var qNe=Nt(Al(),1),Qk=Nt(Al(),1),Ski=Nt(Ec(),1),aUe=Nt(Ec(),1);var jb=Nt(Pc(),1),hdc=({state:e})=>e==="warning"?(0,jb.jsx)(Qk.Text,{color:"yellow",children:kI.warning}):e==="error"?(0,jb.jsx)(Qk.Text,{color:"red",children:kI.cross}):e==="success"?(0,jb.jsx)(Qk.Text,{color:"green",children:kI.tick}):(0,jb.jsx)(Qk.Text,{color:"white",children:kI.circleDotted}),mdc=({state:e,children:t})=>e==="in-progress"?(0,jb.jsx)(Qk.Text,{color:"gray",children:t}):(0,jb.jsx)(Qk.Text,{color:"white",children:t}),vki=({cwd:e,linter:t})=>{let[r,n]=(0,aUe.useState)(void 0),[a,o]=(0,aUe.useState)(0),[l,A]=(0,aUe.useState)(0),[f,I]=(0,aUe.useState)(0);return(0,Ski.useEffect)(()=>{let C=N=>{o(N.files.length)},b=N=>{n({state:"in-progress",file:Eki(e,N.file)})},E=({result:N})=>{let B="success";N.warningCount>0&&(I(F=>F+N.warningCount),B="warning"),N.errorCount>0&&(A(F=>F+N.errorCount),B="error"),n({state:B,file:Eki(e,N.filePath)})};return t.on("start",C),t.on("lint:start",b),t.on("lint:end",E),()=>{t.off("start",C),t.off("lint:start",b),t.off("lint:end",E)}},[t,n,o,A,I]),r?(0,jb.jsxs)(qNe.Box,{flexDirection:"row",width:"100%",children:[(0,jb.jsxs)(qNe.Box,{flexGrow:1,children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(mdc,{state:r.state,children:r.file})]}),(0,jb.jsx)(qNe.Box,{flexDirection:"row",children:(0,jb.jsxs)(qNe.Box,{children:[(0,jb.jsx)(hdc,{state:r.state}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"yellow",children:[f," Warnings"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"red",children:[l," Errors"]}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsxs)(Qk.Text,{color:"white",children:[a," Files"]}),(0,jb.jsx)(Qk.Text,{children:" "})]})})]}):(0,jb.jsxs)(qNe.Box,{flexDirection:"row",children:[(0,jb.jsx)(RG,{color:"cyan",children:"Lint:"}),(0,jb.jsx)(Qk.Text,{children:" "}),(0,jb.jsx)(Qk.Text,{color:"white",children:"Loading files..."})]})};var Zce=Nt(Pc(),1),Tki=({cwd:e,linter:t})=>{let[r,n]=(0,Bki.useState)(!1);return(0,wki.useEffect)(()=>{let a=()=>{setTimeout(()=>{n(!0)},1)};return t.on("end",a),()=>{t.off("end",a)}},[n]),r?null:(0,Zce.jsx)(cUe.Box,{position:"relative",height:7,children:(0,Zce.jsxs)(cUe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Zce.jsx)(cUe.Box,{children:(0,Zce.jsx)(vki,{cwd:e,linter:t})}),(0,Zce.jsx)(cUe.Box,{marginTop:1,marginBottom:1,children:(0,Zce.jsx)(yki,{linter:t})})]})})};var ixr=Nt(Al(),1),Lce=Nt(Al(),1);var lD=Nt(Pc(),1),Rki=({filePath:e,message:t,source:r})=>(0,lD.jsxs)(Lce.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,lD.jsxs)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:[(0,lD.jsx)(Lce.Box,{flexDirection:"row",flexGrow:1,children:(0,lD.jsx)(A8,{line:t.line,column:t.column,children:e})}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsxs)(ixr.Text,{color:"gray",children:[" ",t.ruleId]})})]}),(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(J9,{offset:2})}),!!r&&(0,lD.jsxs)(lD.Fragment,{children:[(0,lD.jsx)(Lce.Box,{children:(0,lD.jsx)(d8,{line:t.line,column:t.column,children:r})}),(0,lD.jsx)(J9,{offset:2})]}),(0,lD.jsx)(Lce.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,lD.jsxs)(ixr.Text,{color:"white",children:[" ",t.message]})})]});var Nki=Nt(Al(),1);import{isAbsolute as Cdc}from"node:path";import{relative as _dc}from"node:path";var Dki=Nt(Ec(),1);var sxr=Nt(Pc(),1),kki=({filePath:e,source:t,messages:r,cwd:n=process.cwd()})=>{let a=(0,Dki.useMemo)(()=>Cdc(e)?_dc(n,e):e,[e]);return r.length===0?null:(0,sxr.jsx)(Nki.Box,{flexDirection:"column",width:"100%",children:r.map(o=>(0,sxr.jsx)(Rki,{filePath:a,message:o,source:t},OW()))})};var qEt=Nt(Pc(),1),lUe=class extends xki.BaseCommand{static paths=[["lint"]];fix=Su.Boolean("--fix");files=Su.Rest({required:0});cache=Su.Boolean("--cache",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(cxr.Filename.pnpCjs)&&t.includes(cxr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await Fki.xfs.mktempPromise(),a=[];this.fix&&a.push("--fix"),this.cache&&a.push("--cache");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await Gki.execUtils.pipevp(o,["lint",...a,...this.files],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await oxr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await axr.Project.find(t,this.context.cwd),n=await CBe.initialize(r.cwd,this.context.cwd),{clear:a}=(0,Zki.render)((0,qEt.jsx)(Tki,{cwd:r.cwd,linter:n}));n.on("lint:end",({result:o})=>{o.messages.length>0&&xE((0,qEt.jsx)(kki,{...o})).split(` `).forEach(A=>{console.log(A)})});try{return(await n.lint(this.files,{fix:this.fix,cache:this.cache})).find(l=>l.messages.length>0)?1:0}catch(o){return o instanceof Error?xE((0,qEt.jsx)(Fk,{error:o})).split(` -`).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var Lki={commands:[lUe]};var MGr={};sI(MGr,{default:()=>pZi});var uxi=Nt(el(),1),gxi=Nt(el(),1),Axi=Nt(Bn(),1),dxi=Nt(Bn(),1),pxi=Nt(Bn(),1);import AUe from"node:assert/strict";import{execSync as opc}from"node:child_process";function Vce(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}function $Et(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((a,o)=>$Et.bind(null,e,o,a,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((a,o)=>o.hook.bind(null,a,n),r)():r(n))}function Vki(e,t,r,n){let a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,l)=>Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))),t==="after"&&(n=(o,l)=>{let A;return Promise.resolve().then(o.bind(null,l)).then(f=>(A=f,a(A,l))).then(()=>A)}),t==="error"&&(n=(o,l)=>Promise.resolve().then(o.bind(null,l)).catch(A=>a(A,l))),e.registry[r].push({hook:n,orig:a})}function Pki(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(a=>a.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Wki=Function.bind,Oki=Wki.bind(Wki);function Mki(e,t,r){let n=Oki(Pki,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(a=>{let o=r?[t,a,r]:[t,a];e[a]=e.api[a]=Oki(Vki,null).apply(null,o)})}function _dc(){let e=Symbol("Singular"),t={registry:{}},r=$Et.bind(null,t,e);return Mki(r,t,e),r}function ydc(){let e={registry:{}},t=$Et.bind(null,e);return Mki(t,e),t}var Hki={Singular:_dc,Collection:ydc};var bdc="0.0.0-development",Edc=`octokit-endpoint.js/${bdc} ${Vce()}`,Sdc={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Edc},mediaType:{format:""}};function vdc(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function Bdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Xki(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{Bdc(t[n])?n in e?r[n]=Xki(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Yki(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gxr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=vdc(r.headers),Yki(r),Yki(r.headers);let n=Xki(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function wdc(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var Tdc=/\{[^}]+\}/g;function Rdc(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Ndc(e){let t=e.match(Tdc);return t?t.map(Rdc).reduce((r,n)=>r.concat(n),[]):[]}function Qki(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Jki(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function eDe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function uUe(e,t,r){return t=e==="+"||e==="#"?Jki(t):eDe(t),r?eDe(r)+"="+t:t}function $Ne(e){return e!=null}function uxr(e){return e===";"||e==="&"||e==="?"}function Ddc(e,t,r,n){var a=e[r],o=[];if($Ne(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(uUe(t,a,uxr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter($Ne).forEach(function(l){o.push(uUe(t,l,uxr(t)?r:""))}):Object.keys(a).forEach(function(l){$Ne(a[l])&&o.push(uUe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter($Ne).forEach(function(A){l.push(uUe(t,A))}):Object.keys(a).forEach(function(A){$Ne(a[A])&&(l.push(eDe(A)),l.push(uUe(t,a[A].toString())))}),uxr(t)?o.push(eDe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?$Ne(a)&&o.push(eDe(r)):a===""&&(t==="&"||t==="?")?o.push(eDe(r)+"="):a===""&&o.push("");return o}function kdc(e){return{expand:xdc.bind(null,e)}}function xdc(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(Ddc(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return Jki(o)}),e==="/"?e:e.replace(/\/$/,"")}function Uki(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=Qki(e,["method","baseUrl","url","headers","request","mediaType"]),l=Ndc(r);r=kdc(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=Qki(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=wdc(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function Gdc(e,t,r){return Uki(gxr(e,t,r))}function Kki(e,t){let r=gxr(e,t),n=Gdc.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Kki.bind(null,r),merge:gxr.bind(null,r),parse:Uki})}var jki=Kki(null,Sdc);var ACe=class extends Error{name;status;request;response;constructor(t,r,n){super(t),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0),"response"in n&&(this.response=n.response);let a=Object.assign({},n.request);n.request.headers.authorization&&(a.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a}};var Fdc="0.0.0-development",Zdc={headers:{"user-agent":`octokit-request.js/${Fdc} ${Vce()}`}};function Ldc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function zki(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,a=Ldc(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([b,E])=>[b,String(E)])),l;try{l=await t(e.url,{method:e.method,body:a,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(b){let E="Unknown Error";if(b instanceof Error){if(b.name==="AbortError")throw b.status=500,b;E=b.message,b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause))}let N=new ACe(E,500,{request:e});throw N.cause=b,N}let A=l.status,f=l.url,I={};for(let[b,E]of l.headers)I[b]=E;let C={url:f,status:A,headers:I,data:""};if("deprecation"in I){let b=I.link&&I.link.match(/<([^>]+)>; rel="deprecation"/),E=b&&b.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${I.sunset}${E?`. See ${E}`:""}`)}if(A===204||A===205)return C;if(e.method==="HEAD"){if(A<400)return C;throw new ACe(l.statusText,A,{response:C,request:e})}if(A===304)throw C.data=await Axr(l),new ACe("Not modified",A,{response:C,request:e});if(A>=400)throw C.data=await Axr(l),new ACe(Vdc(C.data),A,{response:C,request:e});return C.data=n?await Axr(l):l.body,C}async function Axr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():e.arrayBuffer()}function Vdc(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(r=>JSON.stringify(r)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dxr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return zki(r.parse(l));let A=(f,I)=>zki(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:dxr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:dxr.bind(null,r)})}var gUe=dxr(jki,Zdc);var Pdc="0.0.0-development";function Wdc(e){return`Request failed due to following response errors: +`).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var Lki={commands:[lUe]};var MGr={};sI(MGr,{default:()=>pZi});var uxi=Nt(el(),1),gxi=Nt(el(),1),Axi=Nt(Bn(),1),dxi=Nt(Bn(),1),pxi=Nt(Bn(),1);import AUe from"node:assert/strict";import{execSync as apc}from"node:child_process";function Vce(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}function $Et(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((a,o)=>$Et.bind(null,e,o,a,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((a,o)=>o.hook.bind(null,a,n),r)():r(n))}function Vki(e,t,r,n){let a=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(o,l)=>Promise.resolve().then(a.bind(null,l)).then(o.bind(null,l))),t==="after"&&(n=(o,l)=>{let A;return Promise.resolve().then(o.bind(null,l)).then(f=>(A=f,a(A,l))).then(()=>A)}),t==="error"&&(n=(o,l)=>Promise.resolve().then(o.bind(null,l)).catch(A=>a(A,l))),e.registry[r].push({hook:n,orig:a})}function Pki(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(a=>a.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Wki=Function.bind,Oki=Wki.bind(Wki);function Mki(e,t,r){let n=Oki(Pki,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(a=>{let o=r?[t,a,r]:[t,a];e[a]=e.api[a]=Oki(Vki,null).apply(null,o)})}function ydc(){let e=Symbol("Singular"),t={registry:{}},r=$Et.bind(null,t,e);return Mki(r,t,e),r}function bdc(){let e={registry:{}},t=$Et.bind(null,e);return Mki(t,e),t}var Hki={Singular:ydc,Collection:bdc};var Edc="0.0.0-development",Sdc=`octokit-endpoint.js/${Edc} ${Vce()}`,vdc={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":Sdc},mediaType:{format:""}};function Bdc(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function wdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Xki(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{wdc(t[n])?n in e?r[n]=Xki(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Yki(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gxr(e,t,r){if(typeof t=="string"){let[a,o]=t.split(" ");r=Object.assign(o?{method:a,url:o}:{url:a},r)}else r=Object.assign({},t);r.headers=Bdc(r.headers),Yki(r),Yki(r.headers);let n=Xki(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(a=>!n.mediaType.previews.includes(a)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(a=>a.replace(/-preview/,""))),n}function Tdc(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(a=>a==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${a}=${encodeURIComponent(t[a])}`).join("&")}var Rdc=/\{[^}]+\}/g;function Ndc(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function Ddc(e){let t=e.match(Rdc);return t?t.map(Ndc).reduce((r,n)=>r.concat(n),[]):[]}function Qki(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Jki(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function eDe(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function uUe(e,t,r){return t=e==="+"||e==="#"?Jki(t):eDe(t),r?eDe(r)+"="+t:t}function $Ne(e){return e!=null}function uxr(e){return e===";"||e==="&"||e==="?"}function kdc(e,t,r,n){var a=e[r],o=[];if($Ne(a)&&a!=="")if(typeof a=="string"||typeof a=="number"||typeof a=="boolean")a=a.toString(),n&&n!=="*"&&(a=a.substring(0,parseInt(n,10))),o.push(uUe(t,a,uxr(t)?r:""));else if(n==="*")Array.isArray(a)?a.filter($Ne).forEach(function(l){o.push(uUe(t,l,uxr(t)?r:""))}):Object.keys(a).forEach(function(l){$Ne(a[l])&&o.push(uUe(t,a[l],l))});else{let l=[];Array.isArray(a)?a.filter($Ne).forEach(function(A){l.push(uUe(t,A))}):Object.keys(a).forEach(function(A){$Ne(a[A])&&(l.push(eDe(A)),l.push(uUe(t,a[A].toString())))}),uxr(t)?o.push(eDe(r)+"="+l.join(",")):l.length!==0&&o.push(l.join(","))}else t===";"?$Ne(a)&&o.push(eDe(r)):a===""&&(t==="&"||t==="?")?o.push(eDe(r)+"="):a===""&&o.push("");return o}function xdc(e){return{expand:Gdc.bind(null,e)}}function Gdc(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,a,o){if(a){let A="",f=[];if(r.indexOf(a.charAt(0))!==-1&&(A=a.charAt(0),a=a.substr(1)),a.split(/,/g).forEach(function(I){var C=/([^:\*]*)(?::(\d+)|(\*))?/.exec(I);f.push(kdc(t,A,C[1],C[2]||C[3]))}),A&&A!=="+"){var l=",";return A==="?"?l="&":A!=="#"&&(l=A),(f.length!==0?A:"")+f.join(l)}else return f.join(",")}else return Jki(o)}),e==="/"?e:e.replace(/\/$/,"")}function Uki(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a,o=Qki(e,["method","baseUrl","url","headers","request","mediaType"]),l=Ddc(r);r=xdc(r).expand(o),/^http/.test(r)||(r=e.baseUrl+r);let A=Object.keys(e).filter(C=>l.includes(C)).concat("baseUrl"),f=Qki(o,A);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(C=>C.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let C=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=C.concat(e.mediaType.previews).map(b=>{let E=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${b}-preview${E}`}).join(",")}return["GET","HEAD"].includes(t)?r=Tdc(r,f):"data"in f?a=f.data:Object.keys(f).length&&(a=f),!n["content-type"]&&typeof a<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof a>"u"&&(a=""),Object.assign({method:t,url:r,headers:n},typeof a<"u"?{body:a}:null,e.request?{request:e.request}:null)}function Fdc(e,t,r){return Uki(gxr(e,t,r))}function Kki(e,t){let r=gxr(e,t),n=Fdc.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Kki.bind(null,r),merge:gxr.bind(null,r),parse:Uki})}var jki=Kki(null,vdc);var ACe=class extends Error{name;status;request;response;constructor(t,r,n){super(t),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0),"response"in n&&(this.response=n.response);let a=Object.assign({},n.request);n.request.headers.authorization&&(a.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),a.url=a.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=a}};var Zdc="0.0.0-development",Ldc={headers:{"user-agent":`octokit-request.js/${Zdc} ${Vce()}`}};function Vdc(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}async function zki(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,a=Vdc(e.body)||Array.isArray(e.body)?JSON.stringify(e.body):e.body,o=Object.fromEntries(Object.entries(e.headers).map(([b,E])=>[b,String(E)])),l;try{l=await t(e.url,{method:e.method,body:a,redirect:e.request?.redirect,headers:o,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(b){let E="Unknown Error";if(b instanceof Error){if(b.name==="AbortError")throw b.status=500,b;E=b.message,b.name==="TypeError"&&"cause"in b&&(b.cause instanceof Error?E=b.cause.message:typeof b.cause=="string"&&(E=b.cause))}let N=new ACe(E,500,{request:e});throw N.cause=b,N}let A=l.status,f=l.url,I={};for(let[b,E]of l.headers)I[b]=E;let C={url:f,status:A,headers:I,data:""};if("deprecation"in I){let b=I.link&&I.link.match(/<([^>]+)>; rel="deprecation"/),E=b&&b.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${I.sunset}${E?`. See ${E}`:""}`)}if(A===204||A===205)return C;if(e.method==="HEAD"){if(A<400)return C;throw new ACe(l.statusText,A,{response:C,request:e})}if(A===304)throw C.data=await Axr(l),new ACe("Not modified",A,{response:C,request:e});if(A>=400)throw C.data=await Axr(l),new ACe(Pdc(C.data),A,{response:C,request:e});return C.data=n?await Axr(l):l.body,C}async function Axr(e){let t=e.headers.get("content-type");return/application\/json/.test(t)?e.json().catch(()=>e.text()).catch(()=>""):!t||/^text\/|charset=utf-8$/.test(t)?e.text():e.arrayBuffer()}function Pdc(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if("message"in e){let t="documentation_url"in e?` - ${e.documentation_url}`:"";return Array.isArray(e.errors)?`${e.message}: ${e.errors.map(r=>JSON.stringify(r)).join(", ")}${t}`:`${e.message}${t}`}return`Unknown error: ${JSON.stringify(e)}`}function dxr(e,t){let r=e.defaults(t);return Object.assign(function(a,o){let l=r.merge(a,o);if(!l.request||!l.request.hook)return zki(r.parse(l));let A=(f,I)=>zki(r.parse(r.merge(f,I)));return Object.assign(A,{endpoint:r,defaults:dxr.bind(null,r)}),l.request.hook(A,l)},{endpoint:r,defaults:dxr.bind(null,r)})}var gUe=dxr(jki,Ldc);var Wdc="0.0.0-development";function Odc(e){return`Request failed due to following response errors: `+e.errors.map(t=>` - ${t.message}`).join(` -`)}var Odc=class extends Error{constructor(e,t,r){super(Wdc(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},Mdc=["method","baseUrl","url","headers","request","query","mediaType"],Hdc=["query","method","url"],qki=/\/api\/v3\/?$/;function Ydc(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(Hdc.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>Mdc.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return qki.test(o)&&(a.url=o.replace(qki,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Odc(a,A,l.data)}return l.data.data})}function pxr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>Ydc(r,a,o),{defaults:pxr.bind(null,r),endpoint:r.endpoint})}var cFu=pxr(gUe,{headers:{"user-agent":`octokit-graphql.js/${Pdc} ${Vce()}`},method:"POST",url:"/graphql"});function $ki(e){return pxr(e,{method:"POST",url:"/graphql"})}var Qdc=/^v1\./,Xdc=/^ghs_/,Jdc=/^ghu_/;async function Udc(e){let t=e.split(/\./).length===3,r=Qdc.test(e)||Xdc.test(e),n=Jdc.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function Kdc(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function jdc(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=Kdc(e),t(a)}var e1t=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(Udc.bind(null,t),{hook:jdc.bind(null,t)})};var fxr="6.1.2";var exi=()=>{},zdc=console.warn.bind(console),qdc=console.error.bind(console),txi=`octokit-core.js/${fxr} ${Vce()}`,t1t=class{static VERSION=fxr;static defaults(t){return class extends this{constructor(...n){let a=n[0]||{};if(typeof t=="function"){super(t(a));return}super(Object.assign({},t,a,a.userAgent&&t.userAgent?{userAgent:`${a.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(a=>!r.includes(a)))}}constructor(t={}){let r=new Hki.Collection,n={baseUrl:gUe.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${txi}`:txi,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=gUe.defaults(n),this.graphql=$ki(this.request).defaults(n),this.log=Object.assign({debug:exi,info:exi,warn:zdc,error:qdc},t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...l}=t,A=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:l},t.auth));r.wrap("request",A.hook),this.auth=A}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=e1t(t.auth);r.wrap("request",o.hook),this.auth=o}let a=this.constructor;for(let o=0;o{e.log.debug("request",r);let n=Date.now(),a=e.request.endpoint.parse(r),o=a.url.replace(r.baseUrl,"");return t(r).then(l=>{let A=l.headers["x-github-request-id"];return e.log.info(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l}).catch(l=>{let A=l.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l})})}Ixr.VERSION=rxi;var $dc="0.0.0-development";function epc(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function hxr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=epc(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function nxi(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),ixi(e,[],hxr(e,t,r)[Symbol.asyncIterator](),n)}function ixi(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:ixi(e,t,r,n)})}var vFu=Object.assign(nxi,{iterator:hxr});function mxr(e){return{paginate:Object.assign(nxi.bind(null,e),{iterator:hxr.bind(null,e)})}}mxr.VERSION=$dc;var Cxr="13.2.6";var tpc={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},sxi=tpc;var dCe=new Map;for(let[e,t]of Object.entries(sxi))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);dCe.has(e)||dCe.set(e,new Map),dCe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var rpc={has({scope:e},t){return dCe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...dCe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=dCe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=npc(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function _xr(e){let t={};for(let r of dCe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},rpc);return t}function npc(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function ipc(e){return{rest:_xr(e)}}ipc.VERSION=Cxr;function yxr(e){let t=_xr(e);return{...t,rest:t}}yxr.VERSION=Cxr;var oxi="21.0.2";var axi=t1t.plugin(Ixr,yxr,mxr).defaults({userAgent:`octokit-rest.js/${oxi}`});var cxi=function(){if(!process.env.GITHUB_ACTION)throw new Error("[@octokit/auth-action] `GITHUB_ACTION` environment variable is not set. @octokit/auth-action is meant to be used in GitHub Actions only.");let t=[process.env.GITHUB_TOKEN,process.env.INPUT_GITHUB_TOKEN,process.env.INPUT_TOKEN].filter(Boolean);if(t.length===0)throw new Error("[@octokit/auth-action] `GITHUB_TOKEN` variable is not set. It must be set on either `env:` or `with:`. See https://github.com/octokit/auth-action.js#createactionauth");if(t.length>1)throw new Error("[@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth");let r=t.pop();return e1t(r)};var r1t=class{client;constructor(t){this.client=new axi({auth:t.token,authStrategy:cxi})}async create(t){let{owner:r,repo:n,tag_name:a,name:o,make_latest:l,draft:A,body:f}=t;return(await this.client.repos.createRelease({owner:r,repo:n,tag_name:a,draft:A,make_latest:l?"true":"false",name:o,body:f})).status}};import spc from"node:assert/strict";var lxi=e=>{console.debug("Repository URL:",e);let t=e.match(/github\.com[/:](.+?)\/(.+?)(?:\.git|$)/);spc.ok(t,"URL does not match pattern");let[,r,n]=t;return{organization:r,repository:n}};var apc=422,cpc='"resource":"Release"',lpc='"code":"already_exists"',upc='"field":"tag_name"',gpc=e=>{let t=e;return t.status===apc&&typeof t.message=="string"&&t.message.includes(cpc)&&t.message.includes(lpc)&&t.message.includes(upc)},n1t=class extends uxi.BaseCommand{static paths=[["release","create"]];async execute(){let t=await Axi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await pxi.Project.find(t,this.context.cwd);if(!n)throw new gxi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dxi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Creating release",async()=>{let l=process.env.GITHUB_TOKEN;AUe.ok(l,"GitHub Token is missing");let A="",f=n.manifest.name?.scope;f&&(A+=`@${f}/`);let I=n.manifest.name?.name;AUe.ok(I,"Missing workspace name");let{version:C}=n.manifest;AUe.ok(C,"Missing version"),A+=`${I}`;let E=await new qve().generate({packageName:A,version:C,path:this.context.cwd}),N=new r1t({token:l}),B,F;try{({repository:F,organization:B}=lxi(opc("git remote get-url origin",{encoding:"utf-8"})))}catch{[B,F]=process.env.GITHUB_REPOSITORY?.split("/")??["",""]}AUe.ok(B,"Could not get url of the repo"),AUe.ok(F,"Could not get url of the repo");let Q=`${A}@${C}`;try{await N.create({draft:!1,make_latest:!0,name:Q,tag_name:Q,body:E,owner:B,repo:F})}catch(X){if(gpc(X)){o.reportInfo(null,`Release ${Q} already exists; skipping`);return}throw X}})})).exitCode()}};var qFi=Nt(el(),1),$Fi=Nt(el(),1),eZi=Nt(Bn(),1),tZi=Nt(Bn(),1),rZi=Nt(Bn(),1),WGr=Nt(no(),1),OGr=Nt(no(),1);$c();$c();var gDe=Nt(Bn(),1),OFi=Nt(Bn(),1),FGr=Nt(no(),1),xGr=Nt(no(),1),MFi=Nt(TW(),1),HFi=Nt(TGr(),1);var nmc="feat",imc=": ",smc="(",omc=")",FFi="!",amc=".",cmc=["BREAKING CHANGE:","BREAKING CHANGE ","BREAKING-CHANGE:","BREAKING-CHANGE "],lmc=/^(?:[A-Za-z0-9-]+|BREAKING CHANGE)(?:: | #).+/,RGr={patch:0,minor:1,major:2},NGr=e=>Object.hasOwn(RGr,e),VFi=(e,t)=>RGr[t]>RGr[e]?t:e,kGr=(e,t)=>e===void 0?t:NGr(e)?VFi(e,t):e,G1t=(e,t)=>e===void 0?t:NGr(e)?NGr(t)?kGr(e,t):t:e,DGr=e=>e.relativeCwd===amc,PFi=(e,t)=>e===t.relativeCwd||e.startsWith(`${t.relativeCwd}/`),umc=(e,t)=>e.relativeCwd===t.relativeCwd,gmc=(e,t)=>umc(e,t)?!1:DGr(e)?!DGr(t):t.relativeCwd.startsWith(`${e.relativeCwd}/`),ZFi=(e,t,r)=>r.some(n=>gmc(t,n)&&PFi(e,n)),Amc=(e,t,r)=>(DGr(t)||PFi(e,t))&&!ZFi(e,t,r),dmc=e=>e.length>0&&[...e].every(t=>t>="a"&&t<="z"),LFi=e=>e.trim().length===0,pmc=e=>lmc.test(e),fmc=e=>{let t=e.split(` -`).map(a=>a.replace("\r",""));for(;t.length>0&&LFi(t[t.length-1]);)t.pop();let r=t.length;for(;r>0&&!LFi(t[r-1]);)r-=1;if(r===0||r===t.length)return[];let n=t.slice(r);return pmc(n[0])?n:[]},Imc=e=>fmc(e).some(t=>cmc.some(r=>t.startsWith(r))),hmc=e=>{let t=e.indexOf(imc);if(t<1)return;let r=e.slice(0,t),n=r.endsWith(FFi);n&&(r=r.slice(0,-FFi.length));let a=r.indexOf(smc);if(a>=0){if(!r.endsWith(omc))return;r=r.slice(0,a)}if(dmc(r))return{type:r,breaking:n}},mmc=e=>{let[t=""]=e.split(` -`,1),r=hmc(t.replace("\r",""));if(r)return r.breaking||Imc(e)?"major":r.type===nmc?"minor":"patch"},WFi=(e,t,r=e)=>{let n=new Map;for(let a of t){let o=mmc(a.message);if(o)for(let l of e){if(!a.files.some(f=>Amc(f,l,r)))continue;let A=n.get(l.ident);n.set(l.ident,{workspace:l,strategy:A?VFi(A.strategy,o):o})}}return[...n.values()].sort((a,o)=>a.workspace.relativeCwd.localeCompare(o.workspace.relativeCwd))};var Cmc="origin/HEAD",_mc="HEAD",ymc=`${Cmc}..${_mc}`,bmc="ENOENT",YFi="decline",GGr=2,Emc=e=>e==="release"||e==="decline",Smc=(e,t)=>typeof e=="object"&&e!==null&&"code"in e&&e.code===t,QFi=e=>e.manifest.name?OFi.structUtils.stringifyIdent(e.manifest.name):void 0,XFi=e=>e.relativeCwd!=="."&&!!e.manifest.version&&!!QFi(e),ZGr=e=>{let t=QFi(e);if(!(!t||!XFi(e)))return{ident:t,relativeCwd:e.relativeCwd}},vmc=e=>({relativeCwd:e.relativeCwd}),Bmc=e=>[e.filename,e.previous_filename].filter(t=>!!t),JFi=e=>({message:e.data.commit.message,files:[...new Set((e.data.files??[]).flatMap(Bmc))]}),wmc=async()=>(await Pmt()).map(JFi),Tmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--reverse",t],{cwd:e.cwd,strict:!0});return r.split(/\r?\n/).filter(Boolean)},Rmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["show","--format=%B","--no-patch","--max-count=1",t],{cwd:e.cwd,strict:!0});return r},Nmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--parents","-n","1",t],{cwd:e.cwd,strict:!0}),[,...n]=r.trim().split(" ").filter(Boolean);return n},UFi=(e,t)=>e.find(r=>!t.has(r))??e[0],Dmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["diff-tree","--no-commit-id","--name-only","-r","--root","--no-renames","-z",t],{cwd:e.cwd,strict:!0});return r.split("\0").map(n=>n.trim()).filter(Boolean)},kmc=async(e,t,r)=>{let n=UFi(await Nmc(e,t),r);if(!n)return Dmc(e,t);let{stdout:a}=await gDe.execUtils.execvp("git",["diff","--name-only","--no-renames","-z",n,t],{cwd:e.cwd,strict:!0});return[...new Set(a.split("\0").map(o=>o.trim()).filter(Boolean))]},xmc=async(e,t,r)=>({message:await Rmc(e,t),files:await kmc(e,t,r)}),Gmc=async(e,t)=>{let r=await Tmc(e,t),n=new Set(r);return Promise.all(r.map(async a=>xmc(e,a,n)))},LGr=async(e,t)=>t===void 0&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?wmc():Gmc(e,t??ymc),KFi=e=>{let t=(0,MFi.parseSyml)(e),r=new Map;for(let n of t.declined??[])typeof n=="string"&&r.set(n,G1t(r.get(n),YFi));for(let[n,a]of Object.entries(t.releases??{}))typeof a=="string"&&r.set(n,G1t(r.get(n),a));return r},VGr=async e=>{let t=e.get("deferredVersionFolder"),r=new Map,n;try{n=await xGr.xfs.readdirPromise(t)}catch(a){if(Smc(a,bmc))return r;throw a}for(let a of n){if(!a.endsWith(".yml"))continue;let o=FGr.ppath.join(t,a),l=await xGr.xfs.readFilePromise(o,"utf8"),A=KFi(l);for(let[f,I]of A)r.set(f,G1t(r.get(f),I))}return r},Fmc=async e=>{let t=await VGr(e);return new Set([...t.entries()].filter(([,r])=>r===YFi).map(([r])=>r))},Zmc=(e,t)=>{let r=FGr.ppath.resolve(e.cwd,t.workspace.relativeCwd),n=e.workspacesByCwd.get(r);if(!n)throw new Error(`Could not resolve release workspace "${t.workspace.ident}"`);return{ident:t.workspace.ident,relativeCwd:t.workspace.relativeCwd,decision:t.decision,private:n.manifest.private}},Lmc=e=>{let t=ZGr(e),{version:r}=e.manifest;if(!(!t||!r))return{workspace:t,decision:"decline"}},Vmc=(e,t,r)=>{for(let n of e.workspaces){let a=Lmc(n);!a||!r.has(a.workspace.ident)||t.has(a.workspace.ident)||t.set(a.workspace.ident,a)}},Pmc=async(e,t=new Set)=>{let r=await HFi.versionUtils.resolveVersionFiles(e),n=new Map;for(let[a,o]of r){let l=ZGr(a);!l||!o||n.set(l.ident,{workspace:l,decision:"release"})}return Vmc(e,n,t),n},Wmc=(e,t,r)=>{for(let n of t)if(!r.has(n.workspace.ident))throw new Error(`Release plan requires deferred target version for "${n.workspace.ident}". Run \`yarn release version defer\` before \`yarn release plan create\`.`);return{schemaVersion:GGr,workspaces:[...r.values()].sort((n,a)=>n.workspace.relativeCwd.localeCompare(a.workspace.relativeCwd)).map(n=>Zmc(e,n))}},PGr=(e,t)=>{let r=e.workspaces.map(ZGr).filter(a=>!!a),n=e.workspaces.map(vmc);return WFi(r,t,n)},jFi=async(e,t,r)=>{let n=await LGr(e,r),a=PGr(e,n),o=await Fmc(t),l=await Pmc(e,o);return Wmc(e,a,l)},Omc=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.ident=="string"&&typeof t.relativeCwd=="string"&&Emc(t.decision)&&typeof t.private=="boolean"},zFi=e=>{let t=JSON.parse(e);if(t.schemaVersion!==GGr||!Array.isArray(t.workspaces)||!t.workspaces.every(Omc))throw new Error("Invalid release plan");return{schemaVersion:GGr,workspaces:t.workspaces}};var F1t=class extends qFi.BaseCommand{static paths=[["release","plan","create"]];static usage=_C.Usage({description:"create a Raijin release workspace selection",details:` +`)}var Mdc=class extends Error{constructor(e,t,r){super(Odc(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}name="GraphqlResponseError";errors;data},Hdc=["method","baseUrl","url","headers","request","query","mediaType"],Ydc=["query","method","url"],qki=/\/api\/v3\/?$/;function Qdc(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let l in r)if(Ydc.includes(l))return Promise.reject(new Error(`[@octokit/graphql] "${l}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,a=Object.keys(n).reduce((l,A)=>Hdc.includes(A)?(l[A]=n[A],l):(l.variables||(l.variables={}),l.variables[A]=n[A],l),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return qki.test(o)&&(a.url=o.replace(qki,"/api/graphql")),e(a).then(l=>{if(l.data.errors){let A={};for(let f of Object.keys(l.headers))A[f]=l.headers[f];throw new Mdc(a,A,l.data)}return l.data.data})}function pxr(e,t){let r=e.defaults(t);return Object.assign((a,o)=>Qdc(r,a,o),{defaults:pxr.bind(null,r),endpoint:r.endpoint})}var lFu=pxr(gUe,{headers:{"user-agent":`octokit-graphql.js/${Wdc} ${Vce()}`},method:"POST",url:"/graphql"});function $ki(e){return pxr(e,{method:"POST",url:"/graphql"})}var Xdc=/^v1\./,Jdc=/^ghs_/,Udc=/^ghu_/;async function Kdc(e){let t=e.split(/\./).length===3,r=Xdc.test(e)||Jdc.test(e),n=Udc.test(e);return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function jdc(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function zdc(e,t,r,n){let a=t.endpoint.merge(r,n);return a.headers.authorization=jdc(e),t(a)}var e1t=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(Kdc.bind(null,t),{hook:zdc.bind(null,t)})};var fxr="6.1.2";var exi=()=>{},qdc=console.warn.bind(console),$dc=console.error.bind(console),txi=`octokit-core.js/${fxr} ${Vce()}`,t1t=class{static VERSION=fxr;static defaults(t){return class extends this{constructor(...n){let a=n[0]||{};if(typeof t=="function"){super(t(a));return}super(Object.assign({},t,a,a.userAgent&&t.userAgent?{userAgent:`${a.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(a=>!r.includes(a)))}}constructor(t={}){let r=new Hki.Collection,n={baseUrl:gUe.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${txi}`:txi,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=gUe.defaults(n),this.graphql=$ki(this.request).defaults(n),this.log=Object.assign({debug:exi,info:exi,warn:qdc,error:$dc},t.log),this.hook=r,t.authStrategy){let{authStrategy:o,...l}=t,A=o(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:l},t.auth));r.wrap("request",A.hook),this.auth=A}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let o=e1t(t.auth);r.wrap("request",o.hook),this.auth=o}let a=this.constructor;for(let o=0;o{e.log.debug("request",r);let n=Date.now(),a=e.request.endpoint.parse(r),o=a.url.replace(r.baseUrl,"");return t(r).then(l=>{let A=l.headers["x-github-request-id"];return e.log.info(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l}).catch(l=>{let A=l.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${a.method} ${o} - ${l.status} with id ${A} in ${Date.now()-n}ms`),l})})}Ixr.VERSION=rxi;var epc="0.0.0-development";function tpc(e){if(!e.data)return{...e,data:[]};if(!("total_count"in e.data&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;let o=Object.keys(e.data)[0],l=e.data[o];return e.data=l,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=a,e}function hxr(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),a=typeof t=="function"?t:e.request,o=n.method,l=n.headers,A=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!A)return{done:!0};try{let f=await a({method:o,url:A,headers:l}),I=tpc(f);return A=((I.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:I}}catch(f){if(f.status!==409)throw f;return A="",{value:{status:200,headers:{},data:[]}}}}})}}function nxi(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),ixi(e,[],hxr(e,t,r)[Symbol.asyncIterator](),n)}function ixi(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let o=!1;function l(){o=!0}return t=t.concat(n?n(a.value,l):a.value.data),o?t:ixi(e,t,r,n)})}var BFu=Object.assign(nxi,{iterator:hxr});function mxr(e){return{paginate:Object.assign(nxi.bind(null,e),{iterator:hxr.bind(null,e)})}}mxr.VERSION=epc;var Cxr="13.2.6";var rpc={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"],usageMetricsForEnterprise:["GET /enterprises/{enterprise}/copilot/usage"],usageMetricsForOrg:["GET /orgs/{org}/copilot/usage"],usageMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/usage"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}"],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createCustomOrganizationRole:["POST /orgs/{org}/organization-roles"],createInvitation:["POST /orgs/{org}/invitations"],createOrUpdateCustomProperties:["PATCH /orgs/{org}/properties/schema"],createOrUpdateCustomPropertiesValuesForRepos:["PATCH /orgs/{org}/properties/values"],createOrUpdateCustomProperty:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],createWebhook:["POST /orgs/{org}/hooks"],delete:["DELETE /orgs/{org}"],deleteCustomOrganizationRole:["DELETE /orgs/{org}/organization-roles/{role_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],enableOrDisableSecurityProductOnAllOrgRepos:["POST /orgs/{org}/{security_product}/{enablement}"],get:["GET /orgs/{org}"],getAllCustomProperties:["GET /orgs/{org}/properties/schema"],getCustomProperty:["GET /orgs/{org}/properties/schema/{custom_property_name}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listCustomPropertiesValuesForRepos:["GET /orgs/{org}/properties/values"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers"],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],patchCustomOrganizationRole:["PATCH /orgs/{org}/organization-roles/{role_id}"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeCustomProperty:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}"],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}"],createCard:["POST /projects/columns/{column_id}/cards"],createColumn:["POST /projects/{project_id}/columns"],createForAuthenticatedUser:["POST /user/projects"],createForOrg:["POST /orgs/{org}/projects"],createForRepo:["POST /repos/{owner}/{repo}/projects"],delete:["DELETE /projects/{project_id}"],deleteCard:["DELETE /projects/columns/cards/{card_id}"],deleteColumn:["DELETE /projects/columns/{column_id}"],get:["GET /projects/{project_id}"],getCard:["GET /projects/columns/cards/{card_id}"],getColumn:["GET /projects/columns/{column_id}"],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission"],listCards:["GET /projects/columns/{column_id}/cards"],listCollaborators:["GET /projects/{project_id}/collaborators"],listColumns:["GET /projects/{project_id}/columns"],listForOrg:["GET /orgs/{org}/projects"],listForRepo:["GET /repos/{owner}/{repo}/projects"],listForUser:["GET /users/{username}/projects"],moveCard:["POST /projects/columns/cards/{card_id}/moves"],moveColumn:["POST /projects/columns/{column_id}/moves"],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}"],update:["PATCH /projects/{project_id}"],updateCard:["PATCH /projects/columns/cards/{card_id}"],updateColumn:["PATCH /projects/columns/{column_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateCustomPropertiesValues:["PATCH /repos/{owner}/{repo}/properties/values"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createTagProtection:["POST /repos/{owner}/{repo}/tags/protection"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteTagProtection:["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getCustomPropertiesValues:["GET /repos/{owner}/{repo}/properties/values"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTagProtection:["GET /repos/{owner}/{repo}/tags/protection"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/secret-scanning/alerts"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},sxi=rpc;var dCe=new Map;for(let[e,t]of Object.entries(sxi))for(let[r,n]of Object.entries(t)){let[a,o,l]=n,[A,f]=a.split(/ /),I=Object.assign({method:A,url:f},o);dCe.has(e)||dCe.set(e,new Map),dCe.get(e).set(r,{scope:e,methodName:r,endpointDefaults:I,decorations:l})}var npc={has({scope:e},t){return dCe.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...dCe.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let a=dCe.get(t).get(n);if(!a)return;let{endpointDefaults:o,decorations:l}=a;return l?r[n]=ipc(e,t,n,o,l):r[n]=e.request.defaults(o),r[n]}};function _xr(e){let t={};for(let r of dCe.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},npc);return t}function ipc(e,t,r,n,a){let o=e.request.defaults(n);function l(...A){let f=o.endpoint.merge(...A);if(a.mapToData)return f=Object.assign({},f,{data:f[a.mapToData],[a.mapToData]:void 0}),o(f);if(a.renamed){let[I,C]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${I}.${C}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){let I=o.endpoint.merge(...A);for(let[C,b]of Object.entries(a.renamedParameters))C in I&&(e.log.warn(`"${C}" parameter is deprecated for "octokit.${t}.${r}()". Use "${b}" instead`),b in I||(I[b]=I[C]),delete I[C]);return o(I)}return o(...A)}return Object.assign(l,o)}function spc(e){return{rest:_xr(e)}}spc.VERSION=Cxr;function yxr(e){let t=_xr(e);return{...t,rest:t}}yxr.VERSION=Cxr;var oxi="21.0.2";var axi=t1t.plugin(Ixr,yxr,mxr).defaults({userAgent:`octokit-rest.js/${oxi}`});var cxi=function(){if(!process.env.GITHUB_ACTION)throw new Error("[@octokit/auth-action] `GITHUB_ACTION` environment variable is not set. @octokit/auth-action is meant to be used in GitHub Actions only.");let t=[process.env.GITHUB_TOKEN,process.env.INPUT_GITHUB_TOKEN,process.env.INPUT_TOKEN].filter(Boolean);if(t.length===0)throw new Error("[@octokit/auth-action] `GITHUB_TOKEN` variable is not set. It must be set on either `env:` or `with:`. See https://github.com/octokit/auth-action.js#createactionauth");if(t.length>1)throw new Error("[@octokit/auth-action] The token variable is specified more than once. Use either `with.token`, `with.GITHUB_TOKEN`, or `env.GITHUB_TOKEN`. See https://github.com/octokit/auth-action.js#createactionauth");let r=t.pop();return e1t(r)};var r1t=class{client;constructor(t){this.client=new axi({auth:t.token,authStrategy:cxi})}async create(t){let{owner:r,repo:n,tag_name:a,name:o,make_latest:l,draft:A,body:f}=t;return(await this.client.repos.createRelease({owner:r,repo:n,tag_name:a,draft:A,make_latest:l?"true":"false",name:o,body:f})).status}};import opc from"node:assert/strict";var lxi=e=>{console.debug("Repository URL:",e);let t=e.match(/github\.com[/:](.+?)\/(.+?)(?:\.git|$)/);opc.ok(t,"URL does not match pattern");let[,r,n]=t;return{organization:r,repository:n}};var cpc=422,lpc='"resource":"Release"',upc='"code":"already_exists"',gpc='"field":"tag_name"',Apc=e=>{let t=e;return t.status===cpc&&typeof t.message=="string"&&t.message.includes(lpc)&&t.message.includes(upc)&&t.message.includes(gpc)},n1t=class extends uxi.BaseCommand{static paths=[["release","create"]];async execute(){let t=await Axi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await pxi.Project.find(t,this.context.cwd);if(!n)throw new gxi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dxi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Creating release",async()=>{let l=process.env.GITHUB_TOKEN;AUe.ok(l,"GitHub Token is missing");let A="",f=n.manifest.name?.scope;f&&(A+=`@${f}/`);let I=n.manifest.name?.name;AUe.ok(I,"Missing workspace name");let{version:C}=n.manifest;AUe.ok(C,"Missing version"),A+=`${I}`;let E=await new qve().generate({packageName:A,version:C,path:this.context.cwd}),N=new r1t({token:l}),B,F;try{({repository:F,organization:B}=lxi(apc("git remote get-url origin",{encoding:"utf-8"})))}catch{[B,F]=process.env.GITHUB_REPOSITORY?.split("/")??["",""]}AUe.ok(B,"Could not get url of the repo"),AUe.ok(F,"Could not get url of the repo");let Q=`${A}@${C}`;try{await N.create({draft:!1,make_latest:!0,name:Q,tag_name:Q,body:E,owner:B,repo:F})}catch(X){if(Apc(X)){o.reportInfo(null,`Release ${Q} already exists; skipping`);return}throw X}})})).exitCode()}};var qFi=Nt(el(),1),$Fi=Nt(el(),1),eZi=Nt(Bn(),1),tZi=Nt(Bn(),1),rZi=Nt(Bn(),1),WGr=Nt(no(),1),OGr=Nt(no(),1);$c();$c();var gDe=Nt(Bn(),1),OFi=Nt(Bn(),1),FGr=Nt(no(),1),xGr=Nt(no(),1),MFi=Nt(TW(),1),HFi=Nt(TGr(),1);var imc="feat",smc=": ",omc="(",amc=")",FFi="!",cmc=".",lmc=["BREAKING CHANGE:","BREAKING CHANGE ","BREAKING-CHANGE:","BREAKING-CHANGE "],umc=/^(?:[A-Za-z0-9-]+|BREAKING CHANGE)(?:: | #).+/,RGr={patch:0,minor:1,major:2},NGr=e=>Object.hasOwn(RGr,e),VFi=(e,t)=>RGr[t]>RGr[e]?t:e,kGr=(e,t)=>e===void 0?t:NGr(e)?VFi(e,t):e,G1t=(e,t)=>e===void 0?t:NGr(e)?NGr(t)?kGr(e,t):t:e,DGr=e=>e.relativeCwd===cmc,PFi=(e,t)=>e===t.relativeCwd||e.startsWith(`${t.relativeCwd}/`),gmc=(e,t)=>e.relativeCwd===t.relativeCwd,Amc=(e,t)=>gmc(e,t)?!1:DGr(e)?!DGr(t):t.relativeCwd.startsWith(`${e.relativeCwd}/`),ZFi=(e,t,r)=>r.some(n=>Amc(t,n)&&PFi(e,n)),dmc=(e,t,r)=>(DGr(t)||PFi(e,t))&&!ZFi(e,t,r),pmc=e=>e.length>0&&[...e].every(t=>t>="a"&&t<="z"),LFi=e=>e.trim().length===0,fmc=e=>umc.test(e),Imc=e=>{let t=e.split(` +`).map(a=>a.replace("\r",""));for(;t.length>0&&LFi(t[t.length-1]);)t.pop();let r=t.length;for(;r>0&&!LFi(t[r-1]);)r-=1;if(r===0||r===t.length)return[];let n=t.slice(r);return fmc(n[0])?n:[]},hmc=e=>Imc(e).some(t=>lmc.some(r=>t.startsWith(r))),mmc=e=>{let t=e.indexOf(smc);if(t<1)return;let r=e.slice(0,t),n=r.endsWith(FFi);n&&(r=r.slice(0,-FFi.length));let a=r.indexOf(omc);if(a>=0){if(!r.endsWith(amc))return;r=r.slice(0,a)}if(pmc(r))return{type:r,breaking:n}},Cmc=e=>{let[t=""]=e.split(` +`,1),r=mmc(t.replace("\r",""));if(r)return r.breaking||hmc(e)?"major":r.type===imc?"minor":"patch"},WFi=(e,t,r=e)=>{let n=new Map;for(let a of t){let o=Cmc(a.message);if(o)for(let l of e){if(!a.files.some(f=>dmc(f,l,r)))continue;let A=n.get(l.ident);n.set(l.ident,{workspace:l,strategy:A?VFi(A.strategy,o):o})}}return[...n.values()].sort((a,o)=>a.workspace.relativeCwd.localeCompare(o.workspace.relativeCwd))};var _mc="origin/HEAD",ymc="HEAD",bmc=`${_mc}..${ymc}`,Emc="ENOENT",YFi="decline",GGr=2,Smc=e=>e==="release"||e==="decline",vmc=(e,t)=>typeof e=="object"&&e!==null&&"code"in e&&e.code===t,QFi=e=>e.manifest.name?OFi.structUtils.stringifyIdent(e.manifest.name):void 0,XFi=e=>e.relativeCwd!=="."&&!!e.manifest.version&&!!QFi(e),ZGr=e=>{let t=QFi(e);if(!(!t||!XFi(e)))return{ident:t,relativeCwd:e.relativeCwd}},Bmc=e=>({relativeCwd:e.relativeCwd}),wmc=e=>[e.filename,e.previous_filename].filter(t=>!!t),JFi=e=>({message:e.data.commit.message,files:[...new Set((e.data.files??[]).flatMap(wmc))]}),Tmc=async()=>(await Pmt()).map(JFi),Rmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--reverse",t],{cwd:e.cwd,strict:!0});return r.split(/\r?\n/).filter(Boolean)},Nmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["show","--format=%B","--no-patch","--max-count=1",t],{cwd:e.cwd,strict:!0});return r},Dmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["rev-list","--parents","-n","1",t],{cwd:e.cwd,strict:!0}),[,...n]=r.trim().split(" ").filter(Boolean);return n},UFi=(e,t)=>e.find(r=>!t.has(r))??e[0],kmc=async(e,t)=>{let{stdout:r}=await gDe.execUtils.execvp("git",["diff-tree","--no-commit-id","--name-only","-r","--root","--no-renames","-z",t],{cwd:e.cwd,strict:!0});return r.split("\0").map(n=>n.trim()).filter(Boolean)},xmc=async(e,t,r)=>{let n=UFi(await Dmc(e,t),r);if(!n)return kmc(e,t);let{stdout:a}=await gDe.execUtils.execvp("git",["diff","--name-only","--no-renames","-z",n,t],{cwd:e.cwd,strict:!0});return[...new Set(a.split("\0").map(o=>o.trim()).filter(Boolean))]},Gmc=async(e,t,r)=>({message:await Nmc(e,t),files:await xmc(e,t,r)}),Fmc=async(e,t)=>{let r=await Rmc(e,t),n=new Set(r);return Promise.all(r.map(async a=>Gmc(e,a,n)))},LGr=async(e,t)=>t===void 0&&process.env.GITHUB_EVENT_PATH&&process.env.GITHUB_TOKEN?Tmc():Fmc(e,t??bmc),KFi=e=>{let t=(0,MFi.parseSyml)(e),r=new Map;for(let n of t.declined??[])typeof n=="string"&&r.set(n,G1t(r.get(n),YFi));for(let[n,a]of Object.entries(t.releases??{}))typeof a=="string"&&r.set(n,G1t(r.get(n),a));return r},VGr=async e=>{let t=e.get("deferredVersionFolder"),r=new Map,n;try{n=await xGr.xfs.readdirPromise(t)}catch(a){if(vmc(a,Emc))return r;throw a}for(let a of n){if(!a.endsWith(".yml"))continue;let o=FGr.ppath.join(t,a),l=await xGr.xfs.readFilePromise(o,"utf8"),A=KFi(l);for(let[f,I]of A)r.set(f,G1t(r.get(f),I))}return r},Zmc=async e=>{let t=await VGr(e);return new Set([...t.entries()].filter(([,r])=>r===YFi).map(([r])=>r))},Lmc=(e,t)=>{let r=FGr.ppath.resolve(e.cwd,t.workspace.relativeCwd),n=e.workspacesByCwd.get(r);if(!n)throw new Error(`Could not resolve release workspace "${t.workspace.ident}"`);return{ident:t.workspace.ident,relativeCwd:t.workspace.relativeCwd,decision:t.decision,private:n.manifest.private}},Vmc=e=>{let t=ZGr(e),{version:r}=e.manifest;if(!(!t||!r))return{workspace:t,decision:"decline"}},Pmc=(e,t,r)=>{for(let n of e.workspaces){let a=Vmc(n);!a||!r.has(a.workspace.ident)||t.has(a.workspace.ident)||t.set(a.workspace.ident,a)}},Wmc=async(e,t=new Set)=>{let r=await HFi.versionUtils.resolveVersionFiles(e),n=new Map;for(let[a,o]of r){let l=ZGr(a);!l||!o||n.set(l.ident,{workspace:l,decision:"release"})}return Pmc(e,n,t),n},Omc=(e,t,r)=>{for(let n of t)if(!r.has(n.workspace.ident))throw new Error(`Release plan requires deferred target version for "${n.workspace.ident}". Run \`yarn release version defer\` before \`yarn release plan create\`.`);return{schemaVersion:GGr,workspaces:[...r.values()].sort((n,a)=>n.workspace.relativeCwd.localeCompare(a.workspace.relativeCwd)).map(n=>Lmc(e,n))}},PGr=(e,t)=>{let r=e.workspaces.map(ZGr).filter(a=>!!a),n=e.workspaces.map(Bmc);return WFi(r,t,n)},jFi=async(e,t,r)=>{let n=await LGr(e,r),a=PGr(e,n),o=await Zmc(t),l=await Wmc(e,o);return Omc(e,a,l)},Mmc=e=>{if(typeof e!="object"||e===null)return!1;let t=e;return typeof t.ident=="string"&&typeof t.relativeCwd=="string"&&Smc(t.decision)&&typeof t.private=="boolean"},zFi=e=>{let t=JSON.parse(e);if(t.schemaVersion!==GGr||!Array.isArray(t.workspaces)||!t.workspaces.every(Mmc))throw new Error("Invalid release plan");return{schemaVersion:GGr,workspaces:t.workspaces}};var F1t=class extends qFi.BaseCommand{static paths=[["release","plan","create"]];static usage=_C.Usage({description:"create a Raijin release workspace selection",details:` The release selection records the fixed workspace set once, so later publish stages can route the same workspaces without recalculating changed workspaces. Target package versions remain owned by Yarn deferred versioning and are only validated here. Run it after yarn release version defer and before yarn version apply --all. `});output=Su.String("-o,--output");since=Su.String("--since");async execute(){let t=await eZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await tZi.Project.find(t,this.context.cwd);if(!n)throw new $Fi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=await jFi(r,t,this.since),o=`${JSON.stringify(a,null,2)} -`;if(!this.output)return this.context.stdout.write(o),0;let l=WGr.ppath.resolve(r.cwd,this.output);return(await rZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async f=>{await OGr.xfs.mkdirpPromise(WGr.ppath.dirname(l)),await OGr.xfs.writeFilePromise(l,o),f.reportInfo(null,`Release plan written to ${this.output}`)})).exitCode()}};var nZi=Nt(el(),1),iZi=Nt(el(),1),sZi=Nt(Bn(),1),oZi=Nt(Bn(),1),aZi=Nt(no(),1),cZi=Nt(no(),1);$c();$c();var Mmc=".raijin/release-plan.json",Hmc=(e,t)=>{let r=e.workspaces.filter(a=>a.decision!=="decline");if(r.length===0)return[];let n=["workspaces","foreach"];for(let a of r)n.push("--include",a.ident);return n.push("--all"),t.exclude&&n.push("--exclude",t.exclude),t.verbose&&n.push("--verbose"),t.parallel&&n.push("--parallel"),t.interlaced&&n.push("--interlaced"),t.publicOnly&&n.push("--no-private"),t.topological&&n.push("--topological"),t.topologicalDev&&n.push("--topological-dev"),t.jobs&&n.push("--jobs",t.jobs),n},Z1t=class extends nZi.BaseCommand{static paths=[["release","plan","foreach"]];static usage=_C.Usage({description:"run a command for workspaces listed in a Raijin release plan",details:` +`;if(!this.output)return this.context.stdout.write(o),0;let l=WGr.ppath.resolve(r.cwd,this.output);return(await rZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async f=>{await OGr.xfs.mkdirpPromise(WGr.ppath.dirname(l)),await OGr.xfs.writeFilePromise(l,o),f.reportInfo(null,`Release plan written to ${this.output}`)})).exitCode()}};var nZi=Nt(el(),1),iZi=Nt(el(),1),sZi=Nt(Bn(),1),oZi=Nt(Bn(),1),aZi=Nt(no(),1),cZi=Nt(no(),1);$c();$c();var Hmc=".raijin/release-plan.json",Ymc=(e,t)=>{let r=e.workspaces.filter(a=>a.decision!=="decline");if(r.length===0)return[];let n=["workspaces","foreach"];for(let a of r)n.push("--include",a.ident);return n.push("--all"),t.exclude&&n.push("--exclude",t.exclude),t.verbose&&n.push("--verbose"),t.parallel&&n.push("--parallel"),t.interlaced&&n.push("--interlaced"),t.publicOnly&&n.push("--no-private"),t.topological&&n.push("--topological"),t.topologicalDev&&n.push("--topological-dev"),t.jobs&&n.push("--jobs",t.jobs),n},Z1t=class extends nZi.BaseCommand{static paths=[["release","plan","foreach"]];static usage=_C.Usage({description:"run a command for workspaces listed in a Raijin release plan",details:` This command routes the fixed release workspace selection through Yarn workspaces foreach. Empty plans are no-ops, never broad workspace execution. - `});plan=Su.String("--plan",Mmc);exclude=Su.String("--exclude","");verbose=Su.Boolean("-v,--verbose",!1);parallel=Su.Boolean("-p,--parallel",!1);interlaced=Su.Boolean("-i,--interlaced",!1);publicOnly=Su.Boolean("--no-private",!1);topological=Su.Boolean("-t,--topological",!1);topologicalDev=Su.Boolean("--topological-dev",!1);jobs=Su.String("-j,--jobs");commandName=Su.String();args=Su.Proxy();async execute(){let t=await sZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oZi.Project.find(t,this.context.cwd);if(!n)throw new iZi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=aZi.ppath.resolve(r.cwd,this.plan),o=zFi(await cZi.xfs.readFilePromise(a,"utf8")),l=Hmc(o,{exclude:this.exclude,verbose:this.verbose,parallel:this.parallel,interlaced:this.interlaced,publicOnly:this.publicOnly,topological:this.topological,topologicalDev:this.topologicalDev,jobs:this.jobs});return l.length===0?0:this.cli.run([...l,this.commandName,...this.args],{cwd:r.cwd})}};var lZi=Nt(el(),1),uZi=Nt(el(),1),gZi=Nt(Bn(),1),AZi=Nt(Bn(),1),dZi=Nt(Bn(),1);$c();var L1t=class extends lZi.BaseCommand{static paths=[["release","version","defer"]];since=Su.String("--since");dryRun=Su.Boolean("--dry-run",!1);async execute(){let t=await gZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await AZi.Project.find(t,this.context.cwd);if(!n)throw new uZi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{let l=await LGr(r,this.since),A=PGr(r,l);if(!A.length){o.reportInfo(null,"No released workspaces need deferred version records");return}let f=await VGr(t);for(let{workspace:I,strategy:C}of A){let b=kGr(f.get(I.ident),C);if(o.reportInfo(null,`Deferring ${I.ident} as ${b}`),this.dryRun)continue;if(await this.cli.run(["workspace",I.ident,"version",b,"--deferred"],{cwd:r.cwd})>0)throw new Error(`Failed to defer ${I.ident} as ${b}`)}})).exitCode()}};var pZi={commands:[n1t,F1t,Z1t,L1t]};var MFr={};sI(MFr,{RendererBuildCommand:()=>$Ue,RendererDevCommand:()=>cKe,default:()=>Q9i});var VZi=Nt(el(),1),PZi=Nt(Bn(),1),WZi=Nt(Bn(),1),OZi=Nt(Bn(),1),jGr=Nt(Bn(),1),zGr=Nt(Bn(),1),MZi=Nt(Bn(),1),Jee=Nt(no(),1),uH=Nt(no(),1);import{PassThrough as LZi}from"node:stream";var HGr=Nt(Bn(),1),QGr=Nt(no(),1),ADe=Nt(no(),1),bCe=Nt(no(),1);import{pathToFileURL as SZi}from"node:url";var fZi="/dist/compiled/conf/index.js",IZi="/dist/compiled/webpack/bundle5.js",hZi="/dist/build/next-config-ts/require-hook.js",mZi="/node_modules/next/",CZi="/dist/server/dev/require-cache.js",_Zi="/dist/build/webpack-config.js";var Ymc="next-compiled-conf-require-cache-loader.mjs",Qmc=new Set(["--experimental-loader","--loader"]),Xmc="RAIJIN_NODE_LOADER",XGr="dist",JGr=".next",YGr="package.json",Jmc=".pnp.loader.mjs",yZi="public",qUe="src",bZi="npm:",Umc=/(?:^|@)npm:([^#@]+)/,vZi=16,Kmc=[[XGr],[qUe,JGr],[qUe,YGr]],jmc=[[XGr,YGr],[qUe,JGr,YGr]],zmc=[[qUe,JGr]],qmc=e=>e?.includes(".pnp.loader.mjs")??!1,EZi=` + `});plan=Su.String("--plan",Hmc);exclude=Su.String("--exclude","");verbose=Su.Boolean("-v,--verbose",!1);parallel=Su.Boolean("-p,--parallel",!1);interlaced=Su.Boolean("-i,--interlaced",!1);publicOnly=Su.Boolean("--no-private",!1);topological=Su.Boolean("-t,--topological",!1);topologicalDev=Su.Boolean("--topological-dev",!1);jobs=Su.String("-j,--jobs");commandName=Su.String();args=Su.Proxy();async execute(){let t=await sZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await oZi.Project.find(t,this.context.cwd);if(!n)throw new iZi.WorkspaceRequiredError(r.cwd,this.context.cwd);let a=aZi.ppath.resolve(r.cwd,this.plan),o=zFi(await cZi.xfs.readFilePromise(a,"utf8")),l=Ymc(o,{exclude:this.exclude,verbose:this.verbose,parallel:this.parallel,interlaced:this.interlaced,publicOnly:this.publicOnly,topological:this.topological,topologicalDev:this.topologicalDev,jobs:this.jobs});return l.length===0?0:this.cli.run([...l,this.commandName,...this.args],{cwd:r.cwd})}};var lZi=Nt(el(),1),uZi=Nt(el(),1),gZi=Nt(Bn(),1),AZi=Nt(Bn(),1),dZi=Nt(Bn(),1);$c();var L1t=class extends lZi.BaseCommand{static paths=[["release","version","defer"]];since=Su.String("--since");dryRun=Su.Boolean("--dry-run",!1);async execute(){let t=await gZi.Configuration.find(this.context.cwd,this.context.plugins),{project:r,workspace:n}=await AZi.Project.find(t,this.context.cwd);if(!n)throw new uZi.WorkspaceRequiredError(r.cwd,this.context.cwd);return(await dZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{let l=await LGr(r,this.since),A=PGr(r,l);if(!A.length){o.reportInfo(null,"No released workspaces need deferred version records");return}let f=await VGr(t);for(let{workspace:I,strategy:C}of A){let b=kGr(f.get(I.ident),C);if(o.reportInfo(null,`Deferring ${I.ident} as ${b}`),this.dryRun)continue;if(await this.cli.run(["workspace",I.ident,"version",b,"--deferred"],{cwd:r.cwd})>0)throw new Error(`Failed to defer ${I.ident} as ${b}`)}})).exitCode()}};var pZi={commands:[n1t,F1t,Z1t,L1t]};var MFr={};sI(MFr,{RendererBuildCommand:()=>$Ue,RendererDevCommand:()=>cKe,default:()=>Q9i});var VZi=Nt(el(),1),PZi=Nt(Bn(),1),WZi=Nt(Bn(),1),OZi=Nt(Bn(),1),jGr=Nt(Bn(),1),zGr=Nt(Bn(),1),MZi=Nt(Bn(),1),Jee=Nt(no(),1),uH=Nt(no(),1);import{PassThrough as LZi}from"node:stream";var HGr=Nt(Bn(),1),QGr=Nt(no(),1),ADe=Nt(no(),1),bCe=Nt(no(),1);import{pathToFileURL as SZi}from"node:url";var fZi="/dist/compiled/conf/index.js",IZi="/dist/compiled/webpack/bundle5.js",hZi="/dist/build/next-config-ts/require-hook.js",mZi="/node_modules/next/",CZi="/dist/server/dev/require-cache.js",_Zi="/dist/build/webpack-config.js";var Qmc="next-compiled-conf-require-cache-loader.mjs",Xmc=new Set(["--experimental-loader","--loader"]),Jmc="RAIJIN_NODE_LOADER",XGr="dist",JGr=".next",YGr="package.json",Umc=".pnp.loader.mjs",yZi="public",qUe="src",bZi="npm:",Kmc=/(?:^|@)npm:([^#@]+)/,vZi=16,jmc=[[XGr],[qUe,JGr],[qUe,YGr]],zmc=[[XGr,YGr],[qUe,JGr,YGr]],qmc=[[qUe,JGr]],$mc=e=>e?.includes(".pnp.loader.mjs")??!1,EZi=` const pnpLoader = {} const NEXT_PACKAGE_PATH = ${JSON.stringify(mZi)} @@ -2600,42 +2600,42 @@ export async function load(url, context, nextLoad) { return result } -`.trimStart(),$mc=e=>e?EZi.replace("const pnpLoader = {}",`import * as pnpLoader from ${JSON.stringify(e)}`):EZi,BZi=e=>{if(!e)return null;let[t]=e.split("."),r=Number.parseInt(t,10);return Number.isNaN(r)?null:r},eCc=(e,t)=>ADe.ppath.join(e,...t),UGr=async(e,t)=>{await Promise.all(t.map(async r=>{let n=eCc(e,r);await bCe.xfs.existsPromise(n)&&await bCe.xfs.removePromise(n)}))},wZi=async e=>{await UGr(e,Kmc)},TZi=async e=>{await UGr(e,jmc)},RZi=async e=>{await UGr(e,zmc)},NZi=async e=>{let t=ADe.ppath.join(e,qUe,yZi);await bCe.xfs.existsPromise(t)&&await bCe.xfs.copyPromise(ADe.ppath.join(e,XGr,yZi),t)},DZi=(e,t)=>({...e,NEXT_TELEMETRY_DISABLED:"1",[Xmc]:t}),KGr=e=>{if(!e)return{nodeOptions:e,loader:void 0};let t=e.split(/\s+/).filter(Boolean);for(let r=0;r0?I.join(" "):void 0,loader:A}}return{nodeOptions:e,loader:void 0}},kZi=async(e,t)=>{let r=ADe.ppath.join(e,Jmc);return await bCe.xfs.existsPromise(r)?SZi(QGr.npath.fromPortablePath(r)).href:KGr(t).loader},tCc=e=>{let t=BZi(e);if(t!==null&&te.startsWith(bZi)?e.slice(bZi.length):decodeURIComponent(e).match(Umc)?.[1]??e,xZi=e=>{let t=HGr.structUtils.isVirtualLocator(e)?HGr.structUtils.devirtualizeLocator(e):e;return rCc(t.reference)},GZi=(e,t="next")=>{let r=BZi(e),n=["node",t,"build"];return tCc(e),r!==null&&r>=vZi&&n.push("--webpack"),n.push("src"),n},FZi=e=>{if(e!==0)throw new Error(`Renderer build failed with exit code ${e}`)},ZZi=async(e,t)=>{let r=ADe.ppath.join(e,Ymc);return await bCe.xfs.writeFilePromise(r,$mc(t)),SZi(QGr.npath.fromPortablePath(r)).href};var $Ue=class extends VZi.BaseCommand{static paths=[["renderer","build"]];async execute(){let t=await PZi.Configuration.find(this.context.cwd,this.context.plugins);await wZi(this.context.cwd);let{project:r,workspace:n}=await WZi.Project.find(t,this.context.cwd);if(!n)throw new Error("Renderer build must be executed from a workspace");let a=n.cwd;return await r.restoreInstallState(),(await OZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Renderer build",async()=>{let A=new LZi,f=new LZi;A.on("data",I=>{I.toString().split(` +`.trimStart(),eCc=e=>e?EZi.replace("const pnpLoader = {}",`import * as pnpLoader from ${JSON.stringify(e)}`):EZi,BZi=e=>{if(!e)return null;let[t]=e.split("."),r=Number.parseInt(t,10);return Number.isNaN(r)?null:r},tCc=(e,t)=>ADe.ppath.join(e,...t),UGr=async(e,t)=>{await Promise.all(t.map(async r=>{let n=tCc(e,r);await bCe.xfs.existsPromise(n)&&await bCe.xfs.removePromise(n)}))},wZi=async e=>{await UGr(e,jmc)},TZi=async e=>{await UGr(e,zmc)},RZi=async e=>{await UGr(e,qmc)},NZi=async e=>{let t=ADe.ppath.join(e,qUe,yZi);await bCe.xfs.existsPromise(t)&&await bCe.xfs.copyPromise(ADe.ppath.join(e,XGr,yZi),t)},DZi=(e,t)=>({...e,NEXT_TELEMETRY_DISABLED:"1",[Jmc]:t}),KGr=e=>{if(!e)return{nodeOptions:e,loader:void 0};let t=e.split(/\s+/).filter(Boolean);for(let r=0;r0?I.join(" "):void 0,loader:A}}return{nodeOptions:e,loader:void 0}},kZi=async(e,t)=>{let r=ADe.ppath.join(e,Umc);return await bCe.xfs.existsPromise(r)?SZi(QGr.npath.fromPortablePath(r)).href:KGr(t).loader},rCc=e=>{let t=BZi(e);if(t!==null&&te.startsWith(bZi)?e.slice(bZi.length):decodeURIComponent(e).match(Kmc)?.[1]??e,xZi=e=>{let t=HGr.structUtils.isVirtualLocator(e)?HGr.structUtils.devirtualizeLocator(e):e;return nCc(t.reference)},GZi=(e,t="next")=>{let r=BZi(e),n=["node",t,"build"];return rCc(e),r!==null&&r>=vZi&&n.push("--webpack"),n.push("src"),n},FZi=e=>{if(e!==0)throw new Error(`Renderer build failed with exit code ${e}`)},ZZi=async(e,t)=>{let r=ADe.ppath.join(e,Qmc);return await bCe.xfs.writeFilePromise(r,eCc(t)),SZi(QGr.npath.fromPortablePath(r)).href};var $Ue=class extends VZi.BaseCommand{static paths=[["renderer","build"]];async execute(){let t=await PZi.Configuration.find(this.context.cwd,this.context.plugins);await wZi(this.context.cwd);let{project:r,workspace:n}=await WZi.Project.find(t,this.context.cwd);if(!n)throw new Error("Renderer build must be executed from a workspace");let a=n.cwd;return await r.restoreInstallState(),(await OZi.StreamReport.start({stdout:this.context.stdout,configuration:t},async l=>{await l.startTimerPromise("Renderer build",async()=>{let A=new LZi,f=new LZi;A.on("data",I=>{I.toString().split(` `).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),f.on("data",I=>{I.toString().split(` -`).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),await Jee.xfs.writeJsonPromise(uH.ppath.join(a,"src/package.json"),{type:"module"});try{let I=await Jee.xfs.mktempPromise(),C={binFolder:I,locator:n.anchoredLocator,project:r},b=await iC(C),{nodeOptions:E}=KGr(b.env.NODE_OPTIONS),N=await kZi(r.cwd,b.env.NODE_OPTIONS),F=(await MZi.scriptUtils.getWorkspaceAccessibleBinaries(n)).get("next");if(!F)throw new Error("Renderer build requires Next.js 16 or newer");let[Q,X]=F,ae=xZi(Q),ne=await ZZi(I,N),{executable:ce,env:fe}=await iC({...C,env:{NODE_OPTIONS:E},nodeLoader:ne}),{code:ue}=await zGr.execUtils.pipevp(ce,GZi(ae,X),{end:zGr.execUtils.EndStrategy.ErrorCode,cwd:a,stdin:this.context.stdin,stdout:A,stderr:f,env:DZi(fe,ne)});FZi(ue)}finally{await Jee.xfs.removePromise(uH.ppath.join(a,"src/package.json"))}}),await l.startTimerPromise("Copy standalone files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist"),uH.ppath.join(a,"src/.next/standalone",a.replace(`${t.projectCwd||""}/`,""),"src"))}),await l.startTimerPromise("Clean workspace manifests",async()=>{await TZi(a)}),await l.startTimerPromise("Copy static files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/static"),uH.ppath.join(a,"src/.next/static"))}),await l.startTimerPromise("Copy public assets",async()=>{await NZi(a)}),await l.startTimerPromise("Copy edge chunks files",async()=>{await Jee.xfs.existsPromise(uH.ppath.join(a,"src/.next/server/edge-chunks"))&&await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/server/edge-chunks"),uH.ppath.join(a,"src/.next/server/edge-chunks"))}),await l.startTimerPromise("Move server start files",async()=>{await Jee.xfs.movePromise(uH.ppath.join(a,"dist/server.js"),uH.ppath.join(a,"dist/index.js"))}),await l.startTimerPromise("Clean source build artifacts",async()=>{await RZi(a)})})).exitCode()}};var W9i=Nt(el(),1),O9i=Nt(Bn(),1),M9i=Nt(Bn(),1),t2t=Nt(no(),1),aKe=Nt(no(),1);$c();var H9i=Nt(sLi(),1),Y9i=Nt(P9i(),1);var cKe=class extends W9i.BaseCommand{static paths=[["renderer","dev"]];tunnel=Su.Boolean("--tunnel");https=Su.Boolean("--https");#e;async runTunnel(t,r){this.#e&&this.#e.close(),this.#e=await(0,Y9i.default)({host:t,port:r}),console.log("your url is: %s",this.#e.url)}startTunnel(t,r=3e3){this.runTunnel(t,r),process.stdin.on("data",n=>{n.toString().trim()==="rs"&&this.runTunnel(t,r)})}async execute(){let t=await O9i.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await M9i.Project.find(t,this.context.cwd),n=["next","dev","src"];if(this.https){if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.key")))throw new Error("Https key not found");if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.crt")))throw new Error("Https cert not found");n.push("--experimental-https"),n.push("--experimental-https-key",aKe.ppath.join(r.cwd,".config/certs/local/dev.key")),n.push("--experimental-https-cert",aKe.ppath.join(r.cwd,".config/certs/local/dev.crt"))}let a=await t2t.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r});if((0,H9i.default)(o,n,{stdio:"inherit",cwd:this.context.cwd,env:l}),this.tunnel){let A=r.getWorkspaceByCwd(this.context.cwd),{tunnel:f}=A.manifest.raw.tools||{};if(!f?.host)throw new Error("Tunnel host not configured");this.startTunnel(f.host,f.port)}}};var Q9i={commands:[$Ue,cKe]};var hVr={};sI(hVr,{AbstractServiceCommand:()=>qCe,ServiceBuildCommand:()=>YKe,ServiceDevCommand:()=>QKe,default:()=>rKi});var QUi=Nt(Bn(),1),XUi=Nt(Bn(),1),pVr=Nt(no(),1),JUi=Nt(Bn(),1),UUi=Nt(no(),1),KUi=Nt(Al(),1);var lKe=Nt(Al(),1),$9i=Nt(Ec(),1),eVi=Nt(Ec(),1);var X9i=Nt(Ec(),1),J9i=Nt(Ec(),1),K9i=Nt(Pc(),1),U9i=({service:e})=>{let[t,r]=(0,J9i.useState)(0);return(0,X9i.useEffect)(()=>{let n=({percent:a})=>{r(a)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,K9i.jsx)(JM,{value:t})};var HFr=Nt(Al(),1),YFr=Nt(Al(),1),j9i=Nt(Ec(),1),z9i=Nt(Ec(),1),wCe=Nt(Pc(),1),q9i=({service:e})=>{let[t,r]=(0,z9i.useState)("");return(0,j9i.useEffect)(()=>{let n=a=>{r(a.message)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,wCe.jsx)(HFr.Box,{flexDirection:"row",width:"100%",children:(0,wCe.jsxs)(HFr.Box,{flexGrow:1,children:[(0,wCe.jsx)(RG,{color:"cyan",children:"Service:"}),(0,wCe.jsx)(YFr.Text,{children:" "}),(0,wCe.jsx)(YFr.Text,{color:"white",children:t})]})})};var Pce=Nt(Pc(),1),r2t=({service:e})=>{let[t,r]=(0,$9i.useState)(!1);return(0,eVi.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Pce.jsx)(lKe.Box,{position:"relative",height:7,children:(0,Pce.jsxs)(lKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Pce.jsx)(lKe.Box,{children:(0,Pce.jsx)(q9i,{service:e})}),(0,Pce.jsx)(lKe.Box,{marginTop:1,marginBottom:1,children:(0,Pce.jsx)(U9i,{service:e})})]})})};var s0c="@atls/code-runtime/runtime-exec-argv",o0c=async()=>await import(s0c);var tVi=async e=>{let{createRuntimeExecArgv:t}=await o0c();return t(e)};import{readFile as b0c}from"node:fs/promises";import{writeFile as E0c}from"node:fs/promises";import{mkdtemp as S0c}from"node:fs/promises";import{tmpdir as v0c}from"node:os";import{join as gKe}from"node:path";import{readFile as l0c}from"node:fs/promises";import{join as u0c}from"node:path";import{readFile as a0c}from"node:fs/promises";import{join as c0c}from"node:path";var n2t=class{static async find(t){try{let{tools:r={}}=JSON.parse(await a0c(c0c(t,"package.json"),"utf-8"));return r}catch{return{}}}};var i2t=class{constructor(t){this.cwd=t}#e=[];#t=[];async loadPackageJson(){try{return JSON.parse(await l0c(u0c(this.cwd,"package.json"),"utf-8"))}catch{return{}}}async loadDependencies(){let{dependencies:t={}}=await this.loadPackageJson();return Object.keys(t)}async loadExternals(){let{service:t}=await n2t.find(this.cwd);return t?.externals||[]}async build(){return this.#e=await this.loadExternals(),this.#t=await this.loadDependencies(),this.externals}externals=({request:t},r)=>{t&&this.#t.includes(t)?r(void 0,t,"module"):t&&this.#e.includes(t)?r(void 0,t,"import"):r()}};import{existsSync as rVi}from"node:fs";import{readFileSync as g0c}from"node:fs";import{dirname as nVi}from"node:path";import{join as iVi}from"node:path";var s2t=new Map,uKe="/node_modules/",sVi="package.json",oVi="OptionalImportIgnorePlugin",A0c=e=>e?.some(t=>t.optional===!0)??!1,d0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a]=n;if(!a)return null;let o=a.startsWith("@")?2:1,l=n.slice(0,o);return l.length!==o||l.some(A=>!A)?null:`${t.slice(0,r+uKe.length)}${l.join("/")}`},p0c=e=>{if(e.startsWith(".")||e.startsWith("/"))return null;let[t,r]=e.split("/");return t?t.startsWith("@")?r?`${t}/${r}`:null:t:null},f0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a,o]=n;return a?a.startsWith("@")?o?`${a}/${o}`:null:a:null},I0c=e=>{let t=d0c(e);if(t){let n=iVi(t,sVi);if(rVi(n))return n}let r=e;for(;r!==nVi(r);){let n=iVi(r,sVi);if(rVi(n))return n;r=nVi(r)}return null},h0c=e=>{if(s2t.has(e))return s2t.get(e)??null;try{let t=JSON.parse(g0c(e,"utf-8"));return s2t.set(e,t),t}catch{return s2t.set(e,null),null}},m0c=(e,t)=>e.peerDependenciesMeta?.[t]?.optional===!0||!!e.optionalDependencies?.[t],C0c=(e,t,r=!1)=>{let n=p0c(e);if(!n||!f0c(t))return!1;let a=I0c(t);if(!a)return!1;let o=h0c(a);return o?r||m0c(o,n):!1},_0c=async(e,t,r)=>new Promise(n=>{e.resolve({},r,t,{},(a,o)=>{n(!a&&!!o)})}),y0c=async(e,t,r,n=!1)=>C0c(e,t,n)?!await _0c(r,e,t):!1,aVi=e=>({apply:t=>{t.hooks.normalModuleFactory.tap(oVi,r=>{r.hooks.beforeResolve.tapAsync(oVi,(n,a)=>{if(n.request.endsWith(".js.map")){a(null,!1);return}let o=r.getResolver("normal",{...n.resolveOptions??{},dependencyType:n.dependencyType});y0c(n.request,n.context,o,A0c(n.dependencies)).then(l=>{a(null,l?!1:void 0)}).catch(l=>{a(l)})})})}});var o2t=class{constructor(t,r,n){this.webpack=t;this.loaders=r;this.cwd=n}async build(t="production",r=[]){let n=gKe(await S0c(gKe(v0c(),"code-service-")),"tsconfig.json");await E0c(n,'{"include":["**/*"]}');let a=await this.getWorkspaceType(),l=["webpack/hot/poll?100",await new i2t(this.cwd).build()],A=this.createPlugins(t,r,a==="module");return{mode:t,bail:t==="production",target:"node",optimization:{minimize:!1},experiments:{outputModule:a==="module"},plugins:A,entry:{index:gKe(this.cwd,"src/index"),...t==="development"&&{hot:"webpack/hot/poll?100"}},node:{__dirname:!0,__filename:!1},output:{path:gKe(this.cwd,"dist"),filename:"[name].js",library:{type:a},chunkFormat:t==="development"?"commonjs":a,module:a==="module",clean:!1,assetModuleFilename:"assets/[name][ext]"},resolve:{extensionAlias:{".js":[".tsx",".ts",".js"],".jsx":[".tsx",".ts",".js"],".cjs":[".cjs",".cts"],".mjs":[".mjs",".mts"]},extensions:[".tsx",".ts",".js"],alias:{"class-transformer/storage":"class-transformer/cjs/storage"}},externals:l,externalsType:t==="production"?a==="module"?"import":"commonjs":"commonjs2",externalsPresets:{node:!0},devtool:t==="production"?"source-map":"eval-cheap-module-source-map",module:{rules:[{test:/(^.?|\.[^d]|[^.]d|[^.][^d])\.tsx?$/,use:{loader:this.loaders.tsLoader,options:{transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:n}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset/resource"},{test:/\.(png|svg|jpg|jpeg|gif)$/i,type:"asset/resource"},{test:/\.(md)$/i,type:"asset/resource"},{test:/\.node$/,use:this.loaders.nodeLoader}]}}}async getWorkspaceType(){try{let t=await b0c(gKe(this.cwd,"package.json"),"utf-8"),{type:r="commonjs"}=JSON.parse(t);return r}catch{return"module"}}createPlugins(t,r,n){let a=[aVi(t),...r];return n&&a.push(new this.webpack.BannerPlugin({banner:`import { createRequire } from 'node:module' +`).filter(Boolean).forEach(C=>{l.reportInfo(jGr.MessageName.UNNAMED,C)})}),await Jee.xfs.writeJsonPromise(uH.ppath.join(a,"src/package.json"),{type:"module"});try{let I=await Jee.xfs.mktempPromise(),C={binFolder:I,locator:n.anchoredLocator,project:r},b=await iC(C),{nodeOptions:E}=KGr(b.env.NODE_OPTIONS),N=await kZi(r.cwd,b.env.NODE_OPTIONS),F=(await MZi.scriptUtils.getWorkspaceAccessibleBinaries(n)).get("next");if(!F)throw new Error("Renderer build requires Next.js 16 or newer");let[Q,X]=F,ae=xZi(Q),ne=await ZZi(I,N),{executable:ce,env:fe}=await iC({...C,env:{NODE_OPTIONS:E},nodeLoader:ne}),{code:ue}=await zGr.execUtils.pipevp(ce,GZi(ae,X),{end:zGr.execUtils.EndStrategy.ErrorCode,cwd:a,stdin:this.context.stdin,stdout:A,stderr:f,env:DZi(fe,ne)});FZi(ue)}finally{await Jee.xfs.removePromise(uH.ppath.join(a,"src/package.json"))}}),await l.startTimerPromise("Copy standalone files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist"),uH.ppath.join(a,"src/.next/standalone",a.replace(`${t.projectCwd||""}/`,""),"src"))}),await l.startTimerPromise("Clean workspace manifests",async()=>{await TZi(a)}),await l.startTimerPromise("Copy static files",async()=>{await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/static"),uH.ppath.join(a,"src/.next/static"))}),await l.startTimerPromise("Copy public assets",async()=>{await NZi(a)}),await l.startTimerPromise("Copy edge chunks files",async()=>{await Jee.xfs.existsPromise(uH.ppath.join(a,"src/.next/server/edge-chunks"))&&await Jee.xfs.copyPromise(uH.ppath.join(a,"dist/.next/server/edge-chunks"),uH.ppath.join(a,"src/.next/server/edge-chunks"))}),await l.startTimerPromise("Move server start files",async()=>{await Jee.xfs.movePromise(uH.ppath.join(a,"dist/server.js"),uH.ppath.join(a,"dist/index.js"))}),await l.startTimerPromise("Clean source build artifacts",async()=>{await RZi(a)})})).exitCode()}};var W9i=Nt(el(),1),O9i=Nt(Bn(),1),M9i=Nt(Bn(),1),t2t=Nt(no(),1),aKe=Nt(no(),1);$c();var H9i=Nt(sLi(),1),Y9i=Nt(P9i(),1);var cKe=class extends W9i.BaseCommand{static paths=[["renderer","dev"]];tunnel=Su.Boolean("--tunnel");https=Su.Boolean("--https");#e;async runTunnel(t,r){this.#e&&this.#e.close(),this.#e=await(0,Y9i.default)({host:t,port:r}),console.log("your url is: %s",this.#e.url)}startTunnel(t,r=3e3){this.runTunnel(t,r),process.stdin.on("data",n=>{n.toString().trim()==="rs"&&this.runTunnel(t,r)})}async execute(){let t=await O9i.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await M9i.Project.find(t,this.context.cwd),n=["next","dev","src"];if(this.https){if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.key")))throw new Error("Https key not found");if(!await t2t.xfs.existsPromise(aKe.ppath.join(r.cwd,".config/certs/local/dev.crt")))throw new Error("Https cert not found");n.push("--experimental-https"),n.push("--experimental-https-key",aKe.ppath.join(r.cwd,".config/certs/local/dev.key")),n.push("--experimental-https-cert",aKe.ppath.join(r.cwd,".config/certs/local/dev.crt"))}let a=await t2t.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r});if((0,H9i.default)(o,n,{stdio:"inherit",cwd:this.context.cwd,env:l}),this.tunnel){let A=r.getWorkspaceByCwd(this.context.cwd),{tunnel:f}=A.manifest.raw.tools||{};if(!f?.host)throw new Error("Tunnel host not configured");this.startTunnel(f.host,f.port)}}};var Q9i={commands:[$Ue,cKe]};var hVr={};sI(hVr,{AbstractServiceCommand:()=>qCe,ServiceBuildCommand:()=>YKe,ServiceDevCommand:()=>QKe,default:()=>rKi});var QUi=Nt(Bn(),1),XUi=Nt(Bn(),1),pVr=Nt(no(),1),JUi=Nt(Bn(),1),UUi=Nt(no(),1),KUi=Nt(Al(),1);var lKe=Nt(Al(),1),$9i=Nt(Ec(),1),eVi=Nt(Ec(),1);var X9i=Nt(Ec(),1),J9i=Nt(Ec(),1),K9i=Nt(Pc(),1),U9i=({service:e})=>{let[t,r]=(0,J9i.useState)(0);return(0,X9i.useEffect)(()=>{let n=({percent:a})=>{r(a)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,K9i.jsx)(JM,{value:t})};var HFr=Nt(Al(),1),YFr=Nt(Al(),1),j9i=Nt(Ec(),1),z9i=Nt(Ec(),1),wCe=Nt(Pc(),1),q9i=({service:e})=>{let[t,r]=(0,z9i.useState)("");return(0,j9i.useEffect)(()=>{let n=a=>{r(a.message)};return e.on("build:progress",n),()=>{e.off("build:progress",n)}},[e,r]),(0,wCe.jsx)(HFr.Box,{flexDirection:"row",width:"100%",children:(0,wCe.jsxs)(HFr.Box,{flexGrow:1,children:[(0,wCe.jsx)(RG,{color:"cyan",children:"Service:"}),(0,wCe.jsx)(YFr.Text,{children:" "}),(0,wCe.jsx)(YFr.Text,{color:"white",children:t})]})})};var Pce=Nt(Pc(),1),r2t=({service:e})=>{let[t,r]=(0,$9i.useState)(!1);return(0,eVi.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("end",n),()=>{e.off("end",n)}},[r]),t?null:(0,Pce.jsx)(lKe.Box,{position:"relative",height:7,children:(0,Pce.jsxs)(lKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,Pce.jsx)(lKe.Box,{children:(0,Pce.jsx)(q9i,{service:e})}),(0,Pce.jsx)(lKe.Box,{marginTop:1,marginBottom:1,children:(0,Pce.jsx)(U9i,{service:e})})]})})};var o0c="@atls/code-runtime/runtime-exec-argv",a0c=async()=>await import(o0c);var tVi=async e=>{let{createRuntimeExecArgv:t}=await a0c();return t(e)};import{readFile as E0c}from"node:fs/promises";import{writeFile as S0c}from"node:fs/promises";import{mkdtemp as v0c}from"node:fs/promises";import{tmpdir as B0c}from"node:os";import{join as gKe}from"node:path";import{readFile as u0c}from"node:fs/promises";import{join as g0c}from"node:path";import{readFile as c0c}from"node:fs/promises";import{join as l0c}from"node:path";var n2t=class{static async find(t){try{let{tools:r={}}=JSON.parse(await c0c(l0c(t,"package.json"),"utf-8"));return r}catch{return{}}}};var i2t=class{constructor(t){this.cwd=t}#e=[];#t=[];async loadPackageJson(){try{return JSON.parse(await u0c(g0c(this.cwd,"package.json"),"utf-8"))}catch{return{}}}async loadDependencies(){let{dependencies:t={}}=await this.loadPackageJson();return Object.keys(t)}async loadExternals(){let{service:t}=await n2t.find(this.cwd);return t?.externals||[]}async build(){return this.#e=await this.loadExternals(),this.#t=await this.loadDependencies(),this.externals}externals=({request:t},r)=>{t&&this.#t.includes(t)?r(void 0,t,"module"):t&&this.#e.includes(t)?r(void 0,t,"import"):r()}};import{existsSync as rVi}from"node:fs";import{readFileSync as A0c}from"node:fs";import{dirname as nVi}from"node:path";import{join as iVi}from"node:path";var s2t=new Map,uKe="/node_modules/",sVi="package.json",oVi="OptionalImportIgnorePlugin",d0c=e=>e?.some(t=>t.optional===!0)??!1,p0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a]=n;if(!a)return null;let o=a.startsWith("@")?2:1,l=n.slice(0,o);return l.length!==o||l.some(A=>!A)?null:`${t.slice(0,r+uKe.length)}${l.join("/")}`},f0c=e=>{if(e.startsWith(".")||e.startsWith("/"))return null;let[t,r]=e.split("/");return t?t.startsWith("@")?r?`${t}/${r}`:null:t:null},I0c=e=>{let t=e.replaceAll("\\","/"),r=t.lastIndexOf(uKe);if(r===-1)return null;let n=t.slice(r+uKe.length).split("/"),[a,o]=n;return a?a.startsWith("@")?o?`${a}/${o}`:null:a:null},h0c=e=>{let t=p0c(e);if(t){let n=iVi(t,sVi);if(rVi(n))return n}let r=e;for(;r!==nVi(r);){let n=iVi(r,sVi);if(rVi(n))return n;r=nVi(r)}return null},m0c=e=>{if(s2t.has(e))return s2t.get(e)??null;try{let t=JSON.parse(A0c(e,"utf-8"));return s2t.set(e,t),t}catch{return s2t.set(e,null),null}},C0c=(e,t)=>e.peerDependenciesMeta?.[t]?.optional===!0||!!e.optionalDependencies?.[t],_0c=(e,t,r=!1)=>{let n=f0c(e);if(!n||!I0c(t))return!1;let a=h0c(t);if(!a)return!1;let o=m0c(a);return o?r||C0c(o,n):!1},y0c=async(e,t,r)=>new Promise(n=>{e.resolve({},r,t,{},(a,o)=>{n(!a&&!!o)})}),b0c=async(e,t,r,n=!1)=>_0c(e,t,n)?!await y0c(r,e,t):!1,aVi=e=>({apply:t=>{t.hooks.normalModuleFactory.tap(oVi,r=>{r.hooks.beforeResolve.tapAsync(oVi,(n,a)=>{if(n.request.endsWith(".js.map")){a(null,!1);return}let o=r.getResolver("normal",{...n.resolveOptions??{},dependencyType:n.dependencyType});b0c(n.request,n.context,o,d0c(n.dependencies)).then(l=>{a(null,l?!1:void 0)}).catch(l=>{a(l)})})})}});var o2t=class{constructor(t,r,n){this.webpack=t;this.loaders=r;this.cwd=n}async build(t="production",r=[]){let n=gKe(await v0c(gKe(B0c(),"code-service-")),"tsconfig.json");await S0c(n,'{"include":["**/*"]}');let a=await this.getWorkspaceType(),l=["webpack/hot/poll?100",await new i2t(this.cwd).build()],A=this.createPlugins(t,r,a==="module");return{mode:t,bail:t==="production",target:"node",optimization:{minimize:!1},experiments:{outputModule:a==="module"},plugins:A,entry:{index:gKe(this.cwd,"src/index"),...t==="development"&&{hot:"webpack/hot/poll?100"}},node:{__dirname:!0,__filename:!1},output:{path:gKe(this.cwd,"dist"),filename:"[name].js",library:{type:a},chunkFormat:t==="development"?"commonjs":a,module:a==="module",clean:!1,assetModuleFilename:"assets/[name][ext]"},resolve:{extensionAlias:{".js":[".tsx",".ts",".js"],".jsx":[".tsx",".ts",".js"],".cjs":[".cjs",".cts"],".mjs":[".mjs",".mts"]},extensions:[".tsx",".ts",".js"],alias:{"class-transformer/storage":"class-transformer/cjs/storage"}},externals:l,externalsType:t==="production"?a==="module"?"import":"commonjs":"commonjs2",externalsPresets:{node:!0},devtool:t==="production"?"source-map":"eval-cheap-module-source-map",module:{rules:[{test:/(^.?|\.[^d]|[^.]d|[^.][^d])\.tsx?$/,use:{loader:this.loaders.tsLoader,options:{transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:n}}},{test:/\.(woff|woff2|eot|ttf|otf)$/i,type:"asset/resource"},{test:/\.(png|svg|jpg|jpeg|gif)$/i,type:"asset/resource"},{test:/\.(md)$/i,type:"asset/resource"},{test:/\.node$/,use:this.loaders.nodeLoader}]}}}async getWorkspaceType(){try{let t=await E0c(gKe(this.cwd,"package.json"),"utf-8"),{type:r="commonjs"}=JSON.parse(t);return r}catch{return"module"}}createPlugins(t,r,n){let a=[aVi(t),...r];return n&&a.push(new this.webpack.BannerPlugin({banner:`import { createRequire } from 'node:module' import { fileURLToPath } from 'node:url' const require = createRequire(import.meta.url) const __filename = fileURLToPath(import.meta.url) -`,raw:!0})),t==="development"&&a.push(new this.webpack.HotModuleReplacementPlugin),a}};import YFc from"node:events";import{PassThrough as QFc}from"node:stream";var y4=Nt(bDe(),1);var LLr="@namespace";var vJi=Nt(bDe(),1),BJi=Nt(xKe(),1),wJi=Nt(xKe(),1),Bvt=Nt(bDe(),1);var sJi=Nt(E9r(),1),oJi=Nt(xKe(),1),Cvt=class extends oJi.ConsoleLogRecordExporter{export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));process.stdout.write(`${a} -`)}r?.({code:sJi.ExportResultCode.SUCCESS})}};var EJi=Nt(E9r(),1),SJi=Nt(xKe(),1);var w9r=Nt(fJi(),1),T9r=Nt(yJi(),1);import{isMainThread as ZFc}from"node:worker_threads";var LFc=w9r.default.default||w9r.default;function Evt(){}function VFc(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",()=>{e.end()})):e.flushSync())}var bJi=()=>{let e=new LFc({fd:process.stdout.fd||1});e.on("error",t),ZFc&&(T9r.default.register(e,VFc),e.on("close",()=>{T9r.default.unregister(e)}));function t(r){if(r.code==="EPIPE"){e.write=Evt,e.end=Evt,e.flushSync=Evt,e.destroy=Evt;return}e.removeListener("error",t),e.emit("error",r)}return e};var PFc=function(e,t,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(e,r):a?a.value=r:t.set(e,r),r},WFc=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Svt,vvt=class extends SJi.ConsoleLogRecordExporter{constructor(){super(),Svt.set(this,void 0),PFc(this,Svt,bJi(),"f")}export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));WFc(this,Svt,"f").write(`${a} -`)}r?.({code:EJi.ExportResultCode.SUCCESS})}};Svt=new WeakMap;var wvt=class e{static getLoggerProvider(){if(!e.initialized&&Bvt.logs.getLoggerProvider()instanceof vJi.NoopLoggerProvider){let t=new BJi.LoggerProvider;t.addLogRecordProcessor(new wJi.SimpleLogRecordProcessor(process.env.JEST_WORKER_ID?new Cvt:new vvt)),Bvt.logs.setGlobalLoggerProvider(t),e.initialized=!0}return Bvt.logs.getLoggerProvider()}};wvt.initialized=!1;var R9r=Nt(bDe(),1),vMu=Object.keys(R9r.SeverityNumber).reduce((e,t)=>({...e,[R9r.SeverityNumber[t]]:t}),{});import{fork as OFc}from"node:child_process";import{join as MFc}from"node:path";var Tvt=class{constructor(t={}){this.options=t}info(t){this.options.stdout&&this.options.stdout.write(Buffer.from(JSON.stringify({body:t,severityNumber:9,attributes:{"@namespace":"webpack:start-server"}})))}error(t){this.options.stderr&&this.options.stderr.write(Buffer.from(JSON.stringify({body:t.message,severityNumber:17,attributes:{"@namespace":"webpack:start-server","@stack":t.stack}})))}};var HFc=({execArgv:e},t=process.execArgv)=>({silent:!0,...e?{execArgv:[...t,...e]}:{}}),Rvt=class{options;entryFile=null;worker=null;initialized=!1;logger;constructor(t={}){this.logger=new Tvt(t),this.options=t}apply(t){t.hooks.afterEmit.tapAsync({name:"StartServerPlugin"},this.afterEmit)}afterEmit=(t,r)=>{this.initialized?(this.worker?.connected&&this.worker.pid&&process.kill(this.worker.pid),this.startServer(t,r)):(this.initialized=!0,r())};startServer=(t,r)=>{this.logger.info("Starting server...");let{path:n}=t.compiler.options.output;n&&(this.entryFile=MFc(n,"index.js"),this.runWorker(this.entryFile,a=>{this.worker=a,r()}))};runWorker(t,r){let n=OFc(t,[],HFc(this.options));this.options.stdout&&n.stdout?.pipe(this.options.stdout,{end:!1}),this.options.stderr&&n.stderr?.pipe(this.options.stderr,{end:!1}),setTimeout(()=>{r(n)},0)}};var MDe=class e extends YFc{constructor(r,n,a){super();this.webpack=r;this.config=n;this.execArgv=a}static async initialize(r){let{webpack:n,tsLoaderPath:a,nodeLoaderPath:o,protoLoaderPath:l}=await import("@atls/code-runtime/webpack"),A=new o2t(n,{nodeLoader:o,tsLoader:a,protoLoader:l},r);return new e(n,A,await tVi(r))}async build(){let r=this.webpack(await this.config.build("production",[new this.webpack.ProgressPlugin((n,a)=>{this.emit("build:progress",{percent:n*100,message:a})})]));return new Promise((n,a)=>{r.run((o,l)=>{if(this.emit("end",{error:o,stats:l}),o)o.message?n([o]):a(o);else if(l){let{errors:A=[],warnings:f=[]}=l.toJson();n([...A.map(I=>({record:I,severityNumber:y4.SeverityNumber.ERROR})),...f.map(I=>({record:I,severityNumber:y4.SeverityNumber.WARN}))])}else n([])})})}async watch(r){let n=new QFc;return n.on("data",a=>{a.toString().split(/\r?\n/).filter(Boolean).forEach(o=>{try{r(JSON.parse(o))}catch{r({severityNumber:y4.SeverityNumber.INFO,body:o})}})}),this.webpack(await this.config.build("development",[new Rvt({stdout:n,stderr:n,execArgv:this.execArgv}),new this.webpack.ProgressPlugin((a,o)=>{this.emit("build:progress",{percent:a*100,message:o})})])).watch({},(a,o)=>{if(this.emit("end",{error:a,stats:o}),a)r(a);else if(o){let{errors:l=[],warnings:A=[]}=o.toJson();A.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.WARN})}),l.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.ERROR})})}})}};var YUi=Nt(el(),1);$c();var TJi=Nt(Al(),1),NJi=Nt(Pc(),1),RJi=({children:e})=>e?(0,NJi.jsx)(TJi.Text,{children:e}):null;var x9r=Nt(Al(),1);var G9r=Nt(Ec(),1);var XFc=(e,t)=>(e=e.replace(/((?r.toLowerCase()),e.replace(/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,(r,n,a)=>n+t+a.toLowerCase()));function N9r(e,{separator:t="_",preserveConsecutiveUppercase:r=!1}={}){if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("The `text` and `separator` arguments should be of type `string`");if(e.length<2)return r?e:e.toLowerCase();let n=`$1${t}$2`,a=e.replace(/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,n);return r?XFc(a,t):a.replace(/(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,n).toLowerCase()}var kJi=Nt(DJi(),1),F9r=Nt(Pc(),1),xJi=({children:e})=>{let t=(0,G9r.useMemo)(()=>typeof e=="string"?N9r(e,{separator:"-"}):e,[e]),r=(0,G9r.useMemo)(()=>t&&typeof t=="string"?(0,kJi.default)(t.split(":")[0]).color:"#d75f00",[t]);return t?Array.isArray(t)?t.map(n=>(0,F9r.jsx)(x9r.Text,{color:r,children:n},OW())):(0,F9r.jsx)(x9r.Text,{color:r,children:t}):null};var JDe=Nt(Al(),1);var WUi=Nt(OJi(),1);var O9r="@mikro-orm-sql",M9r="@mikro-orm-params";var tZc;tZc=new WeakMap;var Zj=Nt(Al(),1),Vvt=Nt(Al(),1);var kUi=Nt(HJi(),1),_Ui=Object.defineProperty,rZc=Object.defineProperties,nZc=Object.getOwnPropertyDescriptors,Zvt=Object.getOwnPropertySymbols,yUi=Object.prototype.hasOwnProperty,bUi=Object.prototype.propertyIsEnumerable,YJi=(e,t,r)=>t in e?_Ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qk=(e,t)=>{for(var r in t||(t={}))yUi.call(t,r)&&YJi(e,r,t[r]);if(Zvt)for(var r of Zvt(t))bUi.call(t,r)&&YJi(e,r,t[r]);return e},tL=(e,t)=>rZc(e,nZc(t)),iZc=(e,t)=>{var r={};for(var n in e)yUi.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Zvt)for(var n of Zvt(e))t.indexOf(n)<0&&bUi.call(e,n)&&(r[n]=e[n]);return r},sZc=(e,t)=>{for(var r in t)_Ui(e,r,{get:t[r],enumerable:!0})},EUi={};sZc(EUi,{bigquery:()=>EZc,db2:()=>ZZc,db2i:()=>QZc,hive:()=>eLc,mariadb:()=>lLc,mysql:()=>mLc,n1ql:()=>ZLc,plsql:()=>QLc,postgresql:()=>t9c,redshift:()=>u9c,singlestoredb:()=>gVc,snowflake:()=>_Vc,spark:()=>C9c,sql:()=>V9c,sqlite:()=>R9c,tidb:()=>wLc,transactsql:()=>rVc,trino:()=>J9c});var oc=e=>e.flatMap(oZc),oZc=e=>xvt(cZc(e)).map(aZc),aZc=e=>e.replace(/ +/g," ").trim(),cZc=e=>({type:"mandatory_block",items:AVr(e,0)[0]}),AVr=(e,t,r)=>{let n=[];for(;e[t];){let[a,o]=lZc(e,t);if(n.push(a),t=o,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(r!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(r)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},lZc=(e,t)=>{let r=[];for(;;){let[n,a]=uZc(e,t);if(n)r.push(n),t=a;else break}return r.length===1?[r[0],t]:[{type:"concatenation",items:r},t]},uZc=(e,t)=>{if(e[t]==="{")return gZc(e,t+1);if(e[t]==="[")return AZc(e,t+1);{let r="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)r+=e[t],t++;return[r,t]}},gZc=(e,t)=>{let[r,n]=AVr(e,t,"}");return[{type:"mandatory_block",items:r},n]},AZc=(e,t)=>{let[r,n]=AVr(e,t,"]");return[{type:"optional_block",items:r},n]},xvt=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(xvt).reduce(dZc,[""]);if(e.type==="mandatory_block")return e.items.flatMap(xvt);if(e.type==="optional_block")return["",...e.items.flatMap(xvt)];throw new Error(`Unknown node type: ${e}`)},dZc=(e,t)=>{let r=[];for(let n of e)for(let a of t)r.push(n+a);return r},SUi=(e=>(e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_PHRASE="RESERVED_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF",e))(SUi||{}),vUi=e=>({type:"EOF",raw:"\xABEOF\xBB",text:"\xABEOF\xBB",start:e}),XDe=vUi(1/0),YDe=e=>t=>t.type===e.type&&t.text===e.text,jCe={ARRAY:YDe({text:"ARRAY",type:"RESERVED_DATA_TYPE"}),BY:YDe({text:"BY",type:"RESERVED_KEYWORD"}),SET:YDe({text:"SET",type:"RESERVED_CLAUSE"}),STRUCT:YDe({text:"STRUCT",type:"RESERVED_DATA_TYPE"}),WINDOW:YDe({text:"WINDOW",type:"RESERVED_CLAUSE"}),VALUES:YDe({text:"VALUES",type:"RESERVED_CLAUSE"})},BUi=e=>e==="RESERVED_DATA_TYPE"||e==="RESERVED_KEYWORD"||e==="RESERVED_FUNCTION_NAME"||e==="RESERVED_PHRASE"||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="ARRAY_KEYWORD"||e==="CASE"||e==="END"||e==="WHEN"||e==="ELSE"||e==="THEN"||e==="LIMIT"||e==="BETWEEN"||e==="AND"||e==="OR"||e==="XOR",pZc=e=>e==="AND"||e==="OR"||e==="XOR",fZc=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],IZc=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],hZc=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],mZc=oc(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),CZc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),QJi=oc(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),H9r=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),_Zc=oc(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),yZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),bZc=oc(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),EZc={name:"bigquery",tokenizerOptions:{reservedSelect:mZc,reservedClauses:[...CZc,...H9r,...QJi],reservedSetOperations:_Zc,reservedJoins:yZc,reservedPhrases:bZc,reservedKeywords:IZc,reservedDataTypes:hZc,reservedFunctionNames:fZc,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:SZc},formatOptions:{onelineClauses:[...QJi,...H9r],tabularOnelineClauses:H9r}};function SZc(e){return vZc(BZc(e))}function vZc(e){let t=XDe;return e.map(r=>r.text==="OFFSET"&&t.text==="["?(t=r,tL(qk({},r),{type:"RESERVED_FUNCTION_NAME"})):(t=r,r))}function BZc(e){var t;let r=[];for(let n=0;nt=>t.type==="IDENTIFIER"||t.type==="COMMA"?t[e]+" ":t[e];function wZc(e,t){let r=0;for(let n=t;n"?r--:a.text===">>"&&(r-=2),r===0)return n}return e.length-1}var TZc=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],RZc=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],NZc=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],DZc=oc(["SELECT [ALL | DISTINCT]"]),kZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),JJi=oc(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),Y9r=oc(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),xZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),GZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),FZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),ZZc={name:"db2",tokenizerOptions:{reservedSelect:DZc,reservedClauses:[...kZc,...JJi,...Y9r],reservedSetOperations:xZc,reservedJoins:GZc,reservedPhrases:FZc,reservedKeywords:RZc,reservedDataTypes:NZc,reservedFunctionNames:TZc,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","\xAC=","\xAC>","\xAC<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...JJi,...Y9r],tabularOnelineClauses:Y9r}},LZc=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],VZc=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],PZc=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],WZc=oc(["SELECT [ALL | DISTINCT]"]),OZc=oc(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),UJi=oc(["CREATE [OR REPLACE] TABLE"]),Q9r=oc(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),MZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),HZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),YZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),QZc={name:"db2i",tokenizerOptions:{reservedSelect:WZc,reservedClauses:[...OZc,...UJi,...Q9r],reservedSetOperations:MZc,reservedJoins:HZc,reservedPhrases:YZc,reservedKeywords:VZc,reservedDataTypes:PZc,reservedFunctionNames:LZc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","\xAC=","\xAC>","\xAC<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...UJi,...Q9r],tabularOnelineClauses:Q9r}},XZc=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],JZc=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],UZc=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],KZc=oc(["SELECT [ALL | DISTINCT]"]),jZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),KJi=oc(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),X9r=oc(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),zZc=oc(["UNION [ALL | DISTINCT]"]),qZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),$Zc=oc(["{ROWS | RANGE} BETWEEN"]),eLc={name:"hive",tokenizerOptions:{reservedSelect:KZc,reservedClauses:[...jZc,...KJi,...X9r],reservedSetOperations:zZc,reservedJoins:qZc,reservedPhrases:$Zc,reservedKeywords:JZc,reservedDataTypes:UZc,reservedFunctionNames:XZc,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...KJi,...X9r],tabularOnelineClauses:X9r}};function Lvt(e){return e.map((t,r)=>{let n=e[r+1]||XDe;if(jCe.SET(t)&&n.text==="(")return tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"});let a=e[r-1]||XDe;return jCe.VALUES(t)&&a.text==="="?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t})}var tLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],rLc=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],nLc=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],iLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),sLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),jJi=oc(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),J9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),oLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),aLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),cLc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),lLc={name:"mariadb",tokenizerOptions:{reservedSelect:iLc,reservedClauses:[...sLc,...jJi,...J9r],reservedSetOperations:oLc,reservedJoins:aLc,reservedPhrases:cLc,supportsXor:!0,reservedKeywords:tLc,reservedDataTypes:rLc,reservedFunctionNames:nLc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...jJi,...J9r],tabularOnelineClauses:J9r}},uLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],gLc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],ALc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],dLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),pLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),zJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),U9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),fLc=oc(["UNION [ALL | DISTINCT]"]),ILc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),hLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),mLc={name:"mysql",tokenizerOptions:{reservedSelect:dLc,reservedClauses:[...pLc,...zJi,...U9r],reservedSetOperations:fLc,reservedJoins:ILc,reservedPhrases:hLc,supportsXor:!0,reservedKeywords:uLc,reservedDataTypes:gLc,reservedFunctionNames:ALc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...zJi,...U9r],tabularOnelineClauses:U9r}},CLc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],_Lc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],yLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],bLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),ELc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),qJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),K9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),SLc=oc(["UNION [ALL | DISTINCT]"]),vLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),BLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),wLc={name:"tidb",tokenizerOptions:{reservedSelect:bLc,reservedClauses:[...ELc,...qJi,...K9r],reservedSetOperations:SLc,reservedJoins:vLc,reservedPhrases:BLc,supportsXor:!0,reservedKeywords:CLc,reservedDataTypes:_Lc,reservedFunctionNames:yLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...qJi,...K9r],tabularOnelineClauses:K9r}},TLc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],RLc=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],NLc=[],DLc=oc(["SELECT [ALL | DISTINCT]"]),kLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),$Ji=oc(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),xLc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),GLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),FLc=oc(["{ROWS | RANGE | GROUPS} BETWEEN"]),ZLc={name:"n1ql",tokenizerOptions:{reservedSelect:DLc,reservedClauses:[...kLc,...$Ji],reservedSetOperations:xLc,reservedJoins:GLc,reservedPhrases:FLc,supportsXor:!0,reservedKeywords:RLc,reservedDataTypes:NLc,reservedFunctionNames:TLc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:$Ji}},LLc=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],VLc=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],PLc=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],WLc=oc(["SELECT [ALL | DISTINCT | UNIQUE]"]),OLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),eUi=oc(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),j9r=oc(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),MLc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),HLc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),YLc=oc(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),QLc={name:"plsql",tokenizerOptions:{reservedSelect:WLc,reservedClauses:[...OLc,...eUi,...j9r],reservedSetOperations:MLc,reservedJoins:HLc,reservedPhrases:YLc,supportsXor:!0,reservedKeywords:LLc,reservedDataTypes:VLc,reservedFunctionNames:PLc,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},paramChars:{},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:XLc},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...eUi,...j9r],tabularOnelineClauses:j9r}};function XLc(e){let t=XDe;return e.map(r=>jCe.SET(r)&&jCe.BY(t)?tL(qk({},r),{type:"RESERVED_KEYWORD"}):(BUi(r.type)&&(t=r),r))}var JLc=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","UUID","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],ULc=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],KLc=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","VARCHAR","XML","ZONE"],jLc=oc(["SELECT [ALL | DISTINCT]"]),zLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),tUi=oc(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),z9r=oc(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE FUNCTION","CREATE GROUP","CREATE INDEX","CREATE LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE RULE","CREATE SCHEMA","CREATE SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE TRANSFORM","CREATE TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),qLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),$Lc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),e9c=oc(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE","IS [NOT] DISTINCT FROM"]),t9c={name:"postgresql",tokenizerOptions:{reservedSelect:jLc,reservedClauses:[...zLc,...tUi,...z9r],reservedSetOperations:qLc,reservedJoins:$Lc,reservedPhrases:e9c,reservedKeywords:ULc,reservedDataTypes:KLc,reservedFunctionNames:JLc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":"]},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...tUi,...z9r],tabularOnelineClauses:z9r}},r9c=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],n9c=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],i9c=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],s9c=oc(["SELECT [ALL | DISTINCT]"]),o9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),rUi=oc(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),q9r=oc(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),a9c=oc(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),c9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),l9c=oc(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),u9c={name:"redshift",tokenizerOptions:{reservedSelect:s9c,reservedClauses:[...o9c,...rUi,...q9r],reservedSetOperations:a9c,reservedJoins:c9c,reservedPhrases:l9c,reservedKeywords:n9c,reservedDataTypes:i9c,reservedFunctionNames:r9c,stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...rUi,...q9r],tabularOnelineClauses:q9r}},g9c=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],A9c=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],d9c=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],p9c=oc(["SELECT [ALL | DISTINCT]"]),f9c=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),nUi=oc(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),$9r=oc(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),I9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),h9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),m9c=oc(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),C9c={name:"spark",tokenizerOptions:{reservedSelect:p9c,reservedClauses:[...f9c,...nUi,...$9r],reservedSetOperations:I9c,reservedJoins:h9c,reservedPhrases:m9c,supportsXor:!0,reservedKeywords:g9c,reservedDataTypes:A9c,reservedFunctionNames:d9c,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:_9c},formatOptions:{onelineClauses:[...nUi,...$9r],tabularOnelineClauses:$9r}};function _9c(e){return e.map((t,r)=>{let n=e[r-1]||XDe,a=e[r+1]||XDe;return jCe.WINDOW(t)&&a.type==="OPEN_PAREN"?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t.text==="ITEMS"&&t.type==="RESERVED_KEYWORD"&&!(n.text==="COLLECTION"&&a.text==="TERMINATED")?tL(qk({},t),{type:"IDENTIFIER",text:t.raw}):t})}var y9c=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],b9c=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","GROUPS","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],E9c=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],S9c=oc(["SELECT [ALL | DISTINCT]"]),v9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET"]),iUi=oc(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),eVr=oc(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),B9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),w9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),T9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN"]),R9c={name:"sqlite",tokenizerOptions:{reservedSelect:S9c,reservedClauses:[...v9c,...iUi,...eVr],reservedSetOperations:B9c,reservedJoins:w9c,reservedPhrases:T9c,reservedKeywords:b9c,reservedDataTypes:E9c,reservedFunctionNames:y9c,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...iUi,...eVr],tabularOnelineClauses:eVr}},N9c=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],D9c=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],k9c=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],x9c=oc(["SELECT [ALL | DISTINCT]"]),G9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),sUi=oc(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),tVr=oc(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),F9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),Z9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),L9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),V9c={name:"sql",tokenizerOptions:{reservedSelect:x9c,reservedClauses:[...G9c,...sUi,...tVr],reservedSetOperations:F9c,reservedJoins:Z9c,reservedPhrases:L9c,reservedKeywords:D9c,reservedDataTypes:k9c,reservedFunctionNames:N9c,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...sUi,...tVr],tabularOnelineClauses:tVr}},P9c=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],W9c=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],O9c=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],M9c=oc(["SELECT [ALL | DISTINCT]"]),H9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),oUi=oc(["CREATE TABLE [IF NOT EXISTS]"]),rVr=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),Y9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),Q9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),X9c=oc(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),J9c={name:"trino",tokenizerOptions:{reservedSelect:M9c,reservedClauses:[...H9c,...oUi,...rVr],reservedSetOperations:Y9c,reservedJoins:Q9c,reservedPhrases:X9c,reservedKeywords:W9c,reservedDataTypes:O9c,reservedFunctionNames:P9c,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...oUi,...rVr],tabularOnelineClauses:rVr}},U9c=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],K9c=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","ABSOLUTE","ACTION","ADA","ALLOCATE","ARE","ASSERTION","AT","AVG","BIT_LENGTH","BOTH","CASCADED","CAST","CATALOG","CHARACTER_LENGTH","CHAR_LENGTH","COLLATION","CONNECT","CONNECTION","CONSTRAINTS","CORRESPONDING","COUNT","DAY","DEFERRABLE","DEFERRED","DESCRIBE","DESCRIPTOR","DIAGNOSTICS","DISCONNECT","DOMAIN","END-EXEC","EXCEPTION","EXTRACT","FALSE","FIRST","FORTRAN","FOUND","GET","GLOBAL","GO","HOUR","IMMEDIATE","INCLUDE","INDICATOR","INITIALLY","INPUT","INSENSITIVE","INTERVAL","ISOLATION","LANGUAGE","LAST","LEADING","LEVEL","LOCAL","LOWER","MATCH","MAX","MIN","MINUTE","MODULE","MONTH","NAMES","NATURAL","NEXT","NO","NONE","OCTET_LENGTH","ONLY","OUTPUT","OVERLAPS","PAD","PARTIAL","PASCAL","POSITION","PREPARE","PRESERVE","PRIOR","PRIVILEGES","RELATIVE","ROWS","SCROLL","SECOND","SECTION","SESSION","SIZE","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","SUBSTRING","SUM","TEMPORARY","TIMEZONE_HOUR","TIMEZONE_MINUTE","TRAILING","TRANSLATE","TRANSLATION","TRIM","TRUE","UNKNOWN","UPPER","USAGE","VALUE","WHENEVER","WORK","WRITE","YEAR","ZONE"],j9c=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],z9c=oc(["SELECT [ALL | DISTINCT]"]),q9c=oc(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET","CREATE [OR ALTER] {PROC | PROCEDURE}"]),aUi=oc(["CREATE TABLE"]),nVr=oc(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLLATE","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","FUNCTION","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION FUNCTION","PARTITION SCHEME","PROCEDURE","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),$9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),eVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),tVc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),rVc={name:"transactsql",tokenizerOptions:{reservedSelect:z9c,reservedClauses:[...q9c,...aUi,...nVr],reservedSetOperations:$9c,reservedJoins:eVc,reservedPhrases:tVc,reservedKeywords:K9c,reservedDataTypes:j9c,reservedFunctionNames:U9c,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]}],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...aUi,...nVr],tabularOnelineClauses:nVr}},nVc=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],iVc=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],sVc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],oVc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),aVc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),cUi=oc(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),iVr=oc(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),cVc=oc(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),lVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),uVc=oc(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),gVc={name:"singlestoredb",tokenizerOptions:{reservedSelect:oVc,reservedClauses:[...aVc,...cUi,...iVr],reservedSetOperations:cVc,reservedJoins:lVc,reservedPhrases:uVc,reservedKeywords:nVc,reservedDataTypes:iVc,reservedFunctionNames:sVc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:Lvt},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...cUi,...iVr],tabularOnelineClauses:iVr}},AVc=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER \u2014 Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],dVc=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],pVc=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],fVc=oc(["SELECT [ALL | DISTINCT]"]),IVc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),lUi=oc(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),sVr=oc(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),hVc=oc(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),mVc=oc(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),CVc=oc(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),_Vc={name:"snowflake",tokenizerOptions:{reservedSelect:fVc,reservedClauses:[...IVc,...lUi,...sVr],reservedSetOperations:hVc,reservedJoins:mVc,reservedPhrases:CVc,reservedKeywords:dVc,reservedDataTypes:pVc,reservedFunctionNames:AVc,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":="],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...lUi,...sVr],tabularOnelineClauses:sVr}},MKe=e=>e[e.length-1],wUi=e=>e.sort((t,r)=>r.length-t.length||t.localeCompare(r)),Gvt=e=>e.replace(/\s+/gu," "),oVr=e=>/\n/.test(e),b4=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),uUi=/\s+/uy,zCe=e=>new RegExp(`(?:${e})`,"uy"),yVc=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),bVc=e=>e+"(?:-"+e+")*",EVc=({prefixes:e,requirePrefix:t})=>`(?:${e.map(yVc).join("|")}${t?"":"|"})`,SVc=e=>new RegExp(`(?:${e.map(b4).join("|")}).*?(?=\r +`,raw:!0})),t==="development"&&a.push(new this.webpack.HotModuleReplacementPlugin),a}};import QFc from"node:events";import{PassThrough as XFc}from"node:stream";var y4=Nt(bDe(),1);var LLr="@namespace";var vJi=Nt(bDe(),1),BJi=Nt(xKe(),1),wJi=Nt(xKe(),1),Bvt=Nt(bDe(),1);var sJi=Nt(E9r(),1),oJi=Nt(xKe(),1),Cvt=class extends oJi.ConsoleLogRecordExporter{export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));process.stdout.write(`${a} +`)}r?.({code:sJi.ExportResultCode.SUCCESS})}};var EJi=Nt(E9r(),1),SJi=Nt(xKe(),1);var w9r=Nt(fJi(),1),T9r=Nt(yJi(),1);import{isMainThread as LFc}from"node:worker_threads";var VFc=w9r.default.default||w9r.default;function Evt(){}function PFc(e,t){e.destroyed||(t==="beforeExit"?(e.flush(),e.on("drain",()=>{e.end()})):e.flushSync())}var bJi=()=>{let e=new VFc({fd:process.stdout.fd||1});e.on("error",t),LFc&&(T9r.default.register(e,PFc),e.on("close",()=>{T9r.default.unregister(e)}));function t(r){if(r.code==="EPIPE"){e.write=Evt,e.end=Evt,e.flushSync=Evt,e.destroy=Evt;return}e.removeListener("error",t),e.emit("error",r)}return e};var WFc=function(e,t,r,n,a){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?a.call(e,r):a?a.value=r:t.set(e,r),r},OFc=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Svt,vvt=class extends SJi.ConsoleLogRecordExporter{constructor(){super(),Svt.set(this,void 0),WFc(this,Svt,bJi(),"f")}export(t,r){this.sendLogRecords(t,r)}sendLogRecords(t,r){for(let n of t){let a=JSON.stringify(this._exportInfo(n));OFc(this,Svt,"f").write(`${a} +`)}r?.({code:EJi.ExportResultCode.SUCCESS})}};Svt=new WeakMap;var wvt=class e{static getLoggerProvider(){if(!e.initialized&&Bvt.logs.getLoggerProvider()instanceof vJi.NoopLoggerProvider){let t=new BJi.LoggerProvider;t.addLogRecordProcessor(new wJi.SimpleLogRecordProcessor(process.env.JEST_WORKER_ID?new Cvt:new vvt)),Bvt.logs.setGlobalLoggerProvider(t),e.initialized=!0}return Bvt.logs.getLoggerProvider()}};wvt.initialized=!1;var R9r=Nt(bDe(),1),BMu=Object.keys(R9r.SeverityNumber).reduce((e,t)=>({...e,[R9r.SeverityNumber[t]]:t}),{});import{fork as MFc}from"node:child_process";import{join as HFc}from"node:path";var Tvt=class{constructor(t={}){this.options=t}info(t){this.options.stdout&&this.options.stdout.write(Buffer.from(JSON.stringify({body:t,severityNumber:9,attributes:{"@namespace":"webpack:start-server"}})))}error(t){this.options.stderr&&this.options.stderr.write(Buffer.from(JSON.stringify({body:t.message,severityNumber:17,attributes:{"@namespace":"webpack:start-server","@stack":t.stack}})))}};var YFc=({execArgv:e},t=process.execArgv)=>({silent:!0,...e?{execArgv:[...t,...e]}:{}}),Rvt=class{options;entryFile=null;worker=null;initialized=!1;logger;constructor(t={}){this.logger=new Tvt(t),this.options=t}apply(t){t.hooks.afterEmit.tapAsync({name:"StartServerPlugin"},this.afterEmit)}afterEmit=(t,r)=>{this.initialized?(this.worker?.connected&&this.worker.pid&&process.kill(this.worker.pid),this.startServer(t,r)):(this.initialized=!0,r())};startServer=(t,r)=>{this.logger.info("Starting server...");let{path:n}=t.compiler.options.output;n&&(this.entryFile=HFc(n,"index.js"),this.runWorker(this.entryFile,a=>{this.worker=a,r()}))};runWorker(t,r){let n=MFc(t,[],YFc(this.options));this.options.stdout&&n.stdout?.pipe(this.options.stdout,{end:!1}),this.options.stderr&&n.stderr?.pipe(this.options.stderr,{end:!1}),setTimeout(()=>{r(n)},0)}};var MDe=class e extends QFc{constructor(r,n,a){super();this.webpack=r;this.config=n;this.execArgv=a}static async initialize(r){let{webpack:n,tsLoaderPath:a,nodeLoaderPath:o,protoLoaderPath:l}=await import("@atls/code-runtime/webpack"),A=new o2t(n,{nodeLoader:o,tsLoader:a,protoLoader:l},r);return new e(n,A,await tVi(r))}async build(){let r=this.webpack(await this.config.build("production",[new this.webpack.ProgressPlugin((n,a)=>{this.emit("build:progress",{percent:n*100,message:a})})]));return new Promise((n,a)=>{r.run((o,l)=>{if(this.emit("end",{error:o,stats:l}),o)o.message?n([o]):a(o);else if(l){let{errors:A=[],warnings:f=[]}=l.toJson();n([...A.map(I=>({record:I,severityNumber:y4.SeverityNumber.ERROR})),...f.map(I=>({record:I,severityNumber:y4.SeverityNumber.WARN}))])}else n([])})})}async watch(r){let n=new XFc;return n.on("data",a=>{a.toString().split(/\r?\n/).filter(Boolean).forEach(o=>{try{r(JSON.parse(o))}catch{r({severityNumber:y4.SeverityNumber.INFO,body:o})}})}),this.webpack(await this.config.build("development",[new Rvt({stdout:n,stderr:n,execArgv:this.execArgv}),new this.webpack.ProgressPlugin((a,o)=>{this.emit("build:progress",{percent:a*100,message:o})})])).watch({},(a,o)=>{if(this.emit("end",{error:a,stats:o}),a)r(a);else if(o){let{errors:l=[],warnings:A=[]}=o.toJson();A.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.WARN})}),l.forEach(f=>{r({record:f,severityNumber:y4.SeverityNumber.ERROR})})}})}};var YUi=Nt(el(),1);$c();var TJi=Nt(Al(),1),NJi=Nt(Pc(),1),RJi=({children:e})=>e?(0,NJi.jsx)(TJi.Text,{children:e}):null;var x9r=Nt(Al(),1);var G9r=Nt(Ec(),1);var JFc=(e,t)=>(e=e.replace(/((?r.toLowerCase()),e.replace(/(\p{Uppercase_Letter}+)(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,(r,n,a)=>n+t+a.toLowerCase()));function N9r(e,{separator:t="_",preserveConsecutiveUppercase:r=!1}={}){if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("The `text` and `separator` arguments should be of type `string`");if(e.length<2)return r?e:e.toLowerCase();let n=`$1${t}$2`,a=e.replace(/([\p{Lowercase_Letter}\d])(\p{Uppercase_Letter})/gu,n);return r?JFc(a,t):a.replace(/(\p{Uppercase_Letter})(\p{Uppercase_Letter}\p{Lowercase_Letter}+)/gu,n).toLowerCase()}var kJi=Nt(DJi(),1),F9r=Nt(Pc(),1),xJi=({children:e})=>{let t=(0,G9r.useMemo)(()=>typeof e=="string"?N9r(e,{separator:"-"}):e,[e]),r=(0,G9r.useMemo)(()=>t&&typeof t=="string"?(0,kJi.default)(t.split(":")[0]).color:"#d75f00",[t]);return t?Array.isArray(t)?t.map(n=>(0,F9r.jsx)(x9r.Text,{color:r,children:n},OW())):(0,F9r.jsx)(x9r.Text,{color:r,children:t}):null};var JDe=Nt(Al(),1);var WUi=Nt(OJi(),1);var O9r="@mikro-orm-sql",M9r="@mikro-orm-params";var rZc;rZc=new WeakMap;var Zj=Nt(Al(),1),Vvt=Nt(Al(),1);var kUi=Nt(HJi(),1),_Ui=Object.defineProperty,nZc=Object.defineProperties,iZc=Object.getOwnPropertyDescriptors,Zvt=Object.getOwnPropertySymbols,yUi=Object.prototype.hasOwnProperty,bUi=Object.prototype.propertyIsEnumerable,YJi=(e,t,r)=>t in e?_Ui(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,qk=(e,t)=>{for(var r in t||(t={}))yUi.call(t,r)&&YJi(e,r,t[r]);if(Zvt)for(var r of Zvt(t))bUi.call(t,r)&&YJi(e,r,t[r]);return e},tL=(e,t)=>nZc(e,iZc(t)),sZc=(e,t)=>{var r={};for(var n in e)yUi.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Zvt)for(var n of Zvt(e))t.indexOf(n)<0&&bUi.call(e,n)&&(r[n]=e[n]);return r},oZc=(e,t)=>{for(var r in t)_Ui(e,r,{get:t[r],enumerable:!0})},EUi={};oZc(EUi,{bigquery:()=>SZc,db2:()=>LZc,db2i:()=>XZc,hive:()=>tLc,mariadb:()=>uLc,mysql:()=>CLc,n1ql:()=>LLc,plsql:()=>XLc,postgresql:()=>r9c,redshift:()=>g9c,singlestoredb:()=>AVc,snowflake:()=>yVc,spark:()=>_9c,sql:()=>P9c,sqlite:()=>N9c,tidb:()=>TLc,transactsql:()=>nVc,trino:()=>U9c});var oc=e=>e.flatMap(aZc),aZc=e=>xvt(lZc(e)).map(cZc),cZc=e=>e.replace(/ +/g," ").trim(),lZc=e=>({type:"mandatory_block",items:AVr(e,0)[0]}),AVr=(e,t,r)=>{let n=[];for(;e[t];){let[a,o]=uZc(e,t);if(n.push(a),t=o,e[t]==="|")t++;else if(e[t]==="}"||e[t]==="]"){if(r!==e[t])throw new Error(`Unbalanced parenthesis in: ${e}`);return t++,[n,t]}else if(t===e.length){if(r)throw new Error(`Unbalanced parenthesis in: ${e}`);return[n,t]}else throw new Error(`Unexpected "${e[t]}"`)}return[n,t]},uZc=(e,t)=>{let r=[];for(;;){let[n,a]=gZc(e,t);if(n)r.push(n),t=a;else break}return r.length===1?[r[0],t]:[{type:"concatenation",items:r},t]},gZc=(e,t)=>{if(e[t]==="{")return AZc(e,t+1);if(e[t]==="[")return dZc(e,t+1);{let r="";for(;e[t]&&/[A-Za-z0-9_ ]/.test(e[t]);)r+=e[t],t++;return[r,t]}},AZc=(e,t)=>{let[r,n]=AVr(e,t,"}");return[{type:"mandatory_block",items:r},n]},dZc=(e,t)=>{let[r,n]=AVr(e,t,"]");return[{type:"optional_block",items:r},n]},xvt=e=>{if(typeof e=="string")return[e];if(e.type==="concatenation")return e.items.map(xvt).reduce(pZc,[""]);if(e.type==="mandatory_block")return e.items.flatMap(xvt);if(e.type==="optional_block")return["",...e.items.flatMap(xvt)];throw new Error(`Unknown node type: ${e}`)},pZc=(e,t)=>{let r=[];for(let n of e)for(let a of t)r.push(n+a);return r},SUi=(e=>(e.QUOTED_IDENTIFIER="QUOTED_IDENTIFIER",e.IDENTIFIER="IDENTIFIER",e.STRING="STRING",e.VARIABLE="VARIABLE",e.RESERVED_DATA_TYPE="RESERVED_DATA_TYPE",e.RESERVED_PARAMETERIZED_DATA_TYPE="RESERVED_PARAMETERIZED_DATA_TYPE",e.RESERVED_KEYWORD="RESERVED_KEYWORD",e.RESERVED_FUNCTION_NAME="RESERVED_FUNCTION_NAME",e.RESERVED_PHRASE="RESERVED_PHRASE",e.RESERVED_SET_OPERATION="RESERVED_SET_OPERATION",e.RESERVED_CLAUSE="RESERVED_CLAUSE",e.RESERVED_SELECT="RESERVED_SELECT",e.RESERVED_JOIN="RESERVED_JOIN",e.ARRAY_IDENTIFIER="ARRAY_IDENTIFIER",e.ARRAY_KEYWORD="ARRAY_KEYWORD",e.CASE="CASE",e.END="END",e.WHEN="WHEN",e.ELSE="ELSE",e.THEN="THEN",e.LIMIT="LIMIT",e.BETWEEN="BETWEEN",e.AND="AND",e.OR="OR",e.XOR="XOR",e.OPERATOR="OPERATOR",e.COMMA="COMMA",e.ASTERISK="ASTERISK",e.PROPERTY_ACCESS_OPERATOR="PROPERTY_ACCESS_OPERATOR",e.OPEN_PAREN="OPEN_PAREN",e.CLOSE_PAREN="CLOSE_PAREN",e.LINE_COMMENT="LINE_COMMENT",e.BLOCK_COMMENT="BLOCK_COMMENT",e.DISABLE_COMMENT="DISABLE_COMMENT",e.NUMBER="NUMBER",e.NAMED_PARAMETER="NAMED_PARAMETER",e.QUOTED_PARAMETER="QUOTED_PARAMETER",e.NUMBERED_PARAMETER="NUMBERED_PARAMETER",e.POSITIONAL_PARAMETER="POSITIONAL_PARAMETER",e.CUSTOM_PARAMETER="CUSTOM_PARAMETER",e.DELIMITER="DELIMITER",e.EOF="EOF",e))(SUi||{}),vUi=e=>({type:"EOF",raw:"\xABEOF\xBB",text:"\xABEOF\xBB",start:e}),XDe=vUi(1/0),YDe=e=>t=>t.type===e.type&&t.text===e.text,jCe={ARRAY:YDe({text:"ARRAY",type:"RESERVED_DATA_TYPE"}),BY:YDe({text:"BY",type:"RESERVED_KEYWORD"}),SET:YDe({text:"SET",type:"RESERVED_CLAUSE"}),STRUCT:YDe({text:"STRUCT",type:"RESERVED_DATA_TYPE"}),WINDOW:YDe({text:"WINDOW",type:"RESERVED_CLAUSE"}),VALUES:YDe({text:"VALUES",type:"RESERVED_CLAUSE"})},BUi=e=>e==="RESERVED_DATA_TYPE"||e==="RESERVED_KEYWORD"||e==="RESERVED_FUNCTION_NAME"||e==="RESERVED_PHRASE"||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="ARRAY_KEYWORD"||e==="CASE"||e==="END"||e==="WHEN"||e==="ELSE"||e==="THEN"||e==="LIMIT"||e==="BETWEEN"||e==="AND"||e==="OR"||e==="XOR",fZc=e=>e==="AND"||e==="OR"||e==="XOR",IZc=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"],hZc=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],mZc=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"],CZc=oc(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),_Zc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),QJi=oc(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),H9r=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),yZc=oc(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),bZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),EZc=oc(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),SZc={name:"bigquery",tokenizerOptions:{reservedSelect:CZc,reservedClauses:[..._Zc,...H9r,...QJi],reservedSetOperations:yZc,reservedJoins:bZc,reservedPhrases:EZc,reservedKeywords:hZc,reservedDataTypes:mZc,reservedFunctionNames:IZc,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:vZc},formatOptions:{onelineClauses:[...QJi,...H9r],tabularOnelineClauses:H9r}};function vZc(e){return BZc(wZc(e))}function BZc(e){let t=XDe;return e.map(r=>r.text==="OFFSET"&&t.text==="["?(t=r,tL(qk({},r),{type:"RESERVED_FUNCTION_NAME"})):(t=r,r))}function wZc(e){var t;let r=[];for(let n=0;nt=>t.type==="IDENTIFIER"||t.type==="COMMA"?t[e]+" ":t[e];function TZc(e,t){let r=0;for(let n=t;n"?r--:a.text===">>"&&(r-=2),r===0)return n}return e.length-1}var RZc=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"],NZc=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],DZc=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"],kZc=oc(["SELECT [ALL | DISTINCT]"]),xZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),JJi=oc(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),Y9r=oc(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),GZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),FZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),ZZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),LZc={name:"db2",tokenizerOptions:{reservedSelect:kZc,reservedClauses:[...xZc,...JJi,...Y9r],reservedSetOperations:GZc,reservedJoins:FZc,reservedPhrases:ZZc,reservedKeywords:NZc,reservedDataTypes:DZc,reservedFunctionNames:RZc,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","\xAC=","\xAC>","\xAC<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...JJi,...Y9r],tabularOnelineClauses:Y9r}},VZc=["ARRAY_AGG","AVG","CORR","CORRELATION","COUNT","COUNT_BIG","COVAR_POP","COVARIANCE","COVAR","COVAR_SAMP","COVARIANCE_SAMP","EVERY","GROUPING","JSON_ARRAYAGG","JSON_OBJECTAGG","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","SOME","STDDEV_POP","STDDEV","STDDEV_SAMP","SUM","VAR_POP","VARIANCE","VAR","VAR_SAMP","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","ANTILOG","ARRAY_MAX_CARDINALITY","ARRAY_TRIM","ASCII","ASIN","ATAN","ATAN2","ATANH","BASE64_DECODE","BASE64_ENCODE","BIT_LENGTH","BITAND","BITANDNOT","BITNOT","BITOR","BITXOR","BSON_TO_JSON","CARDINALITY","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","COALESCE","COMPARE_DECFLOAT","CONCAT","CONTAINS","COS","COSH","COT","CURDATE","CURTIME","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK_ISO","DAYOFWEEK","DAYOFYEAR","DAYS","DBPARTITIONNAME","DBPARTITIONNUM","DECFLOAT_FORMAT","DECFLOAT_SORTKEY","DECRYPT_BINARY","DECRYPT_BIT","DECRYPT_CHAR","DECRYPT_DB","DEGREES","DIFFERENCE","DIGITS","DLCOMMENT","DLLINKTYPE","DLURLCOMPLETE","DLURLPATH","DLURLPATHONLY","DLURLSCHEME","DLURLSERVER","DLVALUE","DOUBLE_PRECISION","DOUBLE","ENCRPYT","ENCRYPT_AES","ENCRYPT_AES256","ENCRYPT_RC2","ENCRYPT_TDES","EXP","EXTRACT","FIRST_DAY","FLOOR","GENERATE_UNIQUE","GET_BLOB_FROM_FILE","GET_CLOB_FROM_FILE","GET_DBCLOB_FROM_FILE","GET_XML_FILE","GETHINT","GREATEST","HASH_MD5","HASH_ROW","HASH_SHA1","HASH_SHA256","HASH_SHA512","HASH_VALUES","HASHED_VALUE","HEX","HEXTORAW","HOUR","HTML_ENTITY_DECODE","HTML_ENTITY_ENCODE","HTTP_DELETE_BLOB","HTTP_DELETE","HTTP_GET_BLOB","HTTP_GET","HTTP_PATCH_BLOB","HTTP_PATCH","HTTP_POST_BLOB","HTTP_POST","HTTP_PUT_BLOB","HTTP_PUT","IDENTITY_VAL_LOCAL","IFNULL","INSERT","INSTR","INTERPRET","ISFALSE","ISNOTFALSE","ISNOTTRUE","ISTRUE","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_UPDATE","JSON_VALUE","JULIAN_DAY","LAND","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LN","LNOT","LOCATE_IN_STRING","LOCATE","LOG10","LOR","LOWER","LPAD","LTRIM","MAX_CARDINALITY","MAX","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MQREAD","MQREADCLOB","MQRECEIVE","MQRECEIVECLOB","MQSEND","MULTIPLY_ALT","NEXT_DAY","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","OCTET_LENGTH","OVERLAY","PI","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","RADIANS","RAISE_ERROR","RANDOM","RAND","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RIGHT","ROUND_TIMESTAMP","ROUND","RPAD","RRN","RTRIM","SCORE","SECOND","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF_BIG","TIMESTAMPDIFF","TO_CHAR","TO_CLOB","TO_DATE","TO_NUMBER","TO_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM_ARRAY","TRIM","TRUNC_TIMESTAMP","TRUNC","TRUNCATE","UCASE","UPPER","URL_DECODE","URL_ENCODE","VALUE","VARBINARY_FORMAT","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT_BINARY","VARCHAR_FORMAT","VERIFY_GROUP_FOR_USER","WEEK_ISO","WEEK","WRAP","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XOR","XSLTRANSFORM","YEAR","ZONED","BASE_TABLE","HTTP_DELETE_BLOB_VERBOSE","HTTP_DELETE_VERBOSE","HTTP_GET_BLOB_VERBOSE","HTTP_GET_VERBOSE","HTTP_PATCH_BLOB_VERBOSE","HTTP_PATCH_VERBOSE","HTTP_POST_BLOB_VERBOSE","HTTP_POST_VERBOSE","HTTP_PUT_BLOB_VERBOSE","HTTP_PUT_VERBOSE","JSON_TABLE","MQREADALL","MQREADALLCLOB","MQRECEIVEALL","MQRECEIVEALLCLOB","XMLTABLE","UNPACK","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","RATIO_TO_REPORT","ROW_NUMBER","CAST"],PZc=["ABSENT","ACCORDING","ACCTNG","ACTION","ACTIVATE","ADD","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","APPEND","APPLNAME","ARRAY","ARRAY_AGG","ARRAY_TRIM","AS","ASC","ASENSITIVE","ASSOCIATE","ATOMIC","ATTACH","ATTRIBUTES","AUTHORIZATION","AUTONOMOUS","BEFORE","BEGIN","BETWEEN","BIND","BSON","BUFFERPOOL","BY","CACHE","CALL","CALLED","CARDINALITY","CASE","CAST","CHECK","CL","CLOSE","CLUSTER","COLLECT","COLLECTION","COLUMN","COMMENT","COMMIT","COMPACT","COMPARISONS","COMPRESS","CONCAT","CONCURRENT","CONDITION","CONNECT","CONNECT_BY_ROOT","CONNECTION","CONSTANT","CONSTRAINT","CONTAINS","CONTENT","CONTINUE","COPY","COUNT","COUNT_BIG","CREATE","CREATEIN","CROSS","CUBE","CUME_DIST","CURRENT","CURRENT_DATE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEACTIVATE","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFER","DEFINE","DEFINITION","DELETE","DELETING","DENSE_RANK","DENSERANK","DESC","DESCRIBE","DESCRIPTOR","DETACH","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DYNAMIC","EACH","ELSE","ELSEIF","EMPTY","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ENFORCED","ERROR","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTEND","EXTERNAL","EXTRACT","FALSE","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST_VALUE","FOR","FOREIGN","FORMAT","FREE","FREEPAGE","FROM","FULL","FUNCTION","GBPCACHE","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GROUP","HANDLER","HASH","HASH_ROW","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IGNORE","IMMEDIATE","IMPLICITLY","IN","INCLUDE","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDEXBP","INDICATOR","INF","INFINITY","INHERIT","INLINE","INNER","INOUT","INSENSITIVE","INSERT","INSERTING","INTEGRITY","INTERPRET","INTERSECT","INTO","IS","ISNULL","ISOLATION","ITERATE","JAVA","JOIN","JSON","JSON_ARRAY","JSON_ARRAYAGG","JSON_EXISTS","JSON_OBJECT","JSON_OBJECTAGG","JSON_QUERY","JSON_TABLE","JSON_VALUE","KEEP","KEY","KEYS","LABEL","LAG","LANGUAGE","LAST_VALUE","LATERAL","LEAD","LEAVE","LEFT","LEVEL2","LIKE","LIMIT","LINKTYPE","LISTAGG","LOCAL","LOCALDATE","LOCALTIME","LOCALTIMESTAMP","LOCATION","LOCATOR","LOCK","LOCKSIZE","LOG","LOGGED","LOOP","MAINTAINED","MASK","MATCHED","MATERIALIZED","MAXVALUE","MERGE","MICROSECOND","MICROSECONDS","MINPCTUSED","MINUTE","MINUTES","MINVALUE","MIRROR","MIXED","MODE","MODIFIES","MONTH","MONTHS","NAMESPACE","NAN","NATIONAL","NCHAR","NCLOB","NESTED","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT","NOTNULL","NTH_VALUE","NTILE","NULL","NULLS","NVARCHAR","OBID","OBJECT","OF","OFF","OFFSET","OLD","OLD_TABLE","OMIT","ON","ONLY","OPEN","OPTIMIZE","OPTION","OR","ORDER","ORDINALITY","ORGANIZE","OUT","OUTER","OVER","OVERLAY","OVERRIDING","PACKAGE","PADDED","PAGE","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSING","PASSWORD","PATH","PCTFREE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PERIOD","PERMISSION","PIECESIZE","PIPE","PLAN","POSITION","PREPARE","PREVVAL","PRIMARY","PRIOR","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PROGRAMID","QUERY","RANGE","RANK","RATIO_TO_REPORT","RCDFMT","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","REGEXP_LIKE","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNING","RETURNS","REVOKE","RID","RIGHT","ROLLBACK","ROLLUP","ROUTINE","ROW","ROW_NUMBER","ROWNUMBER","ROWS","RRN","RUN","SAVEPOINT","SBCS","SCALAR","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURED","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SKIP","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","SQLIND_DEFAULT","SQLIND_UNASSIGNED","STACKED","START","STARTING","STATEMENT","STATIC","STOGROUP","SUBSTRING","SUMMARY","SYNONYM","SYSTEM_TIME","SYSTEM_USER","TABLE","TABLESPACE","TABLESPACES","TAG","THEN","THREADSAFE","TO","TRANSACTION","TRANSFER","TRIGGER","TRIM","TRIM_ARRAY","TRUE","TRUNCATE","TRY_CAST","TYPE","UNDO","UNION","UNIQUE","UNIT","UNKNOWN","UNNEST","UNTIL","UPDATE","UPDATING","URI","USAGE","USE","USER","USERID","USING","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VERSIONING","VIEW","VOLATILE","WAIT","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHIN","WITHOUT","WRAPPED","WRAPPER","WRITE","WRKSTNNAME","XMLAGG","XMLATTRIBUTES","XMLCAST","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLGROUP","XMLNAMESPACES","XMLPARSE","XMLPI","XMLROW","XMLSERIALIZE","XMLTABLE","XMLTEXT","XMLVALIDATE","XSLTRANSFORM","XSROBJECT","YEAR","YEARS","YES","ZONE"],WZc=["ARRAY","BIGINT","BINARY","BIT","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATA","DATALINK","DATE","DBCLOB","DECFLOAT","DECIMAL","DEC","DOUBLE","DOUBLE PRECISION","FLOAT","GRAPHIC","INT","INTEGER","LONG","NUMERIC","REAL","ROWID","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC","XML"],OZc=oc(["SELECT [ALL | DISTINCT]"]),MZc=oc(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),UJi=oc(["CREATE [OR REPLACE] TABLE"]),Q9r=oc(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","HOLD LOCATOR","INCLUDE","LABEL ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","LABEL ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","LOCK TABLE","OPEN","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX] TO","REVOKE {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT}","ROLLBACK [WORK] [HOLD | TO SAVEPOINT]","SAVEPOINT","SET CONNECTION","SET CURRENT {DEBUG MODE | DECFLOAT ROUNDING MODE | DEGREE | IMPLICIT XMLPARSE OPTION | TEMPORAL SYSTEM_TIME}","SET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","SET ENCRYPTION PASSWORD","SET OPTION","SET {[CURRENT [FUNCTION]] PATH | CURRENT_PATH}","SET RESULT SETS [WITH RETURN [TO CALLER | TO CLIENT]]","SET SESSION AUTHORIZATION","SET SESSION_USER","SET TRANSACTION","SIGNAL SQLSTATE [VALUE]","TAG","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}"]),HZc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),YZc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT | RIGHT] EXCEPTION JOIN","{INNER | CROSS} JOIN"]),QZc=oc(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]),XZc={name:"db2i",tokenizerOptions:{reservedSelect:OZc,reservedClauses:[...MZc,...UJi,...Q9r],reservedSetOperations:HZc,reservedJoins:YZc,reservedPhrases:QZc,reservedKeywords:PZc,reservedDataTypes:WZc,reservedFunctionNames:VZc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","\xAC=","\xAC>","\xAC<","!>","!<","||","=>"]},formatOptions:{onelineClauses:[...UJi,...Q9r],tabularOnelineClauses:Q9r}},JZc=["ABS","ACOS","ASIN","ATAN","BIN","BROUND","CBRT","CEIL","CEILING","CONV","COS","DEGREES","EXP","FACTORIAL","FLOOR","GREATEST","HEX","LEAST","LN","LOG","LOG10","LOG2","NEGATIVE","PI","PMOD","POSITIVE","POW","POWER","RADIANS","RAND","ROUND","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIN","SQRT","TAN","UNHEX","WIDTH_BUCKET","ARRAY_CONTAINS","MAP_KEYS","MAP_VALUES","SIZE","SORT_ARRAY","BINARY","CAST","ADD_MONTHS","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","QUARTER","SECOND","TIMESTAMP","TO_DATE","TO_UTC_TIMESTAMP","TRUNC","UNIX_TIMESTAMP","WEEKOFYEAR","YEAR","ASSERT_TRUE","COALESCE","IF","ISNOTNULL","ISNULL","NULLIF","NVL","ASCII","BASE64","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONTEXT_NGRAMS","DECODE","ELT","ENCODE","FIELD","FIND_IN_SET","FORMAT_NUMBER","GET_JSON_OBJECT","IN_FILE","INITCAP","INSTR","LCASE","LENGTH","LEVENSHTEIN","LOCATE","LOWER","LPAD","LTRIM","NGRAMS","OCTET_LENGTH","PARSE_URL","PRINTF","QUOTE","REGEXP_EXTRACT","REGEXP_REPLACE","REPEAT","REVERSE","RPAD","RTRIM","SENTENCES","SOUNDEX","SPACE","SPLIT","STR_TO_MAP","SUBSTR","SUBSTRING","TRANSLATE","TRIM","UCASE","UNBASE64","UPPER","MASK","MASK_FIRST_N","MASK_HASH","MASK_LAST_N","MASK_SHOW_FIRST_N","MASK_SHOW_LAST_N","AES_DECRYPT","AES_ENCRYPT","CRC32","CURRENT_DATABASE","CURRENT_USER","HASH","JAVA_METHOD","LOGGED_IN_USER","MD5","REFLECT","SHA","SHA1","SHA2","SURROGATE_KEY","VERSION","AVG","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COVAR_POP","COVAR_SAMP","HISTOGRAM_NUMERIC","MAX","MIN","NTILE","PERCENTILE","PERCENTILE_APPROX","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","EXPLODE","INLINE","JSON_TUPLE","PARSE_URL_TUPLE","POSEXPLODE","STACK","LEAD","LAG","FIRST_VALUE","LAST_VALUE","RANK","ROW_NUMBER","DENSE_RANK","CUME_DIST","PERCENT_RANK","NTILE"],UZc=["ADD","ADMIN","AFTER","ANALYZE","ARCHIVE","ASC","BEFORE","BUCKET","BUCKETS","CASCADE","CHANGE","CLUSTER","CLUSTERED","CLUSTERSTATUS","COLLECTION","COLUMNS","COMMENT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONTINUE","DATA","DATABASES","DATETIME","DAY","DBPROPERTIES","DEFERRED","DEFINED","DELIMITED","DEPENDENCY","DESC","DIRECTORIES","DIRECTORY","DISABLE","DISTRIBUTE","ELEM_TYPE","ENABLE","ESCAPED","EXCLUSIVE","EXPLAIN","EXPORT","FIELDS","FILE","FILEFORMAT","FIRST","FORMAT","FORMATTED","FUNCTIONS","HOLD_DDLTIME","HOUR","IDXPROPERTIES","IGNORE","INDEX","INDEXES","INPATH","INPUTDRIVER","INPUTFORMAT","ITEMS","JAR","KEYS","KEY_TYPE","LIMIT","LINES","LOAD","LOCATION","LOCK","LOCKS","LOGICAL","LONG","MAPJOIN","MATERIALIZED","METADATA","MINUS","MINUTE","MONTH","MSCK","NOSCAN","NO_DROP","OFFLINE","OPTION","OUTPUTDRIVER","OUTPUTFORMAT","OVERWRITE","OWNER","PARTITIONED","PARTITIONS","PLUS","PRETTY","PRINCIPALS","PROTECTION","PURGE","READ","READONLY","REBUILD","RECORDREADER","RECORDWRITER","RELOAD","RENAME","REPAIR","REPLACE","REPLICATION","RESTRICT","REWRITE","ROLE","ROLES","SCHEMA","SCHEMAS","SECOND","SEMI","SERDE","SERDEPROPERTIES","SERVER","SETS","SHARED","SHOW","SHOW_DATABASE","SKEWED","SORT","SORTED","SSL","STATISTICS","STORED","STREAMTABLE","STRING","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","TINYINT","TOUCH","TRANSACTIONS","UNARCHIVE","UNDO","UNIONTYPE","UNLOCK","UNSET","UNSIGNED","URI","USE","UTC","UTCTIMESTAMP","VALUE_TYPE","VIEW","WHILE","YEAR","AUTOCOMMIT","ISOLATION","LEVEL","OFFSET","SNAPSHOT","TRANSACTION","WORK","WRITE","ABORT","KEY","LAST","NORELY","NOVALIDATE","NULLS","RELY","VALIDATE","DETAIL","DOW","EXPRESSION","OPERATOR","QUARTER","SUMMARY","VECTORIZATION","WEEK","YEARS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","TIMESTAMPTZ","ZONE","ALL","ALTER","AND","AS","AUTHORIZATION","BETWEEN","BOTH","BY","CASE","CAST","COLUMN","CONF","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIMESTAMP","CURSOR","DATABASE","DELETE","DESCRIBE","DISTINCT","DROP","ELSE","END","EXCHANGE","EXISTS","EXTENDED","EXTERNAL","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","FUNCTION","GRANT","GROUP","GROUPING","HAVING","IF","IMPORT","IN","INNER","INSERT","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LESS","LIKE","LOCAL","MACRO","MORE","NONE","NOT","NULL","OF","ON","OR","ORDER","OUT","OUTER","OVER","PARTIALSCAN","PARTITION","PERCENT","PRECEDING","PRESERVE","PROCEDURE","RANGE","READS","REDUCE","REVOKE","RIGHT","ROLLUP","ROW","ROWS","SELECT","SET","TABLE","TABLESAMPLE","THEN","TO","TRANSFORM","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNION","UNIQUEJOIN","UPDATE","USER","USING","UTC_TMESTAMP","VALUES","WHEN","WHERE","WINDOW","WITH","COMMIT","ONLY","REGEXP","RLIKE","ROLLBACK","START","CACHE","CONSTRAINT","FOREIGN","PRIMARY","REFERENCES","DAYOFWEEK","EXTRACT","FLOOR","VIEWS","TIME","SYNC","TEXTFILE","SEQUENCEFILE","ORC","CSV","TSV","PARQUET","AVRO","RCFILE","JSONFILE","INPUTFORMAT","OUTPUTFORMAT"],KZc=["ARRAY","BIGINT","BINARY","BOOLEAN","CHAR","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MAP","NUMERIC","PRECISION","SMALLINT","STRUCT","TIMESTAMP","VARCHAR"],jZc=oc(["SELECT [ALL | DISTINCT]"]),zZc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT INTO [TABLE]","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT [VALUES]","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),KJi=oc(["CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS]"]),X9r=oc(["CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","RENAME TO","TRUNCATE [TABLE]","ALTER","CREATE","USE","DESCRIBE","DROP","FETCH","SHOW","STORED AS","STORED BY","ROW FORMAT"]),qZc=oc(["UNION [ALL | DISTINCT]"]),$Zc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","LEFT SEMI JOIN"]),eLc=oc(["{ROWS | RANGE} BETWEEN"]),tLc={name:"hive",tokenizerOptions:{reservedSelect:jZc,reservedClauses:[...zZc,...KJi,...X9r],reservedSetOperations:qZc,reservedJoins:$Zc,reservedPhrases:eLc,reservedKeywords:UZc,reservedDataTypes:KZc,reservedFunctionNames:JZc,extraParens:["[]"],stringTypes:['""-bs',"''-bs"],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||"]},formatOptions:{onelineClauses:[...KJi,...X9r],tabularOnelineClauses:X9r}};function Lvt(e){return e.map((t,r)=>{let n=e[r+1]||XDe;if(jCe.SET(t)&&n.text==="(")return tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"});let a=e[r-1]||XDe;return jCe.VALUES(t)&&a.text==="="?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t})}var rLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DELETE_DOMAIN_ID","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DO_DOMAIN_IDS","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERAL","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IGNORE_DOMAIN_IDS","IGNORE_SERVER_IDS","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MASTER_HEARTBEAT_PERIOD","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OFFSET","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PAGE_CHECKSUM","PARSE_VCOL_EXPR","PARTITION","POSITION","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","READ_WRITE","RECURSIVE","REF_SYSTEM_ID","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","RETURNING","REVOKE","RIGHT","RLIKE","ROW_NUMBER","ROWS","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SLOW","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_AUTO_RECALC","STATS_PERSISTENT","STATS_SAMPLE_PAGES","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],nLc=["BIGINT","BINARY","BIT","BLOB","CHAR BYTE","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],iLc=["ADDDATE","ADD_MONTHS","BIT_AND","BIT_OR","BIT_XOR","CAST","COUNT","CUME_DIST","CURDATE","CURTIME","DATE_ADD","DATE_SUB","DATE_FORMAT","DECODE","DENSE_RANK","EXTRACT","FIRST_VALUE","GROUP_CONCAT","JSON_ARRAYAGG","JSON_OBJECTAGG","LAG","LEAD","MAX","MEDIAN","MID","MIN","NOW","NTH_VALUE","NTILE","POSITION","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","ROW_NUMBER","SESSION_USER","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUBDATE","SUBSTR","SUBSTRING","SUM","SYSTEM_USER","TRIM","TRIM_ORACLE","VARIANCE","VAR_POP","VAR_SAMP","ABS","ACOS","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ASIN","ATAN","ATAN2","BENCHMARK","BIN","BINLOG_GTID_POS","BIT_COUNT","BIT_LENGTH","CEIL","CEILING","CHARACTER_LENGTH","CHAR_LENGTH","CHR","COERCIBILITY","COLUMN_CHECK","COLUMN_EXISTS","COLUMN_LIST","COLUMN_JSON","COMPRESS","CONCAT","CONCAT_OPERATOR_ORACLE","CONCAT_WS","CONNECTION_ID","CONV","CONVERT_TZ","COS","COT","CRC32","DATEDIFF","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEGREES","DECODE_HISTOGRAM","DECODE_ORACLE","DES_DECRYPT","DES_ENCRYPT","ELT","ENCODE","ENCRYPT","EXP","EXPORT_SET","EXTRACTVALUE","FIELD","FIND_IN_SET","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GET_LOCK","GREATEST","HEX","IFNULL","INSTR","ISNULL","IS_FREE_LOCK","IS_USED_LOCK","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_COMPACT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_DETAILED","JSON_EXISTS","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_LOOSE","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_QUERY","JSON_QUOTE","JSON_OBJECT","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_SEARCH","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAST_DAY","LAST_INSERT_ID","LCASE","LEAST","LENGTH","LENGTHB","LN","LOAD_FILE","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LPAD_ORACLE","LTRIM","LTRIM_ORACLE","MAKEDATE","MAKETIME","MAKE_SET","MASTER_GTID_WAIT","MASTER_POS_WAIT","MD5","MONTHNAME","NAME_CONST","NVL","NVL2","OCT","OCTET_LENGTH","ORD","PERIOD_ADD","PERIOD_DIFF","PI","POW","POWER","QUOTE","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","RADIANS","RAND","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPLACE_ORACLE","REVERSE","ROUND","RPAD","RPAD_ORACLE","RTRIM","RTRIM_ORACLE","SEC_TO_TIME","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SPACE","SQRT","STRCMP","STR_TO_DATE","SUBSTR_ORACLE","SUBSTRING_INDEX","SUBTIME","SYS_GUID","TAN","TIMEDIFF","TIME_FORMAT","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_SECONDS","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UUID","UUID_SHORT","VERSION","WEEKDAY","WEEKOFYEAR","WSREP_LAST_WRITTEN_GTID","WSREP_LAST_SEEN_GTID","WSREP_SYNC_WAIT_UPTO_GTID","YEARWEEK","COALESCE","NULLIF"],sLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),oLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET","RETURNING"]),jJi=oc(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),J9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] [IGNORE] TABLE [IF EXISTS]","ADD [COLUMN] [IF NOT EXISTS]","{CHANGE | MODIFY} [COLUMN] [IF EXISTS]","DROP [COLUMN] [IF EXISTS]","RENAME [TO]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","SET {VISIBLE | INVISIBLE}","TRUNCATE [TABLE]","ALTER DATABASE","ALTER DATABASE COMMENT","ALTER EVENT","ALTER FUNCTION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SCHEMA COMMENT","ALTER SEQUENCE","ALTER SERVER","ALTER USER","ALTER VIEW","ANALYZE","ANALYZE TABLE","BACKUP LOCK","BACKUP STAGE","BACKUP UNLOCK","BEGIN","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHECK TABLE","CHECK VIEW","CHECKSUM TABLE","COMMIT","CREATE AGGREGATE FUNCTION","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE INDEX","CREATE PROCEDURE","CREATE ROLE","CREATE SEQUENCE","CREATE SERVER","CREATE SPATIAL INDEX","CREATE TRIGGER","CREATE UNIQUE INDEX","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP INDEX","DROP PREPARE","DROP PROCEDURE","DROP ROLE","DROP SEQUENCE","DROP SERVER","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GET DIAGNOSTICS","GET DIAGNOSTICS CONDITION","GRANT","HANDLER","HELP","INSTALL PLUGIN","INSTALL SONAME","KILL","LOAD DATA INFILE","LOAD INDEX INTO CACHE","LOAD XML INFILE","LOCK TABLE","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","PURGE MASTER LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","REPAIR VIEW","RESET MASTER","RESET QUERY CACHE","RESET REPLICA","RESET SLAVE","RESIGNAL","REVOKE","ROLLBACK","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET GLOBAL TRANSACTION","SET NAMES","SET PASSWORD","SET ROLE","SET STATEMENT","SET TRANSACTION","SHOW","SHOW ALL REPLICAS STATUS","SHOW ALL SLAVES STATUS","SHOW AUTHORS","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW BINLOG STATUS","SHOW CHARACTER SET","SHOW CLIENT_STATISTICS","SHOW COLLATION","SHOW COLUMNS","SHOW CONTRIBUTORS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PACKAGE","SHOW CREATE PACKAGE BODY","SHOW CREATE PROCEDURE","SHOW CREATE SEQUENCE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINE INNODB STATUS","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW EXPLAIN","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW INDEXES","SHOW INDEX_STATISTICS","SHOW KEYS","SHOW LOCALES","SHOW MASTER LOGS","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PACKAGE BODY CODE","SHOW PACKAGE BODY STATUS","SHOW PACKAGE STATUS","SHOW PLUGINS","SHOW PLUGINS SONAME","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW QUERY_RESPONSE_TIME","SHOW RELAYLOG EVENTS","SHOW REPLICA","SHOW REPLICA HOSTS","SHOW REPLICA STATUS","SHOW SCHEMAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW SLAVE STATUS","SHOW STATUS","SHOW STORAGE ENGINES","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW USER_STATISTICS","SHOW VARIABLES","SHOW WARNINGS","SHOW WSREP_MEMBERSHIP","SHOW WSREP_STATUS","SHUTDOWN","SIGNAL","START ALL REPLICAS","START ALL SLAVES","START REPLICA","START SLAVE","START TRANSACTION","STOP ALL REPLICAS","STOP ALL SLAVES","STOP REPLICA","STOP SLAVE","UNINSTALL PLUGIN","UNINSTALL SONAME","UNLOCK TABLE","USE","XA BEGIN","XA COMMIT","XA END","XA PREPARE","XA RECOVER","XA ROLLBACK","XA START"]),aLc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]","MINUS [ALL | DISTINCT]"]),cLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),lLc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),uLc={name:"mariadb",tokenizerOptions:{reservedSelect:sLc,reservedClauses:[...oLc,...jJi,...J9r],reservedSetOperations:aLc,reservedJoins:cLc,reservedPhrases:lLc,supportsXor:!0,reservedKeywords:rLc,reservedDataTypes:nLc,reservedFunctionNames:iLc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...jJi,...J9r],tabularOnelineClauses:J9r}},gLc=["ACCESSIBLE","ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CUBE","CUME_DIST","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DENSE_RANK","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","EMPTY","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FIRST_VALUE","FOR","FORCE","FOREIGN","FROM","FULLTEXT","FUNCTION","GENERATED","GET","GRANT","GROUP","GROUPING","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","INTERSECT","INTERVAL","INTO","IO_AFTER_GTIDS","IO_BEFORE_GTIDS","IS","ITERATE","JOIN","JSON_TABLE","KEY","KEYS","KILL","LAG","LAST_VALUE","LATERAL","LEAD","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOOP","LOW_PRIORITY","MASTER_BIND","MASTER_SSL_VERIFY_SERVER_CERT","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NTH_VALUE","NTILE","NULL","OF","ON","OPTIMIZE","OPTIMIZER_COSTS","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PERCENT_RANK","PRIMARY","PROCEDURE","PURGE","RANGE","RANK","READ","READS","READ_WRITE","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESIGNAL","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","ROW","ROWS","ROW_NUMBER","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STORED","STRAIGHT_JOIN","SYSTEM","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],ALc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],dLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BINARY","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","CAN_ACCESS_COLUMN","CAN_ACCESS_DATABASE","CAN_ACCESS_TABLE","CAN_ACCESS_USER","CAN_ACCESS_VIEW","CAST","CEIL","CEILING","CHAR","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DEFAULT","DEGREES","DENSE_RANK","DIV","ELT","EXP","EXPORT_SET","EXTRACT","EXTRACTVALUE","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_PICO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOMCOLLECTION","GEOMETRYCOLLECTION","GET_DD_COLUMN_PRIVILEGES","GET_DD_CREATE_OPTIONS","GET_DD_INDEX_SUB_PART_LENGTH","GET_FORMAT","GET_LOCK","GREATEST","GROUP_CONCAT","GROUPING","GTID_SUBSET","GTID_SUBTRACT","HEX","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INSERT","INSTR","INTERNAL_AUTO_INCREMENT","INTERNAL_AVG_ROW_LENGTH","INTERNAL_CHECK_TIME","INTERNAL_CHECKSUM","INTERNAL_DATA_FREE","INTERNAL_DATA_LENGTH","INTERNAL_DD_CHAR_LENGTH","INTERNAL_GET_COMMENT_OR_ERROR","INTERNAL_GET_ENABLED_ROLE_JSON","INTERNAL_GET_HOSTNAME","INTERNAL_GET_USERNAME","INTERNAL_GET_VIEW_WARNING_OR_ERROR","INTERNAL_INDEX_COLUMN_CARDINALITY","INTERNAL_INDEX_LENGTH","INTERNAL_IS_ENABLED_ROLE","INTERNAL_IS_MANDATORY_ROLE","INTERNAL_KEYS_DISABLED","INTERNAL_MAX_DATA_LENGTH","INTERNAL_TABLE_ROWS","INTERNAL_UPDATE_TIME","INTERVAL","IS","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS NOT","IS NOT NULL","IS NULL","IS_USED_LOCK","IS_UUID","ISNULL","JSON_ARRAY","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_ARRAYAGG","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SCHEMA_VALID","JSON_SCHEMA_VALIDATION_REPORT","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TABLE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","JSON_VALUE","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LINESTRING","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MATCH","MAX","MBRCONTAINS","MBRCOVEREDBY","MBRCOVERS","MBRDISJOINT","MBREQUALS","MBRINTERSECTS","MBROVERLAPS","MBRTOUCHES","MBRWITHIN","MD5","MEMBER OF","MICROSECOND","MID","MIN","MINUTE","MOD","MONTH","MONTHNAME","MULTILINESTRING","MULTIPOINT","MULTIPOLYGON","NAME_CONST","NOT","NOT IN","NOT LIKE","NOT REGEXP","NOW","NTH_VALUE","NTILE","NULLIF","OCT","OCTET_LENGTH","ORD","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","POINT","POLYGON","POSITION","POW","POWER","PS_CURRENT_THREAD_ID","PS_THREAD_ID","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROLES_GRAPHML","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SHA1","SHA2","SIGN","SIN","SLEEP","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_BUFFER","ST_BUFFER_STRATEGY","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_CONVEXHULL","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DISTANCE_SPHERE","ST_ENDPOINT","ST_ENVELOPE","ST_EQUALS","ST_EXTERIORRING","ST_FRECHETDISTANCE","ST_GEOHASH","ST_GEOMCOLLFROMTEXT","ST_GEOMCOLLFROMWKB","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMGEOJSON","ST_GEOMFROMTEXT","ST_GEOMFROMWKB","ST_HAUSDORFFDISTANCE","ST_INTERIORRINGN","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISSIMPLE","ST_ISVALID","ST_LATFROMGEOHASH","ST_LATITUDE","ST_LENGTH","ST_LINEFROMTEXT","ST_LINEFROMWKB","ST_LINEINTERPOLATEPOINT","ST_LINEINTERPOLATEPOINTS","ST_LONGFROMGEOHASH","ST_LONGITUDE","ST_MAKEENVELOPE","ST_MLINEFROMTEXT","ST_MLINEFROMWKB","ST_MPOINTFROMTEXT","ST_MPOINTFROMWKB","ST_MPOLYFROMTEXT","ST_MPOLYFROMWKB","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINTATDISTANCE","ST_POINTFROMGEOHASH","ST_POINTFROMTEXT","ST_POINTFROMWKB","ST_POINTN","ST_POLYFROMTEXT","ST_POLYFROMWKB","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SWAPXY","ST_SYMDIFFERENCE","ST_TOUCHES","ST_TRANSFORM","ST_UNION","ST_VALIDATE","ST_WITHIN","ST_X","ST_Y","STATEMENT_DIGEST","STATEMENT_DIGEST_TEXT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRIM","TRUNCATE","UCASE","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VALUES","VAR_POP","VAR_SAMP","VARIANCE","VERSION","WAIT_FOR_EXECUTED_GTID_SET","WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],pLc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),fLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),zJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),U9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER EVENT","ALTER FUNCTION","ALTER INSTANCE","ALTER LOGFILE GROUP","ALTER PROCEDURE","ALTER RESOURCE GROUP","ALTER SERVER","ALTER TABLESPACE","ALTER USER","ALTER VIEW","ANALYZE TABLE","BINLOG","CACHE INDEX","CALL","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK TABLE","CHECKSUM TABLE","CLONE","COMMIT","CREATE DATABASE","CREATE EVENT","CREATE FUNCTION","CREATE FUNCTION","CREATE INDEX","CREATE LOGFILE GROUP","CREATE PROCEDURE","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SERVER","CREATE SPATIAL REFERENCE SYSTEM","CREATE TABLESPACE","CREATE TRIGGER","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP EVENT","DROP FUNCTION","DROP FUNCTION","DROP INDEX","DROP LOGFILE GROUP","DROP PROCEDURE","DROP RESOURCE GROUP","DROP ROLE","DROP SERVER","DROP SPATIAL REFERENCE SYSTEM","DROP TABLESPACE","DROP TRIGGER","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","GRANT","HANDLER","HELP","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE EVENT","SHOW CREATE FUNCTION","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE TRIGGER","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SOURCE_POS_WAIT","START GROUP_REPLICATION","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP REPLICA","STOP SLAVE","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),ILc=oc(["UNION [ALL | DISTINCT]"]),hLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),mLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),CLc={name:"mysql",tokenizerOptions:{reservedSelect:pLc,reservedClauses:[...fLc,...zJi,...U9r],reservedSetOperations:ILc,reservedJoins:hLc,reservedPhrases:mLc,supportsXor:!0,reservedKeywords:gLc,reservedDataTypes:ALc,reservedFunctionNames:dLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...zJi,...U9r],tabularOnelineClauses:U9r}},_Lc=["ADD","ALL","ALTER","ANALYZE","AND","ARRAY","AS","ASC","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GENERATED","GRANT","GROUP","GROUPS","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","ILIKE","IN","INDEX","INFILE","INNER","INOUT","INSERT","INTERSECT","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINEAR","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LOW_PRIORITY","MATCH","MAXVALUE","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","OF","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PARTITION","PRIMARY","PROCEDURE","RANGE","READ","RECURSIVE","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","REVOKE","RIGHT","RLIKE","ROW","ROWS","SECOND_MICROSECOND","SELECT","SET","SHOW","SPATIAL","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STATS_EXTENDED","STORED","STRAIGHT_JOIN","TABLE","TABLESAMPLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","TiDB_CURRENT_TSO","UNION","UNIQUE","UNLOCK","UNSIGNED","UNTIL","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VIRTUAL","WHEN","WHERE","WHILE","WINDOW","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL"],yLc=["BIGINT","BINARY","BIT","BLOB","BOOL","BOOLEAN","CHAR","CHARACTER","DATE","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","VARBINARY","VARCHAR","VARCHARACTER","VARYING","YEAR"],bLc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","ASCII","ASIN","ATAN","ATAN2","AVG","BENCHMARK","BIN","BIN_TO_UUID","BIT_AND","BIT_COUNT","BIT_LENGTH","BIT_OR","BIT_XOR","BITAND","BITNEG","BITOR","BITXOR","CASE","CAST","CEIL","CEILING","CHAR_FUNC","CHAR_LENGTH","CHARACTER_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COMPRESS","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CRC32","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_RESOURCE_GROUP","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATE_FORMAT","DATE_SUB","DATEDIFF","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT_FUNC","DEGREES","DENSE_RANK","DES_DECRYPT","DES_ENCRYPT","DIV","ELT","ENCODE","ENCRYPT","EQ","EXP","EXPORT_SET","EXTRACT","FIELD","FIND_IN_SET","FIRST_VALUE","FLOOR","FORMAT","FORMAT_BYTES","FORMAT_NANO_TIME","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GE","GET_FORMAT","GET_LOCK","GETPARAM","GREATEST","GROUP_CONCAT","GROUPING","GT","HEX","HOUR","IF","IFNULL","ILIKE","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","INSERT_FUNC","INSTR","INTDIV","INTERVAL","IS_FREE_LOCK","IS_IPV4","IS_IPV4_COMPAT","IS_IPV4_MAPPED","IS_IPV6","IS_USED_LOCK","IS_UUID","ISFALSE","ISNULL","ISTRUE","JSON_ARRAY","JSON_ARRAYAGG","JSON_ARRAY_APPEND","JSON_ARRAY_INSERT","JSON_CONTAINS","JSON_CONTAINS_PATH","JSON_DEPTH","JSON_EXTRACT","JSON_INSERT","JSON_KEYS","JSON_LENGTH","JSON_MEMBEROF","JSON_MERGE","JSON_MERGE_PATCH","JSON_MERGE_PRESERVE","JSON_OBJECT","JSON_OBJECTAGG","JSON_OVERLAPS","JSON_PRETTY","JSON_QUOTE","JSON_REMOVE","JSON_REPLACE","JSON_SEARCH","JSON_SET","JSON_STORAGE_FREE","JSON_STORAGE_SIZE","JSON_TYPE","JSON_UNQUOTE","JSON_VALID","LAG","LAST_DAY","LAST_INSERT_ID","LAST_VALUE","LASTVAL","LCASE","LE","LEAD","LEAST","LEFT","LEFTSHIFT","LENGTH","LIKE","LN","LOAD_FILE","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LOWER","LPAD","LT","LTRIM","MAKE_SET","MAKEDATE","MAKETIME","MASTER_POS_WAIT","MAX","MD5","MICROSECOND","MID","MIN","MINUS","MINUTE","MOD","MONTH","MONTHNAME","MUL","NAME_CONST","NE","NEXTVAL","NOT","NOW","NTH_VALUE","NTILE","NULLEQ","OCT","OCTET_LENGTH","OLD_PASSWORD","ORD","PASSWORD_FUNC","PERCENT_RANK","PERIOD_ADD","PERIOD_DIFF","PI","PLUS","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANDOM_BYTES","RANK","REGEXP","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","RELEASE_ALL_LOCKS","RELEASE_LOCK","REPEAT","REPLACE","REVERSE","RIGHT","RIGHTSHIFT","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCHEMA","SEC_TO_TIME","SECOND","SESSION_USER","SETVAL","SETVAR","SHA","SHA1","SHA2","SIGN","SIN","SLEEP","SM3","SPACE","SQRT","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","STRCMP","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUBTIME","SUM","SYSDATE","SYSTEM_USER","TAN","TIDB_BOUNDED_STALENESS","TIDB_CURRENT_TSO","TIDB_DECODE_BINARY_PLAN","TIDB_DECODE_KEY","TIDB_DECODE_PLAN","TIDB_DECODE_SQL_DIGESTS","TIDB_ENCODE_SQL_DIGEST","TIDB_IS_DDL_OWNER","TIDB_PARSE_TSO","TIDB_PARSE_TSO_LOGICAL","TIDB_ROW_CHECKSUM","TIDB_SHARD","TIDB_VERSION","TIME","TIME_FORMAT","TIME_TO_SEC","TIMEDIFF","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TO_BASE64","TO_DAYS","TO_SECONDS","TRANSLATE","TRIM","TRUNCATE","UCASE","UNARYMINUS","UNCOMPRESS","UNCOMPRESSED_LENGTH","UNHEX","UNIX_TIMESTAMP","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","UUID_SHORT","UUID_TO_BIN","VALIDATE_PASSWORD_STRENGTH","VAR_POP","VAR_SAMP","VARIANCE","VERSION","VITESS_HASH","WEEK","WEEKDAY","WEEKOFYEAR","WEIGHT_STRING","YEAR","YEARWEEK"],ELc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),SLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO]","REPLACE [LOW_PRIORITY | DELAYED] [INTO]","VALUES","ON DUPLICATE KEY UPDATE","SET"]),qJi=oc(["CREATE [TEMPORARY] TABLE [IF NOT EXISTS]"]),K9r=oc(["CREATE [OR REPLACE] [SQL SECURITY DEFINER | SQL SECURITY INVOKER] VIEW [IF NOT EXISTS]","UPDATE [LOW_PRIORITY] [IGNORE]","DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","{CHANGE | MODIFY} [COLUMN]","DROP [COLUMN]","RENAME [TO | AS]","RENAME COLUMN","ALTER [COLUMN]","{SET | DROP} DEFAULT","TRUNCATE [TABLE]","ALTER DATABASE","ALTER INSTANCE","ALTER RESOURCE GROUP","ALTER SEQUENCE","ALTER USER","ALTER VIEW","ANALYZE TABLE","CHECK TABLE","CHECKSUM TABLE","COMMIT","CREATE DATABASE","CREATE INDEX","CREATE RESOURCE GROUP","CREATE ROLE","CREATE SEQUENCE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DROP DATABASE","DROP INDEX","DROP RESOURCE GROUP","DROP ROLE","DROP TABLESPACE","DROP USER","DROP VIEW","EXPLAIN","FLUSH","GRANT","IMPORT TABLE","INSTALL COMPONENT","INSTALL PLUGIN","KILL","LOAD DATA","LOCK INSTANCE FOR BACKUP","LOCK TABLES","OPTIMIZE TABLE","PREPARE","RELEASE SAVEPOINT","RENAME TABLE","RENAME USER","REPAIR TABLE","RESET","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW BINARY LOGS","SHOW BINLOG EVENTS","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW EVENTS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW TRIGGERS","SHOW VARIABLES","SHOW WARNINGS","TABLE","UNINSTALL COMPONENT","UNINSTALL PLUGIN","UNLOCK INSTANCE","UNLOCK TABLES","USE"]),vLc=oc(["UNION [ALL | DISTINCT]"]),BLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),wLc=oc(["ON {UPDATE | DELETE} [SET NULL]","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),TLc={name:"tidb",tokenizerOptions:{reservedSelect:ELc,reservedClauses:[...SLc,...qJi,...K9r],reservedSetOperations:vLc,reservedJoins:BLc,reservedPhrases:wLc,supportsXor:!0,reservedKeywords:_Lc,reservedDataTypes:yLc,reservedFunctionNames:bLc,stringTypes:['""-qq-bs',{quote:"''-qq-bs",prefixes:["N"]},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_.$]+"},{quote:'""-qq-bs',prefixes:["@"],requirePrefix:!0},{quote:"''-qq-bs",prefixes:["@"],requirePrefix:!0},{quote:"``",prefixes:["@"],requirePrefix:!0}],paramTypes:{positional:!0},lineCommentTypes:["--","#"],operators:["%",":=","&","|","^","~","<<",">>","<=>","->","->>","&&","||","!","*.*"],postProcess:Lvt},formatOptions:{onelineClauses:[...qJi,...K9r],tabularOnelineClauses:K9r}},RLc=["ABORT","ABS","ACOS","ADVISOR","ARRAY_AGG","ARRAY_AGG","ARRAY_APPEND","ARRAY_AVG","ARRAY_BINARY_SEARCH","ARRAY_CONCAT","ARRAY_CONTAINS","ARRAY_COUNT","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_FLATTEN","ARRAY_IFNULL","ARRAY_INSERT","ARRAY_INTERSECT","ARRAY_LENGTH","ARRAY_MAX","ARRAY_MIN","ARRAY_MOVE","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_PUT","ARRAY_RANGE","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_REPLACE","ARRAY_REVERSE","ARRAY_SORT","ARRAY_STAR","ARRAY_SUM","ARRAY_SYMDIFF","ARRAY_SYMDIFF1","ARRAY_SYMDIFFN","ARRAY_UNION","ASIN","ATAN","ATAN2","AVG","BASE64","BASE64_DECODE","BASE64_ENCODE","BITAND ","BITCLEAR ","BITNOT ","BITOR ","BITSET ","BITSHIFT ","BITTEST ","BITXOR ","CEIL","CLOCK_LOCAL","CLOCK_MILLIS","CLOCK_STR","CLOCK_TZ","CLOCK_UTC","COALESCE","CONCAT","CONCAT2","CONTAINS","CONTAINS_TOKEN","CONTAINS_TOKEN_LIKE","CONTAINS_TOKEN_REGEXP","COS","COUNT","COUNT","COUNTN","CUME_DIST","CURL","DATE_ADD_MILLIS","DATE_ADD_STR","DATE_DIFF_MILLIS","DATE_DIFF_STR","DATE_FORMAT_STR","DATE_PART_MILLIS","DATE_PART_STR","DATE_RANGE_MILLIS","DATE_RANGE_STR","DATE_TRUNC_MILLIS","DATE_TRUNC_STR","DECODE","DECODE_JSON","DEGREES","DENSE_RANK","DURATION_TO_STR","ENCODED_SIZE","ENCODE_JSON","EXP","FIRST_VALUE","FLOOR","GREATEST","HAS_TOKEN","IFINF","IFMISSING","IFMISSINGORNULL","IFNAN","IFNANORINF","IFNULL","INITCAP","ISARRAY","ISATOM","ISBITSET","ISBOOLEAN","ISNUMBER","ISOBJECT","ISSTRING","LAG","LAST_VALUE","LEAD","LEAST","LENGTH","LN","LOG","LOWER","LTRIM","MAX","MEAN","MEDIAN","META","MILLIS","MILLIS_TO_LOCAL","MILLIS_TO_STR","MILLIS_TO_TZ","MILLIS_TO_UTC","MILLIS_TO_ZONE_NAME","MIN","MISSINGIF","NANIF","NEGINFIF","NOW_LOCAL","NOW_MILLIS","NOW_STR","NOW_TZ","NOW_UTC","NTH_VALUE","NTILE","NULLIF","NVL","NVL2","OBJECT_ADD","OBJECT_CONCAT","OBJECT_INNER_PAIRS","OBJECT_INNER_VALUES","OBJECT_LENGTH","OBJECT_NAMES","OBJECT_PAIRS","OBJECT_PUT","OBJECT_REMOVE","OBJECT_RENAME","OBJECT_REPLACE","OBJECT_UNWRAP","OBJECT_VALUES","PAIRS","PERCENT_RANK","PI","POLY_LENGTH","POSINFIF","POSITION","POWER","RADIANS","RANDOM","RANK","RATIO_TO_REPORT","REGEXP_CONTAINS","REGEXP_LIKE","REGEXP_MATCHES","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGEX_CONTAINS","REGEX_LIKE","REGEX_MATCHES","REGEX_POSITION","REGEX_REPLACE","REGEX_SPLIT","REPEAT","REPLACE","REVERSE","ROUND","ROW_NUMBER","RTRIM","SEARCH","SEARCH_META","SEARCH_SCORE","SIGN","SIN","SPLIT","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DURATION","STR_TO_MILLIS","STR_TO_TZ","STR_TO_UTC","STR_TO_ZONE_NAME","SUBSTR","SUFFIXES","SUM","TAN","TITLE","TOARRAY","TOATOM","TOBOOLEAN","TOKENS","TOKENS","TONUMBER","TOOBJECT","TOSTRING","TRIM","TRUNC","UPPER","UUID","VARIANCE","VARIANCE_POP","VARIANCE_SAMP","VAR_POP","VAR_SAMP","WEEKDAY_MILLIS","WEEKDAY_STR","CAST"],NLc=["ADVISE","ALL","ALTER","ANALYZE","AND","ANY","ARRAY","AS","ASC","AT","BEGIN","BETWEEN","BINARY","BOOLEAN","BREAK","BUCKET","BUILD","BY","CALL","CASE","CAST","CLUSTER","COLLATE","COLLECTION","COMMIT","COMMITTED","CONNECT","CONTINUE","CORRELATED","COVER","CREATE","CURRENT","DATABASE","DATASET","DATASTORE","DECLARE","DECREMENT","DELETE","DERIVED","DESC","DESCRIBE","DISTINCT","DO","DROP","EACH","ELEMENT","ELSE","END","EVERY","EXCEPT","EXCLUDE","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FILTER","FIRST","FLATTEN","FLUSH","FOLLOWING","FOR","FORCE","FROM","FTS","FUNCTION","GOLANG","GRANT","GROUP","GROUPS","GSI","HASH","HAVING","IF","IGNORE","ILIKE","IN","INCLUDE","INCREMENT","INDEX","INFER","INLINE","INNER","INSERT","INTERSECT","INTO","IS","ISOLATION","JAVASCRIPT","JOIN","KEY","KEYS","KEYSPACE","KNOWN","LANGUAGE","LAST","LEFT","LET","LETTING","LEVEL","LIKE","LIMIT","LSM","MAP","MAPPING","MATCHED","MATERIALIZED","MERGE","MINUS","MISSING","NAMESPACE","NEST","NL","NO","NOT","NTH_VALUE","NULL","NULLS","NUMBER","OBJECT","OFFSET","ON","OPTION","OPTIONS","OR","ORDER","OTHERS","OUTER","OVER","PARSE","PARTITION","PASSWORD","PATH","POOL","PRECEDING","PREPARE","PRIMARY","PRIVATE","PRIVILEGE","PROBE","PROCEDURE","PUBLIC","RANGE","RAW","REALM","REDUCE","RENAME","RESPECT","RETURN","RETURNING","REVOKE","RIGHT","ROLE","ROLLBACK","ROW","ROWS","SATISFIES","SAVEPOINT","SCHEMA","SCOPE","SELECT","SELF","SEMI","SET","SHOW","SOME","START","STATISTICS","STRING","SYSTEM","THEN","TIES","TO","TRAN","TRANSACTION","TRIGGER","TRUE","TRUNCATE","UNBOUNDED","UNDER","UNION","UNIQUE","UNKNOWN","UNNEST","UNSET","UPDATE","UPSERT","USE","USER","USING","VALIDATE","VALUE","VALUED","VALUES","VIA","VIEW","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WORK","XOR"],DLc=[],kLc=oc(["SELECT [ALL | DISTINCT]"]),xLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED THEN","UPDATE SET","INSERT","NEST","UNNEST","RETURNING"]),$Ji=oc(["UPDATE","DELETE FROM","SET SCHEMA","ADVISE","ALTER INDEX","BEGIN TRANSACTION","BUILD INDEX","COMMIT TRANSACTION","CREATE COLLECTION","CREATE FUNCTION","CREATE INDEX","CREATE PRIMARY INDEX","CREATE SCOPE","DROP COLLECTION","DROP FUNCTION","DROP INDEX","DROP PRIMARY INDEX","DROP SCOPE","EXECUTE","EXECUTE FUNCTION","EXPLAIN","GRANT","INFER","PREPARE","REVOKE","ROLLBACK TRANSACTION","SAVEPOINT","SET TRANSACTION","UPDATE STATISTICS","UPSERT","LET","SET CURRENT SCHEMA","SHOW","USE [PRIMARY] KEYS"]),GLc=oc(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),FLc=oc(["JOIN","{LEFT | RIGHT} [OUTER] JOIN","INNER JOIN"]),ZLc=oc(["{ROWS | RANGE | GROUPS} BETWEEN"]),LLc={name:"n1ql",tokenizerOptions:{reservedSelect:kLc,reservedClauses:[...xLc,...$Ji],reservedSetOperations:GLc,reservedJoins:FLc,reservedPhrases:ZLc,supportsXor:!0,reservedKeywords:NLc,reservedDataTypes:DLc,reservedFunctionNames:RLc,stringTypes:['""-bs',"''-bs"],identTypes:["``"],extraParens:["[]","{}"],paramTypes:{positional:!0,numbered:["$"],named:["$"]},lineCommentTypes:["#","--"],operators:["%","==",":","||"]},formatOptions:{onelineClauses:$Ji}},VLc=["ADD","AGENT","AGGREGATE","ALL","ALTER","AND","ANY","ARROW","AS","ASC","AT","ATTRIBUTE","AUTHID","AVG","BEGIN","BETWEEN","BLOCK","BODY","BOTH","BOUND","BULK","BY","BYTE","CALL","CALLING","CASCADE","CASE","CHARSET","CHARSETFORM","CHARSETID","CHECK","CLOSE","CLUSTER","CLUSTERS","COLAUTH","COLLECT","COLUMNS","COMMENT","COMMIT","COMMITTED","COMPILED","COMPRESS","CONNECT","CONSTANT","CONSTRUCTOR","CONTEXT","CONVERT","COUNT","CRASH","CREATE","CURRENT","CURSOR","CUSTOMDATUM","DANGLING","DATA","DAY","DECLARE","DEFAULT","DEFINE","DELETE","DESC","DETERMINISTIC","DISTINCT","DROP","DURATION","ELEMENT","ELSE","ELSIF","EMPTY","END","ESCAPE","EXCEPT","EXCEPTION","EXCEPTIONS","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FINAL","FIXED","FOR","FORALL","FORCE","FORM","FROM","FUNCTION","GENERAL","GOTO","GRANT","GROUP","HASH","HAVING","HEAP","HIDDEN","HOUR","IDENTIFIED","IF","IMMEDIATE","IN","INCLUDING","INDEX","INDEXES","INDICATOR","INDICES","INFINITE","INSERT","INSTANTIABLE","INTERFACE","INTERSECT","INTERVAL","INTO","INVALIDATE","IS","ISOLATION","JAVA","LANGUAGE","LARGE","LEADING","LENGTH","LEVEL","LIBRARY","LIKE","LIKE2","LIKE4","LIKEC","LIMIT","LIMITED","LOCAL","LOCK","LOOP","MAP","MAX","MAXLEN","MEMBER","MERGE","MIN","MINUS","MINUTE","MOD","MODE","MODIFY","MONTH","MULTISET","NAME","NAN","NATIONAL","NATIVE","NEW","NOCOMPRESS","NOCOPY","NOT","NOWAIT","NULL","OBJECT","OCICOLL","OCIDATE","OCIDATETIME","OCIDURATION","OCIINTERVAL","OCILOBLOCATOR","OCINUMBER","OCIRAW","OCIREF","OCIREFCURSOR","OCIROWID","OCISTRING","OCITYPE","OF","ON","ONLY","OPAQUE","OPEN","OPERATOR","OPTION","OR","ORACLE","ORADATA","ORDER","OVERLAPS","ORGANIZATION","ORLANY","ORLVARY","OTHERS","OUT","OVERRIDING","PACKAGE","PARALLEL_ENABLE","PARAMETER","PARAMETERS","PARTITION","PASCAL","PIPE","PIPELINED","PRAGMA","PRIOR","PRIVATE","PROCEDURE","PUBLIC","RAISE","RANGE","READ","RECORD","REF","REFERENCE","REM","REMAINDER","RENAME","RESOURCE","RESULT","RETURN","RETURNING","REVERSE","REVOKE","ROLLBACK","ROW","SAMPLE","SAVE","SAVEPOINT","SB1","SB2","SB4","SECOND","SEGMENT","SELECT","SELF","SEPARATE","SEQUENCE","SERIALIZABLE","SET","SHARE","SHORT","SIZE","SIZE_T","SOME","SPARSE","SQL","SQLCODE","SQLDATA","SQLNAME","SQLSTATE","STANDARD","START","STATIC","STDDEV","STORED","STRING","STRUCT","STYLE","SUBMULTISET","SUBPARTITION","SUBSTITUTABLE","SUBTYPE","SUM","SYNONYM","TABAUTH","TABLE","TDO","THE","THEN","TIME","TIMEZONE_ABBR","TIMEZONE_HOUR","TIMEZONE_MINUTE","TIMEZONE_REGION","TO","TRAILING","TRANSAC","TRANSACTIONAL","TRUSTED","TYPE","UB1","UB2","UB4","UNDER","UNION","UNIQUE","UNSIGNED","UNTRUSTED","UPDATE","USE","USING","VALIST","VALUE","VALUES","VARIABLE","VARIANCE","VARRAY","VIEW","VIEWS","VOID","WHEN","WHERE","WHILE","WITH","WORK","WRAPPED","WRITE","YEAR","ZONE"],PLc=["ARRAY","BFILE_BASE","BINARY","BLOB_BASE","CHAR VARYING","CHAR_BASE","CHAR","CHARACTER VARYING","CHARACTER","CLOB_BASE","DATE_BASE","DATE","DECIMAL","DOUBLE","FLOAT","INT","INTERVAL DAY","INTERVAL YEAR","LONG","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR VARYING","NCHAR","NCHAR","NUMBER_BASE","NUMBER","NUMBERIC","NVARCHAR","PRECISION","RAW","TIMESTAMP","UROWID","VARCHAR","VARCHAR2"],WLc=["ABS","ACOS","ASIN","ATAN","ATAN2","BITAND","CEIL","COS","COSH","EXP","FLOOR","LN","LOG","MOD","NANVL","POWER","REMAINDER","ROUND","SIGN","SIN","SINH","SQRT","TAN","TANH","TRUNC","WIDTH_BUCKET","CHR","CONCAT","INITCAP","LOWER","LPAD","LTRIM","NLS_INITCAP","NLS_LOWER","NLSSORT","NLS_UPPER","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","RPAD","RTRIM","SOUNDEX","SUBSTR","TRANSLATE","TREAT","TRIM","UPPER","NLS_CHARSET_DECL_LEN","NLS_CHARSET_ID","NLS_CHARSET_NAME","ASCII","INSTR","LENGTH","REGEXP_INSTR","ADD_MONTHS","CURRENT_DATE","CURRENT_TIMESTAMP","DBTIMEZONE","EXTRACT","FROM_TZ","LAST_DAY","LOCALTIMESTAMP","MONTHS_BETWEEN","NEW_TIME","NEXT_DAY","NUMTODSINTERVAL","NUMTOYMINTERVAL","ROUND","SESSIONTIMEZONE","SYS_EXTRACT_UTC","SYSDATE","SYSTIMESTAMP","TO_CHAR","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_DSINTERVAL","TO_YMINTERVAL","TRUNC","TZ_OFFSET","GREATEST","LEAST","ASCIISTR","BIN_TO_NUM","CAST","CHARTOROWID","COMPOSE","CONVERT","DECOMPOSE","HEXTORAW","NUMTODSINTERVAL","NUMTOYMINTERVAL","RAWTOHEX","RAWTONHEX","ROWIDTOCHAR","ROWIDTONCHAR","SCN_TO_TIMESTAMP","TIMESTAMP_TO_SCN","TO_BINARY_DOUBLE","TO_BINARY_FLOAT","TO_CHAR","TO_CLOB","TO_DATE","TO_DSINTERVAL","TO_LOB","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_DSINTERVAL","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_TIMESTAMP_TZ","TO_YMINTERVAL","TO_YMINTERVAL","TRANSLATE","UNISTR","BFILENAME","EMPTY_BLOB,","EMPTY_CLOB","CARDINALITY","COLLECT","POWERMULTISET","POWERMULTISET_BY_CARDINALITY","SET","SYS_CONNECT_BY_PATH","CLUSTER_ID","CLUSTER_PROBABILITY","CLUSTER_SET","FEATURE_ID","FEATURE_SET","FEATURE_VALUE","PREDICTION","PREDICTION_COST","PREDICTION_DETAILS","PREDICTION_PROBABILITY","PREDICTION_SET","APPENDCHILDXML","DELETEXML","DEPTH","EXTRACT","EXISTSNODE","EXTRACTVALUE","INSERTCHILDXML","INSERTXMLBEFORE","PATH","SYS_DBURIGEN","SYS_XMLAGG","SYS_XMLGEN","UPDATEXML","XMLAGG","XMLCDATA","XMLCOLATTVAL","XMLCOMMENT","XMLCONCAT","XMLFOREST","XMLPARSE","XMLPI","XMLQUERY","XMLROOT","XMLSEQUENCE","XMLSERIALIZE","XMLTABLE","XMLTRANSFORM","DECODE","DUMP","ORA_HASH","VSIZE","COALESCE","LNNVL","NULLIF","NVL","NVL2","SYS_CONTEXT","SYS_GUID","SYS_TYPEID","UID","USER","USERENV","AVG","COLLECT","CORR","CORR_S","CORR_K","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","FIRST","GROUP_ID","GROUPING","GROUPING_ID","LAST","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANK","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","STATS_BINOMIAL_TEST","STATS_CROSSTAB","STATS_F_TEST","STATS_KS_TEST","STATS_MODE","STATS_MW_TEST","STATS_ONE_WAY_ANOVA","STATS_T_TEST_ONE","STATS_T_TEST_PAIRED","STATS_T_TEST_INDEP","STATS_T_TEST_INDEPU","STATS_WSR_TEST","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTILE","RATIO_TO_REPORT","ROW_NUMBER","DEREF","MAKE_REF","REF","REFTOHEX","VALUE","CV","ITERATION_NUMBER","PRESENTNNV","PRESENTV","PREVIOUS"],OLc=oc(["SELECT [ALL | DISTINCT | UNIQUE]"]),MLc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","INSERT [INTO | ALL INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [THEN]","UPDATE SET","RETURNING"]),eUi=oc(["CREATE [GLOBAL TEMPORARY | PRIVATE TEMPORARY | SHARDED | DUPLICATED | IMMUTABLE BLOCKCHAIN | BLOCKCHAIN | IMMUTABLE] TABLE"]),j9r=oc(["CREATE [OR REPLACE] [NO FORCE | FORCE] [EDITIONING | EDITIONABLE | EDITIONABLE EDITIONING | NONEDITIONABLE] VIEW","CREATE MATERIALIZED VIEW","UPDATE [ONLY]","DELETE FROM [ONLY]","DROP TABLE","ALTER TABLE","ADD","DROP {COLUMN | UNUSED COLUMNS | COLUMNS CONTINUE}","MODIFY","RENAME TO","RENAME COLUMN","TRUNCATE TABLE","SET SCHEMA","BEGIN","CONNECT BY","DECLARE","EXCEPT","EXCEPTION","LOOP","START WITH"]),HLc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),YLc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | OUTER} APPLY"]),QLc=oc(["ON {UPDATE | DELETE} [SET NULL]","ON COMMIT","{ROWS | RANGE} BETWEEN"]),XLc={name:"plsql",tokenizerOptions:{reservedSelect:OLc,reservedClauses:[...MLc,...eUi,...j9r],reservedSetOperations:HLc,reservedJoins:YLc,reservedPhrases:QLc,supportsXor:!0,reservedKeywords:VLc,reservedDataTypes:PLc,reservedFunctionNames:WLc,stringTypes:[{quote:"''-qq",prefixes:["N"]},{quote:"q''",prefixes:["N"]}],identTypes:['""-qq'],identChars:{rest:"$#"},variableTypes:[{regex:"&{1,2}[A-Za-z][A-Za-z0-9_$#]*"}],paramTypes:{numbered:[":"],named:[":"]},paramChars:{},operators:["**",":=","%","~=","^=",">>","<<","=>","@","||"],postProcess:JLc},formatOptions:{alwaysDenseOperators:["@"],onelineClauses:[...eUi,...j9r],tabularOnelineClauses:j9r}};function JLc(e){let t=XDe;return e.map(r=>jCe.SET(r)&&jCe.BY(t)?tL(qk({},r),{type:"RESERVED_KEYWORD"}):(BUi(r.type)&&(t=r),r))}var ULc=["ABS","ACOS","ACOSD","ACOSH","ASIN","ASIND","ASINH","ATAN","ATAN2","ATAN2D","ATAND","ATANH","CBRT","CEIL","CEILING","COS","COSD","COSH","COT","COTD","DEGREES","DIV","EXP","FACTORIAL","FLOOR","GCD","LCM","LN","LOG","LOG10","MIN_SCALE","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SCALE","SETSEED","SIGN","SIN","SIND","SINH","SQRT","TAN","TAND","TANH","TRIM_SCALE","TRUNC","WIDTH_BUCKET","ABS","ASCII","BIT_LENGTH","BTRIM","CHARACTER_LENGTH","CHAR_LENGTH","CHR","CONCAT","CONCAT_WS","FORMAT","INITCAP","LEFT","LENGTH","LOWER","LPAD","LTRIM","MD5","NORMALIZE","OCTET_LENGTH","OVERLAY","PARSE_IDENT","PG_CLIENT_ENCODING","POSITION","QUOTE_IDENT","QUOTE_LITERAL","QUOTE_NULLABLE","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","REPEAT","REPLACE","REVERSE","RIGHT","RPAD","RTRIM","SPLIT_PART","SPRINTF","STARTS_WITH","STRING_AGG","STRING_TO_ARRAY","STRING_TO_TABLE","STRPOS","SUBSTR","SUBSTRING","TO_ASCII","TO_HEX","TRANSLATE","TRIM","UNISTR","UPPER","BIT_COUNT","BIT_LENGTH","BTRIM","CONVERT","CONVERT_FROM","CONVERT_TO","DECODE","ENCODE","GET_BIT","GET_BYTE","LENGTH","LTRIM","MD5","OCTET_LENGTH","OVERLAY","POSITION","RTRIM","SET_BIT","SET_BYTE","SHA224","SHA256","SHA384","SHA512","STRING_AGG","SUBSTR","SUBSTRING","TRIM","BIT_COUNT","BIT_LENGTH","GET_BIT","LENGTH","OCTET_LENGTH","OVERLAY","POSITION","SET_BIT","SUBSTRING","REGEXP_MATCH","REGEXP_MATCHES","REGEXP_REPLACE","REGEXP_SPLIT_TO_ARRAY","REGEXP_SPLIT_TO_TABLE","TO_CHAR","TO_DATE","TO_NUMBER","TO_TIMESTAMP","CLOCK_TIMESTAMP","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_BIN","DATE_PART","DATE_TRUNC","EXTRACT","ISFINITE","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","LOCALTIME","LOCALTIMESTAMP","MAKE_DATE","MAKE_INTERVAL","MAKE_TIME","MAKE_TIMESTAMP","MAKE_TIMESTAMPTZ","NOW","PG_SLEEP","PG_SLEEP_FOR","PG_SLEEP_UNTIL","STATEMENT_TIMESTAMP","TIMEOFDAY","TO_TIMESTAMP","TRANSACTION_TIMESTAMP","ENUM_FIRST","ENUM_LAST","ENUM_RANGE","AREA","BOUND_BOX","BOX","CENTER","CIRCLE","DIAGONAL","DIAMETER","HEIGHT","ISCLOSED","ISOPEN","LENGTH","LINE","LSEG","NPOINTS","PATH","PCLOSE","POINT","POLYGON","POPEN","RADIUS","SLOPE","WIDTH","ABBREV","BROADCAST","FAMILY","HOST","HOSTMASK","INET_MERGE","INET_SAME_FAMILY","MACADDR8_SET7BIT","MASKLEN","NETMASK","NETWORK","SET_MASKLEN","TRUNC","ARRAY_TO_TSVECTOR","GET_CURRENT_TS_CONFIG","JSONB_TO_TSVECTOR","JSON_TO_TSVECTOR","LENGTH","NUMNODE","PHRASETO_TSQUERY","PLAINTO_TSQUERY","QUERYTREE","SETWEIGHT","STRIP","TO_TSQUERY","TO_TSVECTOR","TSQUERY_PHRASE","TSVECTOR_TO_ARRAY","TS_DEBUG","TS_DELETE","TS_FILTER","TS_HEADLINE","TS_LEXIZE","TS_PARSE","TS_RANK","TS_RANK_CD","TS_REWRITE","TS_STAT","TS_TOKEN_TYPE","WEBSEARCH_TO_TSQUERY","UUID","CURSOR_TO_XML","CURSOR_TO_XMLSCHEMA","DATABASE_TO_XML","DATABASE_TO_XMLSCHEMA","DATABASE_TO_XML_AND_XMLSCHEMA","NEXTVAL","QUERY_TO_XML","QUERY_TO_XMLSCHEMA","QUERY_TO_XML_AND_XMLSCHEMA","SCHEMA_TO_XML","SCHEMA_TO_XMLSCHEMA","SCHEMA_TO_XML_AND_XMLSCHEMA","STRING","TABLE_TO_XML","TABLE_TO_XMLSCHEMA","TABLE_TO_XML_AND_XMLSCHEMA","XMLAGG","XMLCOMMENT","XMLCONCAT","XMLELEMENT","XMLEXISTS","XMLFOREST","XMLPARSE","XMLPI","XMLROOT","XMLSERIALIZE","XMLTABLE","XML_IS_WELL_FORMED","XML_IS_WELL_FORMED_CONTENT","XML_IS_WELL_FORMED_DOCUMENT","XPATH","XPATH_EXISTS","ARRAY_TO_JSON","JSONB_AGG","JSONB_ARRAY_ELEMENTS","JSONB_ARRAY_ELEMENTS_TEXT","JSONB_ARRAY_LENGTH","JSONB_BUILD_ARRAY","JSONB_BUILD_OBJECT","JSONB_EACH","JSONB_EACH_TEXT","JSONB_EXTRACT_PATH","JSONB_EXTRACT_PATH_TEXT","JSONB_INSERT","JSONB_OBJECT","JSONB_OBJECT_AGG","JSONB_OBJECT_KEYS","JSONB_PATH_EXISTS","JSONB_PATH_EXISTS_TZ","JSONB_PATH_MATCH","JSONB_PATH_MATCH_TZ","JSONB_PATH_QUERY","JSONB_PATH_QUERY_ARRAY","JSONB_PATH_QUERY_ARRAY_TZ","JSONB_PATH_QUERY_FIRST","JSONB_PATH_QUERY_FIRST_TZ","JSONB_PATH_QUERY_TZ","JSONB_POPULATE_RECORD","JSONB_POPULATE_RECORDSET","JSONB_PRETTY","JSONB_SET","JSONB_SET_LAX","JSONB_STRIP_NULLS","JSONB_TO_RECORD","JSONB_TO_RECORDSET","JSONB_TYPEOF","JSON_AGG","JSON_ARRAY_ELEMENTS","JSON_ARRAY_ELEMENTS_TEXT","JSON_ARRAY_LENGTH","JSON_BUILD_ARRAY","JSON_BUILD_OBJECT","JSON_EACH","JSON_EACH_TEXT","JSON_EXTRACT_PATH","JSON_EXTRACT_PATH_TEXT","JSON_OBJECT","JSON_OBJECT_AGG","JSON_OBJECT_KEYS","JSON_POPULATE_RECORD","JSON_POPULATE_RECORDSET","JSON_STRIP_NULLS","JSON_TO_RECORD","JSON_TO_RECORDSET","JSON_TYPEOF","ROW_TO_JSON","TO_JSON","TO_JSONB","TO_TIMESTAMP","CURRVAL","LASTVAL","NEXTVAL","SETVAL","COALESCE","GREATEST","LEAST","NULLIF","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_DIMS","ARRAY_FILL","ARRAY_LENGTH","ARRAY_LOWER","ARRAY_NDIMS","ARRAY_POSITION","ARRAY_POSITIONS","ARRAY_PREPEND","ARRAY_REMOVE","ARRAY_REPLACE","ARRAY_TO_STRING","ARRAY_UPPER","CARDINALITY","STRING_TO_ARRAY","TRIM_ARRAY","UNNEST","ISEMPTY","LOWER","LOWER_INC","LOWER_INF","MULTIRANGE","RANGE_MERGE","UPPER","UPPER_INC","UPPER_INF","ARRAY_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COALESCE","CORR","COUNT","COVAR_POP","COVAR_SAMP","CUME_DIST","DENSE_RANK","EVERY","GROUPING","JSONB_AGG","JSONB_OBJECT_AGG","JSON_AGG","JSON_OBJECT_AGG","MAX","MIN","MODE","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","RANGE_AGG","RANGE_INTERSECT_AGG","RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","TO_JSON","TO_JSONB","VARIANCE","VAR_POP","VAR_SAMP","XMLAGG","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","GENERATE_SERIES","GENERATE_SUBSCRIPTS","ACLDEFAULT","ACLEXPLODE","COL_DESCRIPTION","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_QUERY","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","FORMAT_TYPE","HAS_ANY_COLUMN_PRIVILEGE","HAS_COLUMN_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_FOREIGN_DATA_WRAPPER_PRIVILEGE","HAS_FUNCTION_PRIVILEGE","HAS_LANGUAGE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_SEQUENCE_PRIVILEGE","HAS_SERVER_PRIVILEGE","HAS_TABLESPACE_PRIVILEGE","HAS_TABLE_PRIVILEGE","HAS_TYPE_PRIVILEGE","INET_CLIENT_ADDR","INET_CLIENT_PORT","INET_SERVER_ADDR","INET_SERVER_PORT","MAKEACLITEM","OBJ_DESCRIPTION","PG_BACKEND_PID","PG_BLOCKING_PIDS","PG_COLLATION_IS_VISIBLE","PG_CONF_LOAD_TIME","PG_CONTROL_CHECKPOINT","PG_CONTROL_INIT","PG_CONTROL_SYSTEM","PG_CONVERSION_IS_VISIBLE","PG_CURRENT_LOGFILE","PG_CURRENT_SNAPSHOT","PG_CURRENT_XACT_ID","PG_CURRENT_XACT_ID_IF_ASSIGNED","PG_DESCRIBE_OBJECT","PG_FUNCTION_IS_VISIBLE","PG_GET_CATALOG_FOREIGN_KEYS","PG_GET_CONSTRAINTDEF","PG_GET_EXPR","PG_GET_FUNCTIONDEF","PG_GET_FUNCTION_ARGUMENTS","PG_GET_FUNCTION_IDENTITY_ARGUMENTS","PG_GET_FUNCTION_RESULT","PG_GET_INDEXDEF","PG_GET_KEYWORDS","PG_GET_OBJECT_ADDRESS","PG_GET_OWNED_SEQUENCE","PG_GET_RULEDEF","PG_GET_SERIAL_SEQUENCE","PG_GET_STATISTICSOBJDEF","PG_GET_TRIGGERDEF","PG_GET_USERBYID","PG_GET_VIEWDEF","PG_HAS_ROLE","PG_IDENTIFY_OBJECT","PG_IDENTIFY_OBJECT_AS_ADDRESS","PG_INDEXAM_HAS_PROPERTY","PG_INDEX_COLUMN_HAS_PROPERTY","PG_INDEX_HAS_PROPERTY","PG_IS_OTHER_TEMP_SCHEMA","PG_JIT_AVAILABLE","PG_LAST_COMMITTED_XACT","PG_LISTENING_CHANNELS","PG_MY_TEMP_SCHEMA","PG_NOTIFICATION_QUEUE_USAGE","PG_OPCLASS_IS_VISIBLE","PG_OPERATOR_IS_VISIBLE","PG_OPFAMILY_IS_VISIBLE","PG_OPTIONS_TO_TABLE","PG_POSTMASTER_START_TIME","PG_SAFE_SNAPSHOT_BLOCKING_PIDS","PG_SNAPSHOT_XIP","PG_SNAPSHOT_XMAX","PG_SNAPSHOT_XMIN","PG_STATISTICS_OBJ_IS_VISIBLE","PG_TABLESPACE_DATABASES","PG_TABLESPACE_LOCATION","PG_TABLE_IS_VISIBLE","PG_TRIGGER_DEPTH","PG_TS_CONFIG_IS_VISIBLE","PG_TS_DICT_IS_VISIBLE","PG_TS_PARSER_IS_VISIBLE","PG_TS_TEMPLATE_IS_VISIBLE","PG_TYPEOF","PG_TYPE_IS_VISIBLE","PG_VISIBLE_IN_SNAPSHOT","PG_XACT_COMMIT_TIMESTAMP","PG_XACT_COMMIT_TIMESTAMP_ORIGIN","PG_XACT_STATUS","PQSERVERVERSION","ROW_SECURITY_ACTIVE","SESSION_USER","SHOBJ_DESCRIPTION","TO_REGCLASS","TO_REGCOLLATION","TO_REGNAMESPACE","TO_REGOPER","TO_REGOPERATOR","TO_REGPROC","TO_REGPROCEDURE","TO_REGROLE","TO_REGTYPE","TXID_CURRENT","TXID_CURRENT_IF_ASSIGNED","TXID_CURRENT_SNAPSHOT","TXID_SNAPSHOT_XIP","TXID_SNAPSHOT_XMAX","TXID_SNAPSHOT_XMIN","TXID_STATUS","TXID_VISIBLE_IN_SNAPSHOT","USER","VERSION","BRIN_DESUMMARIZE_RANGE","BRIN_SUMMARIZE_NEW_VALUES","BRIN_SUMMARIZE_RANGE","CONVERT_FROM","CURRENT_SETTING","GIN_CLEAN_PENDING_LIST","PG_ADVISORY_LOCK","PG_ADVISORY_LOCK_SHARED","PG_ADVISORY_UNLOCK","PG_ADVISORY_UNLOCK_ALL","PG_ADVISORY_UNLOCK_SHARED","PG_ADVISORY_XACT_LOCK","PG_ADVISORY_XACT_LOCK_SHARED","PG_BACKUP_START_TIME","PG_CANCEL_BACKEND","PG_COLLATION_ACTUAL_VERSION","PG_COLUMN_COMPRESSION","PG_COLUMN_SIZE","PG_COPY_LOGICAL_REPLICATION_SLOT","PG_COPY_PHYSICAL_REPLICATION_SLOT","PG_CREATE_LOGICAL_REPLICATION_SLOT","PG_CREATE_PHYSICAL_REPLICATION_SLOT","PG_CREATE_RESTORE_POINT","PG_CURRENT_WAL_FLUSH_LSN","PG_CURRENT_WAL_INSERT_LSN","PG_CURRENT_WAL_LSN","PG_DATABASE_SIZE","PG_DROP_REPLICATION_SLOT","PG_EXPORT_SNAPSHOT","PG_FILENODE_RELATION","PG_GET_WAL_REPLAY_PAUSE_STATE","PG_IMPORT_SYSTEM_COLLATIONS","PG_INDEXES_SIZE","PG_IS_IN_BACKUP","PG_IS_IN_RECOVERY","PG_IS_WAL_REPLAY_PAUSED","PG_LAST_WAL_RECEIVE_LSN","PG_LAST_WAL_REPLAY_LSN","PG_LAST_XACT_REPLAY_TIMESTAMP","PG_LOGICAL_EMIT_MESSAGE","PG_LOGICAL_SLOT_GET_BINARY_CHANGES","PG_LOGICAL_SLOT_GET_CHANGES","PG_LOGICAL_SLOT_PEEK_BINARY_CHANGES","PG_LOGICAL_SLOT_PEEK_CHANGES","PG_LOG_BACKEND_MEMORY_CONTEXTS","PG_LS_ARCHIVE_STATUSDIR","PG_LS_DIR","PG_LS_LOGDIR","PG_LS_TMPDIR","PG_LS_WALDIR","PG_PARTITION_ANCESTORS","PG_PARTITION_ROOT","PG_PARTITION_TREE","PG_PROMOTE","PG_READ_BINARY_FILE","PG_READ_FILE","PG_RELATION_FILENODE","PG_RELATION_FILEPATH","PG_RELATION_SIZE","PG_RELOAD_CONF","PG_REPLICATION_ORIGIN_ADVANCE","PG_REPLICATION_ORIGIN_CREATE","PG_REPLICATION_ORIGIN_DROP","PG_REPLICATION_ORIGIN_OID","PG_REPLICATION_ORIGIN_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_IS_SETUP","PG_REPLICATION_ORIGIN_SESSION_PROGRESS","PG_REPLICATION_ORIGIN_SESSION_RESET","PG_REPLICATION_ORIGIN_SESSION_SETUP","PG_REPLICATION_ORIGIN_XACT_RESET","PG_REPLICATION_ORIGIN_XACT_SETUP","PG_REPLICATION_SLOT_ADVANCE","PG_ROTATE_LOGFILE","PG_SIZE_BYTES","PG_SIZE_PRETTY","PG_START_BACKUP","PG_STAT_FILE","PG_STOP_BACKUP","PG_SWITCH_WAL","PG_TABLESPACE_SIZE","PG_TABLE_SIZE","PG_TERMINATE_BACKEND","PG_TOTAL_RELATION_SIZE","PG_TRY_ADVISORY_LOCK","PG_TRY_ADVISORY_LOCK_SHARED","PG_TRY_ADVISORY_XACT_LOCK","PG_TRY_ADVISORY_XACT_LOCK_SHARED","PG_WALFILE_NAME","PG_WALFILE_NAME_OFFSET","PG_WAL_LSN_DIFF","PG_WAL_REPLAY_PAUSE","PG_WAL_REPLAY_RESUME","SET_CONFIG","SUPPRESS_REDUNDANT_UPDATES_TRIGGER","TSVECTOR_UPDATE_TRIGGER","TSVECTOR_UPDATE_TRIGGER_COLUMN","PG_EVENT_TRIGGER_DDL_COMMANDS","PG_EVENT_TRIGGER_DROPPED_OBJECTS","PG_EVENT_TRIGGER_TABLE_REWRITE_OID","PG_EVENT_TRIGGER_TABLE_REWRITE_REASON","PG_GET_OBJECT_ADDRESS","PG_MCV_LIST_ITEMS","CAST"],KLc=["ALL","ANALYSE","ANALYZE","AND","ANY","AS","ASC","ASYMMETRIC","AUTHORIZATION","BETWEEN","BINARY","BOTH","CASE","CAST","CHECK","COLLATE","COLLATION","COLUMN","CONCURRENTLY","CONSTRAINT","CREATE","CROSS","CURRENT_CATALOG","CURRENT_DATE","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DAY","DEFAULT","DEFERRABLE","DESC","DISTINCT","DO","ELSE","END","EXCEPT","EXISTS","FALSE","FETCH","FILTER","FOR","FOREIGN","FREEZE","FROM","FULL","GRANT","GROUP","HAVING","HOUR","ILIKE","IN","INITIALLY","INNER","INOUT","INTERSECT","INTO","IS","ISNULL","JOIN","LATERAL","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","MINUTE","MONTH","NATURAL","NOT","NOTNULL","NULL","NULLIF","OFFSET","ON","ONLY","OR","ORDER","OUT","OUTER","OVER","OVERLAPS","PLACING","PRIMARY","REFERENCES","RETURNING","RIGHT","ROW","SECOND","SELECT","SESSION_USER","SIMILAR","SOME","SYMMETRIC","TABLE","TABLESAMPLE","THEN","TO","TRAILING","TRUE","UNION","UNIQUE","USER","USING","VALUES","VARIADIC","VERBOSE","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","YEAR"],jLc=["ARRAY","BIGINT","BIT","BIT VARYING","BOOL","BOOLEAN","CHAR","CHARACTER","CHARACTER VARYING","DECIMAL","DEC","DOUBLE","ENUM","FLOAT","INT","INTEGER","INTERVAL","NCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TIMESTAMPTZ","VARCHAR","XML","ZONE"],zLc=oc(["SELECT [ALL | DISTINCT]"]),qLc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR {UPDATE | NO KEY UPDATE | SHARE | KEY SHARE} [OF]","INSERT INTO","VALUES","DEFAULT VALUES","SET","RETURNING"]),tUi=oc(["CREATE [GLOBAL | LOCAL] [TEMPORARY | TEMP | UNLOGGED] TABLE [IF NOT EXISTS]"]),z9r=oc(["CREATE [OR REPLACE] [TEMP | TEMPORARY] [RECURSIVE] VIEW","CREATE [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE [ONLY]","WHERE CURRENT OF","ON CONFLICT","DELETE FROM [ONLY]","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS] [ONLY]","ALTER TABLE ALL IN TABLESPACE","RENAME [COLUMN]","RENAME TO","ADD [COLUMN] [IF NOT EXISTS]","DROP [COLUMN] [IF EXISTS]","ALTER [COLUMN]","SET DATA TYPE","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","TRUNCATE [TABLE] [ONLY]","SET SCHEMA","AFTER","ABORT","ALTER AGGREGATE","ALTER COLLATION","ALTER CONVERSION","ALTER DATABASE","ALTER DEFAULT PRIVILEGES","ALTER DOMAIN","ALTER EVENT TRIGGER","ALTER EXTENSION","ALTER FOREIGN DATA WRAPPER","ALTER FOREIGN TABLE","ALTER FUNCTION","ALTER GROUP","ALTER INDEX","ALTER LANGUAGE","ALTER LARGE OBJECT","ALTER MATERIALIZED VIEW","ALTER OPERATOR","ALTER OPERATOR CLASS","ALTER OPERATOR FAMILY","ALTER POLICY","ALTER PROCEDURE","ALTER PUBLICATION","ALTER ROLE","ALTER ROUTINE","ALTER RULE","ALTER SCHEMA","ALTER SEQUENCE","ALTER SERVER","ALTER STATISTICS","ALTER SUBSCRIPTION","ALTER SYSTEM","ALTER TABLESPACE","ALTER TEXT SEARCH CONFIGURATION","ALTER TEXT SEARCH DICTIONARY","ALTER TEXT SEARCH PARSER","ALTER TEXT SEARCH TEMPLATE","ALTER TRIGGER","ALTER TYPE","ALTER USER","ALTER USER MAPPING","ALTER VIEW","ANALYZE","BEGIN","CALL","CHECKPOINT","CLOSE","CLUSTER","COMMIT","COMMIT PREPARED","COPY","CREATE ACCESS METHOD","CREATE AGGREGATE","CREATE CAST","CREATE COLLATION","CREATE CONVERSION","CREATE DATABASE","CREATE DOMAIN","CREATE EVENT TRIGGER","CREATE EXTENSION","CREATE FOREIGN DATA WRAPPER","CREATE FOREIGN TABLE","CREATE FUNCTION","CREATE GROUP","CREATE INDEX","CREATE LANGUAGE","CREATE OPERATOR","CREATE OPERATOR CLASS","CREATE OPERATOR FAMILY","CREATE POLICY","CREATE PROCEDURE","CREATE PUBLICATION","CREATE ROLE","CREATE RULE","CREATE SCHEMA","CREATE SEQUENCE","CREATE SERVER","CREATE STATISTICS","CREATE SUBSCRIPTION","CREATE TABLESPACE","CREATE TEXT SEARCH CONFIGURATION","CREATE TEXT SEARCH DICTIONARY","CREATE TEXT SEARCH PARSER","CREATE TEXT SEARCH TEMPLATE","CREATE TRANSFORM","CREATE TRIGGER","CREATE TYPE","CREATE USER","CREATE USER MAPPING","DEALLOCATE","DECLARE","DISCARD","DROP ACCESS METHOD","DROP AGGREGATE","DROP CAST","DROP COLLATION","DROP CONVERSION","DROP DATABASE","DROP DOMAIN","DROP EVENT TRIGGER","DROP EXTENSION","DROP FOREIGN DATA WRAPPER","DROP FOREIGN TABLE","DROP FUNCTION","DROP GROUP","DROP INDEX","DROP LANGUAGE","DROP MATERIALIZED VIEW","DROP OPERATOR","DROP OPERATOR CLASS","DROP OPERATOR FAMILY","DROP OWNED","DROP POLICY","DROP PROCEDURE","DROP PUBLICATION","DROP ROLE","DROP ROUTINE","DROP RULE","DROP SCHEMA","DROP SEQUENCE","DROP SERVER","DROP STATISTICS","DROP SUBSCRIPTION","DROP TABLESPACE","DROP TEXT SEARCH CONFIGURATION","DROP TEXT SEARCH DICTIONARY","DROP TEXT SEARCH PARSER","DROP TEXT SEARCH TEMPLATE","DROP TRANSFORM","DROP TRIGGER","DROP TYPE","DROP USER","DROP USER MAPPING","DROP VIEW","EXECUTE","EXPLAIN","FETCH","GRANT","IMPORT FOREIGN SCHEMA","LISTEN","LOAD","LOCK","MOVE","NOTIFY","PREPARE","PREPARE TRANSACTION","REASSIGN OWNED","REFRESH MATERIALIZED VIEW","REINDEX","RELEASE SAVEPOINT","RESET","REVOKE","ROLLBACK","ROLLBACK PREPARED","ROLLBACK TO SAVEPOINT","SAVEPOINT","SECURITY LABEL","SELECT INTO","SET CONSTRAINTS","SET ROLE","SET SESSION AUTHORIZATION","SET TRANSACTION","SHOW","START TRANSACTION","UNLISTEN","VACUUM"]),$Lc=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),e9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),t9c=oc(["PRIMARY KEY","GENERATED {ALWAYS | BY DEFAULT} AS IDENTITY","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN","[TIMESTAMP | TIME] {WITH | WITHOUT} TIME ZONE","IS [NOT] DISTINCT FROM"]),r9c={name:"postgresql",tokenizerOptions:{reservedSelect:zLc,reservedClauses:[...qLc,...tUi,...z9r],reservedSetOperations:$Lc,reservedJoins:e9c,reservedPhrases:t9c,reservedKeywords:KLc,reservedDataTypes:jLc,reservedFunctionNames:ULc,nestedBlockComments:!0,extraParens:["[]"],stringTypes:["$$",{quote:"''-qq",prefixes:["U&"]},{quote:"''-qq-bs",prefixes:["E"],requirePrefix:!0},{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:[{quote:'""-qq',prefixes:["U&"]}],identChars:{rest:"$"},paramTypes:{numbered:["$"]},operators:["%","^","|/","||/","@",":=","&","|","#","~","<<",">>","~>~","~<~","~>=~","~<=~","@-@","@@","##","<->","&&","&<","&>","<<|","&<|","|>>","|&>","<^","^>","?#","?-","?|","?-|","?||","@>","<@","~=","?","@?","?&","->","->>","#>","#>>","#-","=>",">>=","<<=","~~","~~*","!~~","!~~*","~","~*","!~","!~*","-|-","||","@@@","!!","^@","<%","%>","<<%","%>>","<<->","<->>","<<<->","<->>>","::",":"]},formatOptions:{alwaysDenseOperators:["::",":"],onelineClauses:[...tUi,...z9r],tabularOnelineClauses:z9r}},n9c=["ANY_VALUE","APPROXIMATE PERCENTILE_DISC","AVG","COUNT","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","array","array_concat","array_flatten","get_array_length","split_to_array","subarray","BIT_AND","BIT_OR","BOOL_AND","BOOL_OR","COALESCE","DECODE","GREATEST","LEAST","NVL","NVL2","NULLIF","ADD_MONTHS","AT TIME ZONE","CONVERT_TIMEZONE","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE_CMP","DATE_CMP_TIMESTAMP","DATE_CMP_TIMESTAMPTZ","DATE_PART_YEAR","DATEADD","DATEDIFF","DATE_PART","DATE_TRUNC","EXTRACT","GETDATE","INTERVAL_CMP","LAST_DAY","MONTHS_BETWEEN","NEXT_DAY","SYSDATE","TIMEOFDAY","TIMESTAMP_CMP","TIMESTAMP_CMP_DATE","TIMESTAMP_CMP_TIMESTAMPTZ","TIMESTAMPTZ_CMP","TIMESTAMPTZ_CMP_DATE","TIMESTAMPTZ_CMP_TIMESTAMP","TIMEZONE","TO_TIMESTAMP","TRUNC","AddBBox","DropBBox","GeometryType","ST_AddPoint","ST_Angle","ST_Area","ST_AsBinary","ST_AsEWKB","ST_AsEWKT","ST_AsGeoJSON","ST_AsText","ST_Azimuth","ST_Boundary","ST_Collect","ST_Contains","ST_ContainsProperly","ST_ConvexHull","ST_CoveredBy","ST_Covers","ST_Crosses","ST_Dimension","ST_Disjoint","ST_Distance","ST_DistanceSphere","ST_DWithin","ST_EndPoint","ST_Envelope","ST_Equals","ST_ExteriorRing","ST_Force2D","ST_Force3D","ST_Force3DM","ST_Force3DZ","ST_Force4D","ST_GeometryN","ST_GeometryType","ST_GeomFromEWKB","ST_GeomFromEWKT","ST_GeomFromText","ST_GeomFromWKB","ST_InteriorRingN","ST_Intersects","ST_IsPolygonCCW","ST_IsPolygonCW","ST_IsClosed","ST_IsCollection","ST_IsEmpty","ST_IsSimple","ST_IsValid","ST_Length","ST_LengthSphere","ST_Length2D","ST_LineFromMultiPoint","ST_LineInterpolatePoint","ST_M","ST_MakeEnvelope","ST_MakeLine","ST_MakePoint","ST_MakePolygon","ST_MemSize","ST_MMax","ST_MMin","ST_Multi","ST_NDims","ST_NPoints","ST_NRings","ST_NumGeometries","ST_NumInteriorRings","ST_NumPoints","ST_Perimeter","ST_Perimeter2D","ST_Point","ST_PointN","ST_Points","ST_Polygon","ST_RemovePoint","ST_Reverse","ST_SetPoint","ST_SetSRID","ST_Simplify","ST_SRID","ST_StartPoint","ST_Touches","ST_Within","ST_X","ST_XMax","ST_XMin","ST_Y","ST_YMax","ST_YMin","ST_Z","ST_ZMax","ST_ZMin","SupportsBBox","CHECKSUM","FUNC_SHA1","FNV_HASH","MD5","SHA","SHA1","SHA2","HLL","HLL_CREATE_SKETCH","HLL_CARDINALITY","HLL_COMBINE","IS_VALID_JSON","IS_VALID_JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_EXTRACT_ARRAY_ELEMENT_TEXT","JSON_EXTRACT_PATH_TEXT","JSON_PARSE","JSON_SERIALIZE","ABS","ACOS","ASIN","ATAN","ATAN2","CBRT","CEILING","CEIL","COS","COT","DEGREES","DEXP","DLOG1","DLOG10","EXP","FLOOR","LN","LOG","MOD","PI","POWER","RADIANS","RANDOM","ROUND","SIN","SIGN","SQRT","TAN","TO_HEX","TRUNC","EXPLAIN_MODEL","ASCII","BPCHARCMP","BTRIM","BTTEXT_PATTERN_CMP","CHAR_LENGTH","CHARACTER_LENGTH","CHARINDEX","CHR","COLLATE","CONCAT","CRC32","DIFFERENCE","INITCAP","LEFT","RIGHT","LEN","LENGTH","LOWER","LPAD","RPAD","LTRIM","OCTETINDEX","OCTET_LENGTH","POSITION","QUOTE_IDENT","QUOTE_LITERAL","REGEXP_COUNT","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","REPLICATE","REVERSE","RTRIM","SOUNDEX","SPLIT_PART","STRPOS","STRTOL","SUBSTRING","TEXTLEN","TRANSLATE","TRIM","UPPER","decimal_precision","decimal_scale","is_array","is_bigint","is_boolean","is_char","is_decimal","is_float","is_integer","is_object","is_scalar","is_smallint","is_varchar","json_typeof","AVG","COUNT","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAST_VALUE","LAG","LEAD","LISTAGG","MAX","MEDIAN","MIN","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","STDDEV_SAMP","STDDEV_POP","SUM","VAR_SAMP","VAR_POP","CAST","CONVERT","TO_CHAR","TO_DATE","TO_NUMBER","TEXT_TO_INT_ALT","TEXT_TO_NUMERIC_ALT","CHANGE_QUERY_PRIORITY","CHANGE_SESSION_PRIORITY","CHANGE_USER_PRIORITY","CURRENT_SETTING","PG_CANCEL_BACKEND","PG_TERMINATE_BACKEND","REBOOT_CLUSTER","SET_CONFIG","CURRENT_AWS_ACCOUNT","CURRENT_DATABASE","CURRENT_NAMESPACE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_USER","CURRENT_USER_ID","HAS_ASSUMEROLE_PRIVILEGE","HAS_DATABASE_PRIVILEGE","HAS_SCHEMA_PRIVILEGE","HAS_TABLE_PRIVILEGE","PG_BACKEND_PID","PG_GET_COLS","PG_GET_GRANTEE_BY_IAM_ROLE","PG_GET_IAM_ROLE_BY_USER","PG_GET_LATE_BINDING_VIEW_COLS","PG_LAST_COPY_COUNT","PG_LAST_COPY_ID","PG_LAST_UNLOAD_ID","PG_LAST_QUERY_ID","PG_LAST_UNLOAD_COUNT","SESSION_USER","SLICE_NUM","USER","VERSION"],i9c=["AES128","AES256","ALL","ALLOWOVERWRITE","ANY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BOTH","CHECK","COLUMN","CONSTRAINT","CREATE","CROSS","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DESC","DISABLE","DISTINCT","DO","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GROUP","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTO","IS","ISNULL","LANGUAGE","LEADING","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","MINUS","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RECOVER","REFERENCES","REJECTLOG","RESORT","RESPECT","RESTORE","SIMILAR","SNAPSHOT","SOME","SYSTEM","TABLE","TAG","TDES","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","UNIQUE","USING","VERBOSE","WALLET","WITHOUT","ACCEPTANYDATE","ACCEPTINVCHARS","BLANKSASNULL","DATEFORMAT","EMPTYASNULL","ENCODING","ESCAPE","EXPLICIT_IDS","FILLRECORD","IGNOREBLANKLINES","IGNOREHEADER","REMOVEQUOTES","ROUNDEC","TIMEFORMAT","TRIMBLANKS","TRUNCATECOLUMNS","COMPROWS","COMPUPDATE","MAXERROR","NOLOAD","STATUPDATE","FORMAT","CSV","DELIMITER","FIXEDWIDTH","SHAPEFILE","AVRO","JSON","PARQUET","ORC","ACCESS_KEY_ID","CREDENTIALS","ENCRYPTED","IAM_ROLE","MASTER_SYMMETRIC_KEY","SECRET_ACCESS_KEY","SESSION_TOKEN","BZIP2","GZIP","LZOP","ZSTD","MANIFEST","READRATIO","REGION","SSH","RAW","AZ64","BYTEDICT","DELTA","DELTA32K","LZO","MOSTLY8","MOSTLY16","MOSTLY32","RUNLENGTH","TEXT255","TEXT32K","CATALOG_ROLE","SECRET_ARN","EXTERNAL","AUTO","EVEN","KEY","PREDICATE","COMPRESSION"],s9c=["ARRAY","BIGINT","BPCHAR","CHAR","CHARACTER VARYING","CHARACTER","DECIMAL","INT","INT2","INT4","INT8","INTEGER","NCHAR","NUMERIC","NVARCHAR","SMALLINT","TEXT","VARBYTE","VARCHAR"],o9c=oc(["SELECT [ALL | DISTINCT]"]),a9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT INTO","VALUES","SET"]),rUi=oc(["CREATE [TEMPORARY | TEMP | LOCAL TEMPORARY | LOCAL TEMP] TABLE [IF NOT EXISTS]"]),q9r=oc(["CREATE [OR REPLACE | MATERIALIZED] VIEW","UPDATE","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ALTER TABLE APPEND","ADD [COLUMN]","DROP [COLUMN]","RENAME TO","RENAME COLUMN","ALTER COLUMN","TYPE","ENCODE","TRUNCATE [TABLE]","ABORT","ALTER DATABASE","ALTER DATASHARE","ALTER DEFAULT PRIVILEGES","ALTER GROUP","ALTER MATERIALIZED VIEW","ALTER PROCEDURE","ALTER SCHEMA","ALTER USER","ANALYSE","ANALYZE","ANALYSE COMPRESSION","ANALYZE COMPRESSION","BEGIN","CALL","CANCEL","CLOSE","COMMIT","COPY","CREATE DATABASE","CREATE DATASHARE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL SCHEMA","CREATE EXTERNAL TABLE","CREATE FUNCTION","CREATE GROUP","CREATE LIBRARY","CREATE MODEL","CREATE PROCEDURE","CREATE SCHEMA","CREATE USER","DEALLOCATE","DECLARE","DESC DATASHARE","DROP DATABASE","DROP DATASHARE","DROP FUNCTION","DROP GROUP","DROP LIBRARY","DROP MODEL","DROP MATERIALIZED VIEW","DROP PROCEDURE","DROP SCHEMA","DROP USER","DROP VIEW","DROP","EXECUTE","EXPLAIN","FETCH","GRANT","LOCK","PREPARE","REFRESH MATERIALIZED VIEW","RESET","REVOKE","ROLLBACK","SELECT INTO","SET SESSION AUTHORIZATION","SET SESSION CHARACTERISTICS","SHOW","SHOW EXTERNAL TABLE","SHOW MODEL","SHOW DATASHARES","SHOW PROCEDURE","SHOW TABLE","SHOW VIEW","START TRANSACTION","UNLOAD","VACUUM"]),c9c=oc(["UNION [ALL]","EXCEPT","INTERSECT","MINUS"]),l9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),u9c=oc(["NULL AS","DATA CATALOG","HIVE METASTORE","{ROWS | RANGE} BETWEEN"]),g9c={name:"redshift",tokenizerOptions:{reservedSelect:o9c,reservedClauses:[...a9c,...rUi,...q9r],reservedSetOperations:c9c,reservedJoins:l9c,reservedPhrases:u9c,reservedKeywords:i9c,reservedDataTypes:s9c,reservedFunctionNames:n9c,stringTypes:["''-qq"],identTypes:['""-qq'],identChars:{first:"#"},paramTypes:{numbered:["$"]},operators:["^","%","@","|/","||/","&","|","~","<<",">>","||","::"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...rUi,...q9r],tabularOnelineClauses:q9r}},A9c=["ADD","AFTER","ALL","ALTER","ANALYZE","AND","ANTI","ANY","ARCHIVE","AS","ASC","AT","AUTHORIZATION","BETWEEN","BOTH","BUCKET","BUCKETS","BY","CACHE","CASCADE","CAST","CHANGE","CHECK","CLEAR","CLUSTER","CLUSTERED","CODEGEN","COLLATE","COLLECTION","COLUMN","COLUMNS","COMMENT","COMMIT","COMPACT","COMPACTIONS","COMPUTE","CONCATENATE","CONSTRAINT","COST","CREATE","CROSS","CUBE","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATA","DATABASE","DATABASES","DAY","DBPROPERTIES","DEFINED","DELETE","DELIMITED","DESC","DESCRIBE","DFS","DIRECTORIES","DIRECTORY","DISTINCT","DISTRIBUTE","DIV","DROP","ESCAPE","ESCAPED","EXCEPT","EXCHANGE","EXISTS","EXPORT","EXTENDED","EXTERNAL","EXTRACT","FALSE","FETCH","FIELDS","FILTER","FILEFORMAT","FIRST","FIRST_VALUE","FOLLOWING","FOR","FOREIGN","FORMAT","FORMATTED","FULL","FUNCTION","FUNCTIONS","GLOBAL","GRANT","GROUP","GROUPING","HOUR","IF","IGNORE","IMPORT","IN","INDEX","INDEXES","INNER","INPATH","INPUTFORMAT","INTERSECT","INTO","IS","ITEMS","KEYS","LAST","LAST_VALUE","LATERAL","LAZY","LEADING","LEFT","LIKE","LINES","LIST","LOCAL","LOCATION","LOCK","LOCKS","LOGICAL","MACRO","MATCHED","MERGE","MINUTE","MONTH","MSCK","NAMESPACE","NAMESPACES","NATURAL","NO","NOT","NULL","NULLS","OF","ONLY","OPTION","OPTIONS","OR","ORDER","OUT","OUTER","OUTPUTFORMAT","OVER","OVERLAPS","OVERLAY","OVERWRITE","OWNER","PARTITION","PARTITIONED","PARTITIONS","PERCENT","PLACING","POSITION","PRECEDING","PRIMARY","PRINCIPALS","PROPERTIES","PURGE","QUERY","RANGE","RECORDREADER","RECORDWRITER","RECOVER","REDUCE","REFERENCES","RENAME","REPAIR","REPLACE","RESPECT","RESTRICT","REVOKE","RIGHT","RLIKE","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","SCHEMA","SECOND","SELECT","SEMI","SEPARATED","SERDE","SERDEPROPERTIES","SESSION_USER","SETS","SHOW","SKEWED","SOME","SORT","SORTED","START","STATISTICS","STORED","STRATIFY","SUBSTR","SUBSTRING","TABLE","TABLES","TBLPROPERTIES","TEMPORARY","TERMINATED","THEN","TO","TOUCH","TRAILING","TRANSACTION","TRANSACTIONS","TRIM","TRUE","TRUNCATE","UNARCHIVE","UNBOUNDED","UNCACHE","UNIQUE","UNKNOWN","UNLOCK","UNSET","USE","USER","USING","VIEW","WINDOW","YEAR","ANALYSE","ARRAY_ZIP","COALESCE","CONTAINS","CONVERT","DAYS","DAY_HOUR","DAY_MINUTE","DAY_SECOND","DECODE","DEFAULT","DISTINCTROW","ENCODE","EXPLODE","EXPLODE_OUTER","FIXED","GREATEST","GROUP_CONCAT","HOURS","HOUR_MINUTE","HOUR_SECOND","IFNULL","LEAST","LEVEL","MINUTE_SECOND","NULLIF","OFFSET","ON","OPTIMIZE","REGEXP","SEPARATOR","SIZE","TYPE","TYPES","UNSIGNED","VARIABLES","YEAR_MONTH"],d9c=["ARRAY","BIGINT","BINARY","BOOLEAN","BYTE","CHAR","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","LONG","MAP","NUMERIC","REAL","SHORT","SMALLINT","STRING","STRUCT","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TINYINT","VARCHAR"],p9c=["APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","AVG","BIT_AND","BIT_OR","BIT_XOR","BOOL_AND","BOOL_OR","COLLECT_LIST","COLLECT_SET","CORR","COUNT","COUNT","COUNT","COUNT_IF","COUNT_MIN_SKETCH","COVAR_POP","COVAR_SAMP","EVERY","FIRST","FIRST_VALUE","GROUPING","GROUPING_ID","KURTOSIS","LAST","LAST_VALUE","MAX","MAX_BY","MEAN","MIN","MIN_BY","PERCENTILE","PERCENTILE","PERCENTILE_APPROX","SKEWNESS","STD","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","VAR_POP","VAR_SAMP","VARIANCE","CUME_DIST","DENSE_RANK","LAG","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","RANK","ROW_NUMBER","ARRAY","ARRAY_CONTAINS","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_REPEAT","ARRAY_UNION","ARRAYS_OVERLAP","ARRAYS_ZIP","FLATTEN","SEQUENCE","SHUFFLE","SLICE","SORT_ARRAY","ELEMENT_AT","ELEMENT_AT","MAP_CONCAT","MAP_ENTRIES","MAP_FROM_ARRAYS","MAP_FROM_ENTRIES","MAP_KEYS","MAP_VALUES","STR_TO_MAP","ADD_MONTHS","CURRENT_DATE","CURRENT_DATE","CURRENT_TIMESTAMP","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","DATE_ADD","DATE_FORMAT","DATE_FROM_UNIX_DATE","DATE_PART","DATE_SUB","DATE_TRUNC","DATEDIFF","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","EXTRACT","FROM_UNIXTIME","FROM_UTC_TIMESTAMP","HOUR","LAST_DAY","MAKE_DATE","MAKE_DT_INTERVAL","MAKE_INTERVAL","MAKE_TIMESTAMP","MAKE_YM_INTERVAL","MINUTE","MONTH","MONTHS_BETWEEN","NEXT_DAY","NOW","QUARTER","SECOND","SESSION_WINDOW","TIMESTAMP_MICROS","TIMESTAMP_MILLIS","TIMESTAMP_SECONDS","TO_DATE","TO_TIMESTAMP","TO_UNIX_TIMESTAMP","TO_UTC_TIMESTAMP","TRUNC","UNIX_DATE","UNIX_MICROS","UNIX_MILLIS","UNIX_SECONDS","UNIX_TIMESTAMP","WEEKDAY","WEEKOFYEAR","WINDOW","YEAR","FROM_JSON","GET_JSON_OBJECT","JSON_ARRAY_LENGTH","JSON_OBJECT_KEYS","JSON_TUPLE","SCHEMA_OF_JSON","TO_JSON","ABS","ACOS","ACOSH","AGGREGATE","ARRAY_SORT","ASCII","ASIN","ASINH","ASSERT_TRUE","ATAN","ATAN2","ATANH","BASE64","BIN","BIT_COUNT","BIT_GET","BIT_LENGTH","BROUND","BTRIM","CARDINALITY","CBRT","CEIL","CEILING","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CONCAT","CONCAT_WS","CONV","COS","COSH","COT","CRC32","CURRENT_CATALOG","CURRENT_DATABASE","CURRENT_USER","DEGREES","ELT","EXP","EXPM1","FACTORIAL","FIND_IN_SET","FLOOR","FORALL","FORMAT_NUMBER","FORMAT_STRING","FROM_CSV","GETBIT","HASH","HEX","HYPOT","INITCAP","INLINE","INLINE_OUTER","INPUT_FILE_BLOCK_LENGTH","INPUT_FILE_BLOCK_START","INPUT_FILE_NAME","INSTR","ISNAN","ISNOTNULL","ISNULL","JAVA_METHOD","LCASE","LEFT","LENGTH","LEVENSHTEIN","LN","LOCATE","LOG","LOG10","LOG1P","LOG2","LOWER","LPAD","LTRIM","MAP_FILTER","MAP_ZIP_WITH","MD5","MOD","MONOTONICALLY_INCREASING_ID","NAMED_STRUCT","NANVL","NEGATIVE","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARSE_URL","PI","PMOD","POSEXPLODE","POSEXPLODE_OUTER","POSITION","POSITIVE","POW","POWER","PRINTF","RADIANS","RAISE_ERROR","RAND","RANDN","RANDOM","REFLECT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_REPLACE","REPEAT","REPLACE","REVERSE","RIGHT","RINT","ROUND","RPAD","RTRIM","SCHEMA_OF_CSV","SENTENCES","SHA","SHA1","SHA2","SHIFTLEFT","SHIFTRIGHT","SHIFTRIGHTUNSIGNED","SIGN","SIGNUM","SIN","SINH","SOUNDEX","SPACE","SPARK_PARTITION_ID","SPLIT","SQRT","STACK","SUBSTR","SUBSTRING","SUBSTRING_INDEX","TAN","TANH","TO_CSV","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRY_ADD","TRY_DIVIDE","TYPEOF","UCASE","UNBASE64","UNHEX","UPPER","UUID","VERSION","WIDTH_BUCKET","XPATH","XPATH_BOOLEAN","XPATH_DOUBLE","XPATH_FLOAT","XPATH_INT","XPATH_LONG","XPATH_NUMBER","XPATH_SHORT","XPATH_STRING","XXHASH64","ZIP_WITH","CAST","COALESCE","NULLIF"],f9c=oc(["SELECT [ALL | DISTINCT]"]),I9c=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","SORT BY","CLUSTER BY","DISTRIBUTE BY","LIMIT","INSERT [INTO | OVERWRITE] [TABLE]","VALUES","INSERT OVERWRITE [LOCAL] DIRECTORY","LOAD DATA [LOCAL] INPATH","[OVERWRITE] INTO TABLE"]),nUi=oc(["CREATE [EXTERNAL] TABLE [IF NOT EXISTS]"]),$9r=oc(["CREATE [OR REPLACE] [GLOBAL TEMPORARY | TEMPORARY] VIEW [IF NOT EXISTS]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD COLUMNS","DROP {COLUMN | COLUMNS}","RENAME TO","RENAME COLUMN","ALTER COLUMN","TRUNCATE TABLE","LATERAL VIEW","ALTER DATABASE","ALTER VIEW","CREATE DATABASE","CREATE FUNCTION","DROP DATABASE","DROP FUNCTION","DROP VIEW","REPAIR TABLE","USE DATABASE","TABLESAMPLE","PIVOT","TRANSFORM","EXPLAIN","ADD FILE","ADD JAR","ANALYZE TABLE","CACHE TABLE","CLEAR CACHE","DESCRIBE DATABASE","DESCRIBE FUNCTION","DESCRIBE QUERY","DESCRIBE TABLE","LIST FILE","LIST JAR","REFRESH","REFRESH TABLE","REFRESH FUNCTION","RESET","SHOW COLUMNS","SHOW CREATE TABLE","SHOW DATABASES","SHOW FUNCTIONS","SHOW PARTITIONS","SHOW TABLE EXTENDED","SHOW TABLES","SHOW TBLPROPERTIES","SHOW VIEWS","UNCACHE TABLE"]),h9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),m9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN","[LEFT] {ANTI | SEMI} JOIN","NATURAL [LEFT] {ANTI | SEMI} JOIN"]),C9c=oc(["ON DELETE","ON UPDATE","CURRENT ROW","{ROWS | RANGE} BETWEEN"]),_9c={name:"spark",tokenizerOptions:{reservedSelect:f9c,reservedClauses:[...I9c,...nUi,...$9r],reservedSetOperations:h9c,reservedJoins:m9c,reservedPhrases:C9c,supportsXor:!0,reservedKeywords:A9c,reservedDataTypes:d9c,reservedFunctionNames:p9c,extraParens:["[]"],stringTypes:["''-bs",'""-bs',{quote:"''-raw",prefixes:["R","X"],requirePrefix:!0},{quote:'""-raw',prefixes:["R","X"],requirePrefix:!0}],identTypes:["``"],variableTypes:[{quote:"{}",prefixes:["$"],requirePrefix:!0}],operators:["%","~","^","|","&","<=>","==","!","||","->"],postProcess:y9c},formatOptions:{onelineClauses:[...nUi,...$9r],tabularOnelineClauses:$9r}};function y9c(e){return e.map((t,r)=>{let n=e[r-1]||XDe,a=e[r+1]||XDe;return jCe.WINDOW(t)&&a.type==="OPEN_PAREN"?tL(qk({},t),{type:"RESERVED_FUNCTION_NAME"}):t.text==="ITEMS"&&t.type==="RESERVED_KEYWORD"&&!(n.text==="COLLECTION"&&a.text==="TERMINATED")?tL(qk({},t),{type:"IDENTIFIER",text:t.raw}):t})}var b9c=["ABS","CHANGES","CHAR","COALESCE","FORMAT","GLOB","HEX","IFNULL","IIF","INSTR","LAST_INSERT_ROWID","LENGTH","LIKE","LIKELIHOOD","LIKELY","LOAD_EXTENSION","LOWER","LTRIM","NULLIF","PRINTF","QUOTE","RANDOM","RANDOMBLOB","REPLACE","ROUND","RTRIM","SIGN","SOUNDEX","SQLITE_COMPILEOPTION_GET","SQLITE_COMPILEOPTION_USED","SQLITE_OFFSET","SQLITE_SOURCE_ID","SQLITE_VERSION","SUBSTR","SUBSTRING","TOTAL_CHANGES","TRIM","TYPEOF","UNICODE","UNLIKELY","UPPER","ZEROBLOB","AVG","COUNT","GROUP_CONCAT","MAX","MIN","SUM","TOTAL","DATE","TIME","DATETIME","JULIANDAY","UNIXEPOCH","STRFTIME","row_number","rank","dense_rank","percent_rank","cume_dist","ntile","lag","lead","first_value","last_value","nth_value","ACOS","ACOSH","ASIN","ASINH","ATAN","ATAN2","ATANH","CEIL","CEILING","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG","LOG10","LOG2","MOD","PI","POW","POWER","RADIANS","SIN","SINH","SQRT","TAN","TANH","TRUNC","JSON","JSON_ARRAY","JSON_ARRAY_LENGTH","JSON_ARRAY_LENGTH","JSON_EXTRACT","JSON_INSERT","JSON_OBJECT","JSON_PATCH","JSON_REMOVE","JSON_REPLACE","JSON_SET","JSON_TYPE","JSON_TYPE","JSON_VALID","JSON_QUOTE","JSON_GROUP_ARRAY","JSON_GROUP_OBJECT","JSON_EACH","JSON_TREE","CAST"],E9c=["ABORT","ACTION","ADD","AFTER","ALL","ALTER","AND","ARE","ALWAYS","ANALYZE","AS","ASC","ATTACH","AUTOINCREMENT","BEFORE","BEGIN","BETWEEN","BY","CASCADE","CASE","CAST","CHECK","COLLATE","COLUMN","COMMIT","CONFLICT","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATABASE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DESC","DETACH","DISTINCT","DO","DROP","EACH","ELSE","END","ESCAPE","EXCEPT","EXCLUDE","EXCLUSIVE","EXISTS","EXPLAIN","FAIL","FILTER","FIRST","FOLLOWING","FOR","FOREIGN","FROM","FULL","GENERATED","GLOB","GROUP","GROUPS","HAVING","IF","IGNORE","IMMEDIATE","IN","INDEX","INDEXED","INITIALLY","INNER","INSERT","INSTEAD","INTERSECT","INTO","IS","ISNULL","JOIN","KEY","LAST","LEFT","LIKE","LIMIT","MATCH","MATERIALIZED","NATURAL","NO","NOT","NOTHING","NOTNULL","NULL","NULLS","OF","OFFSET","ON","ONLY","OPEN","OR","ORDER","OTHERS","OUTER","OVER","PARTITION","PLAN","PRAGMA","PRECEDING","PRIMARY","QUERY","RAISE","RANGE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELEASE","RENAME","REPLACE","RESTRICT","RETURNING","RIGHT","ROLLBACK","ROW","ROWS","SAVEPOINT","SELECT","SET","TABLE","TEMP","TEMPORARY","THEN","TIES","TO","TRANSACTION","TRIGGER","UNBOUNDED","UNION","UNIQUE","UPDATE","USING","VACUUM","VALUES","VIEW","VIRTUAL","WHEN","WHERE","WINDOW","WITH","WITHOUT"],S9c=["ANY","ARRAY","BLOB","CHARACTER","DECIMAL","INT","INTEGER","NATIVE CHARACTER","NCHAR","NUMERIC","NVARCHAR","REAL","TEXT","VARCHAR","VARYING CHARACTER"],v9c=oc(["SELECT [ALL | DISTINCT]"]),B9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK] INTO","REPLACE INTO","VALUES","SET"]),iUi=oc(["CREATE [TEMPORARY | TEMP] TABLE [IF NOT EXISTS]"]),eVr=oc(["CREATE [TEMPORARY | TEMP] VIEW [IF NOT EXISTS]","UPDATE [OR ABORT | OR FAIL | OR IGNORE | OR REPLACE | OR ROLLBACK]","ON CONFLICT","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME [COLUMN]","RENAME TO","SET SCHEMA"]),w9c=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),T9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),R9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE | GROUPS} BETWEEN"]),N9c={name:"sqlite",tokenizerOptions:{reservedSelect:v9c,reservedClauses:[...B9c,...iUi,...eVr],reservedSetOperations:w9c,reservedJoins:T9c,reservedPhrases:R9c,reservedKeywords:E9c,reservedDataTypes:S9c,reservedFunctionNames:b9c,stringTypes:["''-qq",{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``","[]"],paramTypes:{positional:!0,numbered:["?"],named:[":","@","$"]},operators:["%","~","&","|","<<",">>","==","->","->>","||"]},formatOptions:{onelineClauses:[...iUi,...eVr],tabularOnelineClauses:eVr}},D9c=["GROUPING","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","ROW_NUMBER","POSITION","OCCURRENCES_REGEX","POSITION_REGEX","EXTRACT","CHAR_LENGTH","CHARACTER_LENGTH","OCTET_LENGTH","CARDINALITY","ABS","MOD","LN","EXP","POWER","SQRT","FLOOR","CEIL","CEILING","WIDTH_BUCKET","SUBSTRING","SUBSTRING_REGEX","UPPER","LOWER","CONVERT","TRANSLATE","TRANSLATE_REGEX","TRIM","OVERLAY","NORMALIZE","SPECIFICTYPE","CURRENT_DATE","CURRENT_TIME","LOCALTIME","CURRENT_TIMESTAMP","LOCALTIMESTAMP","COUNT","AVG","MAX","MIN","SUM","STDDEV_POP","STDDEV_SAMP","VAR_SAMP","VAR_POP","COLLECT","FUSION","INTERSECTION","COVAR_POP","COVAR_SAMP","CORR","REGR_SLOPE","REGR_INTERCEPT","REGR_COUNT","REGR_R2","REGR_AVGX","REGR_AVGY","REGR_SXX","REGR_SYY","REGR_SXY","PERCENTILE_CONT","PERCENTILE_DISC","CAST","COALESCE","NULLIF","ROUND","SIN","COS","TAN","ASIN","ACOS","ATAN"],k9c=["ALL","ALLOCATE","ALTER","ANY","ARE","AS","ASC","ASENSITIVE","ASYMMETRIC","AT","ATOMIC","AUTHORIZATION","BEGIN","BETWEEN","BOTH","BY","CALL","CALLED","CASCADED","CAST","CHECK","CLOSE","COALESCE","COLLATE","COLUMN","COMMIT","CONDITION","CONNECT","CONSTRAINT","CORRESPONDING","CREATE","CROSS","CUBE","CURRENT","CURRENT_CATALOG","CURRENT_DEFAULT_TRANSFORM_GROUP","CURRENT_PATH","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_TRANSFORM_GROUP_FOR_TYPE","CURRENT_USER","CURSOR","CYCLE","DEALLOCATE","DAY","DECLARE","DEFAULT","DELETE","DEREF","DESC","DESCRIBE","DETERMINISTIC","DISCONNECT","DISTINCT","DROP","DYNAMIC","EACH","ELEMENT","END-EXEC","ESCAPE","EVERY","EXCEPT","EXEC","EXECUTE","EXISTS","EXTERNAL","FALSE","FETCH","FILTER","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GET","GLOBAL","GRANT","GROUP","HAVING","HOLD","HOUR","IDENTITY","IN","INDICATOR","INNER","INOUT","INSENSITIVE","INSERT","INTERSECT","INTO","IS","LANGUAGE","LARGE","LATERAL","LEADING","LEFT","LIKE","LIKE_REGEX","LOCAL","MATCH","MEMBER","MERGE","METHOD","MINUTE","MODIFIES","MODULE","MONTH","NATURAL","NEW","NO","NONE","NOT","NULL","NULLIF","OF","OLD","ON","ONLY","OPEN","ORDER","OUT","OUTER","OVER","OVERLAPS","PARAMETER","PARTITION","PRECISION","PREPARE","PRIMARY","PROCEDURE","RANGE","READS","REAL","RECURSIVE","REF","REFERENCES","REFERENCING","RELEASE","RESULT","RETURN","RETURNS","REVOKE","RIGHT","ROLLBACK","ROLLUP","ROW","ROWS","SAVEPOINT","SCOPE","SCROLL","SEARCH","SECOND","SELECT","SENSITIVE","SESSION_USER","SET","SIMILAR","SOME","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","START","STATIC","SUBMULTISET","SYMMETRIC","SYSTEM","SYSTEM_USER","TABLE","TABLESAMPLE","THEN","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSLATION","TREAT","TRIGGER","TRUE","UESCAPE","UNION","UNIQUE","UNKNOWN","UNNEST","UPDATE","USER","USING","VALUE","VALUES","WHENEVER","WINDOW","WITHIN","WITHOUT","YEAR"],x9c=["ARRAY","BIGINT","BINARY LARGE OBJECT","BINARY VARYING","BINARY","BLOB","BOOLEAN","CHAR LARGE OBJECT","CHAR VARYING","CHAR","CHARACTER LARGE OBJECT","CHARACTER VARYING","CHARACTER","CLOB","DATE","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","INTERVAL","MULTISET","NATIONAL CHAR VARYING","NATIONAL CHAR","NATIONAL CHARACTER LARGE OBJECT","NATIONAL CHARACTER VARYING","NATIONAL CHARACTER","NCHAR LARGE OBJECT","NCHAR VARYING","NCHAR","NCLOB","NUMERIC","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],G9c=oc(["SELECT [ALL | DISTINCT]"]),F9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET"]),sUi=oc(["CREATE [GLOBAL TEMPORARY | LOCAL TEMPORARY] TABLE"]),tVr=oc(["CREATE [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","DELETE FROM","DROP TABLE","ALTER TABLE","ADD COLUMN","DROP [COLUMN]","RENAME COLUMN","RENAME TO","ALTER [COLUMN]","{SET | DROP} DEFAULT","ADD SCOPE","DROP SCOPE {CASCADE | RESTRICT}","RESTART WITH","TRUNCATE TABLE","SET SCHEMA"]),Z9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),L9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),V9c=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),P9c={name:"sql",tokenizerOptions:{reservedSelect:G9c,reservedClauses:[...F9c,...sUi,...tVr],reservedSetOperations:Z9c,reservedJoins:L9c,reservedPhrases:V9c,reservedKeywords:k9c,reservedDataTypes:x9c,reservedFunctionNames:D9c,stringTypes:[{quote:"''-qq-bs",prefixes:["N","U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq',"``"],paramTypes:{positional:!0},operators:["||"]},formatOptions:{onelineClauses:[...sUi,...tVr],tabularOnelineClauses:tVr}},W9c=["ABS","ACOS","ALL_MATCH","ANY_MATCH","APPROX_DISTINCT","APPROX_MOST_FREQUENT","APPROX_PERCENTILE","APPROX_SET","ARBITRARY","ARRAYS_OVERLAP","ARRAY_AGG","ARRAY_DISTINCT","ARRAY_EXCEPT","ARRAY_INTERSECT","ARRAY_JOIN","ARRAY_MAX","ARRAY_MIN","ARRAY_POSITION","ARRAY_REMOVE","ARRAY_SORT","ARRAY_UNION","ASIN","ATAN","ATAN2","AT_TIMEZONE","AVG","BAR","BETA_CDF","BING_TILE","BING_TILES_AROUND","BING_TILE_AT","BING_TILE_COORDINATES","BING_TILE_POLYGON","BING_TILE_QUADKEY","BING_TILE_ZOOM_LEVEL","BITWISE_AND","BITWISE_AND_AGG","BITWISE_LEFT_SHIFT","BITWISE_NOT","BITWISE_OR","BITWISE_OR_AGG","BITWISE_RIGHT_SHIFT","BITWISE_RIGHT_SHIFT_ARITHMETIC","BITWISE_XOR","BIT_COUNT","BOOL_AND","BOOL_OR","CARDINALITY","CAST","CBRT","CEIL","CEILING","CHAR2HEXINT","CHECKSUM","CHR","CLASSIFY","COALESCE","CODEPOINT","COLOR","COMBINATIONS","CONCAT","CONCAT_WS","CONTAINS","CONTAINS_SEQUENCE","CONVEX_HULL_AGG","CORR","COS","COSH","COSINE_SIMILARITY","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CRC32","CUME_DIST","CURRENT_CATALOG","CURRENT_DATE","CURRENT_GROUPS","CURRENT_SCHEMA","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","DATE","DATE_ADD","DATE_DIFF","DATE_FORMAT","DATE_PARSE","DATE_TRUNC","DAY","DAY_OF_MONTH","DAY_OF_WEEK","DAY_OF_YEAR","DEGREES","DENSE_RANK","DOW","DOY","E","ELEMENT_AT","EMPTY_APPROX_SET","EVALUATE_CLASSIFIER_PREDICTIONS","EVERY","EXP","EXTRACT","FEATURES","FILTER","FIRST_VALUE","FLATTEN","FLOOR","FORMAT","FORMAT_DATETIME","FORMAT_NUMBER","FROM_BASE","FROM_BASE32","FROM_BASE64","FROM_BASE64URL","FROM_BIG_ENDIAN_32","FROM_BIG_ENDIAN_64","FROM_ENCODED_POLYLINE","FROM_GEOJSON_GEOMETRY","FROM_HEX","FROM_IEEE754_32","FROM_IEEE754_64","FROM_ISO8601_DATE","FROM_ISO8601_TIMESTAMP","FROM_ISO8601_TIMESTAMP_NANOS","FROM_UNIXTIME","FROM_UNIXTIME_NANOS","FROM_UTF8","GEOMETRIC_MEAN","GEOMETRY_FROM_HADOOP_SHAPE","GEOMETRY_INVALID_REASON","GEOMETRY_NEAREST_POINTS","GEOMETRY_TO_BING_TILES","GEOMETRY_UNION","GEOMETRY_UNION_AGG","GREATEST","GREAT_CIRCLE_DISTANCE","HAMMING_DISTANCE","HASH_COUNTS","HISTOGRAM","HMAC_MD5","HMAC_SHA1","HMAC_SHA256","HMAC_SHA512","HOUR","HUMAN_READABLE_SECONDS","IF","INDEX","INFINITY","INTERSECTION_CARDINALITY","INVERSE_BETA_CDF","INVERSE_NORMAL_CDF","IS_FINITE","IS_INFINITE","IS_JSON_SCALAR","IS_NAN","JACCARD_INDEX","JSON_ARRAY_CONTAINS","JSON_ARRAY_GET","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_EXTRACT","JSON_EXTRACT_SCALAR","JSON_FORMAT","JSON_PARSE","JSON_QUERY","JSON_SIZE","JSON_VALUE","KURTOSIS","LAG","LAST_DAY_OF_MONTH","LAST_VALUE","LEAD","LEARN_CLASSIFIER","LEARN_LIBSVM_CLASSIFIER","LEARN_LIBSVM_REGRESSOR","LEARN_REGRESSOR","LEAST","LENGTH","LEVENSHTEIN_DISTANCE","LINE_INTERPOLATE_POINT","LINE_INTERPOLATE_POINTS","LINE_LOCATE_POINT","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOG10","LOG2","LOWER","LPAD","LTRIM","LUHN_CHECK","MAKE_SET_DIGEST","MAP","MAP_AGG","MAP_CONCAT","MAP_ENTRIES","MAP_FILTER","MAP_FROM_ENTRIES","MAP_KEYS","MAP_UNION","MAP_VALUES","MAP_ZIP_WITH","MAX","MAX_BY","MD5","MERGE","MERGE_SET_DIGEST","MILLISECOND","MIN","MINUTE","MIN_BY","MOD","MONTH","MULTIMAP_AGG","MULTIMAP_FROM_ENTRIES","MURMUR3","NAN","NGRAMS","NONE_MATCH","NORMALIZE","NORMAL_CDF","NOW","NTH_VALUE","NTILE","NULLIF","NUMERIC_HISTOGRAM","OBJECTID","OBJECTID_TIMESTAMP","PARSE_DATA_SIZE","PARSE_DATETIME","PARSE_DURATION","PERCENT_RANK","PI","POSITION","POW","POWER","QDIGEST_AGG","QUARTER","RADIANS","RAND","RANDOM","RANK","REDUCE","REDUCE_AGG","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_LIKE","REGEXP_POSITION","REGEXP_REPLACE","REGEXP_SPLIT","REGRESS","REGR_INTERCEPT","REGR_SLOPE","RENDER","REPEAT","REPLACE","REVERSE","RGB","ROUND","ROW_NUMBER","RPAD","RTRIM","SECOND","SEQUENCE","SHA1","SHA256","SHA512","SHUFFLE","SIGN","SIMPLIFY_GEOMETRY","SIN","SKEWNESS","SLICE","SOUNDEX","SPATIAL_PARTITIONING","SPATIAL_PARTITIONS","SPLIT","SPLIT_PART","SPLIT_TO_MAP","SPLIT_TO_MULTIMAP","SPOOKY_HASH_V2_32","SPOOKY_HASH_V2_64","SQRT","STARTS_WITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRPOS","ST_AREA","ST_ASBINARY","ST_ASTEXT","ST_BOUNDARY","ST_BUFFER","ST_CENTROID","ST_CONTAINS","ST_CONVEXHULL","ST_COORDDIM","ST_CROSSES","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_ENDPOINT","ST_ENVELOPE","ST_ENVELOPEASPTS","ST_EQUALS","ST_EXTERIORRING","ST_GEOMETRIES","ST_GEOMETRYFROMTEXT","ST_GEOMETRYN","ST_GEOMETRYTYPE","ST_GEOMFROMBINARY","ST_INTERIORRINGN","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_ISCLOSED","ST_ISEMPTY","ST_ISRING","ST_ISSIMPLE","ST_ISVALID","ST_LENGTH","ST_LINEFROMTEXT","ST_LINESTRING","ST_MULTIPOINT","ST_NUMGEOMETRIES","ST_NUMINTERIORRING","ST_NUMPOINTS","ST_OVERLAPS","ST_POINT","ST_POINTN","ST_POINTS","ST_POLYGON","ST_RELATE","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_TOUCHES","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","SUBSTR","SUBSTRING","SUM","TAN","TANH","TDIGEST_AGG","TIMESTAMP_OBJECTID","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO_BASE","TO_BASE32","TO_BASE64","TO_BASE64URL","TO_BIG_ENDIAN_32","TO_BIG_ENDIAN_64","TO_CHAR","TO_DATE","TO_ENCODED_POLYLINE","TO_GEOJSON_GEOMETRY","TO_GEOMETRY","TO_HEX","TO_IEEE754_32","TO_IEEE754_64","TO_ISO8601","TO_MILLISECONDS","TO_SPHERICAL_GEOGRAPHY","TO_TIMESTAMP","TO_UNIXTIME","TO_UTF8","TRANSFORM","TRANSFORM_KEYS","TRANSFORM_VALUES","TRANSLATE","TRIM","TRIM_ARRAY","TRUNCATE","TRY","TRY_CAST","TYPEOF","UPPER","URL_DECODE","URL_ENCODE","URL_EXTRACT_FRAGMENT","URL_EXTRACT_HOST","URL_EXTRACT_PARAMETER","URL_EXTRACT_PATH","URL_EXTRACT_PORT","URL_EXTRACT_PROTOCOL","URL_EXTRACT_QUERY","UUID","VALUES_AT_QUANTILES","VALUE_AT_QUANTILE","VARIANCE","VAR_POP","VAR_SAMP","VERSION","WEEK","WEEK_OF_YEAR","WIDTH_BUCKET","WILSON_INTERVAL_LOWER","WILSON_INTERVAL_UPPER","WITH_TIMEZONE","WORD_STEM","XXHASH64","YEAR","YEAR_OF_WEEK","YOW","ZIP","ZIP_WITH","CLASSIFIER","FIRST","LAST","MATCH_NUMBER","NEXT","PERMUTE","PREV"],O9c=["ABSENT","ADD","ADMIN","AFTER","ALL","ALTER","ANALYZE","AND","ANY","AS","ASC","AT","AUTHORIZATION","BERNOULLI","BETWEEN","BOTH","BY","CALL","CASCADE","CASE","CATALOGS","COLUMN","COLUMNS","COMMENT","COMMIT","COMMITTED","CONDITIONAL","CONSTRAINT","COPARTITION","CREATE","CROSS","CUBE","CURRENT","CURRENT_PATH","CURRENT_ROLE","DATA","DEALLOCATE","DEFAULT","DEFINE","DEFINER","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DISTINCT","DISTRIBUTED","DOUBLE","DROP","ELSE","EMPTY","ENCODING","END","ERROR","ESCAPE","EXCEPT","EXCLUDING","EXECUTE","EXISTS","EXPLAIN","FALSE","FETCH","FINAL","FIRST","FOLLOWING","FOR","FROM","FULL","FUNCTIONS","GRANT","GRANTED","GRANTS","GRAPHVIZ","GROUP","GROUPING","GROUPS","HAVING","IGNORE","IN","INCLUDING","INITIAL","INNER","INPUT","INSERT","INTERSECT","INTERVAL","INTO","INVOKER","IO","IS","ISOLATION","JOIN","JSON","JSON_ARRAY","JSON_OBJECT","KEEP","KEY","KEYS","LAST","LATERAL","LEADING","LEFT","LEVEL","LIKE","LIMIT","LOCAL","LOGICAL","MATCH","MATCHED","MATCHES","MATCH_RECOGNIZE","MATERIALIZED","MEASURES","NATURAL","NEXT","NFC","NFD","NFKC","NFKD","NO","NONE","NOT","NULL","NULLS","OBJECT","OF","OFFSET","OMIT","ON","ONE","ONLY","OPTION","OR","ORDER","ORDINALITY","OUTER","OUTPUT","OVER","OVERFLOW","PARTITION","PARTITIONS","PASSING","PAST","PATH","PATTERN","PER","PERMUTE","PRECEDING","PRECISION","PREPARE","PRIVILEGES","PROPERTIES","PRUNE","QUOTES","RANGE","READ","RECURSIVE","REFRESH","RENAME","REPEATABLE","RESET","RESPECT","RESTRICT","RETURNING","REVOKE","RIGHT","ROLE","ROLES","ROLLBACK","ROLLUP","ROW","ROWS","RUNNING","SCALAR","SCHEMA","SCHEMAS","SECURITY","SEEK","SELECT","SERIALIZABLE","SESSION","SET","SETS","SHOW","SKIP","SOME","START","STATS","STRING","SUBSET","SYSTEM","TABLE","TABLES","TABLESAMPLE","TEXT","THEN","TIES","TIME","TIMESTAMP","TO","TRAILING","TRANSACTION","TRUE","TYPE","UESCAPE","UNBOUNDED","UNCOMMITTED","UNCONDITIONAL","UNION","UNIQUE","UNKNOWN","UNMATCHED","UNNEST","UPDATE","USE","USER","USING","UTF16","UTF32","UTF8","VALIDATE","VALUE","VALUES","VERBOSE","VIEW","WHEN","WHERE","WINDOW","WITH","WITHIN","WITHOUT","WORK","WRAPPER","WRITE","ZONE"],M9c=["BIGINT","INT","INTEGER","SMALLINT","TINYINT","BOOLEAN","DATE","DECIMAL","REAL","DOUBLE","HYPERLOGLOG","QDIGEST","TDIGEST","P4HYPERLOGLOG","INTERVAL","TIMESTAMP","TIME","VARBINARY","VARCHAR","CHAR","ROW","ARRAY","MAP","JSON","JSON2016","IPADDRESS","GEOMETRY","UUID","SETDIGEST","JONIREGEXP","RE2JREGEXP","LIKEPATTERN","COLOR","CODEPOINTS","FUNCTION","JSONPATH"],H9c=oc(["SELECT [ALL | DISTINCT]"]),Y9c=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY [ALL | DISTINCT]","HAVING","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","FETCH {FIRST | NEXT}","INSERT INTO","VALUES","SET","MATCH_RECOGNIZE","MEASURES","ONE ROW PER MATCH","ALL ROWS PER MATCH","AFTER MATCH","PATTERN","SUBSET","DEFINE"]),oUi=oc(["CREATE TABLE [IF NOT EXISTS]"]),rVr=oc(["CREATE [OR REPLACE] [MATERIALIZED] VIEW","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME COLUMN [IF EXISTS]","RENAME TO","SET AUTHORIZATION [USER | ROLE]","SET PROPERTIES","EXECUTE","TRUNCATE TABLE","ALTER SCHEMA","ALTER MATERIALIZED VIEW","ALTER VIEW","CREATE SCHEMA","CREATE ROLE","DROP SCHEMA","DROP MATERIALIZED VIEW","DROP VIEW","DROP ROLE","EXPLAIN","ANALYZE","EXPLAIN ANALYZE","EXPLAIN ANALYZE VERBOSE","USE","DESCRIBE INPUT","DESCRIBE OUTPUT","REFRESH MATERIALIZED VIEW","RESET SESSION","SET SESSION","SET PATH","SET TIME ZONE","SHOW GRANTS","SHOW CREATE TABLE","SHOW CREATE SCHEMA","SHOW CREATE VIEW","SHOW CREATE MATERIALIZED VIEW","SHOW TABLES","SHOW SCHEMAS","SHOW CATALOGS","SHOW COLUMNS","SHOW STATS FOR","SHOW ROLES","SHOW CURRENT ROLES","SHOW ROLE GRANTS","SHOW FUNCTIONS","SHOW SESSION"]),Q9c=oc(["UNION [ALL | DISTINCT]","EXCEPT [ALL | DISTINCT]","INTERSECT [ALL | DISTINCT]"]),X9c=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL [INNER] JOIN","NATURAL {LEFT | RIGHT | FULL} [OUTER] JOIN"]),J9c=oc(["{ROWS | RANGE | GROUPS} BETWEEN","IS [NOT] DISTINCT FROM"]),U9c={name:"trino",tokenizerOptions:{reservedSelect:H9c,reservedClauses:[...Y9c,...oUi,...rVr],reservedSetOperations:Q9c,reservedJoins:X9c,reservedPhrases:J9c,reservedKeywords:O9c,reservedDataTypes:M9c,reservedFunctionNames:W9c,extraParens:["[]","{}"],stringTypes:[{quote:"''-qq",prefixes:["U&"]},{quote:"''-raw",prefixes:["X"],requirePrefix:!0}],identTypes:['""-qq'],paramTypes:{positional:!0},operators:["%","->","=>",":","||","|","^","$"]},formatOptions:{onelineClauses:[...oUi,...rVr],tabularOnelineClauses:rVr}},K9c=["APPROX_COUNT_DISTINCT","AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","STDEV","STDEVP","SUM","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","Collation - COLLATIONPROPERTY","Collation - TERTIARY_WEIGHTS","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","@@CURSOR_ROWS","@@FETCH_STATUS","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","@@DATEFIRST","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_TIMEZONE_ID","DATEADD","DATEDIFF","DATEDIFF_BIG","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","JSON","ISJSON","JSON_VALUE","JSON_QUERY","JSON_MODIFY","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","CHOOSE","GREATEST","IIF","LEAST","@@PROCID","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FILEPROPERTYEX","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","NEXT VALUE FOR","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","DATABASE_PRINCIPAL_ID","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","CONCAT_WS","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STRING_AGG","STRING_ESCAPE","STUFF","SUBSTRING","TRANSLATE","TRIM","UNICODE","UPPER","$PARTITION","@@ERROR","@@IDENTITY","@@PACK_RECEIVED","@@ROWCOUNT","@@TRANCOUNT","BINARY_CHECKSUM","CHECKSUM","COMPRESS","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","CURRENT_TRANSACTION_ID","DECOMPRESS","ERROR_LINE","ERROR_MESSAGE","ERROR_NUMBER","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GET_FILESTREAM_TRANSACTION_CONTEXT","GETANSINULL","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","SESSION_CONTEXT","XACT_STATE","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACK_SENT","@@PACKET_ERRORS","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","COALESCE","NULLIF"],j9c=["ADD","ALL","ALTER","AND","ANY","AS","ASC","AUTHORIZATION","BACKUP","BEGIN","BETWEEN","BREAK","BROWSE","BULK","BY","CASCADE","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLUMN","COMMIT","COMPUTE","CONSTRAINT","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DBCC","DEALLOCATE","DECLARE","DEFAULT","DELETE","DENY","DESC","DISK","DISTINCT","DISTRIBUTED","DROP","DUMP","ERRLVL","ESCAPE","EXEC","EXECUTE","EXISTS","EXIT","EXTERNAL","FETCH","FILE","FILLFACTOR","FOR","FOREIGN","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GOTO","GRANT","GROUP","HAVING","HOLDLOCK","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IN","INDEX","INNER","INSERT","INTERSECT","INTO","IS","JOIN","KEY","KILL","LEFT","LIKE","LINENO","LOAD","MERGE","NOCHECK","NONCLUSTERED","NOT","NULL","NULLIF","OF","OFF","OFFSETS","ON","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OUTER","OVER","PERCENT","PIVOT","PLAN","PRIMARY","PRINT","PROC","PROCEDURE","PUBLIC","RAISERROR","READ","READTEXT","RECONFIGURE","REFERENCES","REPLICATION","RESTORE","RESTRICT","RETURN","REVERT","REVOKE","RIGHT","ROLLBACK","ROWCOUNT","ROWGUIDCOL","RULE","SAVE","SCHEMA","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION_USER","SET","SETUSER","SHUTDOWN","SOME","STATISTICS","SYSTEM_USER","TABLE","TABLESAMPLE","TEXTSIZE","THEN","TO","TOP","TRAN","TRANSACTION","TRIGGER","TRUNCATE","TRY_CONVERT","TSEQUAL","UNION","UNIQUE","UNPIVOT","UPDATE","UPDATETEXT","USE","USER","VALUES","VIEW","WAITFOR","WHERE","WHILE","WITH","WITHIN GROUP","WRITETEXT","ABSOLUTE","ACTION","ADA","ALLOCATE","ARE","ASSERTION","AT","AVG","BIT_LENGTH","BOTH","CASCADED","CAST","CATALOG","CHARACTER_LENGTH","CHAR_LENGTH","COLLATION","CONNECT","CONNECTION","CONSTRAINTS","CORRESPONDING","COUNT","DAY","DEFERRABLE","DEFERRED","DESCRIBE","DESCRIPTOR","DIAGNOSTICS","DISCONNECT","DOMAIN","END-EXEC","EXCEPTION","EXTRACT","FALSE","FIRST","FORTRAN","FOUND","GET","GLOBAL","GO","HOUR","IMMEDIATE","INCLUDE","INDICATOR","INITIALLY","INPUT","INSENSITIVE","INTERVAL","ISOLATION","LANGUAGE","LAST","LEADING","LEVEL","LOCAL","LOWER","MATCH","MAX","MIN","MINUTE","MODULE","MONTH","NAMES","NATURAL","NEXT","NO","NONE","OCTET_LENGTH","ONLY","OUTPUT","OVERLAPS","PAD","PARTIAL","PASCAL","POSITION","PREPARE","PRESERVE","PRIOR","PRIVILEGES","RELATIVE","ROWS","SCROLL","SECOND","SECTION","SESSION","SIZE","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","SUBSTRING","SUM","TEMPORARY","TIMEZONE_HOUR","TIMEZONE_MINUTE","TRAILING","TRANSLATE","TRANSLATION","TRIM","TRUE","UNKNOWN","UPPER","USAGE","VALUE","WHENEVER","WORK","WRITE","YEAR","ZONE"],z9c=["BINARY","BIT","CHAR","CHAR","CHARACTER","DATE","DATETIME2","DATETIMEOFFSET","DEC","DECIMAL","DOUBLE","FLOAT","INT","INTEGER","NATIONAL","NCHAR","NUMERIC","NVARCHAR","PRECISION","REAL","SMALLINT","TIME","TIMESTAMP","VARBINARY","VARCHAR"],q9c=oc(["SELECT [ALL | DISTINCT]"]),$9c=oc(["WITH","INTO","FROM","WHERE","GROUP BY","HAVING","WINDOW","PARTITION BY","ORDER BY","OFFSET","FETCH {FIRST | NEXT}","FOR {BROWSE | XML | JSON}","OPTION","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY TARGET | BY SOURCE] [THEN]","UPDATE SET","CREATE [OR ALTER] {PROC | PROCEDURE}"]),aUi=oc(["CREATE TABLE"]),nVr=oc(["CREATE [OR ALTER] [MATERIALIZED] VIEW","UPDATE","WHERE CURRENT OF","DELETE [FROM]","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD","DROP COLUMN [IF EXISTS]","ALTER COLUMN","TRUNCATE TABLE","ADD SENSITIVITY CLASSIFICATION","ADD SIGNATURE","AGGREGATE","ANSI_DEFAULTS","ANSI_NULLS","ANSI_NULL_DFLT_OFF","ANSI_NULL_DFLT_ON","ANSI_PADDING","ANSI_WARNINGS","APPLICATION ROLE","ARITHABORT","ARITHIGNORE","ASSEMBLY","ASYMMETRIC KEY","AUTHORIZATION","AVAILABILITY GROUP","BACKUP","BACKUP CERTIFICATE","BACKUP MASTER KEY","BACKUP SERVICE MASTER KEY","BEGIN CONVERSATION TIMER","BEGIN DIALOG CONVERSATION","BROKER PRIORITY","BULK INSERT","CERTIFICATE","CLOSE MASTER KEY","CLOSE SYMMETRIC KEY","COLLATE","COLUMN ENCRYPTION KEY","COLUMN MASTER KEY","COLUMNSTORE INDEX","CONCAT_NULL_YIELDS_NULL","CONTEXT_INFO","CONTRACT","CREDENTIAL","CRYPTOGRAPHIC PROVIDER","CURSOR_CLOSE_ON_COMMIT","DATABASE","DATABASE AUDIT SPECIFICATION","DATABASE ENCRYPTION KEY","DATABASE HADR","DATABASE SCOPED CONFIGURATION","DATABASE SCOPED CREDENTIAL","DATABASE SET","DATEFIRST","DATEFORMAT","DEADLOCK_PRIORITY","DENY","DENY XML","DISABLE TRIGGER","ENABLE TRIGGER","END CONVERSATION","ENDPOINT","EVENT NOTIFICATION","EVENT SESSION","EXECUTE AS","EXTERNAL DATA SOURCE","EXTERNAL FILE FORMAT","EXTERNAL LANGUAGE","EXTERNAL LIBRARY","EXTERNAL RESOURCE POOL","EXTERNAL TABLE","FIPS_FLAGGER","FMTONLY","FORCEPLAN","FULLTEXT CATALOG","FULLTEXT INDEX","FULLTEXT STOPLIST","FUNCTION","GET CONVERSATION GROUP","GET_TRANSMISSION_STATUS","GRANT","GRANT XML","IDENTITY_INSERT","IMPLICIT_TRANSACTIONS","INDEX","LANGUAGE","LOCK_TIMEOUT","LOGIN","MASTER KEY","MESSAGE TYPE","MOVE CONVERSATION","NOCOUNT","NOEXEC","NUMERIC_ROUNDABORT","OFFSETS","OPEN MASTER KEY","OPEN SYMMETRIC KEY","PARSEONLY","PARTITION FUNCTION","PARTITION SCHEME","PROCEDURE","QUERY_GOVERNOR_COST_LIMIT","QUEUE","QUOTED_IDENTIFIER","RECEIVE","REMOTE SERVICE BINDING","REMOTE_PROC_TRANSACTIONS","RESOURCE GOVERNOR","RESOURCE POOL","RESTORE","RESTORE FILELISTONLY","RESTORE HEADERONLY","RESTORE LABELONLY","RESTORE MASTER KEY","RESTORE REWINDONLY","RESTORE SERVICE MASTER KEY","RESTORE VERIFYONLY","REVERT","REVOKE","REVOKE XML","ROLE","ROUTE","ROWCOUNT","RULE","SCHEMA","SEARCH PROPERTY LIST","SECURITY POLICY","SELECTIVE XML INDEX","SEND","SENSITIVITY CLASSIFICATION","SEQUENCE","SERVER AUDIT","SERVER AUDIT SPECIFICATION","SERVER CONFIGURATION","SERVER ROLE","SERVICE","SERVICE MASTER KEY","SETUSER","SHOWPLAN_ALL","SHOWPLAN_TEXT","SHOWPLAN_XML","SIGNATURE","SPATIAL INDEX","STATISTICS","STATISTICS IO","STATISTICS PROFILE","STATISTICS TIME","STATISTICS XML","SYMMETRIC KEY","SYNONYM","TABLE","TABLE IDENTITY","TEXTSIZE","TRANSACTION ISOLATION LEVEL","TRIGGER","TYPE","UPDATE STATISTICS","USER","WORKLOAD GROUP","XACT_ABORT","XML INDEX","XML SCHEMA COLLECTION"]),eVc=oc(["UNION [ALL]","EXCEPT","INTERSECT"]),tVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","{CROSS | OUTER} APPLY"]),rVc=oc(["ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]","{ROWS | RANGE} BETWEEN"]),nVc={name:"transactsql",tokenizerOptions:{reservedSelect:q9c,reservedClauses:[...$9c,...aUi,...nVr],reservedSetOperations:eVc,reservedJoins:tVc,reservedPhrases:rVc,reservedKeywords:j9c,reservedDataTypes:z9c,reservedFunctionNames:K9c,nestedBlockComments:!0,stringTypes:[{quote:"''-qq",prefixes:["N"]}],identTypes:['""-qq',"[]"],identChars:{first:"#@",rest:"#@$"},paramTypes:{named:["@"],quoted:["@"]},operators:["%","&","|","^","~","!<","!>","+=","-=","*=","/=","%=","|=","&=","^=","::",":"],propertyAccessOperators:[".."]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...aUi,...nVr],tabularOnelineClauses:nVr}},iVc=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","_BINARY","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXCEPT","EXISTS","EXIT","EXPLAIN","EXTRA_JOIN","FALSE","FETCH","FOR","FORCE","FORCE_COMPILED_MODE","FORCE_INTERPRETER_MODE","FOREIGN","FROM","FULL","FULLTEXT","GRANT","GROUP","HAVING","HEARTBEAT_NO_LOGGING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","IN","_INTERNAL_DYNAMIC_TYPECAST","INTERSECT","INTERVAL","INTO","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LOOP","LOW_PRIORITY","MATCH","MAXVALUE","MINUS","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NO_QUERY_REWRITE","NOT","NO_WRITE_TO_BINLOG","NO_QUERY_REWRITE","NULL","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","OVER","PRIMARY","PROCEDURE","PURGE","RANGE","READ","READS","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RIGHT_ANTI_JOIN","RIGHT_SEMI_JOIN","RIGHT_STRAIGHT_JOIN","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SEMI_JOIN","SENSITIVE","SEPARATOR","SET","SHOW","SIGNAL","SPATIAL","SPECIFIC","SQL","SQL_BIG_RESULT","SQL_BUFFER_RESULT","SQL_CACHE","SQL_CALC_FOUND_ROWS","SQLEXCEPTION","SQL_NO_CACHE","SQL_NO_LOGGING","SQL_SMALL_RESULT","SQLSTATE","SQLWARNING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TO","TRAILING","TRIGGER","TRUE","UNBOUNDED","UNDO","UNION","UNIQUE","UNLOCK","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","_UTF8","VALUES","WHEN","WHERE","WHILE","WINDOW","WITH","WITHIN","WRITE","XOR","YEAR_MONTH","ZEROFILL"],sVc=["BIGINT","BINARY","BIT","BLOB","CHAR","CHARACTER","DATETIME","DEC","DECIMAL","DOUBLE PRECISION","DOUBLE","ENUM","FIXED","FLOAT","FLOAT4","FLOAT8","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","LONG","LONGBLOB","LONGTEXT","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","NATIONAL CHAR","NATIONAL VARCHAR","NUMERIC","PRECISION","REAL","SMALLINT","TEXT","TIME","TIMESTAMP","TINYBLOB","TINYINT","TINYTEXT","UNSIGNED","VARBINARY","VARCHAR","VARCHARACTER","YEAR"],oVc=["ABS","ACOS","ADDDATE","ADDTIME","AES_DECRYPT","AES_ENCRYPT","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_COUNT_DISTINCT_ACCUMULATE","APPROX_COUNT_DISTINCT_COMBINE","APPROX_COUNT_DISTINCT_ESTIMATE","APPROX_GEOGRAPHY_INTERSECTS","APPROX_PERCENTILE","ASCII","ASIN","ATAN","ATAN2","AVG","BIN","BINARY","BIT_AND","BIT_COUNT","BIT_OR","BIT_XOR","CAST","CEIL","CEILING","CHAR","CHARACTER_LENGTH","CHAR_LENGTH","CHARSET","COALESCE","COERCIBILITY","COLLATION","COLLECT","CONCAT","CONCAT_WS","CONNECTION_ID","CONV","CONVERT","CONVERT_TZ","COS","COT","COUNT","CUME_DIST","CURDATE","CURRENT_DATE","CURRENT_ROLE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURTIME","DATABASE","DATE","DATE_ADD","DATEDIFF","DATE_FORMAT","DATE_SUB","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","DECODE","DEFAULT","DEGREES","DENSE_RANK","DIV","DOT_PRODUCT","ELT","EUCLIDEAN_DISTANCE","EXP","EXTRACT","FIELD","FIRST","FIRST_VALUE","FLOOR","FORMAT","FOUND_ROWS","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","GEOGRAPHY_AREA","GEOGRAPHY_CONTAINS","GEOGRAPHY_DISTANCE","GEOGRAPHY_INTERSECTS","GEOGRAPHY_LATITUDE","GEOGRAPHY_LENGTH","GEOGRAPHY_LONGITUDE","GEOGRAPHY_POINT","GEOGRAPHY_WITHIN_DISTANCE","GEOMETRY_AREA","GEOMETRY_CONTAINS","GEOMETRY_DISTANCE","GEOMETRY_FILTER","GEOMETRY_INTERSECTS","GEOMETRY_LENGTH","GEOMETRY_POINT","GEOMETRY_WITHIN_DISTANCE","GEOMETRY_X","GEOMETRY_Y","GREATEST","GROUPING","GROUP_CONCAT","HEX","HIGHLIGHT","HOUR","ICU_VERSION","IF","IFNULL","INET_ATON","INET_NTOA","INET6_ATON","INET6_NTOA","INITCAP","INSERT","INSTR","INTERVAL","IS","IS NULL","JSON_AGG","JSON_ARRAY_CONTAINS_DOUBLE","JSON_ARRAY_CONTAINS_JSON","JSON_ARRAY_CONTAINS_STRING","JSON_ARRAY_PUSH_DOUBLE","JSON_ARRAY_PUSH_JSON","JSON_ARRAY_PUSH_STRING","JSON_DELETE_KEY","JSON_EXTRACT_DOUBLE","JSON_EXTRACT_JSON","JSON_EXTRACT_STRING","JSON_EXTRACT_BIGINT","JSON_GET_TYPE","JSON_LENGTH","JSON_SET_DOUBLE","JSON_SET_JSON","JSON_SET_STRING","JSON_SPLICE_DOUBLE","JSON_SPLICE_JSON","JSON_SPLICE_STRING","LAG","LAST_DAY","LAST_VALUE","LCASE","LEAD","LEAST","LEFT","LENGTH","LIKE","LN","LOCALTIME","LOCALTIMESTAMP","LOCATE","LOG","LOG10","LOG2","LPAD","LTRIM","MATCH","MAX","MD5","MEDIAN","MICROSECOND","MIN","MINUTE","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","NOT","NOW","NTH_VALUE","NTILE","NULLIF","OCTET_LENGTH","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIVOT","POSITION","POW","POWER","QUARTER","QUOTE","RADIANS","RAND","RANK","REGEXP","REPEAT","REPLACE","REVERSE","RIGHT","RLIKE","ROUND","ROW_COUNT","ROW_NUMBER","RPAD","RTRIM","SCALAR","SCHEMA","SEC_TO_TIME","SHA1","SHA2","SIGMOID","SIGN","SIN","SLEEP","SPLIT","SOUNDEX","SOUNDS LIKE","SOURCE_POS_WAIT","SPACE","SQRT","STDDEV","STDDEV_POP","STDDEV_SAMP","STR_TO_DATE","SUBDATE","SUBSTR","SUBSTRING","SUBSTRING_INDEX","SUM","SYS_GUID","TAN","TIME","TIMEDIFF","TIME_BUCKET","TIME_FORMAT","TIMESTAMP","TIMESTAMPADD","TIMESTAMPDIFF","TIME_TO_SEC","TO_BASE64","TO_CHAR","TO_DAYS","TO_JSON","TO_NUMBER","TO_SECONDS","TO_TIMESTAMP","TRIM","TRUNC","TRUNCATE","UCASE","UNHEX","UNIX_TIMESTAMP","UPDATEXML","UPPER","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","UUID","VALUES","VARIANCE","VAR_POP","VAR_SAMP","VECTOR_SUB","VERSION","WEEK","WEEKDAY","WEEKOFYEAR","YEAR"],aVc=oc(["SELECT [ALL | DISTINCT | DISTINCTROW]"]),cVc=oc(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","LIMIT","OFFSET","INSERT [IGNORE] [INTO]","VALUES","REPLACE [INTO]","ON DUPLICATE KEY UPDATE","SET","CREATE [OR REPLACE] [TEMPORARY] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] [EXTERNAL] FUNCTION"]),cUi=oc(["CREATE [ROWSTORE] [REFERENCE | TEMPORARY | GLOBAL TEMPORARY] TABLE [IF NOT EXISTS]"]),iVr=oc(["CREATE VIEW","UPDATE","DELETE [FROM]","DROP [TEMPORARY] TABLE [IF EXISTS]","ALTER [ONLINE] TABLE","ADD [COLUMN]","ADD [UNIQUE] {INDEX | KEY}","DROP [COLUMN]","MODIFY [COLUMN]","CHANGE","RENAME [TO | AS]","TRUNCATE [TABLE]","ADD AGGREGATOR","ADD LEAF","AGGREGATOR SET AS MASTER","ALTER DATABASE","ALTER PIPELINE","ALTER RESOURCE POOL","ALTER USER","ALTER VIEW","ANALYZE TABLE","ATTACH DATABASE","ATTACH LEAF","ATTACH LEAF ALL","BACKUP DATABASE","BINLOG","BOOTSTRAP AGGREGATOR","CACHE INDEX","CALL","CHANGE","CHANGE MASTER TO","CHANGE REPLICATION FILTER","CHANGE REPLICATION SOURCE TO","CHECK BLOB CHECKSUM","CHECK TABLE","CHECKSUM TABLE","CLEAR ORPHAN DATABASES","CLONE","COMMIT","CREATE DATABASE","CREATE GROUP","CREATE INDEX","CREATE LINK","CREATE MILESTONE","CREATE PIPELINE","CREATE RESOURCE POOL","CREATE ROLE","CREATE USER","DEALLOCATE PREPARE","DESCRIBE","DETACH DATABASE","DETACH PIPELINE","DROP DATABASE","DROP FUNCTION","DROP INDEX","DROP LINK","DROP PIPELINE","DROP PROCEDURE","DROP RESOURCE POOL","DROP ROLE","DROP USER","DROP VIEW","EXECUTE","EXPLAIN","FLUSH","FORCE","GRANT","HANDLER","HELP","KILL CONNECTION","KILLALL QUERIES","LOAD DATA","LOAD INDEX INTO CACHE","LOAD XML","LOCK INSTANCE FOR BACKUP","LOCK TABLES","MASTER_POS_WAIT","OPTIMIZE TABLE","PREPARE","PURGE BINARY LOGS","REBALANCE PARTITIONS","RELEASE SAVEPOINT","REMOVE AGGREGATOR","REMOVE LEAF","REPAIR TABLE","REPLACE","REPLICATE DATABASE","RESET","RESET MASTER","RESET PERSIST","RESET REPLICA","RESET SLAVE","RESTART","RESTORE DATABASE","RESTORE REDUNDANCY","REVOKE","ROLLBACK","ROLLBACK TO SAVEPOINT","SAVEPOINT","SET CHARACTER SET","SET DEFAULT ROLE","SET NAMES","SET PASSWORD","SET RESOURCE GROUP","SET ROLE","SET TRANSACTION","SHOW","SHOW CHARACTER SET","SHOW COLLATION","SHOW COLUMNS","SHOW CREATE DATABASE","SHOW CREATE FUNCTION","SHOW CREATE PIPELINE","SHOW CREATE PROCEDURE","SHOW CREATE TABLE","SHOW CREATE USER","SHOW CREATE VIEW","SHOW DATABASES","SHOW ENGINE","SHOW ENGINES","SHOW ERRORS","SHOW FUNCTION CODE","SHOW FUNCTION STATUS","SHOW GRANTS","SHOW INDEX","SHOW MASTER STATUS","SHOW OPEN TABLES","SHOW PLUGINS","SHOW PRIVILEGES","SHOW PROCEDURE CODE","SHOW PROCEDURE STATUS","SHOW PROCESSLIST","SHOW PROFILE","SHOW PROFILES","SHOW RELAYLOG EVENTS","SHOW REPLICA STATUS","SHOW REPLICAS","SHOW SLAVE","SHOW SLAVE HOSTS","SHOW STATUS","SHOW TABLE STATUS","SHOW TABLES","SHOW VARIABLES","SHOW WARNINGS","SHUTDOWN","SNAPSHOT DATABASE","SOURCE_POS_WAIT","START GROUP_REPLICATION","START PIPELINE","START REPLICA","START SLAVE","START TRANSACTION","STOP GROUP_REPLICATION","STOP PIPELINE","STOP REPLICA","STOP REPLICATING","STOP SLAVE","TEST PIPELINE","UNLOCK INSTANCE","UNLOCK TABLES","USE","XA","ITERATE","LEAVE","LOOP","REPEAT","RETURN","WHILE"]),lVc=oc(["UNION [ALL | DISTINCT]","EXCEPT","INTERSECT","MINUS"]),uVc=oc(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN","NATURAL {LEFT | RIGHT} [OUTER] JOIN","STRAIGHT_JOIN"]),gVc=oc(["ON DELETE","ON UPDATE","CHARACTER SET","{ROWS | RANGE} BETWEEN","IDENTIFIED BY"]),AVc={name:"singlestoredb",tokenizerOptions:{reservedSelect:aVc,reservedClauses:[...cVc,...cUi,...iVr],reservedSetOperations:lVc,reservedJoins:uVc,reservedPhrases:gVc,reservedKeywords:iVc,reservedDataTypes:sVc,reservedFunctionNames:oVc,stringTypes:['""-qq-bs',"''-qq-bs",{quote:"''-raw",prefixes:["B","X"],requirePrefix:!0}],identTypes:["``"],identChars:{first:"$",rest:"$",allowFirstCharNumber:!0},variableTypes:[{regex:"@@?[A-Za-z0-9_$]+"},{quote:"``",prefixes:["@"],requirePrefix:!0}],lineCommentTypes:["--","#"],operators:[":=","&","|","^","~","<<",">>","<=>","&&","||","::","::$","::%",":>","!:>","*.*"],postProcess:Lvt},formatOptions:{alwaysDenseOperators:["::","::$","::%"],onelineClauses:[...cUi,...iVr],tabularOnelineClauses:iVr}},dVc=["ABS","ACOS","ACOSH","ADD_MONTHS","ALL_USER_NAMES","ANY_VALUE","APPROX_COUNT_DISTINCT","APPROX_PERCENTILE","APPROX_PERCENTILE_ACCUMULATE","APPROX_PERCENTILE_COMBINE","APPROX_PERCENTILE_ESTIMATE","APPROX_TOP_K","APPROX_TOP_K_ACCUMULATE","APPROX_TOP_K_COMBINE","APPROX_TOP_K_ESTIMATE","APPROXIMATE_JACCARD_INDEX","APPROXIMATE_SIMILARITY","ARRAY_AGG","ARRAY_APPEND","ARRAY_CAT","ARRAY_COMPACT","ARRAY_CONSTRUCT","ARRAY_CONSTRUCT_COMPACT","ARRAY_CONTAINS","ARRAY_INSERT","ARRAY_INTERSECTION","ARRAY_POSITION","ARRAY_PREPEND","ARRAY_SIZE","ARRAY_SLICE","ARRAY_TO_STRING","ARRAY_UNION_AGG","ARRAY_UNIQUE_AGG","ARRAYS_OVERLAP","AS_ARRAY","AS_BINARY","AS_BOOLEAN","AS_CHAR","AS_VARCHAR","AS_DATE","AS_DECIMAL","AS_NUMBER","AS_DOUBLE","AS_REAL","AS_INTEGER","AS_OBJECT","AS_TIME","AS_TIMESTAMP_LTZ","AS_TIMESTAMP_NTZ","AS_TIMESTAMP_TZ","ASCII","ASIN","ASINH","ATAN","ATAN2","ATANH","AUTO_REFRESH_REGISTRATION_HISTORY","AUTOMATIC_CLUSTERING_HISTORY","AVG","BASE64_DECODE_BINARY","BASE64_DECODE_STRING","BASE64_ENCODE","BIT_LENGTH","BITAND","BITAND_AGG","BITMAP_BIT_POSITION","BITMAP_BUCKET_NUMBER","BITMAP_CONSTRUCT_AGG","BITMAP_COUNT","BITMAP_OR_AGG","BITNOT","BITOR","BITOR_AGG","BITSHIFTLEFT","BITSHIFTRIGHT","BITXOR","BITXOR_AGG","BOOLAND","BOOLAND_AGG","BOOLNOT","BOOLOR","BOOLOR_AGG","BOOLXOR","BOOLXOR_AGG","BUILD_SCOPED_FILE_URL","BUILD_STAGE_FILE_URL","CASE","CAST","CBRT","CEIL","CHARINDEX","CHECK_JSON","CHECK_XML","CHR","CHAR","COALESCE","COLLATE","COLLATION","COMPLETE_TASK_GRAPHS","COMPRESS","CONCAT","CONCAT_WS","CONDITIONAL_CHANGE_EVENT","CONDITIONAL_TRUE_EVENT","CONTAINS","CONVERT_TIMEZONE","COPY_HISTORY","CORR","COS","COSH","COT","COUNT","COUNT_IF","COVAR_POP","COVAR_SAMP","CUME_DIST","CURRENT_ACCOUNT","CURRENT_AVAILABLE_ROLES","CURRENT_CLIENT","CURRENT_DATABASE","CURRENT_DATE","CURRENT_IP_ADDRESS","CURRENT_REGION","CURRENT_ROLE","CURRENT_SCHEMA","CURRENT_SCHEMAS","CURRENT_SECONDARY_ROLES","CURRENT_SESSION","CURRENT_STATEMENT","CURRENT_TASK_GRAPHS","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TRANSACTION","CURRENT_USER","CURRENT_VERSION","CURRENT_WAREHOUSE","DATA_TRANSFER_HISTORY","DATABASE_REFRESH_HISTORY","DATABASE_REFRESH_PROGRESS","DATABASE_REFRESH_PROGRESS_BY_JOB","DATABASE_STORAGE_USAGE_HISTORY","DATE_FROM_PARTS","DATE_PART","DATE_TRUNC","DATEADD","DATEDIFF","DAYNAME","DECODE","DECOMPRESS_BINARY","DECOMPRESS_STRING","DECRYPT","DECRYPT_RAW","DEGREES","DENSE_RANK","DIV0","EDITDISTANCE","ENCRYPT","ENCRYPT_RAW","ENDSWITH","EQUAL_NULL","EXP","EXPLAIN_JSON","EXTERNAL_FUNCTIONS_HISTORY","EXTERNAL_TABLE_FILES","EXTERNAL_TABLE_FILE_REGISTRATION_HISTORY","EXTRACT","EXTRACT_SEMANTIC_CATEGORIES","FACTORIAL","FIRST_VALUE","FLATTEN","FLOOR","GENERATE_COLUMN_DESCRIPTION","GENERATOR","GET","GET_ABSOLUTE_PATH","GET_DDL","GET_IGNORE_CASE","GET_OBJECT_REFERENCES","GET_PATH","GET_PRESIGNED_URL","GET_RELATIVE_PATH","GET_STAGE_LOCATION","GETBIT","GREATEST","GREATEST_IGNORE_NULLS","GROUPING","GROUPING_ID","HASH","HASH_AGG","HAVERSINE","HEX_DECODE_BINARY","HEX_DECODE_STRING","HEX_ENCODE","HLL","HLL_ACCUMULATE","HLL_COMBINE","HLL_ESTIMATE","HLL_EXPORT","HLL_IMPORT","HOUR","MINUTE","SECOND","IFF","IFNULL","ILIKE","ILIKE ANY","INFER_SCHEMA","INITCAP","INSERT","INVOKER_ROLE","INVOKER_SHARE","IS_ARRAY","IS_BINARY","IS_BOOLEAN","IS_CHAR","IS_VARCHAR","IS_DATE","IS_DATE_VALUE","IS_DECIMAL","IS_DOUBLE","IS_REAL","IS_GRANTED_TO_INVOKER_ROLE","IS_INTEGER","IS_NULL_VALUE","IS_OBJECT","IS_ROLE_IN_SESSION","IS_TIME","IS_TIMESTAMP_LTZ","IS_TIMESTAMP_NTZ","IS_TIMESTAMP_TZ","JAROWINKLER_SIMILARITY","JSON_EXTRACT_PATH_TEXT","KURTOSIS","LAG","LAST_DAY","LAST_QUERY_ID","LAST_TRANSACTION","LAST_VALUE","LEAD","LEAST","LEFT","LENGTH","LEN","LIKE","LIKE ALL","LIKE ANY","LISTAGG","LN","LOCALTIME","LOCALTIMESTAMP","LOG","LOGIN_HISTORY","LOGIN_HISTORY_BY_USER","LOWER","LPAD","LTRIM","MATERIALIZED_VIEW_REFRESH_HISTORY","MD5","MD5_HEX","MD5_BINARY","MD5_NUMBER \u2014 Obsoleted","MD5_NUMBER_LOWER64","MD5_NUMBER_UPPER64","MEDIAN","MIN","MAX","MINHASH","MINHASH_COMBINE","MOD","MODE","MONTHNAME","MONTHS_BETWEEN","NEXT_DAY","NORMAL","NTH_VALUE","NTILE","NULLIF","NULLIFZERO","NVL","NVL2","OBJECT_AGG","OBJECT_CONSTRUCT","OBJECT_CONSTRUCT_KEEP_NULL","OBJECT_DELETE","OBJECT_INSERT","OBJECT_KEYS","OBJECT_PICK","OCTET_LENGTH","PARSE_IP","PARSE_JSON","PARSE_URL","PARSE_XML","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","PI","PIPE_USAGE_HISTORY","POLICY_CONTEXT","POLICY_REFERENCES","POSITION","POW","POWER","PREVIOUS_DAY","QUERY_ACCELERATION_HISTORY","QUERY_HISTORY","QUERY_HISTORY_BY_SESSION","QUERY_HISTORY_BY_USER","QUERY_HISTORY_BY_WAREHOUSE","RADIANS","RANDOM","RANDSTR","RANK","RATIO_TO_REPORT","REGEXP","REGEXP_COUNT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","REGEXP_SUBSTR_ALL","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","REGR_VALX","REGR_VALY","REPEAT","REPLACE","REPLICATION_GROUP_REFRESH_HISTORY","REPLICATION_GROUP_REFRESH_PROGRESS","REPLICATION_GROUP_REFRESH_PROGRESS_BY_JOB","REPLICATION_GROUP_USAGE_HISTORY","REPLICATION_USAGE_HISTORY","REST_EVENT_HISTORY","RESULT_SCAN","REVERSE","RIGHT","RLIKE","ROUND","ROW_NUMBER","RPAD","RTRIM","RTRIMMED_LENGTH","SEARCH_OPTIMIZATION_HISTORY","SEQ1","SEQ2","SEQ4","SEQ8","SERVERLESS_TASK_HISTORY","SHA1","SHA1_HEX","SHA1_BINARY","SHA2","SHA2_HEX","SHA2_BINARY","SIGN","SIN","SINH","SKEW","SOUNDEX","SPACE","SPLIT","SPLIT_PART","SPLIT_TO_TABLE","SQRT","SQUARE","ST_AREA","ST_ASEWKB","ST_ASEWKT","ST_ASGEOJSON","ST_ASWKB","ST_ASBINARY","ST_ASWKT","ST_ASTEXT","ST_AZIMUTH","ST_CENTROID","ST_COLLECT","ST_CONTAINS","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DWITHIN","ST_ENDPOINT","ST_ENVELOPE","ST_GEOGFROMGEOHASH","ST_GEOGPOINTFROMGEOHASH","ST_GEOGRAPHYFROMWKB","ST_GEOGRAPHYFROMWKT","ST_GEOHASH","ST_GEOMETRYFROMWKB","ST_GEOMETRYFROMWKT","ST_HAUSDORFFDISTANCE","ST_INTERSECTION","ST_INTERSECTS","ST_LENGTH","ST_MAKEGEOMPOINT","ST_GEOM_POINT","ST_MAKELINE","ST_MAKEPOINT","ST_POINT","ST_MAKEPOLYGON","ST_POLYGON","ST_NPOINTS","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SETSRID","ST_SIMPLIFY","ST_SRID","ST_STARTPOINT","ST_SYMDIFFERENCE","ST_UNION","ST_WITHIN","ST_X","ST_XMAX","ST_XMIN","ST_Y","ST_YMAX","ST_YMIN","STAGE_DIRECTORY_FILE_REGISTRATION_HISTORY","STAGE_STORAGE_USAGE_HISTORY","STARTSWITH","STDDEV","STDDEV_POP","STDDEV_SAMP","STRIP_NULL_VALUE","STRTOK","STRTOK_SPLIT_TO_TABLE","STRTOK_TO_ARRAY","SUBSTR","SUBSTRING","SUM","SYSDATE","SYSTEM$ABORT_SESSION","SYSTEM$ABORT_TRANSACTION","SYSTEM$AUTHORIZE_PRIVATELINK","SYSTEM$AUTHORIZE_STAGE_PRIVATELINK_ACCESS","SYSTEM$BEHAVIOR_CHANGE_BUNDLE_STATUS","SYSTEM$CANCEL_ALL_QUERIES","SYSTEM$CANCEL_QUERY","SYSTEM$CLUSTERING_DEPTH","SYSTEM$CLUSTERING_INFORMATION","SYSTEM$CLUSTERING_RATIO ","SYSTEM$CURRENT_USER_TASK_NAME","SYSTEM$DATABASE_REFRESH_HISTORY ","SYSTEM$DATABASE_REFRESH_PROGRESS","SYSTEM$DATABASE_REFRESH_PROGRESS_BY_JOB ","SYSTEM$DISABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$DISABLE_DATABASE_REPLICATION","SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE","SYSTEM$ESTIMATE_QUERY_ACCELERATION","SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS","SYSTEM$EXPLAIN_JSON_TO_TEXT","SYSTEM$EXPLAIN_PLAN_JSON","SYSTEM$EXTERNAL_TABLE_PIPE_STATUS","SYSTEM$GENERATE_SAML_CSR","SYSTEM$GENERATE_SCIM_ACCESS_TOKEN","SYSTEM$GET_AWS_SNS_IAM_POLICY","SYSTEM$GET_PREDECESSOR_RETURN_VALUE","SYSTEM$GET_PRIVATELINK","SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS","SYSTEM$GET_PRIVATELINK_CONFIG","SYSTEM$GET_SNOWFLAKE_PLATFORM_INFO","SYSTEM$GET_TAG","SYSTEM$GET_TAG_ALLOWED_VALUES","SYSTEM$GET_TAG_ON_CURRENT_COLUMN","SYSTEM$GET_TAG_ON_CURRENT_TABLE","SYSTEM$GLOBAL_ACCOUNT_SET_PARAMETER","SYSTEM$LAST_CHANGE_COMMIT_TIME","SYSTEM$LINK_ACCOUNT_OBJECTS_BY_NAME","SYSTEM$MIGRATE_SAML_IDP_REGISTRATION","SYSTEM$PIPE_FORCE_RESUME","SYSTEM$PIPE_STATUS","SYSTEM$REVOKE_PRIVATELINK","SYSTEM$REVOKE_STAGE_PRIVATELINK_ACCESS","SYSTEM$SET_RETURN_VALUE","SYSTEM$SHOW_OAUTH_CLIENT_SECRETS","SYSTEM$STREAM_GET_TABLE_TIMESTAMP","SYSTEM$STREAM_HAS_DATA","SYSTEM$TASK_DEPENDENTS_ENABLE","SYSTEM$TYPEOF","SYSTEM$USER_TASK_CANCEL_ONGOING_EXECUTIONS","SYSTEM$VERIFY_EXTERNAL_OAUTH_TOKEN","SYSTEM$WAIT","SYSTEM$WHITELIST","SYSTEM$WHITELIST_PRIVATELINK","TAG_REFERENCES","TAG_REFERENCES_ALL_COLUMNS","TAG_REFERENCES_WITH_LINEAGE","TAN","TANH","TASK_DEPENDENTS","TASK_HISTORY","TIME_FROM_PARTS","TIME_SLICE","TIMEADD","TIMEDIFF","TIMESTAMP_FROM_PARTS","TIMESTAMPADD","TIMESTAMPDIFF","TO_ARRAY","TO_BINARY","TO_BOOLEAN","TO_CHAR","TO_VARCHAR","TO_DATE","DATE","TO_DECIMAL","TO_NUMBER","TO_NUMERIC","TO_DOUBLE","TO_GEOGRAPHY","TO_GEOMETRY","TO_JSON","TO_OBJECT","TO_TIME","TIME","TO_TIMESTAMP","TO_TIMESTAMP_LTZ","TO_TIMESTAMP_NTZ","TO_TIMESTAMP_TZ","TO_VARIANT","TO_XML","TRANSLATE","TRIM","TRUNCATE","TRUNC","TRUNC","TRY_BASE64_DECODE_BINARY","TRY_BASE64_DECODE_STRING","TRY_CAST","TRY_HEX_DECODE_BINARY","TRY_HEX_DECODE_STRING","TRY_PARSE_JSON","TRY_TO_BINARY","TRY_TO_BOOLEAN","TRY_TO_DATE","TRY_TO_DECIMAL","TRY_TO_NUMBER","TRY_TO_NUMERIC","TRY_TO_DOUBLE","TRY_TO_GEOGRAPHY","TRY_TO_GEOMETRY","TRY_TO_TIME","TRY_TO_TIMESTAMP","TRY_TO_TIMESTAMP_LTZ","TRY_TO_TIMESTAMP_NTZ","TRY_TO_TIMESTAMP_TZ","TYPEOF","UNICODE","UNIFORM","UPPER","UUID_STRING","VALIDATE","VALIDATE_PIPE_LOAD","VAR_POP","VAR_SAMP","VARIANCE","VARIANCE_SAMP","VARIANCE_POP","WAREHOUSE_LOAD_HISTORY","WAREHOUSE_METERING_HISTORY","WIDTH_BUCKET","XMLGET","YEAR","YEAROFWEEK","YEAROFWEEKISO","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFWEEKISO","DAYOFYEAR","WEEK","WEEK","WEEKOFYEAR","WEEKISO","MONTH","QUARTER","ZEROIFNULL","ZIPF"],pVc=["ACCOUNT","ALL","ALTER","AND","ANY","AS","BETWEEN","BY","CASE","CAST","CHECK","COLUMN","CONNECT","CONNECTION","CONSTRAINT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","DATABASE","DELETE","DISTINCT","DROP","ELSE","EXISTS","FALSE","FOLLOWING","FOR","FROM","FULL","GRANT","GROUP","GSCLUSTER","HAVING","ILIKE","IN","INCREMENT","INNER","INSERT","INTERSECT","INTO","IS","ISSUE","JOIN","LATERAL","LEFT","LIKE","LOCALTIME","LOCALTIMESTAMP","MINUS","NATURAL","NOT","NULL","OF","ON","OR","ORDER","ORGANIZATION","QUALIFY","REGEXP","REVOKE","RIGHT","RLIKE","ROW","ROWS","SAMPLE","SCHEMA","SELECT","SET","SOME","START","TABLE","TABLESAMPLE","THEN","TO","TRIGGER","TRUE","TRY_CAST","UNION","UNIQUE","UPDATE","USING","VALUES","VIEW","WHEN","WHENEVER","WHERE","WITH","COMMENT"],fVc=["NUMBER","DECIMAL","NUMERIC","INT","INTEGER","BIGINT","SMALLINT","TINYINT","BYTEINT","FLOAT","FLOAT4","FLOAT8","DOUBLE","DOUBLE PRECISION","REAL","VARCHAR","CHAR","CHARACTER","STRING","TEXT","BINARY","VARBINARY","BOOLEAN","DATE","DATETIME","TIME","TIMESTAMP","TIMESTAMP_LTZ","TIMESTAMP_NTZ","TIMESTAMP","TIMESTAMP_TZ","VARIANT","OBJECT","ARRAY","GEOGRAPHY","GEOMETRY"],IVc=oc(["SELECT [ALL | DISTINCT]"]),hVc=oc(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY","QUALIFY","LIMIT","OFFSET","FETCH [FIRST | NEXT]","INSERT [OVERWRITE] [ALL INTO | INTO | ALL | FIRST]","{THEN | ELSE} INTO","VALUES","SET","CLUSTER BY","[WITH] {MASKING POLICY | TAG | ROW ACCESS POLICY}","COPY GRANTS","USING TEMPLATE","MERGE INTO","WHEN MATCHED [AND]","THEN {UPDATE SET | DELETE}","WHEN NOT MATCHED THEN INSERT"]),lUi=oc(["CREATE [OR REPLACE] [VOLATILE] TABLE [IF NOT EXISTS]","CREATE [OR REPLACE] [LOCAL | GLOBAL] {TEMP|TEMPORARY} TABLE [IF NOT EXISTS]"]),sVr=oc(["CREATE [OR REPLACE] [SECURE] [RECURSIVE] VIEW [IF NOT EXISTS]","UPDATE","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","RENAME TO","SWAP WITH","[SUSPEND | RESUME] RECLUSTER","DROP CLUSTERING KEY","ADD [COLUMN]","RENAME COLUMN","{ALTER | MODIFY} [COLUMN]","DROP [COLUMN]","{ADD | ALTER | MODIFY | DROP} [CONSTRAINT]","RENAME CONSTRAINT","{ADD | DROP} SEARCH OPTIMIZATION","{SET | UNSET} TAG","{ADD | DROP} ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","{SET | DROP} DEFAULT","{SET | DROP} NOT NULL","SET DATA TYPE","UNSET COMMENT","{SET | UNSET} MASKING POLICY","TRUNCATE [TABLE] [IF EXISTS]","ALTER ACCOUNT","ALTER API INTEGRATION","ALTER CONNECTION","ALTER DATABASE","ALTER EXTERNAL TABLE","ALTER FAILOVER GROUP","ALTER FILE FORMAT","ALTER FUNCTION","ALTER INTEGRATION","ALTER MASKING POLICY","ALTER MATERIALIZED VIEW","ALTER NETWORK POLICY","ALTER NOTIFICATION INTEGRATION","ALTER PIPE","ALTER PROCEDURE","ALTER REPLICATION GROUP","ALTER RESOURCE MONITOR","ALTER ROLE","ALTER ROW ACCESS POLICY","ALTER SCHEMA","ALTER SECURITY INTEGRATION","ALTER SEQUENCE","ALTER SESSION","ALTER SESSION POLICY","ALTER SHARE","ALTER STAGE","ALTER STORAGE INTEGRATION","ALTER STREAM","ALTER TAG","ALTER TASK","ALTER USER","ALTER VIEW","ALTER WAREHOUSE","BEGIN","CALL","COMMIT","COPY INTO","CREATE ACCOUNT","CREATE API INTEGRATION","CREATE CONNECTION","CREATE DATABASE","CREATE EXTERNAL FUNCTION","CREATE EXTERNAL TABLE","CREATE FAILOVER GROUP","CREATE FILE FORMAT","CREATE FUNCTION","CREATE INTEGRATION","CREATE MANAGED ACCOUNT","CREATE MASKING POLICY","CREATE MATERIALIZED VIEW","CREATE NETWORK POLICY","CREATE NOTIFICATION INTEGRATION","CREATE PIPE","CREATE PROCEDURE","CREATE REPLICATION GROUP","CREATE RESOURCE MONITOR","CREATE ROLE","CREATE ROW ACCESS POLICY","CREATE SCHEMA","CREATE SECURITY INTEGRATION","CREATE SEQUENCE","CREATE SESSION POLICY","CREATE SHARE","CREATE STAGE","CREATE STORAGE INTEGRATION","CREATE STREAM","CREATE TAG","CREATE TASK","CREATE USER","CREATE WAREHOUSE","DELETE","DESCRIBE DATABASE","DESCRIBE EXTERNAL TABLE","DESCRIBE FILE FORMAT","DESCRIBE FUNCTION","DESCRIBE INTEGRATION","DESCRIBE MASKING POLICY","DESCRIBE MATERIALIZED VIEW","DESCRIBE NETWORK POLICY","DESCRIBE PIPE","DESCRIBE PROCEDURE","DESCRIBE RESULT","DESCRIBE ROW ACCESS POLICY","DESCRIBE SCHEMA","DESCRIBE SEQUENCE","DESCRIBE SESSION POLICY","DESCRIBE SHARE","DESCRIBE STAGE","DESCRIBE STREAM","DESCRIBE TABLE","DESCRIBE TASK","DESCRIBE TRANSACTION","DESCRIBE USER","DESCRIBE VIEW","DESCRIBE WAREHOUSE","DROP CONNECTION","DROP DATABASE","DROP EXTERNAL TABLE","DROP FAILOVER GROUP","DROP FILE FORMAT","DROP FUNCTION","DROP INTEGRATION","DROP MANAGED ACCOUNT","DROP MASKING POLICY","DROP MATERIALIZED VIEW","DROP NETWORK POLICY","DROP PIPE","DROP PROCEDURE","DROP REPLICATION GROUP","DROP RESOURCE MONITOR","DROP ROLE","DROP ROW ACCESS POLICY","DROP SCHEMA","DROP SEQUENCE","DROP SESSION POLICY","DROP SHARE","DROP STAGE","DROP STREAM","DROP TAG","DROP TASK","DROP USER","DROP VIEW","DROP WAREHOUSE","EXECUTE IMMEDIATE","EXECUTE TASK","EXPLAIN","GET","GRANT OWNERSHIP","GRANT ROLE","INSERT","LIST","MERGE","PUT","REMOVE","REVOKE ROLE","ROLLBACK","SHOW COLUMNS","SHOW CONNECTIONS","SHOW DATABASES","SHOW DATABASES IN FAILOVER GROUP","SHOW DATABASES IN REPLICATION GROUP","SHOW DELEGATED AUTHORIZATIONS","SHOW EXTERNAL FUNCTIONS","SHOW EXTERNAL TABLES","SHOW FAILOVER GROUPS","SHOW FILE FORMATS","SHOW FUNCTIONS","SHOW GLOBAL ACCOUNTS","SHOW GRANTS","SHOW INTEGRATIONS","SHOW LOCKS","SHOW MANAGED ACCOUNTS","SHOW MASKING POLICIES","SHOW MATERIALIZED VIEWS","SHOW NETWORK POLICIES","SHOW OBJECTS","SHOW ORGANIZATION ACCOUNTS","SHOW PARAMETERS","SHOW PIPES","SHOW PRIMARY KEYS","SHOW PROCEDURES","SHOW REGIONS","SHOW REPLICATION ACCOUNTS","SHOW REPLICATION DATABASES","SHOW REPLICATION GROUPS","SHOW RESOURCE MONITORS","SHOW ROLES","SHOW ROW ACCESS POLICIES","SHOW SCHEMAS","SHOW SEQUENCES","SHOW SESSION POLICIES","SHOW SHARES","SHOW SHARES IN FAILOVER GROUP","SHOW SHARES IN REPLICATION GROUP","SHOW STAGES","SHOW STREAMS","SHOW TABLES","SHOW TAGS","SHOW TASKS","SHOW TRANSACTIONS","SHOW USER FUNCTIONS","SHOW USERS","SHOW VARIABLES","SHOW VIEWS","SHOW WAREHOUSES","TRUNCATE MATERIALIZED VIEW","UNDROP DATABASE","UNDROP SCHEMA","UNDROP TABLE","UNDROP TAG","UNSET","USE DATABASE","USE ROLE","USE SCHEMA","USE SECONDARY ROLES","USE WAREHOUSE"]),mVc=oc(["UNION [ALL]","MINUS","EXCEPT","INTERSECT"]),CVc=oc(["[INNER] JOIN","[NATURAL] {LEFT | RIGHT | FULL} [OUTER] JOIN","{CROSS | NATURAL} JOIN"]),_Vc=oc(["{ROWS | RANGE} BETWEEN","ON {UPDATE | DELETE} [SET NULL | SET DEFAULT]"]),yVc={name:"snowflake",tokenizerOptions:{reservedSelect:IVc,reservedClauses:[...hVc,...lUi,...sVr],reservedSetOperations:mVc,reservedJoins:CVc,reservedPhrases:_Vc,reservedKeywords:pVc,reservedDataTypes:fVc,reservedFunctionNames:dVc,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq'],variableTypes:[{regex:"[$][1-9]\\d*"},{regex:"[$][_a-zA-Z][_a-zA-Z0-9$]*"}],extraParens:["[]"],identChars:{rest:"$"},lineCommentTypes:["--","//"],operators:["%","::","||","=>",":="],propertyAccessOperators:[":"]},formatOptions:{alwaysDenseOperators:["::"],onelineClauses:[...lUi,...sVr],tabularOnelineClauses:sVr}},MKe=e=>e[e.length-1],wUi=e=>e.sort((t,r)=>r.length-t.length||t.localeCompare(r)),Gvt=e=>e.replace(/\s+/gu," "),oVr=e=>/\n/.test(e),b4=e=>e.replace(/[.*+?^${}()|[\]\\]/gu,"\\$&"),uUi=/\s+/uy,zCe=e=>new RegExp(`(?:${e})`,"uy"),bVc=e=>e.split("").map(t=>/ /gu.test(t)?"\\s+":`[${t.toUpperCase()}${t.toLowerCase()}]`).join(""),EVc=e=>e+"(?:-"+e+")*",SVc=({prefixes:e,requirePrefix:t})=>`(?:${e.map(bVc).join("|")}${t?"":"|"})`,vVc=e=>new RegExp(`(?:${e.map(b4).join("|")}).*?(?=\r |\r| -|$)`,"uy"),gUi=(e,t=[])=>{let r=e==="open"?0:1,n=["()",...t].map(a=>a[r]);return zCe(n.map(b4).join("|"))},AUi=e=>zCe(`${wUi(e).map(b4).join("|")}`),vVc=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",$ce=(e,t={})=>{if(e.length===0)return/^\b$/u;let r=vVc(t),n=wUi(e).map(b4).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${r}\\b`,"iuy")},aVr=(e,t)=>{if(!e.length)return;let r=e.map(b4).join("|");return zCe(`(?:${r})(?:${t})`)},BVc=()=>{let e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",r=Object.entries(e).map(([l,A])=>t.replace(/{left}/g,b4(l)).replace(/{right}/g,b4(A))),n=b4(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${r.join("|")})'`},dUi={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":BVc()},TUi=e=>typeof e=="string"?dUi[e]:"regex"in e?e.regex:EVc(e)+dUi[e.quote],wVc=e=>zCe(e.map(t=>"regex"in t?t.regex:TUi(t)).join("|")),RUi=e=>e.map(TUi).join("|"),pUi=e=>zCe(RUi(e)),TVc=(e={})=>zCe(NUi(e)),NUi=({first:e,rest:t,dashes:r,allowFirstCharNumber:n}={})=>{let a="\\p{Alphabetic}\\p{Mark}_",o="\\p{Decimal_Number}",l=b4(e??""),A=b4(t??""),f=n?`[${a}${o}${l}][${a}${o}${A}]*`:`[${a}${l}][${a}${o}${A}]*`;return r?bVc(f):f};function DUi(e,t){let r=e.slice(0,t).split(/\n/);return{line:r.length,col:r[r.length-1].length+1}}var RVc=class{constructor(e,t){this.rules=e,this.dialectName=t,this.input="",this.index=0}tokenize(e){this.input=e,this.index=0;let t=[],r;for(;this.index{let r=e==="open"?0:1,n=["()",...t].map(a=>a[r]);return zCe(n.map(b4).join("|"))},AUi=e=>zCe(`${wUi(e).map(b4).join("|")}`),BVc=({rest:e,dashes:t})=>e||t?`(?![${e||""}${t?"-":""}])`:"",$ce=(e,t={})=>{if(e.length===0)return/^\b$/u;let r=BVc(t),n=wUi(e).map(b4).join("|").replace(/ /gu,"\\s+");return new RegExp(`(?:${n})${r}\\b`,"iuy")},aVr=(e,t)=>{if(!e.length)return;let r=e.map(b4).join("|");return zCe(`(?:${r})(?:${t})`)},wVc=()=>{let e={"<":">","[":"]","(":")","{":"}"},t="{left}(?:(?!{right}').)*?{right}",r=Object.entries(e).map(([l,A])=>t.replace(/{left}/g,b4(l)).replace(/{right}/g,b4(A))),n=b4(Object.keys(e).join(""));return`[Qq]'(?:${String.raw`(?[^\s${n}])(?:(?!\k').)*?\k`}|${r.join("|")})'`},dUi={"``":"(?:`[^`]*`)+","[]":String.raw`(?:\[[^\]]*\])(?:\][^\]]*\])*`,'""-qq':String.raw`(?:"[^"]*")+`,'""-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")`,'""-qq-bs':String.raw`(?:"[^"\\]*(?:\\.[^"\\]*)*")+`,'""-raw':String.raw`(?:"[^"]*")`,"''-qq":String.raw`(?:'[^']*')+`,"''-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')`,"''-qq-bs":String.raw`(?:'[^'\\]*(?:\\.[^'\\]*)*')+`,"''-raw":String.raw`(?:'[^']*')`,$$:String.raw`(?\$\w*\$)[\s\S]*?\k`,"'''..'''":String.raw`'''[^\\]*?(?:\\.[^\\]*?)*?'''`,'""".."""':String.raw`"""[^\\]*?(?:\\.[^\\]*?)*?"""`,"{}":String.raw`(?:\{[^\}]*\})`,"q''":wVc()},TUi=e=>typeof e=="string"?dUi[e]:"regex"in e?e.regex:SVc(e)+dUi[e.quote],TVc=e=>zCe(e.map(t=>"regex"in t?t.regex:TUi(t)).join("|")),RUi=e=>e.map(TUi).join("|"),pUi=e=>zCe(RUi(e)),RVc=(e={})=>zCe(NUi(e)),NUi=({first:e,rest:t,dashes:r,allowFirstCharNumber:n}={})=>{let a="\\p{Alphabetic}\\p{Mark}_",o="\\p{Decimal_Number}",l=b4(e??""),A=b4(t??""),f=n?`[${a}${o}${l}][${a}${o}${A}]*`:`[${a}${l}][${a}${o}${A}]*`;return r?EVc(f):f};function DUi(e,t){let r=e.slice(0,t).split(/\n/);return{line:r.length,col:r[r.length-1].length+1}}var NVc=class{constructor(e,t){this.rules=e,this.dialectName=t,this.input="",this.index=0}tokenize(e){this.input=e,this.index=0;let t=[],r;for(;this.index0;)if(r=this.matchSection(fUi,e))t+=r,n++;else if(r=this.matchSection(DVc,e))t+=r,n--;else if(r=this.matchSection(NVc,e))t+=r;else return null;return[t]}matchSection(e,t){e.lastIndex=this.lastIndex;let r=e.exec(t);return r&&(this.lastIndex+=r[0].length),r?r[0]:null}},xVc=class{constructor(e,t){this.cfg=e,this.dialectName=t,this.rulesBeforeParams=this.buildRulesBeforeParams(e),this.rulesAfterParams=this.buildRulesAfterParams(e)}tokenize(e,t){let r=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,t),...this.rulesAfterParams],n=new RVc(r,this.dialectName).tokenize(e);return this.cfg.postProcess?this.cfg.postProcess(n):n}buildRulesBeforeParams(e){var t,r;return this.validRules([{type:"BLOCK_COMMENT",regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:"BLOCK_COMMENT",regex:e.nestedBlockComments?new kVc:/(\/\*[^]*?\*\/)/uy},{type:"LINE_COMMENT",regex:SVc((t=e.lineCommentTypes)!=null?t:["--"])},{type:"QUOTED_IDENTIFIER",regex:pUi(e.identTypes)},{type:"NUMBER",regex:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:"RESERVED_PHRASE",regex:$ce((r=e.reservedPhrases)!=null?r:[],e.identChars),text:dD},{type:"CASE",regex:/CASE\b/iuy,text:dD},{type:"END",regex:/END\b/iuy,text:dD},{type:"BETWEEN",regex:/BETWEEN\b/iuy,text:dD},{type:"LIMIT",regex:e.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:dD},{type:"RESERVED_CLAUSE",regex:$ce(e.reservedClauses,e.identChars),text:dD},{type:"RESERVED_SELECT",regex:$ce(e.reservedSelect,e.identChars),text:dD},{type:"RESERVED_SET_OPERATION",regex:$ce(e.reservedSetOperations,e.identChars),text:dD},{type:"WHEN",regex:/WHEN\b/iuy,text:dD},{type:"ELSE",regex:/ELSE\b/iuy,text:dD},{type:"THEN",regex:/THEN\b/iuy,text:dD},{type:"RESERVED_JOIN",regex:$ce(e.reservedJoins,e.identChars),text:dD},{type:"AND",regex:/AND\b/iuy,text:dD},{type:"OR",regex:/OR\b/iuy,text:dD},{type:"XOR",regex:e.supportsXor?/XOR\b/iuy:void 0,text:dD},{type:"RESERVED_FUNCTION_NAME",regex:$ce(e.reservedFunctionNames,e.identChars),text:dD},{type:"RESERVED_DATA_TYPE",regex:$ce(e.reservedDataTypes,e.identChars),text:dD},{type:"RESERVED_KEYWORD",regex:$ce(e.reservedKeywords,e.identChars),text:dD}])}buildRulesAfterParams(e){var t,r;return this.validRules([{type:"VARIABLE",regex:e.variableTypes?wVc(e.variableTypes):void 0},{type:"STRING",regex:pUi(e.stringTypes)},{type:"IDENTIFIER",regex:TVc(e.identChars)},{type:"DELIMITER",regex:/[;]/uy},{type:"COMMA",regex:/[,]/y},{type:"OPEN_PAREN",regex:gUi("open",e.extraParens)},{type:"CLOSE_PAREN",regex:gUi("close",e.extraParens)},{type:"OPERATOR",regex:AUi(["+","-","/",">","<","=","<>","<=",">=","!=",...(t=e.operators)!=null?t:[]])},{type:"ASTERISK",regex:/[*]/uy},{type:"PROPERTY_ACCESS_OPERATOR",regex:AUi([".",...(r=e.propertyAccessOperators)!=null?r:[]])}])}buildParamRules(e,t){var r,n,a,o,l;let A={named:t?.named||((r=e.paramTypes)==null?void 0:r.named)||[],quoted:t?.quoted||((n=e.paramTypes)==null?void 0:n.quoted)||[],numbered:t?.numbered||((a=e.paramTypes)==null?void 0:a.numbered)||[],positional:typeof t?.positional=="boolean"?t.positional:(o=e.paramTypes)==null?void 0:o.positional,custom:t?.custom||((l=e.paramTypes)==null?void 0:l.custom)||[]};return this.validRules([{type:"NAMED_PARAMETER",regex:aVr(A.named,NUi(e.paramChars||e.identChars)),key:f=>f.slice(1)},{type:"QUOTED_PARAMETER",regex:aVr(A.quoted,RUi(e.identTypes)),key:f=>(({tokenKey:I,quoteChar:C})=>I.replace(new RegExp(b4("\\"+C),"gu"),C))({tokenKey:f.slice(2,-1),quoteChar:f.slice(-1)})},{type:"NUMBERED_PARAMETER",regex:aVr(A.numbered,"[0-9]+"),key:f=>f.slice(1)},{type:"POSITIONAL_PARAMETER",regex:A.positional?/[?]/y:void 0},...A.custom.map(f=>{var I;return{type:"CUSTOM_PARAMETER",regex:zCe(f.regex),key:(I=f.key)!=null?I:C=>C}})])}validRules(e){return e.filter(t=>!!t.regex)}},dD=e=>Gvt(e.toUpperCase()),IUi=new Map,GVc=e=>{let t=IUi.get(e);return t||(t=FVc(e),IUi.set(e,t)),t},FVc=e=>({tokenizer:new xVc(e.tokenizerOptions,e.name),formatOptions:ZVc(e.formatOptions)}),ZVc=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(r=>[r,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!=null?t:e.onelineClauses).map(r=>[r,!0]))}};function LVc(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function QDe(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}var VVc=class{constructor(e){this.params=e,this.index=0}get({key:e,text:t}){return this.params?e?this.params[e]:this.params[this.index++]:t}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(e){this.index=e}};function PVc(e){return e.map(WVc).map(OVc).map(MVc).map(HVc).map(YVc)}var WVc=(e,t,r)=>{if(BUi(e.type)){let n=QVc(r,t);if(n&&n.type==="PROPERTY_ACCESS_OPERATOR")return tL(qk({},e),{type:"IDENTIFIER",text:e.raw})}return e},OVc=(e,t,r)=>{if(e.type==="RESERVED_FUNCTION_NAME"){let n=HKe(r,t);if(!n||!xUi(n))return tL(qk({},e),{type:"RESERVED_KEYWORD"})}return e},MVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&xUi(n))return tL(qk({},e),{type:"RESERVED_PARAMETERIZED_DATA_TYPE"})}return e},HVc=(e,t,r)=>{if(e.type==="IDENTIFIER"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_IDENTIFIER"})}return e},YVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_KEYWORD"})}return e},QVc=(e,t)=>HKe(e,t,-1),HKe=(e,t,r=1)=>{let n=1;for(;e[t+n*r]&&XVc(e[t+n*r]);)n++;return e[t+n*r]},xUi=e=>e.type==="OPEN_PAREN"&&e.text==="(",GUi=e=>e.type==="OPEN_PAREN"&&e.text==="[",XVc=e=>e.type==="BLOCK_COMMENT"||e.type==="LINE_COMMENT",FUi=class{constructor(e){this.tokenize=e,this.index=0,this.tokens=[],this.input=""}reset(e,t){this.input=e,this.index=0,this.tokens=this.tokenize(e)}next(){return this.tokens[this.index++]}save(){}formatError(e){let{line:t,col:r}=DUi(this.input,e.start);return`Parse error at token: ${e.text} at line ${t} column ${r}`}has(e){return e in SUi}};function cVr(e){return e[0]}var wf=new FUi(e=>[]),KCe=([[e]])=>e,pD=e=>({type:"keyword",tokenType:e.type,text:e.text,raw:e.raw}),hUi=e=>({type:"data_type",text:e.text,raw:e.raw}),fD=(e,{leading:t,trailing:r})=>(t?.length&&(e=tL(qk({},e),{leadingComments:t})),r?.length&&(e=tL(qk({},e),{trailingComments:r})),e),JVc=(e,{leading:t,trailing:r})=>{if(t?.length){let[n,...a]=e;e=[fD(n,{leading:t}),...a]}if(r?.length){let n=e.slice(0,-1),a=e[e.length-1];e=[...n,fD(a,{trailing:r})]}return e},UVc={Lexer:wf,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{let t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[wf.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[wf.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:"statement",children:e,hasSemicolon:t.type==="DELIMITER"})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:KCe},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:cVr},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[wf.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,r,n])=>{if(n){let[a,o]=n;return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),offset:r,count:o}}else return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),count:r}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,r]])=>({type:"clause",nameKw:pD(e),children:[t,...r]})},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:"clause",nameKw:pD(e),children:[]})},{name:"all_columns_asterisk",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:"all_columns_asterisk"})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[wf.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:"clause",nameKw:pD(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[wf.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:"set_operation",nameKw:pD(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:cVr},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>fD(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:KCe},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:KCe},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:KCe},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:KCe},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:KCe},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:KCe},{name:"array_subscript",symbols:[wf.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD({type:"identifier",quoted:!1,text:e.text},{trailing:t}),parenthesis:r})},{name:"array_subscript",symbols:[wf.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"function_call",symbols:[wf.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,r])=>({type:"function_call",nameKw:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",wf.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,r,n,[a]])=>({type:"property_access",object:fD(e,{trailing:t}),operator:r.text,property:fD(a,{leading:n})})},{name:"between_predicate",symbols:[wf.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",wf.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,r,n,a,o,l])=>({type:"between_predicate",betweenKw:pD(e),expr1:JVc(r,{leading:t,trailing:n}),andKw:pD(a),expr2:[fD(l,{leading:o})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:cVr},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[wf.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",wf.has("END")?{type:"END"}:END],postprocess:([e,t,r,n,a])=>({type:"case_expression",caseKw:fD(pD(e),{trailing:t}),endKw:pD(a),expr:r||[],clauses:n})},{name:"case_clause",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",wf.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,r,n,a,o])=>({type:"case_when",whenKw:fD(pD(e),{trailing:t}),thenKw:fD(pD(n),{trailing:a}),condition:r,result:o})},{name:"case_clause",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,r])=>({type:"case_else",elseKw:fD(pD(e),{trailing:t}),result:r})},{name:"comma$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:"comma"})},{name:"asterisk$subexpression$1",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"operator$subexpression$1",symbols:[wf.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"identifier$subexpression$1",symbols:[wf.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:"identifier",quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[wf.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:"parameter",key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[wf.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[wf.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:"literal",text:e.text})},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_PHRASE")?{type:"RESERVED_PHRASE"}:RESERVED_PHRASE]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"data_type$subexpression$1",symbols:[wf.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>hUi(e)},{name:"data_type",symbols:[wf.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,r])=>({type:"parameterized_data_type",dataType:fD(hUi(e),{trailing:t}),parenthesis:r})},{name:"logic_operator$subexpression$1",symbols:[wf.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[wf.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[wf.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"other_keyword$subexpression$1",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[wf.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[wf.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:"line_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:"block_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:"disable_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},KVc=UVc,{Parser:jVc,Grammar:zVc}=kUi.default;function qVc(e){let t={},r=new FUi(a=>[...PVc(e.tokenize(a,t)),vUi(a.length)]),n=new jVc(zVc.fromCompiled(KVc),{lexer:r});return{parse:(a,o)=>{t=o;let{results:l}=n.feed(a);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar -${JSON.stringify(l,void 0,2)}`)}}}var ZUi=class{constructor(e){this.indentation=e,this.items=[]}add(...e){for(let t of e)switch(t){case 0:this.items.push(0);break;case 1:this.trimHorizontalWhitespace();break;case 2:this.trimWhitespace();break;case 3:this.trimHorizontalWhitespace(),this.addNewline(3);break;case 4:this.trimHorizontalWhitespace(),this.addNewline(4);break;case 5:this.addIndentation();break;case 6:this.items.push(6);break;default:this.items.push(t)}}trimHorizontalWhitespace(){for(;$Vc(MKe(this.items));)this.items.pop()}trimWhitespace(){for(;ePc(MKe(this.items));)this.items.pop()}addNewline(e){if(this.items.length>0)switch(MKe(this.items)){case 3:this.items.pop(),this.items.push(e);break;case 4:break;default:this.items.push(e);break}}addIndentation(){for(let e=0;ethis.itemToString(e)).join("")}getLayoutItems(){return this.items}itemToString(e){switch(e){case 0:return" ";case 3:case 4:return` -`;case 6:return this.indentation.getSingleIndent();default:return e}}},$Vc=e=>e===0||e===6,ePc=e=>e===0||e===6||e===3;function mUi(e,t){if(t==="standard")return e;let r=[];return e.length>=10&&e.includes(" ")&&([e,...r]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...r].join(" ")}function CUi(e){return pZc(e)||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="LIMIT"}var lVr="top-level",tPc="block-level",LUi=class{constructor(e){this.indent=e,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(lVr)}increaseBlockLevel(){this.indentTypes.push(tPc)}decreaseTopLevel(){this.indentTypes.length>0&&MKe(this.indentTypes)===lVr&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===lVr;);}},rPc=class extends ZUi{constructor(e){super(new LUi("")),this.expressionWidth=e,this.length=0,this.trailingSpace=!1}add(...e){if(e.forEach(t=>this.addToLength(t)),this.length>this.expressionWidth)throw new uVr;super.add(...e)}addToLength(e){if(typeof e=="string")this.length+=e.length,this.trailingSpace=!1;else{if(e===4||e===3)throw new uVr;e===5||e===6||e===0?this.trailingSpace||(this.length++,this.trailingSpace=!0):(e===2||e===1)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}},uVr=class extends Error{},nPc=class gVr{constructor({cfg:t,dialectCfg:r,params:n,layout:a,inline:o=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=r,this.inline=o,this.params=n,this.layout=a}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let r;switch(t.array.type){case"data_type":r=this.showDataType(t.array);break;case"keyword":r=this.showKw(t.array);break;default:r=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(r)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(1,t.operator),this.formatNode(t.property)}formatParenthesis(t){let r=this.formatInlineExpression(t.children);r?(this.layout.add(t.openParen),this.layout.add(...r.getLayoutItems()),this.layout.add(1,t.closeParen,0)):(this.layout.add(t.openParen,3),QDe(this.cfg)?(this.layout.add(5),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(3,5,t.closeParen,0))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),0),this.layout=this.formatSubExpression(t.expr1),this.layout.add(1,0,this.showNonTabularKw(t.andKw),0),this.layout=this.formatSubExpression(t.expr2),this.layout.add(0)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(3,5),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(3,5),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(3,5),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):QDe(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return QDe(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.indentation.increaseTopLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.add(5),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(3,5,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),QDe(this.cfg)?this.layout.add(0):this.layout.add(3,5),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(1,",",0),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",0)}formatLiteral(t){this.layout.add(t.text,0)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),0)}formatParameter(t){this.layout.add(this.params.get(t),0)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(1,t):t===":"?this.layout.add(1,t,0):this.layout.add(t,0)}formatComma(t){this.inline?this.layout.add(1,",",0):this.layout.add(1,",",3,5)}withComments(t,r){this.formatComments(t.leadingComments),r(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(r=>{r.type==="line_comment"?this.formatLineComment(r):this.formatBlockComment(r)})}formatLineComment(t){oVr(t.precedingWhitespace||"")?this.layout.add(3,5,t.text,4,5):this.layout.getLayoutItems().length>0?this.layout.add(2,0,t.text,4,5):this.layout.add(t.text,4,5)}formatBlockComment(t){t.type==="block_comment"&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(r=>{this.layout.add(3,5,r)}),this.layout.add(3,5)):this.layout.add(t.text,0)}isMultilineBlockComment(t){return oVr(t.text)||oVr(t.precedingWhitespace||"")}isDocComment(t){let r=t.split(/\n/);return/^\/\*\*?$/.test(r[0])&&r.slice(1,r.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(MKe(r))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(r=>/^\s*\*/.test(r)?" "+r.replace(/^\s*/,""):r):t.split(/\n/).map(r=>r.replace(/^\s*/,""))}formatSubExpression(t){return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){let r=this.params.getPositionalParameterIndex();try{return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new rPc(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof uVr){this.params.setPositionalParameterIndex(r);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case"RESERVED_JOIN":return this.formatJoin(t);case"AND":case"OR":case"XOR":return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0)}formatKeyword(t){this.layout.add(this.showKw(t),0)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0):this.layout.add(this.showKw(t),3,5)}formatDataType(t){this.layout.add(this.showDataType(t),0)}showKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}},iPc=class{constructor(e,t){this.dialect=e,this.cfg=t,this.params=new VVc(this.cfg.params)}format(e){let t=this.parse(e);return this.formatAst(t).trimEnd()}parse(e){return qVc(this.dialect.tokenizer).parse(e,this.cfg.paramTypes||{})}formatAst(e){return e.map(t=>this.formatStatement(t)).join(` -`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new nPc({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new ZUi(new LUi(LVc(this.cfg)))}).format(e.children);return e.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?t.add(3,";"):t.add(2,";")),t.toString()}},Fvt=class extends Error{};function sPc(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new Fvt(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new Fvt(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!oPc(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!aPc(e.paramTypes))throw new Fvt("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function oPc(e){return(e instanceof Array?e:Object.values(e)).every(r=>typeof r=="string")}function aPc(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var VUi={bigquery:"bigquery",db2:"db2",db2i:"db2i",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},cPc=Object.keys(VUi),lPc={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},PUi=(e,t={})=>{if(typeof t.language=="string"&&!cPc.includes(t.language))throw new Fvt(`Unsupported SQL dialect: ${t.language}`);let r=VUi[t.language||"sql"];return uPc(e,tL(qk({},t),{dialect:EUi[r]}))},uPc=(e,t)=>{var r=t,{dialect:n}=r,a=iZc(r,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);let o=sPc(qk(qk({},lPc),a));return new iPc(GVc(n),o).format(e)};var YG=Nt(Pc(),1),gPc=({children:e})=>e?(0,YG.jsxs)(Vvt.Box,{paddingLeft:4,children:[(0,YG.jsx)(Zj.Text,{children:"SQL:"}),(0,YG.jsx)(Zj.Text,{children:" "}),(0,YG.jsx)(Zj.Text,{children:new WUi.SqlHighlighter().highlight(PUi(e,{language:"postgresql"}))})]}):null,APc=({children:e})=>{if(e&&Array.isArray(e)&&e.length>0){let t=e.reduce((r,n,a)=>(r.push((0,YG.jsx)(Zj.Text,{color:"yellow",children:n},OW())),ae?(0,YG.jsxs)(Vvt.Box,{marginTop:1,flexDirection:"column",children:[(0,YG.jsx)(gPc,{children:e[O9r]}),(0,YG.jsx)(APc,{children:e[M9r]})]}):null;var MUi=Nt(Al(),1);var dVr=Nt(Pc(),1),HUi=({children:e})=>e?(0,dVr.jsx)(MUi.Box,{paddingBottom:1,marginTop:1,children:(0,dVr.jsx)(kyt,{children:e})}):null;var E4=Nt(Pc(),1),Pvt=({namespace:e,body:t,stack:r,attributes:n={}})=>(0,E4.jsxs)(JDe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:[(0,E4.jsx)(JDe.Box,{flexDirection:"row",children:(0,E4.jsxs)(JDe.Box,{flexGrow:1,children:[(0,E4.jsx)(JDe.Box,{paddingRight:1,children:(0,E4.jsx)(xJi,{children:e||n[LLr]})}),(0,E4.jsx)(JDe.Box,{children:(0,E4.jsx)(RJi,{children:t})})]})}),(0,E4.jsx)(HUi,{children:r||n["@stack"]}),(0,E4.jsx)(OUi,{children:n})]});var Wvt=Nt(Pc(),1),qCe=class extends YUi.BaseCommand{showWarnings=Su.Boolean("-w,--show-warnings",!1);renderLogRecord(t){t instanceof Error?xE((0,Wvt.jsx)(Fk,{error:t})).split(` +If possible, please select a more specific dialect (like sqlite, postgresql, etc).`:`SQL dialect used: "${this.dialectName}".`}getWhitespace(){uUi.lastIndex=this.index;let e=uUi.exec(this.input);if(e)return this.index+=e[0].length,e[0]}getNextToken(){for(let e of this.rules){let t=this.match(e);if(t)return t}}match(e){e.regex.lastIndex=this.index;let t=e.regex.exec(this.input);if(t){let r=t[0],n={type:e.type,raw:r,text:e.text?e.text(r):r,start:this.index};return e.key&&(n.key=e.key(r)),this.index+=r.length,n}}},fUi=/\/\*/uy,DVc=/[\s\S]/uy,kVc=/\*\//uy,xVc=class{constructor(){this.lastIndex=0}exec(e){let t="",r,n=0;if(r=this.matchSection(fUi,e))t+=r,n++;else return null;for(;n>0;)if(r=this.matchSection(fUi,e))t+=r,n++;else if(r=this.matchSection(kVc,e))t+=r,n--;else if(r=this.matchSection(DVc,e))t+=r;else return null;return[t]}matchSection(e,t){e.lastIndex=this.lastIndex;let r=e.exec(t);return r&&(this.lastIndex+=r[0].length),r?r[0]:null}},GVc=class{constructor(e,t){this.cfg=e,this.dialectName=t,this.rulesBeforeParams=this.buildRulesBeforeParams(e),this.rulesAfterParams=this.buildRulesAfterParams(e)}tokenize(e,t){let r=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,t),...this.rulesAfterParams],n=new NVc(r,this.dialectName).tokenize(e);return this.cfg.postProcess?this.cfg.postProcess(n):n}buildRulesBeforeParams(e){var t,r;return this.validRules([{type:"BLOCK_COMMENT",regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:"BLOCK_COMMENT",regex:e.nestedBlockComments?new xVc:/(\/\*[^]*?\*\/)/uy},{type:"LINE_COMMENT",regex:vVc((t=e.lineCommentTypes)!=null?t:["--"])},{type:"QUOTED_IDENTIFIER",regex:pUi(e.identTypes)},{type:"NUMBER",regex:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?[0-9]+(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:"RESERVED_PHRASE",regex:$ce((r=e.reservedPhrases)!=null?r:[],e.identChars),text:dD},{type:"CASE",regex:/CASE\b/iuy,text:dD},{type:"END",regex:/END\b/iuy,text:dD},{type:"BETWEEN",regex:/BETWEEN\b/iuy,text:dD},{type:"LIMIT",regex:e.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:dD},{type:"RESERVED_CLAUSE",regex:$ce(e.reservedClauses,e.identChars),text:dD},{type:"RESERVED_SELECT",regex:$ce(e.reservedSelect,e.identChars),text:dD},{type:"RESERVED_SET_OPERATION",regex:$ce(e.reservedSetOperations,e.identChars),text:dD},{type:"WHEN",regex:/WHEN\b/iuy,text:dD},{type:"ELSE",regex:/ELSE\b/iuy,text:dD},{type:"THEN",regex:/THEN\b/iuy,text:dD},{type:"RESERVED_JOIN",regex:$ce(e.reservedJoins,e.identChars),text:dD},{type:"AND",regex:/AND\b/iuy,text:dD},{type:"OR",regex:/OR\b/iuy,text:dD},{type:"XOR",regex:e.supportsXor?/XOR\b/iuy:void 0,text:dD},{type:"RESERVED_FUNCTION_NAME",regex:$ce(e.reservedFunctionNames,e.identChars),text:dD},{type:"RESERVED_DATA_TYPE",regex:$ce(e.reservedDataTypes,e.identChars),text:dD},{type:"RESERVED_KEYWORD",regex:$ce(e.reservedKeywords,e.identChars),text:dD}])}buildRulesAfterParams(e){var t,r;return this.validRules([{type:"VARIABLE",regex:e.variableTypes?TVc(e.variableTypes):void 0},{type:"STRING",regex:pUi(e.stringTypes)},{type:"IDENTIFIER",regex:RVc(e.identChars)},{type:"DELIMITER",regex:/[;]/uy},{type:"COMMA",regex:/[,]/y},{type:"OPEN_PAREN",regex:gUi("open",e.extraParens)},{type:"CLOSE_PAREN",regex:gUi("close",e.extraParens)},{type:"OPERATOR",regex:AUi(["+","-","/",">","<","=","<>","<=",">=","!=",...(t=e.operators)!=null?t:[]])},{type:"ASTERISK",regex:/[*]/uy},{type:"PROPERTY_ACCESS_OPERATOR",regex:AUi([".",...(r=e.propertyAccessOperators)!=null?r:[]])}])}buildParamRules(e,t){var r,n,a,o,l;let A={named:t?.named||((r=e.paramTypes)==null?void 0:r.named)||[],quoted:t?.quoted||((n=e.paramTypes)==null?void 0:n.quoted)||[],numbered:t?.numbered||((a=e.paramTypes)==null?void 0:a.numbered)||[],positional:typeof t?.positional=="boolean"?t.positional:(o=e.paramTypes)==null?void 0:o.positional,custom:t?.custom||((l=e.paramTypes)==null?void 0:l.custom)||[]};return this.validRules([{type:"NAMED_PARAMETER",regex:aVr(A.named,NUi(e.paramChars||e.identChars)),key:f=>f.slice(1)},{type:"QUOTED_PARAMETER",regex:aVr(A.quoted,RUi(e.identTypes)),key:f=>(({tokenKey:I,quoteChar:C})=>I.replace(new RegExp(b4("\\"+C),"gu"),C))({tokenKey:f.slice(2,-1),quoteChar:f.slice(-1)})},{type:"NUMBERED_PARAMETER",regex:aVr(A.numbered,"[0-9]+"),key:f=>f.slice(1)},{type:"POSITIONAL_PARAMETER",regex:A.positional?/[?]/y:void 0},...A.custom.map(f=>{var I;return{type:"CUSTOM_PARAMETER",regex:zCe(f.regex),key:(I=f.key)!=null?I:C=>C}})])}validRules(e){return e.filter(t=>!!t.regex)}},dD=e=>Gvt(e.toUpperCase()),IUi=new Map,FVc=e=>{let t=IUi.get(e);return t||(t=ZVc(e),IUi.set(e,t)),t},ZVc=e=>({tokenizer:new GVc(e.tokenizerOptions,e.name),formatOptions:LVc(e.formatOptions)}),LVc=e=>{var t;return{alwaysDenseOperators:e.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(e.onelineClauses.map(r=>[r,!0])),tabularOnelineClauses:Object.fromEntries(((t=e.tabularOnelineClauses)!=null?t:e.onelineClauses).map(r=>[r,!0]))}};function VVc(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"?" ".repeat(10):e.useTabs?" ":" ".repeat(e.tabWidth)}function QDe(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}var PVc=class{constructor(e){this.params=e,this.index=0}get({key:e,text:t}){return this.params?e?this.params[e]:this.params[this.index++]:t}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(e){this.index=e}};function WVc(e){return e.map(OVc).map(MVc).map(HVc).map(YVc).map(QVc)}var OVc=(e,t,r)=>{if(BUi(e.type)){let n=XVc(r,t);if(n&&n.type==="PROPERTY_ACCESS_OPERATOR")return tL(qk({},e),{type:"IDENTIFIER",text:e.raw})}return e},MVc=(e,t,r)=>{if(e.type==="RESERVED_FUNCTION_NAME"){let n=HKe(r,t);if(!n||!xUi(n))return tL(qk({},e),{type:"RESERVED_KEYWORD"})}return e},HVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&xUi(n))return tL(qk({},e),{type:"RESERVED_PARAMETERIZED_DATA_TYPE"})}return e},YVc=(e,t,r)=>{if(e.type==="IDENTIFIER"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_IDENTIFIER"})}return e},QVc=(e,t,r)=>{if(e.type==="RESERVED_DATA_TYPE"){let n=HKe(r,t);if(n&&GUi(n))return tL(qk({},e),{type:"ARRAY_KEYWORD"})}return e},XVc=(e,t)=>HKe(e,t,-1),HKe=(e,t,r=1)=>{let n=1;for(;e[t+n*r]&&JVc(e[t+n*r]);)n++;return e[t+n*r]},xUi=e=>e.type==="OPEN_PAREN"&&e.text==="(",GUi=e=>e.type==="OPEN_PAREN"&&e.text==="[",JVc=e=>e.type==="BLOCK_COMMENT"||e.type==="LINE_COMMENT",FUi=class{constructor(e){this.tokenize=e,this.index=0,this.tokens=[],this.input=""}reset(e,t){this.input=e,this.index=0,this.tokens=this.tokenize(e)}next(){return this.tokens[this.index++]}save(){}formatError(e){let{line:t,col:r}=DUi(this.input,e.start);return`Parse error at token: ${e.text} at line ${t} column ${r}`}has(e){return e in SUi}};function cVr(e){return e[0]}var wf=new FUi(e=>[]),KCe=([[e]])=>e,pD=e=>({type:"keyword",tokenType:e.type,text:e.text,raw:e.raw}),hUi=e=>({type:"data_type",text:e.text,raw:e.raw}),fD=(e,{leading:t,trailing:r})=>(t?.length&&(e=tL(qk({},e),{leadingComments:t})),r?.length&&(e=tL(qk({},e),{trailingComments:r})),e),UVc=(e,{leading:t,trailing:r})=>{if(t?.length){let[n,...a]=e;e=[fD(n,{leading:t}),...a]}if(r?.length){let n=e.slice(0,-1),a=e[e.length-1];e=[...n,fD(a,{trailing:r})]}return e},KVc={Lexer:wf,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:e=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{let t=e[e.length-1];return t&&!t.hasSemicolon?t.children.length>0?e:e.slice(0,-1):e}},{name:"statement$subexpression$1",symbols:[wf.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[wf.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:"statement",children:e,hasSemicolon:t.type==="DELIMITER"})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:e=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:KCe},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:cVr},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[wf.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,r,n])=>{if(n){let[a,o]=n;return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),offset:r,count:o}}else return{type:"limit_clause",limitKw:fD(pD(e),{trailing:t}),count:r}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,r]])=>({type:"clause",nameKw:pD(e),children:[t,...r]})},{name:"select_clause",symbols:[wf.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:"clause",nameKw:pD(e),children:[]})},{name:"all_columns_asterisk",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:"all_columns_asterisk"})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"other_clause",symbols:[wf.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:"clause",nameKw:pD(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"set_operation",symbols:[wf.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:"set_operation",nameKw:pD(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:cVr},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:e=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>fD(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>fD(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:KCe},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:KCe},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:KCe},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:KCe},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:KCe},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:KCe},{name:"array_subscript",symbols:[wf.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD({type:"identifier",quoted:!1,text:e.text},{trailing:t}),parenthesis:r})},{name:"array_subscript",symbols:[wf.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,r])=>({type:"array_subscript",array:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"function_call",symbols:[wf.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,r])=>({type:"function_call",nameKw:fD(pD(e),{trailing:t}),parenthesis:r})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:e=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,r])=>({type:"parenthesis",children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",wf.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,r,n,[a]])=>({type:"property_access",object:fD(e,{trailing:t}),operator:r.text,property:fD(a,{leading:n})})},{name:"between_predicate",symbols:[wf.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",wf.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,r,n,a,o,l])=>({type:"between_predicate",betweenKw:pD(e),expr1:UVc(r,{leading:t,trailing:n}),andKw:pD(a),expr2:[fD(l,{leading:o})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:cVr},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:e=>e[0].concat([e[1]])},{name:"case_expression",symbols:[wf.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",wf.has("END")?{type:"END"}:END],postprocess:([e,t,r,n,a])=>({type:"case_expression",caseKw:fD(pD(e),{trailing:t}),endKw:pD(a),expr:r||[],clauses:n})},{name:"case_clause",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",wf.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,r,n,a,o])=>({type:"case_when",whenKw:fD(pD(e),{trailing:t}),thenKw:fD(pD(n),{trailing:a}),condition:r,result:o})},{name:"case_clause",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,r])=>({type:"case_else",elseKw:fD(pD(e),{trailing:t}),result:r})},{name:"comma$subexpression$1",symbols:[wf.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:"comma"})},{name:"asterisk$subexpression$1",symbols:[wf.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"operator$subexpression$1",symbols:[wf.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:"operator",text:e.text})},{name:"identifier$subexpression$1",symbols:[wf.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[wf.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:"identifier",quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[wf.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[wf.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:"parameter",key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[wf.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[wf.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:"literal",text:e.text})},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_PHRASE")?{type:"RESERVED_PHRASE"}:RESERVED_PHRASE]},{name:"keyword$subexpression$1",symbols:[wf.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"data_type$subexpression$1",symbols:[wf.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>hUi(e)},{name:"data_type",symbols:[wf.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,r])=>({type:"parameterized_data_type",dataType:fD(hUi(e),{trailing:t}),parenthesis:r})},{name:"logic_operator$subexpression$1",symbols:[wf.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[wf.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[wf.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"other_keyword$subexpression$1",symbols:[wf.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[wf.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[wf.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>pD(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:e=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[wf.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:"line_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:"block_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[wf.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:"disable_comment",text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},jVc=KVc,{Parser:zVc,Grammar:qVc}=kUi.default;function $Vc(e){let t={},r=new FUi(a=>[...WVc(e.tokenize(a,t)),vUi(a.length)]),n=new zVc(qVc.fromCompiled(jVc),{lexer:r});return{parse:(a,o)=>{t=o;let{results:l}=n.feed(a);if(l.length===1)return l[0];throw l.length===0?new Error("Parse error: Invalid SQL"):new Error(`Parse error: Ambiguous grammar +${JSON.stringify(l,void 0,2)}`)}}}var ZUi=class{constructor(e){this.indentation=e,this.items=[]}add(...e){for(let t of e)switch(t){case 0:this.items.push(0);break;case 1:this.trimHorizontalWhitespace();break;case 2:this.trimWhitespace();break;case 3:this.trimHorizontalWhitespace(),this.addNewline(3);break;case 4:this.trimHorizontalWhitespace(),this.addNewline(4);break;case 5:this.addIndentation();break;case 6:this.items.push(6);break;default:this.items.push(t)}}trimHorizontalWhitespace(){for(;ePc(MKe(this.items));)this.items.pop()}trimWhitespace(){for(;tPc(MKe(this.items));)this.items.pop()}addNewline(e){if(this.items.length>0)switch(MKe(this.items)){case 3:this.items.pop(),this.items.push(e);break;case 4:break;default:this.items.push(e);break}}addIndentation(){for(let e=0;ethis.itemToString(e)).join("")}getLayoutItems(){return this.items}itemToString(e){switch(e){case 0:return" ";case 3:case 4:return` +`;case 6:return this.indentation.getSingleIndent();default:return e}}},ePc=e=>e===0||e===6,tPc=e=>e===0||e===6||e===3;function mUi(e,t){if(t==="standard")return e;let r=[];return e.length>=10&&e.includes(" ")&&([e,...r]=e.split(" ")),t==="tabularLeft"?e=e.padEnd(9," "):e=e.padStart(9," "),e+["",...r].join(" ")}function CUi(e){return fZc(e)||e==="RESERVED_CLAUSE"||e==="RESERVED_SELECT"||e==="RESERVED_SET_OPERATION"||e==="RESERVED_JOIN"||e==="LIMIT"}var lVr="top-level",rPc="block-level",LUi=class{constructor(e){this.indent=e,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(lVr)}increaseBlockLevel(){this.indentTypes.push(rPc)}decreaseTopLevel(){this.indentTypes.length>0&&MKe(this.indentTypes)===lVr&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===lVr;);}},nPc=class extends ZUi{constructor(e){super(new LUi("")),this.expressionWidth=e,this.length=0,this.trailingSpace=!1}add(...e){if(e.forEach(t=>this.addToLength(t)),this.length>this.expressionWidth)throw new uVr;super.add(...e)}addToLength(e){if(typeof e=="string")this.length+=e.length,this.trailingSpace=!1;else{if(e===4||e===3)throw new uVr;e===5||e===6||e===0?this.trailingSpace||(this.length++,this.trailingSpace=!0):(e===2||e===1)&&this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}},uVr=class extends Error{},iPc=class gVr{constructor({cfg:t,dialectCfg:r,params:n,layout:a,inline:o=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=t,this.dialectCfg=r,this.inline=o,this.params=n,this.layout=a}format(t){for(this.nodes=t,this.index=0;this.index{this.layout.add(this.showFunctionKw(t.nameKw))}),this.formatNode(t.parenthesis)}formatParameterizedDataType(t){this.withComments(t.dataType,()=>{this.layout.add(this.showDataType(t.dataType))}),this.formatNode(t.parenthesis)}formatArraySubscript(t){let r;switch(t.array.type){case"data_type":r=this.showDataType(t.array);break;case"keyword":r=this.showKw(t.array);break;default:r=this.showIdentifier(t.array);break}this.withComments(t.array,()=>{this.layout.add(r)}),this.formatNode(t.parenthesis)}formatPropertyAccess(t){this.formatNode(t.object),this.layout.add(1,t.operator),this.formatNode(t.property)}formatParenthesis(t){let r=this.formatInlineExpression(t.children);r?(this.layout.add(t.openParen),this.layout.add(...r.getLayoutItems()),this.layout.add(1,t.closeParen,0)):(this.layout.add(t.openParen,3),QDe(this.cfg)?(this.layout.add(5),this.layout=this.formatSubExpression(t.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(3,5,t.closeParen,0))}formatBetweenPredicate(t){this.layout.add(this.showKw(t.betweenKw),0),this.layout=this.formatSubExpression(t.expr1),this.layout.add(1,0,this.showNonTabularKw(t.andKw),0),this.layout=this.formatSubExpression(t.expr2),this.layout.add(0)}formatCaseExpression(t){this.formatNode(t.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(t.expr),this.layout=this.formatSubExpression(t.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(3,5),this.formatNode(t.endKw)}formatCaseWhen(t){this.layout.add(3,5),this.formatNode(t.whenKw),this.layout=this.formatSubExpression(t.condition),this.formatNode(t.thenKw),this.layout=this.formatSubExpression(t.result)}formatCaseElse(t){this.layout.add(3,5),this.formatNode(t.elseKw),this.layout=this.formatSubExpression(t.result)}formatClause(t){this.isOnelineClause(t)?this.formatClauseInOnelineStyle(t):QDe(this.cfg)?this.formatClauseInTabularStyle(t):this.formatClauseInIndentedStyle(t)}isOnelineClause(t){return QDe(this.cfg)?this.dialectCfg.tabularOnelineClauses[t.nameKw.text]:this.dialectCfg.onelineClauses[t.nameKw.text]}formatClauseInIndentedStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.indentation.increaseTopLevel(),this.layout.add(5),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout=this.formatSubExpression(t.children)}formatClauseInTabularStyle(t){this.layout.add(3,5,this.showKw(t.nameKw),0),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(t.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(t){this.layout.add(3,5,this.showKw(t.nameKw),3),this.layout.add(5),this.layout=this.formatSubExpression(t.children)}formatLimitClause(t){this.withComments(t.limitKw,()=>{this.layout.add(3,5,this.showKw(t.limitKw))}),this.layout.indentation.increaseTopLevel(),QDe(this.cfg)?this.layout.add(0):this.layout.add(3,5),t.offset?(this.layout=this.formatSubExpression(t.offset),this.layout.add(1,",",0),this.layout=this.formatSubExpression(t.count)):this.layout=this.formatSubExpression(t.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(t){this.layout.add("*",0)}formatLiteral(t){this.layout.add(t.text,0)}formatIdentifier(t){this.layout.add(this.showIdentifier(t),0)}formatParameter(t){this.layout.add(this.params.get(t),0)}formatOperator({text:t}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(t)?this.layout.add(1,t):t===":"?this.layout.add(1,t,0):this.layout.add(t,0)}formatComma(t){this.inline?this.layout.add(1,",",0):this.layout.add(1,",",3,5)}withComments(t,r){this.formatComments(t.leadingComments),r(),this.formatComments(t.trailingComments)}formatComments(t){t&&t.forEach(r=>{r.type==="line_comment"?this.formatLineComment(r):this.formatBlockComment(r)})}formatLineComment(t){oVr(t.precedingWhitespace||"")?this.layout.add(3,5,t.text,4,5):this.layout.getLayoutItems().length>0?this.layout.add(2,0,t.text,4,5):this.layout.add(t.text,4,5)}formatBlockComment(t){t.type==="block_comment"&&this.isMultilineBlockComment(t)?(this.splitBlockComment(t.text).forEach(r=>{this.layout.add(3,5,r)}),this.layout.add(3,5)):this.layout.add(t.text,0)}isMultilineBlockComment(t){return oVr(t.text)||oVr(t.precedingWhitespace||"")}isDocComment(t){let r=t.split(/\n/);return/^\/\*\*?$/.test(r[0])&&r.slice(1,r.length-1).every(n=>/^\s*\*/.test(n))&&/^\s*\*\/$/.test(MKe(r))}splitBlockComment(t){return this.isDocComment(t)?t.split(/\n/).map(r=>/^\s*\*/.test(r)?" "+r.replace(/^\s*/,""):r):t.split(/\n/).map(r=>r.replace(/^\s*/,""))}formatSubExpression(t){return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(t)}formatInlineExpression(t){let r=this.params.getPositionalParameterIndex();try{return new gVr({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new nPc(this.cfg.expressionWidth),inline:!0}).format(t)}catch(n){if(n instanceof uVr){this.params.setPositionalParameterIndex(r);return}else throw n}}formatKeywordNode(t){switch(t.tokenType){case"RESERVED_JOIN":return this.formatJoin(t);case"AND":case"OR":case"XOR":return this.formatLogicalOperator(t);default:return this.formatKeyword(t)}}formatJoin(t){QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0)}formatKeyword(t){this.layout.add(this.showKw(t),0)}formatLogicalOperator(t){this.cfg.logicalOperatorNewline==="before"?QDe(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(3,5,this.showKw(t),0),this.layout.indentation.increaseTopLevel()):this.layout.add(3,5,this.showKw(t),0):this.layout.add(this.showKw(t),3,5)}formatDataType(t){this.layout.add(this.showDataType(t),0)}showKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularKw(t),this.cfg.indentStyle):this.showNonTabularKw(t)}showNonTabularKw(t){switch(this.cfg.keywordCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showFunctionKw(t){return CUi(t.tokenType)?mUi(this.showNonTabularFunctionKw(t),this.cfg.indentStyle):this.showNonTabularFunctionKw(t)}showNonTabularFunctionKw(t){switch(this.cfg.functionCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}showIdentifier(t){if(t.quoted)return t.text;switch(this.cfg.identifierCase){case"preserve":return t.text;case"upper":return t.text.toUpperCase();case"lower":return t.text.toLowerCase()}}showDataType(t){switch(this.cfg.dataTypeCase){case"preserve":return Gvt(t.raw);case"upper":return t.text;case"lower":return t.text.toLowerCase()}}},sPc=class{constructor(e,t){this.dialect=e,this.cfg=t,this.params=new PVc(this.cfg.params)}format(e){let t=this.parse(e);return this.formatAst(t).trimEnd()}parse(e){return $Vc(this.dialect.tokenizer).parse(e,this.cfg.paramTypes||{})}formatAst(e){return e.map(t=>this.formatStatement(t)).join(` +`.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new iPc({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new ZUi(new LUi(VVc(this.cfg)))}).format(e.children);return e.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?t.add(3,";"):t.add(2,";")),t.toString()}},Fvt=class extends Error{};function oPc(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new Fvt(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new Fvt(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!aPc(e.params)&&console.warn('WARNING: All "params" option values should be strings.'),e.paramTypes&&!cPc(e.paramTypes))throw new Fvt("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function aPc(e){return(e instanceof Array?e:Object.values(e)).every(r=>typeof r=="string")}function cPc(e){return e.custom&&Array.isArray(e.custom)?e.custom.every(t=>t.regex!==""):!0}var VUi={bigquery:"bigquery",db2:"db2",db2i:"db2i",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},lPc=Object.keys(VUi),uPc={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},PUi=(e,t={})=>{if(typeof t.language=="string"&&!lPc.includes(t.language))throw new Fvt(`Unsupported SQL dialect: ${t.language}`);let r=VUi[t.language||"sql"];return gPc(e,tL(qk({},t),{dialect:EUi[r]}))},gPc=(e,t)=>{var r=t,{dialect:n}=r,a=sZc(r,["dialect"]);if(typeof e!="string")throw new Error("Invalid query argument. Expected string, instead got "+typeof e);let o=oPc(qk(qk({},uPc),a));return new sPc(FVc(n),o).format(e)};var YG=Nt(Pc(),1),APc=({children:e})=>e?(0,YG.jsxs)(Vvt.Box,{paddingLeft:4,children:[(0,YG.jsx)(Zj.Text,{children:"SQL:"}),(0,YG.jsx)(Zj.Text,{children:" "}),(0,YG.jsx)(Zj.Text,{children:new WUi.SqlHighlighter().highlight(PUi(e,{language:"postgresql"}))})]}):null,dPc=({children:e})=>{if(e&&Array.isArray(e)&&e.length>0){let t=e.reduce((r,n,a)=>(r.push((0,YG.jsx)(Zj.Text,{color:"yellow",children:n},OW())),ae?(0,YG.jsxs)(Vvt.Box,{marginTop:1,flexDirection:"column",children:[(0,YG.jsx)(APc,{children:e[O9r]}),(0,YG.jsx)(dPc,{children:e[M9r]})]}):null;var MUi=Nt(Al(),1);var dVr=Nt(Pc(),1),HUi=({children:e})=>e?(0,dVr.jsx)(MUi.Box,{paddingBottom:1,marginTop:1,children:(0,dVr.jsx)(kyt,{children:e})}):null;var E4=Nt(Pc(),1),Pvt=({namespace:e,body:t,stack:r,attributes:n={}})=>(0,E4.jsxs)(JDe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:[(0,E4.jsx)(JDe.Box,{flexDirection:"row",children:(0,E4.jsxs)(JDe.Box,{flexGrow:1,children:[(0,E4.jsx)(JDe.Box,{paddingRight:1,children:(0,E4.jsx)(xJi,{children:e||n[LLr]})}),(0,E4.jsx)(JDe.Box,{children:(0,E4.jsx)(RJi,{children:t})})]})}),(0,E4.jsx)(HUi,{children:r||n["@stack"]}),(0,E4.jsx)(OUi,{children:n})]});var Wvt=Nt(Pc(),1),qCe=class extends YUi.BaseCommand{showWarnings=Su.Boolean("-w,--show-warnings",!1);renderLogRecord(t){t instanceof Error?xE((0,Wvt.jsx)(Fk,{error:t})).split(` `).forEach(r=>{console.log(r)}):"severityNumber"in t&&"record"in t?xE((0,Wvt.jsx)(Fk,{error:t.record})).split(` `).forEach(r=>{t.severityNumber===y4.SeverityNumber.WARN?this.showWarnings&&console.log(r):console.log(r)}):"severityNumber"in t?xE((0,Wvt.jsx)(Pvt,{...t})).split(` `).forEach(r=>{t.severityNumber<=y4.SeverityNumber.INFO?console.log(r):t.severityNumber<=y4.SeverityNumber.WARN?this.showWarnings&&console.log(r):console.log(r)}):console.log(`Unknown record type: ${JSON.stringify(t)}`)}};var fVr=Nt(Pc(),1),YKe=class extends qCe{static paths=[["service","build"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(pVr.Filename.pnpCjs)&&t.includes(pVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await QUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await XUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await UUi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await JUi.execUtils.pipevp(o,["service","build",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,KUi.render)((0,fVr.jsx)(r2t,{service:t}));try{return(await t.build()).forEach(a=>{this.renderLogRecord(a)}),0}catch(n){return n instanceof Error?xE((0,fVr.jsx)(Fk,{error:n})).split(` -`).forEach(a=>{console.error(a)}):console.error(n),1}finally{r()}}};var jUi=Nt(Bn(),1),zUi=Nt(Bn(),1),IVr=Nt(no(),1),qUi=Nt(Bn(),1),$Ui=Nt(no(),1),eKi=Nt(Al(),1);var tKi=Nt(Pc(),1),QKe=class extends qCe{static paths=[["service","dev"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(IVr.Filename.pnpCjs)&&t.includes(IVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await jUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await $Ui.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await qUi.execUtils.pipevp(o,["service","dev",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,eKi.render)((0,tKi.jsx)(r2t,{service:t}));try{return await t.watch(n=>{this.renderLogRecord(n)}),0}catch(n){return console.error(n),1}finally{r()}}};var rKi={commands:[YKe,QKe]};var vVr={};sI(vVr,{AbstractTestCommand:()=>zee,TestIntegrationCommand:()=>UKe,TestUnitCommand:()=>KKe,default:()=>EKi});var bVr=Nt(no(),1);var hKi=Nt(el(),1),_Vr=Nt(Bn(),1),yVr=Nt(Bn(),1),mKi=Nt(Bn(),1),CKi=Nt(no(),1);$c();$c();var _Ki=Nt(Al(),1);CZ();import{readFileSync as pPc}from"node:fs";import{relative as IKi}from"node:path";var nKi=Nt(Al(),1),XKe=Nt(Al(),1);var iKi=Nt(Ec(),1);var pH=Nt(Pc(),1),sKi=({file:e,messages:t=[]})=>{let r=(0,iKi.useMemo)(()=>t.map(n=>n.endsWith(` -`)?n.replace(/\n$/,""):n).filter(Boolean),[t]);return(0,pH.jsxs)(XKe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",children:[!!e&&(0,pH.jsx)(XKe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,pH.jsx)(A8,{children:e})}),r.length>0&&(0,pH.jsxs)(pH.Fragment,{children:[(0,pH.jsx)(J9,{offset:2}),(0,pH.jsx)(XKe.Box,{flexDirection:"column",marginBottom:1,marginTop:1,marginX:2,children:r.map(n=>(0,pH.jsx)(XKe.Box,{children:(0,pH.jsx)(nKi.Text,{children:n})},OW()))})]})]})};var mVr=Nt(Al(),1),UDe=Nt(Al(),1);var BO=Nt(Pc(),1),oKi=({details:e,source:t,file:r,line:n,column:a})=>r&&t?(0,BO.jsxs)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(A8,{line:n,column:a,children:r})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,children:(0,BO.jsx)(d8,{line:n??1,column:a??1,children:t})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(mVr.Text,{color:"white",children:e.error.message})})]}):(0,BO.jsx)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:(0,BO.jsx)(mVr.Text,{children:e.error.message})});var JKe=Nt(Al(),1),dKi=Nt(Ec(),1),pKi=Nt(Ec(),1);var aKi=Nt(Ec(),1),CVr=Nt(Ec(),1),lKi=Nt(Pc(),1),cKi=({tester:e})=>{let[t,r]=(0,CVr.useState)(0),[n,a]=(0,CVr.useState)(0);return(0,aKi.useEffect)(()=>{let o=f=>{r(f.tests.reduce((I,C)=>I+C.tests+1,0))},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("test:pass",l),e.on("test:fail",l),e.on("end",A),()=>{e.off("start",o),e.off("test:pass",l),e.off("test:fail",l),e.off("end",A)}},[e,t,r,a]),(0,lKi.jsx)(JM,{value:t>0&&n>0?n/t*100:0})};import{relative as uKi}from"node:path";var KDe=Nt(Al(),1),$k=Nt(Al(),1),gKi=Nt(Ec(),1),jDe=Nt(Ec(),1);var ME=Nt(Pc(),1),dPc=({state:e})=>e==="fail"?(0,ME.jsx)($k.Text,{color:"red",children:kI.cross}):e==="pass"?(0,ME.jsx)($k.Text,{color:"green",children:kI.tick}):(0,ME.jsx)($k.Text,{color:"white",children:kI.circleDotted}),AKi=({cwd:e,tester:t})=>{let[r,n]=(0,jDe.useState)(void 0),[a,o]=(0,jDe.useState)(void 0),[l,A]=(0,jDe.useState)(0),[f,I]=(0,jDe.useState)(0),[C,b]=(0,jDe.useState)(0);return(0,gKi.useEffect)(()=>{let E=F=>{A(F.tests.reduce((Q,X)=>Q+X.tests,0)),n(F.tests)},N=F=>{I(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"pass"})},B=F=>{b(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"fail"})};return t.on("start",E),t.on("test:pass",N),t.on("test:fail",B),()=>{t.off("start",E),t.off("test:pass",N),t.off("test:fail",B)}},[t,A,I,b,o]),r?(0,ME.jsxs)(KDe.Box,{flexDirection:"row",width:"100%",children:[(0,ME.jsxs)(KDe.Box,{flexGrow:1,children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),!!a&&(0,ME.jsx)($k.Text,{color:"white",children:a.file})]}),(0,ME.jsx)(KDe.Box,{flexDirection:"row",children:(0,ME.jsxs)(KDe.Box,{children:[(0,ME.jsx)(dPc,{state:a?.state}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"green",children:[f," Pass"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"red",children:[C," Fail"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"white",children:[l," Total"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"gray",children:[r.length||0," Files"]}),(0,ME.jsx)($k.Text,{children:" "})]})})]}):(0,ME.jsxs)(KDe.Box,{flexDirection:"row",children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsx)($k.Text,{color:"white",children:"Loading..."})]})};var ele=Nt(Pc(),1),fKi=({cwd:e,tester:t})=>{let[r,n]=(0,dKi.useState)(!1);return(0,pKi.useEffect)(()=>{let a,o=()=>{a=setTimeout(()=>{n(!0)},1e3)};return t.on("end",o),()=>{a&&clearTimeout(a),t.off("end",o)}},[n]),r?null:(0,ele.jsx)(JKe.Box,{position:"relative",height:7,children:(0,ele.jsxs)(JKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ele.jsx)(JKe.Box,{children:(0,ele.jsx)(AKi,{cwd:e,tester:t})}),(0,ele.jsx)(JKe.Box,{marginTop:1,marginBottom:1,children:(0,ele.jsx)(cKi,{tester:t})})]})})};var zDe=Nt(Pc(),1),zee=class extends hKi.BaseCommand{static usage=_C.Usage({description:"Run tests",details:` +`).forEach(a=>{console.error(a)}):console.error(n),1}finally{r()}}};var jUi=Nt(Bn(),1),zUi=Nt(Bn(),1),IVr=Nt(no(),1),qUi=Nt(Bn(),1),$Ui=Nt(no(),1),eKi=Nt(Al(),1);var tKi=Nt(Pc(),1),QKe=class extends qCe{static paths=[["service","dev"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(IVr.Filename.pnpCjs)&&t.includes(IVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await jUi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await zUi.Project.find(t,this.context.cwd),n=[];this.showWarnings&&n.push("-s");let a=await $Ui.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await qUi.execUtils.pipevp(o,["service","dev",...n],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await MDe.initialize(this.context.cwd),{clear:r}=(0,eKi.render)((0,tKi.jsx)(r2t,{service:t}));try{return await t.watch(n=>{this.renderLogRecord(n)}),0}catch(n){return console.error(n),1}finally{r()}}};var rKi={commands:[YKe,QKe]};var vVr={};sI(vVr,{AbstractTestCommand:()=>zee,TestIntegrationCommand:()=>UKe,TestUnitCommand:()=>KKe,default:()=>EKi});var bVr=Nt(no(),1);var hKi=Nt(el(),1),_Vr=Nt(Bn(),1),yVr=Nt(Bn(),1),mKi=Nt(Bn(),1),CKi=Nt(no(),1);$c();$c();var _Ki=Nt(Al(),1);CZ();import{readFileSync as fPc}from"node:fs";import{relative as IKi}from"node:path";var nKi=Nt(Al(),1),XKe=Nt(Al(),1);var iKi=Nt(Ec(),1);var pH=Nt(Pc(),1),sKi=({file:e,messages:t=[]})=>{let r=(0,iKi.useMemo)(()=>t.map(n=>n.endsWith(` +`)?n.replace(/\n$/,""):n).filter(Boolean),[t]);return(0,pH.jsxs)(XKe.Box,{flexDirection:"column",borderStyle:"single",borderColor:"gray",children:[!!e&&(0,pH.jsx)(XKe.Box,{marginBottom:1,marginTop:1,marginX:2,children:(0,pH.jsx)(A8,{children:e})}),r.length>0&&(0,pH.jsxs)(pH.Fragment,{children:[(0,pH.jsx)(J9,{offset:2}),(0,pH.jsx)(XKe.Box,{flexDirection:"column",marginBottom:1,marginTop:1,marginX:2,children:r.map(n=>(0,pH.jsx)(XKe.Box,{children:(0,pH.jsx)(nKi.Text,{children:n})},OW()))})]})]})};var mVr=Nt(Al(),1),UDe=Nt(Al(),1);var BO=Nt(Pc(),1),oKi=({details:e,source:t,file:r,line:n,column:a})=>r&&t?(0,BO.jsxs)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",width:"100%",children:[(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(A8,{line:n,column:a,children:r})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,children:(0,BO.jsx)(d8,{line:n??1,column:a??1,children:t})}),(0,BO.jsx)(J9,{offset:2}),(0,BO.jsx)(UDe.Box,{marginBottom:1,marginTop:1,paddingX:2,children:(0,BO.jsx)(mVr.Text,{color:"white",children:e.error.message})})]}):(0,BO.jsx)(UDe.Box,{flexDirection:"column",borderStyle:"round",borderColor:"gray",paddingX:2,paddingY:1,width:"100%",children:(0,BO.jsx)(mVr.Text,{children:e.error.message})});var JKe=Nt(Al(),1),dKi=Nt(Ec(),1),pKi=Nt(Ec(),1);var aKi=Nt(Ec(),1),CVr=Nt(Ec(),1),lKi=Nt(Pc(),1),cKi=({tester:e})=>{let[t,r]=(0,CVr.useState)(0),[n,a]=(0,CVr.useState)(0);return(0,aKi.useEffect)(()=>{let o=f=>{r(f.tests.reduce((I,C)=>I+C.tests+1,0))},l=()=>{a(f=>f+1)},A=()=>{a(t)};return e.on("start",o),e.on("test:pass",l),e.on("test:fail",l),e.on("end",A),()=>{e.off("start",o),e.off("test:pass",l),e.off("test:fail",l),e.off("end",A)}},[e,t,r,a]),(0,lKi.jsx)(JM,{value:t>0&&n>0?n/t*100:0})};import{relative as uKi}from"node:path";var KDe=Nt(Al(),1),$k=Nt(Al(),1),gKi=Nt(Ec(),1),jDe=Nt(Ec(),1);var ME=Nt(Pc(),1),pPc=({state:e})=>e==="fail"?(0,ME.jsx)($k.Text,{color:"red",children:kI.cross}):e==="pass"?(0,ME.jsx)($k.Text,{color:"green",children:kI.tick}):(0,ME.jsx)($k.Text,{color:"white",children:kI.circleDotted}),AKi=({cwd:e,tester:t})=>{let[r,n]=(0,jDe.useState)(void 0),[a,o]=(0,jDe.useState)(void 0),[l,A]=(0,jDe.useState)(0),[f,I]=(0,jDe.useState)(0),[C,b]=(0,jDe.useState)(0);return(0,gKi.useEffect)(()=>{let E=F=>{A(F.tests.reduce((Q,X)=>Q+X.tests,0)),n(F.tests)},N=F=>{I(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"pass"})},B=F=>{b(Q=>Q+1),F.file&&o({file:uKi(e,F.file),state:"fail"})};return t.on("start",E),t.on("test:pass",N),t.on("test:fail",B),()=>{t.off("start",E),t.off("test:pass",N),t.off("test:fail",B)}},[t,A,I,b,o]),r?(0,ME.jsxs)(KDe.Box,{flexDirection:"row",width:"100%",children:[(0,ME.jsxs)(KDe.Box,{flexGrow:1,children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),!!a&&(0,ME.jsx)($k.Text,{color:"white",children:a.file})]}),(0,ME.jsx)(KDe.Box,{flexDirection:"row",children:(0,ME.jsxs)(KDe.Box,{children:[(0,ME.jsx)(pPc,{state:a?.state}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"green",children:[f," Pass"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"red",children:[C," Fail"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"white",children:[l," Total"]}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsxs)($k.Text,{color:"gray",children:[r.length||0," Files"]}),(0,ME.jsx)($k.Text,{children:" "})]})})]}):(0,ME.jsxs)(KDe.Box,{flexDirection:"row",children:[(0,ME.jsx)(RG,{color:"cyan",children:"Test:"}),(0,ME.jsx)($k.Text,{children:" "}),(0,ME.jsx)($k.Text,{color:"white",children:"Loading..."})]})};var ele=Nt(Pc(),1),fKi=({cwd:e,tester:t})=>{let[r,n]=(0,dKi.useState)(!1);return(0,pKi.useEffect)(()=>{let a,o=()=>{a=setTimeout(()=>{n(!0)},1e3)};return t.on("end",o),()=>{a&&clearTimeout(a),t.off("end",o)}},[n]),r?null:(0,ele.jsx)(JKe.Box,{position:"relative",height:7,children:(0,ele.jsxs)(JKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ele.jsx)(JKe.Box,{children:(0,ele.jsx)(AKi,{cwd:e,tester:t})}),(0,ele.jsx)(JKe.Box,{marginTop:1,marginBottom:1,children:(0,ele.jsx)(cKi,{tester:t})})]})})};var zDe=Nt(Pc(),1),zee=class extends hKi.BaseCommand{static usage=_C.Usage({description:"Run tests",details:` Run either integration or unit tests with Node.js built-in test runner. Integration tests are defined by placing *.test.[j|t]sx? in 'integration' folder anywhere. Unit tests are all *.test.[j|t]sx? except in 'integration' folder. - `,examples:[["Run all unit tests","yarn test unit"],["Run all integration tests","yarn test integration"],["Run all integration tests which file names include 'menu'","yarn test integration menu"],["Run all unit tests in watch mode - reloading after any change in file","yarn test unit -w"]]});target=Su.String("-t,--target");watch=Su.Boolean("-w,--watch",!1);files=Su.Rest({required:0});testReporter=Su.String("--test-reporter",{validator:ajt(["tap"])});std=new Map;bufferedStdTimeout;async executeProxy(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:a}=await yVr.Project.find(r,this.context.cwd),o=[];this.files.length&&o.push(this.files.join(" ")),this.watch&&o.push("-w"),a&&(o.push("-t"),o.push(this.context.cwd)),this.testReporter&&o.push(`--test-reporter=${this.testReporter}`);let l=await CKi.xfs.mktempPromise(),{executable:A,env:f}=await iC({binFolder:l,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}});f.NODE_OPTIONS?.includes("--no-warnings")||(f.NODE_OPTIONS=`${f.NODE_OPTIONS??""} --no-warnings=DeprecationWarning`);let{code:I}=await mKi.execUtils.pipevp(A,["test",t??"",...o],{cwd:n.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:f});return I}async executeRegular(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await yVr.Project.find(r,this.context.cwd),a=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},o=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},l=C=>{let b=C.file?pPc(C.file,"utf8"):void 0;xE((0,zDe.jsx)(oKi,{details:C.details,source:b,file:C.file?IKi(n.cwd,C.file):void 0,column:C.column,line:C.line})).split(` + `,examples:[["Run all unit tests","yarn test unit"],["Run all integration tests","yarn test integration"],["Run all integration tests which file names include 'menu'","yarn test integration menu"],["Run all unit tests in watch mode - reloading after any change in file","yarn test unit -w"]]});target=Su.String("-t,--target");watch=Su.Boolean("-w,--watch",!1);files=Su.Rest({required:0});testReporter=Su.String("--test-reporter",{validator:ajt(["tap"])});std=new Map;bufferedStdTimeout;async executeProxy(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n,workspace:a}=await yVr.Project.find(r,this.context.cwd),o=[];this.files.length&&o.push(this.files.join(" ")),this.watch&&o.push("-w"),a&&(o.push("-t"),o.push(this.context.cwd)),this.testReporter&&o.push(`--test-reporter=${this.testReporter}`);let l=await CKi.xfs.mktempPromise(),{executable:A,env:f}=await iC({binFolder:l,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}});f.NODE_OPTIONS?.includes("--no-warnings")||(f.NODE_OPTIONS=`${f.NODE_OPTIONS??""} --no-warnings=DeprecationWarning`);let{code:I}=await mKi.execUtils.pipevp(A,["test",t??"",...o],{cwd:n.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:f});return I}async executeRegular(t){let r=await _Vr.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await yVr.Project.find(r,this.context.cwd),a=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},o=C=>{this.bufferedStd(C,b=>{this.renderStdBuffer(b)})},l=C=>{let b=C.file?fPc(C.file,"utf8"):void 0;xE((0,zDe.jsx)(oKi,{details:C.details,source:b,file:C.file?IKi(n.cwd,C.file):void 0,column:C.column,line:C.line})).split(` `).forEach(E=>{console.error(E)})},A=await V8.initialize(this.context.cwd);if(this.testReporter==="tap")return(t==="integration"?await A.integration(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter}):await A.unit(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).find(b=>b.type==="test:fail")?1:0;A.on("test:stdout",a),A.on("test:stderr",o),A.on("test:fail",l);let{clear:f,unmount:I}=(0,_Ki.render)((0,zDe.jsx)(fKi,{cwd:n.cwd,tester:A}));try{return(t==="integration"?await A.integration(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter}):await A.unit(this.target??n.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).find(b=>b.type==="test:fail")?1:0}catch(C){return C instanceof Error?xE((0,zDe.jsx)(Fk,{error:C})).split(` `).forEach(b=>{console.error(b)}):console.error(C),1}finally{this.flushBufferedStd(),A.off("test:stdout",a),A.off("test:stderr",o),A.off("test:fail",l),I(),f()}}bufferedStd(t,r){if(this.std.keys().next().value)if(this.std.has(t.file))this.std.get(t.file)?.push(t.message),this.bufferedStdTimeout&&clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=setTimeout(()=>{let n=this.std.keys().next().value;r({file:n,messages:this.std.get(n)??[]}),this.std.delete(n)},100);else{let n=this.std.keys().next().value;r({file:n,messages:this.std.get(n)??[]}),this.std.delete(n),this.std.set(t.file,[t.message])}else this.std.set(t.file,[t.message])}renderStdBuffer({file:t,messages:r}){let n=r.map(l=>l.split(` -`).filter(Boolean)).flat(),{logRecords:a,raw:o}=n.reduce((l,A)=>{try{let f=JSON.parse(A);return{...l,logRecords:[...l.logRecords,f]}}catch{return{...l,raw:[...l.raw,A]}}},{logRecords:[],raw:[]});a.forEach(l=>{console.log(xE((0,zDe.jsx)(Pvt,{...l})))}),o.length>0&&console.log(xE((0,zDe.jsx)(sKi,{file:t?IKi(process.cwd(),t):void 0,messages:o})))}flushBufferedStd(){this.bufferedStdTimeout&&(clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=void 0),this.std.forEach((t,r)=>{this.renderStdBuffer({file:r,messages:t})}),this.std.clear()}};var UKe=class extends zee{static paths=[["test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(bVr.Filename.pnpCjs)&&t.includes(bVr.Filename.pnpEsmLoader)?this.executeRegular("integration"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("integration"):this.executeProxy("integration")}};var EVr=Nt(no(),1);var KKe=class extends zee{static paths=[["test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(EVr.Filename.pnpCjs)&&t.includes(EVr.Filename.pnpEsmLoader)?this.executeRegular("unit"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("unit"):this.executeProxy("unit")}};var yKi=Nt(Bn(),1),bKi=Nt(Bn(),1),SVr=Nt(no(),1);var Ovt=class extends zee{static paths=[["test"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(SVr.Filename.pnpCjs)&&t.includes(SVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeRegular(){let t=await yKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await bKi.Project.find(t,this.context.cwd),n=await V8.initialize(this.context.cwd);try{return(await n.general(this.target??r.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).some(o=>o.type==="test:fail")?1:0}catch(a){return console.error(a),1}}};var EKi={commands:[UKe,KKe,Ovt]};var GVr={};sI(GVr,{default:()=>MKi});var RKi=Nt(Bn(),1),NKi=Nt(Bn(),1),DKi=Nt(Bn(),1),wVr=Nt(no(),1),TVr=Nt(Bn(),1),rle=Nt(UC(),1);var SKi=Nt(el(),1),vKi=Nt(Bn(),1),BKi=Nt(Bn(),1),BVr=Nt(no(),1),wKi=Nt(Bn(),1),TKi=Nt(no(),1);$c();var tle=class extends SKi.BaseCommand{static usage=_C.Usage({description:"Update tools",details:"\n Update tools such as `tsconfig`, `typescript` version, `@atls/code-runtime` version\n ",examples:[["Update tsconfig","yarn tools tsconfig"],["Update runtime","yarn tools runtime"],["Update typescript version","yarn tools typescript"],["Update all","yarn tools sync"]]});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(BVr.Filename.pnpCjs)&&t.includes(BVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(t=["tools","sync"]){let r=await vKi.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await BKi.Project.find(r,this.context.cwd),a=await TKi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await wKi.execUtils.pipevp(o,t,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){return 0}};var Mvt=class extends tle{static paths=[["tools","sync","typescript"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(wVr.Filename.pnpCjs)&&t.includes(wVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","typescript"])}async executeRegular(){let t=await RKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await NKi.Project.find(t,this.context.cwd),n=(await import("@atls/code-runtime/package.json",{with:{type:"json"}})).default;return(await DKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Tools sync typescript version",async()=>{if(r.topLevelWorkspace.manifest.raw.devDependencies){let l=TVr.structUtils.parseIdent("typescript"),A=Array.from(r.topLevelWorkspace.manifest.devDependencies.values()).find(f=>f.scope===l.scope&&f.name===l.name);A||(A=TVr.structUtils.makeDescriptor(l,n.dependencies.typescript)),rle.default.valid(rle.default.coerce(A.range))&&rle.default.valid(rle.default.coerce(n.dependencies.typescript))&&(rle.default.eq(rle.default.coerce(A.range)||"",rle.default.coerce(n.dependencies.typescript)||"")||(A.range=n.dependencies.typescript)),r.topLevelWorkspace.manifest.devDependencies.set(A.identHash,A),await r.persist()}})})).exitCode()}};var kKi=Nt(Bn(),1),xKi=Nt(Bn(),1),GKi=Nt(Bn(),1),RVr=Nt(no(),1),jKe=Nt(no(),1),NVr=Nt(no(),1),DVr=Nt(oTr(),1);import fPc from"node:assert";var IPc=(e,t,r)=>{let n=e.slice();return t.forEach((a,o)=>{typeof n[o]>"u"?n[o]=r?.cloneUnlessOtherwiseSpecified(a,r):r?.isMergeableObject(a)?n[o]=(0,DVr.default)(e[o],a,r):e.includes(a)||n.push(a)}),n},hPc=e=>e.endsWith("/**/*")?e:!e.endsWith("/**/*")&&e.endsWith("/*")?e.replace("/*","/**/*"):e,Hvt=class extends tle{static paths=[["tools","sync","tsconfig"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(RVr.Filename.pnpCjs)&&t.includes(RVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","tsconfig"])}async executeRegular(){let t=await kKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await xKi.Project.find(t,this.context.cwd);return(await GKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{await a.startTimerPromise("Tools sync typescript config",async()=>{let o=NVr.ppath.join(r.topLevelWorkspace.cwd,"tsconfig.json"),l=await jKe.xfs.existsPromise(o)?await jKe.xfs.readJsonPromise(o):{compilerOptions:{}};await jKe.xfs.writeFilePromise(NVr.ppath.join(r.topLevelWorkspace.cwd,"project.types.d.ts"),`/// -`);let A=(0,DVr.default)(l,{compilerOptions:bj.compilerOptions},{arrayMerge:IPc}),f=(r.topLevelWorkspace.manifest.raw.workspaces||[]).map(hPc),I={...A,include:Array.from(new Set(["project.types.d.ts",...A.include,...f]))};try{fPc.deepEqual(l,I)}catch{await jKe.xfs.writeJsonPromise(o,I)}})})).exitCode()}};var mPc=[["tools","sync","typescript"],["tools","sync","tsconfig"],["install"]],Yvt=class extends tle{static paths=[["tools","sync"]];async executeRegular(){for(let t of mPc){let r=await this.cli.run(t);if(r!==0)return r}return 0}};var FKi=Nt(Bn(),1),kVr=Nt(Bn(),1),ZKi=Nt(no(),1);var LKi=async(e,t)=>{let{project:r}=await FKi.Project.find(e,t.cwd),n=await ZKi.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r});await kVr.execUtils.pipevp(a,["tools","sync"],{cwd:t.cwd,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,end:kVr.execUtils.EndStrategy.ErrorCode,env:o})};var qDe=Nt(no(),1),nle=Nt(no(),1);import{spawnSync as CPc}from"node:child_process";var xVr=e=>`${e}`,_Pc=()=>xVr("yarn commit staged"),VKi=e=>CPc("git",e,{encoding:"utf-8"}),PKi=async e=>{if(process.env.GITHUB_ACTIONS){console.log("AFTER INSTALL HOOK: Execution in GitHub Action");return}if(process.env.IMAGE_PACK||VKi(["--version"]).error?.code==="ENOENT")return;let r=qDe.ppath.join(e.cwd,".config/husky"),n=qDe.ppath.join(r,"_");await nle.xfs.existsPromise(n)&&await nle.xfs.removePromise(r),await nle.xfs.existsPromise(r)||await nle.xfs.mkdirPromise(r,{recursive:!0}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"commit-msg"),xVr("yarn commit message lint"),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"pre-commit"),_Pc(),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"prepare-commit-msg"),xVr("yarn commit message $@"),{mode:493});let{error:a}=VKi(["config","core.hooksPath",r]);if(a)throw a};var WKi=Nt(no(),1);var OKi=async(e,t,r)=>{Wmt(t);let n=wEr(e);if(!n)return;let a=WKi.npath.fromPortablePath(n);await Promise.all([...t[lQe]?[r("node",process.execPath)]:[],r("run",process.execPath,[a,"run"]),r("yarn",process.execPath,[a]),r("yarnpkg",process.execPath,[a]),r("node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])])};var MKi={hooks:{afterAllInstalled:PKi,afterYarnVersionSet:LKi,setupScriptEnvironment:OKi},commands:[Yvt,Mvt,Hvt]};var PVr={};sI(PVr,{TypeCheckCommand:()=>zKe,default:()=>XKi});var HKi=Nt(el(),1),FVr=Nt(Bn(),1),ZVr=Nt(Bn(),1),LVr=Nt(no(),1),YKi=Nt(Bn(),1),VVr=Nt(no(),1),Qvt=Nt(no(),1);$c();var QKi=Nt(Al(),1);var Xvt=Nt(Pc(),1),zKe=class extends HKi.BaseCommand{static paths=[["typecheck"]];args=Su.Rest({required:0});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(LVr.Filename.pnpCjs)&&t.includes(LVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await Qvt.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await YKi.execUtils.pipevp(a,["typecheck",...this.args],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await zNe.initialize(r.cwd),{clear:a}=(0,QKi.render)((0,Xvt.jsx)(jEt,{typescript:n}));try{let o=await n.check(await this.getIncludes(r));return o.forEach(l=>{xE((0,Xvt.jsx)(KEt,{...l})).split(` +`).filter(Boolean)).flat(),{logRecords:a,raw:o}=n.reduce((l,A)=>{try{let f=JSON.parse(A);return{...l,logRecords:[...l.logRecords,f]}}catch{return{...l,raw:[...l.raw,A]}}},{logRecords:[],raw:[]});a.forEach(l=>{console.log(xE((0,zDe.jsx)(Pvt,{...l})))}),o.length>0&&console.log(xE((0,zDe.jsx)(sKi,{file:t?IKi(process.cwd(),t):void 0,messages:o})))}flushBufferedStd(){this.bufferedStdTimeout&&(clearTimeout(this.bufferedStdTimeout),this.bufferedStdTimeout=void 0),this.std.forEach((t,r)=>{this.renderStdBuffer({file:r,messages:t})}),this.std.clear()}};var UKe=class extends zee{static paths=[["test","integration"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(bVr.Filename.pnpCjs)&&t.includes(bVr.Filename.pnpEsmLoader)?this.executeRegular("integration"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("integration"):this.executeProxy("integration")}};var EVr=Nt(no(),1);var KKe=class extends zee{static paths=[["test","unit"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(EVr.Filename.pnpCjs)&&t.includes(EVr.Filename.pnpEsmLoader)?this.executeRegular("unit"):process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular("unit"):this.executeProxy("unit")}};var yKi=Nt(Bn(),1),bKi=Nt(Bn(),1),SVr=Nt(no(),1);var Ovt=class extends zee{static paths=[["test"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(SVr.Filename.pnpCjs)&&t.includes(SVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeRegular(){let t=await yKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await bKi.Project.find(t,this.context.cwd),n=await V8.initialize(this.context.cwd);try{return(await n.general(this.target??r.cwd,{files:this.files,watch:this.watch,testReporter:this.testReporter})).some(o=>o.type==="test:fail")?1:0}catch(a){return console.error(a),1}}};var EKi={commands:[UKe,KKe,Ovt]};var GVr={};sI(GVr,{default:()=>MKi});var RKi=Nt(Bn(),1),NKi=Nt(Bn(),1),DKi=Nt(Bn(),1),wVr=Nt(no(),1),TVr=Nt(Bn(),1),rle=Nt(UC(),1);var SKi=Nt(el(),1),vKi=Nt(Bn(),1),BKi=Nt(Bn(),1),BVr=Nt(no(),1),wKi=Nt(Bn(),1),TKi=Nt(no(),1);$c();var tle=class extends SKi.BaseCommand{static usage=_C.Usage({description:"Update tools",details:"\n Update tools such as `tsconfig`, `typescript` version, `@atls/code-runtime` version\n ",examples:[["Update tsconfig","yarn tools tsconfig"],["Update runtime","yarn tools runtime"],["Update typescript version","yarn tools typescript"],["Update all","yarn tools sync"]]});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(BVr.Filename.pnpCjs)&&t.includes(BVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(t=["tools","sync"]){let r=await vKi.Configuration.find(this.context.cwd,this.context.plugins),{project:n}=await BKi.Project.find(r,this.context.cwd),a=await TKi.xfs.mktempPromise(),{executable:o,env:l}=await iC({binFolder:a,project:n,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await wKi.execUtils.pipevp(o,t,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){return 0}};var Mvt=class extends tle{static paths=[["tools","sync","typescript"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(wVr.Filename.pnpCjs)&&t.includes(wVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","typescript"])}async executeRegular(){let t=await RKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await NKi.Project.find(t,this.context.cwd),n=(await import("@atls/code-runtime/package.json",{with:{type:"json"}})).default;return(await DKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async o=>{await o.startTimerPromise("Tools sync typescript version",async()=>{if(r.topLevelWorkspace.manifest.raw.devDependencies){let l=TVr.structUtils.parseIdent("typescript"),A=Array.from(r.topLevelWorkspace.manifest.devDependencies.values()).find(f=>f.scope===l.scope&&f.name===l.name);A||(A=TVr.structUtils.makeDescriptor(l,n.dependencies.typescript)),rle.default.valid(rle.default.coerce(A.range))&&rle.default.valid(rle.default.coerce(n.dependencies.typescript))&&(rle.default.eq(rle.default.coerce(A.range)||"",rle.default.coerce(n.dependencies.typescript)||"")||(A.range=n.dependencies.typescript)),r.topLevelWorkspace.manifest.devDependencies.set(A.identHash,A),await r.persist()}})})).exitCode()}};var kKi=Nt(Bn(),1),xKi=Nt(Bn(),1),GKi=Nt(Bn(),1),RVr=Nt(no(),1),jKe=Nt(no(),1),NVr=Nt(no(),1),DVr=Nt(oTr(),1);import IPc from"node:assert";var hPc=(e,t,r)=>{let n=e.slice();return t.forEach((a,o)=>{typeof n[o]>"u"?n[o]=r?.cloneUnlessOtherwiseSpecified(a,r):r?.isMergeableObject(a)?n[o]=(0,DVr.default)(e[o],a,r):e.includes(a)||n.push(a)}),n},mPc=e=>e.endsWith("/**/*")?e:!e.endsWith("/**/*")&&e.endsWith("/*")?e.replace("/*","/**/*"):e,Hvt=class extends tle{static paths=[["tools","sync","tsconfig"]];async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(RVr.Filename.pnpCjs)&&t.includes(RVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy(["tools","sync","tsconfig"])}async executeRegular(){let t=await kKi.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await xKi.Project.find(t,this.context.cwd);return(await GKi.StreamReport.start({stdout:this.context.stdout,configuration:t},async a=>{await a.startTimerPromise("Tools sync typescript config",async()=>{let o=NVr.ppath.join(r.topLevelWorkspace.cwd,"tsconfig.json"),l=await jKe.xfs.existsPromise(o)?await jKe.xfs.readJsonPromise(o):{compilerOptions:{}};await jKe.xfs.writeFilePromise(NVr.ppath.join(r.topLevelWorkspace.cwd,"project.types.d.ts"),`/// +`);let A=(0,DVr.default)(l,{compilerOptions:bj.compilerOptions},{arrayMerge:hPc}),f=(r.topLevelWorkspace.manifest.raw.workspaces||[]).map(mPc),I={...A,include:Array.from(new Set(["project.types.d.ts",...A.include,...f]))};try{IPc.deepEqual(l,I)}catch{await jKe.xfs.writeJsonPromise(o,I)}})})).exitCode()}};var CPc=[["tools","sync","typescript"],["tools","sync","tsconfig"],["install"]],Yvt=class extends tle{static paths=[["tools","sync"]];async executeRegular(){for(let t of CPc){let r=await this.cli.run(t);if(r!==0)return r}return 0}};var FKi=Nt(Bn(),1),kVr=Nt(Bn(),1),ZKi=Nt(no(),1);var LKi=async(e,t)=>{let{project:r}=await FKi.Project.find(e,t.cwd),n=await ZKi.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r});await kVr.execUtils.pipevp(a,["tools","sync"],{cwd:t.cwd,stdin:t.stdin,stdout:t.stdout,stderr:t.stderr,end:kVr.execUtils.EndStrategy.ErrorCode,env:o})};var qDe=Nt(no(),1),nle=Nt(no(),1);import{spawnSync as _Pc}from"node:child_process";var xVr=e=>`${e}`,yPc=()=>xVr("yarn commit staged"),VKi=e=>_Pc("git",e,{encoding:"utf-8"}),PKi=async e=>{if(process.env.GITHUB_ACTIONS){console.log("AFTER INSTALL HOOK: Execution in GitHub Action");return}if(process.env.IMAGE_PACK||VKi(["--version"]).error?.code==="ENOENT")return;let r=qDe.ppath.join(e.cwd,".config/husky"),n=qDe.ppath.join(r,"_");await nle.xfs.existsPromise(n)&&await nle.xfs.removePromise(r),await nle.xfs.existsPromise(r)||await nle.xfs.mkdirPromise(r,{recursive:!0}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"commit-msg"),xVr("yarn commit message lint"),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"pre-commit"),yPc(),{mode:493}),await nle.xfs.writeFilePromise(qDe.ppath.join(r,"prepare-commit-msg"),xVr("yarn commit message $@"),{mode:493});let{error:a}=VKi(["config","core.hooksPath",r]);if(a)throw a};var WKi=Nt(no(),1);var OKi=async(e,t,r)=>{Wmt(t);let n=wEr(e);if(!n)return;let a=WKi.npath.fromPortablePath(n);await Promise.all([...t[lQe]?[r("node",process.execPath)]:[],r("run",process.execPath,[a,"run"]),r("yarn",process.execPath,[a]),r("yarnpkg",process.execPath,[a]),r("node-gyp",process.execPath,[a,"run","--top-level","node-gyp"])])};var MKi={hooks:{afterAllInstalled:PKi,afterYarnVersionSet:LKi,setupScriptEnvironment:OKi},commands:[Yvt,Mvt,Hvt]};var PVr={};sI(PVr,{TypeCheckCommand:()=>zKe,default:()=>XKi});var HKi=Nt(el(),1),FVr=Nt(Bn(),1),ZVr=Nt(Bn(),1),LVr=Nt(no(),1),YKi=Nt(Bn(),1),VVr=Nt(no(),1),Qvt=Nt(no(),1);$c();var QKi=Nt(Al(),1);var Xvt=Nt(Pc(),1),zKe=class extends HKi.BaseCommand{static paths=[["typecheck"]];args=Su.Rest({required:0});async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(LVr.Filename.pnpCjs)&&t.includes(LVr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await Qvt.xfs.mktempPromise(),{executable:a,env:o}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:l}=await YKi.execUtils.pipevp(a,["typecheck",...this.args],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:o});return l}async executeRegular(){let t=await FVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await ZVr.Project.find(t,this.context.cwd),n=await zNe.initialize(r.cwd),{clear:a}=(0,QKi.render)((0,Xvt.jsx)(jEt,{typescript:n}));try{let o=await n.check(await this.getIncludes(r));return o.forEach(l=>{xE((0,Xvt.jsx)(KEt,{...l})).split(` `).forEach(A=>{console.log(A)})}),o.length===0?0:1}catch(o){return xE((0,Xvt.jsx)(Fk,{error:o})).split(` -`).forEach(l=>{console.error(l)}),1}finally{a()}}async getIncludes(t){if(this.args.length>0)return this.args;if(await Qvt.xfs.existsPromise(VVr.ppath.join(t.cwd,"tsconfig.json"))){let r=await Qvt.xfs.readJsonPromise(VVr.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}};var XKi={commands:[zKe]};var rPr={};sI(rPr,{UiIconsGenerateCommand:()=>t8e,default:()=>oji});var rji=Nt(el(),1),qVr=Nt(Bn(),1),$Vr=Nt(Bn(),1),ePr=Nt(no(),1),nji=Nt(Bn(),1),iji=Nt(no(),1);$c();import{join as tji}from"node:path";import{relative as YWc}from"node:path";var sji=Nt(Al(),1);var qKe=Nt(Al(),1),e8i=Nt(Ec(),1),t8i=Nt(Ec(),1);var JKi=Nt(Ec(),1),UKi=Nt(Ec(),1),jKi=Nt(Pc(),1),KKi=({icons:e})=>{let[t,r]=(0,UKi.useState)(0);return(0,JKi.useEffect)(()=>{let n=()=>{r(33)},a=()=>{r(66)},o=()=>{r(100)};return e.on("read:end",n),e.on("transform:end",a),e.on("save:end",o),()=>{e.off("read:end",n),e.off("transform:end",a),e.off("save:end",o)}},[e,r]),(0,jKi.jsx)(JM,{value:t})};var Jvt=Nt(Al(),1),Uvt=Nt(Al(),1),zKi=Nt(Ec(),1),qKi=Nt(Ec(),1);var qee=Nt(Pc(),1),$Ki=({icons:e})=>{let[t,r]=(0,qKi.useState)("Initilization...");return(0,zKi.useEffect)(()=>{let n=()=>{r("Reading files...")},a=()=>{r("Transforming files...")},o=()=>{r("Saving files...")};return e.on("read:start",n),e.on("transform:start",a),e.on("save:start",o),()=>{e.off("read:start",n),e.off("transform:start",a),e.off("save:start",o)}},[e,r]),(0,qee.jsxs)(Jvt.Box,{flexDirection:"row",width:"100%",children:[(0,qee.jsxs)(Jvt.Box,{flexGrow:1,children:[(0,qee.jsx)(RG,{color:"cyan",children:"Icons:"}),(0,qee.jsx)(Uvt.Text,{children:" "}),(0,qee.jsx)(Uvt.Text,{color:"white",children:t})]}),(0,qee.jsx)(Jvt.Box,{flexDirection:"row",children:(0,qee.jsx)(Uvt.Text,{color:"green",children:kI.tick})})]})};var ile=Nt(Pc(),1),r8i=({icons:e})=>{let[t,r]=(0,e8i.useState)(!1);return(0,t8i.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("save:end",n),()=>{e.off("save:end",n)}},[r]),t?null:(0,ile.jsx)(qKe.Box,{position:"relative",height:7,children:(0,ile.jsxs)(qKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ile.jsx)(qKe.Box,{children:(0,ile.jsx)($Ki,{icons:e})}),(0,ile.jsx)(qKe.Box,{marginTop:1,marginBottom:1,children:(0,ile.jsx)(KKi,{icons:e})})]})})};import LWc from"node:events";import{access as VWc}from"node:fs/promises";import{mkdtemp as PWc}from"node:fs/promises";import{readFile as WWc}from"node:fs/promises";import{readdir as OWc}from"node:fs/promises";import{writeFile as q8i}from"node:fs/promises";import{mkdir as MWc}from"node:fs/promises";import{tmpdir as HWc}from"node:os";import{join as $ee}from"node:path";import{basename as $8i}from"node:path";import{extname as eji}from"node:path";var yPc=/[\p{Lu}]/u,bPc=/[\p{Ll}]/u,n8i=/^[\p{Lu}](?![\p{Lu}])/gu,o8i=/([\p{Alpha}\p{N}_]|$)/u,WVr=/[_.\- ]+/,EPc=new RegExp("^"+WVr.source),i8i=new RegExp(WVr.source+o8i.source,"gu"),s8i=new RegExp("\\d+"+o8i.source,"gu"),SPc=(e,t,r,n)=>{let a=!1,o=!1,l=!1,A=!1;for(let f=0;f2?e[f-3]==="-":!0,a&&yPc.test(I)?(e=e.slice(0,f)+"-"+e.slice(f),a=!1,l=o,o=!0,f++):o&&l&&bPc.test(I)&&(!A||n)?(e=e.slice(0,f-1)+"-"+e.slice(f-1),l=o,o=!1,a=!0):(a=t(I)===I&&r(I)!==I,l=o,o=r(I)===I&&t(I)!==I)}return e},vPc=(e,t)=>(n8i.lastIndex=0,e.replaceAll(n8i,r=>t(r))),BPc=(e,t)=>(i8i.lastIndex=0,s8i.lastIndex=0,e.replaceAll(s8i,(r,n,a)=>["_","-"].includes(e.charAt(a+r.length))?r:t(r)).replaceAll(i8i,(r,n)=>t(n)));function OVr(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?WVr.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=SPc(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(EPc,""),e=t.preserveConsecutiveUppercase?vPc(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),BPc(e,n))}var z8i=Nt(j8i(),1);import{writeFile as GWc}from"node:fs/promises";import{mkdtemp as FWc}from"node:fs/promises";import{tmpdir as ZWc}from"node:os";import{join as aBt}from"node:path";var cBt=class{constructor(t,r,n){this.loaders=t;this.cwd=r;this.target=n}async build(){let t=new z8i.default;return await this.applyCommon(t),await this.applyModules(t),t.toConfig()}async applyCommon(t){t.mode("development").bail(!1).target("async-node").optimization.minimize(!1),t.entry("replacements").add(aBt(this.cwd,"replacements")),t.entry("template").add(aBt(this.cwd,"template")),t.output.path(this.target).filename("[name].mjs"),t.output.library({type:"module"}),t.output.chunkFormat("module"),t.output.module(!0),t.resolve.extensions.add(".tsx").add(".ts").add(".js"),t.resolve.extensionAlias.set(".js",[".js",".ts"]).set(".jsx",[".jsx",".tsx"]).set(".cjs",[".cjs",".cts"]).set(".mjs",[".mjs",".mts"]),t.externalsType("import"),t.externalsPresets({node:!0}),t.experiments({outputModule:!0})}async applyModules(t){let r=aBt(await FWc(aBt(ZWc(),"tools-icons-")),"tsconfig.json");await GWc(r,'{"include":["**/*"]}'),t.module.rule("ts").test(/.tsx?$/).use("ts").loader(this.loaders.tsLoader).options({transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:r})}};var lBt=class e extends LWc{constructor(r,n,a,o){super();this.svgr=r;this.webpack=n;this.loaders=a;this.cwd=o}static async initialize(r){let{transform:n,jsx:a}=await import("@atls/code-runtime/svgr"),{webpack:o,tsLoaderPath:l}=await import("@atls/code-runtime/webpack");return new e({transform:n,jsx:a},o,{tsLoader:l},r)}async generate(r={}){await this.save(await this.transform(await this.read($ee(this.cwd,"icons")),r))}async compileReplacementsAndTemplate(){let r=await PWc($ee(HWc(),"tools-icons-")),n=this.webpack(await new cBt(this.loaders,this.cwd,r).build());return await new Promise((a,o)=>{n.run(l=>{l&&o(l),a([])})}),{replacements:(await import($ee(r,"replacements.mjs"))).default,template:(await import($ee(r,"template.mjs"))).default}}async read(r){this.emit("read:start");let n=await OWc(r),a=await Promise.all(n.filter(o=>o.endsWith(".svg")).map(async o=>({source:await WWc($ee(r,o),"utf8"),component:OVr($8i(o,eji(o)),{pascalCase:!0}),name:$8i(o,eji(o)),path:$ee(r,o),file:o})));return this.emit("read:end"),a}async transform(r,n){this.emit("transform:start");let{replacements:a,template:o}=await this.compileReplacementsAndTemplate(),l=await Promise.all(r.map(async A=>{let f=await this.svgr.transform(A.source,{...n,icon:!0,template:o,typescript:!0,expandProps:!0,replaceAttrValues:a[`${A.component}Icon`]??{}},{componentName:`${A.component}Icon`,caller:{name:"@atls/code-icons",defaultPlugins:[this.svgr.jsx]}});return{...A,output:f}}));return this.emit("transform:end"),l}async save(r){this.emit("save:start");let n=$ee(this.cwd,"src");try{await VWc(n)}catch{await MWc(n,{recursive:!0})}await Promise.all(r.map(async a=>q8i($ee(n,`${a.name}.icon.tsx`),a.output))),await q8i($ee(n,"index.ts"),r.map(a=>`export * from './${a.name}.icon.jsx'`).join(` -`)),this.emit("save:end")}};var tPr=Nt(Pc(),1),t8e=class extends rji.BaseCommand{static paths=[["ui","icons","generate"]];native=Su.Boolean("-n, --native",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(ePr.Filename.pnpCjs)&&t.includes(ePr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await iji.xfs.mktempPromise(),a=[];this.native&&a.push("--native");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await nji.execUtils.pipevp(o,["ui","icons","generate",...a],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await lBt.initialize(this.context.cwd),{clear:a}=(0,sji.render)((0,tPr.jsx)(r8i,{icons:n}));try{await n.generate({native:this.native});let o=(await b$("*.tsx",{cwd:tji(this.context.cwd,"src")})).map(l=>tji(YWc(r.cwd,this.context.cwd),"src",l));return await this.cli.run(["format",...o],{cwd:r.cwd}),await this.cli.run(["lint","--fix",...o],{cwd:r.cwd}),0}catch(o){return o instanceof Error?xE((0,tPr.jsx)(Fk,{error:o})).split(` +`).forEach(l=>{console.error(l)}),1}finally{a()}}async getIncludes(t){if(this.args.length>0)return this.args;if(await Qvt.xfs.existsPromise(VVr.ppath.join(t.cwd,"tsconfig.json"))){let r=await Qvt.xfs.readJsonPromise(VVr.ppath.join(t.cwd,"tsconfig.json"));if(r.include&&r.include.length>0)return r.include}return t.topLevelWorkspace.manifest.workspaceDefinitions.map(r=>r.pattern)}};var XKi={commands:[zKe]};var rPr={};sI(rPr,{UiIconsGenerateCommand:()=>t8e,default:()=>oji});var rji=Nt(el(),1),qVr=Nt(Bn(),1),$Vr=Nt(Bn(),1),ePr=Nt(no(),1),nji=Nt(Bn(),1),iji=Nt(no(),1);$c();import{join as tji}from"node:path";import{relative as QWc}from"node:path";var sji=Nt(Al(),1);var qKe=Nt(Al(),1),e8i=Nt(Ec(),1),t8i=Nt(Ec(),1);var JKi=Nt(Ec(),1),UKi=Nt(Ec(),1),jKi=Nt(Pc(),1),KKi=({icons:e})=>{let[t,r]=(0,UKi.useState)(0);return(0,JKi.useEffect)(()=>{let n=()=>{r(33)},a=()=>{r(66)},o=()=>{r(100)};return e.on("read:end",n),e.on("transform:end",a),e.on("save:end",o),()=>{e.off("read:end",n),e.off("transform:end",a),e.off("save:end",o)}},[e,r]),(0,jKi.jsx)(JM,{value:t})};var Jvt=Nt(Al(),1),Uvt=Nt(Al(),1),zKi=Nt(Ec(),1),qKi=Nt(Ec(),1);var qee=Nt(Pc(),1),$Ki=({icons:e})=>{let[t,r]=(0,qKi.useState)("Initilization...");return(0,zKi.useEffect)(()=>{let n=()=>{r("Reading files...")},a=()=>{r("Transforming files...")},o=()=>{r("Saving files...")};return e.on("read:start",n),e.on("transform:start",a),e.on("save:start",o),()=>{e.off("read:start",n),e.off("transform:start",a),e.off("save:start",o)}},[e,r]),(0,qee.jsxs)(Jvt.Box,{flexDirection:"row",width:"100%",children:[(0,qee.jsxs)(Jvt.Box,{flexGrow:1,children:[(0,qee.jsx)(RG,{color:"cyan",children:"Icons:"}),(0,qee.jsx)(Uvt.Text,{children:" "}),(0,qee.jsx)(Uvt.Text,{color:"white",children:t})]}),(0,qee.jsx)(Jvt.Box,{flexDirection:"row",children:(0,qee.jsx)(Uvt.Text,{color:"green",children:kI.tick})})]})};var ile=Nt(Pc(),1),r8i=({icons:e})=>{let[t,r]=(0,e8i.useState)(!1);return(0,t8i.useEffect)(()=>{let n=()=>{setTimeout(()=>{r(!0)},1)};return e.on("save:end",n),()=>{e.off("save:end",n)}},[r]),t?null:(0,ile.jsx)(qKe.Box,{position:"relative",height:7,children:(0,ile.jsxs)(qKe.Box,{flexDirection:"column",borderColor:"gray",padding:1,borderStyle:"round",position:"absolute",height:7,width:"100%",children:[(0,ile.jsx)(qKe.Box,{children:(0,ile.jsx)($Ki,{icons:e})}),(0,ile.jsx)(qKe.Box,{marginTop:1,marginBottom:1,children:(0,ile.jsx)(KKi,{icons:e})})]})})};import VWc from"node:events";import{access as PWc}from"node:fs/promises";import{mkdtemp as WWc}from"node:fs/promises";import{readFile as OWc}from"node:fs/promises";import{readdir as MWc}from"node:fs/promises";import{writeFile as q8i}from"node:fs/promises";import{mkdir as HWc}from"node:fs/promises";import{tmpdir as YWc}from"node:os";import{join as $ee}from"node:path";import{basename as $8i}from"node:path";import{extname as eji}from"node:path";var bPc=/[\p{Lu}]/u,EPc=/[\p{Ll}]/u,n8i=/^[\p{Lu}](?![\p{Lu}])/gu,o8i=/([\p{Alpha}\p{N}_]|$)/u,WVr=/[_.\- ]+/,SPc=new RegExp("^"+WVr.source),i8i=new RegExp(WVr.source+o8i.source,"gu"),s8i=new RegExp("\\d+"+o8i.source,"gu"),vPc=(e,t,r,n)=>{let a=!1,o=!1,l=!1,A=!1;for(let f=0;f2?e[f-3]==="-":!0,a&&bPc.test(I)?(e=e.slice(0,f)+"-"+e.slice(f),a=!1,l=o,o=!0,f++):o&&l&&EPc.test(I)&&(!A||n)?(e=e.slice(0,f-1)+"-"+e.slice(f-1),l=o,o=!1,a=!0):(a=t(I)===I&&r(I)!==I,l=o,o=r(I)===I&&t(I)!==I)}return e},BPc=(e,t)=>(n8i.lastIndex=0,e.replaceAll(n8i,r=>t(r))),wPc=(e,t)=>(i8i.lastIndex=0,s8i.lastIndex=0,e.replaceAll(s8i,(r,n,a)=>["_","-"].includes(e.charAt(a+r.length))?r:t(r)).replaceAll(i8i,(r,n)=>t(n)));function OVr(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";let r=t.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(t.locale),n=t.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(t.locale);return e.length===1?WVr.test(e)?"":t.pascalCase?n(e):r(e):(e!==r(e)&&(e=vPc(e,r,n,t.preserveConsecutiveUppercase)),e=e.replace(SPc,""),e=t.preserveConsecutiveUppercase?BPc(e,r):r(e),t.pascalCase&&(e=n(e.charAt(0))+e.slice(1)),wPc(e,n))}var z8i=Nt(j8i(),1);import{writeFile as FWc}from"node:fs/promises";import{mkdtemp as ZWc}from"node:fs/promises";import{tmpdir as LWc}from"node:os";import{join as aBt}from"node:path";var cBt=class{constructor(t,r,n){this.loaders=t;this.cwd=r;this.target=n}async build(){let t=new z8i.default;return await this.applyCommon(t),await this.applyModules(t),t.toConfig()}async applyCommon(t){t.mode("development").bail(!1).target("async-node").optimization.minimize(!1),t.entry("replacements").add(aBt(this.cwd,"replacements")),t.entry("template").add(aBt(this.cwd,"template")),t.output.path(this.target).filename("[name].mjs"),t.output.library({type:"module"}),t.output.chunkFormat("module"),t.output.module(!0),t.resolve.extensions.add(".tsx").add(".ts").add(".js"),t.resolve.extensionAlias.set(".js",[".js",".ts"]).set(".jsx",[".jsx",".tsx"]).set(".cjs",[".cjs",".cts"]).set(".mjs",[".mjs",".mts"]),t.externalsType("import"),t.externalsPresets({node:!0}),t.experiments({outputModule:!0})}async applyModules(t){let r=aBt(await ZWc(aBt(LWc(),"tools-icons-")),"tsconfig.json");await FWc(r,'{"include":["**/*"]}'),t.module.rule("ts").test(/.tsx?$/).use("ts").loader(this.loaders.tsLoader).options({transpileOnly:!0,experimentalWatchApi:!0,onlyCompileBundledFiles:!0,compilerOptions:{...bj.compilerOptions,sourceMap:!0},context:this.cwd,configFile:r})}};var lBt=class e extends VWc{constructor(r,n,a,o){super();this.svgr=r;this.webpack=n;this.loaders=a;this.cwd=o}static async initialize(r){let{transform:n,jsx:a}=await import("@atls/code-runtime/svgr"),{webpack:o,tsLoaderPath:l}=await import("@atls/code-runtime/webpack");return new e({transform:n,jsx:a},o,{tsLoader:l},r)}async generate(r={}){await this.save(await this.transform(await this.read($ee(this.cwd,"icons")),r))}async compileReplacementsAndTemplate(){let r=await WWc($ee(YWc(),"tools-icons-")),n=this.webpack(await new cBt(this.loaders,this.cwd,r).build());return await new Promise((a,o)=>{n.run(l=>{l&&o(l),a([])})}),{replacements:(await import($ee(r,"replacements.mjs"))).default,template:(await import($ee(r,"template.mjs"))).default}}async read(r){this.emit("read:start");let n=await MWc(r),a=await Promise.all(n.filter(o=>o.endsWith(".svg")).map(async o=>({source:await OWc($ee(r,o),"utf8"),component:OVr($8i(o,eji(o)),{pascalCase:!0}),name:$8i(o,eji(o)),path:$ee(r,o),file:o})));return this.emit("read:end"),a}async transform(r,n){this.emit("transform:start");let{replacements:a,template:o}=await this.compileReplacementsAndTemplate(),l=await Promise.all(r.map(async A=>{let f=await this.svgr.transform(A.source,{...n,icon:!0,template:o,typescript:!0,expandProps:!0,replaceAttrValues:a[`${A.component}Icon`]??{}},{componentName:`${A.component}Icon`,caller:{name:"@atls/code-icons",defaultPlugins:[this.svgr.jsx]}});return{...A,output:f}}));return this.emit("transform:end"),l}async save(r){this.emit("save:start");let n=$ee(this.cwd,"src");try{await PWc(n)}catch{await HWc(n,{recursive:!0})}await Promise.all(r.map(async a=>q8i($ee(n,`${a.name}.icon.tsx`),a.output))),await q8i($ee(n,"index.ts"),r.map(a=>`export * from './${a.name}.icon.jsx'`).join(` +`)),this.emit("save:end")}};var tPr=Nt(Pc(),1),t8e=class extends rji.BaseCommand{static paths=[["ui","icons","generate"]];native=Su.Boolean("-n, --native",!1);async execute(){let t=process.env.NODE_OPTIONS??"";return t.includes(ePr.Filename.pnpCjs)&&t.includes(ePr.Filename.pnpEsmLoader)?this.executeRegular():process.env.COMMAND_PROXY_EXECUTION==="true"?this.executeRegular():this.executeProxy()}async executeProxy(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await iji.xfs.mktempPromise(),a=[];this.native&&a.push("--native");let{executable:o,env:l}=await iC({binFolder:n,project:r,env:{COMMAND_PROXY_EXECUTION:"true"}}),{code:A}=await nji.execUtils.pipevp(o,["ui","icons","generate",...a],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:l});return A}async executeRegular(){let t=await qVr.Configuration.find(this.context.cwd,this.context.plugins),{project:r}=await $Vr.Project.find(t,this.context.cwd),n=await lBt.initialize(this.context.cwd),{clear:a}=(0,sji.render)((0,tPr.jsx)(r8i,{icons:n}));try{await n.generate({native:this.native});let o=(await b$("*.tsx",{cwd:tji(this.context.cwd,"src")})).map(l=>tji(QWc(r.cwd,this.context.cwd),"src",l));return await this.cli.run(["format",...o],{cwd:r.cwd}),await this.cli.run(["lint","--fix",...o],{cwd:r.cwd}),0}catch(o){return o instanceof Error?xE((0,tPr.jsx)(Fk,{error:o})).split(` `).forEach(l=>{console.error(l)}):console.error(o),1}finally{a()}}};var oji={commands:[t8e]};var fYr={};sI(fYr,{default:()=>his});var pis=Nt(el(),1),fis=Nt(Bn(),1),Iis=Nt(Bn(),1);$c();var aji=(e,t)=>({stdout:e.context.stdout,configuration:t});var gis=Nt(no(),1),Ais=Nt(no(),1);var sis=Nt(Dxe(),1),ois=Nt(nis(),1);var iis=e=>{let t=e.path;switch(e.kind){case"error":console.error(`ERROR! ${t} ${e.description==="alreadyExist"?"already exists":"does not exist"}.`);break;case"update":console.debug(`UPDATE ${t} (${e.content.length} bytes)`);break;case"create":console.debug(`CREATE ${t} (${e.content.length} bytes)`);break;case"delete":console.debug(`DELETE ${t}`);break;case"rename":console.debug(`RENAME ${t} => ${e.to}`);break}};var ais=async(e,t,r)=>{let o=!0,l=new ois.NodeWorkflow(process.cwd(),{force:!1,dryRun:!1,resolvePaths:[process.cwd(),import.meta.dirname],packageManager:"yarn"});l.reporter.subscribe(A=>{o=!1,iis(A)});try{return await l.execute({collection:r,schematic:e,options:t,allowPrivate:!0,debug:!0}).toPromise(),o&&console.info("Nothing to be done."),0}catch(A){return A instanceof sis.UnsuccessfulWorkflowExecution?console.debug("The Schematic workflow failed. See above."):A instanceof Error?console.debug(`An error occured: -${A.stack}`):console.debug(`Error: ${A instanceof Error?A.message:A}`),1}};var pYr=Nt(no(),1);import{mkdir as pAl}from"node:fs/promises";var dAl="dmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTsKdmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKdmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwp2YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczsKdmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKdmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHsKICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0czsKfTsKdmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7CiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpCiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwp9Owp2YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4gewogIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSAib2JqZWN0IiB8fCB0eXBlb2YgZnJvbSA9PT0gImZ1bmN0aW9uIikgewogICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKQogICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KQogICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTsKICB9CiAgcmV0dXJuIHRvOwp9Owp2YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKAogIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU00KICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLQogIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuICJfX2VzTW9kdWxlIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXQKICAvLyAiZGVmYXVsdCIgdG8gdGhlIENvbW1vbkpTICJtb2R1bGUuZXhwb3J0cyIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS4KICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgImRlZmF1bHQiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsCiAgbW9kCikpOwp2YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNKc29uT2JqZWN0ID0gaXNKc29uT2JqZWN0OwogICAgZXhwb3J0czIuaXNKc29uQXJyYXkgPSBpc0pzb25BcnJheTsKICAgIGZ1bmN0aW9uIGlzSnNvbk9iamVjdCh2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSnNvbkFycmF5KHZhbHVlKSB7CiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3V0aWxpdHkuanMKdmFyIHJlcXVpcmVfdXRpbGl0eSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdXRpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0VHlwZXNPZlNjaGVtYSA9IGdldFR5cGVzT2ZTY2hlbWE7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciBhbGxUeXBlcyA9IFsic3RyaW5nIiwgImludGVnZXIiLCAibnVtYmVyIiwgIm9iamVjdCIsICJhcnJheSIsICJib29sZWFuIiwgIm51bGwiXTsKICAgIGZ1bmN0aW9uIGdldFR5cGVzT2ZTY2hlbWEoc2NoZW1hMikgewogICAgICBpZiAoIXNjaGVtYTIpIHsKICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBuZXcgU2V0KGFsbFR5cGVzKTsKICAgICAgfQogICAgICBsZXQgcG90ZW50aWFsczsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnR5cGUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtzY2hlbWEyLnR5cGVdKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIudHlwZSkpIHsKICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChzY2hlbWEyLnR5cGUpOwogICAgICB9IGVsc2UgaWYgKCgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShzY2hlbWEyLmVudW0pKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCB2IG9mIHNjaGVtYTIuZW51bSkgewogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdikgewogICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBwb3RlbnRpYWxzLmFkZCh0eXBlb2Ygdik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsKICAgICAgICAgICAgICAgIHBvdGVudGlhbHMuYWRkKCJhcnJheSIpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodiA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm51bGwiKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm9iamVjdCIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoYWxsVHlwZXMpOwogICAgICB9CiAgICAgIGlmICgoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIubm90KSkgewogICAgICAgIGNvbnN0IG5vdFR5cGVzID0gZ2V0VHlwZXNPZlNjaGVtYShzY2hlbWEyLm5vdCk7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoWy4uLnBvdGVudGlhbHNdLmZpbHRlcigocCkgPT4gIW5vdFR5cGVzLmhhcyhwKSkpOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIuYWxsT2YpKSB7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbGxPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChbLi4udHlwZXNdLmZpbHRlcigodCkgPT4gcG90ZW50aWFscy5oYXModCkpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5vbmVPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5vbmVPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5hbnlPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbnlPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIucHJvcGVydGllcykgewogICAgICAgIHBvdGVudGlhbHMuYWRkKCJvYmplY3QiKTsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zKSB7CiAgICAgICAgcG90ZW50aWFscy5hZGQoImFycmF5Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvdGVudGlhbHM7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzCnZhciByZXF1aXJlX3RyYW5zZm9ybXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3RyYW5zZm9ybXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFkZFVuZGVmaW5lZERlZmF1bHRzID0gYWRkVW5kZWZpbmVkRGVmYXVsdHM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciB1dGlsaXR5XzEgPSByZXF1aXJlX3V0aWxpdHkoKTsKICAgIGZ1bmN0aW9uIGFkZFVuZGVmaW5lZERlZmF1bHRzKHZhbHVlLCBfcG9pbnRlciwgc2NoZW1hMikgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIiB8fCBzY2hlbWEyID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgdmFsdWUgPz89IHNjaGVtYTIuZGVmYXVsdDsKICAgICAgY29uc3QgdHlwZXMgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHNjaGVtYTIpOwogICAgICBpZiAodHlwZXMuc2l6ZSA9PT0gMCkgewogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBsZXQgdHlwZTI7CiAgICAgIGlmICh0eXBlcy5zaXplID09PSAxKSB7CiAgICAgICAgdHlwZTIgPSBBcnJheS5mcm9tKHR5cGVzKVswXTsKICAgICAgfSBlbHNlIGlmICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygiYXJyYXkiKSAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAiYXJyYXkiOwogICAgICB9IGVsc2UgaWYgKHNjaGVtYTIucHJvcGVydGllcyAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAib2JqZWN0IjsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zICYmIHR5cGVzLmhhcygiYXJyYXkiKSkgewogICAgICAgIHR5cGUyID0gImFycmF5IjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlID09IHZvaWQgMCA/IFtdIDogdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAib2JqZWN0IikgewogICAgICAgIGxldCBuZXdWYWx1ZTsKICAgICAgICBpZiAodmFsdWUgPT0gdm9pZCAwKSB7CiAgICAgICAgICBuZXdWYWx1ZSA9IHt9OwogICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIucHJvcGVydGllcykpIHsKICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIHNjaGVtYU9iamVjdF0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hMi5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgaWYgKHByb3BOYW1lID09PSAiJHNjaGVtYSIgfHwgISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkoc2NoZW1hT2JqZWN0KSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IG5ld1ZhbHVlW3Byb3BOYW1lXTsKICAgICAgICAgIGlmICh2YWx1ZTIgPT09IHZvaWQgMCkgewogICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBzY2hlbWFPYmplY3QuZGVmYXVsdDsKICAgICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5U2NoZW1hcyA9IHNjaGVtYU9iamVjdC5vbmVPZiB8fCBzY2hlbWFPYmplY3QuYW55T2Y7CiAgICAgICAgICAgIGNvbnN0IGFsbFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh2YWx1ZTIpOwogICAgICAgICAgICBjb25zdCBhZGp1c3RlZFNjaGVtYSA9ICgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShwcm9wZXJ0eVNjaGVtYXMpICYmIHByb3BlcnR5U2NoZW1hcy5maW5kKChzKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNvbnN0IHNjaGVtYVR5cGUgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHMpOwogICAgICAgICAgICAgIGlmIChzY2hlbWFUeXBlLnNpemUgPT09IDEgJiYgc2NoZW1hVHlwZS5oYXMoIm9iamVjdCIpICYmICgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkocy5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHMucHJvcGVydGllcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gYWxsUHJvcGVydGllcy5ldmVyeSgoa2V5KSA9PiBwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoYWRqdXN0ZWRTY2hlbWEgJiYgKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KShhZGp1c3RlZFNjaGVtYSkpIHsKICAgICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBhZGRVbmRlZmluZWREZWZhdWx0cyh2YWx1ZTIsIF9wb2ludGVyLCBhZGp1c3RlZFNjaGVtYSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOwogICAgICB9CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvcG9pbnRlci5qcwp2YXIgcmVxdWlyZV9wb2ludGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9wb2ludGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWlsZEpzb25Qb2ludGVyID0gYnVpbGRKc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLmpvaW5Kc29uUG9pbnRlciA9IGpvaW5Kc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLnBhcnNlSnNvblBvaW50ZXIgPSBwYXJzZUpzb25Qb2ludGVyOwogICAgZnVuY3Rpb24gYnVpbGRKc29uUG9pbnRlcihmcmFnbWVudHMpIHsKICAgICAgcmV0dXJuICIvIiArIGZyYWdtZW50cy5tYXAoKGYpID0+IHsKICAgICAgICByZXR1cm4gZi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgICB9KS5qb2luKCIvIik7CiAgICB9CiAgICBmdW5jdGlvbiBqb2luSnNvblBvaW50ZXIocm9vdCwgLi4ub3RoZXJzKSB7CiAgICAgIGlmIChyb290ID09ICIvIikgewogICAgICAgIHJldHVybiBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJvb3QgKyBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICB9CiAgICBmdW5jdGlvbiBwYXJzZUpzb25Qb2ludGVyKHBvaW50ZXIpIHsKICAgICAgaWYgKHBvaW50ZXIgPT09ICIiKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICAgIGlmIChwb2ludGVyLmNoYXJBdCgwKSAhPT0gIi8iKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwb2ludGVyOiAiICsgcG9pbnRlcik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvaW50ZXIuc3Vic3RyaW5nKDEpLnNwbGl0KC9cLy8pLm1hcCgoc3RyMikgPT4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+IikpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMKdmFyIHJlcXVpcmVfY29kZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBleHBvcnRzMi5zYWZlU3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuYWRkQ29kZUFyZyA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5uaWwgPSBleHBvcnRzMi5fQ29kZSA9IGV4cG9ydHMyLk5hbWUgPSBleHBvcnRzMi5JREVOVElGSUVSID0gZXhwb3J0czIuX0NvZGVPck5hbWUgPSB2b2lkIDA7CiAgICB2YXIgX0NvZGVPck5hbWUgPSBjbGFzcyB7CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGVPck5hbWUgPSBfQ29kZU9yTmFtZTsKICAgIGV4cG9ydHMyLklERU5USUZJRVIgPSAvXlthLXokX11bYS16JF8wLTldKiQvaTsKICAgIHZhciBOYW1lID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIGlmICghZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KHMpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiBuYW1lIG11c3QgYmUgYSB2YWxpZCBpZGVudGlmaWVyIik7CiAgICAgICAgdGhpcy5zdHIgPSBzOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0cjsKICAgICAgfQogICAgICBlbXB0eVN0cigpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB7IFt0aGlzLnN0cl06IDEgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5hbWUgPSBOYW1lOwogICAgdmFyIF9Db2RlID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvZGUpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuX2l0ZW1zID0gdHlwZW9mIGNvZGUgPT09ICJzdHJpbmciID8gW2NvZGVdIDogY29kZTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHI7CiAgICAgIH0KICAgICAgZW1wdHlTdHIoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA+IDEpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zWzBdOwogICAgICAgIHJldHVybiBpdGVtID09PSAiIiB8fCBpdGVtID09PSAnIiInOwogICAgICB9CiAgICAgIGdldCBzdHIoKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9zdHIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuX3N0ciA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgocywgYykgPT4gYCR7c30ke2N9YCwgIiIpOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuX25hbWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLl9uYW1lcyA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgobmFtZXMsIGMpID0+IHsKICAgICAgICAgIGlmIChjIGluc3RhbmNlb2YgTmFtZSkKICAgICAgICAgICAgbmFtZXNbYy5zdHJdID0gKG5hbWVzW2Muc3RyXSB8fCAwKSArIDE7CiAgICAgICAgICByZXR1cm4gbmFtZXM7CiAgICAgICAgfSwge30pOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGUgPSBfQ29kZTsKICAgIGV4cG9ydHMyLm5pbCA9IG5ldyBfQ29kZSgiIik7CiAgICBmdW5jdGlvbiBfKHN0cnMsIC4uLmFyZ3MpIHsKICAgICAgY29uc3QgY29kZSA9IFtzdHJzWzBdXTsKICAgICAgbGV0IGkgPSAwOwogICAgICB3aGlsZSAoaSA8IGFyZ3MubGVuZ3RoKSB7CiAgICAgICAgYWRkQ29kZUFyZyhjb2RlLCBhcmdzW2ldKTsKICAgICAgICBjb2RlLnB1c2goc3Ryc1srK2ldKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IF9Db2RlKGNvZGUpOwogICAgfQogICAgZXhwb3J0czIuXyA9IF87CiAgICB2YXIgcGx1cyA9IG5ldyBfQ29kZSgiKyIpOwogICAgZnVuY3Rpb24gc3RyMihzdHJzLCAuLi5hcmdzKSB7CiAgICAgIGNvbnN0IGV4cHIgPSBbc2FmZVN0cmluZ2lmeShzdHJzWzBdKV07CiAgICAgIGxldCBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBhcmdzLmxlbmd0aCkgewogICAgICAgIGV4cHIucHVzaChwbHVzKTsKICAgICAgICBhZGRDb2RlQXJnKGV4cHIsIGFyZ3NbaV0pOwogICAgICAgIGV4cHIucHVzaChwbHVzLCBzYWZlU3RyaW5naWZ5KHN0cnNbKytpXSkpOwogICAgICB9CiAgICAgIG9wdGltaXplKGV4cHIpOwogICAgICByZXR1cm4gbmV3IF9Db2RlKGV4cHIpOwogICAgfQogICAgZXhwb3J0czIuc3RyID0gc3RyMjsKICAgIGZ1bmN0aW9uIGFkZENvZGVBcmcoY29kZSwgYXJnKSB7CiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBfQ29kZSkKICAgICAgICBjb2RlLnB1c2goLi4uYXJnLl9pdGVtcyk7CiAgICAgIGVsc2UgaWYgKGFyZyBpbnN0YW5jZW9mIE5hbWUpCiAgICAgICAgY29kZS5wdXNoKGFyZyk7CiAgICAgIGVsc2UKICAgICAgICBjb2RlLnB1c2goaW50ZXJwb2xhdGUoYXJnKSk7CiAgICB9CiAgICBleHBvcnRzMi5hZGRDb2RlQXJnID0gYWRkQ29kZUFyZzsKICAgIGZ1bmN0aW9uIG9wdGltaXplKGV4cHIpIHsKICAgICAgbGV0IGkgPSAxOwogICAgICB3aGlsZSAoaSA8IGV4cHIubGVuZ3RoIC0gMSkgewogICAgICAgIGlmIChleHByW2ldID09PSBwbHVzKSB7CiAgICAgICAgICBjb25zdCByZXMgPSBtZXJnZUV4cHJJdGVtcyhleHByW2kgLSAxXSwgZXhwcltpICsgMV0pOwogICAgICAgICAgaWYgKHJlcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIGV4cHIuc3BsaWNlKGkgLSAxLCAzLCByZXMpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGV4cHJbaSsrXSA9ICIrIjsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZUV4cHJJdGVtcyhhLCBiKSB7CiAgICAgIGlmIChiID09PSAnIiInKQogICAgICAgIHJldHVybiBhOwogICAgICBpZiAoYSA9PT0gJyIiJykKICAgICAgICByZXR1cm4gYjsKICAgICAgaWYgKHR5cGVvZiBhID09ICJzdHJpbmciKSB7CiAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBOYW1lIHx8IGFbYS5sZW5ndGggLSAxXSAhPT0gJyInKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICh0eXBlb2YgYiAhPSAic3RyaW5nIikKICAgICAgICAgIHJldHVybiBgJHthLnNsaWNlKDAsIC0xKX0ke2J9ImA7CiAgICAgICAgaWYgKGJbMF0gPT09ICciJykKICAgICAgICAgIHJldHVybiBhLnNsaWNlKDAsIC0xKSArIGIuc2xpY2UoMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgYiA9PSAic3RyaW5nIiAmJiBiWzBdID09PSAnIicgJiYgIShhIGluc3RhbmNlb2YgTmFtZSkpCiAgICAgICAgcmV0dXJuIGAiJHthfSR7Yi5zbGljZSgxKX1gOwogICAgICByZXR1cm47CiAgICB9CiAgICBmdW5jdGlvbiBzdHJDb25jYXQoYzEsIGMyKSB7CiAgICAgIHJldHVybiBjMi5lbXB0eVN0cigpID8gYzEgOiBjMS5lbXB0eVN0cigpID8gYzIgOiBzdHIyYCR7YzF9JHtjMn1gOwogICAgfQogICAgZXhwb3J0czIuc3RyQ29uY2F0ID0gc3RyQ29uY2F0OwogICAgZnVuY3Rpb24gaW50ZXJwb2xhdGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gIm51bWJlciIgfHwgdHlwZW9mIHggPT0gImJvb2xlYW4iIHx8IHggPT09IG51bGwgPyB4IDogc2FmZVN0cmluZ2lmeShBcnJheS5pc0FycmF5KHgpID8geC5qb2luKCIsIikgOiB4KTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmluZ2lmeSh4KSB7CiAgICAgIHJldHVybiBuZXcgX0NvZGUoc2FmZVN0cmluZ2lmeSh4KSk7CiAgICB9CiAgICBleHBvcnRzMi5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBzYWZlU3RyaW5naWZ5KHgpIHsKICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogICAgfQogICAgZXhwb3J0czIuc2FmZVN0cmluZ2lmeSA9IHNhZmVTdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBnZXRQcm9wZXJ0eShrZXkpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBrZXkgPT0gInN0cmluZyIgJiYgZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KGtleSkgPyBuZXcgX0NvZGUoYC4ke2tleX1gKSA6IF9gWyR7a2V5fV1gOwogICAgfQogICAgZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBnZXRQcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGdldEVzbUV4cG9ydE5hbWUoa2V5KSB7CiAgICAgIGlmICh0eXBlb2Yga2V5ID09ICJzdHJpbmciICYmIGV4cG9ydHMyLklERU5USUZJRVIudGVzdChrZXkpKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfQ29kZShgJHtrZXl9YCk7CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBpbnZhbGlkIGV4cG9ydCBuYW1lOiAke2tleX0sIHVzZSBleHBsaWNpdCAkaWQgbmFtZSBtYXBwaW5nYCk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZ2V0RXNtRXhwb3J0TmFtZTsKICAgIGZ1bmN0aW9uIHJlZ2V4cENvZGUocngpIHsKICAgICAgcmV0dXJuIG5ldyBfQ29kZShyeC50b1N0cmluZygpKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSByZWdleHBDb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL3Njb3BlLmpzCnZhciByZXF1aXJlX3Njb3BlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vc2NvcGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlZhbHVlU2NvcGUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IGV4cG9ydHMyLlNjb3BlID0gZXhwb3J0czIudmFyS2luZHMgPSBleHBvcnRzMi5Vc2VkVmFsdWVTdGF0ZSA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBWYWx1ZUVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUpIHsKICAgICAgICBzdXBlcihgQ29kZUdlbjogImNvZGUiIGZvciAke25hbWV9IG5vdCBkZWZpbmVkYCk7CiAgICAgICAgdGhpcy52YWx1ZSA9IG5hbWUudmFsdWU7CiAgICAgIH0KICAgIH07CiAgICB2YXIgVXNlZFZhbHVlU3RhdGU7CiAgICAoZnVuY3Rpb24oVXNlZFZhbHVlU3RhdGUyKSB7CiAgICAgIFVzZWRWYWx1ZVN0YXRlMltVc2VkVmFsdWVTdGF0ZTJbIlN0YXJ0ZWQiXSA9IDBdID0gIlN0YXJ0ZWQiOwogICAgICBVc2VkVmFsdWVTdGF0ZTJbVXNlZFZhbHVlU3RhdGUyWyJDb21wbGV0ZWQiXSA9IDFdID0gIkNvbXBsZXRlZCI7CiAgICB9KShVc2VkVmFsdWVTdGF0ZSB8fCAoZXhwb3J0czIuVXNlZFZhbHVlU3RhdGUgPSBVc2VkVmFsdWVTdGF0ZSA9IHt9KSk7CiAgICBleHBvcnRzMi52YXJLaW5kcyA9IHsKICAgICAgY29uc3Q6IG5ldyBjb2RlXzEuTmFtZSgiY29uc3QiKSwKICAgICAgbGV0OiBuZXcgY29kZV8xLk5hbWUoImxldCIpLAogICAgICB2YXI6IG5ldyBjb2RlXzEuTmFtZSgidmFyIikKICAgIH07CiAgICB2YXIgU2NvcGUgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKHsgcHJlZml4ZXMsIHBhcmVudCB9ID0ge30pIHsKICAgICAgICB0aGlzLl9uYW1lcyA9IHt9OwogICAgICAgIHRoaXMuX3ByZWZpeGVzID0gcHJlZml4ZXM7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50OwogICAgICB9CiAgICAgIHRvTmFtZShuYW1lT3JQcmVmaXgpIHsKICAgICAgICByZXR1cm4gbmFtZU9yUHJlZml4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBuYW1lT3JQcmVmaXggOiB0aGlzLm5hbWUobmFtZU9yUHJlZml4KTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgY29kZV8xLk5hbWUodGhpcy5fbmV3TmFtZShwcmVmaXgpKTsKICAgICAgfQogICAgICBfbmV3TmFtZShwcmVmaXgpIHsKICAgICAgICBjb25zdCBuZyA9IHRoaXMuX25hbWVzW3ByZWZpeF0gfHwgdGhpcy5fbmFtZUdyb3VwKHByZWZpeCk7CiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke25nLmluZGV4Kyt9YDsKICAgICAgfQogICAgICBfbmFtZUdyb3VwKHByZWZpeCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCgoX2IgPSAoX2EgPSB0aGlzLl9wYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5fcHJlZml4ZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oYXMocHJlZml4KSkgfHwgdGhpcy5fcHJlZml4ZXMgJiYgIXRoaXMuX3ByZWZpeGVzLmhhcyhwcmVmaXgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IHByZWZpeCAiJHtwcmVmaXh9IiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlYCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9uYW1lc1twcmVmaXhdID0geyBwcmVmaXgsIGluZGV4OiAwIH07CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZSA9IFNjb3BlOwogICAgdmFyIFZhbHVlU2NvcGVOYW1lID0gY2xhc3MgZXh0ZW5kcyBjb2RlXzEuTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHByZWZpeCwgbmFtZVN0cikgewogICAgICAgIHN1cGVyKG5hbWVTdHIpOwogICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OwogICAgICB9CiAgICAgIHNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5LCBpdGVtSW5kZXggfSkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLnNjb3BlUGF0aCA9ICgwLCBjb2RlXzEuXylgLiR7bmV3IGNvZGVfMS5OYW1lKHByb3BlcnR5KX1bJHtpdGVtSW5kZXh9XWA7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IFZhbHVlU2NvcGVOYW1lOwogICAgdmFyIGxpbmUgPSAoMCwgY29kZV8xLl8pYFxuYDsKICAgIHZhciBWYWx1ZVNjb3BlID0gY2xhc3MgZXh0ZW5kcyBTY29wZSB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMpIHsKICAgICAgICBzdXBlcihvcHRzKTsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9zY29wZSA9IG9wdHMuc2NvcGU7CiAgICAgICAgdGhpcy5vcHRzID0geyAuLi5vcHRzLCBfbjogb3B0cy5saW5lcyA/IGxpbmUgOiBjb2RlXzEubmlsIH07CiAgICAgIH0KICAgICAgZ2V0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9zY29wZTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgVmFsdWVTY29wZU5hbWUocHJlZml4LCB0aGlzLl9uZXdOYW1lKHByZWZpeCkpOwogICAgICB9CiAgICAgIHZhbHVlKG5hbWVPclByZWZpeCwgdmFsdWUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHZhbHVlLnJlZiA9PT0gdm9pZCAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiByZWYgbXVzdCBiZSBwYXNzZWQgaW4gdmFsdWUiKTsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy50b05hbWUobmFtZU9yUHJlZml4KTsKICAgICAgICBjb25zdCB7IHByZWZpeCB9ID0gbmFtZTsKICAgICAgICBjb25zdCB2YWx1ZUtleSA9IChfYSA9IHZhbHVlLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsdWUucmVmOwogICAgICAgIGxldCB2cyA9IHRoaXMuX3ZhbHVlc1twcmVmaXhdOwogICAgICAgIGlmICh2cykgewogICAgICAgICAgY29uc3QgX25hbWUgPSB2cy5nZXQodmFsdWVLZXkpOwogICAgICAgICAgaWYgKF9uYW1lKQogICAgICAgICAgICByZXR1cm4gX25hbWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZzID0gdGhpcy5fdmFsdWVzW3ByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIH0KICAgICAgICB2cy5zZXQodmFsdWVLZXksIG5hbWUpOwogICAgICAgIGNvbnN0IHMgPSB0aGlzLl9zY29wZVtwcmVmaXhdIHx8ICh0aGlzLl9zY29wZVtwcmVmaXhdID0gW10pOwogICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHMubGVuZ3RoOwogICAgICAgIHNbaXRlbUluZGV4XSA9IHZhbHVlLnJlZjsKICAgICAgICBuYW1lLnNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5OiBwcmVmaXgsIGl0ZW1JbmRleCB9KTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICBnZXRWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgY29uc3QgdnMgPSB0aGlzLl92YWx1ZXNbcHJlZml4XTsKICAgICAgICBpZiAoIXZzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHJldHVybiB2cy5nZXQoa2V5T3JSZWYpOwogICAgICB9CiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUsIHZhbHVlcyA9IHRoaXMuX3ZhbHVlcykgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUuc2NvcGVQYXRoID09PSB2b2lkIDApCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29kZUdlbjogbmFtZSAiJHtuYW1lfSIgaGFzIG5vIHZhbHVlYCk7CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVfMS5fKWAke3Njb3BlTmFtZX0ke25hbWUuc2NvcGVQYXRofWA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc2NvcGVDb2RlKHZhbHVlcyA9IHRoaXMuX3ZhbHVlcywgdXNlZFZhbHVlcywgZ2V0Q29kZSkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUudmFsdWUgPT09IHZvaWQgMCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke25hbWV9IiBoYXMgbm8gdmFsdWVgKTsKICAgICAgICAgIHJldHVybiBuYW1lLnZhbHVlLmNvZGU7CiAgICAgICAgfSwgdXNlZFZhbHVlcywgZ2V0Q29kZSk7CiAgICAgIH0KICAgICAgX3JlZHVjZVZhbHVlcyh2YWx1ZXMsIHZhbHVlQ29kZSwgdXNlZFZhbHVlcyA9IHt9LCBnZXRDb2RlKSB7CiAgICAgICAgbGV0IGNvZGUgPSBjb2RlXzEubmlsOwogICAgICAgIGZvciAoY29uc3QgcHJlZml4IGluIHZhbHVlcykgewogICAgICAgICAgY29uc3QgdnMgPSB2YWx1ZXNbcHJlZml4XTsKICAgICAgICAgIGlmICghdnMpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgY29uc3QgbmFtZVNldCA9IHVzZWRWYWx1ZXNbcHJlZml4XSA9IHVzZWRWYWx1ZXNbcHJlZml4XSB8fCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgICAgdnMuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAobmFtZVNldC5oYXMobmFtZSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBuYW1lU2V0LnNldChuYW1lLCBVc2VkVmFsdWVTdGF0ZS5TdGFydGVkKTsKICAgICAgICAgICAgbGV0IGMgPSB2YWx1ZUNvZGUobmFtZSk7CiAgICAgICAgICAgIGlmIChjKSB7CiAgICAgICAgICAgICAgY29uc3QgZGVmID0gdGhpcy5vcHRzLmVzNSA/IGV4cG9ydHMyLnZhcktpbmRzLnZhciA6IGV4cG9ydHMyLnZhcktpbmRzLmNvbnN0OwogICAgICAgICAgICAgIGNvZGUgPSAoMCwgY29kZV8xLl8pYCR7Y29kZX0ke2RlZn0gJHtuYW1lfSA9ICR7Y307JHt0aGlzLm9wdHMuX259YDsKICAgICAgICAgICAgfSBlbHNlIGlmIChjID0gZ2V0Q29kZSA9PT0gbnVsbCB8fCBnZXRDb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnZXRDb2RlKG5hbWUpKSB7CiAgICAgICAgICAgICAgY29kZSA9ICgwLCBjb2RlXzEuXylgJHtjb2RlfSR7Y30ke3RoaXMub3B0cy5fbn1gOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93IG5ldyBWYWx1ZUVycm9yKG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hbWVTZXQuc2V0KG5hbWUsIFVzZWRWYWx1ZVN0YXRlLkNvbXBsZXRlZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvZGU7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlID0gVmFsdWVTY29wZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvY29kZWdlbi9pbmRleC5qcwp2YXIgcmVxdWlyZV9jb2RlZ2VuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9yID0gZXhwb3J0czIuYW5kID0gZXhwb3J0czIubm90ID0gZXhwb3J0czIuQ29kZUdlbiA9IGV4cG9ydHMyLm9wZXJhdG9ycyA9IGV4cG9ydHMyLnZhcktpbmRzID0gZXhwb3J0czIuVmFsdWVTY29wZU5hbWUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlID0gZXhwb3J0czIuU2NvcGUgPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIucmVnZXhwQ29kZSA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLmdldFByb3BlcnR5ID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBzY29wZV8xID0gcmVxdWlyZV9zY29wZSgpOwogICAgdmFyIGNvZGVfMiA9IHJlcXVpcmVfY29kZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyQ29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLnN0ckNvbmNhdDsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdldFByb3BlcnR5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLmdldFByb3BlcnR5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ2lmeSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHJpbmdpZnk7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVnZXhwQ29kZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5yZWdleHBDb2RlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIuTmFtZTsKICAgIH0gfSk7CiAgICB2YXIgc2NvcGVfMiA9IHJlcXVpcmVfc2NvcGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5TY29wZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWx1ZVNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZhbHVlU2NvcGVOYW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ2YXJLaW5kcyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjb3BlXzIudmFyS2luZHM7CiAgICB9IH0pOwogICAgZXhwb3J0czIub3BlcmF0b3JzID0gewogICAgICBHVDogbmV3IGNvZGVfMS5fQ29kZSgiPiIpLAogICAgICBHVEU6IG5ldyBjb2RlXzEuX0NvZGUoIj49IiksCiAgICAgIExUOiBuZXcgY29kZV8xLl9Db2RlKCI8IiksCiAgICAgIExURTogbmV3IGNvZGVfMS5fQ29kZSgiPD0iKSwKICAgICAgRVE6IG5ldyBjb2RlXzEuX0NvZGUoIj09PSIpLAogICAgICBORVE6IG5ldyBjb2RlXzEuX0NvZGUoIiE9PSIpLAogICAgICBOT1Q6IG5ldyBjb2RlXzEuX0NvZGUoIiEiKSwKICAgICAgT1I6IG5ldyBjb2RlXzEuX0NvZGUoInx8IiksCiAgICAgIEFORDogbmV3IGNvZGVfMS5fQ29kZSgiJiYiKSwKICAgICAgQUREOiBuZXcgY29kZV8xLl9Db2RlKCIrIikKICAgIH07CiAgICB2YXIgTm9kZSA9IGNsYXNzIHsKICAgICAgb3B0aW1pemVOb2RlcygpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKF9uYW1lcywgX2NvbnN0YW50cykgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgdmFyIERlZiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKHZhcktpbmQsIG5hbWUsIHJocykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucmhzID0gcmhzOwogICAgICB9CiAgICAgIHJlbmRlcih7IGVzNSwgX24gfSkgewogICAgICAgIGNvbnN0IHZhcktpbmQgPSBlczUgPyBzY29wZV8xLnZhcktpbmRzLnZhciA6IHRoaXMudmFyS2luZDsKICAgICAgICBjb25zdCByaHMgPSB0aGlzLnJocyA9PT0gdm9pZCAwID8gIiIgOiBgID0gJHt0aGlzLnJoc31gOwogICAgICAgIHJldHVybiBgJHt2YXJLaW5kfSAke3RoaXMubmFtZX0ke3Joc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghbmFtZXNbdGhpcy5uYW1lLnN0cl0pCiAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKHRoaXMucmhzKQogICAgICAgICAgdGhpcy5yaHMgPSBvcHRpbWl6ZUV4cHIodGhpcy5yaHMsIG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5yaHMgaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyB0aGlzLnJocy5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5saHMgPSBsaHM7CiAgICAgICAgdGhpcy5yaHMgPSByaHM7CiAgICAgICAgdGhpcy5zaWRlRWZmZWN0cyA9IHNpZGVFZmZlY3RzOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYCR7dGhpcy5saHN9ID0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICh0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lICYmICFuYW1lc1t0aGlzLmxocy5zdHJdICYmICF0aGlzLnNpZGVFZmZlY3RzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMucmhzID0gb3B0aW1pemVFeHByKHRoaXMucmhzLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSB0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lID8ge30gOiB7IC4uLnRoaXMubGhzLm5hbWVzIH07CiAgICAgICAgcmV0dXJuIGFkZEV4cHJOYW1lcyhuYW1lcywgdGhpcy5yaHMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbk9wID0gY2xhc3MgZXh0ZW5kcyBBc3NpZ24gewogICAgICBjb25zdHJ1Y3RvcihsaHMsIG9wLCByaHMsIHNpZGVFZmZlY3RzKSB7CiAgICAgICAgc3VwZXIobGhzLCByaHMsIHNpZGVFZmZlY3RzKTsKICAgICAgICB0aGlzLm9wID0gb3A7CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxoc30gJHt0aGlzLm9wfT0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICB9OwogICAgdmFyIExhYmVsID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IobGFiZWwpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDsKICAgICAgICB0aGlzLm5hbWVzID0ge307CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfTpgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgQnJlYWsgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihsYWJlbCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICAgIHRoaXMubmFtZXMgPSB7fTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsID8gYCAke3RoaXMubGFiZWx9YCA6ICIiOwogICAgICAgIHJldHVybiBgYnJlYWske2xhYmVsfTtgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgVGhyb3cgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYHRocm93ICR7dGhpcy5lcnJvcn07YCArIF9uOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5lcnJvci5uYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBBbnlDb2RlID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IoY29kZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5jb2RlID0gY29kZTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX07YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX1gID8gdGhpcyA6IHZvaWQgMDsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpIHsKICAgICAgICB0aGlzLmNvZGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5jb2RlLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29kZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZU9yTmFtZSA/IHRoaXMuY29kZS5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIFBhcmVudE5vZGUgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3Rvcihub2RlcyA9IFtdKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5vZGVzID0gbm9kZXM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5ub2Rlcy5yZWR1Y2UoKGNvZGUsIG4pID0+IGNvZGUgKyBuLnJlbmRlcihvcHRzKSwgIiIpOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV0ub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobikpCiAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxLCAuLi5uKTsKICAgICAgICAgIGVsc2UgaWYgKG4pCiAgICAgICAgICAgIG5vZGVzW2ldID0gbjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV07CiAgICAgICAgICBpZiAobi5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHN1YnRyYWN0TmFtZXMobmFtZXMsIG4ubmFtZXMpOwogICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLm5vZGVzLnJlZHVjZSgobmFtZXMsIG4pID0+IGFkZE5hbWVzKG5hbWVzLCBuLm5hbWVzKSwge30pOwogICAgICB9CiAgICB9OwogICAgdmFyIEJsb2NrTm9kZSA9IGNsYXNzIGV4dGVuZHMgUGFyZW50Tm9kZSB7CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgcmV0dXJuICJ7IiArIG9wdHMuX24gKyBzdXBlci5yZW5kZXIob3B0cykgKyAifSIgKyBvcHRzLl9uOwogICAgICB9CiAgICB9OwogICAgdmFyIFJvb3QgPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgfTsKICAgIHZhciBFbHNlID0gY2xhc3MgZXh0ZW5kcyBCbG9ja05vZGUgewogICAgfTsKICAgIEVsc2Uua2luZCA9ICJlbHNlIjsKICAgIHZhciBJZiA9IGNsYXNzIF9JZiBleHRlbmRzIEJsb2NrTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvbmRpdGlvbiwgbm9kZXMpIHsKICAgICAgICBzdXBlcihub2Rlcyk7CiAgICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9IGBpZigke3RoaXMuY29uZGl0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmVsc2UpCiAgICAgICAgICBjb2RlICs9ICJlbHNlICIgKyB0aGlzLmVsc2UucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgc3VwZXIub3B0aW1pemVOb2RlcygpOwogICAgICAgIGNvbnN0IGNvbmQgPSB0aGlzLmNvbmRpdGlvbjsKICAgICAgICBpZiAoY29uZCA9PT0gdHJ1ZSkKICAgICAgICAgIHJldHVybiB0aGlzLm5vZGVzOwogICAgICAgIGxldCBlID0gdGhpcy5lbHNlOwogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBjb25zdCBucyA9IGUub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgZSA9IHRoaXMuZWxzZSA9IEFycmF5LmlzQXJyYXkobnMpID8gbmV3IEVsc2UobnMpIDogbnM7CiAgICAgICAgfQogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBpZiAoY29uZCA9PT0gZmFsc2UpCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgX0lmID8gZSA6IGUubm9kZXM7CiAgICAgICAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgcmV0dXJuIG5ldyBfSWYobm90KGNvbmQpLCBlIGluc3RhbmNlb2YgX0lmID8gW2VdIDogZS5ub2Rlcyk7CiAgICAgICAgfQogICAgICAgIGlmIChjb25kID09PSBmYWxzZSB8fCAhdGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLmVsc2UgPSAoX2EgPSB0aGlzLmVsc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIGlmICghKHN1cGVyLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgfHwgdGhpcy5lbHNlKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLmNvbmRpdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgYWRkRXhwck5hbWVzKG5hbWVzLCB0aGlzLmNvbmRpdGlvbik7CiAgICAgICAgaWYgKHRoaXMuZWxzZSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmVsc2UubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIElmLmtpbmQgPSAiaWYiOwogICAgdmFyIEZvciA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgIH07CiAgICBGb3Iua2luZCA9ICJmb3IiOwogICAgdmFyIEZvckxvb3AgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGl0ZXJhdGlvbikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5pdGVyYXRpb24gPSBpdGVyYXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMuaXRlcmF0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghc3VwZXIub3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLml0ZXJhdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLml0ZXJhdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYXRpb24ubmFtZXMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvclJhbmdlID0gY2xhc3MgZXh0ZW5kcyBGb3IgewogICAgICBjb25zdHJ1Y3Rvcih2YXJLaW5kLCBuYW1lLCBmcm9tLCB0bykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgdGhpcy50byA9IHRvOwogICAgICB9CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgY29uc3QgdmFyS2luZCA9IG9wdHMuZXM1ID8gc2NvcGVfMS52YXJLaW5kcy52YXIgOiB0aGlzLnZhcktpbmQ7CiAgICAgICAgY29uc3QgeyBuYW1lLCBmcm9tLCB0byB9ID0gdGhpczsKICAgICAgICByZXR1cm4gYGZvcigke3ZhcktpbmR9ICR7bmFtZX09JHtmcm9tfTsgJHtuYW1lfTwke3RvfTsgJHtuYW1lfSsrKWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gYWRkRXhwck5hbWVzKHN1cGVyLm5hbWVzLCB0aGlzLmZyb20pOwogICAgICAgIHJldHVybiBhZGRFeHByTmFtZXMobmFtZXMsIHRoaXMudG8pOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvckl0ZXIgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGxvb3AsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmxvb3AgPSBsb29wOwogICAgICAgIHRoaXMudmFyS2luZCA9IHZhcktpbmQ7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLml0ZXJhYmxlID0gaXRlcmFibGU7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMudmFyS2luZH0gJHt0aGlzLm5hbWV9ICR7dGhpcy5sb29wfSAke3RoaXMuaXRlcmFibGV9KWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgaWYgKCFzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMuaXRlcmFibGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5pdGVyYWJsZSwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYWJsZS5uYW1lcyk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgRnVuYyA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgYXJncywgYXN5bmMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5hcmdzID0gYXJnczsKICAgICAgICB0aGlzLmFzeW5jID0gYXN5bmM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBjb25zdCBfYXN5bmMgPSB0aGlzLmFzeW5jID8gImFzeW5jICIgOiAiIjsKICAgICAgICByZXR1cm4gYCR7X2FzeW5jfWZ1bmN0aW9uICR7dGhpcy5uYW1lfSgke3RoaXMuYXJnc30pYCArIHN1cGVyLnJlbmRlcihvcHRzKTsKICAgICAgfQogICAgfTsKICAgIEZ1bmMua2luZCA9ICJmdW5jIjsKICAgIHZhciBSZXR1cm4gPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiAicmV0dXJuICIgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgIH07CiAgICBSZXR1cm4ua2luZCA9ICJyZXR1cm4iOwogICAgdmFyIFRyeSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9ICJ0cnkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmNhdGNoKQogICAgICAgICAgY29kZSArPSB0aGlzLmNhdGNoLnJlbmRlcihvcHRzKTsKICAgICAgICBpZiAodGhpcy5maW5hbGx5KQogICAgICAgICAgY29kZSArPSB0aGlzLmZpbmFsbHkucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgKF9hID0gdGhpcy5jYXRjaCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplTm9kZXMoKTsKICAgICAgICAoX2IgPSB0aGlzLmZpbmFsbHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYSA9IHRoaXMuY2F0Y2gpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYiA9IHRoaXMuZmluYWxseSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgaWYgKHRoaXMuY2F0Y2gpCiAgICAgICAgICBhZGROYW1lcyhuYW1lcywgdGhpcy5jYXRjaC5uYW1lcyk7CiAgICAgICAgaWYgKHRoaXMuZmluYWxseSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmZpbmFsbHkubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBDYXRjaCA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IoZXJyb3IpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKICAgICAgfQogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiBgY2F0Y2goJHt0aGlzLmVycm9yfSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgQ2F0Y2gua2luZCA9ICJjYXRjaCI7CiAgICB2YXIgRmluYWxseSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gImZpbmFsbHkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgRmluYWxseS5raW5kID0gImZpbmFsbHkiOwogICAgdmFyIENvZGVHZW4gPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGV4dFNjb3BlLCBvcHRzID0ge30pIHsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9ibG9ja1N0YXJ0cyA9IFtdOwogICAgICAgIHRoaXMuX2NvbnN0YW50cyA9IHt9OwogICAgICAgIHRoaXMub3B0cyA9IHsgLi4ub3B0cywgX246IG9wdHMubGluZXMgPyAiXG4iIDogIiIgfTsKICAgICAgICB0aGlzLl9leHRTY29wZSA9IGV4dFNjb3BlOwogICAgICAgIHRoaXMuX3Njb3BlID0gbmV3IHNjb3BlXzEuU2NvcGUoeyBwYXJlbnQ6IGV4dFNjb3BlIH0pOwogICAgICAgIHRoaXMuX25vZGVzID0gW25ldyBSb290KCldOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnJlbmRlcih0aGlzLm9wdHMpOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgdW5pcXVlIG5hbWUgaW4gdGhlIGludGVybmFsIHNjb3BlCiAgICAgIG5hbWUocHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Njb3BlLm5hbWUocHJlZml4KTsKICAgICAgfQogICAgICAvLyByZXNlcnZlcyB1bmlxdWUgbmFtZSBpbiB0aGUgZXh0ZXJuYWwgc2NvcGUKICAgICAgc2NvcGVOYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiB0aGlzLl9leHRTY29wZS5uYW1lKHByZWZpeCk7CiAgICAgIH0KICAgICAgLy8gcmVzZXJ2ZXMgdW5pcXVlIG5hbWUgaW4gdGhlIGV4dGVybmFsIHNjb3BlIGFuZCBhc3NpZ25zIHZhbHVlIHRvIGl0CiAgICAgIHNjb3BlVmFsdWUocHJlZml4T3JOYW1lLCB2YWx1ZSkgewogICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9leHRTY29wZS52YWx1ZShwcmVmaXhPck5hbWUsIHZhbHVlKTsKICAgICAgICBjb25zdCB2cyA9IHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gfHwgKHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKTsKICAgICAgICB2cy5hZGQobmFtZSk7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgIH0KICAgICAgZ2V0U2NvcGVWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLmdldFZhbHVlKHByZWZpeCwga2V5T3JSZWYpOwogICAgICB9CiAgICAgIC8vIHJldHVybiBjb2RlIHRoYXQgYXNzaWducyB2YWx1ZXMgaW4gdGhlIGV4dGVybmFsIHNjb3BlIHRvIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkKICAgICAgLy8gKHNhbWUgbmFtZXMgdGhhdCB3ZXJlIHJldHVybmVkIGJ5IGdlbi5zY29wZU5hbWUgb3IgZ2VuLnNjb3BlVmFsdWUpCiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXh0U2NvcGUuc2NvcGVSZWZzKHNjb3BlTmFtZSwgdGhpcy5fdmFsdWVzKTsKICAgICAgfQogICAgICBzY29wZUNvZGUoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLnNjb3BlQ29kZSh0aGlzLl92YWx1ZXMpOwogICAgICB9CiAgICAgIF9kZWYodmFyS2luZCwgbmFtZU9yUHJlZml4LCByaHMsIGNvbnN0YW50KSB7CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIGlmIChyaHMgIT09IHZvaWQgMCAmJiBjb25zdGFudCkKICAgICAgICAgIHRoaXMuX2NvbnN0YW50c1tuYW1lLnN0cl0gPSByaHM7CiAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IERlZih2YXJLaW5kLCBuYW1lLCByaHMpKTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICAvLyBgY29uc3RgIGRlY2xhcmF0aW9uIChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgY29uc3QobmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWYoc2NvcGVfMS52YXJLaW5kcy5jb25zdCwgbmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCk7CiAgICAgIH0KICAgICAgLy8gYGxldGAgZGVjbGFyYXRpb24gd2l0aCBvcHRpb25hbCBhc3NpZ25tZW50IChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgbGV0KG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMubGV0LCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBgdmFyYCBkZWNsYXJhdGlvbiB3aXRoIG9wdGlvbmFsIGFzc2lnbm1lbnQKICAgICAgdmFyKG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMudmFyLCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBhc3NpZ25tZW50IGNvZGUKICAgICAgYXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykpOwogICAgICB9CiAgICAgIC8vIGArPWAgY29kZQogICAgICBhZGQobGhzLCByaHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IEFzc2lnbk9wKGxocywgZXhwb3J0czIub3BlcmF0b3JzLkFERCwgcmhzKSk7CiAgICAgIH0KICAgICAgLy8gYXBwZW5kcyBwYXNzZWQgU2FmZUV4cHIgdG8gY29kZSBvciBleGVjdXRlcyBCbG9jawogICAgICBjb2RlKGMpIHsKICAgICAgICBpZiAodHlwZW9mIGMgPT0gImZ1bmN0aW9uIikKICAgICAgICAgIGMoKTsKICAgICAgICBlbHNlIGlmIChjICE9PSBjb2RlXzEubmlsKQogICAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IEFueUNvZGUoYykpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgY29kZSBmb3Igb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSBwYXNzZWQgYXJndW1lbnQgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMKICAgICAgb2JqZWN0KC4uLmtleVZhbHVlcykgewogICAgICAgIGNvbnN0IGNvZGUgPSBbInsiXTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBrZXlWYWx1ZXMpIHsKICAgICAgICAgIGlmIChjb2RlLmxlbmd0aCA+IDEpCiAgICAgICAgICAgIGNvZGUucHVzaCgiLCIpOwogICAgICAgICAgY29kZS5wdXNoKGtleSk7CiAgICAgICAgICBpZiAoa2V5ICE9PSB2YWx1ZSB8fCB0aGlzLm9wdHMuZXM1KSB7CiAgICAgICAgICAgIGNvZGUucHVzaCgiOiIpOwogICAgICAgICAgICAoMCwgY29kZV8xLmFkZENvZGVBcmcpKGNvZGUsIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29kZS5wdXNoKCJ9Iik7CiAgICAgICAgcmV0dXJuIG5ldyBjb2RlXzEuX0NvZGUoY29kZSk7CiAgICAgIH0KICAgICAgLy8gYGlmYCBjbGF1c2UgKG9yIHN0YXRlbWVudCBpZiBgdGhlbkJvZHlgIGFuZCwgb3B0aW9uYWxseSwgYGVsc2VCb2R5YCBhcmUgcGFzc2VkKQogICAgICBpZihjb25kaXRpb24sIHRoZW5Cb2R5LCBlbHNlQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShuZXcgSWYoY29uZGl0aW9uKSk7CiAgICAgICAgaWYgKHRoZW5Cb2R5ICYmIGVsc2VCb2R5KSB7CiAgICAgICAgICB0aGlzLmNvZGUodGhlbkJvZHkpLmVsc2UoKS5jb2RlKGVsc2VCb2R5KS5lbmRJZigpOwogICAgICAgIH0gZWxzZSBpZiAodGhlbkJvZHkpIHsKICAgICAgICAgIHRoaXMuY29kZSh0aGVuQm9keSkuZW5kSWYoKTsKICAgICAgICB9IGVsc2UgaWYgKGVsc2VCb2R5KSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJlbHNlIiBib2R5IHdpdGhvdXQgInRoZW4iIGJvZHknKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLy8gYGVsc2UgaWZgIGNsYXVzZSAtIGludmFsaWQgd2l0aG91dCBgaWZgIG9yIGFmdGVyIGBlbHNlYCBjbGF1c2VzCiAgICAgIGVsc2VJZihjb25kaXRpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IElmKGNvbmRpdGlvbikpOwogICAgICB9CiAgICAgIC8vIGBlbHNlYCBjbGF1c2UgLSBvbmx5IHZhbGlkIGFmdGVyIGBpZmAgb3IgYGVsc2UgaWZgIGNsYXVzZXMKICAgICAgZWxzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IEVsc2UoKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBpZmAgc3RhdGVtZW50IChuZWVkZWQgaWYgZ2VuLmlmIHdhcyB1c2VkIG9ubHkgd2l0aCBjb25kaXRpb24pCiAgICAgIGVuZElmKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoSWYsIEVsc2UpOwogICAgICB9CiAgICAgIF9mb3Iobm9kZSwgZm9yQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICBpZiAoZm9yQm9keSkKICAgICAgICAgIHRoaXMuY29kZShmb3JCb2R5KS5lbmRGb3IoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBhIGdlbmVyaWMgYGZvcmAgY2xhdXNlIChvciBzdGF0ZW1lbnQgaWYgYGZvckJvZHlgIGlzIHBhc3NlZCkKICAgICAgZm9yKGl0ZXJhdGlvbiwgZm9yQm9keSkgewogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckxvb3AoaXRlcmF0aW9uKSwgZm9yQm9keSk7CiAgICAgIH0KICAgICAgLy8gYGZvcmAgc3RhdGVtZW50IGZvciBhIHJhbmdlIG9mIHZhbHVlcwogICAgICBmb3JSYW5nZShuYW1lT3JQcmVmaXgsIGZyb20sIHRvLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5sZXQpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcihuZXcgRm9yUmFuZ2UodmFyS2luZCwgbmFtZSwgZnJvbSwgdG8pLCAoKSA9PiBmb3JCb2R5KG5hbWUpKTsKICAgICAgfQogICAgICAvLyBgZm9yLW9mYCBzdGF0ZW1lbnQgKGluIGVzNSBtb2RlIHJlcGxhY2Ugd2l0aCBhIG5vcm1hbCBmb3IgbG9vcCkKICAgICAgZm9yT2YobmFtZU9yUHJlZml4LCBpdGVyYWJsZSwgZm9yQm9keSwgdmFyS2luZCA9IHNjb3BlXzEudmFyS2luZHMuY29uc3QpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgaWYgKHRoaXMub3B0cy5lczUpIHsKICAgICAgICAgIGNvbnN0IGFyciA9IGl0ZXJhYmxlIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBpdGVyYWJsZSA6IHRoaXMudmFyKCJfYXJyIiwgaXRlcmFibGUpOwogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yUmFuZ2UoIl9pIiwgMCwgKDAsIGNvZGVfMS5fKWAke2Fycn0ubGVuZ3RoYCwgKGkpID0+IHsKICAgICAgICAgICAgdGhpcy52YXIobmFtZSwgKDAsIGNvZGVfMS5fKWAke2Fycn1bJHtpfV1gKTsKICAgICAgICAgICAgZm9yQm9keShuYW1lKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fZm9yKG5ldyBGb3JJdGVyKCJvZiIsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gYGZvci1pbmAgc3RhdGVtZW50LgogICAgICAvLyBXaXRoIG9wdGlvbiBgb3duUHJvcGVydGllc2AgcmVwbGFjZWQgd2l0aCBhIGBmb3Itb2ZgIGxvb3AgZm9yIG9iamVjdCBrZXlzCiAgICAgIGZvckluKG5hbWVPclByZWZpeCwgb2JqLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5jb25zdCkgewogICAgICAgIGlmICh0aGlzLm9wdHMub3duUHJvcGVydGllcykgewogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yT2YobmFtZU9yUHJlZml4LCAoMCwgY29kZV8xLl8pYE9iamVjdC5rZXlzKCR7b2JqfSlgLCBmb3JCb2R5KTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckl0ZXIoImluIiwgdmFyS2luZCwgbmFtZSwgb2JqKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBmb3JgIGxvb3AKICAgICAgZW5kRm9yKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRm9yKTsKICAgICAgfQogICAgICAvLyBgbGFiZWxgIHN0YXRlbWVudAogICAgICBsYWJlbChsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgTGFiZWwobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgYnJlYWtgIHN0YXRlbWVudAogICAgICBicmVhayhsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQnJlYWsobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgcmV0dXJuYCBzdGF0ZW1lbnQKICAgICAgcmV0dXJuKHZhbHVlKSB7CiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBSZXR1cm4oKTsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobm9kZSk7CiAgICAgICAgdGhpcy5jb2RlKHZhbHVlKTsKICAgICAgICBpZiAobm9kZS5ub2Rlcy5sZW5ndGggIT09IDEpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJyZXR1cm4iIHNob3VsZCBoYXZlIG9uZSBub2RlJyk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2VuZEJsb2NrTm9kZShSZXR1cm4pOwogICAgICB9CiAgICAgIC8vIGB0cnlgIHN0YXRlbWVudAogICAgICB0cnkodHJ5Qm9keSwgY2F0Y2hDb2RlLCBmaW5hbGx5Q29kZSkgewogICAgICAgIGlmICghY2F0Y2hDb2RlICYmICFmaW5hbGx5Q29kZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInRyeSIgd2l0aG91dCAiY2F0Y2giIGFuZCAiZmluYWxseSInKTsKICAgICAgICBjb25zdCBub2RlID0gbmV3IFRyeSgpOwogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICB0aGlzLmNvZGUodHJ5Qm9keSk7CiAgICAgICAgaWYgKGNhdGNoQ29kZSkgewogICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5hbWUoImUiKTsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5jYXRjaCA9IG5ldyBDYXRjaChlcnJvcik7CiAgICAgICAgICBjYXRjaENvZGUoZXJyb3IpOwogICAgICAgIH0KICAgICAgICBpZiAoZmluYWxseUNvZGUpIHsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5maW5hbGx5ID0gbmV3IEZpbmFsbHkoKTsKICAgICAgICAgIHRoaXMuY29kZShmaW5hbGx5Q29kZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoQ2F0Y2gsIEZpbmFsbHkpOwogICAgICB9CiAgICAgIC8vIGB0aHJvd2Agc3RhdGVtZW50CiAgICAgIHRocm93KGVycm9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBUaHJvdyhlcnJvcikpOwogICAgICB9CiAgICAgIC8vIHN0YXJ0IHNlbGYtYmFsYW5jaW5nIGJsb2NrCiAgICAgIGJsb2NrKGJvZHksIG5vZGVDb3VudCkgewogICAgICAgIHRoaXMuX2Jsb2NrU3RhcnRzLnB1c2godGhpcy5fbm9kZXMubGVuZ3RoKTsKICAgICAgICBpZiAoYm9keSkKICAgICAgICAgIHRoaXMuY29kZShib2R5KS5lbmRCbG9jayhub2RlQ291bnQpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIGVuZCB0aGUgY3VycmVudCBzZWxmLWJhbGFuY2luZyBibG9jawogICAgICBlbmRCbG9jayhub2RlQ291bnQpIHsKICAgICAgICBjb25zdCBsZW4gPSB0aGlzLl9ibG9ja1N0YXJ0cy5wb3AoKTsKICAgICAgICBpZiAobGVuID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvZGVHZW46IG5vdCBpbiBzZWxmLWJhbGFuY2luZyBibG9jayIpOwogICAgICAgIGNvbnN0IHRvQ2xvc2UgPSB0aGlzLl9ub2Rlcy5sZW5ndGggLSBsZW47CiAgICAgICAgaWYgKHRvQ2xvc2UgPCAwIHx8IG5vZGVDb3VudCAhPT0gdm9pZCAwICYmIHRvQ2xvc2UgIT09IG5vZGVDb3VudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiB3cm9uZyBudW1iZXIgb2Ygbm9kZXM6ICR7dG9DbG9zZX0gdnMgJHtub2RlQ291bnR9IGV4cGVjdGVkYCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX25vZGVzLmxlbmd0aCA9IGxlbjsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBgZnVuY3Rpb25gIGhlYWRpbmcgKG9yIGRlZmluaXRpb24gaWYgZnVuY0JvZHkgaXMgcGFzc2VkKQogICAgICBmdW5jKG5hbWUsIGFyZ3MgPSBjb2RlXzEubmlsLCBhc3luYywgZnVuY0JvZHkpIHsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobmV3IEZ1bmMobmFtZSwgYXJncywgYXN5bmMpKTsKICAgICAgICBpZiAoZnVuY0JvZHkpCiAgICAgICAgICB0aGlzLmNvZGUoZnVuY0JvZHkpLmVuZEZ1bmMoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBlbmQgZnVuY3Rpb24gZGVmaW5pdGlvbgogICAgICBlbmRGdW5jKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRnVuYyk7CiAgICAgIH0KICAgICAgb3B0aW1pemUobiA9IDEpIHsKICAgICAgICB3aGlsZSAobi0tID4gMCkgewogICAgICAgICAgdGhpcy5fcm9vdC5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgICB0aGlzLl9yb290Lm9wdGltaXplTmFtZXModGhpcy5fcm9vdC5uYW1lcywgdGhpcy5fY29uc3RhbnRzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2xlYWZOb2RlKG5vZGUpIHsKICAgICAgICB0aGlzLl9jdXJyTm9kZS5ub2Rlcy5wdXNoKG5vZGUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF9ibG9ja05vZGUobm9kZSkgewogICAgICAgIHRoaXMuX2N1cnJOb2RlLm5vZGVzLnB1c2gobm9kZSk7CiAgICAgICAgdGhpcy5fbm9kZXMucHVzaChub2RlKTsKICAgICAgfQogICAgICBfZW5kQmxvY2tOb2RlKE4xLCBOMikgewogICAgICAgIGNvbnN0IG4gPSB0aGlzLl9jdXJyTm9kZTsKICAgICAgICBpZiAobiBpbnN0YW5jZW9mIE4xIHx8IE4yICYmIG4gaW5zdGFuY2VvZiBOMikgewogICAgICAgICAgdGhpcy5fbm9kZXMucG9wKCk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBub3QgaW4gYmxvY2sgIiR7TjIgPyBgJHtOMS5raW5kfS8ke04yLmtpbmR9YCA6IE4xLmtpbmR9ImApOwogICAgICB9CiAgICAgIF9lbHNlTm9kZShub2RlKSB7CiAgICAgICAgY29uc3QgbiA9IHRoaXMuX2N1cnJOb2RlOwogICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBJZikpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogImVsc2UiIHdpdGhvdXQgImlmIicpOwogICAgICAgIH0KICAgICAgICB0aGlzLl9jdXJyTm9kZSA9IG4uZWxzZSA9IG5vZGU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IF9yb290KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc1swXTsKICAgICAgfQogICAgICBnZXQgX2N1cnJOb2RlKCkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgcmV0dXJuIG5zW25zLmxlbmd0aCAtIDFdOwogICAgICB9CiAgICAgIHNldCBfY3Vyck5vZGUobm9kZSkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgbnNbbnMubGVuZ3RoIC0gMV0gPSBub2RlOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29kZUdlbiA9IENvZGVHZW47CiAgICBmdW5jdGlvbiBhZGROYW1lcyhuYW1lcywgZnJvbSkgewogICAgICBmb3IgKGNvbnN0IG4gaW4gZnJvbSkKICAgICAgICBuYW1lc1tuXSA9IChuYW1lc1tuXSB8fCAwKSArIChmcm9tW25dIHx8IDApOwogICAgICByZXR1cm4gbmFtZXM7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFeHByTmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgcmV0dXJuIGZyb20gaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyBhZGROYW1lcyhuYW1lcywgZnJvbS5uYW1lcykgOiBuYW1lczsKICAgIH0KICAgIGZ1bmN0aW9uIG9wdGltaXplRXhwcihleHByLCBuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgIGlmIChleHByIGluc3RhbmNlb2YgY29kZV8xLk5hbWUpCiAgICAgICAgcmV0dXJuIHJlcGxhY2VOYW1lKGV4cHIpOwogICAgICBpZiAoIWNhbk9wdGltaXplKGV4cHIpKQogICAgICAgIHJldHVybiBleHByOwogICAgICByZXR1cm4gbmV3IGNvZGVfMS5fQ29kZShleHByLl9pdGVtcy5yZWR1Y2UoKGl0ZW1zLCBjKSA9PiB7CiAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBjb2RlXzEuTmFtZSkKICAgICAgICAgIGMgPSByZXBsYWNlTmFtZShjKTsKICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSkKICAgICAgICAgIGl0ZW1zLnB1c2goLi4uYy5faXRlbXMpOwogICAgICAgIGVsc2UKICAgICAgICAgIGl0ZW1zLnB1c2goYyk7CiAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICB9LCBbXSkpOwogICAgICBmdW5jdGlvbiByZXBsYWNlTmFtZShuKSB7CiAgICAgICAgY29uc3QgYyA9IGNvbnN0YW50c1tuLnN0cl07CiAgICAgICAgaWYgKGMgPT09IHZvaWQgMCB8fCBuYW1lc1tuLnN0cl0gIT09IDEpCiAgICAgICAgICByZXR1cm4gbjsKICAgICAgICBkZWxldGUgbmFtZXNbbi5zdHJdOwogICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbk9wdGltaXplKGUpIHsKICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSAmJiBlLl9pdGVtcy5zb21lKChjKSA9PiBjIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgJiYgbmFtZXNbYy5zdHJdID09PSAxICYmIGNvbnN0YW50c1tjLnN0cl0gIT09IHZvaWQgMCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHN1YnRyYWN0TmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgZm9yIChjb25zdCBuIGluIGZyb20pCiAgICAgICAgbmFtZXNbbl0gPSAobmFtZXNbbl0gfHwgMCkgLSAoZnJvbVtuXSB8fCAwKTsKICAgIH0KICAgIGZ1bmN0aW9uIG5vdCh4KSB7CiAgICAgIHJldHVybiB0eXBlb2YgeCA9PSAiYm9vbGVhbiIgfHwgdHlwZW9mIHggPT0gIm51bWJlciIgfHwgeCA9PT0gbnVsbCA/ICF4IDogKDAsIGNvZGVfMS5fKWAhJHtwYXIoeCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLm5vdCA9IG5vdDsKICAgIHZhciBhbmRDb2RlID0gbWFwcGVuZChleHBvcnRzMi5vcGVyYXRvcnMuQU5EKTsKICAgIGZ1bmN0aW9uIGFuZCguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShhbmRDb2RlKTsKICAgIH0KICAgIGV4cG9ydHMyLmFuZCA9IGFuZDsKICAgIHZhciBvckNvZGUgPSBtYXBwZW5kKGV4cG9ydHMyLm9wZXJhdG9ycy5PUik7CiAgICBmdW5jdGlvbiBvciguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShvckNvZGUpOwogICAgfQogICAgZXhwb3J0czIub3IgPSBvcjsKICAgIGZ1bmN0aW9uIG1hcHBlbmQob3ApIHsKICAgICAgcmV0dXJuICh4LCB5KSA9PiB4ID09PSBjb2RlXzEubmlsID8geSA6IHkgPT09IGNvZGVfMS5uaWwgPyB4IDogKDAsIGNvZGVfMS5fKWAke3Bhcih4KX0gJHtvcH0gJHtwYXIoeSl9YDsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcih4KSB7CiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyB4IDogKDAsIGNvZGVfMS5fKWAoJHt4fSlgOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS91dGlsLmpzCnZhciByZXF1aXJlX3V0aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdXRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gZXhwb3J0czIuZ2V0RXJyb3JQYXRoID0gZXhwb3J0czIuVHlwZSA9IGV4cG9ydHMyLnVzZUZ1bmMgPSBleHBvcnRzMi5zZXRFdmFsdWF0ZWQgPSBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV4cG9ydHMyLm1lcmdlRXZhbHVhdGVkID0gZXhwb3J0czIuZWFjaEl0ZW0gPSBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBleHBvcnRzMi5lc2NhcGVGcmFnbWVudCA9IGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSBleHBvcnRzMi5zY2hlbWFSZWZPclZhbCA9IGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzQnV0UmVmID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXMgPSBleHBvcnRzMi5jaGVja1Vua25vd25SdWxlcyA9IGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gZXhwb3J0czIudG9IYXNoID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZSgpOwogICAgZnVuY3Rpb24gdG9IYXNoKGFycikgewogICAgICBjb25zdCBoYXNoID0ge307CiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpCiAgICAgICAgaGFzaFtpdGVtXSA9IHRydWU7CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogICAgZXhwb3J0czIudG9IYXNoID0gdG9IYXNoOwogICAgZnVuY3Rpb24gYWx3YXlzVmFsaWRTY2hlbWEoaXQsIHNjaGVtYTIpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gc2NoZW1hMjsKICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYTIpLmxlbmd0aCA9PT0gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2hlY2tVbmtub3duUnVsZXMoaXQsIHNjaGVtYTIpOwogICAgICByZXR1cm4gIXNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIGl0LnNlbGYuUlVMRVMuYWxsKTsKICAgIH0KICAgIGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gYWx3YXlzVmFsaWRTY2hlbWE7CiAgICBmdW5jdGlvbiBjaGVja1Vua25vd25SdWxlcyhpdCwgc2NoZW1hMiA9IGl0LnNjaGVtYSkgewogICAgICBjb25zdCB7IG9wdHMsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgaWYgKCFvcHRzLnN0cmljdFNjaGVtYSkKICAgICAgICByZXR1cm47CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgcnVsZXMgPSBzZWxmMi5SVUxFUy5rZXl3b3JkczsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmICghcnVsZXNba2V5XSkKICAgICAgICAgIGNoZWNrU3RyaWN0TW9kZShpdCwgYHVua25vd24ga2V5d29yZDogIiR7a2V5fSJgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tVbmtub3duUnVsZXMgPSBjaGVja1Vua25vd25SdWxlczsKICAgIGZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIHJ1bGVzKSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgcmV0dXJuICFzY2hlbWEyOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKQogICAgICAgIGlmIChydWxlc1trZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzID0gc2NoZW1hSGFzUnVsZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFIYXNSdWxlc0J1dFJlZihzY2hlbWEyLCBSVUxFUykgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybiAhc2NoZW1hMjsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikKICAgICAgICBpZiAoa2V5ICE9PSAiJHJlZiIgJiYgUlVMRVMuYWxsW2tleV0pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNCdXRSZWYgPSBzY2hlbWFIYXNSdWxlc0J1dFJlZjsKICAgIGZ1bmN0aW9uIHNjaGVtYVJlZk9yVmFsKHsgdG9wU2NoZW1hUmVmLCBzY2hlbWFQYXRoIH0sIHNjaGVtYTIsIGtleXdvcmQsICRkYXRhKSB7CiAgICAgIGlmICghJGRhdGEpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gIm51bWJlciIgfHwgdHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgICAgcmV0dXJuIHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciKQogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtzY2hlbWEyfWA7CiAgICAgIH0KICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHt0b3BTY2hlbWFSZWZ9JHtzY2hlbWFQYXRofSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoa2V5d29yZCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYVJlZk9yVmFsID0gc2NoZW1hUmVmT3JWYWw7CiAgICBmdW5jdGlvbiB1bmVzY2FwZUZyYWdtZW50KHN0cjIpIHsKICAgICAgcmV0dXJuIHVuZXNjYXBlSnNvblBvaW50ZXIoZGVjb2RlVVJJQ29tcG9uZW50KHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSB1bmVzY2FwZUZyYWdtZW50OwogICAgZnVuY3Rpb24gZXNjYXBlRnJhZ21lbnQoc3RyMikgewogICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVzY2FwZUpzb25Qb2ludGVyKHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmVzY2FwZUZyYWdtZW50ID0gZXNjYXBlRnJhZ21lbnQ7CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUG9pbnRlcihzdHIyKSB7CiAgICAgIGlmICh0eXBlb2Ygc3RyMiA9PSAibnVtYmVyIikKICAgICAgICByZXR1cm4gYCR7c3RyMn1gOwogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgfQogICAgZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBlc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXIoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+Iik7CiAgICB9CiAgICBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gdW5lc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIGVhY2hJdGVtKHhzLCBmKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHhzKSkgewogICAgICAgIGZvciAoY29uc3QgeCBvZiB4cykKICAgICAgICAgIGYoeCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZih4cyk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVhY2hJdGVtID0gZWFjaEl0ZW07CiAgICBmdW5jdGlvbiBtYWtlTWVyZ2VFdmFsdWF0ZWQoeyBtZXJnZU5hbWVzLCBtZXJnZVRvTmFtZSwgbWVyZ2VWYWx1ZXMsIHJlc3VsdFRvTmFtZSB9KSB7CiAgICAgIHJldHVybiAoZ2VuLCBmcm9tLCB0bywgdG9OYW1lKSA9PiB7CiAgICAgICAgY29uc3QgcmVzID0gdG8gPT09IHZvaWQgMCA/IGZyb20gOiB0byBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKGZyb20gaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IG1lcmdlTmFtZXMoZ2VuLCBmcm9tLCB0bykgOiBtZXJnZVRvTmFtZShnZW4sIGZyb20sIHRvKSwgdG8pIDogZnJvbSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKG1lcmdlVG9OYW1lKGdlbiwgdG8sIGZyb20pLCBmcm9tKSA6IG1lcmdlVmFsdWVzKGZyb20sIHRvKTsKICAgICAgICByZXR1cm4gdG9OYW1lID09PSBjb2RlZ2VuXzEuTmFtZSAmJiAhKHJlcyBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSA/IHJlc3VsdFRvTmFtZShnZW4sIHJlcykgOiByZXM7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUV2YWx1YXRlZCA9IHsKICAgICAgcHJvcHM6IG1ha2VNZXJnZUV2YWx1YXRlZCh7CiAgICAgICAgbWVyZ2VOYW1lczogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlICYmICR7ZnJvbX0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZnJvbX0gPT09IHRydWVgLCAoKSA9PiBnZW4uYXNzaWduKHRvLCB0cnVlKSwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke3RvfSB8fCB7fWApLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QuYXNzaWduKCR7dG99LCAke2Zyb219KWApKTsKICAgICAgICB9KSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gewogICAgICAgICAgaWYgKGZyb20gPT09IHRydWUpIHsKICAgICAgICAgICAgZ2VuLmFzc2lnbih0bywgdHJ1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uYXNzaWduKHRvLCAoMCwgY29kZWdlbl8xLl8pYCR7dG99IHx8IHt9YCk7CiAgICAgICAgICAgIHNldEV2YWx1YXRlZChnZW4sIHRvLCBmcm9tKTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IHsgLi4uZnJvbSwgLi4udG8gfSwKICAgICAgICByZXN1bHRUb05hbWU6IGV2YWx1YXRlZFByb3BzVG9OYW1lCiAgICAgIH0pLAogICAgICBpdGVtczogbWFrZU1lcmdlRXZhbHVhdGVkKHsKICAgICAgICBtZXJnZU5hbWVzOiAoZ2VuLCBmcm9tLCB0bykgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHt0b30gIT09IHRydWUgJiYgJHtmcm9tfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke2Zyb219ID09PSB0cnVlID8gdHJ1ZSA6ICR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgZnJvbSA9PT0gdHJ1ZSA/IHRydWUgOiAoMCwgY29kZWdlbl8xLl8pYCR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IE1hdGgubWF4KGZyb20sIHRvKSwKICAgICAgICByZXN1bHRUb05hbWU6IChnZW4sIGl0ZW1zKSA9PiBnZW4udmFyKCJpdGVtcyIsIGl0ZW1zKQogICAgICB9KQogICAgfTsKICAgIGZ1bmN0aW9uIGV2YWx1YXRlZFByb3BzVG9OYW1lKGdlbiwgcHMpIHsKICAgICAgaWYgKHBzID09PSB0cnVlKQogICAgICAgIHJldHVybiBnZW4udmFyKCJwcm9wcyIsIHRydWUpOwogICAgICBjb25zdCBwcm9wcyA9IGdlbi52YXIoInByb3BzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICBpZiAocHMgIT09IHZvaWQgMCkKICAgICAgICBzZXRFdmFsdWF0ZWQoZ2VuLCBwcm9wcywgcHMpOwogICAgICByZXR1cm4gcHJvcHM7CiAgICB9CiAgICBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV2YWx1YXRlZFByb3BzVG9OYW1lOwogICAgZnVuY3Rpb24gc2V0RXZhbHVhdGVkKGdlbiwgcHJvcHMsIHBzKSB7CiAgICAgIE9iamVjdC5rZXlzKHBzKS5mb3JFYWNoKChwKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wc30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHApfWAsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNldEV2YWx1YXRlZCA9IHNldEV2YWx1YXRlZDsKICAgIHZhciBzbmlwcGV0cyA9IHt9OwogICAgZnVuY3Rpb24gdXNlRnVuYyhnZW4sIGYpIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIHJlZjogZiwKICAgICAgICBjb2RlOiBzbmlwcGV0c1tmLmNvZGVdIHx8IChzbmlwcGV0c1tmLmNvZGVdID0gbmV3IGNvZGVfMS5fQ29kZShmLmNvZGUpKQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzZUZ1bmMgPSB1c2VGdW5jOwogICAgdmFyIFR5cGU7CiAgICAoZnVuY3Rpb24oVHlwZTIpIHsKICAgICAgVHlwZTJbVHlwZTJbIk51bSJdID0gMF0gPSAiTnVtIjsKICAgICAgVHlwZTJbVHlwZTJbIlN0ciJdID0gMV0gPSAiU3RyIjsKICAgIH0pKFR5cGUgfHwgKGV4cG9ydHMyLlR5cGUgPSBUeXBlID0ge30pKTsKICAgIGZ1bmN0aW9uIGdldEVycm9yUGF0aChkYXRhUHJvcCwgZGF0YVByb3BUeXBlLCBqc1Byb3BlcnR5U3ludGF4KSB7CiAgICAgIGlmIChkYXRhUHJvcCBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSB7CiAgICAgICAgY29uc3QgaXNOdW1iZXIgPSBkYXRhUHJvcFR5cGUgPT09IFR5cGUuTnVtOwogICAgICAgIHJldHVybiBqc1Byb3BlcnR5U3ludGF4ID8gaXNOdW1iZXIgPyAoMCwgY29kZWdlbl8xLl8pYCJbIiArICR7ZGF0YVByb3B9ICsgIl0iYCA6ICgwLCBjb2RlZ2VuXzEuXylgIlsnIiArICR7ZGF0YVByb3B9ICsgIiddImAgOiBpc051bWJlciA/ICgwLCBjb2RlZ2VuXzEuXylgIi8iICsgJHtkYXRhUHJvcH1gIDogKDAsIGNvZGVnZW5fMS5fKWAiLyIgKyAke2RhdGFQcm9wfS5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1xcLy9nLCAifjEiKWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGpzUHJvcGVydHlTeW50YXggPyAoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCkudG9TdHJpbmcoKSA6ICIvIiArIGVzY2FwZUpzb25Qb2ludGVyKGRhdGFQcm9wKTsKICAgIH0KICAgIGV4cG9ydHMyLmdldEVycm9yUGF0aCA9IGdldEVycm9yUGF0aDsKICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0TW9kZShpdCwgbXNnLCBtb2RlID0gaXQub3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgaWYgKCFtb2RlKQogICAgICAgIHJldHVybjsKICAgICAgbXNnID0gYHN0cmljdCBtb2RlOiAke21zZ31gOwogICAgICBpZiAobW9kZSA9PT0gdHJ1ZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKICAgICAgaXQuc2VsZi5sb2dnZXIud2Fybihtc2cpOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gY2hlY2tTdHJpY3RNb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcwp2YXIgcmVxdWlyZV9uYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzID0gewogICAgICAvLyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGFyZ3VtZW50cwogICAgICBkYXRhOiBuZXcgY29kZWdlbl8xLk5hbWUoImRhdGEiKSwKICAgICAgLy8gZGF0YSBwYXNzZWQgdG8gdmFsaWRhdGlvbiBmdW5jdGlvbgogICAgICAvLyBhcmdzIHBhc3NlZCBmcm9tIHJlZmVyZW5jaW5nIHNjaGVtYQogICAgICB2YWxDeHQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgidmFsQ3h0IiksCiAgICAgIC8vIHZhbGlkYXRpb24vZGF0YSBjb250ZXh0IC0gc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBpdCBpcyBkZXN0cnVjdHVyZWQgdG8gdGhlIG5hbWVzIGJlbG93CiAgICAgIGluc3RhbmNlUGF0aDogbmV3IGNvZGVnZW5fMS5OYW1lKCJpbnN0YW5jZVBhdGgiKSwKICAgICAgcGFyZW50RGF0YTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhIiksCiAgICAgIHBhcmVudERhdGFQcm9wZXJ0eTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhUHJvcGVydHkiKSwKICAgICAgcm9vdERhdGE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicm9vdERhdGEiKSwKICAgICAgLy8gcm9vdCBkYXRhIC0gc2FtZSBhcyB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIGZpcnN0L3RvcCB2YWxpZGF0aW9uIGZ1bmN0aW9uCiAgICAgIGR5bmFtaWNBbmNob3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoImR5bmFtaWNBbmNob3JzIiksCiAgICAgIC8vIHVzZWQgdG8gc3VwcG9ydCByZWN1cnNpdmVSZWYgYW5kIGR5bmFtaWNSZWYKICAgICAgLy8gZnVuY3Rpb24gc2NvcGVkIHZhcmlhYmxlcwogICAgICB2RXJyb3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoInZFcnJvcnMiKSwKICAgICAgLy8gbnVsbCBvciBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9ycwogICAgICBlcnJvcnM6IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZXJyb3JzIiksCiAgICAgIC8vIGNvdW50ZXIgb2YgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgdGhpczogbmV3IGNvZGVnZW5fMS5OYW1lKCJ0aGlzIiksCiAgICAgIC8vICJnbG9iYWxzIgogICAgICBzZWxmOiBuZXcgY29kZWdlbl8xLk5hbWUoInNlbGYiKSwKICAgICAgc2NvcGU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NvcGUiKSwKICAgICAgLy8gSlREIHNlcmlhbGl6ZS9wYXJzZSBuYW1lIGZvciBKU09OIHN0cmluZyBhbmQgcG9zaXRpb24KICAgICAganNvbjogbmV3IGNvZGVnZW5fMS5OYW1lKCJqc29uIiksCiAgICAgIGpzb25Qb3M6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBvcyIpLAogICAgICBqc29uTGVuOiBuZXcgY29kZWdlbl8xLk5hbWUoImpzb25MZW4iKSwKICAgICAganNvblBhcnQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBhcnQiKQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBuYW1lczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvZXJyb3JzLmpzCnZhciByZXF1aXJlX2Vycm9ycyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9lcnJvcnMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4cG9ydHMyLnJlc2V0RXJyb3JzQ291bnQgPSBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gZXhwb3J0czIucmVwb3J0RXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgZXhwb3J0czIua2V5d29yZEVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IHBhc3MgIiR7a2V5d29yZH0iIGtleXdvcmQgdmFsaWRhdGlvbmAKICAgIH07CiAgICBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsga2V5d29yZCwgc2NoZW1hVHlwZSB9KSA9PiBzY2hlbWFUeXBlID8gKDAsIGNvZGVnZW5fMS5zdHIpYCIke2tleXdvcmR9IiBrZXl3b3JkIG11c3QgYmUgJHtzY2hlbWFUeXBlfSAoJGRhdGEpYCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAiJHtrZXl3b3JkfSIga2V5d29yZCBpcyBpbnZhbGlkICgkZGF0YSlgCiAgICB9OwogICAgZnVuY3Rpb24gcmVwb3J0RXJyb3IoY3h0LCBlcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciwgZXJyb3JQYXRocywgb3ZlcnJpZGVBbGxFcnJvcnMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBpZiAob3ZlcnJpZGVBbGxFcnJvcnMgIT09IG51bGwgJiYgb3ZlcnJpZGVBbGxFcnJvcnMgIT09IHZvaWQgMCA/IG92ZXJyaWRlQWxsRXJyb3JzIDogY29tcG9zaXRlUnVsZSB8fCBhbGxFcnJvcnMpIHsKICAgICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuRXJyb3JzKGl0LCAoMCwgY29kZWdlbl8xLl8pYFske2Vyck9ian1dYCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydEVycm9yID0gcmVwb3J0RXJyb3I7CiAgICBmdW5jdGlvbiByZXBvcnRFeHRyYUVycm9yKGN4dCwgZXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkRXJyb3IsIGVycm9yUGF0aHMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIGlmICghKGNvbXBvc2l0ZVJ1bGUgfHwgYWxsRXJyb3JzKSkgewogICAgICAgIHJldHVybkVycm9ycyhpdCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gcmVwb3J0RXh0cmFFcnJvcjsKICAgIGZ1bmN0aW9uIHJlc2V0RXJyb3JzQ291bnQoZ2VuLCBlcnJzQ291bnQpIHsKICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCBlcnJzQ291bnQpOwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfSAhPT0gbnVsbGAsICgpID0+IGdlbi5pZihlcnJzQ291bnQsICgpID0+IGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfS5sZW5ndGhgLCBlcnJzQ291bnQpLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCBudWxsKSkpOwogICAgfQogICAgZXhwb3J0czIucmVzZXRFcnJvcnNDb3VudCA9IHJlc2V0RXJyb3JzQ291bnQ7CiAgICBmdW5jdGlvbiBleHRlbmRFcnJvcnMoeyBnZW4sIGtleXdvcmQsIHNjaGVtYVZhbHVlLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0pIHsKICAgICAgaWYgKGVycnNDb3VudCA9PT0gdm9pZCAwKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5uYW1lKCJlcnIiKTsKICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgZXJyc0NvdW50LCBuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoaSkgPT4gewogICAgICAgIGdlbi5jb25zdChlcnIsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc31bJHtpfV1gKTsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uaW5zdGFuY2VQYXRoID09PSB1bmRlZmluZWRgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtlcnJ9Lmluc3RhbmNlUGF0aGAsICgwLCBjb2RlZ2VuXzEuc3RyQ29uY2F0KShuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCBpdC5lcnJvclBhdGgpKSk7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5zY2hlbWFQYXRoYCwgKDAsIGNvZGVnZW5fMS5zdHIpYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWApOwogICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHsKICAgICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uc2NoZW1hYCwgc2NoZW1hVmFsdWUpOwogICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5kYXRhYCwgZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4dGVuZEVycm9yczsKICAgIGZ1bmN0aW9uIGFkZEVycm9yKGdlbiwgZXJyT2JqKSB7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5jb25zdCgiZXJyIiwgZXJyT2JqKTsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGxgLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYFske2Vycn1dYCksICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ucHVzaCgke2Vycn0pYCk7CiAgICAgIGdlbi5jb2RlKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSsrYCk7CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5FcnJvcnMoaXQsIGVycnMpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSwgc2NoZW1hRW52IH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4udGhyb3coKDAsIGNvZGVnZW5fMS5fKWBuZXcgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KCR7ZXJyc30pYCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBlcnJzKTsKICAgICAgICBnZW4ucmV0dXJuKGZhbHNlKTsKICAgICAgfQogICAgfQogICAgdmFyIEUgPSB7CiAgICAgIGtleXdvcmQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgia2V5d29yZCIpLAogICAgICBzY2hlbWFQYXRoOiBuZXcgY29kZWdlbl8xLk5hbWUoInNjaGVtYVBhdGgiKSwKICAgICAgLy8gYWxzbyB1c2VkIGluIEpURCBlcnJvcnMKICAgICAgcGFyYW1zOiBuZXcgY29kZWdlbl8xLk5hbWUoInBhcmFtcyIpLAogICAgICBwcm9wZXJ0eU5hbWU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicHJvcGVydHlOYW1lIiksCiAgICAgIG1lc3NhZ2U6IG5ldyBjb2RlZ2VuXzEuTmFtZSgibWVzc2FnZSIpLAogICAgICBzY2hlbWE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NoZW1hIiksCiAgICAgIHBhcmVudFNjaGVtYTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnRTY2hlbWEiKQogICAgfTsKICAgIGZ1bmN0aW9uIGVycm9yT2JqZWN0Q29kZShjeHQsIGVycm9yLCBlcnJvclBhdGhzKSB7CiAgICAgIGNvbnN0IHsgY3JlYXRlRXJyb3JzIH0gPSBjeHQuaXQ7CiAgICAgIGlmIChjcmVhdGVFcnJvcnMgPT09IGZhbHNlKQogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYHt9YDsKICAgICAgcmV0dXJuIGVycm9yT2JqZWN0KGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JPYmplY3QoY3h0LCBlcnJvciwgZXJyb3JQYXRocyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBrZXlWYWx1ZXMgPSBbCiAgICAgICAgZXJyb3JJbnN0YW5jZVBhdGgoaXQsIGVycm9yUGF0aHMpLAogICAgICAgIGVycm9yU2NoZW1hUGF0aChjeHQsIGVycm9yUGF0aHMpCiAgICAgIF07CiAgICAgIGV4dHJhRXJyb3JQcm9wcyhjeHQsIGVycm9yLCBrZXlWYWx1ZXMpOwogICAgICByZXR1cm4gZ2VuLm9iamVjdCguLi5rZXlWYWx1ZXMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JJbnN0YW5jZVBhdGgoeyBlcnJvclBhdGggfSwgeyBpbnN0YW5jZVBhdGggfSkgewogICAgICBjb25zdCBpbnN0UGF0aCA9IGluc3RhbmNlUGF0aCA/ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShpbnN0YW5jZVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YCA6IGVycm9yUGF0aDsKICAgICAgcmV0dXJuIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgaW5zdFBhdGgpXTsKICAgIH0KICAgIGZ1bmN0aW9uIGVycm9yU2NoZW1hUGF0aCh7IGtleXdvcmQsIGl0OiB7IGVyclNjaGVtYVBhdGggfSB9LCB7IHNjaGVtYVBhdGgsIHBhcmVudFNjaGVtYSB9KSB7CiAgICAgIGxldCBzY2hQYXRoID0gcGFyZW50U2NoZW1hID8gZXJyU2NoZW1hUGF0aCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2VyclNjaGVtYVBhdGh9LyR7a2V5d29yZH1gOwogICAgICBpZiAoc2NoZW1hUGF0aCkgewogICAgICAgIHNjaFBhdGggPSAoMCwgY29kZWdlbl8xLnN0cilgJHtzY2hQYXRofSR7KDAsIHV0aWxfMS5nZXRFcnJvclBhdGgpKHNjaGVtYVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YDsKICAgICAgfQogICAgICByZXR1cm4gW0Uuc2NoZW1hUGF0aCwgc2NoUGF0aF07CiAgICB9CiAgICBmdW5jdGlvbiBleHRyYUVycm9yUHJvcHMoY3h0LCB7IHBhcmFtcywgbWVzc2FnZSB9LCBrZXlWYWx1ZXMpIHsKICAgICAgY29uc3QgeyBrZXl3b3JkLCBkYXRhLCBzY2hlbWFWYWx1ZSwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgeyBvcHRzLCBwcm9wZXJ0eU5hbWUsIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCB9ID0gaXQ7CiAgICAgIGtleVZhbHVlcy5wdXNoKFtFLmtleXdvcmQsIGtleXdvcmRdLCBbRS5wYXJhbXMsIHR5cGVvZiBwYXJhbXMgPT0gImZ1bmN0aW9uIiA/IHBhcmFtcyhjeHQpIDogcGFyYW1zIHx8ICgwLCBjb2RlZ2VuXzEuXylge31gXSk7CiAgICAgIGlmIChvcHRzLm1lc3NhZ2VzKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UubWVzc2FnZSwgdHlwZW9mIG1lc3NhZ2UgPT0gImZ1bmN0aW9uIiA/IG1lc3NhZ2UoY3h0KSA6IG1lc3NhZ2VdKTsKICAgICAgfQogICAgICBpZiAob3B0cy52ZXJib3NlKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0Uuc2NoZW1hLCBzY2hlbWFWYWx1ZV0sIFtFLnBhcmVudFNjaGVtYSwgKDAsIGNvZGVnZW5fMS5fKWAke3RvcFNjaGVtYVJlZn0ke3NjaGVtYVBhdGh9YF0sIFtuYW1lc18xLmRlZmF1bHQuZGF0YSwgZGF0YV0pOwogICAgICB9CiAgICAgIGlmIChwcm9wZXJ0eU5hbWUpCiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UucHJvcGVydHlOYW1lLCBwcm9wZXJ0eU5hbWVdKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYm9vbFNjaGVtYS5qcwp2YXIgcmVxdWlyZV9ib29sU2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2Jvb2xTY2hlbWEuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gZXhwb3J0czIudG9wQm9vbE9yRW1wdHlTY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgZXJyb3JzXzEgPSByZXF1aXJlX2Vycm9ycygpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgYm9vbEVycm9yID0gewogICAgICBtZXNzYWdlOiAiYm9vbGVhbiBzY2hlbWEgaXMgZmFsc2UiCiAgICB9OwogICAgZnVuY3Rpb24gdG9wQm9vbE9yRW1wdHlTY2hlbWEoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgdmFsaWRhdGVOYW1lIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCwgZmFsc2UpOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmIHNjaGVtYTIuJGFzeW5jID09PSB0cnVlKSB7CiAgICAgICAgZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBudWxsKTsKICAgICAgICBnZW4ucmV0dXJuKHRydWUpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi50b3BCb29sT3JFbXB0eVNjaGVtYSA9IHRvcEJvb2xPckVtcHR5U2NoZW1hOwogICAgZnVuY3Rpb24gYm9vbE9yRW1wdHlTY2hlbWEoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICBnZW4udmFyKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gYm9vbE9yRW1wdHlTY2hlbWE7CiAgICBmdW5jdGlvbiBmYWxzZVNjaGVtYUVycm9yKGl0LCBvdmVycmlkZUFsbEVycm9ycykgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSB9ID0gaXQ7CiAgICAgIGNvbnN0IGN4dCA9IHsKICAgICAgICBnZW4sCiAgICAgICAga2V5d29yZDogImZhbHNlIHNjaGVtYSIsCiAgICAgICAgZGF0YSwKICAgICAgICBzY2hlbWE6IGZhbHNlLAogICAgICAgIHNjaGVtYUNvZGU6IGZhbHNlLAogICAgICAgIHNjaGVtYVZhbHVlOiBmYWxzZSwKICAgICAgICBwYXJhbXM6IHt9LAogICAgICAgIGl0CiAgICAgIH07CiAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikoY3h0LCBib29sRXJyb3IsIHZvaWQgMCwgb3ZlcnJpZGVBbGxFcnJvcnMpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcwp2YXIgcmVxdWlyZV9ydWxlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0UnVsZXMgPSBleHBvcnRzMi5pc0pTT05UeXBlID0gdm9pZCAwOwogICAgdmFyIF9qc29uVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiaW50ZWdlciIsICJib29sZWFuIiwgIm51bGwiLCAib2JqZWN0IiwgImFycmF5Il07CiAgICB2YXIganNvblR5cGVzID0gbmV3IFNldChfanNvblR5cGVzKTsKICAgIGZ1bmN0aW9uIGlzSlNPTlR5cGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gInN0cmluZyIgJiYganNvblR5cGVzLmhhcyh4KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSlNPTlR5cGUgPSBpc0pTT05UeXBlOwogICAgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7CiAgICAgIGNvbnN0IGdyb3VwcyA9IHsKICAgICAgICBudW1iZXI6IHsgdHlwZTogIm51bWJlciIsIHJ1bGVzOiBbXSB9LAogICAgICAgIHN0cmluZzogeyB0eXBlOiAic3RyaW5nIiwgcnVsZXM6IFtdIH0sCiAgICAgICAgYXJyYXk6IHsgdHlwZTogImFycmF5IiwgcnVsZXM6IFtdIH0sCiAgICAgICAgb2JqZWN0OiB7IHR5cGU6ICJvYmplY3QiLCBydWxlczogW10gfQogICAgICB9OwogICAgICByZXR1cm4gewogICAgICAgIHR5cGVzOiB7IC4uLmdyb3VwcywgaW50ZWdlcjogdHJ1ZSwgYm9vbGVhbjogdHJ1ZSwgbnVsbDogdHJ1ZSB9LAogICAgICAgIHJ1bGVzOiBbeyBydWxlczogW10gfSwgZ3JvdXBzLm51bWJlciwgZ3JvdXBzLnN0cmluZywgZ3JvdXBzLmFycmF5LCBncm91cHMub2JqZWN0XSwKICAgICAgICBwb3N0OiB7IHJ1bGVzOiBbXSB9LAogICAgICAgIGFsbDoge30sCiAgICAgICAga2V5d29yZHM6IHt9CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5nZXRSdWxlcyA9IGdldFJ1bGVzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9hcHBsaWNhYmlsaXR5LmpzCnZhciByZXF1aXJlX2FwcGxpY2FiaWxpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYXBwbGljYWJpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNGb3JUeXBlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXNGb3JUeXBlKHsgc2NoZW1hOiBzY2hlbWEyLCBzZWxmOiBzZWxmMiB9LCB0eXBlMikgewogICAgICBjb25zdCBncm91cCA9IHNlbGYyLlJVTEVTLnR5cGVzW3R5cGUyXTsKICAgICAgcmV0dXJuIGdyb3VwICYmIGdyb3VwICE9PSB0cnVlICYmIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzRm9yVHlwZSA9IHNjaGVtYUhhc1J1bGVzRm9yVHlwZTsKICAgIGZ1bmN0aW9uIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKSB7CiAgICAgIHJldHVybiBncm91cC5ydWxlcy5zb21lKChydWxlKSA9PiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gc2hvdWxkVXNlR3JvdXA7CiAgICBmdW5jdGlvbiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpIHsKICAgICAgdmFyIF9hOwogICAgICByZXR1cm4gc2NoZW1hMltydWxlLmtleXdvcmRdICE9PSB2b2lkIDAgfHwgKChfYSA9IHJ1bGUuZGVmaW5pdGlvbi5pbXBsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc29tZSgoa3dkKSA9PiBzY2hlbWEyW2t3ZF0gIT09IHZvaWQgMCkpOwogICAgfQogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IHNob3VsZFVzZVJ1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzCnZhciByZXF1aXJlX2RhdGFUeXBlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSBleHBvcnRzMi5jaGVja0RhdGFUeXBlcyA9IGV4cG9ydHMyLmNoZWNrRGF0YVR5cGUgPSBleHBvcnRzMi5jb2VyY2VBbmRDaGVja0RhdGFUeXBlID0gZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZXhwb3J0czIuZ2V0U2NoZW1hVHlwZXMgPSBleHBvcnRzMi5EYXRhVHlwZSA9IHZvaWQgMDsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGFwcGxpY2FiaWxpdHlfMSA9IHJlcXVpcmVfYXBwbGljYWJpbGl0eSgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBEYXRhVHlwZTsKICAgIChmdW5jdGlvbihEYXRhVHlwZTIpIHsKICAgICAgRGF0YVR5cGUyW0RhdGFUeXBlMlsiQ29ycmVjdCJdID0gMF0gPSAiQ29ycmVjdCI7CiAgICAgIERhdGFUeXBlMltEYXRhVHlwZTJbIldyb25nIl0gPSAxXSA9ICJXcm9uZyI7CiAgICB9KShEYXRhVHlwZSB8fCAoZXhwb3J0czIuRGF0YVR5cGUgPSBEYXRhVHlwZSA9IHt9KSk7CiAgICBmdW5jdGlvbiBnZXRTY2hlbWFUeXBlcyhzY2hlbWEyKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gZ2V0SlNPTlR5cGVzKHNjaGVtYTIudHlwZSk7CiAgICAgIGNvbnN0IGhhc051bGwgPSB0eXBlcy5pbmNsdWRlcygibnVsbCIpOwogICAgICBpZiAoaGFzTnVsbCkgewogICAgICAgIGlmIChzY2hlbWEyLm51bGxhYmxlID09PSBmYWxzZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZTogbnVsbCBjb250cmFkaWN0cyBudWxsYWJsZTogZmFsc2UiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoIXR5cGVzLmxlbmd0aCAmJiBzY2hlbWEyLm51bGxhYmxlICE9PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignIm51bGxhYmxlIiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0ICJ0eXBlIicpOwogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1hMi5udWxsYWJsZSA9PT0gdHJ1ZSkKICAgICAgICAgIHR5cGVzLnB1c2goIm51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gdHlwZXM7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTY2hlbWFUeXBlcyA9IGdldFNjaGVtYVR5cGVzOwogICAgZnVuY3Rpb24gZ2V0SlNPTlR5cGVzKHRzKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheSh0cykgPyB0cyA6IHRzID8gW3RzXSA6IFtdOwogICAgICBpZiAodHlwZXMuZXZlcnkocnVsZXNfMS5pc0pTT05UeXBlKSkKICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBtdXN0IGJlIEpTT05UeXBlIG9yIEpTT05UeXBlW106ICIgKyB0eXBlcy5qb2luKCIsIikpOwogICAgfQogICAgZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZ2V0SlNPTlR5cGVzOwogICAgZnVuY3Rpb24gY29lcmNlQW5kQ2hlY2tEYXRhVHlwZShpdCwgdHlwZXMpIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBjb2VyY2VUbyA9IGNvZXJjZVRvVHlwZXModHlwZXMsIG9wdHMuY29lcmNlVHlwZXMpOwogICAgICBjb25zdCBjaGVja1R5cGVzID0gdHlwZXMubGVuZ3RoID4gMCAmJiAhKGNvZXJjZVRvLmxlbmd0aCA9PT0gMCAmJiB0eXBlcy5sZW5ndGggPT09IDEgJiYgKDAsIGFwcGxpY2FiaWxpdHlfMS5zY2hlbWFIYXNSdWxlc0ZvclR5cGUpKGl0LCB0eXBlc1swXSkpOwogICAgICBpZiAoY2hlY2tUeXBlcykgewogICAgICAgIGNvbnN0IHdyb25nVHlwZSA9IGNoZWNrRGF0YVR5cGVzKHR5cGVzLCBkYXRhLCBvcHRzLnN0cmljdE51bWJlcnMsIERhdGFUeXBlLldyb25nKTsKICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoKSA9PiB7CiAgICAgICAgICBpZiAoY29lcmNlVG8ubGVuZ3RoKQogICAgICAgICAgICBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoaXQpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBjaGVja1R5cGVzOwogICAgfQogICAgZXhwb3J0czIuY29lcmNlQW5kQ2hlY2tEYXRhVHlwZSA9IGNvZXJjZUFuZENoZWNrRGF0YVR5cGU7CiAgICB2YXIgQ09FUkNJQkxFID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWyJzdHJpbmciLCAibnVtYmVyIiwgImludGVnZXIiLCAiYm9vbGVhbiIsICJudWxsIl0pOwogICAgZnVuY3Rpb24gY29lcmNlVG9UeXBlcyh0eXBlcywgY29lcmNlVHlwZXMpIHsKICAgICAgcmV0dXJuIGNvZXJjZVR5cGVzID8gdHlwZXMuZmlsdGVyKCh0KSA9PiBDT0VSQ0lCTEUuaGFzKHQpIHx8IGNvZXJjZVR5cGVzID09PSAiYXJyYXkiICYmIHQgPT09ICJhcnJheSIpIDogW107CiAgICB9CiAgICBmdW5jdGlvbiBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBkYXRhVHlwZSA9IGdlbi5sZXQoImRhdGFUeXBlIiwgKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfWApOwogICAgICBjb25zdCBjb2VyY2VkID0gZ2VuLmxldCgiY29lcmNlZCIsICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgIGlmIChvcHRzLmNvZXJjZVR5cGVzID09PSAiYXJyYXkiKSB7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSgke2RhdGF9KSAmJiAke2RhdGF9Lmxlbmd0aCA9PSAxYCwgKCkgPT4gZ2VuLmFzc2lnbihkYXRhLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX1bMF1gKS5hc3NpZ24oZGF0YVR5cGUsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7ZGF0YX1gKS5pZihjaGVja0RhdGFUeXBlcyh0eXBlcywgZGF0YSwgb3B0cy5zdHJpY3ROdW1iZXJzKSwgKCkgPT4gZ2VuLmFzc2lnbihjb2VyY2VkLCBkYXRhKSkpOwogICAgICB9CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGApOwogICAgICBmb3IgKGNvbnN0IHQgb2YgY29lcmNlVG8pIHsKICAgICAgICBpZiAoQ09FUkNJQkxFLmhhcyh0KSB8fCB0ID09PSAiYXJyYXkiICYmIG9wdHMuY29lcmNlVHlwZXMgPT09ICJhcnJheSIpIHsKICAgICAgICAgIGNvZXJjZVNwZWNpZmljVHlwZSh0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZ2VuLmVsc2UoKTsKICAgICAgcmVwb3J0VHlwZUVycm9yKGl0KTsKICAgICAgZ2VuLmVuZElmKCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICBnZW4uYXNzaWduKGRhdGEsIGNvZXJjZWQpOwogICAgICAgIGFzc2lnblBhcmVudERhdGEoaXQsIGNvZXJjZWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY29lcmNlU3BlY2lmaWNUeXBlKHQpIHsKICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGFUeXBlfSA9PSAibnVtYmVyIiB8fCAke2RhdGFUeXBlfSA9PSAiYm9vbGVhbiJgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWAiIiArICR7ZGF0YX1gKS5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSBudWxsYCkuYXNzaWduKGNvZXJjZWQsICgwLCBjb2RlZ2VuXzEuXylgIiJgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09ICJib29sZWFuIiB8fCAke2RhdGF9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7ZGF0YVR5cGV9ID09ICJzdHJpbmciICYmICR7ZGF0YX0gJiYgJHtkYXRhfSA9PSArJHtkYXRhfSlgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWArJHtkYXRhfWApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbAogICAgICAgICAgICAgIHx8ICgke2RhdGFUeXBlfSA9PT0gInN0cmluZyIgJiYgJHtkYXRhfSAmJiAke2RhdGF9ID09ICske2RhdGF9ICYmICEoJHtkYXRhfSAlIDEpKWApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYCske2RhdGF9YCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSA9PT0gImZhbHNlIiB8fCAke2RhdGF9ID09PSAwIHx8ICR7ZGF0YX0gPT09IG51bGxgKS5hc3NpZ24oY29lcmNlZCwgZmFsc2UpLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICJ0cnVlIiB8fCAke2RhdGF9ID09PSAxYCkuYXNzaWduKGNvZXJjZWQsIHRydWUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICIiIHx8ICR7ZGF0YX0gPT09IDAgfHwgJHtkYXRhfSA9PT0gZmFsc2VgKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbihjb2VyY2VkLCBudWxsKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT09ICJzdHJpbmciIHx8ICR7ZGF0YVR5cGV9ID09PSAibnVtYmVyIgogICAgICAgICAgICAgIHx8ICR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbGApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYFske2RhdGF9XWApOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYXNzaWduUGFyZW50RGF0YSh7IGdlbiwgcGFyZW50RGF0YSwgcGFyZW50RGF0YVByb3BlcnR5IH0sIGV4cHIpIHsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtwYXJlbnREYXRhfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cGFyZW50RGF0YX1bJHtwYXJlbnREYXRhUHJvcGVydHl9XWAsIGV4cHIpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGUsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QgPSBEYXRhVHlwZS5Db3JyZWN0KSB7CiAgICAgIGNvbnN0IEVRID0gY29ycmVjdCA9PT0gRGF0YVR5cGUuQ29ycmVjdCA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuRVEgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLk5FUTsKICAgICAgbGV0IGNvbmQ7CiAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gJHtFUX0gbnVsbGA7CiAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSAmJiB0eXBlb2YgJHtkYXRhfSA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgIGNvbmQgPSBudW1Db25kKCgwLCBjb2RlZ2VuXzEuXylgISgke2RhdGF9ICUgMSkgJiYgIWlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY29uZCA9IG51bUNvbmQoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAke0VRfSAke2RhdGFUeXBlfWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvcnJlY3QgPT09IERhdGFUeXBlLkNvcnJlY3QgPyBjb25kIDogKDAsIGNvZGVnZW5fMS5ub3QpKGNvbmQpOwogICAgICBmdW5jdGlvbiBudW1Db25kKF9jb25kID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLmFuZCkoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSA9PSAibnVtYmVyImAsIF9jb25kLCBzdHJpY3ROdW1zID8gKDAsIGNvZGVnZW5fMS5fKWBpc0Zpbml0ZSgke2RhdGF9KWAgOiBjb2RlZ2VuXzEubmlsKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZSA9IGNoZWNrRGF0YVR5cGU7CiAgICBmdW5jdGlvbiBjaGVja0RhdGFUeXBlcyhkYXRhVHlwZXMsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpIHsKICAgICAgaWYgKGRhdGFUeXBlcy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gY2hlY2tEYXRhVHlwZShkYXRhVHlwZXNbMF0sIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpOwogICAgICB9CiAgICAgIGxldCBjb25kOwogICAgICBjb25zdCB0eXBlcyA9ICgwLCB1dGlsXzEudG9IYXNoKShkYXRhVHlwZXMpOwogICAgICBpZiAodHlwZXMuYXJyYXkgJiYgdHlwZXMub2JqZWN0KSB7CiAgICAgICAgY29uc3Qgbm90T2JqID0gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAhPSAib2JqZWN0ImA7CiAgICAgICAgY29uZCA9IHR5cGVzLm51bGwgPyBub3RPYmogOiAoMCwgY29kZWdlbl8xLl8pYCEke2RhdGF9IHx8ICR7bm90T2JqfWA7CiAgICAgICAgZGVsZXRlIHR5cGVzLm51bGw7CiAgICAgICAgZGVsZXRlIHR5cGVzLmFycmF5OwogICAgICAgIGRlbGV0ZSB0eXBlcy5vYmplY3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uZCA9IGNvZGVnZW5fMS5uaWw7CiAgICAgIH0KICAgICAgaWYgKHR5cGVzLm51bWJlcikKICAgICAgICBkZWxldGUgdHlwZXMuaW50ZWdlcjsKICAgICAgZm9yIChjb25zdCB0IGluIHR5cGVzKQogICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLmFuZCkoY29uZCwgY2hlY2tEYXRhVHlwZSh0LCBkYXRhLCBzdHJpY3ROdW1zLCBjb3JyZWN0KSk7CiAgICAgIHJldHVybiBjb25kOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZXMgPSBjaGVja0RhdGFUeXBlczsKICAgIHZhciB0eXBlRXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYTogc2NoZW1hMiB9KSA9PiBgbXVzdCBiZSAke3NjaGVtYTJ9YCwKICAgICAgcGFyYW1zOiAoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYVZhbHVlIH0pID0+IHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciID8gKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWEyfX1gIDogKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWFWYWx1ZX19YAogICAgfTsKICAgIGZ1bmN0aW9uIHJlcG9ydFR5cGVFcnJvcihpdCkgewogICAgICBjb25zdCBjeHQgPSBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KTsKICAgICAgKDAsIGVycm9yc18xLnJlcG9ydEVycm9yKShjeHQsIHR5cGVFcnJvcik7CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSByZXBvcnRUeXBlRXJyb3I7CiAgICBmdW5jdGlvbiBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBjb25zdCBzY2hlbWFDb2RlID0gKDAsIHV0aWxfMS5zY2hlbWFSZWZPclZhbCkoaXQsIHNjaGVtYTIsICJ0eXBlIik7CiAgICAgIHJldHVybiB7CiAgICAgICAgZ2VuLAogICAgICAgIGtleXdvcmQ6ICJ0eXBlIiwKICAgICAgICBkYXRhLAogICAgICAgIHNjaGVtYTogc2NoZW1hMi50eXBlLAogICAgICAgIHNjaGVtYUNvZGUsCiAgICAgICAgc2NoZW1hVmFsdWU6IHNjaGVtYUNvZGUsCiAgICAgICAgcGFyZW50U2NoZW1hOiBzY2hlbWEyLAogICAgICAgIHBhcmFtczoge30sCiAgICAgICAgaXQKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMKdmFyIHJlcXVpcmVfZGVmYXVsdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFzc2lnbkRlZmF1bHRzID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdHMoaXQsIHR5KSB7CiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgaXRlbXMgfSA9IGl0LnNjaGVtYTsKICAgICAgaWYgKHR5ID09PSAib2JqZWN0IiAmJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcGVydGllcykgewogICAgICAgICAgYXNzaWduRGVmYXVsdChpdCwga2V5LCBwcm9wZXJ0aWVzW2tleV0uZGVmYXVsdCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHR5ID09PSAiYXJyYXkiICYmIEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgaXRlbXMuZm9yRWFjaCgoc2NoLCBpKSA9PiBhc3NpZ25EZWZhdWx0KGl0LCBpLCBzY2guZGVmYXVsdCkpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hc3NpZ25EZWZhdWx0cyA9IGFzc2lnbkRlZmF1bHRzOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdChpdCwgcHJvcCwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBjb21wb3NpdGVSdWxlLCBkYXRhLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgY2hpbGREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wKX1gOwogICAgICBpZiAoY29tcG9zaXRlUnVsZSkgewogICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYGRlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICR7Y2hpbGREYXRhfWApOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NoaWxkRGF0YX0gPT09IHVuZGVmaW5lZGA7CiAgICAgIGlmIChvcHRzLnVzZURlZmF1bHRzID09PSAiZW1wdHkiKSB7CiAgICAgICAgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NvbmRpdGlvbn0gfHwgJHtjaGlsZERhdGF9ID09PSBudWxsIHx8ICR7Y2hpbGREYXRhfSA9PT0gIiJgOwogICAgICB9CiAgICAgIGdlbi5pZihjb25kaXRpb24sICgwLCBjb2RlZ2VuXzEuXylgJHtjaGlsZERhdGF9ID0gJHsoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkoZGVmYXVsdFZhbHVlKX1gKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb2RlLmpzCnZhciByZXF1aXJlX2NvZGUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29kZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVVbmlvbiA9IGV4cG9ydHMyLnZhbGlkYXRlQXJyYXkgPSBleHBvcnRzMi51c2VQYXR0ZXJuID0gZXhwb3J0czIuY2FsbFZhbGlkYXRlQ29kZSA9IGV4cG9ydHMyLnNjaGVtYVByb3BlcnRpZXMgPSBleHBvcnRzMi5hbGxTY2hlbWFQcm9wZXJ0aWVzID0gZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IGV4cG9ydHMyLnByb3BlcnR5SW5EYXRhID0gZXhwb3J0czIuaXNPd25Qcm9wZXJ0eSA9IGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gZXhwb3J0czIucmVwb3J0TWlzc2luZ1Byb3AgPSBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gY2hlY2tSZXBvcnRNaXNzaW5nUHJvcChjeHQsIHByb3ApIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGdlbi5pZihub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gewogICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6ICgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wfWAgfSwgdHJ1ZSk7CiAgICAgICAgY3h0LmVycm9yKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IGNoZWNrUmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBjaGVja01pc3NpbmdQcm9wKHsgZ2VuLCBkYXRhLCBpdDogeyBvcHRzIH0gfSwgcHJvcGVydGllcywgbWlzc2luZykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5vcikoLi4ucHJvcGVydGllcy5tYXAoKHByb3ApID0+ICgwLCBjb2RlZ2VuXzEuYW5kKShub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKDAsIGNvZGVnZW5fMS5fKWAke21pc3Npbmd9ID0gJHtwcm9wfWApKSk7CiAgICB9CiAgICBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gY2hlY2tNaXNzaW5nUHJvcDsKICAgIGZ1bmN0aW9uIHJlcG9ydE1pc3NpbmdQcm9wKGN4dCwgbWlzc2luZykgewogICAgICBjeHQuc2V0UGFyYW1zKHsgbWlzc2luZ1Byb3BlcnR5OiBtaXNzaW5nIH0sIHRydWUpOwogICAgICBjeHQuZXJyb3IoKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydE1pc3NpbmdQcm9wID0gcmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBoYXNQcm9wRnVuYyhnZW4pIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QKICAgICAgICByZWY6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5YAogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gaGFzUHJvcEZ1bmM7CiAgICBmdW5jdGlvbiBpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpIHsKICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtoYXNQcm9wRnVuYyhnZW4pfS5jYWxsKCR7ZGF0YX0sICR7cHJvcGVydHl9KWA7CiAgICB9CiAgICBleHBvcnRzMi5pc093blByb3BlcnR5ID0gaXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIHByb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcGVydHksIG93blByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkocHJvcGVydHkpfSAhPT0gdW5kZWZpbmVkYDsKICAgICAgcmV0dXJuIG93blByb3BlcnRpZXMgPyAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpfWAgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIucHJvcGVydHlJbkRhdGEgPSBwcm9wZXJ0eUluRGF0YTsKICAgIGZ1bmN0aW9uIG5vUHJvcGVydHlJbkRhdGEoZ2VuLCBkYXRhLCBwcm9wZXJ0eSwgb3duUHJvcGVydGllcykgewogICAgICBjb25zdCBjb25kID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wZXJ0eSl9ID09PSB1bmRlZmluZWRgOwogICAgICByZXR1cm4gb3duUHJvcGVydGllcyA/ICgwLCBjb2RlZ2VuXzEub3IpKGNvbmQsICgwLCBjb2RlZ2VuXzEubm90KShpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpKSkgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IG5vUHJvcGVydHlJbkRhdGE7CiAgICBmdW5jdGlvbiBhbGxTY2hlbWFQcm9wZXJ0aWVzKHNjaGVtYU1hcCkgewogICAgICByZXR1cm4gc2NoZW1hTWFwID8gT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+IHAgIT09ICJfX3Byb3RvX18iKSA6IFtdOwogICAgfQogICAgZXhwb3J0czIuYWxsU2NoZW1hUHJvcGVydGllcyA9IGFsbFNjaGVtYVByb3BlcnRpZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFQcm9wZXJ0aWVzKGl0LCBzY2hlbWFNYXApIHsKICAgICAgcmV0dXJuIGFsbFNjaGVtYVByb3BlcnRpZXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+ICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hTWFwW3BdKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlbWFQcm9wZXJ0aWVzID0gc2NoZW1hUHJvcGVydGllczsKICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZUNvZGUoeyBzY2hlbWFDb2RlLCBkYXRhLCBpdDogeyBnZW4sIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCwgZXJyb3JQYXRoIH0sIGl0IH0sIGZ1bmMsIGNvbnRleHQsIHBhc3NTY2hlbWEpIHsKICAgICAgY29uc3QgZGF0YUFuZFNjaGVtYSA9IHBhc3NTY2hlbWEgPyAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0sICR7ZGF0YX0sICR7dG9wU2NoZW1hUmVmfSR7c2NoZW1hUGF0aH1gIDogZGF0YTsKICAgICAgY29uc3QgdmFsQ3h0ID0gWwogICAgICAgIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgZXJyb3JQYXRoKV0sCiAgICAgICAgW25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhLCBpdC5wYXJlbnREYXRhXSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgaXQucGFyZW50RGF0YVByb3BlcnR5XSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhLCBuYW1lc18xLmRlZmF1bHQucm9vdERhdGFdCiAgICAgIF07CiAgICAgIGlmIChpdC5vcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgdmFsQ3h0LnB1c2goW25hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgbmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzXSk7CiAgICAgIGNvbnN0IGFyZ3MgPSAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YUFuZFNjaGVtYX0sICR7Z2VuLm9iamVjdCguLi52YWxDeHQpfWA7CiAgICAgIHJldHVybiBjb250ZXh0ICE9PSBjb2RlZ2VuXzEubmlsID8gKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9LmNhbGwoJHtjb250ZXh0fSwgJHthcmdzfSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9KCR7YXJnc30pYDsKICAgIH0KICAgIGV4cG9ydHMyLmNhbGxWYWxpZGF0ZUNvZGUgPSBjYWxsVmFsaWRhdGVDb2RlOwogICAgdmFyIG5ld1JlZ0V4cCA9ICgwLCBjb2RlZ2VuXzEuXylgbmV3IFJlZ0V4cGA7CiAgICBmdW5jdGlvbiB1c2VQYXR0ZXJuKHsgZ2VuLCBpdDogeyBvcHRzIH0gfSwgcGF0dGVybikgewogICAgICBjb25zdCB1ID0gb3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgIGNvbnN0IHsgcmVnRXhwIH0gPSBvcHRzLmNvZGU7CiAgICAgIGNvbnN0IHJ4ID0gcmVnRXhwKHBhdHRlcm4sIHUpOwogICAgICByZXR1cm4gZ2VuLnNjb3BlVmFsdWUoInBhdHRlcm4iLCB7CiAgICAgICAga2V5OiByeC50b1N0cmluZygpLAogICAgICAgIHJlZjogcngsCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWAke3JlZ0V4cC5jb2RlID09PSAibmV3IFJlZ0V4cCIgPyBuZXdSZWdFeHAgOiAoMCwgdXRpbF8yLnVzZUZ1bmMpKGdlbiwgcmVnRXhwKX0oJHtwYXR0ZXJufSwgJHt1fSlgCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudXNlUGF0dGVybiA9IHVzZVBhdHRlcm47CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUFycmF5KGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgaWYgKGl0LmFsbEVycm9ycykgewogICAgICAgIGNvbnN0IHZhbGlkQXJyID0gZ2VuLmxldCgidmFsaWQiLCB0cnVlKTsKICAgICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5hc3NpZ24odmFsaWRBcnIsIGZhbHNlKSk7CiAgICAgICAgcmV0dXJuIHZhbGlkQXJyOwogICAgICB9CiAgICAgIGdlbi52YXIodmFsaWQsIHRydWUpOwogICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5icmVhaygpKTsKICAgICAgcmV0dXJuIHZhbGlkOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUl0ZW1zKG5vdFZhbGlkKSB7CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQsCiAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLk51bQogICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksIG5vdFZhbGlkKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVBcnJheSA9IHZhbGlkYXRlQXJyYXk7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaW9uKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgY29uc3QgYWx3YXlzVmFsaWQgPSBzY2hlbWEyLnNvbWUoKHNjaCkgPT4gKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpOwogICAgICBpZiAoYWx3YXlzVmFsaWQgJiYgIWl0Lm9wdHMudW5ldmFsdWF0ZWQpCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHNjaGVtYTIuZm9yRWFjaCgoX3NjaCwgaSkgPT4gewogICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAga2V5d29yZCwKICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHt2YWxpZH0gfHwgJHtzY2hWYWxpZH1gKTsKICAgICAgICBjb25zdCBtZXJnZWQgPSBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHNjaFZhbGlkKTsKICAgICAgICBpZiAoIW1lcmdlZCkKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpKTsKICAgICAgfSkpOwogICAgICBjeHQucmVzdWx0KHZhbGlkLCAoKSA9PiBjeHQucmVzZXQoKSwgKCkgPT4gY3h0LmVycm9yKHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlVW5pb24gPSB2YWxpZGF0ZVVuaW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9rZXl3b3JkLmpzCnZhciByZXF1aXJlX2tleXdvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUva2V5d29yZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVLZXl3b3JkVXNhZ2UgPSBleHBvcnRzMi52YWxpZFNjaGVtYVR5cGUgPSBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIG1hY3JvS2V5d29yZENvZGUoY3h0LCBkZWYpIHsKICAgICAgY29uc3QgeyBnZW4sIGtleXdvcmQsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBtYWNyb1NjaGVtYSA9IGRlZi5tYWNyby5jYWxsKGl0LnNlbGYsIHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpOwogICAgICBjb25zdCBzY2hlbWFSZWYgPSB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgbWFjcm9TY2hlbWEpOwogICAgICBpZiAoaXQub3B0cy52YWxpZGF0ZVNjaGVtYSAhPT0gZmFsc2UpCiAgICAgICAgaXQuc2VsZi52YWxpZGF0ZVNjaGVtYShtYWNyb1NjaGVtYSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgIGN4dC5zdWJzY2hlbWEoewogICAgICAgIHNjaGVtYTogbWFjcm9TY2hlbWEsCiAgICAgICAgc2NoZW1hUGF0aDogY29kZWdlbl8xLm5pbCwKICAgICAgICBlcnJTY2hlbWFQYXRoOiBgJHtpdC5lcnJTY2hlbWFQYXRofS8ke2tleXdvcmR9YCwKICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaGVtYVJlZiwKICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgIH0sIHZhbGlkKTsKICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICB9CiAgICBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gbWFjcm9LZXl3b3JkQ29kZTsKICAgIGZ1bmN0aW9uIGZ1bmNLZXl3b3JkQ29kZShjeHQsIGRlZikgewogICAgICB2YXIgX2E7CiAgICAgIGNvbnN0IHsgZ2VuLCBrZXl3b3JkLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgJGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGNoZWNrQXN5bmNLZXl3b3JkKGl0LCBkZWYpOwogICAgICBjb25zdCB2YWxpZGF0ZSA9ICEkZGF0YSAmJiBkZWYuY29tcGlsZSA/IGRlZi5jb21waWxlLmNhbGwoaXQuc2VsZiwgc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCkgOiBkZWYudmFsaWRhdGU7CiAgICAgIGNvbnN0IHZhbGlkYXRlUmVmID0gdXNlS2V5d29yZChnZW4sIGtleXdvcmQsIHZhbGlkYXRlKTsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgdmFsaWRhdGVLZXl3b3JkKTsKICAgICAgY3h0Lm9rKChfYSA9IGRlZi52YWxpZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsaWQpOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUtleXdvcmQoKSB7CiAgICAgICAgaWYgKGRlZi5lcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICBhc3NpZ25WYWxpZCgpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBydWxlRXJycyA9IGRlZi5hc3luYyA/IHZhbGlkYXRlQXN5bmMoKSA6IHZhbGlkYXRlU3luYygpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gYWRkRXJycyhjeHQsIHJ1bGVFcnJzKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlQXN5bmMoKSB7CiAgICAgICAgY29uc3QgcnVsZUVycnMgPSBnZW4ubGV0KCJydWxlRXJycyIsIG51bGwpOwogICAgICAgIGdlbi50cnkoKCkgPT4gYXNzaWduVmFsaWQoKDAsIGNvZGVnZW5fMS5fKWBhd2FpdCBgKSwgKGUpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZX0gaW5zdGFuY2VvZiAke2l0LlZhbGlkYXRpb25FcnJvcn1gLCAoKSA9PiBnZW4uYXNzaWduKHJ1bGVFcnJzLCAoMCwgY29kZWdlbl8xLl8pYCR7ZX0uZXJyb3JzYCksICgpID0+IGdlbi50aHJvdyhlKSkpOwogICAgICAgIHJldHVybiBydWxlRXJyczsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZVN5bmMoKSB7CiAgICAgICAgY29uc3QgdmFsaWRhdGVFcnJzID0gKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlUmVmfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWRhdGVFcnJzLCBudWxsKTsKICAgICAgICBhc3NpZ25WYWxpZChjb2RlZ2VuXzEubmlsKTsKICAgICAgICByZXR1cm4gdmFsaWRhdGVFcnJzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFzc2lnblZhbGlkKF9hd2FpdCA9IGRlZi5hc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgYXdhaXQgYCA6IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBjb25zdCBwYXNzQ3h0ID0gaXQub3B0cy5wYXNzQ29udGV4dCA/IG5hbWVzXzEuZGVmYXVsdC50aGlzIDogbmFtZXNfMS5kZWZhdWx0LnNlbGY7CiAgICAgICAgY29uc3QgcGFzc1NjaGVtYSA9ICEoImNvbXBpbGUiIGluIGRlZiAmJiAhJGRhdGEgfHwgZGVmLnNjaGVtYSA9PT0gZmFsc2UpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHtfYXdhaXR9JHsoMCwgY29kZV8xLmNhbGxWYWxpZGF0ZUNvZGUpKGN4dCwgdmFsaWRhdGVSZWYsIHBhc3NDeHQsIHBhc3NTY2hlbWEpfWAsIGRlZi5tb2RpZnlpbmcpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcG9ydEVycnMoZXJyb3JzKSB7CiAgICAgICAgdmFyIF9hMjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKChfYTIgPSBkZWYudmFsaWQpICE9PSBudWxsICYmIF9hMiAhPT0gdm9pZCAwID8gX2EyIDogdmFsaWQpLCBlcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBmdW5jS2V5d29yZENvZGU7CiAgICBmdW5jdGlvbiBtb2RpZnlEYXRhKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwgaXQgfSA9IGN4dDsKICAgICAgZ2VuLmlmKGl0LnBhcmVudERhdGEsICgpID0+IGdlbi5hc3NpZ24oZGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LnBhcmVudERhdGF9WyR7aXQucGFyZW50RGF0YVByb3BlcnR5fV1gKSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFcnJzKGN4dCwgZXJycykgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWBBcnJheS5pc0FycmF5KCR7ZXJyc30pYCwgKCkgPT4gewogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCkuYXNzaWduKG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ubGVuZ3RoYCk7CiAgICAgICAgKDAsIGVycm9yc18xLmV4dGVuZEVycm9ycykoY3h0KTsKICAgICAgfSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY0tleXdvcmQoeyBzY2hlbWFFbnYgfSwgZGVmKSB7CiAgICAgIGlmIChkZWYuYXN5bmMgJiYgIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhc3luYyBrZXl3b3JkIGluIHN5bmMgc2NoZW1hIik7CiAgICB9CiAgICBmdW5jdGlvbiB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgcmVzdWx0KSB7CiAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGtleXdvcmQgIiR7a2V5d29yZH0iIGZhaWxlZCB0byBjb21waWxlYCk7CiAgICAgIHJldHVybiBnZW4uc2NvcGVWYWx1ZSgia2V5d29yZCIsIHR5cGVvZiByZXN1bHQgPT0gImZ1bmN0aW9uIiA/IHsgcmVmOiByZXN1bHQgfSA6IHsgcmVmOiByZXN1bHQsIGNvZGU6ICgwLCBjb2RlZ2VuXzEuc3RyaW5naWZ5KShyZXN1bHQpIH0pOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRTY2hlbWFUeXBlKHNjaGVtYTIsIHNjaGVtYVR5cGUsIGFsbG93VW5kZWZpbmVkID0gZmFsc2UpIHsKICAgICAgcmV0dXJuICFzY2hlbWFUeXBlLmxlbmd0aCB8fCBzY2hlbWFUeXBlLnNvbWUoKHN0KSA9PiBzdCA9PT0gImFycmF5IiA/IEFycmF5LmlzQXJyYXkoc2NoZW1hMikgOiBzdCA9PT0gIm9iamVjdCIgPyBzY2hlbWEyICYmIHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHNjaGVtYTIpIDogdHlwZW9mIHNjaGVtYTIgPT0gc3QgfHwgYWxsb3dVbmRlZmluZWQgJiYgdHlwZW9mIHNjaGVtYTIgPT0gInVuZGVmaW5lZCIpOwogICAgfQogICAgZXhwb3J0czIudmFsaWRTY2hlbWFUeXBlID0gdmFsaWRTY2hlbWFUeXBlOwogICAgZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkVXNhZ2UoeyBzY2hlbWE6IHNjaGVtYTIsIG9wdHMsIHNlbGY6IHNlbGYyLCBlcnJTY2hlbWFQYXRoIH0sIGRlZiwga2V5d29yZCkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShkZWYua2V5d29yZCkgPyAhZGVmLmtleXdvcmQuaW5jbHVkZXMoa2V5d29yZCkgOiBkZWYua2V5d29yZCAhPT0ga2V5d29yZCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIH0KICAgICAgY29uc3QgZGVwcyA9IGRlZi5kZXBlbmRlbmNpZXM7CiAgICAgIGlmIChkZXBzID09PSBudWxsIHx8IGRlcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlcHMuc29tZSgoa3dkKSA9PiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYTIsIGt3ZCkpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJlbnQgc2NoZW1hIG11c3QgaGF2ZSBkZXBlbmRlbmNpZXMgb2YgJHtrZXl3b3JkfTogJHtkZXBzLmpvaW4oIiwiKX1gKTsKICAgICAgfQogICAgICBpZiAoZGVmLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgY29uc3QgdmFsaWQgPSBkZWYudmFsaWRhdGVTY2hlbWEoc2NoZW1hMltrZXl3b3JkXSk7CiAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgY29uc3QgbXNnID0gYGtleXdvcmQgIiR7a2V5d29yZH0iIHZhbHVlIGlzIGludmFsaWQgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSI6IGAgKyBzZWxmMi5lcnJvcnNUZXh0KGRlZi52YWxpZGF0ZVNjaGVtYS5lcnJvcnMpOwogICAgICAgICAgaWYgKG9wdHMudmFsaWRhdGVTY2hlbWEgPT09ICJsb2ciKQogICAgICAgICAgICBzZWxmMi5sb2dnZXIuZXJyb3IobXNnKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi52YWxpZGF0ZUtleXdvcmRVc2FnZSA9IHZhbGlkYXRlS2V5d29yZFVzYWdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9zdWJzY2hlbWEuanMKdmFyIHJlcXVpcmVfc3Vic2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL3N1YnNjaGVtYS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4cG9ydHMyLmV4dGVuZFN1YnNjaGVtYURhdGEgPSBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICBmdW5jdGlvbiBnZXRTdWJzY2hlbWEoaXQsIHsga2V5d29yZCwgc2NoZW1hUHJvcCwgc2NoZW1hOiBzY2hlbWEyLCBzY2hlbWFQYXRoLCBlcnJTY2hlbWFQYXRoLCB0b3BTY2hlbWFSZWYgfSkgewogICAgICBpZiAoa2V5d29yZCAhPT0gdm9pZCAwICYmIHNjaGVtYTIgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAia2V5d29yZCIgYW5kICJzY2hlbWEiIHBhc3NlZCwgb25seSBvbmUgYWxsb3dlZCcpOwogICAgICB9CiAgICAgIGlmIChrZXl3b3JkICE9PSB2b2lkIDApIHsKICAgICAgICBjb25zdCBzY2ggPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgcmV0dXJuIHNjaGVtYVByb3AgPT09IHZvaWQgMCA/IHsKICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgc2NoZW1hUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAke2l0LnNjaGVtYVBhdGh9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShrZXl3b3JkKX1gLAogICAgICAgICAgZXJyU2NoZW1hUGF0aDogYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWAKICAgICAgICB9IDogewogICAgICAgICAgc2NoZW1hOiBzY2hbc2NoZW1hUHJvcF0sCiAgICAgICAgICBzY2hlbWFQYXRoOiAoMCwgY29kZWdlbl8xLl8pYCR7aXQuc2NoZW1hUGF0aH0keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKGtleXdvcmQpfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoc2NoZW1hUHJvcCl9YCwKICAgICAgICAgIGVyclNjaGVtYVBhdGg6IGAke2l0LmVyclNjaGVtYVBhdGh9LyR7a2V5d29yZH0vJHsoMCwgdXRpbF8xLmVzY2FwZUZyYWdtZW50KShzY2hlbWFQcm9wKX1gCiAgICAgICAgfTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHNjaGVtYVBhdGggPT09IHZvaWQgMCB8fCBlcnJTY2hlbWFQYXRoID09PSB2b2lkIDAgfHwgdG9wU2NoZW1hUmVmID09PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignInNjaGVtYVBhdGgiLCAiZXJyU2NoZW1hUGF0aCIgYW5kICJ0b3BTY2hlbWFSZWYiIGFyZSByZXF1aXJlZCB3aXRoICJzY2hlbWEiJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzY2hlbWE6IHNjaGVtYTIsCiAgICAgICAgICBzY2hlbWFQYXRoLAogICAgICAgICAgdG9wU2NoZW1hUmVmLAogICAgICAgICAgZXJyU2NoZW1hUGF0aAogICAgICAgIH07CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKCdlaXRoZXIgImtleXdvcmQiIG9yICJzY2hlbWEiIG11c3QgYmUgcGFzc2VkJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSBnZXRTdWJzY2hlbWE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFEYXRhKHN1YnNjaGVtYSwgaXQsIHsgZGF0YVByb3AsIGRhdGFQcm9wVHlwZTogZHBUeXBlLCBkYXRhLCBkYXRhVHlwZXMsIHByb3BlcnR5TmFtZSB9KSB7CiAgICAgIGlmIChkYXRhICE9PSB2b2lkIDAgJiYgZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAiZGF0YSIgYW5kICJkYXRhUHJvcCIgcGFzc2VkLCBvbmx5IG9uZSBhbGxvd2VkJyk7CiAgICAgIH0KICAgICAgY29uc3QgeyBnZW4gfSA9IGl0OwogICAgICBpZiAoZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHsgZXJyb3JQYXRoLCBkYXRhUGF0aEFyciwgb3B0cyB9ID0gaXQ7CiAgICAgICAgY29uc3QgbmV4dERhdGEgPSBnZW4ubGV0KCJkYXRhIiwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LmRhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCl9YCwgdHJ1ZSk7CiAgICAgICAgZGF0YUNvbnRleHRQcm9wcyhuZXh0RGF0YSk7CiAgICAgICAgc3Vic2NoZW1hLmVycm9yUGF0aCA9ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShkYXRhUHJvcCwgZHBUeXBlLCBvcHRzLmpzUHJvcGVydHlTeW50YXgpfWA7CiAgICAgICAgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eSA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhUHJvcH1gOwogICAgICAgIHN1YnNjaGVtYS5kYXRhUGF0aEFyciA9IFsuLi5kYXRhUGF0aEFyciwgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eV07CiAgICAgIH0KICAgICAgaWYgKGRhdGEgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IG5leHREYXRhID0gZGF0YSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gZGF0YSA6IGdlbi5sZXQoImRhdGEiLCBkYXRhLCB0cnVlKTsKICAgICAgICBkYXRhQ29udGV4dFByb3BzKG5leHREYXRhKTsKICAgICAgICBpZiAocHJvcGVydHlOYW1lICE9PSB2b2lkIDApCiAgICAgICAgICBzdWJzY2hlbWEucHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICB9CiAgICAgIGlmIChkYXRhVHlwZXMpCiAgICAgICAgc3Vic2NoZW1hLmRhdGFUeXBlcyA9IGRhdGFUeXBlczsKICAgICAgZnVuY3Rpb24gZGF0YUNvbnRleHRQcm9wcyhfbmV4dERhdGEpIHsKICAgICAgICBzdWJzY2hlbWEuZGF0YSA9IF9uZXh0RGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMTsKICAgICAgICBzdWJzY2hlbWEuZGF0YVR5cGVzID0gW107CiAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHN1YnNjaGVtYS5wYXJlbnREYXRhID0gaXQuZGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YU5hbWVzID0gWy4uLml0LmRhdGFOYW1lcywgX25leHREYXRhXTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hRGF0YSA9IGV4dGVuZFN1YnNjaGVtYURhdGE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFNb2RlKHN1YnNjaGVtYSwgeyBqdGREaXNjcmltaW5hdG9yLCBqdGRNZXRhZGF0YSwgY29tcG9zaXRlUnVsZSwgY3JlYXRlRXJyb3JzLCBhbGxFcnJvcnMgfSkgewogICAgICBpZiAoY29tcG9zaXRlUnVsZSAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jb21wb3NpdGVSdWxlID0gY29tcG9zaXRlUnVsZTsKICAgICAgaWYgKGNyZWF0ZUVycm9ycyAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jcmVhdGVFcnJvcnMgPSBjcmVhdGVFcnJvcnM7CiAgICAgIGlmIChhbGxFcnJvcnMgIT09IHZvaWQgMCkKICAgICAgICBzdWJzY2hlbWEuYWxsRXJyb3JzID0gYWxsRXJyb3JzOwogICAgICBzdWJzY2hlbWEuanRkRGlzY3JpbWluYXRvciA9IGp0ZERpc2NyaW1pbmF0b3I7CiAgICAgIHN1YnNjaGVtYS5qdGRNZXRhZGF0YSA9IGp0ZE1ldGFkYXRhOwogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4dGVuZFN1YnNjaGVtYU1vZGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtZGVlcC1lcXVhbC1ucG0tMy4xLjMtNzkwZWRjZmNmNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcwp2YXIgcmVxdWlyZV9mYXN0X2RlZXBfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC1kZWVwLWVxdWFsLW5wbS0zLjEuMy03OTBlZGNmY2Y1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikgewogICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7CiAgICAgIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT0gIm9iamVjdCIgJiYgdHlwZW9mIGIgPT0gIm9iamVjdCIpIHsKICAgICAgICBpZiAoYS5jb25zdHJ1Y3RvciAhPT0gYi5jb25zdHJ1Y3RvcikgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBsZW5ndGgsIGksIGtleXM7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICAgIGxlbmd0aCA9IGEubGVuZ3RoOwogICAgICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFnczsKICAgICAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7CiAgICAgICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTsKICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7CiAgICAgICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkgewogICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07CiAgICAgICAgICBpZiAoIWVxdWFsKGFba2V5XSwgYltrZXldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbi1zY2hlbWEtdHJhdmVyc2UtbnBtLTEuMC4wLWZiMzY4NGY0ZjAtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS10cmF2ZXJzZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9qc29uX3NjaGVtYV90cmF2ZXJzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uLXNjaGVtYS10cmF2ZXJzZS1ucG0tMS4wLjAtZmIzNjg0ZjRmMC0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLXRyYXZlcnNlL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHRyYXZlcnNlID0gbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc2NoZW1hMiwgb3B0cywgY2IpIHsKICAgICAgaWYgKHR5cGVvZiBvcHRzID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjYiA9IG9wdHM7CiAgICAgICAgb3B0cyA9IHt9OwogICAgICB9CiAgICAgIGNiID0gb3B0cy5jYiB8fCBjYjsKICAgICAgdmFyIHByZSA9IHR5cGVvZiBjYiA9PSAiZnVuY3Rpb24iID8gY2IgOiBjYi5wcmUgfHwgZnVuY3Rpb24oKSB7CiAgICAgIH07CiAgICAgIHZhciBwb3N0ID0gY2IucG9zdCB8fCBmdW5jdGlvbigpIHsKICAgICAgfTsKICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwgIiIsIHNjaGVtYTIpOwogICAgfTsKICAgIHRyYXZlcnNlLmtleXdvcmRzID0gewogICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgIGl0ZW1zOiB0cnVlLAogICAgICBjb250YWluczogdHJ1ZSwKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgIHByb3BlcnR5TmFtZXM6IHRydWUsCiAgICAgIG5vdDogdHJ1ZSwKICAgICAgaWY6IHRydWUsCiAgICAgIHRoZW46IHRydWUsCiAgICAgIGVsc2U6IHRydWUKICAgIH07CiAgICB0cmF2ZXJzZS5hcnJheUtleXdvcmRzID0gewogICAgICBpdGVtczogdHJ1ZSwKICAgICAgYWxsT2Y6IHRydWUsCiAgICAgIGFueU9mOiB0cnVlLAogICAgICBvbmVPZjogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnByb3BzS2V5d29yZHMgPSB7CiAgICAgICRkZWZzOiB0cnVlLAogICAgICBkZWZpbml0aW9uczogdHJ1ZSwKICAgICAgcHJvcGVydGllczogdHJ1ZSwKICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgIGRlcGVuZGVuY2llczogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnNraXBLZXl3b3JkcyA9IHsKICAgICAgZGVmYXVsdDogdHJ1ZSwKICAgICAgZW51bTogdHJ1ZSwKICAgICAgY29uc3Q6IHRydWUsCiAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICBtYXhpbXVtOiB0cnVlLAogICAgICBtaW5pbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNYXhpbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNaW5pbXVtOiB0cnVlLAogICAgICBtdWx0aXBsZU9mOiB0cnVlLAogICAgICBtYXhMZW5ndGg6IHRydWUsCiAgICAgIG1pbkxlbmd0aDogdHJ1ZSwKICAgICAgcGF0dGVybjogdHJ1ZSwKICAgICAgZm9ybWF0OiB0cnVlLAogICAgICBtYXhJdGVtczogdHJ1ZSwKICAgICAgbWluSXRlbXM6IHRydWUsCiAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLAogICAgICBtYXhQcm9wZXJ0aWVzOiB0cnVlLAogICAgICBtaW5Qcm9wZXJ0aWVzOiB0cnVlCiAgICB9OwogICAgZnVuY3Rpb24gX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCkgewogICAgICBpZiAoc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEyKSkgewogICAgICAgIHByZShzY2hlbWEyLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hMikgewogICAgICAgICAgdmFyIHNjaCA9IHNjaGVtYTJba2V5XTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgaWYgKGtleSBpbiB0cmF2ZXJzZS5hcnJheUtleXdvcmRzKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbaV0sIGpzb25QdHIgKyAiLyIgKyBrZXkgKyAiLyIgKyBpLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIsIGkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5wcm9wc0tleXdvcmRzKSB7CiAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gc2NoKQogICAgICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW3Byb3BdLCBqc29uUHRyICsgIi8iICsga2V5ICsgIi8iICsgZXNjYXBlSnNvblB0cihwcm9wKSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEyLCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gdHJhdmVyc2Uua2V5d29yZHMgfHwgb3B0cy5hbGxLZXlzICYmICEoa2V5IGluIHRyYXZlcnNlLnNraXBLZXl3b3JkcykpIHsKICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoLCBqc29uUHRyICsgIi8iICsga2V5LCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwb3N0KHNjaGVtYTIsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUHRyKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZSgvfi9nLCAifjAiKS5yZXBsYWNlKC9cLy9nLCAifjEiKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVzb2x2ZS5qcwp2YXIgcmVxdWlyZV9yZXNvbHZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3Jlc29sdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmdldFNjaGVtYVJlZnMgPSBleHBvcnRzMi5yZXNvbHZlVXJsID0gZXhwb3J0czIubm9ybWFsaXplSWQgPSBleHBvcnRzMi5fZ2V0RnVsbFBhdGggPSBleHBvcnRzMi5nZXRGdWxsUGF0aCA9IGV4cG9ydHMyLmlubGluZVJlZiA9IHZvaWQgMDsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICB2YXIgdHJhdmVyc2UgPSByZXF1aXJlX2pzb25fc2NoZW1hX3RyYXZlcnNlKCk7CiAgICB2YXIgU0lNUExFX0lOTElORUQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJ0eXBlIiwKICAgICAgImZvcm1hdCIsCiAgICAgICJwYXR0ZXJuIiwKICAgICAgIm1heExlbmd0aCIsCiAgICAgICJtaW5MZW5ndGgiLAogICAgICAibWF4UHJvcGVydGllcyIsCiAgICAgICJtaW5Qcm9wZXJ0aWVzIiwKICAgICAgIm1heEl0ZW1zIiwKICAgICAgIm1pbkl0ZW1zIiwKICAgICAgIm1heGltdW0iLAogICAgICAibWluaW11bSIsCiAgICAgICJ1bmlxdWVJdGVtcyIsCiAgICAgICJtdWx0aXBsZU9mIiwKICAgICAgInJlcXVpcmVkIiwKICAgICAgImVudW0iLAogICAgICAiY29uc3QiCiAgICBdKTsKICAgIGZ1bmN0aW9uIGlubGluZVJlZihzY2hlbWEyLCBsaW1pdCA9IHRydWUpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgaWYgKGxpbWl0ID09PSB0cnVlKQogICAgICAgIHJldHVybiAhaGFzUmVmKHNjaGVtYTIpOwogICAgICBpZiAoIWxpbWl0KQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIGNvdW50S2V5cyhzY2hlbWEyKSA8PSBsaW1pdDsKICAgIH0KICAgIGV4cG9ydHMyLmlubGluZVJlZiA9IGlubGluZVJlZjsKICAgIHZhciBSRUZfS0VZV09SRFMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICIkcmVmIiwKICAgICAgIiRyZWN1cnNpdmVSZWYiLAogICAgICAiJHJlY3Vyc2l2ZUFuY2hvciIsCiAgICAgICIkZHluYW1pY1JlZiIsCiAgICAgICIkZHluYW1pY0FuY2hvciIKICAgIF0pOwogICAgZnVuY3Rpb24gaGFzUmVmKHNjaGVtYTIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmIChSRUZfS0VZV09SRFMuaGFzKGtleSkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2tleV07CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoKSAmJiBzY2guc29tZShoYXNSZWYpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIgJiYgaGFzUmVmKHNjaCkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmdW5jdGlvbiBjb3VudEtleXMoc2NoZW1hMikgewogICAgICBsZXQgY291bnQgPSAwOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIiRyZWYiKQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICAgIGNvdW50Kys7CiAgICAgICAgaWYgKFNJTVBMRV9JTkxJTkVELmhhcyhrZXkpKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyW2tleV0gPT0gIm9iamVjdCIpIHsKICAgICAgICAgICgwLCB1dGlsXzEuZWFjaEl0ZW0pKHNjaGVtYTJba2V5XSwgKHNjaCkgPT4gY291bnQgKz0gY291bnRLZXlzKHNjaCkpOwogICAgICAgIH0KICAgICAgICBpZiAoY291bnQgPT09IEluZmluaXR5KQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICB9CiAgICAgIHJldHVybiBjb3VudDsKICAgIH0KICAgIGZ1bmN0aW9uIGdldEZ1bGxQYXRoKHJlc29sdmVyLCBpZCA9ICIiLCBub3JtYWxpemUpIHsKICAgICAgaWYgKG5vcm1hbGl6ZSAhPT0gZmFsc2UpCiAgICAgICAgaWQgPSBub3JtYWxpemVJZChpZCk7CiAgICAgIGNvbnN0IHAgPSByZXNvbHZlci5wYXJzZShpZCk7CiAgICAgIHJldHVybiBfZ2V0RnVsbFBhdGgocmVzb2x2ZXIsIHApOwogICAgfQogICAgZXhwb3J0czIuZ2V0RnVsbFBhdGggPSBnZXRGdWxsUGF0aDsKICAgIGZ1bmN0aW9uIF9nZXRGdWxsUGF0aChyZXNvbHZlciwgcCkgewogICAgICBjb25zdCBzZXJpYWxpemVkID0gcmVzb2x2ZXIuc2VyaWFsaXplKHApOwogICAgICByZXR1cm4gc2VyaWFsaXplZC5zcGxpdCgiIyIpWzBdICsgIiMiOwogICAgfQogICAgZXhwb3J0czIuX2dldEZ1bGxQYXRoID0gX2dldEZ1bGxQYXRoOwogICAgdmFyIFRSQUlMSU5HX1NMQVNIX0hBU0ggPSAvI1wvPyQvOwogICAgZnVuY3Rpb24gbm9ybWFsaXplSWQoaWQpIHsKICAgICAgcmV0dXJuIGlkID8gaWQucmVwbGFjZShUUkFJTElOR19TTEFTSF9IQVNILCAiIikgOiAiIjsKICAgIH0KICAgIGV4cG9ydHMyLm5vcm1hbGl6ZUlkID0gbm9ybWFsaXplSWQ7CiAgICBmdW5jdGlvbiByZXNvbHZlVXJsKHJlc29sdmVyLCBiYXNlSWQsIGlkKSB7CiAgICAgIGlkID0gbm9ybWFsaXplSWQoaWQpOwogICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShiYXNlSWQsIGlkKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlc29sdmVVcmwgPSByZXNvbHZlVXJsOwogICAgdmFyIEFOQ0hPUiA9IC9eW2Etel9dWy1hLXowLTkuX10qJC9pOwogICAgZnVuY3Rpb24gZ2V0U2NoZW1hUmVmcyhzY2hlbWEyLCBiYXNlSWQpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4ge307CiAgICAgIGNvbnN0IHsgc2NoZW1hSWQsIHVyaVJlc29sdmVyIH0gPSB0aGlzLm9wdHM7CiAgICAgIGNvbnN0IHNjaElkID0gbm9ybWFsaXplSWQoc2NoZW1hMltzY2hlbWFJZF0gfHwgYmFzZUlkKTsKICAgICAgY29uc3QgYmFzZUlkcyA9IHsgIiI6IHNjaElkIH07CiAgICAgIGNvbnN0IHBhdGhQcmVmaXggPSBnZXRGdWxsUGF0aCh1cmlSZXNvbHZlciwgc2NoSWQsIGZhbHNlKTsKICAgICAgY29uc3QgbG9jYWxSZWZzID0ge307CiAgICAgIGNvbnN0IHNjaGVtYVJlZnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB0cmF2ZXJzZShzY2hlbWEyLCB7IGFsbEtleXM6IHRydWUgfSwgKHNjaCwganNvblB0ciwgXywgcGFyZW50SnNvblB0cikgPT4gewogICAgICAgIGlmIChwYXJlbnRKc29uUHRyID09PSB2b2lkIDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoUHJlZml4ICsganNvblB0cjsKICAgICAgICBsZXQgaW5uZXJCYXNlSWQgPSBiYXNlSWRzW3BhcmVudEpzb25QdHJdOwogICAgICAgIGlmICh0eXBlb2Ygc2NoW3NjaGVtYUlkXSA9PSAic3RyaW5nIikKICAgICAgICAgIGlubmVyQmFzZUlkID0gYWRkUmVmLmNhbGwodGhpcywgc2NoW3NjaGVtYUlkXSk7CiAgICAgICAgYWRkQW5jaG9yLmNhbGwodGhpcywgc2NoLiRhbmNob3IpOwogICAgICAgIGFkZEFuY2hvci5jYWxsKHRoaXMsIHNjaC4kZHluYW1pY0FuY2hvcik7CiAgICAgICAgYmFzZUlkc1tqc29uUHRyXSA9IGlubmVyQmFzZUlkOwogICAgICAgIGZ1bmN0aW9uIGFkZFJlZihyZWYpIHsKICAgICAgICAgIGNvbnN0IF9yZXNvbHZlID0gdGhpcy5vcHRzLnVyaVJlc29sdmVyLnJlc29sdmU7CiAgICAgICAgICByZWYgPSBub3JtYWxpemVJZChpbm5lckJhc2VJZCA/IF9yZXNvbHZlKGlubmVyQmFzZUlkLCByZWYpIDogcmVmKTsKICAgICAgICAgIGlmIChzY2hlbWFSZWZzLmhhcyhyZWYpKQogICAgICAgICAgICB0aHJvdyBhbWJpZ3VvcyhyZWYpOwogICAgICAgICAgc2NoZW1hUmVmcy5hZGQocmVmKTsKICAgICAgICAgIGxldCBzY2hPclJlZiA9IHRoaXMucmVmc1tyZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAic3RyaW5nIikKICAgICAgICAgICAgc2NoT3JSZWYgPSB0aGlzLnJlZnNbc2NoT3JSZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAib2JqZWN0IikgewogICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgc2NoT3JSZWYuc2NoZW1hLCByZWYpOwogICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG5vcm1hbGl6ZUlkKGZ1bGxQYXRoKSkgewogICAgICAgICAgICBpZiAocmVmWzBdID09PSAiIyIpIHsKICAgICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgbG9jYWxSZWZzW3JlZl0sIHJlZik7CiAgICAgICAgICAgICAgbG9jYWxSZWZzW3JlZl0gPSBzY2g7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy5yZWZzW3JlZl0gPSBmdWxsUGF0aDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlZjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkQW5jaG9yKGFuY2hvcikgewogICAgICAgICAgaWYgKHR5cGVvZiBhbmNob3IgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKCFBTkNIT1IudGVzdChhbmNob3IpKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhbmNob3IgIiR7YW5jaG9yfSJgKTsKICAgICAgICAgICAgYWRkUmVmLmNhbGwodGhpcywgYCMke2FuY2hvcn1gKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gbG9jYWxSZWZzOwogICAgICBmdW5jdGlvbiBjaGVja0FtYmlndW9zUmVmKHNjaDEsIHNjaDIsIHJlZikgewogICAgICAgIGlmIChzY2gyICE9PSB2b2lkIDAgJiYgIWVxdWFsKHNjaDEsIHNjaDIpKQogICAgICAgICAgdGhyb3cgYW1iaWd1b3MocmVmKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhbWJpZ3VvcyhyZWYpIHsKICAgICAgICByZXR1cm4gbmV3IEVycm9yKGByZWZlcmVuY2UgIiR7cmVmfSIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWFgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0U2NoZW1hUmVmcyA9IGdldFNjaGVtYVJlZnM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzCnZhciByZXF1aXJlX3ZhbGlkYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5nZXREYXRhID0gZXhwb3J0czIuS2V5d29yZEN4dCA9IGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdm9pZCAwOwogICAgdmFyIGJvb2xTY2hlbWFfMSA9IHJlcXVpcmVfYm9vbFNjaGVtYSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgYXBwbGljYWJpbGl0eV8xID0gcmVxdWlyZV9hcHBsaWNhYmlsaXR5KCk7CiAgICB2YXIgZGF0YVR5cGVfMiA9IHJlcXVpcmVfZGF0YVR5cGUoKTsKICAgIHZhciBkZWZhdWx0c18xID0gcmVxdWlyZV9kZWZhdWx0cygpOwogICAgdmFyIGtleXdvcmRfMSA9IHJlcXVpcmVfa2V5d29yZCgpOwogICAgdmFyIHN1YnNjaGVtYV8xID0gcmVxdWlyZV9zdWJzY2hlbWEoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25Db2RlKGl0KSB7CiAgICAgIGlmIChpc1NjaGVtYU9iaihpdCkpIHsKICAgICAgICBjaGVja0tleXdvcmRzKGl0KTsKICAgICAgICBpZiAoc2NoZW1hQ3h0SGFzUnVsZXMoaXQpKSB7CiAgICAgICAgICB0b3BTY2hlbWFPYmpDb2RlKGl0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFsaWRhdGVGdW5jdGlvbihpdCwgKCkgPT4gKDAsIGJvb2xTY2hlbWFfMS50b3BCb29sT3JFbXB0eVNjaGVtYSkoaXQpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdmFsaWRhdGVGdW5jdGlvbkNvZGU7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uKHsgZ2VuLCB2YWxpZGF0ZU5hbWUsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hRW52LCBvcHRzIH0sIGJvZHkpIHsKICAgICAgaWYgKG9wdHMuY29kZS5lczUpIHsKICAgICAgICBnZW4uZnVuYyh2YWxpZGF0ZU5hbWUsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCJ1c2Ugc3RyaWN0IjsgJHtmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpfWApOwogICAgICAgICAgZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKTsKICAgICAgICAgIGdlbi5jb2RlKGJvZHkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5mdW5jKHZhbGlkYXRlTmFtZSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5kYXRhfSwgJHtkZXN0cnVjdHVyZVZhbEN4dChvcHRzKX1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiBnZW4uY29kZShmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpKS5jb2RlKGJvZHkpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHQob3B0cykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB7JHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofT0iIiwgJHtuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX0sICR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfT0ke25hbWVzXzEuZGVmYXVsdC5kYXRhfSR7b3B0cy5keW5hbWljUmVmID8gKDAsIGNvZGVnZW5fMS5fKWAsICR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfT17fWAgOiBjb2RlZ2VuXzEubmlsfX09e31gOwogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKSB7CiAgICAgIGdlbi5pZihuYW1lc18xLmRlZmF1bHQudmFsQ3h0LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH0uJHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGEsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudmFsQ3h0fS4ke25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhfWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX1gKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfWApOwogICAgICAgIGlmIChvcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfWApOwogICAgICB9LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCIiYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucm9vdERhdGEsIG5hbWVzXzEuZGVmYXVsdC5kYXRhKTsKICAgICAgICBpZiAob3B0cy5keW5hbWljUmVmKQogICAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuZHluYW1pY0FuY2hvcnMsICgwLCBjb2RlZ2VuXzEuXylge31gKTsKICAgICAgfSk7CiAgICB9CiAgICBmdW5jdGlvbiB0b3BTY2hlbWFPYmpDb2RlKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzLCBnZW4gfSA9IGl0OwogICAgICB2YWxpZGF0ZUZ1bmN0aW9uKGl0LCAoKSA9PiB7CiAgICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgJiYgc2NoZW1hMi4kY29tbWVudCkKICAgICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgICBjaGVja05vRGVmYXVsdChpdCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQudkVycm9ycywgbnVsbCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAwKTsKICAgICAgICBpZiAob3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJlc2V0RXZhbHVhdGVkKGl0KTsKICAgICAgICB0eXBlQW5kS2V5d29yZHMoaXQpOwogICAgICAgIHJldHVyblJlc3VsdHMoaXQpOwogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZnVuY3Rpb24gcmVzZXRFdmFsdWF0ZWQoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSB9ID0gaXQ7CiAgICAgIGl0LmV2YWx1YXRlZCA9IGdlbi5jb25zdCgiZXZhbHVhdGVkIiwgKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXZhbHVhdGVkYCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljUHJvcHNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9LnByb3BzYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljSXRlbXNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9Lml0ZW1zYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICB9CiAgICBmdW5jdGlvbiBmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpIHsKICAgICAgY29uc3Qgc2NoSWQgPSB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiBzY2hlbWEyW29wdHMuc2NoZW1hSWRdOwogICAgICByZXR1cm4gc2NoSWQgJiYgKG9wdHMuY29kZS5zb3VyY2UgfHwgb3B0cy5jb2RlLnByb2Nlc3MpID8gKDAsIGNvZGVnZW5fMS5fKWAvKiMgc291cmNlVVJMPSR7c2NoSWR9ICovYCA6IGNvZGVnZW5fMS5uaWw7CiAgICB9CiAgICBmdW5jdGlvbiBzdWJzY2hlbWFDb2RlKGl0LCB2YWxpZCkgewogICAgICBpZiAoaXNTY2hlbWFPYmooaXQpKSB7CiAgICAgICAgY2hlY2tLZXl3b3JkcyhpdCk7CiAgICAgICAgaWYgKHNjaGVtYUN4dEhhc1J1bGVzKGl0KSkgewogICAgICAgICAgc3ViU2NoZW1hT2JqQ29kZShpdCwgdmFsaWQpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgICAoMCwgYm9vbFNjaGVtYV8xLmJvb2xPckVtcHR5U2NoZW1hKShpdCwgdmFsaWQpOwogICAgfQogICAgZnVuY3Rpb24gc2NoZW1hQ3h0SGFzUnVsZXMoeyBzY2hlbWE6IHNjaGVtYTIsIHNlbGY6IHNlbGYyIH0pIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gIXNjaGVtYTI7CiAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYTIpCiAgICAgICAgaWYgKHNlbGYyLlJVTEVTLmFsbFtrZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU2NoZW1hT2JqKGl0KSB7CiAgICAgIHJldHVybiB0eXBlb2YgaXQuc2NoZW1hICE9ICJib29sZWFuIjsKICAgIH0KICAgIGZ1bmN0aW9uIHN1YlNjaGVtYU9iakNvZGUoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBnZW4sIG9wdHMgfSA9IGl0OwogICAgICBpZiAob3B0cy4kY29tbWVudCAmJiBzY2hlbWEyLiRjb21tZW50KQogICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgdXBkYXRlQ29udGV4dChpdCk7CiAgICAgIGNoZWNrQXN5bmNTY2hlbWEoaXQpOwogICAgICBjb25zdCBlcnJzQ291bnQgPSBnZW4uY29uc3QoIl9lcnJzIiwgbmFtZXNfMS5kZWZhdWx0LmVycm9ycyk7CiAgICAgIHR5cGVBbmRLZXl3b3JkcyhpdCwgZXJyc0NvdW50KTsKICAgICAgZ2VuLnZhcih2YWxpZCwgKDAsIGNvZGVnZW5fMS5fKWAke2VycnNDb3VudH0gPT09ICR7bmFtZXNfMS5kZWZhdWx0LmVycm9yc31gKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZHMoaXQpIHsKICAgICAgKDAsIHV0aWxfMS5jaGVja1Vua25vd25SdWxlcykoaXQpOwogICAgICBjaGVja1JlZnNBbmRLZXl3b3JkcyhpdCk7CiAgICB9CiAgICBmdW5jdGlvbiB0eXBlQW5kS2V5d29yZHMoaXQsIGVycnNDb3VudCkgewogICAgICBpZiAoaXQub3B0cy5qdGQpCiAgICAgICAgcmV0dXJuIHNjaGVtYUtleXdvcmRzKGl0LCBbXSwgZmFsc2UsIGVycnNDb3VudCk7CiAgICAgIGNvbnN0IHR5cGVzID0gKDAsIGRhdGFUeXBlXzEuZ2V0U2NoZW1hVHlwZXMpKGl0LnNjaGVtYSk7CiAgICAgIGNvbnN0IGNoZWNrZWRUeXBlcyA9ICgwLCBkYXRhVHlwZV8xLmNvZXJjZUFuZENoZWNrRGF0YVR5cGUpKGl0LCB0eXBlcyk7CiAgICAgIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgIWNoZWNrZWRUeXBlcywgZXJyc0NvdW50KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrUmVmc0FuZEtleXdvcmRzKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgIGlmIChzY2hlbWEyLiRyZWYgJiYgb3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgJiYgKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgc2VsZjIuUlVMRVMpKSB7CiAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4oYCRyZWY6IGtleXdvcmRzIGlnbm9yZWQgaW4gc2NoZW1hIGF0IHBhdGggIiR7ZXJyU2NoZW1hUGF0aH0iYCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrTm9EZWZhdWx0KGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIuZGVmYXVsdCAhPT0gdm9pZCAwICYmIG9wdHMudXNlRGVmYXVsdHMgJiYgb3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICJkZWZhdWx0IGlzIGlnbm9yZWQgaW4gdGhlIHNjaGVtYSByb290Iik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHQoaXQpIHsKICAgICAgY29uc3Qgc2NoSWQgPSBpdC5zY2hlbWFbaXQub3B0cy5zY2hlbWFJZF07CiAgICAgIGlmIChzY2hJZCkKICAgICAgICBpdC5iYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGl0LmJhc2VJZCwgc2NoSWQpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY1NjaGVtYShpdCkgewogICAgICBpZiAoaXQuc2NoZW1hLiRhc3luYyAmJiAhaXQuc2NoZW1hRW52LiRhc3luYykKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIHNjaGVtYSBpbiBzeW5jIHNjaGVtYSIpOwogICAgfQogICAgZnVuY3Rpb24gY29tbWVudEtleXdvcmQoeyBnZW4sIHNjaGVtYUVudiwgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzIH0pIHsKICAgICAgY29uc3QgbXNnID0gc2NoZW1hMi4kY29tbWVudDsKICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgPT09IHRydWUpIHsKICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnNlbGZ9LmxvZ2dlci5sb2coJHttc2d9KWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLiRjb21tZW50ID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjb25zdCBzY2hlbWFQYXRoID0gKDAsIGNvZGVnZW5fMS5zdHIpYCR7ZXJyU2NoZW1hUGF0aH0vJGNvbW1lbnRgOwogICAgICAgIGNvbnN0IHJvb3ROYW1lID0gZ2VuLnNjb3BlVmFsdWUoInJvb3QiLCB7IHJlZjogc2NoZW1hRW52LnJvb3QgfSk7CiAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5zZWxmfS5vcHRzLiRjb21tZW50KCR7bXNnfSwgJHtzY2hlbWFQYXRofSwgJHtyb290TmFtZX0uc2NoZW1hKWApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5SZXN1bHRzKGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFFbnYsIHZhbGlkYXRlTmFtZSwgVmFsaWRhdGlvbkVycm9yLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5lcnJvcnN9ID09PSAwYCwgKCkgPT4gZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSksICgpID0+IGdlbi50aHJvdygoMCwgY29kZWdlbl8xLl8pYG5ldyAke1ZhbGlkYXRpb25FcnJvcn0oJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30pYCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXJyb3JzYCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICAgIGlmIChvcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgYXNzaWduRXZhbHVhdGVkKGl0KTsKICAgICAgICBnZW4ucmV0dXJuKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gMGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhc3NpZ25FdmFsdWF0ZWQoeyBnZW4sIGV2YWx1YXRlZCwgcHJvcHMsIGl0ZW1zIH0pIHsKICAgICAgaWYgKHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5wcm9wc2AsIHByb3BzKTsKICAgICAgaWYgKGl0ZW1zIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5pdGVtc2AsIGl0ZW1zKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgdHlwZUVycm9ycywgZXJyc0NvdW50KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGFsbEVycm9ycywgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICBjb25zdCB7IFJVTEVTIH0gPSBzZWxmMjsKICAgICAgaWYgKHNjaGVtYTIuJHJlZiAmJiAob3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgfHwgISgwLCB1dGlsXzEuc2NoZW1hSGFzUnVsZXNCdXRSZWYpKHNjaGVtYTIsIFJVTEVTKSkpIHsKICAgICAgICBnZW4uYmxvY2soKCkgPT4ga2V5d29yZENvZGUoaXQsICIkcmVmIiwgUlVMRVMuYWxsLiRyZWYuZGVmaW5pdGlvbikpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoIW9wdHMuanRkKQogICAgICAgIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIFJVTEVTLnJ1bGVzKQogICAgICAgICAgZ3JvdXBLZXl3b3Jkcyhncm91cCk7CiAgICAgICAgZ3JvdXBLZXl3b3JkcyhSVUxFUy5wb3N0KTsKICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGdyb3VwS2V5d29yZHMoZ3JvdXApIHsKICAgICAgICBpZiAoISgwLCBhcHBsaWNhYmlsaXR5XzEuc2hvdWxkVXNlR3JvdXApKHNjaGVtYTIsIGdyb3VwKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBpZiAoZ3JvdXAudHlwZSkgewogICAgICAgICAgZ2VuLmlmKCgwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGUpKGdyb3VwLnR5cGUsIGRhdGEsIG9wdHMuc3RyaWN0TnVtYmVycykpOwogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgICBpZiAodHlwZXMubGVuZ3RoID09PSAxICYmIHR5cGVzWzBdID09PSBncm91cC50eXBlICYmIHR5cGVFcnJvcnMpIHsKICAgICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICAgICAgKDAsIGRhdGFUeXBlXzIucmVwb3J0VHlwZUVycm9yKShpdCk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgfQogICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gJHtlcnJzQ291bnQgfHwgMH1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBvcHRzOiB7IHVzZURlZmF1bHRzIH0gfSA9IGl0OwogICAgICBpZiAodXNlRGVmYXVsdHMpCiAgICAgICAgKDAsIGRlZmF1bHRzXzEuYXNzaWduRGVmYXVsdHMpKGl0LCBncm91cC50eXBlKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgZ3JvdXAucnVsZXMpIHsKICAgICAgICAgIGlmICgoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKHNjaGVtYTIsIHJ1bGUpKSB7CiAgICAgICAgICAgIGtleXdvcmRDb2RlKGl0LCBydWxlLmtleXdvcmQsIHJ1bGUuZGVmaW5pdGlvbiwgZ3JvdXAudHlwZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmIChpdC5zY2hlbWFFbnYubWV0YSB8fCAhaXQub3B0cy5zdHJpY3RUeXBlcykKICAgICAgICByZXR1cm47CiAgICAgIGNoZWNrQ29udGV4dFR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGlmICghaXQub3B0cy5hbGxvd1VuaW9uVHlwZXMpCiAgICAgICAgY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGNoZWNrS2V5d29yZFR5cGVzKGl0LCBpdC5kYXRhVHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tDb250ZXh0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmICghdHlwZXMubGVuZ3RoKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKCFpdC5kYXRhVHlwZXMubGVuZ3RoKSB7CiAgICAgICAgaXQuZGF0YVR5cGVzID0gdHlwZXM7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHR5cGVzLmZvckVhY2goKHQpID0+IHsKICAgICAgICBpZiAoIWluY2x1ZGVzVHlwZShpdC5kYXRhVHlwZXMsIHQpKSB7CiAgICAgICAgICBzdHJpY3RUeXBlc0Vycm9yKGl0LCBgdHlwZSAiJHt0fSIgbm90IGFsbG93ZWQgYnkgY29udGV4dCAiJHtpdC5kYXRhVHlwZXMuam9pbigiLCIpfSJgKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBuYXJyb3dTY2hlbWFUeXBlcyhpdCwgdHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0cykgewogICAgICBpZiAodHMubGVuZ3RoID4gMSAmJiAhKHRzLmxlbmd0aCA9PT0gMiAmJiB0cy5pbmNsdWRlcygibnVsbCIpKSkgewogICAgICAgIHN0cmljdFR5cGVzRXJyb3IoaXQsICJ1c2UgYWxsb3dVbmlvblR5cGVzIHRvIGFsbG93IHVuaW9uIHR5cGUga2V5d29yZCIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBjaGVja0tleXdvcmRUeXBlcyhpdCwgdHMpIHsKICAgICAgY29uc3QgcnVsZXMgPSBpdC5zZWxmLlJVTEVTLmFsbDsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIHJ1bGVzKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHJ1bGVzW2tleXdvcmRdOwogICAgICAgIGlmICh0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiAmJiAoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKGl0LnNjaGVtYSwgcnVsZSkpIHsKICAgICAgICAgIGNvbnN0IHsgdHlwZTogdHlwZTIgfSA9IHJ1bGUuZGVmaW5pdGlvbjsKICAgICAgICAgIGlmICh0eXBlMi5sZW5ndGggJiYgIXR5cGUyLnNvbWUoKHQpID0+IGhhc0FwcGxpY2FibGVUeXBlKHRzLCB0KSkpIHsKICAgICAgICAgICAgc3RyaWN0VHlwZXNFcnJvcihpdCwgYG1pc3NpbmcgdHlwZSAiJHt0eXBlMi5qb2luKCIsIil9IiBmb3Iga2V5d29yZCAiJHtrZXl3b3JkfSJgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGhhc0FwcGxpY2FibGVUeXBlKHNjaFRzLCBrd2RUKSB7CiAgICAgIHJldHVybiBzY2hUcy5pbmNsdWRlcyhrd2RUKSB8fCBrd2RUID09PSAibnVtYmVyIiAmJiBzY2hUcy5pbmNsdWRlcygiaW50ZWdlciIpOwogICAgfQogICAgZnVuY3Rpb24gaW5jbHVkZXNUeXBlKHRzLCB0KSB7CiAgICAgIHJldHVybiB0cy5pbmNsdWRlcyh0KSB8fCB0ID09PSAiaW50ZWdlciIgJiYgdHMuaW5jbHVkZXMoIm51bWJlciIpOwogICAgfQogICAgZnVuY3Rpb24gbmFycm93U2NoZW1hVHlwZXMoaXQsIHdpdGhUeXBlcykgewogICAgICBjb25zdCB0cyA9IFtdOwogICAgICBmb3IgKGNvbnN0IHQgb2YgaXQuZGF0YVR5cGVzKSB7CiAgICAgICAgaWYgKGluY2x1ZGVzVHlwZSh3aXRoVHlwZXMsIHQpKQogICAgICAgICAgdHMucHVzaCh0KTsKICAgICAgICBlbHNlIGlmICh3aXRoVHlwZXMuaW5jbHVkZXMoImludGVnZXIiKSAmJiB0ID09PSAibnVtYmVyIikKICAgICAgICAgIHRzLnB1c2goImludGVnZXIiKTsKICAgICAgfQogICAgICBpdC5kYXRhVHlwZXMgPSB0czsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmljdFR5cGVzRXJyb3IoaXQsIG1zZykgewogICAgICBjb25zdCBzY2hlbWFQYXRoID0gaXQuc2NoZW1hRW52LmJhc2VJZCArIGl0LmVyclNjaGVtYVBhdGg7CiAgICAgIG1zZyArPSBgIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0VHlwZXMpYDsKICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBtc2csIGl0Lm9wdHMuc3RyaWN0VHlwZXMpOwogICAgfQogICAgdmFyIEtleXdvcmRDeHQgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGl0LCBkZWYsIGtleXdvcmQpIHsKICAgICAgICAoMCwga2V5d29yZF8xLnZhbGlkYXRlS2V5d29yZFVzYWdlKShpdCwgZGVmLCBrZXl3b3JkKTsKICAgICAgICB0aGlzLmdlbiA9IGl0LmdlbjsKICAgICAgICB0aGlzLmFsbEVycm9ycyA9IGl0LmFsbEVycm9yczsKICAgICAgICB0aGlzLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgIHRoaXMuZGF0YSA9IGl0LmRhdGE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgdGhpcy4kZGF0YSA9IGRlZi4kZGF0YSAmJiBpdC5vcHRzLiRkYXRhICYmIHRoaXMuc2NoZW1hICYmIHRoaXMuc2NoZW1hLiRkYXRhOwogICAgICAgIHRoaXMuc2NoZW1hVmFsdWUgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgdGhpcy5zY2hlbWEsIGtleXdvcmQsIHRoaXMuJGRhdGEpOwogICAgICAgIHRoaXMuc2NoZW1hVHlwZSA9IGRlZi5zY2hlbWFUeXBlOwogICAgICAgIHRoaXMucGFyZW50U2NoZW1hID0gaXQuc2NoZW1hOwogICAgICAgIHRoaXMucGFyYW1zID0ge307CiAgICAgICAgdGhpcy5pdCA9IGl0OwogICAgICAgIHRoaXMuZGVmID0gZGVmOwogICAgICAgIGlmICh0aGlzLiRkYXRhKSB7CiAgICAgICAgICB0aGlzLnNjaGVtYUNvZGUgPSBpdC5nZW4uY29uc3QoInZTY2hlbWEiLCBnZXREYXRhKHRoaXMuJGRhdGEsIGl0KSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc2NoZW1hQ29kZSA9IHRoaXMuc2NoZW1hVmFsdWU7CiAgICAgICAgICBpZiAoISgwLCBrZXl3b3JkXzEudmFsaWRTY2hlbWFUeXBlKSh0aGlzLnNjaGVtYSwgZGVmLnNjaGVtYVR5cGUsIGRlZi5hbGxvd1VuZGVmaW5lZCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2tleXdvcmR9IHZhbHVlIG11c3QgYmUgJHtKU09OLnN0cmluZ2lmeShkZWYuc2NoZW1hVHlwZSl9YCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgiY29kZSIgaW4gZGVmID8gZGVmLnRyYWNrRXJyb3JzIDogZGVmLmVycm9ycyAhPT0gZmFsc2UpIHsKICAgICAgICAgIHRoaXMuZXJyc0NvdW50ID0gaXQuZ2VuLmNvbnN0KCJfZXJycyIsIG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXN1bHQoY29uZGl0aW9uLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKSB7CiAgICAgICAgdGhpcy5mYWlsUmVzdWx0KCgwLCBjb2RlZ2VuXzEubm90KShjb25kaXRpb24pLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsUmVzdWx0KGNvbmRpdGlvbiwgc3VjY2Vzc0FjdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZ2VuLmlmKGNvbmRpdGlvbik7CiAgICAgICAgaWYgKGZhaWxBY3Rpb24pCiAgICAgICAgICBmYWlsQWN0aW9uKCk7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgIGlmIChzdWNjZXNzQWN0aW9uKSB7CiAgICAgICAgICB0aGlzLmdlbi5lbHNlKCk7CiAgICAgICAgICBzdWNjZXNzQWN0aW9uKCk7CiAgICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICAgIHRoaXMuZ2VuLmVuZElmKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICh0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uZW5kSWYoKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5nZW4uZWxzZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBwYXNzKGNvbmRpdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZmFpbFJlc3VsdCgoMCwgY29kZWdlbl8xLm5vdCkoY29uZGl0aW9uKSwgdm9pZCAwLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsKGNvbmRpdGlvbikgewogICAgICAgIGlmIChjb25kaXRpb24gPT09IHZvaWQgMCkgewogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgICAgaWYgKCF0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uaWYoZmFsc2UpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLmdlbi5pZihjb25kaXRpb24pOwogICAgICAgIHRoaXMuZXJyb3IoKTsKICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICB0aGlzLmdlbi5lbmRJZigpOwogICAgICAgIGVsc2UKICAgICAgICAgIHRoaXMuZ2VuLmVsc2UoKTsKICAgICAgfQogICAgICBmYWlsJGRhdGEoY29uZGl0aW9uKSB7CiAgICAgICAgaWYgKCF0aGlzLiRkYXRhKQogICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbChjb25kaXRpb24pOwogICAgICAgIGNvbnN0IHsgc2NoZW1hQ29kZSB9ID0gdGhpczsKICAgICAgICB0aGlzLmZhaWwoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ICE9PSB1bmRlZmluZWQgJiYgKCR7KDAsIGNvZGVnZW5fMS5vcikodGhpcy5pbnZhbGlkJGRhdGEoKSwgY29uZGl0aW9uKX0pYCk7CiAgICAgIH0KICAgICAgZXJyb3IoYXBwZW5kLCBlcnJvclBhcmFtcywgZXJyb3JQYXRocykgewogICAgICAgIGlmIChlcnJvclBhcmFtcykgewogICAgICAgICAgdGhpcy5zZXRQYXJhbXMoZXJyb3JQYXJhbXMpOwogICAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgICAgIHRoaXMuc2V0UGFyYW1zKHt9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICBfZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKSB7CiAgICAgICAgOwogICAgICAgIChhcHBlbmQgPyBlcnJvcnNfMS5yZXBvcnRFeHRyYUVycm9yIDogZXJyb3JzXzEucmVwb3J0RXJyb3IpKHRoaXMsIHRoaXMuZGVmLmVycm9yLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICAkZGF0YUVycm9yKCkgewogICAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikodGhpcywgdGhpcy5kZWYuJGRhdGFFcnJvciB8fCBlcnJvcnNfMS5rZXl3b3JkJERhdGFFcnJvcik7CiAgICAgIH0KICAgICAgcmVzZXQoKSB7CiAgICAgICAgaWYgKHRoaXMuZXJyc0NvdW50ID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZCAidHJhY2tFcnJvcnMiIHRvIGtleXdvcmQgZGVmaW5pdGlvbicpOwogICAgICAgICgwLCBlcnJvcnNfMS5yZXNldEVycm9yc0NvdW50KSh0aGlzLmdlbiwgdGhpcy5lcnJzQ291bnQpOwogICAgICB9CiAgICAgIG9rKGNvbmQpIHsKICAgICAgICBpZiAoIXRoaXMuYWxsRXJyb3JzKQogICAgICAgICAgdGhpcy5nZW4uaWYoY29uZCk7CiAgICAgIH0KICAgICAgc2V0UGFyYW1zKG9iaiwgYXNzaWduKSB7CiAgICAgICAgaWYgKGFzc2lnbikKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wYXJhbXMsIG9iaik7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5wYXJhbXMgPSBvYmo7CiAgICAgIH0KICAgICAgYmxvY2skZGF0YSh2YWxpZCwgY29kZUJsb2NrLCAkZGF0YVZhbGlkID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHRoaXMuZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICAgIHRoaXMuY2hlY2skZGF0YSh2YWxpZCwgJGRhdGFWYWxpZCk7CiAgICAgICAgICBjb2RlQmxvY2soKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBjaGVjayRkYXRhKHZhbGlkID0gY29kZWdlbl8xLm5pbCwgJGRhdGFWYWxpZCA9IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBpZiAoIXRoaXMuJGRhdGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYUNvZGUsIHNjaGVtYVR5cGUsIGRlZiB9ID0gdGhpczsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5vcikoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ID09PSB1bmRlZmluZWRgLCAkZGF0YVZhbGlkKSk7CiAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgaWYgKHNjaGVtYVR5cGUubGVuZ3RoIHx8IGRlZi52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgICAgZ2VuLmVsc2VJZih0aGlzLmludmFsaWQkZGF0YSgpKTsKICAgICAgICAgIHRoaXMuJGRhdGFFcnJvcigpOwogICAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGdlbi5lbHNlKCk7CiAgICAgIH0KICAgICAgaW52YWxpZCRkYXRhKCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFDb2RlLCBzY2hlbWFUeXBlLCBkZWYsIGl0IH0gPSB0aGlzOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm9yKSh3cm9uZyREYXRhVHlwZSgpLCBpbnZhbGlkJERhdGFTY2hlbWEoKSk7CiAgICAgICAgZnVuY3Rpb24gd3JvbmckRGF0YVR5cGUoKSB7CiAgICAgICAgICBpZiAoc2NoZW1hVHlwZS5sZW5ndGgpIHsKICAgICAgICAgICAgaWYgKCEoc2NoZW1hQ29kZSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSkKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgICBjb25zdCBzdCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkgPyBzY2hlbWFUeXBlIDogW3NjaGVtYVR5cGVdOwogICAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWAkeygwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGVzKShzdCwgc2NoZW1hQ29kZSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCBkYXRhVHlwZV8yLkRhdGFUeXBlLldyb25nKX1gOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGludmFsaWQkRGF0YVNjaGVtYSgpIHsKICAgICAgICAgIGlmIChkZWYudmFsaWRhdGVTY2hlbWEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVTY2hlbWFSZWYgPSBnZW4uc2NvcGVWYWx1ZSgidmFsaWRhdGUkZGF0YSIsIHsgcmVmOiBkZWYudmFsaWRhdGVTY2hlbWEgfSk7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCEke3ZhbGlkYXRlU2NoZW1hUmVmfSgke3NjaGVtYUNvZGV9KWA7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29kZWdlbl8xLm5pbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgc3Vic2NoZW1hKGFwcGwsIHZhbGlkKSB7CiAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gKDAsIHN1YnNjaGVtYV8xLmdldFN1YnNjaGVtYSkodGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYURhdGEpKHN1YnNjaGVtYSwgdGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYU1vZGUpKHN1YnNjaGVtYSwgYXBwbCk7CiAgICAgICAgY29uc3QgbmV4dENvbnRleHQgPSB7IC4uLnRoaXMuaXQsIC4uLnN1YnNjaGVtYSwgaXRlbXM6IHZvaWQgMCwgcHJvcHM6IHZvaWQgMCB9OwogICAgICAgIHN1YnNjaGVtYUNvZGUobmV4dENvbnRleHQsIHZhbGlkKTsKICAgICAgICByZXR1cm4gbmV4dENvbnRleHQ7CiAgICAgIH0KICAgICAgbWVyZ2VFdmFsdWF0ZWQoc2NoZW1hQ3h0LCB0b05hbWUpIHsKICAgICAgICBjb25zdCB7IGl0LCBnZW4gfSA9IHRoaXM7CiAgICAgICAgaWYgKCFpdC5vcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChpdC5wcm9wcyAhPT0gdHJ1ZSAmJiBzY2hlbWFDeHQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBzY2hlbWFDeHQucHJvcHMsIGl0LnByb3BzLCB0b05hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoaXQuaXRlbXMgIT09IHRydWUgJiYgc2NoZW1hQ3h0Lml0ZW1zICE9PSB2b2lkIDApIHsKICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoZW1hQ3h0Lml0ZW1zLCBpdC5pdGVtcywgdG9OYW1lKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hlbWFDeHQsIHZhbGlkKSB7CiAgICAgICAgY29uc3QgeyBpdCwgZ2VuIH0gPSB0aGlzOwogICAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIChpdC5wcm9wcyAhPT0gdHJ1ZSB8fCBpdC5pdGVtcyAhPT0gdHJ1ZSkpIHsKICAgICAgICAgIGdlbi5pZih2YWxpZCwgKCkgPT4gdGhpcy5tZXJnZUV2YWx1YXRlZChzY2hlbWFDeHQsIGNvZGVnZW5fMS5OYW1lKSk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gS2V5d29yZEN4dDsKICAgIGZ1bmN0aW9uIGtleXdvcmRDb2RlKGl0LCBrZXl3b3JkLCBkZWYsIHJ1bGVUeXBlKSB7CiAgICAgIGNvbnN0IGN4dCA9IG5ldyBLZXl3b3JkQ3h0KGl0LCBkZWYsIGtleXdvcmQpOwogICAgICBpZiAoImNvZGUiIGluIGRlZikgewogICAgICAgIGRlZi5jb2RlKGN4dCwgcnVsZVR5cGUpOwogICAgICB9IGVsc2UgaWYgKGN4dC4kZGF0YSAmJiBkZWYudmFsaWRhdGUpIHsKICAgICAgICAoMCwga2V5d29yZF8xLmZ1bmNLZXl3b3JkQ29kZSkoY3h0LCBkZWYpOwogICAgICB9IGVsc2UgaWYgKCJtYWNybyIgaW4gZGVmKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5tYWNyb0tleXdvcmRDb2RlKShjeHQsIGRlZik7CiAgICAgIH0gZWxzZSBpZiAoZGVmLmNvbXBpbGUgfHwgZGVmLnZhbGlkYXRlKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5mdW5jS2V5d29yZENvZGUpKGN4dCwgZGVmKTsKICAgICAgfQogICAgfQogICAgdmFyIEpTT05fUE9JTlRFUiA9IC9eXC8oPzpbXn5dfH4wfH4xKSokLzsKICAgIHZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXihbMC05XSspKCN8XC8oPzpbXn5dfH4wfH4xKSopPyQvOwogICAgZnVuY3Rpb24gZ2V0RGF0YSgkZGF0YSwgeyBkYXRhTGV2ZWwsIGRhdGFOYW1lcywgZGF0YVBhdGhBcnIgfSkgewogICAgICBsZXQganNvblBvaW50ZXI7CiAgICAgIGxldCBkYXRhOwogICAgICBpZiAoJGRhdGEgPT09ICIiKQogICAgICAgIHJldHVybiBuYW1lc18xLmRlZmF1bHQucm9vdERhdGE7CiAgICAgIGlmICgkZGF0YVswXSA9PT0gIi8iKSB7CiAgICAgICAgaWYgKCFKU09OX1BPSU5URVIudGVzdCgkZGF0YSkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSlNPTi1wb2ludGVyOiAkeyRkYXRhfWApOwogICAgICAgIGpzb25Qb2ludGVyID0gJGRhdGE7CiAgICAgICAgZGF0YSA9IG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gUkVMQVRJVkVfSlNPTl9QT0lOVEVSLmV4ZWMoJGRhdGEpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKU09OLXBvaW50ZXI6ICR7JGRhdGF9YCk7CiAgICAgICAgY29uc3QgdXAgPSArbWF0Y2hlc1sxXTsKICAgICAgICBqc29uUG9pbnRlciA9IG1hdGNoZXNbMl07CiAgICAgICAgaWYgKGpzb25Qb2ludGVyID09PSAiIyIpIHsKICAgICAgICAgIGlmICh1cCA+PSBkYXRhTGV2ZWwpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1zZygicHJvcGVydHkvaW5kZXgiLCB1cCkpOwogICAgICAgICAgcmV0dXJuIGRhdGFQYXRoQXJyW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICB9CiAgICAgICAgaWYgKHVwID4gZGF0YUxldmVsKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTXNnKCJkYXRhIiwgdXApKTsKICAgICAgICBkYXRhID0gZGF0YU5hbWVzW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICBpZiAoIWpzb25Qb2ludGVyKQogICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgIH0KICAgICAgbGV0IGV4cHIgPSBkYXRhOwogICAgICBjb25zdCBzZWdtZW50cyA9IGpzb25Qb2ludGVyLnNwbGl0KCIvIik7CiAgICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBzZWdtZW50cykgewogICAgICAgIGlmIChzZWdtZW50KSB7CiAgICAgICAgICBkYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KSgoMCwgdXRpbF8xLnVuZXNjYXBlSnNvblBvaW50ZXIpKHNlZ21lbnQpKX1gOwogICAgICAgICAgZXhwciA9ICgwLCBjb2RlZ2VuXzEuXylgJHtleHByfSAmJiAke2RhdGF9YDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGV4cHI7CiAgICAgIGZ1bmN0aW9uIGVycm9yTXNnKHBvaW50ZXJUeXBlLCB1cCkgewogICAgICAgIHJldHVybiBgQ2Fubm90IGFjY2VzcyAke3BvaW50ZXJUeXBlfSAke3VwfSBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJHtkYXRhTGV2ZWx9YDsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0RGF0YSA9IGdldERhdGE7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3ZhbGlkYXRpb25fZXJyb3IuanMKdmFyIHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgVmFsaWRhdGlvbkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKGVycm9ycykgewogICAgICAgIHN1cGVyKCJ2YWxpZGF0aW9uIGZhaWxlZCIpOwogICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzOwogICAgICAgIHRoaXMuYWp2ID0gdGhpcy52YWxpZGF0aW9uID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBWYWxpZGF0aW9uRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3JlZl9lcnJvci5qcwp2YXIgcmVxdWlyZV9yZWZfZXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVmX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgTWlzc2luZ1JlZkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKHJlc29sdmVyLCBiYXNlSWQsIHJlZiwgbXNnKSB7CiAgICAgICAgc3VwZXIobXNnIHx8IGBjYW4ndCByZXNvbHZlIHJlZmVyZW5jZSAke3JlZn0gZnJvbSBpZCAke2Jhc2VJZH1gKTsKICAgICAgICB0aGlzLm1pc3NpbmdSZWYgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHJlc29sdmVyLCBiYXNlSWQsIHJlZik7CiAgICAgICAgdGhpcy5taXNzaW5nU2NoZW1hID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkocmVzb2x2ZXIsIHRoaXMubWlzc2luZ1JlZikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IE1pc3NpbmdSZWZFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvaW5kZXguanMKdmFyIHJlcXVpcmVfY29tcGlsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGV4cG9ydHMyLnJlc29sdmVSZWYgPSBleHBvcnRzMi5jb21waWxlU2NoZW1hID0gZXhwb3J0czIuU2NoZW1hRW52ID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIHZhciBTY2hlbWFFbnYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGVudikgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLnJlZnMgPSB7fTsKICAgICAgICB0aGlzLmR5bmFtaWNBbmNob3JzID0ge307CiAgICAgICAgbGV0IHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBlbnYuc2NoZW1hID09ICJvYmplY3QiKQogICAgICAgICAgc2NoZW1hMiA9IGVudi5zY2hlbWE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBlbnYuc2NoZW1hOwogICAgICAgIHRoaXMuc2NoZW1hSWQgPSBlbnYuc2NoZW1hSWQ7CiAgICAgICAgdGhpcy5yb290ID0gZW52LnJvb3QgfHwgdGhpczsKICAgICAgICB0aGlzLmJhc2VJZCA9IChfYSA9IGVudi5iYXNlSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICgwLCByZXNvbHZlXzEubm9ybWFsaXplSWQpKHNjaGVtYTIgPT09IG51bGwgfHwgc2NoZW1hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hMltlbnYuc2NoZW1hSWQgfHwgIiRpZCJdKTsKICAgICAgICB0aGlzLnNjaGVtYVBhdGggPSBlbnYuc2NoZW1hUGF0aDsKICAgICAgICB0aGlzLmxvY2FsUmVmcyA9IGVudi5sb2NhbFJlZnM7CiAgICAgICAgdGhpcy5tZXRhID0gZW52Lm1ldGE7CiAgICAgICAgdGhpcy4kYXN5bmMgPSBzY2hlbWEyID09PSBudWxsIHx8IHNjaGVtYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYTIuJGFzeW5jOwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hRW52ID0gU2NoZW1hRW52OwogICAgZnVuY3Rpb24gY29tcGlsZVNjaGVtYShzY2gpIHsKICAgICAgY29uc3QgX3NjaCA9IGdldENvbXBpbGluZ1NjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICAgIGlmIChfc2NoKQogICAgICAgIHJldHVybiBfc2NoOwogICAgICBjb25zdCByb290SWQgPSAoMCwgcmVzb2x2ZV8xLmdldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHNjaC5yb290LmJhc2VJZCk7CiAgICAgIGNvbnN0IHsgZXM1LCBsaW5lcyB9ID0gdGhpcy5vcHRzLmNvZGU7CiAgICAgIGNvbnN0IHsgb3duUHJvcGVydGllcyB9ID0gdGhpcy5vcHRzOwogICAgICBjb25zdCBnZW4gPSBuZXcgY29kZWdlbl8xLkNvZGVHZW4odGhpcy5zY29wZSwgeyBlczUsIGxpbmVzLCBvd25Qcm9wZXJ0aWVzIH0pOwogICAgICBsZXQgX1ZhbGlkYXRpb25FcnJvcjsKICAgICAgaWYgKHNjaC4kYXN5bmMpIHsKICAgICAgICBfVmFsaWRhdGlvbkVycm9yID0gZ2VuLnNjb3BlVmFsdWUoIkVycm9yIiwgewogICAgICAgICAgcmVmOiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdCwKICAgICAgICAgIGNvZGU6ICgwLCBjb2RlZ2VuXzEuXylgcmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yIikuZGVmYXVsdGAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZGF0ZU5hbWUgPSBnZW4uc2NvcGVOYW1lKCJ2YWxpZGF0ZSIpOwogICAgICBzY2gudmFsaWRhdGVOYW1lID0gdmFsaWRhdGVOYW1lOwogICAgICBjb25zdCBzY2hlbWFDeHQgPSB7CiAgICAgICAgZ2VuLAogICAgICAgIGFsbEVycm9yczogdGhpcy5vcHRzLmFsbEVycm9ycywKICAgICAgICBkYXRhOiBuYW1lc18xLmRlZmF1bHQuZGF0YSwKICAgICAgICBwYXJlbnREYXRhOiBuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwKICAgICAgICBwYXJlbnREYXRhUHJvcGVydHk6IG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksCiAgICAgICAgZGF0YU5hbWVzOiBbbmFtZXNfMS5kZWZhdWx0LmRhdGFdLAogICAgICAgIGRhdGFQYXRoQXJyOiBbY29kZWdlbl8xLm5pbF0sCiAgICAgICAgLy8gVE9ETyBjYW4gaXRzIGxlbmd0aCBiZSB1c2VkIGFzIGRhdGFMZXZlbCBpZiBuaWwgaXMgcmVtb3ZlZD8KICAgICAgICBkYXRhTGV2ZWw6IDAsCiAgICAgICAgZGF0YVR5cGVzOiBbXSwKICAgICAgICBkZWZpbmVkUHJvcGVydGllczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwKICAgICAgICB0b3BTY2hlbWFSZWY6IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCB0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUgPyB7IHJlZjogc2NoLnNjaGVtYSwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaC5zY2hlbWEpIH0gOiB7IHJlZjogc2NoLnNjaGVtYSB9KSwKICAgICAgICB2YWxpZGF0ZU5hbWUsCiAgICAgICAgVmFsaWRhdGlvbkVycm9yOiBfVmFsaWRhdGlvbkVycm9yLAogICAgICAgIHNjaGVtYTogc2NoLnNjaGVtYSwKICAgICAgICBzY2hlbWFFbnY6IHNjaCwKICAgICAgICByb290SWQsCiAgICAgICAgYmFzZUlkOiBzY2guYmFzZUlkIHx8IHJvb3RJZCwKICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgIGVyclNjaGVtYVBhdGg6IHNjaC5zY2hlbWFQYXRoIHx8ICh0aGlzLm9wdHMuanRkID8gIiIgOiAiIyIpLAogICAgICAgIGVycm9yUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAiImAsCiAgICAgICAgb3B0czogdGhpcy5vcHRzLAogICAgICAgIHNlbGY6IHRoaXMKICAgICAgfTsKICAgICAgbGV0IHNvdXJjZUNvZGU7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fY29tcGlsYXRpb25zLmFkZChzY2gpOwogICAgICAgICgwLCB2YWxpZGF0ZV8xLnZhbGlkYXRlRnVuY3Rpb25Db2RlKShzY2hlbWFDeHQpOwogICAgICAgIGdlbi5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7CiAgICAgICAgY29uc3QgdmFsaWRhdGVDb2RlID0gZ2VuLnRvU3RyaW5nKCk7CiAgICAgICAgc291cmNlQ29kZSA9IGAke2dlbi5zY29wZVJlZnMobmFtZXNfMS5kZWZhdWx0LnNjb3BlKX1yZXR1cm4gJHt2YWxpZGF0ZUNvZGV9YDsKICAgICAgICBpZiAodGhpcy5vcHRzLmNvZGUucHJvY2VzcykKICAgICAgICAgIHNvdXJjZUNvZGUgPSB0aGlzLm9wdHMuY29kZS5wcm9jZXNzKHNvdXJjZUNvZGUsIHNjaCk7CiAgICAgICAgY29uc3QgbWFrZVZhbGlkYXRlID0gbmV3IEZ1bmN0aW9uKGAke25hbWVzXzEuZGVmYXVsdC5zZWxmfWAsIGAke25hbWVzXzEuZGVmYXVsdC5zY29wZX1gLCBzb3VyY2VDb2RlKTsKICAgICAgICBjb25zdCB2YWxpZGF0ZSA9IG1ha2VWYWxpZGF0ZSh0aGlzLCB0aGlzLnNjb3BlLmdldCgpKTsKICAgICAgICB0aGlzLnNjb3BlLnZhbHVlKHZhbGlkYXRlTmFtZSwgeyByZWY6IHZhbGlkYXRlIH0pOwogICAgICAgIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7CiAgICAgICAgdmFsaWRhdGUuc2NoZW1hID0gc2NoLnNjaGVtYTsKICAgICAgICB2YWxpZGF0ZS5zY2hlbWFFbnYgPSBzY2g7CiAgICAgICAgaWYgKHNjaC4kYXN5bmMpCiAgICAgICAgICB2YWxpZGF0ZS4kYXN5bmMgPSB0cnVlOwogICAgICAgIGlmICh0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUpIHsKICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZSA9IHsgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZUNvZGUsIHNjb3BlVmFsdWVzOiBnZW4uX3ZhbHVlcyB9OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vcHRzLnVuZXZhbHVhdGVkKSB7CiAgICAgICAgICBjb25zdCB7IHByb3BzLCBpdGVtcyB9ID0gc2NoZW1hQ3h0OwogICAgICAgICAgdmFsaWRhdGUuZXZhbHVhdGVkID0gewogICAgICAgICAgICBwcm9wczogcHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IHByb3BzLAogICAgICAgICAgICBpdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IGl0ZW1zLAogICAgICAgICAgICBkeW5hbWljUHJvcHM6IHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUsCiAgICAgICAgICAgIGR5bmFtaWNJdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0ZS5zb3VyY2UpCiAgICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZS5ldmFsdWF0ZWQgPSAoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkodmFsaWRhdGUuZXZhbHVhdGVkKTsKICAgICAgICB9CiAgICAgICAgc2NoLnZhbGlkYXRlID0gdmFsaWRhdGU7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGRlbGV0ZSBzY2gudmFsaWRhdGU7CiAgICAgICAgZGVsZXRlIHNjaC52YWxpZGF0ZU5hbWU7CiAgICAgICAgaWYgKHNvdXJjZUNvZGUpCiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigiRXJyb3IgY29tcGlsaW5nIHNjaGVtYSwgZnVuY3Rpb24gY29kZToiLCBzb3VyY2VDb2RlKTsKICAgICAgICB0aHJvdyBlOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucy5kZWxldGUoc2NoKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY29tcGlsZVNjaGVtYSA9IGNvbXBpbGVTY2hlbWE7CiAgICBmdW5jdGlvbiByZXNvbHZlUmVmKHJvb3QsIGJhc2VJZCwgcmVmKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgcmVmKTsKICAgICAgY29uc3Qgc2NoT3JGdW5jID0gcm9vdC5yZWZzW3JlZl07CiAgICAgIGlmIChzY2hPckZ1bmMpCiAgICAgICAgcmV0dXJuIHNjaE9yRnVuYzsKICAgICAgbGV0IF9zY2ggPSByZXNvbHZlLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHNjaGVtYTIgPSAoX2EgPSByb290LmxvY2FsUmVmcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3JlZl07CiAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGlmIChzY2hlbWEyKQogICAgICAgICAgX3NjaCA9IG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkKICAgICAgICByZXR1cm47CiAgICAgIHJldHVybiByb290LnJlZnNbcmVmXSA9IGlubGluZU9yQ29tcGlsZS5jYWxsKHRoaXMsIF9zY2gpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVJlZiA9IHJlc29sdmVSZWY7CiAgICBmdW5jdGlvbiBpbmxpbmVPckNvbXBpbGUoc2NoKSB7CiAgICAgIGlmICgoMCwgcmVzb2x2ZV8xLmlubGluZVJlZikoc2NoLnNjaGVtYSwgdGhpcy5vcHRzLmlubGluZVJlZnMpKQogICAgICAgIHJldHVybiBzY2guc2NoZW1hOwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gc2NoIDogY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRDb21waWxpbmdTY2hlbWEoc2NoRW52KSB7CiAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHRoaXMuX2NvbXBpbGF0aW9ucykgewogICAgICAgIGlmIChzYW1lU2NoZW1hRW52KHNjaCwgc2NoRW52KSkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGdldENvbXBpbGluZ1NjaGVtYTsKICAgIGZ1bmN0aW9uIHNhbWVTY2hlbWFFbnYoczEsIHMyKSB7CiAgICAgIHJldHVybiBzMS5zY2hlbWEgPT09IHMyLnNjaGVtYSAmJiBzMS5yb290ID09PSBzMi5yb290ICYmIHMxLmJhc2VJZCA9PT0gczIuYmFzZUlkOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShyb290LCByZWYpIHsKICAgICAgbGV0IHNjaDsKICAgICAgd2hpbGUgKHR5cGVvZiAoc2NoID0gdGhpcy5yZWZzW3JlZl0pID09ICJzdHJpbmciKQogICAgICAgIHJlZiA9IHNjaDsKICAgICAgcmV0dXJuIHNjaCB8fCB0aGlzLnNjaGVtYXNbcmVmXSB8fCByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEocm9vdCwgcmVmKSB7CiAgICAgIGNvbnN0IHAgPSB0aGlzLm9wdHMudXJpUmVzb2x2ZXIucGFyc2UocmVmKTsKICAgICAgY29uc3QgcmVmUGF0aCA9ICgwLCByZXNvbHZlXzEuX2dldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHApOwogICAgICBsZXQgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLCByb290LmJhc2VJZCwgdm9pZCAwKTsKICAgICAgaWYgKE9iamVjdC5rZXlzKHJvb3Quc2NoZW1hKS5sZW5ndGggPiAwICYmIHJlZlBhdGggPT09IGJhc2VJZCkgewogICAgICAgIHJldHVybiBnZXRKc29uUG9pbnRlci5jYWxsKHRoaXMsIHAsIHJvb3QpOwogICAgICB9CiAgICAgIGNvbnN0IGlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmUGF0aCk7CiAgICAgIGNvbnN0IHNjaE9yUmVmID0gdGhpcy5yZWZzW2lkXSB8fCB0aGlzLnNjaGVtYXNbaWRdOwogICAgICBpZiAodHlwZW9mIHNjaE9yUmVmID09ICJzdHJpbmciKSB7CiAgICAgICAgY29uc3Qgc2NoID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHNjaE9yUmVmKTsKICAgICAgICBpZiAodHlwZW9mIChzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2guc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoKTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIChzY2hPclJlZiA9PT0gbnVsbCB8fCBzY2hPclJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoT3JSZWYuc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgcmV0dXJuOwogICAgICBpZiAoIXNjaE9yUmVmLnZhbGlkYXRlKQogICAgICAgIGNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2hPclJlZik7CiAgICAgIGlmIChpZCA9PT0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmKSkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyIH0gPSBzY2hPclJlZjsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgY29uc3Qgc2NoSWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICBpZiAoc2NoSWQpCiAgICAgICAgICBiYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHRoaXMub3B0cy51cmlSZXNvbHZlciwgYmFzZUlkLCBzY2hJZCk7CiAgICAgICAgcmV0dXJuIG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoT3JSZWYpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IHJlc29sdmVTY2hlbWE7CiAgICB2YXIgUFJFVkVOVF9TQ09QRV9DSEFOR0UgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJwcm9wZXJ0aWVzIiwKICAgICAgInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgImVudW0iLAogICAgICAiZGVwZW5kZW5jaWVzIiwKICAgICAgImRlZmluaXRpb25zIgogICAgXSk7CiAgICBmdW5jdGlvbiBnZXRKc29uUG9pbnRlcihwYXJzZWRSZWYsIHsgYmFzZUlkLCBzY2hlbWE6IHNjaGVtYTIsIHJvb3QgfSkgewogICAgICB2YXIgX2E7CiAgICAgIGlmICgoKF9hID0gcGFyc2VkUmVmLmZyYWdtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF0pICE9PSAiLyIpCiAgICAgICAgcmV0dXJuOwogICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFyc2VkUmVmLmZyYWdtZW50LnNsaWNlKDEpLnNwbGl0KCIvIikpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIikKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBwYXJ0U2NoZW1hID0gc2NoZW1hMlsoMCwgdXRpbF8xLnVuZXNjYXBlRnJhZ21lbnQpKHBhcnQpXTsKICAgICAgICBpZiAocGFydFNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHNjaGVtYTIgPSBwYXJ0U2NoZW1hOwogICAgICAgIGNvbnN0IHNjaElkID0gdHlwZW9mIHNjaGVtYTIgPT09ICJvYmplY3QiICYmIHNjaGVtYTJbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICBpZiAoIVBSRVZFTlRfU0NPUEVfQ0hBTkdFLmhhcyhwYXJ0KSAmJiBzY2hJZCkgewogICAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoSWQpOwogICAgICAgIH0KICAgICAgfQogICAgICBsZXQgZW52OwogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgIT0gImJvb2xlYW4iICYmIHNjaGVtYTIuJHJlZiAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgdGhpcy5SVUxFUykpIHsKICAgICAgICBjb25zdCAkcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoZW1hMi4kcmVmKTsKICAgICAgICBlbnYgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgJHJlZik7CiAgICAgIH0KICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICBlbnYgPSBlbnYgfHwgbmV3IFNjaGVtYUVudih7IHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hSWQsIHJvb3QsIGJhc2VJZCB9KTsKICAgICAgaWYgKGVudi5zY2hlbWEgIT09IGVudi5yb290LnNjaGVtYSkKICAgICAgICByZXR1cm4gZW52OwogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24KdmFyIHJlcXVpcmVfZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRpZDogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIyIsCiAgICAgIGRlc2NyaXB0aW9uOiAiTWV0YS1zY2hlbWEgZm9yICRkYXRhIHJlZmVyZW5jZSAoSlNPTiBBbnlTY2hlbWEgZXh0ZW5zaW9uIHByb3Bvc2FsKSIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICByZXF1aXJlZDogWyIkZGF0YSJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGRhdGE6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgYW55T2Y6IFt7IGZvcm1hdDogInJlbGF0aXZlLWpzb24tcG9pbnRlciIgfSwgeyBmb3JtYXQ6ICJqc29uLXBvaW50ZXIiIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzCnZhciByZXF1aXJlX3Njb3BlZENoYXJzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEhFWCA9IHsKICAgICAgMDogMCwKICAgICAgMTogMSwKICAgICAgMjogMiwKICAgICAgMzogMywKICAgICAgNDogNCwKICAgICAgNTogNSwKICAgICAgNjogNiwKICAgICAgNzogNywKICAgICAgODogOCwKICAgICAgOTogOSwKICAgICAgYTogMTAsCiAgICAgIEE6IDEwLAogICAgICBiOiAxMSwKICAgICAgQjogMTEsCiAgICAgIGM6IDEyLAogICAgICBDOiAxMiwKICAgICAgZDogMTMsCiAgICAgIEQ6IDEzLAogICAgICBlOiAxNCwKICAgICAgRTogMTQsCiAgICAgIGY6IDE1LAogICAgICBGOiAxNQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgSEVYCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC11cmktbnBtLTMuMC4zLTA4NzQwNzI2MjUtMTAuemlwL25vZGVfbW9kdWxlcy9mYXN0LXVyaS9saWIvdXRpbHMuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBIRVggfSA9IHJlcXVpcmVfc2NvcGVkQ2hhcnMoKTsKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUlQdjQoaG9zdCkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICIuIikgPCAzKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY0OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkL3UpIHx8IFtdOwogICAgICBjb25zdCBbYWRkcmVzc10gPSBtYXRjaGVzOwogICAgICBpZiAoYWRkcmVzcykgewogICAgICAgIHJldHVybiB7IGhvc3Q6IHN0cmlwTGVhZGluZ1plcm9zKGFkZHJlc3MsICIuIiksIGlzSVBWNDogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNDogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGlucHV0LCBrZWVwWmVybyA9IGZhbHNlKSB7CiAgICAgIGxldCBhY2MgPSAiIjsKICAgICAgbGV0IHN0cmlwID0gdHJ1ZTsKICAgICAgZm9yIChjb25zdCBjIG9mIGlucHV0KSB7CiAgICAgICAgaWYgKEhFWFtjXSA9PT0gdm9pZCAwKSByZXR1cm4gdm9pZCAwOwogICAgICAgIGlmIChjICE9PSAiMCIgJiYgc3RyaXAgPT09IHRydWUpIHN0cmlwID0gZmFsc2U7CiAgICAgICAgaWYgKCFzdHJpcCkgYWNjICs9IGM7CiAgICAgIH0KICAgICAgaWYgKGtlZXBaZXJvICYmIGFjYy5sZW5ndGggPT09IDApIGFjYyA9ICIwIjsKICAgICAgcmV0dXJuIGFjYzsKICAgIH0KICAgIGZ1bmN0aW9uIGdldElQVjYoaW5wdXQpIHsKICAgICAgbGV0IHRva2VuQ291bnQgPSAwOwogICAgICBjb25zdCBvdXRwdXQgPSB7IGVycm9yOiBmYWxzZSwgYWRkcmVzczogIiIsIHpvbmU6ICIiIH07CiAgICAgIGNvbnN0IGFkZHJlc3MgPSBbXTsKICAgICAgY29uc3QgYnVmZmVyID0gW107CiAgICAgIGxldCBpc1pvbmUgPSBmYWxzZTsKICAgICAgbGV0IGVuZGlwdjZFbmNvdW50ZXJlZCA9IGZhbHNlOwogICAgICBsZXQgZW5kSXB2NiA9IGZhbHNlOwogICAgICBmdW5jdGlvbiBjb25zdW1lKCkgewogICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7CiAgICAgICAgICBpZiAoaXNab25lID09PSBmYWxzZSkgewogICAgICAgICAgICBjb25zdCBoZXggPSBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQoYnVmZmVyKTsKICAgICAgICAgICAgaWYgKGhleCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgYWRkcmVzcy5wdXNoKGhleCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgb3V0cHV0LmVycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3Vyc29yID0gaW5wdXRbaV07CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIlsiIHx8IGN1cnNvciA9PT0gIl0iKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIjoiKSB7CiAgICAgICAgICBpZiAoZW5kaXB2NkVuY291bnRlcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgIGVuZElwdjYgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFjb25zdW1lKCkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICB0b2tlbkNvdW50Kys7CiAgICAgICAgICBhZGRyZXNzLnB1c2goIjoiKTsKICAgICAgICAgIGlmICh0b2tlbkNvdW50ID4gNykgewogICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChpIC0gMSA+PSAwICYmIGlucHV0W2kgLSAxXSA9PT0gIjoiKSB7CiAgICAgICAgICAgIGVuZGlwdjZFbmNvdW50ZXJlZCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciA9PT0gIiUiKSB7CiAgICAgICAgICBpZiAoIWNvbnN1bWUoKSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlzWm9uZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKGN1cnNvcik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICBpZiAoaXNab25lKSB7CiAgICAgICAgICBvdXRwdXQuem9uZSA9IGJ1ZmZlci5qb2luKCIiKTsKICAgICAgICB9IGVsc2UgaWYgKGVuZElwdjYpIHsKICAgICAgICAgIGFkZHJlc3MucHVzaChidWZmZXIuam9pbigiIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhZGRyZXNzLnB1c2goc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGJ1ZmZlcikpOwogICAgICAgIH0KICAgICAgfQogICAgICBvdXRwdXQuYWRkcmVzcyA9IGFkZHJlc3Muam9pbigiIik7CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVJUHY2KGhvc3QsIG9wdHMgPSB7fSkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICI6IikgPCAyKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY2OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IGlwdjYgPSBnZXRJUFY2KGhvc3QpOwogICAgICBpZiAoIWlwdjYuZXJyb3IpIHsKICAgICAgICBsZXQgbmV3SG9zdCA9IGlwdjYuYWRkcmVzczsKICAgICAgICBsZXQgZXNjYXBlZEhvc3QgPSBpcHY2LmFkZHJlc3M7CiAgICAgICAgaWYgKGlwdjYuem9uZSkgewogICAgICAgICAgbmV3SG9zdCArPSAiJSIgKyBpcHY2LnpvbmU7CiAgICAgICAgICBlc2NhcGVkSG9zdCArPSAiJTI1IiArIGlwdjYuem9uZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgaG9zdDogbmV3SG9zdCwgZXNjYXBlZEhvc3QsIGlzSVBWNjogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNjogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaXBMZWFkaW5nWmVyb3Moc3RyMiwgdG9rZW4pIHsKICAgICAgbGV0IG91dCA9ICIiOwogICAgICBsZXQgc2tpcCA9IHRydWU7CiAgICAgIGNvbnN0IGwgPSBzdHIyLmxlbmd0aDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gc3RyMltpXTsKICAgICAgICBpZiAoYyA9PT0gIjAiICYmIHNraXApIHsKICAgICAgICAgIGlmIChpICsgMSA8PSBsICYmIHN0cjJbaSArIDFdID09PSB0b2tlbiB8fCBpICsgMSA9PT0gbCkgewogICAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoYyA9PT0gdG9rZW4pIHsKICAgICAgICAgICAgc2tpcCA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBza2lwID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbmRUb2tlbihzdHIyLCB0b2tlbikgewogICAgICBsZXQgaW5kID0gMDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHN0cjJbaV0gPT09IHRva2VuKSBpbmQrKzsKICAgICAgfQogICAgICByZXR1cm4gaW5kOwogICAgfQogICAgdmFyIFJEUzEgPSAvXlwuXC4/XC8vdTsKICAgIHZhciBSRFMyID0gL15cL1wuKD86XC98JCkvdTsKICAgIHZhciBSRFMzID0gL15cL1wuXC4oPzpcL3wkKS91OwogICAgdmFyIFJEUzUgPSAvXlwvPyg/Oi58XG4pKj8oPz1cL3wkKS91OwogICAgZnVuY3Rpb24gcmVtb3ZlRG90U2VnbWVudHMoaW5wdXQpIHsKICAgICAgY29uc3Qgb3V0cHV0ID0gW107CiAgICAgIHdoaWxlIChpbnB1dC5sZW5ndGgpIHsKICAgICAgICBpZiAoaW5wdXQubWF0Y2goUkRTMSkpIHsKICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMxLCAiIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMyKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzIsICIvIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMzKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzMsICIvIik7CiAgICAgICAgICBvdXRwdXQucG9wKCk7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gIi4iIHx8IGlucHV0ID09PSAiLi4iKSB7CiAgICAgICAgICBpbnB1dCA9ICIiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBpbSA9IGlucHV0Lm1hdGNoKFJEUzUpOwogICAgICAgICAgaWYgKGltKSB7CiAgICAgICAgICAgIGNvbnN0IHMgPSBpbVswXTsKICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZShzLmxlbmd0aCk7CiAgICAgICAgICAgIG91dHB1dC5wdXNoKHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGRvdCBzZWdtZW50IGNvbmRpdGlvbiIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gb3V0cHV0LmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgZXNjKSB7CiAgICAgIGNvbnN0IGZ1bmMgPSBlc2MgIT09IHRydWUgPyBlc2NhcGUgOiB1bmVzY2FwZTsKICAgICAgaWYgKGNvbXBvbmVudHMuc2NoZW1lICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnNjaGVtZSA9IGZ1bmMoY29tcG9uZW50cy5zY2hlbWUpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnVzZXJpbmZvICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnVzZXJpbmZvID0gZnVuYyhjb21wb25lbnRzLnVzZXJpbmZvKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5ob3N0ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLmhvc3QgPSBmdW5jKGNvbXBvbmVudHMuaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZnVuYyhjb21wb25lbnRzLnBhdGgpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnF1ZXJ5ID0gZnVuYyhjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5mcmFnbWVudCA9IGZ1bmMoY29tcG9uZW50cy5mcmFnbWVudCk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiByZWNvbXBvc2VBdXRob3JpdHkoY29tcG9uZW50cywgb3B0aW9ucykgewogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgaWYgKGNvbXBvbmVudHMudXNlcmluZm8gIT09IHZvaWQgMCkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMudXNlcmluZm8pOwogICAgICAgIHVyaVRva2Vucy5wdXNoKCJAIik7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgbGV0IGhvc3QgPSB1bmVzY2FwZShjb21wb25lbnRzLmhvc3QpOwogICAgICAgIGNvbnN0IGlwVjRyZXMgPSBub3JtYWxpemVJUHY0KGhvc3QpOwogICAgICAgIGlmIChpcFY0cmVzLmlzSVBWNCkgewogICAgICAgICAgaG9zdCA9IGlwVjRyZXMuaG9zdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3QgaXBWNnJlcyA9IG5vcm1hbGl6ZUlQdjYoaXBWNHJlcy5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICBpZiAoaXBWNnJlcy5pc0lQVjYgPT09IHRydWUpIHsKICAgICAgICAgICAgaG9zdCA9IGBbJHtpcFY2cmVzLmVzY2FwZWRIb3N0fV1gOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaG9zdCA9IGNvbXBvbmVudHMuaG9zdDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXJpVG9rZW5zLnB1c2goaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJudW1iZXIiIHx8IHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIjoiKTsKICAgICAgICB1cmlUb2tlbnMucHVzaChTdHJpbmcoY29tcG9uZW50cy5wb3J0KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaVRva2Vucy5sZW5ndGggPyB1cmlUb2tlbnMuam9pbigiIikgOiB2b2lkIDA7CiAgICB9CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgIHJlY29tcG9zZUF1dGhvcml0eSwKICAgICAgbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcsCiAgICAgIHJlbW92ZURvdFNlZ21lbnRzLAogICAgICBub3JtYWxpemVJUHY0LAogICAgICBub3JtYWxpemVJUHY2LAogICAgICBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3NjaGVtZXMuanMKdmFyIHJlcXVpcmVfc2NoZW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi9zY2hlbWVzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVVSURfUkVHID0gL15bXGRhLWZdezh9XGItW1xkYS1mXXs0fVxiLVtcZGEtZl17NH1cYi1bXGRhLWZdezR9XGItW1xkYS1mXXsxMn0kL2l1OwogICAgdmFyIFVSTl9SRUcgPSAvKFtcZGEtel1bXGRcLWEtel17MCwzMX0pOigoPzpbXHchJCcoKSorLFwtLjo7PUBdfCVbXGRhLWZdezJ9KSspL2l1OwogICAgZnVuY3Rpb24gaXNTZWN1cmUod3NDb21wb25lbnRzKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iID8gd3NDb21wb25lbnRzLnNlY3VyZSA6IFN0cmluZyh3c0NvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAid3NzIjsKICAgIH0KICAgIGZ1bmN0aW9uIGh0dHBQYXJzZShjb21wb25lbnRzKSB7CiAgICAgIGlmICghY29tcG9uZW50cy5ob3N0KSB7CiAgICAgICAgY29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgIkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LiI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBodHRwU2VyaWFsaXplKGNvbXBvbmVudHMpIHsKICAgICAgY29uc3Qgc2VjdXJlID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAiaHR0cHMiOwogICAgICBpZiAoY29tcG9uZW50cy5wb3J0ID09PSAoc2VjdXJlID8gNDQzIDogODApIHx8IGNvbXBvbmVudHMucG9ydCA9PT0gIiIpIHsKICAgICAgICBjb21wb25lbnRzLnBvcnQgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKCFjb21wb25lbnRzLnBhdGgpIHsKICAgICAgICBjb21wb25lbnRzLnBhdGggPSAiLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB3c1BhcnNlKHdzQ29tcG9uZW50cykgewogICAgICB3c0NvbXBvbmVudHMuc2VjdXJlID0gaXNTZWN1cmUod3NDb21wb25lbnRzKTsKICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9ICh3c0NvbXBvbmVudHMucGF0aCB8fCAiLyIpICsgKHdzQ29tcG9uZW50cy5xdWVyeSA/ICI/IiArIHdzQ29tcG9uZW50cy5xdWVyeSA6ICIiKTsKICAgICAgd3NDb21wb25lbnRzLnBhdGggPSB2b2lkIDA7CiAgICAgIHdzQ29tcG9uZW50cy5xdWVyeSA9IHZvaWQgMDsKICAgICAgcmV0dXJuIHdzQ29tcG9uZW50czsKICAgIH0KICAgIGZ1bmN0aW9uIHdzU2VyaWFsaXplKHdzQ29tcG9uZW50cykgewogICAgICBpZiAod3NDb21wb25lbnRzLnBvcnQgPT09IChpc1NlY3VyZSh3c0NvbXBvbmVudHMpID8gNDQzIDogODApIHx8IHdzQ29tcG9uZW50cy5wb3J0ID09PSAiIikgewogICAgICAgIHdzQ29tcG9uZW50cy5wb3J0ID0gdm9pZCAwOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgd3NDb21wb25lbnRzLnNjaGVtZSA9IHdzQ29tcG9uZW50cy5zZWN1cmUgPyAid3NzIiA6ICJ3cyI7CiAgICAgICAgd3NDb21wb25lbnRzLnNlY3VyZSA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAod3NDb21wb25lbnRzLnJlc291cmNlTmFtZSkgewogICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lLnNwbGl0KCI/Iik7CiAgICAgICAgd3NDb21wb25lbnRzLnBhdGggPSBwYXRoICYmIHBhdGggIT09ICIvIiA/IHBhdGggOiB2b2lkIDA7CiAgICAgICAgd3NDb21wb25lbnRzLnF1ZXJ5ID0gcXVlcnk7CiAgICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9IHZvaWQgMDsKICAgICAgfQogICAgICB3c0NvbXBvbmVudHMuZnJhZ21lbnQgPSB2b2lkIDA7CiAgICAgIHJldHVybiB3c0NvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm5QYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSB7CiAgICAgIGlmICghdXJuQ29tcG9uZW50cy5wYXRoKSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9ICJVUk4gY2FuIG5vdCBiZSBwYXJzZWQiOwogICAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSB1cm5Db21wb25lbnRzLnBhdGgubWF0Y2goVVJOX1JFRyk7CiAgICAgIGlmIChtYXRjaGVzKSB7CiAgICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uaWQgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSBtYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCB1cm5Db21wb25lbnRzLm5pZH1gOwogICAgICAgIGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTW3VyblNjaGVtZV07CiAgICAgICAgdXJuQ29tcG9uZW50cy5wYXRoID0gdm9pZCAwOwogICAgICAgIGlmIChzY2hlbWVIYW5kbGVyKSB7CiAgICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5wYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9IHVybkNvbXBvbmVudHMuZXJyb3IgfHwgIlVSTiBjYW4gbm90IGJlIHBhcnNlZC4iOwogICAgICB9CiAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJuU2VyaWFsaXplKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgIGNvbnN0IG5pZCA9IHVybkNvbXBvbmVudHMubmlkLnRvTG93ZXJDYXNlKCk7CiAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCBuaWR9YDsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbdXJuU2NoZW1lXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIpIHsKICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5zZXJpYWxpemUodXJuQ29tcG9uZW50cywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgY29uc3QgdXJpQ29tcG9uZW50cyA9IHVybkNvbXBvbmVudHM7CiAgICAgIGNvbnN0IG5zcyA9IHVybkNvbXBvbmVudHMubnNzOwogICAgICB1cmlDb21wb25lbnRzLnBhdGggPSBgJHtuaWQgfHwgb3B0aW9ucy5uaWR9OiR7bnNzfWA7CiAgICAgIG9wdGlvbnMuc2tpcEVzY2FwZSA9IHRydWU7CiAgICAgIHJldHVybiB1cmlDb21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJudXVpZFBhcnNlKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3QgdXVpZENvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzOwogICAgICB1dWlkQ29tcG9uZW50cy51dWlkID0gdXVpZENvbXBvbmVudHMubnNzOwogICAgICB1dWlkQ29tcG9uZW50cy5uc3MgPSB2b2lkIDA7CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiAoIXV1aWRDb21wb25lbnRzLnV1aWQgfHwgIVVVSURfUkVHLnRlc3QodXVpZENvbXBvbmVudHMudXVpZCkpKSB7CiAgICAgICAgdXVpZENvbXBvbmVudHMuZXJyb3IgPSB1dWlkQ29tcG9uZW50cy5lcnJvciB8fCAiVVVJRCBpcyBub3QgdmFsaWQuIjsKICAgICAgfQogICAgICByZXR1cm4gdXVpZENvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm51dWlkU2VyaWFsaXplKHV1aWRDb21wb25lbnRzKSB7CiAgICAgIGNvbnN0IHVybkNvbXBvbmVudHMgPSB1dWlkQ29tcG9uZW50czsKICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSAodXVpZENvbXBvbmVudHMudXVpZCB8fCAiIikudG9Mb3dlckNhc2UoKTsKICAgICAgcmV0dXJuIHVybkNvbXBvbmVudHM7CiAgICB9CiAgICB2YXIgaHR0cCA9IHsKICAgICAgc2NoZW1lOiAiaHR0cCIsCiAgICAgIGRvbWFpbkhvc3Q6IHRydWUsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciBodHRwcyA9IHsKICAgICAgc2NoZW1lOiAiaHR0cHMiLAogICAgICBkb21haW5Ib3N0OiBodHRwLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3cyA9IHsKICAgICAgc2NoZW1lOiAid3MiLAogICAgICBkb21haW5Ib3N0OiB0cnVlLAogICAgICBwYXJzZTogd3NQYXJzZSwKICAgICAgc2VyaWFsaXplOiB3c1NlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3c3MgPSB7CiAgICAgIHNjaGVtZTogIndzcyIsCiAgICAgIGRvbWFpbkhvc3Q6IHdzLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiB3cy5wYXJzZSwKICAgICAgc2VyaWFsaXplOiB3cy5zZXJpYWxpemUKICAgIH07CiAgICB2YXIgdXJuID0gewogICAgICBzY2hlbWU6ICJ1cm4iLAogICAgICBwYXJzZTogdXJuUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogdXJuU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIHVybnV1aWQgPSB7CiAgICAgIHNjaGVtZTogInVybjp1dWlkIiwKICAgICAgcGFyc2U6IHVybnV1aWRQYXJzZSwKICAgICAgc2VyaWFsaXplOiB1cm51dWlkU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIFNDSEVNRVMgPSB7CiAgICAgIGh0dHAsCiAgICAgIGh0dHBzLAogICAgICB3cywKICAgICAgd3NzLAogICAgICB1cm4sCiAgICAgICJ1cm46dXVpZCI6IHVybnV1aWQKICAgIH07CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBTQ0hFTUVTOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2luZGV4LmpzCnZhciByZXF1aXJlX2Zhc3RfdXJpID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBub3JtYWxpemVJUHY2LCBub3JtYWxpemVJUHY0LCByZW1vdmVEb3RTZWdtZW50cywgcmVjb21wb3NlQXV0aG9yaXR5LCBub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyB9ID0gcmVxdWlyZV91dGlsczIoKTsKICAgIHZhciBTQ0hFTUVTID0gcmVxdWlyZV9zY2hlbWVzKCk7CiAgICBmdW5jdGlvbiBub3JtYWxpemUodXJpLCBvcHRpb25zKSB7CiAgICAgIGlmICh0eXBlb2YgdXJpID09PSAic3RyaW5nIikgewogICAgICAgIHVyaSA9IHNlcmlhbGl6ZShwYXJzZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpID09PSAib2JqZWN0IikgewogICAgICAgIHVyaSA9IHBhcnNlKHNlcmlhbGl6ZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXR1cm4gdXJpOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShiYXNlVVJJLCByZWxhdGl2ZVVSSSwgb3B0aW9ucykgewogICAgICBjb25zdCBzY2hlbWVsZXNzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBzY2hlbWU6ICJudWxsIiB9LCBvcHRpb25zKTsKICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlQ29tcG9uZW50cyhwYXJzZShiYXNlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHBhcnNlKHJlbGF0aXZlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHNjaGVtZWxlc3NPcHRpb25zLCB0cnVlKTsKICAgICAgcmV0dXJuIHNlcmlhbGl6ZShyZXNvbHZlZCwgeyAuLi5zY2hlbWVsZXNzT3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRzKGJhc2UsIHJlbGF0aXZlLCBvcHRpb25zLCBza2lwTm9ybWFsaXphdGlvbikgewogICAgICBjb25zdCB0YXJnZXQgPSB7fTsKICAgICAgaWYgKCFza2lwTm9ybWFsaXphdGlvbikgewogICAgICAgIGJhc2UgPSBwYXJzZShzZXJpYWxpemUoYmFzZSwgb3B0aW9ucyksIG9wdGlvbnMpOwogICAgICAgIHJlbGF0aXZlID0gcGFyc2Uoc2VyaWFsaXplKHJlbGF0aXZlLCBvcHRpb25zKSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiByZWxhdGl2ZS5zY2hlbWUpIHsKICAgICAgICB0YXJnZXQuc2NoZW1lID0gcmVsYXRpdmUuc2NoZW1lOwogICAgICAgIHRhcmdldC51c2VyaW5mbyA9IHJlbGF0aXZlLnVzZXJpbmZvOwogICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICB0YXJnZXQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7CiAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoIHx8ICIiKTsKICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocmVsYXRpdmUudXNlcmluZm8gIT09IHZvaWQgMCB8fCByZWxhdGl2ZS5ob3N0ICE9PSB2b2lkIDAgfHwgcmVsYXRpdmUucG9ydCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbzsKICAgICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICAgIHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDsKICAgICAgICAgIHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCAiIik7CiAgICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFyZWxhdGl2ZS5wYXRoKSB7CiAgICAgICAgICAgIHRhcmdldC5wYXRoID0gYmFzZS5wYXRoOwogICAgICAgICAgICBpZiAocmVsYXRpdmUucXVlcnkgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IGJhc2UucXVlcnk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChyZWxhdGl2ZS5wYXRoLmNoYXJBdCgwKSA9PT0gIi8iKSB7CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAoKGJhc2UudXNlcmluZm8gIT09IHZvaWQgMCB8fCBiYXNlLmhvc3QgIT09IHZvaWQgMCB8fCBiYXNlLnBvcnQgIT09IHZvaWQgMCkgJiYgIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSAiLyIgKyByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQucGF0aCA9IGJhc2UucGF0aC5zbGljZSgwLCBiYXNlLnBhdGgubGFzdEluZGV4T2YoIi8iKSArIDEpICsgcmVsYXRpdmUucGF0aDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyh0YXJnZXQucGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7CiAgICAgICAgICB9CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSBiYXNlLnVzZXJpbmZvOwogICAgICAgICAgdGFyZ2V0Lmhvc3QgPSBiYXNlLmhvc3Q7CiAgICAgICAgICB0YXJnZXQucG9ydCA9IGJhc2UucG9ydDsKICAgICAgICB9CiAgICAgICAgdGFyZ2V0LnNjaGVtZSA9IGJhc2Uuc2NoZW1lOwogICAgICB9CiAgICAgIHRhcmdldC5mcmFnbWVudCA9IHJlbGF0aXZlLmZyYWdtZW50OwogICAgICByZXR1cm4gdGFyZ2V0OwogICAgfQogICAgZnVuY3Rpb24gZXF1YWwodXJpQSwgdXJpQiwgb3B0aW9ucykgewogICAgICBpZiAodHlwZW9mIHVyaUEgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpQSA9IHVuZXNjYXBlKHVyaUEpOwogICAgICAgIHVyaUEgPSBzZXJpYWxpemUobm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcocGFyc2UodXJpQSwgb3B0aW9ucyksIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHVyaUEgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdXJpQSA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyh1cmlBLCB0cnVlKSwgeyAuLi5vcHRpb25zLCBza2lwRXNjYXBlOiB0cnVlIH0pOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgdXJpQiA9PT0gInN0cmluZyIpIHsKICAgICAgICB1cmlCID0gdW5lc2NhcGUodXJpQik7CiAgICAgICAgdXJpQiA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyhwYXJzZSh1cmlCLCBvcHRpb25zKSwgdHJ1ZSksIHsgLi4ub3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpQiA9PT0gIm9iamVjdCIpIHsKICAgICAgICB1cmlCID0gc2VyaWFsaXplKG5vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKHVyaUIsIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaUEudG9Mb3dlckNhc2UoKSA9PT0gdXJpQi50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gc2VyaWFsaXplKGNtcHRzLCBvcHRzKSB7CiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7CiAgICAgICAgaG9zdDogY21wdHMuaG9zdCwKICAgICAgICBzY2hlbWU6IGNtcHRzLnNjaGVtZSwKICAgICAgICB1c2VyaW5mbzogY21wdHMudXNlcmluZm8sCiAgICAgICAgcG9ydDogY21wdHMucG9ydCwKICAgICAgICBwYXRoOiBjbXB0cy5wYXRoLAogICAgICAgIHF1ZXJ5OiBjbXB0cy5xdWVyeSwKICAgICAgICBuaWQ6IGNtcHRzLm5pZCwKICAgICAgICBuc3M6IGNtcHRzLm5zcywKICAgICAgICB1dWlkOiBjbXB0cy51dWlkLAogICAgICAgIGZyYWdtZW50OiBjbXB0cy5mcmFnbWVudCwKICAgICAgICByZWZlcmVuY2U6IGNtcHRzLnJlZmVyZW5jZSwKICAgICAgICByZXNvdXJjZU5hbWU6IGNtcHRzLnJlc291cmNlTmFtZSwKICAgICAgICBzZWN1cmU6IGNtcHRzLnNlY3VyZSwKICAgICAgICBlcnJvcjogIiIKICAgICAgfTsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbKG9wdGlvbnMuc2NoZW1lIHx8IGNvbXBvbmVudHMuc2NoZW1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5zZXJpYWxpemUpIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKGNvbXBvbmVudHMsIG9wdGlvbnMpOwogICAgICBpZiAoY29tcG9uZW50cy5wYXRoICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoIW9wdGlvbnMuc2tpcEVzY2FwZSkgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZXNjYXBlKGNvbXBvbmVudHMucGF0aCk7CiAgICAgICAgICBpZiAoY29tcG9uZW50cy5zY2hlbWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBjb21wb25lbnRzLnBhdGggPSBjb21wb25lbnRzLnBhdGguc3BsaXQoIiUzQSIpLmpvaW4oIjoiKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gdW5lc2NhcGUoY29tcG9uZW50cy5wYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IiAmJiBjb21wb25lbnRzLnNjaGVtZSkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuc2NoZW1lLCAiOiIpOwogICAgICB9CiAgICAgIGNvbnN0IGF1dGhvcml0eSA9IHJlY29tcG9zZUF1dGhvcml0eShjb21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgaWYgKGF1dGhvcml0eSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IikgewogICAgICAgICAgdXJpVG9rZW5zLnB1c2goIi8vIik7CiAgICAgICAgfQogICAgICAgIHVyaVRva2Vucy5wdXNoKGF1dGhvcml0eSk7CiAgICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnBhdGguY2hhckF0KDApICE9PSAiLyIpIHsKICAgICAgICAgIHVyaVRva2Vucy5wdXNoKCIvIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnBhdGggIT09IHZvaWQgMCkgewogICAgICAgIGxldCBzID0gY29tcG9uZW50cy5wYXRoOwogICAgICAgIGlmICghb3B0aW9ucy5hYnNvbHV0ZVBhdGggJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLmFic29sdXRlUGF0aCkpIHsKICAgICAgICAgIHMgPSByZW1vdmVEb3RTZWdtZW50cyhzKTsKICAgICAgICB9CiAgICAgICAgaWYgKGF1dGhvcml0eSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBzID0gcy5yZXBsYWNlKC9eXC9cLy91LCAiLyUyRiIpOwogICAgICAgIH0KICAgICAgICB1cmlUb2tlbnMucHVzaChzKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIj8iLCBjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIiMiLCBjb21wb25lbnRzLmZyYWdtZW50KTsKICAgICAgfQogICAgICByZXR1cm4gdXJpVG9rZW5zLmpvaW4oIiIpOwogICAgfQogICAgdmFyIGhleExvb2tVcCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyNyB9LCAodiwgaykgPT4gL1teISIkJicoKSorLFwtLjs9X2BhLXp7fX5dL3UudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGspKSk7CiAgICBmdW5jdGlvbiBub25TaW1wbGVEb21haW4odmFsdWUpIHsKICAgICAgbGV0IGNvZGUgPSAwOwogICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTsKICAgICAgICBpZiAoY29kZSA+IDEyNiB8fCBoZXhMb29rVXBbY29kZV0pIHsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB2YXIgVVJJX1BBUlNFID0gL14oPzooW14jLzo/XSspOik/KD86XC9cLygoPzooW14jLz9AXSopQCk/KFxbW14jLz9cXV0rXF18W14jLzo/XSopKD86OihcZCopKT8pKT8oW14jP10qKSg/Olw/KFteI10qKSk/KD86IygoPzoufFtcblxyXSkqKSk/L3U7CiAgICBmdW5jdGlvbiBwYXJzZSh1cmksIG9wdHMpIHsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCBwYXJzZWQgPSB7CiAgICAgICAgc2NoZW1lOiB2b2lkIDAsCiAgICAgICAgdXNlcmluZm86IHZvaWQgMCwKICAgICAgICBob3N0OiAiIiwKICAgICAgICBwb3J0OiB2b2lkIDAsCiAgICAgICAgcGF0aDogIiIsCiAgICAgICAgcXVlcnk6IHZvaWQgMCwKICAgICAgICBmcmFnbWVudDogdm9pZCAwCiAgICAgIH07CiAgICAgIGNvbnN0IGdvdEVuY29kaW5nID0gdXJpLmluZGV4T2YoIiUiKSAhPT0gLTE7CiAgICAgIGxldCBpc0lQID0gZmFsc2U7CiAgICAgIGlmIChvcHRpb25zLnJlZmVyZW5jZSA9PT0gInN1ZmZpeCIpIHVyaSA9IChvcHRpb25zLnNjaGVtZSA/IG9wdGlvbnMuc2NoZW1lICsgIjoiIDogIiIpICsgIi8vIiArIHVyaTsKICAgICAgY29uc3QgbWF0Y2hlcyA9IHVyaS5tYXRjaChVUklfUEFSU0UpOwogICAgICBpZiAobWF0Y2hlcykgewogICAgICAgIHBhcnNlZC5zY2hlbWUgPSBtYXRjaGVzWzFdOwogICAgICAgIHBhcnNlZC51c2VyaW5mbyA9IG1hdGNoZXNbM107CiAgICAgICAgcGFyc2VkLmhvc3QgPSBtYXRjaGVzWzRdOwogICAgICAgIHBhcnNlZC5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApOwogICAgICAgIHBhcnNlZC5wYXRoID0gbWF0Y2hlc1s2XSB8fCAiIjsKICAgICAgICBwYXJzZWQucXVlcnkgPSBtYXRjaGVzWzddOwogICAgICAgIHBhcnNlZC5mcmFnbWVudCA9IG1hdGNoZXNbOF07CiAgICAgICAgaWYgKGlzTmFOKHBhcnNlZC5wb3J0KSkgewogICAgICAgICAgcGFyc2VkLnBvcnQgPSBtYXRjaGVzWzVdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyc2VkLmhvc3QpIHsKICAgICAgICAgIGNvbnN0IGlwdjRyZXN1bHQgPSBub3JtYWxpemVJUHY0KHBhcnNlZC5ob3N0KTsKICAgICAgICAgIGlmIChpcHY0cmVzdWx0LmlzSVBWNCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY29uc3QgaXB2NnJlc3VsdCA9IG5vcm1hbGl6ZUlQdjYoaXB2NHJlc3VsdC5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NnJlc3VsdC5ob3N0LnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlzSVAgPSBpcHY2cmVzdWx0LmlzSVBWNjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NHJlc3VsdC5ob3N0OwogICAgICAgICAgICBpc0lQID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5zY2hlbWUgPT09IHZvaWQgMCAmJiBwYXJzZWQudXNlcmluZm8gPT09IHZvaWQgMCAmJiBwYXJzZWQuaG9zdCA9PT0gdm9pZCAwICYmIHBhcnNlZC5wb3J0ID09PSB2b2lkIDAgJiYgIXBhcnNlZC5wYXRoICYmIHBhcnNlZC5xdWVyeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInNhbWUtZG9jdW1lbnQiOwogICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnNjaGVtZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInJlbGF0aXZlIjsKICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC5mcmFnbWVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gImFic29sdXRlIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcGFyc2VkLnJlZmVyZW5jZSA9ICJ1cmkiOwogICAgICAgIH0KICAgICAgICBpZiAob3B0aW9ucy5yZWZlcmVuY2UgJiYgb3B0aW9ucy5yZWZlcmVuY2UgIT09ICJzdWZmaXgiICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBwYXJzZWQucmVmZXJlbmNlKSB7CiAgICAgICAgICBwYXJzZWQuZXJyb3IgPSBwYXJzZWQuZXJyb3IgfHwgIlVSSSBpcyBub3QgYSAiICsgb3B0aW9ucy5yZWZlcmVuY2UgKyAiIHJlZmVyZW5jZS4iOwogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgcGFyc2VkLnNjaGVtZSB8fCAiIikudG9Mb3dlckNhc2UoKV07CiAgICAgICAgaWYgKCFvcHRpb25zLnVuaWNvZGVTdXBwb3J0ICYmICghc2NoZW1lSGFuZGxlciB8fCAhc2NoZW1lSGFuZGxlci51bmljb2RlU3VwcG9ydCkpIHsKICAgICAgICAgIGlmIChwYXJzZWQuaG9zdCAmJiAob3B0aW9ucy5kb21haW5Ib3N0IHx8IHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSAmJiBpc0lQID09PSBmYWxzZSAmJiBub25TaW1wbGVEb21haW4ocGFyc2VkLmhvc3QpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcGFyc2VkLmhvc3QgPSBVUkwuZG9tYWluVG9BU0NJSShwYXJzZWQuaG9zdC50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIEFTQ0lJOiAiICsgZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNjaGVtZUhhbmRsZXIgfHwgc2NoZW1lSGFuZGxlciAmJiAhc2NoZW1lSGFuZGxlci5za2lwTm9ybWFsaXplKSB7CiAgICAgICAgICBpZiAoZ290RW5jb2RpbmcgJiYgcGFyc2VkLnNjaGVtZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5zY2hlbWUgPSB1bmVzY2FwZShwYXJzZWQuc2NoZW1lKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChnb3RFbmNvZGluZyAmJiBwYXJzZWQuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gdW5lc2NhcGUocGFyc2VkLmhvc3QpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhcnNlZC5wYXRoICE9PSB2b2lkIDAgJiYgcGFyc2VkLnBhdGgubGVuZ3RoKSB7CiAgICAgICAgICAgIHBhcnNlZC5wYXRoID0gZXNjYXBlKHVuZXNjYXBlKHBhcnNlZC5wYXRoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGFyc2VkLmZyYWdtZW50ICE9PSB2b2lkIDAgJiYgcGFyc2VkLmZyYWdtZW50Lmxlbmd0aCkgewogICAgICAgICAgICBwYXJzZWQuZnJhZ21lbnQgPSBlbmNvZGVVUkkoZGVjb2RlVVJJQ29tcG9uZW50KHBhcnNlZC5mcmFnbWVudCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLnBhcnNlKSB7CiAgICAgICAgICBzY2hlbWVIYW5kbGVyLnBhcnNlKHBhcnNlZCwgb3B0aW9ucyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiVVJJIGNhbiBub3QgYmUgcGFyc2VkLiI7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhcnNlZDsKICAgIH0KICAgIHZhciBmYXN0VXJpID0gewogICAgICBTQ0hFTUVTLAogICAgICBub3JtYWxpemUsCiAgICAgIHJlc29sdmUsCiAgICAgIHJlc29sdmVDb21wb25lbnRzLAogICAgICBlcXVhbCwKICAgICAgc2VyaWFsaXplLAogICAgICBwYXJzZQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZGVmYXVsdCA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZmFzdFVyaSA9IGZhc3RVcmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3VyaS5qcwp2YXIgcmVxdWlyZV91cmkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdXJpLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXJpID0gcmVxdWlyZV9mYXN0X3VyaSgpOwogICAgdXJpLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91cmkiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB1cmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvcmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvZGVHZW4gPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IGV4cG9ydHMyLktleXdvcmRDeHQgPSB2b2lkIDA7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIktleXdvcmRDeHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0ZV8xLktleXdvcmRDeHQ7CiAgICB9IH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyaW5naWZ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cmluZ2lmeTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb2RlR2VuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLkNvZGVHZW47CiAgICB9IH0pOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIHJlZl9lcnJvcl8xID0gcmVxdWlyZV9yZWZfZXJyb3IoKTsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIGNvZGVnZW5fMiA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgJGRhdGFSZWZTY2hlbWEgPSByZXF1aXJlX2RhdGEoKTsKICAgIHZhciB1cmlfMSA9IHJlcXVpcmVfdXJpKCk7CiAgICB2YXIgZGVmYXVsdFJlZ0V4cCA9IChzdHIyLCBmbGFncykgPT4gbmV3IFJlZ0V4cChzdHIyLCBmbGFncyk7CiAgICBkZWZhdWx0UmVnRXhwLmNvZGUgPSAibmV3IFJlZ0V4cCI7CiAgICB2YXIgTUVUQV9JR05PUkVfT1BUSU9OUyA9IFsicmVtb3ZlQWRkaXRpb25hbCIsICJ1c2VEZWZhdWx0cyIsICJjb2VyY2VUeXBlcyJdOwogICAgdmFyIEVYVF9TQ09QRV9OQU1FUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFsKICAgICAgInZhbGlkYXRlIiwKICAgICAgInNlcmlhbGl6ZSIsCiAgICAgICJwYXJzZSIsCiAgICAgICJ3cmFwcGVyIiwKICAgICAgInJvb3QiLAogICAgICAic2NoZW1hIiwKICAgICAgImtleXdvcmQiLAogICAgICAicGF0dGVybiIsCiAgICAgICJmb3JtYXRzIiwKICAgICAgInZhbGlkYXRlJGRhdGEiLAogICAgICAiZnVuYyIsCiAgICAgICJvYmoiLAogICAgICAiRXJyb3IiCiAgICBdKTsKICAgIHZhciByZW1vdmVkT3B0aW9ucyA9IHsKICAgICAgZXJyb3JEYXRhUGF0aDogIiIsCiAgICAgIGZvcm1hdDogImB2YWxpZGF0ZUZvcm1hdHM6IGZhbHNlYCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG51bGxhYmxlOiAnIm51bGxhYmxlIiBrZXl3b3JkIGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0LicsCiAgICAgIGpzb25Qb2ludGVyczogIkRlcHJlY2F0ZWQganNQcm9wZXJ0eVN5bnRheCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIGV4dGVuZFJlZnM6ICJEZXByZWNhdGVkIGlnbm9yZUtleXdvcmRzV2l0aFJlZiBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG1pc3NpbmdSZWZzOiAiUGFzcyBlbXB0eSBzY2hlbWEgd2l0aCAkaWQgdGhhdCBzaG91bGQgYmUgaWdub3JlZCB0byBhanYuYWRkU2NoZW1hLiIsCiAgICAgIHByb2Nlc3NDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3Byb2Nlc3M6IChjb2RlLCBzY2hlbWFFbnY6IG9iamVjdCkgPT4gc3RyaW5nfWAiLAogICAgICBzb3VyY2VDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3NvdXJjZTogdHJ1ZX1gIiwKICAgICAgc3RyaWN0RGVmYXVsdHM6ICJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLAogICAgICBzdHJpY3RLZXl3b3JkczogIkl0IGlzIGRlZmF1bHQgbm93LCBzZWUgb3B0aW9uIGBzdHJpY3RgLiIsCiAgICAgIHVuaXF1ZUl0ZW1zOiAnInVuaXF1ZUl0ZW1zIiBrZXl3b3JkIGlzIGFsd2F5cyB2YWxpZGF0ZWQuJywKICAgICAgdW5rbm93bkZvcm1hdHM6ICJEaXNhYmxlIHN0cmljdCBtb2RlIG9yIHBhc3MgYHRydWVgIHRvIGBhanYuYWRkRm9ybWF0YCAob3IgYGZvcm1hdHNgIG9wdGlvbikuIiwKICAgICAgY2FjaGU6ICJNYXAgaXMgdXNlZCBhcyBjYWNoZSwgc2NoZW1hIG9iamVjdCBhcyBrZXkuIiwKICAgICAgc2VyaWFsaXplOiAiTWFwIGlzIHVzZWQgYXMgY2FjaGUsIHNjaGVtYSBvYmplY3QgYXMga2V5LiIsCiAgICAgIGFqdkVycm9yczogIkl0IGlzIGRlZmF1bHQgbm93LiIKICAgIH07CiAgICB2YXIgZGVwcmVjYXRlZE9wdGlvbnMgPSB7CiAgICAgIGlnbm9yZUtleXdvcmRzV2l0aFJlZjogIiIsCiAgICAgIGpzUHJvcGVydHlTeW50YXg6ICIiLAogICAgICB1bmljb2RlOiAnIm1pbkxlbmd0aCIvIm1heExlbmd0aCIgYWNjb3VudCBmb3IgdW5pY29kZSBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuJwogICAgfTsKICAgIHZhciBNQVhfRVhQUkVTU0lPTiA9IDIwMDsKICAgIGZ1bmN0aW9uIHJlcXVpcmVkT3B0aW9ucyhvKSB7CiAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3MsIF90LCBfdSwgX3YsIF93LCBfeCwgX3ksIF96LCBfMDsKICAgICAgY29uc3QgcyA9IG8uc3RyaWN0OwogICAgICBjb25zdCBfb3B0eiA9IChfYSA9IG8uY29kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplOwogICAgICBjb25zdCBvcHRpbWl6ZSA9IF9vcHR6ID09PSB0cnVlIHx8IF9vcHR6ID09PSB2b2lkIDAgPyAxIDogX29wdHogfHwgMDsKICAgICAgY29uc3QgcmVnRXhwID0gKF9jID0gKF9iID0gby5jb2RlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVnRXhwKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBkZWZhdWx0UmVnRXhwOwogICAgICBjb25zdCB1cmlSZXNvbHZlciA9IChfZCA9IG8udXJpUmVzb2x2ZXIpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHVyaV8xLmRlZmF1bHQ7CiAgICAgIHJldHVybiB7CiAgICAgICAgc3RyaWN0U2NoZW1hOiAoX2YgPSAoX2UgPSBvLnN0cmljdFNjaGVtYSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogcykgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogdHJ1ZSwKICAgICAgICBzdHJpY3ROdW1iZXJzOiAoX2ggPSAoX2cgPSBvLnN0cmljdE51bWJlcnMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHMpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHRydWUsCiAgICAgICAgc3RyaWN0VHlwZXM6IChfayA9IChfaiA9IG8uc3RyaWN0VHlwZXMpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IHMpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6ICJsb2ciLAogICAgICAgIHN0cmljdFR1cGxlczogKF9tID0gKF9sID0gby5zdHJpY3RUdXBsZXMpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6IHMpICE9PSBudWxsICYmIF9tICE9PSB2b2lkIDAgPyBfbSA6ICJsb2ciLAogICAgICAgIHN0cmljdFJlcXVpcmVkOiAoX3AgPSAoX28gPSBvLnN0cmljdFJlcXVpcmVkKSAhPT0gbnVsbCAmJiBfbyAhPT0gdm9pZCAwID8gX28gOiBzKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiBmYWxzZSwKICAgICAgICBjb2RlOiBvLmNvZGUgPyB7IC4uLm8uY29kZSwgb3B0aW1pemUsIHJlZ0V4cCB9IDogeyBvcHRpbWl6ZSwgcmVnRXhwIH0sCiAgICAgICAgbG9vcFJlcXVpcmVkOiAoX3EgPSBvLmxvb3BSZXF1aXJlZCkgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogTUFYX0VYUFJFU1NJT04sCiAgICAgICAgbG9vcEVudW06IChfciA9IG8ubG9vcEVudW0pICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6IE1BWF9FWFBSRVNTSU9OLAogICAgICAgIG1ldGE6IChfcyA9IG8ubWV0YSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogdHJ1ZSwKICAgICAgICBtZXNzYWdlczogKF90ID0gby5tZXNzYWdlcykgIT09IG51bGwgJiYgX3QgIT09IHZvaWQgMCA/IF90IDogdHJ1ZSwKICAgICAgICBpbmxpbmVSZWZzOiAoX3UgPSBvLmlubGluZVJlZnMpICE9PSBudWxsICYmIF91ICE9PSB2b2lkIDAgPyBfdSA6IHRydWUsCiAgICAgICAgc2NoZW1hSWQ6IChfdiA9IG8uc2NoZW1hSWQpICE9PSBudWxsICYmIF92ICE9PSB2b2lkIDAgPyBfdiA6ICIkaWQiLAogICAgICAgIGFkZFVzZWRTY2hlbWE6IChfdyA9IG8uYWRkVXNlZFNjaGVtYSkgIT09IG51bGwgJiYgX3cgIT09IHZvaWQgMCA/IF93IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZVNjaGVtYTogKF94ID0gby52YWxpZGF0ZVNjaGVtYSkgIT09IG51bGwgJiYgX3ggIT09IHZvaWQgMCA/IF94IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZUZvcm1hdHM6IChfeSA9IG8udmFsaWRhdGVGb3JtYXRzKSAhPT0gbnVsbCAmJiBfeSAhPT0gdm9pZCAwID8gX3kgOiB0cnVlLAogICAgICAgIHVuaWNvZGVSZWdFeHA6IChfeiA9IG8udW5pY29kZVJlZ0V4cCkgIT09IG51bGwgJiYgX3ogIT09IHZvaWQgMCA/IF96IDogdHJ1ZSwKICAgICAgICBpbnQzMnJhbmdlOiAoXzAgPSBvLmludDMycmFuZ2UpICE9PSBudWxsICYmIF8wICE9PSB2b2lkIDAgPyBfMCA6IHRydWUsCiAgICAgICAgdXJpUmVzb2x2ZXIKICAgICAgfTsKICAgIH0KICAgIHZhciBBanYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkgewogICAgICAgIHRoaXMuc2NoZW1hcyA9IHt9OwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICAgIHRoaXMuZm9ybWF0cyA9IHt9OwogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgdGhpcy5fbG9hZGluZyA9IHt9OwogICAgICAgIHRoaXMuX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBvcHRzID0gdGhpcy5vcHRzID0geyAuLi5vcHRzLCAuLi5yZXF1aXJlZE9wdGlvbnMob3B0cykgfTsKICAgICAgICBjb25zdCB7IGVzNSwgbGluZXMgfSA9IHRoaXMub3B0cy5jb2RlOwogICAgICAgIHRoaXMuc2NvcGUgPSBuZXcgY29kZWdlbl8yLlZhbHVlU2NvcGUoeyBzY29wZToge30sIHByZWZpeGVzOiBFWFRfU0NPUEVfTkFNRVMsIGVzNSwgbGluZXMgfSk7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIob3B0cy5sb2dnZXIpOwogICAgICAgIGNvbnN0IGZvcm1hdE9wdCA9IG9wdHMudmFsaWRhdGVGb3JtYXRzOwogICAgICAgIG9wdHMudmFsaWRhdGVGb3JtYXRzID0gZmFsc2U7CiAgICAgICAgdGhpcy5SVUxFUyA9ICgwLCBydWxlc18xLmdldFJ1bGVzKSgpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIHJlbW92ZWRPcHRpb25zLCBvcHRzLCAiTk9UIFNVUFBPUlRFRCIpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIGRlcHJlY2F0ZWRPcHRpb25zLCBvcHRzLCAiREVQUkVDQVRFRCIsICJ3YXJuIik7CiAgICAgICAgdGhpcy5fbWV0YU9wdHMgPSBnZXRNZXRhU2NoZW1hT3B0aW9ucy5jYWxsKHRoaXMpOwogICAgICAgIGlmIChvcHRzLmZvcm1hdHMpCiAgICAgICAgICBhZGRJbml0aWFsRm9ybWF0cy5jYWxsKHRoaXMpOwogICAgICAgIHRoaXMuX2FkZFZvY2FidWxhcmllcygpOwogICAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhU2NoZW1hKCk7CiAgICAgICAgaWYgKG9wdHMua2V5d29yZHMpCiAgICAgICAgICBhZGRJbml0aWFsS2V5d29yZHMuY2FsbCh0aGlzLCBvcHRzLmtleXdvcmRzKTsKICAgICAgICBpZiAodHlwZW9mIG9wdHMubWV0YSA9PSAib2JqZWN0IikKICAgICAgICAgIHRoaXMuYWRkTWV0YVNjaGVtYShvcHRzLm1ldGEpOwogICAgICAgIGFkZEluaXRpYWxTY2hlbWFzLmNhbGwodGhpcyk7CiAgICAgICAgb3B0cy52YWxpZGF0ZUZvcm1hdHMgPSBmb3JtYXRPcHQ7CiAgICAgIH0KICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICB0aGlzLmFkZEtleXdvcmQoIiRhc3luYyIpOwogICAgICB9CiAgICAgIF9hZGREZWZhdWx0TWV0YVNjaGVtYSgpIHsKICAgICAgICBjb25zdCB7ICRkYXRhLCBtZXRhLCBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGxldCBfZGF0YVJlZlNjaGVtYSA9ICRkYXRhUmVmU2NoZW1hOwogICAgICAgIGlmIChzY2hlbWFJZCA9PT0gImlkIikgewogICAgICAgICAgX2RhdGFSZWZTY2hlbWEgPSB7IC4uLiRkYXRhUmVmU2NoZW1hIH07CiAgICAgICAgICBfZGF0YVJlZlNjaGVtYS5pZCA9IF9kYXRhUmVmU2NoZW1hLiRpZDsKICAgICAgICAgIGRlbGV0ZSBfZGF0YVJlZlNjaGVtYS4kaWQ7CiAgICAgICAgfQogICAgICAgIGlmIChtZXRhICYmICRkYXRhKQogICAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKF9kYXRhUmVmU2NoZW1hLCBfZGF0YVJlZlNjaGVtYVtzY2hlbWFJZF0sIGZhbHNlKTsKICAgICAgfQogICAgICBkZWZhdWx0TWV0YSgpIHsKICAgICAgICBjb25zdCB7IG1ldGEsIHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHR5cGVvZiBtZXRhID09ICJvYmplY3QiID8gbWV0YVtzY2hlbWFJZF0gfHwgbWV0YSA6IHZvaWQgMDsKICAgICAgfQogICAgICB2YWxpZGF0ZShzY2hlbWFLZXlSZWYsIGRhdGEpIHsKICAgICAgICBsZXQgdjsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYUtleVJlZiA9PSAic3RyaW5nIikgewogICAgICAgICAgdiA9IHRoaXMuZ2V0U2NoZW1hKHNjaGVtYUtleVJlZik7CiAgICAgICAgICBpZiAoIXYpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gc2NoZW1hIHdpdGgga2V5IG9yIHJlZiAiJHtzY2hlbWFLZXlSZWZ9ImApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2ID0gdGhpcy5jb21waWxlKHNjaGVtYUtleVJlZik7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gdihkYXRhKTsKICAgICAgICBpZiAoISgiJGFzeW5jIiBpbiB2KSkKICAgICAgICAgIHRoaXMuZXJyb3JzID0gdi5lcnJvcnM7CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIGNvbXBpbGUoc2NoZW1hMiwgX21ldGEpIHsKICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEpOwogICAgICAgIHJldHVybiBzY2gudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZVNjaGVtYUVudihzY2gpOwogICAgICB9CiAgICAgIGNvbXBpbGVBc3luYyhzY2hlbWEyLCBtZXRhKSB7CiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMubG9hZFNjaGVtYSAhPSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB7IGxvYWRTY2hlbWEgfSA9IHRoaXMub3B0czsKICAgICAgICByZXR1cm4gcnVuQ29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoZW1hMiwgbWV0YSk7CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuQ29tcGlsZUFzeW5jKF9zY2hlbWEsIF9tZXRhKSB7CiAgICAgICAgICBhd2FpdCBsb2FkTWV0YVNjaGVtYS5jYWxsKHRoaXMsIF9zY2hlbWEuJHNjaGVtYSk7CiAgICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoX3NjaGVtYSwgX21ldGEpOwogICAgICAgICAgcmV0dXJuIHNjaC52YWxpZGF0ZSB8fCBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1ldGFTY2hlbWEoJHJlZikgewogICAgICAgICAgaWYgKCRyZWYgJiYgIXRoaXMuZ2V0U2NoZW1hKCRyZWYpKSB7CiAgICAgICAgICAgIGF3YWl0IHJ1bkNvbXBpbGVBc3luYy5jYWxsKHRoaXMsIHsgJHJlZiB9LCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gX2NvbXBpbGVBc3luYyhzY2gpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21waWxlU2NoZW1hRW52KHNjaCk7CiAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiByZWZfZXJyb3JfMS5kZWZhdWx0KSkKICAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgICBjaGVja0xvYWRlZC5jYWxsKHRoaXMsIGUpOwogICAgICAgICAgICBhd2FpdCBsb2FkTWlzc2luZ1NjaGVtYS5jYWxsKHRoaXMsIGUubWlzc2luZ1NjaGVtYSk7CiAgICAgICAgICAgIHJldHVybiBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gY2hlY2tMb2FkZWQoeyBtaXNzaW5nU2NoZW1hOiByZWYsIG1pc3NpbmdSZWYgfSkgewogICAgICAgICAgaWYgKHRoaXMucmVmc1tyZWZdKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQW55U2NoZW1hICR7cmVmfSBpcyBsb2FkZWQgYnV0ICR7bWlzc2luZ1JlZn0gY2Fubm90IGJlIHJlc29sdmVkYCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRNaXNzaW5nU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgX3NjaGVtYSA9IGF3YWl0IF9sb2FkU2NoZW1hLmNhbGwodGhpcywgcmVmKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIGF3YWl0IGxvYWRNZXRhU2NoZW1hLmNhbGwodGhpcywgX3NjaGVtYS4kc2NoZW1hKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKF9zY2hlbWEsIHJlZiwgbWV0YSk7CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIF9sb2FkU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgcCA9IHRoaXMuX2xvYWRpbmdbcmVmXTsKICAgICAgICAgIGlmIChwKQogICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAodGhpcy5fbG9hZGluZ1tyZWZdID0gbG9hZFNjaGVtYShyZWYpKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sb2FkaW5nW3JlZl07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIEFkZHMgc2NoZW1hIHRvIHRoZSBpbnN0YW5jZQogICAgICBhZGRTY2hlbWEoc2NoZW1hMiwga2V5LCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMikpIHsKICAgICAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHNjaGVtYTIpCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaCwgdm9pZCAwLCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBsZXQgaWQ7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgICAgaWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICAgIGlmIChpZCAhPT0gdm9pZCAwICYmIHR5cGVvZiBpZCAhPSAic3RyaW5nIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSAke3NjaGVtYUlkfSBtdXN0IGJlIHN0cmluZ2ApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBrZXkgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXkgfHwgaWQpOwogICAgICAgIHRoaXMuX2NoZWNrVW5pcXVlKGtleSk7CiAgICAgICAgdGhpcy5zY2hlbWFzW2tleV0gPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEsIGtleSwgX3ZhbGlkYXRlU2NoZW1hLCB0cnVlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBBZGQgc2NoZW1hIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIG90aGVyIHNjaGVtYXMKICAgICAgLy8gb3B0aW9ucyBpbiBNRVRBX0lHTk9SRV9PUFRJT05TIGFyZSBhbHdheSBzZXQgdG8gZmFsc2UKICAgICAgYWRkTWV0YVNjaGVtYShzY2hlbWEyLCBrZXksIF92YWxpZGF0ZVNjaGVtYSA9IHRoaXMub3B0cy52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaGVtYTIsIGtleSwgdHJ1ZSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyAgVmFsaWRhdGUgc2NoZW1hIGFnYWluc3QgaXRzIG1ldGEtc2NoZW1hCiAgICAgIHZhbGlkYXRlU2NoZW1hKHNjaGVtYTIsIHRocm93T3JMb2dFcnJvcikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgJHNjaGVtYTsKICAgICAgICAkc2NoZW1hID0gc2NoZW1hMi4kc2NoZW1hOwogICAgICAgIGlmICgkc2NoZW1hICE9PSB2b2lkIDAgJiYgdHlwZW9mICRzY2hlbWEgIT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiJHNjaGVtYSBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgfQogICAgICAgICRzY2hlbWEgPSAkc2NoZW1hIHx8IHRoaXMub3B0cy5kZWZhdWx0TWV0YSB8fCB0aGlzLmRlZmF1bHRNZXRhKCk7CiAgICAgICAgaWYgKCEkc2NoZW1hKSB7CiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCJtZXRhLXNjaGVtYSBub3QgYXZhaWxhYmxlIik7CiAgICAgICAgICB0aGlzLmVycm9ycyA9IG51bGw7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCRzY2hlbWEsIHNjaGVtYTIpOwogICAgICAgIGlmICghdmFsaWQgJiYgdGhyb3dPckxvZ0Vycm9yKSB7CiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gInNjaGVtYSBpcyBpbnZhbGlkOiAiICsgdGhpcy5lcnJvcnNUZXh0KCk7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hID09PSAibG9nIikKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIC8vIEdldCBjb21waWxlZCBzY2hlbWEgYnkgYGtleWAgb3IgYHJlZmAuCiAgICAgIC8vIChga2V5YCB0aGF0IHdhcyBwYXNzZWQgdG8gYGFkZFNjaGVtYWAgb3IgZnVsbCBzY2hlbWEgcmVmZXJlbmNlIC0gYHNjaGVtYS4kaWRgIG9yIHJlc29sdmVkIGlkKQogICAgICBnZXRTY2hlbWEoa2V5UmVmKSB7CiAgICAgICAgbGV0IHNjaDsKICAgICAgICB3aGlsZSAodHlwZW9mIChzY2ggPSBnZXRTY2hFbnYuY2FsbCh0aGlzLCBrZXlSZWYpKSA9PSAic3RyaW5nIikKICAgICAgICAgIGtleVJlZiA9IHNjaDsKICAgICAgICBpZiAoc2NoID09PSB2b2lkIDApIHsKICAgICAgICAgIGNvbnN0IHsgc2NoZW1hSWQgfSA9IHRoaXMub3B0czsKICAgICAgICAgIGNvbnN0IHJvb3QgPSBuZXcgY29tcGlsZV8xLlNjaGVtYUVudih7IHNjaGVtYToge30sIHNjaGVtYUlkIH0pOwogICAgICAgICAgc2NoID0gY29tcGlsZV8xLnJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCBrZXlSZWYpOwogICAgICAgICAgaWYgKCFzY2gpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIHRoaXMucmVmc1trZXlSZWZdID0gc2NoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGVTY2hlbWFFbnYoc2NoKTsKICAgICAgfQogICAgICAvLyBSZW1vdmUgY2FjaGVkIHNjaGVtYShzKS4KICAgICAgLy8gSWYgbm8gcGFyYW1ldGVyIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyBidXQgbWV0YS1zY2hlbWFzIGFyZSByZW1vdmVkLgogICAgICAvLyBJZiBSZWdFeHAgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIHdpdGgga2V5L2lkIG1hdGNoaW5nIHBhdHRlcm4gYnV0IG1ldGEtc2NoZW1hcyBhcmUgcmVtb3ZlZC4KICAgICAgLy8gRXZlbiBpZiBzY2hlbWEgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBzY2hlbWFzIGl0IHN0aWxsIGNhbiBiZSByZW1vdmVkIGFzIG90aGVyIHNjaGVtYXMgaGF2ZSBsb2NhbCByZWZlcmVuY2VzLgogICAgICByZW1vdmVTY2hlbWEoc2NoZW1hS2V5UmVmKSB7CiAgICAgICAgaWYgKHNjaGVtYUtleVJlZiBpbnN0YW5jZW9mIFJlZ0V4cCkgewogICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMsIHNjaGVtYUtleVJlZik7CiAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxTY2hlbWFzKHRoaXMucmVmcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFLZXlSZWYpIHsKICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFsbFNjaGVtYXModGhpcy5zY2hlbWFzKTsKICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnJlZnMpOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIGNhc2UgInN0cmluZyI6IHsKICAgICAgICAgICAgY29uc3Qgc2NoID0gZ2V0U2NoRW52LmNhbGwodGhpcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICBkZWxldGUgdGhpcy5zY2hlbWFzW3NjaGVtYUtleVJlZl07CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlZnNbc2NoZW1hS2V5UmVmXTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NoZW1hS2V5UmVmOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVLZXkpOwogICAgICAgICAgICBsZXQgaWQgPSBzY2hlbWFLZXlSZWZbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICAgICAgaWYgKGlkKSB7CiAgICAgICAgICAgICAgaWQgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShpZCk7CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2NoZW1hc1tpZF07CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVmc1tpZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdi5yZW1vdmVTY2hlbWE6IGludmFsaWQgcGFyYW1ldGVyIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIGFkZCAidm9jYWJ1bGFyeSIgLSBhIGNvbGxlY3Rpb24gb2Yga2V5d29yZHMKICAgICAgYWRkVm9jYWJ1bGFyeShkZWZpbml0aW9ucykgewogICAgICAgIGZvciAoY29uc3QgZGVmIG9mIGRlZmluaXRpb25zKQogICAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYWRkS2V5d29yZChrd2RPckRlZiwgZGVmKSB7CiAgICAgICAgbGV0IGtleXdvcmQ7CiAgICAgICAgaWYgKHR5cGVvZiBrd2RPckRlZiA9PSAic3RyaW5nIikgewogICAgICAgICAga2V5d29yZCA9IGt3ZE9yRGVmOwogICAgICAgICAgaWYgKHR5cGVvZiBkZWYgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybigidGhlc2UgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCwgc2VlIGRvY3MgZm9yIGFkZEtleXdvcmQiKTsKICAgICAgICAgICAgZGVmLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGt3ZE9yRGVmID09ICJvYmplY3QiICYmIGRlZiA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWYgPSBrd2RPckRlZjsKICAgICAgICAgIGtleXdvcmQgPSBkZWYua2V5d29yZDsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXdvcmQpICYmICFrZXl3b3JkLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFkZEtleXdvcmRzOiBrZXl3b3JkIG11c3QgYmUgc3RyaW5nIG9yIG5vbi1lbXB0eSBhcnJheSIpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYWRkS2V5d29yZHMgcGFyYW1ldGVycyIpOwogICAgICAgIH0KICAgICAgICBjaGVja0tleXdvcmQuY2FsbCh0aGlzLCBrZXl3b3JkLCBkZWYpOwogICAgICAgIGlmICghZGVmKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCAoa3dkKSA9PiBhZGRSdWxlLmNhbGwodGhpcywga3dkKSk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAga2V5d29yZE1ldGFzY2hlbWEuY2FsbCh0aGlzLCBkZWYpOwogICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB7CiAgICAgICAgICAuLi5kZWYsCiAgICAgICAgICB0eXBlOiAoMCwgZGF0YVR5cGVfMS5nZXRKU09OVHlwZXMpKGRlZi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmLnNjaGVtYVR5cGUpCiAgICAgICAgfTsKICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCBkZWZpbml0aW9uLnR5cGUubGVuZ3RoID09PSAwID8gKGspID0+IGFkZFJ1bGUuY2FsbCh0aGlzLCBrLCBkZWZpbml0aW9uKSA6IChrKSA9PiBkZWZpbml0aW9uLnR5cGUuZm9yRWFjaCgodCkgPT4gYWRkUnVsZS5jYWxsKHRoaXMsIGssIGRlZmluaXRpb24sIHQpKSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0S2V5d29yZChrZXl3b3JkKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMuUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIHJldHVybiB0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiA/IHJ1bGUuZGVmaW5pdGlvbiA6ICEhcnVsZTsKICAgICAgfQogICAgICAvLyBSZW1vdmUga2V5d29yZAogICAgICByZW1vdmVLZXl3b3JkKGtleXdvcmQpIHsKICAgICAgICBjb25zdCB7IFJVTEVTIH0gPSB0aGlzOwogICAgICAgIGRlbGV0ZSBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXTsKICAgICAgICBkZWxldGUgUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgUlVMRVMucnVsZXMpIHsKICAgICAgICAgIGNvbnN0IGkgPSBncm91cC5ydWxlcy5maW5kSW5kZXgoKHJ1bGUpID0+IHJ1bGUua2V5d29yZCA9PT0ga2V5d29yZCk7CiAgICAgICAgICBpZiAoaSA+PSAwKQogICAgICAgICAgICBncm91cC5ydWxlcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIEFkZCBmb3JtYXQKICAgICAgYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCkgewogICAgICAgIGlmICh0eXBlb2YgZm9ybWF0ID09ICJzdHJpbmciKQogICAgICAgICAgZm9ybWF0ID0gbmV3IFJlZ0V4cChmb3JtYXQpOwogICAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZvcm1hdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBlcnJvcnNUZXh0KGVycm9ycyA9IHRoaXMuZXJyb3JzLCB7IHNlcGFyYXRvciA9ICIsICIsIGRhdGFWYXIgPSAiZGF0YSIgfSA9IHt9KSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybiAiTm8gZXJyb3JzIjsKICAgICAgICByZXR1cm4gZXJyb3JzLm1hcCgoZSkgPT4gYCR7ZGF0YVZhcn0ke2UuaW5zdGFuY2VQYXRofSAke2UubWVzc2FnZX1gKS5yZWR1Y2UoKHRleHQsIG1zZykgPT4gdGV4dCArIHNlcGFyYXRvciArIG1zZyk7CiAgICAgIH0KICAgICAgJGRhdGFNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIGtleXdvcmRzSnNvblBvaW50ZXJzKSB7CiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLlJVTEVTLmFsbDsKICAgICAgICBtZXRhU2NoZW1hID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtZXRhU2NoZW1hKSk7CiAgICAgICAgZm9yIChjb25zdCBqc29uUG9pbnRlciBvZiBrZXl3b3Jkc0pzb25Qb2ludGVycykgewogICAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBqc29uUG9pbnRlci5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgbGV0IGtleXdvcmRzID0gbWV0YVNjaGVtYTsKICAgICAgICAgIGZvciAoY29uc3Qgc2VnIG9mIHNlZ21lbnRzKQogICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzW3NlZ107CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBydWxlcykgewogICAgICAgICAgICBjb25zdCBydWxlID0gcnVsZXNba2V5XTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlICE9ICJvYmplY3QiKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjb25zdCB7ICRkYXRhIH0gPSBydWxlLmRlZmluaXRpb247CiAgICAgICAgICAgIGNvbnN0IHNjaGVtYTIgPSBrZXl3b3Jkc1trZXldOwogICAgICAgICAgICBpZiAoJGRhdGEgJiYgc2NoZW1hMikKICAgICAgICAgICAgICBrZXl3b3Jkc1trZXldID0gc2NoZW1hT3JEYXRhKHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWV0YVNjaGVtYTsKICAgICAgfQogICAgICBfcmVtb3ZlQWxsU2NoZW1hcyhzY2hlbWFzLCByZWdleCkgewogICAgICAgIGZvciAoY29uc3Qga2V5UmVmIGluIHNjaGVtYXMpIHsKICAgICAgICAgIGNvbnN0IHNjaCA9IHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgIGlmICghcmVnZXggfHwgcmVnZXgudGVzdChrZXlSZWYpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2ggJiYgIXNjaC5tZXRhKSB7CiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFzW2tleVJlZl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX2FkZFNjaGVtYShzY2hlbWEyLCBtZXRhLCBiYXNlSWQsIHZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hLCBhZGRTY2hlbWEgPSB0aGlzLm9wdHMuYWRkVXNlZFNjaGVtYSkgewogICAgICAgIGxldCBpZDsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiKSB7CiAgICAgICAgICBpZCA9IHNjaGVtYTJbc2NoZW1hSWRdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLmp0ZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3QiKTsKICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyICE9ICJib29sZWFuIikKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3Qgb3IgYm9vbGVhbiIpOwogICAgICAgIH0KICAgICAgICBsZXQgc2NoID0gdGhpcy5fY2FjaGUuZ2V0KHNjaGVtYTIpOwogICAgICAgIGlmIChzY2ggIT09IHZvaWQgMCkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoaWQgfHwgYmFzZUlkKTsKICAgICAgICBjb25zdCBsb2NhbFJlZnMgPSByZXNvbHZlXzEuZ2V0U2NoZW1hUmVmcy5jYWxsKHRoaXMsIHNjaGVtYTIsIGJhc2VJZCk7CiAgICAgICAgc2NoID0gbmV3IGNvbXBpbGVfMS5TY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCBtZXRhLCBiYXNlSWQsIGxvY2FsUmVmcyB9KTsKICAgICAgICB0aGlzLl9jYWNoZS5zZXQoc2NoLnNjaGVtYSwgc2NoKTsKICAgICAgICBpZiAoYWRkU2NoZW1hICYmICFiYXNlSWQuc3RhcnRzV2l0aCgiIyIpKSB7CiAgICAgICAgICBpZiAoYmFzZUlkKQogICAgICAgICAgICB0aGlzLl9jaGVja1VuaXF1ZShiYXNlSWQpOwogICAgICAgICAgdGhpcy5yZWZzW2Jhc2VJZF0gPSBzY2g7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZGF0ZVNjaGVtYSkKICAgICAgICAgIHRoaXMudmFsaWRhdGVTY2hlbWEoc2NoZW1hMiwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfQogICAgICBfY2hlY2tVbmlxdWUoaWQpIHsKICAgICAgICBpZiAodGhpcy5zY2hlbWFzW2lkXSB8fCB0aGlzLnJlZnNbaWRdKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSB3aXRoIGtleSBvciBpZCAiJHtpZH0iIGFscmVhZHkgZXhpc3RzYCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIF9jb21waWxlU2NoZW1hRW52KHNjaCkgewogICAgICAgIGlmIChzY2gubWV0YSkKICAgICAgICAgIHRoaXMuX2NvbXBpbGVNZXRhU2NoZW1hKHNjaCk7CiAgICAgICAgZWxzZQogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIGlmICghc2NoLnZhbGlkYXRlKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlOwogICAgICB9CiAgICAgIF9jb21waWxlTWV0YVNjaGVtYShzY2gpIHsKICAgICAgICBjb25zdCBjdXJyZW50T3B0cyA9IHRoaXMub3B0czsKICAgICAgICB0aGlzLm9wdHMgPSB0aGlzLl9tZXRhT3B0czsKICAgICAgICB0cnkgewogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLm9wdHMgPSBjdXJyZW50T3B0czsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBBanYuVmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGlvbl9lcnJvcl8xLmRlZmF1bHQ7CiAgICBBanYuTWlzc2luZ1JlZkVycm9yID0gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBBanY7CiAgICBmdW5jdGlvbiBjaGVja09wdGlvbnMoY2hlY2tPcHRzLCBvcHRpb25zLCBtc2csIGxvZyA9ICJlcnJvciIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2hlY2tPcHRzKSB7CiAgICAgICAgY29uc3Qgb3B0ID0ga2V5OwogICAgICAgIGlmIChvcHQgaW4gb3B0aW9ucykKICAgICAgICAgIHRoaXMubG9nZ2VyW2xvZ10oYCR7bXNnfTogb3B0aW9uICR7a2V5fS4gJHtjaGVja09wdHNbb3B0XX1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZ2V0U2NoRW52KGtleVJlZikgewogICAgICBrZXlSZWYgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXlSZWYpOwogICAgICByZXR1cm4gdGhpcy5zY2hlbWFzW2tleVJlZl0gfHwgdGhpcy5yZWZzW2tleVJlZl07CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsU2NoZW1hcygpIHsKICAgICAgY29uc3Qgb3B0c1NjaGVtYXMgPSB0aGlzLm9wdHMuc2NoZW1hczsKICAgICAgaWYgKCFvcHRzU2NoZW1hcykKICAgICAgICByZXR1cm47CiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdHNTY2hlbWFzKSkKICAgICAgICB0aGlzLmFkZFNjaGVtYShvcHRzU2NoZW1hcyk7CiAgICAgIGVsc2UKICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRzU2NoZW1hcykKICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKG9wdHNTY2hlbWFzW2tleV0sIGtleSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsRm9ybWF0cygpIHsKICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMub3B0cy5mb3JtYXRzKSB7CiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5vcHRzLmZvcm1hdHNbbmFtZV07CiAgICAgICAgaWYgKGZvcm1hdCkKICAgICAgICAgIHRoaXMuYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGFkZEluaXRpYWxLZXl3b3JkcyhkZWZzKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlZnMpKSB7CiAgICAgICAgdGhpcy5hZGRWb2NhYnVsYXJ5KGRlZnMpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmxvZ2dlci53YXJuKCJrZXl3b3JkcyBvcHRpb24gYXMgbWFwIGlzIGRlcHJlY2F0ZWQsIHBhc3MgYXJyYXkiKTsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIGRlZnMpIHsKICAgICAgICBjb25zdCBkZWYgPSBkZWZzW2tleXdvcmRdOwogICAgICAgIGlmICghZGVmLmtleXdvcmQpCiAgICAgICAgICBkZWYua2V5d29yZCA9IGtleXdvcmQ7CiAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGdldE1ldGFTY2hlbWFPcHRpb25zKCkgewogICAgICBjb25zdCBtZXRhT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CiAgICAgIGZvciAoY29uc3Qgb3B0IG9mIE1FVEFfSUdOT1JFX09QVElPTlMpCiAgICAgICAgZGVsZXRlIG1ldGFPcHRzW29wdF07CiAgICAgIHJldHVybiBtZXRhT3B0czsKICAgIH0KICAgIHZhciBub0xvZ3MgPSB7IGxvZygpIHsKICAgIH0sIHdhcm4oKSB7CiAgICB9LCBlcnJvcigpIHsKICAgIH0gfTsKICAgIGZ1bmN0aW9uIGdldExvZ2dlcihsb2dnZXIpIHsKICAgICAgaWYgKGxvZ2dlciA9PT0gZmFsc2UpCiAgICAgICAgcmV0dXJuIG5vTG9nczsKICAgICAgaWYgKGxvZ2dlciA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybiBjb25zb2xlOwogICAgICBpZiAobG9nZ2VyLmxvZyAmJiBsb2dnZXIud2FybiAmJiBsb2dnZXIuZXJyb3IpCiAgICAgICAgcmV0dXJuIGxvZ2dlcjsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2dnZXIgbXVzdCBpbXBsZW1lbnQgbG9nLCB3YXJuIGFuZCBlcnJvciBtZXRob2RzIik7CiAgICB9CiAgICB2YXIgS0VZV09SRF9OQU1FID0gL15bYS16XyRdW2EtejAtOV8kOi1dKiQvaTsKICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZChrZXl3b3JkLCBkZWYpIHsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgKDAsIHV0aWxfMS5lYWNoSXRlbSkoa2V5d29yZCwgKGt3ZCkgPT4gewogICAgICAgIGlmIChSVUxFUy5rZXl3b3Jkc1trd2RdKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXl3b3JkICR7a3dkfSBpcyBhbHJlYWR5IGRlZmluZWRgKTsKICAgICAgICBpZiAoIUtFWVdPUkRfTkFNRS50ZXN0KGt3ZCkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtrd2R9IGhhcyBpbnZhbGlkIG5hbWVgKTsKICAgICAgfSk7CiAgICAgIGlmICghZGVmKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiAhKCJjb2RlIiBpbiBkZWYgfHwgInZhbGlkYXRlIiBpbiBkZWYpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCckZGF0YSBrZXl3b3JkIG11c3QgaGF2ZSAiY29kZSIgb3IgInZhbGlkYXRlIiBmdW5jdGlvbicpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhZGRSdWxlKGtleXdvcmQsIGRlZmluaXRpb24sIGRhdGFUeXBlKSB7CiAgICAgIHZhciBfYTsKICAgICAgY29uc3QgcG9zdCA9IGRlZmluaXRpb24gPT09IG51bGwgfHwgZGVmaW5pdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmaW5pdGlvbi5wb3N0OwogICAgICBpZiAoZGF0YVR5cGUgJiYgcG9zdCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgd2l0aCAicG9zdCIgZmxhZyBjYW5ub3QgaGF2ZSAidHlwZSInKTsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgbGV0IHJ1bGVHcm91cCA9IHBvc3QgPyBSVUxFUy5wb3N0IDogUlVMRVMucnVsZXMuZmluZCgoeyB0eXBlOiB0IH0pID0+IHQgPT09IGRhdGFUeXBlKTsKICAgICAgaWYgKCFydWxlR3JvdXApIHsKICAgICAgICBydWxlR3JvdXAgPSB7IHR5cGU6IGRhdGFUeXBlLCBydWxlczogW10gfTsKICAgICAgICBSVUxFUy5ydWxlcy5wdXNoKHJ1bGVHcm91cCk7CiAgICAgIH0KICAgICAgUlVMRVMua2V5d29yZHNba2V5d29yZF0gPSB0cnVlOwogICAgICBpZiAoIWRlZmluaXRpb24pCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBydWxlID0gewogICAgICAgIGtleXdvcmQsCiAgICAgICAgZGVmaW5pdGlvbjogewogICAgICAgICAgLi4uZGVmaW5pdGlvbiwKICAgICAgICAgIHR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi5zY2hlbWFUeXBlKQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKGRlZmluaXRpb24uYmVmb3JlKQogICAgICAgIGFkZEJlZm9yZVJ1bGUuY2FsbCh0aGlzLCBydWxlR3JvdXAsIHJ1bGUsIGRlZmluaXRpb24uYmVmb3JlKTsKICAgICAgZWxzZQogICAgICAgIHJ1bGVHcm91cC5ydWxlcy5wdXNoKHJ1bGUpOwogICAgICBSVUxFUy5hbGxba2V5d29yZF0gPSBydWxlOwogICAgICAoX2EgPSBkZWZpbml0aW9uLmltcGxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb3JFYWNoKChrd2QpID0+IHRoaXMuYWRkS2V5d29yZChrd2QpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFkZEJlZm9yZVJ1bGUocnVsZUdyb3VwLCBydWxlLCBiZWZvcmUpIHsKICAgICAgY29uc3QgaSA9IHJ1bGVHcm91cC5ydWxlcy5maW5kSW5kZXgoKF9ydWxlKSA9PiBfcnVsZS5rZXl3b3JkID09PSBiZWZvcmUpOwogICAgICBpZiAoaSA+PSAwKSB7CiAgICAgICAgcnVsZUdyb3VwLnJ1bGVzLnNwbGljZShpLCAwLCBydWxlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBydWxlR3JvdXAucnVsZXMucHVzaChydWxlKTsKICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBydWxlICR7YmVmb3JlfSBpcyBub3QgZGVmaW5lZGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBrZXl3b3JkTWV0YXNjaGVtYShkZWYpIHsKICAgICAgbGV0IHsgbWV0YVNjaGVtYSB9ID0gZGVmOwogICAgICBpZiAobWV0YVNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiB0aGlzLm9wdHMuJGRhdGEpCiAgICAgICAgbWV0YVNjaGVtYSA9IHNjaGVtYU9yRGF0YShtZXRhU2NoZW1hKTsKICAgICAgZGVmLnZhbGlkYXRlU2NoZW1hID0gdGhpcy5jb21waWxlKG1ldGFTY2hlbWEsIHRydWUpOwogICAgfQogICAgdmFyICRkYXRhUmVmID0gewogICAgICAkcmVmOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jIgogICAgfTsKICAgIGZ1bmN0aW9uIHNjaGVtYU9yRGF0YShzY2hlbWEyKSB7CiAgICAgIHJldHVybiB7IGFueU9mOiBbc2NoZW1hMiwgJGRhdGFSZWZdIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pZC5qcwp2YXIgcmVxdWlyZV9pZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvaWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZCIsCiAgICAgIGNvZGUoKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOT1QgU1VQUE9SVEVEOiBrZXl3b3JkICJpZCIsIHVzZSAiJGlkIiBmb3Igc2NoZW1hIElEJyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzCnZhciByZXF1aXJlX3JlZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYWxsUmVmID0gZXhwb3J0czIuZ2V0VmFsaWRhdGUgPSB2b2lkIDA7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIiRyZWYiLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiAkcmVmLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgYmFzZUlkLCBzY2hlbWFFbnY6IGVudiwgdmFsaWRhdGVOYW1lLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgICAgY29uc3QgeyByb290IH0gPSBlbnY7CiAgICAgICAgaWYgKCgkcmVmID09PSAiIyIgfHwgJHJlZiA9PT0gIiMvIikgJiYgYmFzZUlkID09PSByb290LmJhc2VJZCkKICAgICAgICAgIHJldHVybiBjYWxsUm9vdFJlZigpOwogICAgICAgIGNvbnN0IHNjaE9yRW52ID0gY29tcGlsZV8xLnJlc29sdmVSZWYuY2FsbChzZWxmMiwgcm9vdCwgYmFzZUlkLCAkcmVmKTsKICAgICAgICBpZiAoc2NoT3JFbnYgPT09IHZvaWQgMCkKICAgICAgICAgIHRocm93IG5ldyByZWZfZXJyb3JfMS5kZWZhdWx0KGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgJHJlZik7CiAgICAgICAgaWYgKHNjaE9yRW52IGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgIHJldHVybiBjYWxsVmFsaWRhdGUoc2NoT3JFbnYpOwogICAgICAgIHJldHVybiBpbmxpbmVSZWZTY2hlbWEoc2NoT3JFbnYpOwogICAgICAgIGZ1bmN0aW9uIGNhbGxSb290UmVmKCkgewogICAgICAgICAgaWYgKGVudiA9PT0gcm9vdCkKICAgICAgICAgICAgcmV0dXJuIGNhbGxSZWYoY3h0LCB2YWxpZGF0ZU5hbWUsIGVudiwgZW52LiRhc3luYyk7CiAgICAgICAgICBjb25zdCByb290TmFtZSA9IGdlbi5zY29wZVZhbHVlKCJyb290IiwgeyByZWY6IHJvb3QgfSk7CiAgICAgICAgICByZXR1cm4gY2FsbFJlZihjeHQsICgwLCBjb2RlZ2VuXzEuXylgJHtyb290TmFtZX0udmFsaWRhdGVgLCByb290LCByb290LiRhc3luYyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZShzY2gpIHsKICAgICAgICAgIGNvbnN0IHYgPSBnZXRWYWxpZGF0ZShjeHQsIHNjaCk7CiAgICAgICAgICBjYWxsUmVmKGN4dCwgdiwgc2NoLCBzY2guJGFzeW5jKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaW5saW5lUmVmU2NoZW1hKHNjaCkgewogICAgICAgICAgY29uc3Qgc2NoTmFtZSA9IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCBvcHRzLmNvZGUuc291cmNlID09PSB0cnVlID8geyByZWY6IHNjaCwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaCkgfSA6IHsgcmVmOiBzY2ggfSk7CiAgICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgICAgY29uc3Qgc2NoQ3h0ID0gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgICBkYXRhVHlwZXM6IFtdLAogICAgICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaE5hbWUsCiAgICAgICAgICAgIGVyclNjaGVtYVBhdGg6ICRyZWYKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQpOwogICAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0ZShjeHQsIHNjaCkgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gZ2VuLnNjb3BlVmFsdWUoInZhbGlkYXRlIiwgeyByZWY6IHNjaC52YWxpZGF0ZSB9KSA6ICgwLCBjb2RlZ2VuXzEuXylgJHtnZW4uc2NvcGVWYWx1ZSgid3JhcHBlciIsIHsgcmVmOiBzY2ggfSl9LnZhbGlkYXRlYDsKICAgIH0KICAgIGV4cG9ydHMyLmdldFZhbGlkYXRlID0gZ2V0VmFsaWRhdGU7CiAgICBmdW5jdGlvbiBjYWxsUmVmKGN4dCwgdiwgc2NoLCAkYXN5bmMpIHsKICAgICAgY29uc3QgeyBnZW4sIGl0IH0gPSBjeHQ7CiAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBzY2hlbWFFbnY6IGVudiwgb3B0cyB9ID0gaXQ7CiAgICAgIGNvbnN0IHBhc3NDeHQgPSBvcHRzLnBhc3NDb250ZXh0ID8gbmFtZXNfMS5kZWZhdWx0LnRoaXMgOiBjb2RlZ2VuXzEubmlsOwogICAgICBpZiAoJGFzeW5jKQogICAgICAgIGNhbGxBc3luY1JlZigpOwogICAgICBlbHNlCiAgICAgICAgY2FsbFN5bmNSZWYoKTsKICAgICAgZnVuY3Rpb24gY2FsbEFzeW5jUmVmKCkgewogICAgICAgIGlmICghZW52LiRhc3luYykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIHJlZmVyZW5jZWQgYnkgc3luYyBzY2hlbWEiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIik7CiAgICAgICAgZ2VuLnRyeSgoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7KDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpfWApOwogICAgICAgICAgYWRkRXZhbHVhdGVkRnJvbSh2KTsKICAgICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICB9LCAoZSkgPT4gewogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgISgke2V9IGluc3RhbmNlb2YgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KWAsICgpID0+IGdlbi50aHJvdyhlKSk7CiAgICAgICAgICBhZGRFcnJvcnNGcm9tKGUpOwogICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKTsKICAgICAgICB9KTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbGxTeW5jUmVmKCkgewogICAgICAgIGN4dC5yZXN1bHQoKDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpLCAoKSA9PiBhZGRFdmFsdWF0ZWRGcm9tKHYpLCAoKSA9PiBhZGRFcnJvcnNGcm9tKHYpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRFcnJvcnNGcm9tKHNvdXJjZSkgewogICAgICAgIGNvbnN0IGVycnMgPSAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCk7CiAgICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZFcnJvcnN9Lmxlbmd0aGApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkZEV2YWx1YXRlZEZyb20oc291cmNlKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmICghaXQub3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBzY2hFdmFsdWF0ZWQgPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gudmFsaWRhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ldmFsdWF0ZWQ7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY1Byb3BzKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgc2NoRXZhbHVhdGVkLnByb3BzLCBpdC5wcm9wcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZ2VuLnZhcigicHJvcHMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQucHJvcHNgKTsKICAgICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBwcm9wcywgaXQucHJvcHMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGl0Lml0ZW1zICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY0l0ZW1zKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQuaXRlbXMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoRXZhbHVhdGVkLml0ZW1zLCBpdC5pdGVtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2VuLnZhcigiaXRlbXMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQuaXRlbXNgKTsKICAgICAgICAgICAgaXQuaXRlbXMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQuaXRlbXMoZ2VuLCBpdGVtcywgaXQuaXRlbXMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmNhbGxSZWYgPSBjYWxsUmVmOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb3JlL2luZGV4LmpzCnZhciByZXF1aXJlX2NvcmUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGlkXzEgPSByZXF1aXJlX2lkKCk7CiAgICB2YXIgcmVmXzEgPSByZXF1aXJlX3JlZigpOwogICAgdmFyIGNvcmUyID0gWwogICAgICAiJHNjaGVtYSIsCiAgICAgICIkaWQiLAogICAgICAiJGRlZnMiLAogICAgICAiJHZvY2FidWxhcnkiLAogICAgICB7IGtleXdvcmQ6ICIkY29tbWVudCIgfSwKICAgICAgImRlZmluaXRpb25zIiwKICAgICAgaWRfMS5kZWZhdWx0LAogICAgICByZWZfMS5kZWZhdWx0CiAgICBdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGNvcmUyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXROdW1iZXIuanMKdmFyIHJlcXVpcmVfbGltaXROdW1iZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0TnVtYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgb3BzID0gY29kZWdlbl8xLm9wZXJhdG9yczsKICAgIHZhciBLV0RzID0gewogICAgICBtYXhpbXVtOiB7IG9rU3RyOiAiPD0iLCBvazogb3BzLkxURSwgZmFpbDogb3BzLkdUIH0sCiAgICAgIG1pbmltdW06IHsgb2tTdHI6ICI+PSIsIG9rOiBvcHMuR1RFLCBmYWlsOiBvcHMuTFQgfSwKICAgICAgZXhjbHVzaXZlTWF4aW11bTogeyBva1N0cjogIjwiLCBvazogb3BzLkxULCBmYWlsOiBvcHMuR1RFIH0sCiAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsgb2tTdHI6ICI+Iiwgb2s6IG9wcy5HVCwgZmFpbDogb3BzLkxURSB9CiAgICB9OwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkLCBzY2hlbWFDb2RlIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IGJlICR7S1dEc1trZXl3b3JkXS5va1N0cn0gJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtjb21wYXJpc29uOiAke0tXRHNba2V5d29yZF0ub2tTdHJ9LCBsaW1pdDogJHtzY2hlbWFDb2RlfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ICR7S1dEc1trZXl3b3JkXS5mYWlsfSAke3NjaGVtYUNvZGV9IHx8IGlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbXVsdGlwbGVPZi5qcwp2YXIgcmVxdWlyZV9tdWx0aXBsZU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9tdWx0aXBsZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgYmUgbXVsdGlwbGUgb2YgJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHttdWx0aXBsZU9mOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibXVsdGlwbGVPZiIsCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHByZWMgPSBpdC5vcHRzLm11bHRpcGxlT2ZQcmVjaXNpb247CiAgICAgICAgY29uc3QgcmVzID0gZ2VuLmxldCgicmVzIik7CiAgICAgICAgY29uc3QgaW52YWxpZCA9IHByZWMgPyAoMCwgY29kZWdlbl8xLl8pYE1hdGguYWJzKE1hdGgucm91bmQoJHtyZXN9KSAtICR7cmVzfSkgPiAxZS0ke3ByZWN9YCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtyZXN9ICE9PSBwYXJzZUludCgke3Jlc30pYDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgKCR7c2NoZW1hQ29kZX0gPT09IDAgfHwgKCR7cmVzfSA9ICR7ZGF0YX0vJHtzY2hlbWFDb2RlfSwgJHtpbnZhbGlkfSkpYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoLmpzCnZhciByZXF1aXJlX3VjczJsZW5ndGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdWNzMmxlbmd0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZnVuY3Rpb24gdWNzMmxlbmd0aChzdHIyKSB7CiAgICAgIGNvbnN0IGxlbiA9IHN0cjIubGVuZ3RoOwogICAgICBsZXQgbGVuZ3RoID0gMDsKICAgICAgbGV0IHBvcyA9IDA7CiAgICAgIGxldCB2YWx1ZTsKICAgICAgd2hpbGUgKHBvcyA8IGxlbikgewogICAgICAgIGxlbmd0aCsrOwogICAgICAgIHZhbHVlID0gc3RyMi5jaGFyQ29kZUF0KHBvcysrKTsKICAgICAgICBpZiAodmFsdWUgPj0gNTUyOTYgJiYgdmFsdWUgPD0gNTYzMTkgJiYgcG9zIDwgbGVuKSB7CiAgICAgICAgICB2YWx1ZSA9IHN0cjIuY2hhckNvZGVBdChwb3MpOwogICAgICAgICAgaWYgKCh2YWx1ZSAmIDY0NTEyKSA9PT0gNTYzMjApCiAgICAgICAgICAgIHBvcysrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbGVuZ3RoOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IHVjczJsZW5ndGg7CiAgICB1Y3MybGVuZ3RoLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoIikuZGVmYXVsdCc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdExlbmd0aC5qcwp2YXIgcmVxdWlyZV9saW1pdExlbmd0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXRMZW5ndGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciB1Y3MybGVuZ3RoXzEgPSByZXF1aXJlX3VjczJsZW5ndGgoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IGNoYXJhY3RlcnNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4TGVuZ3RoIiwgIm1pbkxlbmd0aCJdLAogICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3Qgb3AgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuR1QgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLkxUOwogICAgICAgIGNvbnN0IGxlbiA9IGl0Lm9wdHMudW5pY29kZSA9PT0gZmFsc2UgPyAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgdXRpbF8xLnVzZUZ1bmMpKGN4dC5nZW4sIHVjczJsZW5ndGhfMS5kZWZhdWx0KX0oJHtkYXRhfSlgOwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBtYXRjaCBwYXR0ZXJuICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtwYXR0ZXJuOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicGF0dGVybiIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB1ID0gaXQub3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgICAgY29uc3QgcmVnRXhwID0gJGRhdGEgPyAoMCwgY29kZWdlbl8xLl8pYChuZXcgUmVnRXhwKCR7c2NoZW1hQ29kZX0sICR7dX0pKWAgOiAoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgc2NoZW1hMik7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEke3JlZ0V4cH0udGVzdCgke2RhdGF9KWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9saW1pdFByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSB7CiAgICAgICAgY29uc3QgY29tcCA9IGtleXdvcmQgPT09ICJtYXhQcm9wZXJ0aWVzIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IHByb3BlcnRpZXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4UHJvcGVydGllcyIsICJtaW5Qcm9wZXJ0aWVzIl0sCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGNvbnN0IG9wID0ga2V5d29yZCA9PT0gIm1heFByb3BlcnRpZXMiID8gY29kZWdlbl8xLm9wZXJhdG9ycy5HVCA6IGNvZGVnZW5fMS5vcGVyYXRvcnMuTFQ7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYE9iamVjdC5rZXlzKCR7ZGF0YX0pLmxlbmd0aCAke29wfSAke3NjaGVtYUNvZGV9YCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcmVxdWlyZWQuanMKdmFyIHJlcXVpcmVfcmVxdWlyZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3JlcXVpcmVkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5IH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSAnJHttaXNzaW5nUHJvcGVydHl9J2AsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge21pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicmVxdWlyZWQiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGRhdGEsICRkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cyB9ID0gaXQ7CiAgICAgICAgaWYgKCEkZGF0YSAmJiBzY2hlbWEyLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gb3B0cy5sb29wUmVxdWlyZWQ7CiAgICAgICAgaWYgKGl0LmFsbEVycm9ycykKICAgICAgICAgIGFsbEVycm9yc01vZGUoKTsKICAgICAgICBlbHNlCiAgICAgICAgICBleGl0T25FcnJvck1vZGUoKTsKICAgICAgICBpZiAob3B0cy5zdHJpY3RSZXF1aXJlZCkgewogICAgICAgICAgY29uc3QgcHJvcHMgPSBjeHQucGFyZW50U2NoZW1hLnByb3BlcnRpZXM7CiAgICAgICAgICBjb25zdCB7IGRlZmluZWRQcm9wZXJ0aWVzIH0gPSBjeHQuaXQ7CiAgICAgICAgICBmb3IgKGNvbnN0IHJlcXVpcmVkS2V5IG9mIHNjaGVtYTIpIHsKICAgICAgICAgICAgaWYgKChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHNbcmVxdWlyZWRLZXldKSA9PT0gdm9pZCAwICYmICFkZWZpbmVkUHJvcGVydGllcy5oYXMocmVxdWlyZWRLZXkpKSB7CiAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hUGF0aCA9IGl0LnNjaGVtYUVudi5iYXNlSWQgKyBpdC5lcnJTY2hlbWFQYXRoOwogICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGByZXF1aXJlZCBwcm9wZXJ0eSAiJHtyZXF1aXJlZEtleX0iIGlzIG5vdCBkZWZpbmVkIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0UmVxdWlyZWQpYDsKICAgICAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgaXQub3B0cy5zdHJpY3RSZXF1aXJlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWxsRXJyb3JzTW9kZSgpIHsKICAgICAgICAgIGlmICh1c2VMb29wIHx8ICRkYXRhKSB7CiAgICAgICAgICAgIGN4dC5ibG9jayRkYXRhKGNvZGVnZW5fMS5uaWwsIGxvb3BBbGxSZXF1aXJlZCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hMikgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBleGl0T25FcnJvck1vZGUoKSB7CiAgICAgICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICAgICAgaWYgKHVzZUxvb3AgfHwgJGRhdGEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIHRydWUpOwogICAgICAgICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgKCkgPT4gbG9vcFVudGlsTWlzc2luZyhtaXNzaW5nLCB2YWxpZCkpOwogICAgICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBzY2hlbWEyLCBtaXNzaW5nKSk7CiAgICAgICAgICAgICgwLCBjb2RlXzEucmVwb3J0TWlzc2luZ1Byb3ApKGN4dCwgbWlzc2luZyk7CiAgICAgICAgICAgIGdlbi5lbHNlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BBbGxSZXF1aXJlZCgpIHsKICAgICAgICAgIGdlbi5mb3JPZigicHJvcCIsIHNjaGVtYUNvZGUsIChwcm9wKSA9PiB7CiAgICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IHByb3AgfSk7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLm5vUHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BVbnRpbE1pc3NpbmcobWlzc2luZywgdmFsaWQpIHsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IG1pc3NpbmcgfSk7CiAgICAgICAgICBnZW4uZm9yT2YobWlzc2luZywgc2NoZW1hQ29kZSwgKCkgPT4gewogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCAoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIG1pc3NpbmcsIG9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIGNvZGVnZW5fMS5uaWwpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdEl0ZW1zLmpzCnZhciByZXF1aXJlX2xpbWl0SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0SXRlbXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4SXRlbXMiID8gIm1vcmUiIDogImZld2VyIjsKICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgTk9UIGhhdmUgJHtjb21wfSB0aGFuICR7c2NoZW1hQ29kZX0gaXRlbXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4SXRlbXMiLCAibWluSXRlbXMiXSwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUgfSA9IGN4dDsKICAgICAgICBjb25zdCBvcCA9IGtleXdvcmQgPT09ICJtYXhJdGVtcyIgPyBjb2RlZ2VuXzEub3BlcmF0b3JzLkdUIDogY29kZWdlbl8xLm9wZXJhdG9ycy5MVDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMKdmFyIHJlcXVpcmVfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICBlcXVhbC5jb2RlID0gJ3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvZXF1YWwiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBlcXVhbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3VuaXF1ZUl0ZW1zLmpzCnZhciByZXF1aXJlX3VuaXF1ZUl0ZW1zID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi91bmlxdWVJdGVtcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGksIGogfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBkdXBsaWNhdGUgaXRlbXMgKGl0ZW1zICMjICR7an0gYW5kICR7aX0gYXJlIGlkZW50aWNhbClgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBpLCBqIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7aTogJHtpfSwgajogJHtqfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInVuaXF1ZUl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogImJvb2xlYW4iLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmICFzY2hlbWEyKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLmxldCgidmFsaWQiKTsKICAgICAgICBjb25zdCBpdGVtVHlwZXMgPSBwYXJlbnRTY2hlbWEuaXRlbXMgPyAoMCwgZGF0YVR5cGVfMS5nZXRTY2hlbWFUeXBlcykocGFyZW50U2NoZW1hLml0ZW1zKSA6IFtdOwogICAgICAgIGN4dC5ibG9jayRkYXRhKHZhbGlkLCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zLCAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gPT09IGZhbHNlYCk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKCkgewogICAgICAgICAgY29uc3QgaSA9IGdlbi5sZXQoImkiLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgICBjb25zdCBqID0gZ2VuLmxldCgiaiIpOwogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGksIGogfSk7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aX0gPiAxYCwgKCkgPT4gKGNhbk9wdGltaXplKCkgPyBsb29wTiA6IGxvb3BOMikoaSwgaikpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjYW5PcHRpbWl6ZSgpIHsKICAgICAgICAgIHJldHVybiBpdGVtVHlwZXMubGVuZ3RoID4gMCAmJiAhaXRlbVR5cGVzLnNvbWUoKHQpID0+IHQgPT09ICJvYmplY3QiIHx8IHQgPT09ICJhcnJheSIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsb29wTihpLCBqKSB7CiAgICAgICAgICBjb25zdCBpdGVtID0gZ2VuLm5hbWUoIml0ZW0iKTsKICAgICAgICAgIGNvbnN0IHdyb25nVHlwZSA9ICgwLCBkYXRhVHlwZV8xLmNoZWNrRGF0YVR5cGVzKShpdGVtVHlwZXMsIGl0ZW0sIGl0Lm9wdHMuc3RyaWN0TnVtYmVycywgZGF0YVR5cGVfMS5EYXRhVHlwZS5Xcm9uZyk7CiAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2VuLmNvbnN0KCJpbmRpY2VzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICAgICAgZ2VuLmZvcigoMCwgY29kZWdlbl8xLl8pYDske2l9LS07YCwgKCkgPT4gewogICAgICAgICAgICBnZW4ubGV0KGl0ZW0sICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfVske2l9XWApOwogICAgICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoMCwgY29kZWdlbl8xLl8pYGNvbnRpbnVlYCk7CiAgICAgICAgICAgIGlmIChpdGVtVHlwZXMubGVuZ3RoID4gMSkKICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtpdGVtfSA9PSAic3RyaW5nImAsICgwLCBjb2RlZ2VuXzEuXylgJHtpdGVtfSArPSAiXyJgKTsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7aW5kaWNlc31bJHtpdGVtfV0gPT0gIm51bWJlciJgLCAoKSA9PiB7CiAgICAgICAgICAgICAgZ2VuLmFzc2lnbihqLCAoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV1gKTsKICAgICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsoKTsKICAgICAgICAgICAgfSkuY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV0gPSAke2l9YCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbG9vcE4yKGksIGopIHsKICAgICAgICAgIGNvbnN0IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgICAgY29uc3Qgb3V0ZXIgPSBnZW4ubmFtZSgib3V0ZXIiKTsKICAgICAgICAgIGdlbi5sYWJlbChvdXRlcikuZm9yKCgwLCBjb2RlZ2VuXzEuXylgOyR7aX0tLTtgLCAoKSA9PiBnZW4uZm9yKCgwLCBjb2RlZ2VuXzEuXylgJHtqfSA9ICR7aX07ICR7an0tLTtgLCAoKSA9PiBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2VxbH0oJHtkYXRhfVske2l9XSwgJHtkYXRhfVske2p9XSlgLCAoKSA9PiB7CiAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsob3V0ZXIpOwogICAgICAgICAgfSkpKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vY29uc3QuanMKdmFyIHJlcXVpcmVfY29uc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2NvbnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gY29uc3RhbnQiLAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWxsb3dlZFZhbHVlOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiY29uc3QiLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWFDb2RlLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGN4dDsKICAgICAgICBpZiAoJGRhdGEgfHwgc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IikgewogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEkeygwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpfSgke2RhdGF9LCAke3NjaGVtYUNvZGV9KWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjeHQuZmFpbCgoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hMn0gIT09ICR7ZGF0YX1gKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vZW51bS5qcwp2YXIgcmVxdWlyZV9lbnVtID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9lbnVtLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gb25lIG9mIHRoZSBhbGxvd2VkIHZhbHVlcyIsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHthbGxvd2VkVmFsdWVzOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZW51bSIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmIHNjaGVtYTIubGVuZ3RoID09PSAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJlbnVtIG11c3QgaGF2ZSBub24tZW1wdHkgYXJyYXkiKTsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gaXQub3B0cy5sb29wRW51bTsKICAgICAgICBsZXQgZXFsOwogICAgICAgIGNvbnN0IGdldEVxbCA9ICgpID0+IGVxbCAhPT0gbnVsbCAmJiBlcWwgIT09IHZvaWQgMCA/IGVxbCA6IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgIGxldCB2YWxpZDsKICAgICAgICBpZiAodXNlTG9vcCB8fCAkZGF0YSkgewogICAgICAgICAgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICAgICAgY3h0LmJsb2NrJGRhdGEodmFsaWQsIGxvb3BFbnVtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgY29uc3QgdlNjaGVtYSA9IGdlbi5jb25zdCgidlNjaGVtYSIsIHNjaGVtYUNvZGUpOwogICAgICAgICAgdmFsaWQgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5zY2hlbWEyLm1hcCgoX3gsIGkpID0+IGVxdWFsQ29kZSh2U2NoZW1hLCBpKSkpOwogICAgICAgIH0KICAgICAgICBjeHQucGFzcyh2YWxpZCk7CiAgICAgICAgZnVuY3Rpb24gbG9vcEVudW0oKSB7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICBnZW4uZm9yT2YoInYiLCBzY2hlbWFDb2RlLCAodikgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2fSlgLCAoKSA9PiBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKS5icmVhaygpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGVxdWFsQ29kZSh2U2NoZW1hLCBpKSB7CiAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2ldOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2ggPT09ICJvYmplY3QiICYmIHNjaCAhPT0gbnVsbCA/ICgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2U2NoZW1hfVske2l9XSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSAke3NjaH1gOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcwp2YXIgcmVxdWlyZV92YWxpZGF0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGxpbWl0TnVtYmVyXzEgPSByZXF1aXJlX2xpbWl0TnVtYmVyKCk7CiAgICB2YXIgbXVsdGlwbGVPZl8xID0gcmVxdWlyZV9tdWx0aXBsZU9mKCk7CiAgICB2YXIgbGltaXRMZW5ndGhfMSA9IHJlcXVpcmVfbGltaXRMZW5ndGgoKTsKICAgIHZhciBwYXR0ZXJuXzEgPSByZXF1aXJlX3BhdHRlcm4oKTsKICAgIHZhciBsaW1pdFByb3BlcnRpZXNfMSA9IHJlcXVpcmVfbGltaXRQcm9wZXJ0aWVzKCk7CiAgICB2YXIgcmVxdWlyZWRfMSA9IHJlcXVpcmVfcmVxdWlyZWQoKTsKICAgIHZhciBsaW1pdEl0ZW1zXzEgPSByZXF1aXJlX2xpbWl0SXRlbXMoKTsKICAgIHZhciB1bmlxdWVJdGVtc18xID0gcmVxdWlyZV91bmlxdWVJdGVtcygpOwogICAgdmFyIGNvbnN0XzEgPSByZXF1aXJlX2NvbnN0KCk7CiAgICB2YXIgZW51bV8xID0gcmVxdWlyZV9lbnVtKCk7CiAgICB2YXIgdmFsaWRhdGlvbiA9IFsKICAgICAgLy8gbnVtYmVyCiAgICAgIGxpbWl0TnVtYmVyXzEuZGVmYXVsdCwKICAgICAgbXVsdGlwbGVPZl8xLmRlZmF1bHQsCiAgICAgIC8vIHN0cmluZwogICAgICBsaW1pdExlbmd0aF8xLmRlZmF1bHQsCiAgICAgIHBhdHRlcm5fMS5kZWZhdWx0LAogICAgICAvLyBvYmplY3QKICAgICAgbGltaXRQcm9wZXJ0aWVzXzEuZGVmYXVsdCwKICAgICAgcmVxdWlyZWRfMS5kZWZhdWx0LAogICAgICAvLyBhcnJheQogICAgICBsaW1pdEl0ZW1zXzEuZGVmYXVsdCwKICAgICAgdW5pcXVlSXRlbXNfMS5kZWZhdWx0LAogICAgICAvLyBhbnkKICAgICAgeyBrZXl3b3JkOiAidHlwZSIsIHNjaGVtYVR5cGU6IFsic3RyaW5nIiwgImFycmF5Il0gfSwKICAgICAgeyBrZXl3b3JkOiAibnVsbGFibGUiLCBzY2hlbWFUeXBlOiAiYm9vbGVhbiIgfSwKICAgICAgY29uc3RfMS5kZWZhdWx0LAogICAgICBlbnVtXzEuZGVmYXVsdAogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB2YWxpZGF0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzCnZhciByZXF1aXJlX2FkZGl0aW9uYWxJdGVtcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGxlbiB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlIG1vcmUgdGhhbiAke2xlbn0gaXRlbXNgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtsaW1pdDogJHtsZW59fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbEl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJib29sZWFuIiwgIm9iamVjdCJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICciYWRkaXRpb25hbEl0ZW1zIiBpcyBpZ25vcmVkIHdoZW4gIml0ZW1zIiBpcyBub3QgYW4gYXJyYXkgb2Ygc2NoZW1hcycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyhjeHQsIGl0ZW1zKTsKICAgICAgfQogICAgfTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zKGN4dCwgaXRlbXMpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IGxlbjogaXRlbXMubGVuZ3RoIH0pOwogICAgICAgIGN4dC5wYXNzKCgwLCBjb2RlZ2VuXzEuXylgJHtsZW59IDw9ICR7aXRlbXMubGVuZ3RofWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi52YXIoInZhbGlkIiwgKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPD0gJHtpdGVtcy5sZW5ndGh9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHZhbGlkYXRlSXRlbXModmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXModmFsaWQpIHsKICAgICAgICBnZW4uZm9yUmFuZ2UoImkiLCBpdGVtcy5sZW5ndGgsIGxlbiwgKGkpID0+IHsKICAgICAgICAgIGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkLCBkYXRhUHJvcDogaSwgZGF0YVByb3BUeXBlOiB1dGlsXzEuVHlwZS5OdW0gfSwgdmFsaWQpOwogICAgICAgICAgaWYgKCFpdC5hbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zID0gdmFsaWRhdGVBZGRpdGlvbmFsSXRlbXM7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaXRlbXMuanMKdmFyIHJlcXVpcmVfaXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVR1cGxlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImFycmF5IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuIHZhbGlkYXRlVHVwbGUoY3h0LCAiYWRkaXRpb25hbEl0ZW1zIiwgc2NoZW1hMik7CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVR1cGxlKGN4dCwgZXh0cmFJdGVtcywgc2NoQXJyID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgcGFyZW50U2NoZW1hLCBkYXRhLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBjaGVja1N0cmljdFR1cGxlKHBhcmVudFNjaGVtYSk7CiAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIHNjaEFyci5sZW5ndGggJiYgaXQuaXRlbXMgIT09IHRydWUpIHsKICAgICAgICBpdC5pdGVtcyA9IHV0aWxfMS5tZXJnZUV2YWx1YXRlZC5pdGVtcyhnZW4sIHNjaEFyci5sZW5ndGgsIGl0Lml0ZW1zKTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgc2NoQXJyLmZvckVhY2goKHNjaCwgaSkgPT4gewogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPiAke2l9YCwgKCkgPT4gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkLAogICAgICAgICAgc2NoZW1hUHJvcDogaSwKICAgICAgICAgIGRhdGFQcm9wOiBpCiAgICAgICAgfSwgdmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY2hlY2tTdHJpY3RUdXBsZShzY2gpIHsKICAgICAgICBjb25zdCB7IG9wdHMsIGVyclNjaGVtYVBhdGggfSA9IGl0OwogICAgICAgIGNvbnN0IGwgPSBzY2hBcnIubGVuZ3RoOwogICAgICAgIGNvbnN0IGZ1bGxUdXBsZSA9IGwgPT09IHNjaC5taW5JdGVtcyAmJiAobCA9PT0gc2NoLm1heEl0ZW1zIHx8IHNjaFtleHRyYUl0ZW1zXSA9PT0gZmFsc2UpOwogICAgICAgIGlmIChvcHRzLnN0cmljdFR1cGxlcyAmJiAhZnVsbFR1cGxlKSB7CiAgICAgICAgICBjb25zdCBtc2cgPSBgIiR7a2V5d29yZH0iIGlzICR7bH0tdHVwbGUsIGJ1dCBtaW5JdGVtcyBvciBtYXhJdGVtcy8ke2V4dHJhSXRlbXN9IGFyZSBub3Qgc3BlY2lmaWVkIG9yIGRpZmZlcmVudCBhdCBwYXRoICIke2VyclNjaGVtYVBhdGh9ImA7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgb3B0cy5zdHJpY3RUdXBsZXMpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVUdXBsZSA9IHZhbGlkYXRlVHVwbGU7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJlZml4SXRlbXMuanMKdmFyIHJlcXVpcmVfcHJlZml4SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3ByZWZpeEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgaXRlbXNfMSA9IHJlcXVpcmVfaXRlbXMoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJwcmVmaXhJdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsiYXJyYXkiXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlOiAoY3h0KSA9PiAoMCwgaXRlbXNfMS52YWxpZGF0ZVR1cGxlKShjeHQsICJpdGVtcyIpCiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcwp2YXIgcmVxdWlyZV9pdGVtczIwMjAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtsZW59IGl0ZW1zYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbGVuIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7bGVufX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIml0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBwcmVmaXhJdGVtcyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGl0Lml0ZW1zID0gdHJ1ZTsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChwcmVmaXhJdGVtcykKICAgICAgICAgICgwLCBhZGRpdGlvbmFsSXRlbXNfMS52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcykoY3h0LCBwcmVmaXhJdGVtcyk7CiAgICAgICAgZWxzZQogICAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvY29udGFpbnMuanMKdmFyIHJlcXVpcmVfY29udGFpbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2NvbnRhaW5zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBtaW4sIG1heCB9IH0pID0+IG1heCA9PT0gdm9pZCAwID8gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgY29udGFpbiBhdCBsZWFzdCAke21pbn0gdmFsaWQgaXRlbShzKWAgOiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7bWlufSBhbmQgbm8gbW9yZSB0aGFuICR7bWF4fSB2YWxpZCBpdGVtKHMpYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbWluLCBtYXggfSB9KSA9PiBtYXggPT09IHZvaWQgMCA/ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn19YCA6ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn0sIG1heENvbnRhaW5zOiAke21heH19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJjb250YWlucyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGxldCBtaW47CiAgICAgICAgbGV0IG1heDsKICAgICAgICBjb25zdCB7IG1pbkNvbnRhaW5zLCBtYXhDb250YWlucyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGlmIChpdC5vcHRzLm5leHQpIHsKICAgICAgICAgIG1pbiA9IG1pbkNvbnRhaW5zID09PSB2b2lkIDAgPyAxIDogbWluQ29udGFpbnM7CiAgICAgICAgICBtYXggPSBtYXhDb250YWluczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWluID0gMTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IG1pbiwgbWF4IH0pOwogICAgICAgIGlmIChtYXggPT09IHZvaWQgMCAmJiBtaW4gPT09IDApIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPT0gMCB3aXRob3V0ICJtYXhDb250YWlucyI6ICJjb250YWlucyIga2V5d29yZCBpZ25vcmVkYCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChtYXggIT09IHZvaWQgMCAmJiBtaW4gPiBtYXgpIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPiAibWF4Q29udGFpbnMiIGlzIGFsd2F5cyBpbnZhbGlkYCk7CiAgICAgICAgICBjeHQuZmFpbCgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICBsZXQgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtsZW59ID49ICR7bWlufWA7CiAgICAgICAgICBpZiAobWF4ICE9PSB2b2lkIDApCiAgICAgICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtsZW59IDw9ICR7bWF4fWA7CiAgICAgICAgICBjeHQucGFzcyhjb25kKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKG1heCA9PT0gdm9pZCAwICYmIG1pbiA9PT0gMSkgewogICAgICAgICAgdmFsaWRhdGVJdGVtcyh2YWxpZCwgKCkgPT4gZ2VuLmlmKHZhbGlkLCAoKSA9PiBnZW4uYnJlYWsoKSkpOwogICAgICAgIH0gZWxzZSBpZiAobWluID09PSAwKSB7CiAgICAgICAgICBnZW4ubGV0KHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGlmIChtYXggIT09IHZvaWQgMCkKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggPiAwYCwgdmFsaWRhdGVJdGVtc1dpdGhDb3VudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5sZXQodmFsaWQsIGZhbHNlKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKTsKICAgICAgICB9CiAgICAgICAgY3h0LnJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKSB7CiAgICAgICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgICAgIGNvbnN0IGNvdW50ID0gZ2VuLmxldCgiY291bnQiLCAwKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXMoc2NoVmFsaWQsICgpID0+IGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gY2hlY2tMaW1pdHMoY291bnQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXMoX3ZhbGlkLCBibG9jaykgewogICAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICBrZXl3b3JkOiAiY29udGFpbnMiLAogICAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICAgIGRhdGFQcm9wVHlwZTogdXRpbF8xLlR5cGUuTnVtLAogICAgICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUKICAgICAgICAgICAgfSwgX3ZhbGlkKTsKICAgICAgICAgICAgYmxvY2soKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja0xpbWl0cyhjb3VudCkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSsrYCk7CiAgICAgICAgICBpZiAobWF4ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtjb3VudH0gPj0gJHttaW59YCwgKCkgPT4gZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSkuYnJlYWsoKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSA+ICR7bWF4fWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5icmVhaygpKTsKICAgICAgICAgICAgaWYgKG1pbiA9PT0gMSkKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y291bnR9ID49ICR7bWlufWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIHRydWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzCnZhciByZXF1aXJlX2RlcGVuZGVuY2llcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVNjaGVtYURlcHMgPSBleHBvcnRzMi52YWxpZGF0ZVByb3BlcnR5RGVwcyA9IGV4cG9ydHMyLmVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIGV4cG9ydHMyLmVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgcHJvcGVydHksIGRlcHNDb3VudCwgZGVwcyB9IH0pID0+IHsKICAgICAgICBjb25zdCBwcm9wZXJ0eV9pZXMgPSBkZXBzQ291bnQgPT09IDEgPyAicHJvcGVydHkiIDogInByb3BlcnRpZXMiOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBoYXZlICR7cHJvcGVydHlfaWVzfSAke2RlcHN9IHdoZW4gcHJvcGVydHkgJHtwcm9wZXJ0eX0gaXMgcHJlc2VudGA7CiAgICAgIH0sCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IHByb3BlcnR5LCBkZXBzQ291bnQsIGRlcHMsIG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Byb3BlcnR5OiAke3Byb3BlcnR5fSwKICAgIG1pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9LAogICAgZGVwc0NvdW50OiAke2RlcHNDb3VudH0sCiAgICBkZXBzOiAke2RlcHN9fWAKICAgICAgLy8gVE9ETyBjaGFuZ2UgdG8gcmVmZXJlbmNlCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogImRlcGVuZGVuY2llcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3I6IGV4cG9ydHMyLmVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IFtwcm9wRGVwcywgc2NoRGVwc10gPSBzcGxpdERlcGVuZGVuY2llcyhjeHQpOwogICAgICAgIHZhbGlkYXRlUHJvcGVydHlEZXBzKGN4dCwgcHJvcERlcHMpOwogICAgICAgIHZhbGlkYXRlU2NoZW1hRGVwcyhjeHQsIHNjaERlcHMpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gc3BsaXREZXBlbmRlbmNpZXMoeyBzY2hlbWE6IHNjaGVtYTIgfSkgewogICAgICBjb25zdCBwcm9wZXJ0eURlcHMgPSB7fTsKICAgICAgY29uc3Qgc2NoZW1hRGVwcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIl9fcHJvdG9fXyIpCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBkZXBzID0gQXJyYXkuaXNBcnJheShzY2hlbWEyW2tleV0pID8gcHJvcGVydHlEZXBzIDogc2NoZW1hRGVwczsKICAgICAgICBkZXBzW2tleV0gPSBzY2hlbWEyW2tleV07CiAgICAgIH0KICAgICAgcmV0dXJuIFtwcm9wZXJ0eURlcHMsIHNjaGVtYURlcHNdOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eURlcHMoY3h0LCBwcm9wZXJ0eURlcHMgPSBjeHQuc2NoZW1hKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICBpZiAoT2JqZWN0LmtleXMocHJvcGVydHlEZXBzKS5sZW5ndGggPT09IDApCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcGVydHlEZXBzKSB7CiAgICAgICAgY29uc3QgZGVwcyA9IHByb3BlcnR5RGVwc1twcm9wXTsKICAgICAgICBpZiAoZGVwcy5sZW5ndGggPT09IDApCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBoYXNQcm9wZXJ0eSA9ICgwLCBjb2RlXzEucHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKTsKICAgICAgICBjeHQuc2V0UGFyYW1zKHsKICAgICAgICAgIHByb3BlcnR5OiBwcm9wLAogICAgICAgICAgZGVwc0NvdW50OiBkZXBzLmxlbmd0aCwKICAgICAgICAgIGRlcHM6IGRlcHMuam9pbigiLCAiKQogICAgICAgIH0pOwogICAgICAgIGlmIChpdC5hbGxFcnJvcnMpIHsKICAgICAgICAgIGdlbi5pZihoYXNQcm9wZXJ0eSwgKCkgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcFByb3Agb2YgZGVwcykgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBkZXBQcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aGFzUHJvcGVydHl9ICYmICgkeygwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBkZXBzLCBtaXNzaW5nKX0pYCk7CiAgICAgICAgICAoMCwgY29kZV8xLnJlcG9ydE1pc3NpbmdQcm9wKShjeHQsIG1pc3NpbmcpOwogICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlUHJvcGVydHlEZXBzID0gdmFsaWRhdGVQcm9wZXJ0eURlcHM7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVNjaGVtYURlcHMoY3h0LCBzY2hlbWFEZXBzID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgZm9yIChjb25zdCBwcm9wIGluIHNjaGVtYURlcHMpIHsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYURlcHNbcHJvcF0pKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgZ2VuLmlmKAogICAgICAgICAgKDAsIGNvZGVfMS5wcm9wZXJ0eUluRGF0YSkoZ2VuLCBkYXRhLCBwcm9wLCBpdC5vcHRzLm93blByb3BlcnRpZXMpLAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZCwgc2NoZW1hUHJvcDogcHJvcCB9LCB2YWxpZCk7CiAgICAgICAgICAgIGN4dC5tZXJnZVZhbGlkRXZhbHVhdGVkKHNjaEN4dCwgdmFsaWQpOwogICAgICAgICAgfSwKICAgICAgICAgICgpID0+IGdlbi52YXIodmFsaWQsIHRydWUpCiAgICAgICAgICAvLyBUT0RPIHZhcgogICAgICAgICk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVTY2hlbWFEZXBzID0gdmFsaWRhdGVTY2hlbWFEZXBzOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnR5TmFtZXMuanMKdmFyIHJlcXVpcmVfcHJvcGVydHlOYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJvcGVydHlOYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAicHJvcGVydHkgbmFtZSBtdXN0IGJlIHZhbGlkIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7cHJvcGVydHlOYW1lOiAke3BhcmFtcy5wcm9wZXJ0eU5hbWV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicHJvcGVydHlOYW1lcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiBbIm9iamVjdCIsICJib29sZWFuIl0sCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCgwLCB1dGlsXzEuYWx3YXlzVmFsaWRTY2hlbWEpKGl0LCBzY2hlbWEyKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIGdlbi5mb3JJbigia2V5IiwgZGF0YSwgKGtleSkgPT4gewogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IHByb3BlcnR5TmFtZToga2V5IH0pOwogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0eU5hbWVzIiwKICAgICAgICAgICAgZGF0YToga2V5LAogICAgICAgICAgICBkYXRhVHlwZXM6IFsic3RyaW5nIl0sCiAgICAgICAgICAgIHByb3BlcnR5TmFtZToga2V5LAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICB9LCB2YWxpZCk7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICBjeHQuZXJyb3IodHJ1ZSk7CiAgICAgICAgICAgIGlmICghaXQuYWxsRXJyb3JzKQogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hZGRpdGlvbmFsUHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbFByb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUyKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgbmFtZXNfMSA9IHJlcXVpcmVfbmFtZXMoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWRkaXRpb25hbFByb3BlcnR5OiAke3BhcmFtcy5hZGRpdGlvbmFsUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICB0eXBlOiBbIm9iamVjdCJdLAogICAgICBzY2hlbWFUeXBlOiBbImJvb2xlYW4iLCAib2JqZWN0Il0sCiAgICAgIGFsbG93VW5kZWZpbmVkOiB0cnVlLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFlcnJzQ291bnQpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBvcHRzIH0gPSBpdDsKICAgICAgICBpdC5wcm9wcyA9IHRydWU7CiAgICAgICAgaWYgKG9wdHMucmVtb3ZlQWRkaXRpb25hbCAhPT0gImFsbCIgJiYgKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHByb3BzID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShwYXJlbnRTY2hlbWEucHJvcGVydGllcyk7CiAgICAgICAgY29uc3QgcGF0UHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHBhcmVudFNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyk7CiAgICAgICAgY2hlY2tBZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgICAgIGN4dC5vaygoMCwgY29kZWdlbl8xLl8pYCR7ZXJyc0NvdW50fSA9PT0gJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfWApOwogICAgICAgIGZ1bmN0aW9uIGNoZWNrQWRkaXRpb25hbFByb3BlcnRpZXMoKSB7CiAgICAgICAgICBnZW4uZm9ySW4oImtleSIsIGRhdGEsIChrZXkpID0+IHsKICAgICAgICAgICAgaWYgKCFwcm9wcy5sZW5ndGggJiYgIXBhdFByb3BzLmxlbmd0aCkKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydHlDb2RlKGtleSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBnZW4uaWYoaXNBZGRpdGlvbmFsKGtleSksICgpID0+IGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaXNBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgbGV0IGRlZmluZWRQcm9wOwogICAgICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDgpIHsKICAgICAgICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgcGFyZW50U2NoZW1hLnByb3BlcnRpZXMsICJwcm9wZXJ0aWVzIik7CiAgICAgICAgICAgIGRlZmluZWRQcm9wID0gKDAsIGNvZGVfMS5pc093blByb3BlcnR5KShnZW4sIHByb3BzU2NoZW1hLCBrZXkpOwogICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5sZW5ndGgpIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5wcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl9ID09PSAke3B9YCkpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSBjb2RlZ2VuXzEubmlsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhdFByb3BzLmxlbmd0aCkgewogICAgICAgICAgICBkZWZpbmVkUHJvcCA9ICgwLCBjb2RlZ2VuXzEub3IpKGRlZmluZWRQcm9wLCAuLi5wYXRQcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgcCl9LnRlc3QoJHtrZXl9KWApKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm5vdCkoZGVmaW5lZFByb3ApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBkZWxldGVBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBkZWxldGUgJHtkYXRhfVske2tleX1dYCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSB7CiAgICAgICAgICBpZiAob3B0cy5yZW1vdmVBZGRpdGlvbmFsID09PSAiYWxsIiB8fCBvcHRzLnJlbW92ZUFkZGl0aW9uYWwgJiYgc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGFkZGl0aW9uYWxQcm9wZXJ0eToga2V5IH0pOwogICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgICAgZ2VuLmJyZWFrKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICAgIGlmIChvcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJmYWlsaW5nIikgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHsKICAgICAgICAgICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkKTsKICAgICAgICAgICAgICBpZiAoIWFsbEVycm9ycykKICAgICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlBZGRpdGlvbmFsU2NoZW1hKGtleSwgdmFsaWQsIGVycm9ycykgewogICAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gewogICAgICAgICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLlN0cgogICAgICAgICAgfTsKICAgICAgICAgIGlmIChlcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3Vic2NoZW1hLCB7CiAgICAgICAgICAgICAgY29tcG9zaXRlUnVsZTogdHJ1ZSwKICAgICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICAgIGFsbEVycm9yczogZmFsc2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjeHQuc3Vic2NoZW1hKHN1YnNjaGVtYSwgdmFsaWQpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9wcm9wZXJ0aWVzLmpzCnZhciByZXF1aXJlX3Byb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInByb3BlcnRpZXMiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogIm9iamVjdCIsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChpdC5vcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJhbGwiICYmIHBhcmVudFNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQuY29kZShuZXcgdmFsaWRhdGVfMS5LZXl3b3JkQ3h0KGl0LCBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQsICJhZGRpdGlvbmFsUHJvcGVydGllcyIpKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWxsUHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHNjaGVtYTIpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykgewogICAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMuYWRkKHByb3ApOwogICAgICAgIH0KICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBhbGxQcm9wcy5sZW5ndGggJiYgaXQucHJvcHMgIT09IHRydWUpIHsKICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgKDAsIHV0aWxfMS50b0hhc2gpKGFsbFByb3BzKSwgaXQucHJvcHMpOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gYWxsUHJvcHMuZmlsdGVyKChwKSA9PiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTJbcF0pKTsKICAgICAgICBpZiAocHJvcGVydGllcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykgewogICAgICAgICAgaWYgKGhhc0RlZmF1bHQocHJvcCkpIHsKICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eVNjaGVtYShwcm9wKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIHByb3AsIGl0Lm9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBhcHBseVByb3BlcnR5U2NoZW1hKHByb3ApOwogICAgICAgICAgICBpZiAoIWl0LmFsbEVycm9ycykKICAgICAgICAgICAgICBnZW4uZWxzZSgpLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgIGdlbi5lbmRJZigpOwogICAgICAgICAgfQogICAgICAgICAgY3h0Lml0LmRlZmluZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhc0RlZmF1bHQocHJvcCkgewogICAgICAgICAgcmV0dXJuIGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgc2NoZW1hMltwcm9wXS5kZWZhdWx0ICE9PSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFwcGx5UHJvcGVydHlTY2hlbWEocHJvcCkgewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0aWVzIiwKICAgICAgICAgICAgc2NoZW1hUHJvcDogcHJvcCwKICAgICAgICAgICAgZGF0YVByb3A6IHByb3AKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcGF0dGVyblByb3BlcnRpZXMuanMKdmFyIHJlcXVpcmVfcGF0dGVyblByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3BhdHRlcm5Qcm9wZXJ0aWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgIHNjaGVtYVR5cGU6ICJvYmplY3QiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB7IG9wdHMgfSA9IGl0OwogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShzY2hlbWEyKTsKICAgICAgICBjb25zdCBhbHdheXNWYWxpZFBhdHRlcm5zID0gcGF0dGVybnMuZmlsdGVyKChwKSA9PiAoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMltwXSkpOwogICAgICAgIGlmIChwYXR0ZXJucy5sZW5ndGggPT09IDAgfHwgYWx3YXlzVmFsaWRQYXR0ZXJucy5sZW5ndGggPT09IHBhdHRlcm5zLmxlbmd0aCAmJiAoIWl0Lm9wdHMudW5ldmFsdWF0ZWQgfHwgaXQucHJvcHMgPT09IHRydWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNoZWNrUHJvcGVydGllcyA9IG9wdHMuc3RyaWN0U2NoZW1hICYmICFvcHRzLmFsbG93TWF0Y2hpbmdQcm9wZXJ0aWVzICYmIHBhcmVudFNjaGVtYS5wcm9wZXJ0aWVzOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlICYmICEoaXQucHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSkpIHsKICAgICAgICAgIGl0LnByb3BzID0gKDAsIHV0aWxfMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSkoZ2VuLCBpdC5wcm9wcyk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHsgcHJvcHMgfSA9IGl0OwogICAgICAgIHZhbGlkYXRlUGF0dGVyblByb3BlcnRpZXMoKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVBhdHRlcm5Qcm9wZXJ0aWVzKCkgewogICAgICAgICAgZm9yIChjb25zdCBwYXQgb2YgcGF0dGVybnMpIHsKICAgICAgICAgICAgaWYgKGNoZWNrUHJvcGVydGllcykKICAgICAgICAgICAgICBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpOwogICAgICAgICAgICBpZiAoaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgICAgZ2VuLmlmKHZhbGlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpIHsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGVja1Byb3BlcnRpZXMpIHsKICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAocGF0KS50ZXN0KHByb3ApKSB7CiAgICAgICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgcHJvcGVydHkgJHtwcm9wfSBtYXRjaGVzIHBhdHRlcm4gJHtwYXR9ICh1c2UgYWxsb3dNYXRjaGluZ1Byb3BlcnRpZXMpYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCkgewogICAgICAgICAgZ2VuLmZvckluKCJrZXkiLCBkYXRhLCAoa2V5KSA9PiB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7KDAsIGNvZGVfMS51c2VQYXR0ZXJuKShjeHQsIHBhdCl9LnRlc3QoJHtrZXl9KWAsICgpID0+IHsKICAgICAgICAgICAgICBjb25zdCBhbHdheXNWYWxpZCA9IGFsd2F5c1ZhbGlkUGF0dGVybnMuaW5jbHVkZXMocGF0KTsKICAgICAgICAgICAgICBpZiAoIWFsd2F5c1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgICAgICAgICAgICAgc2NoZW1hUHJvcDogcGF0LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMi5UeXBlLlN0cgogICAgICAgICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBwcm9wcyAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cHJvcHN9WyR7a2V5fV1gLCB0cnVlKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhbHdheXNWYWxpZCAmJiAhaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gZ2VuLmJyZWFrKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzCnZhciByZXF1aXJlX25vdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICAgIGN4dC5mYWlsKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUsCiAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgYWxsRXJyb3JzOiBmYWxzZQogICAgICAgIH0sIHZhbGlkKTsKICAgICAgICBjeHQuZmFpbFJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCksICgpID0+IGN4dC5lcnJvcigpKTsKICAgICAgfSwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgTk9UIGJlIHZhbGlkIiB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FueU9mLmpzCnZhciByZXF1aXJlX2FueU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hbnlPZi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJhbnlPZiIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgIHRyYWNrRXJyb3JzOiB0cnVlLAogICAgICBjb2RlOiBjb2RlXzEudmFsaWRhdGVVbmlvbiwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgbWF0Y2ggYSBzY2hlbWEgaW4gYW55T2YiIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivb25lT2YuanMKdmFyIHJlcXVpcmVfb25lT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL29uZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICJtdXN0IG1hdGNoIGV4YWN0bHkgb25lIHNjaGVtYSBpbiBvbmVPZiIsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Bhc3NpbmdTY2hlbWFzOiAke3BhcmFtcy5wYXNzaW5nfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGlmIChpdC5vcHRzLmRpc2NyaW1pbmF0b3IgJiYgcGFyZW50U2NoZW1hLmRpc2NyaW1pbmF0b3IpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3Qgc2NoQXJyID0gc2NoZW1hMjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICAgIGNvbnN0IHBhc3NpbmcgPSBnZW4ubGV0KCJwYXNzaW5nIiwgbnVsbCk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IHBhc3NpbmcgfSk7CiAgICAgICAgZ2VuLmJsb2NrKHZhbGlkYXRlT25lT2YpOwogICAgICAgIGN4dC5yZXN1bHQodmFsaWQsICgpID0+IGN4dC5yZXNldCgpLCAoKSA9PiBjeHQuZXJyb3IodHJ1ZSkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlT25lT2YoKSB7CiAgICAgICAgICBzY2hBcnIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICAgIGxldCBzY2hDeHQ7CiAgICAgICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkgewogICAgICAgICAgICAgIGdlbi52YXIoc2NoVmFsaWQsIHRydWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7c2NoVmFsaWR9ICYmICR7dmFsaWR9YCkuYXNzaWduKHZhbGlkLCBmYWxzZSkuYXNzaWduKHBhc3NpbmcsICgwLCBjb2RlZ2VuXzEuXylgWyR7cGFzc2luZ30sICR7aX1dYCkuZWxzZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gewogICAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIHRydWUpOwogICAgICAgICAgICAgIGdlbi5hc3NpZ24ocGFzc2luZywgaSk7CiAgICAgICAgICAgICAgaWYgKHNjaEN4dCkKICAgICAgICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWxsT2YuanMKdmFyIHJlcXVpcmVfYWxsT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FsbE9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWxsT2YiLAogICAgICBzY2hlbWFUeXBlOiAiYXJyYXkiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIHNjaGVtYTIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkOiAiYWxsT2YiLCBzY2hlbWFQcm9wOiBpIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9pZi5qcwp2YXIgcmVxdWlyZV9pZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaWYuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IG1hdGNoICIke3BhcmFtcy5pZkNsYXVzZX0iIHNjaGVtYWAsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge2ZhaWxpbmdLZXl3b3JkOiAke3BhcmFtcy5pZkNsYXVzZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZiIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS50aGVuID09PSB2b2lkIDAgJiYgcGFyZW50U2NoZW1hLmVsc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCAnImlmIiB3aXRob3V0ICJ0aGVuIiBhbmQgImVsc2UiIGlzIGlnbm9yZWQnKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaGFzVGhlbiA9IGhhc1NjaGVtYShpdCwgInRoZW4iKTsKICAgICAgICBjb25zdCBoYXNFbHNlID0gaGFzU2NoZW1hKGl0LCAiZWxzZSIpOwogICAgICAgIGlmICghaGFzVGhlbiAmJiAhaGFzRWxzZSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgdHJ1ZSk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgdmFsaWRhdGVJZigpOwogICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgIGlmIChoYXNUaGVuICYmIGhhc0Vsc2UpIHsKICAgICAgICAgIGNvbnN0IGlmQ2xhdXNlID0gZ2VuLmxldCgiaWZDbGF1c2UiKTsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBpZkNsYXVzZSB9KTsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iLCBpZkNsYXVzZSksIHZhbGlkYXRlQ2xhdXNlKCJlbHNlIiwgaWZDbGF1c2UpKTsKICAgICAgICB9IGVsc2UgaWYgKGhhc1RoZW4pIHsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkoc2NoVmFsaWQpLCB2YWxpZGF0ZUNsYXVzZSgiZWxzZSIpKTsKICAgICAgICB9CiAgICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVJZigpIHsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICBrZXl3b3JkOiAiaWYiLAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlLAogICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICBhbGxFcnJvcnM6IGZhbHNlCiAgICAgICAgICB9LCBzY2hWYWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVDbGF1c2Uoa2V5d29yZCwgaWZDbGF1c2UpIHsKICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkIH0sIHNjaFZhbGlkKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgc2NoVmFsaWQpOwogICAgICAgICAgICBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHZhbGlkKTsKICAgICAgICAgICAgaWYgKGlmQ2xhdXNlKQogICAgICAgICAgICAgIGdlbi5hc3NpZ24oaWZDbGF1c2UsICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl3b3JkfWApOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGlmQ2xhdXNlOiBrZXl3b3JkIH0pOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBoYXNTY2hlbWEoaXQsIGtleXdvcmQpIHsKICAgICAgY29uc3Qgc2NoZW1hMiA9IGl0LnNjaGVtYVtrZXl3b3JkXTsKICAgICAgcmV0dXJuIHNjaGVtYTIgIT09IHZvaWQgMCAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3RoZW5FbHNlLmpzCnZhciByZXF1aXJlX3RoZW5FbHNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci90aGVuRWxzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogWyJ0aGVuIiwgImVsc2UiXSwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBjb2RlKHsga2V5d29yZCwgcGFyZW50U2NoZW1hLCBpdCB9KSB7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS5pZiA9PT0gdm9pZCAwKQogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgIiR7a2V5d29yZH0iIHdpdGhvdXQgImlmIiBpcyBpZ25vcmVkYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMKdmFyIHJlcXVpcmVfYXBwbGljYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgcHJlZml4SXRlbXNfMSA9IHJlcXVpcmVfcHJlZml4SXRlbXMoKTsKICAgIHZhciBpdGVtc18xID0gcmVxdWlyZV9pdGVtcygpOwogICAgdmFyIGl0ZW1zMjAyMF8xID0gcmVxdWlyZV9pdGVtczIwMjAoKTsKICAgIHZhciBjb250YWluc18xID0gcmVxdWlyZV9jb250YWlucygpOwogICAgdmFyIGRlcGVuZGVuY2llc18xID0gcmVxdWlyZV9kZXBlbmRlbmNpZXMoKTsKICAgIHZhciBwcm9wZXJ0eU5hbWVzXzEgPSByZXF1aXJlX3Byb3BlcnR5TmFtZXMoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIHByb3BlcnRpZXNfMSA9IHJlcXVpcmVfcHJvcGVydGllcygpOwogICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzXzEgPSByZXF1aXJlX3BhdHRlcm5Qcm9wZXJ0aWVzKCk7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdCgpOwogICAgdmFyIGFueU9mXzEgPSByZXF1aXJlX2FueU9mKCk7CiAgICB2YXIgb25lT2ZfMSA9IHJlcXVpcmVfb25lT2YoKTsKICAgIHZhciBhbGxPZl8xID0gcmVxdWlyZV9hbGxPZigpOwogICAgdmFyIGlmXzEgPSByZXF1aXJlX2lmKCk7CiAgICB2YXIgdGhlbkVsc2VfMSA9IHJlcXVpcmVfdGhlbkVsc2UoKTsKICAgIGZ1bmN0aW9uIGdldEFwcGxpY2F0b3IoZHJhZnQyMDIwID0gZmFsc2UpIHsKICAgICAgY29uc3QgYXBwbGljYXRvciA9IFsKICAgICAgICAvLyBhbnkKICAgICAgICBub3RfMS5kZWZhdWx0LAogICAgICAgIGFueU9mXzEuZGVmYXVsdCwKICAgICAgICBvbmVPZl8xLmRlZmF1bHQsCiAgICAgICAgYWxsT2ZfMS5kZWZhdWx0LAogICAgICAgIGlmXzEuZGVmYXVsdCwKICAgICAgICB0aGVuRWxzZV8xLmRlZmF1bHQsCiAgICAgICAgLy8gb2JqZWN0CiAgICAgICAgcHJvcGVydHlOYW1lc18xLmRlZmF1bHQsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNfMS5kZWZhdWx0LAogICAgICAgIGRlcGVuZGVuY2llc18xLmRlZmF1bHQsCiAgICAgICAgcHJvcGVydGllc18xLmRlZmF1bHQsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXNfMS5kZWZhdWx0CiAgICAgIF07CiAgICAgIGlmIChkcmFmdDIwMjApCiAgICAgICAgYXBwbGljYXRvci5wdXNoKHByZWZpeEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXMyMDIwXzEuZGVmYXVsdCk7CiAgICAgIGVsc2UKICAgICAgICBhcHBsaWNhdG9yLnB1c2goYWRkaXRpb25hbEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXNfMS5kZWZhdWx0KTsKICAgICAgYXBwbGljYXRvci5wdXNoKGNvbnRhaW5zXzEuZGVmYXVsdCk7CiAgICAgIHJldHVybiBhcHBsaWNhdG9yOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGdldEFwcGxpY2F0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvZm9ybWF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgbWF0Y2ggZm9ybWF0ICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtmb3JtYXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJmb3JtYXQiLAogICAgICB0eXBlOiBbIm51bWJlciIsICJzdHJpbmciXSwKICAgICAgc2NoZW1hVHlwZTogInN0cmluZyIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQsIHJ1bGVUeXBlKSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBvcHRzLCBlcnJTY2hlbWFQYXRoLCBzY2hlbWFFbnYsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgICBpZiAoIW9wdHMudmFsaWRhdGVGb3JtYXRzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICgkZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZkRlZiA9IGdlbi5jb25zdCgiZkRlZiIsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRzfVske3NjaGVtYUNvZGV9XWApOwogICAgICAgICAgY29uc3QgZlR5cGUgPSBnZW4ubGV0KCJmVHlwZSIpOwogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZ2VuLmxldCgiZm9ybWF0Iik7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtmRGVmfSA9PSAib2JqZWN0IiAmJiAhKCR7ZkRlZn0gaW5zdGFuY2VvZiBSZWdFeHApYCwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAke2ZEZWZ9LnR5cGUgfHwgInN0cmluZyJgKS5hc3NpZ24oZm9ybWF0LCAoMCwgY29kZWdlbl8xLl8pYCR7ZkRlZn0udmFsaWRhdGVgKSwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAic3RyaW5nImApLmFzc2lnbihmb3JtYXQsIGZEZWYpKTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5vcikodW5rbm93bkZtdCgpLCBpbnZhbGlkRm10KCkpKTsKICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25GbXQoKSB7CiAgICAgICAgICAgIGlmIChvcHRzLnN0cmljdFNjaGVtYSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gJiYgISR7Zm9ybWF0fWA7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBpbnZhbGlkRm10KCkgewogICAgICAgICAgICBjb25zdCBjYWxsRm9ybWF0ID0gc2NoZW1hRW52LiRhc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgKCR7ZkRlZn0uYXN5bmMgPyBhd2FpdCAke2Zvcm1hdH0oJHtkYXRhfSkgOiAke2Zvcm1hdH0oJHtkYXRhfSkpYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmb3JtYXR9KCR7ZGF0YX0pYDsKICAgICAgICAgICAgY29uc3QgdmFsaWREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAodHlwZW9mICR7Zm9ybWF0fSA9PSAiZnVuY3Rpb24iID8gJHtjYWxsRm9ybWF0fSA6ICR7Zm9ybWF0fS50ZXN0KCR7ZGF0YX0pKWA7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7Zm9ybWF0fSAmJiAke2Zvcm1hdH0gIT09IHRydWUgJiYgJHtmVHlwZX0gPT09ICR7cnVsZVR5cGV9ICYmICEke3ZhbGlkRGF0YX1gOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdCgpIHsKICAgICAgICAgIGNvbnN0IGZvcm1hdERlZiA9IHNlbGYyLmZvcm1hdHNbc2NoZW1hMl07CiAgICAgICAgICBpZiAoIWZvcm1hdERlZikgewogICAgICAgICAgICB1bmtub3duRm9ybWF0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmb3JtYXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IFtmbXRUeXBlLCBmb3JtYXQsIGZtdFJlZl0gPSBnZXRGb3JtYXQoZm9ybWF0RGVmKTsKICAgICAgICAgIGlmIChmbXRUeXBlID09PSBydWxlVHlwZSkKICAgICAgICAgICAgY3h0LnBhc3ModmFsaWRDb25kaXRpb24oKSk7CiAgICAgICAgICBmdW5jdGlvbiB1bmtub3duRm9ybWF0KCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RTY2hlbWEgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4odW5rbm93bk1zZygpKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHVua25vd25Nc2coKSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25Nc2coKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duIGZvcm1hdCAiJHtzY2hlbWEyfSIgaWdub3JlZCBpbiBzY2hlbWEgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSJgOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBnZXRGb3JtYXQoZm10RGVmKSB7CiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBmbXREZWYgaW5zdGFuY2VvZiBSZWdFeHAgPyAoMCwgY29kZWdlbl8xLnJlZ2V4cENvZGUpKGZtdERlZikgOiBvcHRzLmNvZGUuZm9ybWF0cyA/ICgwLCBjb2RlZ2VuXzEuXylgJHtvcHRzLmNvZGUuZm9ybWF0c30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHNjaGVtYTIpfWAgOiB2b2lkIDA7CiAgICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgeyBrZXk6IHNjaGVtYTIsIHJlZjogZm10RGVmLCBjb2RlIH0pOwogICAgICAgICAgICBpZiAodHlwZW9mIGZtdERlZiA9PSAib2JqZWN0IiAmJiAhKGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCkpIHsKICAgICAgICAgICAgICByZXR1cm4gW2ZtdERlZi50eXBlIHx8ICJzdHJpbmciLCBmbXREZWYudmFsaWRhdGUsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LnZhbGlkYXRlYF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFsic3RyaW5nIiwgZm10RGVmLCBmbXRdOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdmFsaWRDb25kaXRpb24oKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybWF0RGVmID09ICJvYmplY3QiICYmICEoZm9ybWF0RGVmIGluc3RhbmNlb2YgUmVnRXhwKSAmJiBmb3JtYXREZWYuYXN5bmMpIHsKICAgICAgICAgICAgICBpZiAoIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIGZvcm1hdCBpbiBzeW5jIHNjaGVtYSIpOwogICAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7Zm10UmVmfSgke2RhdGF9KWA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBmb3JtYXQgPT0gImZ1bmN0aW9uIiA/ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9KCR7ZGF0YX0pYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9LnRlc3QoJHtkYXRhfSlgOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2luZGV4LmpzCnZhciByZXF1aXJlX2Zvcm1hdDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBmb3JtYXRfMSA9IHJlcXVpcmVfZm9ybWF0KCk7CiAgICB2YXIgZm9ybWF0ID0gW2Zvcm1hdF8xLmRlZmF1bHRdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9tZXRhZGF0YS5qcwp2YXIgcmVxdWlyZV9tZXRhZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL21ldGFkYXRhLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb250ZW50Vm9jYWJ1bGFyeSA9IGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IFsKICAgICAgInRpdGxlIiwKICAgICAgImRlc2NyaXB0aW9uIiwKICAgICAgImRlZmF1bHQiLAogICAgICAiZGVwcmVjYXRlZCIsCiAgICAgICJyZWFkT25seSIsCiAgICAgICJ3cml0ZU9ubHkiLAogICAgICAiZXhhbXBsZXMiCiAgICBdOwogICAgZXhwb3J0czIuY29udGVudFZvY2FidWxhcnkgPSBbCiAgICAgICJjb250ZW50TWVkaWFUeXBlIiwKICAgICAgImNvbnRlbnRFbmNvZGluZyIsCiAgICAgICJjb250ZW50U2NoZW1hIgogICAgXTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kcmFmdDcuanMKdmFyIHJlcXVpcmVfZHJhZnQ3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZHJhZnQ3LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9jb3JlMigpOwogICAgdmFyIHZhbGlkYXRpb25fMSA9IHJlcXVpcmVfdmFsaWRhdGlvbigpOwogICAgdmFyIGFwcGxpY2F0b3JfMSA9IHJlcXVpcmVfYXBwbGljYXRvcigpOwogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQyKCk7CiAgICB2YXIgbWV0YWRhdGFfMSA9IHJlcXVpcmVfbWV0YWRhdGEoKTsKICAgIHZhciBkcmFmdDdWb2NhYnVsYXJpZXMgPSBbCiAgICAgIGNvcmVfMS5kZWZhdWx0LAogICAgICB2YWxpZGF0aW9uXzEuZGVmYXVsdCwKICAgICAgKDAsIGFwcGxpY2F0b3JfMS5kZWZhdWx0KSgpLAogICAgICBmb3JtYXRfMS5kZWZhdWx0LAogICAgICBtZXRhZGF0YV8xLm1ldGFkYXRhVm9jYWJ1bGFyeSwKICAgICAgbWV0YWRhdGFfMS5jb250ZW50Vm9jYWJ1bGFyeQogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkcmFmdDdWb2NhYnVsYXJpZXM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZGlzY3JpbWluYXRvci90eXBlcy5qcwp2YXIgcmVxdWlyZV90eXBlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2Rpc2NyaW1pbmF0b3IvdHlwZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRpc2NyRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgRGlzY3JFcnJvcjsKICAgIChmdW5jdGlvbihEaXNjckVycm9yMikgewogICAgICBEaXNjckVycm9yMlsiVGFnIl0gPSAidGFnIjsKICAgICAgRGlzY3JFcnJvcjJbIk1hcHBpbmciXSA9ICJtYXBwaW5nIjsKICAgIH0pKERpc2NyRXJyb3IgfHwgKGV4cG9ydHMyLkRpc2NyRXJyb3IgPSBEaXNjckVycm9yID0ge30pKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc2NyaW1pbmF0b3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdHlwZXNfMSA9IHJlcXVpcmVfdHlwZXMoKTsKICAgIHZhciBjb21waWxlXzEgPSByZXF1aXJlX2NvbXBpbGUoKTsKICAgIHZhciByZWZfZXJyb3JfMSA9IHJlcXVpcmVfcmVmX2Vycm9yKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWdOYW1lIH0gfSkgPT4gZGlzY3JFcnJvciA9PT0gdHlwZXNfMS5EaXNjckVycm9yLlRhZyA/IGB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgc3RyaW5nYCA6IGB2YWx1ZSBvZiB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgaW4gb25lT2ZgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWcsIHRhZ05hbWUgfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtlcnJvcjogJHtkaXNjckVycm9yfSwgdGFnOiAke3RhZ05hbWV9LCB0YWdWYWx1ZTogJHt0YWd9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZGlzY3JpbWluYXRvciIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb25lT2YgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIWl0Lm9wdHMuZGlzY3JpbWluYXRvcikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBkaXNjcmltaW5hdG9yIG9wdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB0YWdOYW1lID0gc2NoZW1hMi5wcm9wZXJ0eU5hbWU7CiAgICAgICAgaWYgKHR5cGVvZiB0YWdOYW1lICE9ICJzdHJpbmciKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBwcm9wZXJ0eU5hbWUiKTsKICAgICAgICBpZiAoc2NoZW1hMi5tYXBwaW5nKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiBtYXBwaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICBpZiAoIW9uZU9mKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBvbmVPZiBrZXl3b3JkIik7CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIGZhbHNlKTsKICAgICAgICBjb25zdCB0YWcgPSBnZW4uY29uc3QoInRhZyIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkodGFnTmFtZSl9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7dGFnfSA9PSAic3RyaW5nImAsICgpID0+IHZhbGlkYXRlTWFwcGluZygpLCAoKSA9PiBjeHQuZXJyb3IoZmFsc2UsIHsgZGlzY3JFcnJvcjogdHlwZXNfMS5EaXNjckVycm9yLlRhZywgdGFnLCB0YWdOYW1lIH0pKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlTWFwcGluZygpIHsKICAgICAgICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRNYXBwaW5nKCk7CiAgICAgICAgICBnZW4uaWYoZmFsc2UpOwogICAgICAgICAgZm9yIChjb25zdCB0YWdWYWx1ZSBpbiBtYXBwaW5nKSB7CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke3RhZ30gPT09ICR7dGFnVmFsdWV9YCk7CiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGFwcGx5VGFnU2NoZW1hKG1hcHBpbmdbdGFnVmFsdWVdKSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZWxzZSgpOwogICAgICAgICAgY3h0LmVycm9yKGZhbHNlLCB7IGRpc2NyRXJyb3I6IHR5cGVzXzEuRGlzY3JFcnJvci5NYXBwaW5nLCB0YWcsIHRhZ05hbWUgfSk7CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlUYWdTY2hlbWEoc2NoZW1hUHJvcCkgewogICAgICAgICAgY29uc3QgX3ZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZDogIm9uZU9mIiwgc2NoZW1hUHJvcCB9LCBfdmFsaWQpOwogICAgICAgICAgY3h0Lm1lcmdlRXZhbHVhdGVkKHNjaEN4dCwgY29kZWdlbl8xLk5hbWUpOwogICAgICAgICAgcmV0dXJuIF92YWxpZDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0TWFwcGluZygpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIGNvbnN0IG9uZU9mTWFwcGluZyA9IHt9OwogICAgICAgICAgY29uc3QgdG9wUmVxdWlyZWQgPSBoYXNSZXF1aXJlZChwYXJlbnRTY2hlbWEpOwogICAgICAgICAgbGV0IHRhZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lT2YubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IHNjaCA9IG9uZU9mW2ldOwogICAgICAgICAgICBpZiAoKHNjaCA9PT0gbnVsbCB8fCBzY2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaC4kcmVmKSAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoLCBpdC5zZWxmLlJVTEVTKSkgewogICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHNjaC4kcmVmOwogICAgICAgICAgICAgIHNjaCA9IGNvbXBpbGVfMS5yZXNvbHZlUmVmLmNhbGwoaXQuc2VsZiwgaXQuc2NoZW1hRW52LnJvb3QsIGl0LmJhc2VJZCwgcmVmKTsKICAgICAgICAgICAgICBpZiAoc2NoIGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgICAgICAgIHNjaCA9IHNjaC5zY2hlbWE7CiAgICAgICAgICAgICAgaWYgKHNjaCA9PT0gdm9pZCAwKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHJlZl9lcnJvcl8xLmRlZmF1bHQoaXQub3B0cy51cmlSZXNvbHZlciwgaXQuYmFzZUlkLCByZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHByb3BTY2ggPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gucHJvcGVydGllcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3RhZ05hbWVdOwogICAgICAgICAgICBpZiAodHlwZW9mIHByb3BTY2ggIT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6IG9uZU9mIHN1YnNjaGVtYXMgKG9yIHJlZmVyZW5jZWQgc2NoZW1hcykgbXVzdCBoYXZlICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFnUmVxdWlyZWQgPSB0YWdSZXF1aXJlZCAmJiAodG9wUmVxdWlyZWQgfHwgaGFzUmVxdWlyZWQoc2NoKSk7CiAgICAgICAgICAgIGFkZE1hcHBpbmdzKHByb3BTY2gsIGkpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCF0YWdSZXF1aXJlZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgbXVzdCBiZSByZXF1aXJlZGApOwogICAgICAgICAgcmV0dXJuIG9uZU9mTWFwcGluZzsKICAgICAgICAgIGZ1bmN0aW9uIGhhc1JlcXVpcmVkKHsgcmVxdWlyZWQgfSkgewogICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXF1aXJlZCkgJiYgcmVxdWlyZWQuaW5jbHVkZXModGFnTmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5ncyhzY2gsIGkpIHsKICAgICAgICAgICAgaWYgKHNjaC5jb25zdCkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmcoc2NoLmNvbnN0LCBpKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2guZW51bSkgewogICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnVmFsdWUgb2Ygc2NoLmVudW0pIHsKICAgICAgICAgICAgICAgIGFkZE1hcHBpbmcodGFnVmFsdWUsIGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6ICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iIG11c3QgaGF2ZSAiY29uc3QiIG9yICJlbnVtImApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5nKHRhZ1ZhbHVlLCBpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFnVmFsdWUgIT0gInN0cmluZyIgfHwgdGFnVmFsdWUgaW4gb25lT2ZNYXBwaW5nKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgdmFsdWVzIG11c3QgYmUgdW5pcXVlIHN0cmluZ3NgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvbmVPZk1hcHBpbmdbdGFnVmFsdWVdID0gaTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uCnZhciByZXF1aXJlX2pzb25fc2NoZW1hX2RyYWZ0XzA3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9yZWZzL2pzb24tc2NoZW1hLWRyYWZ0LTA3Lmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRzY2hlbWE6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICAkaWQ6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICB0aXRsZTogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICAgZGVmaW5pdGlvbnM6IHsKICAgICAgICBzY2hlbWFBcnJheTogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIG1pbkl0ZW1zOiAxLAogICAgICAgICAgaXRlbXM6IHsgJHJlZjogIiMiIH0KICAgICAgICB9LAogICAgICAgIG5vbk5lZ2F0aXZlSW50ZWdlcjogewogICAgICAgICAgdHlwZTogImludGVnZXIiLAogICAgICAgICAgbWluaW11bTogMAogICAgICAgIH0sCiAgICAgICAgbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDA6IHsKICAgICAgICAgIGFsbE9mOiBbeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sIHsgZGVmYXVsdDogMCB9XQogICAgICAgIH0sCiAgICAgICAgc2ltcGxlVHlwZXM6IHsKICAgICAgICAgIGVudW06IFsiYXJyYXkiLCAiYm9vbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciXQogICAgICAgIH0sCiAgICAgICAgc3RyaW5nQXJyYXk6IHsKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICBpdGVtczogeyB0eXBlOiAic3RyaW5nIiB9LAogICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsCiAgICAgICAgICBkZWZhdWx0OiBbXQogICAgICAgIH0KICAgICAgfSwKICAgICAgdHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGlkOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaS1yZWZlcmVuY2UiCiAgICAgICAgfSwKICAgICAgICAkc2NoZW1hOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaSIKICAgICAgICB9LAogICAgICAgICRyZWY6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgZm9ybWF0OiAidXJpLXJlZmVyZW5jZSIKICAgICAgICB9LAogICAgICAgICRjb21tZW50OiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICB9LAogICAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgICAgcmVhZE9ubHk6IHsKICAgICAgICAgIHR5cGU6ICJib29sZWFuIiwKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICBleGFtcGxlczogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBtdWx0aXBsZU9mOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIiwKICAgICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IDAKICAgICAgICB9LAogICAgICAgIG1heGltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBleGNsdXNpdmVNYXhpbXVtOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIgogICAgICAgIH0sCiAgICAgICAgbWluaW11bTogewogICAgICAgICAgdHlwZTogIm51bWJlciIKICAgICAgICB9LAogICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBtYXhMZW5ndGg6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkxlbmd0aDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICBwYXR0ZXJuOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInJlZ2V4IgogICAgICAgIH0sCiAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBhbnlPZjogW3sgJHJlZjogIiMiIH0sIHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXkiIH1dLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgbWF4SXRlbXM6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkl0ZW1zOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIiB9LAogICAgICAgIHVuaXF1ZUl0ZW1zOiB7CiAgICAgICAgICB0eXBlOiAiYm9vbGVhbiIsCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgY29udGFpbnM6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgbWF4UHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sCiAgICAgICAgbWluUHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICByZXF1aXJlZDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheSIgfSwKICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBkZWZpbml0aW9uczogewogICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgZGVmYXVsdDoge30KICAgICAgICB9LAogICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgcHJvcGVydHlOYW1lczogeyBmb3JtYXQ6ICJyZWdleCIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBkZXBlbmRlbmNpZXM6IHsKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsKICAgICAgICAgICAgYW55T2Y6IFt7ICRyZWY6ICIjIiB9LCB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9XQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcHJvcGVydHlOYW1lczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBjb25zdDogdHJ1ZSwKICAgICAgICBlbnVtOiB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB0eXBlOiB7CiAgICAgICAgICBhbnlPZjogWwogICAgICAgICAgICB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzIiB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgICAgICBpdGVtczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyIgfSwKICAgICAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICBmb3JtYXQ6IHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICBjb250ZW50TWVkaWFUeXBlOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgY29udGVudEVuY29kaW5nOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgaWY6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgdGhlbjogeyAkcmVmOiAiIyIgfSwKICAgICAgICBlbHNlOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGFsbE9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIGFueU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG9uZU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG5vdDogeyAkcmVmOiAiIyIgfQogICAgICB9LAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzCnZhciByZXF1aXJlX2FqdiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5NaXNzaW5nUmVmRXJyb3IgPSBleHBvcnRzMi5WYWxpZGF0aW9uRXJyb3IgPSBleHBvcnRzMi5Db2RlR2VuID0gZXhwb3J0czIuTmFtZSA9IGV4cG9ydHMyLm5pbCA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gZXhwb3J0czIuQWp2ID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZSgpOwogICAgdmFyIGRyYWZ0N18xID0gcmVxdWlyZV9kcmFmdDcoKTsKICAgIHZhciBkaXNjcmltaW5hdG9yXzEgPSByZXF1aXJlX2Rpc2NyaW1pbmF0b3IoKTsKICAgIHZhciBkcmFmdDdNZXRhU2NoZW1hID0gcmVxdWlyZV9qc29uX3NjaGVtYV9kcmFmdF8wNygpOwogICAgdmFyIE1FVEFfU1VQUE9SVF9EQVRBID0gWyIvcHJvcGVydGllcyJdOwogICAgdmFyIE1FVEFfU0NIRU1BX0lEID0gImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIjsKICAgIHZhciBBanYgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5kZWZhdWx0IHsKICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICBzdXBlci5fYWRkVm9jYWJ1bGFyaWVzKCk7CiAgICAgICAgZHJhZnQ3XzEuZGVmYXVsdC5mb3JFYWNoKCh2KSA9PiB0aGlzLmFkZFZvY2FidWxhcnkodikpOwogICAgICAgIGlmICh0aGlzLm9wdHMuZGlzY3JpbWluYXRvcikKICAgICAgICAgIHRoaXMuYWRkS2V5d29yZChkaXNjcmltaW5hdG9yXzEuZGVmYXVsdCk7CiAgICAgIH0KICAgICAgX2FkZERlZmF1bHRNZXRhU2NoZW1hKCkgewogICAgICAgIHN1cGVyLl9hZGREZWZhdWx0TWV0YVNjaGVtYSgpOwogICAgICAgIGlmICghdGhpcy5vcHRzLm1ldGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgbWV0YVNjaGVtYSA9IHRoaXMub3B0cy4kZGF0YSA/IHRoaXMuJGRhdGFNZXRhU2NoZW1hKGRyYWZ0N01ldGFTY2hlbWEsIE1FVEFfU1VQUE9SVF9EQVRBKSA6IGRyYWZ0N01ldGFTY2hlbWE7CiAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU0NIRU1BX0lELCBmYWxzZSk7CiAgICAgICAgdGhpcy5yZWZzWyJodHRwOi8vanNvbi1zY2hlbWEub3JnL3NjaGVtYSJdID0gTUVUQV9TQ0hFTUFfSUQ7CiAgICAgIH0KICAgICAgZGVmYXVsdE1ldGEoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHN1cGVyLmRlZmF1bHRNZXRhKCkgfHwgKHRoaXMuZ2V0U2NoZW1hKE1FVEFfU0NIRU1BX0lEKSA/IE1FVEFfU0NIRU1BX0lEIDogdm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkFqdiA9IEFqdjsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gQWp2OwogICAgbW9kdWxlMi5leHBvcnRzLkFqdiA9IEFqdjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IEFqdjsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiS2V5d29yZEN4dCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHZhbGlkYXRlXzEuS2V5d29yZEN4dDsKICAgIH0gfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLl87CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzdHJpbmdpZnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuc3RyaW5naWZ5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm5pbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTmFtZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5OYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkNvZGVHZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuQ29kZUdlbjsKICAgIH0gfSk7CiAgICB2YXIgdmFsaWRhdGlvbl9lcnJvcl8xID0gcmVxdWlyZV92YWxpZGF0aW9uX2Vycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWxpZGF0aW9uRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTWlzc2luZ1JlZkVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9mb3JtYXRzLmpzCnZhciByZXF1aXJlX2Zvcm1hdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2Zvcm1hdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gZXhwb3J0czIuZmFzdEZvcm1hdHMgPSBleHBvcnRzMi5mdWxsRm9ybWF0cyA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGZtdERlZih2YWxpZGF0ZSwgY29tcGFyZSkgewogICAgICByZXR1cm4geyB2YWxpZGF0ZSwgY29tcGFyZSB9OwogICAgfQogICAgZXhwb3J0czIuZnVsbEZvcm1hdHMgPSB7CiAgICAgIC8vIGRhdGU6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjYKICAgICAgZGF0ZTogZm10RGVmKGRhdGUsIGNvbXBhcmVEYXRlKSwKICAgICAgLy8gZGF0ZS10aW1lOiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42CiAgICAgIHRpbWU6IGZtdERlZihnZXRUaW1lKHRydWUpLCBjb21wYXJlVGltZSksCiAgICAgICJkYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUodHJ1ZSksIGNvbXBhcmVEYXRlVGltZSksCiAgICAgICJpc28tdGltZSI6IGZtdERlZihnZXRUaW1lKCksIGNvbXBhcmVJc29UaW1lKSwKICAgICAgImlzby1kYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUoKSwgY29tcGFyZUlzb0RhdGVUaW1lKSwKICAgICAgLy8gZHVyYXRpb246IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I2FwcGVuZGl4LUEKICAgICAgZHVyYXRpb246IC9eUCg/ISQpKChcZCtZKT8oXGQrTSk/KFxkK0QpPyhUKD89XGQpKFxkK0gpPyhcZCtNKT8oXGQrUyk/KT98KFxkK1cpPykkLywKICAgICAgdXJpLAogICAgICAidXJpLXJlZmVyZW5jZSI6IC9eKD86W2Etel1bYS16MC05K1wtLl0qOik/KD86XC8/XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFsoPzooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7Nn18OjooPzpbMC05YS1mXXsxLDR9Oil7NX18KD86WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7NH18KD86KD86WzAtOWEtZl17MSw0fTopezAsMX1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXszfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwyfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezJ9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDN9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9OnwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw0fVswLTlhLWZdezEsNH0pPzo6KSg/OlswLTlhLWZdezEsNH06WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pXC4pezN9KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1wuW2EtejAtOVwtLl9+ISQmJygpKissOz06XSspXF18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPyl8KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFwvKD86KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopPyg/Olw/KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/JC9pLAogICAgICAvLyB1cmktdGVtcGxhdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwCiAgICAgICJ1cmktdGVtcGxhdGUiOiAvXig/Oig/OlteXHgwMC1ceDIwIic8PiVcXF5ge3x9XXwlWzAtOWEtZl17Mn0pfFx7WysjLi87PyY9LCFAfF0/KD86W2EtejAtOV9dfCVbMC05YS1mXXsyfSkrKD86OlsxLTldWzAtOV17MCwzfXxcKik/KD86LCg/OlthLXowLTlfXXwlWzAtOWEtZl17Mn0pKyg/OjpbMS05XVswLTldezAsM318XCopPykqXH0pKiQvaSwKICAgICAgLy8gRm9yIHRoZSBzb3VyY2U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0CiAgICAgIC8vIEZvciB0ZXN0IGNhc2VzOiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXgKICAgICAgdXJsOiAvXig/Omh0dHBzP3xmdHApOlwvXC8oPzpcUysoPzo6XFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XC5cZHsxLDN9KXszfSkoPyEoPzoxNjlcLjI1NHwxOTJcLjE2OCkoPzpcLlxkezEsM30pezJ9KSg/ITE3MlwuKD86MVs2LTldfDJcZHwzWzAtMV0pKD86XC5cZHsxLDN9KXsyfSkoPzpbMS05XVxkP3wxXGRcZHwyWzAxXVxkfDIyWzAtM10pKD86XC4oPzoxP1xkezEsMn18MlswLTRdXGR8MjVbMC01XSkpezJ9KD86XC4oPzpbMS05XVxkP3wxXGRcZHwyWzAtNF1cZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSstKSpbYS16MC05XHV7MDBhMX0tXHV7ZmZmZn1dKykoPzpcLig/OlthLXowLTlcdXswMGExfS1cdXtmZmZmfV0rLSkqW2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSspKig/OlwuKD86W2Etelx1ezAwYTF9LVx1e2ZmZmZ9XXsyLH0pKSkoPzo6XGR7Miw1fSk/KD86XC9bXlxzXSopPyQvaXUsCiAgICAgIGVtYWlsOiAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT8kL2ksCiAgICAgIGhvc3RuYW1lOiAvXig/PS57MSwyNTN9XC4/JClbYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8oPzpcLlthLXowLTldKD86Wy0wLTlhLXpdezAsNjF9WzAtOWEtel0pPykqXC4/JC9pLAogICAgICAvLyBvcHRpbWl6ZWQgaHR0cHM6Ly93d3cuc2FmYXJpYm9va3NvbmxpbmUuY29tL2xpYnJhcnkvdmlldy9yZWd1bGFyLWV4cHJlc3Npb25zLWNvb2tib29rLzk3ODA1OTY4MDI4MzcvY2gwN3MxNi5odG1sCiAgICAgIGlwdjQ6IC9eKD86KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSQvLAogICAgICBpcHY2OiAvXigoKFswLTlhLWZdezEsNH06KXs3fShbMC05YS1mXXsxLDR9fDopKXwoKFswLTlhLWZdezEsNH06KXs2fSg6WzAtOWEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezV9KCgoOlswLTlhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezR9KCgoOlswLTlhLWZdezEsNH0pezEsM30pfCgoOlswLTlhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlhLWZdezEsNH06KXszfSgoKDpbMC05YS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05YS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOWEtZl17MSw0fTopezJ9KCgoOlswLTlhLWZdezEsNH0pezEsNX0pfCgoOlswLTlhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05YS1mXXsxLDR9Oil7MX0oKCg6WzAtOWEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOWEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoOigoKDpbMC05YS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05YS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpKSQvaSwKICAgICAgcmVnZXgsCiAgICAgIC8vIHV1aWQ6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjIKICAgICAgdXVpZDogL14oPzp1cm46dXVpZDopP1swLTlhLWZdezh9LSg/OlswLTlhLWZdezR9LSl7M31bMC05YS1mXXsxMn0kL2ksCiAgICAgIC8vIEpTT04tcG9pbnRlcjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDEKICAgICAgLy8gdXJpIGZyYWdtZW50OiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNhcHBlbmRpeC1BCiAgICAgICJqc29uLXBvaW50ZXIiOiAvXig/OlwvKD86W15+L118fjB8fjEpKikqJC8sCiAgICAgICJqc29uLXBvaW50ZXItdXJpLWZyYWdtZW50IjogL14jKD86XC8oPzpbYS16MC05X1wtLiEkJicoKSorLDs6PUBdfCVbMC05YS1mXXsyfXx+MHx+MSkqKSokL2ksCiAgICAgIC8vIHJlbGF0aXZlIEpTT04tcG9pbnRlcjogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbHVmZi1yZWxhdGl2ZS1qc29uLXBvaW50ZXItMDAKICAgICAgInJlbGF0aXZlLWpzb24tcG9pbnRlciI6IC9eKD86MHxbMS05XVswLTldKikoPzojfCg/OlwvKD86W15+L118fjB8fjEpKikqKSQvLAogICAgICAvLyB0aGUgZm9sbG93aW5nIGZvcm1hdHMgYXJlIHVzZWQgYnkgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4wI2RhdGEtdHlwZXMKICAgICAgLy8gYnl0ZTogaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbG1vdGEvaXMtYmFzZTY0CiAgICAgIGJ5dGUsCiAgICAgIC8vIHNpZ25lZCAzMiBiaXQgaW50ZWdlcgogICAgICBpbnQzMjogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlSW50MzIgfSwKICAgICAgLy8gc2lnbmVkIDY0IGJpdCBpbnRlZ2VyCiAgICAgIGludDY0OiB7IHR5cGU6ICJudW1iZXIiLCB2YWxpZGF0ZTogdmFsaWRhdGVJbnQ2NCB9LAogICAgICAvLyBDLXR5cGUgZmxvYXQKICAgICAgZmxvYXQ6IHsgdHlwZTogIm51bWJlciIsIHZhbGlkYXRlOiB2YWxpZGF0ZU51bWJlciB9LAogICAgICAvLyBDLXR5cGUgZG91YmxlCiAgICAgIGRvdWJsZTogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlTnVtYmVyIH0sCiAgICAgIC8vIGhpbnQgdG8gdGhlIFVJIHRvIGhpZGUgaW5wdXQgc3RyaW5ncwogICAgICBwYXNzd29yZDogdHJ1ZSwKICAgICAgLy8gdW5jaGVja2VkIHN0cmluZyBwYXlsb2FkCiAgICAgIGJpbmFyeTogdHJ1ZQogICAgfTsKICAgIGV4cG9ydHMyLmZhc3RGb3JtYXRzID0gewogICAgICAuLi5leHBvcnRzMi5mdWxsRm9ybWF0cywKICAgICAgZGF0ZTogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkJC8sIGNvbXBhcmVEYXRlKSwKICAgICAgdGltZTogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPykkL2ksIGNvbXBhcmVUaW1lKSwKICAgICAgImRhdGUtdGltZSI6IGZtdERlZigvXlxkXGRcZFxkLVswLTFdXGQtWzAtM11cZHQoPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KSQvaSwgY29tcGFyZURhdGVUaW1lKSwKICAgICAgImlzby10aW1lIjogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPyk/JC9pLCBjb21wYXJlSXNvVGltZSksCiAgICAgICJpc28tZGF0ZS10aW1lIjogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkW3Rcc10oPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KT8kL2ksIGNvbXBhcmVJc29EYXRlVGltZSksCiAgICAgIC8vIHVyaTogaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9pcy1teS1qc29uLXZhbGlkL2Jsb2IvbWFzdGVyL2Zvcm1hdHMuanMKICAgICAgdXJpOiAvXig/OlthLXpdW2EtejAtOStcLS5dKjopKD86XC8/XC8pP1teXHNdKiQvaSwKICAgICAgInVyaS1yZWZlcmVuY2UiOiAvXig/Oig/OlthLXpdW2EtejAtOStcLS5dKjopP1wvP1wvKT8oPzpbXlxcXHMjXVteXHMjXSopPyg/OiNbXlxcXHNdKik/JC9pLAogICAgICAvLyBlbWFpbCAoc291cmNlcyBmcm9tIGpzZW4gdmFsaWRhdG9yKToKICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDEzMjMvdXNpbmctYS1yZWd1bGFyLWV4cHJlc3Npb24tdG8tdmFsaWRhdGUtYW4tZW1haWwtYWRkcmVzcyNhbnN3ZXItODgyOTM2MwogICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3ZhbGlkLWUtbWFpbC1hZGRyZXNzIChzZWFyY2ggZm9yICd3aWxmdWwgdmlvbGF0aW9uJykKICAgICAgZW1haWw6IC9eW2EtejAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XC5bYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8pKiQvaQogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gT2JqZWN0LmtleXMoZXhwb3J0czIuZnVsbEZvcm1hdHMpOwogICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7CiAgICAgIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTsKICAgIH0KICAgIHZhciBEQVRFID0gL14oXGRcZFxkXGQpLShcZFxkKS0oXGRcZCkkLzsKICAgIHZhciBEQVlTID0gWzAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwogICAgZnVuY3Rpb24gZGF0ZShzdHIyKSB7CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBEQVRFLmV4ZWMoc3RyMik7CiAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGNvbnN0IHllYXIgPSArbWF0Y2hlc1sxXTsKICAgICAgY29uc3QgbW9udGggPSArbWF0Y2hlc1syXTsKICAgICAgY29uc3QgZGF5ID0gK21hdGNoZXNbM107CiAgICAgIHJldHVybiBtb250aCA+PSAxICYmIG1vbnRoIDw9IDEyICYmIGRheSA+PSAxICYmIGRheSA8PSAobW9udGggPT09IDIgJiYgaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogREFZU1ttb250aF0pOwogICAgfQogICAgZnVuY3Rpb24gY29tcGFyZURhdGUoZDEsIGQyKSB7CiAgICAgIGlmICghKGQxICYmIGQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBpZiAoZDEgPiBkMikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKGQxIDwgZDIpCiAgICAgICAgcmV0dXJuIC0xOwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIHZhciBUSU1FID0gL14oXGRcZCk6KFxkXGQpOihcZFxkKD86XC5cZCspPykoenwoWystXSkoXGRcZCkoPzo6PyhcZFxkKSk/KT8kL2k7CiAgICBmdW5jdGlvbiBnZXRUaW1lKHN0cmljdFRpbWVab25lKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiB0aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gVElNRS5leGVjKHN0cjIpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICBjb25zdCBociA9ICttYXRjaGVzWzFdOwogICAgICAgIGNvbnN0IG1pbiA9ICttYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHNlYyA9ICttYXRjaGVzWzNdOwogICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hlc1s0XTsKICAgICAgICBjb25zdCB0elNpZ24gPSBtYXRjaGVzWzVdID09PSAiLSIgPyAtMSA6IDE7CiAgICAgICAgY29uc3QgdHpIID0gKyhtYXRjaGVzWzZdIHx8IDApOwogICAgICAgIGNvbnN0IHR6TSA9ICsobWF0Y2hlc1s3XSB8fCAwKTsKICAgICAgICBpZiAodHpIID4gMjMgfHwgdHpNID4gNTkgfHwgc3RyaWN0VGltZVpvbmUgJiYgIXR6KQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChociA8PSAyMyAmJiBtaW4gPD0gNTkgJiYgc2VjIDwgNjApCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCB1dGNNaW4gPSBtaW4gLSB0ek0gKiB0elNpZ247CiAgICAgICAgY29uc3QgdXRjSHIgPSBociAtIHR6SCAqIHR6U2lnbiAtICh1dGNNaW4gPCAwID8gMSA6IDApOwogICAgICAgIHJldHVybiAodXRjSHIgPT09IDIzIHx8IHV0Y0hyID09PSAtMSkgJiYgKHV0Y01pbiA9PT0gNTkgfHwgdXRjTWluID09PSAtMSkgJiYgc2VjIDwgNjE7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlVGltZShzMSwgczIpIHsKICAgICAgaWYgKCEoczEgJiYgczIpKQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIGNvbnN0IHQxID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczEpKS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IHQyID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczIpKS52YWx1ZU9mKCk7CiAgICAgIGlmICghKHQxICYmIHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICByZXR1cm4gdDEgLSB0MjsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVJc29UaW1lKHQxLCB0MikgewogICAgICBpZiAoISh0MSAmJiB0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgYTEgPSBUSU1FLmV4ZWModDEpOwogICAgICBjb25zdCBhMiA9IFRJTUUuZXhlYyh0Mik7CiAgICAgIGlmICghKGExICYmIGEyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB0MSA9IGExWzFdICsgYTFbMl0gKyBhMVszXTsKICAgICAgdDIgPSBhMlsxXSArIGEyWzJdICsgYTJbM107CiAgICAgIGlmICh0MSA+IHQyKQogICAgICAgIHJldHVybiAxOwogICAgICBpZiAodDEgPCB0MikKICAgICAgICByZXR1cm4gLTE7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgdmFyIERBVEVfVElNRV9TRVBBUkFUT1IgPSAvdHxccy9pOwogICAgZnVuY3Rpb24gZ2V0RGF0ZVRpbWUoc3RyaWN0VGltZVpvbmUpIHsKICAgICAgY29uc3QgdGltZSA9IGdldFRpbWUoc3RyaWN0VGltZVpvbmUpOwogICAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZV90aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBkYXRlVGltZSA9IHN0cjIuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgICAgcmV0dXJuIGRhdGVUaW1lLmxlbmd0aCA9PT0gMiAmJiBkYXRlKGRhdGVUaW1lWzBdKSAmJiB0aW1lKGRhdGVUaW1lWzFdKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVEYXRlVGltZShkdDEsIGR0MikgewogICAgICBpZiAoIShkdDEgJiYgZHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGR0MSkudmFsdWVPZigpOwogICAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGR0MikudmFsdWVPZigpOwogICAgICBpZiAoIShkMSAmJiBkMikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIGQxIC0gZDI7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlSXNvRGF0ZVRpbWUoZHQxLCBkdDIpIHsKICAgICAgaWYgKCEoZHQxICYmIGR0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgW2QxLCB0MV0gPSBkdDEuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgIGNvbnN0IFtkMiwgdDJdID0gZHQyLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpOwogICAgICBjb25zdCByZXMgPSBjb21wYXJlRGF0ZShkMSwgZDIpOwogICAgICBpZiAocmVzID09PSB2b2lkIDApCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIHJlcyB8fCBjb21wYXJlVGltZSh0MSwgdDIpOwogICAgfQogICAgdmFyIE5PVF9VUklfRlJBR01FTlQgPSAvXC98Oi87CiAgICB2YXIgVVJJID0gL14oPzpbYS16XVthLXowLTkrXC0uXSo6KSg/OlwvP1wvKD86KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPykpfCg/Oig/OlswLTlhLWZdezEsNH06KXswLDV9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDZ9WzAtOWEtZl17MSw0fSk/OjopfFtWdl1bMC05YS1mXStcLlthLXowLTlcLS5ffiEkJicoKSorLDs9Ol0rKVxdfCg/Oig/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPylcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pfCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSp8XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqKSg/Olw/KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyQvaTsKICAgIGZ1bmN0aW9uIHVyaShzdHIyKSB7CiAgICAgIHJldHVybiBOT1RfVVJJX0ZSQUdNRU5ULnRlc3Qoc3RyMikgJiYgVVJJLnRlc3Qoc3RyMik7CiAgICB9CiAgICB2YXIgQllURSA9IC9eKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kL2dtOwogICAgZnVuY3Rpb24gYnl0ZShzdHIyKSB7CiAgICAgIEJZVEUubGFzdEluZGV4ID0gMDsKICAgICAgcmV0dXJuIEJZVEUudGVzdChzdHIyKTsKICAgIH0KICAgIHZhciBNSU5fSU5UMzIgPSAtKDIgKiogMzEpOwogICAgdmFyIE1BWF9JTlQzMiA9IDIgKiogMzEgLSAxOwogICAgZnVuY3Rpb24gdmFsaWRhdGVJbnQzMih2YWx1ZSkgewogICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPD0gTUFYX0lOVDMyICYmIHZhbHVlID49IE1JTl9JTlQzMjsKICAgIH0KICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW50NjQodmFsdWUpIHsKICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgdmFyIFpfQU5DSE9SID0gL1teXFxdXFxaLzsKICAgIGZ1bmN0aW9uIHJlZ2V4KHN0cjIpIHsKICAgICAgaWYgKFpfQU5DSE9SLnRlc3Qoc3RyMikpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAoc3RyMik7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2xpbWl0LmpzCnZhciByZXF1aXJlX2xpbWl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9saW1pdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZm9ybWF0TGltaXREZWZpbml0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gcmVxdWlyZV9hanYoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBvcHMgPSBjb2RlZ2VuXzEub3BlcmF0b3JzOwogICAgdmFyIEtXRHMgPSB7CiAgICAgIGZvcm1hdE1heGltdW06IHsgb2tTdHI6ICI8PSIsIG9rOiBvcHMuTFRFLCBmYWlsOiBvcHMuR1QgfSwKICAgICAgZm9ybWF0TWluaW11bTogeyBva1N0cjogIj49Iiwgb2s6IG9wcy5HVEUsIGZhaWw6IG9wcy5MVCB9LAogICAgICBmb3JtYXRFeGNsdXNpdmVNYXhpbXVtOiB7IG9rU3RyOiAiPCIsIG9rOiBvcHMuTFQsIGZhaWw6IG9wcy5HVEUgfSwKICAgICAgZm9ybWF0RXhjbHVzaXZlTWluaW11bTogeyBva1N0cjogIj4iLCBvazogb3BzLkdULCBmYWlsOiBvcHMuTFRFIH0KICAgIH07CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYHNob3VsZCBiZSAke0tXRHNba2V5d29yZF0ub2tTdHJ9ICR7c2NoZW1hQ29kZX1gLAogICAgICBwYXJhbXM6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7Y29tcGFyaXNvbjogJHtLV0RzW2tleXdvcmRdLm9rU3RyfSwgbGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdExpbWl0RGVmaW5pdGlvbiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICAgIGlmICghb3B0cy52YWxpZGF0ZUZvcm1hdHMpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZkN4dCA9IG5ldyBhanZfMS5LZXl3b3JkQ3h0KGl0LCBzZWxmMi5SVUxFUy5hbGwuZm9ybWF0LmRlZmluaXRpb24sICJmb3JtYXQiKTsKICAgICAgICBpZiAoZkN4dC4kZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZm10ID0gZ2VuLmNvbnN0KCJmbXQiLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10c31bJHtmQ3h0LnNjaGVtYUNvZGV9XWApOwogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLm9yKSgoMCwgY29kZWdlbl8xLl8pYHR5cGVvZiAke2ZtdH0gIT0gIm9iamVjdCJgLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10fSBpbnN0YW5jZW9mIFJlZ0V4cGAsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7Zm10fS5jb21wYXJlICE9ICJmdW5jdGlvbiJgLCBjb21wYXJlQ29kZShmbXQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRm9ybWF0KCkgewogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZkN4dC5zY2hlbWE7CiAgICAgICAgICBjb25zdCBmbXREZWYgPSBzZWxmMi5mb3JtYXRzW2Zvcm1hdF07CiAgICAgICAgICBpZiAoIWZtdERlZiB8fCBmbXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGlmICh0eXBlb2YgZm10RGVmICE9ICJvYmplY3QiIHx8IGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCB8fCB0eXBlb2YgZm10RGVmLmNvbXBhcmUgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCIke2tleXdvcmR9IjogZm9ybWF0ICIke2Zvcm1hdH0iIGRvZXMgbm90IGRlZmluZSAiY29tcGFyZSIgZnVuY3Rpb25gKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgewogICAgICAgICAgICBrZXk6IGZvcm1hdCwKICAgICAgICAgICAgcmVmOiBmbXREZWYsCiAgICAgICAgICAgIGNvZGU6IG9wdHMuY29kZS5mb3JtYXRzID8gKDAsIGNvZGVnZW5fMS5fKWAke29wdHMuY29kZS5mb3JtYXRzfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoZm9ybWF0KX1gIDogdm9pZCAwCiAgICAgICAgICB9KTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoY29tcGFyZUNvZGUoZm10KSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVDb2RlKGZtdCkgewogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LmNvbXBhcmUoJHtkYXRhfSwgJHtzY2hlbWFDb2RlfSkgJHtLV0RzW2tleXdvcmRdLmZhaWx9IDBgOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVwZW5kZW5jaWVzOiBbImZvcm1hdCJdCiAgICB9OwogICAgdmFyIGZvcm1hdExpbWl0UGx1Z2luID0gKGFqdikgPT4gewogICAgICBhanYuYWRkS2V5d29yZChleHBvcnRzMi5mb3JtYXRMaW1pdERlZmluaXRpb24pOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBmb3JtYXRMaW1pdFBsdWdpbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgZm9ybWF0c18xID0gcmVxdWlyZV9mb3JtYXRzKCk7CiAgICB2YXIgbGltaXRfMSA9IHJlcXVpcmVfbGltaXQoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBmdWxsTmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZnVsbEZvcm1hdHMiKTsKICAgIHZhciBmYXN0TmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZmFzdEZvcm1hdHMiKTsKICAgIHZhciBmb3JtYXRzUGx1Z2luID0gKGFqdiwgb3B0cyA9IHsga2V5d29yZHM6IHRydWUgfSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkgewogICAgICAgIGFkZEZvcm1hdHMoYWp2LCBvcHRzLCBmb3JtYXRzXzEuZnVsbEZvcm1hdHMsIGZ1bGxOYW1lKTsKICAgICAgICByZXR1cm4gYWp2OwogICAgICB9CiAgICAgIGNvbnN0IFtmb3JtYXRzLCBleHBvcnROYW1lXSA9IG9wdHMubW9kZSA9PT0gImZhc3QiID8gW2Zvcm1hdHNfMS5mYXN0Rm9ybWF0cywgZmFzdE5hbWVdIDogW2Zvcm1hdHNfMS5mdWxsRm9ybWF0cywgZnVsbE5hbWVdOwogICAgICBjb25zdCBsaXN0ID0gb3B0cy5mb3JtYXRzIHx8IGZvcm1hdHNfMS5mb3JtYXROYW1lczsKICAgICAgYWRkRm9ybWF0cyhhanYsIGxpc3QsIGZvcm1hdHMsIGV4cG9ydE5hbWUpOwogICAgICBpZiAob3B0cy5rZXl3b3JkcykKICAgICAgICAoMCwgbGltaXRfMS5kZWZhdWx0KShhanYpOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGZvcm1hdHNQbHVnaW4uZ2V0ID0gKG5hbWUsIG1vZGUgPSAiZnVsbCIpID0+IHsKICAgICAgY29uc3QgZm9ybWF0cyA9IG1vZGUgPT09ICJmYXN0IiA/IGZvcm1hdHNfMS5mYXN0Rm9ybWF0cyA6IGZvcm1hdHNfMS5mdWxsRm9ybWF0czsKICAgICAgY29uc3QgZiA9IGZvcm1hdHNbbmFtZV07CiAgICAgIGlmICghZikKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZm9ybWF0ICIke25hbWV9ImApOwogICAgICByZXR1cm4gZjsKICAgIH07CiAgICBmdW5jdGlvbiBhZGRGb3JtYXRzKGFqdiwgbGlzdCwgZnMsIGV4cG9ydE5hbWUpIHsKICAgICAgdmFyIF9hOwogICAgICB2YXIgX2I7CiAgICAgIChfYSA9IChfYiA9IGFqdi5vcHRzLmNvZGUpLmZvcm1hdHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IF9iLmZvcm1hdHMgPSAoMCwgY29kZWdlbl8xLl8pYHJlcXVpcmUoImFqdi1mb3JtYXRzL2Rpc3QvZm9ybWF0cyIpLiR7ZXhwb3J0TmFtZX1gOwogICAgICBmb3IgKGNvbnN0IGYgb2YgbGlzdCkKICAgICAgICBhanYuYWRkRm9ybWF0KGYsIGZzW2ZdKTsKICAgIH0KICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gZm9ybWF0c1BsdWdpbjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdHNQbHVnaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcwp2YXIgcmVxdWlyZV9pc0Z1bmN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNGdW5jdGlvbiA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIjsKICAgIH0KICAgIGV4cG9ydHMyLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMKdmFyIHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUVycm9yQ2xhc3MgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBjcmVhdGVFcnJvckNsYXNzKGNyZWF0ZUltcGwpIHsKICAgICAgdmFyIF9zdXBlciA9IGZ1bmN0aW9uKGluc3RhbmNlKSB7CiAgICAgICAgRXJyb3IuY2FsbChpbnN0YW5jZSk7CiAgICAgICAgaW5zdGFuY2Uuc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjazsKICAgICAgfTsKICAgICAgdmFyIGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpOwogICAgICBjdG9yRnVuYy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CiAgICAgIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jOwogICAgICByZXR1cm4gY3RvckZ1bmM7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVFcnJvckNsYXNzID0gY3JlYXRlRXJyb3JDbGFzczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzCnZhciByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VbnN1YnNjcmlwdGlvbkVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVW5zdWJzY3JpcHRpb25FcnJvckltcGwoZXJyb3JzKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9ycyA/IGVycm9ycy5sZW5ndGggKyAiIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4iICsgZXJyb3JzLm1hcChmdW5jdGlvbihlcnIsIGkpIHsKICAgICAgICAgIHJldHVybiBpICsgMSArICIpICIgKyBlcnIudG9TdHJpbmcoKTsKICAgICAgICB9KS5qb2luKCJcbiAgIikgOiAiIjsKICAgICAgICB0aGlzLm5hbWUgPSAiVW5zdWJzY3JpcHRpb25FcnJvciI7CiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcnJSZW1vdmUuanMKdmFyIHJlcXVpcmVfYXJyUmVtb3ZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBhcnJSZW1vdmUoYXJyLCBpdGVtKSB7CiAgICAgIGlmIChhcnIpIHsKICAgICAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTsKICAgICAgICAwIDw9IGluZGV4ICYmIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSBhcnJSZW1vdmU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmlwdGlvbi5qcwp2YXIgcmVxdWlyZV9TdWJzY3JpcHRpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1N1YnNjcmlwdGlvbiA9IGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBVbnN1YnNjcmlwdGlvbkVycm9yXzEgPSByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFN1YnNjcmlwdGlvbjIoaW5pdGlhbFRlYXJkb3duKSB7CiAgICAgICAgdGhpcy5pbml0aWFsVGVhcmRvd24gPSBpbml0aWFsVGVhcmRvd247CiAgICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBudWxsOwogICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsOwogICAgICB9CiAgICAgIFN1YnNjcmlwdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgdmFyIGVycm9yczsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTsKICAgICAgICAgIGlmIChfcGFyZW50YWdlKSB7CiAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7CiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9wYXJlbnRhZ2VfMSA9IF9fdmFsdWVzKF9wYXJlbnRhZ2UpLCBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCk7ICFfcGFyZW50YWdlXzFfMS5kb25lOyBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudF8xID0gX3BhcmVudGFnZV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgICAgIHBhcmVudF8xLnJlbW92ZSh0aGlzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgaWYgKF9wYXJlbnRhZ2VfMV8xICYmICFfcGFyZW50YWdlXzFfMS5kb25lICYmIChfYSA9IF9wYXJlbnRhZ2VfMS5yZXR1cm4pKSBfYS5jYWxsKF9wYXJlbnRhZ2VfMSk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgaW5pdGlhbEZpbmFsaXplciA9IHRoaXMuaW5pdGlhbFRlYXJkb3duOwogICAgICAgICAgaWYgKGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGluaXRpYWxGaW5hbGl6ZXIpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaW5pdGlhbEZpbmFsaXplcigpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgZXJyb3JzID0gZSBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yID8gZS5lcnJvcnMgOiBbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBfZmluYWxpemVycyA9IHRoaXMuX2ZpbmFsaXplcnM7CiAgICAgICAgICBpZiAoX2ZpbmFsaXplcnMpIHsKICAgICAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2ZpbmFsaXplcnNfMSA9IF9fdmFsdWVzKF9maW5hbGl6ZXJzKSwgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCk7ICFfZmluYWxpemVyc18xXzEuZG9uZTsgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgIHZhciBmaW5hbGl6ZXIgPSBfZmluYWxpemVyc18xXzEudmFsdWU7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBleGVjRmluYWxpemVyKGZpbmFsaXplcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDogW107CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcikgewogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGVycm9ycykpLCBfX3JlYWQoZXJyLmVycm9ycykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMl8xKSB7CiAgICAgICAgICAgICAgZV8yID0geyBlcnJvcjogZV8yXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzXzFfMSAmJiAhX2ZpbmFsaXplcnNfMV8xLmRvbmUgJiYgKF9iID0gX2ZpbmFsaXplcnNfMS5yZXR1cm4pKSBfYi5jYWxsKF9maW5hbGl6ZXJzXzEpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8yKSB0aHJvdyBlXzIuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHRlYXJkb3duICYmIHRlYXJkb3duICE9PSB0aGlzKSB7CiAgICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24yKSB7CiAgICAgICAgICAgICAgaWYgKHRlYXJkb3duLmNsb3NlZCB8fCB0ZWFyZG93bi5faGFzUGFyZW50KHRoaXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRlYXJkb3duLl9hZGRQYXJlbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKHRoaXMuX2ZpbmFsaXplcnMgPSAoX2EgPSB0aGlzLl9maW5hbGl6ZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSkucHVzaCh0ZWFyZG93bik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5faGFzUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgcmV0dXJuIF9wYXJlbnRhZ2UgPT09IHBhcmVudCB8fCBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpICYmIF9wYXJlbnRhZ2UuaW5jbHVkZXMocGFyZW50KTsKICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuX2FkZFBhcmVudCA9IGZ1bmN0aW9uKHBhcmVudCkgewogICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlOwogICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgPyAoX3BhcmVudGFnZS5wdXNoKHBhcmVudCksIF9wYXJlbnRhZ2UpIDogX3BhcmVudGFnZSA/IFtfcGFyZW50YWdlLCBwYXJlbnRdIDogcGFyZW50OwogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgaWYgKF9wYXJlbnRhZ2UgPT09IHBhcmVudCkgewogICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkpIHsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShfcGFyZW50YWdlLCBwYXJlbnQpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2ZpbmFsaXplcnMgPSB0aGlzLl9maW5hbGl6ZXJzOwogICAgICAgIF9maW5hbGl6ZXJzICYmIGFyclJlbW92ZV8xLmFyclJlbW92ZShfZmluYWxpemVycywgdGVhcmRvd24pOwogICAgICAgIGlmICh0ZWFyZG93biBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbjIpIHsKICAgICAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLkVNUFRZID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVtcHR5ID0gbmV3IFN1YnNjcmlwdGlvbjIoKTsKICAgICAgICBlbXB0eS5jbG9zZWQgPSB0cnVlOwogICAgICAgIHJldHVybiBlbXB0eTsKICAgICAgfSgpOwogICAgICByZXR1cm4gU3Vic2NyaXB0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjsKICAgIGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IFN1YnNjcmlwdGlvbi5FTVBUWTsKICAgIGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fCB2YWx1ZSAmJiAiY2xvc2VkIiBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih2YWx1ZS5yZW1vdmUpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmFkZCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpOwogICAgfQogICAgZXhwb3J0czIuaXNTdWJzY3JpcHRpb24gPSBpc1N1YnNjcmlwdGlvbjsKICAgIGZ1bmN0aW9uIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKSB7CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihmaW5hbGl6ZXIpKSB7CiAgICAgICAgZmluYWxpemVyKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZmluYWxpemVyLnVuc3Vic2NyaWJlKCk7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvY29uZmlnLmpzCnZhciByZXF1aXJlX2NvbmZpZyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9jb25maWcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHsKICAgICAgb25VbmhhbmRsZWRFcnJvcjogbnVsbCwKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiBudWxsLAogICAgICBQcm9taXNlOiB2b2lkIDAsCiAgICAgIHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6IGZhbHNlLAogICAgICB1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6IGZhbHNlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzCnZhciByZXF1aXJlX3RpbWVvdXRQcm92aWRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB2b2lkIDA7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB7CiAgICAgIHNldFRpbWVvdXQ6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRUaW1lb3V0KSB7CiAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0VGltZW91dC5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW2hhbmRsZXIsIHRpbWVvdXRdLCBfX3JlYWQoYXJncykpKTsKICAgICAgfSwKICAgICAgY2xlYXJUaW1lb3V0OiBmdW5jdGlvbihoYW5kbGUpIHsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFyVGltZW91dCkgfHwgY2xlYXJUaW1lb3V0KShoYW5kbGUpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yLmpzCnZhciByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvbmZpZ18xID0gcmVxdWlyZV9jb25maWcoKTsKICAgIHZhciB0aW1lb3V0UHJvdmlkZXJfMSA9IHJlcXVpcmVfdGltZW91dFByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiByZXBvcnRVbmhhbmRsZWRFcnJvcihlcnIpIHsKICAgICAgdGltZW91dFByb3ZpZGVyXzEudGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9uVW5oYW5kbGVkRXJyb3IgPSBjb25maWdfMS5jb25maWcub25VbmhhbmRsZWRFcnJvcjsKICAgICAgICBpZiAob25VbmhhbmRsZWRFcnJvcikgewogICAgICAgICAgb25VbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gcmVwb3J0VW5oYW5kbGVkRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcwp2YXIgcmVxdWlyZV9ub29wID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm9vcCA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIG5vb3AoKSB7CiAgICB9CiAgICBleHBvcnRzMi5ub29wID0gbm9vcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uRmFjdG9yaWVzLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbkZhY3RvcmllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb25GYWN0b3JpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZU5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLm5leHROb3RpZmljYXRpb24gPSBleHBvcnRzMi5lcnJvck5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCJDIiwgdm9pZCAwLCB2b2lkIDApOwogICAgfSgpOwogICAgZnVuY3Rpb24gZXJyb3JOb3RpZmljYXRpb24oZXJyb3IpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiRSIsIHZvaWQgMCwgZXJyb3IpOwogICAgfQogICAgZXhwb3J0czIuZXJyb3JOb3RpZmljYXRpb24gPSBlcnJvck5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG5leHROb3RpZmljYXRpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiTiIsIHZhbHVlLCB2b2lkIDApOwogICAgfQogICAgZXhwb3J0czIubmV4dE5vdGlmaWNhdGlvbiA9IG5leHROb3RpZmljYXRpb247CiAgICBmdW5jdGlvbiBjcmVhdGVOb3RpZmljYXRpb24oa2luZCwgdmFsdWUsIGVycm9yKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAga2luZCwKICAgICAgICB2YWx1ZSwKICAgICAgICBlcnJvcgogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlTm90aWZpY2F0aW9uID0gY3JlYXRlTm90aWZpY2F0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2Vycm9yQ29udGV4dC5qcwp2YXIgcmVxdWlyZV9lcnJvckNvbnRleHQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9lcnJvckNvbnRleHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNhcHR1cmVFcnJvciA9IGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IHZvaWQgMDsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgY29udGV4dCA9IG51bGw7CiAgICBmdW5jdGlvbiBlcnJvckNvbnRleHQoY2IpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKSB7CiAgICAgICAgdmFyIGlzUm9vdCA9ICFjb250ZXh0OwogICAgICAgIGlmIChpc1Jvb3QpIHsKICAgICAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgY2IoKTsKICAgICAgICBpZiAoaXNSb290KSB7CiAgICAgICAgICB2YXIgX2EgPSBjb250ZXh0LCBlcnJvclRocm93biA9IF9hLmVycm9yVGhyb3duLCBlcnJvciA9IF9hLmVycm9yOwogICAgICAgICAgY29udGV4dCA9IG51bGw7CiAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHsKICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNiKCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IGVycm9yQ29udGV4dDsKICAgIGZ1bmN0aW9uIGNhcHR1cmVFcnJvcihlcnIpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nICYmIGNvbnRleHQpIHsKICAgICAgICBjb250ZXh0LmVycm9yVGhyb3duID0gdHJ1ZTsKICAgICAgICBjb250ZXh0LmVycm9yID0gZXJyOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5jYXB0dXJlRXJyb3IgPSBjYXB0dXJlRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfU3Vic2NyaWJlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TdWJzY3JpYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkVNUFRZX09CU0VSVkVSID0gZXhwb3J0czIuU2FmZVN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgcmVwb3J0VW5oYW5kbGVkRXJyb3JfMSA9IHJlcXVpcmVfcmVwb3J0VW5oYW5kbGVkRXJyb3IoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBOb3RpZmljYXRpb25GYWN0b3JpZXNfMSA9IHJlcXVpcmVfTm90aWZpY2F0aW9uRmFjdG9yaWVzKCk7CiAgICB2YXIgdGltZW91dFByb3ZpZGVyXzEgPSByZXF1aXJlX3RpbWVvdXRQcm92aWRlcigpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJzY3JpYmVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3Vic2NyaWJlcjIoZGVzdGluYXRpb24pIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLmlzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgIGlmIChkZXN0aW5hdGlvbikgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsKICAgICAgICAgIGlmIChTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkKF90aGlzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFN1YnNjcmliZXIyLmNyZWF0ZSA9IGZ1bmN0aW9uKG5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHJldHVybiBuZXcgU2FmZVN1YnNjcmliZXIobmV4dCwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25GYWN0b3JpZXNfMS5uZXh0Tm90aWZpY2F0aW9uKHZhbHVlKSwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX25leHQodmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLmVycm9yTm90aWZpY2F0aW9uKGVyciksIHRoaXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLl9lcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLkNPTVBMRVRFX05PVElGSUNBVElPTiwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMuX2NvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpYmVyMi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbnVsbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5uZXh0KHZhbHVlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gU3Vic2NyaWJlcjI7CiAgICB9KFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbik7CiAgICBleHBvcnRzMi5TdWJzY3JpYmVyID0gU3Vic2NyaWJlcjsKICAgIHZhciBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kOwogICAgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykgewogICAgICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7CiAgICB9CiAgICB2YXIgQ29uc3VtZXJPYnNlcnZlciA9IGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBDb25zdW1lck9ic2VydmVyMihwYXJ0aWFsT2JzZXJ2ZXIpIHsKICAgICAgICB0aGlzLnBhcnRpYWxPYnNlcnZlciA9IHBhcnRpYWxPYnNlcnZlcjsKICAgICAgfQogICAgICBDb25zdW1lck9ic2VydmVyMi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIubmV4dCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIENvbnN1bWVyT2JzZXJ2ZXIyOwogICAgfSgpOwogICAgdmFyIFNhZmVTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTYWZlU3Vic2NyaWJlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFNhZmVTdWJzY3JpYmVyMihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgIW9ic2VydmVyT3JOZXh0KSB7CiAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7CiAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0ICE9PSBudWxsICYmIG9ic2VydmVyT3JOZXh0ICE9PSB2b2lkIDAgPyBvYnNlcnZlck9yTmV4dCA6IHZvaWQgMCwKICAgICAgICAgICAgZXJyb3I6IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IHZvaWQgMCwKICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlICE9PSBudWxsICYmIGNvbXBsZXRlICE9PSB2b2lkIDAgPyBjb21wbGV0ZSA6IHZvaWQgMAogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGNvbnRleHRfMTsKICAgICAgICAgIGlmIChfdGhpcyAmJiBjb25maWdfMS5jb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHRfMSA9IE9iamVjdC5jcmVhdGUob2JzZXJ2ZXJPck5leHQpOwogICAgICAgICAgICBjb250ZXh0XzEudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyID0gewogICAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0Lm5leHQgJiYgYmluZChvYnNlcnZlck9yTmV4dC5uZXh0LCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGVycm9yOiBvYnNlcnZlck9yTmV4dC5lcnJvciAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmVycm9yLCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0XzEpCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBuZXcgQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICByZXR1cm4gU2FmZVN1YnNjcmliZXIyOwogICAgfShTdWJzY3JpYmVyKTsKICAgIGV4cG9ydHMyLlNhZmVTdWJzY3JpYmVyID0gU2FmZVN1YnNjcmliZXI7CiAgICBmdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcikgewogICAgICBpZiAoY29uZmlnXzEuY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHsKICAgICAgICBlcnJvckNvbnRleHRfMS5jYXB0dXJlRXJyb3IoZXJyb3IpOwogICAgICB9IGVsc2UgewogICAgICAgIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycikgewogICAgICB0aHJvdyBlcnI7CiAgICB9CiAgICBmdW5jdGlvbiBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcikgewogICAgICB2YXIgb25TdG9wcGVkTm90aWZpY2F0aW9uID0gY29uZmlnXzEuY29uZmlnLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjsKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uICYmIHRpbWVvdXRQcm92aWRlcl8xLnRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBvblN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUiA9IHsKICAgICAgY2xvc2VkOiB0cnVlLAogICAgICBuZXh0OiBub29wXzEubm9vcCwKICAgICAgZXJyb3I6IGRlZmF1bHRFcnJvckhhbmRsZXIsCiAgICAgIGNvbXBsZXRlOiBub29wXzEubm9vcAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL29ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfb2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgIkBAb2JzZXJ2YWJsZSI7CiAgICB9KCk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaWRlbnRpdHkuanMKdmFyIHJlcXVpcmVfaWRlbnRpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWRlbnRpdHkgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBpZGVudGl0eSh4KSB7CiAgICAgIHJldHVybiB4OwogICAgfQogICAgZXhwb3J0czIuaWRlbnRpdHkgPSBpZGVudGl0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzCnZhciByZXF1aXJlX3BpcGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5waXBlRnJvbUFycmF5ID0gZXhwb3J0czIucGlwZSA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcGlwZSgpIHsKICAgICAgdmFyIGZucyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGZuc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBwaXBlRnJvbUFycmF5KGZucyk7CiAgICB9CiAgICBleHBvcnRzMi5waXBlID0gcGlwZTsKICAgIGZ1bmN0aW9uIHBpcGVGcm9tQXJyYXkoZm5zKSB7CiAgICAgIGlmIChmbnMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZm5zWzBdOwogICAgICB9CiAgICAgIHJldHVybiBmdW5jdGlvbiBwaXBlZChpbnB1dCkgewogICAgICAgIHJldHVybiBmbnMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGZuKSB7CiAgICAgICAgICByZXR1cm4gZm4ocHJldik7CiAgICAgICAgfSwgaW5wdXQpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIucGlwZUZyb21BcnJheSA9IHBpcGVGcm9tQXJyYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9PYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBvYnNlcnZhYmxlXzEgPSByZXF1aXJlX29ic2VydmFibGUoKTsKICAgIHZhciBwaXBlXzEgPSByZXF1aXJlX3BpcGUoKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXJyb3JDb250ZXh0XzEgPSByZXF1aXJlX2Vycm9yQ29udGV4dCgpOwogICAgdmFyIE9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gT2JzZXJ2YWJsZTIoc3Vic2NyaWJlKSB7CiAgICAgICAgaWYgKHN1YnNjcmliZSkgewogICAgICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlOwogICAgICAgIH0KICAgICAgfQogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUubGlmdCA9IGZ1bmN0aW9uKG9wZXJhdG9yKSB7CiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTIoKTsKICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7CiAgICAgICAgb2JzZXJ2YWJsZS5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24ob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBpc1N1YnNjcmliZXIob2JzZXJ2ZXJPck5leHQpID8gb2JzZXJ2ZXJPck5leHQgOiBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUpOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYSA9IF90aGlzLCBvcGVyYXRvciA9IF9hLm9wZXJhdG9yLCBzb3VyY2UgPSBfYS5zb3VyY2U7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChvcGVyYXRvciA/IG9wZXJhdG9yLmNhbGwoc3Vic2NyaWJlciwgc291cmNlKSA6IHNvdXJjZSA/IF90aGlzLl9zdWJzY3JpYmUoc3Vic2NyaWJlcikgOiBfdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzaW5rKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiB0aGlzLl9zdWJzY3JpYmUoc2luayk7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBzaW5rLmVycm9yKGVycik7CiAgICAgICAgfQogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKG5leHQsIHByb21pc2VDdG9yKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTsKICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKHsKICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvcGVyYXRpb25zID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIG9wZXJhdGlvbnNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHBpcGVfMS5waXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUudG9Qcm9taXNlID0gZnVuY3Rpb24ocHJvbWlzZUN0b3IpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpOwogICAgICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoZnVuY3Rpb24oeCkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUgPSB4OwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh2YWx1ZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIuY3JlYXRlID0gZnVuY3Rpb24oc3Vic2NyaWJlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlMihzdWJzY3JpYmUpOwogICAgICB9OwogICAgICByZXR1cm4gT2JzZXJ2YWJsZTI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gT2JzZXJ2YWJsZTsKICAgIGZ1bmN0aW9uIGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmV0dXJuIChfYSA9IHByb21pc2VDdG9yICE9PSBudWxsICYmIHByb21pc2VDdG9yICE9PSB2b2lkIDAgPyBwcm9taXNlQ3RvciA6IGNvbmZpZ18xLmNvbmZpZy5Qcm9taXNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBQcm9taXNlOwogICAgfQogICAgZnVuY3Rpb24gaXNPYnNlcnZlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUubmV4dCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuZXJyb3IpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmNvbXBsZXRlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU3Vic2NyaWJlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBTdWJzY3JpYmVyXzEuU3Vic2NyaWJlciB8fCBpc09ic2VydmVyKHZhbHVlKSAmJiBTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbih2YWx1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcwp2YXIgcmVxdWlyZV9saWZ0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub3BlcmF0ZSA9IGV4cG9ydHMyLmhhc0xpZnQgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBoYXNMaWZ0KHNvdXJjZSkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmxpZnQpOwogICAgfQogICAgZXhwb3J0czIuaGFzTGlmdCA9IGhhc0xpZnQ7CiAgICBmdW5jdGlvbiBvcGVyYXRlKGluaXQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIGlmIChoYXNMaWZ0KHNvdXJjZSkpIHsKICAgICAgICAgIHJldHVybiBzb3VyY2UubGlmdChmdW5jdGlvbihsaWZ0ZWRTb3VyY2UpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICByZXR1cm4gaW5pdChsaWZ0ZWRTb3VyY2UsIHRoaXMpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICB0aGlzLmVycm9yKGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub3BlcmF0ZSA9IG9wZXJhdGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gZXhwb3J0czIuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpIHsKICAgICAgcmV0dXJuIG5ldyBPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSk7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXI7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhPcGVyYXRvclN1YnNjcmliZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBPcGVyYXRvclN1YnNjcmliZXIyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUsIHNob3VsZFVuc3Vic2NyaWJlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZGVzdGluYXRpb24pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMub25GaW5hbGl6ZSA9IG9uRmluYWxpemU7CiAgICAgICAgX3RoaXMuc2hvdWxkVW5zdWJzY3JpYmUgPSBzaG91bGRVbnN1YnNjcmliZTsKICAgICAgICBfdGhpcy5fbmV4dCA9IG9uTmV4dCA/IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBvbk5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX25leHQ7CiAgICAgICAgX3RoaXMuX2Vycm9yID0gb25FcnJvciA/IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyMikgewogICAgICAgICAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnIyKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9IDogX3N1cGVyLnByb3RvdHlwZS5fZXJyb3I7CiAgICAgICAgX3RoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZSA/IGZ1bmN0aW9uKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25Db21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX2NvbXBsZXRlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPcGVyYXRvclN1YnNjcmliZXIyLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmUgfHwgdGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKSB7CiAgICAgICAgICB2YXIgY2xvc2VkXzEgPSB0aGlzLmNsb3NlZDsKICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTsKICAgICAgICAgICFjbG9zZWRfMSAmJiAoKF9hID0gdGhpcy5vbkZpbmFsaXplKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKSk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gT3BlcmF0b3JTdWJzY3JpYmVyMjsKICAgIH0oU3Vic2NyaWJlcl8xLlN1YnNjcmliZXIpOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmVmQ291bnQuanMKdmFyIHJlcXVpcmVfcmVmQ291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZkNvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZWZDb3VudCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiByZWZDb3VudCgpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBzb3VyY2UuX3JlZkNvdW50Kys7CiAgICAgICAgdmFyIHJlZkNvdW50ZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UuX3JlZkNvdW50IDw9IDAgfHwgMCA8IC0tc291cmNlLl9yZWZDb3VudCkgewogICAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNoYXJlZENvbm5lY3Rpb24gPSBzb3VyY2UuX2Nvbm5lY3Rpb247CiAgICAgICAgICB2YXIgY29ubiA9IGNvbm5lY3Rpb247CiAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgIGlmIChzaGFyZWRDb25uZWN0aW9uICYmICghY29ubiB8fCBzaGFyZWRDb25uZWN0aW9uID09PSBjb25uKSkgewogICAgICAgICAgICBzaGFyZWRDb25uZWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShyZWZDb3VudGVyKTsKICAgICAgICBpZiAoIXJlZkNvdW50ZXIuY2xvc2VkKSB7CiAgICAgICAgICBjb25uZWN0aW9uID0gc291cmNlLmNvbm5lY3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVmQ291bnQgPSByZWZDb3VudDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvQ29ubmVjdGFibGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgcmVmQ291bnRfMSA9IHJlcXVpcmVfcmVmQ291bnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhDb25uZWN0YWJsZU9ic2VydmFibGUyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBDb25uZWN0YWJsZU9ic2VydmFibGUyKHNvdXJjZSwgc3ViamVjdEZhY3RvcnkpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICBfdGhpcy5zdWJqZWN0RmFjdG9yeSA9IHN1YmplY3RGYWN0b3J5OwogICAgICAgIF90aGlzLl9zdWJqZWN0ID0gbnVsbDsKICAgICAgICBfdGhpcy5fcmVmQ291bnQgPSAwOwogICAgICAgIF90aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBpZiAobGlmdF8xLmhhc0xpZnQoc291cmNlKSkgewogICAgICAgICAgX3RoaXMubGlmdCA9IHNvdXJjZS5saWZ0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBDb25uZWN0YWJsZU9ic2VydmFibGUyLnByb3RvdHlwZS5nZXRTdWJqZWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSB0aGlzLl9zdWJqZWN0OwogICAgICAgIGlmICghc3ViamVjdCB8fCBzdWJqZWN0LmlzU3RvcHBlZCkgewogICAgICAgICAgdGhpcy5fc3ViamVjdCA9IHRoaXMuc3ViamVjdEZhY3RvcnkoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7CiAgICAgIH07CiAgICAgIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90ZWFyZG93biA9IGZ1bmN0aW9uKCkgewogICAgICAgIHRoaXMuX3JlZkNvdW50ID0gMDsKICAgICAgICB2YXIgX2Nvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIHRoaXMuX3N1YmplY3QgPSB0aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBfY29ubmVjdGlvbiA9PT0gbnVsbCB8fCBfY29ubmVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Nvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIGNvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIGlmICghY29ubmVjdGlvbikgewogICAgICAgICAgY29ubmVjdGlvbiA9IHRoaXMuX2Nvbm5lY3Rpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgc3ViamVjdF8xID0gdGhpcy5nZXRTdWJqZWN0KCk7CiAgICAgICAgICBjb25uZWN0aW9uLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YmplY3RfMSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICAgIHN1YmplY3RfMS5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIF90aGlzLl90ZWFyZG93bigpOwogICAgICAgICAgICBzdWJqZWN0XzEuZXJyb3IoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICB9KSkpOwogICAgICAgICAgaWYgKGNvbm5lY3Rpb24uY2xvc2VkKSB7CiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24gPSBudWxsOwogICAgICAgICAgICBjb25uZWN0aW9uID0gU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uLkVNUFRZOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUucmVmQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gcmVmQ291bnRfMS5yZWZDb3VudCgpKHRoaXMpOwogICAgICB9OwogICAgICByZXR1cm4gQ29ubmVjdGFibGVPYnNlcnZhYmxlMjsKICAgIH0oT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpOwogICAgZXhwb3J0czIuQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gQ29ubmVjdGFibGVPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIucGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLnBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIuZGVsZWdhdGUgfHwgcGVyZm9ybWFuY2UpLm5vdygpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIgPSB7CiAgICAgIHNjaGVkdWxlOiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgIHZhciByZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lOwogICAgICAgIHZhciBjYW5jZWwgPSBjYW5jZWxBbmltYXRpb25GcmFtZTsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSkgewogICAgICAgICAgcmVxdWVzdCA9IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZTsKICAgICAgICAgIGNhbmNlbCA9IGRlbGVnYXRlLmNhbmNlbEFuaW1hdGlvbkZyYW1lOwogICAgICAgIH0KICAgICAgICB2YXIgaGFuZGxlID0gcmVxdWVzdChmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICBjYW5jZWwgPSB2b2lkIDA7CiAgICAgICAgICBjYWxsYmFjayh0aW1lc3RhbXAyKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBjYW5jZWwgPT09IG51bGwgfHwgY2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYW5jZWwoaGFuZGxlKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZSkgfHwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIHJldHVybiAoKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5jYW5jZWxBbmltYXRpb25GcmFtZSkgfHwgY2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZG9tL2FuaW1hdGlvbkZyYW1lcy5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9kb20vYW5pbWF0aW9uRnJhbWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXModGltZXN0YW1wUHJvdmlkZXIpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcFByb3ZpZGVyID8gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSh0aW1lc3RhbXBQcm92aWRlcikgOiBERUZBVUxUX0FOSU1BVElPTl9GUkFNRVM7CiAgICB9CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSBhbmltYXRpb25GcmFtZXM7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXNGYWN0b3J5KHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBwcm92aWRlciA9IHRpbWVzdGFtcFByb3ZpZGVyIHx8IHBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXJfMS5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIHZhciBzdGFydCA9IHByb3ZpZGVyLm5vdygpOwogICAgICAgIHZhciBpZCA9IDA7CiAgICAgICAgdmFyIHJ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBpZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICAgICAgaWQgPSAwOwogICAgICAgICAgICAgIHZhciBub3cgPSBwcm92aWRlci5ub3coKTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoewogICAgICAgICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXBQcm92aWRlciA/IG5vdyA6IHRpbWVzdGFtcDIsCiAgICAgICAgICAgICAgICBlbGFwc2VkOiBub3cgLSBzdGFydAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJ1bigpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHJ1bigpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChpZCkgewogICAgICAgICAgICBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEuYW5pbWF0aW9uRnJhbWVQcm92aWRlci5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICB2YXIgREVGQVVMVF9BTklNQVRJT05fRlJBTUVTID0gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSgpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLmpzCnZhciByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCgpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk9iamVjdFVuc3Vic2NyaWJlZEVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAib2JqZWN0IHVuc3Vic2NyaWJlZCI7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9TdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5vbnltb3VzU3ViamVjdCA9IGV4cG9ydHMyLlN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uXzEgPSByZXF1aXJlX1N1YnNjcmlwdGlvbigpOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJqZWN0MiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSBbXTsKICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5oYXNFcnJvciA9IGZhbHNlOwogICAgICAgIF90aGlzLnRocm93bkVycm9yID0gbnVsbDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgU3ViamVjdDIucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbihvcGVyYXRvcikgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFub255bW91c1N1YmplY3QodGhpcywgdGhpcyk7CiAgICAgICAgc3ViamVjdC5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBzdWJqZWN0OwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcl8xLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBlcnJvckNvbnRleHRfMS5lcnJvckNvbnRleHQoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHsKICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gQXJyYXkuZnJvbShfdGhpcy5vYnNlcnZlcnMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyhfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkgewogICAgICAgICAgICAgICAgdmFyIG9ic2VydmVyID0gX2MudmFsdWU7CiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgZXJyb3JDb250ZXh0XzEuZXJyb3JDb250ZXh0KGZ1bmN0aW9uKCkgewogICAgICAgICAgX3RoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICAgIGlmICghX3RoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICAgIF90aGlzLmhhc0Vycm9yID0gX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBlcnI7CiAgICAgICAgICAgIHZhciBvYnNlcnZlcnMgPSBfdGhpcy5vYnNlcnZlcnM7CiAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzOwogICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkgewogICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ViamVjdDIucHJvdG90eXBlLCAib2JzZXJ2ZWQiLCB7CiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vYnNlcnZlcnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpID4gMDsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLCBzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcik7CiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaGFzRXJyb3IgPSBfYS5oYXNFcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBvYnNlcnZlcnMgPSBfYS5vYnNlcnZlcnM7CiAgICAgICAgaWYgKGhhc0Vycm9yIHx8IGlzU3RvcHBlZCkgewogICAgICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgICB9CiAgICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBvYnNlcnZlcnMucHVzaChzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKG9ic2VydmVycywgc3Vic2NyaWJlcik7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQ7CiAgICAgICAgaWYgKGhhc0Vycm9yKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRocm93bkVycm9yKTsKICAgICAgICB9IGVsc2UgaWYgKGlzU3RvcHBlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLmFzT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKCk7CiAgICAgICAgb2JzZXJ2YWJsZS5zb3VyY2UgPSB0aGlzOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5jcmVhdGUgPSBmdW5jdGlvbihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBBbm9ueW1vdXNTdWJqZWN0KGRlc3RpbmF0aW9uLCBzb3VyY2UpOwogICAgICB9OwogICAgICByZXR1cm4gU3ViamVjdDI7CiAgICB9KE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKTsKICAgIGV4cG9ydHMyLlN1YmplY3QgPSBTdWJqZWN0OwogICAgdmFyIEFub255bW91c1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFub255bW91c1N1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbm9ueW1vdXNTdWJqZWN0MihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5leHQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIEFub255bW91c1N1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZXJyKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29tcGxldGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5zb3VyY2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgfTsKICAgICAgcmV0dXJuIEFub255bW91c1N1YmplY3QyOwogICAgfShTdWJqZWN0KTsKICAgIGV4cG9ydHMyLkFub255bW91c1N1YmplY3QgPSBBbm9ueW1vdXNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QuanMKdmFyIHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgQmVoYXZpb3JTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhCZWhhdmlvclN1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBCZWhhdmlvclN1YmplY3QyKF92YWx1ZSkgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gX3ZhbHVlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUsICJ2YWx1ZSIsIHsKICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gX3N1cGVyLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7CiAgICAgICAgIXN1YnNjcmlwdGlvbi5jbG9zZWQgJiYgc3Vic2NyaWJlci5uZXh0KHRoaXMuX3ZhbHVlKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBCZWhhdmlvclN1YmplY3QyLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIF92YWx1ZSA9IF9hLl92YWx1ZTsKICAgICAgICBpZiAoaGFzRXJyb3IpIHsKICAgICAgICAgIHRocm93IHRocm93bkVycm9yOwogICAgICAgIH0KICAgICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgcmV0dXJuIF92YWx1ZTsKICAgICAgfTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcywgdGhpcy5fdmFsdWUgPSB2YWx1ZSk7CiAgICAgIH07CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3QyOwogICAgfShTdWJqZWN0XzEuU3ViamVjdCk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBCZWhhdmlvclN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBEYXRlKS5ub3coKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdC5qcwp2YXIgcmVxdWlyZV9SZXBsYXlTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1JlcGxheVN1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgUmVwbGF5U3ViamVjdCA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoUmVwbGF5U3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFJlcGxheVN1YmplY3QyKF9idWZmZXJTaXplLCBfd2luZG93VGltZSwgX3RpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgICAgaWYgKF9idWZmZXJTaXplID09PSB2b2lkIDApIHsKICAgICAgICAgIF9idWZmZXJTaXplID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIGlmIChfd2luZG93VGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBfd2luZG93VGltZSA9IEluZmluaXR5OwogICAgICAgIH0KICAgICAgICBpZiAoX3RpbWVzdGFtcFByb3ZpZGVyID09PSB2b2lkIDApIHsKICAgICAgICAgIF90aW1lc3RhbXBQcm92aWRlciA9IGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xLmRhdGVUaW1lc3RhbXBQcm92aWRlcjsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5fYnVmZmVyU2l6ZSA9IF9idWZmZXJTaXplOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gX3dpbmRvd1RpbWU7CiAgICAgICAgX3RoaXMuX3RpbWVzdGFtcFByb3ZpZGVyID0gX3RpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIF90aGlzLl9idWZmZXIgPSBbXTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gdHJ1ZTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gX3dpbmRvd1RpbWUgPT09IEluZmluaXR5OwogICAgICAgIF90aGlzLl9idWZmZXJTaXplID0gTWF0aC5tYXgoMSwgX2J1ZmZlclNpemUpOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gTWF0aC5tYXgoMSwgX3dpbmRvd1RpbWUpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfYnVmZmVyID0gX2EuX2J1ZmZlciwgX2luZmluaXRlVGltZVdpbmRvdyA9IF9hLl9pbmZpbml0ZVRpbWVXaW5kb3csIF90aW1lc3RhbXBQcm92aWRlciA9IF9hLl90aW1lc3RhbXBQcm92aWRlciwgX3dpbmRvd1RpbWUgPSBfYS5fd2luZG93VGltZTsKICAgICAgICBpZiAoIWlzU3RvcHBlZCkgewogICAgICAgICAgX2J1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICFfaW5maW5pdGVUaW1lV2luZG93ICYmIF9idWZmZXIucHVzaChfdGltZXN0YW1wUHJvdmlkZXIubm93KCkgKyBfd2luZG93VGltZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3RyaW1CdWZmZXIoKTsKICAgICAgICBfc3VwZXIucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIFJlcGxheVN1YmplY3QyLnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICB0aGlzLl90cmltQnVmZmVyKCk7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICAgIHZhciBfYSA9IHRoaXMsIF9pbmZpbml0ZVRpbWVXaW5kb3cgPSBfYS5faW5maW5pdGVUaW1lV2luZG93LCBfYnVmZmVyID0gX2EuX2J1ZmZlcjsKICAgICAgICB2YXIgY29weSA9IF9idWZmZXIuc2xpY2UoKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHkubGVuZ3RoICYmICFzdWJzY3JpYmVyLmNsb3NlZDsgaSArPSBfaW5maW5pdGVUaW1lV2luZG93ID8gMSA6IDIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb3B5W2ldKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUuX3RyaW1CdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBfYnVmZmVyU2l6ZSA9IF9hLl9idWZmZXJTaXplLCBfdGltZXN0YW1wUHJvdmlkZXIgPSBfYS5fdGltZXN0YW1wUHJvdmlkZXIsIF9idWZmZXIgPSBfYS5fYnVmZmVyLCBfaW5maW5pdGVUaW1lV2luZG93ID0gX2EuX2luZmluaXRlVGltZVdpbmRvdzsKICAgICAgICB2YXIgYWRqdXN0ZWRCdWZmZXJTaXplID0gKF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikgKiBfYnVmZmVyU2l6ZTsKICAgICAgICBfYnVmZmVyU2l6ZSA8IEluZmluaXR5ICYmIGFkanVzdGVkQnVmZmVyU2l6ZSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXIuc3BsaWNlKDAsIF9idWZmZXIubGVuZ3RoIC0gYWRqdXN0ZWRCdWZmZXJTaXplKTsKICAgICAgICBpZiAoIV9pbmZpbml0ZVRpbWVXaW5kb3cpIHsKICAgICAgICAgIHZhciBub3cgPSBfdGltZXN0YW1wUHJvdmlkZXIubm93KCk7CiAgICAgICAgICB2YXIgbGFzdCA9IDA7CiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXJbaV0gPD0gbm93OyBpICs9IDIpIHsKICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgICB9CiAgICAgICAgICBsYXN0ICYmIF9idWZmZXIuc3BsaWNlKDAsIGxhc3QgKyAxKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBSZXBsYXlTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IFJlcGxheVN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0FzeW5jU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9Bc3luY1N1YmplY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvQXN5bmNTdWJqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBBc3luY1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFzeW5jU3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gbnVsbDsKICAgICAgICBfdGhpcy5faGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICBfdGhpcy5faXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCBfaGFzVmFsdWUgPSBfYS5faGFzVmFsdWUsIF92YWx1ZSA9IF9hLl92YWx1ZSwgdGhyb3duRXJyb3IgPSBfYS50aHJvd25FcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aHJvd25FcnJvcik7CiAgICAgICAgfSBlbHNlIGlmIChpc1N0b3BwZWQgfHwgX2lzQ29tcGxldGUpIHsKICAgICAgICAgIF9oYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLm5leHQoX3ZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHsKICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgICB0aGlzLl9oYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIF9oYXNWYWx1ZSA9IF9hLl9oYXNWYWx1ZSwgX3ZhbHVlID0gX2EuX3ZhbHVlLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmICghX2lzQ29tcGxldGUpIHsKICAgICAgICAgIHRoaXMuX2lzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgX2hhc1ZhbHVlICYmIF9zdXBlci5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsIF92YWx1ZSk7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuQXN5bmNTdWJqZWN0ID0gQXN5bmNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzCnZhciByZXF1aXJlX0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFjdGlvbiA9IHZvaWQgMDsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIHJldHVybiBBY3Rpb24yOwogICAgfShTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24pOwogICAgZXhwb3J0czIuQWN0aW9uID0gQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW50ZXJ2YWxQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9pbnRlcnZhbFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9pbnRlcnZhbFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIuaW50ZXJ2YWxQcm92aWRlciA9IHsKICAgICAgc2V0SW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuc2V0SW50ZXJ2YWwpIHsKICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGNsZWFySW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmludGVydmFsUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW50ZXJ2YWwpIHx8IGNsZWFySW50ZXJ2YWwpKGhhbmRsZSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi5qcwp2YXIgcmVxdWlyZV9Bc3luY0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQWN0aW9uXzEgPSByZXF1aXJlX0FjdGlvbigpOwogICAgdmFyIGludGVydmFsUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW50ZXJ2YWxQcm92aWRlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBBc3luY0FjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQXN5bmNBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBc3luY0FjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOwogICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7CiAgICAgICAgdmFyIHNjaGVkdWxlciA9IHRoaXMuc2NoZWR1bGVyOwogICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMucGVuZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5OwogICAgICAgIHRoaXMuaWQgPSAoX2EgPSB0aGlzLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgdGhpcy5pZCwgZGVsYXkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBfaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLnNldEludGVydmFsKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdGhpcyksIGRlbGF5KTsKICAgICAgfTsKICAgICAgQXN5bmNBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKF9zY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsICYmIHRoaXMuZGVsYXkgPT09IGRlbGF5ICYmIHRoaXMucGVuZGluZyA9PT0gZmFsc2UpIHsKICAgICAgICAgIHJldHVybiBpZDsKICAgICAgICB9CiAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKICAgICAgICAgIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLmNsZWFySW50ZXJ2YWwoaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nID09PSBmYWxzZSAmJiB0aGlzLmlkICE9IG51bGwpIHsKICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLCB0aGlzLmlkLCBudWxsKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuX2V4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgX2RlbGF5KSB7CiAgICAgICAgdmFyIGVycm9yZWQgPSBmYWxzZTsKICAgICAgICB2YXIgZXJyb3JWYWx1ZTsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy53b3JrKHN0YXRlKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgIGVycm9yVmFsdWUgPSBlID8gZSA6IG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpOwogICAgICAgIH0KICAgICAgICBpZiAoZXJyb3JlZCkgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgICAgcmV0dXJuIGVycm9yVmFsdWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkgewogICAgICAgICAgdmFyIF9hID0gdGhpcywgaWQgPSBfYS5pZCwgc2NoZWR1bGVyID0gX2Euc2NoZWR1bGVyOwogICAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGw7CiAgICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTsKICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5kZWxheSA9IG51bGw7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNBY3Rpb24yOwogICAgfShBY3Rpb25fMS5BY3Rpb24pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSBBc3luY0FjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9JbW1lZGlhdGUuanMKdmFyIHJlcXVpcmVfSW1tZWRpYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvSW1tZWRpYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UZXN0VG9vbHMgPSBleHBvcnRzMi5JbW1lZGlhdGUgPSB2b2lkIDA7CiAgICB2YXIgbmV4dEhhbmRsZSA9IDE7CiAgICB2YXIgcmVzb2x2ZWQ7CiAgICB2YXIgYWN0aXZlSGFuZGxlcyA9IHt9OwogICAgZnVuY3Rpb24gZmluZEFuZENsZWFySGFuZGxlKGhhbmRsZSkgewogICAgICBpZiAoaGFuZGxlIGluIGFjdGl2ZUhhbmRsZXMpIHsKICAgICAgICBkZWxldGUgYWN0aXZlSGFuZGxlc1toYW5kbGVdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLkltbWVkaWF0ZSA9IHsKICAgICAgc2V0SW1tZWRpYXRlOiBmdW5jdGlvbihjYikgewogICAgICAgIHZhciBoYW5kbGUgPSBuZXh0SGFuZGxlKys7CiAgICAgICAgYWN0aXZlSGFuZGxlc1toYW5kbGVdID0gdHJ1ZTsKICAgICAgICBpZiAoIXJlc29sdmVkKSB7CiAgICAgICAgICByZXNvbHZlZCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIH0KICAgICAgICByZXNvbHZlZC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpICYmIGNiKCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGhhbmRsZTsKICAgICAgfSwKICAgICAgY2xlYXJJbW1lZGlhdGU6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGVzdFRvb2xzID0gewogICAgICBwZW5kaW5nOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoYWN0aXZlSGFuZGxlcykubGVuZ3RoOwogICAgICB9CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW1tZWRpYXRlUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2ltbWVkaWF0ZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbW1lZGlhdGVQcm92aWRlciA9IHZvaWQgMDsKICAgIHZhciBJbW1lZGlhdGVfMSA9IHJlcXVpcmVfSW1tZWRpYXRlKCk7CiAgICB2YXIgc2V0SW1tZWRpYXRlID0gSW1tZWRpYXRlXzEuSW1tZWRpYXRlLnNldEltbWVkaWF0ZTsKICAgIHZhciBjbGVhckltbWVkaWF0ZSA9IEltbWVkaWF0ZV8xLkltbWVkaWF0ZS5jbGVhckltbWVkaWF0ZTsKICAgIGV4cG9ydHMyLmltbWVkaWF0ZVByb3ZpZGVyID0gewogICAgICBzZXRJbW1lZGlhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnNldEltbWVkaWF0ZSkgfHwgc2V0SW1tZWRpYXRlKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjbGVhckltbWVkaWF0ZTogZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW1tZWRpYXRlKSB8fCBjbGVhckltbWVkaWF0ZSkoaGFuZGxlKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzYXBBY3Rpb24uanMKdmFyIHJlcXVpcmVfQXNhcEFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcEFjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgaW1tZWRpYXRlUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIoKTsKICAgIHZhciBBc2FwQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcEFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXNhcEFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT09IG51bGwgJiYgZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgc2NoZWR1bGVyLmFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLl9zY2hlZHVsZWQgfHwgKHNjaGVkdWxlci5fc2NoZWR1bGVkID0gaW1tZWRpYXRlUHJvdmlkZXJfMS5pbW1lZGlhdGVQcm92aWRlci5zZXRJbW1lZGlhdGUoc2NoZWR1bGVyLmZsdXNoLmJpbmQoc2NoZWR1bGVyLCB2b2lkIDApKSk7CiAgICAgIH07CiAgICAgIEFzYXBBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsID8gZGVsYXkgPiAwIDogdGhpcy5kZWxheSA+IDApIHsKICAgICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcywgc2NoZWR1bGVyLCBpZCwgZGVsYXkpOwogICAgICAgIH0KICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGlmIChpZCAhPSBudWxsICYmICgoX2EgPSBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pZCkgIT09IGlkKSB7CiAgICAgICAgICBpbW1lZGlhdGVQcm92aWRlcl8xLmltbWVkaWF0ZVByb3ZpZGVyLmNsZWFySW1tZWRpYXRlKGlkKTsKICAgICAgICAgIGlmIChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9PT0gaWQpIHsKICAgICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gQXNhcEFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgU2NoZWR1bGVyID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3Rvciwgbm93KSB7CiAgICAgICAgaWYgKG5vdyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBub3cgPSBTY2hlZHVsZXIyLm5vdzsKICAgICAgICB9CiAgICAgICAgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yID0gc2NoZWR1bGVyQWN0aW9uQ3RvcjsKICAgICAgICB0aGlzLm5vdyA9IG5vdzsKICAgICAgfQogICAgICBTY2hlZHVsZXIyLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uKHdvcmssIGRlbGF5LCBzdGF0ZSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yKHRoaXMsIHdvcmspLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgIH07CiAgICAgIFNjaGVkdWxlcjIubm93ID0gZGF0ZVRpbWVzdGFtcFByb3ZpZGVyXzEuZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLm5vdzsKICAgICAgcmV0dXJuIFNjaGVkdWxlcjI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5TY2hlZHVsZXIgPSBTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY1NjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc3luY1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgU2NoZWR1bGVyXzEgPSByZXF1aXJlX1NjaGVkdWxlcigpOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc3luY1NjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU2NoZWR1bGVyMihTY2hlZHVsZXJBY3Rpb24sIG5vdykgewogICAgICAgIGlmIChub3cgPT09IHZvaWQgMCkgewogICAgICAgICAgbm93ID0gU2NoZWR1bGVyXzEuU2NoZWR1bGVyLm5vdzsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgU2NoZWR1bGVyQWN0aW9uLCBub3cpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuYWN0aW9ucyA9IFtdOwogICAgICAgIF90aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXN5bmNTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHsKICAgICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKTsKICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgIHdoaWxlIChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc3luY1NjaGVkdWxlcjI7CiAgICB9KFNjaGVkdWxlcl8xLlNjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc3luY1NjaGVkdWxlciA9IEFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcFNjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc2FwU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc2FwU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBBc2FwU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcFNjaGVkdWxlcjIoKSB7CiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFzYXBTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwU2NoZWR1bGVyMjsKICAgIH0oQXN5bmNTY2hlZHVsZXJfMS5Bc3luY1NjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc2FwU2NoZWR1bGVyID0gQXNhcFNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzYXAuanMKdmFyIHJlcXVpcmVfYXNhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXNhcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLmFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXNhcEFjdGlvbl8xID0gcmVxdWlyZV9Bc2FwQWN0aW9uKCk7CiAgICB2YXIgQXNhcFNjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc2FwU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gbmV3IEFzYXBTY2hlZHVsZXJfMS5Bc2FwU2NoZWR1bGVyKEFzYXBBY3Rpb25fMS5Bc2FwQWN0aW9uKTsKICAgIGV4cG9ydHMyLmFzYXAgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXN5bmMuanMKdmFyIHJlcXVpcmVfYXN5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIoQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVBY3Rpb24uanMKdmFyIHJlcXVpcmVfUXVldWVBY3Rpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgUXVldWVBY3Rpb24gPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlciwgd29yaykgfHwgdGhpczsKICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7CiAgICAgICAgX3RoaXMud29yayA9IHdvcms7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTsKICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7CiAgICAgICAgdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIHJldHVybiBkZWxheSA+IDAgfHwgdGhpcy5jbG9zZWQgPyBfc3VwZXIucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpIDogdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICB9OwogICAgICBRdWV1ZUFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCAmJiBkZWxheSA+IDAgfHwgZGVsYXkgPT0gbnVsbCAmJiB0aGlzLmRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5mbHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gMDsKICAgICAgfTsKICAgICAgcmV0dXJuIFF1ZXVlQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5RdWV1ZUFjdGlvbiA9IFF1ZXVlQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfUXVldWVTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FzeW5jU2NoZWR1bGVyKCk7CiAgICB2YXIgUXVldWVTY2hlZHVsZXIgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVTY2hlZHVsZXIyKCkgewogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsKICAgICAgfQogICAgICByZXR1cm4gUXVldWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gUXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZS5qcwp2YXIgcmVxdWlyZV9xdWV1ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcXVldWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgUXVldWVBY3Rpb25fMSA9IHJlcXVpcmVfUXVldWVBY3Rpb24oKTsKICAgIHZhciBRdWV1ZVNjaGVkdWxlcl8xID0gcmVxdWlyZV9RdWV1ZVNjaGVkdWxlcigpOwogICAgZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBuZXcgUXVldWVTY2hlZHVsZXJfMS5RdWV1ZVNjaGVkdWxlcihRdWV1ZUFjdGlvbl8xLlF1ZXVlQWN0aW9uKTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZUFjdGlvbi5qcwp2YXIgcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQW5pbWF0aW9uRnJhbWVBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEgPSByZXF1aXJlX2FuaW1hdGlvbkZyYW1lUHJvdmlkZXIoKTsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQW5pbWF0aW9uRnJhbWVBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbmltYXRpb25GcmFtZUFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVBY3Rpb24yLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKGRlbGF5ICE9PSBudWxsICYmIGRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5hY3Rpb25zLnB1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlci5fc2NoZWR1bGVkIHx8IChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZXIuZmx1c2godm9pZCAwKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICAgIEFuaW1hdGlvbkZyYW1lQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCA/IGRlbGF5ID4gMCA6IHRoaXMuZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICBpZiAoaWQgIT0gbnVsbCAmJiAoKF9hID0gYWN0aW9uc1thY3Rpb25zLmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpICE9PSBpZCkgewogICAgICAgICAgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZUFjdGlvbjI7CiAgICB9KEFzeW5jQWN0aW9uXzEuQXN5bmNBY3Rpb24pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSBBbmltYXRpb25GcmFtZUFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBc3luY1NjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc3luY1NjaGVkdWxlcigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBbmltYXRpb25GcmFtZVNjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyMigpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjI7CiAgICB9KEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIpOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgPSBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FuaW1hdGlvbkZyYW1lLmpzCnZhciByZXF1aXJlX2FuaW1hdGlvbkZyYW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbl8xID0gcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IG5ldyBBbmltYXRpb25GcmFtZVNjaGVkdWxlcl8xLkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKEFuaW1hdGlvbkZyYW1lQWN0aW9uXzEuQW5pbWF0aW9uRnJhbWVBY3Rpb24pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1ZpcnR1YWxUaW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9WaXJ0dWFsVGltZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBWaXJ0dWFsVGltZVNjaGVkdWxlciA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbFRpbWVTY2hlZHVsZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBWaXJ0dWFsVGltZVNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3RvciwgbWF4RnJhbWVzKSB7CiAgICAgICAgaWYgKHNjaGVkdWxlckFjdGlvbkN0b3IgPT09IHZvaWQgMCkgewogICAgICAgICAgc2NoZWR1bGVyQWN0aW9uQ3RvciA9IFZpcnR1YWxBY3Rpb247CiAgICAgICAgfQogICAgICAgIGlmIChtYXhGcmFtZXMgPT09IHZvaWQgMCkgewogICAgICAgICAgbWF4RnJhbWVzID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlckFjdGlvbkN0b3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIF90aGlzLmZyYW1lOwogICAgICAgIH0pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMubWF4RnJhbWVzID0gbWF4RnJhbWVzOwogICAgICAgIF90aGlzLmZyYW1lID0gMDsKICAgICAgICBfdGhpcy5pbmRleCA9IC0xOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBWaXJ0dWFsVGltZVNjaGVkdWxlcjIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgYWN0aW9ucyA9IF9hLmFjdGlvbnMsIG1heEZyYW1lcyA9IF9hLm1heEZyYW1lczsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdmFyIGFjdGlvbjsKICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5kZWxheSA8PSBtYXhGcmFtZXMpIHsKICAgICAgICAgIGFjdGlvbnMuc2hpZnQoKTsKICAgICAgICAgIHRoaXMuZnJhbWUgPSBhY3Rpb24uZGVsYXk7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgd2hpbGUgKGFjdGlvbiA9IGFjdGlvbnMuc2hpZnQoKSkgewogICAgICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbFRpbWVTY2hlZHVsZXIyLmZyYW1lVGltZUZhY3RvciA9IDEwOwogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxUaW1lU2NoZWR1bGVyID0gVmlydHVhbFRpbWVTY2hlZHVsZXI7CiAgICB2YXIgVmlydHVhbEFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbEFjdGlvbjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFZpcnR1YWxBY3Rpb24yKHNjaGVkdWxlciwgd29yaywgaW5kZXgpIHsKICAgICAgICBpZiAoaW5kZXggPT09IHZvaWQgMCkgewogICAgICAgICAgaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggKz0gMTsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5pbmRleCA9IGluZGV4OwogICAgICAgIF90aGlzLmFjdGl2ZSA9IHRydWU7CiAgICAgICAgX3RoaXMuaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggPSBpbmRleDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgVmlydHVhbEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShkZWxheSkpIHsKICAgICAgICAgIGlmICghdGhpcy5pZCkgewogICAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGFjdGlvbiA9IG5ldyBWaXJ0dWFsQWN0aW9uMih0aGlzLnNjaGVkdWxlciwgdGhpcy53b3JrKTsKICAgICAgICAgIHRoaXMuYWRkKGFjdGlvbik7CiAgICAgICAgICByZXR1cm4gYWN0aW9uLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24uRU1QVFk7CiAgICAgICAgfQogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBzY2hlZHVsZXIuZnJhbWUgKyBkZWxheTsKICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICBhY3Rpb25zLnNvcnQoVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMpOwogICAgICAgIHJldHVybiAxOwogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIFZpcnR1YWxBY3Rpb24yLnByb3RvdHlwZS5fZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMgPSBmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgaWYgKGEuZGVsYXkgPT09IGIuZGVsYXkpIHsKICAgICAgICAgIGlmIChhLmluZGV4ID09PSBiLmluZGV4KSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkgewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGEuZGVsYXkgPiBiLmRlbGF5KSB7CiAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIFZpcnR1YWxBY3Rpb24yOwogICAgfShBc3luY0FjdGlvbl8xLkFzeW5jQWN0aW9uKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxBY3Rpb24gPSBWaXJ0dWFsQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZW1wdHkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuRU1QVFkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBleHBvcnRzMi5FTVBUWSA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICB9KTsKICAgIGZ1bmN0aW9uIGVtcHR5KHNjaGVkdWxlcikgewogICAgICByZXR1cm4gc2NoZWR1bGVyID8gZW1wdHlTY2hlZHVsZWQoc2NoZWR1bGVyKSA6IGV4cG9ydHMyLkVNUFRZOwogICAgfQogICAgZXhwb3J0czIuZW1wdHkgPSBlbXB0eTsKICAgIGZ1bmN0aW9uIGVtcHR5U2NoZWR1bGVkKHNjaGVkdWxlcikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfaXNTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1NjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1NjaGVkdWxlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuc2NoZWR1bGUpOwogICAgfQogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSBpc1NjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzCnZhciByZXF1aXJlX2FyZ3MgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wb3BOdW1iZXIgPSBleHBvcnRzMi5wb3BTY2hlZHVsZXIgPSBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgZnVuY3Rpb24gbGFzdChhcnIpIHsKICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07CiAgICB9CiAgICBmdW5jdGlvbiBwb3BSZXN1bHRTZWxlY3RvcihhcmdzKSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihsYXN0KGFyZ3MpKSA/IGFyZ3MucG9wKCkgOiB2b2lkIDA7CiAgICB9CiAgICBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHBvcFJlc3VsdFNlbGVjdG9yOwogICAgZnVuY3Rpb24gcG9wU2NoZWR1bGVyKGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIobGFzdChhcmdzKSkgPyBhcmdzLnBvcCgpIDogdm9pZCAwOwogICAgfQogICAgZXhwb3J0czIucG9wU2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyOwogICAgZnVuY3Rpb24gcG9wTnVtYmVyKGFyZ3MsIGRlZmF1bHRWYWx1ZSkgewogICAgICByZXR1cm4gdHlwZW9mIGxhc3QoYXJncykgPT09ICJudW1iZXIiID8gYXJncy5wb3AoKSA6IGRlZmF1bHRWYWx1ZTsKICAgIH0KICAgIGV4cG9ydHMyLnBvcE51bWJlciA9IHBvcE51bWJlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FycmF5TGlrZS5qcwp2YXIgcmVxdWlyZV9pc0FycmF5TGlrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXJyYXlMaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0FycmF5TGlrZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmlzQXJyYXlMaWtlID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geCAmJiB0eXBlb2YgeC5sZW5ndGggPT09ICJudW1iZXIiICYmIHR5cGVvZiB4ICE9PSAiZnVuY3Rpb24iOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1Byb21pc2UuanMKdmFyIHJlcXVpcmVfaXNQcm9taXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNQcm9taXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1Byb21pc2UodmFsdWUpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS50aGVuKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzUHJvbWlzZSA9IGlzUHJvbWlzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX2lzSW50ZXJvcE9ic2VydmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0ludGVyb3BPYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oaW5wdXRbb2JzZXJ2YWJsZV8xLm9ic2VydmFibGVdKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSW50ZXJvcE9ic2VydmFibGUgPSBpc0ludGVyb3BPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXN5bmNJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FzeW5jSXRlcmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzQXN5bmNJdGVyYWJsZSA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZShvYmopIHsKICAgICAgcmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ialtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNBc3luY0l0ZXJhYmxlID0gaXNBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dVbm9ic2VydmFibGVFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpIHsKICAgICAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiICsgKGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgPyAiYW4gaW52YWxpZCBvYmplY3QiIDogIiciICsgaW5wdXQgKyAiJyIpICsgIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgPSBjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL2l0ZXJhdG9yLmpzCnZhciByZXF1aXJlX2l0ZXJhdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3N5bWJvbC9pdGVyYXRvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXRlcmF0b3IgPSBleHBvcnRzMi5nZXRTeW1ib2xJdGVyYXRvciA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGdldFN5bWJvbEl0ZXJhdG9yKCkgewogICAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gImZ1bmN0aW9uIiB8fCAhU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgcmV0dXJuICJAQGl0ZXJhdG9yIjsKICAgICAgfQogICAgICByZXR1cm4gU3ltYm9sLml0ZXJhdG9yOwogICAgfQogICAgZXhwb3J0czIuZ2V0U3ltYm9sSXRlcmF0b3IgPSBnZXRTeW1ib2xJdGVyYXRvcjsKICAgIGV4cG9ydHMyLml0ZXJhdG9yID0gZ2V0U3ltYm9sSXRlcmF0b3IoKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX2lzSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0l0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc0l0ZXJhYmxlKGlucHV0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpbnB1dCA9PT0gbnVsbCB8fCBpbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNJdGVyYWJsZSA9IGlzSXRlcmFibGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1JlYWRhYmxlU3RyZWFtTGlrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZ2VuZXJhdG9yIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIGJvZHkpIHsKICAgICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07CiAgICAgICAgcmV0dXJuIHRbMV07CiAgICAgIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7CiAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSksIGc7CiAgICAgIGZ1bmN0aW9uIHZlcmIobikgewogICAgICAgIHJldHVybiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gc3RlcChbbiwgdl0pOwogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5WyJyZXR1cm4iXSA6IG9wWzBdID8geVsidGhyb3ciXSB8fCAoKHQgPSB5WyJyZXR1cm4iXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7CiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07CiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgeSA9IG9wWzFdOwogICAgICAgICAgICAgIG9wID0gWzBdOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgb3AgPSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsKICAgICAgICAgICAgICAgIF8gPSAwOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgb3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSBvcFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzFdOwogICAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsyXTsKICAgICAgICAgICAgICAgIF8ub3BzLnB1c2gob3ApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBvcCA9IFs2LCBlXTsKICAgICAgICAgIHkgPSAwOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBmID0gdCA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOwogICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07CiAgICAgIH0KICAgIH07CiAgICB2YXIgX19hd2FpdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXQgfHwgZnVuY3Rpb24odikgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTsKICAgIH07CiAgICB2YXIgX19hc3luY0dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXN5bmNHZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7CiAgICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdOwogICAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKCJuZXh0IiksIHZlcmIoInRocm93IiksIHZlcmIoInJldHVybiIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LCBpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7CiAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN0ZXAoZ1tuXSh2KSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgc2V0dGxlKHFbMF1bM10sIGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKHIpIHsKICAgICAgICByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7CiAgICAgICAgcmVzdW1lKCJuZXh0IiwgdmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgewogICAgICAgIHJlc3VtZSgidGhyb3ciLCB2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsKICAgICAgICBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOwogICAgICB9CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1JlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBfX2FzeW5jR2VuZXJhdG9yKHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xKCkgewogICAgICAgIHZhciByZWFkZXIsIF9hLCB2YWx1ZSwgZG9uZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2IpIHsKICAgICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF9iLnRyeXMucHVzaChbMSwgLCA5LCAxMF0pOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMjsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGlmIChmYWxzZSkgcmV0dXJuIFszLCA4XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQocmVhZGVyLnJlYWQoKSldOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICAgIGlmICghZG9uZSkgcmV0dXJuIFszLCA1XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodm9pZCAwKV07CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICByZXR1cm4gWzIsIF9iLnNlbnQoKV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodmFsdWUpXTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHJldHVybiBbNCwgX2Iuc2VudCgpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDJdOwogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMF07CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciA9IHJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3I7CiAgICBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtTGlrZShvYmopIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9iai5nZXRSZWFkZXIpOwogICAgfQogICAgZXhwb3J0czIuaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBpc1JlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbm5lckZyb20uanMKdmFyIHJlcXVpcmVfaW5uZXJGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW5uZXJGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fYXdhaXRlciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXRlciB8fCBmdW5jdGlvbih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHsKICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7CiAgICAgICAgICByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsKICAgICAgICB9CiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOwogICAgICB9KTsKICAgIH07CiAgICB2YXIgX19nZW5lcmF0b3IgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2dlbmVyYXRvciB8fCBmdW5jdGlvbih0aGlzQXJnLCBib2R5KSB7CiAgICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOwogICAgICAgIHJldHVybiB0WzFdOwogICAgICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnOwogICAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgInRocm93IjogdmVyYigxKSwgInJldHVybiI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0pLCBnOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24odikgewogICAgICAgICAgcmV0dXJuIHN0ZXAoW24sIHZdKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHsKICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpOwogICAgICAgIHdoaWxlIChfKSB0cnkgewogICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVsicmV0dXJuIl0gOiBvcFswXSA/IHlbInRocm93Il0gfHwgKCh0ID0geVsicmV0dXJuIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0OwogICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgc3dpdGNoIChvcFswXSkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9OwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHkgPSBvcFsxXTsKICAgICAgICAgICAgICBvcCA9IFswXTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIG9wID0gXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7CiAgICAgICAgICAgICAgICBfID0gMDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gb3BbMV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsxXTsKICAgICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMl07CiAgICAgICAgICAgICAgICBfLm9wcy5wdXNoKG9wKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgb3AgPSBbNiwgZV07CiAgICAgICAgICB5ID0gMDsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgZiA9IHQgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsKICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9OwogICAgICB9CiAgICB9OwogICAgdmFyIF9fYXN5bmNWYWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2FzeW5jVmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7CiAgICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09ICJmdW5jdGlvbiIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoIm5leHQiKSwgdmVyYigidGhyb3ciKSwgdmVyYigicmV0dXJuIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sIGkpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpW25dID0gb1tuXSAmJiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgIHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7CiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odjIpIHsKICAgICAgICAgIHJlc29sdmUoeyB2YWx1ZTogdjIsIGRvbmU6IGQgfSk7CiAgICAgICAgfSwgcmVqZWN0KTsKICAgICAgfQogICAgfTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZXhwb3J0czIuZnJvbUl0ZXJhYmxlID0gZXhwb3J0czIuZnJvbVByb21pc2UgPSBleHBvcnRzMi5mcm9tQXJyYXlMaWtlID0gZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZXhwb3J0czIuaW5uZXJGcm9tID0gdm9pZCAwOwogICAgdmFyIGlzQXJyYXlMaWtlXzEgPSByZXF1aXJlX2lzQXJyYXlMaWtlKCk7CiAgICB2YXIgaXNQcm9taXNlXzEgPSByZXF1aXJlX2lzUHJvbWlzZSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc0l0ZXJhYmxlXzEgPSByZXF1aXJlX2lzSXRlcmFibGUoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEgPSByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yKCk7CiAgICB2YXIgb2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9vYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBpbm5lckZyb20oaW5wdXQpIHsKICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpIHsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICBpZiAoaXNJbnRlcm9wT2JzZXJ2YWJsZV8xLmlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUludGVyb3BPYnNlcnZhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUFycmF5TGlrZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1Byb21pc2VfMS5pc1Byb21pc2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNBc3luY0l0ZXJhYmxlXzEuaXNBc3luY0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSXRlcmFibGVfMS5pc0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21JdGVyYWJsZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLmlzUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21SZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgfQogICAgICB0aHJvdyB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpOwogICAgfQogICAgZXhwb3J0czIuaW5uZXJGcm9tID0gaW5uZXJGcm9tOwogICAgZnVuY3Rpb24gZnJvbUludGVyb3BPYnNlcnZhYmxlKG9iaikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb2JzID0gb2JqW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSgpOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnMuc3Vic2NyaWJlKSkgewogICAgICAgICAgcmV0dXJuIG9icy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZnJvbUludGVyb3BPYnNlcnZhYmxlOwogICAgZnVuY3Rpb24gZnJvbUFycmF5TGlrZShhcnJheSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aCAmJiAhc3Vic2NyaWJlci5jbG9zZWQ7IGkrKykgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGFycmF5W2ldKTsKICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21BcnJheUxpa2UgPSBmcm9tQXJyYXlMaWtlOwogICAgZnVuY3Rpb24gZnJvbVByb21pc2UocHJvbWlzZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9KS50aGVuKG51bGwsIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Qcm9taXNlID0gZnJvbVByb21pc2U7CiAgICBmdW5jdGlvbiBmcm9tSXRlcmFibGUoaXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZvciAodmFyIGl0ZXJhYmxlXzEgPSBfX3ZhbHVlcyhpdGVyYWJsZSksIGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpOyAhaXRlcmFibGVfMV8xLmRvbmU7IGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpKSB7CiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZXJhYmxlXzFfMS52YWx1ZTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChpdGVyYWJsZV8xXzEgJiYgIWl0ZXJhYmxlXzFfMS5kb25lICYmIChfYSA9IGl0ZXJhYmxlXzEucmV0dXJuKSkgX2EuY2FsbChpdGVyYWJsZV8xKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21JdGVyYWJsZSA9IGZyb21JdGVyYWJsZTsKICAgIGZ1bmN0aW9uIGZyb21Bc3luY0l0ZXJhYmxlKGFzeW5jSXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZnJvbUFzeW5jSXRlcmFibGU7CiAgICBmdW5jdGlvbiBmcm9tUmVhZGFibGVTdHJlYW1MaWtlKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBmcm9tQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IocmVhZGFibGVTdHJlYW0pKTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21SZWFkYWJsZVN0cmVhbUxpa2UgPSBmcm9tUmVhZGFibGVTdHJlYW1MaWtlOwogICAgZnVuY3Rpb24gcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikgewogICAgICB2YXIgYXN5bmNJdGVyYWJsZV8xLCBhc3luY0l0ZXJhYmxlXzFfMTsKICAgICAgdmFyIGVfMiwgX2E7CiAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB2YWx1ZSwgZV8yXzE7CiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uKF9iKSB7CiAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfYi50cnlzLnB1c2goWzAsIDUsIDYsIDExXSk7CiAgICAgICAgICAgICAgYXN5bmNJdGVyYWJsZV8xID0gX19hc3luY1ZhbHVlcyhhc3luY0l0ZXJhYmxlKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDE7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gWzQsIGFzeW5jSXRlcmFibGVfMS5uZXh0KCldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgPSBfYi5zZW50KCksICFhc3luY0l0ZXJhYmxlXzFfMS5kb25lKSkgcmV0dXJuIFszLCA0XTsKICAgICAgICAgICAgICB2YWx1ZSA9IGFzeW5jSXRlcmFibGVfMV8xLnZhbHVlOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWzJdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfYi5sYWJlbCA9IDM7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBlXzJfMSA9IF9iLnNlbnQoKTsKICAgICAgICAgICAgICBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OwogICAgICAgICAgICAgIHJldHVybiBbMywgMTFdOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX2IudHJ5cy5wdXNoKFs2LCAsIDksIDEwXSk7CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgJiYgIWFzeW5jSXRlcmFibGVfMV8xLmRvbmUgJiYgKF9hID0gYXN5bmNJdGVyYWJsZV8xLnJldHVybikpKSByZXR1cm4gWzMsIDhdOwogICAgICAgICAgICAgIHJldHVybiBbNCwgX2EuY2FsbChhc3luY0l0ZXJhYmxlXzEpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDg7CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDEwXTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbN107CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2V4ZWN1dGVTY2hlZHVsZS5qcwp2YXIgcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9leGVjdXRlU2NoZWR1bGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4ZWN1dGVTY2hlZHVsZSA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGV4ZWN1dGVTY2hlZHVsZShwYXJlbnRTdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgd29yaywgZGVsYXksIHJlcGVhdDIpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHJlcGVhdDIgPT09IHZvaWQgMCkgewogICAgICAgIHJlcGVhdDIgPSBmYWxzZTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVTdWJzY3JpcHRpb24gPSBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgd29yaygpOwogICAgICAgIGlmIChyZXBlYXQyKSB7CiAgICAgICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2NoZWR1bGUobnVsbCwgZGVsYXkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgIH0KICAgICAgfSwgZGVsYXkpOwogICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHNjaGVkdWxlU3Vic2NyaXB0aW9uKTsKICAgICAgaWYgKCFyZXBlYXQyKSB7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlU3Vic2NyaXB0aW9uOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5leGVjdXRlU2NoZWR1bGUgPSBleGVjdXRlU2NoZWR1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMKdmFyIHJlcXVpcmVfb2JzZXJ2ZU9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVPbiA9IHZvaWQgMDsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gb2JzZXJ2ZU9uKHNjaGVkdWxlciwgZGVsYXkpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlT24gPSBvYnNlcnZlT247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbi5qcwp2YXIgcmVxdWlyZV9zdWJzY3JpYmVPbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3Vic2NyaWJlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN1YnNjcmliZU9uID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3Vic2NyaWJlT24oc2NoZWR1bGVyLCBkZWxheSkgewogICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgIGRlbGF5ID0gMDsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfSwgZGVsYXkpKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zdWJzY3JpYmVPbiA9IHN1YnNjcmliZU9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZU9ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIG9ic2VydmVPbl8xID0gcmVxdWlyZV9vYnNlcnZlT24oKTsKICAgIHZhciBzdWJzY3JpYmVPbl8xID0gcmVxdWlyZV9zdWJzY3JpYmVPbigpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVPYnNlcnZhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCkucGlwZShzdWJzY3JpYmVPbl8xLnN1YnNjcmliZU9uKHNjaGVkdWxlciksIG9ic2VydmVPbl8xLm9ic2VydmVPbihzY2hlZHVsZXIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlT2JzZXJ2YWJsZSA9IHNjaGVkdWxlT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZVByb21pc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVQcm9taXNlID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20oaW5wdXQpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlZHVsZVByb21pc2UgPSBzY2hlZHVsZVByb21pc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUFycmF5LmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlQXJyYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaSA9PT0gaW5wdXQubGVuZ3RoKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpbnB1dFtpKytdKTsKICAgICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSBzY2hlZHVsZUFycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUl0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUl0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpdGVyYXRvcjsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGl0ZXJhdG9yID0gaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0oKTsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgdmFyIGRvbmU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX2EgPSBpdGVyYXRvci5uZXh0KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkb25lKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIDAsIHRydWUpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpdGVyYXRvciA9PT0gbnVsbCB8fCBpdGVyYXRvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlcmF0b3IucmV0dXJuKSAmJiBpdGVyYXRvci5yZXR1cm4oKTsKICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlSXRlcmFibGUgPSBzY2hlZHVsZUl0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUFzeW5jSXRlcmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVBc3luY0l0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKCFpbnB1dCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpdGVyYXRvciA9IGlucHV0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOwogICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0LnZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMCwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVBc3luY0l0ZXJhYmxlID0gc2NoZWR1bGVBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSA9IHZvaWQgMDsKICAgIHZhciBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMSA9IHJlcXVpcmVfc2NoZWR1bGVBc3luY0l0ZXJhYmxlKCk7CiAgICB2YXIgaXNSZWFkYWJsZVN0cmVhbUxpa2VfMSA9IHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UoKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlQXN5bmNJdGVyYWJsZV8xLnNjaGVkdWxlQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IoaW5wdXQpLCBzY2hlZHVsZXIpOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVkID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZU9ic2VydmFibGUoKTsKICAgIHZhciBzY2hlZHVsZVByb21pc2VfMSA9IHJlcXVpcmVfc2NoZWR1bGVQcm9taXNlKCk7CiAgICB2YXIgc2NoZWR1bGVBcnJheV8xID0gcmVxdWlyZV9zY2hlZHVsZUFycmF5KCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICB2YXIgc2NoZWR1bGVBc3luY0l0ZXJhYmxlXzEgPSByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzUHJvbWlzZV8xID0gcmVxdWlyZV9pc1Byb21pc2UoKTsKICAgIHZhciBpc0FycmF5TGlrZV8xID0gcmVxdWlyZV9pc0FycmF5TGlrZSgpOwogICAgdmFyIGlzSXRlcmFibGVfMSA9IHJlcXVpcmVfaXNJdGVyYWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlXzEgPSByZXF1aXJlX3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZWQoaW5wdXQsIHNjaGVkdWxlcikgewogICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgIGlmIChpc0ludGVyb3BPYnNlcnZhYmxlXzEuaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZU9ic2VydmFibGVfMS5zY2hlZHVsZU9ic2VydmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0FycmF5TGlrZV8xLmlzQXJyYXlMaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlQXJyYXlfMS5zY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNQcm9taXNlXzEuaXNQcm9taXNlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlUHJvbWlzZV8xLnNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXN5bmNJdGVyYWJsZV8xLmlzQXN5bmNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMS5zY2hlZHVsZUFzeW5jSXRlcmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0l0ZXJhYmxlXzEuaXNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUl0ZXJhYmxlXzEuc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUmVhZGFibGVTdHJlYW1MaWtlXzEuaXNSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2VfMS5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhyb3cgdGhyb3dVbm9ic2VydmFibGVFcnJvcl8xLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlZCA9IHNjaGVkdWxlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzCnZhciByZXF1aXJlX2Zyb20gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlZF8xID0gcmVxdWlyZV9zY2hlZHVsZWQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBmcm9tKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlciA/IHNjaGVkdWxlZF8xLnNjaGVkdWxlZChpbnB1dCwgc2NoZWR1bGVyKSA6IGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tID0gZnJvbTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZi5qcwp2YXIgcmVxdWlyZV9vZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5vZiA9IHZvaWQgMDsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG9mKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKGFyZ3MsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5vZiA9IG9mOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiB0aHJvd0Vycm9yMihlcnJvck9yRXJyb3JGYWN0b3J5LCBzY2hlZHVsZXIpIHsKICAgICAgdmFyIGVycm9yRmFjdG9yeSA9IGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGVycm9yT3JFcnJvckZhY3RvcnkpID8gZXJyb3JPckVycm9yRmFjdG9yeSA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBlcnJvck9yRXJyb3JGYWN0b3J5OwogICAgICB9OwogICAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnJvckZhY3RvcnkoKSk7CiAgICAgIH07CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoc2NoZWR1bGVyID8gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoaW5pdCwgMCwgc3Vic2NyaWJlcik7CiAgICAgIH0gOiBpbml0KTsKICAgIH0KICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB0aHJvd0Vycm9yMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVOb3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgb2ZfMSA9IHJlcXVpcmVfb2YoKTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBOb3RpZmljYXRpb25LaW5kOwogICAgKGZ1bmN0aW9uKE5vdGlmaWNhdGlvbktpbmQyKSB7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJORVhUIl0gPSAiTiI7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJFUlJPUiJdID0gIkUiOwogICAgICBOb3RpZmljYXRpb25LaW5kMlsiQ09NUExFVEUiXSA9ICJDIjsKICAgIH0pKE5vdGlmaWNhdGlvbktpbmQgPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kIHx8IChleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0ge30pKTsKICAgIHZhciBOb3RpZmljYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uMihraW5kLCB2YWx1ZSwgZXJyb3IpIHsKICAgICAgICB0aGlzLmtpbmQgPSBraW5kOwogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IGtpbmQgPT09ICJOIjsKICAgICAgfQogICAgICBOb3RpZmljYXRpb24yLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24ob2JzZXJ2ZXIpIHsKICAgICAgICByZXR1cm4gb2JzZXJ2ZU5vdGlmaWNhdGlvbih0aGlzLCBvYnNlcnZlcik7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmRvID0gZnVuY3Rpb24obmV4dEhhbmRsZXIsIGVycm9ySGFuZGxlciwgY29tcGxldGVIYW5kbGVyKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgcmV0dXJuIGtpbmQgPT09ICJOIiA/IG5leHRIYW5kbGVyID09PSBudWxsIHx8IG5leHRIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0SGFuZGxlcih2YWx1ZSkgOiBraW5kID09PSAiRSIgPyBlcnJvckhhbmRsZXIgPT09IG51bGwgfHwgZXJyb3JIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckhhbmRsZXIoZXJyb3IpIDogY29tcGxldGVIYW5kbGVyID09PSBudWxsIHx8IGNvbXBsZXRlSGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcGxldGVIYW5kbGVyKCk7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKG5leHRPck9ic2VydmVyLCBlcnJvciwgY29tcGxldGUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKChfYSA9IG5leHRPck9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmV4dCkgPyB0aGlzLm9ic2VydmUobmV4dE9yT2JzZXJ2ZXIpIDogdGhpcy5kbyhuZXh0T3JPYnNlcnZlciwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgTm90aWZpY2F0aW9uMi5wcm90b3R5cGUudG9PYnNlcnZhYmxlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgdmFyIHJlc3VsdCA9IGtpbmQgPT09ICJOIiA/IG9mXzEub2YodmFsdWUpIDoga2luZCA9PT0gIkUiID8gdGhyb3dFcnJvcl8xLnRocm93RXJyb3IoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgfSkgOiBraW5kID09PSAiQyIgPyBlbXB0eV8xLkVNUFRZIDogMDsKICAgICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiICsga2luZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY3JlYXRlTmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJOIiwgdmFsdWUpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJFIiwgdm9pZCAwLCBlcnIpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb247CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uMigiQyIpOwogICAgICByZXR1cm4gTm90aWZpY2F0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG9ic2VydmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBvYnNlcnZlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIF9kID0gbm90aWZpY2F0aW9uLCBraW5kID0gX2Qua2luZCwgdmFsdWUgPSBfZC52YWx1ZSwgZXJyb3IgPSBfZC5lcnJvcjsKICAgICAgaWYgKHR5cGVvZiBraW5kICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOwogICAgICB9CiAgICAgIGtpbmQgPT09ICJOIiA/IChfYSA9IG9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9ic2VydmVyLCB2YWx1ZSkgOiBraW5kID09PSAiRSIgPyAoX2IgPSBvYnNlcnZlci5lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob2JzZXJ2ZXIsIGVycm9yKSA6IChfYyA9IG9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvYnNlcnZlcik7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlTm90aWZpY2F0aW9uID0gb2JzZXJ2ZU5vdGlmaWNhdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfaXNPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc09ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc09ic2VydmFibGUob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiAob2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUgfHwgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob2JqLmxpZnQpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iai5zdWJzY3JpYmUpKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzT2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzCnZhciByZXF1aXJlX0VtcHR5RXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuRW1wdHlFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gRW1wdHlFcnJvckltcGwoKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubmFtZSA9ICJFbXB0eUVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2xhc3RWYWx1ZUZyb20uanMKdmFyIHJlcXVpcmVfbGFzdFZhbHVlRnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9sYXN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0VmFsdWVGcm9tID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgZnVuY3Rpb24gbGFzdFZhbHVlRnJvbShzb3VyY2UsIGNvbmZpZykgewogICAgICB2YXIgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gIm9iamVjdCI7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICB2YXIgX2hhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIF92YWx1ZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHsKICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIF92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICBfaGFzVmFsdWUgPSB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChfaGFzVmFsdWUpIHsKICAgICAgICAgICAgICByZXNvbHZlKF92YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ29uZmlnKSB7CiAgICAgICAgICAgICAgcmVzb2x2ZShjb25maWcuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZWplY3QobmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubGFzdFZhbHVlRnJvbSA9IGxhc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzCnZhciByZXF1aXJlX2ZpcnN0VmFsdWVGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBTdWJzY3JpYmVyXzEgPSByZXF1aXJlX1N1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGZpcnN0VmFsdWVGcm9tKHNvdXJjZSwgY29uZmlnKSB7CiAgICAgIHZhciBoYXNDb25maWcgPSB0eXBlb2YgY29uZmlnID09PSAib2JqZWN0IjsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBzdWJzY3JpYmVyID0gbmV3IFN1YnNjcmliZXJfMS5TYWZlU3Vic2NyaWJlcih7CiAgICAgICAgICBuZXh0OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChoYXNDb25maWcpIHsKICAgICAgICAgICAgICByZXNvbHZlKGNvbmZpZy5kZWZhdWx0VmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlamVjdChuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpcnN0VmFsdWVGcm9tID0gZmlyc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IuanMKdmFyIHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICBleHBvcnRzMi5Bcmd1bWVudE91dE9mUmFuZ2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsKCkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9ICJhcmd1bWVudCBvdXQgb2YgcmFuZ2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcwp2YXIgcmVxdWlyZV9Ob3RGb3VuZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTm90Rm91bmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjcmVhdGVFcnJvckNsYXNzXzEgPSByZXF1aXJlX2NyZWF0ZUVycm9yQ2xhc3MoKTsKICAgIGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE5vdEZvdW5kRXJyb3JJbXBsKG1lc3NhZ2UpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk5vdEZvdW5kRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzCnZhciByZXF1aXJlX1NlcXVlbmNlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TZXF1ZW5jZUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuU2VxdWVuY2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gU2VxdWVuY2VFcnJvckltcGwobWVzc2FnZSkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiU2VxdWVuY2VFcnJvciI7CiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKICAgICAgfTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzRGF0ZS5qcwp2YXIgcmVxdWlyZV9pc0RhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0RhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzVmFsaWREYXRlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUpOwogICAgfQogICAgZXhwb3J0czIuaXNWYWxpZERhdGUgPSBpc1ZhbGlkRGF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQuanMKdmFyIHJlcXVpcmVfdGltZW91dCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGV4ZWN1dGVTY2hlZHVsZV8xID0gcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUoKTsKICAgIGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVGltZW91dEVycm9ySW1wbChpbmZvKSB7CiAgICAgICAgaWYgKGluZm8gPT09IHZvaWQgMCkgewogICAgICAgICAgaW5mbyA9IG51bGw7CiAgICAgICAgfQogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAiVGltZW91dCBoYXMgb2NjdXJyZWQiOwogICAgICAgIHRoaXMubmFtZSA9ICJUaW1lb3V0RXJyb3IiOwogICAgICAgIHRoaXMuaW5mbyA9IGluZm87CiAgICAgIH07CiAgICB9KTsKICAgIGZ1bmN0aW9uIHRpbWVvdXQoY29uZmlnLCBzY2hlZHVsZXJBcmcpIHsKICAgICAgdmFyIF9hID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoY29uZmlnKSA/IHsgZmlyc3Q6IGNvbmZpZyB9IDogdHlwZW9mIGNvbmZpZyA9PT0gIm51bWJlciIgPyB7IGVhY2g6IGNvbmZpZyB9IDogY29uZmlnLCBmaXJzdCA9IF9hLmZpcnN0LCBlYWNoID0gX2EuZWFjaCwgX2IgPSBfYS53aXRoLCBfd2l0aCA9IF9iID09PSB2b2lkIDAgPyB0aW1lb3V0RXJyb3JGYWN0b3J5IDogX2IsIF9jID0gX2Euc2NoZWR1bGVyLCBzY2hlZHVsZXIgPSBfYyA9PT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnICE9PSBudWxsICYmIHNjaGVkdWxlckFyZyAhPT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlciA6IF9jLCBfZCA9IF9hLm1ldGEsIG1ldGEgPSBfZCA9PT0gdm9pZCAwID8gbnVsbCA6IF9kOwogICAgICBpZiAoZmlyc3QgPT0gbnVsbCAmJiBlYWNoID09IG51bGwpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb3JpZ2luYWxTb3VyY2VTdWJzY3JpcHRpb247CiAgICAgICAgdmFyIHRpbWVyU3Vic2NyaXB0aW9uOwogICAgICAgIHZhciBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICB2YXIgc3RhcnRUaW1lciA9IGZ1bmN0aW9uKGRlbGF5KSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9IGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIG9yaWdpbmFsU291cmNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKF93aXRoKHsKICAgICAgICAgICAgICAgIG1ldGEsCiAgICAgICAgICAgICAgICBsYXN0VmFsdWUsCiAgICAgICAgICAgICAgICBzZWVuCiAgICAgICAgICAgICAgfSkpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBkZWxheSk7CiAgICAgICAgfTsKICAgICAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9PT0gbnVsbCB8fCB0aW1lclN1YnNjcmlwdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNlZW4rKzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChsYXN0VmFsdWUgPSB2YWx1ZSk7CiAgICAgICAgICBlYWNoID4gMCAmJiBzdGFydFRpbWVyKGVhY2gpOwogICAgICAgIH0sIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghKHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi5jbG9zZWQpKSB7CiAgICAgICAgICAgIHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgICAgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgICAgIXNlZW4gJiYgc3RhcnRUaW1lcihmaXJzdCAhPSBudWxsID8gdHlwZW9mIGZpcnN0ID09PSAibnVtYmVyIiA/IGZpcnN0IDogK2ZpcnN0IC0gc2NoZWR1bGVyLm5vdygpIDogZWFjaCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dCA9IHRpbWVvdXQ7CiAgICBmdW5jdGlvbiB0aW1lb3V0RXJyb3JGYWN0b3J5KGluZm8pIHsKICAgICAgdGhyb3cgbmV3IGV4cG9ydHMyLlRpbWVvdXRFcnJvcihpbmZvKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcwp2YXIgcmVxdWlyZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWFwID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hcDIocHJvamVjdCwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tYXAgPSBtYXAyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMKdmFyIHJlcXVpcmVfbWFwT25lT3JNYW55QXJncyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcE9uZU9yTWFueUFyZ3MgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OwogICAgZnVuY3Rpb24gY2FsbE9yQXBwbHkoZm4sIGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzQXJyYXkoYXJncykgPyBmbi5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpIDogZm4oYXJncyk7CiAgICB9CiAgICBmdW5jdGlvbiBtYXBPbmVPck1hbnlBcmdzKGZuKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oYXJncykgewogICAgICAgIHJldHVybiBjYWxsT3JBcHBseShmbiwgYXJncyk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWFwT25lT3JNYW55QXJncyA9IG1hcE9uZU9yTWFueUFyZ3M7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZENhbGxiYWNrSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX2JpbmRDYWxsYmFja0ludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFja0ludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlzU2NoZWR1bGVyXzEgPSByZXF1aXJlX2lzU2NoZWR1bGVyKCk7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgQXN5bmNTdWJqZWN0XzEgPSByZXF1aXJlX0FzeW5jU3ViamVjdCgpOwogICAgZnVuY3Rpb24gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHJlc3VsdFNlbGVjdG9yLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3IpKSB7CiAgICAgICAgICBzY2hlZHVsZXIgPSByZXN1bHRTZWxlY3RvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHNjaGVkdWxlcikuYXBwbHkodGhpcywgYXJncykucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMpLmFwcGx5KHRoaXMsIGFyZ3MpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHZhciB1bmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICAgIHZhciBzdWJzID0gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgICBpZiAodW5pbml0aWFsaXplZCkgewogICAgICAgICAgICB1bmluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgICAgICAgIHZhciBpc0FzeW5jXzEgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIGlzQ29tcGxldGVfMSA9IGZhbHNlOwogICAgICAgICAgICBjYWxsYmFja0Z1bmMuYXBwbHkoX3RoaXMsIF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSwgWwogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pMisrKSB7CiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbX2kyXSA9IGFyZ3VtZW50c1tfaTJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGlzTm9kZVN0eWxlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXN1bHRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgxIDwgcmVzdWx0cy5sZW5ndGggPyByZXN1bHRzIDogcmVzdWx0c1swXSk7CiAgICAgICAgICAgICAgICBpc0NvbXBsZXRlXzEgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKGlzQXN5bmNfMSkgewogICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKSk7CiAgICAgICAgICAgIGlmIChpc0NvbXBsZXRlXzEpIHsKICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNBc3luY18xID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzdWJzOwogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gYmluZENhbGxiYWNrSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kQ2FsbGJhY2sgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9iaW5kQ2FsbGJhY2suanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJpbmRDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soY2FsbGJhY2tGdW5jLCByZXN1bHRTZWxlY3Rvciwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMS5iaW5kQ2FsbGJhY2tJbnRlcm5hbHMoZmFsc2UsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kQ2FsbGJhY2sgPSBiaW5kQ2FsbGJhY2s7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kTm9kZUNhbGxiYWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZE5vZGVDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrKGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcikgewogICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzXzEuYmluZENhbGxiYWNrSW50ZXJuYWxzKHRydWUsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gYmluZE5vZGVDYWxsYmFjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzQXJnQXJyYXlPck9iamVjdC5qcwp2YXIgcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2FyZ3NBcmdBcnJheU9yT2JqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcmdzQXJnQXJyYXlPck9iamVjdCA9IHZvaWQgMDsKICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTsKICAgIHZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKICAgIHZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7CiAgICB2YXIgZ2V0S2V5cyA9IE9iamVjdC5rZXlzOwogICAgZnVuY3Rpb24gYXJnc0FyZ0FycmF5T3JPYmplY3QoYXJncykgewogICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHsKICAgICAgICB2YXIgZmlyc3RfMSA9IGFyZ3NbMF07CiAgICAgICAgaWYgKGlzQXJyYXkoZmlyc3RfMSkpIHsKICAgICAgICAgIHJldHVybiB7IGFyZ3M6IGZpcnN0XzEsIGtleXM6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUE9KTyhmaXJzdF8xKSkgewogICAgICAgICAgdmFyIGtleXMgPSBnZXRLZXlzKGZpcnN0XzEpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgYXJnczoga2V5cy5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0XzFba2V5XTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGtleXMKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGFyZ3MsIGtleXM6IG51bGwgfTsKICAgIH0KICAgIGV4cG9ydHMyLmFyZ3NBcmdBcnJheU9yT2JqZWN0ID0gYXJnc0FyZ0FycmF5T3JPYmplY3Q7CiAgICBmdW5jdGlvbiBpc1BPSk8ob2JqKSB7CiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gIm9iamVjdCIgJiYgZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gb2JqZWN0UHJvdG87CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvY3JlYXRlT2JqZWN0LmpzCnZhciByZXF1aXJlX2NyZWF0ZU9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZU9iamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0KGtleXMsIHZhbHVlcykgewogICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXksIGkpIHsKICAgICAgICByZXR1cm4gcmVzdWx0W2tleV0gPSB2YWx1ZXNbaV0sIHJlc3VsdDsKICAgICAgfSwge30pOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gY3JlYXRlT2JqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3RJbml0ID0gZXhwb3J0czIuY29tYmluZUxhdGVzdCA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIHJlc3VsdFNlbGVjdG9yID0gYXJnc18xLnBvcFJlc3VsdFNlbGVjdG9yKGFyZ3MpOwogICAgICB2YXIgX2EgPSBhcmdzQXJnQXJyYXlPck9iamVjdF8xLmFyZ3NBcmdBcnJheU9yT2JqZWN0KGFyZ3MpLCBvYnNlcnZhYmxlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKFtdLCBzY2hlZHVsZXIpOwogICAgICB9CiAgICAgIHZhciByZXN1bHQgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwga2V5cyA/IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIHJldHVybiBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKTsKICAgICAgfSA6IGlkZW50aXR5XzEuaWRlbnRpdHkpKTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBjb21iaW5lTGF0ZXN0OwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwgdmFsdWVUcmFuc2Zvcm0pIHsKICAgICAgaWYgKHZhbHVlVHJhbnNmb3JtID09PSB2b2lkIDApIHsKICAgICAgICB2YWx1ZVRyYW5zZm9ybSA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBtYXliZVNjaGVkdWxlKHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgbGVuZ3RoID0gb2JzZXJ2YWJsZXMubGVuZ3RoOwogICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgICAgdmFyIGFjdGl2ZSA9IGxlbmd0aDsKICAgICAgICAgIHZhciByZW1haW5pbmdGaXJzdFZhbHVlcyA9IGxlbmd0aDsKICAgICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oaTIpIHsKICAgICAgICAgICAgbWF5YmVTY2hlZHVsZShzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBmcm9tXzEuZnJvbShvYnNlcnZhYmxlc1tpMl0sIHNjaGVkdWxlcik7CiAgICAgICAgICAgICAgdmFyIGhhc0ZpcnN0VmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFsdWVzW2kyXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgaWYgKCFoYXNGaXJzdFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgICAgICByZW1haW5pbmdGaXJzdFZhbHVlcy0tOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdGaXJzdFZhbHVlcykgewogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWVUcmFuc2Zvcm0odmFsdWVzLnNsaWNlKCkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmICghLS1hY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfSwgc3Vic2NyaWJlcik7CiAgICAgICAgICB9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgICAgfQogICAgICAgIH0sIHN1YnNjcmliZXIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEluaXQgPSBjb21iaW5lTGF0ZXN0SW5pdDsKICAgIGZ1bmN0aW9uIG1heWJlU2NoZWR1bGUoc2NoZWR1bGVyLCBleGVjdXRlLCBzdWJzY3JpcHRpb24pIHsKICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgZXhlY3V0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXhlY3V0ZSgpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUludGVybmFscy5qcwp2YXIgcmVxdWlyZV9tZXJnZUludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VJbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gbWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCBvbkJlZm9yZU5leHQsIGV4cGFuZCwgaW5uZXJTdWJTY2hlZHVsZXIsIGFkZGl0aW9uYWxGaW5hbGl6ZXIpIHsKICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICB2YXIgYWN0aXZlID0gMDsKICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoaXNDb21wbGV0ZSAmJiAhYnVmZmVyLmxlbmd0aCAmJiAhYWN0aXZlKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICB2YXIgb3V0ZXJOZXh0ID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gYWN0aXZlIDwgY29uY3VycmVudCA/IGRvSW5uZXJTdWIodmFsdWUpIDogYnVmZmVyLnB1c2godmFsdWUpOwogICAgICB9OwogICAgICB2YXIgZG9Jbm5lclN1YiA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgZXhwYW5kICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgYWN0aXZlKys7CiAgICAgICAgdmFyIGlubmVyQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdCh2YWx1ZSwgaW5kZXgrKykpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oaW5uZXJWYWx1ZSkgewogICAgICAgICAgb25CZWZvcmVOZXh0ID09PSBudWxsIHx8IG9uQmVmb3JlTmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CZWZvcmVOZXh0KGlubmVyVmFsdWUpOwogICAgICAgICAgaWYgKGV4cGFuZCkgewogICAgICAgICAgICBvdXRlck5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpbm5lckNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICB9LCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKGlubmVyQ29tcGxldGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBhY3RpdmUtLTsKICAgICAgICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIGJ1ZmZlcmVkVmFsdWUgPSBidWZmZXIuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmIChpbm5lclN1YlNjaGVkdWxlcikgewogICAgICAgICAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgaW5uZXJTdWJTY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0lubmVyU3ViKGJ1ZmZlcmVkVmFsdWUpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGRvSW5uZXJTdWIoYnVmZmVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB3aGlsZSAoYnVmZmVyLmxlbmd0aCAmJiBhY3RpdmUgPCBjb25jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBfbG9vcF8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9OwogICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBvdXRlck5leHQsIGZ1bmN0aW9uKCkgewogICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgYWRkaXRpb25hbEZpbmFsaXplciA9PT0gbnVsbCB8fCBhZGRpdGlvbmFsRmluYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhZGRpdGlvbmFsRmluYWxpemVyKCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUludGVybmFscyA9IG1lcmdlSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXAuanMKdmFyIHJlcXVpcmVfbWVyZ2VNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5tZXJnZU1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG1lcmdlSW50ZXJuYWxzXzEgPSByZXF1aXJlX21lcmdlSW50ZXJuYWxzKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtZXJnZU1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbihiLCBpaSkgewogICAgICAgICAgICByZXR1cm4gcmVzdWx0U2VsZWN0b3IoYSwgYiwgaSwgaWkpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpKTsKICAgICAgICB9LCBjb25jdXJyZW50KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gbWVyZ2VJbnRlcm5hbHNfMS5tZXJnZUludGVybmFscyhzb3VyY2UsIHN1YnNjcmliZXIsIHByb2plY3QsIGNvbmN1cnJlbnQpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlTWFwID0gbWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUFsbC5qcwp2YXIgcmVxdWlyZV9tZXJnZUFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIG1lcmdlQWxsKGNvbmN1cnJlbnQpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChpZGVudGl0eV8xLmlkZW50aXR5LCBjb25jdXJyZW50KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gbWVyZ2VBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMKdmFyIHJlcXVpcmVfY29uY2F0QWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgZnVuY3Rpb24gY29uY2F0QWxsKCkgewogICAgICByZXR1cm4gbWVyZ2VBbGxfMS5tZXJnZUFsbCgxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IGNvbmNhdEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsKCkoZnJvbV8xLmZyb20oYXJncywgYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29uY2F0ID0gY29uY2F0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RlZmVyLmpzCnZhciByZXF1aXJlX2RlZmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZGVmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZmVyID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGRlZmVyKG9ic2VydmFibGVGYWN0b3J5KSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvYnNlcnZhYmxlRmFjdG9yeSgpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmZXIgPSBkZWZlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25uZWN0YWJsZS5qcwp2YXIgcmVxdWlyZV9jb25uZWN0YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Nvbm5lY3RhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25uZWN0YWJsZSA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgdmFyIERFRkFVTFRfQ09ORklHID0gewogICAgICBjb25uZWN0b3I6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgfSwKICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IHRydWUKICAgIH07CiAgICBmdW5jdGlvbiBjb25uZWN0YWJsZShzb3VyY2UsIGNvbmZpZykgewogICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsKICAgICAgICBjb25maWcgPSBERUZBVUxUX0NPTkZJRzsKICAgICAgfQogICAgICB2YXIgY29ubmVjdGlvbiA9IG51bGw7CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yLCBfYSA9IGNvbmZpZy5yZXNldE9uRGlzY29ubmVjdCwgcmVzZXRPbkRpc2Nvbm5lY3QgPSBfYSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9hOwogICAgICB2YXIgc3ViamVjdCA9IGNvbm5lY3RvcigpOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgICByZXN1bHQuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICghY29ubmVjdGlvbiB8fCBjb25uZWN0aW9uLmNsb3NlZCkgewogICAgICAgICAgY29ubmVjdGlvbiA9IGRlZmVyXzEuZGVmZXIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgICB9KS5zdWJzY3JpYmUoc3ViamVjdCk7CiAgICAgICAgICBpZiAocmVzZXRPbkRpc2Nvbm5lY3QpIHsKICAgICAgICAgICAgY29ubmVjdGlvbi5hZGQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb25uZWN0aW9uOwogICAgICB9OwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdGFibGUgPSBjb25uZWN0YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mb3JrSm9pbi5qcwp2YXIgcmVxdWlyZV9mb3JrSm9pbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2ZvcmtKb2luLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mb3JrSm9pbiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgZnVuY3Rpb24gZm9ya0pvaW4oKSB7CiAgICAgIHZhciBhcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciByZXN1bHRTZWxlY3RvciA9IGFyZ3NfMS5wb3BSZXN1bHRTZWxlY3RvcihhcmdzKTsKICAgICAgdmFyIF9hID0gYXJnc0FyZ0FycmF5T3JPYmplY3RfMS5hcmdzQXJnQXJyYXlPck9iamVjdChhcmdzKSwgc291cmNlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7CiAgICAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgIHZhciByZW1haW5pbmdDb21wbGV0aW9ucyA9IGxlbmd0aDsKICAgICAgICB2YXIgcmVtYWluaW5nRW1pc3Npb25zID0gbGVuZ3RoOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzW3NvdXJjZUluZGV4Ml0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgICByZW1haW5pbmdFbWlzc2lvbnMtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YWx1ZXNbc291cmNlSW5kZXgyXSA9IHZhbHVlOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiByZW1haW5pbmdDb21wbGV0aW9ucy0tOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdDb21wbGV0aW9ucyB8fCAhaGFzVmFsdWUpIHsKICAgICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0VtaXNzaW9ucykgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGtleXMgPyBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKSA6IHZhbHVlcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgc291cmNlSW5kZXggPSAwOyBzb3VyY2VJbmRleCA8IGxlbmd0aDsgc291cmNlSW5kZXgrKykgewogICAgICAgICAgX2xvb3BfMShzb3VyY2VJbmRleCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmZvcmtKb2luID0gZm9ya0pvaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50LmpzCnZhciByZXF1aXJlX2Zyb21FdmVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tRXZlbnQgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNBcnJheUxpa2VfMSA9IHJlcXVpcmVfaXNBcnJheUxpa2UoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyA9IFsiYWRkTGlzdGVuZXIiLCAicmVtb3ZlTGlzdGVuZXIiXTsKICAgIHZhciBldmVudFRhcmdldE1ldGhvZHMgPSBbImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciJdOwogICAgdmFyIGpxdWVyeU1ldGhvZHMgPSBbIm9uIiwgIm9mZiJdOwogICAgZnVuY3Rpb24gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zLCByZXN1bHRTZWxlY3RvcikgewogICAgICBpZiAoaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob3B0aW9ucykpIHsKICAgICAgICByZXN1bHRTZWxlY3RvciA9IG9wdGlvbnM7CiAgICAgICAgb3B0aW9ucyA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAocmVzdWx0U2VsZWN0b3IpIHsKICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zKS5waXBlKG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHJlc3VsdFNlbGVjdG9yKSk7CiAgICAgIH0KICAgICAgdmFyIF9hID0gX19yZWFkKGlzRXZlbnRUYXJnZXQodGFyZ2V0KSA/IGV2ZW50VGFyZ2V0TWV0aG9kcy5tYXAoZnVuY3Rpb24obWV0aG9kTmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbihoYW5kbGVyKSB7CiAgICAgICAgICByZXR1cm4gdGFyZ2V0W21ldGhvZE5hbWVdKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7CiAgICAgICAgfTsKICAgICAgfSkgOiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpID8gbm9kZUV2ZW50RW1pdHRlck1ldGhvZHMubWFwKHRvQ29tbW9uSGFuZGxlclJlZ2lzdHJ5KHRhcmdldCwgZXZlbnROYW1lKSkgOiBpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyKHRhcmdldCkgPyBqcXVlcnlNZXRob2RzLm1hcCh0b0NvbW1vbkhhbmRsZXJSZWdpc3RyeSh0YXJnZXQsIGV2ZW50TmFtZSkpIDogW10sIDIpLCBhZGQgPSBfYVswXSwgcmVtb3ZlID0gX2FbMV07CiAgICAgIGlmICghYWRkKSB7CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UodGFyZ2V0KSkgewogICAgICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24oc3ViVGFyZ2V0KSB7CiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoc3ViVGFyZ2V0LCBldmVudE5hbWUsIG9wdGlvbnMpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHRhcmdldCkpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoIWFkZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5uZXh0KDEgPCBhcmdzLmxlbmd0aCA/IGFyZ3MgOiBhcmdzWzBdKTsKICAgICAgICB9OwogICAgICAgIGFkZChoYW5kbGVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlKGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUV2ZW50ID0gZnJvbUV2ZW50OwogICAgZnVuY3Rpb24gdG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oaGFuZGxlcikgewogICAgICAgICAgcmV0dXJuIHRhcmdldFttZXRob2ROYW1lXShldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRMaXN0ZW5lcikgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odGFyZ2V0LnJlbW92ZUxpc3RlbmVyKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQub24pICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5vZmYpOwogICAgfQogICAgZnVuY3Rpb24gaXNFdmVudFRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcwp2YXIgcmVxdWlyZV9mcm9tRXZlbnRQYXR0ZXJuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIGZ1bmN0aW9uIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlciwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlcikucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICB9CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZSA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgICAgZVtfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIubmV4dChlLmxlbmd0aCA9PT0gMSA/IGVbMF0gOiBlKTsKICAgICAgICB9OwogICAgICAgIHZhciByZXRWYWx1ZSA9IGFkZEhhbmRsZXIoaGFuZGxlcik7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlbW92ZUhhbmRsZXIpID8gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlSGFuZGxlcihoYW5kbGVyLCByZXRWYWx1ZSk7CiAgICAgICAgfSA6IHZvaWQgMDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tRXZlbnRQYXR0ZXJuID0gZnJvbUV2ZW50UGF0dGVybjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9nZW5lcmF0ZS5qcwp2YXIgcmVxdWlyZV9nZW5lcmF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2dlbmVyYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZ2VuZXJhdG9yID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19nZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgYm9keSkgewogICAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsKICAgICAgICByZXR1cm4gdFsxXTsKICAgICAgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZzsKICAgICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksICJ0aHJvdyI6IHZlcmIoMSksICJyZXR1cm4iOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9KSwgZzsKICAgICAgZnVuY3Rpb24gdmVyYihuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBzdGVwKFtuLCB2XSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKG9wKSB7CiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTsKICAgICAgICB3aGlsZSAoXykgdHJ5IHsKICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTsKICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICB5ID0gb3BbMV07CiAgICAgICAgICAgICAgb3AgPSBbMF07CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvcCA9IF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgewogICAgICAgICAgICAgICAgXyA9IDA7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCBvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IG9wWzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMV07CiAgICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzJdOwogICAgICAgICAgICAgICAgXy5vcHMucHVzaChvcCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIG9wID0gWzYsIGVdOwogICAgICAgICAgeSA9IDA7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGYgPSB0ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07CiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgICAgfQogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSB2b2lkIDA7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGRlZmVyXzEgPSByZXF1aXJlX2RlZmVyKCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZShpbml0aWFsU3RhdGVPck9wdGlvbnMsIGNvbmRpdGlvbiwgaXRlcmF0ZSwgcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlciwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciByZXN1bHRTZWxlY3RvcjsKICAgICAgdmFyIGluaXRpYWxTdGF0ZTsKICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgICAgICBfYSA9IGluaXRpYWxTdGF0ZU9yT3B0aW9ucywgaW5pdGlhbFN0YXRlID0gX2EuaW5pdGlhbFN0YXRlLCBjb25kaXRpb24gPSBfYS5jb25kaXRpb24sIGl0ZXJhdGUgPSBfYS5pdGVyYXRlLCBfYiA9IF9hLnJlc3VsdFNlbGVjdG9yLCByZXN1bHRTZWxlY3RvciA9IF9iID09PSB2b2lkIDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogX2IsIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVPck9wdGlvbnM7CiAgICAgICAgaWYgKCFyZXN1bHRTZWxlY3Rvck9yU2NoZWR1bGVyIHx8IGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gaWRlbnRpdHlfMS5pZGVudGl0eTsKICAgICAgICAgIHNjaGVkdWxlciA9IHJlc3VsdFNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2VuKCkgewogICAgICAgIHZhciBzdGF0ZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2EyKSB7CiAgICAgICAgICBzd2l0Y2ggKF9hMi5sYWJlbCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgc3RhdGUgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgICAgICAgX2EyLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGlmICghKCFjb25kaXRpb24gfHwgY29uZGl0aW9uKHN0YXRlKSkpIHJldHVybiBbMywgNF07CiAgICAgICAgICAgICAgcmV0dXJuIFs0LCByZXN1bHRTZWxlY3RvcihzdGF0ZSldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX2EyLnNlbnQoKTsKICAgICAgICAgICAgICBfYTIubGFiZWwgPSAzOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgc3RhdGUgPSBpdGVyYXRlKHN0YXRlKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFsyXTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZGVmZXJfMS5kZWZlcihzY2hlZHVsZXIgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVJdGVyYWJsZV8xLnNjaGVkdWxlSXRlcmFibGUoZ2VuKCksIHNjaGVkdWxlcik7CiAgICAgIH0gOiBnZW4pOwogICAgfQogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSBnZW5lcmF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9paWYuanMKdmFyIHJlcXVpcmVfaWlmID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaWlmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5paWYgPSB2b2lkIDA7CiAgICB2YXIgZGVmZXJfMSA9IHJlcXVpcmVfZGVmZXIoKTsKICAgIGZ1bmN0aW9uIGlpZihjb25kaXRpb24sIHRydWVSZXN1bHQsIGZhbHNlUmVzdWx0KSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBjb25kaXRpb24oKSA/IHRydWVSZXN1bHQgOiBmYWxzZVJlc3VsdDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5paWYgPSBpaWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdGltZXIuanMKdmFyIHJlcXVpcmVfdGltZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aW1lci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXIgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIGZ1bmN0aW9uIHRpbWVyKGR1ZVRpbWUsIGludGVydmFsT3JTY2hlZHVsZXIsIHNjaGVkdWxlcikgewogICAgICBpZiAoZHVlVGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZHVlVGltZSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luYzsKICAgICAgfQogICAgICB2YXIgaW50ZXJ2YWxEdXJhdGlvbiA9IC0xOwogICAgICBpZiAoaW50ZXJ2YWxPclNjaGVkdWxlciAhPSBudWxsKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIoaW50ZXJ2YWxPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHNjaGVkdWxlciA9IGludGVydmFsT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGludGVydmFsRHVyYXRpb24gPSBpbnRlcnZhbE9yU2NoZWR1bGVyOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgZHVlID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoZHVlVGltZSkgPyArZHVlVGltZSAtIHNjaGVkdWxlci5ub3coKSA6IGR1ZVRpbWU7CiAgICAgICAgaWYgKGR1ZSA8IDApIHsKICAgICAgICAgIGR1ZSA9IDA7CiAgICAgICAgfQogICAgICAgIHZhciBuID0gMDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobisrKTsKICAgICAgICAgICAgaWYgKDAgPD0gaW50ZXJ2YWxEdXJhdGlvbikgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUodm9pZCAwLCBpbnRlcnZhbER1cmF0aW9uKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBkdWUpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRpbWVyID0gdGltZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfaW50ZXJ2YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbnRlcnZhbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaW50ZXJ2YWwgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gaW50ZXJ2YWwocGVyaW9kLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHBlcmlvZCA9PT0gdm9pZCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICBpZiAoc2NoZWR1bGVyID09PSB2b2lkIDApIHsKICAgICAgICBzY2hlZHVsZXIgPSBhc3luY18xLmFzeW5jU2NoZWR1bGVyOwogICAgICB9CiAgICAgIGlmIChwZXJpb2QgPCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICByZXR1cm4gdGltZXJfMS50aW1lcihwZXJpb2QsIHBlcmlvZCwgc2NoZWR1bGVyKTsKICAgIH0KICAgIGV4cG9ydHMyLmludGVydmFsID0gaW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VBbGxfMSA9IHJlcXVpcmVfbWVyZ2VBbGwoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG1lcmdlMigpIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIoYXJncyk7CiAgICAgIHZhciBjb25jdXJyZW50ID0gYXJnc18xLnBvcE51bWJlcihhcmdzLCBJbmZpbml0eSk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnczsKICAgICAgcmV0dXJuICFzb3VyY2VzLmxlbmd0aCA/IGVtcHR5XzEuRU1QVFkgOiBzb3VyY2VzLmxlbmd0aCA9PT0gMSA/IGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzWzBdKSA6IG1lcmdlQWxsXzEubWVyZ2VBbGwoY29uY3VycmVudCkoZnJvbV8xLmZyb20oc291cmNlcywgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9uZXZlci5qcwp2YXIgcmVxdWlyZV9uZXZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL25ldmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLk5FVkVSID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZXhwb3J0czIuTkVWRVIgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUobm9vcF8xLm5vb3ApOwogICAgZnVuY3Rpb24gbmV2ZXIoKSB7CiAgICAgIHJldHVybiBleHBvcnRzMi5ORVZFUjsKICAgIH0KICAgIGV4cG9ydHMyLm5ldmVyID0gbmV2ZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJnc09yQXJnQXJyYXkuanMKdmFyIHJlcXVpcmVfYXJnc09yQXJnQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzT3JBcmdBcnJheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXJnc09yQXJnQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7CiAgICBmdW5jdGlvbiBhcmdzT3JBcmdBcnJheShhcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KGFyZ3NbMF0pID8gYXJnc1swXSA6IGFyZ3M7CiAgICB9CiAgICBleHBvcnRzMi5hcmdzT3JBcmdBcnJheSA9IGFyZ3NPckFyZ0FycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29uRXJyb3JSZXN1bWVOZXh0LmpzCnZhciByZXF1aXJlX29uRXJyb3JSZXN1bWVOZXh0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvb25FcnJvclJlc3VtZU5leHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0KCkgewogICAgICB2YXIgc291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIHNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgbmV4dFNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc291cmNlSW5kZXggPSAwOwogICAgICAgIHZhciBzdWJzY3JpYmVOZXh0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc291cmNlSW5kZXggPCBuZXh0U291cmNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIG5leHRTb3VyY2UgPSB2b2lkIDA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgbmV4dFNvdXJjZSA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShuZXh0U291cmNlc1tzb3VyY2VJbmRleCsrXSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgIHN1YnNjcmliZU5leHQoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG5ldyBPcGVyYXRvclN1YnNjcmliZXJfMS5PcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBub29wXzEubm9vcCwgbm9vcF8xLm5vb3ApOwogICAgICAgICAgICBuZXh0U291cmNlLnN1YnNjcmliZShpbm5lclN1YnNjcmliZXIpOwogICAgICAgICAgICBpbm5lclN1YnNjcmliZXIuYWRkKHN1YnNjcmliZU5leHQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlTmV4dCgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gb25FcnJvclJlc3VtZU5leHQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFpcnMuanMKdmFyIHJlcXVpcmVfcGFpcnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYWlycy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGFpcnMgPSB2b2lkIDA7CiAgICB2YXIgZnJvbV8xID0gcmVxdWlyZV9mcm9tKCk7CiAgICBmdW5jdGlvbiBwYWlyczIob2JqLCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKE9iamVjdC5lbnRyaWVzKG9iaiksIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5wYWlycyA9IHBhaXJzMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9ub3QuanMKdmFyIHJlcXVpcmVfbm90MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL25vdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm90ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gbm90KHByZWQsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAgIHJldHVybiAhcHJlZC5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5ub3QgPSBub3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMKdmFyIHJlcXVpcmVfZmlsdGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbHRlciA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaWx0ZXIocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gcHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4KyspICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbHRlciA9IGZpbHRlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYXJ0aXRpb24uanMKdmFyIHJlcXVpcmVfcGFydGl0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFydGl0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSB2b2lkIDA7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdDIoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gcGFydGl0aW9uKHNvdXJjZSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBbZmlsdGVyXzEuZmlsdGVyKHByZWRpY2F0ZSwgdGhpc0FyZykoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZSkpLCBmaWx0ZXJfMS5maWx0ZXIobm90XzEubm90KHByZWRpY2F0ZSwgdGhpc0FyZykpKGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpKV07CiAgICB9CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcwp2YXIgcmVxdWlyZV9yYWNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFjZUluaXQgPSBleHBvcnRzMi5yYWNlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJhY2UoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gc291cmNlcy5sZW5ndGggPT09IDEgPyBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1swXSkgOiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUocmFjZUluaXQoc291cmNlcykpOwogICAgfQogICAgZXhwb3J0czIucmFjZSA9IHJhY2U7CiAgICBmdW5jdGlvbiByYWNlSW5pdChzb3VyY2VzKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbnMgPSBbXTsKICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKGkyKSB7CiAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZXNbaTJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCBzdWJzY3JpcHRpb25zLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgICAgICBzICE9PSBpMiAmJiBzdWJzY3JpcHRpb25zW3NdLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9KSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IHN1YnNjcmlwdGlvbnMgJiYgIXN1YnNjcmliZXIuY2xvc2VkICYmIGkgPCBzb3VyY2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnJhY2VJbml0ID0gcmFjZUluaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFuZ2UuanMKdmFyIHJlcXVpcmVfcmFuZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9yYW5nZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFuZ2UgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBjb3VudCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChjb3VudCA9PSBudWxsKSB7CiAgICAgICAgY291bnQgPSBzdGFydDsKICAgICAgICBzdGFydCA9IDA7CiAgICAgIH0KICAgICAgaWYgKGNvdW50IDw9IDApIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfQogICAgICB2YXIgZW5kID0gY291bnQgKyBzdGFydDsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShzY2hlZHVsZXIgPyBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIG4gPSBzdGFydDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG4gPCBlbmQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSA6IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbiA9IHN0YXJ0OwogICAgICAgIHdoaWxlIChuIDwgZW5kICYmICFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgfQogICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5yYW5nZSA9IHJhbmdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nLmpzCnZhciByZXF1aXJlX3VzaW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdXNpbmcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnVzaW5nID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgZnVuY3Rpb24gdXNpbmcocmVzb3VyY2VGYWN0b3J5LCBvYnNlcnZhYmxlRmFjdG9yeSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgcmVzb3VyY2UgPSByZXNvdXJjZUZhY3RvcnkoKTsKICAgICAgICB2YXIgcmVzdWx0ID0gb2JzZXJ2YWJsZUZhY3RvcnkocmVzb3VyY2UpOwogICAgICAgIHZhciBzb3VyY2UgPSByZXN1bHQgPyBpbm5lckZyb21fMS5pbm5lckZyb20ocmVzdWx0KSA6IGVtcHR5XzEuRU1QVFk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAgICAgICAgcmVzb3VyY2UudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzaW5nID0gdXNpbmc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvemlwLmpzCnZhciByZXF1aXJlX3ppcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3ppcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuemlwID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgZnVuY3Rpb24gemlwKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKTsKICAgICAgcmV0dXJuIHNvdXJjZXMubGVuZ3RoID8gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IHNvdXJjZXMubWFwKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0pOwogICAgICAgIHZhciBjb21wbGV0ZWQgPSBzb3VyY2VzLm1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBjb21wbGV0ZWQgPSBudWxsOwogICAgICAgIH0pOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1tzb3VyY2VJbmRleDJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGJ1ZmZlcnNbc291cmNlSW5kZXgyXS5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuZXZlcnkoZnVuY3Rpb24oYnVmZmVyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7CiAgICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJ1ZmZlcnMubWFwKGZ1bmN0aW9uKGJ1ZmZlcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5zaGlmdCgpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHRTZWxlY3RvciA/IHJlc3VsdFNlbGVjdG9yLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHJlc3VsdCkpKSA6IHJlc3VsdCk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuc29tZShmdW5jdGlvbihidWZmZXIsIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhYnVmZmVyLmxlbmd0aCAmJiBjb21wbGV0ZWRbaV07CiAgICAgICAgICAgICAgfSkpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb21wbGV0ZWRbc291cmNlSW5kZXgyXSA9IHRydWU7CiAgICAgICAgICAgICFidWZmZXJzW3NvdXJjZUluZGV4Ml0ubGVuZ3RoICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHNvdXJjZUluZGV4ID0gMDsgIXN1YnNjcmliZXIuY2xvc2VkICYmIHNvdXJjZUluZGV4IDwgc291cmNlcy5sZW5ndGg7IHNvdXJjZUluZGV4KyspIHsKICAgICAgICAgIF9sb29wXzEoc291cmNlSW5kZXgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXJzID0gY29tcGxldGVkID0gbnVsbDsKICAgICAgICB9OwogICAgICB9KSA6IGVtcHR5XzEuRU1QVFk7CiAgICB9CiAgICBleHBvcnRzMi56aXAgPSB6aXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3R5cGVzLmpzCnZhciByZXF1aXJlX3R5cGVzMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC90eXBlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYXVkaXQuanMKdmFyIHJlcXVpcmVfYXVkaXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hdWRpdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gYXVkaXQoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICB2YXIgZW5kRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGlmICghZHVyYXRpb25TdWJzY3JpYmVyKSB7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmREdXJhdGlvbiwgY2xlYW51cER1cmF0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICghaGFzVmFsdWUgfHwgIWR1cmF0aW9uU3Vic2NyaWJlciB8fCBkdXJhdGlvblN1YnNjcmliZXIuY2xvc2VkKSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmF1ZGl0ID0gYXVkaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMKdmFyIHJlcXVpcmVfYXVkaXRUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmF1ZGl0VGltZSA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGF1ZGl0VGltZShkdXJhdGlvbiwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuYXVkaXRUaW1lID0gYXVkaXRUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXIgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcihjbG9zaW5nTm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjdXJyZW50QnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBjdXJyZW50QnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGN1cnJlbnRCdWZmZXIpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ05vdGlmaWVyKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGIgPSBjdXJyZW50QnVmZmVyOwogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IFtdOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGIpOwogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXIgPSBidWZmZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudC5qcwp2YXIgcmVxdWlyZV9idWZmZXJDb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyQ291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX192YWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3ZhbHVlcyB8fCBmdW5jdGlvbihvKSB7CiAgICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwOwogICAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTsKICAgICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07CiAgICAgICAgfQogICAgICB9OwogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyAiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iIDogIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICBmdW5jdGlvbiBidWZmZXJDb3VudChidWZmZXJTaXplLCBzdGFydEJ1ZmZlckV2ZXJ5KSB7CiAgICAgIGlmIChzdGFydEJ1ZmZlckV2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gbnVsbDsKICAgICAgfQogICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gc3RhcnRCdWZmZXJFdmVyeSAhPT0gbnVsbCAmJiBzdGFydEJ1ZmZlckV2ZXJ5ICE9PSB2b2lkIDAgPyBzdGFydEJ1ZmZlckV2ZXJ5IDogYnVmZmVyU2l6ZTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJzID0gW107CiAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgICB2YXIgdG9FbWl0ID0gbnVsbDsKICAgICAgICAgIGlmIChjb3VudCsrICUgc3RhcnRCdWZmZXJFdmVyeSA9PT0gMCkgewogICAgICAgICAgICBidWZmZXJzLnB1c2goW10pOwogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18xID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKTsgIWJ1ZmZlcnNfMV8xLmRvbmU7IGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdG9FbWl0ID0gdG9FbWl0ICE9PSBudWxsICYmIHRvRW1pdCAhPT0gdm9pZCAwID8gdG9FbWl0IDogW107CiAgICAgICAgICAgICAgICB0b0VtaXQucHVzaChidWZmZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9FbWl0KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdG9FbWl0XzEgPSBfX3ZhbHVlcyh0b0VtaXQpLCB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpOyAhdG9FbWl0XzFfMS5kb25lOyB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gdG9FbWl0XzFfMS52YWx1ZTsKICAgICAgICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJzLCBidWZmZXIpOwogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlXzJfMSkgewogICAgICAgICAgICAgIGVfMiA9IHsgZXJyb3I6IGVfMl8xIH07CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh0b0VtaXRfMV8xICYmICF0b0VtaXRfMV8xLmRvbmUgJiYgKF9iID0gdG9FbWl0XzEucmV0dXJuKSkgX2IuY2FsbCh0b0VtaXRfMSk7CiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzMsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18yID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKTsgIWJ1ZmZlcnNfMl8xLmRvbmU7IGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzJfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoYnVmZmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8zXzEpIHsKICAgICAgICAgICAgZV8zID0geyBlcnJvcjogZV8zXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMl8xICYmICFidWZmZXJzXzJfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMi5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMik7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMykgdGhyb3cgZV8zLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJDb3VudCA9IGJ1ZmZlckNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyVGltZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gYnVmZmVyVGltZShidWZmZXJUaW1lU3BhbikgewogICAgICB2YXIgX2EsIF9iOwogICAgICB2YXIgb3RoZXJBcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgb3RoZXJBcmdzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBzY2hlZHVsZXIgPSAoX2EgPSBhcmdzXzEucG9wU2NoZWR1bGVyKG90aGVyQXJncykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIHZhciBidWZmZXJDcmVhdGlvbkludGVydmFsID0gKF9iID0gb3RoZXJBcmdzWzBdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsOwogICAgICB2YXIgbWF4QnVmZmVyU2l6ZSA9IG90aGVyQXJnc1sxXSB8fCBJbmZpbml0eTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJSZWNvcmRzID0gW107CiAgICAgICAgdmFyIHJlc3RhcnRPbkVtaXQgPSBmYWxzZTsKICAgICAgICB2YXIgZW1pdCA9IGZ1bmN0aW9uKHJlY29yZCkgewogICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXIsIHN1YnMgPSByZWNvcmQuc3ViczsKICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJSZWNvcmRzLCByZWNvcmQpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICByZXN0YXJ0T25FbWl0ICYmIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgfTsKICAgICAgICB2YXIgc3RhcnRCdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChidWZmZXJSZWNvcmRzKSB7CiAgICAgICAgICAgIHZhciBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbigpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChzdWJzKTsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgIHN1YnMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnVmZmVyUmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVtaXQocmVjb3JkXzEpOwogICAgICAgICAgICB9LCBidWZmZXJUaW1lU3Bhbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBpZiAoYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCAhPT0gbnVsbCAmJiBidWZmZXJDcmVhdGlvbkludGVydmFsID49IDApIHsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIHN0YXJ0QnVmZmVyLCBidWZmZXJDcmVhdGlvbkludGVydmFsLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVzdGFydE9uRW1pdCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgdmFyIGJ1ZmZlclRpbWVTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTI7CiAgICAgICAgICB2YXIgcmVjb3Jkc0NvcHkgPSBidWZmZXJSZWNvcmRzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciByZWNvcmRzQ29weV8xID0gX192YWx1ZXMocmVjb3Jkc0NvcHkpLCByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKTsgIXJlY29yZHNDb3B5XzFfMS5kb25lOyByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzQ29weV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXI7CiAgICAgICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgICAgICAgIG1heEJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCAmJiBlbWl0KHJlY29yZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmIChyZWNvcmRzQ29weV8xXzEgJiYgIXJlY29yZHNDb3B5XzFfMS5kb25lICYmIChfYTIgPSByZWNvcmRzQ29weV8xLnJldHVybikpIF9hMi5jYWxsKHJlY29yZHNDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKGJ1ZmZlclJlY29yZHMgPT09IG51bGwgfHwgYnVmZmVyUmVjb3JkcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnVmZmVyUmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlclJlY29yZHMuc2hpZnQoKS5idWZmZXIpOwogICAgICAgICAgfQogICAgICAgICAgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IG51bGwgfHwgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1ZmZlclRpbWVTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXJSZWNvcmRzID0gbnVsbDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGJ1ZmZlclRpbWVTdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gYnVmZmVyVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlclRvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IFtdOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciBidWZmZXIgPSBbXTsKICAgICAgICAgIGJ1ZmZlcnMucHVzaChidWZmZXIpOwogICAgICAgICAgdmFyIGNsb3NpbmdTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgZW1pdEJ1ZmZlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUoYnVmZmVycywgYnVmZmVyKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH07CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaXB0aW9uLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZW1pdEJ1ZmZlciwgbm9vcF8xLm5vb3ApKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciBidWZmZXJzXzEgPSBfX3ZhbHVlcyhidWZmZXJzKSwgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpOyAhYnVmZmVyc18xXzEuZG9uZTsgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IGJ1ZmZlcnNfMV8xLnZhbHVlOwogICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoYnVmZmVycy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChidWZmZXJzLnNoaWZ0KCkpOwogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUb2dnbGUgPSBidWZmZXJUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJXaGVuLmpzCnZhciByZXF1aXJlX2J1ZmZlcldoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcldoZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gbnVsbDsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXIgPSBudWxsOwogICAgICAgIHZhciBvcGVuQnVmZmVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBjbG9zaW5nU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xvc2luZ1N1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBiID0gYnVmZmVyOwogICAgICAgICAgYnVmZmVyID0gW107CiAgICAgICAgICBiICYmIHN1YnNjcmliZXIubmV4dChiKTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShjbG9zaW5nU2VsZWN0b3IoKSkuc3Vic2NyaWJlKGNsb3NpbmdTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG9wZW5CdWZmZXIsIG5vb3BfMS5ub29wKSk7CiAgICAgICAgfTsKICAgICAgICBvcGVuQnVmZmVyKCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPT09IG51bGwgfHwgYnVmZmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgJiYgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPSBjbG9zaW5nU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSBidWZmZXJXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY2F0Y2hFcnJvci5qcwp2YXIgcmVxdWlyZV9jYXRjaEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jYXRjaEVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYXRjaEVycm9yID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiBjYXRjaEVycm9yKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWIgPSBudWxsOwogICAgICAgIHZhciBzeW5jVW5zdWIgPSBmYWxzZTsKICAgICAgICB2YXIgaGFuZGxlZFJlc3VsdDsKICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIGhhbmRsZWRSZXN1bHQgPSBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZXJyLCBjYXRjaEVycm9yKHNlbGVjdG9yKShzb3VyY2UpKSk7CiAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN5bmNVbnN1YiA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIGlmIChzeW5jVW5zdWIpIHsKICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2F0Y2hFcnJvciA9IGNhdGNoRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zY2FuSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX3NjYW5JbnRlcm5hbHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW5JbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjYW5JbnRlcm5hbHMgPSB2b2lkIDA7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgaGFzU2VlZCwgZW1pdE9uTmV4dCwgZW1pdEJlZm9yZUNvbXBsZXRlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaGFzU3RhdGUgPSBoYXNTZWVkOwogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGkgPSBpbmRleCsrOwogICAgICAgICAgc3RhdGUgPSBoYXNTdGF0ZSA/IGFjY3VtdWxhdG9yKHN0YXRlLCB2YWx1ZSwgaSkgOiAoaGFzU3RhdGUgPSB0cnVlLCB2YWx1ZSk7CiAgICAgICAgICBlbWl0T25OZXh0ICYmIHN1YnNjcmliZXIubmV4dChzdGF0ZSk7CiAgICAgICAgfSwgZW1pdEJlZm9yZUNvbXBsZXRlICYmIGZ1bmN0aW9uKCkgewogICAgICAgICAgaGFzU3RhdGUgJiYgc3Vic2NyaWJlci5uZXh0KHN0YXRlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5zY2FuSW50ZXJuYWxzID0gc2NhbkludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcwp2YXIgcmVxdWlyZV9yZWR1Y2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVkdWNlID0gdm9pZCAwOwogICAgdmFyIHNjYW5JbnRlcm5hbHNfMSA9IHJlcXVpcmVfc2NhbkludGVybmFscygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gcmVkdWNlKGFjY3VtdWxhdG9yLCBzZWVkKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShzY2FuSW50ZXJuYWxzXzEuc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCBmYWxzZSwgdHJ1ZSkpOwogICAgfQogICAgZXhwb3J0czIucmVkdWNlID0gcmVkdWNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdG9BcnJheS5qcwp2YXIgcmVxdWlyZV90b0FycmF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90b0FycmF5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50b0FycmF5ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBhcnJSZWR1Y2VyID0gZnVuY3Rpb24oYXJyLCB2YWx1ZSkgewogICAgICByZXR1cm4gYXJyLnB1c2godmFsdWUpLCBhcnI7CiAgICB9OwogICAgZnVuY3Rpb24gdG9BcnJheTIoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZWR1Y2VfMS5yZWR1Y2UoYXJyUmVkdWNlciwgW10pKHNvdXJjZSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRvQXJyYXkgPSB0b0FycmF5MjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2pvaW5BbGxJbnRlcm5hbHMuanMKdmFyIHJlcXVpcmVfam9pbkFsbEludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvam9pbkFsbEludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuam9pbkFsbEludGVybmFscyA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIG1hcE9uZU9yTWFueUFyZ3NfMSA9IHJlcXVpcmVfbWFwT25lT3JNYW55QXJncygpOwogICAgdmFyIHBpcGVfMSA9IHJlcXVpcmVfcGlwZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgZnVuY3Rpb24gam9pbkFsbEludGVybmFscyhqb2luRm4sIHByb2plY3QpIHsKICAgICAgcmV0dXJuIHBpcGVfMS5waXBlKHRvQXJyYXlfMTIudG9BcnJheSgpLCBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKHNvdXJjZXMpIHsKICAgICAgICByZXR1cm4gam9pbkZuKHNvdXJjZXMpOwogICAgICB9KSwgcHJvamVjdCA/IG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHByb2plY3QpIDogaWRlbnRpdHlfMS5pZGVudGl0eSk7CiAgICB9CiAgICBleHBvcnRzMi5qb2luQWxsSW50ZXJuYWxzID0gam9pbkFsbEludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdEFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUxhdGVzdEFsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IHZvaWQgMDsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIHZhciBqb2luQWxsSW50ZXJuYWxzXzEgPSByZXF1aXJlX2pvaW5BbGxJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QsIHByb2plY3QpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IGNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lQWxsLmpzCnZhciByZXF1aXJlX2NvbWJpbmVBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVBbGwgPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdEFsbF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0QWxsKCk7CiAgICBleHBvcnRzMi5jb21iaW5lQWxsID0gY29tYmluZUxhdGVzdEFsbF8xLmNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gdm9pZCAwOwogICAgdmFyIGNvbWJpbmVMYXRlc3RfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHJldHVybiByZXN1bHRTZWxlY3RvciA/IHBpcGVfMS5waXBlKGNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSwgbWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbWJpbmVMYXRlc3RfMS5jb21iaW5lTGF0ZXN0SW5pdChfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKSkpKShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gY29tYmluZUxhdGVzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RXaXRoLmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3RXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0V2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0MigpOwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJTb3VyY2VzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBjb21iaW5lTGF0ZXN0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcwp2YXIgcmVxdWlyZV9jb25jYXRNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBjb25jYXRNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSA/IG1lcmdlTWFwXzEubWVyZ2VNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IsIDEpIDogbWVyZ2VNYXBfMS5tZXJnZU1hcChwcm9qZWN0LCAxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcCA9IGNvbmNhdE1hcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcFRvLmpzCnZhciByZXF1aXJlX2NvbmNhdE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0TWFwXzEgPSByZXF1aXJlX2NvbmNhdE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gY29uY2F0TWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gY29uY2F0TWFwXzEuY29uY2F0TWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IGNvbmNhdE1hcF8xLmNvbmNhdE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gY29uY2F0TWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbmNhdEFsbF8xLmNvbmNhdEFsbCgpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb25jYXQgPSBjb25jYXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRXaXRoLmpzCnZhciByZXF1aXJlX2NvbmNhdFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdDIoKTsKICAgIGZ1bmN0aW9uIGNvbmNhdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSBjb25jYXRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMKdmFyIHJlcXVpcmVfZnJvbVN1YnNjcmliYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZyb21TdWJzY3JpYmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBmcm9tU3Vic2NyaWJhYmxlKHN1YnNjcmliYWJsZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJhYmxlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU3Vic2NyaWJhYmxlID0gZnJvbVN1YnNjcmliYWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QuanMKdmFyIHJlcXVpcmVfY29ubmVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29ubmVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29ubmVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgZnJvbVN1YnNjcmliYWJsZV8xID0gcmVxdWlyZV9mcm9tU3Vic2NyaWJhYmxlKCk7CiAgICB2YXIgREVGQVVMVF9DT05GSUcgPSB7CiAgICAgIGNvbm5lY3RvcjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gY29ubmVjdChzZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIGlmIChjb25maWcgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZyA9IERFRkFVTFRfQ09ORklHOwogICAgICB9CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZnJvbVN1YnNjcmliYWJsZV8xLmZyb21TdWJzY3JpYmFibGUoc3ViamVjdCkpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc291cmNlLnN1YnNjcmliZShzdWJqZWN0KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdCA9IGNvbm5lY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb3VudC5qcwp2YXIgcmVxdWlyZV9jb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvdW50ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIGZ1bmN0aW9uIGNvdW50KHByZWRpY2F0ZSkgewogICAgICByZXR1cm4gcmVkdWNlXzEucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB2YWx1ZSwgaSkgewogICAgICAgIHJldHVybiAhcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaSkgPyB0b3RhbCArIDEgOiB0b3RhbDsKICAgICAgfSwgMCk7CiAgICB9CiAgICBleHBvcnRzMi5jb3VudCA9IGNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2UuanMKdmFyIHJlcXVpcmVfZGVib3VuY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVib3VuY2UoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGVtaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZHVyYXRpb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbWl0LCBub29wXzEubm9vcCk7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb25TZWxlY3Rvcih2YWx1ZSkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXIpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IGRlYm91bmNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzCnZhciByZXF1aXJlX2RlYm91bmNlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWJvdW5jZVRpbWUoZHVlVGltZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFRpbWUgPSBudWxsOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSBudWxsOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUoKSB7CiAgICAgICAgICB2YXIgdGFyZ2V0VGltZSA9IGxhc3RUaW1lICsgZHVlVGltZTsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gdGhpcy5zY2hlZHVsZSh2b2lkIDAsIHRhcmdldFRpbWUgLSBub3cpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgZW1pdCgpOwogICAgICAgIH0KICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7CiAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTsKICAgICAgICAgIGlmICghYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVib3VuY2VUaW1lID0gZGVib3VuY2VUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVmYXVsdElmRW1wdHkuanMKdmFyIHJlcXVpcmVfZGVmYXVsdElmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlZmF1bHRJZkVtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWZhdWx0SWZFbXB0eShkZWZhdWx0VmFsdWUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGVmYXVsdFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdElmRW1wdHkgPSBkZWZhdWx0SWZFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2UuanMKdmFyIHJlcXVpcmVfdGFrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZSA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2UoY291bnQpIHsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgaWYgKCsrc2VlbiA8PSBjb3VudCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICBpZiAoY291bnQgPD0gc2VlbikgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlID0gdGFrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzLmpzCnZhciByZXF1aXJlX2lnbm9yZUVsZW1lbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pZ25vcmVFbGVtZW50cy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZnVuY3Rpb24gaWdub3JlRWxlbWVudHMoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlnbm9yZUVsZW1lbnRzID0gaWdub3JlRWxlbWVudHM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXBUby5qcwp2YXIgcmVxdWlyZV9tYXBUbyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcFRvID0gdm9pZCAwOwogICAgdmFyIG1hcF8xID0gcmVxdWlyZV9tYXAoKTsKICAgIGZ1bmN0aW9uIG1hcFRvKHZhbHVlKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hcFRvID0gbWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMKdmFyIHJlcXVpcmVfZGVsYXlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBjb25jYXRfMSA9IHJlcXVpcmVfY29uY2F0KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgaWdub3JlRWxlbWVudHNfMSA9IHJlcXVpcmVfaWdub3JlRWxlbWVudHMoKTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVsYXlXaGVuKGRlbGF5RHVyYXRpb25TZWxlY3Rvciwgc3Vic2NyaXB0aW9uRGVsYXkpIHsKICAgICAgaWYgKHN1YnNjcmlwdGlvbkRlbGF5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIGNvbmNhdF8xLmNvbmNhdChzdWJzY3JpcHRpb25EZWxheS5waXBlKHRha2VfMS50YWtlKDEpLCBpZ25vcmVFbGVtZW50c18xLmlnbm9yZUVsZW1lbnRzKCkpLCBzb3VyY2UucGlwZShkZWxheVdoZW4oZGVsYXlEdXJhdGlvblNlbGVjdG9yKSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShkZWxheUR1cmF0aW9uU2VsZWN0b3IodmFsdWUsIGluZGV4KSkucGlwZSh0YWtlXzEudGFrZSgxKSwgbWFwVG9fMS5tYXBUbyh2YWx1ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IGRlbGF5V2hlbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5LmpzCnZhciByZXF1aXJlX2RlbGF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVsYXkgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGRlbGF5KGR1ZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uID0gdGltZXJfMS50aW1lcihkdWUsIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGR1cmF0aW9uOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5ID0gZGVsYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZW1hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX2RlbWF0ZXJpYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbWF0ZXJpYWxpemUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGRlbWF0ZXJpYWxpemUoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihub3RpZmljYXRpb24pIHsKICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25fMS5vYnNlcnZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcik7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSBkZW1hdGVyaWFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3QuanMKdmFyIHJlcXVpcmVfZGlzdGluY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGlzdGluY3Qoa2V5U2VsZWN0b3IsIGZsdXNoZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBkaXN0aW5jdEtleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIga2V5ID0ga2V5U2VsZWN0b3IgPyBrZXlTZWxlY3Rvcih2YWx1ZSkgOiB2YWx1ZTsKICAgICAgICAgIGlmICghZGlzdGluY3RLZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgIGRpc3RpbmN0S2V5cy5hZGQoa2V5KTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgICAgZmx1c2hlcyAmJiBpbm5lckZyb21fMS5pbm5lckZyb20oZmx1c2hlcykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBkaXN0aW5jdEtleXMuY2xlYXIoKTsKICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0ID0gZGlzdGluY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZC5qcwp2YXIgcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbENoYW5nZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gdm9pZCAwOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQoY29tcGFyYXRvciwga2V5U2VsZWN0b3IpIHsKICAgICAgaWYgKGtleVNlbGVjdG9yID09PSB2b2lkIDApIHsKICAgICAgICBrZXlTZWxlY3RvciA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgIT09IG51bGwgJiYgY29tcGFyYXRvciAhPT0gdm9pZCAwID8gY29tcGFyYXRvciA6IGRlZmF1bHRDb21wYXJlOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXZpb3VzS2V5OwogICAgICAgIHZhciBmaXJzdCA9IHRydWU7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBjdXJyZW50S2V5ID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgaWYgKGZpcnN0IHx8ICFjb21wYXJhdG9yKHByZXZpb3VzS2V5LCBjdXJyZW50S2V5KSkgewogICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICBwcmV2aW91c0tleSA9IGN1cnJlbnRLZXk7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ7CiAgICBmdW5jdGlvbiBkZWZhdWx0Q29tcGFyZShhLCBiKSB7CiAgICAgIHJldHVybiBhID09PSBiOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbEtleUNoYW5nZWQuanMKdmFyIHJlcXVpcmVfZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IHZvaWQgMDsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoa2V5LCBjb21wYXJlKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkKGZ1bmN0aW9uKHgsIHkpIHsKICAgICAgICByZXR1cm4gY29tcGFyZSA/IGNvbXBhcmUoeFtrZXldLCB5W2tleV0pIDogeFtrZXldID09PSB5W2tleV07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcwp2YXIgcmVxdWlyZV90aHJvd0lmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRocm93SWZFbXB0eShlcnJvckZhY3RvcnkpIHsKICAgICAgaWYgKGVycm9yRmFjdG9yeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZXJyb3JGYWN0b3J5ID0gZGVmYXVsdEVycm9yRmFjdG9yeTsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaGFzVmFsdWUgPyBzdWJzY3JpYmVyLmNvbXBsZXRlKCkgOiBzdWJzY3JpYmVyLmVycm9yKGVycm9yRmFjdG9yeSgpKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdGhyb3dJZkVtcHR5OwogICAgZnVuY3Rpb24gZGVmYXVsdEVycm9yRmFjdG9yeSgpIHsKICAgICAgcmV0dXJuIG5ldyBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcigpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzCnZhciByZXF1aXJlX2VsZW1lbnRBdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSB2b2lkIDA7CiAgICB2YXIgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JfMSA9IHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGhyb3dJZkVtcHR5XzEgPSByZXF1aXJlX3Rocm93SWZFbXB0eSgpOwogICAgdmFyIGRlZmF1bHRJZkVtcHR5XzEgPSByZXF1aXJlX2RlZmF1bHRJZkVtcHR5KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICBmdW5jdGlvbiBlbGVtZW50QXQoaW5kZXgsIGRlZmF1bHRWYWx1ZSkgewogICAgICBpZiAoaW5kZXggPCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgfQogICAgICB2YXIgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcl8xLmZpbHRlcihmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICByZXR1cm4gaSA9PT0gaW5kZXg7CiAgICAgICAgfSksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSBlbGVtZW50QXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9lbmRXaXRoLmpzCnZhciByZXF1aXJlX2VuZFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2VuZFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVuZFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIG9mXzEgPSByZXF1aXJlX29mKCk7CiAgICBmdW5jdGlvbiBlbmRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25jYXRfMS5jb25jYXQoc291cmNlLCBvZl8xLm9mLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbmRXaXRoID0gZW5kV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5LmpzCnZhciByZXF1aXJlX2V2ZXJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9ldmVyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXZlcnkgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZXZlcnkocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpZiAoIXByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCsrLCBzb3VyY2UpKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXZlcnkgPSBldmVyeTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RNYXAuanMKdmFyIHJlcXVpcmVfZXhoYXVzdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGV4aGF1c3RNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgICByZXR1cm4gaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpLnBpcGUobWFwXzEubWFwKGZ1bmN0aW9uKGIsIGlpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yKGEsIGIsIGksIGlpKTsKICAgICAgICAgICAgfSkpOwogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgdmFyIGlubmVyU3ViID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKG91dGVyVmFsdWUpIHsKICAgICAgICAgIGlmICghaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdChvdXRlclZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKGlubmVyU3ViKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgIWlubmVyU3ViICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IGV4aGF1c3RNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsLmpzCnZhciByZXF1aXJlX2V4aGF1c3RBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSB2b2lkIDA7CiAgICB2YXIgZXhoYXVzdE1hcF8xID0gcmVxdWlyZV9leGhhdXN0TWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RBbGwoKSB7CiAgICAgIHJldHVybiBleGhhdXN0TWFwXzEuZXhoYXVzdE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSBleGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdC5qcwp2YXIgcmVxdWlyZV9leGhhdXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leGhhdXN0ID0gdm9pZCAwOwogICAgdmFyIGV4aGF1c3RBbGxfMSA9IHJlcXVpcmVfZXhoYXVzdEFsbCgpOwogICAgZXhwb3J0czIuZXhoYXVzdCA9IGV4aGF1c3RBbGxfMS5leGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzCnZhciByZXF1aXJlX2V4cGFuZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leHBhbmQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbWVyZ2VJbnRlcm5hbHNfMSA9IHJlcXVpcmVfbWVyZ2VJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGV4cGFuZChwcm9qZWN0LCBjb25jdXJyZW50LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICBjb25jdXJyZW50ID0gKGNvbmN1cnJlbnQgfHwgMCkgPCAxID8gSW5maW5pdHkgOiBjb25jdXJyZW50OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCB2b2lkIDAsIHRydWUsIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhwYW5kID0gZXhwYW5kOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUuanMKdmFyIHJlcXVpcmVfZmluYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpbmFsaXplLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIGZ1bmN0aW9uIGZpbmFsaXplKGNhbGxiYWNrKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgc3Vic2NyaWJlci5hZGQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IGZpbmFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZC5qcwp2YXIgcmVxdWlyZV9maW5kID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVGaW5kID0gZXhwb3J0czIuZmluZCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaW5kKHByZWRpY2F0ZSwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsICJ2YWx1ZSIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbmQgPSBmaW5kOwogICAgZnVuY3Rpb24gY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsIGVtaXQpIHsKICAgICAgdmFyIGZpbmRJbmRleCA9IGVtaXQgPT09ICJpbmRleCI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgaSA9IGluZGV4Kys7CiAgICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGksIHNvdXJjZSkpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZpbmRJbmRleCA/IGkgOiB2YWx1ZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyAtMSA6IHZvaWQgMCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlRmluZCA9IGNyZWF0ZUZpbmQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMKdmFyIHJlcXVpcmVfZmluZEluZGV4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbmRJbmRleCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBmaW5kXzEgPSByZXF1aXJlX2ZpbmQoKTsKICAgIGZ1bmN0aW9uIGZpbmRJbmRleChwcmVkaWNhdGUsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZpbmRfMS5jcmVhdGVGaW5kKHByZWRpY2F0ZSwgdGhpc0FyZywgImluZGV4IikpOwogICAgfQogICAgZXhwb3J0czIuZmluZEluZGV4ID0gZmluZEluZGV4OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QuanMKdmFyIHJlcXVpcmVfZmlyc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpcnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdCA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgZGVmYXVsdElmRW1wdHlfMSA9IHJlcXVpcmVfZGVmYXVsdElmRW1wdHkoKTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGZpcnN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuZmlyc3QgPSBmaXJzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2dyb3VwQnkuanMKdmFyIHJlcXVpcmVfZ3JvdXBCeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZ3JvdXBCeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ3JvdXBCeSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZ3JvdXBCeShrZXlTZWxlY3RvciwgZWxlbWVudE9yT3B0aW9ucywgZHVyYXRpb24sIGNvbm5lY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgaWYgKCFlbGVtZW50T3JPcHRpb25zIHx8IHR5cGVvZiBlbGVtZW50T3JPcHRpb25zID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9uczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZHVyYXRpb24gPSBlbGVtZW50T3JPcHRpb25zLmR1cmF0aW9uLCBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9ucy5lbGVtZW50LCBjb25uZWN0b3IgPSBlbGVtZW50T3JPcHRpb25zLmNvbm5lY3RvcjsKICAgICAgICB9CiAgICAgICAgdmFyIGdyb3VwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgdmFyIG5vdGlmeSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBncm91cHMuZm9yRWFjaChjYik7CiAgICAgICAgICBjYihzdWJzY3JpYmVyKTsKICAgICAgICB9OwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIG5vdGlmeShmdW5jdGlvbihjb25zdW1lcikgewogICAgICAgICAgICByZXR1cm4gY29uc3VtZXIuZXJyb3IoZXJyKTsKICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGFjdGl2ZUdyb3VwcyA9IDA7CiAgICAgICAgdmFyIHRlYXJkb3duQXR0ZW1wdGVkID0gZmFsc2U7CiAgICAgICAgdmFyIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyID0gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcl8xLk9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGtleV8xID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgICB2YXIgZ3JvdXBfMSA9IGdyb3Vwcy5nZXQoa2V5XzEpOwogICAgICAgICAgICBpZiAoIWdyb3VwXzEpIHsKICAgICAgICAgICAgICBncm91cHMuc2V0KGtleV8xLCBncm91cF8xID0gY29ubmVjdG9yID8gY29ubmVjdG9yKCkgOiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgICAgICAgdmFyIGdyb3VwZWQgPSBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXlfMSwgZ3JvdXBfMSk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGdyb3VwZWQpOwogICAgICAgICAgICAgIGlmIChkdXJhdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGdyb3VwXzEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBncm91cF8xLmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkdXJhdGlvblN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBzLmRlbGV0ZShrZXlfMSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb24oZ3JvdXBlZCkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXJfMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBncm91cF8xLm5leHQoZWxlbWVudCA/IGVsZW1lbnQodmFsdWUpIDogdmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbm90aWZ5KGZ1bmN0aW9uKGNvbnN1bWVyKSB7CiAgICAgICAgICAgIHJldHVybiBjb25zdW1lci5jb21wbGV0ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGdyb3Vwcy5jbGVhcigpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgdGVhcmRvd25BdHRlbXB0ZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGFjdGl2ZUdyb3VwcyA9PT0gMDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyKTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXksIGdyb3VwU3ViamVjdCkgewogICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihncm91cFN1YnNjcmliZXIpIHsKICAgICAgICAgICAgYWN0aXZlR3JvdXBzKys7CiAgICAgICAgICAgIHZhciBpbm5lclN1YiA9IGdyb3VwU3ViamVjdC5zdWJzY3JpYmUoZ3JvdXBTdWJzY3JpYmVyKTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgLS1hY3RpdmVHcm91cHMgPT09IDAgJiYgdGVhcmRvd25BdHRlbXB0ZWQgJiYgZ3JvdXBCeVNvdXJjZVN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmVzdWx0LmtleSA9IGtleTsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmdyb3VwQnkgPSBncm91cEJ5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eS5qcwp2YXIgcmVxdWlyZV9pc0VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pc0VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0VtcHR5ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGlzRW1wdHkoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJ1ZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzRW1wdHkgPSBpc0VtcHR5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZUxhc3QuanMKdmFyIHJlcXVpcmVfdGFrZUxhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2VMYXN0KGNvdW50KSB7CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgIGNvdW50IDwgYnVmZmVyLmxlbmd0aCAmJiBidWZmZXIuc2hpZnQoKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzEsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyXzEgPSBfX3ZhbHVlcyhidWZmZXIpLCBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpOyAhYnVmZmVyXzFfMS5kb25lOyBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYnVmZmVyXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICBlXzEgPSB7IGVycm9yOiBlXzFfMSB9OwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoYnVmZmVyXzFfMSAmJiAhYnVmZmVyXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcl8xLnJldHVybikpIF9hLmNhbGwoYnVmZmVyXzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHRha2VMYXN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbGFzdC5qcwp2YXIgcmVxdWlyZV9sYXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9sYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIHZhciB0YWtlTGFzdF8xID0gcmVxdWlyZV90YWtlTGFzdCgpOwogICAgdmFyIHRocm93SWZFbXB0eV8xID0gcmVxdWlyZV90aHJvd0lmRW1wdHkoKTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiBsYXN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VMYXN0XzEudGFrZUxhc3QoMSksIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5XzEuZGVmYXVsdElmRW1wdHkoZGVmYXVsdFZhbHVlKSA6IHRocm93SWZFbXB0eV8xLnRocm93SWZFbXB0eShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5sYXN0ID0gbGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX21hdGVyaWFsaXplID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hdGVyaWFsaXplKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlTmV4dCh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbi5jcmVhdGVDb21wbGV0ZSgpKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlRXJyb3IoZXJyKSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hdGVyaWFsaXplID0gbWF0ZXJpYWxpemU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMKdmFyIHJlcXVpcmVfbWF4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1heCA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtYXgoY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpID4gMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4ID4geSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1heCA9IG1heDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAuanMKdmFyIHJlcXVpcmVfZmxhdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmxhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IG1lcmdlTWFwXzEubWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcFRvLmpzCnZhciByZXF1aXJlX21lcmdlTWFwVG8gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VNYXBfMSA9IHJlcXVpcmVfbWVyZ2VNYXAoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIG1lcmdlTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgICAgfSwgcmVzdWx0U2VsZWN0b3IsIGNvbmN1cnJlbnQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIGNvbmN1cnJlbnQpOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VNYXBUbyA9IG1lcmdlTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMKdmFyIHJlcXVpcmVfbWVyZ2VTY2FuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlU2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBtZXJnZUludGVybmFsc18xID0gcmVxdWlyZV9tZXJnZUludGVybmFscygpOwogICAgZnVuY3Rpb24gbWVyZ2VTY2FuKGFjY3VtdWxhdG9yLCBzZWVkLCBjb25jdXJyZW50KSB7CiAgICAgIGlmIChjb25jdXJyZW50ID09PSB2b2lkIDApIHsKICAgICAgICBjb25jdXJyZW50ID0gSW5maW5pdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcihzdGF0ZSwgdmFsdWUsIGluZGV4KTsKICAgICAgICB9LCBjb25jdXJyZW50LCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3RhdGUgPSB2YWx1ZTsKICAgICAgICB9LCBmYWxzZSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdGF0ZSA9IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VTY2FuID0gbWVyZ2VTY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgYXJnc09yQXJnQXJyYXlfMSA9IHJlcXVpcmVfYXJnc09yQXJnQXJyYXkoKTsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gbWVyZ2UyKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIGNvbmN1cnJlbnQgPSBhcmdzXzEucG9wTnVtYmVyKGFyZ3MsIEluZmluaXR5KTsKICAgICAgYXJncyA9IGFyZ3NPckFyZ0FycmF5XzEuYXJnc09yQXJnQXJyYXkoYXJncyk7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBtZXJnZUFsbF8xLm1lcmdlQWxsKGNvbmN1cnJlbnQpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcwp2YXIgcmVxdWlyZV9tZXJnZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gdm9pZCAwOwogICAgdmFyIG1lcmdlXzEgPSByZXF1aXJlX21lcmdlMigpOwogICAgZnVuY3Rpb24gbWVyZ2VXaXRoMigpIHsKICAgICAgdmFyIG90aGVyU291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIG90aGVyU291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMKdmFyIHJlcXVpcmVfbWluID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1pbiA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtaW4oY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpIDwgMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4IDwgeSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1pbiA9IG1pbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcwp2YXIgcmVxdWlyZV9tdWx0aWNhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubXVsdGljYXN0ID0gdm9pZCAwOwogICAgdmFyIENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9Db25uZWN0YWJsZU9ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIGZ1bmN0aW9uIG11bHRpY2FzdChzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSwgc2VsZWN0b3IpIHsKICAgICAgdmFyIHN1YmplY3RGYWN0b3J5ID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc3ViamVjdE9yU3ViamVjdEZhY3RvcnkpID8gc3ViamVjdE9yU3ViamVjdEZhY3RvcnkgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc3ViamVjdE9yU3ViamVjdEZhY3Rvcnk7CiAgICAgIH07CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihzZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gY29ubmVjdF8xLmNvbm5lY3Qoc2VsZWN0b3IsIHsKICAgICAgICAgIGNvbm5lY3Rvcjogc3ViamVjdEZhY3RvcnkKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGUoc291cmNlLCBzdWJqZWN0RmFjdG9yeSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tdWx0aWNhc3QgPSBtdWx0aWNhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMKdmFyIHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHRXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgb25FcnJvclJlc3VtZU5leHRfMSA9IHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHQoKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0V2l0aCgpIHsKICAgICAgdmFyIHNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBzb3VyY2VzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIG5leHRTb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShzb3VyY2VzKTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbc291cmNlXSwgX19yZWFkKG5leHRTb3VyY2VzKSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gb25FcnJvclJlc3VtZU5leHRXaXRoOwogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHQgPSBvbkVycm9yUmVzdW1lTmV4dFdpdGg7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wYWlyd2lzZS5qcwp2YXIgcmVxdWlyZV9wYWlyd2lzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcGFpcndpc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhaXJ3aXNlID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHBhaXJ3aXNlKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXY7CiAgICAgICAgdmFyIGhhc1ByZXYgPSBmYWxzZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIHAgPSBwcmV2OwogICAgICAgICAgcHJldiA9IHZhbHVlOwogICAgICAgICAgaGFzUHJldiAmJiBzdWJzY3JpYmVyLm5leHQoW3AsIHZhbHVlXSk7CiAgICAgICAgICBoYXNQcmV2ID0gdHJ1ZTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGFpcndpc2UgPSBwYWlyd2lzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3BsdWNrLmpzCnZhciByZXF1aXJlX3BsdWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wbHVjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGx1Y2sgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgZnVuY3Rpb24gcGx1Y2soKSB7CiAgICAgIHZhciBwcm9wZXJ0aWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgcHJvcGVydGllc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBsZW5ndGggPSBwcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgaWYgKGxlbmd0aCA9PT0gMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigibGlzdCBvZiBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBlbXB0eS4iKTsKICAgICAgfQogICAgICByZXR1cm4gbWFwXzEubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICB2YXIgY3VycmVudFByb3AgPSB4OwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBwID0gY3VycmVudFByb3AgPT09IG51bGwgfHwgY3VycmVudFByb3AgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRQcm9wW3Byb3BlcnRpZXNbaV1dOwogICAgICAgICAgaWYgKHR5cGVvZiBwICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBjdXJyZW50UHJvcCA9IHA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY3VycmVudFByb3A7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGx1Y2sgPSBwbHVjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2guanMKdmFyIHJlcXVpcmVfcHVibGlzaCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBtdWx0aWNhc3RfMSA9IHJlcXVpcmVfbXVsdGljYXN0KCk7CiAgICB2YXIgY29ubmVjdF8xID0gcmVxdWlyZV9jb25uZWN0KCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBzZWxlY3RvciA/IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdChzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfSA6IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBtdWx0aWNhc3RfMS5tdWx0aWNhc3QobmV3IFN1YmplY3RfMS5TdWJqZWN0KCkpKHNvdXJjZSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoID0gcHVibGlzaDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaEJlaGF2aW9yID0gdm9pZCAwOwogICAgdmFyIEJlaGF2aW9yU3ViamVjdF8xID0gcmVxdWlyZV9CZWhhdmlvclN1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoQmVoYXZpb3IoaW5pdGlhbFZhbHVlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICB2YXIgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3QoaW5pdGlhbFZhbHVlKTsKICAgICAgICByZXR1cm4gbmV3IENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZShzb3VyY2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YmplY3Q7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoQmVoYXZpb3IgPSBwdWJsaXNoQmVoYXZpb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoTGFzdC5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoTGFzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaExhc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU3ViamVjdF8xID0gcmVxdWlyZV9Bc3luY1N1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoTGFzdCgpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlXzEuQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gc3ViamVjdDsKICAgICAgICB9KTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gcHVibGlzaExhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoUmVwbGF5LmpzCnZhciByZXF1aXJlX3B1Ymxpc2hSZXBsYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSB2b2lkIDA7CiAgICB2YXIgUmVwbGF5U3ViamVjdF8xID0gcmVxdWlyZV9SZXBsYXlTdWJqZWN0KCk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gcHVibGlzaFJlcGxheShidWZmZXJTaXplLCB3aW5kb3dUaW1lLCBzZWxlY3Rvck9yU2NoZWR1bGVyLCB0aW1lc3RhbXBQcm92aWRlcikgewogICAgICBpZiAoc2VsZWN0b3JPclNjaGVkdWxlciAmJiAhaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICB0aW1lc3RhbXBQcm92aWRlciA9IHNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIHNlbGVjdG9yID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikgPyBzZWxlY3Rvck9yU2NoZWR1bGVyIDogdm9pZCAwOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG11bHRpY2FzdF8xLm11bHRpY2FzdChuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIpLCBzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBwdWJsaXNoUmVwbGF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmFjZVdpdGguanMKdmFyIHJlcXVpcmVfcmFjZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JhY2VXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yYWNlV2l0aCA9IHZvaWQgMDsKICAgIHZhciByYWNlXzEgPSByZXF1aXJlX3JhY2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcmFjZVdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gIW90aGVyU291cmNlcy5sZW5ndGggPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmFjZV8xLnJhY2VJbml0KF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChvdGhlclNvdXJjZXMpKSkoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmFjZVdpdGggPSByYWNlV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcwp2YXIgcmVxdWlyZV9yZXBlYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVwZWF0ID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gcmVwZWF0Mihjb3VudE9yQ29uZmlnKSB7CiAgICAgIHZhciBfYTsKICAgICAgdmFyIGNvdW50ID0gSW5maW5pdHk7CiAgICAgIHZhciBkZWxheTsKICAgICAgaWYgKGNvdW50T3JDb25maWcgIT0gbnVsbCkgewogICAgICAgIGlmICh0eXBlb2YgY291bnRPckNvbmZpZyA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIF9hID0gY291bnRPckNvbmZpZy5jb3VudCwgY291bnQgPSBfYSA9PT0gdm9pZCAwID8gSW5maW5pdHkgOiBfYSwgZGVsYXkgPSBjb3VudE9yQ29uZmlnLmRlbGF5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb3VudCA9IGNvdW50T3JDb25maWc7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc29GYXIgPSAwOwogICAgICAgIHZhciBzb3VyY2VTdWI7CiAgICAgICAgdmFyIHJlc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzb3VyY2VTdWIgPT09IG51bGwgfHwgc291cmNlU3ViID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNvdXJjZVN1YiA9IG51bGw7CiAgICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCkgewogICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoc29GYXIpKTsKICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIG5vdGlmaWVyU3Vic2NyaWJlcl8xLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlVG9Tb3VyY2UoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG5vdGlmaWVyLnN1YnNjcmliZShub3RpZmllclN1YnNjcmliZXJfMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZVRvU291cmNlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBzb3VyY2VTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoKytzb0ZhciA8IGNvdW50KSB7CiAgICAgICAgICAgICAgaWYgKHNvdXJjZVN1YikgewogICAgICAgICAgICAgICAgcmVzdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Vuc3ViKSB7CiAgICAgICAgICAgIHJlc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdCA9IHJlcGVhdDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuLmpzCnZhciByZXF1aXJlX3JlcGVhdFdoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdFdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJlcGVhdFdoZW4obm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbm5lclN1YjsKICAgICAgICB2YXIgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgdmFyIGNvbXBsZXRpb25zJDsKICAgICAgICB2YXIgaXNOb3RpZmllckNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc01haW5Db21wbGV0ZSAmJiBpc05vdGlmaWVyQ29tcGxldGUgJiYgKHN1YnNjcmliZXIuY29tcGxldGUoKSwgdHJ1ZSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2V0Q29tcGxldGlvblN1YmplY3QgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghY29tcGxldGlvbnMkKSB7CiAgICAgICAgICAgIGNvbXBsZXRpb25zJCA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIoY29tcGxldGlvbnMkKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZUZvclJlcGVhdFdoZW4oKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Jlc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlzTm90aWZpZXJDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29tcGxldGlvbnMkOwogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJlcGVhdFdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgIWNoZWNrQ29tcGxldGUoKSAmJiBnZXRDb21wbGV0aW9uU3ViamVjdCgpLm5leHQoKTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIGlmIChzeW5jUmVzdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBzeW5jUmVzdWIgPSBmYWxzZTsKICAgICAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSByZXBlYXRXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnkuanMKdmFyIHJlcXVpcmVfcmV0cnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JldHJ5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXRyeSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHJldHJ5KGNvbmZpZ09yQ291bnQpIHsKICAgICAgaWYgKGNvbmZpZ09yQ291bnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZ09yQ291bnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICB2YXIgY29uZmlnOwogICAgICBpZiAoY29uZmlnT3JDb3VudCAmJiB0eXBlb2YgY29uZmlnT3JDb3VudCA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25maWcgPSBjb25maWdPckNvdW50OwogICAgICB9IGVsc2UgewogICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgIGNvdW50OiBjb25maWdPckNvdW50CiAgICAgICAgfTsKICAgICAgfQogICAgICB2YXIgX2EgPSBjb25maWcuY291bnQsIGNvdW50ID0gX2EgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2EsIGRlbGF5ID0gY29uZmlnLmRlbGF5LCBfYiA9IGNvbmZpZy5yZXNldE9uU3VjY2VzcywgcmVzZXRPblN1Y2Nlc3MgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYjsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHNvRmFyID0gMDsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJldHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChyZXNldE9uU3VjY2VzcykgewogICAgICAgICAgICAgIHNvRmFyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgaWYgKHNvRmFyKysgPCBjb3VudCkgewogICAgICAgICAgICAgIHZhciByZXN1Yl8xID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChkZWxheSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoZXJyLCBzb0ZhcikpOwogICAgICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBub3RpZmllclN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBub3RpZmllci5zdWJzY3JpYmUobm90aWZpZXJTdWJzY3JpYmVyXzEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgICAgaWYgKHN5bmNVbnN1YikgewogICAgICAgICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpOwogICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5KCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJldHJ5ID0gcmV0cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMKdmFyIHJlcXVpcmVfcmV0cnlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJldHJ5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gcmV0cnlXaGVuKG5vdGlmaWVyKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN5bmNSZXN1YiA9IGZhbHNlOwogICAgICAgIHZhciBlcnJvcnMkOwogICAgICAgIHZhciBzdWJzY3JpYmVGb3JSZXRyeVdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlubmVyU3ViID0gc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpZiAoIWVycm9ycyQpIHsKICAgICAgICAgICAgICBlcnJvcnMkID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKG5vdGlmaWVyKGVycm9ycyQpKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyU3ViID8gc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCkgOiBzeW5jUmVzdWIgPSB0cnVlOwogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZXJyb3JzJCkgewogICAgICAgICAgICAgIGVycm9ycyQubmV4dChlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Jlc3ViKSB7CiAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGlubmVyU3ViID0gbnVsbDsKICAgICAgICAgICAgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmV0cnlXaGVuID0gcmV0cnlXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzCnZhciByZXF1aXJlX3NhbXBsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNhbXBsZShub3RpZmllcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIHZhbHVlID0gbGFzdFZhbHVlOwogICAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2FtcGxlID0gc2FtcGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlVGltZS5qcwp2YXIgcmVxdWlyZV9zYW1wbGVUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgc2FtcGxlXzEgPSByZXF1aXJlX3NhbXBsZSgpOwogICAgdmFyIGludGVydmFsXzEgPSByZXF1aXJlX2ludGVydmFsKCk7CiAgICBmdW5jdGlvbiBzYW1wbGVUaW1lKHBlcmlvZCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZShpbnRlcnZhbF8xLmludGVydmFsKHBlcmlvZCwgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gc2FtcGxlVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBzY2FuSW50ZXJuYWxzXzEgPSByZXF1aXJlX3NjYW5JbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIHNjYW4oYWNjdW11bGF0b3IsIHNlZWQpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKHNjYW5JbnRlcm5hbHNfMS5zY2FuSW50ZXJuYWxzKGFjY3VtdWxhdG9yLCBzZWVkLCBhcmd1bWVudHMubGVuZ3RoID49IDIsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjYW4gPSBzY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2VxdWVuY2VFcXVhbC5qcwp2YXIgcmVxdWlyZV9zZXF1ZW5jZUVxdWFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zZXF1ZW5jZUVxdWFsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zZXF1ZW5jZUVxdWFsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBzZXF1ZW5jZUVxdWFsKGNvbXBhcmVUbywgY29tcGFyYXRvcikgewogICAgICBpZiAoY29tcGFyYXRvciA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29tcGFyYXRvciA9IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgIHJldHVybiBhID09PSBiOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBiU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oaXNFcXVhbCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGlzRXF1YWwpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIGNyZWF0ZVN1YnNjcmliZXIgPSBmdW5jdGlvbihzZWxmU3RhdGUsIG90aGVyU3RhdGUpIHsKICAgICAgICAgIHZhciBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihhKSB7CiAgICAgICAgICAgIHZhciBidWZmZXIgPSBvdGhlclN0YXRlLmJ1ZmZlciwgY29tcGxldGUgPSBvdGhlclN0YXRlLmNvbXBsZXRlOwogICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGNvbXBsZXRlID8gZW1pdChmYWxzZSkgOiBzZWxmU3RhdGUuYnVmZmVyLnB1c2goYSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIWNvbXBhcmF0b3IoYSwgYnVmZmVyLnNoaWZ0KCkpICYmIGVtaXQoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZlN0YXRlLmNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgdmFyIGNvbXBsZXRlID0gb3RoZXJTdGF0ZS5jb21wbGV0ZSwgYnVmZmVyID0gb3RoZXJTdGF0ZS5idWZmZXI7CiAgICAgICAgICAgIGNvbXBsZXRlICYmIGVtaXQoYnVmZmVyLmxlbmd0aCA9PT0gMCk7CiAgICAgICAgICAgIHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSBudWxsIHx8IHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gc2VxdWVuY2VFcXVhbFN1YnNjcmliZXI7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZVN1YnNjcmliZXIoYVN0YXRlLCBiU3RhdGUpKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY29tcGFyZVRvKS5zdWJzY3JpYmUoY3JlYXRlU3Vic2NyaWJlcihiU3RhdGUsIGFTdGF0ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNlcXVlbmNlRXF1YWwgPSBzZXF1ZW5jZUVxdWFsOwogICAgZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgYnVmZmVyOiBbXSwKICAgICAgICBjb21wbGV0ZTogZmFsc2UKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlLmpzCnZhciByZXF1aXJlX3NoYXJlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hhcmUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc2hhcmUob3B0aW9ucykgewogICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIHZhciBfYSA9IG9wdGlvbnMuY29ubmVjdG9yLCBjb25uZWN0b3IgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9IDogX2EsIF9iID0gb3B0aW9ucy5yZXNldE9uRXJyb3IsIHJlc2V0T25FcnJvciA9IF9iID09PSB2b2lkIDAgPyB0cnVlIDogX2IsIF9jID0gb3B0aW9ucy5yZXNldE9uQ29tcGxldGUsIHJlc2V0T25Db21wbGV0ZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gb3B0aW9ucy5yZXNldE9uUmVmQ291bnRaZXJvLCByZXNldE9uUmVmQ291bnRaZXJvID0gX2QgPT09IHZvaWQgMCA/IHRydWUgOiBfZDsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHdyYXBwZXJTb3VyY2UpIHsKICAgICAgICB2YXIgY29ubmVjdGlvbjsKICAgICAgICB2YXIgcmVzZXRDb25uZWN0aW9uOwogICAgICAgIHZhciBzdWJqZWN0OwogICAgICAgIHZhciByZWZDb3VudCA9IDA7CiAgICAgICAgdmFyIGhhc0NvbXBsZXRlZCA9IGZhbHNlOwogICAgICAgIHZhciBoYXNFcnJvcmVkID0gZmFsc2U7CiAgICAgICAgdmFyIGNhbmNlbFJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXNldENvbm5lY3Rpb24gPT09IG51bGwgfHwgcmVzZXRDb25uZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldENvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IHZvaWQgMDsKICAgICAgICB9OwogICAgICAgIHZhciByZXNldCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgIGNvbm5lY3Rpb24gPSBzdWJqZWN0ID0gdm9pZCAwOwogICAgICAgICAgaGFzQ29tcGxldGVkID0gaGFzRXJyb3JlZCA9IGZhbHNlOwogICAgICAgIH07CiAgICAgICAgdmFyIHJlc2V0QW5kVW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBjb25uID0gY29ubmVjdGlvbjsKICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICBjb25uID09PSBudWxsIHx8IGNvbm4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbm4udW5zdWJzY3JpYmUoKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICAgIHJlZkNvdW50Kys7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yZWQgJiYgIWhhc0NvbXBsZXRlZCkgewogICAgICAgICAgICBjYW5jZWxSZXNldCgpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlc3QgPSBzdWJqZWN0ID0gc3ViamVjdCAhPT0gbnVsbCAmJiBzdWJqZWN0ICE9PSB2b2lkIDAgPyBzdWJqZWN0IDogY29ubmVjdG9yKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmVmQ291bnQtLTsKICAgICAgICAgICAgaWYgKHJlZkNvdW50ID09PSAwICYmICFoYXNFcnJvcmVkICYmICFoYXNDb21wbGV0ZWQpIHsKICAgICAgICAgICAgICByZXNldENvbm5lY3Rpb24gPSBoYW5kbGVSZXNldChyZXNldEFuZFVuc3Vic2NyaWJlLCByZXNldE9uUmVmQ291bnRaZXJvKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBkZXN0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIGlmICghY29ubmVjdGlvbiAmJiByZWZDb3VudCA+IDApIHsKICAgICAgICAgICAgY29ubmVjdGlvbiA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIGhhc0Vycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uRXJyb3IsIGVycik7CiAgICAgICAgICAgICAgICBkZXN0LmVycm9yKGVycik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBoYXNDb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uQ29tcGxldGUpOwogICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpLnN1YnNjcmliZShjb25uZWN0aW9uKTsKICAgICAgICAgIH0KICAgICAgICB9KSh3cmFwcGVyU291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnNoYXJlID0gc2hhcmU7CiAgICBmdW5jdGlvbiBoYW5kbGVSZXNldChyZXNldCwgb24pIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gdHJ1ZSkgewogICAgICAgIHJlc2V0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gZmFsc2UpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIG9uU3Vic2NyaWJlciA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICByZXNldCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20ob24uYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSkuc3Vic2NyaWJlKG9uU3Vic2NyaWJlcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheS5qcwp2YXIgcmVxdWlyZV9zaGFyZVJlcGxheSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2hhcmVSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNoYXJlUmVwbGF5ID0gdm9pZCAwOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgdmFyIHNoYXJlXzEgPSByZXF1aXJlX3NoYXJlKCk7CiAgICBmdW5jdGlvbiBzaGFyZVJlcGxheShjb25maWdPckJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHNjaGVkdWxlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIGJ1ZmZlclNpemU7CiAgICAgIHZhciByZWZDb3VudCA9IGZhbHNlOwogICAgICBpZiAoY29uZmlnT3JCdWZmZXJTaXplICYmIHR5cGVvZiBjb25maWdPckJ1ZmZlclNpemUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgX2EgPSBjb25maWdPckJ1ZmZlclNpemUuYnVmZmVyU2l6ZSwgYnVmZmVyU2l6ZSA9IF9hID09PSB2b2lkIDAgPyBJbmZpbml0eSA6IF9hLCBfYiA9IGNvbmZpZ09yQnVmZmVyU2l6ZS53aW5kb3dUaW1lLCB3aW5kb3dUaW1lID0gX2IgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2IsIF9jID0gY29uZmlnT3JCdWZmZXJTaXplLnJlZkNvdW50LCByZWZDb3VudCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBzY2hlZHVsZXIgPSBjb25maWdPckJ1ZmZlclNpemUuc2NoZWR1bGVyOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZmZlclNpemUgPSBjb25maWdPckJ1ZmZlclNpemUgIT09IG51bGwgJiYgY29uZmlnT3JCdWZmZXJTaXplICE9PSB2b2lkIDAgPyBjb25maWdPckJ1ZmZlclNpemUgOiBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZSh7CiAgICAgICAgY29ubmVjdG9yOiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKTsKICAgICAgICB9LAogICAgICAgIHJlc2V0T25FcnJvcjogdHJ1ZSwKICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLAogICAgICAgIHJlc2V0T25SZWZDb3VudFplcm86IHJlZkNvdW50CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2hhcmVSZXBsYXkgPSBzaGFyZVJlcGxheTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcwp2YXIgcmVxdWlyZV9zaW5nbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2luZ2xlID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgdmFyIE5vdEZvdW5kRXJyb3JfMSA9IHJlcXVpcmVfTm90Rm91bmRFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNpbmdsZShwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHZhciBzaW5nbGVWYWx1ZTsKICAgICAgICB2YXIgc2VlblZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc2VlblZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKywgc291cmNlKSkgewogICAgICAgICAgICBoYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLmVycm9yKG5ldyBTZXF1ZW5jZUVycm9yXzEuU2VxdWVuY2VFcnJvcigiVG9vIG1hbnkgbWF0Y2hpbmcgdmFsdWVzIikpOwogICAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICAgIHNpbmdsZVZhbHVlID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHNpbmdsZVZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihzZWVuVmFsdWUgPyBuZXcgTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3IoIk5vIG1hdGNoaW5nIHZhbHVlcyIpIDogbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zaW5nbGUgPSBzaW5nbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwLmpzCnZhciByZXF1aXJlX3NraXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXAgPSB2b2lkIDA7CiAgICB2YXIgZmlsdGVyXzEgPSByZXF1aXJlX2ZpbHRlcigpOwogICAgZnVuY3Rpb24gc2tpcChjb3VudCkgewogICAgICByZXR1cm4gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKF8sIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGNvdW50IDw9IGluZGV4OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNraXAgPSBza2lwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcExhc3QuanMKdmFyIHJlcXVpcmVfc2tpcExhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5za2lwTGFzdCA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNraXBMYXN0KHNraXBDb3VudCkgewogICAgICByZXR1cm4gc2tpcENvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHJpbmcgPSBuZXcgQXJyYXkoc2tpcENvdW50KTsKICAgICAgICB2YXIgc2VlbiA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gc2VlbisrOwogICAgICAgICAgaWYgKHZhbHVlSW5kZXggPCBza2lwQ291bnQpIHsKICAgICAgICAgICAgcmluZ1t2YWx1ZUluZGV4XSA9IHZhbHVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGluZGV4ID0gdmFsdWVJbmRleCAlIHNraXBDb3VudDsKICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gcmluZ1tpbmRleF07CiAgICAgICAgICAgIHJpbmdbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChvbGRWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJpbmcgPSBudWxsOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcExhc3QgPSBza2lwTGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcwp2YXIgcmVxdWlyZV9za2lwVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2tpcFVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiBza2lwVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB0YWtpbmcgPSBmYWxzZTsKICAgICAgICB2YXIgc2tpcFN1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBza2lwU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBza2lwU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2tpcFN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRha2luZyA9IHRydWU7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKHNraXBTdWJzY3JpYmVyKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRha2luZyAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5za2lwVW50aWwgPSBza2lwVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMKdmFyIHJlcXVpcmVfc2tpcFdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXBXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBza2lwV2hpbGUocHJlZGljYXRlKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgdGFraW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuICh0YWtpbmcgfHwgKHRha2luZyA9ICFwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspKSkgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcFdoaWxlID0gc2tpcFdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzCnZhciByZXF1aXJlX3N0YXJ0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdGFydFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3RhcnRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIodmFsdWVzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIChzY2hlZHVsZXIgPyBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UsIHNjaGVkdWxlcikgOiBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc3RhcnRXaXRoID0gc3RhcnRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaE1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBjaGVja0NvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaXNDb21wbGV0ZSAmJiAhaW5uZXJTdWJzY3JpYmVyICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpbm5lclN1YnNjcmliZXIgPT09IG51bGwgfHwgaW5uZXJTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbm5lclN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBpbm5lckluZGV4ID0gMDsKICAgICAgICAgIHZhciBvdXRlckluZGV4ID0gaW5kZXgrKzsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShwcm9qZWN0KHZhbHVlLCBvdXRlckluZGV4KSkuc3Vic2NyaWJlKGlubmVyU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihpbm5lclZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQocmVzdWx0U2VsZWN0b3IgPyByZXN1bHRTZWxlY3Rvcih2YWx1ZSwgaW5uZXJWYWx1ZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCsrKSA6IGlubmVyVmFsdWUpOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSBzd2l0Y2hNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMKdmFyIHJlcXVpcmVfc3dpdGNoQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHZvaWQgMDsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaEFsbCgpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcF8xLnN3aXRjaE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHN3aXRjaEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc3dpdGNoTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gc3dpdGNoTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gc3dpdGNoTWFwXzEuc3dpdGNoTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IHN3aXRjaE1hcF8xLnN3aXRjaE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gc3dpdGNoTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuLmpzCnZhciByZXF1aXJlX3N3aXRjaFNjYW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaFNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaFNjYW4gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3dpdGNoU2NhbihhY2N1bXVsYXRvciwgc2VlZCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN0YXRlID0gc2VlZDsKICAgICAgICBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCk7CiAgICAgICAgfSwgZnVuY3Rpb24oXywgaW5uZXJWYWx1ZSkgewogICAgICAgICAgcmV0dXJuIHN0YXRlID0gaW5uZXJWYWx1ZSwgaW5uZXJWYWx1ZTsKICAgICAgICB9KShzb3VyY2UpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGF0ZSA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hTY2FuID0gc3dpdGNoU2NhbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcwp2YXIgcmVxdWlyZV90YWtlVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZVVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiB0YWtlVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICAhc3Vic2NyaWJlci5jbG9zZWQgJiYgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlVW50aWwgPSB0YWtlVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMKdmFyIHJlcXVpcmVfdGFrZVdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRha2VXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB0YWtlV2hpbGUocHJlZGljYXRlLCBpbmNsdXNpdmUpIHsKICAgICAgaWYgKGluY2x1c2l2ZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgaW5jbHVzaXZlID0gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspOwogICAgICAgICAgKHJlc3VsdCB8fCBpbmNsdXNpdmUpICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAhcmVzdWx0ICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGFrZVdoaWxlID0gdGFrZVdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzCnZhciByZXF1aXJlX3RhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YXAgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiB0YXAob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICB2YXIgdGFwT2JzZXJ2ZXIgPSBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgZXJyb3IgfHwgY29tcGxldGUgPyB7IG5leHQ6IG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUgfSA6IG9ic2VydmVyT3JOZXh0OwogICAgICByZXR1cm4gdGFwT2JzZXJ2ZXIgPyBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgKF9hID0gdGFwT2JzZXJ2ZXIuc3Vic2NyaWJlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgdmFyIGlzVW5zdWIgPSB0cnVlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIHZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgaXNVbnN1YiA9IGZhbHNlOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hMi5jYWxsKHRhcE9ic2VydmVyKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHZhciBfYTI7CiAgICAgICAgICBpc1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICAoX2EyID0gdGFwT2JzZXJ2ZXIuZXJyb3IpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyLCBfYjsKICAgICAgICAgIGlmIChpc1Vuc3ViKSB7CiAgICAgICAgICAgIChfYTIgPSB0YXBPYnNlcnZlci51bnN1YnNjcmliZSkgPT09IG51bGwgfHwgX2EyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYTIuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgICB9CiAgICAgICAgICAoX2IgPSB0YXBPYnNlcnZlci5maW5hbGl6ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGFwT2JzZXJ2ZXIpOwogICAgICAgIH0pKTsKICAgICAgfSkgOiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfQogICAgZXhwb3J0czIudGFwID0gdGFwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGUuanMKdmFyIHJlcXVpcmVfdGhyb3R0bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gdGhyb3R0bGUoZHVyYXRpb25TZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSBjb25maWcgIT09IG51bGwgJiYgY29uZmlnICE9PSB2b2lkIDAgPyBjb25maWcgOiB7fSwgX2IgPSBfYS5sZWFkaW5nLCBsZWFkaW5nID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBfYS50cmFpbGluZywgdHJhaWxpbmcgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYzsKICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICB2YXIgc2VuZFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBlbmRUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0aHJvdHRsZWQgPT09IG51bGwgfHwgdGhyb3R0bGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aHJvdHRsZWQudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRocm90dGxlZCA9IG51bGw7CiAgICAgICAgICBpZiAodHJhaWxpbmcpIHsKICAgICAgICAgICAgc2VuZCgpOwogICAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwVGhyb3R0bGluZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0VGhyb3R0bGUgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRocm90dGxlZCA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmRUaHJvdHRsaW5nLCBjbGVhbnVwVGhyb3R0bGluZykpOwogICAgICAgIH07CiAgICAgICAgdmFyIHNlbmQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBzZW5kVmFsdWU7CiAgICAgICAgICAgIHNlbmRWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICFpc0NvbXBsZXRlICYmIHN0YXJ0VGhyb3R0bGUodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHNlbmRWYWx1ZSA9IHZhbHVlOwogICAgICAgICAgISh0aHJvdHRsZWQgJiYgIXRocm90dGxlZC5jbG9zZWQpICYmIChsZWFkaW5nID8gc2VuZCgpIDogc3RhcnRUaHJvdHRsZSh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaXNDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAhKHRyYWlsaW5nICYmIGhhc1ZhbHVlICYmIHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHRocm90dGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzCnZhciByZXF1aXJlX3Rocm90dGxlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aHJvdHRsZV8xID0gcmVxdWlyZV90aHJvdHRsZSgpOwogICAgdmFyIHRpbWVyXzEgPSByZXF1aXJlX3RpbWVyKCk7CiAgICBmdW5jdGlvbiB0aHJvdHRsZVRpbWUoZHVyYXRpb24sIHNjaGVkdWxlciwgY29uZmlnKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uJCA9IHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiB0aHJvdHRsZV8xLnRocm90dGxlKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkdXJhdGlvbiQ7CiAgICAgIH0sIGNvbmZpZyk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB0aHJvdHRsZVRpbWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfdGltZUludGVydmFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRpbWVJbnRlcnZhbChzY2hlZHVsZXIpIHsKICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGxhc3QgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICB2YXIgaW50ZXJ2YWwgPSBub3cgLSBsYXN0OwogICAgICAgICAgbGFzdCA9IG5vdzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuZXcgVGltZUludGVydmFsKHZhbHVlLCBpbnRlcnZhbCkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aW1lSW50ZXJ2YWwgPSB0aW1lSW50ZXJ2YWw7CiAgICB2YXIgVGltZUludGVydmFsID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBUaW1lSW50ZXJ2YWwyKHZhbHVlLCBpbnRlcnZhbCkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7CiAgICAgIH0KICAgICAgcmV0dXJuIFRpbWVJbnRlcnZhbDI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5UaW1lSW50ZXJ2YWwgPSBUaW1lSW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lb3V0V2l0aC5qcwp2YXIgcmVxdWlyZV90aW1lb3V0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgaXNEYXRlXzEgPSByZXF1aXJlX2lzRGF0ZSgpOwogICAgdmFyIHRpbWVvdXRfMSA9IHJlcXVpcmVfdGltZW91dCgpOwogICAgZnVuY3Rpb24gdGltZW91dFdpdGgoZHVlLCB3aXRoT2JzZXJ2YWJsZSwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBmaXJzdDsKICAgICAgdmFyIGVhY2g7CiAgICAgIHZhciBfd2l0aDsKICAgICAgc2NoZWR1bGVyID0gc2NoZWR1bGVyICE9PSBudWxsICYmIHNjaGVkdWxlciAhPT0gdm9pZCAwID8gc2NoZWR1bGVyIDogYXN5bmNfMS5hc3luYzsKICAgICAgaWYgKGlzRGF0ZV8xLmlzVmFsaWREYXRlKGR1ZSkpIHsKICAgICAgICBmaXJzdCA9IGR1ZTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVlID09PSAibnVtYmVyIikgewogICAgICAgIGVhY2ggPSBkdWU7CiAgICAgIH0KICAgICAgaWYgKHdpdGhPYnNlcnZhYmxlKSB7CiAgICAgICAgX3dpdGggPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB3aXRoT2JzZXJ2YWJsZTsKICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG9ic2VydmFibGUgcHJvdmlkZWQgdG8gc3dpdGNoIHRvIik7CiAgICAgIH0KICAgICAgaWYgKGZpcnN0ID09IG51bGwgJiYgZWFjaCA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gdGltZW91dCBwcm92aWRlZC4iKTsKICAgICAgfQogICAgICByZXR1cm4gdGltZW91dF8xLnRpbWVvdXQoewogICAgICAgIGZpcnN0LAogICAgICAgIGVhY2gsCiAgICAgICAgc2NoZWR1bGVyLAogICAgICAgIHdpdGg6IF93aXRoCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dFdpdGggPSB0aW1lb3V0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcwp2YXIgcmVxdWlyZV90aW1lc3RhbXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXN0YW1wID0gdm9pZCAwOwogICAgdmFyIGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9kYXRlVGltZXN0YW1wUHJvdmlkZXIoKTsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICBmdW5jdGlvbiB0aW1lc3RhbXAyKHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIGlmICh0aW1lc3RhbXBQcm92aWRlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMS5kYXRlVGltZXN0YW1wUHJvdmlkZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB7IHZhbHVlLCB0aW1lc3RhbXA6IHRpbWVzdGFtcFByb3ZpZGVyLm5vdygpIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZXN0YW1wID0gdGltZXN0YW1wMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcwp2YXIgcmVxdWlyZV93aW5kb3cgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93ID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiB3aW5kb3cyKHdpbmRvd0JvdW5kYXJpZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB3aW5kb3dTdWJqZWN0ID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93U3ViamVjdCA9PT0gbnVsbCB8fCB3aW5kb3dTdWJqZWN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3dTdWJqZWN0Lm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIGVycm9ySGFuZGxlcikpOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbSh3aW5kb3dCb3VuZGFyaWVzKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3AsIGVycm9ySGFuZGxlcikpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QgPT09IG51bGwgfHwgd2luZG93U3ViamVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93U3ViamVjdC51bnN1YnNjcmliZSgpOwogICAgICAgICAgd2luZG93U3ViamVjdCA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3cgPSB3aW5kb3cyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93Q291bnQuanMKdmFyIHJlcXVpcmVfd2luZG93Q291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd0NvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi53aW5kb3dDb3VudCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dDb3VudCh3aW5kb3dTaXplLCBzdGFydFdpbmRvd0V2ZXJ5KSB7CiAgICAgIGlmIChzdGFydFdpbmRvd0V2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydFdpbmRvd0V2ZXJ5ID0gMDsKICAgICAgfQogICAgICB2YXIgc3RhcnRFdmVyeSA9IHN0YXJ0V2luZG93RXZlcnkgPiAwID8gc3RhcnRXaW5kb3dFdmVyeSA6IHdpbmRvd1NpemU7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtuZXcgU3ViamVjdF8xLlN1YmplY3QoKV07CiAgICAgICAgdmFyIHN0YXJ0cyA9IFtdOwogICAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd3NbMF0uYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAodmFyIHdpbmRvd3NfMSA9IF9fdmFsdWVzKHdpbmRvd3MpLCB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCk7ICF3aW5kb3dzXzFfMS5kb25lOyB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICB2YXIgd2luZG93XzEgPSB3aW5kb3dzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NfMV8xICYmICF3aW5kb3dzXzFfMS5kb25lICYmIChfYSA9IHdpbmRvd3NfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYyA9IGNvdW50IC0gd2luZG93U2l6ZSArIDE7CiAgICAgICAgICBpZiAoYyA+PSAwICYmIGMgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCsrY291bnQgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMiA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93XzIpOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQod2luZG93XzIuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKHdpbmRvd3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdoaWxlICh3aW5kb3dzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgd2luZG93cy5zaGlmdCgpLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGFydHMgPSBudWxsOwogICAgICAgICAgd2luZG93cyA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpbmRvd0NvdW50ID0gd2luZG93Q291bnQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUaW1lLmpzCnZhciByZXF1aXJlX3dpbmRvd1RpbWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1RpbWUgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dUaW1lKHdpbmRvd1RpbWVTcGFuKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciBvdGhlckFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlckFyZ3NbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IChfYSA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIob3RoZXJBcmdzKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgdmFyIHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgPSAoX2IgPSBvdGhlckFyZ3NbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7CiAgICAgIHZhciBtYXhXaW5kb3dTaXplID0gb3RoZXJBcmdzWzFdIHx8IEluZmluaXR5OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHdpbmRvd1JlY29yZHMgPSBbXTsKICAgICAgICB2YXIgcmVzdGFydE9uQ2xvc2UgPSBmYWxzZTsKICAgICAgICB2YXIgY2xvc2VXaW5kb3cgPSBmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gcmVjb3JkLndpbmRvdywgc3VicyA9IHJlY29yZC5zdWJzOwogICAgICAgICAgd2luZG93Mi5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vicy51bnN1YnNjcmliZSgpOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKHdpbmRvd1JlY29yZHMsIHJlY29yZCk7CiAgICAgICAgICByZXN0YXJ0T25DbG9zZSAmJiBzdGFydFdpbmRvdygpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0V2luZG93ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93UmVjb3JkcykgewogICAgICAgICAgICB2YXIgc3VicyA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoc3Vicyk7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgd2luZG93OiB3aW5kb3dfMSwKICAgICAgICAgICAgICBzdWJzLAogICAgICAgICAgICAgIHNlZW46IDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93UmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd18xLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGNsb3NlV2luZG93KHJlY29yZF8xKTsKICAgICAgICAgICAgfSwgd2luZG93VGltZVNwYW4pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaWYgKHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgd2luZG93Q3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7CiAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBzdGFydFdpbmRvdywgd2luZG93Q3JlYXRpb25JbnRlcnZhbCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3RhcnRPbkNsb3NlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3RhcnRXaW5kb3coKTsKICAgICAgICB2YXIgbG9vcCA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93UmVjb3Jkcy5zbGljZSgpLmZvckVhY2goY2IpOwogICAgICAgIH07CiAgICAgICAgdmFyIHRlcm1pbmF0ZSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBsb29wKGZ1bmN0aW9uKF9hMikgewogICAgICAgICAgICB2YXIgd2luZG93MiA9IF9hMi53aW5kb3c7CiAgICAgICAgICAgIHJldHVybiBjYih3aW5kb3cyKTsKICAgICAgICAgIH0pOwogICAgICAgICAgY2Ioc3Vic2NyaWJlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbG9vcChmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgICAgcmVjb3JkLndpbmRvdy5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgbWF4V2luZG93U2l6ZSA8PSArK3JlY29yZC5zZWVuICYmIGNsb3NlV2luZG93KHJlY29yZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmNvbXBsZXRlKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmVycm9yKGVycik7CiAgICAgICAgICB9KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93UmVjb3JkcyA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUaW1lID0gd2luZG93VGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcwp2YXIgcmVxdWlyZV93aW5kb3dUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93VG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1RvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtdOwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93Mik7CiAgICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgIHZhciBjbG9zZVdpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUod2luZG93cywgd2luZG93Mik7CiAgICAgICAgICAgIHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgICAgY2xvc2luZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24uYWRkKGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGNsb3NlV2luZG93LCBub29wXzEubm9vcCwgaGFuZGxlRXJyb3IpKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB2YXIgd2luZG93c0NvcHkgPSB3aW5kb3dzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciB3aW5kb3dzQ29weV8xID0gX192YWx1ZXMod2luZG93c0NvcHkpLCB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKTsgIXdpbmRvd3NDb3B5XzFfMS5kb25lOyB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IHdpbmRvd3NDb3B5XzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NDb3B5XzFfMSAmJiAhd2luZG93c0NvcHlfMV8xLmRvbmUgJiYgKF9hID0gd2luZG93c0NvcHlfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBoYW5kbGVFcnJvciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoMCA8IHdpbmRvd3MubGVuZ3RoKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUb2dnbGUgPSB3aW5kb3dUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dXaGVuLmpzCnZhciByZXF1aXJlX3dpbmRvd1doZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1doZW4gPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1doZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93MjsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXI7CiAgICAgICAgdmFyIGhhbmRsZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICB3aW5kb3cyLmVycm9yKGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfTsKICAgICAgICB2YXIgb3BlbldpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID09PSBudWxsIHx8IHdpbmRvdzIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgIHdpbmRvdzIgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKCkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoY2xvc2luZ1N1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgb3BlbldpbmRvdywgb3BlbldpbmRvdywgaGFuZGxlRXJyb3IpKTsKICAgICAgICB9OwogICAgICAgIG9wZW5XaW5kb3coKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHdpbmRvdzIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aW5kb3cyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIud2luZG93V2hlbiA9IHdpbmRvd1doZW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aXRoTGF0ZXN0RnJvbS5qcwp2YXIgcmVxdWlyZV93aXRoTGF0ZXN0RnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2l0aExhdGVzdEZyb20uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIGZ1bmN0aW9uIHdpdGhMYXRlc3RGcm9tKCkgewogICAgICB2YXIgaW5wdXRzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgaW5wdXRzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHByb2plY3QgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoaW5wdXRzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBsZW4gPSBpbnB1dHMubGVuZ3RoOwogICAgICAgIHZhciBvdGhlclZhbHVlcyA9IG5ldyBBcnJheShsZW4pOwogICAgICAgIHZhciBoYXNWYWx1ZSA9IGlucHV0cy5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHJlYWR5ID0gZmFsc2U7CiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbihpMikgewogICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKGlucHV0c1tpMl0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgb3RoZXJWYWx1ZXNbaTJdID0gdmFsdWU7CiAgICAgICAgICAgIGlmICghcmVhZHkgJiYgIWhhc1ZhbHVlW2kyXSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlW2kyXSA9IHRydWU7CiAgICAgICAgICAgICAgKHJlYWR5ID0gaGFzVmFsdWUuZXZlcnkoaWRlbnRpdHlfMS5pZGVudGl0eSkpICYmIChoYXNWYWx1ZSA9IG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgX2xvb3BfMShpKTsKICAgICAgICB9CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmIChyZWFkeSkgewogICAgICAgICAgICB2YXIgdmFsdWVzID0gX19zcHJlYWRBcnJheShbdmFsdWVdLCBfX3JlYWQob3RoZXJWYWx1ZXMpKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QgPyBwcm9qZWN0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSA6IHZhbHVlcyk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gd2l0aExhdGVzdEZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMKdmFyIHJlcXVpcmVfemlwQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcEFsbCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgam9pbkFsbEludGVybmFsc18xID0gcmVxdWlyZV9qb2luQWxsSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiB6aXBBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoemlwXzEuemlwLCBwcm9qZWN0KTsKICAgIH0KICAgIGV4cG9ydHMyLnppcEFsbCA9IHppcEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3ppcC5qcwp2YXIgcmVxdWlyZV96aXAyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiB6aXAoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoc291cmNlcykpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuemlwID0gemlwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvemlwV2l0aC5qcwp2YXIgcmVxdWlyZV96aXBXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi56aXBXaXRoID0gdm9pZCAwOwogICAgdmFyIHppcF8xID0gcmVxdWlyZV96aXAyKCk7CiAgICBmdW5jdGlvbiB6aXBXaXRoKCkgewogICAgICB2YXIgb3RoZXJJbnB1dHMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlcklucHV0c1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJJbnB1dHMpKSk7CiAgICB9CiAgICBleHBvcnRzMi56aXBXaXRoID0gemlwV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW5kZXguanMKdmFyIHJlcXVpcmVfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBtW2tdOwogICAgICB9IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbCA9IGV4cG9ydHMyLmlpZiA9IGV4cG9ydHMyLmdlbmVyYXRlID0gZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IGV4cG9ydHMyLmZyb21FdmVudCA9IGV4cG9ydHMyLmZyb20gPSBleHBvcnRzMi5mb3JrSm9pbiA9IGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuZGVmZXIgPSBleHBvcnRzMi5jb25uZWN0YWJsZSA9IGV4cG9ydHMyLmNvbmNhdCA9IGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gZXhwb3J0czIuYmluZENhbGxiYWNrID0gZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGV4cG9ydHMyLlNlcXVlbmNlRXJyb3IgPSBleHBvcnRzMi5PYmplY3RVbnN1YnNjcmliZWRFcnJvciA9IGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBleHBvcnRzMi5FbXB0eUVycm9yID0gZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IGV4cG9ydHMyLmxhc3RWYWx1ZUZyb20gPSBleHBvcnRzMi5pc09ic2VydmFibGUgPSBleHBvcnRzMi5pZGVudGl0eSA9IGV4cG9ydHMyLm5vb3AgPSBleHBvcnRzMi5waXBlID0gZXhwb3J0czIuTm90aWZpY2F0aW9uS2luZCA9IGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLlN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpcHRpb24gPSBleHBvcnRzMi5TY2hlZHVsZXIgPSBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBleHBvcnRzMi5xdWV1ZSA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gZXhwb3J0czIuYXN5bmMgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IGV4cG9ydHMyLlJlcGxheVN1YmplY3QgPSBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBleHBvcnRzMi5TdWJqZWN0ID0gZXhwb3J0czIuYW5pbWF0aW9uRnJhbWVzID0gZXhwb3J0czIub2JzZXJ2YWJsZSA9IGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IGV4cG9ydHMyLk9ic2VydmFibGUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi5maWx0ZXIgPSBleHBvcnRzMi5leHBhbmQgPSBleHBvcnRzMi5leGhhdXN0TWFwID0gZXhwb3J0czIuZXhoYXVzdEFsbCA9IGV4cG9ydHMyLmV4aGF1c3QgPSBleHBvcnRzMi5ldmVyeSA9IGV4cG9ydHMyLmVuZFdpdGggPSBleHBvcnRzMi5lbGVtZW50QXQgPSBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZXhwb3J0czIuZGlzdGluY3QgPSBleHBvcnRzMi5kZW1hdGVyaWFsaXplID0gZXhwb3J0czIuZGVsYXlXaGVuID0gZXhwb3J0czIuZGVsYXkgPSBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IGV4cG9ydHMyLmRlYm91bmNlVGltZSA9IGV4cG9ydHMyLmRlYm91bmNlID0gZXhwb3J0czIuY291bnQgPSBleHBvcnRzMi5jb25uZWN0ID0gZXhwb3J0czIuY29uY2F0V2l0aCA9IGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gZXhwb3J0czIuY29uY2F0TWFwID0gZXhwb3J0czIuY29uY2F0QWxsID0gZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBleHBvcnRzMi5jb21iaW5lTGF0ZXN0QWxsID0gZXhwb3J0czIuY29tYmluZUFsbCA9IGV4cG9ydHMyLmNhdGNoRXJyb3IgPSBleHBvcnRzMi5idWZmZXJXaGVuID0gZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gZXhwb3J0czIuYnVmZmVyVGltZSA9IGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gZXhwb3J0czIuYnVmZmVyID0gZXhwb3J0czIuYXVkaXRUaW1lID0gZXhwb3J0czIuYXVkaXQgPSBleHBvcnRzMi5jb25maWcgPSBleHBvcnRzMi5ORVZFUiA9IGV4cG9ydHMyLkVNUFRZID0gZXhwb3J0czIuc2NoZWR1bGVkID0gZXhwb3J0czIuemlwID0gZXhwb3J0czIudXNpbmcgPSBleHBvcnRzMi50aW1lciA9IGV4cG9ydHMyLnRocm93RXJyb3IgPSBleHBvcnRzMi5yYW5nZSA9IGV4cG9ydHMyLnJhY2UgPSBleHBvcnRzMi5wYXJ0aXRpb24gPSBleHBvcnRzMi5wYWlycyA9IGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub2YgPSBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLm1lcmdlID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3dpdGNoTWFwID0gZXhwb3J0czIuc3dpdGNoQWxsID0gZXhwb3J0czIuc3Vic2NyaWJlT24gPSBleHBvcnRzMi5zdGFydFdpdGggPSBleHBvcnRzMi5za2lwV2hpbGUgPSBleHBvcnRzMi5za2lwVW50aWwgPSBleHBvcnRzMi5za2lwTGFzdCA9IGV4cG9ydHMyLnNraXAgPSBleHBvcnRzMi5zaW5nbGUgPSBleHBvcnRzMi5zaGFyZVJlcGxheSA9IGV4cG9ydHMyLnNoYXJlID0gZXhwb3J0czIuc2VxdWVuY2VFcXVhbCA9IGV4cG9ydHMyLnNjYW4gPSBleHBvcnRzMi5zYW1wbGVUaW1lID0gZXhwb3J0czIuc2FtcGxlID0gZXhwb3J0czIucmVmQ291bnQgPSBleHBvcnRzMi5yZXRyeVdoZW4gPSBleHBvcnRzMi5yZXRyeSA9IGV4cG9ydHMyLnJlcGVhdFdoZW4gPSBleHBvcnRzMi5yZXBlYXQgPSBleHBvcnRzMi5yZWR1Y2UgPSBleHBvcnRzMi5yYWNlV2l0aCA9IGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBleHBvcnRzMi5wdWJsaXNoTGFzdCA9IGV4cG9ydHMyLnB1Ymxpc2hCZWhhdmlvciA9IGV4cG9ydHMyLnB1Ymxpc2ggPSBleHBvcnRzMi5wbHVjayA9IGV4cG9ydHMyLnBhaXJ3aXNlID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gZXhwb3J0czIub2JzZXJ2ZU9uID0gZXhwb3J0czIubXVsdGljYXN0ID0gZXhwb3J0czIubWluID0gZXhwb3J0czIubWVyZ2VXaXRoID0gZXhwb3J0czIubWVyZ2VTY2FuID0gZXhwb3J0czIubWVyZ2VNYXBUbyA9IGV4cG9ydHMyLm1lcmdlTWFwID0gZXhwb3J0czIuZmxhdE1hcCA9IGV4cG9ydHMyLm1lcmdlQWxsID0gZXhwb3J0czIubWF4ID0gZXhwb3J0czIubWF0ZXJpYWxpemUgPSBleHBvcnRzMi5tYXBUbyA9IGV4cG9ydHMyLm1hcCA9IGV4cG9ydHMyLmxhc3QgPSBleHBvcnRzMi5pc0VtcHR5ID0gZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSBleHBvcnRzMi5ncm91cEJ5ID0gZXhwb3J0czIuZmlyc3QgPSBleHBvcnRzMi5maW5kSW5kZXggPSBleHBvcnRzMi5maW5kID0gZXhwb3J0czIuZmluYWxpemUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi56aXBXaXRoID0gZXhwb3J0czIuemlwQWxsID0gZXhwb3J0czIud2l0aExhdGVzdEZyb20gPSBleHBvcnRzMi53aW5kb3dXaGVuID0gZXhwb3J0czIud2luZG93VG9nZ2xlID0gZXhwb3J0czIud2luZG93VGltZSA9IGV4cG9ydHMyLndpbmRvd0NvdW50ID0gZXhwb3J0czIud2luZG93ID0gZXhwb3J0czIudG9BcnJheSA9IGV4cG9ydHMyLnRpbWVzdGFtcCA9IGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRocm93SWZFbXB0eSA9IGV4cG9ydHMyLnRocm90dGxlVGltZSA9IGV4cG9ydHMyLnRocm90dGxlID0gZXhwb3J0czIudGFwID0gZXhwb3J0czIudGFrZVdoaWxlID0gZXhwb3J0czIudGFrZVVudGlsID0gZXhwb3J0czIudGFrZUxhc3QgPSBleHBvcnRzMi50YWtlID0gZXhwb3J0czIuc3dpdGNoU2NhbiA9IGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiT2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9ic2VydmFibGVfMS5PYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb25uZWN0YWJsZU9ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9ic2VydmFibGVfMS5vYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZXNfMSA9IHJlcXVpcmVfYW5pbWF0aW9uRnJhbWVzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhbmltYXRpb25GcmFtZXMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZXNfMS5hbmltYXRpb25GcmFtZXM7CiAgICB9IH0pOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YmplY3RfMS5TdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBCZWhhdmlvclN1YmplY3RfMSA9IHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJCZWhhdmlvclN1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiUmVwbGF5U3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFJlcGxheVN1YmplY3RfMS5SZXBsYXlTdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBBc3luY1N1YmplY3RfMSA9IHJlcXVpcmVfQXN5bmNTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJBc3luY1N1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBc3luY1N1YmplY3RfMS5Bc3luY1N1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIGFzYXBfMSA9IHJlcXVpcmVfYXNhcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYXNhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzYXBfMS5hc2FwOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzYXBTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhc2FwXzEuYXNhcFNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzeW5jIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYXN5bmNfMS5hc3luYzsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhc3luY1NjaGVkdWxlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIHF1ZXVlXzEgPSByZXF1aXJlX3F1ZXVlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJxdWV1ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHF1ZXVlXzEucXVldWU7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicXVldWVTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBxdWV1ZV8xLnF1ZXVlU2NoZWR1bGVyOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZV8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYW5pbWF0aW9uRnJhbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZV8xLmFuaW1hdGlvbkZyYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYW5pbWF0aW9uRnJhbWVfMS5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgVmlydHVhbFRpbWVTY2hlZHVsZXJfMSA9IHJlcXVpcmVfVmlydHVhbFRpbWVTY2hlZHVsZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsVGltZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWaXJ0dWFsQWN0aW9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsQWN0aW9uOwogICAgfSB9KTsKICAgIHZhciBTY2hlZHVsZXJfMSA9IHJlcXVpcmVfU2NoZWR1bGVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBTY2hlZHVsZXJfMS5TY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlN1YnNjcmlwdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbjsKICAgIH0gfSk7CiAgICB2YXIgU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9TdWJzY3JpYmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTdWJzY3JpYmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gU3Vic2NyaWJlcl8xLlN1YnNjcmliZXI7CiAgICB9IH0pOwogICAgdmFyIE5vdGlmaWNhdGlvbl8xID0gcmVxdWlyZV9Ob3RpZmljYXRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5vdGlmaWNhdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RpZmljYXRpb25LaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90aWZpY2F0aW9uXzEuTm90aWZpY2F0aW9uS2luZDsKICAgIH0gfSk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwaXBlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGlwZV8xLnBpcGU7CiAgICB9IH0pOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibm9vcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5vb3BfMS5ub29wOwogICAgfSB9KTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWRlbnRpdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfSB9KTsKICAgIHZhciBpc09ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpc09ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpc09ic2VydmFibGVfMS5pc09ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIGxhc3RWYWx1ZUZyb21fMSA9IHJlcXVpcmVfbGFzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibGFzdFZhbHVlRnJvbSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb21fMS5sYXN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBmaXJzdFZhbHVlRnJvbV8xID0gcmVxdWlyZV9maXJzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmlyc3RWYWx1ZUZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbV8xLmZpcnN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xID0gcmVxdWlyZV9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xLkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yOwogICAgfSB9KTsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkVtcHR5RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgTm90Rm91bmRFcnJvcl8xID0gcmVxdWlyZV9Ob3RGb3VuZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RGb3VuZEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU2VxdWVuY2VFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFNlcXVlbmNlRXJyb3JfMS5TZXF1ZW5jZUVycm9yOwogICAgfSB9KTsKICAgIHZhciB0aW1lb3V0XzEgPSByZXF1aXJlX3RpbWVvdXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlRpbWVvdXRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRfMS5UaW1lb3V0RXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFVuc3Vic2NyaXB0aW9uRXJyb3JfMSA9IHJlcXVpcmVfVW5zdWJzY3JpcHRpb25FcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiVW5zdWJzY3JpcHRpb25FcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yOwogICAgfSB9KTsKICAgIHZhciBiaW5kQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJiaW5kQ2FsbGJhY2siLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tfMS5iaW5kQ2FsbGJhY2s7CiAgICB9IH0pOwogICAgdmFyIGJpbmROb2RlQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZE5vZGVDYWxsYmFjaygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYmluZE5vZGVDYWxsYmFjayIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGJpbmROb2RlQ2FsbGJhY2tfMS5iaW5kTm9kZUNhbGxiYWNrOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0XzEuY29tYmluZUxhdGVzdDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0OwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0YWJsZV8xID0gcmVxdWlyZV9jb25uZWN0YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29ubmVjdGFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0YWJsZV8xLmNvbm5lY3RhYmxlOwogICAgfSB9KTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyOwogICAgfSB9KTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbXB0eV8xLmVtcHR5OwogICAgfSB9KTsKICAgIHZhciBmb3JrSm9pbl8xID0gcmVxdWlyZV9mb3JrSm9pbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZm9ya0pvaW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmb3JrSm9pbl8xLmZvcmtKb2luOwogICAgfSB9KTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tXzEuZnJvbTsKICAgIH0gfSk7CiAgICB2YXIgZnJvbUV2ZW50XzEgPSByZXF1aXJlX2Zyb21FdmVudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZnJvbUV2ZW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZnJvbUV2ZW50XzEuZnJvbUV2ZW50OwogICAgfSB9KTsKICAgIHZhciBmcm9tRXZlbnRQYXR0ZXJuXzEgPSByZXF1aXJlX2Zyb21FdmVudFBhdHRlcm4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb21FdmVudFBhdHRlcm4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tRXZlbnRQYXR0ZXJuXzEuZnJvbUV2ZW50UGF0dGVybjsKICAgIH0gfSk7CiAgICB2YXIgZ2VuZXJhdGVfMSA9IHJlcXVpcmVfZ2VuZXJhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdlbmVyYXRlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ2VuZXJhdGVfMS5nZW5lcmF0ZTsKICAgIH0gfSk7CiAgICB2YXIgaWlmXzEgPSByZXF1aXJlX2lpZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWlmIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaWlmXzEuaWlmOwogICAgfSB9KTsKICAgIHZhciBpbnRlcnZhbF8xID0gcmVxdWlyZV9pbnRlcnZhbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaW50ZXJ2YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpbnRlcnZhbF8xLmludGVydmFsOwogICAgfSB9KTsKICAgIHZhciBtZXJnZV8xID0gcmVxdWlyZV9tZXJnZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlOwogICAgfSB9KTsKICAgIHZhciBuZXZlcl8xID0gcmVxdWlyZV9uZXZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibmV2ZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBuZXZlcl8xLm5ldmVyOwogICAgfSB9KTsKICAgIHZhciBvZl8xID0gcmVxdWlyZV9vZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2YiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvZl8xLm9mOwogICAgfSB9KTsKICAgIHZhciBvbkVycm9yUmVzdW1lTmV4dF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib25FcnJvclJlc3VtZU5leHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0OwogICAgfSB9KTsKICAgIHZhciBwYWlyc18xID0gcmVxdWlyZV9wYWlycygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGFpcnMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYWlyc18xLnBhaXJzOwogICAgfSB9KTsKICAgIHZhciBwYXJ0aXRpb25fMSA9IHJlcXVpcmVfcGFydGl0aW9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwYXJ0aXRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYXJ0aXRpb25fMS5wYXJ0aXRpb247CiAgICB9IH0pOwogICAgdmFyIHJhY2VfMSA9IHJlcXVpcmVfcmFjZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VfMS5yYWNlOwogICAgfSB9KTsKICAgIHZhciByYW5nZV8xID0gcmVxdWlyZV9yYW5nZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFuZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByYW5nZV8xLnJhbmdlOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm93RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0Vycm9yXzEudGhyb3dFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZXJfMS50aW1lcjsKICAgIH0gfSk7CiAgICB2YXIgdXNpbmdfMSA9IHJlcXVpcmVfdXNpbmcoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInVzaW5nIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdXNpbmdfMS51c2luZzsKICAgIH0gfSk7CiAgICB2YXIgemlwXzEgPSByZXF1aXJlX3ppcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwXzEuemlwOwogICAgfSB9KTsKICAgIHZhciBzY2hlZHVsZWRfMSA9IHJlcXVpcmVfc2NoZWR1bGVkKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzY2hlZHVsZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzY2hlZHVsZWRfMS5zY2hlZHVsZWQ7CiAgICB9IH0pOwogICAgdmFyIGVtcHR5XzIgPSByZXF1aXJlX2VtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJFTVBUWSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVtcHR5XzIuRU1QVFk7CiAgICB9IH0pOwogICAgdmFyIG5ldmVyXzIgPSByZXF1aXJlX25ldmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJORVZFUiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5ldmVyXzIuTkVWRVI7CiAgICB9IH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHlwZXMyKCksIGV4cG9ydHMyKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25maWciLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25maWdfMS5jb25maWc7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhdWRpdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQ7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0VGltZV8xID0gcmVxdWlyZV9hdWRpdFRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImF1ZGl0VGltZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0VGltZV8xLmF1ZGl0VGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyXzEgPSByZXF1aXJlX2J1ZmZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyXzEuYnVmZmVyOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJDb3VudF8xID0gcmVxdWlyZV9idWZmZXJDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyQ291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJDb3VudF8xLmJ1ZmZlckNvdW50OwogICAgfSB9KTsKICAgIHZhciBidWZmZXJUaW1lXzEgPSByZXF1aXJlX2J1ZmZlclRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlclRpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJUaW1lXzEuYnVmZmVyVGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyVG9nZ2xlXzEgPSByZXF1aXJlX2J1ZmZlclRvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyVG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyVG9nZ2xlXzEuYnVmZmVyVG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJXaGVuXzEgPSByZXF1aXJlX2J1ZmZlcldoZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlcldoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJXaGVuXzEuYnVmZmVyV2hlbjsKICAgIH0gfSk7CiAgICB2YXIgY2F0Y2hFcnJvcl8xID0gcmVxdWlyZV9jYXRjaEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjYXRjaEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY2F0Y2hFcnJvcl8xLmNhdGNoRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIGNvbWJpbmVBbGxfMSA9IHJlcXVpcmVfY29tYmluZUFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29tYmluZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbWJpbmVBbGxfMS5jb21iaW5lQWxsOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0QWxsXzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3RBbGwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RBbGwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0QWxsXzEuY29tYmluZUxhdGVzdEFsbDsKICAgIH0gfSk7CiAgICB2YXIgY29tYmluZUxhdGVzdFdpdGhfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RXaXRoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29tYmluZUxhdGVzdFdpdGhfMS5jb21iaW5lTGF0ZXN0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsOwogICAgfSB9KTsKICAgIHZhciBjb25jYXRNYXBfMSA9IHJlcXVpcmVfY29uY2F0TWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25jYXRNYXBfMS5jb25jYXRNYXA7CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdE1hcFRvXzEgPSByZXF1aXJlX2NvbmNhdE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdE1hcFRvXzEuY29uY2F0TWFwVG87CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdFdpdGhfMSA9IHJlcXVpcmVfY29uY2F0V2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdFdpdGhfMS5jb25jYXRXaXRoOwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbm5lY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdDsKICAgIH0gfSk7CiAgICB2YXIgY291bnRfMSA9IHJlcXVpcmVfY291bnQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvdW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY291bnRfMS5jb3VudDsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VfMSA9IHJlcXVpcmVfZGVib3VuY2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImRlYm91bmNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VfMS5kZWJvdW5jZTsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VUaW1lXzEgPSByZXF1aXJlX2RlYm91bmNlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVib3VuY2VUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VUaW1lXzEuZGVib3VuY2VUaW1lOwogICAgfSB9KTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmYXVsdElmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5OwogICAgfSB9KTsKICAgIHZhciBkZWxheV8xID0gcmVxdWlyZV9kZWxheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVsYXkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheV8xLmRlbGF5OwogICAgfSB9KTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJkZWxheVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW47CiAgICB9IH0pOwogICAgdmFyIGRlbWF0ZXJpYWxpemVfMSA9IHJlcXVpcmVfZGVtYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVtYXRlcmlhbGl6ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGRlbWF0ZXJpYWxpemVfMS5kZW1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdF8xID0gcmVxdWlyZV9kaXN0aW5jdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdF8xLmRpc3RpbmN0OwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbENoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbEtleUNoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xLmRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBlbGVtZW50QXRfMSA9IHJlcXVpcmVfZWxlbWVudEF0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJlbGVtZW50QXQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbGVtZW50QXRfMS5lbGVtZW50QXQ7CiAgICB9IH0pOwogICAgdmFyIGVuZFdpdGhfMSA9IHJlcXVpcmVfZW5kV2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW5kV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVuZFdpdGhfMS5lbmRXaXRoOwogICAgfSB9KTsKICAgIHZhciBldmVyeV8xID0gcmVxdWlyZV9ldmVyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXZlcnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBldmVyeV8xLmV2ZXJ5OwogICAgfSB9KTsKICAgIHZhciBleGhhdXN0XzEgPSByZXF1aXJlX2V4aGF1c3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImV4aGF1c3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGhhdXN0XzEuZXhoYXVzdDsKICAgIH0gfSk7CiAgICB2YXIgZXhoYXVzdEFsbF8xID0gcmVxdWlyZV9leGhhdXN0QWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleGhhdXN0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZXhoYXVzdEFsbF8xLmV4aGF1c3RBbGw7CiAgICB9IH0pOwogICAgdmFyIGV4aGF1c3RNYXBfMSA9IHJlcXVpcmVfZXhoYXVzdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXhoYXVzdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGV4aGF1c3RNYXBfMS5leGhhdXN0TWFwOwogICAgfSB9KTsKICAgIHZhciBleHBhbmRfMSA9IHJlcXVpcmVfZXhwYW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleHBhbmQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleHBhbmRfMS5leHBhbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbHRlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbHRlcl8xLmZpbHRlcjsKICAgIH0gfSk7CiAgICB2YXIgZmluYWxpemVfMSA9IHJlcXVpcmVfZmluYWxpemUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmFsaXplIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluYWxpemVfMS5maW5hbGl6ZTsKICAgIH0gfSk7CiAgICB2YXIgZmluZF8xID0gcmVxdWlyZV9maW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJmaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluZF8xLmZpbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbmRJbmRleF8xID0gcmVxdWlyZV9maW5kSW5kZXgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmRJbmRleCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbmRJbmRleF8xLmZpbmRJbmRleDsKICAgIH0gfSk7CiAgICB2YXIgZmlyc3RfMSA9IHJlcXVpcmVfZmlyc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpcnN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmlyc3RfMS5maXJzdDsKICAgIH0gfSk7CiAgICB2YXIgZ3JvdXBCeV8xID0gcmVxdWlyZV9ncm91cEJ5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJncm91cEJ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ3JvdXBCeV8xLmdyb3VwQnk7CiAgICB9IH0pOwogICAgdmFyIGlnbm9yZUVsZW1lbnRzXzEgPSByZXF1aXJlX2lnbm9yZUVsZW1lbnRzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpZ25vcmVFbGVtZW50cyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlnbm9yZUVsZW1lbnRzXzEuaWdub3JlRWxlbWVudHM7CiAgICB9IH0pOwogICAgdmFyIGlzRW1wdHlfMSA9IHJlcXVpcmVfaXNFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaXNFbXB0eSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlzRW1wdHlfMS5pc0VtcHR5OwogICAgfSB9KTsKICAgIHZhciBsYXN0XzEgPSByZXF1aXJlX2xhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImxhc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBsYXN0XzEubGFzdDsKICAgIH0gfSk7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWFwXzEubWFwOwogICAgfSB9KTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXBUb18xLm1hcFRvOwogICAgfSB9KTsKICAgIHZhciBtYXRlcmlhbGl6ZV8xID0gcmVxdWlyZV9tYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWF0ZXJpYWxpemUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXRlcmlhbGl6ZV8xLm1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBtYXhfMSA9IHJlcXVpcmVfbWF4KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtYXgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXhfMS5tYXg7CiAgICB9IH0pOwogICAgdmFyIG1lcmdlQWxsXzEgPSByZXF1aXJlX21lcmdlQWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lcmdlQWxsXzEubWVyZ2VBbGw7CiAgICB9IH0pOwogICAgdmFyIGZsYXRNYXBfMSA9IHJlcXVpcmVfZmxhdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmxhdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZsYXRNYXBfMS5mbGF0TWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcFRvXzEgPSByZXF1aXJlX21lcmdlTWFwVG8oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1lcmdlTWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcFRvXzEubWVyZ2VNYXBUbzsKICAgIH0gfSk7CiAgICB2YXIgbWVyZ2VTY2FuXzEgPSByZXF1aXJlX21lcmdlU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VTY2FuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWVyZ2VTY2FuXzEubWVyZ2VTY2FuOwogICAgfSB9KTsKICAgIHZhciBtZXJnZVdpdGhfMSA9IHJlcXVpcmVfbWVyZ2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZVdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZVdpdGhfMS5tZXJnZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIG1pbl8xID0gcmVxdWlyZV9taW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1pbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1pbl8xLm1pbjsKICAgIH0gfSk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibXVsdGljYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbXVsdGljYXN0XzEubXVsdGljYXN0OwogICAgfSB9KTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJvYnNlcnZlT24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvYnNlcnZlT25fMS5vYnNlcnZlT247CiAgICB9IH0pOwogICAgdmFyIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm9uRXJyb3JSZXN1bWVOZXh0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xLm9uRXJyb3JSZXN1bWVOZXh0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgcGFpcndpc2VfMSA9IHJlcXVpcmVfcGFpcndpc2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBhaXJ3aXNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGFpcndpc2VfMS5wYWlyd2lzZTsKICAgIH0gfSk7CiAgICB2YXIgcGx1Y2tfMSA9IHJlcXVpcmVfcGx1Y2soKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBsdWNrIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGx1Y2tfMS5wbHVjazsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaF8xID0gcmVxdWlyZV9wdWJsaXNoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaF8xLnB1Ymxpc2g7CiAgICB9IH0pOwogICAgdmFyIHB1Ymxpc2hCZWhhdmlvcl8xID0gcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hCZWhhdmlvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHB1Ymxpc2hCZWhhdmlvcl8xLnB1Ymxpc2hCZWhhdmlvcjsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaExhc3RfMSA9IHJlcXVpcmVfcHVibGlzaExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaExhc3RfMS5wdWJsaXNoTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaFJlcGxheV8xID0gcmVxdWlyZV9wdWJsaXNoUmVwbGF5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaFJlcGxheV8xLnB1Ymxpc2hSZXBsYXk7CiAgICB9IH0pOwogICAgdmFyIHJhY2VXaXRoXzEgPSByZXF1aXJlX3JhY2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyYWNlV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VXaXRoXzEucmFjZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlZHVjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZTsKICAgIH0gfSk7CiAgICB2YXIgcmVwZWF0XzEyID0gcmVxdWlyZV9yZXBlYXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlcGVhdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdF8xMi5yZXBlYXQ7CiAgICB9IH0pOwogICAgdmFyIHJlcGVhdFdoZW5fMSA9IHJlcXVpcmVfcmVwZWF0V2hlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVwZWF0V2hlbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdFdoZW5fMS5yZXBlYXRXaGVuOwogICAgfSB9KTsKICAgIHZhciByZXRyeV8xID0gcmVxdWlyZV9yZXRyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmV0cnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeV8xLnJldHJ5OwogICAgfSB9KTsKICAgIHZhciByZXRyeVdoZW5fMSA9IHJlcXVpcmVfcmV0cnlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZXRyeVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeVdoZW5fMS5yZXRyeVdoZW47CiAgICB9IH0pOwogICAgdmFyIHJlZkNvdW50XzEgPSByZXF1aXJlX3JlZkNvdW50KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZWZDb3VudCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZkNvdW50XzEucmVmQ291bnQ7CiAgICB9IH0pOwogICAgdmFyIHNhbXBsZV8xID0gcmVxdWlyZV9zYW1wbGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNhbXBsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZTsKICAgIH0gfSk7CiAgICB2YXIgc2FtcGxlVGltZV8xID0gcmVxdWlyZV9zYW1wbGVUaW1lKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzYW1wbGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2FtcGxlVGltZV8xLnNhbXBsZVRpbWU7CiAgICB9IH0pOwogICAgdmFyIHNjYW5fMSA9IHJlcXVpcmVfc2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjYW5fMS5zY2FuOwogICAgfSB9KTsKICAgIHZhciBzZXF1ZW5jZUVxdWFsXzEgPSByZXF1aXJlX3NlcXVlbmNlRXF1YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNlcXVlbmNlRXF1YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzZXF1ZW5jZUVxdWFsXzEuc2VxdWVuY2VFcXVhbDsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVfMSA9IHJlcXVpcmVfc2hhcmUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZTsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVSZXBsYXlfMSA9IHJlcXVpcmVfc2hhcmVSZXBsYXkoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVSZXBsYXlfMS5zaGFyZVJlcGxheTsKICAgIH0gfSk7CiAgICB2YXIgc2luZ2xlXzEgPSByZXF1aXJlX3NpbmdsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2luZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2luZ2xlXzEuc2luZ2xlOwogICAgfSB9KTsKICAgIHZhciBza2lwXzEgPSByZXF1aXJlX3NraXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwXzEuc2tpcDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcExhc3RfMSA9IHJlcXVpcmVfc2tpcExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXBMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcExhc3RfMS5za2lwTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcFVudGlsXzEgPSByZXF1aXJlX3NraXBVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2tpcFVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcFVudGlsXzEuc2tpcFVudGlsOwogICAgfSB9KTsKICAgIHZhciBza2lwV2hpbGVfMSA9IHJlcXVpcmVfc2tpcFdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJza2lwV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwV2hpbGVfMS5za2lwV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHN0YXJ0V2l0aF8xID0gcmVxdWlyZV9zdGFydFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0YXJ0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN0YXJ0V2l0aF8xLnN0YXJ0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN1YnNjcmliZU9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbjsKICAgIH0gfSk7CiAgICB2YXIgc3dpdGNoQWxsXzEgPSByZXF1aXJlX3N3aXRjaEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3dpdGNoQWxsXzEuc3dpdGNoQWxsOwogICAgfSB9KTsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXA7CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaE1hcFRvXzEgPSByZXF1aXJlX3N3aXRjaE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcFRvXzEuc3dpdGNoTWFwVG87CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaFNjYW5fMSA9IHJlcXVpcmVfc3dpdGNoU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoU2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaFNjYW5fMS5zd2l0Y2hTY2FuOwogICAgfSB9KTsKICAgIHZhciB0YWtlXzEgPSByZXF1aXJlX3Rha2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlXzEudGFrZTsKICAgIH0gfSk7CiAgICB2YXIgdGFrZUxhc3RfMSA9IHJlcXVpcmVfdGFrZUxhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2VMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZUxhc3RfMS50YWtlTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgdGFrZVVudGlsXzEgPSByZXF1aXJlX3Rha2VVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGFrZVVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZVVudGlsXzEudGFrZVVudGlsOwogICAgfSB9KTsKICAgIHZhciB0YWtlV2hpbGVfMSA9IHJlcXVpcmVfdGFrZVdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0YWtlV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlV2hpbGVfMS50YWtlV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHRhcF8xID0gcmVxdWlyZV90YXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRhcF8xLnRhcDsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVfMSA9IHJlcXVpcmVfdGhyb3R0bGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm90dGxlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVfMS50aHJvdHRsZTsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVUaW1lXzEgPSByZXF1aXJlX3Rocm90dGxlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGhyb3R0bGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVUaW1lXzEudGhyb3R0bGVUaW1lOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aHJvd0lmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHk7CiAgICB9IH0pOwogICAgdmFyIHRpbWVJbnRlcnZhbF8xID0gcmVxdWlyZV90aW1lSW50ZXJ2YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVJbnRlcnZhbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVJbnRlcnZhbF8xLnRpbWVJbnRlcnZhbDsKICAgIH0gfSk7CiAgICB2YXIgdGltZW91dF8yID0gcmVxdWlyZV90aW1lb3V0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZW91dF8yLnRpbWVvdXQ7CiAgICB9IH0pOwogICAgdmFyIHRpbWVvdXRXaXRoXzEgPSByZXF1aXJlX3RpbWVvdXRXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRXaXRoXzEudGltZW91dFdpdGg7CiAgICB9IH0pOwogICAgdmFyIHRpbWVzdGFtcF8xID0gcmVxdWlyZV90aW1lc3RhbXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVzdGFtcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcF8xLnRpbWVzdGFtcDsKICAgIH0gfSk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidG9BcnJheSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRvQXJyYXlfMTIudG9BcnJheTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93XzEgPSByZXF1aXJlX3dpbmRvdygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93XzEud2luZG93OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dDb3VudF8xID0gcmVxdWlyZV93aW5kb3dDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93Q291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dDb3VudF8xLndpbmRvd0NvdW50OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dUaW1lXzEgPSByZXF1aXJlX3dpbmRvd1RpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1RpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dUaW1lXzEud2luZG93VGltZTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93VG9nZ2xlXzEgPSByZXF1aXJlX3dpbmRvd1RvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93VG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93VG9nZ2xlXzEud2luZG93VG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dXaGVuXzEgPSByZXF1aXJlX3dpbmRvd1doZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1doZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dXaGVuXzEud2luZG93V2hlbjsKICAgIH0gfSk7CiAgICB2YXIgd2l0aExhdGVzdEZyb21fMSA9IHJlcXVpcmVfd2l0aExhdGVzdEZyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpdGhMYXRlc3RGcm9tIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2l0aExhdGVzdEZyb21fMS53aXRoTGF0ZXN0RnJvbTsKICAgIH0gfSk7CiAgICB2YXIgemlwQWxsXzEgPSByZXF1aXJlX3ppcEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwQWxsXzEuemlwQWxsOwogICAgfSB9KTsKICAgIHZhciB6aXBXaXRoXzEgPSByZXF1aXJlX3ppcFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInppcFdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB6aXBXaXRoXzEuemlwV2l0aDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlBhdGhJc0ZpbGVFeGNlcHRpb24gPSBleHBvcnRzMi5QYXRoSXNEaXJlY3RvcnlFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVua25vd25FeGNlcHRpb24gPSBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIEJhc2VFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIEVycm9yIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICIiKSB7CiAgICAgICAgc3VwZXIobWVzc2FnZSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gQmFzZUV4Y2VwdGlvbjsKICAgIHZhciBVbmtub3duRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSkgewogICAgICAgIHN1cGVyKG1lc3NhZ2UpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkV4Y2VwdGlvbiA9IFVua25vd25FeGNlcHRpb247CiAgICB2YXIgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBhbHJlYWR5IGV4aXN0LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbiA9IEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb247CiAgICB2YXIgUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGRpcmVjdG9yeS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbiA9IFBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbjsKICAgIHZhciBQYXRoSXNGaWxlRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGZpbGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoSXNGaWxlRXhjZXB0aW9uID0gUGF0aElzRmlsZUV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xpdGVyYWxzLmpzCnZhciByZXF1aXJlX2xpdGVyYWxzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9saXRlcmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub25lTGluZSA9IG9uZUxpbmU7CiAgICBleHBvcnRzMi5pbmRlbnRCeSA9IGluZGVudEJ5OwogICAgZXhwb3J0czIuc3RyaXBJbmRlbnQgPSBzdHJpcEluZGVudDsKICAgIGV4cG9ydHMyLnN0cmlwSW5kZW50cyA9IHN0cmlwSW5kZW50czsKICAgIGV4cG9ydHMyLnRyaW1OZXdsaW5lcyA9IHRyaW1OZXdsaW5lczsKICAgIGZ1bmN0aW9uIG9uZUxpbmUoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkrL2dtLCAiICIpLnRyaW0oKTsKICAgIH0KICAgIGZ1bmN0aW9uIGluZGVudEJ5KGluZGVudGF0aW9ucykgewogICAgICBsZXQgaSA9ICIiOwogICAgICB3aGlsZSAoaW5kZW50YXRpb25zLS0pIHsKICAgICAgICBpICs9ICIgIjsKICAgICAgfQogICAgICByZXR1cm4gKHN0cmluZ3MzLCAuLi52YWx1ZXMpID0+IHsKICAgICAgICByZXR1cm4gaSArIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpLnJlcGxhY2UoL1xuL2csICJcbiIgKyBpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgY29uc3QgZW5kUmVzdWx0ID0gU3RyaW5nLnJhdyhzdHJpbmdzMywgLi4udmFsdWVzKTsKICAgICAgY29uc3QgbWF0Y2ggPSBlbmRSZXN1bHQubWF0Y2goL15bIFx0XSooPz1cUykvZ20pOwogICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gZW5kUmVzdWx0OwogICAgICB9CiAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgubWluKC4uLm1hdGNoLm1hcCgoZWwpID0+IGVsLmxlbmd0aCkpOwogICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCJeWyBcXHRdeyIgKyBpbmRlbnQgKyAifSIsICJnbSIpOwogICAgICByZXR1cm4gKGluZGVudCA+IDAgPyBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICIiKSA6IGVuZFJlc3VsdCkudHJpbSgpOwogICAgfQogICAgZnVuY3Rpb24gc3RyaXBJbmRlbnRzKHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgcmV0dXJuIFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykuc3BsaXQoIlxuIikubWFwKChsaW5lKSA9PiBsaW5lLnRyaW0oKSkuam9pbigiXG4iKS50cmltKCk7CiAgICB9CiAgICBmdW5jdGlvbiB0cmltTmV3bGluZXMoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoL14oPzpccj9cbikrLywgIiIpLnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkkLywgIiIpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvc3RyaW5ncy5qcwp2YXIgcmVxdWlyZV9zdHJpbmdzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9zdHJpbmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWNhbWVsaXplID0gZGVjYW1lbGl6ZTsKICAgIGV4cG9ydHMyLmRhc2hlcml6ZSA9IGRhc2hlcml6ZTsKICAgIGV4cG9ydHMyLmNhbWVsaXplID0gY2FtZWxpemU7CiAgICBleHBvcnRzMi5jbGFzc2lmeSA9IGNsYXNzaWZ5OwogICAgZXhwb3J0czIudW5kZXJzY29yZSA9IHVuZGVyc2NvcmU7CiAgICBleHBvcnRzMi5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTsKICAgIGV4cG9ydHMyLmxldmVuc2h0ZWluID0gbGV2ZW5zaHRlaW47CiAgICB2YXIgU1RSSU5HX0RBU0hFUklaRV9SRUdFWFAgPSAvWyBfXS9nOwogICAgdmFyIFNUUklOR19ERUNBTUVMSVpFX1JFR0VYUCA9IC8oW2EtelxkXSkoW0EtWl0pL2c7CiAgICB2YXIgU1RSSU5HX0NBTUVMSVpFX1JFR0VYUCA9IC8oLXxffFwufFxzKSsoLik/L2c7CiAgICB2YXIgU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEgPSAvKFthLXpcZF0pKFtBLVpdKykvZzsKICAgIHZhciBTVFJJTkdfVU5ERVJTQ09SRV9SRUdFWFBfMiA9IC8tfFxzKy9nOwogICAgZnVuY3Rpb24gZGVjYW1lbGl6ZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX0RFQ0FNRUxJWkVfUkVHRVhQLCAiJDFfJDIiKS50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gZGFzaGVyaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIGRlY2FtZWxpemUoc3RyMikucmVwbGFjZShTVFJJTkdfREFTSEVSSVpFX1JFR0VYUCwgIi0iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZShTVFJJTkdfQ0FNRUxJWkVfUkVHRVhQLCAoX21hdGNoLCBfc2VwYXJhdG9yLCBjaHIpID0+IHsKICAgICAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAiIjsKICAgICAgfSkucmVwbGFjZSgvXihbQS1aXSkvLCAobWF0Y2gpID0+IG1hdGNoLnRvTG93ZXJDYXNlKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2xhc3NpZnkoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5zcGxpdCgiLiIpLm1hcCgocGFydCkgPT4gY2FwaXRhbGl6ZShjYW1lbGl6ZShwYXJ0KSkpLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gdW5kZXJzY29yZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEsICIkMV8kMiIpLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzIsICJfIikudG9Mb3dlckNhc2UoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cjIuc2xpY2UoMSk7CiAgICB9CiAgICBmdW5jdGlvbiBsZXZlbnNodGVpbihhLCBiKSB7CiAgICAgIGlmIChhLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGIubGVuZ3RoOwogICAgICB9CiAgICAgIGlmIChiLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGEubGVuZ3RoOwogICAgICB9CiAgICAgIGNvbnN0IG1hdHJpeCA9IFtdOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWF0cml4W2ldID0gW2ldOwogICAgICB9CiAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGEubGVuZ3RoOyBqKyspIHsKICAgICAgICBtYXRyaXhbMF1bal0gPSBqOwogICAgICB9CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGIubGVuZ3RoOyBpKyspIHsKICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBhLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICBpZiAoYi5jaGFyQXQoaSAtIDEpID09IGEuY2hhckF0KGogLSAxKSkgewogICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbaSAtIDFdW2ogLSAxXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IE1hdGgubWluKAogICAgICAgICAgICAgIG1hdHJpeFtpIC0gMV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24KICAgICAgICAgICAgICBtYXRyaXhbaV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBpbnNlcnRpb24KICAgICAgICAgICAgICBtYXRyaXhbaSAtIDFdW2pdICsgMQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbWF0cml4W2IubGVuZ3RoXVthLmxlbmd0aF07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMKdmFyIHJlcXVpcmVfb2JqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZXBDb3B5ID0gZGVlcENvcHk7CiAgICB2YXIgY29weVN5bWJvbCA9IFN5bWJvbCgpOwogICAgZnVuY3Rpb24gZGVlcENvcHkodmFsdWUpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgobykgPT4gZGVlcENvcHkobykpOwogICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25zdCB2YWx1ZUNhc3RlZCA9IHZhbHVlOwogICAgICAgIGlmICh2YWx1ZUNhc3RlZFtjb3B5U3ltYm9sXSkgewogICAgICAgICAgcmV0dXJuIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWVDYXN0ZWRbInRvSlNPTiJdKSB7CiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZUNhc3RlZFsidG9KU09OIl0oKSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZUNhc3RlZCkpOwogICAgICAgIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdID0gY29weTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZUNhc3RlZCkpIHsKICAgICAgICAgIGNvcHlba2V5XSA9IGRlZXBDb3B5KHZhbHVlQ2FzdGVkW2tleV0pOwogICAgICAgIH0KICAgICAgICBkZWxldGUgdmFsdWVDYXN0ZWRbY29weVN5bWJvbF07CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMKdmFyIHJlcXVpcmVfYmFzZTY0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgaW50VG9DaGFyTWFwID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLnNwbGl0KCIiKTsKICAgIGV4cG9ydHMyLmVuY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkgewogICAgICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTsKICAgICAgfQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJNdXN0IGJlIGJldHdlZW4gMCBhbmQgNjM6ICIgKyBudW1iZXIpOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2Jhc2U2NC12bHEuanMKdmFyIHJlcXVpcmVfYmFzZTY0X3ZscSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYmFzZTY0LXZscS5qcyIoZXhwb3J0czIpIHsKICAgIHZhciBiYXNlNjQgPSByZXF1aXJlX2Jhc2U2NCgpOwogICAgdmFyIFZMUV9CQVNFX1NISUZUID0gNTsKICAgIHZhciBWTFFfQkFTRSA9IDEgPDwgVkxRX0JBU0VfU0hJRlQ7CiAgICB2YXIgVkxRX0JBU0VfTUFTSyA9IFZMUV9CQVNFIC0gMTsKICAgIHZhciBWTFFfQ09OVElOVUFUSU9OX0JJVCA9IFZMUV9CQVNFOwogICAgZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7CiAgICAgIHJldHVybiBhVmFsdWUgPCAwID8gKC1hVmFsdWUgPDwgMSkgKyAxIDogKGFWYWx1ZSA8PCAxKSArIDA7CiAgICB9CiAgICBleHBvcnRzMi5lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZW5jb2RlKGFWYWx1ZSkgewogICAgICBsZXQgZW5jb2RlZCA9ICIiOwogICAgICBsZXQgZGlnaXQ7CiAgICAgIGxldCB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpOwogICAgICBkbyB7CiAgICAgICAgZGlnaXQgPSB2bHEgJiBWTFFfQkFTRV9NQVNLOwogICAgICAgIHZscSA+Pj49IFZMUV9CQVNFX1NISUZUOwogICAgICAgIGlmICh2bHEgPiAwKSB7CiAgICAgICAgICBkaWdpdCB8PSBWTFFfQ09OVElOVUFUSU9OX0JJVDsKICAgICAgICB9CiAgICAgICAgZW5jb2RlZCArPSBiYXNlNjQuZW5jb2RlKGRpZ2l0KTsKICAgICAgfSB3aGlsZSAodmxxID4gMCk7CiAgICAgIHJldHVybiBlbmNvZGVkOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMKdmFyIHJlcXVpcmVfdXRpbDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMiKGV4cG9ydHMyKSB7CiAgICBmdW5jdGlvbiBnZXRBcmcoYUFyZ3MsIGFOYW1lLCBhRGVmYXVsdFZhbHVlKSB7CiAgICAgIGlmIChhTmFtZSBpbiBhQXJncykgewogICAgICAgIHJldHVybiBhQXJnc1thTmFtZV07CiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykgewogICAgICAgIHJldHVybiBhRGVmYXVsdFZhbHVlOwogICAgICB9CiAgICAgIHRocm93IG5ldyBFcnJvcignIicgKyBhTmFtZSArICciIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRBcmcgPSBnZXRBcmc7CiAgICB2YXIgdXJsUmVnZXhwID0gL14oPzooW1x3K1wtLl0rKTopP1wvXC8oPzooXHcrOlx3KylAKT8oW1x3Li1dKikoPzo6KFxkKykpPyguKikkLzsKICAgIHZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXCwuKyQvOwogICAgZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkgewogICAgICBjb25zdCBtYXRjaCA9IGFVcmwubWF0Y2godXJsUmVnZXhwKTsKICAgICAgaWYgKCFtYXRjaCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgc2NoZW1lOiBtYXRjaFsxXSwKICAgICAgICBhdXRoOiBtYXRjaFsyXSwKICAgICAgICBob3N0OiBtYXRjaFszXSwKICAgICAgICBwb3J0OiBtYXRjaFs0XSwKICAgICAgICBwYXRoOiBtYXRjaFs1XQogICAgICB9OwogICAgfQogICAgZXhwb3J0czIudXJsUGFyc2UgPSB1cmxQYXJzZTsKICAgIGZ1bmN0aW9uIHVybEdlbmVyYXRlKGFQYXJzZWRVcmwpIHsKICAgICAgbGV0IHVybDMgPSAiIjsKICAgICAgaWYgKGFQYXJzZWRVcmwuc2NoZW1lKSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLnNjaGVtZSArICI6IjsKICAgICAgfQogICAgICB1cmwzICs9ICIvLyI7CiAgICAgIGlmIChhUGFyc2VkVXJsLmF1dGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwuYXV0aCArICJAIjsKICAgICAgfQogICAgICBpZiAoYVBhcnNlZFVybC5ob3N0KSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLmhvc3Q7CiAgICAgIH0KICAgICAgaWYgKGFQYXJzZWRVcmwucG9ydCkgewogICAgICAgIHVybDMgKz0gIjoiICsgYVBhcnNlZFVybC5wb3J0OwogICAgICB9CiAgICAgIGlmIChhUGFyc2VkVXJsLnBhdGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwucGF0aDsKICAgICAgfQogICAgICByZXR1cm4gdXJsMzsKICAgIH0KICAgIGV4cG9ydHMyLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7CiAgICB2YXIgTUFYX0NBQ0hFRF9JTlBVVFMgPSAzMjsKICAgIGZ1bmN0aW9uIGxydU1lbW9pemUoZikgewogICAgICBjb25zdCBjYWNoZSA9IFtdOwogICAgICByZXR1cm4gZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhY2hlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoY2FjaGVbaV0uaW5wdXQgPT09IGlucHV0KSB7CiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBjYWNoZVswXTsKICAgICAgICAgICAgY2FjaGVbMF0gPSBjYWNoZVtpXTsKICAgICAgICAgICAgY2FjaGVbaV0gPSB0ZW1wOwogICAgICAgICAgICByZXR1cm4gY2FjaGVbMF0ucmVzdWx0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCByZXN1bHQgPSBmKGlucHV0KTsKICAgICAgICBjYWNoZS51bnNoaWZ0KHsKICAgICAgICAgIGlucHV0LAogICAgICAgICAgcmVzdWx0CiAgICAgICAgfSk7CiAgICAgICAgaWYgKGNhY2hlLmxlbmd0aCA+IE1BWF9DQUNIRURfSU5QVVRTKSB7CiAgICAgICAgICBjYWNoZS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0KICAgIHZhciBub3JtYWxpemUgPSBscnVNZW1vaXplKGZ1bmN0aW9uIG5vcm1hbGl6ZTIoYVBhdGgpIHsKICAgICAgbGV0IHBhdGggPSBhUGF0aDsKICAgICAgY29uc3QgdXJsMyA9IHVybFBhcnNlKGFQYXRoKTsKICAgICAgaWYgKHVybDMpIHsKICAgICAgICBpZiAoIXVybDMucGF0aCkgewogICAgICAgICAgcmV0dXJuIGFQYXRoOwogICAgICAgIH0KICAgICAgICBwYXRoID0gdXJsMy5wYXRoOwogICAgICB9CiAgICAgIGNvbnN0IGlzQWJzb2x1dGUgPSBleHBvcnRzMi5pc0Fic29sdXRlKHBhdGgpOwogICAgICBjb25zdCBwYXJ0cyA9IFtdOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgaSA9IDA7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgc3RhcnQgPSBpOwogICAgICAgIGkgPSBwYXRoLmluZGV4T2YoIi8iLCBzdGFydCk7CiAgICAgICAgaWYgKGkgPT09IC0xKSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQsIGkpKTsKICAgICAgICAgIHdoaWxlIChpIDwgcGF0aC5sZW5ndGggJiYgcGF0aFtpXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgbGV0IHVwID0gMDsKICAgICAgZm9yIChpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb25zdCBwYXJ0ID0gcGFydHNbaV07CiAgICAgICAgaWYgKHBhcnQgPT09ICIuIikgewogICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwogICAgICAgIH0gZWxzZSBpZiAocGFydCA9PT0gIi4uIikgewogICAgICAgICAgdXArKzsKICAgICAgICB9IGVsc2UgaWYgKHVwID4gMCkgewogICAgICAgICAgaWYgKHBhcnQgPT09ICIiKSB7CiAgICAgICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApOwogICAgICAgICAgICB1cCA9IDA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7CiAgICAgICAgICAgIHVwLS07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHBhdGggPSBwYXJ0cy5qb2luKCIvIik7CiAgICAgIGlmIChwYXRoID09PSAiIikgewogICAgICAgIHBhdGggPSBpc0Fic29sdXRlID8gIi8iIDogIi4iOwogICAgICB9CiAgICAgIGlmICh1cmwzKSB7CiAgICAgICAgdXJsMy5wYXRoID0gcGF0aDsKICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUodXJsMyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGg7CiAgICB9KTsKICAgIGV4cG9ydHMyLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTsKICAgIGZ1bmN0aW9uIGpvaW4yKGFSb290LCBhUGF0aCkgewogICAgICBpZiAoYVJvb3QgPT09ICIiKSB7CiAgICAgICAgYVJvb3QgPSAiLiI7CiAgICAgIH0KICAgICAgaWYgKGFQYXRoID09PSAiIikgewogICAgICAgIGFQYXRoID0gIi4iOwogICAgICB9CiAgICAgIGNvbnN0IGFQYXRoVXJsID0gdXJsUGFyc2UoYVBhdGgpOwogICAgICBjb25zdCBhUm9vdFVybCA9IHVybFBhcnNlKGFSb290KTsKICAgICAgaWYgKGFSb290VXJsKSB7CiAgICAgICAgYVJvb3QgPSBhUm9vdFVybC5wYXRoIHx8ICIvIjsKICAgICAgfQogICAgICBpZiAoYVBhdGhVcmwgJiYgIWFQYXRoVXJsLnNjaGVtZSkgewogICAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgICAgYVBhdGhVcmwuc2NoZW1lID0gYVJvb3RVcmwuc2NoZW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUoYVBhdGhVcmwpOwogICAgICB9CiAgICAgIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkgewogICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgfQogICAgICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHsKICAgICAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICBjb25zdCBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiA/IGFQYXRoIDogbm9ybWFsaXplKGFSb290LnJlcGxhY2UoL1wvKyQvLCAiIikgKyAiLyIgKyBhUGF0aCk7CiAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgIGFSb290VXJsLnBhdGggPSBqb2luZWQ7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICByZXR1cm4gam9pbmVkOwogICAgfQogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uKGFQYXRoKSB7CiAgICAgIHJldHVybiBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiB8fCB1cmxSZWdleHAudGVzdChhUGF0aCk7CiAgICB9OwogICAgZnVuY3Rpb24gcmVsYXRpdmUoYVJvb3QsIGFQYXRoKSB7CiAgICAgIGlmIChhUm9vdCA9PT0gIiIpIHsKICAgICAgICBhUm9vdCA9ICIuIjsKICAgICAgfQogICAgICBhUm9vdCA9IGFSb290LnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgbGV0IGxldmVsID0gMDsKICAgICAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAiLyIpICE9PSAwKSB7CiAgICAgICAgY29uc3QgaW5kZXggPSBhUm9vdC5sYXN0SW5kZXhPZigiLyIpOwogICAgICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgICB9CiAgICAgICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7CiAgICAgICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXC9dKzpcLyk/XC8qJC8pKSB7CiAgICAgICAgICByZXR1cm4gYVBhdGg7CiAgICAgICAgfQogICAgICAgICsrbGV2ZWw7CiAgICAgIH0KICAgICAgcmV0dXJuIEFycmF5KGxldmVsICsgMSkuam9pbigiLi4vIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7CiAgICB9CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgdmFyIHN1cHBvcnRzTnVsbFByb3RvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IG9iaiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICByZXR1cm4gISgiX19wcm90b19fIiBpbiBvYmopOwogICAgfSgpOwogICAgZnVuY3Rpb24gaWRlbnRpdHkocykgewogICAgICByZXR1cm4gczsKICAgIH0KICAgIGZ1bmN0aW9uIHRvU2V0U3RyaW5nKGFTdHIpIHsKICAgICAgaWYgKGlzUHJvdG9TdHJpbmcoYVN0cikpIHsKICAgICAgICByZXR1cm4gIiQiICsgYVN0cjsKICAgICAgfQogICAgICByZXR1cm4gYVN0cjsKICAgIH0KICAgIGV4cG9ydHMyLnRvU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IHRvU2V0U3RyaW5nOwogICAgZnVuY3Rpb24gZnJvbVNldFN0cmluZyhhU3RyKSB7CiAgICAgIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7CiAgICAgICAgcmV0dXJuIGFTdHIuc2xpY2UoMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFTdHI7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IGZyb21TZXRTdHJpbmc7CiAgICBmdW5jdGlvbiBpc1Byb3RvU3RyaW5nKHMpIHsKICAgICAgaWYgKCFzKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0IGxlbmd0aCA9IHMubGVuZ3RoOwogICAgICBpZiAobGVuZ3RoIDwgOSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBpZiAocy5jaGFyQ29kZUF0KGxlbmd0aCAtIDEpICE9PSA5NSB8fCBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMikgIT09IDk1IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSAzKSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA0KSAhPT0gMTE2IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA2KSAhPT0gMTE0IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA3KSAhPT0gMTEyIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgfHwgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gbGVuZ3RoIC0gMTA7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgaWYgKHMuY2hhckNvZGVBdChpKSAhPT0gMzYpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyhtYXBwaW5nQSwgbWFwcGluZ0IsIG9ubHlDb21wYXJlT3JpZ2luYWwpIHsKICAgICAgbGV0IGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICByZXR1cm4gc3RyY21wKG1hcHBpbmdBLm5hbWUsIG1hcHBpbmdCLm5hbWUpOwogICAgfQogICAgZXhwb3J0czIuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMgPSBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9uczsKICAgIGZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQ7CiAgICBmdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7CiAgICAgIGlmIChhU3RyMSA9PT0gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMDsKICAgICAgfQogICAgICBpZiAoYVN0cjEgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBpZiAoYVN0cjIgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgaWYgKGFTdHIxID4gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQ7CiAgICBmdW5jdGlvbiBwYXJzZVNvdXJjZU1hcElucHV0KHN0cjIpIHsKICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyMi5yZXBsYWNlKC9eXCldfSdbXlxuXSpcbi8sICIiKSk7CiAgICB9CiAgICBleHBvcnRzMi5wYXJzZVNvdXJjZU1hcElucHV0ID0gcGFyc2VTb3VyY2VNYXBJbnB1dDsKICAgIGZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpIHsKICAgICAgc291cmNlVVJMID0gc291cmNlVVJMIHx8ICIiOwogICAgICBpZiAoc291cmNlUm9vdCkgewogICAgICAgIGlmIChzb3VyY2VSb290W3NvdXJjZVJvb3QubGVuZ3RoIC0gMV0gIT09ICIvIiAmJiBzb3VyY2VVUkxbMF0gIT09ICIvIikgewogICAgICAgICAgc291cmNlUm9vdCArPSAiLyI7CiAgICAgICAgfQogICAgICAgIHNvdXJjZVVSTCA9IHNvdXJjZVJvb3QgKyBzb3VyY2VVUkw7CiAgICAgIH0KICAgICAgaWYgKHNvdXJjZU1hcFVSTCkgewogICAgICAgIGNvbnN0IHBhcnNlZCA9IHVybFBhcnNlKHNvdXJjZU1hcFVSTCk7CiAgICAgICAgaWYgKCFwYXJzZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic291cmNlTWFwVVJMIGNvdWxkIG5vdCBiZSBwYXJzZWQiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5wYXRoKSB7CiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlZC5wYXRoLmxhc3RJbmRleE9mKCIvIik7CiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgICBwYXJzZWQucGF0aCA9IHBhcnNlZC5wYXRoLnN1YnN0cmluZygwLCBpbmRleCArIDEpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzb3VyY2VVUkwgPSBqb2luMih1cmxHZW5lcmF0ZShwYXJzZWQpLCBzb3VyY2VVUkwpOwogICAgICB9CiAgICAgIHJldHVybiBub3JtYWxpemUoc291cmNlVVJMKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXB1dGVTb3VyY2VVUkwgPSBjb21wdXRlU291cmNlVVJMOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzCnZhciByZXF1aXJlX2FycmF5X3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzIihleHBvcnRzMikgewogICAgdmFyIEFycmF5U2V0ID0gY2xhc3MgX0FycmF5U2V0IHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5fYXJyYXkgPSBbXTsKICAgICAgICB0aGlzLl9zZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS4KICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tQXJyYXkoYUFycmF5LCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3Qgc2V0MiA9IG5ldyBfQXJyYXlTZXQoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYUFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBzZXQyLmFkZChhQXJyYXlbaV0sIGFBbGxvd0R1cGxpY2F0ZXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0MjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW4KICAgICAgICogYWRkZWQsIHRoYW4gdGhvc2UgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHNpemUuCiAgICAgICAqCiAgICAgICAqIEByZXR1cm5zIE51bWJlcgogICAgICAgKi8KICAgICAgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fc2V0LnNpemU7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoaXMgc2V0LgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGFkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmhhcyhhU3RyKTsKICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9hcnJheS5sZW5ndGg7CiAgICAgICAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgICB0aGlzLl9hcnJheS5wdXNoKGFTdHIpOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7CiAgICAgICAgICB0aGlzLl9zZXQuc2V0KGFTdHIsIGlkeCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJcyB0aGUgZ2l2ZW4gc3RyaW5nIGEgbWVtYmVyIG9mIHRoaXMgc2V0PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGhhcyhhU3RyKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGluZGV4T2YoYVN0cikgewogICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7CiAgICAgICAgaWYgKGlkeCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gaWR4OwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVN0ciArICciIGlzIG5vdCBpbiB0aGUgc2V0LicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXaGF0IGlzIHRoZSBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleD8KICAgICAgICoKICAgICAgICogQHBhcmFtIE51bWJlciBhSWR4CiAgICAgICAqLwogICAgICBhdChhSWR4KSB7CiAgICAgICAgaWYgKGFJZHggPj0gMCAmJiBhSWR4IDwgdGhpcy5fYXJyYXkubGVuZ3RoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYXJyYXlbYUlkeF07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBFcnJvcigiTm8gZWxlbWVudCBpbmRleGVkIGJ5ICIgKyBhSWR4KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgKHdoaWNoIGhhcyB0aGUgcHJvcGVyIGluZGljZXMKICAgICAgICogaW5kaWNhdGVkIGJ5IGluZGV4T2YpLiBOb3RlIHRoYXQgdGhpcyBpcyBhIGNvcHkgb2YgdGhlIGludGVybmFsIGFycmF5IHVzZWQKICAgICAgICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS4KICAgICAgICovCiAgICAgIHRvQXJyYXkoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5LnNsaWNlKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BcnJheVNldCA9IEFycmF5U2V0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzCnZhciByZXF1aXJlX21hcHBpbmdfbGlzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzIihleHBvcnRzMikgewogICAgdmFyIHV0aWwgPSByZXF1aXJlX3V0aWwyKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKG1hcHBpbmdBLCBtYXBwaW5nQikgewogICAgICBjb25zdCBsaW5lQSA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmU7CiAgICAgIGNvbnN0IGxpbmVCID0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTsKICAgICAgY29uc3QgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjsKICAgICAgY29uc3QgY29sdW1uQiA9IG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjsKICAgICAgcmV0dXJuIGxpbmVCID4gbGluZUEgfHwgbGluZUIgPT0gbGluZUEgJiYgY29sdW1uQiA+PSBjb2x1bW5BIHx8IHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCKSA8PSAwOwogICAgfQogICAgdmFyIE1hcHBpbmdMaXN0ID0gY2xhc3MgewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLl9hcnJheSA9IFtdOwogICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgdGhpcy5fbGFzdCA9IHsgZ2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMCB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJdGVyYXRlIHRocm91Z2ggaW50ZXJuYWwgaXRlbXMuIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBzYW1lIGFyZ3VtZW50cyB0aGF0CiAgICAgICAqIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgdGFrZXMuCiAgICAgICAqCiAgICAgICAqIE5PVEU6IFRoZSBvcmRlciBvZiB0aGUgbWFwcGluZ3MgaXMgTk9UIGd1YXJhbnRlZWQuCiAgICAgICAqLwogICAgICB1bnNvcnRlZEZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZykgewogICAgICAgIHRoaXMuX2FycmF5LmZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc291cmNlIG1hcHBpbmcuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmcKICAgICAgICovCiAgICAgIGFkZChhTWFwcGluZykgewogICAgICAgIGlmIChnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKHRoaXMuX2xhc3QsIGFNYXBwaW5nKSkgewogICAgICAgICAgdGhpcy5fbGFzdCA9IGFNYXBwaW5nOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBmbGF0LCBzb3J0ZWQgYXJyYXkgb2YgbWFwcGluZ3MuIFRoZSBtYXBwaW5ncyBhcmUgc29ydGVkIGJ5CiAgICAgICAqIGdlbmVyYXRlZCBwb3NpdGlvbi4KICAgICAgICoKICAgICAgICogV0FSTklORzogVGhpcyBtZXRob2QgcmV0dXJucyBpbnRlcm5hbCBkYXRhIHdpdGhvdXQgY29weWluZywgZm9yCiAgICAgICAqIHBlcmZvcm1hbmNlLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgTk9UIGJlIG11dGF0ZWQsIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcwogICAgICAgKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93bgogICAgICAgKiBjb3B5LgogICAgICAgKi8KICAgICAgdG9BcnJheSgpIHsKICAgICAgICBpZiAoIXRoaXMuX3NvcnRlZCkgewogICAgICAgICAgdGhpcy5fYXJyYXkuc29ydCh1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKTsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9hcnJheTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcwp2YXIgcmVxdWlyZV9zb3VyY2VfbWFwX2dlbmVyYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1nZW5lcmF0b3IuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgYmFzZTY0VkxRID0gcmVxdWlyZV9iYXNlNjRfdmxxKCk7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBBcnJheVNldCA9IHJlcXVpcmVfYXJyYXlfc2V0KCkuQXJyYXlTZXQ7CiAgICB2YXIgTWFwcGluZ0xpc3QgPSByZXF1aXJlX21hcHBpbmdfbGlzdCgpLk1hcHBpbmdMaXN0OwogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IGNsYXNzIF9Tb3VyY2VNYXBHZW5lcmF0b3IgewogICAgICBjb25zdHJ1Y3RvcihhQXJncykgewogICAgICAgIGlmICghYUFyZ3MpIHsKICAgICAgICAgIGFBcmdzID0ge307CiAgICAgICAgfQogICAgICAgIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgImZpbGUiLCBudWxsKTsKICAgICAgICB0aGlzLl9zb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2VSb290IiwgbnVsbCk7CiAgICAgICAgdGhpcy5fc2tpcFZhbGlkYXRpb24gPSB1dGlsLmdldEFyZyhhQXJncywgInNraXBWYWxpZGF0aW9uIiwgZmFsc2UpOwogICAgICAgIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICB0aGlzLl9uYW1lcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgIHRoaXMuX21hcHBpbmdzID0gbmV3IE1hcHBpbmdMaXN0KCk7CiAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lcgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAuCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHsKICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZVJvb3Q7CiAgICAgICAgY29uc3QgZ2VuZXJhdG9yID0gbmV3IF9Tb3VyY2VNYXBHZW5lcmF0b3IoewogICAgICAgICAgZmlsZTogYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUsCiAgICAgICAgICBzb3VyY2VSb290CiAgICAgICAgfSk7CiAgICAgICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGNvbnN0IG5ld01hcHBpbmcgPSB7CiAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkgewogICAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmV3TWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG5ld01hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXdNYXBwaW5nLm9yaWdpbmFsID0gewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGdlbmVyYXRvci5hZGRNYXBwaW5nKG5ld01hcHBpbmcpOwogICAgICAgIH0pOwogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgbGV0IHNvdXJjZVJlbGF0aXZlID0gc291cmNlRmlsZTsKICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9PSBudWxsKSB7CiAgICAgICAgICAgIHNvdXJjZVJlbGF0aXZlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZ2VuZXJhdG9yLl9zb3VyY2VzLmhhcyhzb3VyY2VSZWxhdGl2ZSkpIHsKICAgICAgICAgICAgZ2VuZXJhdG9yLl9zb3VyY2VzLmFkZChzb3VyY2VSZWxhdGl2ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7CiAgICAgICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7CiAgICAgICAgICAgIGdlbmVyYXRvci5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBnZW5lcmF0b3I7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHNpbmdsZSBtYXBwaW5nIGZyb20gb3JpZ2luYWwgc291cmNlIGxpbmUgYW5kIGNvbHVtbiB0byB0aGUgZ2VuZXJhdGVkCiAgICAgICAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBmb3IgdGhpcyBzb3VyY2UgbWFwIGJlaW5nIGNyZWF0ZWQuIFRoZSBtYXBwaW5nCiAgICAgICAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBnZW5lcmF0ZWQ6IEFuIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIChyZWxhdGl2ZSB0byB0aGUgc291cmNlUm9vdCkuCiAgICAgICAqICAgLSBuYW1lOiBBbiBvcHRpb25hbCBvcmlnaW5hbCB0b2tlbiBuYW1lIGZvciB0aGlzIG1hcHBpbmcuCiAgICAgICAqLwogICAgICBhZGRNYXBwaW5nKGFBcmdzKSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJnZW5lcmF0ZWQiKTsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAib3JpZ2luYWwiLCBudWxsKTsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICBsZXQgbmFtZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibmFtZSIsIG51bGwpOwogICAgICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHsKICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKICAgICAgICAgIHNvdXJjZSA9IFN0cmluZyhzb3VyY2UpOwogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKICAgICAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSk7CiAgICAgICAgICBpZiAoIXRoaXMuX25hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbiwKICAgICAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLAogICAgICAgICAgc291cmNlLAogICAgICAgICAgbmFtZQogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTZXQgdGhlIHNvdXJjZSBjb250ZW50IGZvciBhIHNvdXJjZSBmaWxlLgogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICBsZXQgc291cmNlID0gYVNvdXJjZUZpbGU7CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZVJvb3QgIT0gbnVsbCkgewogICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLl9zb3VyY2VSb290LCBzb3VyY2UpOwogICAgICAgIH0KICAgICAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhzb3VyY2UpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV07CiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fc291cmNlc0NvbnRlbnRzKS5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlCiAgICAgICAqIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkLiBFYWNoIG1hcHBpbmcgdG8gdGhlIHN1cHBsaWVkIHNvdXJjZSBmaWxlIGlzCiAgICAgICAqIHJld3JpdHRlbiB1c2luZyB0aGUgc3VwcGxpZWQgc291cmNlIG1hcC4gTm90ZTogVGhlIHJlc29sdXRpb24gZm9yIHRoZQogICAgICAgKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBzb3VyY2UgbWFwIHRvIGJlIGFwcGxpZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS4KICAgICAgICogICAgICAgIElmIG9taXR0ZWQsIFNvdXJjZU1hcENvbnN1bWVyJ3MgZmlsZSBwcm9wZXJ0eSB3aWxsIGJlIHVzZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwUGF0aCBPcHRpb25hbC4gVGhlIGRpcm5hbWUgb2YgdGhlIHBhdGggdG8gdGhlIHNvdXJjZSBtYXAKICAgICAgICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuCiAgICAgICAqICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBuZWVkZWQgd2hlbiB0aGUgdHdvIHNvdXJjZSBtYXBzIGFyZW4ndCBpbiB0aGUgc2FtZQogICAgICAgKiAgICAgICAgZGlyZWN0b3J5LCBhbmQgdGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZCBjb250YWlucyByZWxhdGl2ZSBzb3VyY2UKICAgICAgICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuCiAgICAgICAqICAgICAgICByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKi8KICAgICAgYXBwbHlTb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyLCBhU291cmNlRmlsZSwgYVNvdXJjZU1hcFBhdGgpIHsKICAgICAgICBsZXQgc291cmNlRmlsZSA9IGFTb3VyY2VGaWxlOwogICAgICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7CiAgICAgICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYFNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCBvciB0aGUgc291cmNlIG1hcCdzICJmaWxlIiBwcm9wZXJ0eS4gQm90aCB3ZXJlIG9taXR0ZWQuYAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlRmlsZSA9IGFTb3VyY2VNYXBDb25zdW1lci5maWxlOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDsKICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBzb3VyY2VGaWxlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3U291cmNlcyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKS5sZW5ndGggPiAwID8gbmV3IEFycmF5U2V0KCkgOiB0aGlzLl9zb3VyY2VzOwogICAgICAgIGNvbnN0IG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7CiAgICAgICAgdGhpcy5fbWFwcGluZ3MudW5zb3J0ZWRGb3JFYWNoKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gYVNvdXJjZU1hcENvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3IoewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7CiAgICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTsKICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWwuY29sdW1uOwogICAgICAgICAgICAgIGlmIChvcmlnaW5hbC5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcubmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBtYXBwaW5nLnNvdXJjZTsKICAgICAgICAgIGlmIChzb3VyY2UgIT0gbnVsbCAmJiAhbmV3U291cmNlcy5oYXMoc291cmNlKSkgewogICAgICAgICAgICBuZXdTb3VyY2VzLmFkZChzb3VyY2UpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbmFtZSA9IG1hcHBpbmcubmFtZTsKICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgIW5ld05hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICBuZXdOYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgdGhpcyk7CiAgICAgICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7CiAgICAgICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lczsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNyY0ZpbGUpIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzcmNGaWxlKTsKICAgICAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICBzcmNGaWxlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBzcmNGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc3JjRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc3JjRmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zZXRTb3VyY2VDb250ZW50KHNyY0ZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YToKICAgICAgICoKICAgICAgICogICAxLiBKdXN0IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uCiAgICAgICAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgMy4gR2VuZXJhdGVkIGFuZCBvcmlnaW5hbCBwb3NpdGlvbiwgb3JpZ2luYWwgc291cmNlLCBhcyB3ZWxsIGFzIGEgbmFtZQogICAgICAgKiAgICAgIHRva2VuLgogICAgICAgKgogICAgICAgKiBUbyBtYWludGFpbiBjb25zaXN0ZW5jeSwgd2UgdmFsaWRhdGUgdGhhdCBhbnkgbmV3IG1hcHBpbmcgYmVpbmcgYWRkZWQgZmFsbHMKICAgICAgICogaW4gdG8gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuCiAgICAgICAqLwogICAgICBfdmFsaWRhdGVNYXBwaW5nKGFHZW5lcmF0ZWQsIGFPcmlnaW5hbCwgYVNvdXJjZSwgYU5hbWUpIHsKICAgICAgICBpZiAoYU9yaWdpbmFsICYmIHR5cGVvZiBhT3JpZ2luYWwubGluZSAhPT0gIm51bWJlciIgJiYgdHlwZW9mIGFPcmlnaW5hbC5jb2x1bW4gIT09ICJudW1iZXIiKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICJvcmlnaW5hbC5saW5lIGFuZCBvcmlnaW5hbC5jb2x1bW4gYXJlIG5vdCBudW1iZXJzIC0tIHlvdSBwcm9iYWJseSBtZWFudCB0byBvbWl0IHRoZSBvcmlnaW5hbCBtYXBwaW5nIGVudGlyZWx5IGFuZCBvbmx5IG1hcCB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9uLiBJZiBzbywgcGFzcyBudWxsIGZvciB0aGUgb3JpZ2luYWwgbWFwcGluZyBpbnN0ZWFkIG9mIGFuIG9iamVjdCB3aXRoIGVtcHR5IG9yIG51bGwgdmFsdWVzLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwICYmICFhT3JpZ2luYWwgJiYgIWFTb3VyY2UgJiYgIWFOYW1lKSB7CiAgICAgICAgfSBlbHNlIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYU9yaWdpbmFsICYmICJsaW5lIiBpbiBhT3JpZ2luYWwgJiYgImNvbHVtbiIgaW4gYU9yaWdpbmFsICYmIGFHZW5lcmF0ZWQubGluZSA+IDAgJiYgYUdlbmVyYXRlZC5jb2x1bW4gPj0gMCAmJiBhT3JpZ2luYWwubGluZSA+IDAgJiYgYU9yaWdpbmFsLmNvbHVtbiA+PSAwICYmIGFTb3VyY2UpIHsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hcHBpbmc6ICIgKyBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCwKICAgICAgICAgICAgc291cmNlOiBhU291cmNlLAogICAgICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLAogICAgICAgICAgICBuYW1lOiBhTmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogU2VyaWFsaXplIHRoZSBhY2N1bXVsYXRlZCBtYXBwaW5ncyBpbiB0byB0aGUgc3RyZWFtIG9mIGJhc2UgNjQgVkxRcwogICAgICAgKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LgogICAgICAgKi8KICAgICAgX3NlcmlhbGl6ZU1hcHBpbmdzKCkgewogICAgICAgIGxldCBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzR2VuZXJhdGVkTGluZSA9IDE7CiAgICAgICAgbGV0IHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSAwOwogICAgICAgIGxldCBwcmV2aW91c09yaWdpbmFsTGluZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzTmFtZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzU291cmNlID0gMDsKICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CiAgICAgICAgbGV0IG5leHQ7CiAgICAgICAgbGV0IG1hcHBpbmc7CiAgICAgICAgbGV0IG5hbWVJZHg7CiAgICAgICAgbGV0IHNvdXJjZUlkeDsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIG1hcHBpbmcgPSBtYXBwaW5nc1tpXTsKICAgICAgICAgIG5leHQgPSAiIjsKICAgICAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgICAgIHdoaWxlIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIG5leHQgKz0gIjsiOwogICAgICAgICAgICAgIHByZXZpb3VzR2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgIGlmICghdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nLCBtYXBwaW5nc1tpIC0gMV0pKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCArPSAiLCI7CiAgICAgICAgICB9CiAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlSWR4ID0gdGhpcy5fc291cmNlcy5pbmRleE9mKG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKHNvdXJjZUlkeCAtIHByZXZpb3VzU291cmNlKTsKICAgICAgICAgICAgcHJldmlvdXNTb3VyY2UgPSBzb3VyY2VJZHg7CiAgICAgICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDEgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7CiAgICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxOwogICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbENvbHVtbiAtIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4pOwogICAgICAgICAgICBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmFtZUlkeCA9IHRoaXMuX25hbWVzLmluZGV4T2YobWFwcGluZy5uYW1lKTsKICAgICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobmFtZUlkeCAtIHByZXZpb3VzTmFtZSk7CiAgICAgICAgICAgICAgcHJldmlvdXNOYW1lID0gbmFtZUlkeDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9IG5leHQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgX2dlbmVyYXRlU291cmNlc0NvbnRlbnQoYVNvdXJjZXMsIGFTb3VyY2VSb290KSB7CiAgICAgICAgcmV0dXJuIGFTb3VyY2VzLm1hcChmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICAgIGlmICghdGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFTb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZShhU291cmNlUm9vdCwgc291cmNlKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTsKICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV0gOiBudWxsOwogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBFeHRlcm5hbGl6ZSB0aGUgc291cmNlIG1hcC4KICAgICAgICovCiAgICAgIHRvSlNPTigpIHsKICAgICAgICBjb25zdCBtYXAyID0gewogICAgICAgICAgdmVyc2lvbjogdGhpcy5fdmVyc2lvbiwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLAogICAgICAgICAgbmFtZXM6IHRoaXMuX25hbWVzLnRvQXJyYXkoKSwKICAgICAgICAgIG1hcHBpbmdzOiB0aGlzLl9zZXJpYWxpemVNYXBwaW5ncygpCiAgICAgICAgfTsKICAgICAgICBpZiAodGhpcy5fZmlsZSAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLmZpbGUgPSB0aGlzLl9maWxlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZVJvb3QgPSB0aGlzLl9zb3VyY2VSb290OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZXNDb250ZW50ID0gdGhpcy5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChtYXAyLnNvdXJjZXMsIG1hcDIuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZW5kZXIgdGhlIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkIHRvIGEgc3RyaW5nLgogICAgICAgKi8KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBHZW5lcmF0b3IgPSBTb3VyY2VNYXBHZW5lcmF0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iaW5hcnktc2VhcmNoLmpzCnZhciByZXF1aXJlX2JpbmFyeV9zZWFyY2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2JpbmFyeS1zZWFyY2guanMiKGV4cG9ydHMyKSB7CiAgICBleHBvcnRzMi5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBleHBvcnRzMi5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBmdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7CiAgICAgIGNvbnN0IG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7CiAgICAgIGNvbnN0IGNtcCA9IGFDb21wYXJlKGFOZWVkbGUsIGFIYXlzdGFja1ttaWRdLCB0cnVlKTsKICAgICAgaWYgKGNtcCA9PT0gMCkgewogICAgICAgIHJldHVybiBtaWQ7CiAgICAgIH0gZWxzZSBpZiAoY21wID4gMCkgewogICAgICAgIGlmIChhSGlnaCAtIG1pZCA+IDEpIHsKICAgICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2gobWlkLCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpOwogICAgICAgIH0KICAgICAgICBpZiAoYUJpYXMgPT0gZXhwb3J0czIuTEVBU1RfVVBQRVJfQk9VTkQpIHsKICAgICAgICAgIHJldHVybiBhSGlnaCA8IGFIYXlzdGFjay5sZW5ndGggPyBhSGlnaCA6IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbWlkOwogICAgICB9CiAgICAgIGlmIChtaWQgLSBhTG93ID4gMSkgewogICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7CiAgICAgIH0KICAgICAgaWYgKGFCaWFzID09IGV4cG9ydHMyLkxFQVNUX1VQUEVSX0JPVU5EKSB7CiAgICAgICAgcmV0dXJuIG1pZDsKICAgICAgfQogICAgICByZXR1cm4gYUxvdyA8IDAgPyAtMSA6IGFMb3c7CiAgICB9CiAgICBleHBvcnRzMi5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHsKICAgICAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgbGV0IGluZGV4ID0gcmVjdXJzaXZlU2VhcmNoKAogICAgICAgIC0xLAogICAgICAgIGFIYXlzdGFjay5sZW5ndGgsCiAgICAgICAgYU5lZWRsZSwKICAgICAgICBhSGF5c3RhY2ssCiAgICAgICAgYUNvbXBhcmUsCiAgICAgICAgYUJpYXMgfHwgZXhwb3J0czIuR1JFQVRFU1RfTE9XRVJfQk9VTkQKICAgICAgKTsKICAgICAgaWYgKGluZGV4IDwgMCkgewogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICB3aGlsZSAoaW5kZXggLSAxID49IDApIHsKICAgICAgICBpZiAoYUNvbXBhcmUoYUhheXN0YWNrW2luZGV4XSwgYUhheXN0YWNrW2luZGV4IC0gMV0sIHRydWUpICE9PSAwKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLS1pbmRleDsKICAgICAgfQogICAgICByZXR1cm4gaW5kZXg7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzCnZhciByZXF1aXJlX3JlYWRfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGlzQnJvd3NlckVudmlyb25tZW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzID09PSB3aW5kb3c7CiAgICB9LmNhbGwoKTsKICAgIGlmIChpc0Jyb3dzZXJFbnZpcm9ubWVudCkgewogICAgICBsZXQgbWFwcGluZ3NXYXNtID0gbnVsbDsKICAgICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gcmVhZFdhc20oKSB7CiAgICAgICAgaWYgKHR5cGVvZiBtYXBwaW5nc1dhc20gPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gZmV0Y2gobWFwcGluZ3NXYXNtKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChtYXBwaW5nc1dhc20gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYXBwaW5nc1dhc20pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIllvdSBtdXN0IHByb3ZpZGUgdGhlIHN0cmluZyBVUkwgb3IgQXJyYXlCdWZmZXIgY29udGVudHMgb2YgbGliL21hcHBpbmdzLndhc20gYnkgY2FsbGluZyBTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKHsgJ2xpYi9tYXBwaW5ncy53YXNtJzogLi4uIH0pIGJlZm9yZSB1c2luZyBTb3VyY2VNYXBDb25zdW1lciIpOwogICAgICB9OwogICAgICBtb2R1bGUyLmV4cG9ydHMuaW5pdGlhbGl6ZSA9IChpbnB1dCkgPT4gbWFwcGluZ3NXYXNtID0gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICBjb25zdCBmcyA9IHJlcXVpcmUoImZzIik7CiAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCJwYXRoIik7CiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlYWRXYXNtKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICBjb25zdCB3YXNtUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICJtYXBwaW5ncy53YXNtIik7CiAgICAgICAgICBmcy5yZWFkRmlsZSh3YXNtUGF0aCwgbnVsbCwgKGVycm9yLCBkYXRhKSA9PiB7CiAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgIHJlamVjdChlcnJvcik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc29sdmUoZGF0YS5idWZmZXIpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIG1vZHVsZTIuZXhwb3J0cy5pbml0aWFsaXplID0gKF8pID0+IHsKICAgICAgICBjb25zb2xlLmRlYnVnKCJTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplIGlzIGEgbm8tb3Agd2hlbiBydW5uaW5nIGluIG5vZGUuanMiKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3dhc20uanMKdmFyIHJlcXVpcmVfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvd2FzbS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICBmdW5jdGlvbiBNYXBwaW5nKCkgewogICAgICB0aGlzLmdlbmVyYXRlZExpbmUgPSAwOwogICAgICB0aGlzLmdlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgIHRoaXMubGFzdEdlbmVyYXRlZENvbHVtbiA9IG51bGw7CiAgICAgIHRoaXMuc291cmNlID0gbnVsbDsKICAgICAgdGhpcy5vcmlnaW5hbExpbmUgPSBudWxsOwogICAgICB0aGlzLm9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgdGhpcy5uYW1lID0gbnVsbDsKICAgIH0KICAgIHZhciBjYWNoZWRXYXNtID0gbnVsbDsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHdhc20oKSB7CiAgICAgIGlmIChjYWNoZWRXYXNtKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlZFdhc207CiAgICAgIH0KICAgICAgY29uc3QgY2FsbGJhY2tTdGFjayA9IFtdOwogICAgICBjYWNoZWRXYXNtID0gcmVhZFdhc20oKS50aGVuKChidWZmZXIpID0+IHsKICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnVmZmVyLCB7CiAgICAgICAgICBlbnY6IHsKICAgICAgICAgICAgbWFwcGluZ19jYWxsYmFjayhnZW5lcmF0ZWRMaW5lLCBnZW5lcmF0ZWRDb2x1bW4sIGhhc0xhc3RHZW5lcmF0ZWRDb2x1bW4sIGxhc3RHZW5lcmF0ZWRDb2x1bW4sIGhhc09yaWdpbmFsLCBzb3VyY2UsIG9yaWdpbmFsTGluZSwgb3JpZ2luYWxDb2x1bW4sIGhhc05hbWUsIG5hbWUpIHsKICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBnZW5lcmF0ZWRMaW5lICsgMTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IGdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgICAgICBpZiAoaGFzTGFzdEdlbmVyYXRlZENvbHVtbikgewogICAgICAgICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbGFzdEdlbmVyYXRlZENvbHVtbiAtIDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChoYXNPcmlnaW5hbCkgewogICAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsTGluZSArIDE7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWxDb2x1bW47CiAgICAgICAgICAgICAgICBpZiAoaGFzTmFtZSkgewogICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYWxsYmFja1N0YWNrW2NhbGxiYWNrU3RhY2subGVuZ3RoIC0gMV0obWFwcGluZyk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2FsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImFsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfZ2VuZXJhdGVkX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImdlbmVyYXRlZF9sb2NhdGlvbl9mb3IiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2dlbmVyYXRlZF9sb2NhdGlvbl9mb3IoKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJnZW5lcmF0ZWRfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X29yaWdpbmFsX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoIm9yaWdpbmFsX2xvY2F0aW9uX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfb3JpZ2luYWxfbG9jYXRpb25fZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgib3JpZ2luYWxfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzdGFydF9zb3J0X2J5X29yaWdpbmFsX2xvY2F0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgic29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoInNvcnRfYnlfb3JpZ2luYWxfbG9jYXRpb24iKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KS50aGVuKChXYXNtKSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGV4cG9ydHM6IFdhc20uaW5zdGFuY2UuZXhwb3J0cywKICAgICAgICAgIHdpdGhNYXBwaW5nQ2FsbGJhY2s6IChtYXBwaW5nQ2FsbGJhY2ssIGYpID0+IHsKICAgICAgICAgICAgY2FsbGJhY2tTdGFjay5wdXNoKG1hcHBpbmdDYWxsYmFjayk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZigpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGNhbGxiYWNrU3RhY2sucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KS50aGVuKG51bGwsIChlKSA9PiB7CiAgICAgICAgY2FjaGVkV2FzbSA9IG51bGw7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfSk7CiAgICAgIHJldHVybiBjYWNoZWRXYXNtOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1tYXAtY29uc3VtZXIuanMKdmFyIHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIoZXhwb3J0czIpIHsKICAgIHZhciB1dGlsID0gcmVxdWlyZV91dGlsMigpOwogICAgdmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmVfYmluYXJ5X3NlYXJjaCgpOwogICAgdmFyIEFycmF5U2V0ID0gcmVxdWlyZV9hcnJheV9zZXQoKS5BcnJheVNldDsKICAgIHZhciBiYXNlNjRWTFEgPSByZXF1aXJlX2Jhc2U2NF92bHEoKTsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICB2YXIgd2FzbSA9IHJlcXVpcmVfd2FzbSgpOwogICAgdmFyIElOVEVSTkFMID0gU3ltYm9sKCJzbWNJbnRlcm5hbCIpOwogICAgdmFyIFNvdXJjZU1hcENvbnN1bWVyID0gY2xhc3MgX1NvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIGlmIChhU291cmNlTWFwID09IElOVEVSTkFMKSB7CiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX2ZhY3RvcnkoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIH0KICAgICAgc3RhdGljIGluaXRpYWxpemUob3B0cykgewogICAgICAgIHJlYWRXYXNtLmluaXRpYWxpemUob3B0c1sibGliL21hcHBpbmdzLndhc20iXSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBfZmFjdG9yeUJTTShhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29uc3RydWN0IGEgbmV3IGBTb3VyY2VNYXBDb25zdW1lcmAgZnJvbSBgcmF3U291cmNlTWFwYCBhbmQgYHNvdXJjZU1hcFVybGAKICAgICAgICogKHNlZSB0aGUgYFNvdXJjZU1hcENvbnN1bWVyYCBjb25zdHJ1Y3RvciBmb3IgZGV0YWlscy4gVGhlbiwgaW52b2tlIHRoZSBgYXN5bmMKICAgICAgICogZnVuY3Rpb24gZihTb3VyY2VNYXBDb25zdW1lcikgLT4gVGAgd2l0aCB0aGUgbmV3bHkgY29uc3RydWN0ZWQgY29uc3VtZXIsIHdhaXQKICAgICAgICogZm9yIGBmYCB0byBjb21wbGV0ZSwgY2FsbCBgZGVzdHJveWAgb24gdGhlIGNvbnN1bWVyLCBhbmQgcmV0dXJuIGBmYCdzIHJldHVybgogICAgICAgKiB2YWx1ZS4KICAgICAgICoKICAgICAgICogWW91IG11c3Qgbm90IHVzZSB0aGUgY29uc3VtZXIgYWZ0ZXIgYGZgIGNvbXBsZXRlcyEKICAgICAgICoKICAgICAgICogQnkgdXNpbmcgYHdpdGhgLCB5b3UgZG8gbm90IGhhdmUgdG8gcmVtZW1iZXIgdG8gbWFudWFsbHkgY2FsbCBgZGVzdHJveWAgb24KICAgICAgICogdGhlIGNvbnN1bWVyLCBzaW5jZSBpdCB3aWxsIGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IG9uY2UgYGZgIGNvbXBsZXRlcy4KICAgICAgICoKICAgICAgICogYGBganMKICAgICAgICogY29uc3QgeFNxdWFyZWQgPSBhd2FpdCBTb3VyY2VNYXBDb25zdW1lci53aXRoKAogICAgICAgKiAgIG15UmF3U291cmNlTWFwLAogICAgICAgKiAgIG51bGwsCiAgICAgICAqICAgYXN5bmMgZnVuY3Rpb24gKGNvbnN1bWVyKSB7CiAgICAgICAqICAgICAvLyBVc2UgYGNvbnN1bWVyYCBpbnNpZGUgaGVyZSBhbmQgZG9uJ3Qgd29ycnkgYWJvdXQgcmVtZW1iZXJpbmcKICAgICAgICogICAgIC8vIHRvIGNhbGwgYGRlc3Ryb3lgLgogICAgICAgKgogICAgICAgKiAgICAgY29uc3QgeCA9IGF3YWl0IHdoYXRldmVyKGNvbnN1bWVyKTsKICAgICAgICogICAgIHJldHVybiB4ICogeDsKICAgICAgICogICB9CiAgICAgICAqICk7CiAgICAgICAqCiAgICAgICAqIC8vIFlvdSBtYXkgbm90IHVzZSB0aGF0IGBjb25zdW1lcmAgYW55bW9yZSBvdXQgaGVyZTsgaXQgaGFzCiAgICAgICAqIC8vIGJlZW4gZGVzdHJveWVkLiBCdXQgeW91IGNhbiB1c2UgYHhTcXVhcmVkYC4KICAgICAgICogY29uc29sZS5sb2coeFNxdWFyZWQpOwogICAgICAgKiBgYGAKICAgICAgICovCiAgICAgIHN0YXRpYyBhc3luYyB3aXRoKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsLCBmKSB7CiAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBuZXcgX1NvdXJjZU1hcENvbnN1bWVyKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsKTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGF3YWl0IGYoY29uc3VtZXIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjb25zdW1lci5kZXN0cm95KCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5CiAgICAgICAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZAogICAgICAgKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLgogICAgICAgKi8KICAgICAgX3BhcnNlTWFwcGluZ3MoYVN0ciwgYVNvdXJjZVJvb3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgX3BhcnNlTWFwcGluZ3MiKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogSXRlcmF0ZSBvdmVyIGVhY2ggbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIHNvdXJjZS9saW5lL2NvbHVtbiBhbmQgYQogICAgICAgKiBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gaW4gdGhpcyBzb3VyY2UgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gRnVuY3Rpb24gYUNhbGxiYWNrCiAgICAgICAqICAgICAgICBUaGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2l0aCBlYWNoIG1hcHBpbmcuCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHQKICAgICAgICogICAgICAgIE9wdGlvbmFsLiBJZiBzcGVjaWZpZWQsIHRoaXMgb2JqZWN0IHdpbGwgYmUgdGhlIHZhbHVlIG9mIGB0aGlzYCBldmVyeQogICAgICAgKiAgICAgICAgdGltZSB0aGF0IGBhQ2FsbGJhY2tgIGlzIGNhbGxlZC4KICAgICAgICogQHBhcmFtIGFPcmRlcgogICAgICAgKiAgICAgICAgRWl0aGVyIGBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVJgIG9yCiAgICAgICAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVJgLiBTcGVjaWZpZXMgd2hldGhlciB5b3Ugd2FudCB0bwogICAgICAgKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW4KICAgICAgICogICAgICAgIG9yZGVyIG9yIHRoZSBvcmlnaW5hbCdzIHNvdXJjZS9saW5lL2NvbHVtbiBvcmRlciwgcmVzcGVjdGl2ZWx5LiBEZWZhdWx0cyB0bwogICAgICAgKiAgICAgICAgYFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUmAuCiAgICAgICAqLwogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZWFjaE1hcHBpbmciKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwcm92aWRlZC4gSWYgbm8gY29sdW1uIGlzIHByb3ZpZGVkLCByZXR1cm5zIGFsbCBtYXBwaW5ncwogICAgICAgKiBjb3JyZXNwb25kaW5nIHRvIGEgZWl0aGVyIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yIG9yIHRoZSBuZXh0CiAgICAgICAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3MKICAgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbGluZSBhbmQgZWl0aGVyIHRoZSBjb2x1bW4gd2UgYXJlIHNlYXJjaGluZyBmb3IKICAgICAgICogb3IgdGhlIG5leHQgY2xvc2VzdCBjb2x1bW4gdGhhdCBoYXMgYW55IG9mZnNldHMuCiAgICAgICAqCiAgICAgICAqIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICoKICAgICAgICogYW5kIGFuIGFycmF5IG9mIG9iamVjdHMgaXMgcmV0dXJuZWQsIGVhY2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgIFRoZSBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqLwogICAgICBhbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yIik7CiAgICAgIH0KICAgICAgZGVzdHJveSgpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZGVzdHJveSIpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl92ZXJzaW9uID0gMzsKICAgIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUiA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUiA9IDI7CiAgICBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyOwogICAgdmFyIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBfQmFzaWNTb3VyY2VNYXBDb25zdW1lciBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBsZXQgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZXMiKTsKICAgICAgICAgIGNvbnN0IG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibmFtZXMiLCBbXSk7CiAgICAgICAgICBsZXQgc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZVJvb3QiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IHNvdXJjZXNDb250ZW50ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAic291cmNlc0NvbnRlbnQiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibWFwcGluZ3MiKTsKICAgICAgICAgIGNvbnN0IGZpbGUgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJmaWxlIiwgbnVsbCk7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZVJvb3QpIHsKICAgICAgICAgICAgc291cmNlUm9vdCA9IHV0aWwubm9ybWFsaXplKHNvdXJjZVJvb3QpOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlcyA9IHNvdXJjZXMubWFwKFN0cmluZykubWFwKHV0aWwubm9ybWFsaXplKS5tYXAoZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKSA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKSA6IHNvdXJjZTsKICAgICAgICAgIH0pOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpOwogICAgICAgICAgdGhhdC5fc291cmNlcyA9IEFycmF5U2V0LmZyb21BcnJheShzb3VyY2VzLCB0cnVlKTsKICAgICAgICAgIHRoYXQuX2Fic29sdXRlU291cmNlcyA9IHRoYXQuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIHRoYXQuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7CiAgICAgICAgICB0aGF0LnNvdXJjZXNDb250ZW50ID0gc291cmNlc0NvbnRlbnQ7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICAgICAgdGhhdC5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDsKICAgICAgICAgIHRoYXQuZmlsZSA9IGZpbGU7CiAgICAgICAgICB0aGF0Ll9jb21wdXRlZENvbHVtblNwYW5zID0gZmFsc2U7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5nc1B0ciA9IDA7CiAgICAgICAgICB0aGF0Ll93YXNtID0gbnVsbDsKICAgICAgICAgIHJldHVybiB3YXNtKCkudGhlbigodykgPT4gewogICAgICAgICAgICB0aGF0Ll93YXNtID0gdzsKICAgICAgICAgICAgcmV0dXJuIHRoYXQ7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHRoZSBpbmRleCBvZiBhIHNvdXJjZS4gIFJldHVybnMgLTEgaWYgbm90CiAgICAgICAqIGZvdW5kLgogICAgICAgKi8KICAgICAgX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKSB7CiAgICAgICAgbGV0IHJlbGF0aXZlU291cmNlID0gYVNvdXJjZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZXMuaGFzKHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMuaW5kZXhPZihyZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYWJzb2x1dGVTb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICBpZiAodGhpcy5fYWJzb2x1dGVTb3VyY2VzW2ldID09IGFTb3VyY2UpIHsKICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU291cmNlTWFwR2VuZXJhdG9yIGFTb3VyY2VNYXAKICAgICAgICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC4KICAgICAgICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMCiAgICAgICAqICAgICAgICBUaGUgVVJMIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIGNhbiBiZSBmb3VuZCAob3B0aW9uYWwpCiAgICAgICAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXIKICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgICByZXR1cm4gbmV3IF9CYXNpY1NvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgZ2V0IHNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpOwogICAgICB9CiAgICAgIF9nZXRNYXBwaW5nc1B0cigpIHsKICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3NQdHIgPT09IDApIHsKICAgICAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1B0cjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3Qgc2l6ZSA9IGFTdHIubGVuZ3RoOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLmFsbG9jYXRlX21hcHBpbmdzKHNpemUpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fd2FzbS5leHBvcnRzLm1lbW9yeS5idWZmZXIsIG1hcHBpbmdzQnVmUHRyLCBzaXplKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgbWFwcGluZ3NCdWZbaV0gPSBhU3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1hcHBpbmdzUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLnBhcnNlX21hcHBpbmdzKG1hcHBpbmdzQnVmUHRyKTsKICAgICAgICBpZiAoIW1hcHBpbmdzUHRyKSB7CiAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuX3dhc20uZXhwb3J0cy5nZXRfbGFzdF9lcnJvcigpOwogICAgICAgICAgbGV0IG1zZyA9IGBFcnJvciBwYXJzaW5nIG1hcHBpbmdzIChjb2RlICR7ZXJyb3J9KTogYDsKICAgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG5lZ2F0aXZlIGxpbmUsIGNvbHVtbiwgc291cmNlIGluZGV4LCBvciBuYW1lIGluZGV4IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG51bWJlciBsYXJnZXIgdGhhbiAyKiozMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBtc2cgKz0gInJlYWNoZWQgRU9GIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBtc2cgKz0gImludmFsaWQgYmFzZSA2NCBjaGFyYWN0ZXIgd2hpbGUgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgbXNnICs9ICJ1bmtub3duIGVycm9yIGNvZGUiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzUHRyID0gbWFwcGluZ3NQdHI7CiAgICAgIH0KICAgICAgZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7CiAgICAgICAgY29uc3QgY29udGV4dCA9IGFDb250ZXh0IHx8IG51bGw7CiAgICAgICAgY29uc3Qgb3JkZXIgPSBhT3JkZXIgfHwgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOwogICAgICAgIGNvbnN0IHNvdXJjZVJvb3QgPSB0aGlzLnNvdXJjZVJvb3Q7CiAgICAgICAgdGhpcy5fd2FzbS53aXRoTWFwcGluZ0NhbGxiYWNrKAogICAgICAgICAgKG1hcHBpbmcpID0+IHsKICAgICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwuY29tcHV0ZVNvdXJjZVVSTChzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSB0aGlzLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBhQ2FsbGJhY2suY2FsbChjb250ZXh0LCBtYXBwaW5nKTsKICAgICAgICAgIH0sCiAgICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUjoKICAgICAgICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5ieV9nZW5lcmF0ZWRfbG9jYXRpb24odGhpcy5fZ2V0TWFwcGluZ3NQdHIoKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSOgogICAgICAgICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmJ5X29yaWdpbmFsX2xvY2F0aW9uKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICApOwogICAgICB9CiAgICAgIGFsbEdlbmVyYXRlZFBvc2l0aW9uc0ZvcihhQXJncykgewogICAgICAgIGxldCBzb3VyY2UgPSB1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gYUFyZ3MuY29sdW1uIHx8IDA7CiAgICAgICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7CiAgICAgICAgaWYgKHNvdXJjZSA8IDApIHsKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAob3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBtYXBwaW5ncyA9IFtdOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygKICAgICAgICAgIChtKSA9PiB7CiAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbS5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRDb2x1bW5TcGFucyAmJiBsYXN0Q29sdW1uID09PSBudWxsKSB7CiAgICAgICAgICAgICAgbGFzdENvbHVtbiA9IEluZmluaXR5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1hcHBpbmdzLnB1c2goewogICAgICAgICAgICAgIGxpbmU6IG0uZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG0uZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICB0aGlzLl93YXNtLmV4cG9ydHMuYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKAogICAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgICAgc291cmNlLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZSAtIDEsCiAgICAgICAgICAgICAgImNvbHVtbiIgaW4gYUFyZ3MsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW4KICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHJldHVybiBtYXBwaW5nczsKICAgICAgfQogICAgICBkZXN0cm95KCkgewogICAgICAgIGlmICh0aGlzLl9tYXBwaW5nc1B0ciAhPT0gMCkgewogICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmZyZWVfbWFwcGluZ3ModGhpcy5fbWFwcGluZ3NQdHIpOwogICAgICAgICAgdGhpcy5fbWFwcGluZ3NQdHIgPSAwOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tcHV0ZSB0aGUgbGFzdCBjb2x1bW4gZm9yIGVhY2ggZ2VuZXJhdGVkIG1hcHBpbmcuIFRoZSBsYXN0IGNvbHVtbiBpcwogICAgICAgKiBpbmNsdXNpdmUuCiAgICAgICAqLwogICAgICBjb21wdXRlQ29sdW1uU3BhbnMoKSB7CiAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmNvbXB1dGVfY29sdW1uX3NwYW5zKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgIHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMgPSB0cnVlOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWQKICAgICAgICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0CiAgICAgICAqIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLgogICAgICAgKi8KICAgICAgb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykgewogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIpCiAgICAgICAgfTsKICAgICAgICBpZiAobmVlZGxlLmdlbmVyYXRlZExpbmUgPCAxKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxpbmUgbnVtYmVycyBtdXN0IGJlID49IDEiKTsKICAgICAgICB9CiAgICAgICAgaWYgKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5vcmlnaW5hbF9sb2NhdGlvbl9mb3IoCiAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgIG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLmdlbmVyYXRlZENvbHVtbiwKICAgICAgICAgICAgYmlhcwogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgICBpZiAobWFwcGluZykgewogICAgICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHsKICAgICAgICAgICAgbGV0IHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTsKICAgICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAibmFtZSIsIG51bGwpOwogICAgICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxMaW5lIiwgbnVsbCksCiAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxDb2x1bW4iLCBudWxsKSwKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzb3VyY2U6IG51bGwsCiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgbmFtZTogbnVsbAogICAgICAgIH07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZQogICAgICAgKiBtYXAsIGZhbHNlIG90aGVyd2lzZS4KICAgICAgICovCiAgICAgIGhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiYgIXRoaXMuc291cmNlc0NvbnRlbnQuc29tZShmdW5jdGlvbihzYykgewogICAgICAgICAgcmV0dXJuIHNjID09IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KGFTb3VyY2UpOwogICAgICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFtpbmRleF07CiAgICAgICAgfQogICAgICAgIGxldCByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7CiAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGxldCB1cmwzOwogICAgICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCAmJiAodXJsMyA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHsKICAgICAgICAgIGNvbnN0IGZpbGVVcmlBYnNQYXRoID0gcmVsYXRpdmVTb3VyY2UucmVwbGFjZSgvXmZpbGU6XC9cLy8sICIiKTsKICAgICAgICAgIGlmICh1cmwzLnNjaGVtZSA9PSAiZmlsZSIgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCghdXJsMy5wYXRoIHx8IHVybDMucGF0aCA9PSAiLyIpICYmIHRoaXMuX3NvdXJjZXMuaGFzKCIvIiArIHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoIi8iICsgcmVsYXRpdmVTb3VyY2UpXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgcmVsYXRpdmVTb3VyY2UgKyAnIiBpcyBub3QgaW4gdGhlIFNvdXJjZU1hcC4nKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoCiAgICAgICAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlcgogICAgICAgKiAgICAgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZQogICAgICAgKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKi8KICAgICAgZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKTsKICAgICAgICBzb3VyY2UgPSB0aGlzLl9maW5kU291cmNlSW5kZXgoc291cmNlKTsKICAgICAgICBpZiAoc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAiY29sdW1uIikKICAgICAgICB9OwogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxMaW5lIDwgMSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJMaW5lIG51bWJlcnMgbXVzdCBiZSA+PSAxIik7CiAgICAgICAgfQogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5nZW5lcmF0ZWRfbG9jYXRpb25fZm9yKAogICAgICAgICAgICB0aGlzLl9nZXRNYXBwaW5nc1B0cigpLAogICAgICAgICAgICBuZWVkbGUuc291cmNlLAogICAgICAgICAgICBuZWVkbGUub3JpZ2luYWxMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLm9yaWdpbmFsQ29sdW1uLAogICAgICAgICAgICBiaWFzCiAgICAgICAgICApOwogICAgICAgIH0pOwogICAgICAgIGlmIChtYXBwaW5nKSB7CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHsKICAgICAgICAgICAgbGV0IGxhc3RDb2x1bW4gPSBtYXBwaW5nLmxhc3RHZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICBsYXN0Q29sdW1uID0gSW5maW5pdHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgImdlbmVyYXRlZENvbHVtbiIsIG51bGwpLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxpbmU6IG51bGwsCiAgICAgICAgICBjb2x1bW46IG51bGwsCiAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgfTsKICAgIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7CiAgICBleHBvcnRzMi5CYXNpY1NvdXJjZU1hcENvbnN1bWVyID0gQmFzaWNTb3VyY2VNYXBDb25zdW1lcjsKICAgIHZhciBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNlY3Rpb25zIik7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgdGhhdC5fc291cmNlcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICAgIHRoYXQuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gbnVsbDsKICAgICAgICAgIGxldCBsYXN0T2Zmc2V0ID0gewogICAgICAgICAgICBsaW5lOiAtMSwKICAgICAgICAgICAgY29sdW1uOiAwCiAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zLm1hcCgocykgPT4gewogICAgICAgICAgICBpZiAocy51cmwpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1cHBvcnQgZm9yIHVybCBmaWVsZCBpbiBzZWN0aW9ucyBub3QgaW1wbGVtZW50ZWQuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgIm9mZnNldCIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAibGluZSIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICJjb2x1bW4iKTsKICAgICAgICAgICAgaWYgKG9mZnNldExpbmUgPCBsYXN0T2Zmc2V0LmxpbmUgfHwgb2Zmc2V0TGluZSA9PT0gbGFzdE9mZnNldC5saW5lICYmIG9mZnNldENvbHVtbiA8IGxhc3RPZmZzZXQuY29sdW1uKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWN0aW9uIG9mZnNldHMgbXVzdCBiZSBvcmRlcmVkIGFuZCBub24tb3ZlcmxhcHBpbmcuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldDsKICAgICAgICAgICAgY29uc3QgY29ucyA9IG5ldyBTb3VyY2VNYXBDb25zdW1lcih1dGlsLmdldEFyZyhzLCAibWFwIiksIGFTb3VyY2VNYXBVUkwpOwogICAgICAgICAgICByZXR1cm4gY29ucy50aGVuKChjb25zdW1lcikgPT4gewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHsKICAgICAgICAgICAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW4KICAgICAgICAgICAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLAogICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjb25zdW1lcgogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkpLnRoZW4oKHMpID0+IHsKICAgICAgICAgICAgdGhhdC5fc2VjdGlvbnMgPSBzOwogICAgICAgICAgICByZXR1cm4gdGhhdDsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlCiAgICAgIC8vIHBhcnNlZCBtYXBwaW5nIGNvb3JkaW5hdGVzIGZyb20gdGhlIHNvdXJjZSBtYXAncyAibWFwcGluZ3MiIGF0dHJpYnV0ZS4gVGhleQogICAgICAvLyBhcmUgbGF6aWx5IGluc3RhbnRpYXRlZCwgYWNjZXNzZWQgdmlhIHRoZSBgX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzCiAgICAgIC8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaAogICAgICAvLyB0aGVzZSBob29wcyBiZWNhdXNlIHRoZXJlIGNhbiBiZSBtYW55IHRob3VzYW5kcyBvZiBtYXBwaW5ncywgYW5kIHBhcnNpbmcKICAgICAgLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LgogICAgICAvLwogICAgICAvLyBFYWNoIG9iamVjdCBpbiB0aGUgYXJyYXlzIGlzIG9mIHRoZSBmb3JtOgogICAgICAvLwogICAgICAvLyAgICAgewogICAgICAvLyAgICAgICBnZW5lcmF0ZWRMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLAogICAgICAvLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSwKICAgICAgLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpcwogICAgICAvLyAgICAgICAgICAgICAgIGNodW5rIG9mIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdAogICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsQ29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlIHRoYXQKICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2YKICAgICAgLy8gICAgICAgICAgICAgY29kZS4KICAgICAgLy8gICAgIH0KICAgICAgLy8KICAgICAgLy8gQWxsIHByb3BlcnRpZXMgZXhjZXB0IGZvciBgZ2VuZXJhdGVkTGluZWAgYW5kIGBnZW5lcmF0ZWRDb2x1bW5gIGNhbiBiZQogICAgICAvLyBgbnVsbGAuCiAgICAgIC8vCiAgICAgIC8vIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMuCiAgICAgIC8vCiAgICAgIC8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLgogICAgICBnZXQgX2dlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7CiAgICAgICAgICB0aGlzLl9zb3J0R2VuZXJhdGVkTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nczsKICAgICAgfQogICAgICBnZXQgX29yaWdpbmFsTWFwcGluZ3MoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncykgewogICAgICAgICAgdGhpcy5fc29ydE9yaWdpbmFsTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzOwogICAgICB9CiAgICAgIGdldCBfZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCgpIHsKICAgICAgICBpZiAoIXRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzVW5zb3J0ZWQ7CiAgICAgIH0KICAgICAgZ2V0IF9vcmlnaW5hbE1hcHBpbmdzVW5zb3J0ZWQoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgfQogICAgICBfc29ydEdlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpOwogICAgICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICB9CiAgICAgIF9zb3J0T3JpZ2luYWxNYXBwaW5ncygpIHsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMpOwogICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gbWFwcGluZ3M7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFRoZSBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMuCiAgICAgICAqLwogICAgICBnZXQgc291cmNlcygpIHsKICAgICAgICBjb25zdCBzb3VyY2VzID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzW2pdKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNvdXJjZXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZAogICAgICAgKiBzb3VyY2UncyBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zIHByb3ZpZGVkLiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3QKICAgICAgICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIKICAgICAgICogICAgIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC4KICAgICAgICovCiAgICAgIG9yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgImxpbmUiKSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICJjb2x1bW4iKQogICAgICAgIH07CiAgICAgICAgY29uc3Qgc2VjdGlvbkluZGV4ID0gYmluYXJ5U2VhcmNoLnNlYXJjaCgKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX3NlY3Rpb25zLAogICAgICAgICAgZnVuY3Rpb24oYU5lZWRsZSwgc2VjdGlvbjIpIHsKICAgICAgICAgICAgY29uc3QgY21wID0gYU5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbjIuZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmU7CiAgICAgICAgICAgIGlmIChjbXApIHsKICAgICAgICAgICAgICByZXR1cm4gY21wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhTmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIHNlY3Rpb24yLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTsKICAgICAgICBpZiAoIXNlY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZTogbnVsbCwKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBuYW1lOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25zdW1lci5vcmlnaW5hbFBvc2l0aW9uRm9yKHsKICAgICAgICAgIGxpbmU6IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgIGNvbHVtbjogbmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBuZWVkbGUuZ2VuZXJhdGVkTGluZSA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDEgOiAwKSwKICAgICAgICAgIGJpYXM6IGFBcmdzLmJpYXMKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlCiAgICAgICAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgICAgKi8KICAgICAgaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25zLmV2ZXJ5KGZ1bmN0aW9uKHMpIHsKICAgICAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgdHJ1ZSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICByZXR1cm4gY29udGVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVNvdXJjZSArICciIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLAogICAgICAgKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGgKICAgICAgICogdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLgogICAgICAgKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICovCiAgICAgIGdlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuX2ZpbmRTb3VyY2VJbmRleCh1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpKSA9PT0gLTEpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpOwogICAgICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHsKICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICsgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZFBvc2l0aW9uLmNvbHVtbiArIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkTWFwcGluZ3MgPSB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IFtdOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTWFwcGluZ3MgPSB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgY29uc3Qgc2VjdGlvbk1hcHBpbmdzID0gW107CiAgICAgICAgICBzZWN0aW9uLmNvbnN1bWVyLmVhY2hNYXBwaW5nKChtKSA9PiBzZWN0aW9uTWFwcGluZ3MucHVzaChtKSk7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25NYXBwaW5ncy5sZW5ndGg7IGorKykgewogICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdOwogICAgICAgICAgICBsZXQgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCwgbnVsbCwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7CiAgICAgICAgICAgIGxldCBuYW1lID0gbnVsbDsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkgewogICAgICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWRNYXBwaW5nID0gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUgKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLAogICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW4sCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICB9OwogICAgICAgICAgICBnZW5lcmF0ZWRNYXBwaW5ncy5wdXNoKGFkanVzdGVkTWFwcGluZyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRqdXN0ZWRNYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICBvcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICBjb25zdCBjb250ZXh0ID0gYUNvbnRleHQgfHwgbnVsbDsKICAgICAgICBjb25zdCBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7CiAgICAgICAgbGV0IG1hcHBpbmdzOwogICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOgogICAgICAgICAgICBtYXBwaW5ncyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6CiAgICAgICAgICAgIG1hcHBpbmdzID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gb3JkZXIgb2YgaXRlcmF0aW9uLiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290OwogICAgICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbihtYXBwaW5nKSB7CiAgICAgICAgICBsZXQgc291cmNlID0gbnVsbDsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lLAogICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICBvcmlnaW5hbExpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgbmFtZTogbWFwcGluZy5uYW1lID09PSBudWxsID8gbnVsbCA6IHRoaXMuX25hbWVzLmF0KG1hcHBpbmcubmFtZSkKICAgICAgICAgIH07CiAgICAgICAgfSwgdGhpcykuZm9yRWFjaChhQ2FsbGJhY2ssIGNvbnRleHQpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBGaW5kIHRoZSBtYXBwaW5nIHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBoeXBvdGhldGljYWwgIm5lZWRsZSIgbWFwcGluZyB0aGF0CiAgICAgICAqIHdlIGFyZSBzZWFyY2hpbmcgZm9yIGluIHRoZSBnaXZlbiAiaGF5c3RhY2siIG9mIG1hcHBpbmdzLgogICAgICAgKi8KICAgICAgX2ZpbmRNYXBwaW5nKGFOZWVkbGUsIGFNYXBwaW5ncywgYUxpbmVOYW1lLCBhQ29sdW1uTmFtZSwgYUNvbXBhcmF0b3IsIGFCaWFzKSB7CiAgICAgICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAiICsgYU5lZWRsZVthTGluZU5hbWVdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAiICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoLnNlYXJjaChhTmVlZGxlLCBhTWFwcGluZ3MsIGFDb21wYXJhdG9yLCBhQmlhcyk7CiAgICAgIH0KICAgICAgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7CiAgICAgICAgY29uc3QgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIHNvdXJjZTogdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKSwKICAgICAgICAgIG9yaWdpbmFsTGluZTogbGluZSwKICAgICAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIsIDApCiAgICAgICAgfTsKICAgICAgICBuZWVkbGUuc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KG5lZWRsZS5zb3VyY2UpOwogICAgICAgIGlmIChuZWVkbGUuc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsQ29sdW1uIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2x1bW4gbnVtYmVycyBtdXN0IGJlID49IDAiKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBbXTsKICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZygKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsCiAgICAgICAgICAib3JpZ2luYWxMaW5lIiwKICAgICAgICAgICJvcmlnaW5hbENvbHVtbiIsCiAgICAgICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLAogICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5ECiAgICAgICAgKTsKICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgbGV0IG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTsKICAgICAgICAgIGlmIChhQXJncy5jb2x1bW4gPT09IHZvaWQgMCkgewogICAgICAgICAgICBjb25zdCBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IG9yaWdpbmFsTGluZSkgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiYgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9PSBvcmlnaW5hbENvbHVtbikgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcHBpbmdzOwogICAgICB9CiAgICAgIGRlc3Ryb3koKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuZGVzdHJveSgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciA9IEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcjsKICAgIGZ1bmN0aW9uIF9mYWN0b3J5KGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gInN0cmluZyIpIHsKICAgICAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7CiAgICAgIH0KICAgICAgY29uc3QgY29uc3VtZXIgPSBzb3VyY2VNYXAuc2VjdGlvbnMgIT0gbnVsbCA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKSA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uc3VtZXIpOwogICAgfQogICAgZnVuY3Rpb24gX2ZhY3RvcnlCU00oYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICByZXR1cm4gQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW5vZGUuanMKdmFyIHJlcXVpcmVfc291cmNlX25vZGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1ub2RlLmpzIihleHBvcnRzMikgewogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBSRUdFWF9ORVdMSU5FID0gLyhccj9cbikvOwogICAgdmFyIE5FV0xJTkVfQ09ERSA9IDEwOwogICAgdmFyIGlzU291cmNlTm9kZSA9ICIkJCRpc1NvdXJjZU5vZGUkJCQiOwogICAgdmFyIFNvdXJjZU5vZGUgPSBjbGFzcyBfU291cmNlTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGFMaW5lLCBhQ29sdW1uLCBhU291cmNlLCBhQ2h1bmtzLCBhTmFtZSkgewogICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzID0ge307CiAgICAgICAgdGhpcy5saW5lID0gYUxpbmUgPT0gbnVsbCA/IG51bGwgOiBhTGluZTsKICAgICAgICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uOwogICAgICAgIHRoaXMuc291cmNlID0gYVNvdXJjZSA9PSBudWxsID8gbnVsbCA6IGFTb3VyY2U7CiAgICAgICAgdGhpcy5uYW1lID0gYU5hbWUgPT0gbnVsbCA/IG51bGwgOiBhTmFtZTsKICAgICAgICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlOwogICAgICAgIGlmIChhQ2h1bmtzICE9IG51bGwpIHRoaXMuYWRkKGFDaHVua3MpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUdlbmVyYXRlZENvZGUgVGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhUmVsYXRpdmVQYXRoIE9wdGlvbmFsLiBUaGUgcGF0aCB0aGF0IHJlbGF0aXZlIHNvdXJjZXMgaW4gdGhlCiAgICAgICAqICAgICAgICBTb3VyY2VNYXBDb25zdW1lciBzaG91bGQgYmUgcmVsYXRpdmUgdG8uCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgX1NvdXJjZU5vZGUoKTsKICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGFHZW5lcmF0ZWRDb2RlLnNwbGl0KFJFR0VYX05FV0xJTkUpOwogICAgICAgIGxldCByZW1haW5pbmdMaW5lc0luZGV4ID0gMDsKICAgICAgICBjb25zdCBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjb25zdCBsaW5lQ29udGVudHMgPSBnZXROZXh0TGluZSgpOwogICAgICAgICAgY29uc3QgbmV3TGluZSA9IGdldE5leHRMaW5lKCkgfHwgIiI7CiAgICAgICAgICByZXR1cm4gbGluZUNvbnRlbnRzICsgbmV3TGluZTsKICAgICAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkgewogICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXgrK10gOiB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBsZXQgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDsKICAgICAgICBsZXQgbGFzdE1hcHBpbmcgPSBudWxsOwogICAgICAgIGxldCBuZXh0TGluZTsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuZWFjaE1hcHBpbmcoZnVuY3Rpb24obWFwcGluZykgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgICAgY29uc3QgY29kZSA9IG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiAtIGxhc3RHZW5lcmF0ZWRDb2x1bW4pOwogICAgICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gbGFzdEdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgY29kZSk7CiAgICAgICAgICAgICAgbGFzdE1hcHBpbmcgPSBtYXBwaW5nOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7CiAgICAgICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7CiAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgIG5vZGUuYWRkKG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbikpOwogICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSA9IG5leHRMaW5lLnN1YnN0cihtYXBwaW5nLmdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZzsKICAgICAgICB9LCB0aGlzKTsKICAgICAgICBpZiAocmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCkgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nKSB7CiAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUuYWRkKHJlbWFpbmluZ0xpbmVzLnNwbGljZShyZW1haW5pbmdMaW5lc0luZGV4KS5qb2luKCIiKSk7CiAgICAgICAgfQogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgY29uc3QgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgZnVuY3Rpb24gYWRkTWFwcGluZ1dpdGhDb2RlKG1hcHBpbmcsIGNvZGUpIHsKICAgICAgICAgIGlmIChtYXBwaW5nID09PSBudWxsIHx8IG1hcHBpbmcuc291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgbm9kZS5hZGQoY29kZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBhUmVsYXRpdmVQYXRoID8gdXRpbC5qb2luKGFSZWxhdGl2ZVBhdGgsIG1hcHBpbmcuc291cmNlKSA6IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBub2RlLmFkZChuZXcgX1NvdXJjZU5vZGUoCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICAgICAgY29kZSwKICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUKICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBjaHVuayBvZiBnZW5lcmF0ZWQgSlMgdG8gdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgYWRkKGFDaHVuaykgewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHsKICAgICAgICAgIGFDaHVuay5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgICAgIHRoaXMuYWRkKGNodW5rKTsKICAgICAgICAgIH0sIHRoaXMpOwogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIGlmIChhQ2h1bmspIHsKICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCBhIFNvdXJjZU5vZGUsIHN0cmluZywgb3IgYW4gYXJyYXkgb2YgU291cmNlTm9kZXMgYW5kIHN0cmluZ3MuIEdvdCAiICsgYUNodW5rCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgcHJlcGVuZChhQ2h1bmspIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gYUNodW5rLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChhQ2h1bmspOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgIiArIGFDaHVuawogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdhbGsgb3ZlciB0aGUgdHJlZSBvZiBKUyBzbmlwcGV0cyBpbiB0aGlzIG5vZGUgYW5kIGl0cyBjaGlsZHJlbi4gVGhlCiAgICAgICAqIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggc25pcHBldCBvZiBKUyBhbmQgaXMgcGFzc2VkIHRoYXQKICAgICAgICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uCiAgICAgICAqLwogICAgICB3YWxrKGFGbikgewogICAgICAgIGxldCBjaHVuazsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgY2h1bmsgPSB0aGlzLmNoaWxkcmVuW2ldOwogICAgICAgICAgaWYgKGNodW5rW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgICAgY2h1bmsud2FsayhhRm4pOwogICAgICAgICAgfSBlbHNlIGlmIChjaHVuayAhPT0gIiIpIHsKICAgICAgICAgICAgYUZuKGNodW5rLCB7CiAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsCiAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbiwKICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW4KICAgICAgICogZWFjaCBvZiBgdGhpcy5jaGlsZHJlbmAuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuCiAgICAgICAqLwogICAgICBqb2luKGFTZXApIHsKICAgICAgICBsZXQgbmV3Q2hpbGRyZW47CiAgICAgICAgbGV0IGk7CiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgaWYgKGxlbiA+IDApIHsKICAgICAgICAgIG5ld0NoaWxkcmVuID0gW107CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7CiAgICAgICAgICB9CiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5baV0pOwogICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ2FsbCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2Ugb24gdGhlIHZlcnkgcmlnaHQtbW9zdCBzb3VyY2Ugc25pcHBldC4gVXNlZnVsCiAgICAgICAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhUGF0dGVybiBUaGUgcGF0dGVybiB0byByZXBsYWNlLgogICAgICAgKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguCiAgICAgICAqLwogICAgICByZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGFzdENoaWxkW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgIGxhc3RDaGlsZC5yZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAic3RyaW5nIikgewogICAgICAgICAgdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdID0gbGFzdENoaWxkLnJlcGxhY2UoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgiIi5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yCiAgICAgICAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFTb3VyY2VGaWxlIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUKICAgICAgICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZQogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoYVNvdXJjZUZpbGUpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgU291cmNlTm9kZXMuIFRoZSB3YWxraW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaAogICAgICAgKiBzb3VyY2UgZmlsZSBjb250ZW50IGFuZCBpcyBwYXNzZWQgdGhlIGZpbGVuYW1lIGFuZCBzb3VyY2UgY29udGVudC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFGbiBUaGUgdHJhdmVyc2FsIGZ1bmN0aW9uLgogICAgICAgKi8KICAgICAgd2Fsa1NvdXJjZUNvbnRlbnRzKGFGbikgewogICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBpZiAodGhpcy5jaGlsZHJlbltpXVtpc1NvdXJjZU5vZGVdKSB7CiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0ud2Fsa1NvdXJjZUNvbnRlbnRzKGFGbik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNvdXJjZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNvdXJjZUNvbnRlbnRzKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gc291cmNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgYUZuKHV0aWwuZnJvbVNldFN0cmluZyhzb3VyY2VzW2ldKSwgdGhpcy5zb3VyY2VDb250ZW50c1tzb3VyY2VzW2ldXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlLiBXYWxrcyBvdmVyIHRoZSB0cmVlCiAgICAgICAqIGFuZCBjb25jYXRlbmF0ZXMgYWxsIHRoZSB2YXJpb3VzIHNuaXBwZXRzIHRvZ2V0aGVyIHRvIG9uZSBzdHJpbmcuCiAgICAgICAqLwogICAgICB0b1N0cmluZygpIHsKICAgICAgICBsZXQgc3RyMiA9ICIiOwogICAgICAgIHRoaXMud2FsayhmdW5jdGlvbihjaHVuaykgewogICAgICAgICAgc3RyMiArPSBjaHVuazsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc291cmNlIG5vZGUgYWxvbmcgd2l0aCBhIHNvdXJjZQogICAgICAgKiBtYXAuCiAgICAgICAqLwogICAgICB0b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHsKICAgICAgICBjb25zdCBnZW5lcmF0ZWQgPSB7CiAgICAgICAgICBjb2RlOiAiIiwKICAgICAgICAgIGxpbmU6IDEsCiAgICAgICAgICBjb2x1bW46IDAKICAgICAgICB9OwogICAgICAgIGNvbnN0IG1hcDIgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTsKICAgICAgICBsZXQgc291cmNlTWFwcGluZ0FjdGl2ZSA9IGZhbHNlOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsTmFtZSA9IG51bGw7CiAgICAgICAgdGhpcy53YWxrKGZ1bmN0aW9uKGNodW5rLCBvcmlnaW5hbCkgewogICAgICAgICAgZ2VuZXJhdGVkLmNvZGUgKz0gY2h1bms7CiAgICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZSB8fCBsYXN0T3JpZ2luYWxMaW5lICE9PSBvcmlnaW5hbC5saW5lIHx8IGxhc3RPcmlnaW5hbENvbHVtbiAhPT0gb3JpZ2luYWwuY29sdW1uIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHsKICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsCiAgICAgICAgICAgICAgICBvcmlnaW5hbDogewogICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtbgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgIG1hcDIuYWRkTWFwcGluZyh7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7CiAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAobGV0IGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykgewogICAgICAgICAgICBpZiAoY2h1bmsuY2hhckNvZGVBdChpZHgpID09PSBORVdMSU5FX0NPREUpIHsKICAgICAgICAgICAgICBnZW5lcmF0ZWQubGluZSsrOwogICAgICAgICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwOwogICAgICAgICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgICBzb3VyY2U6IG9yaWdpbmFsLnNvdXJjZSwKICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6IHsKICAgICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogb3JpZ2luYWwuY29sdW1uCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBuYW1lOiBvcmlnaW5hbC5uYW1lCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkLmNvbHVtbisrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24oc291cmNlRmlsZSwgc291cmNlQ29udGVudCkgewogICAgICAgICAgbWFwMi5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGNvZGU6IGdlbmVyYXRlZC5jb2RlLCBtYXA6IG1hcDIgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9zb3VyY2UtbWFwLmpzCnZhciByZXF1aXJlX3NvdXJjZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvc291cmNlLW1hcC5qcyIoZXhwb3J0czIpIHsKICAgIGV4cG9ydHMyLlNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lcigpLlNvdXJjZU1hcENvbnN1bWVyOwogICAgZXhwb3J0czIuU291cmNlTm9kZSA9IHJlcXVpcmVfc291cmNlX25vZGUoKS5Tb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanMKdmFyIHJlcXVpcmVfdGVtcGxhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3RlbXBsYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50ZW1wbGF0ZVBhcnNlciA9IHRlbXBsYXRlUGFyc2VyOwogICAgZXhwb3J0czIudGVtcGxhdGUgPSB0ZW1wbGF0ZTM7CiAgICB2YXIgc291cmNlX21hcF8xID0gcmVxdWlyZV9zb3VyY2VfbWFwKCk7CiAgICB2YXIga0ludGVycG9sYXRlUmUgPSAvPCU9KFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0NvbW1lbnRSZSA9IC88JSMoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrRXNjYXBlUmUgPSAvPCUtKFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0V2YWx1YXRlUmUgPSAvPCUoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrSHRtbEVzY2FwZXMgPSB7CiAgICAgICImIjogIiZhbXA7IiwKICAgICAgIjwiOiAiJmx0OyIsCiAgICAgICI+IjogIiZndDsiLAogICAgICAnIic6ICImcXVvdDsiLAogICAgICAiJyI6ICImIzM5OyIsCiAgICAgICJgIjogIiYjOTY7IgogICAgfTsKICAgIHZhciByZVVuZXNjYXBlZEh0bWwgPSBuZXcgUmVnRXhwKGBbJHtPYmplY3Qua2V5cyhrSHRtbEVzY2FwZXMpLmpvaW4oIiIpfV1gLCAiZyIpOwogICAgZnVuY3Rpb24gX3Bvc2l0aW9uRm9yKGNvbnRlbnQsIG9mZnNldCkgewogICAgICBsZXQgbGluZSA9IDE7CiAgICAgIGxldCBjb2x1bW4gPSAwOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9mZnNldCAtIDE7IGkrKykgewogICAgICAgIGlmIChjb250ZW50W2ldID09ICJcbiIpIHsKICAgICAgICAgIGxpbmUrKzsKICAgICAgICAgIGNvbHVtbiA9IDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbHVtbisrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGxpbmUsCiAgICAgICAgY29sdW1uCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZVBhcnNlcihzb3VyY2VUZXh0LCBmaWxlTmFtZSkgewogICAgICBjb25zdCBjaGlsZHJlbiA9IFtdOwogICAgICBjb25zdCByZUV4cHJlc3Npb25zID0gW2tFc2NhcGVSZSwga0NvbW1lbnRSZSwga0ludGVycG9sYXRlUmUsIGtFdmFsdWF0ZVJlXTsKICAgICAgY29uc3QgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKHJlRXhwcmVzc2lvbnMubWFwKCh4KSA9PiB4LnNvdXJjZSkuam9pbigifCIpICsgInwkIiwgImciKTsKICAgICAgY29uc3QgcGFyc2VkID0gc291cmNlVGV4dC5zcGxpdChyZURlbGltaXRlcnMpOwogICAgICBsZXQgb2Zmc2V0ID0gMDsKICAgICAgbGV0IHN0YXJ0ID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCk7CiAgICAgIGxldCBlbmQ7CiAgICAgIGNvbnN0IGluY3JlbWVudCA9IHJlRXhwcmVzc2lvbnMubGVuZ3RoICsgMTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJzZWQubGVuZ3RoOyBpICs9IGluY3JlbWVudCkgewogICAgICAgIGNvbnN0IFtjb250ZW50LCBlc2NhcGUyLCBjb21tZW50LCBpbnRlcnBvbGF0ZSwgZXZhbHVhdGVdID0gcGFyc2VkLnNsaWNlKGksIGkgKyBpbmNyZW1lbnQpOwogICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29udGVudC5sZW5ndGgpOwogICAgICAgICAgb2Zmc2V0ICs9IGNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJjb250ZW50IiwgY29udGVudCwgc3RhcnQsIGVuZCB9KTsKICAgICAgICAgIHN0YXJ0ID0gZW5kOwogICAgICAgIH0KICAgICAgICBpZiAoZXNjYXBlMikgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGVzY2FwZTIubGVuZ3RoICsgNSk7CiAgICAgICAgICBvZmZzZXQgKz0gZXNjYXBlMi5sZW5ndGggKyA1OwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJlc2NhcGUiLCBleHByZXNzaW9uOiBlc2NhcGUyLCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChjb21tZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29tbWVudC5sZW5ndGggKyA1KTsKICAgICAgICAgIG9mZnNldCArPSBjb21tZW50Lmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImNvbW1lbnQiLCB0ZXh0OiBjb21tZW50LCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChpbnRlcnBvbGF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGludGVycG9sYXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGludGVycG9sYXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAga2luZDogImludGVycG9sYXRlIiwKICAgICAgICAgICAgZXhwcmVzc2lvbjogaW50ZXJwb2xhdGUsCiAgICAgICAgICAgIHN0YXJ0LAogICAgICAgICAgICBlbmQKICAgICAgICAgIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChldmFsdWF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGV2YWx1YXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGV2YWx1YXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImV2YWx1YXRlIiwgZXhwcmVzc2lvbjogZXZhbHVhdGUsIHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICBzdGFydCA9IGVuZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHsKICAgICAgICBmaWxlTmFtZSwKICAgICAgICBjb250ZW50OiBzb3VyY2VUZXh0LAogICAgICAgIGNoaWxkcmVuCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZUZhc3QoYXN0LCBvcHRpb25zKSB7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gIm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSIgOiAiIjsKICAgICAgY29uc3QgcmVIdG1sRXNjYXBlID0gcmVVbmVzY2FwZWRIdG1sLnNvdXJjZS5yZXBsYWNlKC9bJ10vZywgIlxcXFxcXCciKTsKICAgICAgcmV0dXJuIGAKICAgIHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewogICAgICBvYmogfHwgKG9iaiA9IHt9KTsKICAgICAgbGV0IF9fdDsKICAgICAgbGV0IF9fcCA9ICcnOwogICAgICBjb25zdCBfX2VzY2FwZXMgPSAke0pTT04uc3RyaW5naWZ5KGtIdG1sRXNjYXBlcyl9OwogICAgICBjb25zdCBfX2VzY2FwZXNyZSA9IG5ldyBSZWdFeHAoJyR7cmVIdG1sRXNjYXBlfScsICdnJyk7CgogICAgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgcmV0dXJuIHMgPyBzLnJlcGxhY2UoX19lc2NhcGVzcmUsIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gX19lc2NhcGVzW2tleV07IH0pIDogJyc7CiAgICAgIH07CiAgICAgIHdpdGggKG9iaikgewogICAgICAgICR7YXN0LmNoaWxkcmVuLm1hcCgobm9kZSkgPT4gewogICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7CiAgICAgICAgICBjYXNlICJjb250ZW50IjoKICAgICAgICAgICAgcmV0dXJuIGBfX3AgKz0gJHtKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpfTtgOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSAoKF9fdCA9ICgke25vZGUuZXhwcmVzc2lvbn0pKSA9PSBudWxsKSA/ICcnIDogX190O2A7CiAgICAgICAgICBjYXNlICJlc2NhcGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSBfX2UoJHtub2RlLmV4cHJlc3Npb259KTtgOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICByZXR1cm4gbm9kZS5leHByZXNzaW9uOwogICAgICAgIH0KICAgICAgfSkuam9pbigiXG4iKX0KICAgICAgfQoKICAgICAgcmV0dXJuIF9fcDsKICAgIH07CiAgYDsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc291cmNlVXJsID0gYXN0LmZpbGVOYW1lOwogICAgICBjb25zdCBtb2R1bGUzID0gb3B0aW9ucyAmJiBvcHRpb25zLm1vZHVsZSA/ICJtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0iIDogIiI7CiAgICAgIGNvbnN0IHJlSHRtbEVzY2FwZSA9IHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UucmVwbGFjZSgvWyddL2csICJcXFxcXFwnIik7CiAgICAgIGNvbnN0IHByZWFtYmxlID0gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKDEsIDAsIHNvdXJjZVVybCwgIiIpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoMSwgMCwgc291cmNlVXJsLCBbCiAgICAgICAgYHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewpgLAogICAgICAgICIgIG9iaiB8fCAob2JqID0ge30pO1xuIiwKICAgICAgICAiICBsZXQgX190O1xuIiwKICAgICAgICAnICBsZXQgX19wID0gIiI7XG4nLAogICAgICAgIGAgIGNvbnN0IF9fZXNjYXBlcyA9ICR7SlNPTi5zdHJpbmdpZnkoa0h0bWxFc2NhcGVzKX07CmAsCiAgICAgICAgYCAgY29uc3QgX19lc2NhcGVzcmUgPSBuZXcgUmVnRXhwKCcke3JlSHRtbEVzY2FwZX0nLCAnZycpOwpgLAogICAgICAgIGAKYCwKICAgICAgICBgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7IGAsCiAgICAgICAgYCAgICByZXR1cm4gcyA/IHMucmVwbGFjZShfX2VzY2FwZXNyZSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiBfX2VzY2FwZXNba2V5XTsgfSkgOiAnJztgLAogICAgICAgIGAgIH07CmAsCiAgICAgICAgYCAgd2l0aCAob2JqKSB7CmAKICAgICAgXSkpOwogICAgICBjb25zdCBlbmQgPSBhc3QuY2hpbGRyZW4ubGVuZ3RoID8gYXN0LmNoaWxkcmVuW2FzdC5jaGlsZHJlbi5sZW5ndGggLSAxXS5lbmQgOiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9OwogICAgICBjb25zdCBub2RlcyA9IGFzdC5jaGlsZHJlbi5yZWR1Y2UoKGNodW5rLCBub2RlKSA9PiB7CiAgICAgICAgbGV0IGNvZGUyID0gIiI7CiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHsKICAgICAgICAgIGNhc2UgImNvbnRlbnQiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wID0gX19wIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5jb250ZW50LnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCAiXG4gICAgKyAiICsgSlNPTi5zdHJpbmdpZnkobGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIjtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wICs9ICgoX190ID0gIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5leHByZXNzaW9uLnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCBsaW5lICsgKGkgPT0gYXJyLmxlbmd0aCAtIDEgPyAiIiA6ICJcbiIpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5lbmQubGluZSwgbm9kZS5lbmQuY29sdW1uLCBzb3VyY2VVcmwsICcpID09IG51bGwgPyAiIiA6IF9fdCk7XG4nKQogICAgICAgICAgICBdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImVzY2FwZSI6CiAgICAgICAgICAgIGNvZGUyID0gWwogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUsIG5vZGUuc3RhcnQuY29sdW1uLCBzb3VyY2VVcmwsICJfX3AgKz0gX19lKCIpLAogICAgICAgICAgICAgIC4uLm5vZGUuZXhwcmVzc2lvbi5zcGxpdCgiXG4iKS5tYXAoKGxpbmUsIGksIGFycikgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUgKyBpLCBpID09IDAgPyBub2RlLnN0YXJ0LmNvbHVtbiA6IDAsIHNvdXJjZVVybCwgbGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuZW5kLmxpbmUsIG5vZGUuZW5kLmNvbHVtbiwgc291cmNlVXJsLCAiKTtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICAuLi5ub2RlLmV4cHJlc3Npb24uc3BsaXQoIlxuIikubWFwKChsaW5lLCBpLCBhcnIpID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lICsgaSwgaSA9PSAwID8gbm9kZS5zdGFydC5jb2x1bW4gOiAwLCBzb3VyY2VVcmwsIGxpbmUgKyAoaSA9PSBhcnIubGVuZ3RoIC0gMSA/ICIiIDogIlxuIikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIlxuIikKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjaHVuay5hZGQobmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSwgbm9kZS5zdGFydC5jb2x1bW4sIHNvdXJjZVVybCwgY29kZTIpKTsKICAgICAgfSwgcHJlYW1ibGUpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoZW5kLmxpbmUsIGVuZC5jb2x1bW4sIHNvdXJjZVVybCwgWyIgIH07XG4iLCAiXG4iLCAiICByZXR1cm4gX19wO1xuIiwgIn1cbiJdKSk7CiAgICAgIGNvbnN0IGNvZGUgPSBub2Rlcy50b1N0cmluZ1dpdGhTb3VyY2VNYXAoewogICAgICAgIGZpbGU6IHNvdXJjZVVybCwKICAgICAgICBzb3VyY2VSb290OiBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlUm9vdCB8fCAiLiIKICAgICAgfSk7CiAgICAgIGNvZGUubWFwLnNldFNvdXJjZUNvbnRlbnQoc291cmNlVXJsLCBhc3QuY29udGVudCk7CiAgICAgIHJldHVybiBjb2RlLmNvZGUgKyAiXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIgKyBCdWZmZXIuZnJvbShjb2RlLm1hcC50b1N0cmluZygpKS50b1N0cmluZygiYmFzZTY0Iik7CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZTMoY29udGVudCwgb3B0aW9ucykgewogICAgICBjb25zdCBzb3VyY2VVcmwgPSBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlVVJMIHx8ICJlanMiOwogICAgICBjb25zdCBhc3QgPSB0ZW1wbGF0ZVBhcnNlcihjb250ZW50LCBzb3VyY2VVcmwpOwogICAgICBsZXQgc291cmNlOwogICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNvdXJjZU1hcCkgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpOwogICAgICB9IGVsc2UgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlRmFzdChhc3QsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGNvbnN0IGZuID0gRnVuY3Rpb24oIm1vZHVsZSIsIHNvdXJjZSk7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gb3B0aW9ucy5tb2R1bGUgPT09IHRydWUgPyB7IGV4cG9ydHM6IHt9IH0gOiBvcHRpb25zLm1vZHVsZSA6IG51bGw7CiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKG1vZHVsZTMpOwogICAgICByZXN1bHQuc291cmNlID0gc291cmNlOwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzCnZhciByZXF1aXJlX3BhcnRpYWxseV9vcmRlcmVkX3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXJ0aWFsbHlPcmRlcmVkU2V0ID0gZXhwb3J0czIuQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb24gPSBleHBvcnRzMi5EZXBlbmRlbmN5Tm90Rm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJPbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBpcyBub3QgcGFydCBvZiB0aGUgc2V0LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uID0gRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uOwogICAgdmFyIENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBleGNlcHRpb25fMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoIkNpcmN1bGFyIGRlcGVuZGVuY2llcyBmb3VuZC4iKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb247CiAgICB2YXIgUGFydGlhbGx5T3JkZXJlZFNldCA9IGNsYXNzIHsKICAgICAgX2l0ZW1zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2NoZWNrQ2lyY3VsYXJEZXBlbmRlbmNpZXMoaXRlbSwgZGVwcykgewogICAgICAgIGlmIChkZXBzLmhhcyhpdGVtKSkgewogICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGRlcHMuZm9yRWFjaCgoZGVwKSA9PiB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIHRoaXMuX2l0ZW1zLmdldChkZXApIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpKTsKICAgICAgfQogICAgICBjbGVhcigpIHsKICAgICAgICB0aGlzLl9pdGVtcy5jbGVhcigpOwogICAgICB9CiAgICAgIGhhcyhpdGVtKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmhhcyhpdGVtKTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2l6ZTsKICAgICAgfQogICAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHsKICAgICAgICBmb3IgKGNvbnN0IHggb2YgdGhpcykgewogICAgICAgICAgY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsIHgsIHgsIHRoaXMpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBbdix2XSBwYWlycyBmb3IgZXZlcnkgdmFsdWUgYHZgIGluIHRoZSBzZXQuCiAgICAgICAqLwogICAgICAqZW50cmllcygpIHsKICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcykgewogICAgICAgICAgeWllbGQgW2l0ZW0sIGl0ZW1dOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogRGVzcGl0ZSBpdHMgbmFtZSwgcmV0dXJucyBhbiBpdGVyYWJsZSBvZiB0aGUgdmFsdWVzIGluIHRoZSBzZXQsCiAgICAgICAqLwogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICAgKi8KICAgICAgdmFsdWVzKCkgewogICAgICAgIHJldHVybiB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKICAgICAgfQogICAgICBhZGQoaXRlbSwgZGVwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXBzKSkgewogICAgICAgICAgZGVwcyA9IG5ldyBTZXQoZGVwcyk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pdGVtcy5oYXMoaXRlbSkpIHsKICAgICAgICAgIGNvbnN0IGl0ZW1EZXBzID0gdGhpcy5faXRlbXMuZ2V0KGl0ZW0pIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgICBsZXQgZXF1YWwgPSB0cnVlOwogICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykgewogICAgICAgICAgICBpZiAoIWl0ZW1EZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGVxdWFsKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGl0ZW1EZXBzKSB7CiAgICAgICAgICAgICAgaWYgKCFkZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXF1YWwpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKICAgICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGRlcCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbigpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIGRlcHMpOwogICAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtLCBuZXcgU2V0KGRlcHMpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBkZWxldGUoaXRlbSkgewogICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGl0ZW0pKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHRoaXMuX2l0ZW1zLmZvckVhY2goKHZhbHVlKSA9PiB2YWx1ZS5kZWxldGUoaXRlbSkpOwogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgIH0KICAgICAgKltTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgTWFwKHRoaXMuX2l0ZW1zKTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBjb3B5LmVudHJpZXMoKSkgewogICAgICAgICAgY29weS5zZXQoa2V5LCBuZXcgU2V0KHZhbHVlKSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChjb3B5LnNpemUgPiAwKSB7CiAgICAgICAgICBjb25zdCBydW4gPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgW2l0ZW0sIGRlcHNdIG9mIGNvcHkuZW50cmllcygpKSB7CiAgICAgICAgICAgIGlmIChkZXBzLnNpemUgPT0gMCkgewogICAgICAgICAgICAgIHJ1bi5wdXNoKGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcnVuKSB7CiAgICAgICAgICAgIGNvcHkuZm9yRWFjaCgocykgPT4gcy5kZWxldGUoaXRlbSkpOwogICAgICAgICAgICBjb3B5LmRlbGV0ZShpdGVtKTsKICAgICAgICAgICAgeWllbGQgaXRlbTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChydW4ubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkgewogICAgICAgIHJldHVybiAiU2V0IjsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhcnRpYWxseU9yZGVyZWRTZXQgPSBQYXJ0aWFsbHlPcmRlcmVkU2V0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanMKdmFyIHJlcXVpcmVfcHJpb3JpdHlfcXVldWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3ByaW9yaXR5LXF1ZXVlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Qcmlvcml0eVF1ZXVlID0gdm9pZCAwOwogICAgdmFyIFByaW9yaXR5UXVldWUgPSBjbGFzcyB7CiAgICAgIF9jb21wYXJhdG9yOwogICAgICBfaXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2NvbXBhcmF0b3IpIHsKICAgICAgICB0aGlzLl9jb21wYXJhdG9yID0gX2NvbXBhcmF0b3I7CiAgICAgIH0KICAgICAgY2xlYXIoKSB7CiAgICAgICAgdGhpcy5faXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgfQogICAgICBwdXNoKGl0ZW0pIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2l0ZW1zLmZpbmRJbmRleCgoZXhpc3RpbmcpID0+IHRoaXMuX2NvbXBhcmF0b3IoaXRlbSwgZXhpc3RpbmcpIDw9IDApOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnB1c2goaXRlbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnNwbGljZShpbmRleCwgMCwgaXRlbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHBvcCgpIHsKICAgICAgICBpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc3BsaWNlKDAsIDEpWzBdOwogICAgICB9CiAgICAgIHBlZWsoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zWzBdOwogICAgICB9CiAgICAgIGdldCBzaXplKCkgewogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7CiAgICAgIH0KICAgICAgdG9BcnJheSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaW9yaXR5UXVldWUgPSBQcmlvcml0eVF1ZXVlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGFuZy5qcwp2YXIgcmVxdWlyZV9sYW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9sYW5nLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSBpc1Byb21pc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2Uob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICJmdW5jdGlvbiI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9pbmRleC5qcwp2YXIgcmVxdWlyZV91dGlsczMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIudGFncyA9IHZvaWQgMDsKICAgIHZhciB0YWdzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfbGl0ZXJhbHMoKSk7CiAgICBleHBvcnRzMi50YWdzID0gdGFnczsKICAgIHZhciBzdHJpbmdzMyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX3N0cmluZ3MoKSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gc3RyaW5nczM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9vYmplY3QoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcGFydGlhbGx5X29yZGVyZWRfc2V0KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3ByaW9yaXR5X3F1ZXVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2xhbmcoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdmlzaXRvci5qcwp2YXIgcmVxdWlyZV92aXNpdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52aXNpdEpzb24gPSB2aXNpdEpzb247CiAgICBleHBvcnRzMi52aXNpdEpzb25TY2hlbWEgPSB2aXNpdEpzb25TY2hlbWE7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBwb2ludGVyXzEgPSByZXF1aXJlX3BvaW50ZXIoKTsKICAgIGZ1bmN0aW9uIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiAhPT0gIm9iamVjdCIgfHwgc2NoZW1hMiA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgfHwgc2NoZW1hMi50eXBlID09ICJvYmplY3QiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgJiYgdHlwZW9mIHNjaGVtYTIucHJvcGVydGllc1trZXldID09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gc2NoZW1hMi5wcm9wZXJ0aWVzW2tleV07CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMi5hZGRpdGlvbmFsUHJvcGVydGllcyA9PSAib2JqZWN0IikgewogICAgICAgICAgcmV0dXJuIHNjaGVtYTIuYWRkaXRpb25hbFByb3BlcnRpZXM7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiIHx8IHNjaGVtYTIudHlwZSA9PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiID8gc2NoZW1hMi5pdGVtcyA6IHZvaWQgMDsKICAgICAgfQogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogICAgZnVuY3Rpb24gX3Zpc2l0SnNvblJlY3Vyc2l2ZShqc29uMiwgdmlzaXRvciwgcHRyLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCkgewogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSB8fCBzY2hlbWEyID09PSBmYWxzZSkgewogICAgICAgIHNjaGVtYTIgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIgJiYgc2NoZW1hMi5oYXNPd25Qcm9wZXJ0eSgiJHJlZiIpICYmIHR5cGVvZiBzY2hlbWEyWyIkcmVmIl0gPT0gInN0cmluZyIpIHsKICAgICAgICBpZiAocmVmUmVzb2x2ZXIpIHsKICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVmUmVzb2x2ZXIoc2NoZW1hMlsiJHJlZiJdLCBjb250ZXh0KTsKICAgICAgICAgIHNjaGVtYTIgPSByZXNvbHZlZC5zY2hlbWE7CiAgICAgICAgICBjb250ZXh0ID0gcmVzb2x2ZWQuY29udGV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdG9yKGpzb24yLCBwdHIsIHNjaGVtYTIsIHJvb3QpOwogICAgICByZXR1cm4gKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKSh2YWx1ZSkgPyB2YWx1ZSA6ICgwLCByeGpzXzEub2YpKHZhbHVlKSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHZhbHVlMikgPT4gewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMikpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKSh2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKGl0ZW0sIGkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoaXRlbSwgdmlzaXRvciwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKHB0ciwgIiIgKyBpKSwgX2dldE9iamVjdFN1YlNjaGVtYShzY2hlbWEyLCAiIiArIGkpLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCB8fCB2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS50YXApKCh4KSA9PiB2YWx1ZTJbaV0gPSB4KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlMiA9PSAib2JqZWN0IiAmJiB2YWx1ZTIgIT09IG51bGwpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZTIpKS5waXBlKCgwLCByeGpzXzEubWVyZ2VNYXApKChrZXkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUodmFsdWUyW2tleV0sIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShwdHIsIGtleSksIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSwgcmVmUmVzb2x2ZXIsIGNvbnRleHQsIHJvb3QgfHwgdmFsdWUyKS5waXBlKCgwLCByeGpzXzEudGFwKSgoeCkgPT4gewogICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlMiwga2V5KTsKICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLndyaXRhYmxlICYmIHZhbHVlMltrZXldICE9PSB4KSB7CiAgICAgICAgICAgICAgICB2YWx1ZTJba2V5XSA9IHg7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodmFsdWUyKTsKICAgICAgICB9CiAgICAgIH0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHZpc2l0SnNvbihqc29uMiwgdmlzaXRvciwgc2NoZW1hMiwgcmVmUmVzb2x2ZXIsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoanNvbjIsIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiB2aXNpdEpzb25TY2hlbWEoc2NoZW1hMiwgdmlzaXRvcikgewogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UgfHwgc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBrZXl3b3JkcyA9IHsKICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgY29udGFpbnM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcHJvcGVydHlOYW1lczogdHJ1ZSwKICAgICAgICBub3Q6IHRydWUKICAgICAgfTsKICAgICAgY29uc3QgYXJyYXlLZXl3b3JkcyA9IHsKICAgICAgICBpdGVtczogdHJ1ZSwKICAgICAgICBhbGxPZjogdHJ1ZSwKICAgICAgICBhbnlPZjogdHJ1ZSwKICAgICAgICBvbmVPZjogdHJ1ZQogICAgICB9OwogICAgICBjb25zdCBwcm9wc0tleXdvcmRzID0gewogICAgICAgIGRlZmluaXRpb25zOiB0cnVlLAogICAgICAgIHByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgZGVwZW5kZW5jaWVzOiB0cnVlLAogICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgIH07CiAgICAgIGZ1bmN0aW9uIF90cmF2ZXJzZShzY2hlbWEzLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KSB7CiAgICAgICAgaWYgKHNjaGVtYTMgJiYgdHlwZW9mIHNjaGVtYTMgPT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkoc2NoZW1hMykpIHsKICAgICAgICAgIHZpc2l0b3Ioc2NoZW1hMywganNvblB0ciwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzY2hlbWEzKSkgewogICAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEzW2tleV07CiAgICAgICAgICAgIGlmIChrZXkgaW4gcHJvcHNLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHNjaCkpIHsKICAgICAgICAgICAgICAgICAgX3RyYXZlcnNlKHNjaFtwcm9wXSwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKGpzb25QdHIsIGtleSwgcHJvcCksIHJvb3RTY2hlbWEsIHNjaGVtYTMsIHByb3ApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4ga2V5d29yZHMpIHsKICAgICAgICAgICAgICBfdHJhdmVyc2Uoc2NoLCAoMCwgcG9pbnRlcl8xLmpvaW5Kc29uUG9pbnRlcikoanNvblB0ciwga2V5KSwgcm9vdFNjaGVtYSwgc2NoZW1hMywga2V5KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gYXJyYXlLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2NoLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2gpKSB7CiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX3RyYXZlcnNlKHNjaGVtYTIsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3JlZ2lzdHJ5LmpzCnZhciByZXF1aXJlX3JlZ2lzdHJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Db3JlU2NoZW1hUmVnaXN0cnkgPSBleHBvcnRzMi5TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmVfYWp2KCkpOwogICAgdmFyIGFqdl9mb3JtYXRzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9kaXN0KCkpOwogICAgdmFyIGh0dHAgPSBfX2ltcG9ydFN0YXIocmVxdWlyZSgiaHR0cCIpKTsKICAgIHZhciBodHRwcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJodHRwcyIpKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFVybCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJ1cmwiKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzMygpOwogICAgdmFyIHV0aWxzXzIgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgdXRpbGl0eV8xID0gcmVxdWlyZV91dGlsaXR5KCk7CiAgICB2YXIgdmlzaXRvcl8xID0gcmVxdWlyZV92aXNpdG9yKCk7CiAgICB2YXIgU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IGNsYXNzIF9TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGVycm9yczsKICAgICAgY29uc3RydWN0b3IoZXJyb3JzLCBiYXNlTWVzc2FnZSA9ICJTY2hlbWEgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczoiKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgc3VwZXIoIlNjaGVtYSB2YWxpZGF0aW9uIGZhaWxlZC4iKTsKICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gX1NjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uY3JlYXRlTWVzc2FnZXMoZXJyb3JzKTsKICAgICAgICBzdXBlcihgJHtiYXNlTWVzc2FnZX0KICAke21lc3NhZ2VzLmpvaW4oIlxuICAiKX1gKTsKICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKICAgICAgfQogICAgICBzdGF0aWMgY3JlYXRlTWVzc2FnZXMoZXJyb3JzKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGVycm9ycy5tYXAoKGVycikgPT4gewogICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgRGF0YSBwYXRoICR7SlNPTi5zdHJpbmdpZnkoZXJyLmluc3RhbmNlUGF0aCl9ICR7ZXJyLm1lc3NhZ2V9YDsKICAgICAgICAgIGlmIChlcnIucGFyYW1zKSB7CiAgICAgICAgICAgIHN3aXRjaCAoZXJyLmtleXdvcmQpIHsKICAgICAgICAgICAgICBjYXNlICJhZGRpdGlvbmFsUHJvcGVydGllcyI6CiAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGAoJHtlcnIucGFyYW1zLmFkZGl0aW9uYWxQcm9wZXJ0eX0pYDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImVudW0iOgogICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgLiBBbGxvd2VkIHZhbHVlcyBhcmU6ICR7ZXJyLnBhcmFtcy5hbGxvd2VkVmFsdWVzPy5tYXAoKHYpID0+IGAiJHt2fSJgKS5qb2luKCIsICIpfWA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1lc3NhZ2UgKyAiLiI7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb247CiAgICB2YXIgQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gY2xhc3MgX0NvcmVTY2hlbWFSZWdpc3RyeSB7CiAgICAgIF9hanY7CiAgICAgIF91cmlDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF91cmlIYW5kbGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIF9wcmUgPSBuZXcgdXRpbHNfMS5QYXJ0aWFsbHlPcmRlcmVkU2V0KCk7CiAgICAgIF9wb3N0ID0gbmV3IHV0aWxzXzEuUGFydGlhbGx5T3JkZXJlZFNldCgpOwogICAgICBfY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbzsKICAgICAgX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSBmYWxzZTsKICAgICAgX3Byb21wdFByb3ZpZGVyOwogICAgICBfc291cmNlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoZm9ybWF0cyA9IFtdKSB7CiAgICAgICAgdGhpcy5fYWp2ID0gbmV3IGFqdl8xLmRlZmF1bHQoewogICAgICAgICAgc3RyaWN0OiBmYWxzZSwKICAgICAgICAgIGxvYWRTY2hlbWE6ICh1cmkpID0+IHRoaXMuX2ZldGNoKHVyaSksCiAgICAgICAgICBwYXNzQ29udGV4dDogdHJ1ZQogICAgICAgIH0pOwogICAgICAgICgwLCBhanZfZm9ybWF0c18xLmRlZmF1bHQpKHRoaXMuX2Fqdik7CiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgewogICAgICAgICAgdGhpcy5hZGRGb3JtYXQoZm9ybWF0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXN5bmMgX2ZldGNoKHVyaSkgewogICAgICAgIGNvbnN0IG1heWJlU2NoZW1hID0gdGhpcy5fdXJpQ2FjaGUuZ2V0KHVyaSk7CiAgICAgICAgaWYgKG1heWJlU2NoZW1hKSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTY2hlbWE7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl91cmlIYW5kbGVycykgewogICAgICAgICAgbGV0IGhhbmRsZXJSZXN1bHQgPSBoYW5kbGVyKHVyaSk7CiAgICAgICAgICBpZiAoaGFuZGxlclJlc3VsdCA9PT0gbnVsbCB8fCBoYW5kbGVyUmVzdWx0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKGhhbmRsZXJSZXN1bHQpKSB7CiAgICAgICAgICAgIGhhbmRsZXJSZXN1bHQgPSAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhhbmRsZXJSZXN1bHQpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBoYW5kbGVyUmVzdWx0OwogICAgICAgICAgdGhpcy5fdXJpQ2FjaGUuc2V0KHVyaSwgdmFsdWUpOwogICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgY29uc3QgdXJsMyA9IG5ldyBVcmwuVVJMKHVyaSk7CiAgICAgICAgICBjb25zdCBjbGllbnQgPSB1cmwzLnByb3RvY29sID09PSAiaHR0cHM6IiA/IGh0dHBzIDogaHR0cDsKICAgICAgICAgIGNsaWVudC5nZXQodXJsMywgKHJlcykgPT4gewogICAgICAgICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID49IDMwMCkgewogICAgICAgICAgICAgIHJlcy5yZXN1bWUoKTsKICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZC4gU3RhdHVzIENvZGU6ICR7cmVzLnN0YXR1c0NvZGV9YCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcy5zZXRFbmNvZGluZygidXRmOCIpOwogICAgICAgICAgICAgIGxldCBkYXRhID0gIiI7CiAgICAgICAgICAgICAgcmVzLm9uKCJkYXRhIiwgKGNodW5rKSA9PiB7CiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJlcy5vbigiZW5kIiwgKCkgPT4gewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QganNvbjIgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgICAgICAgICAgICAgICB0aGlzLl91cmlDYWNoZS5zZXQodXJpLCBqc29uMik7CiAgICAgICAgICAgICAgICAgIHJlc29sdmUoanNvbjIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgdHJhbnNmb3JtYXRpb24gc3RlcCBiZWZvcmUgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uCiAgICAgICAqIEBwYXJhbSB7SnNvblZpc2l0b3J9IHZpc2l0b3IgVGhlIHZpc2l0b3IgdG8gdHJhbnNmb3JtIGV2ZXJ5IHZhbHVlLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yW119IGRlcHMgQSBsaXN0IG9mIG90aGVyIHZpc2l0b3JzIHRvIHJ1biBiZWZvcmUuCiAgICAgICAqLwogICAgICBhZGRQcmVUcmFuc2Zvcm0odmlzaXRvciwgZGVwcykgewogICAgICAgIHRoaXMuX3ByZS5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHRyYW5zZm9ybWF0aW9uIHN0ZXAgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uIFRoZSBKU09OIHdpbGwgbm90IGJlIHZhbGlkYXRlZAogICAgICAgKiBhZnRlciB0aGUgUE9TVCwgc28gaWYgdHJhbnNmb3JtYXRpb25zIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBTY2hlbWEgaXQgd2lsbCBub3QgcmVzdWx0CiAgICAgICAqIGluIGFuIGVycm9yLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yfSB2aXNpdG9yIFRoZSB2aXNpdG9yIHRvIHRyYW5zZm9ybSBldmVyeSB2YWx1ZS4KICAgICAgICogQHBhcmFtIHtKc29uVmlzaXRvcltdfSBkZXBzIEEgbGlzdCBvZiBvdGhlciB2aXNpdG9ycyB0byBydW4gYmVmb3JlLgogICAgICAgKi8KICAgICAgYWRkUG9zdFRyYW5zZm9ybSh2aXNpdG9yLCBkZXBzKSB7CiAgICAgICAgdGhpcy5fcG9zdC5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgX3Jlc29sdmVyKHJlZiwgdmFsaWRhdGUpIHsKICAgICAgICBpZiAoIXZhbGlkYXRlIHx8ICFyZWYpIHsKICAgICAgICAgIHJldHVybiB7fTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgc2NoZW1hMiA9IHZhbGlkYXRlLnNjaGVtYUVudi5yb290LnNjaGVtYTsKICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IiA/IHNjaGVtYTIuJGlkIDogbnVsbDsKICAgICAgICBsZXQgZnVsbFJlZmVyZW5jZSA9IHJlZjsKICAgICAgICBpZiAodHlwZW9mIGlkID09PSAic3RyaW5nIikgewogICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IFVybC5yZXNvbHZlKGlkLCByZWYpOwogICAgICAgICAgaWYgKHJlZi5zdGFydHNXaXRoKCIjIikpIHsKICAgICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IGlkICsgZnVsbFJlZmVyZW5jZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgcmVzb2x2ZWRTY2hlbWEgPSB0aGlzLl9hanYuZ2V0U2NoZW1hKGZ1bGxSZWZlcmVuY2UpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjb250ZXh0OiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hRW52LnZhbGlkYXRlLAogICAgICAgICAgc2NoZW1hOiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogRmxhdHRlbiB0aGUgU2NoZW1hLCByZXNvbHZpbmcgYW5kIHJlcGxhY2luZyBhbGwgdGhlIHJlZnMuIE1ha2VzIGl0IGludG8gYSBzeW5jaHJvbm91cyBzY2hlbWEKICAgICAgICogdGhhdCBpcyBhbHNvIGVhc2llciB0byB0cmF2ZXJzZS4gRG9lcyBub3QgY2FjaGUgdGhlIHJlc3VsdC4KICAgICAgICoKICAgICAgICogUHJvZHVjaW5nIGEgZmxhdHRlbiBzY2hlbWEgZG9jdW1lbnQgZG9lcyBub3QgaW4gYWxsIGNhc2VzIHByb2R1Y2UgYSBzY2hlbWEgd2l0aCBpZGVudGljYWwgYmVoYXZpb3IgdG8gdGhlIG9yaWdpbmFsLgogICAgICAgKiBTZWU6IGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5hcHBlbmRpeC5CLjIKICAgICAgICoKICAgICAgICogQHBhcmFtIHNjaGVtYSBUaGUgc2NoZW1hIG9yIFVSSSB0byBmbGF0dGVuLgogICAgICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIG9mIHRoZSBmbGF0dGVuZWQgc2NoZW1hIG9iamVjdC4KICAgICAgICogQHByaXZhdGUgc2luY2UgMTEuMiB3aXRob3V0IHJlcGxhY2VtZW50LgogICAgICAgKi8KICAgICAgYXN5bmMgXHUwMjc1ZmxhdHRlbihzY2hlbWEyKSB7CiAgICAgICAgdGhpcy5fYWp2LnJlbW92ZVNjaGVtYShzY2hlbWEyKTsKICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fYWp2LmNvbXBpbGVBc3luYyhzY2hlbWEyKTsKICAgICAgICBjb25zdCBzZWxmMiA9IHRoaXM7CiAgICAgICAgZnVuY3Rpb24gdmlzaXRvcihjdXJyZW50LCBwb2ludGVyLCBwYXJlbnRTY2hlbWEsIGluZGV4KSB7CiAgICAgICAgICBpZiAoY3VycmVudCAmJiBwYXJlbnRTY2hlbWEgJiYgaW5kZXggJiYgKDAsIHV0aWxzXzIuaXNKc29uT2JqZWN0KShjdXJyZW50KSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwgIiRyZWYiKSAmJiB0eXBlb2YgY3VycmVudFsiJHJlZiJdID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gc2VsZjIuX3Jlc29sdmVyKGN1cnJlbnRbIiRyZWYiXSwgdmFsaWRhdGUpOwogICAgICAgICAgICBpZiAocmVzb2x2ZWQuc2NoZW1hKSB7CiAgICAgICAgICAgICAgcGFyZW50U2NoZW1hW2luZGV4XSA9IHJlc29sdmVkLnNjaGVtYTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWFDb3B5ID0gKDAsIHV0aWxzXzEuZGVlcENvcHkpKHZhbGlkYXRlLnNjaGVtYSk7CiAgICAgICAgKDAsIHZpc2l0b3JfMS52aXNpdEpzb25TY2hlbWEpKHNjaGVtYUNvcHksIHZpc2l0b3IpOwogICAgICAgIHJldHVybiBzY2hlbWFDb3B5OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDb21waWxlIGFuZCByZXR1cm4gYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgU2NoZW1hLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gc2NoZW1hIFRoZSBzY2hlbWEgdG8gdmFsaWRhdGUuIElmIGEgc3RyaW5nLCB3aWxsIGZldGNoIHRoZSBzY2hlbWEgYmVmb3JlIGNvbXBpbGluZyBpdAogICAgICAgKiAodXNpbmcgc2NoZW1hIGFzIGEgVVJJKS4KICAgICAgICovCiAgICAgIGFzeW5jIGNvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fY29tcGlsZShzY2hlbWEyKTsKICAgICAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXN5bmMgX2NvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEpID0+ICh7IHN1Y2Nlc3M6IHNjaGVtYTIsIGRhdGEgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNjaGVtYUluZm8gPSB7CiAgICAgICAgICBzbWFydERlZmF1bHRSZWNvcmQ6IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksCiAgICAgICAgICBwcm9tcHREZWZpbml0aW9uczogW10KICAgICAgICB9OwogICAgICAgIHRoaXMuX2Fqdi5yZW1vdmVTY2hlbWEoc2NoZW1hMik7CiAgICAgICAgbGV0IHZhbGlkYXRvcjsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5fY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbyA9IHNjaGVtYUluZm87CiAgICAgICAgICB2YWxpZGF0b3IgPSB0aGlzLl9hanYuY29tcGlsZShzY2hlbWEyKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgYWp2XzEuZGVmYXVsdC5NaXNzaW5nUmVmRXJyb3IpKSB7CiAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICB9CiAgICAgICAgICB2YWxpZGF0b3IgPSBhd2FpdCB0aGlzLl9hanYuY29tcGlsZUFzeW5jKHNjaGVtYTIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEsIG9wdGlvbnMpID0+IHsKICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25PcHRpb25zID0gewogICAgICAgICAgICB3aXRoUHJvbXB0czogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQb3N0VHJhbnNmb3JtczogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQcmVUcmFuc2Zvcm1zOiB0cnVlLAogICAgICAgICAgICAuLi5vcHRpb25zCiAgICAgICAgICB9OwogICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkNvbnRleHQgPSB7CiAgICAgICAgICAgIHByb21wdEZpZWxkc1dpdGhWYWx1ZTogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy5hcHBseVByZVRyYW5zZm9ybXMpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB2aXNpdG9yIG9mIHRoaXMuX3ByZS52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlTbWFydERlZmF1bHRzKGRhdGEsIHNjaGVtYUluZm8uc21hcnREZWZhdWx0UmVjb3JkKTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy53aXRoUHJvbXB0cykgewogICAgICAgICAgICBjb25zdCB2aXNpdG9yID0gKHZhbHVlLCBwb2ludGVyKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5hZGQocG9pbnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHZpc2l0b3JfMS52aXNpdEpzb24pKGRhdGEsIHZpc2l0b3IsIHNjaGVtYTIsIHRoaXMuX3Jlc29sdmVyLmJpbmQodGhpcyksIHZhbGlkYXRvcikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gc2NoZW1hSW5mby5wcm9tcHREZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIXZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5oYXMoZGVmLmlkKSk7CiAgICAgICAgICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlQcm9tcHRzKGRhdGEsIGRlZmluaXRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHZhbGlkYXRvci5jYWxsKHZhbGlkYXRpb25Db250ZXh0LCBkYXRhKTsKICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzcywgZXJyb3JzOiB2YWxpZGF0b3IuZXJyb3JzID8/IFtdIH07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIGFqdl8xLmRlZmF1bHQuVmFsaWRhdGlvbkVycm9yKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3IuZXJyb3JzIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodmFsaWRhdGlvbk9wdGlvbnMuYXBwbHlQb3N0VHJhbnNmb3JtcykgewogICAgICAgICAgICBmb3IgKGNvbnN0IHZpc2l0b3Igb2YgdGhpcy5fcG9zdC52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogdHJ1ZSB9OwogICAgICAgIH07CiAgICAgIH0KICAgICAgYWRkRm9ybWF0KGZvcm1hdCkgewogICAgICAgIHRoaXMuX2Fqdi5hZGRGb3JtYXQoZm9ybWF0Lm5hbWUsIGZvcm1hdC5mb3JtYXR0ZXIpOwogICAgICB9CiAgICAgIGFkZFNtYXJ0RGVmYXVsdFByb3ZpZGVyKHNvdXJjZSwgcHJvdmlkZXIpIHsKICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc291cmNlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fc291cmNlTWFwLnNldChzb3VyY2UsIHByb3ZpZGVyKTsKICAgICAgICBpZiAoIXRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQpIHsKICAgICAgICAgIHRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSB0cnVlOwogICAgICAgICAgdGhpcy5fYWp2LmFkZEtleXdvcmQoewogICAgICAgICAgICBrZXl3b3JkOiAiJGRlZmF1bHQiLAogICAgICAgICAgICBlcnJvcnM6IGZhbHNlLAogICAgICAgICAgICB2YWxpZDogdHJ1ZSwKICAgICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIF9wYXJlbnRTY2hlbWEsIGl0KSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICAgIGlmIChjb21waWxhdGlvblNjaGVtSW5mbyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gdGhpcy5ub3JtYWxpemVEYXRhUGF0aEFycihpdCk7CiAgICAgICAgICAgICAgY29tcGlsYXRpb25TY2hlbUluZm8uc21hcnREZWZhdWx0UmVjb3JkLnNldChKU09OLnN0cmluZ2lmeShwYXRoQXJyYXkpLCBzY2hlbWEyKTsKICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICIkc291cmNlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyIkc291cmNlIl0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlZ2lzdGVyVXJpSGFuZGxlcihoYW5kbGVyKSB7CiAgICAgICAgdGhpcy5fdXJpSGFuZGxlcnMuYWRkKGhhbmRsZXIpOwogICAgICB9CiAgICAgIHVzZVByb21wdFByb3ZpZGVyKHByb3ZpZGVyKSB7CiAgICAgICAgY29uc3QgaXNTZXR1cCA9ICEhdGhpcy5fcHJvbXB0UHJvdmlkZXI7CiAgICAgICAgdGhpcy5fcHJvbXB0UHJvdmlkZXIgPSBwcm92aWRlcjsKICAgICAgICBpZiAoaXNTZXR1cCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1wcm9tcHQiLAogICAgICAgICAgZXJyb3JzOiBmYWxzZSwKICAgICAgICAgIHZhbGlkOiB0cnVlLAogICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpID0+IHsKICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICBpZiAoIWNvbXBpbGF0aW9uU2NoZW1JbmZvKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgcGF0aCA9ICIvIiArIHRoaXMubm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpLmpvaW4oIi8iKTsKICAgICAgICAgICAgbGV0IHR5cGUyOwogICAgICAgICAgICBsZXQgaXRlbXM7CiAgICAgICAgICAgIGxldCBtZXNzYWdlOwogICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMi5tZXNzYWdlOwogICAgICAgICAgICAgIHR5cGUyID0gc2NoZW1hMi50eXBlOwogICAgICAgICAgICAgIGl0ZW1zID0gc2NoZW1hMi5pdGVtczsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVR5cGVzID0gKDAsIHV0aWxpdHlfMS5nZXRUeXBlc09mU2NoZW1hKShwYXJlbnRTY2hlbWEpOwogICAgICAgICAgICBpZiAoIXR5cGUyKSB7CiAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VHlwZXMuc2l6ZSA9PT0gMSAmJiBwcm9wZXJ0eVR5cGVzLmhhcygiYm9vbGVhbiIpKSB7CiAgICAgICAgICAgICAgICB0eXBlMiA9ICJjb25maXJtYXRpb24iOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZW51bSkpIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImxpc3QiOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpICYmIHBhcmVudFNjaGVtYS5pdGVtcyAmJiBBcnJheS5pc0FycmF5KHBhcmVudFNjaGVtYS5pdGVtcy5lbnVtKSkgewogICAgICAgICAgICAgICAgdHlwZTIgPSAibGlzdCI7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImlucHV0IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG11bHRpc2VsZWN0OwogICAgICAgICAgICBpZiAodHlwZTIgPT09ICJsaXN0IikgewogICAgICAgICAgICAgIG11bHRpc2VsZWN0ID0gc2NoZW1hMi5tdWx0aXNlbGVjdCA9PT0gdm9pZCAwID8gcHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpIDogc2NoZW1hMi5tdWx0aXNlbGVjdDsKICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0gbXVsdGlzZWxlY3QgPyBwYXJlbnRTY2hlbWEuaXRlbXMgJiYgcGFyZW50U2NoZW1hLml0ZW1zLmVudW0gOiBwYXJlbnRTY2hlbWEuZW51bTsKICAgICAgICAgICAgICBpZiAoIWl0ZW1zICYmIEFycmF5LmlzQXJyYXkoZW51bVZhbHVlcykpIHsKICAgICAgICAgICAgICAgIGl0ZW1zID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGVudW1WYWx1ZXMpIHsKICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBsYWJlbDogdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUgfSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgICBpZDogcGF0aCwKICAgICAgICAgICAgICB0eXBlOiB0eXBlMiwKICAgICAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgICAgIHJhdzogc2NoZW1hMiwKICAgICAgICAgICAgICBpdGVtcywKICAgICAgICAgICAgICBtdWx0aXNlbGVjdCwKICAgICAgICAgICAgICBwcm9wZXJ0eVR5cGVzLAogICAgICAgICAgICAgIGRlZmF1bHQ6IHR5cGVvZiBwYXJlbnRTY2hlbWEuZGVmYXVsdCA9PSAib2JqZWN0IiAmJiBwYXJlbnRTY2hlbWEuZGVmYXVsdCAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZGVmYXVsdCkgPyB2b2lkIDAgOiBwYXJlbnRTY2hlbWEuZGVmYXVsdCwKICAgICAgICAgICAgICBhc3luYyB2YWxpZGF0b3IoZGF0YSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaXQuc2VsZi52YWxpZGF0ZShwYXJlbnRTY2hlbWEsIGRhdGEpOwogICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC5zZWxmLmVycm9ycz8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0LnNlbGYuZXJyb3JzWzBdLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gZTsKICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsaWRhdGlvbkVycm9yLmVycm9ycykgJiYgdmFsaWRhdGlvbkVycm9yLmVycm9ycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9yLmVycm9yc1swXS5tZXNzYWdlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBjb21waWxhdGlvblNjaGVtSW5mby5wcm9tcHREZWZpbml0aW9ucy5wdXNoKGRlZmluaXRpb24pOwogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMgJiYgdGhpcy5wcm9tcHRGaWVsZHNXaXRoVmFsdWUpIHsKICAgICAgICAgICAgICAgIHRoaXMucHJvbXB0RmllbGRzV2l0aFZhbHVlLmFkZChwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICBvbmVPZjogWwogICAgICAgICAgICAgIHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgICAgICAgICByZXF1aXJlZDogWyJtZXNzYWdlIl0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBhc3luYyBfYXBwbHlQcm9tcHRzKGRhdGEsIHByb21wdHMpIHsKICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMuX3Byb21wdFByb3ZpZGVyOwogICAgICAgIGlmICghcHJvdmlkZXIpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHJ4anNfMS5mcm9tKShwcm92aWRlcihwcm9tcHRzKSkpOwogICAgICAgIGZvciAoY29uc3QgcGF0aCBpbiBhbnN3ZXJzKSB7CiAgICAgICAgICBjb25zdCBwYXRoRnJhZ21lbnRzID0gcGF0aC5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIHBhdGhGcmFnbWVudHMsIGFuc3dlcnNbcGF0aF0sIG51bGwsIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN0YXRpYyBfc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUsIHBhcmVudCA9IG51bGwsIHBhcmVudFByb3BlcnR5LCBmb3JjZSkgewogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFnbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50c1tpbmRleF07CiAgICAgICAgICBpZiAoL15pXGQrJC8udGVzdChmcmFnbWVudCkpIHsKICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGV0IGRhdGFJbmRleCA9IDA7IGRhdGFJbmRleCA8IGRhdGEubGVuZ3RoOyBkYXRhSW5kZXgrKykgewogICAgICAgICAgICAgIF9Db3JlU2NoZW1hUmVnaXN0cnkuX3NldChkYXRhW2RhdGFJbmRleF0sIGZyYWdtZW50cy5zbGljZShpbmRleCArIDEpLCB2YWx1ZSwgZGF0YSwgYCR7ZGF0YUluZGV4fWApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZGF0YSAmJiBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50UHJvcGVydHkpIHsKICAgICAgICAgICAgZGF0YSA9IHBhcmVudFtwYXJlbnRQcm9wZXJ0eV0gPSB7fTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcmVudCA9IGRhdGE7CiAgICAgICAgICBwYXJlbnRQcm9wZXJ0eSA9IGZyYWdtZW50OwogICAgICAgICAgZGF0YSA9IGRhdGFbZnJhZ21lbnRdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudFByb3BlcnR5ICYmIChmb3JjZSB8fCBwYXJlbnRbcGFyZW50UHJvcGVydHldID09PSB2b2lkIDApKSB7CiAgICAgICAgICBwYXJlbnRbcGFyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzeW5jIF9hcHBseVNtYXJ0RGVmYXVsdHMoZGF0YSwgc21hcnREZWZhdWx0cykgewogICAgICAgIGZvciAoY29uc3QgW3BvaW50ZXIsIHNjaGVtYTJdIG9mIHNtYXJ0RGVmYXVsdHMuZW50cmllcygpKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBKU09OLnBhcnNlKHBvaW50ZXIpOwogICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5fc291cmNlTWFwLmdldChzY2hlbWEyLiRzb3VyY2UpOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2Uoc2NoZW1hMik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKHZhbHVlKSkgewogICAgICAgICAgICB2YWx1ZSA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkodmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICB1c2VYRGVwcmVjYXRlZFByb3ZpZGVyKG9uVXNhZ2UpIHsKICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1kZXByZWNhdGVkIiwKICAgICAgICAgIHZhbGlkYXRlOiAoc2NoZW1hMiwgX2RhdGEsIF9wYXJlbnRTY2hlbWEsIGRhdGFDeHQpID0+IHsKICAgICAgICAgICAgaWYgKHNjaGVtYTIpIHsKICAgICAgICAgICAgICBvblVzYWdlKGBPcHRpb24gIiR7ZGF0YUN4dD8ucGFyZW50RGF0YVByb3BlcnR5fSIgaXMgZGVwcmVjYXRlZCR7dHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIgPyAiOiAiICsgc2NoZW1hMiA6ICIuIn1gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcnM6IGZhbHNlCiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpIHsKICAgICAgICByZXR1cm4gaXQuZGF0YVBhdGhBcnIuc2xpY2UoMSwgaXQuZGF0YUxldmVsICsgMSkubWFwKChwKSA9PiB0eXBlb2YgcCA9PT0gIm51bWJlciIgPyBwIDogcC5zdHIucmVwbGFjZSgvIi9nLCAiIikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gQ29yZVNjaGVtYVJlZ2lzdHJ5OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzCnZhciByZXF1aXJlX3NjaGVtYSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0pzb25TY2hlbWEgPSBpc0pzb25TY2hlbWE7CiAgICBleHBvcnRzMi5tZXJnZVNjaGVtYXMgPSBtZXJnZVNjaGVtYXM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIGZ1bmN0aW9uIGlzSnNvblNjaGVtYSh2YWx1ZSkgewogICAgICByZXR1cm4gKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gbWVyZ2VTY2hlbWFzKC4uLnNjaGVtYXMpIHsKICAgICAgcmV0dXJuIHNjaGVtYXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7CiAgICAgICAgaWYgKGN1cnIgPT09IHZvaWQgMCkgewogICAgICAgICAgcmV0dXJuIHByZXY7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2ID09PSBmYWxzZSB8fCBjdXJyID09PSBmYWxzZSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAocHJldiA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIGN1cnI7CiAgICAgICAgfSBlbHNlIGlmIChjdXJyID09PSB0cnVlKSB7CiAgICAgICAgICByZXR1cm4gcHJldjsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJldi5hbGxPZikpIHsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnIuYWxsT2YpKSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgY3Vycl0gfTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3Vyci5hbGxPZikpIHsKICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbcHJldiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHsgLi4ucHJldiwgYWxsT2Y6IFtwcmV2LCBjdXJyXSB9OwogICAgICAgIH0KICAgICAgfSwgdHJ1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcwp2YXIgcmVxdWlyZV9zY2hlbWEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudHJhbnNmb3JtcyA9IHZvaWQgMDsKICAgIHZhciB0cmFuc2Zvcm1zID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtcygpKTsKICAgIGV4cG9ydHMyLnRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1zOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BvaW50ZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmVnaXN0cnkoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Zpc2l0b3IoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdXRpbGl0eSgpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL2luZGV4LmpzCnZhciByZXF1aXJlX2pzb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHZvaWQgMDsKICAgIHZhciBzY2hlbWEyID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hMigpKTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHNjaGVtYTI7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlscygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbG9nZ2VyLmpzCnZhciByZXF1aXJlX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgTG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyByeGpzXzEuT2JzZXJ2YWJsZSB7CiAgICAgIG5hbWU7CiAgICAgIHBhcmVudDsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX21ldGFkYXRhOwogICAgICBfb2JzID0gcnhqc18xLkVNUFRZOwogICAgICBfc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgZ2V0IF9vYnNlcnZhYmxlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnM7CiAgICAgIH0KICAgICAgc2V0IF9vYnNlcnZhYmxlKHYpIHsKICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fb2JzID0gdjsKICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKGVycm9yKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCkgewogICAgICAgICAgICAgIHRoaXMucGFyZW50Ll9zdWJqZWN0LmVycm9yKGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIGNvbnN0IHBhdGggPSBbXTsKICAgICAgICBsZXQgcCA9IHBhcmVudDsKICAgICAgICB3aGlsZSAocCkgewogICAgICAgICAgcGF0aC5wdXNoKHAubmFtZSk7CiAgICAgICAgICBwID0gcC5wYXJlbnQ7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21ldGFkYXRhID0geyBuYW1lLCBwYXRoIH07CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRoaXMuX3N1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50Ll9zdWJqZWN0KSB7CiAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5zdWJzY3JpYmUodm9pZCAwLCB2b2lkIDAsICgpID0+IHRoaXMuY29tcGxldGUoKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKG5hbWUpID0+IHRoaXMuY3JlYXRlQ2hpbGQobmFtZSksCiAgICAgICAgICBsb2c6IChsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEpID0+IHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nKGxldmVsLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgICAgICB9LAogICAgICAgICAgZGVidWc6IChtZXNzYWdlLCBtZXRhZGF0YSkgPT4gdGhpcy5kZWJ1ZyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBpbmZvOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICB3YXJuOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMud2FybihtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBlcnJvcjogKG1lc3NhZ2UsIG1ldGFkYXRhKSA9PiB0aGlzLmVycm9yKG1lc3NhZ2UsIG1ldGFkYXRhKSwKICAgICAgICAgIGZhdGFsOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuZmF0YWwobWVzc2FnZSwgbWV0YWRhdGEpCiAgICAgICAgfTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKG5hbWUsIHRoaXMpOwogICAgICB9CiAgICAgIGNvbXBsZXRlKCkgewogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgfQogICAgICBsb2cobGV2ZWwsIG1lc3NhZ2UsIG1ldGFkYXRhID0ge30pIHsKICAgICAgICBjb25zdCBlbnRyeSA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLCB0aGlzLl9tZXRhZGF0YSwgewogICAgICAgICAgbGV2ZWwsCiAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgdGltZXN0YW1wOiArRGF0ZS5ub3coKQogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgbmV4dChlbnRyeSkgewogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgZGVidWcobWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygiZGVidWciLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgIH0KICAgICAgaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJpbmZvIiwgbWVzc2FnZSwgbWV0YWRhdGEpOwogICAgICB9CiAgICAgIHdhcm4obWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygid2FybiIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBlcnJvcihtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJlcnJvciIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBmYXRhbChtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJmYXRhbCIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gYDxMb2dnZXIoJHt0aGlzLm5hbWV9KT5gOwogICAgICB9CiAgICAgIGxpZnQob3BlcmF0b3IpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2YWJsZS5saWZ0KG9wZXJhdG9yKTsKICAgICAgfQogICAgICBzdWJzY3JpYmUoX29ic2VydmVyT3JOZXh0LCBfZXJyb3IsIF9jb21wbGV0ZSkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZhYmxlLnN1YnNjcmliZS5hcHBseSgKICAgICAgICAgIHRoaXMuX29ic2VydmFibGUsCiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zCiAgICAgICAgICBhcmd1bWVudHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZvckVhY2gobmV4dCwgcHJvbWlzZUN0b3IgPSBQcm9taXNlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX29ic2VydmFibGUuZm9yRWFjaChuZXh0LCBwcm9taXNlQ3Rvcik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Mb2dnZXIgPSBMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZW50LmpzCnZhciByZXF1aXJlX2luZGVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIGluZGVudGF0aW9uTWFwID0ge307CiAgICB2YXIgSW5kZW50TG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyBsb2dnZXJfMS5Mb2dnZXIgewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsLCBpbmRlbnRhdGlvbiA9ICIgICIpIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSB8fCBbIiJdOwogICAgICAgIGNvbnN0IGluZGVudE1hcCA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gdGhpcy5fb2JzZXJ2YWJsZS5waXBlKCgwLCByeGpzXzEubWFwKSgoZW50cnkpID0+IHsKICAgICAgICAgIGNvbnN0IGwgPSBlbnRyeS5wYXRoLmZpbHRlcigoeCkgPT4gISF4KS5sZW5ndGg7CiAgICAgICAgICBpZiAobCA+PSBpbmRlbnRNYXAubGVuZ3RoKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50ID0gaW5kZW50TWFwW2luZGVudE1hcC5sZW5ndGggLSAxXTsKICAgICAgICAgICAgd2hpbGUgKGwgPj0gaW5kZW50TWFwLmxlbmd0aCkgewogICAgICAgICAgICAgIGN1cnJlbnQgKz0gaW5kZW50YXRpb247CiAgICAgICAgICAgICAgaW5kZW50TWFwLnB1c2goY3VycmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVudHJ5Lm1lc3NhZ2UgPSBpbmRlbnRNYXBbbF0gKyBlbnRyeS5tZXNzYWdlLnNwbGl0KC9cbi8pLmpvaW4oIlxuIiArIGluZGVudE1hcFtsXSk7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gSW5kZW50TG9nZ2VyOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzCnZhciByZXF1aXJlX2xldmVsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbGV2ZWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkxldmVsQ2FwTG9nZ2VyID0gZXhwb3J0czIuTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgPSB2b2lkIDA7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIExldmVsVHJhbnNmb3JtTG9nZ2VyID0gY2xhc3MgX0xldmVsVHJhbnNmb3JtTG9nZ2VyIGV4dGVuZHMgbG9nZ2VyXzEuTG9nZ2VyIHsKICAgICAgbmFtZTsKICAgICAgcGFyZW50OwogICAgICBsZXZlbFRyYW5zZm9ybTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxUcmFuc2Zvcm0pIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbFRyYW5zZm9ybSA9IGxldmVsVHJhbnNmb3JtOwogICAgICB9CiAgICAgIGxvZyhsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiBzdXBlci5sb2codGhpcy5sZXZlbFRyYW5zZm9ybShsZXZlbCksIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIobmFtZSwgdGhpcywgdGhpcy5sZXZlbFRyYW5zZm9ybSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5MZXZlbFRyYW5zZm9ybUxvZ2dlciA9IExldmVsVHJhbnNmb3JtTG9nZ2VyOwogICAgdmFyIExldmVsQ2FwTG9nZ2VyID0gY2xhc3MgX0xldmVsQ2FwTG9nZ2VyIGV4dGVuZHMgTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgewogICAgICBuYW1lOwogICAgICBwYXJlbnQ7CiAgICAgIGxldmVsQ2FwOwogICAgICBzdGF0aWMgbGV2ZWxNYXAgPSB7CiAgICAgICAgZGVidWc6IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJkZWJ1ZyIsIHdhcm46ICJkZWJ1ZyIsIGVycm9yOiAiZGVidWciLCBmYXRhbDogImRlYnVnIiB9LAogICAgICAgIGluZm86IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJpbmZvIiwgd2FybjogImluZm8iLCBlcnJvcjogImluZm8iLCBmYXRhbDogImluZm8iIH0sCiAgICAgICAgd2FybjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAid2FybiIsIGZhdGFsOiAid2FybiIgfSwKICAgICAgICBlcnJvcjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAiZXJyb3IiLCBmYXRhbDogImVycm9yIiB9LAogICAgICAgIGZhdGFsOiB7IGRlYnVnOiAiZGVidWciLCBpbmZvOiAiaW5mbyIsIHdhcm46ICJ3YXJuIiwgZXJyb3I6ICJlcnJvciIsIGZhdGFsOiAiZmF0YWwiIH0KICAgICAgfTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxDYXApIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQsIChsZXZlbCkgPT4gewogICAgICAgICAgcmV0dXJuIF9MZXZlbENhcExvZ2dlci5sZXZlbE1hcFtsZXZlbENhcF1bbGV2ZWxdIHx8IGxldmVsOwogICAgICAgIH0pOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbENhcCA9IGxldmVsQ2FwOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGV2ZWxDYXBMb2dnZXIgPSBMZXZlbENhcExvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9udWxsLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV9udWxsX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL251bGwtbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIE51bGxMb2dnZXIgPSBjbGFzcyBfTnVsbExvZ2dlciBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKHBhcmVudCA9IG51bGwpIHsKICAgICAgICBzdXBlcigiIiwgcGFyZW50KTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKCkgPT4gbmV3IF9OdWxsTG9nZ2VyKHRoaXMpLAogICAgICAgICAgbG9nKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGRlYnVnKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGluZm8oKSB7CiAgICAgICAgICB9LAogICAgICAgICAgd2FybigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBmYXRhbCgpIHsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbExvZ2dlciA9IE51bGxMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV90cmFuc2Zvcm1fbG9nZ2VyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJhbnNmb3JtTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIGxvZ2dlcl8xID0gcmVxdWlyZV9sb2dnZXIoKTsKICAgIHZhciBUcmFuc2Zvcm1Mb2dnZXIgPSBjbGFzcyBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIHRyYW5zZm9ybSwgcGFyZW50ID0gbnVsbCkgewogICAgICAgIHN1cGVyKG5hbWUsIHBhcmVudCk7CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRyYW5zZm9ybSh0aGlzLl9vYnNlcnZhYmxlKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRyYW5zZm9ybUxvZ2dlciA9IFRyYW5zZm9ybUxvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9pbmRleC5qcwp2YXIgcmVxdWlyZV9sb2dnZXIyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2luZGVudCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sZXZlbCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbnVsbF9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtX2xvZ2dlcigpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvZGVmaW5pdGlvbnMuanMKdmFyIHJlcXVpcmVfZGVmaW5pdGlvbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgRGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyB7CiAgICAgIF9saXN0ZW5lcjsKICAgICAgX21hcDsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgX2xpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5fbGlzdGVuZXIgPSBfbGlzdGVuZXI7CiAgICAgICAgdGhpcy5fbWFwID0gbmV3IE1hcChpbml0aWFsICYmIE9iamVjdC5lbnRyaWVzKGluaXRpYWwpKTsKICAgICAgfQogICAgICBkZWxldGUoa2V5KSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbWFwLmRlbGV0ZShrZXkpOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2b2lkIDAsIHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIHNldChrZXksIHZhbHVlKSB7CiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdmFsdWUgIT09IHRoaXMuZ2V0KGtleSk7CiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSkgewogICAgICAgICAgdGhpcy5fbWFwLnNldChrZXksIHZhbHVlKTsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2YWx1ZSwgdGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZykgewogICAgICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBjYWxsYmFja2ZuKHZhbHVlLCBrZXksIHRoaXMpLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5nZXQoa2V5KTsKICAgICAgfQogICAgICBoYXMoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5oYXMoa2V5KTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnNpemU7CiAgICAgIH0KICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcFtTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgICAgZW50cmllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKTsKICAgICAgfQogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9tYXAua2V5cygpOwogICAgICB9CiAgICAgIHZhbHVlcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gaXNKc29uVmFsdWUodmFsdWUpIHsKICAgICAgY29uc3QgdmlzaXRlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHZpc2l0ZWQuYWRkKHZhbHVlKTsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZSkpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYgdmlzaXRlZC5oYXMocHJvcGVydHkpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFpc0pzb25WYWx1ZShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIHZhciBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJQcm9qZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMuIik7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShkZWZpbml0aW9uLm5hbWUpOwogICAgICAgIGNvbnN0IHByb2plY3QgPSB7CiAgICAgICAgICByb290OiBkZWZpbml0aW9uLnJvb3QsCiAgICAgICAgICBwcmVmaXg6IGRlZmluaXRpb24ucHJlZml4LAogICAgICAgICAgc291cmNlUm9vdDogZGVmaW5pdGlvbi5zb3VyY2VSb290LAogICAgICAgICAgdGFyZ2V0czogbmV3IFRhcmdldERlZmluaXRpb25Db2xsZWN0aW9uKCksCiAgICAgICAgICBleHRlbnNpb25zOiB7fQogICAgICAgIH07CiAgICAgICAgaWYgKGRlZmluaXRpb24udGFyZ2V0cykgewogICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdGFyZ2V0XSBvZiBPYmplY3QuZW50cmllcyhkZWZpbml0aW9uLnRhcmdldHMpKSB7CiAgICAgICAgICAgIGlmICh0YXJnZXQpIHsKICAgICAgICAgICAgICBwcm9qZWN0LnRhcmdldHMuc2V0KG5hbWUsIHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRlZmluaXRpb24pKSB7CiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgICBjYXNlICJzb3VyY2VSb290IjoKICAgICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKGlzSnNvblZhbHVlKHZhbHVlKSkgewogICAgICAgICAgICAgICAgcHJvamVjdC5leHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCIke25hbWV9IiBtdXN0IGJlIGEgSlNPTiB2YWx1ZS5gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyLnNldChkZWZpbml0aW9uLm5hbWUsIHByb2plY3QpOwogICAgICAgIHJldHVybiBwcm9qZWN0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIgfHwgIS9eKD86QFx3W1x3Li1dKlwvKT9cd1tcdy4tXSokLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlByb2plY3QgbmFtZSBtdXN0IGJlIGEgdmFsaWQgbnBtIHBhY2thZ2UgbmFtZS4iKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb247CiAgICB2YXIgVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXJnZXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fdmFsaWRhdGVOYW1lKGRlZmluaXRpb24ubmFtZSk7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gewogICAgICAgICAgYnVpbGRlcjogZGVmaW5pdGlvbi5idWlsZGVyLAogICAgICAgICAgb3B0aW9uczogZGVmaW5pdGlvbi5vcHRpb25zLAogICAgICAgICAgY29uZmlndXJhdGlvbnM6IGRlZmluaXRpb24uY29uZmlndXJhdGlvbnMsCiAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogZGVmaW5pdGlvbi5kZWZhdWx0Q29uZmlndXJhdGlvbgogICAgICAgIH07CiAgICAgICAgc3VwZXIuc2V0KGRlZmluaXRpb24ubmFtZSwgdGFyZ2V0KTsKICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlRhcmdldCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBUYXJnZXREZWZpbml0aW9uQ29sbGVjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvcGF0aC5qcwp2YXIgcmVxdWlyZV9wYXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL3BhdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhdGggPSBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSBleHBvcnRzMi5QYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRQYXRoRXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3BsaXQgPSBzcGxpdDsKICAgIGV4cG9ydHMyLmV4dG5hbWUgPSBleHRuYW1lOwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSBiYXNlbmFtZTsKICAgIGV4cG9ydHMyLmRpcm5hbWUgPSBkaXJuYW1lOwogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGU7CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgZXhwb3J0czIucmVzb2x2ZSA9IHJlc29sdmU7CiAgICBleHBvcnRzMi5mcmFnbWVudCA9IGZyYWdtZW50OwogICAgZXhwb3J0czIucmVzZXROb3JtYWxpemVDYWNoZSA9IHJlc2V0Tm9ybWFsaXplQ2FjaGU7CiAgICBleHBvcnRzMi5ub3JtYWxpemUgPSBub3JtYWxpemU7CiAgICBleHBvcnRzMi5ub0NhY2hlTm9ybWFsaXplID0gbm9DYWNoZU5vcm1hbGl6ZTsKICAgIGV4cG9ydHMyLmFzV2luZG93c1BhdGggPSBhc1dpbmRvd3NQYXRoOwogICAgZXhwb3J0czIuYXNQb3NpeFBhdGggPSBhc1Bvc2l4UGF0aDsKICAgIGV4cG9ydHMyLmdldFN5c3RlbVBhdGggPSBnZXRTeXN0ZW1QYXRoOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBJbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IGlzIGludmFsaWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IEludmFsaWRQYXRoRXhjZXB0aW9uOwogICAgdmFyIFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IG11c3QgYmUgYWJzb2x1dGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb24gPSBQYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb247CiAgICB2YXIgUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoMikgewogICAgICAgIHN1cGVyKGBQYXRoICR7SlNPTi5zdHJpbmdpZnkocGF0aDIpfSBjYW5ub3QgYmUgbWFkZSBhIGZyYWdtZW50LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbjsKICAgIGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSAiLyI7CiAgICBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXA7CiAgICBmdW5jdGlvbiBzcGxpdChwYXRoMikgewogICAgICBjb25zdCBmcmFnbWVudHMgPSBwYXRoMi5zcGxpdChleHBvcnRzMi5Ob3JtYWxpemVkU2VwKS5tYXAoKHgpID0+IGZyYWdtZW50KHgpKTsKICAgICAgaWYgKGZyYWdtZW50c1tmcmFnbWVudHMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgZnJhZ21lbnRzLnBvcCgpOwogICAgICB9CiAgICAgIHJldHVybiBmcmFnbWVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBleHRuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShwYXRoMik7CiAgICAgIGNvbnN0IGkgPSBiYXNlLmxhc3RJbmRleE9mKCIuIik7CiAgICAgIGlmIChpIDwgMSkgewogICAgICAgIHJldHVybiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYmFzZS5zbGljZShpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYmFzZW5hbWUocGF0aDIpIHsKICAgICAgY29uc3QgaSA9IHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICBpZiAoaSA9PSAtMSkgewogICAgICAgIHJldHVybiBmcmFnbWVudChwYXRoMik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZyYWdtZW50KHBhdGgyLnNsaWNlKHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApICsgMSkpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkaXJuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGluZGV4ID0gcGF0aDIubGFzdEluZGV4T2YoZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0KICAgICAgY29uc3QgZW5kSW5kZXggPSBpbmRleCA9PT0gMCA/IDEgOiBpbmRleDsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoMi5zbGljZSgwLCBlbmRJbmRleCkpOwogICAgfQogICAgZnVuY3Rpb24gam9pbjIocDEsIC4uLm90aGVycykgewogICAgICBpZiAob3RoZXJzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplKChwMSA/IHAxICsgZXhwb3J0czIuTm9ybWFsaXplZFNlcCA6ICIiKSArIG90aGVycy5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcDE7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGlzQWJzb2x1dGUocCkgewogICAgICByZXR1cm4gcC5zdGFydHNXaXRoKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgfQogICAgZnVuY3Rpb24gcmVsYXRpdmUoZnJvbSwgdG8pIHsKICAgICAgaWYgKCFpc0Fic29sdXRlKGZyb20pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbihmcm9tKTsKICAgICAgfQogICAgICBpZiAoIWlzQWJzb2x1dGUodG8pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbih0byk7CiAgICAgIH0KICAgICAgbGV0IHA7CiAgICAgIGlmIChmcm9tID09IHRvKSB7CiAgICAgICAgcCA9ICIiOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHNwbGl0RnJvbSA9IHNwbGl0KGZyb20pOwogICAgICAgIGNvbnN0IHNwbGl0VG8gPSBzcGxpdCh0byk7CiAgICAgICAgd2hpbGUgKHNwbGl0RnJvbS5sZW5ndGggPiAwICYmIHNwbGl0VG8ubGVuZ3RoID4gMCAmJiBzcGxpdEZyb21bMF0gPT0gc3BsaXRUb1swXSkgewogICAgICAgICAgc3BsaXRGcm9tLnNoaWZ0KCk7CiAgICAgICAgICBzcGxpdFRvLnNoaWZ0KCk7CiAgICAgICAgfQogICAgICAgIGlmIChzcGxpdEZyb20ubGVuZ3RoID09IDApIHsKICAgICAgICAgIHAgPSBzcGxpdFRvLmpvaW4oZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHAgPSBzcGxpdEZyb20ubWFwKCgpID0+ICIuLiIpLmNvbmNhdChzcGxpdFRvKS5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbm9ybWFsaXplKHApOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShwMSwgcDIpIHsKICAgICAgaWYgKGlzQWJzb2x1dGUocDIpKSB7CiAgICAgICAgcmV0dXJuIHAyOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBqb2luMihwMSwgcDIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBmcmFnbWVudChwYXRoMikgewogICAgICBpZiAocGF0aDIuaW5kZXhPZihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKSAhPSAtMSkgewogICAgICAgIHRocm93IG5ldyBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbihwYXRoMik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGgyOwogICAgfQogICAgdmFyIG5vcm1hbGl6ZWRDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICBmdW5jdGlvbiByZXNldE5vcm1hbGl6ZUNhY2hlKCkgewogICAgICBub3JtYWxpemVkQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGxldCBtYXliZVBhdGggPSBub3JtYWxpemVkQ2FjaGUuZ2V0KHBhdGgyKTsKICAgICAgaWYgKCFtYXliZVBhdGgpIHsKICAgICAgICBtYXliZVBhdGggPSBub0NhY2hlTm9ybWFsaXplKHBhdGgyKTsKICAgICAgICBub3JtYWxpemVkQ2FjaGUuc2V0KHBhdGgyLCBtYXliZVBhdGgpOwogICAgICB9CiAgICAgIHJldHVybiBtYXliZVBhdGg7CiAgICB9CiAgICBmdW5jdGlvbiBub0NhY2hlTm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGlmIChwYXRoMiA9PSAiIiB8fCBwYXRoMiA9PSAiLiIpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0gZWxzZSBpZiAocGF0aDIgPT0gZXhwb3J0czIuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICByZXR1cm4gZXhwb3J0czIuTm9ybWFsaXplZFJvb3Q7CiAgICAgIH0KICAgICAgY29uc3Qgb3JpZ2luYWwgPSBwYXRoMjsKICAgICAgaWYgKHBhdGgyLm1hdGNoKC9eW0EtWl06Wy9cXF0vaSkpIHsKICAgICAgICBwYXRoMiA9ICJcXCIgKyBwYXRoMlswXS50b1VwcGVyQ2FzZSgpICsgIlxcIiArIHBhdGgyLnNsaWNlKDMpOwogICAgICB9CiAgICAgIGNvbnN0IHAgPSBwYXRoMi5zcGxpdCgvWy9cXF0vZyk7CiAgICAgIGxldCByZWxhdGl2ZTIgPSBmYWxzZTsKICAgICAgbGV0IGkgPSAxOwogICAgICBpZiAocFswXSAhPSAiIikgewogICAgICAgIHAudW5zaGlmdCgiLiIpOwogICAgICAgIHJlbGF0aXZlMiA9IHRydWU7CiAgICAgIH0KICAgICAgd2hpbGUgKGkgPCBwLmxlbmd0aCkgewogICAgICAgIGlmIChwW2ldID09ICIuIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChwW2ldID09ICIuLiIpIHsKICAgICAgICAgIGlmIChpIDwgMiAmJiAhcmVsYXRpdmUyKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGF0aEV4Y2VwdGlvbihvcmlnaW5hbCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPj0gMiAmJiBwW2kgLSAxXSAhPSAiLi4iKSB7CiAgICAgICAgICAgIHAuc3BsaWNlKGkgLSAxLCAyKTsKICAgICAgICAgICAgaS0tOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocFtpXSA9PSAiIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHAubGVuZ3RoID09IDEpIHsKICAgICAgICByZXR1cm4gcFswXSA9PSAiIiA/IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgOiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocFswXSA9PSAiLiIpIHsKICAgICAgICAgIHAuc2hpZnQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHAuam9pbihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKTsKICAgICAgfQogICAgfQogICAgdmFyIHBhdGggPSAoc3RyaW5nczMsIC4uLnZhbHVlcykgPT4gewogICAgICByZXR1cm4gbm9ybWFsaXplKFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykpOwogICAgfTsKICAgIGV4cG9ydHMyLnBhdGggPSBwYXRoOwogICAgZnVuY3Rpb24gYXNXaW5kb3dzUGF0aChwYXRoMikgewogICAgICBjb25zdCBkcml2ZSA9IHBhdGgyLm1hdGNoKC9eXC8oXHcpKD86XC8oLiopKT8kLyk7CiAgICAgIGlmIChkcml2ZSkgewogICAgICAgIGNvbnN0IHN1YlBhdGggPSBkcml2ZVsyXSA/IGRyaXZlWzJdLnJlcGxhY2UoL1wvL2csICJcXCIpIDogIiI7CiAgICAgICAgcmV0dXJuIGAke2RyaXZlWzFdfTpcXCR7c3ViUGF0aH1gOwogICAgICB9CiAgICAgIHJldHVybiBwYXRoMi5yZXBsYWNlKC9cLy9nLCAiXFwiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzUG9zaXhQYXRoKHBhdGgyKSB7CiAgICAgIHJldHVybiBwYXRoMjsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFN5c3RlbVBhdGgocGF0aDIpIHsKICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0uc3RhcnRzV2l0aCgid2luMzIiKSkgewogICAgICAgIHJldHVybiBhc1dpbmRvd3NQYXRoKHBhdGgyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYXNQb3NpeFBhdGgocGF0aDIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlcjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9idWZmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0cmluZ1RvRmlsZUJ1ZmZlciA9IHN0cmluZ1RvRmlsZUJ1ZmZlcjsKICAgIGV4cG9ydHMyLmZpbGVCdWZmZXJUb1N0cmluZyA9IGZpbGVCdWZmZXJUb1N0cmluZzsKICAgIHZhciBub2RlX3V0aWxfMSA9IHJlcXVpcmUoIm5vZGU6dXRpbCIpOwogICAgZnVuY3Rpb24gc3RyaW5nVG9GaWxlQnVmZmVyKHN0cjIpIHsKICAgICAgcmV0dXJuIG5ldyBub2RlX3V0aWxfMS5UZXh0RW5jb2RlcigpLmVuY29kZShzdHIyKS5idWZmZXI7CiAgICB9CiAgICBmdW5jdGlvbiBmaWxlQnVmZmVyVG9TdHJpbmcoZmlsZUJ1ZmZlcikgewogICAgICBpZiAoZmlsZUJ1ZmZlci50b1N0cmluZy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZmlsZUJ1ZmZlci50b1N0cmluZygidXRmLTgiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IG5vZGVfdXRpbF8xLlRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShuZXcgVWludDhBcnJheShmaWxlQnVmZmVyKSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzCnZhciByZXF1aXJlX2ludGVyZmFjZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RXYXRjaEV2ZW50VHlwZSA9IHZvaWQgMDsKICAgIHZhciBIb3N0V2F0Y2hFdmVudFR5cGU7CiAgICAoZnVuY3Rpb24oSG9zdFdhdGNoRXZlbnRUeXBlMikgewogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNoYW5nZWQiXSA9IDBdID0gIkNoYW5nZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNyZWF0ZWQiXSA9IDFdID0gIkNyZWF0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkRlbGV0ZWQiXSA9IDJdID0gIkRlbGV0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIlJlbmFtZWQiXSA9IDNdID0gIlJlbmFtZWQiOwogICAgfSkoSG9zdFdhdGNoRXZlbnRUeXBlIHx8IChleHBvcnRzMi5Ib3N0V2F0Y2hFdmVudFR5cGUgPSBIb3N0V2F0Y2hFdmVudFR5cGUgPSB7fSkpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L21lbW9yeS5qcwp2YXIgcmVxdWlyZV9tZW1vcnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9tZW1vcnkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNpbXBsZU1lbW9yeUhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBleGNlcHRpb25fMSA9IHJlcXVpcmVfZXhjZXB0aW9uKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTIoKTsKICAgIHZhciBTaW1wbGVNZW1vcnlIb3N0ID0gY2xhc3MgewogICAgICBfY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfd2F0Y2hlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfbmV3RGlyU3RhdHMoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluc3BlY3QoKSB7CiAgICAgICAgICAgIHJldHVybiAiPERpcmVjdG9yeT4iOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRmlsZSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBzaXplOiAwLAogICAgICAgICAgYXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgY3RpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgbXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgYmlydGh0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQ6IG51bGwKICAgICAgICB9OwogICAgICB9CiAgICAgIF9uZXdGaWxlU3RhdHMoY29udGVudCwgb2xkU3RhdHMpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaW5zcGVjdCgpIHsKICAgICAgICAgICAgcmV0dXJuIGA8RmlsZSBzaXplKCR7Y29udGVudC5ieXRlTGVuZ3RofSk+YDsKICAgICAgICAgIH0sCiAgICAgICAgICBpc0ZpbGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9LAogICAgICAgICAgc2l6ZTogY29udGVudC5ieXRlTGVuZ3RoLAogICAgICAgICAgYXRpbWU6IG9sZFN0YXRzID8gb2xkU3RhdHMuYXRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGN0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIG10aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGJpcnRodGltZTogb2xkU3RhdHMgPyBvbGRTdGF0cy5iaXJ0aHRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQKICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuX2NhY2hlLnNldCgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKSwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgIH0KICAgICAgX3RvQWJzb2x1dGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcGF0aF8xLmlzQWJzb2x1dGUpKHBhdGgpID8gcGF0aCA6ICgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfdXBkYXRlV2F0Y2hlcnMocGF0aCwgdHlwZTIpIHsKICAgICAgICBjb25zdCB0aW1lID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7CiAgICAgICAgbGV0IGN1cnJlbnRQYXRoID0gcGF0aDsKICAgICAgICBsZXQgcGFyZW50ID0gbnVsbDsKICAgICAgICBpZiAodGhpcy5fd2F0Y2hlcnMuc2l6ZSA9PSAwKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1heWJlV2F0Y2hlciA9IHRoaXMuX3dhdGNoZXJzLmdldChjdXJyZW50UGF0aCk7CiAgICAgICAgaWYgKG1heWJlV2F0Y2hlcikgewogICAgICAgICAgbWF5YmVXYXRjaGVyLmZvckVhY2goKHdhdGNoZXIpID0+IHsKICAgICAgICAgICAgY29uc3QgW29wdGlvbnMsIHN1YmplY3RdID0gd2F0Y2hlcjsKICAgICAgICAgICAgc3ViamVjdC5uZXh0KHsgcGF0aCwgdGltZSwgdHlwZTogdHlwZTIgfSk7CiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wZXJzaXN0ZW50ICYmIHR5cGUyID09IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKSB7CiAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHRoaXMuX3dhdGNoZXJzLmRlbGV0ZShjdXJyZW50UGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBkbyB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IHBhcmVudCAhPT0gbnVsbCA/IHBhcmVudCA6IGN1cnJlbnRQYXRoOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhdGhfMS5kaXJuYW1lKShjdXJyZW50UGF0aCk7CiAgICAgICAgICBjb25zdCBtYXliZVdhdGNoZXIyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KGN1cnJlbnRQYXRoKTsKICAgICAgICAgIGlmIChtYXliZVdhdGNoZXIyKSB7CiAgICAgICAgICAgIG1heWJlV2F0Y2hlcjIuZm9yRWFjaCgod2F0Y2hlcikgPT4gewogICAgICAgICAgICAgIGNvbnN0IFtvcHRpb25zLCBzdWJqZWN0XSA9IHdhdGNoZXI7CiAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLnJlY3Vyc2l2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBzdWJqZWN0Lm5leHQoeyBwYXRoLCB0aW1lLCB0eXBlOiB0eXBlMiB9KTsKICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMucGVyc2lzdGVudCAmJiB0eXBlMiA9PSBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZCkgewogICAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgdGhpcy5fd2F0Y2hlcnMuZGVsZXRlKGN1cnJlbnRQYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKHBhcmVudCAhPSBjdXJyZW50UGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaXN0IG9mIHByb3RlY3RlZCBtZXRob2RzIHRoYXQgZ2l2ZSBkaXJlY3QgYWNjZXNzIG91dHNpZGUgdGhlIG9ic2VydmFibGVzIHRvIHRoZSBjYWNoZQogICAgICAgKiBhbmQgaW50ZXJuYWwgc3RhdGVzLgogICAgICAgKi8KICAgICAgX3dyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl9jYWNoZS5nZXQocGF0aCk7CiAgICAgICAgaWYgKG9sZCAmJiBvbGQuaXNEaXJlY3RvcnkoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gKDAsIHBhdGhfMS5zcGxpdCkocGF0aCk7CiAgICAgICAgbGV0IGN1cnIgPSAoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGZyIG9mIGZyYWdtZW50cykgewogICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChmcik7CiAgICAgICAgICBpZiAobWF5YmVTdGF0cykgewogICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5QYXRoSXNGaWxlRXhjZXB0aW9uKGN1cnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoY3VyciwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fbmV3RmlsZVN0YXRzKGNvbnRlbnQsIG9sZCk7CiAgICAgICAgdGhpcy5fY2FjaGUuc2V0KHBhdGgsIHN0YXRzKTsKICAgICAgICB0aGlzLl91cGRhdGVXYXRjaGVycyhwYXRoLCBvbGQgPyBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZCA6IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkKTsKICAgICAgfQogICAgICBfcmVhZChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChwYXRoKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAobWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAoIW1heWJlU3RhdHMuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIG1heWJlU3RhdHMuY29udGVudDsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RlbGV0ZShwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgICBmb3IgKGNvbnN0IFtjYWNoZVBhdGhdIG9mIHRoaXMuX2NhY2hlLmVudHJpZXMoKSkgewogICAgICAgICAgICBpZiAoY2FjaGVQYXRoLnN0YXJ0c1dpdGgocGF0aCArIHBhdGhfMS5Ob3JtYWxpemVkU2VwKSB8fCBjYWNoZVBhdGggPT09IHBhdGgpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVQYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUocGF0aCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKHBhdGgsIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKTsKICAgICAgfQogICAgICBfcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgZnJvbSA9IHRoaXMuX3RvQWJzb2x1dGUoZnJvbSk7CiAgICAgICAgdG8gPSB0aGlzLl90b0Fic29sdXRlKHRvKTsKICAgICAgICBpZiAoIXRoaXMuX2NhY2hlLmhhcyhmcm9tKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oZnJvbSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jYWNoZS5oYXModG8pKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pc0RpcmVjdG9yeShmcm9tKSkgewogICAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGZyb20gKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY2FjaGUuZ2V0KHBhdGgpOwogICAgICAgICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoKDAsIHBhdGhfMS5qb2luKSh0bywgcGF0aF8xLk5vcm1hbGl6ZWRTZXAsIHBhdGguc2xpY2UoZnJvbS5sZW5ndGgpKSwgY29udGVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9jYWNoZS5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSAoMCwgcGF0aF8xLnNwbGl0KSh0byk7CiAgICAgICAgICAgIGNvbnN0IG5ld0RpcmVjdG9yaWVzID0gW107CiAgICAgICAgICAgIGxldCBjdXJyID0gKDAsIHBhdGhfMS5ub3JtYWxpemUpKCIvIik7CiAgICAgICAgICAgIGZvciAoY29uc3QgZnIgb2YgZnJhZ21lbnRzKSB7CiAgICAgICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgICAgIGNvbnN0IG1heWJlU3RhdHMgPSB0aGlzLl9jYWNoZS5nZXQoZnIpOwogICAgICAgICAgICAgIGlmIChtYXliZVN0YXRzKSB7CiAgICAgICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihjdXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmV3RGlyZWN0b3JpZXMucHVzaChjdXJyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChjb25zdCBuZXdEaXJlY3Rvcnkgb2YgbmV3RGlyZWN0b3JpZXMpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQobmV3RGlyZWN0b3J5LCB0aGlzLl9uZXdEaXJTdGF0cygpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoZnJvbSk7CiAgICAgICAgICAgIHRoaXMuX2NhY2hlLnNldCh0bywgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKGZyb20sIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5SZW5hbWVkKTsKICAgICAgfQogICAgICBfbGlzdChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRmlsZShwYXRoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0ZpbGVFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZyYWdtZW50cyA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgaWYgKHBhdGggIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgZm9yIChjb25zdCBwIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocC5zdGFydHNXaXRoKHBhdGggKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICByZXN1bHQuYWRkKCgwLCBwYXRoXzEuc3BsaXQpKHApW2ZyYWdtZW50cy5sZW5ndGhdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5fY2FjaGUua2V5cygpKSB7CiAgICAgICAgICAgIGlmIChwLnN0YXJ0c1dpdGgocGF0aF8xLk5vcm1hbGl6ZWRTZXApICYmIHAgIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgICAgIHJlc3VsdC5hZGQoKDAsIHBhdGhfMS5zcGxpdCkocClbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBbLi4ucmVzdWx0XTsKICAgICAgfQogICAgICBfZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gISF0aGlzLl9jYWNoZS5nZXQodGhpcy5fdG9BYnNvbHV0ZShwYXRoKSk7CiAgICAgIH0KICAgICAgX2lzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICBjb25zdCBtYXliZVN0YXRzID0gdGhpcy5fY2FjaGUuZ2V0KHRoaXMuX3RvQWJzb2x1dGUocGF0aCkpOwogICAgICAgIHJldHVybiBtYXliZVN0YXRzID8gbWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpIDogZmFsc2U7CiAgICAgIH0KICAgICAgX2lzRmlsZShwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0cyA/IG1heWJlU3RhdHMuaXNGaWxlKCkgOiBmYWxzZTsKICAgICAgfQogICAgICBfc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTdGF0czsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3dhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgICAgbGV0IG1heWJlV2F0Y2hlckFycmF5ID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghbWF5YmVXYXRjaGVyQXJyYXkpIHsKICAgICAgICAgIG1heWJlV2F0Y2hlckFycmF5ID0gW107CiAgICAgICAgICB0aGlzLl93YXRjaGVycy5zZXQocGF0aCwgbWF5YmVXYXRjaGVyQXJyYXkpOwogICAgICAgIH0KICAgICAgICBtYXliZVdhdGNoZXJBcnJheS5wdXNoKFtvcHRpb25zIHx8IHt9LCBzdWJqZWN0XSk7CiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgdGhpcy5fd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fcmVhZChwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KGNvbnRlbnQpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX2RlbGV0ZShwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KCk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX3JlbmFtZShmcm9tLCB0byk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9saXN0KHBhdGgpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9leGlzdHMocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQodGhpcy5faXNEaXJlY3RvcnkocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX2lzRmlsZShwYXRoKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX3N0YXQocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl93YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgIHRoaXMuX3dhdGNoZXJzLmNsZWFyKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TaW1wbGVNZW1vcnlIb3N0ID0gU2ltcGxlTWVtb3J5SG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzCnZhciByZXF1aXJlX3N5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TeW5jRGVsZWdhdGVIb3N0ID0gZXhwb3J0czIuU3luY2hyb25vdXNEZWxlZ2F0ZUV4cGVjdGVkRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcihgRXhwZWN0ZWQgYSBzeW5jaHJvbm91cyBkZWxlZ2F0ZSBidXQgZ290IGFuIGFzeW5jaHJvbm91cyBvbmUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb247CiAgICB2YXIgU3luY0RlbGVnYXRlSG9zdCA9IGNsYXNzIHsKICAgICAgX2RlbGVnYXRlOwogICAgICBjb25zdHJ1Y3RvcihfZGVsZWdhdGUpIHsKICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IF9kZWxlZ2F0ZTsKICAgICAgICBpZiAoIV9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuc3luY2hyb25vdXMpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RvU3luY0NhbGwob2JzZXJ2YWJsZSkgewogICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKICAgICAgICBsZXQgcmVzdWx0ID0gdm9pZCAwOwogICAgICAgIGxldCBlcnJvclJlc3VsdCA9IHZvaWQgMDsKICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZSgoeCkgPT4gcmVzdWx0ID0geCwgKGVycikgPT4gZXJyb3JSZXN1bHQgPSBlcnIsICgpID0+IGNvbXBsZXRlZCA9IHRydWUpOwogICAgICAgIGlmIChlcnJvclJlc3VsdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBlcnJvclJlc3VsdDsKICAgICAgICB9CiAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICBnZXQgY2FwYWJpbGl0aWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXM7CiAgICAgIH0KICAgICAgZ2V0IGRlbGVnYXRlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZTsKICAgICAgfQogICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUud3JpdGUocGF0aCwgY29udGVudCkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLnJlYWQocGF0aCkpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUuZGVsZXRlKHBhdGgpKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUoZnJvbSwgdG8pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmV4aXN0cyhwYXRoKSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRmlsZShwYXRoKSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgc3RhdC4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbChyZXN1bHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlN5bmNEZWxlZ2F0ZUhvc3QgPSBTeW5jRGVsZWdhdGVIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMKdmFyIHJlcXVpcmVfdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRlc3RIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBhdGhfMSA9IHJlcXVpcmVfcGF0aCgpOwogICAgdmFyIGJ1ZmZlcl8xID0gcmVxdWlyZV9idWZmZXIyKCk7CiAgICB2YXIgbWVtb3J5XzEgPSByZXF1aXJlX21lbW9yeSgpOwogICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYygpOwogICAgdmFyIFRlc3RIb3N0ID0gY2xhc3MgX1Rlc3RIb3N0IGV4dGVuZHMgbWVtb3J5XzEuU2ltcGxlTWVtb3J5SG9zdCB7CiAgICAgIF9yZWNvcmRzID0gW107CiAgICAgIF9zeW5jID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IobWFwMiA9IHt9KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1hcDIpKSB7CiAgICAgICAgICB0aGlzLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoZmlsZVBhdGgpLCAoMCwgYnVmZmVyXzEuc3RyaW5nVG9GaWxlQnVmZmVyKShtYXAyW2ZpbGVQYXRoXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgcmVjb3JkcygpIHsKICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3JlY29yZHNdOwogICAgICB9CiAgICAgIGNsZWFyUmVjb3JkcygpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CiAgICAgIH0KICAgICAgZ2V0IGZpbGVzKCkgewogICAgICAgIGNvbnN0IHN5bmMgPSB0aGlzLnN5bmM7CiAgICAgICAgZnVuY3Rpb24gX3Zpc2l0KHApIHsKICAgICAgICAgIHJldHVybiBzeW5jLmxpc3QocCkubWFwKChmcmFnbWVudCkgPT4gKDAsIHBhdGhfMS5qb2luKShwLCBmcmFnbWVudCkpLnJlZHVjZSgoZmlsZXMsIHBhdGgpID0+IHsKICAgICAgICAgICAgaWYgKHN5bmMuaXNEaXJlY3RvcnkocGF0aCkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmlsZXMuY29uY2F0KF92aXNpdChwYXRoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpbGVzLmNvbmNhdChwYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3Zpc2l0KCgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIpKTsKICAgICAgfQogICAgICBnZXQgc3luYygpIHsKICAgICAgICBpZiAoIXRoaXMuX3N5bmMpIHsKICAgICAgICAgIHRoaXMuX3N5bmMgPSBuZXcgc3luY18xLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9zeW5jOwogICAgICB9CiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IG5ld0hvc3QgPSBuZXcgX1Rlc3RIb3N0KCk7CiAgICAgICAgbmV3SG9zdC5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICByZXR1cm4gbmV3SG9zdDsKICAgICAgfQogICAgICAvLyBPdmVycmlkZSBwYXJlbnRzIGZ1bmN0aW9ucyB0byBrZWVwIGEgcmVjb3JkIG9mIGFsbCBvcGVyYXRvcnMgdGhhdCB3ZXJlIGRvbmUuCiAgICAgIF93cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndyaXRlIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKHBhdGgsIGNvbnRlbnQpOwogICAgICB9CiAgICAgIF9yZWFkKHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVhZCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIF9kZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJkZWxldGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIF9yZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVuYW1lIiwgZnJvbSwgdG8gfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIF9saXN0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAibGlzdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9saXN0KHBhdGgpOwogICAgICB9CiAgICAgIF9leGlzdHMocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJleGlzdHMiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZXhpc3RzKHBhdGgpOwogICAgICB9CiAgICAgIF9pc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogImlzRGlyZWN0b3J5IiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX2lzRGlyZWN0b3J5KHBhdGgpOwogICAgICB9CiAgICAgIF9pc0ZpbGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJpc0ZpbGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIF9zdGF0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAic3RhdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIF93YXRjaChwYXRoLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndhdGNoIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dhdGNoKHBhdGgsIG9wdGlvbnMpOwogICAgICB9CiAgICAgICR3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCksICgwLCBidWZmZXJfMS5zdHJpbmdUb0ZpbGVCdWZmZXIpKGNvbnRlbnQpKTsKICAgICAgfQogICAgICAkcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBidWZmZXJfMS5maWxlQnVmZmVyVG9TdHJpbmcpKHN1cGVyLl9yZWFkKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICB9CiAgICAgICRsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2xpc3QoKDAsIHBhdGhfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgfQogICAgICAkZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2V4aXN0cygoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9pc0RpcmVjdG9yeSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5UZXN0SG9zdCA9IFRlc3RIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Jlc29sdmVyLmpzCnZhciByZXF1aXJlX3Jlc29sdmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVzb2x2ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IHZvaWQgMDsKICAgIHZhciBSZXNvbHZlckhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUud3JpdGUodGhpcy5fcmVzb2x2ZShwYXRoKSwgY29udGVudCk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlYWQodGhpcy5fcmVzb2x2ZShwYXRoKSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGVsZXRlKHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUodGhpcy5fcmVzb2x2ZShmcm9tKSwgdGhpcy5fcmVzb2x2ZSh0bykpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmV4aXN0cyh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGlzRmlsZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRmlsZSh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdCh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaCh0aGlzLl9yZXNvbHZlKHBhdGgpLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IFJlc29sdmVySG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9hbGlhcy5qcwp2YXIgcmVxdWlyZV9hbGlhcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBBbGlhc0hvc3QgPSBjbGFzcyBleHRlbmRzIHJlc29sdmVyXzEuUmVzb2x2ZXJIb3N0IHsKICAgICAgX2FsaWFzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfcmVzb2x2ZShwYXRoKSB7CiAgICAgICAgbGV0IG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwYXRoKTsKICAgICAgICBjb25zdCBzcCA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IFtdOwogICAgICAgIHdoaWxlICghbWF5YmVBbGlhcyAmJiBzcC5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjb25zdCBwID0gKDAsIHBhdGhfMS5qb2luKShwYXRoXzEuTm9ybWFsaXplZFJvb3QsIC4uLnNwKTsKICAgICAgICAgIG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwKTsKICAgICAgICAgIGlmIChtYXliZUFsaWFzKSB7CiAgICAgICAgICAgIG1heWJlQWxpYXMgPSAoMCwgcGF0aF8xLmpvaW4pKG1heWJlQWxpYXMsIC4uLnJlbWFpbmluZyk7CiAgICAgICAgICB9CiAgICAgICAgICByZW1haW5pbmcudW5zaGlmdChzcC5wb3AoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUFsaWFzIHx8IHBhdGg7CiAgICAgIH0KICAgICAgZ2V0IGFsaWFzZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZXM7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSBBbGlhc0hvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzCnZhciByZXF1aXJlX2NyZWF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2NyZWF0ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlU3luY0hvc3QgPSBjcmVhdGVTeW5jSG9zdDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgZnVuY3Rpb24gd3JhcEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4gewogICAgICAgIHN1YnNjcmliZXIubmV4dChhY3Rpb24oKSk7CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNyZWF0ZVN5bmNIb3N0KGhhbmRsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBjbGFzcyB7CiAgICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICAgIHJldHVybiB7IHN5bmNocm9ub3VzOiB0cnVlIH07CiAgICAgICAgfQogICAgICAgIHJlYWQocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5yZWFkKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmxpc3QocGF0aCkpOwogICAgICAgIH0KICAgICAgICBleGlzdHMocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5leGlzdHMocGF0aCkpOwogICAgICAgIH0KICAgICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuaXNGaWxlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnN0YXQocGF0aCkpOwogICAgICAgIH0KICAgICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLndyaXRlKHBhdGgsIGNvbnRlbnQpKTsKICAgICAgICB9CiAgICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuZGVsZXRlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnJlbmFtZShmcm9tLCB0bykpOwogICAgICAgIH0KICAgICAgICB3YXRjaCgpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgfSgpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBFbXB0eSA9IGNsYXNzIHsKICAgICAgY2FwYWJpbGl0aWVzID0gewogICAgICAgIHN5bmNocm9ub3VzOiB0cnVlCiAgICAgIH07CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikoW10pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgIH0KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKG51bGwpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRW1wdHkgPSBFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanMKdmFyIHJlcXVpcmVfY29uc3RhbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvY29uc3RhbnRzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFdJTl9TTEFTSCA9ICJcXFxcLyI7CiAgICB2YXIgV0lOX05PX1NMQVNIID0gYFteJHtXSU5fU0xBU0h9XWA7CiAgICB2YXIgRE9UX0xJVEVSQUwgPSAiXFwuIjsKICAgIHZhciBQTFVTX0xJVEVSQUwgPSAiXFwrIjsKICAgIHZhciBRTUFSS19MSVRFUkFMID0gIlxcPyI7CiAgICB2YXIgU0xBU0hfTElURVJBTCA9ICJcXC8iOwogICAgdmFyIE9ORV9DSEFSID0gIig/PS4pIjsKICAgIHZhciBRTUFSSyA9ICJbXi9dIjsKICAgIHZhciBFTkRfQU5DSE9SID0gYCg/OiR7U0xBU0hfTElURVJBTH18JClgOwogICAgdmFyIFNUQVJUX0FOQ0hPUiA9IGAoPzpefCR7U0xBU0hfTElURVJBTH0pYDsKICAgIHZhciBET1RTX1NMQVNIID0gYCR7RE9UX0xJVEVSQUx9ezEsMn0ke0VORF9BTkNIT1J9YDsKICAgIHZhciBOT19ET1QgPSBgKD8hJHtET1RfTElURVJBTH0pYDsKICAgIHZhciBOT19ET1RTID0gYCg/ISR7U1RBUlRfQU5DSE9SfSR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBOT19ET1RfU0xBU0ggPSBgKD8hJHtET1RfTElURVJBTH17MCwxfSR7RU5EX0FOQ0hPUn0pYDsKICAgIHZhciBOT19ET1RTX1NMQVNIID0gYCg/ISR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBRTUFSS19OT19ET1QgPSBgW14uJHtTTEFTSF9MSVRFUkFMfV1gOwogICAgdmFyIFNUQVIgPSBgJHtRTUFSS30qP2A7CiAgICB2YXIgU0VQID0gIi8iOwogICAgdmFyIFBPU0lYX0NIQVJTID0gewogICAgICBET1RfTElURVJBTCwKICAgICAgUExVU19MSVRFUkFMLAogICAgICBRTUFSS19MSVRFUkFMLAogICAgICBTTEFTSF9MSVRFUkFMLAogICAgICBPTkVfQ0hBUiwKICAgICAgUU1BUkssCiAgICAgIEVORF9BTkNIT1IsCiAgICAgIERPVFNfU0xBU0gsCiAgICAgIE5PX0RPVCwKICAgICAgTk9fRE9UUywKICAgICAgTk9fRE9UX1NMQVNILAogICAgICBOT19ET1RTX1NMQVNILAogICAgICBRTUFSS19OT19ET1QsCiAgICAgIFNUQVIsCiAgICAgIFNUQVJUX0FOQ0hPUiwKICAgICAgU0VQCiAgICB9OwogICAgdmFyIFdJTkRPV1NfQ0hBUlMgPSB7CiAgICAgIC4uLlBPU0lYX0NIQVJTLAogICAgICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLAogICAgICBRTUFSSzogV0lOX05PX1NMQVNILAogICAgICBTVEFSOiBgJHtXSU5fTk9fU0xBU0h9Kj9gLAogICAgICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCwKICAgICAgTk9fRE9UOiBgKD8hJHtET1RfTElURVJBTH0pYCwKICAgICAgTk9fRE9UUzogYCg/ISg/Ol58WyR7V0lOX1NMQVNIfV0pJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLAogICAgICBOT19ET1RTX1NMQVNIOiBgKD8hJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIFFNQVJLX05PX0RPVDogYFteLiR7V0lOX1NMQVNIfV1gLAogICAgICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsCiAgICAgIEVORF9BTkNIT1I6IGAoPzpbJHtXSU5fU0xBU0h9XXwkKWAsCiAgICAgIFNFUDogIlxcIgogICAgfTsKICAgIHZhciBQT1NJWF9SRUdFWF9TT1VSQ0UgPSB7CiAgICAgIGFsbnVtOiAiYS16QS1aMC05IiwKICAgICAgYWxwaGE6ICJhLXpBLVoiLAogICAgICBhc2NpaTogIlxceDAwLVxceDdGIiwKICAgICAgYmxhbms6ICIgXFx0IiwKICAgICAgY250cmw6ICJcXHgwMC1cXHgxRlxceDdGIiwKICAgICAgZGlnaXQ6ICIwLTkiLAogICAgICBncmFwaDogIlxceDIxLVxceDdFIiwKICAgICAgbG93ZXI6ICJhLXoiLAogICAgICBwcmludDogIlxceDIwLVxceDdFICIsCiAgICAgIHB1bmN0OiAiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLAogICAgICBzcGFjZTogIiBcXHRcXHJcXG5cXHZcXGYiLAogICAgICB1cHBlcjogIkEtWiIsCiAgICAgIHdvcmQ6ICJBLVphLXowLTlfIiwKICAgICAgeGRpZ2l0OiAiQS1GYS1mMC05IgogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LAogICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsCiAgICAgIC8vIHJlZ3VsYXIgZXhwcmVzc2lvbnMKICAgICAgUkVHRVhfQkFDS1NMQVNIOiAvXFwoPyFbKis/XiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTOiAvXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlM6IC9bLSorPy5eJHt9KHwpW1xdXS8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjogLyhcXD8pKChcVykoXDMqKSkvZywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6IC8oWy0qKz8uXiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6IC8oPzpcWy4qP1teXFxdXF18XFwoPz0uKSkvZywKICAgICAgLy8gUmVwbGFjZSBnbG9icyB3aXRoIGVxdWl2YWxlbnQgcGF0dGVybnMgdG8gcmVkdWNlIHBhcnNpbmcgdGltZS4KICAgICAgUkVQTEFDRU1FTlRTOiB7CiAgICAgICAgIioqKiI6ICIqIiwKICAgICAgICAiKiovKioiOiAiKioiLAogICAgICAgICIqKi8qKi8qKiI6ICIqKiIKICAgICAgfSwKICAgICAgLy8gRGlnaXRzCiAgICAgIENIQVJfMDogNDgsCiAgICAgIC8qIDAgKi8KICAgICAgQ0hBUl85OiA1NywKICAgICAgLyogOSAqLwogICAgICAvLyBBbHBoYWJldCBjaGFycy4KICAgICAgQ0hBUl9VUFBFUkNBU0VfQTogNjUsCiAgICAgIC8qIEEgKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfQTogOTcsCiAgICAgIC8qIGEgKi8KICAgICAgQ0hBUl9VUFBFUkNBU0VfWjogOTAsCiAgICAgIC8qIFogKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfWjogMTIyLAogICAgICAvKiB6ICovCiAgICAgIENIQVJfTEVGVF9QQVJFTlRIRVNFUzogNDAsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsCiAgICAgIC8qICkgKi8KICAgICAgQ0hBUl9BU1RFUklTSzogNDIsCiAgICAgIC8qICogKi8KICAgICAgLy8gTm9uLWFscGhhYmV0aWMgY2hhcnMuCiAgICAgIENIQVJfQU1QRVJTQU5EOiAzOCwKICAgICAgLyogJiAqLwogICAgICBDSEFSX0FUOiA2NCwKICAgICAgLyogQCAqLwogICAgICBDSEFSX0JBQ0tXQVJEX1NMQVNIOiA5MiwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogMTMsCiAgICAgIC8qIFxyICovCiAgICAgIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LAogICAgICAvKiBeICovCiAgICAgIENIQVJfQ09MT046IDU4LAogICAgICAvKiA6ICovCiAgICAgIENIQVJfQ09NTUE6IDQ0LAogICAgICAvKiAsICovCiAgICAgIENIQVJfRE9UOiA0NiwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0RPVUJMRV9RVU9URTogMzQsCiAgICAgIC8qICIgKi8KICAgICAgQ0hBUl9FUVVBTDogNjEsCiAgICAgIC8qID0gKi8KICAgICAgQ0hBUl9FWENMQU1BVElPTl9NQVJLOiAzMywKICAgICAgLyogISAqLwogICAgICBDSEFSX0ZPUk1fRkVFRDogMTIsCiAgICAgIC8qIFxmICovCiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogNDcsCiAgICAgIC8qIC8gKi8KICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQ6IDk2LAogICAgICAvKiBgICovCiAgICAgIENIQVJfSEFTSDogMzUsCiAgICAgIC8qICMgKi8KICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IDQ1LAogICAgICAvKiAtICovCiAgICAgIENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiA2MCwKICAgICAgLyogPCAqLwogICAgICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6IDEyMywKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6IDkxLAogICAgICAvKiBbICovCiAgICAgIENIQVJfTElORV9GRUVEOiAxMCwKICAgICAgLyogXG4gKi8KICAgICAgQ0hBUl9OT19CUkVBS19TUEFDRTogMTYwLAogICAgICAvKiBcdTAwQTAgKi8KICAgICAgQ0hBUl9QRVJDRU5UOiAzNywKICAgICAgLyogJSAqLwogICAgICBDSEFSX1BMVVM6IDQzLAogICAgICAvKiArICovCiAgICAgIENIQVJfUVVFU1RJT05fTUFSSzogNjMsCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiA2MiwKICAgICAgLyogPiAqLwogICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOiAxMjUsCiAgICAgIC8qIH0gKi8KICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogOTMsCiAgICAgIC8qIF0gKi8KICAgICAgQ0hBUl9TRU1JQ09MT046IDU5LAogICAgICAvKiA7ICovCiAgICAgIENIQVJfU0lOR0xFX1FVT1RFOiAzOSwKICAgICAgLyogJyAqLwogICAgICBDSEFSX1NQQUNFOiAzMiwKICAgICAgLyogICAqLwogICAgICBDSEFSX1RBQjogOSwKICAgICAgLyogXHQgKi8KICAgICAgQ0hBUl9VTkRFUlNDT1JFOiA5NSwKICAgICAgLyogXyAqLwogICAgICBDSEFSX1ZFUlRJQ0FMX0xJTkU6IDEyNCwKICAgICAgLyogfCAqLwogICAgICBDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTogNjUyNzksCiAgICAgIC8qIFx1RkVGRiAqLwogICAgICAvKioKICAgICAgICogQ3JlYXRlIEVYVEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGV4dGdsb2JDaGFycyhjaGFycykgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiISI6IHsgdHlwZTogIm5lZ2F0ZSIsIG9wZW46ICIoPzooPyEoPzoiLCBjbG9zZTogYCkpJHtjaGFycy5TVEFSfSlgIH0sCiAgICAgICAgICAiPyI6IHsgdHlwZTogInFtYXJrIiwgb3BlbjogIig/OiIsIGNsb3NlOiAiKT8iIH0sCiAgICAgICAgICAiKyI6IHsgdHlwZTogInBsdXMiLCBvcGVuOiAiKD86IiwgY2xvc2U6ICIpKyIgfSwKICAgICAgICAgICIqIjogeyB0eXBlOiAic3RhciIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikqIiB9LAogICAgICAgICAgIkAiOiB7IHR5cGU6ICJhdCIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikiIH0KICAgICAgICB9OwogICAgICB9LAogICAgICAvKioKICAgICAgICogQ3JlYXRlIEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGdsb2JDaGFycyh3aW4zMikgewogICAgICAgIHJldHVybiB3aW4zMiA9PT0gdHJ1ZSA/IFdJTkRPV1NfQ0hBUlMgOiBQT1NJWF9DSEFSUzsKICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB7CiAgICAgIFJFR0VYX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSUywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUwKICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgZXhwb3J0czIuaXNPYmplY3QgPSAodmFsKSA9PiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIGV4cG9ydHMyLmhhc1JlZ2V4Q2hhcnMgPSAoc3RyMikgPT4gUkVHRVhfU1BFQ0lBTF9DSEFSUy50ZXN0KHN0cjIpOwogICAgZXhwb3J0czIuaXNSZWdleENoYXIgPSAoc3RyMikgPT4gc3RyMi5sZW5ndGggPT09IDEgJiYgZXhwb3J0czIuaGFzUmVnZXhDaGFycyhzdHIyKTsKICAgIGV4cG9ydHMyLmVzY2FwZVJlZ2V4ID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTCwgIlxcJDEiKTsKICAgIGV4cG9ydHMyLnRvUG9zaXhTbGFzaGVzID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9CQUNLU0xBU0gsICIvIik7CiAgICBleHBvcnRzMi5pc1dpbmRvd3MgPSAoKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAidW5kZWZpbmVkIiAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHsKICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiBwbGF0Zm9ybSA9PT0gIndpbjMyIiB8fCBwbGF0Zm9ybSA9PT0gIndpbmRvd3MiOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gInVuZGVmaW5lZCIgJiYgcHJvY2Vzcy5wbGF0Zm9ybSkgewogICAgICAgIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSAid2luMzIiOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CiAgICBleHBvcnRzMi5yZW1vdmVCYWNrc2xhc2hlcyA9IChzdHIyKSA9PiB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwgKG1hdGNoKSA9PiB7CiAgICAgICAgcmV0dXJuIG1hdGNoID09PSAiXFwiID8gIiIgOiBtYXRjaDsKICAgICAgfSk7CiAgICB9OwogICAgZXhwb3J0czIuZXNjYXBlTGFzdCA9IChpbnB1dCwgY2hhciwgbGFzdElkeCkgPT4gewogICAgICBjb25zdCBpZHggPSBpbnB1dC5sYXN0SW5kZXhPZihjaGFyLCBsYXN0SWR4KTsKICAgICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybiBpbnB1dDsKICAgICAgaWYgKGlucHV0W2lkeCAtIDFdID09PSAiXFwiKSByZXR1cm4gZXhwb3J0czIuZXNjYXBlTGFzdChpbnB1dCwgY2hhciwgaWR4IC0gMSk7CiAgICAgIHJldHVybiBgJHtpbnB1dC5zbGljZSgwLCBpZHgpfVxcJHtpbnB1dC5zbGljZShpZHgpfWA7CiAgICB9OwogICAgZXhwb3J0czIucmVtb3ZlUHJlZml4ID0gKGlucHV0LCBzdGF0ZSA9IHt9KSA9PiB7CiAgICAgIGxldCBvdXRwdXQgPSBpbnB1dDsKICAgICAgaWYgKG91dHB1dC5zdGFydHNXaXRoKCIuLyIpKSB7CiAgICAgICAgb3V0cHV0ID0gb3V0cHV0LnNsaWNlKDIpOwogICAgICAgIHN0YXRlLnByZWZpeCA9ICIuLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIG91dHB1dDsKICAgIH07CiAgICBleHBvcnRzMi53cmFwT3V0cHV0ID0gKGlucHV0LCBzdGF0ZSA9IHt9LCBvcHRpb25zID0ge30pID0+IHsKICAgICAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnMuY29udGFpbnMgPyAiIiA6ICJeIjsKICAgICAgY29uc3QgYXBwZW5kID0gb3B0aW9ucy5jb250YWlucyA/ICIiIDogIiQiOwogICAgICBsZXQgb3V0cHV0ID0gYCR7cHJlcGVuZH0oPzoke2lucHV0fSkke2FwcGVuZH1gOwogICAgICBpZiAoc3RhdGUubmVnYXRlZCA9PT0gdHJ1ZSkgewogICAgICAgIG91dHB1dCA9IGAoPzpeKD8hJHtvdXRwdXR9KS4qJClgOwogICAgICB9CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9OwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSAocGF0aCwgeyB3aW5kb3dzIH0gPSB7fSkgPT4gewogICAgICBjb25zdCBzZWdzID0gcGF0aC5zcGxpdCh3aW5kb3dzID8gL1tcXC9dLyA6ICIvIik7CiAgICAgIGNvbnN0IGxhc3QgPSBzZWdzW3NlZ3MubGVuZ3RoIC0gMV07CiAgICAgIGlmIChsYXN0ID09PSAiIikgewogICAgICAgIHJldHVybiBzZWdzW3NlZ3MubGVuZ3RoIC0gMl07CiAgICAgIH0KICAgICAgcmV0dXJuIGxhc3Q7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9zY2FuLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIENIQVJfQVNURVJJU0s6IENIQVJfQVNURVJJU0syLAogICAgICAvKiAqICovCiAgICAgIENIQVJfQVQsCiAgICAgIC8qIEAgKi8KICAgICAgQ0hBUl9CQUNLV0FSRF9TTEFTSCwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NPTU1BOiBDSEFSX0NPTU1BMiwKICAgICAgLyogLCAqLwogICAgICBDSEFSX0RPVCwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUkssCiAgICAgIC8qICEgKi8KICAgICAgQ0hBUl9GT1JXQVJEX1NMQVNILAogICAgICAvKiAvICovCiAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDRSwKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOiBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyLAogICAgICAvKiBbICovCiAgICAgIENIQVJfUExVUywKICAgICAgLyogKyAqLwogICAgICBDSEFSX1FVRVNUSU9OX01BUkssCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwKICAgICAgLyogfSAqLwogICAgICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTLAogICAgICAvKiApICovCiAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQyCiAgICAgIC8qIF0gKi8KICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIGlzUGF0aFNlcGFyYXRvciA9IChjb2RlKSA9PiB7CiAgICAgIHJldHVybiBjb2RlID09PSBDSEFSX0ZPUldBUkRfU0xBU0ggfHwgY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSDsKICAgIH07CiAgICB2YXIgZGVwdGggPSAodG9rZW4pID0+IHsKICAgICAgaWYgKHRva2VuLmlzUHJlZml4ICE9PSB0cnVlKSB7CiAgICAgICAgdG9rZW4uZGVwdGggPSB0b2tlbi5pc0dsb2JzdGFyID8gSW5maW5pdHkgOiAxOwogICAgICB9CiAgICB9OwogICAgdmFyIHNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7CiAgICAgIGNvbnN0IHNjYW5Ub0VuZCA9IG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy5zY2FuVG9FbmQgPT09IHRydWU7CiAgICAgIGNvbnN0IHNsYXNoZXMgPSBbXTsKICAgICAgY29uc3QgdG9rZW5zID0gW107CiAgICAgIGNvbnN0IHBhcnRzID0gW107CiAgICAgIGxldCBzdHIyID0gaW5wdXQ7CiAgICAgIGxldCBpbmRleCA9IC0xOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgbGFzdEluZGV4ID0gMDsKICAgICAgbGV0IGlzQnJhY2UgPSBmYWxzZTsKICAgICAgbGV0IGlzQnJhY2tldCA9IGZhbHNlOwogICAgICBsZXQgaXNHbG9iID0gZmFsc2U7CiAgICAgIGxldCBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgbGV0IGlzR2xvYnN0YXIgPSBmYWxzZTsKICAgICAgbGV0IGJyYWNlRXNjYXBlZCA9IGZhbHNlOwogICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWQgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWRFeHRnbG9iID0gZmFsc2U7CiAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlOwogICAgICBsZXQgYnJhY2VzID0gMDsKICAgICAgbGV0IHByZXY7CiAgICAgIGxldCBjb2RlOwogICAgICBsZXQgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgY29uc3QgZW9zID0gKCkgPT4gaW5kZXggPj0gbGVuZ3RoOwogICAgICBjb25zdCBwZWVrID0gKCkgPT4gc3RyMi5jaGFyQ29kZUF0KGluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGFkdmFuY2UgPSAoKSA9PiB7CiAgICAgICAgcHJldiA9IGNvZGU7CiAgICAgICAgcmV0dXJuIHN0cjIuY2hhckNvZGVBdCgrK2luZGV4KTsKICAgICAgfTsKICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CiAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICBsZXQgbmV4dDsKICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpOwogICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICBicmFjZUVzY2FwZWQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChicmFjZUVzY2FwZWQgPT09IHRydWUgfHwgY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7CiAgICAgICAgICBicmFjZXMrKzsKICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHsKICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHsKICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICBhZHZhbmNlKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICAgIGJyYWNlcysrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChicmFjZUVzY2FwZWQgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9ET1QgJiYgKGNvZGUgPSBhZHZhbmNlKCkpID09PSBDSEFSX0RPVCkgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0NPTU1BMikgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHsKICAgICAgICAgICAgICBicmFjZXMtLTsKICAgICAgICAgICAgICBpZiAoYnJhY2VzID09PSAwKSB7CiAgICAgICAgICAgICAgICBicmFjZUVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIKSB7CiAgICAgICAgICBzbGFzaGVzLnB1c2goaW5kZXgpOwogICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgICAgIGlmIChmaW5pc2hlZCA9PT0gdHJ1ZSkgY29udGludWU7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9ET1QgJiYgaW5kZXggPT09IHN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGFydCArPSAyOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub2V4dCAhPT0gdHJ1ZSkgewogICAgICAgICAgY29uc3QgaXNFeHRnbG9iQ2hhciA9IGNvZGUgPT09IENIQVJfUExVUyB8fCBjb2RlID09PSBDSEFSX0FUIHx8IGNvZGUgPT09IENIQVJfQVNURVJJU0syIHx8IGNvZGUgPT09IENIQVJfUVVFU1RJT05fTUFSSyB8fCBjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUks7CiAgICAgICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICBpc0V4dGdsb2IgPSB0b2tlbi5pc0V4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUksgJiYgaW5kZXggPT09IHN0YXJ0KSB7CiAgICAgICAgICAgICAgbmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKGNvZGUgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQVNURVJJU0syKSB7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9BU1RFUklTSzIpIGlzR2xvYnN0YXIgPSB0b2tlbi5pc0dsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUkspIHsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyKSB7CiAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKG5leHQgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7CiAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUMikgewogICAgICAgICAgICAgIGlzQnJhY2tldCA9IHRva2VuLmlzQnJhY2tldCA9IHRydWU7CiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLICYmIGluZGV4ID09PSBzdGFydCkgewogICAgICAgICAgbmVnYXRlZCA9IHRva2VuLm5lZ2F0ZWQgPSB0cnVlOwogICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub3BhcmVuICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkgewogICAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHsKICAgICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlOwogICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChpc0dsb2IgPT09IHRydWUpIHsKICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMubm9leHQgPT09IHRydWUpIHsKICAgICAgICBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgICBpc0dsb2IgPSBmYWxzZTsKICAgICAgfQogICAgICBsZXQgYmFzZSA9IHN0cjI7CiAgICAgIGxldCBwcmVmaXggPSAiIjsKICAgICAgbGV0IGdsb2IgPSAiIjsKICAgICAgaWYgKHN0YXJ0ID4gMCkgewogICAgICAgIHByZWZpeCA9IHN0cjIuc2xpY2UoMCwgc3RhcnQpOwogICAgICAgIHN0cjIgPSBzdHIyLnNsaWNlKHN0YXJ0KTsKICAgICAgICBsYXN0SW5kZXggLT0gc3RhcnQ7CiAgICAgIH0KICAgICAgaWYgKGJhc2UgJiYgaXNHbG9iID09PSB0cnVlICYmIGxhc3RJbmRleCA+IDApIHsKICAgICAgICBiYXNlID0gc3RyMi5zbGljZSgwLCBsYXN0SW5kZXgpOwogICAgICAgIGdsb2IgPSBzdHIyLnNsaWNlKGxhc3RJbmRleCk7CiAgICAgIH0gZWxzZSBpZiAoaXNHbG9iID09PSB0cnVlKSB7CiAgICAgICAgYmFzZSA9ICIiOwogICAgICAgIGdsb2IgPSBzdHIyOwogICAgICB9IGVsc2UgewogICAgICAgIGJhc2UgPSBzdHIyOwogICAgICB9CiAgICAgIGlmIChiYXNlICYmIGJhc2UgIT09ICIiICYmIGJhc2UgIT09ICIvIiAmJiBiYXNlICE9PSBzdHIyKSB7CiAgICAgICAgaWYgKGlzUGF0aFNlcGFyYXRvcihiYXNlLmNoYXJDb2RlQXQoYmFzZS5sZW5ndGggLSAxKSkpIHsKICAgICAgICAgIGJhc2UgPSBiYXNlLnNsaWNlKDAsIC0xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHsKICAgICAgICBpZiAoZ2xvYikgZ2xvYiA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGdsb2IpOwogICAgICAgIGlmIChiYXNlICYmIGJhY2tzbGFzaGVzID09PSB0cnVlKSB7CiAgICAgICAgICBiYXNlID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoYmFzZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIHByZWZpeCwKICAgICAgICBpbnB1dCwKICAgICAgICBzdGFydCwKICAgICAgICBiYXNlLAogICAgICAgIGdsb2IsCiAgICAgICAgaXNCcmFjZSwKICAgICAgICBpc0JyYWNrZXQsCiAgICAgICAgaXNHbG9iLAogICAgICAgIGlzRXh0Z2xvYiwKICAgICAgICBpc0dsb2JzdGFyLAogICAgICAgIG5lZ2F0ZWQsCiAgICAgICAgbmVnYXRlZEV4dGdsb2IKICAgICAgfTsKICAgICAgaWYgKG9wdHMudG9rZW5zID09PSB0cnVlKSB7CiAgICAgICAgc3RhdGUubWF4RGVwdGggPSAwOwogICAgICAgIGlmICghaXNQYXRoU2VwYXJhdG9yKGNvZGUpKSB7CiAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgfQogICAgICAgIHN0YXRlLnRva2VucyA9IHRva2VuczsKICAgICAgfQogICAgICBpZiAob3B0cy5wYXJ0cyA9PT0gdHJ1ZSB8fCBvcHRzLnRva2VucyA9PT0gdHJ1ZSkgewogICAgICAgIGxldCBwcmV2SW5kZXg7CiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7CiAgICAgICAgICBjb25zdCBuID0gcHJldkluZGV4ID8gcHJldkluZGV4ICsgMSA6IHN0YXJ0OwogICAgICAgICAgY29uc3QgaSA9IHNsYXNoZXNbaWR4XTsKICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7CiAgICAgICAgICBpZiAob3B0cy50b2tlbnMpIHsKICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCAmJiBzdGFydCAhPT0gMCkgewogICAgICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHByZWZpeDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlcHRoKHRva2Vuc1tpZHhdKTsKICAgICAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaWR4ICE9PSAwIHx8IHZhbHVlICE9PSAiIikgewogICAgICAgICAgICBwYXJ0cy5wdXNoKHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHByZXZJbmRleCA9IGk7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2SW5kZXggJiYgcHJldkluZGV4ICsgMSA8IGlucHV0Lmxlbmd0aCkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC5zbGljZShwcmV2SW5kZXggKyAxKTsKICAgICAgICAgIHBhcnRzLnB1c2godmFsdWUpOwogICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7CiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0udmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgZGVwdGgodG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgIHN0YXRlLm1heERlcHRoICs9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzOwogICAgICAgIHN0YXRlLnBhcnRzID0gcGFydHM7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0YXRlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNjYW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGFyc2UuanMKdmFyIHJlcXVpcmVfcGFyc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9wYXJzZS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBjb25zdGFudHMgPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIE1BWF9MRU5HVEgsCiAgICAgIFBPU0lYX1JFR0VYX1NPVVJDRSwKICAgICAgUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMsCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRiwKICAgICAgUkVQTEFDRU1FTlRTCiAgICB9ID0gY29uc3RhbnRzOwogICAgdmFyIGV4cGFuZFJhbmdlID0gKGFyZ3MsIG9wdGlvbnMpID0+IHsKICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGFuZFJhbmdlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZXhwYW5kUmFuZ2UoLi4uYXJncywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXJncy5zb3J0KCk7CiAgICAgIGNvbnN0IHZhbHVlID0gYFske2FyZ3Muam9pbigiLSIpfV1gOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAodmFsdWUpOwogICAgICB9IGNhdGNoIChleCkgewogICAgICAgIHJldHVybiBhcmdzLm1hcCgodikgPT4gdXRpbHMuZXNjYXBlUmVnZXgodikpLmpvaW4oIi4uIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbHVlOwogICAgfTsKICAgIHZhciBzeW50YXhFcnJvciA9ICh0eXBlMiwgY2hhcikgPT4gewogICAgICByZXR1cm4gYE1pc3NpbmcgJHt0eXBlMn06ICIke2NoYXJ9IiAtIHVzZSAiXFxcXCR7Y2hhcn0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7CiAgICB9OwogICAgdmFyIHBhcnNlID0gKGlucHV0LCBvcHRpb25zKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IG9wdHMgPSB7IC4uLm9wdGlvbnMgfTsKICAgICAgY29uc3QgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSAibnVtYmVyIiA/IE1hdGgubWluKE1BWF9MRU5HVEgsIG9wdHMubWF4TGVuZ3RoKSA6IE1BWF9MRU5HVEg7CiAgICAgIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGlmIChsZW4gPiBtYXgpIHsKICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApOwogICAgICB9CiAgICAgIGNvbnN0IGJvcyA9IHsgdHlwZTogImJvcyIsIHZhbHVlOiAiIiwgb3V0cHV0OiBvcHRzLnByZXBlbmQgfHwgIiIgfTsKICAgICAgY29uc3QgdG9rZW5zID0gW2Jvc107CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IFBMQVRGT1JNX0NIQVJTID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBFWFRHTE9CX0NIQVJTID0gY29uc3RhbnRzLmV4dGdsb2JDaGFycyhQTEFURk9STV9DSEFSUyk7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBQTFVTX0xJVEVSQUwsCiAgICAgICAgU0xBU0hfTElURVJBTCwKICAgICAgICBPTkVfQ0hBUiwKICAgICAgICBET1RTX1NMQVNILAogICAgICAgIE5PX0RPVCwKICAgICAgICBOT19ET1RfU0xBU0gsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBRTUFSSywKICAgICAgICBRTUFSS19OT19ET1QsCiAgICAgICAgU1RBUiwKICAgICAgICBTVEFSVF9BTkNIT1IKICAgICAgfSA9IFBMQVRGT1JNX0NIQVJTOwogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgOwogICAgICB9OwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gIiIgOiBOT19ET1Q7CiAgICAgIGNvbnN0IHFtYXJrTm9Eb3QgPSBvcHRzLmRvdCA/IFFNQVJLIDogUU1BUktfTk9fRE9UOwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/IGdsb2JzdGFyKG9wdHMpIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBpZiAodHlwZW9mIG9wdHMubm9leHQgPT09ICJib29sZWFuIikgewogICAgICAgIG9wdHMubm9leHRnbG9iID0gb3B0cy5ub2V4dDsKICAgICAgfQogICAgICBjb25zdCBzdGF0ZSA9IHsKICAgICAgICBpbnB1dCwKICAgICAgICBpbmRleDogLTEsCiAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgZG90OiBvcHRzLmRvdCA9PT0gdHJ1ZSwKICAgICAgICBjb25zdW1lZDogIiIsCiAgICAgICAgb3V0cHV0OiAiIiwKICAgICAgICBwcmVmaXg6ICIiLAogICAgICAgIGJhY2t0cmFjazogZmFsc2UsCiAgICAgICAgbmVnYXRlZDogZmFsc2UsCiAgICAgICAgYnJhY2tldHM6IDAsCiAgICAgICAgYnJhY2VzOiAwLAogICAgICAgIHBhcmVuczogMCwKICAgICAgICBxdW90ZXM6IDAsCiAgICAgICAgZ2xvYnN0YXI6IGZhbHNlLAogICAgICAgIHRva2VucwogICAgICB9OwogICAgICBpbnB1dCA9IHV0aWxzLnJlbW92ZVByZWZpeChpbnB1dCwgc3RhdGUpOwogICAgICBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGNvbnN0IGV4dGdsb2JzID0gW107CiAgICAgIGNvbnN0IGJyYWNlcyA9IFtdOwogICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICBsZXQgcHJldiA9IGJvczsKICAgICAgbGV0IHZhbHVlOwogICAgICBjb25zdCBlb3MgPSAoKSA9PiBzdGF0ZS5pbmRleCA9PT0gbGVuIC0gMTsKICAgICAgY29uc3QgcGVlayA9IHN0YXRlLnBlZWsgPSAobiA9IDEpID0+IGlucHV0W3N0YXRlLmluZGV4ICsgbl07CiAgICAgIGNvbnN0IGFkdmFuY2UgPSBzdGF0ZS5hZHZhbmNlID0gKCkgPT4gaW5wdXRbKytzdGF0ZS5pbmRleF0gfHwgIiI7CiAgICAgIGNvbnN0IHJlbWFpbmluZyA9ICgpID0+IGlucHV0LnNsaWNlKHN0YXRlLmluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGNvbnN1bWUgPSAodmFsdWUyID0gIiIsIG51bSA9IDApID0+IHsKICAgICAgICBzdGF0ZS5jb25zdW1lZCArPSB2YWx1ZTI7CiAgICAgICAgc3RhdGUuaW5kZXggKz0gbnVtOwogICAgICB9OwogICAgICBjb25zdCBhcHBlbmQgPSAodG9rZW4pID0+IHsKICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4ub3V0cHV0ICE9IG51bGwgPyB0b2tlbi5vdXRwdXQgOiB0b2tlbi52YWx1ZTsKICAgICAgICBjb25zdW1lKHRva2VuLnZhbHVlKTsKICAgICAgfTsKICAgICAgY29uc3QgbmVnYXRlID0gKCkgPT4gewogICAgICAgIGxldCBjb3VudCA9IDE7CiAgICAgICAgd2hpbGUgKHBlZWsoKSA9PT0gIiEiICYmIChwZWVrKDIpICE9PSAiKCIgfHwgcGVlaygzKSA9PT0gIj8iKSkgewogICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIGlmIChjb3VudCAlIDIgPT09IDApIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUubmVnYXRlZCA9IHRydWU7CiAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfTsKICAgICAgY29uc3QgaW5jcmVtZW50ID0gKHR5cGUyKSA9PiB7CiAgICAgICAgc3RhdGVbdHlwZTJdKys7CiAgICAgICAgc3RhY2sucHVzaCh0eXBlMik7CiAgICAgIH07CiAgICAgIGNvbnN0IGRlY3JlbWVudCA9ICh0eXBlMikgPT4gewogICAgICAgIHN0YXRlW3R5cGUyXS0tOwogICAgICAgIHN0YWNrLnBvcCgpOwogICAgICB9OwogICAgICBjb25zdCBwdXNoID0gKHRvaykgPT4gewogICAgICAgIGlmIChwcmV2LnR5cGUgPT09ICJnbG9ic3RhciIpIHsKICAgICAgICAgIGNvbnN0IGlzQnJhY2UgPSBzdGF0ZS5icmFjZXMgPiAwICYmICh0b2sudHlwZSA9PT0gImNvbW1hIiB8fCB0b2sudHlwZSA9PT0gImJyYWNlIik7CiAgICAgICAgICBjb25zdCBpc0V4dGdsb2IgPSB0b2suZXh0Z2xvYiA9PT0gdHJ1ZSB8fCBleHRnbG9icy5sZW5ndGggJiYgKHRvay50eXBlID09PSAicGlwZSIgfHwgdG9rLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKHRvay50eXBlICE9PSAic2xhc2giICYmIHRvay50eXBlICE9PSAicGFyZW4iICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICAgIHByZXYudmFsdWUgPSAiKiI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZXh0Z2xvYnMubGVuZ3RoICYmIHRvay50eXBlICE9PSAicGFyZW4iKSB7CiAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7CiAgICAgICAgfQogICAgICAgIGlmICh0b2sudmFsdWUgfHwgdG9rLm91dHB1dCkgYXBwZW5kKHRvayk7CiAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAidGV4dCIgJiYgdG9rLnR5cGUgPT09ICJ0ZXh0IikgewogICAgICAgICAgcHJldi5vdXRwdXQgPSAocHJldi5vdXRwdXQgfHwgcHJldi52YWx1ZSkgKyB0b2sudmFsdWU7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHRvay52YWx1ZTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdG9rLnByZXYgPSBwcmV2OwogICAgICAgIHRva2Vucy5wdXNoKHRvayk7CiAgICAgICAgcHJldiA9IHRvazsKICAgICAgfTsKICAgICAgY29uc3QgZXh0Z2xvYk9wZW4gPSAodHlwZTIsIHZhbHVlMikgPT4gewogICAgICAgIGNvbnN0IHRva2VuID0geyAuLi5FWFRHTE9CX0NIQVJTW3ZhbHVlMl0sIGNvbmRpdGlvbnM6IDEsIGlubmVyOiAiIiB9OwogICAgICAgIHRva2VuLnByZXYgPSBwcmV2OwogICAgICAgIHRva2VuLnBhcmVucyA9IHN0YXRlLnBhcmVuczsKICAgICAgICB0b2tlbi5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQ7CiAgICAgICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/ICIoIiA6ICIiKSArIHRva2VuLm9wZW47CiAgICAgICAgaW5jcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICBwdXNoKHsgdHlwZTogdHlwZTIsIHZhbHVlOiB2YWx1ZTIsIG91dHB1dDogc3RhdGUub3V0cHV0ID8gIiIgOiBPTkVfQ0hBUiB9KTsKICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWU6IGFkdmFuY2UoKSwgb3V0cHV0IH0pOwogICAgICAgIGV4dGdsb2JzLnB1c2godG9rZW4pOwogICAgICB9OwogICAgICBjb25zdCBleHRnbG9iQ2xvc2UgPSAodG9rZW4pID0+IHsKICAgICAgICBsZXQgb3V0cHV0ID0gdG9rZW4uY2xvc2UgKyAob3B0cy5jYXB0dXJlID8gIikiIDogIiIpOwogICAgICAgIGxldCByZXN0OwogICAgICAgIGlmICh0b2tlbi50eXBlID09PSAibmVnYXRlIikgewogICAgICAgICAgbGV0IGV4dGdsb2JTdGFyID0gc3RhcjsKICAgICAgICAgIGlmICh0b2tlbi5pbm5lciAmJiB0b2tlbi5pbm5lci5sZW5ndGggPiAxICYmIHRva2VuLmlubmVyLmluY2x1ZGVzKCIvIikpIHsKICAgICAgICAgICAgZXh0Z2xvYlN0YXIgPSBnbG9ic3RhcihvcHRzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChleHRnbG9iU3RhciAhPT0gc3RhciB8fCBlb3MoKSB8fCAvXlwpKyQvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9rZW4uaW5uZXIuaW5jbHVkZXMoIioiKSAmJiAocmVzdCA9IHJlbWFpbmluZygpKSAmJiAvXlwuW15cXC8uXSskLy50ZXN0KHJlc3QpKSB7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwYXJzZShyZXN0LCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSkub3V0cHV0OwogICAgICAgICAgICBvdXRwdXQgPSB0b2tlbi5jbG9zZSA9IGApJHtleHByZXNzaW9ufSkke2V4dGdsb2JTdGFyfSlgOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRva2VuLnByZXYudHlwZSA9PT0gImJvcyIpIHsKICAgICAgICAgICAgc3RhdGUubmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9OwogICAgICBpZiAob3B0cy5mYXN0cGF0aHMgIT09IGZhbHNlICYmICEvKF5bKiFdfFsvKClbXF17fSJdKS8udGVzdChpbnB1dCkpIHsKICAgICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHsKICAgICAgICAgIGlmIChmaXJzdCA9PT0gIlxcIikgewogICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBtOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGZpcnN0ID09PSAiPyIpIHsKICAgICAgICAgICAgaWYgKGVzYykgewogICAgICAgICAgICAgIHJldHVybiBlc2MgKyBmaXJzdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICByZXR1cm4gcW1hcmtOb0RvdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUU1BUksucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIuIikgewogICAgICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIqIikgewogICAgICAgICAgICBpZiAoZXNjKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVzYyArIGZpcnN0ICsgKHJlc3QgPyBzdGFyIDogIiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdGFyOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGVzYyA/IG0gOiBgXFwke219YDsKICAgICAgICB9KTsKICAgICAgICBpZiAoYmFja3NsYXNoZXMgPT09IHRydWUpIHsKICAgICAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXC9nLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFwrL2csIChtKSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIG0ubGVuZ3RoICUgMiA9PT0gMCA/ICJcXFxcIiA6IG0gPyAiXFwiIDogIiI7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAob3V0cHV0ID09PSBpbnB1dCAmJiBvcHRzLmNvbnRhaW5zID09PSB0cnVlKSB7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBpbnB1dDsKICAgICAgICAgIHJldHVybiBzdGF0ZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUub3V0cHV0ID0gdXRpbHMud3JhcE91dHB1dChvdXRwdXQsIHN0YXRlLCBvcHRpb25zKTsKICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgIH0KICAgICAgd2hpbGUgKCFlb3MoKSkgewogICAgICAgIHZhbHVlID0gYWR2YW5jZSgpOwogICAgICAgIGlmICh2YWx1ZSA9PT0gIlwwIikgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gIlxcIikgewogICAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTsKICAgICAgICAgIGlmIChuZXh0ID09PSAiLyIgJiYgb3B0cy5iYXNoICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG5leHQgPT09ICIuIiB8fCBuZXh0ID09PSAiOyIpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5leHQpIHsKICAgICAgICAgICAgdmFsdWUgKz0gIlxcIjsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSAvXlxcKy8uZXhlYyhyZW1haW5pbmcoKSk7CiAgICAgICAgICBsZXQgc2xhc2hlcyA9IDA7CiAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0ubGVuZ3RoID4gMikgewogICAgICAgICAgICBzbGFzaGVzID0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgICBzdGF0ZS5pbmRleCArPSBzbGFzaGVzOwogICAgICAgICAgICBpZiAoc2xhc2hlcyAlIDIgIT09IDApIHsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXFwiOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YWx1ZSA9IGFkdmFuY2UoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbHVlICs9IGFkdmFuY2UoKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInRleHQiLCB2YWx1ZSB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA+IDAgJiYgKHZhbHVlICE9PSAiXSIgfHwgcHJldi52YWx1ZSA9PT0gIlsiIHx8IHByZXYudmFsdWUgPT09ICJbXiIpKSB7CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCAhPT0gZmFsc2UgJiYgdmFsdWUgPT09ICI6IikgewogICAgICAgICAgICBjb25zdCBpbm5lciA9IHByZXYudmFsdWUuc2xpY2UoMSk7CiAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcygiWyIpKSB7CiAgICAgICAgICAgICAgcHJldi5wb3NpeCA9IHRydWU7CiAgICAgICAgICAgICAgaWYgKGlubmVyLmluY2x1ZGVzKCI6IikpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHByZXYudmFsdWUubGFzdEluZGV4T2YoIlsiKTsKICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IHByZXYudmFsdWUuc2xpY2UoMCwgaWR4KTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3QyID0gcHJldi52YWx1ZS5zbGljZShpZHggKyAyKTsKICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3QyXTsKICAgICAgICAgICAgICAgIGlmIChwb3NpeCkgewogICAgICAgICAgICAgICAgICBwcmV2LnZhbHVlID0gcHJlICsgcG9zaXg7CiAgICAgICAgICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgaWYgKCFib3Mub3V0cHV0ICYmIHRva2Vucy5pbmRleE9mKHByZXYpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgYm9zLm91dHB1dCA9IE9ORV9DSEFSOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSAiWyIgJiYgcGVlaygpICE9PSAiOiIgfHwgdmFsdWUgPT09ICItIiAmJiBwZWVrKCkgPT09ICJdIikgewogICAgICAgICAgICB2YWx1ZSA9IGBcXCR7dmFsdWV9YDsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh2YWx1ZSA9PT0gIl0iICYmIChwcmV2LnZhbHVlID09PSAiWyIgfHwgcHJldi52YWx1ZSA9PT0gIlteIikpIHsKICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCA9PT0gdHJ1ZSAmJiB2YWx1ZSA9PT0gIiEiICYmIHByZXYudmFsdWUgPT09ICJbIikgewogICAgICAgICAgICB2YWx1ZSA9ICJeIjsKICAgICAgICAgIH0KICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICBhcHBlbmQoeyB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUucXVvdGVzID09PSAxICYmIHZhbHVlICE9PSAnIicpIHsKICAgICAgICAgIHZhbHVlID0gdXRpbHMuZXNjYXBlUmVnZXgodmFsdWUpOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gJyInKSB7CiAgICAgICAgICBzdGF0ZS5xdW90ZXMgPSBzdGF0ZS5xdW90ZXMgPT09IDEgPyAwIDogMTsKICAgICAgICAgIGlmIChvcHRzLmtlZXBRdW90ZXMgPT09IHRydWUpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKCIpIHsKICAgICAgICAgIGluY3JlbWVudCgicGFyZW5zIik7CiAgICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKSIpIHsKICAgICAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoIm9wZW5pbmciLCAiKCIpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGV4dGdsb2IgPSBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChleHRnbG9iICYmIHN0YXRlLnBhcmVucyA9PT0gZXh0Z2xvYi5wYXJlbnMgKyAxKSB7CiAgICAgICAgICAgIGV4dGdsb2JDbG9zZShleHRnbG9icy5wb3AoKSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJwYXJlbiIsIHZhbHVlLCBvdXRwdXQ6IHN0YXRlLnBhcmVucyA/ICIpIiA6ICJcXCkiIH0pOwogICAgICAgICAgZGVjcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJbIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8ICFyZW1haW5pbmcoKS5pbmNsdWRlcygiXSIpKSB7CiAgICAgICAgICAgIGlmIChvcHRzLm5vYnJhY2tldCAhPT0gdHJ1ZSAmJiBvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCJjbG9zaW5nIiwgIl0iKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbmNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImJyYWNrZXQiLCB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJdIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8IHByZXYgJiYgcHJldi50eXBlID09PSAiYnJhY2tldCIgJiYgcHJldi52YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogYFxcJHt2YWx1ZX1gIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigib3BlbmluZyIsICJbIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQ6IGBcXCR7dmFsdWV9YCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZWNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2LnZhbHVlLnNsaWNlKDEpOwogICAgICAgICAgaWYgKHByZXYucG9zaXggIT09IHRydWUgJiYgcHJldlZhbHVlWzBdID09PSAiXiIgJiYgIXByZXZWYWx1ZS5pbmNsdWRlcygiLyIpKSB7CiAgICAgICAgICAgIHZhbHVlID0gYC8ke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgYXBwZW5kKHsgdmFsdWUgfSk7CiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IGZhbHNlIHx8IHV0aWxzLmhhc1JlZ2V4Q2hhcnMocHJldlZhbHVlKSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTsKICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi52YWx1ZS5sZW5ndGgpOwogICAgICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkOwogICAgICAgICAgICBwcmV2LnZhbHVlID0gZXNjYXBlZDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlID0gYCgke2NhcHR1cmV9JHtlc2NhcGVkfXwke3ByZXYudmFsdWV9KWA7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi52YWx1ZTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ7IiAmJiBvcHRzLm5vYnJhY2UgIT09IHRydWUpIHsKICAgICAgICAgIGluY3JlbWVudCgiYnJhY2VzIik7CiAgICAgICAgICBjb25zdCBvcGVuID0gewogICAgICAgICAgICB0eXBlOiAiYnJhY2UiLAogICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgb3V0cHV0OiAiKCIsCiAgICAgICAgICAgIG91dHB1dEluZGV4OiBzdGF0ZS5vdXRwdXQubGVuZ3RoLAogICAgICAgICAgICB0b2tlbnNJbmRleDogc3RhdGUudG9rZW5zLmxlbmd0aAogICAgICAgICAgfTsKICAgICAgICAgIGJyYWNlcy5wdXNoKG9wZW4pOwogICAgICAgICAgcHVzaChvcGVuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ9IikgewogICAgICAgICAgY29uc3QgYnJhY2UgPSBicmFjZXNbYnJhY2VzLmxlbmd0aCAtIDFdOwogICAgICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgbGV0IG91dHB1dCA9ICIpIjsKICAgICAgICAgIGlmIChicmFjZS5kb3RzID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IGFyciA9IHRva2Vucy5zbGljZSgpOwogICAgICAgICAgICBjb25zdCByYW5nZSA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgdG9rZW5zLnBvcCgpOwogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSA9PT0gImJyYWNlIikgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSAhPT0gImRvdHMiKSB7CiAgICAgICAgICAgICAgICByYW5nZS51bnNoaWZ0KGFycltpXS52YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIG91dHB1dCA9IGV4cGFuZFJhbmdlKHJhbmdlLCBvcHRzKTsKICAgICAgICAgICAgc3RhdGUuYmFja3RyYWNrID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChicmFjZS5jb21tYSAhPT0gdHJ1ZSAmJiBicmFjZS5kb3RzICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IG91dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCBicmFjZS5vdXRwdXRJbmRleCk7CiAgICAgICAgICAgIGNvbnN0IHRva3MgPSBzdGF0ZS50b2tlbnMuc2xpY2UoYnJhY2UudG9rZW5zSW5kZXgpOwogICAgICAgICAgICBicmFjZS52YWx1ZSA9IGJyYWNlLm91dHB1dCA9ICJcXHsiOwogICAgICAgICAgICB2YWx1ZSA9IG91dHB1dCA9ICJcXH0iOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBvdXQ7CiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB0b2tzKSB7CiAgICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHQub3V0cHV0IHx8IHQudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAiYnJhY2UiLCB2YWx1ZSwgb3V0cHV0IH0pOwogICAgICAgICAgZGVjcmVtZW50KCJicmFjZXMiKTsKICAgICAgICAgIGJyYWNlcy5wb3AoKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ8IikgewogICAgICAgICAgaWYgKGV4dGdsb2JzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV0uY29uZGl0aW9ucysrOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiLCIpIHsKICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChicmFjZSAmJiBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA9PT0gImJyYWNlcyIpIHsKICAgICAgICAgICAgYnJhY2UuY29tbWEgPSB0cnVlOwogICAgICAgICAgICBvdXRwdXQgPSAifCI7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImNvbW1hIiwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIvIikgewogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImRvdCIgJiYgc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGF0ZS5zdGFydCA9IHN0YXRlLmluZGV4ICsgMTsKICAgICAgICAgICAgc3RhdGUuY29uc3VtZWQgPSAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gIiI7CiAgICAgICAgICAgIHRva2Vucy5wb3AoKTsKICAgICAgICAgICAgcHJldiA9IGJvczsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInNsYXNoIiwgdmFsdWUsIG91dHB1dDogU0xBU0hfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIuIikgewogICAgICAgICAgaWYgKHN0YXRlLmJyYWNlcyA+IDAgJiYgcHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gIi4iKSBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMOwogICAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07CiAgICAgICAgICAgIHByZXYudHlwZSA9ICJkb3RzIjsKICAgICAgICAgICAgcHJldi5vdXRwdXQgKz0gdmFsdWU7CiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICAgIGJyYWNlLmRvdHMgPSB0cnVlOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFjZXMgKyBzdGF0ZS5wYXJlbnMgPT09IDAgJiYgcHJldi50eXBlICE9PSAiYm9zIiAmJiBwcmV2LnR5cGUgIT09ICJzbGFzaCIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogRE9UX0xJVEVSQUwgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJkb3QiLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICI/IikgewogICAgICAgICAgY29uc3QgaXNHcm91cCA9IHByZXYgJiYgcHJldi52YWx1ZSA9PT0gIigiOwogICAgICAgICAgaWYgKCFpc0dyb3VwICYmIG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicW1hcmsiLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAicGFyZW4iKSB7CiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBwZWVrKCk7CiAgICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgICAgaWYgKHByZXYudmFsdWUgPT09ICIoIiAmJiAhL1shPTw6XS8udGVzdChuZXh0KSB8fCBuZXh0ID09PSAiPCIgJiYgIS88KFshPV18XHcrPikvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgICAgb3V0cHV0ID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMuZG90ICE9PSB0cnVlICYmIChwcmV2LnR5cGUgPT09ICJzbGFzaCIgfHwgcHJldi50eXBlID09PSAiYm9zIikpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJxbWFyayIsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLX05PX0RPVCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInFtYXJrIiwgdmFsdWUsIG91dHB1dDogUU1BUksgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiISIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIikgewogICAgICAgICAgICBpZiAocGVlaygyKSAhPT0gIj8iIHx8ICEvWyE9PDpdLy50ZXN0KHBlZWsoMykpKSB7CiAgICAgICAgICAgICAgZXh0Z2xvYk9wZW4oIm5lZ2F0ZSIsIHZhbHVlKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgc3RhdGUuaW5kZXggPT09IDApIHsKICAgICAgICAgICAgbmVnYXRlKCk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIrIikgewogICAgICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicGx1cyIsIHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LnZhbHVlID09PSAiKCIgfHwgb3B0cy5yZWdleCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJwbHVzIiwgdmFsdWUsIG91dHB1dDogUExVU19MSVRFUkFMIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2LnR5cGUgPT09ICJicmFja2V0IiB8fCBwcmV2LnR5cGUgPT09ICJwYXJlbiIgfHwgcHJldi50eXBlID09PSAiYnJhY2UiKSB8fCBzdGF0ZS5wYXJlbnMgPiAwKSB7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiQCIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIiAmJiBwZWVrKDIpICE9PSAiPyIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJhdCIsIGV4dGdsb2I6IHRydWUsIHZhbHVlLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSAhPT0gIioiKSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09ICIkIiB8fCB2YWx1ZSA9PT0gIl4iKSB7CiAgICAgICAgICAgIHZhbHVlID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUy5leGVjKHJlbWFpbmluZygpKTsKICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICB2YWx1ZSArPSBtYXRjaFswXTsKICAgICAgICAgICAgc3RhdGUuaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImdsb2JzdGFyIiB8fCBwcmV2LnN0YXIgPT09IHRydWUpKSB7CiAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICBwcmV2LnN0YXIgPSB0cnVlOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7CiAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBsZXQgcmVzdCA9IHJlbWFpbmluZygpOwogICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiAvXlwoW14/XS8udGVzdChyZXN0KSkgewogICAgICAgICAgZXh0Z2xvYk9wZW4oInN0YXIiLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gInN0YXIiKSB7CiAgICAgICAgICBpZiAob3B0cy5ub2dsb2JzdGFyID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHByaW9yID0gcHJldi5wcmV2OwogICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJpb3IucHJldjsKICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBwcmlvci50eXBlID09PSAic2xhc2giIHx8IHByaW9yLnR5cGUgPT09ICJib3MiOwogICAgICAgICAgY29uc3QgYWZ0ZXJTdGFyID0gYmVmb3JlICYmIChiZWZvcmUudHlwZSA9PT0gInN0YXIiIHx8IGJlZm9yZS50eXBlID09PSAiZ2xvYnN0YXIiKTsKICAgICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUgJiYgKCFpc1N0YXJ0IHx8IHJlc3RbMF0gJiYgcmVzdFswXSAhPT0gIi8iKSkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAocHJpb3IudHlwZSA9PT0gImNvbW1hIiB8fCBwcmlvci50eXBlID09PSAiYnJhY2UiKTsKICAgICAgICAgIGNvbnN0IGlzRXh0Z2xvYiA9IGV4dGdsb2JzLmxlbmd0aCAmJiAocHJpb3IudHlwZSA9PT0gInBpcGUiIHx8IHByaW9yLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKCFpc1N0YXJ0ICYmIHByaW9yLnR5cGUgIT09ICJwYXJlbiIgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICB3aGlsZSAocmVzdC5zbGljZSgwLCAzKSA9PT0gIi8qKiIpIHsKICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBpbnB1dFtzdGF0ZS5pbmRleCArIDRdOwogICAgICAgICAgICBpZiAoYWZ0ZXIgJiYgYWZ0ZXIgIT09ICIvIikgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3QgPSByZXN0LnNsaWNlKDMpOwogICAgICAgICAgICBjb25zdW1lKCIvKioiLCAzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiBlb3MoKSkgewogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJpb3IudHlwZSA9PT0gInNsYXNoIiAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICJib3MiICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpICsgKG9wdHMuc3RyaWN0U2xhc2hlcyA/ICIpIiA6ICJ8JCkiKTsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAic2xhc2giICYmIHByaW9yLnByZXYudHlwZSAhPT0gImJvcyIgJiYgcmVzdFswXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHJlc3RbMV0gIT09IHZvaWQgMCA/ICJ8JCIgOiAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGAke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH18JHtTTEFTSF9MSVRFUkFMfSR7ZW5kfSlgOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAic2xhc2giLCB2YWx1ZTogIi8iLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiByZXN0WzBdID09PSAiLyIpIHsKICAgICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9fCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSlgOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJzbGFzaCIsIHZhbHVlOiAiLyIsIG91dHB1dDogIiIgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgY29uc3VtZSh2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdG9rZW4gPSB7IHR5cGU6ICJzdGFyIiwgdmFsdWUsIG91dHB1dDogc3RhciB9OwogICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHsKICAgICAgICAgIHRva2VuLm91dHB1dCA9ICIuKj8iOwogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImJvcyIgfHwgcHJldi50eXBlID09PSAic2xhc2giKSB7CiAgICAgICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0OwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh0b2tlbik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImJyYWNrZXQiIHx8IHByZXYudHlwZSA9PT0gInBhcmVuIikgJiYgb3B0cy5yZWdleCA9PT0gdHJ1ZSkgewogICAgICAgICAgdG9rZW4ub3V0cHV0ID0gdmFsdWU7CiAgICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0IHx8IHByZXYudHlwZSA9PT0gInNsYXNoIiB8fCBwcmV2LnR5cGUgPT09ICJkb3QiKSB7CiAgICAgICAgICBpZiAocHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gTk9fRE9UX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RfU0xBU0g7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IG5vZG90OwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBub2RvdDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWVrKCkgIT09ICIqIikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gT05FX0NIQVI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE9ORV9DSEFSOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUuYnJhY2tldHMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJdIikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAiWyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2tldHMiKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUucGFyZW5zID4gMCkgewogICAgICAgIGlmIChvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoImNsb3NpbmciLCAiKSIpKTsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy5lc2NhcGVMYXN0KHN0YXRlLm91dHB1dCwgIigiKTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9CiAgICAgIHdoaWxlIChzdGF0ZS5icmFjZXMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJ9IikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAieyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2VzIik7CiAgICAgIH0KICAgICAgaWYgKG9wdHMuc3RyaWN0U2xhc2hlcyAhPT0gdHJ1ZSAmJiAocHJldi50eXBlID09PSAic3RhciIgfHwgcHJldi50eXBlID09PSAiYnJhY2tldCIpKSB7CiAgICAgICAgcHVzaCh7IHR5cGU6ICJtYXliZV9zbGFzaCIsIHZhbHVlOiAiIiwgb3V0cHV0OiBgJHtTTEFTSF9MSVRFUkFMfT9gIH0pOwogICAgICB9CiAgICAgIGlmIChzdGF0ZS5iYWNrdHJhY2sgPT09IHRydWUpIHsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSAiIjsKICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHN0YXRlLnRva2VucykgewogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7CiAgICAgICAgICBpZiAodG9rZW4uc3VmZml4KSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5zdWZmaXg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBzdGF0ZTsKICAgIH07CiAgICBwYXJzZS5mYXN0cGF0aHMgPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4ub3B0aW9ucyB9OwogICAgICBjb25zdCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09ICJudW1iZXIiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDsKICAgICAgY29uc3QgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICBpZiAobGVuID4gbWF4KSB7CiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBJbnB1dCBsZW5ndGg6ICR7bGVufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke21heH1gKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBTTEFTSF9MSVRFUkFMLAogICAgICAgIE9ORV9DSEFSLAogICAgICAgIERPVFNfU0xBU0gsCiAgICAgICAgTk9fRE9ULAogICAgICAgIE5PX0RPVFMsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBTVEFSLAogICAgICAgIFNUQVJUX0FOQ0hPUgogICAgICB9ID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gTk9fRE9UUyA6IE5PX0RPVDsKICAgICAgY29uc3Qgc2xhc2hEb3QgPSBvcHRzLmRvdCA/IE5PX0RPVFNfU0xBU0ggOiBOT19ET1Q7CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IHN0YXRlID0geyBuZWdhdGVkOiBmYWxzZSwgcHJlZml4OiAiIiB9OwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/ICIuKj8iIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIGlmIChvcHRzMi5ub2dsb2JzdGFyID09PSB0cnVlKSByZXR1cm4gc3RhcjsKICAgICAgICByZXR1cm4gYCgke2NhcHR1cmV9KD86KD8hJHtTVEFSVF9BTkNIT1J9JHtvcHRzMi5kb3QgPyBET1RTX1NMQVNIIDogRE9UX0xJVEVSQUx9KS4pKj8pYDsKICAgICAgfTsKICAgICAgY29uc3QgY3JlYXRlID0gKHN0cjIpID0+IHsKICAgICAgICBzd2l0Y2ggKHN0cjIpIHsKICAgICAgICAgIGNhc2UgIioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBjYXNlICIqLioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIiovKiI6CiAgICAgICAgICAgIHJldHVybiBgJHtub2RvdH0ke3N0YXJ9JHtTTEFTSF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzbGFzaERvdH0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIioqIjoKICAgICAgICAgICAgcmV0dXJuIG5vZG90ICsgZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBjYXNlICIqKi8qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovKi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke3N0YXJ9JHtET1RfTElURVJBTH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovLioiOgogICAgICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gL14oLio/KVwuKFx3KykkLy5leGVjKHN0cjIpOwogICAgICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZTIgPSBjcmVhdGUobWF0Y2hbMV0pOwogICAgICAgICAgICBpZiAoIXNvdXJjZTIpIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTIgKyBET1RfTElURVJBTCArIG1hdGNoWzJdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgY29uc3Qgb3V0cHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7CiAgICAgIGxldCBzb3VyY2UgPSBjcmVhdGUob3V0cHV0KTsKICAgICAgaWYgKHNvdXJjZSAmJiBvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUpIHsKICAgICAgICBzb3VyY2UgKz0gYCR7U0xBU0hfTElURVJBTH0/YDsKICAgICAgfQogICAgICByZXR1cm4gc291cmNlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHBhcnNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BpY29tYXRjaC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9waWNvbWF0Y2guanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2NhbiA9IHJlcXVpcmVfc2NhbjIoKTsKICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2UoKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICB2YXIgY29uc3RhbnRzID0gcmVxdWlyZV9jb25zdGFudHMoKTsKICAgIHZhciBpc09iamVjdDIgPSAodmFsKSA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIHZhciBwaWNvbWF0Y2ggPSAoZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShnbG9iKSkgewogICAgICAgIGNvbnN0IGZucyA9IGdsb2IubWFwKChpbnB1dCkgPT4gcGljb21hdGNoKGlucHV0LCBvcHRpb25zLCByZXR1cm5TdGF0ZSkpOwogICAgICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IChzdHIyKSA9PiB7CiAgICAgICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRlMiA9IGlzTWF0Y2goc3RyMik7CiAgICAgICAgICAgIGlmIChzdGF0ZTIpIHJldHVybiBzdGF0ZTI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gYXJyYXlNYXRjaGVyOwogICAgICB9CiAgICAgIGNvbnN0IGlzU3RhdGUgPSBpc09iamVjdDIoZ2xvYikgJiYgZ2xvYi50b2tlbnMgJiYgZ2xvYi5pbnB1dDsKICAgICAgaWYgKGdsb2IgPT09ICIiIHx8IHR5cGVvZiBnbG9iICE9PSAic3RyaW5nIiAmJiAhaXNTdGF0ZSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHBvc2l4ID0gb3B0cy53aW5kb3dzOwogICAgICBjb25zdCByZWdleCA9IGlzU3RhdGUgPyBwaWNvbWF0Y2guY29tcGlsZVJlKGdsb2IsIG9wdGlvbnMpIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zLCBmYWxzZSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7CiAgICAgIGRlbGV0ZSByZWdleC5zdGF0ZTsKICAgICAgbGV0IGlzSWdub3JlZCA9ICgpID0+IGZhbHNlOwogICAgICBpZiAob3B0cy5pZ25vcmUpIHsKICAgICAgICBjb25zdCBpZ25vcmVPcHRzID0geyAuLi5vcHRpb25zLCBpZ25vcmU6IG51bGwsIG9uTWF0Y2g6IG51bGwsIG9uUmVzdWx0OiBudWxsIH07CiAgICAgICAgaXNJZ25vcmVkID0gcGljb21hdGNoKG9wdHMuaWdub3JlLCBpZ25vcmVPcHRzLCByZXR1cm5TdGF0ZSk7CiAgICAgIH0KICAgICAgY29uc3QgbWF0Y2hlciA9IChpbnB1dCwgcmV0dXJuT2JqZWN0ID0gZmFsc2UpID0+IHsKICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIG1hdGNoLCBvdXRwdXQgfSA9IHBpY29tYXRjaC50ZXN0KGlucHV0LCByZWdleCwgb3B0aW9ucywgeyBnbG9iLCBwb3NpeCB9KTsKICAgICAgICBjb25zdCByZXN1bHQgPSB7IGdsb2IsIHN0YXRlLCByZWdleCwgcG9zaXgsIGlucHV0LCBvdXRwdXQsIG1hdGNoLCBpc01hdGNoIH07CiAgICAgICAgaWYgKHR5cGVvZiBvcHRzLm9uUmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBvcHRzLm9uUmVzdWx0KHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc01hdGNoID09PSBmYWxzZSkgewogICAgICAgICAgcmVzdWx0LmlzTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSWdub3JlZChpbnB1dCkpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygb3B0cy5vbklnbm9yZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvcHRzLm9uSWdub3JlKHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlOwogICAgICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiB0cnVlOwogICAgICB9OwogICAgICBpZiAocmV0dXJuU3RhdGUpIHsKICAgICAgICBtYXRjaGVyLnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hdGNoZXI7CiAgICB9OwogICAgcGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCB7IGdsb2IsIHBvc2l4IH0gPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nIik7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ID09PSAiIikgewogICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBvdXRwdXQ6ICIiIH07CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdHMuZm9ybWF0IHx8IChwb3NpeCA/IHV0aWxzLnRvUG9zaXhTbGFzaGVzIDogbnVsbCk7CiAgICAgIGxldCBtYXRjaCA9IGlucHV0ID09PSBnbG9iOwogICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggJiYgZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7CiAgICAgICAgb3V0cHV0ID0gZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICAgIG1hdGNoID0gb3V0cHV0ID09PSBnbG9iOwogICAgICB9CiAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UgfHwgb3B0cy5jYXB0dXJlID09PSB0cnVlKSB7CiAgICAgICAgaWYgKG9wdHMubWF0Y2hCYXNlID09PSB0cnVlIHx8IG9wdHMuYmFzZW5hbWUgPT09IHRydWUpIHsKICAgICAgICAgIG1hdGNoID0gcGljb21hdGNoLm1hdGNoQmFzZShpbnB1dCwgcmVnZXgsIG9wdGlvbnMsIHBvc2l4KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWF0Y2ggPSByZWdleC5leGVjKG91dHB1dCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGlzTWF0Y2g6IEJvb2xlYW4obWF0Y2gpLCBtYXRjaCwgb3V0cHV0IH07CiAgICB9OwogICAgcGljb21hdGNoLm1hdGNoQmFzZSA9IChpbnB1dCwgZ2xvYiwgb3B0aW9ucykgPT4gewogICAgICBjb25zdCByZWdleCA9IGdsb2IgaW5zdGFuY2VvZiBSZWdFeHAgPyBnbG9iIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zKTsKICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodXRpbHMuYmFzZW5hbWUoaW5wdXQpKTsKICAgIH07CiAgICBwaWNvbWF0Y2guaXNNYXRjaCA9IChzdHIyLCBwYXR0ZXJucywgb3B0aW9ucykgPT4gcGljb21hdGNoKHBhdHRlcm5zLCBvcHRpb25zKShzdHIyKTsKICAgIHBpY29tYXRjaC5wYXJzZSA9IChwYXR0ZXJuLCBvcHRpb25zKSA9PiB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSByZXR1cm4gcGF0dGVybi5tYXAoKHApID0+IHBpY29tYXRjaC5wYXJzZShwLCBvcHRpb25zKSk7CiAgICAgIHJldHVybiBwYXJzZShwYXR0ZXJuLCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSk7CiAgICB9OwogICAgcGljb21hdGNoLnNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHNjYW4oaW5wdXQsIG9wdGlvbnMpOwogICAgcGljb21hdGNoLmNvbXBpbGVSZSA9IChzdGF0ZSwgb3B0aW9ucywgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKHJldHVybk91dHB1dCA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBzdGF0ZS5vdXRwdXQ7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHByZXBlbmQgPSBvcHRzLmNvbnRhaW5zID8gIiIgOiAiXiI7CiAgICAgIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyAiIiA6ICIkIjsKICAgICAgbGV0IHNvdXJjZSA9IGAke3ByZXBlbmR9KD86JHtzdGF0ZS5vdXRwdXR9KSR7YXBwZW5kfWA7CiAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7CiAgICAgICAgc291cmNlID0gYF4oPyEke3NvdXJjZX0pLiokYDsKICAgICAgfQogICAgICBjb25zdCByZWdleCA9IHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgIGlmIChyZXR1cm5TdGF0ZSA9PT0gdHJ1ZSkgewogICAgICAgIHJlZ2V4LnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlZ2V4OwogICAgfTsKICAgIHBpY29tYXRjaC5tYWtlUmUgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSwgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgbGV0IHBhcnNlZCA9IHsgbmVnYXRlZDogZmFsc2UsIGZhc3RwYXRoczogdHJ1ZSB9OwogICAgICBpZiAob3B0aW9ucy5mYXN0cGF0aHMgIT09IGZhbHNlICYmIChpbnB1dFswXSA9PT0gIi4iIHx8IGlucHV0WzBdID09PSAiKiIpKSB7CiAgICAgICAgcGFyc2VkLm91dHB1dCA9IHBhcnNlLmZhc3RwYXRocyhpbnB1dCwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgaWYgKCFwYXJzZWQub3V0cHV0KSB7CiAgICAgICAgcGFyc2VkID0gcGFyc2UoaW5wdXQsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIHJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7CiAgICB9OwogICAgcGljb21hdGNoLnRvUmVnZXggPSAoc291cmNlLCBvcHRpb25zKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoc291cmNlLCBvcHRzLmZsYWdzIHx8IChvcHRzLm5vY2FzZSA/ICJpIiA6ICIiKSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVidWcgPT09IHRydWUpIHRocm93IGVycjsKICAgICAgICByZXR1cm4gLyReLzsKICAgICAgfQogICAgfTsKICAgIHBpY29tYXRjaC5jb25zdGFudHMgPSBjb25zdGFudHM7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwaWNvbWF0Y2g7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2gyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBwaWNvID0gcmVxdWlyZV9waWNvbWF0Y2goKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICBmdW5jdGlvbiBwaWNvbWF0Y2goZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgewogICAgICBpZiAob3B0aW9ucyAmJiAob3B0aW9ucy53aW5kb3dzID09PSBudWxsIHx8IG9wdGlvbnMud2luZG93cyA9PT0gdm9pZCAwKSkgewogICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIHdpbmRvd3M6IHV0aWxzLmlzV2luZG93cygpIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHBpY28oZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUpOwogICAgfQogICAgT2JqZWN0LmFzc2lnbihwaWNvbWF0Y2gsIHBpY28pOwogICAgbW9kdWxlMi5leHBvcnRzID0gcGljb21hdGNoOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBpY29tYXRjaF8xID0gcmVxdWlyZV9waWNvbWF0Y2gyKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBQYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9wYXR0ZXJucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIGFkZFBhdHRlcm4ocGF0dGVybiwgcmVwbGFjZW1lbnRGbikgewogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gQXJyYXkuaXNBcnJheShwYXR0ZXJuKSA/IHBhdHRlcm4gOiBbcGF0dGVybl07CiAgICAgICAgZm9yIChjb25zdCBnbG9iIG9mIHBhdHRlcm5zKSB7CiAgICAgICAgICBjb25zdCB7IG91dHB1dCB9ID0gKDAsIHBpY29tYXRjaF8xLnBhcnNlKShnbG9iKTsKICAgICAgICAgIHRoaXMuX3BhdHRlcm5zLnNldChuZXcgUmVnRXhwKGBeJHtvdXRwdXR9JGApLCByZXBsYWNlbWVudEZuKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3Jlc29sdmUocGF0aCkgewogICAgICAgIGxldCBuZXdQYXRoID0gcGF0aDsKICAgICAgICB0aGlzLl9wYXR0ZXJucy5mb3JFYWNoKChmbiwgcmUpID0+IHsKICAgICAgICAgIGlmIChyZS50ZXN0KHBhdGgpKSB7CiAgICAgICAgICAgIG5ld1BhdGggPSBmbihuZXdQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3UGF0aDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdHRlcm5NYXRjaGluZ0hvc3QgPSBQYXR0ZXJuTWF0Y2hpbmdIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3JlY29yZC5qcwp2YXIgcmVxdWlyZV9yZWNvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZWNvcmQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIG1lbW9yeV8xID0gcmVxdWlyZV9tZW1vcnkoKTsKICAgIHZhciBDb3JkSG9zdCA9IGNsYXNzIF9Db3JkSG9zdCBleHRlbmRzIG1lbW9yeV8xLlNpbXBsZU1lbW9yeUhvc3QgewogICAgICBfYmFjazsKICAgICAgX2ZpbGVzVG9DcmVhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2ZpbGVzVG9EZWxldGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb092ZXJ3cml0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9iYWNrID0gX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGJhY2tlbmQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgc3luY2hyb25vdXM6IHRoaXMuX2JhY2suY2FwYWJpbGl0aWVzLnN5bmNocm9ub3VzCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgY29weSBvZiB0aGlzIGhvc3QsIGluY2x1ZGluZyBhbGwgYWN0aW9ucyBtYWRlLgogICAgICAgKiBAcmV0dXJucyB7Q29yZEhvc3R9IFRoZSBjYXJib24gY29weS4KICAgICAgICovCiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IGRvbGx5ID0gbmV3IF9Db3JkSG9zdCh0aGlzLl9iYWNrKTsKICAgICAgICBkb2xseS5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICBkb2xseS5fZmlsZXNUb0NyZWF0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0NyZWF0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9SZW5hbWUgPSBuZXcgTWFwKHRoaXMuX2ZpbGVzVG9SZW5hbWUpOwogICAgICAgIGRvbGx5Ll9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gbmV3IE1hcCh0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0KTsKICAgICAgICBkb2xseS5fZmlsZXNUb0RlbGV0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0RlbGV0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9PdmVyd3JpdGUgPSBuZXcgU2V0KHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUpOwogICAgICAgIHJldHVybiBkb2xseTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tbWl0IHRoZSBjaGFuZ2VzIHJlY29yZGVkIHRvIGEgSG9zdC4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBob3N0IGRvZXMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUKICAgICAgICogYXMgdGhlIGhvc3QgdGhhdCB3YXMgdXNlZCBmb3IgYmFja2VuZCAoY291bGQgYmUgdGhlIHNhbWUgaG9zdCkuCiAgICAgICAqIEBwYXJhbSBob3N0IFRoZSBob3N0IHRvIGNyZWF0ZS9kZWxldGUvcmVuYW1lL292ZXJ3cml0ZSBmaWxlcyB0by4KICAgICAgICogQHBhcmFtIGZvcmNlIFdoZXRoZXIgdG8gc2tpcCBleGlzdGVuY2UgY2hlY2tzIHdoZW4gY3JlYXRpbmcvb3ZlcndyaXRpbmcuIFRoaXMgaXMKICAgICAgICogICBmYXN0ZXIgYnV0IG1pZ2h0IGxlYWQgdG8gaW5jb3JyZWN0IHN0YXRlcy4gQmVjYXVzZSBIb3N0cyBuYXRpdmVseSBkb24ndCBzdXBwb3J0IGNyZWF0aW9uCiAgICAgICAqICAgdmVyc3VzIG92ZXJ3cml0aW5nIChpdCdzIG9ubHkgd3JpdGluZyksIHdlIGNoZWNrIGZvciBleGlzdGVuY2UgYmVmb3JlIGNvbXBsZXRpbmcgYSByZXF1ZXN0LgogICAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gZG9uZSwgb3IgZXJyb3IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KICAgICAgICovCiAgICAgIGNvbW1pdChob3N0LCBmb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkodGhpcy5yZWNvcmRzKCkpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChyZWNvcmQpID0+IHsKICAgICAgICAgIHN3aXRjaCAocmVjb3JkLmtpbmQpIHsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5kZWxldGUocmVjb3JkLnBhdGgpOwogICAgICAgICAgICBjYXNlICJyZW5hbWUiOgogICAgICAgICAgICAgIHJldHVybiBob3N0LnJlbmFtZShyZWNvcmQuZnJvbSwgcmVjb3JkLnRvKTsKICAgICAgICAgICAgY2FzZSAiY3JlYXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJiYgIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHJlY29yZC5wYXRoKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXR1cm4gaG9zdC53cml0ZShyZWNvcmQucGF0aCwgcmVjb3JkLmNvbnRlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmICghZXhpc3RzICYmICFmb3JjZSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQucGF0aCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGUocmVjb3JkLnBhdGgsIHJlY29yZC5jb250ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEucmVkdWNlKSgoKSA9PiB7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHJlY29yZHMoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIC4uLlsuLi50aGlzLl9maWxlc1RvRGVsZXRlLnZhbHVlcygpXS5tYXAoKHBhdGgpID0+ICh7CiAgICAgICAgICAgIGtpbmQ6ICJkZWxldGUiLAogICAgICAgICAgICBwYXRoCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb1JlbmFtZS5lbnRyaWVzKCldLm1hcCgoW2Zyb20sIHRvXSkgPT4gKHsKICAgICAgICAgICAga2luZDogInJlbmFtZSIsCiAgICAgICAgICAgIGZyb20sCiAgICAgICAgICAgIHRvCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb0NyZWF0ZS52YWx1ZXMoKV0ubWFwKChwYXRoKSA9PiAoewogICAgICAgICAgICBraW5kOiAiY3JlYXRlIiwKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVhZChwYXRoKQogICAgICAgICAgfSkpLAogICAgICAgICAgLi4uWy4uLnRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUudmFsdWVzKCldLm1hcCgocGF0aCkgPT4gKHsKICAgICAgICAgICAga2luZDogIm92ZXJ3cml0ZSIsCiAgICAgICAgICAgIHBhdGgsCiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3JlYWQocGF0aCkKICAgICAgICAgIH0pKQogICAgICAgIF07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNwZWNpYWxpemVkIHZlcnNpb24gb2Yge0BsaW5rIENvcmRIb3N0I3dyaXRlfSB3aGljaCBmb3JjZXMgdGhlIGNyZWF0aW9uIG9mIGEgZmlsZSB3aGV0aGVyIGl0CiAgICAgICAqIGV4aXN0cyBvciBub3QuCiAgICAgICAqIEBwYXJhbSB7fSBwYXRoCiAgICAgICAqIEBwYXJhbSB7RmlsZUJ1ZmZlcn0gY29udGVudAogICAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn0KICAgICAgICovCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgaWYgKHN1cGVyLl9leGlzdHMocGF0aCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuc3dpdGNoTWFwKSgoaXNEaXIpID0+IHsKICAgICAgICAgIGlmIChpc0RpcikgewogICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0aGlzLmV4aXN0cyhwYXRoKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgIGlmICghZXhpc3RzKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgaWYgKGV4aXN0cykgewogICAgICAgICAgICBpZiAodGhpcy53aWxsUmVuYW1lKHBhdGgpIHx8IHRoaXMud2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhwYXRoKSkgewogICAgICAgICAgcmV0dXJuIHN1cGVyLnJlYWQocGF0aCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZXhpc3RzKHBhdGgpKSB7CiAgICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChwYXRoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG1heWJlT3JpZ2luID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQocGF0aCk7CiAgICAgICAgICAgIGlmIChtYXliZU9yaWdpbikgewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWVSZXZlcnQuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZGVsZXRlKG1heWJlT3JpZ2luKTsKICAgICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChtYXliZU9yaWdpbik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLlVua25vd25FeGNlcHRpb24oYFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGF0aDogJHtKU09OLnN0cmluZ2lmeShwYXRoKX0uYCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYmFjay5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgICBpZiAoZXhpc3RzKSB7CiAgICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5hZGQocGF0aCk7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5leGlzdHModG8pLCB0aGlzLmV4aXN0cyhmcm9tKSkucGlwZSgoMCwgcnhqc18xLnRvQXJyYXkpKCksICgwLCByeGpzXzEuc3dpdGNoTWFwKSgoW2V4aXN0VG8sIGV4aXN0RnJvbV0pID0+IHsKICAgICAgICAgIGlmICghZXhpc3RGcm9tKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGZyb20pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmcm9tID09PSB0bykgewogICAgICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGV4aXN0VG8pIHsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24odG8pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnJlbmFtZShmcm9tLCB0byksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoeCkgPT4gewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuYWRkKHRvKTsKICAgICAgICAgICAgICB4LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyh0bykpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5kZWxldGUodG8pOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGZyb20pLnBpcGUoKDAsIHJ4anNfMS5tYXApKChjb250ZW50KSA9PiB0aGlzLl93cml0ZSh0bywgY29udGVudCkpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG1heWJlVG8xID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAobWF5YmVUbzEpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5kZWxldGUobWF5YmVUbzEpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0LmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgZnJvbSA9IG1heWJlVG8xOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5zZXQoZnJvbSwgdG8pOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5zZXQodG8sIGZyb20pOwogICAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhmcm9tKSkgewogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQoZnJvbSkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGNvbnRlbnQpID0+IHN1cGVyLndyaXRlKHRvLCBjb250ZW50KSkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKHN1cGVyLmxpc3QocGF0aCksIHRoaXMuX2JhY2subGlzdChwYXRoKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKGxpc3QsIGN1cnIpID0+IHsKICAgICAgICAgIGN1cnIuZm9yRWFjaCgoZWxlbSkgPT4gbGlzdC5hZGQoZWxlbSkpOwogICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSksICgwLCByeGpzXzEubWFwKSgoc2V0MikgPT4gWy4uLnNldDJdKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gKDAsIHJ4anNfMS5vZikodHJ1ZSkgOiB0aGlzLndpbGxEZWxldGUocGF0aCkgfHwgdGhpcy53aWxsUmVuYW1lKHBhdGgpID8gKDAsIHJ4anNfMS5vZikoZmFsc2UpIDogdGhpcy5fYmFjay5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5pc0RpcmVjdG9yeShwYXRoKSA6IHRoaXMuX2JhY2suaXNEaXJlY3RvcnkocGF0aCk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gc3VwZXIuaXNGaWxlKHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKGZhbHNlKSA6IHRoaXMuX2JhY2suaXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIHN0YXQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5zdGF0KHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKG51bGwpIDogdGhpcy5fYmFjay5zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIHdhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICB3aWxsQ3JlYXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbE92ZXJ3cml0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpOwogICAgICB9CiAgICAgIHdpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyhwYXRoKTsKICAgICAgfQogICAgICB3aWxsUmVuYW1lKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb1JlbmFtZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbFJlbmFtZVRvKHBhdGgsIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZ2V0KHBhdGgpID09PSB0bzsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gQ29yZEhvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcwp2YXIgcmVxdWlyZV9zYWZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2FmZVJlYWRvbmx5SG9zdCA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFNhZmVSZWFkb25seUhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShbXSkpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikoZmFsc2UpKSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNGaWxlKHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShmYWxzZSkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0cy4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0ICYmIG1heWJlU3RhdC5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikobnVsbCkpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNhZmVSZWFkb25seUhvc3QgPSBTYWZlUmVhZG9ubHlIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zY29wZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBTY29wZWRIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgX3Jvb3QgPSBwYXRoXzEuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICBzdXBlcihkZWxlZ2F0ZSk7CiAgICAgICAgdGhpcy5fcm9vdCA9IF9yb290OwogICAgICB9CiAgICAgIF9yZXNvbHZlKHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHBhdGhfMS5qb2luKSh0aGlzLl9yb290LCBwYXRoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSBTY29wZWRIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzCnZhciByZXF1aXJlX2hvc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGVzdCA9IHZvaWQgMDsKICAgIHZhciB0ZXN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdGVzdCgpKTsKICAgIGV4cG9ydHMyLnRlc3QgPSB0ZXN0OwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYWxpYXMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYnVmZmVyMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jcmVhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW1wdHkyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbWVtb3J5KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BhdHRlcm4yKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3JlY29yZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zYWZlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Njb3BlZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zeW5jKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Jlc29sdmVyKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaW5kZXguanMKdmFyIHJlcXVpcmVfdmlydHVhbF9mcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmlydHVhbEZzID0gdm9pZCAwOwogICAgdmFyIHZpcnR1YWxGcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2hvc3QoKSk7CiAgICBleHBvcnRzMi52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9wYXRoKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IGNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUhvc3QoaG9zdCkgewogICAgICBjb25zdCB3b3Jrc3BhY2VIb3N0ID0gewogICAgICAgIGFzeW5jIHJlYWRGaWxlKHBhdGgpIHsKICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QucmVhZCgoMCwgdmlydHVhbF9mc18xLm5vcm1hbGl6ZSkocGF0aCkpKTsKICAgICAgICAgIHJldHVybiB2aXJ0dWFsX2ZzXzEudmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhkYXRhKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIHdyaXRlRmlsZShwYXRoLCBkYXRhKSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShob3N0LndyaXRlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSwgdmlydHVhbF9mc18xLnZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoZGF0YSkpKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNEaXJlY3RvcnkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNGaWxlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiB3b3Jrc3BhY2VIb3N0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvc2Nhbm5lci5qcwp2YXIgcmVxdWlyZV9zY2FubmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zY2FubmVyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gdm9pZCAwOwogICAgICBmdW5jdGlvbiBjcmVhdGVTY2FubmVyKHRleHQsIGlnbm9yZVRyaXZpYSA9IGZhbHNlKSB7CiAgICAgICAgY29uc3QgbGVuID0gdGV4dC5sZW5ndGg7CiAgICAgICAgbGV0IHBvcyA9IDAsIHZhbHVlID0gIiIsIHRva2VuT2Zmc2V0ID0gMCwgdG9rZW4gPSAxNiwgbGluZU51bWJlciA9IDAsIGxpbmVTdGFydE9mZnNldCA9IDAsIHRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgc2NhbkVycm9yID0gMDsKICAgICAgICBmdW5jdGlvbiBzY2FuSGV4RGlnaXRzKGNvdW50LCBleGFjdCkgewogICAgICAgICAgbGV0IGRpZ2l0cyA9IDA7CiAgICAgICAgICBsZXQgdmFsdWUyID0gMDsKICAgICAgICAgIHdoaWxlIChkaWdpdHMgPCBjb3VudCB8fCAhZXhhY3QpIHsKICAgICAgICAgICAgbGV0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA+PSA0OCAmJiBjaCA8PSA1NykgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA0ODsKICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSA2NSAmJiBjaCA8PSA3MCkgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA2NSArIDEwOwogICAgICAgICAgICB9IGVsc2UgaWYgKGNoID49IDk3ICYmIGNoIDw9IDEwMikgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA5NyArIDEwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICBkaWdpdHMrKzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkaWdpdHMgPCBjb3VudCkgewogICAgICAgICAgICB2YWx1ZTIgPSAtMTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB2YWx1ZTI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNldFBvc2l0aW9uKG5ld1Bvc2l0aW9uKSB7CiAgICAgICAgICBwb3MgPSBuZXdQb3NpdGlvbjsKICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IDA7CiAgICAgICAgICB0b2tlbiA9IDE2OwogICAgICAgICAgc2NhbkVycm9yID0gMDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk51bWJlcigpIHsKICAgICAgICAgIGxldCBzdGFydCA9IHBvczsKICAgICAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDgpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDYpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kID0gcG9zOwogICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNjkgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDEwMSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDMgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDQ1KSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZW5kID0gcG9zOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCwgZW5kKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2NhblN0cmluZygpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAiIiwgc3RhcnQgPSBwb3M7CiAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAyOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA9PT0gMzQpIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoID09PSA5MikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBjaDIgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKyspOwogICAgICAgICAgICAgIHN3aXRjaCAoY2gyKSB7CiAgICAgICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyInOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgOTI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXFwiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDc6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiLyI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA5ODoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcYiI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMDI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXGYiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTEwOgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlxuIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDExNDoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcciI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTY6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiCSI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTc6CiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoMyA9IHNjYW5IZXhEaWdpdHMoNCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgIGlmIChjaDMgPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoMyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc2NhbkVycm9yID0gNDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHNjYW5FcnJvciA9IDU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN0YXJ0ID0gcG9zOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaCA+PSAwICYmIGNoIDw9IDMxKSB7CiAgICAgICAgICAgICAgaWYgKGlzTGluZUJyZWFrKGNoKSkgewogICAgICAgICAgICAgICAgcmVzdWx0ICs9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSA2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNjYW5OZXh0KCkgewogICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICAgIHNjYW5FcnJvciA9IDA7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IHBvczsKICAgICAgICAgIGxpbmVTdGFydE9mZnNldCA9IGxpbmVOdW1iZXI7CiAgICAgICAgICBwcmV2VG9rZW5MaW5lU3RhcnRPZmZzZXQgPSB0b2tlbkxpbmVTdGFydE9mZnNldDsKICAgICAgICAgIGlmIChwb3MgPj0gbGVuKSB7CiAgICAgICAgICAgIHRva2VuT2Zmc2V0ID0gbGVuOwogICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNzsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNvZGUpKSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIGNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgfSB3aGlsZSAoaXNXaGl0ZVNwYWNlKGNvZGUpKTsKICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMTU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIHZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7CiAgICAgICAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTApIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgdG9rZW5MaW5lU3RhcnRPZmZzZXQgPSBwb3M7CiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE0OwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIC8vIHRva2VuczogW117fTosCiAgICAgICAgICAgIGNhc2UgMTIzOgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDI7CiAgICAgICAgICAgIGNhc2UgOTE6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMzsKICAgICAgICAgICAgY2FzZSA5MzoKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA0OwogICAgICAgICAgICBjYXNlIDU4OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDY7CiAgICAgICAgICAgIGNhc2UgNDQ6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNTsKICAgICAgICAgICAgLy8gc3RyaW5ncwogICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHZhbHVlID0gc2NhblN0cmluZygpOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEwOwogICAgICAgICAgICAvLyBjb21tZW50cwogICAgICAgICAgICBjYXNlIDQ3OgogICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zIC0gMTsKICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSA0NykgewogICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGVuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayh0ZXh0LmNoYXJDb2RlQXQocG9zKSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckNvZGVBdChwb3MgKyAxKSA9PT0gNDIpIHsKICAgICAgICAgICAgICAgIHBvcyArPSAyOwogICAgICAgICAgICAgICAgY29uc3Qgc2FmZUxlbmd0aCA9IGxlbiAtIDE7CiAgICAgICAgICAgICAgICBsZXQgY29tbWVudENsb3NlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHNhZmVMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgY2ggPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgICAgICAgaWYgKGNoID09PSA0MiAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zICsgMSkgPT09IDQ3KSB7CiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICAgICAgY29tbWVudENsb3NlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayhjaCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDEzICYmIHRleHQuY2hhckNvZGVBdChwb3MpID09PSAxMCkgewogICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgICAgICAgICB0b2tlbkxpbmVTdGFydE9mZnNldCA9IHBvczsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjb21tZW50Q2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFsdWUgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAvLyBudW1iZXJzCiAgICAgICAgICAgIGNhc2UgNDU6CiAgICAgICAgICAgICAgdmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID09PSBsZW4gfHwgIWlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZvdW5kIGEgbWludXMsIGZvbGxvd2VkIGJ5IGEgbnVtYmVyIHNvCiAgICAgICAgICAgIC8vIHdlIGZhbGwgdGhyb3VnaCB0byBwcm9jZWVkIHdpdGggc2Nhbm5pbmcKICAgICAgICAgICAgLy8gbnVtYmVycwogICAgICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgICBjYXNlIDQ5OgogICAgICAgICAgICBjYXNlIDUwOgogICAgICAgICAgICBjYXNlIDUxOgogICAgICAgICAgICBjYXNlIDUyOgogICAgICAgICAgICBjYXNlIDUzOgogICAgICAgICAgICBjYXNlIDU0OgogICAgICAgICAgICBjYXNlIDU1OgogICAgICAgICAgICBjYXNlIDU2OgogICAgICAgICAgICBjYXNlIDU3OgogICAgICAgICAgICAgIHZhbHVlICs9IHNjYW5OdW1iZXIoKTsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMTsKICAgICAgICAgICAgLy8gbGl0ZXJhbHMgYW5kIHVua25vd24gc3ltYm9scwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsZW4gJiYgaXNVbmtub3duQ29udGVudENoYXJhY3Rlcihjb2RlKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0b2tlbk9mZnNldCAhPT0gcG9zKSB7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRleHQuc3Vic3RyaW5nKHRva2VuT2Zmc2V0LCBwb3MpOwogICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJ0cnVlIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA4OwogICAgICAgICAgICAgICAgICBjYXNlICJmYWxzZSI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gOTsKICAgICAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpc1Vua25vd25Db250ZW50Q2hhcmFjdGVyKGNvZGUpIHsKICAgICAgICAgIGlmIChpc1doaXRlU3BhY2UoY29kZSkgfHwgaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICBjYXNlIDkzOgogICAgICAgICAgICBjYXNlIDEyMzoKICAgICAgICAgICAgY2FzZSA5MToKICAgICAgICAgICAgY2FzZSAzNDoKICAgICAgICAgICAgY2FzZSA1ODoKICAgICAgICAgICAgY2FzZSA0NDoKICAgICAgICAgICAgY2FzZSA0NzoKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHROb25Ucml2aWEoKSB7CiAgICAgICAgICBsZXQgcmVzdWx0OwogICAgICAgICAgZG8gewogICAgICAgICAgICByZXN1bHQgPSBzY2FuTmV4dCgpOwogICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID49IDEyICYmIHJlc3VsdCA8PSAxNSk7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgc2V0UG9zaXRpb24sCiAgICAgICAgICBnZXRQb3NpdGlvbjogKCkgPT4gcG9zLAogICAgICAgICAgc2NhbjogaWdub3JlVHJpdmlhID8gc2Nhbk5leHROb25Ucml2aWEgOiBzY2FuTmV4dCwKICAgICAgICAgIGdldFRva2VuOiAoKSA9PiB0b2tlbiwKICAgICAgICAgIGdldFRva2VuVmFsdWU6ICgpID0+IHZhbHVlLAogICAgICAgICAgZ2V0VG9rZW5PZmZzZXQ6ICgpID0+IHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5MZW5ndGg6ICgpID0+IHBvcyAtIHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5TdGFydExpbmU6ICgpID0+IGxpbmVTdGFydE9mZnNldCwKICAgICAgICAgIGdldFRva2VuU3RhcnRDaGFyYWN0ZXI6ICgpID0+IHRva2VuT2Zmc2V0IC0gcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5FcnJvcjogKCkgPT4gc2NhbkVycm9yCiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gY3JlYXRlU2Nhbm5lcjsKICAgICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7CiAgICAgICAgcmV0dXJuIGNoID09PSAzMiB8fCBjaCA9PT0gOTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0xpbmVCcmVhayhjaCkgewogICAgICAgIHJldHVybiBjaCA9PT0gMTAgfHwgY2ggPT09IDEzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRGlnaXQoY2gpIHsKICAgICAgICByZXR1cm4gY2ggPj0gNDggJiYgY2ggPD0gNTc7CiAgICAgIH0KICAgICAgdmFyIENoYXJhY3RlckNvZGVzOwogICAgICAoZnVuY3Rpb24oQ2hhcmFjdGVyQ29kZXMyKSB7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibGluZUZlZWQiXSA9IDEwXSA9ICJsaW5lRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY2FycmlhZ2VSZXR1cm4iXSA9IDEzXSA9ICJjYXJyaWFnZVJldHVybiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic3BhY2UiXSA9IDMyXSA9ICJzcGFjZSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzAiXSA9IDQ4XSA9ICJfMCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzEiXSA9IDQ5XSA9ICJfMSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzIiXSA9IDUwXSA9ICJfMiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzMiXSA9IDUxXSA9ICJfMyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzQiXSA9IDUyXSA9ICJfNCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzUiXSA9IDUzXSA9ICJfNSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzYiXSA9IDU0XSA9ICJfNiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzciXSA9IDU1XSA9ICJfNyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzgiXSA9IDU2XSA9ICJfOCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzkiXSA9IDU3XSA9ICJfOSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYSJdID0gOTddID0gImEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImIiXSA9IDk4XSA9ICJiIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjIl0gPSA5OV0gPSAiYyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZCJdID0gMTAwXSA9ICJkIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJlIl0gPSAxMDFdID0gImUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImYiXSA9IDEwMl0gPSAiZiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZyJdID0gMTAzXSA9ICJnIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJoIl0gPSAxMDRdID0gImgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImkiXSA9IDEwNV0gPSAiaSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiaiJdID0gMTA2XSA9ICJqIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJrIl0gPSAxMDddID0gImsiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImwiXSA9IDEwOF0gPSAibCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibSJdID0gMTA5XSA9ICJtIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJuIl0gPSAxMTBdID0gIm4iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIm8iXSA9IDExMV0gPSAibyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicCJdID0gMTEyXSA9ICJwIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJxIl0gPSAxMTNdID0gInEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInIiXSA9IDExNF0gPSAiciI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicyJdID0gMTE1XSA9ICJzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ0Il0gPSAxMTZdID0gInQiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInUiXSA9IDExN10gPSAidSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidiJdID0gMTE4XSA9ICJ2IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ3Il0gPSAxMTldID0gInciOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIngiXSA9IDEyMF0gPSAieCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsieSJdID0gMTIxXSA9ICJ5IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ6Il0gPSAxMjJdID0gInoiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkEiXSA9IDY1XSA9ICJBIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJCIl0gPSA2Nl0gPSAiQiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiQyJdID0gNjddID0gIkMiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkQiXSA9IDY4XSA9ICJEIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJFIl0gPSA2OV0gPSAiRSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiRiJdID0gNzBdID0gIkYiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkciXSA9IDcxXSA9ICJHIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJIIl0gPSA3Ml0gPSAiSCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiSSJdID0gNzNdID0gIkkiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkoiXSA9IDc0XSA9ICJKIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJLIl0gPSA3NV0gPSAiSyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTCJdID0gNzZdID0gIkwiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIk0iXSA9IDc3XSA9ICJNIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJOIl0gPSA3OF0gPSAiTiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTyJdID0gNzldID0gIk8iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlAiXSA9IDgwXSA9ICJQIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJRIl0gPSA4MV0gPSAiUSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiUiJdID0gODJdID0gIlIiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlMiXSA9IDgzXSA9ICJTIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJUIl0gPSA4NF0gPSAiVCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiVSJdID0gODVdID0gIlUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlYiXSA9IDg2XSA9ICJWIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJXIl0gPSA4N10gPSAiVyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiWCJdID0gODhdID0gIlgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlkiXSA9IDg5XSA9ICJZIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJaIl0gPSA5MF0gPSAiWiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYXN0ZXJpc2siXSA9IDQyXSA9ICJhc3RlcmlzayI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYmFja3NsYXNoIl0gPSA5Ml0gPSAiYmFja3NsYXNoIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjbG9zZUJyYWNlIl0gPSAxMjVdID0gImNsb3NlQnJhY2UiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImNsb3NlQnJhY2tldCJdID0gOTNdID0gImNsb3NlQnJhY2tldCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29sb24iXSA9IDU4XSA9ICJjb2xvbiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29tbWEiXSA9IDQ0XSA9ICJjb21tYSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZG90Il0gPSA0Nl0gPSAiZG90IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJkb3VibGVRdW90ZSJdID0gMzRdID0gImRvdWJsZVF1b3RlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJtaW51cyJdID0gNDVdID0gIm1pbnVzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2UiXSA9IDEyM10gPSAib3BlbkJyYWNlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2tldCJdID0gOTFdID0gIm9wZW5CcmFja2V0IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJwbHVzIl0gPSA0M10gPSAicGx1cyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic2xhc2giXSA9IDQ3XSA9ICJzbGFzaCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZm9ybUZlZWQiXSA9IDEyXSA9ICJmb3JtRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidGFiIl0gPSA5XSA9ICJ0YWIiOwogICAgICB9KShDaGFyYWN0ZXJDb2RlcyB8fCAoQ2hhcmFjdGVyQ29kZXMgPSB7fSkpOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zdHJpbmctaW50ZXJuLmpzCnZhciByZXF1aXJlX3N0cmluZ19pbnRlcm4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL3N0cmluZy1pbnRlcm4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyJdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLnN1cHBvcnRlZEVvbHMgPSBleHBvcnRzMy5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlcyA9IGV4cG9ydHMzLmNhY2hlZFNwYWNlcyA9IHZvaWQgMDsKICAgICAgZXhwb3J0czMuY2FjaGVkU3BhY2VzID0gbmV3IEFycmF5KDIwKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gIiAiLnJlcGVhdChpbmRleCk7CiAgICAgIH0pOwogICAgICBjb25zdCBtYXhDYWNoZWRWYWx1ZXMgPSAyMDA7CiAgICAgIGV4cG9ydHMzLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzID0gewogICAgICAgICIgIjogewogICAgICAgICAgIlxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcciI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyIiArICIgIi5yZXBlYXQoaW5kZXgpOwogICAgICAgICAgfSksCiAgICAgICAgICAiXHJcbiI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgIgkiOiB7CiAgICAgICAgICAiXG4iOiBuZXcgQXJyYXkobWF4Q2FjaGVkVmFsdWVzKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICAgICAgcmV0dXJuICJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pLAogICAgICAgICAgIlxyIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHIiICsgIgkiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcclxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzMy5zdXBwb3J0ZWRFb2xzID0gWyJcbiIsICJcciIsICJcclxuIl07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9mb3JtYXQuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgc2Nhbm5lcl8xID0gcmVxdWlyZV9zY2FubmVyKCk7CiAgICB2YXIgc3RyaW5nX2ludGVybl8xID0gcmVxdWlyZV9zdHJpbmdfaW50ZXJuKCk7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyIsICIuL3NjYW5uZXIiLCAiLi9zdHJpbmctaW50ZXJuIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuaXNFT0wgPSBleHBvcnRzMy5mb3JtYXQgPSB2b2lkIDA7CiAgICAgIGZ1bmN0aW9uIGZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKSB7CiAgICAgICAgbGV0IGluaXRpYWxJbmRlbnRMZXZlbDsKICAgICAgICBsZXQgZm9ybWF0VGV4dDsKICAgICAgICBsZXQgZm9ybWF0VGV4dFN0YXJ0OwogICAgICAgIGxldCByYW5nZVN0YXJ0OwogICAgICAgIGxldCByYW5nZUVuZDsKICAgICAgICBpZiAocmFuZ2UpIHsKICAgICAgICAgIHJhbmdlU3RhcnQgPSByYW5nZS5vZmZzZXQ7CiAgICAgICAgICByYW5nZUVuZCA9IHJhbmdlU3RhcnQgKyByYW5nZS5sZW5ndGg7CiAgICAgICAgICBmb3JtYXRUZXh0U3RhcnQgPSByYW5nZVN0YXJ0OwogICAgICAgICAgd2hpbGUgKGZvcm1hdFRleHRTdGFydCA+IDAgJiYgIWlzRU9MKGRvY3VtZW50VGV4dCwgZm9ybWF0VGV4dFN0YXJ0IC0gMSkpIHsKICAgICAgICAgICAgZm9ybWF0VGV4dFN0YXJ0LS07CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kT2Zmc2V0ID0gcmFuZ2VFbmQ7CiAgICAgICAgICB3aGlsZSAoZW5kT2Zmc2V0IDwgZG9jdW1lbnRUZXh0Lmxlbmd0aCAmJiAhaXNFT0woZG9jdW1lbnRUZXh0LCBlbmRPZmZzZXQpKSB7CiAgICAgICAgICAgIGVuZE9mZnNldCsrOwogICAgICAgICAgfQogICAgICAgICAgZm9ybWF0VGV4dCA9IGRvY3VtZW50VGV4dC5zdWJzdHJpbmcoZm9ybWF0VGV4dFN0YXJ0LCBlbmRPZmZzZXQpOwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gY29tcHV0ZUluZGVudExldmVsKGZvcm1hdFRleHQsIG9wdGlvbnMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3JtYXRUZXh0ID0gZG9jdW1lbnRUZXh0OwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gMDsKICAgICAgICAgIGZvcm1hdFRleHRTdGFydCA9IDA7CiAgICAgICAgICByYW5nZVN0YXJ0ID0gMDsKICAgICAgICAgIHJhbmdlRW5kID0gZG9jdW1lbnRUZXh0Lmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgY29uc3QgZW9sID0gZ2V0RU9MKG9wdGlvbnMsIGRvY3VtZW50VGV4dCk7CiAgICAgICAgY29uc3QgZW9sRmFzdFBhdGhTdXBwb3J0ZWQgPSBzdHJpbmdfaW50ZXJuXzEuc3VwcG9ydGVkRW9scy5pbmNsdWRlcyhlb2wpOwogICAgICAgIGxldCBudW1iZXJMaW5lQnJlYWtzID0gMDsKICAgICAgICBsZXQgaW5kZW50TGV2ZWwgPSAwOwogICAgICAgIGxldCBpbmRlbnRWYWx1ZTsKICAgICAgICBpZiAob3B0aW9ucy5pbnNlcnRTcGFjZXMpIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1tvcHRpb25zLnRhYlNpemUgfHwgNF0gPz8gcmVwZWF0MihzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdLCBvcHRpb25zLnRhYlNpemUgfHwgNCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gIgkiOwogICAgICAgIH0KICAgICAgICBjb25zdCBpbmRlbnRUeXBlID0gaW5kZW50VmFsdWUgPT09ICIJIiA/ICIJIiA6ICIgIjsKICAgICAgICBsZXQgc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikoZm9ybWF0VGV4dCwgZmFsc2UpOwogICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlOwogICAgICAgIGZ1bmN0aW9uIG5ld0xpbmVzQW5kSW5kZW50KCkgewogICAgICAgICAgaWYgKG51bWJlckxpbmVCcmVha3MgPiAxKSB7CiAgICAgICAgICAgIHJldHVybiByZXBlYXQyKGVvbCwgbnVtYmVyTGluZUJyZWFrcykgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBhbW91bnRPZlNwYWNlcyA9IGluZGVudFZhbHVlLmxlbmd0aCAqIChpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICBpZiAoIWVvbEZhc3RQYXRoU3VwcG9ydGVkIHx8IGFtb3VudE9mU3BhY2VzID4gc3RyaW5nX2ludGVybl8xLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzW2luZGVudFR5cGVdW2VvbF0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHJldHVybiBlb2wgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYW1vdW50T2ZTcGFjZXMgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gZW9sOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN0cmluZ19pbnRlcm5fMS5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlc1tpbmRlbnRUeXBlXVtlb2xdW2Ftb3VudE9mU3BhY2VzXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHQoKSB7CiAgICAgICAgICBsZXQgdG9rZW4gPSBzY2FubmVyLnNjYW4oKTsKICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgPSAwOwogICAgICAgICAgd2hpbGUgKHRva2VuID09PSAxNSB8fCB0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgaWYgKHRva2VuID09PSAxNCAmJiBvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgKz0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgICBudW1iZXJMaW5lQnJlYWtzID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0b2tlbiA9IHNjYW5uZXIuc2NhbigpOwogICAgICAgICAgfQogICAgICAgICAgaGFzRXJyb3IgPSB0b2tlbiA9PT0gMTYgfHwgc2Nhbm5lci5nZXRUb2tlbkVycm9yKCkgIT09IDA7CiAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRPcGVyYXRpb25zID0gW107CiAgICAgICAgZnVuY3Rpb24gYWRkRWRpdCh0ZXh0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KSB7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yICYmICghcmFuZ2UgfHwgc3RhcnRPZmZzZXQgPCByYW5nZUVuZCAmJiBlbmRPZmZzZXQgPiByYW5nZVN0YXJ0KSAmJiBkb2N1bWVudFRleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpICE9PSB0ZXh0KSB7CiAgICAgICAgICAgIGVkaXRPcGVyYXRpb25zLnB1c2goewogICAgICAgICAgICAgIG9mZnNldDogc3RhcnRPZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoOiBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCwKICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgZmlyc3RUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICBhZGRFZGl0KHJlcGVhdDIoZW9sLCBudW1iZXJMaW5lQnJlYWtzKSwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIGlmIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGxldCBpbml0aWFsSW5kZW50ID0gaW5kZW50VmFsdWUubGVuZ3RoICogaW5pdGlhbEluZGVudExldmVsIDwgMjAgJiYgb3B0aW9ucy5pbnNlcnRTcGFjZXMgPyBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzW2luZGVudFZhbHVlLmxlbmd0aCAqIGluaXRpYWxJbmRlbnRMZXZlbF0gOiByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwpOwogICAgICAgICAgYWRkRWRpdChpbml0aWFsSW5kZW50LCBmb3JtYXRUZXh0U3RhcnQsIGZpcnN0VG9rZW5TdGFydCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICBsZXQgc2Vjb25kVG9rZW4gPSBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IHJlcGxhY2VDb250ZW50ID0gIiI7CiAgICAgICAgICBsZXQgbmVlZHNMaW5lQnJlYWsgPSBmYWxzZTsKICAgICAgICAgIHdoaWxlIChudW1iZXJMaW5lQnJlYWtzID09PSAwICYmIChzZWNvbmRUb2tlbiA9PT0gMTIgfHwgc2Vjb25kVG9rZW4gPT09IDEzKSkgewogICAgICAgICAgICBsZXQgY29tbWVudFRva2VuU3RhcnQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIGFkZEVkaXQoCiAgICAgICAgICAgICAgc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXSwKICAgICAgICAgICAgICBmaXJzdFRva2VuRW5kLAogICAgICAgICAgICAgIGNvbW1lbnRUb2tlblN0YXJ0CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIG5lZWRzTGluZUJyZWFrID0gc2Vjb25kVG9rZW4gPT09IDEyOwogICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5lZWRzTGluZUJyZWFrID8gbmV3TGluZXNBbmRJbmRlbnQoKSA6ICIiOwogICAgICAgICAgICBzZWNvbmRUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2Vjb25kVG9rZW4gPT09IDIpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4gIT09IDEpIHsKICAgICAgICAgICAgICBpbmRlbnRMZXZlbC0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMgJiYgZmlyc3RUb2tlbiAhPT0gMSkgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRUb2tlbiA9PT0gNCkgewogICAgICAgICAgICBpZiAoZmlyc3RUb2tlbiAhPT0gMykgewogICAgICAgICAgICAgIGluZGVudExldmVsLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcyAmJiBmaXJzdFRva2VuICE9PSAzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua2VlcExpbmVzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzd2l0Y2ggKGZpcnN0VG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgaW5kZW50TGV2ZWwrKzsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMpIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5rZWVwTGluZXMgJiYgbnVtYmVyTGluZUJyZWFrcyA+IDApIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbmVlZHNMaW5lQnJlYWspIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuID09PSA2ICYmICFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICgoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykgJiYgIW5lZWRzTGluZUJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuICE9PSA1ICYmIHNlY29uZFRva2VuICE9PSAxNykgewogICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCAmJiAoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykpIHsKICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWNvbmRUb2tlbiA9PT0gMTcpIHsKICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gb3B0aW9ucy5pbnNlcnRGaW5hbE5ld2xpbmUgPyBlb2wgOiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2Vjb25kVG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGFkZEVkaXQocmVwbGFjZUNvbnRlbnQsIGZpcnN0VG9rZW5FbmQsIHNlY29uZFRva2VuU3RhcnQpOwogICAgICAgICAgZmlyc3RUb2tlbiA9IHNlY29uZFRva2VuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZWRpdE9wZXJhdGlvbnM7CiAgICAgIH0KICAgICAgZXhwb3J0czMuZm9ybWF0ID0gZm9ybWF0OwogICAgICBmdW5jdGlvbiByZXBlYXQyKHMsIGNvdW50KSB7CiAgICAgICAgbGV0IHJlc3VsdCA9ICIiOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgcmVzdWx0ICs9IHM7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcHV0ZUluZGVudExldmVsKGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBsZXQgaSA9IDA7CiAgICAgICAgbGV0IG5DaGFycyA9IDA7CiAgICAgICAgY29uc3QgdGFiU2l6ZSA9IG9wdGlvbnMudGFiU2l6ZSB8fCA0OwogICAgICAgIHdoaWxlIChpIDwgY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgIGxldCBjaCA9IGNvbnRlbnQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdKSB7CiAgICAgICAgICAgIG5DaGFycysrOwogICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gIgkiKSB7CiAgICAgICAgICAgIG5DaGFycyArPSB0YWJTaXplOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiBNYXRoLmZsb29yKG5DaGFycyAvIHRhYlNpemUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEVPTChvcHRpb25zLCB0ZXh0KSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBjb25zdCBjaCA9IHRleHQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSAiXHIiKSB7CiAgICAgICAgICAgIGlmIChpICsgMSA8IHRleHQubGVuZ3RoICYmIHRleHQuY2hhckF0KGkgKyAxKSA9PT0gIlxuIikgewogICAgICAgICAgICAgIHJldHVybiAiXHJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJcciI7CiAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAiXG4iKSB7CiAgICAgICAgICAgIHJldHVybiAiXG4iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVvbCB8fCAiXG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRU9MKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiIuaW5kZXhPZih0ZXh0LmNoYXJBdChvZmZzZXQpKSAhPT0gLTE7CiAgICAgIH0KICAgICAgZXhwb3J0czMuaXNFT0wgPSBpc0VPTDsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzCnZhciByZXF1aXJlX3BhcnNlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIHNjYW5uZXJfMSA9IHJlcXVpcmVfc2Nhbm5lcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9zY2FubmVyIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5maW5kTm9kZUF0T2Zmc2V0ID0gZXhwb3J0czMuY29udGFpbnMgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IGV4cG9ydHMzLnBhcnNlVHJlZSA9IGV4cG9ydHMzLnBhcnNlID0gZXhwb3J0czMuZ2V0TG9jYXRpb24gPSB2b2lkIDA7CiAgICAgIHZhciBQYXJzZU9wdGlvbnM7CiAgICAgIChmdW5jdGlvbihQYXJzZU9wdGlvbnMyKSB7CiAgICAgICAgUGFyc2VPcHRpb25zMi5ERUZBVUxUID0gewogICAgICAgICAgYWxsb3dUcmFpbGluZ0NvbW1hOiBmYWxzZQogICAgICAgIH07CiAgICAgIH0pKFBhcnNlT3B0aW9ucyB8fCAoUGFyc2VPcHRpb25zID0ge30pKTsKICAgICAgZnVuY3Rpb24gZ2V0TG9jYXRpb24odGV4dCwgcG9zaXRpb24pIHsKICAgICAgICBjb25zdCBzZWdtZW50cyA9IFtdOwogICAgICAgIGNvbnN0IGVhcmx5UmV0dXJuRXhjZXB0aW9uID0gbmV3IE9iamVjdCgpOwogICAgICAgIGxldCBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlSW5zdCA9IHsKICAgICAgICAgIHZhbHVlOiB7fSwKICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgcGFyZW50OiB2b2lkIDAKICAgICAgICB9OwogICAgICAgIGxldCBpc0F0UHJvcGVydHlLZXkgPSBmYWxzZTsKICAgICAgICBmdW5jdGlvbiBzZXRQcmV2aW91c05vZGUodmFsdWUsIG9mZnNldCwgbGVuZ3RoLCB0eXBlMikgewogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICBwcmV2aW91c05vZGVJbnN0Lmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICAgIHByZXZpb3VzTm9kZUluc3QudHlwZSA9IHR5cGUyOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5jb2xvbk9mZnNldCA9IHZvaWQgMDsKICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZUluc3Q7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICB2aXNpdCh0ZXh0LCB7CiAgICAgICAgICAgIG9uT2JqZWN0QmVnaW46IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gcG9zaXRpb24gPiBvZmZzZXQ7CiAgICAgICAgICAgICAgc2VnbWVudHMucHVzaCgiIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZShuYW1lLCBvZmZzZXQsIGxlbmd0aCwgInByb3BlcnR5Iik7CiAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSBuYW1lOwogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQgKyBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25PYmplY3RFbmQ6IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgc2VnbWVudHMucG9wKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQXJyYXlCZWdpbjogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKDApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcHJldmlvdXNOb2RlID0gdm9pZCAwOwogICAgICAgICAgICAgIHNlZ21lbnRzLnBvcCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZTogKHZhbHVlLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZSh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgsIGdldE5vZGVUeXBlKHZhbHVlKSk7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCArIGxlbmd0aCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBvblNlcGFyYXRvcjogKHNlcCwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHNlcCA9PT0gIjoiICYmIHByZXZpb3VzTm9kZSAmJiBwcmV2aW91c05vZGUudHlwZSA9PT0gInByb3BlcnR5IikgewogICAgICAgICAgICAgICAgcHJldmlvdXNOb2RlLmNvbG9uT2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0ID09PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgICBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA9IGxhc3QgKyAxOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlICE9PSBlYXJseVJldHVybkV4Y2VwdGlvbikgewogICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgcGF0aDogc2VnbWVudHMsCiAgICAgICAgICBwcmV2aW91c05vZGUsCiAgICAgICAgICBpc0F0UHJvcGVydHlLZXksCiAgICAgICAgICBtYXRjaGVzOiAocGF0dGVybikgPT4gewogICAgICAgICAgICBsZXQgayA9IDA7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBrIDwgcGF0dGVybi5sZW5ndGggJiYgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgaWYgKHBhdHRlcm5ba10gPT09IHNlZ21lbnRzW2ldIHx8IHBhdHRlcm5ba10gPT09ICIqIikgewogICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0dGVybltrXSAhPT0gIioqIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gayA9PT0gcGF0dGVybi5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IGdldExvY2F0aW9uOwogICAgICBmdW5jdGlvbiBwYXJzZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSBbXTsKICAgICAgICBjb25zdCBwcmV2aW91c1BhcmVudHMgPSBbXTsKICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlKSB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50UGFyZW50KSkgewogICAgICAgICAgICBjdXJyZW50UGFyZW50LnB1c2godmFsdWUpOwogICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UHJvcGVydHkgIT09IG51bGwpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudFtjdXJyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZpc2l0b3IgPSB7CiAgICAgICAgICBvbk9iamVjdEJlZ2luOiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHt9OwogICAgICAgICAgICBvblZhbHVlKG9iamVjdCk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb2JqZWN0OwogICAgICAgICAgICBjdXJyZW50UHJvcGVydHkgPSBudWxsOwogICAgICAgICAgfSwKICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lKSA9PiB7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG5hbWU7CiAgICAgICAgICB9LAogICAgICAgICAgb25PYmplY3RFbmQ6ICgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHByZXZpb3VzUGFyZW50cy5wb3AoKTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5QmVnaW46ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBbXTsKICAgICAgICAgICAgb25WYWx1ZShhcnJheSk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gYXJyYXk7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUVuZDogKCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcHJldmlvdXNQYXJlbnRzLnBvcCgpOwogICAgICAgICAgfSwKICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlOiBvblZhbHVlLAogICAgICAgICAgb25FcnJvcjogKGVycm9yLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICBlcnJvcnMucHVzaCh7IGVycm9yLCBvZmZzZXQsIGxlbmd0aCB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZpc2l0KHRleHQsIHZpc2l0b3IsIG9wdGlvbnMpOwogICAgICAgIHJldHVybiBjdXJyZW50UGFyZW50WzBdOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlID0gcGFyc2U7CiAgICAgIGZ1bmN0aW9uIHBhcnNlVHJlZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgb2Zmc2V0OiAtMSwKICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICBjaGlsZHJlbjogW10sCiAgICAgICAgICBwYXJlbnQ6IHZvaWQgMAogICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gZW5zdXJlUHJvcGVydHlDb21wbGV0ZShlbmRPZmZzZXQpIHsKICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBlbmRPZmZzZXQgLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlTm9kZSkgewogICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHZhbHVlTm9kZSk7CiAgICAgICAgICByZXR1cm4gdmFsdWVOb2RlOwogICAgICAgIH0KICAgICAgICBjb25zdCB2aXNpdG9yID0gewogICAgICAgICAgb25PYmplY3RCZWdpbjogKG9mZnNldCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdFByb3BlcnR5OiAobmFtZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgICAgICB2YWx1ZTogbmFtZSwKICAgICAgICAgICAgICBvZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoLAogICAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhcmVudAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdEVuZDogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGVuc3VyZVByb3BlcnR5Q29tcGxldGUob2Zmc2V0ICsgbGVuZ3RoKTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUJlZ2luOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25MaXRlcmFsVmFsdWU6ICh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogZ2V0Tm9kZVR5cGUodmFsdWUpLAogICAgICAgICAgICAgIG9mZnNldCwKICAgICAgICAgICAgICBsZW5ndGgsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25TZXBhcmF0b3I6IChzZXAsIG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgICBpZiAoc2VwID09PSAiOiIpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuY29sb25PZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgZW5zdXJlUHJvcGVydHlDb21wbGV0ZShvZmZzZXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIG9uRXJyb3I6IChlcnJvciwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgZXJyb3JzLnB1c2goeyBlcnJvciwgb2Zmc2V0LCBsZW5ndGggfSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zKTsKICAgICAgICBjb25zdCByZXN1bHQgPSBjdXJyZW50UGFyZW50LmNoaWxkcmVuWzBdOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIGRlbGV0ZSByZXN1bHQucGFyZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlVHJlZTsKICAgICAgZnVuY3Rpb24gZmluZE5vZGVBdExvY2F0aW9uKHJvb3QsIHBhdGgpIHsKICAgICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGxldCBub2RlID0gcm9vdDsKICAgICAgICBmb3IgKGxldCBzZWdtZW50IG9mIHBhdGgpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKG5vZGUudHlwZSAhPT0gIm9iamVjdCIgfHwgIUFycmF5LmlzQXJyYXkobm9kZS5jaGlsZHJlbikpIHsKICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Tm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOb2RlLmNoaWxkcmVuKSAmJiBwcm9wZXJ0eU5vZGUuY2hpbGRyZW5bMF0udmFsdWUgPT09IHNlZ21lbnQgJiYgcHJvcGVydHlOb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMikgewogICAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZS5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzZWdtZW50OwogICAgICAgICAgICBpZiAobm9kZS50eXBlICE9PSAiYXJyYXkiIHx8IGluZGV4IDwgMCB8fCAhQXJyYXkuaXNBcnJheShub2RlLmNoaWxkcmVuKSB8fCBpbmRleCA+PSBub2RlLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5baW5kZXhdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBmaW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGZ1bmN0aW9uIGdldE5vZGVQYXRoKG5vZGUpIHsKICAgICAgICBpZiAoIW5vZGUucGFyZW50IHx8ICFub2RlLnBhcmVudC5jaGlsZHJlbikgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoID0gZ2V0Tm9kZVBhdGgobm9kZS5wYXJlbnQpOwogICAgICAgIGlmIChub2RlLnBhcmVudC50eXBlID09PSAicHJvcGVydHkiKSB7CiAgICAgICAgICBjb25zdCBrZXkgPSBub2RlLnBhcmVudC5jaGlsZHJlblswXS52YWx1ZTsKICAgICAgICAgIHBhdGgucHVzaChrZXkpOwogICAgICAgIH0gZWxzZSBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gImFycmF5IikgewogICAgICAgICAgY29uc3QgaW5kZXggPSBub2RlLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKG5vZGUpOwogICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBwYXRoLnB1c2goaW5kZXgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcGF0aDsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGdldE5vZGVQYXRoOwogICAgICBmdW5jdGlvbiBnZXROb2RlVmFsdWUobm9kZSkgewogICAgICAgIHN3aXRjaCAobm9kZS50eXBlKSB7CiAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLm1hcChnZXROb2RlVmFsdWUpOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgY29uc3Qgb2JqID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICAgIGZvciAobGV0IHByb3Agb2Ygbm9kZS5jaGlsZHJlbikgewogICAgICAgICAgICAgIGNvbnN0IHZhbHVlTm9kZSA9IHByb3AuY2hpbGRyZW5bMV07CiAgICAgICAgICAgICAgaWYgKHZhbHVlTm9kZSkgewogICAgICAgICAgICAgICAgb2JqW3Byb3AuY2hpbGRyZW5bMF0udmFsdWVdID0gZ2V0Tm9kZVZhbHVlKHZhbHVlTm9kZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVZhbHVlID0gZ2V0Tm9kZVZhbHVlOwogICAgICBmdW5jdGlvbiBjb250YWlucyhub2RlLCBvZmZzZXQsIGluY2x1ZGVSaWdodEJvdW5kID0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gb2Zmc2V0ID49IG5vZGUub2Zmc2V0ICYmIG9mZnNldCA8IG5vZGUub2Zmc2V0ICsgbm9kZS5sZW5ndGggfHwgaW5jbHVkZVJpZ2h0Qm91bmQgJiYgb2Zmc2V0ID09PSBub2RlLm9mZnNldCArIG5vZGUubGVuZ3RoOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmNvbnRhaW5zID0gY29udGFpbnM7CiAgICAgIGZ1bmN0aW9uIGZpbmROb2RlQXRPZmZzZXQobm9kZSwgb2Zmc2V0LCBpbmNsdWRlUmlnaHRCb3VuZCA9IGZhbHNlKSB7CiAgICAgICAgaWYgKGNvbnRhaW5zKG5vZGUsIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpKSB7CiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGggJiYgY2hpbGRyZW5baV0ub2Zmc2V0IDw9IG9mZnNldDsgaSsrKSB7CiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZpbmROb2RlQXRPZmZzZXQoY2hpbGRyZW5baV0sIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpOwogICAgICAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBmaW5kTm9kZUF0T2Zmc2V0OwogICAgICBmdW5jdGlvbiB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zID0gUGFyc2VPcHRpb25zLkRFRkFVTFQpIHsKICAgICAgICBjb25zdCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCwgZmFsc2UpOwogICAgICAgIGNvbnN0IF9qc29uUGF0aCA9IFtdOwogICAgICAgIGxldCBzdXBwcmVzc2VkQ2FsbGJhY2tzID0gMDsKICAgICAgICBmdW5jdGlvbiB0b05vQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKQogICAgICAgICAgKSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvT25lQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoYXJnKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIGFyZywKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydExpbmUoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpCiAgICAgICAgICApIDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0RnVuY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB2aXNpdEZ1bmN0aW9uID8gKGFyZykgPT4gc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCAmJiB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICBhcmcsCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKSwKICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICkgOiAoKSA9PiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB0b0JlZ2luVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MrKzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBsZXQgY2JSZXR1cm4gPSB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0TGluZSgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpLAogICAgICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChjYlJldHVybiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MgPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvRW5kVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCkgewogICAgICAgICAgICAgIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlbk9mZnNldCgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0Q2hhcmFjdGVyKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9IDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgb25PYmplY3RCZWdpbiA9IHRvQmVnaW5WaXNpdCh2aXNpdG9yLm9uT2JqZWN0QmVnaW4pLCBvbk9iamVjdFByb3BlcnR5ID0gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0b3Iub25PYmplY3RQcm9wZXJ0eSksIG9uT2JqZWN0RW5kID0gdG9FbmRWaXNpdCh2aXNpdG9yLm9uT2JqZWN0RW5kKSwgb25BcnJheUJlZ2luID0gdG9CZWdpblZpc2l0KHZpc2l0b3Iub25BcnJheUJlZ2luKSwgb25BcnJheUVuZCA9IHRvRW5kVmlzaXQodmlzaXRvci5vbkFycmF5RW5kKSwgb25MaXRlcmFsVmFsdWUgPSB0b09uZUFyZ1Zpc2l0V2l0aFBhdGgodmlzaXRvci5vbkxpdGVyYWxWYWx1ZSksIG9uU2VwYXJhdG9yID0gdG9PbmVBcmdWaXNpdCh2aXNpdG9yLm9uU2VwYXJhdG9yKSwgb25Db21tZW50ID0gdG9Ob0FyZ1Zpc2l0KHZpc2l0b3Iub25Db21tZW50KSwgb25FcnJvciA9IHRvT25lQXJnVmlzaXQodmlzaXRvci5vbkVycm9yKTsKICAgICAgICBjb25zdCBkaXNhbGxvd0NvbW1lbnRzID0gb3B0aW9ucyAmJiBvcHRpb25zLmRpc2FsbG93Q29tbWVudHM7CiAgICAgICAgY29uc3QgYWxsb3dUcmFpbGluZ0NvbW1hID0gb3B0aW9ucyAmJiBvcHRpb25zLmFsbG93VHJhaWxpbmdDb21tYTsKICAgICAgICBmdW5jdGlvbiBzY2FuTmV4dCgpIHsKICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gX3NjYW5uZXIuc2NhbigpOwogICAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuRXJyb3IoKSkgewogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNAogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkVW5pY29kZSAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNQogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkRXNjYXBlQ2hhcmFjdGVyICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICAgIDEzCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZk51bWJlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIGlmICghZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMQogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQgKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5VbmV4cGVjdGVkRW5kT2ZTdHJpbmcgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgLyogUGFyc2VFcnJvckNvZGUuSW52YWxpZENoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgICBpZiAoZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMAogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRDb21tZW50VG9rZW4gKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIG9uQ29tbWVudCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRTeW1ib2wgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yLCBza2lwVW50aWxBZnRlciA9IFtdLCBza2lwVW50aWwgPSBbXSkgewogICAgICAgICAgb25FcnJvcihlcnJvcik7CiAgICAgICAgICBpZiAoc2tpcFVudGlsQWZ0ZXIubGVuZ3RoICsgc2tpcFVudGlsLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGV0IHRva2VuID0gX3NjYW5uZXIuZ2V0VG9rZW4oKTsKICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9PSAxNykgewogICAgICAgICAgICAgIGlmIChza2lwVW50aWxBZnRlci5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBVbnRpbC5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0b2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoaXNWYWx1ZSkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBfc2Nhbm5lci5nZXRUb2tlblZhbHVlKCk7CiAgICAgICAgICBpZiAoaXNWYWx1ZSkgewogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbk9iamVjdFByb3BlcnR5KHZhbHVlKTsKICAgICAgICAgICAgX2pzb25QYXRoLnB1c2godmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUxpdGVyYWwoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjb25zdCB0b2tlblZhbHVlID0gX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpOwogICAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcih0b2tlblZhbHVlKTsKICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkTnVtYmVyRm9ybWF0ICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdmFsdWUgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZShudWxsKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlKHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgb25MaXRlcmFsVmFsdWUoZmFsc2UpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eSgpIHsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxMCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAzLAogICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICA1CiAgICAgICAgICAgICAgICAvKiBTeW50YXhLaW5kLkNvbW1hVG9rZW4gKi8KICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcnNlU3RyaW5nKGZhbHNlKTsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA2KSB7CiAgICAgICAgICAgIG9uU2VwYXJhdG9yKCI6Iik7CiAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgNQogICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgX2pzb25QYXRoLnBvcCgpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0KCkgewogICAgICAgICAgb25PYmplY3RCZWdpbigpOwogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMiAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAyICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZWVkc0NvbW1hID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9uT2JqZWN0RW5kKCk7CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMikgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFjZVRva2VuICovCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBbXQogICAgICAgICAgICApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUFycmF5KCkgewogICAgICAgICAgb25BcnJheUJlZ2luKCk7CiAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IGlzRmlyc3RFbGVtZW50ID0gdHJ1ZTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA0ICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICAgIF9qc29uUGF0aC5wdXNoKDApOwogICAgICAgICAgICAgIGlzRmlyc3RFbGVtZW50ID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX2pzb25QYXRoW19qc29uUGF0aC5sZW5ndGggLSAxXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgb25BcnJheUVuZCgpOwogICAgICAgICAgaWYgKCFpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICBfanNvblBhdGgucG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDQKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFja2V0VG9rZW4gKi8KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFtdCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlVmFsdWUoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIHJldHVybiBwYXJzZUFycmF5KCk7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3QoKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmcodHJ1ZSk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAxNykgewogICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dFbXB0eUNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBoYW5kbGVFcnJvcig0LCBbXSwgW10pOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoIXBhcnNlVmFsdWUoKSkgewogICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKF9zY2FubmVyLmdldFRva2VuKCkgIT09IDE3KSB7CiAgICAgICAgICBoYW5kbGVFcnJvcig5LCBbXSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBleHBvcnRzMy52aXNpdCA9IHZpc2l0OwogICAgICBmdW5jdGlvbiBzdHJpcENvbW1lbnRzKHRleHQsIHJlcGxhY2VDaCkgewogICAgICAgIGxldCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCksIHBhcnRzID0gW10sIGtpbmQsIG9mZnNldCA9IDAsIHBvczsKICAgICAgICBkbyB7CiAgICAgICAgICBwb3MgPSBfc2Nhbm5lci5nZXRQb3NpdGlvbigpOwogICAgICAgICAga2luZCA9IF9zY2FubmVyLnNjYW4oKTsKICAgICAgICAgIHN3aXRjaCAoa2luZCkgewogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IHBvcykgewogICAgICAgICAgICAgICAgcGFydHMucHVzaCh0ZXh0LnN1YnN0cmluZyhvZmZzZXQsIHBvcykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocmVwbGFjZUNoICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpLnJlcGxhY2UoL1teXHJcbl0vZywgcmVwbGFjZUNoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG9mZnNldCA9IF9zY2FubmVyLmdldFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoa2luZCAhPT0gMTcpOwogICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCIiKTsKICAgICAgfQogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gc3RyaXBDb21tZW50czsKICAgICAgZnVuY3Rpb24gZ2V0Tm9kZVR5cGUodmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICByZXR1cm4gIm51bWJlciI7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICByZXR1cm4gInN0cmluZyI7CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgICByZXR1cm4gIm51bGwiOwogICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgICAgICAgcmV0dXJuICJhcnJheSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJvYmplY3QiOwogICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBnZXROb2RlVHlwZTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvZWRpdC5qcwp2YXIgcmVxdWlyZV9lZGl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9lZGl0LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgcGFyc2VyXzEgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9mb3JtYXQiLCAiLi9wYXJzZXIiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5pc1dTID0gZXhwb3J0czMuYXBwbHlFZGl0ID0gZXhwb3J0czMuc2V0UHJvcGVydHkgPSBleHBvcnRzMy5yZW1vdmVQcm9wZXJ0eSA9IHZvaWQgMDsKICAgICAgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHkodGV4dCwgcGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBzZXRQcm9wZXJ0eSh0ZXh0LCBwYXRoLCB2b2lkIDAsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnJlbW92ZVByb3BlcnR5ID0gcmVtb3ZlUHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5KHRleHQsIG9yaWdpbmFsUGF0aCwgdmFsdWUsIG9wdGlvbnMpIHsKICAgICAgICBjb25zdCBwYXRoID0gb3JpZ2luYWxQYXRoLnNsaWNlKCk7CiAgICAgICAgY29uc3QgZXJyb3JzID0gW107CiAgICAgICAgY29uc3Qgcm9vdCA9ICgwLCBwYXJzZXJfMS5wYXJzZVRyZWUpKHRleHQsIGVycm9ycyk7CiAgICAgICAgbGV0IHBhcmVudCA9IHZvaWQgMDsKICAgICAgICBsZXQgbGFzdFNlZ21lbnQgPSB2b2lkIDA7CiAgICAgICAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCkgewogICAgICAgICAgbGFzdFNlZ21lbnQgPSBwYXRoLnBvcCgpOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocm9vdCwgcGF0aCk7CiAgICAgICAgICBpZiAocGFyZW50ID09PSB2b2lkIDAgJiYgdmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RTZWdtZW50ID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgIHZhbHVlID0geyBbbGFzdFNlZ21lbnRdOiB2YWx1ZSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgZGVsZXRlIGluIGVtcHR5IGRvY3VtZW50Iik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcoCiAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBvZmZzZXQ6IHJvb3QgPyByb290Lm9mZnNldCA6IDAsCiAgICAgICAgICAgICAgbGVuZ3RoOiByb290ID8gcm9vdC5sZW5ndGggOiAwLAogICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHZhbHVlKQogICAgICAgICAgICB9LAogICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICApOwogICAgICAgIH0gZWxzZSBpZiAocGFyZW50LnR5cGUgPT09ICJvYmplY3QiICYmIHR5cGVvZiBsYXN0U2VnbWVudCA9PT0gInN0cmluZyIgJiYgQXJyYXkuaXNBcnJheShwYXJlbnQuY2hpbGRyZW4pKSB7CiAgICAgICAgICBjb25zdCBleGlzdGluZyA9ICgwLCBwYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHBhcmVudCwgW2xhc3RTZWdtZW50XSk7CiAgICAgICAgICBpZiAoZXhpc3RpbmcgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGlmICghZXhpc3RpbmcucGFyZW50KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBU1QiKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlJbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKGV4aXN0aW5nLnBhcmVudCk7CiAgICAgICAgICAgICAgbGV0IHJlbW92ZUJlZ2luOwogICAgICAgICAgICAgIGxldCByZW1vdmVFbmQgPSBleGlzdGluZy5wYXJlbnQub2Zmc2V0ICsgZXhpc3RpbmcucGFyZW50Lmxlbmd0aDsKICAgICAgICAgICAgICBpZiAocHJvcGVydHlJbmRleCA+IDApIHsKICAgICAgICAgICAgICAgIGxldCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltwcm9wZXJ0eUluZGV4IC0gMV07CiAgICAgICAgICAgICAgICByZW1vdmVCZWdpbiA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmVtb3ZlQmVnaW4gPSBwYXJlbnQub2Zmc2V0ICsgMTsKICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHBhcmVudC5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgICAgcmVtb3ZlRW5kID0gbmV4dC5vZmZzZXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZygKICAgICAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIG9mZnNldDogcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogcmVtb3ZlRW5kIC0gcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKAogICAgICAgICAgICAgICAgdGV4dCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBleGlzdGluZy5vZmZzZXQsCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogZXhpc3RpbmcubGVuZ3RoLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeShsYXN0U2VnbWVudCl9OiAke0pTT04uc3RyaW5naWZ5KAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICl9YDsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBvcHRpb25zLmdldEluc2VydGlvbkluZGV4ID8gb3B0aW9ucy5nZXRJbnNlcnRpb25JbmRleCgKICAgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ubWFwKChwKSA9PiBwLmNoaWxkcmVuWzBdLnZhbHVlKQogICAgICAgICAgICApIDogcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5baW5kZXggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGVkaXQgPSB7IG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsIGxlbmd0aDogMCwgY29udGVudDogbmV3UHJvcGVydHkgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQudHlwZSA9PT0gImFycmF5IiAmJiB0eXBlb2YgbGFzdFNlZ21lbnQgPT09ICJudW1iZXIiICYmIEFycmF5LmlzQXJyYXkocGFyZW50LmNoaWxkcmVuKSkgewogICAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgIGlmIChpbnNlcnRJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwgbGVuZ3RoOiAwLCBjb250ZW50OiBuZXdQcm9wZXJ0eSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpOwogICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdm9pZCAwICYmIHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPj0gMCkgewogICAgICAgICAgICBjb25zdCByZW1vdmFsSW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4XTsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsCiAgICAgICAgICAgICAgICBsZW5ndGg6IHBhcmVudC5sZW5ndGggLSAyLAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxID09PSByZW1vdmFsSW5kZXgpIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4IC0gMV07CiAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICBsZXQgcGFyZW50RW5kT2Zmc2V0ID0gcGFyZW50Lm9mZnNldCArIHBhcmVudC5sZW5ndGg7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0LCBsZW5ndGg6IHBhcmVudEVuZE9mZnNldCAtIDIgLSBvZmZzZXQsIGNvbnRlbnQ6ICIiIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgbGVuZ3RoOiBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4ICsgMV0ub2Zmc2V0IC0gdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZyh0ZXh0LCBlZGl0LCBvcHRpb25zKTsKICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBsZXQgZWRpdDsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA+IGxhc3RTZWdtZW50KSB7CiAgICAgICAgICAgICAgY29uc3QgdG9Nb2RpZnkgPSBwYXJlbnQuY2hpbGRyZW5bbGFzdFNlZ21lbnRdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRvTW9kaWZ5Lm9mZnNldCwKICAgICAgICAgICAgICAgIGxlbmd0aDogdG9Nb2RpZnkubGVuZ3RoLAogICAgICAgICAgICAgICAgY29udGVudDogbmV3UHJvcGVydHkKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgfHwgbGFzdFNlZ21lbnQgPT09IDApIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgPyBuZXdQcm9wZXJ0eSA6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGxhc3RTZWdtZW50ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA/IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggOiBsYXN0U2VnbWVudDsKICAgICAgICAgICAgICBjb25zdCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltpbmRleCAtIDFdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aCwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIsIiArIG5ld1Byb3BlcnR5CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYENhbiBub3QgJHt2YWx1ZSA9PT0gdm9pZCAwID8gInJlbW92ZSIgOiBvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gPyAiaW5zZXJ0IiA6ICJtb2RpZnkifSBBcnJheSBpbmRleCAke2luc2VydEluZGV4fSBhcyBsZW5ndGggaXMgbm90IHN1ZmZpY2llbnRgCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbiBub3QgYWRkICR7dHlwZW9mIGxhc3RTZWdtZW50ICE9PSAibnVtYmVyIiA/ICJpbmRleCIgOiAicHJvcGVydHkifSB0byBwYXJlbnQgb2YgdHlwZSAke3BhcmVudC50eXBlfWAKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGV4cG9ydHMzLnNldFByb3BlcnR5ID0gc2V0UHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpIHsKICAgICAgICBpZiAoIW9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMpIHsKICAgICAgICAgIHJldHVybiBbZWRpdF07CiAgICAgICAgfQogICAgICAgIGxldCBuZXdUZXh0ID0gYXBwbHlFZGl0KHRleHQsIGVkaXQpOwogICAgICAgIGxldCBiZWdpbiA9IGVkaXQub2Zmc2V0OwogICAgICAgIGxldCBlbmQgPSBlZGl0Lm9mZnNldCArIGVkaXQuY29udGVudC5sZW5ndGg7CiAgICAgICAgaWYgKGVkaXQubGVuZ3RoID09PSAwIHx8IGVkaXQuY29udGVudC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHdoaWxlIChiZWdpbiA+IDAgJiYgISgwLCBmb3JtYXRfMS5pc0VPTCkobmV3VGV4dCwgYmVnaW4gLSAxKSkgewogICAgICAgICAgICBiZWdpbi0tOwogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGVuZCA8IG5ld1RleHQubGVuZ3RoICYmICEoMCwgZm9ybWF0XzEuaXNFT0wpKG5ld1RleHQsIGVuZCkpIHsKICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRzID0gKDAsIGZvcm1hdF8xLmZvcm1hdCkoCiAgICAgICAgICBuZXdUZXh0LAogICAgICAgICAgeyBvZmZzZXQ6IGJlZ2luLCBsZW5ndGg6IGVuZCAtIGJlZ2luIH0sCiAgICAgICAgICB7IC4uLm9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMsIGtlZXBMaW5lczogZmFsc2UgfQogICAgICAgICk7CiAgICAgICAgZm9yIChsZXQgaSA9IGVkaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICBjb25zdCBlZGl0MiA9IGVkaXRzW2ldOwogICAgICAgICAgbmV3VGV4dCA9IGFwcGx5RWRpdChuZXdUZXh0LCBlZGl0Mik7CiAgICAgICAgICBiZWdpbiA9IE1hdGgubWluKGJlZ2luLCBlZGl0Mi5vZmZzZXQpOwogICAgICAgICAgZW5kID0gTWF0aC5tYXgoZW5kLCBlZGl0Mi5vZmZzZXQgKyBlZGl0Mi5sZW5ndGgpOwogICAgICAgICAgZW5kICs9IGVkaXQyLmNvbnRlbnQubGVuZ3RoIC0gZWRpdDIubGVuZ3RoOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0TGVuZ3RoID0gdGV4dC5sZW5ndGggLSAobmV3VGV4dC5sZW5ndGggLSBlbmQpIC0gYmVnaW47CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgb2Zmc2V0OiBiZWdpbiwKICAgICAgICAgICAgbGVuZ3RoOiBlZGl0TGVuZ3RoLAogICAgICAgICAgICBjb250ZW50OiBuZXdUZXh0LnN1YnN0cmluZyhiZWdpbiwgZW5kKQogICAgICAgICAgfQogICAgICAgIF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXBwbHlFZGl0KHRleHQsIGVkaXQpIHsKICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgZWRpdC5vZmZzZXQpICsgZWRpdC5jb250ZW50ICsgdGV4dC5zdWJzdHJpbmcoZWRpdC5vZmZzZXQgKyBlZGl0Lmxlbmd0aCk7CiAgICAgIH0KICAgICAgZXhwb3J0czMuYXBwbHlFZGl0ID0gYXBwbHlFZGl0OwogICAgICBmdW5jdGlvbiBpc1dTKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiAJIi5pbmRleE9mKHRleHQuY2hhckF0KG9mZnNldCkpICE9PSAtMTsKICAgICAgfQogICAgICBleHBvcnRzMy5pc1dTID0gaXNXUzsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMKdmFyIHJlcXVpcmVfbWFpbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgZm9ybWF0dGVyID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgZWRpdCA9IHJlcXVpcmVfZWRpdCgpOwogICAgdmFyIHNjYW5uZXIgPSByZXF1aXJlX3NjYW5uZXIoKTsKICAgIHZhciBwYXJzZXIgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWwogICAgICAgICAgInJlcXVpcmUiLAogICAgICAgICAgImV4cG9ydHMiLAogICAgICAgICAgIi4vaW1wbC9mb3JtYXQiLAogICAgICAgICAgIi4vaW1wbC9lZGl0IiwKICAgICAgICAgICIuL2ltcGwvc2Nhbm5lciIsCiAgICAgICAgICAiLi9pbXBsL3BhcnNlciIKICAgICAgICBdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLmFwcGx5RWRpdHMgPSBleHBvcnRzMy5tb2RpZnkgPSBleHBvcnRzMy5mb3JtYXQgPSBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBleHBvcnRzMy5wYXJzZVRyZWUgPSBleHBvcnRzMy5wYXJzZSA9IGV4cG9ydHMzLmdldExvY2F0aW9uID0gZXhwb3J0czMuU3ludGF4S2luZCA9IGV4cG9ydHMzLlNjYW5FcnJvciA9IGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSB2b2lkIDA7CiAgICAgIGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSBzY2FubmVyLmNyZWF0ZVNjYW5uZXI7CiAgICAgIHZhciBTY2FuRXJyb3I7CiAgICAgIChmdW5jdGlvbihTY2FuRXJyb3IyKSB7CiAgICAgICAgU2NhbkVycm9yMltTY2FuRXJyb3IyWyJOb25lIl0gPSAwXSA9ICJOb25lIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiXSA9IDFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mU3RyaW5nIl0gPSAyXSA9ICJVbmV4cGVjdGVkRW5kT2ZTdHJpbmciOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAzXSA9ICJVbmV4cGVjdGVkRW5kT2ZOdW1iZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZFVuaWNvZGUiXSA9IDRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiXSA9IDVdID0gIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZENoYXJhY3RlciJdID0gNl0gPSAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgIH0pKFNjYW5FcnJvciB8fCAoZXhwb3J0czMuU2NhbkVycm9yID0gU2NhbkVycm9yID0ge30pKTsKICAgICAgdmFyIFN5bnRheEtpbmQ7CiAgICAgIChmdW5jdGlvbihTeW50YXhLaW5kMikgewogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJPcGVuQnJhY2VUb2tlbiJdID0gMV0gPSAiT3BlbkJyYWNlVG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNlVG9rZW4iXSA9IDJdID0gIkNsb3NlQnJhY2VUb2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk9wZW5CcmFja2V0VG9rZW4iXSA9IDNdID0gIk9wZW5CcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNrZXRUb2tlbiJdID0gNF0gPSAiQ2xvc2VCcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDb21tYVRva2VuIl0gPSA1XSA9ICJDb21tYVRva2VuIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiQ29sb25Ub2tlbiJdID0gNl0gPSAiQ29sb25Ub2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk51bGxLZXl3b3JkIl0gPSA3XSA9ICJOdWxsS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRydWVLZXl3b3JkIl0gPSA4XSA9ICJUcnVlS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkZhbHNlS2V5d29yZCJdID0gOV0gPSAiRmFsc2VLZXl3b3JkIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiU3RyaW5nTGl0ZXJhbCJdID0gMTBdID0gIlN0cmluZ0xpdGVyYWwiOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJOdW1lcmljTGl0ZXJhbCJdID0gMTFdID0gIk51bWVyaWNMaXRlcmFsIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiTGluZUNvbW1lbnRUcml2aWEiXSA9IDEyXSA9ICJMaW5lQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkJsb2NrQ29tbWVudFRyaXZpYSJdID0gMTNdID0gIkJsb2NrQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkxpbmVCcmVha1RyaXZpYSJdID0gMTRdID0gIkxpbmVCcmVha1RyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRyaXZpYSJdID0gMTVdID0gIlRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlVua25vd24iXSA9IDE2XSA9ICJVbmtub3duIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiRU9GIl0gPSAxN10gPSAiRU9GIjsKICAgICAgfSkoU3ludGF4S2luZCB8fCAoZXhwb3J0czMuU3ludGF4S2luZCA9IFN5bnRheEtpbmQgPSB7fSkpOwogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IHBhcnNlci5nZXRMb2NhdGlvbjsKICAgICAgZXhwb3J0czMucGFyc2UgPSBwYXJzZXIucGFyc2U7CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlci5wYXJzZVRyZWU7CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IHBhcnNlci5maW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBwYXJzZXIuZmluZE5vZGVBdE9mZnNldDsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVBhdGggPSBwYXJzZXIuZ2V0Tm9kZVBhdGg7CiAgICAgIGV4cG9ydHMzLmdldE5vZGVWYWx1ZSA9IHBhcnNlci5nZXROb2RlVmFsdWU7CiAgICAgIGV4cG9ydHMzLnZpc2l0ID0gcGFyc2VyLnZpc2l0OwogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gcGFyc2VyLnN0cmlwQ29tbWVudHM7CiAgICAgIHZhciBQYXJzZUVycm9yQ29kZTsKICAgICAgKGZ1bmN0aW9uKFBhcnNlRXJyb3JDb2RlMikgewogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWRTeW1ib2wiXSA9IDFdID0gIkludmFsaWRTeW1ib2wiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWROdW1iZXJGb3JtYXQiXSA9IDJdID0gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlByb3BlcnR5TmFtZUV4cGVjdGVkIl0gPSAzXSA9ICJQcm9wZXJ0eU5hbWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVmFsdWVFeHBlY3RlZCJdID0gNF0gPSAiVmFsdWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29sb25FeHBlY3RlZCJdID0gNV0gPSAiQ29sb25FeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29tbWFFeHBlY3RlZCJdID0gNl0gPSAiQ29tbWFFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ2xvc2VCcmFjZUV4cGVjdGVkIl0gPSA3XSA9ICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkNsb3NlQnJhY2tldEV4cGVjdGVkIl0gPSA4XSA9ICJDbG9zZUJyYWNrZXRFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiRW5kT2ZGaWxlRXhwZWN0ZWQiXSA9IDldID0gIkVuZE9mRmlsZUV4cGVjdGVkIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkQ29tbWVudFRva2VuIl0gPSAxMF0gPSAiSW52YWxpZENvbW1lbnRUb2tlbiI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mQ29tbWVudCJdID0gMTFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyJdID0gMTJdID0gIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAxM10gPSAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkVW5pY29kZSJdID0gMTRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIl0gPSAxNV0gPSAiSW52YWxpZEVzY2FwZUNoYXJhY3RlciI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiSW52YWxpZENoYXJhY3RlciJdID0gMTZdID0gIkludmFsaWRDaGFyYWN0ZXIiOwogICAgICB9KShQYXJzZUVycm9yQ29kZSB8fCAoZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBQYXJzZUVycm9yQ29kZSA9IHt9KSk7CiAgICAgIGZ1bmN0aW9uIHByaW50UGFyc2VFcnJvckNvZGUoY29kZSkgewogICAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRTeW1ib2wiOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZXR1cm4gIlByb3BlcnR5TmFtZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuICJWYWx1ZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcmV0dXJuICJDb2xvbkV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgcmV0dXJuICJDb21tYUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgcmV0dXJuICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gIkNsb3NlQnJhY2tldEV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgcmV0dXJuICJFbmRPZkZpbGVFeHBlY3RlZCI7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRDb21tZW50VG9rZW4iOwogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgcmV0dXJuICJVbmV4cGVjdGVkRW5kT2ZDb21tZW50IjsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mU3RyaW5nIjsKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZFVuaWNvZGUiOwogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIjsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAiPHVua25vd24gUGFyc2VFcnJvckNvZGU+IjsKICAgICAgfQogICAgICBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gcHJpbnRQYXJzZUVycm9yQ29kZTsKICAgICAgZnVuY3Rpb24gZm9ybWF0KGRvY3VtZW50VGV4dCwgcmFuZ2UsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5mb3JtYXQgPSBmb3JtYXQ7CiAgICAgIGZ1bmN0aW9uIG1vZGlmeSh0ZXh0LCBwYXRoLCB2YWx1ZSwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBlZGl0LnNldFByb3BlcnR5KHRleHQsIHBhdGgsIHZhbHVlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5tb2RpZnkgPSBtb2RpZnk7CiAgICAgIGZ1bmN0aW9uIGFwcGx5RWRpdHModGV4dCwgZWRpdHMpIHsKICAgICAgICBsZXQgc29ydGVkRWRpdHMgPSBlZGl0cy5zbGljZSgwKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICBjb25zdCBkaWZmID0gYS5vZmZzZXQgLSBiLm9mZnNldDsKICAgICAgICAgIGlmIChkaWZmID09PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCAtIGIubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGRpZmY7CiAgICAgICAgfSk7CiAgICAgICAgbGV0IGxhc3RNb2RpZmllZE9mZnNldCA9IHRleHQubGVuZ3RoOwogICAgICAgIGZvciAobGV0IGkgPSBzb3J0ZWRFZGl0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgbGV0IGUgPSBzb3J0ZWRFZGl0c1tpXTsKICAgICAgICAgIGlmIChlLm9mZnNldCArIGUubGVuZ3RoIDw9IGxhc3RNb2RpZmllZE9mZnNldCkgewogICAgICAgICAgICB0ZXh0ID0gZWRpdC5hcHBseUVkaXQodGV4dCwgZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk92ZXJsYXBwaW5nIGVkaXQiKTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNb2RpZmllZE9mZnNldCA9IGUub2Zmc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGV4dDsKICAgICAgfQogICAgICBleHBvcnRzMy5hcHBseUVkaXRzID0gYXBwbHlFZGl0czsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanMKdmFyIHJlcXVpcmVfbWV0YWRhdGEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi9tZXRhZGF0YS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZU1ldGFkYXRhID0gZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IHZvaWQgMDsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IFN5bWJvbC5mb3IoIkBhbmd1bGFyL2NvcmU6d29ya3NwYWNlLWpzb24iKTsKICAgIGZ1bmN0aW9uIGVzY2FwZUtleShrZXkpIHsKICAgICAgcmV0dXJuIGtleS5yZXBsYWNlKCJ+IiwgIn4wIikucmVwbGFjZSgiLyIsICJ+MSIpOwogICAgfQogICAgdmFyIEpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IGNsYXNzIHsKICAgICAgZmlsZVBhdGg7CiAgICAgIGFzdDsKICAgICAgcmF3OwogICAgICBjaGFuZ2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgaGFzTGVnYWN5VGFyZ2V0c05hbWUgPSB0cnVlOwogICAgICBjb25zdHJ1Y3RvcihmaWxlUGF0aCwgYXN0LCByYXcpIHsKICAgICAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7CiAgICAgICAgdGhpcy5hc3QgPSBhc3Q7CiAgICAgICAgdGhpcy5yYXcgPSByYXc7CiAgICAgIH0KICAgICAgZ2V0IGhhc0NoYW5nZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplID4gMDsKICAgICAgfQogICAgICBnZXQgY2hhbmdlQ291bnQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplOwogICAgICB9CiAgICAgIGdldE5vZGVWYWx1ZUZyb21Bc3QocGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSAoMCwganNvbmNfcGFyc2VyXzEuZmluZE5vZGVBdExvY2F0aW9uKSh0aGlzLmFzdCwgcGF0aCk7CiAgICAgICAgcmV0dXJuIG5vZGUgJiYgKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkobm9kZSk7CiAgICAgIH0KICAgICAgZmluZENoYW5nZXNGb3JQYXRoKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VzLmdldChwYXRoKTsKICAgICAgfQogICAgICBhZGRDaGFuZ2UoanNvblBhdGgsIHZhbHVlLCB0eXBlMikgewogICAgICAgIGxldCBjdXJyZW50UGF0aCA9ICIiOwogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBqc29uUGF0aC5sZW5ndGggLSAxOyBpbmRleCsrKSB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IGN1cnJlbnRQYXRoICsgIi8iICsgZXNjYXBlS2V5KGpzb25QYXRoW2luZGV4XSk7CiAgICAgICAgICBpZiAodGhpcy5jaGFuZ2VzLmhhcyhjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoS2V5ID0gIi8iICsganNvblBhdGgubWFwKChrKSA9PiBlc2NhcGVLZXkoaykpLmpvaW4oIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmNoYW5nZXMua2V5cygpKSB7CiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgocGF0aEtleSArICIvIikpIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmRlbGV0ZShrZXkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLmNoYW5nZXMuc2V0KHBhdGhLZXksIHsganNvblBhdGgsIHR5cGU6IHR5cGUyLCB2YWx1ZSB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IEpzb25Xb3Jrc3BhY2VNZXRhZGF0YTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcwp2YXIgcmVxdWlyZV91dGlsaXRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlVmlydHVhbEFzdE9iamVjdCA9IGNyZWF0ZVZpcnR1YWxBc3RPYmplY3Q7CiAgICB2YXIganNvbl8xID0gcmVxdWlyZV9qc29uKCk7CiAgICBmdW5jdGlvbiBjcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KHJvb3QsIG9wdGlvbnMgPSB7fSkgewogICAgICBjb25zdCByZXBvcnRlciA9IChwYXRoLCB0YXJnZXQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT4gewogICAgICAgIGlmICghb3B0aW9ucy5saXN0ZW5lcikgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlIHx8IEpTT04uc3RyaW5naWZ5KG9sZFZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3VmFsdWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aC5zbGljZSgwLCAtMSksIHRhcmdldCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aCwgbmV3VmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIGNyZWF0ZShBcnJheS5pc0FycmF5KHJvb3QpID8gWy4uLnJvb3RdIDogeyAuLi5yb290IH0sIFtdLCByZXBvcnRlciwgbmV3IFNldChvcHRpb25zLmV4Y2x1ZGUpLCBvcHRpb25zLmluY2x1ZGU/Lmxlbmd0aCA/IG5ldyBTZXQob3B0aW9ucy5pbmNsdWRlKSA6IHZvaWQgMCk7CiAgICB9CiAgICBmdW5jdGlvbiBjcmVhdGUob2JqLCBwYXRoLCByZXBvcnRlciwgZXhjbHVkZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLCBpbmNsdWRlZCkgewogICAgICByZXR1cm4gbmV3IFByb3h5KG9iaiwgewogICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcCk7CiAgICAgICAgfSwKICAgICAgICBoYXModGFyZ2V0LCBwKSB7CiAgICAgICAgICBpZiAodHlwZW9mIHAgPT09ICJzeW1ib2wiIHx8IGV4Y2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwKTsKICAgICAgICB9LAogICAgICAgIGdldCh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIGpzb25fMS5pc0pzb25PYmplY3QpKHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gY3JlYXRlKHZhbHVlLCBbLi4ucGF0aCwgcF0sIHJlcG9ydGVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNldCh0YXJnZXQsIHAsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoZXhjbHVkZWQuaGFzKHApIHx8IGluY2x1ZGVkICYmICFpbmNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlUHJvcGVydHk/Lih0YXJnZXQsIHApID8/IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcCk7CiAgICAgICAgICBpZiAoUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSkpIHsKICAgICAgICAgICAgcmVwb3J0ZXIoWy4uLnBhdGgsIHBdLCB0YXJnZXQsIGV4aXN0aW5nVmFsdWUsIHZhbHVlKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSwKICAgICAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZSh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwKSkgewogICAgICAgICAgICByZXBvcnRlcihbLi4ucGF0aCwgcF0sIHRhcmdldCwgZXhpc3RpbmdWYWx1ZSwgdm9pZCAwKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9LAogICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgcCwgYXR0cmlidXRlcykgewogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHAsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0sCiAgICAgICAgb3duS2V5cyh0YXJnZXQpIHsKICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KS5maWx0ZXIoKHApID0+ICFleGNsdWRlZC5oYXMocCkgJiYgKCFpbmNsdWRlZCB8fCBpbmNsdWRlZC5oYXMocCkpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcHJvcGVydHkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc0Zpbml0ZSgrcHJvcGVydHkpKSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFsrcHJvcGVydHldOwogICAgICB9CiAgICAgIGlmICh0YXJnZXQgJiYgcHJvcGVydHkgaW4gdGFyZ2V0KSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CiAgICAgIH0KICAgICAgcmV0dXJuIHZvaWQgMDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcwp2YXIgcmVxdWlyZV9yZWFkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVhZEpzb25Xb3Jrc3BhY2UgPSByZWFkSnNvbldvcmtzcGFjZTsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgZGVmaW5pdGlvbnNfMSA9IHJlcXVpcmVfZGVmaW5pdGlvbnMoKTsKICAgIHZhciBtZXRhZGF0YV8xID0gcmVxdWlyZV9tZXRhZGF0YTIoKTsKICAgIHZhciB1dGlsaXRpZXNfMSA9IHJlcXVpcmVfdXRpbGl0aWVzKCk7CiAgICB2YXIgQU5HVUxBUl9XT1JLU1BBQ0VfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAibmV3UHJvamVjdFJvb3QiLCAic2NoZW1hdGljcyJdKTsKICAgIHZhciBBTkdVTEFSX1BST0pFQ1RfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAic2NoZW1hdGljcyIsICJwcm9qZWN0VHlwZSIsICJpMThuIl0pOwogICAgYXN5bmMgZnVuY3Rpb24gcmVhZEpzb25Xb3Jrc3BhY2UocGF0aCwgaG9zdCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGhvc3QucmVhZEZpbGUocGF0aCk7CiAgICAgIGlmIChyYXcgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHJlYWQgd29ya3NwYWNlIGZpbGUuIik7CiAgICAgIH0KICAgICAgY29uc3QgYXN0ID0gKDAsIGpzb25jX3BhcnNlcl8xLnBhcnNlVHJlZSkocmF3LCB2b2lkIDAsIHsgYWxsb3dUcmFpbGluZ0NvbW1hOiB0cnVlLCBkaXNhbGxvd0NvbW1lbnRzOiBmYWxzZSB9KTsKICAgICAgaWYgKGFzdD8udHlwZSAhPT0gIm9iamVjdCIgfHwgIWFzdC5jaGlsZHJlbikgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCB3b3Jrc3BhY2UgZmlsZSAtIGV4cGVjdGVkIEpTT04gb2JqZWN0LiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb25Ob2RlID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikoYXN0LCBbInZlcnNpb24iXSk7CiAgICAgIGlmICghdmVyc2lvbk5vZGUpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZm9ybWF0IC0gdmVyc2lvbiBzcGVjaWZpZXIgbm90IGZvdW5kLiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uTm9kZS52YWx1ZTsKICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZm9ybWF0IHZlcnNpb24gZGV0ZWN0ZWQgLSBFeHBlY3RlZDpbIDEgXSBGb3VuZDogWyAke3ZlcnNpb259IF1gKTsKICAgICAgfQogICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgIGhvc3QsCiAgICAgICAgbWV0YWRhdGE6IG5ldyBtZXRhZGF0YV8xLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YShwYXRoLCBhc3QsIHJhdyksCiAgICAgICAgdHJhY2tDaGFuZ2VzOiB0cnVlLAogICAgICAgIHVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICAgICAuLi5BTkdVTEFSX1dPUktTUEFDRV9FWFRFTlNJT05TLAogICAgICAgICAgLi4ub3B0aW9ucy5hbGxvd2VkV29ya3NwYWNlRXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIHVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9uczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWwogICAgICAgICAgLi4uQU5HVUxBUl9QUk9KRUNUX0VYVEVOU0lPTlMsCiAgICAgICAgICAuLi5vcHRpb25zLmFsbG93ZWRQcm9qZWN0RXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIGVycm9yKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgfSwKICAgICAgICB3YXJuKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7CiAgICAgICAgfQogICAgICB9OwogICAgICBjb25zdCB3b3Jrc3BhY2UgPSBwYXJzZVdvcmtzcGFjZShhc3QsIGNvbnRleHQpOwogICAgICByZXR1cm4gd29ya3NwYWNlOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VXb3Jrc3BhY2Uod29ya3NwYWNlTm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgcHJvamVjdHM7CiAgICAgIGxldCBleHRlbnNpb25zOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICB9CiAgICAgIGNvbnN0IHdvcmtzcGFjZU5vZGVWYWx1ZSA9ICgwLCBqc29uY19wYXJzZXJfMS5nZXROb2RlVmFsdWUpKHdvcmtzcGFjZU5vZGUpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod29ya3NwYWNlTm9kZVZhbHVlKSkgewogICAgICAgIGlmIChuYW1lID09PSAiJHNjaGVtYSIgfHwgbmFtZSA9PT0gInZlcnNpb24iKSB7CiAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAicHJvamVjdHMiKSB7CiAgICAgICAgICBjb25zdCBub2RlcyA9ICgwLCBqc29uY19wYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHdvcmtzcGFjZU5vZGUsIFsicHJvamVjdHMiXSk7CiAgICAgICAgICBpZiAoISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkodmFsdWUpIHx8ICFub2RlcykgewogICAgICAgICAgICBjb250ZXh0LmVycm9yKCdJbnZhbGlkICJwcm9qZWN0cyIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC4nLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHJvamVjdHMgPSBwYXJzZVByb2plY3RzT2JqZWN0KG5vZGVzLCBjb250ZXh0KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zLmhhcyhuYW1lKSAmJiAhL15bYS16XXsxLDN9LS4qLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICAgIGNvbnRleHQud2FybihgV29ya3NwYWNlIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkgZm91bmQuYCwgbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXh0ZW5zaW9ucykgewogICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSkgPT4gewogICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgbmFtZV0sIG5ld1ZhbHVlLCAicHJvamVjdCIpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgY29uc3QgcHJvamVjdENvbGxlY3Rpb24gPSBuZXcgZGVmaW5pdGlvbnNfMS5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24ocHJvamVjdHMsIGNvbGxlY3Rpb25MaXN0ZW5lcik7CiAgICAgIHJldHVybiB7CiAgICAgICAgW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF06IGpzb25NZXRhZGF0YSwKICAgICAgICBwcm9qZWN0czogcHJvamVjdENvbGxlY3Rpb24sCiAgICAgICAgLy8gSWYgbm90IHRyYWNraW5nIGNoYW5nZXMgdGhlIGBleHRlbnNpb25zYCB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhlIHBhcnNlZAogICAgICAgIC8vIHZhbHVlcy4gIE90aGVyd2lzZSB0aGUgZXh0ZW5zaW9ucyBhcmUgdHJhY2tlZCB2aWEgYSB2aXJ0dWFsIEFTVCBvYmplY3QuCiAgICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyA/PyAoMCwgdXRpbGl0aWVzXzEuY3JlYXRlVmlydHVhbEFzdE9iamVjdCkod29ya3NwYWNlTm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbIiRzY2hlbWEiLCAidmVyc2lvbiIsICJwcm9qZWN0cyJdLAogICAgICAgICAgbGlzdGVuZXIocGF0aCwgdmFsdWUpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShwYXRoLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlUHJvamVjdHNPYmplY3QocHJvamVjdHNOb2RlLCBjb250ZXh0KSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcygoMCwganNvbmNfcGFyc2VyXzEuZ2V0Tm9kZVZhbHVlKShwcm9qZWN0c05vZGUpKSkgewogICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdHNOb2RlLCBbbmFtZV0pOwogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICBjb250ZXh0Lndhcm4oIlNraXBwaW5nIGludmFsaWQgcHJvamVjdCB2YWx1ZTsgZXhwZWN0ZWQgYW4gb2JqZWN0LiIsIHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBwcm9qZWN0c1tuYW1lXSA9IHBhcnNlUHJvamVjdChuYW1lLCBub2RlcywgY29udGV4dCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHByb2plY3RzOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0Tm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgdGFyZ2V0czsKICAgICAgbGV0IGhhc1RhcmdldHMgPSBmYWxzZTsKICAgICAgbGV0IGV4dGVuc2lvbnM7CiAgICAgIGxldCBwcm9wZXJ0aWVzOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIHByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgfQogICAgICBjb25zdCBwcm9qZWN0Tm9kZVZhbHVlID0gKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkocHJvamVjdE5vZGUpOwogICAgICBpZiAoISgicm9vdCIgaW4gcHJvamVjdE5vZGVWYWx1ZSkpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2plY3QgIiR7cHJvamVjdE5hbWV9IiBpcyBtaXNzaW5nIGEgcmVxdWlyZWQgcHJvcGVydHkgInJvb3QiLmApOwogICAgICB9CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9qZWN0Tm9kZVZhbHVlKSkgewogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICBjYXNlICJhcmNoaXRlY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdE5vZGUsIFtuYW1lXSk7CiAgICAgICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICAgICAgY29udGV4dC5lcnJvcihgSW52YWxpZCAiJHtuYW1lfSIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC5gLCB2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGFzVGFyZ2V0cyA9IHRydWU7CiAgICAgICAgICAgIHRhcmdldHMgPSBwYXJzZVRhcmdldHNPYmplY3QocHJvamVjdE5hbWUsIG5vZGVzLCBjb250ZXh0KTsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmhhc0xlZ2FjeVRhcmdldHNOYW1lID0gbmFtZSA9PT0gImFyY2hpdGVjdCI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgY2FzZSAic291cmNlUm9vdCI6CiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgY29udGV4dC53YXJuKGBQcm9qZWN0IHByb3BlcnR5ICIke25hbWV9IiBzaG91bGQgYmUgYSBzdHJpbmcuYCwgdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9ucy5oYXMobmFtZSkgJiYgIS9eW2Etel17MSwzfS0uKi8udGVzdChuYW1lKSkgewogICAgICAgICAgICAgIGNvbnRleHQud2FybihgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nIGNvbnRhaW5zIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkuYCwgbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKICAgICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSwgY29sbGVjdGlvbikgPT4gewogICAgICAgICAgaWYgKGhhc1RhcmdldHMpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgcHJvamVjdE5hbWUsICJ0YXJnZXRzIiwgbmFtZV0sIG5ld1ZhbHVlLCAidGFyZ2V0Iik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgInRhcmdldHMiXSwgY29sbGVjdGlvbiwgInRhcmdldGNvbGxlY3Rpb24iKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0IGJhc2UgPSB7CiAgICAgICAgdGFyZ2V0czogbmV3IGRlZmluaXRpb25zXzEuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24odGFyZ2V0cywgY29sbGVjdGlvbkxpc3RlbmVyKSwKICAgICAgICAvLyBJZiBub3QgdHJhY2tpbmcgY2hhbmdlcyB0aGUgYGV4dGVuc2lvbnNgIHZhcmlhYmxlIHdpbGwgY29udGFpbiB0aGUgcGFyc2VkCiAgICAgICAgLy8gdmFsdWVzLiAgT3RoZXJ3aXNlIHRoZSBleHRlbnNpb25zIGFyZSB0cmFja2VkIHZpYSBhIHZpcnR1YWwgQVNUIG9iamVjdC4KICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbImFyY2hpdGVjdCIsICJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgInRhcmdldHMiXSwKICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAuLi5wYXRoXSwgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH07CiAgICAgIGNvbnN0IGJhc2VLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhiYXNlKSk7CiAgICAgIGNvbnN0IHByb2plY3QgPSBwcm9wZXJ0aWVzID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgaW5jbHVkZTogWyJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgLi4uYmFzZUtleXNdLAogICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoIWJhc2VLZXlzLmhhcyhwYXRoWzBdKSkgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgLi4ucGF0aF0sIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9qZWN0LCBiYXNlKTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlVGFyZ2V0c09iamVjdChwcm9qZWN0TmFtZSwgdGFyZ2V0c05vZGUsIGNvbnRleHQpIHsKICAgICAgY29uc3QganNvbk1ldGFkYXRhID0gY29udGV4dC5tZXRhZGF0YTsKICAgICAgY29uc3QgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkodGFyZ2V0c05vZGUpKSkgewogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIGNvbnRleHQud2FybigiU2tpcHBpbmcgaW52YWxpZCB0YXJnZXQgdmFsdWU7IGV4cGVjdGVkIGFuIG9iamVjdC4iLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgICB0YXJnZXRzW25hbWVdID0gKDAsIHV0aWxpdGllc18xLmNyZWF0ZVZpcnR1YWxBc3RPYmplY3QpKHZhbHVlLCB7CiAgICAgICAgICAgIGluY2x1ZGU6IFsiYnVpbGRlciIsICJvcHRpb25zIiwgImNvbmZpZ3VyYXRpb25zIiwgImRlZmF1bHRDb25maWd1cmF0aW9uIl0sCiAgICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlMikgewogICAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAidGFyZ2V0cyIsIG5hbWUsIC4uLnBhdGhdLCB2YWx1ZTIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFyZ2V0c1tuYW1lXSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdGFyZ2V0czsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcwp2YXIgcmVxdWlyZV93cml0ZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVKc29uV29ya3NwYWNlID0gd3JpdGVKc29uV29ya3NwYWNlOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgbm9kZV9vc18xID0gcmVxdWlyZSgibm9kZTpvcyIpOwogICAgdmFyIG1ldGFkYXRhXzEgPSByZXF1aXJlX21ldGFkYXRhMigpOwogICAgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgaG9zdCwgcGF0aCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IG1ldGFkYXRhID0gd29ya3NwYWNlW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF07CiAgICAgIGlmIChtZXRhZGF0YSkgewogICAgICAgIGlmICghbWV0YWRhdGEuaGFzQ2hhbmdlcykgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBkYXRhID0gdXBkYXRlSnNvbldvcmtzcGFjZShtZXRhZGF0YSk7CiAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGVGaWxlKHBhdGggPz8gbWV0YWRhdGEuZmlsZVBhdGgsIGRhdGEpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICghcGF0aCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwYXRoIG9wdGlvbiBpcyByZXF1aXJlZCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBvYmogPSBjb252ZXJ0SnNvbldvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMuc2NoZW1hKTsKICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTsKICAgICAgICByZXR1cm4gaG9zdC53cml0ZUZpbGUocGF0aCwgZGF0YSk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgc2NoZW1hMikgewogICAgICBjb25zdCBvYmogPSB7CiAgICAgICAgJHNjaGVtYTogc2NoZW1hMiB8fCAiLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24iLAogICAgICAgIHZlcnNpb246IDEsCiAgICAgICAgLi4ud29ya3NwYWNlLmV4dGVuc2lvbnMsCiAgICAgICAgLi4uaXNFbXB0eSh3b3Jrc3BhY2UucHJvamVjdHMpID8ge30gOiB7IHByb2plY3RzOiBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHdvcmtzcGFjZS5wcm9qZWN0cykgfQogICAgICB9OwogICAgICByZXR1cm4gb2JqOwogICAgfQogICAgZnVuY3Rpb24gY29udmVydEpzb25Qcm9qZWN0Q29sbGVjdGlvbihjb2xsZWN0aW9uKSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCBwcm9qZWN0XSBvZiBjb2xsZWN0aW9uKSB7CiAgICAgICAgcHJvamVjdHNbcHJvamVjdE5hbWVdID0gY29udmVydEpzb25Qcm9qZWN0KHByb2plY3QpOwogICAgICB9CiAgICAgIHJldHVybiBwcm9qZWN0czsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uUHJvamVjdChwcm9qZWN0KSB7CiAgICAgIGxldCB0YXJnZXRzOwogICAgICBpZiAocHJvamVjdC50YXJnZXRzLnNpemUgPiAwKSB7CiAgICAgICAgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIGZvciAoY29uc3QgW3RhcmdldE5hbWUsIHRhcmdldF0gb2YgcHJvamVjdC50YXJnZXRzKSB7CiAgICAgICAgICB0YXJnZXRzW3RhcmdldE5hbWVdID0gY29udmVydEpzb25UYXJnZXQodGFyZ2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3Qgb2JqID0gewogICAgICAgIC4uLnByb2plY3QuZXh0ZW5zaW9ucywKICAgICAgICByb290OiBwcm9qZWN0LnJvb3QsCiAgICAgICAgLi4ucHJvamVjdC5zb3VyY2VSb290ID09PSB2b2lkIDAgPyB7fSA6IHsgc291cmNlUm9vdDogcHJvamVjdC5zb3VyY2VSb290IH0sCiAgICAgICAgLi4ucHJvamVjdC5wcmVmaXggPT09IHZvaWQgMCA/IHt9IDogeyBwcmVmaXg6IHByb2plY3QucHJlZml4IH0sCiAgICAgICAgLi4udGFyZ2V0cyA9PT0gdm9pZCAwID8ge30gOiB7IGFyY2hpdGVjdDogdGFyZ2V0cyB9CiAgICAgIH07CiAgICAgIHJldHVybiBvYmo7CiAgICB9CiAgICBmdW5jdGlvbiBpc0VtcHR5KG9iaikgewogICAgICByZXR1cm4gb2JqID09PSB2b2lkIDAgfHwgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBidWlsZGVyOiB0YXJnZXQuYnVpbGRlciwKICAgICAgICAuLi5pc0VtcHR5KHRhcmdldC5vcHRpb25zKSA/IHt9IDogeyBvcHRpb25zOiB0YXJnZXQub3B0aW9ucyB9LAogICAgICAgIC4uLmlzRW1wdHkodGFyZ2V0LmNvbmZpZ3VyYXRpb25zKSA/IHt9IDogeyBjb25maWd1cmF0aW9uczogdGFyZ2V0LmNvbmZpZ3VyYXRpb25zIH0sCiAgICAgICAgLi4udGFyZ2V0LmRlZmF1bHRDb25maWd1cmF0aW9uID09PSB2b2lkIDAgPyB7fSA6IHsgZGVmYXVsdENvbmZpZ3VyYXRpb246IHRhcmdldC5kZWZhdWx0Q29uZmlndXJhdGlvbiB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldENvbGxlY3Rpb24oY29sbGVjdGlvbikgewogICAgICBjb25zdCB0YXJnZXRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCB0YXJnZXRdIG9mIGNvbGxlY3Rpb24pIHsKICAgICAgICB0YXJnZXRzW3Byb2plY3ROYW1lXSA9IGNvbnZlcnRKc29uVGFyZ2V0KHRhcmdldCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRhcmdldHM7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpIHsKICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIHN3aXRjaCAodHlwZTIpIHsKICAgICAgICBjYXNlICJwcm9qZWN0IjoKICAgICAgICAgIHJldHVybiBjb252ZXJ0SnNvblByb2plY3QodmFsdWUpOwogICAgICAgIGNhc2UgInByb2plY3Rjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHZhbHVlKTsKICAgICAgICAgIHJldHVybiBpc0VtcHR5KHByb2plY3RzKSA/IHZvaWQgMCA6IHByb2plY3RzOwogICAgICAgIH0KICAgICAgICBjYXNlICJ0YXJnZXQiOgogICAgICAgICAgcmV0dXJuIGNvbnZlcnRKc29uVGFyZ2V0KHZhbHVlKTsKICAgICAgICBjYXNlICJ0YXJnZXRjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnZlcnRKc29uVGFyZ2V0Q29sbGVjdGlvbih2YWx1ZSk7CiAgICAgICAgICByZXR1cm4gaXNFbXB0eSh0YXJnZXRzKSA/IHZvaWQgMCA6IHRhcmdldHM7CiAgICAgICAgfQogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUpzb25Xb3Jrc3BhY2UobWV0YWRhdGEpIHsKICAgICAgbGV0IHsgcmF3OiBjb250ZW50IH0gPSBtZXRhZGF0YTsKICAgICAgY29uc3QgeyBjaGFuZ2VzLCBoYXNMZWdhY3lUYXJnZXRzTmFtZSB9ID0gbWV0YWRhdGE7CiAgICAgIGZvciAoY29uc3QgeyBqc29uUGF0aCwgdmFsdWUsIHR5cGU6IHR5cGUyIH0gb2YgY2hhbmdlcy52YWx1ZXMoKSkgewogICAgICAgIGlmIChoYXNMZWdhY3lUYXJnZXRzTmFtZSAmJiBqc29uUGF0aFsyXSA9PT0gInRhcmdldHMiKSB7CiAgICAgICAgICBqc29uUGF0aFsyXSA9ICJhcmNoaXRlY3QiOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0cyA9ICgwLCBqc29uY19wYXJzZXJfMS5tb2RpZnkpKGNvbnRlbnQsIGpzb25QYXRoLCBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpLCB7CiAgICAgICAgICBmb3JtYXR0aW5nT3B0aW9uczogewogICAgICAgICAgICBpbnNlcnRTcGFjZXM6IHRydWUsCiAgICAgICAgICAgIHRhYlNpemU6IDIsCiAgICAgICAgICAgIGVvbDogZ2V0RU9MKGNvbnRlbnQpCiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgY29udGVudCA9ICgwLCBqc29uY19wYXJzZXJfMS5hcHBseUVkaXRzKShjb250ZW50LCBlZGl0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRFT0woY29udGVudCkgewogICAgICBjb25zdCBDUkxGID0gIlxyXG4iOwogICAgICBjb25zdCBMRiA9ICJcbiI7CiAgICAgIGNvbnN0IG5ld2xpbmVzID0gY29udGVudC5tYXRjaCgvKD86XHI/XG4pL2cpOwogICAgICBpZiAobmV3bGluZXM/Lmxlbmd0aCkgewogICAgICAgIGNvbnN0IGNybGYgPSBuZXdsaW5lcy5maWx0ZXIoKGwpID0+IGwgPT09IENSTEYpLmxlbmd0aDsKICAgICAgICBjb25zdCBsZiA9IG5ld2xpbmVzLmxlbmd0aCAtIGNybGY7CiAgICAgICAgcmV0dXJuIGNybGYgPiBsZiA/IENSTEYgOiBMRjsKICAgICAgfQogICAgICByZXR1cm4gbm9kZV9vc18xLkVPTDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvY29yZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gdm9pZCAwOwogICAgZXhwb3J0czIuX3Rlc3RfYWRkV29ya3NwYWNlRmlsZSA9IF90ZXN0X2FkZFdvcmtzcGFjZUZpbGU7CiAgICBleHBvcnRzMi5fdGVzdF9yZW1vdmVXb3Jrc3BhY2VGaWxlID0gX3Rlc3RfcmVtb3ZlV29ya3NwYWNlRmlsZTsKICAgIGV4cG9ydHMyLnJlYWRXb3Jrc3BhY2UgPSByZWFkV29ya3NwYWNlOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSB3cml0ZVdvcmtzcGFjZTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyKCk7CiAgICB2YXIgd3JpdGVyXzEgPSByZXF1aXJlX3dyaXRlcigpOwogICAgdmFyIGZvcm1hdExvb2t1cCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgdmFyIFdvcmtzcGFjZUZvcm1hdDsKICAgIChmdW5jdGlvbihXb3Jrc3BhY2VGb3JtYXQyKSB7CiAgICAgIFdvcmtzcGFjZUZvcm1hdDJbV29ya3NwYWNlRm9ybWF0MlsiSlNPTiJdID0gMF0gPSAiSlNPTiI7CiAgICB9KShXb3Jrc3BhY2VGb3JtYXQgfHwgKGV4cG9ydHMyLldvcmtzcGFjZUZvcm1hdCA9IFdvcmtzcGFjZUZvcm1hdCA9IHt9KSk7CiAgICBmdW5jdGlvbiBfdGVzdF9hZGRXb3Jrc3BhY2VGaWxlKG5hbWUsIGZvcm1hdCkgewogICAgICB3b3Jrc3BhY2VGaWxlc1tuYW1lXSA9IGZvcm1hdDsKICAgIH0KICAgIGZ1bmN0aW9uIF90ZXN0X3JlbW92ZVdvcmtzcGFjZUZpbGUobmFtZSkgewogICAgICBkZWxldGUgd29ya3NwYWNlRmlsZXNbbmFtZV07CiAgICB9CiAgICB2YXIgd29ya3NwYWNlRmlsZXMgPSB7CiAgICAgICJhbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTiwKICAgICAgIi5hbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTgogICAgfTsKICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2UocGF0aCwgaG9zdCwgZm9ybWF0KSB7CiAgICAgIGlmIChhd2FpdCBob3N0LmlzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgIGZvciAoY29uc3QgW25hbWUsIG5hbWVGb3JtYXRdIG9mIE9iamVjdC5lbnRyaWVzKHdvcmtzcGFjZUZpbGVzKSkgewogICAgICAgICAgaWYgKGZvcm1hdCAhPT0gdm9pZCAwICYmIGZvcm1hdCAhPT0gbmFtZUZvcm1hdCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHBvdGVudGlhbCA9ICgwLCB2aXJ0dWFsX2ZzXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHZpcnR1YWxfZnNfMS5qb2luKShkaXJlY3RvcnksIG5hbWUpKTsKICAgICAgICAgIGlmIChhd2FpdCBob3N0LmlzRmlsZShwb3RlbnRpYWwpKSB7CiAgICAgICAgICAgIHBhdGggPSBwb3RlbnRpYWw7CiAgICAgICAgICAgIGZvcm1hdCA9IG5hbWVGb3JtYXQ7CiAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBhIHdvcmtzcGFjZSBmaWxlIGZvciB3b3Jrc3BhY2UgcGF0aC4gQXJlIHlvdSBtaXNzaW5nIGFuIGBhbmd1bGFyLmpzb25gIG9yIGAuYW5ndWxhci5qc29uYCBmaWxlPyIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IGZpbGVuYW1lID0gKDAsIHZpcnR1YWxfZnNfMS5iYXNlbmFtZSkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgICBpZiAoZmlsZW5hbWUgaW4gd29ya3NwYWNlRmlsZXMpIHsKICAgICAgICAgIGZvcm1hdCA9IHdvcmtzcGFjZUZpbGVzW2ZpbGVuYW1lXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZGV0ZXJtaW5lIGZvcm1hdCBmb3Igd29ya3NwYWNlIHBhdGguIik7CiAgICAgIH0KICAgICAgbGV0IHdvcmtzcGFjZTsKICAgICAgc3dpdGNoIChmb3JtYXQpIHsKICAgICAgICBjYXNlIFdvcmtzcGFjZUZvcm1hdC5KU09OOgogICAgICAgICAgd29ya3NwYWNlID0gYXdhaXQgKDAsIHJlYWRlcl8xLnJlYWRKc29uV29ya3NwYWNlKShwYXRoLCBob3N0KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgICAgZm9ybWF0TG9va3VwLnNldCh3b3Jrc3BhY2UsIFdvcmtzcGFjZUZvcm1hdC5KU09OKTsKICAgICAgcmV0dXJuIHsgd29ya3NwYWNlIH07CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiB3cml0ZVdvcmtzcGFjZSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgsIGZvcm1hdCkgewogICAgICBpZiAoZm9ybWF0ID09PSB2b2lkIDApIHsKICAgICAgICBmb3JtYXQgPSBmb3JtYXRMb29rdXAuZ2V0KHdvcmtzcGFjZSk7CiAgICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkEgZm9ybWF0IGlzIHJlcXVpcmVkIGZvciBjdXN0b20gd29ya3NwYWNlIG9iamVjdHMuIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgICAgY2FzZSBXb3Jrc3BhY2VGb3JtYXQuSlNPTjoKICAgICAgICAgIHJldHVybiAoMCwgd3JpdGVyXzEud3JpdGVKc29uV29ya3NwYWNlKSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgpOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcwp2YXIgcmVxdWlyZV93b3Jrc3BhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSBleHBvcnRzMi5yZWFkV29ya3NwYWNlID0gZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IHZvaWQgMDsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2RlZmluaXRpb25zKCksIGV4cG9ydHMyKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3QyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjcmVhdGVXb3Jrc3BhY2VIb3N0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaG9zdF8xLmNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB9IH0pOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZTMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIldvcmtzcGFjZUZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5Xb3Jrc3BhY2VGb3JtYXQ7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVhZFdvcmtzcGFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5yZWFkV29ya3NwYWNlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndyaXRlV29ya3NwYWNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29yZV8xLndyaXRlV29ya3NwYWNlOwogICAgfSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndvcmtzcGFjZXMgPSBleHBvcnRzMi5sb2dnaW5nID0gZXhwb3J0czIuanNvbiA9IHZvaWQgMDsKICAgIHZhciBqc29uMiA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2pzb24oKSk7CiAgICBleHBvcnRzMi5qc29uID0ganNvbjI7CiAgICB2YXIgbG9nZ2luZyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2xvZ2dlcjIoKSk7CiAgICBleHBvcnRzMi5sb2dnaW5nID0gbG9nZ2luZzsKICAgIHZhciB3b3Jrc3BhY2VzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfd29ya3NwYWNlKCkpOwogICAgZXhwb3J0czIud29ya3NwYWNlcyA9IHdvcmtzcGFjZXM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9leGNlcHRpb24oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfanNvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlsczMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdmlydHVhbF9mcygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanMKdmFyIHJlcXVpcmVfaHRtbF9zZWxlY3RvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9odG1sLXNlbGVjdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgdW5pY29kZVJhbmdlcyA9IFsKICAgICAgWzE5MiwgMjE0XSwKICAgICAgWzIxNiwgMjQ2XSwKICAgICAgWzI0OCwgODkzXSwKICAgICAgWzg5NSwgODE5MV0sCiAgICAgIFs4MjA0LCA4MjA1XSwKICAgICAgWzgyNTUsIDgyNTZdLAogICAgICBbODMwNCwgODU5MV0sCiAgICAgIFsxMTI2NCwgMTIyNzFdLAogICAgICBbMTIyODksIDU1Mjk1XSwKICAgICAgWzYzNzQ0LCA2NDk3NV0sCiAgICAgIFs2NTAwOCwgNjU1MzNdLAogICAgICBbNjU1MzYsIDk4MzAzOV0KICAgIF07CiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudE5hbWUobmFtZSkgewogICAgICBsZXQgcmVnZXggPSAiXlthLXpBLVpdWyI7CiAgICAgIHJlZ2V4ICs9ICItLjAtOV9hLXpBLVpcXHV7Qjd9IjsKICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB1bmljb2RlUmFuZ2VzKSB7CiAgICAgICAgcmVnZXggKz0gYFxcdXske3JhbmdlWzBdLnRvU3RyaW5nKDE2KX19LVxcdXske3JhbmdlWzFdLnRvU3RyaW5nKDE2KX19YDsKICAgICAgfQogICAgICByZWdleCArPSAiXSokIjsKICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsICJ1IikudGVzdChuYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmh0bWxTZWxlY3RvckZvcm1hdCA9IHsKICAgICAgbmFtZTogImh0bWwtc2VsZWN0b3IiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChuYW1lKSA9PiB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIgJiYgaXNWYWxpZEVsZW1lbnROYW1lKG5hbWUpCiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL3BhdGguanMKdmFyIHJlcXVpcmVfcGF0aDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHsKICAgICAgbmFtZTogInBhdGgiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChwYXRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gcGF0aCA9PT0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMKdmFyIHJlcXVpcmVfZm9ybWF0czIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IGV4cG9ydHMyLnBhdGhGb3JtYXQgPSBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgaHRtbF9zZWxlY3Rvcl8xID0gcmVxdWlyZV9odG1sX3NlbGVjdG9yKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoMigpOwogICAgdmFyIGh0bWxfc2VsZWN0b3JfMiA9IHJlcXVpcmVfaHRtbF9zZWxlY3RvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaHRtbFNlbGVjdG9yRm9ybWF0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaHRtbF9zZWxlY3Rvcl8yLmh0bWxTZWxlY3RvckZvcm1hdDsKICAgIH0gfSk7CiAgICB2YXIgcGF0aF8yID0gcmVxdWlyZV9wYXRoMigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGF0aEZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHBhdGhfMi5wYXRoRm9ybWF0OwogICAgfSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IFtodG1sX3NlbGVjdG9yXzEuaHRtbFNlbGVjdG9yRm9ybWF0LCBwYXRoXzEucGF0aEZvcm1hdF07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJlZSA9IGV4cG9ydHMyLlRyZWVTeW1ib2wgPSBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gZXhwb3J0czIuTWVyZ2VTdHJhdGVneSA9IHZvaWQgMDsKICAgIHZhciBNZXJnZVN0cmF0ZWd5MjsKICAgIChmdW5jdGlvbihNZXJnZVN0cmF0ZWd5MykgewogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siQWxsb3dPdmVyd3JpdGVDb25mbGljdCJdID0gMl0gPSAiQWxsb3dPdmVyd3JpdGVDb25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0NyZWF0aW9uQ29uZmxpY3QiXSA9IDRdID0gIkFsbG93Q3JlYXRpb25Db25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0RlbGV0ZUNvbmZsaWN0Il0gPSA4XSA9ICJBbGxvd0RlbGV0ZUNvbmZsaWN0IjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkRlZmF1bHQiXSA9IDBdID0gIkRlZmF1bHQiOwogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siRXJyb3IiXSA9IDFdID0gIkVycm9yIjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkNvbnRlbnRPbmx5Il0gPSAyXSA9ICJDb250ZW50T25seSI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJPdmVyd3JpdGUiXSA9IDE0XSA9ICJPdmVyd3JpdGUiOwogICAgfSkoTWVyZ2VTdHJhdGVneTIgfHwgKGV4cG9ydHMyLk1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5MiA9IHt9KSk7CiAgICBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gU3ltYm9sKCk7CiAgICBleHBvcnRzMi5UcmVlU3ltYm9sID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IGdsb2JhbFN5bWJvbCA9IHR5cGVvZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93LndpbmRvdyA9PT0gd2luZG93ICYmIHdpbmRvdy5TeW1ib2wgfHwgdHlwZW9mIHNlbGYgPT0gIm9iamVjdCIgJiYgc2VsZi5zZWxmID09PSBzZWxmICYmIHNlbGYuU3ltYm9sIHx8IHR5cGVvZiBnbG9iYWwgPT0gIm9iamVjdCIgJiYgZ2xvYmFsLmdsb2JhbCA9PT0gZ2xvYmFsICYmIGdsb2JhbC5TeW1ib2w7CiAgICAgIGlmICghZ2xvYmFsU3ltYm9sKSB7CiAgICAgICAgcmV0dXJuIFN5bWJvbCgic2NoZW1hdGljLXRyZWUiKTsKICAgICAgfQogICAgICBpZiAoIWdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlKSB7CiAgICAgICAgZ2xvYmFsU3ltYm9sLnNjaGVtYXRpY1RyZWUgPSBTeW1ib2woInNjaGVtYXRpYy10cmVlIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlOwogICAgfSgpOwogICAgZXhwb3J0czIuVHJlZSA9IE9iamVjdC5mcmVlemUoewogICAgICBpc1RyZWUobWF5YmVUcmVlKSB7CiAgICAgICAgcmV0dXJuIGV4cG9ydHMyLlRyZWVTeW1ib2wgaW4gbWF5YmVUcmVlOwogICAgICB9CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZXhjZXB0aW9uL2V4Y2VwdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gZXhwb3J0czIuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuU2NoZW1hdGljc0V4Y2VwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIFNjaGVtYXRpY3NFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNzRXhjZXB0aW9uID0gU2NoZW1hdGljc0V4Y2VwdGlvbjsKICAgIHZhciBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgYWxyZWFkeSBleGlzdC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uOwogICAgdmFyIENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgQ29udGVudCBhdCBwYXRoICIke3BhdGh9IiBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiBhbiB1cGRhdGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoYEludmFsaWQgcmVjb3JkIGluc3RhbmNlLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFVwZGF0ZVJlY29yZEV4Y2VwdGlvbiA9IEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb247CiAgICB2YXIgTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYEEgbWVyZ2UgY29uZmxpY3RlZCBvbiBwYXRoICIke3BhdGh9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24gPSBNZXJnZUNvbmZsaWN0RXhjZXB0aW9uOwogICAgdmFyIFVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJXb3JrZmxvdyBkaWQgbm90IGV4ZWN1dGUgc3VjY2Vzc2Z1bGx5LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24gPSBVbnN1Y2Nlc3NmdWxXb3JrZmxvd0V4ZWN1dGlvbjsKICAgIHZhciBVbmltcGxlbWVudGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJUaGlzIGZ1bmN0aW9uIGlzIHVuaW1wbGVtZW50ZWQuIik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VbmltcGxlbWVudGVkRXhjZXB0aW9uID0gVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMKdmFyIHJlcXVpcmVfZGVsZWdhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRlbGVnYXRlVHJlZSA9IHZvaWQgMDsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIERlbGVnYXRlVHJlZSA9IGNsYXNzIHsKICAgICAgX290aGVyOwogICAgICBjb25zdHJ1Y3Rvcihfb3RoZXIpIHsKICAgICAgICB0aGlzLl9vdGhlciA9IF9vdGhlcjsKICAgICAgfQogICAgICBicmFuY2goKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJyYW5jaCgpOwogICAgICB9CiAgICAgIG1lcmdlKG90aGVyLCBzdHJhdGVneSkgewogICAgICAgIHRoaXMuX290aGVyLm1lcmdlKG90aGVyLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnJvb3Q7CiAgICAgIH0KICAgICAgLy8gUmVhZG9ubHkuCiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIHJlYWRUZXh0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIucmVhZFRleHQocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkSnNvbihwYXRoKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgZ2V0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZ2V0KHBhdGgpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmdldERpcihwYXRoKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLm92ZXJ3cml0ZShwYXRoLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJlZ2luVXBkYXRlKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuY29tbWl0VXBkYXRlKHJlY29yZCk7CiAgICAgIH0KICAgICAgLy8gU3RydWN0dXJhbCBtZXRob2RzLgogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuYXBwbHkoYWN0aW9uLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmFjdGlvbnM7CiAgICAgIH0KICAgICAgW2ludGVyZmFjZV8xLlRyZWVTeW1ib2xdKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVsZWdhdGVUcmVlID0gRGVsZWdhdGVUcmVlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcwp2YXIgcmVxdWlyZV9lbnRyeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBTaW1wbGVGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9wYXRoOwogICAgICBfY29udGVudDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2NvbnRlbnQgPSBfY29udGVudDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IFNpbXBsZUZpbGVFbnRyeTsKICAgIHZhciBMYXp5RmlsZUVudHJ5ID0gY2xhc3MgewogICAgICBfcGF0aDsKICAgICAgX2xvYWQ7CiAgICAgIF9jb250ZW50ID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9sb2FkKSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2xvYWQgPSBfbG9hZDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCB8fCAodGhpcy5fY29udGVudCA9IHRoaXMuX2xvYWQodGhpcy5fcGF0aCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IExhenlGaWxlRW50cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0BqcmlkZ2V3ZWxsLXNvdXJjZW1hcC1jb2RlYy1ucG0tMS41LjAtZGZkOTEyNmQ3MS0xMC56aXAvbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9kaXN0L3NvdXJjZW1hcC1jb2RlYy51bWQuanMKdmFyIHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AanJpZGdld2VsbC1zb3VyY2VtYXAtY29kZWMtbnBtLTEuNS4wLWRmZDkxMjZkNzEtMTAuemlwL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvZGlzdC9zb3VyY2VtYXAtY29kZWMudW1kLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGdsb2JhbDIsIGZhY3RvcnkpIHsKICAgICAgdHlwZW9mIGV4cG9ydHMyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMiAhPT0gInVuZGVmaW5lZCIgPyBmYWN0b3J5KGV4cG9ydHMyKSA6IHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbImV4cG9ydHMiXSwgZmFjdG9yeSkgOiAoZ2xvYmFsMiA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiA/IGdsb2JhbFRoaXMgOiBnbG9iYWwyIHx8IHNlbGYsIGZhY3RvcnkoZ2xvYmFsMi5zb3VyY2VtYXBDb2RlYyA9IHt9KSk7CiAgICB9KShleHBvcnRzMiwgZnVuY3Rpb24oZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBjb25zdCBjb21tYSA9ICIsIi5jaGFyQ29kZUF0KDApOwogICAgICBjb25zdCBzZW1pY29sb24gPSAiOyIuY2hhckNvZGVBdCgwKTsKICAgICAgY29uc3QgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgICAgIGNvbnN0IGludFRvQ2hhciA9IG5ldyBVaW50OEFycmF5KDY0KTsKICAgICAgY29uc3QgY2hhclRvSW50ID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGMgPSBjaGFycy5jaGFyQ29kZUF0KGkpOwogICAgICAgIGludFRvQ2hhcltpXSA9IGM7CiAgICAgICAgY2hhclRvSW50W2NdID0gaTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgcmVsYXRpdmUpIHsKICAgICAgICBsZXQgdmFsdWUgPSAwOwogICAgICAgIGxldCBzaGlmdCA9IDA7CiAgICAgICAgbGV0IGludGVnZXIgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IGMgPSByZWFkZXIubmV4dCgpOwogICAgICAgICAgaW50ZWdlciA9IGNoYXJUb0ludFtjXTsKICAgICAgICAgIHZhbHVlIHw9IChpbnRlZ2VyICYgMzEpIDw8IHNoaWZ0OwogICAgICAgICAgc2hpZnQgKz0gNTsKICAgICAgICB9IHdoaWxlIChpbnRlZ2VyICYgMzIpOwogICAgICAgIGNvbnN0IHNob3VsZE5lZ2F0ZSA9IHZhbHVlICYgMTsKICAgICAgICB2YWx1ZSA+Pj49IDE7CiAgICAgICAgaWYgKHNob3VsZE5lZ2F0ZSkgewogICAgICAgICAgdmFsdWUgPSAtMjE0NzQ4MzY0OCB8IC12YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlbGF0aXZlICsgdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5jb2RlSW50ZWdlcihidWlsZGVyLCBudW0sIHJlbGF0aXZlKSB7CiAgICAgICAgbGV0IGRlbHRhID0gbnVtIC0gcmVsYXRpdmU7CiAgICAgICAgZGVsdGEgPSBkZWx0YSA8IDAgPyAtZGVsdGEgPDwgMSB8IDEgOiBkZWx0YSA8PCAxOwogICAgICAgIGRvIHsKICAgICAgICAgIGxldCBjbGFtcGVkID0gZGVsdGEgJiAzMTsKICAgICAgICAgIGRlbHRhID4+Pj0gNTsKICAgICAgICAgIGlmIChkZWx0YSA+IDApCiAgICAgICAgICAgIGNsYW1wZWQgfD0gMzI7CiAgICAgICAgICBidWlsZGVyLndyaXRlKGludFRvQ2hhcltjbGFtcGVkXSk7CiAgICAgICAgfSB3aGlsZSAoZGVsdGEgPiAwKTsKICAgICAgICByZXR1cm4gbnVtOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhc01vcmVWbHEocmVhZGVyLCBtYXgpIHsKICAgICAgICBpZiAocmVhZGVyLnBvcyA+PSBtYXgpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHJlYWRlci5wZWVrKCkgIT09IGNvbW1hOwogICAgICB9CiAgICAgIGNvbnN0IGJ1Zkxlbmd0aCA9IDEwMjQgKiAxNjsKICAgICAgY29uc3QgdGQgPSB0eXBlb2YgVGV4dERlY29kZXIgIT09ICJ1bmRlZmluZWQiID8gLyogQF9fUFVSRV9fICovIG5ldyBUZXh0RGVjb2RlcigpIDogdHlwZW9mIEJ1ZmZlciAhPT0gInVuZGVmaW5lZCIgPyB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgY29uc3Qgb3V0ID0gQnVmZmVyLmZyb20oYnVmLmJ1ZmZlciwgYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlTGVuZ3RoKTsKICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKICAgICAgICB9CiAgICAgIH0gOiB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgbGV0IG91dCA9ICIiOwogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBvdXQ7CiAgICAgICAgfQogICAgICB9OwogICAgICBjbGFzcyBTdHJpbmdXcml0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgICAgdGhpcy5wb3MgPSAwOwogICAgICAgICAgdGhpcy5vdXQgPSAiIjsKICAgICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnVmTGVuZ3RoKTsKICAgICAgICB9CiAgICAgICAgd3JpdGUodikgewogICAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXM7CiAgICAgICAgICBidWZmZXJbdGhpcy5wb3MrK10gPSB2OwogICAgICAgICAgaWYgKHRoaXMucG9zID09PSBidWZMZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5vdXQgKz0gdGQuZGVjb2RlKGJ1ZmZlcik7CiAgICAgICAgICAgIHRoaXMucG9zID0gMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZmx1c2goKSB7CiAgICAgICAgICBjb25zdCB7IGJ1ZmZlciwgb3V0LCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICByZXR1cm4gcG9zID4gMCA/IG91dCArIHRkLmRlY29kZShidWZmZXIuc3ViYXJyYXkoMCwgcG9zKSkgOiBvdXQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNsYXNzIFN0cmluZ1JlYWRlciB7CiAgICAgICAgY29uc3RydWN0b3IoYnVmZmVyKSB7CiAgICAgICAgICB0aGlzLnBvcyA9IDA7CiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IGJ1ZmZlcjsKICAgICAgICB9CiAgICAgICAgbmV4dCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKyspOwogICAgICAgIH0KICAgICAgICBwZWVrKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLmNoYXJDb2RlQXQodGhpcy5wb3MpOwogICAgICAgIH0KICAgICAgICBpbmRleE9mKGNoYXIpIHsKICAgICAgICAgIGNvbnN0IHsgYnVmZmVyLCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICBjb25zdCBpZHggPSBidWZmZXIuaW5kZXhPZihjaGFyLCBwb3MpOwogICAgICAgICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBidWZmZXIubGVuZ3RoIDogaWR4OwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdCBFTVBUWSA9IFtdOwogICAgICBmdW5jdGlvbiBkZWNvZGVPcmlnaW5hbFNjb3BlcyhpbnB1dCkgewogICAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSBpbnB1dDsKICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTsKICAgICAgICBjb25zdCBzY29wZXMgPSBbXTsKICAgICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICAgIGxldCBsaW5lID0gMDsKICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IGxlbmd0aDsgcmVhZGVyLnBvcysrKSB7CiAgICAgICAgICBsaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGxpbmUpOwogICAgICAgICAgY29uc3QgY29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkgewogICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgIGxhc3RbMl0gPSBsaW5lOwogICAgICAgICAgICBsYXN0WzNdID0gY29sdW1uOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtpbmQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBoYXNOYW1lID0gZmllbGRzICYgMTsKICAgICAgICAgIGNvbnN0IHNjb3BlID0gaGFzTmFtZSA/IFtsaW5lLCBjb2x1bW4sIDAsIDAsIGtpbmQsIGRlY29kZUludGVnZXIocmVhZGVyLCAwKV0gOiBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kXTsKICAgICAgICAgIGxldCB2YXJzID0gRU1QVFk7CiAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpIHsKICAgICAgICAgICAgdmFycyA9IFtdOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgY29uc3QgdmFyc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgIHZhcnMucHVzaCh2YXJzSW5kZXgpOwogICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzY29wZS52YXJzID0gdmFyczsKICAgICAgICAgIHNjb3Blcy5wdXNoKHNjb3BlKTsKICAgICAgICAgIHN0YWNrLnB1c2goc2NvcGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NvcGVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVuY29kZU9yaWdpbmFsU2NvcGVzKHNjb3BlcykgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjb3Blcy5sZW5ndGg7ICkgewogICAgICAgICAgaSA9IF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGksIHdyaXRlciwgWzBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKSB7CiAgICAgICAgY29uc3Qgc2NvcGUgPSBzY29wZXNbaW5kZXhdOwogICAgICAgIGNvbnN0IHsgMDogc3RhcnRMaW5lLCAxOiBzdGFydENvbHVtbiwgMjogZW5kTGluZSwgMzogZW5kQ29sdW1uLCA0OiBraW5kLCB2YXJzIH0gPSBzY29wZTsKICAgICAgICBpZiAoaW5kZXggPiAwKQogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzdGFydExpbmUsIHN0YXRlWzBdKTsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc3RhcnRDb2x1bW4sIDApOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBraW5kLCAwKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSBzY29wZS5sZW5ndGggPT09IDYgPyAxIDogMDsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZmllbGRzLCAwKTsKICAgICAgICBpZiAoc2NvcGUubGVuZ3RoID09PSA2KQogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNjb3BlWzVdLCAwKTsKICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFycykgewogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHYsIDApOwogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgc2NvcGVzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gc2NvcGVzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHdyaXRlci53cml0ZShjb21tYSk7CiAgICAgICAgc3RhdGVbMF0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kTGluZSwgc3RhdGVbMF0pOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIDApOwogICAgICAgIHJldHVybiBpbmRleDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVHZW5lcmF0ZWRSYW5nZXMoaW5wdXQpIHsKICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gaW5wdXQ7CiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihpbnB1dCk7CiAgICAgICAgY29uc3QgcmFuZ2VzID0gW107CiAgICAgICAgY29uc3Qgc3RhY2sgPSBbXTsKICAgICAgICBsZXQgZ2VuTGluZSA9IDA7CiAgICAgICAgbGV0IGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSAwOwogICAgICAgIGxldCBkZWZpbml0aW9uU2NvcGVJbmRleCA9IDA7CiAgICAgICAgbGV0IGNhbGxzaXRlU291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVMaW5lID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVDb2x1bW4gPSAwOwogICAgICAgIGxldCBiaW5kaW5nTGluZSA9IDA7CiAgICAgICAgbGV0IGJpbmRpbmdDb2x1bW4gPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgbGV0IGdlbkNvbHVtbiA9IDA7CiAgICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IHNlbWk7IHJlYWRlci5wb3MrKykgewogICAgICAgICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTsKICAgICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHsKICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgbGFzdFsyXSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgbGFzdFszXSA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICAgIGNvbnN0IGhhc0RlZmluaXRpb24gPSBmaWVsZHMgJiAxOwogICAgICAgICAgICBjb25zdCBoYXNDYWxsc2l0ZSA9IGZpZWxkcyAmIDI7CiAgICAgICAgICAgIGNvbnN0IGhhc1Njb3BlID0gZmllbGRzICYgNDsKICAgICAgICAgICAgbGV0IGNhbGxzaXRlID0gbnVsbDsKICAgICAgICAgICAgbGV0IGJpbmRpbmdzID0gRU1QVFk7CiAgICAgICAgICAgIGxldCByYW5nZTsKICAgICAgICAgICAgaWYgKGhhc0RlZmluaXRpb24pIHsKICAgICAgICAgICAgICBjb25zdCBkZWZTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgICAgZGVmaW5pdGlvblNjb3BlSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9PT0gZGVmU291cmNlc0luZGV4ID8gZGVmaW5pdGlvblNjb3BlSW5kZXggOiAwKTsKICAgICAgICAgICAgICBkZWZpbml0aW9uU291cmNlc0luZGV4ID0gZGVmU291cmNlc0luZGV4OwogICAgICAgICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMCwgZGVmU291cmNlc0luZGV4LCBkZWZpbml0aW9uU2NvcGVJbmRleF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmFuZ2UgPSBbZ2VuTGluZSwgZ2VuQ29sdW1uLCAwLCAwXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5pc1Njb3BlID0gISFoYXNTY29wZTsKICAgICAgICAgICAgaWYgKGhhc0NhbGxzaXRlKSB7CiAgICAgICAgICAgICAgY29uc3QgcHJldkNzaSA9IGNhbGxzaXRlU291cmNlc0luZGV4OwogICAgICAgICAgICAgIGNvbnN0IHByZXZMaW5lID0gY2FsbHNpdGVMaW5lOwogICAgICAgICAgICAgIGNhbGxzaXRlU291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGNhbGxzaXRlU291cmNlc0luZGV4KTsKICAgICAgICAgICAgICBjb25zdCBzYW1lU291cmNlID0gcHJldkNzaSA9PT0gY2FsbHNpdGVTb3VyY2VzSW5kZXg7CiAgICAgICAgICAgICAgY2FsbHNpdGVMaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNhbWVTb3VyY2UgPyBjYWxsc2l0ZUxpbmUgOiAwKTsKICAgICAgICAgICAgICBjYWxsc2l0ZUNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzYW1lU291cmNlICYmIHByZXZMaW5lID09PSBjYWxsc2l0ZUxpbmUgPyBjYWxsc2l0ZUNvbHVtbiA6IDApOwogICAgICAgICAgICAgIGNhbGxzaXRlID0gW2NhbGxzaXRlU291cmNlc0luZGV4LCBjYWxsc2l0ZUxpbmUsIGNhbGxzaXRlQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5jYWxsc2l0ZSA9IGNhbGxzaXRlOwogICAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKSB7CiAgICAgICAgICAgICAgYmluZGluZ3MgPSBbXTsKICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICBiaW5kaW5nTGluZSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZ2VuQ29sdW1uOwogICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb3VudCA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTsKICAgICAgICAgICAgICAgIGxldCBleHByZXNzaW9uUmFuZ2VzOwogICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zQ291bnQgPCAtMSkgewogICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzID0gW1tkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldXTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IC0xOyBpID4gZXhwcmVzc2lvbnNDb3VudDsgaS0tKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkJsID0gYmluZGluZ0xpbmU7CiAgICAgICAgICAgICAgICAgICAgYmluZGluZ0xpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUpOwogICAgICAgICAgICAgICAgICAgIGJpbmRpbmdDb2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUgPT09IHByZXZCbCA/IGJpbmRpbmdDb2x1bW4gOiAwKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMucHVzaChbZXhwcmVzc2lvbiwgYmluZGluZ0xpbmUsIGJpbmRpbmdDb2x1bW5dKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZXhwcmVzc2lvbnNDb3VudF1dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYmluZGluZ3MucHVzaChleHByZXNzaW9uUmFuZ2VzKTsKICAgICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJhbmdlLmJpbmRpbmdzID0gYmluZGluZ3M7CiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHJhbmdlKTsKICAgICAgICAgICAgc3RhY2sucHVzaChyYW5nZSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW5MaW5lKys7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8IGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzKSB7CiAgICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IFN0cmluZ1dyaXRlcigpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBpID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGksIHdyaXRlciwgWzAsIDAsIDAsIDAsIDAsIDAsIDBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSkgewogICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICBjb25zdCB7IDA6IHN0YXJ0TGluZSwgMTogc3RhcnRDb2x1bW4sIDI6IGVuZExpbmUsIDM6IGVuZENvbHVtbiwgaXNTY29wZSwgY2FsbHNpdGUsIGJpbmRpbmdzIH0gPSByYW5nZTsKICAgICAgICBpZiAoc3RhdGVbMF0gPCBzdGFydExpbmUpIHsKICAgICAgICAgIGNhdGNodXBMaW5lKHdyaXRlciwgc3RhdGVbMF0sIHN0YXJ0TGluZSk7CiAgICAgICAgICBzdGF0ZVswXSA9IHN0YXJ0TGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgcmFuZ2VbMV0sIHN0YXRlWzFdKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSAocmFuZ2UubGVuZ3RoID09PSA2ID8gMSA6IDApIHwgKGNhbGxzaXRlID8gMiA6IDApIHwgKGlzU2NvcGUgPyA0IDogMCk7CiAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7CiAgICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gNikgewogICAgICAgICAgY29uc3QgeyA0OiBzb3VyY2VzSW5kZXgsIDU6IHNjb3Blc0luZGV4IH0gPSByYW5nZTsKICAgICAgICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzJdKSB7CiAgICAgICAgICAgIHN0YXRlWzNdID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlWzJdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbMl0pOwogICAgICAgICAgc3RhdGVbM10gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVzSW5kZXgsIHN0YXRlWzNdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNhbGxzaXRlKSB7CiAgICAgICAgICBjb25zdCB7IDA6IHNvdXJjZXNJbmRleCwgMTogY2FsbExpbmUsIDI6IGNhbGxDb2x1bW4gfSA9IHJhbmdlLmNhbGxzaXRlOwogICAgICAgICAgaWYgKHNvdXJjZXNJbmRleCAhPT0gc3RhdGVbNF0pIHsKICAgICAgICAgICAgc3RhdGVbNV0gPSAwOwogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxMaW5lICE9PSBzdGF0ZVs1XSkgewogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZVs0XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzb3VyY2VzSW5kZXgsIHN0YXRlWzRdKTsKICAgICAgICAgIHN0YXRlWzVdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGNhbGxMaW5lLCBzdGF0ZVs1XSk7CiAgICAgICAgICBzdGF0ZVs2XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBjYWxsQ29sdW1uLCBzdGF0ZVs2XSk7CiAgICAgICAgfQogICAgICAgIGlmIChiaW5kaW5ncykgewogICAgICAgICAgZm9yIChjb25zdCBiaW5kaW5nIG9mIGJpbmRpbmdzKSB7CiAgICAgICAgICAgIGlmIChiaW5kaW5nLmxlbmd0aCA+IDEpCiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIC1iaW5kaW5nLmxlbmd0aCwgMCk7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBiaW5kaW5nWzBdWzBdOwogICAgICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwcmVzc2lvbiwgMCk7CiAgICAgICAgICAgIGxldCBiaW5kaW5nU3RhcnRMaW5lID0gc3RhcnRMaW5lOwogICAgICAgICAgICBsZXQgYmluZGluZ1N0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYmluZGluZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IGV4cFJhbmdlID0gYmluZGluZ1tpXTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRMaW5lID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzFdLCBiaW5kaW5nU3RhcnRMaW5lKTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRDb2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwUmFuZ2VbMl0sIGJpbmRpbmdTdGFydENvbHVtbik7CiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzBdLCAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaW5kZXgsIHdyaXRlciwgc3RhdGUpOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGVbMF0gPCBlbmRMaW5lKSB7CiAgICAgICAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBlbmRMaW5lKTsKICAgICAgICAgIHN0YXRlWzBdID0gZW5kTGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kQ29sdW1uLCBzdGF0ZVsxXSk7CiAgICAgICAgcmV0dXJuIGluZGV4OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhdGNodXBMaW5lKHdyaXRlciwgbGFzdExpbmUsIGxpbmUpIHsKICAgICAgICBkbyB7CiAgICAgICAgICB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTsKICAgICAgICB9IHdoaWxlICgrK2xhc3RMaW5lIDwgbGluZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVjb2RlKG1hcHBpbmdzKSB7CiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IG1hcHBpbmdzOwogICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIobWFwcGluZ3MpOwogICAgICAgIGNvbnN0IGRlY29kZWQgPSBbXTsKICAgICAgICBsZXQgZ2VuQ29sdW1uID0gMDsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgY29uc3QgbGluZSA9IFtdOwogICAgICAgICAgbGV0IHNvcnRlZCA9IHRydWU7CiAgICAgICAgICBsZXQgbGFzdENvbCA9IDA7CiAgICAgICAgICBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBzZW1pKSB7CiAgICAgICAgICAgIGxldCBzZWc7CiAgICAgICAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pOwogICAgICAgICAgICBpZiAoZ2VuQ29sdW1uIDwgbGFzdENvbCkKICAgICAgICAgICAgICBzb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgbGFzdENvbCA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgIHNvdXJjZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VzSW5kZXgpOwogICAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlTGluZSk7CiAgICAgICAgICAgICAgc291cmNlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZUNvbHVtbik7CiAgICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgICAgbmFtZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBuYW1lc0luZGV4KTsKICAgICAgICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2VnID0gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW5dOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzZWcgPSBbZ2VuQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsaW5lLnB1c2goc2VnKTsKICAgICAgICAgICAgcmVhZGVyLnBvcysrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFzb3J0ZWQpCiAgICAgICAgICAgIHNvcnQobGluZSk7CiAgICAgICAgICBkZWNvZGVkLnB1c2gobGluZSk7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8PSBsZW5ndGgpOwogICAgICAgIHJldHVybiBkZWNvZGVkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNvcnQobGluZSkgewogICAgICAgIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYSwgYikgewogICAgICAgIHJldHVybiBhWzBdIC0gYlswXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZCkgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07CiAgICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgIHdyaXRlci53cml0ZShzZW1pY29sb24pOwogICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGxldCBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBsaW5lW2pdOwogICAgICAgICAgICBpZiAoaiA+IDApCiAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICAgICAgZ2VuQ29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMF0sIGdlbkNvbHVtbik7CiAgICAgICAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgc291cmNlc0luZGV4ID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMV0sIHNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsyXSwgc291cmNlTGluZSk7CiAgICAgICAgICAgIHNvdXJjZUNvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzNdLCBzb3VyY2VDb2x1bW4pOwogICAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPT09IDQpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIG5hbWVzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFs0XSwgbmFtZXNJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB3cml0ZXIuZmx1c2goKTsKICAgICAgfQogICAgICBleHBvcnRzMy5kZWNvZGUgPSBkZWNvZGU7CiAgICAgIGV4cG9ydHMzLmRlY29kZUdlbmVyYXRlZFJhbmdlcyA9IGRlY29kZUdlbmVyYXRlZFJhbmdlczsKICAgICAgZXhwb3J0czMuZGVjb2RlT3JpZ2luYWxTY29wZXMgPSBkZWNvZGVPcmlnaW5hbFNjb3BlczsKICAgICAgZXhwb3J0czMuZW5jb2RlID0gZW5jb2RlOwogICAgICBleHBvcnRzMy5lbmNvZGVHZW5lcmF0ZWRSYW5nZXMgPSBlbmNvZGVHZW5lcmF0ZWRSYW5nZXM7CiAgICAgIGV4cG9ydHMzLmVuY29kZU9yaWdpbmFsU2NvcGVzID0gZW5jb2RlT3JpZ2luYWxTY29wZXM7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcwp2YXIgcmVxdWlyZV9tYWdpY19zdHJpbmdfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBzb3VyY2VtYXBDb2RlYyA9IHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCgpOwogICAgdmFyIEJpdFNldCA9IGNsYXNzIF9CaXRTZXQgewogICAgICBjb25zdHJ1Y3RvcihhcmcpIHsKICAgICAgICB0aGlzLmJpdHMgPSBhcmcgaW5zdGFuY2VvZiBfQml0U2V0ID8gYXJnLmJpdHMuc2xpY2UoKSA6IFtdOwogICAgICB9CiAgICAgIGFkZChuMikgewogICAgICAgIHRoaXMuYml0c1tuMiA+PiA1XSB8PSAxIDw8IChuMiAmIDMxKTsKICAgICAgfQogICAgICBoYXMobjIpIHsKICAgICAgICByZXR1cm4gISEodGhpcy5iaXRzW24yID4+IDVdICYgMSA8PCAobjIgJiAzMSkpOwogICAgICB9CiAgICB9OwogICAgdmFyIENodW5rID0gY2xhc3MgX0NodW5rIHsKICAgICAgY29uc3RydWN0b3Ioc3RhcnQsIGVuZCwgY29udGVudCkgewogICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKICAgICAgICB0aGlzLmVuZCA9IGVuZDsKICAgICAgICB0aGlzLm9yaWdpbmFsID0gY29udGVudDsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5zdG9yZU5hbWUgPSBmYWxzZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIHsKICAgICAgICAgIHRoaXMucHJldmlvdXMgPSBudWxsOwogICAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXBwZW5kTGVmdChjb250ZW50KSB7CiAgICAgICAgdGhpcy5vdXRybyArPSBjb250ZW50OwogICAgICB9CiAgICAgIGFwcGVuZFJpZ2h0KGNvbnRlbnQpIHsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRybyArIGNvbnRlbnQ7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgX0NodW5rKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICBjaHVuay5pbnRybyA9IHRoaXMuaW50cm87CiAgICAgICAgY2h1bmsub3V0cm8gPSB0aGlzLm91dHJvOwogICAgICAgIGNodW5rLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7CiAgICAgICAgY2h1bmsuc3RvcmVOYW1lID0gdGhpcy5zdG9yZU5hbWU7CiAgICAgICAgY2h1bmsuZWRpdGVkID0gdGhpcy5lZGl0ZWQ7CiAgICAgICAgcmV0dXJuIGNodW5rOwogICAgICB9CiAgICAgIGNvbnRhaW5zKGluZGV4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQgPCBpbmRleCAmJiBpbmRleCA8IHRoaXMuZW5kOwogICAgICB9CiAgICAgIGVhY2hOZXh0KGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWFjaFByZXZpb3VzKGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVkaXQoY29udGVudCwgc3RvcmVOYW1lLCBjb250ZW50T25seSkgewogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgaWYgKCFjb250ZW50T25seSkgewogICAgICAgICAgdGhpcy5pbnRybyA9ICIiOwogICAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIH0KICAgICAgICB0aGlzLnN0b3JlTmFtZSA9IHN0b3JlTmFtZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IHRydWU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZExlZnQoY29udGVudCkgewogICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICBwcmVwZW5kUmlnaHQoY29udGVudCkgewogICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIGlmICh0aGlzLmVkaXRlZCkgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5vcmlnaW5hbDsKICAgICAgICAgIHRoaXMuc3RvcmVOYW1lID0gZmFsc2U7CiAgICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBzcGxpdChpbmRleCkgewogICAgICAgIGNvbnN0IHNsaWNlSW5kZXggPSBpbmRleCAtIHRoaXMuc3RhcnQ7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCZWZvcmUgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKDAsIHNsaWNlSW5kZXgpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQWZ0ZXIgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHNsaWNlSW5kZXgpOwogICAgICAgIHRoaXMub3JpZ2luYWwgPSBvcmlnaW5hbEJlZm9yZTsKICAgICAgICBjb25zdCBuZXdDaHVuayA9IG5ldyBfQ2h1bmsoaW5kZXgsIHRoaXMuZW5kLCBvcmlnaW5hbEFmdGVyKTsKICAgICAgICBuZXdDaHVuay5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuZW5kID0gaW5kZXg7CiAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICBuZXdDaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB0aGlzLmNvbnRlbnQgPSAiIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gb3JpZ2luYWxCZWZvcmU7CiAgICAgICAgfQogICAgICAgIG5ld0NodW5rLm5leHQgPSB0aGlzLm5leHQ7CiAgICAgICAgaWYgKG5ld0NodW5rLm5leHQpIG5ld0NodW5rLm5leHQucHJldmlvdXMgPSBuZXdDaHVuazsKICAgICAgICBuZXdDaHVuay5wcmV2aW91cyA9IHRoaXM7CiAgICAgICAgdGhpcy5uZXh0ID0gbmV3Q2h1bms7CiAgICAgICAgcmV0dXJuIG5ld0NodW5rOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgdGhpcy5jb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICB0cmltRW5kKHJ4KSB7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIHRoaXMuc3BsaXQodGhpcy5zdGFydCArIHRyaW1tZWQubGVuZ3RoKS5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgICBpZiAodGhpcy5lZGl0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLmVkaXQodHJpbW1lZCwgdGhpcy5zdG9yZU5hbWUsIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KHJ4KSB7CiAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLmludHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gdGhpcy5zcGxpdCh0aGlzLmVuZCAtIHRyaW1tZWQubGVuZ3RoKTsKICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICAgICAgbmV3Q2h1bmsuZWRpdCh0cmltbWVkLCB0aGlzLnN0b3JlTmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZWRpdCgiIiwgdm9pZCAwLCB0cnVlKTsKICAgICAgICAgIHRoaXMub3V0cm8gPSB0aGlzLm91dHJvLnJlcGxhY2UocngsICIiKTsKICAgICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gZ2V0QnRvYSgpIHsKICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5idG9hID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIChzdHIyKSA9PiBnbG9iYWxUaGlzLmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cjIpKSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJldHVybiAoc3RyMikgPT4gQnVmZmVyLmZyb20oc3RyMiwgInV0Zi04IikudG9TdHJpbmcoImJhc2U2NCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGVudmlyb25tZW50OiBgd2luZG93LmJ0b2FgIG9yIGBCdWZmZXJgIHNob3VsZCBiZSBzdXBwb3J0ZWQuIik7CiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgdmFyIGJ0b2EgPSAvKiBAX19QVVJFX18gKi8gZ2V0QnRvYSgpOwogICAgdmFyIFNvdXJjZU1hcCA9IGNsYXNzIHsKICAgICAgY29uc3RydWN0b3IocHJvcGVydGllcykgewogICAgICAgIHRoaXMudmVyc2lvbiA9IDM7CiAgICAgICAgdGhpcy5maWxlID0gcHJvcGVydGllcy5maWxlOwogICAgICAgIHRoaXMuc291cmNlcyA9IHByb3BlcnRpZXMuc291cmNlczsKICAgICAgICB0aGlzLnNvdXJjZXNDb250ZW50ID0gcHJvcGVydGllcy5zb3VyY2VzQ29udGVudDsKICAgICAgICB0aGlzLm5hbWVzID0gcHJvcGVydGllcy5uYW1lczsKICAgICAgICB0aGlzLm1hcHBpbmdzID0gc291cmNlbWFwQ29kZWMuZW5jb2RlKHByb3BlcnRpZXMubWFwcGluZ3MpOwogICAgICAgIGlmICh0eXBlb2YgcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgdGhpcy54X2dvb2dsZV9pZ25vcmVMaXN0ID0gcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXMuZGVidWdJZCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHRoaXMuZGVidWdJZCA9IHByb3BlcnRpZXMuZGVidWdJZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpOwogICAgICB9CiAgICAgIHRvVXJsKCkgewogICAgICAgIHJldHVybiAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyBidG9hKHRoaXMudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBndWVzc0luZGVudChjb2RlKSB7CiAgICAgIGNvbnN0IGxpbmVzID0gY29kZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgdGFiYmVkID0gbGluZXMuZmlsdGVyKChsaW5lKSA9PiAvXlx0Ky8udGVzdChsaW5lKSk7CiAgICAgIGNvbnN0IHNwYWNlZCA9IGxpbmVzLmZpbHRlcigobGluZSkgPT4gL14gezIsfS8udGVzdChsaW5lKSk7CiAgICAgIGlmICh0YWJiZWQubGVuZ3RoID09PSAwICYmIHNwYWNlZC5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBpZiAodGFiYmVkLmxlbmd0aCA+PSBzcGFjZWQubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuICIJIjsKICAgICAgfQogICAgICBjb25zdCBtaW4gPSBzcGFjZWQucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICAgIGNvbnN0IG51bVNwYWNlcyA9IC9eICsvLmV4ZWMoY3VycmVudClbMF0ubGVuZ3RoOwogICAgICAgIHJldHVybiBNYXRoLm1pbihudW1TcGFjZXMsIHByZXZpb3VzKTsKICAgICAgfSwgSW5maW5pdHkpOwogICAgICByZXR1cm4gbmV3IEFycmF5KG1pbiArIDEpLmpvaW4oIiAiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChmcm9tLCB0bykgewogICAgICBjb25zdCBmcm9tUGFydHMgPSBmcm9tLnNwbGl0KC9bL1xcXS8pOwogICAgICBjb25zdCB0b1BhcnRzID0gdG8uc3BsaXQoL1svXFxdLyk7CiAgICAgIGZyb21QYXJ0cy5wb3AoKTsKICAgICAgd2hpbGUgKGZyb21QYXJ0c1swXSA9PT0gdG9QYXJ0c1swXSkgewogICAgICAgIGZyb21QYXJ0cy5zaGlmdCgpOwogICAgICAgIHRvUGFydHMuc2hpZnQoKTsKICAgICAgfQogICAgICBpZiAoZnJvbVBhcnRzLmxlbmd0aCkgewogICAgICAgIGxldCBpID0gZnJvbVBhcnRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSBmcm9tUGFydHNbaV0gPSAiLi4iOwogICAgICB9CiAgICAgIHJldHVybiBmcm9tUGFydHMuY29uY2F0KHRvUGFydHMpLmpvaW4oIi8iKTsKICAgIH0KICAgIHZhciB0b1N0cmluZzIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwogICAgZnVuY3Rpb24gaXNPYmplY3QyKHRoaW5nKSB7CiAgICAgIHJldHVybiB0b1N0cmluZzIuY2FsbCh0aGluZykgPT09ICJbb2JqZWN0IE9iamVjdF0iOwogICAgfQogICAgZnVuY3Rpb24gZ2V0TG9jYXRvcihzb3VyY2UpIHsKICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgbGluZU9mZnNldHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDAsIHBvcyA9IDA7IGkgPCBvcmlnaW5hbExpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGluZU9mZnNldHMucHVzaChwb3MpOwogICAgICAgIHBvcyArPSBvcmlnaW5hbExpbmVzW2ldLmxlbmd0aCArIDE7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvY2F0ZShpbmRleCkgewogICAgICAgIGxldCBpID0gMDsKICAgICAgICBsZXQgaiA9IGxpbmVPZmZzZXRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaSA8IGopIHsKICAgICAgICAgIGNvbnN0IG0gPSBpICsgaiA+PiAxOwogICAgICAgICAgaWYgKGluZGV4IDwgbGluZU9mZnNldHNbbV0pIHsKICAgICAgICAgICAgaiA9IG07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpID0gbSArIDE7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxpbmUgPSBpIC0gMTsKICAgICAgICBjb25zdCBjb2x1bW4gPSBpbmRleCAtIGxpbmVPZmZzZXRzW2xpbmVdOwogICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9OwogICAgICB9OwogICAgfQogICAgdmFyIHdvcmRSZWdleCA9IC9cdy87CiAgICB2YXIgTWFwcGluZ3MgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGhpcmVzKSB7CiAgICAgICAgdGhpcy5oaXJlcyA9IGhpcmVzOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUxpbmUgPSAwOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgdGhpcy5yYXcgPSBbXTsKICAgICAgICB0aGlzLnJhd1NlZ21lbnRzID0gdGhpcy5yYXdbdGhpcy5nZW5lcmF0ZWRDb2RlTGluZV0gPSBbXTsKICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkZEVkaXQoc291cmNlSW5kZXgsIGNvbnRlbnQsIGxvYywgbmFtZUluZGV4KSB7CiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBjb250ZW50TGVuZ3RoTWludXNPbmUgPSBjb250ZW50Lmxlbmd0aCAtIDE7CiAgICAgICAgICBsZXQgY29udGVudExpbmVFbmQgPSBjb250ZW50LmluZGV4T2YoIlxuIiwgMCk7CiAgICAgICAgICBsZXQgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IC0xOwogICAgICAgICAgd2hpbGUgKGNvbnRlbnRMaW5lRW5kID49IDAgJiYgY29udGVudExlbmd0aE1pbnVzT25lID4gY29udGVudExpbmVFbmQpIHsKICAgICAgICAgICAgY29uc3Qgc2VnbWVudDIgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgICBzZWdtZW50Mi5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5yYXdTZWdtZW50cy5wdXNoKHNlZ21lbnQyKTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IGNvbnRlbnRMaW5lRW5kOwogICAgICAgICAgICBjb250ZW50TGluZUVuZCA9IGNvbnRlbnQuaW5kZXhPZigiXG4iLCBjb250ZW50TGluZUVuZCArIDEpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2VnbWVudCA9IFt0aGlzLmdlbmVyYXRlZENvZGVDb2x1bW4sIHNvdXJjZUluZGV4LCBsb2MubGluZSwgbG9jLmNvbHVtbl07CiAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgc2VnbWVudC5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICB0aGlzLmFkdmFuY2UoY29udGVudC5zbGljZShwcmV2aW91c0NvbnRlbnRMaW5lRW5kICsgMSkpOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nKSB7CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2godGhpcy5wZW5kaW5nKTsKICAgICAgICAgIHRoaXMuYWR2YW5jZShjb250ZW50KTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gbnVsbDsKICAgICAgfQogICAgICBhZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgb3JpZ2luYWwsIGxvYywgc291cmNlbWFwTG9jYXRpb25zKSB7CiAgICAgICAgbGV0IG9yaWdpbmFsQ2hhckluZGV4ID0gY2h1bmsuc3RhcnQ7CiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTsKICAgICAgICBsZXQgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENoYXJJbmRleCA8IGNodW5rLmVuZCkgewogICAgICAgICAgaWYgKG9yaWdpbmFsW29yaWdpbmFsQ2hhckluZGV4XSA9PT0gIlxuIikgewogICAgICAgICAgICBsb2MubGluZSArPSAxOwogICAgICAgICAgICBsb2MuY29sdW1uID0gMDsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgZmlyc3QgPSB0cnVlOwogICAgICAgICAgICBjaGFySW5IaXJlc0JvdW5kYXJ5ID0gZmFsc2U7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5oaXJlcyB8fCBmaXJzdCB8fCBzb3VyY2VtYXBMb2NhdGlvbnMuaGFzKG9yaWdpbmFsQ2hhckluZGV4KSkgewogICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICAgIGlmICh0aGlzLmhpcmVzID09PSAiYm91bmRhcnkiKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZFJlZ2V4LnRlc3Qob3JpZ2luYWxbb3JpZ2luYWxDaGFySW5kZXhdKSkgewogICAgICAgICAgICAgICAgICBpZiAoIWNoYXJJbkhpcmVzQm91bmRhcnkpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmF3U2VnbWVudHMucHVzaChzZWdtZW50KTsKICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGxvYy5jb2x1bW4gKz0gMTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uICs9IDE7CiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvcmlnaW5hbENoYXJJbmRleCArPSAxOwogICAgICAgIH0KICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkdmFuY2Uoc3RyMikgewogICAgICAgIGlmICghc3RyMikgcmV0dXJuOwogICAgICAgIGNvbnN0IGxpbmVzID0gc3RyMi5zcGxpdCgiXG4iKTsKICAgICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkgewogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSsrOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiArPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGg7CiAgICAgIH0KICAgIH07CiAgICB2YXIgbiA9ICJcbiI7CiAgICB2YXIgd2FybmVkID0gewogICAgICBpbnNlcnRMZWZ0OiBmYWxzZSwKICAgICAgaW5zZXJ0UmlnaHQ6IGZhbHNlLAogICAgICBzdG9yZU5hbWU6IGZhbHNlCiAgICB9OwogICAgdmFyIE1hZ2ljU3RyaW5nID0gY2xhc3MgX01hZ2ljU3RyaW5nIHsKICAgICAgY29uc3RydWN0b3Ioc3RyaW5nLCBvcHRpb25zID0ge30pIHsKICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBDaHVuaygwLCBzdHJpbmcubGVuZ3RoLCBzdHJpbmcpOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKICAgICAgICAgIG9yaWdpbmFsOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogc3RyaW5nIH0sCiAgICAgICAgICBvdXRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBpbnRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBmaXJzdENodW5rOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogY2h1bmsgfSwKICAgICAgICAgIGxhc3RDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBsYXN0U2VhcmNoZWRDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBieVN0YXJ0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGJ5RW5kOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGZpbGVuYW1lOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5maWxlbmFtZSB9LAogICAgICAgICAgaW5kZW50RXhjbHVzaW9uUmFuZ2VzOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pbmRlbnRFeGNsdXNpb25SYW5nZXMgfSwKICAgICAgICAgIHNvdXJjZW1hcExvY2F0aW9uczogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG5ldyBCaXRTZXQoKSB9LAogICAgICAgICAgc3RvcmVkTmFtZXM6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB7fSB9LAogICAgICAgICAgaW5kZW50U3RyOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogdm9pZCAwIH0sCiAgICAgICAgICBpZ25vcmVMaXN0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pZ25vcmVMaXN0IH0sCiAgICAgICAgICBvZmZzZXQ6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBvcHRpb25zLm9mZnNldCB8fCAwIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLmJ5U3RhcnRbMF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5RW5kW3N0cmluZy5sZW5ndGhdID0gY2h1bms7CiAgICAgIH0KICAgICAgYWRkU291cmNlbWFwTG9jYXRpb24oY2hhcikgewogICAgICAgIHRoaXMuc291cmNlbWFwTG9jYXRpb25zLmFkZChjaGFyKTsKICAgICAgfQogICAgICBhcHBlbmQoY29udGVudCkgewogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoIm91dHJvIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kTGVmdChjb250ZW50KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5pbnRybyArPSBjb250ZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGluZGV4ID0gaW5kZXggKyB0aGlzLm9mZnNldDsKICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICJzdHJpbmciKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnNlcnRlZCBjb250ZW50IG11c3QgYmUgYSBzdHJpbmciKTsKICAgICAgICB0aGlzLl9zcGxpdChpbmRleCk7CiAgICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmJ5U3RhcnRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2xvbmVkID0gbmV3IF9NYWdpY1N0cmluZyh0aGlzLm9yaWdpbmFsLCB7IGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLCBvZmZzZXQ6IHRoaXMub2Zmc2V0IH0pOwogICAgICAgIGxldCBvcmlnaW5hbENodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGxldCBjbG9uZWRDaHVuayA9IGNsb25lZC5maXJzdENodW5rID0gY2xvbmVkLmxhc3RTZWFyY2hlZENodW5rID0gb3JpZ2luYWxDaHVuay5jbG9uZSgpOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENodW5rKSB7CiAgICAgICAgICBjbG9uZWQuYnlTdGFydFtjbG9uZWRDaHVuay5zdGFydF0gPSBjbG9uZWRDaHVuazsKICAgICAgICAgIGNsb25lZC5ieUVuZFtjbG9uZWRDaHVuay5lbmRdID0gY2xvbmVkQ2h1bms7CiAgICAgICAgICBjb25zdCBuZXh0T3JpZ2luYWxDaHVuayA9IG9yaWdpbmFsQ2h1bmsubmV4dDsKICAgICAgICAgIGNvbnN0IG5leHRDbG9uZWRDaHVuayA9IG5leHRPcmlnaW5hbENodW5rICYmIG5leHRPcmlnaW5hbENodW5rLmNsb25lKCk7CiAgICAgICAgICBpZiAobmV4dENsb25lZENodW5rKSB7CiAgICAgICAgICAgIGNsb25lZENodW5rLm5leHQgPSBuZXh0Q2xvbmVkQ2h1bms7CiAgICAgICAgICAgIG5leHRDbG9uZWRDaHVuay5wcmV2aW91cyA9IGNsb25lZENodW5rOwogICAgICAgICAgICBjbG9uZWRDaHVuayA9IG5leHRDbG9uZWRDaHVuazsKICAgICAgICAgIH0KICAgICAgICAgIG9yaWdpbmFsQ2h1bmsgPSBuZXh0T3JpZ2luYWxDaHVuazsKICAgICAgICB9CiAgICAgICAgY2xvbmVkLmxhc3RDaHVuayA9IGNsb25lZENodW5rOwogICAgICAgIGlmICh0aGlzLmluZGVudEV4Y2x1c2lvblJhbmdlcykgewogICAgICAgICAgY2xvbmVkLmluZGVudEV4Y2x1c2lvblJhbmdlcyA9IHRoaXMuaW5kZW50RXhjbHVzaW9uUmFuZ2VzLnNsaWNlKCk7CiAgICAgICAgfQogICAgICAgIGNsb25lZC5zb3VyY2VtYXBMb2NhdGlvbnMgPSBuZXcgQml0U2V0KHRoaXMuc291cmNlbWFwTG9jYXRpb25zKTsKICAgICAgICBjbG9uZWQuaW50cm8gPSB0aGlzLmludHJvOwogICAgICAgIGNsb25lZC5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgcmV0dXJuIGNsb25lZDsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gMDsKICAgICAgICBjb25zdCBuYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkTmFtZXMpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gbmV3IE1hcHBpbmdzKG9wdGlvbnMuaGlyZXMpOwogICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IodGhpcy5vcmlnaW5hbCk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0ZShjaHVuay5zdGFydCk7CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLmludHJvKTsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgbWFwcGluZ3MuYWRkRWRpdCgKICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICBjaHVuay5jb250ZW50LAogICAgICAgICAgICAgIGxvYywKICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgdGhpcy5vcmlnaW5hbCwgbG9jLCB0aGlzLnNvdXJjZW1hcExvY2F0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlID8gb3B0aW9ucy5maWxlLnNwbGl0KC9bL1xcXS8pLnBvcCgpIDogdm9pZCAwLAogICAgICAgICAgc291cmNlczogWwogICAgICAgICAgICBvcHRpb25zLnNvdXJjZSA/IGdldFJlbGF0aXZlUGF0aChvcHRpb25zLmZpbGUgfHwgIiIsIG9wdGlvbnMuc291cmNlKSA6IG9wdGlvbnMuZmlsZSB8fCAiIgogICAgICAgICAgXSwKICAgICAgICAgIHNvdXJjZXNDb250ZW50OiBvcHRpb25zLmluY2x1ZGVDb250ZW50ID8gW3RoaXMub3JpZ2luYWxdIDogdm9pZCAwLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdDogdGhpcy5pZ25vcmVMaXN0ID8gW3NvdXJjZUluZGV4XSA6IHZvaWQgMAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBfZW5zdXJlaW5kZW50U3RyKCkgewogICAgICAgIGlmICh0aGlzLmluZGVudFN0ciA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aGlzLmluZGVudFN0ciA9IGd1ZXNzSW5kZW50KHRoaXMub3JpZ2luYWwpOwogICAgICAgIH0KICAgICAgfQogICAgICBfZ2V0UmF3SW5kZW50U3RyaW5nKCkgewogICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgIHJldHVybiB0aGlzLmluZGVudFN0cjsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgdGhpcy5fZW5zdXJlaW5kZW50U3RyKCk7CiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZW50U3RyID09PSBudWxsID8gIgkiIDogdGhpcy5pbmRlbnRTdHI7CiAgICAgIH0KICAgICAgaW5kZW50KGluZGVudFN0ciwgb3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvXlteXHJcbl0vZ207CiAgICAgICAgaWYgKGlzT2JqZWN0MihpbmRlbnRTdHIpKSB7CiAgICAgICAgICBvcHRpb25zID0gaW5kZW50U3RyOwogICAgICAgICAgaW5kZW50U3RyID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSB2b2lkIDApIHsKICAgICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgICAgaW5kZW50U3RyID0gdGhpcy5pbmRlbnRTdHIgfHwgIgkiOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgY29uc3QgaXNFeGNsdWRlZCA9IHt9OwogICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGUpIHsKICAgICAgICAgIGNvbnN0IGV4Y2x1c2lvbnMgPSB0eXBlb2Ygb3B0aW9ucy5leGNsdWRlWzBdID09PSAibnVtYmVyIiA/IFtvcHRpb25zLmV4Y2x1ZGVdIDogb3B0aW9ucy5leGNsdWRlOwogICAgICAgICAgZXhjbHVzaW9ucy5mb3JFYWNoKChleGNsdXNpb24pID0+IHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IGV4Y2x1c2lvblswXTsgaSA8IGV4Y2x1c2lvblsxXTsgaSArPSAxKSB7CiAgICAgICAgICAgICAgaXNFeGNsdWRlZFtpXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBsZXQgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IG9wdGlvbnMuaW5kZW50U3RhcnQgIT09IGZhbHNlOwogICAgICAgIGNvbnN0IHJlcGxhY2VyID0gKG1hdGNoKSA9PiB7CiAgICAgICAgICBpZiAoc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgcmV0dXJuIGAke2luZGVudFN0cn0ke21hdGNofWA7CiAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gdHJ1ZTsKICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICB9OwogICAgICAgIHRoaXMuaW50cm8gPSB0aGlzLmludHJvLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZXIpOwogICAgICAgIGxldCBjaGFySW5kZXggPSAwOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGNvbnN0IGVuZCA9IGNodW5rLmVuZDsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgaWYgKCFpc0V4Y2x1ZGVkW2NoYXJJbmRleF0pIHsKICAgICAgICAgICAgICBjaHVuay5jb250ZW50ID0gY2h1bmsuY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VyKTsKICAgICAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHNob3VsZEluZGVudE5leHRDaGFyYWN0ZXIgPSBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjaGFySW5kZXggPSBjaHVuay5zdGFydDsKICAgICAgICAgICAgd2hpbGUgKGNoYXJJbmRleCA8IGVuZCkgewogICAgICAgICAgICAgIGlmICghaXNFeGNsdWRlZFtjaGFySW5kZXhdKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gdGhpcy5vcmlnaW5hbFtjaGFySW5kZXhdOwogICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICJcbiIpIHsKICAgICAgICAgICAgICAgICAgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgIT09ICJcciIgJiYgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgewogICAgICAgICAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGlmIChjaGFySW5kZXggPT09IGNodW5rLnN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3BsaXRDaHVuayhjaHVuaywgY2hhckluZGV4KTsKICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2hhckluZGV4ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGNoYXJJbmRleCA9IGNodW5rLmVuZDsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlcik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgaW5zZXJ0KCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgcHJlcGVuZFJpZ2h0KC4uLikgb3IgYXBwZW5kTGVmdCguLi4pIgogICAgICAgICk7CiAgICAgIH0KICAgICAgaW5zZXJ0TGVmdChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydExlZnQpIHsKICAgICAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIm1hZ2ljU3RyaW5nLmluc2VydExlZnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgbWFnaWNTdHJpbmcuYXBwZW5kTGVmdCguLi4pIGluc3RlYWQiCiAgICAgICAgICApOwogICAgICAgICAgd2FybmVkLmluc2VydExlZnQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KTsKICAgICAgfQogICAgICBpbnNlcnRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydFJpZ2h0KSB7CiAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnRSaWdodCguLi4pIGlzIGRlcHJlY2F0ZWQuIFVzZSBtYWdpY1N0cmluZy5wcmVwZW5kUmlnaHQoLi4uKSBpbnN0ZWFkIgogICAgICAgICAgKTsKICAgICAgICAgIHdhcm5lZC5pbnNlcnRSaWdodCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLnByZXBlbmRSaWdodChpbmRleCwgY29udGVudCk7CiAgICAgIH0KICAgICAgbW92ZShzdGFydCwgZW5kLCBpbmRleCkgewogICAgICAgIHN0YXJ0ID0gc3RhcnQgKyB0aGlzLm9mZnNldDsKICAgICAgICBlbmQgPSBlbmQgKyB0aGlzLm9mZnNldDsKICAgICAgICBpbmRleCA9IGluZGV4ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKGluZGV4ID49IHN0YXJ0ICYmIGluZGV4IDw9IGVuZCkgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbW92ZSBhIHNlbGVjdGlvbiBpbnNpZGUgaXRzZWxmIik7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgdGhpcy5fc3BsaXQoaW5kZXgpOwogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGNvbnN0IG9sZExlZnQgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICBjb25zdCBvbGRSaWdodCA9IGxhc3QubmV4dDsKICAgICAgICBjb25zdCBuZXdSaWdodCA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKCFuZXdSaWdodCAmJiBsYXN0ID09PSB0aGlzLmxhc3RDaHVuaykgcmV0dXJuIHRoaXM7CiAgICAgICAgY29uc3QgbmV3TGVmdCA9IG5ld1JpZ2h0ID8gbmV3UmlnaHQucHJldmlvdXMgOiB0aGlzLmxhc3RDaHVuazsKICAgICAgICBpZiAob2xkTGVmdCkgb2xkTGVmdC5uZXh0ID0gb2xkUmlnaHQ7CiAgICAgICAgaWYgKG9sZFJpZ2h0KSBvbGRSaWdodC5wcmV2aW91cyA9IG9sZExlZnQ7CiAgICAgICAgaWYgKG5ld0xlZnQpIG5ld0xlZnQubmV4dCA9IGZpcnN0OwogICAgICAgIGlmIChuZXdSaWdodCkgbmV3UmlnaHQucHJldmlvdXMgPSBsYXN0OwogICAgICAgIGlmICghZmlyc3QucHJldmlvdXMpIHRoaXMuZmlyc3RDaHVuayA9IGxhc3QubmV4dDsKICAgICAgICBpZiAoIWxhc3QubmV4dCkgewogICAgICAgICAgdGhpcy5sYXN0Q2h1bmsgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICAgIHRoaXMubGFzdENodW5rLm5leHQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBmaXJzdC5wcmV2aW91cyA9IG5ld0xlZnQ7CiAgICAgICAgbGFzdC5uZXh0ID0gbmV3UmlnaHQgfHwgbnVsbDsKICAgICAgICBpZiAoIW5ld0xlZnQpIHRoaXMuZmlyc3RDaHVuayA9IGZpcnN0OwogICAgICAgIGlmICghbmV3UmlnaHQpIHRoaXMubGFzdENodW5rID0gbGFzdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvdmVyd3JpdGUoc3RhcnQsIGVuZCwgY29udGVudCwgb3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShzdGFydCwgZW5kLCBjb250ZW50LCB7IC4uLm9wdGlvbnMsIG92ZXJ3cml0ZTogIW9wdGlvbnMuY29udGVudE9ubHkgfSk7CiAgICAgIH0KICAgICAgdXBkYXRlKHN0YXJ0LCBlbmQsIGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigicmVwbGFjZW1lbnQgY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChlbmQgPiB0aGlzLm9yaWdpbmFsLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCJlbmQgaXMgb3V0IG9mIGJvdW5kcyIpOwogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiQ2Fubm90IG92ZXJ3cml0ZSBhIHplcm8tbGVuZ3RoIHJhbmdlIFx1MjAxMyB1c2UgYXBwZW5kTGVmdCBvciBwcmVwZW5kUmlnaHQgaW5zdGVhZCIKICAgICAgICAgICk7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUpIHsKICAgICAgICAgIGlmICghd2FybmVkLnN0b3JlTmFtZSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgIlRoZSBmaW5hbCBhcmd1bWVudCB0byBtYWdpY1N0cmluZy5vdmVyd3JpdGUoLi4uKSBzaG91bGQgYmUgYW4gb3B0aW9ucyBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcmljaC1oYXJyaXMvbWFnaWMtc3RyaW5nIgogICAgICAgICAgICApOwogICAgICAgICAgICB3YXJuZWQuc3RvcmVOYW1lID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wdGlvbnMgPSB7IHN0b3JlTmFtZTogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBzdG9yZU5hbWUgPSBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zLnN0b3JlTmFtZSA6IGZhbHNlOwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZSA9IG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMub3ZlcndyaXRlIDogZmFsc2U7CiAgICAgICAgaWYgKHN0b3JlTmFtZSkgewogICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc3RvcmVkTmFtZXMsIG9yaWdpbmFsLCB7CiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgICB2YWx1ZTogdHJ1ZSwKICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGlmIChmaXJzdCkgewogICAgICAgICAgbGV0IGNodW5rID0gZmlyc3Q7CiAgICAgICAgICB3aGlsZSAoY2h1bmsgIT09IGxhc3QpIHsKICAgICAgICAgICAgaWYgKGNodW5rLm5leHQgIT09IHRoaXMuYnlTdGFydFtjaHVuay5lbmRdKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgb3ZlcndyaXRlIGFjcm9zcyBhIHNwbGl0IHBvaW50Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICBjaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmaXJzdC5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSwgIW92ZXJ3cml0ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gbmV3IENodW5rKHN0YXJ0LCBlbmQsICIiKS5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSk7CiAgICAgICAgICBsYXN0Lm5leHQgPSBuZXdDaHVuazsKICAgICAgICAgIG5ld0NodW5rLnByZXZpb3VzID0gbGFzdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZChjb250ZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cm8gY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgdGhpcy5pbnRybyA9IGNvbnRlbnQgKyB0aGlzLmludHJvOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHByZXBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsucHJlcGVuZExlZnQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5wcmVwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcmVtb3ZlKHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5pbnRybyA9ICIiOwogICAgICAgICAgY2h1bmsub3V0cm8gPSAiIjsKICAgICAgICAgIGNodW5rLmVkaXQoIiIpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlc2V0KHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5yZXNldCgpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGxhc3RDaGFyKCkgewogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRoaXMub3V0cm9bdGhpcy5vdXRyby5sZW5ndGggLSAxXTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsub3V0cm9bY2h1bmsub3V0cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHJldHVybiBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsuaW50cm9bY2h1bmsuaW50cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgfSB3aGlsZSAoY2h1bmsgPSBjaHVuay5wcmV2aW91cyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdGhpcy5pbnRyb1t0aGlzLmludHJvLmxlbmd0aCAtIDFdOwogICAgICAgIHJldHVybiAiIjsKICAgICAgfQogICAgICBsYXN0TGluZSgpIHsKICAgICAgICBsZXQgbGluZUluZGV4ID0gdGhpcy5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIHRoaXMub3V0cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpOwogICAgICAgIGxldCBsaW5lU3RyID0gdGhpcy5vdXRybzsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPT0gLTEpIHJldHVybiBjaHVuay5vdXRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgICAgICBsaW5lU3RyID0gY2h1bmsub3V0cm8gKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnQubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5jb250ZW50Lmxhc3RJbmRleE9mKG4pOwogICAgICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIGNodW5rLmNvbnRlbnQuc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmNvbnRlbnQgKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGluZUluZGV4ID0gY2h1bmsuaW50cm8ubGFzdEluZGV4T2Yobik7CiAgICAgICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gY2h1bmsuaW50cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmludHJvICsgbGluZVN0cjsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLnByZXZpb3VzKTsKICAgICAgICBsaW5lSW5kZXggPSB0aGlzLmludHJvLmxhc3RJbmRleE9mKG4pOwogICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gdGhpcy5pbnRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgbGluZVN0cjsKICAgICAgfQogICAgICBzbGljZShzdGFydCA9IDAsIGVuZCA9IHRoaXMub3JpZ2luYWwubGVuZ3RoIC0gdGhpcy5vZmZzZXQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgd2hpbGUgKGNodW5rICYmIChjaHVuay5zdGFydCA+IHN0YXJ0IHx8IGNodW5rLmVuZCA8PSBzdGFydCkpIHsKICAgICAgICAgIGlmIChjaHVuay5zdGFydCA8IGVuZCAmJiBjaHVuay5lbmQgPj0gZW5kKSB7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmIChjaHVuayAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuc3RhcnQgIT09IHN0YXJ0KQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIHJlcGxhY2VkIGNoYXJhY3RlciAke3N0YXJ0fSBhcyBzbGljZSBzdGFydCBhbmNob3IuYCk7CiAgICAgICAgY29uc3Qgc3RhcnRDaHVuayA9IGNodW5rOwogICAgICAgIHdoaWxlIChjaHVuaykgewogICAgICAgICAgaWYgKGNodW5rLmludHJvICYmIChzdGFydENodW5rICE9PSBjaHVuayB8fCBjaHVuay5zdGFydCA9PT0gc3RhcnQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5pbnRybzsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGNvbnRhaW5zRW5kID0gY2h1bmsuc3RhcnQgPCBlbmQgJiYgY2h1bmsuZW5kID49IGVuZDsKICAgICAgICAgIGlmIChjb250YWluc0VuZCAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuZW5kICE9PSBlbmQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVzZSByZXBsYWNlZCBjaGFyYWN0ZXIgJHtlbmR9IGFzIHNsaWNlIGVuZCBhbmNob3IuYCk7CiAgICAgICAgICBjb25zdCBzbGljZVN0YXJ0ID0gc3RhcnRDaHVuayA9PT0gY2h1bmsgPyBzdGFydCAtIGNodW5rLnN0YXJ0IDogMDsKICAgICAgICAgIGNvbnN0IHNsaWNlRW5kID0gY29udGFpbnNFbmQgPyBjaHVuay5jb250ZW50Lmxlbmd0aCArIGVuZCAtIGNodW5rLmVuZCA6IGNodW5rLmNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgcmVzdWx0ICs9IGNodW5rLmNvbnRlbnQuc2xpY2Uoc2xpY2VTdGFydCwgc2xpY2VFbmQpOwogICAgICAgICAgaWYgKGNodW5rLm91dHJvICYmICghY29udGFpbnNFbmQgfHwgY2h1bmsuZW5kID09PSBlbmQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5vdXRybzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChjb250YWluc0VuZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGlzPyBub3QgcmVhbGx5IHZlcnkgdXNlZnVsCiAgICAgIHNuaXAoc3RhcnQsIGVuZCkgewogICAgICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpOwogICAgICAgIGNsb25lLnJlbW92ZSgwLCBzdGFydCk7CiAgICAgICAgY2xvbmUucmVtb3ZlKGVuZCwgY2xvbmUub3JpZ2luYWwubGVuZ3RoKTsKICAgICAgICByZXR1cm4gY2xvbmU7CiAgICAgIH0KICAgICAgX3NwbGl0KGluZGV4KSB7CiAgICAgICAgaWYgKHRoaXMuYnlTdGFydFtpbmRleF0gfHwgdGhpcy5ieUVuZFtpbmRleF0pIHJldHVybjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RTZWFyY2hlZENodW5rOwogICAgICAgIGNvbnN0IHNlYXJjaEZvcndhcmQgPSBpbmRleCA+IGNodW5rLmVuZDsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGlmIChjaHVuay5jb250YWlucyhpbmRleCkpIHJldHVybiB0aGlzLl9zcGxpdENodW5rKGNodW5rLCBpbmRleCk7CiAgICAgICAgICBjaHVuayA9IHNlYXJjaEZvcndhcmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IHRoaXMuYnlFbmRbY2h1bmsuc3RhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgICBfc3BsaXRDaHVuayhjaHVuaywgaW5kZXgpIHsKICAgICAgICBpZiAoY2h1bmsuZWRpdGVkICYmIGNodW5rLmNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBsb2MgPSBnZXRMb2NhdG9yKHRoaXMub3JpZ2luYWwpKGluZGV4KTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBhIGNodW5rIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBlZGl0ZWQgKCR7bG9jLmxpbmV9OiR7bG9jLmNvbHVtbn0gXHUyMDEzICIke2NodW5rLm9yaWdpbmFsfSIpYAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSBjaHVuay5zcGxpdChpbmRleCk7CiAgICAgICAgdGhpcy5ieUVuZFtpbmRleF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5U3RhcnRbaW5kZXhdID0gbmV3Q2h1bms7CiAgICAgICAgdGhpcy5ieUVuZFtuZXdDaHVuay5lbmRdID0gbmV3Q2h1bms7CiAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBuZXdDaHVuazsKICAgICAgICB0aGlzLmxhc3RTZWFyY2hlZENodW5rID0gY2h1bms7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgbGV0IHN0cjIgPSB0aGlzLmludHJvOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIHN0cjIgKz0gY2h1bmsudG9TdHJpbmcoKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cjIgKyB0aGlzLm91dHJvOwogICAgICB9CiAgICAgIGlzRW1wdHkoKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChjaHVuay5pbnRyby5sZW5ndGggJiYgY2h1bmsuaW50cm8udHJpbSgpIHx8IGNodW5rLmNvbnRlbnQubGVuZ3RoICYmIGNodW5rLmNvbnRlbnQudHJpbSgpIHx8IGNodW5rLm91dHJvLmxlbmd0aCAmJiBjaHVuay5vdXRyby50cmltKCkpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLm5leHQpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGxlbmd0aCgpIHsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgbGV0IGxlbmd0aCA9IDA7CiAgICAgICAgZG8gewogICAgICAgICAgbGVuZ3RoICs9IGNodW5rLmludHJvLmxlbmd0aCArIGNodW5rLmNvbnRlbnQubGVuZ3RoICsgY2h1bmsub3V0cm8ubGVuZ3RoOwogICAgICAgIH0gd2hpbGUgKGNodW5rID0gY2h1bmsubmV4dCk7CiAgICAgICAgcmV0dXJuIGxlbmd0aDsKICAgICAgfQogICAgICB0cmltTGluZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbSgiW1xcclxcbl0iKTsKICAgICAgfQogICAgICB0cmltKGNoYXJUeXBlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbVN0YXJ0KGNoYXJUeXBlKS50cmltRW5kKGNoYXJUeXBlKTsKICAgICAgfQogICAgICB0cmltRW5kQWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5sYXN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1FbmQocngpOwogICAgICAgICAgaWYgKGNodW5rLmVuZCAhPT0gZW5kKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RDaHVuayA9PT0gY2h1bmspIHsKICAgICAgICAgICAgICB0aGlzLmxhc3RDaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5lbmRdID0gY2h1bms7CiAgICAgICAgICAgIHRoaXMuYnlTdGFydFtjaHVuay5uZXh0LnN0YXJ0XSA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIHRoaXMuYnlFbmRbY2h1bmsubmV4dC5lbmRdID0gY2h1bmsubmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhYm9ydGVkKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfSB3aGlsZSAoY2h1bmspOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cmltRW5kKGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltRW5kQWJvcnRlZChjaGFyVHlwZSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0QWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1TdGFydChyeCk7CiAgICAgICAgICBpZiAoY2h1bmsuZW5kICE9PSBlbmQpIHsKICAgICAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICB0aGlzLmJ5RW5kW2NodW5rLmVuZF0gPSBjaHVuazsKICAgICAgICAgICAgdGhpcy5ieVN0YXJ0W2NodW5rLm5leHQuc3RhcnRdID0gY2h1bmsubmV4dDsKICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5uZXh0LmVuZF0gPSBjaHVuay5uZXh0OwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFib3J0ZWQpIHJldHVybiB0cnVlOwogICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgIH0gd2hpbGUgKGNodW5rKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltU3RhcnRBYm9ydGVkKGNoYXJUeXBlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBoYXNDaGFuZ2VkKCkgewogICAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsICE9PSB0aGlzLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VSZWdleHAoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgZnVuY3Rpb24gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHN0cjIpIHsKICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC5yZXBsYWNlKC9cJChcJHwmfFxkKykvZywgKF8sIGkpID0+IHsKICAgICAgICAgICAgICBpZiAoaSA9PT0gIiQiKSByZXR1cm4gIiQiOwogICAgICAgICAgICAgIGlmIChpID09PSAiJiIpIHJldHVybiBtYXRjaFswXTsKICAgICAgICAgICAgICBjb25zdCBudW0gPSAraTsKICAgICAgICAgICAgICBpZiAobnVtIDwgbWF0Y2gubGVuZ3RoKSByZXR1cm4gbWF0Y2hbK2ldOwogICAgICAgICAgICAgIHJldHVybiBgJCR7aX1gOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudCguLi5tYXRjaCwgbWF0Y2guaW5kZXgsIHN0cjIsIG1hdGNoLmdyb3Vwcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG1hdGNoQWxsKHJlLCBzdHIyKSB7CiAgICAgICAgICBsZXQgbWF0Y2g7CiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gW107CiAgICAgICAgICB3aGlsZSAobWF0Y2ggPSByZS5leGVjKHN0cjIpKSB7CiAgICAgICAgICAgIG1hdGNoZXMucHVzaChtYXRjaCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG1hdGNoQWxsKHNlYXJjaFZhbHVlLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICAgIG1hdGNoZXMuZm9yRWFjaCgobWF0Y2gpID0+IHsKICAgICAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudDIgPSBnZXRSZXBsYWNlbWVudChtYXRjaCwgdGhpcy5vcmlnaW5hbCk7CiAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50MiAhPT0gbWF0Y2hbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMub3JpZ2luYWwubWF0Y2goc2VhcmNoVmFsdWUpOwogICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQyID0gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHRoaXMub3JpZ2luYWwpOwogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQyICE9PSBtYXRjaFswXSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfcmVwbGFjZVN0cmluZyhzdHJpbmcsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgY29uc3QgeyBvcmlnaW5hbCB9ID0gdGhpczsKICAgICAgICBjb25zdCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsKICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7CiAgICAgICAgICB0aGlzLm92ZXJ3cml0ZShpbmRleCwgaW5kZXggKyBzdHJpbmcubGVuZ3RoLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBzZWFyY2hWYWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlU3RyaW5nKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlUmVnZXhwKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VBbGxTdHJpbmcoc3RyaW5nLCByZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IHsgb3JpZ2luYWwgfSA9IHRoaXM7CiAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICAgICAgICBmb3IgKGxldCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsgaW5kZXggIT09IC0xOyBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nLCBpbmRleCArIHN0cmluZ0xlbmd0aCkpIHsKICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gb3JpZ2luYWwuc2xpY2UoaW5kZXgsIGluZGV4ICsgc3RyaW5nTGVuZ3RoKTsKICAgICAgICAgIGlmIChwcmV2aW91cyAhPT0gcmVwbGFjZW1lbnQpIHRoaXMub3ZlcndyaXRlKGluZGV4LCBpbmRleCArIHN0cmluZ0xlbmd0aCwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCkgewogICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoVmFsdWUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUFsbFN0cmluZyhzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICBpZiAoIXNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIk1hZ2ljU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIGNhbGxlZCB3aXRoIGEgbm9uLWdsb2JhbCBSZWdFeHAgYXJndW1lbnQiCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZVJlZ2V4cChzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICB9CiAgICB9OwogICAgdmFyIGhhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OwogICAgdmFyIEJ1bmRsZSA9IGNsYXNzIF9CdW5kbGUgewogICAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHsKICAgICAgICB0aGlzLmludHJvID0gb3B0aW9ucy5pbnRybyB8fCAiIjsKICAgICAgICB0aGlzLnNlcGFyYXRvciA9IG9wdGlvbnMuc2VwYXJhdG9yICE9PSB2b2lkIDAgPyBvcHRpb25zLnNlcGFyYXRvciA6ICJcbiI7CiAgICAgICAgdGhpcy5zb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUgPSB7fTsKICAgICAgfQogICAgICBhZGRTb3VyY2Uoc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE1hZ2ljU3RyaW5nKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgICBjb250ZW50OiBzb3VyY2UsCiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIHNlcGFyYXRvcjogdGhpcy5zZXBhcmF0b3IKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzT2JqZWN0Mihzb3VyY2UpIHx8ICFzb3VyY2UuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiYnVuZGxlLmFkZFNvdXJjZSgpIHRha2VzIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRlbnRgIHByb3BlcnR5LCB3aGljaCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgTWFnaWNTdHJpbmcsIGFuZCBhbiBvcHRpb25hbCBgZmlsZW5hbWVgIgogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgWyJmaWxlbmFtZSIsICJpZ25vcmVMaXN0IiwgImluZGVudEV4Y2x1c2lvblJhbmdlcyIsICJzZXBhcmF0b3IiXS5mb3JFYWNoKChvcHRpb24pID0+IHsKICAgICAgICAgIGlmICghaGFzT3duUHJvcC5jYWxsKHNvdXJjZSwgb3B0aW9uKSkgc291cmNlW29wdGlvbl0gPSBzb3VyY2UuY29udGVudFtvcHRpb25dOwogICAgICAgIH0pOwogICAgICAgIGlmIChzb3VyY2Uuc2VwYXJhdG9yID09PSB2b2lkIDApIHsKICAgICAgICAgIHNvdXJjZS5zZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcjsKICAgICAgICB9CiAgICAgICAgaWYgKHNvdXJjZS5maWxlbmFtZSkgewogICAgICAgICAgaWYgKCFoYXNPd25Qcm9wLmNhbGwodGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUsIHNvdXJjZS5maWxlbmFtZSkpIHsKICAgICAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA9IHRoaXMudW5pcXVlU291cmNlcy5sZW5ndGg7CiAgICAgICAgICAgIHRoaXMudW5pcXVlU291cmNlcy5wdXNoKHsgZmlsZW5hbWU6IHNvdXJjZS5maWxlbmFtZSwgY29udGVudDogc291cmNlLmNvbnRlbnQub3JpZ2luYWwgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB1bmlxdWVTb3VyY2UgPSB0aGlzLnVuaXF1ZVNvdXJjZXNbdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXV07CiAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGVudC5vcmlnaW5hbCAhPT0gdW5pcXVlU291cmNlLmNvbnRlbnQpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgc291cmNlOiBzYW1lIGZpbGVuYW1lICgke3NvdXJjZS5maWxlbmFtZX0pLCBkaWZmZXJlbnQgY29udGVudHNgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChzb3VyY2UpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGFwcGVuZChzdHIyLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgY29udGVudDogbmV3IE1hZ2ljU3RyaW5nKHN0cjIpLAogICAgICAgICAgc2VwYXJhdG9yOiBvcHRpb25zICYmIG9wdGlvbnMuc2VwYXJhdG9yIHx8ICIiCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgYnVuZGxlID0gbmV3IF9CdW5kbGUoewogICAgICAgICAgaW50cm86IHRoaXMuaW50cm8sCiAgICAgICAgICBzZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9yCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgYnVuZGxlLmFkZFNvdXJjZSh7CiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZS5jb250ZW50LmNsb25lKCksCiAgICAgICAgICAgIHNlcGFyYXRvcjogc291cmNlLnNlcGFyYXRvcgogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGJ1bmRsZTsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucyA9IHt9KSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSBbXTsKICAgICAgICBsZXQgeF9nb29nbGVfaWdub3JlTGlzdCA9IHZvaWQgMDsKICAgICAgICB0aGlzLnNvdXJjZXMuZm9yRWFjaCgoc291cmNlKSA9PiB7CiAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UuY29udGVudC5zdG9yZWROYW1lcykuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAoIX5uYW1lcy5pbmRleE9mKG5hbWUpKSBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBuZXcgTWFwcGluZ3Mob3B0aW9ucy5oaXJlcyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICBtYXBwaW5ncy5hZHZhbmNlKHRoaXMuc2VwYXJhdG9yKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gc291cmNlLmZpbGVuYW1lID8gdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA6IC0xOwogICAgICAgICAgY29uc3QgbWFnaWNTdHJpbmcgPSBzb3VyY2UuY29udGVudDsKICAgICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IobWFnaWNTdHJpbmcub3JpZ2luYWwpOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLmludHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcuaW50cm8pOwogICAgICAgICAgfQogICAgICAgICAgbWFnaWNTdHJpbmcuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRlKGNodW5rLnN0YXJ0KTsKICAgICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCkgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5pbnRybyk7CiAgICAgICAgICAgIGlmIChzb3VyY2UuZmlsZW5hbWUpIHsKICAgICAgICAgICAgICBpZiAoY2h1bmsuZWRpdGVkKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRFZGl0KAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmsuY29udGVudCwKICAgICAgICAgICAgICAgICAgbG9jLAogICAgICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmssCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLm9yaWdpbmFsLAogICAgICAgICAgICAgICAgICBsb2MsCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLnNvdXJjZW1hcExvY2F0aW9ucwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5jb250ZW50KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLm91dHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcub3V0cm8pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZS5pZ25vcmVMaXN0ICYmIHNvdXJjZUluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBpZiAoeF9nb29nbGVfaWdub3JlTGlzdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdCA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHhfZ29vZ2xlX2lnbm9yZUxpc3QucHVzaChzb3VyY2VJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSA/IG9wdGlvbnMuZmlsZS5zcGxpdCgvWy9cXF0vKS5wb3AoKSA6IHZvaWQgMCwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maWxlID8gZ2V0UmVsYXRpdmVQYXRoKG9wdGlvbnMuZmlsZSwgc291cmNlLmZpbGVuYW1lKSA6IHNvdXJjZS5maWxlbmFtZTsKICAgICAgICAgIH0pLAogICAgICAgICAgc291cmNlc0NvbnRlbnQ6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmNsdWRlQ29udGVudCA/IHNvdXJjZS5jb250ZW50IDogbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nQ291bnRzID0ge307CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgY29uc3QgaW5kZW50U3RyID0gc291cmNlLmNvbnRlbnQuX2dldFJhd0luZGVudFN0cmluZygpOwogICAgICAgICAgaWYgKGluZGVudFN0ciA9PT0gbnVsbCkgcmV0dXJuOwogICAgICAgICAgaWYgKCFpbmRlbnRTdHJpbmdDb3VudHNbaW5kZW50U3RyXSkgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gPSAwOwogICAgICAgICAgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gKz0gMTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoaW5kZW50U3RyaW5nQ291bnRzKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICByZXR1cm4gaW5kZW50U3RyaW5nQ291bnRzW2FdIC0gaW5kZW50U3RyaW5nQ291bnRzW2JdOwogICAgICAgIH0pWzBdIHx8ICIJIjsKICAgICAgfQogICAgICBpbmRlbnQoaW5kZW50U3RyKSB7CiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICBpbmRlbnRTdHIgPSB0aGlzLmdldEluZGVudFN0cmluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgbGV0IHRyYWlsaW5nTmV3bGluZSA9ICF0aGlzLmludHJvIHx8IHRoaXMuaW50cm8uc2xpY2UoLTEpID09PSAiXG4iOwogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNvdXJjZS5zZXBhcmF0b3IgIT09IHZvaWQgMCA/IHNvdXJjZS5zZXBhcmF0b3IgOiB0aGlzLnNlcGFyYXRvcjsKICAgICAgICAgIGNvbnN0IGluZGVudFN0YXJ0ID0gdHJhaWxpbmdOZXdsaW5lIHx8IGkgPiAwICYmIC9ccj9cbiQvLnRlc3Qoc2VwYXJhdG9yKTsKICAgICAgICAgIHNvdXJjZS5jb250ZW50LmluZGVudChpbmRlbnRTdHIsIHsKICAgICAgICAgICAgZXhjbHVkZTogc291cmNlLmluZGVudEV4Y2x1c2lvblJhbmdlcywKICAgICAgICAgICAgaW5kZW50U3RhcnQKICAgICAgICAgICAgLy86IHRyYWlsaW5nTmV3bGluZSB8fCAvXHI/XG4kLy50ZXN0KCBzZXBhcmF0b3IgKSAgLy90cnVlLy8vXHI/XG4vLnRlc3QoIHNlcGFyYXRvciApCiAgICAgICAgICB9KTsKICAgICAgICAgIHRyYWlsaW5nTmV3bGluZSA9IHNvdXJjZS5jb250ZW50Lmxhc3RDaGFyKCkgPT09ICJcbiI7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBpbmRlbnRTdHIgKyB0aGlzLmludHJvLnJlcGxhY2UoL15bXlxuXS9nbSwgKG1hdGNoLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gaW5kZXggPiAwID8gaW5kZW50U3RyICsgbWF0Y2ggOiBtYXRjaDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBwcmVwZW5kKHN0cjIpIHsKICAgICAgICB0aGlzLmludHJvID0gc3RyMiArIHRoaXMuaW50cm87CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuc291cmNlcy5tYXAoKHNvdXJjZSwgaSkgPT4gewogICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc291cmNlLnNlcGFyYXRvciAhPT0gdm9pZCAwID8gc291cmNlLnNlcGFyYXRvciA6IHRoaXMuc2VwYXJhdG9yOwogICAgICAgICAgY29uc3Qgc3RyMiA9IChpID4gMCA/IHNlcGFyYXRvciA6ICIiKSArIHNvdXJjZS5jb250ZW50LnRvU3RyaW5nKCk7CiAgICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgICB9KS5qb2luKCIiKTsKICAgICAgICByZXR1cm4gdGhpcy5pbnRybyArIGJvZHk7CiAgICAgIH0KICAgICAgaXNFbXB0eSgpIHsKICAgICAgICBpZiAodGhpcy5pbnRyby5sZW5ndGggJiYgdGhpcy5pbnRyby50cmltKCkpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VzLnNvbWUoKHNvdXJjZSkgPT4gIXNvdXJjZS5jb250ZW50LmlzRW1wdHkoKSkpIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBsZW5ndGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlcy5yZWR1Y2UoCiAgICAgICAgICAobGVuZ3RoLCBzb3VyY2UpID0+IGxlbmd0aCArIHNvdXJjZS5jb250ZW50Lmxlbmd0aCgpLAogICAgICAgICAgdGhpcy5pbnRyby5sZW5ndGgKICAgICAgICApOwogICAgICB9CiAgICAgIHRyaW1MaW5lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltKCJbXFxyXFxuXSIpOwogICAgICB9CiAgICAgIHRyaW0oY2hhclR5cGUpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltU3RhcnQoY2hhclR5cGUpLnRyaW1FbmQoY2hhclR5cGUpOwogICAgICB9CiAgICAgIHRyaW1TdGFydChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKCF0aGlzLmludHJvKSB7CiAgICAgICAgICBsZXQgc291cmNlOwogICAgICAgICAgbGV0IGkgPSAwOwogICAgICAgICAgZG8gewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbaSsrXTsKICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAoIXNvdXJjZS5jb250ZW50LnRyaW1TdGFydEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbUVuZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgbGV0IHNvdXJjZTsKICAgICAgICBsZXQgaSA9IHRoaXMuc291cmNlcy5sZW5ndGggLSAxOwogICAgICAgIGRvIHsKICAgICAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlc1tpLS1dOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICghc291cmNlLmNvbnRlbnQudHJpbUVuZEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgfTsKICAgIE1hZ2ljU3RyaW5nLkJ1bmRsZSA9IEJ1bmRsZTsKICAgIE1hZ2ljU3RyaW5nLlNvdXJjZU1hcCA9IFNvdXJjZU1hcDsKICAgIE1hZ2ljU3RyaW5nLmRlZmF1bHQgPSBNYWdpY1N0cmluZzsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hZ2ljU3RyaW5nOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcwp2YXIgcmVxdWlyZV9yZWNvcmRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBleHBvcnRzMi5JbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBtYWdpY19zdHJpbmdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlX21hZ2ljX3N0cmluZ19janMoKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5kZXgsIG1pbiwgbWF4ID0gSW5maW5pdHkpIHsKICAgICAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uID0gSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uOwogICAgdmFyIFVwZGF0ZVJlY29yZGVyQmFzZSA9IGNsYXNzIF9VcGRhdGVSZWNvcmRlckJhc2UgewogICAgICBkYXRhOwogICAgICBib207CiAgICAgIF9wYXRoOwogICAgICBjb250ZW50OwogICAgICBjb25zdHJ1Y3RvcihkYXRhLCBwYXRoLCBlbmNvZGluZyA9ICJ1dGYtOCIsIGJvbSA9IGZhbHNlKSB7CiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgICB0aGlzLmJvbSA9IGJvbTsKICAgICAgICBsZXQgdGV4dDsKICAgICAgICB0cnkgewogICAgICAgICAgdGV4dCA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZywgeyBmYXRhbDogdHJ1ZSwgaWdub3JlQk9NOiBmYWxzZSB9KS5kZWNvZGUoZGF0YSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyAke2VuY29kaW5nfSB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5jb250ZW50ID0gbmV3IG1hZ2ljX3N0cmluZ18xLmRlZmF1bHQodGV4dCk7CiAgICAgIH0KICAgICAgc3RhdGljIGNyZWF0ZUZyb21GaWxlRW50cnkoZW50cnkpIHsKICAgICAgICBjb25zdCBjMCA9IGVudHJ5LmNvbnRlbnQuYnl0ZUxlbmd0aCA+IDAgJiYgZW50cnkuY29udGVudC5yZWFkVUludDgoMCk7CiAgICAgICAgY29uc3QgYzEgPSBlbnRyeS5jb250ZW50LmJ5dGVMZW5ndGggPiAxICYmIGVudHJ5LmNvbnRlbnQucmVhZFVJbnQ4KDEpOwogICAgICAgIGNvbnN0IGMyID0gZW50cnkuY29udGVudC5ieXRlTGVuZ3RoID4gMiAmJiBlbnRyeS5jb250ZW50LnJlYWRVSW50OCgyKTsKICAgICAgICBpZiAoYzAgPT0gMjM5ICYmIGMxID09IDE4NyAmJiBjMiA9PSAxOTEpIHsKICAgICAgICAgIHJldHVybiBuZXcgX1VwZGF0ZVJlY29yZGVyQmFzZShlbnRyeS5jb250ZW50LCBlbnRyeS5wYXRoLCAidXRmLTgiLCB0cnVlKTsKICAgICAgICB9IGVsc2UgaWYgKGMwID09PSAyNTUgJiYgYzEgPT0gMjU0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCwgInV0Zi0xNmxlIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChjMCA9PT0gMjU0ICYmIGMxID09IDI1NSkgewogICAgICAgICAgcmV0dXJuIG5ldyBfVXBkYXRlUmVjb3JkZXJCYXNlKGVudHJ5LmNvbnRlbnQsIGVudHJ5LnBhdGgsICJ1dGYtMTZiZSIsIHRydWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IHBhdGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7CiAgICAgIH0KICAgICAgX2Fzc2VydEluZGV4KGluZGV4KSB7CiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpIHsKICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24oaW5kZXgsIDAsIHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLgogICAgICBpbnNlcnRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50LnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGluc2VydFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRSaWdodChpbmRleCwgY29udGVudC50b1N0cmluZygpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZW1vdmUoaW5kZXgsIGxlbmd0aCkgewogICAgICAgIHRoaXMuX2Fzc2VydEluZGV4KGluZGV4KTsKICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlKGluZGV4LCBpbmRleCArIGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYXBwbHkoY29udGVudCkgewogICAgICAgIGlmICghY29udGVudC5lcXVhbHModGhpcy5kYXRhKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHRoaXMucGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKCh0aGlzLmJvbSA/ICJcdUZFRkYiIDogIiIpICsgdGhpcy5jb250ZW50LnRvU3RyaW5nKCksICJ1dGYtOCIpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBVcGRhdGVSZWNvcmRlckJhc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2NvcGVkVHJlZSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGRlbGVnYXRlXzEgPSByZXF1aXJlX2RlbGVnYXRlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBTY29wZWRGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9iYXNlOwogICAgICBzY29wZTsKICAgICAgY29uc3RydWN0b3IoX2Jhc2UsIHNjb3BlKSB7CiAgICAgICAgdGhpcy5fYmFzZSA9IF9iYXNlOwogICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuc2NvcGUsIHRoaXMuX2Jhc2UucGF0aCkpOwogICAgICB9CiAgICAgIGdldCBjb250ZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmNvbnRlbnQ7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkRGlyRW50cnkgPSBjbGFzcyBfU2NvcGVkRGlyRW50cnkgewogICAgICBfYmFzZTsKICAgICAgc2NvcGU7CiAgICAgIGNvbnN0cnVjdG9yKF9iYXNlLCBzY29wZSkgewogICAgICAgIHRoaXMuX2Jhc2UgPSBfYmFzZTsKICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgIH0KICAgICAgZ2V0IHBhcmVudCgpIHsKICAgICAgICBpZiAoIXRoaXMuX2Jhc2UucGFyZW50IHx8IHRoaXMuX2Jhc2UucGF0aCA9PSB0aGlzLnNjb3BlKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBfU2NvcGVkRGlyRW50cnkodGhpcy5fYmFzZS5wYXJlbnQsIHRoaXMuc2NvcGUpOwogICAgICB9CiAgICAgIGdldCBwYXRoKCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgdGhpcy5fYmFzZS5wYXRoKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmRpcnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZGlyczsKICAgICAgfQogICAgICBnZXQgc3ViZmlsZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZmlsZXM7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZGlyKG5hbWUpOwogICAgICAgIHJldHVybiBlbnRyeSAmJiBuZXcgX1Njb3BlZERpckVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZmlsZShuYW1lKTsKICAgICAgICByZXR1cm4gZW50cnkgJiYgbmV3IFNjb3BlZEZpbGVFbnRyeShlbnRyeSwgdGhpcy5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLnZpc2l0KChwYXRoLCBlbnRyeSkgPT4gewogICAgICAgICAgdmlzaXRvcigoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgcGF0aCkpLCBlbnRyeSAmJiBuZXcgU2NvcGVkRmlsZUVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkVHJlZSA9IGNsYXNzIF9TY29wZWRUcmVlIHsKICAgICAgX2Jhc2U7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihfYmFzZSwgc2NvcGUpIHsKICAgICAgICB0aGlzLl9iYXNlID0gX2Jhc2U7CiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIiArIHNjb3BlKTsKICAgICAgICB0aGlzLl9yb290ID0gbmV3IFNjb3BlZERpckVudHJ5KHRoaXMuX2Jhc2UuZ2V0RGlyKG5vcm1hbGl6ZWRTY29wZSksIG5vcm1hbGl6ZWRTY29wZSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX1Njb3BlZFRyZWUodGhpcy5fYmFzZS5icmFuY2goKSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgbWVyZ2Uob3RoZXIsIHN0cmF0ZWd5KSB7CiAgICAgICAgY29uc3Qgc2VsZjIgPSB0aGlzOwogICAgICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGNsYXNzIGV4dGVuZHMgZGVsZWdhdGVfMS5EZWxlZ2F0ZVRyZWUgewogICAgICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgICAgIHJldHVybiBvdGhlci5hY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiBzZWxmMi5fZnVsbFBhdGhBY3Rpb24oYWN0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfShvdGhlcik7CiAgICAgICAgdGhpcy5fYmFzZS5tZXJnZShkZWxlZ2F0ZSwgc3RyYXRlZ3kpOwogICAgICB9CiAgICAgIC8vIFJlYWRvbmx5LgogICAgICByZWFkKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkKHRoaXMuX2Z1bGxQYXRoKHBhdGgpKTsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVhZFRleHQodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlYWRKc29uKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkSnNvbih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5leGlzdHModGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldCh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWRGaWxlRW50cnkoZW50cnksIHRoaXMuX3Jvb3Quc2NvcGUpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldERpcih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWREaXJFbnRyeShlbnRyeSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uub3ZlcndyaXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuYmVnaW5VcGRhdGUodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5jb21taXRVcGRhdGUocmVjb3JkKTsKICAgICAgfQogICAgICAvLyBTdHJ1Y3R1cmFsIG1ldGhvZHMuCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuY3JlYXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmRlbGV0ZSh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVuYW1lKHRoaXMuX2Z1bGxQYXRoKGZyb20pLCB0aGlzLl9mdWxsUGF0aCh0bykpOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5hcHBseSh0aGlzLl9mdWxsUGF0aEFjdGlvbihhY3Rpb24pLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgY29uc3Qgc2NvcGVkQWN0aW9ucyA9IFtdOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuX2Jhc2UuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFhY3Rpb24ucGF0aC5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFjdGlvbi5raW5kICE9PSAiciIpIHsKICAgICAgICAgICAgc2NvcGVkQWN0aW9ucy5wdXNoKHsKICAgICAgICAgICAgICAuLi5hY3Rpb24sCiAgICAgICAgICAgICAgcGF0aDogKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuX3Jvb3Quc2NvcGUsIGFjdGlvbi5wYXRoKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi50by5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIHNjb3BlZEFjdGlvbnMucHVzaCh7CiAgICAgICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgICAgIHBhdGg6ICgwLCBjb3JlXzEuam9pbikoY29yZV8xLk5vcm1hbGl6ZWRSb290LCAoMCwgY29yZV8xLnJlbGF0aXZlKSh0aGlzLl9yb290LnNjb3BlLCBhY3Rpb24ucGF0aCkpLAogICAgICAgICAgICAgIHRvOiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5fcm9vdC5zY29wZSwgYWN0aW9uLnRvKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBzY29wZWRBY3Rpb25zOwogICAgICB9CiAgICAgIFtpbnRlcmZhY2VfMS5UcmVlU3ltYm9sXSgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfZnVsbFBhdGgocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKHRoaXMuX3Jvb3Quc2NvcGUsICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgX2Z1bGxQYXRoQWN0aW9uKGFjdGlvbikgewogICAgICAgIGxldCBmdWxsUGF0aEFjdGlvbjsKICAgICAgICBpZiAoYWN0aW9uLmtpbmQgPT09ICJyIikgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpLAogICAgICAgICAgICB0bzogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnRvKQogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVsbFBhdGhBY3Rpb247CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZWRUcmVlID0gU2NvcGVkVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaG9zdC10cmVlLmpzCnZhciByZXF1aXJlX2hvc3RfdHJlZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9ob3N0LXRyZWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gZXhwb3J0czIuSG9zdENyZWF0ZVRyZWUgPSBleHBvcnRzMi5Ib3N0VHJlZSA9IGV4cG9ydHMyLkhvc3REaXJFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBkZWxlZ2F0ZV8xID0gcmVxdWlyZV9kZWxlZ2F0ZSgpOwogICAgdmFyIGVudHJ5XzEgPSByZXF1aXJlX2VudHJ5KCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciByZWNvcmRlcl8xID0gcmVxdWlyZV9yZWNvcmRlcigpOwogICAgdmFyIHNjb3BlZF8xID0gcmVxdWlyZV9zY29wZWQyKCk7CiAgICB2YXIgX3VuaXF1ZUlkID0gMDsKICAgIHZhciBIb3N0RGlyRW50cnkgPSBjbGFzcyB7CiAgICAgIHBhcmVudDsKICAgICAgcGF0aDsKICAgICAgX2hvc3Q7CiAgICAgIF90cmVlOwogICAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHBhdGgsIF9ob3N0LCBfdHJlZSkgewogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5faG9zdCA9IF9ob3N0OwogICAgICAgIHRoaXMuX3RyZWUgPSBfdHJlZTsKICAgICAgfQogICAgICBnZXQgc3ViZGlycygpIHsKICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5saXN0KHRoaXMucGF0aCkuZmlsdGVyKChmcmFnbWVudCkgPT4gdGhpcy5faG9zdC5pc0RpcmVjdG9yeSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmZpbGVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0Lmxpc3QodGhpcy5wYXRoKS5maWx0ZXIoKGZyYWdtZW50KSA9PiB0aGlzLl9ob3N0LmlzRmlsZSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXREaXIoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXQoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHRoaXMuZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpLmZvckVhY2goKGZpbGUpID0+IHZpc2l0b3IoZmlsZS5wYXRoLCBmaWxlKSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgIT09IGludGVyZmFjZV8xLkZpbGVWaXNpdG9yQ2FuY2VsVG9rZW4pIHsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpIHsKICAgICAgICBmdW5jdGlvbiBfcmVjdXJzZShlbnRyeSkgewogICAgICAgICAgcmV0dXJuIGVudHJ5LnN1YmRpcnMucmVkdWNlKChmaWxlcywgc3ViZGlyKSA9PiBbLi4uZmlsZXMsIC4uLl9yZWN1cnNlKGVudHJ5LmRpcihzdWJkaXIpKV0sIGVudHJ5LnN1YmZpbGVzLm1hcCgoc3ViZmlsZSkgPT4gZW50cnkuZmlsZShzdWJmaWxlKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3JlY3Vyc2UodGhpcyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Ib3N0RGlyRW50cnkgPSBIb3N0RGlyRW50cnk7CiAgICB2YXIgSG9zdFRyZWUgPSBjbGFzcyBfSG9zdFRyZWUgewogICAgICBfYmFja2VuZDsKICAgICAgX2lkID0gLS1fdW5pcXVlSWQ7CiAgICAgIF9yZWNvcmQ7CiAgICAgIF9yZWNvcmRTeW5jOwogICAgICBfYW5jZXN0cnkgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZGlyQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgc3RhdGljIGlzSG9zdFRyZWUodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiB0cmVlID09PSAib2JqZWN0IiAmJiB0eXBlb2YgdHJlZS5fYW5jZXN0cnkgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrZW5kID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuRW1wdHkoKSkgewogICAgICAgIHRoaXMuX2JhY2tlbmQgPSBfYmFja2VuZDsKICAgICAgICB0aGlzLl9yZWNvcmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5Db3JkSG9zdChuZXcgY29yZV8xLnZpcnR1YWxGcy5TYWZlUmVhZG9ubHlIb3N0KF9iYWNrZW5kKSk7CiAgICAgICAgdGhpcy5fcmVjb3JkU3luYyA9IG5ldyBjb3JlXzEudmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcy5fcmVjb3JkKTsKICAgICAgfQogICAgICBfbm9ybWFsaXplUGF0aChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfd2lsbENyZWF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsQ3JlYXRlKHBhdGgpOwogICAgICB9CiAgICAgIF93aWxsT3ZlcndyaXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkLndpbGxPdmVyd3JpdGUocGF0aCk7CiAgICAgIH0KICAgICAgX3dpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmQud2lsbERlbGV0ZShwYXRoKTsKICAgICAgfQogICAgICBfd2lsbFJlbmFtZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsUmVuYW1lKHBhdGgpOwogICAgICB9CiAgICAgIGJyYW5jaCgpIHsKICAgICAgICBjb25zdCBicmFuY2hlZFRyZWUgPSBuZXcgX0hvc3RUcmVlKHRoaXMuX2JhY2tlbmQpOwogICAgICAgIGJyYW5jaGVkVHJlZS5fcmVjb3JkID0gdGhpcy5fcmVjb3JkLmNsb25lKCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9yZWNvcmRTeW5jID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChicmFuY2hlZFRyZWUuX3JlY29yZCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9hbmNlc3RyeSA9IG5ldyBTZXQodGhpcy5fYW5jZXN0cnkpLmFkZCh0aGlzLl9pZCk7CiAgICAgICAgcmV0dXJuIGJyYW5jaGVkVHJlZTsKICAgICAgfQogICAgICBpc0FuY2VzdG9yT2YodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJlZS5fYW5jZXN0cnkuaGFzKHRoaXMuX2lkKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBkZWxlZ2F0ZV8xLkRlbGVnYXRlVHJlZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbmNlc3Rvck9mKHRyZWUuX290aGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBzY29wZWRfMS5TY29wZWRUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FuY2VzdG9yT2YodHJlZS5fYmFzZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBtZXJnZShvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgICBpZiAob3RoZXIgPT09IHRoaXMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuaXNBbmNlc3Rvck9mKG90aGVyKSkgewogICAgICAgICAgc3RyYXRlZ3kgfD0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGU7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNyZWF0aW9uQ29uZmxpY3RBbGxvd2VkID0gKHN0cmF0ZWd5ICYgaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0NyZWF0aW9uQ29uZmxpY3QpID09IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0OwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dPdmVyd3JpdGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0OwogICAgICAgIGNvbnN0IGRlbGV0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dEZWxldGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0RlbGV0ZUNvbmZsaWN0OwogICAgICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOiB7CiAgICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBjb250ZW50IH0gPSBhY3Rpb247CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxDcmVhdGUocGF0aCkgfHwgdGhpcy5fd2lsbE92ZXJ3cml0ZShwYXRoKSB8fCB0aGlzLmV4aXN0cyhwYXRoKSkgewogICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDb250ZW50ID0gdGhpcy5yZWFkKHBhdGgpOwogICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ29udGVudCAmJiBjb250ZW50LmVxdWFscyhleGlzdGluZ0NvbnRlbnQpKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghY3JlYXRpb25Db25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQuY3JlYXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAibyI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSAmJiAhb3ZlcndyaXRlQ29uZmxpY3RBbGxvd2VkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxPdmVyd3JpdGUocGF0aCkpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgJiYgY29udGVudC5lcXVhbHMoZXhpc3RpbmdDb250ZW50KSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIW92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkLndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlICJyIjogewogICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgdG8gfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0aGlzLl93aWxsUmVuYW1lKHBhdGgpKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkLndpbGxSZW5hbWVUbyhwYXRoLCB0bykpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucmVuYW1lKHBhdGgsIHRvKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAiZCI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHBhdGgpICYmICFkZWxldGVDb25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5NZXJnZUNvbmZsaWN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTeW5jLmRlbGV0ZShwYXRoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBnZXQgcm9vdCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXREaXIoIi8iKTsKICAgICAgfQogICAgICAvLyBSZWFkb25seS4KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoInV0Zi04IiwgeyBmYXRhbDogdHJ1ZSB9KTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGRhdGEpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yIHx8IGUuY29kZSA9PT0gIkVSUl9FTkNPRElOR19JTlZBTElEX0VOQ09ERURfREFUQSIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyBVVEYtOCB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnJlYWRUZXh0KHBhdGgpOwogICAgICAgIGNvbnN0IGVycm9ycyA9IFtdOwogICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBqc29uY19wYXJzZXJfMS5wYXJzZSkoY29udGVudCwgZXJyb3JzLCB7IGFsbG93VHJhaWxpbmdDb21tYTogdHJ1ZSB9KTsKICAgICAgICBpZiAoZXJyb3JzWzBdKSB7CiAgICAgICAgICBjb25zdCB7IGVycm9yLCBvZmZzZXQgfSA9IGVycm9yc1swXTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlICIke3BhdGh9IiBhcyBKU09OLiAkeygwLCBqc29uY19wYXJzZXJfMS5wcmludFBhcnNlRXJyb3JDb2RlKShlcnJvcil9IGF0IG9mZnNldDogJHtvZmZzZXR9LmApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN5bmMuaXNGaWxlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX3JlY29yZFN5bmMuaXNEaXJlY3RvcnkocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuX3JlY29yZFN5bmMuZXhpc3RzKHApKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBlbnRyeV8xLkxhenlGaWxlRW50cnkocCwgKCkgPT4gQnVmZmVyLmZyb20odGhpcy5fcmVjb3JkU3luYy5yZWFkKHApKSk7CiAgICAgIH0KICAgICAgZ2V0RGlyKHBhdGgpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5pc0ZpbGUocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihwKTsKICAgICAgICB9CiAgICAgICAgbGV0IG1heWJlQ2FjaGUgPSB0aGlzLl9kaXJDYWNoZS5nZXQocCk7CiAgICAgICAgaWYgKCFtYXliZUNhY2hlKSB7CiAgICAgICAgICBsZXQgcGFyZW50ID0gKDAsIGNvcmVfMS5kaXJuYW1lKShwKTsKICAgICAgICAgIGlmIChwID09PSBwYXJlbnQpIHsKICAgICAgICAgICAgcGFyZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIG1heWJlQ2FjaGUgPSBuZXcgSG9zdERpckVudHJ5KHBhcmVudCAmJiB0aGlzLmdldERpcihwYXJlbnQpLCBwLCB0aGlzLl9yZWNvcmRTeW5jLCB0aGlzKTsKICAgICAgICAgIHRoaXMuX2RpckNhY2hlLnNldChwLCBtYXliZUNhY2hlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heWJlQ2FjaGU7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHRoaXMucm9vdC52aXNpdCgocGF0aCwgZW50cnkpID0+IHsKICAgICAgICAgIHZpc2l0b3IocGF0aCwgZW50cnkpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTeW5jLmV4aXN0cyhwKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgY29udGVudCA9PSAic3RyaW5nIiA/IEJ1ZmZlci5mcm9tKGNvbnRlbnQpIDogY29udGVudDsKICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHAsIGMpLnN1YnNjcmliZSgpOwogICAgICB9CiAgICAgIGJlZ2luVXBkYXRlKHBhdGgpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVjb3JkZXJfMS5VcGRhdGVSZWNvcmRlckJhc2UuY3JlYXRlRnJvbUZpbGVFbnRyeShlbnRyeSk7CiAgICAgIH0KICAgICAgY29tbWl0VXBkYXRlKHJlY29yZCkgewogICAgICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSkgewogICAgICAgICAgY29uc3QgcGF0aCA9IHJlY29yZC5wYXRoOwogICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlY29yZC5hcHBseShlbnRyeS5jb250ZW50KTsKICAgICAgICAgICAgaWYgKCFuZXdDb250ZW50LmVxdWFscyhlbnRyeS5jb250ZW50KSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKHBhdGgsIG5ld0NvbnRlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5JbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIFN0cnVjdHVyYWwgbWV0aG9kcy4KICAgICAgY3JlYXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5leGlzdHMocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBjb25zdCBjID0gdHlwZW9mIGNvbnRlbnQgPT0gInN0cmluZyIgPyBCdWZmZXIuZnJvbShjb250ZW50KSA6IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5fcmVjb3JkLmNyZWF0ZShwLCBjKS5zdWJzY3JpYmUoKTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMuZGVsZXRlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMucmVuYW1lKHRoaXMuX25vcm1hbGl6ZVBhdGgoZnJvbSksIHRoaXMuX25vcm1hbGl6ZVBhdGgodG8pKTsKICAgICAgfQogICAgICBhcHBseShhY3Rpb24sIHN0cmF0ZWd5KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIkFwcGx5IG5vdCBpbXBsZW1lbnRlZCBvbiBob3N0IHRyZWVzLiIpOwogICAgICB9CiAgICAgICpnZW5lcmF0ZUFjdGlvbnMoKSB7CiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgdGhpcy5fcmVjb3JkLnJlY29yZHMoKSkgewogICAgICAgICAgc3dpdGNoIChyZWNvcmQua2luZCkgewogICAgICAgICAgICBjYXNlICJjcmVhdGUiOgogICAgICAgICAgICAgIHlpZWxkIHsKICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9pZCwKICAgICAgICAgICAgICAgIHBhcmVudDogMCwKICAgICAgICAgICAgICAgIGtpbmQ6ICJjIiwKICAgICAgICAgICAgICAgIHBhdGg6IHJlY29yZC5wYXRoLAogICAgICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20ocmVjb3JkLmNvbnRlbnQpCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAibyIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IEJ1ZmZlci5mcm9tKHJlY29yZC5jb250ZW50KQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInJlbmFtZSI6CiAgICAgICAgICAgICAgeWllbGQgewogICAgICAgICAgICAgICAgaWQ6IHRoaXMuX2lkLAogICAgICAgICAgICAgICAgcGFyZW50OiAwLAogICAgICAgICAgICAgICAga2luZDogInIiLAogICAgICAgICAgICAgICAgcGF0aDogcmVjb3JkLmZyb20sCiAgICAgICAgICAgICAgICB0bzogcmVjb3JkLnRvCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAiZCIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGdldCBhY3Rpb25zKCkgewogICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ2VuZXJhdGVBY3Rpb25zKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSG9zdFRyZWUgPSBIb3N0VHJlZTsKICAgIHZhciBIb3N0Q3JlYXRlVHJlZSA9IGNsYXNzIGV4dGVuZHMgSG9zdFRyZWUgewogICAgICBjb25zdHJ1Y3Rvcihob3N0KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBjb25zdCB0ZW1wSG9zdCA9IG5ldyBIb3N0VHJlZShob3N0KTsKICAgICAgICB0ZW1wSG9zdC52aXNpdCgocGF0aCkgPT4gewogICAgICAgICAgY29uc3QgY29udGVudCA9IHRlbXBIb3N0LnJlYWQocGF0aCk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RDcmVhdGVUcmVlID0gSG9zdENyZWF0ZVRyZWU7CiAgICB2YXIgRmlsdGVySG9zdFRyZWUgPSBjbGFzcyBleHRlbmRzIEhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IodHJlZSwgZmlsdGVyID0gKCkgPT4gdHJ1ZSkgewogICAgICAgIGNvbnN0IG5ld0JhY2tlbmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5TaW1wbGVNZW1vcnlIb3N0KCk7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCYWNrZW5kID0gdHJlZS5fYmFja2VuZDsKICAgICAgICBjb25zdCBwZW5kaW5nUGF0aHMgPSBbIi8iXTsKICAgICAgICB3aGlsZSAocGVuZGluZ1BhdGhzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGVuZGluZ1BhdGhzLnBvcCgpOwogICAgICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSB2b2lkIDApIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgaXNEaXJlY3RvcnkgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0RpcmVjdG9yeShjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGlzRGlyZWN0b3J5ID0gdmFsKTsKICAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQubGlzdChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IHBlbmRpbmdQYXRocy5wdXNoKC4uLnZhbC5tYXAoKHApID0+ICgwLCBjb3JlXzEuam9pbikoY3VycmVudFBhdGgsIHApKSkpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBpc0ZpbGUgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0ZpbGUoY3VycmVudFBhdGgpLnN1YnNjcmliZSgodmFsKSA9PiBpc0ZpbGUgPSB2YWwpOwogICAgICAgICAgaWYgKCFpc0ZpbGUgfHwgIWZpbHRlcihjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgY29udGVudCA9IG51bGw7CiAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQucmVhZChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGNvbnRlbnQgPSB2YWwpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHsKICAgICAgICAgICAgbmV3QmFja2VuZC53cml0ZShjdXJyZW50UGF0aCwgY29udGVudCkuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyKG5ld0JhY2tlbmQpOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRyZWUuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFmaWx0ZXIoYWN0aW9uLnBhdGgpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgICB0aGlzLmNyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInIiOgogICAgICAgICAgICAgIHRoaXMucmVuYW1lKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gRmlsdGVySG9zdFRyZWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3N0YXRpYy5qcwp2YXIgcmVxdWlyZV9zdGF0aWMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbXB0eSA9IGVtcHR5OwogICAgZXhwb3J0czIuYnJhbmNoID0gYnJhbmNoOwogICAgZXhwb3J0czIubWVyZ2UgPSBtZXJnZTI7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gbmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKCk7CiAgICB9CiAgICBmdW5jdGlvbiBicmFuY2godHJlZSkgewogICAgICByZXR1cm4gdHJlZS5icmFuY2goKTsKICAgIH0KICAgIGZ1bmN0aW9uIG1lcmdlMih0cmVlLCBvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgdHJlZS5tZXJnZShvdGhlciwgc3RyYXRlZ3kpOwogICAgICByZXR1cm4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnRpdGlvbih0cmVlLCBwcmVkaWNhdGUpIHsKICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBob3N0X3RyZWVfMS5Ib3N0VHJlZSkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKSwKICAgICAgICAgIG5ldyBob3N0X3RyZWVfMS5GaWx0ZXJIb3N0VHJlZSh0cmVlLCAocGF0aCwgZW50cnkpID0+ICFwcmVkaWNhdGUocGF0aCwgZW50cnkpKQogICAgICAgIF07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwuanMKdmFyIHJlcXVpcmVfbnVsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9udWxsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsVHJlZSA9IGV4cG9ydHMyLk51bGxUcmVlRGlyRW50cnkgPSBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIHJlY29yZGVyXzEgPSByZXF1aXJlX3JlY29yZGVyKCk7CiAgICB2YXIgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYENhbm5vdCBjcmVhdGUgZmlsZSAiJHtwYXRofSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbjsKICAgIHZhciBOdWxsVHJlZURpckVudHJ5ID0gY2xhc3MgX051bGxUcmVlRGlyRW50cnkgewogICAgICBwYXRoOwogICAgICBnZXQgcGFyZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gIi8iID8gbnVsbCA6IG5ldyBfTnVsbFRyZWVEaXJFbnRyeSgoMCwgY29yZV8xLmRpcm5hbWUpKHRoaXMucGF0aCkpOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICB0aGlzLnBhdGggPSBwYXRoOwogICAgICB9CiAgICAgIHN1YmRpcnMgPSBbXTsKICAgICAgc3ViZmlsZXMgPSBbXTsKICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gbmV3IF9OdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEuam9pbikodGhpcy5wYXRoLCBuYW1lKSk7CiAgICAgIH0KICAgICAgZmlsZShfbmFtZSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHZpc2l0KCkgewogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWVEaXJFbnRyeSA9IE51bGxUcmVlRGlyRW50cnk7CiAgICB2YXIgTnVsbFRyZWUgPSBjbGFzcyBfTnVsbFRyZWUgewogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX051bGxUcmVlKCk7CiAgICAgIH0KICAgICAgbWVyZ2UoX290aGVyLCBfc3RyYXRlZ3kpIHsKICAgICAgfQogICAgICByb290ID0gbmV3IE51bGxUcmVlRGlyRW50cnkoKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIikpOwogICAgICAvLyBTaW1wbGUgcmVhZG9ubHkgZmlsZSBzeXN0ZW0gb3BlcmF0aW9ucy4KICAgICAgZXhpc3RzKF9wYXRoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHJlYWQoX3BhdGgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGdldChfcGF0aCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgdmlzaXQoKSB7CiAgICAgIH0KICAgICAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy4KICAgICAgYmVnaW5VcGRhdGUocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSA/IHJlY29yZC5wYXRoIDogIjx1bmtub3duPiIpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBzdHJ1Y3R1cmUgb2YgdGhlIGhvc3QuCiAgICAgIGNvcHkocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgX2NvbnRlbnQpIHsKICAgICAgICB0aHJvdyBuZXcgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgYXBwbHkoX2FjdGlvbiwgX3N0cmF0ZWd5KSB7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWUgPSBOdWxsVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2NhbGwuanMKdmFyIHJlcXVpcmVfY2FsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW52YWxpZFNvdXJjZVJlc3VsdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuY2FsbFNvdXJjZSA9IGNhbGxTb3VyY2U7CiAgICBleHBvcnRzMi5jYWxsUnVsZSA9IGNhbGxSdWxlOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgZnVuY3Rpb24gX2dldFR5cGVPZlJlc3VsdCh2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgIHJldHVybiAidW5kZWZpbmVkIjsKICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiAibnVsbCI7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICJmdW5jdGlvbiIpIHsKICAgICAgICByZXR1cm4gYEZ1bmN0aW9uKClgOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPSAib2JqZWN0IikgewogICAgICAgIHJldHVybiBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09IE9iamVjdCkgewogICAgICAgICAgcmV0dXJuIGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7CiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJ1Y3RvcikgewogICAgICAgICAgcmV0dXJuIGBJbnN0YW5jZSBvZiBjbGFzcyAke3ZhbHVlLmNvbnN0cnVjdG9yLm5hbWV9YDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuICJVbmtub3duIE9iamVjdCI7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICB2YXIgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBydWxlIHJlc3VsdDogJHtfZ2V0VHlwZU9mUmVzdWx0KHZhbHVlKX0uYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUnVsZVJlc3VsdEV4Y2VwdGlvbiA9IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBzb3VyY2UgcmVzdWx0OiAke19nZXRUeXBlT2ZSZXN1bHQodmFsdWUpfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uOwogICAgZnVuY3Rpb24gY2FsbFNvdXJjZShzb3VyY2UsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuICgwLCByeGpzXzEuZGVmZXIpKGFzeW5jICgpID0+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpOwogICAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgICAgcmVzdWx0ID0gYXdhaXQgKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShyZXN1bHQucGlwZSgoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKSk7CiAgICAgICAgfQogICAgICAgIGlmIChyZXN1bHQgJiYgaW50ZXJmYWNlXzEuVHJlZVN5bWJvbCBpbiByZXN1bHQpIHsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZSwgaW5wdXQsIGNvbnRleHQpIHsKICAgICAgaWYgKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKShpbnB1dCkpIHsKICAgICAgICByZXR1cm4gaW5wdXQucGlwZSgoMCwgcnhqc18xLm1lcmdlTWFwKSgoaW5wdXRUcmVlKSA9PiBjYWxsUnVsZUFzeW5jKHJ1bGUsIGlucHV0VHJlZSwgY29udGV4dCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5kZWZlcikoKCkgPT4gY2FsbFJ1bGVBc3luYyhydWxlLCBpbnB1dCwgY29udGV4dCkpOwogICAgICB9CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiBjYWxsUnVsZUFzeW5jKHJ1bGUsIHRyZWUsIGNvbnRleHQpIHsKICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHJ1bGUodHJlZSwgY29udGV4dCk7CiAgICAgIHdoaWxlICh0eXBlb2YgcmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0KHRyZWUsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIikgewogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9CiAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgIHJlc3VsdCA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkocmVzdWx0LnBpcGUoKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodHJlZSkpKTsKICAgICAgfQogICAgICBpZiAocmVzdWx0ICYmIGludGVyZmFjZV8xLlRyZWVTeW1ib2wgaW4gcmVzdWx0KSB7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMuanMKdmFyIHJlcXVpcmVfc2NoZW1hdGljID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9lbmdpbmUvc2NoZW1hdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TY2hlbWF0aWNJbXBsID0gZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBjYWxsXzEgPSByZXF1aXJlX2NhbGwoKTsKICAgIHZhciBzY29wZWRfMSA9IHJlcXVpcmVfc2NvcGVkMigpOwogICAgdmFyIEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpY3MgaGFzIGludmFsaWQgbmFtZTogIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0ltcGwgPSBjbGFzcyB7CiAgICAgIF9kZXNjcmlwdGlvbjsKICAgICAgX2ZhY3Rvcnk7CiAgICAgIF9jb2xsZWN0aW9uOwogICAgICBfZW5naW5lOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9mYWN0b3J5LCBfY29sbGVjdGlvbiwgX2VuZ2luZSkgewogICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gX2Rlc2NyaXB0aW9uOwogICAgICAgIHRoaXMuX2ZhY3RvcnkgPSBfZmFjdG9yeTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uID0gX2NvbGxlY3Rpb247CiAgICAgICAgdGhpcy5fZW5naW5lID0gX2VuZ2luZTsKICAgICAgICBpZiAoIV9kZXNjcmlwdGlvbi5uYW1lLm1hdGNoKC9eWy1AL18uYS16QS1aMC05XSskLykpIHsKICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24oX2Rlc2NyaXB0aW9uLm5hbWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgZGVzY3JpcHRpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uOwogICAgICB9CiAgICAgIGdldCBjb2xsZWN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uOwogICAgICB9CiAgICAgIGNhbGwob3B0aW9ucywgaG9zdCwgcGFyZW50Q29udGV4dCwgZXhlY3V0aW9uT3B0aW9ucykgewogICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29udGV4dCh0aGlzLCBwYXJlbnRDb250ZXh0LCBleGVjdXRpb25PcHRpb25zKTsKICAgICAgICByZXR1cm4gaG9zdC5waXBlKCgwLCByeGpzXzEuZmlyc3QpKCksICgwLCByeGpzXzEuY29uY2F0TWFwKSgodHJlZSkgPT4gdGhpcy5fZW5naW5lLnRyYW5zZm9ybU9wdGlvbnModGhpcywgb3B0aW9ucywgY29udGV4dCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKG8pID0+IFt0cmVlLCBvXSkpKSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChbdHJlZSwgdHJhbnNmb3JtZWRPcHRpb25zXSkgPT4gewogICAgICAgICAgbGV0IGlucHV0OwogICAgICAgICAgbGV0IHNjb3BlZCA9IGZhbHNlOwogICAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5zY29wZSkgewogICAgICAgICAgICBzY29wZWQgPSB0cnVlOwogICAgICAgICAgICBpbnB1dCA9IG5ldyBzY29wZWRfMS5TY29wZWRUcmVlKHRyZWUsIGV4ZWN1dGlvbk9wdGlvbnMuc2NvcGUpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5wdXQgPSB0cmVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHRoaXMuX2ZhY3RvcnkodHJhbnNmb3JtZWRPcHRpb25zKSwgaW5wdXQsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChvdXRwdXQpID0+IHsKICAgICAgICAgICAgaWYgKG91dHB1dCA9PT0gaW5wdXQpIHsKICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY29wZWQpIHsKICAgICAgICAgICAgICB0cmVlLm1lcmdlKG91dHB1dCk7CiAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0ltcGwgPSBTY2hlbWF0aWNJbXBsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qcwp2YXIgcmVxdWlyZV9lbmdpbmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBleHBvcnRzMi5Db2xsZWN0aW9uSW1wbCA9IGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gZXhwb3J0czIuQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgbnVsbF8xID0gcmVxdWlyZV9udWxsKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgdmFyIHNjaGVtYXRpY18xID0gcmVxdWlyZV9zY2hlbWF0aWMoKTsKICAgIHZhciBVbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodXJsMykgewogICAgICAgIHN1cGVyKGBVbmtub3duIFByb3RvY29sIG9uIHVybCAiJHt1cmwzfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBVbmtub3duVXJsU291cmNlUHJvdG9jb2w7CiAgICB2YXIgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBVbmtub3duIGNvbGxlY3Rpb24gIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbjsKICAgIHZhciBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBDaXJjdWxhciBjb2xsZWN0aW9uIHJlZmVyZW5jZSAiJHtuYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb247CiAgICB2YXIgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBjb2xsZWN0aW9uKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpYyAiJHtuYW1lfSIgbm90IGZvdW5kIGluIGNvbGxlY3Rpb24gIiR7Y29sbGVjdGlvbi5uYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbjsKICAgIHZhciBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNvbGxlY3Rpb24pIHsKICAgICAgICBzdXBlcihgU2NoZW1hdGljICIke25hbWV9IiBub3QgZm91bmQgaW4gY29sbGVjdGlvbiAiJHtjb2xsZWN0aW9uLm5hbWV9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKGBBIHNjaGVtYXRpYyB3YXMgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lIGFzIGl0cyBwYXJlbnQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uOwogICAgdmFyIFVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgc2NoZW1hdGljKSB7CiAgICAgICAgY29uc3QgYWRkZW5kdW0gPSBzY2hlbWF0aWMgPyBgIGluIHNjaGVtYXRpYyAiJHtzY2hlbWF0aWMubmFtZX0iYCA6ICIiOwogICAgICAgIHN1cGVyKGBVbnJlZ2lzdGVyZWQgdGFzayAiJHtuYW1lfSIke2FkZGVuZHVtfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBVbnJlZ2lzdGVyZWRUYXNrRXhjZXB0aW9uOwogICAgdmFyIFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihpZCkgewogICAgICAgIHN1cGVyKGBVbmtub3duIHRhc2sgZGVwZW5kZW5jeSBbSUQ6ICR7aWQuaWR9XS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbjsKICAgIHZhciBDb2xsZWN0aW9uSW1wbCA9IGNsYXNzIHsKICAgICAgX2Rlc2NyaXB0aW9uOwogICAgICBfZW5naW5lOwogICAgICBiYXNlRGVzY3JpcHRpb25zOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9lbmdpbmUsIGJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IF9kZXNjcmlwdGlvbjsKICAgICAgICB0aGlzLl9lbmdpbmUgPSBfZW5naW5lOwogICAgICAgIHRoaXMuYmFzZURlc2NyaXB0aW9ucyA9IGJhc2VEZXNjcmlwdGlvbnM7CiAgICAgIH0KICAgICAgZ2V0IGRlc2NyaXB0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjsKICAgICAgfQogICAgICBnZXQgbmFtZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbi5uYW1lIHx8ICI8dW5rbm93bj4iOwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuY3JlYXRlU2NoZW1hdGljKG5hbWUsIHRoaXMsIGFsbG93UHJpdmF0ZSk7CiAgICAgIH0KICAgICAgbGlzdFNjaGVtYXRpY05hbWVzKGluY2x1ZGVIaWRkZW4pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lLmxpc3RTY2hlbWF0aWNOYW1lcyh0aGlzLCBpbmNsdWRlSGlkZGVuKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvbGxlY3Rpb25JbXBsID0gQ29sbGVjdGlvbkltcGw7CiAgICB2YXIgVGFza1NjaGVkdWxlciA9IGNsYXNzIF9UYXNrU2NoZWR1bGVyIHsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9xdWV1ZSA9IG5ldyBjb3JlXzEuUHJpb3JpdHlRdWV1ZSgoeCwgeSkgPT4geC5wcmlvcml0eSAtIHkucHJpb3JpdHkpOwogICAgICBfdGFza0lkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIHN0YXRpYyBfdGFza0lkQ291bnRlciA9IDE7CiAgICAgIGNvbnN0cnVjdG9yKF9jb250ZXh0KSB7CiAgICAgICAgdGhpcy5fY29udGV4dCA9IF9jb250ZXh0OwogICAgICB9CiAgICAgIF9jYWxjdWxhdGVQcmlvcml0eShkZXBlbmRlbmNpZXMpIHsKICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLnNpemUgPT09IDApIHsKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcmlvID0gWy4uLmRlcGVuZGVuY2llc10ucmVkdWNlKChwcmlvMiwgdGFzaykgPT4gcHJpbzIgKyB0YXNrLnByaW9yaXR5LCAxKTsKICAgICAgICByZXR1cm4gcHJpbzsKICAgICAgfQogICAgICBfbWFwRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcykgewogICAgICAgIGlmICghZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza3MgPSBkZXBlbmRlbmNpZXMubWFwKChkZXApID0+IHsKICAgICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrSWRzLmdldChkZXApOwogICAgICAgICAgaWYgKCF0YXNrKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVGFza0RlcGVuZGVuY3lFeGNlcHRpb24oZGVwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2V0KHRhc2tzKTsKICAgICAgfQogICAgICBzY2hlZHVsZSh0YXNrQ29uZmlndXJhdGlvbikgewogICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuX21hcERlcGVuZGVuY2llcyh0YXNrQ29uZmlndXJhdGlvbi5kZXBlbmRlbmNpZXMpOwogICAgICAgIGNvbnN0IHByaW9yaXR5ID0gdGhpcy5fY2FsY3VsYXRlUHJpb3JpdHkoZGVwZW5kZW5jaWVzKTsKICAgICAgICBjb25zdCB0YXNrID0gewogICAgICAgICAgaWQ6IF9UYXNrU2NoZWR1bGVyLl90YXNrSWRDb3VudGVyKyssCiAgICAgICAgICBwcmlvcml0eSwKICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHRhc2tDb25maWd1cmF0aW9uLAogICAgICAgICAgY29udGV4dDogdGhpcy5fY29udGV4dAogICAgICAgIH07CiAgICAgICAgdGhpcy5fcXVldWUucHVzaCh0YXNrKTsKICAgICAgICBjb25zdCBpZCA9IHsgaWQ6IHRhc2suaWQgfTsKICAgICAgICB0aGlzLl90YXNrSWRzLnNldChpZCwgdGFzayk7CiAgICAgICAgcmV0dXJuIGlkOwogICAgICB9CiAgICAgIGZpbmFsaXplKCkgewogICAgICAgIGNvbnN0IHRhc2tzID0gdGhpcy5fcXVldWUudG9BcnJheSgpOwogICAgICAgIHRoaXMuX3F1ZXVlLmNsZWFyKCk7CiAgICAgICAgdGhpcy5fdGFza0lkcy5jbGVhcigpOwogICAgICAgIHJldHVybiB0YXNrczsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBUYXNrU2NoZWR1bGVyOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZSA9IGNsYXNzIHsKICAgICAgX2hvc3Q7CiAgICAgIF93b3JrZmxvdzsKICAgICAgX2NvbGxlY3Rpb25DYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9zY2hlbWF0aWNDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgICBfdGFza1NjaGVkdWxlcnMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF93b3JrZmxvdykgewogICAgICAgIHRoaXMuX2hvc3QgPSBfaG9zdDsKICAgICAgICB0aGlzLl93b3JrZmxvdyA9IF93b3JrZmxvdzsKICAgICAgfQogICAgICBnZXQgd29ya2Zsb3coKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtmbG93IHx8IG51bGw7CiAgICAgIH0KICAgICAgZ2V0IGRlZmF1bHRNZXJnZVN0cmF0ZWd5KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0LmRlZmF1bHRNZXJnZVN0cmF0ZWd5IHx8IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuRGVmYXVsdDsKICAgICAgfQogICAgICBjcmVhdGVDb2xsZWN0aW9uKG5hbWUsIHJlcXVlc3RlcikgewogICAgICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChuYW1lKTsKICAgICAgICBpZiAoY29sbGVjdGlvbikgewogICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247CiAgICAgICAgfQogICAgICAgIGNvbnN0IFtkZXNjcmlwdGlvbiwgYmFzZXNdID0gdGhpcy5fY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcj8uZGVzY3JpcHRpb24pOwogICAgICAgIGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbkltcGwoZGVzY3JpcHRpb24sIHRoaXMsIGJhc2VzKTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uQ2FjaGUuc2V0KG5hbWUsIGNvbGxlY3Rpb24pOwogICAgICAgIHRoaXMuX3NjaGVtYXRpY0NhY2hlLnNldChjb2xsZWN0aW9uLCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTsKICAgICAgICByZXR1cm4gY29sbGVjdGlvbjsKICAgICAgfQogICAgICBfY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3RlciwgcGFyZW50TmFtZXMpIHsKICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcik7CiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikgewogICAgICAgICAgdGhyb3cgbmV3IFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50TmFtZXMgJiYgcGFyZW50TmFtZXMuaGFzKGRlc2NyaXB0aW9uLm5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBjb25zdCBiYXNlcyA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChkZXNjcmlwdGlvbi5leHRlbmRzKSB7CiAgICAgICAgICBwYXJlbnROYW1lcyA9IChwYXJlbnROYW1lcyB8fCAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKS5hZGQoZGVzY3JpcHRpb24ubmFtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IGJhc2VOYW1lIG9mIGRlc2NyaXB0aW9uLmV4dGVuZHMpIHsKICAgICAgICAgICAgY29uc3QgW2Jhc2UsIGJhc2VCYXNlc10gPSB0aGlzLl9jcmVhdGVDb2xsZWN0aW9uRGVzY3JpcHRpb24oYmFzZU5hbWUsIGRlc2NyaXB0aW9uLCBuZXcgU2V0KHBhcmVudE5hbWVzKSk7CiAgICAgICAgICAgIGJhc2VzLnVuc2hpZnQoYmFzZSwgLi4uYmFzZUJhc2VzKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFtkZXNjcmlwdGlvbiwgYmFzZXNdOwogICAgICB9CiAgICAgIGNyZWF0ZUNvbnRleHQoc2NoZW1hdGljLCBwYXJlbnQsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5lbmdpbmUgJiYgcGFyZW50LmVuZ2luZSAhPT0gdGhpcykgewogICAgICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGxldCBpbnRlcmFjdGl2ZSA9IHRydWU7CiAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZSAhPSB2b2lkIDApIHsKICAgICAgICAgIGludGVyYWN0aXZlID0gZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZTsKICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCAmJiBwYXJlbnQuaW50ZXJhY3RpdmUgIT0gdm9pZCAwKSB7CiAgICAgICAgICBpbnRlcmFjdGl2ZSA9IHBhcmVudC5pbnRlcmFjdGl2ZTsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbnRleHQgPSB7CiAgICAgICAgICBkZWJ1ZzogcGFyZW50ICYmIHBhcmVudC5kZWJ1ZyB8fCBmYWxzZSwKICAgICAgICAgIGVuZ2luZTogdGhpcywKICAgICAgICAgIGxvZ2dlcjogcGFyZW50ICYmIHBhcmVudC5sb2dnZXIgJiYgcGFyZW50LmxvZ2dlci5jcmVhdGVDaGlsZChzY2hlbWF0aWMuZGVzY3JpcHRpb24ubmFtZSkgfHwgbmV3IGNvcmVfMS5sb2dnaW5nLk51bGxMb2dnZXIoKSwKICAgICAgICAgIHNjaGVtYXRpYywKICAgICAgICAgIHN0cmF0ZWd5OiBwYXJlbnQgJiYgcGFyZW50LnN0cmF0ZWd5ICE9PSB2b2lkIDAgPyBwYXJlbnQuc3RyYXRlZ3kgOiB0aGlzLmRlZmF1bHRNZXJnZVN0cmF0ZWd5LAogICAgICAgICAgaW50ZXJhY3RpdmUsCiAgICAgICAgICBhZGRUYXNrCiAgICAgICAgfTsKICAgICAgICBjb25zdCBtYXliZU5ld0NvbnRleHQgPSB0aGlzLl9ob3N0LnRyYW5zZm9ybUNvbnRleHQoY29udGV4dCk7CiAgICAgICAgaWYgKG1heWJlTmV3Q29udGV4dCkgewogICAgICAgICAgY29udGV4dCA9IG1heWJlTmV3Q29udGV4dDsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza1NjaGVkdWxlciA9IG5ldyBUYXNrU2NoZWR1bGVyKGNvbnRleHQpOwogICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0OwogICAgICAgIHRoaXMuX3Rhc2tTY2hlZHVsZXJzLnB1c2godGFza1NjaGVkdWxlcik7CiAgICAgICAgZnVuY3Rpb24gYWRkVGFzayh0YXNrLCBkZXBlbmRlbmNpZXMpIHsKICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRhc2sudG9Db25maWd1cmF0aW9uKCk7CiAgICAgICAgICBpZiAoIWhvc3QuaGFzVGFza0V4ZWN1dG9yKGNvbmZpZy5uYW1lKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5yZWdpc3RlcmVkVGFza0V4Y2VwdGlvbihjb25maWcubmFtZSwgc2NoZW1hdGljLmRlc2NyaXB0aW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbmZpZy5kZXBlbmRlbmNpZXMgPSBjb25maWcuZGVwZW5kZW5jaWVzIHx8IFtdOwogICAgICAgICAgaWYgKGRlcGVuZGVuY2llcykgewogICAgICAgICAgICBjb25maWcuZGVwZW5kZW5jaWVzLnVuc2hpZnQoLi4uZGVwZW5kZW5jaWVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrU2NoZWR1bGVyLnNjaGVkdWxlKGNvbmZpZyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb250ZXh0OwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBjb2xsZWN0aW9uLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIGNvbnN0IHNjaGVtYXRpY01hcCA9IHRoaXMuX3NjaGVtYXRpY0NhY2hlLmdldChjb2xsZWN0aW9uKTsKICAgICAgICBsZXQgc2NoZW1hdGljID0gc2NoZW1hdGljTWFwPy5nZXQobmFtZSk7CiAgICAgICAgaWYgKHNjaGVtYXRpYykgewogICAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZGVzY3JpcHRpb247CiAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5faG9zdC5jcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICBpZiAoY29sbGVjdGlvbi5iYXNlRGVzY3JpcHRpb25zKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgYmFzZSBvZiBjb2xsZWN0aW9uLmJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlU2NoZW1hdGljRGVzY3JpcHRpb24obmFtZSwgYmFzZSk7CiAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uRGVzY3JpcHRpb24gPSBiYXNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duU2NoZW1hdGljRXhjZXB0aW9uKG5hbWUsIGNvbGxlY3Rpb24uZGVzY3JpcHRpb24pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZGVzY3JpcHRpb24ucHJpdmF0ZSAmJiAhYWxsb3dQcml2YXRlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgUHJpdmF0ZVNjaGVtYXRpY0V4Y2VwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2hvc3QuZ2V0U2NoZW1hdGljUnVsZUZhY3RvcnkoZGVzY3JpcHRpb24sIGNvbGxlY3Rpb25EZXNjcmlwdGlvbik7CiAgICAgICAgc2NoZW1hdGljID0gbmV3IHNjaGVtYXRpY18xLlNjaGVtYXRpY0ltcGwoZGVzY3JpcHRpb24sIGZhY3RvcnksIGNvbGxlY3Rpb24sIHRoaXMpOwogICAgICAgIHNjaGVtYXRpY01hcD8uc2V0KG5hbWUsIHNjaGVtYXRpYyk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgfQogICAgICBsaXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbiwgaW5jbHVkZUhpZGRlbikgewogICAgICAgIGNvbnN0IG5hbWVzID0gdGhpcy5faG9zdC5saXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbi5kZXNjcmlwdGlvbiwgaW5jbHVkZUhpZGRlbik7CiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgZm9yIChjb25zdCBiYXNlIG9mIGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgICBuYW1lcy5wdXNoKC4uLnRoaXMuX2hvc3QubGlzdFNjaGVtYXRpY05hbWVzKGJhc2UsIGluY2x1ZGVIaWRkZW4pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KG5hbWVzKV0uc29ydCgpOwogICAgICB9CiAgICAgIHRyYW5zZm9ybU9wdGlvbnMoc2NoZW1hdGljLCBvcHRpb25zLCBjb250ZXh0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QudHJhbnNmb3JtT3B0aW9ucyhzY2hlbWF0aWMuZGVzY3JpcHRpb24sIG9wdGlvbnMsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGNyZWF0ZVNvdXJjZUZyb21VcmwodXJsMywgY29udGV4dCkgewogICAgICAgIHN3aXRjaCAodXJsMy5wcm90b2NvbCkgewogICAgICAgICAgY2FzZSAibnVsbDoiOgogICAgICAgICAgICByZXR1cm4gKCkgPT4gbmV3IG51bGxfMS5OdWxsVHJlZSgpOwogICAgICAgICAgY2FzZSAiZW1wdHk6IjoKICAgICAgICAgICAgcmV0dXJuICgpID0+ICgwLCBzdGF0aWNfMS5lbXB0eSkoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaG9zdFNvdXJjZSA9IHRoaXMuX2hvc3QuY3JlYXRlU291cmNlRnJvbVVybCh1cmwzLCBjb250ZXh0KTsKICAgICAgICBpZiAoIWhvc3RTb3VyY2UpIHsKICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wodXJsMy50b1N0cmluZygpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7CiAgICAgIH0KICAgICAgZXhlY3V0ZVBvc3RUYXNrcygpIHsKICAgICAgICBjb25zdCBleGVjdXRvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRhc2tPYnNlcnZhYmxlID0gKDAsIHJ4anNfMS5mcm9tKSh0aGlzLl90YXNrU2NoZWR1bGVycykucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHNjaGVkdWxlcikgPT4gc2NoZWR1bGVyLmZpbmFsaXplKCkpLCAoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHRhc2spID0+IHsKICAgICAgICAgIGNvbnN0IHsgbmFtZSwgb3B0aW9ucyB9ID0gdGFzay5jb25maWd1cmF0aW9uOwogICAgICAgICAgY29uc3QgZXhlY3V0b3IgPSBleGVjdXRvcnMuZ2V0KG5hbWUpOwogICAgICAgICAgaWYgKGV4ZWN1dG9yKSB7CiAgICAgICAgICAgIHJldHVybiBleGVjdXRvcihvcHRpb25zLCB0YXNrLmNvbnRleHQpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QuY3JlYXRlVGFza0V4ZWN1dG9yKG5hbWUpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChleGVjdXRvcjIpID0+IHsKICAgICAgICAgICAgZXhlY3V0b3JzLnNldChuYW1lLCBleGVjdXRvcjIpOwogICAgICAgICAgICByZXR1cm4gZXhlY3V0b3IyKG9wdGlvbnMsIHRhc2suY29udGV4dCk7CiAgICAgICAgICB9KSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiB0YXNrT2JzZXJ2YWJsZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IFNjaGVtYXRpY0VuZ2luZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UuanMKdmFyIHJlcXVpcmVfaW50ZXJmYWNlNCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzCnZhciByZXF1aXJlX2VuZ2luZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW5naW5lKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hdGljKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzCnZhciByZXF1aXJlX2NsaV9sb2dnZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVDb25zb2xlTG9nZ2VyID0gY3JlYXRlQ29uc29sZUxvZ2dlcjsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIHNyY18xID0gcmVxdWlyZV9zcmMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXIodmVyYm9zZSA9IGZhbHNlLCBzdGRvdXQgPSBwcm9jZXNzLnN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5zdGRlcnIsIGNvbG9ycykgewogICAgICBjb25zdCBsb2dnZXIgPSBuZXcgc3JjXzEubG9nZ2luZy5JbmRlbnRMb2dnZXIoImNsaW5nIik7CiAgICAgIGxvZ2dlci5waXBlKCgwLCByeGpzXzEuZmlsdGVyKSgoZW50cnkpID0+IGVudHJ5LmxldmVsICE9PSAiZGVidWciIHx8IHZlcmJvc2UpKS5zdWJzY3JpYmUoKGVudHJ5KSA9PiB7CiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvcnMgJiYgY29sb3JzW2VudHJ5LmxldmVsXTsKICAgICAgICBsZXQgb3V0cHV0ID0gc3Rkb3V0OwogICAgICAgIHN3aXRjaCAoZW50cnkubGV2ZWwpIHsKICAgICAgICAgIGNhc2UgIndhcm4iOgogICAgICAgICAgY2FzZSAiZmF0YWwiOgogICAgICAgICAgY2FzZSAiZXJyb3IiOgogICAgICAgICAgICBvdXRwdXQgPSBzdGRlcnI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBjb25zdCBjaHVua1NpemUgPSAyZTM7CiAgICAgICAgbGV0IG1lc3NhZ2UgPSBlbnRyeS5tZXNzYWdlOwogICAgICAgIHdoaWxlIChtZXNzYWdlKSB7CiAgICAgICAgICBjb25zdCBjaHVuayA9IG1lc3NhZ2Uuc2xpY2UoMCwgY2h1bmtTaXplKTsKICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnNsaWNlKGNodW5rU2l6ZSk7CiAgICAgICAgICBvdXRwdXQud3JpdGUoY29sb3IgPyBjb2xvcihjaHVuaykgOiBjaHVuayk7CiAgICAgICAgfQogICAgICAgIG91dHB1dC53cml0ZSgiXG4iKTsKICAgICAgfSk7CiAgICAgIHJldHVybiBsb2dnZXI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaG9zdC5qcwp2YXIgcmVxdWlyZV9ob3N0MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk5vZGVKc1N5bmNIb3N0ID0gZXhwb3J0czIuTm9kZUpzQXN5bmNIb3N0ID0gdm9pZCAwOwogICAgdmFyIG5vZGVfZnNfMSA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKICAgIHZhciBub2RlX3BhdGhfMSA9IHJlcXVpcmUoIm5vZGU6cGF0aCIpOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc3JjXzEgPSByZXF1aXJlX3NyYygpOwogICAgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHBhdGgpIHsKICAgICAgdHJ5IHsKICAgICAgICBhd2FpdCBub2RlX2ZzXzEucHJvbWlzZXMuYWNjZXNzKHBhdGgsIG5vZGVfZnNfMS5jb25zdGFudHMuRl9PSyk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgdmFyIEZTV2F0Y2hlcjsKICAgIGZ1bmN0aW9uIGxvYWRGU1dhdGNoZXIoKSB7CiAgICAgIGlmICghRlNXYXRjaGVyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIEZTV2F0Y2hlciA9IHJlcXVpcmUoImNob2tpZGFyIikuRlNXYXRjaGVyOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlLmNvZGUgIT09ICJNT0RVTEVfTk9UX0ZPVU5EIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FzIG9mIGFuZ3VsYXItZGV2a2l0IHZlcnNpb24gOC4wLCB0aGUgImNob2tpZGFyIiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGluIG9yZGVyIHRvIHVzZSB3YXRjaCgpIGZlYXR1cmVzLicpOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHZhciBOb2RlSnNBc3luY0hvc3QgPSBjbGFzcyB7CiAgICAgIGdldCBjYXBhYmlsaXRpZXMoKSB7CiAgICAgICAgcmV0dXJuIHsgc3luY2hyb25vdXM6IGZhbHNlIH07CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5ta2RpcigoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSkpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKCkgPT4gbm9kZV9mc18xLnByb21pc2VzLndyaXRlRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCksIG5ldyBVaW50OEFycmF5KGNvbnRlbnQpKSkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYnVmZmVyKSA9PiBuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcikpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkobm9kZV9mc18xLnByb21pc2VzLnJtKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMucmVuYW1lKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShmcm9tKSwgKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHRvKSkpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkZGlyKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChuYW1lcykgPT4gbmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkoZXhpc3RzKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMuc3RhdCgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgX29wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIGxvYWRGU1dhdGNoZXIoKTsKICAgICAgICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRlNXYXRjaGVyKHsgcGVyc2lzdGVudDogdHJ1ZSB9KTsKICAgICAgICAgIHdhdGNoZXIuYWRkKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICB3YXRjaGVyLm9uKCJjaGFuZ2UiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNoYW5nZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigiYWRkIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkub24oInVubGluayIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgdm9pZCB3YXRjaGVyLmNsb3NlKCk7CiAgICAgICAgICB9OwogICAgICAgIH0pLnBpcGUoKDAsIHJ4anNfMS5wdWJsaXNoKSgpLCAoMCwgcnhqc18xLnJlZkNvdW50KSgpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5vZGVKc0FzeW5jSG9zdCA9IE5vZGVKc0FzeW5jSG9zdDsKICAgIHZhciBOb2RlSnNTeW5jSG9zdCA9IGNsYXNzIHsKICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgICgwLCBub2RlX2ZzXzEubWtkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgICAoMCwgbm9kZV9mc18xLndyaXRlRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgbmV3IFVpbnQ4QXJyYXkoY29udGVudCkpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgYnVmZmVyID0gKDAsIG5vZGVfZnNfMS5yZWFkRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICBvYnMubmV4dChuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcik7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ybVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCB0b1N5c3RlbVBhdGggPSAoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkodG8pOwogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ta2RpclN5bmMpKCgwLCBub2RlX3BhdGhfMS5kaXJuYW1lKSh0b1N5c3RlbVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICAgICgwLCBub2RlX2ZzXzEucmVuYW1lU3luYykoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKGZyb20pLCB0b1N5c3RlbVBhdGgpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgbmFtZXMgPSAoMCwgbm9kZV9mc18xLnJlYWRkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpOwogICAgICAgICAgb2JzLm5leHQobmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQoKDAsIG5vZGVfZnNfMS5leGlzdHNTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KCgwLCBub2RlX2ZzXzEuc3RhdFN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgd2F0Y2hpbmcuCiAgICAgIHdhdGNoKHBhdGgsIF9vcHRpb25zKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBsb2FkRlNXYXRjaGVyKCk7CiAgICAgICAgICBjb25zdCB3YXRjaGVyID0gbmV3IEZTV2F0Y2hlcih7IHBlcnNpc3RlbnQ6IGZhbHNlIH0pOwogICAgICAgICAgd2F0Y2hlci5hZGQoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHBhdGgpKTsKICAgICAgICAgIHdhdGNoZXIub24oImNoYW5nZSIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLm9uKCJhZGQiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNyZWF0ZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigidW5saW5rIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICB2b2lkIHdhdGNoZXIuY2xvc2UoKTsKICAgICAgICAgIH07CiAgICAgICAgfSkucGlwZSgoMCwgcnhqc18xLnB1Ymxpc2gpKCksICgwLCByeGpzXzEucmVmQ291bnQpKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTm9kZUpzU3luY0hvc3QgPSBOb2RlSnNTeW5jSG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9ub2RlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2NsaV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDMoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanMKdmFyIHJlcXVpcmVfYWN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2FjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQWN0aW9uTGlzdCA9IGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSB2b2lkIDA7CiAgICBleHBvcnRzMi5pc0NvbnRlbnRBY3Rpb24gPSBpc0NvbnRlbnRBY3Rpb247CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBVbmtub3duQWN0aW9uRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKGFjdGlvbikgewogICAgICAgIHN1cGVyKGBVbmtub3duIGFjdGlvbjogIiR7YWN0aW9uLmtpbmR9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQWN0aW9uRXhjZXB0aW9uOwogICAgdmFyIF9pZCA9IDE7CiAgICB2YXIgQWN0aW9uTGlzdCA9IGNsYXNzIHsKICAgICAgX2FjdGlvbnMgPSBbXTsKICAgICAgX2FjdGlvbihhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goewogICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgaWQ6IF9pZCsrLAogICAgICAgICAgcGFyZW50OiB0aGlzLl9hY3Rpb25zW3RoaXMuX2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkID8/IDAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJjIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICBvdmVyd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJvIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgdG8pIHsKICAgICAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAiciIsIHBhdGgsIHRvIH0pOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgdGhpcy5fYWN0aW9uKHsga2luZDogImQiLCBwYXRoIH0pOwogICAgICB9CiAgICAgIG9wdGltaXplKCkgewogICAgICAgIGNvbnN0IHRvQ3JlYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBjb25zdCB0b1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgY29uc3QgdG9PdmVyd3JpdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLl9hY3Rpb25zKSB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBpZiAodG9DcmVhdGUuaGFzKGFjdGlvbi5wYXRoKSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuc2V0KGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRvT3ZlcndyaXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgdG9EZWxldGUuYWRkKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6IHsKICAgICAgICAgICAgICBjb25zdCBtYXliZUNyZWF0ZSA9IHRvQ3JlYXRlLmdldChhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgY29uc3QgbWF5YmVPdmVyd3JpdGUgPSB0b092ZXJ3cml0ZS5nZXQoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgIGlmIChtYXliZUNyZWF0ZSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuZGVsZXRlKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24udG8sIG1heWJlQ3JlYXRlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG1heWJlT3ZlcndyaXRlKSB7CiAgICAgICAgICAgICAgICB0b092ZXJ3cml0ZS5kZWxldGUoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgICAgdG9PdmVyd3JpdGUuc2V0KGFjdGlvbi50bywgbWF5YmVPdmVyd3JpdGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsZXQgbWF5YmVSZW5hbWUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIHRvUmVuYW1lLmVudHJpZXMoKSkgewogICAgICAgICAgICAgICAgaWYgKHRvID09IGFjdGlvbi5wYXRoKSB7CiAgICAgICAgICAgICAgICAgIG1heWJlUmVuYW1lID0gZnJvbTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYXliZVJlbmFtZSkgewogICAgICAgICAgICAgICAgdG9SZW5hbWUuc2V0KG1heWJlUmVuYW1lLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIW1heWJlQ3JlYXRlICYmICFtYXliZU92ZXJ3cml0ZSAmJiAhbWF5YmVSZW5hbWUpIHsKICAgICAgICAgICAgICAgIHRvUmVuYW1lLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtdOwogICAgICAgIHRvRGVsZXRlLmZvckVhY2goKHgpID0+IHsKICAgICAgICAgIHRoaXMuZGVsZXRlKHgpOwogICAgICAgIH0pOwogICAgICAgIHRvUmVuYW1lLmZvckVhY2goKHRvLCBmcm9tKSA9PiB7CiAgICAgICAgICB0aGlzLnJlbmFtZShmcm9tLCB0byk7CiAgICAgICAgfSk7CiAgICAgICAgdG9DcmVhdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgICAgdG9PdmVyd3JpdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcHVzaChhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTsKICAgICAgfQogICAgICBnZXQoaSkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zW2ldOwogICAgICB9CiAgICAgIGhhcyhhY3Rpb24pIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IGEgPSB0aGlzLl9hY3Rpb25zW2ldOwogICAgICAgICAgaWYgKGEuaWQgPT0gYWN0aW9uLmlkKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGEuaWQgPiBhY3Rpb24uaWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZmluZChwcmVkaWNhdGUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maW5kKHByZWRpY2F0ZSkgfHwgbnVsbDsKICAgICAgfQogICAgICBmb3JFYWNoKGZuLCB0aGlzQXJnKSB7CiAgICAgICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQgbGVuZ3RoKCkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmxlbmd0aDsKICAgICAgfQogICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BY3Rpb25MaXN0ID0gQWN0aW9uTGlzdDsKICAgIGZ1bmN0aW9uIGlzQ29udGVudEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIGFjdGlvbi5raW5kID09ICJjIiB8fCBhY3Rpb24ua2luZCA9PSAibyI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsuanMKdmFyIHJlcXVpcmVfc2luayA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9zaW5rLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TaW1wbGVTaW5rQmFzZSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgYWN0aW9uXzEgPSByZXF1aXJlX2FjdGlvbigpOwogICAgdmFyIE5vb3AgPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB2YXIgU2ltcGxlU2lua0Jhc2UgPSBjbGFzcyB7CiAgICAgIHByZUNvbW1pdEFjdGlvbiA9IE5vb3A7CiAgICAgIHBvc3RDb21taXRBY3Rpb24gPSBOb29wOwogICAgICBwcmVDb21taXQgPSBOb29wOwogICAgICBwb3N0Q29tbWl0ID0gTm9vcDsKICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBfdmFsaWRhdGVPdmVyd3JpdGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24ucGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKGIpID0+IHsKICAgICAgICAgIGlmICghYikgewogICAgICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoIWIpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEubWVyZ2VNYXApKCgpID0+IHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24udG8pKSwgKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYikgPT4gewogICAgICAgICAgaWYgKCFiKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICB2YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJyIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgYWN0aW9uXzEuVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnZhbGlkYXRlU2luZ2xlQWN0aW9uKGFjdGlvbiksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHsKICAgICAgICAgIGxldCBjb21taXR0ZWQgPSBudWxsOwogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIGNvbW1pdHRlZCA9IHRoaXMuX2NyZWF0ZUZpbGUoYWN0aW9uLnBhdGgsIGFjdGlvbi5jb250ZW50KTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fcmVuYW1lRmlsZShhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29tbWl0dGVkKSB7CiAgICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpKTsKICAgICAgfQogICAgICBjb21taXQodHJlZSkgewogICAgICAgIGNvbnN0IGFjdGlvbnMgPSAoMCwgcnhqc18xLmZyb20pKHRyZWUuYWN0aW9ucyk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnByZUNvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpLCAoMCwgcnhqc18xLmRlZmVyKSgoKSA9PiBhY3Rpb25zKS5waXBlKCgwLCByeGpzXzEuY29uY2F0TWFwKSgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBjb25zdCBtYXliZUFjdGlvbiA9IHRoaXMucHJlQ29tbWl0QWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKG1heWJlQWN0aW9uKSB8fCBpc1Byb21pc2VMaWtlKG1heWJlQWN0aW9uKSkgewogICAgICAgICAgICByZXR1cm4gbWF5YmVBY3Rpb247CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikobWF5YmVBY3Rpb24gfHwgYWN0aW9uKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5jb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKS5waXBlKCgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKShhY3Rpb24pKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHRoaXMucG9zdENvbW1pdEFjdGlvbihhY3Rpb24pIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMuX2RvbmUoKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMucG9zdENvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpLCAoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZVNpbmtCYXNlID0gU2ltcGxlU2lua0Jhc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHZhbHVlKSB7CiAgICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAiZnVuY3Rpb24iOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3Q0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc2lua18xID0gcmVxdWlyZV9zaW5rKCk7CiAgICB2YXIgSG9zdFNpbmsgPSBjbGFzcyBleHRlbmRzIHNpbmtfMS5TaW1wbGVTaW5rQmFzZSB7CiAgICAgIF9ob3N0OwogICAgICBfZm9yY2U7CiAgICAgIF9maWxlc1RvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgX2ZpbGVzVG9SZW5hbWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb0NyZWF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvVXBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF9mb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9ob3N0ID0gX2hvc3Q7CiAgICAgICAgdGhpcy5fZm9yY2UgPSBfZm9yY2U7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl9mb3JjZSA/IHJ4anNfMS5FTVBUWSA6IHN1cGVyLl92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb24pOwogICAgICB9CiAgICAgIF92YWxpZGF0ZUZpbGVFeGlzdHMocCkgewogICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwKSB8fCB0aGlzLl9maWxlc1RvVXBkYXRlLmhhcyhwKSkgewogICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocCkpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lLnZhbHVlcygpKSB7CiAgICAgICAgICBzd2l0Y2ggKHApIHsKICAgICAgICAgICAgY2FzZSBmcm9tOgogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgdG86CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5leGlzdHMocCk7CiAgICAgIH0KICAgICAgX292ZXJ3cml0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9VcGRhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX2NyZWF0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX3JlbmFtZUZpbGUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmFkZChbZnJvbSwgdG9dKTsKICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kZWxldGVGaWxlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kb25lKCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShbLi4udGhpcy5fZmlsZXNUb0RlbGV0ZS52YWx1ZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChwYXRoKSA9PiB0aGlzLl9ob3N0LmRlbGV0ZShwYXRoKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvUmVuYW1lLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbXywgW3BhdGgsIHRvXV0pID0+IHRoaXMuX2hvc3QucmVuYW1lKHBhdGgsIHRvKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvQ3JlYXRlLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIpKSksICgwLCByeGpzXzEuZnJvbSkoWy4uLnRoaXMuX2ZpbGVzVG9VcGRhdGUuZW50cmllcygpXSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKFtwYXRoLCBidWZmZXJdKSA9PiB0aGlzLl9ob3N0LndyaXRlKHBhdGgsIGJ1ZmZlcikpKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKCkgPT4gewogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gSG9zdFNpbms7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qcwp2YXIgcmVxdWlyZV9kcnlydW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5EcnlSdW5TaW5rID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgbm9kZV8xID0gcmVxdWlyZV9ub2RlKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3Q0KCk7CiAgICB2YXIgRHJ5UnVuU2luayA9IGNsYXNzIGV4dGVuZHMgaG9zdF8xLkhvc3RTaW5rIHsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHJlcG9ydGVyID0gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTsKICAgICAgY29uc3RydWN0b3IoaG9zdCwgZm9yY2UgPSBmYWxzZSkgewogICAgICAgIHN1cGVyKHR5cGVvZiBob3N0ID09ICJzdHJpbmciID8gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU2NvcGVkSG9zdChuZXcgbm9kZV8xLk5vZGVKc1N5bmNIb3N0KCksICgwLCBjb3JlXzEubm9ybWFsaXplKShob3N0KSkgOiBob3N0LCBmb3JjZSk7CiAgICAgIH0KICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmFkZChwYXRoKTsKICAgICAgfQogICAgICBfZG9uZSgpIHsKICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmZvckVhY2goKHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7CiAgICAgICAgICAgIGtpbmQ6ICJlcnJvciIsCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiYWxyZWFkeUV4aXN0IiwKICAgICAgICAgICAgcGF0aAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKChwYXRoKSA9PiB7CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoewogICAgICAgICAgICBraW5kOiAiZXJyb3IiLAogICAgICAgICAgICBkZXNjcmlwdGlvbjogImRvZXNOb3RFeGlzdCIsCiAgICAgICAgICAgIHBhdGgKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZm9yRWFjaCgocGF0aCkgPT4gewogICAgICAgICAgZm9yIChjb25zdCBbZnJvbV0gb2YgdGhpcy5fZmlsZXNUb1JlbmFtZSkgewogICAgICAgICAgICBpZiAoZnJvbSA9PSBwYXRoKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiZGVsZXRlIiwgcGF0aCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmZvckVhY2goKFtwYXRoLCB0b10pID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJyZW5hbWUiLCBwYXRoLCB0byB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIGZvciAoY29uc3QgWywgdG9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHsKICAgICAgICAgICAgaWYgKHRvID09IHBhdGgpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSB8fCB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiY3JlYXRlIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJ1cGRhdGUiLCBwYXRoLCBjb250ZW50IH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkRyeVJ1blNpbmsgPSBEcnlSdW5TaW5rOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qcwp2YXIgcmVxdWlyZV9iYXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9iYXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CYXNlV29ya2Zsb3cgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGVuZ2luZV8xID0gcmVxdWlyZV9lbmdpbmUyKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBmb3JtYXRzXzEgPSByZXF1aXJlX2Zvcm1hdHMyKCk7CiAgICB2YXIgZHJ5cnVuXzEgPSByZXF1aXJlX2RyeXJ1bigpOwogICAgdmFyIGhvc3RfMSA9IHJlcXVpcmVfaG9zdDQoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgQmFzZVdvcmtmbG93ID0gY2xhc3MgewogICAgICBfZW5naW5lOwogICAgICBfZW5naW5lSG9zdDsKICAgICAgX3JlZ2lzdHJ5OwogICAgICBfaG9zdDsKICAgICAgX3JlcG9ydGVyID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgIF9saWZlQ3ljbGUgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9mb3JjZTsKICAgICAgX2RyeVJ1bjsKICAgICAgY29uc3RydWN0b3Iob3B0aW9ucykgewogICAgICAgIHRoaXMuX2hvc3QgPSBvcHRpb25zLmhvc3Q7CiAgICAgICAgdGhpcy5fZW5naW5lSG9zdCA9IG9wdGlvbnMuZW5naW5lSG9zdDsKICAgICAgICBpZiAob3B0aW9ucy5yZWdpc3RyeSkgewogICAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBvcHRpb25zLnJlZ2lzdHJ5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBjb3JlXzEuc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeShmb3JtYXRzXzEuc3RhbmRhcmRGb3JtYXRzKTsKICAgICAgICAgIHRoaXMuX3JlZ2lzdHJ5LmFkZFBvc3RUcmFuc2Zvcm0oY29yZV8xLnNjaGVtYS50cmFuc2Zvcm1zLmFkZFVuZGVmaW5lZERlZmF1bHRzKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZW5naW5lID0gbmV3IGVuZ2luZV8xLlNjaGVtYXRpY0VuZ2luZSh0aGlzLl9lbmdpbmVIb3N0LCB0aGlzKTsKICAgICAgICB0aGlzLl9jb250ZXh0ID0gW107CiAgICAgICAgdGhpcy5fZm9yY2UgPSBvcHRpb25zLmZvcmNlIHx8IGZhbHNlOwogICAgICAgIHRoaXMuX2RyeVJ1biA9IG9wdGlvbnMuZHJ5UnVuIHx8IGZhbHNlOwogICAgICB9CiAgICAgIGdldCBjb250ZXh0KCkgewogICAgICAgIGNvbnN0IG1heWJlQ29udGV4dCA9IHRoaXMuX2NvbnRleHRbdGhpcy5fY29udGV4dC5sZW5ndGggLSAxXTsKICAgICAgICBpZiAoIW1heWJlQ29udGV4dCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IGNvbnRleHQgd2hlbiB3b3JrZmxvdyBpcyBub3QgZXhlY3V0aW5nLi4uIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUNvbnRleHQ7CiAgICAgIH0KICAgICAgZ2V0IGVuZ2luZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lOwogICAgICB9CiAgICAgIGdldCBlbmdpbmVIb3N0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmVIb3N0OwogICAgICB9CiAgICAgIGdldCByZWdpc3RyeSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnk7CiAgICAgIH0KICAgICAgZ2V0IHJlcG9ydGVyKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlci5hc09ic2VydmFibGUoKTsKICAgICAgfQogICAgICBnZXQgbGlmZUN5Y2xlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9saWZlQ3ljbGUuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgX2NyZWF0ZVNpbmtzKCkgewogICAgICAgIGxldCBlcnJvciA9IGZhbHNlOwogICAgICAgIGNvbnN0IGRyeVJ1blNpbmsgPSBuZXcgZHJ5cnVuXzEuRHJ5UnVuU2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSk7CiAgICAgICAgY29uc3QgZHJ5UnVuU3Vic2NyaWJlciA9IGRyeVJ1blNpbmsucmVwb3J0ZXIuc3Vic2NyaWJlKChldmVudCkgPT4gewogICAgICAgICAgdGhpcy5fcmVwb3J0ZXIubmV4dChldmVudCk7CiAgICAgICAgICBlcnJvciA9IGVycm9yIHx8IGV2ZW50LmtpbmQgPT0gImVycm9yIjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgZHJ5UnVuU2luaywKICAgICAgICAgIC8vIEFkZCBhIGN1c3RvbSBzaW5rIHRoYXQgY2xlYW4gb3Vyc2VsdmVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgYW4gZXJyb3IgaGFwcGVuZWQuCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvbW1pdCgpIHsKICAgICAgICAgICAgICBkcnlSdW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24oKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gT25seSBhZGQgYSBIb3N0U2luayBpZiB0aGlzIGlzIG5vdCBhIGRyeVJ1bi4KICAgICAgICAgIC4uLiF0aGlzLl9kcnlSdW4gPyBbbmV3IGhvc3RfMS5Ib3N0U2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSldIDogW10KICAgICAgICBdOwogICAgICB9CiAgICAgIGV4ZWN1dGUob3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhcmVudENvbnRleHQgPSB0aGlzLl9jb250ZXh0W3RoaXMuX2NvbnRleHQubGVuZ3RoIC0gMV07CiAgICAgICAgaWYgKCFwYXJlbnRDb250ZXh0KSB7CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJzdGFydCIgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29sbGVjdGlvbihvcHRpb25zLmNvbGxlY3Rpb24pOwogICAgICAgIGNvbnN0IGFsbG93UHJpdmF0ZSA9IG9wdGlvbnMuYWxsb3dQcml2YXRlIHx8IHBhcmVudENvbnRleHQgJiYgcGFyZW50Q29udGV4dC5jb2xsZWN0aW9uID09PSBvcHRpb25zLmNvbGxlY3Rpb247CiAgICAgICAgY29uc3Qgc2NoZW1hdGljID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMob3B0aW9ucy5zY2hlbWF0aWMsIGFsbG93UHJpdmF0ZSk7CiAgICAgICAgY29uc3Qgc2lua3MgPSB0aGlzLl9jcmVhdGVTaW5rcygpOwogICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LXN0YXJ0IiB9KTsKICAgICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgICAgLi4ub3B0aW9ucywKICAgICAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLAogICAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB8fCBwYXJlbnRDb250ZXh0ICYmIHBhcmVudENvbnRleHQubG9nZ2VyIHx8IG5ldyBjb3JlXzEubG9nZ2luZy5OdWxsTG9nZ2VyKCksCiAgICAgICAgICBwYXJlbnRDb250ZXh0CiAgICAgICAgfTsKICAgICAgICB0aGlzLl9jb250ZXh0LnB1c2goY29udGV4dCk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYy5jYWxsKG9wdGlvbnMub3B0aW9ucywgKDAsIHJ4anNfMS5vZikobmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKHRoaXMuX2hvc3QpKSwgeyBsb2dnZXI6IGNvbnRleHQubG9nZ2VyIH0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKCh0cmVlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKCgwLCByeGpzXzEuZnJvbSkoc2lua3MpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChzaW5rKSA9PiBzaW5rLmNvbW1pdCh0cmVlKSksICgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKSh0cmVlKSk7CiAgICAgICAgfSksICgwLCByeGpzXzEuY29uY2F0TWFwKSgoKSA9PiB7CiAgICAgICAgICBpZiAodGhpcy5fZHJ5UnVuKSB7CiAgICAgICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJwb3N0LXRhc2tzLXN0YXJ0IiB9KTsKICAgICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuZXhlY3V0ZVBvc3RUYXNrcygpLnBpcGUoKDAsIHJ4anNfMS50YXApKHsgY29tcGxldGU6ICgpID0+IHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogInBvc3QtdGFza3MtZW5kIiB9KSB9KSwgKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodm9pZCAwKSwgKDAsIHJ4anNfMS5sYXN0KSgpKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS50YXApKHsKICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LWVuZCIgfSk7CiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQucG9wKCk7CiAgICAgICAgICAgIGlmICh0aGlzLl9jb250ZXh0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgdGhpcy5fbGlmZUN5Y2xlLm5leHQoeyBraW5kOiAiZW5kIiB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkJhc2VXb3JrZmxvdyA9IEJhc2VXb3JrZmxvdzsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2U1ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2luZGV4LmpzCnZhciByZXF1aXJlX3dvcmtmbG93ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYmFzZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9pbnRlcmZhY2U1KCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMKdmFyIHJlcXVpcmVfYmFzZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNvdXJjZSA9IHNvdXJjZTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZW1wdHk7CiAgICBleHBvcnRzMi5jaGFpbiA9IGNoYWluMjsKICAgIGV4cG9ydHMyLmFwcGx5ID0gYXBwbHkzOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gbWVyZ2VXaXRoMjsKICAgIGV4cG9ydHMyLm5vb3AgPSBub29wOwogICAgZXhwb3J0czIuZmlsdGVyID0gZmlsdGVyOwogICAgZXhwb3J0czIuYXNTb3VyY2UgPSBhc1NvdXJjZTsKICAgIGV4cG9ydHMyLmJyYW5jaEFuZE1lcmdlID0gYnJhbmNoQW5kTWVyZ2U7CiAgICBleHBvcnRzMi53aGVuID0gd2hlbjsKICAgIGV4cG9ydHMyLnBhcnRpdGlvbkFwcGx5TWVyZ2UgPSBwYXJ0aXRpb25BcHBseU1lcmdlOwogICAgZXhwb3J0czIuZm9yRWFjaCA9IGZvckVhY2g7CiAgICBleHBvcnRzMi5jb21wb3NlRmlsZU9wZXJhdG9ycyA9IGNvbXBvc2VGaWxlT3BlcmF0b3JzOwogICAgZXhwb3J0czIuYXBwbHlUb1N1YnRyZWUgPSBhcHBseVRvU3VidHJlZTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgaG9zdF90cmVlXzEgPSByZXF1aXJlX2hvc3RfdHJlZSgpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc2NvcGVkXzEgPSByZXF1aXJlX3Njb3BlZDIoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgY2FsbF8xID0gcmVxdWlyZV9jYWxsKCk7CiAgICBmdW5jdGlvbiBzb3VyY2UodHJlZSkgewogICAgICByZXR1cm4gKCkgPT4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gKCkgPT4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgfQogICAgZnVuY3Rpb24gY2hhaW4yKHJ1bGVzKSB7CiAgICAgIHJldHVybiBhc3luYyAoaW5pdGlhbFRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBsZXQgaW50ZXJtZWRpYXRlVHJlZTsKICAgICAgICBpZiAoU3ltYm9sLmFzeW5jSXRlcmF0b3IgaW4gcnVsZXMpIHsKICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoKSA9PiBpbnRlcm1lZGlhdGVUcmVlOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gYXBwbHkzKHNvdXJjZTIsIHJ1bGVzKSB7CiAgICAgIHJldHVybiAoY29udGV4dCkgPT4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgKDAsIGNhbGxfMS5jYWxsU291cmNlKShzb3VyY2UyLCBjb250ZXh0KSwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZVdpdGgyKHNvdXJjZTIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIHJldHVybiAoMCwgY2FsbF8xLmNhbGxTb3VyY2UpKHNvdXJjZTIsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzb3VyY2VUcmVlKSA9PiB0cmVlLm1lcmdlKHNvdXJjZVRyZWUsIHN0cmF0ZWd5IHx8IGNvbnRleHQuc3RyYXRlZ3kpKSwgKDAsIHJ4anNfMS5tYXBUbykodHJlZSkpOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gbm9vcCgpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuICh0cmVlKSA9PiB7CiAgICAgICAgaWYgKGhvc3RfdHJlZV8xLkhvc3RUcmVlLmlzSG9zdFRyZWUodHJlZSkpIHsKICAgICAgICAgIHJldHVybiBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzU291cmNlKHJ1bGUpIHsKICAgICAgcmV0dXJuIChjb250ZXh0KSA9PiAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlLCAoMCwgc3RhdGljXzEuZW1wdHkpKCksIGNvbnRleHQpOwogICAgfQogICAgZnVuY3Rpb24gYnJhbmNoQW5kTWVyZ2UocnVsZSwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgcmV0dXJuICh0cmVlLCBjb250ZXh0KSA9PiB7CiAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHJ1bGUsIHRyZWUuYnJhbmNoKCksIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChicmFuY2gpID0+IHRyZWUubWVyZ2UoYnJhbmNoLCBzdHJhdGVneSB8fCBjb250ZXh0LnN0cmF0ZWd5KSksICgwLCByeGpzXzEubWFwVG8pKHRyZWUpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHdoZW4ocHJlZGljYXRlLCBvcGVyYXRvcikgewogICAgICByZXR1cm4gKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKHByZWRpY2F0ZShlbnRyeS5wYXRoLCBlbnRyeSkpIHsKICAgICAgICAgIHJldHVybiBvcGVyYXRvcihlbnRyeSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBwYXJ0aXRpb25BcHBseU1lcmdlKHByZWRpY2F0ZSwgcnVsZVllcywgcnVsZU5vKSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IFt5ZXMsIG5vXSA9ICgwLCBzdGF0aWNfMS5wYXJ0aXRpb24pKHRyZWUsIHByZWRpY2F0ZSk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSgoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlWWVzLCB5ZXMsIGNvbnRleHQpLCAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlTm8gfHwgbm9vcCgpLCBubywgY29udGV4dCkpLnBpcGUoKDAsIHJ4anNfMS50b0FycmF5KSgpLCAoMCwgcnhqc18xLm1hcCkoKFt5ZXNUcmVlLCBub1RyZWVdKSA9PiB7CiAgICAgICAgICB5ZXNUcmVlLm1lcmdlKG5vVHJlZSwgY29udGV4dC5zdHJhdGVneSk7CiAgICAgICAgICByZXR1cm4geWVzVHJlZTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBmb3JFYWNoKG9wZXJhdG9yKSB7CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIHRyZWUudmlzaXQoKHBhdGgsIGVudHJ5KSA9PiB7CiAgICAgICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpOwogICAgICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHsKICAgICAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChuZXdFbnRyeS5wYXRoICE9IHBhdGgpIHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgbmV3RW50cnkucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5ld0VudHJ5LmNvbnRlbnQuZXF1YWxzKGVudHJ5LmNvbnRlbnQpKSB7CiAgICAgICAgICAgIHRyZWUub3ZlcndyaXRlKG5ld0VudHJ5LnBhdGgsIG5ld0VudHJ5LmNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gY29tcG9zZUZpbGVPcGVyYXRvcnMob3BlcmF0b3JzKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBsZXQgY3VycmVudCA9IGVudHJ5OwogICAgICAgIGZvciAoY29uc3Qgb3Agb2Ygb3BlcmF0b3JzKSB7CiAgICAgICAgICBjdXJyZW50ID0gb3AoY3VycmVudCk7CiAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBhcHBseVRvU3VidHJlZShwYXRoLCBydWxlcykgewogICAgICByZXR1cm4gKHRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBzY29wZWQgPSBuZXcgc2NvcGVkXzEuU2NvcGVkVHJlZSh0cmVlLCBwYXRoKTsKICAgICAgICByZXR1cm4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgc2NvcGVkLCBjb250ZXh0KS5waXBlKCgwLCByeGpzXzEubWFwKSgocmVzdWx0KSA9PiB7CiAgICAgICAgICBpZiAocmVzdWx0ID09PSBzY29wZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuU2NoZW1hdGljc0V4Y2VwdGlvbignT3JpZ2luYWwgdHJlZSBtdXN0IGJlIHJldHVybmVkIGZyb20gYWxsIHJ1bGVzIHdoZW4gdXNpbmcgImFwcGx5VG9TdWJ0cmVlIi4nKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLmpzCnZhciByZXF1aXJlX21vdmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL21vdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1vdmUgPSBtb3ZlMzsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGJhc2VfMSA9IHJlcXVpcmVfYmFzZTIoKTsKICAgIGZ1bmN0aW9uIG1vdmUzKGZyb20sIHRvKSB7CiAgICAgIGlmICh0byA9PT0gdm9pZCAwKSB7CiAgICAgICAgdG8gPSBmcm9tOwogICAgICAgIGZyb20gPSAiLyI7CiAgICAgIH0KICAgICAgY29uc3QgZnJvbVBhdGggPSAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoIi8iICsgZnJvbSk7CiAgICAgIGNvbnN0IHRvUGF0aCA9ICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyB0byk7CiAgICAgIGlmIChmcm9tUGF0aCA9PT0gdG9QYXRoKSB7CiAgICAgICAgcmV0dXJuIGJhc2VfMS5ub29wOwogICAgICB9CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIGlmICh0cmVlLmV4aXN0cyhmcm9tUGF0aCkpIHsKICAgICAgICAgIHRyZWUucmVuYW1lKGZyb21QYXRoLCB0b1BhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0cmVlLmdldERpcihmcm9tUGF0aCkudmlzaXQoKHBhdGgpID0+IHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgKDAsIGNvcmVfMS5qb2luKSh0b1BhdGgsIHBhdGguc2xpY2UoZnJvbVBhdGgubGVuZ3RoKSkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzCnZhciByZXF1aXJlX3JhbmRvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmYXVsdF8xOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlU3RyaW5nT2ZMZW5ndGgobCkgewogICAgICByZXR1cm4gbmV3IEFycmF5KGwpLmZpbGwoMCkubWFwKChfeCkgPT4gewogICAgICAgIHJldHVybiAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI2KV07CiAgICAgIH0pLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gcmFuZG9tKGZyb20sIHRvKSB7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAodG8gLSBmcm9tKSkgKyBmcm9tOwogICAgfQogICAgZnVuY3Rpb24gZGVmYXVsdF8xKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCByb290ID0gInJvb3QiIGluIG9wdGlvbnMgPyBvcHRpb25zLnJvb3QgOiAiLyI7CiAgICAgICAgY29uc3QgbWFwMiA9IG5ldyBob3N0X3RyZWVfMS5Ib3N0VHJlZSgpOwogICAgICAgIGNvbnN0IG5iRmlsZXMgPSAibXVsdGlGaWxlcyIgaW4gb3B0aW9ucyA/IHR5cGVvZiBvcHRpb25zLm11bHRpRmlsZXMgPT0gIm51bWJlciIgPyBvcHRpb25zLm11bHRpRmlsZXMgOiByYW5kb20oMiwgMTIpIDogMTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5iRmlsZXM7IGkrKykgewogICAgICAgICAgY29uc3QgcGF0aCA9ICJhL2IvYy9kL2UvZiIuc2xpY2UoTWF0aC5yYW5kb20oKSAqIDEwKTsKICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgyMCk7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgxMDApOwogICAgICAgICAgbWFwMi5jcmVhdGUocm9vdCArICIvIiArIHBhdGggKyAiLyIgKyBmaWxlTmFtZSwgY29udGVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvc2NoZW1hdGljLmpzCnZhciByZXF1aXJlX3NjaGVtYXRpYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZXJuYWxTY2hlbWF0aWMgPSBleHRlcm5hbFNjaGVtYXRpYzsKICAgIGV4cG9ydHMyLnNjaGVtYXRpYyA9IHNjaGVtYXRpYzsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgZnVuY3Rpb24gZXh0ZXJuYWxTY2hlbWF0aWMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIG9wdGlvbnMsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgcmV0dXJuIChpbnB1dCwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb250ZXh0LmVuZ2luZS5jcmVhdGVDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lLCBjb250ZXh0LnNjaGVtYXRpYy5jb2xsZWN0aW9uKTsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lLCBvcHRpb25zLCBleGVjdXRpb25PcHRpb25zKSB7CiAgICAgIHJldHVybiAoaW5wdXQsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5zY2hlbWF0aWMuY29sbGVjdGlvbjsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzCnZhciByZXF1aXJlX3RlbXBsYXRlMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkludmFsaWRQaXBlRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93blBpcGVFeGNlcHRpb24gPSBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBleHBvcnRzMi5URU1QTEFURV9GSUxFTkFNRV9SRSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmFwcGx5Q29udGVudFRlbXBsYXRlID0gYXBwbHlDb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5jb250ZW50VGVtcGxhdGUgPSBjb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5hcHBseVBhdGhUZW1wbGF0ZSA9IGFwcGx5UGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucGF0aFRlbXBsYXRlID0gcGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucmVuYW1lVGVtcGxhdGVGaWxlcyA9IHJlbmFtZVRlbXBsYXRlRmlsZXM7CiAgICBleHBvcnRzMi50ZW1wbGF0ZSA9IHRlbXBsYXRlMzsKICAgIGV4cG9ydHMyLmFwcGx5VGVtcGxhdGVzID0gYXBwbHlUZW1wbGF0ZXM7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBub2RlX29zXzEgPSByZXF1aXJlKCJub2RlOm9zIik7CiAgICB2YXIgYmFzZV8xID0gcmVxdWlyZV9iYXNlMigpOwogICAgZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUgPSAvXC50ZW1wbGF0ZSQvOwogICAgdmFyIE9wdGlvbklzTm90RGVmaW5lZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYE9wdGlvbiAiJHtuYW1lfSIgaXMgbm90IGRlZmluZWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb247CiAgICB2YXIgVW5rbm93blBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBub3QgZGVmaW5lZC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25QaXBlRXhjZXB0aW9uID0gVW5rbm93blBpcGVFeGNlcHRpb247CiAgICB2YXIgSW52YWxpZFBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBpbnZhbGlkLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFBpcGVFeGNlcHRpb24gPSBJbnZhbGlkUGlwZUV4Y2VwdGlvbjsKICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsIHsgZmF0YWw6IHRydWUgfSk7CiAgICBmdW5jdGlvbiBhcHBseUNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGVudHJ5OwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBkZWNvZGVkQ29udGVudCA9IGRlY29kZXIuZGVjb2RlKGNvbnRlbnQpLnJlcGxhY2UoL1xyP1xuL2csIG5vZGVfb3NfMS5FT0wpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20oKDAsIGNvcmVfMS50ZW1wbGF0ZSkoZGVjb2RlZENvbnRlbnQsIHt9KShvcHRpb25zKSkKICAgICAgICAgIH07CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgfHwgZS5jb2RlID09PSAiRVJSX0VOQ09ESU5HX0lOVkFMSURfRU5DT0RFRF9EQVRBIikgewogICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmZvckVhY2gpKGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFwcGx5UGF0aFRlbXBsYXRlKGRhdGEsIG9wdGlvbnMgPSB7CiAgICAgIGludGVycG9sYXRpb25TdGFydDogIl9fIiwKICAgICAgaW50ZXJwb2xhdGlvbkVuZDogIl9fIiwKICAgICAgcGlwZVNlcGFyYXRvcjogIkAiCiAgICB9KSB7CiAgICAgIGNvbnN0IGlzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uU3RhcnQ7CiAgICAgIGNvbnN0IGllID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uRW5kOwogICAgICBjb25zdCBpc0wgPSBpcy5sZW5ndGg7CiAgICAgIGNvbnN0IGllTCA9IGllLmxlbmd0aDsKICAgICAgcmV0dXJuIChlbnRyeSkgPT4gewogICAgICAgIGxldCBwYXRoID0gZW50cnkucGF0aDsKICAgICAgICBjb25zdCBjb250ZW50ID0gZW50cnkuY29udGVudDsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHBhdGg7CiAgICAgICAgbGV0IHN0YXJ0ID0gcGF0aC5pbmRleE9mKGlzKTsKICAgICAgICBsZXQgZW5kID0gcGF0aC5pbmRleE9mKGllLCBzdGFydCArIGlzTCArIDEpOwogICAgICAgIHdoaWxlIChzdGFydCAhPSAtMSAmJiBlbmQgIT0gLTEpIHsKICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aC5zdWJzdHJpbmcoc3RhcnQgKyBpc0wsIGVuZCk7CiAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSBkYXRhW21hdGNoXTsKICAgICAgICAgIGlmICghb3B0aW9ucy5waXBlU2VwYXJhdG9yKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQuY2FsbChkYXRhLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uKG1hdGNoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgW25hbWUsIC4uLnBpcGVzXSA9IG1hdGNoLnNwbGl0KG9wdGlvbnMucGlwZVNlcGFyYXRvcik7CiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZGF0YVtuYW1lXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlbWVudCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudC5jYWxsKGRhdGEsIG9yaWdpbmFsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBwaXBlcy5yZWR1Y2UoKGFjYywgcGlwZSkgPT4gewogICAgICAgICAgICAgIGlmICghcGlwZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFjYzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEocGlwZSBpbiBkYXRhKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBwaXBlRm4gPSBkYXRhW3BpcGVdOwogICAgICAgICAgICAgIGlmICh0eXBlb2YgcGlwZUZuICE9ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGlwZUV4Y2VwdGlvbihwaXBlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICIiICsgcGlwZUZuKGFjYyk7CiAgICAgICAgICAgIH0sICIiICsgcmVwbGFjZW1lbnQpOwogICAgICAgICAgfQogICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHJlcGxhY2VtZW50ICsgcGF0aC5zdWJzdHJpbmcoZW5kICsgaWVMKTsKICAgICAgICAgIHN0YXJ0ID0gcGF0aC5pbmRleE9mKG9wdGlvbnMuaW50ZXJwb2xhdGlvblN0YXJ0KTsKICAgICAgICAgIGVuZCA9IHBhdGguaW5kZXhPZihvcHRpb25zLmludGVycG9sYXRpb25FbmQsIHN0YXJ0ICsgaXNMICsgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHBhdGg6ICgwLCBjb3JlXzEubm9ybWFsaXplKShwYXRoKSwgY29udGVudCB9OwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gcGF0aFRlbXBsYXRlKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoYXBwbHlQYXRoVGVtcGxhdGUob3B0aW9ucykpOwogICAgfQogICAgZnVuY3Rpb24gcmVuYW1lVGVtcGxhdGVGaWxlcygpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKGVudHJ5LnBhdGgubWF0Y2goZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUpKSB7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBjb250ZW50OiBlbnRyeS5jb250ZW50LAogICAgICAgICAgICBwYXRoOiAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikpCiAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlMyhvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmNoYWluKShbCiAgICAgICAgY29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIEZvcmNlIGNhc3QgdG8gUGF0aFRlbXBsYXRlRGF0YS4gV2UgbmVlZCB0aGUgdHlwZSBmb3IgdGhlIGFjdHVhbCBwYXRoVGVtcGxhdGUoKSBjYWxsLAogICAgICAgIC8vIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgY2Fubm90IGRvIGFueXRoaW5nIGFzIGNvbnRlbnRUZW1wbGF0ZSBhcmUgbW9yZSBwZXJtaXNzaXZlLgogICAgICAgIC8vIFNpbmNlIHZhbHVlcyBhcmUgY29lcmNlZCB0byBzdHJpbmdzIGluIFBhdGhUZW1wbGF0ZXMgaXQgd2lsbCBiZSBmaW5lIGluIHRoZSBlbmQuCiAgICAgICAgcGF0aFRlbXBsYXRlKG9wdGlvbnMpCiAgICAgIF0pOwogICAgfQogICAgZnVuY3Rpb24gYXBwbHlUZW1wbGF0ZXMob3B0aW9ucykgewogICAgICByZXR1cm4gKDAsIGJhc2VfMS5mb3JFYWNoKSgoMCwgYmFzZV8xLndoZW4pKChwYXRoKSA9PiBwYXRoLmVuZHNXaXRoKCIudGVtcGxhdGUiKSwgKDAsIGJhc2VfMS5jb21wb3NlRmlsZU9wZXJhdG9ycykoWwogICAgICAgIGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIFNlZSBhYm92ZSBmb3IgdGhpcyB3ZWlyZCBjYXN0LgogICAgICAgIGFwcGx5UGF0aFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIChlbnRyeSkgPT4gewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29udGVudDogZW50cnkuY29udGVudCwKICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICBdKSkpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzCnZhciByZXF1aXJlX3VybCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi51cmwgPSB1cmwzOwogICAgdmFyIHVybF8xID0gcmVxdWlyZSgidXJsIik7CiAgICBmdW5jdGlvbiB1cmwzKHVybFN0cmluZykgewogICAgICBjb25zdCB1cmw0ID0gKDAsIHVybF8xLnBhcnNlKSh1cmxTdHJpbmcpOwogICAgICByZXR1cm4gKGNvbnRleHQpID0+IGNvbnRleHQuZW5naW5lLmNyZWF0ZVNvdXJjZUZyb21VcmwodXJsNCwgY29udGV4dCkoY29udGV4dCk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuRW1wdHlUcmVlID0gdm9pZCAwOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIHZhciBFbXB0eVRyZWUgPSBjbGFzcyBleHRlbmRzIGhvc3RfdHJlZV8xLkhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkVtcHR5VHJlZSA9IEVtcHR5VHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UcmVlID0gZXhwb3J0czIud29ya2Zsb3cgPSBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIuZm9ybWF0cyA9IGV4cG9ydHMyLlNjaGVtYXRpY3NFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ3MiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb3JlXzEuc3RyaW5nczsKICAgIH0gfSk7CiAgICB2YXIgZm9ybWF0cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2Zvcm1hdHMyKCkpOwogICAgZXhwb3J0czIuZm9ybWF0cyA9IGZvcm1hdHM7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgd29ya2Zsb3cgPSBfX2ltcG9ydFN0YXIocmVxdWlyZV93b3JrZmxvdygpKTsKICAgIGV4cG9ydHMyLndvcmtmbG93ID0gd29ya2Zsb3c7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjaGVtYXRpY3NFeGNlcHRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGNlcHRpb25fMS5TY2hlbWF0aWNzRXhjZXB0aW9uOwogICAgfSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2FjdGlvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbmdpbmUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2V4Y2VwdGlvbjIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlMygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9iYXNlMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jYWxsKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX21vdmUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmFuZG9tKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYzIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3VybCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kZWxlZ2F0ZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbXB0eTMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdF90cmVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kcnlydW4oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2luaygpLCBleHBvcnRzMik7CiAgICBleHBvcnRzMi5UcmVlID0gewogICAgICBlbXB0eSgpIHsKICAgICAgICByZXR1cm4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgICB9LAogICAgICBicmFuY2godHJlZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEuYnJhbmNoKSh0cmVlKTsKICAgICAgfSwKICAgICAgbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgICAgcmV0dXJuICgwLCBzdGF0aWNfMS5tZXJnZSkodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTsKICAgICAgfSwKICAgICAgcGFydGl0aW9uKHRyZWUsIHByZWRpY2F0ZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEucGFydGl0aW9uKSh0cmVlLCBwcmVkaWNhdGUpOwogICAgICB9LAogICAgICBvcHRpbWl6ZSh0cmVlKSB7CiAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3N0cmlwLWpzb24tY29tbWVudHMtbnBtLTMuMS4xLWRjYjIzMjQ4MjMtMTAuemlwL25vZGVfbW9kdWxlcy9zdHJpcC1qc29uLWNvbW1lbnRzL2luZGV4LmpzCnZhciByZXF1aXJlX3N0cmlwX2pzb25fY29tbWVudHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc3RyaXAtanNvbi1jb21tZW50cy1ucG0tMy4xLjEtZGNiMjMyNDgyMy0xMC56aXAvbm9kZV9tb2R1bGVzL3N0cmlwLWpzb24tY29tbWVudHMvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2luZ2xlQ29tbWVudCA9IFN5bWJvbCgic2luZ2xlQ29tbWVudCIpOwogICAgdmFyIG11bHRpQ29tbWVudCA9IFN5bWJvbCgibXVsdGlDb21tZW50Iik7CiAgICB2YXIgc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA9ICgpID0+ICIiOwogICAgdmFyIHN0cmlwV2l0aFdoaXRlc3BhY2UgPSAoc3RyaW5nLCBzdGFydCwgZW5kKSA9PiBzdHJpbmcuc2xpY2Uoc3RhcnQsIGVuZCkucmVwbGFjZSgvXFMvZywgIiAiKTsKICAgIHZhciBpc0VzY2FwZWQgPSAoanNvblN0cmluZywgcXVvdGVQb3NpdGlvbikgPT4gewogICAgICBsZXQgaW5kZXggPSBxdW90ZVBvc2l0aW9uIC0gMTsKICAgICAgbGV0IGJhY2tzbGFzaENvdW50ID0gMDsKICAgICAgd2hpbGUgKGpzb25TdHJpbmdbaW5kZXhdID09PSAiXFwiKSB7CiAgICAgICAgaW5kZXggLT0gMTsKICAgICAgICBiYWNrc2xhc2hDb3VudCArPSAxOwogICAgICB9CiAgICAgIHJldHVybiBCb29sZWFuKGJhY2tzbGFzaENvdW50ICUgMik7CiAgICB9OwogICAgbW9kdWxlMi5leHBvcnRzID0gKGpzb25TdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGpzb25TdHJpbmcgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYXJndW1lbnQgXGBqc29uU3RyaW5nXGAgdG8gYmUgYSBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiBqc29uU3RyaW5nfVxgYCk7CiAgICAgIH0KICAgICAgY29uc3Qgc3RyaXAgPSBvcHRpb25zLndoaXRlc3BhY2UgPT09IGZhbHNlID8gc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA6IHN0cmlwV2l0aFdoaXRlc3BhY2U7CiAgICAgIGxldCBpbnNpZGVTdHJpbmcgPSBmYWxzZTsKICAgICAgbGV0IGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uU3RyaW5nLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3VycmVudENoYXJhY3RlciA9IGpzb25TdHJpbmdbaV07CiAgICAgICAgY29uc3QgbmV4dENoYXJhY3RlciA9IGpzb25TdHJpbmdbaSArIDFdOwogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyID09PSAnIicpIHsKICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSBpc0VzY2FwZWQoanNvblN0cmluZywgaSk7CiAgICAgICAgICBpZiAoIWVzY2FwZWQpIHsKICAgICAgICAgICAgaW5zaWRlU3RyaW5nID0gIWluc2lkZVN0cmluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGluc2lkZVN0cmluZykgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIi8vIikgewogICAgICAgICAgcmVzdWx0ICs9IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0LCBpKTsKICAgICAgICAgIG9mZnNldCA9IGk7CiAgICAgICAgICBpbnNpZGVDb21tZW50ID0gc2luZ2xlQ29tbWVudDsKICAgICAgICAgIGkrKzsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IHNpbmdsZUNvbW1lbnQgJiYgY3VycmVudENoYXJhY3RlciArIG5leHRDaGFyYWN0ZXIgPT09ICJcclxuIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSk7CiAgICAgICAgICBvZmZzZXQgPSBpOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBlbHNlIGlmIChpbnNpZGVDb21tZW50ID09PSBzaW5nbGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgPT09ICJcbiIpIHsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgICAgIHJlc3VsdCArPSBzdHJpcChqc29uU3RyaW5nLCBvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICB9IGVsc2UgaWYgKCFpbnNpZGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgKyBuZXh0Q2hhcmFjdGVyID09PSAiLyoiKSB7CiAgICAgICAgICByZXN1bHQgKz0ganNvblN0cmluZy5zbGljZShvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBtdWx0aUNvbW1lbnQ7CiAgICAgICAgICBpKys7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IG11bHRpQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIiovIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSArIDEpOwogICAgICAgICAgb2Zmc2V0ID0gaSArIDE7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdCArIChpbnNpZGVDb21tZW50ID8gc3RyaXAoanNvblN0cmluZy5zbGljZShvZmZzZXQpKSA6IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0KSk7CiAgICB9OwogIH0KfSk7CgovLyBzcmMvc2NoZW1hdGljL2luZGV4LnRzCnZhciBpbmRleF9leHBvcnRzID0ge307Cl9fZXhwb3J0KGluZGV4X2V4cG9ydHMsIHsKICBtYWluOiAoKSA9PiBtYWluCn0pOwptb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTsKCi8vIHNyYy9zY2hlbWF0aWMvcHJvamVjdC9wcm9qZWN0LmZhY3RvcnkudHMKdmFyIGltcG9ydF9zY2hlbWF0aWNzOSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9qc29uLnV0aWxzLnRzCnZhciBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cyA9IF9fdG9FU00ocmVxdWlyZV9zdHJpcF9qc29uX2NvbW1lbnRzKCksIDEpOwp2YXIgc2VyaWFsaXplSnNvbiA9IChqc29uMikgPT4gYCR7SlNPTi5zdHJpbmdpZnkoanNvbjIsIG51bGwsIDIpfQpgOwp2YXIgcmVhZEpzb25JblRyZWUgPSAoaG9zdCwgcGF0aCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtwYXRofWApOwogIH0KICBjb25zdCBjb250ZW50cyA9ICgwLCBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cy5kZWZhdWx0KShob3N0LnJlYWQocGF0aCk/LnRvU3RyaW5nKCJ1dGYtOCIpIHx8ICIiKTsKICB0cnkgewogICAgcmV0dXJuIEpTT04ucGFyc2UoY29udGVudHMpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGNvbnN0IGVycm9yID0gZTsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlICR7cGF0aH06ICR7ZXJyb3IubWVzc2FnZX1gKTsKICB9Cn07CnZhciB1cGRhdGVKc29uSW5UcmVlID0gKHBhdGgsIGNhbGxiYWNrKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIGhvc3QuY3JlYXRlKHBhdGgsIHNlcmlhbGl6ZUpzb24oY2FsbGJhY2soe30sIGNvbnRleHQpKSk7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgaG9zdC5vdmVyd3JpdGUoCiAgICBwYXRoLAogICAgc2VyaWFsaXplSnNvbihjYWxsYmFjayhyZWFkSnNvbkluVHJlZShob3N0LCBwYXRoKSwgY29udGV4dCkpCiAgKTsKICByZXR1cm4gaG9zdDsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvdXRpbHMvdHNjb25maWcudXRpbHMudHMKdmFyIHVwZGF0ZVRzQ29uZmlnSW5UcmVlID0gKGNvbXBpbGVyT3B0aW9ucykgPT4gdXBkYXRlSnNvbkluVHJlZSgidHNjb25maWcuanNvbiIsICh0c2NvbmZpZykgPT4gKHsKICAuLi50c2NvbmZpZywKICBjb21waWxlck9wdGlvbnMKfSkpOwoKLy8gc3JjL3NjaGVtYXRpYy9ydWxlcy91cGRhdGUtdHMtY29uZmlnLnJ1bGUudHMKdmFyIHVwZGF0ZVRzQ29uZmlnUnVsZSA9IGFzeW5jICgpID0+IHsKICBjb25zdCB7IHRzQ29uZmlnIH0gPSBhd2FpdCBpbXBvcnQoIkBhdGxzL2NvZGUtcnVudGltZSIpOwogIHJldHVybiB1cGRhdGVUc0NvbmZpZ0luVHJlZSh7CiAgICAuLi50c0NvbmZpZy5jb21waWxlck9wdGlvbnMKICB9KTsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvc291cmNlcy9nZW5lcmF0ZS1jb21tb24uc291cmNlLnRzCnZhciBpbXBvcnRfY29yZSA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljcyA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MyID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczMgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgZ2VuZXJhdGVDb21tb25Tb3VyY2UgPSAob3B0aW9ucykgPT4gKDAsIGltcG9ydF9zY2hlbWF0aWNzLmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M0LnVybCkoIi4uL3RlbXBsYXRlcy9jb21tb24iKSwgWwogICgwLCBpbXBvcnRfc2NoZW1hdGljczIudGVtcGxhdGUpKHsKICAgIC4uLmltcG9ydF9jb3JlLnN0cmluZ3MsCiAgICAuLi5vcHRpb25zLAogICAgZG90OiAiLiIKICB9KSwKICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MzLm1vdmUpKCIuLyIpCl0pOwoKLy8gc3JjL3NjaGVtYXRpYy9zb3VyY2VzL2dlbmVyYXRlLXByb2plY3Qtc3BlY2lmaWMuc291cmNlLnRzCnZhciBpbXBvcnRfbm9kZV9mcyA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKdmFyIGltcG9ydF9ub2RlX3BhdGggPSByZXF1aXJlKCJub2RlOnBhdGgiKTsKdmFyIGltcG9ydF9jb3JlMiA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczUgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNiA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3M3ID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczggPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGdlbmVyYXRlUHJvamVjdFNwZWNpZmljU291cmNlID0gKG9wdGlvbnMpID0+IHsKICBjb25zdCB7IG5hbWU6IHByb2plY3ROYW1lIH0gPSBKU09OLnBhcnNlKAogICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG4vbm8tc3luYwogICAgKDAsIGltcG9ydF9ub2RlX2ZzLnJlYWRGaWxlU3luYykoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikob3B0aW9ucy5jd2QsICJwYWNrYWdlLmpzb24iKSwgInV0Zi04IikKICApOwogIHJldHVybiAoMCwgaW1wb3J0X3NjaGVtYXRpY3M1LmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M2LnVybCkoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikoIi4uL3RlbXBsYXRlcyIsIG9wdGlvbnMudHlwZSkpLCBbCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3M3LnRlbXBsYXRlKSh7CiAgICAgIC4uLmltcG9ydF9jb3JlMi5zdHJpbmdzLAogICAgICAuLi5vcHRpb25zLAogICAgICBwcm9qZWN0TmFtZSwKICAgICAgZG90OiAiLiIKICAgIH0pLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzOC5tb3ZlKSgiLi8iKQogIF0pOwp9OwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9tZXJnZS1naXRpZ25vcmUtY29udGVudC51dGlscy50cwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19TVEFSVF9NQVJLRVIgPSAiIyByYWlqaW46YmVnaW4gcHJvamVjdC1zcGVjaWZpYyBnaXRpZ25vcmUiOwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19FTkRfTUFSS0VSID0gIiMgcmFpamluOmVuZCBwcm9qZWN0LXNwZWNpZmljIGdpdGlnbm9yZSI7CnZhciBub3JtYWxpemVDb250ZW50ID0gKGNvbnRlbnQpID0+IGNvbnRlbnQucmVwbGFjZSgvXHJcbi9nLCAiXG4iKTsKdmFyIGdldE5vcm1hbGl6ZWRMaW5lcyA9IChjb250ZW50KSA9PiBub3JtYWxpemVDb250ZW50KGNvbnRlbnQpLnNwbGl0KCJcbiIpOwp2YXIgdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyA9IChsaW5lcykgPT4gewogIGNvbnN0IG5vcm1hbGl6ZWRMaW5lcyA9IFsuLi5saW5lc107CiAgd2hpbGUgKG5vcm1hbGl6ZWRMaW5lcy5sZW5ndGggPiAwICYmIG5vcm1hbGl6ZWRMaW5lc1tub3JtYWxpemVkTGluZXMubGVuZ3RoIC0gMV0gPT09ICIiKSB7CiAgICBub3JtYWxpemVkTGluZXMucG9wKCk7CiAgfQogIHJldHVybiBub3JtYWxpemVkTGluZXM7Cn07CnZhciBpc1Byb2plY3RTcGVjaWZpY0xpbmUgPSAobGluZSwgdGVtcGxhdGVMaW5lU2V0KSA9PiBsaW5lICE9PSAiIiAmJiAhdGVtcGxhdGVMaW5lU2V0LmhhcyhsaW5lKSAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX1NUQVJUX01BUktFUiAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVI7CnZhciBnZXRQcm9qZWN0U3BlY2lmaWNMaW5lcyA9IChleGlzdGluZ0xpbmVzLCB0ZW1wbGF0ZUxpbmVTZXQpID0+IHsKICBjb25zdCBzdGFydEluZGV4ID0gZXhpc3RpbmdMaW5lcy5pbmRleE9mKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBjb25zdCBlbmRJbmRleCA9IGV4aXN0aW5nTGluZXMuaW5kZXhPZihQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVIpOwogIGlmIChzdGFydEluZGV4ICE9PSAtMSAmJiBlbmRJbmRleCA+IHN0YXJ0SW5kZXgpIHsKICAgIHJldHVybiBBcnJheS5mcm9tKAogICAgICBuZXcgU2V0KGV4aXN0aW5nTGluZXMuZmlsdGVyKChsaW5lKSA9PiBpc1Byb2plY3RTcGVjaWZpY0xpbmUobGluZSwgdGVtcGxhdGVMaW5lU2V0KSkpCiAgICApOwogIH0KICByZXR1cm4gZXhpc3RpbmdMaW5lcy5maWx0ZXIoKGxpbmUpID0+IGlzUHJvamVjdFNwZWNpZmljTGluZShsaW5lLCB0ZW1wbGF0ZUxpbmVTZXQpKTsKfTsKdmFyIG1lcmdlR2l0SWdub3JlQ29udGVudCA9ICh7CiAgZXhpc3RpbmdDb250ZW50LAogIHRlbXBsYXRlQ29udGVudAp9KSA9PiB7CiAgY29uc3QgdGVtcGxhdGVMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyh0ZW1wbGF0ZUNvbnRlbnQpOwogIGNvbnN0IHRlbXBsYXRlTGluZVNldCA9IG5ldyBTZXQodGVtcGxhdGVMaW5lcyk7CiAgY29uc3QgZXhpc3RpbmdMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyhleGlzdGluZ0NvbnRlbnQpOwogIGNvbnN0IHByb2plY3RTcGVjaWZpY0xpbmVzID0gZ2V0UHJvamVjdFNwZWNpZmljTGluZXMoZXhpc3RpbmdMaW5lcywgdGVtcGxhdGVMaW5lU2V0KTsKICBpZiAocHJvamVjdFNwZWNpZmljTGluZXMubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyh0ZW1wbGF0ZUxpbmVzKS5qb2luKCJcbiIpOwogIH0KICBjb25zdCBtZXJnZWRMaW5lcyA9IHRyaW1UcmFpbGluZ0VtcHR5TGluZXModGVtcGxhdGVMaW5lcyk7CiAgaWYgKG1lcmdlZExpbmVzLmxlbmd0aCA+IDApIHsKICAgIG1lcmdlZExpbmVzLnB1c2goIiIpOwogIH0KICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBtZXJnZWRMaW5lcy5wdXNoKC4uLnByb2plY3RTcGVjaWZpY0xpbmVzKTsKICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfRU5EX01BUktFUik7CiAgcmV0dXJuIG1lcmdlZExpbmVzLmpvaW4oIlxuIik7Cn07CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qcy15YW1sLW5wbS00LjEuMC0zNjA2ZjMyMzEyLTEwLnppcC9ub2RlX21vZHVsZXMvanMteWFtbC9kaXN0L2pzLXlhbWwubWpzCmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7CiAgcmV0dXJuIHR5cGVvZiBzdWJqZWN0ID09PSAidW5kZWZpbmVkIiB8fCBzdWJqZWN0ID09PSBudWxsOwp9CmZ1bmN0aW9uIGlzT2JqZWN0KHN1YmplY3QpIHsKICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09ICJvYmplY3QiICYmIHN1YmplY3QgIT09IG51bGw7Cn0KZnVuY3Rpb24gdG9BcnJheShzZXF1ZW5jZSkgewogIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSkgcmV0dXJuIHNlcXVlbmNlOwogIGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHJldHVybiBbXTsKICByZXR1cm4gW3NlcXVlbmNlXTsKfQpmdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzOwogIGlmIChzb3VyY2UpIHsKICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKICAgIH0KICB9CiAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkgewogIHZhciByZXN1bHQgPSAiIiwgY3ljbGU7CiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHsKICAgIHJlc3VsdCArPSBzdHJpbmc7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7CiAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7Cn0KdmFyIGlzTm90aGluZ18xID0gaXNOb3RoaW5nOwp2YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0Owp2YXIgdG9BcnJheV8xID0gdG9BcnJheTsKdmFyIHJlcGVhdF8xID0gcmVwZWF0Owp2YXIgaXNOZWdhdGl2ZVplcm9fMSA9IGlzTmVnYXRpdmVaZXJvOwp2YXIgZXh0ZW5kXzEgPSBleHRlbmQ7CnZhciBjb21tb24gPSB7CiAgaXNOb3RoaW5nOiBpc05vdGhpbmdfMSwKICBpc09iamVjdDogaXNPYmplY3RfMSwKICB0b0FycmF5OiB0b0FycmF5XzEsCiAgcmVwZWF0OiByZXBlYXRfMSwKICBpc05lZ2F0aXZlWmVybzogaXNOZWdhdGl2ZVplcm9fMSwKICBleHRlbmQ6IGV4dGVuZF8xCn07CmZ1bmN0aW9uIGZvcm1hdEVycm9yKGV4Y2VwdGlvbjIsIGNvbXBhY3QpIHsKICB2YXIgd2hlcmUgPSAiIiwgbWVzc2FnZSA9IGV4Y2VwdGlvbjIucmVhc29uIHx8ICIodW5rbm93biByZWFzb24pIjsKICBpZiAoIWV4Y2VwdGlvbjIubWFyaykgcmV0dXJuIG1lc3NhZ2U7CiAgaWYgKGV4Y2VwdGlvbjIubWFyay5uYW1lKSB7CiAgICB3aGVyZSArPSAnaW4gIicgKyBleGNlcHRpb24yLm1hcmsubmFtZSArICciICc7CiAgfQogIHdoZXJlICs9ICIoIiArIChleGNlcHRpb24yLm1hcmsubGluZSArIDEpICsgIjoiICsgKGV4Y2VwdGlvbjIubWFyay5jb2x1bW4gKyAxKSArICIpIjsKICBpZiAoIWNvbXBhY3QgJiYgZXhjZXB0aW9uMi5tYXJrLnNuaXBwZXQpIHsKICAgIHdoZXJlICs9ICJcblxuIiArIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0OwogIH0KICByZXR1cm4gbWVzc2FnZSArICIgIiArIHdoZXJlOwp9CmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHsKICBFcnJvci5jYWxsKHRoaXMpOwogIHRoaXMubmFtZSA9ICJZQU1MRXhjZXB0aW9uIjsKICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKICB0aGlzLm1hcmsgPSBtYXJrOwogIHRoaXMubWVzc2FnZSA9IGZvcm1hdEVycm9yKHRoaXMsIGZhbHNlKTsKICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHsKICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpOwogIH0gZWxzZSB7CiAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2sgfHwgIiI7CiAgfQp9CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBZQU1MRXhjZXB0aW9uJDE7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7CiAgcmV0dXJuIHRoaXMubmFtZSArICI6ICIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTsKfTsKdmFyIGV4Y2VwdGlvbiA9IFlBTUxFeGNlcHRpb24kMTsKZnVuY3Rpb24gZ2V0TGluZShidWZmZXIsIGxpbmVTdGFydCwgbGluZUVuZCwgcG9zaXRpb24sIG1heExpbmVMZW5ndGgpIHsKICB2YXIgaGVhZCA9ICIiOwogIHZhciB0YWlsID0gIiI7CiAgdmFyIG1heEhhbGZMZW5ndGggPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGggLyAyKSAtIDE7CiAgaWYgKHBvc2l0aW9uIC0gbGluZVN0YXJ0ID4gbWF4SGFsZkxlbmd0aCkgewogICAgaGVhZCA9ICIgLi4uICI7CiAgICBsaW5lU3RhcnQgPSBwb3NpdGlvbiAtIG1heEhhbGZMZW5ndGggKyBoZWFkLmxlbmd0aDsKICB9CiAgaWYgKGxpbmVFbmQgLSBwb3NpdGlvbiA+IG1heEhhbGZMZW5ndGgpIHsKICAgIHRhaWwgPSAiIC4uLiI7CiAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7CiAgfQogIHJldHVybiB7CiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cdC9nLCAiXHUyMTkyIikgKyB0YWlsLAogICAgcG9zOiBwb3NpdGlvbiAtIGxpbmVTdGFydCArIGhlYWQubGVuZ3RoCiAgICAvLyByZWxhdGl2ZSBwb3NpdGlvbgogIH07Cn0KZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCBtYXgpIHsKICByZXR1cm4gY29tbW9uLnJlcGVhdCgiICIsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nOwp9CmZ1bmN0aW9uIG1ha2VTbmlwcGV0KG1hcmssIG9wdGlvbnMpIHsKICBvcHRpb25zID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpOwogIGlmICghbWFyay5idWZmZXIpIHJldHVybiBudWxsOwogIGlmICghb3B0aW9ucy5tYXhMZW5ndGgpIG9wdGlvbnMubWF4TGVuZ3RoID0gNzk7CiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gIm51bWJlciIpIG9wdGlvbnMuaW5kZW50ID0gMTsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNCZWZvcmUgIT09ICJudW1iZXIiKSBvcHRpb25zLmxpbmVzQmVmb3JlID0gMzsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNBZnRlciAhPT0gIm51bWJlciIpIG9wdGlvbnMubGluZXNBZnRlciA9IDI7CiAgdmFyIHJlID0gL1xyP1xufFxyfFwwL2c7CiAgdmFyIGxpbmVTdGFydHMgPSBbMF07CiAgdmFyIGxpbmVFbmRzID0gW107CiAgdmFyIG1hdGNoOwogIHZhciBmb3VuZExpbmVObyA9IC0xOwogIHdoaWxlIChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSB7CiAgICBsaW5lRW5kcy5wdXNoKG1hdGNoLmluZGV4KTsKICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHsKICAgICAgZm91bmRMaW5lTm8gPSBsaW5lU3RhcnRzLmxlbmd0aCAtIDI7CiAgICB9CiAgfQogIGlmIChmb3VuZExpbmVObyA8IDApIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxOwogIHZhciByZXN1bHQgPSAiIiwgaSwgbGluZTsKICB2YXIgbGluZU5vTGVuZ3RoID0gTWF0aC5taW4obWFyay5saW5lICsgb3B0aW9ucy5saW5lc0FmdGVyLCBsaW5lRW5kcy5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoOwogIHZhciBtYXhMaW5lTGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggLSAob3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzKTsKICBmb3IgKGkgPSAxOyBpIDw9IG9wdGlvbnMubGluZXNCZWZvcmU7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vIC0gaSA8IDApIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ID0gY29tbW9uLnJlcGVhdCgiICIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iICsgcmVzdWx0OwogIH0KICBsaW5lID0gZ2V0TGluZShtYXJrLmJ1ZmZlciwgbGluZVN0YXJ0c1tmb3VuZExpbmVOb10sIGxpbmVFbmRzW2ZvdW5kTGluZU5vXSwgbWFyay5wb3NpdGlvbiwgbWF4TGluZUxlbmd0aCk7CiAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iOwogIHJlc3VsdCArPSBjb21tb24ucmVwZWF0KCItIiwgb3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzICsgbGluZS5wb3MpICsgIl5cbiI7CiAgZm9yIChpID0gMTsgaSA8PSBvcHRpb25zLmxpbmVzQWZ0ZXI7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vICsgaSA+PSBsaW5lRW5kcy5sZW5ndGgpIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgaSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyAiIHwgIiArIGxpbmUuc3RyICsgIlxuIjsKICB9CiAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cbiQvLCAiIik7Cn0KdmFyIHNuaXBwZXQgPSBtYWtlU25pcHBldDsKdmFyIFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyA9IFsKICAia2luZCIsCiAgIm11bHRpIiwKICAicmVzb2x2ZSIsCiAgImNvbnN0cnVjdCIsCiAgImluc3RhbmNlT2YiLAogICJwcmVkaWNhdGUiLAogICJyZXByZXNlbnQiLAogICJyZXByZXNlbnROYW1lIiwKICAiZGVmYXVsdFN0eWxlIiwKICAic3R5bGVBbGlhc2VzIgpdOwp2YXIgWUFNTF9OT0RFX0tJTkRTID0gWwogICJzY2FsYXIiLAogICJzZXF1ZW5jZSIsCiAgIm1hcHBpbmciCl07CmZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXMobWFwMikgewogIHZhciByZXN1bHQgPSB7fTsKICBpZiAobWFwMiAhPT0gbnVsbCkgewogICAgT2JqZWN0LmtleXMobWFwMikuZm9yRWFjaChmdW5jdGlvbihzdHlsZSkgewogICAgICBtYXAyW3N0eWxlXS5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7CiAgICAgICAgcmVzdWx0W1N0cmluZyhhbGlhcyldID0gc3R5bGU7CiAgICAgIH0pOwogICAgfSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gVHlwZSQxKHRhZywgb3B0aW9ucykgewogIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewogICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiAiJyArIG5hbWUgKyAnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyArIHRhZyArICciIFlBTUwgdHlwZS4nKTsKICAgIH0KICB9KTsKICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogIHRoaXMudGFnID0gdGFnOwogIHRoaXMua2luZCA9IG9wdGlvbnNbImtpbmQiXSB8fCBudWxsOwogIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbInJlc29sdmUiXSB8fCBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0cnVlOwogIH07CiAgdGhpcy5jb25zdHJ1Y3QgPSBvcHRpb25zWyJjb25zdHJ1Y3QiXSB8fCBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YTsKICB9OwogIHRoaXMuaW5zdGFuY2VPZiA9IG9wdGlvbnNbImluc3RhbmNlT2YiXSB8fCBudWxsOwogIHRoaXMucHJlZGljYXRlID0gb3B0aW9uc1sicHJlZGljYXRlIl0gfHwgbnVsbDsKICB0aGlzLnJlcHJlc2VudCA9IG9wdGlvbnNbInJlcHJlc2VudCJdIHx8IG51bGw7CiAgdGhpcy5yZXByZXNlbnROYW1lID0gb3B0aW9uc1sicmVwcmVzZW50TmFtZSJdIHx8IG51bGw7CiAgdGhpcy5kZWZhdWx0U3R5bGUgPSBvcHRpb25zWyJkZWZhdWx0U3R5bGUiXSB8fCBudWxsOwogIHRoaXMubXVsdGkgPSBvcHRpb25zWyJtdWx0aSJdIHx8IGZhbHNlOwogIHRoaXMuc3R5bGVBbGlhc2VzID0gY29tcGlsZVN0eWxlQWxpYXNlcyhvcHRpb25zWyJzdHlsZUFsaWFzZXMiXSB8fCBudWxsKTsKICBpZiAoWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSA9PT0gLTEpIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1Vua25vd24ga2luZCAiJyArIHRoaXMua2luZCArICciIGlzIHNwZWNpZmllZCBmb3IgIicgKyB0YWcgKyAnIiBZQU1MIHR5cGUuJyk7CiAgfQp9CnZhciB0eXBlID0gVHlwZSQxOwpmdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEyLCBuYW1lKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIHNjaGVtYTJbbmFtZV0uZm9yRWFjaChmdW5jdGlvbihjdXJyZW50VHlwZSkgewogICAgdmFyIG5ld0luZGV4ID0gcmVzdWx0Lmxlbmd0aDsKICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkgewogICAgICBpZiAocHJldmlvdXNUeXBlLnRhZyA9PT0gY3VycmVudFR5cGUudGFnICYmIHByZXZpb3VzVHlwZS5raW5kID09PSBjdXJyZW50VHlwZS5raW5kICYmIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHsKICAgICAgICBuZXdJbmRleCA9IHByZXZpb3VzSW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmVzdWx0W25ld0luZGV4XSA9IGN1cnJlbnRUeXBlOwogIH0pOwogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gY29tcGlsZU1hcCgpIHsKICB2YXIgcmVzdWx0ID0gewogICAgc2NhbGFyOiB7fSwKICAgIHNlcXVlbmNlOiB7fSwKICAgIG1hcHBpbmc6IHt9LAogICAgZmFsbGJhY2s6IHt9LAogICAgbXVsdGk6IHsKICAgICAgc2NhbGFyOiBbXSwKICAgICAgc2VxdWVuY2U6IFtdLAogICAgICBtYXBwaW5nOiBbXSwKICAgICAgZmFsbGJhY2s6IFtdCiAgICB9CiAgfSwgaW5kZXgsIGxlbmd0aDsKICBmdW5jdGlvbiBjb2xsZWN0VHlwZSh0eXBlMikgewogICAgaWYgKHR5cGUyLm11bHRpKSB7CiAgICAgIHJlc3VsdC5tdWx0aVt0eXBlMi5raW5kXS5wdXNoKHR5cGUyKTsKICAgICAgcmVzdWx0Lm11bHRpWyJmYWxsYmFjayJdLnB1c2godHlwZTIpOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0W3R5cGUyLmtpbmRdW3R5cGUyLnRhZ10gPSByZXN1bHRbImZhbGxiYWNrIl1bdHlwZTIudGFnXSA9IHR5cGUyOwogICAgfQogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gU2NoZW1hJDEoZGVmaW5pdGlvbikgewogIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTsKfQpTY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kID0gZnVuY3Rpb24gZXh0ZW5kMihkZWZpbml0aW9uKSB7CiAgdmFyIGltcGxpY2l0ID0gW107CiAgdmFyIGV4cGxpY2l0ID0gW107CiAgaWYgKGRlZmluaXRpb24gaW5zdGFuY2VvZiB0eXBlKSB7CiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pOwogIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkgewogICAgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbik7CiAgfSBlbHNlIGlmIChkZWZpbml0aW9uICYmIChBcnJheS5pc0FycmF5KGRlZmluaXRpb24uaW1wbGljaXQpIHx8IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5leHBsaWNpdCkpKSB7CiAgICBpZiAoZGVmaW5pdGlvbi5pbXBsaWNpdCkgaW1wbGljaXQgPSBpbXBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5pbXBsaWNpdCk7CiAgICBpZiAoZGVmaW5pdGlvbi5leHBsaWNpdCkgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5leHBsaWNpdCk7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sIG9yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSkiKTsKICB9CiAgaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0eXBlJDEpIHsKICAgIGlmICghKHR5cGUkMSBpbnN0YW5jZW9mIHR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubG9hZEtpbmQgJiYgdHlwZSQxLmxvYWRLaW5kICE9PSAic2NhbGFyIikgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubXVsdGkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiVGhlcmUgaXMgYSBtdWx0aSB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBNdWx0aSB0YWdzIGNhbiBvbmx5IGJlIGxpc3RlZCBhcyBleHBsaWNpdC4iKTsKICAgIH0KICB9KTsKICBleHBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUkMSkgewogICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpOwogICAgfQogIH0pOwogIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7CiAgcmVzdWx0LmltcGxpY2l0ID0gKHRoaXMuaW1wbGljaXQgfHwgW10pLmNvbmNhdChpbXBsaWNpdCk7CiAgcmVzdWx0LmV4cGxpY2l0ID0gKHRoaXMuZXhwbGljaXQgfHwgW10pLmNvbmNhdChleHBsaWNpdCk7CiAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsICJpbXBsaWNpdCIpOwogIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCAiZXhwbGljaXQiKTsKICByZXN1bHQuY29tcGlsZWRUeXBlTWFwID0gY29tcGlsZU1hcChyZXN1bHQuY29tcGlsZWRJbXBsaWNpdCwgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQpOwogIHJldHVybiByZXN1bHQ7Cn07CnZhciBzY2hlbWEgPSBTY2hlbWEkMTsKdmFyIHN0ciA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLCB7CiAga2luZDogInNjYWxhciIsCiAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAiIjsKICB9Cn0pOwp2YXIgc2VxID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107CiAgfQp9KTsKdmFyIG1hcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLCB7CiAga2luZDogIm1hcHBpbmciLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDoge307CiAgfQp9KTsKdmFyIGZhaWxzYWZlID0gbmV3IHNjaGVtYSh7CiAgZXhwbGljaXQ6IFsKICAgIHN0ciwKICAgIHNlcSwKICAgIG1hcAogIF0KfSk7CmZ1bmN0aW9uIHJlc29sdmVZYW1sTnVsbChkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlOwogIHZhciBtYXggPSBkYXRhLmxlbmd0aDsKICByZXR1cm4gbWF4ID09PSAxICYmIGRhdGEgPT09ICJ+IiB8fCBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJudWxsIiB8fCBkYXRhID09PSAiTnVsbCIgfHwgZGF0YSA9PT0gIk5VTEwiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBpc051bGwob2JqZWN0KSB7CiAgcmV0dXJuIG9iamVjdCA9PT0gbnVsbDsKfQp2YXIgX251bGwgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE51bGwsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCwKICBwcmVkaWNhdGU6IGlzTnVsbCwKICByZXByZXNlbnQ6IHsKICAgIGNhbm9uaWNhbDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAifiI7CiAgICB9LAogICAgbG93ZXJjYXNlOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICJudWxsIjsKICAgIH0sCiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIk5VTEwiOwogICAgfSwKICAgIGNhbWVsY2FzZTogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAiTnVsbCI7CiAgICB9LAogICAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4oZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoOwogIHJldHVybiBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiKSB8fCBtYXggPT09IDUgJiYgKGRhdGEgPT09ICJmYWxzZSIgfHwgZGF0YSA9PT0gIkZhbHNlIiB8fCBkYXRhID09PSAiRkFMU0UiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7CiAgcmV0dXJuIGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiOwp9CmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICJbb2JqZWN0IEJvb2xlYW5dIjsKfQp2YXIgYm9vbCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQm9vbGVhbiwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLAogIHByZWRpY2F0ZTogaXNCb29sZWFuLAogIHJlcHJlc2VudDogewogICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJ0cnVlIiA6ICJmYWxzZSI7CiAgICB9LAogICAgdXBwZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUUlVFIiA6ICJGQUxTRSI7CiAgICB9LAogICAgY2FtZWxjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUcnVlIiA6ICJGYWxzZSI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiBpc0hleENvZGUoYykgewogIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTcgfHwgNjUgPD0gYyAmJiBjIDw9IDcwIHx8IDk3IDw9IGMgJiYgYyA8PSAxMDI7Cn0KZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHsKICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU1Owp9CmZ1bmN0aW9uIGlzRGVjQ29kZShjKSB7CiAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1NzsKfQpmdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDsKICBpZiAoIW1heCkgcmV0dXJuIGZhbHNlOwogIGNoID0gZGF0YVtpbmRleF07CiAgaWYgKGNoID09PSAiLSIgfHwgY2ggPT09ICIrIikgewogICAgY2ggPSBkYXRhWysraW5kZXhdOwogIH0KICBpZiAoY2ggPT09ICIwIikgewogICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSByZXR1cm4gdHJ1ZTsKICAgIGNoID0gZGF0YVsrK2luZGV4XTsKICAgIGlmIChjaCA9PT0gImIiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmIChjaCAhPT0gIjAiICYmIGNoICE9PSAiMSIpIHJldHVybiBmYWxzZTsKICAgICAgICBoYXNEaWdpdHMgPSB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICJfIjsKICAgIH0KICAgIGlmIChjaCA9PT0gIngiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmICghaXNIZXhDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAiXyI7CiAgICB9CiAgICBpZiAoY2ggPT09ICJvIikgewogICAgICBpbmRleCsrOwogICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHsKICAgICAgICBjaCA9IGRhdGFbaW5kZXhdOwogICAgICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gIl8iOwogICAgfQogIH0KICBpZiAoY2ggPT09ICJfIikgcmV0dXJuIGZhbHNlOwogIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgY2ggPSBkYXRhW2luZGV4XTsKICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgIGlmICghaXNEZWNDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgfQogIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSAiXyIpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7CiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoOwogIGlmICh2YWx1ZS5pbmRleE9mKCJfIikgIT09IC0xKSB7CiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgIiIpOwogIH0KICBjaCA9IHZhbHVlWzBdOwogIGlmIChjaCA9PT0gIi0iIHx8IGNoID09PSAiKyIpIHsKICAgIGlmIChjaCA9PT0gIi0iKSBzaWduID0gLTE7CiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpOwogICAgY2ggPSB2YWx1ZVswXTsKICB9CiAgaWYgKHZhbHVlID09PSAiMCIpIHJldHVybiAwOwogIGlmIChjaCA9PT0gIjAiKSB7CiAgICBpZiAodmFsdWVbMV0gPT09ICJiIikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7CiAgICBpZiAodmFsdWVbMV0gPT09ICJ4IikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpOwogICAgaWYgKHZhbHVlWzFdID09PSAibyIpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpOwogIH0KICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7Cn0KZnVuY3Rpb24gaXNJbnRlZ2VyKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTsKfQp2YXIgaW50ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOmludCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sSW50ZWdlciwKICBwcmVkaWNhdGU6IGlzSW50ZWdlciwKICByZXByZXNlbnQ6IHsKICAgIGJpbmFyeTogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwYiIgKyBvYmoudG9TdHJpbmcoMikgOiAiLTBiIiArIG9iai50b1N0cmluZygyKS5zbGljZSgxKTsKICAgIH0sCiAgICBvY3RhbDogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwbyIgKyBvYmoudG9TdHJpbmcoOCkgOiAiLTBvIiArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTsKICAgIH0sCiAgICBkZWNpbWFsOiBmdW5jdGlvbihvYmopIHsKICAgICAgcmV0dXJuIG9iai50b1N0cmluZygxMCk7CiAgICB9LAogICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqLwogICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uKG9iaikgewogICAgICByZXR1cm4gb2JqID49IDAgPyAiMHgiICsgb2JqLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpIDogIi0weCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJkZWNpbWFsIiwKICBzdHlsZUFsaWFzZXM6IHsKICAgIGJpbmFyeTogWzIsICJiaW4iXSwKICAgIG9jdGFsOiBbOCwgIm9jdCJdLAogICAgZGVjaW1hbDogWzEwLCAiZGVjIl0sCiAgICBoZXhhZGVjaW1hbDogWzE2LCAiaGV4Il0KICB9Cn0pOwp2YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cCgKICAvLyAyLjVlNCwgMi41IGFuZCBpbnRlZ2VycwogICJeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopKD86XFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/fFstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLig/Om5hbnxOYU58TkFOKSkkIgopOwpmdW5jdGlvbiByZXNvbHZlWWFtbEZsb2F0KGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gCiAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZAogIGRhdGFbZGF0YS5sZW5ndGggLSAxXSA9PT0gIl8iKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7CiAgdmFyIHZhbHVlLCBzaWduOwogIHZhbHVlID0gZGF0YS5yZXBsYWNlKC9fL2csICIiKS50b0xvd2VyQ2FzZSgpOwogIHNpZ24gPSB2YWx1ZVswXSA9PT0gIi0iID8gLTEgOiAxOwogIGlmICgiKy0iLmluZGV4T2YodmFsdWVbMF0pID49IDApIHsKICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7CiAgfQogIGlmICh2YWx1ZSA9PT0gIi5pbmYiKSB7CiAgICByZXR1cm4gc2lnbiA9PT0gMSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKICB9IGVsc2UgaWYgKHZhbHVlID09PSAiLm5hbiIpIHsKICAgIHJldHVybiBOYU47CiAgfQogIHJldHVybiBzaWduICogcGFyc2VGbG9hdCh2YWx1ZSwgMTApOwp9CnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvOwpmdW5jdGlvbiByZXByZXNlbnRZYW1sRmxvYXQob2JqZWN0LCBzdHlsZSkgewogIHZhciByZXM7CiAgaWYgKGlzTmFOKG9iamVjdCkpIHsKICAgIHN3aXRjaCAoc3R5bGUpIHsKICAgICAgY2FzZSAibG93ZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5uYW4iOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLk5BTiI7CiAgICAgIGNhc2UgImNhbWVsY2FzZSI6CiAgICAgICAgcmV0dXJuICIuTmFOIjsKICAgIH0KICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7CiAgICBzd2l0Y2ggKHN0eWxlKSB7CiAgICAgIGNhc2UgImxvd2VyY2FzZSI6CiAgICAgICAgcmV0dXJuICIuaW5mIjsKICAgICAgY2FzZSAidXBwZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLkluZiI7CiAgICB9CiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkgewogICAgc3dpdGNoIChzdHlsZSkgewogICAgICBjYXNlICJsb3dlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5pbmYiOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLS5JbmYiOwogICAgfQogIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHsKICAgIHJldHVybiAiLTAuMCI7CiAgfQogIHJlcyA9IG9iamVjdC50b1N0cmluZygxMCk7CiAgcmV0dXJuIFNDSUVOVElGSUNfV0lUSE9VVF9ET1QudGVzdChyZXMpID8gcmVzLnJlcGxhY2UoImUiLCAiLmUiKSA6IHJlczsKfQpmdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpOwp9CnZhciBmbG9hdCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEZsb2F0LAogIHByZWRpY2F0ZTogaXNGbG9hdCwKICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwp2YXIganNvbiA9IGZhaWxzYWZlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIF9udWxsLAogICAgYm9vbCwKICAgIGludCwKICAgIGZsb2F0CiAgXQp9KTsKdmFyIGNvcmUgPSBqc29uOwp2YXIgWUFNTF9EQVRFX1JFR0VYUCA9IG5ldyBSZWdFeHAoCiAgIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIgopOwp2YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cCgKICAiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiCik7CmZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlOwogIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkgewogIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCwgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7CiAgbWF0Y2ggPSBZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSk7CiAgaWYgKG1hdGNoID09PSBudWxsKSBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpOwogIGlmIChtYXRjaCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTsKICB5ZWFyID0gK21hdGNoWzFdOwogIG1vbnRoID0gK21hdGNoWzJdIC0gMTsKICBkYXkgPSArbWF0Y2hbM107CiAgaWYgKCFtYXRjaFs0XSkgewogICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTsKICB9CiAgaG91ciA9ICttYXRjaFs0XTsKICBtaW51dGUgPSArbWF0Y2hbNV07CiAgc2Vjb25kID0gK21hdGNoWzZdOwogIGlmIChtYXRjaFs3XSkgewogICAgZnJhY3Rpb24gPSBtYXRjaFs3XS5zbGljZSgwLCAzKTsKICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7CiAgICAgIGZyYWN0aW9uICs9ICIwIjsKICAgIH0KICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uOwogIH0KICBpZiAobWF0Y2hbOV0pIHsKICAgIHR6X2hvdXIgPSArbWF0Y2hbMTBdOwogICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7CiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNmU0OwogICAgaWYgKG1hdGNoWzldID09PSAiLSIpIGRlbHRhID0gLWRlbHRhOwogIH0KICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7CiAgaWYgKGRlbHRhKSBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7CiAgcmV0dXJuIGRhdGU7Cn0KZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QpIHsKICByZXR1cm4gb2JqZWN0LnRvSVNPU3RyaW5nKCk7Cn0KdmFyIHRpbWVzdGFtcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLCB7CiAga2luZDogInNjYWxhciIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLAogIGluc3RhbmNlT2Y6IERhdGUsCiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHsKICByZXR1cm4gZGF0YSA9PT0gIjw8IiB8fCBkYXRhID09PSBudWxsOwp9CnZhciBtZXJnZSA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlCn0pOwp2YXIgQkFTRTY0X01BUCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxuXHIiOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTsKICB2YXIgY29kZSwgaWR4LCBiaXRsZW4gPSAwLCBtYXggPSBkYXRhLmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBjb2RlID0gbWFwMi5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpOwogICAgaWYgKGNvZGUgPiA2NCkgY29udGludWU7CiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTsKICAgIGJpdGxlbiArPSA2OwogIH0KICByZXR1cm4gYml0bGVuICUgOCA9PT0gMDsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHsKICB2YXIgaWR4LCB0YWlsYml0cywgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcclxuPV0vZywgIiIpLCBtYXggPSBpbnB1dC5sZW5ndGgsIG1hcDIgPSBCQVNFNjRfTUFQLCBiaXRzID0gMCwgcmVzdWx0ID0gW107CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgNCA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0LnB1c2goYml0cyA+PiAxNiAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAyNTUpOwogICAgfQogICAgYml0cyA9IGJpdHMgPDwgNiB8IG1hcDIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7CiAgfQogIHRhaWxiaXRzID0gbWF4ICUgNCAqIDY7CiAgaWYgKHRhaWxiaXRzID09PSAwKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTsKICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTsKICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxOCkgewogICAgcmVzdWx0LnB1c2goYml0cyA+PiAxMCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpOwogIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDEyKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDQgJiAyNTUpOwogIH0KICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzdWx0KTsKfQpmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkgewogIHZhciByZXN1bHQgPSAiIiwgYml0cyA9IDAsIGlkeCwgdGFpbCwgbWF4ID0gb2JqZWN0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgMyA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxOCAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA2ICYgNjNdOwogICAgICByZXN1bHQgKz0gbWFwMltiaXRzICYgNjNdOwogICAgfQogICAgYml0cyA9IChiaXRzIDw8IDgpICsgb2JqZWN0W2lkeF07CiAgfQogIHRhaWwgPSBtYXggJSAzOwogIGlmICh0YWlsID09PSAwKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDE4ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gNiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgJiA2M107CiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDEwICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkgewogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0KICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIGlzQmluYXJ5KG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gIltvYmplY3QgVWludDhBcnJheV0iOwp9CnZhciBiaW5hcnkgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQmluYXJ5LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSwKICBwcmVkaWNhdGU6IGlzQmluYXJ5LAogIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEJpbmFyeQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIF90b1N0cmluZyQyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSwgb2JqZWN0ID0gZGF0YTsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdOwogICAgcGFpckhhc0tleSA9IGZhbHNlOwogICAgaWYgKF90b1N0cmluZyQyLmNhbGwocGFpcikgIT09ICJbb2JqZWN0IE9iamVjdF0iKSByZXR1cm4gZmFsc2U7CiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikgewogICAgICBpZiAoX2hhc093blByb3BlcnR5JDMuY2FsbChwYWlyLCBwYWlyS2V5KSkgewogICAgICAgIGlmICghcGFpckhhc0tleSkgcGFpckhhc0tleSA9IHRydWU7CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghcGFpckhhc0tleSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKG9iamVjdEtleXMuaW5kZXhPZihwYWlyS2V5KSA9PT0gLTEpIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTsKICAgIGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7CiAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107Cn0KdmFyIG9tYXAgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwCn0pOwp2YXIgX3RvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpmdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGlmIChfdG9TdHJpbmckMS5jYWxsKHBhaXIpICE9PSAiW29iamVjdCBPYmplY3RdIikgcmV0dXJuIGZhbHNlOwogICAga2V5cyA9IE9iamVjdC5rZXlzKHBhaXIpOwogICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSByZXR1cm4gZmFsc2U7CiAgICByZXN1bHRbaW5kZXhdID0gW2tleXNbMF0sIHBhaXJba2V5c1swXV1dOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gW107CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTsKICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KdmFyIHBhaXJzID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIiwgewogIGtpbmQ6ICJzZXF1ZW5jZSIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycywKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlycwp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTsKICB2YXIga2V5LCBvYmplY3QgPSBkYXRhOwogIGZvciAoa2V5IGluIG9iamVjdCkgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQyLmNhbGwob2JqZWN0LCBrZXkpKSB7CiAgICAgIGlmIChvYmplY3Rba2V5XSAhPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sU2V0KGRhdGEpIHsKICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsKfQp2YXIgc2V0ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNldCIsIHsKICBraW5kOiAibWFwcGluZyIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sU2V0Cn0pOwp2YXIgX2RlZmF1bHQgPSBjb3JlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIHRpbWVzdGFtcCwKICAgIG1lcmdlCiAgXSwKICBleHBsaWNpdDogWwogICAgYmluYXJ5LAogICAgb21hcCwKICAgIHBhaXJzLAogICAgc2V0CiAgXQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQxID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENPTlRFWFRfRkxPV19JTiA9IDE7CnZhciBDT05URVhUX0ZMT1dfT1VUID0gMjsKdmFyIENPTlRFWFRfQkxPQ0tfSU4gPSAzOwp2YXIgQ09OVEVYVF9CTE9DS19PVVQgPSA0Owp2YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7CnZhciBDSE9NUElOR19TVFJJUCA9IDI7CnZhciBDSE9NUElOR19LRUVQID0gMzsKdmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS87CnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXHg4NVx1MjAyOFx1MjAyOV0vOwp2YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgPSAvWyxcW1xdXHtcfV0vOwp2YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XC1dKyEpJC9pOwp2YXIgUEFUVEVSTl9UQUdfVVJJID0gL14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTsKZnVuY3Rpb24gX2NsYXNzKG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKTsKfQpmdW5jdGlvbiBpc19FT0woYykgewogIHJldHVybiBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19XSElURV9TUEFDRShjKSB7CiAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzI7Cn0KZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHsKICByZXR1cm4gYyA9PT0gOSB8fCBjID09PSAzMiB8fCBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7CiAgcmV0dXJuIGMgPT09IDQ0IHx8IGMgPT09IDkxIHx8IGMgPT09IDkzIHx8IGMgPT09IDEyMyB8fCBjID09PSAxMjU7Cn0KZnVuY3Rpb24gZnJvbUhleENvZGUoYykgewogIHZhciBsYzsKICBpZiAoNDggPD0gYyAmJiBjIDw9IDU3KSB7CiAgICByZXR1cm4gYyAtIDQ4OwogIH0KICBsYyA9IGMgfCAzMjsKICBpZiAoOTcgPD0gbGMgJiYgbGMgPD0gMTAyKSB7CiAgICByZXR1cm4gbGMgLSA5NyArIDEwOwogIH0KICByZXR1cm4gLTE7Cn0KZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7CiAgaWYgKGMgPT09IDEyMCkgewogICAgcmV0dXJuIDI7CiAgfQogIGlmIChjID09PSAxMTcpIHsKICAgIHJldHVybiA0OwogIH0KICBpZiAoYyA9PT0gODUpIHsKICAgIHJldHVybiA4OwogIH0KICByZXR1cm4gMDsKfQpmdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykgewogIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHsKICAgIHJldHVybiBjIC0gNDg7CiAgfQogIHJldHVybiAtMTsKfQpmdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7CiAgcmV0dXJuIGMgPT09IDQ4ID8gIlwwIiA6IGMgPT09IDk3ID8gIlx4MDciIDogYyA9PT0gOTggPyAiXGIiIDogYyA9PT0gMTE2ID8gIgkiIDogYyA9PT0gOSA/ICIJIiA6IGMgPT09IDExMCA/ICJcbiIgOiBjID09PSAxMTggPyAiXHYiIDogYyA9PT0gMTAyID8gIlxmIiA6IGMgPT09IDExNCA/ICJcciIgOiBjID09PSAxMDEgPyAiXHgxQiIgOiBjID09PSAzMiA/ICIgIiA6IGMgPT09IDM0ID8gJyInIDogYyA9PT0gNDcgPyAiLyIgOiBjID09PSA5MiA/ICJcXCIgOiBjID09PSA3OCA/ICJceDg1IiA6IGMgPT09IDk1ID8gIlx4QTAiIDogYyA9PT0gNzYgPyAiXHUyMDI4IiA6IGMgPT09IDgwID8gIlx1MjAyOSIgOiAiIjsKfQpmdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7CiAgaWYgKGMgPD0gNjU1MzUpIHsKICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOwogIH0KICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgKICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsCiAgICAoYyAtIDY1NTM2ICYgMTAyMykgKyA1NjMyMAogICk7Cn0KdmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7CnZhciBzaW1wbGVFc2NhcGVNYXAgPSBuZXcgQXJyYXkoMjU2KTsKZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgc2ltcGxlRXNjYXBlQ2hlY2tbaV0gPSBzaW1wbGVFc2NhcGVTZXF1ZW5jZShpKSA/IDEgOiAwOwogIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpOwp9CnZhciBpOwpmdW5jdGlvbiBTdGF0ZSQxKGlucHV0LCBvcHRpb25zKSB7CiAgdGhpcy5pbnB1dCA9IGlucHV0OwogIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zWyJmaWxlbmFtZSJdIHx8IG51bGw7CiAgdGhpcy5zY2hlbWEgPSBvcHRpb25zWyJzY2hlbWEiXSB8fCBfZGVmYXVsdDsKICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbIm9uV2FybmluZyJdIHx8IG51bGw7CiAgdGhpcy5sZWdhY3kgPSBvcHRpb25zWyJsZWdhY3kiXSB8fCBmYWxzZTsKICB0aGlzLmpzb24gPSBvcHRpb25zWyJqc29uIl0gfHwgZmFsc2U7CiAgdGhpcy5saXN0ZW5lciA9IG9wdGlvbnNbImxpc3RlbmVyIl0gfHwgbnVsbDsKICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0OwogIHRoaXMudHlwZU1hcCA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDsKICB0aGlzLmxlbmd0aCA9IGlucHV0Lmxlbmd0aDsKICB0aGlzLnBvc2l0aW9uID0gMDsKICB0aGlzLmxpbmUgPSAwOwogIHRoaXMubGluZVN0YXJ0ID0gMDsKICB0aGlzLmxpbmVJbmRlbnQgPSAwOwogIHRoaXMuZmlyc3RUYWJJbkxpbmUgPSAtMTsKICB0aGlzLmRvY3VtZW50cyA9IFtdOwp9CmZ1bmN0aW9uIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHsKICB2YXIgbWFyayA9IHsKICAgIG5hbWU6IHN0YXRlLmZpbGVuYW1lLAogICAgYnVmZmVyOiBzdGF0ZS5pbnB1dC5zbGljZSgwLCAtMSksCiAgICAvLyBvbWl0IHRyYWlsaW5nIFwwCiAgICBwb3NpdGlvbjogc3RhdGUucG9zaXRpb24sCiAgICBsaW5lOiBzdGF0ZS5saW5lLAogICAgY29sdW1uOiBzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydAogIH07CiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTsKICByZXR1cm4gbmV3IGV4Y2VwdGlvbihtZXNzYWdlLCBtYXJrKTsKfQpmdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlLCBtZXNzYWdlKSB7CiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7Cn0KZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7CiAgaWYgKHN0YXRlLm9uV2FybmluZykgewogICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkpOwogIH0KfQp2YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7CiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykgewogICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7CiAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKTsKICAgIH0KICAgIG1hdGNoID0gL14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFyZ3NbMF0pOwogICAgaWYgKG1hdGNoID09PSBudWxsKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpOwogICAgfQogICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApOwogICAgbWlub3IgPSBwYXJzZUludChtYXRjaFsyXSwgMTApOwogICAgaWYgKG1ham9yICE9PSAxKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07CiAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBtaW5vciA8IDI7CiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogIH0sCiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHsKICAgIHZhciBoYW5kbGUsIHByZWZpeDsKICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpOwogICAgfQogICAgaGFuZGxlID0gYXJnc1swXTsKICAgIHByZWZpeCA9IGFyZ3NbMV07CiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInICsgaGFuZGxlICsgJyIgdGFnIGhhbmRsZScpOwogICAgfQogICAgaWYgKCFQQVRURVJOX1RBR19VUkkudGVzdChwcmVmaXgpKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKTsKICAgIH0KICAgIHRyeSB7CiAgICAgIHByZWZpeCA9IGRlY29kZVVSSUNvbXBvbmVudChwcmVmaXgpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogIiArIHByZWZpeCk7CiAgICB9CiAgICBzdGF0ZS50YWdNYXBbaGFuZGxlXSA9IHByZWZpeDsKICB9Cn07CmZ1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBzdGFydCwgZW5kLCBjaGVja0pzb24pIHsKICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0OwogIGlmIChzdGFydCA8IGVuZCkgewogICAgX3Jlc3VsdCA9IHN0YXRlLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgaWYgKGNoZWNrSnNvbikgewogICAgICBmb3IgKF9wb3NpdGlvbiA9IDAsIF9sZW5ndGggPSBfcmVzdWx0Lmxlbmd0aDsgX3Bvc2l0aW9uIDwgX2xlbmd0aDsgX3Bvc2l0aW9uICs9IDEpIHsKICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICAgICAgaWYgKCEoX2NoYXJhY3RlciA9PT0gOSB8fCAzMiA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMTExNDExMSkpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIGlmIChQQVRURVJOX05PTl9QUklOVEFCTEUudGVzdChfcmVzdWx0KSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTsKICAgIH0KICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0OwogIH0KfQpmdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHsKICB2YXIgc291cmNlS2V5cywga2V5LCBpbmRleCwgcXVhbnRpdHk7CiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIik7CiAgfQogIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7CiAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkgewogICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07CiAgICAgIG92ZXJyaWRhYmxlS2V5c1trZXldID0gdHJ1ZTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgc3RhcnRMaW5lLCBzdGFydExpbmVTdGFydCwgc3RhcnRQb3MpIHsKICB2YXIgaW5kZXgsIHF1YW50aXR5OwogIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7CiAgICBrZXlOb2RlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoa2V5Tm9kZSk7CiAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBrZXlOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHsKICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGVbaW5kZXhdKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgICBrZXlOb2RlW2luZGV4XSA9ICJbb2JqZWN0IE9iamVjdF0iOwogICAgICB9CiAgICB9CiAgfQogIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGUpID09PSAiW29iamVjdCBPYmplY3RdIikgewogICAga2V5Tm9kZSA9ICJbb2JqZWN0IE9iamVjdF0iOwogIH0KICBrZXlOb2RlID0gU3RyaW5nKGtleU5vZGUpOwogIGlmIChfcmVzdWx0ID09PSBudWxsKSB7CiAgICBfcmVzdWx0ID0ge307CiAgfQogIGlmIChrZXlUYWcgPT09ICJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHsKICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKCFzdGF0ZS5qc29uICYmICFfaGFzT3duUHJvcGVydHkkMS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiYgX2hhc093blByb3BlcnR5JDEuY2FsbChfcmVzdWx0LCBrZXlOb2RlKSkgewogICAgICBzdGF0ZS5saW5lID0gc3RhcnRMaW5lIHx8IHN0YXRlLmxpbmU7CiAgICAgIHN0YXRlLmxpbmVTdGFydCA9IHN0YXJ0TGluZVN0YXJ0IHx8IHN0YXRlLmxpbmVTdGFydDsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGFydFBvcyB8fCBzdGF0ZS5wb3NpdGlvbjsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKTsKICAgIH0KICAgIGlmIChrZXlOb2RlID09PSAiX19wcm90b19fIikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3Jlc3VsdCwga2V5Tm9kZSwgewogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLAogICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIHZhbHVlOiB2YWx1ZU5vZGUKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlOwogICAgfQogICAgZGVsZXRlIG92ZXJyaWRhYmxlS2V5c1trZXlOb2RlXTsKICB9CiAgcmV0dXJuIF9yZXN1bHQ7Cn0KZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZSkgewogIHZhciBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTApIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgfSBlbHNlIGlmIChjaCA9PT0gMTMpIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDEwKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICB9CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKTsKICB9CiAgc3RhdGUubGluZSArPSAxOwogIHN0YXRlLmxpbmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gLTE7Cn0KZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHsKICB2YXIgbGluZUJyZWFrcyA9IDAsIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZS5maXJzdFRhYkluTGluZSA9PT0gLTEpIHsKICAgICAgICBzdGF0ZS5maXJzdFRhYkluTGluZSA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB9CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmIChhbGxvd0NvbW1lbnRzICYmIGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlIChjaCAhPT0gMTAgJiYgY2ggIT09IDEzICYmIGNoICE9PSAwKTsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICBsaW5lQnJlYWtzKys7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwOwogICAgICB3aGlsZSAoY2ggPT09IDMyKSB7CiAgICAgICAgc3RhdGUubGluZUluZGVudCsrOwogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGlmIChjaGVja0luZGVudCAhPT0gLTEgJiYgbGluZUJyZWFrcyAhPT0gMCAmJiBzdGF0ZS5saW5lSW5kZW50IDwgY2hlY2tJbmRlbnQpIHsKICAgIHRocm93V2FybmluZyhzdGF0ZSwgImRlZmljaWVudCBpbmRlbnRhdGlvbiIpOwogIH0KICByZXR1cm4gbGluZUJyZWFrczsKfQpmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pOwogIGlmICgoY2ggPT09IDQ1IHx8IGNoID09PSA0NikgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHsKICAgIF9wb3NpdGlvbiArPSAzOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIGNvdW50KSB7CiAgaWYgKGNvdW50ID09PSAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gIiAiOwogIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBjb3VudCAtIDEpOwogIH0KfQpmdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQsIHdpdGhpbkZsb3dDb2xsZWN0aW9uKSB7CiAgdmFyIHByZWNlZGluZywgZm9sbG93aW5nLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhhc1BlbmRpbmdDb250ZW50LCBfbGluZSwgX2xpbmVTdGFydCwgX2xpbmVJbmRlbnQsIF9raW5kID0gc3RhdGUua2luZCwgX3Jlc3VsdCA9IHN0YXRlLnJlc3VsdCwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoaXNfV1NfT1JfRU9MKGNoKSB8fCBpc19GTE9XX0lORElDQVRPUihjaCkgfHwgY2ggPT09IDM1IHx8IGNoID09PSAzOCB8fCBjaCA9PT0gNDIgfHwgY2ggPT09IDMzIHx8IGNoID09PSAxMjQgfHwgY2ggPT09IDYyIHx8IGNoID09PSAzOSB8fCBjaCA9PT0gMzQgfHwgY2ggPT09IDM3IHx8IGNoID09PSA2NCB8fCBjaCA9PT0gOTYpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgaWYgKGNoID09PSA2MyB8fCBjaCA9PT0gNDUpIHsKICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlOwogIHdoaWxlIChjaCAhPT0gMCkgewogICAgaWYgKGNoID09PSA1OCkgewogICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoY2ggPT09IDM1KSB7CiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgICBicmVhazsKICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkgewogICAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIC0xKTsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPj0gbm9kZUluZGVudCkgewogICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDsKICAgICAgICBzdGF0ZS5saW5lID0gX2xpbmU7CiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDsKICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBmYWxzZSk7CiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7CiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSBmYWxzZTsKICAgIH0KICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7CiAgICB9CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgfQogIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTsKICBpZiAoc3RhdGUucmVzdWx0KSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgc3RhdGUua2luZCA9IF9raW5kOwogIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzkpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIHN0YXRlLnBvc2l0aW9uKys7CiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogIHdoaWxlICgoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkgIT09IDApIHsKICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkgewogIHZhciBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhleExlbmd0aCwgaGV4UmVzdWx0LCB0bXAsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSAzNCkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBzdGF0ZS5raW5kID0gInNjYWxhciI7CiAgc3RhdGUucmVzdWx0ID0gIiI7CiAgc3RhdGUucG9zaXRpb24rKzsKICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkgewogICAgaWYgKGNoID09PSAzNCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIGlmIChjaCA9PT0gOTIpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpOwogICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHsKICAgICAgICBoZXhMZW5ndGggPSB0bXA7CiAgICAgICAgaGV4UmVzdWx0ID0gMDsKICAgICAgICBmb3IgKDsgaGV4TGVuZ3RoID4gMDsgaGV4TGVuZ3RoLS0pIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7CiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7CiAgICAgIH0KICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9yZXN1bHQsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIGZvbGxvd2luZywgdGVybWluYXRvciwgaXNQYWlyLCBpc0V4cGxpY2l0UGFpciwgaXNNYXBwaW5nLCBvdmVycmlkYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKSwga2V5Tm9kZSwga2V5VGFnLCB2YWx1ZU5vZGUsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoID09PSA5MSkgewogICAgdGVybWluYXRvciA9IDkzOwogICAgaXNNYXBwaW5nID0gZmFsc2U7CiAgICBfcmVzdWx0ID0gW107CiAgfSBlbHNlIGlmIChjaCA9PT0gMTIzKSB7CiAgICB0ZXJtaW5hdG9yID0gMTI1OwogICAgaXNNYXBwaW5nID0gdHJ1ZTsKICAgIF9yZXN1bHQgPSB7fTsKICB9IGVsc2UgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gIm1hcHBpbmciIDogInNlcXVlbmNlIjsKICAgICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKTsKICAgIH0gZWxzZSBpZiAoY2ggPT09IDQ0KSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnIik7CiAgICB9CiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDsKICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7CiAgICBpZiAoY2ggPT09IDYzKSB7CiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIH0KICAgIH0KICAgIF9saW5lID0gc3RhdGUubGluZTsKICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICBfcG9zID0gc3RhdGUucG9zaXRpb247CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7CiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDU4KSB7CiAgICAgIGlzUGFpciA9IHRydWU7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTsKICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0OwogICAgfQogICAgaWYgKGlzTWFwcGluZykgewogICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7CiAgICB9IGVsc2UgaWYgKGlzUGFpcikgewogICAgICBfcmVzdWx0LnB1c2goc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTsKICAgIH0gZWxzZSB7CiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTsKICAgIH0KICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDQpIHsKICAgICAgcmVhZE5leHQgPSB0cnVlOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICByZWFkTmV4dCA9IGZhbHNlOwogICAgfQogIH0KICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKTsKfQpmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2FwdHVyZVN0YXJ0LCBmb2xkaW5nLCBjaG9tcGluZyA9IENIT01QSU5HX0NMSVAsIGRpZFJlYWRDb250ZW50ID0gZmFsc2UsIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsIHRleHRJbmRlbnQgPSBub2RlSW5kZW50LCBlbXB0eUxpbmVzID0gMCwgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSwgdG1wLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTI0KSB7CiAgICBmb2xkaW5nID0gZmFsc2U7CiAgfSBlbHNlIGlmIChjaCA9PT0gNjIpIHsKICAgIGZvbGRpbmcgPSB0cnVlOwogIH0gZWxzZSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHN0YXRlLmtpbmQgPSAic2NhbGFyIjsKICBzdGF0ZS5yZXN1bHQgPSAiIjsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDMgfHwgY2ggPT09IDQ1KSB7CiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykgewogICAgICAgIGNob21waW5nID0gY2ggPT09IDQzID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTsKICAgICAgfQogICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkgewogICAgICBpZiAodG1wID09PSAwKSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTsKICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHsKICAgICAgICB0ZXh0SW5kZW50ID0gbm9kZUluZGVudCArIHRtcCAtIDE7CiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBicmVhazsKICAgIH0KICB9CiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgZG8gewogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpOwogICAgaWYgKGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7CiAgICB9CiAgfQogIHdoaWxlIChjaCAhPT0gMCkgewogICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgICB3aGlsZSAoKCFkZXRlY3RlZEluZGVudCB8fCBzdGF0ZS5saW5lSW5kZW50IDwgdGV4dEluZGVudCkgJiYgY2ggPT09IDMyKSB7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKzsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgaWYgKCFkZXRlY3RlZEluZGVudCAmJiBzdGF0ZS5saW5lSW5kZW50ID4gdGV4dEluZGVudCkgewogICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGVtcHR5TGluZXMrKzsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHsKICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpOwogICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7CiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7CiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gIlxuIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoZm9sZGluZykgewogICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlOwogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTsKICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkgewogICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZW1wdHlMaW5lcyArIDEpOwogICAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXMgPT09IDApIHsKICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHsKICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAiICI7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGVtcHR5TGluZXMpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7CiAgICB9CiAgICBkaWRSZWFkQ29udGVudCA9IHRydWU7CiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7CiAgICBlbXB0eUxpbmVzID0gMDsKICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogICAgd2hpbGUgKCFpc19FT0woY2gpICYmIGNoICE9PSAwKSB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCBmYWxzZSk7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIF9saW5lLCBfdGFnID0gc3RhdGUudGFnLCBfYW5jaG9yID0gc3RhdGUuYW5jaG9yLCBfcmVzdWx0ID0gW10sIGZvbGxvd2luZywgZGV0ZWN0ZWQgPSBmYWxzZSwgY2g7CiAgaWYgKHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDsKICB9CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24iKTsKICAgIH0KICAgIGlmIChjaCAhPT0gNDUpIHsKICAgICAgYnJlYWs7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGJyZWFrOwogICAgfQogICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgc3RhdGUucG9zaXRpb24rKzsKICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkgewogICAgICAgIF9yZXN1bHQucHVzaChudWxsKTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICB9CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpOwogICAgX3Jlc3VsdC5wdXNoKHN0YXRlLnJlc3VsdCk7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoZGV0ZWN0ZWQpIHsKICAgIHN0YXRlLnRhZyA9IF90YWc7CiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgc3RhdGUua2luZCA9ICJzZXF1ZW5jZSI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogICAgcmV0dXJuIHRydWU7CiAgfQogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7CiAgdmFyIGZvbGxvd2luZywgYWxsb3dDb21wYWN0LCBfbGluZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIF9yZXN1bHQgPSB7fSwgb3ZlcnJpZGFibGVLZXlzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCksIGtleVRhZyA9IG51bGwsIGtleU5vZGUgPSBudWxsLCB2YWx1ZU5vZGUgPSBudWxsLCBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsIGRldGVjdGVkID0gZmFsc2UsIGNoOwogIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICBpZiAoIWF0RXhwbGljaXRLZXkgJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhdGUuZmlyc3RUYWJJbkxpbmU7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIik7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBpZiAoKGNoID09PSA2MyB8fCBjaCA9PT0gNTgpICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGlmIChjaCA9PT0gNjMpIHsKICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgIH0KICAgICAgICBkZXRlY3RlZCA9IHRydWU7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7CiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTsKICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKTsKICAgICAgfQogICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxOwogICAgICBjaCA9IGZvbGxvd2luZzsKICAgIH0gZWxzZSB7CiAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDsKICAgICAgX2tleVBvcyA9IHN0YXRlLnBvc2l0aW9uOwogICAgICBpZiAoIWNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNoID09PSA1OCkgewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCBudWxsLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7CiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7CiAgICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgewogICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0OwogICAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfQogICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfT1VULCB0cnVlLCBhbGxvd0NvbXBhY3QpKSB7CiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHsKICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpOwogICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICB9CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmICgoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpICYmIGNoICE9PSAwKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICB9CiAgaWYgKGRldGVjdGVkKSB7CiAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgIHN0YXRlLmtpbmQgPSAibWFwcGluZyI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogIH0KICByZXR1cm4gZGV0ZWN0ZWQ7Cn0KZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgaXNWZXJiYXRpbSA9IGZhbHNlLCBpc05hbWVkID0gZmFsc2UsIHRhZ0hhbmRsZSwgdGFnTmFtZSwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggIT09IDMzKSByZXR1cm4gZmFsc2U7CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggPT09IDYwKSB7CiAgICBpc1ZlcmJhdGltID0gdHJ1ZTsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB9IGVsc2UgaWYgKGNoID09PSAzMykgewogICAgaXNOYW1lZCA9IHRydWU7CiAgICB0YWdIYW5kbGUgPSAiISEiOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0gZWxzZSB7CiAgICB0YWdIYW5kbGUgPSAiISI7CiAgfQogIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBkbyB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0gd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSA2Mik7CiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHsKICAgICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKTsKICAgIH0KICB9IGVsc2UgewogICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gMzMpIHsKICAgICAgICBpZiAoIWlzTmFtZWQpIHsKICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIik7CiAgICAgICAgICB9CiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTsKICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycyIpOwogICAgfQogIH0KICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIgKyB0YWdOYW1lKTsKICB9CiAgdHJ5IHsKICAgIHRhZ05hbWUgPSBkZWNvZGVVUklDb21wb25lbnQodGFnTmFtZSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiICsgdGFnTmFtZSk7CiAgfQogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBzdGF0ZS50YWcgPSB0YWdOYW1lOwogIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHsKICAgIHN0YXRlLnRhZyA9IHN0YXRlLnRhZ01hcFt0YWdIYW5kbGVdICsgdGFnTmFtZTsKICB9IGVsc2UgaWYgKHRhZ0hhbmRsZSA9PT0gIiEiKSB7CiAgICBzdGF0ZS50YWcgPSAiISIgKyB0YWdOYW1lOwogIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSAiISEiKSB7CiAgICBzdGF0ZS50YWcgPSAidGFnOnlhbWwub3JnLDIwMDI6IiArIHRhZ05hbWU7CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicgKyB0YWdIYW5kbGUgKyAnIicpOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzgpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKTsKICB9CiAgc3RhdGUuYW5jaG9yID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgYWxpYXMsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSA0MikgcmV0dXJuIGZhbHNlOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpOwogIH0KICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS5hbmNob3JNYXAsIGFsaWFzKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyAiJyArIGFsaWFzICsgJyInKTsKICB9CiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTsKICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHsKICB2YXIgYWxsb3dCbG9ja1N0eWxlcywgYWxsb3dCbG9ja1NjYWxhcnMsIGFsbG93QmxvY2tDb2xsZWN0aW9ucywgaW5kZW50U3RhdHVzID0gMSwgYXROZXdMaW5lID0gZmFsc2UsIGhhc0NvbnRlbnQgPSBmYWxzZSwgdHlwZUluZGV4LCB0eXBlUXVhbnRpdHksIHR5cGVMaXN0LCB0eXBlMiwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigib3BlbiIsIHN0YXRlKTsKICB9CiAgc3RhdGUudGFnID0gbnVsbDsKICBzdGF0ZS5hbmNob3IgPSBudWxsOwogIHN0YXRlLmtpbmQgPSBudWxsOwogIHN0YXRlLnJlc3VsdCA9IG51bGw7CiAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfQkxPQ0tfSU4gPT09IG5vZGVDb250ZXh0OwogIGlmIChhbGxvd1RvU2VlaykgewogICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkgewogICAgICBhdE5ld0xpbmUgPSB0cnVlOwogICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkgewogICAgICAgIGluZGVudFN0YXR1cyA9IDE7CiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gMDsKICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkgewogICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7CiAgICAgICAgYXROZXdMaW5lID0gdHJ1ZTsKICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzOwogICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkgewogICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQogIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHsKICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7CiAgfQogIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7CiAgICBpZiAoQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCB8fCBDT05URVhUX0ZMT1dfT1VUID09PSBub2RlQ29udGV4dCkgewogICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50OwogICAgfSBlbHNlIHsKICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudCArIDE7CiAgICB9CiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0OwogICAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8IHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHwgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBmbG93SW5kZW50KSkgewogICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHsKICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHsKICAgICAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7CiAgICAgIGhhc0NvbnRlbnQgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiYgcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KTsKICAgIH0KICB9CiAgaWYgKHN0YXRlLnRhZyA9PT0gbnVsbCkgewogICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgIH0KICB9IGVsc2UgaWYgKHN0YXRlLnRhZyA9PT0gIj8iKSB7CiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHN0YXRlLmtpbmQgIT09ICJzY2FsYXIiKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicgKyBzdGF0ZS5raW5kICsgJyInKTsKICAgIH0KICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHsKICAgICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07CiAgICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCkpIHsKICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTsKICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi50YWc7CiAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzdGF0ZS50YWcgIT09ICIhIikgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdLCBzdGF0ZS50YWcpKSB7CiAgICAgIHR5cGUyID0gc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdW3N0YXRlLnRhZ107CiAgICB9IGVsc2UgewogICAgICB0eXBlMiA9IG51bGw7CiAgICAgIHR5cGVMaXN0ID0gc3RhdGUudHlwZU1hcC5tdWx0aVtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdOwogICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkgewogICAgICAgIGlmIChzdGF0ZS50YWcuc2xpY2UoMCwgdHlwZUxpc3RbdHlwZUluZGV4XS50YWcubGVuZ3RoKSA9PT0gdHlwZUxpc3RbdHlwZUluZGV4XS50YWcpIHsKICAgICAgICAgIHR5cGUyID0gdHlwZUxpc3RbdHlwZUluZGV4XTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgaWYgKCF0eXBlMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5rbm93biB0YWcgITwiICsgc3RhdGUudGFnICsgIj4iKTsKICAgIH0KICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgdHlwZTIua2luZCAhPT0gc3RhdGUua2luZCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiICsgc3RhdGUudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgIicgKyB0eXBlMi5raW5kICsgJyIsIG5vdCAiJyArIHN0YXRlLmtpbmQgKyAnIicpOwogICAgfQogICAgaWYgKCF0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiICsgc3RhdGUudGFnICsgIj4gZXhwbGljaXQgdGFnIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0LCBzdGF0ZS50YWcpOwogICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigiY2xvc2UiLCBzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7Cn0KZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7CiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbiwgX3Bvc2l0aW9uLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzLCBoYXNEaXJlY3RpdmVzID0gZmFsc2UsIGNoOwogIHN0YXRlLnZlcnNpb24gPSBudWxsOwogIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTsKICBzdGF0ZS50YWdNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBzdGF0ZS5hbmNob3JNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiAwIHx8IGNoICE9PSAzNykgewogICAgICBicmVhazsKICAgIH0KICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247CiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgZGlyZWN0aXZlTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgZGlyZWN0aXZlQXJncyA9IFtdOwogICAgaWYgKGRpcmVjdGl2ZU5hbWUubGVuZ3RoIDwgMSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7CiAgICB9CiAgICB3aGlsZSAoY2ggIT09IDApIHsKICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgICBpZiAoY2ggPT09IDM1KSB7CiAgICAgICAgZG8gewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoaXNfRU9MKGNoKSkgYnJlYWs7CiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIH0KICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pKTsKICAgIH0KICAgIGlmIChjaCAhPT0gMCkgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChkaXJlY3RpdmVIYW5kbGVycywgZGlyZWN0aXZlTmFtZSkpIHsKICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicgKyBkaXJlY3RpdmVOYW1lICsgJyInKTsKICAgIH0KICB9CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSAwICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSA0NSAmJiBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gNDUpIHsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgfSBlbHNlIGlmIChoYXNEaXJlY3RpdmVzKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpOwogIH0KICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5jaGVja0xpbmVCcmVha3MgJiYgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7CiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKTsKICB9CiAgc3RhdGUuZG9jdW1lbnRzLnB1c2goc3RhdGUucmVzdWx0KTsKICBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDQ2KSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgIH0KICAgIHJldHVybjsKICB9CiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoIC0gMSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykgewogIGlucHV0ID0gU3RyaW5nKGlucHV0KTsKICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7CiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTAgJiYgaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTMpIHsKICAgICAgaW5wdXQgKz0gIlxuIjsKICAgIH0KICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSA2NTI3OSkgewogICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpOwogICAgfQogIH0KICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgdmFyIG51bGxwb3MgPSBpbnB1dC5pbmRleE9mKCJcMCIpOwogIGlmIChudWxscG9zICE9PSAtMSkgewogICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zOwogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpOwogIH0KICBzdGF0ZS5pbnB1dCArPSAiXDAiOwogIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMzIpIHsKICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7CiAgfQogIHdoaWxlIChzdGF0ZS5wb3NpdGlvbiA8IHN0YXRlLmxlbmd0aCAtIDEpIHsKICAgIHJlYWREb2N1bWVudChzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7Cn0KZnVuY3Rpb24gbG9hZEFsbCQxKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykgewogIGlmIChpdGVyYXRvciAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlcmF0b3IgPT09ICJvYmplY3QiICYmIHR5cGVvZiBvcHRpb25zID09PSAidW5kZWZpbmVkIikgewogICAgb3B0aW9ucyA9IGl0ZXJhdG9yOwogICAgaXRlcmF0b3IgPSBudWxsOwogIH0KICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7CiAgaWYgKHR5cGVvZiBpdGVyYXRvciAhPT0gImZ1bmN0aW9uIikgewogICAgcmV0dXJuIGRvY3VtZW50czsKICB9CiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7CiAgfQp9CmZ1bmN0aW9uIGxvYWQkMShpbnB1dCwgb3B0aW9ucykgewogIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKTsKICBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkgewogICAgcmV0dXJuIHZvaWQgMDsKICB9IGVsc2UgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgIHJldHVybiBkb2N1bWVudHNbMF07CiAgfQogIHRocm93IG5ldyBleGNlcHRpb24oImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIik7Cn0KdmFyIGxvYWRBbGxfMSA9IGxvYWRBbGwkMTsKdmFyIGxvYWRfMSA9IGxvYWQkMTsKdmFyIGxvYWRlciA9IHsKICBsb2FkQWxsOiBsb2FkQWxsXzEsCiAgbG9hZDogbG9hZF8xCn07CnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwp2YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENIQVJfQk9NID0gNjUyNzk7CnZhciBDSEFSX1RBQiA9IDk7CnZhciBDSEFSX0xJTkVfRkVFRCA9IDEwOwp2YXIgQ0hBUl9DQVJSSUFHRV9SRVRVUk4gPSAxMzsKdmFyIENIQVJfU1BBQ0UgPSAzMjsKdmFyIENIQVJfRVhDTEFNQVRJT04gPSAzMzsKdmFyIENIQVJfRE9VQkxFX1FVT1RFID0gMzQ7CnZhciBDSEFSX1NIQVJQID0gMzU7CnZhciBDSEFSX1BFUkNFTlQgPSAzNzsKdmFyIENIQVJfQU1QRVJTQU5EID0gMzg7CnZhciBDSEFSX1NJTkdMRV9RVU9URSA9IDM5Owp2YXIgQ0hBUl9BU1RFUklTSyA9IDQyOwp2YXIgQ0hBUl9DT01NQSA9IDQ0Owp2YXIgQ0hBUl9NSU5VUyA9IDQ1Owp2YXIgQ0hBUl9DT0xPTiA9IDU4Owp2YXIgQ0hBUl9FUVVBTFMgPSA2MTsKdmFyIENIQVJfR1JFQVRFUl9USEFOID0gNjI7CnZhciBDSEFSX1FVRVNUSU9OID0gNjM7CnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgPSA2NDsKdmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDkxOwp2YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDkzOwp2YXIgQ0hBUl9HUkFWRV9BQ0NFTlQgPSA5NjsKdmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUID0gMTIzOwp2YXIgQ0hBUl9WRVJUSUNBTF9MSU5FID0gMTI0Owp2YXIgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUID0gMTI1Owp2YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9OwpFU0NBUEVfU0VRVUVOQ0VTWzBdID0gIlxcMCI7CkVTQ0FQRV9TRVFVRU5DRVNbN10gPSAiXFxhIjsKRVNDQVBFX1NFUVVFTkNFU1s4XSA9ICJcXGIiOwpFU0NBUEVfU0VRVUVOQ0VTWzldID0gIlxcdCI7CkVTQ0FQRV9TRVFVRU5DRVNbMTBdID0gIlxcbiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTFdID0gIlxcdiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTJdID0gIlxcZiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTNdID0gIlxcciI7CkVTQ0FQRV9TRVFVRU5DRVNbMjddID0gIlxcZSI7CkVTQ0FQRV9TRVFVRU5DRVNbMzRdID0gJ1xcIic7CkVTQ0FQRV9TRVFVRU5DRVNbOTJdID0gIlxcXFwiOwpFU0NBUEVfU0VRVUVOQ0VTWzEzM10gPSAiXFxOIjsKRVNDQVBFX1NFUVVFTkNFU1sxNjBdID0gIlxcXyI7CkVTQ0FQRV9TRVFVRU5DRVNbODIzMl0gPSAiXFxMIjsKRVNDQVBFX1NFUVVFTkNFU1s4MjMzXSA9ICJcXFAiOwp2YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbCiAgInkiLAogICJZIiwKICAieWVzIiwKICAiWWVzIiwKICAiWUVTIiwKICAib24iLAogICJPbiIsCiAgIk9OIiwKICAibiIsCiAgIk4iLAogICJubyIsCiAgIk5vIiwKICAiTk8iLAogICJvZmYiLAogICJPZmYiLAogICJPRkYiCl07CnZhciBERVBSRUNBVEVEX0JBU0U2MF9TWU5UQVggPSAvXlstK10/WzAtOV9dKyg/OjpbMC05X10rKSsoPzpcLlswLTlfXSopPyQvOwpmdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hMiwgbWFwMikgewogIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGUyOwogIGlmIChtYXAyID09PSBudWxsKSByZXR1cm4ge307CiAgcmVzdWx0ID0ge307CiAga2V5cyA9IE9iamVjdC5rZXlzKG1hcDIpOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHRhZyA9IGtleXNbaW5kZXhdOwogICAgc3R5bGUgPSBTdHJpbmcobWFwMlt0YWddKTsKICAgIGlmICh0YWcuc2xpY2UoMCwgMikgPT09ICIhISIpIHsKICAgICAgdGFnID0gInRhZzp5YW1sLm9yZywyMDAyOiIgKyB0YWcuc2xpY2UoMik7CiAgICB9CiAgICB0eXBlMiA9IHNjaGVtYTIuY29tcGlsZWRUeXBlTWFwWyJmYWxsYmFjayJdW3RhZ107CiAgICBpZiAodHlwZTIgJiYgX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHsKICAgICAgc3R5bGUgPSB0eXBlMi5zdHlsZUFsaWFzZXNbc3R5bGVdOwogICAgfQogICAgcmVzdWx0W3RhZ10gPSBzdHlsZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7CiAgdmFyIHN0cmluZywgaGFuZGxlLCBsZW5ndGg7CiAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOwogIGlmIChjaGFyYWN0ZXIgPD0gMjU1KSB7CiAgICBoYW5kbGUgPSAieCI7CiAgICBsZW5ndGggPSAyOwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDY1NTM1KSB7CiAgICBoYW5kbGUgPSAidSI7CiAgICBsZW5ndGggPSA0OwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDQyOTQ5NjcyOTUpIHsKICAgIGhhbmRsZSA9ICJVIjsKICAgIGxlbmd0aCA9IDg7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTsKICB9CiAgcmV0dXJuICJcXCIgKyBoYW5kbGUgKyBjb21tb24ucmVwZWF0KCIwIiwgbGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7Cn0KdmFyIFFVT1RJTkdfVFlQRV9TSU5HTEUgPSAxOwp2YXIgUVVPVElOR19UWVBFX0RPVUJMRSA9IDI7CmZ1bmN0aW9uIFN0YXRlKG9wdGlvbnMpIHsKICB0aGlzLnNjaGVtYSA9IG9wdGlvbnNbInNjaGVtYSJdIHx8IF9kZWZhdWx0OwogIHRoaXMuaW5kZW50ID0gTWF0aC5tYXgoMSwgb3B0aW9uc1siaW5kZW50Il0gfHwgMik7CiAgdGhpcy5ub0FycmF5SW5kZW50ID0gb3B0aW9uc1sibm9BcnJheUluZGVudCJdIHx8IGZhbHNlOwogIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWyJza2lwSW52YWxpZCJdIHx8IGZhbHNlOwogIHRoaXMuZmxvd0xldmVsID0gY29tbW9uLmlzTm90aGluZyhvcHRpb25zWyJmbG93TGV2ZWwiXSkgPyAtMSA6IG9wdGlvbnNbImZsb3dMZXZlbCJdOwogIHRoaXMuc3R5bGVNYXAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbInN0eWxlcyJdIHx8IG51bGwpOwogIHRoaXMuc29ydEtleXMgPSBvcHRpb25zWyJzb3J0S2V5cyJdIHx8IGZhbHNlOwogIHRoaXMubGluZVdpZHRoID0gb3B0aW9uc1sibGluZVdpZHRoIl0gfHwgODA7CiAgdGhpcy5ub1JlZnMgPSBvcHRpb25zWyJub1JlZnMiXSB8fCBmYWxzZTsKICB0aGlzLm5vQ29tcGF0TW9kZSA9IG9wdGlvbnNbIm5vQ29tcGF0TW9kZSJdIHx8IGZhbHNlOwogIHRoaXMuY29uZGVuc2VGbG93ID0gb3B0aW9uc1siY29uZGVuc2VGbG93Il0gfHwgZmFsc2U7CiAgdGhpcy5xdW90aW5nVHlwZSA9IG9wdGlvbnNbInF1b3RpbmdUeXBlIl0gPT09ICciJyA/IFFVT1RJTkdfVFlQRV9ET1VCTEUgOiBRVU9USU5HX1RZUEVfU0lOR0xFOwogIHRoaXMuZm9yY2VRdW90ZXMgPSBvcHRpb25zWyJmb3JjZVF1b3RlcyJdIHx8IGZhbHNlOwogIHRoaXMucmVwbGFjZXIgPSB0eXBlb2Ygb3B0aW9uc1sicmVwbGFjZXIiXSA9PT0gImZ1bmN0aW9uIiA/IG9wdGlvbnNbInJlcGxhY2VyIl0gOiBudWxsOwogIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7CiAgdGhpcy5leHBsaWNpdFR5cGVzID0gdGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdDsKICB0aGlzLnRhZyA9IG51bGw7CiAgdGhpcy5yZXN1bHQgPSAiIjsKICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTsKICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDsKfQpmdW5jdGlvbiBpbmRlbnRTdHJpbmcoc3RyaW5nLCBzcGFjZXMpIHsKICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgiICIsIHNwYWNlcyksIHBvc2l0aW9uID0gMCwgbmV4dCA9IC0xLCByZXN1bHQgPSAiIiwgbGluZSwgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHsKICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZigiXG4iLCBwb3NpdGlvbik7CiAgICBpZiAobmV4dCA9PT0gLTEpIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7CiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoOwogICAgfSBlbHNlIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpOwogICAgICBwb3NpdGlvbiA9IG5leHQgKyAxOwogICAgfQogICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICJcbiIpIHJlc3VsdCArPSBpbmQ7CiAgICByZXN1bHQgKz0gbGluZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCkgewogIHJldHVybiAiXG4iICsgY29tbW9uLnJlcGVhdCgiICIsIHN0YXRlLmluZGVudCAqIGxldmVsKTsKfQpmdW5jdGlvbiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIHN0cjIpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwgdHlwZTI7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTsKICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0cjIpKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gYyA9PT0gQ0hBUl9TUEFDRSB8fCBjID09PSBDSEFSX1RBQjsKfQpmdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7CiAgcmV0dXJuIDMyIDw9IGMgJiYgYyA8PSAxMjYgfHwgMTYxIDw9IGMgJiYgYyA8PSA1NTI5NSAmJiBjICE9PSA4MjMyICYmIGMgIT09IDgyMzMgfHwgNTczNDQgPD0gYyAmJiBjIDw9IDY1NTMzICYmIGMgIT09IENIQVJfQk9NIHx8IDY1NTM2IDw9IGMgJiYgYyA8PSAxMTE0MTExOwp9CmZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT00gJiYgYyAhPT0gQ0hBUl9DQVJSSUFHRV9SRVRVUk4gJiYgYyAhPT0gQ0hBUl9MSU5FX0ZFRUQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmUoYywgcHJldiwgaW5ibG9jaykgewogIHZhciBjSXNOc0NoYXJPcldoaXRlc3BhY2UgPSBpc05zQ2hhck9yV2hpdGVzcGFjZShjKTsKICB2YXIgY0lzTnNDaGFyID0gY0lzTnNDaGFyT3JXaGl0ZXNwYWNlICYmICFpc1doaXRlc3BhY2UoYyk7CiAgcmV0dXJuICgKICAgIC8vIG5zLXBsYWluLXNhZmUKICAgIChpbmJsb2NrID8gKAogICAgICAvLyBjID0gZmxvdy1pbgogICAgICBjSXNOc0NoYXJPcldoaXRlc3BhY2UKICAgICkgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2UgJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQpICYmIGMgIT09IENIQVJfU0hBUlAgJiYgIShwcmV2ID09PSBDSEFSX0NPTE9OICYmICFjSXNOc0NoYXIpIHx8IGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHByZXYpICYmICFpc1doaXRlc3BhY2UocHJldikgJiYgYyA9PT0gQ0hBUl9TSEFSUCB8fCBwcmV2ID09PSBDSEFSX0NPTE9OICYmIGNJc05zQ2hhcgogICk7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChjKSB7CiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmIGMgIT09IENIQVJfQk9NICYmICFpc1doaXRlc3BhY2UoYykgJiYgYyAhPT0gQ0hBUl9NSU5VUyAmJiBjICE9PSBDSEFSX1FVRVNUSU9OICYmIGMgIT09IENIQVJfQ09MT04gJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9TSEFSUCAmJiBjICE9PSBDSEFSX0FNUEVSU0FORCAmJiBjICE9PSBDSEFSX0FTVEVSSVNLICYmIGMgIT09IENIQVJfRVhDTEFNQVRJT04gJiYgYyAhPT0gQ0hBUl9WRVJUSUNBTF9MSU5FICYmIGMgIT09IENIQVJfRVFVQUxTICYmIGMgIT09IENIQVJfR1JFQVRFUl9USEFOICYmIGMgIT09IENIQVJfU0lOR0xFX1FVT1RFICYmIGMgIT09IENIQVJfRE9VQkxFX1FVT1RFICYmIGMgIT09IENIQVJfUEVSQ0VOVCAmJiBjICE9PSBDSEFSX0NPTU1FUkNJQUxfQVQgJiYgYyAhPT0gQ0hBUl9HUkFWRV9BQ0NFTlQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KGMpIHsKICByZXR1cm4gIWlzV2hpdGVzcGFjZShjKSAmJiBjICE9PSBDSEFSX0NPTE9OOwp9CmZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgcG9zKSB7CiAgdmFyIGZpcnN0ID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zKSwgc2Vjb25kOwogIGlmIChmaXJzdCA+PSA1NTI5NiAmJiBmaXJzdCA8PSA1NjMxOSAmJiBwb3MgKyAxIDwgc3RyaW5nLmxlbmd0aCkgewogICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zICsgMSk7CiAgICBpZiAoc2Vjb25kID49IDU2MzIwICYmIHNlY29uZCA8PSA1NzM0MykgewogICAgICByZXR1cm4gKGZpcnN0IC0gNTUyOTYpICogMTAyNCArIHNlY29uZCAtIDU2MzIwICsgNjU1MzY7CiAgICB9CiAgfQogIHJldHVybiBmaXJzdDsKfQpmdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykgewogIHZhciBsZWFkaW5nU3BhY2VSZSA9IC9eXG4qIC87CiAgcmV0dXJuIGxlYWRpbmdTcGFjZVJlLnRlc3Qoc3RyaW5nKTsKfQp2YXIgU1RZTEVfUExBSU4gPSAxOwp2YXIgU1RZTEVfU0lOR0xFID0gMjsKdmFyIFNUWUxFX0xJVEVSQUwgPSAzOwp2YXIgU1RZTEVfRk9MREVEID0gNDsKdmFyIFNUWUxFX0RPVUJMRSA9IDU7CmZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHN0cmluZywgc2luZ2xlTGluZU9ubHksIGluZGVudFBlckxldmVsLCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VvdXNUeXBlLCBxdW90aW5nVHlwZSwgZm9yY2VRdW90ZXMsIGluYmxvY2spIHsKICB2YXIgaTsKICB2YXIgY2hhciA9IDA7CiAgdmFyIHByZXZDaGFyID0gbnVsbDsKICB2YXIgaGFzTGluZUJyZWFrID0gZmFsc2U7CiAgdmFyIGhhc0ZvbGRhYmxlTGluZSA9IGZhbHNlOwogIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTsKICB2YXIgcHJldmlvdXNMaW5lQnJlYWsgPSAtMTsKICB2YXIgcGxhaW4gPSBpc1BsYWluU2FmZUZpcnN0KGNvZGVQb2ludEF0KHN0cmluZywgMCkpICYmIGlzUGxhaW5TYWZlTGFzdChjb2RlUG9pbnRBdChzdHJpbmcsIHN0cmluZy5sZW5ndGggLSAxKSk7CiAgaWYgKHNpbmdsZUxpbmVPbmx5IHx8IGZvcmNlUXVvdGVzKSB7CiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgY2hhciA+PSA2NTUzNiA/IGkgKz0gMiA6IGkrKykgewogICAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkgewogICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7CiAgICAgIH0KICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7CiAgICAgIHByZXZDaGFyID0gY2hhcjsKICAgIH0KICB9IGVsc2UgewogICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGNoYXIgPj0gNjU1MzYgPyBpICs9IDIgOiBpKyspIHsKICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7CiAgICAgIGlmIChjaGFyID09PSBDSEFSX0xJTkVfRkVFRCkgewogICAgICAgIGhhc0xpbmVCcmVhayA9IHRydWU7CiAgICAgICAgaWYgKHNob3VsZFRyYWNrV2lkdGgpIHsKICAgICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC4KICAgICAgICAgIGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIjsKICAgICAgICAgIHByZXZpb3VzTGluZUJyZWFrID0gaTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7CiAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICAgICAgfQogICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZDaGFyLCBpbmJsb2NrKTsKICAgICAgcHJldkNoYXIgPSBjaGFyOwogICAgfQogICAgaGFzRm9sZGFibGVMaW5lID0gaGFzRm9sZGFibGVMaW5lIHx8IHNob3VsZFRyYWNrV2lkdGggJiYgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIik7CiAgfQogIGlmICghaGFzTGluZUJyZWFrICYmICFoYXNGb2xkYWJsZUxpbmUpIHsKICAgIGlmIChwbGFpbiAmJiAhZm9yY2VRdW90ZXMgJiYgIXRlc3RBbWJpZ3VvdXNUeXBlKHN0cmluZykpIHsKICAgICAgcmV0dXJuIFNUWUxFX1BMQUlOOwogICAgfQogICAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFOwogIH0KICBpZiAoaW5kZW50UGVyTGV2ZWwgPiA5ICYmIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSkgewogICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICB9CiAgaWYgKCFmb3JjZVF1b3RlcykgewogICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7CiAgfQogIHJldHVybiBxdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/IFNUWUxFX0RPVUJMRSA6IFNUWUxFX1NJTkdMRTsKfQpmdW5jdGlvbiB3cml0ZVNjYWxhcihzdGF0ZSwgc3RyaW5nLCBsZXZlbCwgaXNrZXksIGluYmxvY2spIHsKICBzdGF0ZS5kdW1wID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIiInIDogIicnIjsKICAgIH0KICAgIGlmICghc3RhdGUubm9Db21wYXRNb2RlKSB7CiAgICAgIGlmIChERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKHN0cmluZykgIT09IC0xIHx8IERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWC50ZXN0KHN0cmluZykpIHsKICAgICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIicgKyBzdHJpbmcgKyAnIicgOiAiJyIgKyBzdHJpbmcgKyAiJyI7CiAgICAgIH0KICAgIH0KICAgIHZhciBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBNYXRoLm1heCgxLCBsZXZlbCk7CiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMSA/IC0xIDogTWF0aC5tYXgoTWF0aC5taW4oc3RhdGUubGluZVdpZHRoLCA0MCksIHN0YXRlLmxpbmVXaWR0aCAtIGluZGVudCk7CiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleSB8fCBzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWw7CiAgICBmdW5jdGlvbiB0ZXN0QW1iaWd1aXR5KHN0cmluZzIpIHsKICAgICAgcmV0dXJuIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyaW5nMik7CiAgICB9CiAgICBzd2l0Y2ggKGNob29zZVNjYWxhclN0eWxlKAogICAgICBzdHJpbmcsCiAgICAgIHNpbmdsZUxpbmVPbmx5LAogICAgICBzdGF0ZS5pbmRlbnQsCiAgICAgIGxpbmVXaWR0aCwKICAgICAgdGVzdEFtYmlndWl0eSwKICAgICAgc3RhdGUucXVvdGluZ1R5cGUsCiAgICAgIHN0YXRlLmZvcmNlUXVvdGVzICYmICFpc2tleSwKICAgICAgaW5ibG9jawogICAgKSkgewogICAgICBjYXNlIFNUWUxFX1BMQUlOOgogICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgIGNhc2UgU1RZTEVfU0lOR0xFOgogICAgICAgIHJldHVybiAiJyIgKyBzdHJpbmcucmVwbGFjZSgvJy9nLCAiJyciKSArICInIjsKICAgICAgY2FzZSBTVFlMRV9MSVRFUkFMOgogICAgICAgIHJldHVybiAifCIgKyBibG9ja0hlYWRlcihzdHJpbmcsIHN0YXRlLmluZGVudCkgKyBkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoc3RyaW5nLCBpbmRlbnQpKTsKICAgICAgY2FzZSBTVFlMRV9GT0xERUQ6CiAgICAgICAgcmV0dXJuICI+IiArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KSArIGRyb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhmb2xkU3RyaW5nKHN0cmluZywgbGluZVdpZHRoKSwgaW5kZW50KSk7CiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOgogICAgICAgIHJldHVybiAnIicgKyBlc2NhcGVTdHJpbmcoc3RyaW5nKSArICciJzsKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpOwogICAgfQogIH0oKTsKfQpmdW5jdGlvbiBibG9ja0hlYWRlcihzdHJpbmcsIGluZGVudFBlckxldmVsKSB7CiAgdmFyIGluZGVudEluZGljYXRvciA9IG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSA/IFN0cmluZyhpbmRlbnRQZXJMZXZlbCkgOiAiIjsKICB2YXIgY2xpcCA9IHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAiXG4iIHx8IHN0cmluZyA9PT0gIlxuIik7CiAgdmFyIGNob21wID0ga2VlcCA/ICIrIiA6IGNsaXAgPyAiIiA6ICItIjsKICByZXR1cm4gaW5kZW50SW5kaWNhdG9yICsgY2hvbXAgKyAiXG4iOwp9CmZ1bmN0aW9uIGRyb3BFbmRpbmdOZXdsaW5lKHN0cmluZykgewogIHJldHVybiBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAiXG4iID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZzsKfQpmdW5jdGlvbiBmb2xkU3RyaW5nKHN0cmluZywgd2lkdGgpIHsKICB2YXIgbGluZVJlID0gLyhcbispKFteXG5dKikvZzsKICB2YXIgcmVzdWx0ID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbmV4dExGID0gc3RyaW5nLmluZGV4T2YoIlxuIik7CiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDsKICAgIGxpbmVSZS5sYXN0SW5kZXggPSBuZXh0TEY7CiAgICByZXR1cm4gZm9sZExpbmUoc3RyaW5nLnNsaWNlKDAsIG5leHRMRiksIHdpZHRoKTsKICB9KCk7CiAgdmFyIHByZXZNb3JlSW5kZW50ZWQgPSBzdHJpbmdbMF0gPT09ICJcbiIgfHwgc3RyaW5nWzBdID09PSAiICI7CiAgdmFyIG1vcmVJbmRlbnRlZDsKICB2YXIgbWF0Y2g7CiAgd2hpbGUgKG1hdGNoID0gbGluZVJlLmV4ZWMoc3RyaW5nKSkgewogICAgdmFyIHByZWZpeCA9IG1hdGNoWzFdLCBsaW5lID0gbWF0Y2hbMl07CiAgICBtb3JlSW5kZW50ZWQgPSBsaW5lWzBdID09PSAiICI7CiAgICByZXN1bHQgKz0gcHJlZml4ICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gIiIgPyAiXG4iIDogIiIpICsgZm9sZExpbmUobGluZSwgd2lkdGgpOwogICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkgewogIGlmIChsaW5lID09PSAiIiB8fCBsaW5lWzBdID09PSAiICIpIHJldHVybiBsaW5lOwogIHZhciBicmVha1JlID0gLyBbXiBdL2c7CiAgdmFyIG1hdGNoOwogIHZhciBzdGFydCA9IDAsIGVuZCwgY3VyciA9IDAsIG5leHQgPSAwOwogIHZhciByZXN1bHQgPSAiIjsKICB3aGlsZSAobWF0Y2ggPSBicmVha1JlLmV4ZWMobGluZSkpIHsKICAgIG5leHQgPSBtYXRjaC5pbmRleDsKICAgIGlmIChuZXh0IC0gc3RhcnQgPiB3aWR0aCkgewogICAgICBlbmQgPSBjdXJyID4gc3RhcnQgPyBjdXJyIDogbmV4dDsKICAgICAgcmVzdWx0ICs9ICJcbiIgKyBsaW5lLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICBzdGFydCA9IGVuZCArIDE7CiAgICB9CiAgICBjdXJyID0gbmV4dDsKICB9CiAgcmVzdWx0ICs9ICJcbiI7CiAgaWYgKGxpbmUubGVuZ3RoIC0gc3RhcnQgPiB3aWR0aCAmJiBjdXJyID4gc3RhcnQpIHsKICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICJcbiIgKyBsaW5lLnNsaWNlKGN1cnIgKyAxKTsKICB9IGVsc2UgewogICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpOwogIH0KICByZXR1cm4gcmVzdWx0LnNsaWNlKDEpOwp9CmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHsKICB2YXIgcmVzdWx0ID0gIiI7CiAgdmFyIGNoYXIgPSAwOwogIHZhciBlc2NhcGVTZXE7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7CiAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcl07CiAgICBpZiAoIWVzY2FwZVNlcSAmJiBpc1ByaW50YWJsZShjaGFyKSkgewogICAgICByZXN1bHQgKz0gc3RyaW5nW2ldOwogICAgICBpZiAoY2hhciA+PSA2NTUzNikgcmVzdWx0ICs9IHN0cmluZ1tpICsgMV07CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgKz0gZXNjYXBlU2VxIHx8IGVuY29kZUhleChjaGFyKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCkgewogIHZhciBfcmVzdWx0ID0gIiIsIF90YWcgPSBzdGF0ZS50YWcsIGluZGV4LCBsZW5ndGgsIHZhbHVlOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdmFsdWUgPSBvYmplY3RbaW5kZXhdOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIFN0cmluZyhpbmRleCksIHZhbHVlKTsKICAgIH0KICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICJ1bmRlZmluZWQiICYmIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG51bGwsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgaWYgKF9yZXN1bHQgIT09ICIiKSBfcmVzdWx0ICs9ICIsIiArICghc3RhdGUuY29uZGVuc2VGbG93ID8gIiAiIDogIiIpOwogICAgICBfcmVzdWx0ICs9IHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJbIiArIF9yZXN1bHQgKyAiXSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7CiAgdmFyIF9yZXN1bHQgPSAiIiwgX3RhZyA9IHN0YXRlLnRhZywgaW5kZXgsIGxlbmd0aCwgdmFsdWU7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICB2YWx1ZSA9IG9iamVjdFtpbmRleF07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpOwogICAgfQogICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCIgJiYgd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG51bGwsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSkgewogICAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTsKICAgICAgfQogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSAiOwogICAgICB9CiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDsKICAgIH0KICB9CiAgc3RhdGUudGFnID0gX3RhZzsKICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAiW10iOwp9CmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgcGFpckJ1ZmZlcjsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoX3Jlc3VsdCAhPT0gIiIpIHBhaXJCdWZmZXIgKz0gIiwgIjsKICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJyInOwogICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07CiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RLZXksIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSBwYWlyQnVmZmVyICs9ICI/ICI7CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXAgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJyInIDogIiIpICsgIjoiICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICIiIDogIiAiKTsKICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJ7IiArIF9yZXN1bHQgKyAifSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgZXhwbGljaXRQYWlyLCBwYWlyQnVmZmVyOwogIGlmIChzdGF0ZS5zb3J0S2V5cyA9PT0gdHJ1ZSkgewogICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7CiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICJmdW5jdGlvbiIpIHsKICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7CiAgfSBlbHNlIGlmIChzdGF0ZS5zb3J0S2V5cykgewogICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpOwogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7CiAgICB9CiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTsKICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgb2JqZWN0VmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSk7CiAgICB9CiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgZXhwbGljaXRQYWlyID0gc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gIj8iIHx8IHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0OwogICAgaWYgKGV4cGxpY2l0UGFpcikgewogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyAiOwogICAgICB9CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBpZiAoZXhwbGljaXRQYWlyKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gIjoiOwogICAgfSBlbHNlIHsKICAgICAgcGFpckJ1ZmZlciArPSAiOiAiOwogICAgfQogICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wOwogICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyOwogIH0KICBzdGF0ZS50YWcgPSBfdGFnOwogIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICJ7fSI7Cn0KZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkgewogIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZTIsIHN0eWxlOwogIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlczsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdHlwZUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSB0eXBlTGlzdFtpbmRleF07CiAgICBpZiAoKHR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZTIucHJlZGljYXRlKSAmJiAoIXR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgJiYgb2JqZWN0IGluc3RhbmNlb2YgdHlwZTIuaW5zdGFuY2VPZikgJiYgKCF0eXBlMi5wcmVkaWNhdGUgfHwgdHlwZTIucHJlZGljYXRlKG9iamVjdCkpKSB7CiAgICAgIGlmIChleHBsaWNpdCkgewogICAgICAgIGlmICh0eXBlMi5tdWx0aSAmJiB0eXBlMi5yZXByZXNlbnROYW1lKSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi5yZXByZXNlbnROYW1lKG9iamVjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUyLnRhZzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICB9CiAgICAgIGlmICh0eXBlMi5yZXByZXNlbnQpIHsKICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUyLnRhZ10gfHwgdHlwZTIuZGVmYXVsdFN0eWxlOwogICAgICAgIGlmIChfdG9TdHJpbmcuY2FsbCh0eXBlMi5yZXByZXNlbnQpID09PSAiW29iamVjdCBGdW5jdGlvbl0iKSB7CiAgICAgICAgICBfcmVzdWx0ID0gdHlwZTIucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIucmVwcmVzZW50LCBzdHlsZSkpIHsKICAgICAgICAgIF9yZXN1bHQgPSB0eXBlMi5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCIhPCIgKyB0eXBlMi50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicgKyBzdHlsZSArICciIHN0eWxlJyk7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0OwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXksIGlzYmxvY2tzZXEpIHsKICBzdGF0ZS50YWcgPSBudWxsOwogIHN0YXRlLmR1bXAgPSBvYmplY3Q7CiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkgewogICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTsKICB9CiAgdmFyIHR5cGUyID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7CiAgdmFyIGluYmxvY2sgPSBibG9jazsKICB2YXIgdGFnU3RyOwogIGlmIChibG9jaykgewogICAgYmxvY2sgPSBzdGF0ZS5mbG93TGV2ZWwgPCAwIHx8IHN0YXRlLmZsb3dMZXZlbCA+IGxldmVsOwogIH0KICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUyID09PSAiW29iamVjdCBPYmplY3RdIiB8fCB0eXBlMiA9PT0gIltvYmplY3QgQXJyYXldIiwgZHVwbGljYXRlSW5kZXgsIGR1cGxpY2F0ZTsKICBpZiAob2JqZWN0T3JBcnJheSkgewogICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTsKICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTsKICB9CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCAmJiBzdGF0ZS50YWcgIT09ICI/IiB8fCBkdXBsaWNhdGUgfHwgc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkgewogICAgY29tcGFjdCA9IGZhbHNlOwogIH0KICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkgewogICAgc3RhdGUuZHVtcCA9ICIqcmVmXyIgKyBkdXBsaWNhdGVJbmRleDsKICB9IGVsc2UgewogICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHsKICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdID0gdHJ1ZTsKICAgIH0KICAgIGlmICh0eXBlMiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIE9iamVjdC5rZXlzKHN0YXRlLmR1bXApLmxlbmd0aCAhPT0gMCkgewogICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgaWYgKGR1cGxpY2F0ZSkgewogICAgICAgICAgc3RhdGUuZHVtcCA9ICImcmVmXyIgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IEFycmF5XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgaWYgKHN0YXRlLm5vQXJyYXlJbmRlbnQgJiYgIWlzYmxvY2tzZXEgJiYgbGV2ZWwgPiAwKSB7CiAgICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsIC0gMSwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHdyaXRlQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpOwogICAgICAgIH0KICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IFN0cmluZ10iKSB7CiAgICAgIGlmIChzdGF0ZS50YWcgIT09ICI/IikgewogICAgICAgIHdyaXRlU2NhbGFyKHN0YXRlLCBzdGF0ZS5kdW1wLCBsZXZlbCwgaXNrZXksIGluYmxvY2spOwogICAgICB9CiAgICB9IGVsc2UgaWYgKHR5cGUyID09PSAiW29iamVjdCBVbmRlZmluZWRdIikgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIiArIHR5cGUyKTsKICAgIH0KICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAiPyIpIHsKICAgICAgdGFnU3RyID0gZW5jb2RlVVJJKAogICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gIiEiID8gc3RhdGUudGFnLnNsaWNlKDEpIDogc3RhdGUudGFnCiAgICAgICkucmVwbGFjZSgvIS9nLCAiJTIxIik7CiAgICAgIGlmIChzdGF0ZS50YWdbMF0gPT09ICIhIikgewogICAgICAgIHRhZ1N0ciA9ICIhIiArIHRhZ1N0cjsKICAgICAgfSBlbHNlIGlmICh0YWdTdHIuc2xpY2UoMCwgMTgpID09PSAidGFnOnlhbWwub3JnLDIwMDI6IikgewogICAgICAgIHRhZ1N0ciA9ICIhISIgKyB0YWdTdHIuc2xpY2UoMTgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRhZ1N0ciA9ICIhPCIgKyB0YWdTdHIgKyAiPiI7CiAgICAgIH0KICAgICAgc3RhdGUuZHVtcCA9IHRhZ1N0ciArICIgIiArIHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGdldER1cGxpY2F0ZVJlZmVyZW5jZXMob2JqZWN0LCBzdGF0ZSkgewogIHZhciBvYmplY3RzID0gW10sIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sIGluZGV4LCBsZW5ndGg7CiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pOwogIH0KICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpOwp9CmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHsKICB2YXIgb2JqZWN0S2V5TGlzdCwgaW5kZXgsIGxlbmd0aDsKICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiKSB7CiAgICBpbmRleCA9IG9iamVjdHMuaW5kZXhPZihvYmplY3QpOwogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICBpZiAoZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkgPT09IC0xKSB7CiAgICAgICAgZHVwbGljYXRlc0luZGV4ZXMucHVzaChpbmRleCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG9iamVjdHMucHVzaChvYmplY3QpOwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7CiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtvYmplY3RLZXlMaXN0W2luZGV4XV0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gZHVtcCQxKGlucHV0LCBvcHRpb25zKSB7CiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKG9wdGlvbnMpOwogIGlmICghc3RhdGUubm9SZWZzKSBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7CiAgdmFyIHZhbHVlID0gaW5wdXQ7CiAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwoeyAiIjogdmFsdWUgfSwgIiIsIHZhbHVlKTsKICB9CiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgdmFsdWUsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICJcbiI7CiAgcmV0dXJuICIiOwp9CnZhciBkdW1wXzEgPSBkdW1wJDE7CnZhciBkdW1wZXIgPSB7CiAgZHVtcDogZHVtcF8xCn07CmZ1bmN0aW9uIHJlbmFtZWQoZnJvbSwgdG8pIHsKICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uIHlhbWwuIiArIGZyb20gKyAiIGlzIHJlbW92ZWQgaW4ganMteWFtbCA0LiBVc2UgeWFtbC4iICsgdG8gKyAiIGluc3RlYWQsIHdoaWNoIGlzIG5vdyBzYWZlIGJ5IGRlZmF1bHQuIik7CiAgfTsKfQp2YXIgbG9hZCA9IGxvYWRlci5sb2FkOwp2YXIgbG9hZEFsbCA9IGxvYWRlci5sb2FkQWxsOwp2YXIgZHVtcCA9IGR1bXBlci5kdW1wOwp2YXIgc2FmZUxvYWQgPSByZW5hbWVkKCJzYWZlTG9hZCIsICJsb2FkIik7CnZhciBzYWZlTG9hZEFsbCA9IHJlbmFtZWQoInNhZmVMb2FkQWxsIiwgImxvYWRBbGwiKTsKdmFyIHNhZmVEdW1wID0gcmVuYW1lZCgic2FmZUR1bXAiLCAiZHVtcCIpOwoKLy8gc3JjL3NjaGVtYXRpYy9wcm9qZWN0L3Byb2plY3QuZmFjdG9yeS50cwp2YXIgR0lUSUdOT1JFX1BBVEggPSAiLmdpdGlnbm9yZSI7CnZhciBjYXB0dXJlR2l0SWdub3JlQ29udGVudFJ1bGUgPSAoc3RhdGUpID0+IChob3N0KSA9PiB7CiAgY29uc3QgZ2l0SWdub3JlQnVmZmVyID0gaG9zdC5yZWFkKEdJVElHTk9SRV9QQVRIKTsKICBpZiAoIWdpdElnbm9yZUJ1ZmZlcikgewogICAgcmV0dXJuIGhvc3Q7CiAgfQogIHN0YXRlLmNvbnRlbnQgPSBnaXRJZ25vcmVCdWZmZXIudG9TdHJpbmcoInV0Zi04Iik7CiAgcmV0dXJuIGhvc3Q7Cn07CnZhciBtZXJnZUdpdElnbm9yZUNvbnRlbnRSdWxlID0gKHN0YXRlKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmIChzdGF0ZS5jb250ZW50ID09PSB2b2lkIDApIHsKICAgIHJldHVybiBob3N0OwogIH0KICBjb25zdCBnaXRJZ25vcmVCdWZmZXIgPSBob3N0LnJlYWQoR0lUSUdOT1JFX1BBVEgpOwogIGlmICghZ2l0SWdub3JlQnVmZmVyKSB7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgY29uc3QgdGVtcGxhdGVDb250ZW50ID0gZ2l0SWdub3JlQnVmZmVyLnRvU3RyaW5nKCJ1dGYtOCIpOwogIGNvbnN0IG1lcmdlZENvbnRlbnQgPSBtZXJnZUdpdElnbm9yZUNvbnRlbnQoewogICAgZXhpc3RpbmdDb250ZW50OiBzdGF0ZS5jb250ZW50LAogICAgdGVtcGxhdGVDb250ZW50CiAgfSk7CiAgaWYgKG1lcmdlZENvbnRlbnQgIT09IHRlbXBsYXRlQ29udGVudCkgewogICAgY29udGV4dC5sb2dnZXIuaW5mbygiTWVyZ2luZyB0ZW1wbGF0ZSAuZ2l0aWdub3JlIHdpdGggcHJvamVjdC1zcGVjaWZpYyBlbnRyaWVzIik7CiAgICBob3N0Lm92ZXJ3cml0ZShHSVRJR05PUkVfUEFUSCwgbWVyZ2VkQ29udGVudCk7CiAgfQogIHJldHVybiBob3N0Owp9Owp2YXIgbWFpbiA9IChvcHRpb25zKSA9PiB7CiAgY29uc3Qgc3RhdGUgPSB7fTsKICByZXR1cm4gKDAsIGltcG9ydF9zY2hlbWF0aWNzMTAuY2hhaW4pKFsKICAgIGNhcHR1cmVHaXRJZ25vcmVDb250ZW50UnVsZShzdGF0ZSksCiAgICB1cGRhdGVUc0NvbmZpZ1J1bGUsCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MxMS5tZXJnZVdpdGgpKGdlbmVyYXRlQ29tbW9uU291cmNlKG9wdGlvbnMpLCBpbXBvcnRfc2NoZW1hdGljczkuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGUpLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzMTEubWVyZ2VXaXRoKShnZW5lcmF0ZVByb2plY3RTcGVjaWZpY1NvdXJjZShvcHRpb25zKSwgaW1wb3J0X3NjaGVtYXRpY3M5Lk1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlKSwKICAgIG1lcmdlR2l0SWdub3JlQ29udGVudFJ1bGUoc3RhdGUpCiAgXSk7Cn07Ci8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZToKMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7CiAgbWFpbgp9KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3V0aWxzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS91dGlsaXR5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3BvaW50ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2V4Y2VwdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGl0ZXJhbHMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3N0cmluZ3MuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL29iamVjdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3BhcnRpYWxseS1vcmRlcmVkLXNldC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xhbmcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbnVsbC1sb2dnZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci90cmFuc2Zvcm0tbG9nZ2VyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9wYXRoLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvbWVtb3J5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc3luYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZXNvbHZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVjb3JkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vcmVhZGVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi93cml0ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW50cnkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvcmVjb3JkZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc2NvcGVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2hvc3QtdHJlZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9zdGF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbnVsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL3NjaGVtYXRpYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvY2xpLWxvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3Npbmsvc2luay5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvbW92ZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9zY2hlbWF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy91cmwuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCmpzLXlhbWwvZGlzdC9qcy15YW1sLm1qczoKICAoKiEganMteWFtbCA0LjEuMCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWNhL2pzLXlhbWwgQGxpY2Vuc2UgTUlUICopCiovCg==",cis=async e=>{let t=Buffer.from(dAl,"base64").toString("utf-8");await(await import("fs/promises")).writeFile(e,t)};var lis=async e=>{let{writeFiles:t}=await import("@atls/code-runtime");await t(e);let r=pYr.ppath.join(e,"project");await pAl(r,{recursive:!0}),await cis(pYr.ppath.join(r,"project.factory.cjs")),console.info("All Schematic files writed to the tmp!")};var B_e=Nt(no(),1),kkt=Nt(no(),1),uis=async e=>{let t=process.cwd();await kkt.xfs.copyFilePromise(B_e.ppath.join(t,".pnp.cjs"),B_e.ppath.join(e,".pnp.cjs")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"package.json"),B_e.ppath.join(e,"package.json")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"runtime"),B_e.ppath.join(e,"runtime"))};var dis=async e=>async r=>{try{let n=await Ais.xfs.mktempPromise(),a=gis.ppath.join(n,"collection.json");await lis(n),await uis(n),await ais("project",e,a)}catch(n){console.error(n)}};var xkt=class extends pis.BaseCommand{static paths=[["generate","project"]];type=Su.String("-t,--type","project");async execute(){let t=await fis.Configuration.find(this.context.cwd,this.context.plugins),r=["libraries","project"];if(!r.includes(this.type))throw new Error(`Allowed only ${r.join(", ")} types`);let n={type:this.type,cwd:process.cwd()},a=aji(this,t),o=await dis(n);return(await Iis.StreamReport.start(a,o)).exitCode()}};var his={commands:[xkt]};var uWl=Nt(Jls()),gWl=Nt($ls()),AWl=Nt(cus()),dWl=Nt(dus()),pWl=Nt(TGr()),fWl=Nt(Axt()),IWl=Nt(mus()),hWl=Nt(vus()),mWl=Nt(cgs()),CWl=Nt(fgs()),_Wl=Nt(Sgs()),yWl=Nt(Lgs()),bWl=Nt(nDe()),EWl=Nt(Hgs()),SWl=Nt(jgs()),vWl=Nt(rAs()),BWl=Nt(dAs()),wWl=Nt(Wds()),TWl=Nt(sJ()),RWl=Nt(p1s()),NWl=Nt($he()),DWl=Nt(Q1s()),kWl=Nt(mGe()),xWl=Nt(z1s()),GWl=Nt(s2s()),o2s=()=>({modules:new Map([["@yarnpkg/cli",nWl],["@yarnpkg/core",iWl],["@yarnpkg/fslib",sWl],["@yarnpkg/libzip",oWl],["@yarnpkg/parsers",aWl],["@yarnpkg/shell",cWl],["clipanion",rg],["semver",lWl],["typanion",mZ],["@atls/yarn-plugin-badges",opr],["@atls/yarn-plugin-changelog",Ufr],["@atls/yarn-plugin-check",Kfr],["@atls/yarn-plugin-checks",r1r],["@atls/yarn-plugin-cli-publish",i1r],["@atls/yarn-plugin-commit",TBr],["@atls/yarn-plugin-essentials",NBr],["@atls/yarn-plugin-export",nTr],["@atls/yarn-plugin-files",SEr],["@atls/yarn-plugin-format",kkr],["@atls/yarn-plugin-image",Jkr],["@atls/yarn-plugin-library",rxr],["@atls/yarn-plugin-lint",lxr],["@atls/yarn-plugin-release",MGr],["@atls/yarn-plugin-renderer",MFr],["@atls/yarn-plugin-service",hVr],["@atls/yarn-plugin-test",vVr],["@atls/yarn-plugin-tools",GVr],["@atls/yarn-plugin-typescript",PVr],["@atls/yarn-plugin-workspaces",FEr],["@atls/yarn-plugin-ui",rPr],["@atls/yarn-plugin-schematics",fYr],["@yarnpkg/plugin-interactive-tools",uWl],["@yarnpkg/plugin-jsr",gWl],["@yarnpkg/plugin-workspace-tools",AWl],["@yarnpkg/plugin-typescript",dWl],["@yarnpkg/plugin-version",pWl],["@yarnpkg/plugin-essentials",fWl],["@yarnpkg/plugin-catalog",IWl],["@yarnpkg/plugin-compat",hWl],["@yarnpkg/plugin-constraints",mWl],["@yarnpkg/plugin-dlx",CWl],["@yarnpkg/plugin-exec",_Wl],["@yarnpkg/plugin-file",yWl],["@yarnpkg/plugin-git",bWl],["@yarnpkg/plugin-github",EWl],["@yarnpkg/plugin-http",SWl],["@yarnpkg/plugin-init",vWl],["@yarnpkg/plugin-link",BWl],["@yarnpkg/plugin-nm",wWl],["@yarnpkg/plugin-npm",TWl],["@yarnpkg/plugin-npm-cli",RWl],["@yarnpkg/plugin-pack",NWl],["@yarnpkg/plugin-patch",DWl],["@yarnpkg/plugin-pnp",kWl],["@yarnpkg/plugin-pnpm",xWl],["@yarnpkg/plugin-stage",GWl]]),plugins:new Set(["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"])});var a2s={name:"@atls/yarn-cli",version:"1.2.16-atls",private:!0,license:"BSD-3-Clause",type:"module",exports:{"./package.json":"./package.json",".":"./src/index.ts"},main:"src/index.ts",files:["dist"],scripts:{build:"yarn run build:schemaic && yarn run build:clean && yarn run build:version && yarn run build:bundle && yarn run build:fix && yarn run build:dist && yarn run build:version","build:bundle":"builder build bundle --no-git-hash && mv bundles/yarn.js bundles/yarn.mjs","build:clean":"rm -rf dist","build:dist":"mv bundles dist","build:fix":"yarn node patches/cli.patch.mjs","build:schemaic":"yarn workspace @atls/code-schematics prepack","build:version":"yarn node patches/version-postfix-toggle.mjs",fix:"yarn run build:fix",prepack:"yarn run build",postpack:"rm -rf dist"},dependencies:{"@atls/yarn-cli-tools":"workspace:*","@atls/yarn-plugin-badges":"workspace:*","@atls/yarn-plugin-changelog":"workspace:*","@atls/yarn-plugin-check":"workspace:*","@atls/yarn-plugin-checks":"workspace:*","@atls/yarn-plugin-cli-publish":"workspace:*","@atls/yarn-plugin-commit":"workspace:*","@atls/yarn-plugin-essentials":"workspace:*","@atls/yarn-plugin-export":"workspace:*","@atls/yarn-plugin-files":"workspace:*","@atls/yarn-plugin-format":"workspace:*","@atls/yarn-plugin-image":"workspace:*","@atls/yarn-plugin-library":"workspace:*","@atls/yarn-plugin-lint":"workspace:*","@atls/yarn-plugin-release":"workspace:*","@atls/yarn-plugin-renderer":"workspace:*","@atls/yarn-plugin-schematics":"workspace:*","@atls/yarn-plugin-service":"workspace:*","@atls/yarn-plugin-test":"workspace:*","@atls/yarn-plugin-tools":"workspace:*","@atls/yarn-plugin-typescript":"workspace:*","@atls/yarn-plugin-ui":"workspace:*","@atls/yarn-plugin-workspaces":"workspace:*","@yarnpkg/builder":"4.2.0","@yarnpkg/cli":"4.14.1","@yarnpkg/core":"4.7.0","@yarnpkg/fslib":"3.1.5","@yarnpkg/libzip":"3.2.2","@yarnpkg/parsers":"3.0.3","@yarnpkg/plugin-catalog":"1.0.2","@yarnpkg/plugin-compat":"4.0.12","@yarnpkg/plugin-constraints":"4.0.5","@yarnpkg/plugin-dlx":"4.0.2","@yarnpkg/plugin-essentials":"4.5.0","@yarnpkg/plugin-exec":"3.1.0","@yarnpkg/plugin-file":"3.0.2","@yarnpkg/plugin-git":"3.2.0","@yarnpkg/plugin-github":"3.0.2","@yarnpkg/plugin-http":"3.0.3","@yarnpkg/plugin-init":"4.1.2","@yarnpkg/plugin-interactive-tools":"4.1.0","@yarnpkg/plugin-jsr":"1.1.1","@yarnpkg/plugin-link":"3.0.2","@yarnpkg/plugin-nm":"4.0.8","@yarnpkg/plugin-npm":"3.5.0","@yarnpkg/plugin-npm-cli":"4.4.1","@yarnpkg/plugin-pack":"4.0.4","@yarnpkg/plugin-patch":"4.0.3","@yarnpkg/plugin-pnp":"4.1.5","@yarnpkg/plugin-pnpm":"2.1.2","@yarnpkg/plugin-stage":"4.0.2","@yarnpkg/plugin-typescript":"4.1.3","@yarnpkg/plugin-version":"4.2.0","@yarnpkg/plugin-workspace-tools":"4.1.7","@yarnpkg/shell":"4.1.3",clipanion:"4.0.0-rc.2",semver:"7.6.3",typanion:"3.14.0"},publishConfig:{access:"public",exports:{"./package.json":"./package.json",".":{import:"./dist/index.js",types:"./dist/index.d.ts",default:"./dist/index.js"}},main:"dist/index.js",types:"dist/index.d.ts"},"@yarnpkg/builder":{bundles:{standard:["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"]}}};var c2s=Yqr.npath.toPortablePath(Yqr.npath.resolve(process.argv[1])),Mqr=o2s(a2s["@yarnpkg/builder"].bundles.standard);Mqr.then?Mqr.then(async e=>{(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:e})}):(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:Mqr}); +${A.stack}`):console.debug(`Error: ${A instanceof Error?A.message:A}`),1}};var pYr=Nt(no(),1);import{mkdir as fAl}from"node:fs/promises";var pAl="dmFyIF9fY3JlYXRlID0gT2JqZWN0LmNyZWF0ZTsKdmFyIF9fZGVmUHJvcCA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eTsKdmFyIF9fZ2V0T3duUHJvcERlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOwp2YXIgX19nZXRPd25Qcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lczsKdmFyIF9fZ2V0UHJvdG9PZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKdmFyIF9faGFzT3duUHJvcCA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7CnZhciBfX2NvbW1vbkpTID0gKGNiLCBtb2QpID0+IGZ1bmN0aW9uIF9fcmVxdWlyZSgpIHsKICByZXR1cm4gbW9kIHx8ICgwLCBjYltfX2dldE93blByb3BOYW1lcyhjYilbMF1dKSgobW9kID0geyBleHBvcnRzOiB7fSB9KS5leHBvcnRzLCBtb2QpLCBtb2QuZXhwb3J0czsKfTsKdmFyIF9fZXhwb3J0ID0gKHRhcmdldCwgYWxsKSA9PiB7CiAgZm9yICh2YXIgbmFtZSBpbiBhbGwpCiAgICBfX2RlZlByb3AodGFyZ2V0LCBuYW1lLCB7IGdldDogYWxsW25hbWVdLCBlbnVtZXJhYmxlOiB0cnVlIH0pOwp9Owp2YXIgX19jb3B5UHJvcHMgPSAodG8sIGZyb20sIGV4Y2VwdCwgZGVzYykgPT4gewogIGlmIChmcm9tICYmIHR5cGVvZiBmcm9tID09PSAib2JqZWN0IiB8fCB0eXBlb2YgZnJvbSA9PT0gImZ1bmN0aW9uIikgewogICAgZm9yIChsZXQga2V5IG9mIF9fZ2V0T3duUHJvcE5hbWVzKGZyb20pKQogICAgICBpZiAoIV9faGFzT3duUHJvcC5jYWxsKHRvLCBrZXkpICYmIGtleSAhPT0gZXhjZXB0KQogICAgICAgIF9fZGVmUHJvcCh0bywga2V5LCB7IGdldDogKCkgPT4gZnJvbVtrZXldLCBlbnVtZXJhYmxlOiAhKGRlc2MgPSBfX2dldE93blByb3BEZXNjKGZyb20sIGtleSkpIHx8IGRlc2MuZW51bWVyYWJsZSB9KTsKICB9CiAgcmV0dXJuIHRvOwp9Owp2YXIgX190b0VTTSA9IChtb2QsIGlzTm9kZU1vZGUsIHRhcmdldCkgPT4gKHRhcmdldCA9IG1vZCAhPSBudWxsID8gX19jcmVhdGUoX19nZXRQcm90b09mKG1vZCkpIDoge30sIF9fY29weVByb3BzKAogIC8vIElmIHRoZSBpbXBvcnRlciBpcyBpbiBub2RlIGNvbXBhdGliaWxpdHkgbW9kZSBvciB0aGlzIGlzIG5vdCBhbiBFU00KICAvLyBmaWxlIHRoYXQgaGFzIGJlZW4gY29udmVydGVkIHRvIGEgQ29tbW9uSlMgZmlsZSB1c2luZyBhIEJhYmVsLQogIC8vIGNvbXBhdGlibGUgdHJhbnNmb3JtIChpLmUuICJfX2VzTW9kdWxlIiBoYXMgbm90IGJlZW4gc2V0KSwgdGhlbiBzZXQKICAvLyAiZGVmYXVsdCIgdG8gdGhlIENvbW1vbkpTICJtb2R1bGUuZXhwb3J0cyIgZm9yIG5vZGUgY29tcGF0aWJpbGl0eS4KICBpc05vZGVNb2RlIHx8ICFtb2QgfHwgIW1vZC5fX2VzTW9kdWxlID8gX19kZWZQcm9wKHRhcmdldCwgImRlZmF1bHQiLCB7IHZhbHVlOiBtb2QsIGVudW1lcmFibGU6IHRydWUgfSkgOiB0YXJnZXQsCiAgbW9kCikpOwp2YXIgX190b0NvbW1vbkpTID0gKG1vZCkgPT4gX19jb3B5UHJvcHMoX19kZWZQcm9wKHt9LCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSksIG1vZCk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNKc29uT2JqZWN0ID0gaXNKc29uT2JqZWN0OwogICAgZXhwb3J0czIuaXNKc29uQXJyYXkgPSBpc0pzb25BcnJheTsKICAgIGZ1bmN0aW9uIGlzSnNvbk9iamVjdCh2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgIT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSnNvbkFycmF5KHZhbHVlKSB7CiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3V0aWxpdHkuanMKdmFyIHJlcXVpcmVfdXRpbGl0eSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdXRpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0VHlwZXNPZlNjaGVtYSA9IGdldFR5cGVzT2ZTY2hlbWE7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciBhbGxUeXBlcyA9IFsic3RyaW5nIiwgImludGVnZXIiLCAibnVtYmVyIiwgIm9iamVjdCIsICJhcnJheSIsICJib29sZWFuIiwgIm51bGwiXTsKICAgIGZ1bmN0aW9uIGdldFR5cGVzT2ZTY2hlbWEoc2NoZW1hMikgewogICAgICBpZiAoIXNjaGVtYTIpIHsKICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBuZXcgU2V0KGFsbFR5cGVzKTsKICAgICAgfQogICAgICBsZXQgcG90ZW50aWFsczsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnR5cGUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFtzY2hlbWEyLnR5cGVdKTsKICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIudHlwZSkpIHsKICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChzY2hlbWEyLnR5cGUpOwogICAgICB9IGVsc2UgaWYgKCgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShzY2hlbWEyLmVudW0pKSB7CiAgICAgICAgcG90ZW50aWFscyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCB2IG9mIHNjaGVtYTIuZW51bSkgewogICAgICAgICAgc3dpdGNoICh0eXBlb2YgdikgewogICAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICBjYXNlICJib29sZWFuIjoKICAgICAgICAgICAgICBwb3RlbnRpYWxzLmFkZCh0eXBlb2Ygdik7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm9iamVjdCI6CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodikpIHsKICAgICAgICAgICAgICAgIHBvdGVudGlhbHMuYWRkKCJhcnJheSIpOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAodiA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm51bGwiKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcG90ZW50aWFscy5hZGQoIm9iamVjdCIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoYWxsVHlwZXMpOwogICAgICB9CiAgICAgIGlmICgoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIubm90KSkgewogICAgICAgIGNvbnN0IG5vdFR5cGVzID0gZ2V0VHlwZXNPZlNjaGVtYShzY2hlbWEyLm5vdCk7CiAgICAgICAgcG90ZW50aWFscyA9IG5ldyBTZXQoWy4uLnBvdGVudGlhbHNdLmZpbHRlcigocCkgPT4gIW5vdFR5cGVzLmhhcyhwKSkpOwogICAgICB9CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIuYWxsT2YpKSB7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbGxPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBwb3RlbnRpYWxzID0gbmV3IFNldChbLi4udHlwZXNdLmZpbHRlcigodCkgPT4gcG90ZW50aWFscy5oYXModCkpKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5vbmVPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5vbmVPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMi5hbnlPZikpIHsKICAgICAgICBsZXQgb3B0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgZm9yIChjb25zdCBzdWIgb2Ygc2NoZW1hMi5hbnlPZikgewogICAgICAgICAgY29uc3QgdHlwZXMgPSBnZXRUeXBlc09mU2NoZW1hKHN1Yik7CiAgICAgICAgICBvcHRpb25zID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWy4uLm9wdGlvbnMsIC4uLnR5cGVzXSk7CiAgICAgICAgfQogICAgICAgIHBvdGVudGlhbHMgPSBuZXcgU2V0KFsuLi5vcHRpb25zXS5maWx0ZXIoKG8pID0+IHBvdGVudGlhbHMuaGFzKG8pKSk7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIucHJvcGVydGllcykgewogICAgICAgIHBvdGVudGlhbHMuYWRkKCJvYmplY3QiKTsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zKSB7CiAgICAgICAgcG90ZW50aWFscy5hZGQoImFycmF5Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvdGVudGlhbHM7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzCnZhciByZXF1aXJlX3RyYW5zZm9ybXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3RyYW5zZm9ybXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFkZFVuZGVmaW5lZERlZmF1bHRzID0gYWRkVW5kZWZpbmVkRGVmYXVsdHM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIHZhciB1dGlsaXR5XzEgPSByZXF1aXJlX3V0aWxpdHkoKTsKICAgIGZ1bmN0aW9uIGFkZFVuZGVmaW5lZERlZmF1bHRzKHZhbHVlLCBfcG9pbnRlciwgc2NoZW1hMikgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIiB8fCBzY2hlbWEyID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgdmFsdWUgPz89IHNjaGVtYTIuZGVmYXVsdDsKICAgICAgY29uc3QgdHlwZXMgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHNjaGVtYTIpOwogICAgICBpZiAodHlwZXMuc2l6ZSA9PT0gMCkgewogICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgfQogICAgICBsZXQgdHlwZTI7CiAgICAgIGlmICh0eXBlcy5zaXplID09PSAxKSB7CiAgICAgICAgdHlwZTIgPSBBcnJheS5mcm9tKHR5cGVzKVswXTsKICAgICAgfSBlbHNlIGlmICh0eXBlcy5zaXplID09PSAyICYmIHR5cGVzLmhhcygiYXJyYXkiKSAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAiYXJyYXkiOwogICAgICB9IGVsc2UgaWYgKHNjaGVtYTIucHJvcGVydGllcyAmJiB0eXBlcy5oYXMoIm9iamVjdCIpKSB7CiAgICAgICAgdHlwZTIgPSAib2JqZWN0IjsKICAgICAgfSBlbHNlIGlmIChzY2hlbWEyLml0ZW1zICYmIHR5cGVzLmhhcygiYXJyYXkiKSkgewogICAgICAgIHR5cGUyID0gImFycmF5IjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlID09IHZvaWQgMCA/IFtdIDogdmFsdWU7CiAgICAgIH0KICAgICAgaWYgKHR5cGUyID09PSAib2JqZWN0IikgewogICAgICAgIGxldCBuZXdWYWx1ZTsKICAgICAgICBpZiAodmFsdWUgPT0gdm9pZCAwKSB7CiAgICAgICAgICBuZXdWYWx1ZSA9IHt9OwogICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIG5ld1ZhbHVlID0gdmFsdWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHNjaGVtYTIucHJvcGVydGllcykpIHsKICAgICAgICAgIHJldHVybiBuZXdWYWx1ZTsKICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbcHJvcE5hbWUsIHNjaGVtYU9iamVjdF0gb2YgT2JqZWN0LmVudHJpZXMoc2NoZW1hMi5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgaWYgKHByb3BOYW1lID09PSAiJHNjaGVtYSIgfHwgISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkoc2NoZW1hT2JqZWN0KSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IG5ld1ZhbHVlW3Byb3BOYW1lXTsKICAgICAgICAgIGlmICh2YWx1ZTIgPT09IHZvaWQgMCkgewogICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBzY2hlbWFPYmplY3QuZGVmYXVsdDsKICAgICAgICAgIH0gZWxzZSBpZiAoKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BlcnR5U2NoZW1hcyA9IHNjaGVtYU9iamVjdC5vbmVPZiB8fCBzY2hlbWFPYmplY3QuYW55T2Y7CiAgICAgICAgICAgIGNvbnN0IGFsbFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh2YWx1ZTIpOwogICAgICAgICAgICBjb25zdCBhZGp1c3RlZFNjaGVtYSA9ICgwLCB1dGlsc18xLmlzSnNvbkFycmF5KShwcm9wZXJ0eVNjaGVtYXMpICYmIHByb3BlcnR5U2NoZW1hcy5maW5kKChzKSA9PiB7CiAgICAgICAgICAgICAgaWYgKCEoMCwgdXRpbHNfMS5pc0pzb25PYmplY3QpKHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNvbnN0IHNjaGVtYVR5cGUgPSAoMCwgdXRpbGl0eV8xLmdldFR5cGVzT2ZTY2hlbWEpKHMpOwogICAgICAgICAgICAgIGlmIChzY2hlbWFUeXBlLnNpemUgPT09IDEgJiYgc2NoZW1hVHlwZS5oYXMoIm9iamVjdCIpICYmICgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkocy5wcm9wZXJ0aWVzKSkgewogICAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKHMucHJvcGVydGllcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gYWxsUHJvcGVydGllcy5ldmVyeSgoa2V5KSA9PiBwcm9wZXJ0aWVzLmluY2x1ZGVzKGtleSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpZiAoYWRqdXN0ZWRTY2hlbWEgJiYgKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KShhZGp1c3RlZFNjaGVtYSkpIHsKICAgICAgICAgICAgICBuZXdWYWx1ZVtwcm9wTmFtZV0gPSBhZGRVbmRlZmluZWREZWZhdWx0cyh2YWx1ZTIsIF9wb2ludGVyLCBhZGp1c3RlZFNjaGVtYSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ld1ZhbHVlOwogICAgICB9CiAgICAgIHJldHVybiB2YWx1ZTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvcG9pbnRlci5qcwp2YXIgcmVxdWlyZV9wb2ludGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9wb2ludGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWlsZEpzb25Qb2ludGVyID0gYnVpbGRKc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLmpvaW5Kc29uUG9pbnRlciA9IGpvaW5Kc29uUG9pbnRlcjsKICAgIGV4cG9ydHMyLnBhcnNlSnNvblBvaW50ZXIgPSBwYXJzZUpzb25Qb2ludGVyOwogICAgZnVuY3Rpb24gYnVpbGRKc29uUG9pbnRlcihmcmFnbWVudHMpIHsKICAgICAgcmV0dXJuICIvIiArIGZyYWdtZW50cy5tYXAoKGYpID0+IHsKICAgICAgICByZXR1cm4gZi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgICB9KS5qb2luKCIvIik7CiAgICB9CiAgICBmdW5jdGlvbiBqb2luSnNvblBvaW50ZXIocm9vdCwgLi4ub3RoZXJzKSB7CiAgICAgIGlmIChyb290ID09ICIvIikgewogICAgICAgIHJldHVybiBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHJvb3QgKyBidWlsZEpzb25Qb2ludGVyKG90aGVycyk7CiAgICB9CiAgICBmdW5jdGlvbiBwYXJzZUpzb25Qb2ludGVyKHBvaW50ZXIpIHsKICAgICAgaWYgKHBvaW50ZXIgPT09ICIiKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICAgIGlmIChwb2ludGVyLmNoYXJBdCgwKSAhPT0gIi8iKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwb2ludGVyOiAiICsgcG9pbnRlcik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBvaW50ZXIuc3Vic3RyaW5nKDEpLnNwbGl0KC9cLy8pLm1hcCgoc3RyMikgPT4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+IikpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMKdmFyIHJlcXVpcmVfY29kZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL2NvZGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBleHBvcnRzMi5zYWZlU3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuYWRkQ29kZUFyZyA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5uaWwgPSBleHBvcnRzMi5fQ29kZSA9IGV4cG9ydHMyLk5hbWUgPSBleHBvcnRzMi5JREVOVElGSUVSID0gZXhwb3J0czIuX0NvZGVPck5hbWUgPSB2b2lkIDA7CiAgICB2YXIgX0NvZGVPck5hbWUgPSBjbGFzcyB7CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGVPck5hbWUgPSBfQ29kZU9yTmFtZTsKICAgIGV4cG9ydHMyLklERU5USUZJRVIgPSAvXlthLXokX11bYS16JF8wLTldKiQvaTsKICAgIHZhciBOYW1lID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIGlmICghZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KHMpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiBuYW1lIG11c3QgYmUgYSB2YWxpZCBpZGVudGlmaWVyIik7CiAgICAgICAgdGhpcy5zdHIgPSBzOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0cjsKICAgICAgfQogICAgICBlbXB0eVN0cigpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB7IFt0aGlzLnN0cl06IDEgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5hbWUgPSBOYW1lOwogICAgdmFyIF9Db2RlID0gY2xhc3MgZXh0ZW5kcyBfQ29kZU9yTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvZGUpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuX2l0ZW1zID0gdHlwZW9mIGNvZGUgPT09ICJzdHJpbmciID8gW2NvZGVdIDogY29kZTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHI7CiAgICAgIH0KICAgICAgZW1wdHlTdHIoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA+IDEpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX2l0ZW1zWzBdOwogICAgICAgIHJldHVybiBpdGVtID09PSAiIiB8fCBpdGVtID09PSAnIiInOwogICAgICB9CiAgICAgIGdldCBzdHIoKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9zdHIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuX3N0ciA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgocywgYykgPT4gYCR7c30ke2N9YCwgIiIpOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIChfYSA9IHRoaXMuX25hbWVzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLl9uYW1lcyA9IHRoaXMuX2l0ZW1zLnJlZHVjZSgobmFtZXMsIGMpID0+IHsKICAgICAgICAgIGlmIChjIGluc3RhbmNlb2YgTmFtZSkKICAgICAgICAgICAgbmFtZXNbYy5zdHJdID0gKG5hbWVzW2Muc3RyXSB8fCAwKSArIDE7CiAgICAgICAgICByZXR1cm4gbmFtZXM7CiAgICAgICAgfSwge30pOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuX0NvZGUgPSBfQ29kZTsKICAgIGV4cG9ydHMyLm5pbCA9IG5ldyBfQ29kZSgiIik7CiAgICBmdW5jdGlvbiBfKHN0cnMsIC4uLmFyZ3MpIHsKICAgICAgY29uc3QgY29kZSA9IFtzdHJzWzBdXTsKICAgICAgbGV0IGkgPSAwOwogICAgICB3aGlsZSAoaSA8IGFyZ3MubGVuZ3RoKSB7CiAgICAgICAgYWRkQ29kZUFyZyhjb2RlLCBhcmdzW2ldKTsKICAgICAgICBjb2RlLnB1c2goc3Ryc1srK2ldKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IF9Db2RlKGNvZGUpOwogICAgfQogICAgZXhwb3J0czIuXyA9IF87CiAgICB2YXIgcGx1cyA9IG5ldyBfQ29kZSgiKyIpOwogICAgZnVuY3Rpb24gc3RyMihzdHJzLCAuLi5hcmdzKSB7CiAgICAgIGNvbnN0IGV4cHIgPSBbc2FmZVN0cmluZ2lmeShzdHJzWzBdKV07CiAgICAgIGxldCBpID0gMDsKICAgICAgd2hpbGUgKGkgPCBhcmdzLmxlbmd0aCkgewogICAgICAgIGV4cHIucHVzaChwbHVzKTsKICAgICAgICBhZGRDb2RlQXJnKGV4cHIsIGFyZ3NbaV0pOwogICAgICAgIGV4cHIucHVzaChwbHVzLCBzYWZlU3RyaW5naWZ5KHN0cnNbKytpXSkpOwogICAgICB9CiAgICAgIG9wdGltaXplKGV4cHIpOwogICAgICByZXR1cm4gbmV3IF9Db2RlKGV4cHIpOwogICAgfQogICAgZXhwb3J0czIuc3RyID0gc3RyMjsKICAgIGZ1bmN0aW9uIGFkZENvZGVBcmcoY29kZSwgYXJnKSB7CiAgICAgIGlmIChhcmcgaW5zdGFuY2VvZiBfQ29kZSkKICAgICAgICBjb2RlLnB1c2goLi4uYXJnLl9pdGVtcyk7CiAgICAgIGVsc2UgaWYgKGFyZyBpbnN0YW5jZW9mIE5hbWUpCiAgICAgICAgY29kZS5wdXNoKGFyZyk7CiAgICAgIGVsc2UKICAgICAgICBjb2RlLnB1c2goaW50ZXJwb2xhdGUoYXJnKSk7CiAgICB9CiAgICBleHBvcnRzMi5hZGRDb2RlQXJnID0gYWRkQ29kZUFyZzsKICAgIGZ1bmN0aW9uIG9wdGltaXplKGV4cHIpIHsKICAgICAgbGV0IGkgPSAxOwogICAgICB3aGlsZSAoaSA8IGV4cHIubGVuZ3RoIC0gMSkgewogICAgICAgIGlmIChleHByW2ldID09PSBwbHVzKSB7CiAgICAgICAgICBjb25zdCByZXMgPSBtZXJnZUV4cHJJdGVtcyhleHByW2kgLSAxXSwgZXhwcltpICsgMV0pOwogICAgICAgICAgaWYgKHJlcyAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIGV4cHIuc3BsaWNlKGkgLSAxLCAzLCByZXMpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGV4cHJbaSsrXSA9ICIrIjsKICAgICAgICB9CiAgICAgICAgaSsrOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZUV4cHJJdGVtcyhhLCBiKSB7CiAgICAgIGlmIChiID09PSAnIiInKQogICAgICAgIHJldHVybiBhOwogICAgICBpZiAoYSA9PT0gJyIiJykKICAgICAgICByZXR1cm4gYjsKICAgICAgaWYgKHR5cGVvZiBhID09ICJzdHJpbmciKSB7CiAgICAgICAgaWYgKGIgaW5zdGFuY2VvZiBOYW1lIHx8IGFbYS5sZW5ndGggLSAxXSAhPT0gJyInKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICh0eXBlb2YgYiAhPSAic3RyaW5nIikKICAgICAgICAgIHJldHVybiBgJHthLnNsaWNlKDAsIC0xKX0ke2J9ImA7CiAgICAgICAgaWYgKGJbMF0gPT09ICciJykKICAgICAgICAgIHJldHVybiBhLnNsaWNlKDAsIC0xKSArIGIuc2xpY2UoMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgYiA9PSAic3RyaW5nIiAmJiBiWzBdID09PSAnIicgJiYgIShhIGluc3RhbmNlb2YgTmFtZSkpCiAgICAgICAgcmV0dXJuIGAiJHthfSR7Yi5zbGljZSgxKX1gOwogICAgICByZXR1cm47CiAgICB9CiAgICBmdW5jdGlvbiBzdHJDb25jYXQoYzEsIGMyKSB7CiAgICAgIHJldHVybiBjMi5lbXB0eVN0cigpID8gYzEgOiBjMS5lbXB0eVN0cigpID8gYzIgOiBzdHIyYCR7YzF9JHtjMn1gOwogICAgfQogICAgZXhwb3J0czIuc3RyQ29uY2F0ID0gc3RyQ29uY2F0OwogICAgZnVuY3Rpb24gaW50ZXJwb2xhdGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gIm51bWJlciIgfHwgdHlwZW9mIHggPT0gImJvb2xlYW4iIHx8IHggPT09IG51bGwgPyB4IDogc2FmZVN0cmluZ2lmeShBcnJheS5pc0FycmF5KHgpID8geC5qb2luKCIsIikgOiB4KTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmluZ2lmeSh4KSB7CiAgICAgIHJldHVybiBuZXcgX0NvZGUoc2FmZVN0cmluZ2lmeSh4KSk7CiAgICB9CiAgICBleHBvcnRzMi5zdHJpbmdpZnkgPSBzdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBzYWZlU3RyaW5naWZ5KHgpIHsKICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHgpLnJlcGxhY2UoL1x1MjAyOC9nLCAiXFx1MjAyOCIpLnJlcGxhY2UoL1x1MjAyOS9nLCAiXFx1MjAyOSIpOwogICAgfQogICAgZXhwb3J0czIuc2FmZVN0cmluZ2lmeSA9IHNhZmVTdHJpbmdpZnk7CiAgICBmdW5jdGlvbiBnZXRQcm9wZXJ0eShrZXkpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBrZXkgPT0gInN0cmluZyIgJiYgZXhwb3J0czIuSURFTlRJRklFUi50ZXN0KGtleSkgPyBuZXcgX0NvZGUoYC4ke2tleX1gKSA6IF9gWyR7a2V5fV1gOwogICAgfQogICAgZXhwb3J0czIuZ2V0UHJvcGVydHkgPSBnZXRQcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIGdldEVzbUV4cG9ydE5hbWUoa2V5KSB7CiAgICAgIGlmICh0eXBlb2Yga2V5ID09ICJzdHJpbmciICYmIGV4cG9ydHMyLklERU5USUZJRVIudGVzdChrZXkpKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfQ29kZShgJHtrZXl9YCk7CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBpbnZhbGlkIGV4cG9ydCBuYW1lOiAke2tleX0sIHVzZSBleHBsaWNpdCAkaWQgbmFtZSBtYXBwaW5nYCk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRFc21FeHBvcnROYW1lID0gZ2V0RXNtRXhwb3J0TmFtZTsKICAgIGZ1bmN0aW9uIHJlZ2V4cENvZGUocngpIHsKICAgICAgcmV0dXJuIG5ldyBfQ29kZShyeC50b1N0cmluZygpKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlZ2V4cENvZGUgPSByZWdleHBDb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9jb2RlZ2VuL3Njb3BlLmpzCnZhciByZXF1aXJlX3Njb3BlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vc2NvcGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlZhbHVlU2NvcGUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IGV4cG9ydHMyLlNjb3BlID0gZXhwb3J0czIudmFyS2luZHMgPSBleHBvcnRzMi5Vc2VkVmFsdWVTdGF0ZSA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBWYWx1ZUVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUpIHsKICAgICAgICBzdXBlcihgQ29kZUdlbjogImNvZGUiIGZvciAke25hbWV9IG5vdCBkZWZpbmVkYCk7CiAgICAgICAgdGhpcy52YWx1ZSA9IG5hbWUudmFsdWU7CiAgICAgIH0KICAgIH07CiAgICB2YXIgVXNlZFZhbHVlU3RhdGU7CiAgICAoZnVuY3Rpb24oVXNlZFZhbHVlU3RhdGUyKSB7CiAgICAgIFVzZWRWYWx1ZVN0YXRlMltVc2VkVmFsdWVTdGF0ZTJbIlN0YXJ0ZWQiXSA9IDBdID0gIlN0YXJ0ZWQiOwogICAgICBVc2VkVmFsdWVTdGF0ZTJbVXNlZFZhbHVlU3RhdGUyWyJDb21wbGV0ZWQiXSA9IDFdID0gIkNvbXBsZXRlZCI7CiAgICB9KShVc2VkVmFsdWVTdGF0ZSB8fCAoZXhwb3J0czIuVXNlZFZhbHVlU3RhdGUgPSBVc2VkVmFsdWVTdGF0ZSA9IHt9KSk7CiAgICBleHBvcnRzMi52YXJLaW5kcyA9IHsKICAgICAgY29uc3Q6IG5ldyBjb2RlXzEuTmFtZSgiY29uc3QiKSwKICAgICAgbGV0OiBuZXcgY29kZV8xLk5hbWUoImxldCIpLAogICAgICB2YXI6IG5ldyBjb2RlXzEuTmFtZSgidmFyIikKICAgIH07CiAgICB2YXIgU2NvcGUgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKHsgcHJlZml4ZXMsIHBhcmVudCB9ID0ge30pIHsKICAgICAgICB0aGlzLl9uYW1lcyA9IHt9OwogICAgICAgIHRoaXMuX3ByZWZpeGVzID0gcHJlZml4ZXM7CiAgICAgICAgdGhpcy5fcGFyZW50ID0gcGFyZW50OwogICAgICB9CiAgICAgIHRvTmFtZShuYW1lT3JQcmVmaXgpIHsKICAgICAgICByZXR1cm4gbmFtZU9yUHJlZml4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBuYW1lT3JQcmVmaXggOiB0aGlzLm5hbWUobmFtZU9yUHJlZml4KTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgY29kZV8xLk5hbWUodGhpcy5fbmV3TmFtZShwcmVmaXgpKTsKICAgICAgfQogICAgICBfbmV3TmFtZShwcmVmaXgpIHsKICAgICAgICBjb25zdCBuZyA9IHRoaXMuX25hbWVzW3ByZWZpeF0gfHwgdGhpcy5fbmFtZUdyb3VwKHByZWZpeCk7CiAgICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke25nLmluZGV4Kyt9YDsKICAgICAgfQogICAgICBfbmFtZUdyb3VwKHByZWZpeCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCgoX2IgPSAoX2EgPSB0aGlzLl9wYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5fcHJlZml4ZXMpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5oYXMocHJlZml4KSkgfHwgdGhpcy5fcHJlZml4ZXMgJiYgIXRoaXMuX3ByZWZpeGVzLmhhcyhwcmVmaXgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvZGVHZW46IHByZWZpeCAiJHtwcmVmaXh9IiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlYCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9uYW1lc1twcmVmaXhdID0geyBwcmVmaXgsIGluZGV4OiAwIH07CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZSA9IFNjb3BlOwogICAgdmFyIFZhbHVlU2NvcGVOYW1lID0gY2xhc3MgZXh0ZW5kcyBjb2RlXzEuTmFtZSB7CiAgICAgIGNvbnN0cnVjdG9yKHByZWZpeCwgbmFtZVN0cikgewogICAgICAgIHN1cGVyKG5hbWVTdHIpOwogICAgICAgIHRoaXMucHJlZml4ID0gcHJlZml4OwogICAgICB9CiAgICAgIHNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5LCBpdGVtSW5kZXggfSkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLnNjb3BlUGF0aCA9ICgwLCBjb2RlXzEuXylgLiR7bmV3IGNvZGVfMS5OYW1lKHByb3BlcnR5KX1bJHtpdGVtSW5kZXh9XWA7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlTmFtZSA9IFZhbHVlU2NvcGVOYW1lOwogICAgdmFyIGxpbmUgPSAoMCwgY29kZV8xLl8pYFxuYDsKICAgIHZhciBWYWx1ZVNjb3BlID0gY2xhc3MgZXh0ZW5kcyBTY29wZSB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMpIHsKICAgICAgICBzdXBlcihvcHRzKTsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9zY29wZSA9IG9wdHMuc2NvcGU7CiAgICAgICAgdGhpcy5vcHRzID0geyAuLi5vcHRzLCBfbjogb3B0cy5saW5lcyA/IGxpbmUgOiBjb2RlXzEubmlsIH07CiAgICAgIH0KICAgICAgZ2V0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9zY29wZTsKICAgICAgfQogICAgICBuYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiBuZXcgVmFsdWVTY29wZU5hbWUocHJlZml4LCB0aGlzLl9uZXdOYW1lKHByZWZpeCkpOwogICAgICB9CiAgICAgIHZhbHVlKG5hbWVPclByZWZpeCwgdmFsdWUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHZhbHVlLnJlZiA9PT0gdm9pZCAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2RlR2VuOiByZWYgbXVzdCBiZSBwYXNzZWQgaW4gdmFsdWUiKTsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy50b05hbWUobmFtZU9yUHJlZml4KTsKICAgICAgICBjb25zdCB7IHByZWZpeCB9ID0gbmFtZTsKICAgICAgICBjb25zdCB2YWx1ZUtleSA9IChfYSA9IHZhbHVlLmtleSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsdWUucmVmOwogICAgICAgIGxldCB2cyA9IHRoaXMuX3ZhbHVlc1twcmVmaXhdOwogICAgICAgIGlmICh2cykgewogICAgICAgICAgY29uc3QgX25hbWUgPSB2cy5nZXQodmFsdWVLZXkpOwogICAgICAgICAgaWYgKF9uYW1lKQogICAgICAgICAgICByZXR1cm4gX25hbWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZzID0gdGhpcy5fdmFsdWVzW3ByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIH0KICAgICAgICB2cy5zZXQodmFsdWVLZXksIG5hbWUpOwogICAgICAgIGNvbnN0IHMgPSB0aGlzLl9zY29wZVtwcmVmaXhdIHx8ICh0aGlzLl9zY29wZVtwcmVmaXhdID0gW10pOwogICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHMubGVuZ3RoOwogICAgICAgIHNbaXRlbUluZGV4XSA9IHZhbHVlLnJlZjsKICAgICAgICBuYW1lLnNldFZhbHVlKHZhbHVlLCB7IHByb3BlcnR5OiBwcmVmaXgsIGl0ZW1JbmRleCB9KTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICBnZXRWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgY29uc3QgdnMgPSB0aGlzLl92YWx1ZXNbcHJlZml4XTsKICAgICAgICBpZiAoIXZzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHJldHVybiB2cy5nZXQoa2V5T3JSZWYpOwogICAgICB9CiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUsIHZhbHVlcyA9IHRoaXMuX3ZhbHVlcykgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUuc2NvcGVQYXRoID09PSB2b2lkIDApCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ29kZUdlbjogbmFtZSAiJHtuYW1lfSIgaGFzIG5vIHZhbHVlYCk7CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVfMS5fKWAke3Njb3BlTmFtZX0ke25hbWUuc2NvcGVQYXRofWA7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgc2NvcGVDb2RlKHZhbHVlcyA9IHRoaXMuX3ZhbHVlcywgdXNlZFZhbHVlcywgZ2V0Q29kZSkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWR1Y2VWYWx1ZXModmFsdWVzLCAobmFtZSkgPT4gewogICAgICAgICAgaWYgKG5hbWUudmFsdWUgPT09IHZvaWQgMCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBuYW1lICIke25hbWV9IiBoYXMgbm8gdmFsdWVgKTsKICAgICAgICAgIHJldHVybiBuYW1lLnZhbHVlLmNvZGU7CiAgICAgICAgfSwgdXNlZFZhbHVlcywgZ2V0Q29kZSk7CiAgICAgIH0KICAgICAgX3JlZHVjZVZhbHVlcyh2YWx1ZXMsIHZhbHVlQ29kZSwgdXNlZFZhbHVlcyA9IHt9LCBnZXRDb2RlKSB7CiAgICAgICAgbGV0IGNvZGUgPSBjb2RlXzEubmlsOwogICAgICAgIGZvciAoY29uc3QgcHJlZml4IGluIHZhbHVlcykgewogICAgICAgICAgY29uc3QgdnMgPSB2YWx1ZXNbcHJlZml4XTsKICAgICAgICAgIGlmICghdnMpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgY29uc3QgbmFtZVNldCA9IHVzZWRWYWx1ZXNbcHJlZml4XSA9IHVzZWRWYWx1ZXNbcHJlZml4XSB8fCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgICAgdnMuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAobmFtZVNldC5oYXMobmFtZSkpCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBuYW1lU2V0LnNldChuYW1lLCBVc2VkVmFsdWVTdGF0ZS5TdGFydGVkKTsKICAgICAgICAgICAgbGV0IGMgPSB2YWx1ZUNvZGUobmFtZSk7CiAgICAgICAgICAgIGlmIChjKSB7CiAgICAgICAgICAgICAgY29uc3QgZGVmID0gdGhpcy5vcHRzLmVzNSA/IGV4cG9ydHMyLnZhcktpbmRzLnZhciA6IGV4cG9ydHMyLnZhcktpbmRzLmNvbnN0OwogICAgICAgICAgICAgIGNvZGUgPSAoMCwgY29kZV8xLl8pYCR7Y29kZX0ke2RlZn0gJHtuYW1lfSA9ICR7Y307JHt0aGlzLm9wdHMuX259YDsKICAgICAgICAgICAgfSBlbHNlIGlmIChjID0gZ2V0Q29kZSA9PT0gbnVsbCB8fCBnZXRDb2RlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBnZXRDb2RlKG5hbWUpKSB7CiAgICAgICAgICAgICAgY29kZSA9ICgwLCBjb2RlXzEuXylgJHtjb2RlfSR7Y30ke3RoaXMub3B0cy5fbn1gOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRocm93IG5ldyBWYWx1ZUVycm9yKG5hbWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5hbWVTZXQuc2V0KG5hbWUsIFVzZWRWYWx1ZVN0YXRlLkNvbXBsZXRlZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGNvZGU7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5WYWx1ZVNjb3BlID0gVmFsdWVTY29wZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvY29kZWdlbi9pbmRleC5qcwp2YXIgcmVxdWlyZV9jb2RlZ2VuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL2NvZGVnZW4vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9yID0gZXhwb3J0czIuYW5kID0gZXhwb3J0czIubm90ID0gZXhwb3J0czIuQ29kZUdlbiA9IGV4cG9ydHMyLm9wZXJhdG9ycyA9IGV4cG9ydHMyLnZhcktpbmRzID0gZXhwb3J0czIuVmFsdWVTY29wZU5hbWUgPSBleHBvcnRzMi5WYWx1ZVNjb3BlID0gZXhwb3J0czIuU2NvcGUgPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIucmVnZXhwQ29kZSA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLmdldFByb3BlcnR5ID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyQ29uY2F0ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IHZvaWQgMDsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUoKTsKICAgIHZhciBzY29wZV8xID0gcmVxdWlyZV9zY29wZSgpOwogICAgdmFyIGNvZGVfMiA9IHJlcXVpcmVfY29kZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyQ29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLnN0ckNvbmNhdDsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdldFByb3BlcnR5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZV8yLmdldFByb3BlcnR5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ2lmeSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5zdHJpbmdpZnk7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVnZXhwQ29kZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVfMi5yZWdleHBDb2RlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlXzIuTmFtZTsKICAgIH0gfSk7CiAgICB2YXIgc2NvcGVfMiA9IHJlcXVpcmVfc2NvcGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5TY29wZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWx1ZVNjb3BlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZhbHVlU2NvcGVOYW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2NvcGVfMi5WYWx1ZVNjb3BlTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ2YXJLaW5kcyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjb3BlXzIudmFyS2luZHM7CiAgICB9IH0pOwogICAgZXhwb3J0czIub3BlcmF0b3JzID0gewogICAgICBHVDogbmV3IGNvZGVfMS5fQ29kZSgiPiIpLAogICAgICBHVEU6IG5ldyBjb2RlXzEuX0NvZGUoIj49IiksCiAgICAgIExUOiBuZXcgY29kZV8xLl9Db2RlKCI8IiksCiAgICAgIExURTogbmV3IGNvZGVfMS5fQ29kZSgiPD0iKSwKICAgICAgRVE6IG5ldyBjb2RlXzEuX0NvZGUoIj09PSIpLAogICAgICBORVE6IG5ldyBjb2RlXzEuX0NvZGUoIiE9PSIpLAogICAgICBOT1Q6IG5ldyBjb2RlXzEuX0NvZGUoIiEiKSwKICAgICAgT1I6IG5ldyBjb2RlXzEuX0NvZGUoInx8IiksCiAgICAgIEFORDogbmV3IGNvZGVfMS5fQ29kZSgiJiYiKSwKICAgICAgQUREOiBuZXcgY29kZV8xLl9Db2RlKCIrIikKICAgIH07CiAgICB2YXIgTm9kZSA9IGNsYXNzIHsKICAgICAgb3B0aW1pemVOb2RlcygpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKF9uYW1lcywgX2NvbnN0YW50cykgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgdmFyIERlZiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKHZhcktpbmQsIG5hbWUsIHJocykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucmhzID0gcmhzOwogICAgICB9CiAgICAgIHJlbmRlcih7IGVzNSwgX24gfSkgewogICAgICAgIGNvbnN0IHZhcktpbmQgPSBlczUgPyBzY29wZV8xLnZhcktpbmRzLnZhciA6IHRoaXMudmFyS2luZDsKICAgICAgICBjb25zdCByaHMgPSB0aGlzLnJocyA9PT0gdm9pZCAwID8gIiIgOiBgID0gJHt0aGlzLnJoc31gOwogICAgICAgIHJldHVybiBgJHt2YXJLaW5kfSAke3RoaXMubmFtZX0ke3Joc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghbmFtZXNbdGhpcy5uYW1lLnN0cl0pCiAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKHRoaXMucmhzKQogICAgICAgICAgdGhpcy5yaHMgPSBvcHRpbWl6ZUV4cHIodGhpcy5yaHMsIG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5yaHMgaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyB0aGlzLnJocy5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbiA9IGNsYXNzIGV4dGVuZHMgTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5saHMgPSBsaHM7CiAgICAgICAgdGhpcy5yaHMgPSByaHM7CiAgICAgICAgdGhpcy5zaWRlRWZmZWN0cyA9IHNpZGVFZmZlY3RzOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYCR7dGhpcy5saHN9ID0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICh0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lICYmICFuYW1lc1t0aGlzLmxocy5zdHJdICYmICF0aGlzLnNpZGVFZmZlY3RzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMucmhzID0gb3B0aW1pemVFeHByKHRoaXMucmhzLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSB0aGlzLmxocyBpbnN0YW5jZW9mIGNvZGVfMS5OYW1lID8ge30gOiB7IC4uLnRoaXMubGhzLm5hbWVzIH07CiAgICAgICAgcmV0dXJuIGFkZEV4cHJOYW1lcyhuYW1lcywgdGhpcy5yaHMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEFzc2lnbk9wID0gY2xhc3MgZXh0ZW5kcyBBc3NpZ24gewogICAgICBjb25zdHJ1Y3RvcihsaHMsIG9wLCByaHMsIHNpZGVFZmZlY3RzKSB7CiAgICAgICAgc3VwZXIobGhzLCByaHMsIHNpZGVFZmZlY3RzKTsKICAgICAgICB0aGlzLm9wID0gb3A7CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxoc30gJHt0aGlzLm9wfT0gJHt0aGlzLnJoc307YCArIF9uOwogICAgICB9CiAgICB9OwogICAgdmFyIExhYmVsID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IobGFiZWwpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbDsKICAgICAgICB0aGlzLm5hbWVzID0ge307CiAgICAgIH0KICAgICAgcmVuZGVyKHsgX24gfSkgewogICAgICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfTpgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgQnJlYWsgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihsYWJlbCkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICAgIHRoaXMubmFtZXMgPSB7fTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsID8gYCAke3RoaXMubGFiZWx9YCA6ICIiOwogICAgICAgIHJldHVybiBgYnJlYWske2xhYmVsfTtgICsgX247CiAgICAgIH0KICAgIH07CiAgICB2YXIgVGhyb3cgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3RvcihlcnJvcikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yOwogICAgICB9CiAgICAgIHJlbmRlcih7IF9uIH0pIHsKICAgICAgICByZXR1cm4gYHRocm93ICR7dGhpcy5lcnJvcn07YCArIF9uOwogICAgICB9CiAgICAgIGdldCBuYW1lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5lcnJvci5uYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBBbnlDb2RlID0gY2xhc3MgZXh0ZW5kcyBOb2RlIHsKICAgICAgY29uc3RydWN0b3IoY29kZSkgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5jb2RlID0gY29kZTsKICAgICAgfQogICAgICByZW5kZXIoeyBfbiB9KSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX07YCArIF9uOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgcmV0dXJuIGAke3RoaXMuY29kZX1gID8gdGhpcyA6IHZvaWQgMDsKICAgICAgfQogICAgICBvcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpIHsKICAgICAgICB0aGlzLmNvZGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5jb2RlLCBuYW1lcywgY29uc3RhbnRzKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBnZXQgbmFtZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29kZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZU9yTmFtZSA/IHRoaXMuY29kZS5uYW1lcyA6IHt9OwogICAgICB9CiAgICB9OwogICAgdmFyIFBhcmVudE5vZGUgPSBjbGFzcyBleHRlbmRzIE5vZGUgewogICAgICBjb25zdHJ1Y3Rvcihub2RlcyA9IFtdKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5vZGVzID0gbm9kZXM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5ub2Rlcy5yZWR1Y2UoKGNvZGUsIG4pID0+IGNvZGUgKyBuLnJlbmRlcihvcHRzKSwgIiIpOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV0ub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobikpCiAgICAgICAgICAgIG5vZGVzLnNwbGljZShpLCAxLCAuLi5uKTsKICAgICAgICAgIGVsc2UgaWYgKG4pCiAgICAgICAgICAgIG5vZGVzW2ldID0gbjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgY29uc3QgeyBub2RlcyB9ID0gdGhpczsKICAgICAgICBsZXQgaSA9IG5vZGVzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSB7CiAgICAgICAgICBjb25zdCBuID0gbm9kZXNbaV07CiAgICAgICAgICBpZiAobi5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIHN1YnRyYWN0TmFtZXMobmFtZXMsIG4ubmFtZXMpOwogICAgICAgICAgbm9kZXMuc3BsaWNlKGksIDEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZXMubGVuZ3RoID4gMCA/IHRoaXMgOiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLm5vZGVzLnJlZHVjZSgobmFtZXMsIG4pID0+IGFkZE5hbWVzKG5hbWVzLCBuLm5hbWVzKSwge30pOwogICAgICB9CiAgICB9OwogICAgdmFyIEJsb2NrTm9kZSA9IGNsYXNzIGV4dGVuZHMgUGFyZW50Tm9kZSB7CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgcmV0dXJuICJ7IiArIG9wdHMuX24gKyBzdXBlci5yZW5kZXIob3B0cykgKyAifSIgKyBvcHRzLl9uOwogICAgICB9CiAgICB9OwogICAgdmFyIFJvb3QgPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgfTsKICAgIHZhciBFbHNlID0gY2xhc3MgZXh0ZW5kcyBCbG9ja05vZGUgewogICAgfTsKICAgIEVsc2Uua2luZCA9ICJlbHNlIjsKICAgIHZhciBJZiA9IGNsYXNzIF9JZiBleHRlbmRzIEJsb2NrTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGNvbmRpdGlvbiwgbm9kZXMpIHsKICAgICAgICBzdXBlcihub2Rlcyk7CiAgICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9IGBpZigke3RoaXMuY29uZGl0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmVsc2UpCiAgICAgICAgICBjb2RlICs9ICJlbHNlICIgKyB0aGlzLmVsc2UucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgc3VwZXIub3B0aW1pemVOb2RlcygpOwogICAgICAgIGNvbnN0IGNvbmQgPSB0aGlzLmNvbmRpdGlvbjsKICAgICAgICBpZiAoY29uZCA9PT0gdHJ1ZSkKICAgICAgICAgIHJldHVybiB0aGlzLm5vZGVzOwogICAgICAgIGxldCBlID0gdGhpcy5lbHNlOwogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBjb25zdCBucyA9IGUub3B0aW1pemVOb2RlcygpOwogICAgICAgICAgZSA9IHRoaXMuZWxzZSA9IEFycmF5LmlzQXJyYXkobnMpID8gbmV3IEVsc2UobnMpIDogbnM7CiAgICAgICAgfQogICAgICAgIGlmIChlKSB7CiAgICAgICAgICBpZiAoY29uZCA9PT0gZmFsc2UpCiAgICAgICAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgX0lmID8gZSA6IGUubm9kZXM7CiAgICAgICAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgICAgcmV0dXJuIG5ldyBfSWYobm90KGNvbmQpLCBlIGluc3RhbmNlb2YgX0lmID8gW2VdIDogZS5ub2Rlcyk7CiAgICAgICAgfQogICAgICAgIGlmIChjb25kID09PSBmYWxzZSB8fCAhdGhpcy5ub2Rlcy5sZW5ndGgpCiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLmVsc2UgPSAoX2EgPSB0aGlzLmVsc2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIGlmICghKHN1cGVyLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgfHwgdGhpcy5lbHNlKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLmNvbmRpdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLmNvbmRpdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgYWRkRXhwck5hbWVzKG5hbWVzLCB0aGlzLmNvbmRpdGlvbik7CiAgICAgICAgaWYgKHRoaXMuZWxzZSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmVsc2UubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIElmLmtpbmQgPSAiaWYiOwogICAgdmFyIEZvciA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgIH07CiAgICBGb3Iua2luZCA9ICJmb3IiOwogICAgdmFyIEZvckxvb3AgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGl0ZXJhdGlvbikgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy5pdGVyYXRpb24gPSBpdGVyYXRpb247CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMuaXRlcmF0aW9ufSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICAgIG9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cykgewogICAgICAgIGlmICghc3VwZXIub3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICB0aGlzLml0ZXJhdGlvbiA9IG9wdGltaXplRXhwcih0aGlzLml0ZXJhdGlvbiwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYXRpb24ubmFtZXMpOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvclJhbmdlID0gY2xhc3MgZXh0ZW5kcyBGb3IgewogICAgICBjb25zdHJ1Y3Rvcih2YXJLaW5kLCBuYW1lLCBmcm9tLCB0bykgewogICAgICAgIHN1cGVyKCk7CiAgICAgICAgdGhpcy52YXJLaW5kID0gdmFyS2luZDsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMuZnJvbSA9IGZyb207CiAgICAgICAgdGhpcy50byA9IHRvOwogICAgICB9CiAgICAgIHJlbmRlcihvcHRzKSB7CiAgICAgICAgY29uc3QgdmFyS2luZCA9IG9wdHMuZXM1ID8gc2NvcGVfMS52YXJLaW5kcy52YXIgOiB0aGlzLnZhcktpbmQ7CiAgICAgICAgY29uc3QgeyBuYW1lLCBmcm9tLCB0byB9ID0gdGhpczsKICAgICAgICByZXR1cm4gYGZvcigke3ZhcktpbmR9ICR7bmFtZX09JHtmcm9tfTsgJHtuYW1lfTwke3RvfTsgJHtuYW1lfSsrKWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gYWRkRXhwck5hbWVzKHN1cGVyLm5hbWVzLCB0aGlzLmZyb20pOwogICAgICAgIHJldHVybiBhZGRFeHByTmFtZXMobmFtZXMsIHRoaXMudG8pOwogICAgICB9CiAgICB9OwogICAgdmFyIEZvckl0ZXIgPSBjbGFzcyBleHRlbmRzIEZvciB7CiAgICAgIGNvbnN0cnVjdG9yKGxvb3AsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLmxvb3AgPSBsb29wOwogICAgICAgIHRoaXMudmFyS2luZCA9IHZhcktpbmQ7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLml0ZXJhYmxlID0gaXRlcmFibGU7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gYGZvcigke3RoaXMudmFyS2luZH0gJHt0aGlzLm5hbWV9ICR7dGhpcy5sb29wfSAke3RoaXMuaXRlcmFibGV9KWAgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgaWYgKCFzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHRoaXMuaXRlcmFibGUgPSBvcHRpbWl6ZUV4cHIodGhpcy5pdGVyYWJsZSwgbmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIHJldHVybiBhZGROYW1lcyhzdXBlci5uYW1lcywgdGhpcy5pdGVyYWJsZS5uYW1lcyk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgRnVuYyA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgYXJncywgYXN5bmMpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5hcmdzID0gYXJnczsKICAgICAgICB0aGlzLmFzeW5jID0gYXN5bmM7CiAgICAgIH0KICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBjb25zdCBfYXN5bmMgPSB0aGlzLmFzeW5jID8gImFzeW5jICIgOiAiIjsKICAgICAgICByZXR1cm4gYCR7X2FzeW5jfWZ1bmN0aW9uICR7dGhpcy5uYW1lfSgke3RoaXMuYXJnc30pYCArIHN1cGVyLnJlbmRlcihvcHRzKTsKICAgICAgfQogICAgfTsKICAgIEZ1bmMua2luZCA9ICJmdW5jIjsKICAgIHZhciBSZXR1cm4gPSBjbGFzcyBleHRlbmRzIFBhcmVudE5vZGUgewogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiAicmV0dXJuICIgKyBzdXBlci5yZW5kZXIob3B0cyk7CiAgICAgIH0KICAgIH07CiAgICBSZXR1cm4ua2luZCA9ICJyZXR1cm4iOwogICAgdmFyIFRyeSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICBsZXQgY29kZSA9ICJ0cnkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICAgIGlmICh0aGlzLmNhdGNoKQogICAgICAgICAgY29kZSArPSB0aGlzLmNhdGNoLnJlbmRlcihvcHRzKTsKICAgICAgICBpZiAodGhpcy5maW5hbGx5KQogICAgICAgICAgY29kZSArPSB0aGlzLmZpbmFsbHkucmVuZGVyKG9wdHMpOwogICAgICAgIHJldHVybiBjb2RlOwogICAgICB9CiAgICAgIG9wdGltaXplTm9kZXMoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgKF9hID0gdGhpcy5jYXRjaCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplTm9kZXMoKTsKICAgICAgICAoX2IgPSB0aGlzLmZpbmFsbHkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgb3B0aW1pemVOYW1lcyhuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBzdXBlci5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYSA9IHRoaXMuY2F0Y2gpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vcHRpbWl6ZU5hbWVzKG5hbWVzLCBjb25zdGFudHMpOwogICAgICAgIChfYiA9IHRoaXMuZmluYWxseSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm9wdGltaXplTmFtZXMobmFtZXMsIGNvbnN0YW50cyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IG5hbWVzKCkgewogICAgICAgIGNvbnN0IG5hbWVzID0gc3VwZXIubmFtZXM7CiAgICAgICAgaWYgKHRoaXMuY2F0Y2gpCiAgICAgICAgICBhZGROYW1lcyhuYW1lcywgdGhpcy5jYXRjaC5uYW1lcyk7CiAgICAgICAgaWYgKHRoaXMuZmluYWxseSkKICAgICAgICAgIGFkZE5hbWVzKG5hbWVzLCB0aGlzLmZpbmFsbHkubmFtZXMpOwogICAgICAgIHJldHVybiBuYW1lczsKICAgICAgfQogICAgfTsKICAgIHZhciBDYXRjaCA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgY29uc3RydWN0b3IoZXJyb3IpIHsKICAgICAgICBzdXBlcigpOwogICAgICAgIHRoaXMuZXJyb3IgPSBlcnJvcjsKICAgICAgfQogICAgICByZW5kZXIob3B0cykgewogICAgICAgIHJldHVybiBgY2F0Y2goJHt0aGlzLmVycm9yfSlgICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgQ2F0Y2gua2luZCA9ICJjYXRjaCI7CiAgICB2YXIgRmluYWxseSA9IGNsYXNzIGV4dGVuZHMgQmxvY2tOb2RlIHsKICAgICAgcmVuZGVyKG9wdHMpIHsKICAgICAgICByZXR1cm4gImZpbmFsbHkiICsgc3VwZXIucmVuZGVyKG9wdHMpOwogICAgICB9CiAgICB9OwogICAgRmluYWxseS5raW5kID0gImZpbmFsbHkiOwogICAgdmFyIENvZGVHZW4gPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGV4dFNjb3BlLCBvcHRzID0ge30pIHsKICAgICAgICB0aGlzLl92YWx1ZXMgPSB7fTsKICAgICAgICB0aGlzLl9ibG9ja1N0YXJ0cyA9IFtdOwogICAgICAgIHRoaXMuX2NvbnN0YW50cyA9IHt9OwogICAgICAgIHRoaXMub3B0cyA9IHsgLi4ub3B0cywgX246IG9wdHMubGluZXMgPyAiXG4iIDogIiIgfTsKICAgICAgICB0aGlzLl9leHRTY29wZSA9IGV4dFNjb3BlOwogICAgICAgIHRoaXMuX3Njb3BlID0gbmV3IHNjb3BlXzEuU2NvcGUoeyBwYXJlbnQ6IGV4dFNjb3BlIH0pOwogICAgICAgIHRoaXMuX25vZGVzID0gW25ldyBSb290KCldOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnJlbmRlcih0aGlzLm9wdHMpOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgdW5pcXVlIG5hbWUgaW4gdGhlIGludGVybmFsIHNjb3BlCiAgICAgIG5hbWUocHJlZml4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Njb3BlLm5hbWUocHJlZml4KTsKICAgICAgfQogICAgICAvLyByZXNlcnZlcyB1bmlxdWUgbmFtZSBpbiB0aGUgZXh0ZXJuYWwgc2NvcGUKICAgICAgc2NvcGVOYW1lKHByZWZpeCkgewogICAgICAgIHJldHVybiB0aGlzLl9leHRTY29wZS5uYW1lKHByZWZpeCk7CiAgICAgIH0KICAgICAgLy8gcmVzZXJ2ZXMgdW5pcXVlIG5hbWUgaW4gdGhlIGV4dGVybmFsIHNjb3BlIGFuZCBhc3NpZ25zIHZhbHVlIHRvIGl0CiAgICAgIHNjb3BlVmFsdWUocHJlZml4T3JOYW1lLCB2YWx1ZSkgewogICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9leHRTY29wZS52YWx1ZShwcmVmaXhPck5hbWUsIHZhbHVlKTsKICAgICAgICBjb25zdCB2cyA9IHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gfHwgKHRoaXMuX3ZhbHVlc1tuYW1lLnByZWZpeF0gPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKTsKICAgICAgICB2cy5hZGQobmFtZSk7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgIH0KICAgICAgZ2V0U2NvcGVWYWx1ZShwcmVmaXgsIGtleU9yUmVmKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLmdldFZhbHVlKHByZWZpeCwga2V5T3JSZWYpOwogICAgICB9CiAgICAgIC8vIHJldHVybiBjb2RlIHRoYXQgYXNzaWducyB2YWx1ZXMgaW4gdGhlIGV4dGVybmFsIHNjb3BlIHRvIHRoZSBuYW1lcyB0aGF0IGFyZSB1c2VkIGludGVybmFsbHkKICAgICAgLy8gKHNhbWUgbmFtZXMgdGhhdCB3ZXJlIHJldHVybmVkIGJ5IGdlbi5zY29wZU5hbWUgb3IgZ2VuLnNjb3BlVmFsdWUpCiAgICAgIHNjb3BlUmVmcyhzY29wZU5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXh0U2NvcGUuc2NvcGVSZWZzKHNjb3BlTmFtZSwgdGhpcy5fdmFsdWVzKTsKICAgICAgfQogICAgICBzY29wZUNvZGUoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2V4dFNjb3BlLnNjb3BlQ29kZSh0aGlzLl92YWx1ZXMpOwogICAgICB9CiAgICAgIF9kZWYodmFyS2luZCwgbmFtZU9yUHJlZml4LCByaHMsIGNvbnN0YW50KSB7CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIGlmIChyaHMgIT09IHZvaWQgMCAmJiBjb25zdGFudCkKICAgICAgICAgIHRoaXMuX2NvbnN0YW50c1tuYW1lLnN0cl0gPSByaHM7CiAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IERlZih2YXJLaW5kLCBuYW1lLCByaHMpKTsKICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgfQogICAgICAvLyBgY29uc3RgIGRlY2xhcmF0aW9uIChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgY29uc3QobmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWYoc2NvcGVfMS52YXJLaW5kcy5jb25zdCwgbmFtZU9yUHJlZml4LCByaHMsIF9jb25zdGFudCk7CiAgICAgIH0KICAgICAgLy8gYGxldGAgZGVjbGFyYXRpb24gd2l0aCBvcHRpb25hbCBhc3NpZ25tZW50IChgdmFyYCBpbiBlczUgbW9kZSkKICAgICAgbGV0KG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMubGV0LCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBgdmFyYCBkZWNsYXJhdGlvbiB3aXRoIG9wdGlvbmFsIGFzc2lnbm1lbnQKICAgICAgdmFyKG5hbWVPclByZWZpeCwgcmhzLCBfY29uc3RhbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVmKHNjb3BlXzEudmFyS2luZHMudmFyLCBuYW1lT3JQcmVmaXgsIHJocywgX2NvbnN0YW50KTsKICAgICAgfQogICAgICAvLyBhc3NpZ25tZW50IGNvZGUKICAgICAgYXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQXNzaWduKGxocywgcmhzLCBzaWRlRWZmZWN0cykpOwogICAgICB9CiAgICAgIC8vIGArPWAgY29kZQogICAgICBhZGQobGhzLCByaHMpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbGVhZk5vZGUobmV3IEFzc2lnbk9wKGxocywgZXhwb3J0czIub3BlcmF0b3JzLkFERCwgcmhzKSk7CiAgICAgIH0KICAgICAgLy8gYXBwZW5kcyBwYXNzZWQgU2FmZUV4cHIgdG8gY29kZSBvciBleGVjdXRlcyBCbG9jawogICAgICBjb2RlKGMpIHsKICAgICAgICBpZiAodHlwZW9mIGMgPT0gImZ1bmN0aW9uIikKICAgICAgICAgIGMoKTsKICAgICAgICBlbHNlIGlmIChjICE9PSBjb2RlXzEubmlsKQogICAgICAgICAgdGhpcy5fbGVhZk5vZGUobmV3IEFueUNvZGUoYykpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIHJldHVybnMgY29kZSBmb3Igb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSBwYXNzZWQgYXJndW1lbnQgbGlzdCBvZiBrZXktdmFsdWUgcGFpcnMKICAgICAgb2JqZWN0KC4uLmtleVZhbHVlcykgewogICAgICAgIGNvbnN0IGNvZGUgPSBbInsiXTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBrZXlWYWx1ZXMpIHsKICAgICAgICAgIGlmIChjb2RlLmxlbmd0aCA+IDEpCiAgICAgICAgICAgIGNvZGUucHVzaCgiLCIpOwogICAgICAgICAgY29kZS5wdXNoKGtleSk7CiAgICAgICAgICBpZiAoa2V5ICE9PSB2YWx1ZSB8fCB0aGlzLm9wdHMuZXM1KSB7CiAgICAgICAgICAgIGNvZGUucHVzaCgiOiIpOwogICAgICAgICAgICAoMCwgY29kZV8xLmFkZENvZGVBcmcpKGNvZGUsIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29kZS5wdXNoKCJ9Iik7CiAgICAgICAgcmV0dXJuIG5ldyBjb2RlXzEuX0NvZGUoY29kZSk7CiAgICAgIH0KICAgICAgLy8gYGlmYCBjbGF1c2UgKG9yIHN0YXRlbWVudCBpZiBgdGhlbkJvZHlgIGFuZCwgb3B0aW9uYWxseSwgYGVsc2VCb2R5YCBhcmUgcGFzc2VkKQogICAgICBpZihjb25kaXRpb24sIHRoZW5Cb2R5LCBlbHNlQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShuZXcgSWYoY29uZGl0aW9uKSk7CiAgICAgICAgaWYgKHRoZW5Cb2R5ICYmIGVsc2VCb2R5KSB7CiAgICAgICAgICB0aGlzLmNvZGUodGhlbkJvZHkpLmVsc2UoKS5jb2RlKGVsc2VCb2R5KS5lbmRJZigpOwogICAgICAgIH0gZWxzZSBpZiAodGhlbkJvZHkpIHsKICAgICAgICAgIHRoaXMuY29kZSh0aGVuQm9keSkuZW5kSWYoKTsKICAgICAgICB9IGVsc2UgaWYgKGVsc2VCb2R5KSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJlbHNlIiBib2R5IHdpdGhvdXQgInRoZW4iIGJvZHknKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLy8gYGVsc2UgaWZgIGNsYXVzZSAtIGludmFsaWQgd2l0aG91dCBgaWZgIG9yIGFmdGVyIGBlbHNlYCBjbGF1c2VzCiAgICAgIGVsc2VJZihjb25kaXRpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IElmKGNvbmRpdGlvbikpOwogICAgICB9CiAgICAgIC8vIGBlbHNlYCBjbGF1c2UgLSBvbmx5IHZhbGlkIGFmdGVyIGBpZmAgb3IgYGVsc2UgaWZgIGNsYXVzZXMKICAgICAgZWxzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZWxzZU5vZGUobmV3IEVsc2UoKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBpZmAgc3RhdGVtZW50IChuZWVkZWQgaWYgZ2VuLmlmIHdhcyB1c2VkIG9ubHkgd2l0aCBjb25kaXRpb24pCiAgICAgIGVuZElmKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoSWYsIEVsc2UpOwogICAgICB9CiAgICAgIF9mb3Iobm9kZSwgZm9yQm9keSkgewogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICBpZiAoZm9yQm9keSkKICAgICAgICAgIHRoaXMuY29kZShmb3JCb2R5KS5lbmRGb3IoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBhIGdlbmVyaWMgYGZvcmAgY2xhdXNlIChvciBzdGF0ZW1lbnQgaWYgYGZvckJvZHlgIGlzIHBhc3NlZCkKICAgICAgZm9yKGl0ZXJhdGlvbiwgZm9yQm9keSkgewogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckxvb3AoaXRlcmF0aW9uKSwgZm9yQm9keSk7CiAgICAgIH0KICAgICAgLy8gYGZvcmAgc3RhdGVtZW50IGZvciBhIHJhbmdlIG9mIHZhbHVlcwogICAgICBmb3JSYW5nZShuYW1lT3JQcmVmaXgsIGZyb20sIHRvLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5sZXQpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcihuZXcgRm9yUmFuZ2UodmFyS2luZCwgbmFtZSwgZnJvbSwgdG8pLCAoKSA9PiBmb3JCb2R5KG5hbWUpKTsKICAgICAgfQogICAgICAvLyBgZm9yLW9mYCBzdGF0ZW1lbnQgKGluIGVzNSBtb2RlIHJlcGxhY2Ugd2l0aCBhIG5vcm1hbCBmb3IgbG9vcCkKICAgICAgZm9yT2YobmFtZU9yUHJlZml4LCBpdGVyYWJsZSwgZm9yQm9keSwgdmFyS2luZCA9IHNjb3BlXzEudmFyS2luZHMuY29uc3QpIHsKICAgICAgICBjb25zdCBuYW1lID0gdGhpcy5fc2NvcGUudG9OYW1lKG5hbWVPclByZWZpeCk7CiAgICAgICAgaWYgKHRoaXMub3B0cy5lczUpIHsKICAgICAgICAgIGNvbnN0IGFyciA9IGl0ZXJhYmxlIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyBpdGVyYWJsZSA6IHRoaXMudmFyKCJfYXJyIiwgaXRlcmFibGUpOwogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yUmFuZ2UoIl9pIiwgMCwgKDAsIGNvZGVfMS5fKWAke2Fycn0ubGVuZ3RoYCwgKGkpID0+IHsKICAgICAgICAgICAgdGhpcy52YXIobmFtZSwgKDAsIGNvZGVfMS5fKWAke2Fycn1bJHtpfV1gKTsKICAgICAgICAgICAgZm9yQm9keShuYW1lKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fZm9yKG5ldyBGb3JJdGVyKCJvZiIsIHZhcktpbmQsIG5hbWUsIGl0ZXJhYmxlKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gYGZvci1pbmAgc3RhdGVtZW50LgogICAgICAvLyBXaXRoIG9wdGlvbiBgb3duUHJvcGVydGllc2AgcmVwbGFjZWQgd2l0aCBhIGBmb3Itb2ZgIGxvb3AgZm9yIG9iamVjdCBrZXlzCiAgICAgIGZvckluKG5hbWVPclByZWZpeCwgb2JqLCBmb3JCb2R5LCB2YXJLaW5kID0gdGhpcy5vcHRzLmVzNSA/IHNjb3BlXzEudmFyS2luZHMudmFyIDogc2NvcGVfMS52YXJLaW5kcy5jb25zdCkgewogICAgICAgIGlmICh0aGlzLm9wdHMub3duUHJvcGVydGllcykgewogICAgICAgICAgcmV0dXJuIHRoaXMuZm9yT2YobmFtZU9yUHJlZml4LCAoMCwgY29kZV8xLl8pYE9iamVjdC5rZXlzKCR7b2JqfSlgLCBmb3JCb2R5KTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuX3Njb3BlLnRvTmFtZShuYW1lT3JQcmVmaXgpOwogICAgICAgIHJldHVybiB0aGlzLl9mb3IobmV3IEZvckl0ZXIoImluIiwgdmFyS2luZCwgbmFtZSwgb2JqKSwgKCkgPT4gZm9yQm9keShuYW1lKSk7CiAgICAgIH0KICAgICAgLy8gZW5kIGBmb3JgIGxvb3AKICAgICAgZW5kRm9yKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRm9yKTsKICAgICAgfQogICAgICAvLyBgbGFiZWxgIHN0YXRlbWVudAogICAgICBsYWJlbChsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgTGFiZWwobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgYnJlYWtgIHN0YXRlbWVudAogICAgICBicmVhayhsYWJlbCkgewogICAgICAgIHJldHVybiB0aGlzLl9sZWFmTm9kZShuZXcgQnJlYWsobGFiZWwpKTsKICAgICAgfQogICAgICAvLyBgcmV0dXJuYCBzdGF0ZW1lbnQKICAgICAgcmV0dXJuKHZhbHVlKSB7CiAgICAgICAgY29uc3Qgbm9kZSA9IG5ldyBSZXR1cm4oKTsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobm9kZSk7CiAgICAgICAgdGhpcy5jb2RlKHZhbHVlKTsKICAgICAgICBpZiAobm9kZS5ub2Rlcy5sZW5ndGggIT09IDEpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvZGVHZW46ICJyZXR1cm4iIHNob3VsZCBoYXZlIG9uZSBub2RlJyk7CiAgICAgICAgcmV0dXJuIHRoaXMuX2VuZEJsb2NrTm9kZShSZXR1cm4pOwogICAgICB9CiAgICAgIC8vIGB0cnlgIHN0YXRlbWVudAogICAgICB0cnkodHJ5Qm9keSwgY2F0Y2hDb2RlLCBmaW5hbGx5Q29kZSkgewogICAgICAgIGlmICghY2F0Y2hDb2RlICYmICFmaW5hbGx5Q29kZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogInRyeSIgd2l0aG91dCAiY2F0Y2giIGFuZCAiZmluYWxseSInKTsKICAgICAgICBjb25zdCBub2RlID0gbmV3IFRyeSgpOwogICAgICAgIHRoaXMuX2Jsb2NrTm9kZShub2RlKTsKICAgICAgICB0aGlzLmNvZGUodHJ5Qm9keSk7CiAgICAgICAgaWYgKGNhdGNoQ29kZSkgewogICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm5hbWUoImUiKTsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5jYXRjaCA9IG5ldyBDYXRjaChlcnJvcik7CiAgICAgICAgICBjYXRjaENvZGUoZXJyb3IpOwogICAgICAgIH0KICAgICAgICBpZiAoZmluYWxseUNvZGUpIHsKICAgICAgICAgIHRoaXMuX2N1cnJOb2RlID0gbm9kZS5maW5hbGx5ID0gbmV3IEZpbmFsbHkoKTsKICAgICAgICAgIHRoaXMuY29kZShmaW5hbGx5Q29kZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoQ2F0Y2gsIEZpbmFsbHkpOwogICAgICB9CiAgICAgIC8vIGB0aHJvd2Agc3RhdGVtZW50CiAgICAgIHRocm93KGVycm9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2xlYWZOb2RlKG5ldyBUaHJvdyhlcnJvcikpOwogICAgICB9CiAgICAgIC8vIHN0YXJ0IHNlbGYtYmFsYW5jaW5nIGJsb2NrCiAgICAgIGJsb2NrKGJvZHksIG5vZGVDb3VudCkgewogICAgICAgIHRoaXMuX2Jsb2NrU3RhcnRzLnB1c2godGhpcy5fbm9kZXMubGVuZ3RoKTsKICAgICAgICBpZiAoYm9keSkKICAgICAgICAgIHRoaXMuY29kZShib2R5KS5lbmRCbG9jayhub2RlQ291bnQpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIGVuZCB0aGUgY3VycmVudCBzZWxmLWJhbGFuY2luZyBibG9jawogICAgICBlbmRCbG9jayhub2RlQ291bnQpIHsKICAgICAgICBjb25zdCBsZW4gPSB0aGlzLl9ibG9ja1N0YXJ0cy5wb3AoKTsKICAgICAgICBpZiAobGVuID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvZGVHZW46IG5vdCBpbiBzZWxmLWJhbGFuY2luZyBibG9jayIpOwogICAgICAgIGNvbnN0IHRvQ2xvc2UgPSB0aGlzLl9ub2Rlcy5sZW5ndGggLSBsZW47CiAgICAgICAgaWYgKHRvQ2xvc2UgPCAwIHx8IG5vZGVDb3VudCAhPT0gdm9pZCAwICYmIHRvQ2xvc2UgIT09IG5vZGVDb3VudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiB3cm9uZyBudW1iZXIgb2Ygbm9kZXM6ICR7dG9DbG9zZX0gdnMgJHtub2RlQ291bnR9IGV4cGVjdGVkYCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX25vZGVzLmxlbmd0aCA9IGxlbjsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBgZnVuY3Rpb25gIGhlYWRpbmcgKG9yIGRlZmluaXRpb24gaWYgZnVuY0JvZHkgaXMgcGFzc2VkKQogICAgICBmdW5jKG5hbWUsIGFyZ3MgPSBjb2RlXzEubmlsLCBhc3luYywgZnVuY0JvZHkpIHsKICAgICAgICB0aGlzLl9ibG9ja05vZGUobmV3IEZ1bmMobmFtZSwgYXJncywgYXN5bmMpKTsKICAgICAgICBpZiAoZnVuY0JvZHkpCiAgICAgICAgICB0aGlzLmNvZGUoZnVuY0JvZHkpLmVuZEZ1bmMoKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBlbmQgZnVuY3Rpb24gZGVmaW5pdGlvbgogICAgICBlbmRGdW5jKCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmRCbG9ja05vZGUoRnVuYyk7CiAgICAgIH0KICAgICAgb3B0aW1pemUobiA9IDEpIHsKICAgICAgICB3aGlsZSAobi0tID4gMCkgewogICAgICAgICAgdGhpcy5fcm9vdC5vcHRpbWl6ZU5vZGVzKCk7CiAgICAgICAgICB0aGlzLl9yb290Lm9wdGltaXplTmFtZXModGhpcy5fcm9vdC5uYW1lcywgdGhpcy5fY29uc3RhbnRzKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2xlYWZOb2RlKG5vZGUpIHsKICAgICAgICB0aGlzLl9jdXJyTm9kZS5ub2Rlcy5wdXNoKG5vZGUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF9ibG9ja05vZGUobm9kZSkgewogICAgICAgIHRoaXMuX2N1cnJOb2RlLm5vZGVzLnB1c2gobm9kZSk7CiAgICAgICAgdGhpcy5fbm9kZXMucHVzaChub2RlKTsKICAgICAgfQogICAgICBfZW5kQmxvY2tOb2RlKE4xLCBOMikgewogICAgICAgIGNvbnN0IG4gPSB0aGlzLl9jdXJyTm9kZTsKICAgICAgICBpZiAobiBpbnN0YW5jZW9mIE4xIHx8IE4yICYmIG4gaW5zdGFuY2VvZiBOMikgewogICAgICAgICAgdGhpcy5fbm9kZXMucG9wKCk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb2RlR2VuOiBub3QgaW4gYmxvY2sgIiR7TjIgPyBgJHtOMS5raW5kfS8ke04yLmtpbmR9YCA6IE4xLmtpbmR9ImApOwogICAgICB9CiAgICAgIF9lbHNlTm9kZShub2RlKSB7CiAgICAgICAgY29uc3QgbiA9IHRoaXMuX2N1cnJOb2RlOwogICAgICAgIGlmICghKG4gaW5zdGFuY2VvZiBJZikpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignQ29kZUdlbjogImVsc2UiIHdpdGhvdXQgImlmIicpOwogICAgICAgIH0KICAgICAgICB0aGlzLl9jdXJyTm9kZSA9IG4uZWxzZSA9IG5vZGU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0IF9yb290KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ub2Rlc1swXTsKICAgICAgfQogICAgICBnZXQgX2N1cnJOb2RlKCkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgcmV0dXJuIG5zW25zLmxlbmd0aCAtIDFdOwogICAgICB9CiAgICAgIHNldCBfY3Vyck5vZGUobm9kZSkgewogICAgICAgIGNvbnN0IG5zID0gdGhpcy5fbm9kZXM7CiAgICAgICAgbnNbbnMubGVuZ3RoIC0gMV0gPSBub2RlOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29kZUdlbiA9IENvZGVHZW47CiAgICBmdW5jdGlvbiBhZGROYW1lcyhuYW1lcywgZnJvbSkgewogICAgICBmb3IgKGNvbnN0IG4gaW4gZnJvbSkKICAgICAgICBuYW1lc1tuXSA9IChuYW1lc1tuXSB8fCAwKSArIChmcm9tW25dIHx8IDApOwogICAgICByZXR1cm4gbmFtZXM7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFeHByTmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgcmV0dXJuIGZyb20gaW5zdGFuY2VvZiBjb2RlXzEuX0NvZGVPck5hbWUgPyBhZGROYW1lcyhuYW1lcywgZnJvbS5uYW1lcykgOiBuYW1lczsKICAgIH0KICAgIGZ1bmN0aW9uIG9wdGltaXplRXhwcihleHByLCBuYW1lcywgY29uc3RhbnRzKSB7CiAgICAgIGlmIChleHByIGluc3RhbmNlb2YgY29kZV8xLk5hbWUpCiAgICAgICAgcmV0dXJuIHJlcGxhY2VOYW1lKGV4cHIpOwogICAgICBpZiAoIWNhbk9wdGltaXplKGV4cHIpKQogICAgICAgIHJldHVybiBleHByOwogICAgICByZXR1cm4gbmV3IGNvZGVfMS5fQ29kZShleHByLl9pdGVtcy5yZWR1Y2UoKGl0ZW1zLCBjKSA9PiB7CiAgICAgICAgaWYgKGMgaW5zdGFuY2VvZiBjb2RlXzEuTmFtZSkKICAgICAgICAgIGMgPSByZXBsYWNlTmFtZShjKTsKICAgICAgICBpZiAoYyBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSkKICAgICAgICAgIGl0ZW1zLnB1c2goLi4uYy5faXRlbXMpOwogICAgICAgIGVsc2UKICAgICAgICAgIGl0ZW1zLnB1c2goYyk7CiAgICAgICAgcmV0dXJuIGl0ZW1zOwogICAgICB9LCBbXSkpOwogICAgICBmdW5jdGlvbiByZXBsYWNlTmFtZShuKSB7CiAgICAgICAgY29uc3QgYyA9IGNvbnN0YW50c1tuLnN0cl07CiAgICAgICAgaWYgKGMgPT09IHZvaWQgMCB8fCBuYW1lc1tuLnN0cl0gIT09IDEpCiAgICAgICAgICByZXR1cm4gbjsKICAgICAgICBkZWxldGUgbmFtZXNbbi5zdHJdOwogICAgICAgIHJldHVybiBjOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbk9wdGltaXplKGUpIHsKICAgICAgICByZXR1cm4gZSBpbnN0YW5jZW9mIGNvZGVfMS5fQ29kZSAmJiBlLl9pdGVtcy5zb21lKChjKSA9PiBjIGluc3RhbmNlb2YgY29kZV8xLk5hbWUgJiYgbmFtZXNbYy5zdHJdID09PSAxICYmIGNvbnN0YW50c1tjLnN0cl0gIT09IHZvaWQgMCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHN1YnRyYWN0TmFtZXMobmFtZXMsIGZyb20pIHsKICAgICAgZm9yIChjb25zdCBuIGluIGZyb20pCiAgICAgICAgbmFtZXNbbl0gPSAobmFtZXNbbl0gfHwgMCkgLSAoZnJvbVtuXSB8fCAwKTsKICAgIH0KICAgIGZ1bmN0aW9uIG5vdCh4KSB7CiAgICAgIHJldHVybiB0eXBlb2YgeCA9PSAiYm9vbGVhbiIgfHwgdHlwZW9mIHggPT0gIm51bWJlciIgfHwgeCA9PT0gbnVsbCA/ICF4IDogKDAsIGNvZGVfMS5fKWAhJHtwYXIoeCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLm5vdCA9IG5vdDsKICAgIHZhciBhbmRDb2RlID0gbWFwcGVuZChleHBvcnRzMi5vcGVyYXRvcnMuQU5EKTsKICAgIGZ1bmN0aW9uIGFuZCguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShhbmRDb2RlKTsKICAgIH0KICAgIGV4cG9ydHMyLmFuZCA9IGFuZDsKICAgIHZhciBvckNvZGUgPSBtYXBwZW5kKGV4cG9ydHMyLm9wZXJhdG9ycy5PUik7CiAgICBmdW5jdGlvbiBvciguLi5hcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLnJlZHVjZShvckNvZGUpOwogICAgfQogICAgZXhwb3J0czIub3IgPSBvcjsKICAgIGZ1bmN0aW9uIG1hcHBlbmQob3ApIHsKICAgICAgcmV0dXJuICh4LCB5KSA9PiB4ID09PSBjb2RlXzEubmlsID8geSA6IHkgPT09IGNvZGVfMS5uaWwgPyB4IDogKDAsIGNvZGVfMS5fKWAke3Bhcih4KX0gJHtvcH0gJHtwYXIoeSl9YDsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcih4KSB7CiAgICAgIHJldHVybiB4IGluc3RhbmNlb2YgY29kZV8xLk5hbWUgPyB4IDogKDAsIGNvZGVfMS5fKWAoJHt4fSlgOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS91dGlsLmpzCnZhciByZXF1aXJlX3V0aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdXRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gZXhwb3J0czIuZ2V0RXJyb3JQYXRoID0gZXhwb3J0czIuVHlwZSA9IGV4cG9ydHMyLnVzZUZ1bmMgPSBleHBvcnRzMi5zZXRFdmFsdWF0ZWQgPSBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV4cG9ydHMyLm1lcmdlRXZhbHVhdGVkID0gZXhwb3J0czIuZWFjaEl0ZW0gPSBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBleHBvcnRzMi5lc2NhcGVGcmFnbWVudCA9IGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSBleHBvcnRzMi5zY2hlbWFSZWZPclZhbCA9IGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzQnV0UmVmID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXMgPSBleHBvcnRzMi5jaGVja1Vua25vd25SdWxlcyA9IGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gZXhwb3J0czIudG9IYXNoID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZSgpOwogICAgZnVuY3Rpb24gdG9IYXNoKGFycikgewogICAgICBjb25zdCBoYXNoID0ge307CiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnIpCiAgICAgICAgaGFzaFtpdGVtXSA9IHRydWU7CiAgICAgIHJldHVybiBoYXNoOwogICAgfQogICAgZXhwb3J0czIudG9IYXNoID0gdG9IYXNoOwogICAgZnVuY3Rpb24gYWx3YXlzVmFsaWRTY2hlbWEoaXQsIHNjaGVtYTIpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gc2NoZW1hMjsKICAgICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYTIpLmxlbmd0aCA9PT0gMCkKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgY2hlY2tVbmtub3duUnVsZXMoaXQsIHNjaGVtYTIpOwogICAgICByZXR1cm4gIXNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIGl0LnNlbGYuUlVMRVMuYWxsKTsKICAgIH0KICAgIGV4cG9ydHMyLmFsd2F5c1ZhbGlkU2NoZW1hID0gYWx3YXlzVmFsaWRTY2hlbWE7CiAgICBmdW5jdGlvbiBjaGVja1Vua25vd25SdWxlcyhpdCwgc2NoZW1hMiA9IGl0LnNjaGVtYSkgewogICAgICBjb25zdCB7IG9wdHMsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgaWYgKCFvcHRzLnN0cmljdFNjaGVtYSkKICAgICAgICByZXR1cm47CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgcnVsZXMgPSBzZWxmMi5SVUxFUy5rZXl3b3JkczsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmICghcnVsZXNba2V5XSkKICAgICAgICAgIGNoZWNrU3RyaWN0TW9kZShpdCwgYHVua25vd24ga2V5d29yZDogIiR7a2V5fSJgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tVbmtub3duUnVsZXMgPSBjaGVja1Vua25vd25SdWxlczsKICAgIGZ1bmN0aW9uIHNjaGVtYUhhc1J1bGVzKHNjaGVtYTIsIHJ1bGVzKSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgcmV0dXJuICFzY2hlbWEyOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKQogICAgICAgIGlmIChydWxlc1trZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzID0gc2NoZW1hSGFzUnVsZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFIYXNSdWxlc0J1dFJlZihzY2hlbWEyLCBSVUxFUykgewogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgIHJldHVybiAhc2NoZW1hMjsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikKICAgICAgICBpZiAoa2V5ICE9PSAiJHJlZiIgJiYgUlVMRVMuYWxsW2tleV0pCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNCdXRSZWYgPSBzY2hlbWFIYXNSdWxlc0J1dFJlZjsKICAgIGZ1bmN0aW9uIHNjaGVtYVJlZk9yVmFsKHsgdG9wU2NoZW1hUmVmLCBzY2hlbWFQYXRoIH0sIHNjaGVtYTIsIGtleXdvcmQsICRkYXRhKSB7CiAgICAgIGlmICghJGRhdGEpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gIm51bWJlciIgfHwgdHlwZW9mIHNjaGVtYTIgPT0gImJvb2xlYW4iKQogICAgICAgICAgcmV0dXJuIHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciKQogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtzY2hlbWEyfWA7CiAgICAgIH0KICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHt0b3BTY2hlbWFSZWZ9JHtzY2hlbWFQYXRofSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoa2V5d29yZCl9YDsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYVJlZk9yVmFsID0gc2NoZW1hUmVmT3JWYWw7CiAgICBmdW5jdGlvbiB1bmVzY2FwZUZyYWdtZW50KHN0cjIpIHsKICAgICAgcmV0dXJuIHVuZXNjYXBlSnNvblBvaW50ZXIoZGVjb2RlVVJJQ29tcG9uZW50KHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnVuZXNjYXBlRnJhZ21lbnQgPSB1bmVzY2FwZUZyYWdtZW50OwogICAgZnVuY3Rpb24gZXNjYXBlRnJhZ21lbnQoc3RyMikgewogICAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGVzY2FwZUpzb25Qb2ludGVyKHN0cjIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmVzY2FwZUZyYWdtZW50ID0gZXNjYXBlRnJhZ21lbnQ7CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUG9pbnRlcihzdHIyKSB7CiAgICAgIGlmICh0eXBlb2Ygc3RyMiA9PSAibnVtYmVyIikKICAgICAgICByZXR1cm4gYCR7c3RyMn1gOwogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1wvL2csICJ+MSIpOwogICAgfQogICAgZXhwb3J0czIuZXNjYXBlSnNvblBvaW50ZXIgPSBlc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIHVuZXNjYXBlSnNvblBvaW50ZXIoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5yZXBsYWNlKC9+MS9nLCAiLyIpLnJlcGxhY2UoL34wL2csICJ+Iik7CiAgICB9CiAgICBleHBvcnRzMi51bmVzY2FwZUpzb25Qb2ludGVyID0gdW5lc2NhcGVKc29uUG9pbnRlcjsKICAgIGZ1bmN0aW9uIGVhY2hJdGVtKHhzLCBmKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHhzKSkgewogICAgICAgIGZvciAoY29uc3QgeCBvZiB4cykKICAgICAgICAgIGYoeCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZih4cyk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVhY2hJdGVtID0gZWFjaEl0ZW07CiAgICBmdW5jdGlvbiBtYWtlTWVyZ2VFdmFsdWF0ZWQoeyBtZXJnZU5hbWVzLCBtZXJnZVRvTmFtZSwgbWVyZ2VWYWx1ZXMsIHJlc3VsdFRvTmFtZSB9KSB7CiAgICAgIHJldHVybiAoZ2VuLCBmcm9tLCB0bywgdG9OYW1lKSA9PiB7CiAgICAgICAgY29uc3QgcmVzID0gdG8gPT09IHZvaWQgMCA/IGZyb20gOiB0byBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKGZyb20gaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IG1lcmdlTmFtZXMoZ2VuLCBmcm9tLCB0bykgOiBtZXJnZVRvTmFtZShnZW4sIGZyb20sIHRvKSwgdG8pIDogZnJvbSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gKG1lcmdlVG9OYW1lKGdlbiwgdG8sIGZyb20pLCBmcm9tKSA6IG1lcmdlVmFsdWVzKGZyb20sIHRvKTsKICAgICAgICByZXR1cm4gdG9OYW1lID09PSBjb2RlZ2VuXzEuTmFtZSAmJiAhKHJlcyBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSA/IHJlc3VsdFRvTmFtZShnZW4sIHJlcykgOiByZXM7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUV2YWx1YXRlZCA9IHsKICAgICAgcHJvcHM6IG1ha2VNZXJnZUV2YWx1YXRlZCh7CiAgICAgICAgbWVyZ2VOYW1lczogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlICYmICR7ZnJvbX0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZnJvbX0gPT09IHRydWVgLCAoKSA9PiBnZW4uYXNzaWduKHRvLCB0cnVlKSwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke3RvfSB8fCB7fWApLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QuYXNzaWduKCR7dG99LCAke2Zyb219KWApKTsKICAgICAgICB9KSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gewogICAgICAgICAgaWYgKGZyb20gPT09IHRydWUpIHsKICAgICAgICAgICAgZ2VuLmFzc2lnbih0bywgdHJ1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uYXNzaWduKHRvLCAoMCwgY29kZWdlbl8xLl8pYCR7dG99IHx8IHt9YCk7CiAgICAgICAgICAgIHNldEV2YWx1YXRlZChnZW4sIHRvLCBmcm9tKTsKICAgICAgICAgIH0KICAgICAgICB9KSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IHsgLi4uZnJvbSwgLi4udG8gfSwKICAgICAgICByZXN1bHRUb05hbWU6IGV2YWx1YXRlZFByb3BzVG9OYW1lCiAgICAgIH0pLAogICAgICBpdGVtczogbWFrZU1lcmdlRXZhbHVhdGVkKHsKICAgICAgICBtZXJnZU5hbWVzOiAoZ2VuLCBmcm9tLCB0bykgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHt0b30gIT09IHRydWUgJiYgJHtmcm9tfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgKDAsIGNvZGVnZW5fMS5fKWAke2Zyb219ID09PSB0cnVlID8gdHJ1ZSA6ICR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVRvTmFtZTogKGdlbiwgZnJvbSwgdG8pID0+IGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7dG99ICE9PSB0cnVlYCwgKCkgPT4gZ2VuLmFzc2lnbih0bywgZnJvbSA9PT0gdHJ1ZSA/IHRydWUgOiAoMCwgY29kZWdlbl8xLl8pYCR7dG99ID4gJHtmcm9tfSA/ICR7dG99IDogJHtmcm9tfWApKSwKICAgICAgICBtZXJnZVZhbHVlczogKGZyb20sIHRvKSA9PiBmcm9tID09PSB0cnVlID8gdHJ1ZSA6IE1hdGgubWF4KGZyb20sIHRvKSwKICAgICAgICByZXN1bHRUb05hbWU6IChnZW4sIGl0ZW1zKSA9PiBnZW4udmFyKCJpdGVtcyIsIGl0ZW1zKQogICAgICB9KQogICAgfTsKICAgIGZ1bmN0aW9uIGV2YWx1YXRlZFByb3BzVG9OYW1lKGdlbiwgcHMpIHsKICAgICAgaWYgKHBzID09PSB0cnVlKQogICAgICAgIHJldHVybiBnZW4udmFyKCJwcm9wcyIsIHRydWUpOwogICAgICBjb25zdCBwcm9wcyA9IGdlbi52YXIoInByb3BzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICBpZiAocHMgIT09IHZvaWQgMCkKICAgICAgICBzZXRFdmFsdWF0ZWQoZ2VuLCBwcm9wcywgcHMpOwogICAgICByZXR1cm4gcHJvcHM7CiAgICB9CiAgICBleHBvcnRzMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSA9IGV2YWx1YXRlZFByb3BzVG9OYW1lOwogICAgZnVuY3Rpb24gc2V0RXZhbHVhdGVkKGdlbiwgcHJvcHMsIHBzKSB7CiAgICAgIE9iamVjdC5rZXlzKHBzKS5mb3JFYWNoKChwKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wc30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHApfWAsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNldEV2YWx1YXRlZCA9IHNldEV2YWx1YXRlZDsKICAgIHZhciBzbmlwcGV0cyA9IHt9OwogICAgZnVuY3Rpb24gdXNlRnVuYyhnZW4sIGYpIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIHJlZjogZiwKICAgICAgICBjb2RlOiBzbmlwcGV0c1tmLmNvZGVdIHx8IChzbmlwcGV0c1tmLmNvZGVdID0gbmV3IGNvZGVfMS5fQ29kZShmLmNvZGUpKQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzZUZ1bmMgPSB1c2VGdW5jOwogICAgdmFyIFR5cGU7CiAgICAoZnVuY3Rpb24oVHlwZTIpIHsKICAgICAgVHlwZTJbVHlwZTJbIk51bSJdID0gMF0gPSAiTnVtIjsKICAgICAgVHlwZTJbVHlwZTJbIlN0ciJdID0gMV0gPSAiU3RyIjsKICAgIH0pKFR5cGUgfHwgKGV4cG9ydHMyLlR5cGUgPSBUeXBlID0ge30pKTsKICAgIGZ1bmN0aW9uIGdldEVycm9yUGF0aChkYXRhUHJvcCwgZGF0YVByb3BUeXBlLCBqc1Byb3BlcnR5U3ludGF4KSB7CiAgICAgIGlmIChkYXRhUHJvcCBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSB7CiAgICAgICAgY29uc3QgaXNOdW1iZXIgPSBkYXRhUHJvcFR5cGUgPT09IFR5cGUuTnVtOwogICAgICAgIHJldHVybiBqc1Byb3BlcnR5U3ludGF4ID8gaXNOdW1iZXIgPyAoMCwgY29kZWdlbl8xLl8pYCJbIiArICR7ZGF0YVByb3B9ICsgIl0iYCA6ICgwLCBjb2RlZ2VuXzEuXylgIlsnIiArICR7ZGF0YVByb3B9ICsgIiddImAgOiBpc051bWJlciA/ICgwLCBjb2RlZ2VuXzEuXylgIi8iICsgJHtkYXRhUHJvcH1gIDogKDAsIGNvZGVnZW5fMS5fKWAiLyIgKyAke2RhdGFQcm9wfS5yZXBsYWNlKC9+L2csICJ+MCIpLnJlcGxhY2UoL1xcLy9nLCAifjEiKWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGpzUHJvcGVydHlTeW50YXggPyAoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCkudG9TdHJpbmcoKSA6ICIvIiArIGVzY2FwZUpzb25Qb2ludGVyKGRhdGFQcm9wKTsKICAgIH0KICAgIGV4cG9ydHMyLmdldEVycm9yUGF0aCA9IGdldEVycm9yUGF0aDsKICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0TW9kZShpdCwgbXNnLCBtb2RlID0gaXQub3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgaWYgKCFtb2RlKQogICAgICAgIHJldHVybjsKICAgICAgbXNnID0gYHN0cmljdCBtb2RlOiAke21zZ31gOwogICAgICBpZiAobW9kZSA9PT0gdHJ1ZSkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IobXNnKTsKICAgICAgaXQuc2VsZi5sb2dnZXIud2Fybihtc2cpOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tTdHJpY3RNb2RlID0gY2hlY2tTdHJpY3RNb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcwp2YXIgcmVxdWlyZV9uYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9uYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzID0gewogICAgICAvLyB2YWxpZGF0aW9uIGZ1bmN0aW9uIGFyZ3VtZW50cwogICAgICBkYXRhOiBuZXcgY29kZWdlbl8xLk5hbWUoImRhdGEiKSwKICAgICAgLy8gZGF0YSBwYXNzZWQgdG8gdmFsaWRhdGlvbiBmdW5jdGlvbgogICAgICAvLyBhcmdzIHBhc3NlZCBmcm9tIHJlZmVyZW5jaW5nIHNjaGVtYQogICAgICB2YWxDeHQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgidmFsQ3h0IiksCiAgICAgIC8vIHZhbGlkYXRpb24vZGF0YSBjb250ZXh0IC0gc2hvdWxkIG5vdCBiZSB1c2VkIGRpcmVjdGx5LCBpdCBpcyBkZXN0cnVjdHVyZWQgdG8gdGhlIG5hbWVzIGJlbG93CiAgICAgIGluc3RhbmNlUGF0aDogbmV3IGNvZGVnZW5fMS5OYW1lKCJpbnN0YW5jZVBhdGgiKSwKICAgICAgcGFyZW50RGF0YTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhIiksCiAgICAgIHBhcmVudERhdGFQcm9wZXJ0eTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnREYXRhUHJvcGVydHkiKSwKICAgICAgcm9vdERhdGE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicm9vdERhdGEiKSwKICAgICAgLy8gcm9vdCBkYXRhIC0gc2FtZSBhcyB0aGUgZGF0YSBwYXNzZWQgdG8gdGhlIGZpcnN0L3RvcCB2YWxpZGF0aW9uIGZ1bmN0aW9uCiAgICAgIGR5bmFtaWNBbmNob3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoImR5bmFtaWNBbmNob3JzIiksCiAgICAgIC8vIHVzZWQgdG8gc3VwcG9ydCByZWN1cnNpdmVSZWYgYW5kIGR5bmFtaWNSZWYKICAgICAgLy8gZnVuY3Rpb24gc2NvcGVkIHZhcmlhYmxlcwogICAgICB2RXJyb3JzOiBuZXcgY29kZWdlbl8xLk5hbWUoInZFcnJvcnMiKSwKICAgICAgLy8gbnVsbCBvciBhcnJheSBvZiB2YWxpZGF0aW9uIGVycm9ycwogICAgICBlcnJvcnM6IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZXJyb3JzIiksCiAgICAgIC8vIGNvdW50ZXIgb2YgdmFsaWRhdGlvbiBlcnJvcnMKICAgICAgdGhpczogbmV3IGNvZGVnZW5fMS5OYW1lKCJ0aGlzIiksCiAgICAgIC8vICJnbG9iYWxzIgogICAgICBzZWxmOiBuZXcgY29kZWdlbl8xLk5hbWUoInNlbGYiKSwKICAgICAgc2NvcGU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NvcGUiKSwKICAgICAgLy8gSlREIHNlcmlhbGl6ZS9wYXJzZSBuYW1lIGZvciBKU09OIHN0cmluZyBhbmQgcG9zaXRpb24KICAgICAganNvbjogbmV3IGNvZGVnZW5fMS5OYW1lKCJqc29uIiksCiAgICAgIGpzb25Qb3M6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBvcyIpLAogICAgICBqc29uTGVuOiBuZXcgY29kZWdlbl8xLk5hbWUoImpzb25MZW4iKSwKICAgICAganNvblBhcnQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgianNvblBhcnQiKQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBuYW1lczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvZXJyb3JzLmpzCnZhciByZXF1aXJlX2Vycm9ycyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9lcnJvcnMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4cG9ydHMyLnJlc2V0RXJyb3JzQ291bnQgPSBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gZXhwb3J0czIucmVwb3J0RXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgZXhwb3J0czIua2V5d29yZEVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IHBhc3MgIiR7a2V5d29yZH0iIGtleXdvcmQgdmFsaWRhdGlvbmAKICAgIH07CiAgICBleHBvcnRzMi5rZXl3b3JkJERhdGFFcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsga2V5d29yZCwgc2NoZW1hVHlwZSB9KSA9PiBzY2hlbWFUeXBlID8gKDAsIGNvZGVnZW5fMS5zdHIpYCIke2tleXdvcmR9IiBrZXl3b3JkIG11c3QgYmUgJHtzY2hlbWFUeXBlfSAoJGRhdGEpYCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAiJHtrZXl3b3JkfSIga2V5d29yZCBpcyBpbnZhbGlkICgkZGF0YSlgCiAgICB9OwogICAgZnVuY3Rpb24gcmVwb3J0RXJyb3IoY3h0LCBlcnJvciA9IGV4cG9ydHMyLmtleXdvcmRFcnJvciwgZXJyb3JQYXRocywgb3ZlcnJpZGVBbGxFcnJvcnMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBpZiAob3ZlcnJpZGVBbGxFcnJvcnMgIT09IG51bGwgJiYgb3ZlcnJpZGVBbGxFcnJvcnMgIT09IHZvaWQgMCA/IG92ZXJyaWRlQWxsRXJyb3JzIDogY29tcG9zaXRlUnVsZSB8fCBhbGxFcnJvcnMpIHsKICAgICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuRXJyb3JzKGl0LCAoMCwgY29kZWdlbl8xLl8pYFske2Vyck9ian1dYCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydEVycm9yID0gcmVwb3J0RXJyb3I7CiAgICBmdW5jdGlvbiByZXBvcnRFeHRyYUVycm9yKGN4dCwgZXJyb3IgPSBleHBvcnRzMi5rZXl3b3JkRXJyb3IsIGVycm9yUGF0aHMpIHsKICAgICAgY29uc3QgeyBpdCB9ID0gY3h0OwogICAgICBjb25zdCB7IGdlbiwgY29tcG9zaXRlUnVsZSwgYWxsRXJyb3JzIH0gPSBpdDsKICAgICAgY29uc3QgZXJyT2JqID0gZXJyb3JPYmplY3RDb2RlKGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgICBhZGRFcnJvcihnZW4sIGVyck9iaik7CiAgICAgIGlmICghKGNvbXBvc2l0ZVJ1bGUgfHwgYWxsRXJyb3JzKSkgewogICAgICAgIHJldHVybkVycm9ycyhpdCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRFeHRyYUVycm9yID0gcmVwb3J0RXh0cmFFcnJvcjsKICAgIGZ1bmN0aW9uIHJlc2V0RXJyb3JzQ291bnQoZ2VuLCBlcnJzQ291bnQpIHsKICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCBlcnJzQ291bnQpOwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfSAhPT0gbnVsbGAsICgpID0+IGdlbi5pZihlcnJzQ291bnQsICgpID0+IGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52RXJyb3JzfS5sZW5ndGhgLCBlcnJzQ291bnQpLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCBudWxsKSkpOwogICAgfQogICAgZXhwb3J0czIucmVzZXRFcnJvcnNDb3VudCA9IHJlc2V0RXJyb3JzQ291bnQ7CiAgICBmdW5jdGlvbiBleHRlbmRFcnJvcnMoeyBnZW4sIGtleXdvcmQsIHNjaGVtYVZhbHVlLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0pIHsKICAgICAgaWYgKGVycnNDb3VudCA9PT0gdm9pZCAwKQogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5uYW1lKCJlcnIiKTsKICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgZXJyc0NvdW50LCBuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoaSkgPT4gewogICAgICAgIGdlbi5jb25zdChlcnIsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc31bJHtpfV1gKTsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uaW5zdGFuY2VQYXRoID09PSB1bmRlZmluZWRgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtlcnJ9Lmluc3RhbmNlUGF0aGAsICgwLCBjb2RlZ2VuXzEuc3RyQ29uY2F0KShuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCBpdC5lcnJvclBhdGgpKSk7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5zY2hlbWFQYXRoYCwgKDAsIGNvZGVnZW5fMS5zdHIpYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWApOwogICAgICAgIGlmIChpdC5vcHRzLnZlcmJvc2UpIHsKICAgICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke2Vycn0uc2NoZW1hYCwgc2NoZW1hVmFsdWUpOwogICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXJyfS5kYXRhYCwgZGF0YSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4dGVuZEVycm9ycyA9IGV4dGVuZEVycm9yczsKICAgIGZ1bmN0aW9uIGFkZEVycm9yKGdlbiwgZXJyT2JqKSB7CiAgICAgIGNvbnN0IGVyciA9IGdlbi5jb25zdCgiZXJyIiwgZXJyT2JqKTsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGxgLCAoKSA9PiBnZW4uYXNzaWduKG5hbWVzXzEuZGVmYXVsdC52RXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYFske2Vycn1dYCksICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ucHVzaCgke2Vycn0pYCk7CiAgICAgIGdlbi5jb2RlKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSsrYCk7CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5FcnJvcnMoaXQsIGVycnMpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSwgc2NoZW1hRW52IH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4udGhyb3coKDAsIGNvZGVnZW5fMS5fKWBuZXcgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KCR7ZXJyc30pYCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBlcnJzKTsKICAgICAgICBnZW4ucmV0dXJuKGZhbHNlKTsKICAgICAgfQogICAgfQogICAgdmFyIEUgPSB7CiAgICAgIGtleXdvcmQ6IG5ldyBjb2RlZ2VuXzEuTmFtZSgia2V5d29yZCIpLAogICAgICBzY2hlbWFQYXRoOiBuZXcgY29kZWdlbl8xLk5hbWUoInNjaGVtYVBhdGgiKSwKICAgICAgLy8gYWxzbyB1c2VkIGluIEpURCBlcnJvcnMKICAgICAgcGFyYW1zOiBuZXcgY29kZWdlbl8xLk5hbWUoInBhcmFtcyIpLAogICAgICBwcm9wZXJ0eU5hbWU6IG5ldyBjb2RlZ2VuXzEuTmFtZSgicHJvcGVydHlOYW1lIiksCiAgICAgIG1lc3NhZ2U6IG5ldyBjb2RlZ2VuXzEuTmFtZSgibWVzc2FnZSIpLAogICAgICBzY2hlbWE6IG5ldyBjb2RlZ2VuXzEuTmFtZSgic2NoZW1hIiksCiAgICAgIHBhcmVudFNjaGVtYTogbmV3IGNvZGVnZW5fMS5OYW1lKCJwYXJlbnRTY2hlbWEiKQogICAgfTsKICAgIGZ1bmN0aW9uIGVycm9yT2JqZWN0Q29kZShjeHQsIGVycm9yLCBlcnJvclBhdGhzKSB7CiAgICAgIGNvbnN0IHsgY3JlYXRlRXJyb3JzIH0gPSBjeHQuaXQ7CiAgICAgIGlmIChjcmVhdGVFcnJvcnMgPT09IGZhbHNlKQogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYHt9YDsKICAgICAgcmV0dXJuIGVycm9yT2JqZWN0KGN4dCwgZXJyb3IsIGVycm9yUGF0aHMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JPYmplY3QoY3h0LCBlcnJvciwgZXJyb3JQYXRocyA9IHt9KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBrZXlWYWx1ZXMgPSBbCiAgICAgICAgZXJyb3JJbnN0YW5jZVBhdGgoaXQsIGVycm9yUGF0aHMpLAogICAgICAgIGVycm9yU2NoZW1hUGF0aChjeHQsIGVycm9yUGF0aHMpCiAgICAgIF07CiAgICAgIGV4dHJhRXJyb3JQcm9wcyhjeHQsIGVycm9yLCBrZXlWYWx1ZXMpOwogICAgICByZXR1cm4gZ2VuLm9iamVjdCguLi5rZXlWYWx1ZXMpOwogICAgfQogICAgZnVuY3Rpb24gZXJyb3JJbnN0YW5jZVBhdGgoeyBlcnJvclBhdGggfSwgeyBpbnN0YW5jZVBhdGggfSkgewogICAgICBjb25zdCBpbnN0UGF0aCA9IGluc3RhbmNlUGF0aCA/ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShpbnN0YW5jZVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YCA6IGVycm9yUGF0aDsKICAgICAgcmV0dXJuIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgaW5zdFBhdGgpXTsKICAgIH0KICAgIGZ1bmN0aW9uIGVycm9yU2NoZW1hUGF0aCh7IGtleXdvcmQsIGl0OiB7IGVyclNjaGVtYVBhdGggfSB9LCB7IHNjaGVtYVBhdGgsIHBhcmVudFNjaGVtYSB9KSB7CiAgICAgIGxldCBzY2hQYXRoID0gcGFyZW50U2NoZW1hID8gZXJyU2NoZW1hUGF0aCA6ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2VyclNjaGVtYVBhdGh9LyR7a2V5d29yZH1gOwogICAgICBpZiAoc2NoZW1hUGF0aCkgewogICAgICAgIHNjaFBhdGggPSAoMCwgY29kZWdlbl8xLnN0cilgJHtzY2hQYXRofSR7KDAsIHV0aWxfMS5nZXRFcnJvclBhdGgpKHNjaGVtYVBhdGgsIHV0aWxfMS5UeXBlLlN0cil9YDsKICAgICAgfQogICAgICByZXR1cm4gW0Uuc2NoZW1hUGF0aCwgc2NoUGF0aF07CiAgICB9CiAgICBmdW5jdGlvbiBleHRyYUVycm9yUHJvcHMoY3h0LCB7IHBhcmFtcywgbWVzc2FnZSB9LCBrZXlWYWx1ZXMpIHsKICAgICAgY29uc3QgeyBrZXl3b3JkLCBkYXRhLCBzY2hlbWFWYWx1ZSwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgeyBvcHRzLCBwcm9wZXJ0eU5hbWUsIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCB9ID0gaXQ7CiAgICAgIGtleVZhbHVlcy5wdXNoKFtFLmtleXdvcmQsIGtleXdvcmRdLCBbRS5wYXJhbXMsIHR5cGVvZiBwYXJhbXMgPT0gImZ1bmN0aW9uIiA/IHBhcmFtcyhjeHQpIDogcGFyYW1zIHx8ICgwLCBjb2RlZ2VuXzEuXylge31gXSk7CiAgICAgIGlmIChvcHRzLm1lc3NhZ2VzKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UubWVzc2FnZSwgdHlwZW9mIG1lc3NhZ2UgPT0gImZ1bmN0aW9uIiA/IG1lc3NhZ2UoY3h0KSA6IG1lc3NhZ2VdKTsKICAgICAgfQogICAgICBpZiAob3B0cy52ZXJib3NlKSB7CiAgICAgICAga2V5VmFsdWVzLnB1c2goW0Uuc2NoZW1hLCBzY2hlbWFWYWx1ZV0sIFtFLnBhcmVudFNjaGVtYSwgKDAsIGNvZGVnZW5fMS5fKWAke3RvcFNjaGVtYVJlZn0ke3NjaGVtYVBhdGh9YF0sIFtuYW1lc18xLmRlZmF1bHQuZGF0YSwgZGF0YV0pOwogICAgICB9CiAgICAgIGlmIChwcm9wZXJ0eU5hbWUpCiAgICAgICAga2V5VmFsdWVzLnB1c2goW0UucHJvcGVydHlOYW1lLCBwcm9wZXJ0eU5hbWVdKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYm9vbFNjaGVtYS5qcwp2YXIgcmVxdWlyZV9ib29sU2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2Jvb2xTY2hlbWEuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gZXhwb3J0czIudG9wQm9vbE9yRW1wdHlTY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgZXJyb3JzXzEgPSByZXF1aXJlX2Vycm9ycygpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgYm9vbEVycm9yID0gewogICAgICBtZXNzYWdlOiAiYm9vbGVhbiBzY2hlbWEgaXMgZmFsc2UiCiAgICB9OwogICAgZnVuY3Rpb24gdG9wQm9vbE9yRW1wdHlTY2hlbWEoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgdmFsaWRhdGVOYW1lIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCwgZmFsc2UpOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmIHNjaGVtYTIuJGFzeW5jID09PSB0cnVlKSB7CiAgICAgICAgZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7dmFsaWRhdGVOYW1lfS5lcnJvcnNgLCBudWxsKTsKICAgICAgICBnZW4ucmV0dXJuKHRydWUpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi50b3BCb29sT3JFbXB0eVNjaGVtYSA9IHRvcEJvb2xPckVtcHR5U2NoZW1hOwogICAgZnVuY3Rpb24gYm9vbE9yRW1wdHlTY2hlbWEoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICBnZW4udmFyKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgZmFsc2VTY2hlbWFFcnJvcihpdCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmJvb2xPckVtcHR5U2NoZW1hID0gYm9vbE9yRW1wdHlTY2hlbWE7CiAgICBmdW5jdGlvbiBmYWxzZVNjaGVtYUVycm9yKGl0LCBvdmVycmlkZUFsbEVycm9ycykgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSB9ID0gaXQ7CiAgICAgIGNvbnN0IGN4dCA9IHsKICAgICAgICBnZW4sCiAgICAgICAga2V5d29yZDogImZhbHNlIHNjaGVtYSIsCiAgICAgICAgZGF0YSwKICAgICAgICBzY2hlbWE6IGZhbHNlLAogICAgICAgIHNjaGVtYUNvZGU6IGZhbHNlLAogICAgICAgIHNjaGVtYVZhbHVlOiBmYWxzZSwKICAgICAgICBwYXJhbXM6IHt9LAogICAgICAgIGl0CiAgICAgIH07CiAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikoY3h0LCBib29sRXJyb3IsIHZvaWQgMCwgb3ZlcnJpZGVBbGxFcnJvcnMpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcwp2YXIgcmVxdWlyZV9ydWxlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9ydWxlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2V0UnVsZXMgPSBleHBvcnRzMi5pc0pTT05UeXBlID0gdm9pZCAwOwogICAgdmFyIF9qc29uVHlwZXMgPSBbInN0cmluZyIsICJudW1iZXIiLCAiaW50ZWdlciIsICJib29sZWFuIiwgIm51bGwiLCAib2JqZWN0IiwgImFycmF5Il07CiAgICB2YXIganNvblR5cGVzID0gbmV3IFNldChfanNvblR5cGVzKTsKICAgIGZ1bmN0aW9uIGlzSlNPTlR5cGUoeCkgewogICAgICByZXR1cm4gdHlwZW9mIHggPT0gInN0cmluZyIgJiYganNvblR5cGVzLmhhcyh4KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSlNPTlR5cGUgPSBpc0pTT05UeXBlOwogICAgZnVuY3Rpb24gZ2V0UnVsZXMoKSB7CiAgICAgIGNvbnN0IGdyb3VwcyA9IHsKICAgICAgICBudW1iZXI6IHsgdHlwZTogIm51bWJlciIsIHJ1bGVzOiBbXSB9LAogICAgICAgIHN0cmluZzogeyB0eXBlOiAic3RyaW5nIiwgcnVsZXM6IFtdIH0sCiAgICAgICAgYXJyYXk6IHsgdHlwZTogImFycmF5IiwgcnVsZXM6IFtdIH0sCiAgICAgICAgb2JqZWN0OiB7IHR5cGU6ICJvYmplY3QiLCBydWxlczogW10gfQogICAgICB9OwogICAgICByZXR1cm4gewogICAgICAgIHR5cGVzOiB7IC4uLmdyb3VwcywgaW50ZWdlcjogdHJ1ZSwgYm9vbGVhbjogdHJ1ZSwgbnVsbDogdHJ1ZSB9LAogICAgICAgIHJ1bGVzOiBbeyBydWxlczogW10gfSwgZ3JvdXBzLm51bWJlciwgZ3JvdXBzLnN0cmluZywgZ3JvdXBzLmFycmF5LCBncm91cHMub2JqZWN0XSwKICAgICAgICBwb3N0OiB7IHJ1bGVzOiBbXSB9LAogICAgICAgIGFsbDoge30sCiAgICAgICAga2V5d29yZHM6IHt9CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5nZXRSdWxlcyA9IGdldFJ1bGVzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9hcHBsaWNhYmlsaXR5LmpzCnZhciByZXF1aXJlX2FwcGxpY2FiaWxpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvYXBwbGljYWJpbGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gZXhwb3J0czIuc2NoZW1hSGFzUnVsZXNGb3JUeXBlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gc2NoZW1hSGFzUnVsZXNGb3JUeXBlKHsgc2NoZW1hOiBzY2hlbWEyLCBzZWxmOiBzZWxmMiB9LCB0eXBlMikgewogICAgICBjb25zdCBncm91cCA9IHNlbGYyLlJVTEVTLnR5cGVzW3R5cGUyXTsKICAgICAgcmV0dXJuIGdyb3VwICYmIGdyb3VwICE9PSB0cnVlICYmIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVtYUhhc1J1bGVzRm9yVHlwZSA9IHNjaGVtYUhhc1J1bGVzRm9yVHlwZTsKICAgIGZ1bmN0aW9uIHNob3VsZFVzZUdyb3VwKHNjaGVtYTIsIGdyb3VwKSB7CiAgICAgIHJldHVybiBncm91cC5ydWxlcy5zb21lKChydWxlKSA9PiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNob3VsZFVzZUdyb3VwID0gc2hvdWxkVXNlR3JvdXA7CiAgICBmdW5jdGlvbiBzaG91bGRVc2VSdWxlKHNjaGVtYTIsIHJ1bGUpIHsKICAgICAgdmFyIF9hOwogICAgICByZXR1cm4gc2NoZW1hMltydWxlLmtleXdvcmRdICE9PSB2b2lkIDAgfHwgKChfYSA9IHJ1bGUuZGVmaW5pdGlvbi5pbXBsZW1lbnRzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Euc29tZSgoa3dkKSA9PiBzY2hlbWEyW2t3ZF0gIT09IHZvaWQgMCkpOwogICAgfQogICAgZXhwb3J0czIuc2hvdWxkVXNlUnVsZSA9IHNob3VsZFVzZVJ1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzCnZhciByZXF1aXJlX2RhdGFUeXBlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2RhdGFUeXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSBleHBvcnRzMi5jaGVja0RhdGFUeXBlcyA9IGV4cG9ydHMyLmNoZWNrRGF0YVR5cGUgPSBleHBvcnRzMi5jb2VyY2VBbmRDaGVja0RhdGFUeXBlID0gZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZXhwb3J0czIuZ2V0U2NoZW1hVHlwZXMgPSBleHBvcnRzMi5EYXRhVHlwZSA9IHZvaWQgMDsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGFwcGxpY2FiaWxpdHlfMSA9IHJlcXVpcmVfYXBwbGljYWJpbGl0eSgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBEYXRhVHlwZTsKICAgIChmdW5jdGlvbihEYXRhVHlwZTIpIHsKICAgICAgRGF0YVR5cGUyW0RhdGFUeXBlMlsiQ29ycmVjdCJdID0gMF0gPSAiQ29ycmVjdCI7CiAgICAgIERhdGFUeXBlMltEYXRhVHlwZTJbIldyb25nIl0gPSAxXSA9ICJXcm9uZyI7CiAgICB9KShEYXRhVHlwZSB8fCAoZXhwb3J0czIuRGF0YVR5cGUgPSBEYXRhVHlwZSA9IHt9KSk7CiAgICBmdW5jdGlvbiBnZXRTY2hlbWFUeXBlcyhzY2hlbWEyKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gZ2V0SlNPTlR5cGVzKHNjaGVtYTIudHlwZSk7CiAgICAgIGNvbnN0IGhhc051bGwgPSB0eXBlcy5pbmNsdWRlcygibnVsbCIpOwogICAgICBpZiAoaGFzTnVsbCkgewogICAgICAgIGlmIChzY2hlbWEyLm51bGxhYmxlID09PSBmYWxzZSkKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZTogbnVsbCBjb250cmFkaWN0cyBudWxsYWJsZTogZmFsc2UiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoIXR5cGVzLmxlbmd0aCAmJiBzY2hlbWEyLm51bGxhYmxlICE9PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignIm51bGxhYmxlIiBjYW5ub3QgYmUgdXNlZCB3aXRob3V0ICJ0eXBlIicpOwogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1hMi5udWxsYWJsZSA9PT0gdHJ1ZSkKICAgICAgICAgIHR5cGVzLnB1c2goIm51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gdHlwZXM7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTY2hlbWFUeXBlcyA9IGdldFNjaGVtYVR5cGVzOwogICAgZnVuY3Rpb24gZ2V0SlNPTlR5cGVzKHRzKSB7CiAgICAgIGNvbnN0IHR5cGVzID0gQXJyYXkuaXNBcnJheSh0cykgPyB0cyA6IHRzID8gW3RzXSA6IFtdOwogICAgICBpZiAodHlwZXMuZXZlcnkocnVsZXNfMS5pc0pTT05UeXBlKSkKICAgICAgICByZXR1cm4gdHlwZXM7CiAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBtdXN0IGJlIEpTT05UeXBlIG9yIEpTT05UeXBlW106ICIgKyB0eXBlcy5qb2luKCIsIikpOwogICAgfQogICAgZXhwb3J0czIuZ2V0SlNPTlR5cGVzID0gZ2V0SlNPTlR5cGVzOwogICAgZnVuY3Rpb24gY29lcmNlQW5kQ2hlY2tEYXRhVHlwZShpdCwgdHlwZXMpIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBjb2VyY2VUbyA9IGNvZXJjZVRvVHlwZXModHlwZXMsIG9wdHMuY29lcmNlVHlwZXMpOwogICAgICBjb25zdCBjaGVja1R5cGVzID0gdHlwZXMubGVuZ3RoID4gMCAmJiAhKGNvZXJjZVRvLmxlbmd0aCA9PT0gMCAmJiB0eXBlcy5sZW5ndGggPT09IDEgJiYgKDAsIGFwcGxpY2FiaWxpdHlfMS5zY2hlbWFIYXNSdWxlc0ZvclR5cGUpKGl0LCB0eXBlc1swXSkpOwogICAgICBpZiAoY2hlY2tUeXBlcykgewogICAgICAgIGNvbnN0IHdyb25nVHlwZSA9IGNoZWNrRGF0YVR5cGVzKHR5cGVzLCBkYXRhLCBvcHRzLnN0cmljdE51bWJlcnMsIERhdGFUeXBlLldyb25nKTsKICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoKSA9PiB7CiAgICAgICAgICBpZiAoY29lcmNlVG8ubGVuZ3RoKQogICAgICAgICAgICBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pOwogICAgICAgICAgZWxzZQogICAgICAgICAgICByZXBvcnRUeXBlRXJyb3IoaXQpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBjaGVja1R5cGVzOwogICAgfQogICAgZXhwb3J0czIuY29lcmNlQW5kQ2hlY2tEYXRhVHlwZSA9IGNvZXJjZUFuZENoZWNrRGF0YVR5cGU7CiAgICB2YXIgQ09FUkNJQkxFID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWyJzdHJpbmciLCAibnVtYmVyIiwgImludGVnZXIiLCAiYm9vbGVhbiIsICJudWxsIl0pOwogICAgZnVuY3Rpb24gY29lcmNlVG9UeXBlcyh0eXBlcywgY29lcmNlVHlwZXMpIHsKICAgICAgcmV0dXJuIGNvZXJjZVR5cGVzID8gdHlwZXMuZmlsdGVyKCh0KSA9PiBDT0VSQ0lCTEUuaGFzKHQpIHx8IGNvZXJjZVR5cGVzID09PSAiYXJyYXkiICYmIHQgPT09ICJhcnJheSIpIDogW107CiAgICB9CiAgICBmdW5jdGlvbiBjb2VyY2VEYXRhKGl0LCB0eXBlcywgY29lcmNlVG8pIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIG9wdHMgfSA9IGl0OwogICAgICBjb25zdCBkYXRhVHlwZSA9IGdlbi5sZXQoImRhdGFUeXBlIiwgKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfWApOwogICAgICBjb25zdCBjb2VyY2VkID0gZ2VuLmxldCgiY29lcmNlZCIsICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgIGlmIChvcHRzLmNvZXJjZVR5cGVzID09PSAiYXJyYXkiKSB7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT0gJ29iamVjdCcgJiYgQXJyYXkuaXNBcnJheSgke2RhdGF9KSAmJiAke2RhdGF9Lmxlbmd0aCA9PSAxYCwgKCkgPT4gZ2VuLmFzc2lnbihkYXRhLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX1bMF1gKS5hc3NpZ24oZGF0YVR5cGUsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7ZGF0YX1gKS5pZihjaGVja0RhdGFUeXBlcyh0eXBlcywgZGF0YSwgb3B0cy5zdHJpY3ROdW1iZXJzKSwgKCkgPT4gZ2VuLmFzc2lnbihjb2VyY2VkLCBkYXRhKSkpOwogICAgICB9CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGApOwogICAgICBmb3IgKGNvbnN0IHQgb2YgY29lcmNlVG8pIHsKICAgICAgICBpZiAoQ09FUkNJQkxFLmhhcyh0KSB8fCB0ID09PSAiYXJyYXkiICYmIG9wdHMuY29lcmNlVHlwZXMgPT09ICJhcnJheSIpIHsKICAgICAgICAgIGNvZXJjZVNwZWNpZmljVHlwZSh0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgZ2VuLmVsc2UoKTsKICAgICAgcmVwb3J0VHlwZUVycm9yKGl0KTsKICAgICAgZ2VuLmVuZElmKCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y29lcmNlZH0gIT09IHVuZGVmaW5lZGAsICgpID0+IHsKICAgICAgICBnZW4uYXNzaWduKGRhdGEsIGNvZXJjZWQpOwogICAgICAgIGFzc2lnblBhcmVudERhdGEoaXQsIGNvZXJjZWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY29lcmNlU3BlY2lmaWNUeXBlKHQpIHsKICAgICAgICBzd2l0Y2ggKHQpIHsKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGFUeXBlfSA9PSAibnVtYmVyIiB8fCAke2RhdGFUeXBlfSA9PSAiYm9vbGVhbiJgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWAiIiArICR7ZGF0YX1gKS5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSBudWxsYCkuYXNzaWduKGNvZXJjZWQsICgwLCBjb2RlZ2VuXzEuXylgIiJgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09ICJib29sZWFuIiB8fCAke2RhdGF9ID09PSBudWxsCiAgICAgICAgICAgICAgfHwgKCR7ZGF0YVR5cGV9ID09ICJzdHJpbmciICYmICR7ZGF0YX0gJiYgJHtkYXRhfSA9PSArJHtkYXRhfSlgKS5hc3NpZ24oY29lcmNlZCwgKDAsIGNvZGVnZW5fMS5fKWArJHtkYXRhfWApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbAogICAgICAgICAgICAgIHx8ICgke2RhdGFUeXBlfSA9PT0gInN0cmluZyIgJiYgJHtkYXRhfSAmJiAke2RhdGF9ID09ICske2RhdGF9ICYmICEoJHtkYXRhfSAlIDEpKWApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYCske2RhdGF9YCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNhc2UgImJvb2xlYW4iOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSA9PT0gImZhbHNlIiB8fCAke2RhdGF9ID09PSAwIHx8ICR7ZGF0YX0gPT09IG51bGxgKS5hc3NpZ24oY29lcmNlZCwgZmFsc2UpLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICJ0cnVlIiB8fCAke2RhdGF9ID09PSAxYCkuYXNzaWduKGNvZXJjZWQsIHRydWUpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgICAgZ2VuLmVsc2VJZigoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gPT09ICIiIHx8ICR7ZGF0YX0gPT09IDAgfHwgJHtkYXRhfSA9PT0gZmFsc2VgKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbihjb2VyY2VkLCBudWxsKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgICBnZW4uZWxzZUlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhVHlwZX0gPT09ICJzdHJpbmciIHx8ICR7ZGF0YVR5cGV9ID09PSAibnVtYmVyIgogICAgICAgICAgICAgIHx8ICR7ZGF0YVR5cGV9ID09PSAiYm9vbGVhbiIgfHwgJHtkYXRhfSA9PT0gbnVsbGApLmFzc2lnbihjb2VyY2VkLCAoMCwgY29kZWdlbl8xLl8pYFske2RhdGF9XWApOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYXNzaWduUGFyZW50RGF0YSh7IGdlbiwgcGFyZW50RGF0YSwgcGFyZW50RGF0YVByb3BlcnR5IH0sIGV4cHIpIHsKICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtwYXJlbnREYXRhfSAhPT0gdW5kZWZpbmVkYCwgKCkgPT4gZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cGFyZW50RGF0YX1bJHtwYXJlbnREYXRhUHJvcGVydHl9XWAsIGV4cHIpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrRGF0YVR5cGUoZGF0YVR5cGUsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QgPSBEYXRhVHlwZS5Db3JyZWN0KSB7CiAgICAgIGNvbnN0IEVRID0gY29ycmVjdCA9PT0gRGF0YVR5cGUuQ29ycmVjdCA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuRVEgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLk5FUTsKICAgICAgbGV0IGNvbmQ7CiAgICAgIHN3aXRjaCAoZGF0YVR5cGUpIHsKICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0gJHtFUX0gbnVsbGA7CiAgICAgICAgY2FzZSAiYXJyYXkiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJvYmplY3QiOgogICAgICAgICAgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSAmJiB0eXBlb2YgJHtkYXRhfSA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheSgke2RhdGF9KWA7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJpbnRlZ2VyIjoKICAgICAgICAgIGNvbmQgPSBudW1Db25kKCgwLCBjb2RlZ2VuXzEuXylgISgke2RhdGF9ICUgMSkgJiYgIWlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY29uZCA9IG51bUNvbmQoKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAke0VRfSAke2RhdGFUeXBlfWA7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvcnJlY3QgPT09IERhdGFUeXBlLkNvcnJlY3QgPyBjb25kIDogKDAsIGNvZGVnZW5fMS5ub3QpKGNvbmQpOwogICAgICBmdW5jdGlvbiBudW1Db25kKF9jb25kID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLmFuZCkoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSA9PSAibnVtYmVyImAsIF9jb25kLCBzdHJpY3ROdW1zID8gKDAsIGNvZGVnZW5fMS5fKWBpc0Zpbml0ZSgke2RhdGF9KWAgOiBjb2RlZ2VuXzEubmlsKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZSA9IGNoZWNrRGF0YVR5cGU7CiAgICBmdW5jdGlvbiBjaGVja0RhdGFUeXBlcyhkYXRhVHlwZXMsIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpIHsKICAgICAgaWYgKGRhdGFUeXBlcy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gY2hlY2tEYXRhVHlwZShkYXRhVHlwZXNbMF0sIGRhdGEsIHN0cmljdE51bXMsIGNvcnJlY3QpOwogICAgICB9CiAgICAgIGxldCBjb25kOwogICAgICBjb25zdCB0eXBlcyA9ICgwLCB1dGlsXzEudG9IYXNoKShkYXRhVHlwZXMpOwogICAgICBpZiAodHlwZXMuYXJyYXkgJiYgdHlwZXMub2JqZWN0KSB7CiAgICAgICAgY29uc3Qgbm90T2JqID0gKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtkYXRhfSAhPSAib2JqZWN0ImA7CiAgICAgICAgY29uZCA9IHR5cGVzLm51bGwgPyBub3RPYmogOiAoMCwgY29kZWdlbl8xLl8pYCEke2RhdGF9IHx8ICR7bm90T2JqfWA7CiAgICAgICAgZGVsZXRlIHR5cGVzLm51bGw7CiAgICAgICAgZGVsZXRlIHR5cGVzLmFycmF5OwogICAgICAgIGRlbGV0ZSB0eXBlcy5vYmplY3Q7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uZCA9IGNvZGVnZW5fMS5uaWw7CiAgICAgIH0KICAgICAgaWYgKHR5cGVzLm51bWJlcikKICAgICAgICBkZWxldGUgdHlwZXMuaW50ZWdlcjsKICAgICAgZm9yIChjb25zdCB0IGluIHR5cGVzKQogICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLmFuZCkoY29uZCwgY2hlY2tEYXRhVHlwZSh0LCBkYXRhLCBzdHJpY3ROdW1zLCBjb3JyZWN0KSk7CiAgICAgIHJldHVybiBjb25kOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tEYXRhVHlwZXMgPSBjaGVja0RhdGFUeXBlczsKICAgIHZhciB0eXBlRXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYTogc2NoZW1hMiB9KSA9PiBgbXVzdCBiZSAke3NjaGVtYTJ9YCwKICAgICAgcGFyYW1zOiAoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYVZhbHVlIH0pID0+IHR5cGVvZiBzY2hlbWEyID09ICJzdHJpbmciID8gKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWEyfX1gIDogKDAsIGNvZGVnZW5fMS5fKWB7dHlwZTogJHtzY2hlbWFWYWx1ZX19YAogICAgfTsKICAgIGZ1bmN0aW9uIHJlcG9ydFR5cGVFcnJvcihpdCkgewogICAgICBjb25zdCBjeHQgPSBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KTsKICAgICAgKDAsIGVycm9yc18xLnJlcG9ydEVycm9yKShjeHQsIHR5cGVFcnJvcik7CiAgICB9CiAgICBleHBvcnRzMi5yZXBvcnRUeXBlRXJyb3IgPSByZXBvcnRUeXBlRXJyb3I7CiAgICBmdW5jdGlvbiBnZXRUeXBlRXJyb3JDb250ZXh0KGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGl0OwogICAgICBjb25zdCBzY2hlbWFDb2RlID0gKDAsIHV0aWxfMS5zY2hlbWFSZWZPclZhbCkoaXQsIHNjaGVtYTIsICJ0eXBlIik7CiAgICAgIHJldHVybiB7CiAgICAgICAgZ2VuLAogICAgICAgIGtleXdvcmQ6ICJ0eXBlIiwKICAgICAgICBkYXRhLAogICAgICAgIHNjaGVtYTogc2NoZW1hMi50eXBlLAogICAgICAgIHNjaGVtYUNvZGUsCiAgICAgICAgc2NoZW1hVmFsdWU6IHNjaGVtYUNvZGUsCiAgICAgICAgcGFyZW50U2NoZW1hOiBzY2hlbWEyLAogICAgICAgIHBhcmFtczoge30sCiAgICAgICAgaXQKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMKdmFyIHJlcXVpcmVfZGVmYXVsdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUvZGVmYXVsdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmFzc2lnbkRlZmF1bHRzID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdHMoaXQsIHR5KSB7CiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgaXRlbXMgfSA9IGl0LnNjaGVtYTsKICAgICAgaWYgKHR5ID09PSAib2JqZWN0IiAmJiBwcm9wZXJ0aWVzKSB7CiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcHJvcGVydGllcykgewogICAgICAgICAgYXNzaWduRGVmYXVsdChpdCwga2V5LCBwcm9wZXJ0aWVzW2tleV0uZGVmYXVsdCk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHR5ID09PSAiYXJyYXkiICYmIEFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgaXRlbXMuZm9yRWFjaCgoc2NoLCBpKSA9PiBhc3NpZ25EZWZhdWx0KGl0LCBpLCBzY2guZGVmYXVsdCkpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hc3NpZ25EZWZhdWx0cyA9IGFzc2lnbkRlZmF1bHRzOwogICAgZnVuY3Rpb24gYXNzaWduRGVmYXVsdChpdCwgcHJvcCwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBjb21wb3NpdGVSdWxlLCBkYXRhLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKGRlZmF1bHRWYWx1ZSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgY29uc3QgY2hpbGREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wKX1gOwogICAgICBpZiAoY29tcG9zaXRlUnVsZSkgewogICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYGRlZmF1bHQgaXMgaWdub3JlZCBmb3I6ICR7Y2hpbGREYXRhfWApOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBsZXQgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NoaWxkRGF0YX0gPT09IHVuZGVmaW5lZGA7CiAgICAgIGlmIChvcHRzLnVzZURlZmF1bHRzID09PSAiZW1wdHkiKSB7CiAgICAgICAgY29uZGl0aW9uID0gKDAsIGNvZGVnZW5fMS5fKWAke2NvbmRpdGlvbn0gfHwgJHtjaGlsZERhdGF9ID09PSBudWxsIHx8ICR7Y2hpbGREYXRhfSA9PT0gIiJgOwogICAgICB9CiAgICAgIGdlbi5pZihjb25kaXRpb24sICgwLCBjb2RlZ2VuXzEuXylgJHtjaGlsZERhdGF9ID0gJHsoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkoZGVmYXVsdFZhbHVlKX1gKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb2RlLmpzCnZhciByZXF1aXJlX2NvZGUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29kZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVVbmlvbiA9IGV4cG9ydHMyLnZhbGlkYXRlQXJyYXkgPSBleHBvcnRzMi51c2VQYXR0ZXJuID0gZXhwb3J0czIuY2FsbFZhbGlkYXRlQ29kZSA9IGV4cG9ydHMyLnNjaGVtYVByb3BlcnRpZXMgPSBleHBvcnRzMi5hbGxTY2hlbWFQcm9wZXJ0aWVzID0gZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IGV4cG9ydHMyLnByb3BlcnR5SW5EYXRhID0gZXhwb3J0czIuaXNPd25Qcm9wZXJ0eSA9IGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gZXhwb3J0czIucmVwb3J0TWlzc2luZ1Byb3AgPSBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgZnVuY3Rpb24gY2hlY2tSZXBvcnRNaXNzaW5nUHJvcChjeHQsIHByb3ApIHsKICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGdlbi5pZihub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gewogICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6ICgwLCBjb2RlZ2VuXzEuXylgJHtwcm9wfWAgfSwgdHJ1ZSk7CiAgICAgICAgY3h0LmVycm9yKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCA9IGNoZWNrUmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBjaGVja01pc3NpbmdQcm9wKHsgZ2VuLCBkYXRhLCBpdDogeyBvcHRzIH0gfSwgcHJvcGVydGllcywgbWlzc2luZykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5vcikoLi4ucHJvcGVydGllcy5tYXAoKHByb3ApID0+ICgwLCBjb2RlZ2VuXzEuYW5kKShub1Byb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKDAsIGNvZGVnZW5fMS5fKWAke21pc3Npbmd9ID0gJHtwcm9wfWApKSk7CiAgICB9CiAgICBleHBvcnRzMi5jaGVja01pc3NpbmdQcm9wID0gY2hlY2tNaXNzaW5nUHJvcDsKICAgIGZ1bmN0aW9uIHJlcG9ydE1pc3NpbmdQcm9wKGN4dCwgbWlzc2luZykgewogICAgICBjeHQuc2V0UGFyYW1zKHsgbWlzc2luZ1Byb3BlcnR5OiBtaXNzaW5nIH0sIHRydWUpOwogICAgICBjeHQuZXJyb3IoKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydE1pc3NpbmdQcm9wID0gcmVwb3J0TWlzc2luZ1Byb3A7CiAgICBmdW5jdGlvbiBoYXNQcm9wRnVuYyhnZW4pIHsKICAgICAgcmV0dXJuIGdlbi5zY29wZVZhbHVlKCJmdW5jIiwgewogICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvdW5ib3VuZC1tZXRob2QKICAgICAgICByZWY6IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5YAogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmhhc1Byb3BGdW5jID0gaGFzUHJvcEZ1bmM7CiAgICBmdW5jdGlvbiBpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpIHsKICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtoYXNQcm9wRnVuYyhnZW4pfS5jYWxsKCR7ZGF0YX0sICR7cHJvcGVydHl9KWA7CiAgICB9CiAgICBleHBvcnRzMi5pc093blByb3BlcnR5ID0gaXNPd25Qcm9wZXJ0eTsKICAgIGZ1bmN0aW9uIHByb3BlcnR5SW5EYXRhKGdlbiwgZGF0YSwgcHJvcGVydHksIG93blByb3BlcnRpZXMpIHsKICAgICAgY29uc3QgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkocHJvcGVydHkpfSAhPT0gdW5kZWZpbmVkYDsKICAgICAgcmV0dXJuIG93blByb3BlcnRpZXMgPyAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpfWAgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIucHJvcGVydHlJbkRhdGEgPSBwcm9wZXJ0eUluRGF0YTsKICAgIGZ1bmN0aW9uIG5vUHJvcGVydHlJbkRhdGEoZ2VuLCBkYXRhLCBwcm9wZXJ0eSwgb3duUHJvcGVydGllcykgewogICAgICBjb25zdCBjb25kID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShwcm9wZXJ0eSl9ID09PSB1bmRlZmluZWRgOwogICAgICByZXR1cm4gb3duUHJvcGVydGllcyA/ICgwLCBjb2RlZ2VuXzEub3IpKGNvbmQsICgwLCBjb2RlZ2VuXzEubm90KShpc093blByb3BlcnR5KGdlbiwgZGF0YSwgcHJvcGVydHkpKSkgOiBjb25kOwogICAgfQogICAgZXhwb3J0czIubm9Qcm9wZXJ0eUluRGF0YSA9IG5vUHJvcGVydHlJbkRhdGE7CiAgICBmdW5jdGlvbiBhbGxTY2hlbWFQcm9wZXJ0aWVzKHNjaGVtYU1hcCkgewogICAgICByZXR1cm4gc2NoZW1hTWFwID8gT2JqZWN0LmtleXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+IHAgIT09ICJfX3Byb3RvX18iKSA6IFtdOwogICAgfQogICAgZXhwb3J0czIuYWxsU2NoZW1hUHJvcGVydGllcyA9IGFsbFNjaGVtYVByb3BlcnRpZXM7CiAgICBmdW5jdGlvbiBzY2hlbWFQcm9wZXJ0aWVzKGl0LCBzY2hlbWFNYXApIHsKICAgICAgcmV0dXJuIGFsbFNjaGVtYVByb3BlcnRpZXMoc2NoZW1hTWFwKS5maWx0ZXIoKHApID0+ICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hTWFwW3BdKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlbWFQcm9wZXJ0aWVzID0gc2NoZW1hUHJvcGVydGllczsKICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZUNvZGUoeyBzY2hlbWFDb2RlLCBkYXRhLCBpdDogeyBnZW4sIHRvcFNjaGVtYVJlZiwgc2NoZW1hUGF0aCwgZXJyb3JQYXRoIH0sIGl0IH0sIGZ1bmMsIGNvbnRleHQsIHBhc3NTY2hlbWEpIHsKICAgICAgY29uc3QgZGF0YUFuZFNjaGVtYSA9IHBhc3NTY2hlbWEgPyAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0sICR7ZGF0YX0sICR7dG9wU2NoZW1hUmVmfSR7c2NoZW1hUGF0aH1gIDogZGF0YTsKICAgICAgY29uc3QgdmFsQ3h0ID0gWwogICAgICAgIFtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLnN0ckNvbmNhdCkobmFtZXNfMS5kZWZhdWx0Lmluc3RhbmNlUGF0aCwgZXJyb3JQYXRoKV0sCiAgICAgICAgW25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhLCBpdC5wYXJlbnREYXRhXSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgaXQucGFyZW50RGF0YVByb3BlcnR5XSwKICAgICAgICBbbmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhLCBuYW1lc18xLmRlZmF1bHQucm9vdERhdGFdCiAgICAgIF07CiAgICAgIGlmIChpdC5vcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgdmFsQ3h0LnB1c2goW25hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgbmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzXSk7CiAgICAgIGNvbnN0IGFyZ3MgPSAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YUFuZFNjaGVtYX0sICR7Z2VuLm9iamVjdCguLi52YWxDeHQpfWA7CiAgICAgIHJldHVybiBjb250ZXh0ICE9PSBjb2RlZ2VuXzEubmlsID8gKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9LmNhbGwoJHtjb250ZXh0fSwgJHthcmdzfSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2Z1bmN9KCR7YXJnc30pYDsKICAgIH0KICAgIGV4cG9ydHMyLmNhbGxWYWxpZGF0ZUNvZGUgPSBjYWxsVmFsaWRhdGVDb2RlOwogICAgdmFyIG5ld1JlZ0V4cCA9ICgwLCBjb2RlZ2VuXzEuXylgbmV3IFJlZ0V4cGA7CiAgICBmdW5jdGlvbiB1c2VQYXR0ZXJuKHsgZ2VuLCBpdDogeyBvcHRzIH0gfSwgcGF0dGVybikgewogICAgICBjb25zdCB1ID0gb3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgIGNvbnN0IHsgcmVnRXhwIH0gPSBvcHRzLmNvZGU7CiAgICAgIGNvbnN0IHJ4ID0gcmVnRXhwKHBhdHRlcm4sIHUpOwogICAgICByZXR1cm4gZ2VuLnNjb3BlVmFsdWUoInBhdHRlcm4iLCB7CiAgICAgICAga2V5OiByeC50b1N0cmluZygpLAogICAgICAgIHJlZjogcngsCiAgICAgICAgY29kZTogKDAsIGNvZGVnZW5fMS5fKWAke3JlZ0V4cC5jb2RlID09PSAibmV3IFJlZ0V4cCIgPyBuZXdSZWdFeHAgOiAoMCwgdXRpbF8yLnVzZUZ1bmMpKGdlbiwgcmVnRXhwKX0oJHtwYXR0ZXJufSwgJHt1fSlgCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudXNlUGF0dGVybiA9IHVzZVBhdHRlcm47CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUFycmF5KGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgaWYgKGl0LmFsbEVycm9ycykgewogICAgICAgIGNvbnN0IHZhbGlkQXJyID0gZ2VuLmxldCgidmFsaWQiLCB0cnVlKTsKICAgICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5hc3NpZ24odmFsaWRBcnIsIGZhbHNlKSk7CiAgICAgICAgcmV0dXJuIHZhbGlkQXJyOwogICAgICB9CiAgICAgIGdlbi52YXIodmFsaWQsIHRydWUpOwogICAgICB2YWxpZGF0ZUl0ZW1zKCgpID0+IGdlbi5icmVhaygpKTsKICAgICAgcmV0dXJuIHZhbGlkOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUl0ZW1zKG5vdFZhbGlkKSB7CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQsCiAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLk51bQogICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksIG5vdFZhbGlkKTsKICAgICAgICB9KTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVBcnJheSA9IHZhbGlkYXRlQXJyYXk7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaW9uKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgY29uc3QgYWx3YXlzVmFsaWQgPSBzY2hlbWEyLnNvbWUoKHNjaCkgPT4gKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpOwogICAgICBpZiAoYWx3YXlzVmFsaWQgJiYgIWl0Lm9wdHMudW5ldmFsdWF0ZWQpCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHNjaGVtYTIuZm9yRWFjaCgoX3NjaCwgaSkgPT4gewogICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAga2V5d29yZCwKICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHt2YWxpZH0gfHwgJHtzY2hWYWxpZH1gKTsKICAgICAgICBjb25zdCBtZXJnZWQgPSBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHNjaFZhbGlkKTsKICAgICAgICBpZiAoIW1lcmdlZCkKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpKTsKICAgICAgfSkpOwogICAgICBjeHQucmVzdWx0KHZhbGlkLCAoKSA9PiBjeHQucmVzZXQoKSwgKCkgPT4gY3h0LmVycm9yKHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlVW5pb24gPSB2YWxpZGF0ZVVuaW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9rZXl3b3JkLmpzCnZhciByZXF1aXJlX2tleXdvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvdmFsaWRhdGUva2V5d29yZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmFsaWRhdGVLZXl3b3JkVXNhZ2UgPSBleHBvcnRzMi52YWxpZFNjaGVtYVR5cGUgPSBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIG1hY3JvS2V5d29yZENvZGUoY3h0LCBkZWYpIHsKICAgICAgY29uc3QgeyBnZW4sIGtleXdvcmQsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICBjb25zdCBtYWNyb1NjaGVtYSA9IGRlZi5tYWNyby5jYWxsKGl0LnNlbGYsIHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpOwogICAgICBjb25zdCBzY2hlbWFSZWYgPSB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgbWFjcm9TY2hlbWEpOwogICAgICBpZiAoaXQub3B0cy52YWxpZGF0ZVNjaGVtYSAhPT0gZmFsc2UpCiAgICAgICAgaXQuc2VsZi52YWxpZGF0ZVNjaGVtYShtYWNyb1NjaGVtYSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgIGN4dC5zdWJzY2hlbWEoewogICAgICAgIHNjaGVtYTogbWFjcm9TY2hlbWEsCiAgICAgICAgc2NoZW1hUGF0aDogY29kZWdlbl8xLm5pbCwKICAgICAgICBlcnJTY2hlbWFQYXRoOiBgJHtpdC5lcnJTY2hlbWFQYXRofS8ke2tleXdvcmR9YCwKICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaGVtYVJlZiwKICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgIH0sIHZhbGlkKTsKICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICB9CiAgICBleHBvcnRzMi5tYWNyb0tleXdvcmRDb2RlID0gbWFjcm9LZXl3b3JkQ29kZTsKICAgIGZ1bmN0aW9uIGZ1bmNLZXl3b3JkQ29kZShjeHQsIGRlZikgewogICAgICB2YXIgX2E7CiAgICAgIGNvbnN0IHsgZ2VuLCBrZXl3b3JkLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgJGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgIGNoZWNrQXN5bmNLZXl3b3JkKGl0LCBkZWYpOwogICAgICBjb25zdCB2YWxpZGF0ZSA9ICEkZGF0YSAmJiBkZWYuY29tcGlsZSA/IGRlZi5jb21waWxlLmNhbGwoaXQuc2VsZiwgc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCkgOiBkZWYudmFsaWRhdGU7CiAgICAgIGNvbnN0IHZhbGlkYXRlUmVmID0gdXNlS2V5d29yZChnZW4sIGtleXdvcmQsIHZhbGlkYXRlKTsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgdmFsaWRhdGVLZXl3b3JkKTsKICAgICAgY3h0Lm9rKChfYSA9IGRlZi52YWxpZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsaWQpOwogICAgICBmdW5jdGlvbiB2YWxpZGF0ZUtleXdvcmQoKSB7CiAgICAgICAgaWYgKGRlZi5lcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICBhc3NpZ25WYWxpZCgpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBydWxlRXJycyA9IGRlZi5hc3luYyA/IHZhbGlkYXRlQXN5bmMoKSA6IHZhbGlkYXRlU3luYygpOwogICAgICAgICAgaWYgKGRlZi5tb2RpZnlpbmcpCiAgICAgICAgICAgIG1vZGlmeURhdGEoY3h0KTsKICAgICAgICAgIHJlcG9ydEVycnMoKCkgPT4gYWRkRXJycyhjeHQsIHJ1bGVFcnJzKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlQXN5bmMoKSB7CiAgICAgICAgY29uc3QgcnVsZUVycnMgPSBnZW4ubGV0KCJydWxlRXJycyIsIG51bGwpOwogICAgICAgIGdlbi50cnkoKCkgPT4gYXNzaWduVmFsaWQoKDAsIGNvZGVnZW5fMS5fKWBhd2FpdCBgKSwgKGUpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5pZigoMCwgY29kZWdlbl8xLl8pYCR7ZX0gaW5zdGFuY2VvZiAke2l0LlZhbGlkYXRpb25FcnJvcn1gLCAoKSA9PiBnZW4uYXNzaWduKHJ1bGVFcnJzLCAoMCwgY29kZWdlbl8xLl8pYCR7ZX0uZXJyb3JzYCksICgpID0+IGdlbi50aHJvdyhlKSkpOwogICAgICAgIHJldHVybiBydWxlRXJyczsKICAgICAgfQogICAgICBmdW5jdGlvbiB2YWxpZGF0ZVN5bmMoKSB7CiAgICAgICAgY29uc3QgdmFsaWRhdGVFcnJzID0gKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlUmVmfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWRhdGVFcnJzLCBudWxsKTsKICAgICAgICBhc3NpZ25WYWxpZChjb2RlZ2VuXzEubmlsKTsKICAgICAgICByZXR1cm4gdmFsaWRhdGVFcnJzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFzc2lnblZhbGlkKF9hd2FpdCA9IGRlZi5hc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgYXdhaXQgYCA6IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBjb25zdCBwYXNzQ3h0ID0gaXQub3B0cy5wYXNzQ29udGV4dCA/IG5hbWVzXzEuZGVmYXVsdC50aGlzIDogbmFtZXNfMS5kZWZhdWx0LnNlbGY7CiAgICAgICAgY29uc3QgcGFzc1NjaGVtYSA9ICEoImNvbXBpbGUiIGluIGRlZiAmJiAhJGRhdGEgfHwgZGVmLnNjaGVtYSA9PT0gZmFsc2UpOwogICAgICAgIGdlbi5hc3NpZ24odmFsaWQsICgwLCBjb2RlZ2VuXzEuXylgJHtfYXdhaXR9JHsoMCwgY29kZV8xLmNhbGxWYWxpZGF0ZUNvZGUpKGN4dCwgdmFsaWRhdGVSZWYsIHBhc3NDeHQsIHBhc3NTY2hlbWEpfWAsIGRlZi5tb2RpZnlpbmcpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlcG9ydEVycnMoZXJyb3JzKSB7CiAgICAgICAgdmFyIF9hMjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKChfYTIgPSBkZWYudmFsaWQpICE9PSBudWxsICYmIF9hMiAhPT0gdm9pZCAwID8gX2EyIDogdmFsaWQpLCBlcnJvcnMpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5mdW5jS2V5d29yZENvZGUgPSBmdW5jS2V5d29yZENvZGU7CiAgICBmdW5jdGlvbiBtb2RpZnlEYXRhKGN4dCkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwgaXQgfSA9IGN4dDsKICAgICAgZ2VuLmlmKGl0LnBhcmVudERhdGEsICgpID0+IGdlbi5hc3NpZ24oZGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LnBhcmVudERhdGF9WyR7aXQucGFyZW50RGF0YVByb3BlcnR5fV1gKSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRFcnJzKGN4dCwgZXJycykgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWBBcnJheS5pc0FycmF5KCR7ZXJyc30pYCwgKCkgPT4gewogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCkuYXNzaWduKG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30ubGVuZ3RoYCk7CiAgICAgICAgKDAsIGVycm9yc18xLmV4dGVuZEVycm9ycykoY3h0KTsKICAgICAgfSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY0tleXdvcmQoeyBzY2hlbWFFbnYgfSwgZGVmKSB7CiAgICAgIGlmIChkZWYuYXN5bmMgJiYgIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhc3luYyBrZXl3b3JkIGluIHN5bmMgc2NoZW1hIik7CiAgICB9CiAgICBmdW5jdGlvbiB1c2VLZXl3b3JkKGdlbiwga2V5d29yZCwgcmVzdWx0KSB7CiAgICAgIGlmIChyZXN1bHQgPT09IHZvaWQgMCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGtleXdvcmQgIiR7a2V5d29yZH0iIGZhaWxlZCB0byBjb21waWxlYCk7CiAgICAgIHJldHVybiBnZW4uc2NvcGVWYWx1ZSgia2V5d29yZCIsIHR5cGVvZiByZXN1bHQgPT0gImZ1bmN0aW9uIiA/IHsgcmVmOiByZXN1bHQgfSA6IHsgcmVmOiByZXN1bHQsIGNvZGU6ICgwLCBjb2RlZ2VuXzEuc3RyaW5naWZ5KShyZXN1bHQpIH0pOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRTY2hlbWFUeXBlKHNjaGVtYTIsIHNjaGVtYVR5cGUsIGFsbG93VW5kZWZpbmVkID0gZmFsc2UpIHsKICAgICAgcmV0dXJuICFzY2hlbWFUeXBlLmxlbmd0aCB8fCBzY2hlbWFUeXBlLnNvbWUoKHN0KSA9PiBzdCA9PT0gImFycmF5IiA/IEFycmF5LmlzQXJyYXkoc2NoZW1hMikgOiBzdCA9PT0gIm9iamVjdCIgPyBzY2hlbWEyICYmIHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICFBcnJheS5pc0FycmF5KHNjaGVtYTIpIDogdHlwZW9mIHNjaGVtYTIgPT0gc3QgfHwgYWxsb3dVbmRlZmluZWQgJiYgdHlwZW9mIHNjaGVtYTIgPT0gInVuZGVmaW5lZCIpOwogICAgfQogICAgZXhwb3J0czIudmFsaWRTY2hlbWFUeXBlID0gdmFsaWRTY2hlbWFUeXBlOwogICAgZnVuY3Rpb24gdmFsaWRhdGVLZXl3b3JkVXNhZ2UoeyBzY2hlbWE6IHNjaGVtYTIsIG9wdHMsIHNlbGY6IHNlbGYyLCBlcnJTY2hlbWFQYXRoIH0sIGRlZiwga2V5d29yZCkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShkZWYua2V5d29yZCkgPyAhZGVmLmtleXdvcmQuaW5jbHVkZXMoa2V5d29yZCkgOiBkZWYua2V5d29yZCAhPT0ga2V5d29yZCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiYWp2IGltcGxlbWVudGF0aW9uIGVycm9yIik7CiAgICAgIH0KICAgICAgY29uc3QgZGVwcyA9IGRlZi5kZXBlbmRlbmNpZXM7CiAgICAgIGlmIChkZXBzID09PSBudWxsIHx8IGRlcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlcHMuc29tZSgoa3dkKSA9PiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNjaGVtYTIsIGt3ZCkpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXJlbnQgc2NoZW1hIG11c3QgaGF2ZSBkZXBlbmRlbmNpZXMgb2YgJHtrZXl3b3JkfTogJHtkZXBzLmpvaW4oIiwiKX1gKTsKICAgICAgfQogICAgICBpZiAoZGVmLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgY29uc3QgdmFsaWQgPSBkZWYudmFsaWRhdGVTY2hlbWEoc2NoZW1hMltrZXl3b3JkXSk7CiAgICAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICAgY29uc3QgbXNnID0gYGtleXdvcmQgIiR7a2V5d29yZH0iIHZhbHVlIGlzIGludmFsaWQgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSI6IGAgKyBzZWxmMi5lcnJvcnNUZXh0KGRlZi52YWxpZGF0ZVNjaGVtYS5lcnJvcnMpOwogICAgICAgICAgaWYgKG9wdHMudmFsaWRhdGVTY2hlbWEgPT09ICJsb2ciKQogICAgICAgICAgICBzZWxmMi5sb2dnZXIuZXJyb3IobXNnKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi52YWxpZGF0ZUtleXdvcmRVc2FnZSA9IHZhbGlkYXRlS2V5d29yZFVzYWdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS92YWxpZGF0ZS9zdWJzY2hlbWEuanMKdmFyIHJlcXVpcmVfc3Vic2NoZW1hID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL3N1YnNjaGVtYS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4cG9ydHMyLmV4dGVuZFN1YnNjaGVtYURhdGEgPSBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSB2b2lkIDA7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICBmdW5jdGlvbiBnZXRTdWJzY2hlbWEoaXQsIHsga2V5d29yZCwgc2NoZW1hUHJvcCwgc2NoZW1hOiBzY2hlbWEyLCBzY2hlbWFQYXRoLCBlcnJTY2hlbWFQYXRoLCB0b3BTY2hlbWFSZWYgfSkgewogICAgICBpZiAoa2V5d29yZCAhPT0gdm9pZCAwICYmIHNjaGVtYTIgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAia2V5d29yZCIgYW5kICJzY2hlbWEiIHBhc3NlZCwgb25seSBvbmUgYWxsb3dlZCcpOwogICAgICB9CiAgICAgIGlmIChrZXl3b3JkICE9PSB2b2lkIDApIHsKICAgICAgICBjb25zdCBzY2ggPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgcmV0dXJuIHNjaGVtYVByb3AgPT09IHZvaWQgMCA/IHsKICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgc2NoZW1hUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAke2l0LnNjaGVtYVBhdGh9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShrZXl3b3JkKX1gLAogICAgICAgICAgZXJyU2NoZW1hUGF0aDogYCR7aXQuZXJyU2NoZW1hUGF0aH0vJHtrZXl3b3JkfWAKICAgICAgICB9IDogewogICAgICAgICAgc2NoZW1hOiBzY2hbc2NoZW1hUHJvcF0sCiAgICAgICAgICBzY2hlbWFQYXRoOiAoMCwgY29kZWdlbl8xLl8pYCR7aXQuc2NoZW1hUGF0aH0keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKGtleXdvcmQpfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoc2NoZW1hUHJvcCl9YCwKICAgICAgICAgIGVyclNjaGVtYVBhdGg6IGAke2l0LmVyclNjaGVtYVBhdGh9LyR7a2V5d29yZH0vJHsoMCwgdXRpbF8xLmVzY2FwZUZyYWdtZW50KShzY2hlbWFQcm9wKX1gCiAgICAgICAgfTsKICAgICAgfQogICAgICBpZiAoc2NoZW1hMiAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKHNjaGVtYVBhdGggPT09IHZvaWQgMCB8fCBlcnJTY2hlbWFQYXRoID09PSB2b2lkIDAgfHwgdG9wU2NoZW1hUmVmID09PSB2b2lkIDApIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcignInNjaGVtYVBhdGgiLCAiZXJyU2NoZW1hUGF0aCIgYW5kICJ0b3BTY2hlbWFSZWYiIGFyZSByZXF1aXJlZCB3aXRoICJzY2hlbWEiJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzY2hlbWE6IHNjaGVtYTIsCiAgICAgICAgICBzY2hlbWFQYXRoLAogICAgICAgICAgdG9wU2NoZW1hUmVmLAogICAgICAgICAgZXJyU2NoZW1hUGF0aAogICAgICAgIH07CiAgICAgIH0KICAgICAgdGhyb3cgbmV3IEVycm9yKCdlaXRoZXIgImtleXdvcmQiIG9yICJzY2hlbWEiIG11c3QgYmUgcGFzc2VkJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRTdWJzY2hlbWEgPSBnZXRTdWJzY2hlbWE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFEYXRhKHN1YnNjaGVtYSwgaXQsIHsgZGF0YVByb3AsIGRhdGFQcm9wVHlwZTogZHBUeXBlLCBkYXRhLCBkYXRhVHlwZXMsIHByb3BlcnR5TmFtZSB9KSB7CiAgICAgIGlmIChkYXRhICE9PSB2b2lkIDAgJiYgZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcignYm90aCAiZGF0YSIgYW5kICJkYXRhUHJvcCIgcGFzc2VkLCBvbmx5IG9uZSBhbGxvd2VkJyk7CiAgICAgIH0KICAgICAgY29uc3QgeyBnZW4gfSA9IGl0OwogICAgICBpZiAoZGF0YVByb3AgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHsgZXJyb3JQYXRoLCBkYXRhUGF0aEFyciwgb3B0cyB9ID0gaXQ7CiAgICAgICAgY29uc3QgbmV4dERhdGEgPSBnZW4ubGV0KCJkYXRhIiwgKDAsIGNvZGVnZW5fMS5fKWAke2l0LmRhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KShkYXRhUHJvcCl9YCwgdHJ1ZSk7CiAgICAgICAgZGF0YUNvbnRleHRQcm9wcyhuZXh0RGF0YSk7CiAgICAgICAgc3Vic2NoZW1hLmVycm9yUGF0aCA9ICgwLCBjb2RlZ2VuXzEuc3RyKWAke2Vycm9yUGF0aH0keygwLCB1dGlsXzEuZ2V0RXJyb3JQYXRoKShkYXRhUHJvcCwgZHBUeXBlLCBvcHRzLmpzUHJvcGVydHlTeW50YXgpfWA7CiAgICAgICAgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eSA9ICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhUHJvcH1gOwogICAgICAgIHN1YnNjaGVtYS5kYXRhUGF0aEFyciA9IFsuLi5kYXRhUGF0aEFyciwgc3Vic2NoZW1hLnBhcmVudERhdGFQcm9wZXJ0eV07CiAgICAgIH0KICAgICAgaWYgKGRhdGEgIT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IG5leHREYXRhID0gZGF0YSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lID8gZGF0YSA6IGdlbi5sZXQoImRhdGEiLCBkYXRhLCB0cnVlKTsKICAgICAgICBkYXRhQ29udGV4dFByb3BzKG5leHREYXRhKTsKICAgICAgICBpZiAocHJvcGVydHlOYW1lICE9PSB2b2lkIDApCiAgICAgICAgICBzdWJzY2hlbWEucHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwogICAgICB9CiAgICAgIGlmIChkYXRhVHlwZXMpCiAgICAgICAgc3Vic2NoZW1hLmRhdGFUeXBlcyA9IGRhdGFUeXBlczsKICAgICAgZnVuY3Rpb24gZGF0YUNvbnRleHRQcm9wcyhfbmV4dERhdGEpIHsKICAgICAgICBzdWJzY2hlbWEuZGF0YSA9IF9uZXh0RGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YUxldmVsID0gaXQuZGF0YUxldmVsICsgMTsKICAgICAgICBzdWJzY2hlbWEuZGF0YVR5cGVzID0gW107CiAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHN1YnNjaGVtYS5wYXJlbnREYXRhID0gaXQuZGF0YTsKICAgICAgICBzdWJzY2hlbWEuZGF0YU5hbWVzID0gWy4uLml0LmRhdGFOYW1lcywgX25leHREYXRhXTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hRGF0YSA9IGV4dGVuZFN1YnNjaGVtYURhdGE7CiAgICBmdW5jdGlvbiBleHRlbmRTdWJzY2hlbWFNb2RlKHN1YnNjaGVtYSwgeyBqdGREaXNjcmltaW5hdG9yLCBqdGRNZXRhZGF0YSwgY29tcG9zaXRlUnVsZSwgY3JlYXRlRXJyb3JzLCBhbGxFcnJvcnMgfSkgewogICAgICBpZiAoY29tcG9zaXRlUnVsZSAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jb21wb3NpdGVSdWxlID0gY29tcG9zaXRlUnVsZTsKICAgICAgaWYgKGNyZWF0ZUVycm9ycyAhPT0gdm9pZCAwKQogICAgICAgIHN1YnNjaGVtYS5jcmVhdGVFcnJvcnMgPSBjcmVhdGVFcnJvcnM7CiAgICAgIGlmIChhbGxFcnJvcnMgIT09IHZvaWQgMCkKICAgICAgICBzdWJzY2hlbWEuYWxsRXJyb3JzID0gYWxsRXJyb3JzOwogICAgICBzdWJzY2hlbWEuanRkRGlzY3JpbWluYXRvciA9IGp0ZERpc2NyaW1pbmF0b3I7CiAgICAgIHN1YnNjaGVtYS5qdGRNZXRhZGF0YSA9IGp0ZE1ldGFkYXRhOwogICAgfQogICAgZXhwb3J0czIuZXh0ZW5kU3Vic2NoZW1hTW9kZSA9IGV4dGVuZFN1YnNjaGVtYU1vZGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtZGVlcC1lcXVhbC1ucG0tMy4xLjMtNzkwZWRjZmNmNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtZGVlcC1lcXVhbC9pbmRleC5qcwp2YXIgcmVxdWlyZV9mYXN0X2RlZXBfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC1kZWVwLWVxdWFsLW5wbS0zLjEuMy03OTBlZGNmY2Y1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC1kZWVwLWVxdWFsL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gZXF1YWwoYSwgYikgewogICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7CiAgICAgIGlmIChhICYmIGIgJiYgdHlwZW9mIGEgPT0gIm9iamVjdCIgJiYgdHlwZW9mIGIgPT0gIm9iamVjdCIpIHsKICAgICAgICBpZiAoYS5jb25zdHJ1Y3RvciAhPT0gYi5jb25zdHJ1Y3RvcikgcmV0dXJuIGZhbHNlOwogICAgICAgIHZhciBsZW5ndGgsIGksIGtleXM7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHsKICAgICAgICAgIGxlbmd0aCA9IGEubGVuZ3RoOwogICAgICAgICAgaWYgKGxlbmd0aCAhPSBiLmxlbmd0aCkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgICAgaWYgKCFlcXVhbChhW2ldLCBiW2ldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGlmIChhLmNvbnN0cnVjdG9yID09PSBSZWdFeHApIHJldHVybiBhLnNvdXJjZSA9PT0gYi5zb3VyY2UgJiYgYS5mbGFncyA9PT0gYi5mbGFnczsKICAgICAgICBpZiAoYS52YWx1ZU9mICE9PSBPYmplY3QucHJvdG90eXBlLnZhbHVlT2YpIHJldHVybiBhLnZhbHVlT2YoKSA9PT0gYi52YWx1ZU9mKCk7CiAgICAgICAgaWYgKGEudG9TdHJpbmcgIT09IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcpIHJldHVybiBhLnRvU3RyaW5nKCkgPT09IGIudG9TdHJpbmcoKTsKICAgICAgICBrZXlzID0gT2JqZWN0LmtleXMoYSk7CiAgICAgICAgbGVuZ3RoID0ga2V5cy5sZW5ndGg7CiAgICAgICAgaWYgKGxlbmd0aCAhPT0gT2JqZWN0LmtleXMoYikubGVuZ3RoKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkKICAgICAgICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIsIGtleXNbaV0pKSByZXR1cm4gZmFsc2U7CiAgICAgICAgZm9yIChpID0gbGVuZ3RoOyBpLS0gIT09IDA7ICkgewogICAgICAgICAgdmFyIGtleSA9IGtleXNbaV07CiAgICAgICAgICBpZiAoIWVxdWFsKGFba2V5XSwgYltrZXldKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gYSAhPT0gYSAmJiBiICE9PSBiOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbi1zY2hlbWEtdHJhdmVyc2UtbnBtLTEuMC4wLWZiMzY4NGY0ZjAtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uLXNjaGVtYS10cmF2ZXJzZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9qc29uX3NjaGVtYV90cmF2ZXJzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uLXNjaGVtYS10cmF2ZXJzZS1ucG0tMS4wLjAtZmIzNjg0ZjRmMC0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb24tc2NoZW1hLXRyYXZlcnNlL2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHRyYXZlcnNlID0gbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24oc2NoZW1hMiwgb3B0cywgY2IpIHsKICAgICAgaWYgKHR5cGVvZiBvcHRzID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjYiA9IG9wdHM7CiAgICAgICAgb3B0cyA9IHt9OwogICAgICB9CiAgICAgIGNiID0gb3B0cy5jYiB8fCBjYjsKICAgICAgdmFyIHByZSA9IHR5cGVvZiBjYiA9PSAiZnVuY3Rpb24iID8gY2IgOiBjYi5wcmUgfHwgZnVuY3Rpb24oKSB7CiAgICAgIH07CiAgICAgIHZhciBwb3N0ID0gY2IucG9zdCB8fCBmdW5jdGlvbigpIHsKICAgICAgfTsKICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwgIiIsIHNjaGVtYTIpOwogICAgfTsKICAgIHRyYXZlcnNlLmtleXdvcmRzID0gewogICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgIGl0ZW1zOiB0cnVlLAogICAgICBjb250YWluczogdHJ1ZSwKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgIHByb3BlcnR5TmFtZXM6IHRydWUsCiAgICAgIG5vdDogdHJ1ZSwKICAgICAgaWY6IHRydWUsCiAgICAgIHRoZW46IHRydWUsCiAgICAgIGVsc2U6IHRydWUKICAgIH07CiAgICB0cmF2ZXJzZS5hcnJheUtleXdvcmRzID0gewogICAgICBpdGVtczogdHJ1ZSwKICAgICAgYWxsT2Y6IHRydWUsCiAgICAgIGFueU9mOiB0cnVlLAogICAgICBvbmVPZjogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnByb3BzS2V5d29yZHMgPSB7CiAgICAgICRkZWZzOiB0cnVlLAogICAgICBkZWZpbml0aW9uczogdHJ1ZSwKICAgICAgcHJvcGVydGllczogdHJ1ZSwKICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgIGRlcGVuZGVuY2llczogdHJ1ZQogICAgfTsKICAgIHRyYXZlcnNlLnNraXBLZXl3b3JkcyA9IHsKICAgICAgZGVmYXVsdDogdHJ1ZSwKICAgICAgZW51bTogdHJ1ZSwKICAgICAgY29uc3Q6IHRydWUsCiAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICBtYXhpbXVtOiB0cnVlLAogICAgICBtaW5pbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNYXhpbXVtOiB0cnVlLAogICAgICBleGNsdXNpdmVNaW5pbXVtOiB0cnVlLAogICAgICBtdWx0aXBsZU9mOiB0cnVlLAogICAgICBtYXhMZW5ndGg6IHRydWUsCiAgICAgIG1pbkxlbmd0aDogdHJ1ZSwKICAgICAgcGF0dGVybjogdHJ1ZSwKICAgICAgZm9ybWF0OiB0cnVlLAogICAgICBtYXhJdGVtczogdHJ1ZSwKICAgICAgbWluSXRlbXM6IHRydWUsCiAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlLAogICAgICBtYXhQcm9wZXJ0aWVzOiB0cnVlLAogICAgICBtaW5Qcm9wZXJ0aWVzOiB0cnVlCiAgICB9OwogICAgZnVuY3Rpb24gX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoZW1hMiwganNvblB0ciwgcm9vdFNjaGVtYSwgcGFyZW50SnNvblB0ciwgcGFyZW50S2V5d29yZCwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCkgewogICAgICBpZiAoc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhQXJyYXkuaXNBcnJheShzY2hlbWEyKSkgewogICAgICAgIHByZShzY2hlbWEyLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRKc29uUHRyLCBwYXJlbnRLZXl3b3JkLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KTsKICAgICAgICBmb3IgKHZhciBrZXkgaW4gc2NoZW1hMikgewogICAgICAgICAgdmFyIHNjaCA9IHNjaGVtYTJba2V5XTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgaWYgKGtleSBpbiB0cmF2ZXJzZS5hcnJheUtleXdvcmRzKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspCiAgICAgICAgICAgICAgICBfdHJhdmVyc2Uob3B0cywgcHJlLCBwb3N0LCBzY2hbaV0sIGpzb25QdHIgKyAiLyIgKyBrZXkgKyAiLyIgKyBpLCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIsIGkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGtleSBpbiB0cmF2ZXJzZS5wcm9wc0tleXdvcmRzKSB7CiAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gc2NoKQogICAgICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoW3Byb3BdLCBqc29uUHRyICsgIi8iICsga2V5ICsgIi8iICsgZXNjYXBlSnNvblB0cihwcm9wKSwgcm9vdFNjaGVtYSwganNvblB0ciwga2V5LCBzY2hlbWEyLCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gdHJhdmVyc2Uua2V5d29yZHMgfHwgb3B0cy5hbGxLZXlzICYmICEoa2V5IGluIHRyYXZlcnNlLnNraXBLZXl3b3JkcykpIHsKICAgICAgICAgICAgX3RyYXZlcnNlKG9wdHMsIHByZSwgcG9zdCwgc2NoLCBqc29uUHRyICsgIi8iICsga2V5LCByb290U2NoZW1hLCBqc29uUHRyLCBrZXksIHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwb3N0KHNjaGVtYTIsIGpzb25QdHIsIHJvb3RTY2hlbWEsIHBhcmVudEpzb25QdHIsIHBhcmVudEtleXdvcmQsIHBhcmVudFNjaGVtYSwga2V5SW5kZXgpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBlc2NhcGVKc29uUHRyKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZSgvfi9nLCAifjAiKS5yZXBsYWNlKC9cLy9nLCAifjEiKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVzb2x2ZS5qcwp2YXIgcmVxdWlyZV9yZXNvbHZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3Jlc29sdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmdldFNjaGVtYVJlZnMgPSBleHBvcnRzMi5yZXNvbHZlVXJsID0gZXhwb3J0czIubm9ybWFsaXplSWQgPSBleHBvcnRzMi5fZ2V0RnVsbFBhdGggPSBleHBvcnRzMi5nZXRGdWxsUGF0aCA9IGV4cG9ydHMyLmlubGluZVJlZiA9IHZvaWQgMDsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICB2YXIgdHJhdmVyc2UgPSByZXF1aXJlX2pzb25fc2NoZW1hX3RyYXZlcnNlKCk7CiAgICB2YXIgU0lNUExFX0lOTElORUQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJ0eXBlIiwKICAgICAgImZvcm1hdCIsCiAgICAgICJwYXR0ZXJuIiwKICAgICAgIm1heExlbmd0aCIsCiAgICAgICJtaW5MZW5ndGgiLAogICAgICAibWF4UHJvcGVydGllcyIsCiAgICAgICJtaW5Qcm9wZXJ0aWVzIiwKICAgICAgIm1heEl0ZW1zIiwKICAgICAgIm1pbkl0ZW1zIiwKICAgICAgIm1heGltdW0iLAogICAgICAibWluaW11bSIsCiAgICAgICJ1bmlxdWVJdGVtcyIsCiAgICAgICJtdWx0aXBsZU9mIiwKICAgICAgInJlcXVpcmVkIiwKICAgICAgImVudW0iLAogICAgICAiY29uc3QiCiAgICBdKTsKICAgIGZ1bmN0aW9uIGlubGluZVJlZihzY2hlbWEyLCBsaW1pdCA9IHRydWUpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgaWYgKGxpbWl0ID09PSB0cnVlKQogICAgICAgIHJldHVybiAhaGFzUmVmKHNjaGVtYTIpOwogICAgICBpZiAoIWxpbWl0KQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgcmV0dXJuIGNvdW50S2V5cyhzY2hlbWEyKSA8PSBsaW1pdDsKICAgIH0KICAgIGV4cG9ydHMyLmlubGluZVJlZiA9IGlubGluZVJlZjsKICAgIHZhciBSRUZfS0VZV09SRFMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICIkcmVmIiwKICAgICAgIiRyZWN1cnNpdmVSZWYiLAogICAgICAiJHJlY3Vyc2l2ZUFuY2hvciIsCiAgICAgICIkZHluYW1pY1JlZiIsCiAgICAgICIkZHluYW1pY0FuY2hvciIKICAgIF0pOwogICAgZnVuY3Rpb24gaGFzUmVmKHNjaGVtYTIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hMikgewogICAgICAgIGlmIChSRUZfS0VZV09SRFMuaGFzKGtleSkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2tleV07CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoKSAmJiBzY2guc29tZShoYXNSZWYpKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIgJiYgaGFzUmVmKHNjaCkpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmdW5jdGlvbiBjb3VudEtleXMoc2NoZW1hMikgewogICAgICBsZXQgY291bnQgPSAwOwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIiRyZWYiKQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICAgIGNvdW50Kys7CiAgICAgICAgaWYgKFNJTVBMRV9JTkxJTkVELmhhcyhrZXkpKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyW2tleV0gPT0gIm9iamVjdCIpIHsKICAgICAgICAgICgwLCB1dGlsXzEuZWFjaEl0ZW0pKHNjaGVtYTJba2V5XSwgKHNjaCkgPT4gY291bnQgKz0gY291bnRLZXlzKHNjaCkpOwogICAgICAgIH0KICAgICAgICBpZiAoY291bnQgPT09IEluZmluaXR5KQogICAgICAgICAgcmV0dXJuIEluZmluaXR5OwogICAgICB9CiAgICAgIHJldHVybiBjb3VudDsKICAgIH0KICAgIGZ1bmN0aW9uIGdldEZ1bGxQYXRoKHJlc29sdmVyLCBpZCA9ICIiLCBub3JtYWxpemUpIHsKICAgICAgaWYgKG5vcm1hbGl6ZSAhPT0gZmFsc2UpCiAgICAgICAgaWQgPSBub3JtYWxpemVJZChpZCk7CiAgICAgIGNvbnN0IHAgPSByZXNvbHZlci5wYXJzZShpZCk7CiAgICAgIHJldHVybiBfZ2V0RnVsbFBhdGgocmVzb2x2ZXIsIHApOwogICAgfQogICAgZXhwb3J0czIuZ2V0RnVsbFBhdGggPSBnZXRGdWxsUGF0aDsKICAgIGZ1bmN0aW9uIF9nZXRGdWxsUGF0aChyZXNvbHZlciwgcCkgewogICAgICBjb25zdCBzZXJpYWxpemVkID0gcmVzb2x2ZXIuc2VyaWFsaXplKHApOwogICAgICByZXR1cm4gc2VyaWFsaXplZC5zcGxpdCgiIyIpWzBdICsgIiMiOwogICAgfQogICAgZXhwb3J0czIuX2dldEZ1bGxQYXRoID0gX2dldEZ1bGxQYXRoOwogICAgdmFyIFRSQUlMSU5HX1NMQVNIX0hBU0ggPSAvI1wvPyQvOwogICAgZnVuY3Rpb24gbm9ybWFsaXplSWQoaWQpIHsKICAgICAgcmV0dXJuIGlkID8gaWQucmVwbGFjZShUUkFJTElOR19TTEFTSF9IQVNILCAiIikgOiAiIjsKICAgIH0KICAgIGV4cG9ydHMyLm5vcm1hbGl6ZUlkID0gbm9ybWFsaXplSWQ7CiAgICBmdW5jdGlvbiByZXNvbHZlVXJsKHJlc29sdmVyLCBiYXNlSWQsIGlkKSB7CiAgICAgIGlkID0gbm9ybWFsaXplSWQoaWQpOwogICAgICByZXR1cm4gcmVzb2x2ZXIucmVzb2x2ZShiYXNlSWQsIGlkKTsKICAgIH0KICAgIGV4cG9ydHMyLnJlc29sdmVVcmwgPSByZXNvbHZlVXJsOwogICAgdmFyIEFOQ0hPUiA9IC9eW2Etel9dWy1hLXowLTkuX10qJC9pOwogICAgZnVuY3Rpb24gZ2V0U2NoZW1hUmVmcyhzY2hlbWEyLCBiYXNlSWQpIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4ge307CiAgICAgIGNvbnN0IHsgc2NoZW1hSWQsIHVyaVJlc29sdmVyIH0gPSB0aGlzLm9wdHM7CiAgICAgIGNvbnN0IHNjaElkID0gbm9ybWFsaXplSWQoc2NoZW1hMltzY2hlbWFJZF0gfHwgYmFzZUlkKTsKICAgICAgY29uc3QgYmFzZUlkcyA9IHsgIiI6IHNjaElkIH07CiAgICAgIGNvbnN0IHBhdGhQcmVmaXggPSBnZXRGdWxsUGF0aCh1cmlSZXNvbHZlciwgc2NoSWQsIGZhbHNlKTsKICAgICAgY29uc3QgbG9jYWxSZWZzID0ge307CiAgICAgIGNvbnN0IHNjaGVtYVJlZnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICB0cmF2ZXJzZShzY2hlbWEyLCB7IGFsbEtleXM6IHRydWUgfSwgKHNjaCwganNvblB0ciwgXywgcGFyZW50SnNvblB0cikgPT4gewogICAgICAgIGlmIChwYXJlbnRKc29uUHRyID09PSB2b2lkIDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZnVsbFBhdGggPSBwYXRoUHJlZml4ICsganNvblB0cjsKICAgICAgICBsZXQgaW5uZXJCYXNlSWQgPSBiYXNlSWRzW3BhcmVudEpzb25QdHJdOwogICAgICAgIGlmICh0eXBlb2Ygc2NoW3NjaGVtYUlkXSA9PSAic3RyaW5nIikKICAgICAgICAgIGlubmVyQmFzZUlkID0gYWRkUmVmLmNhbGwodGhpcywgc2NoW3NjaGVtYUlkXSk7CiAgICAgICAgYWRkQW5jaG9yLmNhbGwodGhpcywgc2NoLiRhbmNob3IpOwogICAgICAgIGFkZEFuY2hvci5jYWxsKHRoaXMsIHNjaC4kZHluYW1pY0FuY2hvcik7CiAgICAgICAgYmFzZUlkc1tqc29uUHRyXSA9IGlubmVyQmFzZUlkOwogICAgICAgIGZ1bmN0aW9uIGFkZFJlZihyZWYpIHsKICAgICAgICAgIGNvbnN0IF9yZXNvbHZlID0gdGhpcy5vcHRzLnVyaVJlc29sdmVyLnJlc29sdmU7CiAgICAgICAgICByZWYgPSBub3JtYWxpemVJZChpbm5lckJhc2VJZCA/IF9yZXNvbHZlKGlubmVyQmFzZUlkLCByZWYpIDogcmVmKTsKICAgICAgICAgIGlmIChzY2hlbWFSZWZzLmhhcyhyZWYpKQogICAgICAgICAgICB0aHJvdyBhbWJpZ3VvcyhyZWYpOwogICAgICAgICAgc2NoZW1hUmVmcy5hZGQocmVmKTsKICAgICAgICAgIGxldCBzY2hPclJlZiA9IHRoaXMucmVmc1tyZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAic3RyaW5nIikKICAgICAgICAgICAgc2NoT3JSZWYgPSB0aGlzLnJlZnNbc2NoT3JSZWZdOwogICAgICAgICAgaWYgKHR5cGVvZiBzY2hPclJlZiA9PSAib2JqZWN0IikgewogICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgc2NoT3JSZWYuc2NoZW1hLCByZWYpOwogICAgICAgICAgfSBlbHNlIGlmIChyZWYgIT09IG5vcm1hbGl6ZUlkKGZ1bGxQYXRoKSkgewogICAgICAgICAgICBpZiAocmVmWzBdID09PSAiIyIpIHsKICAgICAgICAgICAgICBjaGVja0FtYmlndW9zUmVmKHNjaCwgbG9jYWxSZWZzW3JlZl0sIHJlZik7CiAgICAgICAgICAgICAgbG9jYWxSZWZzW3JlZl0gPSBzY2g7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy5yZWZzW3JlZl0gPSBmdWxsUGF0aDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHJlZjsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWRkQW5jaG9yKGFuY2hvcikgewogICAgICAgICAgaWYgKHR5cGVvZiBhbmNob3IgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKCFBTkNIT1IudGVzdChhbmNob3IpKQogICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBhbmNob3IgIiR7YW5jaG9yfSJgKTsKICAgICAgICAgICAgYWRkUmVmLmNhbGwodGhpcywgYCMke2FuY2hvcn1gKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gbG9jYWxSZWZzOwogICAgICBmdW5jdGlvbiBjaGVja0FtYmlndW9zUmVmKHNjaDEsIHNjaDIsIHJlZikgewogICAgICAgIGlmIChzY2gyICE9PSB2b2lkIDAgJiYgIWVxdWFsKHNjaDEsIHNjaDIpKQogICAgICAgICAgdGhyb3cgYW1iaWd1b3MocmVmKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhbWJpZ3VvcyhyZWYpIHsKICAgICAgICByZXR1cm4gbmV3IEVycm9yKGByZWZlcmVuY2UgIiR7cmVmfSIgcmVzb2x2ZXMgdG8gbW9yZSB0aGFuIG9uZSBzY2hlbWFgKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0U2NoZW1hUmVmcyA9IGdldFNjaGVtYVJlZnM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzCnZhciByZXF1aXJlX3ZhbGlkYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3ZhbGlkYXRlL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5nZXREYXRhID0gZXhwb3J0czIuS2V5d29yZEN4dCA9IGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdm9pZCAwOwogICAgdmFyIGJvb2xTY2hlbWFfMSA9IHJlcXVpcmVfYm9vbFNjaGVtYSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgYXBwbGljYWJpbGl0eV8xID0gcmVxdWlyZV9hcHBsaWNhYmlsaXR5KCk7CiAgICB2YXIgZGF0YVR5cGVfMiA9IHJlcXVpcmVfZGF0YVR5cGUoKTsKICAgIHZhciBkZWZhdWx0c18xID0gcmVxdWlyZV9kZWZhdWx0cygpOwogICAgdmFyIGtleXdvcmRfMSA9IHJlcXVpcmVfa2V5d29yZCgpOwogICAgdmFyIHN1YnNjaGVtYV8xID0gcmVxdWlyZV9zdWJzY2hlbWEoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yc18xID0gcmVxdWlyZV9lcnJvcnMoKTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlRnVuY3Rpb25Db2RlKGl0KSB7CiAgICAgIGlmIChpc1NjaGVtYU9iaihpdCkpIHsKICAgICAgICBjaGVja0tleXdvcmRzKGl0KTsKICAgICAgICBpZiAoc2NoZW1hQ3h0SGFzUnVsZXMoaXQpKSB7CiAgICAgICAgICB0b3BTY2hlbWFPYmpDb2RlKGl0KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgIH0KICAgICAgdmFsaWRhdGVGdW5jdGlvbihpdCwgKCkgPT4gKDAsIGJvb2xTY2hlbWFfMS50b3BCb29sT3JFbXB0eVNjaGVtYSkoaXQpKTsKICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlRnVuY3Rpb25Db2RlID0gdmFsaWRhdGVGdW5jdGlvbkNvZGU7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZUZ1bmN0aW9uKHsgZ2VuLCB2YWxpZGF0ZU5hbWUsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hRW52LCBvcHRzIH0sIGJvZHkpIHsKICAgICAgaWYgKG9wdHMuY29kZS5lczUpIHsKICAgICAgICBnZW4uZnVuYyh2YWxpZGF0ZU5hbWUsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCJ1c2Ugc3RyaWN0IjsgJHtmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpfWApOwogICAgICAgICAgZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKTsKICAgICAgICAgIGdlbi5jb2RlKGJvZHkpOwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5mdW5jKHZhbGlkYXRlTmFtZSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5kYXRhfSwgJHtkZXN0cnVjdHVyZVZhbEN4dChvcHRzKX1gLCBzY2hlbWFFbnYuJGFzeW5jLCAoKSA9PiBnZW4uY29kZShmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpKS5jb2RlKGJvZHkpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHQob3B0cykgewogICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWB7JHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofT0iIiwgJHtuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YX0sICR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX0sICR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfT0ke25hbWVzXzEuZGVmYXVsdC5kYXRhfSR7b3B0cy5keW5hbWljUmVmID8gKDAsIGNvZGVnZW5fMS5fKWAsICR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfT17fWAgOiBjb2RlZ2VuXzEubmlsfX09e31gOwogICAgfQogICAgZnVuY3Rpb24gZGVzdHJ1Y3R1cmVWYWxDeHRFUzUoZ2VuLCBvcHRzKSB7CiAgICAgIGdlbi5pZihuYW1lc18xLmRlZmF1bHQudmFsQ3h0LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZhbEN4dH0uJHtuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRofWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGEsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudmFsQ3h0fS4ke25hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhfWApOwogICAgICAgIGdlbi52YXIobmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnBhcmVudERhdGFQcm9wZXJ0eX1gKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LnJvb3REYXRhfWApOwogICAgICAgIGlmIChvcHRzLmR5bmFtaWNSZWYpCiAgICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5keW5hbWljQW5jaG9ycywgKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC52YWxDeHR9LiR7bmFtZXNfMS5kZWZhdWx0LmR5bmFtaWNBbmNob3JzfWApOwogICAgICB9LCAoKSA9PiB7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuaW5zdGFuY2VQYXRoLCAoMCwgY29kZWdlbl8xLl8pYCIiYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKTsKICAgICAgICBnZW4udmFyKG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksICgwLCBjb2RlZ2VuXzEuXylgdW5kZWZpbmVkYCk7CiAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQucm9vdERhdGEsIG5hbWVzXzEuZGVmYXVsdC5kYXRhKTsKICAgICAgICBpZiAob3B0cy5keW5hbWljUmVmKQogICAgICAgICAgZ2VuLnZhcihuYW1lc18xLmRlZmF1bHQuZHluYW1pY0FuY2hvcnMsICgwLCBjb2RlZ2VuXzEuXylge31gKTsKICAgICAgfSk7CiAgICB9CiAgICBmdW5jdGlvbiB0b3BTY2hlbWFPYmpDb2RlKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzLCBnZW4gfSA9IGl0OwogICAgICB2YWxpZGF0ZUZ1bmN0aW9uKGl0LCAoKSA9PiB7CiAgICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgJiYgc2NoZW1hMi4kY29tbWVudCkKICAgICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgICBjaGVja05vRGVmYXVsdChpdCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQudkVycm9ycywgbnVsbCk7CiAgICAgICAgZ2VuLmxldChuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAwKTsKICAgICAgICBpZiAob3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJlc2V0RXZhbHVhdGVkKGl0KTsKICAgICAgICB0eXBlQW5kS2V5d29yZHMoaXQpOwogICAgICAgIHJldHVyblJlc3VsdHMoaXQpOwogICAgICB9KTsKICAgICAgcmV0dXJuOwogICAgfQogICAgZnVuY3Rpb24gcmVzZXRFdmFsdWF0ZWQoaXQpIHsKICAgICAgY29uc3QgeyBnZW4sIHZhbGlkYXRlTmFtZSB9ID0gaXQ7CiAgICAgIGl0LmV2YWx1YXRlZCA9IGdlbi5jb25zdCgiZXZhbHVhdGVkIiwgKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXZhbHVhdGVkYCk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljUHJvcHNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9LnByb3BzYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aXQuZXZhbHVhdGVkfS5keW5hbWljSXRlbXNgLCAoKSA9PiBnZW4uYXNzaWduKCgwLCBjb2RlZ2VuXzEuXylgJHtpdC5ldmFsdWF0ZWR9Lml0ZW1zYCwgKDAsIGNvZGVnZW5fMS5fKWB1bmRlZmluZWRgKSk7CiAgICB9CiAgICBmdW5jdGlvbiBmdW5jU291cmNlVXJsKHNjaGVtYTIsIG9wdHMpIHsKICAgICAgY29uc3Qgc2NoSWQgPSB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiBzY2hlbWEyW29wdHMuc2NoZW1hSWRdOwogICAgICByZXR1cm4gc2NoSWQgJiYgKG9wdHMuY29kZS5zb3VyY2UgfHwgb3B0cy5jb2RlLnByb2Nlc3MpID8gKDAsIGNvZGVnZW5fMS5fKWAvKiMgc291cmNlVVJMPSR7c2NoSWR9ICovYCA6IGNvZGVnZW5fMS5uaWw7CiAgICB9CiAgICBmdW5jdGlvbiBzdWJzY2hlbWFDb2RlKGl0LCB2YWxpZCkgewogICAgICBpZiAoaXNTY2hlbWFPYmooaXQpKSB7CiAgICAgICAgY2hlY2tLZXl3b3JkcyhpdCk7CiAgICAgICAgaWYgKHNjaGVtYUN4dEhhc1J1bGVzKGl0KSkgewogICAgICAgICAgc3ViU2NoZW1hT2JqQ29kZShpdCwgdmFsaWQpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgfQogICAgICAoMCwgYm9vbFNjaGVtYV8xLmJvb2xPckVtcHR5U2NoZW1hKShpdCwgdmFsaWQpOwogICAgfQogICAgZnVuY3Rpb24gc2NoZW1hQ3h0SGFzUnVsZXMoeyBzY2hlbWE6IHNjaGVtYTIsIHNlbGY6IHNlbGYyIH0pIHsKICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJib29sZWFuIikKICAgICAgICByZXR1cm4gIXNjaGVtYTI7CiAgICAgIGZvciAoY29uc3Qga2V5IGluIHNjaGVtYTIpCiAgICAgICAgaWYgKHNlbGYyLlJVTEVTLmFsbFtrZXldKQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU2NoZW1hT2JqKGl0KSB7CiAgICAgIHJldHVybiB0eXBlb2YgaXQuc2NoZW1hICE9ICJib29sZWFuIjsKICAgIH0KICAgIGZ1bmN0aW9uIHN1YlNjaGVtYU9iakNvZGUoaXQsIHZhbGlkKSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBnZW4sIG9wdHMgfSA9IGl0OwogICAgICBpZiAob3B0cy4kY29tbWVudCAmJiBzY2hlbWEyLiRjb21tZW50KQogICAgICAgIGNvbW1lbnRLZXl3b3JkKGl0KTsKICAgICAgdXBkYXRlQ29udGV4dChpdCk7CiAgICAgIGNoZWNrQXN5bmNTY2hlbWEoaXQpOwogICAgICBjb25zdCBlcnJzQ291bnQgPSBnZW4uY29uc3QoIl9lcnJzIiwgbmFtZXNfMS5kZWZhdWx0LmVycm9ycyk7CiAgICAgIHR5cGVBbmRLZXl3b3JkcyhpdCwgZXJyc0NvdW50KTsKICAgICAgZ2VuLnZhcih2YWxpZCwgKDAsIGNvZGVnZW5fMS5fKWAke2VycnNDb3VudH0gPT09ICR7bmFtZXNfMS5kZWZhdWx0LmVycm9yc31gKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZHMoaXQpIHsKICAgICAgKDAsIHV0aWxfMS5jaGVja1Vua25vd25SdWxlcykoaXQpOwogICAgICBjaGVja1JlZnNBbmRLZXl3b3JkcyhpdCk7CiAgICB9CiAgICBmdW5jdGlvbiB0eXBlQW5kS2V5d29yZHMoaXQsIGVycnNDb3VudCkgewogICAgICBpZiAoaXQub3B0cy5qdGQpCiAgICAgICAgcmV0dXJuIHNjaGVtYUtleXdvcmRzKGl0LCBbXSwgZmFsc2UsIGVycnNDb3VudCk7CiAgICAgIGNvbnN0IHR5cGVzID0gKDAsIGRhdGFUeXBlXzEuZ2V0U2NoZW1hVHlwZXMpKGl0LnNjaGVtYSk7CiAgICAgIGNvbnN0IGNoZWNrZWRUeXBlcyA9ICgwLCBkYXRhVHlwZV8xLmNvZXJjZUFuZENoZWNrRGF0YVR5cGUpKGl0LCB0eXBlcyk7CiAgICAgIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgIWNoZWNrZWRUeXBlcywgZXJyc0NvdW50KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrUmVmc0FuZEtleXdvcmRzKGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgIGlmIChzY2hlbWEyLiRyZWYgJiYgb3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgJiYgKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgc2VsZjIuUlVMRVMpKSB7CiAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4oYCRyZWY6IGtleXdvcmRzIGlnbm9yZWQgaW4gc2NoZW1hIGF0IHBhdGggIiR7ZXJyU2NoZW1hUGF0aH0iYCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrTm9EZWZhdWx0KGl0KSB7CiAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYTIuZGVmYXVsdCAhPT0gdm9pZCAwICYmIG9wdHMudXNlRGVmYXVsdHMgJiYgb3B0cy5zdHJpY3RTY2hlbWEpIHsKICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICJkZWZhdWx0IGlzIGlnbm9yZWQgaW4gdGhlIHNjaGVtYSByb290Iik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUNvbnRleHQoaXQpIHsKICAgICAgY29uc3Qgc2NoSWQgPSBpdC5zY2hlbWFbaXQub3B0cy5zY2hlbWFJZF07CiAgICAgIGlmIChzY2hJZCkKICAgICAgICBpdC5iYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGl0LmJhc2VJZCwgc2NoSWQpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tBc3luY1NjaGVtYShpdCkgewogICAgICBpZiAoaXQuc2NoZW1hLiRhc3luYyAmJiAhaXQuc2NoZW1hRW52LiRhc3luYykKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIHNjaGVtYSBpbiBzeW5jIHNjaGVtYSIpOwogICAgfQogICAgZnVuY3Rpb24gY29tbWVudEtleXdvcmQoeyBnZW4sIHNjaGVtYUVudiwgc2NoZW1hOiBzY2hlbWEyLCBlcnJTY2hlbWFQYXRoLCBvcHRzIH0pIHsKICAgICAgY29uc3QgbXNnID0gc2NoZW1hMi4kY29tbWVudDsKICAgICAgaWYgKG9wdHMuJGNvbW1lbnQgPT09IHRydWUpIHsKICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnNlbGZ9LmxvZ2dlci5sb2coJHttc2d9KWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRzLiRjb21tZW50ID09ICJmdW5jdGlvbiIpIHsKICAgICAgICBjb25zdCBzY2hlbWFQYXRoID0gKDAsIGNvZGVnZW5fMS5zdHIpYCR7ZXJyU2NoZW1hUGF0aH0vJGNvbW1lbnRgOwogICAgICAgIGNvbnN0IHJvb3ROYW1lID0gZ2VuLnNjb3BlVmFsdWUoInJvb3QiLCB7IHJlZjogc2NoZW1hRW52LnJvb3QgfSk7CiAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5zZWxmfS5vcHRzLiRjb21tZW50KCR7bXNnfSwgJHtzY2hlbWFQYXRofSwgJHtyb290TmFtZX0uc2NoZW1hKWApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiByZXR1cm5SZXN1bHRzKGl0KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFFbnYsIHZhbGlkYXRlTmFtZSwgVmFsaWRhdGlvbkVycm9yLCBvcHRzIH0gPSBpdDsKICAgICAgaWYgKHNjaGVtYUVudi4kYXN5bmMpIHsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke25hbWVzXzEuZGVmYXVsdC5lcnJvcnN9ID09PSAwYCwgKCkgPT4gZ2VuLnJldHVybihuYW1lc18xLmRlZmF1bHQuZGF0YSksICgpID0+IGdlbi50aHJvdygoMCwgY29kZWdlbl8xLl8pYG5ldyAke1ZhbGlkYXRpb25FcnJvcn0oJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30pYCkpOwogICAgICB9IGVsc2UgewogICAgICAgIGdlbi5hc3NpZ24oKDAsIGNvZGVnZW5fMS5fKWAke3ZhbGlkYXRlTmFtZX0uZXJyb3JzYCwgbmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMpOwogICAgICAgIGlmIChvcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgYXNzaWduRXZhbHVhdGVkKGl0KTsKICAgICAgICBnZW4ucmV0dXJuKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gMGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhc3NpZ25FdmFsdWF0ZWQoeyBnZW4sIGV2YWx1YXRlZCwgcHJvcHMsIGl0ZW1zIH0pIHsKICAgICAgaWYgKHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5wcm9wc2AsIHByb3BzKTsKICAgICAgaWYgKGl0ZW1zIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUpCiAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7ZXZhbHVhdGVkfS5pdGVtc2AsIGl0ZW1zKTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYUtleXdvcmRzKGl0LCB0eXBlcywgdHlwZUVycm9ycywgZXJyc0NvdW50KSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGFsbEVycm9ycywgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICBjb25zdCB7IFJVTEVTIH0gPSBzZWxmMjsKICAgICAgaWYgKHNjaGVtYTIuJHJlZiAmJiAob3B0cy5pZ25vcmVLZXl3b3Jkc1dpdGhSZWYgfHwgISgwLCB1dGlsXzEuc2NoZW1hSGFzUnVsZXNCdXRSZWYpKHNjaGVtYTIsIFJVTEVTKSkpIHsKICAgICAgICBnZW4uYmxvY2soKCkgPT4ga2V5d29yZENvZGUoaXQsICIkcmVmIiwgUlVMRVMuYWxsLiRyZWYuZGVmaW5pdGlvbikpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBpZiAoIW9wdHMuanRkKQogICAgICAgIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIFJVTEVTLnJ1bGVzKQogICAgICAgICAgZ3JvdXBLZXl3b3Jkcyhncm91cCk7CiAgICAgICAgZ3JvdXBLZXl3b3JkcyhSVUxFUy5wb3N0KTsKICAgICAgfSk7CiAgICAgIGZ1bmN0aW9uIGdyb3VwS2V5d29yZHMoZ3JvdXApIHsKICAgICAgICBpZiAoISgwLCBhcHBsaWNhYmlsaXR5XzEuc2hvdWxkVXNlR3JvdXApKHNjaGVtYTIsIGdyb3VwKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBpZiAoZ3JvdXAudHlwZSkgewogICAgICAgICAgZ2VuLmlmKCgwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGUpKGdyb3VwLnR5cGUsIGRhdGEsIG9wdHMuc3RyaWN0TnVtYmVycykpOwogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgICBpZiAodHlwZXMubGVuZ3RoID09PSAxICYmIHR5cGVzWzBdID09PSBncm91cC50eXBlICYmIHR5cGVFcnJvcnMpIHsKICAgICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICAgICAgKDAsIGRhdGFUeXBlXzIucmVwb3J0VHlwZUVycm9yKShpdCk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCk7CiAgICAgICAgfQogICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfSA9PT0gJHtlcnJzQ291bnQgfHwgMH1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gaXRlcmF0ZUtleXdvcmRzKGl0LCBncm91cCkgewogICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBvcHRzOiB7IHVzZURlZmF1bHRzIH0gfSA9IGl0OwogICAgICBpZiAodXNlRGVmYXVsdHMpCiAgICAgICAgKDAsIGRlZmF1bHRzXzEuYXNzaWduRGVmYXVsdHMpKGl0LCBncm91cC50eXBlKTsKICAgICAgZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgZ3JvdXAucnVsZXMpIHsKICAgICAgICAgIGlmICgoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKHNjaGVtYTIsIHJ1bGUpKSB7CiAgICAgICAgICAgIGtleXdvcmRDb2RlKGl0LCBydWxlLmtleXdvcmQsIHJ1bGUuZGVmaW5pdGlvbiwgZ3JvdXAudHlwZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNoZWNrU3RyaWN0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmIChpdC5zY2hlbWFFbnYubWV0YSB8fCAhaXQub3B0cy5zdHJpY3RUeXBlcykKICAgICAgICByZXR1cm47CiAgICAgIGNoZWNrQ29udGV4dFR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGlmICghaXQub3B0cy5hbGxvd1VuaW9uVHlwZXMpCiAgICAgICAgY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0eXBlcyk7CiAgICAgIGNoZWNrS2V5d29yZFR5cGVzKGl0LCBpdC5kYXRhVHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tDb250ZXh0VHlwZXMoaXQsIHR5cGVzKSB7CiAgICAgIGlmICghdHlwZXMubGVuZ3RoKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKCFpdC5kYXRhVHlwZXMubGVuZ3RoKSB7CiAgICAgICAgaXQuZGF0YVR5cGVzID0gdHlwZXM7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHR5cGVzLmZvckVhY2goKHQpID0+IHsKICAgICAgICBpZiAoIWluY2x1ZGVzVHlwZShpdC5kYXRhVHlwZXMsIHQpKSB7CiAgICAgICAgICBzdHJpY3RUeXBlc0Vycm9yKGl0LCBgdHlwZSAiJHt0fSIgbm90IGFsbG93ZWQgYnkgY29udGV4dCAiJHtpdC5kYXRhVHlwZXMuam9pbigiLCIpfSJgKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgICBuYXJyb3dTY2hlbWFUeXBlcyhpdCwgdHlwZXMpOwogICAgfQogICAgZnVuY3Rpb24gY2hlY2tNdWx0aXBsZVR5cGVzKGl0LCB0cykgewogICAgICBpZiAodHMubGVuZ3RoID4gMSAmJiAhKHRzLmxlbmd0aCA9PT0gMiAmJiB0cy5pbmNsdWRlcygibnVsbCIpKSkgewogICAgICAgIHN0cmljdFR5cGVzRXJyb3IoaXQsICJ1c2UgYWxsb3dVbmlvblR5cGVzIHRvIGFsbG93IHVuaW9uIHR5cGUga2V5d29yZCIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBjaGVja0tleXdvcmRUeXBlcyhpdCwgdHMpIHsKICAgICAgY29uc3QgcnVsZXMgPSBpdC5zZWxmLlJVTEVTLmFsbDsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIHJ1bGVzKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHJ1bGVzW2tleXdvcmRdOwogICAgICAgIGlmICh0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiAmJiAoMCwgYXBwbGljYWJpbGl0eV8xLnNob3VsZFVzZVJ1bGUpKGl0LnNjaGVtYSwgcnVsZSkpIHsKICAgICAgICAgIGNvbnN0IHsgdHlwZTogdHlwZTIgfSA9IHJ1bGUuZGVmaW5pdGlvbjsKICAgICAgICAgIGlmICh0eXBlMi5sZW5ndGggJiYgIXR5cGUyLnNvbWUoKHQpID0+IGhhc0FwcGxpY2FibGVUeXBlKHRzLCB0KSkpIHsKICAgICAgICAgICAgc3RyaWN0VHlwZXNFcnJvcihpdCwgYG1pc3NpbmcgdHlwZSAiJHt0eXBlMi5qb2luKCIsIil9IiBmb3Iga2V5d29yZCAiJHtrZXl3b3JkfSJgKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGhhc0FwcGxpY2FibGVUeXBlKHNjaFRzLCBrd2RUKSB7CiAgICAgIHJldHVybiBzY2hUcy5pbmNsdWRlcyhrd2RUKSB8fCBrd2RUID09PSAibnVtYmVyIiAmJiBzY2hUcy5pbmNsdWRlcygiaW50ZWdlciIpOwogICAgfQogICAgZnVuY3Rpb24gaW5jbHVkZXNUeXBlKHRzLCB0KSB7CiAgICAgIHJldHVybiB0cy5pbmNsdWRlcyh0KSB8fCB0ID09PSAiaW50ZWdlciIgJiYgdHMuaW5jbHVkZXMoIm51bWJlciIpOwogICAgfQogICAgZnVuY3Rpb24gbmFycm93U2NoZW1hVHlwZXMoaXQsIHdpdGhUeXBlcykgewogICAgICBjb25zdCB0cyA9IFtdOwogICAgICBmb3IgKGNvbnN0IHQgb2YgaXQuZGF0YVR5cGVzKSB7CiAgICAgICAgaWYgKGluY2x1ZGVzVHlwZSh3aXRoVHlwZXMsIHQpKQogICAgICAgICAgdHMucHVzaCh0KTsKICAgICAgICBlbHNlIGlmICh3aXRoVHlwZXMuaW5jbHVkZXMoImludGVnZXIiKSAmJiB0ID09PSAibnVtYmVyIikKICAgICAgICAgIHRzLnB1c2goImludGVnZXIiKTsKICAgICAgfQogICAgICBpdC5kYXRhVHlwZXMgPSB0czsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmljdFR5cGVzRXJyb3IoaXQsIG1zZykgewogICAgICBjb25zdCBzY2hlbWFQYXRoID0gaXQuc2NoZW1hRW52LmJhc2VJZCArIGl0LmVyclNjaGVtYVBhdGg7CiAgICAgIG1zZyArPSBgIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0VHlwZXMpYDsKICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBtc2csIGl0Lm9wdHMuc3RyaWN0VHlwZXMpOwogICAgfQogICAgdmFyIEtleXdvcmRDeHQgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGl0LCBkZWYsIGtleXdvcmQpIHsKICAgICAgICAoMCwga2V5d29yZF8xLnZhbGlkYXRlS2V5d29yZFVzYWdlKShpdCwgZGVmLCBrZXl3b3JkKTsKICAgICAgICB0aGlzLmdlbiA9IGl0LmdlbjsKICAgICAgICB0aGlzLmFsbEVycm9ycyA9IGl0LmFsbEVycm9yczsKICAgICAgICB0aGlzLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgIHRoaXMuZGF0YSA9IGl0LmRhdGE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBpdC5zY2hlbWFba2V5d29yZF07CiAgICAgICAgdGhpcy4kZGF0YSA9IGRlZi4kZGF0YSAmJiBpdC5vcHRzLiRkYXRhICYmIHRoaXMuc2NoZW1hICYmIHRoaXMuc2NoZW1hLiRkYXRhOwogICAgICAgIHRoaXMuc2NoZW1hVmFsdWUgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgdGhpcy5zY2hlbWEsIGtleXdvcmQsIHRoaXMuJGRhdGEpOwogICAgICAgIHRoaXMuc2NoZW1hVHlwZSA9IGRlZi5zY2hlbWFUeXBlOwogICAgICAgIHRoaXMucGFyZW50U2NoZW1hID0gaXQuc2NoZW1hOwogICAgICAgIHRoaXMucGFyYW1zID0ge307CiAgICAgICAgdGhpcy5pdCA9IGl0OwogICAgICAgIHRoaXMuZGVmID0gZGVmOwogICAgICAgIGlmICh0aGlzLiRkYXRhKSB7CiAgICAgICAgICB0aGlzLnNjaGVtYUNvZGUgPSBpdC5nZW4uY29uc3QoInZTY2hlbWEiLCBnZXREYXRhKHRoaXMuJGRhdGEsIGl0KSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuc2NoZW1hQ29kZSA9IHRoaXMuc2NoZW1hVmFsdWU7CiAgICAgICAgICBpZiAoISgwLCBrZXl3b3JkXzEudmFsaWRTY2hlbWFUeXBlKSh0aGlzLnNjaGVtYSwgZGVmLnNjaGVtYVR5cGUsIGRlZi5hbGxvd1VuZGVmaW5lZCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2tleXdvcmR9IHZhbHVlIG11c3QgYmUgJHtKU09OLnN0cmluZ2lmeShkZWYuc2NoZW1hVHlwZSl9YCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgiY29kZSIgaW4gZGVmID8gZGVmLnRyYWNrRXJyb3JzIDogZGVmLmVycm9ycyAhPT0gZmFsc2UpIHsKICAgICAgICAgIHRoaXMuZXJyc0NvdW50ID0gaXQuZ2VuLmNvbnN0KCJfZXJycyIsIG5hbWVzXzEuZGVmYXVsdC5lcnJvcnMpOwogICAgICAgIH0KICAgICAgfQogICAgICByZXN1bHQoY29uZGl0aW9uLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKSB7CiAgICAgICAgdGhpcy5mYWlsUmVzdWx0KCgwLCBjb2RlZ2VuXzEubm90KShjb25kaXRpb24pLCBzdWNjZXNzQWN0aW9uLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsUmVzdWx0KGNvbmRpdGlvbiwgc3VjY2Vzc0FjdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZ2VuLmlmKGNvbmRpdGlvbik7CiAgICAgICAgaWYgKGZhaWxBY3Rpb24pCiAgICAgICAgICBmYWlsQWN0aW9uKCk7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgIGlmIChzdWNjZXNzQWN0aW9uKSB7CiAgICAgICAgICB0aGlzLmdlbi5lbHNlKCk7CiAgICAgICAgICBzdWNjZXNzQWN0aW9uKCk7CiAgICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICAgIHRoaXMuZ2VuLmVuZElmKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICh0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uZW5kSWYoKTsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgdGhpcy5nZW4uZWxzZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBwYXNzKGNvbmRpdGlvbiwgZmFpbEFjdGlvbikgewogICAgICAgIHRoaXMuZmFpbFJlc3VsdCgoMCwgY29kZWdlbl8xLm5vdCkoY29uZGl0aW9uKSwgdm9pZCAwLCBmYWlsQWN0aW9uKTsKICAgICAgfQogICAgICBmYWlsKGNvbmRpdGlvbikgewogICAgICAgIGlmIChjb25kaXRpb24gPT09IHZvaWQgMCkgewogICAgICAgICAgdGhpcy5lcnJvcigpOwogICAgICAgICAgaWYgKCF0aGlzLmFsbEVycm9ycykKICAgICAgICAgICAgdGhpcy5nZW4uaWYoZmFsc2UpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLmdlbi5pZihjb25kaXRpb24pOwogICAgICAgIHRoaXMuZXJyb3IoKTsKICAgICAgICBpZiAodGhpcy5hbGxFcnJvcnMpCiAgICAgICAgICB0aGlzLmdlbi5lbmRJZigpOwogICAgICAgIGVsc2UKICAgICAgICAgIHRoaXMuZ2VuLmVsc2UoKTsKICAgICAgfQogICAgICBmYWlsJGRhdGEoY29uZGl0aW9uKSB7CiAgICAgICAgaWYgKCF0aGlzLiRkYXRhKQogICAgICAgICAgcmV0dXJuIHRoaXMuZmFpbChjb25kaXRpb24pOwogICAgICAgIGNvbnN0IHsgc2NoZW1hQ29kZSB9ID0gdGhpczsKICAgICAgICB0aGlzLmZhaWwoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ICE9PSB1bmRlZmluZWQgJiYgKCR7KDAsIGNvZGVnZW5fMS5vcikodGhpcy5pbnZhbGlkJGRhdGEoKSwgY29uZGl0aW9uKX0pYCk7CiAgICAgIH0KICAgICAgZXJyb3IoYXBwZW5kLCBlcnJvclBhcmFtcywgZXJyb3JQYXRocykgewogICAgICAgIGlmIChlcnJvclBhcmFtcykgewogICAgICAgICAgdGhpcy5zZXRQYXJhbXMoZXJyb3JQYXJhbXMpOwogICAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgICAgIHRoaXMuc2V0UGFyYW1zKHt9KTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICBfZXJyb3IoYXBwZW5kLCBlcnJvclBhdGhzKSB7CiAgICAgICAgOwogICAgICAgIChhcHBlbmQgPyBlcnJvcnNfMS5yZXBvcnRFeHRyYUVycm9yIDogZXJyb3JzXzEucmVwb3J0RXJyb3IpKHRoaXMsIHRoaXMuZGVmLmVycm9yLCBlcnJvclBhdGhzKTsKICAgICAgfQogICAgICAkZGF0YUVycm9yKCkgewogICAgICAgICgwLCBlcnJvcnNfMS5yZXBvcnRFcnJvcikodGhpcywgdGhpcy5kZWYuJGRhdGFFcnJvciB8fCBlcnJvcnNfMS5rZXl3b3JkJERhdGFFcnJvcik7CiAgICAgIH0KICAgICAgcmVzZXQoKSB7CiAgICAgICAgaWYgKHRoaXMuZXJyc0NvdW50ID09PSB2b2lkIDApCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FkZCAidHJhY2tFcnJvcnMiIHRvIGtleXdvcmQgZGVmaW5pdGlvbicpOwogICAgICAgICgwLCBlcnJvcnNfMS5yZXNldEVycm9yc0NvdW50KSh0aGlzLmdlbiwgdGhpcy5lcnJzQ291bnQpOwogICAgICB9CiAgICAgIG9rKGNvbmQpIHsKICAgICAgICBpZiAoIXRoaXMuYWxsRXJyb3JzKQogICAgICAgICAgdGhpcy5nZW4uaWYoY29uZCk7CiAgICAgIH0KICAgICAgc2V0UGFyYW1zKG9iaiwgYXNzaWduKSB7CiAgICAgICAgaWYgKGFzc2lnbikKICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5wYXJhbXMsIG9iaik7CiAgICAgICAgZWxzZQogICAgICAgICAgdGhpcy5wYXJhbXMgPSBvYmo7CiAgICAgIH0KICAgICAgYmxvY2skZGF0YSh2YWxpZCwgY29kZUJsb2NrLCAkZGF0YVZhbGlkID0gY29kZWdlbl8xLm5pbCkgewogICAgICAgIHRoaXMuZ2VuLmJsb2NrKCgpID0+IHsKICAgICAgICAgIHRoaXMuY2hlY2skZGF0YSh2YWxpZCwgJGRhdGFWYWxpZCk7CiAgICAgICAgICBjb2RlQmxvY2soKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBjaGVjayRkYXRhKHZhbGlkID0gY29kZWdlbl8xLm5pbCwgJGRhdGFWYWxpZCA9IGNvZGVnZW5fMS5uaWwpIHsKICAgICAgICBpZiAoIXRoaXMuJGRhdGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYUNvZGUsIHNjaGVtYVR5cGUsIGRlZiB9ID0gdGhpczsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5vcikoKDAsIGNvZGVnZW5fMS5fKWAke3NjaGVtYUNvZGV9ID09PSB1bmRlZmluZWRgLCAkZGF0YVZhbGlkKSk7CiAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgaWYgKHNjaGVtYVR5cGUubGVuZ3RoIHx8IGRlZi52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgICAgZ2VuLmVsc2VJZih0aGlzLmludmFsaWQkZGF0YSgpKTsKICAgICAgICAgIHRoaXMuJGRhdGFFcnJvcigpOwogICAgICAgICAgaWYgKHZhbGlkICE9PSBjb2RlZ2VuXzEubmlsKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGdlbi5lbHNlKCk7CiAgICAgIH0KICAgICAgaW52YWxpZCRkYXRhKCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWFDb2RlLCBzY2hlbWFUeXBlLCBkZWYsIGl0IH0gPSB0aGlzOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm9yKSh3cm9uZyREYXRhVHlwZSgpLCBpbnZhbGlkJERhdGFTY2hlbWEoKSk7CiAgICAgICAgZnVuY3Rpb24gd3JvbmckRGF0YVR5cGUoKSB7CiAgICAgICAgICBpZiAoc2NoZW1hVHlwZS5sZW5ndGgpIHsKICAgICAgICAgICAgaWYgKCEoc2NoZW1hQ29kZSBpbnN0YW5jZW9mIGNvZGVnZW5fMS5OYW1lKSkKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgICBjb25zdCBzdCA9IEFycmF5LmlzQXJyYXkoc2NoZW1hVHlwZSkgPyBzY2hlbWFUeXBlIDogW3NjaGVtYVR5cGVdOwogICAgICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5fKWAkeygwLCBkYXRhVHlwZV8yLmNoZWNrRGF0YVR5cGVzKShzdCwgc2NoZW1hQ29kZSwgaXQub3B0cy5zdHJpY3ROdW1iZXJzLCBkYXRhVHlwZV8yLkRhdGFUeXBlLldyb25nKX1gOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGludmFsaWQkRGF0YVNjaGVtYSgpIHsKICAgICAgICAgIGlmIChkZWYudmFsaWRhdGVTY2hlbWEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVTY2hlbWFSZWYgPSBnZW4uc2NvcGVWYWx1ZSgidmFsaWRhdGUkZGF0YSIsIHsgcmVmOiBkZWYudmFsaWRhdGVTY2hlbWEgfSk7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCEke3ZhbGlkYXRlU2NoZW1hUmVmfSgke3NjaGVtYUNvZGV9KWA7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29kZWdlbl8xLm5pbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgc3Vic2NoZW1hKGFwcGwsIHZhbGlkKSB7CiAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gKDAsIHN1YnNjaGVtYV8xLmdldFN1YnNjaGVtYSkodGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYURhdGEpKHN1YnNjaGVtYSwgdGhpcy5pdCwgYXBwbCk7CiAgICAgICAgKDAsIHN1YnNjaGVtYV8xLmV4dGVuZFN1YnNjaGVtYU1vZGUpKHN1YnNjaGVtYSwgYXBwbCk7CiAgICAgICAgY29uc3QgbmV4dENvbnRleHQgPSB7IC4uLnRoaXMuaXQsIC4uLnN1YnNjaGVtYSwgaXRlbXM6IHZvaWQgMCwgcHJvcHM6IHZvaWQgMCB9OwogICAgICAgIHN1YnNjaGVtYUNvZGUobmV4dENvbnRleHQsIHZhbGlkKTsKICAgICAgICByZXR1cm4gbmV4dENvbnRleHQ7CiAgICAgIH0KICAgICAgbWVyZ2VFdmFsdWF0ZWQoc2NoZW1hQ3h0LCB0b05hbWUpIHsKICAgICAgICBjb25zdCB7IGl0LCBnZW4gfSA9IHRoaXM7CiAgICAgICAgaWYgKCFpdC5vcHRzLnVuZXZhbHVhdGVkKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChpdC5wcm9wcyAhPT0gdHJ1ZSAmJiBzY2hlbWFDeHQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBzY2hlbWFDeHQucHJvcHMsIGl0LnByb3BzLCB0b05hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoaXQuaXRlbXMgIT09IHRydWUgJiYgc2NoZW1hQ3h0Lml0ZW1zICE9PSB2b2lkIDApIHsKICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoZW1hQ3h0Lml0ZW1zLCBpdC5pdGVtcywgdG9OYW1lKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgbWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hlbWFDeHQsIHZhbGlkKSB7CiAgICAgICAgY29uc3QgeyBpdCwgZ2VuIH0gPSB0aGlzOwogICAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIChpdC5wcm9wcyAhPT0gdHJ1ZSB8fCBpdC5pdGVtcyAhPT0gdHJ1ZSkpIHsKICAgICAgICAgIGdlbi5pZih2YWxpZCwgKCkgPT4gdGhpcy5tZXJnZUV2YWx1YXRlZChzY2hlbWFDeHQsIGNvZGVnZW5fMS5OYW1lKSk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gS2V5d29yZEN4dDsKICAgIGZ1bmN0aW9uIGtleXdvcmRDb2RlKGl0LCBrZXl3b3JkLCBkZWYsIHJ1bGVUeXBlKSB7CiAgICAgIGNvbnN0IGN4dCA9IG5ldyBLZXl3b3JkQ3h0KGl0LCBkZWYsIGtleXdvcmQpOwogICAgICBpZiAoImNvZGUiIGluIGRlZikgewogICAgICAgIGRlZi5jb2RlKGN4dCwgcnVsZVR5cGUpOwogICAgICB9IGVsc2UgaWYgKGN4dC4kZGF0YSAmJiBkZWYudmFsaWRhdGUpIHsKICAgICAgICAoMCwga2V5d29yZF8xLmZ1bmNLZXl3b3JkQ29kZSkoY3h0LCBkZWYpOwogICAgICB9IGVsc2UgaWYgKCJtYWNybyIgaW4gZGVmKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5tYWNyb0tleXdvcmRDb2RlKShjeHQsIGRlZik7CiAgICAgIH0gZWxzZSBpZiAoZGVmLmNvbXBpbGUgfHwgZGVmLnZhbGlkYXRlKSB7CiAgICAgICAgKDAsIGtleXdvcmRfMS5mdW5jS2V5d29yZENvZGUpKGN4dCwgZGVmKTsKICAgICAgfQogICAgfQogICAgdmFyIEpTT05fUE9JTlRFUiA9IC9eXC8oPzpbXn5dfH4wfH4xKSokLzsKICAgIHZhciBSRUxBVElWRV9KU09OX1BPSU5URVIgPSAvXihbMC05XSspKCN8XC8oPzpbXn5dfH4wfH4xKSopPyQvOwogICAgZnVuY3Rpb24gZ2V0RGF0YSgkZGF0YSwgeyBkYXRhTGV2ZWwsIGRhdGFOYW1lcywgZGF0YVBhdGhBcnIgfSkgewogICAgICBsZXQganNvblBvaW50ZXI7CiAgICAgIGxldCBkYXRhOwogICAgICBpZiAoJGRhdGEgPT09ICIiKQogICAgICAgIHJldHVybiBuYW1lc18xLmRlZmF1bHQucm9vdERhdGE7CiAgICAgIGlmICgkZGF0YVswXSA9PT0gIi8iKSB7CiAgICAgICAgaWYgKCFKU09OX1BPSU5URVIudGVzdCgkZGF0YSkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgSlNPTi1wb2ludGVyOiAkeyRkYXRhfWApOwogICAgICAgIGpzb25Qb2ludGVyID0gJGRhdGE7CiAgICAgICAgZGF0YSA9IG5hbWVzXzEuZGVmYXVsdC5yb290RGF0YTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gUkVMQVRJVkVfSlNPTl9QT0lOVEVSLmV4ZWMoJGRhdGEpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBKU09OLXBvaW50ZXI6ICR7JGRhdGF9YCk7CiAgICAgICAgY29uc3QgdXAgPSArbWF0Y2hlc1sxXTsKICAgICAgICBqc29uUG9pbnRlciA9IG1hdGNoZXNbMl07CiAgICAgICAgaWYgKGpzb25Qb2ludGVyID09PSAiIyIpIHsKICAgICAgICAgIGlmICh1cCA+PSBkYXRhTGV2ZWwpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1zZygicHJvcGVydHkvaW5kZXgiLCB1cCkpOwogICAgICAgICAgcmV0dXJuIGRhdGFQYXRoQXJyW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICB9CiAgICAgICAgaWYgKHVwID4gZGF0YUxldmVsKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTXNnKCJkYXRhIiwgdXApKTsKICAgICAgICBkYXRhID0gZGF0YU5hbWVzW2RhdGFMZXZlbCAtIHVwXTsKICAgICAgICBpZiAoIWpzb25Qb2ludGVyKQogICAgICAgICAgcmV0dXJuIGRhdGE7CiAgICAgIH0KICAgICAgbGV0IGV4cHIgPSBkYXRhOwogICAgICBjb25zdCBzZWdtZW50cyA9IGpzb25Qb2ludGVyLnNwbGl0KCIvIik7CiAgICAgIGZvciAoY29uc3Qgc2VnbWVudCBvZiBzZWdtZW50cykgewogICAgICAgIGlmIChzZWdtZW50KSB7CiAgICAgICAgICBkYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9JHsoMCwgY29kZWdlbl8xLmdldFByb3BlcnR5KSgoMCwgdXRpbF8xLnVuZXNjYXBlSnNvblBvaW50ZXIpKHNlZ21lbnQpKX1gOwogICAgICAgICAgZXhwciA9ICgwLCBjb2RlZ2VuXzEuXylgJHtleHByfSAmJiAke2RhdGF9YDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGV4cHI7CiAgICAgIGZ1bmN0aW9uIGVycm9yTXNnKHBvaW50ZXJUeXBlLCB1cCkgewogICAgICAgIHJldHVybiBgQ2Fubm90IGFjY2VzcyAke3BvaW50ZXJUeXBlfSAke3VwfSBsZXZlbHMgdXAsIGN1cnJlbnQgbGV2ZWwgaXMgJHtkYXRhTGV2ZWx9YDsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuZ2V0RGF0YSA9IGdldERhdGE7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3ZhbGlkYXRpb25fZXJyb3IuanMKdmFyIHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgVmFsaWRhdGlvbkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKGVycm9ycykgewogICAgICAgIHN1cGVyKCJ2YWxpZGF0aW9uIGZhaWxlZCIpOwogICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzOwogICAgICAgIHRoaXMuYWp2ID0gdGhpcy52YWxpZGF0aW9uID0gdHJ1ZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBWYWxpZGF0aW9uRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb21waWxlL3JlZl9lcnJvci5qcwp2YXIgcmVxdWlyZV9yZWZfZXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvcmVmX2Vycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgTWlzc2luZ1JlZkVycm9yID0gY2xhc3MgZXh0ZW5kcyBFcnJvciB7CiAgICAgIGNvbnN0cnVjdG9yKHJlc29sdmVyLCBiYXNlSWQsIHJlZiwgbXNnKSB7CiAgICAgICAgc3VwZXIobXNnIHx8IGBjYW4ndCByZXNvbHZlIHJlZmVyZW5jZSAke3JlZn0gZnJvbSBpZCAke2Jhc2VJZH1gKTsKICAgICAgICB0aGlzLm1pc3NpbmdSZWYgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHJlc29sdmVyLCBiYXNlSWQsIHJlZik7CiAgICAgICAgdGhpcy5taXNzaW5nU2NoZW1hID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkocmVzb2x2ZXIsIHRoaXMubWlzc2luZ1JlZikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IE1pc3NpbmdSZWZFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvbXBpbGUvaW5kZXguanMKdmFyIHJlcXVpcmVfY29tcGlsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvY29tcGlsZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGV4cG9ydHMyLnJlc29sdmVSZWYgPSBleHBvcnRzMi5jb21waWxlU2NoZW1hID0gZXhwb3J0czIuU2NoZW1hRW52ID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIG5hbWVzXzEgPSByZXF1aXJlX25hbWVzKCk7CiAgICB2YXIgcmVzb2x2ZV8xID0gcmVxdWlyZV9yZXNvbHZlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIHZhciBTY2hlbWFFbnYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGVudikgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLnJlZnMgPSB7fTsKICAgICAgICB0aGlzLmR5bmFtaWNBbmNob3JzID0ge307CiAgICAgICAgbGV0IHNjaGVtYTI7CiAgICAgICAgaWYgKHR5cGVvZiBlbnYuc2NoZW1hID09ICJvYmplY3QiKQogICAgICAgICAgc2NoZW1hMiA9IGVudi5zY2hlbWE7CiAgICAgICAgdGhpcy5zY2hlbWEgPSBlbnYuc2NoZW1hOwogICAgICAgIHRoaXMuc2NoZW1hSWQgPSBlbnYuc2NoZW1hSWQ7CiAgICAgICAgdGhpcy5yb290ID0gZW52LnJvb3QgfHwgdGhpczsKICAgICAgICB0aGlzLmJhc2VJZCA9IChfYSA9IGVudi5iYXNlSWQpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICgwLCByZXNvbHZlXzEubm9ybWFsaXplSWQpKHNjaGVtYTIgPT09IG51bGwgfHwgc2NoZW1hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoZW1hMltlbnYuc2NoZW1hSWQgfHwgIiRpZCJdKTsKICAgICAgICB0aGlzLnNjaGVtYVBhdGggPSBlbnYuc2NoZW1hUGF0aDsKICAgICAgICB0aGlzLmxvY2FsUmVmcyA9IGVudi5sb2NhbFJlZnM7CiAgICAgICAgdGhpcy5tZXRhID0gZW52Lm1ldGE7CiAgICAgICAgdGhpcy4kYXN5bmMgPSBzY2hlbWEyID09PSBudWxsIHx8IHNjaGVtYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaGVtYTIuJGFzeW5jOwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hRW52ID0gU2NoZW1hRW52OwogICAgZnVuY3Rpb24gY29tcGlsZVNjaGVtYShzY2gpIHsKICAgICAgY29uc3QgX3NjaCA9IGdldENvbXBpbGluZ1NjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICAgIGlmIChfc2NoKQogICAgICAgIHJldHVybiBfc2NoOwogICAgICBjb25zdCByb290SWQgPSAoMCwgcmVzb2x2ZV8xLmdldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHNjaC5yb290LmJhc2VJZCk7CiAgICAgIGNvbnN0IHsgZXM1LCBsaW5lcyB9ID0gdGhpcy5vcHRzLmNvZGU7CiAgICAgIGNvbnN0IHsgb3duUHJvcGVydGllcyB9ID0gdGhpcy5vcHRzOwogICAgICBjb25zdCBnZW4gPSBuZXcgY29kZWdlbl8xLkNvZGVHZW4odGhpcy5zY29wZSwgeyBlczUsIGxpbmVzLCBvd25Qcm9wZXJ0aWVzIH0pOwogICAgICBsZXQgX1ZhbGlkYXRpb25FcnJvcjsKICAgICAgaWYgKHNjaC4kYXN5bmMpIHsKICAgICAgICBfVmFsaWRhdGlvbkVycm9yID0gZ2VuLnNjb3BlVmFsdWUoIkVycm9yIiwgewogICAgICAgICAgcmVmOiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdCwKICAgICAgICAgIGNvZGU6ICgwLCBjb2RlZ2VuXzEuXylgcmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS92YWxpZGF0aW9uX2Vycm9yIikuZGVmYXVsdGAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZGF0ZU5hbWUgPSBnZW4uc2NvcGVOYW1lKCJ2YWxpZGF0ZSIpOwogICAgICBzY2gudmFsaWRhdGVOYW1lID0gdmFsaWRhdGVOYW1lOwogICAgICBjb25zdCBzY2hlbWFDeHQgPSB7CiAgICAgICAgZ2VuLAogICAgICAgIGFsbEVycm9yczogdGhpcy5vcHRzLmFsbEVycm9ycywKICAgICAgICBkYXRhOiBuYW1lc18xLmRlZmF1bHQuZGF0YSwKICAgICAgICBwYXJlbnREYXRhOiBuYW1lc18xLmRlZmF1bHQucGFyZW50RGF0YSwKICAgICAgICBwYXJlbnREYXRhUHJvcGVydHk6IG5hbWVzXzEuZGVmYXVsdC5wYXJlbnREYXRhUHJvcGVydHksCiAgICAgICAgZGF0YU5hbWVzOiBbbmFtZXNfMS5kZWZhdWx0LmRhdGFdLAogICAgICAgIGRhdGFQYXRoQXJyOiBbY29kZWdlbl8xLm5pbF0sCiAgICAgICAgLy8gVE9ETyBjYW4gaXRzIGxlbmd0aCBiZSB1c2VkIGFzIGRhdGFMZXZlbCBpZiBuaWwgaXMgcmVtb3ZlZD8KICAgICAgICBkYXRhTGV2ZWw6IDAsCiAgICAgICAgZGF0YVR5cGVzOiBbXSwKICAgICAgICBkZWZpbmVkUHJvcGVydGllczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSwKICAgICAgICB0b3BTY2hlbWFSZWY6IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCB0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUgPyB7IHJlZjogc2NoLnNjaGVtYSwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaC5zY2hlbWEpIH0gOiB7IHJlZjogc2NoLnNjaGVtYSB9KSwKICAgICAgICB2YWxpZGF0ZU5hbWUsCiAgICAgICAgVmFsaWRhdGlvbkVycm9yOiBfVmFsaWRhdGlvbkVycm9yLAogICAgICAgIHNjaGVtYTogc2NoLnNjaGVtYSwKICAgICAgICBzY2hlbWFFbnY6IHNjaCwKICAgICAgICByb290SWQsCiAgICAgICAgYmFzZUlkOiBzY2guYmFzZUlkIHx8IHJvb3RJZCwKICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgIGVyclNjaGVtYVBhdGg6IHNjaC5zY2hlbWFQYXRoIHx8ICh0aGlzLm9wdHMuanRkID8gIiIgOiAiIyIpLAogICAgICAgIGVycm9yUGF0aDogKDAsIGNvZGVnZW5fMS5fKWAiImAsCiAgICAgICAgb3B0czogdGhpcy5vcHRzLAogICAgICAgIHNlbGY6IHRoaXMKICAgICAgfTsKICAgICAgbGV0IHNvdXJjZUNvZGU7CiAgICAgIHRyeSB7CiAgICAgICAgdGhpcy5fY29tcGlsYXRpb25zLmFkZChzY2gpOwogICAgICAgICgwLCB2YWxpZGF0ZV8xLnZhbGlkYXRlRnVuY3Rpb25Db2RlKShzY2hlbWFDeHQpOwogICAgICAgIGdlbi5vcHRpbWl6ZSh0aGlzLm9wdHMuY29kZS5vcHRpbWl6ZSk7CiAgICAgICAgY29uc3QgdmFsaWRhdGVDb2RlID0gZ2VuLnRvU3RyaW5nKCk7CiAgICAgICAgc291cmNlQ29kZSA9IGAke2dlbi5zY29wZVJlZnMobmFtZXNfMS5kZWZhdWx0LnNjb3BlKX1yZXR1cm4gJHt2YWxpZGF0ZUNvZGV9YDsKICAgICAgICBpZiAodGhpcy5vcHRzLmNvZGUucHJvY2VzcykKICAgICAgICAgIHNvdXJjZUNvZGUgPSB0aGlzLm9wdHMuY29kZS5wcm9jZXNzKHNvdXJjZUNvZGUsIHNjaCk7CiAgICAgICAgY29uc3QgbWFrZVZhbGlkYXRlID0gbmV3IEZ1bmN0aW9uKGAke25hbWVzXzEuZGVmYXVsdC5zZWxmfWAsIGAke25hbWVzXzEuZGVmYXVsdC5zY29wZX1gLCBzb3VyY2VDb2RlKTsKICAgICAgICBjb25zdCB2YWxpZGF0ZSA9IG1ha2VWYWxpZGF0ZSh0aGlzLCB0aGlzLnNjb3BlLmdldCgpKTsKICAgICAgICB0aGlzLnNjb3BlLnZhbHVlKHZhbGlkYXRlTmFtZSwgeyByZWY6IHZhbGlkYXRlIH0pOwogICAgICAgIHZhbGlkYXRlLmVycm9ycyA9IG51bGw7CiAgICAgICAgdmFsaWRhdGUuc2NoZW1hID0gc2NoLnNjaGVtYTsKICAgICAgICB2YWxpZGF0ZS5zY2hlbWFFbnYgPSBzY2g7CiAgICAgICAgaWYgKHNjaC4kYXN5bmMpCiAgICAgICAgICB2YWxpZGF0ZS4kYXN5bmMgPSB0cnVlOwogICAgICAgIGlmICh0aGlzLm9wdHMuY29kZS5zb3VyY2UgPT09IHRydWUpIHsKICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZSA9IHsgdmFsaWRhdGVOYW1lLCB2YWxpZGF0ZUNvZGUsIHNjb3BlVmFsdWVzOiBnZW4uX3ZhbHVlcyB9OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5vcHRzLnVuZXZhbHVhdGVkKSB7CiAgICAgICAgICBjb25zdCB7IHByb3BzLCBpdGVtcyB9ID0gc2NoZW1hQ3h0OwogICAgICAgICAgdmFsaWRhdGUuZXZhbHVhdGVkID0gewogICAgICAgICAgICBwcm9wczogcHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IHByb3BzLAogICAgICAgICAgICBpdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSA/IHZvaWQgMCA6IGl0ZW1zLAogICAgICAgICAgICBkeW5hbWljUHJvcHM6IHByb3BzIGluc3RhbmNlb2YgY29kZWdlbl8xLk5hbWUsCiAgICAgICAgICAgIGR5bmFtaWNJdGVtczogaXRlbXMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0ZS5zb3VyY2UpCiAgICAgICAgICAgIHZhbGlkYXRlLnNvdXJjZS5ldmFsdWF0ZWQgPSAoMCwgY29kZWdlbl8xLnN0cmluZ2lmeSkodmFsaWRhdGUuZXZhbHVhdGVkKTsKICAgICAgICB9CiAgICAgICAgc2NoLnZhbGlkYXRlID0gdmFsaWRhdGU7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgIGRlbGV0ZSBzY2gudmFsaWRhdGU7CiAgICAgICAgZGVsZXRlIHNjaC52YWxpZGF0ZU5hbWU7CiAgICAgICAgaWYgKHNvdXJjZUNvZGUpCiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcigiRXJyb3IgY29tcGlsaW5nIHNjaGVtYSwgZnVuY3Rpb24gY29kZToiLCBzb3VyY2VDb2RlKTsKICAgICAgICB0aHJvdyBlOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucy5kZWxldGUoc2NoKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIuY29tcGlsZVNjaGVtYSA9IGNvbXBpbGVTY2hlbWE7CiAgICBmdW5jdGlvbiByZXNvbHZlUmVmKHJvb3QsIGJhc2VJZCwgcmVmKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgcmVmKTsKICAgICAgY29uc3Qgc2NoT3JGdW5jID0gcm9vdC5yZWZzW3JlZl07CiAgICAgIGlmIChzY2hPckZ1bmMpCiAgICAgICAgcmV0dXJuIHNjaE9yRnVuYzsKICAgICAgbGV0IF9zY2ggPSByZXNvbHZlLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IHNjaGVtYTIgPSAoX2EgPSByb290LmxvY2FsUmVmcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3JlZl07CiAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGlmIChzY2hlbWEyKQogICAgICAgICAgX3NjaCA9IG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgaWYgKF9zY2ggPT09IHZvaWQgMCkKICAgICAgICByZXR1cm47CiAgICAgIHJldHVybiByb290LnJlZnNbcmVmXSA9IGlubGluZU9yQ29tcGlsZS5jYWxsKHRoaXMsIF9zY2gpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVJlZiA9IHJlc29sdmVSZWY7CiAgICBmdW5jdGlvbiBpbmxpbmVPckNvbXBpbGUoc2NoKSB7CiAgICAgIGlmICgoMCwgcmVzb2x2ZV8xLmlubGluZVJlZikoc2NoLnNjaGVtYSwgdGhpcy5vcHRzLmlubGluZVJlZnMpKQogICAgICAgIHJldHVybiBzY2guc2NoZW1hOwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gc2NoIDogY29tcGlsZVNjaGVtYS5jYWxsKHRoaXMsIHNjaCk7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRDb21waWxpbmdTY2hlbWEoc2NoRW52KSB7CiAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHRoaXMuX2NvbXBpbGF0aW9ucykgewogICAgICAgIGlmIChzYW1lU2NoZW1hRW52KHNjaCwgc2NoRW52KSkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmdldENvbXBpbGluZ1NjaGVtYSA9IGdldENvbXBpbGluZ1NjaGVtYTsKICAgIGZ1bmN0aW9uIHNhbWVTY2hlbWFFbnYoczEsIHMyKSB7CiAgICAgIHJldHVybiBzMS5zY2hlbWEgPT09IHMyLnNjaGVtYSAmJiBzMS5yb290ID09PSBzMi5yb290ICYmIHMxLmJhc2VJZCA9PT0gczIuYmFzZUlkOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShyb290LCByZWYpIHsKICAgICAgbGV0IHNjaDsKICAgICAgd2hpbGUgKHR5cGVvZiAoc2NoID0gdGhpcy5yZWZzW3JlZl0pID09ICJzdHJpbmciKQogICAgICAgIHJlZiA9IHNjaDsKICAgICAgcmV0dXJuIHNjaCB8fCB0aGlzLnNjaGVtYXNbcmVmXSB8fCByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgcmVmKTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVTY2hlbWEocm9vdCwgcmVmKSB7CiAgICAgIGNvbnN0IHAgPSB0aGlzLm9wdHMudXJpUmVzb2x2ZXIucGFyc2UocmVmKTsKICAgICAgY29uc3QgcmVmUGF0aCA9ICgwLCByZXNvbHZlXzEuX2dldEZ1bGxQYXRoKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIHApOwogICAgICBsZXQgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5nZXRGdWxsUGF0aCkodGhpcy5vcHRzLnVyaVJlc29sdmVyLCByb290LmJhc2VJZCwgdm9pZCAwKTsKICAgICAgaWYgKE9iamVjdC5rZXlzKHJvb3Quc2NoZW1hKS5sZW5ndGggPiAwICYmIHJlZlBhdGggPT09IGJhc2VJZCkgewogICAgICAgIHJldHVybiBnZXRKc29uUG9pbnRlci5jYWxsKHRoaXMsIHAsIHJvb3QpOwogICAgICB9CiAgICAgIGNvbnN0IGlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmUGF0aCk7CiAgICAgIGNvbnN0IHNjaE9yUmVmID0gdGhpcy5yZWZzW2lkXSB8fCB0aGlzLnNjaGVtYXNbaWRdOwogICAgICBpZiAodHlwZW9mIHNjaE9yUmVmID09ICJzdHJpbmciKSB7CiAgICAgICAgY29uc3Qgc2NoID0gcmVzb2x2ZVNjaGVtYS5jYWxsKHRoaXMsIHJvb3QsIHNjaE9yUmVmKTsKICAgICAgICBpZiAodHlwZW9mIChzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2guc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoKTsKICAgICAgfQogICAgICBpZiAodHlwZW9mIChzY2hPclJlZiA9PT0gbnVsbCB8fCBzY2hPclJlZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2NoT3JSZWYuc2NoZW1hKSAhPT0gIm9iamVjdCIpCiAgICAgICAgcmV0dXJuOwogICAgICBpZiAoIXNjaE9yUmVmLnZhbGlkYXRlKQogICAgICAgIGNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2hPclJlZik7CiAgICAgIGlmIChpZCA9PT0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkocmVmKSkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyIH0gPSBzY2hPclJlZjsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgY29uc3Qgc2NoSWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICBpZiAoc2NoSWQpCiAgICAgICAgICBiYXNlSWQgPSAoMCwgcmVzb2x2ZV8xLnJlc29sdmVVcmwpKHRoaXMub3B0cy51cmlSZXNvbHZlciwgYmFzZUlkLCBzY2hJZCk7CiAgICAgICAgcmV0dXJuIG5ldyBTY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCByb290LCBiYXNlSWQgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGdldEpzb25Qb2ludGVyLmNhbGwodGhpcywgcCwgc2NoT3JSZWYpOwogICAgfQogICAgZXhwb3J0czIucmVzb2x2ZVNjaGVtYSA9IHJlc29sdmVTY2hlbWE7CiAgICB2YXIgUFJFVkVOVF9TQ09QRV9DSEFOR0UgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICJwcm9wZXJ0aWVzIiwKICAgICAgInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgImVudW0iLAogICAgICAiZGVwZW5kZW5jaWVzIiwKICAgICAgImRlZmluaXRpb25zIgogICAgXSk7CiAgICBmdW5jdGlvbiBnZXRKc29uUG9pbnRlcihwYXJzZWRSZWYsIHsgYmFzZUlkLCBzY2hlbWE6IHNjaGVtYTIsIHJvb3QgfSkgewogICAgICB2YXIgX2E7CiAgICAgIGlmICgoKF9hID0gcGFyc2VkUmVmLmZyYWdtZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FbMF0pICE9PSAiLyIpCiAgICAgICAgcmV0dXJuOwogICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFyc2VkUmVmLmZyYWdtZW50LnNsaWNlKDEpLnNwbGl0KCIvIikpIHsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT09ICJib29sZWFuIikKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBwYXJ0U2NoZW1hID0gc2NoZW1hMlsoMCwgdXRpbF8xLnVuZXNjYXBlRnJhZ21lbnQpKHBhcnQpXTsKICAgICAgICBpZiAocGFydFNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIHNjaGVtYTIgPSBwYXJ0U2NoZW1hOwogICAgICAgIGNvbnN0IHNjaElkID0gdHlwZW9mIHNjaGVtYTIgPT09ICJvYmplY3QiICYmIHNjaGVtYTJbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICBpZiAoIVBSRVZFTlRfU0NPUEVfQ0hBTkdFLmhhcyhwYXJ0KSAmJiBzY2hJZCkgewogICAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoSWQpOwogICAgICAgIH0KICAgICAgfQogICAgICBsZXQgZW52OwogICAgICBpZiAodHlwZW9mIHNjaGVtYTIgIT0gImJvb2xlYW4iICYmIHNjaGVtYTIuJHJlZiAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoZW1hMiwgdGhpcy5SVUxFUykpIHsKICAgICAgICBjb25zdCAkcmVmID0gKDAsIHJlc29sdmVfMS5yZXNvbHZlVXJsKSh0aGlzLm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgc2NoZW1hMi4kcmVmKTsKICAgICAgICBlbnYgPSByZXNvbHZlU2NoZW1hLmNhbGwodGhpcywgcm9vdCwgJHJlZik7CiAgICAgIH0KICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICBlbnYgPSBlbnYgfHwgbmV3IFNjaGVtYUVudih7IHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hSWQsIHJvb3QsIGJhc2VJZCB9KTsKICAgICAgaWYgKGVudi5zY2hlbWEgIT09IGVudi5yb290LnNjaGVtYSkKICAgICAgICByZXR1cm4gZW52OwogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24KdmFyIHJlcXVpcmVfZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9kYXRhLmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRpZDogImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9hanYtdmFsaWRhdG9yL2Fqdi9tYXN0ZXIvbGliL3JlZnMvZGF0YS5qc29uIyIsCiAgICAgIGRlc2NyaXB0aW9uOiAiTWV0YS1zY2hlbWEgZm9yICRkYXRhIHJlZmVyZW5jZSAoSlNPTiBBbnlTY2hlbWEgZXh0ZW5zaW9uIHByb3Bvc2FsKSIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICByZXF1aXJlZDogWyIkZGF0YSJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGRhdGE6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgYW55T2Y6IFt7IGZvcm1hdDogInJlbGF0aXZlLWpzb24tcG9pbnRlciIgfSwgeyBmb3JtYXQ6ICJqc29uLXBvaW50ZXIiIH1dCiAgICAgICAgfQogICAgICB9LAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzCnZhciByZXF1aXJlX3Njb3BlZENoYXJzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3Njb3BlZENoYXJzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIEhFWCA9IHsKICAgICAgMDogMCwKICAgICAgMTogMSwKICAgICAgMjogMiwKICAgICAgMzogMywKICAgICAgNDogNCwKICAgICAgNTogNSwKICAgICAgNjogNiwKICAgICAgNzogNywKICAgICAgODogOCwKICAgICAgOTogOSwKICAgICAgYTogMTAsCiAgICAgIEE6IDEwLAogICAgICBiOiAxMSwKICAgICAgQjogMTEsCiAgICAgIGM6IDEyLAogICAgICBDOiAxMiwKICAgICAgZDogMTMsCiAgICAgIEQ6IDEzLAogICAgICBlOiAxNCwKICAgICAgRTogMTQsCiAgICAgIGY6IDE1LAogICAgICBGOiAxNQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgSEVYCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvZmFzdC11cmktbnBtLTMuMC4zLTA4NzQwNzI2MjUtMTAuemlwL25vZGVfbW9kdWxlcy9mYXN0LXVyaS9saWIvdXRpbHMuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBIRVggfSA9IHJlcXVpcmVfc2NvcGVkQ2hhcnMoKTsKICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUlQdjQoaG9zdCkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICIuIikgPCAzKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY0OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBob3N0Lm1hdGNoKC9eKD86KD86MjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV1bMC05XXxbMS05XVswLTldfFswLTldKVwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18MVswLTldWzAtOV18WzEtOV1bMC05XXxbMC05XSkkL3UpIHx8IFtdOwogICAgICBjb25zdCBbYWRkcmVzc10gPSBtYXRjaGVzOwogICAgICBpZiAoYWRkcmVzcykgewogICAgICAgIHJldHVybiB7IGhvc3Q6IHN0cmlwTGVhZGluZ1plcm9zKGFkZHJlc3MsICIuIiksIGlzSVBWNDogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNDogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGlucHV0LCBrZWVwWmVybyA9IGZhbHNlKSB7CiAgICAgIGxldCBhY2MgPSAiIjsKICAgICAgbGV0IHN0cmlwID0gdHJ1ZTsKICAgICAgZm9yIChjb25zdCBjIG9mIGlucHV0KSB7CiAgICAgICAgaWYgKEhFWFtjXSA9PT0gdm9pZCAwKSByZXR1cm4gdm9pZCAwOwogICAgICAgIGlmIChjICE9PSAiMCIgJiYgc3RyaXAgPT09IHRydWUpIHN0cmlwID0gZmFsc2U7CiAgICAgICAgaWYgKCFzdHJpcCkgYWNjICs9IGM7CiAgICAgIH0KICAgICAgaWYgKGtlZXBaZXJvICYmIGFjYy5sZW5ndGggPT09IDApIGFjYyA9ICIwIjsKICAgICAgcmV0dXJuIGFjYzsKICAgIH0KICAgIGZ1bmN0aW9uIGdldElQVjYoaW5wdXQpIHsKICAgICAgbGV0IHRva2VuQ291bnQgPSAwOwogICAgICBjb25zdCBvdXRwdXQgPSB7IGVycm9yOiBmYWxzZSwgYWRkcmVzczogIiIsIHpvbmU6ICIiIH07CiAgICAgIGNvbnN0IGFkZHJlc3MgPSBbXTsKICAgICAgY29uc3QgYnVmZmVyID0gW107CiAgICAgIGxldCBpc1pvbmUgPSBmYWxzZTsKICAgICAgbGV0IGVuZGlwdjZFbmNvdW50ZXJlZCA9IGZhbHNlOwogICAgICBsZXQgZW5kSXB2NiA9IGZhbHNlOwogICAgICBmdW5jdGlvbiBjb25zdW1lKCkgewogICAgICAgIGlmIChidWZmZXIubGVuZ3RoKSB7CiAgICAgICAgICBpZiAoaXNab25lID09PSBmYWxzZSkgewogICAgICAgICAgICBjb25zdCBoZXggPSBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQoYnVmZmVyKTsKICAgICAgICAgICAgaWYgKGhleCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgYWRkcmVzcy5wdXNoKGhleCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgb3V0cHV0LmVycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGJ1ZmZlci5sZW5ndGggPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3Vyc29yID0gaW5wdXRbaV07CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIlsiIHx8IGN1cnNvciA9PT0gIl0iKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGN1cnNvciA9PT0gIjoiKSB7CiAgICAgICAgICBpZiAoZW5kaXB2NkVuY291bnRlcmVkID09PSB0cnVlKSB7CiAgICAgICAgICAgIGVuZElwdjYgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFjb25zdW1lKCkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICB0b2tlbkNvdW50Kys7CiAgICAgICAgICBhZGRyZXNzLnB1c2goIjoiKTsKICAgICAgICAgIGlmICh0b2tlbkNvdW50ID4gNykgewogICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSB0cnVlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChpIC0gMSA+PSAwICYmIGlucHV0W2kgLSAxXSA9PT0gIjoiKSB7CiAgICAgICAgICAgIGVuZGlwdjZFbmNvdW50ZXJlZCA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGN1cnNvciA9PT0gIiUiKSB7CiAgICAgICAgICBpZiAoIWNvbnN1bWUoKSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlzWm9uZSA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKGN1cnNvcik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICBpZiAoaXNab25lKSB7CiAgICAgICAgICBvdXRwdXQuem9uZSA9IGJ1ZmZlci5qb2luKCIiKTsKICAgICAgICB9IGVsc2UgaWYgKGVuZElwdjYpIHsKICAgICAgICAgIGFkZHJlc3MucHVzaChidWZmZXIuam9pbigiIikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBhZGRyZXNzLnB1c2goc3RyaW5nQXJyYXlUb0hleFN0cmlwcGVkKGJ1ZmZlcikpOwogICAgICAgIH0KICAgICAgfQogICAgICBvdXRwdXQuYWRkcmVzcyA9IGFkZHJlc3Muam9pbigiIik7CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVJUHY2KGhvc3QsIG9wdHMgPSB7fSkgewogICAgICBpZiAoZmluZFRva2VuKGhvc3QsICI6IikgPCAyKSB7CiAgICAgICAgcmV0dXJuIHsgaG9zdCwgaXNJUFY2OiBmYWxzZSB9OwogICAgICB9CiAgICAgIGNvbnN0IGlwdjYgPSBnZXRJUFY2KGhvc3QpOwogICAgICBpZiAoIWlwdjYuZXJyb3IpIHsKICAgICAgICBsZXQgbmV3SG9zdCA9IGlwdjYuYWRkcmVzczsKICAgICAgICBsZXQgZXNjYXBlZEhvc3QgPSBpcHY2LmFkZHJlc3M7CiAgICAgICAgaWYgKGlwdjYuem9uZSkgewogICAgICAgICAgbmV3SG9zdCArPSAiJSIgKyBpcHY2LnpvbmU7CiAgICAgICAgICBlc2NhcGVkSG9zdCArPSAiJTI1IiArIGlwdjYuem9uZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsgaG9zdDogbmV3SG9zdCwgZXNjYXBlZEhvc3QsIGlzSVBWNjogdHJ1ZSB9OwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiB7IGhvc3QsIGlzSVBWNjogZmFsc2UgfTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gc3RyaXBMZWFkaW5nWmVyb3Moc3RyMiwgdG9rZW4pIHsKICAgICAgbGV0IG91dCA9ICIiOwogICAgICBsZXQgc2tpcCA9IHRydWU7CiAgICAgIGNvbnN0IGwgPSBzdHIyLmxlbmd0aDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsOyBpKyspIHsKICAgICAgICBjb25zdCBjID0gc3RyMltpXTsKICAgICAgICBpZiAoYyA9PT0gIjAiICYmIHNraXApIHsKICAgICAgICAgIGlmIChpICsgMSA8PSBsICYmIHN0cjJbaSArIDFdID09PSB0b2tlbiB8fCBpICsgMSA9PT0gbCkgewogICAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICAgICAgc2tpcCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoYyA9PT0gdG9rZW4pIHsKICAgICAgICAgICAgc2tpcCA9IHRydWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBza2lwID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvdXQgKz0gYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIG91dDsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbmRUb2tlbihzdHIyLCB0b2tlbikgewogICAgICBsZXQgaW5kID0gMDsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKHN0cjJbaV0gPT09IHRva2VuKSBpbmQrKzsKICAgICAgfQogICAgICByZXR1cm4gaW5kOwogICAgfQogICAgdmFyIFJEUzEgPSAvXlwuXC4/XC8vdTsKICAgIHZhciBSRFMyID0gL15cL1wuKD86XC98JCkvdTsKICAgIHZhciBSRFMzID0gL15cL1wuXC4oPzpcL3wkKS91OwogICAgdmFyIFJEUzUgPSAvXlwvPyg/Oi58XG4pKj8oPz1cL3wkKS91OwogICAgZnVuY3Rpb24gcmVtb3ZlRG90U2VnbWVudHMoaW5wdXQpIHsKICAgICAgY29uc3Qgb3V0cHV0ID0gW107CiAgICAgIHdoaWxlIChpbnB1dC5sZW5ndGgpIHsKICAgICAgICBpZiAoaW5wdXQubWF0Y2goUkRTMSkpIHsKICAgICAgICAgIGlucHV0ID0gaW5wdXQucmVwbGFjZShSRFMxLCAiIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMyKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzIsICIvIik7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5tYXRjaChSRFMzKSkgewogICAgICAgICAgaW5wdXQgPSBpbnB1dC5yZXBsYWNlKFJEUzMsICIvIik7CiAgICAgICAgICBvdXRwdXQucG9wKCk7CiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PT0gIi4iIHx8IGlucHV0ID09PSAiLi4iKSB7CiAgICAgICAgICBpbnB1dCA9ICIiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBpbSA9IGlucHV0Lm1hdGNoKFJEUzUpOwogICAgICAgICAgaWYgKGltKSB7CiAgICAgICAgICAgIGNvbnN0IHMgPSBpbVswXTsKICAgICAgICAgICAgaW5wdXQgPSBpbnB1dC5zbGljZShzLmxlbmd0aCk7CiAgICAgICAgICAgIG91dHB1dC5wdXNoKHMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGRvdCBzZWdtZW50IGNvbmRpdGlvbiIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gb3V0cHV0LmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcoY29tcG9uZW50cywgZXNjKSB7CiAgICAgIGNvbnN0IGZ1bmMgPSBlc2MgIT09IHRydWUgPyBlc2NhcGUgOiB1bmVzY2FwZTsKICAgICAgaWYgKGNvbXBvbmVudHMuc2NoZW1lICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnNjaGVtZSA9IGZ1bmMoY29tcG9uZW50cy5zY2hlbWUpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnVzZXJpbmZvICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnVzZXJpbmZvID0gZnVuYyhjb21wb25lbnRzLnVzZXJpbmZvKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5ob3N0ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLmhvc3QgPSBmdW5jKGNvbXBvbmVudHMuaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZnVuYyhjb21wb25lbnRzLnBhdGgpOwogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnF1ZXJ5ICE9PSB2b2lkIDApIHsKICAgICAgICBjb21wb25lbnRzLnF1ZXJ5ID0gZnVuYyhjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgY29tcG9uZW50cy5mcmFnbWVudCA9IGZ1bmMoY29tcG9uZW50cy5mcmFnbWVudCk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiByZWNvbXBvc2VBdXRob3JpdHkoY29tcG9uZW50cywgb3B0aW9ucykgewogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgaWYgKGNvbXBvbmVudHMudXNlcmluZm8gIT09IHZvaWQgMCkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMudXNlcmluZm8pOwogICAgICAgIHVyaVRva2Vucy5wdXNoKCJAIik7CiAgICAgIH0KICAgICAgaWYgKGNvbXBvbmVudHMuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgbGV0IGhvc3QgPSB1bmVzY2FwZShjb21wb25lbnRzLmhvc3QpOwogICAgICAgIGNvbnN0IGlwVjRyZXMgPSBub3JtYWxpemVJUHY0KGhvc3QpOwogICAgICAgIGlmIChpcFY0cmVzLmlzSVBWNCkgewogICAgICAgICAgaG9zdCA9IGlwVjRyZXMuaG9zdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29uc3QgaXBWNnJlcyA9IG5vcm1hbGl6ZUlQdjYoaXBWNHJlcy5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICBpZiAoaXBWNnJlcy5pc0lQVjYgPT09IHRydWUpIHsKICAgICAgICAgICAgaG9zdCA9IGBbJHtpcFY2cmVzLmVzY2FwZWRIb3N0fV1gOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaG9zdCA9IGNvbXBvbmVudHMuaG9zdDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdXJpVG9rZW5zLnB1c2goaG9zdCk7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJudW1iZXIiIHx8IHR5cGVvZiBjb21wb25lbnRzLnBvcnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIjoiKTsKICAgICAgICB1cmlUb2tlbnMucHVzaChTdHJpbmcoY29tcG9uZW50cy5wb3J0KSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaVRva2Vucy5sZW5ndGggPyB1cmlUb2tlbnMuam9pbigiIikgOiB2b2lkIDA7CiAgICB9CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgIHJlY29tcG9zZUF1dGhvcml0eSwKICAgICAgbm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcsCiAgICAgIHJlbW92ZURvdFNlZ21lbnRzLAogICAgICBub3JtYWxpemVJUHY0LAogICAgICBub3JtYWxpemVJUHY2LAogICAgICBzdHJpbmdBcnJheVRvSGV4U3RyaXBwZWQKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvbGliL3NjaGVtZXMuanMKdmFyIHJlcXVpcmVfc2NoZW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2xpYi9zY2hlbWVzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFVVSURfUkVHID0gL15bXGRhLWZdezh9XGItW1xkYS1mXXs0fVxiLVtcZGEtZl17NH1cYi1bXGRhLWZdezR9XGItW1xkYS1mXXsxMn0kL2l1OwogICAgdmFyIFVSTl9SRUcgPSAvKFtcZGEtel1bXGRcLWEtel17MCwzMX0pOigoPzpbXHchJCcoKSorLFwtLjo7PUBdfCVbXGRhLWZdezJ9KSspL2l1OwogICAgZnVuY3Rpb24gaXNTZWN1cmUod3NDb21wb25lbnRzKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iID8gd3NDb21wb25lbnRzLnNlY3VyZSA6IFN0cmluZyh3c0NvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAid3NzIjsKICAgIH0KICAgIGZ1bmN0aW9uIGh0dHBQYXJzZShjb21wb25lbnRzKSB7CiAgICAgIGlmICghY29tcG9uZW50cy5ob3N0KSB7CiAgICAgICAgY29tcG9uZW50cy5lcnJvciA9IGNvbXBvbmVudHMuZXJyb3IgfHwgIkhUVFAgVVJJcyBtdXN0IGhhdmUgYSBob3N0LiI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBodHRwU2VyaWFsaXplKGNvbXBvbmVudHMpIHsKICAgICAgY29uc3Qgc2VjdXJlID0gU3RyaW5nKGNvbXBvbmVudHMuc2NoZW1lKS50b0xvd2VyQ2FzZSgpID09PSAiaHR0cHMiOwogICAgICBpZiAoY29tcG9uZW50cy5wb3J0ID09PSAoc2VjdXJlID8gNDQzIDogODApIHx8IGNvbXBvbmVudHMucG9ydCA9PT0gIiIpIHsKICAgICAgICBjb21wb25lbnRzLnBvcnQgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKCFjb21wb25lbnRzLnBhdGgpIHsKICAgICAgICBjb21wb25lbnRzLnBhdGggPSAiLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB3c1BhcnNlKHdzQ29tcG9uZW50cykgewogICAgICB3c0NvbXBvbmVudHMuc2VjdXJlID0gaXNTZWN1cmUod3NDb21wb25lbnRzKTsKICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9ICh3c0NvbXBvbmVudHMucGF0aCB8fCAiLyIpICsgKHdzQ29tcG9uZW50cy5xdWVyeSA/ICI/IiArIHdzQ29tcG9uZW50cy5xdWVyeSA6ICIiKTsKICAgICAgd3NDb21wb25lbnRzLnBhdGggPSB2b2lkIDA7CiAgICAgIHdzQ29tcG9uZW50cy5xdWVyeSA9IHZvaWQgMDsKICAgICAgcmV0dXJuIHdzQ29tcG9uZW50czsKICAgIH0KICAgIGZ1bmN0aW9uIHdzU2VyaWFsaXplKHdzQ29tcG9uZW50cykgewogICAgICBpZiAod3NDb21wb25lbnRzLnBvcnQgPT09IChpc1NlY3VyZSh3c0NvbXBvbmVudHMpID8gNDQzIDogODApIHx8IHdzQ29tcG9uZW50cy5wb3J0ID09PSAiIikgewogICAgICAgIHdzQ29tcG9uZW50cy5wb3J0ID0gdm9pZCAwOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Ygd3NDb21wb25lbnRzLnNlY3VyZSA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgd3NDb21wb25lbnRzLnNjaGVtZSA9IHdzQ29tcG9uZW50cy5zZWN1cmUgPyAid3NzIiA6ICJ3cyI7CiAgICAgICAgd3NDb21wb25lbnRzLnNlY3VyZSA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAod3NDb21wb25lbnRzLnJlc291cmNlTmFtZSkgewogICAgICAgIGNvbnN0IFtwYXRoLCBxdWVyeV0gPSB3c0NvbXBvbmVudHMucmVzb3VyY2VOYW1lLnNwbGl0KCI/Iik7CiAgICAgICAgd3NDb21wb25lbnRzLnBhdGggPSBwYXRoICYmIHBhdGggIT09ICIvIiA/IHBhdGggOiB2b2lkIDA7CiAgICAgICAgd3NDb21wb25lbnRzLnF1ZXJ5ID0gcXVlcnk7CiAgICAgICAgd3NDb21wb25lbnRzLnJlc291cmNlTmFtZSA9IHZvaWQgMDsKICAgICAgfQogICAgICB3c0NvbXBvbmVudHMuZnJhZ21lbnQgPSB2b2lkIDA7CiAgICAgIHJldHVybiB3c0NvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm5QYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKSB7CiAgICAgIGlmICghdXJuQ29tcG9uZW50cy5wYXRoKSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9ICJVUk4gY2FuIG5vdCBiZSBwYXJzZWQiOwogICAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgICB9CiAgICAgIGNvbnN0IG1hdGNoZXMgPSB1cm5Db21wb25lbnRzLnBhdGgubWF0Y2goVVJOX1JFRyk7CiAgICAgIGlmIChtYXRjaGVzKSB7CiAgICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uaWQgPSBtYXRjaGVzWzFdLnRvTG93ZXJDYXNlKCk7CiAgICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSBtYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCB1cm5Db21wb25lbnRzLm5pZH1gOwogICAgICAgIGNvbnN0IHNjaGVtZUhhbmRsZXIgPSBTQ0hFTUVTW3VyblNjaGVtZV07CiAgICAgICAgdXJuQ29tcG9uZW50cy5wYXRoID0gdm9pZCAwOwogICAgICAgIGlmIChzY2hlbWVIYW5kbGVyKSB7CiAgICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5wYXJzZSh1cm5Db21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdXJuQ29tcG9uZW50cy5lcnJvciA9IHVybkNvbXBvbmVudHMuZXJyb3IgfHwgIlVSTiBjYW4gbm90IGJlIHBhcnNlZC4iOwogICAgICB9CiAgICAgIHJldHVybiB1cm5Db21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJuU2VyaWFsaXplKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc2NoZW1lID0gb3B0aW9ucy5zY2hlbWUgfHwgdXJuQ29tcG9uZW50cy5zY2hlbWUgfHwgInVybiI7CiAgICAgIGNvbnN0IG5pZCA9IHVybkNvbXBvbmVudHMubmlkLnRvTG93ZXJDYXNlKCk7CiAgICAgIGNvbnN0IHVyblNjaGVtZSA9IGAke3NjaGVtZX06JHtvcHRpb25zLm5pZCB8fCBuaWR9YDsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbdXJuU2NoZW1lXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIpIHsKICAgICAgICB1cm5Db21wb25lbnRzID0gc2NoZW1lSGFuZGxlci5zZXJpYWxpemUodXJuQ29tcG9uZW50cywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgY29uc3QgdXJpQ29tcG9uZW50cyA9IHVybkNvbXBvbmVudHM7CiAgICAgIGNvbnN0IG5zcyA9IHVybkNvbXBvbmVudHMubnNzOwogICAgICB1cmlDb21wb25lbnRzLnBhdGggPSBgJHtuaWQgfHwgb3B0aW9ucy5uaWR9OiR7bnNzfWA7CiAgICAgIG9wdGlvbnMuc2tpcEVzY2FwZSA9IHRydWU7CiAgICAgIHJldHVybiB1cmlDb21wb25lbnRzOwogICAgfQogICAgZnVuY3Rpb24gdXJudXVpZFBhcnNlKHVybkNvbXBvbmVudHMsIG9wdGlvbnMpIHsKICAgICAgY29uc3QgdXVpZENvbXBvbmVudHMgPSB1cm5Db21wb25lbnRzOwogICAgICB1dWlkQ29tcG9uZW50cy51dWlkID0gdXVpZENvbXBvbmVudHMubnNzOwogICAgICB1dWlkQ29tcG9uZW50cy5uc3MgPSB2b2lkIDA7CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiAoIXV1aWRDb21wb25lbnRzLnV1aWQgfHwgIVVVSURfUkVHLnRlc3QodXVpZENvbXBvbmVudHMudXVpZCkpKSB7CiAgICAgICAgdXVpZENvbXBvbmVudHMuZXJyb3IgPSB1dWlkQ29tcG9uZW50cy5lcnJvciB8fCAiVVVJRCBpcyBub3QgdmFsaWQuIjsKICAgICAgfQogICAgICByZXR1cm4gdXVpZENvbXBvbmVudHM7CiAgICB9CiAgICBmdW5jdGlvbiB1cm51dWlkU2VyaWFsaXplKHV1aWRDb21wb25lbnRzKSB7CiAgICAgIGNvbnN0IHVybkNvbXBvbmVudHMgPSB1dWlkQ29tcG9uZW50czsKICAgICAgdXJuQ29tcG9uZW50cy5uc3MgPSAodXVpZENvbXBvbmVudHMudXVpZCB8fCAiIikudG9Mb3dlckNhc2UoKTsKICAgICAgcmV0dXJuIHVybkNvbXBvbmVudHM7CiAgICB9CiAgICB2YXIgaHR0cCA9IHsKICAgICAgc2NoZW1lOiAiaHR0cCIsCiAgICAgIGRvbWFpbkhvc3Q6IHRydWUsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciBodHRwcyA9IHsKICAgICAgc2NoZW1lOiAiaHR0cHMiLAogICAgICBkb21haW5Ib3N0OiBodHRwLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiBodHRwUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogaHR0cFNlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3cyA9IHsKICAgICAgc2NoZW1lOiAid3MiLAogICAgICBkb21haW5Ib3N0OiB0cnVlLAogICAgICBwYXJzZTogd3NQYXJzZSwKICAgICAgc2VyaWFsaXplOiB3c1NlcmlhbGl6ZQogICAgfTsKICAgIHZhciB3c3MgPSB7CiAgICAgIHNjaGVtZTogIndzcyIsCiAgICAgIGRvbWFpbkhvc3Q6IHdzLmRvbWFpbkhvc3QsCiAgICAgIHBhcnNlOiB3cy5wYXJzZSwKICAgICAgc2VyaWFsaXplOiB3cy5zZXJpYWxpemUKICAgIH07CiAgICB2YXIgdXJuID0gewogICAgICBzY2hlbWU6ICJ1cm4iLAogICAgICBwYXJzZTogdXJuUGFyc2UsCiAgICAgIHNlcmlhbGl6ZTogdXJuU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIHVybnV1aWQgPSB7CiAgICAgIHNjaGVtZTogInVybjp1dWlkIiwKICAgICAgcGFyc2U6IHVybnV1aWRQYXJzZSwKICAgICAgc2VyaWFsaXplOiB1cm51dWlkU2VyaWFsaXplLAogICAgICBza2lwTm9ybWFsaXplOiB0cnVlCiAgICB9OwogICAgdmFyIFNDSEVNRVMgPSB7CiAgICAgIGh0dHAsCiAgICAgIGh0dHBzLAogICAgICB3cywKICAgICAgd3NzLAogICAgICB1cm4sCiAgICAgICJ1cm46dXVpZCI6IHVybnV1aWQKICAgIH07CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBTQ0hFTUVTOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9mYXN0LXVyaS1ucG0tMy4wLjMtMDg3NDA3MjYyNS0xMC56aXAvbm9kZV9tb2R1bGVzL2Zhc3QtdXJpL2luZGV4LmpzCnZhciByZXF1aXJlX2Zhc3RfdXJpID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Zhc3QtdXJpLW5wbS0zLjAuMy0wODc0MDcyNjI1LTEwLnppcC9ub2RlX21vZHVsZXMvZmFzdC11cmkvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgeyBub3JtYWxpemVJUHY2LCBub3JtYWxpemVJUHY0LCByZW1vdmVEb3RTZWdtZW50cywgcmVjb21wb3NlQXV0aG9yaXR5LCBub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyB9ID0gcmVxdWlyZV91dGlsczIoKTsKICAgIHZhciBTQ0hFTUVTID0gcmVxdWlyZV9zY2hlbWVzKCk7CiAgICBmdW5jdGlvbiBub3JtYWxpemUodXJpLCBvcHRpb25zKSB7CiAgICAgIGlmICh0eXBlb2YgdXJpID09PSAic3RyaW5nIikgewogICAgICAgIHVyaSA9IHNlcmlhbGl6ZShwYXJzZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpID09PSAib2JqZWN0IikgewogICAgICAgIHVyaSA9IHBhcnNlKHNlcmlhbGl6ZSh1cmksIG9wdGlvbnMpLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXR1cm4gdXJpOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShiYXNlVVJJLCByZWxhdGl2ZVVSSSwgb3B0aW9ucykgewogICAgICBjb25zdCBzY2hlbWVsZXNzT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oeyBzY2hlbWU6ICJudWxsIiB9LCBvcHRpb25zKTsKICAgICAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlQ29tcG9uZW50cyhwYXJzZShiYXNlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHBhcnNlKHJlbGF0aXZlVVJJLCBzY2hlbWVsZXNzT3B0aW9ucyksIHNjaGVtZWxlc3NPcHRpb25zLCB0cnVlKTsKICAgICAgcmV0dXJuIHNlcmlhbGl6ZShyZXNvbHZlZCwgeyAuLi5zY2hlbWVsZXNzT3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHJlc29sdmVDb21wb25lbnRzKGJhc2UsIHJlbGF0aXZlLCBvcHRpb25zLCBza2lwTm9ybWFsaXphdGlvbikgewogICAgICBjb25zdCB0YXJnZXQgPSB7fTsKICAgICAgaWYgKCFza2lwTm9ybWFsaXphdGlvbikgewogICAgICAgIGJhc2UgPSBwYXJzZShzZXJpYWxpemUoYmFzZSwgb3B0aW9ucyksIG9wdGlvbnMpOwogICAgICAgIHJlbGF0aXZlID0gcGFyc2Uoc2VyaWFsaXplKHJlbGF0aXZlLCBvcHRpb25zKSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgIGlmICghb3B0aW9ucy50b2xlcmFudCAmJiByZWxhdGl2ZS5zY2hlbWUpIHsKICAgICAgICB0YXJnZXQuc2NoZW1lID0gcmVsYXRpdmUuc2NoZW1lOwogICAgICAgIHRhcmdldC51c2VyaW5mbyA9IHJlbGF0aXZlLnVzZXJpbmZvOwogICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICB0YXJnZXQucG9ydCA9IHJlbGF0aXZlLnBvcnQ7CiAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoIHx8ICIiKTsKICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocmVsYXRpdmUudXNlcmluZm8gIT09IHZvaWQgMCB8fCByZWxhdGl2ZS5ob3N0ICE9PSB2b2lkIDAgfHwgcmVsYXRpdmUucG9ydCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSByZWxhdGl2ZS51c2VyaW5mbzsKICAgICAgICAgIHRhcmdldC5ob3N0ID0gcmVsYXRpdmUuaG9zdDsKICAgICAgICAgIHRhcmdldC5wb3J0ID0gcmVsYXRpdmUucG9ydDsKICAgICAgICAgIHRhcmdldC5wYXRoID0gcmVtb3ZlRG90U2VnbWVudHMocmVsYXRpdmUucGF0aCB8fCAiIik7CiAgICAgICAgICB0YXJnZXQucXVlcnkgPSByZWxhdGl2ZS5xdWVyeTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFyZWxhdGl2ZS5wYXRoKSB7CiAgICAgICAgICAgIHRhcmdldC5wYXRoID0gYmFzZS5wYXRoOwogICAgICAgICAgICBpZiAocmVsYXRpdmUucXVlcnkgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IHJlbGF0aXZlLnF1ZXJ5OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRhcmdldC5xdWVyeSA9IGJhc2UucXVlcnk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIChyZWxhdGl2ZS5wYXRoLmNoYXJBdCgwKSA9PT0gIi8iKSB7CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyhyZWxhdGl2ZS5wYXRoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBpZiAoKGJhc2UudXNlcmluZm8gIT09IHZvaWQgMCB8fCBiYXNlLmhvc3QgIT09IHZvaWQgMCB8fCBiYXNlLnBvcnQgIT09IHZvaWQgMCkgJiYgIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSAiLyIgKyByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWJhc2UucGF0aCkgewogICAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZWxhdGl2ZS5wYXRoOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0YXJnZXQucGF0aCA9IGJhc2UucGF0aC5zbGljZSgwLCBiYXNlLnBhdGgubGFzdEluZGV4T2YoIi8iKSArIDEpICsgcmVsYXRpdmUucGF0aDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGFyZ2V0LnBhdGggPSByZW1vdmVEb3RTZWdtZW50cyh0YXJnZXQucGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFyZ2V0LnF1ZXJ5ID0gcmVsYXRpdmUucXVlcnk7CiAgICAgICAgICB9CiAgICAgICAgICB0YXJnZXQudXNlcmluZm8gPSBiYXNlLnVzZXJpbmZvOwogICAgICAgICAgdGFyZ2V0Lmhvc3QgPSBiYXNlLmhvc3Q7CiAgICAgICAgICB0YXJnZXQucG9ydCA9IGJhc2UucG9ydDsKICAgICAgICB9CiAgICAgICAgdGFyZ2V0LnNjaGVtZSA9IGJhc2Uuc2NoZW1lOwogICAgICB9CiAgICAgIHRhcmdldC5mcmFnbWVudCA9IHJlbGF0aXZlLmZyYWdtZW50OwogICAgICByZXR1cm4gdGFyZ2V0OwogICAgfQogICAgZnVuY3Rpb24gZXF1YWwodXJpQSwgdXJpQiwgb3B0aW9ucykgewogICAgICBpZiAodHlwZW9mIHVyaUEgPT09ICJzdHJpbmciKSB7CiAgICAgICAgdXJpQSA9IHVuZXNjYXBlKHVyaUEpOwogICAgICAgIHVyaUEgPSBzZXJpYWxpemUobm9ybWFsaXplQ29tcG9uZW50RW5jb2RpbmcocGFyc2UodXJpQSwgb3B0aW9ucyksIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHVyaUEgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdXJpQSA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyh1cmlBLCB0cnVlKSwgeyAuLi5vcHRpb25zLCBza2lwRXNjYXBlOiB0cnVlIH0pOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgdXJpQiA9PT0gInN0cmluZyIpIHsKICAgICAgICB1cmlCID0gdW5lc2NhcGUodXJpQik7CiAgICAgICAgdXJpQiA9IHNlcmlhbGl6ZShub3JtYWxpemVDb21wb25lbnRFbmNvZGluZyhwYXJzZSh1cmlCLCBvcHRpb25zKSwgdHJ1ZSksIHsgLi4ub3B0aW9ucywgc2tpcEVzY2FwZTogdHJ1ZSB9KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdXJpQiA9PT0gIm9iamVjdCIpIHsKICAgICAgICB1cmlCID0gc2VyaWFsaXplKG5vcm1hbGl6ZUNvbXBvbmVudEVuY29kaW5nKHVyaUIsIHRydWUpLCB7IC4uLm9wdGlvbnMsIHNraXBFc2NhcGU6IHRydWUgfSk7CiAgICAgIH0KICAgICAgcmV0dXJuIHVyaUEudG9Mb3dlckNhc2UoKSA9PT0gdXJpQi50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gc2VyaWFsaXplKGNtcHRzLCBvcHRzKSB7CiAgICAgIGNvbnN0IGNvbXBvbmVudHMgPSB7CiAgICAgICAgaG9zdDogY21wdHMuaG9zdCwKICAgICAgICBzY2hlbWU6IGNtcHRzLnNjaGVtZSwKICAgICAgICB1c2VyaW5mbzogY21wdHMudXNlcmluZm8sCiAgICAgICAgcG9ydDogY21wdHMucG9ydCwKICAgICAgICBwYXRoOiBjbXB0cy5wYXRoLAogICAgICAgIHF1ZXJ5OiBjbXB0cy5xdWVyeSwKICAgICAgICBuaWQ6IGNtcHRzLm5pZCwKICAgICAgICBuc3M6IGNtcHRzLm5zcywKICAgICAgICB1dWlkOiBjbXB0cy51dWlkLAogICAgICAgIGZyYWdtZW50OiBjbXB0cy5mcmFnbWVudCwKICAgICAgICByZWZlcmVuY2U6IGNtcHRzLnJlZmVyZW5jZSwKICAgICAgICByZXNvdXJjZU5hbWU6IGNtcHRzLnJlc291cmNlTmFtZSwKICAgICAgICBzZWN1cmU6IGNtcHRzLnNlY3VyZSwKICAgICAgICBlcnJvcjogIiIKICAgICAgfTsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCB1cmlUb2tlbnMgPSBbXTsKICAgICAgY29uc3Qgc2NoZW1lSGFuZGxlciA9IFNDSEVNRVNbKG9wdGlvbnMuc2NoZW1lIHx8IGNvbXBvbmVudHMuc2NoZW1lIHx8ICIiKS50b0xvd2VyQ2FzZSgpXTsKICAgICAgaWYgKHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5zZXJpYWxpemUpIHNjaGVtZUhhbmRsZXIuc2VyaWFsaXplKGNvbXBvbmVudHMsIG9wdGlvbnMpOwogICAgICBpZiAoY29tcG9uZW50cy5wYXRoICE9PSB2b2lkIDApIHsKICAgICAgICBpZiAoIW9wdGlvbnMuc2tpcEVzY2FwZSkgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gZXNjYXBlKGNvbXBvbmVudHMucGF0aCk7CiAgICAgICAgICBpZiAoY29tcG9uZW50cy5zY2hlbWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBjb21wb25lbnRzLnBhdGggPSBjb21wb25lbnRzLnBhdGguc3BsaXQoIiUzQSIpLmpvaW4oIjoiKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgY29tcG9uZW50cy5wYXRoID0gdW5lc2NhcGUoY29tcG9uZW50cy5wYXRoKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IiAmJiBjb21wb25lbnRzLnNjaGVtZSkgewogICAgICAgIHVyaVRva2Vucy5wdXNoKGNvbXBvbmVudHMuc2NoZW1lLCAiOiIpOwogICAgICB9CiAgICAgIGNvbnN0IGF1dGhvcml0eSA9IHJlY29tcG9zZUF1dGhvcml0eShjb21wb25lbnRzLCBvcHRpb25zKTsKICAgICAgaWYgKGF1dGhvcml0eSAhPT0gdm9pZCAwKSB7CiAgICAgICAgaWYgKG9wdGlvbnMucmVmZXJlbmNlICE9PSAic3VmZml4IikgewogICAgICAgICAgdXJpVG9rZW5zLnB1c2goIi8vIik7CiAgICAgICAgfQogICAgICAgIHVyaVRva2Vucy5wdXNoKGF1dGhvcml0eSk7CiAgICAgICAgaWYgKGNvbXBvbmVudHMucGF0aCAmJiBjb21wb25lbnRzLnBhdGguY2hhckF0KDApICE9PSAiLyIpIHsKICAgICAgICAgIHVyaVRva2Vucy5wdXNoKCIvIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmIChjb21wb25lbnRzLnBhdGggIT09IHZvaWQgMCkgewogICAgICAgIGxldCBzID0gY29tcG9uZW50cy5wYXRoOwogICAgICAgIGlmICghb3B0aW9ucy5hYnNvbHV0ZVBhdGggJiYgKCFzY2hlbWVIYW5kbGVyIHx8ICFzY2hlbWVIYW5kbGVyLmFic29sdXRlUGF0aCkpIHsKICAgICAgICAgIHMgPSByZW1vdmVEb3RTZWdtZW50cyhzKTsKICAgICAgICB9CiAgICAgICAgaWYgKGF1dGhvcml0eSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBzID0gcy5yZXBsYWNlKC9eXC9cLy91LCAiLyUyRiIpOwogICAgICAgIH0KICAgICAgICB1cmlUb2tlbnMucHVzaChzKTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5xdWVyeSAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIj8iLCBjb21wb25lbnRzLnF1ZXJ5KTsKICAgICAgfQogICAgICBpZiAoY29tcG9uZW50cy5mcmFnbWVudCAhPT0gdm9pZCAwKSB7CiAgICAgICAgdXJpVG9rZW5zLnB1c2goIiMiLCBjb21wb25lbnRzLmZyYWdtZW50KTsKICAgICAgfQogICAgICByZXR1cm4gdXJpVG9rZW5zLmpvaW4oIiIpOwogICAgfQogICAgdmFyIGhleExvb2tVcCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDEyNyB9LCAodiwgaykgPT4gL1teISIkJicoKSorLFwtLjs9X2BhLXp7fX5dL3UudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKGspKSk7CiAgICBmdW5jdGlvbiBub25TaW1wbGVEb21haW4odmFsdWUpIHsKICAgICAgbGV0IGNvZGUgPSAwOwogICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWUubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICBjb2RlID0gdmFsdWUuY2hhckNvZGVBdChpKTsKICAgICAgICBpZiAoY29kZSA+IDEyNiB8fCBoZXhMb29rVXBbY29kZV0pIHsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICB2YXIgVVJJX1BBUlNFID0gL14oPzooW14jLzo/XSspOik/KD86XC9cLygoPzooW14jLz9AXSopQCk/KFxbW14jLz9cXV0rXF18W14jLzo/XSopKD86OihcZCopKT8pKT8oW14jP10qKSg/Olw/KFteI10qKSk/KD86IygoPzoufFtcblxyXSkqKSk/L3U7CiAgICBmdW5jdGlvbiBwYXJzZSh1cmksIG9wdHMpIHsKICAgICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdHMpOwogICAgICBjb25zdCBwYXJzZWQgPSB7CiAgICAgICAgc2NoZW1lOiB2b2lkIDAsCiAgICAgICAgdXNlcmluZm86IHZvaWQgMCwKICAgICAgICBob3N0OiAiIiwKICAgICAgICBwb3J0OiB2b2lkIDAsCiAgICAgICAgcGF0aDogIiIsCiAgICAgICAgcXVlcnk6IHZvaWQgMCwKICAgICAgICBmcmFnbWVudDogdm9pZCAwCiAgICAgIH07CiAgICAgIGNvbnN0IGdvdEVuY29kaW5nID0gdXJpLmluZGV4T2YoIiUiKSAhPT0gLTE7CiAgICAgIGxldCBpc0lQID0gZmFsc2U7CiAgICAgIGlmIChvcHRpb25zLnJlZmVyZW5jZSA9PT0gInN1ZmZpeCIpIHVyaSA9IChvcHRpb25zLnNjaGVtZSA/IG9wdGlvbnMuc2NoZW1lICsgIjoiIDogIiIpICsgIi8vIiArIHVyaTsKICAgICAgY29uc3QgbWF0Y2hlcyA9IHVyaS5tYXRjaChVUklfUEFSU0UpOwogICAgICBpZiAobWF0Y2hlcykgewogICAgICAgIHBhcnNlZC5zY2hlbWUgPSBtYXRjaGVzWzFdOwogICAgICAgIHBhcnNlZC51c2VyaW5mbyA9IG1hdGNoZXNbM107CiAgICAgICAgcGFyc2VkLmhvc3QgPSBtYXRjaGVzWzRdOwogICAgICAgIHBhcnNlZC5wb3J0ID0gcGFyc2VJbnQobWF0Y2hlc1s1XSwgMTApOwogICAgICAgIHBhcnNlZC5wYXRoID0gbWF0Y2hlc1s2XSB8fCAiIjsKICAgICAgICBwYXJzZWQucXVlcnkgPSBtYXRjaGVzWzddOwogICAgICAgIHBhcnNlZC5mcmFnbWVudCA9IG1hdGNoZXNbOF07CiAgICAgICAgaWYgKGlzTmFOKHBhcnNlZC5wb3J0KSkgewogICAgICAgICAgcGFyc2VkLnBvcnQgPSBtYXRjaGVzWzVdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyc2VkLmhvc3QpIHsKICAgICAgICAgIGNvbnN0IGlwdjRyZXN1bHQgPSBub3JtYWxpemVJUHY0KHBhcnNlZC5ob3N0KTsKICAgICAgICAgIGlmIChpcHY0cmVzdWx0LmlzSVBWNCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY29uc3QgaXB2NnJlc3VsdCA9IG5vcm1hbGl6ZUlQdjYoaXB2NHJlc3VsdC5ob3N0LCB7IGlzSVBWNDogZmFsc2UgfSk7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NnJlc3VsdC5ob3N0LnRvTG93ZXJDYXNlKCk7CiAgICAgICAgICAgIGlzSVAgPSBpcHY2cmVzdWx0LmlzSVBWNjsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gaXB2NHJlc3VsdC5ob3N0OwogICAgICAgICAgICBpc0lQID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5zY2hlbWUgPT09IHZvaWQgMCAmJiBwYXJzZWQudXNlcmluZm8gPT09IHZvaWQgMCAmJiBwYXJzZWQuaG9zdCA9PT0gdm9pZCAwICYmIHBhcnNlZC5wb3J0ID09PSB2b2lkIDAgJiYgIXBhcnNlZC5wYXRoICYmIHBhcnNlZC5xdWVyeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInNhbWUtZG9jdW1lbnQiOwogICAgICAgIH0gZWxzZSBpZiAocGFyc2VkLnNjaGVtZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gInJlbGF0aXZlIjsKICAgICAgICB9IGVsc2UgaWYgKHBhcnNlZC5mcmFnbWVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBwYXJzZWQucmVmZXJlbmNlID0gImFic29sdXRlIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcGFyc2VkLnJlZmVyZW5jZSA9ICJ1cmkiOwogICAgICAgIH0KICAgICAgICBpZiAob3B0aW9ucy5yZWZlcmVuY2UgJiYgb3B0aW9ucy5yZWZlcmVuY2UgIT09ICJzdWZmaXgiICYmIG9wdGlvbnMucmVmZXJlbmNlICE9PSBwYXJzZWQucmVmZXJlbmNlKSB7CiAgICAgICAgICBwYXJzZWQuZXJyb3IgPSBwYXJzZWQuZXJyb3IgfHwgIlVSSSBpcyBub3QgYSAiICsgb3B0aW9ucy5yZWZlcmVuY2UgKyAiIHJlZmVyZW5jZS4iOwogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWVIYW5kbGVyID0gU0NIRU1FU1sob3B0aW9ucy5zY2hlbWUgfHwgcGFyc2VkLnNjaGVtZSB8fCAiIikudG9Mb3dlckNhc2UoKV07CiAgICAgICAgaWYgKCFvcHRpb25zLnVuaWNvZGVTdXBwb3J0ICYmICghc2NoZW1lSGFuZGxlciB8fCAhc2NoZW1lSGFuZGxlci51bmljb2RlU3VwcG9ydCkpIHsKICAgICAgICAgIGlmIChwYXJzZWQuaG9zdCAmJiAob3B0aW9ucy5kb21haW5Ib3N0IHx8IHNjaGVtZUhhbmRsZXIgJiYgc2NoZW1lSGFuZGxlci5kb21haW5Ib3N0KSAmJiBpc0lQID09PSBmYWxzZSAmJiBub25TaW1wbGVEb21haW4ocGFyc2VkLmhvc3QpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgcGFyc2VkLmhvc3QgPSBVUkwuZG9tYWluVG9BU0NJSShwYXJzZWQuaG9zdC50b0xvd2VyQ2FzZSgpKTsKICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiSG9zdCdzIGRvbWFpbiBuYW1lIGNhbiBub3QgYmUgY29udmVydGVkIHRvIEFTQ0lJOiAiICsgZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNjaGVtZUhhbmRsZXIgfHwgc2NoZW1lSGFuZGxlciAmJiAhc2NoZW1lSGFuZGxlci5za2lwTm9ybWFsaXplKSB7CiAgICAgICAgICBpZiAoZ290RW5jb2RpbmcgJiYgcGFyc2VkLnNjaGVtZSAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5zY2hlbWUgPSB1bmVzY2FwZShwYXJzZWQuc2NoZW1lKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChnb3RFbmNvZGluZyAmJiBwYXJzZWQuaG9zdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICAgIHBhcnNlZC5ob3N0ID0gdW5lc2NhcGUocGFyc2VkLmhvc3QpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhcnNlZC5wYXRoICE9PSB2b2lkIDAgJiYgcGFyc2VkLnBhdGgubGVuZ3RoKSB7CiAgICAgICAgICAgIHBhcnNlZC5wYXRoID0gZXNjYXBlKHVuZXNjYXBlKHBhcnNlZC5wYXRoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGFyc2VkLmZyYWdtZW50ICE9PSB2b2lkIDAgJiYgcGFyc2VkLmZyYWdtZW50Lmxlbmd0aCkgewogICAgICAgICAgICBwYXJzZWQuZnJhZ21lbnQgPSBlbmNvZGVVUkkoZGVjb2RlVVJJQ29tcG9uZW50KHBhcnNlZC5mcmFnbWVudCkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc2NoZW1lSGFuZGxlciAmJiBzY2hlbWVIYW5kbGVyLnBhcnNlKSB7CiAgICAgICAgICBzY2hlbWVIYW5kbGVyLnBhcnNlKHBhcnNlZCwgb3B0aW9ucyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHBhcnNlZC5lcnJvciA9IHBhcnNlZC5lcnJvciB8fCAiVVJJIGNhbiBub3QgYmUgcGFyc2VkLiI7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhcnNlZDsKICAgIH0KICAgIHZhciBmYXN0VXJpID0gewogICAgICBTQ0hFTUVTLAogICAgICBub3JtYWxpemUsCiAgICAgIHJlc29sdmUsCiAgICAgIHJlc29sdmVDb21wb25lbnRzLAogICAgICBlcXVhbCwKICAgICAgc2VyaWFsaXplLAogICAgICBwYXJzZQogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZGVmYXVsdCA9IGZhc3RVcmk7CiAgICBtb2R1bGUyLmV4cG9ydHMuZmFzdFVyaSA9IGZhc3RVcmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9ydW50aW1lL3VyaS5qcwp2YXIgcmVxdWlyZV91cmkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdXJpLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXJpID0gcmVxdWlyZV9mYXN0X3VyaSgpOwogICAgdXJpLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91cmkiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB1cmk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L2NvcmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvZGVHZW4gPSBleHBvcnRzMi5OYW1lID0gZXhwb3J0czIubmlsID0gZXhwb3J0czIuc3RyaW5naWZ5ID0gZXhwb3J0czIuc3RyID0gZXhwb3J0czIuXyA9IGV4cG9ydHMyLktleXdvcmRDeHQgPSB2b2lkIDA7CiAgICB2YXIgdmFsaWRhdGVfMSA9IHJlcXVpcmVfdmFsaWRhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIktleXdvcmRDeHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0ZV8xLktleXdvcmRDeHQ7CiAgICB9IH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiXyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5fOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0ciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5zdHI7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyaW5naWZ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cmluZ2lmeTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJuaWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEubmlsOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5hbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuTmFtZTsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb2RlR2VuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLkNvZGVHZW47CiAgICB9IH0pOwogICAgdmFyIHZhbGlkYXRpb25fZXJyb3JfMSA9IHJlcXVpcmVfdmFsaWRhdGlvbl9lcnJvcigpOwogICAgdmFyIHJlZl9lcnJvcl8xID0gcmVxdWlyZV9yZWZfZXJyb3IoKTsKICAgIHZhciBydWxlc18xID0gcmVxdWlyZV9ydWxlcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIGNvZGVnZW5fMiA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHJlc29sdmVfMSA9IHJlcXVpcmVfcmVzb2x2ZSgpOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgJGRhdGFSZWZTY2hlbWEgPSByZXF1aXJlX2RhdGEoKTsKICAgIHZhciB1cmlfMSA9IHJlcXVpcmVfdXJpKCk7CiAgICB2YXIgZGVmYXVsdFJlZ0V4cCA9IChzdHIyLCBmbGFncykgPT4gbmV3IFJlZ0V4cChzdHIyLCBmbGFncyk7CiAgICBkZWZhdWx0UmVnRXhwLmNvZGUgPSAibmV3IFJlZ0V4cCI7CiAgICB2YXIgTUVUQV9JR05PUkVfT1BUSU9OUyA9IFsicmVtb3ZlQWRkaXRpb25hbCIsICJ1c2VEZWZhdWx0cyIsICJjb2VyY2VUeXBlcyJdOwogICAgdmFyIEVYVF9TQ09QRV9OQU1FUyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KFsKICAgICAgInZhbGlkYXRlIiwKICAgICAgInNlcmlhbGl6ZSIsCiAgICAgICJwYXJzZSIsCiAgICAgICJ3cmFwcGVyIiwKICAgICAgInJvb3QiLAogICAgICAic2NoZW1hIiwKICAgICAgImtleXdvcmQiLAogICAgICAicGF0dGVybiIsCiAgICAgICJmb3JtYXRzIiwKICAgICAgInZhbGlkYXRlJGRhdGEiLAogICAgICAiZnVuYyIsCiAgICAgICJvYmoiLAogICAgICAiRXJyb3IiCiAgICBdKTsKICAgIHZhciByZW1vdmVkT3B0aW9ucyA9IHsKICAgICAgZXJyb3JEYXRhUGF0aDogIiIsCiAgICAgIGZvcm1hdDogImB2YWxpZGF0ZUZvcm1hdHM6IGZhbHNlYCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG51bGxhYmxlOiAnIm51bGxhYmxlIiBrZXl3b3JkIGlzIHN1cHBvcnRlZCBieSBkZWZhdWx0LicsCiAgICAgIGpzb25Qb2ludGVyczogIkRlcHJlY2F0ZWQganNQcm9wZXJ0eVN5bnRheCBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIGV4dGVuZFJlZnM6ICJEZXByZWNhdGVkIGlnbm9yZUtleXdvcmRzV2l0aFJlZiBjYW4gYmUgdXNlZCBpbnN0ZWFkLiIsCiAgICAgIG1pc3NpbmdSZWZzOiAiUGFzcyBlbXB0eSBzY2hlbWEgd2l0aCAkaWQgdGhhdCBzaG91bGQgYmUgaWdub3JlZCB0byBhanYuYWRkU2NoZW1hLiIsCiAgICAgIHByb2Nlc3NDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3Byb2Nlc3M6IChjb2RlLCBzY2hlbWFFbnY6IG9iamVjdCkgPT4gc3RyaW5nfWAiLAogICAgICBzb3VyY2VDb2RlOiAiVXNlIG9wdGlvbiBgY29kZToge3NvdXJjZTogdHJ1ZX1gIiwKICAgICAgc3RyaWN0RGVmYXVsdHM6ICJJdCBpcyBkZWZhdWx0IG5vdywgc2VlIG9wdGlvbiBgc3RyaWN0YC4iLAogICAgICBzdHJpY3RLZXl3b3JkczogIkl0IGlzIGRlZmF1bHQgbm93LCBzZWUgb3B0aW9uIGBzdHJpY3RgLiIsCiAgICAgIHVuaXF1ZUl0ZW1zOiAnInVuaXF1ZUl0ZW1zIiBrZXl3b3JkIGlzIGFsd2F5cyB2YWxpZGF0ZWQuJywKICAgICAgdW5rbm93bkZvcm1hdHM6ICJEaXNhYmxlIHN0cmljdCBtb2RlIG9yIHBhc3MgYHRydWVgIHRvIGBhanYuYWRkRm9ybWF0YCAob3IgYGZvcm1hdHNgIG9wdGlvbikuIiwKICAgICAgY2FjaGU6ICJNYXAgaXMgdXNlZCBhcyBjYWNoZSwgc2NoZW1hIG9iamVjdCBhcyBrZXkuIiwKICAgICAgc2VyaWFsaXplOiAiTWFwIGlzIHVzZWQgYXMgY2FjaGUsIHNjaGVtYSBvYmplY3QgYXMga2V5LiIsCiAgICAgIGFqdkVycm9yczogIkl0IGlzIGRlZmF1bHQgbm93LiIKICAgIH07CiAgICB2YXIgZGVwcmVjYXRlZE9wdGlvbnMgPSB7CiAgICAgIGlnbm9yZUtleXdvcmRzV2l0aFJlZjogIiIsCiAgICAgIGpzUHJvcGVydHlTeW50YXg6ICIiLAogICAgICB1bmljb2RlOiAnIm1pbkxlbmd0aCIvIm1heExlbmd0aCIgYWNjb3VudCBmb3IgdW5pY29kZSBjaGFyYWN0ZXJzIGJ5IGRlZmF1bHQuJwogICAgfTsKICAgIHZhciBNQVhfRVhQUkVTU0lPTiA9IDIwMDsKICAgIGZ1bmN0aW9uIHJlcXVpcmVkT3B0aW9ucyhvKSB7CiAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaywgX2wsIF9tLCBfbywgX3AsIF9xLCBfciwgX3MsIF90LCBfdSwgX3YsIF93LCBfeCwgX3ksIF96LCBfMDsKICAgICAgY29uc3QgcyA9IG8uc3RyaWN0OwogICAgICBjb25zdCBfb3B0eiA9IChfYSA9IG8uY29kZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9wdGltaXplOwogICAgICBjb25zdCBvcHRpbWl6ZSA9IF9vcHR6ID09PSB0cnVlIHx8IF9vcHR6ID09PSB2b2lkIDAgPyAxIDogX29wdHogfHwgMDsKICAgICAgY29uc3QgcmVnRXhwID0gKF9jID0gKF9iID0gby5jb2RlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IucmVnRXhwKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBkZWZhdWx0UmVnRXhwOwogICAgICBjb25zdCB1cmlSZXNvbHZlciA9IChfZCA9IG8udXJpUmVzb2x2ZXIpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IHVyaV8xLmRlZmF1bHQ7CiAgICAgIHJldHVybiB7CiAgICAgICAgc3RyaWN0U2NoZW1hOiAoX2YgPSAoX2UgPSBvLnN0cmljdFNjaGVtYSkgIT09IG51bGwgJiYgX2UgIT09IHZvaWQgMCA/IF9lIDogcykgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogdHJ1ZSwKICAgICAgICBzdHJpY3ROdW1iZXJzOiAoX2ggPSAoX2cgPSBvLnN0cmljdE51bWJlcnMpICE9PSBudWxsICYmIF9nICE9PSB2b2lkIDAgPyBfZyA6IHMpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IHRydWUsCiAgICAgICAgc3RyaWN0VHlwZXM6IChfayA9IChfaiA9IG8uc3RyaWN0VHlwZXMpICE9PSBudWxsICYmIF9qICE9PSB2b2lkIDAgPyBfaiA6IHMpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6ICJsb2ciLAogICAgICAgIHN0cmljdFR1cGxlczogKF9tID0gKF9sID0gby5zdHJpY3RUdXBsZXMpICE9PSBudWxsICYmIF9sICE9PSB2b2lkIDAgPyBfbCA6IHMpICE9PSBudWxsICYmIF9tICE9PSB2b2lkIDAgPyBfbSA6ICJsb2ciLAogICAgICAgIHN0cmljdFJlcXVpcmVkOiAoX3AgPSAoX28gPSBvLnN0cmljdFJlcXVpcmVkKSAhPT0gbnVsbCAmJiBfbyAhPT0gdm9pZCAwID8gX28gOiBzKSAhPT0gbnVsbCAmJiBfcCAhPT0gdm9pZCAwID8gX3AgOiBmYWxzZSwKICAgICAgICBjb2RlOiBvLmNvZGUgPyB7IC4uLm8uY29kZSwgb3B0aW1pemUsIHJlZ0V4cCB9IDogeyBvcHRpbWl6ZSwgcmVnRXhwIH0sCiAgICAgICAgbG9vcFJlcXVpcmVkOiAoX3EgPSBvLmxvb3BSZXF1aXJlZCkgIT09IG51bGwgJiYgX3EgIT09IHZvaWQgMCA/IF9xIDogTUFYX0VYUFJFU1NJT04sCiAgICAgICAgbG9vcEVudW06IChfciA9IG8ubG9vcEVudW0pICE9PSBudWxsICYmIF9yICE9PSB2b2lkIDAgPyBfciA6IE1BWF9FWFBSRVNTSU9OLAogICAgICAgIG1ldGE6IChfcyA9IG8ubWV0YSkgIT09IG51bGwgJiYgX3MgIT09IHZvaWQgMCA/IF9zIDogdHJ1ZSwKICAgICAgICBtZXNzYWdlczogKF90ID0gby5tZXNzYWdlcykgIT09IG51bGwgJiYgX3QgIT09IHZvaWQgMCA/IF90IDogdHJ1ZSwKICAgICAgICBpbmxpbmVSZWZzOiAoX3UgPSBvLmlubGluZVJlZnMpICE9PSBudWxsICYmIF91ICE9PSB2b2lkIDAgPyBfdSA6IHRydWUsCiAgICAgICAgc2NoZW1hSWQ6IChfdiA9IG8uc2NoZW1hSWQpICE9PSBudWxsICYmIF92ICE9PSB2b2lkIDAgPyBfdiA6ICIkaWQiLAogICAgICAgIGFkZFVzZWRTY2hlbWE6IChfdyA9IG8uYWRkVXNlZFNjaGVtYSkgIT09IG51bGwgJiYgX3cgIT09IHZvaWQgMCA/IF93IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZVNjaGVtYTogKF94ID0gby52YWxpZGF0ZVNjaGVtYSkgIT09IG51bGwgJiYgX3ggIT09IHZvaWQgMCA/IF94IDogdHJ1ZSwKICAgICAgICB2YWxpZGF0ZUZvcm1hdHM6IChfeSA9IG8udmFsaWRhdGVGb3JtYXRzKSAhPT0gbnVsbCAmJiBfeSAhPT0gdm9pZCAwID8gX3kgOiB0cnVlLAogICAgICAgIHVuaWNvZGVSZWdFeHA6IChfeiA9IG8udW5pY29kZVJlZ0V4cCkgIT09IG51bGwgJiYgX3ogIT09IHZvaWQgMCA/IF96IDogdHJ1ZSwKICAgICAgICBpbnQzMnJhbmdlOiAoXzAgPSBvLmludDMycmFuZ2UpICE9PSBudWxsICYmIF8wICE9PSB2b2lkIDAgPyBfMCA6IHRydWUsCiAgICAgICAgdXJpUmVzb2x2ZXIKICAgICAgfTsKICAgIH0KICAgIHZhciBBanYgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKG9wdHMgPSB7fSkgewogICAgICAgIHRoaXMuc2NoZW1hcyA9IHt9OwogICAgICAgIHRoaXMucmVmcyA9IHt9OwogICAgICAgIHRoaXMuZm9ybWF0cyA9IHt9OwogICAgICAgIHRoaXMuX2NvbXBpbGF0aW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgdGhpcy5fbG9hZGluZyA9IHt9OwogICAgICAgIHRoaXMuX2NhY2hlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBvcHRzID0gdGhpcy5vcHRzID0geyAuLi5vcHRzLCAuLi5yZXF1aXJlZE9wdGlvbnMob3B0cykgfTsKICAgICAgICBjb25zdCB7IGVzNSwgbGluZXMgfSA9IHRoaXMub3B0cy5jb2RlOwogICAgICAgIHRoaXMuc2NvcGUgPSBuZXcgY29kZWdlbl8yLlZhbHVlU2NvcGUoeyBzY29wZToge30sIHByZWZpeGVzOiBFWFRfU0NPUEVfTkFNRVMsIGVzNSwgbGluZXMgfSk7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBnZXRMb2dnZXIob3B0cy5sb2dnZXIpOwogICAgICAgIGNvbnN0IGZvcm1hdE9wdCA9IG9wdHMudmFsaWRhdGVGb3JtYXRzOwogICAgICAgIG9wdHMudmFsaWRhdGVGb3JtYXRzID0gZmFsc2U7CiAgICAgICAgdGhpcy5SVUxFUyA9ICgwLCBydWxlc18xLmdldFJ1bGVzKSgpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIHJlbW92ZWRPcHRpb25zLCBvcHRzLCAiTk9UIFNVUFBPUlRFRCIpOwogICAgICAgIGNoZWNrT3B0aW9ucy5jYWxsKHRoaXMsIGRlcHJlY2F0ZWRPcHRpb25zLCBvcHRzLCAiREVQUkVDQVRFRCIsICJ3YXJuIik7CiAgICAgICAgdGhpcy5fbWV0YU9wdHMgPSBnZXRNZXRhU2NoZW1hT3B0aW9ucy5jYWxsKHRoaXMpOwogICAgICAgIGlmIChvcHRzLmZvcm1hdHMpCiAgICAgICAgICBhZGRJbml0aWFsRm9ybWF0cy5jYWxsKHRoaXMpOwogICAgICAgIHRoaXMuX2FkZFZvY2FidWxhcmllcygpOwogICAgICAgIHRoaXMuX2FkZERlZmF1bHRNZXRhU2NoZW1hKCk7CiAgICAgICAgaWYgKG9wdHMua2V5d29yZHMpCiAgICAgICAgICBhZGRJbml0aWFsS2V5d29yZHMuY2FsbCh0aGlzLCBvcHRzLmtleXdvcmRzKTsKICAgICAgICBpZiAodHlwZW9mIG9wdHMubWV0YSA9PSAib2JqZWN0IikKICAgICAgICAgIHRoaXMuYWRkTWV0YVNjaGVtYShvcHRzLm1ldGEpOwogICAgICAgIGFkZEluaXRpYWxTY2hlbWFzLmNhbGwodGhpcyk7CiAgICAgICAgb3B0cy52YWxpZGF0ZUZvcm1hdHMgPSBmb3JtYXRPcHQ7CiAgICAgIH0KICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICB0aGlzLmFkZEtleXdvcmQoIiRhc3luYyIpOwogICAgICB9CiAgICAgIF9hZGREZWZhdWx0TWV0YVNjaGVtYSgpIHsKICAgICAgICBjb25zdCB7ICRkYXRhLCBtZXRhLCBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgIGxldCBfZGF0YVJlZlNjaGVtYSA9ICRkYXRhUmVmU2NoZW1hOwogICAgICAgIGlmIChzY2hlbWFJZCA9PT0gImlkIikgewogICAgICAgICAgX2RhdGFSZWZTY2hlbWEgPSB7IC4uLiRkYXRhUmVmU2NoZW1hIH07CiAgICAgICAgICBfZGF0YVJlZlNjaGVtYS5pZCA9IF9kYXRhUmVmU2NoZW1hLiRpZDsKICAgICAgICAgIGRlbGV0ZSBfZGF0YVJlZlNjaGVtYS4kaWQ7CiAgICAgICAgfQogICAgICAgIGlmIChtZXRhICYmICRkYXRhKQogICAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKF9kYXRhUmVmU2NoZW1hLCBfZGF0YVJlZlNjaGVtYVtzY2hlbWFJZF0sIGZhbHNlKTsKICAgICAgfQogICAgICBkZWZhdWx0TWV0YSgpIHsKICAgICAgICBjb25zdCB7IG1ldGEsIHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHR5cGVvZiBtZXRhID09ICJvYmplY3QiID8gbWV0YVtzY2hlbWFJZF0gfHwgbWV0YSA6IHZvaWQgMDsKICAgICAgfQogICAgICB2YWxpZGF0ZShzY2hlbWFLZXlSZWYsIGRhdGEpIHsKICAgICAgICBsZXQgdjsKICAgICAgICBpZiAodHlwZW9mIHNjaGVtYUtleVJlZiA9PSAic3RyaW5nIikgewogICAgICAgICAgdiA9IHRoaXMuZ2V0U2NoZW1hKHNjaGVtYUtleVJlZik7CiAgICAgICAgICBpZiAoIXYpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgbm8gc2NoZW1hIHdpdGgga2V5IG9yIHJlZiAiJHtzY2hlbWFLZXlSZWZ9ImApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2ID0gdGhpcy5jb21waWxlKHNjaGVtYUtleVJlZik7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gdihkYXRhKTsKICAgICAgICBpZiAoISgiJGFzeW5jIiBpbiB2KSkKICAgICAgICAgIHRoaXMuZXJyb3JzID0gdi5lcnJvcnM7CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIGNvbXBpbGUoc2NoZW1hMiwgX21ldGEpIHsKICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEpOwogICAgICAgIHJldHVybiBzY2gudmFsaWRhdGUgfHwgdGhpcy5fY29tcGlsZVNjaGVtYUVudihzY2gpOwogICAgICB9CiAgICAgIGNvbXBpbGVBc3luYyhzY2hlbWEyLCBtZXRhKSB7CiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm9wdHMubG9hZFNjaGVtYSAhPSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMubG9hZFNjaGVtYSBzaG91bGQgYmUgYSBmdW5jdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB7IGxvYWRTY2hlbWEgfSA9IHRoaXMub3B0czsKICAgICAgICByZXR1cm4gcnVuQ29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoZW1hMiwgbWV0YSk7CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuQ29tcGlsZUFzeW5jKF9zY2hlbWEsIF9tZXRhKSB7CiAgICAgICAgICBhd2FpdCBsb2FkTWV0YVNjaGVtYS5jYWxsKHRoaXMsIF9zY2hlbWEuJHNjaGVtYSk7CiAgICAgICAgICBjb25zdCBzY2ggPSB0aGlzLl9hZGRTY2hlbWEoX3NjaGVtYSwgX21ldGEpOwogICAgICAgICAgcmV0dXJuIHNjaC52YWxpZGF0ZSB8fCBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gbG9hZE1ldGFTY2hlbWEoJHJlZikgewogICAgICAgICAgaWYgKCRyZWYgJiYgIXRoaXMuZ2V0U2NoZW1hKCRyZWYpKSB7CiAgICAgICAgICAgIGF3YWl0IHJ1bkNvbXBpbGVBc3luYy5jYWxsKHRoaXMsIHsgJHJlZiB9LCB0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgYXN5bmMgZnVuY3Rpb24gX2NvbXBpbGVBc3luYyhzY2gpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb21waWxlU2NoZW1hRW52KHNjaCk7CiAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgIGlmICghKGUgaW5zdGFuY2VvZiByZWZfZXJyb3JfMS5kZWZhdWx0KSkKICAgICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgICBjaGVja0xvYWRlZC5jYWxsKHRoaXMsIGUpOwogICAgICAgICAgICBhd2FpdCBsb2FkTWlzc2luZ1NjaGVtYS5jYWxsKHRoaXMsIGUubWlzc2luZ1NjaGVtYSk7CiAgICAgICAgICAgIHJldHVybiBfY29tcGlsZUFzeW5jLmNhbGwodGhpcywgc2NoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gY2hlY2tMb2FkZWQoeyBtaXNzaW5nU2NoZW1hOiByZWYsIG1pc3NpbmdSZWYgfSkgewogICAgICAgICAgaWYgKHRoaXMucmVmc1tyZWZdKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQW55U2NoZW1hICR7cmVmfSBpcyBsb2FkZWQgYnV0ICR7bWlzc2luZ1JlZn0gY2Fubm90IGJlIHJlc29sdmVkYCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIGxvYWRNaXNzaW5nU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgX3NjaGVtYSA9IGF3YWl0IF9sb2FkU2NoZW1hLmNhbGwodGhpcywgcmVmKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIGF3YWl0IGxvYWRNZXRhU2NoZW1hLmNhbGwodGhpcywgX3NjaGVtYS4kc2NoZW1hKTsKICAgICAgICAgIGlmICghdGhpcy5yZWZzW3JlZl0pCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKF9zY2hlbWEsIHJlZiwgbWV0YSk7CiAgICAgICAgfQogICAgICAgIGFzeW5jIGZ1bmN0aW9uIF9sb2FkU2NoZW1hKHJlZikgewogICAgICAgICAgY29uc3QgcCA9IHRoaXMuX2xvYWRpbmdbcmVmXTsKICAgICAgICAgIGlmIChwKQogICAgICAgICAgICByZXR1cm4gcDsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAodGhpcy5fbG9hZGluZ1tyZWZdID0gbG9hZFNjaGVtYShyZWYpKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9sb2FkaW5nW3JlZl07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIEFkZHMgc2NoZW1hIHRvIHRoZSBpbnN0YW5jZQogICAgICBhZGRTY2hlbWEoc2NoZW1hMiwga2V5LCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hKSB7CiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NoZW1hMikpIHsKICAgICAgICAgIGZvciAoY29uc3Qgc2NoIG9mIHNjaGVtYTIpCiAgICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaCwgdm9pZCAwLCBfbWV0YSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBsZXQgaWQ7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgY29uc3QgeyBzY2hlbWFJZCB9ID0gdGhpcy5vcHRzOwogICAgICAgICAgaWQgPSBzY2hlbWEyW3NjaGVtYUlkXTsKICAgICAgICAgIGlmIChpZCAhPT0gdm9pZCAwICYmIHR5cGVvZiBpZCAhPSAic3RyaW5nIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSAke3NjaGVtYUlkfSBtdXN0IGJlIHN0cmluZ2ApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBrZXkgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXkgfHwgaWQpOwogICAgICAgIHRoaXMuX2NoZWNrVW5pcXVlKGtleSk7CiAgICAgICAgdGhpcy5zY2hlbWFzW2tleV0gPSB0aGlzLl9hZGRTY2hlbWEoc2NoZW1hMiwgX21ldGEsIGtleSwgX3ZhbGlkYXRlU2NoZW1hLCB0cnVlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyBBZGQgc2NoZW1hIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHZhbGlkYXRlIG90aGVyIHNjaGVtYXMKICAgICAgLy8gb3B0aW9ucyBpbiBNRVRBX0lHTk9SRV9PUFRJT05TIGFyZSBhbHdheSBzZXQgdG8gZmFsc2UKICAgICAgYWRkTWV0YVNjaGVtYShzY2hlbWEyLCBrZXksIF92YWxpZGF0ZVNjaGVtYSA9IHRoaXMub3B0cy52YWxpZGF0ZVNjaGVtYSkgewogICAgICAgIHRoaXMuYWRkU2NoZW1hKHNjaGVtYTIsIGtleSwgdHJ1ZSwgX3ZhbGlkYXRlU2NoZW1hKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvLyAgVmFsaWRhdGUgc2NoZW1hIGFnYWluc3QgaXRzIG1ldGEtc2NoZW1hCiAgICAgIHZhbGlkYXRlU2NoZW1hKHNjaGVtYTIsIHRocm93T3JMb2dFcnJvcikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAiYm9vbGVhbiIpCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgJHNjaGVtYTsKICAgICAgICAkc2NoZW1hID0gc2NoZW1hMi4kc2NoZW1hOwogICAgICAgIGlmICgkc2NoZW1hICE9PSB2b2lkIDAgJiYgdHlwZW9mICRzY2hlbWEgIT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiJHNjaGVtYSBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgfQogICAgICAgICRzY2hlbWEgPSAkc2NoZW1hIHx8IHRoaXMub3B0cy5kZWZhdWx0TWV0YSB8fCB0aGlzLmRlZmF1bHRNZXRhKCk7CiAgICAgICAgaWYgKCEkc2NoZW1hKSB7CiAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCJtZXRhLXNjaGVtYSBub3QgYXZhaWxhYmxlIik7CiAgICAgICAgICB0aGlzLmVycm9ycyA9IG51bGw7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlKCRzY2hlbWEsIHNjaGVtYTIpOwogICAgICAgIGlmICghdmFsaWQgJiYgdGhyb3dPckxvZ0Vycm9yKSB7CiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gInNjaGVtYSBpcyBpbnZhbGlkOiAiICsgdGhpcy5lcnJvcnNUZXh0KCk7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hID09PSAibG9nIikKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHZhbGlkOwogICAgICB9CiAgICAgIC8vIEdldCBjb21waWxlZCBzY2hlbWEgYnkgYGtleWAgb3IgYHJlZmAuCiAgICAgIC8vIChga2V5YCB0aGF0IHdhcyBwYXNzZWQgdG8gYGFkZFNjaGVtYWAgb3IgZnVsbCBzY2hlbWEgcmVmZXJlbmNlIC0gYHNjaGVtYS4kaWRgIG9yIHJlc29sdmVkIGlkKQogICAgICBnZXRTY2hlbWEoa2V5UmVmKSB7CiAgICAgICAgbGV0IHNjaDsKICAgICAgICB3aGlsZSAodHlwZW9mIChzY2ggPSBnZXRTY2hFbnYuY2FsbCh0aGlzLCBrZXlSZWYpKSA9PSAic3RyaW5nIikKICAgICAgICAgIGtleVJlZiA9IHNjaDsKICAgICAgICBpZiAoc2NoID09PSB2b2lkIDApIHsKICAgICAgICAgIGNvbnN0IHsgc2NoZW1hSWQgfSA9IHRoaXMub3B0czsKICAgICAgICAgIGNvbnN0IHJvb3QgPSBuZXcgY29tcGlsZV8xLlNjaGVtYUVudih7IHNjaGVtYToge30sIHNjaGVtYUlkIH0pOwogICAgICAgICAgc2NoID0gY29tcGlsZV8xLnJlc29sdmVTY2hlbWEuY2FsbCh0aGlzLCByb290LCBrZXlSZWYpOwogICAgICAgICAgaWYgKCFzY2gpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIHRoaXMucmVmc1trZXlSZWZdID0gc2NoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlIHx8IHRoaXMuX2NvbXBpbGVTY2hlbWFFbnYoc2NoKTsKICAgICAgfQogICAgICAvLyBSZW1vdmUgY2FjaGVkIHNjaGVtYShzKS4KICAgICAgLy8gSWYgbm8gcGFyYW1ldGVyIGlzIHBhc3NlZCBhbGwgc2NoZW1hcyBidXQgbWV0YS1zY2hlbWFzIGFyZSByZW1vdmVkLgogICAgICAvLyBJZiBSZWdFeHAgaXMgcGFzc2VkIGFsbCBzY2hlbWFzIHdpdGgga2V5L2lkIG1hdGNoaW5nIHBhdHRlcm4gYnV0IG1ldGEtc2NoZW1hcyBhcmUgcmVtb3ZlZC4KICAgICAgLy8gRXZlbiBpZiBzY2hlbWEgaXMgcmVmZXJlbmNlZCBieSBvdGhlciBzY2hlbWFzIGl0IHN0aWxsIGNhbiBiZSByZW1vdmVkIGFzIG90aGVyIHNjaGVtYXMgaGF2ZSBsb2NhbCByZWZlcmVuY2VzLgogICAgICByZW1vdmVTY2hlbWEoc2NoZW1hS2V5UmVmKSB7CiAgICAgICAgaWYgKHNjaGVtYUtleVJlZiBpbnN0YW5jZW9mIFJlZ0V4cCkgewogICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnNjaGVtYXMsIHNjaGVtYUtleVJlZik7CiAgICAgICAgICB0aGlzLl9yZW1vdmVBbGxTY2hlbWFzKHRoaXMucmVmcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgIHJldHVybiB0aGlzOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKHR5cGVvZiBzY2hlbWFLZXlSZWYpIHsKICAgICAgICAgIGNhc2UgInVuZGVmaW5lZCI6CiAgICAgICAgICAgIHRoaXMuX3JlbW92ZUFsbFNjaGVtYXModGhpcy5zY2hlbWFzKTsKICAgICAgICAgICAgdGhpcy5fcmVtb3ZlQWxsU2NoZW1hcyh0aGlzLnJlZnMpOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICAgIGNhc2UgInN0cmluZyI6IHsKICAgICAgICAgICAgY29uc3Qgc2NoID0gZ2V0U2NoRW52LmNhbGwodGhpcywgc2NoZW1hS2V5UmVmKTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2ggPT0gIm9iamVjdCIpCiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICBkZWxldGUgdGhpcy5zY2hlbWFzW3NjaGVtYUtleVJlZl07CiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnJlZnNbc2NoZW1hS2V5UmVmXTsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IGNhY2hlS2V5ID0gc2NoZW1hS2V5UmVmOwogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVLZXkpOwogICAgICAgICAgICBsZXQgaWQgPSBzY2hlbWFLZXlSZWZbdGhpcy5vcHRzLnNjaGVtYUlkXTsKICAgICAgICAgICAgaWYgKGlkKSB7CiAgICAgICAgICAgICAgaWQgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShpZCk7CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuc2NoZW1hc1tpZF07CiAgICAgICAgICAgICAgZGVsZXRlIHRoaXMucmVmc1tpZF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdi5yZW1vdmVTY2hlbWE6IGludmFsaWQgcGFyYW1ldGVyIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIGFkZCAidm9jYWJ1bGFyeSIgLSBhIGNvbGxlY3Rpb24gb2Yga2V5d29yZHMKICAgICAgYWRkVm9jYWJ1bGFyeShkZWZpbml0aW9ucykgewogICAgICAgIGZvciAoY29uc3QgZGVmIG9mIGRlZmluaXRpb25zKQogICAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYWRkS2V5d29yZChrd2RPckRlZiwgZGVmKSB7CiAgICAgICAgbGV0IGtleXdvcmQ7CiAgICAgICAgaWYgKHR5cGVvZiBrd2RPckRlZiA9PSAic3RyaW5nIikgewogICAgICAgICAga2V5d29yZCA9IGt3ZE9yRGVmOwogICAgICAgICAgaWYgKHR5cGVvZiBkZWYgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybigidGhlc2UgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRlZCwgc2VlIGRvY3MgZm9yIGFkZEtleXdvcmQiKTsKICAgICAgICAgICAgZGVmLmtleXdvcmQgPSBrZXl3b3JkOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGt3ZE9yRGVmID09ICJvYmplY3QiICYmIGRlZiA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWYgPSBrd2RPckRlZjsKICAgICAgICAgIGtleXdvcmQgPSBkZWYua2V5d29yZDsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXdvcmQpICYmICFrZXl3b3JkLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFkZEtleXdvcmRzOiBrZXl3b3JkIG11c3QgYmUgc3RyaW5nIG9yIG5vbi1lbXB0eSBhcnJheSIpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgYWRkS2V5d29yZHMgcGFyYW1ldGVycyIpOwogICAgICAgIH0KICAgICAgICBjaGVja0tleXdvcmQuY2FsbCh0aGlzLCBrZXl3b3JkLCBkZWYpOwogICAgICAgIGlmICghZGVmKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCAoa3dkKSA9PiBhZGRSdWxlLmNhbGwodGhpcywga3dkKSk7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAga2V5d29yZE1ldGFzY2hlbWEuY2FsbCh0aGlzLCBkZWYpOwogICAgICAgIGNvbnN0IGRlZmluaXRpb24gPSB7CiAgICAgICAgICAuLi5kZWYsCiAgICAgICAgICB0eXBlOiAoMCwgZGF0YVR5cGVfMS5nZXRKU09OVHlwZXMpKGRlZi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmLnNjaGVtYVR5cGUpCiAgICAgICAgfTsKICAgICAgICAoMCwgdXRpbF8xLmVhY2hJdGVtKShrZXl3b3JkLCBkZWZpbml0aW9uLnR5cGUubGVuZ3RoID09PSAwID8gKGspID0+IGFkZFJ1bGUuY2FsbCh0aGlzLCBrLCBkZWZpbml0aW9uKSA6IChrKSA9PiBkZWZpbml0aW9uLnR5cGUuZm9yRWFjaCgodCkgPT4gYWRkUnVsZS5jYWxsKHRoaXMsIGssIGRlZmluaXRpb24sIHQpKSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgZ2V0S2V5d29yZChrZXl3b3JkKSB7CiAgICAgICAgY29uc3QgcnVsZSA9IHRoaXMuUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIHJldHVybiB0eXBlb2YgcnVsZSA9PSAib2JqZWN0IiA/IHJ1bGUuZGVmaW5pdGlvbiA6ICEhcnVsZTsKICAgICAgfQogICAgICAvLyBSZW1vdmUga2V5d29yZAogICAgICByZW1vdmVLZXl3b3JkKGtleXdvcmQpIHsKICAgICAgICBjb25zdCB7IFJVTEVTIH0gPSB0aGlzOwogICAgICAgIGRlbGV0ZSBSVUxFUy5rZXl3b3Jkc1trZXl3b3JkXTsKICAgICAgICBkZWxldGUgUlVMRVMuYWxsW2tleXdvcmRdOwogICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgUlVMRVMucnVsZXMpIHsKICAgICAgICAgIGNvbnN0IGkgPSBncm91cC5ydWxlcy5maW5kSW5kZXgoKHJ1bGUpID0+IHJ1bGUua2V5d29yZCA9PT0ga2V5d29yZCk7CiAgICAgICAgICBpZiAoaSA+PSAwKQogICAgICAgICAgICBncm91cC5ydWxlcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIC8vIEFkZCBmb3JtYXQKICAgICAgYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCkgewogICAgICAgIGlmICh0eXBlb2YgZm9ybWF0ID09ICJzdHJpbmciKQogICAgICAgICAgZm9ybWF0ID0gbmV3IFJlZ0V4cChmb3JtYXQpOwogICAgICAgIHRoaXMuZm9ybWF0c1tuYW1lXSA9IGZvcm1hdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBlcnJvcnNUZXh0KGVycm9ycyA9IHRoaXMuZXJyb3JzLCB7IHNlcGFyYXRvciA9ICIsICIsIGRhdGFWYXIgPSAiZGF0YSIgfSA9IHt9KSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybiAiTm8gZXJyb3JzIjsKICAgICAgICByZXR1cm4gZXJyb3JzLm1hcCgoZSkgPT4gYCR7ZGF0YVZhcn0ke2UuaW5zdGFuY2VQYXRofSAke2UubWVzc2FnZX1gKS5yZWR1Y2UoKHRleHQsIG1zZykgPT4gdGV4dCArIHNlcGFyYXRvciArIG1zZyk7CiAgICAgIH0KICAgICAgJGRhdGFNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIGtleXdvcmRzSnNvblBvaW50ZXJzKSB7CiAgICAgICAgY29uc3QgcnVsZXMgPSB0aGlzLlJVTEVTLmFsbDsKICAgICAgICBtZXRhU2NoZW1hID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtZXRhU2NoZW1hKSk7CiAgICAgICAgZm9yIChjb25zdCBqc29uUG9pbnRlciBvZiBrZXl3b3Jkc0pzb25Qb2ludGVycykgewogICAgICAgICAgY29uc3Qgc2VnbWVudHMgPSBqc29uUG9pbnRlci5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgbGV0IGtleXdvcmRzID0gbWV0YVNjaGVtYTsKICAgICAgICAgIGZvciAoY29uc3Qgc2VnIG9mIHNlZ21lbnRzKQogICAgICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzW3NlZ107CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBydWxlcykgewogICAgICAgICAgICBjb25zdCBydWxlID0gcnVsZXNba2V5XTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBydWxlICE9ICJvYmplY3QiKQogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjb25zdCB7ICRkYXRhIH0gPSBydWxlLmRlZmluaXRpb247CiAgICAgICAgICAgIGNvbnN0IHNjaGVtYTIgPSBrZXl3b3Jkc1trZXldOwogICAgICAgICAgICBpZiAoJGRhdGEgJiYgc2NoZW1hMikKICAgICAgICAgICAgICBrZXl3b3Jkc1trZXldID0gc2NoZW1hT3JEYXRhKHNjaGVtYTIpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbWV0YVNjaGVtYTsKICAgICAgfQogICAgICBfcmVtb3ZlQWxsU2NoZW1hcyhzY2hlbWFzLCByZWdleCkgewogICAgICAgIGZvciAoY29uc3Qga2V5UmVmIGluIHNjaGVtYXMpIHsKICAgICAgICAgIGNvbnN0IHNjaCA9IHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgIGlmICghcmVnZXggfHwgcmVnZXgudGVzdChrZXlSZWYpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2NoID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgZGVsZXRlIHNjaGVtYXNba2V5UmVmXTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2ggJiYgIXNjaC5tZXRhKSB7CiAgICAgICAgICAgICAgdGhpcy5fY2FjaGUuZGVsZXRlKHNjaC5zY2hlbWEpOwogICAgICAgICAgICAgIGRlbGV0ZSBzY2hlbWFzW2tleVJlZl07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX2FkZFNjaGVtYShzY2hlbWEyLCBtZXRhLCBiYXNlSWQsIHZhbGlkYXRlU2NoZW1hID0gdGhpcy5vcHRzLnZhbGlkYXRlU2NoZW1hLCBhZGRTY2hlbWEgPSB0aGlzLm9wdHMuYWRkVXNlZFNjaGVtYSkgewogICAgICAgIGxldCBpZDsKICAgICAgICBjb25zdCB7IHNjaGVtYUlkIH0gPSB0aGlzLm9wdHM7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiKSB7CiAgICAgICAgICBpZCA9IHNjaGVtYTJbc2NoZW1hSWRdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAodGhpcy5vcHRzLmp0ZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3QiKTsKICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyICE9ICJib29sZWFuIikKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJzY2hlbWEgbXVzdCBiZSBvYmplY3Qgb3IgYm9vbGVhbiIpOwogICAgICAgIH0KICAgICAgICBsZXQgc2NoID0gdGhpcy5fY2FjaGUuZ2V0KHNjaGVtYTIpOwogICAgICAgIGlmIChzY2ggIT09IHZvaWQgMCkKICAgICAgICAgIHJldHVybiBzY2g7CiAgICAgICAgYmFzZUlkID0gKDAsIHJlc29sdmVfMS5ub3JtYWxpemVJZCkoaWQgfHwgYmFzZUlkKTsKICAgICAgICBjb25zdCBsb2NhbFJlZnMgPSByZXNvbHZlXzEuZ2V0U2NoZW1hUmVmcy5jYWxsKHRoaXMsIHNjaGVtYTIsIGJhc2VJZCk7CiAgICAgICAgc2NoID0gbmV3IGNvbXBpbGVfMS5TY2hlbWFFbnYoeyBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUlkLCBtZXRhLCBiYXNlSWQsIGxvY2FsUmVmcyB9KTsKICAgICAgICB0aGlzLl9jYWNoZS5zZXQoc2NoLnNjaGVtYSwgc2NoKTsKICAgICAgICBpZiAoYWRkU2NoZW1hICYmICFiYXNlSWQuc3RhcnRzV2l0aCgiIyIpKSB7CiAgICAgICAgICBpZiAoYmFzZUlkKQogICAgICAgICAgICB0aGlzLl9jaGVja1VuaXF1ZShiYXNlSWQpOwogICAgICAgICAgdGhpcy5yZWZzW2Jhc2VJZF0gPSBzY2g7CiAgICAgICAgfQogICAgICAgIGlmICh2YWxpZGF0ZVNjaGVtYSkKICAgICAgICAgIHRoaXMudmFsaWRhdGVTY2hlbWEoc2NoZW1hMiwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaDsKICAgICAgfQogICAgICBfY2hlY2tVbmlxdWUoaWQpIHsKICAgICAgICBpZiAodGhpcy5zY2hlbWFzW2lkXSB8fCB0aGlzLnJlZnNbaWRdKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHNjaGVtYSB3aXRoIGtleSBvciBpZCAiJHtpZH0iIGFscmVhZHkgZXhpc3RzYCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIF9jb21waWxlU2NoZW1hRW52KHNjaCkgewogICAgICAgIGlmIChzY2gubWV0YSkKICAgICAgICAgIHRoaXMuX2NvbXBpbGVNZXRhU2NoZW1hKHNjaCk7CiAgICAgICAgZWxzZQogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIGlmICghc2NoLnZhbGlkYXRlKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICByZXR1cm4gc2NoLnZhbGlkYXRlOwogICAgICB9CiAgICAgIF9jb21waWxlTWV0YVNjaGVtYShzY2gpIHsKICAgICAgICBjb25zdCBjdXJyZW50T3B0cyA9IHRoaXMub3B0czsKICAgICAgICB0aGlzLm9wdHMgPSB0aGlzLl9tZXRhT3B0czsKICAgICAgICB0cnkgewogICAgICAgICAgY29tcGlsZV8xLmNvbXBpbGVTY2hlbWEuY2FsbCh0aGlzLCBzY2gpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLm9wdHMgPSBjdXJyZW50T3B0czsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBBanYuVmFsaWRhdGlvbkVycm9yID0gdmFsaWRhdGlvbl9lcnJvcl8xLmRlZmF1bHQ7CiAgICBBanYuTWlzc2luZ1JlZkVycm9yID0gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBBanY7CiAgICBmdW5jdGlvbiBjaGVja09wdGlvbnMoY2hlY2tPcHRzLCBvcHRpb25zLCBtc2csIGxvZyA9ICJlcnJvciIpIHsKICAgICAgZm9yIChjb25zdCBrZXkgaW4gY2hlY2tPcHRzKSB7CiAgICAgICAgY29uc3Qgb3B0ID0ga2V5OwogICAgICAgIGlmIChvcHQgaW4gb3B0aW9ucykKICAgICAgICAgIHRoaXMubG9nZ2VyW2xvZ10oYCR7bXNnfTogb3B0aW9uICR7a2V5fS4gJHtjaGVja09wdHNbb3B0XX1gKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gZ2V0U2NoRW52KGtleVJlZikgewogICAgICBrZXlSZWYgPSAoMCwgcmVzb2x2ZV8xLm5vcm1hbGl6ZUlkKShrZXlSZWYpOwogICAgICByZXR1cm4gdGhpcy5zY2hlbWFzW2tleVJlZl0gfHwgdGhpcy5yZWZzW2tleVJlZl07CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsU2NoZW1hcygpIHsKICAgICAgY29uc3Qgb3B0c1NjaGVtYXMgPSB0aGlzLm9wdHMuc2NoZW1hczsKICAgICAgaWYgKCFvcHRzU2NoZW1hcykKICAgICAgICByZXR1cm47CiAgICAgIGlmIChBcnJheS5pc0FycmF5KG9wdHNTY2hlbWFzKSkKICAgICAgICB0aGlzLmFkZFNjaGVtYShvcHRzU2NoZW1hcyk7CiAgICAgIGVsc2UKICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBvcHRzU2NoZW1hcykKICAgICAgICAgIHRoaXMuYWRkU2NoZW1hKG9wdHNTY2hlbWFzW2tleV0sIGtleSk7CiAgICB9CiAgICBmdW5jdGlvbiBhZGRJbml0aWFsRm9ybWF0cygpIHsKICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMub3B0cy5mb3JtYXRzKSB7CiAgICAgICAgY29uc3QgZm9ybWF0ID0gdGhpcy5vcHRzLmZvcm1hdHNbbmFtZV07CiAgICAgICAgaWYgKGZvcm1hdCkKICAgICAgICAgIHRoaXMuYWRkRm9ybWF0KG5hbWUsIGZvcm1hdCk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGFkZEluaXRpYWxLZXl3b3JkcyhkZWZzKSB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRlZnMpKSB7CiAgICAgICAgdGhpcy5hZGRWb2NhYnVsYXJ5KGRlZnMpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB0aGlzLmxvZ2dlci53YXJuKCJrZXl3b3JkcyBvcHRpb24gYXMgbWFwIGlzIGRlcHJlY2F0ZWQsIHBhc3MgYXJyYXkiKTsKICAgICAgZm9yIChjb25zdCBrZXl3b3JkIGluIGRlZnMpIHsKICAgICAgICBjb25zdCBkZWYgPSBkZWZzW2tleXdvcmRdOwogICAgICAgIGlmICghZGVmLmtleXdvcmQpCiAgICAgICAgICBkZWYua2V5d29yZCA9IGtleXdvcmQ7CiAgICAgICAgdGhpcy5hZGRLZXl3b3JkKGRlZik7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGdldE1ldGFTY2hlbWFPcHRpb25zKCkgewogICAgICBjb25zdCBtZXRhT3B0cyA9IHsgLi4udGhpcy5vcHRzIH07CiAgICAgIGZvciAoY29uc3Qgb3B0IG9mIE1FVEFfSUdOT1JFX09QVElPTlMpCiAgICAgICAgZGVsZXRlIG1ldGFPcHRzW29wdF07CiAgICAgIHJldHVybiBtZXRhT3B0czsKICAgIH0KICAgIHZhciBub0xvZ3MgPSB7IGxvZygpIHsKICAgIH0sIHdhcm4oKSB7CiAgICB9LCBlcnJvcigpIHsKICAgIH0gfTsKICAgIGZ1bmN0aW9uIGdldExvZ2dlcihsb2dnZXIpIHsKICAgICAgaWYgKGxvZ2dlciA9PT0gZmFsc2UpCiAgICAgICAgcmV0dXJuIG5vTG9nczsKICAgICAgaWYgKGxvZ2dlciA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybiBjb25zb2xlOwogICAgICBpZiAobG9nZ2VyLmxvZyAmJiBsb2dnZXIud2FybiAmJiBsb2dnZXIuZXJyb3IpCiAgICAgICAgcmV0dXJuIGxvZ2dlcjsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJsb2dnZXIgbXVzdCBpbXBsZW1lbnQgbG9nLCB3YXJuIGFuZCBlcnJvciBtZXRob2RzIik7CiAgICB9CiAgICB2YXIgS0VZV09SRF9OQU1FID0gL15bYS16XyRdW2EtejAtOV8kOi1dKiQvaTsKICAgIGZ1bmN0aW9uIGNoZWNrS2V5d29yZChrZXl3b3JkLCBkZWYpIHsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgKDAsIHV0aWxfMS5lYWNoSXRlbSkoa2V5d29yZCwgKGt3ZCkgPT4gewogICAgICAgIGlmIChSVUxFUy5rZXl3b3Jkc1trd2RdKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBLZXl3b3JkICR7a3dkfSBpcyBhbHJlYWR5IGRlZmluZWRgKTsKICAgICAgICBpZiAoIUtFWVdPUkRfTkFNRS50ZXN0KGt3ZCkpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEtleXdvcmQgJHtrd2R9IGhhcyBpbnZhbGlkIG5hbWVgKTsKICAgICAgfSk7CiAgICAgIGlmICghZGVmKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiAhKCJjb2RlIiBpbiBkZWYgfHwgInZhbGlkYXRlIiBpbiBkZWYpKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCckZGF0YSBrZXl3b3JkIG11c3QgaGF2ZSAiY29kZSIgb3IgInZhbGlkYXRlIiBmdW5jdGlvbicpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBhZGRSdWxlKGtleXdvcmQsIGRlZmluaXRpb24sIGRhdGFUeXBlKSB7CiAgICAgIHZhciBfYTsKICAgICAgY29uc3QgcG9zdCA9IGRlZmluaXRpb24gPT09IG51bGwgfHwgZGVmaW5pdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVmaW5pdGlvbi5wb3N0OwogICAgICBpZiAoZGF0YVR5cGUgJiYgcG9zdCkKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2tleXdvcmQgd2l0aCAicG9zdCIgZmxhZyBjYW5ub3QgaGF2ZSAidHlwZSInKTsKICAgICAgY29uc3QgeyBSVUxFUyB9ID0gdGhpczsKICAgICAgbGV0IHJ1bGVHcm91cCA9IHBvc3QgPyBSVUxFUy5wb3N0IDogUlVMRVMucnVsZXMuZmluZCgoeyB0eXBlOiB0IH0pID0+IHQgPT09IGRhdGFUeXBlKTsKICAgICAgaWYgKCFydWxlR3JvdXApIHsKICAgICAgICBydWxlR3JvdXAgPSB7IHR5cGU6IGRhdGFUeXBlLCBydWxlczogW10gfTsKICAgICAgICBSVUxFUy5ydWxlcy5wdXNoKHJ1bGVHcm91cCk7CiAgICAgIH0KICAgICAgUlVMRVMua2V5d29yZHNba2V5d29yZF0gPSB0cnVlOwogICAgICBpZiAoIWRlZmluaXRpb24pCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBydWxlID0gewogICAgICAgIGtleXdvcmQsCiAgICAgICAgZGVmaW5pdGlvbjogewogICAgICAgICAgLi4uZGVmaW5pdGlvbiwKICAgICAgICAgIHR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi50eXBlKSwKICAgICAgICAgIHNjaGVtYVR5cGU6ICgwLCBkYXRhVHlwZV8xLmdldEpTT05UeXBlcykoZGVmaW5pdGlvbi5zY2hlbWFUeXBlKQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKGRlZmluaXRpb24uYmVmb3JlKQogICAgICAgIGFkZEJlZm9yZVJ1bGUuY2FsbCh0aGlzLCBydWxlR3JvdXAsIHJ1bGUsIGRlZmluaXRpb24uYmVmb3JlKTsKICAgICAgZWxzZQogICAgICAgIHJ1bGVHcm91cC5ydWxlcy5wdXNoKHJ1bGUpOwogICAgICBSVUxFUy5hbGxba2V5d29yZF0gPSBydWxlOwogICAgICAoX2EgPSBkZWZpbml0aW9uLmltcGxlbWVudHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb3JFYWNoKChrd2QpID0+IHRoaXMuYWRkS2V5d29yZChrd2QpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFkZEJlZm9yZVJ1bGUocnVsZUdyb3VwLCBydWxlLCBiZWZvcmUpIHsKICAgICAgY29uc3QgaSA9IHJ1bGVHcm91cC5ydWxlcy5maW5kSW5kZXgoKF9ydWxlKSA9PiBfcnVsZS5rZXl3b3JkID09PSBiZWZvcmUpOwogICAgICBpZiAoaSA+PSAwKSB7CiAgICAgICAgcnVsZUdyb3VwLnJ1bGVzLnNwbGljZShpLCAwLCBydWxlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBydWxlR3JvdXAucnVsZXMucHVzaChydWxlKTsKICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBydWxlICR7YmVmb3JlfSBpcyBub3QgZGVmaW5lZGApOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBrZXl3b3JkTWV0YXNjaGVtYShkZWYpIHsKICAgICAgbGV0IHsgbWV0YVNjaGVtYSB9ID0gZGVmOwogICAgICBpZiAobWV0YVNjaGVtYSA9PT0gdm9pZCAwKQogICAgICAgIHJldHVybjsKICAgICAgaWYgKGRlZi4kZGF0YSAmJiB0aGlzLm9wdHMuJGRhdGEpCiAgICAgICAgbWV0YVNjaGVtYSA9IHNjaGVtYU9yRGF0YShtZXRhU2NoZW1hKTsKICAgICAgZGVmLnZhbGlkYXRlU2NoZW1hID0gdGhpcy5jb21waWxlKG1ldGFTY2hlbWEsIHRydWUpOwogICAgfQogICAgdmFyICRkYXRhUmVmID0gewogICAgICAkcmVmOiAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Fqdi12YWxpZGF0b3IvYWp2L21hc3Rlci9saWIvcmVmcy9kYXRhLmpzb24jIgogICAgfTsKICAgIGZ1bmN0aW9uIHNjaGVtYU9yRGF0YShzY2hlbWEyKSB7CiAgICAgIHJldHVybiB7IGFueU9mOiBbc2NoZW1hMiwgJGRhdGFSZWZdIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pZC5qcwp2YXIgcmVxdWlyZV9pZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvaWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZCIsCiAgICAgIGNvZGUoKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdOT1QgU1VQUE9SVEVEOiBrZXl3b3JkICJpZCIsIHVzZSAiJGlkIiBmb3Igc2NoZW1hIElEJyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzCnZhciByZXF1aXJlX3JlZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2NvcmUvcmVmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYWxsUmVmID0gZXhwb3J0czIuZ2V0VmFsaWRhdGUgPSB2b2lkIDA7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBuYW1lc18xID0gcmVxdWlyZV9uYW1lcygpOwogICAgdmFyIGNvbXBpbGVfMSA9IHJlcXVpcmVfY29tcGlsZSgpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIiRyZWYiLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiAkcmVmLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgYmFzZUlkLCBzY2hlbWFFbnY6IGVudiwgdmFsaWRhdGVOYW1lLCBvcHRzLCBzZWxmOiBzZWxmMiB9ID0gaXQ7CiAgICAgICAgY29uc3QgeyByb290IH0gPSBlbnY7CiAgICAgICAgaWYgKCgkcmVmID09PSAiIyIgfHwgJHJlZiA9PT0gIiMvIikgJiYgYmFzZUlkID09PSByb290LmJhc2VJZCkKICAgICAgICAgIHJldHVybiBjYWxsUm9vdFJlZigpOwogICAgICAgIGNvbnN0IHNjaE9yRW52ID0gY29tcGlsZV8xLnJlc29sdmVSZWYuY2FsbChzZWxmMiwgcm9vdCwgYmFzZUlkLCAkcmVmKTsKICAgICAgICBpZiAoc2NoT3JFbnYgPT09IHZvaWQgMCkKICAgICAgICAgIHRocm93IG5ldyByZWZfZXJyb3JfMS5kZWZhdWx0KGl0Lm9wdHMudXJpUmVzb2x2ZXIsIGJhc2VJZCwgJHJlZik7CiAgICAgICAgaWYgKHNjaE9yRW52IGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgIHJldHVybiBjYWxsVmFsaWRhdGUoc2NoT3JFbnYpOwogICAgICAgIHJldHVybiBpbmxpbmVSZWZTY2hlbWEoc2NoT3JFbnYpOwogICAgICAgIGZ1bmN0aW9uIGNhbGxSb290UmVmKCkgewogICAgICAgICAgaWYgKGVudiA9PT0gcm9vdCkKICAgICAgICAgICAgcmV0dXJuIGNhbGxSZWYoY3h0LCB2YWxpZGF0ZU5hbWUsIGVudiwgZW52LiRhc3luYyk7CiAgICAgICAgICBjb25zdCByb290TmFtZSA9IGdlbi5zY29wZVZhbHVlKCJyb290IiwgeyByZWY6IHJvb3QgfSk7CiAgICAgICAgICByZXR1cm4gY2FsbFJlZihjeHQsICgwLCBjb2RlZ2VuXzEuXylgJHtyb290TmFtZX0udmFsaWRhdGVgLCByb290LCByb290LiRhc3luYyk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNhbGxWYWxpZGF0ZShzY2gpIHsKICAgICAgICAgIGNvbnN0IHYgPSBnZXRWYWxpZGF0ZShjeHQsIHNjaCk7CiAgICAgICAgICBjYWxsUmVmKGN4dCwgdiwgc2NoLCBzY2guJGFzeW5jKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaW5saW5lUmVmU2NoZW1hKHNjaCkgewogICAgICAgICAgY29uc3Qgc2NoTmFtZSA9IGdlbi5zY29wZVZhbHVlKCJzY2hlbWEiLCBvcHRzLmNvZGUuc291cmNlID09PSB0cnVlID8geyByZWY6IHNjaCwgY29kZTogKDAsIGNvZGVnZW5fMS5zdHJpbmdpZnkpKHNjaCkgfSA6IHsgcmVmOiBzY2ggfSk7CiAgICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgICAgY29uc3Qgc2NoQ3h0ID0gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIHNjaGVtYTogc2NoLAogICAgICAgICAgICBkYXRhVHlwZXM6IFtdLAogICAgICAgICAgICBzY2hlbWFQYXRoOiBjb2RlZ2VuXzEubmlsLAogICAgICAgICAgICB0b3BTY2hlbWFSZWY6IHNjaE5hbWUsCiAgICAgICAgICAgIGVyclNjaGVtYVBhdGg6ICRyZWYKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQpOwogICAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0ZShjeHQsIHNjaCkgewogICAgICBjb25zdCB7IGdlbiB9ID0gY3h0OwogICAgICByZXR1cm4gc2NoLnZhbGlkYXRlID8gZ2VuLnNjb3BlVmFsdWUoInZhbGlkYXRlIiwgeyByZWY6IHNjaC52YWxpZGF0ZSB9KSA6ICgwLCBjb2RlZ2VuXzEuXylgJHtnZW4uc2NvcGVWYWx1ZSgid3JhcHBlciIsIHsgcmVmOiBzY2ggfSl9LnZhbGlkYXRlYDsKICAgIH0KICAgIGV4cG9ydHMyLmdldFZhbGlkYXRlID0gZ2V0VmFsaWRhdGU7CiAgICBmdW5jdGlvbiBjYWxsUmVmKGN4dCwgdiwgc2NoLCAkYXN5bmMpIHsKICAgICAgY29uc3QgeyBnZW4sIGl0IH0gPSBjeHQ7CiAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBzY2hlbWFFbnY6IGVudiwgb3B0cyB9ID0gaXQ7CiAgICAgIGNvbnN0IHBhc3NDeHQgPSBvcHRzLnBhc3NDb250ZXh0ID8gbmFtZXNfMS5kZWZhdWx0LnRoaXMgOiBjb2RlZ2VuXzEubmlsOwogICAgICBpZiAoJGFzeW5jKQogICAgICAgIGNhbGxBc3luY1JlZigpOwogICAgICBlbHNlCiAgICAgICAgY2FsbFN5bmNSZWYoKTsKICAgICAgZnVuY3Rpb24gY2FsbEFzeW5jUmVmKCkgewogICAgICAgIGlmICghZW52LiRhc3luYykKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiYXN5bmMgc2NoZW1hIHJlZmVyZW5jZWQgYnkgc3luYyBzY2hlbWEiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIik7CiAgICAgICAgZ2VuLnRyeSgoKSA9PiB7CiAgICAgICAgICBnZW4uY29kZSgoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7KDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpfWApOwogICAgICAgICAgYWRkRXZhbHVhdGVkRnJvbSh2KTsKICAgICAgICAgIGlmICghYWxsRXJyb3JzKQogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICB9LCAoZSkgPT4gewogICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgISgke2V9IGluc3RhbmNlb2YgJHtpdC5WYWxpZGF0aW9uRXJyb3J9KWAsICgpID0+IGdlbi50aHJvdyhlKSk7CiAgICAgICAgICBhZGRFcnJvcnNGcm9tKGUpOwogICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKTsKICAgICAgICB9KTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhbGxTeW5jUmVmKCkgewogICAgICAgIGN4dC5yZXN1bHQoKDAsIGNvZGVfMS5jYWxsVmFsaWRhdGVDb2RlKShjeHQsIHYsIHBhc3NDeHQpLCAoKSA9PiBhZGRFdmFsdWF0ZWRGcm9tKHYpLCAoKSA9PiBhZGRFcnJvcnNGcm9tKHYpKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBhZGRFcnJvcnNGcm9tKHNvdXJjZSkgewogICAgICAgIGNvbnN0IGVycnMgPSAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5lcnJvcnNgOwogICAgICAgIGdlbi5hc3NpZ24obmFtZXNfMS5kZWZhdWx0LnZFcnJvcnMsICgwLCBjb2RlZ2VuXzEuXylgJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30gPT09IG51bGwgPyAke2VycnN9IDogJHtuYW1lc18xLmRlZmF1bHQudkVycm9yc30uY29uY2F0KCR7ZXJyc30pYCk7CiAgICAgICAgZ2VuLmFzc2lnbihuYW1lc18xLmRlZmF1bHQuZXJyb3JzLCAoMCwgY29kZWdlbl8xLl8pYCR7bmFtZXNfMS5kZWZhdWx0LnZFcnJvcnN9Lmxlbmd0aGApOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGFkZEV2YWx1YXRlZEZyb20oc291cmNlKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmICghaXQub3B0cy51bmV2YWx1YXRlZCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCBzY2hFdmFsdWF0ZWQgPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gudmFsaWRhdGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ldmFsdWF0ZWQ7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY1Byb3BzKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQucHJvcHMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgc2NoRXZhbHVhdGVkLnByb3BzLCBpdC5wcm9wcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IHByb3BzID0gZ2VuLnZhcigicHJvcHMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQucHJvcHNgKTsKICAgICAgICAgICAgaXQucHJvcHMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQucHJvcHMoZ2VuLCBwcm9wcywgaXQucHJvcHMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGl0Lml0ZW1zICE9PSB0cnVlKSB7CiAgICAgICAgICBpZiAoc2NoRXZhbHVhdGVkICYmICFzY2hFdmFsdWF0ZWQuZHluYW1pY0l0ZW1zKSB7CiAgICAgICAgICAgIGlmIChzY2hFdmFsdWF0ZWQuaXRlbXMgIT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGl0Lml0ZW1zID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLml0ZW1zKGdlbiwgc2NoRXZhbHVhdGVkLml0ZW1zLCBpdC5pdGVtcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IGl0ZW1zID0gZ2VuLnZhcigiaXRlbXMiLCAoMCwgY29kZWdlbl8xLl8pYCR7c291cmNlfS5ldmFsdWF0ZWQuaXRlbXNgKTsKICAgICAgICAgICAgaXQuaXRlbXMgPSB1dGlsXzEubWVyZ2VFdmFsdWF0ZWQuaXRlbXMoZ2VuLCBpdGVtcywgaXQuaXRlbXMsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmNhbGxSZWYgPSBjYWxsUmVmOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9jb3JlL2luZGV4LmpzCnZhciByZXF1aXJlX2NvcmUyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvY29yZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGlkXzEgPSByZXF1aXJlX2lkKCk7CiAgICB2YXIgcmVmXzEgPSByZXF1aXJlX3JlZigpOwogICAgdmFyIGNvcmUyID0gWwogICAgICAiJHNjaGVtYSIsCiAgICAgICIkaWQiLAogICAgICAiJGRlZnMiLAogICAgICAiJHZvY2FidWxhcnkiLAogICAgICB7IGtleXdvcmQ6ICIkY29tbWVudCIgfSwKICAgICAgImRlZmluaXRpb25zIiwKICAgICAgaWRfMS5kZWZhdWx0LAogICAgICByZWZfMS5kZWZhdWx0CiAgICBdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGNvcmUyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXROdW1iZXIuanMKdmFyIHJlcXVpcmVfbGltaXROdW1iZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0TnVtYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgb3BzID0gY29kZWdlbl8xLm9wZXJhdG9yczsKICAgIHZhciBLV0RzID0gewogICAgICBtYXhpbXVtOiB7IG9rU3RyOiAiPD0iLCBvazogb3BzLkxURSwgZmFpbDogb3BzLkdUIH0sCiAgICAgIG1pbmltdW06IHsgb2tTdHI6ICI+PSIsIG9rOiBvcHMuR1RFLCBmYWlsOiBvcHMuTFQgfSwKICAgICAgZXhjbHVzaXZlTWF4aW11bTogeyBva1N0cjogIjwiLCBvazogb3BzLkxULCBmYWlsOiBvcHMuR1RFIH0sCiAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsgb2tTdHI6ICI+Iiwgb2s6IG9wcy5HVCwgZmFpbDogb3BzLkxURSB9CiAgICB9OwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBrZXl3b3JkLCBzY2hlbWFDb2RlIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IGJlICR7S1dEc1trZXl3b3JkXS5va1N0cn0gJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtjb21wYXJpc29uOiAke0tXRHNba2V5d29yZF0ub2tTdHJ9LCBsaW1pdDogJHtzY2hlbWFDb2RlfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ICR7S1dEc1trZXl3b3JkXS5mYWlsfSAke3NjaGVtYUNvZGV9IHx8IGlzTmFOKCR7ZGF0YX0pYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbXVsdGlwbGVPZi5qcwp2YXIgcmVxdWlyZV9tdWx0aXBsZU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9tdWx0aXBsZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgYmUgbXVsdGlwbGUgb2YgJHtzY2hlbWFDb2RlfWAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHttdWx0aXBsZU9mOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibXVsdGlwbGVPZiIsCiAgICAgIHR5cGU6ICJudW1iZXIiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHByZWMgPSBpdC5vcHRzLm11bHRpcGxlT2ZQcmVjaXNpb247CiAgICAgICAgY29uc3QgcmVzID0gZ2VuLmxldCgicmVzIik7CiAgICAgICAgY29uc3QgaW52YWxpZCA9IHByZWMgPyAoMCwgY29kZWdlbl8xLl8pYE1hdGguYWJzKE1hdGgucm91bmQoJHtyZXN9KSAtICR7cmVzfSkgPiAxZS0ke3ByZWN9YCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtyZXN9ICE9PSBwYXJzZUludCgke3Jlc30pYDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgKCR7c2NoZW1hQ29kZX0gPT09IDAgfHwgKCR7cmVzfSA9ICR7ZGF0YX0vJHtzY2hlbWFDb2RlfSwgJHtpbnZhbGlkfSkpYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoLmpzCnZhciByZXF1aXJlX3VjczJsZW5ndGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvdWNzMmxlbmd0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZnVuY3Rpb24gdWNzMmxlbmd0aChzdHIyKSB7CiAgICAgIGNvbnN0IGxlbiA9IHN0cjIubGVuZ3RoOwogICAgICBsZXQgbGVuZ3RoID0gMDsKICAgICAgbGV0IHBvcyA9IDA7CiAgICAgIGxldCB2YWx1ZTsKICAgICAgd2hpbGUgKHBvcyA8IGxlbikgewogICAgICAgIGxlbmd0aCsrOwogICAgICAgIHZhbHVlID0gc3RyMi5jaGFyQ29kZUF0KHBvcysrKTsKICAgICAgICBpZiAodmFsdWUgPj0gNTUyOTYgJiYgdmFsdWUgPD0gNTYzMTkgJiYgcG9zIDwgbGVuKSB7CiAgICAgICAgICB2YWx1ZSA9IHN0cjIuY2hhckNvZGVBdChwb3MpOwogICAgICAgICAgaWYgKCh2YWx1ZSAmIDY0NTEyKSA9PT0gNTYzMjApCiAgICAgICAgICAgIHBvcysrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbGVuZ3RoOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IHVjczJsZW5ndGg7CiAgICB1Y3MybGVuZ3RoLmNvZGUgPSAncmVxdWlyZSgiYWp2L2Rpc3QvcnVudGltZS91Y3MybGVuZ3RoIikuZGVmYXVsdCc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdExlbmd0aC5qcwp2YXIgcmVxdWlyZV9saW1pdExlbmd0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vbGltaXRMZW5ndGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciB1Y3MybGVuZ3RoXzEgPSByZXF1aXJlX3VjczJsZW5ndGgoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IGNoYXJhY3RlcnNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4TGVuZ3RoIiwgIm1pbkxlbmd0aCJdLAogICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3Qgb3AgPSBrZXl3b3JkID09PSAibWF4TGVuZ3RoIiA/IGNvZGVnZW5fMS5vcGVyYXRvcnMuR1QgOiBjb2RlZ2VuXzEub3BlcmF0b3JzLkxUOwogICAgICAgIGNvbnN0IGxlbiA9IGl0Lm9wdHMudW5pY29kZSA9PT0gZmFsc2UgPyAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgdXRpbF8xLnVzZUZ1bmMpKGN4dC5nZW4sIHVjczJsZW5ndGhfMS5kZWZhdWx0KX0oJHtkYXRhfSlgOwogICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBtYXRjaCBwYXR0ZXJuICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtwYXR0ZXJuOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicGF0dGVybiIsCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB1ID0gaXQub3B0cy51bmljb2RlUmVnRXhwID8gInUiIDogIiI7CiAgICAgICAgY29uc3QgcmVnRXhwID0gJGRhdGEgPyAoMCwgY29kZWdlbl8xLl8pYChuZXcgUmVnRXhwKCR7c2NoZW1hQ29kZX0sICR7dX0pKWAgOiAoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgc2NoZW1hMik7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEke3JlZ0V4cH0udGVzdCgke2RhdGF9KWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9saW1pdFByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0UHJvcGVydGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlKHsga2V5d29yZCwgc2NoZW1hQ29kZSB9KSB7CiAgICAgICAgY29uc3QgY29tcCA9IGtleXdvcmQgPT09ICJtYXhQcm9wZXJ0aWVzIiA/ICJtb3JlIiA6ICJmZXdlciI7CiAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlICR7Y29tcH0gdGhhbiAke3NjaGVtYUNvZGV9IHByb3BlcnRpZXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4UHJvcGVydGllcyIsICJtaW5Qcm9wZXJ0aWVzIl0sCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAibnVtYmVyIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsga2V5d29yZCwgZGF0YSwgc2NoZW1hQ29kZSB9ID0gY3h0OwogICAgICAgIGNvbnN0IG9wID0ga2V5d29yZCA9PT0gIm1heFByb3BlcnRpZXMiID8gY29kZWdlbl8xLm9wZXJhdG9ycy5HVCA6IGNvZGVnZW5fMS5vcGVyYXRvcnMuTFQ7CiAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYE9iamVjdC5rZXlzKCR7ZGF0YX0pLmxlbmd0aCAke29wfSAke3NjaGVtYUNvZGV9YCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vcmVxdWlyZWQuanMKdmFyIHJlcXVpcmVfcmVxdWlyZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3JlcXVpcmVkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgbWlzc2luZ1Byb3BlcnR5IH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgaGF2ZSByZXF1aXJlZCBwcm9wZXJ0eSAnJHttaXNzaW5nUHJvcGVydHl9J2AsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge21pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicmVxdWlyZWQiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGRhdGEsICRkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cyB9ID0gaXQ7CiAgICAgICAgaWYgKCEkZGF0YSAmJiBzY2hlbWEyLmxlbmd0aCA9PT0gMCkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gb3B0cy5sb29wUmVxdWlyZWQ7CiAgICAgICAgaWYgKGl0LmFsbEVycm9ycykKICAgICAgICAgIGFsbEVycm9yc01vZGUoKTsKICAgICAgICBlbHNlCiAgICAgICAgICBleGl0T25FcnJvck1vZGUoKTsKICAgICAgICBpZiAob3B0cy5zdHJpY3RSZXF1aXJlZCkgewogICAgICAgICAgY29uc3QgcHJvcHMgPSBjeHQucGFyZW50U2NoZW1hLnByb3BlcnRpZXM7CiAgICAgICAgICBjb25zdCB7IGRlZmluZWRQcm9wZXJ0aWVzIH0gPSBjeHQuaXQ7CiAgICAgICAgICBmb3IgKGNvbnN0IHJlcXVpcmVkS2V5IG9mIHNjaGVtYTIpIHsKICAgICAgICAgICAgaWYgKChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHNbcmVxdWlyZWRLZXldKSA9PT0gdm9pZCAwICYmICFkZWZpbmVkUHJvcGVydGllcy5oYXMocmVxdWlyZWRLZXkpKSB7CiAgICAgICAgICAgICAgY29uc3Qgc2NoZW1hUGF0aCA9IGl0LnNjaGVtYUVudi5iYXNlSWQgKyBpdC5lcnJTY2hlbWFQYXRoOwogICAgICAgICAgICAgIGNvbnN0IG1zZyA9IGByZXF1aXJlZCBwcm9wZXJ0eSAiJHtyZXF1aXJlZEtleX0iIGlzIG5vdCBkZWZpbmVkIGF0ICIke3NjaGVtYVBhdGh9IiAoc3RyaWN0UmVxdWlyZWQpYDsKICAgICAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgaXQub3B0cy5zdHJpY3RSZXF1aXJlZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYWxsRXJyb3JzTW9kZSgpIHsKICAgICAgICAgIGlmICh1c2VMb29wIHx8ICRkYXRhKSB7CiAgICAgICAgICAgIGN4dC5ibG9jayRkYXRhKGNvZGVnZW5fMS5uaWwsIGxvb3BBbGxSZXF1aXJlZCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2Ygc2NoZW1hMikgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBwcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBleGl0T25FcnJvck1vZGUoKSB7CiAgICAgICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICAgICAgaWYgKHVzZUxvb3AgfHwgJGRhdGEpIHsKICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIHRydWUpOwogICAgICAgICAgICBjeHQuYmxvY2skZGF0YSh2YWxpZCwgKCkgPT4gbG9vcFVudGlsTWlzc2luZyhtaXNzaW5nLCB2YWxpZCkpOwogICAgICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBzY2hlbWEyLCBtaXNzaW5nKSk7CiAgICAgICAgICAgICgwLCBjb2RlXzEucmVwb3J0TWlzc2luZ1Byb3ApKGN4dCwgbWlzc2luZyk7CiAgICAgICAgICAgIGdlbi5lbHNlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BBbGxSZXF1aXJlZCgpIHsKICAgICAgICAgIGdlbi5mb3JPZigicHJvcCIsIHNjaGVtYUNvZGUsIChwcm9wKSA9PiB7CiAgICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IHByb3AgfSk7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLm5vUHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgb3B0cy5vd25Qcm9wZXJ0aWVzKSwgKCkgPT4gY3h0LmVycm9yKCkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGxvb3BVbnRpbE1pc3NpbmcobWlzc2luZywgdmFsaWQpIHsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBtaXNzaW5nUHJvcGVydHk6IG1pc3NpbmcgfSk7CiAgICAgICAgICBnZW4uZm9yT2YobWlzc2luZywgc2NoZW1hQ29kZSwgKCkgPT4gewogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCAoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIG1pc3NpbmcsIG9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sIGNvZGVnZW5fMS5uaWwpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9saW1pdEl0ZW1zLmpzCnZhciByZXF1aXJlX2xpbWl0SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2xpbWl0SXRlbXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZSh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgewogICAgICAgIGNvbnN0IGNvbXAgPSBrZXl3b3JkID09PSAibWF4SXRlbXMiID8gIm1vcmUiIDogImZld2VyIjsKICAgICAgICByZXR1cm4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgTk9UIGhhdmUgJHtjb21wfSB0aGFuICR7c2NoZW1hQ29kZX0gaXRlbXNgOwogICAgICB9LAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6IFsibWF4SXRlbXMiLCAibWluSXRlbXMiXSwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogIm51bWJlciIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGtleXdvcmQsIGRhdGEsIHNjaGVtYUNvZGUgfSA9IGN4dDsKICAgICAgICBjb25zdCBvcCA9IGtleXdvcmQgPT09ICJtYXhJdGVtcyIgPyBjb2RlZ2VuXzEub3BlcmF0b3JzLkdUIDogY29kZWdlbl8xLm9wZXJhdG9ycy5MVDsKICAgICAgICBjeHQuZmFpbCRkYXRhKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggJHtvcH0gJHtzY2hlbWFDb2RlfWApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMKdmFyIHJlcXVpcmVfZXF1YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3J1bnRpbWUvZXF1YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBlcXVhbCA9IHJlcXVpcmVfZmFzdF9kZWVwX2VxdWFsKCk7CiAgICBlcXVhbC5jb2RlID0gJ3JlcXVpcmUoImFqdi9kaXN0L3J1bnRpbWUvZXF1YWwiKS5kZWZhdWx0JzsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBlcXVhbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL3VuaXF1ZUl0ZW1zLmpzCnZhciByZXF1aXJlX3VuaXF1ZUl0ZW1zID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi91bmlxdWVJdGVtcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGRhdGFUeXBlXzEgPSByZXF1aXJlX2RhdGFUeXBlKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGksIGogfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBkdXBsaWNhdGUgaXRlbXMgKGl0ZW1zICMjICR7an0gYW5kICR7aX0gYXJlIGlkZW50aWNhbClgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBpLCBqIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7aTogJHtpfSwgajogJHtqfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInVuaXF1ZUl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogImJvb2xlYW4iLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmICFzY2hlbWEyKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLmxldCgidmFsaWQiKTsKICAgICAgICBjb25zdCBpdGVtVHlwZXMgPSBwYXJlbnRTY2hlbWEuaXRlbXMgPyAoMCwgZGF0YVR5cGVfMS5nZXRTY2hlbWFUeXBlcykocGFyZW50U2NoZW1hLml0ZW1zKSA6IFtdOwogICAgICAgIGN4dC5ibG9jayRkYXRhKHZhbGlkLCB2YWxpZGF0ZVVuaXF1ZUl0ZW1zLCAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gPT09IGZhbHNlYCk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVVuaXF1ZUl0ZW1zKCkgewogICAgICAgICAgY29uc3QgaSA9IGdlbi5sZXQoImkiLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgICBjb25zdCBqID0gZ2VuLmxldCgiaiIpOwogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGksIGogfSk7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aX0gPiAxYCwgKCkgPT4gKGNhbk9wdGltaXplKCkgPyBsb29wTiA6IGxvb3BOMikoaSwgaikpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjYW5PcHRpbWl6ZSgpIHsKICAgICAgICAgIHJldHVybiBpdGVtVHlwZXMubGVuZ3RoID4gMCAmJiAhaXRlbVR5cGVzLnNvbWUoKHQpID0+IHQgPT09ICJvYmplY3QiIHx8IHQgPT09ICJhcnJheSIpOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBsb29wTihpLCBqKSB7CiAgICAgICAgICBjb25zdCBpdGVtID0gZ2VuLm5hbWUoIml0ZW0iKTsKICAgICAgICAgIGNvbnN0IHdyb25nVHlwZSA9ICgwLCBkYXRhVHlwZV8xLmNoZWNrRGF0YVR5cGVzKShpdGVtVHlwZXMsIGl0ZW0sIGl0Lm9wdHMuc3RyaWN0TnVtYmVycywgZGF0YVR5cGVfMS5EYXRhVHlwZS5Xcm9uZyk7CiAgICAgICAgICBjb25zdCBpbmRpY2VzID0gZ2VuLmNvbnN0KCJpbmRpY2VzIiwgKDAsIGNvZGVnZW5fMS5fKWB7fWApOwogICAgICAgICAgZ2VuLmZvcigoMCwgY29kZWdlbl8xLl8pYDske2l9LS07YCwgKCkgPT4gewogICAgICAgICAgICBnZW4ubGV0KGl0ZW0sICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfVske2l9XWApOwogICAgICAgICAgICBnZW4uaWYod3JvbmdUeXBlLCAoMCwgY29kZWdlbl8xLl8pYGNvbnRpbnVlYCk7CiAgICAgICAgICAgIGlmIChpdGVtVHlwZXMubGVuZ3RoID4gMSkKICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtpdGVtfSA9PSAic3RyaW5nImAsICgwLCBjb2RlZ2VuXzEuXylgJHtpdGVtfSArPSAiXyJgKTsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7aW5kaWNlc31bJHtpdGVtfV0gPT0gIm51bWJlciJgLCAoKSA9PiB7CiAgICAgICAgICAgICAgZ2VuLmFzc2lnbihqLCAoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV1gKTsKICAgICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsoKTsKICAgICAgICAgICAgfSkuY29kZSgoMCwgY29kZWdlbl8xLl8pYCR7aW5kaWNlc31bJHtpdGVtfV0gPSAke2l9YCk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gbG9vcE4yKGksIGopIHsKICAgICAgICAgIGNvbnN0IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgICAgY29uc3Qgb3V0ZXIgPSBnZW4ubmFtZSgib3V0ZXIiKTsKICAgICAgICAgIGdlbi5sYWJlbChvdXRlcikuZm9yKCgwLCBjb2RlZ2VuXzEuXylgOyR7aX0tLTtgLCAoKSA9PiBnZW4uZm9yKCgwLCBjb2RlZ2VuXzEuXylgJHtqfSA9ICR7aX07ICR7an0tLTtgLCAoKSA9PiBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2VxbH0oJHtkYXRhfVske2l9XSwgJHtkYXRhfVske2p9XSlgLCAoKSA9PiB7CiAgICAgICAgICAgIGN4dC5lcnJvcigpOwogICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSkuYnJlYWsob3V0ZXIpOwogICAgICAgICAgfSkpKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vY29uc3QuanMKdmFyIHJlcXVpcmVfY29uc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy92YWxpZGF0aW9uL2NvbnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gY29uc3RhbnQiLAogICAgICBwYXJhbXM6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWxsb3dlZFZhbHVlOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiY29uc3QiLAogICAgICAkZGF0YTogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWFDb2RlLCBzY2hlbWE6IHNjaGVtYTIgfSA9IGN4dDsKICAgICAgICBpZiAoJGRhdGEgfHwgc2NoZW1hMiAmJiB0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IikgewogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLl8pYCEkeygwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpfSgke2RhdGF9LCAke3NjaGVtYUNvZGV9KWApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjeHQuZmFpbCgoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hMn0gIT09ICR7ZGF0YX1gKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL3ZhbGlkYXRpb24vZW51bS5qcwp2YXIgcmVxdWlyZV9lbnVtID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9lbnVtLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXF1YWxfMSA9IHJlcXVpcmVfZXF1YWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgYmUgZXF1YWwgdG8gb25lIG9mIHRoZSBhbGxvd2VkIHZhbHVlcyIsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHthbGxvd2VkVmFsdWVzOiAke3NjaGVtYUNvZGV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZW51bSIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgZGF0YSwgJGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgc2NoZW1hQ29kZSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoISRkYXRhICYmIHNjaGVtYTIubGVuZ3RoID09PSAwKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJlbnVtIG11c3QgaGF2ZSBub24tZW1wdHkgYXJyYXkiKTsKICAgICAgICBjb25zdCB1c2VMb29wID0gc2NoZW1hMi5sZW5ndGggPj0gaXQub3B0cy5sb29wRW51bTsKICAgICAgICBsZXQgZXFsOwogICAgICAgIGNvbnN0IGdldEVxbCA9ICgpID0+IGVxbCAhPT0gbnVsbCAmJiBlcWwgIT09IHZvaWQgMCA/IGVxbCA6IGVxbCA9ICgwLCB1dGlsXzEudXNlRnVuYykoZ2VuLCBlcXVhbF8xLmRlZmF1bHQpOwogICAgICAgIGxldCB2YWxpZDsKICAgICAgICBpZiAodXNlTG9vcCB8fCAkZGF0YSkgewogICAgICAgICAgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIpOwogICAgICAgICAgY3h0LmJsb2NrJGRhdGEodmFsaWQsIGxvb3BFbnVtKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgICAgY29uc3QgdlNjaGVtYSA9IGdlbi5jb25zdCgidlNjaGVtYSIsIHNjaGVtYUNvZGUpOwogICAgICAgICAgdmFsaWQgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5zY2hlbWEyLm1hcCgoX3gsIGkpID0+IGVxdWFsQ29kZSh2U2NoZW1hLCBpKSkpOwogICAgICAgIH0KICAgICAgICBjeHQucGFzcyh2YWxpZCk7CiAgICAgICAgZnVuY3Rpb24gbG9vcEVudW0oKSB7CiAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICBnZW4uZm9yT2YoInYiLCBzY2hlbWFDb2RlLCAodikgPT4gZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2fSlgLCAoKSA9PiBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKS5icmVhaygpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGVxdWFsQ29kZSh2U2NoZW1hLCBpKSB7CiAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEyW2ldOwogICAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2ggPT09ICJvYmplY3QiICYmIHNjaCAhPT0gbnVsbCA/ICgwLCBjb2RlZ2VuXzEuXylgJHtnZXRFcWwoKX0oJHtkYXRhfSwgJHt2U2NoZW1hfVske2l9XSlgIDogKDAsIGNvZGVnZW5fMS5fKWAke2RhdGF9ID09PSAke3NjaH1gOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcwp2YXIgcmVxdWlyZV92YWxpZGF0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvdmFsaWRhdGlvbi9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGxpbWl0TnVtYmVyXzEgPSByZXF1aXJlX2xpbWl0TnVtYmVyKCk7CiAgICB2YXIgbXVsdGlwbGVPZl8xID0gcmVxdWlyZV9tdWx0aXBsZU9mKCk7CiAgICB2YXIgbGltaXRMZW5ndGhfMSA9IHJlcXVpcmVfbGltaXRMZW5ndGgoKTsKICAgIHZhciBwYXR0ZXJuXzEgPSByZXF1aXJlX3BhdHRlcm4oKTsKICAgIHZhciBsaW1pdFByb3BlcnRpZXNfMSA9IHJlcXVpcmVfbGltaXRQcm9wZXJ0aWVzKCk7CiAgICB2YXIgcmVxdWlyZWRfMSA9IHJlcXVpcmVfcmVxdWlyZWQoKTsKICAgIHZhciBsaW1pdEl0ZW1zXzEgPSByZXF1aXJlX2xpbWl0SXRlbXMoKTsKICAgIHZhciB1bmlxdWVJdGVtc18xID0gcmVxdWlyZV91bmlxdWVJdGVtcygpOwogICAgdmFyIGNvbnN0XzEgPSByZXF1aXJlX2NvbnN0KCk7CiAgICB2YXIgZW51bV8xID0gcmVxdWlyZV9lbnVtKCk7CiAgICB2YXIgdmFsaWRhdGlvbiA9IFsKICAgICAgLy8gbnVtYmVyCiAgICAgIGxpbWl0TnVtYmVyXzEuZGVmYXVsdCwKICAgICAgbXVsdGlwbGVPZl8xLmRlZmF1bHQsCiAgICAgIC8vIHN0cmluZwogICAgICBsaW1pdExlbmd0aF8xLmRlZmF1bHQsCiAgICAgIHBhdHRlcm5fMS5kZWZhdWx0LAogICAgICAvLyBvYmplY3QKICAgICAgbGltaXRQcm9wZXJ0aWVzXzEuZGVmYXVsdCwKICAgICAgcmVxdWlyZWRfMS5kZWZhdWx0LAogICAgICAvLyBhcnJheQogICAgICBsaW1pdEl0ZW1zXzEuZGVmYXVsdCwKICAgICAgdW5pcXVlSXRlbXNfMS5kZWZhdWx0LAogICAgICAvLyBhbnkKICAgICAgeyBrZXl3b3JkOiAidHlwZSIsIHNjaGVtYVR5cGU6IFsic3RyaW5nIiwgImFycmF5Il0gfSwKICAgICAgeyBrZXl3b3JkOiAibnVsbGFibGUiLCBzY2hlbWFUeXBlOiAiYm9vbGVhbiIgfSwKICAgICAgY29uc3RfMS5kZWZhdWx0LAogICAgICBlbnVtXzEuZGVmYXVsdAogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSB2YWxpZGF0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzCnZhciByZXF1aXJlX2FkZGl0aW9uYWxJdGVtcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyA9IHZvaWQgMDsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zOiB7IGxlbiB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IE5PVCBoYXZlIG1vcmUgdGhhbiAke2xlbn0gaXRlbXNgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtsaW1pdDogJHtsZW59fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbEl0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJib29sZWFuIiwgIm9iamVjdCJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgaXRlbXMgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoaXRlbXMpKSB7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsICciYWRkaXRpb25hbEl0ZW1zIiBpcyBpZ25vcmVkIHdoZW4gIml0ZW1zIiBpcyBub3QgYW4gYXJyYXkgb2Ygc2NoZW1hcycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcyhjeHQsIGl0ZW1zKTsKICAgICAgfQogICAgfTsKICAgIGZ1bmN0aW9uIHZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zKGN4dCwgaXRlbXMpIHsKICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgaWYgKHNjaGVtYTIgPT09IGZhbHNlKSB7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IGxlbjogaXRlbXMubGVuZ3RoIH0pOwogICAgICAgIGN4dC5wYXNzKCgwLCBjb2RlZ2VuXzEuXylgJHtsZW59IDw9ICR7aXRlbXMubGVuZ3RofWApOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzY2hlbWEyID09ICJvYmplY3QiICYmICEoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi52YXIoInZhbGlkIiwgKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPD0gJHtpdGVtcy5sZW5ndGh9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHZhbGlkYXRlSXRlbXModmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXModmFsaWQpIHsKICAgICAgICBnZW4uZm9yUmFuZ2UoImkiLCBpdGVtcy5sZW5ndGgsIGxlbiwgKGkpID0+IHsKICAgICAgICAgIGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkLCBkYXRhUHJvcDogaSwgZGF0YVByb3BUeXBlOiB1dGlsXzEuVHlwZS5OdW0gfSwgdmFsaWQpOwogICAgICAgICAgaWYgKCFpdC5hbGxFcnJvcnMpCiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlQWRkaXRpb25hbEl0ZW1zID0gdmFsaWRhdGVBZGRpdGlvbmFsSXRlbXM7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaXRlbXMuanMKdmFyIHJlcXVpcmVfaXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVR1cGxlID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImFycmF5IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuIHZhbGlkYXRlVHVwbGUoY3h0LCAiYWRkaXRpb25hbEl0ZW1zIiwgc2NoZW1hMik7CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVR1cGxlKGN4dCwgZXh0cmFJdGVtcywgc2NoQXJyID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgcGFyZW50U2NoZW1hLCBkYXRhLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICBjaGVja1N0cmljdFR1cGxlKHBhcmVudFNjaGVtYSk7CiAgICAgIGlmIChpdC5vcHRzLnVuZXZhbHVhdGVkICYmIHNjaEFyci5sZW5ndGggJiYgaXQuaXRlbXMgIT09IHRydWUpIHsKICAgICAgICBpdC5pdGVtcyA9IHV0aWxfMS5tZXJnZUV2YWx1YXRlZC5pdGVtcyhnZW4sIHNjaEFyci5sZW5ndGgsIGl0Lml0ZW1zKTsKICAgICAgfQogICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICBjb25zdCBsZW4gPSBnZW4uY29uc3QoImxlbiIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGhgKTsKICAgICAgc2NoQXJyLmZvckVhY2goKHNjaCwgaSkgPT4gewogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2xlbn0gPiAke2l9YCwgKCkgPT4gY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkLAogICAgICAgICAgc2NoZW1hUHJvcDogaSwKICAgICAgICAgIGRhdGFQcm9wOiBpCiAgICAgICAgfSwgdmFsaWQpKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICB9KTsKICAgICAgZnVuY3Rpb24gY2hlY2tTdHJpY3RUdXBsZShzY2gpIHsKICAgICAgICBjb25zdCB7IG9wdHMsIGVyclNjaGVtYVBhdGggfSA9IGl0OwogICAgICAgIGNvbnN0IGwgPSBzY2hBcnIubGVuZ3RoOwogICAgICAgIGNvbnN0IGZ1bGxUdXBsZSA9IGwgPT09IHNjaC5taW5JdGVtcyAmJiAobCA9PT0gc2NoLm1heEl0ZW1zIHx8IHNjaFtleHRyYUl0ZW1zXSA9PT0gZmFsc2UpOwogICAgICAgIGlmIChvcHRzLnN0cmljdFR1cGxlcyAmJiAhZnVsbFR1cGxlKSB7CiAgICAgICAgICBjb25zdCBtc2cgPSBgIiR7a2V5d29yZH0iIGlzICR7bH0tdHVwbGUsIGJ1dCBtaW5JdGVtcyBvciBtYXhJdGVtcy8ke2V4dHJhSXRlbXN9IGFyZSBub3Qgc3BlY2lmaWVkIG9yIGRpZmZlcmVudCBhdCBwYXRoICIke2VyclNjaGVtYVBhdGh9ImA7CiAgICAgICAgICAoMCwgdXRpbF8xLmNoZWNrU3RyaWN0TW9kZSkoaXQsIG1zZywgb3B0cy5zdHJpY3RUdXBsZXMpOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVUdXBsZSA9IHZhbGlkYXRlVHVwbGU7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJlZml4SXRlbXMuanMKdmFyIHJlcXVpcmVfcHJlZml4SXRlbXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3ByZWZpeEl0ZW1zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgaXRlbXNfMSA9IHJlcXVpcmVfaXRlbXMoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJwcmVmaXhJdGVtcyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsiYXJyYXkiXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICBjb2RlOiAoY3h0KSA9PiAoMCwgaXRlbXNfMS52YWxpZGF0ZVR1cGxlKShjeHQsICJpdGVtcyIpCiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcwp2YXIgcmVxdWlyZV9pdGVtczIwMjAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2l0ZW1zMjAyMC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBsZW4gfSB9KSA9PiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBOT1QgaGF2ZSBtb3JlIHRoYW4gJHtsZW59IGl0ZW1zYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbGVuIH0gfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7bGltaXQ6ICR7bGVufX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIml0ZW1zIiwKICAgICAgdHlwZTogImFycmF5IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBiZWZvcmU6ICJ1bmlxdWVJdGVtcyIsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgc2NoZW1hOiBzY2hlbWEyLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBwcmVmaXhJdGVtcyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGl0Lml0ZW1zID0gdHJ1ZTsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmIChwcmVmaXhJdGVtcykKICAgICAgICAgICgwLCBhZGRpdGlvbmFsSXRlbXNfMS52YWxpZGF0ZUFkZGl0aW9uYWxJdGVtcykoY3h0LCBwcmVmaXhJdGVtcyk7CiAgICAgICAgZWxzZQogICAgICAgICAgY3h0Lm9rKCgwLCBjb2RlXzEudmFsaWRhdGVBcnJheSkoY3h0KSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvY29udGFpbnMuanMKdmFyIHJlcXVpcmVfY29udGFpbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2NvbnRhaW5zLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBtaW4sIG1heCB9IH0pID0+IG1heCA9PT0gdm9pZCAwID8gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgY29udGFpbiBhdCBsZWFzdCAke21pbn0gdmFsaWQgaXRlbShzKWAgOiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7bWlufSBhbmQgbm8gbW9yZSB0aGFuICR7bWF4fSB2YWxpZCBpdGVtKHMpYCwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXM6IHsgbWluLCBtYXggfSB9KSA9PiBtYXggPT09IHZvaWQgMCA/ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn19YCA6ICgwLCBjb2RlZ2VuXzEuXylge21pbkNvbnRhaW5zOiAke21pbn0sIG1heENvbnRhaW5zOiAke21heH19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJjb250YWlucyIsCiAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgYmVmb3JlOiAidW5pcXVlSXRlbXMiLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGxldCBtaW47CiAgICAgICAgbGV0IG1heDsKICAgICAgICBjb25zdCB7IG1pbkNvbnRhaW5zLCBtYXhDb250YWlucyB9ID0gcGFyZW50U2NoZW1hOwogICAgICAgIGlmIChpdC5vcHRzLm5leHQpIHsKICAgICAgICAgIG1pbiA9IG1pbkNvbnRhaW5zID09PSB2b2lkIDAgPyAxIDogbWluQ29udGFpbnM7CiAgICAgICAgICBtYXggPSBtYXhDb250YWluczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWluID0gMTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbGVuID0gZ2VuLmNvbnN0KCJsZW4iLCAoMCwgY29kZWdlbl8xLl8pYCR7ZGF0YX0ubGVuZ3RoYCk7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IG1pbiwgbWF4IH0pOwogICAgICAgIGlmIChtYXggPT09IHZvaWQgMCAmJiBtaW4gPT09IDApIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPT0gMCB3aXRob3V0ICJtYXhDb250YWlucyI6ICJjb250YWlucyIga2V5d29yZCBpZ25vcmVkYCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChtYXggIT09IHZvaWQgMCAmJiBtaW4gPiBtYXgpIHsKICAgICAgICAgICgwLCB1dGlsXzEuY2hlY2tTdHJpY3RNb2RlKShpdCwgYCJtaW5Db250YWlucyIgPiAibWF4Q29udGFpbnMiIGlzIGFsd2F5cyBpbnZhbGlkYCk7CiAgICAgICAgICBjeHQuZmFpbCgpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICBsZXQgY29uZCA9ICgwLCBjb2RlZ2VuXzEuXylgJHtsZW59ID49ICR7bWlufWA7CiAgICAgICAgICBpZiAobWF4ICE9PSB2b2lkIDApCiAgICAgICAgICAgIGNvbmQgPSAoMCwgY29kZWdlbl8xLl8pYCR7Y29uZH0gJiYgJHtsZW59IDw9ICR7bWF4fWA7CiAgICAgICAgICBjeHQucGFzcyhjb25kKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaXQuaXRlbXMgPSB0cnVlOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKG1heCA9PT0gdm9pZCAwICYmIG1pbiA9PT0gMSkgewogICAgICAgICAgdmFsaWRhdGVJdGVtcyh2YWxpZCwgKCkgPT4gZ2VuLmlmKHZhbGlkLCAoKSA9PiBnZW4uYnJlYWsoKSkpOwogICAgICAgIH0gZWxzZSBpZiAobWluID09PSAwKSB7CiAgICAgICAgICBnZW4ubGV0KHZhbGlkLCB0cnVlKTsKICAgICAgICAgIGlmIChtYXggIT09IHZvaWQgMCkKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfS5sZW5ndGggPiAwYCwgdmFsaWRhdGVJdGVtc1dpdGhDb3VudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5sZXQodmFsaWQsIGZhbHNlKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKTsKICAgICAgICB9CiAgICAgICAgY3h0LnJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXNXaXRoQ291bnQoKSB7CiAgICAgICAgICBjb25zdCBzY2hWYWxpZCA9IGdlbi5uYW1lKCJfdmFsaWQiKTsKICAgICAgICAgIGNvbnN0IGNvdW50ID0gZ2VuLmxldCgiY291bnQiLCAwKTsKICAgICAgICAgIHZhbGlkYXRlSXRlbXMoc2NoVmFsaWQsICgpID0+IGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gY2hlY2tMaW1pdHMoY291bnQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlSXRlbXMoX3ZhbGlkLCBibG9jaykgewogICAgICAgICAgZ2VuLmZvclJhbmdlKCJpIiwgMCwgbGVuLCAoaSkgPT4gewogICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICBrZXl3b3JkOiAiY29udGFpbnMiLAogICAgICAgICAgICAgIGRhdGFQcm9wOiBpLAogICAgICAgICAgICAgIGRhdGFQcm9wVHlwZTogdXRpbF8xLlR5cGUuTnVtLAogICAgICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUKICAgICAgICAgICAgfSwgX3ZhbGlkKTsKICAgICAgICAgICAgYmxvY2soKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja0xpbWl0cyhjb3VudCkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSsrYCk7CiAgICAgICAgICBpZiAobWF4ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgJHtjb3VudH0gPj0gJHttaW59YCwgKCkgPT4gZ2VuLmFzc2lnbih2YWxpZCwgdHJ1ZSkuYnJlYWsoKSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWAke2NvdW50fSA+ICR7bWF4fWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIGZhbHNlKS5icmVhaygpKTsKICAgICAgICAgICAgaWYgKG1pbiA9PT0gMSkKICAgICAgICAgICAgICBnZW4uYXNzaWduKHZhbGlkLCB0cnVlKTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7Y291bnR9ID49ICR7bWlufWAsICgpID0+IGdlbi5hc3NpZ24odmFsaWQsIHRydWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzCnZhciByZXF1aXJlX2RlcGVuZGVuY2llcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvZGVwZW5kZW5jaWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52YWxpZGF0ZVNjaGVtYURlcHMgPSBleHBvcnRzMi52YWxpZGF0ZVByb3BlcnR5RGVwcyA9IGV4cG9ydHMyLmVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIGV4cG9ydHMyLmVycm9yID0gewogICAgICBtZXNzYWdlOiAoeyBwYXJhbXM6IHsgcHJvcGVydHksIGRlcHNDb3VudCwgZGVwcyB9IH0pID0+IHsKICAgICAgICBjb25zdCBwcm9wZXJ0eV9pZXMgPSBkZXBzQ291bnQgPT09IDEgPyAicHJvcGVydHkiIDogInByb3BlcnRpZXMiOwogICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLnN0cilgbXVzdCBoYXZlICR7cHJvcGVydHlfaWVzfSAke2RlcHN9IHdoZW4gcHJvcGVydHkgJHtwcm9wZXJ0eX0gaXMgcHJlc2VudGA7CiAgICAgIH0sCiAgICAgIHBhcmFtczogKHsgcGFyYW1zOiB7IHByb3BlcnR5LCBkZXBzQ291bnQsIGRlcHMsIG1pc3NpbmdQcm9wZXJ0eSB9IH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Byb3BlcnR5OiAke3Byb3BlcnR5fSwKICAgIG1pc3NpbmdQcm9wZXJ0eTogJHttaXNzaW5nUHJvcGVydHl9LAogICAgZGVwc0NvdW50OiAke2RlcHNDb3VudH0sCiAgICBkZXBzOiAke2RlcHN9fWAKICAgICAgLy8gVE9ETyBjaGFuZ2UgdG8gcmVmZXJlbmNlCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogImRlcGVuZGVuY2llcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3I6IGV4cG9ydHMyLmVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IFtwcm9wRGVwcywgc2NoRGVwc10gPSBzcGxpdERlcGVuZGVuY2llcyhjeHQpOwogICAgICAgIHZhbGlkYXRlUHJvcGVydHlEZXBzKGN4dCwgcHJvcERlcHMpOwogICAgICAgIHZhbGlkYXRlU2NoZW1hRGVwcyhjeHQsIHNjaERlcHMpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gc3BsaXREZXBlbmRlbmNpZXMoeyBzY2hlbWE6IHNjaGVtYTIgfSkgewogICAgICBjb25zdCBwcm9wZXJ0eURlcHMgPSB7fTsKICAgICAgY29uc3Qgc2NoZW1hRGVwcyA9IHt9OwogICAgICBmb3IgKGNvbnN0IGtleSBpbiBzY2hlbWEyKSB7CiAgICAgICAgaWYgKGtleSA9PT0gIl9fcHJvdG9fXyIpCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBkZXBzID0gQXJyYXkuaXNBcnJheShzY2hlbWEyW2tleV0pID8gcHJvcGVydHlEZXBzIDogc2NoZW1hRGVwczsKICAgICAgICBkZXBzW2tleV0gPSBzY2hlbWEyW2tleV07CiAgICAgIH0KICAgICAgcmV0dXJuIFtwcm9wZXJ0eURlcHMsIHNjaGVtYURlcHNdOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0eURlcHMoY3h0LCBwcm9wZXJ0eURlcHMgPSBjeHQuc2NoZW1hKSB7CiAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICBpZiAoT2JqZWN0LmtleXMocHJvcGVydHlEZXBzKS5sZW5ndGggPT09IDApCiAgICAgICAgcmV0dXJuOwogICAgICBjb25zdCBtaXNzaW5nID0gZ2VuLmxldCgibWlzc2luZyIpOwogICAgICBmb3IgKGNvbnN0IHByb3AgaW4gcHJvcGVydHlEZXBzKSB7CiAgICAgICAgY29uc3QgZGVwcyA9IHByb3BlcnR5RGVwc1twcm9wXTsKICAgICAgICBpZiAoZGVwcy5sZW5ndGggPT09IDApCiAgICAgICAgICBjb250aW51ZTsKICAgICAgICBjb25zdCBoYXNQcm9wZXJ0eSA9ICgwLCBjb2RlXzEucHJvcGVydHlJbkRhdGEpKGdlbiwgZGF0YSwgcHJvcCwgaXQub3B0cy5vd25Qcm9wZXJ0aWVzKTsKICAgICAgICBjeHQuc2V0UGFyYW1zKHsKICAgICAgICAgIHByb3BlcnR5OiBwcm9wLAogICAgICAgICAgZGVwc0NvdW50OiBkZXBzLmxlbmd0aCwKICAgICAgICAgIGRlcHM6IGRlcHMuam9pbigiLCAiKQogICAgICAgIH0pOwogICAgICAgIGlmIChpdC5hbGxFcnJvcnMpIHsKICAgICAgICAgIGdlbi5pZihoYXNQcm9wZXJ0eSwgKCkgPT4gewogICAgICAgICAgICBmb3IgKGNvbnN0IGRlcFByb3Agb2YgZGVwcykgewogICAgICAgICAgICAgICgwLCBjb2RlXzEuY2hlY2tSZXBvcnRNaXNzaW5nUHJvcCkoY3h0LCBkZXBQcm9wKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7aGFzUHJvcGVydHl9ICYmICgkeygwLCBjb2RlXzEuY2hlY2tNaXNzaW5nUHJvcCkoY3h0LCBkZXBzLCBtaXNzaW5nKX0pYCk7CiAgICAgICAgICAoMCwgY29kZV8xLnJlcG9ydE1pc3NpbmdQcm9wKShjeHQsIG1pc3NpbmcpOwogICAgICAgICAgZ2VuLmVsc2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLnZhbGlkYXRlUHJvcGVydHlEZXBzID0gdmFsaWRhdGVQcm9wZXJ0eURlcHM7CiAgICBmdW5jdGlvbiB2YWxpZGF0ZVNjaGVtYURlcHMoY3h0LCBzY2hlbWFEZXBzID0gY3h0LnNjaGVtYSkgewogICAgICBjb25zdCB7IGdlbiwgZGF0YSwga2V5d29yZCwgaXQgfSA9IGN4dDsKICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgZm9yIChjb25zdCBwcm9wIGluIHNjaGVtYURlcHMpIHsKICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYURlcHNbcHJvcF0pKQogICAgICAgICAgY29udGludWU7CiAgICAgICAgZ2VuLmlmKAogICAgICAgICAgKDAsIGNvZGVfMS5wcm9wZXJ0eUluRGF0YSkoZ2VuLCBkYXRhLCBwcm9wLCBpdC5vcHRzLm93blByb3BlcnRpZXMpLAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZCwgc2NoZW1hUHJvcDogcHJvcCB9LCB2YWxpZCk7CiAgICAgICAgICAgIGN4dC5tZXJnZVZhbGlkRXZhbHVhdGVkKHNjaEN4dCwgdmFsaWQpOwogICAgICAgICAgfSwKICAgICAgICAgICgpID0+IGdlbi52YXIodmFsaWQsIHRydWUpCiAgICAgICAgICAvLyBUT0RPIHZhcgogICAgICAgICk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfQogICAgZXhwb3J0czIudmFsaWRhdGVTY2hlbWFEZXBzID0gdmFsaWRhdGVTY2hlbWFEZXBzOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnR5TmFtZXMuanMKdmFyIHJlcXVpcmVfcHJvcGVydHlOYW1lcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcHJvcGVydHlOYW1lcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGVycm9yID0gewogICAgICBtZXNzYWdlOiAicHJvcGVydHkgbmFtZSBtdXN0IGJlIHZhbGlkIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7cHJvcGVydHlOYW1lOiAke3BhcmFtcy5wcm9wZXJ0eU5hbWV9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAicHJvcGVydHlOYW1lcyIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiBbIm9iamVjdCIsICJib29sZWFuIl0sCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCgwLCB1dGlsXzEuYWx3YXlzVmFsaWRTY2hlbWEpKGl0LCBzY2hlbWEyKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIGdlbi5mb3JJbigia2V5IiwgZGF0YSwgKGtleSkgPT4gewogICAgICAgICAgY3h0LnNldFBhcmFtcyh7IHByb3BlcnR5TmFtZToga2V5IH0pOwogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0eU5hbWVzIiwKICAgICAgICAgICAgZGF0YToga2V5LAogICAgICAgICAgICBkYXRhVHlwZXM6IFsic3RyaW5nIl0sCiAgICAgICAgICAgIHByb3BlcnR5TmFtZToga2V5LAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICB9LCB2YWxpZCk7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gewogICAgICAgICAgICBjeHQuZXJyb3IodHJ1ZSk7CiAgICAgICAgICAgIGlmICghaXQuYWxsRXJyb3JzKQogICAgICAgICAgICAgIGdlbi5icmVhaygpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY3h0Lm9rKHZhbGlkKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hZGRpdGlvbmFsUHJvcGVydGllcy5qcwp2YXIgcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWRkaXRpb25hbFByb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlXzEgPSByZXF1aXJlX2NvZGUyKCk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgbmFtZXNfMSA9IHJlcXVpcmVfbmFtZXMoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogIm11c3QgTk9UIGhhdmUgYWRkaXRpb25hbCBwcm9wZXJ0aWVzIiwKICAgICAgcGFyYW1zOiAoeyBwYXJhbXMgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7YWRkaXRpb25hbFByb3BlcnR5OiAke3BhcmFtcy5hZGRpdGlvbmFsUHJvcGVydHl9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICB0eXBlOiBbIm9iamVjdCJdLAogICAgICBzY2hlbWFUeXBlOiBbImJvb2xlYW4iLCAib2JqZWN0Il0sCiAgICAgIGFsbG93VW5kZWZpbmVkOiB0cnVlLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBlcnJzQ291bnQsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFlcnJzQ291bnQpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGNvbnN0IHsgYWxsRXJyb3JzLCBvcHRzIH0gPSBpdDsKICAgICAgICBpdC5wcm9wcyA9IHRydWU7CiAgICAgICAgaWYgKG9wdHMucmVtb3ZlQWRkaXRpb25hbCAhPT0gImFsbCIgJiYgKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGNvbnN0IHByb3BzID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShwYXJlbnRTY2hlbWEucHJvcGVydGllcyk7CiAgICAgICAgY29uc3QgcGF0UHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHBhcmVudFNjaGVtYS5wYXR0ZXJuUHJvcGVydGllcyk7CiAgICAgICAgY2hlY2tBZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgICAgIGN4dC5vaygoMCwgY29kZWdlbl8xLl8pYCR7ZXJyc0NvdW50fSA9PT0gJHtuYW1lc18xLmRlZmF1bHQuZXJyb3JzfWApOwogICAgICAgIGZ1bmN0aW9uIGNoZWNrQWRkaXRpb25hbFByb3BlcnRpZXMoKSB7CiAgICAgICAgICBnZW4uZm9ySW4oImtleSIsIGRhdGEsIChrZXkpID0+IHsKICAgICAgICAgICAgaWYgKCFwcm9wcy5sZW5ndGggJiYgIXBhdFByb3BzLmxlbmd0aCkKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydHlDb2RlKGtleSk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBnZW4uaWYoaXNBZGRpdGlvbmFsKGtleSksICgpID0+IGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gaXNBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgbGV0IGRlZmluZWRQcm9wOwogICAgICAgICAgaWYgKHByb3BzLmxlbmd0aCA+IDgpIHsKICAgICAgICAgICAgY29uc3QgcHJvcHNTY2hlbWEgPSAoMCwgdXRpbF8xLnNjaGVtYVJlZk9yVmFsKShpdCwgcGFyZW50U2NoZW1hLnByb3BlcnRpZXMsICJwcm9wZXJ0aWVzIik7CiAgICAgICAgICAgIGRlZmluZWRQcm9wID0gKDAsIGNvZGVfMS5pc093blByb3BlcnR5KShnZW4sIHByb3BzU2NoZW1hLCBrZXkpOwogICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5sZW5ndGgpIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSAoMCwgY29kZWdlbl8xLm9yKSguLi5wcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl9ID09PSAke3B9YCkpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZGVmaW5lZFByb3AgPSBjb2RlZ2VuXzEubmlsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHBhdFByb3BzLmxlbmd0aCkgewogICAgICAgICAgICBkZWZpbmVkUHJvcCA9ICgwLCBjb2RlZ2VuXzEub3IpKGRlZmluZWRQcm9wLCAuLi5wYXRQcm9wcy5tYXAoKHApID0+ICgwLCBjb2RlZ2VuXzEuXylgJHsoMCwgY29kZV8xLnVzZVBhdHRlcm4pKGN4dCwgcCl9LnRlc3QoJHtrZXl9KWApKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLm5vdCkoZGVmaW5lZFByb3ApOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBkZWxldGVBZGRpdGlvbmFsKGtleSkgewogICAgICAgICAgZ2VuLmNvZGUoKDAsIGNvZGVnZW5fMS5fKWBkZWxldGUgJHtkYXRhfVske2tleX1dYCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFkZGl0aW9uYWxQcm9wZXJ0eUNvZGUoa2V5KSB7CiAgICAgICAgICBpZiAob3B0cy5yZW1vdmVBZGRpdGlvbmFsID09PSAiYWxsIiB8fCBvcHRzLnJlbW92ZUFkZGl0aW9uYWwgJiYgc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGFkZGl0aW9uYWxQcm9wZXJ0eToga2V5IH0pOwogICAgICAgICAgICBjeHQuZXJyb3IoKTsKICAgICAgICAgICAgaWYgKCFhbGxFcnJvcnMpCiAgICAgICAgICAgICAgZ2VuLmJyZWFrKCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PSAib2JqZWN0IiAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpKSB7CiAgICAgICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICAgIGlmIChvcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJmYWlsaW5nIikgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkLCBmYWxzZSk7CiAgICAgICAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEubm90KSh2YWxpZCksICgpID0+IHsKICAgICAgICAgICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgICAgICAgICAgZGVsZXRlQWRkaXRpb25hbChrZXkpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGFwcGx5QWRkaXRpb25hbFNjaGVtYShrZXksIHZhbGlkKTsKICAgICAgICAgICAgICBpZiAoIWFsbEVycm9ycykKICAgICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkodmFsaWQpLCAoKSA9PiBnZW4uYnJlYWsoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlBZGRpdGlvbmFsU2NoZW1hKGtleSwgdmFsaWQsIGVycm9ycykgewogICAgICAgICAgY29uc3Qgc3Vic2NoZW1hID0gewogICAgICAgICAgICBrZXl3b3JkOiAiYWRkaXRpb25hbFByb3BlcnRpZXMiLAogICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMS5UeXBlLlN0cgogICAgICAgICAgfTsKICAgICAgICAgIGlmIChlcnJvcnMgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3Vic2NoZW1hLCB7CiAgICAgICAgICAgICAgY29tcG9zaXRlUnVsZTogdHJ1ZSwKICAgICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICAgIGFsbEVycm9yczogZmFsc2UKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjeHQuc3Vic2NoZW1hKHN1YnNjaGVtYSwgdmFsaWQpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9wcm9wZXJ0aWVzLmpzCnZhciByZXF1aXJlX3Byb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3Byb3BlcnRpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInByb3BlcnRpZXMiLAogICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgc2NoZW1hVHlwZTogIm9iamVjdCIsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBkYXRhLCBpdCB9ID0gY3h0OwogICAgICAgIGlmIChpdC5vcHRzLnJlbW92ZUFkZGl0aW9uYWwgPT09ICJhbGwiICYmIHBhcmVudFNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllcyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQuY29kZShuZXcgdmFsaWRhdGVfMS5LZXl3b3JkQ3h0KGl0LCBhZGRpdGlvbmFsUHJvcGVydGllc18xLmRlZmF1bHQsICJhZGRpdGlvbmFsUHJvcGVydGllcyIpKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgYWxsUHJvcHMgPSAoMCwgY29kZV8xLmFsbFNjaGVtYVByb3BlcnRpZXMpKHNjaGVtYTIpOwogICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBhbGxQcm9wcykgewogICAgICAgICAgaXQuZGVmaW5lZFByb3BlcnRpZXMuYWRkKHByb3ApOwogICAgICAgIH0KICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBhbGxQcm9wcy5sZW5ndGggJiYgaXQucHJvcHMgIT09IHRydWUpIHsKICAgICAgICAgIGl0LnByb3BzID0gdXRpbF8xLm1lcmdlRXZhbHVhdGVkLnByb3BzKGdlbiwgKDAsIHV0aWxfMS50b0hhc2gpKGFsbFByb3BzKSwgaXQucHJvcHMpOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gYWxsUHJvcHMuZmlsdGVyKChwKSA9PiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTJbcF0pKTsKICAgICAgICBpZiAocHJvcGVydGllcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubmFtZSgidmFsaWQiKTsKICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcGVydGllcykgewogICAgICAgICAgaWYgKGhhc0RlZmF1bHQocHJvcCkpIHsKICAgICAgICAgICAgYXBwbHlQcm9wZXJ0eVNjaGVtYShwcm9wKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZV8xLnByb3BlcnR5SW5EYXRhKShnZW4sIGRhdGEsIHByb3AsIGl0Lm9wdHMub3duUHJvcGVydGllcykpOwogICAgICAgICAgICBhcHBseVByb3BlcnR5U2NoZW1hKHByb3ApOwogICAgICAgICAgICBpZiAoIWl0LmFsbEVycm9ycykKICAgICAgICAgICAgICBnZW4uZWxzZSgpLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgIGdlbi5lbmRJZigpOwogICAgICAgICAgfQogICAgICAgICAgY3h0Lml0LmRlZmluZWRQcm9wZXJ0aWVzLmFkZChwcm9wKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhc0RlZmF1bHQocHJvcCkgewogICAgICAgICAgcmV0dXJuIGl0Lm9wdHMudXNlRGVmYXVsdHMgJiYgIWl0LmNvbXBvc2l0ZVJ1bGUgJiYgc2NoZW1hMltwcm9wXS5kZWZhdWx0ICE9PSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGFwcGx5UHJvcGVydHlTY2hlbWEocHJvcCkgewogICAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICAgIGtleXdvcmQ6ICJwcm9wZXJ0aWVzIiwKICAgICAgICAgICAgc2NoZW1hUHJvcDogcHJvcCwKICAgICAgICAgICAgZGF0YVByb3A6IHByb3AKICAgICAgICAgIH0sIHZhbGlkKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvcGF0dGVyblByb3BlcnRpZXMuanMKdmFyIHJlcXVpcmVfcGF0dGVyblByb3BlcnRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3BhdHRlcm5Qcm9wZXJ0aWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZV8xID0gcmVxdWlyZV9jb2RlMigpOwogICAgdmFyIGNvZGVnZW5fMSA9IHJlcXVpcmVfY29kZWdlbigpOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIHV0aWxfMiA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgIHNjaGVtYVR5cGU6ICJvYmplY3QiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGRhdGEsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBjb25zdCB7IG9wdHMgfSA9IGl0OwogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gKDAsIGNvZGVfMS5hbGxTY2hlbWFQcm9wZXJ0aWVzKShzY2hlbWEyKTsKICAgICAgICBjb25zdCBhbHdheXNWYWxpZFBhdHRlcm5zID0gcGF0dGVybnMuZmlsdGVyKChwKSA9PiAoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMltwXSkpOwogICAgICAgIGlmIChwYXR0ZXJucy5sZW5ndGggPT09IDAgfHwgYWx3YXlzVmFsaWRQYXR0ZXJucy5sZW5ndGggPT09IHBhdHRlcm5zLmxlbmd0aCAmJiAoIWl0Lm9wdHMudW5ldmFsdWF0ZWQgfHwgaXQucHJvcHMgPT09IHRydWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNoZWNrUHJvcGVydGllcyA9IG9wdHMuc3RyaWN0U2NoZW1hICYmICFvcHRzLmFsbG93TWF0Y2hpbmdQcm9wZXJ0aWVzICYmIHBhcmVudFNjaGVtYS5wcm9wZXJ0aWVzOwogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgaWYgKGl0LnByb3BzICE9PSB0cnVlICYmICEoaXQucHJvcHMgaW5zdGFuY2VvZiBjb2RlZ2VuXzEuTmFtZSkpIHsKICAgICAgICAgIGl0LnByb3BzID0gKDAsIHV0aWxfMi5ldmFsdWF0ZWRQcm9wc1RvTmFtZSkoZ2VuLCBpdC5wcm9wcyk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHsgcHJvcHMgfSA9IGl0OwogICAgICAgIHZhbGlkYXRlUGF0dGVyblByb3BlcnRpZXMoKTsKICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZVBhdHRlcm5Qcm9wZXJ0aWVzKCkgewogICAgICAgICAgZm9yIChjb25zdCBwYXQgb2YgcGF0dGVybnMpIHsKICAgICAgICAgICAgaWYgKGNoZWNrUHJvcGVydGllcykKICAgICAgICAgICAgICBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpOwogICAgICAgICAgICBpZiAoaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuLnZhcih2YWxpZCwgdHJ1ZSk7CiAgICAgICAgICAgICAgdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCk7CiAgICAgICAgICAgICAgZ2VuLmlmKHZhbGlkKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBjaGVja01hdGNoaW5nUHJvcGVydGllcyhwYXQpIHsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiBjaGVja1Byb3BlcnRpZXMpIHsKICAgICAgICAgICAgaWYgKG5ldyBSZWdFeHAocGF0KS50ZXN0KHByb3ApKSB7CiAgICAgICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgcHJvcGVydHkgJHtwcm9wfSBtYXRjaGVzIHBhdHRlcm4gJHtwYXR9ICh1c2UgYWxsb3dNYXRjaGluZ1Byb3BlcnRpZXMpYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQcm9wZXJ0aWVzKHBhdCkgewogICAgICAgICAgZ2VuLmZvckluKCJrZXkiLCBkYXRhLCAoa2V5KSA9PiB7CiAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7KDAsIGNvZGVfMS51c2VQYXR0ZXJuKShjeHQsIHBhdCl9LnRlc3QoJHtrZXl9KWAsICgpID0+IHsKICAgICAgICAgICAgICBjb25zdCBhbHdheXNWYWxpZCA9IGFsd2F5c1ZhbGlkUGF0dGVybnMuaW5jbHVkZXMocGF0KTsKICAgICAgICAgICAgICBpZiAoIWFsd2F5c1ZhbGlkKSB7CiAgICAgICAgICAgICAgICBjeHQuc3Vic2NoZW1hKHsKICAgICAgICAgICAgICAgICAga2V5d29yZDogInBhdHRlcm5Qcm9wZXJ0aWVzIiwKICAgICAgICAgICAgICAgICAgc2NoZW1hUHJvcDogcGF0LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcDoga2V5LAogICAgICAgICAgICAgICAgICBkYXRhUHJvcFR5cGU6IHV0aWxfMi5UeXBlLlN0cgogICAgICAgICAgICAgICAgfSwgdmFsaWQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoaXQub3B0cy51bmV2YWx1YXRlZCAmJiBwcm9wcyAhPT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgZ2VuLmFzc2lnbigoMCwgY29kZWdlbl8xLl8pYCR7cHJvcHN9WyR7a2V5fV1gLCB0cnVlKTsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhbHdheXNWYWxpZCAmJiAhaXQuYWxsRXJyb3JzKSB7CiAgICAgICAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5ub3QpKHZhbGlkKSwgKCkgPT4gZ2VuLmJyZWFrKCkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzCnZhciByZXF1aXJlX25vdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivbm90LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICB0cmFja0Vycm9yczogdHJ1ZSwKICAgICAgY29kZShjeHQpIHsKICAgICAgICBjb25zdCB7IGdlbiwgc2NoZW1hOiBzY2hlbWEyLCBpdCB9ID0gY3h0OwogICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoZW1hMikpIHsKICAgICAgICAgIGN4dC5mYWlsKCk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgY3h0LnN1YnNjaGVtYSh7CiAgICAgICAgICBrZXl3b3JkOiAibm90IiwKICAgICAgICAgIGNvbXBvc2l0ZVJ1bGU6IHRydWUsCiAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgYWxsRXJyb3JzOiBmYWxzZQogICAgICAgIH0sIHZhbGlkKTsKICAgICAgICBjeHQuZmFpbFJlc3VsdCh2YWxpZCwgKCkgPT4gY3h0LnJlc2V0KCksICgpID0+IGN4dC5lcnJvcigpKTsKICAgICAgfSwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgTk9UIGJlIHZhbGlkIiB9CiAgICB9OwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FueU9mLmpzCnZhciByZXF1aXJlX2FueU9mID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9hbnlPZi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIGNvZGVfMSA9IHJlcXVpcmVfY29kZTIoKTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJhbnlPZiIsCiAgICAgIHNjaGVtYVR5cGU6ICJhcnJheSIsCiAgICAgIHRyYWNrRXJyb3JzOiB0cnVlLAogICAgICBjb2RlOiBjb2RlXzEudmFsaWRhdGVVbmlvbiwKICAgICAgZXJyb3I6IHsgbWVzc2FnZTogIm11c3QgbWF0Y2ggYSBzY2hlbWEgaW4gYW55T2YiIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3Ivb25lT2YuanMKdmFyIHJlcXVpcmVfb25lT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL29uZU9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICJtdXN0IG1hdGNoIGV4YWN0bHkgb25lIHNjaGVtYSBpbiBvbmVPZiIsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge3Bhc3NpbmdTY2hlbWFzOiAke3BhcmFtcy5wYXNzaW5nfX1gCiAgICB9OwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgc2NoZW1hVHlwZTogImFycmF5IiwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQgfSA9IGN4dDsKICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoc2NoZW1hMikpCiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFqdiBpbXBsZW1lbnRhdGlvbiBlcnJvciIpOwogICAgICAgIGlmIChpdC5vcHRzLmRpc2NyaW1pbmF0b3IgJiYgcGFyZW50U2NoZW1hLmRpc2NyaW1pbmF0b3IpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3Qgc2NoQXJyID0gc2NoZW1hMjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgZmFsc2UpOwogICAgICAgIGNvbnN0IHBhc3NpbmcgPSBnZW4ubGV0KCJwYXNzaW5nIiwgbnVsbCk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgY3h0LnNldFBhcmFtcyh7IHBhc3NpbmcgfSk7CiAgICAgICAgZ2VuLmJsb2NrKHZhbGlkYXRlT25lT2YpOwogICAgICAgIGN4dC5yZXN1bHQodmFsaWQsICgpID0+IGN4dC5yZXNldCgpLCAoKSA9PiBjeHQuZXJyb3IodHJ1ZSkpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlT25lT2YoKSB7CiAgICAgICAgICBzY2hBcnIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICAgIGxldCBzY2hDeHQ7CiAgICAgICAgICAgIGlmICgoMCwgdXRpbF8xLmFsd2F5c1ZhbGlkU2NoZW1hKShpdCwgc2NoKSkgewogICAgICAgICAgICAgIGdlbi52YXIoc2NoVmFsaWQsIHRydWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICAgICAga2V5d29yZDogIm9uZU9mIiwKICAgICAgICAgICAgICAgIHNjaGVtYVByb3A6IGksCiAgICAgICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlCiAgICAgICAgICAgICAgfSwgc2NoVmFsaWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLl8pYCR7c2NoVmFsaWR9ICYmICR7dmFsaWR9YCkuYXNzaWduKHZhbGlkLCBmYWxzZSkuYXNzaWduKHBhc3NpbmcsICgwLCBjb2RlZ2VuXzEuXylgWyR7cGFzc2luZ30sICR7aX1dYCkuZWxzZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgKCkgPT4gewogICAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIHRydWUpOwogICAgICAgICAgICAgIGdlbi5hc3NpZ24ocGFzc2luZywgaSk7CiAgICAgICAgICAgICAgaWYgKHNjaEN4dCkKICAgICAgICAgICAgICAgIGN4dC5tZXJnZUV2YWx1YXRlZChzY2hDeHQsIGNvZGVnZW5fMS5OYW1lKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvYWxsT2YuanMKdmFyIHJlcXVpcmVfYWxsT2YgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL2FsbE9mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiYWxsT2YiLAogICAgICBzY2hlbWFUeXBlOiAiYXJyYXkiLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBzY2hlbWE6IHNjaGVtYTIsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHNjaGVtYTIpKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJhanYgaW1wbGVtZW50YXRpb24gZXJyb3IiKTsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5uYW1lKCJ2YWxpZCIpOwogICAgICAgIHNjaGVtYTIuZm9yRWFjaCgoc2NoLCBpKSA9PiB7CiAgICAgICAgICBpZiAoKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaCkpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkOiAiYWxsT2YiLCBzY2hlbWFQcm9wOiBpIH0sIHZhbGlkKTsKICAgICAgICAgIGN4dC5vayh2YWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci9pZi5qcwp2YXIgcmVxdWlyZV9pZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaWYuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciB1dGlsXzEgPSByZXF1aXJlX3V0aWwoKTsKICAgIHZhciBlcnJvciA9IHsKICAgICAgbWVzc2FnZTogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuc3RyKWBtdXN0IG1hdGNoICIke3BhcmFtcy5pZkNsYXVzZX0iIHNjaGVtYWAsCiAgICAgIHBhcmFtczogKHsgcGFyYW1zIH0pID0+ICgwLCBjb2RlZ2VuXzEuXylge2ZhaWxpbmdLZXl3b3JkOiAke3BhcmFtcy5pZkNsYXVzZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJpZiIsCiAgICAgIHNjaGVtYVR5cGU6IFsib2JqZWN0IiwgImJvb2xlYW4iXSwKICAgICAgdHJhY2tFcnJvcnM6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBwYXJlbnRTY2hlbWEsIGl0IH0gPSBjeHQ7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS50aGVuID09PSB2b2lkIDAgJiYgcGFyZW50U2NoZW1hLmVsc2UgPT09IHZvaWQgMCkgewogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCAnImlmIiB3aXRob3V0ICJ0aGVuIiBhbmQgImVsc2UiIGlzIGlnbm9yZWQnKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaGFzVGhlbiA9IGhhc1NjaGVtYShpdCwgInRoZW4iKTsKICAgICAgICBjb25zdCBoYXNFbHNlID0gaGFzU2NoZW1hKGl0LCAiZWxzZSIpOwogICAgICAgIGlmICghaGFzVGhlbiAmJiAhaGFzRWxzZSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBjb25zdCB2YWxpZCA9IGdlbi5sZXQoInZhbGlkIiwgdHJ1ZSk7CiAgICAgICAgY29uc3Qgc2NoVmFsaWQgPSBnZW4ubmFtZSgiX3ZhbGlkIik7CiAgICAgICAgdmFsaWRhdGVJZigpOwogICAgICAgIGN4dC5yZXNldCgpOwogICAgICAgIGlmIChoYXNUaGVuICYmIGhhc0Vsc2UpIHsKICAgICAgICAgIGNvbnN0IGlmQ2xhdXNlID0gZ2VuLmxldCgiaWZDbGF1c2UiKTsKICAgICAgICAgIGN4dC5zZXRQYXJhbXMoeyBpZkNsYXVzZSB9KTsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iLCBpZkNsYXVzZSksIHZhbGlkYXRlQ2xhdXNlKCJlbHNlIiwgaWZDbGF1c2UpKTsKICAgICAgICB9IGVsc2UgaWYgKGhhc1RoZW4pIHsKICAgICAgICAgIGdlbi5pZihzY2hWYWxpZCwgdmFsaWRhdGVDbGF1c2UoInRoZW4iKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGdlbi5pZigoMCwgY29kZWdlbl8xLm5vdCkoc2NoVmFsaWQpLCB2YWxpZGF0ZUNsYXVzZSgiZWxzZSIpKTsKICAgICAgICB9CiAgICAgICAgY3h0LnBhc3ModmFsaWQsICgpID0+IGN4dC5lcnJvcih0cnVlKSk7CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVJZigpIHsKICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoewogICAgICAgICAgICBrZXl3b3JkOiAiaWYiLAogICAgICAgICAgICBjb21wb3NpdGVSdWxlOiB0cnVlLAogICAgICAgICAgICBjcmVhdGVFcnJvcnM6IGZhbHNlLAogICAgICAgICAgICBhbGxFcnJvcnM6IGZhbHNlCiAgICAgICAgICB9LCBzY2hWYWxpZCk7CiAgICAgICAgICBjeHQubWVyZ2VFdmFsdWF0ZWQoc2NoQ3h0KTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVDbGF1c2Uoa2V5d29yZCwgaWZDbGF1c2UpIHsKICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNjaEN4dCA9IGN4dC5zdWJzY2hlbWEoeyBrZXl3b3JkIH0sIHNjaFZhbGlkKTsKICAgICAgICAgICAgZ2VuLmFzc2lnbih2YWxpZCwgc2NoVmFsaWQpOwogICAgICAgICAgICBjeHQubWVyZ2VWYWxpZEV2YWx1YXRlZChzY2hDeHQsIHZhbGlkKTsKICAgICAgICAgICAgaWYgKGlmQ2xhdXNlKQogICAgICAgICAgICAgIGdlbi5hc3NpZ24oaWZDbGF1c2UsICgwLCBjb2RlZ2VuXzEuXylgJHtrZXl3b3JkfWApOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgY3h0LnNldFBhcmFtcyh7IGlmQ2xhdXNlOiBrZXl3b3JkIH0pOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBoYXNTY2hlbWEoaXQsIGtleXdvcmQpIHsKICAgICAgY29uc3Qgc2NoZW1hMiA9IGl0LnNjaGVtYVtrZXl3b3JkXTsKICAgICAgcmV0dXJuIHNjaGVtYTIgIT09IHZvaWQgMCAmJiAhKDAsIHV0aWxfMS5hbHdheXNWYWxpZFNjaGVtYSkoaXQsIHNjaGVtYTIpOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGRlZjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9hcHBsaWNhdG9yL3RoZW5FbHNlLmpzCnZhciByZXF1aXJlX3RoZW5FbHNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvYXBwbGljYXRvci90aGVuRWxzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgdmFyIHV0aWxfMSA9IHJlcXVpcmVfdXRpbCgpOwogICAgdmFyIGRlZiA9IHsKICAgICAga2V5d29yZDogWyJ0aGVuIiwgImVsc2UiXSwKICAgICAgc2NoZW1hVHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBjb2RlKHsga2V5d29yZCwgcGFyZW50U2NoZW1hLCBpdCB9KSB7CiAgICAgICAgaWYgKHBhcmVudFNjaGVtYS5pZiA9PT0gdm9pZCAwKQogICAgICAgICAgKDAsIHV0aWxfMS5jaGVja1N0cmljdE1vZGUpKGl0LCBgIiR7a2V5d29yZH0iIHdpdGhvdXQgImlmIiBpcyBpZ25vcmVkYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMKdmFyIHJlcXVpcmVfYXBwbGljYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2FwcGxpY2F0b3IvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBhZGRpdGlvbmFsSXRlbXNfMSA9IHJlcXVpcmVfYWRkaXRpb25hbEl0ZW1zKCk7CiAgICB2YXIgcHJlZml4SXRlbXNfMSA9IHJlcXVpcmVfcHJlZml4SXRlbXMoKTsKICAgIHZhciBpdGVtc18xID0gcmVxdWlyZV9pdGVtcygpOwogICAgdmFyIGl0ZW1zMjAyMF8xID0gcmVxdWlyZV9pdGVtczIwMjAoKTsKICAgIHZhciBjb250YWluc18xID0gcmVxdWlyZV9jb250YWlucygpOwogICAgdmFyIGRlcGVuZGVuY2llc18xID0gcmVxdWlyZV9kZXBlbmRlbmNpZXMoKTsKICAgIHZhciBwcm9wZXJ0eU5hbWVzXzEgPSByZXF1aXJlX3Byb3BlcnR5TmFtZXMoKTsKICAgIHZhciBhZGRpdGlvbmFsUHJvcGVydGllc18xID0gcmVxdWlyZV9hZGRpdGlvbmFsUHJvcGVydGllcygpOwogICAgdmFyIHByb3BlcnRpZXNfMSA9IHJlcXVpcmVfcHJvcGVydGllcygpOwogICAgdmFyIHBhdHRlcm5Qcm9wZXJ0aWVzXzEgPSByZXF1aXJlX3BhdHRlcm5Qcm9wZXJ0aWVzKCk7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdCgpOwogICAgdmFyIGFueU9mXzEgPSByZXF1aXJlX2FueU9mKCk7CiAgICB2YXIgb25lT2ZfMSA9IHJlcXVpcmVfb25lT2YoKTsKICAgIHZhciBhbGxPZl8xID0gcmVxdWlyZV9hbGxPZigpOwogICAgdmFyIGlmXzEgPSByZXF1aXJlX2lmKCk7CiAgICB2YXIgdGhlbkVsc2VfMSA9IHJlcXVpcmVfdGhlbkVsc2UoKTsKICAgIGZ1bmN0aW9uIGdldEFwcGxpY2F0b3IoZHJhZnQyMDIwID0gZmFsc2UpIHsKICAgICAgY29uc3QgYXBwbGljYXRvciA9IFsKICAgICAgICAvLyBhbnkKICAgICAgICBub3RfMS5kZWZhdWx0LAogICAgICAgIGFueU9mXzEuZGVmYXVsdCwKICAgICAgICBvbmVPZl8xLmRlZmF1bHQsCiAgICAgICAgYWxsT2ZfMS5kZWZhdWx0LAogICAgICAgIGlmXzEuZGVmYXVsdCwKICAgICAgICB0aGVuRWxzZV8xLmRlZmF1bHQsCiAgICAgICAgLy8gb2JqZWN0CiAgICAgICAgcHJvcGVydHlOYW1lc18xLmRlZmF1bHQsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXNfMS5kZWZhdWx0LAogICAgICAgIGRlcGVuZGVuY2llc18xLmRlZmF1bHQsCiAgICAgICAgcHJvcGVydGllc18xLmRlZmF1bHQsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXNfMS5kZWZhdWx0CiAgICAgIF07CiAgICAgIGlmIChkcmFmdDIwMjApCiAgICAgICAgYXBwbGljYXRvci5wdXNoKHByZWZpeEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXMyMDIwXzEuZGVmYXVsdCk7CiAgICAgIGVsc2UKICAgICAgICBhcHBsaWNhdG9yLnB1c2goYWRkaXRpb25hbEl0ZW1zXzEuZGVmYXVsdCwgaXRlbXNfMS5kZWZhdWx0KTsKICAgICAgYXBwbGljYXRvci5wdXNoKGNvbnRhaW5zXzEuZGVmYXVsdCk7CiAgICAgIHJldHVybiBhcHBsaWNhdG9yOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdCA9IGdldEFwcGxpY2F0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvZm9ybWF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYG11c3QgbWF0Y2ggZm9ybWF0ICIke3NjaGVtYUNvZGV9ImAsCiAgICAgIHBhcmFtczogKHsgc2NoZW1hQ29kZSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtmb3JtYXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIHZhciBkZWYgPSB7CiAgICAgIGtleXdvcmQ6ICJmb3JtYXQiLAogICAgICB0eXBlOiBbIm51bWJlciIsICJzdHJpbmciXSwKICAgICAgc2NoZW1hVHlwZTogInN0cmluZyIsCiAgICAgICRkYXRhOiB0cnVlLAogICAgICBlcnJvciwKICAgICAgY29kZShjeHQsIHJ1bGVUeXBlKSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsICRkYXRhLCBzY2hlbWE6IHNjaGVtYTIsIHNjaGVtYUNvZGUsIGl0IH0gPSBjeHQ7CiAgICAgICAgY29uc3QgeyBvcHRzLCBlcnJTY2hlbWFQYXRoLCBzY2hlbWFFbnYsIHNlbGY6IHNlbGYyIH0gPSBpdDsKICAgICAgICBpZiAoIW9wdHMudmFsaWRhdGVGb3JtYXRzKQogICAgICAgICAgcmV0dXJuOwogICAgICAgIGlmICgkZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZkRlZiA9IGdlbi5jb25zdCgiZkRlZiIsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRzfVske3NjaGVtYUNvZGV9XWApOwogICAgICAgICAgY29uc3QgZlR5cGUgPSBnZW4ubGV0KCJmVHlwZSIpOwogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZ2VuLmxldCgiZm9ybWF0Iik7CiAgICAgICAgICBnZW4uaWYoKDAsIGNvZGVnZW5fMS5fKWB0eXBlb2YgJHtmRGVmfSA9PSAib2JqZWN0IiAmJiAhKCR7ZkRlZn0gaW5zdGFuY2VvZiBSZWdFeHApYCwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAke2ZEZWZ9LnR5cGUgfHwgInN0cmluZyJgKS5hc3NpZ24oZm9ybWF0LCAoMCwgY29kZWdlbl8xLl8pYCR7ZkRlZn0udmFsaWRhdGVgKSwgKCkgPT4gZ2VuLmFzc2lnbihmVHlwZSwgKDAsIGNvZGVnZW5fMS5fKWAic3RyaW5nImApLmFzc2lnbihmb3JtYXQsIGZEZWYpKTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoKDAsIGNvZGVnZW5fMS5vcikodW5rbm93bkZtdCgpLCBpbnZhbGlkRm10KCkpKTsKICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25GbXQoKSB7CiAgICAgICAgICAgIGlmIChvcHRzLnN0cmljdFNjaGVtYSA9PT0gZmFsc2UpCiAgICAgICAgICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7c2NoZW1hQ29kZX0gJiYgISR7Zm9ybWF0fWA7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBpbnZhbGlkRm10KCkgewogICAgICAgICAgICBjb25zdCBjYWxsRm9ybWF0ID0gc2NoZW1hRW52LiRhc3luYyA/ICgwLCBjb2RlZ2VuXzEuXylgKCR7ZkRlZn0uYXN5bmMgPyBhd2FpdCAke2Zvcm1hdH0oJHtkYXRhfSkgOiAke2Zvcm1hdH0oJHtkYXRhfSkpYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmb3JtYXR9KCR7ZGF0YX0pYDsKICAgICAgICAgICAgY29uc3QgdmFsaWREYXRhID0gKDAsIGNvZGVnZW5fMS5fKWAodHlwZW9mICR7Zm9ybWF0fSA9PSAiZnVuY3Rpb24iID8gJHtjYWxsRm9ybWF0fSA6ICR7Zm9ybWF0fS50ZXN0KCR7ZGF0YX0pKWA7CiAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYCR7Zm9ybWF0fSAmJiAke2Zvcm1hdH0gIT09IHRydWUgJiYgJHtmVHlwZX0gPT09ICR7cnVsZVR5cGV9ICYmICEke3ZhbGlkRGF0YX1gOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB2YWxpZGF0ZUZvcm1hdCgpIHsKICAgICAgICAgIGNvbnN0IGZvcm1hdERlZiA9IHNlbGYyLmZvcm1hdHNbc2NoZW1hMl07CiAgICAgICAgICBpZiAoIWZvcm1hdERlZikgewogICAgICAgICAgICB1bmtub3duRm9ybWF0KCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmb3JtYXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGNvbnN0IFtmbXRUeXBlLCBmb3JtYXQsIGZtdFJlZl0gPSBnZXRGb3JtYXQoZm9ybWF0RGVmKTsKICAgICAgICAgIGlmIChmbXRUeXBlID09PSBydWxlVHlwZSkKICAgICAgICAgICAgY3h0LnBhc3ModmFsaWRDb25kaXRpb24oKSk7CiAgICAgICAgICBmdW5jdGlvbiB1bmtub3duRm9ybWF0KCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RTY2hlbWEgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgc2VsZjIubG9nZ2VyLndhcm4odW5rbm93bk1zZygpKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHVua25vd25Nc2coKSk7CiAgICAgICAgICAgIGZ1bmN0aW9uIHVua25vd25Nc2coKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGB1bmtub3duIGZvcm1hdCAiJHtzY2hlbWEyfSIgaWdub3JlZCBpbiBzY2hlbWEgYXQgcGF0aCAiJHtlcnJTY2hlbWFQYXRofSJgOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBnZXRGb3JtYXQoZm10RGVmKSB7CiAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBmbXREZWYgaW5zdGFuY2VvZiBSZWdFeHAgPyAoMCwgY29kZWdlbl8xLnJlZ2V4cENvZGUpKGZtdERlZikgOiBvcHRzLmNvZGUuZm9ybWF0cyA/ICgwLCBjb2RlZ2VuXzEuXylgJHtvcHRzLmNvZGUuZm9ybWF0c30keygwLCBjb2RlZ2VuXzEuZ2V0UHJvcGVydHkpKHNjaGVtYTIpfWAgOiB2b2lkIDA7CiAgICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgeyBrZXk6IHNjaGVtYTIsIHJlZjogZm10RGVmLCBjb2RlIH0pOwogICAgICAgICAgICBpZiAodHlwZW9mIGZtdERlZiA9PSAib2JqZWN0IiAmJiAhKGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCkpIHsKICAgICAgICAgICAgICByZXR1cm4gW2ZtdERlZi50eXBlIHx8ICJzdHJpbmciLCBmbXREZWYudmFsaWRhdGUsICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LnZhbGlkYXRlYF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIFsic3RyaW5nIiwgZm10RGVmLCBmbXRdOwogICAgICAgICAgfQogICAgICAgICAgZnVuY3Rpb24gdmFsaWRDb25kaXRpb24oKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybWF0RGVmID09ICJvYmplY3QiICYmICEoZm9ybWF0RGVmIGluc3RhbmNlb2YgUmVnRXhwKSAmJiBmb3JtYXREZWYuYXN5bmMpIHsKICAgICAgICAgICAgICBpZiAoIXNjaGVtYUVudi4kYXN5bmMpCiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFzeW5jIGZvcm1hdCBpbiBzeW5jIHNjaGVtYSIpOwogICAgICAgICAgICAgIHJldHVybiAoMCwgY29kZWdlbl8xLl8pYGF3YWl0ICR7Zm10UmVmfSgke2RhdGF9KWA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBmb3JtYXQgPT0gImZ1bmN0aW9uIiA/ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9KCR7ZGF0YX0pYCA6ICgwLCBjb2RlZ2VuXzEuXylgJHtmbXRSZWZ9LnRlc3QoJHtkYXRhfSlgOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkZWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZm9ybWF0L2luZGV4LmpzCnZhciByZXF1aXJlX2Zvcm1hdDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9mb3JtYXQvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIHZhciBmb3JtYXRfMSA9IHJlcXVpcmVfZm9ybWF0KCk7CiAgICB2YXIgZm9ybWF0ID0gW2Zvcm1hdF8xLmRlZmF1bHRdOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9tZXRhZGF0YS5qcwp2YXIgcmVxdWlyZV9tZXRhZGF0YSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL21ldGFkYXRhLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb250ZW50Vm9jYWJ1bGFyeSA9IGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm1ldGFkYXRhVm9jYWJ1bGFyeSA9IFsKICAgICAgInRpdGxlIiwKICAgICAgImRlc2NyaXB0aW9uIiwKICAgICAgImRlZmF1bHQiLAogICAgICAiZGVwcmVjYXRlZCIsCiAgICAgICJyZWFkT25seSIsCiAgICAgICJ3cml0ZU9ubHkiLAogICAgICAiZXhhbXBsZXMiCiAgICBdOwogICAgZXhwb3J0czIuY29udGVudFZvY2FidWxhcnkgPSBbCiAgICAgICJjb250ZW50TWVkaWFUeXBlIiwKICAgICAgImNvbnRlbnRFbmNvZGluZyIsCiAgICAgICJjb250ZW50U2NoZW1hIgogICAgXTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kcmFmdDcuanMKdmFyIHJlcXVpcmVfZHJhZnQ3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZHJhZnQ3LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9jb3JlMigpOwogICAgdmFyIHZhbGlkYXRpb25fMSA9IHJlcXVpcmVfdmFsaWRhdGlvbigpOwogICAgdmFyIGFwcGxpY2F0b3JfMSA9IHJlcXVpcmVfYXBwbGljYXRvcigpOwogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQyKCk7CiAgICB2YXIgbWV0YWRhdGFfMSA9IHJlcXVpcmVfbWV0YWRhdGEoKTsKICAgIHZhciBkcmFmdDdWb2NhYnVsYXJpZXMgPSBbCiAgICAgIGNvcmVfMS5kZWZhdWx0LAogICAgICB2YWxpZGF0aW9uXzEuZGVmYXVsdCwKICAgICAgKDAsIGFwcGxpY2F0b3JfMS5kZWZhdWx0KSgpLAogICAgICBmb3JtYXRfMS5kZWZhdWx0LAogICAgICBtZXRhZGF0YV8xLm1ldGFkYXRhVm9jYWJ1bGFyeSwKICAgICAgbWV0YWRhdGFfMS5jb250ZW50Vm9jYWJ1bGFyeQogICAgXTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBkcmFmdDdWb2NhYnVsYXJpZXM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC92b2NhYnVsYXJpZXMvZGlzY3JpbWluYXRvci90eXBlcy5qcwp2YXIgcmVxdWlyZV90eXBlcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3Qvdm9jYWJ1bGFyaWVzL2Rpc2NyaW1pbmF0b3IvdHlwZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRpc2NyRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgRGlzY3JFcnJvcjsKICAgIChmdW5jdGlvbihEaXNjckVycm9yMikgewogICAgICBEaXNjckVycm9yMlsiVGFnIl0gPSAidGFnIjsKICAgICAgRGlzY3JFcnJvcjJbIk1hcHBpbmciXSA9ICJtYXBwaW5nIjsKICAgIH0pKERpc2NyRXJyb3IgfHwgKGV4cG9ydHMyLkRpc2NyRXJyb3IgPSBEaXNjckVycm9yID0ge30pKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc2NyaW1pbmF0b3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvYWp2LW5wbS04LjE3LjEtMTJhZGU3ZWRjNi0xMC56aXAvbm9kZV9tb2R1bGVzL2Fqdi9kaXN0L3ZvY2FidWxhcmllcy9kaXNjcmltaW5hdG9yL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICB2YXIgdHlwZXNfMSA9IHJlcXVpcmVfdHlwZXMoKTsKICAgIHZhciBjb21waWxlXzEgPSByZXF1aXJlX2NvbXBpbGUoKTsKICAgIHZhciByZWZfZXJyb3JfMSA9IHJlcXVpcmVfcmVmX2Vycm9yKCk7CiAgICB2YXIgdXRpbF8xID0gcmVxdWlyZV91dGlsKCk7CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWdOYW1lIH0gfSkgPT4gZGlzY3JFcnJvciA9PT0gdHlwZXNfMS5EaXNjckVycm9yLlRhZyA/IGB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgc3RyaW5nYCA6IGB2YWx1ZSBvZiB0YWcgIiR7dGFnTmFtZX0iIG11c3QgYmUgaW4gb25lT2ZgLAogICAgICBwYXJhbXM6ICh7IHBhcmFtczogeyBkaXNjckVycm9yLCB0YWcsIHRhZ05hbWUgfSB9KSA9PiAoMCwgY29kZWdlbl8xLl8pYHtlcnJvcjogJHtkaXNjckVycm9yfSwgdGFnOiAke3RhZ05hbWV9LCB0YWdWYWx1ZTogJHt0YWd9fWAKICAgIH07CiAgICB2YXIgZGVmID0gewogICAgICBrZXl3b3JkOiAiZGlzY3JpbWluYXRvciIsCiAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICBzY2hlbWFUeXBlOiAib2JqZWN0IiwKICAgICAgZXJyb3IsCiAgICAgIGNvZGUoY3h0KSB7CiAgICAgICAgY29uc3QgeyBnZW4sIGRhdGEsIHNjaGVtYTogc2NoZW1hMiwgcGFyZW50U2NoZW1hLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb25lT2YgfSA9IHBhcmVudFNjaGVtYTsKICAgICAgICBpZiAoIWl0Lm9wdHMuZGlzY3JpbWluYXRvcikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBkaXNjcmltaW5hdG9yIG9wdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCB0YWdOYW1lID0gc2NoZW1hMi5wcm9wZXJ0eU5hbWU7CiAgICAgICAgaWYgKHR5cGVvZiB0YWdOYW1lICE9ICJzdHJpbmciKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBwcm9wZXJ0eU5hbWUiKTsKICAgICAgICBpZiAoc2NoZW1hMi5tYXBwaW5nKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiBtYXBwaW5nIGlzIG5vdCBzdXBwb3J0ZWQiKTsKICAgICAgICBpZiAoIW9uZU9mKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJkaXNjcmltaW5hdG9yOiByZXF1aXJlcyBvbmVPZiBrZXl3b3JkIik7CiAgICAgICAgY29uc3QgdmFsaWQgPSBnZW4ubGV0KCJ2YWxpZCIsIGZhbHNlKTsKICAgICAgICBjb25zdCB0YWcgPSBnZW4uY29uc3QoInRhZyIsICgwLCBjb2RlZ2VuXzEuXylgJHtkYXRhfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkodGFnTmFtZSl9YCk7CiAgICAgICAgZ2VuLmlmKCgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7dGFnfSA9PSAic3RyaW5nImAsICgpID0+IHZhbGlkYXRlTWFwcGluZygpLCAoKSA9PiBjeHQuZXJyb3IoZmFsc2UsIHsgZGlzY3JFcnJvcjogdHlwZXNfMS5EaXNjckVycm9yLlRhZywgdGFnLCB0YWdOYW1lIH0pKTsKICAgICAgICBjeHQub2sodmFsaWQpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlTWFwcGluZygpIHsKICAgICAgICAgIGNvbnN0IG1hcHBpbmcgPSBnZXRNYXBwaW5nKCk7CiAgICAgICAgICBnZW4uaWYoZmFsc2UpOwogICAgICAgICAgZm9yIChjb25zdCB0YWdWYWx1ZSBpbiBtYXBwaW5nKSB7CiAgICAgICAgICAgIGdlbi5lbHNlSWYoKDAsIGNvZGVnZW5fMS5fKWAke3RhZ30gPT09ICR7dGFnVmFsdWV9YCk7CiAgICAgICAgICAgIGdlbi5hc3NpZ24odmFsaWQsIGFwcGx5VGFnU2NoZW1hKG1hcHBpbmdbdGFnVmFsdWVdKSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW4uZWxzZSgpOwogICAgICAgICAgY3h0LmVycm9yKGZhbHNlLCB7IGRpc2NyRXJyb3I6IHR5cGVzXzEuRGlzY3JFcnJvci5NYXBwaW5nLCB0YWcsIHRhZ05hbWUgfSk7CiAgICAgICAgICBnZW4uZW5kSWYoKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gYXBwbHlUYWdTY2hlbWEoc2NoZW1hUHJvcCkgewogICAgICAgICAgY29uc3QgX3ZhbGlkID0gZ2VuLm5hbWUoInZhbGlkIik7CiAgICAgICAgICBjb25zdCBzY2hDeHQgPSBjeHQuc3Vic2NoZW1hKHsga2V5d29yZDogIm9uZU9mIiwgc2NoZW1hUHJvcCB9LCBfdmFsaWQpOwogICAgICAgICAgY3h0Lm1lcmdlRXZhbHVhdGVkKHNjaEN4dCwgY29kZWdlbl8xLk5hbWUpOwogICAgICAgICAgcmV0dXJuIF92YWxpZDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2V0TWFwcGluZygpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIGNvbnN0IG9uZU9mTWFwcGluZyA9IHt9OwogICAgICAgICAgY29uc3QgdG9wUmVxdWlyZWQgPSBoYXNSZXF1aXJlZChwYXJlbnRTY2hlbWEpOwogICAgICAgICAgbGV0IHRhZ1JlcXVpcmVkID0gdHJ1ZTsKICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lT2YubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IHNjaCA9IG9uZU9mW2ldOwogICAgICAgICAgICBpZiAoKHNjaCA9PT0gbnVsbCB8fCBzY2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNjaC4kcmVmKSAmJiAhKDAsIHV0aWxfMS5zY2hlbWFIYXNSdWxlc0J1dFJlZikoc2NoLCBpdC5zZWxmLlJVTEVTKSkgewogICAgICAgICAgICAgIGNvbnN0IHJlZiA9IHNjaC4kcmVmOwogICAgICAgICAgICAgIHNjaCA9IGNvbXBpbGVfMS5yZXNvbHZlUmVmLmNhbGwoaXQuc2VsZiwgaXQuc2NoZW1hRW52LnJvb3QsIGl0LmJhc2VJZCwgcmVmKTsKICAgICAgICAgICAgICBpZiAoc2NoIGluc3RhbmNlb2YgY29tcGlsZV8xLlNjaGVtYUVudikKICAgICAgICAgICAgICAgIHNjaCA9IHNjaC5zY2hlbWE7CiAgICAgICAgICAgICAgaWYgKHNjaCA9PT0gdm9pZCAwKQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHJlZl9lcnJvcl8xLmRlZmF1bHQoaXQub3B0cy51cmlSZXNvbHZlciwgaXQuYmFzZUlkLCByZWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHByb3BTY2ggPSAoX2EgPSBzY2ggPT09IG51bGwgfHwgc2NoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzY2gucHJvcGVydGllcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hW3RhZ05hbWVdOwogICAgICAgICAgICBpZiAodHlwZW9mIHByb3BTY2ggIT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6IG9uZU9mIHN1YnNjaGVtYXMgKG9yIHJlZmVyZW5jZWQgc2NoZW1hcykgbXVzdCBoYXZlICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iYCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGFnUmVxdWlyZWQgPSB0YWdSZXF1aXJlZCAmJiAodG9wUmVxdWlyZWQgfHwgaGFzUmVxdWlyZWQoc2NoKSk7CiAgICAgICAgICAgIGFkZE1hcHBpbmdzKHByb3BTY2gsIGkpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCF0YWdSZXF1aXJlZCkKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgbXVzdCBiZSByZXF1aXJlZGApOwogICAgICAgICAgcmV0dXJuIG9uZU9mTWFwcGluZzsKICAgICAgICAgIGZ1bmN0aW9uIGhhc1JlcXVpcmVkKHsgcmVxdWlyZWQgfSkgewogICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShyZXF1aXJlZCkgJiYgcmVxdWlyZWQuaW5jbHVkZXModGFnTmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5ncyhzY2gsIGkpIHsKICAgICAgICAgICAgaWYgKHNjaC5jb25zdCkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmcoc2NoLmNvbnN0LCBpKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY2guZW51bSkgewogICAgICAgICAgICAgIGZvciAoY29uc3QgdGFnVmFsdWUgb2Ygc2NoLmVudW0pIHsKICAgICAgICAgICAgICAgIGFkZE1hcHBpbmcodGFnVmFsdWUsIGkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGRpc2NyaW1pbmF0b3I6ICJwcm9wZXJ0aWVzLyR7dGFnTmFtZX0iIG11c3QgaGF2ZSAiY29uc3QiIG9yICJlbnVtImApOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmdW5jdGlvbiBhZGRNYXBwaW5nKHRhZ1ZhbHVlLCBpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgdGFnVmFsdWUgIT0gInN0cmluZyIgfHwgdGFnVmFsdWUgaW4gb25lT2ZNYXBwaW5nKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBkaXNjcmltaW5hdG9yOiAiJHt0YWdOYW1lfSIgdmFsdWVzIG11c3QgYmUgdW5pcXVlIHN0cmluZ3NgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBvbmVPZk1hcHBpbmdbdGFnVmFsdWVdID0gaTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvcmVmcy9qc29uLXNjaGVtYS1kcmFmdC0wNy5qc29uCnZhciByZXF1aXJlX2pzb25fc2NoZW1hX2RyYWZ0XzA3ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1ucG0tOC4xNy4xLTEyYWRlN2VkYzYtMTAuemlwL25vZGVfbW9kdWxlcy9hanYvZGlzdC9yZWZzL2pzb24tc2NoZW1hLWRyYWZ0LTA3Lmpzb24iKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSB7CiAgICAgICRzY2hlbWE6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICAkaWQ6ICJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA3L3NjaGVtYSMiLAogICAgICB0aXRsZTogIkNvcmUgc2NoZW1hIG1ldGEtc2NoZW1hIiwKICAgICAgZGVmaW5pdGlvbnM6IHsKICAgICAgICBzY2hlbWFBcnJheTogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIG1pbkl0ZW1zOiAxLAogICAgICAgICAgaXRlbXM6IHsgJHJlZjogIiMiIH0KICAgICAgICB9LAogICAgICAgIG5vbk5lZ2F0aXZlSW50ZWdlcjogewogICAgICAgICAgdHlwZTogImludGVnZXIiLAogICAgICAgICAgbWluaW11bTogMAogICAgICAgIH0sCiAgICAgICAgbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDA6IHsKICAgICAgICAgIGFsbE9mOiBbeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sIHsgZGVmYXVsdDogMCB9XQogICAgICAgIH0sCiAgICAgICAgc2ltcGxlVHlwZXM6IHsKICAgICAgICAgIGVudW06IFsiYXJyYXkiLCAiYm9vbGVhbiIsICJpbnRlZ2VyIiwgIm51bGwiLCAibnVtYmVyIiwgIm9iamVjdCIsICJzdHJpbmciXQogICAgICAgIH0sCiAgICAgICAgc3RyaW5nQXJyYXk6IHsKICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICBpdGVtczogeyB0eXBlOiAic3RyaW5nIiB9LAogICAgICAgICAgdW5pcXVlSXRlbXM6IHRydWUsCiAgICAgICAgICBkZWZhdWx0OiBbXQogICAgICAgIH0KICAgICAgfSwKICAgICAgdHlwZTogWyJvYmplY3QiLCAiYm9vbGVhbiJdLAogICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgJGlkOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaS1yZWZlcmVuY2UiCiAgICAgICAgfSwKICAgICAgICAkc2NoZW1hOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInVyaSIKICAgICAgICB9LAogICAgICAgICRyZWY6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICAgICAgZm9ybWF0OiAidXJpLXJlZmVyZW5jZSIKICAgICAgICB9LAogICAgICAgICRjb21tZW50OiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIgogICAgICAgIH0sCiAgICAgICAgdGl0bGU6IHsKICAgICAgICAgIHR5cGU6ICJzdHJpbmciCiAgICAgICAgfSwKICAgICAgICBkZXNjcmlwdGlvbjogewogICAgICAgICAgdHlwZTogInN0cmluZyIKICAgICAgICB9LAogICAgICAgIGRlZmF1bHQ6IHRydWUsCiAgICAgICAgcmVhZE9ubHk6IHsKICAgICAgICAgIHR5cGU6ICJib29sZWFuIiwKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgfSwKICAgICAgICBleGFtcGxlczogewogICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICBtdWx0aXBsZU9mOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIiwKICAgICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IDAKICAgICAgICB9LAogICAgICAgIG1heGltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBleGNsdXNpdmVNYXhpbXVtOiB7CiAgICAgICAgICB0eXBlOiAibnVtYmVyIgogICAgICAgIH0sCiAgICAgICAgbWluaW11bTogewogICAgICAgICAgdHlwZTogIm51bWJlciIKICAgICAgICB9LAogICAgICAgIGV4Y2x1c2l2ZU1pbmltdW06IHsKICAgICAgICAgIHR5cGU6ICJudW1iZXIiCiAgICAgICAgfSwKICAgICAgICBtYXhMZW5ndGg6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkxlbmd0aDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICBwYXR0ZXJuOiB7CiAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgIGZvcm1hdDogInJlZ2V4IgogICAgICAgIH0sCiAgICAgICAgYWRkaXRpb25hbEl0ZW1zOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGl0ZW1zOiB7CiAgICAgICAgICBhbnlPZjogW3sgJHJlZjogIiMiIH0sIHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXkiIH1dLAogICAgICAgICAgZGVmYXVsdDogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgbWF4SXRlbXM6IHsgJHJlZjogIiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIiB9LAogICAgICAgIG1pbkl0ZW1zOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIiB9LAogICAgICAgIHVuaXF1ZUl0ZW1zOiB7CiAgICAgICAgICB0eXBlOiAiYm9vbGVhbiIsCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIH0sCiAgICAgICAgY29udGFpbnM6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgbWF4UHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIiIH0sCiAgICAgICAgbWluUHJvcGVydGllczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXJEZWZhdWx0MCIgfSwKICAgICAgICByZXF1aXJlZDogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zdHJpbmdBcnJheSIgfSwKICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBkZWZpbml0aW9uczogewogICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogeyAkcmVmOiAiIyIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBwcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgZGVmYXVsdDoge30KICAgICAgICB9LAogICAgICAgIHBhdHRlcm5Qcm9wZXJ0aWVzOiB7CiAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiB7ICRyZWY6ICIjIiB9LAogICAgICAgICAgcHJvcGVydHlOYW1lczogeyBmb3JtYXQ6ICJyZWdleCIgfSwKICAgICAgICAgIGRlZmF1bHQ6IHt9CiAgICAgICAgfSwKICAgICAgICBkZXBlbmRlbmNpZXM6IHsKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHsKICAgICAgICAgICAgYW55T2Y6IFt7ICRyZWY6ICIjIiB9LCB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5IiB9XQogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgcHJvcGVydHlOYW1lczogeyAkcmVmOiAiIyIgfSwKICAgICAgICBjb25zdDogdHJ1ZSwKICAgICAgICBlbnVtOiB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgIHVuaXF1ZUl0ZW1zOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB0eXBlOiB7CiAgICAgICAgICBhbnlPZjogWwogICAgICAgICAgICB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NpbXBsZVR5cGVzIiB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgdHlwZTogImFycmF5IiwKICAgICAgICAgICAgICBpdGVtczogeyAkcmVmOiAiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyIgfSwKICAgICAgICAgICAgICBtaW5JdGVtczogMSwKICAgICAgICAgICAgICB1bmlxdWVJdGVtczogdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICBmb3JtYXQ6IHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICBjb250ZW50TWVkaWFUeXBlOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgY29udGVudEVuY29kaW5nOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgaWY6IHsgJHJlZjogIiMiIH0sCiAgICAgICAgdGhlbjogeyAkcmVmOiAiIyIgfSwKICAgICAgICBlbHNlOiB7ICRyZWY6ICIjIiB9LAogICAgICAgIGFsbE9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIGFueU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG9uZU9mOiB7ICRyZWY6ICIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5IiB9LAogICAgICAgIG5vdDogeyAkcmVmOiAiIyIgfQogICAgICB9LAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzCnZhciByZXF1aXJlX2FqdiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9hanYtbnBtLTguMTcuMS0xMmFkZTdlZGM2LTEwLnppcC9ub2RlX21vZHVsZXMvYWp2L2Rpc3QvYWp2LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5NaXNzaW5nUmVmRXJyb3IgPSBleHBvcnRzMi5WYWxpZGF0aW9uRXJyb3IgPSBleHBvcnRzMi5Db2RlR2VuID0gZXhwb3J0czIuTmFtZSA9IGV4cG9ydHMyLm5pbCA9IGV4cG9ydHMyLnN0cmluZ2lmeSA9IGV4cG9ydHMyLnN0ciA9IGV4cG9ydHMyLl8gPSBleHBvcnRzMi5LZXl3b3JkQ3h0ID0gZXhwb3J0czIuQWp2ID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZSgpOwogICAgdmFyIGRyYWZ0N18xID0gcmVxdWlyZV9kcmFmdDcoKTsKICAgIHZhciBkaXNjcmltaW5hdG9yXzEgPSByZXF1aXJlX2Rpc2NyaW1pbmF0b3IoKTsKICAgIHZhciBkcmFmdDdNZXRhU2NoZW1hID0gcmVxdWlyZV9qc29uX3NjaGVtYV9kcmFmdF8wNygpOwogICAgdmFyIE1FVEFfU1VQUE9SVF9EQVRBID0gWyIvcHJvcGVydGllcyJdOwogICAgdmFyIE1FVEFfU0NIRU1BX0lEID0gImh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIjsKICAgIHZhciBBanYgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5kZWZhdWx0IHsKICAgICAgX2FkZFZvY2FidWxhcmllcygpIHsKICAgICAgICBzdXBlci5fYWRkVm9jYWJ1bGFyaWVzKCk7CiAgICAgICAgZHJhZnQ3XzEuZGVmYXVsdC5mb3JFYWNoKCh2KSA9PiB0aGlzLmFkZFZvY2FidWxhcnkodikpOwogICAgICAgIGlmICh0aGlzLm9wdHMuZGlzY3JpbWluYXRvcikKICAgICAgICAgIHRoaXMuYWRkS2V5d29yZChkaXNjcmltaW5hdG9yXzEuZGVmYXVsdCk7CiAgICAgIH0KICAgICAgX2FkZERlZmF1bHRNZXRhU2NoZW1hKCkgewogICAgICAgIHN1cGVyLl9hZGREZWZhdWx0TWV0YVNjaGVtYSgpOwogICAgICAgIGlmICghdGhpcy5vcHRzLm1ldGEpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgbWV0YVNjaGVtYSA9IHRoaXMub3B0cy4kZGF0YSA/IHRoaXMuJGRhdGFNZXRhU2NoZW1hKGRyYWZ0N01ldGFTY2hlbWEsIE1FVEFfU1VQUE9SVF9EQVRBKSA6IGRyYWZ0N01ldGFTY2hlbWE7CiAgICAgICAgdGhpcy5hZGRNZXRhU2NoZW1hKG1ldGFTY2hlbWEsIE1FVEFfU0NIRU1BX0lELCBmYWxzZSk7CiAgICAgICAgdGhpcy5yZWZzWyJodHRwOi8vanNvbi1zY2hlbWEub3JnL3NjaGVtYSJdID0gTUVUQV9TQ0hFTUFfSUQ7CiAgICAgIH0KICAgICAgZGVmYXVsdE1ldGEoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMub3B0cy5kZWZhdWx0TWV0YSA9IHN1cGVyLmRlZmF1bHRNZXRhKCkgfHwgKHRoaXMuZ2V0U2NoZW1hKE1FVEFfU0NIRU1BX0lEKSA/IE1FVEFfU0NIRU1BX0lEIDogdm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkFqdiA9IEFqdjsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gQWp2OwogICAgbW9kdWxlMi5leHBvcnRzLkFqdiA9IEFqdjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IEFqdjsKICAgIHZhciB2YWxpZGF0ZV8xID0gcmVxdWlyZV92YWxpZGF0ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiS2V5d29yZEN4dCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHZhbGlkYXRlXzEuS2V5d29yZEN4dDsKICAgIH0gfSk7CiAgICB2YXIgY29kZWdlbl8xID0gcmVxdWlyZV9jb2RlZ2VuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLl87CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3RyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29kZWdlbl8xLnN0cjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzdHJpbmdpZnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuc3RyaW5naWZ5OwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm5pbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5uaWw7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTmFtZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvZGVnZW5fMS5OYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkNvZGVHZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb2RlZ2VuXzEuQ29kZUdlbjsKICAgIH0gfSk7CiAgICB2YXIgdmFsaWRhdGlvbl9lcnJvcl8xID0gcmVxdWlyZV92YWxpZGF0aW9uX2Vycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWYWxpZGF0aW9uRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB2YWxpZGF0aW9uX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgICB2YXIgcmVmX2Vycm9yXzEgPSByZXF1aXJlX3JlZl9lcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiTWlzc2luZ1JlZkVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcmVmX2Vycm9yXzEuZGVmYXVsdDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9mb3JtYXRzLmpzCnZhciByZXF1aXJlX2Zvcm1hdHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2Zvcm1hdHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gZXhwb3J0czIuZmFzdEZvcm1hdHMgPSBleHBvcnRzMi5mdWxsRm9ybWF0cyA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGZtdERlZih2YWxpZGF0ZSwgY29tcGFyZSkgewogICAgICByZXR1cm4geyB2YWxpZGF0ZSwgY29tcGFyZSB9OwogICAgfQogICAgZXhwb3J0czIuZnVsbEZvcm1hdHMgPSB7CiAgICAgIC8vIGRhdGU6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzMzMzkjc2VjdGlvbi01LjYKICAgICAgZGF0ZTogZm10RGVmKGRhdGUsIGNvbXBhcmVEYXRlKSwKICAgICAgLy8gZGF0ZS10aW1lOiBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I3NlY3Rpb24tNS42CiAgICAgIHRpbWU6IGZtdERlZihnZXRUaW1lKHRydWUpLCBjb21wYXJlVGltZSksCiAgICAgICJkYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUodHJ1ZSksIGNvbXBhcmVEYXRlVGltZSksCiAgICAgICJpc28tdGltZSI6IGZtdERlZihnZXRUaW1lKCksIGNvbXBhcmVJc29UaW1lKSwKICAgICAgImlzby1kYXRlLXRpbWUiOiBmbXREZWYoZ2V0RGF0ZVRpbWUoKSwgY29tcGFyZUlzb0RhdGVUaW1lKSwKICAgICAgLy8gZHVyYXRpb246IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMzMzM5I2FwcGVuZGl4LUEKICAgICAgZHVyYXRpb246IC9eUCg/ISQpKChcZCtZKT8oXGQrTSk/KFxkK0QpPyhUKD89XGQpKFxkK0gpPyhcZCtNKT8oXGQrUyk/KT98KFxkK1cpPykkLywKICAgICAgdXJpLAogICAgICAidXJpLXJlZmVyZW5jZSI6IC9eKD86W2Etel1bYS16MC05K1wtLl0qOik/KD86XC8/XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpdfCVbMC05YS1mXXsyfSkqQCk/KD86XFsoPzooPzooPzooPzpbMC05YS1mXXsxLDR9Oil7Nn18OjooPzpbMC05YS1mXXsxLDR9Oil7NX18KD86WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7NH18KD86KD86WzAtOWEtZl17MSw0fTopezAsMX1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXszfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwyfVswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezJ9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDN9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9OnwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCw0fVswLTlhLWZdezEsNH0pPzo6KSg/OlswLTlhLWZdezEsNH06WzAtOWEtZl17MSw0fXwoPzooPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pXC4pezN9KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KSl8KD86KD86WzAtOWEtZl17MSw0fTopezAsNX1bMC05YS1mXXsxLDR9KT86OlswLTlhLWZdezEsNH18KD86KD86WzAtOWEtZl17MSw0fTopezAsNn1bMC05YS1mXXsxLDR9KT86Oil8W1Z2XVswLTlhLWZdK1wuW2EtejAtOVwtLl9+ISQmJygpKissOz06XSspXF18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPyl8KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqfFwvKD86KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJiciKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSopPyg/Olw/KD86W2EtejAtOVwtLl9+ISQmJyIoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyg/OiMoPzpbYS16MC05XC0uX34hJCYnIigpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/JC9pLAogICAgICAvLyB1cmktdGVtcGxhdGU6IGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwCiAgICAgICJ1cmktdGVtcGxhdGUiOiAvXig/Oig/OlteXHgwMC1ceDIwIic8PiVcXF5ge3x9XXwlWzAtOWEtZl17Mn0pfFx7WysjLi87PyY9LCFAfF0/KD86W2EtejAtOV9dfCVbMC05YS1mXXsyfSkrKD86OlsxLTldWzAtOV17MCwzfXxcKik/KD86LCg/OlthLXowLTlfXXwlWzAtOWEtZl17Mn0pKyg/OjpbMS05XVswLTldezAsM318XCopPykqXH0pKiQvaSwKICAgICAgLy8gRm9yIHRoZSBzb3VyY2U6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL2RwZXJpbmkvNzI5Mjk0CiAgICAgIC8vIEZvciB0ZXN0IGNhc2VzOiBodHRwczovL21hdGhpYXNieW5lbnMuYmUvZGVtby91cmwtcmVnZXgKICAgICAgdXJsOiAvXig/Omh0dHBzP3xmdHApOlwvXC8oPzpcUysoPzo6XFMqKT9AKT8oPzooPyEoPzoxMHwxMjcpKD86XC5cZHsxLDN9KXszfSkoPyEoPzoxNjlcLjI1NHwxOTJcLjE2OCkoPzpcLlxkezEsM30pezJ9KSg/ITE3MlwuKD86MVs2LTldfDJcZHwzWzAtMV0pKD86XC5cZHsxLDN9KXsyfSkoPzpbMS05XVxkP3wxXGRcZHwyWzAxXVxkfDIyWzAtM10pKD86XC4oPzoxP1xkezEsMn18MlswLTRdXGR8MjVbMC01XSkpezJ9KD86XC4oPzpbMS05XVxkP3wxXGRcZHwyWzAtNF1cZHwyNVswLTRdKSl8KD86KD86W2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSstKSpbYS16MC05XHV7MDBhMX0tXHV7ZmZmZn1dKykoPzpcLig/OlthLXowLTlcdXswMGExfS1cdXtmZmZmfV0rLSkqW2EtejAtOVx1ezAwYTF9LVx1e2ZmZmZ9XSspKig/OlwuKD86W2Etelx1ezAwYTF9LVx1e2ZmZmZ9XXsyLH0pKSkoPzo6XGR7Miw1fSk/KD86XC9bXlxzXSopPyQvaXUsCiAgICAgIGVtYWlsOiAvXlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSsoPzpcLlthLXowLTkhIyQlJicqKy89P15fYHt8fX4tXSspKkAoPzpbYS16MC05XSg/OlthLXowLTktXSpbYS16MC05XSk/XC4pK1thLXowLTldKD86W2EtejAtOS1dKlthLXowLTldKT8kL2ksCiAgICAgIGhvc3RuYW1lOiAvXig/PS57MSwyNTN9XC4/JClbYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8oPzpcLlthLXowLTldKD86Wy0wLTlhLXpdezAsNjF9WzAtOWEtel0pPykqXC4/JC9pLAogICAgICAvLyBvcHRpbWl6ZWQgaHR0cHM6Ly93d3cuc2FmYXJpYm9va3NvbmxpbmUuY29tL2xpYnJhcnkvdmlldy9yZWd1bGFyLWV4cHJlc3Npb25zLWNvb2tib29rLzk3ODA1OTY4MDI4MzcvY2gwN3MxNi5odG1sCiAgICAgIGlwdjQ6IC9eKD86KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZClcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSQvLAogICAgICBpcHY2OiAvXigoKFswLTlhLWZdezEsNH06KXs3fShbMC05YS1mXXsxLDR9fDopKXwoKFswLTlhLWZdezEsNH06KXs2fSg6WzAtOWEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezV9KCgoOlswLTlhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezR9KCgoOlswLTlhLWZdezEsNH0pezEsM30pfCgoOlswLTlhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlhLWZdezEsNH06KXszfSgoKDpbMC05YS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05YS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOWEtZl17MSw0fTopezJ9KCgoOlswLTlhLWZdezEsNH0pezEsNX0pfCgoOlswLTlhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05YS1mXXsxLDR9Oil7MX0oKCg6WzAtOWEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOWEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoOigoKDpbMC05YS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05YS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpKSQvaSwKICAgICAgcmVnZXgsCiAgICAgIC8vIHV1aWQ6IGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzQxMjIKICAgICAgdXVpZDogL14oPzp1cm46dXVpZDopP1swLTlhLWZdezh9LSg/OlswLTlhLWZdezR9LSl7M31bMC05YS1mXXsxMn0kL2ksCiAgICAgIC8vIEpTT04tcG9pbnRlcjogaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY5MDEKICAgICAgLy8gdXJpIGZyYWdtZW50OiBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzk4NiNhcHBlbmRpeC1BCiAgICAgICJqc29uLXBvaW50ZXIiOiAvXig/OlwvKD86W15+L118fjB8fjEpKikqJC8sCiAgICAgICJqc29uLXBvaW50ZXItdXJpLWZyYWdtZW50IjogL14jKD86XC8oPzpbYS16MC05X1wtLiEkJicoKSorLDs6PUBdfCVbMC05YS1mXXsyfXx+MHx+MSkqKSokL2ksCiAgICAgIC8vIHJlbGF0aXZlIEpTT04tcG9pbnRlcjogaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtbHVmZi1yZWxhdGl2ZS1qc29uLXBvaW50ZXItMDAKICAgICAgInJlbGF0aXZlLWpzb24tcG9pbnRlciI6IC9eKD86MHxbMS05XVswLTldKikoPzojfCg/OlwvKD86W15+L118fjB8fjEpKikqKSQvLAogICAgICAvLyB0aGUgZm9sbG93aW5nIGZvcm1hdHMgYXJlIHVzZWQgYnkgdGhlIG9wZW5hcGkgc3BlY2lmaWNhdGlvbjogaHR0cHM6Ly9zcGVjLm9wZW5hcGlzLm9yZy9vYXMvdjMuMC4wI2RhdGEtdHlwZXMKICAgICAgLy8gYnl0ZTogaHR0cHM6Ly9naXRodWIuY29tL21pZ3VlbG1vdGEvaXMtYmFzZTY0CiAgICAgIGJ5dGUsCiAgICAgIC8vIHNpZ25lZCAzMiBiaXQgaW50ZWdlcgogICAgICBpbnQzMjogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlSW50MzIgfSwKICAgICAgLy8gc2lnbmVkIDY0IGJpdCBpbnRlZ2VyCiAgICAgIGludDY0OiB7IHR5cGU6ICJudW1iZXIiLCB2YWxpZGF0ZTogdmFsaWRhdGVJbnQ2NCB9LAogICAgICAvLyBDLXR5cGUgZmxvYXQKICAgICAgZmxvYXQ6IHsgdHlwZTogIm51bWJlciIsIHZhbGlkYXRlOiB2YWxpZGF0ZU51bWJlciB9LAogICAgICAvLyBDLXR5cGUgZG91YmxlCiAgICAgIGRvdWJsZTogeyB0eXBlOiAibnVtYmVyIiwgdmFsaWRhdGU6IHZhbGlkYXRlTnVtYmVyIH0sCiAgICAgIC8vIGhpbnQgdG8gdGhlIFVJIHRvIGhpZGUgaW5wdXQgc3RyaW5ncwogICAgICBwYXNzd29yZDogdHJ1ZSwKICAgICAgLy8gdW5jaGVja2VkIHN0cmluZyBwYXlsb2FkCiAgICAgIGJpbmFyeTogdHJ1ZQogICAgfTsKICAgIGV4cG9ydHMyLmZhc3RGb3JtYXRzID0gewogICAgICAuLi5leHBvcnRzMi5mdWxsRm9ybWF0cywKICAgICAgZGF0ZTogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkJC8sIGNvbXBhcmVEYXRlKSwKICAgICAgdGltZTogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPykkL2ksIGNvbXBhcmVUaW1lKSwKICAgICAgImRhdGUtdGltZSI6IGZtdERlZigvXlxkXGRcZFxkLVswLTFdXGQtWzAtM11cZHQoPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KSQvaSwgY29tcGFyZURhdGVUaW1lKSwKICAgICAgImlzby10aW1lIjogZm10RGVmKC9eKD86WzAtMl1cZDpbMC01XVxkOlswLTVdXGR8MjM6NTk6NjApKD86XC5cZCspPyg/Onp8WystXVxkXGQoPzo6P1xkXGQpPyk/JC9pLCBjb21wYXJlSXNvVGltZSksCiAgICAgICJpc28tZGF0ZS10aW1lIjogZm10RGVmKC9eXGRcZFxkXGQtWzAtMV1cZC1bMC0zXVxkW3Rcc10oPzpbMC0yXVxkOlswLTVdXGQ6WzAtNV1cZHwyMzo1OTo2MCkoPzpcLlxkKyk/KD86enxbKy1dXGRcZCg/Ojo/XGRcZCk/KT8kL2ksIGNvbXBhcmVJc29EYXRlVGltZSksCiAgICAgIC8vIHVyaTogaHR0cHM6Ly9naXRodWIuY29tL21hZmludG9zaC9pcy1teS1qc29uLXZhbGlkL2Jsb2IvbWFzdGVyL2Zvcm1hdHMuanMKICAgICAgdXJpOiAvXig/OlthLXpdW2EtejAtOStcLS5dKjopKD86XC8/XC8pP1teXHNdKiQvaSwKICAgICAgInVyaS1yZWZlcmVuY2UiOiAvXig/Oig/OlthLXpdW2EtejAtOStcLS5dKjopP1wvP1wvKT8oPzpbXlxcXHMjXVteXHMjXSopPyg/OiNbXlxcXHNdKik/JC9pLAogICAgICAvLyBlbWFpbCAoc291cmNlcyBmcm9tIGpzZW4gdmFsaWRhdG9yKToKICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yMDEzMjMvdXNpbmctYS1yZWd1bGFyLWV4cHJlc3Npb24tdG8tdmFsaWRhdGUtYW4tZW1haWwtYWRkcmVzcyNhbnN3ZXItODgyOTM2MwogICAgICAvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI3ZhbGlkLWUtbWFpbC1hZGRyZXNzIChzZWFyY2ggZm9yICd3aWxmdWwgdmlvbGF0aW9uJykKICAgICAgZW1haWw6IC9eW2EtejAtOS4hIyQlJicqKy89P15fYHt8fX4tXStAW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XC5bYS16MC05XSg/OlthLXowLTktXXswLDYxfVthLXowLTldKT8pKiQvaQogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdE5hbWVzID0gT2JqZWN0LmtleXMoZXhwb3J0czIuZnVsbEZvcm1hdHMpOwogICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7CiAgICAgIHJldHVybiB5ZWFyICUgNCA9PT0gMCAmJiAoeWVhciAlIDEwMCAhPT0gMCB8fCB5ZWFyICUgNDAwID09PSAwKTsKICAgIH0KICAgIHZhciBEQVRFID0gL14oXGRcZFxkXGQpLShcZFxkKS0oXGRcZCkkLzsKICAgIHZhciBEQVlTID0gWzAsIDMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdOwogICAgZnVuY3Rpb24gZGF0ZShzdHIyKSB7CiAgICAgIGNvbnN0IG1hdGNoZXMgPSBEQVRFLmV4ZWMoc3RyMik7CiAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIGNvbnN0IHllYXIgPSArbWF0Y2hlc1sxXTsKICAgICAgY29uc3QgbW9udGggPSArbWF0Y2hlc1syXTsKICAgICAgY29uc3QgZGF5ID0gK21hdGNoZXNbM107CiAgICAgIHJldHVybiBtb250aCA+PSAxICYmIG1vbnRoIDw9IDEyICYmIGRheSA+PSAxICYmIGRheSA8PSAobW9udGggPT09IDIgJiYgaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogREFZU1ttb250aF0pOwogICAgfQogICAgZnVuY3Rpb24gY29tcGFyZURhdGUoZDEsIGQyKSB7CiAgICAgIGlmICghKGQxICYmIGQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBpZiAoZDEgPiBkMikKICAgICAgICByZXR1cm4gMTsKICAgICAgaWYgKGQxIDwgZDIpCiAgICAgICAgcmV0dXJuIC0xOwogICAgICByZXR1cm4gMDsKICAgIH0KICAgIHZhciBUSU1FID0gL14oXGRcZCk6KFxkXGQpOihcZFxkKD86XC5cZCspPykoenwoWystXSkoXGRcZCkoPzo6PyhcZFxkKSk/KT8kL2k7CiAgICBmdW5jdGlvbiBnZXRUaW1lKHN0cmljdFRpbWVab25lKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiB0aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBtYXRjaGVzID0gVElNRS5leGVjKHN0cjIpOwogICAgICAgIGlmICghbWF0Y2hlcykKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICBjb25zdCBociA9ICttYXRjaGVzWzFdOwogICAgICAgIGNvbnN0IG1pbiA9ICttYXRjaGVzWzJdOwogICAgICAgIGNvbnN0IHNlYyA9ICttYXRjaGVzWzNdOwogICAgICAgIGNvbnN0IHR6ID0gbWF0Y2hlc1s0XTsKICAgICAgICBjb25zdCB0elNpZ24gPSBtYXRjaGVzWzVdID09PSAiLSIgPyAtMSA6IDE7CiAgICAgICAgY29uc3QgdHpIID0gKyhtYXRjaGVzWzZdIHx8IDApOwogICAgICAgIGNvbnN0IHR6TSA9ICsobWF0Y2hlc1s3XSB8fCAwKTsKICAgICAgICBpZiAodHpIID4gMjMgfHwgdHpNID4gNTkgfHwgc3RyaWN0VGltZVpvbmUgJiYgIXR6KQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIGlmIChociA8PSAyMyAmJiBtaW4gPD0gNTkgJiYgc2VjIDwgNjApCiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICBjb25zdCB1dGNNaW4gPSBtaW4gLSB0ek0gKiB0elNpZ247CiAgICAgICAgY29uc3QgdXRjSHIgPSBociAtIHR6SCAqIHR6U2lnbiAtICh1dGNNaW4gPCAwID8gMSA6IDApOwogICAgICAgIHJldHVybiAodXRjSHIgPT09IDIzIHx8IHV0Y0hyID09PSAtMSkgJiYgKHV0Y01pbiA9PT0gNTkgfHwgdXRjTWluID09PSAtMSkgJiYgc2VjIDwgNjE7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlVGltZShzMSwgczIpIHsKICAgICAgaWYgKCEoczEgJiYgczIpKQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIGNvbnN0IHQxID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczEpKS52YWx1ZU9mKCk7CiAgICAgIGNvbnN0IHQyID0gKC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgiMjAyMC0wMS0wMVQiICsgczIpKS52YWx1ZU9mKCk7CiAgICAgIGlmICghKHQxICYmIHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICByZXR1cm4gdDEgLSB0MjsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVJc29UaW1lKHQxLCB0MikgewogICAgICBpZiAoISh0MSAmJiB0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgYTEgPSBUSU1FLmV4ZWModDEpOwogICAgICBjb25zdCBhMiA9IFRJTUUuZXhlYyh0Mik7CiAgICAgIGlmICghKGExICYmIGEyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB0MSA9IGExWzFdICsgYTFbMl0gKyBhMVszXTsKICAgICAgdDIgPSBhMlsxXSArIGEyWzJdICsgYTJbM107CiAgICAgIGlmICh0MSA+IHQyKQogICAgICAgIHJldHVybiAxOwogICAgICBpZiAodDEgPCB0MikKICAgICAgICByZXR1cm4gLTE7CiAgICAgIHJldHVybiAwOwogICAgfQogICAgdmFyIERBVEVfVElNRV9TRVBBUkFUT1IgPSAvdHxccy9pOwogICAgZnVuY3Rpb24gZ2V0RGF0ZVRpbWUoc3RyaWN0VGltZVpvbmUpIHsKICAgICAgY29uc3QgdGltZSA9IGdldFRpbWUoc3RyaWN0VGltZVpvbmUpOwogICAgICByZXR1cm4gZnVuY3Rpb24gZGF0ZV90aW1lKHN0cjIpIHsKICAgICAgICBjb25zdCBkYXRlVGltZSA9IHN0cjIuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgICAgcmV0dXJuIGRhdGVUaW1lLmxlbmd0aCA9PT0gMiAmJiBkYXRlKGRhdGVUaW1lWzBdKSAmJiB0aW1lKGRhdGVUaW1lWzFdKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbXBhcmVEYXRlVGltZShkdDEsIGR0MikgewogICAgICBpZiAoIShkdDEgJiYgZHQyKSkKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGR0MSkudmFsdWVPZigpOwogICAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGR0MikudmFsdWVPZigpOwogICAgICBpZiAoIShkMSAmJiBkMikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIGQxIC0gZDI7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlSXNvRGF0ZVRpbWUoZHQxLCBkdDIpIHsKICAgICAgaWYgKCEoZHQxICYmIGR0MikpCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgY29uc3QgW2QxLCB0MV0gPSBkdDEuc3BsaXQoREFURV9USU1FX1NFUEFSQVRPUik7CiAgICAgIGNvbnN0IFtkMiwgdDJdID0gZHQyLnNwbGl0KERBVEVfVElNRV9TRVBBUkFUT1IpOwogICAgICBjb25zdCByZXMgPSBjb21wYXJlRGF0ZShkMSwgZDIpOwogICAgICBpZiAocmVzID09PSB2b2lkIDApCiAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgcmV0dXJuIHJlcyB8fCBjb21wYXJlVGltZSh0MSwgdDIpOwogICAgfQogICAgdmFyIE5PVF9VUklfRlJBR01FTlQgPSAvXC98Oi87CiAgICB2YXIgVVJJID0gL14oPzpbYS16XVthLXowLTkrXC0uXSo6KSg/OlwvP1wvKD86KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06XXwlWzAtOWEtZl17Mn0pKkApPyg/OlxbKD86KD86KD86KD86WzAtOWEtZl17MSw0fTopezZ9fDo6KD86WzAtOWEtZl17MSw0fTopezV9fCg/OlswLTlhLWZdezEsNH0pPzo6KD86WzAtOWEtZl17MSw0fTopezR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDF9WzAtOWEtZl17MSw0fSk/OjooPzpbMC05YS1mXXsxLDR9Oil7M318KD86KD86WzAtOWEtZl17MSw0fTopezAsMn1bMC05YS1mXXsxLDR9KT86Oig/OlswLTlhLWZdezEsNH06KXsyfXwoPzooPzpbMC05YS1mXXsxLDR9Oil7MCwzfVswLTlhLWZdezEsNH0pPzo6WzAtOWEtZl17MSw0fTp8KD86KD86WzAtOWEtZl17MSw0fTopezAsNH1bMC05YS1mXXsxLDR9KT86OikoPzpbMC05YS1mXXsxLDR9OlswLTlhLWZdezEsNH18KD86KD86MjVbMC01XXwyWzAtNF1cZHxbMDFdP1xkXGQ/KVwuKXszfSg/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPykpfCg/Oig/OlswLTlhLWZdezEsNH06KXswLDV9WzAtOWEtZl17MSw0fSk/OjpbMC05YS1mXXsxLDR9fCg/Oig/OlswLTlhLWZdezEsNH06KXswLDZ9WzAtOWEtZl17MSw0fSk/OjopfFtWdl1bMC05YS1mXStcLlthLXowLTlcLS5ffiEkJicoKSorLDs9Ol0rKVxdfCg/Oig/OjI1WzAtNV18MlswLTRdXGR8WzAxXT9cZFxkPylcLil7M30oPzoyNVswLTVdfDJbMC00XVxkfFswMV0/XGRcZD8pfCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9XXwlWzAtOWEtZl17Mn0pKikoPzo6XGQqKT8oPzpcLyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkqKSp8XC8oPzooPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKyg/OlwvKD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QF18JVswLTlhLWZdezJ9KSopKik/fCg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkBdfCVbMC05YS1mXXsyfSkrKD86XC8oPzpbYS16MC05XC0uX34hJCYnKCkqKyw7PTpAXXwlWzAtOWEtZl17Mn0pKikqKSg/Olw/KD86W2EtejAtOVwtLl9+ISQmJygpKissOz06QC8/XXwlWzAtOWEtZl17Mn0pKik/KD86Iyg/OlthLXowLTlcLS5ffiEkJicoKSorLDs9OkAvP118JVswLTlhLWZdezJ9KSopPyQvaTsKICAgIGZ1bmN0aW9uIHVyaShzdHIyKSB7CiAgICAgIHJldHVybiBOT1RfVVJJX0ZSQUdNRU5ULnRlc3Qoc3RyMikgJiYgVVJJLnRlc3Qoc3RyMik7CiAgICB9CiAgICB2YXIgQllURSA9IC9eKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kL2dtOwogICAgZnVuY3Rpb24gYnl0ZShzdHIyKSB7CiAgICAgIEJZVEUubGFzdEluZGV4ID0gMDsKICAgICAgcmV0dXJuIEJZVEUudGVzdChzdHIyKTsKICAgIH0KICAgIHZhciBNSU5fSU5UMzIgPSAtKDIgKiogMzEpOwogICAgdmFyIE1BWF9JTlQzMiA9IDIgKiogMzEgLSAxOwogICAgZnVuY3Rpb24gdmFsaWRhdGVJbnQzMih2YWx1ZSkgewogICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSkgJiYgdmFsdWUgPD0gTUFYX0lOVDMyICYmIHZhbHVlID49IE1JTl9JTlQzMjsKICAgIH0KICAgIGZ1bmN0aW9uIHZhbGlkYXRlSW50NjQodmFsdWUpIHsKICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIodmFsdWUpOwogICAgfQogICAgZnVuY3Rpb24gdmFsaWRhdGVOdW1iZXIoKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgdmFyIFpfQU5DSE9SID0gL1teXFxdXFxaLzsKICAgIGZ1bmN0aW9uIHJlZ2V4KHN0cjIpIHsKICAgICAgaWYgKFpfQU5DSE9SLnRlc3Qoc3RyMikpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAoc3RyMik7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2xpbWl0LmpzCnZhciByZXF1aXJlX2xpbWl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL2Fqdi1mb3JtYXRzLXZpcnR1YWwtMGRmYjIxYWI0ZS8yLy55YXJuL2JlcnJ5L2NhY2hlL2Fqdi1mb3JtYXRzLW5wbS0zLjAuMS0yNjYyY2Y1YjEyLTEwLnppcC9ub2RlX21vZHVsZXMvYWp2LWZvcm1hdHMvZGlzdC9saW1pdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZm9ybWF0TGltaXREZWZpbml0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gcmVxdWlyZV9hanYoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBvcHMgPSBjb2RlZ2VuXzEub3BlcmF0b3JzOwogICAgdmFyIEtXRHMgPSB7CiAgICAgIGZvcm1hdE1heGltdW06IHsgb2tTdHI6ICI8PSIsIG9rOiBvcHMuTFRFLCBmYWlsOiBvcHMuR1QgfSwKICAgICAgZm9ybWF0TWluaW11bTogeyBva1N0cjogIj49Iiwgb2s6IG9wcy5HVEUsIGZhaWw6IG9wcy5MVCB9LAogICAgICBmb3JtYXRFeGNsdXNpdmVNYXhpbXVtOiB7IG9rU3RyOiAiPCIsIG9rOiBvcHMuTFQsIGZhaWw6IG9wcy5HVEUgfSwKICAgICAgZm9ybWF0RXhjbHVzaXZlTWluaW11bTogeyBva1N0cjogIj4iLCBvazogb3BzLkdULCBmYWlsOiBvcHMuTFRFIH0KICAgIH07CiAgICB2YXIgZXJyb3IgPSB7CiAgICAgIG1lc3NhZ2U6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5zdHIpYHNob3VsZCBiZSAke0tXRHNba2V5d29yZF0ub2tTdHJ9ICR7c2NoZW1hQ29kZX1gLAogICAgICBwYXJhbXM6ICh7IGtleXdvcmQsIHNjaGVtYUNvZGUgfSkgPT4gKDAsIGNvZGVnZW5fMS5fKWB7Y29tcGFyaXNvbjogJHtLV0RzW2tleXdvcmRdLm9rU3RyfSwgbGltaXQ6ICR7c2NoZW1hQ29kZX19YAogICAgfTsKICAgIGV4cG9ydHMyLmZvcm1hdExpbWl0RGVmaW5pdGlvbiA9IHsKICAgICAga2V5d29yZDogT2JqZWN0LmtleXMoS1dEcyksCiAgICAgIHR5cGU6ICJzdHJpbmciLAogICAgICBzY2hlbWFUeXBlOiAic3RyaW5nIiwKICAgICAgJGRhdGE6IHRydWUsCiAgICAgIGVycm9yLAogICAgICBjb2RlKGN4dCkgewogICAgICAgIGNvbnN0IHsgZ2VuLCBkYXRhLCBzY2hlbWFDb2RlLCBrZXl3b3JkLCBpdCB9ID0gY3h0OwogICAgICAgIGNvbnN0IHsgb3B0cywgc2VsZjogc2VsZjIgfSA9IGl0OwogICAgICAgIGlmICghb3B0cy52YWxpZGF0ZUZvcm1hdHMpCiAgICAgICAgICByZXR1cm47CiAgICAgICAgY29uc3QgZkN4dCA9IG5ldyBhanZfMS5LZXl3b3JkQ3h0KGl0LCBzZWxmMi5SVUxFUy5hbGwuZm9ybWF0LmRlZmluaXRpb24sICJmb3JtYXQiKTsKICAgICAgICBpZiAoZkN4dC4kZGF0YSkKICAgICAgICAgIHZhbGlkYXRlJERhdGFGb3JtYXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgICB2YWxpZGF0ZUZvcm1hdCgpOwogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlJERhdGFGb3JtYXQoKSB7CiAgICAgICAgICBjb25zdCBmbXRzID0gZ2VuLnNjb3BlVmFsdWUoImZvcm1hdHMiLCB7CiAgICAgICAgICAgIHJlZjogc2VsZjIuZm9ybWF0cywKICAgICAgICAgICAgY29kZTogb3B0cy5jb2RlLmZvcm1hdHMKICAgICAgICAgIH0pOwogICAgICAgICAgY29uc3QgZm10ID0gZ2VuLmNvbnN0KCJmbXQiLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10c31bJHtmQ3h0LnNjaGVtYUNvZGV9XWApOwogICAgICAgICAgY3h0LmZhaWwkZGF0YSgoMCwgY29kZWdlbl8xLm9yKSgoMCwgY29kZWdlbl8xLl8pYHR5cGVvZiAke2ZtdH0gIT0gIm9iamVjdCJgLCAoMCwgY29kZWdlbl8xLl8pYCR7Zm10fSBpbnN0YW5jZW9mIFJlZ0V4cGAsICgwLCBjb2RlZ2VuXzEuXylgdHlwZW9mICR7Zm10fS5jb21wYXJlICE9ICJmdW5jdGlvbiJgLCBjb21wYXJlQ29kZShmbXQpKSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHZhbGlkYXRlRm9ybWF0KCkgewogICAgICAgICAgY29uc3QgZm9ybWF0ID0gZkN4dC5zY2hlbWE7CiAgICAgICAgICBjb25zdCBmbXREZWYgPSBzZWxmMi5mb3JtYXRzW2Zvcm1hdF07CiAgICAgICAgICBpZiAoIWZtdERlZiB8fCBmbXREZWYgPT09IHRydWUpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIGlmICh0eXBlb2YgZm10RGVmICE9ICJvYmplY3QiIHx8IGZtdERlZiBpbnN0YW5jZW9mIFJlZ0V4cCB8fCB0eXBlb2YgZm10RGVmLmNvbXBhcmUgIT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCIke2tleXdvcmR9IjogZm9ybWF0ICIke2Zvcm1hdH0iIGRvZXMgbm90IGRlZmluZSAiY29tcGFyZSIgZnVuY3Rpb25gKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGZtdCA9IGdlbi5zY29wZVZhbHVlKCJmb3JtYXRzIiwgewogICAgICAgICAgICBrZXk6IGZvcm1hdCwKICAgICAgICAgICAgcmVmOiBmbXREZWYsCiAgICAgICAgICAgIGNvZGU6IG9wdHMuY29kZS5mb3JtYXRzID8gKDAsIGNvZGVnZW5fMS5fKWAke29wdHMuY29kZS5mb3JtYXRzfSR7KDAsIGNvZGVnZW5fMS5nZXRQcm9wZXJ0eSkoZm9ybWF0KX1gIDogdm9pZCAwCiAgICAgICAgICB9KTsKICAgICAgICAgIGN4dC5mYWlsJGRhdGEoY29tcGFyZUNvZGUoZm10KSk7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVDb2RlKGZtdCkgewogICAgICAgICAgcmV0dXJuICgwLCBjb2RlZ2VuXzEuXylgJHtmbXR9LmNvbXBhcmUoJHtkYXRhfSwgJHtzY2hlbWFDb2RlfSkgJHtLV0RzW2tleXdvcmRdLmZhaWx9IDBgOwogICAgICAgIH0KICAgICAgfSwKICAgICAgZGVwZW5kZW5jaWVzOiBbImZvcm1hdCJdCiAgICB9OwogICAgdmFyIGZvcm1hdExpbWl0UGx1Z2luID0gKGFqdikgPT4gewogICAgICBhanYuYWRkS2V5d29yZChleHBvcnRzMi5mb3JtYXRMaW1pdERlZmluaXRpb24pOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGV4cG9ydHMyLmRlZmF1bHQgPSBmb3JtYXRMaW1pdFBsdWdpbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzCnZhciByZXF1aXJlX2Rpc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vYWp2LWZvcm1hdHMtdmlydHVhbC0wZGZiMjFhYjRlLzIvLnlhcm4vYmVycnkvY2FjaGUvYWp2LWZvcm1hdHMtbnBtLTMuMC4xLTI2NjJjZjViMTItMTAuemlwL25vZGVfbW9kdWxlcy9hanYtZm9ybWF0cy9kaXN0L2luZGV4LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICB2YXIgZm9ybWF0c18xID0gcmVxdWlyZV9mb3JtYXRzKCk7CiAgICB2YXIgbGltaXRfMSA9IHJlcXVpcmVfbGltaXQoKTsKICAgIHZhciBjb2RlZ2VuXzEgPSByZXF1aXJlX2NvZGVnZW4oKTsKICAgIHZhciBmdWxsTmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZnVsbEZvcm1hdHMiKTsKICAgIHZhciBmYXN0TmFtZSA9IG5ldyBjb2RlZ2VuXzEuTmFtZSgiZmFzdEZvcm1hdHMiKTsKICAgIHZhciBmb3JtYXRzUGx1Z2luID0gKGFqdiwgb3B0cyA9IHsga2V5d29yZHM6IHRydWUgfSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRzKSkgewogICAgICAgIGFkZEZvcm1hdHMoYWp2LCBvcHRzLCBmb3JtYXRzXzEuZnVsbEZvcm1hdHMsIGZ1bGxOYW1lKTsKICAgICAgICByZXR1cm4gYWp2OwogICAgICB9CiAgICAgIGNvbnN0IFtmb3JtYXRzLCBleHBvcnROYW1lXSA9IG9wdHMubW9kZSA9PT0gImZhc3QiID8gW2Zvcm1hdHNfMS5mYXN0Rm9ybWF0cywgZmFzdE5hbWVdIDogW2Zvcm1hdHNfMS5mdWxsRm9ybWF0cywgZnVsbE5hbWVdOwogICAgICBjb25zdCBsaXN0ID0gb3B0cy5mb3JtYXRzIHx8IGZvcm1hdHNfMS5mb3JtYXROYW1lczsKICAgICAgYWRkRm9ybWF0cyhhanYsIGxpc3QsIGZvcm1hdHMsIGV4cG9ydE5hbWUpOwogICAgICBpZiAob3B0cy5rZXl3b3JkcykKICAgICAgICAoMCwgbGltaXRfMS5kZWZhdWx0KShhanYpOwogICAgICByZXR1cm4gYWp2OwogICAgfTsKICAgIGZvcm1hdHNQbHVnaW4uZ2V0ID0gKG5hbWUsIG1vZGUgPSAiZnVsbCIpID0+IHsKICAgICAgY29uc3QgZm9ybWF0cyA9IG1vZGUgPT09ICJmYXN0IiA/IGZvcm1hdHNfMS5mYXN0Rm9ybWF0cyA6IGZvcm1hdHNfMS5mdWxsRm9ybWF0czsKICAgICAgY29uc3QgZiA9IGZvcm1hdHNbbmFtZV07CiAgICAgIGlmICghZikKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gZm9ybWF0ICIke25hbWV9ImApOwogICAgICByZXR1cm4gZjsKICAgIH07CiAgICBmdW5jdGlvbiBhZGRGb3JtYXRzKGFqdiwgbGlzdCwgZnMsIGV4cG9ydE5hbWUpIHsKICAgICAgdmFyIF9hOwogICAgICB2YXIgX2I7CiAgICAgIChfYSA9IChfYiA9IGFqdi5vcHRzLmNvZGUpLmZvcm1hdHMpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IF9iLmZvcm1hdHMgPSAoMCwgY29kZWdlbl8xLl8pYHJlcXVpcmUoImFqdi1mb3JtYXRzL2Rpc3QvZm9ybWF0cyIpLiR7ZXhwb3J0TmFtZX1gOwogICAgICBmb3IgKGNvbnN0IGYgb2YgbGlzdCkKICAgICAgICBhanYuYWRkRm9ybWF0KGYsIGZzW2ZdKTsKICAgIH0KICAgIG1vZHVsZTIuZXhwb3J0cyA9IGV4cG9ydHMyID0gZm9ybWF0c1BsdWdpbjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVmYXVsdCA9IGZvcm1hdHNQbHVnaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcwp2YXIgcmVxdWlyZV9pc0Z1bmN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNGdW5jdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNGdW5jdGlvbiA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gImZ1bmN0aW9uIjsKICAgIH0KICAgIGV4cG9ydHMyLmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMKdmFyIHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZUVycm9yQ2xhc3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUVycm9yQ2xhc3MgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBjcmVhdGVFcnJvckNsYXNzKGNyZWF0ZUltcGwpIHsKICAgICAgdmFyIF9zdXBlciA9IGZ1bmN0aW9uKGluc3RhbmNlKSB7CiAgICAgICAgRXJyb3IuY2FsbChpbnN0YW5jZSk7CiAgICAgICAgaW5zdGFuY2Uuc3RhY2sgPSBuZXcgRXJyb3IoKS5zdGFjazsKICAgICAgfTsKICAgICAgdmFyIGN0b3JGdW5jID0gY3JlYXRlSW1wbChfc3VwZXIpOwogICAgICBjdG9yRnVuYy5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CiAgICAgIGN0b3JGdW5jLnByb3RvdHlwZS5jb25zdHJ1Y3RvciA9IGN0b3JGdW5jOwogICAgICByZXR1cm4gY3RvckZ1bmM7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVFcnJvckNsYXNzID0gY3JlYXRlRXJyb3JDbGFzczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzCnZhciByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9VbnN1YnNjcmlwdGlvbkVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VbnN1YnNjcmlwdGlvbkVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVW5zdWJzY3JpcHRpb25FcnJvckltcGwoZXJyb3JzKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubWVzc2FnZSA9IGVycm9ycyA/IGVycm9ycy5sZW5ndGggKyAiIGVycm9ycyBvY2N1cnJlZCBkdXJpbmcgdW5zdWJzY3JpcHRpb246XG4iICsgZXJyb3JzLm1hcChmdW5jdGlvbihlcnIsIGkpIHsKICAgICAgICAgIHJldHVybiBpICsgMSArICIpICIgKyBlcnIudG9TdHJpbmcoKTsKICAgICAgICB9KS5qb2luKCJcbiAgIikgOiAiIjsKICAgICAgICB0aGlzLm5hbWUgPSAiVW5zdWJzY3JpcHRpb25FcnJvciI7CiAgICAgICAgdGhpcy5lcnJvcnMgPSBlcnJvcnM7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcnJSZW1vdmUuanMKdmFyIHJlcXVpcmVfYXJyUmVtb3ZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJyUmVtb3ZlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBhcnJSZW1vdmUoYXJyLCBpdGVtKSB7CiAgICAgIGlmIChhcnIpIHsKICAgICAgICB2YXIgaW5kZXggPSBhcnIuaW5kZXhPZihpdGVtKTsKICAgICAgICAwIDw9IGluZGV4ICYmIGFyci5zcGxpY2UoaW5kZXgsIDEpOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5hcnJSZW1vdmUgPSBhcnJSZW1vdmU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmlwdGlvbi5qcwp2YXIgcmVxdWlyZV9TdWJzY3JpcHRpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3Vic2NyaXB0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1N1YnNjcmlwdGlvbiA9IGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBVbnN1YnNjcmlwdGlvbkVycm9yXzEgPSByZXF1aXJlX1Vuc3Vic2NyaXB0aW9uRXJyb3IoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFN1YnNjcmlwdGlvbjIoaW5pdGlhbFRlYXJkb3duKSB7CiAgICAgICAgdGhpcy5pbml0aWFsVGVhcmRvd24gPSBpbml0aWFsVGVhcmRvd247CiAgICAgICAgdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLl9wYXJlbnRhZ2UgPSBudWxsOwogICAgICAgIHRoaXMuX2ZpbmFsaXplcnMgPSBudWxsOwogICAgICB9CiAgICAgIFN1YnNjcmlwdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgdmFyIGVycm9yczsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgICB2YXIgX3BhcmVudGFnZSA9IHRoaXMuX3BhcmVudGFnZTsKICAgICAgICAgIGlmIChfcGFyZW50YWdlKSB7CiAgICAgICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IG51bGw7CiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpKSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9wYXJlbnRhZ2VfMSA9IF9fdmFsdWVzKF9wYXJlbnRhZ2UpLCBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCk7ICFfcGFyZW50YWdlXzFfMS5kb25lOyBfcGFyZW50YWdlXzFfMSA9IF9wYXJlbnRhZ2VfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgdmFyIHBhcmVudF8xID0gX3BhcmVudGFnZV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgICAgIHBhcmVudF8xLnJlbW92ZSh0aGlzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgaWYgKF9wYXJlbnRhZ2VfMV8xICYmICFfcGFyZW50YWdlXzFfMS5kb25lICYmIChfYSA9IF9wYXJlbnRhZ2VfMS5yZXR1cm4pKSBfYS5jYWxsKF9wYXJlbnRhZ2VfMSk7CiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIF9wYXJlbnRhZ2UucmVtb3ZlKHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgaW5pdGlhbEZpbmFsaXplciA9IHRoaXMuaW5pdGlhbFRlYXJkb3duOwogICAgICAgICAgaWYgKGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGluaXRpYWxGaW5hbGl6ZXIpKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaW5pdGlhbEZpbmFsaXplcigpOwogICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgZXJyb3JzID0gZSBpbnN0YW5jZW9mIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yID8gZS5lcnJvcnMgOiBbZV07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHZhciBfZmluYWxpemVycyA9IHRoaXMuX2ZpbmFsaXplcnM7CiAgICAgICAgICBpZiAoX2ZpbmFsaXplcnMpIHsKICAgICAgICAgICAgdGhpcy5fZmluYWxpemVycyA9IG51bGw7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2ZpbmFsaXplcnNfMSA9IF9fdmFsdWVzKF9maW5hbGl6ZXJzKSwgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCk7ICFfZmluYWxpemVyc18xXzEuZG9uZTsgX2ZpbmFsaXplcnNfMV8xID0gX2ZpbmFsaXplcnNfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICAgIHZhciBmaW5hbGl6ZXIgPSBfZmluYWxpemVyc18xXzEudmFsdWU7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICBleGVjRmluYWxpemVyKGZpbmFsaXplcik7CiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgZXJyb3JzID0gZXJyb3JzICE9PSBudWxsICYmIGVycm9ycyAhPT0gdm9pZCAwID8gZXJyb3JzIDogW107CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcikgewogICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGVycm9ycykpLCBfX3JlYWQoZXJyLmVycm9ycykpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9ycy5wdXNoKGVycik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMl8xKSB7CiAgICAgICAgICAgICAgZV8yID0geyBlcnJvcjogZV8yXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9maW5hbGl6ZXJzXzFfMSAmJiAhX2ZpbmFsaXplcnNfMV8xLmRvbmUgJiYgKF9iID0gX2ZpbmFsaXplcnNfMS5yZXR1cm4pKSBfYi5jYWxsKF9maW5hbGl6ZXJzXzEpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8yKSB0aHJvdyBlXzIuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXJyb3JzKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbnN1YnNjcmlwdGlvbkVycm9yXzEuVW5zdWJzY3JpcHRpb25FcnJvcihlcnJvcnMpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHRlYXJkb3duICYmIHRlYXJkb3duICE9PSB0aGlzKSB7CiAgICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgZXhlY0ZpbmFsaXplcih0ZWFyZG93bik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGVhcmRvd24gaW5zdGFuY2VvZiBTdWJzY3JpcHRpb24yKSB7CiAgICAgICAgICAgICAgaWYgKHRlYXJkb3duLmNsb3NlZCB8fCB0ZWFyZG93bi5faGFzUGFyZW50KHRoaXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRlYXJkb3duLl9hZGRQYXJlbnQodGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgKHRoaXMuX2ZpbmFsaXplcnMgPSAoX2EgPSB0aGlzLl9maW5hbGl6ZXJzKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXSkucHVzaCh0ZWFyZG93bik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5faGFzUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgcmV0dXJuIF9wYXJlbnRhZ2UgPT09IHBhcmVudCB8fCBBcnJheS5pc0FycmF5KF9wYXJlbnRhZ2UpICYmIF9wYXJlbnRhZ2UuaW5jbHVkZXMocGFyZW50KTsKICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUuX2FkZFBhcmVudCA9IGZ1bmN0aW9uKHBhcmVudCkgewogICAgICAgIHZhciBfcGFyZW50YWdlID0gdGhpcy5fcGFyZW50YWdlOwogICAgICAgIHRoaXMuX3BhcmVudGFnZSA9IEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkgPyAoX3BhcmVudGFnZS5wdXNoKHBhcmVudCksIF9wYXJlbnRhZ2UpIDogX3BhcmVudGFnZSA/IFtfcGFyZW50YWdlLCBwYXJlbnRdIDogcGFyZW50OwogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLnByb3RvdHlwZS5fcmVtb3ZlUGFyZW50ID0gZnVuY3Rpb24ocGFyZW50KSB7CiAgICAgICAgdmFyIF9wYXJlbnRhZ2UgPSB0aGlzLl9wYXJlbnRhZ2U7CiAgICAgICAgaWYgKF9wYXJlbnRhZ2UgPT09IHBhcmVudCkgewogICAgICAgICAgdGhpcy5fcGFyZW50YWdlID0gbnVsbDsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoX3BhcmVudGFnZSkpIHsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShfcGFyZW50YWdlLCBwYXJlbnQpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaXB0aW9uMi5wcm90b3R5cGUucmVtb3ZlID0gZnVuY3Rpb24odGVhcmRvd24pIHsKICAgICAgICB2YXIgX2ZpbmFsaXplcnMgPSB0aGlzLl9maW5hbGl6ZXJzOwogICAgICAgIF9maW5hbGl6ZXJzICYmIGFyclJlbW92ZV8xLmFyclJlbW92ZShfZmluYWxpemVycywgdGVhcmRvd24pOwogICAgICAgIGlmICh0ZWFyZG93biBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbjIpIHsKICAgICAgICAgIHRlYXJkb3duLl9yZW1vdmVQYXJlbnQodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpcHRpb24yLkVNUFRZID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGVtcHR5ID0gbmV3IFN1YnNjcmlwdGlvbjIoKTsKICAgICAgICBlbXB0eS5jbG9zZWQgPSB0cnVlOwogICAgICAgIHJldHVybiBlbXB0eTsKICAgICAgfSgpOwogICAgICByZXR1cm4gU3Vic2NyaXB0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLlN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbjsKICAgIGV4cG9ydHMyLkVNUFRZX1NVQlNDUklQVElPTiA9IFN1YnNjcmlwdGlvbi5FTVBUWTsKICAgIGZ1bmN0aW9uIGlzU3Vic2NyaXB0aW9uKHZhbHVlKSB7CiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFN1YnNjcmlwdGlvbiB8fCB2YWx1ZSAmJiAiY2xvc2VkIiBpbiB2YWx1ZSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih2YWx1ZS5yZW1vdmUpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmFkZCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUudW5zdWJzY3JpYmUpOwogICAgfQogICAgZXhwb3J0czIuaXNTdWJzY3JpcHRpb24gPSBpc1N1YnNjcmlwdGlvbjsKICAgIGZ1bmN0aW9uIGV4ZWNGaW5hbGl6ZXIoZmluYWxpemVyKSB7CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihmaW5hbGl6ZXIpKSB7CiAgICAgICAgZmluYWxpemVyKCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZmluYWxpemVyLnVuc3Vic2NyaWJlKCk7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvY29uZmlnLmpzCnZhciByZXF1aXJlX2NvbmZpZyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9jb25maWcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmNvbmZpZyA9IHsKICAgICAgb25VbmhhbmRsZWRFcnJvcjogbnVsbCwKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uOiBudWxsLAogICAgICBQcm9taXNlOiB2b2lkIDAsCiAgICAgIHVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6IGZhbHNlLAogICAgICB1c2VEZXByZWNhdGVkTmV4dENvbnRleHQ6IGZhbHNlCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzCnZhciByZXF1aXJlX3RpbWVvdXRQcm92aWRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvdGltZW91dFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB2b2lkIDA7CiAgICBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIgPSB7CiAgICAgIHNldFRpbWVvdXQ6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgaWYgKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5zZXRUaW1lb3V0KSB7CiAgICAgICAgICByZXR1cm4gZGVsZWdhdGUuc2V0VGltZW91dC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0VGltZW91dC5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW2hhbmRsZXIsIHRpbWVvdXRdLCBfX3JlYWQoYXJncykpKTsKICAgICAgfSwKICAgICAgY2xlYXJUaW1lb3V0OiBmdW5jdGlvbihoYW5kbGUpIHsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi50aW1lb3V0UHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFyVGltZW91dCkgfHwgY2xlYXJUaW1lb3V0KShoYW5kbGUpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3JlcG9ydFVuaGFuZGxlZEVycm9yLmpzCnZhciByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvcmVwb3J0VW5oYW5kbGVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNvbmZpZ18xID0gcmVxdWlyZV9jb25maWcoKTsKICAgIHZhciB0aW1lb3V0UHJvdmlkZXJfMSA9IHJlcXVpcmVfdGltZW91dFByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiByZXBvcnRVbmhhbmRsZWRFcnJvcihlcnIpIHsKICAgICAgdGltZW91dFByb3ZpZGVyXzEudGltZW91dFByb3ZpZGVyLnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIG9uVW5oYW5kbGVkRXJyb3IgPSBjb25maWdfMS5jb25maWcub25VbmhhbmRsZWRFcnJvcjsKICAgICAgICBpZiAob25VbmhhbmRsZWRFcnJvcikgewogICAgICAgICAgb25VbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBlcnI7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcG9ydFVuaGFuZGxlZEVycm9yID0gcmVwb3J0VW5oYW5kbGVkRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcwp2YXIgcmVxdWlyZV9ub29wID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbm9vcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm9vcCA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIG5vb3AoKSB7CiAgICB9CiAgICBleHBvcnRzMi5ub29wID0gbm9vcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uRmFjdG9yaWVzLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbkZhY3RvcmllcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb25GYWN0b3JpZXMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZU5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLm5leHROb3RpZmljYXRpb24gPSBleHBvcnRzMi5lcnJvck5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLkNPTVBMRVRFX05PVElGSUNBVElPTiA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY3JlYXRlTm90aWZpY2F0aW9uKCJDIiwgdm9pZCAwLCB2b2lkIDApOwogICAgfSgpOwogICAgZnVuY3Rpb24gZXJyb3JOb3RpZmljYXRpb24oZXJyb3IpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiRSIsIHZvaWQgMCwgZXJyb3IpOwogICAgfQogICAgZXhwb3J0czIuZXJyb3JOb3RpZmljYXRpb24gPSBlcnJvck5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG5leHROb3RpZmljYXRpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIGNyZWF0ZU5vdGlmaWNhdGlvbigiTiIsIHZhbHVlLCB2b2lkIDApOwogICAgfQogICAgZXhwb3J0czIubmV4dE5vdGlmaWNhdGlvbiA9IG5leHROb3RpZmljYXRpb247CiAgICBmdW5jdGlvbiBjcmVhdGVOb3RpZmljYXRpb24oa2luZCwgdmFsdWUsIGVycm9yKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAga2luZCwKICAgICAgICB2YWx1ZSwKICAgICAgICBlcnJvcgogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlTm90aWZpY2F0aW9uID0gY3JlYXRlTm90aWZpY2F0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2Vycm9yQ29udGV4dC5qcwp2YXIgcmVxdWlyZV9lcnJvckNvbnRleHQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9lcnJvckNvbnRleHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNhcHR1cmVFcnJvciA9IGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IHZvaWQgMDsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgY29udGV4dCA9IG51bGw7CiAgICBmdW5jdGlvbiBlcnJvckNvbnRleHQoY2IpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKSB7CiAgICAgICAgdmFyIGlzUm9vdCA9ICFjb250ZXh0OwogICAgICAgIGlmIChpc1Jvb3QpIHsKICAgICAgICAgIGNvbnRleHQgPSB7IGVycm9yVGhyb3duOiBmYWxzZSwgZXJyb3I6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgY2IoKTsKICAgICAgICBpZiAoaXNSb290KSB7CiAgICAgICAgICB2YXIgX2EgPSBjb250ZXh0LCBlcnJvclRocm93biA9IF9hLmVycm9yVGhyb3duLCBlcnJvciA9IF9hLmVycm9yOwogICAgICAgICAgY29udGV4dCA9IG51bGw7CiAgICAgICAgICBpZiAoZXJyb3JUaHJvd24pIHsKICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGNiKCk7CiAgICAgIH0KICAgIH0KICAgIGV4cG9ydHMyLmVycm9yQ29udGV4dCA9IGVycm9yQ29udGV4dDsKICAgIGZ1bmN0aW9uIGNhcHR1cmVFcnJvcihlcnIpIHsKICAgICAgaWYgKGNvbmZpZ18xLmNvbmZpZy51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nICYmIGNvbnRleHQpIHsKICAgICAgICBjb250ZXh0LmVycm9yVGhyb3duID0gdHJ1ZTsKICAgICAgICBjb250ZXh0LmVycm9yID0gZXJyOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5jYXB0dXJlRXJyb3IgPSBjYXB0dXJlRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfU3Vic2NyaWJlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TdWJzY3JpYmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkVNUFRZX09CU0VSVkVSID0gZXhwb3J0czIuU2FmZVN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgcmVwb3J0VW5oYW5kbGVkRXJyb3JfMSA9IHJlcXVpcmVfcmVwb3J0VW5oYW5kbGVkRXJyb3IoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBOb3RpZmljYXRpb25GYWN0b3JpZXNfMSA9IHJlcXVpcmVfTm90aWZpY2F0aW9uRmFjdG9yaWVzKCk7CiAgICB2YXIgdGltZW91dFByb3ZpZGVyXzEgPSByZXF1aXJlX3RpbWVvdXRQcm92aWRlcigpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJzY3JpYmVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3Vic2NyaWJlcjIoZGVzdGluYXRpb24pIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLmlzU3RvcHBlZCA9IGZhbHNlOwogICAgICAgIGlmIChkZXN0aW5hdGlvbikgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBkZXN0aW5hdGlvbjsKICAgICAgICAgIGlmIChTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbihkZXN0aW5hdGlvbikpIHsKICAgICAgICAgICAgZGVzdGluYXRpb24uYWRkKF90aGlzKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFN1YnNjcmliZXIyLmNyZWF0ZSA9IGZ1bmN0aW9uKG5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHJldHVybiBuZXcgU2FmZVN1YnNjcmliZXIobmV4dCwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICh0aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgaGFuZGxlU3RvcHBlZE5vdGlmaWNhdGlvbihOb3RpZmljYXRpb25GYWN0b3JpZXNfMS5uZXh0Tm90aWZpY2F0aW9uKHZhbHVlKSwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX25leHQodmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLmVycm9yTm90aWZpY2F0aW9uKGVyciksIHRoaXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICB0aGlzLl9lcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbkZhY3Rvcmllc18xLkNPTVBMRVRFX05PVElGSUNBVElPTiwgdGhpcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgIHRoaXMuX2NvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJzY3JpYmVyMi5wcm90b3R5cGUudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoIXRoaXMuY2xvc2VkKSB7CiAgICAgICAgICB0aGlzLmlzU3RvcHBlZCA9IHRydWU7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbnVsbDsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fbmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5uZXh0KHZhbHVlKTsKICAgICAgfTsKICAgICAgU3Vic2NyaWJlcjIucHJvdG90eXBlLl9lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHRyeSB7CiAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIFN1YnNjcmliZXIyLnByb3RvdHlwZS5fY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gU3Vic2NyaWJlcjI7CiAgICB9KFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbik7CiAgICBleHBvcnRzMi5TdWJzY3JpYmVyID0gU3Vic2NyaWJlcjsKICAgIHZhciBfYmluZCA9IEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kOwogICAgZnVuY3Rpb24gYmluZChmbiwgdGhpc0FyZykgewogICAgICByZXR1cm4gX2JpbmQuY2FsbChmbiwgdGhpc0FyZyk7CiAgICB9CiAgICB2YXIgQ29uc3VtZXJPYnNlcnZlciA9IGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBDb25zdW1lck9ic2VydmVyMihwYXJ0aWFsT2JzZXJ2ZXIpIHsKICAgICAgICB0aGlzLnBhcnRpYWxPYnNlcnZlciA9IHBhcnRpYWxPYnNlcnZlcjsKICAgICAgfQogICAgICBDb25zdW1lck9ic2VydmVyMi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIubmV4dCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuZXJyb3IpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5lcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnIpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgQ29uc3VtZXJPYnNlcnZlcjIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHBhcnRpYWxPYnNlcnZlciA9IHRoaXMucGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChwYXJ0aWFsT2JzZXJ2ZXIuY29tcGxldGUpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHBhcnRpYWxPYnNlcnZlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgaGFuZGxlVW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIENvbnN1bWVyT2JzZXJ2ZXIyOwogICAgfSgpOwogICAgdmFyIFNhZmVTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTYWZlU3Vic2NyaWJlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFNhZmVTdWJzY3JpYmVyMihvYnNlcnZlck9yTmV4dCwgZXJyb3IsIGNvbXBsZXRlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICB2YXIgcGFydGlhbE9ic2VydmVyOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgIW9ic2VydmVyT3JOZXh0KSB7CiAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSB7CiAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0ICE9PSBudWxsICYmIG9ic2VydmVyT3JOZXh0ICE9PSB2b2lkIDAgPyBvYnNlcnZlck9yTmV4dCA6IHZvaWQgMCwKICAgICAgICAgICAgZXJyb3I6IGVycm9yICE9PSBudWxsICYmIGVycm9yICE9PSB2b2lkIDAgPyBlcnJvciA6IHZvaWQgMCwKICAgICAgICAgICAgY29tcGxldGU6IGNvbXBsZXRlICE9PSBudWxsICYmIGNvbXBsZXRlICE9PSB2b2lkIDAgPyBjb21wbGV0ZSA6IHZvaWQgMAogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGNvbnRleHRfMTsKICAgICAgICAgIGlmIChfdGhpcyAmJiBjb25maWdfMS5jb25maWcudXNlRGVwcmVjYXRlZE5leHRDb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnRleHRfMSA9IE9iamVjdC5jcmVhdGUob2JzZXJ2ZXJPck5leHQpOwogICAgICAgICAgICBjb250ZXh0XzEudW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgcGFydGlhbE9ic2VydmVyID0gewogICAgICAgICAgICAgIG5leHQ6IG9ic2VydmVyT3JOZXh0Lm5leHQgJiYgYmluZChvYnNlcnZlck9yTmV4dC5uZXh0LCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGVycm9yOiBvYnNlcnZlck9yTmV4dC5lcnJvciAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmVycm9yLCBjb250ZXh0XzEpLAogICAgICAgICAgICAgIGNvbXBsZXRlOiBvYnNlcnZlck9yTmV4dC5jb21wbGV0ZSAmJiBiaW5kKG9ic2VydmVyT3JOZXh0LmNvbXBsZXRlLCBjb250ZXh0XzEpCiAgICAgICAgICAgIH07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0aWFsT2JzZXJ2ZXIgPSBvYnNlcnZlck9yTmV4dDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgX3RoaXMuZGVzdGluYXRpb24gPSBuZXcgQ29uc3VtZXJPYnNlcnZlcihwYXJ0aWFsT2JzZXJ2ZXIpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICByZXR1cm4gU2FmZVN1YnNjcmliZXIyOwogICAgfShTdWJzY3JpYmVyKTsKICAgIGV4cG9ydHMyLlNhZmVTdWJzY3JpYmVyID0gU2FmZVN1YnNjcmliZXI7CiAgICBmdW5jdGlvbiBoYW5kbGVVbmhhbmRsZWRFcnJvcihlcnJvcikgewogICAgICBpZiAoY29uZmlnXzEuY29uZmlnLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcpIHsKICAgICAgICBlcnJvckNvbnRleHRfMS5jYXB0dXJlRXJyb3IoZXJyb3IpOwogICAgICB9IGVsc2UgewogICAgICAgIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IoZXJyb3IpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkZWZhdWx0RXJyb3JIYW5kbGVyKGVycikgewogICAgICB0aHJvdyBlcnI7CiAgICB9CiAgICBmdW5jdGlvbiBoYW5kbGVTdG9wcGVkTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcikgewogICAgICB2YXIgb25TdG9wcGVkTm90aWZpY2F0aW9uID0gY29uZmlnXzEuY29uZmlnLm9uU3RvcHBlZE5vdGlmaWNhdGlvbjsKICAgICAgb25TdG9wcGVkTm90aWZpY2F0aW9uICYmIHRpbWVvdXRQcm92aWRlcl8xLnRpbWVvdXRQcm92aWRlci5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBvblN0b3BwZWROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5FTVBUWV9PQlNFUlZFUiA9IHsKICAgICAgY2xvc2VkOiB0cnVlLAogICAgICBuZXh0OiBub29wXzEubm9vcCwKICAgICAgZXJyb3I6IGRlZmF1bHRFcnJvckhhbmRsZXIsCiAgICAgIGNvbXBsZXRlOiBub29wXzEubm9vcAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL29ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfb2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zeW1ib2wvb2JzZXJ2YWJsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLm9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLm9ic2VydmFibGUgfHwgIkBAb2JzZXJ2YWJsZSI7CiAgICB9KCk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaWRlbnRpdHkuanMKdmFyIHJlcXVpcmVfaWRlbnRpdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pZGVudGl0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWRlbnRpdHkgPSB2b2lkIDA7CiAgICBmdW5jdGlvbiBpZGVudGl0eSh4KSB7CiAgICAgIHJldHVybiB4OwogICAgfQogICAgZXhwb3J0czIuaWRlbnRpdHkgPSBpZGVudGl0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzCnZhciByZXF1aXJlX3BpcGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9waXBlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5waXBlRnJvbUFycmF5ID0gZXhwb3J0czIucGlwZSA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcGlwZSgpIHsKICAgICAgdmFyIGZucyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGZuc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBwaXBlRnJvbUFycmF5KGZucyk7CiAgICB9CiAgICBleHBvcnRzMi5waXBlID0gcGlwZTsKICAgIGZ1bmN0aW9uIHBpcGVGcm9tQXJyYXkoZm5zKSB7CiAgICAgIGlmIChmbnMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgaWYgKGZucy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZm5zWzBdOwogICAgICB9CiAgICAgIHJldHVybiBmdW5jdGlvbiBwaXBlZChpbnB1dCkgewogICAgICAgIHJldHVybiBmbnMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGZuKSB7CiAgICAgICAgICByZXR1cm4gZm4ocHJldik7CiAgICAgICAgfSwgaW5wdXQpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIucGlwZUZyb21BcnJheSA9IHBpcGVGcm9tQXJyYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9PYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBvYnNlcnZhYmxlXzEgPSByZXF1aXJlX29ic2VydmFibGUoKTsKICAgIHZhciBwaXBlXzEgPSByZXF1aXJlX3BpcGUoKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXJyb3JDb250ZXh0XzEgPSByZXF1aXJlX2Vycm9yQ29udGV4dCgpOwogICAgdmFyIE9ic2VydmFibGUgPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gT2JzZXJ2YWJsZTIoc3Vic2NyaWJlKSB7CiAgICAgICAgaWYgKHN1YnNjcmliZSkgewogICAgICAgICAgdGhpcy5fc3Vic2NyaWJlID0gc3Vic2NyaWJlOwogICAgICAgIH0KICAgICAgfQogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUubGlmdCA9IGZ1bmN0aW9uKG9wZXJhdG9yKSB7CiAgICAgICAgdmFyIG9ic2VydmFibGUgPSBuZXcgT2JzZXJ2YWJsZTIoKTsKICAgICAgICBvYnNlcnZhYmxlLnNvdXJjZSA9IHRoaXM7CiAgICAgICAgb2JzZXJ2YWJsZS5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuc3Vic2NyaWJlID0gZnVuY3Rpb24ob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBpc1N1YnNjcmliZXIob2JzZXJ2ZXJPck5leHQpID8gb2JzZXJ2ZXJPck5leHQgOiBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUpOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYSA9IF90aGlzLCBvcGVyYXRvciA9IF9hLm9wZXJhdG9yLCBzb3VyY2UgPSBfYS5zb3VyY2U7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChvcGVyYXRvciA/IG9wZXJhdG9yLmNhbGwoc3Vic2NyaWJlciwgc291cmNlKSA6IHNvdXJjZSA/IF90aGlzLl9zdWJzY3JpYmUoc3Vic2NyaWJlcikgOiBfdGhpcy5fdHJ5U3Vic2NyaWJlKHN1YnNjcmliZXIpKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlcjsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzaW5rKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHJldHVybiB0aGlzLl9zdWJzY3JpYmUoc2luayk7CiAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICBzaW5rLmVycm9yKGVycik7CiAgICAgICAgfQogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUuZm9yRWFjaCA9IGZ1bmN0aW9uKG5leHQsIHByb21pc2VDdG9yKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBwcm9taXNlQ3RvciA9IGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKTsKICAgICAgICByZXR1cm4gbmV3IHByb21pc2VDdG9yKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgdmFyIHN1YnNjcmliZXIgPSBuZXcgU3Vic2NyaWJlcl8xLlNhZmVTdWJzY3JpYmVyKHsKICAgICAgICAgICAgbmV4dDogZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICByZWplY3QoZXJyKTsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICAgIGNvbXBsZXRlOiByZXNvbHZlCiAgICAgICAgICB9KTsKICAgICAgICAgIF90aGlzLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHJldHVybiAoX2EgPSB0aGlzLnNvdXJjZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIucHJvdG90eXBlW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUucGlwZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvcGVyYXRpb25zID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIG9wZXJhdGlvbnNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHBpcGVfMS5waXBlRnJvbUFycmF5KG9wZXJhdGlvbnMpKHRoaXMpOwogICAgICB9OwogICAgICBPYnNlcnZhYmxlMi5wcm90b3R5cGUudG9Qcm9taXNlID0gZnVuY3Rpb24ocHJvbWlzZUN0b3IpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIHByb21pc2VDdG9yID0gZ2V0UHJvbWlzZUN0b3IocHJvbWlzZUN0b3IpOwogICAgICAgIHJldHVybiBuZXcgcHJvbWlzZUN0b3IoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICB2YXIgdmFsdWU7CiAgICAgICAgICBfdGhpcy5zdWJzY3JpYmUoZnVuY3Rpb24oeCkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUgPSB4OwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh2YWx1ZSk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfTsKICAgICAgT2JzZXJ2YWJsZTIuY3JlYXRlID0gZnVuY3Rpb24oc3Vic2NyaWJlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlMihzdWJzY3JpYmUpOwogICAgICB9OwogICAgICByZXR1cm4gT2JzZXJ2YWJsZTI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5PYnNlcnZhYmxlID0gT2JzZXJ2YWJsZTsKICAgIGZ1bmN0aW9uIGdldFByb21pc2VDdG9yKHByb21pc2VDdG9yKSB7CiAgICAgIHZhciBfYTsKICAgICAgcmV0dXJuIChfYSA9IHByb21pc2VDdG9yICE9PSBudWxsICYmIHByb21pc2VDdG9yICE9PSB2b2lkIDAgPyBwcm9taXNlQ3RvciA6IGNvbmZpZ18xLmNvbmZpZy5Qcm9taXNlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBQcm9taXNlOwogICAgfQogICAgZnVuY3Rpb24gaXNPYnNlcnZlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUubmV4dCkgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuZXJyb3IpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlLmNvbXBsZXRlKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzU3Vic2NyaWJlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBTdWJzY3JpYmVyXzEuU3Vic2NyaWJlciB8fCBpc09ic2VydmVyKHZhbHVlKSAmJiBTdWJzY3JpcHRpb25fMS5pc1N1YnNjcmlwdGlvbih2YWx1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcwp2YXIgcmVxdWlyZV9saWZ0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvbGlmdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub3BlcmF0ZSA9IGV4cG9ydHMyLmhhc0xpZnQgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBoYXNMaWZ0KHNvdXJjZSkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc291cmNlID09PSBudWxsIHx8IHNvdXJjZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc291cmNlLmxpZnQpOwogICAgfQogICAgZXhwb3J0czIuaGFzTGlmdCA9IGhhc0xpZnQ7CiAgICBmdW5jdGlvbiBvcGVyYXRlKGluaXQpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIGlmIChoYXNMaWZ0KHNvdXJjZSkpIHsKICAgICAgICAgIHJldHVybiBzb3VyY2UubGlmdChmdW5jdGlvbihsaWZ0ZWRTb3VyY2UpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICByZXR1cm4gaW5pdChsaWZ0ZWRTb3VyY2UsIHRoaXMpOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICB0aGlzLmVycm9yKGVycik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmFibGUgdG8gbGlmdCB1bmtub3duIE9ic2VydmFibGUgdHlwZSIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub3BlcmF0ZSA9IG9wZXJhdGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMKdmFyIHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9PcGVyYXRvclN1YnNjcmliZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gZXhwb3J0czIuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUpIHsKICAgICAgcmV0dXJuIG5ldyBPcGVyYXRvclN1YnNjcmliZXIoZGVzdGluYXRpb24sIG9uTmV4dCwgb25Db21wbGV0ZSwgb25FcnJvciwgb25GaW5hbGl6ZSk7CiAgICB9CiAgICBleHBvcnRzMi5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIgPSBjcmVhdGVPcGVyYXRvclN1YnNjcmliZXI7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhPcGVyYXRvclN1YnNjcmliZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBPcGVyYXRvclN1YnNjcmliZXIyKGRlc3RpbmF0aW9uLCBvbk5leHQsIG9uQ29tcGxldGUsIG9uRXJyb3IsIG9uRmluYWxpemUsIHNob3VsZFVuc3Vic2NyaWJlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgZGVzdGluYXRpb24pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMub25GaW5hbGl6ZSA9IG9uRmluYWxpemU7CiAgICAgICAgX3RoaXMuc2hvdWxkVW5zdWJzY3JpYmUgPSBzaG91bGRVbnN1YnNjcmliZTsKICAgICAgICBfdGhpcy5fbmV4dCA9IG9uTmV4dCA/IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBvbk5leHQodmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX25leHQ7CiAgICAgICAgX3RoaXMuX2Vycm9yID0gb25FcnJvciA/IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25FcnJvcihlcnIpOwogICAgICAgICAgfSBjYXRjaCAoZXJyMikgewogICAgICAgICAgICBkZXN0aW5hdGlvbi5lcnJvcihlcnIyKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRoaXMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9IDogX3N1cGVyLnByb3RvdHlwZS5fZXJyb3I7CiAgICAgICAgX3RoaXMuX2NvbXBsZXRlID0gb25Db21wbGV0ZSA/IGZ1bmN0aW9uKCkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgb25Db21wbGV0ZSgpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGRlc3RpbmF0aW9uLmVycm9yKGVycik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfSA6IF9zdXBlci5wcm90b3R5cGUuX2NvbXBsZXRlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPcGVyYXRvclN1YnNjcmliZXIyLnByb3RvdHlwZS51bnN1YnNjcmliZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoIXRoaXMuc2hvdWxkVW5zdWJzY3JpYmUgfHwgdGhpcy5zaG91bGRVbnN1YnNjcmliZSgpKSB7CiAgICAgICAgICB2YXIgY2xvc2VkXzEgPSB0aGlzLmNsb3NlZDsKICAgICAgICAgIF9zdXBlci5wcm90b3R5cGUudW5zdWJzY3JpYmUuY2FsbCh0aGlzKTsKICAgICAgICAgICFjbG9zZWRfMSAmJiAoKF9hID0gdGhpcy5vbkZpbmFsaXplKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0aGlzKSk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gT3BlcmF0b3JTdWJzY3JpYmVyMjsKICAgIH0oU3Vic2NyaWJlcl8xLlN1YnNjcmliZXIpOwogICAgZXhwb3J0czIuT3BlcmF0b3JTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmVmQ291bnQuanMKdmFyIHJlcXVpcmVfcmVmQ291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZkNvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZWZDb3VudCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiByZWZDb3VudCgpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBzb3VyY2UuX3JlZkNvdW50Kys7CiAgICAgICAgdmFyIHJlZkNvdW50ZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoIXNvdXJjZSB8fCBzb3VyY2UuX3JlZkNvdW50IDw9IDAgfHwgMCA8IC0tc291cmNlLl9yZWZDb3VudCkgewogICAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgdmFyIHNoYXJlZENvbm5lY3Rpb24gPSBzb3VyY2UuX2Nvbm5lY3Rpb247CiAgICAgICAgICB2YXIgY29ubiA9IGNvbm5lY3Rpb247CiAgICAgICAgICBjb25uZWN0aW9uID0gbnVsbDsKICAgICAgICAgIGlmIChzaGFyZWRDb25uZWN0aW9uICYmICghY29ubiB8fCBzaGFyZWRDb25uZWN0aW9uID09PSBjb25uKSkgewogICAgICAgICAgICBzaGFyZWRDb25uZWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShyZWZDb3VudGVyKTsKICAgICAgICBpZiAoIXJlZkNvdW50ZXIuY2xvc2VkKSB7CiAgICAgICAgICBjb25uZWN0aW9uID0gc291cmNlLmNvbm5lY3QoKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVmQ291bnQgPSByZWZDb3VudDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9Db25uZWN0YWJsZU9ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvQ29ubmVjdGFibGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgcmVmQ291bnRfMSA9IHJlcXVpcmVfcmVmQ291bnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhDb25uZWN0YWJsZU9ic2VydmFibGUyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBDb25uZWN0YWJsZU9ic2VydmFibGUyKHNvdXJjZSwgc3ViamVjdEZhY3RvcnkpIHsKICAgICAgICB2YXIgX3RoaXMgPSBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICBfdGhpcy5zdWJqZWN0RmFjdG9yeSA9IHN1YmplY3RGYWN0b3J5OwogICAgICAgIF90aGlzLl9zdWJqZWN0ID0gbnVsbDsKICAgICAgICBfdGhpcy5fcmVmQ291bnQgPSAwOwogICAgICAgIF90aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBpZiAobGlmdF8xLmhhc0xpZnQoc291cmNlKSkgewogICAgICAgICAgX3RoaXMubGlmdCA9IHNvdXJjZS5saWZ0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBDb25uZWN0YWJsZU9ic2VydmFibGUyLnByb3RvdHlwZS5nZXRTdWJqZWN0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSB0aGlzLl9zdWJqZWN0OwogICAgICAgIGlmICghc3ViamVjdCB8fCBzdWJqZWN0LmlzU3RvcHBlZCkgewogICAgICAgICAgdGhpcy5fc3ViamVjdCA9IHRoaXMuc3ViamVjdEZhY3RvcnkoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7CiAgICAgIH07CiAgICAgIENvbm5lY3RhYmxlT2JzZXJ2YWJsZTIucHJvdG90eXBlLl90ZWFyZG93biA9IGZ1bmN0aW9uKCkgewogICAgICAgIHRoaXMuX3JlZkNvdW50ID0gMDsKICAgICAgICB2YXIgX2Nvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIHRoaXMuX3N1YmplY3QgPSB0aGlzLl9jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICBfY29ubmVjdGlvbiA9PT0gbnVsbCB8fCBfY29ubmVjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Nvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIGNvbm5lY3Rpb24gPSB0aGlzLl9jb25uZWN0aW9uOwogICAgICAgIGlmICghY29ubmVjdGlvbikgewogICAgICAgICAgY29ubmVjdGlvbiA9IHRoaXMuX2Nvbm5lY3Rpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgc3ViamVjdF8xID0gdGhpcy5nZXRTdWJqZWN0KCk7CiAgICAgICAgICBjb25uZWN0aW9uLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YmplY3RfMSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICAgIHN1YmplY3RfMS5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICAgIF90aGlzLl90ZWFyZG93bigpOwogICAgICAgICAgICBzdWJqZWN0XzEuZXJyb3IoZXJyKTsKICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gX3RoaXMuX3RlYXJkb3duKCk7CiAgICAgICAgICB9KSkpOwogICAgICAgICAgaWYgKGNvbm5lY3Rpb24uY2xvc2VkKSB7CiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3Rpb24gPSBudWxsOwogICAgICAgICAgICBjb25uZWN0aW9uID0gU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uLkVNUFRZOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKICAgICAgfTsKICAgICAgQ29ubmVjdGFibGVPYnNlcnZhYmxlMi5wcm90b3R5cGUucmVmQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gcmVmQ291bnRfMS5yZWZDb3VudCgpKHRoaXMpOwogICAgICB9OwogICAgICByZXR1cm4gQ29ubmVjdGFibGVPYnNlcnZhYmxlMjsKICAgIH0oT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpOwogICAgZXhwb3J0czIuQ29ubmVjdGFibGVPYnNlcnZhYmxlID0gQ29ubmVjdGFibGVPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIucGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLnBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXIuZGVsZWdhdGUgfHwgcGVyZm9ybWFuY2UpLm5vdygpOwogICAgICB9LAogICAgICBkZWxlZ2F0ZTogdm9pZCAwCiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYW5pbWF0aW9uRnJhbWVQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIgPSB7CiAgICAgIHNjaGVkdWxlOiBmdW5jdGlvbihjYWxsYmFjaykgewogICAgICAgIHZhciByZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lOwogICAgICAgIHZhciBjYW5jZWwgPSBjYW5jZWxBbmltYXRpb25GcmFtZTsKICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSkgewogICAgICAgICAgcmVxdWVzdCA9IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZTsKICAgICAgICAgIGNhbmNlbCA9IGRlbGVnYXRlLmNhbmNlbEFuaW1hdGlvbkZyYW1lOwogICAgICAgIH0KICAgICAgICB2YXIgaGFuZGxlID0gcmVxdWVzdChmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICBjYW5jZWwgPSB2b2lkIDA7CiAgICAgICAgICBjYWxsYmFjayh0aW1lc3RhbXAyKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBjYW5jZWwgPT09IG51bGwgfHwgY2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjYW5jZWwoaGFuZGxlKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lOiBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnJlcXVlc3RBbmltYXRpb25GcmFtZSkgfHwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjYW5jZWxBbmltYXRpb25GcmFtZTogZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIHJldHVybiAoKGRlbGVnYXRlID09PSBudWxsIHx8IGRlbGVnYXRlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWxlZ2F0ZS5jYW5jZWxBbmltYXRpb25GcmFtZSkgfHwgY2FuY2VsQW5pbWF0aW9uRnJhbWUpLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZG9tL2FuaW1hdGlvbkZyYW1lcy5qcwp2YXIgcmVxdWlyZV9hbmltYXRpb25GcmFtZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9kb20vYW5pbWF0aW9uRnJhbWVzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgcGVyZm9ybWFuY2VUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZVByb3ZpZGVyKCk7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXModGltZXN0YW1wUHJvdmlkZXIpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcFByb3ZpZGVyID8gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSh0aW1lc3RhbXBQcm92aWRlcikgOiBERUZBVUxUX0FOSU1BVElPTl9GUkFNRVM7CiAgICB9CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZXMgPSBhbmltYXRpb25GcmFtZXM7CiAgICBmdW5jdGlvbiBhbmltYXRpb25GcmFtZXNGYWN0b3J5KHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBwcm92aWRlciA9IHRpbWVzdGFtcFByb3ZpZGVyIHx8IHBlcmZvcm1hbmNlVGltZXN0YW1wUHJvdmlkZXJfMS5wZXJmb3JtYW5jZVRpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIHZhciBzdGFydCA9IHByb3ZpZGVyLm5vdygpOwogICAgICAgIHZhciBpZCA9IDA7CiAgICAgICAgdmFyIHJ1biA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBpZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbih0aW1lc3RhbXAyKSB7CiAgICAgICAgICAgICAgaWQgPSAwOwogICAgICAgICAgICAgIHZhciBub3cgPSBwcm92aWRlci5ub3coKTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoewogICAgICAgICAgICAgICAgdGltZXN0YW1wOiB0aW1lc3RhbXBQcm92aWRlciA/IG5vdyA6IHRpbWVzdGFtcDIsCiAgICAgICAgICAgICAgICBlbGFwc2VkOiBub3cgLSBzdGFydAogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJ1bigpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHJ1bigpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChpZCkgewogICAgICAgICAgICBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEuYW5pbWF0aW9uRnJhbWVQcm92aWRlci5jYW5jZWxBbmltYXRpb25GcmFtZShpZCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICB2YXIgREVGQVVMVF9BTklNQVRJT05fRlJBTUVTID0gYW5pbWF0aW9uRnJhbWVzRmFjdG9yeSgpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL09iamVjdFVuc3Vic2NyaWJlZEVycm9yLmpzCnZhciByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE9iamVjdFVuc3Vic2NyaWJlZEVycm9ySW1wbCgpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk9iamVjdFVuc3Vic2NyaWJlZEVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAib2JqZWN0IHVuc3Vic2NyaWJlZCI7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9TdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1N1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5vbnltb3VzU3ViamVjdCA9IGV4cG9ydHMyLlN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgU3Vic2NyaXB0aW9uXzEgPSByZXF1aXJlX1N1YnNjcmlwdGlvbigpOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGVycm9yQ29udGV4dF8xID0gcmVxdWlyZV9lcnJvckNvbnRleHQoKTsKICAgIHZhciBTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhTdWJqZWN0MiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5jbG9zZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBfdGhpcy5vYnNlcnZlcnMgPSBbXTsKICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSBmYWxzZTsKICAgICAgICBfdGhpcy5oYXNFcnJvciA9IGZhbHNlOwogICAgICAgIF90aGlzLnRocm93bkVycm9yID0gbnVsbDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgU3ViamVjdDIucHJvdG90eXBlLmxpZnQgPSBmdW5jdGlvbihvcGVyYXRvcikgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFub255bW91c1N1YmplY3QodGhpcywgdGhpcyk7CiAgICAgICAgc3ViamVjdC5vcGVyYXRvciA9IG9wZXJhdG9yOwogICAgICAgIHJldHVybiBzdWJqZWN0OwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX3Rocm93SWZDbG9zZWQgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBPYmplY3RVbnN1YnNjcmliZWRFcnJvcl8xLk9iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICBlcnJvckNvbnRleHRfMS5lcnJvckNvbnRleHQoZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBpZiAoIV90aGlzLmN1cnJlbnRPYnNlcnZlcnMpIHsKICAgICAgICAgICAgICBfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gQXJyYXkuZnJvbShfdGhpcy5vYnNlcnZlcnMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgX2IgPSBfX3ZhbHVlcyhfdGhpcy5jdXJyZW50T2JzZXJ2ZXJzKSwgX2MgPSBfYi5uZXh0KCk7ICFfYy5kb25lOyBfYyA9IF9iLm5leHQoKSkgewogICAgICAgICAgICAgICAgdmFyIG9ic2VydmVyID0gX2MudmFsdWU7CiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKF9jICYmICFfYy5kb25lICYmIChfYSA9IF9iLnJldHVybikpIF9hLmNhbGwoX2IpOwogICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICBpZiAoZV8xKSB0aHJvdyBlXzEuZXJyb3I7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgZXJyb3JDb250ZXh0XzEuZXJyb3JDb250ZXh0KGZ1bmN0aW9uKCkgewogICAgICAgICAgX3RoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICAgIGlmICghX3RoaXMuaXNTdG9wcGVkKSB7CiAgICAgICAgICAgIF90aGlzLmhhc0Vycm9yID0gX3RoaXMuaXNTdG9wcGVkID0gdHJ1ZTsKICAgICAgICAgICAgX3RoaXMudGhyb3duRXJyb3IgPSBlcnI7CiAgICAgICAgICAgIHZhciBvYnNlcnZlcnMgPSBfdGhpcy5vYnNlcnZlcnM7CiAgICAgICAgICAgIHdoaWxlIChvYnNlcnZlcnMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgb2JzZXJ2ZXJzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuY29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAgIGVycm9yQ29udGV4dF8xLmVycm9yQ29udGV4dChmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgICBpZiAoIV90aGlzLmlzU3RvcHBlZCkgewogICAgICAgICAgICBfdGhpcy5pc1N0b3BwZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgb2JzZXJ2ZXJzID0gX3RoaXMub2JzZXJ2ZXJzOwogICAgICAgICAgICB3aGlsZSAob2JzZXJ2ZXJzLmxlbmd0aCkgewogICAgICAgICAgICAgIG9ic2VydmVycy5zaGlmdCgpLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdGhpcy5pc1N0b3BwZWQgPSB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5vYnNlcnZlcnMgPSB0aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICB9OwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoU3ViamVjdDIucHJvdG90eXBlLCAib2JzZXJ2ZWQiLCB7CiAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBfYTsKICAgICAgICAgIHJldHVybiAoKF9hID0gdGhpcy5vYnNlcnZlcnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGgpID4gMDsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLl90cnlTdWJzY3JpYmUuY2FsbCh0aGlzLCBzdWJzY3JpYmVyKTsKICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdGhpcy5fdGhyb3dJZkNsb3NlZCgpOwogICAgICAgIHRoaXMuX2NoZWNrRmluYWxpemVkU3RhdHVzZXMoc3Vic2NyaWJlcik7CiAgICAgICAgcmV0dXJuIHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5wcm90b3R5cGUuX2lubmVyU3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaGFzRXJyb3IgPSBfYS5oYXNFcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBvYnNlcnZlcnMgPSBfYS5vYnNlcnZlcnM7CiAgICAgICAgaWYgKGhhc0Vycm9yIHx8IGlzU3RvcHBlZCkgewogICAgICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgICB9CiAgICAgICAgdGhpcy5jdXJyZW50T2JzZXJ2ZXJzID0gbnVsbDsKICAgICAgICBvYnNlcnZlcnMucHVzaChzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbihmdW5jdGlvbigpIHsKICAgICAgICAgIF90aGlzLmN1cnJlbnRPYnNlcnZlcnMgPSBudWxsOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKG9ic2VydmVycywgc3Vic2NyaWJlcik7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIFN1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCB0aHJvd25FcnJvciA9IF9hLnRocm93bkVycm9yLCBpc1N0b3BwZWQgPSBfYS5pc1N0b3BwZWQ7CiAgICAgICAgaWYgKGhhc0Vycm9yKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKHRocm93bkVycm9yKTsKICAgICAgICB9IGVsc2UgaWYgKGlzU3RvcHBlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgU3ViamVjdDIucHJvdG90eXBlLmFzT2JzZXJ2YWJsZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBvYnNlcnZhYmxlID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKCk7CiAgICAgICAgb2JzZXJ2YWJsZS5zb3VyY2UgPSB0aGlzOwogICAgICAgIHJldHVybiBvYnNlcnZhYmxlOwogICAgICB9OwogICAgICBTdWJqZWN0Mi5jcmVhdGUgPSBmdW5jdGlvbihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBBbm9ueW1vdXNTdWJqZWN0KGRlc3RpbmF0aW9uLCBzb3VyY2UpOwogICAgICB9OwogICAgICByZXR1cm4gU3ViamVjdDI7CiAgICB9KE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKTsKICAgIGV4cG9ydHMyLlN1YmplY3QgPSBTdWJqZWN0OwogICAgdmFyIEFub255bW91c1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFub255bW91c1N1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbm9ueW1vdXNTdWJqZWN0MihkZXN0aW5hdGlvbiwgc291cmNlKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5kZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uOwogICAgICAgIF90aGlzLnNvdXJjZSA9IHNvdXJjZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5leHQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIEFub255bW91c1N1YmplY3QyLnByb3RvdHlwZS5lcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5kZXN0aW5hdGlvbikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmVycm9yKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZXJyKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLmNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICAoX2IgPSAoX2EgPSB0aGlzLmRlc3RpbmF0aW9uKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29tcGxldGUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hKTsKICAgICAgfTsKICAgICAgQW5vbnltb3VzU3ViamVjdDIucHJvdG90eXBlLl9zdWJzY3JpYmUgPSBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5zb3VyY2UpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zdWJzY3JpYmUoc3Vic2NyaWJlcikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IFN1YnNjcmlwdGlvbl8xLkVNUFRZX1NVQlNDUklQVElPTjsKICAgICAgfTsKICAgICAgcmV0dXJuIEFub255bW91c1N1YmplY3QyOwogICAgfShTdWJqZWN0KTsKICAgIGV4cG9ydHMyLkFub255bW91c1N1YmplY3QgPSBBbm9ueW1vdXNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3QuanMKdmFyIHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgQmVoYXZpb3JTdWJqZWN0ID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhCZWhhdmlvclN1YmplY3QyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBCZWhhdmlvclN1YmplY3QyKF92YWx1ZSkgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gX3ZhbHVlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUsICJ2YWx1ZSIsIHsKICAgICAgICBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWUoKTsKICAgICAgICB9LAogICAgICAgIGVudW1lcmFibGU6IGZhbHNlLAogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICB9KTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUuX3N1YnNjcmliZSA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc3Vic2NyaXB0aW9uID0gX3N1cGVyLnByb3RvdHlwZS5fc3Vic2NyaWJlLmNhbGwodGhpcywgc3Vic2NyaWJlcik7CiAgICAgICAgIXN1YnNjcmlwdGlvbi5jbG9zZWQgJiYgc3Vic2NyaWJlci5uZXh0KHRoaXMuX3ZhbHVlKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBCZWhhdmlvclN1YmplY3QyLnByb3RvdHlwZS5nZXRWYWx1ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIGhhc0Vycm9yID0gX2EuaGFzRXJyb3IsIHRocm93bkVycm9yID0gX2EudGhyb3duRXJyb3IsIF92YWx1ZSA9IF9hLl92YWx1ZTsKICAgICAgICBpZiAoaGFzRXJyb3IpIHsKICAgICAgICAgIHRocm93IHRocm93bkVycm9yOwogICAgICAgIH0KICAgICAgICB0aGlzLl90aHJvd0lmQ2xvc2VkKCk7CiAgICAgICAgcmV0dXJuIF92YWx1ZTsKICAgICAgfTsKICAgICAgQmVoYXZpb3JTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgX3N1cGVyLnByb3RvdHlwZS5uZXh0LmNhbGwodGhpcywgdGhpcy5fdmFsdWUgPSB2YWx1ZSk7CiAgICAgIH07CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3QyOwogICAgfShTdWJqZWN0XzEuU3ViamVjdCk7CiAgICBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBCZWhhdmlvclN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9kYXRlVGltZXN0YW1wUHJvdmlkZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlciA9IHsKICAgICAgbm93OiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gKGV4cG9ydHMyLmRhdGVUaW1lc3RhbXBQcm92aWRlci5kZWxlZ2F0ZSB8fCBEYXRlKS5ub3coKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdC5qcwp2YXIgcmVxdWlyZV9SZXBsYXlTdWJqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL1JlcGxheVN1YmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgUmVwbGF5U3ViamVjdCA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoUmVwbGF5U3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFJlcGxheVN1YmplY3QyKF9idWZmZXJTaXplLCBfd2luZG93VGltZSwgX3RpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgICAgaWYgKF9idWZmZXJTaXplID09PSB2b2lkIDApIHsKICAgICAgICAgIF9idWZmZXJTaXplID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIGlmIChfd2luZG93VGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBfd2luZG93VGltZSA9IEluZmluaXR5OwogICAgICAgIH0KICAgICAgICBpZiAoX3RpbWVzdGFtcFByb3ZpZGVyID09PSB2b2lkIDApIHsKICAgICAgICAgIF90aW1lc3RhbXBQcm92aWRlciA9IGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xLmRhdGVUaW1lc3RhbXBQcm92aWRlcjsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcykgfHwgdGhpczsKICAgICAgICBfdGhpcy5fYnVmZmVyU2l6ZSA9IF9idWZmZXJTaXplOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gX3dpbmRvd1RpbWU7CiAgICAgICAgX3RoaXMuX3RpbWVzdGFtcFByb3ZpZGVyID0gX3RpbWVzdGFtcFByb3ZpZGVyOwogICAgICAgIF90aGlzLl9idWZmZXIgPSBbXTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gdHJ1ZTsKICAgICAgICBfdGhpcy5faW5maW5pdGVUaW1lV2luZG93ID0gX3dpbmRvd1RpbWUgPT09IEluZmluaXR5OwogICAgICAgIF90aGlzLl9idWZmZXJTaXplID0gTWF0aC5tYXgoMSwgX2J1ZmZlclNpemUpOwogICAgICAgIF90aGlzLl93aW5kb3dUaW1lID0gTWF0aC5tYXgoMSwgX3dpbmRvd1RpbWUpOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUubmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfYnVmZmVyID0gX2EuX2J1ZmZlciwgX2luZmluaXRlVGltZVdpbmRvdyA9IF9hLl9pbmZpbml0ZVRpbWVXaW5kb3csIF90aW1lc3RhbXBQcm92aWRlciA9IF9hLl90aW1lc3RhbXBQcm92aWRlciwgX3dpbmRvd1RpbWUgPSBfYS5fd2luZG93VGltZTsKICAgICAgICBpZiAoIWlzU3RvcHBlZCkgewogICAgICAgICAgX2J1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICFfaW5maW5pdGVUaW1lV2luZG93ICYmIF9idWZmZXIucHVzaChfdGltZXN0YW1wUHJvdmlkZXIubm93KCkgKyBfd2luZG93VGltZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3RyaW1CdWZmZXIoKTsKICAgICAgICBfc3VwZXIucHJvdG90eXBlLm5leHQuY2FsbCh0aGlzLCB2YWx1ZSk7CiAgICAgIH07CiAgICAgIFJlcGxheVN1YmplY3QyLnByb3RvdHlwZS5fc3Vic2NyaWJlID0gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHRoaXMuX3Rocm93SWZDbG9zZWQoKTsKICAgICAgICB0aGlzLl90cmltQnVmZmVyKCk7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbiA9IHRoaXMuX2lubmVyU3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICAgIHZhciBfYSA9IHRoaXMsIF9pbmZpbml0ZVRpbWVXaW5kb3cgPSBfYS5faW5maW5pdGVUaW1lV2luZG93LCBfYnVmZmVyID0gX2EuX2J1ZmZlcjsKICAgICAgICB2YXIgY29weSA9IF9idWZmZXIuc2xpY2UoKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvcHkubGVuZ3RoICYmICFzdWJzY3JpYmVyLmNsb3NlZDsgaSArPSBfaW5maW5pdGVUaW1lV2luZG93ID8gMSA6IDIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb3B5W2ldKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyhzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uOwogICAgICB9OwogICAgICBSZXBsYXlTdWJqZWN0Mi5wcm90b3R5cGUuX3RyaW1CdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBfYnVmZmVyU2l6ZSA9IF9hLl9idWZmZXJTaXplLCBfdGltZXN0YW1wUHJvdmlkZXIgPSBfYS5fdGltZXN0YW1wUHJvdmlkZXIsIF9idWZmZXIgPSBfYS5fYnVmZmVyLCBfaW5maW5pdGVUaW1lV2luZG93ID0gX2EuX2luZmluaXRlVGltZVdpbmRvdzsKICAgICAgICB2YXIgYWRqdXN0ZWRCdWZmZXJTaXplID0gKF9pbmZpbml0ZVRpbWVXaW5kb3cgPyAxIDogMikgKiBfYnVmZmVyU2l6ZTsKICAgICAgICBfYnVmZmVyU2l6ZSA8IEluZmluaXR5ICYmIGFkanVzdGVkQnVmZmVyU2l6ZSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXIuc3BsaWNlKDAsIF9idWZmZXIubGVuZ3RoIC0gYWRqdXN0ZWRCdWZmZXJTaXplKTsKICAgICAgICBpZiAoIV9pbmZpbml0ZVRpbWVXaW5kb3cpIHsKICAgICAgICAgIHZhciBub3cgPSBfdGltZXN0YW1wUHJvdmlkZXIubm93KCk7CiAgICAgICAgICB2YXIgbGFzdCA9IDA7CiAgICAgICAgICBmb3IgKHZhciBpID0gMTsgaSA8IF9idWZmZXIubGVuZ3RoICYmIF9idWZmZXJbaV0gPD0gbm93OyBpICs9IDIpIHsKICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgICB9CiAgICAgICAgICBsYXN0ICYmIF9idWZmZXIuc3BsaWNlKDAsIGxhc3QgKyAxKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBSZXBsYXlTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuUmVwbGF5U3ViamVjdCA9IFJlcGxheVN1YmplY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL0FzeW5jU3ViamVjdC5qcwp2YXIgcmVxdWlyZV9Bc3luY1N1YmplY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvQXN5bmNTdWJqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBBc3luY1N1YmplY3QgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKEFzeW5jU3ViamVjdDIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU3ViamVjdDIoKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuX3ZhbHVlID0gbnVsbDsKICAgICAgICBfdGhpcy5faGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICBfdGhpcy5faXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5fY2hlY2tGaW5hbGl6ZWRTdGF0dXNlcyA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSB0aGlzLCBoYXNFcnJvciA9IF9hLmhhc0Vycm9yLCBfaGFzVmFsdWUgPSBfYS5faGFzVmFsdWUsIF92YWx1ZSA9IF9hLl92YWx1ZSwgdGhyb3duRXJyb3IgPSBfYS50aHJvd25FcnJvciwgaXNTdG9wcGVkID0gX2EuaXNTdG9wcGVkLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmIChoYXNFcnJvcikgewogICAgICAgICAgc3Vic2NyaWJlci5lcnJvcih0aHJvd25FcnJvcik7CiAgICAgICAgfSBlbHNlIGlmIChpc1N0b3BwZWQgfHwgX2lzQ29tcGxldGUpIHsKICAgICAgICAgIF9oYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLm5leHQoX3ZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jU3ViamVjdDIucHJvdG90eXBlLm5leHQgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIGlmICghdGhpcy5pc1N0b3BwZWQpIHsKICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7CiAgICAgICAgICB0aGlzLl9oYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY1N1YmplY3QyLnByb3RvdHlwZS5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBfYSA9IHRoaXMsIF9oYXNWYWx1ZSA9IF9hLl9oYXNWYWx1ZSwgX3ZhbHVlID0gX2EuX3ZhbHVlLCBfaXNDb21wbGV0ZSA9IF9hLl9pc0NvbXBsZXRlOwogICAgICAgIGlmICghX2lzQ29tcGxldGUpIHsKICAgICAgICAgIHRoaXMuX2lzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgX2hhc1ZhbHVlICYmIF9zdXBlci5wcm90b3R5cGUubmV4dC5jYWxsKHRoaXMsIF92YWx1ZSk7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLmNvbXBsZXRlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNTdWJqZWN0MjsKICAgIH0oU3ViamVjdF8xLlN1YmplY3QpOwogICAgZXhwb3J0czIuQXN5bmNTdWJqZWN0ID0gQXN5bmNTdWJqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzCnZhciByZXF1aXJlX0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFjdGlvbiA9IHZvaWQgMDsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHJldHVybiBfc3VwZXIuY2FsbCh0aGlzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIHJldHVybiBBY3Rpb24yOwogICAgfShTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24pOwogICAgZXhwb3J0czIuQWN0aW9uID0gQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW50ZXJ2YWxQcm92aWRlci5qcwp2YXIgcmVxdWlyZV9pbnRlcnZhbFByb3ZpZGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9pbnRlcnZhbFByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyID0gdm9pZCAwOwogICAgZXhwb3J0czIuaW50ZXJ2YWxQcm92aWRlciA9IHsKICAgICAgc2V0SW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZXIsIHRpbWVvdXQpIHsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMjsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgIH0KICAgICAgICB2YXIgZGVsZWdhdGUgPSBleHBvcnRzMi5pbnRlcnZhbFByb3ZpZGVyLmRlbGVnYXRlOwogICAgICAgIGlmIChkZWxlZ2F0ZSA9PT0gbnVsbCB8fCBkZWxlZ2F0ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVsZWdhdGUuc2V0SW50ZXJ2YWwpIHsKICAgICAgICAgIHJldHVybiBkZWxlZ2F0ZS5zZXRJbnRlcnZhbC5hcHBseShkZWxlZ2F0ZSwgX19zcHJlYWRBcnJheShbaGFuZGxlciwgdGltZW91dF0sIF9fcmVhZChhcmdzKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0SW50ZXJ2YWwuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtoYW5kbGVyLCB0aW1lb3V0XSwgX19yZWFkKGFyZ3MpKSk7CiAgICAgIH0sCiAgICAgIGNsZWFySW50ZXJ2YWw6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIHZhciBkZWxlZ2F0ZSA9IGV4cG9ydHMyLmludGVydmFsUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW50ZXJ2YWwpIHx8IGNsZWFySW50ZXJ2YWwpKGhhbmRsZSk7CiAgICAgIH0sCiAgICAgIGRlbGVnYXRlOiB2b2lkIDAKICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY0FjdGlvbi5qcwp2YXIgcmVxdWlyZV9Bc3luY0FjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQWN0aW9uXzEgPSByZXF1aXJlX0FjdGlvbigpOwogICAgdmFyIGludGVydmFsUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW50ZXJ2YWxQcm92aWRlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBBc3luY0FjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQXN5bmNBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBc3luY0FjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSB7CiAgICAgICAgICByZXR1cm4gdGhpczsKICAgICAgICB9CiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlOwogICAgICAgIHZhciBpZCA9IHRoaXMuaWQ7CiAgICAgICAgdmFyIHNjaGVkdWxlciA9IHRoaXMuc2NoZWR1bGVyOwogICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICB0aGlzLmlkID0gdGhpcy5yZWN5Y2xlQXN5bmNJZChzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMucGVuZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5kZWxheSA9IGRlbGF5OwogICAgICAgIHRoaXMuaWQgPSAoX2EgPSB0aGlzLmlkKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0aGlzLnJlcXVlc3RBc3luY0lkKHNjaGVkdWxlciwgdGhpcy5pZCwgZGVsYXkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBfaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLnNldEludGVydmFsKHNjaGVkdWxlci5mbHVzaC5iaW5kKHNjaGVkdWxlciwgdGhpcyksIGRlbGF5KTsKICAgICAgfTsKICAgICAgQXN5bmNBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKF9zY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsICYmIHRoaXMuZGVsYXkgPT09IGRlbGF5ICYmIHRoaXMucGVuZGluZyA9PT0gZmFsc2UpIHsKICAgICAgICAgIHJldHVybiBpZDsKICAgICAgICB9CiAgICAgICAgaWYgKGlkICE9IG51bGwpIHsKICAgICAgICAgIGludGVydmFsUHJvdmlkZXJfMS5pbnRlcnZhbFByb3ZpZGVyLmNsZWFySW50ZXJ2YWwoaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLmV4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgIHJldHVybiBuZXcgRXJyb3IoImV4ZWN1dGluZyBhIGNhbmNlbGxlZCBhY3Rpb24iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGVycm9yID0gdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nID09PSBmYWxzZSAmJiB0aGlzLmlkICE9IG51bGwpIHsKICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHRoaXMuc2NoZWR1bGVyLCB0aGlzLmlkLCBudWxsKTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIEFzeW5jQWN0aW9uMi5wcm90b3R5cGUuX2V4ZWN1dGUgPSBmdW5jdGlvbihzdGF0ZSwgX2RlbGF5KSB7CiAgICAgICAgdmFyIGVycm9yZWQgPSBmYWxzZTsKICAgICAgICB2YXIgZXJyb3JWYWx1ZTsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy53b3JrKHN0YXRlKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBlcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgIGVycm9yVmFsdWUgPSBlID8gZSA6IG5ldyBFcnJvcigiU2NoZWR1bGVkIGFjdGlvbiB0aHJldyBmYWxzeSBlcnJvciIpOwogICAgICAgIH0KICAgICAgICBpZiAoZXJyb3JlZCkgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgICAgcmV0dXJuIGVycm9yVmFsdWU7CiAgICAgICAgfQogICAgICB9OwogICAgICBBc3luY0FjdGlvbjIucHJvdG90eXBlLnVuc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmNsb3NlZCkgewogICAgICAgICAgdmFyIF9hID0gdGhpcywgaWQgPSBfYS5pZCwgc2NoZWR1bGVyID0gX2Euc2NoZWR1bGVyOwogICAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICAgIHRoaXMud29yayA9IHRoaXMuc3RhdGUgPSB0aGlzLnNjaGVkdWxlciA9IG51bGw7CiAgICAgICAgICB0aGlzLnBlbmRpbmcgPSBmYWxzZTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShhY3Rpb25zLCB0aGlzKTsKICAgICAgICAgIGlmIChpZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaWQgPSB0aGlzLnJlY3ljbGVBc3luY0lkKHNjaGVkdWxlciwgaWQsIG51bGwpOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5kZWxheSA9IG51bGw7CiAgICAgICAgICBfc3VwZXIucHJvdG90eXBlLnVuc3Vic2NyaWJlLmNhbGwodGhpcyk7CiAgICAgICAgfQogICAgICB9OwogICAgICByZXR1cm4gQXN5bmNBY3Rpb24yOwogICAgfShBY3Rpb25fMS5BY3Rpb24pOwogICAgZXhwb3J0czIuQXN5bmNBY3Rpb24gPSBBc3luY0FjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9JbW1lZGlhdGUuanMKdmFyIHJlcXVpcmVfSW1tZWRpYXRlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvSW1tZWRpYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UZXN0VG9vbHMgPSBleHBvcnRzMi5JbW1lZGlhdGUgPSB2b2lkIDA7CiAgICB2YXIgbmV4dEhhbmRsZSA9IDE7CiAgICB2YXIgcmVzb2x2ZWQ7CiAgICB2YXIgYWN0aXZlSGFuZGxlcyA9IHt9OwogICAgZnVuY3Rpb24gZmluZEFuZENsZWFySGFuZGxlKGhhbmRsZSkgewogICAgICBpZiAoaGFuZGxlIGluIGFjdGl2ZUhhbmRsZXMpIHsKICAgICAgICBkZWxldGUgYWN0aXZlSGFuZGxlc1toYW5kbGVdOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGV4cG9ydHMyLkltbWVkaWF0ZSA9IHsKICAgICAgc2V0SW1tZWRpYXRlOiBmdW5jdGlvbihjYikgewogICAgICAgIHZhciBoYW5kbGUgPSBuZXh0SGFuZGxlKys7CiAgICAgICAgYWN0aXZlSGFuZGxlc1toYW5kbGVdID0gdHJ1ZTsKICAgICAgICBpZiAoIXJlc29sdmVkKSB7CiAgICAgICAgICByZXNvbHZlZCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIH0KICAgICAgICByZXNvbHZlZC50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpICYmIGNiKCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGhhbmRsZTsKICAgICAgfSwKICAgICAgY2xlYXJJbW1lZGlhdGU6IGZ1bmN0aW9uKGhhbmRsZSkgewogICAgICAgIGZpbmRBbmRDbGVhckhhbmRsZShoYW5kbGUpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGVzdFRvb2xzID0gewogICAgICBwZW5kaW5nOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoYWN0aXZlSGFuZGxlcykubGVuZ3RoOwogICAgICB9CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvaW1tZWRpYXRlUHJvdmlkZXIuanMKdmFyIHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2ltbWVkaWF0ZVByb3ZpZGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbW1lZGlhdGVQcm92aWRlciA9IHZvaWQgMDsKICAgIHZhciBJbW1lZGlhdGVfMSA9IHJlcXVpcmVfSW1tZWRpYXRlKCk7CiAgICB2YXIgc2V0SW1tZWRpYXRlID0gSW1tZWRpYXRlXzEuSW1tZWRpYXRlLnNldEltbWVkaWF0ZTsKICAgIHZhciBjbGVhckltbWVkaWF0ZSA9IEltbWVkaWF0ZV8xLkltbWVkaWF0ZS5jbGVhckltbWVkaWF0ZTsKICAgIGV4cG9ydHMyLmltbWVkaWF0ZVByb3ZpZGVyID0gewogICAgICBzZXRJbW1lZGlhdGU6IGZ1bmN0aW9uKCkgewogICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICB9CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLnNldEltbWVkaWF0ZSkgfHwgc2V0SW1tZWRpYXRlKS5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpOwogICAgICB9LAogICAgICBjbGVhckltbWVkaWF0ZTogZnVuY3Rpb24oaGFuZGxlKSB7CiAgICAgICAgdmFyIGRlbGVnYXRlID0gZXhwb3J0czIuaW1tZWRpYXRlUHJvdmlkZXIuZGVsZWdhdGU7CiAgICAgICAgcmV0dXJuICgoZGVsZWdhdGUgPT09IG51bGwgfHwgZGVsZWdhdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRlbGVnYXRlLmNsZWFySW1tZWRpYXRlKSB8fCBjbGVhckltbWVkaWF0ZSkoaGFuZGxlKTsKICAgICAgfSwKICAgICAgZGVsZWdhdGU6IHZvaWQgMAogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FzYXBBY3Rpb24uanMKdmFyIHJlcXVpcmVfQXNhcEFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcEFjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgaW1tZWRpYXRlUHJvdmlkZXJfMSA9IHJlcXVpcmVfaW1tZWRpYXRlUHJvdmlkZXIoKTsKICAgIHZhciBBc2FwQWN0aW9uID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcEFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXNhcEFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT09IG51bGwgJiYgZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgc2NoZWR1bGVyLmFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLl9zY2hlZHVsZWQgfHwgKHNjaGVkdWxlci5fc2NoZWR1bGVkID0gaW1tZWRpYXRlUHJvdmlkZXJfMS5pbW1lZGlhdGVQcm92aWRlci5zZXRJbW1lZGlhdGUoc2NoZWR1bGVyLmZsdXNoLmJpbmQoc2NoZWR1bGVyLCB2b2lkIDApKSk7CiAgICAgIH07CiAgICAgIEFzYXBBY3Rpb24yLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChkZWxheSAhPSBudWxsID8gZGVsYXkgPiAwIDogdGhpcy5kZWxheSA+IDApIHsKICAgICAgICAgIHJldHVybiBfc3VwZXIucHJvdG90eXBlLnJlY3ljbGVBc3luY0lkLmNhbGwodGhpcywgc2NoZWR1bGVyLCBpZCwgZGVsYXkpOwogICAgICAgIH0KICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGlmIChpZCAhPSBudWxsICYmICgoX2EgPSBhY3Rpb25zW2FjdGlvbnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5pZCkgIT09IGlkKSB7CiAgICAgICAgICBpbW1lZGlhdGVQcm92aWRlcl8xLmltbWVkaWF0ZVByb3ZpZGVyLmNsZWFySW1tZWRpYXRlKGlkKTsKICAgICAgICAgIGlmIChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9PT0gaWQpIHsKICAgICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5Bc2FwQWN0aW9uID0gQXNhcEFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9TY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMSA9IHJlcXVpcmVfZGF0ZVRpbWVzdGFtcFByb3ZpZGVyKCk7CiAgICB2YXIgU2NoZWR1bGVyID0gZnVuY3Rpb24oKSB7CiAgICAgIGZ1bmN0aW9uIFNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3Rvciwgbm93KSB7CiAgICAgICAgaWYgKG5vdyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBub3cgPSBTY2hlZHVsZXIyLm5vdzsKICAgICAgICB9CiAgICAgICAgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yID0gc2NoZWR1bGVyQWN0aW9uQ3RvcjsKICAgICAgICB0aGlzLm5vdyA9IG5vdzsKICAgICAgfQogICAgICBTY2hlZHVsZXIyLnByb3RvdHlwZS5zY2hlZHVsZSA9IGZ1bmN0aW9uKHdvcmssIGRlbGF5LCBzdGF0ZSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgdGhpcy5zY2hlZHVsZXJBY3Rpb25DdG9yKHRoaXMsIHdvcmspLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgIH07CiAgICAgIFNjaGVkdWxlcjIubm93ID0gZGF0ZVRpbWVzdGFtcFByb3ZpZGVyXzEuZGF0ZVRpbWVzdGFtcFByb3ZpZGVyLm5vdzsKICAgICAgcmV0dXJuIFNjaGVkdWxlcjI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5TY2hlZHVsZXIgPSBTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc3luY1NjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc3luY1NjaGVkdWxlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXN5bmNTY2hlZHVsZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXN5bmNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgU2NoZWR1bGVyXzEgPSByZXF1aXJlX1NjaGVkdWxlcigpOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc3luY1NjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFzeW5jU2NoZWR1bGVyMihTY2hlZHVsZXJBY3Rpb24sIG5vdykgewogICAgICAgIGlmIChub3cgPT09IHZvaWQgMCkgewogICAgICAgICAgbm93ID0gU2NoZWR1bGVyXzEuU2NoZWR1bGVyLm5vdzsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgU2NoZWR1bGVyQWN0aW9uLCBub3cpIHx8IHRoaXM7CiAgICAgICAgX3RoaXMuYWN0aW9ucyA9IFtdOwogICAgICAgIF90aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQXN5bmNTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIGlmICh0aGlzLl9hY3RpdmUpIHsKICAgICAgICAgIGFjdGlvbnMucHVzaChhY3Rpb24pOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoYWN0aW9uID0gYWN0aW9ucy5zaGlmdCgpKTsKICAgICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTsKICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgIHdoaWxlIChhY3Rpb24gPSBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc3luY1NjaGVkdWxlcjI7CiAgICB9KFNjaGVkdWxlcl8xLlNjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc3luY1NjaGVkdWxlciA9IEFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQXNhcFNjaGVkdWxlci5qcwp2YXIgcmVxdWlyZV9Bc2FwU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9Bc2FwU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBBc2FwU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBc2FwU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gQXNhcFNjaGVkdWxlcjIoKSB7CiAgICAgICAgcmV0dXJuIF9zdXBlciAhPT0gbnVsbCAmJiBfc3VwZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzOwogICAgICB9CiAgICAgIEFzYXBTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBc2FwU2NoZWR1bGVyMjsKICAgIH0oQXN5bmNTY2hlZHVsZXJfMS5Bc3luY1NjaGVkdWxlcik7CiAgICBleHBvcnRzMi5Bc2FwU2NoZWR1bGVyID0gQXNhcFNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzYXAuanMKdmFyIHJlcXVpcmVfYXNhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXNhcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLmFzYXBTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXNhcEFjdGlvbl8xID0gcmVxdWlyZV9Bc2FwQWN0aW9uKCk7CiAgICB2YXIgQXNhcFNjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc2FwU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gbmV3IEFzYXBTY2hlZHVsZXJfMS5Bc2FwU2NoZWR1bGVyKEFzYXBBY3Rpb25fMS5Bc2FwQWN0aW9uKTsKICAgIGV4cG9ydHMyLmFzYXAgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvYXN5bmMuanMKdmFyIHJlcXVpcmVfYXN5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FzeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gbmV3IEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIoQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5hc3luYyA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVBY3Rpb24uanMKdmFyIHJlcXVpcmVfUXVldWVBY3Rpb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlQWN0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlQWN0aW9uID0gdm9pZCAwOwogICAgdmFyIEFzeW5jQWN0aW9uXzEgPSByZXF1aXJlX0FzeW5jQWN0aW9uKCk7CiAgICB2YXIgUXVldWVBY3Rpb24gPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlQWN0aW9uMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVBY3Rpb24yKHNjaGVkdWxlciwgd29yaykgewogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlciwgd29yaykgfHwgdGhpczsKICAgICAgICBfdGhpcy5zY2hlZHVsZXIgPSBzY2hlZHVsZXI7CiAgICAgICAgX3RoaXMud29yayA9IHdvcms7CiAgICAgICAgcmV0dXJuIF90aGlzOwogICAgICB9CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuc2NoZWR1bGUgPSBmdW5jdGlvbihzdGF0ZSwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBkZWxheTsKICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7CiAgICAgICAgdGhpcy5zY2hlZHVsZXIuZmx1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH07CiAgICAgIFF1ZXVlQWN0aW9uMi5wcm90b3R5cGUuZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIHJldHVybiBkZWxheSA+IDAgfHwgdGhpcy5jbG9zZWQgPyBfc3VwZXIucHJvdG90eXBlLmV4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpIDogdGhpcy5fZXhlY3V0ZShzdGF0ZSwgZGVsYXkpOwogICAgICB9OwogICAgICBRdWV1ZUFjdGlvbjIucHJvdG90eXBlLnJlcXVlc3RBc3luY0lkID0gZnVuY3Rpb24oc2NoZWR1bGVyLCBpZCwgZGVsYXkpIHsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCAmJiBkZWxheSA+IDAgfHwgZGVsYXkgPT0gbnVsbCAmJiB0aGlzLmRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5mbHVzaCh0aGlzKTsKICAgICAgICByZXR1cm4gMDsKICAgICAgfTsKICAgICAgcmV0dXJuIFF1ZXVlQWN0aW9uMjsKICAgIH0oQXN5bmNBY3Rpb25fMS5Bc3luY0FjdGlvbik7CiAgICBleHBvcnRzMi5RdWV1ZUFjdGlvbiA9IFF1ZXVlQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvUXVldWVTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfUXVldWVTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1F1ZXVlU2NoZWR1bGVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZXh0ZW5kcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXh0ZW5kcyB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGQyLl9fcHJvdG9fXyA9IGIyOwogICAgICAgIH0gfHwgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBmb3IgKHZhciBwIGluIGIyKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGIyLCBwKSkgZDJbcF0gPSBiMltwXTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24oZCwgYikgewogICAgICAgIGlmICh0eXBlb2YgYiAhPT0gImZ1bmN0aW9uIiAmJiBiICE9PSBudWxsKQogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiICsgU3RyaW5nKGIpICsgIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7CiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgICBmdW5jdGlvbiBfXygpIHsKICAgICAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBkOwogICAgICAgIH0KICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7CiAgICAgIH07CiAgICB9KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FzeW5jU2NoZWR1bGVyKCk7CiAgICB2YXIgUXVldWVTY2hlZHVsZXIgPSBmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgX19leHRlbmRzKFF1ZXVlU2NoZWR1bGVyMiwgX3N1cGVyKTsKICAgICAgZnVuY3Rpb24gUXVldWVTY2hlZHVsZXIyKCkgewogICAgICAgIHJldHVybiBfc3VwZXIgIT09IG51bGwgJiYgX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpczsKICAgICAgfQogICAgICByZXR1cm4gUXVldWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlF1ZXVlU2NoZWR1bGVyID0gUXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9xdWV1ZS5qcwp2YXIgcmVxdWlyZV9xdWV1ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvcXVldWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgUXVldWVBY3Rpb25fMSA9IHJlcXVpcmVfUXVldWVBY3Rpb24oKTsKICAgIHZhciBRdWV1ZVNjaGVkdWxlcl8xID0gcmVxdWlyZV9RdWV1ZVNjaGVkdWxlcigpOwogICAgZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBuZXcgUXVldWVTY2hlZHVsZXJfMS5RdWV1ZVNjaGVkdWxlcihRdWV1ZUFjdGlvbl8xLlF1ZXVlQWN0aW9uKTsKICAgIGV4cG9ydHMyLnF1ZXVlID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZUFjdGlvbi5qcwp2YXIgcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZXIvQW5pbWF0aW9uRnJhbWVBY3Rpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19leHRlbmRzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHRlbmRzIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIGV4dGVuZFN0YXRpY3MgPSBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZDIuX19wcm90b19fID0gYjI7CiAgICAgICAgfSB8fCBmdW5jdGlvbihkMiwgYjIpIHsKICAgICAgICAgIGZvciAodmFyIHAgaW4gYjIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYjIsIHApKSBkMltwXSA9IGIyW3BdOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihkLCBiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBiICE9PSAiZnVuY3Rpb24iICYmIGIgIT09IG51bGwpCiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIgKyBTdHJpbmcoYikgKyAiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTsKICAgICAgICBleHRlbmRTdGF0aWNzKGQsIGIpOwogICAgICAgIGZ1bmN0aW9uIF9fKCkgewogICAgICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7CiAgICAgICAgfQogICAgICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTsKICAgICAgfTsKICAgIH0oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBhbmltYXRpb25GcmFtZVByb3ZpZGVyXzEgPSByZXF1aXJlX2FuaW1hdGlvbkZyYW1lUHJvdmlkZXIoKTsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoQW5pbWF0aW9uRnJhbWVBY3Rpb24yLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBBbmltYXRpb25GcmFtZUFjdGlvbjIoc2NoZWR1bGVyLCB3b3JrKSB7CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVBY3Rpb24yLnByb3RvdHlwZS5yZXF1ZXN0QXN5bmNJZCA9IGZ1bmN0aW9uKHNjaGVkdWxlciwgaWQsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKGRlbGF5ICE9PSBudWxsICYmIGRlbGF5ID4gMCkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQuY2FsbCh0aGlzLCBzY2hlZHVsZXIsIGlkLCBkZWxheSk7CiAgICAgICAgfQogICAgICAgIHNjaGVkdWxlci5hY3Rpb25zLnB1c2godGhpcyk7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlci5fc2NoZWR1bGVkIHx8IChzY2hlZHVsZXIuX3NjaGVkdWxlZCA9IGFuaW1hdGlvbkZyYW1lUHJvdmlkZXJfMS5hbmltYXRpb25GcmFtZVByb3ZpZGVyLnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZXIuZmx1c2godm9pZCAwKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICAgIEFuaW1hdGlvbkZyYW1lQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgICAgZGVsYXkgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCA/IGRlbGF5ID4gMCA6IHRoaXMuZGVsYXkgPiAwKSB7CiAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5yZWN5Y2xlQXN5bmNJZC5jYWxsKHRoaXMsIHNjaGVkdWxlciwgaWQsIGRlbGF5KTsKICAgICAgICB9CiAgICAgICAgdmFyIGFjdGlvbnMgPSBzY2hlZHVsZXIuYWN0aW9uczsKICAgICAgICBpZiAoaWQgIT0gbnVsbCAmJiAoKF9hID0gYWN0aW9uc1thY3Rpb25zLmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaWQpICE9PSBpZCkgewogICAgICAgICAgYW5pbWF0aW9uRnJhbWVQcm92aWRlcl8xLmFuaW1hdGlvbkZyYW1lUHJvdmlkZXIuY2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogICAgICAgICAgc2NoZWR1bGVyLl9zY2hlZHVsZWQgPSB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZUFjdGlvbjI7CiAgICB9KEFzeW5jQWN0aW9uXzEuQXN5bmNBY3Rpb24pOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVBY3Rpb24gPSBBbmltYXRpb25GcmFtZUFjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9BbmltYXRpb25GcmFtZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBc3luY1NjaGVkdWxlcl8xID0gcmVxdWlyZV9Bc3luY1NjaGVkdWxlcigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyID0gZnVuY3Rpb24oX3N1cGVyKSB7CiAgICAgIF9fZXh0ZW5kcyhBbmltYXRpb25GcmFtZVNjaGVkdWxlcjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyMigpIHsKICAgICAgICByZXR1cm4gX3N1cGVyICE9PSBudWxsICYmIF9zdXBlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7CiAgICAgIH0KICAgICAgQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIyLnByb3RvdHlwZS5mbHVzaCA9IGZ1bmN0aW9uKGFjdGlvbikgewogICAgICAgIHRoaXMuX2FjdGl2ZSA9IHRydWU7CiAgICAgICAgdmFyIGZsdXNoSWQgPSB0aGlzLl9zY2hlZHVsZWQ7CiAgICAgICAgdGhpcy5fc2NoZWR1bGVkID0gdm9pZCAwOwogICAgICAgIHZhciBhY3Rpb25zID0gdGhpcy5hY3Rpb25zOwogICAgICAgIHZhciBlcnJvcjsKICAgICAgICBhY3Rpb24gPSBhY3Rpb24gfHwgYWN0aW9ucy5zaGlmdCgpOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChlcnJvciA9IGFjdGlvbi5leGVjdXRlKGFjdGlvbi5zdGF0ZSwgYWN0aW9uLmRlbGF5KSkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgoYWN0aW9uID0gYWN0aW9uc1swXSkgJiYgYWN0aW9uLmlkID09PSBmbHVzaElkICYmIGFjdGlvbnMuc2hpZnQoKSk7CiAgICAgICAgdGhpcy5fYWN0aXZlID0gZmFsc2U7CiAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5pZCA9PT0gZmx1c2hJZCAmJiBhY3Rpb25zLnNoaWZ0KCkpIHsKICAgICAgICAgICAgYWN0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjI7CiAgICB9KEFzeW5jU2NoZWR1bGVyXzEuQXN5bmNTY2hlZHVsZXIpOwogICAgZXhwb3J0czIuQW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIgPSBBbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL2FuaW1hdGlvbkZyYW1lLmpzCnZhciByZXF1aXJlX2FuaW1hdGlvbkZyYW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9hbmltYXRpb25GcmFtZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IHZvaWQgMDsKICAgIHZhciBBbmltYXRpb25GcmFtZUFjdGlvbl8xID0gcmVxdWlyZV9BbmltYXRpb25GcmFtZUFjdGlvbigpOwogICAgdmFyIEFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyXzEgPSByZXF1aXJlX0FuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKCk7CiAgICBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IG5ldyBBbmltYXRpb25GcmFtZVNjaGVkdWxlcl8xLkFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyKEFuaW1hdGlvbkZyYW1lQWN0aW9uXzEuQW5pbWF0aW9uRnJhbWVBY3Rpb24pOwogICAgZXhwb3J0czIuYW5pbWF0aW9uRnJhbWUgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVyL1ZpcnR1YWxUaW1lU2NoZWR1bGVyLmpzCnZhciByZXF1aXJlX1ZpcnR1YWxUaW1lU2NoZWR1bGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlci9WaXJ0dWFsVGltZVNjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2V4dGVuZHMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4dGVuZHMgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24oZDIsIGIyKSB7CiAgICAgICAgICBkMi5fX3Byb3RvX18gPSBiMjsKICAgICAgICB9IHx8IGZ1bmN0aW9uKGQyLCBiMikgewogICAgICAgICAgZm9yICh2YXIgcCBpbiBiMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiMiwgcCkpIGQyW3BdID0gYjJbcF07CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gZXh0ZW5kU3RhdGljcyhkLCBiKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKGQsIGIpIHsKICAgICAgICBpZiAodHlwZW9mIGIgIT09ICJmdW5jdGlvbiIgJiYgYiAhPT0gbnVsbCkKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIiArIFN0cmluZyhiKSArICIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpOwogICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7CiAgICAgICAgZnVuY3Rpb24gX18oKSB7CiAgICAgICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZDsKICAgICAgICB9CiAgICAgICAgZC5wcm90b3R5cGUgPSBiID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShiKSA6IChfXy5wcm90b3R5cGUgPSBiLnByb3RvdHlwZSwgbmV3IF9fKCkpOwogICAgICB9OwogICAgfSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgQXN5bmNBY3Rpb25fMSA9IHJlcXVpcmVfQXN5bmNBY3Rpb24oKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgQXN5bmNTY2hlZHVsZXJfMSA9IHJlcXVpcmVfQXN5bmNTY2hlZHVsZXIoKTsKICAgIHZhciBWaXJ0dWFsVGltZVNjaGVkdWxlciA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbFRpbWVTY2hlZHVsZXIyLCBfc3VwZXIpOwogICAgICBmdW5jdGlvbiBWaXJ0dWFsVGltZVNjaGVkdWxlcjIoc2NoZWR1bGVyQWN0aW9uQ3RvciwgbWF4RnJhbWVzKSB7CiAgICAgICAgaWYgKHNjaGVkdWxlckFjdGlvbkN0b3IgPT09IHZvaWQgMCkgewogICAgICAgICAgc2NoZWR1bGVyQWN0aW9uQ3RvciA9IFZpcnR1YWxBY3Rpb247CiAgICAgICAgfQogICAgICAgIGlmIChtYXhGcmFtZXMgPT09IHZvaWQgMCkgewogICAgICAgICAgbWF4RnJhbWVzID0gSW5maW5pdHk7CiAgICAgICAgfQogICAgICAgIHZhciBfdGhpcyA9IF9zdXBlci5jYWxsKHRoaXMsIHNjaGVkdWxlckFjdGlvbkN0b3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIF90aGlzLmZyYW1lOwogICAgICAgIH0pIHx8IHRoaXM7CiAgICAgICAgX3RoaXMubWF4RnJhbWVzID0gbWF4RnJhbWVzOwogICAgICAgIF90aGlzLmZyYW1lID0gMDsKICAgICAgICBfdGhpcy5pbmRleCA9IC0xOwogICAgICAgIHJldHVybiBfdGhpczsKICAgICAgfQogICAgICBWaXJ0dWFsVGltZVNjaGVkdWxlcjIucHJvdG90eXBlLmZsdXNoID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywgYWN0aW9ucyA9IF9hLmFjdGlvbnMsIG1heEZyYW1lcyA9IF9hLm1heEZyYW1lczsKICAgICAgICB2YXIgZXJyb3I7CiAgICAgICAgdmFyIGFjdGlvbjsKICAgICAgICB3aGlsZSAoKGFjdGlvbiA9IGFjdGlvbnNbMF0pICYmIGFjdGlvbi5kZWxheSA8PSBtYXhGcmFtZXMpIHsKICAgICAgICAgIGFjdGlvbnMuc2hpZnQoKTsKICAgICAgICAgIHRoaXMuZnJhbWUgPSBhY3Rpb24uZGVsYXk7CiAgICAgICAgICBpZiAoZXJyb3IgPSBhY3Rpb24uZXhlY3V0ZShhY3Rpb24uc3RhdGUsIGFjdGlvbi5kZWxheSkpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgd2hpbGUgKGFjdGlvbiA9IGFjdGlvbnMuc2hpZnQoKSkgewogICAgICAgICAgICBhY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHRocm93IGVycm9yOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbFRpbWVTY2hlZHVsZXIyLmZyYW1lVGltZUZhY3RvciA9IDEwOwogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXIyOwogICAgfShBc3luY1NjaGVkdWxlcl8xLkFzeW5jU2NoZWR1bGVyKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxUaW1lU2NoZWR1bGVyID0gVmlydHVhbFRpbWVTY2hlZHVsZXI7CiAgICB2YXIgVmlydHVhbEFjdGlvbiA9IGZ1bmN0aW9uKF9zdXBlcikgewogICAgICBfX2V4dGVuZHMoVmlydHVhbEFjdGlvbjIsIF9zdXBlcik7CiAgICAgIGZ1bmN0aW9uIFZpcnR1YWxBY3Rpb24yKHNjaGVkdWxlciwgd29yaywgaW5kZXgpIHsKICAgICAgICBpZiAoaW5kZXggPT09IHZvaWQgMCkgewogICAgICAgICAgaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggKz0gMTsKICAgICAgICB9CiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgc2NoZWR1bGVyLCB3b3JrKSB8fCB0aGlzOwogICAgICAgIF90aGlzLnNjaGVkdWxlciA9IHNjaGVkdWxlcjsKICAgICAgICBfdGhpcy53b3JrID0gd29yazsKICAgICAgICBfdGhpcy5pbmRleCA9IGluZGV4OwogICAgICAgIF90aGlzLmFjdGl2ZSA9IHRydWU7CiAgICAgICAgX3RoaXMuaW5kZXggPSBzY2hlZHVsZXIuaW5kZXggPSBpbmRleDsKICAgICAgICByZXR1cm4gX3RoaXM7CiAgICAgIH0KICAgICAgVmlydHVhbEFjdGlvbjIucHJvdG90eXBlLnNjaGVkdWxlID0gZnVuY3Rpb24oc3RhdGUsIGRlbGF5KSB7CiAgICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICAgIGRlbGF5ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKE51bWJlci5pc0Zpbml0ZShkZWxheSkpIHsKICAgICAgICAgIGlmICghdGhpcy5pZCkgewogICAgICAgICAgICByZXR1cm4gX3N1cGVyLnByb3RvdHlwZS5zY2hlZHVsZS5jYWxsKHRoaXMsIHN0YXRlLCBkZWxheSk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlOwogICAgICAgICAgdmFyIGFjdGlvbiA9IG5ldyBWaXJ0dWFsQWN0aW9uMih0aGlzLnNjaGVkdWxlciwgdGhpcy53b3JrKTsKICAgICAgICAgIHRoaXMuYWRkKGFjdGlvbik7CiAgICAgICAgICByZXR1cm4gYWN0aW9uLnNjaGVkdWxlKHN0YXRlLCBkZWxheSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24uRU1QVFk7CiAgICAgICAgfQogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVxdWVzdEFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZGVsYXkgPSBzY2hlZHVsZXIuZnJhbWUgKyBkZWxheTsKICAgICAgICB2YXIgYWN0aW9ucyA9IHNjaGVkdWxlci5hY3Rpb25zOwogICAgICAgIGFjdGlvbnMucHVzaCh0aGlzKTsKICAgICAgICBhY3Rpb25zLnNvcnQoVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMpOwogICAgICAgIHJldHVybiAxOwogICAgICB9OwogICAgICBWaXJ0dWFsQWN0aW9uMi5wcm90b3R5cGUucmVjeWNsZUFzeW5jSWQgPSBmdW5jdGlvbihzY2hlZHVsZXIsIGlkLCBkZWxheSkgewogICAgICAgIGlmIChkZWxheSA9PT0gdm9pZCAwKSB7CiAgICAgICAgICBkZWxheSA9IDA7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH07CiAgICAgIFZpcnR1YWxBY3Rpb24yLnByb3RvdHlwZS5fZXhlY3V0ZSA9IGZ1bmN0aW9uKHN0YXRlLCBkZWxheSkgewogICAgICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIF9zdXBlci5wcm90b3R5cGUuX2V4ZWN1dGUuY2FsbCh0aGlzLCBzdGF0ZSwgZGVsYXkpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgVmlydHVhbEFjdGlvbjIuc29ydEFjdGlvbnMgPSBmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgaWYgKGEuZGVsYXkgPT09IGIuZGVsYXkpIHsKICAgICAgICAgIGlmIChhLmluZGV4ID09PSBiLmluZGV4KSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgfSBlbHNlIGlmIChhLmluZGV4ID4gYi5pbmRleCkgewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGEuZGVsYXkgPiBiLmRlbGF5KSB7CiAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIFZpcnR1YWxBY3Rpb24yOwogICAgfShBc3luY0FjdGlvbl8xLkFzeW5jQWN0aW9uKTsKICAgIGV4cG9ydHMyLlZpcnR1YWxBY3Rpb24gPSBWaXJ0dWFsQWN0aW9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZW1wdHkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuRU1QVFkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBleHBvcnRzMi5FTVBUWSA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICB9KTsKICAgIGZ1bmN0aW9uIGVtcHR5KHNjaGVkdWxlcikgewogICAgICByZXR1cm4gc2NoZWR1bGVyID8gZW1wdHlTY2hlZHVsZWQoc2NoZWR1bGVyKSA6IGV4cG9ydHMyLkVNUFRZOwogICAgfQogICAgZXhwb3J0czIuZW1wdHkgPSBlbXB0eTsKICAgIGZ1bmN0aW9uIGVtcHR5U2NoZWR1bGVkKHNjaGVkdWxlcikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNTY2hlZHVsZXIuanMKdmFyIHJlcXVpcmVfaXNTY2hlZHVsZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1NjaGVkdWxlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1NjaGVkdWxlcih2YWx1ZSkgewogICAgICByZXR1cm4gdmFsdWUgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odmFsdWUuc2NoZWR1bGUpOwogICAgfQogICAgZXhwb3J0czIuaXNTY2hlZHVsZXIgPSBpc1NjaGVkdWxlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzCnZhciByZXF1aXJlX2FyZ3MgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wb3BOdW1iZXIgPSBleHBvcnRzMi5wb3BTY2hlZHVsZXIgPSBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgZnVuY3Rpb24gbGFzdChhcnIpIHsKICAgICAgcmV0dXJuIGFyclthcnIubGVuZ3RoIC0gMV07CiAgICB9CiAgICBmdW5jdGlvbiBwb3BSZXN1bHRTZWxlY3RvcihhcmdzKSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihsYXN0KGFyZ3MpKSA/IGFyZ3MucG9wKCkgOiB2b2lkIDA7CiAgICB9CiAgICBleHBvcnRzMi5wb3BSZXN1bHRTZWxlY3RvciA9IHBvcFJlc3VsdFNlbGVjdG9yOwogICAgZnVuY3Rpb24gcG9wU2NoZWR1bGVyKGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIobGFzdChhcmdzKSkgPyBhcmdzLnBvcCgpIDogdm9pZCAwOwogICAgfQogICAgZXhwb3J0czIucG9wU2NoZWR1bGVyID0gcG9wU2NoZWR1bGVyOwogICAgZnVuY3Rpb24gcG9wTnVtYmVyKGFyZ3MsIGRlZmF1bHRWYWx1ZSkgewogICAgICByZXR1cm4gdHlwZW9mIGxhc3QoYXJncykgPT09ICJudW1iZXIiID8gYXJncy5wb3AoKSA6IGRlZmF1bHRWYWx1ZTsKICAgIH0KICAgIGV4cG9ydHMyLnBvcE51bWJlciA9IHBvcE51bWJlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FycmF5TGlrZS5qcwp2YXIgcmVxdWlyZV9pc0FycmF5TGlrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXJyYXlMaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0FycmF5TGlrZSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmlzQXJyYXlMaWtlID0gZnVuY3Rpb24oeCkgewogICAgICByZXR1cm4geCAmJiB0eXBlb2YgeC5sZW5ndGggPT09ICJudW1iZXIiICYmIHR5cGVvZiB4ICE9PSAiZnVuY3Rpb24iOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1Byb21pc2UuanMKdmFyIHJlcXVpcmVfaXNQcm9taXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNQcm9taXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc1Byb21pc2UodmFsdWUpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZS50aGVuKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzUHJvbWlzZSA9IGlzUHJvbWlzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX2lzSW50ZXJvcE9ic2VydmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0ludGVyb3BPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0ludGVyb3BPYnNlcnZhYmxlID0gdm9pZCAwOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oaW5wdXRbb2JzZXJ2YWJsZV8xLm9ic2VydmFibGVdKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzSW50ZXJvcE9ic2VydmFibGUgPSBpc0ludGVyb3BPYnNlcnZhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzQXN5bmNJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0FzeW5jSXRlcmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzQXN5bmNJdGVyYWJsZSA9IHZvaWQgMDsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIGlzQXN5bmNJdGVyYWJsZShvYmopIHsKICAgICAgcmV0dXJuIFN5bWJvbC5hc3luY0l0ZXJhdG9yICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9ialtTeW1ib2wuYXN5bmNJdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNBc3luY0l0ZXJhYmxlID0gaXNBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dVbm9ic2VydmFibGVFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL3Rocm93VW5vYnNlcnZhYmxlRXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpIHsKICAgICAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoIllvdSBwcm92aWRlZCAiICsgKGlucHV0ICE9PSBudWxsICYmIHR5cGVvZiBpbnB1dCA9PT0gIm9iamVjdCIgPyAiYW4gaW52YWxpZCBvYmplY3QiIDogIiciICsgaW5wdXQgKyAiJyIpICsgIiB3aGVyZSBhIHN0cmVhbSB3YXMgZXhwZWN0ZWQuIFlvdSBjYW4gcHJvdmlkZSBhbiBPYnNlcnZhYmxlLCBQcm9taXNlLCBSZWFkYWJsZVN0cmVhbSwgQXJyYXksIEFzeW5jSXRlcmFibGUsIG9yIEl0ZXJhYmxlLiIpOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IgPSBjcmVhdGVJbnZhbGlkT2JzZXJ2YWJsZVR5cGVFcnJvcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc3ltYm9sL2l0ZXJhdG9yLmpzCnZhciByZXF1aXJlX2l0ZXJhdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3N5bWJvbC9pdGVyYXRvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaXRlcmF0b3IgPSBleHBvcnRzMi5nZXRTeW1ib2xJdGVyYXRvciA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGdldFN5bWJvbEl0ZXJhdG9yKCkgewogICAgICBpZiAodHlwZW9mIFN5bWJvbCAhPT0gImZ1bmN0aW9uIiB8fCAhU3ltYm9sLml0ZXJhdG9yKSB7CiAgICAgICAgcmV0dXJuICJAQGl0ZXJhdG9yIjsKICAgICAgfQogICAgICByZXR1cm4gU3ltYm9sLml0ZXJhdG9yOwogICAgfQogICAgZXhwb3J0czIuZ2V0U3ltYm9sSXRlcmF0b3IgPSBnZXRTeW1ib2xJdGVyYXRvcjsKICAgIGV4cG9ydHMyLml0ZXJhdG9yID0gZ2V0U3ltYm9sSXRlcmF0b3IoKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX2lzSXRlcmFibGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0l0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc0l0ZXJhYmxlKGlucHV0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpbnB1dCA9PT0gbnVsbCB8fCBpbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0pOwogICAgfQogICAgZXhwb3J0czIuaXNJdGVyYWJsZSA9IGlzSXRlcmFibGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc1JlYWRhYmxlU3RyZWFtTGlrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZ2VuZXJhdG9yIHx8IGZ1bmN0aW9uKHRoaXNBcmcsIGJvZHkpIHsKICAgICAgdmFyIF8gPSB7IGxhYmVsOiAwLCBzZW50OiBmdW5jdGlvbigpIHsKICAgICAgICBpZiAodFswXSAmIDEpIHRocm93IHRbMV07CiAgICAgICAgcmV0dXJuIHRbMV07CiAgICAgIH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7CiAgICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCAidGhyb3ciOiB2ZXJiKDEpLCAicmV0dXJuIjogdmVyYigyKSB9LCB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfSksIGc7CiAgICAgIGZ1bmN0aW9uIHZlcmIobikgewogICAgICAgIHJldHVybiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gc3RlcChbbiwgdl0pOwogICAgICAgIH07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc3RlcChvcCkgewogICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7CiAgICAgICAgd2hpbGUgKF8pIHRyeSB7CiAgICAgICAgICBpZiAoZiA9IDEsIHkgJiYgKHQgPSBvcFswXSAmIDIgPyB5WyJyZXR1cm4iXSA6IG9wWzBdID8geVsidGhyb3ciXSB8fCAoKHQgPSB5WyJyZXR1cm4iXSkgJiYgdC5jYWxsKHkpLCAwKSA6IHkubmV4dCkgJiYgISh0ID0gdC5jYWxsKHksIG9wWzFdKSkuZG9uZSkgcmV0dXJuIHQ7CiAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07CiAgICAgICAgICBzd2l0Y2ggKG9wWzBdKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMV0sIGRvbmU6IGZhbHNlIH07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgeSA9IG9wWzFdOwogICAgICAgICAgICAgIG9wID0gWzBdOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgb3AgPSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsKICAgICAgICAgICAgICAgIF8gPSAwOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgb3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSBvcFsxXTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzFdOwogICAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0ICYmIF8ubGFiZWwgPCB0WzJdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsyXTsKICAgICAgICAgICAgICAgIF8ub3BzLnB1c2gob3ApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTsKICAgICAgICAgICAgICBfLnRyeXMucG9wKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBvcCA9IGJvZHkuY2FsbCh0aGlzQXJnLCBfKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBvcCA9IFs2LCBlXTsKICAgICAgICAgIHkgPSAwOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBmID0gdCA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOwogICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFswXSA/IG9wWzFdIDogdm9pZCAwLCBkb25lOiB0cnVlIH07CiAgICAgIH0KICAgIH07CiAgICB2YXIgX19hd2FpdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXQgfHwgZnVuY3Rpb24odikgewogICAgICByZXR1cm4gdGhpcyBpbnN0YW5jZW9mIF9fYXdhaXQgPyAodGhpcy52ID0gdiwgdGhpcykgOiBuZXcgX19hd2FpdCh2KTsKICAgIH07CiAgICB2YXIgX19hc3luY0dlbmVyYXRvciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXN5bmNHZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgX2FyZ3VtZW50cywgZ2VuZXJhdG9yKSB7CiAgICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgICB2YXIgZyA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSwgaSwgcSA9IFtdOwogICAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKCJuZXh0IiksIHZlcmIoInRocm93IiksIHZlcmIoInJldHVybiIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9LCBpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpZiAoZ1tuXSkgaVtuXSA9IGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLCBiKSB7CiAgICAgICAgICAgIHEucHVzaChbbiwgdiwgYSwgYl0pID4gMSB8fCByZXN1bWUobiwgdik7CiAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHN0ZXAoZ1tuXSh2KSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgc2V0dGxlKHFbMF1bM10sIGUpOwogICAgICAgIH0KICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKHIpIHsKICAgICAgICByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsKICAgICAgfQogICAgICBmdW5jdGlvbiBmdWxmaWxsKHZhbHVlKSB7CiAgICAgICAgcmVzdW1lKCJuZXh0IiwgdmFsdWUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHJlamVjdCh2YWx1ZSkgewogICAgICAgIHJlc3VtZSgidGhyb3ciLCB2YWx1ZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsKICAgICAgICBpZiAoZih2KSwgcS5zaGlmdCgpLCBxLmxlbmd0aCkgcmVzdW1lKHFbMF1bMF0sIHFbMF1bMV0pOwogICAgICB9CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1JlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiByZWFkYWJsZVN0cmVhbUxpa2VUb0FzeW5jR2VuZXJhdG9yKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBfX2FzeW5jR2VuZXJhdG9yKHRoaXMsIGFyZ3VtZW50cywgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvcl8xKCkgewogICAgICAgIHZhciByZWFkZXIsIF9hLCB2YWx1ZSwgZG9uZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2IpIHsKICAgICAgICAgIHN3aXRjaCAoX2IubGFiZWwpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIHJlYWRlciA9IHJlYWRhYmxlU3RyZWFtLmdldFJlYWRlcigpOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIF9iLnRyeXMucHVzaChbMSwgLCA5LCAxMF0pOwogICAgICAgICAgICAgIF9iLmxhYmVsID0gMjsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGlmIChmYWxzZSkgcmV0dXJuIFszLCA4XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQocmVhZGVyLnJlYWQoKSldOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX2EgPSBfYi5zZW50KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICAgIGlmICghZG9uZSkgcmV0dXJuIFszLCA1XTsKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodm9pZCAwKV07CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICByZXR1cm4gWzIsIF9iLnNlbnQoKV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICByZXR1cm4gWzQsIF9fYXdhaXQodmFsdWUpXTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIHJldHVybiBbNCwgX2Iuc2VudCgpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDJdOwogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMF07CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICByZWFkZXIucmVsZWFzZUxvY2soKTsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmVhZGFibGVTdHJlYW1MaWtlVG9Bc3luY0dlbmVyYXRvciA9IHJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3I7CiAgICBmdW5jdGlvbiBpc1JlYWRhYmxlU3RyZWFtTGlrZShvYmopIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iaiA9PT0gbnVsbCB8fCBvYmogPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9iai5nZXRSZWFkZXIpOwogICAgfQogICAgZXhwb3J0czIuaXNSZWFkYWJsZVN0cmVhbUxpa2UgPSBpc1JlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbm5lckZyb20uanMKdmFyIHJlcXVpcmVfaW5uZXJGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW5uZXJGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fYXdhaXRlciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fYXdhaXRlciB8fCBmdW5jdGlvbih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHsKICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsKICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbihyZXNvbHZlKSB7CiAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICByZWplY3QoZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7CiAgICAgICAgICByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsKICAgICAgICB9CiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpOwogICAgICB9KTsKICAgIH07CiAgICB2YXIgX19nZW5lcmF0b3IgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2dlbmVyYXRvciB8fCBmdW5jdGlvbih0aGlzQXJnLCBib2R5KSB7CiAgICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdOwogICAgICAgIHJldHVybiB0WzFdOwogICAgICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnOwogICAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgInRocm93IjogdmVyYigxKSwgInJldHVybiI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0pLCBnOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24odikgewogICAgICAgICAgcmV0dXJuIHN0ZXAoW24sIHZdKTsKICAgICAgICB9OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHsKICAgICAgICBpZiAoZikgdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpOwogICAgICAgIHdoaWxlIChfKSB0cnkgewogICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVsicmV0dXJuIl0gOiBvcFswXSA/IHlbInRocm93Il0gfHwgKCh0ID0geVsicmV0dXJuIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0OwogICAgICAgICAgaWYgKHkgPSAwLCB0KSBvcCA9IFtvcFswXSAmIDIsIHQudmFsdWVdOwogICAgICAgICAgc3dpdGNoIChvcFswXSkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfLmxhYmVsKys7CiAgICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9OwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHkgPSBvcFsxXTsKICAgICAgICAgICAgICBvcCA9IFswXTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIG9wID0gXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIGlmICghKHQgPSBfLnRyeXMsIHQgPSB0Lmxlbmd0aCA+IDAgJiYgdFt0Lmxlbmd0aCAtIDFdKSAmJiAob3BbMF0gPT09IDYgfHwgb3BbMF0gPT09IDIpKSB7CiAgICAgICAgICAgICAgICBfID0gMDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDMgJiYgKCF0IHx8IG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gb3BbMV07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSA2ICYmIF8ubGFiZWwgPCB0WzFdKSB7CiAgICAgICAgICAgICAgICBfLmxhYmVsID0gdFsxXTsKICAgICAgICAgICAgICAgIHQgPSBvcDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMl07CiAgICAgICAgICAgICAgICBfLm9wcy5wdXNoKG9wKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAodFsyXSkgXy5vcHMucG9wKCk7CiAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgb3AgPSBbNiwgZV07CiAgICAgICAgICB5ID0gMDsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgZiA9IHQgPSAwOwogICAgICAgIH0KICAgICAgICBpZiAob3BbMF0gJiA1KSB0aHJvdyBvcFsxXTsKICAgICAgICByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9OwogICAgICB9CiAgICB9OwogICAgdmFyIF9fYXN5bmNWYWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2FzeW5jVmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcigiU3ltYm9sLmFzeW5jSXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICAgIHZhciBtID0gb1tTeW1ib2wuYXN5bmNJdGVyYXRvcl0sIGk7CiAgICAgIHJldHVybiBtID8gbS5jYWxsKG8pIDogKG8gPSB0eXBlb2YgX192YWx1ZXMgPT09ICJmdW5jdGlvbiIgPyBfX3ZhbHVlcyhvKSA6IG9bU3ltYm9sLml0ZXJhdG9yXSgpLCBpID0ge30sIHZlcmIoIm5leHQiKSwgdmVyYigidGhyb3ciKSwgdmVyYigicmV0dXJuIiksIGlbU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0sIGkpOwogICAgICBmdW5jdGlvbiB2ZXJiKG4pIHsKICAgICAgICBpW25dID0gb1tuXSAmJiBmdW5jdGlvbih2KSB7CiAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgIHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCBkLCB2KSB7CiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHYpLnRoZW4oZnVuY3Rpb24odjIpIHsKICAgICAgICAgIHJlc29sdmUoeyB2YWx1ZTogdjIsIGRvbmU6IGQgfSk7CiAgICAgICAgfSwgcmVqZWN0KTsKICAgICAgfQogICAgfTsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbVJlYWRhYmxlU3RyZWFtTGlrZSA9IGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZXhwb3J0czIuZnJvbUl0ZXJhYmxlID0gZXhwb3J0czIuZnJvbVByb21pc2UgPSBleHBvcnRzMi5mcm9tQXJyYXlMaWtlID0gZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZXhwb3J0czIuaW5uZXJGcm9tID0gdm9pZCAwOwogICAgdmFyIGlzQXJyYXlMaWtlXzEgPSByZXF1aXJlX2lzQXJyYXlMaWtlKCk7CiAgICB2YXIgaXNQcm9taXNlXzEgPSByZXF1aXJlX2lzUHJvbWlzZSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc0l0ZXJhYmxlXzEgPSByZXF1aXJlX2lzSXRlcmFibGUoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgdmFyIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEgPSByZXF1aXJlX3JlcG9ydFVuaGFuZGxlZEVycm9yKCk7CiAgICB2YXIgb2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9vYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBpbm5lckZyb20oaW5wdXQpIHsKICAgICAgaWYgKGlucHV0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUpIHsKICAgICAgICByZXR1cm4gaW5wdXQ7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHsKICAgICAgICBpZiAoaXNJbnRlcm9wT2JzZXJ2YWJsZV8xLmlzSW50ZXJvcE9ic2VydmFibGUoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUludGVyb3BPYnNlcnZhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbUFycmF5TGlrZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1Byb21pc2VfMS5pc1Byb21pc2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gZnJvbVByb21pc2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNBc3luY0l0ZXJhYmxlXzEuaXNBc3luY0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21Bc3luY0l0ZXJhYmxlKGlucHV0KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSXRlcmFibGVfMS5pc0l0ZXJhYmxlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21JdGVyYWJsZShpbnB1dCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLmlzUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIGZyb21SZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpOwogICAgICAgIH0KICAgICAgfQogICAgICB0aHJvdyB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEuY3JlYXRlSW52YWxpZE9ic2VydmFibGVUeXBlRXJyb3IoaW5wdXQpOwogICAgfQogICAgZXhwb3J0czIuaW5uZXJGcm9tID0gaW5uZXJGcm9tOwogICAgZnVuY3Rpb24gZnJvbUludGVyb3BPYnNlcnZhYmxlKG9iaikgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb2JzID0gb2JqW29ic2VydmFibGVfMS5vYnNlcnZhYmxlXSgpOwogICAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnMuc3Vic2NyaWJlKSkgewogICAgICAgICAgcmV0dXJuIG9icy5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUludGVyb3BPYnNlcnZhYmxlID0gZnJvbUludGVyb3BPYnNlcnZhYmxlOwogICAgZnVuY3Rpb24gZnJvbUFycmF5TGlrZShhcnJheSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aCAmJiAhc3Vic2NyaWJlci5jbG9zZWQ7IGkrKykgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGFycmF5W2ldKTsKICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21BcnJheUxpa2UgPSBmcm9tQXJyYXlMaWtlOwogICAgZnVuY3Rpb24gZnJvbVByb21pc2UocHJvbWlzZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmICghc3Vic2NyaWJlci5jbG9zZWQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9KS50aGVuKG51bGwsIHJlcG9ydFVuaGFuZGxlZEVycm9yXzEucmVwb3J0VW5oYW5kbGVkRXJyb3IpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Qcm9taXNlID0gZnJvbVByb21pc2U7CiAgICBmdW5jdGlvbiBmcm9tSXRlcmFibGUoaXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGZvciAodmFyIGl0ZXJhYmxlXzEgPSBfX3ZhbHVlcyhpdGVyYWJsZSksIGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpOyAhaXRlcmFibGVfMV8xLmRvbmU7IGl0ZXJhYmxlXzFfMSA9IGl0ZXJhYmxlXzEubmV4dCgpKSB7CiAgICAgICAgICAgIHZhciB2YWx1ZSA9IGl0ZXJhYmxlXzFfMS52YWx1ZTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmIChpdGVyYWJsZV8xXzEgJiYgIWl0ZXJhYmxlXzFfMS5kb25lICYmIChfYSA9IGl0ZXJhYmxlXzEucmV0dXJuKSkgX2EuY2FsbChpdGVyYWJsZV8xKTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21JdGVyYWJsZSA9IGZyb21JdGVyYWJsZTsKICAgIGZ1bmN0aW9uIGZyb21Bc3luY0l0ZXJhYmxlKGFzeW5jSXRlcmFibGUpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikuY2F0Y2goZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21Bc3luY0l0ZXJhYmxlID0gZnJvbUFzeW5jSXRlcmFibGU7CiAgICBmdW5jdGlvbiBmcm9tUmVhZGFibGVTdHJlYW1MaWtlKHJlYWRhYmxlU3RyZWFtKSB7CiAgICAgIHJldHVybiBmcm9tQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IocmVhZGFibGVTdHJlYW0pKTsKICAgIH0KICAgIGV4cG9ydHMyLmZyb21SZWFkYWJsZVN0cmVhbUxpa2UgPSBmcm9tUmVhZGFibGVTdHJlYW1MaWtlOwogICAgZnVuY3Rpb24gcHJvY2VzczIoYXN5bmNJdGVyYWJsZSwgc3Vic2NyaWJlcikgewogICAgICB2YXIgYXN5bmNJdGVyYWJsZV8xLCBhc3luY0l0ZXJhYmxlXzFfMTsKICAgICAgdmFyIGVfMiwgX2E7CiAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgIHZhciB2YWx1ZSwgZV8yXzE7CiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uKF9iKSB7CiAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfYi50cnlzLnB1c2goWzAsIDUsIDYsIDExXSk7CiAgICAgICAgICAgICAgYXN5bmNJdGVyYWJsZV8xID0gX19hc3luY1ZhbHVlcyhhc3luY0l0ZXJhYmxlKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDE7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gWzQsIGFzeW5jSXRlcmFibGVfMS5uZXh0KCldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgPSBfYi5zZW50KCksICFhc3luY0l0ZXJhYmxlXzFfMS5kb25lKSkgcmV0dXJuIFszLCA0XTsKICAgICAgICAgICAgICB2YWx1ZSA9IGFzeW5jSXRlcmFibGVfMV8xLnZhbHVlOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKHN1YnNjcmliZXIuY2xvc2VkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gWzJdOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfYi5sYWJlbCA9IDM7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFszLCAxMV07CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICBlXzJfMSA9IF9iLnNlbnQoKTsKICAgICAgICAgICAgICBlXzIgPSB7IGVycm9yOiBlXzJfMSB9OwogICAgICAgICAgICAgIHJldHVybiBbMywgMTFdOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX2IudHJ5cy5wdXNoKFs2LCAsIDksIDEwXSk7CiAgICAgICAgICAgICAgaWYgKCEoYXN5bmNJdGVyYWJsZV8xXzEgJiYgIWFzeW5jSXRlcmFibGVfMV8xLmRvbmUgJiYgKF9hID0gYXN5bmNJdGVyYWJsZV8xLnJldHVybikpKSByZXR1cm4gWzMsIDhdOwogICAgICAgICAgICAgIHJldHVybiBbNCwgX2EuY2FsbChhc3luY0l0ZXJhYmxlXzEpXTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9iLnNlbnQoKTsKICAgICAgICAgICAgICBfYi5sYWJlbCA9IDg7CiAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICByZXR1cm4gWzMsIDEwXTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICByZXR1cm4gWzddOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgIHJldHVybiBbN107CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHJldHVybiBbMl07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2V4ZWN1dGVTY2hlZHVsZS5qcwp2YXIgcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9leGVjdXRlU2NoZWR1bGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4ZWN1dGVTY2hlZHVsZSA9IHZvaWQgMDsKICAgIGZ1bmN0aW9uIGV4ZWN1dGVTY2hlZHVsZShwYXJlbnRTdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgd29yaywgZGVsYXksIHJlcGVhdDIpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHJlcGVhdDIgPT09IHZvaWQgMCkgewogICAgICAgIHJlcGVhdDIgPSBmYWxzZTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVTdWJzY3JpcHRpb24gPSBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgd29yaygpOwogICAgICAgIGlmIChyZXBlYXQyKSB7CiAgICAgICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHRoaXMuc2NoZWR1bGUobnVsbCwgZGVsYXkpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy51bnN1YnNjcmliZSgpOwogICAgICAgIH0KICAgICAgfSwgZGVsYXkpOwogICAgICBwYXJlbnRTdWJzY3JpcHRpb24uYWRkKHNjaGVkdWxlU3Vic2NyaXB0aW9uKTsKICAgICAgaWYgKCFyZXBlYXQyKSB7CiAgICAgICAgcmV0dXJuIHNjaGVkdWxlU3Vic2NyaXB0aW9uOwogICAgICB9CiAgICB9CiAgICBleHBvcnRzMi5leGVjdXRlU2NoZWR1bGUgPSBleGVjdXRlU2NoZWR1bGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMKdmFyIHJlcXVpcmVfb2JzZXJ2ZU9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vYnNlcnZlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVPbiA9IHZvaWQgMDsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gb2JzZXJ2ZU9uKHNjaGVkdWxlciwgZGVsYXkpIHsKICAgICAgaWYgKGRlbGF5ID09PSB2b2lkIDApIHsKICAgICAgICBkZWxheSA9IDA7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0sIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgfSwgZGVsYXkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlT24gPSBvYnNlcnZlT247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zdWJzY3JpYmVPbi5qcwp2YXIgcmVxdWlyZV9zdWJzY3JpYmVPbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3Vic2NyaWJlT24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN1YnNjcmliZU9uID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3Vic2NyaWJlT24oc2NoZWR1bGVyLCBkZWxheSkgewogICAgICBpZiAoZGVsYXkgPT09IHZvaWQgMCkgewogICAgICAgIGRlbGF5ID0gMDsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgfSwgZGVsYXkpKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zdWJzY3JpYmVPbiA9IHN1YnNjcmliZU9uOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlT2JzZXJ2YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZU9ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIG9ic2VydmVPbl8xID0gcmVxdWlyZV9vYnNlcnZlT24oKTsKICAgIHZhciBzdWJzY3JpYmVPbl8xID0gcmVxdWlyZV9zdWJzY3JpYmVPbigpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVPYnNlcnZhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCkucGlwZShzdWJzY3JpYmVPbl8xLnN1YnNjcmliZU9uKHNjaGVkdWxlciksIG9ic2VydmVPbl8xLm9ic2VydmVPbihzY2hlZHVsZXIpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlT2JzZXJ2YWJsZSA9IHNjaGVkdWxlT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZVByb21pc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUHJvbWlzZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVQcm9taXNlID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20oaW5wdXQpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zY2hlZHVsZVByb21pc2UgPSBzY2hlZHVsZVByb21pc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUFycmF5LmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlQXJyYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGkgPSAwOwogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaSA9PT0gaW5wdXQubGVuZ3RoKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChpbnB1dFtpKytdKTsKICAgICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlQXJyYXkgPSBzY2hlZHVsZUFycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVJdGVyYWJsZS5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3NjaGVkdWxlZC9zY2hlZHVsZUl0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUl0ZXJhYmxlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGl0ZXJhdG9yXzEgPSByZXF1aXJlX2l0ZXJhdG9yKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpdGVyYXRvcjsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGl0ZXJhdG9yID0gaW5wdXRbaXRlcmF0b3JfMS5pdGVyYXRvcl0oKTsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIHZhciB2YWx1ZTsKICAgICAgICAgICAgdmFyIGRvbmU7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgX2EgPSBpdGVyYXRvci5uZXh0KCksIHZhbHVlID0gX2EudmFsdWUsIGRvbmUgPSBfYS5kb25lOwogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChkb25lKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIDAsIHRydWUpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihpdGVyYXRvciA9PT0gbnVsbCB8fCBpdGVyYXRvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaXRlcmF0b3IucmV0dXJuKSAmJiBpdGVyYXRvci5yZXR1cm4oKTsKICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlSXRlcmFibGUgPSBzY2hlZHVsZUl0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzCnZhciByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVBc3luY0l0ZXJhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZUFzeW5jSXRlcmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gc2NoZWR1bGVBc3luY0l0ZXJhYmxlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKCFpbnB1dCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpdGVyYXRvciA9IGlucHV0W1N5bWJvbC5hc3luY0l0ZXJhdG9yXSgpOwogICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnNjcmliZXIsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGl0ZXJhdG9yLm5leHQoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgIGlmIChyZXN1bHQuZG9uZSkgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0LnZhbHVlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSwgMCwgdHJ1ZSk7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVBc3luY0l0ZXJhYmxlID0gc2NoZWR1bGVBc3luY0l0ZXJhYmxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9zY2hlZHVsZWQvc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UuanMKdmFyIHJlcXVpcmVfc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZSA9IHZvaWQgMDsKICAgIHZhciBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMSA9IHJlcXVpcmVfc2NoZWR1bGVBc3luY0l0ZXJhYmxlKCk7CiAgICB2YXIgaXNSZWFkYWJsZVN0cmVhbUxpa2VfMSA9IHJlcXVpcmVfaXNSZWFkYWJsZVN0cmVhbUxpa2UoKTsKICAgIGZ1bmN0aW9uIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlQXN5bmNJdGVyYWJsZV8xLnNjaGVkdWxlQXN5bmNJdGVyYWJsZShpc1JlYWRhYmxlU3RyZWFtTGlrZV8xLnJlYWRhYmxlU3RyZWFtTGlrZVRvQXN5bmNHZW5lcmF0b3IoaW5wdXQpLCBzY2hlZHVsZXIpOwogICAgfQogICAgZXhwb3J0czIuc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2UgPSBzY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcwp2YXIgcmVxdWlyZV9zY2hlZHVsZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvc2NoZWR1bGVkL3NjaGVkdWxlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NoZWR1bGVkID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZU9ic2VydmFibGUoKTsKICAgIHZhciBzY2hlZHVsZVByb21pc2VfMSA9IHJlcXVpcmVfc2NoZWR1bGVQcm9taXNlKCk7CiAgICB2YXIgc2NoZWR1bGVBcnJheV8xID0gcmVxdWlyZV9zY2hlZHVsZUFycmF5KCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICB2YXIgc2NoZWR1bGVBc3luY0l0ZXJhYmxlXzEgPSByZXF1aXJlX3NjaGVkdWxlQXN5bmNJdGVyYWJsZSgpOwogICAgdmFyIGlzSW50ZXJvcE9ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNJbnRlcm9wT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlzUHJvbWlzZV8xID0gcmVxdWlyZV9pc1Byb21pc2UoKTsKICAgIHZhciBpc0FycmF5TGlrZV8xID0gcmVxdWlyZV9pc0FycmF5TGlrZSgpOwogICAgdmFyIGlzSXRlcmFibGVfMSA9IHJlcXVpcmVfaXNJdGVyYWJsZSgpOwogICAgdmFyIGlzQXN5bmNJdGVyYWJsZV8xID0gcmVxdWlyZV9pc0FzeW5jSXRlcmFibGUoKTsKICAgIHZhciB0aHJvd1Vub2JzZXJ2YWJsZUVycm9yXzEgPSByZXF1aXJlX3Rocm93VW5vYnNlcnZhYmxlRXJyb3IoKTsKICAgIHZhciBpc1JlYWRhYmxlU3RyZWFtTGlrZV8xID0gcmVxdWlyZV9pc1JlYWRhYmxlU3RyZWFtTGlrZSgpOwogICAgdmFyIHNjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlXzEgPSByZXF1aXJlX3NjaGVkdWxlUmVhZGFibGVTdHJlYW1MaWtlKCk7CiAgICBmdW5jdGlvbiBzY2hlZHVsZWQoaW5wdXQsIHNjaGVkdWxlcikgewogICAgICBpZiAoaW5wdXQgIT0gbnVsbCkgewogICAgICAgIGlmIChpc0ludGVyb3BPYnNlcnZhYmxlXzEuaXNJbnRlcm9wT2JzZXJ2YWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZU9ic2VydmFibGVfMS5zY2hlZHVsZU9ic2VydmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0FycmF5TGlrZV8xLmlzQXJyYXlMaWtlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlQXJyYXlfMS5zY2hlZHVsZUFycmF5KGlucHV0LCBzY2hlZHVsZXIpOwogICAgICAgIH0KICAgICAgICBpZiAoaXNQcm9taXNlXzEuaXNQcm9taXNlKGlucHV0KSkgewogICAgICAgICAgcmV0dXJuIHNjaGVkdWxlUHJvbWlzZV8xLnNjaGVkdWxlUHJvbWlzZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzQXN5bmNJdGVyYWJsZV8xLmlzQXN5bmNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUFzeW5jSXRlcmFibGVfMS5zY2hlZHVsZUFzeW5jSXRlcmFibGUoaW5wdXQsIHNjaGVkdWxlcik7CiAgICAgICAgfQogICAgICAgIGlmIChpc0l0ZXJhYmxlXzEuaXNJdGVyYWJsZShpbnB1dCkpIHsKICAgICAgICAgIHJldHVybiBzY2hlZHVsZUl0ZXJhYmxlXzEuc2NoZWR1bGVJdGVyYWJsZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUmVhZGFibGVTdHJlYW1MaWtlXzEuaXNSZWFkYWJsZVN0cmVhbUxpa2UoaW5wdXQpKSB7CiAgICAgICAgICByZXR1cm4gc2NoZWR1bGVSZWFkYWJsZVN0cmVhbUxpa2VfMS5zY2hlZHVsZVJlYWRhYmxlU3RyZWFtTGlrZShpbnB1dCwgc2NoZWR1bGVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdGhyb3cgdGhyb3dVbm9ic2VydmFibGVFcnJvcl8xLmNyZWF0ZUludmFsaWRPYnNlcnZhYmxlVHlwZUVycm9yKGlucHV0KTsKICAgIH0KICAgIGV4cG9ydHMyLnNjaGVkdWxlZCA9IHNjaGVkdWxlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzCnZhciByZXF1aXJlX2Zyb20gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tID0gdm9pZCAwOwogICAgdmFyIHNjaGVkdWxlZF8xID0gcmVxdWlyZV9zY2hlZHVsZWQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBmcm9tKGlucHV0LCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIHNjaGVkdWxlciA/IHNjaGVkdWxlZF8xLnNjaGVkdWxlZChpbnB1dCwgc2NoZWR1bGVyKSA6IGlubmVyRnJvbV8xLmlubmVyRnJvbShpbnB1dCk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tID0gZnJvbTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZi5qcwp2YXIgcmVxdWlyZV9vZiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29mLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5vZiA9IHZvaWQgMDsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG9mKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKGFyZ3MsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5vZiA9IG9mOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMKdmFyIHJlcXVpcmVfdGhyb3dFcnJvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3Rocm93RXJyb3IuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiB0aHJvd0Vycm9yMihlcnJvck9yRXJyb3JGYWN0b3J5LCBzY2hlZHVsZXIpIHsKICAgICAgdmFyIGVycm9yRmFjdG9yeSA9IGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKGVycm9yT3JFcnJvckZhY3RvcnkpID8gZXJyb3JPckVycm9yRmFjdG9yeSA6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBlcnJvck9yRXJyb3JGYWN0b3J5OwogICAgICB9OwogICAgICB2YXIgaW5pdCA9IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5lcnJvcihlcnJvckZhY3RvcnkoKSk7CiAgICAgIH07CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoc2NoZWR1bGVyID8gZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHJldHVybiBzY2hlZHVsZXIuc2NoZWR1bGUoaW5pdCwgMCwgc3Vic2NyaWJlcik7CiAgICAgIH0gOiBpbml0KTsKICAgIH0KICAgIGV4cG9ydHMyLnRocm93RXJyb3IgPSB0aHJvd0Vycm9yMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvTm90aWZpY2F0aW9uLmpzCnZhciByZXF1aXJlX05vdGlmaWNhdGlvbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9Ob3RpZmljYXRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9ic2VydmVOb3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb24gPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgb2ZfMSA9IHJlcXVpcmVfb2YoKTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBOb3RpZmljYXRpb25LaW5kOwogICAgKGZ1bmN0aW9uKE5vdGlmaWNhdGlvbktpbmQyKSB7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJORVhUIl0gPSAiTiI7CiAgICAgIE5vdGlmaWNhdGlvbktpbmQyWyJFUlJPUiJdID0gIkUiOwogICAgICBOb3RpZmljYXRpb25LaW5kMlsiQ09NUExFVEUiXSA9ICJDIjsKICAgIH0pKE5vdGlmaWNhdGlvbktpbmQgPSBleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kIHx8IChleHBvcnRzMi5Ob3RpZmljYXRpb25LaW5kID0ge30pKTsKICAgIHZhciBOb3RpZmljYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgZnVuY3Rpb24gTm90aWZpY2F0aW9uMihraW5kLCB2YWx1ZSwgZXJyb3IpIHsKICAgICAgICB0aGlzLmtpbmQgPSBraW5kOwogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7CiAgICAgICAgdGhpcy5oYXNWYWx1ZSA9IGtpbmQgPT09ICJOIjsKICAgICAgfQogICAgICBOb3RpZmljYXRpb24yLnByb3RvdHlwZS5vYnNlcnZlID0gZnVuY3Rpb24ob2JzZXJ2ZXIpIHsKICAgICAgICByZXR1cm4gb2JzZXJ2ZU5vdGlmaWNhdGlvbih0aGlzLCBvYnNlcnZlcik7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmRvID0gZnVuY3Rpb24obmV4dEhhbmRsZXIsIGVycm9ySGFuZGxlciwgY29tcGxldGVIYW5kbGVyKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgcmV0dXJuIGtpbmQgPT09ICJOIiA/IG5leHRIYW5kbGVyID09PSBudWxsIHx8IG5leHRIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0SGFuZGxlcih2YWx1ZSkgOiBraW5kID09PSAiRSIgPyBlcnJvckhhbmRsZXIgPT09IG51bGwgfHwgZXJyb3JIYW5kbGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlcnJvckhhbmRsZXIoZXJyb3IpIDogY29tcGxldGVIYW5kbGVyID09PSBudWxsIHx8IGNvbXBsZXRlSGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29tcGxldGVIYW5kbGVyKCk7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIucHJvdG90eXBlLmFjY2VwdCA9IGZ1bmN0aW9uKG5leHRPck9ic2VydmVyLCBlcnJvciwgY29tcGxldGUpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKChfYSA9IG5leHRPck9ic2VydmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmV4dCkgPyB0aGlzLm9ic2VydmUobmV4dE9yT2JzZXJ2ZXIpIDogdGhpcy5kbyhuZXh0T3JPYnNlcnZlciwgZXJyb3IsIGNvbXBsZXRlKTsKICAgICAgfTsKICAgICAgTm90aWZpY2F0aW9uMi5wcm90b3R5cGUudG9PYnNlcnZhYmxlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF9hID0gdGhpcywga2luZCA9IF9hLmtpbmQsIHZhbHVlID0gX2EudmFsdWUsIGVycm9yID0gX2EuZXJyb3I7CiAgICAgICAgdmFyIHJlc3VsdCA9IGtpbmQgPT09ICJOIiA/IG9mXzEub2YodmFsdWUpIDoga2luZCA9PT0gIkUiID8gdGhyb3dFcnJvcl8xLnRocm93RXJyb3IoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZXJyb3I7CiAgICAgICAgfSkgOiBraW5kID09PSAiQyIgPyBlbXB0eV8xLkVNUFRZIDogMDsKICAgICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5leHBlY3RlZCBub3RpZmljYXRpb24ga2luZCAiICsga2luZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY3JlYXRlTmV4dCA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJOIiwgdmFsdWUpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOb3RpZmljYXRpb24yKCJFIiwgdm9pZCAwLCBlcnIpOwogICAgICB9OwogICAgICBOb3RpZmljYXRpb24yLmNyZWF0ZUNvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb247CiAgICAgIH07CiAgICAgIE5vdGlmaWNhdGlvbjIuY29tcGxldGVOb3RpZmljYXRpb24gPSBuZXcgTm90aWZpY2F0aW9uMigiQyIpOwogICAgICByZXR1cm4gTm90aWZpY2F0aW9uMjsKICAgIH0oKTsKICAgIGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IE5vdGlmaWNhdGlvbjsKICAgIGZ1bmN0aW9uIG9ic2VydmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBvYnNlcnZlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIF9kID0gbm90aWZpY2F0aW9uLCBraW5kID0gX2Qua2luZCwgdmFsdWUgPSBfZC52YWx1ZSwgZXJyb3IgPSBfZC5lcnJvcjsKICAgICAgaWYgKHR5cGVvZiBraW5kICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0ludmFsaWQgbm90aWZpY2F0aW9uLCBtaXNzaW5nICJraW5kIicpOwogICAgICB9CiAgICAgIGtpbmQgPT09ICJOIiA/IChfYSA9IG9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9ic2VydmVyLCB2YWx1ZSkgOiBraW5kID09PSAiRSIgPyAoX2IgPSBvYnNlcnZlci5lcnJvcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob2JzZXJ2ZXIsIGVycm9yKSA6IChfYyA9IG9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvYnNlcnZlcik7CiAgICB9CiAgICBleHBvcnRzMi5vYnNlcnZlTm90aWZpY2F0aW9uID0gb2JzZXJ2ZU5vdGlmaWNhdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc09ic2VydmFibGUuanMKdmFyIHJlcXVpcmVfaXNPYnNlcnZhYmxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvaXNPYnNlcnZhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc09ic2VydmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBpc09ic2VydmFibGUob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiAob2JqIGluc3RhbmNlb2YgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUgfHwgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob2JqLmxpZnQpICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKG9iai5zdWJzY3JpYmUpKTsKICAgIH0KICAgIGV4cG9ydHMyLmlzT2JzZXJ2YWJsZSA9IGlzT2JzZXJ2YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzCnZhciByZXF1aXJlX0VtcHR5RXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9FbXB0eUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuRW1wdHlFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gRW1wdHlFcnJvckltcGwoKSB7CiAgICAgICAgX3N1cGVyKHRoaXMpOwogICAgICAgIHRoaXMubmFtZSA9ICJFbXB0eUVycm9yIjsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAibm8gZWxlbWVudHMgaW4gc2VxdWVuY2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2xhc3RWYWx1ZUZyb20uanMKdmFyIHJlcXVpcmVfbGFzdFZhbHVlRnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9sYXN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0VmFsdWVGcm9tID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgZnVuY3Rpb24gbGFzdFZhbHVlRnJvbShzb3VyY2UsIGNvbmZpZykgewogICAgICB2YXIgaGFzQ29uZmlnID0gdHlwZW9mIGNvbmZpZyA9PT0gIm9iamVjdCI7CiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICB2YXIgX2hhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIF92YWx1ZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHsKICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIF92YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICBfaGFzVmFsdWUgPSB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChfaGFzVmFsdWUpIHsKICAgICAgICAgICAgICByZXNvbHZlKF92YWx1ZSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzQ29uZmlnKSB7CiAgICAgICAgICAgICAgcmVzb2x2ZShjb25maWcuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZWplY3QobmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubGFzdFZhbHVlRnJvbSA9IGxhc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzCnZhciByZXF1aXJlX2ZpcnN0VmFsdWVGcm9tID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL2ZpcnN0VmFsdWVGcm9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBTdWJzY3JpYmVyXzEgPSByZXF1aXJlX1N1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGZpcnN0VmFsdWVGcm9tKHNvdXJjZSwgY29uZmlnKSB7CiAgICAgIHZhciBoYXNDb25maWcgPSB0eXBlb2YgY29uZmlnID09PSAib2JqZWN0IjsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIHZhciBzdWJzY3JpYmVyID0gbmV3IFN1YnNjcmliZXJfMS5TYWZlU3Vic2NyaWJlcih7CiAgICAgICAgICBuZXh0OiBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICByZXNvbHZlKHZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSwKICAgICAgICAgIGVycm9yOiByZWplY3QsCiAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlmIChoYXNDb25maWcpIHsKICAgICAgICAgICAgICByZXNvbHZlKGNvbmZpZy5kZWZhdWx0VmFsdWUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlamVjdChuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpcnN0VmFsdWVGcm9tID0gZmlyc3RWYWx1ZUZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IuanMKdmFyIHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSB2b2lkIDA7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICBleHBvcnRzMi5Bcmd1bWVudE91dE9mUmFuZ2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JJbXBsKCkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9ICJhcmd1bWVudCBvdXQgb2YgcmFuZ2UiOwogICAgICB9OwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcwp2YXIgcmVxdWlyZV9Ob3RGb3VuZEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvTm90Rm91bmRFcnJvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTm90Rm91bmRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBjcmVhdGVFcnJvckNsYXNzXzEgPSByZXF1aXJlX2NyZWF0ZUVycm9yQ2xhc3MoKTsKICAgIGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBjcmVhdGVFcnJvckNsYXNzXzEuY3JlYXRlRXJyb3JDbGFzcyhmdW5jdGlvbihfc3VwZXIpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uIE5vdEZvdW5kRXJyb3JJbXBsKG1lc3NhZ2UpIHsKICAgICAgICBfc3VwZXIodGhpcyk7CiAgICAgICAgdGhpcy5uYW1lID0gIk5vdEZvdW5kRXJyb3IiOwogICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7CiAgICAgIH07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzCnZhciByZXF1aXJlX1NlcXVlbmNlRXJyb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9TZXF1ZW5jZUVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TZXF1ZW5jZUVycm9yID0gdm9pZCAwOwogICAgdmFyIGNyZWF0ZUVycm9yQ2xhc3NfMSA9IHJlcXVpcmVfY3JlYXRlRXJyb3JDbGFzcygpOwogICAgZXhwb3J0czIuU2VxdWVuY2VFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gU2VxdWVuY2VFcnJvckltcGwobWVzc2FnZSkgewogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm5hbWUgPSAiU2VxdWVuY2VFcnJvciI7CiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTsKICAgICAgfTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2lzRGF0ZS5qcwp2YXIgcmVxdWlyZV9pc0RhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9pc0RhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmlzVmFsaWREYXRlID0gdm9pZCAwOwogICAgZnVuY3Rpb24gaXNWYWxpZERhdGUodmFsdWUpIHsKICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUpOwogICAgfQogICAgZXhwb3J0czIuaXNWYWxpZERhdGUgPSBpc1ZhbGlkRGF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVvdXQuanMKdmFyIHJlcXVpcmVfdGltZW91dCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgY3JlYXRlRXJyb3JDbGFzc18xID0gcmVxdWlyZV9jcmVhdGVFcnJvckNsYXNzKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGV4ZWN1dGVTY2hlZHVsZV8xID0gcmVxdWlyZV9leGVjdXRlU2NoZWR1bGUoKTsKICAgIGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGNyZWF0ZUVycm9yQ2xhc3NfMS5jcmVhdGVFcnJvckNsYXNzKGZ1bmN0aW9uKF9zdXBlcikgewogICAgICByZXR1cm4gZnVuY3Rpb24gVGltZW91dEVycm9ySW1wbChpbmZvKSB7CiAgICAgICAgaWYgKGluZm8gPT09IHZvaWQgMCkgewogICAgICAgICAgaW5mbyA9IG51bGw7CiAgICAgICAgfQogICAgICAgIF9zdXBlcih0aGlzKTsKICAgICAgICB0aGlzLm1lc3NhZ2UgPSAiVGltZW91dCBoYXMgb2NjdXJyZWQiOwogICAgICAgIHRoaXMubmFtZSA9ICJUaW1lb3V0RXJyb3IiOwogICAgICAgIHRoaXMuaW5mbyA9IGluZm87CiAgICAgIH07CiAgICB9KTsKICAgIGZ1bmN0aW9uIHRpbWVvdXQoY29uZmlnLCBzY2hlZHVsZXJBcmcpIHsKICAgICAgdmFyIF9hID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoY29uZmlnKSA/IHsgZmlyc3Q6IGNvbmZpZyB9IDogdHlwZW9mIGNvbmZpZyA9PT0gIm51bWJlciIgPyB7IGVhY2g6IGNvbmZpZyB9IDogY29uZmlnLCBmaXJzdCA9IF9hLmZpcnN0LCBlYWNoID0gX2EuZWFjaCwgX2IgPSBfYS53aXRoLCBfd2l0aCA9IF9iID09PSB2b2lkIDAgPyB0aW1lb3V0RXJyb3JGYWN0b3J5IDogX2IsIF9jID0gX2Euc2NoZWR1bGVyLCBzY2hlZHVsZXIgPSBfYyA9PT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnICE9PSBudWxsICYmIHNjaGVkdWxlckFyZyAhPT0gdm9pZCAwID8gc2NoZWR1bGVyQXJnIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlciA6IF9jLCBfZCA9IF9hLm1ldGEsIG1ldGEgPSBfZCA9PT0gdm9pZCAwID8gbnVsbCA6IF9kOwogICAgICBpZiAoZmlyc3QgPT0gbnVsbCAmJiBlYWNoID09IG51bGwpIHsKICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJObyB0aW1lb3V0IHByb3ZpZGVkLiIpOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgb3JpZ2luYWxTb3VyY2VTdWJzY3JpcHRpb247CiAgICAgICAgdmFyIHRpbWVyU3Vic2NyaXB0aW9uOwogICAgICAgIHZhciBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICB2YXIgc3RhcnRUaW1lciA9IGZ1bmN0aW9uKGRlbGF5KSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9IGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIG9yaWdpbmFsU291cmNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKF93aXRoKHsKICAgICAgICAgICAgICAgIG1ldGEsCiAgICAgICAgICAgICAgICBsYXN0VmFsdWUsCiAgICAgICAgICAgICAgICBzZWVuCiAgICAgICAgICAgICAgfSkpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBkZWxheSk7CiAgICAgICAgfTsKICAgICAgICBvcmlnaW5hbFNvdXJjZVN1YnNjcmlwdGlvbiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB0aW1lclN1YnNjcmlwdGlvbiA9PT0gbnVsbCB8fCB0aW1lclN1YnNjcmlwdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNlZW4rKzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChsYXN0VmFsdWUgPSB2YWx1ZSk7CiAgICAgICAgICBlYWNoID4gMCAmJiBzdGFydFRpbWVyKGVhY2gpOwogICAgICAgIH0sIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghKHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi5jbG9zZWQpKSB7CiAgICAgICAgICAgIHRpbWVyU3Vic2NyaXB0aW9uID09PSBudWxsIHx8IHRpbWVyU3Vic2NyaXB0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aW1lclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgICAgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgICAgIXNlZW4gJiYgc3RhcnRUaW1lcihmaXJzdCAhPSBudWxsID8gdHlwZW9mIGZpcnN0ID09PSAibnVtYmVyIiA/IGZpcnN0IDogK2ZpcnN0IC0gc2NoZWR1bGVyLm5vdygpIDogZWFjaCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dCA9IHRpbWVvdXQ7CiAgICBmdW5jdGlvbiB0aW1lb3V0RXJyb3JGYWN0b3J5KGluZm8pIHsKICAgICAgdGhyb3cgbmV3IGV4cG9ydHMyLlRpbWVvdXRFcnJvcihpbmZvKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcwp2YXIgcmVxdWlyZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWFwID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hcDIocHJvamVjdCwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QuY2FsbCh0aGlzQXJnLCB2YWx1ZSwgaW5kZXgrKykpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tYXAgPSBtYXAyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMKdmFyIHJlcXVpcmVfbWFwT25lT3JNYW55QXJncyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL21hcE9uZU9yTWFueUFyZ3MuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcE9uZU9yTWFueUFyZ3MgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgdmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5OwogICAgZnVuY3Rpb24gY2FsbE9yQXBwbHkoZm4sIGFyZ3MpIHsKICAgICAgcmV0dXJuIGlzQXJyYXkoYXJncykgPyBmbi5hcHBseSh2b2lkIDAsIF9fc3ByZWFkQXJyYXkoW10sIF9fcmVhZChhcmdzKSkpIDogZm4oYXJncyk7CiAgICB9CiAgICBmdW5jdGlvbiBtYXBPbmVPck1hbnlBcmdzKGZuKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oYXJncykgewogICAgICAgIHJldHVybiBjYWxsT3JBcHBseShmbiwgYXJncyk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWFwT25lT3JNYW55QXJncyA9IG1hcE9uZU9yTWFueUFyZ3M7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZENhbGxiYWNrSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX2JpbmRDYWxsYmFja0ludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFja0ludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlzU2NoZWR1bGVyXzEgPSByZXF1aXJlX2lzU2NoZWR1bGVyKCk7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICB2YXIgQXN5bmNTdWJqZWN0XzEgPSByZXF1aXJlX0FzeW5jU3ViamVjdCgpOwogICAgZnVuY3Rpb24gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHJlc3VsdFNlbGVjdG9yLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3IpKSB7CiAgICAgICAgICBzY2hlZHVsZXIgPSByZXN1bHRTZWxlY3RvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMsIHNjaGVkdWxlcikuYXBwbHkodGhpcywgYXJncykucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICAgICAgfTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzKGlzTm9kZVN0eWxlLCBjYWxsYmFja0Z1bmMpLmFwcGx5KHRoaXMsIGFyZ3MpLnBpcGUoc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbihzY2hlZHVsZXIpLCBvYnNlcnZlT25fMS5vYnNlcnZlT24oc2NoZWR1bGVyKSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgICB2YXIgYXJncyA9IFtdOwogICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgfQogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHZhciB1bmluaXRpYWxpemVkID0gdHJ1ZTsKICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICAgIHZhciBzdWJzID0gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgICBpZiAodW5pbml0aWFsaXplZCkgewogICAgICAgICAgICB1bmluaXRpYWxpemVkID0gZmFsc2U7CiAgICAgICAgICAgIHZhciBpc0FzeW5jXzEgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIGlzQ29tcGxldGVfMSA9IGZhbHNlOwogICAgICAgICAgICBjYWxsYmFja0Z1bmMuYXBwbHkoX3RoaXMsIF9fc3ByZWFkQXJyYXkoX19zcHJlYWRBcnJheShbXSwgX19yZWFkKGFyZ3MpKSwgWwogICAgICAgICAgICAgIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgICAgICAgICAgICAgIGZvciAodmFyIF9pMiA9IDA7IF9pMiA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pMisrKSB7CiAgICAgICAgICAgICAgICAgIHJlc3VsdHNbX2kyXSA9IGFyZ3VtZW50c1tfaTJdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGlzTm9kZVN0eWxlKSB7CiAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSByZXN1bHRzLnNoaWZ0KCk7CiAgICAgICAgICAgICAgICAgIGlmIChlcnIgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHN1YmplY3QubmV4dCgxIDwgcmVzdWx0cy5sZW5ndGggPyByZXN1bHRzIDogcmVzdWx0c1swXSk7CiAgICAgICAgICAgICAgICBpc0NvbXBsZXRlXzEgPSB0cnVlOwogICAgICAgICAgICAgICAgaWYgKGlzQXN5bmNfMSkgewogICAgICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdKSk7CiAgICAgICAgICAgIGlmIChpc0NvbXBsZXRlXzEpIHsKICAgICAgICAgICAgICBzdWJqZWN0LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNBc3luY18xID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBzdWJzOwogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuYmluZENhbGxiYWNrSW50ZXJuYWxzID0gYmluZENhbGxiYWNrSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2JpbmRDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kQ2FsbGJhY2sgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9iaW5kQ2FsbGJhY2suanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJpbmRDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kQ2FsbGJhY2soY2FsbGJhY2tGdW5jLCByZXN1bHRTZWxlY3Rvciwgc2NoZWR1bGVyKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMS5iaW5kQ2FsbGJhY2tJbnRlcm5hbHMoZmFsc2UsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kQ2FsbGJhY2sgPSBiaW5kQ2FsbGJhY2s7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcwp2YXIgcmVxdWlyZV9iaW5kTm9kZUNhbGxiYWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvYmluZE5vZGVDYWxsYmFjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYmluZE5vZGVDYWxsYmFjayA9IHZvaWQgMDsKICAgIHZhciBiaW5kQ2FsbGJhY2tJbnRlcm5hbHNfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiBiaW5kTm9kZUNhbGxiYWNrKGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcikgewogICAgICByZXR1cm4gYmluZENhbGxiYWNrSW50ZXJuYWxzXzEuYmluZENhbGxiYWNrSW50ZXJuYWxzKHRydWUsIGNhbGxiYWNrRnVuYywgcmVzdWx0U2VsZWN0b3IsIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gYmluZE5vZGVDYWxsYmFjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzQXJnQXJyYXlPck9iamVjdC5qcwp2YXIgcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2FyZ3NBcmdBcnJheU9yT2JqZWN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hcmdzQXJnQXJyYXlPck9iamVjdCA9IHZvaWQgMDsKICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTsKICAgIHZhciBnZXRQcm90b3R5cGVPZiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjsKICAgIHZhciBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7CiAgICB2YXIgZ2V0S2V5cyA9IE9iamVjdC5rZXlzOwogICAgZnVuY3Rpb24gYXJnc0FyZ0FycmF5T3JPYmplY3QoYXJncykgewogICAgICBpZiAoYXJncy5sZW5ndGggPT09IDEpIHsKICAgICAgICB2YXIgZmlyc3RfMSA9IGFyZ3NbMF07CiAgICAgICAgaWYgKGlzQXJyYXkoZmlyc3RfMSkpIHsKICAgICAgICAgIHJldHVybiB7IGFyZ3M6IGZpcnN0XzEsIGtleXM6IG51bGwgfTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzUE9KTyhmaXJzdF8xKSkgewogICAgICAgICAgdmFyIGtleXMgPSBnZXRLZXlzKGZpcnN0XzEpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgYXJnczoga2V5cy5tYXAoZnVuY3Rpb24oa2V5KSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpcnN0XzFba2V5XTsKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGtleXMKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGFyZ3MsIGtleXM6IG51bGwgfTsKICAgIH0KICAgIGV4cG9ydHMyLmFyZ3NBcmdBcnJheU9yT2JqZWN0ID0gYXJnc0FyZ0FycmF5T3JPYmplY3Q7CiAgICBmdW5jdGlvbiBpc1BPSk8ob2JqKSB7CiAgICAgIHJldHVybiBvYmogJiYgdHlwZW9mIG9iaiA9PT0gIm9iamVjdCIgJiYgZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gb2JqZWN0UHJvdG87CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvY3JlYXRlT2JqZWN0LmpzCnZhciByZXF1aXJlX2NyZWF0ZU9iamVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL2NyZWF0ZU9iamVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gY3JlYXRlT2JqZWN0KGtleXMsIHZhbHVlcykgewogICAgICByZXR1cm4ga2V5cy5yZWR1Y2UoZnVuY3Rpb24ocmVzdWx0LCBrZXksIGkpIHsKICAgICAgICByZXR1cm4gcmVzdWx0W2tleV0gPSB2YWx1ZXNbaV0sIHJlc3VsdDsKICAgICAgfSwge30pOwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlT2JqZWN0ID0gY3JlYXRlT2JqZWN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3RJbml0ID0gZXhwb3J0czIuY29tYmluZUxhdGVzdCA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIHJlc3VsdFNlbGVjdG9yID0gYXJnc18xLnBvcFJlc3VsdFNlbGVjdG9yKGFyZ3MpOwogICAgICB2YXIgX2EgPSBhcmdzQXJnQXJyYXlPck9iamVjdF8xLmFyZ3NBcmdBcnJheU9yT2JqZWN0KGFyZ3MpLCBvYnNlcnZhYmxlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKFtdLCBzY2hlZHVsZXIpOwogICAgICB9CiAgICAgIHZhciByZXN1bHQgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwga2V5cyA/IGZ1bmN0aW9uKHZhbHVlcykgewogICAgICAgIHJldHVybiBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKTsKICAgICAgfSA6IGlkZW50aXR5XzEuaWRlbnRpdHkpKTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBjb21iaW5lTGF0ZXN0OwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdEluaXQob2JzZXJ2YWJsZXMsIHNjaGVkdWxlciwgdmFsdWVUcmFuc2Zvcm0pIHsKICAgICAgaWYgKHZhbHVlVHJhbnNmb3JtID09PSB2b2lkIDApIHsKICAgICAgICB2YWx1ZVRyYW5zZm9ybSA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICBtYXliZVNjaGVkdWxlKHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgbGVuZ3RoID0gb2JzZXJ2YWJsZXMubGVuZ3RoOwogICAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgICAgdmFyIGFjdGl2ZSA9IGxlbmd0aDsKICAgICAgICAgIHZhciByZW1haW5pbmdGaXJzdFZhbHVlcyA9IGxlbmd0aDsKICAgICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oaTIpIHsKICAgICAgICAgICAgbWF5YmVTY2hlZHVsZShzY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhciBzb3VyY2UgPSBmcm9tXzEuZnJvbShvYnNlcnZhYmxlc1tpMl0sIHNjaGVkdWxlcik7CiAgICAgICAgICAgICAgdmFyIGhhc0ZpcnN0VmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgICAgICAgdmFsdWVzW2kyXSA9IHZhbHVlOwogICAgICAgICAgICAgICAgaWYgKCFoYXNGaXJzdFZhbHVlKSB7CiAgICAgICAgICAgICAgICAgIGhhc0ZpcnN0VmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgICAgICByZW1haW5pbmdGaXJzdFZhbHVlcy0tOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdGaXJzdFZhbHVlcykgewogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWVUcmFuc2Zvcm0odmFsdWVzLnNsaWNlKCkpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIGlmICghLS1hY3RpdmUpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfSwgc3Vic2NyaWJlcik7CiAgICAgICAgICB9OwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgICAgfQogICAgICAgIH0sIHN1YnNjcmliZXIpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEluaXQgPSBjb21iaW5lTGF0ZXN0SW5pdDsKICAgIGZ1bmN0aW9uIG1heWJlU2NoZWR1bGUoc2NoZWR1bGVyLCBleGVjdXRlLCBzdWJzY3JpcHRpb24pIHsKICAgICAgaWYgKHNjaGVkdWxlcikgewogICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpcHRpb24sIHNjaGVkdWxlciwgZXhlY3V0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgZXhlY3V0ZSgpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUludGVybmFscy5qcwp2YXIgcmVxdWlyZV9tZXJnZUludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VJbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlSW50ZXJuYWxzID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gbWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCBvbkJlZm9yZU5leHQsIGV4cGFuZCwgaW5uZXJTdWJTY2hlZHVsZXIsIGFkZGl0aW9uYWxGaW5hbGl6ZXIpIHsKICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICB2YXIgYWN0aXZlID0gMDsKICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICBpZiAoaXNDb21wbGV0ZSAmJiAhYnVmZmVyLmxlbmd0aCAmJiAhYWN0aXZlKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfQogICAgICB9OwogICAgICB2YXIgb3V0ZXJOZXh0ID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICByZXR1cm4gYWN0aXZlIDwgY29uY3VycmVudCA/IGRvSW5uZXJTdWIodmFsdWUpIDogYnVmZmVyLnB1c2godmFsdWUpOwogICAgICB9OwogICAgICB2YXIgZG9Jbm5lclN1YiA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgZXhwYW5kICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgYWN0aXZlKys7CiAgICAgICAgdmFyIGlubmVyQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdCh2YWx1ZSwgaW5kZXgrKykpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oaW5uZXJWYWx1ZSkgewogICAgICAgICAgb25CZWZvcmVOZXh0ID09PSBudWxsIHx8IG9uQmVmb3JlTmV4dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CZWZvcmVOZXh0KGlubmVyVmFsdWUpOwogICAgICAgICAgaWYgKGV4cGFuZCkgewogICAgICAgICAgICBvdXRlck5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaW5uZXJWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpbm5lckNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICB9LCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKGlubmVyQ29tcGxldGUpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBhY3RpdmUtLTsKICAgICAgICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgdmFyIGJ1ZmZlcmVkVmFsdWUgPSBidWZmZXIuc2hpZnQoKTsKICAgICAgICAgICAgICAgIGlmIChpbm5lclN1YlNjaGVkdWxlcikgewogICAgICAgICAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgaW5uZXJTdWJTY2hlZHVsZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBkb0lubmVyU3ViKGJ1ZmZlcmVkVmFsdWUpOwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGRvSW5uZXJTdWIoYnVmZmVyZWRWYWx1ZSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICB3aGlsZSAoYnVmZmVyLmxlbmd0aCAmJiBhY3RpdmUgPCBjb25jdXJyZW50KSB7CiAgICAgICAgICAgICAgICBfbG9vcF8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9OwogICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBvdXRlck5leHQsIGZ1bmN0aW9uKCkgewogICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgfSkpOwogICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgYWRkaXRpb25hbEZpbmFsaXplciA9PT0gbnVsbCB8fCBhZGRpdGlvbmFsRmluYWxpemVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhZGRpdGlvbmFsRmluYWxpemVyKCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZUludGVybmFscyA9IG1lcmdlSW50ZXJuYWxzOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VNYXAuanMKdmFyIHJlcXVpcmVfbWVyZ2VNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5tZXJnZU1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG1lcmdlSW50ZXJuYWxzXzEgPSByZXF1aXJlX21lcmdlSW50ZXJuYWxzKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtZXJnZU1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbihiLCBpaSkgewogICAgICAgICAgICByZXR1cm4gcmVzdWx0U2VsZWN0b3IoYSwgYiwgaSwgaWkpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpKTsKICAgICAgICB9LCBjb25jdXJyZW50KTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gbWVyZ2VJbnRlcm5hbHNfMS5tZXJnZUludGVybmFscyhzb3VyY2UsIHN1YnNjcmliZXIsIHByb2plY3QsIGNvbmN1cnJlbnQpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlTWFwID0gbWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZUFsbC5qcwp2YXIgcmVxdWlyZV9tZXJnZUFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2VBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIG1lcmdlQWxsKGNvbmN1cnJlbnQpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChpZGVudGl0eV8xLmlkZW50aXR5LCBjb25jdXJyZW50KTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlQWxsID0gbWVyZ2VBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMKdmFyIHJlcXVpcmVfY29uY2F0QWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgZnVuY3Rpb24gY29uY2F0QWxsKCkgewogICAgICByZXR1cm4gbWVyZ2VBbGxfMS5tZXJnZUFsbCgxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdEFsbCA9IGNvbmNhdEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsKCkoZnJvbV8xLmZyb20oYXJncywgYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29uY2F0ID0gY29uY2F0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2RlZmVyLmpzCnZhciByZXF1aXJlX2RlZmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZGVmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZmVyID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGRlZmVyKG9ic2VydmFibGVGYWN0b3J5KSB7CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvYnNlcnZhYmxlRmFjdG9yeSgpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmZXIgPSBkZWZlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9jb25uZWN0YWJsZS5qcwp2YXIgcmVxdWlyZV9jb25uZWN0YWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Nvbm5lY3RhYmxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25uZWN0YWJsZSA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgdmFyIERFRkFVTFRfQ09ORklHID0gewogICAgICBjb25uZWN0b3I6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgfSwKICAgICAgcmVzZXRPbkRpc2Nvbm5lY3Q6IHRydWUKICAgIH07CiAgICBmdW5jdGlvbiBjb25uZWN0YWJsZShzb3VyY2UsIGNvbmZpZykgewogICAgICBpZiAoY29uZmlnID09PSB2b2lkIDApIHsKICAgICAgICBjb25maWcgPSBERUZBVUxUX0NPTkZJRzsKICAgICAgfQogICAgICB2YXIgY29ubmVjdGlvbiA9IG51bGw7CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yLCBfYSA9IGNvbmZpZy5yZXNldE9uRGlzY29ubmVjdCwgcmVzZXRPbkRpc2Nvbm5lY3QgPSBfYSA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9hOwogICAgICB2YXIgc3ViamVjdCA9IGNvbm5lY3RvcigpOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3ViamVjdC5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgICByZXN1bHQuY29ubmVjdCA9IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICghY29ubmVjdGlvbiB8fCBjb25uZWN0aW9uLmNsb3NlZCkgewogICAgICAgICAgY29ubmVjdGlvbiA9IGRlZmVyXzEuZGVmZXIoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2U7CiAgICAgICAgICB9KS5zdWJzY3JpYmUoc3ViamVjdCk7CiAgICAgICAgICBpZiAocmVzZXRPbkRpc2Nvbm5lY3QpIHsKICAgICAgICAgICAgY29ubmVjdGlvbi5hZGQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb25uZWN0aW9uOwogICAgICB9OwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdGFibGUgPSBjb25uZWN0YWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9mb3JrSm9pbi5qcwp2YXIgcmVxdWlyZV9mb3JrSm9pbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2ZvcmtKb2luLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mb3JrSm9pbiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBhcmdzQXJnQXJyYXlPck9iamVjdF8xID0gcmVxdWlyZV9hcmdzQXJnQXJyYXlPck9iamVjdCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgY3JlYXRlT2JqZWN0XzEgPSByZXF1aXJlX2NyZWF0ZU9iamVjdCgpOwogICAgZnVuY3Rpb24gZm9ya0pvaW4oKSB7CiAgICAgIHZhciBhcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciByZXN1bHRTZWxlY3RvciA9IGFyZ3NfMS5wb3BSZXN1bHRTZWxlY3RvcihhcmdzKTsKICAgICAgdmFyIF9hID0gYXJnc0FyZ0FycmF5T3JPYmplY3RfMS5hcmdzQXJnQXJyYXlPck9iamVjdChhcmdzKSwgc291cmNlcyA9IF9hLmFyZ3MsIGtleXMgPSBfYS5rZXlzOwogICAgICB2YXIgcmVzdWx0ID0gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbGVuZ3RoID0gc291cmNlcy5sZW5ndGg7CiAgICAgICAgaWYgKCFsZW5ndGgpIHsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHZhbHVlcyA9IG5ldyBBcnJheShsZW5ndGgpOwogICAgICAgIHZhciByZW1haW5pbmdDb21wbGV0aW9ucyA9IGxlbmd0aDsKICAgICAgICB2YXIgcmVtYWluaW5nRW1pc3Npb25zID0gbGVuZ3RoOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzW3NvdXJjZUluZGV4Ml0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgICByZW1haW5pbmdFbWlzc2lvbnMtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICB2YWx1ZXNbc291cmNlSW5kZXgyXSA9IHZhbHVlOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIHJldHVybiByZW1haW5pbmdDb21wbGV0aW9ucy0tOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFyZW1haW5pbmdDb21wbGV0aW9ucyB8fCAhaGFzVmFsdWUpIHsKICAgICAgICAgICAgICBpZiAoIXJlbWFpbmluZ0VtaXNzaW9ucykgewogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGtleXMgPyBjcmVhdGVPYmplY3RfMS5jcmVhdGVPYmplY3Qoa2V5cywgdmFsdWVzKSA6IHZhbHVlcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgc291cmNlSW5kZXggPSAwOyBzb3VyY2VJbmRleCA8IGxlbmd0aDsgc291cmNlSW5kZXgrKykgewogICAgICAgICAgX2xvb3BfMShzb3VyY2VJbmRleCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yID8gcmVzdWx0LnBpcGUobWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IHJlc3VsdDsKICAgIH0KICAgIGV4cG9ydHMyLmZvcmtKb2luID0gZm9ya0pvaW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50LmpzCnZhciByZXF1aXJlX2Zyb21FdmVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21FdmVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5mcm9tRXZlbnQgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNBcnJheUxpa2VfMSA9IHJlcXVpcmVfaXNBcnJheUxpa2UoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIHZhciBub2RlRXZlbnRFbWl0dGVyTWV0aG9kcyA9IFsiYWRkTGlzdGVuZXIiLCAicmVtb3ZlTGlzdGVuZXIiXTsKICAgIHZhciBldmVudFRhcmdldE1ldGhvZHMgPSBbImFkZEV2ZW50TGlzdGVuZXIiLCAicmVtb3ZlRXZlbnRMaXN0ZW5lciJdOwogICAgdmFyIGpxdWVyeU1ldGhvZHMgPSBbIm9uIiwgIm9mZiJdOwogICAgZnVuY3Rpb24gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zLCByZXN1bHRTZWxlY3RvcikgewogICAgICBpZiAoaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ob3B0aW9ucykpIHsKICAgICAgICByZXN1bHRTZWxlY3RvciA9IG9wdGlvbnM7CiAgICAgICAgb3B0aW9ucyA9IHZvaWQgMDsKICAgICAgfQogICAgICBpZiAocmVzdWx0U2VsZWN0b3IpIHsKICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHRhcmdldCwgZXZlbnROYW1lLCBvcHRpb25zKS5waXBlKG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHJlc3VsdFNlbGVjdG9yKSk7CiAgICAgIH0KICAgICAgdmFyIF9hID0gX19yZWFkKGlzRXZlbnRUYXJnZXQodGFyZ2V0KSA/IGV2ZW50VGFyZ2V0TWV0aG9kcy5tYXAoZnVuY3Rpb24obWV0aG9kTmFtZSkgewogICAgICAgIHJldHVybiBmdW5jdGlvbihoYW5kbGVyKSB7CiAgICAgICAgICByZXR1cm4gdGFyZ2V0W21ldGhvZE5hbWVdKGV2ZW50TmFtZSwgaGFuZGxlciwgb3B0aW9ucyk7CiAgICAgICAgfTsKICAgICAgfSkgOiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpID8gbm9kZUV2ZW50RW1pdHRlck1ldGhvZHMubWFwKHRvQ29tbW9uSGFuZGxlclJlZ2lzdHJ5KHRhcmdldCwgZXZlbnROYW1lKSkgOiBpc0pRdWVyeVN0eWxlRXZlbnRFbWl0dGVyKHRhcmdldCkgPyBqcXVlcnlNZXRob2RzLm1hcCh0b0NvbW1vbkhhbmRsZXJSZWdpc3RyeSh0YXJnZXQsIGV2ZW50TmFtZSkpIDogW10sIDIpLCBhZGQgPSBfYVswXSwgcmVtb3ZlID0gX2FbMV07CiAgICAgIGlmICghYWRkKSB7CiAgICAgICAgaWYgKGlzQXJyYXlMaWtlXzEuaXNBcnJheUxpa2UodGFyZ2V0KSkgewogICAgICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24oc3ViVGFyZ2V0KSB7CiAgICAgICAgICAgIHJldHVybiBmcm9tRXZlbnQoc3ViVGFyZ2V0LCBldmVudE5hbWUsIG9wdGlvbnMpOwogICAgICAgICAgfSkoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHRhcmdldCkpOwogICAgICAgIH0KICAgICAgfQogICAgICBpZiAoIWFkZCkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgZXZlbnQgdGFyZ2V0Iik7CiAgICAgIH0KICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhbmRsZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBhcmdzID0gW107CiAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3Vic2NyaWJlci5uZXh0KDEgPCBhcmdzLmxlbmd0aCA/IGFyZ3MgOiBhcmdzWzBdKTsKICAgICAgICB9OwogICAgICAgIGFkZChoYW5kbGVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlKGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZnJvbUV2ZW50ID0gZnJvbUV2ZW50OwogICAgZnVuY3Rpb24gdG9Db21tb25IYW5kbGVyUmVnaXN0cnkodGFyZ2V0LCBldmVudE5hbWUpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oaGFuZGxlcikgewogICAgICAgICAgcmV0dXJuIHRhcmdldFttZXRob2ROYW1lXShldmVudE5hbWUsIGhhbmRsZXIpOwogICAgICAgIH07CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBpc05vZGVTdHlsZUV2ZW50RW1pdHRlcih0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRMaXN0ZW5lcikgJiYgaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24odGFyZ2V0LnJlbW92ZUxpc3RlbmVyKTsKICAgIH0KICAgIGZ1bmN0aW9uIGlzSlF1ZXJ5U3R5bGVFdmVudEVtaXR0ZXIodGFyZ2V0KSB7CiAgICAgIHJldHVybiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQub24pICYmIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5vZmYpOwogICAgfQogICAgZnVuY3Rpb24gaXNFdmVudFRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHRhcmdldC5hZGRFdmVudExpc3RlbmVyKSAmJiBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbih0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcwp2YXIgcmVxdWlyZV9mcm9tRXZlbnRQYXR0ZXJuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvZnJvbUV2ZW50UGF0dGVybi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBtYXBPbmVPck1hbnlBcmdzXzEgPSByZXF1aXJlX21hcE9uZU9yTWFueUFyZ3MoKTsKICAgIGZ1bmN0aW9uIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlciwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZyb21FdmVudFBhdHRlcm4oYWRkSGFuZGxlciwgcmVtb3ZlSGFuZGxlcikucGlwZShtYXBPbmVPck1hbnlBcmdzXzEubWFwT25lT3JNYW55QXJncyhyZXN1bHRTZWxlY3RvcikpOwogICAgICB9CiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUoZnVuY3Rpb24oc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYW5kbGVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgZSA9IFtdOwogICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICAgICAgZVtfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN1YnNjcmliZXIubmV4dChlLmxlbmd0aCA9PT0gMSA/IGVbMF0gOiBlKTsKICAgICAgICB9OwogICAgICAgIHZhciByZXRWYWx1ZSA9IGFkZEhhbmRsZXIoaGFuZGxlcik7CiAgICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlbW92ZUhhbmRsZXIpID8gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gcmVtb3ZlSGFuZGxlcihoYW5kbGVyLCByZXRWYWx1ZSk7CiAgICAgICAgfSA6IHZvaWQgMDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tRXZlbnRQYXR0ZXJuID0gZnJvbUV2ZW50UGF0dGVybjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9nZW5lcmF0ZS5qcwp2YXIgcmVxdWlyZV9nZW5lcmF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2dlbmVyYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fZ2VuZXJhdG9yID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19nZW5lcmF0b3IgfHwgZnVuY3Rpb24odGhpc0FyZywgYm9keSkgewogICAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgewogICAgICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsKICAgICAgICByZXR1cm4gdFsxXTsKICAgICAgfSwgdHJ5czogW10sIG9wczogW10gfSwgZiwgeSwgdCwgZzsKICAgICAgcmV0dXJuIGcgPSB7IG5leHQ6IHZlcmIoMCksICJ0aHJvdyI6IHZlcmIoMSksICJyZXR1cm4iOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgKGdbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9KSwgZzsKICAgICAgZnVuY3Rpb24gdmVyYihuKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHYpIHsKICAgICAgICAgIHJldHVybiBzdGVwKFtuLCB2XSk7CiAgICAgICAgfTsKICAgICAgfQogICAgICBmdW5jdGlvbiBzdGVwKG9wKSB7CiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTsKICAgICAgICB3aGlsZSAoXykgdHJ5IHsKICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbInJldHVybiJdIDogb3BbMF0gPyB5WyJ0aHJvdyJdIHx8ICgodCA9IHlbInJldHVybiJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDsKICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTsKICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgdCA9IG9wOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgXy5sYWJlbCsrOwogICAgICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTsKICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgIF8ubGFiZWwrKzsKICAgICAgICAgICAgICB5ID0gb3BbMV07CiAgICAgICAgICAgICAgb3AgPSBbMF07CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvcCA9IF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICBpZiAoISh0ID0gXy50cnlzLCB0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKG9wWzBdID09PSA2IHx8IG9wWzBdID09PSAyKSkgewogICAgICAgICAgICAgICAgXyA9IDA7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCBvcFsxXSA+IHRbMF0gJiYgb3BbMV0gPCB0WzNdKSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IG9wWzFdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgewogICAgICAgICAgICAgICAgXy5sYWJlbCA9IHRbMV07CiAgICAgICAgICAgICAgICB0ID0gb3A7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHQgJiYgXy5sYWJlbCA8IHRbMl0pIHsKICAgICAgICAgICAgICAgIF8ubGFiZWwgPSB0WzJdOwogICAgICAgICAgICAgICAgXy5vcHMucHVzaChvcCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpOwogICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIG9wID0gWzYsIGVdOwogICAgICAgICAgeSA9IDA7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGYgPSB0ID0gMDsKICAgICAgICB9CiAgICAgICAgaWYgKG9wWzBdICYgNSkgdGhyb3cgb3BbMV07CiAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG9wWzBdID8gb3BbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTsKICAgICAgfQogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSB2b2lkIDA7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGRlZmVyXzEgPSByZXF1aXJlX2RlZmVyKCk7CiAgICB2YXIgc2NoZWR1bGVJdGVyYWJsZV8xID0gcmVxdWlyZV9zY2hlZHVsZUl0ZXJhYmxlKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZShpbml0aWFsU3RhdGVPck9wdGlvbnMsIGNvbmRpdGlvbiwgaXRlcmF0ZSwgcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlciwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciByZXN1bHRTZWxlY3RvcjsKICAgICAgdmFyIGluaXRpYWxTdGF0ZTsKICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgICAgICBfYSA9IGluaXRpYWxTdGF0ZU9yT3B0aW9ucywgaW5pdGlhbFN0YXRlID0gX2EuaW5pdGlhbFN0YXRlLCBjb25kaXRpb24gPSBfYS5jb25kaXRpb24sIGl0ZXJhdGUgPSBfYS5pdGVyYXRlLCBfYiA9IF9hLnJlc3VsdFNlbGVjdG9yLCByZXN1bHRTZWxlY3RvciA9IF9iID09PSB2b2lkIDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogX2IsIHNjaGVkdWxlciA9IF9hLnNjaGVkdWxlcjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpbml0aWFsU3RhdGUgPSBpbml0aWFsU3RhdGVPck9wdGlvbnM7CiAgICAgICAgaWYgKCFyZXN1bHRTZWxlY3Rvck9yU2NoZWR1bGVyIHx8IGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIocmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gaWRlbnRpdHlfMS5pZGVudGl0eTsKICAgICAgICAgIHNjaGVkdWxlciA9IHJlc3VsdFNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3VsdFNlbGVjdG9yID0gcmVzdWx0U2VsZWN0b3JPclNjaGVkdWxlcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZ2VuKCkgewogICAgICAgIHZhciBzdGF0ZTsKICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24oX2EyKSB7CiAgICAgICAgICBzd2l0Y2ggKF9hMi5sYWJlbCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgc3RhdGUgPSBpbml0aWFsU3RhdGU7CiAgICAgICAgICAgICAgX2EyLmxhYmVsID0gMTsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIGlmICghKCFjb25kaXRpb24gfHwgY29uZGl0aW9uKHN0YXRlKSkpIHJldHVybiBbMywgNF07CiAgICAgICAgICAgICAgcmV0dXJuIFs0LCByZXN1bHRTZWxlY3RvcihzdGF0ZSldOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX2EyLnNlbnQoKTsKICAgICAgICAgICAgICBfYTIubGFiZWwgPSAzOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgc3RhdGUgPSBpdGVyYXRlKHN0YXRlKTsKICAgICAgICAgICAgICByZXR1cm4gWzMsIDFdOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgcmV0dXJuIFsyXTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZGVmZXJfMS5kZWZlcihzY2hlZHVsZXIgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc2NoZWR1bGVJdGVyYWJsZV8xLnNjaGVkdWxlSXRlcmFibGUoZ2VuKCksIHNjaGVkdWxlcik7CiAgICAgIH0gOiBnZW4pOwogICAgfQogICAgZXhwb3J0czIuZ2VuZXJhdGUgPSBnZW5lcmF0ZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9paWYuanMKdmFyIHJlcXVpcmVfaWlmID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaWlmLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5paWYgPSB2b2lkIDA7CiAgICB2YXIgZGVmZXJfMSA9IHJlcXVpcmVfZGVmZXIoKTsKICAgIGZ1bmN0aW9uIGlpZihjb25kaXRpb24sIHRydWVSZXN1bHQsIGZhbHNlUmVzdWx0KSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBjb25kaXRpb24oKSA/IHRydWVSZXN1bHQgOiBmYWxzZVJlc3VsdDsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5paWYgPSBpaWY7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdGltZXIuanMKdmFyIHJlcXVpcmVfdGltZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS90aW1lci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXIgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBpc1NjaGVkdWxlcl8xID0gcmVxdWlyZV9pc1NjaGVkdWxlcigpOwogICAgdmFyIGlzRGF0ZV8xID0gcmVxdWlyZV9pc0RhdGUoKTsKICAgIGZ1bmN0aW9uIHRpbWVyKGR1ZVRpbWUsIGludGVydmFsT3JTY2hlZHVsZXIsIHNjaGVkdWxlcikgewogICAgICBpZiAoZHVlVGltZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZHVlVGltZSA9IDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luYzsKICAgICAgfQogICAgICB2YXIgaW50ZXJ2YWxEdXJhdGlvbiA9IC0xOwogICAgICBpZiAoaW50ZXJ2YWxPclNjaGVkdWxlciAhPSBudWxsKSB7CiAgICAgICAgaWYgKGlzU2NoZWR1bGVyXzEuaXNTY2hlZHVsZXIoaW50ZXJ2YWxPclNjaGVkdWxlcikpIHsKICAgICAgICAgIHNjaGVkdWxlciA9IGludGVydmFsT3JTY2hlZHVsZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGludGVydmFsRHVyYXRpb24gPSBpbnRlcnZhbE9yU2NoZWR1bGVyOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgZHVlID0gaXNEYXRlXzEuaXNWYWxpZERhdGUoZHVlVGltZSkgPyArZHVlVGltZSAtIHNjaGVkdWxlci5ub3coKSA6IGR1ZVRpbWU7CiAgICAgICAgaWYgKGR1ZSA8IDApIHsKICAgICAgICAgIGR1ZSA9IDA7CiAgICAgICAgfQogICAgICAgIHZhciBuID0gMDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQobisrKTsKICAgICAgICAgICAgaWYgKDAgPD0gaW50ZXJ2YWxEdXJhdGlvbikgewogICAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUodm9pZCAwLCBpbnRlcnZhbER1cmF0aW9uKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBkdWUpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRpbWVyID0gdGltZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvaW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfaW50ZXJ2YWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9pbnRlcnZhbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaW50ZXJ2YWwgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gaW50ZXJ2YWwocGVyaW9kLCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKHBlcmlvZCA9PT0gdm9pZCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICBpZiAoc2NoZWR1bGVyID09PSB2b2lkIDApIHsKICAgICAgICBzY2hlZHVsZXIgPSBhc3luY18xLmFzeW5jU2NoZWR1bGVyOwogICAgICB9CiAgICAgIGlmIChwZXJpb2QgPCAwKSB7CiAgICAgICAgcGVyaW9kID0gMDsKICAgICAgfQogICAgICByZXR1cm4gdGltZXJfMS50aW1lcihwZXJpb2QsIHBlcmlvZCwgc2NoZWR1bGVyKTsKICAgIH0KICAgIGV4cG9ydHMyLmludGVydmFsID0gaW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VBbGxfMSA9IHJlcXVpcmVfbWVyZ2VBbGwoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIGZ1bmN0aW9uIG1lcmdlMigpIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIoYXJncyk7CiAgICAgIHZhciBjb25jdXJyZW50ID0gYXJnc18xLnBvcE51bWJlcihhcmdzLCBJbmZpbml0eSk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnczsKICAgICAgcmV0dXJuICFzb3VyY2VzLmxlbmd0aCA/IGVtcHR5XzEuRU1QVFkgOiBzb3VyY2VzLmxlbmd0aCA9PT0gMSA/IGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2VzWzBdKSA6IG1lcmdlQWxsXzEubWVyZ2VBbGwoY29uY3VycmVudCkoZnJvbV8xLmZyb20oc291cmNlcywgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9uZXZlci5qcwp2YXIgcmVxdWlyZV9uZXZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL25ldmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLk5FVkVSID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZXhwb3J0czIuTkVWRVIgPSBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUobm9vcF8xLm5vb3ApOwogICAgZnVuY3Rpb24gbmV2ZXIoKSB7CiAgICAgIHJldHVybiBleHBvcnRzMi5ORVZFUjsKICAgIH0KICAgIGV4cG9ydHMyLm5ldmVyID0gbmV2ZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3V0aWwvYXJnc09yQXJnQXJyYXkuanMKdmFyIHJlcXVpcmVfYXJnc09yQXJnQXJyYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9hcmdzT3JBcmdBcnJheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYXJnc09yQXJnQXJyYXkgPSB2b2lkIDA7CiAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7CiAgICBmdW5jdGlvbiBhcmdzT3JBcmdBcnJheShhcmdzKSB7CiAgICAgIHJldHVybiBhcmdzLmxlbmd0aCA9PT0gMSAmJiBpc0FycmF5KGFyZ3NbMF0pID8gYXJnc1swXSA6IGFyZ3M7CiAgICB9CiAgICBleHBvcnRzMi5hcmdzT3JBcmdBcnJheSA9IGFyZ3NPckFyZ0FycmF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL29uRXJyb3JSZXN1bWVOZXh0LmpzCnZhciByZXF1aXJlX29uRXJyb3JSZXN1bWVOZXh0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvb25FcnJvclJlc3VtZU5leHQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0KCkgewogICAgICB2YXIgc291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIHNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgbmV4dFNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc291cmNlSW5kZXggPSAwOwogICAgICAgIHZhciBzdWJzY3JpYmVOZXh0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoc291cmNlSW5kZXggPCBuZXh0U291cmNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgdmFyIG5leHRTb3VyY2UgPSB2b2lkIDA7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgbmV4dFNvdXJjZSA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShuZXh0U291cmNlc1tzb3VyY2VJbmRleCsrXSk7CiAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgIHN1YnNjcmliZU5leHQoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG5ldyBPcGVyYXRvclN1YnNjcmliZXJfMS5PcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBub29wXzEubm9vcCwgbm9vcF8xLm5vb3ApOwogICAgICAgICAgICBuZXh0U291cmNlLnN1YnNjcmliZShpbm5lclN1YnNjcmliZXIpOwogICAgICAgICAgICBpbm5lclN1YnNjcmliZXIuYWRkKHN1YnNjcmliZU5leHQpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlTmV4dCgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gb25FcnJvclJlc3VtZU5leHQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFpcnMuanMKdmFyIHJlcXVpcmVfcGFpcnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYWlycy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGFpcnMgPSB2b2lkIDA7CiAgICB2YXIgZnJvbV8xID0gcmVxdWlyZV9mcm9tKCk7CiAgICBmdW5jdGlvbiBwYWlyczIob2JqLCBzY2hlZHVsZXIpIHsKICAgICAgcmV0dXJuIGZyb21fMS5mcm9tKE9iamVjdC5lbnRyaWVzKG9iaiksIHNjaGVkdWxlcik7CiAgICB9CiAgICBleHBvcnRzMi5wYWlycyA9IHBhaXJzMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvdXRpbC9ub3QuanMKdmFyIHJlcXVpcmVfbm90MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC91dGlsL25vdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubm90ID0gdm9pZCAwOwogICAgZnVuY3Rpb24gbm90KHByZWQsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHZhbHVlLCBpbmRleCkgewogICAgICAgIHJldHVybiAhcHJlZC5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5ub3QgPSBub3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMKdmFyIHJlcXVpcmVfZmlsdGVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maWx0ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbHRlciA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaWx0ZXIocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gcHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGluZGV4KyspICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbHRlciA9IGZpbHRlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9wYXJ0aXRpb24uanMKdmFyIHJlcXVpcmVfcGFydGl0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcGFydGl0aW9uLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSB2b2lkIDA7CiAgICB2YXIgbm90XzEgPSByZXF1aXJlX25vdDIoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gcGFydGl0aW9uKHNvdXJjZSwgcHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBbZmlsdGVyXzEuZmlsdGVyKHByZWRpY2F0ZSwgdGhpc0FyZykoaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZSkpLCBmaWx0ZXJfMS5maWx0ZXIobm90XzEubm90KHByZWRpY2F0ZSwgdGhpc0FyZykpKGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpKV07CiAgICB9CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcwp2YXIgcmVxdWlyZV9yYWNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFjZUluaXQgPSBleHBvcnRzMi5yYWNlID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJhY2UoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHNvdXJjZXMgPSBhcmdzT3JBcmdBcnJheV8xLmFyZ3NPckFyZ0FycmF5KHNvdXJjZXMpOwogICAgICByZXR1cm4gc291cmNlcy5sZW5ndGggPT09IDEgPyBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1swXSkgOiBuZXcgT2JzZXJ2YWJsZV8xLk9ic2VydmFibGUocmFjZUluaXQoc291cmNlcykpOwogICAgfQogICAgZXhwb3J0czIucmFjZSA9IHJhY2U7CiAgICBmdW5jdGlvbiByYWNlSW5pdChzb3VyY2VzKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YnNjcmlwdGlvbnMgPSBbXTsKICAgICAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uKGkyKSB7CiAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHNvdXJjZXNbaTJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgcyA9IDA7IHMgPCBzdWJzY3JpcHRpb25zLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgICAgICBzICE9PSBpMiAmJiBzdWJzY3JpcHRpb25zW3NdLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9KSkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IHN1YnNjcmlwdGlvbnMgJiYgIXN1YnNjcmliZXIuY2xvc2VkICYmIGkgPCBzb3VyY2VzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBfbG9vcF8xKGkpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnJhY2VJbml0ID0gcmFjZUluaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvcmFuZ2UuanMKdmFyIHJlcXVpcmVfcmFuZ2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9yYW5nZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmFuZ2UgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICB2YXIgZW1wdHlfMSA9IHJlcXVpcmVfZW1wdHkoKTsKICAgIGZ1bmN0aW9uIHJhbmdlKHN0YXJ0LCBjb3VudCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChjb3VudCA9PSBudWxsKSB7CiAgICAgICAgY291bnQgPSBzdGFydDsKICAgICAgICBzdGFydCA9IDA7CiAgICAgIH0KICAgICAgaWYgKGNvdW50IDw9IDApIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfQogICAgICB2YXIgZW5kID0gY291bnQgKyBzdGFydDsKICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShzY2hlZHVsZXIgPyBmdW5jdGlvbihzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIG4gPSBzdGFydDsKICAgICAgICByZXR1cm4gc2NoZWR1bGVyLnNjaGVkdWxlKGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG4gPCBlbmQpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgICAgIHRoaXMuc2NoZWR1bGUoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfSA6IGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgbiA9IHN0YXJ0OwogICAgICAgIHdoaWxlIChuIDwgZW5kICYmICFzdWJzY3JpYmVyLmNsb3NlZCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KG4rKyk7CiAgICAgICAgfQogICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5yYW5nZSA9IHJhbmdlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3VzaW5nLmpzCnZhciByZXF1aXJlX3VzaW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvdXNpbmcuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnVzaW5nID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgZnVuY3Rpb24gdXNpbmcocmVzb3VyY2VGYWN0b3J5LCBvYnNlcnZhYmxlRmFjdG9yeSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgcmVzb3VyY2UgPSByZXNvdXJjZUZhY3RvcnkoKTsKICAgICAgICB2YXIgcmVzdWx0ID0gb2JzZXJ2YWJsZUZhY3RvcnkocmVzb3VyY2UpOwogICAgICAgIHZhciBzb3VyY2UgPSByZXN1bHQgPyBpbm5lckZyb21fMS5pbm5lckZyb20ocmVzdWx0KSA6IGVtcHR5XzEuRU1QVFk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKICAgICAgICAgICAgcmVzb3VyY2UudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnVzaW5nID0gdXNpbmc7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29ic2VydmFibGUvemlwLmpzCnZhciByZXF1aXJlX3ppcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL3ppcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuemlwID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBhcmdzT3JBcmdBcnJheV8xID0gcmVxdWlyZV9hcmdzT3JBcmdBcnJheSgpOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgZnVuY3Rpb24gemlwKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHZhciBzb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKTsKICAgICAgcmV0dXJuIHNvdXJjZXMubGVuZ3RoID8gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IHNvdXJjZXMubWFwKGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0pOwogICAgICAgIHZhciBjb21wbGV0ZWQgPSBzb3VyY2VzLm1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9KTsKICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBjb21wbGV0ZWQgPSBudWxsOwogICAgICAgIH0pOwogICAgICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24oc291cmNlSW5kZXgyKSB7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc291cmNlc1tzb3VyY2VJbmRleDJdKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGJ1ZmZlcnNbc291cmNlSW5kZXgyXS5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuZXZlcnkoZnVuY3Rpb24oYnVmZmVyKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5sZW5ndGg7CiAgICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJ1ZmZlcnMubWFwKGZ1bmN0aW9uKGJ1ZmZlcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZmZlci5zaGlmdCgpOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHRTZWxlY3RvciA/IHJlc3VsdFNlbGVjdG9yLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHJlc3VsdCkpKSA6IHJlc3VsdCk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnMuc29tZShmdW5jdGlvbihidWZmZXIsIGkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAhYnVmZmVyLmxlbmd0aCAmJiBjb21wbGV0ZWRbaV07CiAgICAgICAgICAgICAgfSkpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb21wbGV0ZWRbc291cmNlSW5kZXgyXSA9IHRydWU7CiAgICAgICAgICAgICFidWZmZXJzW3NvdXJjZUluZGV4Ml0ubGVuZ3RoICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9OwogICAgICAgIGZvciAodmFyIHNvdXJjZUluZGV4ID0gMDsgIXN1YnNjcmliZXIuY2xvc2VkICYmIHNvdXJjZUluZGV4IDwgc291cmNlcy5sZW5ndGg7IHNvdXJjZUluZGV4KyspIHsKICAgICAgICAgIF9sb29wXzEoc291cmNlSW5kZXgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXJzID0gY29tcGxldGVkID0gbnVsbDsKICAgICAgICB9OwogICAgICB9KSA6IGVtcHR5XzEuRU1QVFk7CiAgICB9CiAgICBleHBvcnRzMi56aXAgPSB6aXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL3R5cGVzLmpzCnZhciByZXF1aXJlX3R5cGVzMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC90eXBlcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYXVkaXQuanMKdmFyIHJlcXVpcmVfYXVkaXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2F1ZGl0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5hdWRpdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gYXVkaXQoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGlzQ29tcGxldGUgPSBmYWxzZTsKICAgICAgICB2YXIgZW5kRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwRHVyYXRpb24gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGlmICghZHVyYXRpb25TdWJzY3JpYmVyKSB7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmREdXJhdGlvbiwgY2xlYW51cER1cmF0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpc0NvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICghaGFzVmFsdWUgfHwgIWR1cmF0aW9uU3Vic2NyaWJlciB8fCBkdXJhdGlvblN1YnNjcmliZXIuY2xvc2VkKSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmF1ZGl0ID0gYXVkaXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMKdmFyIHJlcXVpcmVfYXVkaXRUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9hdWRpdFRpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmF1ZGl0VGltZSA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGF1ZGl0VGltZShkdXJhdGlvbiwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuYXVkaXRUaW1lID0gYXVkaXRUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXIgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcihjbG9zaW5nTm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBjdXJyZW50QnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBjdXJyZW50QnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGN1cnJlbnRCdWZmZXIpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ05vdGlmaWVyKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgdmFyIGIgPSBjdXJyZW50QnVmZmVyOwogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IFtdOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGIpOwogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgY3VycmVudEJ1ZmZlciA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXIgPSBidWZmZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJDb3VudC5qcwp2YXIgcmVxdWlyZV9idWZmZXJDb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyQ291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX192YWx1ZXMgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3ZhbHVlcyB8fCBmdW5jdGlvbihvKSB7CiAgICAgIHZhciBzID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBTeW1ib2wuaXRlcmF0b3IsIG0gPSBzICYmIG9bc10sIGkgPSAwOwogICAgICBpZiAobSkgcmV0dXJuIG0uY2FsbChvKTsKICAgICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSAibnVtYmVyIikgcmV0dXJuIHsKICAgICAgICBuZXh0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChvICYmIGkgPj0gby5sZW5ndGgpIG8gPSB2b2lkIDA7CiAgICAgICAgICByZXR1cm4geyB2YWx1ZTogbyAmJiBvW2krK10sIGRvbmU6ICFvIH07CiAgICAgICAgfQogICAgICB9OwogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyAiT2JqZWN0IGlzIG5vdCBpdGVyYWJsZS4iIDogIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC4iKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBhcnJSZW1vdmVfMSA9IHJlcXVpcmVfYXJyUmVtb3ZlKCk7CiAgICBmdW5jdGlvbiBidWZmZXJDb3VudChidWZmZXJTaXplLCBzdGFydEJ1ZmZlckV2ZXJ5KSB7CiAgICAgIGlmIChzdGFydEJ1ZmZlckV2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gbnVsbDsKICAgICAgfQogICAgICBzdGFydEJ1ZmZlckV2ZXJ5ID0gc3RhcnRCdWZmZXJFdmVyeSAhPT0gbnVsbCAmJiBzdGFydEJ1ZmZlckV2ZXJ5ICE9PSB2b2lkIDAgPyBzdGFydEJ1ZmZlckV2ZXJ5IDogYnVmZmVyU2l6ZTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJzID0gW107CiAgICAgICAgdmFyIGNvdW50ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2EsIGVfMiwgX2I7CiAgICAgICAgICB2YXIgdG9FbWl0ID0gbnVsbDsKICAgICAgICAgIGlmIChjb3VudCsrICUgc3RhcnRCdWZmZXJFdmVyeSA9PT0gMCkgewogICAgICAgICAgICBidWZmZXJzLnB1c2goW10pOwogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18xID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKTsgIWJ1ZmZlcnNfMV8xLmRvbmU7IGJ1ZmZlcnNfMV8xID0gYnVmZmVyc18xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdG9FbWl0ID0gdG9FbWl0ICE9PSBudWxsICYmIHRvRW1pdCAhPT0gdm9pZCAwID8gdG9FbWl0IDogW107CiAgICAgICAgICAgICAgICB0b0VtaXQucHVzaChidWZmZXIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9FbWl0KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgdG9FbWl0XzEgPSBfX3ZhbHVlcyh0b0VtaXQpLCB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpOyAhdG9FbWl0XzFfMS5kb25lOyB0b0VtaXRfMV8xID0gdG9FbWl0XzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgICB2YXIgYnVmZmVyID0gdG9FbWl0XzFfMS52YWx1ZTsKICAgICAgICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJzLCBidWZmZXIpOwogICAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlXzJfMSkgewogICAgICAgICAgICAgIGVfMiA9IHsgZXJyb3I6IGVfMl8xIH07CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmICh0b0VtaXRfMV8xICYmICF0b0VtaXRfMV8xLmRvbmUgJiYgKF9iID0gdG9FbWl0XzEucmV0dXJuKSkgX2IuY2FsbCh0b0VtaXRfMSk7CiAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIGlmIChlXzIpIHRocm93IGVfMi5lcnJvcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzMsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyc18yID0gX192YWx1ZXMoYnVmZmVycyksIGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKTsgIWJ1ZmZlcnNfMl8xLmRvbmU7IGJ1ZmZlcnNfMl8xID0gYnVmZmVyc18yLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciBidWZmZXIgPSBidWZmZXJzXzJfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoYnVmZmVyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8zXzEpIHsKICAgICAgICAgICAgZV8zID0geyBlcnJvcjogZV8zXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMl8xICYmICFidWZmZXJzXzJfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMi5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMik7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMykgdGhyb3cgZV8zLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIGJ1ZmZlcnMgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJDb3VudCA9IGJ1ZmZlckNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvYnVmZmVyVGltZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgYXJyUmVtb3ZlXzEgPSByZXF1aXJlX2FyclJlbW92ZSgpOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICB2YXIgZXhlY3V0ZVNjaGVkdWxlXzEgPSByZXF1aXJlX2V4ZWN1dGVTY2hlZHVsZSgpOwogICAgZnVuY3Rpb24gYnVmZmVyVGltZShidWZmZXJUaW1lU3BhbikgewogICAgICB2YXIgX2EsIF9iOwogICAgICB2YXIgb3RoZXJBcmdzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMTsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgb3RoZXJBcmdzW19pIC0gMV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBzY2hlZHVsZXIgPSAoX2EgPSBhcmdzXzEucG9wU2NoZWR1bGVyKG90aGVyQXJncykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIHZhciBidWZmZXJDcmVhdGlvbkludGVydmFsID0gKF9iID0gb3RoZXJBcmdzWzBdKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBudWxsOwogICAgICB2YXIgbWF4QnVmZmVyU2l6ZSA9IG90aGVyQXJnc1sxXSB8fCBJbmZpbml0eTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBidWZmZXJSZWNvcmRzID0gW107CiAgICAgICAgdmFyIHJlc3RhcnRPbkVtaXQgPSBmYWxzZTsKICAgICAgICB2YXIgZW1pdCA9IGZ1bmN0aW9uKHJlY29yZCkgewogICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXIsIHN1YnMgPSByZWNvcmQuc3ViczsKICAgICAgICAgIHN1YnMudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIGFyclJlbW92ZV8xLmFyclJlbW92ZShidWZmZXJSZWNvcmRzLCByZWNvcmQpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICByZXN0YXJ0T25FbWl0ICYmIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgfTsKICAgICAgICB2YXIgc3RhcnRCdWZmZXIgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChidWZmZXJSZWNvcmRzKSB7CiAgICAgICAgICAgIHZhciBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbigpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChzdWJzKTsKICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IFtdOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgIHN1YnMKICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnVmZmVyUmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVtaXQocmVjb3JkXzEpOwogICAgICAgICAgICB9LCBidWZmZXJUaW1lU3Bhbik7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBpZiAoYnVmZmVyQ3JlYXRpb25JbnRlcnZhbCAhPT0gbnVsbCAmJiBidWZmZXJDcmVhdGlvbkludGVydmFsID49IDApIHsKICAgICAgICAgIGV4ZWN1dGVTY2hlZHVsZV8xLmV4ZWN1dGVTY2hlZHVsZShzdWJzY3JpYmVyLCBzY2hlZHVsZXIsIHN0YXJ0QnVmZmVyLCBidWZmZXJDcmVhdGlvbkludGVydmFsLCB0cnVlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmVzdGFydE9uRW1pdCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHN0YXJ0QnVmZmVyKCk7CiAgICAgICAgdmFyIGJ1ZmZlclRpbWVTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTI7CiAgICAgICAgICB2YXIgcmVjb3Jkc0NvcHkgPSBidWZmZXJSZWNvcmRzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciByZWNvcmRzQ29weV8xID0gX192YWx1ZXMocmVjb3Jkc0NvcHkpLCByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKTsgIXJlY29yZHNDb3B5XzFfMS5kb25lOyByZWNvcmRzQ29weV8xXzEgPSByZWNvcmRzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciByZWNvcmQgPSByZWNvcmRzQ29weV8xXzEudmFsdWU7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IHJlY29yZC5idWZmZXI7CiAgICAgICAgICAgICAgYnVmZmVyLnB1c2godmFsdWUpOwogICAgICAgICAgICAgIG1heEJ1ZmZlclNpemUgPD0gYnVmZmVyLmxlbmd0aCAmJiBlbWl0KHJlY29yZCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVfMV8xKSB7CiAgICAgICAgICAgIGVfMSA9IHsgZXJyb3I6IGVfMV8xIH07CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmIChyZWNvcmRzQ29weV8xXzEgJiYgIXJlY29yZHNDb3B5XzFfMS5kb25lICYmIChfYTIgPSByZWNvcmRzQ29weV8xLnJldHVybikpIF9hMi5jYWxsKHJlY29yZHNDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKGJ1ZmZlclJlY29yZHMgPT09IG51bGwgfHwgYnVmZmVyUmVjb3JkcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnVmZmVyUmVjb3Jkcy5sZW5ndGgpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlclJlY29yZHMuc2hpZnQoKS5idWZmZXIpOwogICAgICAgICAgfQogICAgICAgICAgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IG51bGwgfHwgYnVmZmVyVGltZVN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1ZmZlclRpbWVTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXJSZWNvcmRzID0gbnVsbDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGJ1ZmZlclRpbWVTdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUaW1lID0gYnVmZmVyVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcwp2YXIgcmVxdWlyZV9idWZmZXJUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlclRvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlclRvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVycyA9IFtdOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciBidWZmZXIgPSBbXTsKICAgICAgICAgIGJ1ZmZlcnMucHVzaChidWZmZXIpOwogICAgICAgICAgdmFyIGNsb3NpbmdTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uXzEuU3Vic2NyaXB0aW9uKCk7CiAgICAgICAgICB2YXIgZW1pdEJ1ZmZlciA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUoYnVmZmVycywgYnVmZmVyKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIH07CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaXB0aW9uLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZW1pdEJ1ZmZlciwgbm9vcF8xLm5vb3ApKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciBidWZmZXJzXzEgPSBfX3ZhbHVlcyhidWZmZXJzKSwgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpOyAhYnVmZmVyc18xXzEuZG9uZTsgYnVmZmVyc18xXzEgPSBidWZmZXJzXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIGJ1ZmZlciA9IGJ1ZmZlcnNfMV8xLnZhbHVlOwogICAgICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKGJ1ZmZlcnNfMV8xICYmICFidWZmZXJzXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcnNfMS5yZXR1cm4pKSBfYS5jYWxsKGJ1ZmZlcnNfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoYnVmZmVycy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChidWZmZXJzLnNoaWZ0KCkpOwogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5idWZmZXJUb2dnbGUgPSBidWZmZXJUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9idWZmZXJXaGVuLmpzCnZhciByZXF1aXJlX2J1ZmZlcldoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2J1ZmZlcldoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIGJ1ZmZlcldoZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gbnVsbDsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXIgPSBudWxsOwogICAgICAgIHZhciBvcGVuQnVmZmVyID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjbG9zaW5nU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBjbG9zaW5nU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2xvc2luZ1N1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBiID0gYnVmZmVyOwogICAgICAgICAgYnVmZmVyID0gW107CiAgICAgICAgICBiICYmIHN1YnNjcmliZXIubmV4dChiKTsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShjbG9zaW5nU2VsZWN0b3IoKSkuc3Vic2NyaWJlKGNsb3NpbmdTdWJzY3JpYmVyID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIG9wZW5CdWZmZXIsIG5vb3BfMS5ub29wKSk7CiAgICAgICAgfTsKICAgICAgICBvcGVuQnVmZmVyKCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPT09IG51bGwgfHwgYnVmZmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidWZmZXIucHVzaCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgJiYgc3Vic2NyaWJlci5uZXh0KGJ1ZmZlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBidWZmZXIgPSBjbG9zaW5nU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmJ1ZmZlcldoZW4gPSBidWZmZXJXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY2F0Y2hFcnJvci5qcwp2YXIgcmVxdWlyZV9jYXRjaEVycm9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jYXRjaEVycm9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jYXRjaEVycm9yID0gdm9pZCAwOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiBjYXRjaEVycm9yKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWIgPSBudWxsOwogICAgICAgIHZhciBzeW5jVW5zdWIgPSBmYWxzZTsKICAgICAgICB2YXIgaGFuZGxlZFJlc3VsdDsKICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIGhhbmRsZWRSZXN1bHQgPSBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZXJyLCBjYXRjaEVycm9yKHNlbGVjdG9yKShzb3VyY2UpKSk7CiAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN5bmNVbnN1YiA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIGlmIChzeW5jVW5zdWIpIHsKICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICBoYW5kbGVkUmVzdWx0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY2F0Y2hFcnJvciA9IGNhdGNoRXJyb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zY2FuSW50ZXJuYWxzLmpzCnZhciByZXF1aXJlX3NjYW5JbnRlcm5hbHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW5JbnRlcm5hbHMuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjYW5JbnRlcm5hbHMgPSB2b2lkIDA7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgaGFzU2VlZCwgZW1pdE9uTmV4dCwgZW1pdEJlZm9yZUNvbXBsZXRlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaGFzU3RhdGUgPSBoYXNTZWVkOwogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGkgPSBpbmRleCsrOwogICAgICAgICAgc3RhdGUgPSBoYXNTdGF0ZSA/IGFjY3VtdWxhdG9yKHN0YXRlLCB2YWx1ZSwgaSkgOiAoaGFzU3RhdGUgPSB0cnVlLCB2YWx1ZSk7CiAgICAgICAgICBlbWl0T25OZXh0ICYmIHN1YnNjcmliZXIubmV4dChzdGF0ZSk7CiAgICAgICAgfSwgZW1pdEJlZm9yZUNvbXBsZXRlICYmIGZ1bmN0aW9uKCkgewogICAgICAgICAgaGFzU3RhdGUgJiYgc3Vic2NyaWJlci5uZXh0KHN0YXRlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5zY2FuSW50ZXJuYWxzID0gc2NhbkludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcwp2YXIgcmVxdWlyZV9yZWR1Y2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlZHVjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVkdWNlID0gdm9pZCAwOwogICAgdmFyIHNjYW5JbnRlcm5hbHNfMSA9IHJlcXVpcmVfc2NhbkludGVybmFscygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gcmVkdWNlKGFjY3VtdWxhdG9yLCBzZWVkKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShzY2FuSW50ZXJuYWxzXzEuc2NhbkludGVybmFscyhhY2N1bXVsYXRvciwgc2VlZCwgYXJndW1lbnRzLmxlbmd0aCA+PSAyLCBmYWxzZSwgdHJ1ZSkpOwogICAgfQogICAgZXhwb3J0czIucmVkdWNlID0gcmVkdWNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdG9BcnJheS5qcwp2YXIgcmVxdWlyZV90b0FycmF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90b0FycmF5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50b0FycmF5ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBhcnJSZWR1Y2VyID0gZnVuY3Rpb24oYXJyLCB2YWx1ZSkgewogICAgICByZXR1cm4gYXJyLnB1c2godmFsdWUpLCBhcnI7CiAgICB9OwogICAgZnVuY3Rpb24gdG9BcnJheTIoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICByZWR1Y2VfMS5yZWR1Y2UoYXJyUmVkdWNlciwgW10pKHNvdXJjZSkuc3Vic2NyaWJlKHN1YnNjcmliZXIpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnRvQXJyYXkgPSB0b0FycmF5MjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2pvaW5BbGxJbnRlcm5hbHMuanMKdmFyIHJlcXVpcmVfam9pbkFsbEludGVybmFscyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvam9pbkFsbEludGVybmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuam9pbkFsbEludGVybmFscyA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIG1hcE9uZU9yTWFueUFyZ3NfMSA9IHJlcXVpcmVfbWFwT25lT3JNYW55QXJncygpOwogICAgdmFyIHBpcGVfMSA9IHJlcXVpcmVfcGlwZSgpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgZnVuY3Rpb24gam9pbkFsbEludGVybmFscyhqb2luRm4sIHByb2plY3QpIHsKICAgICAgcmV0dXJuIHBpcGVfMS5waXBlKHRvQXJyYXlfMTIudG9BcnJheSgpLCBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKHNvdXJjZXMpIHsKICAgICAgICByZXR1cm4gam9pbkZuKHNvdXJjZXMpOwogICAgICB9KSwgcHJvamVjdCA/IG1hcE9uZU9yTWFueUFyZ3NfMS5tYXBPbmVPck1hbnlBcmdzKHByb2plY3QpIDogaWRlbnRpdHlfMS5pZGVudGl0eSk7CiAgICB9CiAgICBleHBvcnRzMi5qb2luQWxsSW50ZXJuYWxzID0gam9pbkFsbEludGVybmFsczsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RBbGwuanMKdmFyIHJlcXVpcmVfY29tYmluZUxhdGVzdEFsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29tYmluZUxhdGVzdEFsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IHZvaWQgMDsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIHZhciBqb2luQWxsSW50ZXJuYWxzXzEgPSByZXF1aXJlX2pvaW5BbGxJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGNvbWJpbmVMYXRlc3RBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QsIHByb2plY3QpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdEFsbCA9IGNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lQWxsLmpzCnZhciByZXF1aXJlX2NvbWJpbmVBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbWJpbmVBbGwgPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdEFsbF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0QWxsKCk7CiAgICBleHBvcnRzMi5jb21iaW5lQWxsID0gY29tYmluZUxhdGVzdEFsbF8xLmNvbWJpbmVMYXRlc3RBbGw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gdm9pZCAwOwogICAgdmFyIGNvbWJpbmVMYXRlc3RfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgbWFwT25lT3JNYW55QXJnc18xID0gcmVxdWlyZV9tYXBPbmVPck1hbnlBcmdzKCk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICB2YXIgYXJnc18xID0gcmVxdWlyZV9hcmdzKCk7CiAgICBmdW5jdGlvbiBjb21iaW5lTGF0ZXN0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgcmVzdWx0U2VsZWN0b3IgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoYXJncyk7CiAgICAgIHJldHVybiByZXN1bHRTZWxlY3RvciA/IHBpcGVfMS5waXBlKGNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSwgbWFwT25lT3JNYW55QXJnc18xLm1hcE9uZU9yTWFueUFyZ3MocmVzdWx0U2VsZWN0b3IpKSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbWJpbmVMYXRlc3RfMS5jb21iaW5lTGF0ZXN0SW5pdChfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShhcmdzKSkpKShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb21iaW5lTGF0ZXN0ID0gY29tYmluZUxhdGVzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbWJpbmVMYXRlc3RXaXRoLmpzCnZhciByZXF1aXJlX2NvbWJpbmVMYXRlc3RXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb21iaW5lTGF0ZXN0V2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29tYmluZUxhdGVzdF8xID0gcmVxdWlyZV9jb21iaW5lTGF0ZXN0MigpOwogICAgZnVuY3Rpb24gY29tYmluZUxhdGVzdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29tYmluZUxhdGVzdF8xLmNvbWJpbmVMYXRlc3QuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJTb3VyY2VzKSkpOwogICAgfQogICAgZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBjb21iaW5lTGF0ZXN0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcwp2YXIgcmVxdWlyZV9jb25jYXRNYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwID0gdm9pZCAwOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBjb25jYXRNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgcmV0dXJuIGlzRnVuY3Rpb25fMS5pc0Z1bmN0aW9uKHJlc3VsdFNlbGVjdG9yKSA/IG1lcmdlTWFwXzEubWVyZ2VNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IsIDEpIDogbWVyZ2VNYXBfMS5tZXJnZU1hcChwcm9qZWN0LCAxKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcCA9IGNvbmNhdE1hcDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdE1hcFRvLmpzCnZhciByZXF1aXJlX2NvbmNhdE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29uY2F0TWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0TWFwXzEgPSByZXF1aXJlX2NvbmNhdE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gY29uY2F0TWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gY29uY2F0TWFwXzEuY29uY2F0TWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IGNvbmNhdE1hcF8xLmNvbmNhdE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gY29uY2F0TWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXQuanMKdmFyIHJlcXVpcmVfY29uY2F0MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29uY2F0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jb25jYXQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gY29uY2F0KCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGNvbmNhdEFsbF8xLmNvbmNhdEFsbCgpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5jb25jYXQgPSBjb25jYXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb25jYXRXaXRoLmpzCnZhciByZXF1aXJlX2NvbmNhdFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2NvbmNhdFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdDIoKTsKICAgIGZ1bmN0aW9uIGNvbmNhdFdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbmNhdFdpdGggPSBjb25jYXRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMKdmFyIHJlcXVpcmVfZnJvbVN1YnNjcmliYWJsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2Zyb21TdWJzY3JpYmFibGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZyb21TdWJzY3JpYmFibGUgPSB2b2lkIDA7CiAgICB2YXIgT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9PYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBmcm9tU3Vic2NyaWJhYmxlKHN1YnNjcmliYWJsZSkgewogICAgICByZXR1cm4gbmV3IE9ic2VydmFibGVfMS5PYnNlcnZhYmxlKGZ1bmN0aW9uKHN1YnNjcmliZXIpIHsKICAgICAgICByZXR1cm4gc3Vic2NyaWJhYmxlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU3Vic2NyaWJhYmxlID0gZnJvbVN1YnNjcmliYWJsZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Nvbm5lY3QuanMKdmFyIHJlcXVpcmVfY29ubmVjdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY29ubmVjdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY29ubmVjdCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgZnJvbVN1YnNjcmliYWJsZV8xID0gcmVxdWlyZV9mcm9tU3Vic2NyaWJhYmxlKCk7CiAgICB2YXIgREVGQVVMVF9DT05GSUcgPSB7CiAgICAgIGNvbm5lY3RvcjogZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gY29ubmVjdChzZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIGlmIChjb25maWcgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZyA9IERFRkFVTFRfQ09ORklHOwogICAgICB9CiAgICAgIHZhciBjb25uZWN0b3IgPSBjb25maWcuY29ubmVjdG9yOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN1YmplY3QgPSBjb25uZWN0b3IoKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oc2VsZWN0b3IoZnJvbVN1YnNjcmliYWJsZV8xLmZyb21TdWJzY3JpYmFibGUoc3ViamVjdCkpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgICAgc3Vic2NyaWJlci5hZGQoc291cmNlLnN1YnNjcmliZShzdWJqZWN0KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuY29ubmVjdCA9IGNvbm5lY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9jb3VudC5qcwp2YXIgcmVxdWlyZV9jb3VudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvY291bnQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmNvdW50ID0gdm9pZCAwOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIGZ1bmN0aW9uIGNvdW50KHByZWRpY2F0ZSkgewogICAgICByZXR1cm4gcmVkdWNlXzEucmVkdWNlKGZ1bmN0aW9uKHRvdGFsLCB2YWx1ZSwgaSkgewogICAgICAgIHJldHVybiAhcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaSkgPyB0b3RhbCArIDEgOiB0b3RhbDsKICAgICAgfSwgMCk7CiAgICB9CiAgICBleHBvcnRzMi5jb3VudCA9IGNvdW50OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2UuanMKdmFyIHJlcXVpcmVfZGVib3VuY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlYm91bmNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVib3VuY2UoZHVyYXRpb25TZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGVtaXQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBkdXJhdGlvblN1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGR1cmF0aW9uU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID0gbnVsbDsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgZHVyYXRpb25TdWJzY3JpYmVyID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZHVyYXRpb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBsYXN0VmFsdWUgPSB2YWx1ZTsKICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbWl0LCBub29wXzEubm9vcCk7CiAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb25TZWxlY3Rvcih2YWx1ZSkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXIpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBkdXJhdGlvblN1YnNjcmliZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5kZWJvdW5jZSA9IGRlYm91bmNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzCnZhciByZXF1aXJlX2RlYm91bmNlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVib3VuY2VUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWJvdW5jZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWJvdW5jZVRpbWUoZHVlVGltZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgbGFzdFRpbWUgPSBudWxsOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGFjdGl2ZVRhc2sgPSBudWxsOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBsYXN0VmFsdWU7CiAgICAgICAgICAgIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBmdW5jdGlvbiBlbWl0V2hlbklkbGUoKSB7CiAgICAgICAgICB2YXIgdGFyZ2V0VGltZSA9IGxhc3RUaW1lICsgZHVlVGltZTsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICBpZiAobm93IDwgdGFyZ2V0VGltZSkgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gdGhpcy5zY2hlZHVsZSh2b2lkIDAsIHRhcmdldFRpbWUgLSBub3cpOwogICAgICAgICAgICBzdWJzY3JpYmVyLmFkZChhY3RpdmVUYXNrKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgZW1pdCgpOwogICAgICAgIH0KICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbGFzdFZhbHVlID0gdmFsdWU7CiAgICAgICAgICBsYXN0VGltZSA9IHNjaGVkdWxlci5ub3coKTsKICAgICAgICAgIGlmICghYWN0aXZlVGFzaykgewogICAgICAgICAgICBhY3RpdmVUYXNrID0gc2NoZWR1bGVyLnNjaGVkdWxlKGVtaXRXaGVuSWRsZSwgZHVlVGltZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuYWRkKGFjdGl2ZVRhc2spOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgZW1pdCgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBsYXN0VmFsdWUgPSBhY3RpdmVUYXNrID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVib3VuY2VUaW1lID0gZGVib3VuY2VUaW1lOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGVmYXVsdElmRW1wdHkuanMKdmFyIHJlcXVpcmVfZGVmYXVsdElmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlZmF1bHRJZkVtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBkZWZhdWx0SWZFbXB0eShkZWZhdWx0VmFsdWUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKCFoYXNWYWx1ZSkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoZGVmYXVsdFZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGVmYXVsdElmRW1wdHkgPSBkZWZhdWx0SWZFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2UuanMKdmFyIHJlcXVpcmVfdGFrZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZSA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2UoY291bnQpIHsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZW1wdHlfMS5FTVBUWTsKICAgICAgfSA6IGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzZWVuID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgaWYgKCsrc2VlbiA8PSBjb3VudCkgewogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICBpZiAoY291bnQgPD0gc2VlbikgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlID0gdGFrZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2lnbm9yZUVsZW1lbnRzLmpzCnZhciByZXF1aXJlX2lnbm9yZUVsZW1lbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pZ25vcmVFbGVtZW50cy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgZnVuY3Rpb24gaWdub3JlRWxlbWVudHMoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlnbm9yZUVsZW1lbnRzID0gaWdub3JlRWxlbWVudHM7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXBUby5qcwp2YXIgcmVxdWlyZV9tYXBUbyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1hcFRvID0gdm9pZCAwOwogICAgdmFyIG1hcF8xID0gcmVxdWlyZV9tYXAoKTsKICAgIGZ1bmN0aW9uIG1hcFRvKHZhbHVlKSB7CiAgICAgIHJldHVybiBtYXBfMS5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hcFRvID0gbWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMKdmFyIHJlcXVpcmVfZGVsYXlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBjb25jYXRfMSA9IHJlcXVpcmVfY29uY2F0KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgaWdub3JlRWxlbWVudHNfMSA9IHJlcXVpcmVfaWdub3JlRWxlbWVudHMoKTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgdmFyIG1lcmdlTWFwXzEgPSByZXF1aXJlX21lcmdlTWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGVsYXlXaGVuKGRlbGF5RHVyYXRpb25TZWxlY3Rvciwgc3Vic2NyaXB0aW9uRGVsYXkpIHsKICAgICAgaWYgKHN1YnNjcmlwdGlvbkRlbGF5KSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIGNvbmNhdF8xLmNvbmNhdChzdWJzY3JpcHRpb25EZWxheS5waXBlKHRha2VfMS50YWtlKDEpLCBpZ25vcmVFbGVtZW50c18xLmlnbm9yZUVsZW1lbnRzKCkpLCBzb3VyY2UucGlwZShkZWxheVdoZW4oZGVsYXlEdXJhdGlvblNlbGVjdG9yKSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIG1lcmdlTWFwXzEubWVyZ2VNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGlubmVyRnJvbV8xLmlubmVyRnJvbShkZWxheUR1cmF0aW9uU2VsZWN0b3IodmFsdWUsIGluZGV4KSkucGlwZSh0YWtlXzEudGFrZSgxKSwgbWFwVG9fMS5tYXBUbyh2YWx1ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5V2hlbiA9IGRlbGF5V2hlbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbGF5LmpzCnZhciByZXF1aXJlX2RlbGF5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZWxheS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZGVsYXkgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIGZ1bmN0aW9uIGRlbGF5KGR1ZSwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uID0gdGltZXJfMS50aW1lcihkdWUsIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGR1cmF0aW9uOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbGF5ID0gZGVsYXk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kZW1hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX2RlbWF0ZXJpYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2RlbWF0ZXJpYWxpemUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGRlbWF0ZXJpYWxpemUoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihub3RpZmljYXRpb24pIHsKICAgICAgICAgIHJldHVybiBOb3RpZmljYXRpb25fMS5vYnNlcnZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgc3Vic2NyaWJlcik7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRlbWF0ZXJpYWxpemUgPSBkZW1hdGVyaWFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3QuanMKdmFyIHJlcXVpcmVfZGlzdGluY3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gZGlzdGluY3Qoa2V5U2VsZWN0b3IsIGZsdXNoZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBkaXN0aW5jdEtleXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIga2V5ID0ga2V5U2VsZWN0b3IgPyBrZXlTZWxlY3Rvcih2YWx1ZSkgOiB2YWx1ZTsKICAgICAgICAgIGlmICghZGlzdGluY3RLZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgIGRpc3RpbmN0S2V5cy5hZGQoa2V5KTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgICAgZmx1c2hlcyAmJiBpbm5lckZyb21fMS5pbm5lckZyb20oZmx1c2hlcykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBkaXN0aW5jdEtleXMuY2xlYXIoKTsKICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0ID0gZGlzdGluY3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9kaXN0aW5jdFVudGlsQ2hhbmdlZC5qcwp2YXIgcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbENoYW5nZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gdm9pZCAwOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbENoYW5nZWQoY29tcGFyYXRvciwga2V5U2VsZWN0b3IpIHsKICAgICAgaWYgKGtleVNlbGVjdG9yID09PSB2b2lkIDApIHsKICAgICAgICBrZXlTZWxlY3RvciA9IGlkZW50aXR5XzEuaWRlbnRpdHk7CiAgICAgIH0KICAgICAgY29tcGFyYXRvciA9IGNvbXBhcmF0b3IgIT09IG51bGwgJiYgY29tcGFyYXRvciAhPT0gdm9pZCAwID8gY29tcGFyYXRvciA6IGRlZmF1bHRDb21wYXJlOwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXZpb3VzS2V5OwogICAgICAgIHZhciBmaXJzdCA9IHRydWU7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBjdXJyZW50S2V5ID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgaWYgKGZpcnN0IHx8ICFjb21wYXJhdG9yKHByZXZpb3VzS2V5LCBjdXJyZW50S2V5KSkgewogICAgICAgICAgICBmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICBwcmV2aW91c0tleSA9IGN1cnJlbnRLZXk7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ7CiAgICBmdW5jdGlvbiBkZWZhdWx0Q29tcGFyZShhLCBiKSB7CiAgICAgIHJldHVybiBhID09PSBiOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZGlzdGluY3RVbnRpbEtleUNoYW5nZWQuanMKdmFyIHJlcXVpcmVfZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2Rpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IHZvaWQgMDsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgZnVuY3Rpb24gZGlzdGluY3RVbnRpbEtleUNoYW5nZWQoa2V5LCBjb21wYXJlKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkKGZ1bmN0aW9uKHgsIHkpIHsKICAgICAgICByZXR1cm4gY29tcGFyZSA/IGNvbXBhcmUoeFtrZXldLCB5W2tleV0pIDogeFtrZXldID09PSB5W2tleV07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZGlzdGluY3RVbnRpbEtleUNoYW5nZWQgPSBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcwp2YXIgcmVxdWlyZV90aHJvd0lmRW1wdHkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm93SWZFbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRocm93SWZFbXB0eShlcnJvckZhY3RvcnkpIHsKICAgICAgaWYgKGVycm9yRmFjdG9yeSA9PT0gdm9pZCAwKSB7CiAgICAgICAgZXJyb3JGYWN0b3J5ID0gZGVmYXVsdEVycm9yRmFjdG9yeTsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaGFzVmFsdWUgPyBzdWJzY3JpYmVyLmNvbXBsZXRlKCkgOiBzdWJzY3JpYmVyLmVycm9yKGVycm9yRmFjdG9yeSgpKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGhyb3dJZkVtcHR5ID0gdGhyb3dJZkVtcHR5OwogICAgZnVuY3Rpb24gZGVmYXVsdEVycm9yRmFjdG9yeSgpIHsKICAgICAgcmV0dXJuIG5ldyBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcigpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzCnZhciByZXF1aXJlX2VsZW1lbnRBdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZWxlbWVudEF0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSB2b2lkIDA7CiAgICB2YXIgQXJndW1lbnRPdXRPZlJhbmdlRXJyb3JfMSA9IHJlcXVpcmVfQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGhyb3dJZkVtcHR5XzEgPSByZXF1aXJlX3Rocm93SWZFbXB0eSgpOwogICAgdmFyIGRlZmF1bHRJZkVtcHR5XzEgPSByZXF1aXJlX2RlZmF1bHRJZkVtcHR5KCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICBmdW5jdGlvbiBlbGVtZW50QXQoaW5kZXgsIGRlZmF1bHRWYWx1ZSkgewogICAgICBpZiAoaW5kZXggPCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgfQogICAgICB2YXIgaGFzRGVmYXVsdFZhbHVlID0gYXJndW1lbnRzLmxlbmd0aCA+PSAyOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGZpbHRlcl8xLmZpbHRlcihmdW5jdGlvbih2LCBpKSB7CiAgICAgICAgICByZXR1cm4gaSA9PT0gaW5kZXg7CiAgICAgICAgfSksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yXzEuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbGVtZW50QXQgPSBlbGVtZW50QXQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9lbmRXaXRoLmpzCnZhciByZXF1aXJlX2VuZFdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2VuZFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmVuZFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIG9mXzEgPSByZXF1aXJlX29mKCk7CiAgICBmdW5jdGlvbiBlbmRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25jYXRfMS5jb25jYXQoc291cmNlLCBvZl8xLm9mLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5lbmRXaXRoID0gZW5kV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V2ZXJ5LmpzCnZhciByZXF1aXJlX2V2ZXJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9ldmVyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXZlcnkgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZXZlcnkocHJlZGljYXRlLCB0aGlzQXJnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpZiAoIXByZWRpY2F0ZS5jYWxsKHRoaXNBcmcsIHZhbHVlLCBpbmRleCsrLCBzb3VyY2UpKSB7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh0cnVlKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXZlcnkgPSBldmVyeTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RNYXAuanMKdmFyIHJlcXVpcmVfZXhoYXVzdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RNYXAocHJvamVjdCwgcmVzdWx0U2VsZWN0b3IpIHsKICAgICAgaWYgKHJlc3VsdFNlbGVjdG9yKSB7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgICAgcmV0dXJuIHNvdXJjZS5waXBlKGV4aGF1c3RNYXAoZnVuY3Rpb24oYSwgaSkgewogICAgICAgICAgICByZXR1cm4gaW5uZXJGcm9tXzEuaW5uZXJGcm9tKHByb2plY3QoYSwgaSkpLnBpcGUobWFwXzEubWFwKGZ1bmN0aW9uKGIsIGlpKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFNlbGVjdG9yKGEsIGIsIGksIGlpKTsKICAgICAgICAgICAgfSkpOwogICAgICAgICAgfSkpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgdmFyIGlubmVyU3ViID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKG91dGVyVmFsdWUpIHsKICAgICAgICAgIGlmICghaW5uZXJTdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgICAgaXNDb21wbGV0ZSAmJiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20ocHJvamVjdChvdXRlclZhbHVlLCBpbmRleCsrKSkuc3Vic2NyaWJlKGlubmVyU3ViKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgIWlubmVyU3ViICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhoYXVzdE1hcCA9IGV4aGF1c3RNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0QWxsLmpzCnZhciByZXF1aXJlX2V4aGF1c3RBbGwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2V4aGF1c3RBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSB2b2lkIDA7CiAgICB2YXIgZXhoYXVzdE1hcF8xID0gcmVxdWlyZV9leGhhdXN0TWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGV4aGF1c3RBbGwoKSB7CiAgICAgIHJldHVybiBleGhhdXN0TWFwXzEuZXhoYXVzdE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLmV4aGF1c3RBbGwgPSBleGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhoYXVzdC5qcwp2YXIgcmVxdWlyZV9leGhhdXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9leGhhdXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leGhhdXN0ID0gdm9pZCAwOwogICAgdmFyIGV4aGF1c3RBbGxfMSA9IHJlcXVpcmVfZXhoYXVzdEFsbCgpOwogICAgZXhwb3J0czIuZXhoYXVzdCA9IGV4aGF1c3RBbGxfMS5leGhhdXN0QWxsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzCnZhciByZXF1aXJlX2V4cGFuZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZXhwYW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5leHBhbmQgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgbWVyZ2VJbnRlcm5hbHNfMSA9IHJlcXVpcmVfbWVyZ2VJbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIGV4cGFuZChwcm9qZWN0LCBjb25jdXJyZW50LCBzY2hlZHVsZXIpIHsKICAgICAgaWYgKGNvbmN1cnJlbnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmN1cnJlbnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICBjb25jdXJyZW50ID0gKGNvbmN1cnJlbnQgfHwgMCkgPCAxID8gSW5maW5pdHkgOiBjb25jdXJyZW50OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBwcm9qZWN0LCBjb25jdXJyZW50LCB2b2lkIDAsIHRydWUsIHNjaGVkdWxlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuZXhwYW5kID0gZXhwYW5kOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluYWxpemUuanMKdmFyIHJlcXVpcmVfZmluYWxpemUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpbmFsaXplLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIGZ1bmN0aW9uIGZpbmFsaXplKGNhbGxiYWNrKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB0cnkgewogICAgICAgICAgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgc3Vic2NyaWJlci5hZGQoY2FsbGJhY2spOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5maW5hbGl6ZSA9IGZpbmFsaXplOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmluZC5qcwp2YXIgcmVxdWlyZV9maW5kID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVGaW5kID0gZXhwb3J0czIuZmluZCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBmaW5kKHByZWRpY2F0ZSwgdGhpc0FyZykgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsICJ2YWx1ZSIpKTsKICAgIH0KICAgIGV4cG9ydHMyLmZpbmQgPSBmaW5kOwogICAgZnVuY3Rpb24gY3JlYXRlRmluZChwcmVkaWNhdGUsIHRoaXNBcmcsIGVtaXQpIHsKICAgICAgdmFyIGZpbmRJbmRleCA9IGVtaXQgPT09ICJpbmRleCI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5kZXggPSAwOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgaSA9IGluZGV4Kys7CiAgICAgICAgICBpZiAocHJlZGljYXRlLmNhbGwodGhpc0FyZywgdmFsdWUsIGksIHNvdXJjZSkpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGZpbmRJbmRleCA/IGkgOiB2YWx1ZSk7CiAgICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmaW5kSW5kZXggPyAtMSA6IHZvaWQgMCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuY3JlYXRlRmluZCA9IGNyZWF0ZUZpbmQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMKdmFyIHJlcXVpcmVfZmluZEluZGV4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9maW5kSW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmZpbmRJbmRleCA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBmaW5kXzEgPSByZXF1aXJlX2ZpbmQoKTsKICAgIGZ1bmN0aW9uIGZpbmRJbmRleChwcmVkaWNhdGUsIHRoaXNBcmcpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZpbmRfMS5jcmVhdGVGaW5kKHByZWRpY2F0ZSwgdGhpc0FyZywgImluZGV4IikpOwogICAgfQogICAgZXhwb3J0czIuZmluZEluZGV4ID0gZmluZEluZGV4OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmlyc3QuanMKdmFyIHJlcXVpcmVfZmlyc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZpcnN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5maXJzdCA9IHZvaWQgMDsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIHZhciBmaWx0ZXJfMSA9IHJlcXVpcmVfZmlsdGVyKCk7CiAgICB2YXIgdGFrZV8xID0gcmVxdWlyZV90YWtlKCk7CiAgICB2YXIgZGVmYXVsdElmRW1wdHlfMSA9IHJlcXVpcmVfZGVmYXVsdElmRW1wdHkoKTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIGZpcnN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VfMS50YWtlKDEpLCBoYXNEZWZhdWx0VmFsdWUgPyBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5KGRlZmF1bHRWYWx1ZSkgOiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHkoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCk7CiAgICAgICAgfSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIuZmlyc3QgPSBmaXJzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2dyb3VwQnkuanMKdmFyIHJlcXVpcmVfZ3JvdXBCeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZ3JvdXBCeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZ3JvdXBCeSA9IHZvaWQgMDsKICAgIHZhciBPYnNlcnZhYmxlXzEgPSByZXF1aXJlX09ic2VydmFibGUoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gZ3JvdXBCeShrZXlTZWxlY3RvciwgZWxlbWVudE9yT3B0aW9ucywgZHVyYXRpb24sIGNvbm5lY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGVsZW1lbnQ7CiAgICAgICAgaWYgKCFlbGVtZW50T3JPcHRpb25zIHx8IHR5cGVvZiBlbGVtZW50T3JPcHRpb25zID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9uczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZHVyYXRpb24gPSBlbGVtZW50T3JPcHRpb25zLmR1cmF0aW9uLCBlbGVtZW50ID0gZWxlbWVudE9yT3B0aW9ucy5lbGVtZW50LCBjb25uZWN0b3IgPSBlbGVtZW50T3JPcHRpb25zLmNvbm5lY3RvcjsKICAgICAgICB9CiAgICAgICAgdmFyIGdyb3VwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgdmFyIG5vdGlmeSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBncm91cHMuZm9yRWFjaChjYik7CiAgICAgICAgICBjYihzdWJzY3JpYmVyKTsKICAgICAgICB9OwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgcmV0dXJuIG5vdGlmeShmdW5jdGlvbihjb25zdW1lcikgewogICAgICAgICAgICByZXR1cm4gY29uc3VtZXIuZXJyb3IoZXJyKTsKICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGFjdGl2ZUdyb3VwcyA9IDA7CiAgICAgICAgdmFyIHRlYXJkb3duQXR0ZW1wdGVkID0gZmFsc2U7CiAgICAgICAgdmFyIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyID0gbmV3IE9wZXJhdG9yU3Vic2NyaWJlcl8xLk9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmFyIGtleV8xID0ga2V5U2VsZWN0b3IodmFsdWUpOwogICAgICAgICAgICB2YXIgZ3JvdXBfMSA9IGdyb3Vwcy5nZXQoa2V5XzEpOwogICAgICAgICAgICBpZiAoIWdyb3VwXzEpIHsKICAgICAgICAgICAgICBncm91cHMuc2V0KGtleV8xLCBncm91cF8xID0gY29ubmVjdG9yID8gY29ubmVjdG9yKCkgOiBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgICAgICAgdmFyIGdyb3VwZWQgPSBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXlfMSwgZ3JvdXBfMSk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGdyb3VwZWQpOwogICAgICAgICAgICAgIGlmIChkdXJhdGlvbikgewogICAgICAgICAgICAgICAgdmFyIGR1cmF0aW9uU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKGdyb3VwXzEsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBncm91cF8xLmNvbXBsZXRlKCk7CiAgICAgICAgICAgICAgICAgIGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSBudWxsIHx8IGR1cmF0aW9uU3Vic2NyaWJlcl8xID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkdXJhdGlvblN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgfSwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXBzLmRlbGV0ZShrZXlfMSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyLmFkZChpbm5lckZyb21fMS5pbm5lckZyb20oZHVyYXRpb24oZ3JvdXBlZCkpLnN1YnNjcmliZShkdXJhdGlvblN1YnNjcmliZXJfMSkpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBncm91cF8xLm5leHQoZWxlbWVudCA/IGVsZW1lbnQodmFsdWUpIDogdmFsdWUpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbm90aWZ5KGZ1bmN0aW9uKGNvbnN1bWVyKSB7CiAgICAgICAgICAgIHJldHVybiBjb25zdW1lci5jb21wbGV0ZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIGdyb3Vwcy5jbGVhcigpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgdGVhcmRvd25BdHRlbXB0ZWQgPSB0cnVlOwogICAgICAgICAgcmV0dXJuIGFjdGl2ZUdyb3VwcyA9PT0gMDsKICAgICAgICB9KTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGdyb3VwQnlTb3VyY2VTdWJzY3JpYmVyKTsKICAgICAgICBmdW5jdGlvbiBjcmVhdGVHcm91cGVkT2JzZXJ2YWJsZShrZXksIGdyb3VwU3ViamVjdCkgewogICAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBPYnNlcnZhYmxlXzEuT2JzZXJ2YWJsZShmdW5jdGlvbihncm91cFN1YnNjcmliZXIpIHsKICAgICAgICAgICAgYWN0aXZlR3JvdXBzKys7CiAgICAgICAgICAgIHZhciBpbm5lclN1YiA9IGdyb3VwU3ViamVjdC5zdWJzY3JpYmUoZ3JvdXBTdWJzY3JpYmVyKTsKICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgLS1hY3RpdmVHcm91cHMgPT09IDAgJiYgdGVhcmRvd25BdHRlbXB0ZWQgJiYgZ3JvdXBCeVNvdXJjZVN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmVzdWx0LmtleSA9IGtleTsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmdyb3VwQnkgPSBncm91cEJ5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvaXNFbXB0eS5qcwp2YXIgcmVxdWlyZV9pc0VtcHR5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9pc0VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0VtcHR5ID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIGlzRW1wdHkoKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChmYWxzZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJ1ZSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLmlzRW1wdHkgPSBpc0VtcHR5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFrZUxhc3QuanMKdmFyIHJlcXVpcmVfdGFrZUxhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHZvaWQgMDsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRha2VMYXN0KGNvdW50KSB7CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgYnVmZmVyID0gW107CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGJ1ZmZlci5wdXNoKHZhbHVlKTsKICAgICAgICAgIGNvdW50IDwgYnVmZmVyLmxlbmd0aCAmJiBidWZmZXIuc2hpZnQoKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBlXzEsIF9hOwogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgZm9yICh2YXIgYnVmZmVyXzEgPSBfX3ZhbHVlcyhidWZmZXIpLCBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpOyAhYnVmZmVyXzFfMS5kb25lOyBidWZmZXJfMV8xID0gYnVmZmVyXzEubmV4dCgpKSB7CiAgICAgICAgICAgICAgdmFyIHZhbHVlID0gYnVmZmVyXzFfMS52YWx1ZTsKICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlXzFfMSkgewogICAgICAgICAgICBlXzEgPSB7IGVycm9yOiBlXzFfMSB9OwogICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICBpZiAoYnVmZmVyXzFfMSAmJiAhYnVmZmVyXzFfMS5kb25lICYmIChfYSA9IGJ1ZmZlcl8xLnJldHVybikpIF9hLmNhbGwoYnVmZmVyXzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBidWZmZXIgPSBudWxsOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlTGFzdCA9IHRha2VMYXN0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbGFzdC5qcwp2YXIgcmVxdWlyZV9sYXN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9sYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5sYXN0ID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIHZhciB0YWtlTGFzdF8xID0gcmVxdWlyZV90YWtlTGFzdCgpOwogICAgdmFyIHRocm93SWZFbXB0eV8xID0gcmVxdWlyZV90aHJvd0lmRW1wdHkoKTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiBsYXN0KHByZWRpY2F0ZSwgZGVmYXVsdFZhbHVlKSB7CiAgICAgIHZhciBoYXNEZWZhdWx0VmFsdWUgPSBhcmd1bWVudHMubGVuZ3RoID49IDI7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICByZXR1cm4gc291cmNlLnBpcGUocHJlZGljYXRlID8gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKHYsIGkpIHsKICAgICAgICAgIHJldHVybiBwcmVkaWNhdGUodiwgaSwgc291cmNlKTsKICAgICAgICB9KSA6IGlkZW50aXR5XzEuaWRlbnRpdHksIHRha2VMYXN0XzEudGFrZUxhc3QoMSksIGhhc0RlZmF1bHRWYWx1ZSA/IGRlZmF1bHRJZkVtcHR5XzEuZGVmYXVsdElmRW1wdHkoZGVmYXVsdFZhbHVlKSA6IHRocm93SWZFbXB0eV8xLnRocm93SWZFbXB0eShmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgRW1wdHlFcnJvcl8xLkVtcHR5RXJyb3IoKTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5sYXN0ID0gbGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21hdGVyaWFsaXplLmpzCnZhciByZXF1aXJlX21hdGVyaWFsaXplID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXRlcmlhbGl6ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWF0ZXJpYWxpemUgPSB2b2lkIDA7CiAgICB2YXIgTm90aWZpY2F0aW9uXzEgPSByZXF1aXJlX05vdGlmaWNhdGlvbigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIG1hdGVyaWFsaXplKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlTmV4dCh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbi5jcmVhdGVDb21wbGV0ZSgpKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChOb3RpZmljYXRpb25fMS5Ob3RpZmljYXRpb24uY3JlYXRlRXJyb3IoZXJyKSk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1hdGVyaWFsaXplID0gbWF0ZXJpYWxpemU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMKdmFyIHJlcXVpcmVfbWF4ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tYXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1heCA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtYXgoY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpID4gMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4ID4geSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1heCA9IG1heDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL2ZsYXRNYXAuanMKdmFyIHJlcXVpcmVfZmxhdE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvZmxhdE1hcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IHZvaWQgMDsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgZXhwb3J0czIuZmxhdE1hcCA9IG1lcmdlTWFwXzEubWVyZ2VNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZU1hcFRvLmpzCnZhciByZXF1aXJlX21lcmdlTWFwVG8gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlTWFwVG8uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgbWVyZ2VNYXBfMSA9IHJlcXVpcmVfbWVyZ2VNYXAoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIGZ1bmN0aW9uIG1lcmdlTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvciwgY29uY3VycmVudCkgewogICAgICBpZiAoY29uY3VycmVudCA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29uY3VycmVudCA9IEluZmluaXR5OwogICAgICB9CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihyZXN1bHRTZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gbWVyZ2VNYXBfMS5tZXJnZU1hcChmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgICAgfSwgcmVzdWx0U2VsZWN0b3IsIGNvbmN1cnJlbnQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0U2VsZWN0b3IgPT09ICJudW1iZXIiKSB7CiAgICAgICAgY29uY3VycmVudCA9IHJlc3VsdFNlbGVjdG9yOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIGNvbmN1cnJlbnQpOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VNYXBUbyA9IG1lcmdlTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMKdmFyIHJlcXVpcmVfbWVyZ2VTY2FuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZVNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1lcmdlU2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBtZXJnZUludGVybmFsc18xID0gcmVxdWlyZV9tZXJnZUludGVybmFscygpOwogICAgZnVuY3Rpb24gbWVyZ2VTY2FuKGFjY3VtdWxhdG9yLCBzZWVkLCBjb25jdXJyZW50KSB7CiAgICAgIGlmIChjb25jdXJyZW50ID09PSB2b2lkIDApIHsKICAgICAgICBjb25jdXJyZW50ID0gSW5maW5pdHk7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBzdGF0ZSA9IHNlZWQ7CiAgICAgICAgcmV0dXJuIG1lcmdlSW50ZXJuYWxzXzEubWVyZ2VJbnRlcm5hbHMoc291cmNlLCBzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSwgaW5kZXgpIHsKICAgICAgICAgIHJldHVybiBhY2N1bXVsYXRvcihzdGF0ZSwgdmFsdWUsIGluZGV4KTsKICAgICAgICB9LCBjb25jdXJyZW50LCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc3RhdGUgPSB2YWx1ZTsKICAgICAgICB9LCBmYWxzZSwgdm9pZCAwLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdGF0ZSA9IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIubWVyZ2VTY2FuID0gbWVyZ2VTY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvbWVyZ2UuanMKdmFyIHJlcXVpcmVfbWVyZ2UyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9tZXJnZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2UgPSB2b2lkIDA7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgYXJnc09yQXJnQXJyYXlfMSA9IHJlcXVpcmVfYXJnc09yQXJnQXJyYXkoKTsKICAgIHZhciBtZXJnZUFsbF8xID0gcmVxdWlyZV9tZXJnZUFsbCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGZyb21fMSA9IHJlcXVpcmVfZnJvbSgpOwogICAgZnVuY3Rpb24gbWVyZ2UyKCkgewogICAgICB2YXIgYXJncyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICB2YXIgc2NoZWR1bGVyID0gYXJnc18xLnBvcFNjaGVkdWxlcihhcmdzKTsKICAgICAgdmFyIGNvbmN1cnJlbnQgPSBhcmdzXzEucG9wTnVtYmVyKGFyZ3MsIEluZmluaXR5KTsKICAgICAgYXJncyA9IGFyZ3NPckFyZ0FycmF5XzEuYXJnc09yQXJnQXJyYXkoYXJncyk7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICBtZXJnZUFsbF8xLm1lcmdlQWxsKGNvbmN1cnJlbnQpKGZyb21fMS5mcm9tKF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChhcmdzKSksIHNjaGVkdWxlcikpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5tZXJnZSA9IG1lcmdlMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcwp2YXIgcmVxdWlyZV9tZXJnZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL21lcmdlV2l0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gdm9pZCAwOwogICAgdmFyIG1lcmdlXzEgPSByZXF1aXJlX21lcmdlMigpOwogICAgZnVuY3Rpb24gbWVyZ2VXaXRoMigpIHsKICAgICAgdmFyIG90aGVyU291cmNlcyA9IFtdOwogICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykgewogICAgICAgIG90aGVyU291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlLmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKG90aGVyU291cmNlcykpKTsKICAgIH0KICAgIGV4cG9ydHMyLm1lcmdlV2l0aCA9IG1lcmdlV2l0aDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMKdmFyIHJlcXVpcmVfbWluID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9taW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1pbiA9IHZvaWQgMDsKICAgIHZhciByZWR1Y2VfMSA9IHJlcXVpcmVfcmVkdWNlKCk7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICBmdW5jdGlvbiBtaW4oY29tcGFyZXIpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZShpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihjb21wYXJlcikgPyBmdW5jdGlvbih4LCB5KSB7CiAgICAgICAgcmV0dXJuIGNvbXBhcmVyKHgsIHkpIDwgMCA/IHggOiB5OwogICAgICB9IDogZnVuY3Rpb24oeCwgeSkgewogICAgICAgIHJldHVybiB4IDwgeSA/IHggOiB5OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLm1pbiA9IG1pbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcwp2YXIgcmVxdWlyZV9tdWx0aWNhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL211bHRpY2FzdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIubXVsdGljYXN0ID0gdm9pZCAwOwogICAgdmFyIENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xID0gcmVxdWlyZV9Db25uZWN0YWJsZU9ic2VydmFibGUoKTsKICAgIHZhciBpc0Z1bmN0aW9uXzEgPSByZXF1aXJlX2lzRnVuY3Rpb24oKTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIGZ1bmN0aW9uIG11bHRpY2FzdChzdWJqZWN0T3JTdWJqZWN0RmFjdG9yeSwgc2VsZWN0b3IpIHsKICAgICAgdmFyIHN1YmplY3RGYWN0b3J5ID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc3ViamVjdE9yU3ViamVjdEZhY3RvcnkpID8gc3ViamVjdE9yU3ViamVjdEZhY3RvcnkgOiBmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gc3ViamVjdE9yU3ViamVjdEZhY3Rvcnk7CiAgICAgIH07CiAgICAgIGlmIChpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihzZWxlY3RvcikpIHsKICAgICAgICByZXR1cm4gY29ubmVjdF8xLmNvbm5lY3Qoc2VsZWN0b3IsIHsKICAgICAgICAgIGNvbm5lY3Rvcjogc3ViamVjdEZhY3RvcnkKICAgICAgICB9KTsKICAgICAgfQogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG5ldyBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGUoc291cmNlLCBzdWJqZWN0RmFjdG9yeSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5tdWx0aWNhc3QgPSBtdWx0aWNhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMKdmFyIHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHRXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9vbkVycm9yUmVzdW1lTmV4dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFyZ3NPckFyZ0FycmF5XzEgPSByZXF1aXJlX2FyZ3NPckFyZ0FycmF5KCk7CiAgICB2YXIgb25FcnJvclJlc3VtZU5leHRfMSA9IHJlcXVpcmVfb25FcnJvclJlc3VtZU5leHQoKTsKICAgIGZ1bmN0aW9uIG9uRXJyb3JSZXN1bWVOZXh0V2l0aCgpIHsKICAgICAgdmFyIHNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBzb3VyY2VzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIG5leHRTb3VyY2VzID0gYXJnc09yQXJnQXJyYXlfMS5hcmdzT3JBcmdBcnJheShzb3VyY2VzKTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbc291cmNlXSwgX19yZWFkKG5leHRTb3VyY2VzKSkpOwogICAgICB9OwogICAgfQogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gb25FcnJvclJlc3VtZU5leHRXaXRoOwogICAgZXhwb3J0czIub25FcnJvclJlc3VtZU5leHQgPSBvbkVycm9yUmVzdW1lTmV4dFdpdGg7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wYWlyd2lzZS5qcwp2YXIgcmVxdWlyZV9wYWlyd2lzZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcGFpcndpc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhaXJ3aXNlID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHBhaXJ3aXNlKCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHByZXY7CiAgICAgICAgdmFyIGhhc1ByZXYgPSBmYWxzZTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIHAgPSBwcmV2OwogICAgICAgICAgcHJldiA9IHZhbHVlOwogICAgICAgICAgaGFzUHJldiAmJiBzdWJzY3JpYmVyLm5leHQoW3AsIHZhbHVlXSk7CiAgICAgICAgICBoYXNQcmV2ID0gdHJ1ZTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGFpcndpc2UgPSBwYWlyd2lzZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3BsdWNrLmpzCnZhciByZXF1aXJlX3BsdWNrID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wbHVjay5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGx1Y2sgPSB2b2lkIDA7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgZnVuY3Rpb24gcGx1Y2soKSB7CiAgICAgIHZhciBwcm9wZXJ0aWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgcHJvcGVydGllc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHZhciBsZW5ndGggPSBwcm9wZXJ0aWVzLmxlbmd0aDsKICAgICAgaWYgKGxlbmd0aCA9PT0gMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigibGlzdCBvZiBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBlbXB0eS4iKTsKICAgICAgfQogICAgICByZXR1cm4gbWFwXzEubWFwKGZ1bmN0aW9uKHgpIHsKICAgICAgICB2YXIgY3VycmVudFByb3AgPSB4OwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgIHZhciBwID0gY3VycmVudFByb3AgPT09IG51bGwgfHwgY3VycmVudFByb3AgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN1cnJlbnRQcm9wW3Byb3BlcnRpZXNbaV1dOwogICAgICAgICAgaWYgKHR5cGVvZiBwICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgICBjdXJyZW50UHJvcCA9IHA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY3VycmVudFByb3A7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucGx1Y2sgPSBwbHVjazsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2guanMKdmFyIHJlcXVpcmVfcHVibGlzaCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBtdWx0aWNhc3RfMSA9IHJlcXVpcmVfbXVsdGljYXN0KCk7CiAgICB2YXIgY29ubmVjdF8xID0gcmVxdWlyZV9jb25uZWN0KCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoKHNlbGVjdG9yKSB7CiAgICAgIHJldHVybiBzZWxlY3RvciA/IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdChzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfSA6IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHJldHVybiBtdWx0aWNhc3RfMS5tdWx0aWNhc3QobmV3IFN1YmplY3RfMS5TdWJqZWN0KCkpKHNvdXJjZSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoID0gcHVibGlzaDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hCZWhhdmlvci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucHVibGlzaEJlaGF2aW9yID0gdm9pZCAwOwogICAgdmFyIEJlaGF2aW9yU3ViamVjdF8xID0gcmVxdWlyZV9CZWhhdmlvclN1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoQmVoYXZpb3IoaW5pdGlhbFZhbHVlKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICB2YXIgc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3QoaW5pdGlhbFZhbHVlKTsKICAgICAgICByZXR1cm4gbmV3IENvbm5lY3RhYmxlT2JzZXJ2YWJsZV8xLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZShzb3VyY2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIHN1YmplY3Q7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICB9CiAgICBleHBvcnRzMi5wdWJsaXNoQmVoYXZpb3IgPSBwdWJsaXNoQmVoYXZpb3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoTGFzdC5qcwp2YXIgcmVxdWlyZV9wdWJsaXNoTGFzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcHVibGlzaExhc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gdm9pZCAwOwogICAgdmFyIEFzeW5jU3ViamVjdF8xID0gcmVxdWlyZV9Bc3luY1N1YmplY3QoKTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBmdW5jdGlvbiBwdWJsaXNoTGFzdCgpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNvdXJjZSkgewogICAgICAgIHZhciBzdWJqZWN0ID0gbmV3IEFzeW5jU3ViamVjdF8xLkFzeW5jU3ViamVjdCgpOwogICAgICAgIHJldHVybiBuZXcgQ29ubmVjdGFibGVPYnNlcnZhYmxlXzEuQ29ubmVjdGFibGVPYnNlcnZhYmxlKHNvdXJjZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gc3ViamVjdDsKICAgICAgICB9KTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hMYXN0ID0gcHVibGlzaExhc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9wdWJsaXNoUmVwbGF5LmpzCnZhciByZXF1aXJlX3B1Ymxpc2hSZXBsYXkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3B1Ymxpc2hSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSB2b2lkIDA7CiAgICB2YXIgUmVwbGF5U3ViamVjdF8xID0gcmVxdWlyZV9SZXBsYXlTdWJqZWN0KCk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gcHVibGlzaFJlcGxheShidWZmZXJTaXplLCB3aW5kb3dUaW1lLCBzZWxlY3Rvck9yU2NoZWR1bGVyLCB0aW1lc3RhbXBQcm92aWRlcikgewogICAgICBpZiAoc2VsZWN0b3JPclNjaGVkdWxlciAmJiAhaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikpIHsKICAgICAgICB0aW1lc3RhbXBQcm92aWRlciA9IHNlbGVjdG9yT3JTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIHNlbGVjdG9yID0gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24oc2VsZWN0b3JPclNjaGVkdWxlcikgPyBzZWxlY3Rvck9yU2NoZWR1bGVyIDogdm9pZCAwOwogICAgICByZXR1cm4gZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgcmV0dXJuIG11bHRpY2FzdF8xLm11bHRpY2FzdChuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgdGltZXN0YW1wUHJvdmlkZXIpLCBzZWxlY3Rvcikoc291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBwdWJsaXNoUmVwbGF5OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmFjZVdpdGguanMKdmFyIHJlcXVpcmVfcmFjZVdpdGggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JhY2VXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yYWNlV2l0aCA9IHZvaWQgMDsKICAgIHZhciByYWNlXzEgPSByZXF1aXJlX3JhY2UoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgZnVuY3Rpb24gcmFjZVdpdGgoKSB7CiAgICAgIHZhciBvdGhlclNvdXJjZXMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlclNvdXJjZXNbX2ldID0gYXJndW1lbnRzW19pXTsKICAgICAgfQogICAgICByZXR1cm4gIW90aGVyU291cmNlcy5sZW5ndGggPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgcmFjZV8xLnJhY2VJbml0KF9fc3ByZWFkQXJyYXkoW3NvdXJjZV0sIF9fcmVhZChvdGhlclNvdXJjZXMpKSkoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmFjZVdpdGggPSByYWNlV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcwp2YXIgcmVxdWlyZV9yZXBlYXQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVwZWF0ID0gdm9pZCAwOwogICAgdmFyIGVtcHR5XzEgPSByZXF1aXJlX2VtcHR5KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgZnVuY3Rpb24gcmVwZWF0Mihjb3VudE9yQ29uZmlnKSB7CiAgICAgIHZhciBfYTsKICAgICAgdmFyIGNvdW50ID0gSW5maW5pdHk7CiAgICAgIHZhciBkZWxheTsKICAgICAgaWYgKGNvdW50T3JDb25maWcgIT0gbnVsbCkgewogICAgICAgIGlmICh0eXBlb2YgY291bnRPckNvbmZpZyA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIF9hID0gY291bnRPckNvbmZpZy5jb3VudCwgY291bnQgPSBfYSA9PT0gdm9pZCAwID8gSW5maW5pdHkgOiBfYSwgZGVsYXkgPSBjb3VudE9yQ29uZmlnLmRlbGF5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb3VudCA9IGNvdW50T3JDb25maWc7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBjb3VudCA8PSAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGVtcHR5XzEuRU1QVFk7CiAgICAgIH0gOiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgc29GYXIgPSAwOwogICAgICAgIHZhciBzb3VyY2VTdWI7CiAgICAgICAgdmFyIHJlc3Vic2NyaWJlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzb3VyY2VTdWIgPT09IG51bGwgfHwgc291cmNlU3ViID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzb3VyY2VTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHNvdXJjZVN1YiA9IG51bGw7CiAgICAgICAgICBpZiAoZGVsYXkgIT0gbnVsbCkgewogICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoc29GYXIpKTsKICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIG5vdGlmaWVyU3Vic2NyaWJlcl8xLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgc3Vic2NyaWJlVG9Tb3VyY2UoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIG5vdGlmaWVyLnN1YnNjcmliZShub3RpZmllclN1YnNjcmliZXJfMSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZVRvU291cmNlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBzb3VyY2VTdWIgPSBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCB2b2lkIDAsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBpZiAoKytzb0ZhciA8IGNvdW50KSB7CiAgICAgICAgICAgICAgaWYgKHNvdXJjZVN1YikgewogICAgICAgICAgICAgICAgcmVzdWJzY3JpYmUoKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Vuc3ViKSB7CiAgICAgICAgICAgIHJlc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVUb1NvdXJjZSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdCA9IHJlcGVhdDI7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXBlYXRXaGVuLmpzCnZhciByZXF1aXJlX3JlcGVhdFdoZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JlcGVhdFdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHJlcGVhdFdoZW4obm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbm5lclN1YjsKICAgICAgICB2YXIgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgdmFyIGNvbXBsZXRpb25zJDsKICAgICAgICB2YXIgaXNOb3RpZmllckNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgdmFyIGNoZWNrQ29tcGxldGUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBpc01haW5Db21wbGV0ZSAmJiBpc05vdGlmaWVyQ29tcGxldGUgJiYgKHN1YnNjcmliZXIuY29tcGxldGUoKSwgdHJ1ZSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2V0Q29tcGxldGlvblN1YmplY3QgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmICghY29tcGxldGlvbnMkKSB7CiAgICAgICAgICAgIGNvbXBsZXRpb25zJCA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIoY29tcGxldGlvbnMkKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgIHN1YnNjcmliZUZvclJlcGVhdFdoZW4oKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc3luY1Jlc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIGlzTm90aWZpZXJDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gY29tcGxldGlvbnMkOwogICAgICAgIH07CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJlcGVhdFdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIHZvaWQgMCwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlzTWFpbkNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgIWNoZWNrQ29tcGxldGUoKSAmJiBnZXRDb21wbGV0aW9uU3ViamVjdCgpLm5leHQoKTsKICAgICAgICAgIH0pKTsKICAgICAgICAgIGlmIChzeW5jUmVzdWIpIHsKICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICBzeW5jUmVzdWIgPSBmYWxzZTsKICAgICAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmVwZWF0V2hlbigpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJlcGVhdFdoZW4gPSByZXBlYXRXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvcmV0cnkuanMKdmFyIHJlcXVpcmVfcmV0cnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3JldHJ5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5yZXRyeSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciB0aW1lcl8xID0gcmVxdWlyZV90aW1lcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHJldHJ5KGNvbmZpZ09yQ291bnQpIHsKICAgICAgaWYgKGNvbmZpZ09yQ291bnQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbmZpZ09yQ291bnQgPSBJbmZpbml0eTsKICAgICAgfQogICAgICB2YXIgY29uZmlnOwogICAgICBpZiAoY29uZmlnT3JDb3VudCAmJiB0eXBlb2YgY29uZmlnT3JDb3VudCA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25maWcgPSBjb25maWdPckNvdW50OwogICAgICB9IGVsc2UgewogICAgICAgIGNvbmZpZyA9IHsKICAgICAgICAgIGNvdW50OiBjb25maWdPckNvdW50CiAgICAgICAgfTsKICAgICAgfQogICAgICB2YXIgX2EgPSBjb25maWcuY291bnQsIGNvdW50ID0gX2EgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2EsIGRlbGF5ID0gY29uZmlnLmRlbGF5LCBfYiA9IGNvbmZpZy5yZXNldE9uU3VjY2VzcywgcmVzZXRPblN1Y2Nlc3MgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYjsKICAgICAgcmV0dXJuIGNvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHNvRmFyID0gMDsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN1YnNjcmliZUZvclJldHJ5ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgc3luY1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICBpbm5lclN1YiA9IHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgIGlmIChyZXNldE9uU3VjY2VzcykgewogICAgICAgICAgICAgIHNvRmFyID0gMDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfSwgdm9pZCAwLCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgaWYgKHNvRmFyKysgPCBjb3VudCkgewogICAgICAgICAgICAgIHZhciByZXN1Yl8xID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBpZiAoaW5uZXJTdWIpIHsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgICAgICAgICAgaW5uZXJTdWIgPSBudWxsOwogICAgICAgICAgICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgc3luY1Vuc3ViID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChkZWxheSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICB2YXIgbm90aWZpZXIgPSB0eXBlb2YgZGVsYXkgPT09ICJudW1iZXIiID8gdGltZXJfMS50aW1lcihkZWxheSkgOiBpbm5lckZyb21fMS5pbm5lckZyb20oZGVsYXkoZXJyLCBzb0ZhcikpOwogICAgICAgICAgICAgICAgdmFyIG5vdGlmaWVyU3Vic2NyaWJlcl8xID0gT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICBub3RpZmllclN1YnNjcmliZXJfMS51bnN1YnNjcmliZSgpOwogICAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBub3RpZmllci5zdWJzY3JpYmUobm90aWZpZXJTdWJzY3JpYmVyXzEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXN1Yl8xKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgICAgaWYgKHN5bmNVbnN1YikgewogICAgICAgICAgICBpbm5lclN1Yi51bnN1YnNjcmliZSgpOwogICAgICAgICAgICBpbm5lclN1YiA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5KCk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBzdWJzY3JpYmVGb3JSZXRyeSgpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnJldHJ5ID0gcmV0cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMKdmFyIHJlcXVpcmVfcmV0cnlXaGVuID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9yZXRyeVdoZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnJldHJ5V2hlbiA9IHZvaWQgMDsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgZnVuY3Rpb24gcmV0cnlXaGVuKG5vdGlmaWVyKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgaW5uZXJTdWI7CiAgICAgICAgdmFyIHN5bmNSZXN1YiA9IGZhbHNlOwogICAgICAgIHZhciBlcnJvcnMkOwogICAgICAgIHZhciBzdWJzY3JpYmVGb3JSZXRyeVdoZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlubmVyU3ViID0gc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKGVycikgewogICAgICAgICAgICBpZiAoIWVycm9ycyQpIHsKICAgICAgICAgICAgICBlcnJvcnMkID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKG5vdGlmaWVyKGVycm9ycyQpKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIGlubmVyU3ViID8gc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCkgOiBzeW5jUmVzdWIgPSB0cnVlOwogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZXJyb3JzJCkgewogICAgICAgICAgICAgIGVycm9ycyQubmV4dChlcnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgICBpZiAoc3luY1Jlc3ViKSB7CiAgICAgICAgICAgIGlubmVyU3ViLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIGlubmVyU3ViID0gbnVsbDsKICAgICAgICAgICAgc3luY1Jlc3ViID0gZmFsc2U7CiAgICAgICAgICAgIHN1YnNjcmliZUZvclJldHJ5V2hlbigpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc3Vic2NyaWJlRm9yUmV0cnlXaGVuKCk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIucmV0cnlXaGVuID0gcmV0cnlXaGVuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzCnZhciByZXF1aXJlX3NhbXBsZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNhbXBsZShub3RpZmllcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGhhc1ZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGxhc3RWYWx1ZSA9IG51bGw7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGxhc3RWYWx1ZSA9IHZhbHVlOwogICAgICAgIH0pKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20obm90aWZpZXIpLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICAgICAgdmFyIHZhbHVlID0gbGFzdFZhbHVlOwogICAgICAgICAgICBsYXN0VmFsdWUgPSBudWxsOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0sIG5vb3BfMS5ub29wKSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2FtcGxlID0gc2FtcGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2FtcGxlVGltZS5qcwp2YXIgcmVxdWlyZV9zYW1wbGVUaW1lID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zYW1wbGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgc2FtcGxlXzEgPSByZXF1aXJlX3NhbXBsZSgpOwogICAgdmFyIGludGVydmFsXzEgPSByZXF1aXJlX2ludGVydmFsKCk7CiAgICBmdW5jdGlvbiBzYW1wbGVUaW1lKHBlcmlvZCwgc2NoZWR1bGVyKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZShpbnRlcnZhbF8xLmludGVydmFsKHBlcmlvZCwgc2NoZWR1bGVyKSk7CiAgICB9CiAgICBleHBvcnRzMi5zYW1wbGVUaW1lID0gc2FtcGxlVGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2Nhbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2NhbiA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBzY2FuSW50ZXJuYWxzXzEgPSByZXF1aXJlX3NjYW5JbnRlcm5hbHMoKTsKICAgIGZ1bmN0aW9uIHNjYW4oYWNjdW11bGF0b3IsIHNlZWQpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKHNjYW5JbnRlcm5hbHNfMS5zY2FuSW50ZXJuYWxzKGFjY3VtdWxhdG9yLCBzZWVkLCBhcmd1bWVudHMubGVuZ3RoID49IDIsIHRydWUpKTsKICAgIH0KICAgIGV4cG9ydHMyLnNjYW4gPSBzY2FuOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2VxdWVuY2VFcXVhbC5qcwp2YXIgcmVxdWlyZV9zZXF1ZW5jZUVxdWFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zZXF1ZW5jZUVxdWFsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zZXF1ZW5jZUVxdWFsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiBzZXF1ZW5jZUVxdWFsKGNvbXBhcmVUbywgY29tcGFyYXRvcikgewogICAgICBpZiAoY29tcGFyYXRvciA9PT0gdm9pZCAwKSB7CiAgICAgICAgY29tcGFyYXRvciA9IGZ1bmN0aW9uKGEsIGIpIHsKICAgICAgICAgIHJldHVybiBhID09PSBiOwogICAgICAgIH07CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBhU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBiU3RhdGUgPSBjcmVhdGVTdGF0ZSgpOwogICAgICAgIHZhciBlbWl0ID0gZnVuY3Rpb24oaXNFcXVhbCkgewogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KGlzRXF1YWwpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIGNyZWF0ZVN1YnNjcmliZXIgPSBmdW5jdGlvbihzZWxmU3RhdGUsIG90aGVyU3RhdGUpIHsKICAgICAgICAgIHZhciBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihhKSB7CiAgICAgICAgICAgIHZhciBidWZmZXIgPSBvdGhlclN0YXRlLmJ1ZmZlciwgY29tcGxldGUgPSBvdGhlclN0YXRlLmNvbXBsZXRlOwogICAgICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGNvbXBsZXRlID8gZW1pdChmYWxzZSkgOiBzZWxmU3RhdGUuYnVmZmVyLnB1c2goYSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgIWNvbXBhcmF0b3IoYSwgYnVmZmVyLnNoaWZ0KCkpICYmIGVtaXQoZmFsc2UpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgc2VsZlN0YXRlLmNvbXBsZXRlID0gdHJ1ZTsKICAgICAgICAgICAgdmFyIGNvbXBsZXRlID0gb3RoZXJTdGF0ZS5jb21wbGV0ZSwgYnVmZmVyID0gb3RoZXJTdGF0ZS5idWZmZXI7CiAgICAgICAgICAgIGNvbXBsZXRlICYmIGVtaXQoYnVmZmVyLmxlbmd0aCA9PT0gMCk7CiAgICAgICAgICAgIHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSBudWxsIHx8IHNlcXVlbmNlRXF1YWxTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZXF1ZW5jZUVxdWFsU3Vic2NyaWJlci51bnN1YnNjcmliZSgpOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gc2VxdWVuY2VFcXVhbFN1YnNjcmliZXI7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKGNyZWF0ZVN1YnNjcmliZXIoYVN0YXRlLCBiU3RhdGUpKTsKICAgICAgICBpbm5lckZyb21fMS5pbm5lckZyb20oY29tcGFyZVRvKS5zdWJzY3JpYmUoY3JlYXRlU3Vic2NyaWJlcihiU3RhdGUsIGFTdGF0ZSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNlcXVlbmNlRXF1YWwgPSBzZXF1ZW5jZUVxdWFsOwogICAgZnVuY3Rpb24gY3JlYXRlU3RhdGUoKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgYnVmZmVyOiBbXSwKICAgICAgICBjb21wbGV0ZTogZmFsc2UKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NoYXJlLmpzCnZhciByZXF1aXJlX3NoYXJlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3JlYWQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3JlYWQgfHwgZnVuY3Rpb24obywgbikgewogICAgICB2YXIgbSA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdOwogICAgICBpZiAoIW0pIHJldHVybiBvOwogICAgICB2YXIgaSA9IG0uY2FsbChvKSwgciwgYXIgPSBbXSwgZTsKICAgICAgdHJ5IHsKICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTsKICAgICAgfSBjYXRjaCAoZXJyb3IpIHsKICAgICAgICBlID0geyBlcnJvciB9OwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRyeSB7CiAgICAgICAgICBpZiAociAmJiAhci5kb25lICYmIChtID0gaVsicmV0dXJuIl0pKSBtLmNhbGwoaSk7CiAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgIGlmIChlKSB0aHJvdyBlLmVycm9yOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gYXI7CiAgICB9OwogICAgdmFyIF9fc3ByZWFkQXJyYXkgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NwcmVhZEFycmF5IHx8IGZ1bmN0aW9uKHRvLCBmcm9tKSB7CiAgICAgIGZvciAodmFyIGkgPSAwLCBpbCA9IGZyb20ubGVuZ3RoLCBqID0gdG8ubGVuZ3RoOyBpIDwgaWw7IGkrKywgaisrKQogICAgICAgIHRvW2pdID0gZnJvbVtpXTsKICAgICAgcmV0dXJuIHRvOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2hhcmUgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmliZXJfMSA9IHJlcXVpcmVfU3Vic2NyaWJlcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc2hhcmUob3B0aW9ucykgewogICAgICBpZiAob3B0aW9ucyA9PT0gdm9pZCAwKSB7CiAgICAgICAgb3B0aW9ucyA9IHt9OwogICAgICB9CiAgICAgIHZhciBfYSA9IG9wdGlvbnMuY29ubmVjdG9yLCBjb25uZWN0b3IgPSBfYSA9PT0gdm9pZCAwID8gZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICB9IDogX2EsIF9iID0gb3B0aW9ucy5yZXNldE9uRXJyb3IsIHJlc2V0T25FcnJvciA9IF9iID09PSB2b2lkIDAgPyB0cnVlIDogX2IsIF9jID0gb3B0aW9ucy5yZXNldE9uQ29tcGxldGUsIHJlc2V0T25Db21wbGV0ZSA9IF9jID09PSB2b2lkIDAgPyB0cnVlIDogX2MsIF9kID0gb3B0aW9ucy5yZXNldE9uUmVmQ291bnRaZXJvLCByZXNldE9uUmVmQ291bnRaZXJvID0gX2QgPT09IHZvaWQgMCA/IHRydWUgOiBfZDsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHdyYXBwZXJTb3VyY2UpIHsKICAgICAgICB2YXIgY29ubmVjdGlvbjsKICAgICAgICB2YXIgcmVzZXRDb25uZWN0aW9uOwogICAgICAgIHZhciBzdWJqZWN0OwogICAgICAgIHZhciByZWZDb3VudCA9IDA7CiAgICAgICAgdmFyIGhhc0NvbXBsZXRlZCA9IGZhbHNlOwogICAgICAgIHZhciBoYXNFcnJvcmVkID0gZmFsc2U7CiAgICAgICAgdmFyIGNhbmNlbFJlc2V0ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXNldENvbm5lY3Rpb24gPT09IG51bGwgfHwgcmVzZXRDb25uZWN0aW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldENvbm5lY3Rpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IHZvaWQgMDsKICAgICAgICB9OwogICAgICAgIHZhciByZXNldCA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgIGNvbm5lY3Rpb24gPSBzdWJqZWN0ID0gdm9pZCAwOwogICAgICAgICAgaGFzQ29tcGxldGVkID0gaGFzRXJyb3JlZCA9IGZhbHNlOwogICAgICAgIH07CiAgICAgICAgdmFyIHJlc2V0QW5kVW5zdWJzY3JpYmUgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBjb25uID0gY29ubmVjdGlvbjsKICAgICAgICAgIHJlc2V0KCk7CiAgICAgICAgICBjb25uID09PSBudWxsIHx8IGNvbm4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvbm4udW5zdWJzY3JpYmUoKTsKICAgICAgICB9OwogICAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICAgIHJlZkNvdW50Kys7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yZWQgJiYgIWhhc0NvbXBsZXRlZCkgewogICAgICAgICAgICBjYW5jZWxSZXNldCgpOwogICAgICAgICAgfQogICAgICAgICAgdmFyIGRlc3QgPSBzdWJqZWN0ID0gc3ViamVjdCAhPT0gbnVsbCAmJiBzdWJqZWN0ICE9PSB2b2lkIDAgPyBzdWJqZWN0IDogY29ubmVjdG9yKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmFkZChmdW5jdGlvbigpIHsKICAgICAgICAgICAgcmVmQ291bnQtLTsKICAgICAgICAgICAgaWYgKHJlZkNvdW50ID09PSAwICYmICFoYXNFcnJvcmVkICYmICFoYXNDb21wbGV0ZWQpIHsKICAgICAgICAgICAgICByZXNldENvbm5lY3Rpb24gPSBoYW5kbGVSZXNldChyZXNldEFuZFVuc3Vic2NyaWJlLCByZXNldE9uUmVmQ291bnRaZXJvKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgICBkZXN0LnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICAgIGlmICghY29ubmVjdGlvbiAmJiByZWZDb3VudCA+IDApIHsKICAgICAgICAgICAgY29ubmVjdGlvbiA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgICAgICAgIG5leHQ6IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZGVzdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgICAgICAgIGhhc0Vycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uRXJyb3IsIGVycik7CiAgICAgICAgICAgICAgICBkZXN0LmVycm9yKGVycik7CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBjb21wbGV0ZTogZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBoYXNDb21wbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgY2FuY2VsUmVzZXQoKTsKICAgICAgICAgICAgICAgIHJlc2V0Q29ubmVjdGlvbiA9IGhhbmRsZVJlc2V0KHJlc2V0LCByZXNldE9uQ29tcGxldGUpOwogICAgICAgICAgICAgICAgZGVzdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShzb3VyY2UpLnN1YnNjcmliZShjb25uZWN0aW9uKTsKICAgICAgICAgIH0KICAgICAgICB9KSh3cmFwcGVyU291cmNlKTsKICAgICAgfTsKICAgIH0KICAgIGV4cG9ydHMyLnNoYXJlID0gc2hhcmU7CiAgICBmdW5jdGlvbiBoYW5kbGVSZXNldChyZXNldCwgb24pIHsKICAgICAgdmFyIGFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAyOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBhcmdzW19pIC0gMl0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gdHJ1ZSkgewogICAgICAgIHJlc2V0KCk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIGlmIChvbiA9PT0gZmFsc2UpIHsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdmFyIG9uU3Vic2NyaWJlciA9IG5ldyBTdWJzY3JpYmVyXzEuU2FmZVN1YnNjcmliZXIoewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgb25TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICByZXNldCgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBpbm5lckZyb21fMS5pbm5lckZyb20ob24uYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQoYXJncykpKSkuc3Vic2NyaWJlKG9uU3Vic2NyaWJlcik7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zaGFyZVJlcGxheS5qcwp2YXIgcmVxdWlyZV9zaGFyZVJlcGxheSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2hhcmVSZXBsYXkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNoYXJlUmVwbGF5ID0gdm9pZCAwOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgdmFyIHNoYXJlXzEgPSByZXF1aXJlX3NoYXJlKCk7CiAgICBmdW5jdGlvbiBzaGFyZVJlcGxheShjb25maWdPckJ1ZmZlclNpemUsIHdpbmRvd1RpbWUsIHNjaGVkdWxlcikgewogICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgdmFyIGJ1ZmZlclNpemU7CiAgICAgIHZhciByZWZDb3VudCA9IGZhbHNlOwogICAgICBpZiAoY29uZmlnT3JCdWZmZXJTaXplICYmIHR5cGVvZiBjb25maWdPckJ1ZmZlclNpemUgPT09ICJvYmplY3QiKSB7CiAgICAgICAgX2EgPSBjb25maWdPckJ1ZmZlclNpemUuYnVmZmVyU2l6ZSwgYnVmZmVyU2l6ZSA9IF9hID09PSB2b2lkIDAgPyBJbmZpbml0eSA6IF9hLCBfYiA9IGNvbmZpZ09yQnVmZmVyU2l6ZS53aW5kb3dUaW1lLCB3aW5kb3dUaW1lID0gX2IgPT09IHZvaWQgMCA/IEluZmluaXR5IDogX2IsIF9jID0gY29uZmlnT3JCdWZmZXJTaXplLnJlZkNvdW50LCByZWZDb3VudCA9IF9jID09PSB2b2lkIDAgPyBmYWxzZSA6IF9jLCBzY2hlZHVsZXIgPSBjb25maWdPckJ1ZmZlclNpemUuc2NoZWR1bGVyOwogICAgICB9IGVsc2UgewogICAgICAgIGJ1ZmZlclNpemUgPSBjb25maWdPckJ1ZmZlclNpemUgIT09IG51bGwgJiYgY29uZmlnT3JCdWZmZXJTaXplICE9PSB2b2lkIDAgPyBjb25maWdPckJ1ZmZlclNpemUgOiBJbmZpbml0eTsKICAgICAgfQogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZSh7CiAgICAgICAgY29ubmVjdG9yOiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBuZXcgUmVwbGF5U3ViamVjdF8xLlJlcGxheVN1YmplY3QoYnVmZmVyU2l6ZSwgd2luZG93VGltZSwgc2NoZWR1bGVyKTsKICAgICAgICB9LAogICAgICAgIHJlc2V0T25FcnJvcjogdHJ1ZSwKICAgICAgICByZXNldE9uQ29tcGxldGU6IGZhbHNlLAogICAgICAgIHJlc2V0T25SZWZDb3VudFplcm86IHJlZkNvdW50CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2hhcmVSZXBsYXkgPSBzaGFyZVJlcGxheTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcwp2YXIgcmVxdWlyZV9zaW5nbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NpbmdsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2luZ2xlID0gdm9pZCAwOwogICAgdmFyIEVtcHR5RXJyb3JfMSA9IHJlcXVpcmVfRW1wdHlFcnJvcigpOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgdmFyIE5vdEZvdW5kRXJyb3JfMSA9IHJlcXVpcmVfTm90Rm91bmRFcnJvcigpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNpbmdsZShwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgIHZhciBzaW5nbGVWYWx1ZTsKICAgICAgICB2YXIgc2VlblZhbHVlID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgc2VlblZhbHVlID0gdHJ1ZTsKICAgICAgICAgIGlmICghcHJlZGljYXRlIHx8IHByZWRpY2F0ZSh2YWx1ZSwgaW5kZXgrKywgc291cmNlKSkgewogICAgICAgICAgICBoYXNWYWx1ZSAmJiBzdWJzY3JpYmVyLmVycm9yKG5ldyBTZXF1ZW5jZUVycm9yXzEuU2VxdWVuY2VFcnJvcigiVG9vIG1hbnkgbWF0Y2hpbmcgdmFsdWVzIikpOwogICAgICAgICAgICBoYXNWYWx1ZSA9IHRydWU7CiAgICAgICAgICAgIHNpbmdsZVZhbHVlID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAoaGFzVmFsdWUpIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHNpbmdsZVZhbHVlKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihzZWVuVmFsdWUgPyBuZXcgTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3IoIk5vIG1hdGNoaW5nIHZhbHVlcyIpIDogbmV3IEVtcHR5RXJyb3JfMS5FbXB0eUVycm9yKCkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zaW5nbGUgPSBzaW5nbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwLmpzCnZhciByZXF1aXJlX3NraXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXAgPSB2b2lkIDA7CiAgICB2YXIgZmlsdGVyXzEgPSByZXF1aXJlX2ZpbHRlcigpOwogICAgZnVuY3Rpb24gc2tpcChjb3VudCkgewogICAgICByZXR1cm4gZmlsdGVyXzEuZmlsdGVyKGZ1bmN0aW9uKF8sIGluZGV4KSB7CiAgICAgICAgcmV0dXJuIGNvdW50IDw9IGluZGV4OwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnNraXAgPSBza2lwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc2tpcExhc3QuanMKdmFyIHJlcXVpcmVfc2tpcExhc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBMYXN0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5za2lwTGFzdCA9IHZvaWQgMDsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHNraXBMYXN0KHNraXBDb3VudCkgewogICAgICByZXR1cm4gc2tpcENvdW50IDw9IDAgPyBpZGVudGl0eV8xLmlkZW50aXR5IDogbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHJpbmcgPSBuZXcgQXJyYXkoc2tpcENvdW50KTsKICAgICAgICB2YXIgc2VlbiA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciB2YWx1ZUluZGV4ID0gc2VlbisrOwogICAgICAgICAgaWYgKHZhbHVlSW5kZXggPCBza2lwQ291bnQpIHsKICAgICAgICAgICAgcmluZ1t2YWx1ZUluZGV4XSA9IHZhbHVlOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGluZGV4ID0gdmFsdWVJbmRleCAlIHNraXBDb3VudDsKICAgICAgICAgICAgdmFyIG9sZFZhbHVlID0gcmluZ1tpbmRleF07CiAgICAgICAgICAgIHJpbmdbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChvbGRWYWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJpbmcgPSBudWxsOwogICAgICAgIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcExhc3QgPSBza2lwTGFzdDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcwp2YXIgcmVxdWlyZV9za2lwVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3NraXBVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc2tpcFVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiBza2lwVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB0YWtpbmcgPSBmYWxzZTsKICAgICAgICB2YXIgc2tpcFN1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBza2lwU3Vic2NyaWJlciA9PT0gbnVsbCB8fCBza2lwU3Vic2NyaWJlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2tpcFN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRha2luZyA9IHRydWU7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKHNraXBTdWJzY3JpYmVyKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRha2luZyAmJiBzdWJzY3JpYmVyLm5leHQodmFsdWUpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5za2lwVW50aWwgPSBza2lwVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMKdmFyIHJlcXVpcmVfc2tpcFdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9za2lwV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNraXBXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiBza2lwV2hpbGUocHJlZGljYXRlKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgdGFraW5nID0gZmFsc2U7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuICh0YWtpbmcgfHwgKHRha2luZyA9ICFwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspKSkgJiYgc3Vic2NyaWJlci5uZXh0KHZhbHVlKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc2tpcFdoaWxlID0gc2tpcFdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzCnZhciByZXF1aXJlX3N0YXJ0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3RhcnRXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdGFydFdpdGggPSB2b2lkIDA7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgdmFyIGFyZ3NfMSA9IHJlcXVpcmVfYXJncygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3RhcnRXaXRoKCkgewogICAgICB2YXIgdmFsdWVzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgdmFsdWVzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIodmFsdWVzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIChzY2hlZHVsZXIgPyBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UsIHNjaGVkdWxlcikgOiBjb25jYXRfMS5jb25jYXQodmFsdWVzLCBzb3VyY2UpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuc3RhcnRXaXRoID0gc3RhcnRXaXRoOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvc3dpdGNoTWFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSB2b2lkIDA7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaE1hcChwcm9qZWN0LCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgdmFyIGluZGV4ID0gMDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBjaGVja0NvbXBsZXRlID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gaXNDb21wbGV0ZSAmJiAhaW5uZXJTdWJzY3JpYmVyICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICBpbm5lclN1YnNjcmliZXIgPT09IG51bGwgfHwgaW5uZXJTdWJzY3JpYmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpbm5lclN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHZhciBpbm5lckluZGV4ID0gMDsKICAgICAgICAgIHZhciBvdXRlckluZGV4ID0gaW5kZXgrKzsKICAgICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShwcm9qZWN0KHZhbHVlLCBvdXRlckluZGV4KSkuc3Vic2NyaWJlKGlubmVyU3Vic2NyaWJlciA9IE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihpbm5lclZhbHVlKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLm5leHQocmVzdWx0U2VsZWN0b3IgPyByZXN1bHRTZWxlY3Rvcih2YWx1ZSwgaW5uZXJWYWx1ZSwgb3V0ZXJJbmRleCwgaW5uZXJJbmRleCsrKSA6IGlubmVyVmFsdWUpOwogICAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgIGlubmVyU3Vic2NyaWJlciA9IG51bGw7CiAgICAgICAgICAgIGNoZWNrQ29tcGxldGUoKTsKICAgICAgICAgIH0pKTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIGlzQ29tcGxldGUgPSB0cnVlOwogICAgICAgICAgY2hlY2tDb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hNYXAgPSBzd2l0Y2hNYXA7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMKdmFyIHJlcXVpcmVfc3dpdGNoQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHZvaWQgMDsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIGZ1bmN0aW9uIHN3aXRjaEFsbCgpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcF8xLnN3aXRjaE1hcChpZGVudGl0eV8xLmlkZW50aXR5KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaEFsbCA9IHN3aXRjaEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaE1hcFRvLmpzCnZhciByZXF1aXJlX3N3aXRjaE1hcFRvID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hNYXBUby5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuc3dpdGNoTWFwVG8gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGlzRnVuY3Rpb25fMSA9IHJlcXVpcmVfaXNGdW5jdGlvbigpOwogICAgZnVuY3Rpb24gc3dpdGNoTWFwVG8oaW5uZXJPYnNlcnZhYmxlLCByZXN1bHRTZWxlY3RvcikgewogICAgICByZXR1cm4gaXNGdW5jdGlvbl8xLmlzRnVuY3Rpb24ocmVzdWx0U2VsZWN0b3IpID8gc3dpdGNoTWFwXzEuc3dpdGNoTWFwKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBpbm5lck9ic2VydmFibGU7CiAgICAgIH0sIHJlc3VsdFNlbGVjdG9yKSA6IHN3aXRjaE1hcF8xLnN3aXRjaE1hcChmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gaW5uZXJPYnNlcnZhYmxlOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gc3dpdGNoTWFwVG87CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy9zd2l0Y2hTY2FuLmpzCnZhciByZXF1aXJlX3N3aXRjaFNjYW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3N3aXRjaFNjYW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN3aXRjaFNjYW4gPSB2b2lkIDA7CiAgICB2YXIgc3dpdGNoTWFwXzEgPSByZXF1aXJlX3N3aXRjaE1hcCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgZnVuY3Rpb24gc3dpdGNoU2NhbihhY2N1bXVsYXRvciwgc2VlZCkgewogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHN0YXRlID0gc2VlZDsKICAgICAgICBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXAoZnVuY3Rpb24odmFsdWUsIGluZGV4KSB7CiAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3Ioc3RhdGUsIHZhbHVlLCBpbmRleCk7CiAgICAgICAgfSwgZnVuY3Rpb24oXywgaW5uZXJWYWx1ZSkgewogICAgICAgICAgcmV0dXJuIHN0YXRlID0gaW5uZXJWYWx1ZSwgaW5uZXJWYWx1ZTsKICAgICAgICB9KShzb3VyY2UpLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGF0ZSA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi5zd2l0Y2hTY2FuID0gc3dpdGNoU2NhbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcwp2YXIgcmVxdWlyZV90YWtlVW50aWwgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rha2VVbnRpbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGFrZVVudGlsID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgbm9vcF8xID0gcmVxdWlyZV9ub29wKCk7CiAgICBmdW5jdGlvbiB0YWtlVW50aWwobm90aWZpZXIpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShub3RpZmllcikuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICAhc3Vic2NyaWJlci5jbG9zZWQgJiYgc291cmNlLnN1YnNjcmliZShzdWJzY3JpYmVyKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50YWtlVW50aWwgPSB0YWtlVW50aWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMKdmFyIHJlcXVpcmVfdGFrZVdoaWxlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90YWtlV2hpbGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRha2VXaGlsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB0YWtlV2hpbGUocHJlZGljYXRlLCBpbmNsdXNpdmUpIHsKICAgICAgaWYgKGluY2x1c2l2ZSA9PT0gdm9pZCAwKSB7CiAgICAgICAgaW5jbHVzaXZlID0gZmFsc2U7CiAgICAgIH0KICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBpbmRleCA9IDA7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciByZXN1bHQgPSBwcmVkaWNhdGUodmFsdWUsIGluZGV4KyspOwogICAgICAgICAgKHJlc3VsdCB8fCBpbmNsdXNpdmUpICYmIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAhcmVzdWx0ICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGFrZVdoaWxlID0gdGFrZVdoaWxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzCnZhciByZXF1aXJlX3RhcCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGFwLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50YXAgPSB2b2lkIDA7CiAgICB2YXIgaXNGdW5jdGlvbl8xID0gcmVxdWlyZV9pc0Z1bmN0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlkZW50aXR5XzEgPSByZXF1aXJlX2lkZW50aXR5KCk7CiAgICBmdW5jdGlvbiB0YXAob2JzZXJ2ZXJPck5leHQsIGVycm9yLCBjb21wbGV0ZSkgewogICAgICB2YXIgdGFwT2JzZXJ2ZXIgPSBpc0Z1bmN0aW9uXzEuaXNGdW5jdGlvbihvYnNlcnZlck9yTmV4dCkgfHwgZXJyb3IgfHwgY29tcGxldGUgPyB7IG5leHQ6IG9ic2VydmVyT3JOZXh0LCBlcnJvciwgY29tcGxldGUgfSA6IG9ic2VydmVyT3JOZXh0OwogICAgICByZXR1cm4gdGFwT2JzZXJ2ZXIgPyBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgKF9hID0gdGFwT2JzZXJ2ZXIuc3Vic2NyaWJlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgdmFyIGlzVW5zdWIgPSB0cnVlOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLm5leHQpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIHZhbHVlKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyOwogICAgICAgICAgaXNVbnN1YiA9IGZhbHNlOwogICAgICAgICAgKF9hMiA9IHRhcE9ic2VydmVyLmNvbXBsZXRlKSA9PT0gbnVsbCB8fCBfYTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hMi5jYWxsKHRhcE9ic2VydmVyKTsKICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHZhciBfYTI7CiAgICAgICAgICBpc1Vuc3ViID0gZmFsc2U7CiAgICAgICAgICAoX2EyID0gdGFwT2JzZXJ2ZXIuZXJyb3IpID09PSBudWxsIHx8IF9hMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EyLmNhbGwodGFwT2JzZXJ2ZXIsIGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgX2EyLCBfYjsKICAgICAgICAgIGlmIChpc1Vuc3ViKSB7CiAgICAgICAgICAgIChfYTIgPSB0YXBPYnNlcnZlci51bnN1YnNjcmliZSkgPT09IG51bGwgfHwgX2EyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYTIuY2FsbCh0YXBPYnNlcnZlcik7CiAgICAgICAgICB9CiAgICAgICAgICAoX2IgPSB0YXBPYnNlcnZlci5maW5hbGl6ZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwodGFwT2JzZXJ2ZXIpOwogICAgICAgIH0pKTsKICAgICAgfSkgOiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfQogICAgZXhwb3J0czIudGFwID0gdGFwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGUuanMKdmFyIHJlcXVpcmVfdGhyb3R0bGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3Rocm90dGxlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHZvaWQgMDsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICB2YXIgaW5uZXJGcm9tXzEgPSByZXF1aXJlX2lubmVyRnJvbSgpOwogICAgZnVuY3Rpb24gdGhyb3R0bGUoZHVyYXRpb25TZWxlY3RvciwgY29uZmlnKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgX2EgPSBjb25maWcgIT09IG51bGwgJiYgY29uZmlnICE9PSB2b2lkIDAgPyBjb25maWcgOiB7fSwgX2IgPSBfYS5sZWFkaW5nLCBsZWFkaW5nID0gX2IgPT09IHZvaWQgMCA/IHRydWUgOiBfYiwgX2MgPSBfYS50cmFpbGluZywgdHJhaWxpbmcgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYzsKICAgICAgICB2YXIgaGFzVmFsdWUgPSBmYWxzZTsKICAgICAgICB2YXIgc2VuZFZhbHVlID0gbnVsbDsKICAgICAgICB2YXIgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICB2YXIgaXNDb21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHZhciBlbmRUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICB0aHJvdHRsZWQgPT09IG51bGwgfHwgdGhyb3R0bGVkID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0aHJvdHRsZWQudW5zdWJzY3JpYmUoKTsKICAgICAgICAgIHRocm90dGxlZCA9IG51bGw7CiAgICAgICAgICBpZiAodHJhaWxpbmcpIHsKICAgICAgICAgICAgc2VuZCgpOwogICAgICAgICAgICBpc0NvbXBsZXRlICYmIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZhciBjbGVhbnVwVGhyb3R0bGluZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgdGhyb3R0bGVkID0gbnVsbDsKICAgICAgICAgIGlzQ29tcGxldGUgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0VGhyb3R0bGUgPSBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHRocm90dGxlZCA9IGlubmVyRnJvbV8xLmlubmVyRnJvbShkdXJhdGlvblNlbGVjdG9yKHZhbHVlKSkuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBlbmRUaHJvdHRsaW5nLCBjbGVhbnVwVGhyb3R0bGluZykpOwogICAgICAgIH07CiAgICAgICAgdmFyIHNlbmQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgIGlmIChoYXNWYWx1ZSkgewogICAgICAgICAgICBoYXNWYWx1ZSA9IGZhbHNlOwogICAgICAgICAgICB2YXIgdmFsdWUgPSBzZW5kVmFsdWU7CiAgICAgICAgICAgIHNlbmRWYWx1ZSA9IG51bGw7CiAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZSk7CiAgICAgICAgICAgICFpc0NvbXBsZXRlICYmIHN0YXJ0VGhyb3R0bGUodmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGhhc1ZhbHVlID0gdHJ1ZTsKICAgICAgICAgIHNlbmRWYWx1ZSA9IHZhbHVlOwogICAgICAgICAgISh0aHJvdHRsZWQgJiYgIXRocm90dGxlZC5jbG9zZWQpICYmIChsZWFkaW5nID8gc2VuZCgpIDogc3RhcnRUaHJvdHRsZSh2YWx1ZSkpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgaXNDb21wbGV0ZSA9IHRydWU7CiAgICAgICAgICAhKHRyYWlsaW5nICYmIGhhc1ZhbHVlICYmIHRocm90dGxlZCAmJiAhdGhyb3R0bGVkLmNsb3NlZCkgJiYgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZSA9IHRocm90dGxlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzCnZhciByZXF1aXJlX3Rocm90dGxlVGltZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGhyb3R0bGVUaW1lLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB2b2lkIDA7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciB0aHJvdHRsZV8xID0gcmVxdWlyZV90aHJvdHRsZSgpOwogICAgdmFyIHRpbWVyXzEgPSByZXF1aXJlX3RpbWVyKCk7CiAgICBmdW5jdGlvbiB0aHJvdHRsZVRpbWUoZHVyYXRpb24sIHNjaGVkdWxlciwgY29uZmlnKSB7CiAgICAgIGlmIChzY2hlZHVsZXIgPT09IHZvaWQgMCkgewogICAgICAgIHNjaGVkdWxlciA9IGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICAgIH0KICAgICAgdmFyIGR1cmF0aW9uJCA9IHRpbWVyXzEudGltZXIoZHVyYXRpb24sIHNjaGVkdWxlcik7CiAgICAgIHJldHVybiB0aHJvdHRsZV8xLnRocm90dGxlKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBkdXJhdGlvbiQ7CiAgICAgIH0sIGNvbmZpZyk7CiAgICB9CiAgICBleHBvcnRzMi50aHJvdHRsZVRpbWUgPSB0aHJvdHRsZVRpbWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMKdmFyIHJlcXVpcmVfdGltZUludGVydmFsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lSW50ZXJ2YWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IHZvaWQgMDsKICAgIHZhciBhc3luY18xID0gcmVxdWlyZV9hc3luYygpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIGZ1bmN0aW9uIHRpbWVJbnRlcnZhbChzY2hlZHVsZXIpIHsKICAgICAgaWYgKHNjaGVkdWxlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgc2NoZWR1bGVyID0gYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgfQogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIGxhc3QgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIHZhciBub3cgPSBzY2hlZHVsZXIubm93KCk7CiAgICAgICAgICB2YXIgaW50ZXJ2YWwgPSBub3cgLSBsYXN0OwogICAgICAgICAgbGFzdCA9IG5vdzsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dChuZXcgVGltZUludGVydmFsKHZhbHVlLCBpbnRlcnZhbCkpOwogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi50aW1lSW50ZXJ2YWwgPSB0aW1lSW50ZXJ2YWw7CiAgICB2YXIgVGltZUludGVydmFsID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICBmdW5jdGlvbiBUaW1lSW50ZXJ2YWwyKHZhbHVlLCBpbnRlcnZhbCkgewogICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTsKICAgICAgICB0aGlzLmludGVydmFsID0gaW50ZXJ2YWw7CiAgICAgIH0KICAgICAgcmV0dXJuIFRpbWVJbnRlcnZhbDI7CiAgICB9KCk7CiAgICBleHBvcnRzMi5UaW1lSW50ZXJ2YWwgPSBUaW1lSW50ZXJ2YWw7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy90aW1lb3V0V2l0aC5qcwp2YXIgcmVxdWlyZV90aW1lb3V0V2l0aCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvdGltZW91dFdpdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gdm9pZCAwOwogICAgdmFyIGFzeW5jXzEgPSByZXF1aXJlX2FzeW5jKCk7CiAgICB2YXIgaXNEYXRlXzEgPSByZXF1aXJlX2lzRGF0ZSgpOwogICAgdmFyIHRpbWVvdXRfMSA9IHJlcXVpcmVfdGltZW91dCgpOwogICAgZnVuY3Rpb24gdGltZW91dFdpdGgoZHVlLCB3aXRoT2JzZXJ2YWJsZSwgc2NoZWR1bGVyKSB7CiAgICAgIHZhciBmaXJzdDsKICAgICAgdmFyIGVhY2g7CiAgICAgIHZhciBfd2l0aDsKICAgICAgc2NoZWR1bGVyID0gc2NoZWR1bGVyICE9PSBudWxsICYmIHNjaGVkdWxlciAhPT0gdm9pZCAwID8gc2NoZWR1bGVyIDogYXN5bmNfMS5hc3luYzsKICAgICAgaWYgKGlzRGF0ZV8xLmlzVmFsaWREYXRlKGR1ZSkpIHsKICAgICAgICBmaXJzdCA9IGR1ZTsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZHVlID09PSAibnVtYmVyIikgewogICAgICAgIGVhY2ggPSBkdWU7CiAgICAgIH0KICAgICAgaWYgKHdpdGhPYnNlcnZhYmxlKSB7CiAgICAgICAgX3dpdGggPSBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB3aXRoT2JzZXJ2YWJsZTsKICAgICAgICB9OwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIk5vIG9ic2VydmFibGUgcHJvdmlkZWQgdG8gc3dpdGNoIHRvIik7CiAgICAgIH0KICAgICAgaWYgKGZpcnN0ID09IG51bGwgJiYgZWFjaCA9PSBudWxsKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiTm8gdGltZW91dCBwcm92aWRlZC4iKTsKICAgICAgfQogICAgICByZXR1cm4gdGltZW91dF8xLnRpbWVvdXQoewogICAgICAgIGZpcnN0LAogICAgICAgIGVhY2gsCiAgICAgICAgc2NoZWR1bGVyLAogICAgICAgIHdpdGg6IF93aXRoCiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZW91dFdpdGggPSB0aW1lb3V0V2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcwp2YXIgcmVxdWlyZV90aW1lc3RhbXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3RpbWVzdGFtcC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGltZXN0YW1wID0gdm9pZCAwOwogICAgdmFyIGRhdGVUaW1lc3RhbXBQcm92aWRlcl8xID0gcmVxdWlyZV9kYXRlVGltZXN0YW1wUHJvdmlkZXIoKTsKICAgIHZhciBtYXBfMSA9IHJlcXVpcmVfbWFwKCk7CiAgICBmdW5jdGlvbiB0aW1lc3RhbXAyKHRpbWVzdGFtcFByb3ZpZGVyKSB7CiAgICAgIGlmICh0aW1lc3RhbXBQcm92aWRlciA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGltZXN0YW1wUHJvdmlkZXIgPSBkYXRlVGltZXN0YW1wUHJvdmlkZXJfMS5kYXRlVGltZXN0YW1wUHJvdmlkZXI7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hcF8xLm1hcChmdW5jdGlvbih2YWx1ZSkgewogICAgICAgIHJldHVybiB7IHZhbHVlLCB0aW1lc3RhbXA6IHRpbWVzdGFtcFByb3ZpZGVyLm5vdygpIH07CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIudGltZXN0YW1wID0gdGltZXN0YW1wMjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcwp2YXIgcmVxdWlyZV93aW5kb3cgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvdy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93ID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICBmdW5jdGlvbiB3aW5kb3cyKHdpbmRvd0JvdW5kYXJpZXMpIHsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciB3aW5kb3dTdWJqZWN0ID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHZhciBlcnJvckhhbmRsZXIgPSBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QuZXJyb3IoZXJyKTsKICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93U3ViamVjdCA9PT0gbnVsbCB8fCB3aW5kb3dTdWJqZWN0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB3aW5kb3dTdWJqZWN0Lm5leHQodmFsdWUpOwogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICAgIH0sIGVycm9ySGFuZGxlcikpOwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbSh3aW5kb3dCb3VuZGFyaWVzKS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93U3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd1N1YmplY3QgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3AsIGVycm9ySGFuZGxlcikpOwogICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKICAgICAgICAgIHdpbmRvd1N1YmplY3QgPT09IG51bGwgfHwgd2luZG93U3ViamVjdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogd2luZG93U3ViamVjdC51bnN1YnNjcmliZSgpOwogICAgICAgICAgd2luZG93U3ViamVjdCA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3cgPSB3aW5kb3cyOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2luZG93Q291bnQuanMKdmFyIHJlcXVpcmVfd2luZG93Q291bnQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd0NvdW50LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fdmFsdWVzID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX192YWx1ZXMgfHwgZnVuY3Rpb24obykgewogICAgICB2YXIgcyA9IHR5cGVvZiBTeW1ib2wgPT09ICJmdW5jdGlvbiIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDsKICAgICAgaWYgKG0pIHJldHVybiBtLmNhbGwobyk7CiAgICAgIGlmIChvICYmIHR5cGVvZiBvLmxlbmd0aCA9PT0gIm51bWJlciIpIHJldHVybiB7CiAgICAgICAgbmV4dDogZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAobyAmJiBpID49IG8ubGVuZ3RoKSBvID0gdm9pZCAwOwogICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9OwogICAgICAgIH0KICAgICAgfTsKICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihzID8gIk9iamVjdCBpcyBub3QgaXRlcmFibGUuIiA6ICJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuIik7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi53aW5kb3dDb3VudCA9IHZvaWQgMDsKICAgIHZhciBTdWJqZWN0XzEgPSByZXF1aXJlX1N1YmplY3QoKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBPcGVyYXRvclN1YnNjcmliZXJfMSA9IHJlcXVpcmVfT3BlcmF0b3JTdWJzY3JpYmVyKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dDb3VudCh3aW5kb3dTaXplLCBzdGFydFdpbmRvd0V2ZXJ5KSB7CiAgICAgIGlmIChzdGFydFdpbmRvd0V2ZXJ5ID09PSB2b2lkIDApIHsKICAgICAgICBzdGFydFdpbmRvd0V2ZXJ5ID0gMDsKICAgICAgfQogICAgICB2YXIgc3RhcnRFdmVyeSA9IHN0YXJ0V2luZG93RXZlcnkgPiAwID8gc3RhcnRXaW5kb3dFdmVyeSA6IHdpbmRvd1NpemU7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtuZXcgU3ViamVjdF8xLlN1YmplY3QoKV07CiAgICAgICAgdmFyIHN0YXJ0cyA9IFtdOwogICAgICAgIHZhciBjb3VudCA9IDA7CiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd3NbMF0uYXNPYnNlcnZhYmxlKCkpOwogICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGZ1bmN0aW9uKHZhbHVlKSB7CiAgICAgICAgICB2YXIgZV8xLCBfYTsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAodmFyIHdpbmRvd3NfMSA9IF9fdmFsdWVzKHdpbmRvd3MpLCB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCk7ICF3aW5kb3dzXzFfMS5kb25lOyB3aW5kb3dzXzFfMSA9IHdpbmRvd3NfMS5uZXh0KCkpIHsKICAgICAgICAgICAgICB2YXIgd2luZG93XzEgPSB3aW5kb3dzXzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NfMV8xICYmICF3aW5kb3dzXzFfMS5kb25lICYmIChfYSA9IHdpbmRvd3NfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NfMSk7CiAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgaWYgKGVfMSkgdGhyb3cgZV8xLmVycm9yOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYyA9IGNvdW50IC0gd2luZG93U2l6ZSArIDE7CiAgICAgICAgICBpZiAoYyA+PSAwICYmIGMgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS5jb21wbGV0ZSgpOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCsrY291bnQgJSBzdGFydEV2ZXJ5ID09PSAwKSB7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMiA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93XzIpOwogICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQod2luZG93XzIuYXNPYnNlcnZhYmxlKCkpOwogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKHdpbmRvd3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHdoaWxlICh3aW5kb3dzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgd2luZG93cy5zaGlmdCgpLmVycm9yKGVycik7CiAgICAgICAgICB9CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGFydHMgPSBudWxsOwogICAgICAgICAgd2luZG93cyA9IG51bGw7CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpbmRvd0NvdW50ID0gd2luZG93Q291bnQ7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dUaW1lLmpzCnZhciByZXF1aXJlX3dpbmRvd1RpbWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RpbWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1RpbWUgPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIHZhciBTdWJzY3JpcHRpb25fMSA9IHJlcXVpcmVfU3Vic2NyaXB0aW9uKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIHZhciBleGVjdXRlU2NoZWR1bGVfMSA9IHJlcXVpcmVfZXhlY3V0ZVNjaGVkdWxlKCk7CiAgICBmdW5jdGlvbiB3aW5kb3dUaW1lKHdpbmRvd1RpbWVTcGFuKSB7CiAgICAgIHZhciBfYSwgX2I7CiAgICAgIHZhciBvdGhlckFyZ3MgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAxOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlckFyZ3NbX2kgLSAxXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHNjaGVkdWxlciA9IChfYSA9IGFyZ3NfMS5wb3BTY2hlZHVsZXIob3RoZXJBcmdzKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogYXN5bmNfMS5hc3luY1NjaGVkdWxlcjsKICAgICAgdmFyIHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgPSAoX2IgPSBvdGhlckFyZ3NbMF0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7CiAgICAgIHZhciBtYXhXaW5kb3dTaXplID0gb3RoZXJBcmdzWzFdIHx8IEluZmluaXR5OwogICAgICByZXR1cm4gbGlmdF8xLm9wZXJhdGUoZnVuY3Rpb24oc291cmNlLCBzdWJzY3JpYmVyKSB7CiAgICAgICAgdmFyIHdpbmRvd1JlY29yZHMgPSBbXTsKICAgICAgICB2YXIgcmVzdGFydE9uQ2xvc2UgPSBmYWxzZTsKICAgICAgICB2YXIgY2xvc2VXaW5kb3cgPSBmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gcmVjb3JkLndpbmRvdywgc3VicyA9IHJlY29yZC5zdWJzOwogICAgICAgICAgd2luZG93Mi5jb21wbGV0ZSgpOwogICAgICAgICAgc3Vicy51bnN1YnNjcmliZSgpOwogICAgICAgICAgYXJyUmVtb3ZlXzEuYXJyUmVtb3ZlKHdpbmRvd1JlY29yZHMsIHJlY29yZCk7CiAgICAgICAgICByZXN0YXJ0T25DbG9zZSAmJiBzdGFydFdpbmRvdygpOwogICAgICAgIH07CiAgICAgICAgdmFyIHN0YXJ0V2luZG93ID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBpZiAod2luZG93UmVjb3JkcykgewogICAgICAgICAgICB2YXIgc3VicyA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5hZGQoc3Vicyk7CiAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IG5ldyBTdWJqZWN0XzEuU3ViamVjdCgpOwogICAgICAgICAgICB2YXIgcmVjb3JkXzEgPSB7CiAgICAgICAgICAgICAgd2luZG93OiB3aW5kb3dfMSwKICAgICAgICAgICAgICBzdWJzLAogICAgICAgICAgICAgIHNlZW46IDAKICAgICAgICAgICAgfTsKICAgICAgICAgICAgd2luZG93UmVjb3Jkcy5wdXNoKHJlY29yZF8xKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHdpbmRvd18xLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgICAgZXhlY3V0ZVNjaGVkdWxlXzEuZXhlY3V0ZVNjaGVkdWxlKHN1YnMsIHNjaGVkdWxlciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGNsb3NlV2luZG93KHJlY29yZF8xKTsKICAgICAgICAgICAgfSwgd2luZG93VGltZVNwYW4pOwogICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgaWYgKHdpbmRvd0NyZWF0aW9uSW50ZXJ2YWwgIT09IG51bGwgJiYgd2luZG93Q3JlYXRpb25JbnRlcnZhbCA+PSAwKSB7CiAgICAgICAgICBleGVjdXRlU2NoZWR1bGVfMS5leGVjdXRlU2NoZWR1bGUoc3Vic2NyaWJlciwgc2NoZWR1bGVyLCBzdGFydFdpbmRvdywgd2luZG93Q3JlYXRpb25JbnRlcnZhbCwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJlc3RhcnRPbkNsb3NlID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgc3RhcnRXaW5kb3coKTsKICAgICAgICB2YXIgbG9vcCA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICByZXR1cm4gd2luZG93UmVjb3Jkcy5zbGljZSgpLmZvckVhY2goY2IpOwogICAgICAgIH07CiAgICAgICAgdmFyIHRlcm1pbmF0ZSA9IGZ1bmN0aW9uKGNiKSB7CiAgICAgICAgICBsb29wKGZ1bmN0aW9uKF9hMikgewogICAgICAgICAgICB2YXIgd2luZG93MiA9IF9hMi53aW5kb3c7CiAgICAgICAgICAgIHJldHVybiBjYih3aW5kb3cyKTsKICAgICAgICAgIH0pOwogICAgICAgICAgY2Ioc3Vic2NyaWJlcik7CiAgICAgICAgICBzdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgfTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgbG9vcChmdW5jdGlvbihyZWNvcmQpIHsKICAgICAgICAgICAgcmVjb3JkLndpbmRvdy5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgbWF4V2luZG93U2l6ZSA8PSArK3JlY29yZC5zZWVuICYmIGNsb3NlV2luZG93KHJlY29yZCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmNvbXBsZXRlKCk7CiAgICAgICAgICB9KTsKICAgICAgICB9LCBmdW5jdGlvbihlcnIpIHsKICAgICAgICAgIHJldHVybiB0ZXJtaW5hdGUoZnVuY3Rpb24oY29uc3VtZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGNvbnN1bWVyLmVycm9yKGVycik7CiAgICAgICAgICB9KTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2luZG93UmVjb3JkcyA9IG51bGw7CiAgICAgICAgfTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUaW1lID0gd2luZG93VGltZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcwp2YXIgcmVxdWlyZV93aW5kb3dUb2dnbGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1RvZ2dsZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX3ZhbHVlcyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fdmFsdWVzIHx8IGZ1bmN0aW9uKG8pIHsKICAgICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIFN5bWJvbC5pdGVyYXRvciwgbSA9IHMgJiYgb1tzXSwgaSA9IDA7CiAgICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pOwogICAgICBpZiAobyAmJiB0eXBlb2Ygby5sZW5ndGggPT09ICJudW1iZXIiKSByZXR1cm4gewogICAgICAgIG5leHQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDsKICAgICAgICAgIHJldHVybiB7IHZhbHVlOiBvICYmIG9baSsrXSwgZG9uZTogIW8gfTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IocyA/ICJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLiIgOiAiU3ltYm9sLml0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLiIpOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud2luZG93VG9nZ2xlID0gdm9pZCAwOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIHZhciBsaWZ0XzEgPSByZXF1aXJlX2xpZnQoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgdmFyIGFyclJlbW92ZV8xID0gcmVxdWlyZV9hcnJSZW1vdmUoKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1RvZ2dsZShvcGVuaW5ncywgY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93cyA9IFtdOwogICAgICAgIHZhciBoYW5kbGVFcnJvciA9IGZ1bmN0aW9uKGVycikgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuZXJyb3IoZXJyKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyKTsKICAgICAgICB9OwogICAgICAgIGlubmVyRnJvbV8xLmlubmVyRnJvbShvcGVuaW5ncykuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbihvcGVuVmFsdWUpIHsKICAgICAgICAgIHZhciB3aW5kb3cyID0gbmV3IFN1YmplY3RfMS5TdWJqZWN0KCk7CiAgICAgICAgICB3aW5kb3dzLnB1c2god2luZG93Mik7CiAgICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb25fMS5TdWJzY3JpcHRpb24oKTsKICAgICAgICAgIHZhciBjbG9zZVdpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgICBhcnJSZW1vdmVfMS5hcnJSZW1vdmUod2luZG93cywgd2luZG93Mik7CiAgICAgICAgICAgIHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgICAgY2xvc2luZ1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpOwogICAgICAgICAgfTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKG9wZW5WYWx1ZSkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIGNsb3NpbmdTdWJzY3JpcHRpb24uYWRkKGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoT3BlcmF0b3JTdWJzY3JpYmVyXzEuY3JlYXRlT3BlcmF0b3JTdWJzY3JpYmVyKHN1YnNjcmliZXIsIGNsb3NlV2luZG93LCBub29wXzEubm9vcCwgaGFuZGxlRXJyb3IpKSk7CiAgICAgICAgfSwgbm9vcF8xLm5vb3ApKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgdmFyIGVfMSwgX2E7CiAgICAgICAgICB2YXIgd2luZG93c0NvcHkgPSB3aW5kb3dzLnNsaWNlKCk7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBmb3IgKHZhciB3aW5kb3dzQ29weV8xID0gX192YWx1ZXMod2luZG93c0NvcHkpLCB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKTsgIXdpbmRvd3NDb3B5XzFfMS5kb25lOyB3aW5kb3dzQ29weV8xXzEgPSB3aW5kb3dzQ29weV8xLm5leHQoKSkgewogICAgICAgICAgICAgIHZhciB3aW5kb3dfMSA9IHdpbmRvd3NDb3B5XzFfMS52YWx1ZTsKICAgICAgICAgICAgICB3aW5kb3dfMS5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBjYXRjaCAoZV8xXzEpIHsKICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTsKICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgaWYgKHdpbmRvd3NDb3B5XzFfMSAmJiAhd2luZG93c0NvcHlfMV8xLmRvbmUgJiYgKF9hID0gd2luZG93c0NvcHlfMS5yZXR1cm4pKSBfYS5jYWxsKHdpbmRvd3NDb3B5XzEpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgd2hpbGUgKDAgPCB3aW5kb3dzLmxlbmd0aCkgewogICAgICAgICAgICB3aW5kb3dzLnNoaWZ0KCkuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICAgIHN1YnNjcmliZXIuY29tcGxldGUoKTsKICAgICAgICB9LCBoYW5kbGVFcnJvciwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aGlsZSAoMCA8IHdpbmRvd3MubGVuZ3RoKSB7CiAgICAgICAgICAgIHdpbmRvd3Muc2hpZnQoKS51bnN1YnNjcmliZSgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfSk7CiAgICB9CiAgICBleHBvcnRzMi53aW5kb3dUb2dnbGUgPSB3aW5kb3dUb2dnbGU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aW5kb3dXaGVuLmpzCnZhciByZXF1aXJlX3dpbmRvd1doZW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3dpbmRvd1doZW4uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpbmRvd1doZW4gPSB2b2lkIDA7CiAgICB2YXIgU3ViamVjdF8xID0gcmVxdWlyZV9TdWJqZWN0KCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICB2YXIgT3BlcmF0b3JTdWJzY3JpYmVyXzEgPSByZXF1aXJlX09wZXJhdG9yU3Vic2NyaWJlcigpOwogICAgdmFyIGlubmVyRnJvbV8xID0gcmVxdWlyZV9pbm5lckZyb20oKTsKICAgIGZ1bmN0aW9uIHdpbmRvd1doZW4oY2xvc2luZ1NlbGVjdG9yKSB7CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB2YXIgd2luZG93MjsKICAgICAgICB2YXIgY2xvc2luZ1N1YnNjcmliZXI7CiAgICAgICAgdmFyIGhhbmRsZUVycm9yID0gZnVuY3Rpb24oZXJyKSB7CiAgICAgICAgICB3aW5kb3cyLmVycm9yKGVycik7CiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycik7CiAgICAgICAgfTsKICAgICAgICB2YXIgb3BlbldpbmRvdyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID09PSBudWxsIHx8IHdpbmRvdzIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHdpbmRvdzIuY29tcGxldGUoKTsKICAgICAgICAgIHdpbmRvdzIgPSBuZXcgU3ViamVjdF8xLlN1YmplY3QoKTsKICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh3aW5kb3cyLmFzT2JzZXJ2YWJsZSgpKTsKICAgICAgICAgIHZhciBjbG9zaW5nTm90aWZpZXI7CiAgICAgICAgICB0cnkgewogICAgICAgICAgICBjbG9zaW5nTm90aWZpZXIgPSBpbm5lckZyb21fMS5pbm5lckZyb20oY2xvc2luZ1NlbGVjdG9yKCkpOwogICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgIGhhbmRsZUVycm9yKGVycik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNsb3NpbmdOb3RpZmllci5zdWJzY3JpYmUoY2xvc2luZ1N1YnNjcmliZXIgPSBPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgb3BlbldpbmRvdywgb3BlbldpbmRvdywgaGFuZGxlRXJyb3IpKTsKICAgICAgICB9OwogICAgICAgIG9wZW5XaW5kb3coKTsKICAgICAgICBzb3VyY2Uuc3Vic2NyaWJlKE9wZXJhdG9yU3Vic2NyaWJlcl8xLmNyZWF0ZU9wZXJhdG9yU3Vic2NyaWJlcihzdWJzY3JpYmVyLCBmdW5jdGlvbih2YWx1ZSkgewogICAgICAgICAgcmV0dXJuIHdpbmRvdzIubmV4dCh2YWx1ZSk7CiAgICAgICAgfSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB3aW5kb3cyLmNvbXBsZXRlKCk7CiAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7CiAgICAgICAgfSwgaGFuZGxlRXJyb3IsIGZ1bmN0aW9uKCkgewogICAgICAgICAgY2xvc2luZ1N1YnNjcmliZXIgPT09IG51bGwgfHwgY2xvc2luZ1N1YnNjcmliZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNsb3NpbmdTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICB3aW5kb3cyID0gbnVsbDsKICAgICAgICB9KSk7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIud2luZG93V2hlbiA9IHdpbmRvd1doZW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy93aXRoTGF0ZXN0RnJvbS5qcwp2YXIgcmVxdWlyZV93aXRoTGF0ZXN0RnJvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvd2l0aExhdGVzdEZyb20uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gdm9pZCAwOwogICAgdmFyIGxpZnRfMSA9IHJlcXVpcmVfbGlmdCgpOwogICAgdmFyIE9wZXJhdG9yU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9PcGVyYXRvclN1YnNjcmliZXIoKTsKICAgIHZhciBpbm5lckZyb21fMSA9IHJlcXVpcmVfaW5uZXJGcm9tKCk7CiAgICB2YXIgaWRlbnRpdHlfMSA9IHJlcXVpcmVfaWRlbnRpdHkoKTsKICAgIHZhciBub29wXzEgPSByZXF1aXJlX25vb3AoKTsKICAgIHZhciBhcmdzXzEgPSByZXF1aXJlX2FyZ3MoKTsKICAgIGZ1bmN0aW9uIHdpdGhMYXRlc3RGcm9tKCkgewogICAgICB2YXIgaW5wdXRzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgaW5wdXRzW19pXSA9IGFyZ3VtZW50c1tfaV07CiAgICAgIH0KICAgICAgdmFyIHByb2plY3QgPSBhcmdzXzEucG9wUmVzdWx0U2VsZWN0b3IoaW5wdXRzKTsKICAgICAgcmV0dXJuIGxpZnRfMS5vcGVyYXRlKGZ1bmN0aW9uKHNvdXJjZSwgc3Vic2NyaWJlcikgewogICAgICAgIHZhciBsZW4gPSBpbnB1dHMubGVuZ3RoOwogICAgICAgIHZhciBvdGhlclZhbHVlcyA9IG5ldyBBcnJheShsZW4pOwogICAgICAgIHZhciBoYXNWYWx1ZSA9IGlucHV0cy5tYXAoZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgICAgdmFyIHJlYWR5ID0gZmFsc2U7CiAgICAgICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbihpMikgewogICAgICAgICAgaW5uZXJGcm9tXzEuaW5uZXJGcm9tKGlucHV0c1tpMl0pLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgICAgb3RoZXJWYWx1ZXNbaTJdID0gdmFsdWU7CiAgICAgICAgICAgIGlmICghcmVhZHkgJiYgIWhhc1ZhbHVlW2kyXSkgewogICAgICAgICAgICAgIGhhc1ZhbHVlW2kyXSA9IHRydWU7CiAgICAgICAgICAgICAgKHJlYWR5ID0gaGFzVmFsdWUuZXZlcnkoaWRlbnRpdHlfMS5pZGVudGl0eSkpICYmIChoYXNWYWx1ZSA9IG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBub29wXzEubm9vcCkpOwogICAgICAgIH07CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgX2xvb3BfMShpKTsKICAgICAgICB9CiAgICAgICAgc291cmNlLnN1YnNjcmliZShPcGVyYXRvclN1YnNjcmliZXJfMS5jcmVhdGVPcGVyYXRvclN1YnNjcmliZXIoc3Vic2NyaWJlciwgZnVuY3Rpb24odmFsdWUpIHsKICAgICAgICAgIGlmIChyZWFkeSkgewogICAgICAgICAgICB2YXIgdmFsdWVzID0gX19zcHJlYWRBcnJheShbdmFsdWVdLCBfX3JlYWQob3RoZXJWYWx1ZXMpKTsKICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHByb2plY3QgPyBwcm9qZWN0LmFwcGx5KHZvaWQgMCwgX19zcHJlYWRBcnJheShbXSwgX19yZWFkKHZhbHVlcykpKSA6IHZhbHVlcyk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9KTsKICAgIH0KICAgIGV4cG9ydHMyLndpdGhMYXRlc3RGcm9tID0gd2l0aExhdGVzdEZyb207CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMKdmFyIHJlcXVpcmVfemlwQWxsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBBbGwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcEFsbCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgam9pbkFsbEludGVybmFsc18xID0gcmVxdWlyZV9qb2luQWxsSW50ZXJuYWxzKCk7CiAgICBmdW5jdGlvbiB6aXBBbGwocHJvamVjdCkgewogICAgICByZXR1cm4gam9pbkFsbEludGVybmFsc18xLmpvaW5BbGxJbnRlcm5hbHMoemlwXzEuemlwLCBwcm9qZWN0KTsKICAgIH0KICAgIGV4cG9ydHMyLnppcEFsbCA9IHppcEFsbDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW50ZXJuYWwvb3BlcmF0b3JzL3ppcC5qcwp2YXIgcmVxdWlyZV96aXAyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXAuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19yZWFkID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19yZWFkIHx8IGZ1bmN0aW9uKG8sIG4pIHsKICAgICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSAiZnVuY3Rpb24iICYmIG9bU3ltYm9sLml0ZXJhdG9yXTsKICAgICAgaWYgKCFtKSByZXR1cm4gbzsKICAgICAgdmFyIGkgPSBtLmNhbGwobyksIHIsIGFyID0gW10sIGU7CiAgICAgIHRyeSB7CiAgICAgICAgd2hpbGUgKChuID09PSB2b2lkIDAgfHwgbi0tID4gMCkgJiYgIShyID0gaS5uZXh0KCkpLmRvbmUpIGFyLnB1c2goci52YWx1ZSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgZSA9IHsgZXJyb3IgfTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICB0cnkgewogICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbInJldHVybiJdKSkgbS5jYWxsKGkpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBpZiAoZSkgdGhyb3cgZS5lcnJvcjsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGFyOwogICAgfTsKICAgIHZhciBfX3NwcmVhZEFycmF5ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zcHJlYWRBcnJheSB8fCBmdW5jdGlvbih0bywgZnJvbSkgewogICAgICBmb3IgKHZhciBpID0gMCwgaWwgPSBmcm9tLmxlbmd0aCwgaiA9IHRvLmxlbmd0aDsgaSA8IGlsOyBpKyssIGorKykKICAgICAgICB0b1tqXSA9IGZyb21baV07CiAgICAgIHJldHVybiB0bzsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnppcCA9IHZvaWQgMDsKICAgIHZhciB6aXBfMSA9IHJlcXVpcmVfemlwKCk7CiAgICB2YXIgbGlmdF8xID0gcmVxdWlyZV9saWZ0KCk7CiAgICBmdW5jdGlvbiB6aXAoKSB7CiAgICAgIHZhciBzb3VyY2VzID0gW107CiAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7CiAgICAgICAgc291cmNlc1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiBsaWZ0XzEub3BlcmF0ZShmdW5jdGlvbihzb3VyY2UsIHN1YnNjcmliZXIpIHsKICAgICAgICB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtzb3VyY2VdLCBfX3JlYWQoc291cmNlcykpKS5zdWJzY3JpYmUoc3Vic2NyaWJlcik7CiAgICAgIH0pOwogICAgfQogICAgZXhwb3J0czIuemlwID0gemlwOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9yeGpzLW5wbS03LjguMS00MWM0NDNhNzViLTEwLnppcC9ub2RlX21vZHVsZXMvcnhqcy9kaXN0L2Nqcy9pbnRlcm5hbC9vcGVyYXRvcnMvemlwV2l0aC5qcwp2YXIgcmVxdWlyZV96aXBXaXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2ludGVybmFsL29wZXJhdG9ycy96aXBXaXRoLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fcmVhZCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fcmVhZCB8fCBmdW5jdGlvbihvLCBuKSB7CiAgICAgIHZhciBtID0gdHlwZW9mIFN5bWJvbCA9PT0gImZ1bmN0aW9uIiAmJiBvW1N5bWJvbC5pdGVyYXRvcl07CiAgICAgIGlmICghbSkgcmV0dXJuIG87CiAgICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlOwogICAgICB0cnkgewogICAgICAgIHdoaWxlICgobiA9PT0gdm9pZCAwIHx8IG4tLSA+IDApICYmICEociA9IGkubmV4dCgpKS5kb25lKSBhci5wdXNoKHIudmFsdWUpOwogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGUgPSB7IGVycm9yIH07CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIGlmIChyICYmICFyLmRvbmUgJiYgKG0gPSBpWyJyZXR1cm4iXSkpIG0uY2FsbChpKTsKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgaWYgKGUpIHRocm93IGUuZXJyb3I7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBhcjsKICAgIH07CiAgICB2YXIgX19zcHJlYWRBcnJheSA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc3ByZWFkQXJyYXkgfHwgZnVuY3Rpb24odG8sIGZyb20pIHsKICAgICAgZm9yICh2YXIgaSA9IDAsIGlsID0gZnJvbS5sZW5ndGgsIGogPSB0by5sZW5ndGg7IGkgPCBpbDsgaSsrLCBqKyspCiAgICAgICAgdG9bal0gPSBmcm9tW2ldOwogICAgICByZXR1cm4gdG87CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi56aXBXaXRoID0gdm9pZCAwOwogICAgdmFyIHppcF8xID0gcmVxdWlyZV96aXAyKCk7CiAgICBmdW5jdGlvbiB6aXBXaXRoKCkgewogICAgICB2YXIgb3RoZXJJbnB1dHMgPSBbXTsKICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHsKICAgICAgICBvdGhlcklucHV0c1tfaV0gPSBhcmd1bWVudHNbX2ldOwogICAgICB9CiAgICAgIHJldHVybiB6aXBfMS56aXAuYXBwbHkodm9pZCAwLCBfX3NwcmVhZEFycmF5KFtdLCBfX3JlYWQob3RoZXJJbnB1dHMpKSk7CiAgICB9CiAgICBleHBvcnRzMi56aXBXaXRoID0gemlwV2l0aDsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcnhqcy1ucG0tNy44LjEtNDFjNDQzYTc1Yi0xMC56aXAvbm9kZV9tb2R1bGVzL3J4anMvZGlzdC9janMvaW5kZXguanMKdmFyIHJlcXVpcmVfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3J4anMtbnBtLTcuOC4xLTQxYzQ0M2E3NWItMTAuemlwL25vZGVfbW9kdWxlcy9yeGpzL2Rpc3QvY2pzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiBtW2tdOwogICAgICB9IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pbnRlcnZhbCA9IGV4cG9ydHMyLmlpZiA9IGV4cG9ydHMyLmdlbmVyYXRlID0gZXhwb3J0czIuZnJvbUV2ZW50UGF0dGVybiA9IGV4cG9ydHMyLmZyb21FdmVudCA9IGV4cG9ydHMyLmZyb20gPSBleHBvcnRzMi5mb3JrSm9pbiA9IGV4cG9ydHMyLmVtcHR5ID0gZXhwb3J0czIuZGVmZXIgPSBleHBvcnRzMi5jb25uZWN0YWJsZSA9IGV4cG9ydHMyLmNvbmNhdCA9IGV4cG9ydHMyLmNvbWJpbmVMYXRlc3QgPSBleHBvcnRzMi5iaW5kTm9kZUNhbGxiYWNrID0gZXhwb3J0czIuYmluZENhbGxiYWNrID0gZXhwb3J0czIuVW5zdWJzY3JpcHRpb25FcnJvciA9IGV4cG9ydHMyLlRpbWVvdXRFcnJvciA9IGV4cG9ydHMyLlNlcXVlbmNlRXJyb3IgPSBleHBvcnRzMi5PYmplY3RVbnN1YnNjcmliZWRFcnJvciA9IGV4cG9ydHMyLk5vdEZvdW5kRXJyb3IgPSBleHBvcnRzMi5FbXB0eUVycm9yID0gZXhwb3J0czIuQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IgPSBleHBvcnRzMi5maXJzdFZhbHVlRnJvbSA9IGV4cG9ydHMyLmxhc3RWYWx1ZUZyb20gPSBleHBvcnRzMi5pc09ic2VydmFibGUgPSBleHBvcnRzMi5pZGVudGl0eSA9IGV4cG9ydHMyLm5vb3AgPSBleHBvcnRzMi5waXBlID0gZXhwb3J0czIuTm90aWZpY2F0aW9uS2luZCA9IGV4cG9ydHMyLk5vdGlmaWNhdGlvbiA9IGV4cG9ydHMyLlN1YnNjcmliZXIgPSBleHBvcnRzMi5TdWJzY3JpcHRpb24gPSBleHBvcnRzMi5TY2hlZHVsZXIgPSBleHBvcnRzMi5WaXJ0dWFsQWN0aW9uID0gZXhwb3J0czIuVmlydHVhbFRpbWVTY2hlZHVsZXIgPSBleHBvcnRzMi5hbmltYXRpb25GcmFtZVNjaGVkdWxlciA9IGV4cG9ydHMyLmFuaW1hdGlvbkZyYW1lID0gZXhwb3J0czIucXVldWVTY2hlZHVsZXIgPSBleHBvcnRzMi5xdWV1ZSA9IGV4cG9ydHMyLmFzeW5jU2NoZWR1bGVyID0gZXhwb3J0czIuYXN5bmMgPSBleHBvcnRzMi5hc2FwU2NoZWR1bGVyID0gZXhwb3J0czIuYXNhcCA9IGV4cG9ydHMyLkFzeW5jU3ViamVjdCA9IGV4cG9ydHMyLlJlcGxheVN1YmplY3QgPSBleHBvcnRzMi5CZWhhdmlvclN1YmplY3QgPSBleHBvcnRzMi5TdWJqZWN0ID0gZXhwb3J0czIuYW5pbWF0aW9uRnJhbWVzID0gZXhwb3J0czIub2JzZXJ2YWJsZSA9IGV4cG9ydHMyLkNvbm5lY3RhYmxlT2JzZXJ2YWJsZSA9IGV4cG9ydHMyLk9ic2VydmFibGUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi5maWx0ZXIgPSBleHBvcnRzMi5leHBhbmQgPSBleHBvcnRzMi5leGhhdXN0TWFwID0gZXhwb3J0czIuZXhoYXVzdEFsbCA9IGV4cG9ydHMyLmV4aGF1c3QgPSBleHBvcnRzMi5ldmVyeSA9IGV4cG9ydHMyLmVuZFdpdGggPSBleHBvcnRzMi5lbGVtZW50QXQgPSBleHBvcnRzMi5kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCA9IGV4cG9ydHMyLmRpc3RpbmN0VW50aWxDaGFuZ2VkID0gZXhwb3J0czIuZGlzdGluY3QgPSBleHBvcnRzMi5kZW1hdGVyaWFsaXplID0gZXhwb3J0czIuZGVsYXlXaGVuID0gZXhwb3J0czIuZGVsYXkgPSBleHBvcnRzMi5kZWZhdWx0SWZFbXB0eSA9IGV4cG9ydHMyLmRlYm91bmNlVGltZSA9IGV4cG9ydHMyLmRlYm91bmNlID0gZXhwb3J0czIuY291bnQgPSBleHBvcnRzMi5jb25uZWN0ID0gZXhwb3J0czIuY29uY2F0V2l0aCA9IGV4cG9ydHMyLmNvbmNhdE1hcFRvID0gZXhwb3J0czIuY29uY2F0TWFwID0gZXhwb3J0czIuY29uY2F0QWxsID0gZXhwb3J0czIuY29tYmluZUxhdGVzdFdpdGggPSBleHBvcnRzMi5jb21iaW5lTGF0ZXN0QWxsID0gZXhwb3J0czIuY29tYmluZUFsbCA9IGV4cG9ydHMyLmNhdGNoRXJyb3IgPSBleHBvcnRzMi5idWZmZXJXaGVuID0gZXhwb3J0czIuYnVmZmVyVG9nZ2xlID0gZXhwb3J0czIuYnVmZmVyVGltZSA9IGV4cG9ydHMyLmJ1ZmZlckNvdW50ID0gZXhwb3J0czIuYnVmZmVyID0gZXhwb3J0czIuYXVkaXRUaW1lID0gZXhwb3J0czIuYXVkaXQgPSBleHBvcnRzMi5jb25maWcgPSBleHBvcnRzMi5ORVZFUiA9IGV4cG9ydHMyLkVNUFRZID0gZXhwb3J0czIuc2NoZWR1bGVkID0gZXhwb3J0czIuemlwID0gZXhwb3J0czIudXNpbmcgPSBleHBvcnRzMi50aW1lciA9IGV4cG9ydHMyLnRocm93RXJyb3IgPSBleHBvcnRzMi5yYW5nZSA9IGV4cG9ydHMyLnJhY2UgPSBleHBvcnRzMi5wYXJ0aXRpb24gPSBleHBvcnRzMi5wYWlycyA9IGV4cG9ydHMyLm9uRXJyb3JSZXN1bWVOZXh0ID0gZXhwb3J0czIub2YgPSBleHBvcnRzMi5uZXZlciA9IGV4cG9ydHMyLm1lcmdlID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3dpdGNoTWFwID0gZXhwb3J0czIuc3dpdGNoQWxsID0gZXhwb3J0czIuc3Vic2NyaWJlT24gPSBleHBvcnRzMi5zdGFydFdpdGggPSBleHBvcnRzMi5za2lwV2hpbGUgPSBleHBvcnRzMi5za2lwVW50aWwgPSBleHBvcnRzMi5za2lwTGFzdCA9IGV4cG9ydHMyLnNraXAgPSBleHBvcnRzMi5zaW5nbGUgPSBleHBvcnRzMi5zaGFyZVJlcGxheSA9IGV4cG9ydHMyLnNoYXJlID0gZXhwb3J0czIuc2VxdWVuY2VFcXVhbCA9IGV4cG9ydHMyLnNjYW4gPSBleHBvcnRzMi5zYW1wbGVUaW1lID0gZXhwb3J0czIuc2FtcGxlID0gZXhwb3J0czIucmVmQ291bnQgPSBleHBvcnRzMi5yZXRyeVdoZW4gPSBleHBvcnRzMi5yZXRyeSA9IGV4cG9ydHMyLnJlcGVhdFdoZW4gPSBleHBvcnRzMi5yZXBlYXQgPSBleHBvcnRzMi5yZWR1Y2UgPSBleHBvcnRzMi5yYWNlV2l0aCA9IGV4cG9ydHMyLnB1Ymxpc2hSZXBsYXkgPSBleHBvcnRzMi5wdWJsaXNoTGFzdCA9IGV4cG9ydHMyLnB1Ymxpc2hCZWhhdmlvciA9IGV4cG9ydHMyLnB1Ymxpc2ggPSBleHBvcnRzMi5wbHVjayA9IGV4cG9ydHMyLnBhaXJ3aXNlID0gZXhwb3J0czIub25FcnJvclJlc3VtZU5leHRXaXRoID0gZXhwb3J0czIub2JzZXJ2ZU9uID0gZXhwb3J0czIubXVsdGljYXN0ID0gZXhwb3J0czIubWluID0gZXhwb3J0czIubWVyZ2VXaXRoID0gZXhwb3J0czIubWVyZ2VTY2FuID0gZXhwb3J0czIubWVyZ2VNYXBUbyA9IGV4cG9ydHMyLm1lcmdlTWFwID0gZXhwb3J0czIuZmxhdE1hcCA9IGV4cG9ydHMyLm1lcmdlQWxsID0gZXhwb3J0czIubWF4ID0gZXhwb3J0czIubWF0ZXJpYWxpemUgPSBleHBvcnRzMi5tYXBUbyA9IGV4cG9ydHMyLm1hcCA9IGV4cG9ydHMyLmxhc3QgPSBleHBvcnRzMi5pc0VtcHR5ID0gZXhwb3J0czIuaWdub3JlRWxlbWVudHMgPSBleHBvcnRzMi5ncm91cEJ5ID0gZXhwb3J0czIuZmlyc3QgPSBleHBvcnRzMi5maW5kSW5kZXggPSBleHBvcnRzMi5maW5kID0gZXhwb3J0czIuZmluYWxpemUgPSB2b2lkIDA7CiAgICBleHBvcnRzMi56aXBXaXRoID0gZXhwb3J0czIuemlwQWxsID0gZXhwb3J0czIud2l0aExhdGVzdEZyb20gPSBleHBvcnRzMi53aW5kb3dXaGVuID0gZXhwb3J0czIud2luZG93VG9nZ2xlID0gZXhwb3J0czIud2luZG93VGltZSA9IGV4cG9ydHMyLndpbmRvd0NvdW50ID0gZXhwb3J0czIud2luZG93ID0gZXhwb3J0czIudG9BcnJheSA9IGV4cG9ydHMyLnRpbWVzdGFtcCA9IGV4cG9ydHMyLnRpbWVvdXRXaXRoID0gZXhwb3J0czIudGltZW91dCA9IGV4cG9ydHMyLnRpbWVJbnRlcnZhbCA9IGV4cG9ydHMyLnRocm93SWZFbXB0eSA9IGV4cG9ydHMyLnRocm90dGxlVGltZSA9IGV4cG9ydHMyLnRocm90dGxlID0gZXhwb3J0czIudGFwID0gZXhwb3J0czIudGFrZVdoaWxlID0gZXhwb3J0czIudGFrZVVudGlsID0gZXhwb3J0czIudGFrZUxhc3QgPSBleHBvcnRzMi50YWtlID0gZXhwb3J0czIuc3dpdGNoU2NhbiA9IGV4cG9ydHMyLnN3aXRjaE1hcFRvID0gdm9pZCAwOwogICAgdmFyIE9ic2VydmFibGVfMSA9IHJlcXVpcmVfT2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiT2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9ic2VydmFibGVfMS5PYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBDb25uZWN0YWJsZU9ic2VydmFibGVfMSA9IHJlcXVpcmVfQ29ubmVjdGFibGVPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJDb25uZWN0YWJsZU9ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBDb25uZWN0YWJsZU9ic2VydmFibGVfMS5Db25uZWN0YWJsZU9ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIG9ic2VydmFibGVfMSA9IHJlcXVpcmVfb2JzZXJ2YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2JzZXJ2YWJsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9ic2VydmFibGVfMS5vYnNlcnZhYmxlOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZXNfMSA9IHJlcXVpcmVfYW5pbWF0aW9uRnJhbWVzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhbmltYXRpb25GcmFtZXMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZXNfMS5hbmltYXRpb25GcmFtZXM7CiAgICB9IH0pOwogICAgdmFyIFN1YmplY3RfMSA9IHJlcXVpcmVfU3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YmplY3RfMS5TdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBCZWhhdmlvclN1YmplY3RfMSA9IHJlcXVpcmVfQmVoYXZpb3JTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJCZWhhdmlvclN1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBCZWhhdmlvclN1YmplY3RfMS5CZWhhdmlvclN1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIFJlcGxheVN1YmplY3RfMSA9IHJlcXVpcmVfUmVwbGF5U3ViamVjdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiUmVwbGF5U3ViamVjdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFJlcGxheVN1YmplY3RfMS5SZXBsYXlTdWJqZWN0OwogICAgfSB9KTsKICAgIHZhciBBc3luY1N1YmplY3RfMSA9IHJlcXVpcmVfQXN5bmNTdWJqZWN0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJBc3luY1N1YmplY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBc3luY1N1YmplY3RfMS5Bc3luY1N1YmplY3Q7CiAgICB9IH0pOwogICAgdmFyIGFzYXBfMSA9IHJlcXVpcmVfYXNhcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYXNhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzYXBfMS5hc2FwOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzYXBTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhc2FwXzEuYXNhcFNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgYXN5bmNfMSA9IHJlcXVpcmVfYXN5bmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFzeW5jIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYXN5bmNfMS5hc3luYzsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhc3luY1NjaGVkdWxlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGFzeW5jXzEuYXN5bmNTY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIHF1ZXVlXzEgPSByZXF1aXJlX3F1ZXVlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJxdWV1ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHF1ZXVlXzEucXVldWU7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicXVldWVTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBxdWV1ZV8xLnF1ZXVlU2NoZWR1bGVyOwogICAgfSB9KTsKICAgIHZhciBhbmltYXRpb25GcmFtZV8xID0gcmVxdWlyZV9hbmltYXRpb25GcmFtZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYW5pbWF0aW9uRnJhbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBhbmltYXRpb25GcmFtZV8xLmFuaW1hdGlvbkZyYW1lOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImFuaW1hdGlvbkZyYW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYW5pbWF0aW9uRnJhbWVfMS5hbmltYXRpb25GcmFtZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICB2YXIgVmlydHVhbFRpbWVTY2hlZHVsZXJfMSA9IHJlcXVpcmVfVmlydHVhbFRpbWVTY2hlZHVsZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlZpcnR1YWxUaW1lU2NoZWR1bGVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsVGltZVNjaGVkdWxlcjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJWaXJ0dWFsQWN0aW9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gVmlydHVhbFRpbWVTY2hlZHVsZXJfMS5WaXJ0dWFsQWN0aW9uOwogICAgfSB9KTsKICAgIHZhciBTY2hlZHVsZXJfMSA9IHJlcXVpcmVfU2NoZWR1bGVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTY2hlZHVsZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBTY2hlZHVsZXJfMS5TY2hlZHVsZXI7CiAgICB9IH0pOwogICAgdmFyIFN1YnNjcmlwdGlvbl8xID0gcmVxdWlyZV9TdWJzY3JpcHRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlN1YnNjcmlwdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvbl8xLlN1YnNjcmlwdGlvbjsKICAgIH0gfSk7CiAgICB2YXIgU3Vic2NyaWJlcl8xID0gcmVxdWlyZV9TdWJzY3JpYmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJTdWJzY3JpYmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gU3Vic2NyaWJlcl8xLlN1YnNjcmliZXI7CiAgICB9IH0pOwogICAgdmFyIE5vdGlmaWNhdGlvbl8xID0gcmVxdWlyZV9Ob3RpZmljYXRpb24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIk5vdGlmaWNhdGlvbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbl8xLk5vdGlmaWNhdGlvbjsKICAgIH0gfSk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RpZmljYXRpb25LaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90aWZpY2F0aW9uXzEuTm90aWZpY2F0aW9uS2luZDsKICAgIH0gfSk7CiAgICB2YXIgcGlwZV8xID0gcmVxdWlyZV9waXBlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwaXBlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGlwZV8xLnBpcGU7CiAgICB9IH0pOwogICAgdmFyIG5vb3BfMSA9IHJlcXVpcmVfbm9vcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibm9vcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5vb3BfMS5ub29wOwogICAgfSB9KTsKICAgIHZhciBpZGVudGl0eV8xID0gcmVxdWlyZV9pZGVudGl0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWRlbnRpdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpZGVudGl0eV8xLmlkZW50aXR5OwogICAgfSB9KTsKICAgIHZhciBpc09ic2VydmFibGVfMSA9IHJlcXVpcmVfaXNPYnNlcnZhYmxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpc09ic2VydmFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpc09ic2VydmFibGVfMS5pc09ic2VydmFibGU7CiAgICB9IH0pOwogICAgdmFyIGxhc3RWYWx1ZUZyb21fMSA9IHJlcXVpcmVfbGFzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibGFzdFZhbHVlRnJvbSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGxhc3RWYWx1ZUZyb21fMS5sYXN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBmaXJzdFZhbHVlRnJvbV8xID0gcmVxdWlyZV9maXJzdFZhbHVlRnJvbSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmlyc3RWYWx1ZUZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbV8xLmZpcnN0VmFsdWVGcm9tOwogICAgfSB9KTsKICAgIHZhciBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xID0gcmVxdWlyZV9Bcmd1bWVudE91dE9mUmFuZ2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBBcmd1bWVudE91dE9mUmFuZ2VFcnJvcl8xLkFyZ3VtZW50T3V0T2ZSYW5nZUVycm9yOwogICAgfSB9KTsKICAgIHZhciBFbXB0eUVycm9yXzEgPSByZXF1aXJlX0VtcHR5RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIkVtcHR5RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBFbXB0eUVycm9yXzEuRW1wdHlFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgTm90Rm91bmRFcnJvcl8xID0gcmVxdWlyZV9Ob3RGb3VuZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJOb3RGb3VuZEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gTm90Rm91bmRFcnJvcl8xLk5vdEZvdW5kRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEgPSByZXF1aXJlX09iamVjdFVuc3Vic2NyaWJlZEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIE9iamVjdFVuc3Vic2NyaWJlZEVycm9yXzEuT2JqZWN0VW5zdWJzY3JpYmVkRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFNlcXVlbmNlRXJyb3JfMSA9IHJlcXVpcmVfU2VxdWVuY2VFcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiU2VxdWVuY2VFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFNlcXVlbmNlRXJyb3JfMS5TZXF1ZW5jZUVycm9yOwogICAgfSB9KTsKICAgIHZhciB0aW1lb3V0XzEgPSByZXF1aXJlX3RpbWVvdXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlRpbWVvdXRFcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRfMS5UaW1lb3V0RXJyb3I7CiAgICB9IH0pOwogICAgdmFyIFVuc3Vic2NyaXB0aW9uRXJyb3JfMSA9IHJlcXVpcmVfVW5zdWJzY3JpcHRpb25FcnJvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiVW5zdWJzY3JpcHRpb25FcnJvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIFVuc3Vic2NyaXB0aW9uRXJyb3JfMS5VbnN1YnNjcmlwdGlvbkVycm9yOwogICAgfSB9KTsKICAgIHZhciBiaW5kQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZENhbGxiYWNrKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJiaW5kQ2FsbGJhY2siLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBiaW5kQ2FsbGJhY2tfMS5iaW5kQ2FsbGJhY2s7CiAgICB9IH0pOwogICAgdmFyIGJpbmROb2RlQ2FsbGJhY2tfMSA9IHJlcXVpcmVfYmluZE5vZGVDYWxsYmFjaygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYmluZE5vZGVDYWxsYmFjayIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGJpbmROb2RlQ2FsbGJhY2tfMS5iaW5kTm9kZUNhbGxiYWNrOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0XzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0XzEuY29tYmluZUxhdGVzdDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0XzEgPSByZXF1aXJlX2NvbmNhdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0XzEuY29uY2F0OwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0YWJsZV8xID0gcmVxdWlyZV9jb25uZWN0YWJsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29ubmVjdGFibGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0YWJsZV8xLmNvbm5lY3RhYmxlOwogICAgfSB9KTsKICAgIHZhciBkZWZlcl8xID0gcmVxdWlyZV9kZWZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZlcl8xLmRlZmVyOwogICAgfSB9KTsKICAgIHZhciBlbXB0eV8xID0gcmVxdWlyZV9lbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbXB0eV8xLmVtcHR5OwogICAgfSB9KTsKICAgIHZhciBmb3JrSm9pbl8xID0gcmVxdWlyZV9mb3JrSm9pbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZm9ya0pvaW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmb3JrSm9pbl8xLmZvcmtKb2luOwogICAgfSB9KTsKICAgIHZhciBmcm9tXzEgPSByZXF1aXJlX2Zyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb20iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tXzEuZnJvbTsKICAgIH0gfSk7CiAgICB2YXIgZnJvbUV2ZW50XzEgPSByZXF1aXJlX2Zyb21FdmVudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZnJvbUV2ZW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZnJvbUV2ZW50XzEuZnJvbUV2ZW50OwogICAgfSB9KTsKICAgIHZhciBmcm9tRXZlbnRQYXR0ZXJuXzEgPSByZXF1aXJlX2Zyb21FdmVudFBhdHRlcm4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZyb21FdmVudFBhdHRlcm4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBmcm9tRXZlbnRQYXR0ZXJuXzEuZnJvbUV2ZW50UGF0dGVybjsKICAgIH0gfSk7CiAgICB2YXIgZ2VuZXJhdGVfMSA9IHJlcXVpcmVfZ2VuZXJhdGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImdlbmVyYXRlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ2VuZXJhdGVfMS5nZW5lcmF0ZTsKICAgIH0gfSk7CiAgICB2YXIgaWlmXzEgPSByZXF1aXJlX2lpZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaWlmIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaWlmXzEuaWlmOwogICAgfSB9KTsKICAgIHZhciBpbnRlcnZhbF8xID0gcmVxdWlyZV9pbnRlcnZhbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaW50ZXJ2YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBpbnRlcnZhbF8xLmludGVydmFsOwogICAgfSB9KTsKICAgIHZhciBtZXJnZV8xID0gcmVxdWlyZV9tZXJnZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZV8xLm1lcmdlOwogICAgfSB9KTsKICAgIHZhciBuZXZlcl8xID0gcmVxdWlyZV9uZXZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibmV2ZXIiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBuZXZlcl8xLm5ldmVyOwogICAgfSB9KTsKICAgIHZhciBvZl8xID0gcmVxdWlyZV9vZigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib2YiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvZl8xLm9mOwogICAgfSB9KTsKICAgIHZhciBvbkVycm9yUmVzdW1lTmV4dF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAib25FcnJvclJlc3VtZU5leHQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvbkVycm9yUmVzdW1lTmV4dF8xLm9uRXJyb3JSZXN1bWVOZXh0OwogICAgfSB9KTsKICAgIHZhciBwYWlyc18xID0gcmVxdWlyZV9wYWlycygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGFpcnMiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYWlyc18xLnBhaXJzOwogICAgfSB9KTsKICAgIHZhciBwYXJ0aXRpb25fMSA9IHJlcXVpcmVfcGFydGl0aW9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwYXJ0aXRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBwYXJ0aXRpb25fMS5wYXJ0aXRpb247CiAgICB9IH0pOwogICAgdmFyIHJhY2VfMSA9IHJlcXVpcmVfcmFjZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VfMS5yYWNlOwogICAgfSB9KTsKICAgIHZhciByYW5nZV8xID0gcmVxdWlyZV9yYW5nZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmFuZ2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByYW5nZV8xLnJhbmdlOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0Vycm9yXzEgPSByZXF1aXJlX3Rocm93RXJyb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm93RXJyb3IiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0Vycm9yXzEudGhyb3dFcnJvcjsKICAgIH0gfSk7CiAgICB2YXIgdGltZXJfMSA9IHJlcXVpcmVfdGltZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZXJfMS50aW1lcjsKICAgIH0gfSk7CiAgICB2YXIgdXNpbmdfMSA9IHJlcXVpcmVfdXNpbmcoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInVzaW5nIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdXNpbmdfMS51c2luZzsKICAgIH0gfSk7CiAgICB2YXIgemlwXzEgPSByZXF1aXJlX3ppcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwXzEuemlwOwogICAgfSB9KTsKICAgIHZhciBzY2hlZHVsZWRfMSA9IHJlcXVpcmVfc2NoZWR1bGVkKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzY2hlZHVsZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzY2hlZHVsZWRfMS5zY2hlZHVsZWQ7CiAgICB9IH0pOwogICAgdmFyIGVtcHR5XzIgPSByZXF1aXJlX2VtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJFTVBUWSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVtcHR5XzIuRU1QVFk7CiAgICB9IH0pOwogICAgdmFyIG5ldmVyXzIgPSByZXF1aXJlX25ldmVyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJORVZFUiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG5ldmVyXzIuTkVWRVI7CiAgICB9IH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHlwZXMyKCksIGV4cG9ydHMyKTsKICAgIHZhciBjb25maWdfMSA9IHJlcXVpcmVfY29uZmlnKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25maWciLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25maWdfMS5jb25maWc7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0XzEgPSByZXF1aXJlX2F1ZGl0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJhdWRpdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0XzEuYXVkaXQ7CiAgICB9IH0pOwogICAgdmFyIGF1ZGl0VGltZV8xID0gcmVxdWlyZV9hdWRpdFRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImF1ZGl0VGltZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGF1ZGl0VGltZV8xLmF1ZGl0VGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyXzEgPSByZXF1aXJlX2J1ZmZlcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyXzEuYnVmZmVyOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJDb3VudF8xID0gcmVxdWlyZV9idWZmZXJDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyQ291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJDb3VudF8xLmJ1ZmZlckNvdW50OwogICAgfSB9KTsKICAgIHZhciBidWZmZXJUaW1lXzEgPSByZXF1aXJlX2J1ZmZlclRpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlclRpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJUaW1lXzEuYnVmZmVyVGltZTsKICAgIH0gfSk7CiAgICB2YXIgYnVmZmVyVG9nZ2xlXzEgPSByZXF1aXJlX2J1ZmZlclRvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiYnVmZmVyVG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gYnVmZmVyVG9nZ2xlXzEuYnVmZmVyVG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciBidWZmZXJXaGVuXzEgPSByZXF1aXJlX2J1ZmZlcldoZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImJ1ZmZlcldoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBidWZmZXJXaGVuXzEuYnVmZmVyV2hlbjsKICAgIH0gfSk7CiAgICB2YXIgY2F0Y2hFcnJvcl8xID0gcmVxdWlyZV9jYXRjaEVycm9yKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjYXRjaEVycm9yIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY2F0Y2hFcnJvcl8xLmNhdGNoRXJyb3I7CiAgICB9IH0pOwogICAgdmFyIGNvbWJpbmVBbGxfMSA9IHJlcXVpcmVfY29tYmluZUFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29tYmluZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbWJpbmVBbGxfMS5jb21iaW5lQWxsOwogICAgfSB9KTsKICAgIHZhciBjb21iaW5lTGF0ZXN0QWxsXzEgPSByZXF1aXJlX2NvbWJpbmVMYXRlc3RBbGwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RBbGwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0QWxsXzEuY29tYmluZUxhdGVzdEFsbDsKICAgIH0gfSk7CiAgICB2YXIgY29tYmluZUxhdGVzdFdpdGhfMSA9IHJlcXVpcmVfY29tYmluZUxhdGVzdFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbWJpbmVMYXRlc3RXaXRoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29tYmluZUxhdGVzdFdpdGhfMS5jb21iaW5lTGF0ZXN0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgY29uY2F0QWxsXzEgPSByZXF1aXJlX2NvbmNhdEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29uY2F0QWxsXzEuY29uY2F0QWxsOwogICAgfSB9KTsKICAgIHZhciBjb25jYXRNYXBfMSA9IHJlcXVpcmVfY29uY2F0TWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25jYXRNYXBfMS5jb25jYXRNYXA7CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdE1hcFRvXzEgPSByZXF1aXJlX2NvbmNhdE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjb25jYXRNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdE1hcFRvXzEuY29uY2F0TWFwVG87CiAgICB9IH0pOwogICAgdmFyIGNvbmNhdFdpdGhfMSA9IHJlcXVpcmVfY29uY2F0V2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiY29uY2F0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvbmNhdFdpdGhfMS5jb25jYXRXaXRoOwogICAgfSB9KTsKICAgIHZhciBjb25uZWN0XzEgPSByZXF1aXJlX2Nvbm5lY3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvbm5lY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb25uZWN0XzEuY29ubmVjdDsKICAgIH0gfSk7CiAgICB2YXIgY291bnRfMSA9IHJlcXVpcmVfY291bnQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImNvdW50IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY291bnRfMS5jb3VudDsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VfMSA9IHJlcXVpcmVfZGVib3VuY2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImRlYm91bmNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VfMS5kZWJvdW5jZTsKICAgIH0gfSk7CiAgICB2YXIgZGVib3VuY2VUaW1lXzEgPSByZXF1aXJlX2RlYm91bmNlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVib3VuY2VUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZGVib3VuY2VUaW1lXzEuZGVib3VuY2VUaW1lOwogICAgfSB9KTsKICAgIHZhciBkZWZhdWx0SWZFbXB0eV8xID0gcmVxdWlyZV9kZWZhdWx0SWZFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVmYXVsdElmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWZhdWx0SWZFbXB0eV8xLmRlZmF1bHRJZkVtcHR5OwogICAgfSB9KTsKICAgIHZhciBkZWxheV8xID0gcmVxdWlyZV9kZWxheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVsYXkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheV8xLmRlbGF5OwogICAgfSB9KTsKICAgIHZhciBkZWxheVdoZW5fMSA9IHJlcXVpcmVfZGVsYXlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJkZWxheVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkZWxheVdoZW5fMS5kZWxheVdoZW47CiAgICB9IH0pOwogICAgdmFyIGRlbWF0ZXJpYWxpemVfMSA9IHJlcXVpcmVfZGVtYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGVtYXRlcmlhbGl6ZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGRlbWF0ZXJpYWxpemVfMS5kZW1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdF8xID0gcmVxdWlyZV9kaXN0aW5jdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdF8xLmRpc3RpbmN0OwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsQ2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbENoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsQ2hhbmdlZF8xLmRpc3RpbmN0VW50aWxDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xID0gcmVxdWlyZV9kaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZGlzdGluY3RVbnRpbEtleUNoYW5nZWQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZF8xLmRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkOwogICAgfSB9KTsKICAgIHZhciBlbGVtZW50QXRfMSA9IHJlcXVpcmVfZWxlbWVudEF0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJlbGVtZW50QXQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBlbGVtZW50QXRfMS5lbGVtZW50QXQ7CiAgICB9IH0pOwogICAgdmFyIGVuZFdpdGhfMSA9IHJlcXVpcmVfZW5kV2l0aCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZW5kV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGVuZFdpdGhfMS5lbmRXaXRoOwogICAgfSB9KTsKICAgIHZhciBldmVyeV8xID0gcmVxdWlyZV9ldmVyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXZlcnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBldmVyeV8xLmV2ZXJ5OwogICAgfSB9KTsKICAgIHZhciBleGhhdXN0XzEgPSByZXF1aXJlX2V4aGF1c3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImV4aGF1c3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGhhdXN0XzEuZXhoYXVzdDsKICAgIH0gfSk7CiAgICB2YXIgZXhoYXVzdEFsbF8xID0gcmVxdWlyZV9leGhhdXN0QWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleGhhdXN0QWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZXhoYXVzdEFsbF8xLmV4aGF1c3RBbGw7CiAgICB9IH0pOwogICAgdmFyIGV4aGF1c3RNYXBfMSA9IHJlcXVpcmVfZXhoYXVzdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZXhoYXVzdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGV4aGF1c3RNYXBfMS5leGhhdXN0TWFwOwogICAgfSB9KTsKICAgIHZhciBleHBhbmRfMSA9IHJlcXVpcmVfZXhwYW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJleHBhbmQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleHBhbmRfMS5leHBhbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbHRlcl8xID0gcmVxdWlyZV9maWx0ZXIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbHRlciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbHRlcl8xLmZpbHRlcjsKICAgIH0gfSk7CiAgICB2YXIgZmluYWxpemVfMSA9IHJlcXVpcmVfZmluYWxpemUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmFsaXplIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluYWxpemVfMS5maW5hbGl6ZTsKICAgIH0gfSk7CiAgICB2YXIgZmluZF8xID0gcmVxdWlyZV9maW5kKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJmaW5kIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmluZF8xLmZpbmQ7CiAgICB9IH0pOwogICAgdmFyIGZpbmRJbmRleF8xID0gcmVxdWlyZV9maW5kSW5kZXgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpbmRJbmRleCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZpbmRJbmRleF8xLmZpbmRJbmRleDsKICAgIH0gfSk7CiAgICB2YXIgZmlyc3RfMSA9IHJlcXVpcmVfZmlyc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImZpcnN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZmlyc3RfMS5maXJzdDsKICAgIH0gfSk7CiAgICB2YXIgZ3JvdXBCeV8xID0gcmVxdWlyZV9ncm91cEJ5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJncm91cEJ5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gZ3JvdXBCeV8xLmdyb3VwQnk7CiAgICB9IH0pOwogICAgdmFyIGlnbm9yZUVsZW1lbnRzXzEgPSByZXF1aXJlX2lnbm9yZUVsZW1lbnRzKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJpZ25vcmVFbGVtZW50cyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlnbm9yZUVsZW1lbnRzXzEuaWdub3JlRWxlbWVudHM7CiAgICB9IH0pOwogICAgdmFyIGlzRW1wdHlfMSA9IHJlcXVpcmVfaXNFbXB0eSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaXNFbXB0eSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGlzRW1wdHlfMS5pc0VtcHR5OwogICAgfSB9KTsKICAgIHZhciBsYXN0XzEgPSByZXF1aXJlX2xhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgImxhc3QiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBsYXN0XzEubGFzdDsKICAgIH0gfSk7CiAgICB2YXIgbWFwXzEgPSByZXF1aXJlX21hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWFwXzEubWFwOwogICAgfSB9KTsKICAgIHZhciBtYXBUb18xID0gcmVxdWlyZV9tYXBUbygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXBUb18xLm1hcFRvOwogICAgfSB9KTsKICAgIHZhciBtYXRlcmlhbGl6ZV8xID0gcmVxdWlyZV9tYXRlcmlhbGl6ZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWF0ZXJpYWxpemUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXRlcmlhbGl6ZV8xLm1hdGVyaWFsaXplOwogICAgfSB9KTsKICAgIHZhciBtYXhfMSA9IHJlcXVpcmVfbWF4KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtYXgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtYXhfMS5tYXg7CiAgICB9IH0pOwogICAgdmFyIG1lcmdlQWxsXzEgPSByZXF1aXJlX21lcmdlQWxsKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZUFsbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lcmdlQWxsXzEubWVyZ2VBbGw7CiAgICB9IH0pOwogICAgdmFyIGZsYXRNYXBfMSA9IHJlcXVpcmVfZmxhdE1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiZmxhdE1hcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGZsYXRNYXBfMS5mbGF0TWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcF8xID0gcmVxdWlyZV9tZXJnZU1hcCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcF8xLm1lcmdlTWFwOwogICAgfSB9KTsKICAgIHZhciBtZXJnZU1hcFRvXzEgPSByZXF1aXJlX21lcmdlTWFwVG8oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1lcmdlTWFwVG8iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZU1hcFRvXzEubWVyZ2VNYXBUbzsKICAgIH0gfSk7CiAgICB2YXIgbWVyZ2VTY2FuXzEgPSByZXF1aXJlX21lcmdlU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibWVyZ2VTY2FuIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWVyZ2VTY2FuXzEubWVyZ2VTY2FuOwogICAgfSB9KTsKICAgIHZhciBtZXJnZVdpdGhfMSA9IHJlcXVpcmVfbWVyZ2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJtZXJnZVdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBtZXJnZVdpdGhfMS5tZXJnZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIG1pbl8xID0gcmVxdWlyZV9taW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm1pbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1pbl8xLm1pbjsKICAgIH0gfSk7CiAgICB2YXIgbXVsdGljYXN0XzEgPSByZXF1aXJlX211bHRpY2FzdCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAibXVsdGljYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbXVsdGljYXN0XzEubXVsdGljYXN0OwogICAgfSB9KTsKICAgIHZhciBvYnNlcnZlT25fMSA9IHJlcXVpcmVfb2JzZXJ2ZU9uKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJvYnNlcnZlT24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBvYnNlcnZlT25fMS5vYnNlcnZlT247CiAgICB9IH0pOwogICAgdmFyIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xID0gcmVxdWlyZV9vbkVycm9yUmVzdW1lTmV4dFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIm9uRXJyb3JSZXN1bWVOZXh0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG9uRXJyb3JSZXN1bWVOZXh0V2l0aF8xLm9uRXJyb3JSZXN1bWVOZXh0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgcGFpcndpc2VfMSA9IHJlcXVpcmVfcGFpcndpc2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBhaXJ3aXNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGFpcndpc2VfMS5wYWlyd2lzZTsKICAgIH0gfSk7CiAgICB2YXIgcGx1Y2tfMSA9IHJlcXVpcmVfcGx1Y2soKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInBsdWNrIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcGx1Y2tfMS5wbHVjazsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaF8xID0gcmVxdWlyZV9wdWJsaXNoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaF8xLnB1Ymxpc2g7CiAgICB9IH0pOwogICAgdmFyIHB1Ymxpc2hCZWhhdmlvcl8xID0gcmVxdWlyZV9wdWJsaXNoQmVoYXZpb3IoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hCZWhhdmlvciIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHB1Ymxpc2hCZWhhdmlvcl8xLnB1Ymxpc2hCZWhhdmlvcjsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaExhc3RfMSA9IHJlcXVpcmVfcHVibGlzaExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInB1Ymxpc2hMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaExhc3RfMS5wdWJsaXNoTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgcHVibGlzaFJlcGxheV8xID0gcmVxdWlyZV9wdWJsaXNoUmVwbGF5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJwdWJsaXNoUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gcHVibGlzaFJlcGxheV8xLnB1Ymxpc2hSZXBsYXk7CiAgICB9IH0pOwogICAgdmFyIHJhY2VXaXRoXzEgPSByZXF1aXJlX3JhY2VXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyYWNlV2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJhY2VXaXRoXzEucmFjZVdpdGg7CiAgICB9IH0pOwogICAgdmFyIHJlZHVjZV8xID0gcmVxdWlyZV9yZWR1Y2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlZHVjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZHVjZV8xLnJlZHVjZTsKICAgIH0gfSk7CiAgICB2YXIgcmVwZWF0XzEyID0gcmVxdWlyZV9yZXBlYXQoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInJlcGVhdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdF8xMi5yZXBlYXQ7CiAgICB9IH0pOwogICAgdmFyIHJlcGVhdFdoZW5fMSA9IHJlcXVpcmVfcmVwZWF0V2hlbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVwZWF0V2hlbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlcGVhdFdoZW5fMS5yZXBlYXRXaGVuOwogICAgfSB9KTsKICAgIHZhciByZXRyeV8xID0gcmVxdWlyZV9yZXRyeSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmV0cnkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeV8xLnJldHJ5OwogICAgfSB9KTsKICAgIHZhciByZXRyeVdoZW5fMSA9IHJlcXVpcmVfcmV0cnlXaGVuKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZXRyeVdoZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiByZXRyeVdoZW5fMS5yZXRyeVdoZW47CiAgICB9IH0pOwogICAgdmFyIHJlZkNvdW50XzEgPSByZXF1aXJlX3JlZkNvdW50KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJyZWZDb3VudCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHJlZkNvdW50XzEucmVmQ291bnQ7CiAgICB9IH0pOwogICAgdmFyIHNhbXBsZV8xID0gcmVxdWlyZV9zYW1wbGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNhbXBsZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNhbXBsZV8xLnNhbXBsZTsKICAgIH0gfSk7CiAgICB2YXIgc2FtcGxlVGltZV8xID0gcmVxdWlyZV9zYW1wbGVUaW1lKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzYW1wbGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2FtcGxlVGltZV8xLnNhbXBsZVRpbWU7CiAgICB9IH0pOwogICAgdmFyIHNjYW5fMSA9IHJlcXVpcmVfc2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHNjYW5fMS5zY2FuOwogICAgfSB9KTsKICAgIHZhciBzZXF1ZW5jZUVxdWFsXzEgPSByZXF1aXJlX3NlcXVlbmNlRXF1YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNlcXVlbmNlRXF1YWwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzZXF1ZW5jZUVxdWFsXzEuc2VxdWVuY2VFcXVhbDsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVfMSA9IHJlcXVpcmVfc2hhcmUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVfMS5zaGFyZTsKICAgIH0gfSk7CiAgICB2YXIgc2hhcmVSZXBsYXlfMSA9IHJlcXVpcmVfc2hhcmVSZXBsYXkoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNoYXJlUmVwbGF5IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2hhcmVSZXBsYXlfMS5zaGFyZVJlcGxheTsKICAgIH0gfSk7CiAgICB2YXIgc2luZ2xlXzEgPSByZXF1aXJlX3NpbmdsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2luZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2luZ2xlXzEuc2luZ2xlOwogICAgfSB9KTsKICAgIHZhciBza2lwXzEgPSByZXF1aXJlX3NraXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwXzEuc2tpcDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcExhc3RfMSA9IHJlcXVpcmVfc2tpcExhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInNraXBMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcExhc3RfMS5za2lwTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgc2tpcFVudGlsXzEgPSByZXF1aXJlX3NraXBVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic2tpcFVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc2tpcFVudGlsXzEuc2tpcFVudGlsOwogICAgfSB9KTsKICAgIHZhciBza2lwV2hpbGVfMSA9IHJlcXVpcmVfc2tpcFdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJza2lwV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBza2lwV2hpbGVfMS5za2lwV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHN0YXJ0V2l0aF8xID0gcmVxdWlyZV9zdGFydFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0YXJ0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN0YXJ0V2l0aF8xLnN0YXJ0V2l0aDsKICAgIH0gfSk7CiAgICB2YXIgc3Vic2NyaWJlT25fMSA9IHJlcXVpcmVfc3Vic2NyaWJlT24oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN1YnNjcmliZU9uIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3Vic2NyaWJlT25fMS5zdWJzY3JpYmVPbjsKICAgIH0gfSk7CiAgICB2YXIgc3dpdGNoQWxsXzEgPSByZXF1aXJlX3N3aXRjaEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3dpdGNoQWxsXzEuc3dpdGNoQWxsOwogICAgfSB9KTsKICAgIHZhciBzd2l0Y2hNYXBfMSA9IHJlcXVpcmVfc3dpdGNoTWFwKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXAiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBzd2l0Y2hNYXBfMS5zd2l0Y2hNYXA7CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaE1hcFRvXzEgPSByZXF1aXJlX3N3aXRjaE1hcFRvKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJzd2l0Y2hNYXBUbyIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaE1hcFRvXzEuc3dpdGNoTWFwVG87CiAgICB9IH0pOwogICAgdmFyIHN3aXRjaFNjYW5fMSA9IHJlcXVpcmVfc3dpdGNoU2NhbigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAic3dpdGNoU2NhbiIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHN3aXRjaFNjYW5fMS5zd2l0Y2hTY2FuOwogICAgfSB9KTsKICAgIHZhciB0YWtlXzEgPSByZXF1aXJlX3Rha2UoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2UiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlXzEudGFrZTsKICAgIH0gfSk7CiAgICB2YXIgdGFrZUxhc3RfMSA9IHJlcXVpcmVfdGFrZUxhc3QoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRha2VMYXN0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZUxhc3RfMS50YWtlTGFzdDsKICAgIH0gfSk7CiAgICB2YXIgdGFrZVVudGlsXzEgPSByZXF1aXJlX3Rha2VVbnRpbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGFrZVVudGlsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGFrZVVudGlsXzEudGFrZVVudGlsOwogICAgfSB9KTsKICAgIHZhciB0YWtlV2hpbGVfMSA9IHJlcXVpcmVfdGFrZVdoaWxlKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0YWtlV2hpbGUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0YWtlV2hpbGVfMS50YWtlV2hpbGU7CiAgICB9IH0pOwogICAgdmFyIHRhcF8xID0gcmVxdWlyZV90YXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRhcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRhcF8xLnRhcDsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVfMSA9IHJlcXVpcmVfdGhyb3R0bGUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRocm90dGxlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVfMS50aHJvdHRsZTsKICAgIH0gfSk7CiAgICB2YXIgdGhyb3R0bGVUaW1lXzEgPSByZXF1aXJlX3Rocm90dGxlVGltZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidGhyb3R0bGVUaW1lIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGhyb3R0bGVUaW1lXzEudGhyb3R0bGVUaW1lOwogICAgfSB9KTsKICAgIHZhciB0aHJvd0lmRW1wdHlfMSA9IHJlcXVpcmVfdGhyb3dJZkVtcHR5KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aHJvd0lmRW1wdHkiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0aHJvd0lmRW1wdHlfMS50aHJvd0lmRW1wdHk7CiAgICB9IH0pOwogICAgdmFyIHRpbWVJbnRlcnZhbF8xID0gcmVxdWlyZV90aW1lSW50ZXJ2YWwoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVJbnRlcnZhbCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVJbnRlcnZhbF8xLnRpbWVJbnRlcnZhbDsKICAgIH0gfSk7CiAgICB2YXIgdGltZW91dF8yID0gcmVxdWlyZV90aW1lb3V0KCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gdGltZW91dF8yLnRpbWVvdXQ7CiAgICB9IH0pOwogICAgdmFyIHRpbWVvdXRXaXRoXzEgPSByZXF1aXJlX3RpbWVvdXRXaXRoKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJ0aW1lb3V0V2l0aCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVvdXRXaXRoXzEudGltZW91dFdpdGg7CiAgICB9IH0pOwogICAgdmFyIHRpbWVzdGFtcF8xID0gcmVxdWlyZV90aW1lc3RhbXAoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInRpbWVzdGFtcCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRpbWVzdGFtcF8xLnRpbWVzdGFtcDsKICAgIH0gfSk7CiAgICB2YXIgdG9BcnJheV8xMiA9IHJlcXVpcmVfdG9BcnJheSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAidG9BcnJheSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHRvQXJyYXlfMTIudG9BcnJheTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93XzEgPSByZXF1aXJlX3dpbmRvdygpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93XzEud2luZG93OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dDb3VudF8xID0gcmVxdWlyZV93aW5kb3dDb3VudCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93Q291bnQiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dDb3VudF8xLndpbmRvd0NvdW50OwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dUaW1lXzEgPSByZXF1aXJlX3dpbmRvd1RpbWUoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1RpbWUiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dUaW1lXzEud2luZG93VGltZTsKICAgIH0gfSk7CiAgICB2YXIgd2luZG93VG9nZ2xlXzEgPSByZXF1aXJlX3dpbmRvd1RvZ2dsZSgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAid2luZG93VG9nZ2xlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2luZG93VG9nZ2xlXzEud2luZG93VG9nZ2xlOwogICAgfSB9KTsKICAgIHZhciB3aW5kb3dXaGVuXzEgPSByZXF1aXJlX3dpbmRvd1doZW4oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpbmRvd1doZW4iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB3aW5kb3dXaGVuXzEud2luZG93V2hlbjsKICAgIH0gfSk7CiAgICB2YXIgd2l0aExhdGVzdEZyb21fMSA9IHJlcXVpcmVfd2l0aExhdGVzdEZyb20oKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndpdGhMYXRlc3RGcm9tIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gd2l0aExhdGVzdEZyb21fMS53aXRoTGF0ZXN0RnJvbTsKICAgIH0gfSk7CiAgICB2YXIgemlwQWxsXzEgPSByZXF1aXJlX3ppcEFsbCgpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiemlwQWxsIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gemlwQWxsXzEuemlwQWxsOwogICAgfSB9KTsKICAgIHZhciB6aXBXaXRoXzEgPSByZXF1aXJlX3ppcFdpdGgoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInppcFdpdGgiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB6aXBXaXRoXzEuemlwV2l0aDsKICAgIH0gfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9leGNlcHRpb24uanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlBhdGhJc0ZpbGVFeGNlcHRpb24gPSBleHBvcnRzMi5QYXRoSXNEaXJlY3RvcnlFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVua25vd25FeGNlcHRpb24gPSBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIEJhc2VFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIEVycm9yIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSA9ICIiKSB7CiAgICAgICAgc3VwZXIobWVzc2FnZSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5CYXNlRXhjZXB0aW9uID0gQmFzZUV4Y2VwdGlvbjsKICAgIHZhciBVbmtub3duRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobWVzc2FnZSkgewogICAgICAgIHN1cGVyKG1lc3NhZ2UpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkV4Y2VwdGlvbiA9IFVua25vd25FeGNlcHRpb247CiAgICB2YXIgRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBhbHJlYWR5IGV4aXN0LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbiA9IEZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb247CiAgICB2YXIgUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGRpcmVjdG9yeS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbiA9IFBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbjsKICAgIHZhciBQYXRoSXNGaWxlRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBCYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IocGF0aCkgewogICAgICAgIHN1cGVyKGBQYXRoICIke3BhdGh9IiBpcyBhIGZpbGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoSXNGaWxlRXhjZXB0aW9uID0gUGF0aElzRmlsZUV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xpdGVyYWxzLmpzCnZhciByZXF1aXJlX2xpdGVyYWxzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9saXRlcmFscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIub25lTGluZSA9IG9uZUxpbmU7CiAgICBleHBvcnRzMi5pbmRlbnRCeSA9IGluZGVudEJ5OwogICAgZXhwb3J0czIuc3RyaXBJbmRlbnQgPSBzdHJpcEluZGVudDsKICAgIGV4cG9ydHMyLnN0cmlwSW5kZW50cyA9IHN0cmlwSW5kZW50czsKICAgIGV4cG9ydHMyLnRyaW1OZXdsaW5lcyA9IHRyaW1OZXdsaW5lczsKICAgIGZ1bmN0aW9uIG9uZUxpbmUoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkrL2dtLCAiICIpLnRyaW0oKTsKICAgIH0KICAgIGZ1bmN0aW9uIGluZGVudEJ5KGluZGVudGF0aW9ucykgewogICAgICBsZXQgaSA9ICIiOwogICAgICB3aGlsZSAoaW5kZW50YXRpb25zLS0pIHsKICAgICAgICBpICs9ICIgIjsKICAgICAgfQogICAgICByZXR1cm4gKHN0cmluZ3MzLCAuLi52YWx1ZXMpID0+IHsKICAgICAgICByZXR1cm4gaSArIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpLnJlcGxhY2UoL1xuL2csICJcbiIgKyBpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHN0cmlwSW5kZW50KHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgY29uc3QgZW5kUmVzdWx0ID0gU3RyaW5nLnJhdyhzdHJpbmdzMywgLi4udmFsdWVzKTsKICAgICAgY29uc3QgbWF0Y2ggPSBlbmRSZXN1bHQubWF0Y2goL15bIFx0XSooPz1cUykvZ20pOwogICAgICBpZiAobWF0Y2ggPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gZW5kUmVzdWx0OwogICAgICB9CiAgICAgIGNvbnN0IGluZGVudCA9IE1hdGgubWluKC4uLm1hdGNoLm1hcCgoZWwpID0+IGVsLmxlbmd0aCkpOwogICAgICBjb25zdCByZWdleHAgPSBuZXcgUmVnRXhwKCJeWyBcXHRdeyIgKyBpbmRlbnQgKyAifSIsICJnbSIpOwogICAgICByZXR1cm4gKGluZGVudCA+IDAgPyBlbmRSZXN1bHQucmVwbGFjZShyZWdleHAsICIiKSA6IGVuZFJlc3VsdCkudHJpbSgpOwogICAgfQogICAgZnVuY3Rpb24gc3RyaXBJbmRlbnRzKHN0cmluZ3MzLCAuLi52YWx1ZXMpIHsKICAgICAgcmV0dXJuIFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykuc3BsaXQoIlxuIikubWFwKChsaW5lKSA9PiBsaW5lLnRyaW0oKSkuam9pbigiXG4iKS50cmltKCk7CiAgICB9CiAgICBmdW5jdGlvbiB0cmltTmV3bGluZXMoc3RyaW5nczMsIC4uLnZhbHVlcykgewogICAgICBjb25zdCBlbmRSZXN1bHQgPSBTdHJpbmcucmF3KHN0cmluZ3MzLCAuLi52YWx1ZXMpOwogICAgICByZXR1cm4gZW5kUmVzdWx0LnJlcGxhY2UoL14oPzpccj9cbikrLywgIiIpLnJlcGxhY2UoLyg/OlxyP1xuKD86XHMqKSkkLywgIiIpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvc3RyaW5ncy5qcwp2YXIgcmVxdWlyZV9zdHJpbmdzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9zdHJpbmdzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWNhbWVsaXplID0gZGVjYW1lbGl6ZTsKICAgIGV4cG9ydHMyLmRhc2hlcml6ZSA9IGRhc2hlcml6ZTsKICAgIGV4cG9ydHMyLmNhbWVsaXplID0gY2FtZWxpemU7CiAgICBleHBvcnRzMi5jbGFzc2lmeSA9IGNsYXNzaWZ5OwogICAgZXhwb3J0czIudW5kZXJzY29yZSA9IHVuZGVyc2NvcmU7CiAgICBleHBvcnRzMi5jYXBpdGFsaXplID0gY2FwaXRhbGl6ZTsKICAgIGV4cG9ydHMyLmxldmVuc2h0ZWluID0gbGV2ZW5zaHRlaW47CiAgICB2YXIgU1RSSU5HX0RBU0hFUklaRV9SRUdFWFAgPSAvWyBfXS9nOwogICAgdmFyIFNUUklOR19ERUNBTUVMSVpFX1JFR0VYUCA9IC8oW2EtelxkXSkoW0EtWl0pL2c7CiAgICB2YXIgU1RSSU5HX0NBTUVMSVpFX1JFR0VYUCA9IC8oLXxffFwufFxzKSsoLik/L2c7CiAgICB2YXIgU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEgPSAvKFthLXpcZF0pKFtBLVpdKykvZzsKICAgIHZhciBTVFJJTkdfVU5ERVJTQ09SRV9SRUdFWFBfMiA9IC8tfFxzKy9nOwogICAgZnVuY3Rpb24gZGVjYW1lbGl6ZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX0RFQ0FNRUxJWkVfUkVHRVhQLCAiJDFfJDIiKS50b0xvd2VyQ2FzZSgpOwogICAgfQogICAgZnVuY3Rpb24gZGFzaGVyaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIGRlY2FtZWxpemUoc3RyMikucmVwbGFjZShTVFJJTkdfREFTSEVSSVpFX1JFR0VYUCwgIi0iKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhbWVsaXplKHN0cjIpIHsKICAgICAgcmV0dXJuIHN0cjIucmVwbGFjZShTVFJJTkdfQ0FNRUxJWkVfUkVHRVhQLCAoX21hdGNoLCBfc2VwYXJhdG9yLCBjaHIpID0+IHsKICAgICAgICByZXR1cm4gY2hyID8gY2hyLnRvVXBwZXJDYXNlKCkgOiAiIjsKICAgICAgfSkucmVwbGFjZSgvXihbQS1aXSkvLCAobWF0Y2gpID0+IG1hdGNoLnRvTG93ZXJDYXNlKCkpOwogICAgfQogICAgZnVuY3Rpb24gY2xhc3NpZnkoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5zcGxpdCgiLiIpLm1hcCgocGFydCkgPT4gY2FwaXRhbGl6ZShjYW1lbGl6ZShwYXJ0KSkpLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gdW5kZXJzY29yZShzdHIyKSB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzEsICIkMV8kMiIpLnJlcGxhY2UoU1RSSU5HX1VOREVSU0NPUkVfUkVHRVhQXzIsICJfIikudG9Mb3dlckNhc2UoKTsKICAgIH0KICAgIGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyMikgewogICAgICByZXR1cm4gc3RyMi5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0cjIuc2xpY2UoMSk7CiAgICB9CiAgICBmdW5jdGlvbiBsZXZlbnNodGVpbihhLCBiKSB7CiAgICAgIGlmIChhLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGIubGVuZ3RoOwogICAgICB9CiAgICAgIGlmIChiLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGEubGVuZ3RoOwogICAgICB9CiAgICAgIGNvbnN0IG1hdHJpeCA9IFtdOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBiLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbWF0cml4W2ldID0gW2ldOwogICAgICB9CiAgICAgIGZvciAobGV0IGogPSAwOyBqIDw9IGEubGVuZ3RoOyBqKyspIHsKICAgICAgICBtYXRyaXhbMF1bal0gPSBqOwogICAgICB9CiAgICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGIubGVuZ3RoOyBpKyspIHsKICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8PSBhLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICBpZiAoYi5jaGFyQXQoaSAtIDEpID09IGEuY2hhckF0KGogLSAxKSkgewogICAgICAgICAgICBtYXRyaXhbaV1bal0gPSBtYXRyaXhbaSAtIDFdW2ogLSAxXTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hdHJpeFtpXVtqXSA9IE1hdGgubWluKAogICAgICAgICAgICAgIG1hdHJpeFtpIC0gMV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBzdWJzdGl0dXRpb24KICAgICAgICAgICAgICBtYXRyaXhbaV1baiAtIDFdICsgMSwKICAgICAgICAgICAgICAvLyBpbnNlcnRpb24KICAgICAgICAgICAgICBtYXRyaXhbaSAtIDFdW2pdICsgMQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbWF0cml4W2IubGVuZ3RoXVthLmxlbmd0aF07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMKdmFyIHJlcXVpcmVfb2JqZWN0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9vYmplY3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLmRlZXBDb3B5ID0gZGVlcENvcHk7CiAgICB2YXIgY29weVN5bWJvbCA9IFN5bWJvbCgpOwogICAgZnVuY3Rpb24gZGVlcENvcHkodmFsdWUpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCgobykgPT4gZGVlcENvcHkobykpOwogICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIpIHsKICAgICAgICBjb25zdCB2YWx1ZUNhc3RlZCA9IHZhbHVlOwogICAgICAgIGlmICh2YWx1ZUNhc3RlZFtjb3B5U3ltYm9sXSkgewogICAgICAgICAgcmV0dXJuIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWVDYXN0ZWRbInRvSlNPTiJdKSB7CiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZSh2YWx1ZUNhc3RlZFsidG9KU09OIl0oKSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvcHkgPSBPYmplY3QuY3JlYXRlKE9iamVjdC5nZXRQcm90b3R5cGVPZih2YWx1ZUNhc3RlZCkpOwogICAgICAgIHZhbHVlQ2FzdGVkW2NvcHlTeW1ib2xdID0gY29weTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZUNhc3RlZCkpIHsKICAgICAgICAgIGNvcHlba2V5XSA9IGRlZXBDb3B5KHZhbHVlQ2FzdGVkW2tleV0pOwogICAgICAgIH0KICAgICAgICBkZWxldGUgdmFsdWVDYXN0ZWRbY29weVN5bWJvbF07CiAgICAgICAgcmV0dXJuIGNvcHk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMKdmFyIHJlcXVpcmVfYmFzZTY0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iYXNlNjQuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgaW50VG9DaGFyTWFwID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLnNwbGl0KCIiKTsKICAgIGV4cG9ydHMyLmVuY29kZSA9IGZ1bmN0aW9uKG51bWJlcikgewogICAgICBpZiAoMCA8PSBudW1iZXIgJiYgbnVtYmVyIDwgaW50VG9DaGFyTWFwLmxlbmd0aCkgewogICAgICAgIHJldHVybiBpbnRUb0NoYXJNYXBbbnVtYmVyXTsKICAgICAgfQogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJNdXN0IGJlIGJldHdlZW4gMCBhbmQgNjM6ICIgKyBudW1iZXIpOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2Jhc2U2NC12bHEuanMKdmFyIHJlcXVpcmVfYmFzZTY0X3ZscSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYmFzZTY0LXZscS5qcyIoZXhwb3J0czIpIHsKICAgIHZhciBiYXNlNjQgPSByZXF1aXJlX2Jhc2U2NCgpOwogICAgdmFyIFZMUV9CQVNFX1NISUZUID0gNTsKICAgIHZhciBWTFFfQkFTRSA9IDEgPDwgVkxRX0JBU0VfU0hJRlQ7CiAgICB2YXIgVkxRX0JBU0VfTUFTSyA9IFZMUV9CQVNFIC0gMTsKICAgIHZhciBWTFFfQ09OVElOVUFUSU9OX0JJVCA9IFZMUV9CQVNFOwogICAgZnVuY3Rpb24gdG9WTFFTaWduZWQoYVZhbHVlKSB7CiAgICAgIHJldHVybiBhVmFsdWUgPCAwID8gKC1hVmFsdWUgPDwgMSkgKyAxIDogKGFWYWx1ZSA8PCAxKSArIDA7CiAgICB9CiAgICBleHBvcnRzMi5lbmNvZGUgPSBmdW5jdGlvbiBiYXNlNjRWTFFfZW5jb2RlKGFWYWx1ZSkgewogICAgICBsZXQgZW5jb2RlZCA9ICIiOwogICAgICBsZXQgZGlnaXQ7CiAgICAgIGxldCB2bHEgPSB0b1ZMUVNpZ25lZChhVmFsdWUpOwogICAgICBkbyB7CiAgICAgICAgZGlnaXQgPSB2bHEgJiBWTFFfQkFTRV9NQVNLOwogICAgICAgIHZscSA+Pj49IFZMUV9CQVNFX1NISUZUOwogICAgICAgIGlmICh2bHEgPiAwKSB7CiAgICAgICAgICBkaWdpdCB8PSBWTFFfQ09OVElOVUFUSU9OX0JJVDsKICAgICAgICB9CiAgICAgICAgZW5jb2RlZCArPSBiYXNlNjQuZW5jb2RlKGRpZ2l0KTsKICAgICAgfSB3aGlsZSAodmxxID4gMCk7CiAgICAgIHJldHVybiBlbmNvZGVkOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMKdmFyIHJlcXVpcmVfdXRpbDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3V0aWwuanMiKGV4cG9ydHMyKSB7CiAgICBmdW5jdGlvbiBnZXRBcmcoYUFyZ3MsIGFOYW1lLCBhRGVmYXVsdFZhbHVlKSB7CiAgICAgIGlmIChhTmFtZSBpbiBhQXJncykgewogICAgICAgIHJldHVybiBhQXJnc1thTmFtZV07CiAgICAgIH0gZWxzZSBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMykgewogICAgICAgIHJldHVybiBhRGVmYXVsdFZhbHVlOwogICAgICB9CiAgICAgIHRocm93IG5ldyBFcnJvcignIicgKyBhTmFtZSArICciIGlzIGEgcmVxdWlyZWQgYXJndW1lbnQuJyk7CiAgICB9CiAgICBleHBvcnRzMi5nZXRBcmcgPSBnZXRBcmc7CiAgICB2YXIgdXJsUmVnZXhwID0gL14oPzooW1x3K1wtLl0rKTopP1wvXC8oPzooXHcrOlx3KylAKT8oW1x3Li1dKikoPzo6KFxkKykpPyguKikkLzsKICAgIHZhciBkYXRhVXJsUmVnZXhwID0gL15kYXRhOi4rXCwuKyQvOwogICAgZnVuY3Rpb24gdXJsUGFyc2UoYVVybCkgewogICAgICBjb25zdCBtYXRjaCA9IGFVcmwubWF0Y2godXJsUmVnZXhwKTsKICAgICAgaWYgKCFtYXRjaCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHJldHVybiB7CiAgICAgICAgc2NoZW1lOiBtYXRjaFsxXSwKICAgICAgICBhdXRoOiBtYXRjaFsyXSwKICAgICAgICBob3N0OiBtYXRjaFszXSwKICAgICAgICBwb3J0OiBtYXRjaFs0XSwKICAgICAgICBwYXRoOiBtYXRjaFs1XQogICAgICB9OwogICAgfQogICAgZXhwb3J0czIudXJsUGFyc2UgPSB1cmxQYXJzZTsKICAgIGZ1bmN0aW9uIHVybEdlbmVyYXRlKGFQYXJzZWRVcmwpIHsKICAgICAgbGV0IHVybDMgPSAiIjsKICAgICAgaWYgKGFQYXJzZWRVcmwuc2NoZW1lKSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLnNjaGVtZSArICI6IjsKICAgICAgfQogICAgICB1cmwzICs9ICIvLyI7CiAgICAgIGlmIChhUGFyc2VkVXJsLmF1dGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwuYXV0aCArICJAIjsKICAgICAgfQogICAgICBpZiAoYVBhcnNlZFVybC5ob3N0KSB7CiAgICAgICAgdXJsMyArPSBhUGFyc2VkVXJsLmhvc3Q7CiAgICAgIH0KICAgICAgaWYgKGFQYXJzZWRVcmwucG9ydCkgewogICAgICAgIHVybDMgKz0gIjoiICsgYVBhcnNlZFVybC5wb3J0OwogICAgICB9CiAgICAgIGlmIChhUGFyc2VkVXJsLnBhdGgpIHsKICAgICAgICB1cmwzICs9IGFQYXJzZWRVcmwucGF0aDsKICAgICAgfQogICAgICByZXR1cm4gdXJsMzsKICAgIH0KICAgIGV4cG9ydHMyLnVybEdlbmVyYXRlID0gdXJsR2VuZXJhdGU7CiAgICB2YXIgTUFYX0NBQ0hFRF9JTlBVVFMgPSAzMjsKICAgIGZ1bmN0aW9uIGxydU1lbW9pemUoZikgewogICAgICBjb25zdCBjYWNoZSA9IFtdOwogICAgICByZXR1cm4gZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNhY2hlLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoY2FjaGVbaV0uaW5wdXQgPT09IGlucHV0KSB7CiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSBjYWNoZVswXTsKICAgICAgICAgICAgY2FjaGVbMF0gPSBjYWNoZVtpXTsKICAgICAgICAgICAgY2FjaGVbaV0gPSB0ZW1wOwogICAgICAgICAgICByZXR1cm4gY2FjaGVbMF0ucmVzdWx0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCByZXN1bHQgPSBmKGlucHV0KTsKICAgICAgICBjYWNoZS51bnNoaWZ0KHsKICAgICAgICAgIGlucHV0LAogICAgICAgICAgcmVzdWx0CiAgICAgICAgfSk7CiAgICAgICAgaWYgKGNhY2hlLmxlbmd0aCA+IE1BWF9DQUNIRURfSU5QVVRTKSB7CiAgICAgICAgICBjYWNoZS5wb3AoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0KICAgIHZhciBub3JtYWxpemUgPSBscnVNZW1vaXplKGZ1bmN0aW9uIG5vcm1hbGl6ZTIoYVBhdGgpIHsKICAgICAgbGV0IHBhdGggPSBhUGF0aDsKICAgICAgY29uc3QgdXJsMyA9IHVybFBhcnNlKGFQYXRoKTsKICAgICAgaWYgKHVybDMpIHsKICAgICAgICBpZiAoIXVybDMucGF0aCkgewogICAgICAgICAgcmV0dXJuIGFQYXRoOwogICAgICAgIH0KICAgICAgICBwYXRoID0gdXJsMy5wYXRoOwogICAgICB9CiAgICAgIGNvbnN0IGlzQWJzb2x1dGUgPSBleHBvcnRzMi5pc0Fic29sdXRlKHBhdGgpOwogICAgICBjb25zdCBwYXJ0cyA9IFtdOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgaSA9IDA7CiAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgc3RhcnQgPSBpOwogICAgICAgIGkgPSBwYXRoLmluZGV4T2YoIi8iLCBzdGFydCk7CiAgICAgICAgaWYgKGkgPT09IC0xKSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQpKTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBwYXJ0cy5wdXNoKHBhdGguc2xpY2Uoc3RhcnQsIGkpKTsKICAgICAgICAgIHdoaWxlIChpIDwgcGF0aC5sZW5ndGggJiYgcGF0aFtpXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgbGV0IHVwID0gMDsKICAgICAgZm9yIChpID0gcGFydHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb25zdCBwYXJ0ID0gcGFydHNbaV07CiAgICAgICAgaWYgKHBhcnQgPT09ICIuIikgewogICAgICAgICAgcGFydHMuc3BsaWNlKGksIDEpOwogICAgICAgIH0gZWxzZSBpZiAocGFydCA9PT0gIi4uIikgewogICAgICAgICAgdXArKzsKICAgICAgICB9IGVsc2UgaWYgKHVwID4gMCkgewogICAgICAgICAgaWYgKHBhcnQgPT09ICIiKSB7CiAgICAgICAgICAgIHBhcnRzLnNwbGljZShpICsgMSwgdXApOwogICAgICAgICAgICB1cCA9IDA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwYXJ0cy5zcGxpY2UoaSwgMik7CiAgICAgICAgICAgIHVwLS07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHBhdGggPSBwYXJ0cy5qb2luKCIvIik7CiAgICAgIGlmIChwYXRoID09PSAiIikgewogICAgICAgIHBhdGggPSBpc0Fic29sdXRlID8gIi8iIDogIi4iOwogICAgICB9CiAgICAgIGlmICh1cmwzKSB7CiAgICAgICAgdXJsMy5wYXRoID0gcGF0aDsKICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUodXJsMyk7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGg7CiAgICB9KTsKICAgIGV4cG9ydHMyLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTsKICAgIGZ1bmN0aW9uIGpvaW4yKGFSb290LCBhUGF0aCkgewogICAgICBpZiAoYVJvb3QgPT09ICIiKSB7CiAgICAgICAgYVJvb3QgPSAiLiI7CiAgICAgIH0KICAgICAgaWYgKGFQYXRoID09PSAiIikgewogICAgICAgIGFQYXRoID0gIi4iOwogICAgICB9CiAgICAgIGNvbnN0IGFQYXRoVXJsID0gdXJsUGFyc2UoYVBhdGgpOwogICAgICBjb25zdCBhUm9vdFVybCA9IHVybFBhcnNlKGFSb290KTsKICAgICAgaWYgKGFSb290VXJsKSB7CiAgICAgICAgYVJvb3QgPSBhUm9vdFVybC5wYXRoIHx8ICIvIjsKICAgICAgfQogICAgICBpZiAoYVBhdGhVcmwgJiYgIWFQYXRoVXJsLnNjaGVtZSkgewogICAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgICAgYVBhdGhVcmwuc2NoZW1lID0gYVJvb3RVcmwuc2NoZW1lOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdXJsR2VuZXJhdGUoYVBhdGhVcmwpOwogICAgICB9CiAgICAgIGlmIChhUGF0aFVybCB8fCBhUGF0aC5tYXRjaChkYXRhVXJsUmVnZXhwKSkgewogICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgfQogICAgICBpZiAoYVJvb3RVcmwgJiYgIWFSb290VXJsLmhvc3QgJiYgIWFSb290VXJsLnBhdGgpIHsKICAgICAgICBhUm9vdFVybC5ob3N0ID0gYVBhdGg7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICBjb25zdCBqb2luZWQgPSBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiA/IGFQYXRoIDogbm9ybWFsaXplKGFSb290LnJlcGxhY2UoL1wvKyQvLCAiIikgKyAiLyIgKyBhUGF0aCk7CiAgICAgIGlmIChhUm9vdFVybCkgewogICAgICAgIGFSb290VXJsLnBhdGggPSBqb2luZWQ7CiAgICAgICAgcmV0dXJuIHVybEdlbmVyYXRlKGFSb290VXJsKTsKICAgICAgfQogICAgICByZXR1cm4gam9pbmVkOwogICAgfQogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGZ1bmN0aW9uKGFQYXRoKSB7CiAgICAgIHJldHVybiBhUGF0aC5jaGFyQXQoMCkgPT09ICIvIiB8fCB1cmxSZWdleHAudGVzdChhUGF0aCk7CiAgICB9OwogICAgZnVuY3Rpb24gcmVsYXRpdmUoYVJvb3QsIGFQYXRoKSB7CiAgICAgIGlmIChhUm9vdCA9PT0gIiIpIHsKICAgICAgICBhUm9vdCA9ICIuIjsKICAgICAgfQogICAgICBhUm9vdCA9IGFSb290LnJlcGxhY2UoL1wvJC8sICIiKTsKICAgICAgbGV0IGxldmVsID0gMDsKICAgICAgd2hpbGUgKGFQYXRoLmluZGV4T2YoYVJvb3QgKyAiLyIpICE9PSAwKSB7CiAgICAgICAgY29uc3QgaW5kZXggPSBhUm9vdC5sYXN0SW5kZXhPZigiLyIpOwogICAgICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgIHJldHVybiBhUGF0aDsKICAgICAgICB9CiAgICAgICAgYVJvb3QgPSBhUm9vdC5zbGljZSgwLCBpbmRleCk7CiAgICAgICAgaWYgKGFSb290Lm1hdGNoKC9eKFteXC9dKzpcLyk/XC8qJC8pKSB7CiAgICAgICAgICByZXR1cm4gYVBhdGg7CiAgICAgICAgfQogICAgICAgICsrbGV2ZWw7CiAgICAgIH0KICAgICAgcmV0dXJuIEFycmF5KGxldmVsICsgMSkuam9pbigiLi4vIikgKyBhUGF0aC5zdWJzdHIoYVJvb3QubGVuZ3RoICsgMSk7CiAgICB9CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgdmFyIHN1cHBvcnRzTnVsbFByb3RvID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IG9iaiA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICByZXR1cm4gISgiX19wcm90b19fIiBpbiBvYmopOwogICAgfSgpOwogICAgZnVuY3Rpb24gaWRlbnRpdHkocykgewogICAgICByZXR1cm4gczsKICAgIH0KICAgIGZ1bmN0aW9uIHRvU2V0U3RyaW5nKGFTdHIpIHsKICAgICAgaWYgKGlzUHJvdG9TdHJpbmcoYVN0cikpIHsKICAgICAgICByZXR1cm4gIiQiICsgYVN0cjsKICAgICAgfQogICAgICByZXR1cm4gYVN0cjsKICAgIH0KICAgIGV4cG9ydHMyLnRvU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IHRvU2V0U3RyaW5nOwogICAgZnVuY3Rpb24gZnJvbVNldFN0cmluZyhhU3RyKSB7CiAgICAgIGlmIChpc1Byb3RvU3RyaW5nKGFTdHIpKSB7CiAgICAgICAgcmV0dXJuIGFTdHIuc2xpY2UoMSk7CiAgICAgIH0KICAgICAgcmV0dXJuIGFTdHI7CiAgICB9CiAgICBleHBvcnRzMi5mcm9tU2V0U3RyaW5nID0gc3VwcG9ydHNOdWxsUHJvdG8gPyBpZGVudGl0eSA6IGZyb21TZXRTdHJpbmc7CiAgICBmdW5jdGlvbiBpc1Byb3RvU3RyaW5nKHMpIHsKICAgICAgaWYgKCFzKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0IGxlbmd0aCA9IHMubGVuZ3RoOwogICAgICBpZiAobGVuZ3RoIDwgOSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBpZiAocy5jaGFyQ29kZUF0KGxlbmd0aCAtIDEpICE9PSA5NSB8fCBzLmNoYXJDb2RlQXQobGVuZ3RoIC0gMikgIT09IDk1IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSAzKSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA0KSAhPT0gMTE2IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA1KSAhPT0gMTExIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA2KSAhPT0gMTE0IHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA3KSAhPT0gMTEyIHx8IHMuY2hhckNvZGVBdChsZW5ndGggLSA4KSAhPT0gOTUgfHwgcy5jaGFyQ29kZUF0KGxlbmd0aCAtIDkpICE9PSA5NSkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBmb3IgKGxldCBpID0gbGVuZ3RoIC0gMTA7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgaWYgKHMuY2hhckNvZGVBdChpKSAhPT0gMzYpIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9ucyhtYXBwaW5nQSwgbWFwcGluZ0IsIG9ubHlDb21wYXJlT3JpZ2luYWwpIHsKICAgICAgbGV0IGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCB8fCBvbmx5Q29tcGFyZU9yaWdpbmFsKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICByZXR1cm4gc3RyY21wKG1hcHBpbmdBLm5hbWUsIG1hcHBpbmdCLm5hbWUpOwogICAgfQogICAgZXhwb3J0czIuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMgPSBjb21wYXJlQnlPcmlnaW5hbFBvc2l0aW9uczsKICAgIGZ1bmN0aW9uIGNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkKG1hcHBpbmdBLCBtYXBwaW5nQiwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDAgfHwgb25seUNvbXBhcmVHZW5lcmF0ZWQpIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0RlZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQ7CiAgICBmdW5jdGlvbiBzdHJjbXAoYVN0cjEsIGFTdHIyKSB7CiAgICAgIGlmIChhU3RyMSA9PT0gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMDsKICAgICAgfQogICAgICBpZiAoYVN0cjEgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICBpZiAoYVN0cjIgPT09IG51bGwpIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgaWYgKGFTdHIxID4gYVN0cjIpIHsKICAgICAgICByZXR1cm4gMTsKICAgICAgfQogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBmdW5jdGlvbiBjb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nQSwgbWFwcGluZ0IpIHsKICAgICAgbGV0IGNtcCA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmUgLSBtYXBwaW5nQi5nZW5lcmF0ZWRMaW5lOwogICAgICBpZiAoY21wICE9PSAwKSB7CiAgICAgICAgcmV0dXJuIGNtcDsKICAgICAgfQogICAgICBjbXAgPSBtYXBwaW5nQS5nZW5lcmF0ZWRDb2x1bW4gLSBtYXBwaW5nQi5nZW5lcmF0ZWRDb2x1bW47CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IHN0cmNtcChtYXBwaW5nQS5zb3VyY2UsIG1hcHBpbmdCLnNvdXJjZSk7CiAgICAgIGlmIChjbXAgIT09IDApIHsKICAgICAgICByZXR1cm4gY21wOwogICAgICB9CiAgICAgIGNtcCA9IG1hcHBpbmdBLm9yaWdpbmFsTGluZSAtIG1hcHBpbmdCLm9yaWdpbmFsTGluZTsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgY21wID0gbWFwcGluZ0Eub3JpZ2luYWxDb2x1bW4gLSBtYXBwaW5nQi5vcmlnaW5hbENvbHVtbjsKICAgICAgaWYgKGNtcCAhPT0gMCkgewogICAgICAgIHJldHVybiBjbXA7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0cmNtcChtYXBwaW5nQS5uYW1lLCBtYXBwaW5nQi5uYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkID0gY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQ7CiAgICBmdW5jdGlvbiBwYXJzZVNvdXJjZU1hcElucHV0KHN0cjIpIHsKICAgICAgcmV0dXJuIEpTT04ucGFyc2Uoc3RyMi5yZXBsYWNlKC9eXCldfSdbXlxuXSpcbi8sICIiKSk7CiAgICB9CiAgICBleHBvcnRzMi5wYXJzZVNvdXJjZU1hcElucHV0ID0gcGFyc2VTb3VyY2VNYXBJbnB1dDsKICAgIGZ1bmN0aW9uIGNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgc291cmNlVVJMLCBzb3VyY2VNYXBVUkwpIHsKICAgICAgc291cmNlVVJMID0gc291cmNlVVJMIHx8ICIiOwogICAgICBpZiAoc291cmNlUm9vdCkgewogICAgICAgIGlmIChzb3VyY2VSb290W3NvdXJjZVJvb3QubGVuZ3RoIC0gMV0gIT09ICIvIiAmJiBzb3VyY2VVUkxbMF0gIT09ICIvIikgewogICAgICAgICAgc291cmNlUm9vdCArPSAiLyI7CiAgICAgICAgfQogICAgICAgIHNvdXJjZVVSTCA9IHNvdXJjZVJvb3QgKyBzb3VyY2VVUkw7CiAgICAgIH0KICAgICAgaWYgKHNvdXJjZU1hcFVSTCkgewogICAgICAgIGNvbnN0IHBhcnNlZCA9IHVybFBhcnNlKHNvdXJjZU1hcFVSTCk7CiAgICAgICAgaWYgKCFwYXJzZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigic291cmNlTWFwVVJMIGNvdWxkIG5vdCBiZSBwYXJzZWQiKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBhcnNlZC5wYXRoKSB7CiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhcnNlZC5wYXRoLmxhc3RJbmRleE9mKCIvIik7CiAgICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgICBwYXJzZWQucGF0aCA9IHBhcnNlZC5wYXRoLnN1YnN0cmluZygwLCBpbmRleCArIDEpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzb3VyY2VVUkwgPSBqb2luMih1cmxHZW5lcmF0ZShwYXJzZWQpLCBzb3VyY2VVUkwpOwogICAgICB9CiAgICAgIHJldHVybiBub3JtYWxpemUoc291cmNlVVJMKTsKICAgIH0KICAgIGV4cG9ydHMyLmNvbXB1dGVTb3VyY2VVUkwgPSBjb21wdXRlU291cmNlVVJMOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzCnZhciByZXF1aXJlX2FycmF5X3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvYXJyYXktc2V0LmpzIihleHBvcnRzMikgewogICAgdmFyIEFycmF5U2V0ID0gY2xhc3MgX0FycmF5U2V0IHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5fYXJyYXkgPSBbXTsKICAgICAgICB0aGlzLl9zZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTdGF0aWMgbWV0aG9kIGZvciBjcmVhdGluZyBBcnJheVNldCBpbnN0YW5jZXMgZnJvbSBhbiBleGlzdGluZyBhcnJheS4KICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tQXJyYXkoYUFycmF5LCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3Qgc2V0MiA9IG5ldyBfQXJyYXlTZXQoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gYUFycmF5Lmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBzZXQyLmFkZChhQXJyYXlbaV0sIGFBbGxvd0R1cGxpY2F0ZXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2V0MjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIGhvdyBtYW55IHVuaXF1ZSBpdGVtcyBhcmUgaW4gdGhpcyBBcnJheVNldC4gSWYgZHVwbGljYXRlcyBoYXZlIGJlZW4KICAgICAgICogYWRkZWQsIHRoYW4gdGhvc2UgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHNpemUuCiAgICAgICAqCiAgICAgICAqIEByZXR1cm5zIE51bWJlcgogICAgICAgKi8KICAgICAgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fc2V0LnNpemU7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc3RyaW5nIHRvIHRoaXMgc2V0LgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGFkZChhU3RyLCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSB0aGlzLmhhcyhhU3RyKTsKICAgICAgICBjb25zdCBpZHggPSB0aGlzLl9hcnJheS5sZW5ndGg7CiAgICAgICAgaWYgKCFpc0R1cGxpY2F0ZSB8fCBhQWxsb3dEdXBsaWNhdGVzKSB7CiAgICAgICAgICB0aGlzLl9hcnJheS5wdXNoKGFTdHIpOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzRHVwbGljYXRlKSB7CiAgICAgICAgICB0aGlzLl9zZXQuc2V0KGFTdHIsIGlkeCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJcyB0aGUgZ2l2ZW4gc3RyaW5nIGEgbWVtYmVyIG9mIHRoaXMgc2V0PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGhhcyhhU3RyKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NldC5oYXMoYVN0cik7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdoYXQgaXMgdGhlIGluZGV4IG9mIHRoZSBnaXZlbiBzdHJpbmcgaW4gdGhlIGFycmF5PwogICAgICAgKgogICAgICAgKiBAcGFyYW0gU3RyaW5nIGFTdHIKICAgICAgICovCiAgICAgIGluZGV4T2YoYVN0cikgewogICAgICAgIGNvbnN0IGlkeCA9IHRoaXMuX3NldC5nZXQoYVN0cik7CiAgICAgICAgaWYgKGlkeCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gaWR4OwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVN0ciArICciIGlzIG5vdCBpbiB0aGUgc2V0LicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXaGF0IGlzIHRoZSBlbGVtZW50IGF0IHRoZSBnaXZlbiBpbmRleD8KICAgICAgICoKICAgICAgICogQHBhcmFtIE51bWJlciBhSWR4CiAgICAgICAqLwogICAgICBhdChhSWR4KSB7CiAgICAgICAgaWYgKGFJZHggPj0gMCAmJiBhSWR4IDwgdGhpcy5fYXJyYXkubGVuZ3RoKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYXJyYXlbYUlkeF07CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBFcnJvcigiTm8gZWxlbWVudCBpbmRleGVkIGJ5ICIgKyBhSWR4KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgYXJyYXkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBzZXQgKHdoaWNoIGhhcyB0aGUgcHJvcGVyIGluZGljZXMKICAgICAgICogaW5kaWNhdGVkIGJ5IGluZGV4T2YpLiBOb3RlIHRoYXQgdGhpcyBpcyBhIGNvcHkgb2YgdGhlIGludGVybmFsIGFycmF5IHVzZWQKICAgICAgICogZm9yIHN0b3JpbmcgdGhlIG1lbWJlcnMgc28gdGhhdCBubyBvbmUgY2FuIG1lc3Mgd2l0aCBpbnRlcm5hbCBzdGF0ZS4KICAgICAgICovCiAgICAgIHRvQXJyYXkoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FycmF5LnNsaWNlKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BcnJheVNldCA9IEFycmF5U2V0OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzCnZhciByZXF1aXJlX21hcHBpbmdfbGlzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvbWFwcGluZy1saXN0LmpzIihleHBvcnRzMikgewogICAgdmFyIHV0aWwgPSByZXF1aXJlX3V0aWwyKCk7CiAgICBmdW5jdGlvbiBnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKG1hcHBpbmdBLCBtYXBwaW5nQikgewogICAgICBjb25zdCBsaW5lQSA9IG1hcHBpbmdBLmdlbmVyYXRlZExpbmU7CiAgICAgIGNvbnN0IGxpbmVCID0gbWFwcGluZ0IuZ2VuZXJhdGVkTGluZTsKICAgICAgY29uc3QgY29sdW1uQSA9IG1hcHBpbmdBLmdlbmVyYXRlZENvbHVtbjsKICAgICAgY29uc3QgY29sdW1uQiA9IG1hcHBpbmdCLmdlbmVyYXRlZENvbHVtbjsKICAgICAgcmV0dXJuIGxpbmVCID4gbGluZUEgfHwgbGluZUIgPT0gbGluZUEgJiYgY29sdW1uQiA+PSBjb2x1bW5BIHx8IHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zSW5mbGF0ZWQobWFwcGluZ0EsIG1hcHBpbmdCKSA8PSAwOwogICAgfQogICAgdmFyIE1hcHBpbmdMaXN0ID0gY2xhc3MgewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLl9hcnJheSA9IFtdOwogICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgdGhpcy5fbGFzdCA9IHsgZ2VuZXJhdGVkTGluZTogLTEsIGdlbmVyYXRlZENvbHVtbjogMCB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBJdGVyYXRlIHRocm91Z2ggaW50ZXJuYWwgaXRlbXMuIFRoaXMgbWV0aG9kIHRha2VzIHRoZSBzYW1lIGFyZ3VtZW50cyB0aGF0CiAgICAgICAqIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgdGFrZXMuCiAgICAgICAqCiAgICAgICAqIE5PVEU6IFRoZSBvcmRlciBvZiB0aGUgbWFwcGluZ3MgaXMgTk9UIGd1YXJhbnRlZWQuCiAgICAgICAqLwogICAgICB1bnNvcnRlZEZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZykgewogICAgICAgIHRoaXMuX2FycmF5LmZvckVhY2goYUNhbGxiYWNrLCBhVGhpc0FyZyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCB0aGUgZ2l2ZW4gc291cmNlIG1hcHBpbmcuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYU1hcHBpbmcKICAgICAgICovCiAgICAgIGFkZChhTWFwcGluZykgewogICAgICAgIGlmIChnZW5lcmF0ZWRQb3NpdGlvbkFmdGVyKHRoaXMuX2xhc3QsIGFNYXBwaW5nKSkgewogICAgICAgICAgdGhpcy5fbGFzdCA9IGFNYXBwaW5nOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IGZhbHNlOwogICAgICAgICAgdGhpcy5fYXJyYXkucHVzaChhTWFwcGluZyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBmbGF0LCBzb3J0ZWQgYXJyYXkgb2YgbWFwcGluZ3MuIFRoZSBtYXBwaW5ncyBhcmUgc29ydGVkIGJ5CiAgICAgICAqIGdlbmVyYXRlZCBwb3NpdGlvbi4KICAgICAgICoKICAgICAgICogV0FSTklORzogVGhpcyBtZXRob2QgcmV0dXJucyBpbnRlcm5hbCBkYXRhIHdpdGhvdXQgY29weWluZywgZm9yCiAgICAgICAqIHBlcmZvcm1hbmNlLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgTk9UIGJlIG11dGF0ZWQsIGFuZCBzaG91bGQgYmUgdHJlYXRlZCBhcwogICAgICAgKiBhbiBpbW11dGFibGUgYm9ycm93LiBJZiB5b3Ugd2FudCB0byB0YWtlIG93bmVyc2hpcCwgeW91IG11c3QgbWFrZSB5b3VyIG93bgogICAgICAgKiBjb3B5LgogICAgICAgKi8KICAgICAgdG9BcnJheSgpIHsKICAgICAgICBpZiAoIXRoaXMuX3NvcnRlZCkgewogICAgICAgICAgdGhpcy5fYXJyYXkuc29ydCh1dGlsLmNvbXBhcmVCeUdlbmVyYXRlZFBvc2l0aW9uc0luZmxhdGVkKTsKICAgICAgICAgIHRoaXMuX3NvcnRlZCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9hcnJheTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1hcHBpbmdMaXN0ID0gTWFwcGluZ0xpc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9zb3VyY2UtbWFwLWdlbmVyYXRvci5qcwp2YXIgcmVxdWlyZV9zb3VyY2VfbWFwX2dlbmVyYXRvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1nZW5lcmF0b3IuanMiKGV4cG9ydHMyKSB7CiAgICB2YXIgYmFzZTY0VkxRID0gcmVxdWlyZV9iYXNlNjRfdmxxKCk7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBBcnJheVNldCA9IHJlcXVpcmVfYXJyYXlfc2V0KCkuQXJyYXlTZXQ7CiAgICB2YXIgTWFwcGluZ0xpc3QgPSByZXF1aXJlX21hcHBpbmdfbGlzdCgpLk1hcHBpbmdMaXN0OwogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IGNsYXNzIF9Tb3VyY2VNYXBHZW5lcmF0b3IgewogICAgICBjb25zdHJ1Y3RvcihhQXJncykgewogICAgICAgIGlmICghYUFyZ3MpIHsKICAgICAgICAgIGFBcmdzID0ge307CiAgICAgICAgfQogICAgICAgIHRoaXMuX2ZpbGUgPSB1dGlsLmdldEFyZyhhQXJncywgImZpbGUiLCBudWxsKTsKICAgICAgICB0aGlzLl9zb3VyY2VSb290ID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2VSb290IiwgbnVsbCk7CiAgICAgICAgdGhpcy5fc2tpcFZhbGlkYXRpb24gPSB1dGlsLmdldEFyZyhhQXJncywgInNraXBWYWxpZGF0aW9uIiwgZmFsc2UpOwogICAgICAgIHRoaXMuX3NvdXJjZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICB0aGlzLl9uYW1lcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgIHRoaXMuX21hcHBpbmdzID0gbmV3IE1hcHBpbmdMaXN0KCk7CiAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlcyBhIG5ldyBTb3VyY2VNYXBHZW5lcmF0b3IgYmFzZWQgb24gYSBTb3VyY2VNYXBDb25zdW1lcgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBTb3VyY2VNYXAuCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVNvdXJjZU1hcChhU291cmNlTWFwQ29uc3VtZXIpIHsKICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZVJvb3Q7CiAgICAgICAgY29uc3QgZ2VuZXJhdG9yID0gbmV3IF9Tb3VyY2VNYXBHZW5lcmF0b3IoewogICAgICAgICAgZmlsZTogYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUsCiAgICAgICAgICBzb3VyY2VSb290CiAgICAgICAgfSk7CiAgICAgICAgYVNvdXJjZU1hcENvbnN1bWVyLmVhY2hNYXBwaW5nKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGNvbnN0IG5ld01hcHBpbmcgPSB7CiAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgIT0gbnVsbCkgewogICAgICAgICAgICBuZXdNYXBwaW5nLnNvdXJjZSA9IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmV3TWFwcGluZy5zb3VyY2UgPSB1dGlsLnJlbGF0aXZlKHNvdXJjZVJvb3QsIG5ld01hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZXdNYXBwaW5nLm9yaWdpbmFsID0gewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICBuZXdNYXBwaW5nLm5hbWUgPSBtYXBwaW5nLm5hbWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGdlbmVyYXRvci5hZGRNYXBwaW5nKG5ld01hcHBpbmcpOwogICAgICAgIH0pOwogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgbGV0IHNvdXJjZVJlbGF0aXZlID0gc291cmNlRmlsZTsKICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9PSBudWxsKSB7CiAgICAgICAgICAgIHNvdXJjZVJlbGF0aXZlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZ2VuZXJhdG9yLl9zb3VyY2VzLmhhcyhzb3VyY2VSZWxhdGl2ZSkpIHsKICAgICAgICAgICAgZ2VuZXJhdG9yLl9zb3VyY2VzLmFkZChzb3VyY2VSZWxhdGl2ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gYVNvdXJjZU1hcENvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3Ioc291cmNlRmlsZSk7CiAgICAgICAgICBpZiAoY29udGVudCAhPSBudWxsKSB7CiAgICAgICAgICAgIGdlbmVyYXRvci5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHJldHVybiBnZW5lcmF0b3I7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHNpbmdsZSBtYXBwaW5nIGZyb20gb3JpZ2luYWwgc291cmNlIGxpbmUgYW5kIGNvbHVtbiB0byB0aGUgZ2VuZXJhdGVkCiAgICAgICAqIHNvdXJjZSdzIGxpbmUgYW5kIGNvbHVtbiBmb3IgdGhpcyBzb3VyY2UgbWFwIGJlaW5nIGNyZWF0ZWQuIFRoZSBtYXBwaW5nCiAgICAgICAqIG9iamVjdCBzaG91bGQgaGF2ZSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBnZW5lcmF0ZWQ6IEFuIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIG9yaWdpbmFsOiBBbiBvYmplY3Qgd2l0aCB0aGUgb3JpZ2luYWwgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucy4KICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlIChyZWxhdGl2ZSB0byB0aGUgc291cmNlUm9vdCkuCiAgICAgICAqICAgLSBuYW1lOiBBbiBvcHRpb25hbCBvcmlnaW5hbCB0b2tlbiBuYW1lIGZvciB0aGlzIG1hcHBpbmcuCiAgICAgICAqLwogICAgICBhZGRNYXBwaW5nKGFBcmdzKSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJnZW5lcmF0ZWQiKTsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAib3JpZ2luYWwiLCBudWxsKTsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICBsZXQgbmFtZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibmFtZSIsIG51bGwpOwogICAgICAgIGlmICghdGhpcy5fc2tpcFZhbGlkYXRpb24pIHsKICAgICAgICAgIHRoaXMuX3ZhbGlkYXRlTWFwcGluZyhnZW5lcmF0ZWQsIG9yaWdpbmFsLCBzb3VyY2UsIG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAoc291cmNlICE9IG51bGwpIHsKICAgICAgICAgIHNvdXJjZSA9IFN0cmluZyhzb3VyY2UpOwogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICAgIHRoaXMuX3NvdXJjZXMuYWRkKHNvdXJjZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChuYW1lICE9IG51bGwpIHsKICAgICAgICAgIG5hbWUgPSBTdHJpbmcobmFtZSk7CiAgICAgICAgICBpZiAoIXRoaXMuX25hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICB0aGlzLl9uYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzLmFkZCh7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbiwKICAgICAgICAgIG9yaWdpbmFsTGluZTogb3JpZ2luYWwgIT0gbnVsbCAmJiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG9yaWdpbmFsICE9IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uLAogICAgICAgICAgc291cmNlLAogICAgICAgICAgbmFtZQogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBTZXQgdGhlIHNvdXJjZSBjb250ZW50IGZvciBhIHNvdXJjZSBmaWxlLgogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICBsZXQgc291cmNlID0gYVNvdXJjZUZpbGU7CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZVJvb3QgIT0gbnVsbCkgewogICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLl9zb3VyY2VSb290LCBzb3VyY2UpOwogICAgICAgIH0KICAgICAgICBpZiAoYVNvdXJjZUNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgaWYgKCF0aGlzLl9zb3VyY2VzQ29udGVudHMpIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zb3VyY2VzQ29udGVudHNbdXRpbC50b1NldFN0cmluZyhzb3VyY2UpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlc0NvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoc291cmNlKV07CiAgICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fc291cmNlc0NvbnRlbnRzKS5sZW5ndGggPT09IDApIHsKICAgICAgICAgICAgdGhpcy5fc291cmNlc0NvbnRlbnRzID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFwcGxpZXMgdGhlIG1hcHBpbmdzIG9mIGEgc3ViLXNvdXJjZS1tYXAgZm9yIGEgc3BlY2lmaWMgc291cmNlIGZpbGUgdG8gdGhlCiAgICAgICAqIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkLiBFYWNoIG1hcHBpbmcgdG8gdGhlIHN1cHBsaWVkIHNvdXJjZSBmaWxlIGlzCiAgICAgICAqIHJld3JpdHRlbiB1c2luZyB0aGUgc3VwcGxpZWQgc291cmNlIG1hcC4gTm90ZTogVGhlIHJlc29sdXRpb24gZm9yIHRoZQogICAgICAgKiByZXN1bHRpbmcgbWFwcGluZ3MgaXMgdGhlIG1pbmltaXVtIG9mIHRoaXMgbWFwIGFuZCB0aGUgc3VwcGxpZWQgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYVNvdXJjZU1hcENvbnN1bWVyIFRoZSBzb3VyY2UgbWFwIHRvIGJlIGFwcGxpZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlRmlsZSBPcHRpb25hbC4gVGhlIGZpbGVuYW1lIG9mIHRoZSBzb3VyY2UgZmlsZS4KICAgICAgICogICAgICAgIElmIG9taXR0ZWQsIFNvdXJjZU1hcENvbnN1bWVyJ3MgZmlsZSBwcm9wZXJ0eSB3aWxsIGJlIHVzZWQuCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwUGF0aCBPcHRpb25hbC4gVGhlIGRpcm5hbWUgb2YgdGhlIHBhdGggdG8gdGhlIHNvdXJjZSBtYXAKICAgICAgICogICAgICAgIHRvIGJlIGFwcGxpZWQuIElmIHJlbGF0aXZlLCBpdCBpcyByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwQ29uc3VtZXIuCiAgICAgICAqICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBuZWVkZWQgd2hlbiB0aGUgdHdvIHNvdXJjZSBtYXBzIGFyZW4ndCBpbiB0aGUgc2FtZQogICAgICAgKiAgICAgICAgZGlyZWN0b3J5LCBhbmQgdGhlIHNvdXJjZSBtYXAgdG8gYmUgYXBwbGllZCBjb250YWlucyByZWxhdGl2ZSBzb3VyY2UKICAgICAgICogICAgICAgIHBhdGhzLiBJZiBzbywgdGhvc2UgcmVsYXRpdmUgc291cmNlIHBhdGhzIG5lZWQgdG8gYmUgcmV3cml0dGVuCiAgICAgICAqICAgICAgICByZWxhdGl2ZSB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKi8KICAgICAgYXBwbHlTb3VyY2VNYXAoYVNvdXJjZU1hcENvbnN1bWVyLCBhU291cmNlRmlsZSwgYVNvdXJjZU1hcFBhdGgpIHsKICAgICAgICBsZXQgc291cmNlRmlsZSA9IGFTb3VyY2VGaWxlOwogICAgICAgIGlmIChhU291cmNlRmlsZSA9PSBudWxsKSB7CiAgICAgICAgICBpZiAoYVNvdXJjZU1hcENvbnN1bWVyLmZpbGUgPT0gbnVsbCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYFNvdXJjZU1hcEdlbmVyYXRvci5wcm90b3R5cGUuYXBwbHlTb3VyY2VNYXAgcmVxdWlyZXMgZWl0aGVyIGFuIGV4cGxpY2l0IHNvdXJjZSBmaWxlLCBvciB0aGUgc291cmNlIG1hcCdzICJmaWxlIiBwcm9wZXJ0eS4gQm90aCB3ZXJlIG9taXR0ZWQuYAogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlRmlsZSA9IGFTb3VyY2VNYXBDb25zdW1lci5maWxlOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5fc291cmNlUm9vdDsKICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBzb3VyY2VGaWxlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBzb3VyY2VGaWxlKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3U291cmNlcyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKS5sZW5ndGggPiAwID8gbmV3IEFycmF5U2V0KCkgOiB0aGlzLl9zb3VyY2VzOwogICAgICAgIGNvbnN0IG5ld05hbWVzID0gbmV3IEFycmF5U2V0KCk7CiAgICAgICAgdGhpcy5fbWFwcGluZ3MudW5zb3J0ZWRGb3JFYWNoKGZ1bmN0aW9uKG1hcHBpbmcpIHsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSA9PT0gc291cmNlRmlsZSAmJiBtYXBwaW5nLm9yaWdpbmFsTGluZSAhPSBudWxsKSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsID0gYVNvdXJjZU1hcENvbnN1bWVyLm9yaWdpbmFsUG9zaXRpb25Gb3IoewogICAgICAgICAgICAgIGxpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICAgIGNvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbgogICAgICAgICAgICB9KTsKICAgICAgICAgICAgaWYgKG9yaWdpbmFsLnNvdXJjZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBvcmlnaW5hbC5zb3VyY2U7CiAgICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChzb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcuc291cmNlID0gdXRpbC5yZWxhdGl2ZShzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG1hcHBpbmcub3JpZ2luYWxMaW5lID0gb3JpZ2luYWwubGluZTsKICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWwuY29sdW1uOwogICAgICAgICAgICAgIGlmIChvcmlnaW5hbC5uYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIG1hcHBpbmcubmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBzb3VyY2UgPSBtYXBwaW5nLnNvdXJjZTsKICAgICAgICAgIGlmIChzb3VyY2UgIT0gbnVsbCAmJiAhbmV3U291cmNlcy5oYXMoc291cmNlKSkgewogICAgICAgICAgICBuZXdTb3VyY2VzLmFkZChzb3VyY2UpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbmFtZSA9IG1hcHBpbmcubmFtZTsKICAgICAgICAgIGlmIChuYW1lICE9IG51bGwgJiYgIW5ld05hbWVzLmhhcyhuYW1lKSkgewogICAgICAgICAgICBuZXdOYW1lcy5hZGQobmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgfSwgdGhpcyk7CiAgICAgICAgdGhpcy5fc291cmNlcyA9IG5ld1NvdXJjZXM7CiAgICAgICAgdGhpcy5fbmFtZXMgPSBuZXdOYW1lczsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlcy5mb3JFYWNoKGZ1bmN0aW9uKHNyY0ZpbGUpIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBhU291cmNlTWFwQ29uc3VtZXIuc291cmNlQ29udGVudEZvcihzcmNGaWxlKTsKICAgICAgICAgIGlmIChjb250ZW50ICE9IG51bGwpIHsKICAgICAgICAgICAgaWYgKGFTb3VyY2VNYXBQYXRoICE9IG51bGwpIHsKICAgICAgICAgICAgICBzcmNGaWxlID0gdXRpbC5qb2luKGFTb3VyY2VNYXBQYXRoLCBzcmNGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc3JjRmlsZSA9IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc3JjRmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zZXRTb3VyY2VDb250ZW50KHNyY0ZpbGUsIGNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBIG1hcHBpbmcgY2FuIGhhdmUgb25lIG9mIHRoZSB0aHJlZSBsZXZlbHMgb2YgZGF0YToKICAgICAgICoKICAgICAgICogICAxLiBKdXN0IHRoZSBnZW5lcmF0ZWQgcG9zaXRpb24uCiAgICAgICAqICAgMi4gVGhlIEdlbmVyYXRlZCBwb3NpdGlvbiwgb3JpZ2luYWwgcG9zaXRpb24sIGFuZCBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgMy4gR2VuZXJhdGVkIGFuZCBvcmlnaW5hbCBwb3NpdGlvbiwgb3JpZ2luYWwgc291cmNlLCBhcyB3ZWxsIGFzIGEgbmFtZQogICAgICAgKiAgICAgIHRva2VuLgogICAgICAgKgogICAgICAgKiBUbyBtYWludGFpbiBjb25zaXN0ZW5jeSwgd2UgdmFsaWRhdGUgdGhhdCBhbnkgbmV3IG1hcHBpbmcgYmVpbmcgYWRkZWQgZmFsbHMKICAgICAgICogaW4gdG8gb25lIG9mIHRoZXNlIGNhdGVnb3JpZXMuCiAgICAgICAqLwogICAgICBfdmFsaWRhdGVNYXBwaW5nKGFHZW5lcmF0ZWQsIGFPcmlnaW5hbCwgYVNvdXJjZSwgYU5hbWUpIHsKICAgICAgICBpZiAoYU9yaWdpbmFsICYmIHR5cGVvZiBhT3JpZ2luYWwubGluZSAhPT0gIm51bWJlciIgJiYgdHlwZW9mIGFPcmlnaW5hbC5jb2x1bW4gIT09ICJudW1iZXIiKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICJvcmlnaW5hbC5saW5lIGFuZCBvcmlnaW5hbC5jb2x1bW4gYXJlIG5vdCBudW1iZXJzIC0tIHlvdSBwcm9iYWJseSBtZWFudCB0byBvbWl0IHRoZSBvcmlnaW5hbCBtYXBwaW5nIGVudGlyZWx5IGFuZCBvbmx5IG1hcCB0aGUgZ2VuZXJhdGVkIHBvc2l0aW9uLiBJZiBzbywgcGFzcyBudWxsIGZvciB0aGUgb3JpZ2luYWwgbWFwcGluZyBpbnN0ZWFkIG9mIGFuIG9iamVjdCB3aXRoIGVtcHR5IG9yIG51bGwgdmFsdWVzLiIKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYUdlbmVyYXRlZC5saW5lID4gMCAmJiBhR2VuZXJhdGVkLmNvbHVtbiA+PSAwICYmICFhT3JpZ2luYWwgJiYgIWFTb3VyY2UgJiYgIWFOYW1lKSB7CiAgICAgICAgfSBlbHNlIGlmIChhR2VuZXJhdGVkICYmICJsaW5lIiBpbiBhR2VuZXJhdGVkICYmICJjb2x1bW4iIGluIGFHZW5lcmF0ZWQgJiYgYU9yaWdpbmFsICYmICJsaW5lIiBpbiBhT3JpZ2luYWwgJiYgImNvbHVtbiIgaW4gYU9yaWdpbmFsICYmIGFHZW5lcmF0ZWQubGluZSA+IDAgJiYgYUdlbmVyYXRlZC5jb2x1bW4gPj0gMCAmJiBhT3JpZ2luYWwubGluZSA+IDAgJiYgYU9yaWdpbmFsLmNvbHVtbiA+PSAwICYmIGFTb3VyY2UpIHsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1hcHBpbmc6ICIgKyBKU09OLnN0cmluZ2lmeSh7CiAgICAgICAgICAgIGdlbmVyYXRlZDogYUdlbmVyYXRlZCwKICAgICAgICAgICAgc291cmNlOiBhU291cmNlLAogICAgICAgICAgICBvcmlnaW5hbDogYU9yaWdpbmFsLAogICAgICAgICAgICBuYW1lOiBhTmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogU2VyaWFsaXplIHRoZSBhY2N1bXVsYXRlZCBtYXBwaW5ncyBpbiB0byB0aGUgc3RyZWFtIG9mIGJhc2UgNjQgVkxRcwogICAgICAgKiBzcGVjaWZpZWQgYnkgdGhlIHNvdXJjZSBtYXAgZm9ybWF0LgogICAgICAgKi8KICAgICAgX3NlcmlhbGl6ZU1hcHBpbmdzKCkgewogICAgICAgIGxldCBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzR2VuZXJhdGVkTGluZSA9IDE7CiAgICAgICAgbGV0IHByZXZpb3VzT3JpZ2luYWxDb2x1bW4gPSAwOwogICAgICAgIGxldCBwcmV2aW91c09yaWdpbmFsTGluZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzTmFtZSA9IDA7CiAgICAgICAgbGV0IHByZXZpb3VzU291cmNlID0gMDsKICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CiAgICAgICAgbGV0IG5leHQ7CiAgICAgICAgbGV0IG1hcHBpbmc7CiAgICAgICAgbGV0IG5hbWVJZHg7CiAgICAgICAgbGV0IHNvdXJjZUlkeDsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX21hcHBpbmdzLnRvQXJyYXkoKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gbWFwcGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgIG1hcHBpbmcgPSBtYXBwaW5nc1tpXTsKICAgICAgICAgIG5leHQgPSAiIjsKICAgICAgICAgIGlmIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgICAgICAgIHdoaWxlIChtYXBwaW5nLmdlbmVyYXRlZExpbmUgIT09IHByZXZpb3VzR2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIG5leHQgKz0gIjsiOwogICAgICAgICAgICAgIHByZXZpb3VzR2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPiAwKSB7CiAgICAgICAgICAgIGlmICghdXRpbC5jb21wYXJlQnlHZW5lcmF0ZWRQb3NpdGlvbnNJbmZsYXRlZChtYXBwaW5nLCBtYXBwaW5nc1tpIC0gMV0pKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbmV4dCArPSAiLCI7CiAgICAgICAgICB9CiAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gLSBwcmV2aW91c0dlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICBwcmV2aW91c0dlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlSWR4ID0gdGhpcy5fc291cmNlcy5pbmRleE9mKG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgbmV4dCArPSBiYXNlNjRWTFEuZW5jb2RlKHNvdXJjZUlkeCAtIHByZXZpb3VzU291cmNlKTsKICAgICAgICAgICAgcHJldmlvdXNTb3VyY2UgPSBzb3VyY2VJZHg7CiAgICAgICAgICAgIG5leHQgKz0gYmFzZTY0VkxRLmVuY29kZShtYXBwaW5nLm9yaWdpbmFsTGluZSAtIDEgLSBwcmV2aW91c09yaWdpbmFsTGluZSk7CiAgICAgICAgICAgIHByZXZpb3VzT3JpZ2luYWxMaW5lID0gbWFwcGluZy5vcmlnaW5hbExpbmUgLSAxOwogICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobWFwcGluZy5vcmlnaW5hbENvbHVtbiAtIHByZXZpb3VzT3JpZ2luYWxDb2x1bW4pOwogICAgICAgICAgICBwcmV2aW91c09yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgbmFtZUlkeCA9IHRoaXMuX25hbWVzLmluZGV4T2YobWFwcGluZy5uYW1lKTsKICAgICAgICAgICAgICBuZXh0ICs9IGJhc2U2NFZMUS5lbmNvZGUobmFtZUlkeCAtIHByZXZpb3VzTmFtZSk7CiAgICAgICAgICAgICAgcHJldmlvdXNOYW1lID0gbmFtZUlkeDsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmVzdWx0ICs9IG5leHQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgX2dlbmVyYXRlU291cmNlc0NvbnRlbnQoYVNvdXJjZXMsIGFTb3VyY2VSb290KSB7CiAgICAgICAgcmV0dXJuIGFTb3VyY2VzLm1hcChmdW5jdGlvbihzb3VyY2UpIHsKICAgICAgICAgIGlmICghdGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFTb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5yZWxhdGl2ZShhU291cmNlUm9vdCwgc291cmNlKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtleSA9IHV0aWwudG9TZXRTdHJpbmcoc291cmNlKTsKICAgICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fc291cmNlc0NvbnRlbnRzLCBrZXkpID8gdGhpcy5fc291cmNlc0NvbnRlbnRzW2tleV0gOiBudWxsOwogICAgICAgIH0sIHRoaXMpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBFeHRlcm5hbGl6ZSB0aGUgc291cmNlIG1hcC4KICAgICAgICovCiAgICAgIHRvSlNPTigpIHsKICAgICAgICBjb25zdCBtYXAyID0gewogICAgICAgICAgdmVyc2lvbjogdGhpcy5fdmVyc2lvbiwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMuX3NvdXJjZXMudG9BcnJheSgpLAogICAgICAgICAgbmFtZXM6IHRoaXMuX25hbWVzLnRvQXJyYXkoKSwKICAgICAgICAgIG1hcHBpbmdzOiB0aGlzLl9zZXJpYWxpemVNYXBwaW5ncygpCiAgICAgICAgfTsKICAgICAgICBpZiAodGhpcy5fZmlsZSAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLmZpbGUgPSB0aGlzLl9maWxlOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZVJvb3QgPSB0aGlzLl9zb3VyY2VSb290OwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fc291cmNlc0NvbnRlbnRzKSB7CiAgICAgICAgICBtYXAyLnNvdXJjZXNDb250ZW50ID0gdGhpcy5fZ2VuZXJhdGVTb3VyY2VzQ29udGVudChtYXAyLnNvdXJjZXMsIG1hcDIuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZW5kZXIgdGhlIHNvdXJjZSBtYXAgYmVpbmcgZ2VuZXJhdGVkIHRvIGEgc3RyaW5nLgogICAgICAgKi8KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9KU09OKCkpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwR2VuZXJhdG9yLnByb3RvdHlwZS5fdmVyc2lvbiA9IDM7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBHZW5lcmF0b3IgPSBTb3VyY2VNYXBHZW5lcmF0b3I7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3NvdXJjZS1tYXAtbnBtLTAuNy40LWJjOGQwMThhYjYtMTAuemlwL25vZGVfbW9kdWxlcy9zb3VyY2UtbWFwL2xpYi9iaW5hcnktc2VhcmNoLmpzCnZhciByZXF1aXJlX2JpbmFyeV9zZWFyY2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL2JpbmFyeS1zZWFyY2guanMiKGV4cG9ydHMyKSB7CiAgICBleHBvcnRzMi5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBleHBvcnRzMi5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBmdW5jdGlvbiByZWN1cnNpdmVTZWFyY2goYUxvdywgYUhpZ2gsIGFOZWVkbGUsIGFIYXlzdGFjaywgYUNvbXBhcmUsIGFCaWFzKSB7CiAgICAgIGNvbnN0IG1pZCA9IE1hdGguZmxvb3IoKGFIaWdoIC0gYUxvdykgLyAyKSArIGFMb3c7CiAgICAgIGNvbnN0IGNtcCA9IGFDb21wYXJlKGFOZWVkbGUsIGFIYXlzdGFja1ttaWRdLCB0cnVlKTsKICAgICAgaWYgKGNtcCA9PT0gMCkgewogICAgICAgIHJldHVybiBtaWQ7CiAgICAgIH0gZWxzZSBpZiAoY21wID4gMCkgewogICAgICAgIGlmIChhSGlnaCAtIG1pZCA+IDEpIHsKICAgICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2gobWlkLCBhSGlnaCwgYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpOwogICAgICAgIH0KICAgICAgICBpZiAoYUJpYXMgPT0gZXhwb3J0czIuTEVBU1RfVVBQRVJfQk9VTkQpIHsKICAgICAgICAgIHJldHVybiBhSGlnaCA8IGFIYXlzdGFjay5sZW5ndGggPyBhSGlnaCA6IC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbWlkOwogICAgICB9CiAgICAgIGlmIChtaWQgLSBhTG93ID4gMSkgewogICAgICAgIHJldHVybiByZWN1cnNpdmVTZWFyY2goYUxvdywgbWlkLCBhTmVlZGxlLCBhSGF5c3RhY2ssIGFDb21wYXJlLCBhQmlhcyk7CiAgICAgIH0KICAgICAgaWYgKGFCaWFzID09IGV4cG9ydHMyLkxFQVNUX1VQUEVSX0JPVU5EKSB7CiAgICAgICAgcmV0dXJuIG1pZDsKICAgICAgfQogICAgICByZXR1cm4gYUxvdyA8IDAgPyAtMSA6IGFMb3c7CiAgICB9CiAgICBleHBvcnRzMi5zZWFyY2ggPSBmdW5jdGlvbiBzZWFyY2goYU5lZWRsZSwgYUhheXN0YWNrLCBhQ29tcGFyZSwgYUJpYXMpIHsKICAgICAgaWYgKGFIYXlzdGFjay5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gLTE7CiAgICAgIH0KICAgICAgbGV0IGluZGV4ID0gcmVjdXJzaXZlU2VhcmNoKAogICAgICAgIC0xLAogICAgICAgIGFIYXlzdGFjay5sZW5ndGgsCiAgICAgICAgYU5lZWRsZSwKICAgICAgICBhSGF5c3RhY2ssCiAgICAgICAgYUNvbXBhcmUsCiAgICAgICAgYUJpYXMgfHwgZXhwb3J0czIuR1JFQVRFU1RfTE9XRVJfQk9VTkQKICAgICAgKTsKICAgICAgaWYgKGluZGV4IDwgMCkgewogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICB3aGlsZSAoaW5kZXggLSAxID49IDApIHsKICAgICAgICBpZiAoYUNvbXBhcmUoYUhheXN0YWNrW2luZGV4XSwgYUhheXN0YWNrW2luZGV4IC0gMV0sIHRydWUpICE9PSAwKSB7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLS1pbmRleDsKICAgICAgfQogICAgICByZXR1cm4gaW5kZXg7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzCnZhciByZXF1aXJlX3JlYWRfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvcmVhZC13YXNtLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGlzQnJvd3NlckVudmlyb25tZW50ID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiB0eXBlb2Ygd2luZG93ICE9PSAidW5kZWZpbmVkIiAmJiB0aGlzID09PSB3aW5kb3c7CiAgICB9LmNhbGwoKTsKICAgIGlmIChpc0Jyb3dzZXJFbnZpcm9ubWVudCkgewogICAgICBsZXQgbWFwcGluZ3NXYXNtID0gbnVsbDsKICAgICAgbW9kdWxlMi5leHBvcnRzID0gZnVuY3Rpb24gcmVhZFdhc20oKSB7CiAgICAgICAgaWYgKHR5cGVvZiBtYXBwaW5nc1dhc20gPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gZmV0Y2gobWFwcGluZ3NXYXNtKS50aGVuKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuYXJyYXlCdWZmZXIoKSk7CiAgICAgICAgfQogICAgICAgIGlmIChtYXBwaW5nc1dhc20gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikgewogICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShtYXBwaW5nc1dhc20pOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIllvdSBtdXN0IHByb3ZpZGUgdGhlIHN0cmluZyBVUkwgb3IgQXJyYXlCdWZmZXIgY29udGVudHMgb2YgbGliL21hcHBpbmdzLndhc20gYnkgY2FsbGluZyBTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplKHsgJ2xpYi9tYXBwaW5ncy53YXNtJzogLi4uIH0pIGJlZm9yZSB1c2luZyBTb3VyY2VNYXBDb25zdW1lciIpOwogICAgICB9OwogICAgICBtb2R1bGUyLmV4cG9ydHMuaW5pdGlhbGl6ZSA9IChpbnB1dCkgPT4gbWFwcGluZ3NXYXNtID0gaW5wdXQ7CiAgICB9IGVsc2UgewogICAgICBjb25zdCBmcyA9IHJlcXVpcmUoImZzIik7CiAgICAgIGNvbnN0IHBhdGggPSByZXF1aXJlKCJwYXRoIik7CiAgICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHJlYWRXYXNtKCkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICBjb25zdCB3YXNtUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICJtYXBwaW5ncy53YXNtIik7CiAgICAgICAgICBmcy5yZWFkRmlsZSh3YXNtUGF0aCwgbnVsbCwgKGVycm9yLCBkYXRhKSA9PiB7CiAgICAgICAgICAgIGlmIChlcnJvcikgewogICAgICAgICAgICAgIHJlamVjdChlcnJvcik7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc29sdmUoZGF0YS5idWZmZXIpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgIH07CiAgICAgIG1vZHVsZTIuZXhwb3J0cy5pbml0aWFsaXplID0gKF8pID0+IHsKICAgICAgICBjb25zb2xlLmRlYnVnKCJTb3VyY2VNYXBDb25zdW1lci5pbml0aWFsaXplIGlzIGEgbm8tb3Agd2hlbiBydW5uaW5nIGluIG5vZGUuanMiKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3dhc20uanMKdmFyIHJlcXVpcmVfd2FzbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvd2FzbS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICBmdW5jdGlvbiBNYXBwaW5nKCkgewogICAgICB0aGlzLmdlbmVyYXRlZExpbmUgPSAwOwogICAgICB0aGlzLmdlbmVyYXRlZENvbHVtbiA9IDA7CiAgICAgIHRoaXMubGFzdEdlbmVyYXRlZENvbHVtbiA9IG51bGw7CiAgICAgIHRoaXMuc291cmNlID0gbnVsbDsKICAgICAgdGhpcy5vcmlnaW5hbExpbmUgPSBudWxsOwogICAgICB0aGlzLm9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgdGhpcy5uYW1lID0gbnVsbDsKICAgIH0KICAgIHZhciBjYWNoZWRXYXNtID0gbnVsbDsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IGZ1bmN0aW9uIHdhc20oKSB7CiAgICAgIGlmIChjYWNoZWRXYXNtKSB7CiAgICAgICAgcmV0dXJuIGNhY2hlZFdhc207CiAgICAgIH0KICAgICAgY29uc3QgY2FsbGJhY2tTdGFjayA9IFtdOwogICAgICBjYWNoZWRXYXNtID0gcmVhZFdhc20oKS50aGVuKChidWZmZXIpID0+IHsKICAgICAgICByZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGUoYnVmZmVyLCB7CiAgICAgICAgICBlbnY6IHsKICAgICAgICAgICAgbWFwcGluZ19jYWxsYmFjayhnZW5lcmF0ZWRMaW5lLCBnZW5lcmF0ZWRDb2x1bW4sIGhhc0xhc3RHZW5lcmF0ZWRDb2x1bW4sIGxhc3RHZW5lcmF0ZWRDb2x1bW4sIGhhc09yaWdpbmFsLCBzb3VyY2UsIG9yaWdpbmFsTGluZSwgb3JpZ2luYWxDb2x1bW4sIGhhc05hbWUsIG5hbWUpIHsKICAgICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gbmV3IE1hcHBpbmcoKTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZExpbmUgPSBnZW5lcmF0ZWRMaW5lICsgMTsKICAgICAgICAgICAgICBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiA9IGdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgICAgICBpZiAoaGFzTGFzdEdlbmVyYXRlZENvbHVtbikgewogICAgICAgICAgICAgICAgbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uID0gbGFzdEdlbmVyYXRlZENvbHVtbiAtIDE7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChoYXNPcmlnaW5hbCkgewogICAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSBzb3VyY2U7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsTGluZSA9IG9yaWdpbmFsTGluZSArIDE7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm9yaWdpbmFsQ29sdW1uID0gb3JpZ2luYWxDb2x1bW47CiAgICAgICAgICAgICAgICBpZiAoaGFzTmFtZSkgewogICAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSBuYW1lOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYWxsYmFja1N0YWNrW2NhbGxiYWNrU3RhY2subGVuZ3RoIC0gMV0obWFwcGluZyk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2FsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImFsbF9nZW5lcmF0ZWRfbG9jYXRpb25zX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2NvbXB1dGVfY29sdW1uX3NwYW5zKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgiY29tcHV0ZV9jb2x1bW5fc3BhbnMiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfZ2VuZXJhdGVkX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoImdlbmVyYXRlZF9sb2NhdGlvbl9mb3IiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX2dlbmVyYXRlZF9sb2NhdGlvbl9mb3IoKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJnZW5lcmF0ZWRfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X29yaWdpbmFsX2xvY2F0aW9uX2ZvcigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWUoIm9yaWdpbmFsX2xvY2F0aW9uX2ZvciIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfb3JpZ2luYWxfbG9jYXRpb25fZm9yKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgib3JpZ2luYWxfbG9jYXRpb25fZm9yIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHN0YXJ0X3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgZW5kX3BhcnNlX21hcHBpbmdzKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZUVuZCgicGFyc2VfbWFwcGluZ3MiKTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3RhcnRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9nZW5lcmF0ZWRfbG9jYXRpb24oKSB7CiAgICAgICAgICAgICAgY29uc29sZS50aW1lRW5kKCJzb3J0X2J5X2dlbmVyYXRlZF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBzdGFydF9zb3J0X2J5X29yaWdpbmFsX2xvY2F0aW9uKCkgewogICAgICAgICAgICAgIGNvbnNvbGUudGltZSgic29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbiIpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBlbmRfc29ydF9ieV9vcmlnaW5hbF9sb2NhdGlvbigpIHsKICAgICAgICAgICAgICBjb25zb2xlLnRpbWVFbmQoInNvcnRfYnlfb3JpZ2luYWxfbG9jYXRpb24iKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KS50aGVuKChXYXNtKSA9PiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGV4cG9ydHM6IFdhc20uaW5zdGFuY2UuZXhwb3J0cywKICAgICAgICAgIHdpdGhNYXBwaW5nQ2FsbGJhY2s6IChtYXBwaW5nQ2FsbGJhY2ssIGYpID0+IHsKICAgICAgICAgICAgY2FsbGJhY2tTdGFjay5wdXNoKG1hcHBpbmdDYWxsYmFjayk7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgZigpOwogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgIGNhbGxiYWNrU3RhY2sucG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9KS50aGVuKG51bGwsIChlKSA9PiB7CiAgICAgICAgY2FjaGVkV2FzbSA9IG51bGw7CiAgICAgICAgdGhyb3cgZTsKICAgICAgfSk7CiAgICAgIHJldHVybiBjYWNoZWRXYXNtOwogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1tYXAtY29uc3VtZXIuanMKdmFyIHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW1hcC1jb25zdW1lci5qcyIoZXhwb3J0czIpIHsKICAgIHZhciB1dGlsID0gcmVxdWlyZV91dGlsMigpOwogICAgdmFyIGJpbmFyeVNlYXJjaCA9IHJlcXVpcmVfYmluYXJ5X3NlYXJjaCgpOwogICAgdmFyIEFycmF5U2V0ID0gcmVxdWlyZV9hcnJheV9zZXQoKS5BcnJheVNldDsKICAgIHZhciBiYXNlNjRWTFEgPSByZXF1aXJlX2Jhc2U2NF92bHEoKTsKICAgIHZhciByZWFkV2FzbSA9IHJlcXVpcmVfcmVhZF93YXNtKCk7CiAgICB2YXIgd2FzbSA9IHJlcXVpcmVfd2FzbSgpOwogICAgdmFyIElOVEVSTkFMID0gU3ltYm9sKCJzbWNJbnRlcm5hbCIpOwogICAgdmFyIFNvdXJjZU1hcENvbnN1bWVyID0gY2xhc3MgX1NvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIGlmIChhU291cmNlTWFwID09IElOVEVSTkFMKSB7CiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX2ZhY3RvcnkoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIH0KICAgICAgc3RhdGljIGluaXRpYWxpemUob3B0cykgewogICAgICAgIHJlYWRXYXNtLmluaXRpYWxpemUob3B0c1sibGliL21hcHBpbmdzLndhc20iXSk7CiAgICAgIH0KICAgICAgc3RhdGljIGZyb21Tb3VyY2VNYXAoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBfZmFjdG9yeUJTTShhU291cmNlTWFwLCBhU291cmNlTWFwVVJMKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29uc3RydWN0IGEgbmV3IGBTb3VyY2VNYXBDb25zdW1lcmAgZnJvbSBgcmF3U291cmNlTWFwYCBhbmQgYHNvdXJjZU1hcFVybGAKICAgICAgICogKHNlZSB0aGUgYFNvdXJjZU1hcENvbnN1bWVyYCBjb25zdHJ1Y3RvciBmb3IgZGV0YWlscy4gVGhlbiwgaW52b2tlIHRoZSBgYXN5bmMKICAgICAgICogZnVuY3Rpb24gZihTb3VyY2VNYXBDb25zdW1lcikgLT4gVGAgd2l0aCB0aGUgbmV3bHkgY29uc3RydWN0ZWQgY29uc3VtZXIsIHdhaXQKICAgICAgICogZm9yIGBmYCB0byBjb21wbGV0ZSwgY2FsbCBgZGVzdHJveWAgb24gdGhlIGNvbnN1bWVyLCBhbmQgcmV0dXJuIGBmYCdzIHJldHVybgogICAgICAgKiB2YWx1ZS4KICAgICAgICoKICAgICAgICogWW91IG11c3Qgbm90IHVzZSB0aGUgY29uc3VtZXIgYWZ0ZXIgYGZgIGNvbXBsZXRlcyEKICAgICAgICoKICAgICAgICogQnkgdXNpbmcgYHdpdGhgLCB5b3UgZG8gbm90IGhhdmUgdG8gcmVtZW1iZXIgdG8gbWFudWFsbHkgY2FsbCBgZGVzdHJveWAgb24KICAgICAgICogdGhlIGNvbnN1bWVyLCBzaW5jZSBpdCB3aWxsIGJlIGNhbGxlZCBhdXRvbWF0aWNhbGx5IG9uY2UgYGZgIGNvbXBsZXRlcy4KICAgICAgICoKICAgICAgICogYGBganMKICAgICAgICogY29uc3QgeFNxdWFyZWQgPSBhd2FpdCBTb3VyY2VNYXBDb25zdW1lci53aXRoKAogICAgICAgKiAgIG15UmF3U291cmNlTWFwLAogICAgICAgKiAgIG51bGwsCiAgICAgICAqICAgYXN5bmMgZnVuY3Rpb24gKGNvbnN1bWVyKSB7CiAgICAgICAqICAgICAvLyBVc2UgYGNvbnN1bWVyYCBpbnNpZGUgaGVyZSBhbmQgZG9uJ3Qgd29ycnkgYWJvdXQgcmVtZW1iZXJpbmcKICAgICAgICogICAgIC8vIHRvIGNhbGwgYGRlc3Ryb3lgLgogICAgICAgKgogICAgICAgKiAgICAgY29uc3QgeCA9IGF3YWl0IHdoYXRldmVyKGNvbnN1bWVyKTsKICAgICAgICogICAgIHJldHVybiB4ICogeDsKICAgICAgICogICB9CiAgICAgICAqICk7CiAgICAgICAqCiAgICAgICAqIC8vIFlvdSBtYXkgbm90IHVzZSB0aGF0IGBjb25zdW1lcmAgYW55bW9yZSBvdXQgaGVyZTsgaXQgaGFzCiAgICAgICAqIC8vIGJlZW4gZGVzdHJveWVkLiBCdXQgeW91IGNhbiB1c2UgYHhTcXVhcmVkYC4KICAgICAgICogY29uc29sZS5sb2coeFNxdWFyZWQpOwogICAgICAgKiBgYGAKICAgICAgICovCiAgICAgIHN0YXRpYyBhc3luYyB3aXRoKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsLCBmKSB7CiAgICAgICAgY29uc3QgY29uc3VtZXIgPSBhd2FpdCBuZXcgX1NvdXJjZU1hcENvbnN1bWVyKHJhd1NvdXJjZU1hcCwgc291cmNlTWFwVXJsKTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGF3YWl0IGYoY29uc3VtZXIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICBjb25zdW1lci5kZXN0cm95KCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBQYXJzZSB0aGUgbWFwcGluZ3MgaW4gYSBzdHJpbmcgaW4gdG8gYSBkYXRhIHN0cnVjdHVyZSB3aGljaCB3ZSBjYW4gZWFzaWx5CiAgICAgICAqIHF1ZXJ5ICh0aGUgb3JkZXJlZCBhcnJheXMgaW4gdGhlIGB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NgIGFuZAogICAgICAgKiBgdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NgIHByb3BlcnRpZXMpLgogICAgICAgKi8KICAgICAgX3BhcnNlTWFwcGluZ3MoYVN0ciwgYVNvdXJjZVJvb3QpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgX3BhcnNlTWFwcGluZ3MiKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogSXRlcmF0ZSBvdmVyIGVhY2ggbWFwcGluZyBiZXR3ZWVuIGFuIG9yaWdpbmFsIHNvdXJjZS9saW5lL2NvbHVtbiBhbmQgYQogICAgICAgKiBnZW5lcmF0ZWQgbGluZS9jb2x1bW4gaW4gdGhpcyBzb3VyY2UgbWFwLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gRnVuY3Rpb24gYUNhbGxiYWNrCiAgICAgICAqICAgICAgICBUaGUgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2l0aCBlYWNoIG1hcHBpbmcuCiAgICAgICAqIEBwYXJhbSBPYmplY3QgYUNvbnRleHQKICAgICAgICogICAgICAgIE9wdGlvbmFsLiBJZiBzcGVjaWZpZWQsIHRoaXMgb2JqZWN0IHdpbGwgYmUgdGhlIHZhbHVlIG9mIGB0aGlzYCBldmVyeQogICAgICAgKiAgICAgICAgdGltZSB0aGF0IGBhQ2FsbGJhY2tgIGlzIGNhbGxlZC4KICAgICAgICogQHBhcmFtIGFPcmRlcgogICAgICAgKiAgICAgICAgRWl0aGVyIGBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVJgIG9yCiAgICAgICAqICAgICAgICBgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVJgLiBTcGVjaWZpZXMgd2hldGhlciB5b3Ugd2FudCB0bwogICAgICAgKiAgICAgICAgaXRlcmF0ZSBvdmVyIHRoZSBtYXBwaW5ncyBzb3J0ZWQgYnkgdGhlIGdlbmVyYXRlZCBmaWxlJ3MgbGluZS9jb2x1bW4KICAgICAgICogICAgICAgIG9yZGVyIG9yIHRoZSBvcmlnaW5hbCdzIHNvdXJjZS9saW5lL2NvbHVtbiBvcmRlciwgcmVzcGVjdGl2ZWx5LiBEZWZhdWx0cyB0bwogICAgICAgKiAgICAgICAgYFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUmAuCiAgICAgICAqLwogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZWFjaE1hcHBpbmciKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbGwgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwcm92aWRlZC4gSWYgbm8gY29sdW1uIGlzIHByb3ZpZGVkLCByZXR1cm5zIGFsbCBtYXBwaW5ncwogICAgICAgKiBjb3JyZXNwb25kaW5nIHRvIGEgZWl0aGVyIHRoZSBsaW5lIHdlIGFyZSBzZWFyY2hpbmcgZm9yIG9yIHRoZSBuZXh0CiAgICAgICAqIGNsb3Nlc3QgbGluZSB0aGF0IGhhcyBhbnkgbWFwcGluZ3MuIE90aGVyd2lzZSwgcmV0dXJucyBhbGwgbWFwcGluZ3MKICAgICAgICogY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gbGluZSBhbmQgZWl0aGVyIHRoZSBjb2x1bW4gd2UgYXJlIHNlYXJjaGluZyBmb3IKICAgICAgICogb3IgdGhlIG5leHQgY2xvc2VzdCBjb2x1bW4gdGhhdCBoYXMgYW55IG9mZnNldHMuCiAgICAgICAqCiAgICAgICAqIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBPcHRpb25hbC4gdGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICoKICAgICAgICogYW5kIGFuIGFycmF5IG9mIG9iamVjdHMgaXMgcmV0dXJuZWQsIGVhY2ggd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgIFRoZSBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqLwogICAgICBhbGxHZW5lcmF0ZWRQb3NpdGlvbnNGb3IoYUFyZ3MpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yIik7CiAgICAgIH0KICAgICAgZGVzdHJveSgpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgZGVzdHJveSIpOwogICAgICB9CiAgICB9OwogICAgU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLl92ZXJzaW9uID0gMzsKICAgIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUiA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5PUklHSU5BTF9PUkRFUiA9IDI7CiAgICBTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCA9IDE7CiAgICBTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCA9IDI7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IFNvdXJjZU1hcENvbnN1bWVyOwogICAgdmFyIEJhc2ljU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBfQmFzaWNTb3VyY2VNYXBDb25zdW1lciBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBsZXQgc291cmNlcyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZXMiKTsKICAgICAgICAgIGNvbnN0IG5hbWVzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibmFtZXMiLCBbXSk7CiAgICAgICAgICBsZXQgc291cmNlUm9vdCA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNvdXJjZVJvb3QiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IHNvdXJjZXNDb250ZW50ID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAic291cmNlc0NvbnRlbnQiLCBudWxsKTsKICAgICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdXRpbC5nZXRBcmcoc291cmNlTWFwLCAibWFwcGluZ3MiKTsKICAgICAgICAgIGNvbnN0IGZpbGUgPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJmaWxlIiwgbnVsbCk7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZVJvb3QpIHsKICAgICAgICAgICAgc291cmNlUm9vdCA9IHV0aWwubm9ybWFsaXplKHNvdXJjZVJvb3QpOwogICAgICAgICAgfQogICAgICAgICAgc291cmNlcyA9IHNvdXJjZXMubWFwKFN0cmluZykubWFwKHV0aWwubm9ybWFsaXplKS5tYXAoZnVuY3Rpb24oc291cmNlKSB7CiAgICAgICAgICAgIHJldHVybiBzb3VyY2VSb290ICYmIHV0aWwuaXNBYnNvbHV0ZShzb3VyY2VSb290KSAmJiB1dGlsLmlzQWJzb2x1dGUoc291cmNlKSA/IHV0aWwucmVsYXRpdmUoc291cmNlUm9vdCwgc291cmNlKSA6IHNvdXJjZTsKICAgICAgICAgIH0pOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBBcnJheVNldC5mcm9tQXJyYXkobmFtZXMubWFwKFN0cmluZyksIHRydWUpOwogICAgICAgICAgdGhhdC5fc291cmNlcyA9IEFycmF5U2V0LmZyb21BcnJheShzb3VyY2VzLCB0cnVlKTsKICAgICAgICAgIHRoYXQuX2Fic29sdXRlU291cmNlcyA9IHRoYXQuX3NvdXJjZXMudG9BcnJheSgpLm1hcChmdW5jdGlvbihzKSB7CiAgICAgICAgICAgIHJldHVybiB1dGlsLmNvbXB1dGVTb3VyY2VVUkwoc291cmNlUm9vdCwgcywgYVNvdXJjZU1hcFVSTCk7CiAgICAgICAgICB9KTsKICAgICAgICAgIHRoYXQuc291cmNlUm9vdCA9IHNvdXJjZVJvb3Q7CiAgICAgICAgICB0aGF0LnNvdXJjZXNDb250ZW50ID0gc291cmNlc0NvbnRlbnQ7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICAgICAgdGhhdC5fc291cmNlTWFwVVJMID0gYVNvdXJjZU1hcFVSTDsKICAgICAgICAgIHRoYXQuZmlsZSA9IGZpbGU7CiAgICAgICAgICB0aGF0Ll9jb21wdXRlZENvbHVtblNwYW5zID0gZmFsc2U7CiAgICAgICAgICB0aGF0Ll9tYXBwaW5nc1B0ciA9IDA7CiAgICAgICAgICB0aGF0Ll93YXNtID0gbnVsbDsKICAgICAgICAgIHJldHVybiB3YXNtKCkudGhlbigodykgPT4gewogICAgICAgICAgICB0aGF0Ll93YXNtID0gdzsKICAgICAgICAgICAgcmV0dXJuIHRoYXQ7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogVXRpbGl0eSBmdW5jdGlvbiB0byBmaW5kIHRoZSBpbmRleCBvZiBhIHNvdXJjZS4gIFJldHVybnMgLTEgaWYgbm90CiAgICAgICAqIGZvdW5kLgogICAgICAgKi8KICAgICAgX2ZpbmRTb3VyY2VJbmRleChhU291cmNlKSB7CiAgICAgICAgbGV0IHJlbGF0aXZlU291cmNlID0gYVNvdXJjZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VSb290ICE9IG51bGwpIHsKICAgICAgICAgIHJlbGF0aXZlU291cmNlID0gdXRpbC5yZWxhdGl2ZSh0aGlzLnNvdXJjZVJvb3QsIHJlbGF0aXZlU291cmNlKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZXMuaGFzKHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZXMuaW5kZXhPZihyZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fYWJzb2x1dGVTb3VyY2VzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgICBpZiAodGhpcy5fYWJzb2x1dGVTb3VyY2VzW2ldID09IGFTb3VyY2UpIHsKICAgICAgICAgICAgcmV0dXJuIGk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAtMTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgQmFzaWNTb3VyY2VNYXBDb25zdW1lciBmcm9tIGEgU291cmNlTWFwR2VuZXJhdG9yLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gU291cmNlTWFwR2VuZXJhdG9yIGFTb3VyY2VNYXAKICAgICAgICogICAgICAgIFRoZSBzb3VyY2UgbWFwIHRoYXQgd2lsbCBiZSBjb25zdW1lZC4KICAgICAgICogQHBhcmFtIFN0cmluZyBhU291cmNlTWFwVVJMCiAgICAgICAqICAgICAgICBUaGUgVVJMIGF0IHdoaWNoIHRoZSBzb3VyY2UgbWFwIGNhbiBiZSBmb3VuZCAob3B0aW9uYWwpCiAgICAgICAqIEByZXR1cm5zIEJhc2ljU291cmNlTWFwQ29uc3VtZXIKICAgICAgICovCiAgICAgIHN0YXRpYyBmcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgICByZXR1cm4gbmV3IF9CYXNpY1NvdXJjZU1hcENvbnN1bWVyKGFTb3VyY2VNYXAudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgICAgZ2V0IHNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Fic29sdXRlU291cmNlcy5zbGljZSgpOwogICAgICB9CiAgICAgIF9nZXRNYXBwaW5nc1B0cigpIHsKICAgICAgICBpZiAodGhpcy5fbWFwcGluZ3NQdHIgPT09IDApIHsKICAgICAgICAgIHRoaXMuX3BhcnNlTWFwcGluZ3ModGhpcy5fbWFwcGluZ3MsIHRoaXMuc291cmNlUm9vdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9tYXBwaW5nc1B0cjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3Qgc2l6ZSA9IGFTdHIubGVuZ3RoOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLmFsbG9jYXRlX21hcHBpbmdzKHNpemUpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzQnVmID0gbmV3IFVpbnQ4QXJyYXkodGhpcy5fd2FzbS5leHBvcnRzLm1lbW9yeS5idWZmZXIsIG1hcHBpbmdzQnVmUHRyLCBzaXplKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgbWFwcGluZ3NCdWZbaV0gPSBhU3RyLmNoYXJDb2RlQXQoaSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1hcHBpbmdzUHRyID0gdGhpcy5fd2FzbS5leHBvcnRzLnBhcnNlX21hcHBpbmdzKG1hcHBpbmdzQnVmUHRyKTsKICAgICAgICBpZiAoIW1hcHBpbmdzUHRyKSB7CiAgICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMuX3dhc20uZXhwb3J0cy5nZXRfbGFzdF9lcnJvcigpOwogICAgICAgICAgbGV0IG1zZyA9IGBFcnJvciBwYXJzaW5nIG1hcHBpbmdzIChjb2RlICR7ZXJyb3J9KTogYDsKICAgICAgICAgIHN3aXRjaCAoZXJyb3IpIHsKICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG5lZ2F0aXZlIGxpbmUsIGNvbHVtbiwgc291cmNlIGluZGV4LCBvciBuYW1lIGluZGV4IjsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIG1zZyArPSAidGhlIG1hcHBpbmdzIGNvbnRhaW5lZCBhIG51bWJlciBsYXJnZXIgdGhhbiAyKiozMiI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBtc2cgKz0gInJlYWNoZWQgRU9GIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBtc2cgKz0gImludmFsaWQgYmFzZSA2NCBjaGFyYWN0ZXIgd2hpbGUgcGFyc2luZyBhIFZMUSI7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgbXNnICs9ICJ1bmtub3duIGVycm9yIGNvZGUiOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21hcHBpbmdzUHRyID0gbWFwcGluZ3NQdHI7CiAgICAgIH0KICAgICAgZWFjaE1hcHBpbmcoYUNhbGxiYWNrLCBhQ29udGV4dCwgYU9yZGVyKSB7CiAgICAgICAgY29uc3QgY29udGV4dCA9IGFDb250ZXh0IHx8IG51bGw7CiAgICAgICAgY29uc3Qgb3JkZXIgPSBhT3JkZXIgfHwgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOwogICAgICAgIGNvbnN0IHNvdXJjZVJvb3QgPSB0aGlzLnNvdXJjZVJvb3Q7CiAgICAgICAgdGhpcy5fd2FzbS53aXRoTWFwcGluZ0NhbGxiYWNrKAogICAgICAgICAgKG1hcHBpbmcpID0+IHsKICAgICAgICAgICAgaWYgKG1hcHBpbmcuc291cmNlICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgbWFwcGluZy5zb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgICBtYXBwaW5nLnNvdXJjZSA9IHV0aWwuY29tcHV0ZVNvdXJjZVVSTChzb3VyY2VSb290LCBtYXBwaW5nLnNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgICBpZiAobWFwcGluZy5uYW1lICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUgPSB0aGlzLl9uYW1lcy5hdChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBhQ2FsbGJhY2suY2FsbChjb250ZXh0LCBtYXBwaW5nKTsKICAgICAgICAgIH0sCiAgICAgICAgICAoKSA9PiB7CiAgICAgICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLkdFTkVSQVRFRF9PUkRFUjoKICAgICAgICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5ieV9nZW5lcmF0ZWRfbG9jYXRpb24odGhpcy5fZ2V0TWFwcGluZ3NQdHIoKSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIFNvdXJjZU1hcENvbnN1bWVyLk9SSUdJTkFMX09SREVSOgogICAgICAgICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmJ5X29yaWdpbmFsX2xvY2F0aW9uKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBvcmRlciBvZiBpdGVyYXRpb24uIik7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICApOwogICAgICB9CiAgICAgIGFsbEdlbmVyYXRlZFBvc2l0aW9uc0ZvcihhQXJncykgewogICAgICAgIGxldCBzb3VyY2UgPSB1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gYUFyZ3MuY29sdW1uIHx8IDA7CiAgICAgICAgc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KHNvdXJjZSk7CiAgICAgICAgaWYgKHNvdXJjZSA8IDApIHsKICAgICAgICAgIHJldHVybiBbXTsKICAgICAgICB9CiAgICAgICAgaWYgKG9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAob3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBtYXBwaW5ncyA9IFtdOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygKICAgICAgICAgIChtKSA9PiB7CiAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbS5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICBpZiAodGhpcy5fY29tcHV0ZWRDb2x1bW5TcGFucyAmJiBsYXN0Q29sdW1uID09PSBudWxsKSB7CiAgICAgICAgICAgICAgbGFzdENvbHVtbiA9IEluZmluaXR5OwogICAgICAgICAgICB9CiAgICAgICAgICAgIG1hcHBpbmdzLnB1c2goewogICAgICAgICAgICAgIGxpbmU6IG0uZ2VuZXJhdGVkTGluZSwKICAgICAgICAgICAgICBjb2x1bW46IG0uZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9LAogICAgICAgICAgKCkgPT4gewogICAgICAgICAgICB0aGlzLl93YXNtLmV4cG9ydHMuYWxsX2dlbmVyYXRlZF9sb2NhdGlvbnNfZm9yKAogICAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgICAgc291cmNlLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZSAtIDEsCiAgICAgICAgICAgICAgImNvbHVtbiIgaW4gYUFyZ3MsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW4KICAgICAgICAgICAgKTsKICAgICAgICAgIH0KICAgICAgICApOwogICAgICAgIHJldHVybiBtYXBwaW5nczsKICAgICAgfQogICAgICBkZXN0cm95KCkgewogICAgICAgIGlmICh0aGlzLl9tYXBwaW5nc1B0ciAhPT0gMCkgewogICAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmZyZWVfbWFwcGluZ3ModGhpcy5fbWFwcGluZ3NQdHIpOwogICAgICAgICAgdGhpcy5fbWFwcGluZ3NQdHIgPSAwOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tcHV0ZSB0aGUgbGFzdCBjb2x1bW4gZm9yIGVhY2ggZ2VuZXJhdGVkIG1hcHBpbmcuIFRoZSBsYXN0IGNvbHVtbiBpcwogICAgICAgKiBpbmNsdXNpdmUuCiAgICAgICAqLwogICAgICBjb21wdXRlQ29sdW1uU3BhbnMoKSB7CiAgICAgICAgaWYgKHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5fd2FzbS5leHBvcnRzLmNvbXB1dGVfY29sdW1uX3NwYW5zKHRoaXMuX2dldE1hcHBpbmdzUHRyKCkpOwogICAgICAgIHRoaXMuX2NvbXB1dGVkQ29sdW1uU3BhbnMgPSB0cnVlOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBvcmlnaW5hbCBzb3VyY2UsIGxpbmUsIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24gZm9yIHRoZSBnZW5lcmF0ZWQKICAgICAgICogc291cmNlJ3MgbGluZSBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0CiAgICAgICAqIHdpdGggdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIG9yaWdpbmFsIHNvdXJjZSBmaWxlLCBvciBudWxsLgogICAgICAgKiAgIC0gbGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICogICAtIG5hbWU6IFRoZSBvcmlnaW5hbCBpZGVudGlmaWVyLCBvciBudWxsLgogICAgICAgKi8KICAgICAgb3JpZ2luYWxQb3NpdGlvbkZvcihhQXJncykgewogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIGdlbmVyYXRlZExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgZ2VuZXJhdGVkQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIpCiAgICAgICAgfTsKICAgICAgICBpZiAobmVlZGxlLmdlbmVyYXRlZExpbmUgPCAxKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkxpbmUgbnVtYmVycyBtdXN0IGJlID49IDEiKTsKICAgICAgICB9CiAgICAgICAgaWYgKG5lZWRsZS5nZW5lcmF0ZWRDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5vcmlnaW5hbF9sb2NhdGlvbl9mb3IoCiAgICAgICAgICAgIHRoaXMuX2dldE1hcHBpbmdzUHRyKCksCiAgICAgICAgICAgIG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLmdlbmVyYXRlZENvbHVtbiwKICAgICAgICAgICAgYmlhcwogICAgICAgICAgKTsKICAgICAgICB9KTsKICAgICAgICBpZiAobWFwcGluZykgewogICAgICAgICAgaWYgKG1hcHBpbmcuZ2VuZXJhdGVkTGluZSA9PT0gbmVlZGxlLmdlbmVyYXRlZExpbmUpIHsKICAgICAgICAgICAgbGV0IHNvdXJjZSA9IHV0aWwuZ2V0QXJnKG1hcHBpbmcsICJzb3VyY2UiLCBudWxsKTsKICAgICAgICAgICAgaWYgKHNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIHNvdXJjZSA9IHRoaXMuX3NvdXJjZXMuYXQoc291cmNlKTsKICAgICAgICAgICAgICBzb3VyY2UgPSB1dGlsLmNvbXB1dGVTb3VyY2VVUkwodGhpcy5zb3VyY2VSb290LCBzb3VyY2UsIHRoaXMuX3NvdXJjZU1hcFVSTCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG5hbWUgPSB1dGlsLmdldEFyZyhtYXBwaW5nLCAibmFtZSIsIG51bGwpOwogICAgICAgICAgICBpZiAobmFtZSAhPT0gbnVsbCkgewogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5hdChuYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxMaW5lIiwgbnVsbCksCiAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAib3JpZ2luYWxDb2x1bW4iLCBudWxsKSwKICAgICAgICAgICAgICBuYW1lCiAgICAgICAgICAgIH07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBzb3VyY2U6IG51bGwsCiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgbmFtZTogbnVsbAogICAgICAgIH07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybiB0cnVlIGlmIHdlIGhhdmUgdGhlIHNvdXJjZSBjb250ZW50IGZvciBldmVyeSBzb3VyY2UgaW4gdGhlIHNvdXJjZQogICAgICAgKiBtYXAsIGZhbHNlIG90aGVyd2lzZS4KICAgICAgICovCiAgICAgIGhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCkgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudC5sZW5ndGggPj0gdGhpcy5fc291cmNlcy5zaXplKCkgJiYgIXRoaXMuc291cmNlc0NvbnRlbnQuc29tZShmdW5jdGlvbihzYykgewogICAgICAgICAgcmV0dXJuIHNjID09IG51bGw7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGlmICghdGhpcy5zb3VyY2VzQ29udGVudCkgewogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KGFTb3VyY2UpOwogICAgICAgIGlmIChpbmRleCA+PSAwKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFtpbmRleF07CiAgICAgICAgfQogICAgICAgIGxldCByZWxhdGl2ZVNvdXJjZSA9IGFTb3VyY2U7CiAgICAgICAgaWYgKHRoaXMuc291cmNlUm9vdCAhPSBudWxsKSB7CiAgICAgICAgICByZWxhdGl2ZVNvdXJjZSA9IHV0aWwucmVsYXRpdmUodGhpcy5zb3VyY2VSb290LCByZWxhdGl2ZVNvdXJjZSk7CiAgICAgICAgfQogICAgICAgIGxldCB1cmwzOwogICAgICAgIGlmICh0aGlzLnNvdXJjZVJvb3QgIT0gbnVsbCAmJiAodXJsMyA9IHV0aWwudXJsUGFyc2UodGhpcy5zb3VyY2VSb290KSkpIHsKICAgICAgICAgIGNvbnN0IGZpbGVVcmlBYnNQYXRoID0gcmVsYXRpdmVTb3VyY2UucmVwbGFjZSgvXmZpbGU6XC9cLy8sICIiKTsKICAgICAgICAgIGlmICh1cmwzLnNjaGVtZSA9PSAiZmlsZSIgJiYgdGhpcy5fc291cmNlcy5oYXMoZmlsZVVyaUFic1BhdGgpKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLnNvdXJjZXNDb250ZW50W3RoaXMuX3NvdXJjZXMuaW5kZXhPZihmaWxlVXJpQWJzUGF0aCldOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCghdXJsMy5wYXRoIHx8IHVybDMucGF0aCA9PSAiLyIpICYmIHRoaXMuX3NvdXJjZXMuaGFzKCIvIiArIHJlbGF0aXZlU291cmNlKSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2VzQ29udGVudFt0aGlzLl9zb3VyY2VzLmluZGV4T2YoIi8iICsgcmVsYXRpdmVTb3VyY2UpXTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgcmVsYXRpdmVTb3VyY2UgKyAnIiBpcyBub3QgaW4gdGhlIFNvdXJjZU1hcC4nKTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgZ2VuZXJhdGVkIGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIG9yaWdpbmFsIHNvdXJjZSwKICAgICAgICogbGluZSwgYW5kIGNvbHVtbiBwb3NpdGlvbnMgcHJvdmlkZWQuIFRoZSBvbmx5IGFyZ3VtZW50IGlzIGFuIG9iamVjdCB3aXRoCiAgICAgICAqIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIHNvdXJjZTogVGhlIGZpbGVuYW1lIG9mIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBsaW5lIG51bWJlcgogICAgICAgKiAgICAgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIG9yaWdpbmFsIHNvdXJjZS4gIFRoZSBjb2x1bW4KICAgICAgICogICAgIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKiAgIC0gYmlhczogRWl0aGVyICdTb3VyY2VNYXBDb25zdW1lci5HUkVBVEVTVF9MT1dFUl9CT1VORCcgb3IKICAgICAgICogICAgICdTb3VyY2VNYXBDb25zdW1lci5MRUFTVF9VUFBFUl9CT1VORCcuIFNwZWNpZmllcyB3aGV0aGVyIHRvIHJldHVybiB0aGUKICAgICAgICogICAgIGNsb3Nlc3QgZWxlbWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiBvciBncmVhdGVyIHRoYW4gdGhlIG9uZSB3ZSBhcmUKICAgICAgICogICAgIHNlYXJjaGluZyBmb3IsIHJlc3BlY3RpdmVseSwgaWYgdGhlIGV4YWN0IGVsZW1lbnQgY2Fubm90IGJlIGZvdW5kLgogICAgICAgKiAgICAgRGVmYXVsdHMgdG8gJ1NvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EJy4KICAgICAgICoKICAgICAgICogYW5kIGFuIG9iamVjdCBpcyByZXR1cm5lZCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczoKICAgICAgICoKICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgZ2VuZXJhdGVkIHNvdXJjZSwgb3IgbnVsbC4gIFRoZQogICAgICAgKiAgICAgbGluZSBudW1iZXIgaXMgMS1iYXNlZC4KICAgICAgICogICAtIGNvbHVtbjogVGhlIGNvbHVtbiBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuCiAgICAgICAqICAgICBUaGUgY29sdW1uIG51bWJlciBpcyAwLWJhc2VkLgogICAgICAgKi8KICAgICAgZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBsZXQgc291cmNlID0gdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKTsKICAgICAgICBzb3VyY2UgPSB0aGlzLl9maW5kU291cmNlSW5kZXgoc291cmNlKTsKICAgICAgICBpZiAoc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICBvcmlnaW5hbExpbmU6IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpLAogICAgICAgICAgb3JpZ2luYWxDb2x1bW46IHV0aWwuZ2V0QXJnKGFBcmdzLCAiY29sdW1uIikKICAgICAgICB9OwogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxMaW5lIDwgMSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJMaW5lIG51bWJlcnMgbXVzdCBiZSA+PSAxIik7CiAgICAgICAgfQogICAgICAgIGlmIChuZWVkbGUub3JpZ2luYWxDb2x1bW4gPCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvbHVtbiBudW1iZXJzIG11c3QgYmUgPj0gMCIpOwogICAgICAgIH0KICAgICAgICBsZXQgYmlhcyA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAiYmlhcyIsIFNvdXJjZU1hcENvbnN1bWVyLkdSRUFURVNUX0xPV0VSX0JPVU5EKTsKICAgICAgICBpZiAoYmlhcyA9PSBudWxsKSB7CiAgICAgICAgICBiaWFzID0gU291cmNlTWFwQ29uc3VtZXIuR1JFQVRFU1RfTE9XRVJfQk9VTkQ7CiAgICAgICAgfQogICAgICAgIGxldCBtYXBwaW5nOwogICAgICAgIHRoaXMuX3dhc20ud2l0aE1hcHBpbmdDYWxsYmFjaygobSkgPT4gbWFwcGluZyA9IG0sICgpID0+IHsKICAgICAgICAgIHRoaXMuX3dhc20uZXhwb3J0cy5nZW5lcmF0ZWRfbG9jYXRpb25fZm9yKAogICAgICAgICAgICB0aGlzLl9nZXRNYXBwaW5nc1B0cigpLAogICAgICAgICAgICBuZWVkbGUuc291cmNlLAogICAgICAgICAgICBuZWVkbGUub3JpZ2luYWxMaW5lIC0gMSwKICAgICAgICAgICAgbmVlZGxlLm9yaWdpbmFsQ29sdW1uLAogICAgICAgICAgICBiaWFzCiAgICAgICAgICApOwogICAgICAgIH0pOwogICAgICAgIGlmIChtYXBwaW5nKSB7CiAgICAgICAgICBpZiAobWFwcGluZy5zb3VyY2UgPT09IG5lZWRsZS5zb3VyY2UpIHsKICAgICAgICAgICAgbGV0IGxhc3RDb2x1bW4gPSBtYXBwaW5nLmxhc3RHZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICBsYXN0Q29sdW1uID0gSW5maW5pdHk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgIGNvbHVtbjogdXRpbC5nZXRBcmcobWFwcGluZywgImdlbmVyYXRlZENvbHVtbiIsIG51bGwpLAogICAgICAgICAgICAgIGxhc3RDb2x1bW4KICAgICAgICAgICAgfTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGxpbmU6IG51bGwsCiAgICAgICAgICBjb2x1bW46IG51bGwsCiAgICAgICAgICBsYXN0Q29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgfTsKICAgIEJhc2ljU291cmNlTWFwQ29uc3VtZXIucHJvdG90eXBlLmNvbnN1bWVyID0gU291cmNlTWFwQ29uc3VtZXI7CiAgICBleHBvcnRzMi5CYXNpY1NvdXJjZU1hcENvbnN1bWVyID0gQmFzaWNTb3VyY2VNYXBDb25zdW1lcjsKICAgIHZhciBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIgPSBjbGFzcyBleHRlbmRzIFNvdXJjZU1hcENvbnN1bWVyIHsKICAgICAgY29uc3RydWN0b3IoYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICAgIHJldHVybiBzdXBlcihJTlRFUk5BTCkudGhlbigodGhhdCkgPT4gewogICAgICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgICAgICBpZiAodHlwZW9mIGFTb3VyY2VNYXAgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHNvdXJjZU1hcCA9IHV0aWwucGFyc2VTb3VyY2VNYXBJbnB1dChhU291cmNlTWFwKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHZlcnNpb24gPSB1dGlsLmdldEFyZyhzb3VyY2VNYXAsICJ2ZXJzaW9uIik7CiAgICAgICAgICBjb25zdCBzZWN0aW9ucyA9IHV0aWwuZ2V0QXJnKHNvdXJjZU1hcCwgInNlY3Rpb25zIik7CiAgICAgICAgICBpZiAodmVyc2lvbiAhPSB0aGF0Ll92ZXJzaW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmVyc2lvbjogIiArIHZlcnNpb24pOwogICAgICAgICAgfQogICAgICAgICAgdGhhdC5fc291cmNlcyA9IG5ldyBBcnJheVNldCgpOwogICAgICAgICAgdGhhdC5fbmFtZXMgPSBuZXcgQXJyYXlTZXQoKTsKICAgICAgICAgIHRoYXQuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5ncyA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IG51bGw7CiAgICAgICAgICB0aGF0Ll9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gbnVsbDsKICAgICAgICAgIGxldCBsYXN0T2Zmc2V0ID0gewogICAgICAgICAgICBsaW5lOiAtMSwKICAgICAgICAgICAgY29sdW1uOiAwCiAgICAgICAgICB9OwogICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHNlY3Rpb25zLm1hcCgocykgPT4gewogICAgICAgICAgICBpZiAocy51cmwpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN1cHBvcnQgZm9yIHVybCBmaWVsZCBpbiBzZWN0aW9ucyBub3QgaW1wbGVtZW50ZWQuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdXRpbC5nZXRBcmcocywgIm9mZnNldCIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRMaW5lID0gdXRpbC5nZXRBcmcob2Zmc2V0LCAibGluZSIpOwogICAgICAgICAgICBjb25zdCBvZmZzZXRDb2x1bW4gPSB1dGlsLmdldEFyZyhvZmZzZXQsICJjb2x1bW4iKTsKICAgICAgICAgICAgaWYgKG9mZnNldExpbmUgPCBsYXN0T2Zmc2V0LmxpbmUgfHwgb2Zmc2V0TGluZSA9PT0gbGFzdE9mZnNldC5saW5lICYmIG9mZnNldENvbHVtbiA8IGxhc3RPZmZzZXQuY29sdW1uKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTZWN0aW9uIG9mZnNldHMgbXVzdCBiZSBvcmRlcmVkIGFuZCBub24tb3ZlcmxhcHBpbmcuIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdE9mZnNldCA9IG9mZnNldDsKICAgICAgICAgICAgY29uc3QgY29ucyA9IG5ldyBTb3VyY2VNYXBDb25zdW1lcih1dGlsLmdldEFyZyhzLCAibWFwIiksIGFTb3VyY2VNYXBVUkwpOwogICAgICAgICAgICByZXR1cm4gY29ucy50aGVuKChjb25zdW1lcikgPT4gewogICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBnZW5lcmF0ZWRPZmZzZXQ6IHsKICAgICAgICAgICAgICAgICAgLy8gVGhlIG9mZnNldCBmaWVsZHMgYXJlIDAtYmFzZWQsIGJ1dCB3ZSB1c2UgMS1iYXNlZCBpbmRpY2VzIHdoZW4KICAgICAgICAgICAgICAgICAgLy8gZW5jb2RpbmcvZGVjb2RpbmcgZnJvbSBWTFEuCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZExpbmU6IG9mZnNldExpbmUgKyAxLAogICAgICAgICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG9mZnNldENvbHVtbiArIDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBjb25zdW1lcgogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkpLnRoZW4oKHMpID0+IHsKICAgICAgICAgICAgdGhhdC5fc2VjdGlvbnMgPSBzOwogICAgICAgICAgICByZXR1cm4gdGhhdDsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIGBfX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQgYF9fb3JpZ2luYWxNYXBwaW5nc2AgYXJlIGFycmF5cyB0aGF0IGhvbGQgdGhlCiAgICAgIC8vIHBhcnNlZCBtYXBwaW5nIGNvb3JkaW5hdGVzIGZyb20gdGhlIHNvdXJjZSBtYXAncyAibWFwcGluZ3MiIGF0dHJpYnV0ZS4gVGhleQogICAgICAvLyBhcmUgbGF6aWx5IGluc3RhbnRpYXRlZCwgYWNjZXNzZWQgdmlhIHRoZSBgX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgLy8gYF9vcmlnaW5hbE1hcHBpbmdzYCBnZXR0ZXJzIHJlc3BlY3RpdmVseSwgYW5kIHdlIG9ubHkgcGFyc2UgdGhlIG1hcHBpbmdzCiAgICAgIC8vIGFuZCBjcmVhdGUgdGhlc2UgYXJyYXlzIG9uY2UgcXVlcmllZCBmb3IgYSBzb3VyY2UgbG9jYXRpb24uIFdlIGp1bXAgdGhyb3VnaAogICAgICAvLyB0aGVzZSBob29wcyBiZWNhdXNlIHRoZXJlIGNhbiBiZSBtYW55IHRob3VzYW5kcyBvZiBtYXBwaW5ncywgYW5kIHBhcnNpbmcKICAgICAgLy8gdGhlbSBpcyBleHBlbnNpdmUsIHNvIHdlIG9ubHkgd2FudCB0byBkbyBpdCBpZiB3ZSBtdXN0LgogICAgICAvLwogICAgICAvLyBFYWNoIG9iamVjdCBpbiB0aGUgYXJyYXlzIGlzIG9mIHRoZSBmb3JtOgogICAgICAvLwogICAgICAvLyAgICAgewogICAgICAvLyAgICAgICBnZW5lcmF0ZWRMaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLAogICAgICAvLyAgICAgICBnZW5lcmF0ZWRDb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgY29kZSwKICAgICAgLy8gICAgICAgc291cmNlOiBUaGUgcGF0aCB0byB0aGUgb3JpZ2luYWwgc291cmNlIGZpbGUgdGhhdCBnZW5lcmF0ZWQgdGhpcwogICAgICAvLyAgICAgICAgICAgICAgIGNodW5rIG9mIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsTGluZTogVGhlIGxpbmUgbnVtYmVyIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgdGhhdAogICAgICAvLyAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG9yaWdpbmFsQ29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlIHRoYXQKICAgICAgLy8gICAgICAgICAgICAgICAgICAgICAgIGNvcnJlc3BvbmRzIHRvIHRoaXMgY2h1bmsgb2YgZ2VuZXJhdGVkIGNvZGUsCiAgICAgIC8vICAgICAgIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBvcmlnaW5hbCBzeW1ib2wgd2hpY2ggZ2VuZXJhdGVkIHRoaXMgY2h1bmsgb2YKICAgICAgLy8gICAgICAgICAgICAgY29kZS4KICAgICAgLy8gICAgIH0KICAgICAgLy8KICAgICAgLy8gQWxsIHByb3BlcnRpZXMgZXhjZXB0IGZvciBgZ2VuZXJhdGVkTGluZWAgYW5kIGBnZW5lcmF0ZWRDb2x1bW5gIGNhbiBiZQogICAgICAvLyBgbnVsbGAuCiAgICAgIC8vCiAgICAgIC8vIGBfZ2VuZXJhdGVkTWFwcGluZ3NgIGlzIG9yZGVyZWQgYnkgdGhlIGdlbmVyYXRlZCBwb3NpdGlvbnMuCiAgICAgIC8vCiAgICAgIC8vIGBfb3JpZ2luYWxNYXBwaW5nc2AgaXMgb3JkZXJlZCBieSB0aGUgb3JpZ2luYWwgcG9zaXRpb25zLgogICAgICBnZXQgX2dlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGlmICghdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzKSB7CiAgICAgICAgICB0aGlzLl9zb3J0R2VuZXJhdGVkTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nczsKICAgICAgfQogICAgICBnZXQgX29yaWdpbmFsTWFwcGluZ3MoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5ncykgewogICAgICAgICAgdGhpcy5fc29ydE9yaWdpbmFsTWFwcGluZ3MoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzOwogICAgICB9CiAgICAgIGdldCBfZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCgpIHsKICAgICAgICBpZiAoIXRoaXMuX19nZW5lcmF0ZWRNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzVW5zb3J0ZWQ7CiAgICAgIH0KICAgICAgZ2V0IF9vcmlnaW5hbE1hcHBpbmdzVW5zb3J0ZWQoKSB7CiAgICAgICAgaWYgKCF0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkKSB7CiAgICAgICAgICB0aGlzLl9wYXJzZU1hcHBpbmdzKHRoaXMuX21hcHBpbmdzLCB0aGlzLnNvdXJjZVJvb3QpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgfQogICAgICBfc29ydEdlbmVyYXRlZE1hcHBpbmdzKCkgewogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gdGhpcy5fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5R2VuZXJhdGVkUG9zaXRpb25zRGVmbGF0ZWQpOwogICAgICAgIHRoaXMuX19nZW5lcmF0ZWRNYXBwaW5ncyA9IG1hcHBpbmdzOwogICAgICB9CiAgICAgIF9zb3J0T3JpZ2luYWxNYXBwaW5ncygpIHsKICAgICAgICBjb25zdCBtYXBwaW5ncyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NVbnNvcnRlZDsKICAgICAgICBtYXBwaW5ncy5zb3J0KHV0aWwuY29tcGFyZUJ5T3JpZ2luYWxQb3NpdGlvbnMpOwogICAgICAgIHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzID0gbWFwcGluZ3M7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFRoZSBsaXN0IG9mIG9yaWdpbmFsIHNvdXJjZXMuCiAgICAgICAqLwogICAgICBnZXQgc291cmNlcygpIHsKICAgICAgICBjb25zdCBzb3VyY2VzID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh0aGlzLl9zZWN0aW9uc1tpXS5jb25zdW1lci5zb3VyY2VzW2pdKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNvdXJjZXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSwgbGluZSwgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGdlbmVyYXRlZAogICAgICAgKiBzb3VyY2UncyBsaW5lIGFuZCBjb2x1bW4gcG9zaXRpb25zIHByb3ZpZGVkLiBUaGUgb25seSBhcmd1bWVudCBpcyBhbiBvYmplY3QKICAgICAgICogd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UuICBUaGUgbGluZSBudW1iZXIKICAgICAgICogICAgIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBzb3VyY2U6IFRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSwgb3IgbnVsbC4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBsaW5lIG51bWJlciBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLCBvciBudWxsLiAgVGhlCiAgICAgICAqICAgICBjb2x1bW4gbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqICAgLSBuYW1lOiBUaGUgb3JpZ2luYWwgaWRlbnRpZmllciwgb3IgbnVsbC4KICAgICAgICovCiAgICAgIG9yaWdpbmFsUG9zaXRpb25Gb3IoYUFyZ3MpIHsKICAgICAgICBjb25zdCBuZWVkbGUgPSB7CiAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiB1dGlsLmdldEFyZyhhQXJncywgImxpbmUiKSwKICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogdXRpbC5nZXRBcmcoYUFyZ3MsICJjb2x1bW4iKQogICAgICAgIH07CiAgICAgICAgY29uc3Qgc2VjdGlvbkluZGV4ID0gYmluYXJ5U2VhcmNoLnNlYXJjaCgKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX3NlY3Rpb25zLAogICAgICAgICAgZnVuY3Rpb24oYU5lZWRsZSwgc2VjdGlvbjIpIHsKICAgICAgICAgICAgY29uc3QgY21wID0gYU5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gc2VjdGlvbjIuZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmU7CiAgICAgICAgICAgIGlmIChjbXApIHsKICAgICAgICAgICAgICByZXR1cm4gY21wOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhTmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIHNlY3Rpb24yLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRDb2x1bW47CiAgICAgICAgICB9CiAgICAgICAgKTsKICAgICAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5fc2VjdGlvbnNbc2VjdGlvbkluZGV4XTsKICAgICAgICBpZiAoIXNlY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZTogbnVsbCwKICAgICAgICAgICAgbGluZTogbnVsbCwKICAgICAgICAgICAgY29sdW1uOiBudWxsLAogICAgICAgICAgICBuYW1lOiBudWxsCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2VjdGlvbi5jb25zdW1lci5vcmlnaW5hbFBvc2l0aW9uRm9yKHsKICAgICAgICAgIGxpbmU6IG5lZWRsZS5nZW5lcmF0ZWRMaW5lIC0gKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgIGNvbHVtbjogbmVlZGxlLmdlbmVyYXRlZENvbHVtbiAtIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBuZWVkbGUuZ2VuZXJhdGVkTGluZSA/IHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZENvbHVtbiAtIDEgOiAwKSwKICAgICAgICAgIGJpYXM6IGFBcmdzLmJpYXMKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJuIHRydWUgaWYgd2UgaGF2ZSB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGV2ZXJ5IHNvdXJjZSBpbiB0aGUgc291cmNlCiAgICAgICAqIG1hcCwgZmFsc2Ugb3RoZXJ3aXNlLgogICAgICAgKi8KICAgICAgaGFzQ29udGVudHNPZkFsbFNvdXJjZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25zLmV2ZXJ5KGZ1bmN0aW9uKHMpIHsKICAgICAgICAgIHJldHVybiBzLmNvbnN1bWVyLmhhc0NvbnRlbnRzT2ZBbGxTb3VyY2VzKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFJldHVybnMgdGhlIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50LiBUaGUgb25seSBhcmd1bWVudCBpcyB0aGUgdXJsIG9mIHRoZQogICAgICAgKiBvcmlnaW5hbCBzb3VyY2UgZmlsZS4gUmV0dXJucyBudWxsIGlmIG5vIG9yaWdpbmFsIHNvdXJjZSBjb250ZW50IGlzCiAgICAgICAqIGF2YWlsYWJsZS4KICAgICAgICovCiAgICAgIHNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgbnVsbE9uTWlzc2luZykgewogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fc2VjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLl9zZWN0aW9uc1tpXTsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBzZWN0aW9uLmNvbnN1bWVyLnNvdXJjZUNvbnRlbnRGb3IoYVNvdXJjZSwgdHJ1ZSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICByZXR1cm4gY29udGVudDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKG51bGxPbk1pc3NpbmcpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJyInICsgYVNvdXJjZSArICciIGlzIG5vdCBpbiB0aGUgU291cmNlTWFwLicpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIHRoZSBnZW5lcmF0ZWQgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uIGZvciB0aGUgb3JpZ2luYWwgc291cmNlLAogICAgICAgKiBsaW5lLCBhbmQgY29sdW1uIHBvc2l0aW9ucyBwcm92aWRlZC4gVGhlIG9ubHkgYXJndW1lbnQgaXMgYW4gb2JqZWN0IHdpdGgKICAgICAgICogdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgogICAgICAgKgogICAgICAgKiAgIC0gc291cmNlOiBUaGUgZmlsZW5hbWUgb2YgdGhlIG9yaWdpbmFsIHNvdXJjZS4KICAgICAgICogICAtIGxpbmU6IFRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGxpbmUgbnVtYmVyCiAgICAgICAqICAgICBpcyAxLWJhc2VkLgogICAgICAgKiAgIC0gY29sdW1uOiBUaGUgY29sdW1uIG51bWJlciBpbiB0aGUgb3JpZ2luYWwgc291cmNlLiAgVGhlIGNvbHVtbgogICAgICAgKiAgICAgbnVtYmVyIGlzIDAtYmFzZWQuCiAgICAgICAqCiAgICAgICAqIGFuZCBhbiBvYmplY3QgaXMgcmV0dXJuZWQgd2l0aCB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgICAgICAqCiAgICAgICAqICAgLSBsaW5lOiBUaGUgbGluZSBudW1iZXIgaW4gdGhlIGdlbmVyYXRlZCBzb3VyY2UsIG9yIG51bGwuICBUaGUKICAgICAgICogICAgIGxpbmUgbnVtYmVyIGlzIDEtYmFzZWQuCiAgICAgICAqICAgLSBjb2x1bW46IFRoZSBjb2x1bW4gbnVtYmVyIGluIHRoZSBnZW5lcmF0ZWQgc291cmNlLCBvciBudWxsLgogICAgICAgKiAgICAgVGhlIGNvbHVtbiBudW1iZXIgaXMgMC1iYXNlZC4KICAgICAgICovCiAgICAgIGdlbmVyYXRlZFBvc2l0aW9uRm9yKGFBcmdzKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgaWYgKHNlY3Rpb24uY29uc3VtZXIuX2ZpbmRTb3VyY2VJbmRleCh1dGlsLmdldEFyZyhhQXJncywgInNvdXJjZSIpKSA9PT0gLTEpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBnZW5lcmF0ZWRQb3NpdGlvbiA9IHNlY3Rpb24uY29uc3VtZXIuZ2VuZXJhdGVkUG9zaXRpb25Gb3IoYUFyZ3MpOwogICAgICAgICAgaWYgKGdlbmVyYXRlZFBvc2l0aW9uKSB7CiAgICAgICAgICAgIGNvbnN0IHJldCA9IHsKICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lICsgKHNlY3Rpb24uZ2VuZXJhdGVkT2Zmc2V0LmdlbmVyYXRlZExpbmUgLSAxKSwKICAgICAgICAgICAgICBjb2x1bW46IGdlbmVyYXRlZFBvc2l0aW9uLmNvbHVtbiArIChzZWN0aW9uLmdlbmVyYXRlZE9mZnNldC5nZW5lcmF0ZWRMaW5lID09PSBnZW5lcmF0ZWRQb3NpdGlvbi5saW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHJldHVybiByZXQ7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB7CiAgICAgICAgICBsaW5lOiBudWxsLAogICAgICAgICAgY29sdW1uOiBudWxsCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogUGFyc2UgdGhlIG1hcHBpbmdzIGluIGEgc3RyaW5nIGluIHRvIGEgZGF0YSBzdHJ1Y3R1cmUgd2hpY2ggd2UgY2FuIGVhc2lseQogICAgICAgKiBxdWVyeSAodGhlIG9yZGVyZWQgYXJyYXlzIGluIHRoZSBgdGhpcy5fX2dlbmVyYXRlZE1hcHBpbmdzYCBhbmQKICAgICAgICogYHRoaXMuX19vcmlnaW5hbE1hcHBpbmdzYCBwcm9wZXJ0aWVzKS4KICAgICAgICovCiAgICAgIF9wYXJzZU1hcHBpbmdzKGFTdHIsIGFTb3VyY2VSb290KSB7CiAgICAgICAgY29uc3QgZ2VuZXJhdGVkTWFwcGluZ3MgPSB0aGlzLl9fZ2VuZXJhdGVkTWFwcGluZ3NVbnNvcnRlZCA9IFtdOwogICAgICAgIGNvbnN0IG9yaWdpbmFsTWFwcGluZ3MgPSB0aGlzLl9fb3JpZ2luYWxNYXBwaW5nc1Vuc29ydGVkID0gW107CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuX3NlY3Rpb25zW2ldOwogICAgICAgICAgY29uc3Qgc2VjdGlvbk1hcHBpbmdzID0gW107CiAgICAgICAgICBzZWN0aW9uLmNvbnN1bWVyLmVhY2hNYXBwaW5nKChtKSA9PiBzZWN0aW9uTWFwcGluZ3MucHVzaChtKSk7CiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHNlY3Rpb25NYXBwaW5ncy5sZW5ndGg7IGorKykgewogICAgICAgICAgICBjb25zdCBtYXBwaW5nID0gc2VjdGlvbk1hcHBpbmdzW2pdOwogICAgICAgICAgICBsZXQgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNlY3Rpb24uY29uc3VtZXIuc291cmNlUm9vdCwgbnVsbCwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgICAgdGhpcy5fc291cmNlcy5hZGQoc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdGhpcy5fc291cmNlcy5pbmRleE9mKHNvdXJjZSk7CiAgICAgICAgICAgIGxldCBuYW1lID0gbnVsbDsKICAgICAgICAgICAgaWYgKG1hcHBpbmcubmFtZSkgewogICAgICAgICAgICAgIHRoaXMuX25hbWVzLmFkZChtYXBwaW5nLm5hbWUpOwogICAgICAgICAgICAgIG5hbWUgPSB0aGlzLl9uYW1lcy5pbmRleE9mKG1hcHBpbmcubmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgYWRqdXN0ZWRNYXBwaW5nID0gewogICAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgICBnZW5lcmF0ZWRMaW5lOiBtYXBwaW5nLmdlbmVyYXRlZExpbmUgKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSAtIDEpLAogICAgICAgICAgICAgIGdlbmVyYXRlZENvbHVtbjogbWFwcGluZy5nZW5lcmF0ZWRDb2x1bW4gKyAoc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkTGluZSA9PT0gbWFwcGluZy5nZW5lcmF0ZWRMaW5lID8gc2VjdGlvbi5nZW5lcmF0ZWRPZmZzZXQuZ2VuZXJhdGVkQ29sdW1uIC0gMSA6IDApLAogICAgICAgICAgICAgIG9yaWdpbmFsTGluZTogbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgb3JpZ2luYWxDb2x1bW46IG1hcHBpbmcub3JpZ2luYWxDb2x1bW4sCiAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICB9OwogICAgICAgICAgICBnZW5lcmF0ZWRNYXBwaW5ncy5wdXNoKGFkanVzdGVkTWFwcGluZyk7CiAgICAgICAgICAgIGlmICh0eXBlb2YgYWRqdXN0ZWRNYXBwaW5nLm9yaWdpbmFsTGluZSA9PT0gIm51bWJlciIpIHsKICAgICAgICAgICAgICBvcmlnaW5hbE1hcHBpbmdzLnB1c2goYWRqdXN0ZWRNYXBwaW5nKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICBlYWNoTWFwcGluZyhhQ2FsbGJhY2ssIGFDb250ZXh0LCBhT3JkZXIpIHsKICAgICAgICBjb25zdCBjb250ZXh0ID0gYUNvbnRleHQgfHwgbnVsbDsKICAgICAgICBjb25zdCBvcmRlciA9IGFPcmRlciB8fCBTb3VyY2VNYXBDb25zdW1lci5HRU5FUkFURURfT1JERVI7CiAgICAgICAgbGV0IG1hcHBpbmdzOwogICAgICAgIHN3aXRjaCAob3JkZXIpIHsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuR0VORVJBVEVEX09SREVSOgogICAgICAgICAgICBtYXBwaW5ncyA9IHRoaXMuX2dlbmVyYXRlZE1hcHBpbmdzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgU291cmNlTWFwQ29uc3VtZXIuT1JJR0lOQUxfT1JERVI6CiAgICAgICAgICAgIG1hcHBpbmdzID0gdGhpcy5fb3JpZ2luYWxNYXBwaW5nczsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gb3JkZXIgb2YgaXRlcmF0aW9uLiIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBzb3VyY2VSb290ID0gdGhpcy5zb3VyY2VSb290OwogICAgICAgIG1hcHBpbmdzLm1hcChmdW5jdGlvbihtYXBwaW5nKSB7CiAgICAgICAgICBsZXQgc291cmNlID0gbnVsbDsKICAgICAgICAgIGlmIChtYXBwaW5nLnNvdXJjZSAhPT0gbnVsbCkgewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLl9zb3VyY2VzLmF0KG1hcHBpbmcuc291cmNlKTsKICAgICAgICAgICAgc291cmNlID0gdXRpbC5jb21wdXRlU291cmNlVVJMKHNvdXJjZVJvb3QsIHNvdXJjZSwgdGhpcy5fc291cmNlTWFwVVJMKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNvdXJjZSwKICAgICAgICAgICAgZ2VuZXJhdGVkTGluZTogbWFwcGluZy5nZW5lcmF0ZWRMaW5lLAogICAgICAgICAgICBnZW5lcmF0ZWRDb2x1bW46IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uLAogICAgICAgICAgICBvcmlnaW5hbExpbmU6IG1hcHBpbmcub3JpZ2luYWxMaW5lLAogICAgICAgICAgICBvcmlnaW5hbENvbHVtbjogbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgbmFtZTogbWFwcGluZy5uYW1lID09PSBudWxsID8gbnVsbCA6IHRoaXMuX25hbWVzLmF0KG1hcHBpbmcubmFtZSkKICAgICAgICAgIH07CiAgICAgICAgfSwgdGhpcykuZm9yRWFjaChhQ2FsbGJhY2ssIGNvbnRleHQpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBGaW5kIHRoZSBtYXBwaW5nIHRoYXQgYmVzdCBtYXRjaGVzIHRoZSBoeXBvdGhldGljYWwgIm5lZWRsZSIgbWFwcGluZyB0aGF0CiAgICAgICAqIHdlIGFyZSBzZWFyY2hpbmcgZm9yIGluIHRoZSBnaXZlbiAiaGF5c3RhY2siIG9mIG1hcHBpbmdzLgogICAgICAgKi8KICAgICAgX2ZpbmRNYXBwaW5nKGFOZWVkbGUsIGFNYXBwaW5ncywgYUxpbmVOYW1lLCBhQ29sdW1uTmFtZSwgYUNvbXBhcmF0b3IsIGFCaWFzKSB7CiAgICAgICAgaWYgKGFOZWVkbGVbYUxpbmVOYW1lXSA8PSAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCJMaW5lIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEsIGdvdCAiICsgYU5lZWRsZVthTGluZU5hbWVdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGFOZWVkbGVbYUNvbHVtbk5hbWVdIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29sdW1uIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDAsIGdvdCAiICsgYU5lZWRsZVthQ29sdW1uTmFtZV0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoLnNlYXJjaChhTmVlZGxlLCBhTWFwcGluZ3MsIGFDb21wYXJhdG9yLCBhQmlhcyk7CiAgICAgIH0KICAgICAgYWxsR2VuZXJhdGVkUG9zaXRpb25zRm9yKGFBcmdzKSB7CiAgICAgICAgY29uc3QgbGluZSA9IHV0aWwuZ2V0QXJnKGFBcmdzLCAibGluZSIpOwogICAgICAgIGNvbnN0IG5lZWRsZSA9IHsKICAgICAgICAgIHNvdXJjZTogdXRpbC5nZXRBcmcoYUFyZ3MsICJzb3VyY2UiKSwKICAgICAgICAgIG9yaWdpbmFsTGluZTogbGluZSwKICAgICAgICAgIG9yaWdpbmFsQ29sdW1uOiB1dGlsLmdldEFyZyhhQXJncywgImNvbHVtbiIsIDApCiAgICAgICAgfTsKICAgICAgICBuZWVkbGUuc291cmNlID0gdGhpcy5fZmluZFNvdXJjZUluZGV4KG5lZWRsZS5zb3VyY2UpOwogICAgICAgIGlmIChuZWVkbGUuc291cmNlIDwgMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsTGluZSA8IDEpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTGluZSBudW1iZXJzIG11c3QgYmUgPj0gMSIpOwogICAgICAgIH0KICAgICAgICBpZiAobmVlZGxlLm9yaWdpbmFsQ29sdW1uIDwgMCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb2x1bW4gbnVtYmVycyBtdXN0IGJlID49IDAiKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBbXTsKICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9maW5kTWFwcGluZygKICAgICAgICAgIG5lZWRsZSwKICAgICAgICAgIHRoaXMuX29yaWdpbmFsTWFwcGluZ3MsCiAgICAgICAgICAib3JpZ2luYWxMaW5lIiwKICAgICAgICAgICJvcmlnaW5hbENvbHVtbiIsCiAgICAgICAgICB1dGlsLmNvbXBhcmVCeU9yaWdpbmFsUG9zaXRpb25zLAogICAgICAgICAgYmluYXJ5U2VhcmNoLkxFQVNUX1VQUEVSX0JPVU5ECiAgICAgICAgKTsKICAgICAgICBpZiAoaW5kZXggPj0gMCkgewogICAgICAgICAgbGV0IG1hcHBpbmcgPSB0aGlzLl9vcmlnaW5hbE1hcHBpbmdzW2luZGV4XTsKICAgICAgICAgIGlmIChhQXJncy5jb2x1bW4gPT09IHZvaWQgMCkgewogICAgICAgICAgICBjb25zdCBvcmlnaW5hbExpbmUgPSBtYXBwaW5nLm9yaWdpbmFsTGluZTsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IG9yaWdpbmFsTGluZSkgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsQ29sdW1uID0gbWFwcGluZy5vcmlnaW5hbENvbHVtbjsKICAgICAgICAgICAgd2hpbGUgKG1hcHBpbmcgJiYgbWFwcGluZy5vcmlnaW5hbExpbmUgPT09IGxpbmUgJiYgbWFwcGluZy5vcmlnaW5hbENvbHVtbiA9PSBvcmlnaW5hbENvbHVtbikgewogICAgICAgICAgICAgIGxldCBsYXN0Q29sdW1uID0gbWFwcGluZy5sYXN0R2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGlmICh0aGlzLl9jb21wdXRlZENvbHVtblNwYW5zICYmIGxhc3RDb2x1bW4gPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIGxhc3RDb2x1bW4gPSBJbmZpbml0eTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgbWFwcGluZ3MucHVzaCh7CiAgICAgICAgICAgICAgICBsaW5lOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkTGluZSIsIG51bGwpLAogICAgICAgICAgICAgICAgY29sdW1uOiB1dGlsLmdldEFyZyhtYXBwaW5nLCAiZ2VuZXJhdGVkQ29sdW1uIiwgbnVsbCksCiAgICAgICAgICAgICAgICBsYXN0Q29sdW1uCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgbWFwcGluZyA9IHRoaXMuX29yaWdpbmFsTWFwcGluZ3NbKytpbmRleF07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1hcHBpbmdzOwogICAgICB9CiAgICAgIGRlc3Ryb3koKSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9zZWN0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy5fc2VjdGlvbnNbaV0uY29uc3VtZXIuZGVzdHJveSgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkluZGV4ZWRTb3VyY2VNYXBDb25zdW1lciA9IEluZGV4ZWRTb3VyY2VNYXBDb25zdW1lcjsKICAgIGZ1bmN0aW9uIF9mYWN0b3J5KGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpIHsKICAgICAgbGV0IHNvdXJjZU1hcCA9IGFTb3VyY2VNYXA7CiAgICAgIGlmICh0eXBlb2YgYVNvdXJjZU1hcCA9PT0gInN0cmluZyIpIHsKICAgICAgICBzb3VyY2VNYXAgPSB1dGlsLnBhcnNlU291cmNlTWFwSW5wdXQoYVNvdXJjZU1hcCk7CiAgICAgIH0KICAgICAgY29uc3QgY29uc3VtZXIgPSBzb3VyY2VNYXAuc2VjdGlvbnMgIT0gbnVsbCA/IG5ldyBJbmRleGVkU291cmNlTWFwQ29uc3VtZXIoc291cmNlTWFwLCBhU291cmNlTWFwVVJMKSA6IG5ldyBCYXNpY1NvdXJjZU1hcENvbnN1bWVyKHNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCk7CiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY29uc3VtZXIpOwogICAgfQogICAgZnVuY3Rpb24gX2ZhY3RvcnlCU00oYVNvdXJjZU1hcCwgYVNvdXJjZU1hcFVSTCkgewogICAgICByZXR1cm4gQmFzaWNTb3VyY2VNYXBDb25zdW1lci5mcm9tU291cmNlTWFwKGFTb3VyY2VNYXAsIGFTb3VyY2VNYXBVUkwpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9saWIvc291cmNlLW5vZGUuanMKdmFyIHJlcXVpcmVfc291cmNlX25vZGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvbGliL3NvdXJjZS1ub2RlLmpzIihleHBvcnRzMikgewogICAgdmFyIFNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICB2YXIgdXRpbCA9IHJlcXVpcmVfdXRpbDIoKTsKICAgIHZhciBSRUdFWF9ORVdMSU5FID0gLyhccj9cbikvOwogICAgdmFyIE5FV0xJTkVfQ09ERSA9IDEwOwogICAgdmFyIGlzU291cmNlTm9kZSA9ICIkJCRpc1NvdXJjZU5vZGUkJCQiOwogICAgdmFyIFNvdXJjZU5vZGUgPSBjbGFzcyBfU291cmNlTm9kZSB7CiAgICAgIGNvbnN0cnVjdG9yKGFMaW5lLCBhQ29sdW1uLCBhU291cmNlLCBhQ2h1bmtzLCBhTmFtZSkgewogICAgICAgIHRoaXMuY2hpbGRyZW4gPSBbXTsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzID0ge307CiAgICAgICAgdGhpcy5saW5lID0gYUxpbmUgPT0gbnVsbCA/IG51bGwgOiBhTGluZTsKICAgICAgICB0aGlzLmNvbHVtbiA9IGFDb2x1bW4gPT0gbnVsbCA/IG51bGwgOiBhQ29sdW1uOwogICAgICAgIHRoaXMuc291cmNlID0gYVNvdXJjZSA9PSBudWxsID8gbnVsbCA6IGFTb3VyY2U7CiAgICAgICAgdGhpcy5uYW1lID0gYU5hbWUgPT0gbnVsbCA/IG51bGwgOiBhTmFtZTsKICAgICAgICB0aGlzW2lzU291cmNlTm9kZV0gPSB0cnVlOwogICAgICAgIGlmIChhQ2h1bmtzICE9IG51bGwpIHRoaXMuYWRkKGFDaHVua3MpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDcmVhdGVzIGEgU291cmNlTm9kZSBmcm9tIGdlbmVyYXRlZCBjb2RlIGFuZCBhIFNvdXJjZU1hcENvbnN1bWVyLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUdlbmVyYXRlZENvZGUgVGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhU291cmNlTWFwQ29uc3VtZXIgVGhlIFNvdXJjZU1hcCBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlCiAgICAgICAqIEBwYXJhbSBhUmVsYXRpdmVQYXRoIE9wdGlvbmFsLiBUaGUgcGF0aCB0aGF0IHJlbGF0aXZlIHNvdXJjZXMgaW4gdGhlCiAgICAgICAqICAgICAgICBTb3VyY2VNYXBDb25zdW1lciBzaG91bGQgYmUgcmVsYXRpdmUgdG8uCiAgICAgICAqLwogICAgICBzdGF0aWMgZnJvbVN0cmluZ1dpdGhTb3VyY2VNYXAoYUdlbmVyYXRlZENvZGUsIGFTb3VyY2VNYXBDb25zdW1lciwgYVJlbGF0aXZlUGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSBuZXcgX1NvdXJjZU5vZGUoKTsKICAgICAgICBjb25zdCByZW1haW5pbmdMaW5lcyA9IGFHZW5lcmF0ZWRDb2RlLnNwbGl0KFJFR0VYX05FV0xJTkUpOwogICAgICAgIGxldCByZW1haW5pbmdMaW5lc0luZGV4ID0gMDsKICAgICAgICBjb25zdCBzaGlmdE5leHRMaW5lID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICBjb25zdCBsaW5lQ29udGVudHMgPSBnZXROZXh0TGluZSgpOwogICAgICAgICAgY29uc3QgbmV3TGluZSA9IGdldE5leHRMaW5lKCkgfHwgIiI7CiAgICAgICAgICByZXR1cm4gbGluZUNvbnRlbnRzICsgbmV3TGluZTsKICAgICAgICAgIGZ1bmN0aW9uIGdldE5leHRMaW5lKCkgewogICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCA/IHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXgrK10gOiB2b2lkIDA7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICBsZXQgbGFzdEdlbmVyYXRlZExpbmUgPSAxLCBsYXN0R2VuZXJhdGVkQ29sdW1uID0gMDsKICAgICAgICBsZXQgbGFzdE1hcHBpbmcgPSBudWxsOwogICAgICAgIGxldCBuZXh0TGluZTsKICAgICAgICBhU291cmNlTWFwQ29uc3VtZXIuZWFjaE1hcHBpbmcoZnVuY3Rpb24obWFwcGluZykgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0R2VuZXJhdGVkTGluZSA8IG1hcHBpbmcuZ2VuZXJhdGVkTGluZSkgewogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgICAgICBsYXN0R2VuZXJhdGVkTGluZSsrOwogICAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSAwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgICAgY29uc3QgY29kZSA9IG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbiAtIGxhc3RHZW5lcmF0ZWRDb2x1bW4pOwogICAgICAgICAgICAgIHJlbWFpbmluZ0xpbmVzW3JlbWFpbmluZ0xpbmVzSW5kZXhdID0gbmV4dExpbmUuc3Vic3RyKG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uIC0gbGFzdEdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgICAgbGFzdEdlbmVyYXRlZENvbHVtbiA9IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uOwogICAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgY29kZSk7CiAgICAgICAgICAgICAgbGFzdE1hcHBpbmcgPSBtYXBwaW5nOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGxhc3RHZW5lcmF0ZWRMaW5lIDwgbWFwcGluZy5nZW5lcmF0ZWRMaW5lKSB7CiAgICAgICAgICAgIG5vZGUuYWRkKHNoaWZ0TmV4dExpbmUoKSk7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRMaW5lKys7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobGFzdEdlbmVyYXRlZENvbHVtbiA8IG1hcHBpbmcuZ2VuZXJhdGVkQ29sdW1uKSB7CiAgICAgICAgICAgIG5leHRMaW5lID0gcmVtYWluaW5nTGluZXNbcmVtYWluaW5nTGluZXNJbmRleF0gfHwgIiI7CiAgICAgICAgICAgIG5vZGUuYWRkKG5leHRMaW5lLnN1YnN0cigwLCBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbikpOwogICAgICAgICAgICByZW1haW5pbmdMaW5lc1tyZW1haW5pbmdMaW5lc0luZGV4XSA9IG5leHRMaW5lLnN1YnN0cihtYXBwaW5nLmdlbmVyYXRlZENvbHVtbik7CiAgICAgICAgICAgIGxhc3RHZW5lcmF0ZWRDb2x1bW4gPSBtYXBwaW5nLmdlbmVyYXRlZENvbHVtbjsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNYXBwaW5nID0gbWFwcGluZzsKICAgICAgICB9LCB0aGlzKTsKICAgICAgICBpZiAocmVtYWluaW5nTGluZXNJbmRleCA8IHJlbWFpbmluZ0xpbmVzLmxlbmd0aCkgewogICAgICAgICAgaWYgKGxhc3RNYXBwaW5nKSB7CiAgICAgICAgICAgIGFkZE1hcHBpbmdXaXRoQ29kZShsYXN0TWFwcGluZywgc2hpZnROZXh0TGluZSgpKTsKICAgICAgICAgIH0KICAgICAgICAgIG5vZGUuYWRkKHJlbWFpbmluZ0xpbmVzLnNwbGljZShyZW1haW5pbmdMaW5lc0luZGV4KS5qb2luKCIiKSk7CiAgICAgICAgfQogICAgICAgIGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VzLmZvckVhY2goZnVuY3Rpb24oc291cmNlRmlsZSkgewogICAgICAgICAgY29uc3QgY29udGVudCA9IGFTb3VyY2VNYXBDb25zdW1lci5zb3VyY2VDb250ZW50Rm9yKHNvdXJjZUZpbGUpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT0gbnVsbCkgewogICAgICAgICAgICBpZiAoYVJlbGF0aXZlUGF0aCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgc291cmNlRmlsZSA9IHV0aWwuam9pbihhUmVsYXRpdmVQYXRoLCBzb3VyY2VGaWxlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBub2RlLnNldFNvdXJjZUNvbnRlbnQoc291cmNlRmlsZSwgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgICAgZnVuY3Rpb24gYWRkTWFwcGluZ1dpdGhDb2RlKG1hcHBpbmcsIGNvZGUpIHsKICAgICAgICAgIGlmIChtYXBwaW5nID09PSBudWxsIHx8IG1hcHBpbmcuc291cmNlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgbm9kZS5hZGQoY29kZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBhUmVsYXRpdmVQYXRoID8gdXRpbC5qb2luKGFSZWxhdGl2ZVBhdGgsIG1hcHBpbmcuc291cmNlKSA6IG1hcHBpbmcuc291cmNlOwogICAgICAgICAgICBub2RlLmFkZChuZXcgX1NvdXJjZU5vZGUoCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbExpbmUsCiAgICAgICAgICAgICAgbWFwcGluZy5vcmlnaW5hbENvbHVtbiwKICAgICAgICAgICAgICBzb3VyY2UsCiAgICAgICAgICAgICAgY29kZSwKICAgICAgICAgICAgICBtYXBwaW5nLm5hbWUKICAgICAgICAgICAgKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBBZGQgYSBjaHVuayBvZiBnZW5lcmF0ZWQgSlMgdG8gdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgYWRkKGFDaHVuaykgewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KGFDaHVuaykpIHsKICAgICAgICAgIGFDaHVuay5mb3JFYWNoKGZ1bmN0aW9uKGNodW5rKSB7CiAgICAgICAgICAgIHRoaXMuYWRkKGNodW5rKTsKICAgICAgICAgIH0sIHRoaXMpOwogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIGlmIChhQ2h1bmspIHsKICAgICAgICAgICAgdGhpcy5jaGlsZHJlbi5wdXNoKGFDaHVuayk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoCiAgICAgICAgICAgICJFeHBlY3RlZCBhIFNvdXJjZU5vZGUsIHN0cmluZywgb3IgYW4gYXJyYXkgb2YgU291cmNlTm9kZXMgYW5kIHN0cmluZ3MuIEdvdCAiICsgYUNodW5rCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgY2h1bmsgb2YgZ2VuZXJhdGVkIEpTIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzb3VyY2Ugbm9kZS4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFDaHVuayBBIHN0cmluZyBzbmlwcGV0IG9mIGdlbmVyYXRlZCBKUyBjb2RlLCBhbm90aGVyIGluc3RhbmNlIG9mCiAgICAgICAqICAgICAgICBTb3VyY2VOb2RlLCBvciBhbiBhcnJheSB3aGVyZSBlYWNoIG1lbWJlciBpcyBvbmUgb2YgdGhvc2UgdGhpbmdzLgogICAgICAgKi8KICAgICAgcHJlcGVuZChhQ2h1bmspIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhQ2h1bmspKSB7CiAgICAgICAgICBmb3IgKGxldCBpID0gYUNodW5rLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgIHRoaXMucHJlcGVuZChhQ2h1bmtbaV0pOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoYUNodW5rW2lzU291cmNlTm9kZV0gfHwgdHlwZW9mIGFDaHVuayA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4udW5zaGlmdChhQ2h1bmspOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKAogICAgICAgICAgICAiRXhwZWN0ZWQgYSBTb3VyY2VOb2RlLCBzdHJpbmcsIG9yIGFuIGFycmF5IG9mIFNvdXJjZU5vZGVzIGFuZCBzdHJpbmdzLiBHb3QgIiArIGFDaHVuawogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFdhbGsgb3ZlciB0aGUgdHJlZSBvZiBKUyBzbmlwcGV0cyBpbiB0aGlzIG5vZGUgYW5kIGl0cyBjaGlsZHJlbi4gVGhlCiAgICAgICAqIHdhbGtpbmcgZnVuY3Rpb24gaXMgY2FsbGVkIG9uY2UgZm9yIGVhY2ggc25pcHBldCBvZiBKUyBhbmQgaXMgcGFzc2VkIHRoYXQKICAgICAgICogc25pcHBldCBhbmQgdGhlIGl0cyBvcmlnaW5hbCBhc3NvY2lhdGVkIHNvdXJjZSdzIGxpbmUvY29sdW1uIGxvY2F0aW9uLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gYUZuIFRoZSB0cmF2ZXJzYWwgZnVuY3Rpb24uCiAgICAgICAqLwogICAgICB3YWxrKGFGbikgewogICAgICAgIGxldCBjaHVuazsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgY2h1bmsgPSB0aGlzLmNoaWxkcmVuW2ldOwogICAgICAgICAgaWYgKGNodW5rW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgICAgY2h1bmsud2FsayhhRm4pOwogICAgICAgICAgfSBlbHNlIGlmIChjaHVuayAhPT0gIiIpIHsKICAgICAgICAgICAgYUZuKGNodW5rLCB7CiAgICAgICAgICAgICAgc291cmNlOiB0aGlzLnNvdXJjZSwKICAgICAgICAgICAgICBsaW5lOiB0aGlzLmxpbmUsCiAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbiwKICAgICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaWtlIGBTdHJpbmcucHJvdG90eXBlLmpvaW5gIGV4Y2VwdCBmb3IgU291cmNlTm9kZXMuIEluc2VydHMgYGFTdHJgIGJldHdlZW4KICAgICAgICogZWFjaCBvZiBgdGhpcy5jaGlsZHJlbmAuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhU2VwIFRoZSBzZXBhcmF0b3IuCiAgICAgICAqLwogICAgICBqb2luKGFTZXApIHsKICAgICAgICBsZXQgbmV3Q2hpbGRyZW47CiAgICAgICAgbGV0IGk7CiAgICAgICAgY29uc3QgbGVuID0gdGhpcy5jaGlsZHJlbi5sZW5ndGg7CiAgICAgICAgaWYgKGxlbiA+IDApIHsKICAgICAgICAgIG5ld0NoaWxkcmVuID0gW107CiAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuIC0gMTsgaSsrKSB7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2godGhpcy5jaGlsZHJlbltpXSk7CiAgICAgICAgICAgIG5ld0NoaWxkcmVuLnB1c2goYVNlcCk7CiAgICAgICAgICB9CiAgICAgICAgICBuZXdDaGlsZHJlbi5wdXNoKHRoaXMuY2hpbGRyZW5baV0pOwogICAgICAgICAgdGhpcy5jaGlsZHJlbiA9IG5ld0NoaWxkcmVuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ2FsbCBTdHJpbmcucHJvdG90eXBlLnJlcGxhY2Ugb24gdGhlIHZlcnkgcmlnaHQtbW9zdCBzb3VyY2Ugc25pcHBldC4gVXNlZnVsCiAgICAgICAqIGZvciB0cmltbWluZyB3aGl0ZXNwYWNlIGZyb20gdGhlIGVuZCBvZiBhIHNvdXJjZSBub2RlLCBldGMuCiAgICAgICAqCiAgICAgICAqIEBwYXJhbSBhUGF0dGVybiBUaGUgcGF0dGVybiB0byByZXBsYWNlLgogICAgICAgKiBAcGFyYW0gYVJlcGxhY2VtZW50IFRoZSB0aGluZyB0byByZXBsYWNlIHRoZSBwYXR0ZXJuIHdpdGguCiAgICAgICAqLwogICAgICByZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IGxhc3RDaGlsZCA9IHRoaXMuY2hpbGRyZW5bdGhpcy5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICBpZiAobGFzdENoaWxkW2lzU291cmNlTm9kZV0pIHsKICAgICAgICAgIGxhc3RDaGlsZC5yZXBsYWNlUmlnaHQoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgbGFzdENoaWxkID09PSAic3RyaW5nIikgewogICAgICAgICAgdGhpcy5jaGlsZHJlblt0aGlzLmNoaWxkcmVuLmxlbmd0aCAtIDFdID0gbGFzdENoaWxkLnJlcGxhY2UoYVBhdHRlcm4sIGFSZXBsYWNlbWVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2hpbGRyZW4ucHVzaCgiIi5yZXBsYWNlKGFQYXR0ZXJuLCBhUmVwbGFjZW1lbnQpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNldCB0aGUgc291cmNlIGNvbnRlbnQgZm9yIGEgc291cmNlIGZpbGUuIFRoaXMgd2lsbCBiZSBhZGRlZCB0byB0aGUgU291cmNlTWFwR2VuZXJhdG9yCiAgICAgICAqIGluIHRoZSBzb3VyY2VzQ29udGVudCBmaWVsZC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFTb3VyY2VGaWxlIFRoZSBmaWxlbmFtZSBvZiB0aGUgc291cmNlIGZpbGUKICAgICAgICogQHBhcmFtIGFTb3VyY2VDb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBzb3VyY2UgZmlsZQogICAgICAgKi8KICAgICAgc2V0U291cmNlQ29udGVudChhU291cmNlRmlsZSwgYVNvdXJjZUNvbnRlbnQpIHsKICAgICAgICB0aGlzLnNvdXJjZUNvbnRlbnRzW3V0aWwudG9TZXRTdHJpbmcoYVNvdXJjZUZpbGUpXSA9IGFTb3VyY2VDb250ZW50OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBXYWxrIG92ZXIgdGhlIHRyZWUgb2YgU291cmNlTm9kZXMuIFRoZSB3YWxraW5nIGZ1bmN0aW9uIGlzIGNhbGxlZCBmb3IgZWFjaAogICAgICAgKiBzb3VyY2UgZmlsZSBjb250ZW50IGFuZCBpcyBwYXNzZWQgdGhlIGZpbGVuYW1lIGFuZCBzb3VyY2UgY29udGVudC4KICAgICAgICoKICAgICAgICogQHBhcmFtIGFGbiBUaGUgdHJhdmVyc2FsIGZ1bmN0aW9uLgogICAgICAgKi8KICAgICAgd2Fsa1NvdXJjZUNvbnRlbnRzKGFGbikgewogICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgICBpZiAodGhpcy5jaGlsZHJlbltpXVtpc1NvdXJjZU5vZGVdKSB7CiAgICAgICAgICAgIHRoaXMuY2hpbGRyZW5baV0ud2Fsa1NvdXJjZUNvbnRlbnRzKGFGbik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNvdXJjZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNvdXJjZUNvbnRlbnRzKTsKICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gc291cmNlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgICAgYUZuKHV0aWwuZnJvbVNldFN0cmluZyhzb3VyY2VzW2ldKSwgdGhpcy5zb3VyY2VDb250ZW50c1tzb3VyY2VzW2ldXSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm4gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHNvdXJjZSBub2RlLiBXYWxrcyBvdmVyIHRoZSB0cmVlCiAgICAgICAqIGFuZCBjb25jYXRlbmF0ZXMgYWxsIHRoZSB2YXJpb3VzIHNuaXBwZXRzIHRvZ2V0aGVyIHRvIG9uZSBzdHJpbmcuCiAgICAgICAqLwogICAgICB0b1N0cmluZygpIHsKICAgICAgICBsZXQgc3RyMiA9ICIiOwogICAgICAgIHRoaXMud2FsayhmdW5jdGlvbihjaHVuaykgewogICAgICAgICAgc3RyMiArPSBjaHVuazsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgc291cmNlIG5vZGUgYWxvbmcgd2l0aCBhIHNvdXJjZQogICAgICAgKiBtYXAuCiAgICAgICAqLwogICAgICB0b1N0cmluZ1dpdGhTb3VyY2VNYXAoYUFyZ3MpIHsKICAgICAgICBjb25zdCBnZW5lcmF0ZWQgPSB7CiAgICAgICAgICBjb2RlOiAiIiwKICAgICAgICAgIGxpbmU6IDEsCiAgICAgICAgICBjb2x1bW46IDAKICAgICAgICB9OwogICAgICAgIGNvbnN0IG1hcDIgPSBuZXcgU291cmNlTWFwR2VuZXJhdG9yKGFBcmdzKTsKICAgICAgICBsZXQgc291cmNlTWFwcGluZ0FjdGl2ZSA9IGZhbHNlOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxTb3VyY2UgPSBudWxsOwogICAgICAgIGxldCBsYXN0T3JpZ2luYWxMaW5lID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsQ29sdW1uID0gbnVsbDsKICAgICAgICBsZXQgbGFzdE9yaWdpbmFsTmFtZSA9IG51bGw7CiAgICAgICAgdGhpcy53YWxrKGZ1bmN0aW9uKGNodW5rLCBvcmlnaW5hbCkgewogICAgICAgICAgZ2VuZXJhdGVkLmNvZGUgKz0gY2h1bms7CiAgICAgICAgICBpZiAob3JpZ2luYWwuc291cmNlICE9PSBudWxsICYmIG9yaWdpbmFsLmxpbmUgIT09IG51bGwgJiYgb3JpZ2luYWwuY29sdW1uICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmIChsYXN0T3JpZ2luYWxTb3VyY2UgIT09IG9yaWdpbmFsLnNvdXJjZSB8fCBsYXN0T3JpZ2luYWxMaW5lICE9PSBvcmlnaW5hbC5saW5lIHx8IGxhc3RPcmlnaW5hbENvbHVtbiAhPT0gb3JpZ2luYWwuY29sdW1uIHx8IGxhc3RPcmlnaW5hbE5hbWUgIT09IG9yaWdpbmFsLm5hbWUpIHsKICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgc291cmNlOiBvcmlnaW5hbC5zb3VyY2UsCiAgICAgICAgICAgICAgICBvcmlnaW5hbDogewogICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICBjb2x1bW46IG9yaWdpbmFsLmNvbHVtbgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgICAgY29sdW1uOiBnZW5lcmF0ZWQuY29sdW1uCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgbmFtZTogb3JpZ2luYWwubmFtZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG9yaWdpbmFsLnNvdXJjZTsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTGluZSA9IG9yaWdpbmFsLmxpbmU7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbENvbHVtbiA9IG9yaWdpbmFsLmNvbHVtbjsKICAgICAgICAgICAgbGFzdE9yaWdpbmFsTmFtZSA9IG9yaWdpbmFsLm5hbWU7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSB0cnVlOwogICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgIG1hcDIuYWRkTWFwcGluZyh7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkOiB7CiAgICAgICAgICAgICAgICBsaW5lOiBnZW5lcmF0ZWQubGluZSwKICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgIHNvdXJjZU1hcHBpbmdBY3RpdmUgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIGZvciAobGV0IGlkeCA9IDAsIGxlbmd0aCA9IGNodW5rLmxlbmd0aDsgaWR4IDwgbGVuZ3RoOyBpZHgrKykgewogICAgICAgICAgICBpZiAoY2h1bmsuY2hhckNvZGVBdChpZHgpID09PSBORVdMSU5FX0NPREUpIHsKICAgICAgICAgICAgICBnZW5lcmF0ZWQubGluZSsrOwogICAgICAgICAgICAgIGdlbmVyYXRlZC5jb2x1bW4gPSAwOwogICAgICAgICAgICAgIGlmIChpZHggKyAxID09PSBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIGxhc3RPcmlnaW5hbFNvdXJjZSA9IG51bGw7CiAgICAgICAgICAgICAgICBzb3VyY2VNYXBwaW5nQWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VNYXBwaW5nQWN0aXZlKSB7CiAgICAgICAgICAgICAgICBtYXAyLmFkZE1hcHBpbmcoewogICAgICAgICAgICAgICAgICBzb3VyY2U6IG9yaWdpbmFsLnNvdXJjZSwKICAgICAgICAgICAgICAgICAgb3JpZ2luYWw6IHsKICAgICAgICAgICAgICAgICAgICBsaW5lOiBvcmlnaW5hbC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogb3JpZ2luYWwuY29sdW1uCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIGdlbmVyYXRlZDogewogICAgICAgICAgICAgICAgICAgIGxpbmU6IGdlbmVyYXRlZC5saW5lLAogICAgICAgICAgICAgICAgICAgIGNvbHVtbjogZ2VuZXJhdGVkLmNvbHVtbgogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICBuYW1lOiBvcmlnaW5hbC5uYW1lCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZ2VuZXJhdGVkLmNvbHVtbisrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy53YWxrU291cmNlQ29udGVudHMoZnVuY3Rpb24oc291cmNlRmlsZSwgc291cmNlQ29udGVudCkgewogICAgICAgICAgbWFwMi5zZXRTb3VyY2VDb250ZW50KHNvdXJjZUZpbGUsIHNvdXJjZUNvbnRlbnQpOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiB7IGNvZGU6IGdlbmVyYXRlZC5jb2RlLCBtYXA6IG1hcDIgfTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNvdXJjZU5vZGUgPSBTb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9zb3VyY2UtbWFwLW5wbS0wLjcuNC1iYzhkMDE4YWI2LTEwLnppcC9ub2RlX21vZHVsZXMvc291cmNlLW1hcC9zb3VyY2UtbWFwLmpzCnZhciByZXF1aXJlX3NvdXJjZV9tYXAgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc291cmNlLW1hcC1ucG0tMC43LjQtYmM4ZDAxOGFiNi0xMC56aXAvbm9kZV9tb2R1bGVzL3NvdXJjZS1tYXAvc291cmNlLW1hcC5qcyIoZXhwb3J0czIpIHsKICAgIGV4cG9ydHMyLlNvdXJjZU1hcEdlbmVyYXRvciA9IHJlcXVpcmVfc291cmNlX21hcF9nZW5lcmF0b3IoKS5Tb3VyY2VNYXBHZW5lcmF0b3I7CiAgICBleHBvcnRzMi5Tb3VyY2VNYXBDb25zdW1lciA9IHJlcXVpcmVfc291cmNlX21hcF9jb25zdW1lcigpLlNvdXJjZU1hcENvbnN1bWVyOwogICAgZXhwb3J0czIuU291cmNlTm9kZSA9IHJlcXVpcmVfc291cmNlX25vZGUoKS5Tb3VyY2VOb2RlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanMKdmFyIHJlcXVpcmVfdGVtcGxhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3RlbXBsYXRlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi50ZW1wbGF0ZVBhcnNlciA9IHRlbXBsYXRlUGFyc2VyOwogICAgZXhwb3J0czIudGVtcGxhdGUgPSB0ZW1wbGF0ZTM7CiAgICB2YXIgc291cmNlX21hcF8xID0gcmVxdWlyZV9zb3VyY2VfbWFwKCk7CiAgICB2YXIga0ludGVycG9sYXRlUmUgPSAvPCU9KFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0NvbW1lbnRSZSA9IC88JSMoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrRXNjYXBlUmUgPSAvPCUtKFtcc1xTXSs/KSU+L2c7CiAgICB2YXIga0V2YWx1YXRlUmUgPSAvPCUoW1xzXFNdKz8pJT4vZzsKICAgIHZhciBrSHRtbEVzY2FwZXMgPSB7CiAgICAgICImIjogIiZhbXA7IiwKICAgICAgIjwiOiAiJmx0OyIsCiAgICAgICI+IjogIiZndDsiLAogICAgICAnIic6ICImcXVvdDsiLAogICAgICAiJyI6ICImIzM5OyIsCiAgICAgICJgIjogIiYjOTY7IgogICAgfTsKICAgIHZhciByZVVuZXNjYXBlZEh0bWwgPSBuZXcgUmVnRXhwKGBbJHtPYmplY3Qua2V5cyhrSHRtbEVzY2FwZXMpLmpvaW4oIiIpfV1gLCAiZyIpOwogICAgZnVuY3Rpb24gX3Bvc2l0aW9uRm9yKGNvbnRlbnQsIG9mZnNldCkgewogICAgICBsZXQgbGluZSA9IDE7CiAgICAgIGxldCBjb2x1bW4gPSAwOwogICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9mZnNldCAtIDE7IGkrKykgewogICAgICAgIGlmIChjb250ZW50W2ldID09ICJcbiIpIHsKICAgICAgICAgIGxpbmUrKzsKICAgICAgICAgIGNvbHVtbiA9IDA7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbHVtbisrOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gewogICAgICAgIGxpbmUsCiAgICAgICAgY29sdW1uCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZVBhcnNlcihzb3VyY2VUZXh0LCBmaWxlTmFtZSkgewogICAgICBjb25zdCBjaGlsZHJlbiA9IFtdOwogICAgICBjb25zdCByZUV4cHJlc3Npb25zID0gW2tFc2NhcGVSZSwga0NvbW1lbnRSZSwga0ludGVycG9sYXRlUmUsIGtFdmFsdWF0ZVJlXTsKICAgICAgY29uc3QgcmVEZWxpbWl0ZXJzID0gUmVnRXhwKHJlRXhwcmVzc2lvbnMubWFwKCh4KSA9PiB4LnNvdXJjZSkuam9pbigifCIpICsgInwkIiwgImciKTsKICAgICAgY29uc3QgcGFyc2VkID0gc291cmNlVGV4dC5zcGxpdChyZURlbGltaXRlcnMpOwogICAgICBsZXQgb2Zmc2V0ID0gMDsKICAgICAgbGV0IHN0YXJ0ID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCk7CiAgICAgIGxldCBlbmQ7CiAgICAgIGNvbnN0IGluY3JlbWVudCA9IHJlRXhwcmVzc2lvbnMubGVuZ3RoICsgMTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJzZWQubGVuZ3RoOyBpICs9IGluY3JlbWVudCkgewogICAgICAgIGNvbnN0IFtjb250ZW50LCBlc2NhcGUyLCBjb21tZW50LCBpbnRlcnBvbGF0ZSwgZXZhbHVhdGVdID0gcGFyc2VkLnNsaWNlKGksIGkgKyBpbmNyZW1lbnQpOwogICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29udGVudC5sZW5ndGgpOwogICAgICAgICAgb2Zmc2V0ICs9IGNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJjb250ZW50IiwgY29udGVudCwgc3RhcnQsIGVuZCB9KTsKICAgICAgICAgIHN0YXJ0ID0gZW5kOwogICAgICAgIH0KICAgICAgICBpZiAoZXNjYXBlMikgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGVzY2FwZTIubGVuZ3RoICsgNSk7CiAgICAgICAgICBvZmZzZXQgKz0gZXNjYXBlMi5sZW5ndGggKyA1OwogICAgICAgICAgY2hpbGRyZW4ucHVzaCh7IGtpbmQ6ICJlc2NhcGUiLCBleHByZXNzaW9uOiBlc2NhcGUyLCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChjb21tZW50KSB7CiAgICAgICAgICBlbmQgPSBfcG9zaXRpb25Gb3Ioc291cmNlVGV4dCwgb2Zmc2V0ICsgY29tbWVudC5sZW5ndGggKyA1KTsKICAgICAgICAgIG9mZnNldCArPSBjb21tZW50Lmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImNvbW1lbnQiLCB0ZXh0OiBjb21tZW50LCBzdGFydCwgZW5kIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChpbnRlcnBvbGF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGludGVycG9sYXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGludGVycG9sYXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAga2luZDogImludGVycG9sYXRlIiwKICAgICAgICAgICAgZXhwcmVzc2lvbjogaW50ZXJwb2xhdGUsCiAgICAgICAgICAgIHN0YXJ0LAogICAgICAgICAgICBlbmQKICAgICAgICAgIH0pOwogICAgICAgICAgc3RhcnQgPSBlbmQ7CiAgICAgICAgfQogICAgICAgIGlmIChldmFsdWF0ZSkgewogICAgICAgICAgZW5kID0gX3Bvc2l0aW9uRm9yKHNvdXJjZVRleHQsIG9mZnNldCArIGV2YWx1YXRlLmxlbmd0aCArIDUpOwogICAgICAgICAgb2Zmc2V0ICs9IGV2YWx1YXRlLmxlbmd0aCArIDU7CiAgICAgICAgICBjaGlsZHJlbi5wdXNoKHsga2luZDogImV2YWx1YXRlIiwgZXhwcmVzc2lvbjogZXZhbHVhdGUsIHN0YXJ0LCBlbmQgfSk7CiAgICAgICAgICBzdGFydCA9IGVuZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHsKICAgICAgICBmaWxlTmFtZSwKICAgICAgICBjb250ZW50OiBzb3VyY2VUZXh0LAogICAgICAgIGNoaWxkcmVuCiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZUZhc3QoYXN0LCBvcHRpb25zKSB7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gIm1vZHVsZS5leHBvcnRzLmRlZmF1bHQgPSIgOiAiIjsKICAgICAgY29uc3QgcmVIdG1sRXNjYXBlID0gcmVVbmVzY2FwZWRIdG1sLnNvdXJjZS5yZXBsYWNlKC9bJ10vZywgIlxcXFxcXCciKTsKICAgICAgcmV0dXJuIGAKICAgIHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewogICAgICBvYmogfHwgKG9iaiA9IHt9KTsKICAgICAgbGV0IF9fdDsKICAgICAgbGV0IF9fcCA9ICcnOwogICAgICBjb25zdCBfX2VzY2FwZXMgPSAke0pTT04uc3RyaW5naWZ5KGtIdG1sRXNjYXBlcyl9OwogICAgICBjb25zdCBfX2VzY2FwZXNyZSA9IG5ldyBSZWdFeHAoJyR7cmVIdG1sRXNjYXBlfScsICdnJyk7CgogICAgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7CiAgICAgICAgcmV0dXJuIHMgPyBzLnJlcGxhY2UoX19lc2NhcGVzcmUsIGZ1bmN0aW9uKGtleSkgeyByZXR1cm4gX19lc2NhcGVzW2tleV07IH0pIDogJyc7CiAgICAgIH07CiAgICAgIHdpdGggKG9iaikgewogICAgICAgICR7YXN0LmNoaWxkcmVuLm1hcCgobm9kZSkgPT4gewogICAgICAgIHN3aXRjaCAobm9kZS5raW5kKSB7CiAgICAgICAgICBjYXNlICJjb250ZW50IjoKICAgICAgICAgICAgcmV0dXJuIGBfX3AgKz0gJHtKU09OLnN0cmluZ2lmeShub2RlLmNvbnRlbnQpfTtgOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSAoKF9fdCA9ICgke25vZGUuZXhwcmVzc2lvbn0pKSA9PSBudWxsKSA/ICcnIDogX190O2A7CiAgICAgICAgICBjYXNlICJlc2NhcGUiOgogICAgICAgICAgICByZXR1cm4gYF9fcCArPSBfX2UoJHtub2RlLmV4cHJlc3Npb259KTtgOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICByZXR1cm4gbm9kZS5leHByZXNzaW9uOwogICAgICAgIH0KICAgICAgfSkuam9pbigiXG4iKX0KICAgICAgfQoKICAgICAgcmV0dXJuIF9fcDsKICAgIH07CiAgYDsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpIHsKICAgICAgY29uc3Qgc291cmNlVXJsID0gYXN0LmZpbGVOYW1lOwogICAgICBjb25zdCBtb2R1bGUzID0gb3B0aW9ucyAmJiBvcHRpb25zLm1vZHVsZSA/ICJtb2R1bGUuZXhwb3J0cy5kZWZhdWx0ID0iIDogIiI7CiAgICAgIGNvbnN0IHJlSHRtbEVzY2FwZSA9IHJlVW5lc2NhcGVkSHRtbC5zb3VyY2UucmVwbGFjZSgvWyddL2csICJcXFxcXFwnIik7CiAgICAgIGNvbnN0IHByZWFtYmxlID0gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKDEsIDAsIHNvdXJjZVVybCwgIiIpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoMSwgMCwgc291cmNlVXJsLCBbCiAgICAgICAgYHJldHVybiAke21vZHVsZTN9IGZ1bmN0aW9uKG9iaikgewpgLAogICAgICAgICIgIG9iaiB8fCAob2JqID0ge30pO1xuIiwKICAgICAgICAiICBsZXQgX190O1xuIiwKICAgICAgICAnICBsZXQgX19wID0gIiI7XG4nLAogICAgICAgIGAgIGNvbnN0IF9fZXNjYXBlcyA9ICR7SlNPTi5zdHJpbmdpZnkoa0h0bWxFc2NhcGVzKX07CmAsCiAgICAgICAgYCAgY29uc3QgX19lc2NhcGVzcmUgPSBuZXcgUmVnRXhwKCcke3JlSHRtbEVzY2FwZX0nLCAnZycpOwpgLAogICAgICAgIGAKYCwKICAgICAgICBgICBjb25zdCBfX2UgPSBmdW5jdGlvbihzKSB7IGAsCiAgICAgICAgYCAgICByZXR1cm4gcyA/IHMucmVwbGFjZShfX2VzY2FwZXNyZSwgZnVuY3Rpb24oa2V5KSB7IHJldHVybiBfX2VzY2FwZXNba2V5XTsgfSkgOiAnJztgLAogICAgICAgIGAgIH07CmAsCiAgICAgICAgYCAgd2l0aCAob2JqKSB7CmAKICAgICAgXSkpOwogICAgICBjb25zdCBlbmQgPSBhc3QuY2hpbGRyZW4ubGVuZ3RoID8gYXN0LmNoaWxkcmVuW2FzdC5jaGlsZHJlbi5sZW5ndGggLSAxXS5lbmQgOiB7IGxpbmU6IDAsIGNvbHVtbjogMCB9OwogICAgICBjb25zdCBub2RlcyA9IGFzdC5jaGlsZHJlbi5yZWR1Y2UoKGNodW5rLCBub2RlKSA9PiB7CiAgICAgICAgbGV0IGNvZGUyID0gIiI7CiAgICAgICAgc3dpdGNoIChub2RlLmtpbmQpIHsKICAgICAgICAgIGNhc2UgImNvbnRlbnQiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wID0gX19wIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5jb250ZW50LnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCAiXG4gICAgKyAiICsgSlNPTi5zdHJpbmdpZnkobGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSkpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIjtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiaW50ZXJwb2xhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lLCBub2RlLnN0YXJ0LmNvbHVtbiwgc291cmNlVXJsLCAiX19wICs9ICgoX190ID0gIiksCiAgICAgICAgICAgICAgLi4ubm9kZS5leHByZXNzaW9uLnNwbGl0KCJcbiIpLm1hcCgobGluZSwgaSwgYXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSArIGksIGkgPT0gMCA/IG5vZGUuc3RhcnQuY29sdW1uIDogMCwgc291cmNlVXJsLCBsaW5lICsgKGkgPT0gYXJyLmxlbmd0aCAtIDEgPyAiIiA6ICJcbiIpKTsKICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5lbmQubGluZSwgbm9kZS5lbmQuY29sdW1uLCBzb3VyY2VVcmwsICcpID09IG51bGwgPyAiIiA6IF9fdCk7XG4nKQogICAgICAgICAgICBdOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIGNhc2UgImVzY2FwZSI6CiAgICAgICAgICAgIGNvZGUyID0gWwogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUsIG5vZGUuc3RhcnQuY29sdW1uLCBzb3VyY2VVcmwsICJfX3AgKz0gX19lKCIpLAogICAgICAgICAgICAgIC4uLm5vZGUuZXhwcmVzc2lvbi5zcGxpdCgiXG4iKS5tYXAoKGxpbmUsIGksIGFycikgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLnN0YXJ0LmxpbmUgKyBpLCBpID09IDAgPyBub2RlLnN0YXJ0LmNvbHVtbiA6IDAsIHNvdXJjZVVybCwgbGluZSArIChpID09IGFyci5sZW5ndGggLSAxID8gIiIgOiAiXG4iKSk7CiAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgbmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuZW5kLmxpbmUsIG5vZGUuZW5kLmNvbHVtbiwgc291cmNlVXJsLCAiKTtcbiIpCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgY2FzZSAiZXZhbHVhdGUiOgogICAgICAgICAgICBjb2RlMiA9IFsKICAgICAgICAgICAgICAuLi5ub2RlLmV4cHJlc3Npb24uc3BsaXQoIlxuIikubWFwKChsaW5lLCBpLCBhcnIpID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUobm9kZS5zdGFydC5saW5lICsgaSwgaSA9PSAwID8gbm9kZS5zdGFydC5jb2x1bW4gOiAwLCBzb3VyY2VVcmwsIGxpbmUgKyAoaSA9PSBhcnIubGVuZ3RoIC0gMSA/ICIiIDogIlxuIikpOwogICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgIG5ldyBzb3VyY2VfbWFwXzEuU291cmNlTm9kZShub2RlLmVuZC5saW5lLCBub2RlLmVuZC5jb2x1bW4sIHNvdXJjZVVybCwgIlxuIikKICAgICAgICAgICAgXTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjaHVuay5hZGQobmV3IHNvdXJjZV9tYXBfMS5Tb3VyY2VOb2RlKG5vZGUuc3RhcnQubGluZSwgbm9kZS5zdGFydC5jb2x1bW4sIHNvdXJjZVVybCwgY29kZTIpKTsKICAgICAgfSwgcHJlYW1ibGUpLmFkZChuZXcgc291cmNlX21hcF8xLlNvdXJjZU5vZGUoZW5kLmxpbmUsIGVuZC5jb2x1bW4sIHNvdXJjZVVybCwgWyIgIH07XG4iLCAiXG4iLCAiICByZXR1cm4gX19wO1xuIiwgIn1cbiJdKSk7CiAgICAgIGNvbnN0IGNvZGUgPSBub2Rlcy50b1N0cmluZ1dpdGhTb3VyY2VNYXAoewogICAgICAgIGZpbGU6IHNvdXJjZVVybCwKICAgICAgICBzb3VyY2VSb290OiBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlUm9vdCB8fCAiLiIKICAgICAgfSk7CiAgICAgIGNvZGUubWFwLnNldFNvdXJjZUNvbnRlbnQoc291cmNlVXJsLCBhc3QuY29udGVudCk7CiAgICAgIHJldHVybiBjb2RlLmNvZGUgKyAiXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LCIgKyBCdWZmZXIuZnJvbShjb2RlLm1hcC50b1N0cmluZygpKS50b1N0cmluZygiYmFzZTY0Iik7CiAgICB9CiAgICBmdW5jdGlvbiB0ZW1wbGF0ZTMoY29udGVudCwgb3B0aW9ucykgewogICAgICBjb25zdCBzb3VyY2VVcmwgPSBvcHRpb25zICYmIG9wdGlvbnMuc291cmNlVVJMIHx8ICJlanMiOwogICAgICBjb25zdCBhc3QgPSB0ZW1wbGF0ZVBhcnNlcihjb250ZW50LCBzb3VyY2VVcmwpOwogICAgICBsZXQgc291cmNlOwogICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnNvdXJjZU1hcCkgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlV2l0aFNvdXJjZU1hcChhc3QsIG9wdGlvbnMpOwogICAgICB9IGVsc2UgewogICAgICAgIHNvdXJjZSA9IHRlbXBsYXRlRmFzdChhc3QsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGNvbnN0IGZuID0gRnVuY3Rpb24oIm1vZHVsZSIsIHNvdXJjZSk7CiAgICAgIGNvbnN0IG1vZHVsZTMgPSBvcHRpb25zICYmIG9wdGlvbnMubW9kdWxlID8gb3B0aW9ucy5tb2R1bGUgPT09IHRydWUgPyB7IGV4cG9ydHM6IHt9IH0gOiBvcHRpb25zLm1vZHVsZSA6IG51bGw7CiAgICAgIGNvbnN0IHJlc3VsdCA9IGZuKG1vZHVsZTMpOwogICAgICByZXN1bHQuc291cmNlID0gc291cmNlOwogICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzCnZhciByZXF1aXJlX3BhcnRpYWxseV9vcmRlcmVkX3NldCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcGFydGlhbGx5LW9yZGVyZWQtc2V0LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXJ0aWFsbHlPcmRlcmVkU2V0ID0gZXhwb3J0czIuQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb24gPSBleHBvcnRzMi5EZXBlbmRlbmN5Tm90Rm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJPbmUgb2YgdGhlIGRlcGVuZGVuY2llcyBpcyBub3QgcGFydCBvZiB0aGUgc2V0LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uID0gRGVwZW5kZW5jeU5vdEZvdW5kRXhjZXB0aW9uOwogICAgdmFyIENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBleGNlcHRpb25fMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoIkNpcmN1bGFyIGRlcGVuZGVuY2llcyBmb3VuZC4iKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uID0gQ2lyY3VsYXJEZXBlbmRlbmN5Rm91bmRFeGNlcHRpb247CiAgICB2YXIgUGFydGlhbGx5T3JkZXJlZFNldCA9IGNsYXNzIHsKICAgICAgX2l0ZW1zID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2NoZWNrQ2lyY3VsYXJEZXBlbmRlbmNpZXMoaXRlbSwgZGVwcykgewogICAgICAgIGlmIChkZXBzLmhhcyhpdGVtKSkgewogICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGRlcHMuZm9yRWFjaCgoZGVwKSA9PiB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIHRoaXMuX2l0ZW1zLmdldChkZXApIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpKTsKICAgICAgfQogICAgICBjbGVhcigpIHsKICAgICAgICB0aGlzLl9pdGVtcy5jbGVhcigpOwogICAgICB9CiAgICAgIGhhcyhpdGVtKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zLmhhcyhpdGVtKTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2l6ZTsKICAgICAgfQogICAgICBmb3JFYWNoKGNhbGxiYWNrZm4sIHRoaXNBcmcpIHsKICAgICAgICBmb3IgKGNvbnN0IHggb2YgdGhpcykgewogICAgICAgICAgY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsIHgsIHgsIHRoaXMpOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogUmV0dXJucyBhbiBpdGVyYWJsZSBvZiBbdix2XSBwYWlycyBmb3IgZXZlcnkgdmFsdWUgYHZgIGluIHRoZSBzZXQuCiAgICAgICAqLwogICAgICAqZW50cmllcygpIHsKICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcykgewogICAgICAgICAgeWllbGQgW2l0ZW0sIGl0ZW1dOwogICAgICAgIH0KICAgICAgfQogICAgICAvKioKICAgICAgICogRGVzcGl0ZSBpdHMgbmFtZSwgcmV0dXJucyBhbiBpdGVyYWJsZSBvZiB0aGUgdmFsdWVzIGluIHRoZSBzZXQsCiAgICAgICAqLwogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLnZhbHVlcygpOwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBSZXR1cm5zIGFuIGl0ZXJhYmxlIG9mIHZhbHVlcyBpbiB0aGUgc2V0LgogICAgICAgKi8KICAgICAgdmFsdWVzKCkgewogICAgICAgIHJldHVybiB0aGlzW1N5bWJvbC5pdGVyYXRvcl0oKTsKICAgICAgfQogICAgICBhZGQoaXRlbSwgZGVwcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCkpIHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkZXBzKSkgewogICAgICAgICAgZGVwcyA9IG5ldyBTZXQoZGVwcyk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pdGVtcy5oYXMoaXRlbSkpIHsKICAgICAgICAgIGNvbnN0IGl0ZW1EZXBzID0gdGhpcy5faXRlbXMuZ2V0KGl0ZW0pIHx8IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgICBsZXQgZXF1YWwgPSB0cnVlOwogICAgICAgICAgZm9yIChjb25zdCBkZXAgb2YgZGVwcykgewogICAgICAgICAgICBpZiAoIWl0ZW1EZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgZXF1YWwgPSBmYWxzZTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKGVxdWFsKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGl0ZW1EZXBzKSB7CiAgICAgICAgICAgICAgaWYgKCFkZXBzLmhhcyhkZXApKSB7CiAgICAgICAgICAgICAgICBlcXVhbCA9IGZhbHNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXF1YWwpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgZGVwIG9mIGRlcHMpIHsKICAgICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGRlcCkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IERlcGVuZGVuY3lOb3RGb3VuZEV4Y2VwdGlvbigpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLl9jaGVja0NpcmN1bGFyRGVwZW5kZW5jaWVzKGl0ZW0sIGRlcHMpOwogICAgICAgIHRoaXMuX2l0ZW1zLnNldChpdGVtLCBuZXcgU2V0KGRlcHMpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBkZWxldGUoaXRlbSkgewogICAgICAgIGlmICghdGhpcy5faXRlbXMuaGFzKGl0ZW0pKSB7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHRoaXMuX2l0ZW1zLmZvckVhY2goKHZhbHVlKSA9PiB2YWx1ZS5kZWxldGUoaXRlbSkpOwogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5kZWxldGUoaXRlbSk7CiAgICAgIH0KICAgICAgKltTeW1ib2wuaXRlcmF0b3JdKCkgewogICAgICAgIGNvbnN0IGNvcHkgPSBuZXcgTWFwKHRoaXMuX2l0ZW1zKTsKICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBjb3B5LmVudHJpZXMoKSkgewogICAgICAgICAgY29weS5zZXQoa2V5LCBuZXcgU2V0KHZhbHVlKSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChjb3B5LnNpemUgPiAwKSB7CiAgICAgICAgICBjb25zdCBydW4gPSBbXTsKICAgICAgICAgIGZvciAoY29uc3QgW2l0ZW0sIGRlcHNdIG9mIGNvcHkuZW50cmllcygpKSB7CiAgICAgICAgICAgIGlmIChkZXBzLnNpemUgPT0gMCkgewogICAgICAgICAgICAgIHJ1bi5wdXNoKGl0ZW0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcnVuKSB7CiAgICAgICAgICAgIGNvcHkuZm9yRWFjaCgocykgPT4gcy5kZWxldGUoaXRlbSkpOwogICAgICAgICAgICBjb3B5LmRlbGV0ZShpdGVtKTsKICAgICAgICAgICAgeWllbGQgaXRlbTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChydW4ubGVuZ3RoID09IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IENpcmN1bGFyRGVwZW5kZW5jeUZvdW5kRXhjZXB0aW9uKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgZ2V0IFtTeW1ib2wudG9TdHJpbmdUYWddKCkgewogICAgICAgIHJldHVybiAiU2V0IjsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhcnRpYWxseU9yZGVyZWRTZXQgPSBQYXJ0aWFsbHlPcmRlcmVkU2V0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanMKdmFyIHJlcXVpcmVfcHJpb3JpdHlfcXVldWUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3ByaW9yaXR5LXF1ZXVlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Qcmlvcml0eVF1ZXVlID0gdm9pZCAwOwogICAgdmFyIFByaW9yaXR5UXVldWUgPSBjbGFzcyB7CiAgICAgIF9jb21wYXJhdG9yOwogICAgICBfaXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2NvbXBhcmF0b3IpIHsKICAgICAgICB0aGlzLl9jb21wYXJhdG9yID0gX2NvbXBhcmF0b3I7CiAgICAgIH0KICAgICAgY2xlYXIoKSB7CiAgICAgICAgdGhpcy5faXRlbXMgPSBuZXcgQXJyYXkoKTsKICAgICAgfQogICAgICBwdXNoKGl0ZW0pIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2l0ZW1zLmZpbmRJbmRleCgoZXhpc3RpbmcpID0+IHRoaXMuX2NvbXBhcmF0b3IoaXRlbSwgZXhpc3RpbmcpIDw9IDApOwogICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnB1c2goaXRlbSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2l0ZW1zLnNwbGljZShpbmRleCwgMCwgaXRlbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHBvcCgpIHsKICAgICAgICBpZiAodGhpcy5faXRlbXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc3BsaWNlKDAsIDEpWzBdOwogICAgICB9CiAgICAgIHBlZWsoKSB7CiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zWzBdOwogICAgICB9CiAgICAgIGdldCBzaXplKCkgewogICAgICAgIHJldHVybiB0aGlzLl9pdGVtcy5sZW5ndGg7CiAgICAgIH0KICAgICAgdG9BcnJheSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaW9yaXR5UXVldWUgPSBQcmlvcml0eVF1ZXVlOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGFuZy5qcwp2YXIgcmVxdWlyZV9sYW5nID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9sYW5nLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc1Byb21pc2UgPSBpc1Byb21pc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2Uob2JqKSB7CiAgICAgIHJldHVybiAhIW9iaiAmJiB0eXBlb2Ygb2JqLnRoZW4gPT09ICJmdW5jdGlvbiI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy91dGlscy9pbmRleC5qcwp2YXIgcmVxdWlyZV91dGlsczMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIudGFncyA9IHZvaWQgMDsKICAgIHZhciB0YWdzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfbGl0ZXJhbHMoKSk7CiAgICBleHBvcnRzMi50YWdzID0gdGFnczsKICAgIHZhciBzdHJpbmdzMyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX3N0cmluZ3MoKSk7CiAgICBleHBvcnRzMi5zdHJpbmdzID0gc3RyaW5nczM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9vYmplY3QoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcGFydGlhbGx5X29yZGVyZWRfc2V0KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3ByaW9yaXR5X3F1ZXVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2xhbmcoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvdmlzaXRvci5qcwp2YXIgcmVxdWlyZV92aXNpdG9yID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi52aXNpdEpzb24gPSB2aXNpdEpzb247CiAgICBleHBvcnRzMi52aXNpdEpzb25TY2hlbWEgPSB2aXNpdEpzb25TY2hlbWE7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBwb2ludGVyXzEgPSByZXF1aXJlX3BvaW50ZXIoKTsKICAgIGZ1bmN0aW9uIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSB7CiAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiAhPT0gIm9iamVjdCIgfHwgc2NoZW1hMiA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgfHwgc2NoZW1hMi50eXBlID09ICJvYmplY3QiKSB7CiAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLnByb3BlcnRpZXMgPT0gIm9iamVjdCIgJiYgdHlwZW9mIHNjaGVtYTIucHJvcGVydGllc1trZXldID09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gc2NoZW1hMi5wcm9wZXJ0aWVzW2tleV07CiAgICAgICAgfQogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMi5hZGRpdGlvbmFsUHJvcGVydGllcyA9PSAib2JqZWN0IikgewogICAgICAgICAgcmV0dXJuIHNjaGVtYTIuYWRkaXRpb25hbFByb3BlcnRpZXM7CiAgICAgICAgfQogICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiIHx8IHNjaGVtYTIudHlwZSA9PSAiYXJyYXkiKSB7CiAgICAgICAgcmV0dXJuIHR5cGVvZiBzY2hlbWEyLml0ZW1zID09ICJvYmplY3QiID8gc2NoZW1hMi5pdGVtcyA6IHZvaWQgMDsKICAgICAgfQogICAgICByZXR1cm4gdm9pZCAwOwogICAgfQogICAgZnVuY3Rpb24gX3Zpc2l0SnNvblJlY3Vyc2l2ZShqc29uMiwgdmlzaXRvciwgcHRyLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCkgewogICAgICBpZiAoc2NoZW1hMiA9PT0gdHJ1ZSB8fCBzY2hlbWEyID09PSBmYWxzZSkgewogICAgICAgIHNjaGVtYTIgPSB2b2lkIDA7CiAgICAgIH0KICAgICAgaWYgKHNjaGVtYTIgJiYgc2NoZW1hMi5oYXNPd25Qcm9wZXJ0eSgiJHJlZiIpICYmIHR5cGVvZiBzY2hlbWEyWyIkcmVmIl0gPT0gInN0cmluZyIpIHsKICAgICAgICBpZiAocmVmUmVzb2x2ZXIpIHsKICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVmUmVzb2x2ZXIoc2NoZW1hMlsiJHJlZiJdLCBjb250ZXh0KTsKICAgICAgICAgIHNjaGVtYTIgPSByZXNvbHZlZC5zY2hlbWE7CiAgICAgICAgICBjb250ZXh0ID0gcmVzb2x2ZWQuY29udGV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3QgdmFsdWUgPSB2aXNpdG9yKGpzb24yLCBwdHIsIHNjaGVtYTIsIHJvb3QpOwogICAgICByZXR1cm4gKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKSh2YWx1ZSkgPyB2YWx1ZSA6ICgwLCByeGpzXzEub2YpKHZhbHVlKSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHZhbHVlMikgPT4gewogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlMikpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKSh2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKGl0ZW0sIGkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoaXRlbSwgdmlzaXRvciwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKHB0ciwgIiIgKyBpKSwgX2dldE9iamVjdFN1YlNjaGVtYShzY2hlbWEyLCAiIiArIGkpLCByZWZSZXNvbHZlciwgY29udGV4dCwgcm9vdCB8fCB2YWx1ZTIpLnBpcGUoKDAsIHJ4anNfMS50YXApKCh4KSA9PiB2YWx1ZTJbaV0gPSB4KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlMiA9PSAib2JqZWN0IiAmJiB2YWx1ZTIgIT09IG51bGwpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZTIpKS5waXBlKCgwLCByeGpzXzEubWVyZ2VNYXApKChrZXkpID0+IHsKICAgICAgICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUodmFsdWUyW2tleV0sIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShwdHIsIGtleSksIF9nZXRPYmplY3RTdWJTY2hlbWEoc2NoZW1hMiwga2V5KSwgcmVmUmVzb2x2ZXIsIGNvbnRleHQsIHJvb3QgfHwgdmFsdWUyKS5waXBlKCgwLCByeGpzXzEudGFwKSgoeCkgPT4gewogICAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHZhbHVlMiwga2V5KTsKICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvciAmJiBkZXNjcmlwdG9yLndyaXRhYmxlICYmIHZhbHVlMltrZXldICE9PSB4KSB7CiAgICAgICAgICAgICAgICB2YWx1ZTJba2V5XSA9IHg7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KSk7CiAgICAgICAgICB9KSwgKDAsIHJ4anNfMS5pZ25vcmVFbGVtZW50cykoKSksICgwLCByeGpzXzEub2YpKHZhbHVlMikpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodmFsdWUyKTsKICAgICAgICB9CiAgICAgIH0pKTsKICAgIH0KICAgIGZ1bmN0aW9uIHZpc2l0SnNvbihqc29uMiwgdmlzaXRvciwgc2NoZW1hMiwgcmVmUmVzb2x2ZXIsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuIF92aXNpdEpzb25SZWN1cnNpdmUoanNvbjIsIHZpc2l0b3IsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyLCByZWZSZXNvbHZlciwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiB2aXNpdEpzb25TY2hlbWEoc2NoZW1hMiwgdmlzaXRvcikgewogICAgICBpZiAoc2NoZW1hMiA9PT0gZmFsc2UgfHwgc2NoZW1hMiA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICBjb25zdCBrZXl3b3JkcyA9IHsKICAgICAgICBhZGRpdGlvbmFsSXRlbXM6IHRydWUsCiAgICAgICAgaXRlbXM6IHRydWUsCiAgICAgICAgY29udGFpbnM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcHJvcGVydHlOYW1lczogdHJ1ZSwKICAgICAgICBub3Q6IHRydWUKICAgICAgfTsKICAgICAgY29uc3QgYXJyYXlLZXl3b3JkcyA9IHsKICAgICAgICBpdGVtczogdHJ1ZSwKICAgICAgICBhbGxPZjogdHJ1ZSwKICAgICAgICBhbnlPZjogdHJ1ZSwKICAgICAgICBvbmVPZjogdHJ1ZQogICAgICB9OwogICAgICBjb25zdCBwcm9wc0tleXdvcmRzID0gewogICAgICAgIGRlZmluaXRpb25zOiB0cnVlLAogICAgICAgIHByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgcGF0dGVyblByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgZGVwZW5kZW5jaWVzOiB0cnVlLAogICAgICAgIGl0ZW1zOiB0cnVlCiAgICAgIH07CiAgICAgIGZ1bmN0aW9uIF90cmF2ZXJzZShzY2hlbWEzLCBqc29uUHRyLCByb290U2NoZW1hLCBwYXJlbnRTY2hlbWEsIGtleUluZGV4KSB7CiAgICAgICAgaWYgKHNjaGVtYTMgJiYgdHlwZW9mIHNjaGVtYTMgPT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkoc2NoZW1hMykpIHsKICAgICAgICAgIHZpc2l0b3Ioc2NoZW1hMywganNvblB0ciwgcGFyZW50U2NoZW1hLCBrZXlJbmRleCk7CiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhzY2hlbWEzKSkgewogICAgICAgICAgICBjb25zdCBzY2ggPSBzY2hlbWEzW2tleV07CiAgICAgICAgICAgIGlmIChrZXkgaW4gcHJvcHNLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChzY2ggJiYgdHlwZW9mIHNjaCA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHNjaCkpIHsKICAgICAgICAgICAgICAgICAgX3RyYXZlcnNlKHNjaFtwcm9wXSwgKDAsIHBvaW50ZXJfMS5qb2luSnNvblBvaW50ZXIpKGpzb25QdHIsIGtleSwgcHJvcCksIHJvb3RTY2hlbWEsIHNjaGVtYTMsIHByb3ApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4ga2V5d29yZHMpIHsKICAgICAgICAgICAgICBfdHJhdmVyc2Uoc2NoLCAoMCwgcG9pbnRlcl8xLmpvaW5Kc29uUG9pbnRlcikoanNvblB0ciwga2V5KSwgcm9vdFNjaGVtYSwgc2NoZW1hMywga2V5KTsKICAgICAgICAgICAgfSBlbHNlIGlmIChrZXkgaW4gYXJyYXlLZXl3b3JkcykgewogICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNjaCkpIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2NoLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzY2gpKSB7CiAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY2gubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIF90cmF2ZXJzZShzY2hbaV0sICgwLCBwb2ludGVyXzEuam9pbkpzb25Qb2ludGVyKShqc29uUHRyLCBrZXksICIiICsgaSksIHJvb3RTY2hlbWEsIHNjaCwgIiIgKyBpKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgX3RyYXZlcnNlKHNjaGVtYTIsICgwLCBwb2ludGVyXzEuYnVpbGRKc29uUG9pbnRlcikoW10pLCBzY2hlbWEyKTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3JlZ2lzdHJ5LmpzCnZhciByZXF1aXJlX3JlZ2lzdHJ5ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5Db3JlU2NoZW1hUmVnaXN0cnkgPSBleHBvcnRzMi5TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGFqdl8xID0gX19pbXBvcnREZWZhdWx0KHJlcXVpcmVfYWp2KCkpOwogICAgdmFyIGFqdl9mb3JtYXRzXzEgPSBfX2ltcG9ydERlZmF1bHQocmVxdWlyZV9kaXN0KCkpOwogICAgdmFyIGh0dHAgPSBfX2ltcG9ydFN0YXIocmVxdWlyZSgiaHR0cCIpKTsKICAgIHZhciBodHRwcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJodHRwcyIpKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFVybCA9IF9faW1wb3J0U3RhcihyZXF1aXJlKCJ1cmwiKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzMygpOwogICAgdmFyIHV0aWxzXzIgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgdXRpbGl0eV8xID0gcmVxdWlyZV91dGlsaXR5KCk7CiAgICB2YXIgdmlzaXRvcl8xID0gcmVxdWlyZV92aXNpdG9yKCk7CiAgICB2YXIgU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IGNsYXNzIF9TY2hlbWFWYWxpZGF0aW9uRXhjZXB0aW9uIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGVycm9yczsKICAgICAgY29uc3RydWN0b3IoZXJyb3JzLCBiYXNlTWVzc2FnZSA9ICJTY2hlbWEgdmFsaWRhdGlvbiBmYWlsZWQgd2l0aCB0aGUgZm9sbG93aW5nIGVycm9yczoiKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgc3VwZXIoIlNjaGVtYSB2YWxpZGF0aW9uIGZhaWxlZC4iKTsKICAgICAgICAgIHRoaXMuZXJyb3JzID0gW107CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gX1NjaGVtYVZhbGlkYXRpb25FeGNlcHRpb24uY3JlYXRlTWVzc2FnZXMoZXJyb3JzKTsKICAgICAgICBzdXBlcihgJHtiYXNlTWVzc2FnZX0KICAke21lc3NhZ2VzLmpvaW4oIlxuICAiKX1gKTsKICAgICAgICB0aGlzLmVycm9ycyA9IGVycm9yczsKICAgICAgfQogICAgICBzdGF0aWMgY3JlYXRlTWVzc2FnZXMoZXJyb3JzKSB7CiAgICAgICAgaWYgKCFlcnJvcnMgfHwgZXJyb3JzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBtZXNzYWdlcyA9IGVycm9ycy5tYXAoKGVycikgPT4gewogICAgICAgICAgbGV0IG1lc3NhZ2UgPSBgRGF0YSBwYXRoICR7SlNPTi5zdHJpbmdpZnkoZXJyLmluc3RhbmNlUGF0aCl9ICR7ZXJyLm1lc3NhZ2V9YDsKICAgICAgICAgIGlmIChlcnIucGFyYW1zKSB7CiAgICAgICAgICAgIHN3aXRjaCAoZXJyLmtleXdvcmQpIHsKICAgICAgICAgICAgICBjYXNlICJhZGRpdGlvbmFsUHJvcGVydGllcyI6CiAgICAgICAgICAgICAgICBtZXNzYWdlICs9IGAoJHtlcnIucGFyYW1zLmFkZGl0aW9uYWxQcm9wZXJ0eX0pYDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgImVudW0iOgogICAgICAgICAgICAgICAgbWVzc2FnZSArPSBgLiBBbGxvd2VkIHZhbHVlcyBhcmU6ICR7ZXJyLnBhcmFtcy5hbGxvd2VkVmFsdWVzPy5tYXAoKHYpID0+IGAiJHt2fSJgKS5qb2luKCIsICIpfWA7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIG1lc3NhZ2UgKyAiLiI7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIG1lc3NhZ2VzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuU2NoZW1hVmFsaWRhdGlvbkV4Y2VwdGlvbiA9IFNjaGVtYVZhbGlkYXRpb25FeGNlcHRpb247CiAgICB2YXIgQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gY2xhc3MgX0NvcmVTY2hlbWFSZWdpc3RyeSB7CiAgICAgIF9hanY7CiAgICAgIF91cmlDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF91cmlIYW5kbGVycyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIF9wcmUgPSBuZXcgdXRpbHNfMS5QYXJ0aWFsbHlPcmRlcmVkU2V0KCk7CiAgICAgIF9wb3N0ID0gbmV3IHV0aWxzXzEuUGFydGlhbGx5T3JkZXJlZFNldCgpOwogICAgICBfY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbzsKICAgICAgX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSBmYWxzZTsKICAgICAgX3Byb21wdFByb3ZpZGVyOwogICAgICBfc291cmNlTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoZm9ybWF0cyA9IFtdKSB7CiAgICAgICAgdGhpcy5fYWp2ID0gbmV3IGFqdl8xLmRlZmF1bHQoewogICAgICAgICAgc3RyaWN0OiBmYWxzZSwKICAgICAgICAgIGxvYWRTY2hlbWE6ICh1cmkpID0+IHRoaXMuX2ZldGNoKHVyaSksCiAgICAgICAgICBwYXNzQ29udGV4dDogdHJ1ZQogICAgICAgIH0pOwogICAgICAgICgwLCBhanZfZm9ybWF0c18xLmRlZmF1bHQpKHRoaXMuX2Fqdik7CiAgICAgICAgZm9yIChjb25zdCBmb3JtYXQgb2YgZm9ybWF0cykgewogICAgICAgICAgdGhpcy5hZGRGb3JtYXQoZm9ybWF0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXN5bmMgX2ZldGNoKHVyaSkgewogICAgICAgIGNvbnN0IG1heWJlU2NoZW1hID0gdGhpcy5fdXJpQ2FjaGUuZ2V0KHVyaSk7CiAgICAgICAgaWYgKG1heWJlU2NoZW1hKSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTY2hlbWE7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgaGFuZGxlciBvZiB0aGlzLl91cmlIYW5kbGVycykgewogICAgICAgICAgbGV0IGhhbmRsZXJSZXN1bHQgPSBoYW5kbGVyKHVyaSk7CiAgICAgICAgICBpZiAoaGFuZGxlclJlc3VsdCA9PT0gbnVsbCB8fCBoYW5kbGVyUmVzdWx0ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKGhhbmRsZXJSZXN1bHQpKSB7CiAgICAgICAgICAgIGhhbmRsZXJSZXN1bHQgPSAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhhbmRsZXJSZXN1bHQpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBoYW5kbGVyUmVzdWx0OwogICAgICAgICAgdGhpcy5fdXJpQ2FjaGUuc2V0KHVyaSwgdmFsdWUpOwogICAgICAgICAgcmV0dXJuIHZhbHVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgY29uc3QgdXJsMyA9IG5ldyBVcmwuVVJMKHVyaSk7CiAgICAgICAgICBjb25zdCBjbGllbnQgPSB1cmwzLnByb3RvY29sID09PSAiaHR0cHM6IiA/IGh0dHBzIDogaHR0cDsKICAgICAgICAgIGNsaWVudC5nZXQodXJsMywgKHJlcykgPT4gewogICAgICAgICAgICBpZiAoIXJlcy5zdGF0dXNDb2RlIHx8IHJlcy5zdGF0dXNDb2RlID49IDMwMCkgewogICAgICAgICAgICAgIHJlcy5yZXN1bWUoKTsKICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKGBSZXF1ZXN0IGZhaWxlZC4gU3RhdHVzIENvZGU6ICR7cmVzLnN0YXR1c0NvZGV9YCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcy5zZXRFbmNvZGluZygidXRmOCIpOwogICAgICAgICAgICAgIGxldCBkYXRhID0gIiI7CiAgICAgICAgICAgICAgcmVzLm9uKCJkYXRhIiwgKGNodW5rKSA9PiB7CiAgICAgICAgICAgICAgICBkYXRhICs9IGNodW5rOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHJlcy5vbigiZW5kIiwgKCkgPT4gewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QganNvbjIgPSBKU09OLnBhcnNlKGRhdGEpOwogICAgICAgICAgICAgICAgICB0aGlzLl91cmlDYWNoZS5zZXQodXJpLCBqc29uMik7CiAgICAgICAgICAgICAgICAgIHJlc29sdmUoanNvbjIpOwogICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQWRkIGEgdHJhbnNmb3JtYXRpb24gc3RlcCBiZWZvcmUgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uCiAgICAgICAqIEBwYXJhbSB7SnNvblZpc2l0b3J9IHZpc2l0b3IgVGhlIHZpc2l0b3IgdG8gdHJhbnNmb3JtIGV2ZXJ5IHZhbHVlLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yW119IGRlcHMgQSBsaXN0IG9mIG90aGVyIHZpc2l0b3JzIHRvIHJ1biBiZWZvcmUuCiAgICAgICAqLwogICAgICBhZGRQcmVUcmFuc2Zvcm0odmlzaXRvciwgZGVwcykgewogICAgICAgIHRoaXMuX3ByZS5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIEFkZCBhIHRyYW5zZm9ybWF0aW9uIHN0ZXAgYWZ0ZXIgdGhlIHZhbGlkYXRpb24gb2YgYW55IEpzb24uIFRoZSBKU09OIHdpbGwgbm90IGJlIHZhbGlkYXRlZAogICAgICAgKiBhZnRlciB0aGUgUE9TVCwgc28gaWYgdHJhbnNmb3JtYXRpb25zIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBTY2hlbWEgaXQgd2lsbCBub3QgcmVzdWx0CiAgICAgICAqIGluIGFuIGVycm9yLgogICAgICAgKiBAcGFyYW0ge0pzb25WaXNpdG9yfSB2aXNpdG9yIFRoZSB2aXNpdG9yIHRvIHRyYW5zZm9ybSBldmVyeSB2YWx1ZS4KICAgICAgICogQHBhcmFtIHtKc29uVmlzaXRvcltdfSBkZXBzIEEgbGlzdCBvZiBvdGhlciB2aXNpdG9ycyB0byBydW4gYmVmb3JlLgogICAgICAgKi8KICAgICAgYWRkUG9zdFRyYW5zZm9ybSh2aXNpdG9yLCBkZXBzKSB7CiAgICAgICAgdGhpcy5fcG9zdC5hZGQodmlzaXRvciwgZGVwcyk7CiAgICAgIH0KICAgICAgX3Jlc29sdmVyKHJlZiwgdmFsaWRhdGUpIHsKICAgICAgICBpZiAoIXZhbGlkYXRlIHx8ICFyZWYpIHsKICAgICAgICAgIHJldHVybiB7fTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgc2NoZW1hMiA9IHZhbGlkYXRlLnNjaGVtYUVudi5yb290LnNjaGVtYTsKICAgICAgICBjb25zdCBpZCA9IHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IiA/IHNjaGVtYTIuJGlkIDogbnVsbDsKICAgICAgICBsZXQgZnVsbFJlZmVyZW5jZSA9IHJlZjsKICAgICAgICBpZiAodHlwZW9mIGlkID09PSAic3RyaW5nIikgewogICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IFVybC5yZXNvbHZlKGlkLCByZWYpOwogICAgICAgICAgaWYgKHJlZi5zdGFydHNXaXRoKCIjIikpIHsKICAgICAgICAgICAgZnVsbFJlZmVyZW5jZSA9IGlkICsgZnVsbFJlZmVyZW5jZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgY29uc3QgcmVzb2x2ZWRTY2hlbWEgPSB0aGlzLl9hanYuZ2V0U2NoZW1hKGZ1bGxSZWZlcmVuY2UpOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjb250ZXh0OiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hRW52LnZhbGlkYXRlLAogICAgICAgICAgc2NoZW1hOiByZXNvbHZlZFNjaGVtYT8uc2NoZW1hCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogRmxhdHRlbiB0aGUgU2NoZW1hLCByZXNvbHZpbmcgYW5kIHJlcGxhY2luZyBhbGwgdGhlIHJlZnMuIE1ha2VzIGl0IGludG8gYSBzeW5jaHJvbm91cyBzY2hlbWEKICAgICAgICogdGhhdCBpcyBhbHNvIGVhc2llciB0byB0cmF2ZXJzZS4gRG9lcyBub3QgY2FjaGUgdGhlIHJlc3VsdC4KICAgICAgICoKICAgICAgICogUHJvZHVjaW5nIGEgZmxhdHRlbiBzY2hlbWEgZG9jdW1lbnQgZG9lcyBub3QgaW4gYWxsIGNhc2VzIHByb2R1Y2UgYSBzY2hlbWEgd2l0aCBpZGVudGljYWwgYmVoYXZpb3IgdG8gdGhlIG9yaWdpbmFsLgogICAgICAgKiBTZWU6IGh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMTktMDkvanNvbi1zY2hlbWEtY29yZS5odG1sI3JmYy5hcHBlbmRpeC5CLjIKICAgICAgICoKICAgICAgICogQHBhcmFtIHNjaGVtYSBUaGUgc2NoZW1hIG9yIFVSSSB0byBmbGF0dGVuLgogICAgICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIG9mIHRoZSBmbGF0dGVuZWQgc2NoZW1hIG9iamVjdC4KICAgICAgICogQHByaXZhdGUgc2luY2UgMTEuMiB3aXRob3V0IHJlcGxhY2VtZW50LgogICAgICAgKi8KICAgICAgYXN5bmMgXHUwMjc1ZmxhdHRlbihzY2hlbWEyKSB7CiAgICAgICAgdGhpcy5fYWp2LnJlbW92ZVNjaGVtYShzY2hlbWEyKTsKICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fYWp2LmNvbXBpbGVBc3luYyhzY2hlbWEyKTsKICAgICAgICBjb25zdCBzZWxmMiA9IHRoaXM7CiAgICAgICAgZnVuY3Rpb24gdmlzaXRvcihjdXJyZW50LCBwb2ludGVyLCBwYXJlbnRTY2hlbWEsIGluZGV4KSB7CiAgICAgICAgICBpZiAoY3VycmVudCAmJiBwYXJlbnRTY2hlbWEgJiYgaW5kZXggJiYgKDAsIHV0aWxzXzIuaXNKc29uT2JqZWN0KShjdXJyZW50KSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY3VycmVudCwgIiRyZWYiKSAmJiB0eXBlb2YgY3VycmVudFsiJHJlZiJdID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gc2VsZjIuX3Jlc29sdmVyKGN1cnJlbnRbIiRyZWYiXSwgdmFsaWRhdGUpOwogICAgICAgICAgICBpZiAocmVzb2x2ZWQuc2NoZW1hKSB7CiAgICAgICAgICAgICAgcGFyZW50U2NoZW1hW2luZGV4XSA9IHJlc29sdmVkLnNjaGVtYTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBzY2hlbWFDb3B5ID0gKDAsIHV0aWxzXzEuZGVlcENvcHkpKHZhbGlkYXRlLnNjaGVtYSk7CiAgICAgICAgKDAsIHZpc2l0b3JfMS52aXNpdEpzb25TY2hlbWEpKHNjaGVtYUNvcHksIHZpc2l0b3IpOwogICAgICAgIHJldHVybiBzY2hlbWFDb3B5OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBDb21waWxlIGFuZCByZXR1cm4gYSB2YWxpZGF0aW9uIGZ1bmN0aW9uIGZvciB0aGUgU2NoZW1hLgogICAgICAgKgogICAgICAgKiBAcGFyYW0gc2NoZW1hIFRoZSBzY2hlbWEgdG8gdmFsaWRhdGUuIElmIGEgc3RyaW5nLCB3aWxsIGZldGNoIHRoZSBzY2hlbWEgYmVmb3JlIGNvbXBpbGluZyBpdAogICAgICAgKiAodXNpbmcgc2NoZW1hIGFzIGEgVVJJKS4KICAgICAgICovCiAgICAgIGFzeW5jIGNvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGNvbnN0IHZhbGlkYXRlID0gYXdhaXQgdGhpcy5fY29tcGlsZShzY2hlbWEyKTsKICAgICAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB2YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXN5bmMgX2NvbXBpbGUoc2NoZW1hMikgewogICAgICAgIGlmICh0eXBlb2Ygc2NoZW1hMiA9PT0gImJvb2xlYW4iKSB7CiAgICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEpID0+ICh7IHN1Y2Nlc3M6IHNjaGVtYTIsIGRhdGEgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHNjaGVtYUluZm8gPSB7CiAgICAgICAgICBzbWFydERlZmF1bHRSZWNvcmQ6IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCksCiAgICAgICAgICBwcm9tcHREZWZpbml0aW9uczogW10KICAgICAgICB9OwogICAgICAgIHRoaXMuX2Fqdi5yZW1vdmVTY2hlbWEoc2NoZW1hMik7CiAgICAgICAgbGV0IHZhbGlkYXRvcjsKICAgICAgICB0cnkgewogICAgICAgICAgdGhpcy5fY3VycmVudENvbXBpbGF0aW9uU2NoZW1hSW5mbyA9IHNjaGVtYUluZm87CiAgICAgICAgICB2YWxpZGF0b3IgPSB0aGlzLl9hanYuY29tcGlsZShzY2hlbWEyKTsKICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICBpZiAoIShlIGluc3RhbmNlb2YgYWp2XzEuZGVmYXVsdC5NaXNzaW5nUmVmRXJyb3IpKSB7CiAgICAgICAgICAgIHRocm93IGU7CiAgICAgICAgICB9CiAgICAgICAgICB2YWxpZGF0b3IgPSBhd2FpdCB0aGlzLl9hanYuY29tcGlsZUFzeW5jKHNjaGVtYTIpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gYXN5bmMgKGRhdGEsIG9wdGlvbnMpID0+IHsKICAgICAgICAgIGNvbnN0IHZhbGlkYXRpb25PcHRpb25zID0gewogICAgICAgICAgICB3aXRoUHJvbXB0czogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQb3N0VHJhbnNmb3JtczogdHJ1ZSwKICAgICAgICAgICAgYXBwbHlQcmVUcmFuc2Zvcm1zOiB0cnVlLAogICAgICAgICAgICAuLi5vcHRpb25zCiAgICAgICAgICB9OwogICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkNvbnRleHQgPSB7CiAgICAgICAgICAgIHByb21wdEZpZWxkc1dpdGhWYWx1ZTogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKQogICAgICAgICAgfTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy5hcHBseVByZVRyYW5zZm9ybXMpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB2aXNpdG9yIG9mIHRoaXMuX3ByZS52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlTbWFydERlZmF1bHRzKGRhdGEsIHNjaGVtYUluZm8uc21hcnREZWZhdWx0UmVjb3JkKTsKICAgICAgICAgIGlmICh2YWxpZGF0aW9uT3B0aW9ucy53aXRoUHJvbXB0cykgewogICAgICAgICAgICBjb25zdCB2aXNpdG9yID0gKHZhbHVlLCBwb2ludGVyKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5hZGQocG9pbnRlcik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBzY2hlbWEyID09PSAib2JqZWN0IikgewogICAgICAgICAgICAgIGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHZpc2l0b3JfMS52aXNpdEpzb24pKGRhdGEsIHZpc2l0b3IsIHNjaGVtYTIsIHRoaXMuX3Jlc29sdmVyLmJpbmQodGhpcyksIHZhbGlkYXRvcikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gc2NoZW1hSW5mby5wcm9tcHREZWZpbml0aW9ucy5maWx0ZXIoKGRlZikgPT4gIXZhbGlkYXRpb25Db250ZXh0LnByb21wdEZpZWxkc1dpdGhWYWx1ZS5oYXMoZGVmLmlkKSk7CiAgICAgICAgICAgIGlmIChkZWZpbml0aW9ucy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fYXBwbHlQcm9tcHRzKGRhdGEsIGRlZmluaXRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHZhbGlkYXRvci5jYWxsKHZhbGlkYXRpb25Db250ZXh0LCBkYXRhKTsKICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzcywgZXJyb3JzOiB2YWxpZGF0b3IuZXJyb3JzID8/IFtdIH07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIGFqdl8xLmRlZmF1bHQuVmFsaWRhdGlvbkVycm9yKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogZmFsc2UsIGVycm9yczogZXJyb3IuZXJyb3JzIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodmFsaWRhdGlvbk9wdGlvbnMuYXBwbHlQb3N0VHJhbnNmb3JtcykgewogICAgICAgICAgICBmb3IgKGNvbnN0IHZpc2l0b3Igb2YgdGhpcy5fcG9zdC52YWx1ZXMoKSkgewogICAgICAgICAgICAgIGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKCgwLCB2aXNpdG9yXzEudmlzaXRKc29uKShkYXRhLCB2aXNpdG9yLCBzY2hlbWEyLCB0aGlzLl9yZXNvbHZlci5iaW5kKHRoaXMpLCB2YWxpZGF0b3IpKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHsgZGF0YSwgc3VjY2VzczogdHJ1ZSB9OwogICAgICAgIH07CiAgICAgIH0KICAgICAgYWRkRm9ybWF0KGZvcm1hdCkgewogICAgICAgIHRoaXMuX2Fqdi5hZGRGb3JtYXQoZm9ybWF0Lm5hbWUsIGZvcm1hdC5mb3JtYXR0ZXIpOwogICAgICB9CiAgICAgIGFkZFNtYXJ0RGVmYXVsdFByb3ZpZGVyKHNvdXJjZSwgcHJvdmlkZXIpIHsKICAgICAgICBpZiAodGhpcy5fc291cmNlTWFwLmhhcyhzb3VyY2UpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc291cmNlKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fc291cmNlTWFwLnNldChzb3VyY2UsIHByb3ZpZGVyKTsKICAgICAgICBpZiAoIXRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQpIHsKICAgICAgICAgIHRoaXMuX3NtYXJ0RGVmYXVsdEtleXdvcmQgPSB0cnVlOwogICAgICAgICAgdGhpcy5fYWp2LmFkZEtleXdvcmQoewogICAgICAgICAgICBrZXl3b3JkOiAiJGRlZmF1bHQiLAogICAgICAgICAgICBlcnJvcnM6IGZhbHNlLAogICAgICAgICAgICB2YWxpZDogdHJ1ZSwKICAgICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIF9wYXJlbnRTY2hlbWEsIGl0KSA9PiB7CiAgICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICAgIGlmIChjb21waWxhdGlvblNjaGVtSW5mbyA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcGF0aEFycmF5ID0gdGhpcy5ub3JtYWxpemVEYXRhUGF0aEFycihpdCk7CiAgICAgICAgICAgICAgY29tcGlsYXRpb25TY2hlbUluZm8uc21hcnREZWZhdWx0UmVjb3JkLnNldChKU09OLnN0cmluZ2lmeShwYXRoQXJyYXkpLCBzY2hlbWEyKTsKICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gdHJ1ZTsKICAgICAgICAgICAgfSwKICAgICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICIkc291cmNlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogdHJ1ZSwKICAgICAgICAgICAgICByZXF1aXJlZDogWyIkc291cmNlIl0KICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlZ2lzdGVyVXJpSGFuZGxlcihoYW5kbGVyKSB7CiAgICAgICAgdGhpcy5fdXJpSGFuZGxlcnMuYWRkKGhhbmRsZXIpOwogICAgICB9CiAgICAgIHVzZVByb21wdFByb3ZpZGVyKHByb3ZpZGVyKSB7CiAgICAgICAgY29uc3QgaXNTZXR1cCA9ICEhdGhpcy5fcHJvbXB0UHJvdmlkZXI7CiAgICAgICAgdGhpcy5fcHJvbXB0UHJvdmlkZXIgPSBwcm92aWRlcjsKICAgICAgICBpZiAoaXNTZXR1cCkgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1wcm9tcHQiLAogICAgICAgICAgZXJyb3JzOiBmYWxzZSwKICAgICAgICAgIHZhbGlkOiB0cnVlLAogICAgICAgICAgY29tcGlsZTogKHNjaGVtYTIsIHBhcmVudFNjaGVtYSwgaXQpID0+IHsKICAgICAgICAgICAgY29uc3QgY29tcGlsYXRpb25TY2hlbUluZm8gPSB0aGlzLl9jdXJyZW50Q29tcGlsYXRpb25TY2hlbWFJbmZvOwogICAgICAgICAgICBpZiAoIWNvbXBpbGF0aW9uU2NoZW1JbmZvKSB7CiAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgcGF0aCA9ICIvIiArIHRoaXMubm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpLmpvaW4oIi8iKTsKICAgICAgICAgICAgbGV0IHR5cGUyOwogICAgICAgICAgICBsZXQgaXRlbXM7CiAgICAgICAgICAgIGxldCBtZXNzYWdlOwogICAgICAgICAgICBpZiAodHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBtZXNzYWdlID0gc2NoZW1hMi5tZXNzYWdlOwogICAgICAgICAgICAgIHR5cGUyID0gc2NoZW1hMi50eXBlOwogICAgICAgICAgICAgIGl0ZW1zID0gc2NoZW1hMi5pdGVtczsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBwcm9wZXJ0eVR5cGVzID0gKDAsIHV0aWxpdHlfMS5nZXRUeXBlc09mU2NoZW1hKShwYXJlbnRTY2hlbWEpOwogICAgICAgICAgICBpZiAoIXR5cGUyKSB7CiAgICAgICAgICAgICAgaWYgKHByb3BlcnR5VHlwZXMuc2l6ZSA9PT0gMSAmJiBwcm9wZXJ0eVR5cGVzLmhhcygiYm9vbGVhbiIpKSB7CiAgICAgICAgICAgICAgICB0eXBlMiA9ICJjb25maXJtYXRpb24iOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZW51bSkpIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImxpc3QiOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpICYmIHBhcmVudFNjaGVtYS5pdGVtcyAmJiBBcnJheS5pc0FycmF5KHBhcmVudFNjaGVtYS5pdGVtcy5lbnVtKSkgewogICAgICAgICAgICAgICAgdHlwZTIgPSAibGlzdCI7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHR5cGUyID0gImlucHV0IjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IG11bHRpc2VsZWN0OwogICAgICAgICAgICBpZiAodHlwZTIgPT09ICJsaXN0IikgewogICAgICAgICAgICAgIG11bHRpc2VsZWN0ID0gc2NoZW1hMi5tdWx0aXNlbGVjdCA9PT0gdm9pZCAwID8gcHJvcGVydHlUeXBlcy5zaXplID09PSAxICYmIHByb3BlcnR5VHlwZXMuaGFzKCJhcnJheSIpIDogc2NoZW1hMi5tdWx0aXNlbGVjdDsKICAgICAgICAgICAgICBjb25zdCBlbnVtVmFsdWVzID0gbXVsdGlzZWxlY3QgPyBwYXJlbnRTY2hlbWEuaXRlbXMgJiYgcGFyZW50U2NoZW1hLml0ZW1zLmVudW0gOiBwYXJlbnRTY2hlbWEuZW51bTsKICAgICAgICAgICAgICBpZiAoIWl0ZW1zICYmIEFycmF5LmlzQXJyYXkoZW51bVZhbHVlcykpIHsKICAgICAgICAgICAgICAgIGl0ZW1zID0gW107CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIGVudW1WYWx1ZXMpIHsKICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAic3RyaW5nIikgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2godmFsdWUpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PSAib2JqZWN0IikgewogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBsYWJlbDogdmFsdWUudG9TdHJpbmcoKSwgdmFsdWUgfSk7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgZGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgICBpZDogcGF0aCwKICAgICAgICAgICAgICB0eXBlOiB0eXBlMiwKICAgICAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgICAgIHJhdzogc2NoZW1hMiwKICAgICAgICAgICAgICBpdGVtcywKICAgICAgICAgICAgICBtdWx0aXNlbGVjdCwKICAgICAgICAgICAgICBwcm9wZXJ0eVR5cGVzLAogICAgICAgICAgICAgIGRlZmF1bHQ6IHR5cGVvZiBwYXJlbnRTY2hlbWEuZGVmYXVsdCA9PSAib2JqZWN0IiAmJiBwYXJlbnRTY2hlbWEuZGVmYXVsdCAhPT0gbnVsbCAmJiAhQXJyYXkuaXNBcnJheShwYXJlbnRTY2hlbWEuZGVmYXVsdCkgPyB2b2lkIDAgOiBwYXJlbnRTY2hlbWEuZGVmYXVsdCwKICAgICAgICAgICAgICBhc3luYyB2YWxpZGF0b3IoZGF0YSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaXQuc2VsZi52YWxpZGF0ZShwYXJlbnRTY2hlbWEsIGRhdGEpOwogICAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpdC5zZWxmLmVycm9ycz8ubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0LnNlbGYuZXJyb3JzWzBdLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gZTsKICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsaWRhdGlvbkVycm9yLmVycm9ycykgJiYgdmFsaWRhdGlvbkVycm9yLmVycm9ycy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGlvbkVycm9yLmVycm9yc1swXS5tZXNzYWdlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBjb21waWxhdGlvblNjaGVtSW5mby5wcm9tcHREZWZpbml0aW9ucy5wdXNoKGRlZmluaXRpb24pOwogICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMgJiYgdGhpcy5wcm9tcHRGaWVsZHNXaXRoVmFsdWUpIHsKICAgICAgICAgICAgICAgIHRoaXMucHJvbXB0RmllbGRzV2l0aFZhbHVlLmFkZChwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH07CiAgICAgICAgICB9LAogICAgICAgICAgbWV0YVNjaGVtYTogewogICAgICAgICAgICBvbmVPZjogWwogICAgICAgICAgICAgIHsgdHlwZTogInN0cmluZyIgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB0eXBlOiAib2JqZWN0IiwKICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHsKICAgICAgICAgICAgICAgICAgInR5cGUiOiB7IHR5cGU6ICJzdHJpbmciIH0sCiAgICAgICAgICAgICAgICAgICJtZXNzYWdlIjogeyB0eXBlOiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IHRydWUsCiAgICAgICAgICAgICAgICByZXF1aXJlZDogWyJtZXNzYWdlIl0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBhc3luYyBfYXBwbHlQcm9tcHRzKGRhdGEsIHByb21wdHMpIHsKICAgICAgICBjb25zdCBwcm92aWRlciA9IHRoaXMuX3Byb21wdFByb3ZpZGVyOwogICAgICAgIGlmICghcHJvdmlkZXIpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgYW5zd2VycyA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkoKDAsIHJ4anNfMS5mcm9tKShwcm92aWRlcihwcm9tcHRzKSkpOwogICAgICAgIGZvciAoY29uc3QgcGF0aCBpbiBhbnN3ZXJzKSB7CiAgICAgICAgICBjb25zdCBwYXRoRnJhZ21lbnRzID0gcGF0aC5zcGxpdCgiLyIpLnNsaWNlKDEpOwogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIHBhdGhGcmFnbWVudHMsIGFuc3dlcnNbcGF0aF0sIG51bGwsIHZvaWQgMCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN0YXRpYyBfc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUsIHBhcmVudCA9IG51bGwsIHBhcmVudFByb3BlcnR5LCBmb3JjZSkgewogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmcmFnbWVudHMubGVuZ3RoOyBpbmRleCsrKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudCA9IGZyYWdtZW50c1tpbmRleF07CiAgICAgICAgICBpZiAoL15pXGQrJC8udGVzdChmcmFnbWVudCkpIHsKICAgICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGRhdGEpKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAobGV0IGRhdGFJbmRleCA9IDA7IGRhdGFJbmRleCA8IGRhdGEubGVuZ3RoOyBkYXRhSW5kZXgrKykgewogICAgICAgICAgICAgIF9Db3JlU2NoZW1hUmVnaXN0cnkuX3NldChkYXRhW2RhdGFJbmRleF0sIGZyYWdtZW50cy5zbGljZShpbmRleCArIDEpLCB2YWx1ZSwgZGF0YSwgYCR7ZGF0YUluZGV4fWApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghZGF0YSAmJiBwYXJlbnQgIT09IG51bGwgJiYgcGFyZW50UHJvcGVydHkpIHsKICAgICAgICAgICAgZGF0YSA9IHBhcmVudFtwYXJlbnRQcm9wZXJ0eV0gPSB7fTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcmVudCA9IGRhdGE7CiAgICAgICAgICBwYXJlbnRQcm9wZXJ0eSA9IGZyYWdtZW50OwogICAgICAgICAgZGF0YSA9IGRhdGFbZnJhZ21lbnRdOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudFByb3BlcnR5ICYmIChmb3JjZSB8fCBwYXJlbnRbcGFyZW50UHJvcGVydHldID09PSB2b2lkIDApKSB7CiAgICAgICAgICBwYXJlbnRbcGFyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzeW5jIF9hcHBseVNtYXJ0RGVmYXVsdHMoZGF0YSwgc21hcnREZWZhdWx0cykgewogICAgICAgIGZvciAoY29uc3QgW3BvaW50ZXIsIHNjaGVtYTJdIG9mIHNtYXJ0RGVmYXVsdHMuZW50cmllcygpKSB7CiAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSBKU09OLnBhcnNlKHBvaW50ZXIpOwogICAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5fc291cmNlTWFwLmdldChzY2hlbWEyLiRzb3VyY2UpOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgdmFsdWUgPSBzb3VyY2Uoc2NoZW1hMik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKHZhbHVlKSkgewogICAgICAgICAgICB2YWx1ZSA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkodmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgX0NvcmVTY2hlbWFSZWdpc3RyeS5fc2V0KGRhdGEsIGZyYWdtZW50cywgdmFsdWUpOwogICAgICAgIH0KICAgICAgfQogICAgICB1c2VYRGVwcmVjYXRlZFByb3ZpZGVyKG9uVXNhZ2UpIHsKICAgICAgICB0aGlzLl9hanYuYWRkS2V5d29yZCh7CiAgICAgICAgICBrZXl3b3JkOiAieC1kZXByZWNhdGVkIiwKICAgICAgICAgIHZhbGlkYXRlOiAoc2NoZW1hMiwgX2RhdGEsIF9wYXJlbnRTY2hlbWEsIGRhdGFDeHQpID0+IHsKICAgICAgICAgICAgaWYgKHNjaGVtYTIpIHsKICAgICAgICAgICAgICBvblVzYWdlKGBPcHRpb24gIiR7ZGF0YUN4dD8ucGFyZW50RGF0YVByb3BlcnR5fSIgaXMgZGVwcmVjYXRlZCR7dHlwZW9mIHNjaGVtYTIgPT0gInN0cmluZyIgPyAiOiAiICsgc2NoZW1hMiA6ICIuIn1gKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcnM6IGZhbHNlCiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbm9ybWFsaXplRGF0YVBhdGhBcnIoaXQpIHsKICAgICAgICByZXR1cm4gaXQuZGF0YVBhdGhBcnIuc2xpY2UoMSwgaXQuZGF0YUxldmVsICsgMSkubWFwKChwKSA9PiB0eXBlb2YgcCA9PT0gIm51bWJlciIgPyBwIDogcC5zdHIucmVwbGFjZSgvIi9nLCAiIikpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuQ29yZVNjaGVtYVJlZ2lzdHJ5ID0gQ29yZVNjaGVtYVJlZ2lzdHJ5OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzCnZhciByZXF1aXJlX3NjaGVtYSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5pc0pzb25TY2hlbWEgPSBpc0pzb25TY2hlbWE7CiAgICBleHBvcnRzMi5tZXJnZVNjaGVtYXMgPSBtZXJnZVNjaGVtYXM7CiAgICB2YXIgdXRpbHNfMSA9IHJlcXVpcmVfdXRpbHMoKTsKICAgIGZ1bmN0aW9uIGlzSnNvblNjaGVtYSh2YWx1ZSkgewogICAgICByZXR1cm4gKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgdmFsdWUgPT09IGZhbHNlIHx8IHZhbHVlID09PSB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gbWVyZ2VTY2hlbWFzKC4uLnNjaGVtYXMpIHsKICAgICAgcmV0dXJuIHNjaGVtYXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7CiAgICAgICAgaWYgKGN1cnIgPT09IHZvaWQgMCkgewogICAgICAgICAgcmV0dXJuIHByZXY7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2ID09PSBmYWxzZSB8fCBjdXJyID09PSBmYWxzZSkgewogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0gZWxzZSBpZiAocHJldiA9PT0gdHJ1ZSkgewogICAgICAgICAgcmV0dXJuIGN1cnI7CiAgICAgICAgfSBlbHNlIGlmIChjdXJyID09PSB0cnVlKSB7CiAgICAgICAgICByZXR1cm4gcHJldjsKICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkocHJldi5hbGxPZikpIHsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnIuYWxsT2YpKSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbLi4ucHJldi5hbGxPZiwgY3Vycl0gfTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3Vyci5hbGxPZikpIHsKICAgICAgICAgIHJldHVybiB7IC4uLnByZXYsIGFsbE9mOiBbcHJldiwgLi4uY3Vyci5hbGxPZl0gfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIHsgLi4ucHJldiwgYWxsT2Y6IFtwcmV2LCBjdXJyXSB9OwogICAgICAgIH0KICAgICAgfSwgdHJ1ZSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcwp2YXIgcmVxdWlyZV9zY2hlbWEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudHJhbnNmb3JtcyA9IHZvaWQgMDsKICAgIHZhciB0cmFuc2Zvcm1zID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtcygpKTsKICAgIGV4cG9ydHMyLnRyYW5zZm9ybXMgPSB0cmFuc2Zvcm1zOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BvaW50ZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmVnaXN0cnkoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Zpc2l0b3IoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdXRpbGl0eSgpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL2luZGV4LmpzCnZhciByZXF1aXJlX2pzb24gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHZvaWQgMDsKICAgIHZhciBzY2hlbWEyID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hMigpKTsKICAgIGV4cG9ydHMyLnNjaGVtYSA9IHNjaGVtYTI7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlscygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbG9nZ2VyLmpzCnZhciByZXF1aXJlX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgTG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyByeGpzXzEuT2JzZXJ2YWJsZSB7CiAgICAgIG5hbWU7CiAgICAgIHBhcmVudDsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX21ldGFkYXRhOwogICAgICBfb2JzID0gcnhqc18xLkVNUFRZOwogICAgICBfc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgZ2V0IF9vYnNlcnZhYmxlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnM7CiAgICAgIH0KICAgICAgc2V0IF9vYnNlcnZhYmxlKHYpIHsKICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fb2JzID0gdjsKICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHRoaXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5wYXJlbnQpIHsKICAgICAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5uZXh0KHZhbHVlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKGVycm9yKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLnBhcmVudCkgewogICAgICAgICAgICAgIHRoaXMucGFyZW50Ll9zdWJqZWN0LmVycm9yKGVycm9yKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gbnVsbDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLm5hbWUgPSBuYW1lOwogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIGNvbnN0IHBhdGggPSBbXTsKICAgICAgICBsZXQgcCA9IHBhcmVudDsKICAgICAgICB3aGlsZSAocCkgewogICAgICAgICAgcGF0aC5wdXNoKHAubmFtZSk7CiAgICAgICAgICBwID0gcC5wYXJlbnQ7CiAgICAgICAgfQogICAgICAgIHRoaXMuX21ldGFkYXRhID0geyBuYW1lLCBwYXRoIH07CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRoaXMuX3N1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgICAgaWYgKHRoaXMucGFyZW50ICYmIHRoaXMucGFyZW50Ll9zdWJqZWN0KSB7CiAgICAgICAgICB0aGlzLnBhcmVudC5fc3ViamVjdC5zdWJzY3JpYmUodm9pZCAwLCB2b2lkIDAsICgpID0+IHRoaXMuY29tcGxldGUoKSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKG5hbWUpID0+IHRoaXMuY3JlYXRlQ2hpbGQobmFtZSksCiAgICAgICAgICBsb2c6IChsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEpID0+IHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9nKGxldmVsLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgICAgICB9LAogICAgICAgICAgZGVidWc6IChtZXNzYWdlLCBtZXRhZGF0YSkgPT4gdGhpcy5kZWJ1ZyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBpbmZvOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICB3YXJuOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMud2FybihtZXNzYWdlLCBtZXRhZGF0YSksCiAgICAgICAgICBlcnJvcjogKG1lc3NhZ2UsIG1ldGFkYXRhKSA9PiB0aGlzLmVycm9yKG1lc3NhZ2UsIG1ldGFkYXRhKSwKICAgICAgICAgIGZhdGFsOiAobWVzc2FnZSwgbWV0YWRhdGEpID0+IHRoaXMuZmF0YWwobWVzc2FnZSwgbWV0YWRhdGEpCiAgICAgICAgfTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKG5hbWUsIHRoaXMpOwogICAgICB9CiAgICAgIGNvbXBsZXRlKCkgewogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgfQogICAgICBsb2cobGV2ZWwsIG1lc3NhZ2UsIG1ldGFkYXRhID0ge30pIHsKICAgICAgICBjb25zdCBlbnRyeSA9IE9iamVjdC5hc3NpZ24oe30sIG1ldGFkYXRhLCB0aGlzLl9tZXRhZGF0YSwgewogICAgICAgICAgbGV2ZWwsCiAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgdGltZXN0YW1wOiArRGF0ZS5ub3coKQogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgbmV4dChlbnRyeSkgewogICAgICAgIHRoaXMuX3N1YmplY3QubmV4dChlbnRyeSk7CiAgICAgIH0KICAgICAgZGVidWcobWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygiZGVidWciLCBtZXNzYWdlLCBtZXRhZGF0YSk7CiAgICAgIH0KICAgICAgaW5mbyhtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJpbmZvIiwgbWVzc2FnZSwgbWV0YWRhdGEpOwogICAgICB9CiAgICAgIHdhcm4obWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiB0aGlzLmxvZygid2FybiIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBlcnJvcihtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJlcnJvciIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBmYXRhbChtZXNzYWdlLCBtZXRhZGF0YSA9IHt9KSB7CiAgICAgICAgcmV0dXJuIHRoaXMubG9nKCJmYXRhbCIsIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICB0b1N0cmluZygpIHsKICAgICAgICByZXR1cm4gYDxMb2dnZXIoJHt0aGlzLm5hbWV9KT5gOwogICAgICB9CiAgICAgIGxpZnQob3BlcmF0b3IpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2YWJsZS5saWZ0KG9wZXJhdG9yKTsKICAgICAgfQogICAgICBzdWJzY3JpYmUoX29ic2VydmVyT3JOZXh0LCBfZXJyb3IsIF9jb21wbGV0ZSkgewogICAgICAgIHJldHVybiB0aGlzLl9vYnNlcnZhYmxlLnN1YnNjcmliZS5hcHBseSgKICAgICAgICAgIHRoaXMuX29ic2VydmFibGUsCiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zCiAgICAgICAgICBhcmd1bWVudHMKICAgICAgICApOwogICAgICB9CiAgICAgIGZvckVhY2gobmV4dCwgcHJvbWlzZUN0b3IgPSBQcm9taXNlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX29ic2VydmFibGUuZm9yRWFjaChuZXh0LCBwcm9taXNlQ3Rvcik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Mb2dnZXIgPSBMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZW50LmpzCnZhciByZXF1aXJlX2luZGVudCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIGluZGVudGF0aW9uTWFwID0ge307CiAgICB2YXIgSW5kZW50TG9nZ2VyID0gY2xhc3MgZXh0ZW5kcyBsb2dnZXJfMS5Mb2dnZXIgewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBwYXJlbnQgPSBudWxsLCBpbmRlbnRhdGlvbiA9ICIgICIpIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXSB8fCBbIiJdOwogICAgICAgIGNvbnN0IGluZGVudE1hcCA9IGluZGVudGF0aW9uTWFwW2luZGVudGF0aW9uXTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gdGhpcy5fb2JzZXJ2YWJsZS5waXBlKCgwLCByeGpzXzEubWFwKSgoZW50cnkpID0+IHsKICAgICAgICAgIGNvbnN0IGwgPSBlbnRyeS5wYXRoLmZpbHRlcigoeCkgPT4gISF4KS5sZW5ndGg7CiAgICAgICAgICBpZiAobCA+PSBpbmRlbnRNYXAubGVuZ3RoKSB7CiAgICAgICAgICAgIGxldCBjdXJyZW50ID0gaW5kZW50TWFwW2luZGVudE1hcC5sZW5ndGggLSAxXTsKICAgICAgICAgICAgd2hpbGUgKGwgPj0gaW5kZW50TWFwLmxlbmd0aCkgewogICAgICAgICAgICAgIGN1cnJlbnQgKz0gaW5kZW50YXRpb247CiAgICAgICAgICAgICAgaW5kZW50TWFwLnB1c2goY3VycmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGVudHJ5Lm1lc3NhZ2UgPSBpbmRlbnRNYXBbbF0gKyBlbnRyeS5tZXNzYWdlLnNwbGl0KC9cbi8pLmpvaW4oIlxuIiArIGluZGVudE1hcFtsXSk7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZW50TG9nZ2VyID0gSW5kZW50TG9nZ2VyOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzCnZhciByZXF1aXJlX2xldmVsID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbGV2ZWwuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkxldmVsQ2FwTG9nZ2VyID0gZXhwb3J0czIuTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgPSB2b2lkIDA7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIExldmVsVHJhbnNmb3JtTG9nZ2VyID0gY2xhc3MgX0xldmVsVHJhbnNmb3JtTG9nZ2VyIGV4dGVuZHMgbG9nZ2VyXzEuTG9nZ2VyIHsKICAgICAgbmFtZTsKICAgICAgcGFyZW50OwogICAgICBsZXZlbFRyYW5zZm9ybTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxUcmFuc2Zvcm0pIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQpOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbFRyYW5zZm9ybSA9IGxldmVsVHJhbnNmb3JtOwogICAgICB9CiAgICAgIGxvZyhsZXZlbCwgbWVzc2FnZSwgbWV0YWRhdGEgPSB7fSkgewogICAgICAgIHJldHVybiBzdXBlci5sb2codGhpcy5sZXZlbFRyYW5zZm9ybShsZXZlbCksIG1lc3NhZ2UsIG1ldGFkYXRhKTsKICAgICAgfQogICAgICBjcmVhdGVDaGlsZChuYW1lKSB7CiAgICAgICAgcmV0dXJuIG5ldyBfTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIobmFtZSwgdGhpcywgdGhpcy5sZXZlbFRyYW5zZm9ybSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5MZXZlbFRyYW5zZm9ybUxvZ2dlciA9IExldmVsVHJhbnNmb3JtTG9nZ2VyOwogICAgdmFyIExldmVsQ2FwTG9nZ2VyID0gY2xhc3MgX0xldmVsQ2FwTG9nZ2VyIGV4dGVuZHMgTGV2ZWxUcmFuc2Zvcm1Mb2dnZXIgewogICAgICBuYW1lOwogICAgICBwYXJlbnQ7CiAgICAgIGxldmVsQ2FwOwogICAgICBzdGF0aWMgbGV2ZWxNYXAgPSB7CiAgICAgICAgZGVidWc6IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJkZWJ1ZyIsIHdhcm46ICJkZWJ1ZyIsIGVycm9yOiAiZGVidWciLCBmYXRhbDogImRlYnVnIiB9LAogICAgICAgIGluZm86IHsgZGVidWc6ICJkZWJ1ZyIsIGluZm86ICJpbmZvIiwgd2FybjogImluZm8iLCBlcnJvcjogImluZm8iLCBmYXRhbDogImluZm8iIH0sCiAgICAgICAgd2FybjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAid2FybiIsIGZhdGFsOiAid2FybiIgfSwKICAgICAgICBlcnJvcjogeyBkZWJ1ZzogImRlYnVnIiwgaW5mbzogImluZm8iLCB3YXJuOiAid2FybiIsIGVycm9yOiAiZXJyb3IiLCBmYXRhbDogImVycm9yIiB9LAogICAgICAgIGZhdGFsOiB7IGRlYnVnOiAiZGVidWciLCBpbmZvOiAiaW5mbyIsIHdhcm46ICJ3YXJuIiwgZXJyb3I6ICJlcnJvciIsIGZhdGFsOiAiZmF0YWwiIH0KICAgICAgfTsKICAgICAgY29uc3RydWN0b3IobmFtZSwgcGFyZW50ID0gbnVsbCwgbGV2ZWxDYXApIHsKICAgICAgICBzdXBlcihuYW1lLCBwYXJlbnQsIChsZXZlbCkgPT4gewogICAgICAgICAgcmV0dXJuIF9MZXZlbENhcExvZ2dlci5sZXZlbE1hcFtsZXZlbENhcF1bbGV2ZWxdIHx8IGxldmVsOwogICAgICAgIH0pOwogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgICAgdGhpcy5wYXJlbnQgPSBwYXJlbnQ7CiAgICAgICAgdGhpcy5sZXZlbENhcCA9IGxldmVsQ2FwOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGV2ZWxDYXBMb2dnZXIgPSBMZXZlbENhcExvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9udWxsLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV9udWxsX2xvZ2dlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL251bGwtbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgbG9nZ2VyXzEgPSByZXF1aXJlX2xvZ2dlcigpOwogICAgdmFyIE51bGxMb2dnZXIgPSBjbGFzcyBfTnVsbExvZ2dlciBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKHBhcmVudCA9IG51bGwpIHsKICAgICAgICBzdXBlcigiIiwgcGFyZW50KTsKICAgICAgICB0aGlzLl9vYnNlcnZhYmxlID0gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIGFzQXBpKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjcmVhdGVDaGlsZDogKCkgPT4gbmV3IF9OdWxsTG9nZ2VyKHRoaXMpLAogICAgICAgICAgbG9nKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGRlYnVnKCkgewogICAgICAgICAgfSwKICAgICAgICAgIGluZm8oKSB7CiAgICAgICAgICB9LAogICAgICAgICAgd2FybigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBlcnJvcigpIHsKICAgICAgICAgIH0sCiAgICAgICAgICBmYXRhbCgpIHsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbExvZ2dlciA9IE51bGxMb2dnZXI7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcwp2YXIgcmVxdWlyZV90cmFuc2Zvcm1fbG9nZ2VyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvdHJhbnNmb3JtLWxvZ2dlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJhbnNmb3JtTG9nZ2VyID0gdm9pZCAwOwogICAgdmFyIGxvZ2dlcl8xID0gcmVxdWlyZV9sb2dnZXIoKTsKICAgIHZhciBUcmFuc2Zvcm1Mb2dnZXIgPSBjbGFzcyBleHRlbmRzIGxvZ2dlcl8xLkxvZ2dlciB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIHRyYW5zZm9ybSwgcGFyZW50ID0gbnVsbCkgewogICAgICAgIHN1cGVyKG5hbWUsIHBhcmVudCk7CiAgICAgICAgdGhpcy5fb2JzZXJ2YWJsZSA9IHRyYW5zZm9ybSh0aGlzLl9vYnNlcnZhYmxlKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRyYW5zZm9ybUxvZ2dlciA9IFRyYW5zZm9ybUxvZ2dlcjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci9pbmRleC5qcwp2YXIgcmVxdWlyZV9sb2dnZXIyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2luZGVudCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sZXZlbCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbnVsbF9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdHJhbnNmb3JtX2xvZ2dlcigpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvZGVmaW5pdGlvbnMuanMKdmFyIHJlcXVpcmVfZGVmaW5pdGlvbnMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSB2b2lkIDA7CiAgICB2YXIgRGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyB7CiAgICAgIF9saXN0ZW5lcjsKICAgICAgX21hcDsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgX2xpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5fbGlzdGVuZXIgPSBfbGlzdGVuZXI7CiAgICAgICAgdGhpcy5fbWFwID0gbmV3IE1hcChpbml0aWFsICYmIE9iamVjdC5lbnRyaWVzKGluaXRpYWwpKTsKICAgICAgfQogICAgICBkZWxldGUoa2V5KSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbWFwLmRlbGV0ZShrZXkpOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2b2lkIDAsIHRoaXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIHNldChrZXksIHZhbHVlKSB7CiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gdmFsdWUgIT09IHRoaXMuZ2V0KGtleSk7CiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSkgewogICAgICAgICAgdGhpcy5fbWFwLnNldChrZXksIHZhbHVlKTsKICAgICAgICAgIHRoaXMuX2xpc3RlbmVyPy4oa2V5LCB2YWx1ZSwgdGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGZvckVhY2goY2FsbGJhY2tmbiwgdGhpc0FyZykgewogICAgICAgIHRoaXMuX21hcC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiBjYWxsYmFja2ZuKHZhbHVlLCBrZXksIHRoaXMpLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5nZXQoa2V5KTsKICAgICAgfQogICAgICBoYXMoa2V5KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcC5oYXMoa2V5KTsKICAgICAgfQogICAgICBnZXQgc2l6ZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnNpemU7CiAgICAgIH0KICAgICAgW1N5bWJvbC5pdGVyYXRvcl0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX21hcFtTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgICAgZW50cmllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLmVudHJpZXMoKTsKICAgICAgfQogICAgICBrZXlzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9tYXAua2V5cygpOwogICAgICB9CiAgICAgIHZhbHVlcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fbWFwLnZhbHVlcygpOwogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gaXNKc29uVmFsdWUodmFsdWUpIHsKICAgICAgY29uc3QgdmlzaXRlZCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CiAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgY2FzZSAibnVtYmVyIjoKICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIHZpc2l0ZWQuYWRkKHZhbHVlKTsKICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LnZhbHVlcyh2YWx1ZSkpIHsKICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYgdmlzaXRlZC5oYXMocHJvcGVydHkpKSB7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFpc0pzb25WYWx1ZShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIHZhciBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJQcm9qZWN0IG5hbWUgYWxyZWFkeSBleGlzdHMuIik7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShkZWZpbml0aW9uLm5hbWUpOwogICAgICAgIGNvbnN0IHByb2plY3QgPSB7CiAgICAgICAgICByb290OiBkZWZpbml0aW9uLnJvb3QsCiAgICAgICAgICBwcmVmaXg6IGRlZmluaXRpb24ucHJlZml4LAogICAgICAgICAgc291cmNlUm9vdDogZGVmaW5pdGlvbi5zb3VyY2VSb290LAogICAgICAgICAgdGFyZ2V0czogbmV3IFRhcmdldERlZmluaXRpb25Db2xsZWN0aW9uKCksCiAgICAgICAgICBleHRlbnNpb25zOiB7fQogICAgICAgIH07CiAgICAgICAgaWYgKGRlZmluaXRpb24udGFyZ2V0cykgewogICAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdGFyZ2V0XSBvZiBPYmplY3QuZW50cmllcyhkZWZpbml0aW9uLnRhcmdldHMpKSB7CiAgICAgICAgICAgIGlmICh0YXJnZXQpIHsKICAgICAgICAgICAgICBwcm9qZWN0LnRhcmdldHMuc2V0KG5hbWUsIHRhcmdldCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGRlZmluaXRpb24pKSB7CiAgICAgICAgICBzd2l0Y2ggKG5hbWUpIHsKICAgICAgICAgICAgY2FzZSAibmFtZSI6CiAgICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgICBjYXNlICJzb3VyY2VSb290IjoKICAgICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgaWYgKGlzSnNvblZhbHVlKHZhbHVlKSkgewogICAgICAgICAgICAgICAgcHJvamVjdC5leHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCIke25hbWV9IiBtdXN0IGJlIGEgSlNPTiB2YWx1ZS5gKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyLnNldChkZWZpbml0aW9uLm5hbWUsIHByb2plY3QpOwogICAgICAgIHJldHVybiBwcm9qZWN0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIgfHwgIS9eKD86QFx3W1x3Li1dKlwvKT9cd1tcdy4tXSokLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlByb2plY3QgbmFtZSBtdXN0IGJlIGEgdmFsaWQgbnBtIHBhY2thZ2UgbmFtZS4iKTsKICAgICAgICB9CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBQcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb247CiAgICB2YXIgVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBjbGFzcyBleHRlbmRzIERlZmluaXRpb25Db2xsZWN0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5pdGlhbCwgbGlzdGVuZXIpIHsKICAgICAgICBzdXBlcihpbml0aWFsLCBsaXN0ZW5lcik7CiAgICAgIH0KICAgICAgYWRkKGRlZmluaXRpb24pIHsKICAgICAgICBpZiAodGhpcy5oYXMoZGVmaW5pdGlvbi5uYW1lKSkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXJnZXQgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fdmFsaWRhdGVOYW1lKGRlZmluaXRpb24ubmFtZSk7CiAgICAgICAgY29uc3QgdGFyZ2V0ID0gewogICAgICAgICAgYnVpbGRlcjogZGVmaW5pdGlvbi5idWlsZGVyLAogICAgICAgICAgb3B0aW9uczogZGVmaW5pdGlvbi5vcHRpb25zLAogICAgICAgICAgY29uZmlndXJhdGlvbnM6IGRlZmluaXRpb24uY29uZmlndXJhdGlvbnMsCiAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogZGVmaW5pdGlvbi5kZWZhdWx0Q29uZmlndXJhdGlvbgogICAgICAgIH07CiAgICAgICAgc3VwZXIuc2V0KGRlZmluaXRpb24ubmFtZSwgdGFyZ2V0KTsKICAgICAgICByZXR1cm4gdGFyZ2V0OwogICAgICB9CiAgICAgIHNldChuYW1lLCB2YWx1ZSkgewogICAgICAgIHRoaXMuX3ZhbGlkYXRlTmFtZShuYW1lKTsKICAgICAgICBzdXBlci5zZXQobmFtZSwgdmFsdWUpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIF92YWxpZGF0ZU5hbWUobmFtZSkgewogICAgICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gInN0cmluZyIpIHsKICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIlRhcmdldCBuYW1lIG11c3QgYmUgYSBzdHJpbmcuIik7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24gPSBUYXJnZXREZWZpbml0aW9uQ29sbGVjdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvcGF0aC5qcwp2YXIgcmVxdWlyZV9wYXRoID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL3BhdGguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnBhdGggPSBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSBleHBvcnRzMi5QYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRQYXRoRXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuc3BsaXQgPSBzcGxpdDsKICAgIGV4cG9ydHMyLmV4dG5hbWUgPSBleHRuYW1lOwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSBiYXNlbmFtZTsKICAgIGV4cG9ydHMyLmRpcm5hbWUgPSBkaXJuYW1lOwogICAgZXhwb3J0czIuam9pbiA9IGpvaW4yOwogICAgZXhwb3J0czIuaXNBYnNvbHV0ZSA9IGlzQWJzb2x1dGU7CiAgICBleHBvcnRzMi5yZWxhdGl2ZSA9IHJlbGF0aXZlOwogICAgZXhwb3J0czIucmVzb2x2ZSA9IHJlc29sdmU7CiAgICBleHBvcnRzMi5mcmFnbWVudCA9IGZyYWdtZW50OwogICAgZXhwb3J0czIucmVzZXROb3JtYWxpemVDYWNoZSA9IHJlc2V0Tm9ybWFsaXplQ2FjaGU7CiAgICBleHBvcnRzMi5ub3JtYWxpemUgPSBub3JtYWxpemU7CiAgICBleHBvcnRzMi5ub0NhY2hlTm9ybWFsaXplID0gbm9DYWNoZU5vcm1hbGl6ZTsKICAgIGV4cG9ydHMyLmFzV2luZG93c1BhdGggPSBhc1dpbmRvd3NQYXRoOwogICAgZXhwb3J0czIuYXNQb3NpeFBhdGggPSBhc1Bvc2l4UGF0aDsKICAgIGV4cG9ydHMyLmdldFN5c3RlbVBhdGggPSBnZXRTeXN0ZW1QYXRoOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBJbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IGlzIGludmFsaWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUGF0aEV4Y2VwdGlvbiA9IEludmFsaWRQYXRoRXhjZXB0aW9uOwogICAgdmFyIFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgZXhjZXB0aW9uXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgyKSB7CiAgICAgICAgc3VwZXIoYFBhdGggJHtKU09OLnN0cmluZ2lmeShwYXRoMil9IG11c3QgYmUgYWJzb2x1dGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5QYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb24gPSBQYXRoTXVzdEJlQWJzb2x1dGVFeGNlcHRpb247CiAgICB2YXIgUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoMikgewogICAgICAgIHN1cGVyKGBQYXRoICR7SlNPTi5zdHJpbmdpZnkocGF0aDIpfSBjYW5ub3QgYmUgbWFkZSBhIGZyYWdtZW50LmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuUGF0aENhbm5vdEJlRnJhZ21lbnRFeGNlcHRpb24gPSBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbjsKICAgIGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgPSAiLyI7CiAgICBleHBvcnRzMi5Ob3JtYWxpemVkUm9vdCA9IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXA7CiAgICBmdW5jdGlvbiBzcGxpdChwYXRoMikgewogICAgICBjb25zdCBmcmFnbWVudHMgPSBwYXRoMi5zcGxpdChleHBvcnRzMi5Ob3JtYWxpemVkU2VwKS5tYXAoKHgpID0+IGZyYWdtZW50KHgpKTsKICAgICAgaWYgKGZyYWdtZW50c1tmcmFnbWVudHMubGVuZ3RoIC0gMV0ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgZnJhZ21lbnRzLnBvcCgpOwogICAgICB9CiAgICAgIHJldHVybiBmcmFnbWVudHM7CiAgICB9CiAgICBmdW5jdGlvbiBleHRuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGJhc2UgPSBiYXNlbmFtZShwYXRoMik7CiAgICAgIGNvbnN0IGkgPSBiYXNlLmxhc3RJbmRleE9mKCIuIik7CiAgICAgIGlmIChpIDwgMSkgewogICAgICAgIHJldHVybiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYmFzZS5zbGljZShpKTsKICAgICAgfQogICAgfQogICAgZnVuY3Rpb24gYmFzZW5hbWUocGF0aDIpIHsKICAgICAgY29uc3QgaSA9IHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICBpZiAoaSA9PSAtMSkgewogICAgICAgIHJldHVybiBmcmFnbWVudChwYXRoMik7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGZyYWdtZW50KHBhdGgyLnNsaWNlKHBhdGgyLmxhc3RJbmRleE9mKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApICsgMSkpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBkaXJuYW1lKHBhdGgyKSB7CiAgICAgIGNvbnN0IGluZGV4ID0gcGF0aDIubGFzdEluZGV4T2YoZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgIGlmIChpbmRleCA9PT0gLTEpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0KICAgICAgY29uc3QgZW5kSW5kZXggPSBpbmRleCA9PT0gMCA/IDEgOiBpbmRleDsKICAgICAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoMi5zbGljZSgwLCBlbmRJbmRleCkpOwogICAgfQogICAgZnVuY3Rpb24gam9pbjIocDEsIC4uLm90aGVycykgewogICAgICBpZiAob3RoZXJzLmxlbmd0aCA+IDApIHsKICAgICAgICByZXR1cm4gbm9ybWFsaXplKChwMSA/IHAxICsgZXhwb3J0czIuTm9ybWFsaXplZFNlcCA6ICIiKSArIG90aGVycy5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcDE7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGlzQWJzb2x1dGUocCkgewogICAgICByZXR1cm4gcC5zdGFydHNXaXRoKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgfQogICAgZnVuY3Rpb24gcmVsYXRpdmUoZnJvbSwgdG8pIHsKICAgICAgaWYgKCFpc0Fic29sdXRlKGZyb20pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbihmcm9tKTsKICAgICAgfQogICAgICBpZiAoIWlzQWJzb2x1dGUodG8pKSB7CiAgICAgICAgdGhyb3cgbmV3IFBhdGhNdXN0QmVBYnNvbHV0ZUV4Y2VwdGlvbih0byk7CiAgICAgIH0KICAgICAgbGV0IHA7CiAgICAgIGlmIChmcm9tID09IHRvKSB7CiAgICAgICAgcCA9ICIiOwogICAgICB9IGVsc2UgewogICAgICAgIGNvbnN0IHNwbGl0RnJvbSA9IHNwbGl0KGZyb20pOwogICAgICAgIGNvbnN0IHNwbGl0VG8gPSBzcGxpdCh0byk7CiAgICAgICAgd2hpbGUgKHNwbGl0RnJvbS5sZW5ndGggPiAwICYmIHNwbGl0VG8ubGVuZ3RoID4gMCAmJiBzcGxpdEZyb21bMF0gPT0gc3BsaXRUb1swXSkgewogICAgICAgICAgc3BsaXRGcm9tLnNoaWZ0KCk7CiAgICAgICAgICBzcGxpdFRvLnNoaWZ0KCk7CiAgICAgICAgfQogICAgICAgIGlmIChzcGxpdEZyb20ubGVuZ3RoID09IDApIHsKICAgICAgICAgIHAgPSBzcGxpdFRvLmpvaW4oZXhwb3J0czIuTm9ybWFsaXplZFNlcCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHAgPSBzcGxpdEZyb20ubWFwKCgpID0+ICIuLiIpLmNvbmNhdChzcGxpdFRvKS5qb2luKGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXApOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gbm9ybWFsaXplKHApOwogICAgfQogICAgZnVuY3Rpb24gcmVzb2x2ZShwMSwgcDIpIHsKICAgICAgaWYgKGlzQWJzb2x1dGUocDIpKSB7CiAgICAgICAgcmV0dXJuIHAyOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBqb2luMihwMSwgcDIpOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBmcmFnbWVudChwYXRoMikgewogICAgICBpZiAocGF0aDIuaW5kZXhPZihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKSAhPSAtMSkgewogICAgICAgIHRocm93IG5ldyBQYXRoQ2Fubm90QmVGcmFnbWVudEV4Y2VwdGlvbihwYXRoMik7CiAgICAgIH0KICAgICAgcmV0dXJuIHBhdGgyOwogICAgfQogICAgdmFyIG5vcm1hbGl6ZWRDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICBmdW5jdGlvbiByZXNldE5vcm1hbGl6ZUNhY2hlKCkgewogICAgICBub3JtYWxpemVkQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgfQogICAgZnVuY3Rpb24gbm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGxldCBtYXliZVBhdGggPSBub3JtYWxpemVkQ2FjaGUuZ2V0KHBhdGgyKTsKICAgICAgaWYgKCFtYXliZVBhdGgpIHsKICAgICAgICBtYXliZVBhdGggPSBub0NhY2hlTm9ybWFsaXplKHBhdGgyKTsKICAgICAgICBub3JtYWxpemVkQ2FjaGUuc2V0KHBhdGgyLCBtYXliZVBhdGgpOwogICAgICB9CiAgICAgIHJldHVybiBtYXliZVBhdGg7CiAgICB9CiAgICBmdW5jdGlvbiBub0NhY2hlTm9ybWFsaXplKHBhdGgyKSB7CiAgICAgIGlmIChwYXRoMiA9PSAiIiB8fCBwYXRoMiA9PSAiLiIpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICAgIH0gZWxzZSBpZiAocGF0aDIgPT0gZXhwb3J0czIuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICByZXR1cm4gZXhwb3J0czIuTm9ybWFsaXplZFJvb3Q7CiAgICAgIH0KICAgICAgY29uc3Qgb3JpZ2luYWwgPSBwYXRoMjsKICAgICAgaWYgKHBhdGgyLm1hdGNoKC9eW0EtWl06Wy9cXF0vaSkpIHsKICAgICAgICBwYXRoMiA9ICJcXCIgKyBwYXRoMlswXS50b1VwcGVyQ2FzZSgpICsgIlxcIiArIHBhdGgyLnNsaWNlKDMpOwogICAgICB9CiAgICAgIGNvbnN0IHAgPSBwYXRoMi5zcGxpdCgvWy9cXF0vZyk7CiAgICAgIGxldCByZWxhdGl2ZTIgPSBmYWxzZTsKICAgICAgbGV0IGkgPSAxOwogICAgICBpZiAocFswXSAhPSAiIikgewogICAgICAgIHAudW5zaGlmdCgiLiIpOwogICAgICAgIHJlbGF0aXZlMiA9IHRydWU7CiAgICAgIH0KICAgICAgd2hpbGUgKGkgPCBwLmxlbmd0aCkgewogICAgICAgIGlmIChwW2ldID09ICIuIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIGlmIChwW2ldID09ICIuLiIpIHsKICAgICAgICAgIGlmIChpIDwgMiAmJiAhcmVsYXRpdmUyKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGF0aEV4Y2VwdGlvbihvcmlnaW5hbCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGkgPj0gMiAmJiBwW2kgLSAxXSAhPSAiLi4iKSB7CiAgICAgICAgICAgIHAuc3BsaWNlKGkgLSAxLCAyKTsKICAgICAgICAgICAgaS0tOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaSsrOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAocFtpXSA9PSAiIikgewogICAgICAgICAgcC5zcGxpY2UoaSwgMSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKHAubGVuZ3RoID09IDEpIHsKICAgICAgICByZXR1cm4gcFswXSA9PSAiIiA/IGV4cG9ydHMyLk5vcm1hbGl6ZWRTZXAgOiAiIjsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAocFswXSA9PSAiLiIpIHsKICAgICAgICAgIHAuc2hpZnQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHAuam9pbihleHBvcnRzMi5Ob3JtYWxpemVkU2VwKTsKICAgICAgfQogICAgfQogICAgdmFyIHBhdGggPSAoc3RyaW5nczMsIC4uLnZhbHVlcykgPT4gewogICAgICByZXR1cm4gbm9ybWFsaXplKFN0cmluZy5yYXcoc3RyaW5nczMsIC4uLnZhbHVlcykpOwogICAgfTsKICAgIGV4cG9ydHMyLnBhdGggPSBwYXRoOwogICAgZnVuY3Rpb24gYXNXaW5kb3dzUGF0aChwYXRoMikgewogICAgICBjb25zdCBkcml2ZSA9IHBhdGgyLm1hdGNoKC9eXC8oXHcpKD86XC8oLiopKT8kLyk7CiAgICAgIGlmIChkcml2ZSkgewogICAgICAgIGNvbnN0IHN1YlBhdGggPSBkcml2ZVsyXSA/IGRyaXZlWzJdLnJlcGxhY2UoL1wvL2csICJcXCIpIDogIiI7CiAgICAgICAgcmV0dXJuIGAke2RyaXZlWzFdfTpcXCR7c3ViUGF0aH1gOwogICAgICB9CiAgICAgIHJldHVybiBwYXRoMi5yZXBsYWNlKC9cLy9nLCAiXFwiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzUG9zaXhQYXRoKHBhdGgyKSB7CiAgICAgIHJldHVybiBwYXRoMjsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFN5c3RlbVBhdGgocGF0aDIpIHsKICAgICAgaWYgKHByb2Nlc3MucGxhdGZvcm0uc3RhcnRzV2l0aCgid2luMzIiKSkgewogICAgICAgIHJldHVybiBhc1dpbmRvd3NQYXRoKHBhdGgyKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gYXNQb3NpeFBhdGgocGF0aDIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzCnZhciByZXF1aXJlX2J1ZmZlcjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9idWZmZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0cmluZ1RvRmlsZUJ1ZmZlciA9IHN0cmluZ1RvRmlsZUJ1ZmZlcjsKICAgIGV4cG9ydHMyLmZpbGVCdWZmZXJUb1N0cmluZyA9IGZpbGVCdWZmZXJUb1N0cmluZzsKICAgIHZhciBub2RlX3V0aWxfMSA9IHJlcXVpcmUoIm5vZGU6dXRpbCIpOwogICAgZnVuY3Rpb24gc3RyaW5nVG9GaWxlQnVmZmVyKHN0cjIpIHsKICAgICAgcmV0dXJuIG5ldyBub2RlX3V0aWxfMS5UZXh0RW5jb2RlcigpLmVuY29kZShzdHIyKS5idWZmZXI7CiAgICB9CiAgICBmdW5jdGlvbiBmaWxlQnVmZmVyVG9TdHJpbmcoZmlsZUJ1ZmZlcikgewogICAgICBpZiAoZmlsZUJ1ZmZlci50b1N0cmluZy5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gZmlsZUJ1ZmZlci50b1N0cmluZygidXRmLTgiKTsKICAgICAgfQogICAgICByZXR1cm4gbmV3IG5vZGVfdXRpbF8xLlRleHREZWNvZGVyKCJ1dGYtOCIpLmRlY29kZShuZXcgVWludDhBcnJheShmaWxlQnVmZmVyKSk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzCnZhciByZXF1aXJlX2ludGVyZmFjZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RXYXRjaEV2ZW50VHlwZSA9IHZvaWQgMDsKICAgIHZhciBIb3N0V2F0Y2hFdmVudFR5cGU7CiAgICAoZnVuY3Rpb24oSG9zdFdhdGNoRXZlbnRUeXBlMikgewogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNoYW5nZWQiXSA9IDBdID0gIkNoYW5nZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkNyZWF0ZWQiXSA9IDFdID0gIkNyZWF0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIkRlbGV0ZWQiXSA9IDJdID0gIkRlbGV0ZWQiOwogICAgICBIb3N0V2F0Y2hFdmVudFR5cGUyW0hvc3RXYXRjaEV2ZW50VHlwZTJbIlJlbmFtZWQiXSA9IDNdID0gIlJlbmFtZWQiOwogICAgfSkoSG9zdFdhdGNoRXZlbnRUeXBlIHx8IChleHBvcnRzMi5Ib3N0V2F0Y2hFdmVudFR5cGUgPSBIb3N0V2F0Y2hFdmVudFR5cGUgPSB7fSkpOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L21lbW9yeS5qcwp2YXIgcmVxdWlyZV9tZW1vcnkgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9tZW1vcnkuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNpbXBsZU1lbW9yeUhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBleGNlcHRpb25fMSA9IHJlcXVpcmVfZXhjZXB0aW9uKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTIoKTsKICAgIHZhciBTaW1wbGVNZW1vcnlIb3N0ID0gY2xhc3MgewogICAgICBfY2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfd2F0Y2hlcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfbmV3RGlyU3RhdHMoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGluc3BlY3QoKSB7CiAgICAgICAgICAgIHJldHVybiAiPERpcmVjdG9yeT4iOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRmlsZSgpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0sCiAgICAgICAgICBzaXplOiAwLAogICAgICAgICAgYXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgY3RpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgbXRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgYmlydGh0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQ6IG51bGwKICAgICAgICB9OwogICAgICB9CiAgICAgIF9uZXdGaWxlU3RhdHMoY29udGVudCwgb2xkU3RhdHMpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgaW5zcGVjdCgpIHsKICAgICAgICAgICAgcmV0dXJuIGA8RmlsZSBzaXplKCR7Y29udGVudC5ieXRlTGVuZ3RofSk+YDsKICAgICAgICAgIH0sCiAgICAgICAgICBpc0ZpbGUoKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfSwKICAgICAgICAgIGlzRGlyZWN0b3J5KCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9LAogICAgICAgICAgc2l6ZTogY29udGVudC5ieXRlTGVuZ3RoLAogICAgICAgICAgYXRpbWU6IG9sZFN0YXRzID8gb2xkU3RhdHMuYXRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGN0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIG10aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGJpcnRodGltZTogb2xkU3RhdHMgPyBvbGRTdGF0cy5iaXJ0aHRpbWUgOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgIGNvbnRlbnQKICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuX2NhY2hlLnNldCgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKSwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgIH0KICAgICAgX3RvQWJzb2x1dGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcGF0aF8xLmlzQWJzb2x1dGUpKHBhdGgpID8gcGF0aCA6ICgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfdXBkYXRlV2F0Y2hlcnMocGF0aCwgdHlwZTIpIHsKICAgICAgICBjb25zdCB0aW1lID0gLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCk7CiAgICAgICAgbGV0IGN1cnJlbnRQYXRoID0gcGF0aDsKICAgICAgICBsZXQgcGFyZW50ID0gbnVsbDsKICAgICAgICBpZiAodGhpcy5fd2F0Y2hlcnMuc2l6ZSA9PSAwKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IG1heWJlV2F0Y2hlciA9IHRoaXMuX3dhdGNoZXJzLmdldChjdXJyZW50UGF0aCk7CiAgICAgICAgaWYgKG1heWJlV2F0Y2hlcikgewogICAgICAgICAgbWF5YmVXYXRjaGVyLmZvckVhY2goKHdhdGNoZXIpID0+IHsKICAgICAgICAgICAgY29uc3QgW29wdGlvbnMsIHN1YmplY3RdID0gd2F0Y2hlcjsKICAgICAgICAgICAgc3ViamVjdC5uZXh0KHsgcGF0aCwgdGltZSwgdHlwZTogdHlwZTIgfSk7CiAgICAgICAgICAgIGlmICghb3B0aW9ucy5wZXJzaXN0ZW50ICYmIHR5cGUyID09IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKSB7CiAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgIHRoaXMuX3dhdGNoZXJzLmRlbGV0ZShjdXJyZW50UGF0aCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBkbyB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IHBhcmVudCAhPT0gbnVsbCA/IHBhcmVudCA6IGN1cnJlbnRQYXRoOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhdGhfMS5kaXJuYW1lKShjdXJyZW50UGF0aCk7CiAgICAgICAgICBjb25zdCBtYXliZVdhdGNoZXIyID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KGN1cnJlbnRQYXRoKTsKICAgICAgICAgIGlmIChtYXliZVdhdGNoZXIyKSB7CiAgICAgICAgICAgIG1heWJlV2F0Y2hlcjIuZm9yRWFjaCgod2F0Y2hlcikgPT4gewogICAgICAgICAgICAgIGNvbnN0IFtvcHRpb25zLCBzdWJqZWN0XSA9IHdhdGNoZXI7CiAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLnJlY3Vyc2l2ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBzdWJqZWN0Lm5leHQoeyBwYXRoLCB0aW1lLCB0eXBlOiB0eXBlMiB9KTsKICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMucGVyc2lzdGVudCAmJiB0eXBlMiA9PSBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZCkgewogICAgICAgICAgICAgICAgc3ViamVjdC5jb21wbGV0ZSgpOwogICAgICAgICAgICAgICAgdGhpcy5fd2F0Y2hlcnMuZGVsZXRlKGN1cnJlbnRQYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKHBhcmVudCAhPSBjdXJyZW50UGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIC8qKgogICAgICAgKiBMaXN0IG9mIHByb3RlY3RlZCBtZXRob2RzIHRoYXQgZ2l2ZSBkaXJlY3QgYWNjZXNzIG91dHNpZGUgdGhlIG9ic2VydmFibGVzIHRvIHRoZSBjYWNoZQogICAgICAgKiBhbmQgaW50ZXJuYWwgc3RhdGVzLgogICAgICAgKi8KICAgICAgX3dyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBvbGQgPSB0aGlzLl9jYWNoZS5nZXQocGF0aCk7CiAgICAgICAgaWYgKG9sZCAmJiBvbGQuaXNEaXJlY3RvcnkoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZnJhZ21lbnRzID0gKDAsIHBhdGhfMS5zcGxpdCkocGF0aCk7CiAgICAgICAgbGV0IGN1cnIgPSAoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGZyIG9mIGZyYWdtZW50cykgewogICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChmcik7CiAgICAgICAgICBpZiAobWF5YmVTdGF0cykgewogICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5QYXRoSXNGaWxlRXhjZXB0aW9uKGN1cnIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoY3VyciwgdGhpcy5fbmV3RGlyU3RhdHMoKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHN0YXRzID0gdGhpcy5fbmV3RmlsZVN0YXRzKGNvbnRlbnQsIG9sZCk7CiAgICAgICAgdGhpcy5fY2FjaGUuc2V0KHBhdGgsIHN0YXRzKTsKICAgICAgICB0aGlzLl91cGRhdGVXYXRjaGVycyhwYXRoLCBvbGQgPyBpbnRlcmZhY2VfMS5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZCA6IGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkKTsKICAgICAgfQogICAgICBfcmVhZChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldChwYXRoKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAobWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0gZWxzZSBpZiAoIW1heWJlU3RhdHMuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0RpcmVjdG9yeUV4Y2VwdGlvbihwYXRoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuIG1heWJlU3RhdHMuY29udGVudDsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RlbGV0ZShwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgICBmb3IgKGNvbnN0IFtjYWNoZVBhdGhdIG9mIHRoaXMuX2NhY2hlLmVudHJpZXMoKSkgewogICAgICAgICAgICBpZiAoY2FjaGVQYXRoLnN0YXJ0c1dpdGgocGF0aCArIHBhdGhfMS5Ob3JtYWxpemVkU2VwKSB8fCBjYWNoZVBhdGggPT09IHBhdGgpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoY2FjaGVQYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUocGF0aCk7CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKHBhdGgsIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkKTsKICAgICAgfQogICAgICBfcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgZnJvbSA9IHRoaXMuX3RvQWJzb2x1dGUoZnJvbSk7CiAgICAgICAgdG8gPSB0aGlzLl90b0Fic29sdXRlKHRvKTsKICAgICAgICBpZiAoIXRoaXMuX2NhY2hlLmhhcyhmcm9tKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oZnJvbSk7CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jYWNoZS5oYXModG8pKSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvbih0byk7CiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLl9pc0RpcmVjdG9yeShmcm9tKSkgewogICAgICAgICAgZm9yIChjb25zdCBwYXRoIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocGF0aC5zdGFydHNXaXRoKGZyb20gKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fY2FjaGUuZ2V0KHBhdGgpOwogICAgICAgICAgICAgIGlmIChjb250ZW50KSB7CiAgICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQoKDAsIHBhdGhfMS5qb2luKSh0bywgcGF0aF8xLk5vcm1hbGl6ZWRTZXAsIHBhdGguc2xpY2UoZnJvbS5sZW5ndGgpKSwgY29udGVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9jYWNoZS5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICBjb25zdCBmcmFnbWVudHMgPSAoMCwgcGF0aF8xLnNwbGl0KSh0byk7CiAgICAgICAgICAgIGNvbnN0IG5ld0RpcmVjdG9yaWVzID0gW107CiAgICAgICAgICAgIGxldCBjdXJyID0gKDAsIHBhdGhfMS5ub3JtYWxpemUpKCIvIik7CiAgICAgICAgICAgIGZvciAoY29uc3QgZnIgb2YgZnJhZ21lbnRzKSB7CiAgICAgICAgICAgICAgY3VyciA9ICgwLCBwYXRoXzEuam9pbikoY3VyciwgZnIpOwogICAgICAgICAgICAgIGNvbnN0IG1heWJlU3RhdHMgPSB0aGlzLl9jYWNoZS5nZXQoZnIpOwogICAgICAgICAgICAgIGlmIChtYXliZVN0YXRzKSB7CiAgICAgICAgICAgICAgICBpZiAobWF5YmVTdGF0cy5pc0ZpbGUoKSkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihjdXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmV3RGlyZWN0b3JpZXMucHVzaChjdXJyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZm9yIChjb25zdCBuZXdEaXJlY3Rvcnkgb2YgbmV3RGlyZWN0b3JpZXMpIHsKICAgICAgICAgICAgICB0aGlzLl9jYWNoZS5zZXQobmV3RGlyZWN0b3J5LCB0aGlzLl9uZXdEaXJTdGF0cygpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLl9jYWNoZS5kZWxldGUoZnJvbSk7CiAgICAgICAgICAgIHRoaXMuX2NhY2hlLnNldCh0bywgY29udGVudCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuX3VwZGF0ZVdhdGNoZXJzKGZyb20sIGludGVyZmFjZV8xLkhvc3RXYXRjaEV2ZW50VHlwZS5SZW5hbWVkKTsKICAgICAgfQogICAgICBfbGlzdChwYXRoKSB7CiAgICAgICAgcGF0aCA9IHRoaXMuX3RvQWJzb2x1dGUocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX2lzRmlsZShwYXRoKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlBhdGhJc0ZpbGVFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZyYWdtZW50cyA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgICAgaWYgKHBhdGggIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgZm9yIChjb25zdCBwIG9mIHRoaXMuX2NhY2hlLmtleXMoKSkgewogICAgICAgICAgICBpZiAocC5zdGFydHNXaXRoKHBhdGggKyBwYXRoXzEuTm9ybWFsaXplZFNlcCkpIHsKICAgICAgICAgICAgICByZXN1bHQuYWRkKCgwLCBwYXRoXzEuc3BsaXQpKHApW2ZyYWdtZW50cy5sZW5ndGhdKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3IgKGNvbnN0IHAgb2YgdGhpcy5fY2FjaGUua2V5cygpKSB7CiAgICAgICAgICAgIGlmIChwLnN0YXJ0c1dpdGgocGF0aF8xLk5vcm1hbGl6ZWRTZXApICYmIHAgIT09IHBhdGhfMS5Ob3JtYWxpemVkUm9vdCkgewogICAgICAgICAgICAgIHJlc3VsdC5hZGQoKDAsIHBhdGhfMS5zcGxpdCkocClbMV0pOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBbLi4ucmVzdWx0XTsKICAgICAgfQogICAgICBfZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gISF0aGlzLl9jYWNoZS5nZXQodGhpcy5fdG9BYnNvbHV0ZShwYXRoKSk7CiAgICAgIH0KICAgICAgX2lzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICBjb25zdCBtYXliZVN0YXRzID0gdGhpcy5fY2FjaGUuZ2V0KHRoaXMuX3RvQWJzb2x1dGUocGF0aCkpOwogICAgICAgIHJldHVybiBtYXliZVN0YXRzID8gbWF5YmVTdGF0cy5pc0RpcmVjdG9yeSgpIDogZmFsc2U7CiAgICAgIH0KICAgICAgX2lzRmlsZShwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0cyA/IG1heWJlU3RhdHMuaXNGaWxlKCkgOiBmYWxzZTsKICAgICAgfQogICAgICBfc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0cyA9IHRoaXMuX2NhY2hlLmdldCh0aGlzLl90b0Fic29sdXRlKHBhdGgpKTsKICAgICAgICBpZiAoIW1heWJlU3RhdHMpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbWF5YmVTdGF0czsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3dhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICBwYXRoID0gdGhpcy5fdG9BYnNvbHV0ZShwYXRoKTsKICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgICAgbGV0IG1heWJlV2F0Y2hlckFycmF5ID0gdGhpcy5fd2F0Y2hlcnMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghbWF5YmVXYXRjaGVyQXJyYXkpIHsKICAgICAgICAgIG1heWJlV2F0Y2hlckFycmF5ID0gW107CiAgICAgICAgICB0aGlzLl93YXRjaGVycy5zZXQocGF0aCwgbWF5YmVXYXRjaGVyQXJyYXkpOwogICAgICAgIH0KICAgICAgICBtYXliZVdhdGNoZXJBcnJheS5wdXNoKFtvcHRpb25zIHx8IHt9LCBzdWJqZWN0XSk7CiAgICAgICAgcmV0dXJuIHN1YmplY3QuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgdGhpcy5fd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fcmVhZChwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KGNvbnRlbnQpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX2RlbGV0ZShwYXRoKTsKICAgICAgICAgIG9icy5uZXh0KCk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIHRoaXMuX3JlbmFtZShmcm9tLCB0byk7CiAgICAgICAgICBvYnMubmV4dCgpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9saXN0KHBhdGgpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBvYnMubmV4dCh0aGlzLl9leGlzdHMocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQodGhpcy5faXNEaXJlY3RvcnkocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX2lzRmlsZShwYXRoKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KHRoaXMuX3N0YXQocGF0aCkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl93YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLl9jYWNoZS5jbGVhcigpOwogICAgICAgIHRoaXMuX3dhdGNoZXJzLmNsZWFyKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TaW1wbGVNZW1vcnlIb3N0ID0gU2ltcGxlTWVtb3J5SG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzCnZhciByZXF1aXJlX3N5bmMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zeW5jLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TeW5jRGVsZWdhdGVIb3N0ID0gZXhwb3J0czIuU3luY2hyb25vdXNEZWxlZ2F0ZUV4cGVjdGVkRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGV4Y2VwdGlvbl8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcihgRXhwZWN0ZWQgYSBzeW5jaHJvbm91cyBkZWxlZ2F0ZSBidXQgZ290IGFuIGFzeW5jaHJvbm91cyBvbmUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24gPSBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb247CiAgICB2YXIgU3luY0RlbGVnYXRlSG9zdCA9IGNsYXNzIHsKICAgICAgX2RlbGVnYXRlOwogICAgICBjb25zdHJ1Y3RvcihfZGVsZWdhdGUpIHsKICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IF9kZWxlZ2F0ZTsKICAgICAgICBpZiAoIV9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXMuc3luY2hyb25vdXMpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX2RvU3luY0NhbGwob2JzZXJ2YWJsZSkgewogICAgICAgIGxldCBjb21wbGV0ZWQgPSBmYWxzZTsKICAgICAgICBsZXQgcmVzdWx0ID0gdm9pZCAwOwogICAgICAgIGxldCBlcnJvclJlc3VsdCA9IHZvaWQgMDsKICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZSgoeCkgPT4gcmVzdWx0ID0geCwgKGVycikgPT4gZXJyb3JSZXN1bHQgPSBlcnIsICgpID0+IGNvbXBsZXRlZCA9IHRydWUpOwogICAgICAgIGlmIChlcnJvclJlc3VsdCAhPT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBlcnJvclJlc3VsdDsKICAgICAgICB9CiAgICAgICAgaWYgKCFjb21wbGV0ZWQpIHsKICAgICAgICAgIHRocm93IG5ldyBTeW5jaHJvbm91c0RlbGVnYXRlRXhwZWN0ZWRFeGNlcHRpb24oKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICBnZXQgY2FwYWJpbGl0aWVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5jYXBhYmlsaXRpZXM7CiAgICAgIH0KICAgICAgZ2V0IGRlbGVnYXRlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZTsKICAgICAgfQogICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUud3JpdGUocGF0aCwgY29udGVudCkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLnJlYWQocGF0aCkpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RvU3luY0NhbGwodGhpcy5fZGVsZWdhdGUuZGVsZXRlKHBhdGgpKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUoZnJvbSwgdG8pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbCh0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmV4aXN0cyhwYXRoKSk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kb1N5bmNDYWxsKHRoaXMuX2RlbGVnYXRlLmlzRmlsZShwYXRoKSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgc3RhdC4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICBpZiAocmVzdWx0KSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fZG9TeW5jQ2FsbChyZXN1bHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaChwYXRoLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlN5bmNEZWxlZ2F0ZUhvc3QgPSBTeW5jRGVsZWdhdGVIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMKdmFyIHJlcXVpcmVfdGVzdCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlRlc3RIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBhdGhfMSA9IHJlcXVpcmVfcGF0aCgpOwogICAgdmFyIGJ1ZmZlcl8xID0gcmVxdWlyZV9idWZmZXIyKCk7CiAgICB2YXIgbWVtb3J5XzEgPSByZXF1aXJlX21lbW9yeSgpOwogICAgdmFyIHN5bmNfMSA9IHJlcXVpcmVfc3luYygpOwogICAgdmFyIFRlc3RIb3N0ID0gY2xhc3MgX1Rlc3RIb3N0IGV4dGVuZHMgbWVtb3J5XzEuU2ltcGxlTWVtb3J5SG9zdCB7CiAgICAgIF9yZWNvcmRzID0gW107CiAgICAgIF9zeW5jID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IobWFwMiA9IHt9KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBmb3IgKGNvbnN0IGZpbGVQYXRoIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG1hcDIpKSB7CiAgICAgICAgICB0aGlzLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkoZmlsZVBhdGgpLCAoMCwgYnVmZmVyXzEuc3RyaW5nVG9GaWxlQnVmZmVyKShtYXAyW2ZpbGVQYXRoXSkpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgcmVjb3JkcygpIHsKICAgICAgICByZXR1cm4gWy4uLnRoaXMuX3JlY29yZHNdOwogICAgICB9CiAgICAgIGNsZWFyUmVjb3JkcygpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzID0gW107CiAgICAgIH0KICAgICAgZ2V0IGZpbGVzKCkgewogICAgICAgIGNvbnN0IHN5bmMgPSB0aGlzLnN5bmM7CiAgICAgICAgZnVuY3Rpb24gX3Zpc2l0KHApIHsKICAgICAgICAgIHJldHVybiBzeW5jLmxpc3QocCkubWFwKChmcmFnbWVudCkgPT4gKDAsIHBhdGhfMS5qb2luKShwLCBmcmFnbWVudCkpLnJlZHVjZSgoZmlsZXMsIHBhdGgpID0+IHsKICAgICAgICAgICAgaWYgKHN5bmMuaXNEaXJlY3RvcnkocGF0aCkpIHsKICAgICAgICAgICAgICByZXR1cm4gZmlsZXMuY29uY2F0KF92aXNpdChwYXRoKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIGZpbGVzLmNvbmNhdChwYXRoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3Zpc2l0KCgwLCBwYXRoXzEubm9ybWFsaXplKSgiLyIpKTsKICAgICAgfQogICAgICBnZXQgc3luYygpIHsKICAgICAgICBpZiAoIXRoaXMuX3N5bmMpIHsKICAgICAgICAgIHRoaXMuX3N5bmMgPSBuZXcgc3luY18xLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9zeW5jOwogICAgICB9CiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IG5ld0hvc3QgPSBuZXcgX1Rlc3RIb3N0KCk7CiAgICAgICAgbmV3SG9zdC5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICByZXR1cm4gbmV3SG9zdDsKICAgICAgfQogICAgICAvLyBPdmVycmlkZSBwYXJlbnRzIGZ1bmN0aW9ucyB0byBrZWVwIGEgcmVjb3JkIG9mIGFsbCBvcGVyYXRvcnMgdGhhdCB3ZXJlIGRvbmUuCiAgICAgIF93cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndyaXRlIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dyaXRlKHBhdGgsIGNvbnRlbnQpOwogICAgICB9CiAgICAgIF9yZWFkKHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVhZCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIF9kZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJkZWxldGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIF9yZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAicmVuYW1lIiwgZnJvbSwgdG8gfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIF9saXN0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAibGlzdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9saXN0KHBhdGgpOwogICAgICB9CiAgICAgIF9leGlzdHMocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJleGlzdHMiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5fZXhpc3RzKHBhdGgpOwogICAgICB9CiAgICAgIF9pc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogImlzRGlyZWN0b3J5IiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX2lzRGlyZWN0b3J5KHBhdGgpOwogICAgICB9CiAgICAgIF9pc0ZpbGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZHMucHVzaCh7IGtpbmQ6ICJpc0ZpbGUiLCBwYXRoIH0pOwogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIF9zdGF0KHBhdGgpIHsKICAgICAgICB0aGlzLl9yZWNvcmRzLnB1c2goeyBraW5kOiAic3RhdCIsIHBhdGggfSk7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIF93YXRjaChwYXRoLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5fcmVjb3Jkcy5wdXNoKHsga2luZDogIndhdGNoIiwgcGF0aCB9KTsKICAgICAgICByZXR1cm4gc3VwZXIuX3dhdGNoKHBhdGgsIG9wdGlvbnMpOwogICAgICB9CiAgICAgICR3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl93cml0ZSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCksICgwLCBidWZmZXJfMS5zdHJpbmdUb0ZpbGVCdWZmZXIpKGNvbnRlbnQpKTsKICAgICAgfQogICAgICAkcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBidWZmZXJfMS5maWxlQnVmZmVyVG9TdHJpbmcpKHN1cGVyLl9yZWFkKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICB9CiAgICAgICRsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2xpc3QoKDAsIHBhdGhfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgfQogICAgICAkZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gc3VwZXIuX2V4aXN0cygoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHN1cGVyLl9pc0RpcmVjdG9yeSgoMCwgcGF0aF8xLm5vcm1hbGl6ZSkocGF0aCkpOwogICAgICB9CiAgICAgICRpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiBzdXBlci5faXNGaWxlKCgwLCBwYXRoXzEubm9ybWFsaXplKShwYXRoKSk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5UZXN0SG9zdCA9IFRlc3RIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Jlc29sdmVyLmpzCnZhciByZXF1aXJlX3Jlc29sdmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVzb2x2ZXIuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IHZvaWQgMDsKICAgIHZhciBSZXNvbHZlckhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUud3JpdGUodGhpcy5fcmVzb2x2ZShwYXRoKSwgY29udGVudCk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLnJlYWQodGhpcy5fcmVzb2x2ZShwYXRoKSk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuZGVsZXRlKHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZW5hbWUodGhpcy5fcmVzb2x2ZShmcm9tKSwgdGhpcy5fcmVzb2x2ZSh0bykpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmV4aXN0cyh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRGlyZWN0b3J5KHRoaXMuX3Jlc29sdmUocGF0aCkpOwogICAgICB9CiAgICAgIGlzRmlsZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGVnYXRlLmlzRmlsZSh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuc3RhdCh0aGlzLl9yZXNvbHZlKHBhdGgpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS53YXRjaCh0aGlzLl9yZXNvbHZlKHBhdGgpLCBvcHRpb25zKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlJlc29sdmVySG9zdCA9IFJlc29sdmVySG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9hbGlhcy5qcwp2YXIgcmVxdWlyZV9hbGlhcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBBbGlhc0hvc3QgPSBjbGFzcyBleHRlbmRzIHJlc29sdmVyXzEuUmVzb2x2ZXJIb3N0IHsKICAgICAgX2FsaWFzZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBfcmVzb2x2ZShwYXRoKSB7CiAgICAgICAgbGV0IG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwYXRoKTsKICAgICAgICBjb25zdCBzcCA9ICgwLCBwYXRoXzEuc3BsaXQpKHBhdGgpOwogICAgICAgIGNvbnN0IHJlbWFpbmluZyA9IFtdOwogICAgICAgIHdoaWxlICghbWF5YmVBbGlhcyAmJiBzcC5sZW5ndGggPiAwKSB7CiAgICAgICAgICBjb25zdCBwID0gKDAsIHBhdGhfMS5qb2luKShwYXRoXzEuTm9ybWFsaXplZFJvb3QsIC4uLnNwKTsKICAgICAgICAgIG1heWJlQWxpYXMgPSB0aGlzLl9hbGlhc2VzLmdldChwKTsKICAgICAgICAgIGlmIChtYXliZUFsaWFzKSB7CiAgICAgICAgICAgIG1heWJlQWxpYXMgPSAoMCwgcGF0aF8xLmpvaW4pKG1heWJlQWxpYXMsIC4uLnJlbWFpbmluZyk7CiAgICAgICAgICB9CiAgICAgICAgICByZW1haW5pbmcudW5zaGlmdChzcC5wb3AoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUFsaWFzIHx8IHBhdGg7CiAgICAgIH0KICAgICAgZ2V0IGFsaWFzZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2FsaWFzZXM7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BbGlhc0hvc3QgPSBBbGlhc0hvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzCnZhciByZXF1aXJlX2NyZWF0ZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2NyZWF0ZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlU3luY0hvc3QgPSBjcmVhdGVTeW5jSG9zdDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgZnVuY3Rpb24gd3JhcEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4gewogICAgICAgIHN1YnNjcmliZXIubmV4dChhY3Rpb24oKSk7CiAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpOwogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIGNyZWF0ZVN5bmNIb3N0KGhhbmRsZXIpIHsKICAgICAgcmV0dXJuIG5ldyBjbGFzcyB7CiAgICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICAgIHJldHVybiB7IHN5bmNocm9ub3VzOiB0cnVlIH07CiAgICAgICAgfQogICAgICAgIHJlYWQocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5yZWFkKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgbGlzdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmxpc3QocGF0aCkpOwogICAgICAgIH0KICAgICAgICBleGlzdHMocGF0aCkgewogICAgICAgICAgcmV0dXJuIHdyYXBBY3Rpb24oKCkgPT4gaGFuZGxlci5leGlzdHMocGF0aCkpOwogICAgICAgIH0KICAgICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLmlzRGlyZWN0b3J5KHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuaXNGaWxlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnN0YXQocGF0aCkpOwogICAgICAgIH0KICAgICAgICB3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLndyaXRlKHBhdGgsIGNvbnRlbnQpKTsKICAgICAgICB9CiAgICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICAgIHJldHVybiB3cmFwQWN0aW9uKCgpID0+IGhhbmRsZXIuZGVsZXRlKHBhdGgpKTsKICAgICAgICB9CiAgICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgICByZXR1cm4gd3JhcEFjdGlvbigoKSA9PiBoYW5kbGVyLnJlbmFtZShmcm9tLCB0bykpOwogICAgICAgIH0KICAgICAgICB3YXRjaCgpIHsKICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgfSgpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2VtcHR5LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5FbXB0eSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24oKTsKICAgIHZhciBFbXB0eSA9IGNsYXNzIHsKICAgICAgY2FwYWJpbGl0aWVzID0gewogICAgICAgIHN5bmNocm9ub3VzOiB0cnVlCiAgICAgIH07CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikoW10pOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0RpcmVjdG9yeShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKGZhbHNlKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgIH0KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKG51bGwpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRW1wdHkgPSBFbXB0eTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9jb25zdGFudHMuanMKdmFyIHJlcXVpcmVfY29uc3RhbnRzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvY29uc3RhbnRzLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIFdJTl9TTEFTSCA9ICJcXFxcLyI7CiAgICB2YXIgV0lOX05PX1NMQVNIID0gYFteJHtXSU5fU0xBU0h9XWA7CiAgICB2YXIgRE9UX0xJVEVSQUwgPSAiXFwuIjsKICAgIHZhciBQTFVTX0xJVEVSQUwgPSAiXFwrIjsKICAgIHZhciBRTUFSS19MSVRFUkFMID0gIlxcPyI7CiAgICB2YXIgU0xBU0hfTElURVJBTCA9ICJcXC8iOwogICAgdmFyIE9ORV9DSEFSID0gIig/PS4pIjsKICAgIHZhciBRTUFSSyA9ICJbXi9dIjsKICAgIHZhciBFTkRfQU5DSE9SID0gYCg/OiR7U0xBU0hfTElURVJBTH18JClgOwogICAgdmFyIFNUQVJUX0FOQ0hPUiA9IGAoPzpefCR7U0xBU0hfTElURVJBTH0pYDsKICAgIHZhciBET1RTX1NMQVNIID0gYCR7RE9UX0xJVEVSQUx9ezEsMn0ke0VORF9BTkNIT1J9YDsKICAgIHZhciBOT19ET1QgPSBgKD8hJHtET1RfTElURVJBTH0pYDsKICAgIHZhciBOT19ET1RTID0gYCg/ISR7U1RBUlRfQU5DSE9SfSR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBOT19ET1RfU0xBU0ggPSBgKD8hJHtET1RfTElURVJBTH17MCwxfSR7RU5EX0FOQ0hPUn0pYDsKICAgIHZhciBOT19ET1RTX1NMQVNIID0gYCg/ISR7RE9UU19TTEFTSH0pYDsKICAgIHZhciBRTUFSS19OT19ET1QgPSBgW14uJHtTTEFTSF9MSVRFUkFMfV1gOwogICAgdmFyIFNUQVIgPSBgJHtRTUFSS30qP2A7CiAgICB2YXIgU0VQID0gIi8iOwogICAgdmFyIFBPU0lYX0NIQVJTID0gewogICAgICBET1RfTElURVJBTCwKICAgICAgUExVU19MSVRFUkFMLAogICAgICBRTUFSS19MSVRFUkFMLAogICAgICBTTEFTSF9MSVRFUkFMLAogICAgICBPTkVfQ0hBUiwKICAgICAgUU1BUkssCiAgICAgIEVORF9BTkNIT1IsCiAgICAgIERPVFNfU0xBU0gsCiAgICAgIE5PX0RPVCwKICAgICAgTk9fRE9UUywKICAgICAgTk9fRE9UX1NMQVNILAogICAgICBOT19ET1RTX1NMQVNILAogICAgICBRTUFSS19OT19ET1QsCiAgICAgIFNUQVIsCiAgICAgIFNUQVJUX0FOQ0hPUiwKICAgICAgU0VQCiAgICB9OwogICAgdmFyIFdJTkRPV1NfQ0hBUlMgPSB7CiAgICAgIC4uLlBPU0lYX0NIQVJTLAogICAgICBTTEFTSF9MSVRFUkFMOiBgWyR7V0lOX1NMQVNIfV1gLAogICAgICBRTUFSSzogV0lOX05PX1NMQVNILAogICAgICBTVEFSOiBgJHtXSU5fTk9fU0xBU0h9Kj9gLAogICAgICBET1RTX1NMQVNIOiBgJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpYCwKICAgICAgTk9fRE9UOiBgKD8hJHtET1RfTElURVJBTH0pYCwKICAgICAgTk9fRE9UUzogYCg/ISg/Ol58WyR7V0lOX1NMQVNIfV0pJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIE5PX0RPVF9TTEFTSDogYCg/ISR7RE9UX0xJVEVSQUx9ezAsMX0oPzpbJHtXSU5fU0xBU0h9XXwkKSlgLAogICAgICBOT19ET1RTX1NMQVNIOiBgKD8hJHtET1RfTElURVJBTH17MSwyfSg/Olske1dJTl9TTEFTSH1dfCQpKWAsCiAgICAgIFFNQVJLX05PX0RPVDogYFteLiR7V0lOX1NMQVNIfV1gLAogICAgICBTVEFSVF9BTkNIT1I6IGAoPzpefFske1dJTl9TTEFTSH1dKWAsCiAgICAgIEVORF9BTkNIT1I6IGAoPzpbJHtXSU5fU0xBU0h9XXwkKWAsCiAgICAgIFNFUDogIlxcIgogICAgfTsKICAgIHZhciBQT1NJWF9SRUdFWF9TT1VSQ0UgPSB7CiAgICAgIGFsbnVtOiAiYS16QS1aMC05IiwKICAgICAgYWxwaGE6ICJhLXpBLVoiLAogICAgICBhc2NpaTogIlxceDAwLVxceDdGIiwKICAgICAgYmxhbms6ICIgXFx0IiwKICAgICAgY250cmw6ICJcXHgwMC1cXHgxRlxceDdGIiwKICAgICAgZGlnaXQ6ICIwLTkiLAogICAgICBncmFwaDogIlxceDIxLVxceDdFIiwKICAgICAgbG93ZXI6ICJhLXoiLAogICAgICBwcmludDogIlxceDIwLVxceDdFICIsCiAgICAgIHB1bmN0OiAiXFwtIVwiIyQlJicoKVxcKissLi86Ozw9Pj9AW1xcXV5fYHt8fX4iLAogICAgICBzcGFjZTogIiBcXHRcXHJcXG5cXHZcXGYiLAogICAgICB1cHBlcjogIkEtWiIsCiAgICAgIHdvcmQ6ICJBLVphLXowLTlfIiwKICAgICAgeGRpZ2l0OiAiQS1GYS1mMC05IgogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHsKICAgICAgTUFYX0xFTkdUSDogMTAyNCAqIDY0LAogICAgICBQT1NJWF9SRUdFWF9TT1VSQ0UsCiAgICAgIC8vIHJlZ3VsYXIgZXhwcmVzc2lvbnMKICAgICAgUkVHRVhfQkFDS1NMQVNIOiAvXFwoPyFbKis/XiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX05PTl9TUEVDSUFMX0NIQVJTOiAvXlteQCFbXF0uLCQqKz9ee30oKXxcXC9dKy8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlM6IC9bLSorPy5eJHt9KHwpW1xdXS8sCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjogLyhcXD8pKChcVykoXDMqKSkvZywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUw6IC8oWy0qKz8uXiR7fSh8KVtcXV0pL2csCiAgICAgIFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6IC8oPzpcWy4qP1teXFxdXF18XFwoPz0uKSkvZywKICAgICAgLy8gUmVwbGFjZSBnbG9icyB3aXRoIGVxdWl2YWxlbnQgcGF0dGVybnMgdG8gcmVkdWNlIHBhcnNpbmcgdGltZS4KICAgICAgUkVQTEFDRU1FTlRTOiB7CiAgICAgICAgIioqKiI6ICIqIiwKICAgICAgICAiKiovKioiOiAiKioiLAogICAgICAgICIqKi8qKi8qKiI6ICIqKiIKICAgICAgfSwKICAgICAgLy8gRGlnaXRzCiAgICAgIENIQVJfMDogNDgsCiAgICAgIC8qIDAgKi8KICAgICAgQ0hBUl85OiA1NywKICAgICAgLyogOSAqLwogICAgICAvLyBBbHBoYWJldCBjaGFycy4KICAgICAgQ0hBUl9VUFBFUkNBU0VfQTogNjUsCiAgICAgIC8qIEEgKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfQTogOTcsCiAgICAgIC8qIGEgKi8KICAgICAgQ0hBUl9VUFBFUkNBU0VfWjogOTAsCiAgICAgIC8qIFogKi8KICAgICAgQ0hBUl9MT1dFUkNBU0VfWjogMTIyLAogICAgICAvKiB6ICovCiAgICAgIENIQVJfTEVGVF9QQVJFTlRIRVNFUzogNDAsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUzogNDEsCiAgICAgIC8qICkgKi8KICAgICAgQ0hBUl9BU1RFUklTSzogNDIsCiAgICAgIC8qICogKi8KICAgICAgLy8gTm9uLWFscGhhYmV0aWMgY2hhcnMuCiAgICAgIENIQVJfQU1QRVJTQU5EOiAzOCwKICAgICAgLyogJiAqLwogICAgICBDSEFSX0FUOiA2NCwKICAgICAgLyogQCAqLwogICAgICBDSEFSX0JBQ0tXQVJEX1NMQVNIOiA5MiwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NBUlJJQUdFX1JFVFVSTjogMTMsCiAgICAgIC8qIFxyICovCiAgICAgIENIQVJfQ0lSQ1VNRkxFWF9BQ0NFTlQ6IDk0LAogICAgICAvKiBeICovCiAgICAgIENIQVJfQ09MT046IDU4LAogICAgICAvKiA6ICovCiAgICAgIENIQVJfQ09NTUE6IDQ0LAogICAgICAvKiAsICovCiAgICAgIENIQVJfRE9UOiA0NiwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0RPVUJMRV9RVU9URTogMzQsCiAgICAgIC8qICIgKi8KICAgICAgQ0hBUl9FUVVBTDogNjEsCiAgICAgIC8qID0gKi8KICAgICAgQ0hBUl9FWENMQU1BVElPTl9NQVJLOiAzMywKICAgICAgLyogISAqLwogICAgICBDSEFSX0ZPUk1fRkVFRDogMTIsCiAgICAgIC8qIFxmICovCiAgICAgIENIQVJfRk9SV0FSRF9TTEFTSDogNDcsCiAgICAgIC8qIC8gKi8KICAgICAgQ0hBUl9HUkFWRV9BQ0NFTlQ6IDk2LAogICAgICAvKiBgICovCiAgICAgIENIQVJfSEFTSDogMzUsCiAgICAgIC8qICMgKi8KICAgICAgQ0hBUl9IWVBIRU5fTUlOVVM6IDQ1LAogICAgICAvKiAtICovCiAgICAgIENIQVJfTEVGVF9BTkdMRV9CUkFDS0VUOiA2MCwKICAgICAgLyogPCAqLwogICAgICBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6IDEyMywKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQ6IDkxLAogICAgICAvKiBbICovCiAgICAgIENIQVJfTElORV9GRUVEOiAxMCwKICAgICAgLyogXG4gKi8KICAgICAgQ0hBUl9OT19CUkVBS19TUEFDRTogMTYwLAogICAgICAvKiBcdTAwQTAgKi8KICAgICAgQ0hBUl9QRVJDRU5UOiAzNywKICAgICAgLyogJSAqLwogICAgICBDSEFSX1BMVVM6IDQzLAogICAgICAvKiArICovCiAgICAgIENIQVJfUVVFU1RJT05fTUFSSzogNjMsCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9BTkdMRV9CUkFDS0VUOiA2MiwKICAgICAgLyogPiAqLwogICAgICBDSEFSX1JJR0hUX0NVUkxZX0JSQUNFOiAxMjUsCiAgICAgIC8qIH0gKi8KICAgICAgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDogOTMsCiAgICAgIC8qIF0gKi8KICAgICAgQ0hBUl9TRU1JQ09MT046IDU5LAogICAgICAvKiA7ICovCiAgICAgIENIQVJfU0lOR0xFX1FVT1RFOiAzOSwKICAgICAgLyogJyAqLwogICAgICBDSEFSX1NQQUNFOiAzMiwKICAgICAgLyogICAqLwogICAgICBDSEFSX1RBQjogOSwKICAgICAgLyogXHQgKi8KICAgICAgQ0hBUl9VTkRFUlNDT1JFOiA5NSwKICAgICAgLyogXyAqLwogICAgICBDSEFSX1ZFUlRJQ0FMX0xJTkU6IDEyNCwKICAgICAgLyogfCAqLwogICAgICBDSEFSX1pFUk9fV0lEVEhfTk9CUkVBS19TUEFDRTogNjUyNzksCiAgICAgIC8qIFx1RkVGRiAqLwogICAgICAvKioKICAgICAgICogQ3JlYXRlIEVYVEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGV4dGdsb2JDaGFycyhjaGFycykgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAiISI6IHsgdHlwZTogIm5lZ2F0ZSIsIG9wZW46ICIoPzooPyEoPzoiLCBjbG9zZTogYCkpJHtjaGFycy5TVEFSfSlgIH0sCiAgICAgICAgICAiPyI6IHsgdHlwZTogInFtYXJrIiwgb3BlbjogIig/OiIsIGNsb3NlOiAiKT8iIH0sCiAgICAgICAgICAiKyI6IHsgdHlwZTogInBsdXMiLCBvcGVuOiAiKD86IiwgY2xvc2U6ICIpKyIgfSwKICAgICAgICAgICIqIjogeyB0eXBlOiAic3RhciIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikqIiB9LAogICAgICAgICAgIkAiOiB7IHR5cGU6ICJhdCIsIG9wZW46ICIoPzoiLCBjbG9zZTogIikiIH0KICAgICAgICB9OwogICAgICB9LAogICAgICAvKioKICAgICAgICogQ3JlYXRlIEdMT0JfQ0hBUlMKICAgICAgICovCiAgICAgIGdsb2JDaGFycyh3aW4zMikgewogICAgICAgIHJldHVybiB3aW4zMiA9PT0gdHJ1ZSA/IFdJTkRPV1NfQ0hBUlMgOiBQT1NJWF9DSEFSUzsKICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcwp2YXIgcmVxdWlyZV91dGlsczQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi91dGlscy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciB7CiAgICAgIFJFR0VYX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSUywKICAgICAgUkVHRVhfU1BFQ0lBTF9DSEFSU19HTE9CQUwKICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgZXhwb3J0czIuaXNPYmplY3QgPSAodmFsKSA9PiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIGV4cG9ydHMyLmhhc1JlZ2V4Q2hhcnMgPSAoc3RyMikgPT4gUkVHRVhfU1BFQ0lBTF9DSEFSUy50ZXN0KHN0cjIpOwogICAgZXhwb3J0czIuaXNSZWdleENoYXIgPSAoc3RyMikgPT4gc3RyMi5sZW5ndGggPT09IDEgJiYgZXhwb3J0czIuaGFzUmVnZXhDaGFycyhzdHIyKTsKICAgIGV4cG9ydHMyLmVzY2FwZVJlZ2V4ID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTCwgIlxcJDEiKTsKICAgIGV4cG9ydHMyLnRvUG9zaXhTbGFzaGVzID0gKHN0cjIpID0+IHN0cjIucmVwbGFjZShSRUdFWF9CQUNLU0xBU0gsICIvIik7CiAgICBleHBvcnRzMi5pc1dpbmRvd3MgPSAoKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgbmF2aWdhdG9yICE9PSAidW5kZWZpbmVkIiAmJiBuYXZpZ2F0b3IucGxhdGZvcm0pIHsKICAgICAgICBjb25zdCBwbGF0Zm9ybSA9IG5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpOwogICAgICAgIHJldHVybiBwbGF0Zm9ybSA9PT0gIndpbjMyIiB8fCBwbGF0Zm9ybSA9PT0gIndpbmRvd3MiOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gInVuZGVmaW5lZCIgJiYgcHJvY2Vzcy5wbGF0Zm9ybSkgewogICAgICAgIHJldHVybiBwcm9jZXNzLnBsYXRmb3JtID09PSAid2luMzIiOwogICAgICB9CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH07CiAgICBleHBvcnRzMi5yZW1vdmVCYWNrc2xhc2hlcyA9IChzdHIyKSA9PiB7CiAgICAgIHJldHVybiBzdHIyLnJlcGxhY2UoUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSCwgKG1hdGNoKSA9PiB7CiAgICAgICAgcmV0dXJuIG1hdGNoID09PSAiXFwiID8gIiIgOiBtYXRjaDsKICAgICAgfSk7CiAgICB9OwogICAgZXhwb3J0czIuZXNjYXBlTGFzdCA9IChpbnB1dCwgY2hhciwgbGFzdElkeCkgPT4gewogICAgICBjb25zdCBpZHggPSBpbnB1dC5sYXN0SW5kZXhPZihjaGFyLCBsYXN0SWR4KTsKICAgICAgaWYgKGlkeCA9PT0gLTEpIHJldHVybiBpbnB1dDsKICAgICAgaWYgKGlucHV0W2lkeCAtIDFdID09PSAiXFwiKSByZXR1cm4gZXhwb3J0czIuZXNjYXBlTGFzdChpbnB1dCwgY2hhciwgaWR4IC0gMSk7CiAgICAgIHJldHVybiBgJHtpbnB1dC5zbGljZSgwLCBpZHgpfVxcJHtpbnB1dC5zbGljZShpZHgpfWA7CiAgICB9OwogICAgZXhwb3J0czIucmVtb3ZlUHJlZml4ID0gKGlucHV0LCBzdGF0ZSA9IHt9KSA9PiB7CiAgICAgIGxldCBvdXRwdXQgPSBpbnB1dDsKICAgICAgaWYgKG91dHB1dC5zdGFydHNXaXRoKCIuLyIpKSB7CiAgICAgICAgb3V0cHV0ID0gb3V0cHV0LnNsaWNlKDIpOwogICAgICAgIHN0YXRlLnByZWZpeCA9ICIuLyI7CiAgICAgIH0KICAgICAgcmV0dXJuIG91dHB1dDsKICAgIH07CiAgICBleHBvcnRzMi53cmFwT3V0cHV0ID0gKGlucHV0LCBzdGF0ZSA9IHt9LCBvcHRpb25zID0ge30pID0+IHsKICAgICAgY29uc3QgcHJlcGVuZCA9IG9wdGlvbnMuY29udGFpbnMgPyAiIiA6ICJeIjsKICAgICAgY29uc3QgYXBwZW5kID0gb3B0aW9ucy5jb250YWlucyA/ICIiIDogIiQiOwogICAgICBsZXQgb3V0cHV0ID0gYCR7cHJlcGVuZH0oPzoke2lucHV0fSkke2FwcGVuZH1gOwogICAgICBpZiAoc3RhdGUubmVnYXRlZCA9PT0gdHJ1ZSkgewogICAgICAgIG91dHB1dCA9IGAoPzpeKD8hJHtvdXRwdXR9KS4qJClgOwogICAgICB9CiAgICAgIHJldHVybiBvdXRwdXQ7CiAgICB9OwogICAgZXhwb3J0czIuYmFzZW5hbWUgPSAocGF0aCwgeyB3aW5kb3dzIH0gPSB7fSkgPT4gewogICAgICBjb25zdCBzZWdzID0gcGF0aC5zcGxpdCh3aW5kb3dzID8gL1tcXC9dLyA6ICIvIik7CiAgICAgIGNvbnN0IGxhc3QgPSBzZWdzW3NlZ3MubGVuZ3RoIC0gMV07CiAgICAgIGlmIChsYXN0ID09PSAiIikgewogICAgICAgIHJldHVybiBzZWdzW3NlZ3MubGVuZ3RoIC0gMl07CiAgICAgIH0KICAgICAgcmV0dXJuIGxhc3Q7CiAgICB9OwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3NjYW4uanMKdmFyIHJlcXVpcmVfc2NhbjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9zY2FuLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIENIQVJfQVNURVJJU0s6IENIQVJfQVNURVJJU0syLAogICAgICAvKiAqICovCiAgICAgIENIQVJfQVQsCiAgICAgIC8qIEAgKi8KICAgICAgQ0hBUl9CQUNLV0FSRF9TTEFTSCwKICAgICAgLyogXCAqLwogICAgICBDSEFSX0NPTU1BOiBDSEFSX0NPTU1BMiwKICAgICAgLyogLCAqLwogICAgICBDSEFSX0RPVCwKICAgICAgLyogLiAqLwogICAgICBDSEFSX0VYQ0xBTUFUSU9OX01BUkssCiAgICAgIC8qICEgKi8KICAgICAgQ0hBUl9GT1JXQVJEX1NMQVNILAogICAgICAvKiAvICovCiAgICAgIENIQVJfTEVGVF9DVVJMWV9CUkFDRSwKICAgICAgLyogeyAqLwogICAgICBDSEFSX0xFRlRfUEFSRU5USEVTRVMsCiAgICAgIC8qICggKi8KICAgICAgQ0hBUl9MRUZUX1NRVUFSRV9CUkFDS0VUOiBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyLAogICAgICAvKiBbICovCiAgICAgIENIQVJfUExVUywKICAgICAgLyogKyAqLwogICAgICBDSEFSX1FVRVNUSU9OX01BUkssCiAgICAgIC8qID8gKi8KICAgICAgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRSwKICAgICAgLyogfSAqLwogICAgICBDSEFSX1JJR0hUX1BBUkVOVEhFU0VTLAogICAgICAvKiApICovCiAgICAgIENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQ6IENIQVJfUklHSFRfU1FVQVJFX0JSQUNLRVQyCiAgICAgIC8qIF0gKi8KICAgIH0gPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIGlzUGF0aFNlcGFyYXRvciA9IChjb2RlKSA9PiB7CiAgICAgIHJldHVybiBjb2RlID09PSBDSEFSX0ZPUldBUkRfU0xBU0ggfHwgY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSDsKICAgIH07CiAgICB2YXIgZGVwdGggPSAodG9rZW4pID0+IHsKICAgICAgaWYgKHRva2VuLmlzUHJlZml4ICE9PSB0cnVlKSB7CiAgICAgICAgdG9rZW4uZGVwdGggPSB0b2tlbi5pc0dsb2JzdGFyID8gSW5maW5pdHkgOiAxOwogICAgICB9CiAgICB9OwogICAgdmFyIHNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGxlbmd0aCA9IGlucHV0Lmxlbmd0aCAtIDE7CiAgICAgIGNvbnN0IHNjYW5Ub0VuZCA9IG9wdHMucGFydHMgPT09IHRydWUgfHwgb3B0cy5zY2FuVG9FbmQgPT09IHRydWU7CiAgICAgIGNvbnN0IHNsYXNoZXMgPSBbXTsKICAgICAgY29uc3QgdG9rZW5zID0gW107CiAgICAgIGNvbnN0IHBhcnRzID0gW107CiAgICAgIGxldCBzdHIyID0gaW5wdXQ7CiAgICAgIGxldCBpbmRleCA9IC0xOwogICAgICBsZXQgc3RhcnQgPSAwOwogICAgICBsZXQgbGFzdEluZGV4ID0gMDsKICAgICAgbGV0IGlzQnJhY2UgPSBmYWxzZTsKICAgICAgbGV0IGlzQnJhY2tldCA9IGZhbHNlOwogICAgICBsZXQgaXNHbG9iID0gZmFsc2U7CiAgICAgIGxldCBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgbGV0IGlzR2xvYnN0YXIgPSBmYWxzZTsKICAgICAgbGV0IGJyYWNlRXNjYXBlZCA9IGZhbHNlOwogICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWQgPSBmYWxzZTsKICAgICAgbGV0IG5lZ2F0ZWRFeHRnbG9iID0gZmFsc2U7CiAgICAgIGxldCBmaW5pc2hlZCA9IGZhbHNlOwogICAgICBsZXQgYnJhY2VzID0gMDsKICAgICAgbGV0IHByZXY7CiAgICAgIGxldCBjb2RlOwogICAgICBsZXQgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgY29uc3QgZW9zID0gKCkgPT4gaW5kZXggPj0gbGVuZ3RoOwogICAgICBjb25zdCBwZWVrID0gKCkgPT4gc3RyMi5jaGFyQ29kZUF0KGluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGFkdmFuY2UgPSAoKSA9PiB7CiAgICAgICAgcHJldiA9IGNvZGU7CiAgICAgICAgcmV0dXJuIHN0cjIuY2hhckNvZGVBdCgrK2luZGV4KTsKICAgICAgfTsKICAgICAgd2hpbGUgKGluZGV4IDwgbGVuZ3RoKSB7CiAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICBsZXQgbmV4dDsKICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICBjb2RlID0gYWR2YW5jZSgpOwogICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICBicmFjZUVzY2FwZWQgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmIChicmFjZUVzY2FwZWQgPT09IHRydWUgfHwgY29kZSA9PT0gQ0hBUl9MRUZUX0NVUkxZX0JSQUNFKSB7CiAgICAgICAgICBicmFjZXMrKzsKICAgICAgICAgIHdoaWxlIChlb3MoKSAhPT0gdHJ1ZSAmJiAoY29kZSA9IGFkdmFuY2UoKSkpIHsKICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQkFDS1dBUkRfU0xBU0gpIHsKICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICBhZHZhbmNlKCk7CiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfTEVGVF9DVVJMWV9CUkFDRSkgewogICAgICAgICAgICAgIGJyYWNlcysrOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChicmFjZUVzY2FwZWQgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9ET1QgJiYgKGNvZGUgPSBhZHZhbmNlKCkpID09PSBDSEFSX0RPVCkgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGJyYWNlRXNjYXBlZCAhPT0gdHJ1ZSAmJiBjb2RlID09PSBDSEFSX0NPTU1BMikgewogICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfUklHSFRfQ1VSTFlfQlJBQ0UpIHsKICAgICAgICAgICAgICBicmFjZXMtLTsKICAgICAgICAgICAgICBpZiAoYnJhY2VzID09PSAwKSB7CiAgICAgICAgICAgICAgICBicmFjZUVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzQnJhY2UgPSB0b2tlbi5pc0JyYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHNjYW5Ub0VuZCA9PT0gdHJ1ZSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9GT1JXQVJEX1NMQVNIKSB7CiAgICAgICAgICBzbGFzaGVzLnB1c2goaW5kZXgpOwogICAgICAgICAgdG9rZW5zLnB1c2godG9rZW4pOwogICAgICAgICAgdG9rZW4gPSB7IHZhbHVlOiAiIiwgZGVwdGg6IDAsIGlzR2xvYjogZmFsc2UgfTsKICAgICAgICAgIGlmIChmaW5pc2hlZCA9PT0gdHJ1ZSkgY29udGludWU7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9ET1QgJiYgaW5kZXggPT09IHN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGFydCArPSAyOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub2V4dCAhPT0gdHJ1ZSkgewogICAgICAgICAgY29uc3QgaXNFeHRnbG9iQ2hhciA9IGNvZGUgPT09IENIQVJfUExVUyB8fCBjb2RlID09PSBDSEFSX0FUIHx8IGNvZGUgPT09IENIQVJfQVNURVJJU0syIHx8IGNvZGUgPT09IENIQVJfUVVFU1RJT05fTUFSSyB8fCBjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUks7CiAgICAgICAgICBpZiAoaXNFeHRnbG9iQ2hhciA9PT0gdHJ1ZSAmJiBwZWVrKCkgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICBpc0V4dGdsb2IgPSB0b2tlbi5pc0V4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0VYQ0xBTUFUSU9OX01BUksgJiYgaW5kZXggPT09IHN0YXJ0KSB7CiAgICAgICAgICAgICAgbmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKGNvZGUgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9CQUNLV0FSRF9TTEFTSCkgewogICAgICAgICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRva2VuLmJhY2tzbGFzaGVzID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgICBpc0dsb2IgPSB0b2tlbi5pc0dsb2IgPSB0cnVlOwogICAgICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNvZGUgPT09IENIQVJfQVNURVJJU0syKSB7CiAgICAgICAgICBpZiAocHJldiA9PT0gQ0hBUl9BU1RFUklTSzIpIGlzR2xvYnN0YXIgPSB0b2tlbi5pc0dsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX1FVRVNUSU9OX01BUkspIHsKICAgICAgICAgIGlzR2xvYiA9IHRva2VuLmlzR2xvYiA9IHRydWU7CiAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICBpZiAoc2NhblRvRW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQyKSB7CiAgICAgICAgICB3aGlsZSAoZW9zKCkgIT09IHRydWUgJiYgKG5leHQgPSBhZHZhbmNlKCkpKSB7CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX0JBQ0tXQVJEX1NMQVNIKSB7CiAgICAgICAgICAgICAgYmFja3NsYXNoZXMgPSB0b2tlbi5iYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChuZXh0ID09PSBDSEFSX1JJR0hUX1NRVUFSRV9CUkFDS0VUMikgewogICAgICAgICAgICAgIGlzQnJhY2tldCA9IHRva2VuLmlzQnJhY2tldCA9IHRydWU7CiAgICAgICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgICAgICBmaW5pc2hlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgY29kZSA9PT0gQ0hBUl9FWENMQU1BVElPTl9NQVJLICYmIGluZGV4ID09PSBzdGFydCkgewogICAgICAgICAgbmVnYXRlZCA9IHRva2VuLm5lZ2F0ZWQgPSB0cnVlOwogICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAob3B0cy5ub3BhcmVuICE9PSB0cnVlICYmIGNvZGUgPT09IENIQVJfTEVGVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgaXNHbG9iID0gdG9rZW4uaXNHbG9iID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgd2hpbGUgKGVvcygpICE9PSB0cnVlICYmIChjb2RlID0gYWR2YW5jZSgpKSkgewogICAgICAgICAgICAgIGlmIChjb2RlID09PSBDSEFSX0xFRlRfUEFSRU5USEVTRVMpIHsKICAgICAgICAgICAgICAgIGJhY2tzbGFzaGVzID0gdG9rZW4uYmFja3NsYXNoZXMgPSB0cnVlOwogICAgICAgICAgICAgICAgY29kZSA9IGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoY29kZSA9PT0gQ0hBUl9SSUdIVF9QQVJFTlRIRVNFUykgewogICAgICAgICAgICAgICAgZmluaXNoZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGlmIChpc0dsb2IgPT09IHRydWUpIHsKICAgICAgICAgIGZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgIGlmIChzY2FuVG9FbmQgPT09IHRydWUpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMubm9leHQgPT09IHRydWUpIHsKICAgICAgICBpc0V4dGdsb2IgPSBmYWxzZTsKICAgICAgICBpc0dsb2IgPSBmYWxzZTsKICAgICAgfQogICAgICBsZXQgYmFzZSA9IHN0cjI7CiAgICAgIGxldCBwcmVmaXggPSAiIjsKICAgICAgbGV0IGdsb2IgPSAiIjsKICAgICAgaWYgKHN0YXJ0ID4gMCkgewogICAgICAgIHByZWZpeCA9IHN0cjIuc2xpY2UoMCwgc3RhcnQpOwogICAgICAgIHN0cjIgPSBzdHIyLnNsaWNlKHN0YXJ0KTsKICAgICAgICBsYXN0SW5kZXggLT0gc3RhcnQ7CiAgICAgIH0KICAgICAgaWYgKGJhc2UgJiYgaXNHbG9iID09PSB0cnVlICYmIGxhc3RJbmRleCA+IDApIHsKICAgICAgICBiYXNlID0gc3RyMi5zbGljZSgwLCBsYXN0SW5kZXgpOwogICAgICAgIGdsb2IgPSBzdHIyLnNsaWNlKGxhc3RJbmRleCk7CiAgICAgIH0gZWxzZSBpZiAoaXNHbG9iID09PSB0cnVlKSB7CiAgICAgICAgYmFzZSA9ICIiOwogICAgICAgIGdsb2IgPSBzdHIyOwogICAgICB9IGVsc2UgewogICAgICAgIGJhc2UgPSBzdHIyOwogICAgICB9CiAgICAgIGlmIChiYXNlICYmIGJhc2UgIT09ICIiICYmIGJhc2UgIT09ICIvIiAmJiBiYXNlICE9PSBzdHIyKSB7CiAgICAgICAgaWYgKGlzUGF0aFNlcGFyYXRvcihiYXNlLmNoYXJDb2RlQXQoYmFzZS5sZW5ndGggLSAxKSkpIHsKICAgICAgICAgIGJhc2UgPSBiYXNlLnNsaWNlKDAsIC0xKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKG9wdHMudW5lc2NhcGUgPT09IHRydWUpIHsKICAgICAgICBpZiAoZ2xvYikgZ2xvYiA9IHV0aWxzLnJlbW92ZUJhY2tzbGFzaGVzKGdsb2IpOwogICAgICAgIGlmIChiYXNlICYmIGJhY2tzbGFzaGVzID09PSB0cnVlKSB7CiAgICAgICAgICBiYXNlID0gdXRpbHMucmVtb3ZlQmFja3NsYXNoZXMoYmFzZSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNvbnN0IHN0YXRlID0gewogICAgICAgIHByZWZpeCwKICAgICAgICBpbnB1dCwKICAgICAgICBzdGFydCwKICAgICAgICBiYXNlLAogICAgICAgIGdsb2IsCiAgICAgICAgaXNCcmFjZSwKICAgICAgICBpc0JyYWNrZXQsCiAgICAgICAgaXNHbG9iLAogICAgICAgIGlzRXh0Z2xvYiwKICAgICAgICBpc0dsb2JzdGFyLAogICAgICAgIG5lZ2F0ZWQsCiAgICAgICAgbmVnYXRlZEV4dGdsb2IKICAgICAgfTsKICAgICAgaWYgKG9wdHMudG9rZW5zID09PSB0cnVlKSB7CiAgICAgICAgc3RhdGUubWF4RGVwdGggPSAwOwogICAgICAgIGlmICghaXNQYXRoU2VwYXJhdG9yKGNvZGUpKSB7CiAgICAgICAgICB0b2tlbnMucHVzaCh0b2tlbik7CiAgICAgICAgfQogICAgICAgIHN0YXRlLnRva2VucyA9IHRva2VuczsKICAgICAgfQogICAgICBpZiAob3B0cy5wYXJ0cyA9PT0gdHJ1ZSB8fCBvcHRzLnRva2VucyA9PT0gdHJ1ZSkgewogICAgICAgIGxldCBwcmV2SW5kZXg7CiAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgc2xhc2hlcy5sZW5ndGg7IGlkeCsrKSB7CiAgICAgICAgICBjb25zdCBuID0gcHJldkluZGV4ID8gcHJldkluZGV4ICsgMSA6IHN0YXJ0OwogICAgICAgICAgY29uc3QgaSA9IHNsYXNoZXNbaWR4XTsKICAgICAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXQuc2xpY2UobiwgaSk7CiAgICAgICAgICBpZiAob3B0cy50b2tlbnMpIHsKICAgICAgICAgICAgaWYgKGlkeCA9PT0gMCAmJiBzdGFydCAhPT0gMCkgewogICAgICAgICAgICAgIHRva2Vuc1tpZHhdLmlzUHJlZml4ID0gdHJ1ZTsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHByZWZpeDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0b2tlbnNbaWR4XS52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlcHRoKHRva2Vuc1tpZHhdKTsKICAgICAgICAgICAgc3RhdGUubWF4RGVwdGggKz0gdG9rZW5zW2lkeF0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaWR4ICE9PSAwIHx8IHZhbHVlICE9PSAiIikgewogICAgICAgICAgICBwYXJ0cy5wdXNoKHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHByZXZJbmRleCA9IGk7CiAgICAgICAgfQogICAgICAgIGlmIChwcmV2SW5kZXggJiYgcHJldkluZGV4ICsgMSA8IGlucHV0Lmxlbmd0aCkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC5zbGljZShwcmV2SW5kZXggKyAxKTsKICAgICAgICAgIHBhcnRzLnB1c2godmFsdWUpOwogICAgICAgICAgaWYgKG9wdHMudG9rZW5zKSB7CiAgICAgICAgICAgIHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0udmFsdWUgPSB2YWx1ZTsKICAgICAgICAgICAgZGVwdGgodG9rZW5zW3Rva2Vucy5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgIHN0YXRlLm1heERlcHRoICs9IHRva2Vuc1t0b2tlbnMubGVuZ3RoIC0gMV0uZGVwdGg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnNsYXNoZXMgPSBzbGFzaGVzOwogICAgICAgIHN0YXRlLnBhcnRzID0gcGFydHM7CiAgICAgIH0KICAgICAgcmV0dXJuIHN0YXRlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHNjYW47CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9saWIvcGFyc2UuanMKdmFyIHJlcXVpcmVfcGFyc2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9wYXJzZS5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBjb25zdGFudHMgPSByZXF1aXJlX2NvbnN0YW50cygpOwogICAgdmFyIHV0aWxzID0gcmVxdWlyZV91dGlsczQoKTsKICAgIHZhciB7CiAgICAgIE1BWF9MRU5HVEgsCiAgICAgIFBPU0lYX1JFR0VYX1NPVVJDRSwKICAgICAgUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlMsCiAgICAgIFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRiwKICAgICAgUkVQTEFDRU1FTlRTCiAgICB9ID0gY29uc3RhbnRzOwogICAgdmFyIGV4cGFuZFJhbmdlID0gKGFyZ3MsIG9wdGlvbnMpID0+IHsKICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmV4cGFuZFJhbmdlID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIG9wdGlvbnMuZXhwYW5kUmFuZ2UoLi4uYXJncywgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgYXJncy5zb3J0KCk7CiAgICAgIGNvbnN0IHZhbHVlID0gYFske2FyZ3Muam9pbigiLSIpfV1gOwogICAgICB0cnkgewogICAgICAgIG5ldyBSZWdFeHAodmFsdWUpOwogICAgICB9IGNhdGNoIChleCkgewogICAgICAgIHJldHVybiBhcmdzLm1hcCgodikgPT4gdXRpbHMuZXNjYXBlUmVnZXgodikpLmpvaW4oIi4uIik7CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbHVlOwogICAgfTsKICAgIHZhciBzeW50YXhFcnJvciA9ICh0eXBlMiwgY2hhcikgPT4gewogICAgICByZXR1cm4gYE1pc3NpbmcgJHt0eXBlMn06ICIke2NoYXJ9IiAtIHVzZSAiXFxcXCR7Y2hhcn0iIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7CiAgICB9OwogICAgdmFyIHBhcnNlID0gKGlucHV0LCBvcHRpb25zKSA9PiB7CiAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBzdHJpbmciKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IG9wdHMgPSB7IC4uLm9wdGlvbnMgfTsKICAgICAgY29uc3QgbWF4ID0gdHlwZW9mIG9wdHMubWF4TGVuZ3RoID09PSAibnVtYmVyIiA/IE1hdGgubWluKE1BWF9MRU5HVEgsIG9wdHMubWF4TGVuZ3RoKSA6IE1BWF9MRU5HVEg7CiAgICAgIGxldCBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGlmIChsZW4gPiBtYXgpIHsKICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsZW59LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7bWF4fWApOwogICAgICB9CiAgICAgIGNvbnN0IGJvcyA9IHsgdHlwZTogImJvcyIsIHZhbHVlOiAiIiwgb3V0cHV0OiBvcHRzLnByZXBlbmQgfHwgIiIgfTsKICAgICAgY29uc3QgdG9rZW5zID0gW2Jvc107CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IFBMQVRGT1JNX0NIQVJTID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBFWFRHTE9CX0NIQVJTID0gY29uc3RhbnRzLmV4dGdsb2JDaGFycyhQTEFURk9STV9DSEFSUyk7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBQTFVTX0xJVEVSQUwsCiAgICAgICAgU0xBU0hfTElURVJBTCwKICAgICAgICBPTkVfQ0hBUiwKICAgICAgICBET1RTX1NMQVNILAogICAgICAgIE5PX0RPVCwKICAgICAgICBOT19ET1RfU0xBU0gsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBRTUFSSywKICAgICAgICBRTUFSS19OT19ET1QsCiAgICAgICAgU1RBUiwKICAgICAgICBTVEFSVF9BTkNIT1IKICAgICAgfSA9IFBMQVRGT1JNX0NIQVJTOwogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIHJldHVybiBgKCR7Y2FwdHVyZX0oPzooPyEke1NUQVJUX0FOQ0hPUn0ke29wdHMyLmRvdCA/IERPVFNfU0xBU0ggOiBET1RfTElURVJBTH0pLikqPylgOwogICAgICB9OwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gIiIgOiBOT19ET1Q7CiAgICAgIGNvbnN0IHFtYXJrTm9Eb3QgPSBvcHRzLmRvdCA/IFFNQVJLIDogUU1BUktfTk9fRE9UOwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/IGdsb2JzdGFyKG9wdHMpIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBpZiAodHlwZW9mIG9wdHMubm9leHQgPT09ICJib29sZWFuIikgewogICAgICAgIG9wdHMubm9leHRnbG9iID0gb3B0cy5ub2V4dDsKICAgICAgfQogICAgICBjb25zdCBzdGF0ZSA9IHsKICAgICAgICBpbnB1dCwKICAgICAgICBpbmRleDogLTEsCiAgICAgICAgc3RhcnQ6IDAsCiAgICAgICAgZG90OiBvcHRzLmRvdCA9PT0gdHJ1ZSwKICAgICAgICBjb25zdW1lZDogIiIsCiAgICAgICAgb3V0cHV0OiAiIiwKICAgICAgICBwcmVmaXg6ICIiLAogICAgICAgIGJhY2t0cmFjazogZmFsc2UsCiAgICAgICAgbmVnYXRlZDogZmFsc2UsCiAgICAgICAgYnJhY2tldHM6IDAsCiAgICAgICAgYnJhY2VzOiAwLAogICAgICAgIHBhcmVuczogMCwKICAgICAgICBxdW90ZXM6IDAsCiAgICAgICAgZ2xvYnN0YXI6IGZhbHNlLAogICAgICAgIHRva2VucwogICAgICB9OwogICAgICBpbnB1dCA9IHV0aWxzLnJlbW92ZVByZWZpeChpbnB1dCwgc3RhdGUpOwogICAgICBsZW4gPSBpbnB1dC5sZW5ndGg7CiAgICAgIGNvbnN0IGV4dGdsb2JzID0gW107CiAgICAgIGNvbnN0IGJyYWNlcyA9IFtdOwogICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICBsZXQgcHJldiA9IGJvczsKICAgICAgbGV0IHZhbHVlOwogICAgICBjb25zdCBlb3MgPSAoKSA9PiBzdGF0ZS5pbmRleCA9PT0gbGVuIC0gMTsKICAgICAgY29uc3QgcGVlayA9IHN0YXRlLnBlZWsgPSAobiA9IDEpID0+IGlucHV0W3N0YXRlLmluZGV4ICsgbl07CiAgICAgIGNvbnN0IGFkdmFuY2UgPSBzdGF0ZS5hZHZhbmNlID0gKCkgPT4gaW5wdXRbKytzdGF0ZS5pbmRleF0gfHwgIiI7CiAgICAgIGNvbnN0IHJlbWFpbmluZyA9ICgpID0+IGlucHV0LnNsaWNlKHN0YXRlLmluZGV4ICsgMSk7CiAgICAgIGNvbnN0IGNvbnN1bWUgPSAodmFsdWUyID0gIiIsIG51bSA9IDApID0+IHsKICAgICAgICBzdGF0ZS5jb25zdW1lZCArPSB2YWx1ZTI7CiAgICAgICAgc3RhdGUuaW5kZXggKz0gbnVtOwogICAgICB9OwogICAgICBjb25zdCBhcHBlbmQgPSAodG9rZW4pID0+IHsKICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gdG9rZW4ub3V0cHV0ICE9IG51bGwgPyB0b2tlbi5vdXRwdXQgOiB0b2tlbi52YWx1ZTsKICAgICAgICBjb25zdW1lKHRva2VuLnZhbHVlKTsKICAgICAgfTsKICAgICAgY29uc3QgbmVnYXRlID0gKCkgPT4gewogICAgICAgIGxldCBjb3VudCA9IDE7CiAgICAgICAgd2hpbGUgKHBlZWsoKSA9PT0gIiEiICYmIChwZWVrKDIpICE9PSAiKCIgfHwgcGVlaygzKSA9PT0gIj8iKSkgewogICAgICAgICAgYWR2YW5jZSgpOwogICAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIGlmIChjb3VudCAlIDIgPT09IDApIHsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUubmVnYXRlZCA9IHRydWU7CiAgICAgICAgc3RhdGUuc3RhcnQrKzsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfTsKICAgICAgY29uc3QgaW5jcmVtZW50ID0gKHR5cGUyKSA9PiB7CiAgICAgICAgc3RhdGVbdHlwZTJdKys7CiAgICAgICAgc3RhY2sucHVzaCh0eXBlMik7CiAgICAgIH07CiAgICAgIGNvbnN0IGRlY3JlbWVudCA9ICh0eXBlMikgPT4gewogICAgICAgIHN0YXRlW3R5cGUyXS0tOwogICAgICAgIHN0YWNrLnBvcCgpOwogICAgICB9OwogICAgICBjb25zdCBwdXNoID0gKHRvaykgPT4gewogICAgICAgIGlmIChwcmV2LnR5cGUgPT09ICJnbG9ic3RhciIpIHsKICAgICAgICAgIGNvbnN0IGlzQnJhY2UgPSBzdGF0ZS5icmFjZXMgPiAwICYmICh0b2sudHlwZSA9PT0gImNvbW1hIiB8fCB0b2sudHlwZSA9PT0gImJyYWNlIik7CiAgICAgICAgICBjb25zdCBpc0V4dGdsb2IgPSB0b2suZXh0Z2xvYiA9PT0gdHJ1ZSB8fCBleHRnbG9icy5sZW5ndGggJiYgKHRvay50eXBlID09PSAicGlwZSIgfHwgdG9rLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKHRvay50eXBlICE9PSAic2xhc2giICYmIHRvay50eXBlICE9PSAicGFyZW4iICYmICFpc0JyYWNlICYmICFpc0V4dGdsb2IpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICAgIHByZXYudmFsdWUgPSAiKiI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZXh0Z2xvYnMubGVuZ3RoICYmIHRvay50eXBlICE9PSAicGFyZW4iKSB7CiAgICAgICAgICBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXS5pbm5lciArPSB0b2sudmFsdWU7CiAgICAgICAgfQogICAgICAgIGlmICh0b2sudmFsdWUgfHwgdG9rLm91dHB1dCkgYXBwZW5kKHRvayk7CiAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAidGV4dCIgJiYgdG9rLnR5cGUgPT09ICJ0ZXh0IikgewogICAgICAgICAgcHJldi5vdXRwdXQgPSAocHJldi5vdXRwdXQgfHwgcHJldi52YWx1ZSkgKyB0b2sudmFsdWU7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHRvay52YWx1ZTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdG9rLnByZXYgPSBwcmV2OwogICAgICAgIHRva2Vucy5wdXNoKHRvayk7CiAgICAgICAgcHJldiA9IHRvazsKICAgICAgfTsKICAgICAgY29uc3QgZXh0Z2xvYk9wZW4gPSAodHlwZTIsIHZhbHVlMikgPT4gewogICAgICAgIGNvbnN0IHRva2VuID0geyAuLi5FWFRHTE9CX0NIQVJTW3ZhbHVlMl0sIGNvbmRpdGlvbnM6IDEsIGlubmVyOiAiIiB9OwogICAgICAgIHRva2VuLnByZXYgPSBwcmV2OwogICAgICAgIHRva2VuLnBhcmVucyA9IHN0YXRlLnBhcmVuczsKICAgICAgICB0b2tlbi5vdXRwdXQgPSBzdGF0ZS5vdXRwdXQ7CiAgICAgICAgY29uc3Qgb3V0cHV0ID0gKG9wdHMuY2FwdHVyZSA/ICIoIiA6ICIiKSArIHRva2VuLm9wZW47CiAgICAgICAgaW5jcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICBwdXNoKHsgdHlwZTogdHlwZTIsIHZhbHVlOiB2YWx1ZTIsIG91dHB1dDogc3RhdGUub3V0cHV0ID8gIiIgOiBPTkVfQ0hBUiB9KTsKICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWU6IGFkdmFuY2UoKSwgb3V0cHV0IH0pOwogICAgICAgIGV4dGdsb2JzLnB1c2godG9rZW4pOwogICAgICB9OwogICAgICBjb25zdCBleHRnbG9iQ2xvc2UgPSAodG9rZW4pID0+IHsKICAgICAgICBsZXQgb3V0cHV0ID0gdG9rZW4uY2xvc2UgKyAob3B0cy5jYXB0dXJlID8gIikiIDogIiIpOwogICAgICAgIGxldCByZXN0OwogICAgICAgIGlmICh0b2tlbi50eXBlID09PSAibmVnYXRlIikgewogICAgICAgICAgbGV0IGV4dGdsb2JTdGFyID0gc3RhcjsKICAgICAgICAgIGlmICh0b2tlbi5pbm5lciAmJiB0b2tlbi5pbm5lci5sZW5ndGggPiAxICYmIHRva2VuLmlubmVyLmluY2x1ZGVzKCIvIikpIHsKICAgICAgICAgICAgZXh0Z2xvYlN0YXIgPSBnbG9ic3RhcihvcHRzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChleHRnbG9iU3RhciAhPT0gc3RhciB8fCBlb3MoKSB8fCAvXlwpKyQvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgIG91dHB1dCA9IHRva2VuLmNsb3NlID0gYCkkKSkke2V4dGdsb2JTdGFyfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG9rZW4uaW5uZXIuaW5jbHVkZXMoIioiKSAmJiAocmVzdCA9IHJlbWFpbmluZygpKSAmJiAvXlwuW15cXC8uXSskLy50ZXN0KHJlc3QpKSB7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBwYXJzZShyZXN0LCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSkub3V0cHV0OwogICAgICAgICAgICBvdXRwdXQgPSB0b2tlbi5jbG9zZSA9IGApJHtleHByZXNzaW9ufSkke2V4dGdsb2JTdGFyfSlgOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHRva2VuLnByZXYudHlwZSA9PT0gImJvcyIpIHsKICAgICAgICAgICAgc3RhdGUubmVnYXRlZEV4dGdsb2IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgZXh0Z2xvYjogdHJ1ZSwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9OwogICAgICBpZiAob3B0cy5mYXN0cGF0aHMgIT09IGZhbHNlICYmICEvKF5bKiFdfFsvKClbXF17fSJdKS8udGVzdChpbnB1dCkpIHsKICAgICAgICBsZXQgYmFja3NsYXNoZXMgPSBmYWxzZTsKICAgICAgICBsZXQgb3V0cHV0ID0gaW5wdXQucmVwbGFjZShSRUdFWF9TUEVDSUFMX0NIQVJTX0JBQ0tSRUYsIChtLCBlc2MsIGNoYXJzLCBmaXJzdCwgcmVzdCwgaW5kZXgpID0+IHsKICAgICAgICAgIGlmIChmaXJzdCA9PT0gIlxcIikgewogICAgICAgICAgICBiYWNrc2xhc2hlcyA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBtOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGZpcnN0ID09PSAiPyIpIHsKICAgICAgICAgICAgaWYgKGVzYykgewogICAgICAgICAgICAgIHJldHVybiBlc2MgKyBmaXJzdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICByZXR1cm4gcW1hcmtOb0RvdCArIChyZXN0ID8gUU1BUksucmVwZWF0KHJlc3QubGVuZ3RoKSA6ICIiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gUU1BUksucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIuIikgewogICAgICAgICAgICByZXR1cm4gRE9UX0xJVEVSQUwucmVwZWF0KGNoYXJzLmxlbmd0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlyc3QgPT09ICIqIikgewogICAgICAgICAgICBpZiAoZXNjKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGVzYyArIGZpcnN0ICsgKHJlc3QgPyBzdGFyIDogIiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzdGFyOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGVzYyA/IG0gOiBgXFwke219YDsKICAgICAgICB9KTsKICAgICAgICBpZiAoYmFja3NsYXNoZXMgPT09IHRydWUpIHsKICAgICAgICAgIGlmIChvcHRzLnVuZXNjYXBlID09PSB0cnVlKSB7CiAgICAgICAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXC9nLCAiIik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFwrL2csIChtKSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIG0ubGVuZ3RoICUgMiA9PT0gMCA/ICJcXFxcIiA6IG0gPyAiXFwiIDogIiI7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAob3V0cHV0ID09PSBpbnB1dCAmJiBvcHRzLmNvbnRhaW5zID09PSB0cnVlKSB7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBpbnB1dDsKICAgICAgICAgIHJldHVybiBzdGF0ZTsKICAgICAgICB9CiAgICAgICAgc3RhdGUub3V0cHV0ID0gdXRpbHMud3JhcE91dHB1dChvdXRwdXQsIHN0YXRlLCBvcHRpb25zKTsKICAgICAgICByZXR1cm4gc3RhdGU7CiAgICAgIH0KICAgICAgd2hpbGUgKCFlb3MoKSkgewogICAgICAgIHZhbHVlID0gYWR2YW5jZSgpOwogICAgICAgIGlmICh2YWx1ZSA9PT0gIlwwIikgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gIlxcIikgewogICAgICAgICAgY29uc3QgbmV4dCA9IHBlZWsoKTsKICAgICAgICAgIGlmIChuZXh0ID09PSAiLyIgJiYgb3B0cy5iYXNoICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG5leHQgPT09ICIuIiB8fCBuZXh0ID09PSAiOyIpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5leHQpIHsKICAgICAgICAgICAgdmFsdWUgKz0gIlxcIjsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSAvXlxcKy8uZXhlYyhyZW1haW5pbmcoKSk7CiAgICAgICAgICBsZXQgc2xhc2hlcyA9IDA7CiAgICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMF0ubGVuZ3RoID4gMikgewogICAgICAgICAgICBzbGFzaGVzID0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgICBzdGF0ZS5pbmRleCArPSBzbGFzaGVzOwogICAgICAgICAgICBpZiAoc2xhc2hlcyAlIDIgIT09IDApIHsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXFwiOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy51bmVzY2FwZSA9PT0gdHJ1ZSkgewogICAgICAgICAgICB2YWx1ZSA9IGFkdmFuY2UoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZhbHVlICs9IGFkdmFuY2UoKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInRleHQiLCB2YWx1ZSB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA+IDAgJiYgKHZhbHVlICE9PSAiXSIgfHwgcHJldi52YWx1ZSA9PT0gIlsiIHx8IHByZXYudmFsdWUgPT09ICJbXiIpKSB7CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCAhPT0gZmFsc2UgJiYgdmFsdWUgPT09ICI6IikgewogICAgICAgICAgICBjb25zdCBpbm5lciA9IHByZXYudmFsdWUuc2xpY2UoMSk7CiAgICAgICAgICAgIGlmIChpbm5lci5pbmNsdWRlcygiWyIpKSB7CiAgICAgICAgICAgICAgcHJldi5wb3NpeCA9IHRydWU7CiAgICAgICAgICAgICAgaWYgKGlubmVyLmluY2x1ZGVzKCI6IikpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGlkeCA9IHByZXYudmFsdWUubGFzdEluZGV4T2YoIlsiKTsKICAgICAgICAgICAgICAgIGNvbnN0IHByZSA9IHByZXYudmFsdWUuc2xpY2UoMCwgaWR4KTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3QyID0gcHJldi52YWx1ZS5zbGljZShpZHggKyAyKTsKICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l4ID0gUE9TSVhfUkVHRVhfU09VUkNFW3Jlc3QyXTsKICAgICAgICAgICAgICAgIGlmIChwb3NpeCkgewogICAgICAgICAgICAgICAgICBwcmV2LnZhbHVlID0gcHJlICsgcG9zaXg7CiAgICAgICAgICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICAgICAgICAgIGFkdmFuY2UoKTsKICAgICAgICAgICAgICAgICAgaWYgKCFib3Mub3V0cHV0ICYmIHRva2Vucy5pbmRleE9mKHByZXYpID09PSAxKSB7CiAgICAgICAgICAgICAgICAgICAgYm9zLm91dHB1dCA9IE9ORV9DSEFSOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSAiWyIgJiYgcGVlaygpICE9PSAiOiIgfHwgdmFsdWUgPT09ICItIiAmJiBwZWVrKCkgPT09ICJdIikgewogICAgICAgICAgICB2YWx1ZSA9IGBcXCR7dmFsdWV9YDsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh2YWx1ZSA9PT0gIl0iICYmIChwcmV2LnZhbHVlID09PSAiWyIgfHwgcHJldi52YWx1ZSA9PT0gIlteIikpIHsKICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0cy5wb3NpeCA9PT0gdHJ1ZSAmJiB2YWx1ZSA9PT0gIiEiICYmIHByZXYudmFsdWUgPT09ICJbIikgewogICAgICAgICAgICB2YWx1ZSA9ICJeIjsKICAgICAgICAgIH0KICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICBhcHBlbmQoeyB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUucXVvdGVzID09PSAxICYmIHZhbHVlICE9PSAnIicpIHsKICAgICAgICAgIHZhbHVlID0gdXRpbHMuZXNjYXBlUmVnZXgodmFsdWUpOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIGFwcGVuZCh7IHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSA9PT0gJyInKSB7CiAgICAgICAgICBzdGF0ZS5xdW90ZXMgPSBzdGF0ZS5xdW90ZXMgPT09IDEgPyAwIDogMTsKICAgICAgICAgIGlmIChvcHRzLmtlZXBRdW90ZXMgPT09IHRydWUpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKCIpIHsKICAgICAgICAgIGluY3JlbWVudCgicGFyZW5zIik7CiAgICAgICAgICBwdXNoKHsgdHlwZTogInBhcmVuIiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiKSIpIHsKICAgICAgICAgIGlmIChzdGF0ZS5wYXJlbnMgPT09IDAgJiYgb3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoIm9wZW5pbmciLCAiKCIpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGV4dGdsb2IgPSBleHRnbG9ic1tleHRnbG9icy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChleHRnbG9iICYmIHN0YXRlLnBhcmVucyA9PT0gZXh0Z2xvYi5wYXJlbnMgKyAxKSB7CiAgICAgICAgICAgIGV4dGdsb2JDbG9zZShleHRnbG9icy5wb3AoKSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJwYXJlbiIsIHZhbHVlLCBvdXRwdXQ6IHN0YXRlLnBhcmVucyA/ICIpIiA6ICJcXCkiIH0pOwogICAgICAgICAgZGVjcmVtZW50KCJwYXJlbnMiKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJbIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8ICFyZW1haW5pbmcoKS5pbmNsdWRlcygiXSIpKSB7CiAgICAgICAgICAgIGlmIChvcHRzLm5vYnJhY2tldCAhPT0gdHJ1ZSAmJiBvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKCJjbG9zaW5nIiwgIl0iKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdmFsdWUgPSBgXFwke3ZhbHVlfWA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpbmNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImJyYWNrZXQiLCB2YWx1ZSB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJdIikgewogICAgICAgICAgaWYgKG9wdHMubm9icmFja2V0ID09PSB0cnVlIHx8IHByZXYgJiYgcHJldi50eXBlID09PSAiYnJhY2tldCIgJiYgcHJldi52YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogYFxcJHt2YWx1ZX1gIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFja2V0cyA9PT0gMCkgewogICAgICAgICAgICBpZiAob3B0cy5zdHJpY3RCcmFja2V0cyA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigib3BlbmluZyIsICJbIikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQ6IGBcXCR7dmFsdWV9YCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBkZWNyZW1lbnQoImJyYWNrZXRzIik7CiAgICAgICAgICBjb25zdCBwcmV2VmFsdWUgPSBwcmV2LnZhbHVlLnNsaWNlKDEpOwogICAgICAgICAgaWYgKHByZXYucG9zaXggIT09IHRydWUgJiYgcHJldlZhbHVlWzBdID09PSAiXiIgJiYgIXByZXZWYWx1ZS5pbmNsdWRlcygiLyIpKSB7CiAgICAgICAgICAgIHZhbHVlID0gYC8ke3ZhbHVlfWA7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgYXBwZW5kKHsgdmFsdWUgfSk7CiAgICAgICAgICBpZiAob3B0cy5saXRlcmFsQnJhY2tldHMgPT09IGZhbHNlIHx8IHV0aWxzLmhhc1JlZ2V4Q2hhcnMocHJldlZhbHVlKSkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSB1dGlscy5lc2NhcGVSZWdleChwcmV2LnZhbHVlKTsKICAgICAgICAgIHN0YXRlLm91dHB1dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCAtcHJldi52YWx1ZS5sZW5ndGgpOwogICAgICAgICAgaWYgKG9wdHMubGl0ZXJhbEJyYWNrZXRzID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBlc2NhcGVkOwogICAgICAgICAgICBwcmV2LnZhbHVlID0gZXNjYXBlZDsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwcmV2LnZhbHVlID0gYCgke2NhcHR1cmV9JHtlc2NhcGVkfXwke3ByZXYudmFsdWV9KWA7CiAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJldi52YWx1ZTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ7IiAmJiBvcHRzLm5vYnJhY2UgIT09IHRydWUpIHsKICAgICAgICAgIGluY3JlbWVudCgiYnJhY2VzIik7CiAgICAgICAgICBjb25zdCBvcGVuID0gewogICAgICAgICAgICB0eXBlOiAiYnJhY2UiLAogICAgICAgICAgICB2YWx1ZSwKICAgICAgICAgICAgb3V0cHV0OiAiKCIsCiAgICAgICAgICAgIG91dHB1dEluZGV4OiBzdGF0ZS5vdXRwdXQubGVuZ3RoLAogICAgICAgICAgICB0b2tlbnNJbmRleDogc3RhdGUudG9rZW5zLmxlbmd0aAogICAgICAgICAgfTsKICAgICAgICAgIGJyYWNlcy5wdXNoKG9wZW4pOwogICAgICAgICAgcHVzaChvcGVuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ9IikgewogICAgICAgICAgY29uc3QgYnJhY2UgPSBicmFjZXNbYnJhY2VzLmxlbmd0aCAtIDFdOwogICAgICAgICAgaWYgKG9wdHMubm9icmFjZSA9PT0gdHJ1ZSB8fCAhYnJhY2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogdmFsdWUgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgbGV0IG91dHB1dCA9ICIpIjsKICAgICAgICAgIGlmIChicmFjZS5kb3RzID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IGFyciA9IHRva2Vucy5zbGljZSgpOwogICAgICAgICAgICBjb25zdCByYW5nZSA9IFtdOwogICAgICAgICAgICBmb3IgKGxldCBpID0gYXJyLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICAgICAgdG9rZW5zLnBvcCgpOwogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSA9PT0gImJyYWNlIikgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChhcnJbaV0udHlwZSAhPT0gImRvdHMiKSB7CiAgICAgICAgICAgICAgICByYW5nZS51bnNoaWZ0KGFycltpXS52YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIG91dHB1dCA9IGV4cGFuZFJhbmdlKHJhbmdlLCBvcHRzKTsKICAgICAgICAgICAgc3RhdGUuYmFja3RyYWNrID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChicmFjZS5jb21tYSAhPT0gdHJ1ZSAmJiBicmFjZS5kb3RzICE9PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IG91dCA9IHN0YXRlLm91dHB1dC5zbGljZSgwLCBicmFjZS5vdXRwdXRJbmRleCk7CiAgICAgICAgICAgIGNvbnN0IHRva3MgPSBzdGF0ZS50b2tlbnMuc2xpY2UoYnJhY2UudG9rZW5zSW5kZXgpOwogICAgICAgICAgICBicmFjZS52YWx1ZSA9IGJyYWNlLm91dHB1dCA9ICJcXHsiOwogICAgICAgICAgICB2YWx1ZSA9IG91dHB1dCA9ICJcXH0iOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBvdXQ7CiAgICAgICAgICAgIGZvciAoY29uc3QgdCBvZiB0b2tzKSB7CiAgICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHQub3V0cHV0IHx8IHQudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAiYnJhY2UiLCB2YWx1ZSwgb3V0cHV0IH0pOwogICAgICAgICAgZGVjcmVtZW50KCJicmFjZXMiKTsKICAgICAgICAgIGJyYWNlcy5wb3AoKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICJ8IikgewogICAgICAgICAgaWYgKGV4dGdsb2JzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgZXh0Z2xvYnNbZXh0Z2xvYnMubGVuZ3RoIC0gMV0uY29uZGl0aW9ucysrOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiLCIpIHsKICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgIGNvbnN0IGJyYWNlID0gYnJhY2VzW2JyYWNlcy5sZW5ndGggLSAxXTsKICAgICAgICAgIGlmIChicmFjZSAmJiBzdGFja1tzdGFjay5sZW5ndGggLSAxXSA9PT0gImJyYWNlcyIpIHsKICAgICAgICAgICAgYnJhY2UuY29tbWEgPSB0cnVlOwogICAgICAgICAgICBvdXRwdXQgPSAifCI7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogImNvbW1hIiwgdmFsdWUsIG91dHB1dCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIvIikgewogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImRvdCIgJiYgc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0ICsgMSkgewogICAgICAgICAgICBzdGF0ZS5zdGFydCA9IHN0YXRlLmluZGV4ICsgMTsKICAgICAgICAgICAgc3RhdGUuY29uc3VtZWQgPSAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gIiI7CiAgICAgICAgICAgIHRva2Vucy5wb3AoKTsKICAgICAgICAgICAgcHJldiA9IGJvczsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInNsYXNoIiwgdmFsdWUsIG91dHB1dDogU0xBU0hfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIuIikgewogICAgICAgICAgaWYgKHN0YXRlLmJyYWNlcyA+IDAgJiYgcHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBpZiAocHJldi52YWx1ZSA9PT0gIi4iKSBwcmV2Lm91dHB1dCA9IERPVF9MSVRFUkFMOwogICAgICAgICAgICBjb25zdCBicmFjZSA9IGJyYWNlc1ticmFjZXMubGVuZ3RoIC0gMV07CiAgICAgICAgICAgIHByZXYudHlwZSA9ICJkb3RzIjsKICAgICAgICAgICAgcHJldi5vdXRwdXQgKz0gdmFsdWU7CiAgICAgICAgICAgIHByZXYudmFsdWUgKz0gdmFsdWU7CiAgICAgICAgICAgIGJyYWNlLmRvdHMgPSB0cnVlOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzdGF0ZS5icmFjZXMgKyBzdGF0ZS5wYXJlbnMgPT09IDAgJiYgcHJldi50eXBlICE9PSAiYm9zIiAmJiBwcmV2LnR5cGUgIT09ICJzbGFzaCIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUsIG91dHB1dDogRE9UX0xJVEVSQUwgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJkb3QiLCB2YWx1ZSwgb3V0cHV0OiBET1RfTElURVJBTCB9KTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICI/IikgewogICAgICAgICAgY29uc3QgaXNHcm91cCA9IHByZXYgJiYgcHJldi52YWx1ZSA9PT0gIigiOwogICAgICAgICAgaWYgKCFpc0dyb3VwICYmIG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicW1hcmsiLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHByZXYgJiYgcHJldi50eXBlID09PSAicGFyZW4iKSB7CiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBwZWVrKCk7CiAgICAgICAgICAgIGxldCBvdXRwdXQgPSB2YWx1ZTsKICAgICAgICAgICAgaWYgKHByZXYudmFsdWUgPT09ICIoIiAmJiAhL1shPTw6XS8udGVzdChuZXh0KSB8fCBuZXh0ID09PSAiPCIgJiYgIS88KFshPV18XHcrPikvLnRlc3QocmVtYWluaW5nKCkpKSB7CiAgICAgICAgICAgICAgb3V0cHV0ID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlLCBvdXRwdXQgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMuZG90ICE9PSB0cnVlICYmIChwcmV2LnR5cGUgPT09ICJzbGFzaCIgfHwgcHJldi50eXBlID09PSAiYm9zIikpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJxbWFyayIsIHZhbHVlLCBvdXRwdXQ6IFFNQVJLX05PX0RPVCB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBwdXNoKHsgdHlwZTogInFtYXJrIiwgdmFsdWUsIG91dHB1dDogUU1BUksgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiISIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIikgewogICAgICAgICAgICBpZiAocGVlaygyKSAhPT0gIj8iIHx8ICEvWyE9PDpdLy50ZXN0KHBlZWsoMykpKSB7CiAgICAgICAgICAgICAgZXh0Z2xvYk9wZW4oIm5lZ2F0ZSIsIHZhbHVlKTsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgaWYgKG9wdHMubm9uZWdhdGUgIT09IHRydWUgJiYgc3RhdGUuaW5kZXggPT09IDApIHsKICAgICAgICAgICAgbmVnYXRlKCk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUgPT09ICIrIikgewogICAgICAgICAgaWYgKG9wdHMubm9leHRnbG9iICE9PSB0cnVlICYmIHBlZWsoKSA9PT0gIigiICYmIHBlZWsoMikgIT09ICI/IikgewogICAgICAgICAgICBleHRnbG9iT3BlbigicGx1cyIsIHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJldiAmJiBwcmV2LnZhbHVlID09PSAiKCIgfHwgb3B0cy5yZWdleCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJwbHVzIiwgdmFsdWUsIG91dHB1dDogUExVU19MSVRFUkFMIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmV2ICYmIChwcmV2LnR5cGUgPT09ICJicmFja2V0IiB8fCBwcmV2LnR5cGUgPT09ICJwYXJlbiIgfHwgcHJldi50eXBlID09PSAiYnJhY2UiKSB8fCBzdGF0ZS5wYXJlbnMgPiAwKSB7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAicGx1cyIsIHZhbHVlOiBQTFVTX0xJVEVSQUwgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlID09PSAiQCIpIHsKICAgICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiBwZWVrKCkgPT09ICIoIiAmJiBwZWVrKDIpICE9PSAiPyIpIHsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJhdCIsIGV4dGdsb2I6IHRydWUsIHZhbHVlLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIHB1c2goeyB0eXBlOiAidGV4dCIsIHZhbHVlIH0pOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICh2YWx1ZSAhPT0gIioiKSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09ICIkIiB8fCB2YWx1ZSA9PT0gIl4iKSB7CiAgICAgICAgICAgIHZhbHVlID0gYFxcJHt2YWx1ZX1gOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgbWF0Y2ggPSBSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUy5leGVjKHJlbWFpbmluZygpKTsKICAgICAgICAgIGlmIChtYXRjaCkgewogICAgICAgICAgICB2YWx1ZSArPSBtYXRjaFswXTsKICAgICAgICAgICAgc3RhdGUuaW5kZXggKz0gbWF0Y2hbMF0ubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh7IHR5cGU6ICJ0ZXh0IiwgdmFsdWUgfSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImdsb2JzdGFyIiB8fCBwcmV2LnN0YXIgPT09IHRydWUpKSB7CiAgICAgICAgICBwcmV2LnR5cGUgPSAic3RhciI7CiAgICAgICAgICBwcmV2LnN0YXIgPSB0cnVlOwogICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgIHByZXYub3V0cHV0ID0gc3RhcjsKICAgICAgICAgIHN0YXRlLmJhY2t0cmFjayA9IHRydWU7CiAgICAgICAgICBzdGF0ZS5nbG9ic3RhciA9IHRydWU7CiAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBsZXQgcmVzdCA9IHJlbWFpbmluZygpOwogICAgICAgIGlmIChvcHRzLm5vZXh0Z2xvYiAhPT0gdHJ1ZSAmJiAvXlwoW14/XS8udGVzdChyZXN0KSkgewogICAgICAgICAgZXh0Z2xvYk9wZW4oInN0YXIiLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gInN0YXIiKSB7CiAgICAgICAgICBpZiAob3B0cy5ub2dsb2JzdGFyID09PSB0cnVlKSB7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHByaW9yID0gcHJldi5wcmV2OwogICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJpb3IucHJldjsKICAgICAgICAgIGNvbnN0IGlzU3RhcnQgPSBwcmlvci50eXBlID09PSAic2xhc2giIHx8IHByaW9yLnR5cGUgPT09ICJib3MiOwogICAgICAgICAgY29uc3QgYWZ0ZXJTdGFyID0gYmVmb3JlICYmIChiZWZvcmUudHlwZSA9PT0gInN0YXIiIHx8IGJlZm9yZS50eXBlID09PSAiZ2xvYnN0YXIiKTsKICAgICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUgJiYgKCFpc1N0YXJ0IHx8IHJlc3RbMF0gJiYgcmVzdFswXSAhPT0gIi8iKSkgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBpc0JyYWNlID0gc3RhdGUuYnJhY2VzID4gMCAmJiAocHJpb3IudHlwZSA9PT0gImNvbW1hIiB8fCBwcmlvci50eXBlID09PSAiYnJhY2UiKTsKICAgICAgICAgIGNvbnN0IGlzRXh0Z2xvYiA9IGV4dGdsb2JzLmxlbmd0aCAmJiAocHJpb3IudHlwZSA9PT0gInBpcGUiIHx8IHByaW9yLnR5cGUgPT09ICJwYXJlbiIpOwogICAgICAgICAgaWYgKCFpc1N0YXJ0ICYmIHByaW9yLnR5cGUgIT09ICJwYXJlbiIgJiYgIWlzQnJhY2UgJiYgIWlzRXh0Z2xvYikgewogICAgICAgICAgICBwdXNoKHsgdHlwZTogInN0YXIiLCB2YWx1ZSwgb3V0cHV0OiAiIiB9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICB3aGlsZSAocmVzdC5zbGljZSgwLCAzKSA9PT0gIi8qKiIpIHsKICAgICAgICAgICAgY29uc3QgYWZ0ZXIgPSBpbnB1dFtzdGF0ZS5pbmRleCArIDRdOwogICAgICAgICAgICBpZiAoYWZ0ZXIgJiYgYWZ0ZXIgIT09ICIvIikgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJlc3QgPSByZXN0LnNsaWNlKDMpOwogICAgICAgICAgICBjb25zdW1lKCIvKioiLCAzKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiBlb3MoKSkgewogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlKTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocHJpb3IudHlwZSA9PT0gInNsYXNoIiAmJiBwcmlvci5wcmV2LnR5cGUgIT09ICJib3MiICYmICFhZnRlclN0YXIgJiYgZW9zKCkpIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGdsb2JzdGFyKG9wdHMpICsgKG9wdHMuc3RyaWN0U2xhc2hlcyA/ICIpIiA6ICJ8JCkiKTsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIGNvbnN1bWUodmFsdWUpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAic2xhc2giICYmIHByaW9yLnByZXYudHlwZSAhPT0gImJvcyIgJiYgcmVzdFswXSA9PT0gIi8iKSB7CiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHJlc3RbMV0gIT09IHZvaWQgMCA/ICJ8JCIgOiAiIjsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC0ocHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQpLmxlbmd0aCk7CiAgICAgICAgICAgIHByaW9yLm91dHB1dCA9IGAoPzoke3ByaW9yLm91dHB1dH1gOwogICAgICAgICAgICBwcmV2LnR5cGUgPSAiZ2xvYnN0YXIiOwogICAgICAgICAgICBwcmV2Lm91dHB1dCA9IGAke2dsb2JzdGFyKG9wdHMpfSR7U0xBU0hfTElURVJBTH18JHtTTEFTSF9MSVRFUkFMfSR7ZW5kfSlgOwogICAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gcHJpb3Iub3V0cHV0ICsgcHJldi5vdXRwdXQ7CiAgICAgICAgICAgIHN0YXRlLmdsb2JzdGFyID0gdHJ1ZTsKICAgICAgICAgICAgY29uc3VtZSh2YWx1ZSArIGFkdmFuY2UoKSk7CiAgICAgICAgICAgIHB1c2goeyB0eXBlOiAic2xhc2giLCB2YWx1ZTogIi8iLCBvdXRwdXQ6ICIiIH0pOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwcmlvci50eXBlID09PSAiYm9zIiAmJiByZXN0WzBdID09PSAiLyIpIHsKICAgICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgICAgcHJldi52YWx1ZSArPSB2YWx1ZTsKICAgICAgICAgICAgcHJldi5vdXRwdXQgPSBgKD86Xnwke1NMQVNIX0xJVEVSQUx9fCR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSlgOwogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgPSBwcmV2Lm91dHB1dDsKICAgICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgICBjb25zdW1lKHZhbHVlICsgYWR2YW5jZSgpKTsKICAgICAgICAgICAgcHVzaCh7IHR5cGU6ICJzbGFzaCIsIHZhbHVlOiAiLyIsIG91dHB1dDogIiIgfSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3RhdGUub3V0cHV0ID0gc3RhdGUub3V0cHV0LnNsaWNlKDAsIC1wcmV2Lm91dHB1dC5sZW5ndGgpOwogICAgICAgICAgcHJldi50eXBlID0gImdsb2JzdGFyIjsKICAgICAgICAgIHByZXYub3V0cHV0ID0gZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBwcmV2LnZhbHVlICs9IHZhbHVlOwogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHByZXYub3V0cHV0OwogICAgICAgICAgc3RhdGUuZ2xvYnN0YXIgPSB0cnVlOwogICAgICAgICAgY29uc3VtZSh2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdG9rZW4gPSB7IHR5cGU6ICJzdGFyIiwgdmFsdWUsIG91dHB1dDogc3RhciB9OwogICAgICAgIGlmIChvcHRzLmJhc2ggPT09IHRydWUpIHsKICAgICAgICAgIHRva2VuLm91dHB1dCA9ICIuKj8iOwogICAgICAgICAgaWYgKHByZXYudHlwZSA9PT0gImJvcyIgfHwgcHJldi50eXBlID09PSAic2xhc2giKSB7CiAgICAgICAgICAgIHRva2VuLm91dHB1dCA9IG5vZG90ICsgdG9rZW4ub3V0cHV0OwogICAgICAgICAgfQogICAgICAgICAgcHVzaCh0b2tlbik7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZXYgJiYgKHByZXYudHlwZSA9PT0gImJyYWNrZXQiIHx8IHByZXYudHlwZSA9PT0gInBhcmVuIikgJiYgb3B0cy5yZWdleCA9PT0gdHJ1ZSkgewogICAgICAgICAgdG9rZW4ub3V0cHV0ID0gdmFsdWU7CiAgICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuaW5kZXggPT09IHN0YXRlLnN0YXJ0IHx8IHByZXYudHlwZSA9PT0gInNsYXNoIiB8fCBwcmV2LnR5cGUgPT09ICJkb3QiKSB7CiAgICAgICAgICBpZiAocHJldi50eXBlID09PSAiZG90IikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gTk9fRE9UX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RfU0xBU0g7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdHMuZG90ID09PSB0cnVlKSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBOT19ET1RTX1NMQVNIOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc3RhdGUub3V0cHV0ICs9IG5vZG90OwogICAgICAgICAgICBwcmV2Lm91dHB1dCArPSBub2RvdDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChwZWVrKCkgIT09ICIqIikgewogICAgICAgICAgICBzdGF0ZS5vdXRwdXQgKz0gT05FX0NIQVI7CiAgICAgICAgICAgIHByZXYub3V0cHV0ICs9IE9ORV9DSEFSOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBwdXNoKHRva2VuKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUuYnJhY2tldHMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJdIikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAiWyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2tldHMiKTsKICAgICAgfQogICAgICB3aGlsZSAoc3RhdGUucGFyZW5zID4gMCkgewogICAgICAgIGlmIChvcHRzLnN0cmljdEJyYWNrZXRzID09PSB0cnVlKSB0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoImNsb3NpbmciLCAiKSIpKTsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSB1dGlscy5lc2NhcGVMYXN0KHN0YXRlLm91dHB1dCwgIigiKTsKICAgICAgICBkZWNyZW1lbnQoInBhcmVucyIpOwogICAgICB9CiAgICAgIHdoaWxlIChzdGF0ZS5icmFjZXMgPiAwKSB7CiAgICAgICAgaWYgKG9wdHMuc3RyaWN0QnJhY2tldHMgPT09IHRydWUpIHRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcigiY2xvc2luZyIsICJ9IikpOwogICAgICAgIHN0YXRlLm91dHB1dCA9IHV0aWxzLmVzY2FwZUxhc3Qoc3RhdGUub3V0cHV0LCAieyIpOwogICAgICAgIGRlY3JlbWVudCgiYnJhY2VzIik7CiAgICAgIH0KICAgICAgaWYgKG9wdHMuc3RyaWN0U2xhc2hlcyAhPT0gdHJ1ZSAmJiAocHJldi50eXBlID09PSAic3RhciIgfHwgcHJldi50eXBlID09PSAiYnJhY2tldCIpKSB7CiAgICAgICAgcHVzaCh7IHR5cGU6ICJtYXliZV9zbGFzaCIsIHZhbHVlOiAiIiwgb3V0cHV0OiBgJHtTTEFTSF9MSVRFUkFMfT9gIH0pOwogICAgICB9CiAgICAgIGlmIChzdGF0ZS5iYWNrdHJhY2sgPT09IHRydWUpIHsKICAgICAgICBzdGF0ZS5vdXRwdXQgPSAiIjsKICAgICAgICBmb3IgKGNvbnN0IHRva2VuIG9mIHN0YXRlLnRva2VucykgewogICAgICAgICAgc3RhdGUub3V0cHV0ICs9IHRva2VuLm91dHB1dCAhPSBudWxsID8gdG9rZW4ub3V0cHV0IDogdG9rZW4udmFsdWU7CiAgICAgICAgICBpZiAodG9rZW4uc3VmZml4KSB7CiAgICAgICAgICAgIHN0YXRlLm91dHB1dCArPSB0b2tlbi5zdWZmaXg7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBzdGF0ZTsKICAgIH07CiAgICBwYXJzZS5mYXN0cGF0aHMgPSAoaW5wdXQsIG9wdGlvbnMpID0+IHsKICAgICAgY29uc3Qgb3B0cyA9IHsgLi4ub3B0aW9ucyB9OwogICAgICBjb25zdCBtYXggPSB0eXBlb2Ygb3B0cy5tYXhMZW5ndGggPT09ICJudW1iZXIiID8gTWF0aC5taW4oTUFYX0xFTkdUSCwgb3B0cy5tYXhMZW5ndGgpIDogTUFYX0xFTkdUSDsKICAgICAgY29uc3QgbGVuID0gaW5wdXQubGVuZ3RoOwogICAgICBpZiAobGVuID4gbWF4KSB7CiAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKGBJbnB1dCBsZW5ndGg6ICR7bGVufSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke21heH1gKTsKICAgICAgfQogICAgICBpbnB1dCA9IFJFUExBQ0VNRU5UU1tpbnB1dF0gfHwgaW5wdXQ7CiAgICAgIGNvbnN0IHsKICAgICAgICBET1RfTElURVJBTCwKICAgICAgICBTTEFTSF9MSVRFUkFMLAogICAgICAgIE9ORV9DSEFSLAogICAgICAgIERPVFNfU0xBU0gsCiAgICAgICAgTk9fRE9ULAogICAgICAgIE5PX0RPVFMsCiAgICAgICAgTk9fRE9UU19TTEFTSCwKICAgICAgICBTVEFSLAogICAgICAgIFNUQVJUX0FOQ0hPUgogICAgICB9ID0gY29uc3RhbnRzLmdsb2JDaGFycyhvcHRzLndpbmRvd3MpOwogICAgICBjb25zdCBub2RvdCA9IG9wdHMuZG90ID8gTk9fRE9UUyA6IE5PX0RPVDsKICAgICAgY29uc3Qgc2xhc2hEb3QgPSBvcHRzLmRvdCA/IE5PX0RPVFNfU0xBU0ggOiBOT19ET1Q7CiAgICAgIGNvbnN0IGNhcHR1cmUgPSBvcHRzLmNhcHR1cmUgPyAiIiA6ICI/OiI7CiAgICAgIGNvbnN0IHN0YXRlID0geyBuZWdhdGVkOiBmYWxzZSwgcHJlZml4OiAiIiB9OwogICAgICBsZXQgc3RhciA9IG9wdHMuYmFzaCA9PT0gdHJ1ZSA/ICIuKj8iIDogU1RBUjsKICAgICAgaWYgKG9wdHMuY2FwdHVyZSkgewogICAgICAgIHN0YXIgPSBgKCR7c3Rhcn0pYDsKICAgICAgfQogICAgICBjb25zdCBnbG9ic3RhciA9IChvcHRzMikgPT4gewogICAgICAgIGlmIChvcHRzMi5ub2dsb2JzdGFyID09PSB0cnVlKSByZXR1cm4gc3RhcjsKICAgICAgICByZXR1cm4gYCgke2NhcHR1cmV9KD86KD8hJHtTVEFSVF9BTkNIT1J9JHtvcHRzMi5kb3QgPyBET1RTX1NMQVNIIDogRE9UX0xJVEVSQUx9KS4pKj8pYDsKICAgICAgfTsKICAgICAgY29uc3QgY3JlYXRlID0gKHN0cjIpID0+IHsKICAgICAgICBzd2l0Y2ggKHN0cjIpIHsKICAgICAgICAgIGNhc2UgIioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBjYXNlICIqLioiOgogICAgICAgICAgICByZXR1cm4gYCR7bm9kb3R9JHtzdGFyfSR7RE9UX0xJVEVSQUx9JHtPTkVfQ0hBUn0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIiovKiI6CiAgICAgICAgICAgIHJldHVybiBgJHtub2RvdH0ke3N0YXJ9JHtTTEFTSF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzbGFzaERvdH0ke3N0YXJ9YDsKICAgICAgICAgIGNhc2UgIioqIjoKICAgICAgICAgICAgcmV0dXJuIG5vZG90ICsgZ2xvYnN0YXIob3B0cyk7CiAgICAgICAgICBjYXNlICIqKi8qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovKi4qIjoKICAgICAgICAgICAgcmV0dXJuIGAoPzoke25vZG90fSR7Z2xvYnN0YXIob3B0cyl9JHtTTEFTSF9MSVRFUkFMfSk/JHtzbGFzaERvdH0ke3N0YXJ9JHtET1RfTElURVJBTH0ke09ORV9DSEFSfSR7c3Rhcn1gOwogICAgICAgICAgY2FzZSAiKiovLioiOgogICAgICAgICAgICByZXR1cm4gYCg/OiR7bm9kb3R9JHtnbG9ic3RhcihvcHRzKX0ke1NMQVNIX0xJVEVSQUx9KT8ke0RPVF9MSVRFUkFMfSR7T05FX0NIQVJ9JHtzdGFyfWA7CiAgICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gL14oLio/KVwuKFx3KykkLy5leGVjKHN0cjIpOwogICAgICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHNvdXJjZTIgPSBjcmVhdGUobWF0Y2hbMV0pOwogICAgICAgICAgICBpZiAoIXNvdXJjZTIpIHJldHVybjsKICAgICAgICAgICAgcmV0dXJuIHNvdXJjZTIgKyBET1RfTElURVJBTCArIG1hdGNoWzJdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgY29uc3Qgb3V0cHV0ID0gdXRpbHMucmVtb3ZlUHJlZml4KGlucHV0LCBzdGF0ZSk7CiAgICAgIGxldCBzb3VyY2UgPSBjcmVhdGUob3V0cHV0KTsKICAgICAgaWYgKHNvdXJjZSAmJiBvcHRzLnN0cmljdFNsYXNoZXMgIT09IHRydWUpIHsKICAgICAgICBzb3VyY2UgKz0gYCR7U0xBU0hfTElURVJBTH0/YDsKICAgICAgfQogICAgICByZXR1cm4gc291cmNlOwogICAgfTsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IHBhcnNlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9waWNvbWF0Y2gtbnBtLTQuMC4yLWU5MzUxNmRkZjItMTAuemlwL25vZGVfbW9kdWxlcy9waWNvbWF0Y2gvbGliL3BpY29tYXRjaC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2ggPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvcGljb21hdGNoLW5wbS00LjAuMi1lOTM1MTZkZGYyLTEwLnppcC9ub2RlX21vZHVsZXMvcGljb21hdGNoL2xpYi9waWNvbWF0Y2guanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2NhbiA9IHJlcXVpcmVfc2NhbjIoKTsKICAgIHZhciBwYXJzZSA9IHJlcXVpcmVfcGFyc2UoKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICB2YXIgY29uc3RhbnRzID0gcmVxdWlyZV9jb25zdGFudHMoKTsKICAgIHZhciBpc09iamVjdDIgPSAodmFsKSA9PiB2YWwgJiYgdHlwZW9mIHZhbCA9PT0gIm9iamVjdCIgJiYgIUFycmF5LmlzQXJyYXkodmFsKTsKICAgIHZhciBwaWNvbWF0Y2ggPSAoZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgPT4gewogICAgICBpZiAoQXJyYXkuaXNBcnJheShnbG9iKSkgewogICAgICAgIGNvbnN0IGZucyA9IGdsb2IubWFwKChpbnB1dCkgPT4gcGljb21hdGNoKGlucHV0LCBvcHRpb25zLCByZXR1cm5TdGF0ZSkpOwogICAgICAgIGNvbnN0IGFycmF5TWF0Y2hlciA9IChzdHIyKSA9PiB7CiAgICAgICAgICBmb3IgKGNvbnN0IGlzTWF0Y2ggb2YgZm5zKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRlMiA9IGlzTWF0Y2goc3RyMik7CiAgICAgICAgICAgIGlmIChzdGF0ZTIpIHJldHVybiBzdGF0ZTI7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gYXJyYXlNYXRjaGVyOwogICAgICB9CiAgICAgIGNvbnN0IGlzU3RhdGUgPSBpc09iamVjdDIoZ2xvYikgJiYgZ2xvYi50b2tlbnMgJiYgZ2xvYi5pbnB1dDsKICAgICAgaWYgKGdsb2IgPT09ICIiIHx8IHR5cGVvZiBnbG9iICE9PSAic3RyaW5nIiAmJiAhaXNTdGF0ZSkgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHBvc2l4ID0gb3B0cy53aW5kb3dzOwogICAgICBjb25zdCByZWdleCA9IGlzU3RhdGUgPyBwaWNvbWF0Y2guY29tcGlsZVJlKGdsb2IsIG9wdGlvbnMpIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zLCBmYWxzZSwgdHJ1ZSk7CiAgICAgIGNvbnN0IHN0YXRlID0gcmVnZXguc3RhdGU7CiAgICAgIGRlbGV0ZSByZWdleC5zdGF0ZTsKICAgICAgbGV0IGlzSWdub3JlZCA9ICgpID0+IGZhbHNlOwogICAgICBpZiAob3B0cy5pZ25vcmUpIHsKICAgICAgICBjb25zdCBpZ25vcmVPcHRzID0geyAuLi5vcHRpb25zLCBpZ25vcmU6IG51bGwsIG9uTWF0Y2g6IG51bGwsIG9uUmVzdWx0OiBudWxsIH07CiAgICAgICAgaXNJZ25vcmVkID0gcGljb21hdGNoKG9wdHMuaWdub3JlLCBpZ25vcmVPcHRzLCByZXR1cm5TdGF0ZSk7CiAgICAgIH0KICAgICAgY29uc3QgbWF0Y2hlciA9IChpbnB1dCwgcmV0dXJuT2JqZWN0ID0gZmFsc2UpID0+IHsKICAgICAgICBjb25zdCB7IGlzTWF0Y2gsIG1hdGNoLCBvdXRwdXQgfSA9IHBpY29tYXRjaC50ZXN0KGlucHV0LCByZWdleCwgb3B0aW9ucywgeyBnbG9iLCBwb3NpeCB9KTsKICAgICAgICBjb25zdCByZXN1bHQgPSB7IGdsb2IsIHN0YXRlLCByZWdleCwgcG9zaXgsIGlucHV0LCBvdXRwdXQsIG1hdGNoLCBpc01hdGNoIH07CiAgICAgICAgaWYgKHR5cGVvZiBvcHRzLm9uUmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICBvcHRzLm9uUmVzdWx0KHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc01hdGNoID09PSBmYWxzZSkgewogICAgICAgICAgcmVzdWx0LmlzTWF0Y2ggPSBmYWxzZTsKICAgICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzSWdub3JlZChpbnB1dCkpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygb3B0cy5vbklnbm9yZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBvcHRzLm9uSWdub3JlKHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXN1bHQuaXNNYXRjaCA9IGZhbHNlOwogICAgICAgICAgcmV0dXJuIHJldHVybk9iamVjdCA/IHJlc3VsdCA6IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIG9wdHMub25NYXRjaCA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgb3B0cy5vbk1hdGNoKHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXR1cm5PYmplY3QgPyByZXN1bHQgOiB0cnVlOwogICAgICB9OwogICAgICBpZiAocmV0dXJuU3RhdGUpIHsKICAgICAgICBtYXRjaGVyLnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIG1hdGNoZXI7CiAgICB9OwogICAgcGljb21hdGNoLnRlc3QgPSAoaW5wdXQsIHJlZ2V4LCBvcHRpb25zLCB7IGdsb2IsIHBvc2l4IH0gPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAic3RyaW5nIikgewogICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGlucHV0IHRvIGJlIGEgc3RyaW5nIik7CiAgICAgIH0KICAgICAgaWYgKGlucHV0ID09PSAiIikgewogICAgICAgIHJldHVybiB7IGlzTWF0Y2g6IGZhbHNlLCBvdXRwdXQ6ICIiIH07CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IGZvcm1hdCA9IG9wdHMuZm9ybWF0IHx8IChwb3NpeCA/IHV0aWxzLnRvUG9zaXhTbGFzaGVzIDogbnVsbCk7CiAgICAgIGxldCBtYXRjaCA9IGlucHV0ID09PSBnbG9iOwogICAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggJiYgZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICBpZiAobWF0Y2ggPT09IGZhbHNlKSB7CiAgICAgICAgb3V0cHV0ID0gZm9ybWF0ID8gZm9ybWF0KGlucHV0KSA6IGlucHV0OwogICAgICAgIG1hdGNoID0gb3V0cHV0ID09PSBnbG9iOwogICAgICB9CiAgICAgIGlmIChtYXRjaCA9PT0gZmFsc2UgfHwgb3B0cy5jYXB0dXJlID09PSB0cnVlKSB7CiAgICAgICAgaWYgKG9wdHMubWF0Y2hCYXNlID09PSB0cnVlIHx8IG9wdHMuYmFzZW5hbWUgPT09IHRydWUpIHsKICAgICAgICAgIG1hdGNoID0gcGljb21hdGNoLm1hdGNoQmFzZShpbnB1dCwgcmVnZXgsIG9wdGlvbnMsIHBvc2l4KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbWF0Y2ggPSByZWdleC5leGVjKG91dHB1dCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiB7IGlzTWF0Y2g6IEJvb2xlYW4obWF0Y2gpLCBtYXRjaCwgb3V0cHV0IH07CiAgICB9OwogICAgcGljb21hdGNoLm1hdGNoQmFzZSA9IChpbnB1dCwgZ2xvYiwgb3B0aW9ucykgPT4gewogICAgICBjb25zdCByZWdleCA9IGdsb2IgaW5zdGFuY2VvZiBSZWdFeHAgPyBnbG9iIDogcGljb21hdGNoLm1ha2VSZShnbG9iLCBvcHRpb25zKTsKICAgICAgcmV0dXJuIHJlZ2V4LnRlc3QodXRpbHMuYmFzZW5hbWUoaW5wdXQpKTsKICAgIH07CiAgICBwaWNvbWF0Y2guaXNNYXRjaCA9IChzdHIyLCBwYXR0ZXJucywgb3B0aW9ucykgPT4gcGljb21hdGNoKHBhdHRlcm5zLCBvcHRpb25zKShzdHIyKTsKICAgIHBpY29tYXRjaC5wYXJzZSA9IChwYXR0ZXJuLCBvcHRpb25zKSA9PiB7CiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhdHRlcm4pKSByZXR1cm4gcGF0dGVybi5tYXAoKHApID0+IHBpY29tYXRjaC5wYXJzZShwLCBvcHRpb25zKSk7CiAgICAgIHJldHVybiBwYXJzZShwYXR0ZXJuLCB7IC4uLm9wdGlvbnMsIGZhc3RwYXRoczogZmFsc2UgfSk7CiAgICB9OwogICAgcGljb21hdGNoLnNjYW4gPSAoaW5wdXQsIG9wdGlvbnMpID0+IHNjYW4oaW5wdXQsIG9wdGlvbnMpOwogICAgcGljb21hdGNoLmNvbXBpbGVSZSA9IChzdGF0ZSwgb3B0aW9ucywgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKHJldHVybk91dHB1dCA9PT0gdHJ1ZSkgewogICAgICAgIHJldHVybiBzdGF0ZS5vdXRwdXQ7CiAgICAgIH0KICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgIGNvbnN0IHByZXBlbmQgPSBvcHRzLmNvbnRhaW5zID8gIiIgOiAiXiI7CiAgICAgIGNvbnN0IGFwcGVuZCA9IG9wdHMuY29udGFpbnMgPyAiIiA6ICIkIjsKICAgICAgbGV0IHNvdXJjZSA9IGAke3ByZXBlbmR9KD86JHtzdGF0ZS5vdXRwdXR9KSR7YXBwZW5kfWA7CiAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZS5uZWdhdGVkID09PSB0cnVlKSB7CiAgICAgICAgc291cmNlID0gYF4oPyEke3NvdXJjZX0pLiokYDsKICAgICAgfQogICAgICBjb25zdCByZWdleCA9IHBpY29tYXRjaC50b1JlZ2V4KHNvdXJjZSwgb3B0aW9ucyk7CiAgICAgIGlmIChyZXR1cm5TdGF0ZSA9PT0gdHJ1ZSkgewogICAgICAgIHJlZ2V4LnN0YXRlID0gc3RhdGU7CiAgICAgIH0KICAgICAgcmV0dXJuIHJlZ2V4OwogICAgfTsKICAgIHBpY29tYXRjaC5tYWtlUmUgPSAoaW5wdXQsIG9wdGlvbnMgPSB7fSwgcmV0dXJuT3V0cHV0ID0gZmFsc2UsIHJldHVyblN0YXRlID0gZmFsc2UpID0+IHsKICAgICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigiRXhwZWN0ZWQgYSBub24tZW1wdHkgc3RyaW5nIik7CiAgICAgIH0KICAgICAgbGV0IHBhcnNlZCA9IHsgbmVnYXRlZDogZmFsc2UsIGZhc3RwYXRoczogdHJ1ZSB9OwogICAgICBpZiAob3B0aW9ucy5mYXN0cGF0aHMgIT09IGZhbHNlICYmIChpbnB1dFswXSA9PT0gIi4iIHx8IGlucHV0WzBdID09PSAiKiIpKSB7CiAgICAgICAgcGFyc2VkLm91dHB1dCA9IHBhcnNlLmZhc3RwYXRocyhpbnB1dCwgb3B0aW9ucyk7CiAgICAgIH0KICAgICAgaWYgKCFwYXJzZWQub3V0cHV0KSB7CiAgICAgICAgcGFyc2VkID0gcGFyc2UoaW5wdXQsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIHJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHBhcnNlZCwgb3B0aW9ucywgcmV0dXJuT3V0cHV0LCByZXR1cm5TdGF0ZSk7CiAgICB9OwogICAgcGljb21hdGNoLnRvUmVnZXggPSAoc291cmNlLCBvcHRpb25zKSA9PiB7CiAgICAgIHRyeSB7CiAgICAgICAgY29uc3Qgb3B0cyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoc291cmNlLCBvcHRzLmZsYWdzIHx8IChvcHRzLm5vY2FzZSA/ICJpIiA6ICIiKSk7CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZGVidWcgPT09IHRydWUpIHRocm93IGVycjsKICAgICAgICByZXR1cm4gLyReLzsKICAgICAgfQogICAgfTsKICAgIHBpY29tYXRjaC5jb25zdGFudHMgPSBjb25zdGFudHM7CiAgICBtb2R1bGUyLmV4cG9ydHMgPSBwaWNvbWF0Y2g7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcwp2YXIgcmVxdWlyZV9waWNvbWF0Y2gyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3BpY29tYXRjaC1ucG0tNC4wLjItZTkzNTE2ZGRmMi0xMC56aXAvbm9kZV9tb2R1bGVzL3BpY29tYXRjaC9pbmRleC5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBwaWNvID0gcmVxdWlyZV9waWNvbWF0Y2goKTsKICAgIHZhciB1dGlscyA9IHJlcXVpcmVfdXRpbHM0KCk7CiAgICBmdW5jdGlvbiBwaWNvbWF0Y2goZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUgPSBmYWxzZSkgewogICAgICBpZiAob3B0aW9ucyAmJiAob3B0aW9ucy53aW5kb3dzID09PSBudWxsIHx8IG9wdGlvbnMud2luZG93cyA9PT0gdm9pZCAwKSkgewogICAgICAgIG9wdGlvbnMgPSB7IC4uLm9wdGlvbnMsIHdpbmRvd3M6IHV0aWxzLmlzV2luZG93cygpIH07CiAgICAgIH0KICAgICAgcmV0dXJuIHBpY28oZ2xvYiwgb3B0aW9ucywgcmV0dXJuU3RhdGUpOwogICAgfQogICAgT2JqZWN0LmFzc2lnbihwaWNvbWF0Y2gsIHBpY28pOwogICAgbW9kdWxlMi5leHBvcnRzID0gcGljb21hdGNoOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3BhdHRlcm4uanMKdmFyIHJlcXVpcmVfcGF0dGVybjIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5QYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gdm9pZCAwOwogICAgdmFyIHBpY29tYXRjaF8xID0gcmVxdWlyZV9waWNvbWF0Y2gyKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBQYXR0ZXJuTWF0Y2hpbmdIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9wYXR0ZXJucyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIGFkZFBhdHRlcm4ocGF0dGVybiwgcmVwbGFjZW1lbnRGbikgewogICAgICAgIGNvbnN0IHBhdHRlcm5zID0gQXJyYXkuaXNBcnJheShwYXR0ZXJuKSA/IHBhdHRlcm4gOiBbcGF0dGVybl07CiAgICAgICAgZm9yIChjb25zdCBnbG9iIG9mIHBhdHRlcm5zKSB7CiAgICAgICAgICBjb25zdCB7IG91dHB1dCB9ID0gKDAsIHBpY29tYXRjaF8xLnBhcnNlKShnbG9iKTsKICAgICAgICAgIHRoaXMuX3BhdHRlcm5zLnNldChuZXcgUmVnRXhwKGBeJHtvdXRwdXR9JGApLCByZXBsYWNlbWVudEZuKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgX3Jlc29sdmUocGF0aCkgewogICAgICAgIGxldCBuZXdQYXRoID0gcGF0aDsKICAgICAgICB0aGlzLl9wYXR0ZXJucy5mb3JFYWNoKChmbiwgcmUpID0+IHsKICAgICAgICAgIGlmIChyZS50ZXN0KHBhdGgpKSB7CiAgICAgICAgICAgIG5ld1BhdGggPSBmbihuZXdQYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gbmV3UGF0aDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlBhdHRlcm5NYXRjaGluZ0hvc3QgPSBQYXR0ZXJuTWF0Y2hpbmdIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3JlY29yZC5qcwp2YXIgcmVxdWlyZV9yZWNvcmQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZWNvcmQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbigpOwogICAgdmFyIG1lbW9yeV8xID0gcmVxdWlyZV9tZW1vcnkoKTsKICAgIHZhciBDb3JkSG9zdCA9IGNsYXNzIF9Db3JkSG9zdCBleHRlbmRzIG1lbW9yeV8xLlNpbXBsZU1lbW9yeUhvc3QgewogICAgICBfYmFjazsKICAgICAgX2ZpbGVzVG9DcmVhdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgX2ZpbGVzVG9EZWxldGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb092ZXJ3cml0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9iYWNrID0gX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGJhY2tlbmQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2JhY2s7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgc3luY2hyb25vdXM6IHRoaXMuX2JhY2suY2FwYWJpbGl0aWVzLnN5bmNocm9ub3VzCiAgICAgICAgfTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ3JlYXRlIGEgY29weSBvZiB0aGlzIGhvc3QsIGluY2x1ZGluZyBhbGwgYWN0aW9ucyBtYWRlLgogICAgICAgKiBAcmV0dXJucyB7Q29yZEhvc3R9IFRoZSBjYXJib24gY29weS4KICAgICAgICovCiAgICAgIGNsb25lKCkgewogICAgICAgIGNvbnN0IGRvbGx5ID0gbmV3IF9Db3JkSG9zdCh0aGlzLl9iYWNrKTsKICAgICAgICBkb2xseS5fY2FjaGUgPSBuZXcgTWFwKHRoaXMuX2NhY2hlKTsKICAgICAgICBkb2xseS5fZmlsZXNUb0NyZWF0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0NyZWF0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9SZW5hbWUgPSBuZXcgTWFwKHRoaXMuX2ZpbGVzVG9SZW5hbWUpOwogICAgICAgIGRvbGx5Ll9maWxlc1RvUmVuYW1lUmV2ZXJ0ID0gbmV3IE1hcCh0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0KTsKICAgICAgICBkb2xseS5fZmlsZXNUb0RlbGV0ZSA9IG5ldyBTZXQodGhpcy5fZmlsZXNUb0RlbGV0ZSk7CiAgICAgICAgZG9sbHkuX2ZpbGVzVG9PdmVyd3JpdGUgPSBuZXcgU2V0KHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUpOwogICAgICAgIHJldHVybiBkb2xseTsKICAgICAgfQogICAgICAvKioKICAgICAgICogQ29tbWl0IHRoZSBjaGFuZ2VzIHJlY29yZGVkIHRvIGEgSG9zdC4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBob3N0IGRvZXMgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUKICAgICAgICogYXMgdGhlIGhvc3QgdGhhdCB3YXMgdXNlZCBmb3IgYmFja2VuZCAoY291bGQgYmUgdGhlIHNhbWUgaG9zdCkuCiAgICAgICAqIEBwYXJhbSBob3N0IFRoZSBob3N0IHRvIGNyZWF0ZS9kZWxldGUvcmVuYW1lL292ZXJ3cml0ZSBmaWxlcyB0by4KICAgICAgICogQHBhcmFtIGZvcmNlIFdoZXRoZXIgdG8gc2tpcCBleGlzdGVuY2UgY2hlY2tzIHdoZW4gY3JlYXRpbmcvb3ZlcndyaXRpbmcuIFRoaXMgaXMKICAgICAgICogICBmYXN0ZXIgYnV0IG1pZ2h0IGxlYWQgdG8gaW5jb3JyZWN0IHN0YXRlcy4gQmVjYXVzZSBIb3N0cyBuYXRpdmVseSBkb24ndCBzdXBwb3J0IGNyZWF0aW9uCiAgICAgICAqICAgdmVyc3VzIG92ZXJ3cml0aW5nIChpdCdzIG9ubHkgd3JpdGluZyksIHdlIGNoZWNrIGZvciBleGlzdGVuY2UgYmVmb3JlIGNvbXBsZXRpbmcgYSByZXF1ZXN0LgogICAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgY29tcGxldGVzIHdoZW4gZG9uZSwgb3IgZXJyb3IgaWYgYW4gZXJyb3Igb2NjdXJlZC4KICAgICAgICovCiAgICAgIGNvbW1pdChob3N0LCBmb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkodGhpcy5yZWNvcmRzKCkpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChyZWNvcmQpID0+IHsKICAgICAgICAgIHN3aXRjaCAocmVjb3JkLmtpbmQpIHsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5kZWxldGUocmVjb3JkLnBhdGgpOwogICAgICAgICAgICBjYXNlICJyZW5hbWUiOgogICAgICAgICAgICAgIHJldHVybiBob3N0LnJlbmFtZShyZWNvcmQuZnJvbSwgcmVjb3JkLnRvKTsKICAgICAgICAgICAgY2FzZSAiY3JlYXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmIChleGlzdHMgJiYgIWZvcmNlKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHJlY29yZC5wYXRoKSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXR1cm4gaG9zdC53cml0ZShyZWNvcmQucGF0aCwgcmVjb3JkLmNvbnRlbnQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICByZXR1cm4gaG9zdC5leGlzdHMocmVjb3JkLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGlmICghZXhpc3RzICYmICFmb3JjZSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQucGF0aCkpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGUocmVjb3JkLnBhdGgsIHJlY29yZC5jb250ZW50KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEucmVkdWNlKSgoKSA9PiB7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHJlY29yZHMoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIC4uLlsuLi50aGlzLl9maWxlc1RvRGVsZXRlLnZhbHVlcygpXS5tYXAoKHBhdGgpID0+ICh7CiAgICAgICAgICAgIGtpbmQ6ICJkZWxldGUiLAogICAgICAgICAgICBwYXRoCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb1JlbmFtZS5lbnRyaWVzKCldLm1hcCgoW2Zyb20sIHRvXSkgPT4gKHsKICAgICAgICAgICAga2luZDogInJlbmFtZSIsCiAgICAgICAgICAgIGZyb20sCiAgICAgICAgICAgIHRvCiAgICAgICAgICB9KSksCiAgICAgICAgICAuLi5bLi4udGhpcy5fZmlsZXNUb0NyZWF0ZS52YWx1ZXMoKV0ubWFwKChwYXRoKSA9PiAoewogICAgICAgICAgICBraW5kOiAiY3JlYXRlIiwKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogdGhpcy5fcmVhZChwYXRoKQogICAgICAgICAgfSkpLAogICAgICAgICAgLi4uWy4uLnRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUudmFsdWVzKCldLm1hcCgocGF0aCkgPT4gKHsKICAgICAgICAgICAga2luZDogIm92ZXJ3cml0ZSIsCiAgICAgICAgICAgIHBhdGgsCiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3JlYWQocGF0aCkKICAgICAgICAgIH0pKQogICAgICAgIF07CiAgICAgIH0KICAgICAgLyoqCiAgICAgICAqIFNwZWNpYWxpemVkIHZlcnNpb24gb2Yge0BsaW5rIENvcmRIb3N0I3dyaXRlfSB3aGljaCBmb3JjZXMgdGhlIGNyZWF0aW9uIG9mIGEgZmlsZSB3aGV0aGVyIGl0CiAgICAgICAqIGV4aXN0cyBvciBub3QuCiAgICAgICAqIEBwYXJhbSB7fSBwYXRoCiAgICAgICAqIEBwYXJhbSB7RmlsZUJ1ZmZlcn0gY29udGVudAogICAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx2b2lkPn0KICAgICAgICovCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgaWYgKHN1cGVyLl9leGlzdHMocGF0aCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuc3dpdGNoTWFwKSgoaXNEaXIpID0+IHsKICAgICAgICAgIGlmIChpc0RpcikgewogICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0aGlzLmV4aXN0cyhwYXRoKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5zd2l0Y2hNYXApKChleGlzdHMpID0+IHsKICAgICAgICAgIGlmICghZXhpc3RzKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQocGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIud3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gdGhpcy5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgaWYgKGV4aXN0cykgewogICAgICAgICAgICBpZiAodGhpcy53aWxsUmVuYW1lKHBhdGgpIHx8IHRoaXMud2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhwYXRoKSkgewogICAgICAgICAgcmV0dXJuIHN1cGVyLnJlYWQocGF0aCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZXhpc3RzKHBhdGgpKSB7CiAgICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChwYXRoKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvbnN0IG1heWJlT3JpZ2luID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQocGF0aCk7CiAgICAgICAgICAgIGlmIChtYXliZU9yaWdpbikgewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWVSZXZlcnQuZGVsZXRlKHBhdGgpOwogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZGVsZXRlKG1heWJlT3JpZ2luKTsKICAgICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChtYXliZU9yaWdpbik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLlVua25vd25FeGNlcHRpb24oYFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4gUGF0aDogJHtKU09OLnN0cmluZ2lmeShwYXRoKX0uYCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHBhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fYmFjay5leGlzdHMocGF0aCkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGV4aXN0cykgPT4gewogICAgICAgICAgICBpZiAoZXhpc3RzKSB7CiAgICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5hZGQocGF0aCk7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCkpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5leGlzdHModG8pLCB0aGlzLmV4aXN0cyhmcm9tKSkucGlwZSgoMCwgcnhqc18xLnRvQXJyYXkpKCksICgwLCByeGpzXzEuc3dpdGNoTWFwKSgoW2V4aXN0VG8sIGV4aXN0RnJvbV0pID0+IHsKICAgICAgICAgIGlmICghZXhpc3RGcm9tKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLnRocm93RXJyb3IpKG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGZyb20pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChmcm9tID09PSB0bykgewogICAgICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGV4aXN0VG8pIHsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEudGhyb3dFcnJvcikobmV3IGV4Y2VwdGlvbl8xLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24odG8pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0NyZWF0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmhhcyhmcm9tKSkgewogICAgICAgICAgICB0aGlzLl9maWxlc1RvT3ZlcndyaXRlLmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnJlbmFtZShmcm9tLCB0byksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgoeCkgPT4gewogICAgICAgICAgICAgIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuYWRkKHRvKTsKICAgICAgICAgICAgICB4LmNvbXBsZXRlKCk7CiAgICAgICAgICAgIH0pKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyh0bykpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb0RlbGV0ZS5kZWxldGUodG8pOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvRGVsZXRlLmFkZChmcm9tKTsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb092ZXJ3cml0ZS5hZGQodG8pOwogICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkKGZyb20pLnBpcGUoKDAsIHJ4anNfMS5tYXApKChjb250ZW50KSA9PiB0aGlzLl93cml0ZSh0bywgY29udGVudCkpKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG1heWJlVG8xID0gdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5nZXQoZnJvbSk7CiAgICAgICAgICBpZiAobWF5YmVUbzEpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5kZWxldGUobWF5YmVUbzEpOwogICAgICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lUmV2ZXJ0LmRlbGV0ZShmcm9tKTsKICAgICAgICAgICAgZnJvbSA9IG1heWJlVG8xOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZS5zZXQoZnJvbSwgdG8pOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1JlbmFtZVJldmVydC5zZXQodG8sIGZyb20pOwogICAgICAgICAgaWYgKHRoaXMuX2V4aXN0cyhmcm9tKSkgewogICAgICAgICAgICByZXR1cm4gc3VwZXIucmVuYW1lKGZyb20sIHRvKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLl9iYWNrLnJlYWQoZnJvbSkucGlwZSgoMCwgcnhqc18xLnN3aXRjaE1hcCkoKGNvbnRlbnQpID0+IHN1cGVyLndyaXRlKHRvLCBjb250ZW50KSkpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICBsaXN0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKHN1cGVyLmxpc3QocGF0aCksIHRoaXMuX2JhY2subGlzdChwYXRoKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKGxpc3QsIGN1cnIpID0+IHsKICAgICAgICAgIGN1cnIuZm9yRWFjaCgoZWxlbSkgPT4gbGlzdC5hZGQoZWxlbSkpOwogICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgICAgfSwgLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKSksICgwLCByeGpzXzEubWFwKSgoc2V0MikgPT4gWy4uLnNldDJdKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gKDAsIHJ4anNfMS5vZikodHJ1ZSkgOiB0aGlzLndpbGxEZWxldGUocGF0aCkgfHwgdGhpcy53aWxsUmVuYW1lKHBhdGgpID8gKDAsIHJ4anNfMS5vZikoZmFsc2UpIDogdGhpcy5fYmFjay5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5pc0RpcmVjdG9yeShwYXRoKSA6IHRoaXMuX2JhY2suaXNEaXJlY3RvcnkocGF0aCk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZXhpc3RzKHBhdGgpID8gc3VwZXIuaXNGaWxlKHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKGZhbHNlKSA6IHRoaXMuX2JhY2suaXNGaWxlKHBhdGgpOwogICAgICB9CiAgICAgIHN0YXQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9leGlzdHMocGF0aCkgPyBzdXBlci5zdGF0KHBhdGgpIDogdGhpcy53aWxsRGVsZXRlKHBhdGgpIHx8IHRoaXMud2lsbFJlbmFtZShwYXRoKSA/ICgwLCByeGpzXzEub2YpKG51bGwpIDogdGhpcy5fYmFjay5zdGF0KHBhdGgpOwogICAgICB9CiAgICAgIHdhdGNoKHBhdGgsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICB3aWxsQ3JlYXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbE92ZXJ3cml0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9PdmVyd3JpdGUuaGFzKHBhdGgpOwogICAgICB9CiAgICAgIHdpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9maWxlc1RvRGVsZXRlLmhhcyhwYXRoKTsKICAgICAgfQogICAgICB3aWxsUmVuYW1lKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZmlsZXNUb1JlbmFtZS5oYXMocGF0aCk7CiAgICAgIH0KICAgICAgd2lsbFJlbmFtZVRvKHBhdGgsIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGVzVG9SZW5hbWUuZ2V0KHBhdGgpID09PSB0bzsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvcmRIb3N0ID0gQ29yZEhvc3Q7CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcwp2YXIgcmVxdWlyZV9zYWZlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2FmZVJlYWRvbmx5SG9zdCA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIFNhZmVSZWFkb25seUhvc3QgPSBjbGFzcyB7CiAgICAgIF9kZWxlZ2F0ZTsKICAgICAgY29uc3RydWN0b3IoX2RlbGVnYXRlKSB7CiAgICAgICAgdGhpcy5fZGVsZWdhdGUgPSBfZGVsZWdhdGU7CiAgICAgIH0KICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuY2FwYWJpbGl0aWVzOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5saXN0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShbXSkpKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgaXNEaXJlY3RvcnkocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZS5pc0RpcmVjdG9yeShwYXRoKS5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikoZmFsc2UpKSk7CiAgICAgIH0KICAgICAgaXNGaWxlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGUuaXNGaWxlKHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5jYXRjaEVycm9yKSgoKSA9PiAoMCwgcnhqc18xLm9mKShmYWxzZSkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0cy4KICAgICAgc3RhdChwYXRoKSB7CiAgICAgICAgY29uc3QgbWF5YmVTdGF0ID0gdGhpcy5fZGVsZWdhdGUuc3RhdChwYXRoKTsKICAgICAgICByZXR1cm4gbWF5YmVTdGF0ICYmIG1heWJlU3RhdC5waXBlKCgwLCByeGpzXzEuY2F0Y2hFcnJvcikoKCkgPT4gKDAsIHJ4anNfMS5vZikobnVsbCkpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNhZmVSZWFkb25seUhvc3QgPSBTYWZlUmVhZG9ubHlIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9zY29wZWQuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSB2b2lkIDA7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoKCk7CiAgICB2YXIgcmVzb2x2ZXJfMSA9IHJlcXVpcmVfcmVzb2x2ZXIoKTsKICAgIHZhciBTY29wZWRIb3N0ID0gY2xhc3MgZXh0ZW5kcyByZXNvbHZlcl8xLlJlc29sdmVySG9zdCB7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihkZWxlZ2F0ZSwgX3Jvb3QgPSBwYXRoXzEuTm9ybWFsaXplZFJvb3QpIHsKICAgICAgICBzdXBlcihkZWxlZ2F0ZSk7CiAgICAgICAgdGhpcy5fcm9vdCA9IF9yb290OwogICAgICB9CiAgICAgIF9yZXNvbHZlKHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHBhdGhfMS5qb2luKSh0aGlzLl9yb290LCBwYXRoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjb3BlZEhvc3QgPSBTY29wZWRIb3N0OwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzCnZhciByZXF1aXJlX2hvc3QgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudGVzdCA9IHZvaWQgMDsKICAgIHZhciB0ZXN0ID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfdGVzdCgpKTsKICAgIGV4cG9ydHMyLnRlc3QgPSB0ZXN0OwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYWxpYXMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYnVmZmVyMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jcmVhdGUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW1wdHkyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfbWVtb3J5KCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3BhdHRlcm4yKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3JlY29yZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zYWZlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Njb3BlZCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9zeW5jKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3Jlc29sdmVyKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaW5kZXguanMKdmFyIHJlcXVpcmVfdmlydHVhbF9mcyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX3NldE1vZHVsZURlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX3NldE1vZHVsZURlZmF1bHQgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCB2KSB7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCAiZGVmYXVsdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgdmFsdWU6IHYgfSk7CiAgICB9IDogZnVuY3Rpb24obywgdikgewogICAgICBvWyJkZWZhdWx0Il0gPSB2OwogICAgfSk7CiAgICB2YXIgX19pbXBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19pbXBvcnRTdGFyIHx8IC8qIEBfX1BVUkVfXyAqLyBmdW5jdGlvbigpIHsKICAgICAgdmFyIG93bktleXMgPSBmdW5jdGlvbihvKSB7CiAgICAgICAgb3duS2V5cyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzIHx8IGZ1bmN0aW9uKG8yKSB7CiAgICAgICAgICB2YXIgYXIgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGsgaW4gbzIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobzIsIGspKSBhclthci5sZW5ndGhdID0gazsKICAgICAgICAgIHJldHVybiBhcjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBvd25LZXlzKG8pOwogICAgICB9OwogICAgICByZXR1cm4gZnVuY3Rpb24obW9kKSB7CiAgICAgICAgaWYgKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgcmV0dXJuIG1vZDsKICAgICAgICB2YXIgcmVzdWx0ID0ge307CiAgICAgICAgaWYgKG1vZCAhPSBudWxsKSB7CiAgICAgICAgICBmb3IgKHZhciBrID0gb3duS2V5cyhtb2QpLCBpID0gMDsgaSA8IGsubGVuZ3RoOyBpKyspIGlmIChrW2ldICE9PSAiZGVmYXVsdCIpIF9fY3JlYXRlQmluZGluZyhyZXN1bHQsIG1vZCwga1tpXSk7CiAgICAgICAgfQogICAgICAgIF9fc2V0TW9kdWxlRGVmYXVsdChyZXN1bHQsIG1vZCk7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfTsKICAgIH0oKTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIudmlydHVhbEZzID0gdm9pZCAwOwogICAgdmFyIHZpcnR1YWxGcyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2hvc3QoKSk7CiAgICBleHBvcnRzMi52aXJ0dWFsRnMgPSB2aXJ0dWFsRnM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9wYXRoKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3QyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IGNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZVdvcmtzcGFjZUhvc3QoaG9zdCkgewogICAgICBjb25zdCB3b3Jrc3BhY2VIb3N0ID0gewogICAgICAgIGFzeW5jIHJlYWRGaWxlKHBhdGgpIHsKICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QucmVhZCgoMCwgdmlydHVhbF9mc18xLm5vcm1hbGl6ZSkocGF0aCkpKTsKICAgICAgICAgIHJldHVybiB2aXJ0dWFsX2ZzXzEudmlydHVhbEZzLmZpbGVCdWZmZXJUb1N0cmluZyhkYXRhKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIHdyaXRlRmlsZShwYXRoLCBkYXRhKSB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShob3N0LndyaXRlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSwgdmlydHVhbF9mc18xLnZpcnR1YWxGcy5zdHJpbmdUb0ZpbGVCdWZmZXIoZGF0YSkpKTsKICAgICAgICB9LAogICAgICAgIGFzeW5jIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNEaXJlY3RvcnkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKSk7CiAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgYXN5bmMgaXNGaWxlKHBhdGgpIHsKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCAoMCwgcnhqc18xLmxhc3RWYWx1ZUZyb20pKGhvc3QuaXNGaWxlKCgwLCB2aXJ0dWFsX2ZzXzEubm9ybWFsaXplKShwYXRoKSkpOwogICAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH07CiAgICAgIHJldHVybiB3b3Jrc3BhY2VIb3N0OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvc2Nhbm5lci5qcwp2YXIgcmVxdWlyZV9zY2FubmVyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zY2FubmVyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gdm9pZCAwOwogICAgICBmdW5jdGlvbiBjcmVhdGVTY2FubmVyKHRleHQsIGlnbm9yZVRyaXZpYSA9IGZhbHNlKSB7CiAgICAgICAgY29uc3QgbGVuID0gdGV4dC5sZW5ndGg7CiAgICAgICAgbGV0IHBvcyA9IDAsIHZhbHVlID0gIiIsIHRva2VuT2Zmc2V0ID0gMCwgdG9rZW4gPSAxNiwgbGluZU51bWJlciA9IDAsIGxpbmVTdGFydE9mZnNldCA9IDAsIHRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0ID0gMCwgc2NhbkVycm9yID0gMDsKICAgICAgICBmdW5jdGlvbiBzY2FuSGV4RGlnaXRzKGNvdW50LCBleGFjdCkgewogICAgICAgICAgbGV0IGRpZ2l0cyA9IDA7CiAgICAgICAgICBsZXQgdmFsdWUyID0gMDsKICAgICAgICAgIHdoaWxlIChkaWdpdHMgPCBjb3VudCB8fCAhZXhhY3QpIHsKICAgICAgICAgICAgbGV0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA+PSA0OCAmJiBjaCA8PSA1NykgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA0ODsKICAgICAgICAgICAgfSBlbHNlIGlmIChjaCA+PSA2NSAmJiBjaCA8PSA3MCkgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA2NSArIDEwOwogICAgICAgICAgICB9IGVsc2UgaWYgKGNoID49IDk3ICYmIGNoIDw9IDEwMikgewogICAgICAgICAgICAgIHZhbHVlMiA9IHZhbHVlMiAqIDE2ICsgY2ggLSA5NyArIDEwOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICBkaWdpdHMrKzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChkaWdpdHMgPCBjb3VudCkgewogICAgICAgICAgICB2YWx1ZTIgPSAtMTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB2YWx1ZTI7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNldFBvc2l0aW9uKG5ld1Bvc2l0aW9uKSB7CiAgICAgICAgICBwb3MgPSBuZXdQb3NpdGlvbjsKICAgICAgICAgIHZhbHVlID0gIiI7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IDA7CiAgICAgICAgICB0b2tlbiA9IDE2OwogICAgICAgICAgc2NhbkVycm9yID0gMDsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk51bWJlcigpIHsKICAgICAgICAgIGxldCBzdGFydCA9IHBvczsKICAgICAgICAgIGlmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDgpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDYpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiBpc0RpZ2l0KHRleHQuY2hhckNvZGVBdChwb3MpKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kID0gcG9zOwogICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmICh0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNjkgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDEwMSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIGlmIChwb3MgPCB0ZXh0Lmxlbmd0aCAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gNDMgfHwgdGV4dC5jaGFyQ29kZUF0KHBvcykgPT09IDQ1KSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHRleHQubGVuZ3RoICYmIGlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgZW5kID0gcG9zOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHNjYW5FcnJvciA9IDM7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0ZXh0LnN1YnN0cmluZyhzdGFydCwgZW5kKTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2NhblN0cmluZygpIHsKICAgICAgICAgIGxldCByZXN1bHQgPSAiIiwgc3RhcnQgPSBwb3M7CiAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAyOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGNoID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgIGlmIChjaCA9PT0gMzQpIHsKICAgICAgICAgICAgICByZXN1bHQgKz0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoID09PSA5MikgewogICAgICAgICAgICAgIHJlc3VsdCArPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID49IGxlbikgewogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBjaDIgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKyspOwogICAgICAgICAgICAgIHN3aXRjaCAoY2gyKSB7CiAgICAgICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gJyInOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgOTI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXFwiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgNDc6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiLyI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSA5ODoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcYiI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMDI6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiXGYiOwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgMTEwOgogICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIlxuIjsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlIDExNDoKICAgICAgICAgICAgICAgICAgcmVzdWx0ICs9ICJcciI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTY6CiAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSAiCSI7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAxMTc6CiAgICAgICAgICAgICAgICAgIGNvbnN0IGNoMyA9IHNjYW5IZXhEaWdpdHMoNCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgIGlmIChjaDMgPj0gMCkgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoMyk7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc2NhbkVycm9yID0gNDsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgIHNjYW5FcnJvciA9IDU7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHN0YXJ0ID0gcG9zOwogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaCA+PSAwICYmIGNoIDw9IDMxKSB7CiAgICAgICAgICAgICAgaWYgKGlzTGluZUJyZWFrKGNoKSkgewogICAgICAgICAgICAgICAgcmVzdWx0ICs9IHRleHQuc3Vic3RyaW5nKHN0YXJ0LCBwb3MpOwogICAgICAgICAgICAgICAgc2NhbkVycm9yID0gMjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSA2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBwb3MrKzsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHNjYW5OZXh0KCkgewogICAgICAgICAgdmFsdWUgPSAiIjsKICAgICAgICAgIHNjYW5FcnJvciA9IDA7CiAgICAgICAgICB0b2tlbk9mZnNldCA9IHBvczsKICAgICAgICAgIGxpbmVTdGFydE9mZnNldCA9IGxpbmVOdW1iZXI7CiAgICAgICAgICBwcmV2VG9rZW5MaW5lU3RhcnRPZmZzZXQgPSB0b2tlbkxpbmVTdGFydE9mZnNldDsKICAgICAgICAgIGlmIChwb3MgPj0gbGVuKSB7CiAgICAgICAgICAgIHRva2VuT2Zmc2V0ID0gbGVuOwogICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNzsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICBpZiAoaXNXaGl0ZVNwYWNlKGNvZGUpKSB7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIGNvZGUgPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgfSB3aGlsZSAoaXNXaGl0ZVNwYWNlKGNvZGUpKTsKICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMTU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgIHZhbHVlICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoY29kZSk7CiAgICAgICAgICAgIGlmIChjb2RlID09PSAxMyAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zKSA9PT0gMTApIHsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICB2YWx1ZSArPSAiXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgdG9rZW5MaW5lU3RhcnRPZmZzZXQgPSBwb3M7CiAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE0OwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIC8vIHRva2VuczogW117fTosCiAgICAgICAgICAgIGNhc2UgMTIzOgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDI7CiAgICAgICAgICAgIGNhc2UgOTE6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gMzsKICAgICAgICAgICAgY2FzZSA5MzoKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA0OwogICAgICAgICAgICBjYXNlIDU4OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDY7CiAgICAgICAgICAgIGNhc2UgNDQ6CiAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNTsKICAgICAgICAgICAgLy8gc3RyaW5ncwogICAgICAgICAgICBjYXNlIDM0OgogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHZhbHVlID0gc2NhblN0cmluZygpOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEwOwogICAgICAgICAgICAvLyBjb21tZW50cwogICAgICAgICAgICBjYXNlIDQ3OgogICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gcG9zIC0gMTsKICAgICAgICAgICAgICBpZiAodGV4dC5jaGFyQ29kZUF0KHBvcyArIDEpID09PSA0NykgewogICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICB3aGlsZSAocG9zIDwgbGVuKSB7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayh0ZXh0LmNoYXJDb2RlQXQocG9zKSkpIHsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHZhbHVlID0gdGV4dC5zdWJzdHJpbmcoc3RhcnQsIHBvcyk7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRleHQuY2hhckNvZGVBdChwb3MgKyAxKSA9PT0gNDIpIHsKICAgICAgICAgICAgICAgIHBvcyArPSAyOwogICAgICAgICAgICAgICAgY29uc3Qgc2FmZUxlbmd0aCA9IGxlbiAtIDE7CiAgICAgICAgICAgICAgICBsZXQgY29tbWVudENsb3NlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgd2hpbGUgKHBvcyA8IHNhZmVMZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgY29uc3QgY2ggPSB0ZXh0LmNoYXJDb2RlQXQocG9zKTsKICAgICAgICAgICAgICAgICAgaWYgKGNoID09PSA0MiAmJiB0ZXh0LmNoYXJDb2RlQXQocG9zICsgMSkgPT09IDQ3KSB7CiAgICAgICAgICAgICAgICAgICAgcG9zICs9IDI7CiAgICAgICAgICAgICAgICAgICAgY29tbWVudENsb3NlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgIGlmIChpc0xpbmVCcmVhayhjaCkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY2ggPT09IDEzICYmIHRleHQuY2hhckNvZGVBdChwb3MpID09PSAxMCkgewogICAgICAgICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXIrKzsKICAgICAgICAgICAgICAgICAgICB0b2tlbkxpbmVTdGFydE9mZnNldCA9IHBvczsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjb21tZW50Q2xvc2VkKSB7CiAgICAgICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgICAgICBzY2FuRXJyb3IgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmFsdWUgPSB0ZXh0LnN1YnN0cmluZyhzdGFydCwgcG9zKTsKICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDEzOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAvLyBudW1iZXJzCiAgICAgICAgICAgIGNhc2UgNDU6CiAgICAgICAgICAgICAgdmFsdWUgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShjb2RlKTsKICAgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgICAgICBpZiAocG9zID09PSBsZW4gfHwgIWlzRGlnaXQodGV4dC5jaGFyQ29kZUF0KHBvcykpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxNjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGZvdW5kIGEgbWludXMsIGZvbGxvd2VkIGJ5IGEgbnVtYmVyIHNvCiAgICAgICAgICAgIC8vIHdlIGZhbGwgdGhyb3VnaCB0byBwcm9jZWVkIHdpdGggc2Nhbm5pbmcKICAgICAgICAgICAgLy8gbnVtYmVycwogICAgICAgICAgICBjYXNlIDQ4OgogICAgICAgICAgICBjYXNlIDQ5OgogICAgICAgICAgICBjYXNlIDUwOgogICAgICAgICAgICBjYXNlIDUxOgogICAgICAgICAgICBjYXNlIDUyOgogICAgICAgICAgICBjYXNlIDUzOgogICAgICAgICAgICBjYXNlIDU0OgogICAgICAgICAgICBjYXNlIDU1OgogICAgICAgICAgICBjYXNlIDU2OgogICAgICAgICAgICBjYXNlIDU3OgogICAgICAgICAgICAgIHZhbHVlICs9IHNjYW5OdW1iZXIoKTsKICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSAxMTsKICAgICAgICAgICAgLy8gbGl0ZXJhbHMgYW5kIHVua25vd24gc3ltYm9scwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHdoaWxlIChwb3MgPCBsZW4gJiYgaXNVbmtub3duQ29udGVudENoYXJhY3Rlcihjb2RlKSkgewogICAgICAgICAgICAgICAgcG9zKys7CiAgICAgICAgICAgICAgICBjb2RlID0gdGV4dC5jaGFyQ29kZUF0KHBvcyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0b2tlbk9mZnNldCAhPT0gcG9zKSB7CiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRleHQuc3Vic3RyaW5nKHRva2VuT2Zmc2V0LCBwb3MpOwogICAgICAgICAgICAgICAgc3dpdGNoICh2YWx1ZSkgewogICAgICAgICAgICAgICAgICBjYXNlICJ0cnVlIjoKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4gPSA4OwogICAgICAgICAgICAgICAgICBjYXNlICJmYWxzZSI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gOTsKICAgICAgICAgICAgICAgICAgY2FzZSAibnVsbCI6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuID0gNzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YWx1ZSArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNvZGUpOwogICAgICAgICAgICAgIHBvcysrOwogICAgICAgICAgICAgIHJldHVybiB0b2tlbiA9IDE2OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBpc1Vua25vd25Db250ZW50Q2hhcmFjdGVyKGNvZGUpIHsKICAgICAgICAgIGlmIChpc1doaXRlU3BhY2UoY29kZSkgfHwgaXNMaW5lQnJlYWsoY29kZSkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChjb2RlKSB7CiAgICAgICAgICAgIGNhc2UgMTI1OgogICAgICAgICAgICBjYXNlIDkzOgogICAgICAgICAgICBjYXNlIDEyMzoKICAgICAgICAgICAgY2FzZSA5MToKICAgICAgICAgICAgY2FzZSAzNDoKICAgICAgICAgICAgY2FzZSA1ODoKICAgICAgICAgICAgY2FzZSA0NDoKICAgICAgICAgICAgY2FzZSA0NzoKICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHROb25Ucml2aWEoKSB7CiAgICAgICAgICBsZXQgcmVzdWx0OwogICAgICAgICAgZG8gewogICAgICAgICAgICByZXN1bHQgPSBzY2FuTmV4dCgpOwogICAgICAgICAgfSB3aGlsZSAocmVzdWx0ID49IDEyICYmIHJlc3VsdCA8PSAxNSk7CiAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgc2V0UG9zaXRpb24sCiAgICAgICAgICBnZXRQb3NpdGlvbjogKCkgPT4gcG9zLAogICAgICAgICAgc2NhbjogaWdub3JlVHJpdmlhID8gc2Nhbk5leHROb25Ucml2aWEgOiBzY2FuTmV4dCwKICAgICAgICAgIGdldFRva2VuOiAoKSA9PiB0b2tlbiwKICAgICAgICAgIGdldFRva2VuVmFsdWU6ICgpID0+IHZhbHVlLAogICAgICAgICAgZ2V0VG9rZW5PZmZzZXQ6ICgpID0+IHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5MZW5ndGg6ICgpID0+IHBvcyAtIHRva2VuT2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5TdGFydExpbmU6ICgpID0+IGxpbmVTdGFydE9mZnNldCwKICAgICAgICAgIGdldFRva2VuU3RhcnRDaGFyYWN0ZXI6ICgpID0+IHRva2VuT2Zmc2V0IC0gcHJldlRva2VuTGluZVN0YXJ0T2Zmc2V0LAogICAgICAgICAgZ2V0VG9rZW5FcnJvcjogKCkgPT4gc2NhbkVycm9yCiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5jcmVhdGVTY2FubmVyID0gY3JlYXRlU2Nhbm5lcjsKICAgICAgZnVuY3Rpb24gaXNXaGl0ZVNwYWNlKGNoKSB7CiAgICAgICAgcmV0dXJuIGNoID09PSAzMiB8fCBjaCA9PT0gOTsKICAgICAgfQogICAgICBmdW5jdGlvbiBpc0xpbmVCcmVhayhjaCkgewogICAgICAgIHJldHVybiBjaCA9PT0gMTAgfHwgY2ggPT09IDEzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRGlnaXQoY2gpIHsKICAgICAgICByZXR1cm4gY2ggPj0gNDggJiYgY2ggPD0gNTc7CiAgICAgIH0KICAgICAgdmFyIENoYXJhY3RlckNvZGVzOwogICAgICAoZnVuY3Rpb24oQ2hhcmFjdGVyQ29kZXMyKSB7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibGluZUZlZWQiXSA9IDEwXSA9ICJsaW5lRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY2FycmlhZ2VSZXR1cm4iXSA9IDEzXSA9ICJjYXJyaWFnZVJldHVybiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic3BhY2UiXSA9IDMyXSA9ICJzcGFjZSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzAiXSA9IDQ4XSA9ICJfMCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzEiXSA9IDQ5XSA9ICJfMSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzIiXSA9IDUwXSA9ICJfMiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzMiXSA9IDUxXSA9ICJfMyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzQiXSA9IDUyXSA9ICJfNCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzUiXSA9IDUzXSA9ICJfNSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzYiXSA9IDU0XSA9ICJfNiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzciXSA9IDU1XSA9ICJfNyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzgiXSA9IDU2XSA9ICJfOCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiXzkiXSA9IDU3XSA9ICJfOSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYSJdID0gOTddID0gImEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImIiXSA9IDk4XSA9ICJiIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjIl0gPSA5OV0gPSAiYyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZCJdID0gMTAwXSA9ICJkIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJlIl0gPSAxMDFdID0gImUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImYiXSA9IDEwMl0gPSAiZiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZyJdID0gMTAzXSA9ICJnIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJoIl0gPSAxMDRdID0gImgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImkiXSA9IDEwNV0gPSAiaSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiaiJdID0gMTA2XSA9ICJqIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJrIl0gPSAxMDddID0gImsiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImwiXSA9IDEwOF0gPSAibCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsibSJdID0gMTA5XSA9ICJtIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJuIl0gPSAxMTBdID0gIm4iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIm8iXSA9IDExMV0gPSAibyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicCJdID0gMTEyXSA9ICJwIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJxIl0gPSAxMTNdID0gInEiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInIiXSA9IDExNF0gPSAiciI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsicyJdID0gMTE1XSA9ICJzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ0Il0gPSAxMTZdID0gInQiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbInUiXSA9IDExN10gPSAidSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidiJdID0gMTE4XSA9ICJ2IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ3Il0gPSAxMTldID0gInciOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIngiXSA9IDEyMF0gPSAieCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsieSJdID0gMTIxXSA9ICJ5IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJ6Il0gPSAxMjJdID0gInoiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkEiXSA9IDY1XSA9ICJBIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJCIl0gPSA2Nl0gPSAiQiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiQyJdID0gNjddID0gIkMiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkQiXSA9IDY4XSA9ICJEIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJFIl0gPSA2OV0gPSAiRSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiRiJdID0gNzBdID0gIkYiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkciXSA9IDcxXSA9ICJHIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJIIl0gPSA3Ml0gPSAiSCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiSSJdID0gNzNdID0gIkkiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIkoiXSA9IDc0XSA9ICJKIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJLIl0gPSA3NV0gPSAiSyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTCJdID0gNzZdID0gIkwiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIk0iXSA9IDc3XSA9ICJNIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJOIl0gPSA3OF0gPSAiTiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiTyJdID0gNzldID0gIk8iOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlAiXSA9IDgwXSA9ICJQIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJRIl0gPSA4MV0gPSAiUSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiUiJdID0gODJdID0gIlIiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlMiXSA9IDgzXSA9ICJTIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJUIl0gPSA4NF0gPSAiVCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiVSJdID0gODVdID0gIlUiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlYiXSA9IDg2XSA9ICJWIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJXIl0gPSA4N10gPSAiVyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiWCJdID0gODhdID0gIlgiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbIlkiXSA9IDg5XSA9ICJZIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJaIl0gPSA5MF0gPSAiWiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYXN0ZXJpc2siXSA9IDQyXSA9ICJhc3RlcmlzayI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiYmFja3NsYXNoIl0gPSA5Ml0gPSAiYmFja3NsYXNoIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJjbG9zZUJyYWNlIl0gPSAxMjVdID0gImNsb3NlQnJhY2UiOwogICAgICAgIENoYXJhY3RlckNvZGVzMltDaGFyYWN0ZXJDb2RlczJbImNsb3NlQnJhY2tldCJdID0gOTNdID0gImNsb3NlQnJhY2tldCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29sb24iXSA9IDU4XSA9ICJjb2xvbiI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiY29tbWEiXSA9IDQ0XSA9ICJjb21tYSI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZG90Il0gPSA0Nl0gPSAiZG90IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJkb3VibGVRdW90ZSJdID0gMzRdID0gImRvdWJsZVF1b3RlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJtaW51cyJdID0gNDVdID0gIm1pbnVzIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2UiXSA9IDEyM10gPSAib3BlbkJyYWNlIjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJvcGVuQnJhY2tldCJdID0gOTFdID0gIm9wZW5CcmFja2V0IjsKICAgICAgICBDaGFyYWN0ZXJDb2RlczJbQ2hhcmFjdGVyQ29kZXMyWyJwbHVzIl0gPSA0M10gPSAicGx1cyI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsic2xhc2giXSA9IDQ3XSA9ICJzbGFzaCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsiZm9ybUZlZWQiXSA9IDEyXSA9ICJmb3JtRmVlZCI7CiAgICAgICAgQ2hhcmFjdGVyQ29kZXMyW0NoYXJhY3RlckNvZGVzMlsidGFiIl0gPSA5XSA9ICJ0YWIiOwogICAgICB9KShDaGFyYWN0ZXJDb2RlcyB8fCAoQ2hhcmFjdGVyQ29kZXMgPSB7fSkpOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9zdHJpbmctaW50ZXJuLmpzCnZhciByZXF1aXJlX3N0cmluZ19pbnRlcm4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL3N0cmluZy1pbnRlcm4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyJdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLnN1cHBvcnRlZEVvbHMgPSBleHBvcnRzMy5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlcyA9IGV4cG9ydHMzLmNhY2hlZFNwYWNlcyA9IHZvaWQgMDsKICAgICAgZXhwb3J0czMuY2FjaGVkU3BhY2VzID0gbmV3IEFycmF5KDIwKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICByZXR1cm4gIiAiLnJlcGVhdChpbmRleCk7CiAgICAgIH0pOwogICAgICBjb25zdCBtYXhDYWNoZWRWYWx1ZXMgPSAyMDA7CiAgICAgIGV4cG9ydHMzLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzID0gewogICAgICAgICIgIjogewogICAgICAgICAgIlxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcciI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyIiArICIgIi5yZXBlYXQoaW5kZXgpOwogICAgICAgICAgfSksCiAgICAgICAgICAiXHJcbiI6IG5ldyBBcnJheShtYXhDYWNoZWRWYWx1ZXMpLmZpbGwoMCkubWFwKChfLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gIlxyXG4iICsgIiAiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KQogICAgICAgIH0sCiAgICAgICAgIgkiOiB7CiAgICAgICAgICAiXG4iOiBuZXcgQXJyYXkobWF4Q2FjaGVkVmFsdWVzKS5maWxsKDApLm1hcCgoXywgaW5kZXgpID0+IHsKICAgICAgICAgICAgcmV0dXJuICJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pLAogICAgICAgICAgIlxyIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHIiICsgIgkiLnJlcGVhdChpbmRleCk7CiAgICAgICAgICB9KSwKICAgICAgICAgICJcclxuIjogbmV3IEFycmF5KG1heENhY2hlZFZhbHVlcykuZmlsbCgwKS5tYXAoKF8sIGluZGV4KSA9PiB7CiAgICAgICAgICAgIHJldHVybiAiXHJcbiIgKyAiCSIucmVwZWF0KGluZGV4KTsKICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICB9OwogICAgICBleHBvcnRzMy5zdXBwb3J0ZWRFb2xzID0gWyJcbiIsICJcciIsICJcclxuIl07CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvanNvbmMtcGFyc2VyLXBhdGNoLWQyMGY2NzE4MzYtMTAuemlwL25vZGVfbW9kdWxlcy9qc29uYy1wYXJzZXIvbGliL3VtZC9pbXBsL2Zvcm1hdC5qcwp2YXIgcmVxdWlyZV9mb3JtYXQzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9mb3JtYXQuanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgc2Nhbm5lcl8xID0gcmVxdWlyZV9zY2FubmVyKCk7CiAgICB2YXIgc3RyaW5nX2ludGVybl8xID0gcmVxdWlyZV9zdHJpbmdfaW50ZXJuKCk7CiAgICAoZnVuY3Rpb24oZmFjdG9yeSkgewogICAgICBpZiAodHlwZW9mIG1vZHVsZTIgPT09ICJvYmplY3QiICYmIHR5cGVvZiBtb2R1bGUyLmV4cG9ydHMgPT09ICJvYmplY3QiKSB7CiAgICAgICAgdmFyIHYgPSBmYWN0b3J5KHJlcXVpcmUsIGV4cG9ydHMyKTsKICAgICAgICBpZiAodiAhPT0gdm9pZCAwKSBtb2R1bGUyLmV4cG9ydHMgPSB2OwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCkgewogICAgICAgIGRlZmluZShbInJlcXVpcmUiLCAiZXhwb3J0cyIsICIuL3NjYW5uZXIiLCAiLi9zdHJpbmctaW50ZXJuIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuaXNFT0wgPSBleHBvcnRzMy5mb3JtYXQgPSB2b2lkIDA7CiAgICAgIGZ1bmN0aW9uIGZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKSB7CiAgICAgICAgbGV0IGluaXRpYWxJbmRlbnRMZXZlbDsKICAgICAgICBsZXQgZm9ybWF0VGV4dDsKICAgICAgICBsZXQgZm9ybWF0VGV4dFN0YXJ0OwogICAgICAgIGxldCByYW5nZVN0YXJ0OwogICAgICAgIGxldCByYW5nZUVuZDsKICAgICAgICBpZiAocmFuZ2UpIHsKICAgICAgICAgIHJhbmdlU3RhcnQgPSByYW5nZS5vZmZzZXQ7CiAgICAgICAgICByYW5nZUVuZCA9IHJhbmdlU3RhcnQgKyByYW5nZS5sZW5ndGg7CiAgICAgICAgICBmb3JtYXRUZXh0U3RhcnQgPSByYW5nZVN0YXJ0OwogICAgICAgICAgd2hpbGUgKGZvcm1hdFRleHRTdGFydCA+IDAgJiYgIWlzRU9MKGRvY3VtZW50VGV4dCwgZm9ybWF0VGV4dFN0YXJ0IC0gMSkpIHsKICAgICAgICAgICAgZm9ybWF0VGV4dFN0YXJ0LS07CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgZW5kT2Zmc2V0ID0gcmFuZ2VFbmQ7CiAgICAgICAgICB3aGlsZSAoZW5kT2Zmc2V0IDwgZG9jdW1lbnRUZXh0Lmxlbmd0aCAmJiAhaXNFT0woZG9jdW1lbnRUZXh0LCBlbmRPZmZzZXQpKSB7CiAgICAgICAgICAgIGVuZE9mZnNldCsrOwogICAgICAgICAgfQogICAgICAgICAgZm9ybWF0VGV4dCA9IGRvY3VtZW50VGV4dC5zdWJzdHJpbmcoZm9ybWF0VGV4dFN0YXJ0LCBlbmRPZmZzZXQpOwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gY29tcHV0ZUluZGVudExldmVsKGZvcm1hdFRleHQsIG9wdGlvbnMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBmb3JtYXRUZXh0ID0gZG9jdW1lbnRUZXh0OwogICAgICAgICAgaW5pdGlhbEluZGVudExldmVsID0gMDsKICAgICAgICAgIGZvcm1hdFRleHRTdGFydCA9IDA7CiAgICAgICAgICByYW5nZVN0YXJ0ID0gMDsKICAgICAgICAgIHJhbmdlRW5kID0gZG9jdW1lbnRUZXh0Lmxlbmd0aDsKICAgICAgICB9CiAgICAgICAgY29uc3QgZW9sID0gZ2V0RU9MKG9wdGlvbnMsIGRvY3VtZW50VGV4dCk7CiAgICAgICAgY29uc3QgZW9sRmFzdFBhdGhTdXBwb3J0ZWQgPSBzdHJpbmdfaW50ZXJuXzEuc3VwcG9ydGVkRW9scy5pbmNsdWRlcyhlb2wpOwogICAgICAgIGxldCBudW1iZXJMaW5lQnJlYWtzID0gMDsKICAgICAgICBsZXQgaW5kZW50TGV2ZWwgPSAwOwogICAgICAgIGxldCBpbmRlbnRWYWx1ZTsKICAgICAgICBpZiAob3B0aW9ucy5pbnNlcnRTcGFjZXMpIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1tvcHRpb25zLnRhYlNpemUgfHwgNF0gPz8gcmVwZWF0MihzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdLCBvcHRpb25zLnRhYlNpemUgfHwgNCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGluZGVudFZhbHVlID0gIgkiOwogICAgICAgIH0KICAgICAgICBjb25zdCBpbmRlbnRUeXBlID0gaW5kZW50VmFsdWUgPT09ICIJIiA/ICIJIiA6ICIgIjsKICAgICAgICBsZXQgc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikoZm9ybWF0VGV4dCwgZmFsc2UpOwogICAgICAgIGxldCBoYXNFcnJvciA9IGZhbHNlOwogICAgICAgIGZ1bmN0aW9uIG5ld0xpbmVzQW5kSW5kZW50KCkgewogICAgICAgICAgaWYgKG51bWJlckxpbmVCcmVha3MgPiAxKSB7CiAgICAgICAgICAgIHJldHVybiByZXBlYXQyKGVvbCwgbnVtYmVyTGluZUJyZWFrcykgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBhbW91bnRPZlNwYWNlcyA9IGluZGVudFZhbHVlLmxlbmd0aCAqIChpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICBpZiAoIWVvbEZhc3RQYXRoU3VwcG9ydGVkIHx8IGFtb3VudE9mU3BhY2VzID4gc3RyaW5nX2ludGVybl8xLmNhY2hlZEJyZWFrTGluZXNXaXRoU3BhY2VzW2luZGVudFR5cGVdW2VvbF0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHJldHVybiBlb2wgKyByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwgKyBpbmRlbnRMZXZlbCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoYW1vdW50T2ZTcGFjZXMgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gZW9sOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHN0cmluZ19pbnRlcm5fMS5jYWNoZWRCcmVha0xpbmVzV2l0aFNwYWNlc1tpbmRlbnRUeXBlXVtlb2xdW2Ftb3VudE9mU3BhY2VzXTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gc2Nhbk5leHQoKSB7CiAgICAgICAgICBsZXQgdG9rZW4gPSBzY2FubmVyLnNjYW4oKTsKICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgPSAwOwogICAgICAgICAgd2hpbGUgKHRva2VuID09PSAxNSB8fCB0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgaWYgKHRva2VuID09PSAxNCAmJiBvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIG51bWJlckxpbmVCcmVha3MgKz0gMTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbiA9PT0gMTQpIHsKICAgICAgICAgICAgICBudW1iZXJMaW5lQnJlYWtzID0gMTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0b2tlbiA9IHNjYW5uZXIuc2NhbigpOwogICAgICAgICAgfQogICAgICAgICAgaGFzRXJyb3IgPSB0b2tlbiA9PT0gMTYgfHwgc2Nhbm5lci5nZXRUb2tlbkVycm9yKCkgIT09IDA7CiAgICAgICAgICByZXR1cm4gdG9rZW47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRPcGVyYXRpb25zID0gW107CiAgICAgICAgZnVuY3Rpb24gYWRkRWRpdCh0ZXh0LCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0KSB7CiAgICAgICAgICBpZiAoIWhhc0Vycm9yICYmICghcmFuZ2UgfHwgc3RhcnRPZmZzZXQgPCByYW5nZUVuZCAmJiBlbmRPZmZzZXQgPiByYW5nZVN0YXJ0KSAmJiBkb2N1bWVudFRleHQuc3Vic3RyaW5nKHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQpICE9PSB0ZXh0KSB7CiAgICAgICAgICAgIGVkaXRPcGVyYXRpb25zLnB1c2goewogICAgICAgICAgICAgIG9mZnNldDogc3RhcnRPZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoOiBlbmRPZmZzZXQgLSBzdGFydE9mZnNldCwKICAgICAgICAgICAgICBjb250ZW50OiB0ZXh0CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsZXQgZmlyc3RUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICBhZGRFZGl0KHJlcGVhdDIoZW9sLCBudW1iZXJMaW5lQnJlYWtzKSwgMCwgMCk7CiAgICAgICAgfQogICAgICAgIGlmIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGxldCBpbml0aWFsSW5kZW50ID0gaW5kZW50VmFsdWUubGVuZ3RoICogaW5pdGlhbEluZGVudExldmVsIDwgMjAgJiYgb3B0aW9ucy5pbnNlcnRTcGFjZXMgPyBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzW2luZGVudFZhbHVlLmxlbmd0aCAqIGluaXRpYWxJbmRlbnRMZXZlbF0gOiByZXBlYXQyKGluZGVudFZhbHVlLCBpbml0aWFsSW5kZW50TGV2ZWwpOwogICAgICAgICAgYWRkRWRpdChpbml0aWFsSW5kZW50LCBmb3JtYXRUZXh0U3RhcnQsIGZpcnN0VG9rZW5TdGFydCk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChmaXJzdFRva2VuICE9PSAxNykgewogICAgICAgICAgbGV0IGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICBsZXQgc2Vjb25kVG9rZW4gPSBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IHJlcGxhY2VDb250ZW50ID0gIiI7CiAgICAgICAgICBsZXQgbmVlZHNMaW5lQnJlYWsgPSBmYWxzZTsKICAgICAgICAgIHdoaWxlIChudW1iZXJMaW5lQnJlYWtzID09PSAwICYmIChzZWNvbmRUb2tlbiA9PT0gMTIgfHwgc2Vjb25kVG9rZW4gPT09IDEzKSkgewogICAgICAgICAgICBsZXQgY29tbWVudFRva2VuU3RhcnQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIGFkZEVkaXQoCiAgICAgICAgICAgICAgc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXSwKICAgICAgICAgICAgICBmaXJzdFRva2VuRW5kLAogICAgICAgICAgICAgIGNvbW1lbnRUb2tlblN0YXJ0CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZpcnN0VG9rZW5FbmQgPSBzY2FubmVyLmdldFRva2VuT2Zmc2V0KCkgKyBzY2FubmVyLmdldFRva2VuTGVuZ3RoKCkgKyBmb3JtYXRUZXh0U3RhcnQ7CiAgICAgICAgICAgIG5lZWRzTGluZUJyZWFrID0gc2Vjb25kVG9rZW4gPT09IDEyOwogICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5lZWRzTGluZUJyZWFrID8gbmV3TGluZXNBbmRJbmRlbnQoKSA6ICIiOwogICAgICAgICAgICBzZWNvbmRUb2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoc2Vjb25kVG9rZW4gPT09IDIpIHsKICAgICAgICAgICAgaWYgKGZpcnN0VG9rZW4gIT09IDEpIHsKICAgICAgICAgICAgICBpbmRlbnRMZXZlbC0tOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMgJiYgZmlyc3RUb2tlbiAhPT0gMSkgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgfSBlbHNlIGlmIChvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gc3RyaW5nX2ludGVybl8xLmNhY2hlZFNwYWNlc1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChzZWNvbmRUb2tlbiA9PT0gNCkgewogICAgICAgICAgICBpZiAoZmlyc3RUb2tlbiAhPT0gMykgewogICAgICAgICAgICAgIGluZGVudExldmVsLS07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcyAmJiBmaXJzdFRva2VuICE9PSAzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMua2VlcExpbmVzKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzd2l0Y2ggKGZpcnN0VG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICAgICAgaW5kZW50TGV2ZWwrKzsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCB8fCAhb3B0aW9ucy5rZWVwTGluZXMpIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA1OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwIHx8ICFvcHRpb25zLmtlZXBMaW5lcykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IHN0cmluZ19pbnRlcm5fMS5jYWNoZWRTcGFjZXNbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBpZiAob3B0aW9ucy5rZWVwTGluZXMgJiYgbnVtYmVyTGluZUJyZWFrcyA+IDApIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmICghbmVlZHNMaW5lQnJlYWspIHsKICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLmtlZXBMaW5lcyAmJiBudW1iZXJMaW5lQnJlYWtzID4gMCkgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuID09PSA2ICYmICFuZWVkc0xpbmVCcmVhaykgewogICAgICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9ICIiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIGNhc2UgODoKICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gbmV3TGluZXNBbmRJbmRlbnQoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIGlmICgoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykgJiYgIW5lZWRzTGluZUJyZWFrKSB7CiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdOwogICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNlY29uZFRva2VuICE9PSA1ICYmIHNlY29uZFRva2VuICE9PSAxNykgewogICAgICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhc0Vycm9yID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChudW1iZXJMaW5lQnJlYWtzID4gMCAmJiAoc2Vjb25kVG9rZW4gPT09IDEyIHx8IHNlY29uZFRva2VuID09PSAxMykpIHsKICAgICAgICAgICAgICByZXBsYWNlQ29udGVudCA9IG5ld0xpbmVzQW5kSW5kZW50KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZWNvbmRUb2tlbiA9PT0gMTcpIHsKICAgICAgICAgICAgaWYgKG9wdGlvbnMua2VlcExpbmVzICYmIG51bWJlckxpbmVCcmVha3MgPiAwKSB7CiAgICAgICAgICAgICAgcmVwbGFjZUNvbnRlbnQgPSBuZXdMaW5lc0FuZEluZGVudCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJlcGxhY2VDb250ZW50ID0gb3B0aW9ucy5pbnNlcnRGaW5hbE5ld2xpbmUgPyBlb2wgOiAiIjsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2Vjb25kVG9rZW5TdGFydCA9IHNjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSArIGZvcm1hdFRleHRTdGFydDsKICAgICAgICAgIGFkZEVkaXQocmVwbGFjZUNvbnRlbnQsIGZpcnN0VG9rZW5FbmQsIHNlY29uZFRva2VuU3RhcnQpOwogICAgICAgICAgZmlyc3RUb2tlbiA9IHNlY29uZFRva2VuOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZWRpdE9wZXJhdGlvbnM7CiAgICAgIH0KICAgICAgZXhwb3J0czMuZm9ybWF0ID0gZm9ybWF0OwogICAgICBmdW5jdGlvbiByZXBlYXQyKHMsIGNvdW50KSB7CiAgICAgICAgbGV0IHJlc3VsdCA9ICIiOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICAgcmVzdWx0ICs9IHM7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gY29tcHV0ZUluZGVudExldmVsKGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBsZXQgaSA9IDA7CiAgICAgICAgbGV0IG5DaGFycyA9IDA7CiAgICAgICAgY29uc3QgdGFiU2l6ZSA9IG9wdGlvbnMudGFiU2l6ZSB8fCA0OwogICAgICAgIHdoaWxlIChpIDwgY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgIGxldCBjaCA9IGNvbnRlbnQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSBzdHJpbmdfaW50ZXJuXzEuY2FjaGVkU3BhY2VzWzFdKSB7CiAgICAgICAgICAgIG5DaGFycysrOwogICAgICAgICAgfSBlbHNlIGlmIChjaCA9PT0gIgkiKSB7CiAgICAgICAgICAgIG5DaGFycyArPSB0YWJTaXplOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpKys7CiAgICAgICAgfQogICAgICAgIHJldHVybiBNYXRoLmZsb29yKG5DaGFycyAvIHRhYlNpemUpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGdldEVPTChvcHRpb25zLCB0ZXh0KSB7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBjb25zdCBjaCA9IHRleHQuY2hhckF0KGkpOwogICAgICAgICAgaWYgKGNoID09PSAiXHIiKSB7CiAgICAgICAgICAgIGlmIChpICsgMSA8IHRleHQubGVuZ3RoICYmIHRleHQuY2hhckF0KGkgKyAxKSA9PT0gIlxuIikgewogICAgICAgICAgICAgIHJldHVybiAiXHJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJcciI7CiAgICAgICAgICB9IGVsc2UgaWYgKGNoID09PSAiXG4iKSB7CiAgICAgICAgICAgIHJldHVybiAiXG4iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gb3B0aW9ucyAmJiBvcHRpb25zLmVvbCB8fCAiXG4iOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGlzRU9MKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiIuaW5kZXhPZih0ZXh0LmNoYXJBdChvZmZzZXQpKSAhPT0gLTE7CiAgICAgIH0KICAgICAgZXhwb3J0czMuaXNFT0wgPSBpc0VPTDsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzCnZhciByZXF1aXJlX3BhcnNlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvcGFyc2VyLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIHNjYW5uZXJfMSA9IHJlcXVpcmVfc2Nhbm5lcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9zY2FubmVyIl0sIGZhY3RvcnkpOwogICAgICB9CiAgICB9KShmdW5jdGlvbihyZXF1aXJlMiwgZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czMsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5maW5kTm9kZUF0T2Zmc2V0ID0gZXhwb3J0czMuY29udGFpbnMgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IGV4cG9ydHMzLnBhcnNlVHJlZSA9IGV4cG9ydHMzLnBhcnNlID0gZXhwb3J0czMuZ2V0TG9jYXRpb24gPSB2b2lkIDA7CiAgICAgIHZhciBQYXJzZU9wdGlvbnM7CiAgICAgIChmdW5jdGlvbihQYXJzZU9wdGlvbnMyKSB7CiAgICAgICAgUGFyc2VPcHRpb25zMi5ERUZBVUxUID0gewogICAgICAgICAgYWxsb3dUcmFpbGluZ0NvbW1hOiBmYWxzZQogICAgICAgIH07CiAgICAgIH0pKFBhcnNlT3B0aW9ucyB8fCAoUGFyc2VPcHRpb25zID0ge30pKTsKICAgICAgZnVuY3Rpb24gZ2V0TG9jYXRpb24odGV4dCwgcG9zaXRpb24pIHsKICAgICAgICBjb25zdCBzZWdtZW50cyA9IFtdOwogICAgICAgIGNvbnN0IGVhcmx5UmV0dXJuRXhjZXB0aW9uID0gbmV3IE9iamVjdCgpOwogICAgICAgIGxldCBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlSW5zdCA9IHsKICAgICAgICAgIHZhbHVlOiB7fSwKICAgICAgICAgIG9mZnNldDogMCwKICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgIHR5cGU6ICJvYmplY3QiLAogICAgICAgICAgcGFyZW50OiB2b2lkIDAKICAgICAgICB9OwogICAgICAgIGxldCBpc0F0UHJvcGVydHlLZXkgPSBmYWxzZTsKICAgICAgICBmdW5jdGlvbiBzZXRQcmV2aW91c05vZGUodmFsdWUsIG9mZnNldCwgbGVuZ3RoLCB0eXBlMikgewogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC52YWx1ZSA9IHZhbHVlOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICBwcmV2aW91c05vZGVJbnN0Lmxlbmd0aCA9IGxlbmd0aDsKICAgICAgICAgIHByZXZpb3VzTm9kZUluc3QudHlwZSA9IHR5cGUyOwogICAgICAgICAgcHJldmlvdXNOb2RlSW5zdC5jb2xvbk9mZnNldCA9IHZvaWQgMDsKICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHByZXZpb3VzTm9kZUluc3Q7CiAgICAgICAgfQogICAgICAgIHRyeSB7CiAgICAgICAgICB2aXNpdCh0ZXh0LCB7CiAgICAgICAgICAgIG9uT2JqZWN0QmVnaW46IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gcG9zaXRpb24gPiBvZmZzZXQ7CiAgICAgICAgICAgICAgc2VnbWVudHMucHVzaCgiIik7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZShuYW1lLCBvZmZzZXQsIGxlbmd0aCwgInByb3BlcnR5Iik7CiAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSBuYW1lOwogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQgKyBsZW5ndGgpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgb25PYmplY3RFbmQ6IChvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8PSBvZmZzZXQpIHsKICAgICAgICAgICAgICAgIHRocm93IGVhcmx5UmV0dXJuRXhjZXB0aW9uOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgc2VnbWVudHMucG9wKCk7CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG9uQXJyYXlCZWdpbjogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICBzZWdtZW50cy5wdXNoKDApOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcHJldmlvdXNOb2RlID0gdm9pZCAwOwogICAgICAgICAgICAgIHNlZ21lbnRzLnBvcCgpOwogICAgICAgICAgICB9LAogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZTogKHZhbHVlLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICAgIGlmIChwb3NpdGlvbiA8IG9mZnNldCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHNldFByZXZpb3VzTm9kZSh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgsIGdldE5vZGVUeXBlKHZhbHVlKSk7CiAgICAgICAgICAgICAgaWYgKHBvc2l0aW9uIDw9IG9mZnNldCArIGxlbmd0aCkgewogICAgICAgICAgICAgICAgdGhyb3cgZWFybHlSZXR1cm5FeGNlcHRpb247CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBvblNlcGFyYXRvcjogKHNlcCwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgICBpZiAocG9zaXRpb24gPD0gb2Zmc2V0KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBlYXJseVJldHVybkV4Y2VwdGlvbjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHNlcCA9PT0gIjoiICYmIHByZXZpb3VzTm9kZSAmJiBwcmV2aW91c05vZGUudHlwZSA9PT0gInByb3BlcnR5IikgewogICAgICAgICAgICAgICAgcHJldmlvdXNOb2RlLmNvbG9uT2Zmc2V0ID0gb2Zmc2V0OwogICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBwcmV2aW91c05vZGUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgY29uc3QgbGFzdCA9IHNlZ21lbnRzW3NlZ21lbnRzLmxlbmd0aCAtIDFdOwogICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBsYXN0ID09PSAibnVtYmVyIikgewogICAgICAgICAgICAgICAgICBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXSA9IGxhc3QgKyAxOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgaXNBdFByb3BlcnR5S2V5ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgc2VnbWVudHNbc2VnbWVudHMubGVuZ3RoIC0gMV0gPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHByZXZpb3VzTm9kZSA9IHZvaWQgMDsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlICE9PSBlYXJseVJldHVybkV4Y2VwdGlvbikgewogICAgICAgICAgICB0aHJvdyBlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgcGF0aDogc2VnbWVudHMsCiAgICAgICAgICBwcmV2aW91c05vZGUsCiAgICAgICAgICBpc0F0UHJvcGVydHlLZXksCiAgICAgICAgICBtYXRjaGVzOiAocGF0dGVybikgPT4gewogICAgICAgICAgICBsZXQgayA9IDA7CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBrIDwgcGF0dGVybi5sZW5ndGggJiYgaSA8IHNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgaWYgKHBhdHRlcm5ba10gPT09IHNlZ21lbnRzW2ldIHx8IHBhdHRlcm5ba10gPT09ICIqIikgewogICAgICAgICAgICAgICAgaysrOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAocGF0dGVybltrXSAhPT0gIioqIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gayA9PT0gcGF0dGVybi5sZW5ndGg7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IGdldExvY2F0aW9uOwogICAgICBmdW5jdGlvbiBwYXJzZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSBbXTsKICAgICAgICBjb25zdCBwcmV2aW91c1BhcmVudHMgPSBbXTsKICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlKSB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50UGFyZW50KSkgewogICAgICAgICAgICBjdXJyZW50UGFyZW50LnB1c2godmFsdWUpOwogICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50UHJvcGVydHkgIT09IG51bGwpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudFtjdXJyZW50UHJvcGVydHldID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IHZpc2l0b3IgPSB7CiAgICAgICAgICBvbk9iamVjdEJlZ2luOiAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IG9iamVjdCA9IHt9OwogICAgICAgICAgICBvblZhbHVlKG9iamVjdCk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb2JqZWN0OwogICAgICAgICAgICBjdXJyZW50UHJvcGVydHkgPSBudWxsOwogICAgICAgICAgfSwKICAgICAgICAgIG9uT2JqZWN0UHJvcGVydHk6IChuYW1lKSA9PiB7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG5hbWU7CiAgICAgICAgICB9LAogICAgICAgICAgb25PYmplY3RFbmQ6ICgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IHByZXZpb3VzUGFyZW50cy5wb3AoKTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5QmVnaW46ICgpID0+IHsKICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBbXTsKICAgICAgICAgICAgb25WYWx1ZShhcnJheSk7CiAgICAgICAgICAgIHByZXZpb3VzUGFyZW50cy5wdXNoKGN1cnJlbnRQYXJlbnQpOwogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gYXJyYXk7CiAgICAgICAgICAgIGN1cnJlbnRQcm9wZXJ0eSA9IG51bGw7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUVuZDogKCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gcHJldmlvdXNQYXJlbnRzLnBvcCgpOwogICAgICAgICAgfSwKICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlOiBvblZhbHVlLAogICAgICAgICAgb25FcnJvcjogKGVycm9yLCBvZmZzZXQsIGxlbmd0aCkgPT4gewogICAgICAgICAgICBlcnJvcnMucHVzaCh7IGVycm9yLCBvZmZzZXQsIGxlbmd0aCB9KTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZpc2l0KHRleHQsIHZpc2l0b3IsIG9wdGlvbnMpOwogICAgICAgIHJldHVybiBjdXJyZW50UGFyZW50WzBdOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlID0gcGFyc2U7CiAgICAgIGZ1bmN0aW9uIHBhcnNlVHJlZSh0ZXh0LCBlcnJvcnMgPSBbXSwgb3B0aW9ucyA9IFBhcnNlT3B0aW9ucy5ERUZBVUxUKSB7CiAgICAgICAgbGV0IGN1cnJlbnRQYXJlbnQgPSB7CiAgICAgICAgICB0eXBlOiAiYXJyYXkiLAogICAgICAgICAgb2Zmc2V0OiAtMSwKICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICBjaGlsZHJlbjogW10sCiAgICAgICAgICBwYXJlbnQ6IHZvaWQgMAogICAgICAgIH07CiAgICAgICAgZnVuY3Rpb24gZW5zdXJlUHJvcGVydHlDb21wbGV0ZShlbmRPZmZzZXQpIHsKICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBlbmRPZmZzZXQgLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBvblZhbHVlKHZhbHVlTm9kZSkgewogICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHZhbHVlTm9kZSk7CiAgICAgICAgICByZXR1cm4gdmFsdWVOb2RlOwogICAgICAgIH0KICAgICAgICBjb25zdCB2aXNpdG9yID0gewogICAgICAgICAgb25PYmplY3RCZWdpbjogKG9mZnNldCkgPT4gewogICAgICAgICAgICBjdXJyZW50UGFyZW50ID0gb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogIm9iamVjdCIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdFByb3BlcnR5OiAobmFtZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5jaGlsZHJlbi5wdXNoKHsKICAgICAgICAgICAgICB0eXBlOiAic3RyaW5nIiwKICAgICAgICAgICAgICB2YWx1ZTogbmFtZSwKICAgICAgICAgICAgICBvZmZzZXQsCiAgICAgICAgICAgICAgbGVuZ3RoLAogICAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhcmVudAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbk9iamVjdEVuZDogKG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGVuc3VyZVByb3BlcnR5Q29tcGxldGUob2Zmc2V0ICsgbGVuZ3RoKTsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25BcnJheUJlZ2luOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IG9uVmFsdWUoewogICAgICAgICAgICAgIHR5cGU6ICJhcnJheSIsCiAgICAgICAgICAgICAgb2Zmc2V0LAogICAgICAgICAgICAgIGxlbmd0aDogLTEsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIGNoaWxkcmVuOiBbXQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0sCiAgICAgICAgICBvbkFycmF5RW5kOiAob2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgY3VycmVudFBhcmVudC5sZW5ndGggPSBvZmZzZXQgKyBsZW5ndGggLSBjdXJyZW50UGFyZW50Lm9mZnNldDsKICAgICAgICAgICAgY3VycmVudFBhcmVudCA9IGN1cnJlbnRQYXJlbnQucGFyZW50OwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25MaXRlcmFsVmFsdWU6ICh2YWx1ZSwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgb25WYWx1ZSh7CiAgICAgICAgICAgICAgdHlwZTogZ2V0Tm9kZVR5cGUodmFsdWUpLAogICAgICAgICAgICAgIG9mZnNldCwKICAgICAgICAgICAgICBsZW5ndGgsCiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGFyZW50LAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBlbnN1cmVQcm9wZXJ0eUNvbXBsZXRlKG9mZnNldCArIGxlbmd0aCk7CiAgICAgICAgICB9LAogICAgICAgICAgb25TZXBhcmF0b3I6IChzZXAsIG9mZnNldCwgbGVuZ3RoKSA9PiB7CiAgICAgICAgICAgIGlmIChjdXJyZW50UGFyZW50LnR5cGUgPT09ICJwcm9wZXJ0eSIpIHsKICAgICAgICAgICAgICBpZiAoc2VwID09PSAiOiIpIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJlbnQuY29sb25PZmZzZXQgPSBvZmZzZXQ7CiAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZXAgPT09ICIsIikgewogICAgICAgICAgICAgICAgZW5zdXJlUHJvcGVydHlDb21wbGV0ZShvZmZzZXQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSwKICAgICAgICAgIG9uRXJyb3I6IChlcnJvciwgb2Zmc2V0LCBsZW5ndGgpID0+IHsKICAgICAgICAgICAgZXJyb3JzLnB1c2goeyBlcnJvciwgb2Zmc2V0LCBsZW5ndGggfSk7CiAgICAgICAgICB9CiAgICAgICAgfTsKICAgICAgICB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zKTsKICAgICAgICBjb25zdCByZXN1bHQgPSBjdXJyZW50UGFyZW50LmNoaWxkcmVuWzBdOwogICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgIGRlbGV0ZSByZXN1bHQucGFyZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlVHJlZTsKICAgICAgZnVuY3Rpb24gZmluZE5vZGVBdExvY2F0aW9uKHJvb3QsIHBhdGgpIHsKICAgICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgfQogICAgICAgIGxldCBub2RlID0gcm9vdDsKICAgICAgICBmb3IgKGxldCBzZWdtZW50IG9mIHBhdGgpIHsKICAgICAgICAgIGlmICh0eXBlb2Ygc2VnbWVudCA9PT0gInN0cmluZyIpIHsKICAgICAgICAgICAgaWYgKG5vZGUudHlwZSAhPT0gIm9iamVjdCIgfHwgIUFycmF5LmlzQXJyYXkobm9kZS5jaGlsZHJlbikpIHsKICAgICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5Tm9kZSBvZiBub2RlLmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOb2RlLmNoaWxkcmVuKSAmJiBwcm9wZXJ0eU5vZGUuY2hpbGRyZW5bMF0udmFsdWUgPT09IHNlZ21lbnQgJiYgcHJvcGVydHlOb2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMikgewogICAgICAgICAgICAgICAgbm9kZSA9IHByb3BlcnR5Tm9kZS5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZvdW5kKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBzZWdtZW50OwogICAgICAgICAgICBpZiAobm9kZS50eXBlICE9PSAiYXJyYXkiIHx8IGluZGV4IDwgMCB8fCAhQXJyYXkuaXNBcnJheShub2RlLmNoaWxkcmVuKSB8fCBpbmRleCA+PSBub2RlLmNoaWxkcmVuLmxlbmd0aCkgewogICAgICAgICAgICAgIHJldHVybiB2b2lkIDA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5baW5kZXhdOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gbm9kZTsKICAgICAgfQogICAgICBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBmaW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGZ1bmN0aW9uIGdldE5vZGVQYXRoKG5vZGUpIHsKICAgICAgICBpZiAoIW5vZGUucGFyZW50IHx8ICFub2RlLnBhcmVudC5jaGlsZHJlbikgewogICAgICAgICAgcmV0dXJuIFtdOwogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoID0gZ2V0Tm9kZVBhdGgobm9kZS5wYXJlbnQpOwogICAgICAgIGlmIChub2RlLnBhcmVudC50eXBlID09PSAicHJvcGVydHkiKSB7CiAgICAgICAgICBjb25zdCBrZXkgPSBub2RlLnBhcmVudC5jaGlsZHJlblswXS52YWx1ZTsKICAgICAgICAgIHBhdGgucHVzaChrZXkpOwogICAgICAgIH0gZWxzZSBpZiAobm9kZS5wYXJlbnQudHlwZSA9PT0gImFycmF5IikgewogICAgICAgICAgY29uc3QgaW5kZXggPSBub2RlLnBhcmVudC5jaGlsZHJlbi5pbmRleE9mKG5vZGUpOwogICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBwYXRoLnB1c2goaW5kZXgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gcGF0aDsKICAgICAgfQogICAgICBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGdldE5vZGVQYXRoOwogICAgICBmdW5jdGlvbiBnZXROb2RlVmFsdWUobm9kZSkgewogICAgICAgIHN3aXRjaCAobm9kZS50eXBlKSB7CiAgICAgICAgICBjYXNlICJhcnJheSI6CiAgICAgICAgICAgIHJldHVybiBub2RlLmNoaWxkcmVuLm1hcChnZXROb2RlVmFsdWUpOwogICAgICAgICAgY2FzZSAib2JqZWN0IjoKICAgICAgICAgICAgY29uc3Qgb2JqID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgICAgICAgIGZvciAobGV0IHByb3Agb2Ygbm9kZS5jaGlsZHJlbikgewogICAgICAgICAgICAgIGNvbnN0IHZhbHVlTm9kZSA9IHByb3AuY2hpbGRyZW5bMV07CiAgICAgICAgICAgICAgaWYgKHZhbHVlTm9kZSkgewogICAgICAgICAgICAgICAgb2JqW3Byb3AuY2hpbGRyZW5bMF0udmFsdWVdID0gZ2V0Tm9kZVZhbHVlKHZhbHVlTm9kZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBvYmo7CiAgICAgICAgICBjYXNlICJudWxsIjoKICAgICAgICAgIGNhc2UgInN0cmluZyI6CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiBub2RlLnZhbHVlOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuIHZvaWQgMDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVZhbHVlID0gZ2V0Tm9kZVZhbHVlOwogICAgICBmdW5jdGlvbiBjb250YWlucyhub2RlLCBvZmZzZXQsIGluY2x1ZGVSaWdodEJvdW5kID0gZmFsc2UpIHsKICAgICAgICByZXR1cm4gb2Zmc2V0ID49IG5vZGUub2Zmc2V0ICYmIG9mZnNldCA8IG5vZGUub2Zmc2V0ICsgbm9kZS5sZW5ndGggfHwgaW5jbHVkZVJpZ2h0Qm91bmQgJiYgb2Zmc2V0ID09PSBub2RlLm9mZnNldCArIG5vZGUubGVuZ3RoOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmNvbnRhaW5zID0gY29udGFpbnM7CiAgICAgIGZ1bmN0aW9uIGZpbmROb2RlQXRPZmZzZXQobm9kZSwgb2Zmc2V0LCBpbmNsdWRlUmlnaHRCb3VuZCA9IGZhbHNlKSB7CiAgICAgICAgaWYgKGNvbnRhaW5zKG5vZGUsIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpKSB7CiAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IG5vZGUuY2hpbGRyZW47CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbi5sZW5ndGggJiYgY2hpbGRyZW5baV0ub2Zmc2V0IDw9IG9mZnNldDsgaSsrKSB7CiAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGZpbmROb2RlQXRPZmZzZXQoY2hpbGRyZW5baV0sIG9mZnNldCwgaW5jbHVkZVJpZ2h0Qm91bmQpOwogICAgICAgICAgICAgIGlmIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBub2RlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBmaW5kTm9kZUF0T2Zmc2V0OwogICAgICBmdW5jdGlvbiB2aXNpdCh0ZXh0LCB2aXNpdG9yLCBvcHRpb25zID0gUGFyc2VPcHRpb25zLkRFRkFVTFQpIHsKICAgICAgICBjb25zdCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCwgZmFsc2UpOwogICAgICAgIGNvbnN0IF9qc29uUGF0aCA9IFtdOwogICAgICAgIGxldCBzdXBwcmVzc2VkQ2FsbGJhY2tzID0gMDsKICAgICAgICBmdW5jdGlvbiB0b05vQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKQogICAgICAgICAgKSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvT25lQXJnVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoYXJnKSA9PiBzdXBwcmVzc2VkQ2FsbGJhY2tzID09PSAwICYmIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgIGFyZywKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydExpbmUoKSwKICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpCiAgICAgICAgICApIDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0RnVuY3Rpb24pIHsKICAgICAgICAgIHJldHVybiB2aXNpdEZ1bmN0aW9uID8gKGFyZykgPT4gc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCAmJiB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICBhcmcsCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuT2Zmc2V0KCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRDaGFyYWN0ZXIoKSwKICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICkgOiAoKSA9PiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiB0b0JlZ2luVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MrKzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBsZXQgY2JSZXR1cm4gPSB2aXNpdEZ1bmN0aW9uKAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5PZmZzZXQoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuTGVuZ3RoKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0TGluZSgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpLAogICAgICAgICAgICAgICAgKCkgPT4gX2pzb25QYXRoLnNsaWNlKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIGlmIChjYlJldHVybiA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MgPSAxOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgfSA6ICgpID0+IHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHRvRW5kVmlzaXQodmlzaXRGdW5jdGlvbikgewogICAgICAgICAgcmV0dXJuIHZpc2l0RnVuY3Rpb24gPyAoKSA9PiB7CiAgICAgICAgICAgIGlmIChzdXBwcmVzc2VkQ2FsbGJhY2tzID4gMCkgewogICAgICAgICAgICAgIHN1cHByZXNzZWRDYWxsYmFja3MtLTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3VwcHJlc3NlZENhbGxiYWNrcyA9PT0gMCkgewogICAgICAgICAgICAgIHZpc2l0RnVuY3Rpb24oCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlbk9mZnNldCgpLAogICAgICAgICAgICAgICAgX3NjYW5uZXIuZ2V0VG9rZW5MZW5ndGgoKSwKICAgICAgICAgICAgICAgIF9zY2FubmVyLmdldFRva2VuU3RhcnRMaW5lKCksCiAgICAgICAgICAgICAgICBfc2Nhbm5lci5nZXRUb2tlblN0YXJ0Q2hhcmFjdGVyKCkKICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICB9IDogKCkgPT4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgY29uc3Qgb25PYmplY3RCZWdpbiA9IHRvQmVnaW5WaXNpdCh2aXNpdG9yLm9uT2JqZWN0QmVnaW4pLCBvbk9iamVjdFByb3BlcnR5ID0gdG9PbmVBcmdWaXNpdFdpdGhQYXRoKHZpc2l0b3Iub25PYmplY3RQcm9wZXJ0eSksIG9uT2JqZWN0RW5kID0gdG9FbmRWaXNpdCh2aXNpdG9yLm9uT2JqZWN0RW5kKSwgb25BcnJheUJlZ2luID0gdG9CZWdpblZpc2l0KHZpc2l0b3Iub25BcnJheUJlZ2luKSwgb25BcnJheUVuZCA9IHRvRW5kVmlzaXQodmlzaXRvci5vbkFycmF5RW5kKSwgb25MaXRlcmFsVmFsdWUgPSB0b09uZUFyZ1Zpc2l0V2l0aFBhdGgodmlzaXRvci5vbkxpdGVyYWxWYWx1ZSksIG9uU2VwYXJhdG9yID0gdG9PbmVBcmdWaXNpdCh2aXNpdG9yLm9uU2VwYXJhdG9yKSwgb25Db21tZW50ID0gdG9Ob0FyZ1Zpc2l0KHZpc2l0b3Iub25Db21tZW50KSwgb25FcnJvciA9IHRvT25lQXJnVmlzaXQodmlzaXRvci5vbkVycm9yKTsKICAgICAgICBjb25zdCBkaXNhbGxvd0NvbW1lbnRzID0gb3B0aW9ucyAmJiBvcHRpb25zLmRpc2FsbG93Q29tbWVudHM7CiAgICAgICAgY29uc3QgYWxsb3dUcmFpbGluZ0NvbW1hID0gb3B0aW9ucyAmJiBvcHRpb25zLmFsbG93VHJhaWxpbmdDb21tYTsKICAgICAgICBmdW5jdGlvbiBzY2FuTmV4dCgpIHsKICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IHRva2VuID0gX3NjYW5uZXIuc2NhbigpOwogICAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuRXJyb3IoKSkgewogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNAogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkVW5pY29kZSAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxNQogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkRXNjYXBlQ2hhcmFjdGVyICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICAgIDEzCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZk51bWJlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgIGlmICghZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMQogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQgKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5VbmV4cGVjdGVkRW5kT2ZTdHJpbmcgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMTYKICAgICAgICAgICAgICAgICAgLyogUGFyc2VFcnJvckNvZGUuSW52YWxpZENoYXJhY3RlciAqLwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHN3aXRjaCAodG9rZW4pIHsKICAgICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgICBpZiAoZGlzYWxsb3dDb21tZW50cykgewogICAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgICAxMAogICAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRDb21tZW50VG9rZW4gKi8KICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIG9uQ29tbWVudCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgICAgIGhhbmRsZUVycm9yKAogICAgICAgICAgICAgICAgICAxCiAgICAgICAgICAgICAgICAgIC8qIFBhcnNlRXJyb3JDb2RlLkludmFsaWRTeW1ib2wgKi8KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKGVycm9yLCBza2lwVW50aWxBZnRlciA9IFtdLCBza2lwVW50aWwgPSBbXSkgewogICAgICAgICAgb25FcnJvcihlcnJvcik7CiAgICAgICAgICBpZiAoc2tpcFVudGlsQWZ0ZXIubGVuZ3RoICsgc2tpcFVudGlsLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGV0IHRva2VuID0gX3NjYW5uZXIuZ2V0VG9rZW4oKTsKICAgICAgICAgICAgd2hpbGUgKHRva2VuICE9PSAxNykgewogICAgICAgICAgICAgIGlmIChza2lwVW50aWxBZnRlci5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNraXBVbnRpbC5pbmRleE9mKHRva2VuKSAhPT0gLTEpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0b2tlbiA9IHNjYW5OZXh0KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VTdHJpbmcoaXNWYWx1ZSkgewogICAgICAgICAgY29uc3QgdmFsdWUgPSBfc2Nhbm5lci5nZXRUb2tlblZhbHVlKCk7CiAgICAgICAgICBpZiAoaXNWYWx1ZSkgewogICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBvbk9iamVjdFByb3BlcnR5KHZhbHVlKTsKICAgICAgICAgICAgX2pzb25QYXRoLnB1c2godmFsdWUpOwogICAgICAgICAgfQogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUxpdGVyYWwoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjb25zdCB0b2tlblZhbHVlID0gX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpOwogICAgICAgICAgICAgIGxldCB2YWx1ZSA9IE51bWJlcih0b2tlblZhbHVlKTsKICAgICAgICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7CiAgICAgICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAgICAgMgogICAgICAgICAgICAgICAgICAvKiBQYXJzZUVycm9yQ29kZS5JbnZhbGlkTnVtYmVyRm9ybWF0ICovCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgdmFsdWUgPSAwOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZSh2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBvbkxpdGVyYWxWYWx1ZShudWxsKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIG9uTGl0ZXJhbFZhbHVlKHRydWUpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgb25MaXRlcmFsVmFsdWUoZmFsc2UpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gcGFyc2VQcm9wZXJ0eSgpIHsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxMCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICAzLAogICAgICAgICAgICAgIFtdLAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICA1CiAgICAgICAgICAgICAgICAvKiBTeW50YXhLaW5kLkNvbW1hVG9rZW4gKi8KICAgICAgICAgICAgICBdCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICAgIHBhcnNlU3RyaW5nKGZhbHNlKTsKICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA2KSB7CiAgICAgICAgICAgIG9uU2VwYXJhdG9yKCI6Iik7CiAgICAgICAgICAgIHNjYW5OZXh0KCk7CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgNSwKICAgICAgICAgICAgICBbXSwKICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgNQogICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgXQogICAgICAgICAgICApOwogICAgICAgICAgfQogICAgICAgICAgX2pzb25QYXRoLnBvcCgpOwogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlT2JqZWN0KCkgewogICAgICAgICAgb25PYmplY3RCZWdpbigpOwogICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMiAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAyICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VQcm9wZXJ0eSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgICAgLyogU3ludGF4S2luZC5Db21tYVRva2VuICovCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBuZWVkc0NvbW1hID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9uT2JqZWN0RW5kKCk7CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gMikgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA3LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFjZVRva2VuICovCiAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICBbXQogICAgICAgICAgICApOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2Nhbk5leHQoKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBwYXJzZUFycmF5KCkgewogICAgICAgICAgb25BcnJheUJlZ2luKCk7CiAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgbGV0IGlzRmlyc3RFbGVtZW50ID0gdHJ1ZTsKICAgICAgICAgIGxldCBuZWVkc0NvbW1hID0gZmFsc2U7CiAgICAgICAgICB3aGlsZSAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCAmJiBfc2Nhbm5lci5nZXRUb2tlbigpICE9PSAxNykgewogICAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSA9PT0gNSkgewogICAgICAgICAgICAgIGlmICghbmVlZHNDb21tYSkgewogICAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgb25TZXBhcmF0b3IoIiwiKTsKICAgICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSA0ICYmIGFsbG93VHJhaWxpbmdDb21tYSkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKG5lZWRzQ29tbWEpIHsKICAgICAgICAgICAgICBoYW5kbGVFcnJvcig2LCBbXSwgW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICAgIF9qc29uUGF0aC5wdXNoKDApOwogICAgICAgICAgICAgIGlzRmlyc3RFbGVtZW50ID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgX2pzb25QYXRoW19qc29uUGF0aC5sZW5ndGggLSAxXSsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghcGFyc2VWYWx1ZSgpKSB7CiAgICAgICAgICAgICAgaGFuZGxlRXJyb3IoCiAgICAgICAgICAgICAgICA0LAogICAgICAgICAgICAgICAgW10sCiAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgIDQsCiAgICAgICAgICAgICAgICAgIDUKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIG5lZWRzQ29tbWEgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgb25BcnJheUVuZCgpOwogICAgICAgICAgaWYgKCFpc0ZpcnN0RWxlbWVudCkgewogICAgICAgICAgICBfanNvblBhdGgucG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoX3NjYW5uZXIuZ2V0VG9rZW4oKSAhPT0gNCkgewogICAgICAgICAgICBoYW5kbGVFcnJvcigKICAgICAgICAgICAgICA4LAogICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIDQKICAgICAgICAgICAgICAgIC8qIFN5bnRheEtpbmQuQ2xvc2VCcmFja2V0VG9rZW4gKi8KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIFtdCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIHBhcnNlVmFsdWUoKSB7CiAgICAgICAgICBzd2l0Y2ggKF9zY2FubmVyLmdldFRva2VuKCkpIHsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIHJldHVybiBwYXJzZUFycmF5KCk7CiAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VPYmplY3QoKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICByZXR1cm4gcGFyc2VTdHJpbmcodHJ1ZSk7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlTGl0ZXJhbCgpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBzY2FuTmV4dCgpOwogICAgICAgIGlmIChfc2Nhbm5lci5nZXRUb2tlbigpID09PSAxNykgewogICAgICAgICAgaWYgKG9wdGlvbnMuYWxsb3dFbXB0eUNvbnRlbnQpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICBoYW5kbGVFcnJvcig0LCBbXSwgW10pOwogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoIXBhcnNlVmFsdWUoKSkgewogICAgICAgICAgaGFuZGxlRXJyb3IoNCwgW10sIFtdKTsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKF9zY2FubmVyLmdldFRva2VuKCkgIT09IDE3KSB7CiAgICAgICAgICBoYW5kbGVFcnJvcig5LCBbXSwgW10pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBleHBvcnRzMy52aXNpdCA9IHZpc2l0OwogICAgICBmdW5jdGlvbiBzdHJpcENvbW1lbnRzKHRleHQsIHJlcGxhY2VDaCkgewogICAgICAgIGxldCBfc2Nhbm5lciA9ICgwLCBzY2FubmVyXzEuY3JlYXRlU2Nhbm5lcikodGV4dCksIHBhcnRzID0gW10sIGtpbmQsIG9mZnNldCA9IDAsIHBvczsKICAgICAgICBkbyB7CiAgICAgICAgICBwb3MgPSBfc2Nhbm5lci5nZXRQb3NpdGlvbigpOwogICAgICAgICAga2luZCA9IF9zY2FubmVyLnNjYW4oKTsKICAgICAgICAgIHN3aXRjaCAoa2luZCkgewogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgIGlmIChvZmZzZXQgIT09IHBvcykgewogICAgICAgICAgICAgICAgcGFydHMucHVzaCh0ZXh0LnN1YnN0cmluZyhvZmZzZXQsIHBvcykpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocmVwbGFjZUNoICE9PSB2b2lkIDApIHsKICAgICAgICAgICAgICAgIHBhcnRzLnB1c2goX3NjYW5uZXIuZ2V0VG9rZW5WYWx1ZSgpLnJlcGxhY2UoL1teXHJcbl0vZywgcmVwbGFjZUNoKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG9mZnNldCA9IF9zY2FubmVyLmdldFBvc2l0aW9uKCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoa2luZCAhPT0gMTcpOwogICAgICAgIHJldHVybiBwYXJ0cy5qb2luKCIiKTsKICAgICAgfQogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gc3RyaXBDb21tZW50czsKICAgICAgZnVuY3Rpb24gZ2V0Tm9kZVR5cGUodmFsdWUpIHsKICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewogICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CiAgICAgICAgICAgIHJldHVybiAiYm9vbGVhbiI7CiAgICAgICAgICBjYXNlICJudW1iZXIiOgogICAgICAgICAgICByZXR1cm4gIm51bWJlciI7CiAgICAgICAgICBjYXNlICJzdHJpbmciOgogICAgICAgICAgICByZXR1cm4gInN0cmluZyI7CiAgICAgICAgICBjYXNlICJvYmplY3QiOiB7CiAgICAgICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgICByZXR1cm4gIm51bGwiOwogICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7CiAgICAgICAgICAgICAgcmV0dXJuICJhcnJheSI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICJvYmplY3QiOwogICAgICAgICAgfQogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgcmV0dXJuICJudWxsIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgZXhwb3J0czMuZ2V0Tm9kZVR5cGUgPSBnZXROb2RlVHlwZTsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL2ltcGwvZWRpdC5qcwp2YXIgcmVxdWlyZV9lZGl0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL2pzb25jLXBhcnNlci1wYXRjaC1kMjBmNjcxODM2LTEwLnppcC9ub2RlX21vZHVsZXMvanNvbmMtcGFyc2VyL2xpYi91bWQvaW1wbC9lZGl0LmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgdmFyIGZvcm1hdF8xID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgcGFyc2VyXzEgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWyJyZXF1aXJlIiwgImV4cG9ydHMiLCAiLi9mb3JtYXQiLCAiLi9wYXJzZXIiXSwgZmFjdG9yeSk7CiAgICAgIH0KICAgIH0pKGZ1bmN0aW9uKHJlcXVpcmUyLCBleHBvcnRzMykgewogICAgICAidXNlIHN0cmljdCI7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgICBleHBvcnRzMy5pc1dTID0gZXhwb3J0czMuYXBwbHlFZGl0ID0gZXhwb3J0czMuc2V0UHJvcGVydHkgPSBleHBvcnRzMy5yZW1vdmVQcm9wZXJ0eSA9IHZvaWQgMDsKICAgICAgZnVuY3Rpb24gcmVtb3ZlUHJvcGVydHkodGV4dCwgcGF0aCwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBzZXRQcm9wZXJ0eSh0ZXh0LCBwYXRoLCB2b2lkIDAsIG9wdGlvbnMpOwogICAgICB9CiAgICAgIGV4cG9ydHMzLnJlbW92ZVByb3BlcnR5ID0gcmVtb3ZlUHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHNldFByb3BlcnR5KHRleHQsIG9yaWdpbmFsUGF0aCwgdmFsdWUsIG9wdGlvbnMpIHsKICAgICAgICBjb25zdCBwYXRoID0gb3JpZ2luYWxQYXRoLnNsaWNlKCk7CiAgICAgICAgY29uc3QgZXJyb3JzID0gW107CiAgICAgICAgY29uc3Qgcm9vdCA9ICgwLCBwYXJzZXJfMS5wYXJzZVRyZWUpKHRleHQsIGVycm9ycyk7CiAgICAgICAgbGV0IHBhcmVudCA9IHZvaWQgMDsKICAgICAgICBsZXQgbGFzdFNlZ21lbnQgPSB2b2lkIDA7CiAgICAgICAgd2hpbGUgKHBhdGgubGVuZ3RoID4gMCkgewogICAgICAgICAgbGFzdFNlZ21lbnQgPSBwYXRoLnBvcCgpOwogICAgICAgICAgcGFyZW50ID0gKDAsIHBhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocm9vdCwgcGF0aCk7CiAgICAgICAgICBpZiAocGFyZW50ID09PSB2b2lkIDAgJiYgdmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodHlwZW9mIGxhc3RTZWdtZW50ID09PSAic3RyaW5nIikgewogICAgICAgICAgICAgIHZhbHVlID0geyBbbGFzdFNlZ21lbnRdOiB2YWx1ZSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghcGFyZW50KSB7CiAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbiBub3QgZGVsZXRlIGluIGVtcHR5IGRvY3VtZW50Iik7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcoCiAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICBvZmZzZXQ6IHJvb3QgPyByb290Lm9mZnNldCA6IDAsCiAgICAgICAgICAgICAgbGVuZ3RoOiByb290ID8gcm9vdC5sZW5ndGggOiAwLAogICAgICAgICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHZhbHVlKQogICAgICAgICAgICB9LAogICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICApOwogICAgICAgIH0gZWxzZSBpZiAocGFyZW50LnR5cGUgPT09ICJvYmplY3QiICYmIHR5cGVvZiBsYXN0U2VnbWVudCA9PT0gInN0cmluZyIgJiYgQXJyYXkuaXNBcnJheShwYXJlbnQuY2hpbGRyZW4pKSB7CiAgICAgICAgICBjb25zdCBleGlzdGluZyA9ICgwLCBwYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHBhcmVudCwgW2xhc3RTZWdtZW50XSk7CiAgICAgICAgICBpZiAoZXhpc3RpbmcgIT09IHZvaWQgMCkgewogICAgICAgICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIGlmICghZXhpc3RpbmcucGFyZW50KSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBU1QiKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydHlJbmRleCA9IHBhcmVudC5jaGlsZHJlbi5pbmRleE9mKGV4aXN0aW5nLnBhcmVudCk7CiAgICAgICAgICAgICAgbGV0IHJlbW92ZUJlZ2luOwogICAgICAgICAgICAgIGxldCByZW1vdmVFbmQgPSBleGlzdGluZy5wYXJlbnQub2Zmc2V0ICsgZXhpc3RpbmcucGFyZW50Lmxlbmd0aDsKICAgICAgICAgICAgICBpZiAocHJvcGVydHlJbmRleCA+IDApIHsKICAgICAgICAgICAgICAgIGxldCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltwcm9wZXJ0eUluZGV4IC0gMV07CiAgICAgICAgICAgICAgICByZW1vdmVCZWdpbiA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmVtb3ZlQmVnaW4gPSBwYXJlbnQub2Zmc2V0ICsgMTsKICAgICAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID4gMSkgewogICAgICAgICAgICAgICAgICBsZXQgbmV4dCA9IHBhcmVudC5jaGlsZHJlblsxXTsKICAgICAgICAgICAgICAgICAgcmVtb3ZlRW5kID0gbmV4dC5vZmZzZXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZygKICAgICAgICAgICAgICAgIHRleHQsCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgIG9mZnNldDogcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogcmVtb3ZlRW5kIC0gcmVtb3ZlQmVnaW4sCiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIiCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgb3B0aW9ucwogICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKAogICAgICAgICAgICAgICAgdGV4dCwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgb2Zmc2V0OiBleGlzdGluZy5vZmZzZXQsCiAgICAgICAgICAgICAgICAgIGxlbmd0aDogZXhpc3RpbmcubGVuZ3RoLAogICAgICAgICAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh2YWx1ZSkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBvcHRpb25zCiAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICByZXR1cm4gW107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeShsYXN0U2VnbWVudCl9OiAke0pTT04uc3RyaW5naWZ5KAogICAgICAgICAgICAgIHZhbHVlCiAgICAgICAgICAgICl9YDsKICAgICAgICAgICAgY29uc3QgaW5kZXggPSBvcHRpb25zLmdldEluc2VydGlvbkluZGV4ID8gb3B0aW9ucy5nZXRJbnNlcnRpb25JbmRleCgKICAgICAgICAgICAgICBwYXJlbnQuY2hpbGRyZW4ubWFwKChwKSA9PiBwLmNoaWxkcmVuWzBdLnZhbHVlKQogICAgICAgICAgICApIDogcGFyZW50LmNoaWxkcmVuLmxlbmd0aDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5baW5kZXggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0gZWxzZSBpZiAocGFyZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICAgIGVkaXQgPSB7IG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsIGxlbmd0aDogMCwgY29udGVudDogbmV3UHJvcGVydHkgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChwYXJlbnQudHlwZSA9PT0gImFycmF5IiAmJiB0eXBlb2YgbGFzdFNlZ21lbnQgPT09ICJudW1iZXIiICYmIEFycmF5LmlzQXJyYXkocGFyZW50LmNoaWxkcmVuKSkgewogICAgICAgICAgY29uc3QgaW5zZXJ0SW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgIGlmIChpbnNlcnRJbmRleCA9PT0gLTEpIHsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwgbGVuZ3RoOiAwLCBjb250ZW50OiBuZXdQcm9wZXJ0eSB9OwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gcGFyZW50LmNoaWxkcmVuW3BhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxXTsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwcmV2aW91cy5vZmZzZXQgKyBwcmV2aW91cy5sZW5ndGgsCiAgICAgICAgICAgICAgICBsZW5ndGg6IDAsCiAgICAgICAgICAgICAgICBjb250ZW50OiAiLCIgKyBuZXdQcm9wZXJ0eQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpOwogICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdm9pZCAwICYmIHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPj0gMCkgewogICAgICAgICAgICBjb25zdCByZW1vdmFsSW5kZXggPSBsYXN0U2VnbWVudDsKICAgICAgICAgICAgY29uc3QgdG9SZW1vdmUgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4XTsKICAgICAgICAgICAgbGV0IGVkaXQ7CiAgICAgICAgICAgIGlmIChwYXJlbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogcGFyZW50Lm9mZnNldCArIDEsCiAgICAgICAgICAgICAgICBsZW5ndGg6IHBhcmVudC5sZW5ndGggLSAyLAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggLSAxID09PSByZW1vdmFsSW5kZXgpIHsKICAgICAgICAgICAgICBsZXQgcHJldmlvdXMgPSBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4IC0gMV07CiAgICAgICAgICAgICAgbGV0IG9mZnNldCA9IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aDsKICAgICAgICAgICAgICBsZXQgcGFyZW50RW5kT2Zmc2V0ID0gcGFyZW50Lm9mZnNldCArIHBhcmVudC5sZW5ndGg7CiAgICAgICAgICAgICAgZWRpdCA9IHsgb2Zmc2V0LCBsZW5ndGg6IHBhcmVudEVuZE9mZnNldCAtIDIgLSBvZmZzZXQsIGNvbnRlbnQ6ICIiIH07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgZWRpdCA9IHsKICAgICAgICAgICAgICAgIG9mZnNldDogdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgbGVuZ3RoOiBwYXJlbnQuY2hpbGRyZW5bcmVtb3ZhbEluZGV4ICsgMV0ub2Zmc2V0IC0gdG9SZW1vdmUub2Zmc2V0LAogICAgICAgICAgICAgICAgY29udGVudDogIiIKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB3aXRoRm9ybWF0dGluZyh0ZXh0LCBlZGl0LCBvcHRpb25zKTsKICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHZvaWQgMCkgewogICAgICAgICAgICBsZXQgZWRpdDsKICAgICAgICAgICAgY29uc3QgbmV3UHJvcGVydHkgPSBgJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YDsKICAgICAgICAgICAgaWYgKCFvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gJiYgcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA+IGxhc3RTZWdtZW50KSB7CiAgICAgICAgICAgICAgY29uc3QgdG9Nb2RpZnkgPSBwYXJlbnQuY2hpbGRyZW5bbGFzdFNlZ21lbnRdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHRvTW9kaWZ5Lm9mZnNldCwKICAgICAgICAgICAgICAgIGxlbmd0aDogdG9Nb2RpZnkubGVuZ3RoLAogICAgICAgICAgICAgICAgY29udGVudDogbmV3UHJvcGVydHkKICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgfHwgbGFzdFNlZ21lbnQgPT09IDApIHsKICAgICAgICAgICAgICBlZGl0ID0gewogICAgICAgICAgICAgICAgb2Zmc2V0OiBwYXJlbnQub2Zmc2V0ICsgMSwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggPT09IDAgPyBuZXdQcm9wZXJ0eSA6IG5ld1Byb3BlcnR5ICsgIiwiCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IGxhc3RTZWdtZW50ID4gcGFyZW50LmNoaWxkcmVuLmxlbmd0aCA/IHBhcmVudC5jaGlsZHJlbi5sZW5ndGggOiBsYXN0U2VnbWVudDsKICAgICAgICAgICAgICBjb25zdCBwcmV2aW91cyA9IHBhcmVudC5jaGlsZHJlbltpbmRleCAtIDFdOwogICAgICAgICAgICAgIGVkaXQgPSB7CiAgICAgICAgICAgICAgICBvZmZzZXQ6IHByZXZpb3VzLm9mZnNldCArIHByZXZpb3VzLmxlbmd0aCwKICAgICAgICAgICAgICAgIGxlbmd0aDogMCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICIsIiArIG5ld1Byb3BlcnR5CiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gd2l0aEZvcm1hdHRpbmcodGV4dCwgZWRpdCwgb3B0aW9ucyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoCiAgICAgICAgICAgICAgYENhbiBub3QgJHt2YWx1ZSA9PT0gdm9pZCAwID8gInJlbW92ZSIgOiBvcHRpb25zLmlzQXJyYXlJbnNlcnRpb24gPyAiaW5zZXJ0IiA6ICJtb2RpZnkifSBBcnJheSBpbmRleCAke2luc2VydEluZGV4fSBhcyBsZW5ndGggaXMgbm90IHN1ZmZpY2llbnRgCiAgICAgICAgICAgICk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbiBub3QgYWRkICR7dHlwZW9mIGxhc3RTZWdtZW50ICE9PSAibnVtYmVyIiA/ICJpbmRleCIgOiAicHJvcGVydHkifSB0byBwYXJlbnQgb2YgdHlwZSAke3BhcmVudC50eXBlfWAKICAgICAgICAgICk7CiAgICAgICAgfQogICAgICB9CiAgICAgIGV4cG9ydHMzLnNldFByb3BlcnR5ID0gc2V0UHJvcGVydHk7CiAgICAgIGZ1bmN0aW9uIHdpdGhGb3JtYXR0aW5nKHRleHQsIGVkaXQsIG9wdGlvbnMpIHsKICAgICAgICBpZiAoIW9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMpIHsKICAgICAgICAgIHJldHVybiBbZWRpdF07CiAgICAgICAgfQogICAgICAgIGxldCBuZXdUZXh0ID0gYXBwbHlFZGl0KHRleHQsIGVkaXQpOwogICAgICAgIGxldCBiZWdpbiA9IGVkaXQub2Zmc2V0OwogICAgICAgIGxldCBlbmQgPSBlZGl0Lm9mZnNldCArIGVkaXQuY29udGVudC5sZW5ndGg7CiAgICAgICAgaWYgKGVkaXQubGVuZ3RoID09PSAwIHx8IGVkaXQuY29udGVudC5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHdoaWxlIChiZWdpbiA+IDAgJiYgISgwLCBmb3JtYXRfMS5pc0VPTCkobmV3VGV4dCwgYmVnaW4gLSAxKSkgewogICAgICAgICAgICBiZWdpbi0tOwogICAgICAgICAgfQogICAgICAgICAgd2hpbGUgKGVuZCA8IG5ld1RleHQubGVuZ3RoICYmICEoMCwgZm9ybWF0XzEuaXNFT0wpKG5ld1RleHQsIGVuZCkpIHsKICAgICAgICAgICAgZW5kKys7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGVkaXRzID0gKDAsIGZvcm1hdF8xLmZvcm1hdCkoCiAgICAgICAgICBuZXdUZXh0LAogICAgICAgICAgeyBvZmZzZXQ6IGJlZ2luLCBsZW5ndGg6IGVuZCAtIGJlZ2luIH0sCiAgICAgICAgICB7IC4uLm9wdGlvbnMuZm9ybWF0dGluZ09wdGlvbnMsIGtlZXBMaW5lczogZmFsc2UgfQogICAgICAgICk7CiAgICAgICAgZm9yIChsZXQgaSA9IGVkaXRzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgICBjb25zdCBlZGl0MiA9IGVkaXRzW2ldOwogICAgICAgICAgbmV3VGV4dCA9IGFwcGx5RWRpdChuZXdUZXh0LCBlZGl0Mik7CiAgICAgICAgICBiZWdpbiA9IE1hdGgubWluKGJlZ2luLCBlZGl0Mi5vZmZzZXQpOwogICAgICAgICAgZW5kID0gTWF0aC5tYXgoZW5kLCBlZGl0Mi5vZmZzZXQgKyBlZGl0Mi5sZW5ndGgpOwogICAgICAgICAgZW5kICs9IGVkaXQyLmNvbnRlbnQubGVuZ3RoIC0gZWRpdDIubGVuZ3RoOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0TGVuZ3RoID0gdGV4dC5sZW5ndGggLSAobmV3VGV4dC5sZW5ndGggLSBlbmQpIC0gYmVnaW47CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgIHsKICAgICAgICAgICAgb2Zmc2V0OiBiZWdpbiwKICAgICAgICAgICAgbGVuZ3RoOiBlZGl0TGVuZ3RoLAogICAgICAgICAgICBjb250ZW50OiBuZXdUZXh0LnN1YnN0cmluZyhiZWdpbiwgZW5kKQogICAgICAgICAgfQogICAgICAgIF07CiAgICAgIH0KICAgICAgZnVuY3Rpb24gYXBwbHlFZGl0KHRleHQsIGVkaXQpIHsKICAgICAgICByZXR1cm4gdGV4dC5zdWJzdHJpbmcoMCwgZWRpdC5vZmZzZXQpICsgZWRpdC5jb250ZW50ICsgdGV4dC5zdWJzdHJpbmcoZWRpdC5vZmZzZXQgKyBlZGl0Lmxlbmd0aCk7CiAgICAgIH0KICAgICAgZXhwb3J0czMuYXBwbHlFZGl0ID0gYXBwbHlFZGl0OwogICAgICBmdW5jdGlvbiBpc1dTKHRleHQsIG9mZnNldCkgewogICAgICAgIHJldHVybiAiXHJcbiAJIi5pbmRleE9mKHRleHQuY2hhckF0KG9mZnNldCkpICE9PSAtMTsKICAgICAgfQogICAgICBleHBvcnRzMy5pc1dTID0gaXNXUzsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMKdmFyIHJlcXVpcmVfbWFpbiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qc29uYy1wYXJzZXItcGF0Y2gtZDIwZjY3MTgzNi0xMC56aXAvbm9kZV9tb2R1bGVzL2pzb25jLXBhcnNlci9saWIvdW1kL21haW4uanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICB2YXIgZm9ybWF0dGVyID0gcmVxdWlyZV9mb3JtYXQzKCk7CiAgICB2YXIgZWRpdCA9IHJlcXVpcmVfZWRpdCgpOwogICAgdmFyIHNjYW5uZXIgPSByZXF1aXJlX3NjYW5uZXIoKTsKICAgIHZhciBwYXJzZXIgPSByZXF1aXJlX3BhcnNlcigpOwogICAgKGZ1bmN0aW9uKGZhY3RvcnkpIHsKICAgICAgaWYgKHR5cGVvZiBtb2R1bGUyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMi5leHBvcnRzID09PSAib2JqZWN0IikgewogICAgICAgIHZhciB2ID0gZmFjdG9yeShyZXF1aXJlLCBleHBvcnRzMik7CiAgICAgICAgaWYgKHYgIT09IHZvaWQgMCkgbW9kdWxlMi5leHBvcnRzID0gdjsKICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZGVmaW5lID09PSAiZnVuY3Rpb24iICYmIGRlZmluZS5hbWQpIHsKICAgICAgICBkZWZpbmUoWwogICAgICAgICAgInJlcXVpcmUiLAogICAgICAgICAgImV4cG9ydHMiLAogICAgICAgICAgIi4vaW1wbC9mb3JtYXQiLAogICAgICAgICAgIi4vaW1wbC9lZGl0IiwKICAgICAgICAgICIuL2ltcGwvc2Nhbm5lciIsCiAgICAgICAgICAiLi9pbXBsL3BhcnNlciIKICAgICAgICBdLCBmYWN0b3J5KTsKICAgICAgfQogICAgfSkoZnVuY3Rpb24ocmVxdWlyZTIsIGV4cG9ydHMzKSB7CiAgICAgICJ1c2Ugc3RyaWN0IjsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMzLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICAgIGV4cG9ydHMzLmFwcGx5RWRpdHMgPSBleHBvcnRzMy5tb2RpZnkgPSBleHBvcnRzMy5mb3JtYXQgPSBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gZXhwb3J0czMudmlzaXQgPSBleHBvcnRzMy5nZXROb2RlVmFsdWUgPSBleHBvcnRzMy5nZXROb2RlUGF0aCA9IGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBleHBvcnRzMy5maW5kTm9kZUF0TG9jYXRpb24gPSBleHBvcnRzMy5wYXJzZVRyZWUgPSBleHBvcnRzMy5wYXJzZSA9IGV4cG9ydHMzLmdldExvY2F0aW9uID0gZXhwb3J0czMuU3ludGF4S2luZCA9IGV4cG9ydHMzLlNjYW5FcnJvciA9IGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSB2b2lkIDA7CiAgICAgIGV4cG9ydHMzLmNyZWF0ZVNjYW5uZXIgPSBzY2FubmVyLmNyZWF0ZVNjYW5uZXI7CiAgICAgIHZhciBTY2FuRXJyb3I7CiAgICAgIChmdW5jdGlvbihTY2FuRXJyb3IyKSB7CiAgICAgICAgU2NhbkVycm9yMltTY2FuRXJyb3IyWyJOb25lIl0gPSAwXSA9ICJOb25lIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiXSA9IDFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mU3RyaW5nIl0gPSAyXSA9ICJVbmV4cGVjdGVkRW5kT2ZTdHJpbmciOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAzXSA9ICJVbmV4cGVjdGVkRW5kT2ZOdW1iZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZFVuaWNvZGUiXSA9IDRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBTY2FuRXJyb3IyW1NjYW5FcnJvcjJbIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiXSA9IDVdID0gIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiOwogICAgICAgIFNjYW5FcnJvcjJbU2NhbkVycm9yMlsiSW52YWxpZENoYXJhY3RlciJdID0gNl0gPSAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgIH0pKFNjYW5FcnJvciB8fCAoZXhwb3J0czMuU2NhbkVycm9yID0gU2NhbkVycm9yID0ge30pKTsKICAgICAgdmFyIFN5bnRheEtpbmQ7CiAgICAgIChmdW5jdGlvbihTeW50YXhLaW5kMikgewogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJPcGVuQnJhY2VUb2tlbiJdID0gMV0gPSAiT3BlbkJyYWNlVG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNlVG9rZW4iXSA9IDJdID0gIkNsb3NlQnJhY2VUb2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk9wZW5CcmFja2V0VG9rZW4iXSA9IDNdID0gIk9wZW5CcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDbG9zZUJyYWNrZXRUb2tlbiJdID0gNF0gPSAiQ2xvc2VCcmFja2V0VG9rZW4iOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJDb21tYVRva2VuIl0gPSA1XSA9ICJDb21tYVRva2VuIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiQ29sb25Ub2tlbiJdID0gNl0gPSAiQ29sb25Ub2tlbiI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIk51bGxLZXl3b3JkIl0gPSA3XSA9ICJOdWxsS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRydWVLZXl3b3JkIl0gPSA4XSA9ICJUcnVlS2V5d29yZCI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkZhbHNlS2V5d29yZCJdID0gOV0gPSAiRmFsc2VLZXl3b3JkIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiU3RyaW5nTGl0ZXJhbCJdID0gMTBdID0gIlN0cmluZ0xpdGVyYWwiOwogICAgICAgIFN5bnRheEtpbmQyW1N5bnRheEtpbmQyWyJOdW1lcmljTGl0ZXJhbCJdID0gMTFdID0gIk51bWVyaWNMaXRlcmFsIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiTGluZUNvbW1lbnRUcml2aWEiXSA9IDEyXSA9ICJMaW5lQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkJsb2NrQ29tbWVudFRyaXZpYSJdID0gMTNdID0gIkJsb2NrQ29tbWVudFRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIkxpbmVCcmVha1RyaXZpYSJdID0gMTRdID0gIkxpbmVCcmVha1RyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlRyaXZpYSJdID0gMTVdID0gIlRyaXZpYSI7CiAgICAgICAgU3ludGF4S2luZDJbU3ludGF4S2luZDJbIlVua25vd24iXSA9IDE2XSA9ICJVbmtub3duIjsKICAgICAgICBTeW50YXhLaW5kMltTeW50YXhLaW5kMlsiRU9GIl0gPSAxN10gPSAiRU9GIjsKICAgICAgfSkoU3ludGF4S2luZCB8fCAoZXhwb3J0czMuU3ludGF4S2luZCA9IFN5bnRheEtpbmQgPSB7fSkpOwogICAgICBleHBvcnRzMy5nZXRMb2NhdGlvbiA9IHBhcnNlci5nZXRMb2NhdGlvbjsKICAgICAgZXhwb3J0czMucGFyc2UgPSBwYXJzZXIucGFyc2U7CiAgICAgIGV4cG9ydHMzLnBhcnNlVHJlZSA9IHBhcnNlci5wYXJzZVRyZWU7CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRMb2NhdGlvbiA9IHBhcnNlci5maW5kTm9kZUF0TG9jYXRpb247CiAgICAgIGV4cG9ydHMzLmZpbmROb2RlQXRPZmZzZXQgPSBwYXJzZXIuZmluZE5vZGVBdE9mZnNldDsKICAgICAgZXhwb3J0czMuZ2V0Tm9kZVBhdGggPSBwYXJzZXIuZ2V0Tm9kZVBhdGg7CiAgICAgIGV4cG9ydHMzLmdldE5vZGVWYWx1ZSA9IHBhcnNlci5nZXROb2RlVmFsdWU7CiAgICAgIGV4cG9ydHMzLnZpc2l0ID0gcGFyc2VyLnZpc2l0OwogICAgICBleHBvcnRzMy5zdHJpcENvbW1lbnRzID0gcGFyc2VyLnN0cmlwQ29tbWVudHM7CiAgICAgIHZhciBQYXJzZUVycm9yQ29kZTsKICAgICAgKGZ1bmN0aW9uKFBhcnNlRXJyb3JDb2RlMikgewogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWRTeW1ib2wiXSA9IDFdID0gIkludmFsaWRTeW1ib2wiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkludmFsaWROdW1iZXJGb3JtYXQiXSA9IDJdID0gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlByb3BlcnR5TmFtZUV4cGVjdGVkIl0gPSAzXSA9ICJQcm9wZXJ0eU5hbWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVmFsdWVFeHBlY3RlZCJdID0gNF0gPSAiVmFsdWVFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29sb25FeHBlY3RlZCJdID0gNV0gPSAiQ29sb25FeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ29tbWFFeHBlY3RlZCJdID0gNl0gPSAiQ29tbWFFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiQ2xvc2VCcmFjZUV4cGVjdGVkIl0gPSA3XSA9ICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIkNsb3NlQnJhY2tldEV4cGVjdGVkIl0gPSA4XSA9ICJDbG9zZUJyYWNrZXRFeHBlY3RlZCI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiRW5kT2ZGaWxlRXhwZWN0ZWQiXSA9IDldID0gIkVuZE9mRmlsZUV4cGVjdGVkIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkQ29tbWVudFRva2VuIl0gPSAxMF0gPSAiSW52YWxpZENvbW1lbnRUb2tlbiI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mQ29tbWVudCJdID0gMTFdID0gIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiOwogICAgICAgIFBhcnNlRXJyb3JDb2RlMltQYXJzZUVycm9yQ29kZTJbIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyJdID0gMTJdID0gIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiVW5leHBlY3RlZEVuZE9mTnVtYmVyIl0gPSAxM10gPSAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkVW5pY29kZSJdID0gMTRdID0gIkludmFsaWRVbmljb2RlIjsKICAgICAgICBQYXJzZUVycm9yQ29kZTJbUGFyc2VFcnJvckNvZGUyWyJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIl0gPSAxNV0gPSAiSW52YWxpZEVzY2FwZUNoYXJhY3RlciI7CiAgICAgICAgUGFyc2VFcnJvckNvZGUyW1BhcnNlRXJyb3JDb2RlMlsiSW52YWxpZENoYXJhY3RlciJdID0gMTZdID0gIkludmFsaWRDaGFyYWN0ZXIiOwogICAgICB9KShQYXJzZUVycm9yQ29kZSB8fCAoZXhwb3J0czMuUGFyc2VFcnJvckNvZGUgPSBQYXJzZUVycm9yQ29kZSA9IHt9KSk7CiAgICAgIGZ1bmN0aW9uIHByaW50UGFyc2VFcnJvckNvZGUoY29kZSkgewogICAgICAgIHN3aXRjaCAoY29kZSkgewogICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRTeW1ib2wiOwogICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWROdW1iZXJGb3JtYXQiOwogICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICByZXR1cm4gIlByb3BlcnR5TmFtZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgcmV0dXJuICJWYWx1ZUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgcmV0dXJuICJDb2xvbkV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgcmV0dXJuICJDb21tYUV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgcmV0dXJuICJDbG9zZUJyYWNlRXhwZWN0ZWQiOwogICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICByZXR1cm4gIkNsb3NlQnJhY2tldEV4cGVjdGVkIjsKICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgcmV0dXJuICJFbmRPZkZpbGVFeHBlY3RlZCI7CiAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICByZXR1cm4gIkludmFsaWRDb21tZW50VG9rZW4iOwogICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgcmV0dXJuICJVbmV4cGVjdGVkRW5kT2ZDb21tZW50IjsKICAgICAgICAgIGNhc2UgMTI6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mU3RyaW5nIjsKICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgIHJldHVybiAiVW5leHBlY3RlZEVuZE9mTnVtYmVyIjsKICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZFVuaWNvZGUiOwogICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgcmV0dXJuICJJbnZhbGlkRXNjYXBlQ2hhcmFjdGVyIjsKICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgIHJldHVybiAiSW52YWxpZENoYXJhY3RlciI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAiPHVua25vd24gUGFyc2VFcnJvckNvZGU+IjsKICAgICAgfQogICAgICBleHBvcnRzMy5wcmludFBhcnNlRXJyb3JDb2RlID0gcHJpbnRQYXJzZUVycm9yQ29kZTsKICAgICAgZnVuY3Rpb24gZm9ybWF0KGRvY3VtZW50VGV4dCwgcmFuZ2UsIG9wdGlvbnMpIHsKICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdChkb2N1bWVudFRleHQsIHJhbmdlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5mb3JtYXQgPSBmb3JtYXQ7CiAgICAgIGZ1bmN0aW9uIG1vZGlmeSh0ZXh0LCBwYXRoLCB2YWx1ZSwgb3B0aW9ucykgewogICAgICAgIHJldHVybiBlZGl0LnNldFByb3BlcnR5KHRleHQsIHBhdGgsIHZhbHVlLCBvcHRpb25zKTsKICAgICAgfQogICAgICBleHBvcnRzMy5tb2RpZnkgPSBtb2RpZnk7CiAgICAgIGZ1bmN0aW9uIGFwcGx5RWRpdHModGV4dCwgZWRpdHMpIHsKICAgICAgICBsZXQgc29ydGVkRWRpdHMgPSBlZGl0cy5zbGljZSgwKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICBjb25zdCBkaWZmID0gYS5vZmZzZXQgLSBiLm9mZnNldDsKICAgICAgICAgIGlmIChkaWZmID09PSAwKSB7CiAgICAgICAgICAgIHJldHVybiBhLmxlbmd0aCAtIGIubGVuZ3RoOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGRpZmY7CiAgICAgICAgfSk7CiAgICAgICAgbGV0IGxhc3RNb2RpZmllZE9mZnNldCA9IHRleHQubGVuZ3RoOwogICAgICAgIGZvciAobGV0IGkgPSBzb3J0ZWRFZGl0cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgewogICAgICAgICAgbGV0IGUgPSBzb3J0ZWRFZGl0c1tpXTsKICAgICAgICAgIGlmIChlLm9mZnNldCArIGUubGVuZ3RoIDw9IGxhc3RNb2RpZmllZE9mZnNldCkgewogICAgICAgICAgICB0ZXh0ID0gZWRpdC5hcHBseUVkaXQodGV4dCwgZSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk92ZXJsYXBwaW5nIGVkaXQiKTsKICAgICAgICAgIH0KICAgICAgICAgIGxhc3RNb2RpZmllZE9mZnNldCA9IGUub2Zmc2V0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGV4dDsKICAgICAgfQogICAgICBleHBvcnRzMy5hcHBseUVkaXRzID0gYXBwbHlFZGl0czsKICAgIH0pOwogIH0KfSk7CgovLyAuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanMKdmFyIHJlcXVpcmVfbWV0YWRhdGEyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi9tZXRhZGF0YS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZU1ldGFkYXRhID0gZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IHZvaWQgMDsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgZXhwb3J0czIuSnNvbldvcmtzcGFjZVN5bWJvbCA9IFN5bWJvbC5mb3IoIkBhbmd1bGFyL2NvcmU6d29ya3NwYWNlLWpzb24iKTsKICAgIGZ1bmN0aW9uIGVzY2FwZUtleShrZXkpIHsKICAgICAgcmV0dXJuIGtleS5yZXBsYWNlKCJ+IiwgIn4wIikucmVwbGFjZSgiLyIsICJ+MSIpOwogICAgfQogICAgdmFyIEpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IGNsYXNzIHsKICAgICAgZmlsZVBhdGg7CiAgICAgIGFzdDsKICAgICAgcmF3OwogICAgICBjaGFuZ2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgaGFzTGVnYWN5VGFyZ2V0c05hbWUgPSB0cnVlOwogICAgICBjb25zdHJ1Y3RvcihmaWxlUGF0aCwgYXN0LCByYXcpIHsKICAgICAgICB0aGlzLmZpbGVQYXRoID0gZmlsZVBhdGg7CiAgICAgICAgdGhpcy5hc3QgPSBhc3Q7CiAgICAgICAgdGhpcy5yYXcgPSByYXc7CiAgICAgIH0KICAgICAgZ2V0IGhhc0NoYW5nZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplID4gMDsKICAgICAgfQogICAgICBnZXQgY2hhbmdlQ291bnQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbmdlcy5zaXplOwogICAgICB9CiAgICAgIGdldE5vZGVWYWx1ZUZyb21Bc3QocGF0aCkgewogICAgICAgIGNvbnN0IG5vZGUgPSAoMCwganNvbmNfcGFyc2VyXzEuZmluZE5vZGVBdExvY2F0aW9uKSh0aGlzLmFzdCwgcGF0aCk7CiAgICAgICAgcmV0dXJuIG5vZGUgJiYgKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkobm9kZSk7CiAgICAgIH0KICAgICAgZmluZENoYW5nZXNGb3JQYXRoKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5jaGFuZ2VzLmdldChwYXRoKTsKICAgICAgfQogICAgICBhZGRDaGFuZ2UoanNvblBhdGgsIHZhbHVlLCB0eXBlMikgewogICAgICAgIGxldCBjdXJyZW50UGF0aCA9ICIiOwogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBqc29uUGF0aC5sZW5ndGggLSAxOyBpbmRleCsrKSB7CiAgICAgICAgICBjdXJyZW50UGF0aCA9IGN1cnJlbnRQYXRoICsgIi8iICsgZXNjYXBlS2V5KGpzb25QYXRoW2luZGV4XSk7CiAgICAgICAgICBpZiAodGhpcy5jaGFuZ2VzLmhhcyhjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBjb25zdCBwYXRoS2V5ID0gIi8iICsganNvblBhdGgubWFwKChrKSA9PiBlc2NhcGVLZXkoaykpLmpvaW4oIi8iKTsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLmNoYW5nZXMua2V5cygpKSB7CiAgICAgICAgICBpZiAoa2V5LnN0YXJ0c1dpdGgocGF0aEtleSArICIvIikpIHsKICAgICAgICAgICAgdGhpcy5jaGFuZ2VzLmRlbGV0ZShrZXkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLmNoYW5nZXMuc2V0KHBhdGhLZXksIHsganNvblBhdGgsIHR5cGU6IHR5cGUyLCB2YWx1ZSB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YSA9IEpzb25Xb3Jrc3BhY2VNZXRhZGF0YTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcwp2YXIgcmVxdWlyZV91dGlsaXRpZXMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuY3JlYXRlVmlydHVhbEFzdE9iamVjdCA9IGNyZWF0ZVZpcnR1YWxBc3RPYmplY3Q7CiAgICB2YXIganNvbl8xID0gcmVxdWlyZV9qc29uKCk7CiAgICBmdW5jdGlvbiBjcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KHJvb3QsIG9wdGlvbnMgPSB7fSkgewogICAgICBjb25zdCByZXBvcnRlciA9IChwYXRoLCB0YXJnZXQsIG9sZFZhbHVlLCBuZXdWYWx1ZSkgPT4gewogICAgICAgIGlmICghb3B0aW9ucy5saXN0ZW5lcikgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAob2xkVmFsdWUgPT09IG5ld1ZhbHVlIHx8IEpTT04uc3RyaW5naWZ5KG9sZFZhbHVlKSA9PT0gSlNPTi5zdHJpbmdpZnkobmV3VmFsdWUpKSB7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aC5zbGljZSgwLCAtMSksIHRhcmdldCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIG9wdGlvbnMubGlzdGVuZXIocGF0aCwgbmV3VmFsdWUpOwogICAgICAgIH0KICAgICAgfTsKICAgICAgcmV0dXJuIGNyZWF0ZShBcnJheS5pc0FycmF5KHJvb3QpID8gWy4uLnJvb3RdIDogeyAuLi5yb290IH0sIFtdLCByZXBvcnRlciwgbmV3IFNldChvcHRpb25zLmV4Y2x1ZGUpLCBvcHRpb25zLmluY2x1ZGU/Lmxlbmd0aCA/IG5ldyBTZXQob3B0aW9ucy5pbmNsdWRlKSA6IHZvaWQgMCk7CiAgICB9CiAgICBmdW5jdGlvbiBjcmVhdGUob2JqLCBwYXRoLCByZXBvcnRlciwgZXhjbHVkZWQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpLCBpbmNsdWRlZCkgewogICAgICByZXR1cm4gbmV3IFByb3h5KG9iaiwgewogICAgICAgIGdldE93blByb3BlcnR5RGVzY3JpcHRvcih0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwgcCk7CiAgICAgICAgfSwKICAgICAgICBoYXModGFyZ2V0LCBwKSB7CiAgICAgICAgICBpZiAodHlwZW9mIHAgPT09ICJzeW1ib2wiIHx8IGV4Y2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwKTsKICAgICAgICB9LAogICAgICAgIGdldCh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkgfHwgaW5jbHVkZWQgJiYgIWluY2x1ZGVkLmhhcyhwKSkgewogICAgICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgdmFsdWUgPSBSZWZsZWN0LmdldCh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoKDAsIGpzb25fMS5pc0pzb25PYmplY3QpKHZhbHVlKSAmJiAhKHZhbHVlIGluc3RhbmNlb2YgTWFwKSB8fCBBcnJheS5pc0FycmF5KHZhbHVlKSkgewogICAgICAgICAgICByZXR1cm4gY3JlYXRlKHZhbHVlLCBbLi4ucGF0aCwgcF0sIHJlcG9ydGVyKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHNldCh0YXJnZXQsIHAsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoZXhjbHVkZWQuaGFzKHApIHx8IGluY2x1ZGVkICYmICFpbmNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlUHJvcGVydHk/Lih0YXJnZXQsIHApID8/IGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgICBjb25zdCBleGlzdGluZ1ZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcCk7CiAgICAgICAgICBpZiAoUmVmbGVjdC5zZXQodGFyZ2V0LCBwLCB2YWx1ZSkpIHsKICAgICAgICAgICAgcmVwb3J0ZXIoWy4uLnBhdGgsIHBdLCB0YXJnZXQsIGV4aXN0aW5nVmFsdWUsIHZhbHVlKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSwKICAgICAgICBkZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApIHsKICAgICAgICAgIGlmIChleGNsdWRlZC5oYXMocCkpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWxldGVQcm9wZXJ0eSh0YXJnZXQsIHApOwogICAgICAgICAgfQogICAgICAgICAgY29uc3QgZXhpc3RpbmdWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZSh0YXJnZXQsIHApOwogICAgICAgICAgaWYgKFJlZmxlY3QuZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwKSkgewogICAgICAgICAgICByZXBvcnRlcihbLi4ucGF0aCwgcF0sIHRhcmdldCwgZXhpc3RpbmdWYWx1ZSwgdm9pZCAwKTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9LAogICAgICAgIGRlZmluZVByb3BlcnR5KHRhcmdldCwgcCwgYXR0cmlidXRlcykgewogICAgICAgICAgaWYgKHR5cGVvZiBwID09PSAic3ltYm9sIikgewogICAgICAgICAgICByZXR1cm4gUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIHAsIGF0dHJpYnV0ZXMpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0sCiAgICAgICAgb3duS2V5cyh0YXJnZXQpIHsKICAgICAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KS5maWx0ZXIoKHApID0+ICFleGNsdWRlZC5oYXMocCkgJiYgKCFpbmNsdWRlZCB8fCBpbmNsdWRlZC5oYXMocCkpKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gZ2V0Q3VycmVudFZhbHVlKHRhcmdldCwgcHJvcGVydHkpIHsKICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSAmJiBpc0Zpbml0ZSgrcHJvcGVydHkpKSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFsrcHJvcGVydHldOwogICAgICB9CiAgICAgIGlmICh0YXJnZXQgJiYgcHJvcGVydHkgaW4gdGFyZ2V0KSB7CiAgICAgICAgcmV0dXJuIHRhcmdldFtwcm9wZXJ0eV07CiAgICAgIH0KICAgICAgcmV0dXJuIHZvaWQgMDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcwp2YXIgcmVxdWlyZV9yZWFkZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3JlYWRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucmVhZEpzb25Xb3Jrc3BhY2UgPSByZWFkSnNvbldvcmtzcGFjZTsKICAgIHZhciBqc29uY19wYXJzZXJfMSA9IHJlcXVpcmVfbWFpbigpOwogICAgdmFyIHV0aWxzXzEgPSByZXF1aXJlX3V0aWxzKCk7CiAgICB2YXIgZGVmaW5pdGlvbnNfMSA9IHJlcXVpcmVfZGVmaW5pdGlvbnMoKTsKICAgIHZhciBtZXRhZGF0YV8xID0gcmVxdWlyZV9tZXRhZGF0YTIoKTsKICAgIHZhciB1dGlsaXRpZXNfMSA9IHJlcXVpcmVfdXRpbGl0aWVzKCk7CiAgICB2YXIgQU5HVUxBUl9XT1JLU1BBQ0VfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAibmV3UHJvamVjdFJvb3QiLCAic2NoZW1hdGljcyJdKTsKICAgIHZhciBBTkdVTEFSX1BST0pFQ1RfRVhURU5TSU9OUyA9IE9iamVjdC5mcmVlemUoWyJjbGkiLCAic2NoZW1hdGljcyIsICJwcm9qZWN0VHlwZSIsICJpMThuIl0pOwogICAgYXN5bmMgZnVuY3Rpb24gcmVhZEpzb25Xb3Jrc3BhY2UocGF0aCwgaG9zdCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IGhvc3QucmVhZEZpbGUocGF0aCk7CiAgICAgIGlmIChyYXcgPT09IHZvaWQgMCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIHJlYWQgd29ya3NwYWNlIGZpbGUuIik7CiAgICAgIH0KICAgICAgY29uc3QgYXN0ID0gKDAsIGpzb25jX3BhcnNlcl8xLnBhcnNlVHJlZSkocmF3LCB2b2lkIDAsIHsgYWxsb3dUcmFpbGluZ0NvbW1hOiB0cnVlLCBkaXNhbGxvd0NvbW1lbnRzOiBmYWxzZSB9KTsKICAgICAgaWYgKGFzdD8udHlwZSAhPT0gIm9iamVjdCIgfHwgIWFzdC5jaGlsZHJlbikgewogICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCB3b3Jrc3BhY2UgZmlsZSAtIGV4cGVjdGVkIEpTT04gb2JqZWN0LiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb25Ob2RlID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikoYXN0LCBbInZlcnNpb24iXSk7CiAgICAgIGlmICghdmVyc2lvbk5vZGUpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZm9ybWF0IC0gdmVyc2lvbiBzcGVjaWZpZXIgbm90IGZvdW5kLiIpOwogICAgICB9CiAgICAgIGNvbnN0IHZlcnNpb24gPSB2ZXJzaW9uTm9kZS52YWx1ZTsKICAgICAgaWYgKHZlcnNpb24gIT09IDEpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZm9ybWF0IHZlcnNpb24gZGV0ZWN0ZWQgLSBFeHBlY3RlZDpbIDEgXSBGb3VuZDogWyAke3ZlcnNpb259IF1gKTsKICAgICAgfQogICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgIGhvc3QsCiAgICAgICAgbWV0YWRhdGE6IG5ldyBtZXRhZGF0YV8xLkpzb25Xb3Jrc3BhY2VNZXRhZGF0YShwYXRoLCBhc3QsIHJhdyksCiAgICAgICAgdHJhY2tDaGFuZ2VzOiB0cnVlLAogICAgICAgIHVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zOiAvKiBAX19QVVJFX18gKi8gbmV3IFNldChbCiAgICAgICAgICAuLi5BTkdVTEFSX1dPUktTUEFDRV9FWFRFTlNJT05TLAogICAgICAgICAgLi4ub3B0aW9ucy5hbGxvd2VkV29ya3NwYWNlRXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIHVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9uczogLyogQF9fUFVSRV9fICovIG5ldyBTZXQoWwogICAgICAgICAgLi4uQU5HVUxBUl9QUk9KRUNUX0VYVEVOU0lPTlMsCiAgICAgICAgICAuLi5vcHRpb25zLmFsbG93ZWRQcm9qZWN0RXh0ZW5zaW9ucyA/PyBbXQogICAgICAgIF0pLAogICAgICAgIGVycm9yKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7CiAgICAgICAgfSwKICAgICAgICB3YXJuKG1lc3NhZ2UsIF9ub2RlKSB7CiAgICAgICAgICBjb25zb2xlLndhcm4obWVzc2FnZSk7CiAgICAgICAgfQogICAgICB9OwogICAgICBjb25zdCB3b3Jrc3BhY2UgPSBwYXJzZVdvcmtzcGFjZShhc3QsIGNvbnRleHQpOwogICAgICByZXR1cm4gd29ya3NwYWNlOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VXb3Jrc3BhY2Uod29ya3NwYWNlTm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgcHJvamVjdHM7CiAgICAgIGxldCBleHRlbnNpb25zOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICB9CiAgICAgIGNvbnN0IHdvcmtzcGFjZU5vZGVWYWx1ZSA9ICgwLCBqc29uY19wYXJzZXJfMS5nZXROb2RlVmFsdWUpKHdvcmtzcGFjZU5vZGUpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMod29ya3NwYWNlTm9kZVZhbHVlKSkgewogICAgICAgIGlmIChuYW1lID09PSAiJHNjaGVtYSIgfHwgbmFtZSA9PT0gInZlcnNpb24iKSB7CiAgICAgICAgfSBlbHNlIGlmIChuYW1lID09PSAicHJvamVjdHMiKSB7CiAgICAgICAgICBjb25zdCBub2RlcyA9ICgwLCBqc29uY19wYXJzZXJfMS5maW5kTm9kZUF0TG9jYXRpb24pKHdvcmtzcGFjZU5vZGUsIFsicHJvamVjdHMiXSk7CiAgICAgICAgICBpZiAoISgwLCB1dGlsc18xLmlzSnNvbk9iamVjdCkodmFsdWUpIHx8ICFub2RlcykgewogICAgICAgICAgICBjb250ZXh0LmVycm9yKCdJbnZhbGlkICJwcm9qZWN0cyIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC4nLCB2YWx1ZSk7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgcHJvamVjdHMgPSBwYXJzZVByb2plY3RzT2JqZWN0KG5vZGVzLCBjb250ZXh0KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRXb3Jrc3BhY2VFeHRlbnNpb25zLmhhcyhuYW1lKSAmJiAhL15bYS16XXsxLDN9LS4qLy50ZXN0KG5hbWUpKSB7CiAgICAgICAgICAgIGNvbnRleHQud2FybihgV29ya3NwYWNlIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkgZm91bmQuYCwgbmFtZSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXh0ZW5zaW9ucykgewogICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSkgPT4gewogICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgbmFtZV0sIG5ld1ZhbHVlLCAicHJvamVjdCIpOwogICAgICAgIH07CiAgICAgIH0KICAgICAgY29uc3QgcHJvamVjdENvbGxlY3Rpb24gPSBuZXcgZGVmaW5pdGlvbnNfMS5Qcm9qZWN0RGVmaW5pdGlvbkNvbGxlY3Rpb24ocHJvamVjdHMsIGNvbGxlY3Rpb25MaXN0ZW5lcik7CiAgICAgIHJldHVybiB7CiAgICAgICAgW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF06IGpzb25NZXRhZGF0YSwKICAgICAgICBwcm9qZWN0czogcHJvamVjdENvbGxlY3Rpb24sCiAgICAgICAgLy8gSWYgbm90IHRyYWNraW5nIGNoYW5nZXMgdGhlIGBleHRlbnNpb25zYCB2YXJpYWJsZSB3aWxsIGNvbnRhaW4gdGhlIHBhcnNlZAogICAgICAgIC8vIHZhbHVlcy4gIE90aGVyd2lzZSB0aGUgZXh0ZW5zaW9ucyBhcmUgdHJhY2tlZCB2aWEgYSB2aXJ0dWFsIEFTVCBvYmplY3QuCiAgICAgICAgZXh0ZW5zaW9uczogZXh0ZW5zaW9ucyA/PyAoMCwgdXRpbGl0aWVzXzEuY3JlYXRlVmlydHVhbEFzdE9iamVjdCkod29ya3NwYWNlTm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbIiRzY2hlbWEiLCAidmVyc2lvbiIsICJwcm9qZWN0cyJdLAogICAgICAgICAgbGlzdGVuZXIocGF0aCwgdmFsdWUpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShwYXRoLCB2YWx1ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlUHJvamVjdHNPYmplY3QocHJvamVjdHNOb2RlLCBjb250ZXh0KSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcygoMCwganNvbmNfcGFyc2VyXzEuZ2V0Tm9kZVZhbHVlKShwcm9qZWN0c05vZGUpKSkgewogICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdHNOb2RlLCBbbmFtZV0pOwogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICBjb250ZXh0Lndhcm4oIlNraXBwaW5nIGludmFsaWQgcHJvamVjdCB2YWx1ZTsgZXhwZWN0ZWQgYW4gb2JqZWN0LiIsIHZhbHVlKTsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICBwcm9qZWN0c1tuYW1lXSA9IHBhcnNlUHJvamVjdChuYW1lLCBub2RlcywgY29udGV4dCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHByb2plY3RzOwogICAgfQogICAgZnVuY3Rpb24gcGFyc2VQcm9qZWN0KHByb2plY3ROYW1lLCBwcm9qZWN0Tm9kZSwgY29udGV4dCkgewogICAgICBjb25zdCBqc29uTWV0YWRhdGEgPSBjb250ZXh0Lm1ldGFkYXRhOwogICAgICBsZXQgdGFyZ2V0czsKICAgICAgbGV0IGhhc1RhcmdldHMgPSBmYWxzZTsKICAgICAgbGV0IGV4dGVuc2lvbnM7CiAgICAgIGxldCBwcm9wZXJ0aWVzOwogICAgICBpZiAoIWNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgZXh0ZW5zaW9ucyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIHByb3BlcnRpZXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICAgICAgfQogICAgICBjb25zdCBwcm9qZWN0Tm9kZVZhbHVlID0gKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkocHJvamVjdE5vZGUpOwogICAgICBpZiAoISgicm9vdCIgaW4gcHJvamVjdE5vZGVWYWx1ZSkpIHsKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb2plY3QgIiR7cHJvamVjdE5hbWV9IiBpcyBtaXNzaW5nIGEgcmVxdWlyZWQgcHJvcGVydHkgInJvb3QiLmApOwogICAgICB9CiAgICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhwcm9qZWN0Tm9kZVZhbHVlKSkgewogICAgICAgIHN3aXRjaCAobmFtZSkgewogICAgICAgICAgY2FzZSAidGFyZ2V0cyI6CiAgICAgICAgICBjYXNlICJhcmNoaXRlY3QiOiB7CiAgICAgICAgICAgIGNvbnN0IG5vZGVzID0gKDAsIGpzb25jX3BhcnNlcl8xLmZpbmROb2RlQXRMb2NhdGlvbikocHJvamVjdE5vZGUsIFtuYW1lXSk7CiAgICAgICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkgfHwgIW5vZGVzKSB7CiAgICAgICAgICAgICAgY29udGV4dC5lcnJvcihgSW52YWxpZCAiJHtuYW1lfSIgZmllbGQgZm91bmQ7IGV4cGVjdGVkIGFuIG9iamVjdC5gLCB2YWx1ZSk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaGFzVGFyZ2V0cyA9IHRydWU7CiAgICAgICAgICAgIHRhcmdldHMgPSBwYXJzZVRhcmdldHNPYmplY3QocHJvamVjdE5hbWUsIG5vZGVzLCBjb250ZXh0KTsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmhhc0xlZ2FjeVRhcmdldHNOYW1lID0gbmFtZSA9PT0gImFyY2hpdGVjdCI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgY2FzZSAicHJlZml4IjoKICAgICAgICAgIGNhc2UgInJvb3QiOgogICAgICAgICAgY2FzZSAic291cmNlUm9vdCI6CiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgICAgY29udGV4dC53YXJuKGBQcm9qZWN0IHByb3BlcnR5ICIke25hbWV9IiBzaG91bGQgYmUgYSBzdHJpbmcuYCwgdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7CiAgICAgICAgICAgICAgcHJvcGVydGllc1tuYW1lXSA9IHZhbHVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYgKCFjb250ZXh0LnVucHJlZml4ZWRQcm9qZWN0RXh0ZW5zaW9ucy5oYXMobmFtZSkgJiYgIS9eW2Etel17MSwzfS0uKi8udGVzdChuYW1lKSkgewogICAgICAgICAgICAgIGNvbnRleHQud2FybihgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nIGNvbnRhaW5zIGV4dGVuc2lvbiB3aXRoIGludmFsaWQgbmFtZSAoJHtuYW1lfSkuYCwgbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGV4dGVuc2lvbnMpIHsKICAgICAgICAgICAgICBleHRlbnNpb25zW25hbWVdID0gdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICB9CiAgICAgIGxldCBjb2xsZWN0aW9uTGlzdGVuZXI7CiAgICAgIGlmIChjb250ZXh0LnRyYWNrQ2hhbmdlcykgewogICAgICAgIGNvbGxlY3Rpb25MaXN0ZW5lciA9IChuYW1lLCBuZXdWYWx1ZSwgY29sbGVjdGlvbikgPT4gewogICAgICAgICAgaWYgKGhhc1RhcmdldHMpIHsKICAgICAgICAgICAganNvbk1ldGFkYXRhLmFkZENoYW5nZShbInByb2plY3RzIiwgcHJvamVjdE5hbWUsICJ0YXJnZXRzIiwgbmFtZV0sIG5ld1ZhbHVlLCAidGFyZ2V0Iik7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgInRhcmdldHMiXSwgY29sbGVjdGlvbiwgInRhcmdldGNvbGxlY3Rpb24iKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CiAgICAgIGNvbnN0IGJhc2UgPSB7CiAgICAgICAgdGFyZ2V0czogbmV3IGRlZmluaXRpb25zXzEuVGFyZ2V0RGVmaW5pdGlvbkNvbGxlY3Rpb24odGFyZ2V0cywgY29sbGVjdGlvbkxpc3RlbmVyKSwKICAgICAgICAvLyBJZiBub3QgdHJhY2tpbmcgY2hhbmdlcyB0aGUgYGV4dGVuc2lvbnNgIHZhcmlhYmxlIHdpbGwgY29udGFpbiB0aGUgcGFyc2VkCiAgICAgICAgLy8gdmFsdWVzLiAgT3RoZXJ3aXNlIHRoZSBleHRlbnNpb25zIGFyZSB0cmFja2VkIHZpYSBhIHZpcnR1YWwgQVNUIG9iamVjdC4KICAgICAgICBleHRlbnNpb25zOiBleHRlbnNpb25zID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgICBleGNsdWRlOiBbImFyY2hpdGVjdCIsICJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgInRhcmdldHMiXSwKICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAuLi5wYXRoXSwgdmFsdWUpOwogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH07CiAgICAgIGNvbnN0IGJhc2VLZXlzID0gbmV3IFNldChPYmplY3Qua2V5cyhiYXNlKSk7CiAgICAgIGNvbnN0IHByb2plY3QgPSBwcm9wZXJ0aWVzID8/ICgwLCB1dGlsaXRpZXNfMS5jcmVhdGVWaXJ0dWFsQXN0T2JqZWN0KShwcm9qZWN0Tm9kZVZhbHVlLCB7CiAgICAgICAgaW5jbHVkZTogWyJwcmVmaXgiLCAicm9vdCIsICJzb3VyY2VSb290IiwgLi4uYmFzZUtleXNdLAogICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlKSB7CiAgICAgICAgICBpZiAoIWJhc2VLZXlzLmhhcyhwYXRoWzBdKSkgewogICAgICAgICAgICBqc29uTWV0YWRhdGEuYWRkQ2hhbmdlKFsicHJvamVjdHMiLCBwcm9qZWN0TmFtZSwgLi4ucGF0aF0sIHZhbHVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihwcm9qZWN0LCBiYXNlKTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnNlVGFyZ2V0c09iamVjdChwcm9qZWN0TmFtZSwgdGFyZ2V0c05vZGUsIGNvbnRleHQpIHsKICAgICAgY29uc3QganNvbk1ldGFkYXRhID0gY29udGV4dC5tZXRhZGF0YTsKICAgICAgY29uc3QgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoKDAsIGpzb25jX3BhcnNlcl8xLmdldE5vZGVWYWx1ZSkodGFyZ2V0c05vZGUpKSkgewogICAgICAgIGlmICghKDAsIHV0aWxzXzEuaXNKc29uT2JqZWN0KSh2YWx1ZSkpIHsKICAgICAgICAgIGNvbnRleHQud2FybigiU2tpcHBpbmcgaW52YWxpZCB0YXJnZXQgdmFsdWU7IGV4cGVjdGVkIGFuIG9iamVjdC4iLCB2YWx1ZSk7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKGNvbnRleHQudHJhY2tDaGFuZ2VzKSB7CiAgICAgICAgICB0YXJnZXRzW25hbWVdID0gKDAsIHV0aWxpdGllc18xLmNyZWF0ZVZpcnR1YWxBc3RPYmplY3QpKHZhbHVlLCB7CiAgICAgICAgICAgIGluY2x1ZGU6IFsiYnVpbGRlciIsICJvcHRpb25zIiwgImNvbmZpZ3VyYXRpb25zIiwgImRlZmF1bHRDb25maWd1cmF0aW9uIl0sCiAgICAgICAgICAgIGxpc3RlbmVyKHBhdGgsIHZhbHVlMikgewogICAgICAgICAgICAgIGpzb25NZXRhZGF0YS5hZGRDaGFuZ2UoWyJwcm9qZWN0cyIsIHByb2plY3ROYW1lLCAidGFyZ2V0cyIsIG5hbWUsIC4uLnBhdGhdLCB2YWx1ZTIpOwogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGFyZ2V0c1tuYW1lXSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gdGFyZ2V0czsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcwp2YXIgcmVxdWlyZV93cml0ZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3dyaXRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVKc29uV29ya3NwYWNlID0gd3JpdGVKc29uV29ya3NwYWNlOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgbm9kZV9vc18xID0gcmVxdWlyZSgibm9kZTpvcyIpOwogICAgdmFyIG1ldGFkYXRhXzEgPSByZXF1aXJlX21ldGFkYXRhMigpOwogICAgYXN5bmMgZnVuY3Rpb24gd3JpdGVKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgaG9zdCwgcGF0aCwgb3B0aW9ucyA9IHt9KSB7CiAgICAgIGNvbnN0IG1ldGFkYXRhID0gd29ya3NwYWNlW21ldGFkYXRhXzEuSnNvbldvcmtzcGFjZVN5bWJvbF07CiAgICAgIGlmIChtZXRhZGF0YSkgewogICAgICAgIGlmICghbWV0YWRhdGEuaGFzQ2hhbmdlcykgewogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCBkYXRhID0gdXBkYXRlSnNvbldvcmtzcGFjZShtZXRhZGF0YSk7CiAgICAgICAgcmV0dXJuIGhvc3Qud3JpdGVGaWxlKHBhdGggPz8gbWV0YWRhdGEuZmlsZVBhdGgsIGRhdGEpOwogICAgICB9IGVsc2UgewogICAgICAgIGlmICghcGF0aCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJwYXRoIG9wdGlvbiBpcyByZXF1aXJlZCIpOwogICAgICAgIH0KICAgICAgICBjb25zdCBvYmogPSBjb252ZXJ0SnNvbldvcmtzcGFjZSh3b3Jrc3BhY2UsIG9wdGlvbnMuc2NoZW1hKTsKICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5zdHJpbmdpZnkob2JqLCBudWxsLCAyKTsKICAgICAgICByZXR1cm4gaG9zdC53cml0ZUZpbGUocGF0aCwgZGF0YSk7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uV29ya3NwYWNlKHdvcmtzcGFjZSwgc2NoZW1hMikgewogICAgICBjb25zdCBvYmogPSB7CiAgICAgICAgJHNjaGVtYTogc2NoZW1hMiB8fCAiLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24iLAogICAgICAgIHZlcnNpb246IDEsCiAgICAgICAgLi4ud29ya3NwYWNlLmV4dGVuc2lvbnMsCiAgICAgICAgLi4uaXNFbXB0eSh3b3Jrc3BhY2UucHJvamVjdHMpID8ge30gOiB7IHByb2plY3RzOiBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHdvcmtzcGFjZS5wcm9qZWN0cykgfQogICAgICB9OwogICAgICByZXR1cm4gb2JqOwogICAgfQogICAgZnVuY3Rpb24gY29udmVydEpzb25Qcm9qZWN0Q29sbGVjdGlvbihjb2xsZWN0aW9uKSB7CiAgICAgIGNvbnN0IHByb2plY3RzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCBwcm9qZWN0XSBvZiBjb2xsZWN0aW9uKSB7CiAgICAgICAgcHJvamVjdHNbcHJvamVjdE5hbWVdID0gY29udmVydEpzb25Qcm9qZWN0KHByb2plY3QpOwogICAgICB9CiAgICAgIHJldHVybiBwcm9qZWN0czsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnZlcnRKc29uUHJvamVjdChwcm9qZWN0KSB7CiAgICAgIGxldCB0YXJnZXRzOwogICAgICBpZiAocHJvamVjdC50YXJnZXRzLnNpemUgPiAwKSB7CiAgICAgICAgdGFyZ2V0cyA9IC8qIEBfX1BVUkVfXyAqLyBPYmplY3QuY3JlYXRlKG51bGwpOwogICAgICAgIGZvciAoY29uc3QgW3RhcmdldE5hbWUsIHRhcmdldF0gb2YgcHJvamVjdC50YXJnZXRzKSB7CiAgICAgICAgICB0YXJnZXRzW3RhcmdldE5hbWVdID0gY29udmVydEpzb25UYXJnZXQodGFyZ2V0KTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY29uc3Qgb2JqID0gewogICAgICAgIC4uLnByb2plY3QuZXh0ZW5zaW9ucywKICAgICAgICByb290OiBwcm9qZWN0LnJvb3QsCiAgICAgICAgLi4ucHJvamVjdC5zb3VyY2VSb290ID09PSB2b2lkIDAgPyB7fSA6IHsgc291cmNlUm9vdDogcHJvamVjdC5zb3VyY2VSb290IH0sCiAgICAgICAgLi4ucHJvamVjdC5wcmVmaXggPT09IHZvaWQgMCA/IHt9IDogeyBwcmVmaXg6IHByb2plY3QucHJlZml4IH0sCiAgICAgICAgLi4udGFyZ2V0cyA9PT0gdm9pZCAwID8ge30gOiB7IGFyY2hpdGVjdDogdGFyZ2V0cyB9CiAgICAgIH07CiAgICAgIHJldHVybiBvYmo7CiAgICB9CiAgICBmdW5jdGlvbiBpc0VtcHR5KG9iaikgewogICAgICByZXR1cm4gb2JqID09PSB2b2lkIDAgfHwgT2JqZWN0LmtleXMob2JqKS5sZW5ndGggPT09IDA7CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldCh0YXJnZXQpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBidWlsZGVyOiB0YXJnZXQuYnVpbGRlciwKICAgICAgICAuLi5pc0VtcHR5KHRhcmdldC5vcHRpb25zKSA/IHt9IDogeyBvcHRpb25zOiB0YXJnZXQub3B0aW9ucyB9LAogICAgICAgIC4uLmlzRW1wdHkodGFyZ2V0LmNvbmZpZ3VyYXRpb25zKSA/IHt9IDogeyBjb25maWd1cmF0aW9uczogdGFyZ2V0LmNvbmZpZ3VyYXRpb25zIH0sCiAgICAgICAgLi4udGFyZ2V0LmRlZmF1bHRDb25maWd1cmF0aW9uID09PSB2b2lkIDAgPyB7fSA6IHsgZGVmYXVsdENvbmZpZ3VyYXRpb246IHRhcmdldC5kZWZhdWx0Q29uZmlndXJhdGlvbiB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBjb252ZXJ0SnNvblRhcmdldENvbGxlY3Rpb24oY29sbGVjdGlvbikgewogICAgICBjb25zdCB0YXJnZXRzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCk7CiAgICAgIGZvciAoY29uc3QgW3Byb2plY3ROYW1lLCB0YXJnZXRdIG9mIGNvbGxlY3Rpb24pIHsKICAgICAgICB0YXJnZXRzW3Byb2plY3ROYW1lXSA9IGNvbnZlcnRKc29uVGFyZ2V0KHRhcmdldCk7CiAgICAgIH0KICAgICAgcmV0dXJuIHRhcmdldHM7CiAgICB9CiAgICBmdW5jdGlvbiBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpIHsKICAgICAgaWYgKHZhbHVlID09PSB2b2lkIDApIHsKICAgICAgICByZXR1cm4gdm9pZCAwOwogICAgICB9CiAgICAgIHN3aXRjaCAodHlwZTIpIHsKICAgICAgICBjYXNlICJwcm9qZWN0IjoKICAgICAgICAgIHJldHVybiBjb252ZXJ0SnNvblByb2plY3QodmFsdWUpOwogICAgICAgIGNhc2UgInByb2plY3Rjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgcHJvamVjdHMgPSBjb252ZXJ0SnNvblByb2plY3RDb2xsZWN0aW9uKHZhbHVlKTsKICAgICAgICAgIHJldHVybiBpc0VtcHR5KHByb2plY3RzKSA/IHZvaWQgMCA6IHByb2plY3RzOwogICAgICAgIH0KICAgICAgICBjYXNlICJ0YXJnZXQiOgogICAgICAgICAgcmV0dXJuIGNvbnZlcnRKc29uVGFyZ2V0KHZhbHVlKTsKICAgICAgICBjYXNlICJ0YXJnZXRjb2xsZWN0aW9uIjogewogICAgICAgICAgY29uc3QgdGFyZ2V0cyA9IGNvbnZlcnRKc29uVGFyZ2V0Q29sbGVjdGlvbih2YWx1ZSk7CiAgICAgICAgICByZXR1cm4gaXNFbXB0eSh0YXJnZXRzKSA/IHZvaWQgMCA6IHRhcmdldHM7CiAgICAgICAgfQogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICByZXR1cm4gdmFsdWU7CiAgICAgIH0KICAgIH0KICAgIGZ1bmN0aW9uIHVwZGF0ZUpzb25Xb3Jrc3BhY2UobWV0YWRhdGEpIHsKICAgICAgbGV0IHsgcmF3OiBjb250ZW50IH0gPSBtZXRhZGF0YTsKICAgICAgY29uc3QgeyBjaGFuZ2VzLCBoYXNMZWdhY3lUYXJnZXRzTmFtZSB9ID0gbWV0YWRhdGE7CiAgICAgIGZvciAoY29uc3QgeyBqc29uUGF0aCwgdmFsdWUsIHR5cGU6IHR5cGUyIH0gb2YgY2hhbmdlcy52YWx1ZXMoKSkgewogICAgICAgIGlmIChoYXNMZWdhY3lUYXJnZXRzTmFtZSAmJiBqc29uUGF0aFsyXSA9PT0gInRhcmdldHMiKSB7CiAgICAgICAgICBqc29uUGF0aFsyXSA9ICJhcmNoaXRlY3QiOwogICAgICAgIH0KICAgICAgICBjb25zdCBlZGl0cyA9ICgwLCBqc29uY19wYXJzZXJfMS5tb2RpZnkpKGNvbnRlbnQsIGpzb25QYXRoLCBub3JtYWxpemVWYWx1ZSh2YWx1ZSwgdHlwZTIpLCB7CiAgICAgICAgICBmb3JtYXR0aW5nT3B0aW9uczogewogICAgICAgICAgICBpbnNlcnRTcGFjZXM6IHRydWUsCiAgICAgICAgICAgIHRhYlNpemU6IDIsCiAgICAgICAgICAgIGVvbDogZ2V0RU9MKGNvbnRlbnQpCiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgY29udGVudCA9ICgwLCBqc29uY19wYXJzZXJfMS5hcHBseUVkaXRzKShjb250ZW50LCBlZGl0cyk7CiAgICAgIH0KICAgICAgcmV0dXJuIGNvbnRlbnQ7CiAgICB9CiAgICBmdW5jdGlvbiBnZXRFT0woY29udGVudCkgewogICAgICBjb25zdCBDUkxGID0gIlxyXG4iOwogICAgICBjb25zdCBMRiA9ICJcbiI7CiAgICAgIGNvbnN0IG5ld2xpbmVzID0gY29udGVudC5tYXRjaCgvKD86XHI/XG4pL2cpOwogICAgICBpZiAobmV3bGluZXM/Lmxlbmd0aCkgewogICAgICAgIGNvbnN0IGNybGYgPSBuZXdsaW5lcy5maWx0ZXIoKGwpID0+IGwgPT09IENSTEYpLmxlbmd0aDsKICAgICAgICBjb25zdCBsZiA9IG5ld2xpbmVzLmxlbmd0aCAtIGNybGY7CiAgICAgICAgcmV0dXJuIGNybGYgPiBsZiA/IENSTEYgOiBMRjsKICAgICAgfQogICAgICByZXR1cm4gbm9kZV9vc18xLkVPTDsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzCnZhciByZXF1aXJlX2NvcmUzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvY29yZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gdm9pZCAwOwogICAgZXhwb3J0czIuX3Rlc3RfYWRkV29ya3NwYWNlRmlsZSA9IF90ZXN0X2FkZFdvcmtzcGFjZUZpbGU7CiAgICBleHBvcnRzMi5fdGVzdF9yZW1vdmVXb3Jrc3BhY2VGaWxlID0gX3Rlc3RfcmVtb3ZlV29ya3NwYWNlRmlsZTsKICAgIGV4cG9ydHMyLnJlYWRXb3Jrc3BhY2UgPSByZWFkV29ya3NwYWNlOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSB3cml0ZVdvcmtzcGFjZTsKICAgIHZhciB2aXJ0dWFsX2ZzXzEgPSByZXF1aXJlX3ZpcnR1YWxfZnMoKTsKICAgIHZhciByZWFkZXJfMSA9IHJlcXVpcmVfcmVhZGVyKCk7CiAgICB2YXIgd3JpdGVyXzEgPSByZXF1aXJlX3dyaXRlcigpOwogICAgdmFyIGZvcm1hdExvb2t1cCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgdmFyIFdvcmtzcGFjZUZvcm1hdDsKICAgIChmdW5jdGlvbihXb3Jrc3BhY2VGb3JtYXQyKSB7CiAgICAgIFdvcmtzcGFjZUZvcm1hdDJbV29ya3NwYWNlRm9ybWF0MlsiSlNPTiJdID0gMF0gPSAiSlNPTiI7CiAgICB9KShXb3Jrc3BhY2VGb3JtYXQgfHwgKGV4cG9ydHMyLldvcmtzcGFjZUZvcm1hdCA9IFdvcmtzcGFjZUZvcm1hdCA9IHt9KSk7CiAgICBmdW5jdGlvbiBfdGVzdF9hZGRXb3Jrc3BhY2VGaWxlKG5hbWUsIGZvcm1hdCkgewogICAgICB3b3Jrc3BhY2VGaWxlc1tuYW1lXSA9IGZvcm1hdDsKICAgIH0KICAgIGZ1bmN0aW9uIF90ZXN0X3JlbW92ZVdvcmtzcGFjZUZpbGUobmFtZSkgewogICAgICBkZWxldGUgd29ya3NwYWNlRmlsZXNbbmFtZV07CiAgICB9CiAgICB2YXIgd29ya3NwYWNlRmlsZXMgPSB7CiAgICAgICJhbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTiwKICAgICAgIi5hbmd1bGFyLmpzb24iOiBXb3Jrc3BhY2VGb3JtYXQuSlNPTgogICAgfTsKICAgIGFzeW5jIGZ1bmN0aW9uIHJlYWRXb3Jrc3BhY2UocGF0aCwgaG9zdCwgZm9ybWF0KSB7CiAgICAgIGlmIChhd2FpdCBob3N0LmlzRGlyZWN0b3J5KHBhdGgpKSB7CiAgICAgICAgY29uc3QgZGlyZWN0b3J5ID0gKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIGxldCBmb3VuZCA9IGZhbHNlOwogICAgICAgIGZvciAoY29uc3QgW25hbWUsIG5hbWVGb3JtYXRdIG9mIE9iamVjdC5lbnRyaWVzKHdvcmtzcGFjZUZpbGVzKSkgewogICAgICAgICAgaWYgKGZvcm1hdCAhPT0gdm9pZCAwICYmIGZvcm1hdCAhPT0gbmFtZUZvcm1hdCkgewogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHBvdGVudGlhbCA9ICgwLCB2aXJ0dWFsX2ZzXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHZpcnR1YWxfZnNfMS5qb2luKShkaXJlY3RvcnksIG5hbWUpKTsKICAgICAgICAgIGlmIChhd2FpdCBob3N0LmlzRmlsZShwb3RlbnRpYWwpKSB7CiAgICAgICAgICAgIHBhdGggPSBwb3RlbnRpYWw7CiAgICAgICAgICAgIGZvcm1hdCA9IG5hbWVGb3JtYXQ7CiAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZm91bmQpIHsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBhIHdvcmtzcGFjZSBmaWxlIGZvciB3b3Jrc3BhY2UgcGF0aC4gQXJlIHlvdSBtaXNzaW5nIGFuIGBhbmd1bGFyLmpzb25gIG9yIGAuYW5ndWxhci5qc29uYCBmaWxlPyIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChmb3JtYXQgPT09IHZvaWQgMCkgewogICAgICAgIGNvbnN0IGZpbGVuYW1lID0gKDAsIHZpcnR1YWxfZnNfMS5iYXNlbmFtZSkoKDAsIHZpcnR1YWxfZnNfMS5ub3JtYWxpemUpKHBhdGgpKTsKICAgICAgICBpZiAoZmlsZW5hbWUgaW4gd29ya3NwYWNlRmlsZXMpIHsKICAgICAgICAgIGZvcm1hdCA9IHdvcmtzcGFjZUZpbGVzW2ZpbGVuYW1lXTsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZGV0ZXJtaW5lIGZvcm1hdCBmb3Igd29ya3NwYWNlIHBhdGguIik7CiAgICAgIH0KICAgICAgbGV0IHdvcmtzcGFjZTsKICAgICAgc3dpdGNoIChmb3JtYXQpIHsKICAgICAgICBjYXNlIFdvcmtzcGFjZUZvcm1hdC5KU09OOgogICAgICAgICAgd29ya3NwYWNlID0gYXdhaXQgKDAsIHJlYWRlcl8xLnJlYWRKc29uV29ya3NwYWNlKShwYXRoLCBob3N0KTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgICAgZm9ybWF0TG9va3VwLnNldCh3b3Jrc3BhY2UsIFdvcmtzcGFjZUZvcm1hdC5KU09OKTsKICAgICAgcmV0dXJuIHsgd29ya3NwYWNlIH07CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiB3cml0ZVdvcmtzcGFjZSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgsIGZvcm1hdCkgewogICAgICBpZiAoZm9ybWF0ID09PSB2b2lkIDApIHsKICAgICAgICBmb3JtYXQgPSBmb3JtYXRMb29rdXAuZ2V0KHdvcmtzcGFjZSk7CiAgICAgICAgaWYgKGZvcm1hdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkEgZm9ybWF0IGlzIHJlcXVpcmVkIGZvciBjdXN0b20gd29ya3NwYWNlIG9iamVjdHMuIik7CiAgICAgICAgfQogICAgICB9CiAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CiAgICAgICAgY2FzZSBXb3Jrc3BhY2VGb3JtYXQuSlNPTjoKICAgICAgICAgIHJldHVybiAoMCwgd3JpdGVyXzEud3JpdGVKc29uV29ya3NwYWNlKSh3b3Jrc3BhY2UsIGhvc3QsIHBhdGgpOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHdvcmtzcGFjZSBmb3JtYXQuIik7CiAgICAgIH0KICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcwp2YXIgcmVxdWlyZV93b3Jrc3BhY2UgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIud3JpdGVXb3Jrc3BhY2UgPSBleHBvcnRzMi5yZWFkV29ya3NwYWNlID0gZXhwb3J0czIuV29ya3NwYWNlRm9ybWF0ID0gZXhwb3J0czIuY3JlYXRlV29ya3NwYWNlSG9zdCA9IHZvaWQgMDsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2RlZmluaXRpb25zKCksIGV4cG9ydHMyKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3QyKCk7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJjcmVhdGVXb3Jrc3BhY2VIb3N0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaG9zdF8xLmNyZWF0ZVdvcmtzcGFjZUhvc3Q7CiAgICB9IH0pOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfY29yZTMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIldvcmtzcGFjZUZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5Xb3Jrc3BhY2VGb3JtYXQ7CiAgICB9IH0pOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicmVhZFdvcmtzcGFjZSIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIGNvcmVfMS5yZWFkV29ya3NwYWNlOwogICAgfSB9KTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIndyaXRlV29ya3NwYWNlIiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gY29yZV8xLndyaXRlV29ya3NwYWNlOwogICAgfSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9zcmMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19zZXRNb2R1bGVEZWZhdWx0ID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19zZXRNb2R1bGVEZWZhdWx0IHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgdikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgImRlZmF1bHQiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pOwogICAgfSA6IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgb1siZGVmYXVsdCJdID0gdjsKICAgIH0pOwogICAgdmFyIF9faW1wb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9faW1wb3J0U3RhciB8fCAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBvd25LZXlzID0gZnVuY3Rpb24obykgewogICAgICAgIG93bktleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyB8fCBmdW5jdGlvbihvMikgewogICAgICAgICAgdmFyIGFyID0gW107CiAgICAgICAgICBmb3IgKHZhciBrIGluIG8yKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8yLCBrKSkgYXJbYXIubGVuZ3RoXSA9IGs7CiAgICAgICAgICByZXR1cm4gYXI7CiAgICAgICAgfTsKICAgICAgICByZXR1cm4gb3duS2V5cyhvKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKG1vZCkgewogICAgICAgIGlmIChtb2QgJiYgbW9kLl9fZXNNb2R1bGUpIHJldHVybiBtb2Q7CiAgICAgICAgdmFyIHJlc3VsdCA9IHt9OwogICAgICAgIGlmIChtb2QgIT0gbnVsbCkgewogICAgICAgICAgZm9yICh2YXIgayA9IG93bktleXMobW9kKSwgaSA9IDA7IGkgPCBrLmxlbmd0aDsgaSsrKSBpZiAoa1tpXSAhPT0gImRlZmF1bHQiKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGtbaV0pOwogICAgICAgIH0KICAgICAgICBfX3NldE1vZHVsZURlZmF1bHQocmVzdWx0LCBtb2QpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH07CiAgICB9KCk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLndvcmtzcGFjZXMgPSBleHBvcnRzMi5sb2dnaW5nID0gZXhwb3J0czIuanNvbiA9IHZvaWQgMDsKICAgIHZhciBqc29uMiA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2pzb24oKSk7CiAgICBleHBvcnRzMi5qc29uID0ganNvbjI7CiAgICB2YXIgbG9nZ2luZyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2xvZ2dlcjIoKSk7CiAgICBleHBvcnRzMi5sb2dnaW5nID0gbG9nZ2luZzsKICAgIHZhciB3b3Jrc3BhY2VzID0gX19pbXBvcnRTdGFyKHJlcXVpcmVfd29ya3NwYWNlKCkpOwogICAgZXhwb3J0czIud29ya3NwYWNlcyA9IHdvcmtzcGFjZXM7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9leGNlcHRpb24oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfanNvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV91dGlsczMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdmlydHVhbF9mcygpLCBleHBvcnRzMik7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanMKdmFyIHJlcXVpcmVfaHRtbF9zZWxlY3RvciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9odG1sLXNlbGVjdG9yLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgdW5pY29kZVJhbmdlcyA9IFsKICAgICAgWzE5MiwgMjE0XSwKICAgICAgWzIxNiwgMjQ2XSwKICAgICAgWzI0OCwgODkzXSwKICAgICAgWzg5NSwgODE5MV0sCiAgICAgIFs4MjA0LCA4MjA1XSwKICAgICAgWzgyNTUsIDgyNTZdLAogICAgICBbODMwNCwgODU5MV0sCiAgICAgIFsxMTI2NCwgMTIyNzFdLAogICAgICBbMTIyODksIDU1Mjk1XSwKICAgICAgWzYzNzQ0LCA2NDk3NV0sCiAgICAgIFs2NTAwOCwgNjU1MzNdLAogICAgICBbNjU1MzYsIDk4MzAzOV0KICAgIF07CiAgICBmdW5jdGlvbiBpc1ZhbGlkRWxlbWVudE5hbWUobmFtZSkgewogICAgICBsZXQgcmVnZXggPSAiXlthLXpBLVpdWyI7CiAgICAgIHJlZ2V4ICs9ICItLjAtOV9hLXpBLVpcXHV7Qjd9IjsKICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB1bmljb2RlUmFuZ2VzKSB7CiAgICAgICAgcmVnZXggKz0gYFxcdXske3JhbmdlWzBdLnRvU3RyaW5nKDE2KX19LVxcdXske3JhbmdlWzFdLnRvU3RyaW5nKDE2KX19YDsKICAgICAgfQogICAgICByZWdleCArPSAiXSokIjsKICAgICAgcmV0dXJuIG5ldyBSZWdFeHAocmVnZXgsICJ1IikudGVzdChuYW1lKTsKICAgIH0KICAgIGV4cG9ydHMyLmh0bWxTZWxlY3RvckZvcm1hdCA9IHsKICAgICAgbmFtZTogImh0bWwtc2VsZWN0b3IiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChuYW1lKSA9PiB0eXBlb2YgbmFtZSA9PT0gInN0cmluZyIgJiYgaXNWYWxpZEVsZW1lbnROYW1lKG5hbWUpCiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL3BhdGguanMKdmFyIHJlcXVpcmVfcGF0aDIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgZXhwb3J0czIucGF0aEZvcm1hdCA9IHsKICAgICAgbmFtZTogInBhdGgiLAogICAgICBmb3JtYXR0ZXI6IHsKICAgICAgICBhc3luYzogZmFsc2UsCiAgICAgICAgdmFsaWRhdGU6IChwYXRoKSA9PiB7CiAgICAgICAgICByZXR1cm4gcGF0aCA9PT0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKHBhdGgpOwogICAgICAgIH0KICAgICAgfQogICAgfTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMKdmFyIHJlcXVpcmVfZm9ybWF0czIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IGV4cG9ydHMyLnBhdGhGb3JtYXQgPSBleHBvcnRzMi5odG1sU2VsZWN0b3JGb3JtYXQgPSB2b2lkIDA7CiAgICB2YXIgaHRtbF9zZWxlY3Rvcl8xID0gcmVxdWlyZV9odG1sX3NlbGVjdG9yKCk7CiAgICB2YXIgcGF0aF8xID0gcmVxdWlyZV9wYXRoMigpOwogICAgdmFyIGh0bWxfc2VsZWN0b3JfMiA9IHJlcXVpcmVfaHRtbF9zZWxlY3RvcigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiaHRtbFNlbGVjdG9yRm9ybWF0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gaHRtbF9zZWxlY3Rvcl8yLmh0bWxTZWxlY3RvckZvcm1hdDsKICAgIH0gfSk7CiAgICB2YXIgcGF0aF8yID0gcmVxdWlyZV9wYXRoMigpOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAicGF0aEZvcm1hdCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIHBhdGhfMi5wYXRoRm9ybWF0OwogICAgfSB9KTsKICAgIGV4cG9ydHMyLnN0YW5kYXJkRm9ybWF0cyA9IFtodG1sX3NlbGVjdG9yXzEuaHRtbFNlbGVjdG9yRm9ybWF0LCBwYXRoXzEucGF0aEZvcm1hdF07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2UzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVHJlZSA9IGV4cG9ydHMyLlRyZWVTeW1ib2wgPSBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gZXhwb3J0czIuTWVyZ2VTdHJhdGVneSA9IHZvaWQgMDsKICAgIHZhciBNZXJnZVN0cmF0ZWd5MjsKICAgIChmdW5jdGlvbihNZXJnZVN0cmF0ZWd5MykgewogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siQWxsb3dPdmVyd3JpdGVDb25mbGljdCJdID0gMl0gPSAiQWxsb3dPdmVyd3JpdGVDb25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0NyZWF0aW9uQ29uZmxpY3QiXSA9IDRdID0gIkFsbG93Q3JlYXRpb25Db25mbGljdCI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJBbGxvd0RlbGV0ZUNvbmZsaWN0Il0gPSA4XSA9ICJBbGxvd0RlbGV0ZUNvbmZsaWN0IjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkRlZmF1bHQiXSA9IDBdID0gIkRlZmF1bHQiOwogICAgICBNZXJnZVN0cmF0ZWd5M1tNZXJnZVN0cmF0ZWd5M1siRXJyb3IiXSA9IDFdID0gIkVycm9yIjsKICAgICAgTWVyZ2VTdHJhdGVneTNbTWVyZ2VTdHJhdGVneTNbIkNvbnRlbnRPbmx5Il0gPSAyXSA9ICJDb250ZW50T25seSI7CiAgICAgIE1lcmdlU3RyYXRlZ3kzW01lcmdlU3RyYXRlZ3kzWyJPdmVyd3JpdGUiXSA9IDE0XSA9ICJPdmVyd3JpdGUiOwogICAgfSkoTWVyZ2VTdHJhdGVneTIgfHwgKGV4cG9ydHMyLk1lcmdlU3RyYXRlZ3kgPSBNZXJnZVN0cmF0ZWd5MiA9IHt9KSk7CiAgICBleHBvcnRzMi5GaWxlVmlzaXRvckNhbmNlbFRva2VuID0gU3ltYm9sKCk7CiAgICBleHBvcnRzMi5UcmVlU3ltYm9sID0gZnVuY3Rpb24oKSB7CiAgICAgIGNvbnN0IGdsb2JhbFN5bWJvbCA9IHR5cGVvZiB3aW5kb3cgPT0gIm9iamVjdCIgJiYgd2luZG93LndpbmRvdyA9PT0gd2luZG93ICYmIHdpbmRvdy5TeW1ib2wgfHwgdHlwZW9mIHNlbGYgPT0gIm9iamVjdCIgJiYgc2VsZi5zZWxmID09PSBzZWxmICYmIHNlbGYuU3ltYm9sIHx8IHR5cGVvZiBnbG9iYWwgPT0gIm9iamVjdCIgJiYgZ2xvYmFsLmdsb2JhbCA9PT0gZ2xvYmFsICYmIGdsb2JhbC5TeW1ib2w7CiAgICAgIGlmICghZ2xvYmFsU3ltYm9sKSB7CiAgICAgICAgcmV0dXJuIFN5bWJvbCgic2NoZW1hdGljLXRyZWUiKTsKICAgICAgfQogICAgICBpZiAoIWdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlKSB7CiAgICAgICAgZ2xvYmFsU3ltYm9sLnNjaGVtYXRpY1RyZWUgPSBTeW1ib2woInNjaGVtYXRpYy10cmVlIik7CiAgICAgIH0KICAgICAgcmV0dXJuIGdsb2JhbFN5bWJvbC5zY2hlbWF0aWNUcmVlOwogICAgfSgpOwogICAgZXhwb3J0czIuVHJlZSA9IE9iamVjdC5mcmVlemUoewogICAgICBpc1RyZWUobWF5YmVUcmVlKSB7CiAgICAgICAgcmV0dXJuIGV4cG9ydHMyLlRyZWVTeW1ib2wgaW4gbWF5YmVUcmVlOwogICAgICB9CiAgICB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanMKdmFyIHJlcXVpcmVfZXhjZXB0aW9uMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZXhjZXB0aW9uL2V4Y2VwdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gZXhwb3J0czIuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gZXhwb3J0czIuU2NoZW1hdGljc0V4Y2VwdGlvbiA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIFNjaGVtYXRpY3NFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNzRXhjZXB0aW9uID0gU2NoZW1hdGljc0V4Y2VwdGlvbjsKICAgIHZhciBGaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgZG9lcyBub3QgZXhpc3QuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uID0gRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbjsKICAgIHZhciBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgUGF0aCAiJHtwYXRofSIgYWxyZWFkeSBleGlzdC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24gPSBGaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uOwogICAgdmFyIENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICBzdXBlcihgQ29udGVudCBhdCBwYXRoICIke3BhdGh9IiBoYXMgY2hhbmdlZCBiZXR3ZWVuIHRoZSBzdGFydCBhbmQgdGhlIGVuZCBvZiBhbiB1cGRhdGUuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Db250ZW50SGFzTXV0YXRlZEV4Y2VwdGlvbiA9IENvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoYEludmFsaWQgcmVjb3JkIGluc3RhbmNlLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFVwZGF0ZVJlY29yZEV4Y2VwdGlvbiA9IEludmFsaWRVcGRhdGVSZWNvcmRFeGNlcHRpb247CiAgICB2YXIgTWVyZ2VDb25mbGljdEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYEEgbWVyZ2UgY29uZmxpY3RlZCBvbiBwYXRoICIke3BhdGh9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24gPSBNZXJnZUNvbmZsaWN0RXhjZXB0aW9uOwogICAgdmFyIFVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJXb3JrZmxvdyBkaWQgbm90IGV4ZWN1dGUgc3VjY2Vzc2Z1bGx5LiIpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24gPSBVbnN1Y2Nlc3NmdWxXb3JrZmxvd0V4ZWN1dGlvbjsKICAgIHZhciBVbmltcGxlbWVudGVkRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCJUaGlzIGZ1bmN0aW9uIGlzIHVuaW1wbGVtZW50ZWQuIik7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VbmltcGxlbWVudGVkRXhjZXB0aW9uID0gVW5pbXBsZW1lbnRlZEV4Y2VwdGlvbjsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMKdmFyIHJlcXVpcmVfZGVsZWdhdGUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkRlbGVnYXRlVHJlZSA9IHZvaWQgMDsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIERlbGVnYXRlVHJlZSA9IGNsYXNzIHsKICAgICAgX290aGVyOwogICAgICBjb25zdHJ1Y3Rvcihfb3RoZXIpIHsKICAgICAgICB0aGlzLl9vdGhlciA9IF9vdGhlcjsKICAgICAgfQogICAgICBicmFuY2goKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJyYW5jaCgpOwogICAgICB9CiAgICAgIG1lcmdlKG90aGVyLCBzdHJhdGVneSkgewogICAgICAgIHRoaXMuX290aGVyLm1lcmdlKG90aGVyLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnJvb3Q7CiAgICAgIH0KICAgICAgLy8gUmVhZG9ubHkuCiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkKHBhdGgpOwogICAgICB9CiAgICAgIHJlYWRUZXh0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIucmVhZFRleHQocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZWFkSnNvbihwYXRoKTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5leGlzdHMocGF0aCk7CiAgICAgIH0KICAgICAgZ2V0KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZ2V0KHBhdGgpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmdldERpcihwYXRoKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLm92ZXJ3cml0ZShwYXRoLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmJlZ2luVXBkYXRlKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuY29tbWl0VXBkYXRlKHJlY29yZCk7CiAgICAgIH0KICAgICAgLy8gU3RydWN0dXJhbCBtZXRob2RzLgogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuZGVsZXRlKHBhdGgpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHJldHVybiB0aGlzLl9vdGhlci5yZW5hbWUoZnJvbSwgdG8pOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fb3RoZXIuYXBwbHkoYWN0aW9uLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX290aGVyLmFjdGlvbnM7CiAgICAgIH0KICAgICAgW2ludGVyZmFjZV8xLlRyZWVTeW1ib2xdKCkgewogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuRGVsZWdhdGVUcmVlID0gRGVsZWdhdGVUcmVlOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcwp2YXIgcmVxdWlyZV9lbnRyeSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbnRyeS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBTaW1wbGVGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9wYXRoOwogICAgICBfY29udGVudDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2NvbnRlbnQgPSBfY29udGVudDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZUZpbGVFbnRyeSA9IFNpbXBsZUZpbGVFbnRyeTsKICAgIHZhciBMYXp5RmlsZUVudHJ5ID0gY2xhc3MgewogICAgICBfcGF0aDsKICAgICAgX2xvYWQ7CiAgICAgIF9jb250ZW50ID0gbnVsbDsKICAgICAgY29uc3RydWN0b3IoX3BhdGgsIF9sb2FkKSB7CiAgICAgICAgdGhpcy5fcGF0aCA9IF9wYXRoOwogICAgICAgIHRoaXMuX2xvYWQgPSBfbG9hZDsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcGF0aDsKICAgICAgfQogICAgICBnZXQgY29udGVudCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudCB8fCAodGhpcy5fY29udGVudCA9IHRoaXMuX2xvYWQodGhpcy5fcGF0aCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTGF6eUZpbGVFbnRyeSA9IExhenlGaWxlRW50cnk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0BqcmlkZ2V3ZWxsLXNvdXJjZW1hcC1jb2RlYy1ucG0tMS41LjAtZGZkOTEyNmQ3MS0xMC56aXAvbm9kZV9tb2R1bGVzL0BqcmlkZ2V3ZWxsL3NvdXJjZW1hcC1jb2RlYy9kaXN0L3NvdXJjZW1hcC1jb2RlYy51bWQuanMKdmFyIHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AanJpZGdld2VsbC1zb3VyY2VtYXAtY29kZWMtbnBtLTEuNS4wLWRmZDkxMjZkNzEtMTAuemlwL25vZGVfbW9kdWxlcy9AanJpZGdld2VsbC9zb3VyY2VtYXAtY29kZWMvZGlzdC9zb3VyY2VtYXAtY29kZWMudW1kLmpzIihleHBvcnRzMiwgbW9kdWxlMikgewogICAgKGZ1bmN0aW9uKGdsb2JhbDIsIGZhY3RvcnkpIHsKICAgICAgdHlwZW9mIGV4cG9ydHMyID09PSAib2JqZWN0IiAmJiB0eXBlb2YgbW9kdWxlMiAhPT0gInVuZGVmaW5lZCIgPyBmYWN0b3J5KGV4cG9ydHMyKSA6IHR5cGVvZiBkZWZpbmUgPT09ICJmdW5jdGlvbiIgJiYgZGVmaW5lLmFtZCA/IGRlZmluZShbImV4cG9ydHMiXSwgZmFjdG9yeSkgOiAoZ2xvYmFsMiA9IHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiA/IGdsb2JhbFRoaXMgOiBnbG9iYWwyIHx8IHNlbGYsIGZhY3RvcnkoZ2xvYmFsMi5zb3VyY2VtYXBDb2RlYyA9IHt9KSk7CiAgICB9KShleHBvcnRzMiwgZnVuY3Rpb24oZXhwb3J0czMpIHsKICAgICAgInVzZSBzdHJpY3QiOwogICAgICBjb25zdCBjb21tYSA9ICIsIi5jaGFyQ29kZUF0KDApOwogICAgICBjb25zdCBzZW1pY29sb24gPSAiOyIuY2hhckNvZGVBdCgwKTsKICAgICAgY29uc3QgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgICAgIGNvbnN0IGludFRvQ2hhciA9IG5ldyBVaW50OEFycmF5KDY0KTsKICAgICAgY29uc3QgY2hhclRvSW50ID0gbmV3IFVpbnQ4QXJyYXkoMTI4KTsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGFycy5sZW5ndGg7IGkrKykgewogICAgICAgIGNvbnN0IGMgPSBjaGFycy5jaGFyQ29kZUF0KGkpOwogICAgICAgIGludFRvQ2hhcltpXSA9IGM7CiAgICAgICAgY2hhclRvSW50W2NdID0gaTsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgcmVsYXRpdmUpIHsKICAgICAgICBsZXQgdmFsdWUgPSAwOwogICAgICAgIGxldCBzaGlmdCA9IDA7CiAgICAgICAgbGV0IGludGVnZXIgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IGMgPSByZWFkZXIubmV4dCgpOwogICAgICAgICAgaW50ZWdlciA9IGNoYXJUb0ludFtjXTsKICAgICAgICAgIHZhbHVlIHw9IChpbnRlZ2VyICYgMzEpIDw8IHNoaWZ0OwogICAgICAgICAgc2hpZnQgKz0gNTsKICAgICAgICB9IHdoaWxlIChpbnRlZ2VyICYgMzIpOwogICAgICAgIGNvbnN0IHNob3VsZE5lZ2F0ZSA9IHZhbHVlICYgMTsKICAgICAgICB2YWx1ZSA+Pj49IDE7CiAgICAgICAgaWYgKHNob3VsZE5lZ2F0ZSkgewogICAgICAgICAgdmFsdWUgPSAtMjE0NzQ4MzY0OCB8IC12YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlbGF0aXZlICsgdmFsdWU7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZW5jb2RlSW50ZWdlcihidWlsZGVyLCBudW0sIHJlbGF0aXZlKSB7CiAgICAgICAgbGV0IGRlbHRhID0gbnVtIC0gcmVsYXRpdmU7CiAgICAgICAgZGVsdGEgPSBkZWx0YSA8IDAgPyAtZGVsdGEgPDwgMSB8IDEgOiBkZWx0YSA8PCAxOwogICAgICAgIGRvIHsKICAgICAgICAgIGxldCBjbGFtcGVkID0gZGVsdGEgJiAzMTsKICAgICAgICAgIGRlbHRhID4+Pj0gNTsKICAgICAgICAgIGlmIChkZWx0YSA+IDApCiAgICAgICAgICAgIGNsYW1wZWQgfD0gMzI7CiAgICAgICAgICBidWlsZGVyLndyaXRlKGludFRvQ2hhcltjbGFtcGVkXSk7CiAgICAgICAgfSB3aGlsZSAoZGVsdGEgPiAwKTsKICAgICAgICByZXR1cm4gbnVtOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGhhc01vcmVWbHEocmVhZGVyLCBtYXgpIHsKICAgICAgICBpZiAocmVhZGVyLnBvcyA+PSBtYXgpCiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgcmV0dXJuIHJlYWRlci5wZWVrKCkgIT09IGNvbW1hOwogICAgICB9CiAgICAgIGNvbnN0IGJ1Zkxlbmd0aCA9IDEwMjQgKiAxNjsKICAgICAgY29uc3QgdGQgPSB0eXBlb2YgVGV4dERlY29kZXIgIT09ICJ1bmRlZmluZWQiID8gLyogQF9fUFVSRV9fICovIG5ldyBUZXh0RGVjb2RlcigpIDogdHlwZW9mIEJ1ZmZlciAhPT0gInVuZGVmaW5lZCIgPyB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgY29uc3Qgb3V0ID0gQnVmZmVyLmZyb20oYnVmLmJ1ZmZlciwgYnVmLmJ5dGVPZmZzZXQsIGJ1Zi5ieXRlTGVuZ3RoKTsKICAgICAgICAgIHJldHVybiBvdXQudG9TdHJpbmcoKTsKICAgICAgICB9CiAgICAgIH0gOiB7CiAgICAgICAgZGVjb2RlKGJ1ZikgewogICAgICAgICAgbGV0IG91dCA9ICIiOwogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBidWYubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgb3V0ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnVmW2ldKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBvdXQ7CiAgICAgICAgfQogICAgICB9OwogICAgICBjbGFzcyBTdHJpbmdXcml0ZXIgewogICAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgICAgdGhpcy5wb3MgPSAwOwogICAgICAgICAgdGhpcy5vdXQgPSAiIjsKICAgICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoYnVmTGVuZ3RoKTsKICAgICAgICB9CiAgICAgICAgd3JpdGUodikgewogICAgICAgICAgY29uc3QgeyBidWZmZXIgfSA9IHRoaXM7CiAgICAgICAgICBidWZmZXJbdGhpcy5wb3MrK10gPSB2OwogICAgICAgICAgaWYgKHRoaXMucG9zID09PSBidWZMZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5vdXQgKz0gdGQuZGVjb2RlKGJ1ZmZlcik7CiAgICAgICAgICAgIHRoaXMucG9zID0gMDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZmx1c2goKSB7CiAgICAgICAgICBjb25zdCB7IGJ1ZmZlciwgb3V0LCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICByZXR1cm4gcG9zID4gMCA/IG91dCArIHRkLmRlY29kZShidWZmZXIuc3ViYXJyYXkoMCwgcG9zKSkgOiBvdXQ7CiAgICAgICAgfQogICAgICB9CiAgICAgIGNsYXNzIFN0cmluZ1JlYWRlciB7CiAgICAgICAgY29uc3RydWN0b3IoYnVmZmVyKSB7CiAgICAgICAgICB0aGlzLnBvcyA9IDA7CiAgICAgICAgICB0aGlzLmJ1ZmZlciA9IGJ1ZmZlcjsKICAgICAgICB9CiAgICAgICAgbmV4dCgpIHsKICAgICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlci5jaGFyQ29kZUF0KHRoaXMucG9zKyspOwogICAgICAgIH0KICAgICAgICBwZWVrKCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuYnVmZmVyLmNoYXJDb2RlQXQodGhpcy5wb3MpOwogICAgICAgIH0KICAgICAgICBpbmRleE9mKGNoYXIpIHsKICAgICAgICAgIGNvbnN0IHsgYnVmZmVyLCBwb3MgfSA9IHRoaXM7CiAgICAgICAgICBjb25zdCBpZHggPSBidWZmZXIuaW5kZXhPZihjaGFyLCBwb3MpOwogICAgICAgICAgcmV0dXJuIGlkeCA9PT0gLTEgPyBidWZmZXIubGVuZ3RoIDogaWR4OwogICAgICAgIH0KICAgICAgfQogICAgICBjb25zdCBFTVBUWSA9IFtdOwogICAgICBmdW5jdGlvbiBkZWNvZGVPcmlnaW5hbFNjb3BlcyhpbnB1dCkgewogICAgICAgIGNvbnN0IHsgbGVuZ3RoIH0gPSBpbnB1dDsKICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgU3RyaW5nUmVhZGVyKGlucHV0KTsKICAgICAgICBjb25zdCBzY29wZXMgPSBbXTsKICAgICAgICBjb25zdCBzdGFjayA9IFtdOwogICAgICAgIGxldCBsaW5lID0gMDsKICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IGxlbmd0aDsgcmVhZGVyLnBvcysrKSB7CiAgICAgICAgICBsaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGxpbmUpOwogICAgICAgICAgY29uc3QgY29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSkgewogICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgIGxhc3RbMl0gPSBsaW5lOwogICAgICAgICAgICBsYXN0WzNdID0gY29sdW1uOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGtpbmQgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICBjb25zdCBoYXNOYW1lID0gZmllbGRzICYgMTsKICAgICAgICAgIGNvbnN0IHNjb3BlID0gaGFzTmFtZSA/IFtsaW5lLCBjb2x1bW4sIDAsIDAsIGtpbmQsIGRlY29kZUludGVnZXIocmVhZGVyLCAwKV0gOiBbbGluZSwgY29sdW1uLCAwLCAwLCBraW5kXTsKICAgICAgICAgIGxldCB2YXJzID0gRU1QVFk7CiAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIGxlbmd0aCkpIHsKICAgICAgICAgICAgdmFycyA9IFtdOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgY29uc3QgdmFyc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgIHZhcnMucHVzaCh2YXJzSW5kZXgpOwogICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgbGVuZ3RoKSk7CiAgICAgICAgICB9CiAgICAgICAgICBzY29wZS52YXJzID0gdmFyczsKICAgICAgICAgIHNjb3Blcy5wdXNoKHNjb3BlKTsKICAgICAgICAgIHN0YWNrLnB1c2goc2NvcGUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc2NvcGVzOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGVuY29kZU9yaWdpbmFsU2NvcGVzKHNjb3BlcykgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNjb3Blcy5sZW5ndGg7ICkgewogICAgICAgICAgaSA9IF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGksIHdyaXRlciwgWzBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVPcmlnaW5hbFNjb3BlcyhzY29wZXMsIGluZGV4LCB3cml0ZXIsIHN0YXRlKSB7CiAgICAgICAgY29uc3Qgc2NvcGUgPSBzY29wZXNbaW5kZXhdOwogICAgICAgIGNvbnN0IHsgMDogc3RhcnRMaW5lLCAxOiBzdGFydENvbHVtbiwgMjogZW5kTGluZSwgMzogZW5kQ29sdW1uLCA0OiBraW5kLCB2YXJzIH0gPSBzY29wZTsKICAgICAgICBpZiAoaW5kZXggPiAwKQogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICBzdGF0ZVswXSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzdGFydExpbmUsIHN0YXRlWzBdKTsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc3RhcnRDb2x1bW4sIDApOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBraW5kLCAwKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSBzY29wZS5sZW5ndGggPT09IDYgPyAxIDogMDsKICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZmllbGRzLCAwKTsKICAgICAgICBpZiAoc2NvcGUubGVuZ3RoID09PSA2KQogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNjb3BlWzVdLCAwKTsKICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFycykgewogICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIHYsIDApOwogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgc2NvcGVzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gc2NvcGVzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlT3JpZ2luYWxTY29wZXMoc2NvcGVzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSk7CiAgICAgICAgfQogICAgICAgIHdyaXRlci53cml0ZShjb21tYSk7CiAgICAgICAgc3RhdGVbMF0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kTGluZSwgc3RhdGVbMF0pOwogICAgICAgIGVuY29kZUludGVnZXIod3JpdGVyLCBlbmRDb2x1bW4sIDApOwogICAgICAgIHJldHVybiBpbmRleDsKICAgICAgfQogICAgICBmdW5jdGlvbiBkZWNvZGVHZW5lcmF0ZWRSYW5nZXMoaW5wdXQpIHsKICAgICAgICBjb25zdCB7IGxlbmd0aCB9ID0gaW5wdXQ7CiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IFN0cmluZ1JlYWRlcihpbnB1dCk7CiAgICAgICAgY29uc3QgcmFuZ2VzID0gW107CiAgICAgICAgY29uc3Qgc3RhY2sgPSBbXTsKICAgICAgICBsZXQgZ2VuTGluZSA9IDA7CiAgICAgICAgbGV0IGRlZmluaXRpb25Tb3VyY2VzSW5kZXggPSAwOwogICAgICAgIGxldCBkZWZpbml0aW9uU2NvcGVJbmRleCA9IDA7CiAgICAgICAgbGV0IGNhbGxzaXRlU291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVMaW5lID0gMDsKICAgICAgICBsZXQgY2FsbHNpdGVDb2x1bW4gPSAwOwogICAgICAgIGxldCBiaW5kaW5nTGluZSA9IDA7CiAgICAgICAgbGV0IGJpbmRpbmdDb2x1bW4gPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgbGV0IGdlbkNvbHVtbiA9IDA7CiAgICAgICAgICBmb3IgKDsgcmVhZGVyLnBvcyA8IHNlbWk7IHJlYWRlci5wb3MrKykgewogICAgICAgICAgICBnZW5Db2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZ2VuQ29sdW1uKTsKICAgICAgICAgICAgaWYgKCFoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpIHsKICAgICAgICAgICAgICBjb25zdCBsYXN0ID0gc3RhY2sucG9wKCk7CiAgICAgICAgICAgICAgbGFzdFsyXSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgbGFzdFszXSA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBmaWVsZHMgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCk7CiAgICAgICAgICAgIGNvbnN0IGhhc0RlZmluaXRpb24gPSBmaWVsZHMgJiAxOwogICAgICAgICAgICBjb25zdCBoYXNDYWxsc2l0ZSA9IGZpZWxkcyAmIDI7CiAgICAgICAgICAgIGNvbnN0IGhhc1Njb3BlID0gZmllbGRzICYgNDsKICAgICAgICAgICAgbGV0IGNhbGxzaXRlID0gbnVsbDsKICAgICAgICAgICAgbGV0IGJpbmRpbmdzID0gRU1QVFk7CiAgICAgICAgICAgIGxldCByYW5nZTsKICAgICAgICAgICAgaWYgKGhhc0RlZmluaXRpb24pIHsKICAgICAgICAgICAgICBjb25zdCBkZWZTb3VyY2VzSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgICAgZGVmaW5pdGlvblNjb3BlSW5kZXggPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgZGVmaW5pdGlvblNvdXJjZXNJbmRleCA9PT0gZGVmU291cmNlc0luZGV4ID8gZGVmaW5pdGlvblNjb3BlSW5kZXggOiAwKTsKICAgICAgICAgICAgICBkZWZpbml0aW9uU291cmNlc0luZGV4ID0gZGVmU291cmNlc0luZGV4OwogICAgICAgICAgICAgIHJhbmdlID0gW2dlbkxpbmUsIGdlbkNvbHVtbiwgMCwgMCwgZGVmU291cmNlc0luZGV4LCBkZWZpbml0aW9uU2NvcGVJbmRleF07CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmFuZ2UgPSBbZ2VuTGluZSwgZ2VuQ29sdW1uLCAwLCAwXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5pc1Njb3BlID0gISFoYXNTY29wZTsKICAgICAgICAgICAgaWYgKGhhc0NhbGxzaXRlKSB7CiAgICAgICAgICAgICAgY29uc3QgcHJldkNzaSA9IGNhbGxzaXRlU291cmNlc0luZGV4OwogICAgICAgICAgICAgIGNvbnN0IHByZXZMaW5lID0gY2FsbHNpdGVMaW5lOwogICAgICAgICAgICAgIGNhbGxzaXRlU291cmNlc0luZGV4ID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIGNhbGxzaXRlU291cmNlc0luZGV4KTsKICAgICAgICAgICAgICBjb25zdCBzYW1lU291cmNlID0gcHJldkNzaSA9PT0gY2FsbHNpdGVTb3VyY2VzSW5kZXg7CiAgICAgICAgICAgICAgY2FsbHNpdGVMaW5lID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNhbWVTb3VyY2UgPyBjYWxsc2l0ZUxpbmUgOiAwKTsKICAgICAgICAgICAgICBjYWxsc2l0ZUNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzYW1lU291cmNlICYmIHByZXZMaW5lID09PSBjYWxsc2l0ZUxpbmUgPyBjYWxsc2l0ZUNvbHVtbiA6IDApOwogICAgICAgICAgICAgIGNhbGxzaXRlID0gW2NhbGxzaXRlU291cmNlc0luZGV4LCBjYWxsc2l0ZUxpbmUsIGNhbGxzaXRlQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICByYW5nZS5jYWxsc2l0ZSA9IGNhbGxzaXRlOwogICAgICAgICAgICBpZiAoaGFzTW9yZVZscShyZWFkZXIsIHNlbWkpKSB7CiAgICAgICAgICAgICAgYmluZGluZ3MgPSBbXTsKICAgICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICBiaW5kaW5nTGluZSA9IGdlbkxpbmU7CiAgICAgICAgICAgICAgICBiaW5kaW5nQ29sdW1uID0gZ2VuQ29sdW1uOwogICAgICAgICAgICAgICAgY29uc3QgZXhwcmVzc2lvbnNDb3VudCA9IGRlY29kZUludGVnZXIocmVhZGVyLCAwKTsKICAgICAgICAgICAgICAgIGxldCBleHByZXNzaW9uUmFuZ2VzOwogICAgICAgICAgICAgICAgaWYgKGV4cHJlc3Npb25zQ291bnQgPCAtMSkgewogICAgICAgICAgICAgICAgICBleHByZXNzaW9uUmFuZ2VzID0gW1tkZWNvZGVJbnRlZ2VyKHJlYWRlciwgMCldXTsKICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IC0xOyBpID4gZXhwcmVzc2lvbnNDb3VudDsgaS0tKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJldkJsID0gYmluZGluZ0xpbmU7CiAgICAgICAgICAgICAgICAgICAgYmluZGluZ0xpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUpOwogICAgICAgICAgICAgICAgICAgIGJpbmRpbmdDb2x1bW4gPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgYmluZGluZ0xpbmUgPT09IHByZXZCbCA/IGJpbmRpbmdDb2x1bW4gOiAwKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBleHByZXNzaW9uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIDApOwogICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25SYW5nZXMucHVzaChbZXhwcmVzc2lvbiwgYmluZGluZ0xpbmUsIGJpbmRpbmdDb2x1bW5dKTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvblJhbmdlcyA9IFtbZXhwcmVzc2lvbnNDb3VudF1dOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYmluZGluZ3MucHVzaChleHByZXNzaW9uUmFuZ2VzKTsKICAgICAgICAgICAgICB9IHdoaWxlIChoYXNNb3JlVmxxKHJlYWRlciwgc2VtaSkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJhbmdlLmJpbmRpbmdzID0gYmluZGluZ3M7CiAgICAgICAgICAgIHJhbmdlcy5wdXNoKHJhbmdlKTsKICAgICAgICAgICAgc3RhY2sucHVzaChyYW5nZSk7CiAgICAgICAgICB9CiAgICAgICAgICBnZW5MaW5lKys7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8IGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHJhbmdlczsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzKSB7CiAgICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApCiAgICAgICAgICByZXR1cm4gIiI7CiAgICAgICAgY29uc3Qgd3JpdGVyID0gbmV3IFN0cmluZ1dyaXRlcigpOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBpID0gX2VuY29kZUdlbmVyYXRlZFJhbmdlcyhyYW5nZXMsIGksIHdyaXRlciwgWzAsIDAsIDAsIDAsIDAsIDAsIDBdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHdyaXRlci5mbHVzaCgpOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIF9lbmNvZGVHZW5lcmF0ZWRSYW5nZXMocmFuZ2VzLCBpbmRleCwgd3JpdGVyLCBzdGF0ZSkgewogICAgICAgIGNvbnN0IHJhbmdlID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICBjb25zdCB7IDA6IHN0YXJ0TGluZSwgMTogc3RhcnRDb2x1bW4sIDI6IGVuZExpbmUsIDM6IGVuZENvbHVtbiwgaXNTY29wZSwgY2FsbHNpdGUsIGJpbmRpbmdzIH0gPSByYW5nZTsKICAgICAgICBpZiAoc3RhdGVbMF0gPCBzdGFydExpbmUpIHsKICAgICAgICAgIGNhdGNodXBMaW5lKHdyaXRlciwgc3RhdGVbMF0sIHN0YXJ0TGluZSk7CiAgICAgICAgICBzdGF0ZVswXSA9IHN0YXJ0TGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID4gMCkgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgcmFuZ2VbMV0sIHN0YXRlWzFdKTsKICAgICAgICBjb25zdCBmaWVsZHMgPSAocmFuZ2UubGVuZ3RoID09PSA2ID8gMSA6IDApIHwgKGNhbGxzaXRlID8gMiA6IDApIHwgKGlzU2NvcGUgPyA0IDogMCk7CiAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGZpZWxkcywgMCk7CiAgICAgICAgaWYgKHJhbmdlLmxlbmd0aCA9PT0gNikgewogICAgICAgICAgY29uc3QgeyA0OiBzb3VyY2VzSW5kZXgsIDU6IHNjb3Blc0luZGV4IH0gPSByYW5nZTsKICAgICAgICAgIGlmIChzb3VyY2VzSW5kZXggIT09IHN0YXRlWzJdKSB7CiAgICAgICAgICAgIHN0YXRlWzNdID0gMDsKICAgICAgICAgIH0KICAgICAgICAgIHN0YXRlWzJdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNvdXJjZXNJbmRleCwgc3RhdGVbMl0pOwogICAgICAgICAgc3RhdGVbM10gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2NvcGVzSW5kZXgsIHN0YXRlWzNdKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNhbGxzaXRlKSB7CiAgICAgICAgICBjb25zdCB7IDA6IHNvdXJjZXNJbmRleCwgMTogY2FsbExpbmUsIDI6IGNhbGxDb2x1bW4gfSA9IHJhbmdlLmNhbGxzaXRlOwogICAgICAgICAgaWYgKHNvdXJjZXNJbmRleCAhPT0gc3RhdGVbNF0pIHsKICAgICAgICAgICAgc3RhdGVbNV0gPSAwOwogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9IGVsc2UgaWYgKGNhbGxMaW5lICE9PSBzdGF0ZVs1XSkgewogICAgICAgICAgICBzdGF0ZVs2XSA9IDA7CiAgICAgICAgICB9CiAgICAgICAgICBzdGF0ZVs0XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzb3VyY2VzSW5kZXgsIHN0YXRlWzRdKTsKICAgICAgICAgIHN0YXRlWzVdID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGNhbGxMaW5lLCBzdGF0ZVs1XSk7CiAgICAgICAgICBzdGF0ZVs2XSA9IGVuY29kZUludGVnZXIod3JpdGVyLCBjYWxsQ29sdW1uLCBzdGF0ZVs2XSk7CiAgICAgICAgfQogICAgICAgIGlmIChiaW5kaW5ncykgewogICAgICAgICAgZm9yIChjb25zdCBiaW5kaW5nIG9mIGJpbmRpbmdzKSB7CiAgICAgICAgICAgIGlmIChiaW5kaW5nLmxlbmd0aCA+IDEpCiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIC1iaW5kaW5nLmxlbmd0aCwgMCk7CiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBiaW5kaW5nWzBdWzBdOwogICAgICAgICAgICBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwcmVzc2lvbiwgMCk7CiAgICAgICAgICAgIGxldCBiaW5kaW5nU3RhcnRMaW5lID0gc3RhcnRMaW5lOwogICAgICAgICAgICBsZXQgYmluZGluZ1N0YXJ0Q29sdW1uID0gc3RhcnRDb2x1bW47CiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgYmluZGluZy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgIGNvbnN0IGV4cFJhbmdlID0gYmluZGluZ1tpXTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRMaW5lID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzFdLCBiaW5kaW5nU3RhcnRMaW5lKTsKICAgICAgICAgICAgICBiaW5kaW5nU3RhcnRDb2x1bW4gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZXhwUmFuZ2VbMl0sIGJpbmRpbmdTdGFydENvbHVtbik7CiAgICAgICAgICAgICAgZW5jb2RlSW50ZWdlcih3cml0ZXIsIGV4cFJhbmdlWzBdLCAwKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGluZGV4Kys7IGluZGV4IDwgcmFuZ2VzLmxlbmd0aDsgKSB7CiAgICAgICAgICBjb25zdCBuZXh0ID0gcmFuZ2VzW2luZGV4XTsKICAgICAgICAgIGNvbnN0IHsgMDogbCwgMTogYyB9ID0gbmV4dDsKICAgICAgICAgIGlmIChsID4gZW5kTGluZSB8fCBsID09PSBlbmRMaW5lICYmIGMgPj0gZW5kQ29sdW1uKSB7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaW5kZXggPSBfZW5jb2RlR2VuZXJhdGVkUmFuZ2VzKHJhbmdlcywgaW5kZXgsIHdyaXRlciwgc3RhdGUpOwogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGVbMF0gPCBlbmRMaW5lKSB7CiAgICAgICAgICBjYXRjaHVwTGluZSh3cml0ZXIsIHN0YXRlWzBdLCBlbmRMaW5lKTsKICAgICAgICAgIHN0YXRlWzBdID0gZW5kTGluZTsKICAgICAgICAgIHN0YXRlWzFdID0gMDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICB9CiAgICAgICAgc3RhdGVbMV0gPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgZW5kQ29sdW1uLCBzdGF0ZVsxXSk7CiAgICAgICAgcmV0dXJuIGluZGV4OwogICAgICB9CiAgICAgIGZ1bmN0aW9uIGNhdGNodXBMaW5lKHdyaXRlciwgbGFzdExpbmUsIGxpbmUpIHsKICAgICAgICBkbyB7CiAgICAgICAgICB3cml0ZXIud3JpdGUoc2VtaWNvbG9uKTsKICAgICAgICB9IHdoaWxlICgrK2xhc3RMaW5lIDwgbGluZSk7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gZGVjb2RlKG1hcHBpbmdzKSB7CiAgICAgICAgY29uc3QgeyBsZW5ndGggfSA9IG1hcHBpbmdzOwogICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBTdHJpbmdSZWFkZXIobWFwcGluZ3MpOwogICAgICAgIGNvbnN0IGRlY29kZWQgPSBbXTsKICAgICAgICBsZXQgZ2VuQ29sdW1uID0gMDsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgIGNvbnN0IHNlbWkgPSByZWFkZXIuaW5kZXhPZigiOyIpOwogICAgICAgICAgY29uc3QgbGluZSA9IFtdOwogICAgICAgICAgbGV0IHNvcnRlZCA9IHRydWU7CiAgICAgICAgICBsZXQgbGFzdENvbCA9IDA7CiAgICAgICAgICBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgd2hpbGUgKHJlYWRlci5wb3MgPCBzZW1pKSB7CiAgICAgICAgICAgIGxldCBzZWc7CiAgICAgICAgICAgIGdlbkNvbHVtbiA9IGRlY29kZUludGVnZXIocmVhZGVyLCBnZW5Db2x1bW4pOwogICAgICAgICAgICBpZiAoZ2VuQ29sdW1uIDwgbGFzdENvbCkKICAgICAgICAgICAgICBzb3J0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgbGFzdENvbCA9IGdlbkNvbHVtbjsKICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgIHNvdXJjZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBzb3VyY2VzSW5kZXgpOwogICAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBkZWNvZGVJbnRlZ2VyKHJlYWRlciwgc291cmNlTGluZSk7CiAgICAgICAgICAgICAgc291cmNlQ29sdW1uID0gZGVjb2RlSW50ZWdlcihyZWFkZXIsIHNvdXJjZUNvbHVtbik7CiAgICAgICAgICAgICAgaWYgKGhhc01vcmVWbHEocmVhZGVyLCBzZW1pKSkgewogICAgICAgICAgICAgICAgbmFtZXNJbmRleCA9IGRlY29kZUludGVnZXIocmVhZGVyLCBuYW1lc0luZGV4KTsKICAgICAgICAgICAgICAgIHNlZyA9IFtnZW5Db2x1bW4sIHNvdXJjZXNJbmRleCwgc291cmNlTGluZSwgc291cmNlQ29sdW1uLCBuYW1lc0luZGV4XTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2VnID0gW2dlbkNvbHVtbiwgc291cmNlc0luZGV4LCBzb3VyY2VMaW5lLCBzb3VyY2VDb2x1bW5dOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICBzZWcgPSBbZ2VuQ29sdW1uXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBsaW5lLnB1c2goc2VnKTsKICAgICAgICAgICAgcmVhZGVyLnBvcysrOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFzb3J0ZWQpCiAgICAgICAgICAgIHNvcnQobGluZSk7CiAgICAgICAgICBkZWNvZGVkLnB1c2gobGluZSk7CiAgICAgICAgICByZWFkZXIucG9zID0gc2VtaSArIDE7CiAgICAgICAgfSB3aGlsZSAocmVhZGVyLnBvcyA8PSBsZW5ndGgpOwogICAgICAgIHJldHVybiBkZWNvZGVkOwogICAgICB9CiAgICAgIGZ1bmN0aW9uIHNvcnQobGluZSkgewogICAgICAgIGxpbmUuc29ydChzb3J0Q29tcGFyYXRvcik7CiAgICAgIH0KICAgICAgZnVuY3Rpb24gc29ydENvbXBhcmF0b3IoYSwgYikgewogICAgICAgIHJldHVybiBhWzBdIC0gYlswXTsKICAgICAgfQogICAgICBmdW5jdGlvbiBlbmNvZGUoZGVjb2RlZCkgewogICAgICAgIGNvbnN0IHdyaXRlciA9IG5ldyBTdHJpbmdXcml0ZXIoKTsKICAgICAgICBsZXQgc291cmNlc0luZGV4ID0gMDsKICAgICAgICBsZXQgc291cmNlTGluZSA9IDA7CiAgICAgICAgbGV0IHNvdXJjZUNvbHVtbiA9IDA7CiAgICAgICAgbGV0IG5hbWVzSW5kZXggPSAwOwogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVjb2RlZC5sZW5ndGg7IGkrKykgewogICAgICAgICAgY29uc3QgbGluZSA9IGRlY29kZWRbaV07CiAgICAgICAgICBpZiAoaSA+IDApCiAgICAgICAgICAgIHdyaXRlci53cml0ZShzZW1pY29sb24pOwogICAgICAgICAgaWYgKGxpbmUubGVuZ3RoID09PSAwKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIGxldCBnZW5Db2x1bW4gPSAwOwogICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaW5lLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBsaW5lW2pdOwogICAgICAgICAgICBpZiAoaiA+IDApCiAgICAgICAgICAgICAgd3JpdGVyLndyaXRlKGNvbW1hKTsKICAgICAgICAgICAgZ2VuQ29sdW1uID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMF0sIGdlbkNvbHVtbik7CiAgICAgICAgICAgIGlmIChzZWdtZW50Lmxlbmd0aCA9PT0gMSkKICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgc291cmNlc0luZGV4ID0gZW5jb2RlSW50ZWdlcih3cml0ZXIsIHNlZ21lbnRbMV0sIHNvdXJjZXNJbmRleCk7CiAgICAgICAgICAgIHNvdXJjZUxpbmUgPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFsyXSwgc291cmNlTGluZSk7CiAgICAgICAgICAgIHNvdXJjZUNvbHVtbiA9IGVuY29kZUludGVnZXIod3JpdGVyLCBzZWdtZW50WzNdLCBzb3VyY2VDb2x1bW4pOwogICAgICAgICAgICBpZiAoc2VnbWVudC5sZW5ndGggPT09IDQpCiAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIG5hbWVzSW5kZXggPSBlbmNvZGVJbnRlZ2VyKHdyaXRlciwgc2VnbWVudFs0XSwgbmFtZXNJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiB3cml0ZXIuZmx1c2goKTsKICAgICAgfQogICAgICBleHBvcnRzMy5kZWNvZGUgPSBkZWNvZGU7CiAgICAgIGV4cG9ydHMzLmRlY29kZUdlbmVyYXRlZFJhbmdlcyA9IGRlY29kZUdlbmVyYXRlZFJhbmdlczsKICAgICAgZXhwb3J0czMuZGVjb2RlT3JpZ2luYWxTY29wZXMgPSBkZWNvZGVPcmlnaW5hbFNjb3BlczsKICAgICAgZXhwb3J0czMuZW5jb2RlID0gZW5jb2RlOwogICAgICBleHBvcnRzMy5lbmNvZGVHZW5lcmF0ZWRSYW5nZXMgPSBlbmNvZGVHZW5lcmF0ZWRSYW5nZXM7CiAgICAgIGV4cG9ydHMzLmVuY29kZU9yaWdpbmFsU2NvcGVzID0gZW5jb2RlT3JpZ2luYWxTY29wZXM7CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMywgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgfSk7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcwp2YXIgcmVxdWlyZV9tYWdpY19zdHJpbmdfY2pzID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL21hZ2ljLXN0cmluZy1ucG0tMC4zMC4xNy1kYTFiNzU5M2IxLTEwLnppcC9ub2RlX21vZHVsZXMvbWFnaWMtc3RyaW5nL2Rpc3QvbWFnaWMtc3RyaW5nLmNqcy5qcyIoZXhwb3J0czIsIG1vZHVsZTIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBzb3VyY2VtYXBDb2RlYyA9IHJlcXVpcmVfc291cmNlbWFwX2NvZGVjX3VtZCgpOwogICAgdmFyIEJpdFNldCA9IGNsYXNzIF9CaXRTZXQgewogICAgICBjb25zdHJ1Y3RvcihhcmcpIHsKICAgICAgICB0aGlzLmJpdHMgPSBhcmcgaW5zdGFuY2VvZiBfQml0U2V0ID8gYXJnLmJpdHMuc2xpY2UoKSA6IFtdOwogICAgICB9CiAgICAgIGFkZChuMikgewogICAgICAgIHRoaXMuYml0c1tuMiA+PiA1XSB8PSAxIDw8IChuMiAmIDMxKTsKICAgICAgfQogICAgICBoYXMobjIpIHsKICAgICAgICByZXR1cm4gISEodGhpcy5iaXRzW24yID4+IDVdICYgMSA8PCAobjIgJiAzMSkpOwogICAgICB9CiAgICB9OwogICAgdmFyIENodW5rID0gY2xhc3MgX0NodW5rIHsKICAgICAgY29uc3RydWN0b3Ioc3RhcnQsIGVuZCwgY29udGVudCkgewogICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydDsKICAgICAgICB0aGlzLmVuZCA9IGVuZDsKICAgICAgICB0aGlzLm9yaWdpbmFsID0gY29udGVudDsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5zdG9yZU5hbWUgPSBmYWxzZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIHsKICAgICAgICAgIHRoaXMucHJldmlvdXMgPSBudWxsOwogICAgICAgICAgdGhpcy5uZXh0ID0gbnVsbDsKICAgICAgICB9CiAgICAgIH0KICAgICAgYXBwZW5kTGVmdChjb250ZW50KSB7CiAgICAgICAgdGhpcy5vdXRybyArPSBjb250ZW50OwogICAgICB9CiAgICAgIGFwcGVuZFJpZ2h0KGNvbnRlbnQpIHsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRybyArIGNvbnRlbnQ7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgX0NodW5rKHRoaXMuc3RhcnQsIHRoaXMuZW5kLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICBjaHVuay5pbnRybyA9IHRoaXMuaW50cm87CiAgICAgICAgY2h1bmsub3V0cm8gPSB0aGlzLm91dHJvOwogICAgICAgIGNodW5rLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7CiAgICAgICAgY2h1bmsuc3RvcmVOYW1lID0gdGhpcy5zdG9yZU5hbWU7CiAgICAgICAgY2h1bmsuZWRpdGVkID0gdGhpcy5lZGl0ZWQ7CiAgICAgICAgcmV0dXJuIGNodW5rOwogICAgICB9CiAgICAgIGNvbnRhaW5zKGluZGV4KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnQgPCBpbmRleCAmJiBpbmRleCA8IHRoaXMuZW5kOwogICAgICB9CiAgICAgIGVhY2hOZXh0KGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgIH0KICAgICAgZWFjaFByZXZpb3VzKGZuKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpczsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGZuKGNodW5rKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfQogICAgICB9CiAgICAgIGVkaXQoY29udGVudCwgc3RvcmVOYW1lLCBjb250ZW50T25seSkgewogICAgICAgIHRoaXMuY29udGVudCA9IGNvbnRlbnQ7CiAgICAgICAgaWYgKCFjb250ZW50T25seSkgewogICAgICAgICAgdGhpcy5pbnRybyA9ICIiOwogICAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIH0KICAgICAgICB0aGlzLnN0b3JlTmFtZSA9IHN0b3JlTmFtZTsKICAgICAgICB0aGlzLmVkaXRlZCA9IHRydWU7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZExlZnQoY29udGVudCkgewogICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICBwcmVwZW5kUmlnaHQoY29udGVudCkgewogICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgfQogICAgICByZXNldCgpIHsKICAgICAgICB0aGlzLmludHJvID0gIiI7CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIGlmICh0aGlzLmVkaXRlZCkgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5vcmlnaW5hbDsKICAgICAgICAgIHRoaXMuc3RvcmVOYW1lID0gZmFsc2U7CiAgICAgICAgICB0aGlzLmVkaXRlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfQogICAgICBzcGxpdChpbmRleCkgewogICAgICAgIGNvbnN0IHNsaWNlSW5kZXggPSBpbmRleCAtIHRoaXMuc3RhcnQ7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCZWZvcmUgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKDAsIHNsaWNlSW5kZXgpOwogICAgICAgIGNvbnN0IG9yaWdpbmFsQWZ0ZXIgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHNsaWNlSW5kZXgpOwogICAgICAgIHRoaXMub3JpZ2luYWwgPSBvcmlnaW5hbEJlZm9yZTsKICAgICAgICBjb25zdCBuZXdDaHVuayA9IG5ldyBfQ2h1bmsoaW5kZXgsIHRoaXMuZW5kLCBvcmlnaW5hbEFmdGVyKTsKICAgICAgICBuZXdDaHVuay5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgdGhpcy5vdXRybyA9ICIiOwogICAgICAgIHRoaXMuZW5kID0gaW5kZXg7CiAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICBuZXdDaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB0aGlzLmNvbnRlbnQgPSAiIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jb250ZW50ID0gb3JpZ2luYWxCZWZvcmU7CiAgICAgICAgfQogICAgICAgIG5ld0NodW5rLm5leHQgPSB0aGlzLm5leHQ7CiAgICAgICAgaWYgKG5ld0NodW5rLm5leHQpIG5ld0NodW5rLm5leHQucHJldmlvdXMgPSBuZXdDaHVuazsKICAgICAgICBuZXdDaHVuay5wcmV2aW91cyA9IHRoaXM7CiAgICAgICAgdGhpcy5uZXh0ID0gbmV3Q2h1bms7CiAgICAgICAgcmV0dXJuIG5ld0NodW5rOwogICAgICB9CiAgICAgIHRvU3RyaW5nKCkgewogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgdGhpcy5jb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgfQogICAgICB0cmltRW5kKHJ4KSB7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIHRoaXMuc3BsaXQodGhpcy5zdGFydCArIHRyaW1tZWQubGVuZ3RoKS5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgICBpZiAodGhpcy5lZGl0ZWQpIHsKICAgICAgICAgICAgICB0aGlzLmVkaXQodHJpbW1lZCwgdGhpcy5zdG9yZU5hbWUsIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KHJ4KSB7CiAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLmludHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHRoaXMuY29udGVudC5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoKSB7CiAgICAgICAgICBpZiAodHJpbW1lZCAhPT0gdGhpcy5jb250ZW50KSB7CiAgICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gdGhpcy5zcGxpdCh0aGlzLmVuZCAtIHRyaW1tZWQubGVuZ3RoKTsKICAgICAgICAgICAgaWYgKHRoaXMuZWRpdGVkKSB7CiAgICAgICAgICAgICAgbmV3Q2h1bmsuZWRpdCh0cmltbWVkLCB0aGlzLnN0b3JlTmFtZSwgdHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5lZGl0KCIiLCB2b2lkIDAsIHRydWUpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuZWRpdCgiIiwgdm9pZCAwLCB0cnVlKTsKICAgICAgICAgIHRoaXMub3V0cm8gPSB0aGlzLm91dHJvLnJlcGxhY2UocngsICIiKTsKICAgICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICB9OwogICAgZnVuY3Rpb24gZ2V0QnRvYSgpIHsKICAgICAgaWYgKHR5cGVvZiBnbG9iYWxUaGlzICE9PSAidW5kZWZpbmVkIiAmJiB0eXBlb2YgZ2xvYmFsVGhpcy5idG9hID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmV0dXJuIChzdHIyKSA9PiBnbG9iYWxUaGlzLmJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KHN0cjIpKSk7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIEJ1ZmZlciA9PT0gImZ1bmN0aW9uIikgewogICAgICAgIHJldHVybiAoc3RyMikgPT4gQnVmZmVyLmZyb20oc3RyMiwgInV0Zi04IikudG9TdHJpbmcoImJhc2U2NCIpOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGVudmlyb25tZW50OiBgd2luZG93LmJ0b2FgIG9yIGBCdWZmZXJgIHNob3VsZCBiZSBzdXBwb3J0ZWQuIik7CiAgICAgICAgfTsKICAgICAgfQogICAgfQogICAgdmFyIGJ0b2EgPSAvKiBAX19QVVJFX18gKi8gZ2V0QnRvYSgpOwogICAgdmFyIFNvdXJjZU1hcCA9IGNsYXNzIHsKICAgICAgY29uc3RydWN0b3IocHJvcGVydGllcykgewogICAgICAgIHRoaXMudmVyc2lvbiA9IDM7CiAgICAgICAgdGhpcy5maWxlID0gcHJvcGVydGllcy5maWxlOwogICAgICAgIHRoaXMuc291cmNlcyA9IHByb3BlcnRpZXMuc291cmNlczsKICAgICAgICB0aGlzLnNvdXJjZXNDb250ZW50ID0gcHJvcGVydGllcy5zb3VyY2VzQ29udGVudDsKICAgICAgICB0aGlzLm5hbWVzID0gcHJvcGVydGllcy5uYW1lczsKICAgICAgICB0aGlzLm1hcHBpbmdzID0gc291cmNlbWFwQ29kZWMuZW5jb2RlKHByb3BlcnRpZXMubWFwcGluZ3MpOwogICAgICAgIGlmICh0eXBlb2YgcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0ICE9PSAidW5kZWZpbmVkIikgewogICAgICAgICAgdGhpcy54X2dvb2dsZV9pZ25vcmVMaXN0ID0gcHJvcGVydGllcy54X2dvb2dsZV9pZ25vcmVMaXN0OwogICAgICAgIH0KICAgICAgICBpZiAodHlwZW9mIHByb3BlcnRpZXMuZGVidWdJZCAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICAgIHRoaXMuZGVidWdJZCA9IHByb3BlcnRpZXMuZGVidWdJZDsKICAgICAgICB9CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMpOwogICAgICB9CiAgICAgIHRvVXJsKCkgewogICAgICAgIHJldHVybiAiZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LCIgKyBidG9hKHRoaXMudG9TdHJpbmcoKSk7CiAgICAgIH0KICAgIH07CiAgICBmdW5jdGlvbiBndWVzc0luZGVudChjb2RlKSB7CiAgICAgIGNvbnN0IGxpbmVzID0gY29kZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgdGFiYmVkID0gbGluZXMuZmlsdGVyKChsaW5lKSA9PiAvXlx0Ky8udGVzdChsaW5lKSk7CiAgICAgIGNvbnN0IHNwYWNlZCA9IGxpbmVzLmZpbHRlcigobGluZSkgPT4gL14gezIsfS8udGVzdChsaW5lKSk7CiAgICAgIGlmICh0YWJiZWQubGVuZ3RoID09PSAwICYmIHNwYWNlZC5sZW5ndGggPT09IDApIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICBpZiAodGFiYmVkLmxlbmd0aCA+PSBzcGFjZWQubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuICIJIjsKICAgICAgfQogICAgICBjb25zdCBtaW4gPSBzcGFjZWQucmVkdWNlKChwcmV2aW91cywgY3VycmVudCkgPT4gewogICAgICAgIGNvbnN0IG51bVNwYWNlcyA9IC9eICsvLmV4ZWMoY3VycmVudClbMF0ubGVuZ3RoOwogICAgICAgIHJldHVybiBNYXRoLm1pbihudW1TcGFjZXMsIHByZXZpb3VzKTsKICAgICAgfSwgSW5maW5pdHkpOwogICAgICByZXR1cm4gbmV3IEFycmF5KG1pbiArIDEpLmpvaW4oIiAiKTsKICAgIH0KICAgIGZ1bmN0aW9uIGdldFJlbGF0aXZlUGF0aChmcm9tLCB0bykgewogICAgICBjb25zdCBmcm9tUGFydHMgPSBmcm9tLnNwbGl0KC9bL1xcXS8pOwogICAgICBjb25zdCB0b1BhcnRzID0gdG8uc3BsaXQoL1svXFxdLyk7CiAgICAgIGZyb21QYXJ0cy5wb3AoKTsKICAgICAgd2hpbGUgKGZyb21QYXJ0c1swXSA9PT0gdG9QYXJ0c1swXSkgewogICAgICAgIGZyb21QYXJ0cy5zaGlmdCgpOwogICAgICAgIHRvUGFydHMuc2hpZnQoKTsKICAgICAgfQogICAgICBpZiAoZnJvbVBhcnRzLmxlbmd0aCkgewogICAgICAgIGxldCBpID0gZnJvbVBhcnRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaS0tKSBmcm9tUGFydHNbaV0gPSAiLi4iOwogICAgICB9CiAgICAgIHJldHVybiBmcm9tUGFydHMuY29uY2F0KHRvUGFydHMpLmpvaW4oIi8iKTsKICAgIH0KICAgIHZhciB0b1N0cmluZzIgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwogICAgZnVuY3Rpb24gaXNPYmplY3QyKHRoaW5nKSB7CiAgICAgIHJldHVybiB0b1N0cmluZzIuY2FsbCh0aGluZykgPT09ICJbb2JqZWN0IE9iamVjdF0iOwogICAgfQogICAgZnVuY3Rpb24gZ2V0TG9jYXRvcihzb3VyY2UpIHsKICAgICAgY29uc3Qgb3JpZ2luYWxMaW5lcyA9IHNvdXJjZS5zcGxpdCgiXG4iKTsKICAgICAgY29uc3QgbGluZU9mZnNldHMgPSBbXTsKICAgICAgZm9yIChsZXQgaSA9IDAsIHBvcyA9IDA7IGkgPCBvcmlnaW5hbExpbmVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgbGluZU9mZnNldHMucHVzaChwb3MpOwogICAgICAgIHBvcyArPSBvcmlnaW5hbExpbmVzW2ldLmxlbmd0aCArIDE7CiAgICAgIH0KICAgICAgcmV0dXJuIGZ1bmN0aW9uIGxvY2F0ZShpbmRleCkgewogICAgICAgIGxldCBpID0gMDsKICAgICAgICBsZXQgaiA9IGxpbmVPZmZzZXRzLmxlbmd0aDsKICAgICAgICB3aGlsZSAoaSA8IGopIHsKICAgICAgICAgIGNvbnN0IG0gPSBpICsgaiA+PiAxOwogICAgICAgICAgaWYgKGluZGV4IDwgbGluZU9mZnNldHNbbV0pIHsKICAgICAgICAgICAgaiA9IG07CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpID0gbSArIDE7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvbnN0IGxpbmUgPSBpIC0gMTsKICAgICAgICBjb25zdCBjb2x1bW4gPSBpbmRleCAtIGxpbmVPZmZzZXRzW2xpbmVdOwogICAgICAgIHJldHVybiB7IGxpbmUsIGNvbHVtbiB9OwogICAgICB9OwogICAgfQogICAgdmFyIHdvcmRSZWdleCA9IC9cdy87CiAgICB2YXIgTWFwcGluZ3MgPSBjbGFzcyB7CiAgICAgIGNvbnN0cnVjdG9yKGhpcmVzKSB7CiAgICAgICAgdGhpcy5oaXJlcyA9IGhpcmVzOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUxpbmUgPSAwOwogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgdGhpcy5yYXcgPSBbXTsKICAgICAgICB0aGlzLnJhd1NlZ21lbnRzID0gdGhpcy5yYXdbdGhpcy5nZW5lcmF0ZWRDb2RlTGluZV0gPSBbXTsKICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkZEVkaXQoc291cmNlSW5kZXgsIGNvbnRlbnQsIGxvYywgbmFtZUluZGV4KSB7CiAgICAgICAgaWYgKGNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBjb250ZW50TGVuZ3RoTWludXNPbmUgPSBjb250ZW50Lmxlbmd0aCAtIDE7CiAgICAgICAgICBsZXQgY29udGVudExpbmVFbmQgPSBjb250ZW50LmluZGV4T2YoIlxuIiwgMCk7CiAgICAgICAgICBsZXQgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IC0xOwogICAgICAgICAgd2hpbGUgKGNvbnRlbnRMaW5lRW5kID49IDAgJiYgY29udGVudExlbmd0aE1pbnVzT25lID4gY29udGVudExpbmVFbmQpIHsKICAgICAgICAgICAgY29uc3Qgc2VnbWVudDIgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgICBzZWdtZW50Mi5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5yYXdTZWdtZW50cy5wdXNoKHNlZ21lbnQyKTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgcHJldmlvdXNDb250ZW50TGluZUVuZCA9IGNvbnRlbnRMaW5lRW5kOwogICAgICAgICAgICBjb250ZW50TGluZUVuZCA9IGNvbnRlbnQuaW5kZXhPZigiXG4iLCBjb250ZW50TGluZUVuZCArIDEpOwogICAgICAgICAgfQogICAgICAgICAgY29uc3Qgc2VnbWVudCA9IFt0aGlzLmdlbmVyYXRlZENvZGVDb2x1bW4sIHNvdXJjZUluZGV4LCBsb2MubGluZSwgbG9jLmNvbHVtbl07CiAgICAgICAgICBpZiAobmFtZUluZGV4ID49IDApIHsKICAgICAgICAgICAgc2VnbWVudC5wdXNoKG5hbWVJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICB0aGlzLmFkdmFuY2UoY29udGVudC5zbGljZShwcmV2aW91c0NvbnRlbnRMaW5lRW5kICsgMSkpOwogICAgICAgIH0gZWxzZSBpZiAodGhpcy5wZW5kaW5nKSB7CiAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2godGhpcy5wZW5kaW5nKTsKICAgICAgICAgIHRoaXMuYWR2YW5jZShjb250ZW50KTsKICAgICAgICB9CiAgICAgICAgdGhpcy5wZW5kaW5nID0gbnVsbDsKICAgICAgfQogICAgICBhZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgb3JpZ2luYWwsIGxvYywgc291cmNlbWFwTG9jYXRpb25zKSB7CiAgICAgICAgbGV0IG9yaWdpbmFsQ2hhckluZGV4ID0gY2h1bmsuc3RhcnQ7CiAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTsKICAgICAgICBsZXQgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENoYXJJbmRleCA8IGNodW5rLmVuZCkgewogICAgICAgICAgaWYgKG9yaWdpbmFsW29yaWdpbmFsQ2hhckluZGV4XSA9PT0gIlxuIikgewogICAgICAgICAgICBsb2MubGluZSArPSAxOwogICAgICAgICAgICBsb2MuY29sdW1uID0gMDsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSArPSAxOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uID0gMDsKICAgICAgICAgICAgZmlyc3QgPSB0cnVlOwogICAgICAgICAgICBjaGFySW5IaXJlc0JvdW5kYXJ5ID0gZmFsc2U7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5oaXJlcyB8fCBmaXJzdCB8fCBzb3VyY2VtYXBMb2NhdGlvbnMuaGFzKG9yaWdpbmFsQ2hhckluZGV4KSkgewogICAgICAgICAgICAgIGNvbnN0IHNlZ21lbnQgPSBbdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uLCBzb3VyY2VJbmRleCwgbG9jLmxpbmUsIGxvYy5jb2x1bW5dOwogICAgICAgICAgICAgIGlmICh0aGlzLmhpcmVzID09PSAiYm91bmRhcnkiKSB7CiAgICAgICAgICAgICAgICBpZiAod29yZFJlZ2V4LnRlc3Qob3JpZ2luYWxbb3JpZ2luYWxDaGFySW5kZXhdKSkgewogICAgICAgICAgICAgICAgICBpZiAoIWNoYXJJbkhpcmVzQm91bmRhcnkpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IHRydWU7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgIHRoaXMucmF3U2VnbWVudHMucHVzaChzZWdtZW50KTsKICAgICAgICAgICAgICAgICAgY2hhckluSGlyZXNCb3VuZGFyeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnJhd1NlZ21lbnRzLnB1c2goc2VnbWVudCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGxvYy5jb2x1bW4gKz0gMTsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlQ29sdW1uICs9IDE7CiAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICB9CiAgICAgICAgICBvcmlnaW5hbENoYXJJbmRleCArPSAxOwogICAgICAgIH0KICAgICAgICB0aGlzLnBlbmRpbmcgPSBudWxsOwogICAgICB9CiAgICAgIGFkdmFuY2Uoc3RyMikgewogICAgICAgIGlmICghc3RyMikgcmV0dXJuOwogICAgICAgIGNvbnN0IGxpbmVzID0gc3RyMi5zcGxpdCgiXG4iKTsKICAgICAgICBpZiAobGluZXMubGVuZ3RoID4gMSkgewogICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGggLSAxOyBpKyspIHsKICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRDb2RlTGluZSsrOwogICAgICAgICAgICB0aGlzLnJhd1t0aGlzLmdlbmVyYXRlZENvZGVMaW5lXSA9IHRoaXMucmF3U2VnbWVudHMgPSBbXTsKICAgICAgICAgIH0KICAgICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiA9IDA7CiAgICAgICAgfQogICAgICAgIHRoaXMuZ2VuZXJhdGVkQ29kZUNvbHVtbiArPSBsaW5lc1tsaW5lcy5sZW5ndGggLSAxXS5sZW5ndGg7CiAgICAgIH0KICAgIH07CiAgICB2YXIgbiA9ICJcbiI7CiAgICB2YXIgd2FybmVkID0gewogICAgICBpbnNlcnRMZWZ0OiBmYWxzZSwKICAgICAgaW5zZXJ0UmlnaHQ6IGZhbHNlLAogICAgICBzdG9yZU5hbWU6IGZhbHNlCiAgICB9OwogICAgdmFyIE1hZ2ljU3RyaW5nID0gY2xhc3MgX01hZ2ljU3RyaW5nIHsKICAgICAgY29uc3RydWN0b3Ioc3RyaW5nLCBvcHRpb25zID0ge30pIHsKICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBDaHVuaygwLCBzdHJpbmcubGVuZ3RoLCBzdHJpbmcpOwogICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRoaXMsIHsKICAgICAgICAgIG9yaWdpbmFsOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogc3RyaW5nIH0sCiAgICAgICAgICBvdXRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBpbnRybzogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6ICIiIH0sCiAgICAgICAgICBmaXJzdENodW5rOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogY2h1bmsgfSwKICAgICAgICAgIGxhc3RDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBsYXN0U2VhcmNoZWRDaHVuazogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IGNodW5rIH0sCiAgICAgICAgICBieVN0YXJ0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGJ5RW5kOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZToge30gfSwKICAgICAgICAgIGZpbGVuYW1lOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5maWxlbmFtZSB9LAogICAgICAgICAgaW5kZW50RXhjbHVzaW9uUmFuZ2VzOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pbmRlbnRFeGNsdXNpb25SYW5nZXMgfSwKICAgICAgICAgIHNvdXJjZW1hcExvY2F0aW9uczogeyB3cml0YWJsZTogdHJ1ZSwgdmFsdWU6IG5ldyBCaXRTZXQoKSB9LAogICAgICAgICAgc3RvcmVkTmFtZXM6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiB7fSB9LAogICAgICAgICAgaW5kZW50U3RyOiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogdm9pZCAwIH0sCiAgICAgICAgICBpZ25vcmVMaXN0OiB7IHdyaXRhYmxlOiB0cnVlLCB2YWx1ZTogb3B0aW9ucy5pZ25vcmVMaXN0IH0sCiAgICAgICAgICBvZmZzZXQ6IHsgd3JpdGFibGU6IHRydWUsIHZhbHVlOiBvcHRpb25zLm9mZnNldCB8fCAwIH0KICAgICAgICB9KTsKICAgICAgICB0aGlzLmJ5U3RhcnRbMF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5RW5kW3N0cmluZy5sZW5ndGhdID0gY2h1bms7CiAgICAgIH0KICAgICAgYWRkU291cmNlbWFwTG9jYXRpb24oY2hhcikgewogICAgICAgIHRoaXMuc291cmNlbWFwTG9jYXRpb25zLmFkZChjaGFyKTsKICAgICAgfQogICAgICBhcHBlbmQoY29udGVudCkgewogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoIm91dHJvIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kTGVmdChjb250ZW50KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5pbnRybyArPSBjb250ZW50OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBhcHBlbmRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGluZGV4ID0gaW5kZXggKyB0aGlzLm9mZnNldDsKICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICJzdHJpbmciKSB0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnNlcnRlZCBjb250ZW50IG11c3QgYmUgYSBzdHJpbmciKTsKICAgICAgICB0aGlzLl9zcGxpdChpbmRleCk7CiAgICAgICAgY29uc3QgY2h1bmsgPSB0aGlzLmJ5U3RhcnRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsuYXBwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gKz0gY29udGVudDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgY2xvbmVkID0gbmV3IF9NYWdpY1N0cmluZyh0aGlzLm9yaWdpbmFsLCB7IGZpbGVuYW1lOiB0aGlzLmZpbGVuYW1lLCBvZmZzZXQ6IHRoaXMub2Zmc2V0IH0pOwogICAgICAgIGxldCBvcmlnaW5hbENodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGxldCBjbG9uZWRDaHVuayA9IGNsb25lZC5maXJzdENodW5rID0gY2xvbmVkLmxhc3RTZWFyY2hlZENodW5rID0gb3JpZ2luYWxDaHVuay5jbG9uZSgpOwogICAgICAgIHdoaWxlIChvcmlnaW5hbENodW5rKSB7CiAgICAgICAgICBjbG9uZWQuYnlTdGFydFtjbG9uZWRDaHVuay5zdGFydF0gPSBjbG9uZWRDaHVuazsKICAgICAgICAgIGNsb25lZC5ieUVuZFtjbG9uZWRDaHVuay5lbmRdID0gY2xvbmVkQ2h1bms7CiAgICAgICAgICBjb25zdCBuZXh0T3JpZ2luYWxDaHVuayA9IG9yaWdpbmFsQ2h1bmsubmV4dDsKICAgICAgICAgIGNvbnN0IG5leHRDbG9uZWRDaHVuayA9IG5leHRPcmlnaW5hbENodW5rICYmIG5leHRPcmlnaW5hbENodW5rLmNsb25lKCk7CiAgICAgICAgICBpZiAobmV4dENsb25lZENodW5rKSB7CiAgICAgICAgICAgIGNsb25lZENodW5rLm5leHQgPSBuZXh0Q2xvbmVkQ2h1bms7CiAgICAgICAgICAgIG5leHRDbG9uZWRDaHVuay5wcmV2aW91cyA9IGNsb25lZENodW5rOwogICAgICAgICAgICBjbG9uZWRDaHVuayA9IG5leHRDbG9uZWRDaHVuazsKICAgICAgICAgIH0KICAgICAgICAgIG9yaWdpbmFsQ2h1bmsgPSBuZXh0T3JpZ2luYWxDaHVuazsKICAgICAgICB9CiAgICAgICAgY2xvbmVkLmxhc3RDaHVuayA9IGNsb25lZENodW5rOwogICAgICAgIGlmICh0aGlzLmluZGVudEV4Y2x1c2lvblJhbmdlcykgewogICAgICAgICAgY2xvbmVkLmluZGVudEV4Y2x1c2lvblJhbmdlcyA9IHRoaXMuaW5kZW50RXhjbHVzaW9uUmFuZ2VzLnNsaWNlKCk7CiAgICAgICAgfQogICAgICAgIGNsb25lZC5zb3VyY2VtYXBMb2NhdGlvbnMgPSBuZXcgQml0U2V0KHRoaXMuc291cmNlbWFwTG9jYXRpb25zKTsKICAgICAgICBjbG9uZWQuaW50cm8gPSB0aGlzLmludHJvOwogICAgICAgIGNsb25lZC5vdXRybyA9IHRoaXMub3V0cm87CiAgICAgICAgcmV0dXJuIGNsb25lZDsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gMDsKICAgICAgICBjb25zdCBuYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuc3RvcmVkTmFtZXMpOwogICAgICAgIGNvbnN0IG1hcHBpbmdzID0gbmV3IE1hcHBpbmdzKG9wdGlvbnMuaGlyZXMpOwogICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IodGhpcy5vcmlnaW5hbCk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgIGNvbnN0IGxvYyA9IGxvY2F0ZShjaHVuay5zdGFydCk7CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLmludHJvKTsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgbWFwcGluZ3MuYWRkRWRpdCgKICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICBjaHVuay5jb250ZW50LAogICAgICAgICAgICAgIGxvYywKICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKHNvdXJjZUluZGV4LCBjaHVuaywgdGhpcy5vcmlnaW5hbCwgbG9jLCB0aGlzLnNvdXJjZW1hcExvY2F0aW9ucyk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgZmlsZTogb3B0aW9ucy5maWxlID8gb3B0aW9ucy5maWxlLnNwbGl0KC9bL1xcXS8pLnBvcCgpIDogdm9pZCAwLAogICAgICAgICAgc291cmNlczogWwogICAgICAgICAgICBvcHRpb25zLnNvdXJjZSA/IGdldFJlbGF0aXZlUGF0aChvcHRpb25zLmZpbGUgfHwgIiIsIG9wdGlvbnMuc291cmNlKSA6IG9wdGlvbnMuZmlsZSB8fCAiIgogICAgICAgICAgXSwKICAgICAgICAgIHNvdXJjZXNDb250ZW50OiBvcHRpb25zLmluY2x1ZGVDb250ZW50ID8gW3RoaXMub3JpZ2luYWxdIDogdm9pZCAwLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdDogdGhpcy5pZ25vcmVMaXN0ID8gW3NvdXJjZUluZGV4XSA6IHZvaWQgMAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBfZW5zdXJlaW5kZW50U3RyKCkgewogICAgICAgIGlmICh0aGlzLmluZGVudFN0ciA9PT0gdm9pZCAwKSB7CiAgICAgICAgICB0aGlzLmluZGVudFN0ciA9IGd1ZXNzSW5kZW50KHRoaXMub3JpZ2luYWwpOwogICAgICAgIH0KICAgICAgfQogICAgICBfZ2V0UmF3SW5kZW50U3RyaW5nKCkgewogICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgIHJldHVybiB0aGlzLmluZGVudFN0cjsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgdGhpcy5fZW5zdXJlaW5kZW50U3RyKCk7CiAgICAgICAgcmV0dXJuIHRoaXMuaW5kZW50U3RyID09PSBudWxsID8gIgkiIDogdGhpcy5pbmRlbnRTdHI7CiAgICAgIH0KICAgICAgaW5kZW50KGluZGVudFN0ciwgb3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhdHRlcm4gPSAvXlteXHJcbl0vZ207CiAgICAgICAgaWYgKGlzT2JqZWN0MihpbmRlbnRTdHIpKSB7CiAgICAgICAgICBvcHRpb25zID0gaW5kZW50U3RyOwogICAgICAgICAgaW5kZW50U3RyID0gdm9pZCAwOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSB2b2lkIDApIHsKICAgICAgICAgIHRoaXMuX2Vuc3VyZWluZGVudFN0cigpOwogICAgICAgICAgaW5kZW50U3RyID0gdGhpcy5pbmRlbnRTdHIgfHwgIgkiOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgICAgICAgY29uc3QgaXNFeGNsdWRlZCA9IHt9OwogICAgICAgIGlmIChvcHRpb25zLmV4Y2x1ZGUpIHsKICAgICAgICAgIGNvbnN0IGV4Y2x1c2lvbnMgPSB0eXBlb2Ygb3B0aW9ucy5leGNsdWRlWzBdID09PSAibnVtYmVyIiA/IFtvcHRpb25zLmV4Y2x1ZGVdIDogb3B0aW9ucy5leGNsdWRlOwogICAgICAgICAgZXhjbHVzaW9ucy5mb3JFYWNoKChleGNsdXNpb24pID0+IHsKICAgICAgICAgICAgZm9yIChsZXQgaSA9IGV4Y2x1c2lvblswXTsgaSA8IGV4Y2x1c2lvblsxXTsgaSArPSAxKSB7CiAgICAgICAgICAgICAgaXNFeGNsdWRlZFtpXSA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBsZXQgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IG9wdGlvbnMuaW5kZW50U3RhcnQgIT09IGZhbHNlOwogICAgICAgIGNvbnN0IHJlcGxhY2VyID0gKG1hdGNoKSA9PiB7CiAgICAgICAgICBpZiAoc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgcmV0dXJuIGAke2luZGVudFN0cn0ke21hdGNofWA7CiAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gdHJ1ZTsKICAgICAgICAgIHJldHVybiBtYXRjaDsKICAgICAgICB9OwogICAgICAgIHRoaXMuaW50cm8gPSB0aGlzLmludHJvLnJlcGxhY2UocGF0dGVybiwgcmVwbGFjZXIpOwogICAgICAgIGxldCBjaGFySW5kZXggPSAwOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGNvbnN0IGVuZCA9IGNodW5rLmVuZDsKICAgICAgICAgIGlmIChjaHVuay5lZGl0ZWQpIHsKICAgICAgICAgICAgaWYgKCFpc0V4Y2x1ZGVkW2NoYXJJbmRleF0pIHsKICAgICAgICAgICAgICBjaHVuay5jb250ZW50ID0gY2h1bmsuY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VyKTsKICAgICAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHNob3VsZEluZGVudE5leHRDaGFyYWN0ZXIgPSBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjaGFySW5kZXggPSBjaHVuay5zdGFydDsKICAgICAgICAgICAgd2hpbGUgKGNoYXJJbmRleCA8IGVuZCkgewogICAgICAgICAgICAgIGlmICghaXNFeGNsdWRlZFtjaGFySW5kZXhdKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gdGhpcy5vcmlnaW5hbFtjaGFySW5kZXhdOwogICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICJcbiIpIHsKICAgICAgICAgICAgICAgICAgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlciA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNoYXIgIT09ICJcciIgJiYgc2hvdWxkSW5kZW50TmV4dENoYXJhY3RlcikgewogICAgICAgICAgICAgICAgICBzaG91bGRJbmRlbnROZXh0Q2hhcmFjdGVyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgIGlmIChjaGFySW5kZXggPT09IGNodW5rLnN0YXJ0KSB7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3BsaXRDaHVuayhjaHVuaywgY2hhckluZGV4KTsKICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgICAgICAgICAgY2h1bmsucHJlcGVuZFJpZ2h0KGluZGVudFN0cik7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2hhckluZGV4ICs9IDE7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGNoYXJJbmRleCA9IGNodW5rLmVuZDsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlcik7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgaW5zZXJ0KCkgewogICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgcHJlcGVuZFJpZ2h0KC4uLikgb3IgYXBwZW5kTGVmdCguLi4pIgogICAgICAgICk7CiAgICAgIH0KICAgICAgaW5zZXJ0TGVmdChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydExlZnQpIHsKICAgICAgICAgIGNvbnNvbGUud2FybigKICAgICAgICAgICAgIm1hZ2ljU3RyaW5nLmluc2VydExlZnQoLi4uKSBpcyBkZXByZWNhdGVkLiBVc2UgbWFnaWNTdHJpbmcuYXBwZW5kTGVmdCguLi4pIGluc3RlYWQiCiAgICAgICAgICApOwogICAgICAgICAgd2FybmVkLmluc2VydExlZnQgPSB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50KTsKICAgICAgfQogICAgICBpbnNlcnRSaWdodChpbmRleCwgY29udGVudCkgewogICAgICAgIGlmICghd2FybmVkLmluc2VydFJpZ2h0KSB7CiAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICJtYWdpY1N0cmluZy5pbnNlcnRSaWdodCguLi4pIGlzIGRlcHJlY2F0ZWQuIFVzZSBtYWdpY1N0cmluZy5wcmVwZW5kUmlnaHQoLi4uKSBpbnN0ZWFkIgogICAgICAgICAgKTsKICAgICAgICAgIHdhcm5lZC5pbnNlcnRSaWdodCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLnByZXBlbmRSaWdodChpbmRleCwgY29udGVudCk7CiAgICAgIH0KICAgICAgbW92ZShzdGFydCwgZW5kLCBpbmRleCkgewogICAgICAgIHN0YXJ0ID0gc3RhcnQgKyB0aGlzLm9mZnNldDsKICAgICAgICBlbmQgPSBlbmQgKyB0aGlzLm9mZnNldDsKICAgICAgICBpbmRleCA9IGluZGV4ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKGluZGV4ID49IHN0YXJ0ICYmIGluZGV4IDw9IGVuZCkgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgbW92ZSBhIHNlbGVjdGlvbiBpbnNpZGUgaXRzZWxmIik7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgdGhpcy5fc3BsaXQoaW5kZXgpOwogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGNvbnN0IG9sZExlZnQgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICBjb25zdCBvbGRSaWdodCA9IGxhc3QubmV4dDsKICAgICAgICBjb25zdCBuZXdSaWdodCA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKCFuZXdSaWdodCAmJiBsYXN0ID09PSB0aGlzLmxhc3RDaHVuaykgcmV0dXJuIHRoaXM7CiAgICAgICAgY29uc3QgbmV3TGVmdCA9IG5ld1JpZ2h0ID8gbmV3UmlnaHQucHJldmlvdXMgOiB0aGlzLmxhc3RDaHVuazsKICAgICAgICBpZiAob2xkTGVmdCkgb2xkTGVmdC5uZXh0ID0gb2xkUmlnaHQ7CiAgICAgICAgaWYgKG9sZFJpZ2h0KSBvbGRSaWdodC5wcmV2aW91cyA9IG9sZExlZnQ7CiAgICAgICAgaWYgKG5ld0xlZnQpIG5ld0xlZnQubmV4dCA9IGZpcnN0OwogICAgICAgIGlmIChuZXdSaWdodCkgbmV3UmlnaHQucHJldmlvdXMgPSBsYXN0OwogICAgICAgIGlmICghZmlyc3QucHJldmlvdXMpIHRoaXMuZmlyc3RDaHVuayA9IGxhc3QubmV4dDsKICAgICAgICBpZiAoIWxhc3QubmV4dCkgewogICAgICAgICAgdGhpcy5sYXN0Q2h1bmsgPSBmaXJzdC5wcmV2aW91czsKICAgICAgICAgIHRoaXMubGFzdENodW5rLm5leHQgPSBudWxsOwogICAgICAgIH0KICAgICAgICBmaXJzdC5wcmV2aW91cyA9IG5ld0xlZnQ7CiAgICAgICAgbGFzdC5uZXh0ID0gbmV3UmlnaHQgfHwgbnVsbDsKICAgICAgICBpZiAoIW5ld0xlZnQpIHRoaXMuZmlyc3RDaHVuayA9IGZpcnN0OwogICAgICAgIGlmICghbmV3UmlnaHQpIHRoaXMubGFzdENodW5rID0gbGFzdDsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBvdmVyd3JpdGUoc3RhcnQsIGVuZCwgY29udGVudCwgb3B0aW9ucykgewogICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShzdGFydCwgZW5kLCBjb250ZW50LCB7IC4uLm9wdGlvbnMsIG92ZXJ3cml0ZTogIW9wdGlvbnMuY29udGVudE9ubHkgfSk7CiAgICAgIH0KICAgICAgdXBkYXRlKHN0YXJ0LCBlbmQsIGNvbnRlbnQsIG9wdGlvbnMpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigicmVwbGFjZW1lbnQgY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChlbmQgPiB0aGlzLm9yaWdpbmFsLmxlbmd0aCkgdGhyb3cgbmV3IEVycm9yKCJlbmQgaXMgb3V0IG9mIGJvdW5kcyIpOwogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiQ2Fubm90IG92ZXJ3cml0ZSBhIHplcm8tbGVuZ3RoIHJhbmdlIFx1MjAxMyB1c2UgYXBwZW5kTGVmdCBvciBwcmVwZW5kUmlnaHQgaW5zdGVhZCIKICAgICAgICAgICk7CiAgICAgICAgdGhpcy5fc3BsaXQoc3RhcnQpOwogICAgICAgIHRoaXMuX3NwbGl0KGVuZCk7CiAgICAgICAgaWYgKG9wdGlvbnMgPT09IHRydWUpIHsKICAgICAgICAgIGlmICghd2FybmVkLnN0b3JlTmFtZSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oCiAgICAgICAgICAgICAgIlRoZSBmaW5hbCBhcmd1bWVudCB0byBtYWdpY1N0cmluZy5vdmVyd3JpdGUoLi4uKSBzaG91bGQgYmUgYW4gb3B0aW9ucyBvYmplY3QuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcmljaC1oYXJyaXMvbWFnaWMtc3RyaW5nIgogICAgICAgICAgICApOwogICAgICAgICAgICB3YXJuZWQuc3RvcmVOYW1lID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICAgIG9wdGlvbnMgPSB7IHN0b3JlTmFtZTogdHJ1ZSB9OwogICAgICAgIH0KICAgICAgICBjb25zdCBzdG9yZU5hbWUgPSBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zLnN0b3JlTmFtZSA6IGZhbHNlOwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZSA9IG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMub3ZlcndyaXRlIDogZmFsc2U7CiAgICAgICAgaWYgKHN0b3JlTmFtZSkgewogICAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB0aGlzLm9yaWdpbmFsLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuc3RvcmVkTmFtZXMsIG9yaWdpbmFsLCB7CiAgICAgICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgICAgICB2YWx1ZTogdHJ1ZSwKICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGZpcnN0ID0gdGhpcy5ieVN0YXJ0W3N0YXJ0XTsKICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ieUVuZFtlbmRdOwogICAgICAgIGlmIChmaXJzdCkgewogICAgICAgICAgbGV0IGNodW5rID0gZmlyc3Q7CiAgICAgICAgICB3aGlsZSAoY2h1bmsgIT09IGxhc3QpIHsKICAgICAgICAgICAgaWYgKGNodW5rLm5leHQgIT09IHRoaXMuYnlTdGFydFtjaHVuay5lbmRdKSB7CiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qgb3ZlcndyaXRlIGFjcm9zcyBhIHNwbGl0IHBvaW50Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICBjaHVuay5lZGl0KCIiLCBmYWxzZSk7CiAgICAgICAgICB9CiAgICAgICAgICBmaXJzdC5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSwgIW92ZXJ3cml0ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNvbnN0IG5ld0NodW5rID0gbmV3IENodW5rKHN0YXJ0LCBlbmQsICIiKS5lZGl0KGNvbnRlbnQsIHN0b3JlTmFtZSk7CiAgICAgICAgICBsYXN0Lm5leHQgPSBuZXdDaHVuazsKICAgICAgICAgIG5ld0NodW5rLnByZXZpb3VzID0gbGFzdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZChjb250ZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ICE9PSAic3RyaW5nIikgdGhyb3cgbmV3IFR5cGVFcnJvcigib3V0cm8gY29udGVudCBtdXN0IGJlIGEgc3RyaW5nIik7CiAgICAgICAgdGhpcy5pbnRybyA9IGNvbnRlbnQgKyB0aGlzLmludHJvOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHByZXBlbmRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlFbmRbaW5kZXhdOwogICAgICAgIGlmIChjaHVuaykgewogICAgICAgICAgY2h1bmsucHJlcGVuZExlZnQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBjb250ZW50ICsgdGhpcy5pbnRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcHJlcGVuZFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgaW5kZXggPSBpbmRleCArIHRoaXMub2Zmc2V0OwogICAgICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gInN0cmluZyIpIHRocm93IG5ldyBUeXBlRXJyb3IoImluc2VydGVkIGNvbnRlbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgIHRoaXMuX3NwbGl0KGluZGV4KTsKICAgICAgICBjb25zdCBjaHVuayA9IHRoaXMuYnlTdGFydFtpbmRleF07CiAgICAgICAgaWYgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5wcmVwZW5kUmlnaHQoY29udGVudCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMub3V0cm8gPSBjb250ZW50ICsgdGhpcy5vdXRybzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgcmVtb3ZlKHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5pbnRybyA9ICIiOwogICAgICAgICAgY2h1bmsub3V0cm8gPSAiIjsKICAgICAgICAgIGNodW5rLmVkaXQoIiIpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlc2V0KHN0YXJ0LCBlbmQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGlmIChzdGFydCA9PT0gZW5kKSByZXR1cm4gdGhpczsKICAgICAgICBpZiAoc3RhcnQgPCAwIHx8IGVuZCA+IHRoaXMub3JpZ2luYWwubGVuZ3RoKSB0aHJvdyBuZXcgRXJyb3IoIkNoYXJhY3RlciBpcyBvdXQgb2YgYm91bmRzIik7CiAgICAgICAgaWYgKHN0YXJ0ID4gZW5kKSB0aHJvdyBuZXcgRXJyb3IoImVuZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBzdGFydCIpOwogICAgICAgIHRoaXMuX3NwbGl0KHN0YXJ0KTsKICAgICAgICB0aGlzLl9zcGxpdChlbmQpOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuYnlTdGFydFtzdGFydF07CiAgICAgICAgd2hpbGUgKGNodW5rKSB7CiAgICAgICAgICBjaHVuay5yZXNldCgpOwogICAgICAgICAgY2h1bmsgPSBlbmQgPiBjaHVuay5lbmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGxhc3RDaGFyKCkgewogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRoaXMub3V0cm9bdGhpcy5vdXRyby5sZW5ndGggLSAxXTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsub3V0cm9bY2h1bmsub3V0cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuY29udGVudC5sZW5ndGgpIHJldHVybiBjaHVuay5jb250ZW50W2NodW5rLmNvbnRlbnQubGVuZ3RoIC0gMV07CiAgICAgICAgICBpZiAoY2h1bmsuaW50cm8ubGVuZ3RoKSByZXR1cm4gY2h1bmsuaW50cm9bY2h1bmsuaW50cm8ubGVuZ3RoIC0gMV07CiAgICAgICAgfSB3aGlsZSAoY2h1bmsgPSBjaHVuay5wcmV2aW91cyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdGhpcy5pbnRyb1t0aGlzLmludHJvLmxlbmd0aCAtIDFdOwogICAgICAgIHJldHVybiAiIjsKICAgICAgfQogICAgICBsYXN0TGluZSgpIHsKICAgICAgICBsZXQgbGluZUluZGV4ID0gdGhpcy5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIHRoaXMub3V0cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpOwogICAgICAgIGxldCBsaW5lU3RyID0gdGhpcy5vdXRybzsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RDaHVuazsKICAgICAgICBkbyB7CiAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5vdXRyby5sYXN0SW5kZXhPZihuKTsKICAgICAgICAgICAgaWYgKGxpbmVJbmRleCAhPT0gLTEpIHJldHVybiBjaHVuay5vdXRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgICAgICBsaW5lU3RyID0gY2h1bmsub3V0cm8gKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmNvbnRlbnQubGVuZ3RoID4gMCkgewogICAgICAgICAgICBsaW5lSW5kZXggPSBjaHVuay5jb250ZW50Lmxhc3RJbmRleE9mKG4pOwogICAgICAgICAgICBpZiAobGluZUluZGV4ICE9PSAtMSkgcmV0dXJuIGNodW5rLmNvbnRlbnQuc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmNvbnRlbnQgKyBsaW5lU3RyOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgbGluZUluZGV4ID0gY2h1bmsuaW50cm8ubGFzdEluZGV4T2Yobik7CiAgICAgICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gY2h1bmsuaW50cm8uc3Vic3RyKGxpbmVJbmRleCArIDEpICsgbGluZVN0cjsKICAgICAgICAgICAgbGluZVN0ciA9IGNodW5rLmludHJvICsgbGluZVN0cjsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLnByZXZpb3VzKTsKICAgICAgICBsaW5lSW5kZXggPSB0aGlzLmludHJvLmxhc3RJbmRleE9mKG4pOwogICAgICAgIGlmIChsaW5lSW5kZXggIT09IC0xKSByZXR1cm4gdGhpcy5pbnRyby5zdWJzdHIobGluZUluZGV4ICsgMSkgKyBsaW5lU3RyOwogICAgICAgIHJldHVybiB0aGlzLmludHJvICsgbGluZVN0cjsKICAgICAgfQogICAgICBzbGljZShzdGFydCA9IDAsIGVuZCA9IHRoaXMub3JpZ2luYWwubGVuZ3RoIC0gdGhpcy5vZmZzZXQpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgZW5kID0gZW5kICsgdGhpcy5vZmZzZXQ7CiAgICAgICAgaWYgKHRoaXMub3JpZ2luYWwubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgICB3aGlsZSAoc3RhcnQgPCAwKSBzdGFydCArPSB0aGlzLm9yaWdpbmFsLmxlbmd0aDsKICAgICAgICAgIHdoaWxlIChlbmQgPCAwKSBlbmQgKz0gdGhpcy5vcmlnaW5hbC5sZW5ndGg7CiAgICAgICAgfQogICAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgd2hpbGUgKGNodW5rICYmIChjaHVuay5zdGFydCA+IHN0YXJ0IHx8IGNodW5rLmVuZCA8PSBzdGFydCkpIHsKICAgICAgICAgIGlmIChjaHVuay5zdGFydCA8IGVuZCAmJiBjaHVuay5lbmQgPj0gZW5kKSB7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICB9CiAgICAgICAgICBjaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgfQogICAgICAgIGlmIChjaHVuayAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuc3RhcnQgIT09IHN0YXJ0KQogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlIHJlcGxhY2VkIGNoYXJhY3RlciAke3N0YXJ0fSBhcyBzbGljZSBzdGFydCBhbmNob3IuYCk7CiAgICAgICAgY29uc3Qgc3RhcnRDaHVuayA9IGNodW5rOwogICAgICAgIHdoaWxlIChjaHVuaykgewogICAgICAgICAgaWYgKGNodW5rLmludHJvICYmIChzdGFydENodW5rICE9PSBjaHVuayB8fCBjaHVuay5zdGFydCA9PT0gc3RhcnQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5pbnRybzsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IGNvbnRhaW5zRW5kID0gY2h1bmsuc3RhcnQgPCBlbmQgJiYgY2h1bmsuZW5kID49IGVuZDsKICAgICAgICAgIGlmIChjb250YWluc0VuZCAmJiBjaHVuay5lZGl0ZWQgJiYgY2h1bmsuZW5kICE9PSBlbmQpCiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHVzZSByZXBsYWNlZCBjaGFyYWN0ZXIgJHtlbmR9IGFzIHNsaWNlIGVuZCBhbmNob3IuYCk7CiAgICAgICAgICBjb25zdCBzbGljZVN0YXJ0ID0gc3RhcnRDaHVuayA9PT0gY2h1bmsgPyBzdGFydCAtIGNodW5rLnN0YXJ0IDogMDsKICAgICAgICAgIGNvbnN0IHNsaWNlRW5kID0gY29udGFpbnNFbmQgPyBjaHVuay5jb250ZW50Lmxlbmd0aCArIGVuZCAtIGNodW5rLmVuZCA6IGNodW5rLmNvbnRlbnQubGVuZ3RoOwogICAgICAgICAgcmVzdWx0ICs9IGNodW5rLmNvbnRlbnQuc2xpY2Uoc2xpY2VTdGFydCwgc2xpY2VFbmQpOwogICAgICAgICAgaWYgKGNodW5rLm91dHJvICYmICghY29udGFpbnNFbmQgfHwgY2h1bmsuZW5kID09PSBlbmQpKSB7CiAgICAgICAgICAgIHJlc3VsdCArPSBjaHVuay5vdXRybzsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChjb250YWluc0VuZCkgewogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICAvLyBUT0RPIGRlcHJlY2F0ZSB0aGlzPyBub3QgcmVhbGx5IHZlcnkgdXNlZnVsCiAgICAgIHNuaXAoc3RhcnQsIGVuZCkgewogICAgICAgIGNvbnN0IGNsb25lID0gdGhpcy5jbG9uZSgpOwogICAgICAgIGNsb25lLnJlbW92ZSgwLCBzdGFydCk7CiAgICAgICAgY2xvbmUucmVtb3ZlKGVuZCwgY2xvbmUub3JpZ2luYWwubGVuZ3RoKTsKICAgICAgICByZXR1cm4gY2xvbmU7CiAgICAgIH0KICAgICAgX3NwbGl0KGluZGV4KSB7CiAgICAgICAgaWYgKHRoaXMuYnlTdGFydFtpbmRleF0gfHwgdGhpcy5ieUVuZFtpbmRleF0pIHJldHVybjsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmxhc3RTZWFyY2hlZENodW5rOwogICAgICAgIGNvbnN0IHNlYXJjaEZvcndhcmQgPSBpbmRleCA+IGNodW5rLmVuZDsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIGlmIChjaHVuay5jb250YWlucyhpbmRleCkpIHJldHVybiB0aGlzLl9zcGxpdENodW5rKGNodW5rLCBpbmRleCk7CiAgICAgICAgICBjaHVuayA9IHNlYXJjaEZvcndhcmQgPyB0aGlzLmJ5U3RhcnRbY2h1bmsuZW5kXSA6IHRoaXMuYnlFbmRbY2h1bmsuc3RhcnRdOwogICAgICAgIH0KICAgICAgfQogICAgICBfc3BsaXRDaHVuayhjaHVuaywgaW5kZXgpIHsKICAgICAgICBpZiAoY2h1bmsuZWRpdGVkICYmIGNodW5rLmNvbnRlbnQubGVuZ3RoKSB7CiAgICAgICAgICBjb25zdCBsb2MgPSBnZXRMb2NhdG9yKHRoaXMub3JpZ2luYWwpKGluZGV4KTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcigKICAgICAgICAgICAgYENhbm5vdCBzcGxpdCBhIGNodW5rIHRoYXQgaGFzIGFscmVhZHkgYmVlbiBlZGl0ZWQgKCR7bG9jLmxpbmV9OiR7bG9jLmNvbHVtbn0gXHUyMDEzICIke2NodW5rLm9yaWdpbmFsfSIpYAogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSBjaHVuay5zcGxpdChpbmRleCk7CiAgICAgICAgdGhpcy5ieUVuZFtpbmRleF0gPSBjaHVuazsKICAgICAgICB0aGlzLmJ5U3RhcnRbaW5kZXhdID0gbmV3Q2h1bms7CiAgICAgICAgdGhpcy5ieUVuZFtuZXdDaHVuay5lbmRdID0gbmV3Q2h1bms7CiAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBuZXdDaHVuazsKICAgICAgICB0aGlzLmxhc3RTZWFyY2hlZENodW5rID0gY2h1bms7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgbGV0IHN0cjIgPSB0aGlzLmludHJvOwogICAgICAgIGxldCBjaHVuayA9IHRoaXMuZmlyc3RDaHVuazsKICAgICAgICB3aGlsZSAoY2h1bmspIHsKICAgICAgICAgIHN0cjIgKz0gY2h1bmsudG9TdHJpbmcoKTsKICAgICAgICAgIGNodW5rID0gY2h1bmsubmV4dDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0cjIgKyB0aGlzLm91dHJvOwogICAgICB9CiAgICAgIGlzRW1wdHkoKSB7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5maXJzdENodW5rOwogICAgICAgIGRvIHsKICAgICAgICAgIGlmIChjaHVuay5pbnRyby5sZW5ndGggJiYgY2h1bmsuaW50cm8udHJpbSgpIHx8IGNodW5rLmNvbnRlbnQubGVuZ3RoICYmIGNodW5rLmNvbnRlbnQudHJpbSgpIHx8IGNodW5rLm91dHJvLmxlbmd0aCAmJiBjaHVuay5vdXRyby50cmltKCkpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9IHdoaWxlIChjaHVuayA9IGNodW5rLm5leHQpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgICB9CiAgICAgIGxlbmd0aCgpIHsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgbGV0IGxlbmd0aCA9IDA7CiAgICAgICAgZG8gewogICAgICAgICAgbGVuZ3RoICs9IGNodW5rLmludHJvLmxlbmd0aCArIGNodW5rLmNvbnRlbnQubGVuZ3RoICsgY2h1bmsub3V0cm8ubGVuZ3RoOwogICAgICAgIH0gd2hpbGUgKGNodW5rID0gY2h1bmsubmV4dCk7CiAgICAgICAgcmV0dXJuIGxlbmd0aDsKICAgICAgfQogICAgICB0cmltTGluZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbSgiW1xcclxcbl0iKTsKICAgICAgfQogICAgICB0cmltKGNoYXJUeXBlKSB7CiAgICAgICAgcmV0dXJuIHRoaXMudHJpbVN0YXJ0KGNoYXJUeXBlKS50cmltRW5kKGNoYXJUeXBlKTsKICAgICAgfQogICAgICB0cmltRW5kQWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgdGhpcy5vdXRybyA9IHRoaXMub3V0cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgIGlmICh0aGlzLm91dHJvLmxlbmd0aCkgcmV0dXJuIHRydWU7CiAgICAgICAgbGV0IGNodW5rID0gdGhpcy5sYXN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1FbmQocngpOwogICAgICAgICAgaWYgKGNodW5rLmVuZCAhPT0gZW5kKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmxhc3RDaHVuayA9PT0gY2h1bmspIHsKICAgICAgICAgICAgICB0aGlzLmxhc3RDaHVuayA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5lbmRdID0gY2h1bms7CiAgICAgICAgICAgIHRoaXMuYnlTdGFydFtjaHVuay5uZXh0LnN0YXJ0XSA9IGNodW5rLm5leHQ7CiAgICAgICAgICAgIHRoaXMuYnlFbmRbY2h1bmsubmV4dC5lbmRdID0gY2h1bmsubmV4dDsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhYm9ydGVkKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGNodW5rID0gY2h1bmsucHJldmlvdXM7CiAgICAgICAgfSB3aGlsZSAoY2h1bmspOwogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB0cmltRW5kKGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltRW5kQWJvcnRlZChjaGFyVHlwZSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0QWJvcnRlZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKHRoaXMuaW50cm8ubGVuZ3RoKSByZXR1cm4gdHJ1ZTsKICAgICAgICBsZXQgY2h1bmsgPSB0aGlzLmZpcnN0Q2h1bms7CiAgICAgICAgZG8gewogICAgICAgICAgY29uc3QgZW5kID0gY2h1bmsuZW5kOwogICAgICAgICAgY29uc3QgYWJvcnRlZCA9IGNodW5rLnRyaW1TdGFydChyeCk7CiAgICAgICAgICBpZiAoY2h1bmsuZW5kICE9PSBlbmQpIHsKICAgICAgICAgICAgaWYgKGNodW5rID09PSB0aGlzLmxhc3RDaHVuaykgdGhpcy5sYXN0Q2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgICAgICB0aGlzLmJ5RW5kW2NodW5rLmVuZF0gPSBjaHVuazsKICAgICAgICAgICAgdGhpcy5ieVN0YXJ0W2NodW5rLm5leHQuc3RhcnRdID0gY2h1bmsubmV4dDsKICAgICAgICAgICAgdGhpcy5ieUVuZFtjaHVuay5uZXh0LmVuZF0gPSBjaHVuay5uZXh0OwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFib3J0ZWQpIHJldHVybiB0cnVlOwogICAgICAgICAgY2h1bmsgPSBjaHVuay5uZXh0OwogICAgICAgIH0gd2hpbGUgKGNodW5rKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgdHJpbVN0YXJ0KGNoYXJUeXBlKSB7CiAgICAgICAgdGhpcy50cmltU3RhcnRBYm9ydGVkKGNoYXJUeXBlKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBoYXNDaGFuZ2VkKCkgewogICAgICAgIHJldHVybiB0aGlzLm9yaWdpbmFsICE9PSB0aGlzLnRvU3RyaW5nKCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VSZWdleHAoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgZnVuY3Rpb24gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHN0cjIpIHsKICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC5yZXBsYWNlKC9cJChcJHwmfFxkKykvZywgKF8sIGkpID0+IHsKICAgICAgICAgICAgICBpZiAoaSA9PT0gIiQiKSByZXR1cm4gIiQiOwogICAgICAgICAgICAgIGlmIChpID09PSAiJiIpIHJldHVybiBtYXRjaFswXTsKICAgICAgICAgICAgICBjb25zdCBudW0gPSAraTsKICAgICAgICAgICAgICBpZiAobnVtIDwgbWF0Y2gubGVuZ3RoKSByZXR1cm4gbWF0Y2hbK2ldOwogICAgICAgICAgICAgIHJldHVybiBgJCR7aX1gOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudCguLi5tYXRjaCwgbWF0Y2guaW5kZXgsIHN0cjIsIG1hdGNoLmdyb3Vwcyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIG1hdGNoQWxsKHJlLCBzdHIyKSB7CiAgICAgICAgICBsZXQgbWF0Y2g7CiAgICAgICAgICBjb25zdCBtYXRjaGVzID0gW107CiAgICAgICAgICB3aGlsZSAobWF0Y2ggPSByZS5leGVjKHN0cjIpKSB7CiAgICAgICAgICAgIG1hdGNoZXMucHVzaChtYXRjaCk7CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gbWF0Y2hlczsKICAgICAgICB9CiAgICAgICAgaWYgKHNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IG1hdGNoQWxsKHNlYXJjaFZhbHVlLCB0aGlzLm9yaWdpbmFsKTsKICAgICAgICAgIG1hdGNoZXMuZm9yRWFjaCgobWF0Y2gpID0+IHsKICAgICAgICAgICAgaWYgKG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgICBjb25zdCByZXBsYWNlbWVudDIgPSBnZXRSZXBsYWNlbWVudChtYXRjaCwgdGhpcy5vcmlnaW5hbCk7CiAgICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50MiAhPT0gbWF0Y2hbMF0pIHsKICAgICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjb25zdCBtYXRjaCA9IHRoaXMub3JpZ2luYWwubWF0Y2goc2VhcmNoVmFsdWUpOwogICAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoLmluZGV4ICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgcmVwbGFjZW1lbnQyID0gZ2V0UmVwbGFjZW1lbnQobWF0Y2gsIHRoaXMub3JpZ2luYWwpOwogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQyICE9PSBtYXRjaFswXSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKG1hdGNoLmluZGV4LCBtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCwgcmVwbGFjZW1lbnQyKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfcmVwbGFjZVN0cmluZyhzdHJpbmcsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgY29uc3QgeyBvcmlnaW5hbCB9ID0gdGhpczsKICAgICAgICBjb25zdCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsKICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7CiAgICAgICAgICB0aGlzLm92ZXJ3cml0ZShpbmRleCwgaW5kZXggKyBzdHJpbmcubGVuZ3RoLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIHJlcGxhY2Uoc2VhcmNoVmFsdWUsIHJlcGxhY2VtZW50KSB7CiAgICAgICAgaWYgKHR5cGVvZiBzZWFyY2hWYWx1ZSA9PT0gInN0cmluZyIpIHsKICAgICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlU3RyaW5nKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlUmVnZXhwKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCk7CiAgICAgIH0KICAgICAgX3JlcGxhY2VBbGxTdHJpbmcoc3RyaW5nLCByZXBsYWNlbWVudCkgewogICAgICAgIGNvbnN0IHsgb3JpZ2luYWwgfSA9IHRoaXM7CiAgICAgICAgY29uc3Qgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICAgICAgICBmb3IgKGxldCBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nKTsgaW5kZXggIT09IC0xOyBpbmRleCA9IG9yaWdpbmFsLmluZGV4T2Yoc3RyaW5nLCBpbmRleCArIHN0cmluZ0xlbmd0aCkpIHsKICAgICAgICAgIGNvbnN0IHByZXZpb3VzID0gb3JpZ2luYWwuc2xpY2UoaW5kZXgsIGluZGV4ICsgc3RyaW5nTGVuZ3RoKTsKICAgICAgICAgIGlmIChwcmV2aW91cyAhPT0gcmVwbGFjZW1lbnQpIHRoaXMub3ZlcndyaXRlKGluZGV4LCBpbmRleCArIHN0cmluZ0xlbmd0aCwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZXBsYWNlQWxsKHNlYXJjaFZhbHVlLCByZXBsYWNlbWVudCkgewogICAgICAgIGlmICh0eXBlb2Ygc2VhcmNoVmFsdWUgPT09ICJzdHJpbmciKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZUFsbFN0cmluZyhzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICAgIH0KICAgICAgICBpZiAoIXNlYXJjaFZhbHVlLmdsb2JhbCkgewogICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcigKICAgICAgICAgICAgIk1hZ2ljU3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlQWxsIGNhbGxlZCB3aXRoIGEgbm9uLWdsb2JhbCBSZWdFeHAgYXJndW1lbnQiCiAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZVJlZ2V4cChzZWFyY2hWYWx1ZSwgcmVwbGFjZW1lbnQpOwogICAgICB9CiAgICB9OwogICAgdmFyIGhhc093blByb3AgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5OwogICAgdmFyIEJ1bmRsZSA9IGNsYXNzIF9CdW5kbGUgewogICAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHsKICAgICAgICB0aGlzLmludHJvID0gb3B0aW9ucy5pbnRybyB8fCAiIjsKICAgICAgICB0aGlzLnNlcGFyYXRvciA9IG9wdGlvbnMuc2VwYXJhdG9yICE9PSB2b2lkIDAgPyBvcHRpb25zLnNlcGFyYXRvciA6ICJcbiI7CiAgICAgICAgdGhpcy5zb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VzID0gW107CiAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUgPSB7fTsKICAgICAgfQogICAgICBhZGRTb3VyY2Uoc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIE1hZ2ljU3RyaW5nKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgICBjb250ZW50OiBzb3VyY2UsCiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIHNlcGFyYXRvcjogdGhpcy5zZXBhcmF0b3IKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiAoIWlzT2JqZWN0Mihzb3VyY2UpIHx8ICFzb3VyY2UuY29udGVudCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKAogICAgICAgICAgICAiYnVuZGxlLmFkZFNvdXJjZSgpIHRha2VzIGFuIG9iamVjdCB3aXRoIGEgYGNvbnRlbnRgIHByb3BlcnR5LCB3aGljaCBzaG91bGQgYmUgYW4gaW5zdGFuY2Ugb2YgTWFnaWNTdHJpbmcsIGFuZCBhbiBvcHRpb25hbCBgZmlsZW5hbWVgIgogICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgWyJmaWxlbmFtZSIsICJpZ25vcmVMaXN0IiwgImluZGVudEV4Y2x1c2lvblJhbmdlcyIsICJzZXBhcmF0b3IiXS5mb3JFYWNoKChvcHRpb24pID0+IHsKICAgICAgICAgIGlmICghaGFzT3duUHJvcC5jYWxsKHNvdXJjZSwgb3B0aW9uKSkgc291cmNlW29wdGlvbl0gPSBzb3VyY2UuY29udGVudFtvcHRpb25dOwogICAgICAgIH0pOwogICAgICAgIGlmIChzb3VyY2Uuc2VwYXJhdG9yID09PSB2b2lkIDApIHsKICAgICAgICAgIHNvdXJjZS5zZXBhcmF0b3IgPSB0aGlzLnNlcGFyYXRvcjsKICAgICAgICB9CiAgICAgICAgaWYgKHNvdXJjZS5maWxlbmFtZSkgewogICAgICAgICAgaWYgKCFoYXNPd25Qcm9wLmNhbGwodGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWUsIHNvdXJjZS5maWxlbmFtZSkpIHsKICAgICAgICAgICAgdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA9IHRoaXMudW5pcXVlU291cmNlcy5sZW5ndGg7CiAgICAgICAgICAgIHRoaXMudW5pcXVlU291cmNlcy5wdXNoKHsgZmlsZW5hbWU6IHNvdXJjZS5maWxlbmFtZSwgY29udGVudDogc291cmNlLmNvbnRlbnQub3JpZ2luYWwgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB1bmlxdWVTb3VyY2UgPSB0aGlzLnVuaXF1ZVNvdXJjZXNbdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXV07CiAgICAgICAgICAgIGlmIChzb3VyY2UuY29udGVudC5vcmlnaW5hbCAhPT0gdW5pcXVlU291cmNlLmNvbnRlbnQpIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYElsbGVnYWwgc291cmNlOiBzYW1lIGZpbGVuYW1lICgke3NvdXJjZS5maWxlbmFtZX0pLCBkaWZmZXJlbnQgY29udGVudHNgKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB0aGlzLnNvdXJjZXMucHVzaChzb3VyY2UpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGFwcGVuZChzdHIyLCBvcHRpb25zKSB7CiAgICAgICAgdGhpcy5hZGRTb3VyY2UoewogICAgICAgICAgY29udGVudDogbmV3IE1hZ2ljU3RyaW5nKHN0cjIpLAogICAgICAgICAgc2VwYXJhdG9yOiBvcHRpb25zICYmIG9wdGlvbnMuc2VwYXJhdG9yIHx8ICIiCiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgY2xvbmUoKSB7CiAgICAgICAgY29uc3QgYnVuZGxlID0gbmV3IF9CdW5kbGUoewogICAgICAgICAgaW50cm86IHRoaXMuaW50cm8sCiAgICAgICAgICBzZXBhcmF0b3I6IHRoaXMuc2VwYXJhdG9yCiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgYnVuZGxlLmFkZFNvdXJjZSh7CiAgICAgICAgICAgIGZpbGVuYW1lOiBzb3VyY2UuZmlsZW5hbWUsCiAgICAgICAgICAgIGNvbnRlbnQ6IHNvdXJjZS5jb250ZW50LmNsb25lKCksCiAgICAgICAgICAgIHNlcGFyYXRvcjogc291cmNlLnNlcGFyYXRvcgogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIGJ1bmRsZTsKICAgICAgfQogICAgICBnZW5lcmF0ZURlY29kZWRNYXAob3B0aW9ucyA9IHt9KSB7CiAgICAgICAgY29uc3QgbmFtZXMgPSBbXTsKICAgICAgICBsZXQgeF9nb29nbGVfaWdub3JlTGlzdCA9IHZvaWQgMDsKICAgICAgICB0aGlzLnNvdXJjZXMuZm9yRWFjaCgoc291cmNlKSA9PiB7CiAgICAgICAgICBPYmplY3Qua2V5cyhzb3VyY2UuY29udGVudC5zdG9yZWROYW1lcykuZm9yRWFjaCgobmFtZSkgPT4gewogICAgICAgICAgICBpZiAoIX5uYW1lcy5pbmRleE9mKG5hbWUpKSBuYW1lcy5wdXNoKG5hbWUpOwogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgY29uc3QgbWFwcGluZ3MgPSBuZXcgTWFwcGluZ3Mob3B0aW9ucy5oaXJlcyk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UodGhpcy5pbnRybyk7CiAgICAgICAgfQogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGlmIChpID4gMCkgewogICAgICAgICAgICBtYXBwaW5ncy5hZHZhbmNlKHRoaXMuc2VwYXJhdG9yKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IHNvdXJjZUluZGV4ID0gc291cmNlLmZpbGVuYW1lID8gdGhpcy51bmlxdWVTb3VyY2VJbmRleEJ5RmlsZW5hbWVbc291cmNlLmZpbGVuYW1lXSA6IC0xOwogICAgICAgICAgY29uc3QgbWFnaWNTdHJpbmcgPSBzb3VyY2UuY29udGVudDsKICAgICAgICAgIGNvbnN0IGxvY2F0ZSA9IGdldExvY2F0b3IobWFnaWNTdHJpbmcub3JpZ2luYWwpOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLmludHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcuaW50cm8pOwogICAgICAgICAgfQogICAgICAgICAgbWFnaWNTdHJpbmcuZmlyc3RDaHVuay5lYWNoTmV4dCgoY2h1bmspID0+IHsKICAgICAgICAgICAgY29uc3QgbG9jID0gbG9jYXRlKGNodW5rLnN0YXJ0KTsKICAgICAgICAgICAgaWYgKGNodW5rLmludHJvLmxlbmd0aCkgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5pbnRybyk7CiAgICAgICAgICAgIGlmIChzb3VyY2UuZmlsZW5hbWUpIHsKICAgICAgICAgICAgICBpZiAoY2h1bmsuZWRpdGVkKSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRFZGl0KAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmsuY29udGVudCwKICAgICAgICAgICAgICAgICAgbG9jLAogICAgICAgICAgICAgICAgICBjaHVuay5zdG9yZU5hbWUgPyBuYW1lcy5pbmRleE9mKGNodW5rLm9yaWdpbmFsKSA6IC0xCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBtYXBwaW5ncy5hZGRVbmVkaXRlZENodW5rKAogICAgICAgICAgICAgICAgICBzb3VyY2VJbmRleCwKICAgICAgICAgICAgICAgICAgY2h1bmssCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLm9yaWdpbmFsLAogICAgICAgICAgICAgICAgICBsb2MsCiAgICAgICAgICAgICAgICAgIG1hZ2ljU3RyaW5nLnNvdXJjZW1hcExvY2F0aW9ucwogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgbWFwcGluZ3MuYWR2YW5jZShjaHVuay5jb250ZW50KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY2h1bmsub3V0cm8ubGVuZ3RoKSBtYXBwaW5ncy5hZHZhbmNlKGNodW5rLm91dHJvKTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKG1hZ2ljU3RyaW5nLm91dHJvKSB7CiAgICAgICAgICAgIG1hcHBpbmdzLmFkdmFuY2UobWFnaWNTdHJpbmcub3V0cm8pOwogICAgICAgICAgfQogICAgICAgICAgaWYgKHNvdXJjZS5pZ25vcmVMaXN0ICYmIHNvdXJjZUluZGV4ICE9PSAtMSkgewogICAgICAgICAgICBpZiAoeF9nb29nbGVfaWdub3JlTGlzdCA9PT0gdm9pZCAwKSB7CiAgICAgICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdCA9IFtdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHhfZ29vZ2xlX2lnbm9yZUxpc3QucHVzaChzb3VyY2VJbmRleCk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIGZpbGU6IG9wdGlvbnMuZmlsZSA/IG9wdGlvbnMuZmlsZS5zcGxpdCgvWy9cXF0vKS5wb3AoKSA6IHZvaWQgMCwKICAgICAgICAgIHNvdXJjZXM6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5maWxlID8gZ2V0UmVsYXRpdmVQYXRoKG9wdGlvbnMuZmlsZSwgc291cmNlLmZpbGVuYW1lKSA6IHNvdXJjZS5maWxlbmFtZTsKICAgICAgICAgIH0pLAogICAgICAgICAgc291cmNlc0NvbnRlbnQ6IHRoaXMudW5pcXVlU291cmNlcy5tYXAoKHNvdXJjZSkgPT4gewogICAgICAgICAgICByZXR1cm4gb3B0aW9ucy5pbmNsdWRlQ29udGVudCA/IHNvdXJjZS5jb250ZW50IDogbnVsbDsKICAgICAgICAgIH0pLAogICAgICAgICAgbmFtZXMsCiAgICAgICAgICBtYXBwaW5nczogbWFwcGluZ3MucmF3LAogICAgICAgICAgeF9nb29nbGVfaWdub3JlTGlzdAogICAgICAgIH07CiAgICAgIH0KICAgICAgZ2VuZXJhdGVNYXAob3B0aW9ucykgewogICAgICAgIHJldHVybiBuZXcgU291cmNlTWFwKHRoaXMuZ2VuZXJhdGVEZWNvZGVkTWFwKG9wdGlvbnMpKTsKICAgICAgfQogICAgICBnZXRJbmRlbnRTdHJpbmcoKSB7CiAgICAgICAgY29uc3QgaW5kZW50U3RyaW5nQ291bnRzID0ge307CiAgICAgICAgdGhpcy5zb3VyY2VzLmZvckVhY2goKHNvdXJjZSkgPT4gewogICAgICAgICAgY29uc3QgaW5kZW50U3RyID0gc291cmNlLmNvbnRlbnQuX2dldFJhd0luZGVudFN0cmluZygpOwogICAgICAgICAgaWYgKGluZGVudFN0ciA9PT0gbnVsbCkgcmV0dXJuOwogICAgICAgICAgaWYgKCFpbmRlbnRTdHJpbmdDb3VudHNbaW5kZW50U3RyXSkgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gPSAwOwogICAgICAgICAgaW5kZW50U3RyaW5nQ291bnRzW2luZGVudFN0cl0gKz0gMTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoaW5kZW50U3RyaW5nQ291bnRzKS5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICByZXR1cm4gaW5kZW50U3RyaW5nQ291bnRzW2FdIC0gaW5kZW50U3RyaW5nQ291bnRzW2JdOwogICAgICAgIH0pWzBdIHx8ICIJIjsKICAgICAgfQogICAgICBpbmRlbnQoaW5kZW50U3RyKSB7CiAgICAgICAgaWYgKCFhcmd1bWVudHMubGVuZ3RoKSB7CiAgICAgICAgICBpbmRlbnRTdHIgPSB0aGlzLmdldEluZGVudFN0cmluZygpOwogICAgICAgIH0KICAgICAgICBpZiAoaW5kZW50U3RyID09PSAiIikgcmV0dXJuIHRoaXM7CiAgICAgICAgbGV0IHRyYWlsaW5nTmV3bGluZSA9ICF0aGlzLmludHJvIHx8IHRoaXMuaW50cm8uc2xpY2UoLTEpID09PSAiXG4iOwogICAgICAgIHRoaXMuc291cmNlcy5mb3JFYWNoKChzb3VyY2UsIGkpID0+IHsKICAgICAgICAgIGNvbnN0IHNlcGFyYXRvciA9IHNvdXJjZS5zZXBhcmF0b3IgIT09IHZvaWQgMCA/IHNvdXJjZS5zZXBhcmF0b3IgOiB0aGlzLnNlcGFyYXRvcjsKICAgICAgICAgIGNvbnN0IGluZGVudFN0YXJ0ID0gdHJhaWxpbmdOZXdsaW5lIHx8IGkgPiAwICYmIC9ccj9cbiQvLnRlc3Qoc2VwYXJhdG9yKTsKICAgICAgICAgIHNvdXJjZS5jb250ZW50LmluZGVudChpbmRlbnRTdHIsIHsKICAgICAgICAgICAgZXhjbHVkZTogc291cmNlLmluZGVudEV4Y2x1c2lvblJhbmdlcywKICAgICAgICAgICAgaW5kZW50U3RhcnQKICAgICAgICAgICAgLy86IHRyYWlsaW5nTmV3bGluZSB8fCAvXHI/XG4kLy50ZXN0KCBzZXBhcmF0b3IgKSAgLy90cnVlLy8vXHI/XG4vLnRlc3QoIHNlcGFyYXRvciApCiAgICAgICAgICB9KTsKICAgICAgICAgIHRyYWlsaW5nTmV3bGluZSA9IHNvdXJjZS5jb250ZW50Lmxhc3RDaGFyKCkgPT09ICJcbiI7CiAgICAgICAgfSk7CiAgICAgICAgaWYgKHRoaXMuaW50cm8pIHsKICAgICAgICAgIHRoaXMuaW50cm8gPSBpbmRlbnRTdHIgKyB0aGlzLmludHJvLnJlcGxhY2UoL15bXlxuXS9nbSwgKG1hdGNoLCBpbmRleCkgPT4gewogICAgICAgICAgICByZXR1cm4gaW5kZXggPiAwID8gaW5kZW50U3RyICsgbWF0Y2ggOiBtYXRjaDsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBwcmVwZW5kKHN0cjIpIHsKICAgICAgICB0aGlzLmludHJvID0gc3RyMiArIHRoaXMuaW50cm87CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdG9TdHJpbmcoKSB7CiAgICAgICAgY29uc3QgYm9keSA9IHRoaXMuc291cmNlcy5tYXAoKHNvdXJjZSwgaSkgPT4gewogICAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gc291cmNlLnNlcGFyYXRvciAhPT0gdm9pZCAwID8gc291cmNlLnNlcGFyYXRvciA6IHRoaXMuc2VwYXJhdG9yOwogICAgICAgICAgY29uc3Qgc3RyMiA9IChpID4gMCA/IHNlcGFyYXRvciA6ICIiKSArIHNvdXJjZS5jb250ZW50LnRvU3RyaW5nKCk7CiAgICAgICAgICByZXR1cm4gc3RyMjsKICAgICAgICB9KS5qb2luKCIiKTsKICAgICAgICByZXR1cm4gdGhpcy5pbnRybyArIGJvZHk7CiAgICAgIH0KICAgICAgaXNFbXB0eSgpIHsKICAgICAgICBpZiAodGhpcy5pbnRyby5sZW5ndGggJiYgdGhpcy5pbnRyby50cmltKCkpIHJldHVybiBmYWxzZTsKICAgICAgICBpZiAodGhpcy5zb3VyY2VzLnNvbWUoKHNvdXJjZSkgPT4gIXNvdXJjZS5jb250ZW50LmlzRW1wdHkoKSkpIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICBsZW5ndGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlcy5yZWR1Y2UoCiAgICAgICAgICAobGVuZ3RoLCBzb3VyY2UpID0+IGxlbmd0aCArIHNvdXJjZS5jb250ZW50Lmxlbmd0aCgpLAogICAgICAgICAgdGhpcy5pbnRyby5sZW5ndGgKICAgICAgICApOwogICAgICB9CiAgICAgIHRyaW1MaW5lcygpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltKCJbXFxyXFxuXSIpOwogICAgICB9CiAgICAgIHRyaW0oY2hhclR5cGUpIHsKICAgICAgICByZXR1cm4gdGhpcy50cmltU3RhcnQoY2hhclR5cGUpLnRyaW1FbmQoY2hhclR5cGUpOwogICAgICB9CiAgICAgIHRyaW1TdGFydChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgiXiIgKyAoY2hhclR5cGUgfHwgIlxccyIpICsgIisiKTsKICAgICAgICB0aGlzLmludHJvID0gdGhpcy5pbnRyby5yZXBsYWNlKHJ4LCAiIik7CiAgICAgICAgaWYgKCF0aGlzLmludHJvKSB7CiAgICAgICAgICBsZXQgc291cmNlOwogICAgICAgICAgbGV0IGkgPSAwOwogICAgICAgICAgZG8gewogICAgICAgICAgICBzb3VyY2UgPSB0aGlzLnNvdXJjZXNbaSsrXTsKICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgICAgfSB3aGlsZSAoIXNvdXJjZS5jb250ZW50LnRyaW1TdGFydEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgdHJpbUVuZChjaGFyVHlwZSkgewogICAgICAgIGNvbnN0IHJ4ID0gbmV3IFJlZ0V4cCgoY2hhclR5cGUgfHwgIlxccyIpICsgIiskIik7CiAgICAgICAgbGV0IHNvdXJjZTsKICAgICAgICBsZXQgaSA9IHRoaXMuc291cmNlcy5sZW5ndGggLSAxOwogICAgICAgIGRvIHsKICAgICAgICAgIHNvdXJjZSA9IHRoaXMuc291cmNlc1tpLS1dOwogICAgICAgICAgaWYgKCFzb3VyY2UpIHsKICAgICAgICAgICAgdGhpcy5pbnRybyA9IHRoaXMuaW50cm8ucmVwbGFjZShyeCwgIiIpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICghc291cmNlLmNvbnRlbnQudHJpbUVuZEFib3J0ZWQoY2hhclR5cGUpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgfTsKICAgIE1hZ2ljU3RyaW5nLkJ1bmRsZSA9IEJ1bmRsZTsKICAgIE1hZ2ljU3RyaW5nLlNvdXJjZU1hcCA9IFNvdXJjZU1hcDsKICAgIE1hZ2ljU3RyaW5nLmRlZmF1bHQgPSBNYWdpY1N0cmluZzsKICAgIG1vZHVsZTIuZXhwb3J0cyA9IE1hZ2ljU3RyaW5nOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcwp2YXIgcmVxdWlyZV9yZWNvcmRlciA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9yZWNvcmRlci5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2ltcG9ydERlZmF1bHQgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydERlZmF1bHQgfHwgZnVuY3Rpb24obW9kKSB7CiAgICAgIHJldHVybiBtb2QgJiYgbW9kLl9fZXNNb2R1bGUgPyBtb2QgOiB7ICJkZWZhdWx0IjogbW9kIH07CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBleHBvcnRzMi5JbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBtYWdpY19zdHJpbmdfMSA9IF9faW1wb3J0RGVmYXVsdChyZXF1aXJlX21hZ2ljX3N0cmluZ19janMoKSk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBJbmRleE91dE9mQm91bmRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IoaW5kZXgsIG1pbiwgbWF4ID0gSW5maW5pdHkpIHsKICAgICAgICBzdXBlcihgSW5kZXggJHtpbmRleH0gb3V0c2lkZSBvZiByYW5nZSBbJHttaW59LCAke21heH1dLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uID0gSW5kZXhPdXRPZkJvdW5kRXhjZXB0aW9uOwogICAgdmFyIFVwZGF0ZVJlY29yZGVyQmFzZSA9IGNsYXNzIF9VcGRhdGVSZWNvcmRlckJhc2UgewogICAgICBkYXRhOwogICAgICBib207CiAgICAgIF9wYXRoOwogICAgICBjb250ZW50OwogICAgICBjb25zdHJ1Y3RvcihkYXRhLCBwYXRoLCBlbmNvZGluZyA9ICJ1dGYtOCIsIGJvbSA9IGZhbHNlKSB7CiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTsKICAgICAgICB0aGlzLmJvbSA9IGJvbTsKICAgICAgICBsZXQgdGV4dDsKICAgICAgICB0cnkgewogICAgICAgICAgdGV4dCA9IG5ldyBUZXh0RGVjb2RlcihlbmNvZGluZywgeyBmYXRhbDogdHJ1ZSwgaWdub3JlQk9NOiBmYWxzZSB9KS5kZWNvZGUoZGF0YSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyAke2VuY29kaW5nfSB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fcGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5jb250ZW50ID0gbmV3IG1hZ2ljX3N0cmluZ18xLmRlZmF1bHQodGV4dCk7CiAgICAgIH0KICAgICAgc3RhdGljIGNyZWF0ZUZyb21GaWxlRW50cnkoZW50cnkpIHsKICAgICAgICBjb25zdCBjMCA9IGVudHJ5LmNvbnRlbnQuYnl0ZUxlbmd0aCA+IDAgJiYgZW50cnkuY29udGVudC5yZWFkVUludDgoMCk7CiAgICAgICAgY29uc3QgYzEgPSBlbnRyeS5jb250ZW50LmJ5dGVMZW5ndGggPiAxICYmIGVudHJ5LmNvbnRlbnQucmVhZFVJbnQ4KDEpOwogICAgICAgIGNvbnN0IGMyID0gZW50cnkuY29udGVudC5ieXRlTGVuZ3RoID4gMiAmJiBlbnRyeS5jb250ZW50LnJlYWRVSW50OCgyKTsKICAgICAgICBpZiAoYzAgPT0gMjM5ICYmIGMxID09IDE4NyAmJiBjMiA9PSAxOTEpIHsKICAgICAgICAgIHJldHVybiBuZXcgX1VwZGF0ZVJlY29yZGVyQmFzZShlbnRyeS5jb250ZW50LCBlbnRyeS5wYXRoLCAidXRmLTgiLCB0cnVlKTsKICAgICAgICB9IGVsc2UgaWYgKGMwID09PSAyNTUgJiYgYzEgPT0gMjU0KSB7CiAgICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCwgInV0Zi0xNmxlIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIGlmIChjMCA9PT0gMjU0ICYmIGMxID09IDI1NSkgewogICAgICAgICAgcmV0dXJuIG5ldyBfVXBkYXRlUmVjb3JkZXJCYXNlKGVudHJ5LmNvbnRlbnQsIGVudHJ5LnBhdGgsICJ1dGYtMTZiZSIsIHRydWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gbmV3IF9VcGRhdGVSZWNvcmRlckJhc2UoZW50cnkuY29udGVudCwgZW50cnkucGF0aCk7CiAgICAgIH0KICAgICAgZ2V0IHBhdGgoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3BhdGg7CiAgICAgIH0KICAgICAgX2Fzc2VydEluZGV4KGluZGV4KSB7CiAgICAgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+IHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpIHsKICAgICAgICAgIHRocm93IG5ldyBJbmRleE91dE9mQm91bmRFeGNlcHRpb24oaW5kZXgsIDAsIHRoaXMuY29udGVudC5vcmlnaW5hbC5sZW5ndGgpOwogICAgICAgIH0KICAgICAgfQogICAgICAvLyBUaGVzZSBqdXN0IHJlY29yZCBjaGFuZ2VzLgogICAgICBpbnNlcnRMZWZ0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRMZWZ0KGluZGV4LCBjb250ZW50LnRvU3RyaW5nKCkpOwogICAgICAgIHJldHVybiB0aGlzOwogICAgICB9CiAgICAgIGluc2VydFJpZ2h0KGluZGV4LCBjb250ZW50KSB7CiAgICAgICAgdGhpcy5fYXNzZXJ0SW5kZXgoaW5kZXgpOwogICAgICAgIHRoaXMuY29udGVudC5hcHBlbmRSaWdodChpbmRleCwgY29udGVudC50b1N0cmluZygpKTsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICByZW1vdmUoaW5kZXgsIGxlbmd0aCkgewogICAgICAgIHRoaXMuX2Fzc2VydEluZGV4KGluZGV4KTsKICAgICAgICB0aGlzLmNvbnRlbnQucmVtb3ZlKGluZGV4LCBpbmRleCArIGxlbmd0aCk7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYXBwbHkoY29udGVudCkgewogICAgICAgIGlmICghY29udGVudC5lcXVhbHModGhpcy5kYXRhKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHRoaXMucGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IHJlc3VsdCA9IEJ1ZmZlci5mcm9tKCh0aGlzLmJvbSA/ICJcdUZFRkYiIDogIiIpICsgdGhpcy5jb250ZW50LnRvU3RyaW5nKCksICJ1dGYtOCIpOwogICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5VcGRhdGVSZWNvcmRlckJhc2UgPSBVcGRhdGVSZWNvcmRlckJhc2U7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcwp2YXIgcmVxdWlyZV9zY29wZWQyID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3Njb3BlZC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuU2NvcGVkVHJlZSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGRlbGVnYXRlXzEgPSByZXF1aXJlX2RlbGVnYXRlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBTY29wZWRGaWxlRW50cnkgPSBjbGFzcyB7CiAgICAgIF9iYXNlOwogICAgICBzY29wZTsKICAgICAgY29uc3RydWN0b3IoX2Jhc2UsIHNjb3BlKSB7CiAgICAgICAgdGhpcy5fYmFzZSA9IF9iYXNlOwogICAgICAgIHRoaXMuc2NvcGUgPSBzY29wZTsKICAgICAgfQogICAgICBnZXQgcGF0aCgpIHsKICAgICAgICByZXR1cm4gKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuc2NvcGUsIHRoaXMuX2Jhc2UucGF0aCkpOwogICAgICB9CiAgICAgIGdldCBjb250ZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmNvbnRlbnQ7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkRGlyRW50cnkgPSBjbGFzcyBfU2NvcGVkRGlyRW50cnkgewogICAgICBfYmFzZTsKICAgICAgc2NvcGU7CiAgICAgIGNvbnN0cnVjdG9yKF9iYXNlLCBzY29wZSkgewogICAgICAgIHRoaXMuX2Jhc2UgPSBfYmFzZTsKICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7CiAgICAgIH0KICAgICAgZ2V0IHBhcmVudCgpIHsKICAgICAgICBpZiAoIXRoaXMuX2Jhc2UucGFyZW50IHx8IHRoaXMuX2Jhc2UucGF0aCA9PSB0aGlzLnNjb3BlKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBfU2NvcGVkRGlyRW50cnkodGhpcy5fYmFzZS5wYXJlbnQsIHRoaXMuc2NvcGUpOwogICAgICB9CiAgICAgIGdldCBwYXRoKCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgdGhpcy5fYmFzZS5wYXRoKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmRpcnMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZGlyczsKICAgICAgfQogICAgICBnZXQgc3ViZmlsZXMoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uuc3ViZmlsZXM7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZGlyKG5hbWUpOwogICAgICAgIHJldHVybiBlbnRyeSAmJiBuZXcgX1Njb3BlZERpckVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuX2Jhc2UuZmlsZShuYW1lKTsKICAgICAgICByZXR1cm4gZW50cnkgJiYgbmV3IFNjb3BlZEZpbGVFbnRyeShlbnRyeSwgdGhpcy5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLnZpc2l0KChwYXRoLCBlbnRyeSkgPT4gewogICAgICAgICAgdmlzaXRvcigoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5zY29wZSwgcGF0aCkpLCBlbnRyeSAmJiBuZXcgU2NvcGVkRmlsZUVudHJ5KGVudHJ5LCB0aGlzLnNjb3BlKSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CiAgICB2YXIgU2NvcGVkVHJlZSA9IGNsYXNzIF9TY29wZWRUcmVlIHsKICAgICAgX2Jhc2U7CiAgICAgIF9yb290OwogICAgICBjb25zdHJ1Y3RvcihfYmFzZSwgc2NvcGUpIHsKICAgICAgICB0aGlzLl9iYXNlID0gX2Jhc2U7CiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFNjb3BlID0gKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIiArIHNjb3BlKTsKICAgICAgICB0aGlzLl9yb290ID0gbmV3IFNjb3BlZERpckVudHJ5KHRoaXMuX2Jhc2UuZ2V0RGlyKG5vcm1hbGl6ZWRTY29wZSksIG5vcm1hbGl6ZWRTY29wZSk7CiAgICAgIH0KICAgICAgZ2V0IHJvb3QoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3Q7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX1Njb3BlZFRyZWUodGhpcy5fYmFzZS5icmFuY2goKSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgbWVyZ2Uob3RoZXIsIHN0cmF0ZWd5KSB7CiAgICAgICAgY29uc3Qgc2VsZjIgPSB0aGlzOwogICAgICAgIGNvbnN0IGRlbGVnYXRlID0gbmV3IGNsYXNzIGV4dGVuZHMgZGVsZWdhdGVfMS5EZWxlZ2F0ZVRyZWUgewogICAgICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgICAgIHJldHVybiBvdGhlci5hY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiBzZWxmMi5fZnVsbFBhdGhBY3Rpb24oYWN0aW9uKSk7CiAgICAgICAgICB9CiAgICAgICAgfShvdGhlcik7CiAgICAgICAgdGhpcy5fYmFzZS5tZXJnZShkZWxlZ2F0ZSwgc3RyYXRlZ3kpOwogICAgICB9CiAgICAgIC8vIFJlYWRvbmx5LgogICAgICByZWFkKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkKHRoaXMuX2Z1bGxQYXRoKHBhdGgpKTsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVhZFRleHQodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlYWRKc29uKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5yZWFkSnNvbih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgZXhpc3RzKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5leGlzdHModGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldCh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWRGaWxlRW50cnkoZW50cnksIHRoaXMuX3Jvb3Quc2NvcGUpOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLl9iYXNlLmdldERpcih0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgICAgcmV0dXJuIGVudHJ5ICYmIG5ldyBTY29wZWREaXJFbnRyeShlbnRyeSwgdGhpcy5fcm9vdC5zY29wZSk7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHJldHVybiB0aGlzLl9yb290LnZpc2l0KHZpc2l0b3IpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2Uub3ZlcndyaXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBiZWdpblVwZGF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuYmVnaW5VcGRhdGUodGhpcy5fZnVsbFBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5jb21taXRVcGRhdGUocmVjb3JkKTsKICAgICAgfQogICAgICAvLyBTdHJ1Y3R1cmFsIG1ldGhvZHMuCiAgICAgIGNyZWF0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UuY3JlYXRlKHRoaXMuX2Z1bGxQYXRoKHBhdGgpLCBjb250ZW50KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9iYXNlLmRlbGV0ZSh0aGlzLl9mdWxsUGF0aChwYXRoKSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2UucmVuYW1lKHRoaXMuX2Z1bGxQYXRoKGZyb20pLCB0aGlzLl9mdWxsUGF0aCh0bykpOwogICAgICB9CiAgICAgIGFwcGx5KGFjdGlvbiwgc3RyYXRlZ3kpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYmFzZS5hcHBseSh0aGlzLl9mdWxsUGF0aEFjdGlvbihhY3Rpb24pLCBzdHJhdGVneSk7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgY29uc3Qgc2NvcGVkQWN0aW9ucyA9IFtdOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMuX2Jhc2UuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFhY3Rpb24ucGF0aC5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGFjdGlvbi5raW5kICE9PSAiciIpIHsKICAgICAgICAgICAgc2NvcGVkQWN0aW9ucy5wdXNoKHsKICAgICAgICAgICAgICAuLi5hY3Rpb24sCiAgICAgICAgICAgICAgcGF0aDogKDAsIGNvcmVfMS5qb2luKShjb3JlXzEuTm9ybWFsaXplZFJvb3QsICgwLCBjb3JlXzEucmVsYXRpdmUpKHRoaXMuX3Jvb3Quc2NvcGUsIGFjdGlvbi5wYXRoKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGFjdGlvbi50by5zdGFydHNXaXRoKHRoaXMuX3Jvb3Quc2NvcGUgKyAiLyIpKSB7CiAgICAgICAgICAgIHNjb3BlZEFjdGlvbnMucHVzaCh7CiAgICAgICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgICAgIHBhdGg6ICgwLCBjb3JlXzEuam9pbikoY29yZV8xLk5vcm1hbGl6ZWRSb290LCAoMCwgY29yZV8xLnJlbGF0aXZlKSh0aGlzLl9yb290LnNjb3BlLCBhY3Rpb24ucGF0aCkpLAogICAgICAgICAgICAgIHRvOiAoMCwgY29yZV8xLmpvaW4pKGNvcmVfMS5Ob3JtYWxpemVkUm9vdCwgKDAsIGNvcmVfMS5yZWxhdGl2ZSkodGhpcy5fcm9vdC5zY29wZSwgYWN0aW9uLnRvKSkKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBzY29wZWRBY3Rpb25zOwogICAgICB9CiAgICAgIFtpbnRlcmZhY2VfMS5UcmVlU3ltYm9sXSgpIHsKICAgICAgICByZXR1cm4gdGhpczsKICAgICAgfQogICAgICBfZnVsbFBhdGgocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgY29yZV8xLmpvaW4pKHRoaXMuX3Jvb3Quc2NvcGUsICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgX2Z1bGxQYXRoQWN0aW9uKGFjdGlvbikgewogICAgICAgIGxldCBmdWxsUGF0aEFjdGlvbjsKICAgICAgICBpZiAoYWN0aW9uLmtpbmQgPT09ICJyIikgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpLAogICAgICAgICAgICB0bzogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnRvKQogICAgICAgICAgfTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgZnVsbFBhdGhBY3Rpb24gPSB7CiAgICAgICAgICAgIC4uLmFjdGlvbiwKICAgICAgICAgICAgcGF0aDogdGhpcy5fZnVsbFBhdGgoYWN0aW9uLnBhdGgpCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gZnVsbFBhdGhBY3Rpb247CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY29wZWRUcmVlID0gU2NvcGVkVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvaG9zdC10cmVlLmpzCnZhciByZXF1aXJlX2hvc3RfdHJlZSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9ob3N0LXRyZWUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gZXhwb3J0czIuSG9zdENyZWF0ZVRyZWUgPSBleHBvcnRzMi5Ib3N0VHJlZSA9IGV4cG9ydHMyLkhvc3REaXJFbnRyeSA9IHZvaWQgMDsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGpzb25jX3BhcnNlcl8xID0gcmVxdWlyZV9tYWluKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBkZWxlZ2F0ZV8xID0gcmVxdWlyZV9kZWxlZ2F0ZSgpOwogICAgdmFyIGVudHJ5XzEgPSByZXF1aXJlX2VudHJ5KCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciByZWNvcmRlcl8xID0gcmVxdWlyZV9yZWNvcmRlcigpOwogICAgdmFyIHNjb3BlZF8xID0gcmVxdWlyZV9zY29wZWQyKCk7CiAgICB2YXIgX3VuaXF1ZUlkID0gMDsKICAgIHZhciBIb3N0RGlyRW50cnkgPSBjbGFzcyB7CiAgICAgIHBhcmVudDsKICAgICAgcGF0aDsKICAgICAgX2hvc3Q7CiAgICAgIF90cmVlOwogICAgICBjb25zdHJ1Y3RvcihwYXJlbnQsIHBhdGgsIF9ob3N0LCBfdHJlZSkgewogICAgICAgIHRoaXMucGFyZW50ID0gcGFyZW50OwogICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CiAgICAgICAgdGhpcy5faG9zdCA9IF9ob3N0OwogICAgICAgIHRoaXMuX3RyZWUgPSBfdHJlZTsKICAgICAgfQogICAgICBnZXQgc3ViZGlycygpIHsKICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5saXN0KHRoaXMucGF0aCkuZmlsdGVyKChmcmFnbWVudCkgPT4gdGhpcy5faG9zdC5pc0RpcmVjdG9yeSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZ2V0IHN1YmZpbGVzKCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0Lmxpc3QodGhpcy5wYXRoKS5maWx0ZXIoKGZyYWdtZW50KSA9PiB0aGlzLl9ob3N0LmlzRmlsZSgoMCwgY29yZV8xLmpvaW4pKHRoaXMucGF0aCwgZnJhZ21lbnQpKSk7CiAgICAgIH0KICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXREaXIoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICBmaWxlKG5hbWUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fdHJlZS5nZXQoKDAsIGNvcmVfMS5qb2luKSh0aGlzLnBhdGgsIG5hbWUpKTsKICAgICAgfQogICAgICB2aXNpdCh2aXNpdG9yKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIHRoaXMuZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpLmZvckVhY2goKGZpbGUpID0+IHZpc2l0b3IoZmlsZS5wYXRoLCBmaWxlKSk7CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgIT09IGludGVyZmFjZV8xLkZpbGVWaXNpdG9yQ2FuY2VsVG9rZW4pIHsKICAgICAgICAgICAgdGhyb3cgZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgICAgZ2V0U3ViZmlsZXNSZWN1cnNpdmVseSgpIHsKICAgICAgICBmdW5jdGlvbiBfcmVjdXJzZShlbnRyeSkgewogICAgICAgICAgcmV0dXJuIGVudHJ5LnN1YmRpcnMucmVkdWNlKChmaWxlcywgc3ViZGlyKSA9PiBbLi4uZmlsZXMsIC4uLl9yZWN1cnNlKGVudHJ5LmRpcihzdWJkaXIpKV0sIGVudHJ5LnN1YmZpbGVzLm1hcCgoc3ViZmlsZSkgPT4gZW50cnkuZmlsZShzdWJmaWxlKSkpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gX3JlY3Vyc2UodGhpcyk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Ib3N0RGlyRW50cnkgPSBIb3N0RGlyRW50cnk7CiAgICB2YXIgSG9zdFRyZWUgPSBjbGFzcyBfSG9zdFRyZWUgewogICAgICBfYmFja2VuZDsKICAgICAgX2lkID0gLS1fdW5pcXVlSWQ7CiAgICAgIF9yZWNvcmQ7CiAgICAgIF9yZWNvcmRTeW5jOwogICAgICBfYW5jZXN0cnkgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZGlyQ2FjaGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgc3RhdGljIGlzSG9zdFRyZWUodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGVvZiB0cmVlID09PSAib2JqZWN0IiAmJiB0eXBlb2YgdHJlZS5fYW5jZXN0cnkgPT09ICJvYmplY3QiKSB7CiAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKF9iYWNrZW5kID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuRW1wdHkoKSkgewogICAgICAgIHRoaXMuX2JhY2tlbmQgPSBfYmFja2VuZDsKICAgICAgICB0aGlzLl9yZWNvcmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5Db3JkSG9zdChuZXcgY29yZV8xLnZpcnR1YWxGcy5TYWZlUmVhZG9ubHlIb3N0KF9iYWNrZW5kKSk7CiAgICAgICAgdGhpcy5fcmVjb3JkU3luYyA9IG5ldyBjb3JlXzEudmlydHVhbEZzLlN5bmNEZWxlZ2F0ZUhvc3QodGhpcy5fcmVjb3JkKTsKICAgICAgfQogICAgICBfbm9ybWFsaXplUGF0aChwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKTsKICAgICAgfQogICAgICBfd2lsbENyZWF0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsQ3JlYXRlKHBhdGgpOwogICAgICB9CiAgICAgIF93aWxsT3ZlcndyaXRlKHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVjb3JkLndpbGxPdmVyd3JpdGUocGF0aCk7CiAgICAgIH0KICAgICAgX3dpbGxEZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZWNvcmQud2lsbERlbGV0ZShwYXRoKTsKICAgICAgfQogICAgICBfd2lsbFJlbmFtZShwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZC53aWxsUmVuYW1lKHBhdGgpOwogICAgICB9CiAgICAgIGJyYW5jaCgpIHsKICAgICAgICBjb25zdCBicmFuY2hlZFRyZWUgPSBuZXcgX0hvc3RUcmVlKHRoaXMuX2JhY2tlbmQpOwogICAgICAgIGJyYW5jaGVkVHJlZS5fcmVjb3JkID0gdGhpcy5fcmVjb3JkLmNsb25lKCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9yZWNvcmRTeW5jID0gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU3luY0RlbGVnYXRlSG9zdChicmFuY2hlZFRyZWUuX3JlY29yZCk7CiAgICAgICAgYnJhbmNoZWRUcmVlLl9hbmNlc3RyeSA9IG5ldyBTZXQodGhpcy5fYW5jZXN0cnkpLmFkZCh0aGlzLl9pZCk7CiAgICAgICAgcmV0dXJuIGJyYW5jaGVkVHJlZTsKICAgICAgfQogICAgICBpc0FuY2VzdG9yT2YodHJlZSkgewogICAgICAgIGlmICh0cmVlIGluc3RhbmNlb2YgX0hvc3RUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdHJlZS5fYW5jZXN0cnkuaGFzKHRoaXMuX2lkKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBkZWxlZ2F0ZV8xLkRlbGVnYXRlVHJlZSkgewogICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbmNlc3Rvck9mKHRyZWUuX290aGVyKTsKICAgICAgICB9CiAgICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBzY29wZWRfMS5TY29wZWRUcmVlKSB7CiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FuY2VzdG9yT2YodHJlZS5fYmFzZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBtZXJnZShvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgICBpZiAob3RoZXIgPT09IHRoaXMpIHsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuaXNBbmNlc3Rvck9mKG90aGVyKSkgewogICAgICAgICAgc3RyYXRlZ3kgfD0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGU7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNyZWF0aW9uQ29uZmxpY3RBbGxvd2VkID0gKHN0cmF0ZWd5ICYgaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0NyZWF0aW9uQ29uZmxpY3QpID09IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dDcmVhdGlvbkNvbmZsaWN0OwogICAgICAgIGNvbnN0IG92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dPdmVyd3JpdGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd092ZXJ3cml0ZUNvbmZsaWN0OwogICAgICAgIGNvbnN0IGRlbGV0ZUNvbmZsaWN0QWxsb3dlZCA9IChzdHJhdGVneSAmIGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuQWxsb3dEZWxldGVDb25mbGljdCkgPT0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5BbGxvd0RlbGV0ZUNvbmZsaWN0OwogICAgICAgIG90aGVyLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOiB7CiAgICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBjb250ZW50IH0gPSBhY3Rpb247CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxDcmVhdGUocGF0aCkgfHwgdGhpcy5fd2lsbE92ZXJ3cml0ZShwYXRoKSB8fCB0aGlzLmV4aXN0cyhwYXRoKSkgewogICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdDb250ZW50ID0gdGhpcy5yZWFkKHBhdGgpOwogICAgICAgICAgICAgICAgaWYgKGV4aXN0aW5nQ29udGVudCAmJiBjb250ZW50LmVxdWFscyhleGlzdGluZ0NvbnRlbnQpKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghY3JlYXRpb25Db25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLl9yZWNvcmQuY3JlYXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAibyI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSAmJiAhb3ZlcndyaXRlQ29uZmxpY3RBbGxvd2VkKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHRoaXMuX3dpbGxPdmVyd3JpdGUocGF0aCkpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ29udGVudCA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0NvbnRlbnQgJiYgY29udGVudC5lcXVhbHMoZXhpc3RpbmdDb250ZW50KSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIW92ZXJ3cml0ZUNvbmZsaWN0QWxsb3dlZCkgewogICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuTWVyZ2VDb25mbGljdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgdGhpcy5fcmVjb3JkLndyaXRlKHBhdGgsIGNvbnRlbnQpLnN1YnNjcmliZSgpOwogICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlICJyIjogewogICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgdG8gfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmICh0aGlzLl93aWxsUmVuYW1lKHBhdGgpKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5fcmVjb3JkLndpbGxSZW5hbWVUbyhwYXRoLCB0bykpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLk1lcmdlQ29uZmxpY3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHRoaXMucmVuYW1lKHBhdGgsIHRvKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAiZCI6IHsKICAgICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IGFjdGlvbjsKICAgICAgICAgICAgICBpZiAodGhpcy5fd2lsbERlbGV0ZShwYXRoKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIXRoaXMuZXhpc3RzKHBhdGgpICYmICFkZWxldGVDb25mbGljdEFsbG93ZWQpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5NZXJnZUNvbmZsaWN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLl9yZWNvcmRTeW5jLmRlbGV0ZShwYXRoKTsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgICBnZXQgcm9vdCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5nZXREaXIoIi8iKTsKICAgICAgfQogICAgICAvLyBSZWFkb25seS4KICAgICAgcmVhZChwYXRoKSB7CiAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICByZXR1cm4gZW50cnkgPyBlbnRyeS5jb250ZW50IDogbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMucmVhZChwYXRoKTsKICAgICAgICBpZiAoZGF0YSA9PT0gbnVsbCkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGRlY29kZXIgPSBuZXcgVGV4dERlY29kZXIoInV0Zi04IiwgeyBmYXRhbDogdHJ1ZSB9KTsKICAgICAgICB0cnkgewogICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlKGRhdGEpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgVHlwZUVycm9yIHx8IGUuY29kZSA9PT0gIkVSUl9FTkNPRElOR19JTlZBTElEX0VOQ09ERURfREFUQSIpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVjb2RlICIke3BhdGh9IiBhcyBVVEYtOCB0ZXh0LmApOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnJlYWRUZXh0KHBhdGgpOwogICAgICAgIGNvbnN0IGVycm9ycyA9IFtdOwogICAgICAgIGNvbnN0IHJlc3VsdCA9ICgwLCBqc29uY19wYXJzZXJfMS5wYXJzZSkoY29udGVudCwgZXJyb3JzLCB7IGFsbG93VHJhaWxpbmdDb21tYTogdHJ1ZSB9KTsKICAgICAgICBpZiAoZXJyb3JzWzBdKSB7CiAgICAgICAgICBjb25zdCB7IGVycm9yLCBvZmZzZXQgfSA9IGVycm9yc1swXTsKICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHBhcnNlICIke3BhdGh9IiBhcyBKU09OLiAkeygwLCBqc29uY19wYXJzZXJfMS5wcmludFBhcnNlRXJyb3JDb2RlKShlcnJvcil9IGF0IG9mZnNldDogJHtvZmZzZXR9LmApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3JlY29yZFN5bmMuaXNGaWxlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIGdldChwYXRoKSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKHRoaXMuX3JlY29yZFN5bmMuaXNEaXJlY3RvcnkocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRGlyZWN0b3J5RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuX3JlY29yZFN5bmMuZXhpc3RzKHApKSB7CiAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG5ldyBlbnRyeV8xLkxhenlGaWxlRW50cnkocCwgKCkgPT4gQnVmZmVyLmZyb20odGhpcy5fcmVjb3JkU3luYy5yZWFkKHApKSk7CiAgICAgIH0KICAgICAgZ2V0RGlyKHBhdGgpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5pc0ZpbGUocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBjb3JlXzEuUGF0aElzRmlsZUV4Y2VwdGlvbihwKTsKICAgICAgICB9CiAgICAgICAgbGV0IG1heWJlQ2FjaGUgPSB0aGlzLl9kaXJDYWNoZS5nZXQocCk7CiAgICAgICAgaWYgKCFtYXliZUNhY2hlKSB7CiAgICAgICAgICBsZXQgcGFyZW50ID0gKDAsIGNvcmVfMS5kaXJuYW1lKShwKTsKICAgICAgICAgIGlmIChwID09PSBwYXJlbnQpIHsKICAgICAgICAgICAgcGFyZW50ID0gbnVsbDsKICAgICAgICAgIH0KICAgICAgICAgIG1heWJlQ2FjaGUgPSBuZXcgSG9zdERpckVudHJ5KHBhcmVudCAmJiB0aGlzLmdldERpcihwYXJlbnQpLCBwLCB0aGlzLl9yZWNvcmRTeW5jLCB0aGlzKTsKICAgICAgICAgIHRoaXMuX2RpckNhY2hlLnNldChwLCBtYXliZUNhY2hlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1heWJlQ2FjaGU7CiAgICAgIH0KICAgICAgdmlzaXQodmlzaXRvcikgewogICAgICAgIHRoaXMucm9vdC52aXNpdCgocGF0aCwgZW50cnkpID0+IHsKICAgICAgICAgIHZpc2l0b3IocGF0aCwgZW50cnkpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBjb250ZW50IG9mIGhvc3QgZmlsZXMuCiAgICAgIG92ZXJ3cml0ZShwYXRoLCBjb250ZW50KSB7CiAgICAgICAgY29uc3QgcCA9IHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCk7CiAgICAgICAgaWYgKCF0aGlzLl9yZWNvcmRTeW5jLmV4aXN0cyhwKSkgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGMgPSB0eXBlb2YgY29udGVudCA9PSAic3RyaW5nIiA/IEJ1ZmZlci5mcm9tKGNvbnRlbnQpIDogY29udGVudDsKICAgICAgICB0aGlzLl9yZWNvcmQub3ZlcndyaXRlKHAsIGMpLnN1YnNjcmliZSgpOwogICAgICB9CiAgICAgIGJlZ2luVXBkYXRlKHBhdGgpIHsKICAgICAgICBjb25zdCBlbnRyeSA9IHRoaXMuZ2V0KHBhdGgpOwogICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcmVjb3JkZXJfMS5VcGRhdGVSZWNvcmRlckJhc2UuY3JlYXRlRnJvbUZpbGVFbnRyeShlbnRyeSk7CiAgICAgIH0KICAgICAgY29tbWl0VXBkYXRlKHJlY29yZCkgewogICAgICAgIGlmIChyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSkgewogICAgICAgICAgY29uc3QgcGF0aCA9IHJlY29yZC5wYXRoOwogICAgICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmdldChwYXRoKTsKICAgICAgICAgIGlmICghZW50cnkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkNvbnRlbnRIYXNNdXRhdGVkRXhjZXB0aW9uKHBhdGgpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgbmV3Q29udGVudCA9IHJlY29yZC5hcHBseShlbnRyeS5jb250ZW50KTsKICAgICAgICAgICAgaWYgKCFuZXdDb250ZW50LmVxdWFscyhlbnRyeS5jb250ZW50KSkgewogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKHBhdGgsIG5ld0NvbnRlbnQpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5JbnZhbGlkVXBkYXRlUmVjb3JkRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICB9CiAgICAgIC8vIFN0cnVjdHVyYWwgbWV0aG9kcy4KICAgICAgY3JlYXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICBjb25zdCBwID0gdGhpcy5fbm9ybWFsaXplUGF0aChwYXRoKTsKICAgICAgICBpZiAodGhpcy5fcmVjb3JkU3luYy5leGlzdHMocCkpIHsKICAgICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHApOwogICAgICAgIH0KICAgICAgICBjb25zdCBjID0gdHlwZW9mIGNvbnRlbnQgPT0gInN0cmluZyIgPyBCdWZmZXIuZnJvbShjb250ZW50KSA6IGNvbnRlbnQ7CiAgICAgICAgdGhpcy5fcmVjb3JkLmNyZWF0ZShwLCBjKS5zdWJzY3JpYmUoKTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMuZGVsZXRlKHRoaXMuX25vcm1hbGl6ZVBhdGgocGF0aCkpOwogICAgICB9CiAgICAgIHJlbmFtZShmcm9tLCB0bykgewogICAgICAgIHRoaXMuX3JlY29yZFN5bmMucmVuYW1lKHRoaXMuX25vcm1hbGl6ZVBhdGgoZnJvbSksIHRoaXMuX25vcm1hbGl6ZVBhdGgodG8pKTsKICAgICAgfQogICAgICBhcHBseShhY3Rpb24sIHN0cmF0ZWd5KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIkFwcGx5IG5vdCBpbXBsZW1lbnRlZCBvbiBob3N0IHRyZWVzLiIpOwogICAgICB9CiAgICAgICpnZW5lcmF0ZUFjdGlvbnMoKSB7CiAgICAgICAgZm9yIChjb25zdCByZWNvcmQgb2YgdGhpcy5fcmVjb3JkLnJlY29yZHMoKSkgewogICAgICAgICAgc3dpdGNoIChyZWNvcmQua2luZCkgewogICAgICAgICAgICBjYXNlICJjcmVhdGUiOgogICAgICAgICAgICAgIHlpZWxkIHsKICAgICAgICAgICAgICAgIGlkOiB0aGlzLl9pZCwKICAgICAgICAgICAgICAgIHBhcmVudDogMCwKICAgICAgICAgICAgICAgIGtpbmQ6ICJjIiwKICAgICAgICAgICAgICAgIHBhdGg6IHJlY29yZC5wYXRoLAogICAgICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20ocmVjb3JkLmNvbnRlbnQpCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAib3ZlcndyaXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAibyIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aCwKICAgICAgICAgICAgICAgIGNvbnRlbnQ6IEJ1ZmZlci5mcm9tKHJlY29yZC5jb250ZW50KQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInJlbmFtZSI6CiAgICAgICAgICAgICAgeWllbGQgewogICAgICAgICAgICAgICAgaWQ6IHRoaXMuX2lkLAogICAgICAgICAgICAgICAgcGFyZW50OiAwLAogICAgICAgICAgICAgICAga2luZDogInIiLAogICAgICAgICAgICAgICAgcGF0aDogcmVjb3JkLmZyb20sCiAgICAgICAgICAgICAgICB0bzogcmVjb3JkLnRvCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZGVsZXRlIjoKICAgICAgICAgICAgICB5aWVsZCB7CiAgICAgICAgICAgICAgICBpZDogdGhpcy5faWQsCiAgICAgICAgICAgICAgICBwYXJlbnQ6IDAsCiAgICAgICAgICAgICAgICBraW5kOiAiZCIsCiAgICAgICAgICAgICAgICBwYXRoOiByZWNvcmQucGF0aAogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGdldCBhY3Rpb25zKCkgewogICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZ2VuZXJhdGVBY3Rpb25zKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSG9zdFRyZWUgPSBIb3N0VHJlZTsKICAgIHZhciBIb3N0Q3JlYXRlVHJlZSA9IGNsYXNzIGV4dGVuZHMgSG9zdFRyZWUgewogICAgICBjb25zdHJ1Y3Rvcihob3N0KSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICBjb25zdCB0ZW1wSG9zdCA9IG5ldyBIb3N0VHJlZShob3N0KTsKICAgICAgICB0ZW1wSG9zdC52aXNpdCgocGF0aCkgPT4gewogICAgICAgICAgY29uc3QgY29udGVudCA9IHRlbXBIb3N0LnJlYWQocGF0aCk7CiAgICAgICAgICBpZiAoY29udGVudCkgewogICAgICAgICAgICB0aGlzLmNyZWF0ZShwYXRoLCBjb250ZW50KTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RDcmVhdGVUcmVlID0gSG9zdENyZWF0ZVRyZWU7CiAgICB2YXIgRmlsdGVySG9zdFRyZWUgPSBjbGFzcyBleHRlbmRzIEhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IodHJlZSwgZmlsdGVyID0gKCkgPT4gdHJ1ZSkgewogICAgICAgIGNvbnN0IG5ld0JhY2tlbmQgPSBuZXcgY29yZV8xLnZpcnR1YWxGcy5TaW1wbGVNZW1vcnlIb3N0KCk7CiAgICAgICAgY29uc3Qgb3JpZ2luYWxCYWNrZW5kID0gdHJlZS5fYmFja2VuZDsKICAgICAgICBjb25zdCBwZW5kaW5nUGF0aHMgPSBbIi8iXTsKICAgICAgICB3aGlsZSAocGVuZGluZ1BhdGhzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGVuZGluZ1BhdGhzLnBvcCgpOwogICAgICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSB2b2lkIDApIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgaXNEaXJlY3RvcnkgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0RpcmVjdG9yeShjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGlzRGlyZWN0b3J5ID0gdmFsKTsKICAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQubGlzdChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IHBlbmRpbmdQYXRocy5wdXNoKC4uLnZhbC5tYXAoKHApID0+ICgwLCBjb3JlXzEuam9pbikoY3VycmVudFBhdGgsIHApKSkpOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgIH0KICAgICAgICAgIGxldCBpc0ZpbGUgPSBmYWxzZTsKICAgICAgICAgIG9yaWdpbmFsQmFja2VuZC5pc0ZpbGUoY3VycmVudFBhdGgpLnN1YnNjcmliZSgodmFsKSA9PiBpc0ZpbGUgPSB2YWwpOwogICAgICAgICAgaWYgKCFpc0ZpbGUgfHwgIWZpbHRlcihjdXJyZW50UGF0aCkpIHsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICB9CiAgICAgICAgICBsZXQgY29udGVudCA9IG51bGw7CiAgICAgICAgICBvcmlnaW5hbEJhY2tlbmQucmVhZChjdXJyZW50UGF0aCkuc3Vic2NyaWJlKCh2YWwpID0+IGNvbnRlbnQgPSB2YWwpOwogICAgICAgICAgaWYgKGNvbnRlbnQgIT09IG51bGwpIHsKICAgICAgICAgICAgbmV3QmFja2VuZC53cml0ZShjdXJyZW50UGF0aCwgY29udGVudCkuc3Vic2NyaWJlKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN1cGVyKG5ld0JhY2tlbmQpOwogICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRyZWUuYWN0aW9ucykgewogICAgICAgICAgaWYgKCFmaWx0ZXIoYWN0aW9uLnBhdGgpKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgICB0aGlzLmNyZWF0ZShhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgICB0aGlzLmRlbGV0ZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgIm8iOgogICAgICAgICAgICAgIHRoaXMub3ZlcndyaXRlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgInIiOgogICAgICAgICAgICAgIHRoaXMucmVuYW1lKGFjdGlvbi5wYXRoLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkZpbHRlckhvc3RUcmVlID0gRmlsdGVySG9zdFRyZWU7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL3N0YXRpYy5qcwp2YXIgcmVxdWlyZV9zdGF0aWMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc3RhdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5lbXB0eSA9IGVtcHR5OwogICAgZXhwb3J0czIuYnJhbmNoID0gYnJhbmNoOwogICAgZXhwb3J0czIubWVyZ2UgPSBtZXJnZTI7CiAgICBleHBvcnRzMi5wYXJ0aXRpb24gPSBwYXJ0aXRpb247CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gbmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKCk7CiAgICB9CiAgICBmdW5jdGlvbiBicmFuY2godHJlZSkgewogICAgICByZXR1cm4gdHJlZS5icmFuY2goKTsKICAgIH0KICAgIGZ1bmN0aW9uIG1lcmdlMih0cmVlLCBvdGhlciwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgdHJlZS5tZXJnZShvdGhlciwgc3RyYXRlZ3kpOwogICAgICByZXR1cm4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIHBhcnRpdGlvbih0cmVlLCBwcmVkaWNhdGUpIHsKICAgICAgaWYgKHRyZWUgaW5zdGFuY2VvZiBob3N0X3RyZWVfMS5Ib3N0VHJlZSkgewogICAgICAgIHJldHVybiBbCiAgICAgICAgICBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKSwKICAgICAgICAgIG5ldyBob3N0X3RyZWVfMS5GaWx0ZXJIb3N0VHJlZSh0cmVlLCAocGF0aCwgZW50cnkpID0+ICFwcmVkaWNhdGUocGF0aCwgZW50cnkpKQogICAgICAgIF07CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICB9CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL251bGwuanMKdmFyIHJlcXVpcmVfbnVsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9udWxsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5OdWxsVHJlZSA9IGV4cG9ydHMyLk51bGxUcmVlRGlyRW50cnkgPSBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgdmFyIHJlY29yZGVyXzEgPSByZXF1aXJlX3JlY29yZGVyKCk7CiAgICB2YXIgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihwYXRoKSB7CiAgICAgICAgc3VwZXIoYENhbm5vdCBjcmVhdGUgZmlsZSAiJHtwYXRofSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DYW5ub3RDcmVhdGVGaWxlRXhjZXB0aW9uID0gQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbjsKICAgIHZhciBOdWxsVHJlZURpckVudHJ5ID0gY2xhc3MgX051bGxUcmVlRGlyRW50cnkgewogICAgICBwYXRoOwogICAgICBnZXQgcGFyZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLnBhdGggPT0gIi8iID8gbnVsbCA6IG5ldyBfTnVsbFRyZWVEaXJFbnRyeSgoMCwgY29yZV8xLmRpcm5hbWUpKHRoaXMucGF0aCkpOwogICAgICB9CiAgICAgIGNvbnN0cnVjdG9yKHBhdGgpIHsKICAgICAgICB0aGlzLnBhdGggPSBwYXRoOwogICAgICB9CiAgICAgIHN1YmRpcnMgPSBbXTsKICAgICAgc3ViZmlsZXMgPSBbXTsKICAgICAgZGlyKG5hbWUpIHsKICAgICAgICByZXR1cm4gbmV3IF9OdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEuam9pbikodGhpcy5wYXRoLCBuYW1lKSk7CiAgICAgIH0KICAgICAgZmlsZShfbmFtZSkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIHZpc2l0KCkgewogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWVEaXJFbnRyeSA9IE51bGxUcmVlRGlyRW50cnk7CiAgICB2YXIgTnVsbFRyZWUgPSBjbGFzcyBfTnVsbFRyZWUgewogICAgICBbaW50ZXJmYWNlXzEuVHJlZVN5bWJvbF0oKSB7CiAgICAgICAgcmV0dXJuIHRoaXM7CiAgICAgIH0KICAgICAgYnJhbmNoKCkgewogICAgICAgIHJldHVybiBuZXcgX051bGxUcmVlKCk7CiAgICAgIH0KICAgICAgbWVyZ2UoX290aGVyLCBfc3RyYXRlZ3kpIHsKICAgICAgfQogICAgICByb290ID0gbmV3IE51bGxUcmVlRGlyRW50cnkoKDAsIGNvcmVfMS5ub3JtYWxpemUpKCIvIikpOwogICAgICAvLyBTaW1wbGUgcmVhZG9ubHkgZmlsZSBzeXN0ZW0gb3BlcmF0aW9ucy4KICAgICAgZXhpc3RzKF9wYXRoKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9CiAgICAgIHJlYWQoX3BhdGgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgfQogICAgICByZWFkVGV4dChwYXRoKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgcmVhZEpzb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGdldChfcGF0aCkgewogICAgICAgIHJldHVybiBudWxsOwogICAgICB9CiAgICAgIGdldERpcihwYXRoKSB7CiAgICAgICAgcmV0dXJuIG5ldyBOdWxsVHJlZURpckVudHJ5KCgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyBwYXRoKSk7CiAgICAgIH0KICAgICAgdmlzaXQoKSB7CiAgICAgIH0KICAgICAgLy8gQ2hhbmdlIGNvbnRlbnQgb2YgaG9zdCBmaWxlcy4KICAgICAgYmVnaW5VcGRhdGUocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIGNvbW1pdFVwZGF0ZShyZWNvcmQpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihyZWNvcmQgaW5zdGFuY2VvZiByZWNvcmRlcl8xLlVwZGF0ZVJlY29yZGVyQmFzZSA/IHJlY29yZC5wYXRoIDogIjx1bmtub3duPiIpOwogICAgICB9CiAgICAgIC8vIENoYW5nZSBzdHJ1Y3R1cmUgb2YgdGhlIGhvc3QuCiAgICAgIGNvcHkocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgZGVsZXRlKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgX2NvbnRlbnQpIHsKICAgICAgICB0aHJvdyBuZXcgQ2Fubm90Q3JlYXRlRmlsZUV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgX3RvKSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgb3ZlcndyaXRlKHBhdGgsIF9jb250ZW50KSB7CiAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLkZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24ocGF0aCk7CiAgICAgIH0KICAgICAgYXBwbHkoX2FjdGlvbiwgX3N0cmF0ZWd5KSB7CiAgICAgIH0KICAgICAgZ2V0IGFjdGlvbnMoKSB7CiAgICAgICAgcmV0dXJuIFtdOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTnVsbFRyZWUgPSBOdWxsVHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2NhbGwuanMKdmFyIHJlcXVpcmVfY2FsbCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuSW52YWxpZFNvdXJjZVJlc3VsdEV4Y2VwdGlvbiA9IGV4cG9ydHMyLkludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uID0gdm9pZCAwOwogICAgZXhwb3J0czIuY2FsbFNvdXJjZSA9IGNhbGxTb3VyY2U7CiAgICBleHBvcnRzMi5jYWxsUnVsZSA9IGNhbGxSdWxlOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBpbnRlcmZhY2VfMSA9IHJlcXVpcmVfaW50ZXJmYWNlMygpOwogICAgZnVuY3Rpb24gX2dldFR5cGVPZlJlc3VsdCh2YWx1ZSkgewogICAgICBpZiAodmFsdWUgPT09IHZvaWQgMCkgewogICAgICAgIHJldHVybiAidW5kZWZpbmVkIjsKICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkgewogICAgICAgIHJldHVybiAibnVsbCI7CiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09ICJmdW5jdGlvbiIpIHsKICAgICAgICByZXR1cm4gYEZ1bmN0aW9uKClgOwogICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPSAib2JqZWN0IikgewogICAgICAgIHJldHVybiBgJHt0eXBlb2YgdmFsdWV9KCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSlgOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChPYmplY3QuZ2V0UHJvdG90eXBlT2YodmFsdWUpID09IE9iamVjdCkgewogICAgICAgICAgcmV0dXJuIGBPYmplY3QoJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9KWA7CiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5jb25zdHJ1Y3RvcikgewogICAgICAgICAgcmV0dXJuIGBJbnN0YW5jZSBvZiBjbGFzcyAke3ZhbHVlLmNvbnN0cnVjdG9yLm5hbWV9YDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgcmV0dXJuICJVbmtub3duIE9iamVjdCI7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICB2YXIgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBydWxlIHJlc3VsdDogJHtfZ2V0VHlwZU9mUmVzdWx0KHZhbHVlKX0uYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5JbnZhbGlkUnVsZVJlc3VsdEV4Y2VwdGlvbiA9IEludmFsaWRSdWxlUmVzdWx0RXhjZXB0aW9uOwogICAgdmFyIEludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodmFsdWUpIHsKICAgICAgICBzdXBlcihgSW52YWxpZCBzb3VyY2UgcmVzdWx0OiAke19nZXRUeXBlT2ZSZXN1bHQodmFsdWUpfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkludmFsaWRTb3VyY2VSZXN1bHRFeGNlcHRpb24gPSBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uOwogICAgZnVuY3Rpb24gY2FsbFNvdXJjZShzb3VyY2UsIGNvbnRleHQpIHsKICAgICAgcmV0dXJuICgwLCByeGpzXzEuZGVmZXIpKGFzeW5jICgpID0+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc291cmNlKGNvbnRleHQpOwogICAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgICAgcmVzdWx0ID0gYXdhaXQgKDAsIHJ4anNfMS5sYXN0VmFsdWVGcm9tKShyZXN1bHQucGlwZSgoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKSk7CiAgICAgICAgfQogICAgICAgIGlmIChyZXN1bHQgJiYgaW50ZXJmYWNlXzEuVHJlZVN5bWJvbCBpbiByZXN1bHQpIHsKICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIHRocm93IG5ldyBJbnZhbGlkU291cmNlUmVzdWx0RXhjZXB0aW9uKHJlc3VsdCk7CiAgICAgIH0pOwogICAgfQogICAgZnVuY3Rpb24gY2FsbFJ1bGUocnVsZSwgaW5wdXQsIGNvbnRleHQpIHsKICAgICAgaWYgKCgwLCByeGpzXzEuaXNPYnNlcnZhYmxlKShpbnB1dCkpIHsKICAgICAgICByZXR1cm4gaW5wdXQucGlwZSgoMCwgcnhqc18xLm1lcmdlTWFwKSgoaW5wdXRUcmVlKSA9PiBjYWxsUnVsZUFzeW5jKHJ1bGUsIGlucHV0VHJlZSwgY29udGV4dCkpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5kZWZlcikoKCkgPT4gY2FsbFJ1bGVBc3luYyhydWxlLCBpbnB1dCwgY29udGV4dCkpOwogICAgICB9CiAgICB9CiAgICBhc3luYyBmdW5jdGlvbiBjYWxsUnVsZUFzeW5jKHJ1bGUsIHRyZWUsIGNvbnRleHQpIHsKICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IHJ1bGUodHJlZSwgY29udGV4dCk7CiAgICAgIHdoaWxlICh0eXBlb2YgcmVzdWx0ID09PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVzdWx0KHRyZWUsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAidW5kZWZpbmVkIikgewogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9CiAgICAgIGlmICgoMCwgcnhqc18xLmlzT2JzZXJ2YWJsZSkocmVzdWx0KSkgewogICAgICAgIHJlc3VsdCA9IGF3YWl0ICgwLCByeGpzXzEubGFzdFZhbHVlRnJvbSkocmVzdWx0LnBpcGUoKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodHJlZSkpKTsKICAgICAgfQogICAgICBpZiAocmVzdWx0ICYmIGludGVyZmFjZV8xLlRyZWVTeW1ib2wgaW4gcmVzdWx0KSB7CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgfQogICAgICB0aHJvdyBuZXcgSW52YWxpZFJ1bGVSZXN1bHRFeGNlcHRpb24ocmVzdWx0KTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9zY2hlbWF0aWMuanMKdmFyIHJlcXVpcmVfc2NoZW1hdGljID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9lbmdpbmUvc2NoZW1hdGljLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TY2hlbWF0aWNJbXBsID0gZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBjYWxsXzEgPSByZXF1aXJlX2NhbGwoKTsKICAgIHZhciBzY29wZWRfMSA9IHJlcXVpcmVfc2NvcGVkMigpOwogICAgdmFyIEludmFsaWRTY2hlbWF0aWNzTmFtZUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpY3MgaGFzIGludmFsaWQgbmFtZTogIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uID0gSW52YWxpZFNjaGVtYXRpY3NOYW1lRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0ltcGwgPSBjbGFzcyB7CiAgICAgIF9kZXNjcmlwdGlvbjsKICAgICAgX2ZhY3Rvcnk7CiAgICAgIF9jb2xsZWN0aW9uOwogICAgICBfZW5naW5lOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9mYWN0b3J5LCBfY29sbGVjdGlvbiwgX2VuZ2luZSkgewogICAgICAgIHRoaXMuX2Rlc2NyaXB0aW9uID0gX2Rlc2NyaXB0aW9uOwogICAgICAgIHRoaXMuX2ZhY3RvcnkgPSBfZmFjdG9yeTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uID0gX2NvbGxlY3Rpb247CiAgICAgICAgdGhpcy5fZW5naW5lID0gX2VuZ2luZTsKICAgICAgICBpZiAoIV9kZXNjcmlwdGlvbi5uYW1lLm1hdGNoKC9eWy1AL18uYS16QS1aMC05XSskLykpIHsKICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkU2NoZW1hdGljc05hbWVFeGNlcHRpb24oX2Rlc2NyaXB0aW9uLm5hbWUpOwogICAgICAgIH0KICAgICAgfQogICAgICBnZXQgZGVzY3JpcHRpb24oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2Rlc2NyaXB0aW9uOwogICAgICB9CiAgICAgIGdldCBjb2xsZWN0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uOwogICAgICB9CiAgICAgIGNhbGwob3B0aW9ucywgaG9zdCwgcGFyZW50Q29udGV4dCwgZXhlY3V0aW9uT3B0aW9ucykgewogICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29udGV4dCh0aGlzLCBwYXJlbnRDb250ZXh0LCBleGVjdXRpb25PcHRpb25zKTsKICAgICAgICByZXR1cm4gaG9zdC5waXBlKCgwLCByeGpzXzEuZmlyc3QpKCksICgwLCByeGpzXzEuY29uY2F0TWFwKSgodHJlZSkgPT4gdGhpcy5fZW5naW5lLnRyYW5zZm9ybU9wdGlvbnModGhpcywgb3B0aW9ucywgY29udGV4dCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKG8pID0+IFt0cmVlLCBvXSkpKSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChbdHJlZSwgdHJhbnNmb3JtZWRPcHRpb25zXSkgPT4gewogICAgICAgICAgbGV0IGlucHV0OwogICAgICAgICAgbGV0IHNjb3BlZCA9IGZhbHNlOwogICAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5zY29wZSkgewogICAgICAgICAgICBzY29wZWQgPSB0cnVlOwogICAgICAgICAgICBpbnB1dCA9IG5ldyBzY29wZWRfMS5TY29wZWRUcmVlKHRyZWUsIGV4ZWN1dGlvbk9wdGlvbnMuc2NvcGUpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaW5wdXQgPSB0cmVlOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHRoaXMuX2ZhY3RvcnkodHJhbnNmb3JtZWRPcHRpb25zKSwgaW5wdXQsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChvdXRwdXQpID0+IHsKICAgICAgICAgICAgaWYgKG91dHB1dCA9PT0gaW5wdXQpIHsKICAgICAgICAgICAgICByZXR1cm4gdHJlZTsKICAgICAgICAgICAgfSBlbHNlIGlmIChzY29wZWQpIHsKICAgICAgICAgICAgICB0cmVlLm1lcmdlKG91dHB1dCk7CiAgICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgICAgfSkpOwogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0ltcGwgPSBTY2hlbWF0aWNJbXBsOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qcwp2YXIgcmVxdWlyZV9lbmdpbmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9lbmdpbmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBleHBvcnRzMi5Db2xsZWN0aW9uSW1wbCA9IGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gZXhwb3J0czIuQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgbnVsbF8xID0gcmVxdWlyZV9udWxsKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgdmFyIHNjaGVtYXRpY18xID0gcmVxdWlyZV9zY2hlbWF0aWMoKTsKICAgIHZhciBVbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IodXJsMykgewogICAgICAgIHN1cGVyKGBVbmtub3duIFByb3RvY29sIG9uIHVybCAiJHt1cmwzfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duVXJsU291cmNlUHJvdG9jb2wgPSBVbmtub3duVXJsU291cmNlUHJvdG9jb2w7CiAgICB2YXIgVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBVbmtub3duIGNvbGxlY3Rpb24gIiR7bmFtZX0iLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuVW5rbm93bkNvbGxlY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQ29sbGVjdGlvbkV4Y2VwdGlvbjsKICAgIHZhciBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBDaXJjdWxhciBjb2xsZWN0aW9uIHJlZmVyZW5jZSAiJHtuYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5DaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb24gPSBDaXJjdWxhckNvbGxlY3Rpb25FeGNlcHRpb247CiAgICB2YXIgVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lLCBjb2xsZWN0aW9uKSB7CiAgICAgICAgc3VwZXIoYFNjaGVtYXRpYyAiJHtuYW1lfSIgbm90IGZvdW5kIGluIGNvbGxlY3Rpb24gIiR7Y29sbGVjdGlvbi5uYW1lfSIuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5Vbmtub3duU2NoZW1hdGljRXhjZXB0aW9uID0gVW5rbm93blNjaGVtYXRpY0V4Y2VwdGlvbjsKICAgIHZhciBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKG5hbWUsIGNvbGxlY3Rpb24pIHsKICAgICAgICBzdXBlcihgU2NoZW1hdGljICIke25hbWV9IiBub3QgZm91bmQgaW4gY29sbGVjdGlvbiAiJHtjb2xsZWN0aW9uLm5hbWV9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlByaXZhdGVTY2hlbWF0aWNFeGNlcHRpb24gPSBQcml2YXRlU2NoZW1hdGljRXhjZXB0aW9uOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKGBBIHNjaGVtYXRpYyB3YXMgY2FsbGVkIGZyb20gYSBkaWZmZXJlbnQgZW5naW5lIGFzIGl0cyBwYXJlbnQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5TY2hlbWF0aWNFbmdpbmVDb25mbGljdGluZ0V4Y2VwdGlvbiA9IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uOwogICAgdmFyIFVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSwgc2NoZW1hdGljKSB7CiAgICAgICAgY29uc3QgYWRkZW5kdW0gPSBzY2hlbWF0aWMgPyBgIGluIHNjaGVtYXRpYyAiJHtzY2hlbWF0aWMubmFtZX0iYCA6ICIiOwogICAgICAgIHN1cGVyKGBVbnJlZ2lzdGVyZWQgdGFzayAiJHtuYW1lfSIke2FkZGVuZHVtfS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVucmVnaXN0ZXJlZFRhc2tFeGNlcHRpb24gPSBVbnJlZ2lzdGVyZWRUYXNrRXhjZXB0aW9uOwogICAgdmFyIFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihpZCkgewogICAgICAgIHN1cGVyKGBVbmtub3duIHRhc2sgZGVwZW5kZW5jeSBbSUQ6ICR7aWQuaWR9XS5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbiA9IFVua25vd25UYXNrRGVwZW5kZW5jeUV4Y2VwdGlvbjsKICAgIHZhciBDb2xsZWN0aW9uSW1wbCA9IGNsYXNzIHsKICAgICAgX2Rlc2NyaXB0aW9uOwogICAgICBfZW5naW5lOwogICAgICBiYXNlRGVzY3JpcHRpb25zOwogICAgICBjb25zdHJ1Y3RvcihfZGVzY3JpcHRpb24sIF9lbmdpbmUsIGJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICB0aGlzLl9kZXNjcmlwdGlvbiA9IF9kZXNjcmlwdGlvbjsKICAgICAgICB0aGlzLl9lbmdpbmUgPSBfZW5naW5lOwogICAgICAgIHRoaXMuYmFzZURlc2NyaXB0aW9ucyA9IGJhc2VEZXNjcmlwdGlvbnM7CiAgICAgIH0KICAgICAgZ2V0IGRlc2NyaXB0aW9uKCkgewogICAgICAgIHJldHVybiB0aGlzLl9kZXNjcmlwdGlvbjsKICAgICAgfQogICAgICBnZXQgbmFtZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5kZXNjcmlwdGlvbi5uYW1lIHx8ICI8dW5rbm93bj4iOwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuY3JlYXRlU2NoZW1hdGljKG5hbWUsIHRoaXMsIGFsbG93UHJpdmF0ZSk7CiAgICAgIH0KICAgICAgbGlzdFNjaGVtYXRpY05hbWVzKGluY2x1ZGVIaWRkZW4pIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lLmxpc3RTY2hlbWF0aWNOYW1lcyh0aGlzLCBpbmNsdWRlSGlkZGVuKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkNvbGxlY3Rpb25JbXBsID0gQ29sbGVjdGlvbkltcGw7CiAgICB2YXIgVGFza1NjaGVkdWxlciA9IGNsYXNzIF9UYXNrU2NoZWR1bGVyIHsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9xdWV1ZSA9IG5ldyBjb3JlXzEuUHJpb3JpdHlRdWV1ZSgoeCwgeSkgPT4geC5wcmlvcml0eSAtIHkucHJpb3JpdHkpOwogICAgICBfdGFza0lkcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIHN0YXRpYyBfdGFza0lkQ291bnRlciA9IDE7CiAgICAgIGNvbnN0cnVjdG9yKF9jb250ZXh0KSB7CiAgICAgICAgdGhpcy5fY29udGV4dCA9IF9jb250ZXh0OwogICAgICB9CiAgICAgIF9jYWxjdWxhdGVQcmlvcml0eShkZXBlbmRlbmNpZXMpIHsKICAgICAgICBpZiAoZGVwZW5kZW5jaWVzLnNpemUgPT09IDApIHsKICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICBjb25zdCBwcmlvID0gWy4uLmRlcGVuZGVuY2llc10ucmVkdWNlKChwcmlvMiwgdGFzaykgPT4gcHJpbzIgKyB0YXNrLnByaW9yaXR5LCAxKTsKICAgICAgICByZXR1cm4gcHJpbzsKICAgICAgfQogICAgICBfbWFwRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcykgewogICAgICAgIGlmICghZGVwZW5kZW5jaWVzKSB7CiAgICAgICAgICByZXR1cm4gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza3MgPSBkZXBlbmRlbmNpZXMubWFwKChkZXApID0+IHsKICAgICAgICAgIGNvbnN0IHRhc2sgPSB0aGlzLl90YXNrSWRzLmdldChkZXApOwogICAgICAgICAgaWYgKCF0YXNrKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVGFza0RlcGVuZGVuY3lFeGNlcHRpb24oZGVwKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBuZXcgU2V0KHRhc2tzKTsKICAgICAgfQogICAgICBzY2hlZHVsZSh0YXNrQ29uZmlndXJhdGlvbikgewogICAgICAgIGNvbnN0IGRlcGVuZGVuY2llcyA9IHRoaXMuX21hcERlcGVuZGVuY2llcyh0YXNrQ29uZmlndXJhdGlvbi5kZXBlbmRlbmNpZXMpOwogICAgICAgIGNvbnN0IHByaW9yaXR5ID0gdGhpcy5fY2FsY3VsYXRlUHJpb3JpdHkoZGVwZW5kZW5jaWVzKTsKICAgICAgICBjb25zdCB0YXNrID0gewogICAgICAgICAgaWQ6IF9UYXNrU2NoZWR1bGVyLl90YXNrSWRDb3VudGVyKyssCiAgICAgICAgICBwcmlvcml0eSwKICAgICAgICAgIGNvbmZpZ3VyYXRpb246IHRhc2tDb25maWd1cmF0aW9uLAogICAgICAgICAgY29udGV4dDogdGhpcy5fY29udGV4dAogICAgICAgIH07CiAgICAgICAgdGhpcy5fcXVldWUucHVzaCh0YXNrKTsKICAgICAgICBjb25zdCBpZCA9IHsgaWQ6IHRhc2suaWQgfTsKICAgICAgICB0aGlzLl90YXNrSWRzLnNldChpZCwgdGFzayk7CiAgICAgICAgcmV0dXJuIGlkOwogICAgICB9CiAgICAgIGZpbmFsaXplKCkgewogICAgICAgIGNvbnN0IHRhc2tzID0gdGhpcy5fcXVldWUudG9BcnJheSgpOwogICAgICAgIHRoaXMuX3F1ZXVlLmNsZWFyKCk7CiAgICAgICAgdGhpcy5fdGFza0lkcy5jbGVhcigpOwogICAgICAgIHJldHVybiB0YXNrczsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlRhc2tTY2hlZHVsZXIgPSBUYXNrU2NoZWR1bGVyOwogICAgdmFyIFNjaGVtYXRpY0VuZ2luZSA9IGNsYXNzIHsKICAgICAgX2hvc3Q7CiAgICAgIF93b3JrZmxvdzsKICAgICAgX2NvbGxlY3Rpb25DYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9zY2hlbWF0aWNDYWNoZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha01hcCgpOwogICAgICBfdGFza1NjaGVkdWxlcnMgPSBuZXcgQXJyYXkoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF93b3JrZmxvdykgewogICAgICAgIHRoaXMuX2hvc3QgPSBfaG9zdDsKICAgICAgICB0aGlzLl93b3JrZmxvdyA9IF93b3JrZmxvdzsKICAgICAgfQogICAgICBnZXQgd29ya2Zsb3coKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtmbG93IHx8IG51bGw7CiAgICAgIH0KICAgICAgZ2V0IGRlZmF1bHRNZXJnZVN0cmF0ZWd5KCkgewogICAgICAgIHJldHVybiB0aGlzLl9ob3N0LmRlZmF1bHRNZXJnZVN0cmF0ZWd5IHx8IGludGVyZmFjZV8xLk1lcmdlU3RyYXRlZ3kuRGVmYXVsdDsKICAgICAgfQogICAgICBjcmVhdGVDb2xsZWN0aW9uKG5hbWUsIHJlcXVlc3RlcikgewogICAgICAgIGxldCBjb2xsZWN0aW9uID0gdGhpcy5fY29sbGVjdGlvbkNhY2hlLmdldChuYW1lKTsKICAgICAgICBpZiAoY29sbGVjdGlvbikgewogICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb247CiAgICAgICAgfQogICAgICAgIGNvbnN0IFtkZXNjcmlwdGlvbiwgYmFzZXNdID0gdGhpcy5fY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcj8uZGVzY3JpcHRpb24pOwogICAgICAgIGNvbGxlY3Rpb24gPSBuZXcgQ29sbGVjdGlvbkltcGwoZGVzY3JpcHRpb24sIHRoaXMsIGJhc2VzKTsKICAgICAgICB0aGlzLl9jb2xsZWN0aW9uQ2FjaGUuc2V0KG5hbWUsIGNvbGxlY3Rpb24pOwogICAgICAgIHRoaXMuX3NjaGVtYXRpY0NhY2hlLnNldChjb2xsZWN0aW9uLCAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpKTsKICAgICAgICByZXR1cm4gY29sbGVjdGlvbjsKICAgICAgfQogICAgICBfY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3RlciwgcGFyZW50TmFtZXMpIHsKICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlQ29sbGVjdGlvbkRlc2NyaXB0aW9uKG5hbWUsIHJlcXVlc3Rlcik7CiAgICAgICAgaWYgKCFkZXNjcmlwdGlvbikgewogICAgICAgICAgdGhyb3cgbmV3IFVua25vd25Db2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBpZiAocGFyZW50TmFtZXMgJiYgcGFyZW50TmFtZXMuaGFzKGRlc2NyaXB0aW9uLm5hbWUpKSB7CiAgICAgICAgICB0aHJvdyBuZXcgQ2lyY3VsYXJDb2xsZWN0aW9uRXhjZXB0aW9uKG5hbWUpOwogICAgICAgIH0KICAgICAgICBjb25zdCBiYXNlcyA9IG5ldyBBcnJheSgpOwogICAgICAgIGlmIChkZXNjcmlwdGlvbi5leHRlbmRzKSB7CiAgICAgICAgICBwYXJlbnROYW1lcyA9IChwYXJlbnROYW1lcyB8fCAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpKS5hZGQoZGVzY3JpcHRpb24ubmFtZSk7CiAgICAgICAgICBmb3IgKGNvbnN0IGJhc2VOYW1lIG9mIGRlc2NyaXB0aW9uLmV4dGVuZHMpIHsKICAgICAgICAgICAgY29uc3QgW2Jhc2UsIGJhc2VCYXNlc10gPSB0aGlzLl9jcmVhdGVDb2xsZWN0aW9uRGVzY3JpcHRpb24oYmFzZU5hbWUsIGRlc2NyaXB0aW9uLCBuZXcgU2V0KHBhcmVudE5hbWVzKSk7CiAgICAgICAgICAgIGJhc2VzLnVuc2hpZnQoYmFzZSwgLi4uYmFzZUJhc2VzKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFtkZXNjcmlwdGlvbiwgYmFzZXNdOwogICAgICB9CiAgICAgIGNyZWF0ZUNvbnRleHQoc2NoZW1hdGljLCBwYXJlbnQsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgICBpZiAocGFyZW50ICYmIHBhcmVudC5lbmdpbmUgJiYgcGFyZW50LmVuZ2luZSAhPT0gdGhpcykgewogICAgICAgICAgdGhyb3cgbmV3IFNjaGVtYXRpY0VuZ2luZUNvbmZsaWN0aW5nRXhjZXB0aW9uKCk7CiAgICAgICAgfQogICAgICAgIGxldCBpbnRlcmFjdGl2ZSA9IHRydWU7CiAgICAgICAgaWYgKGV4ZWN1dGlvbk9wdGlvbnMgJiYgZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZSAhPSB2b2lkIDApIHsKICAgICAgICAgIGludGVyYWN0aXZlID0gZXhlY3V0aW9uT3B0aW9ucy5pbnRlcmFjdGl2ZTsKICAgICAgICB9IGVsc2UgaWYgKHBhcmVudCAmJiBwYXJlbnQuaW50ZXJhY3RpdmUgIT0gdm9pZCAwKSB7CiAgICAgICAgICBpbnRlcmFjdGl2ZSA9IHBhcmVudC5pbnRlcmFjdGl2ZTsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbnRleHQgPSB7CiAgICAgICAgICBkZWJ1ZzogcGFyZW50ICYmIHBhcmVudC5kZWJ1ZyB8fCBmYWxzZSwKICAgICAgICAgIGVuZ2luZTogdGhpcywKICAgICAgICAgIGxvZ2dlcjogcGFyZW50ICYmIHBhcmVudC5sb2dnZXIgJiYgcGFyZW50LmxvZ2dlci5jcmVhdGVDaGlsZChzY2hlbWF0aWMuZGVzY3JpcHRpb24ubmFtZSkgfHwgbmV3IGNvcmVfMS5sb2dnaW5nLk51bGxMb2dnZXIoKSwKICAgICAgICAgIHNjaGVtYXRpYywKICAgICAgICAgIHN0cmF0ZWd5OiBwYXJlbnQgJiYgcGFyZW50LnN0cmF0ZWd5ICE9PSB2b2lkIDAgPyBwYXJlbnQuc3RyYXRlZ3kgOiB0aGlzLmRlZmF1bHRNZXJnZVN0cmF0ZWd5LAogICAgICAgICAgaW50ZXJhY3RpdmUsCiAgICAgICAgICBhZGRUYXNrCiAgICAgICAgfTsKICAgICAgICBjb25zdCBtYXliZU5ld0NvbnRleHQgPSB0aGlzLl9ob3N0LnRyYW5zZm9ybUNvbnRleHQoY29udGV4dCk7CiAgICAgICAgaWYgKG1heWJlTmV3Q29udGV4dCkgewogICAgICAgICAgY29udGV4dCA9IG1heWJlTmV3Q29udGV4dDsKICAgICAgICB9CiAgICAgICAgY29uc3QgdGFza1NjaGVkdWxlciA9IG5ldyBUYXNrU2NoZWR1bGVyKGNvbnRleHQpOwogICAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLl9ob3N0OwogICAgICAgIHRoaXMuX3Rhc2tTY2hlZHVsZXJzLnB1c2godGFza1NjaGVkdWxlcik7CiAgICAgICAgZnVuY3Rpb24gYWRkVGFzayh0YXNrLCBkZXBlbmRlbmNpZXMpIHsKICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IHRhc2sudG9Db25maWd1cmF0aW9uKCk7CiAgICAgICAgICBpZiAoIWhvc3QuaGFzVGFza0V4ZWN1dG9yKGNvbmZpZy5uYW1lKSkgewogICAgICAgICAgICB0aHJvdyBuZXcgVW5yZWdpc3RlcmVkVGFza0V4Y2VwdGlvbihjb25maWcubmFtZSwgc2NoZW1hdGljLmRlc2NyaXB0aW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGNvbmZpZy5kZXBlbmRlbmNpZXMgPSBjb25maWcuZGVwZW5kZW5jaWVzIHx8IFtdOwogICAgICAgICAgaWYgKGRlcGVuZGVuY2llcykgewogICAgICAgICAgICBjb25maWcuZGVwZW5kZW5jaWVzLnVuc2hpZnQoLi4uZGVwZW5kZW5jaWVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiB0YXNrU2NoZWR1bGVyLnNjaGVkdWxlKGNvbmZpZyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBjb250ZXh0OwogICAgICB9CiAgICAgIGNyZWF0ZVNjaGVtYXRpYyhuYW1lLCBjb2xsZWN0aW9uLCBhbGxvd1ByaXZhdGUgPSBmYWxzZSkgewogICAgICAgIGNvbnN0IHNjaGVtYXRpY01hcCA9IHRoaXMuX3NjaGVtYXRpY0NhY2hlLmdldChjb2xsZWN0aW9uKTsKICAgICAgICBsZXQgc2NoZW1hdGljID0gc2NoZW1hdGljTWFwPy5nZXQobmFtZSk7CiAgICAgICAgaWYgKHNjaGVtYXRpYykgewogICAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgICB9CiAgICAgICAgbGV0IGNvbGxlY3Rpb25EZXNjcmlwdGlvbiA9IGNvbGxlY3Rpb24uZGVzY3JpcHRpb247CiAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gdGhpcy5faG9zdC5jcmVhdGVTY2hlbWF0aWNEZXNjcmlwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICBpZiAoY29sbGVjdGlvbi5iYXNlRGVzY3JpcHRpb25zKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgYmFzZSBvZiBjb2xsZWN0aW9uLmJhc2VEZXNjcmlwdGlvbnMpIHsKICAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHRoaXMuX2hvc3QuY3JlYXRlU2NoZW1hdGljRGVzY3JpcHRpb24obmFtZSwgYmFzZSk7CiAgICAgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uRGVzY3JpcHRpb24gPSBiYXNlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIWRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBVbmtub3duU2NoZW1hdGljRXhjZXB0aW9uKG5hbWUsIGNvbGxlY3Rpb24uZGVzY3JpcHRpb24pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoZGVzY3JpcHRpb24ucHJpdmF0ZSAmJiAhYWxsb3dQcml2YXRlKSB7CiAgICAgICAgICB0aHJvdyBuZXcgUHJpdmF0ZVNjaGVtYXRpY0V4Y2VwdGlvbihuYW1lLCBjb2xsZWN0aW9uLmRlc2NyaXB0aW9uKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX2hvc3QuZ2V0U2NoZW1hdGljUnVsZUZhY3RvcnkoZGVzY3JpcHRpb24sIGNvbGxlY3Rpb25EZXNjcmlwdGlvbik7CiAgICAgICAgc2NoZW1hdGljID0gbmV3IHNjaGVtYXRpY18xLlNjaGVtYXRpY0ltcGwoZGVzY3JpcHRpb24sIGZhY3RvcnksIGNvbGxlY3Rpb24sIHRoaXMpOwogICAgICAgIHNjaGVtYXRpY01hcD8uc2V0KG5hbWUsIHNjaGVtYXRpYyk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzsKICAgICAgfQogICAgICBsaXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbiwgaW5jbHVkZUhpZGRlbikgewogICAgICAgIGNvbnN0IG5hbWVzID0gdGhpcy5faG9zdC5saXN0U2NoZW1hdGljTmFtZXMoY29sbGVjdGlvbi5kZXNjcmlwdGlvbiwgaW5jbHVkZUhpZGRlbik7CiAgICAgICAgaWYgKGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgZm9yIChjb25zdCBiYXNlIG9mIGNvbGxlY3Rpb24uYmFzZURlc2NyaXB0aW9ucykgewogICAgICAgICAgICBuYW1lcy5wdXNoKC4uLnRoaXMuX2hvc3QubGlzdFNjaGVtYXRpY05hbWVzKGJhc2UsIGluY2x1ZGVIaWRkZW4pKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIFsuLi5uZXcgU2V0KG5hbWVzKV0uc29ydCgpOwogICAgICB9CiAgICAgIHRyYW5zZm9ybU9wdGlvbnMoc2NoZW1hdGljLCBvcHRpb25zLCBjb250ZXh0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QudHJhbnNmb3JtT3B0aW9ucyhzY2hlbWF0aWMuZGVzY3JpcHRpb24sIG9wdGlvbnMsIGNvbnRleHQpOwogICAgICB9CiAgICAgIGNyZWF0ZVNvdXJjZUZyb21VcmwodXJsMywgY29udGV4dCkgewogICAgICAgIHN3aXRjaCAodXJsMy5wcm90b2NvbCkgewogICAgICAgICAgY2FzZSAibnVsbDoiOgogICAgICAgICAgICByZXR1cm4gKCkgPT4gbmV3IG51bGxfMS5OdWxsVHJlZSgpOwogICAgICAgICAgY2FzZSAiZW1wdHk6IjoKICAgICAgICAgICAgcmV0dXJuICgpID0+ICgwLCBzdGF0aWNfMS5lbXB0eSkoKTsKICAgICAgICB9CiAgICAgICAgY29uc3QgaG9zdFNvdXJjZSA9IHRoaXMuX2hvc3QuY3JlYXRlU291cmNlRnJvbVVybCh1cmwzLCBjb250ZXh0KTsKICAgICAgICBpZiAoIWhvc3RTb3VyY2UpIHsKICAgICAgICAgIHRocm93IG5ldyBVbmtub3duVXJsU291cmNlUHJvdG9jb2wodXJsMy50b1N0cmluZygpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGhvc3RTb3VyY2U7CiAgICAgIH0KICAgICAgZXhlY3V0ZVBvc3RUYXNrcygpIHsKICAgICAgICBjb25zdCBleGVjdXRvcnMgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRhc2tPYnNlcnZhYmxlID0gKDAsIHJ4anNfMS5mcm9tKSh0aGlzLl90YXNrU2NoZWR1bGVycykucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHNjaGVkdWxlcikgPT4gc2NoZWR1bGVyLmZpbmFsaXplKCkpLCAoMCwgcnhqc18xLmNvbmNhdE1hcCkoKHRhc2spID0+IHsKICAgICAgICAgIGNvbnN0IHsgbmFtZSwgb3B0aW9ucyB9ID0gdGFzay5jb25maWd1cmF0aW9uOwogICAgICAgICAgY29uc3QgZXhlY3V0b3IgPSBleGVjdXRvcnMuZ2V0KG5hbWUpOwogICAgICAgICAgaWYgKGV4ZWN1dG9yKSB7CiAgICAgICAgICAgIHJldHVybiBleGVjdXRvcihvcHRpb25zLCB0YXNrLmNvbnRleHQpOwogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3QuY3JlYXRlVGFza0V4ZWN1dG9yKG5hbWUpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChleGVjdXRvcjIpID0+IHsKICAgICAgICAgICAgZXhlY3V0b3JzLnNldChuYW1lLCBleGVjdXRvcjIpOwogICAgICAgICAgICByZXR1cm4gZXhlY3V0b3IyKG9wdGlvbnMsIHRhc2suY29udGV4dCk7CiAgICAgICAgICB9KSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiB0YXNrT2JzZXJ2YWJsZTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNjaGVtYXRpY0VuZ2luZSA9IFNjaGVtYXRpY0VuZ2luZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbnRlcmZhY2UuanMKdmFyIHJlcXVpcmVfaW50ZXJmYWNlNCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzCnZhciByZXF1aXJlX2VuZ2luZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2VuZ2luZS9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfZW5naW5lKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2ludGVyZmFjZTQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2NoZW1hdGljKCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzCnZhciByZXF1aXJlX2NsaV9sb2dnZXIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9jbGktbG9nZ2VyLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5jcmVhdGVDb25zb2xlTG9nZ2VyID0gY3JlYXRlQ29uc29sZUxvZ2dlcjsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIHNyY18xID0gcmVxdWlyZV9zcmMoKTsKICAgIGZ1bmN0aW9uIGNyZWF0ZUNvbnNvbGVMb2dnZXIodmVyYm9zZSA9IGZhbHNlLCBzdGRvdXQgPSBwcm9jZXNzLnN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5zdGRlcnIsIGNvbG9ycykgewogICAgICBjb25zdCBsb2dnZXIgPSBuZXcgc3JjXzEubG9nZ2luZy5JbmRlbnRMb2dnZXIoImNsaW5nIik7CiAgICAgIGxvZ2dlci5waXBlKCgwLCByeGpzXzEuZmlsdGVyKSgoZW50cnkpID0+IGVudHJ5LmxldmVsICE9PSAiZGVidWciIHx8IHZlcmJvc2UpKS5zdWJzY3JpYmUoKGVudHJ5KSA9PiB7CiAgICAgICAgY29uc3QgY29sb3IgPSBjb2xvcnMgJiYgY29sb3JzW2VudHJ5LmxldmVsXTsKICAgICAgICBsZXQgb3V0cHV0ID0gc3Rkb3V0OwogICAgICAgIHN3aXRjaCAoZW50cnkubGV2ZWwpIHsKICAgICAgICAgIGNhc2UgIndhcm4iOgogICAgICAgICAgY2FzZSAiZmF0YWwiOgogICAgICAgICAgY2FzZSAiZXJyb3IiOgogICAgICAgICAgICBvdXRwdXQgPSBzdGRlcnI7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBjb25zdCBjaHVua1NpemUgPSAyZTM7CiAgICAgICAgbGV0IG1lc3NhZ2UgPSBlbnRyeS5tZXNzYWdlOwogICAgICAgIHdoaWxlIChtZXNzYWdlKSB7CiAgICAgICAgICBjb25zdCBjaHVuayA9IG1lc3NhZ2Uuc2xpY2UoMCwgY2h1bmtTaXplKTsKICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnNsaWNlKGNodW5rU2l6ZSk7CiAgICAgICAgICBvdXRwdXQud3JpdGUoY29sb3IgPyBjb2xvcihjaHVuaykgOiBjaHVuayk7CiAgICAgICAgfQogICAgICAgIG91dHB1dC53cml0ZSgiXG4iKTsKICAgICAgfSk7CiAgICAgIHJldHVybiBsb2dnZXI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaG9zdC5qcwp2YXIgcmVxdWlyZV9ob3N0MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8ueWFybi9fX3ZpcnR1YWxfXy9AYW5ndWxhci1kZXZraXQtY29yZS12aXJ0dWFsLWM5NmM2ZTkwMDkvMi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtY29yZS1ucG0tMTkuMS41LThjYWRiMzg3NWYtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLk5vZGVKc1N5bmNIb3N0ID0gZXhwb3J0czIuTm9kZUpzQXN5bmNIb3N0ID0gdm9pZCAwOwogICAgdmFyIG5vZGVfZnNfMSA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKICAgIHZhciBub2RlX3BhdGhfMSA9IHJlcXVpcmUoIm5vZGU6cGF0aCIpOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc3JjXzEgPSByZXF1aXJlX3NyYygpOwogICAgYXN5bmMgZnVuY3Rpb24gZXhpc3RzKHBhdGgpIHsKICAgICAgdHJ5IHsKICAgICAgICBhd2FpdCBub2RlX2ZzXzEucHJvbWlzZXMuYWNjZXNzKHBhdGgsIG5vZGVfZnNfMS5jb25zdGFudHMuRl9PSyk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgdmFyIEZTV2F0Y2hlcjsKICAgIGZ1bmN0aW9uIGxvYWRGU1dhdGNoZXIoKSB7CiAgICAgIGlmICghRlNXYXRjaGVyKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgIEZTV2F0Y2hlciA9IHJlcXVpcmUoImNob2tpZGFyIikuRlNXYXRjaGVyOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGlmIChlLmNvZGUgIT09ICJNT0RVTEVfTk9UX0ZPVU5EIikgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FzIG9mIGFuZ3VsYXItZGV2a2l0IHZlcnNpb24gOC4wLCB0aGUgImNob2tpZGFyIiBwYWNrYWdlIG11c3QgYmUgaW5zdGFsbGVkIGluIG9yZGVyIHRvIHVzZSB3YXRjaCgpIGZlYXR1cmVzLicpOwogICAgICAgICAgfQogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHZhciBOb2RlSnNBc3luY0hvc3QgPSBjbGFzcyB7CiAgICAgIGdldCBjYXBhYmlsaXRpZXMoKSB7CiAgICAgICAgcmV0dXJuIHsgc3luY2hyb25vdXM6IGZhbHNlIH07CiAgICAgIH0KICAgICAgd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5ta2RpcigoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSkpLnBpcGUoKDAsIHJ4anNfMS5tZXJnZU1hcCkoKCkgPT4gbm9kZV9mc18xLnByb21pc2VzLndyaXRlRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCksIG5ldyBVaW50OEFycmF5KGNvbnRlbnQpKSkpOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkRmlsZSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYnVmZmVyKSA9PiBuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcikpOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkobm9kZV9mc18xLnByb21pc2VzLnJtKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pKTsKICAgICAgfQogICAgICByZW5hbWUoZnJvbSwgdG8pIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMucmVuYW1lKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShmcm9tKSwgKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHRvKSkpOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmZyb20pKG5vZGVfZnNfMS5wcm9taXNlcy5yZWFkZGlyKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChuYW1lcykgPT4gbmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSkpOwogICAgICB9CiAgICAgIGV4aXN0cyhwYXRoKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuZnJvbSkoZXhpc3RzKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5mcm9tKShub2RlX2ZzXzEucHJvbWlzZXMuc3RhdCgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCB3YXRjaGluZy4KICAgICAgd2F0Y2gocGF0aCwgX29wdGlvbnMpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIGxvYWRGU1dhdGNoZXIoKTsKICAgICAgICAgIGNvbnN0IHdhdGNoZXIgPSBuZXcgRlNXYXRjaGVyKHsgcGVyc2lzdGVudDogdHJ1ZSB9KTsKICAgICAgICAgIHdhdGNoZXIuYWRkKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICB3YXRjaGVyLm9uKCJjaGFuZ2UiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNoYW5nZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigiYWRkIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5DcmVhdGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSkub24oInVubGluayIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuRGVsZXRlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pOwogICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgdm9pZCB3YXRjaGVyLmNsb3NlKCk7CiAgICAgICAgICB9OwogICAgICAgIH0pLnBpcGUoKDAsIHJ4anNfMS5wdWJsaXNoKSgpLCAoMCwgcnhqc18xLnJlZkNvdW50KSgpKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLk5vZGVKc0FzeW5jSG9zdCA9IE5vZGVKc0FzeW5jSG9zdDsKICAgIHZhciBOb2RlSnNTeW5jSG9zdCA9IGNsYXNzIHsKICAgICAgZ2V0IGNhcGFiaWxpdGllcygpIHsKICAgICAgICByZXR1cm4geyBzeW5jaHJvbm91czogdHJ1ZSB9OwogICAgICB9CiAgICAgIHdyaXRlKHBhdGgsIGNvbnRlbnQpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgICgwLCBub2RlX2ZzXzEubWtkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkoKDAsIHNyY18xLmRpcm5hbWUpKHBhdGgpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7CiAgICAgICAgICAoMCwgbm9kZV9mc18xLndyaXRlRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgbmV3IFVpbnQ4QXJyYXkoY29udGVudCkpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJlYWQocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgYnVmZmVyID0gKDAsIG5vZGVfZnNfMS5yZWFkRmlsZVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSk7CiAgICAgICAgICBvYnMubmV4dChuZXcgVWludDhBcnJheShidWZmZXIpLmJ1ZmZlcik7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBkZWxldGUocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ybVN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSwgeyBmb3JjZTogdHJ1ZSwgcmVjdXJzaXZlOiB0cnVlLCBtYXhSZXRyaWVzOiAzIH0pOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcmVuYW1lKGZyb20sIHRvKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBjb25zdCB0b1N5c3RlbVBhdGggPSAoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkodG8pOwogICAgICAgICAgKDAsIG5vZGVfZnNfMS5ta2RpclN5bmMpKCgwLCBub2RlX3BhdGhfMS5kaXJuYW1lKSh0b1N5c3RlbVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTsKICAgICAgICAgICgwLCBub2RlX2ZzXzEucmVuYW1lU3luYykoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKGZyb20pLCB0b1N5c3RlbVBhdGgpOwogICAgICAgICAgb2JzLm5leHQoKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGxpc3QocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgY29uc3QgbmFtZXMgPSAoMCwgbm9kZV9mc18xLnJlYWRkaXJTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpOwogICAgICAgICAgb2JzLm5leHQobmFtZXMubWFwKChuYW1lKSA9PiAoMCwgc3JjXzEuZnJhZ21lbnQpKG5hbWUpKSk7CiAgICAgICAgICBvYnMuY29tcGxldGUoKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBleGlzdHMocGF0aCkgewogICAgICAgIHJldHVybiBuZXcgcnhqc18xLk9ic2VydmFibGUoKG9icykgPT4gewogICAgICAgICAgb2JzLm5leHQoKDAsIG5vZGVfZnNfMS5leGlzdHNTeW5jKSgoMCwgc3JjXzEuZ2V0U3lzdGVtUGF0aCkocGF0aCkpKTsKICAgICAgICAgIG9icy5jb21wbGV0ZSgpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGlzRGlyZWN0b3J5KHBhdGgpIHsKICAgICAgICByZXR1cm4gdGhpcy5zdGF0KHBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzdGF0KSA9PiBzdGF0LmlzRGlyZWN0b3J5KCkpKTsKICAgICAgfQogICAgICBpc0ZpbGUocGF0aCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXQocGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKHN0YXQpID0+IHN0YXQuaXNGaWxlKCkpKTsKICAgICAgfQogICAgICAvLyBTb21lIGhvc3RzIG1heSBub3Qgc3VwcG9ydCBzdGF0LgogICAgICBzdGF0KHBhdGgpIHsKICAgICAgICByZXR1cm4gbmV3IHJ4anNfMS5PYnNlcnZhYmxlKChvYnMpID0+IHsKICAgICAgICAgIG9icy5uZXh0KCgwLCBub2RlX2ZzXzEuc3RhdFN5bmMpKCgwLCBzcmNfMS5nZXRTeXN0ZW1QYXRoKShwYXRoKSkpOwogICAgICAgICAgb2JzLmNvbXBsZXRlKCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgLy8gU29tZSBob3N0cyBtYXkgbm90IHN1cHBvcnQgd2F0Y2hpbmcuCiAgICAgIHdhdGNoKHBhdGgsIF9vcHRpb25zKSB7CiAgICAgICAgcmV0dXJuIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzKSA9PiB7CiAgICAgICAgICBsb2FkRlNXYXRjaGVyKCk7CiAgICAgICAgICBjb25zdCB3YXRjaGVyID0gbmV3IEZTV2F0Y2hlcih7IHBlcnNpc3RlbnQ6IGZhbHNlIH0pOwogICAgICAgICAgd2F0Y2hlci5hZGQoKDAsIHNyY18xLmdldFN5c3RlbVBhdGgpKHBhdGgpKTsKICAgICAgICAgIHdhdGNoZXIub24oImNoYW5nZSIsIChwYXRoMikgPT4gewogICAgICAgICAgICBvYnMubmV4dCh7CiAgICAgICAgICAgICAgcGF0aDogKDAsIHNyY18xLm5vcm1hbGl6ZSkocGF0aDIpLAogICAgICAgICAgICAgIHRpbWU6IC8qIEBfX1BVUkVfXyAqLyBuZXcgRGF0ZSgpLAogICAgICAgICAgICAgIHR5cGU6IHNyY18xLnZpcnR1YWxGcy5Ib3N0V2F0Y2hFdmVudFR5cGUuQ2hhbmdlZAogICAgICAgICAgICB9KTsKICAgICAgICAgIH0pLm9uKCJhZGQiLCAocGF0aDIpID0+IHsKICAgICAgICAgICAgb2JzLm5leHQoewogICAgICAgICAgICAgIHBhdGg6ICgwLCBzcmNfMS5ub3JtYWxpemUpKHBhdGgyKSwKICAgICAgICAgICAgICB0aW1lOiAvKiBAX19QVVJFX18gKi8gbmV3IERhdGUoKSwKICAgICAgICAgICAgICB0eXBlOiBzcmNfMS52aXJ0dWFsRnMuSG9zdFdhdGNoRXZlbnRUeXBlLkNyZWF0ZWQKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KS5vbigidW5saW5rIiwgKHBhdGgyKSA9PiB7CiAgICAgICAgICAgIG9icy5uZXh0KHsKICAgICAgICAgICAgICBwYXRoOiAoMCwgc3JjXzEubm9ybWFsaXplKShwYXRoMiksCiAgICAgICAgICAgICAgdGltZTogLyogQF9fUFVSRV9fICovIG5ldyBEYXRlKCksCiAgICAgICAgICAgICAgdHlwZTogc3JjXzEudmlydHVhbEZzLkhvc3RXYXRjaEV2ZW50VHlwZS5EZWxldGVkCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAgICAgICAgICB2b2lkIHdhdGNoZXIuY2xvc2UoKTsKICAgICAgICAgIH07CiAgICAgICAgfSkucGlwZSgoMCwgcnhqc18xLnB1Ymxpc2gpKCksICgwLCByeGpzXzEucmVmQ291bnQpKCkpOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuTm9kZUpzU3luY0hvc3QgPSBOb2RlSnNTeW5jSG9zdDsKICB9Cn0pOwoKLy8gLi4vLi4vLnlhcm4vX192aXJ0dWFsX18vQGFuZ3VsYXItZGV2a2l0LWNvcmUtdmlydHVhbC1jOTZjNmU5MDA5LzIvLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LWNvcmUtbnBtLTE5LjEuNS04Y2FkYjM4NzVmLTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qcwp2YXIgcmVxdWlyZV9ub2RlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy55YXJuL19fdmlydHVhbF9fL0Bhbmd1bGFyLWRldmtpdC1jb3JlLXZpcnR1YWwtYzk2YzZlOTAwOS8yLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1jb3JlLW5wbS0xOS4xLjUtOGNhZGIzODc1Zi0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvaW5kZXguanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgX19jcmVhdGVCaW5kaW5nID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19jcmVhdGVCaW5kaW5nIHx8IChPYmplY3QuY3JlYXRlID8gZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgdmFyIGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG0sIGspOwogICAgICBpZiAoIWRlc2MgfHwgKCJnZXQiIGluIGRlc2MgPyAhbS5fX2VzTW9kdWxlIDogZGVzYy53cml0YWJsZSB8fCBkZXNjLmNvbmZpZ3VyYWJsZSkpIHsKICAgICAgICBkZXNjID0geyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGZ1bmN0aW9uKCkgewogICAgICAgICAgcmV0dXJuIG1ba107CiAgICAgICAgfSB9OwogICAgICB9CiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBrMiwgZGVzYyk7CiAgICB9IDogZnVuY3Rpb24obywgbSwgaywgazIpIHsKICAgICAgaWYgKGsyID09PSB2b2lkIDApIGsyID0gazsKICAgICAgb1trMl0gPSBtW2tdOwogICAgfSk7CiAgICB2YXIgX19leHBvcnRTdGFyID0gZXhwb3J0czIgJiYgZXhwb3J0czIuX19leHBvcnRTdGFyIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMzKSB7CiAgICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09ICJkZWZhdWx0IiAmJiAhT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV4cG9ydHMzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMzLCBtLCBwKTsKICAgIH07CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2NsaV9sb2dnZXIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDMoKSwgZXhwb3J0czIpOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanMKdmFyIHJlcXVpcmVfYWN0aW9uID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2FjdGlvbi5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuQWN0aW9uTGlzdCA9IGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSB2b2lkIDA7CiAgICBleHBvcnRzMi5pc0NvbnRlbnRBY3Rpb24gPSBpc0NvbnRlbnRBY3Rpb247CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBVbmtub3duQWN0aW9uRXhjZXB0aW9uID0gY2xhc3MgZXh0ZW5kcyBjb3JlXzEuQmFzZUV4Y2VwdGlvbiB7CiAgICAgIGNvbnN0cnVjdG9yKGFjdGlvbikgewogICAgICAgIHN1cGVyKGBVbmtub3duIGFjdGlvbjogIiR7YWN0aW9uLmtpbmR9Ii5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25BY3Rpb25FeGNlcHRpb24gPSBVbmtub3duQWN0aW9uRXhjZXB0aW9uOwogICAgdmFyIF9pZCA9IDE7CiAgICB2YXIgQWN0aW9uTGlzdCA9IGNsYXNzIHsKICAgICAgX2FjdGlvbnMgPSBbXTsKICAgICAgX2FjdGlvbihhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goewogICAgICAgICAgLi4uYWN0aW9uLAogICAgICAgICAgaWQ6IF9pZCsrLAogICAgICAgICAgcGFyZW50OiB0aGlzLl9hY3Rpb25zW3RoaXMuX2FjdGlvbnMubGVuZ3RoIC0gMV0/LmlkID8/IDAKICAgICAgICB9KTsKICAgICAgfQogICAgICBjcmVhdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJjIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICBvdmVyd3JpdGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2FjdGlvbih7IGtpbmQ6ICJvIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgfQogICAgICByZW5hbWUocGF0aCwgdG8pIHsKICAgICAgICB0aGlzLl9hY3Rpb24oeyBraW5kOiAiciIsIHBhdGgsIHRvIH0pOwogICAgICB9CiAgICAgIGRlbGV0ZShwYXRoKSB7CiAgICAgICAgdGhpcy5fYWN0aW9uKHsga2luZDogImQiLCBwYXRoIH0pOwogICAgICB9CiAgICAgIG9wdGltaXplKCkgewogICAgICAgIGNvbnN0IHRvQ3JlYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgICBjb25zdCB0b1JlbmFtZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgICAgY29uc3QgdG9PdmVyd3JpdGUgPSAvKiBAX19QVVJFX18gKi8gbmV3IE1hcCgpOwogICAgICAgIGNvbnN0IHRvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiB0aGlzLl9hY3Rpb25zKSB7CiAgICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBpZiAodG9DcmVhdGUuaGFzKGFjdGlvbi5wYXRoKSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuc2V0KGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRvT3ZlcndyaXRlLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLmNvbnRlbnQpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgdG9EZWxldGUuYWRkKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6IHsKICAgICAgICAgICAgICBjb25zdCBtYXliZUNyZWF0ZSA9IHRvQ3JlYXRlLmdldChhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgY29uc3QgbWF5YmVPdmVyd3JpdGUgPSB0b092ZXJ3cml0ZS5nZXQoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgIGlmIChtYXliZUNyZWF0ZSkgewogICAgICAgICAgICAgICAgdG9DcmVhdGUuZGVsZXRlKGFjdGlvbi5wYXRoKTsKICAgICAgICAgICAgICAgIHRvQ3JlYXRlLnNldChhY3Rpb24udG8sIG1heWJlQ3JlYXRlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKG1heWJlT3ZlcndyaXRlKSB7CiAgICAgICAgICAgICAgICB0b092ZXJ3cml0ZS5kZWxldGUoYWN0aW9uLnBhdGgpOwogICAgICAgICAgICAgICAgdG9PdmVyd3JpdGUuc2V0KGFjdGlvbi50bywgbWF5YmVPdmVyd3JpdGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBsZXQgbWF5YmVSZW5hbWUgPSB2b2lkIDA7CiAgICAgICAgICAgICAgZm9yIChjb25zdCBbZnJvbSwgdG9dIG9mIHRvUmVuYW1lLmVudHJpZXMoKSkgewogICAgICAgICAgICAgICAgaWYgKHRvID09IGFjdGlvbi5wYXRoKSB7CiAgICAgICAgICAgICAgICAgIG1heWJlUmVuYW1lID0gZnJvbTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChtYXliZVJlbmFtZSkgewogICAgICAgICAgICAgICAgdG9SZW5hbWUuc2V0KG1heWJlUmVuYW1lLCBhY3Rpb24udG8pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIW1heWJlQ3JlYXRlICYmICFtYXliZU92ZXJ3cml0ZSAmJiAhbWF5YmVSZW5hbWUpIHsKICAgICAgICAgICAgICAgIHRvUmVuYW1lLnNldChhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5fYWN0aW9ucyA9IFtdOwogICAgICAgIHRvRGVsZXRlLmZvckVhY2goKHgpID0+IHsKICAgICAgICAgIHRoaXMuZGVsZXRlKHgpOwogICAgICAgIH0pOwogICAgICAgIHRvUmVuYW1lLmZvckVhY2goKHRvLCBmcm9tKSA9PiB7CiAgICAgICAgICB0aGlzLnJlbmFtZShmcm9tLCB0byk7CiAgICAgICAgfSk7CiAgICAgICAgdG9DcmVhdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5jcmVhdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgICAgdG9PdmVyd3JpdGUuZm9yRWFjaCgoY29udGVudCwgcGF0aCkgPT4gewogICAgICAgICAgdGhpcy5vdmVyd3JpdGUocGF0aCwgY29udGVudCk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgICAgcHVzaChhY3Rpb24pIHsKICAgICAgICB0aGlzLl9hY3Rpb25zLnB1c2goYWN0aW9uKTsKICAgICAgfQogICAgICBnZXQoaSkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zW2ldOwogICAgICB9CiAgICAgIGhhcyhhY3Rpb24pIHsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2FjdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNvbnN0IGEgPSB0aGlzLl9hY3Rpb25zW2ldOwogICAgICAgICAgaWYgKGEuaWQgPT0gYWN0aW9uLmlkKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgfQogICAgICAgICAgaWYgKGEuaWQgPiBhY3Rpb24uaWQpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgICAgZmluZChwcmVkaWNhdGUpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9ucy5maW5kKHByZWRpY2F0ZSkgfHwgbnVsbDsKICAgICAgfQogICAgICBmb3JFYWNoKGZuLCB0aGlzQXJnKSB7CiAgICAgICAgdGhpcy5fYWN0aW9ucy5mb3JFYWNoKGZuLCB0aGlzQXJnKTsKICAgICAgfQogICAgICBnZXQgbGVuZ3RoKCkgewogICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25zLmxlbmd0aDsKICAgICAgfQogICAgICBbU3ltYm9sLml0ZXJhdG9yXSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9uc1tTeW1ib2wuaXRlcmF0b3JdKCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5BY3Rpb25MaXN0ID0gQWN0aW9uTGlzdDsKICAgIGZ1bmN0aW9uIGlzQ29udGVudEFjdGlvbihhY3Rpb24pIHsKICAgICAgcmV0dXJuIGFjdGlvbi5raW5kID09ICJjIiB8fCBhY3Rpb24ua2luZCA9PSAibyI7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL3NpbmsuanMKdmFyIHJlcXVpcmVfc2luayA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9zaW5rLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5TaW1wbGVTaW5rQmFzZSA9IHZvaWQgMDsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgYWN0aW9uXzEgPSByZXF1aXJlX2FjdGlvbigpOwogICAgdmFyIE5vb3AgPSBmdW5jdGlvbigpIHsKICAgIH07CiAgICB2YXIgU2ltcGxlU2lua0Jhc2UgPSBjbGFzcyB7CiAgICAgIHByZUNvbW1pdEFjdGlvbiA9IE5vb3A7CiAgICAgIHBvc3RDb21taXRBY3Rpb24gPSBOb29wOwogICAgICBwcmVDb21taXQgPSBOb29wOwogICAgICBwb3N0Q29tbWl0ID0gTm9vcDsKICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRocm93IG5ldyBleGNlcHRpb25fMS5GaWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuRmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihwYXRoKTsKICAgICAgfQogICAgICBfdmFsaWRhdGVPdmVyd3JpdGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24ucGF0aCkucGlwZSgoMCwgcnhqc18xLm1hcCkoKGIpID0+IHsKICAgICAgICAgIGlmICghYikgewogICAgICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi5wYXRoKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZUZpbGVFeGlzdHMoYWN0aW9uLnBhdGgpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoIWIpIHsKICAgICAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvbihhY3Rpb24ucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgfSksICgwLCByeGpzXzEubWVyZ2VNYXApKCgpID0+IHRoaXMuX3ZhbGlkYXRlRmlsZUV4aXN0cyhhY3Rpb24udG8pKSwgKDAsIHJ4anNfMS5tYXApKChiKSA9PiB7CiAgICAgICAgICBpZiAoYikgewogICAgICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uKGFjdGlvbi50byk7CiAgICAgICAgICB9CiAgICAgICAgfSkpOwogICAgICB9CiAgICAgIF92YWxpZGF0ZURlbGV0ZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGVGaWxlRXhpc3RzKGFjdGlvbi5wYXRoKS5waXBlKCgwLCByeGpzXzEubWFwKSgoYikgPT4gewogICAgICAgICAgaWYgKCFiKSB7CiAgICAgICAgICAgIHRoaXMuX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb24oYWN0aW9uLnBhdGgpOwogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgICB2YWxpZGF0ZVNpbmdsZUFjdGlvbihhY3Rpb24pIHsKICAgICAgICBzd2l0Y2ggKGFjdGlvbi5raW5kKSB7CiAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlT3ZlcndyaXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJjIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJyIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlUmVuYW1lQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBjYXNlICJkIjoKICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlRGVsZXRlQWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICB0aHJvdyBuZXcgYWN0aW9uXzEuVW5rbm93bkFjdGlvbkV4Y2VwdGlvbihhY3Rpb24pOwogICAgICAgIH0KICAgICAgfQogICAgICBjb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKSB7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnZhbGlkYXRlU2luZ2xlQWN0aW9uKGFjdGlvbiksIG5ldyByeGpzXzEuT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHsKICAgICAgICAgIGxldCBjb21taXR0ZWQgPSBudWxsOwogICAgICAgICAgc3dpdGNoIChhY3Rpb24ua2luZCkgewogICAgICAgICAgICBjYXNlICJvIjoKICAgICAgICAgICAgICBjb21taXR0ZWQgPSB0aGlzLl9vdmVyd3JpdGVGaWxlKGFjdGlvbi5wYXRoLCBhY3Rpb24uY29udGVudCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgImMiOgogICAgICAgICAgICAgIGNvbW1pdHRlZCA9IHRoaXMuX2NyZWF0ZUZpbGUoYWN0aW9uLnBhdGgsIGFjdGlvbi5jb250ZW50KTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiciI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fcmVuYW1lRmlsZShhY3Rpb24ucGF0aCwgYWN0aW9uLnRvKTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAiZCI6CiAgICAgICAgICAgICAgY29tbWl0dGVkID0gdGhpcy5fZGVsZXRlRmlsZShhY3Rpb24ucGF0aCk7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoY29tbWl0dGVkKSB7CiAgICAgICAgICAgIGNvbW1pdHRlZC5zdWJzY3JpYmUob2JzZXJ2ZXIpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTsKICAgICAgICAgIH0KICAgICAgICB9KSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpKTsKICAgICAgfQogICAgICBjb21taXQodHJlZSkgewogICAgICAgIGNvbnN0IGFjdGlvbnMgPSAoMCwgcnhqc18xLmZyb20pKHRyZWUuYWN0aW9ucyk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSh0aGlzLnByZUNvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpLCAoMCwgcnhqc18xLmRlZmVyKSgoKSA9PiBhY3Rpb25zKS5waXBlKCgwLCByeGpzXzEuY29uY2F0TWFwKSgoYWN0aW9uKSA9PiB7CiAgICAgICAgICBjb25zdCBtYXliZUFjdGlvbiA9IHRoaXMucHJlQ29tbWl0QWN0aW9uKGFjdGlvbik7CiAgICAgICAgICBpZiAoKDAsIHJ4anNfMS5pc09ic2VydmFibGUpKG1heWJlQWN0aW9uKSB8fCBpc1Byb21pc2VMaWtlKG1heWJlQWN0aW9uKSkgewogICAgICAgICAgICByZXR1cm4gbWF5YmVBY3Rpb247CiAgICAgICAgICB9CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikobWF5YmVBY3Rpb24gfHwgYWN0aW9uKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkodGhpcy5jb21taXRTaW5nbGVBY3Rpb24oYWN0aW9uKS5waXBlKCgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKShhY3Rpb24pKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS5jb25jYXRNYXApKChhY3Rpb24pID0+IHRoaXMucG9zdENvbW1pdEFjdGlvbihhY3Rpb24pIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMuX2RvbmUoKSksICgwLCByeGpzXzEuZGVmZXIpKCgpID0+IHRoaXMucG9zdENvbW1pdCgpIHx8ICgwLCByeGpzXzEub2YpKG51bGwpKSkucGlwZSgoMCwgcnhqc18xLmlnbm9yZUVsZW1lbnRzKSgpLCAoMCwgcnhqc18xLmRlZmF1bHRJZkVtcHR5KSh2b2lkIDApKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlNpbXBsZVNpbmtCYXNlID0gU2ltcGxlU2lua0Jhc2U7CiAgICBmdW5jdGlvbiBpc1Byb21pc2VMaWtlKHZhbHVlKSB7CiAgICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAiZnVuY3Rpb24iOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzCnZhciByZXF1aXJlX2hvc3Q0ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2hvc3QuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gdm9pZCAwOwogICAgdmFyIHJ4anNfMSA9IHJlcXVpcmVfY2pzKCk7CiAgICB2YXIgc2lua18xID0gcmVxdWlyZV9zaW5rKCk7CiAgICB2YXIgSG9zdFNpbmsgPSBjbGFzcyBleHRlbmRzIHNpbmtfMS5TaW1wbGVTaW5rQmFzZSB7CiAgICAgIF9ob3N0OwogICAgICBfZm9yY2U7CiAgICAgIF9maWxlc1RvRGVsZXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBTZXQoKTsKICAgICAgX2ZpbGVzVG9SZW5hbWUgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZXNUb0NyZWF0ZSA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgICAgIF9maWxlc1RvVXBkYXRlID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICAgICAgY29uc3RydWN0b3IoX2hvc3QsIF9mb3JjZSA9IGZhbHNlKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgICB0aGlzLl9ob3N0ID0gX2hvc3Q7CiAgICAgICAgdGhpcy5fZm9yY2UgPSBfZm9yY2U7CiAgICAgIH0KICAgICAgX3ZhbGlkYXRlQ3JlYXRlQWN0aW9uKGFjdGlvbikgewogICAgICAgIHJldHVybiB0aGlzLl9mb3JjZSA/IHJ4anNfMS5FTVBUWSA6IHN1cGVyLl92YWxpZGF0ZUNyZWF0ZUFjdGlvbihhY3Rpb24pOwogICAgICB9CiAgICAgIF92YWxpZGF0ZUZpbGVFeGlzdHMocCkgewogICAgICAgIGlmICh0aGlzLl9maWxlc1RvQ3JlYXRlLmhhcyhwKSB8fCB0aGlzLl9maWxlc1RvVXBkYXRlLmhhcyhwKSkgewogICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0RlbGV0ZS5oYXMocCkpIHsKICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiB0aGlzLl9maWxlc1RvUmVuYW1lLnZhbHVlcygpKSB7CiAgICAgICAgICBzd2l0Y2ggKHApIHsKICAgICAgICAgICAgY2FzZSBmcm9tOgogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKShmYWxzZSk7CiAgICAgICAgICAgIGNhc2UgdG86CiAgICAgICAgICAgICAgcmV0dXJuICgwLCByeGpzXzEub2YpKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5faG9zdC5leGlzdHMocCk7CiAgICAgIH0KICAgICAgX292ZXJ3cml0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9VcGRhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX2NyZWF0ZUZpbGUocGF0aCwgY29udGVudCkgewogICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuc2V0KHBhdGgsIGNvbnRlbnQpOwogICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgIH0KICAgICAgX3JlbmFtZUZpbGUoZnJvbSwgdG8pIHsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmFkZChbZnJvbSwgdG9dKTsKICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kZWxldGVGaWxlKHBhdGgpIHsKICAgICAgICBpZiAodGhpcy5fZmlsZXNUb0NyZWF0ZS5oYXMocGF0aCkpIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9DcmVhdGUuZGVsZXRlKHBhdGgpOwogICAgICAgICAgdGhpcy5fZmlsZXNUb1VwZGF0ZS5kZWxldGUocGF0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuYWRkKHBhdGgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gcnhqc18xLkVNUFRZOwogICAgICB9CiAgICAgIF9kb25lKCkgewogICAgICAgIHJldHVybiAoMCwgcnhqc18xLmNvbmNhdCkoKDAsIHJ4anNfMS5mcm9tKShbLi4udGhpcy5fZmlsZXNUb0RlbGV0ZS52YWx1ZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChwYXRoKSA9PiB0aGlzLl9ob3N0LmRlbGV0ZShwYXRoKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvUmVuYW1lLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbXywgW3BhdGgsIHRvXV0pID0+IHRoaXMuX2hvc3QucmVuYW1lKHBhdGgsIHRvKSkpLCAoMCwgcnhqc18xLmZyb20pKFsuLi50aGlzLl9maWxlc1RvQ3JlYXRlLmVudHJpZXMoKV0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChbcGF0aCwgYnVmZmVyXSkgPT4gdGhpcy5faG9zdC53cml0ZShwYXRoLCBidWZmZXIpKSksICgwLCByeGpzXzEuZnJvbSkoWy4uLnRoaXMuX2ZpbGVzVG9VcGRhdGUuZW50cmllcygpXSkucGlwZSgoMCwgcnhqc18xLmNvbmNhdE1hcCkoKFtwYXRoLCBidWZmZXJdKSA9PiB0aGlzLl9ob3N0LndyaXRlKHBhdGgsIGJ1ZmZlcikpKSkucGlwZSgoMCwgcnhqc18xLnJlZHVjZSkoKCkgPT4gewogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkhvc3RTaW5rID0gSG9zdFNpbms7CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qcwp2YXIgcmVxdWlyZV9kcnlydW4gPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3NpbmsvZHJ5cnVuLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5EcnlSdW5TaW5rID0gdm9pZCAwOwogICAgdmFyIGNvcmVfMSA9IHJlcXVpcmVfc3JjKCk7CiAgICB2YXIgbm9kZV8xID0gcmVxdWlyZV9ub2RlKCk7CiAgICB2YXIgcnhqc18xID0gcmVxdWlyZV9janMoKTsKICAgIHZhciBob3N0XzEgPSByZXF1aXJlX2hvc3Q0KCk7CiAgICB2YXIgRHJ5UnVuU2luayA9IGNsYXNzIGV4dGVuZHMgaG9zdF8xLkhvc3RTaW5rIHsKICAgICAgX3N1YmplY3QgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2ZpbGVEb2VzTm90RXhpc3RFeGNlcHRpb25TZXQgPSAvKiBAX19QVVJFX18gKi8gbmV3IFNldCgpOwogICAgICBfZmlsZUFscmVhZHlFeGlzdEV4Y2VwdGlvblNldCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgU2V0KCk7CiAgICAgIHJlcG9ydGVyID0gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTsKICAgICAgY29uc3RydWN0b3IoaG9zdCwgZm9yY2UgPSBmYWxzZSkgewogICAgICAgIHN1cGVyKHR5cGVvZiBob3N0ID09ICJzdHJpbmciID8gbmV3IGNvcmVfMS52aXJ0dWFsRnMuU2NvcGVkSG9zdChuZXcgbm9kZV8xLk5vZGVKc1N5bmNIb3N0KCksICgwLCBjb3JlXzEubm9ybWFsaXplKShob3N0KSkgOiBob3N0LCBmb3JjZSk7CiAgICAgIH0KICAgICAgX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb24ocGF0aCkgewogICAgICAgIHRoaXMuX2ZpbGVBbHJlYWR5RXhpc3RFeGNlcHRpb25TZXQuYWRkKHBhdGgpOwogICAgICB9CiAgICAgIF9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uKHBhdGgpIHsKICAgICAgICB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmFkZChwYXRoKTsKICAgICAgfQogICAgICBfZG9uZSgpIHsKICAgICAgICB0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmZvckVhY2goKHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7CiAgICAgICAgICAgIGtpbmQ6ICJlcnJvciIsCiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAiYWxyZWFkeUV4aXN0IiwKICAgICAgICAgICAgcGF0aAogICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5fZmlsZURvZXNOb3RFeGlzdEV4Y2VwdGlvblNldC5mb3JFYWNoKChwYXRoKSA9PiB7CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoewogICAgICAgICAgICBraW5kOiAiZXJyb3IiLAogICAgICAgICAgICBkZXNjcmlwdGlvbjogImRvZXNOb3RFeGlzdCIsCiAgICAgICAgICAgIHBhdGgKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX2ZpbGVzVG9EZWxldGUuZm9yRWFjaCgocGF0aCkgPT4gewogICAgICAgICAgZm9yIChjb25zdCBbZnJvbV0gb2YgdGhpcy5fZmlsZXNUb1JlbmFtZSkgewogICAgICAgICAgICBpZiAoZnJvbSA9PSBwYXRoKSB7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiZGVsZXRlIiwgcGF0aCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvUmVuYW1lLmZvckVhY2goKFtwYXRoLCB0b10pID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJyZW5hbWUiLCBwYXRoLCB0byB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvQ3JlYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIGZvciAoY29uc3QgWywgdG9dIG9mIHRoaXMuX2ZpbGVzVG9SZW5hbWUpIHsKICAgICAgICAgICAgaWYgKHRvID09IHBhdGgpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmICh0aGlzLl9maWxlQWxyZWFkeUV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSB8fCB0aGlzLl9maWxlRG9lc05vdEV4aXN0RXhjZXB0aW9uU2V0LmhhcyhwYXRoKSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9zdWJqZWN0Lm5leHQoeyBraW5kOiAiY3JlYXRlIiwgcGF0aCwgY29udGVudCB9KTsKICAgICAgICB9KTsKICAgICAgICB0aGlzLl9maWxlc1RvVXBkYXRlLmZvckVhY2goKGNvbnRlbnQsIHBhdGgpID0+IHsKICAgICAgICAgIHRoaXMuX3N1YmplY3QubmV4dCh7IGtpbmQ6ICJ1cGRhdGUiLCBwYXRoLCBjb250ZW50IH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuX3N1YmplY3QuY29tcGxldGUoKTsKICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5vZikodm9pZCAwKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkRyeVJ1blNpbmsgPSBEcnlSdW5TaW5rOwogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qcwp2YXIgcmVxdWlyZV9iYXNlID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9iYXNlLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5CYXNlV29ya2Zsb3cgPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGVuZ2luZV8xID0gcmVxdWlyZV9lbmdpbmUyKCk7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIHZhciBmb3JtYXRzXzEgPSByZXF1aXJlX2Zvcm1hdHMyKCk7CiAgICB2YXIgZHJ5cnVuXzEgPSByZXF1aXJlX2RyeXJ1bigpOwogICAgdmFyIGhvc3RfMSA9IHJlcXVpcmVfaG9zdDQoKTsKICAgIHZhciBob3N0X3RyZWVfMSA9IHJlcXVpcmVfaG9zdF90cmVlKCk7CiAgICB2YXIgQmFzZVdvcmtmbG93ID0gY2xhc3MgewogICAgICBfZW5naW5lOwogICAgICBfZW5naW5lSG9zdDsKICAgICAgX3JlZ2lzdHJ5OwogICAgICBfaG9zdDsKICAgICAgX3JlcG9ydGVyID0gbmV3IHJ4anNfMS5TdWJqZWN0KCk7CiAgICAgIF9saWZlQ3ljbGUgPSBuZXcgcnhqc18xLlN1YmplY3QoKTsKICAgICAgX2NvbnRleHQ7CiAgICAgIF9mb3JjZTsKICAgICAgX2RyeVJ1bjsKICAgICAgY29uc3RydWN0b3Iob3B0aW9ucykgewogICAgICAgIHRoaXMuX2hvc3QgPSBvcHRpb25zLmhvc3Q7CiAgICAgICAgdGhpcy5fZW5naW5lSG9zdCA9IG9wdGlvbnMuZW5naW5lSG9zdDsKICAgICAgICBpZiAob3B0aW9ucy5yZWdpc3RyeSkgewogICAgICAgICAgdGhpcy5fcmVnaXN0cnkgPSBvcHRpb25zLnJlZ2lzdHJ5OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLl9yZWdpc3RyeSA9IG5ldyBjb3JlXzEuc2NoZW1hLkNvcmVTY2hlbWFSZWdpc3RyeShmb3JtYXRzXzEuc3RhbmRhcmRGb3JtYXRzKTsKICAgICAgICAgIHRoaXMuX3JlZ2lzdHJ5LmFkZFBvc3RUcmFuc2Zvcm0oY29yZV8xLnNjaGVtYS50cmFuc2Zvcm1zLmFkZFVuZGVmaW5lZERlZmF1bHRzKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5fZW5naW5lID0gbmV3IGVuZ2luZV8xLlNjaGVtYXRpY0VuZ2luZSh0aGlzLl9lbmdpbmVIb3N0LCB0aGlzKTsKICAgICAgICB0aGlzLl9jb250ZXh0ID0gW107CiAgICAgICAgdGhpcy5fZm9yY2UgPSBvcHRpb25zLmZvcmNlIHx8IGZhbHNlOwogICAgICAgIHRoaXMuX2RyeVJ1biA9IG9wdGlvbnMuZHJ5UnVuIHx8IGZhbHNlOwogICAgICB9CiAgICAgIGdldCBjb250ZXh0KCkgewogICAgICAgIGNvbnN0IG1heWJlQ29udGV4dCA9IHRoaXMuX2NvbnRleHRbdGhpcy5fY29udGV4dC5sZW5ndGggLSAxXTsKICAgICAgICBpZiAoIW1heWJlQ29udGV4dCkgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IGNvbnRleHQgd2hlbiB3b3JrZmxvdyBpcyBub3QgZXhlY3V0aW5nLi4uIik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXliZUNvbnRleHQ7CiAgICAgIH0KICAgICAgZ2V0IGVuZ2luZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fZW5naW5lOwogICAgICB9CiAgICAgIGdldCBlbmdpbmVIb3N0KCkgewogICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmVIb3N0OwogICAgICB9CiAgICAgIGdldCByZWdpc3RyeSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5fcmVnaXN0cnk7CiAgICAgIH0KICAgICAgZ2V0IHJlcG9ydGVyKCkgewogICAgICAgIHJldHVybiB0aGlzLl9yZXBvcnRlci5hc09ic2VydmFibGUoKTsKICAgICAgfQogICAgICBnZXQgbGlmZUN5Y2xlKCkgewogICAgICAgIHJldHVybiB0aGlzLl9saWZlQ3ljbGUuYXNPYnNlcnZhYmxlKCk7CiAgICAgIH0KICAgICAgX2NyZWF0ZVNpbmtzKCkgewogICAgICAgIGxldCBlcnJvciA9IGZhbHNlOwogICAgICAgIGNvbnN0IGRyeVJ1blNpbmsgPSBuZXcgZHJ5cnVuXzEuRHJ5UnVuU2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSk7CiAgICAgICAgY29uc3QgZHJ5UnVuU3Vic2NyaWJlciA9IGRyeVJ1blNpbmsucmVwb3J0ZXIuc3Vic2NyaWJlKChldmVudCkgPT4gewogICAgICAgICAgdGhpcy5fcmVwb3J0ZXIubmV4dChldmVudCk7CiAgICAgICAgICBlcnJvciA9IGVycm9yIHx8IGV2ZW50LmtpbmQgPT0gImVycm9yIjsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgZHJ5UnVuU2luaywKICAgICAgICAgIC8vIEFkZCBhIGN1c3RvbSBzaW5rIHRoYXQgY2xlYW4gb3Vyc2VsdmVzIGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgYW4gZXJyb3IgaGFwcGVuZWQuCiAgICAgICAgICB7CiAgICAgICAgICAgIGNvbW1pdCgpIHsKICAgICAgICAgICAgICBkcnlSdW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7CiAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS50aHJvd0Vycm9yKShuZXcgZXhjZXB0aW9uXzEuVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24oKSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIHJldHVybiAoMCwgcnhqc18xLm9mKSgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LAogICAgICAgICAgLy8gT25seSBhZGQgYSBIb3N0U2luayBpZiB0aGlzIGlzIG5vdCBhIGRyeVJ1bi4KICAgICAgICAgIC4uLiF0aGlzLl9kcnlSdW4gPyBbbmV3IGhvc3RfMS5Ib3N0U2luayh0aGlzLl9ob3N0LCB0aGlzLl9mb3JjZSldIDogW10KICAgICAgICBdOwogICAgICB9CiAgICAgIGV4ZWN1dGUob3B0aW9ucykgewogICAgICAgIGNvbnN0IHBhcmVudENvbnRleHQgPSB0aGlzLl9jb250ZXh0W3RoaXMuX2NvbnRleHQubGVuZ3RoIC0gMV07CiAgICAgICAgaWYgKCFwYXJlbnRDb250ZXh0KSB7CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJzdGFydCIgfSk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLl9lbmdpbmUuY3JlYXRlQ29sbGVjdGlvbihvcHRpb25zLmNvbGxlY3Rpb24pOwogICAgICAgIGNvbnN0IGFsbG93UHJpdmF0ZSA9IG9wdGlvbnMuYWxsb3dQcml2YXRlIHx8IHBhcmVudENvbnRleHQgJiYgcGFyZW50Q29udGV4dC5jb2xsZWN0aW9uID09PSBvcHRpb25zLmNvbGxlY3Rpb247CiAgICAgICAgY29uc3Qgc2NoZW1hdGljID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMob3B0aW9ucy5zY2hlbWF0aWMsIGFsbG93UHJpdmF0ZSk7CiAgICAgICAgY29uc3Qgc2lua3MgPSB0aGlzLl9jcmVhdGVTaW5rcygpOwogICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LXN0YXJ0IiB9KTsKICAgICAgICBjb25zdCBjb250ZXh0ID0gewogICAgICAgICAgLi4ub3B0aW9ucywKICAgICAgICAgIGRlYnVnOiBvcHRpb25zLmRlYnVnIHx8IGZhbHNlLAogICAgICAgICAgbG9nZ2VyOiBvcHRpb25zLmxvZ2dlciB8fCBwYXJlbnRDb250ZXh0ICYmIHBhcmVudENvbnRleHQubG9nZ2VyIHx8IG5ldyBjb3JlXzEubG9nZ2luZy5OdWxsTG9nZ2VyKCksCiAgICAgICAgICBwYXJlbnRDb250ZXh0CiAgICAgICAgfTsKICAgICAgICB0aGlzLl9jb250ZXh0LnB1c2goY29udGV4dCk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYy5jYWxsKG9wdGlvbnMub3B0aW9ucywgKDAsIHJ4anNfMS5vZikobmV3IGhvc3RfdHJlZV8xLkhvc3RUcmVlKHRoaXMuX2hvc3QpKSwgeyBsb2dnZXI6IGNvbnRleHQubG9nZ2VyIH0pLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKCh0cmVlKSA9PiB7CiAgICAgICAgICByZXR1cm4gKDAsIHJ4anNfMS5jb25jYXQpKCgwLCByeGpzXzEuZnJvbSkoc2lua3MpLnBpcGUoKDAsIHJ4anNfMS5jb25jYXRNYXApKChzaW5rKSA9PiBzaW5rLmNvbW1pdCh0cmVlKSksICgwLCByeGpzXzEuaWdub3JlRWxlbWVudHMpKCkpLCAoMCwgcnhqc18xLm9mKSh0cmVlKSk7CiAgICAgICAgfSksICgwLCByeGpzXzEuY29uY2F0TWFwKSgoKSA9PiB7CiAgICAgICAgICBpZiAodGhpcy5fZHJ5UnVuKSB7CiAgICAgICAgICAgIHJldHVybiByeGpzXzEuRU1QVFk7CiAgICAgICAgICB9CiAgICAgICAgICB0aGlzLl9saWZlQ3ljbGUubmV4dCh7IGtpbmQ6ICJwb3N0LXRhc2tzLXN0YXJ0IiB9KTsKICAgICAgICAgIHJldHVybiB0aGlzLl9lbmdpbmUuZXhlY3V0ZVBvc3RUYXNrcygpLnBpcGUoKDAsIHJ4anNfMS50YXApKHsgY29tcGxldGU6ICgpID0+IHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogInBvc3QtdGFza3MtZW5kIiB9KSB9KSwgKDAsIHJ4anNfMS5kZWZhdWx0SWZFbXB0eSkodm9pZCAwKSwgKDAsIHJ4anNfMS5sYXN0KSgpKTsKICAgICAgICB9KSwgKDAsIHJ4anNfMS50YXApKHsKICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7CiAgICAgICAgICAgIHRoaXMuX2xpZmVDeWNsZS5uZXh0KHsga2luZDogIndvcmtmbG93LWVuZCIgfSk7CiAgICAgICAgICAgIHRoaXMuX2NvbnRleHQucG9wKCk7CiAgICAgICAgICAgIGlmICh0aGlzLl9jb250ZXh0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgICAgICAgdGhpcy5fbGlmZUN5Y2xlLm5leHQoeyBraW5kOiAiZW5kIiB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkJhc2VXb3JrZmxvdyA9IEJhc2VXb3JrZmxvdzsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2ludGVyZmFjZS5qcwp2YXIgcmVxdWlyZV9pbnRlcmZhY2U1ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbnRlcmZhY2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3dvcmtmbG93L2luZGV4LmpzCnZhciByZXF1aXJlX3dvcmtmbG93ID0gX19jb21tb25KUyh7CiAgIi4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIHZhciBfX2NyZWF0ZUJpbmRpbmcgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2NyZWF0ZUJpbmRpbmcgfHwgKE9iamVjdC5jcmVhdGUgPyBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICB2YXIgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IobSwgayk7CiAgICAgIGlmICghZGVzYyB8fCAoImdldCIgaW4gZGVzYyA/ICFtLl9fZXNNb2R1bGUgOiBkZXNjLndyaXRhYmxlIHx8IGRlc2MuY29uZmlndXJhYmxlKSkgewogICAgICAgIGRlc2MgPSB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgICAgICByZXR1cm4gbVtrXTsKICAgICAgICB9IH07CiAgICAgIH0KICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCBkZXNjKTsKICAgIH0gOiBmdW5jdGlvbihvLCBtLCBrLCBrMikgewogICAgICBpZiAoazIgPT09IHZvaWQgMCkgazIgPSBrOwogICAgICBvW2syXSA9IG1ba107CiAgICB9KTsKICAgIHZhciBfX2V4cG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2V4cG9ydFN0YXIgfHwgZnVuY3Rpb24obSwgZXhwb3J0czMpIHsKICAgICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gImRlZmF1bHQiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0czMsIHApKSBfX2NyZWF0ZUJpbmRpbmcoZXhwb3J0czMsIG0sIHApOwogICAgfTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfYmFzZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9pbnRlcmZhY2U1KCksIGV4cG9ydHMyKTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMKdmFyIHJlcXVpcmVfYmFzZTIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL2Jhc2UuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLnNvdXJjZSA9IHNvdXJjZTsKICAgIGV4cG9ydHMyLmVtcHR5ID0gZW1wdHk7CiAgICBleHBvcnRzMi5jaGFpbiA9IGNoYWluMjsKICAgIGV4cG9ydHMyLmFwcGx5ID0gYXBwbHkzOwogICAgZXhwb3J0czIubWVyZ2VXaXRoID0gbWVyZ2VXaXRoMjsKICAgIGV4cG9ydHMyLm5vb3AgPSBub29wOwogICAgZXhwb3J0czIuZmlsdGVyID0gZmlsdGVyOwogICAgZXhwb3J0czIuYXNTb3VyY2UgPSBhc1NvdXJjZTsKICAgIGV4cG9ydHMyLmJyYW5jaEFuZE1lcmdlID0gYnJhbmNoQW5kTWVyZ2U7CiAgICBleHBvcnRzMi53aGVuID0gd2hlbjsKICAgIGV4cG9ydHMyLnBhcnRpdGlvbkFwcGx5TWVyZ2UgPSBwYXJ0aXRpb25BcHBseU1lcmdlOwogICAgZXhwb3J0czIuZm9yRWFjaCA9IGZvckVhY2g7CiAgICBleHBvcnRzMi5jb21wb3NlRmlsZU9wZXJhdG9ycyA9IGNvbXBvc2VGaWxlT3BlcmF0b3JzOwogICAgZXhwb3J0czIuYXBwbHlUb1N1YnRyZWUgPSBhcHBseVRvU3VidHJlZTsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGV4Y2VwdGlvbl8xID0gcmVxdWlyZV9leGNlcHRpb24yKCk7CiAgICB2YXIgaG9zdF90cmVlXzEgPSByZXF1aXJlX2hvc3RfdHJlZSgpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc2NvcGVkXzEgPSByZXF1aXJlX3Njb3BlZDIoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgY2FsbF8xID0gcmVxdWlyZV9jYWxsKCk7CiAgICBmdW5jdGlvbiBzb3VyY2UodHJlZSkgewogICAgICByZXR1cm4gKCkgPT4gdHJlZTsKICAgIH0KICAgIGZ1bmN0aW9uIGVtcHR5KCkgewogICAgICByZXR1cm4gKCkgPT4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgfQogICAgZnVuY3Rpb24gY2hhaW4yKHJ1bGVzKSB7CiAgICAgIHJldHVybiBhc3luYyAoaW5pdGlhbFRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBsZXQgaW50ZXJtZWRpYXRlVHJlZTsKICAgICAgICBpZiAoU3ltYm9sLmFzeW5jSXRlcmF0b3IgaW4gcnVsZXMpIHsKICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykgewogICAgICAgICAgICBpbnRlcm1lZGlhdGVUcmVlID0gKDAsIGNhbGxfMS5jYWxsUnVsZSkocnVsZSwgaW50ZXJtZWRpYXRlVHJlZSA/PyBpbml0aWFsVHJlZSwgY29udGV4dCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAoKSA9PiBpbnRlcm1lZGlhdGVUcmVlOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gYXBwbHkzKHNvdXJjZTIsIHJ1bGVzKSB7CiAgICAgIHJldHVybiAoY29udGV4dCkgPT4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgKDAsIGNhbGxfMS5jYWxsU291cmNlKShzb3VyY2UyLCBjb250ZXh0KSwgY29udGV4dCk7CiAgICB9CiAgICBmdW5jdGlvbiBtZXJnZVdpdGgyKHNvdXJjZTIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIHJldHVybiAoMCwgY2FsbF8xLmNhbGxTb3VyY2UpKHNvdXJjZTIsIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChzb3VyY2VUcmVlKSA9PiB0cmVlLm1lcmdlKHNvdXJjZVRyZWUsIHN0cmF0ZWd5IHx8IGNvbnRleHQuc3RyYXRlZ3kpKSwgKDAsIHJ4anNfMS5tYXBUbykodHJlZSkpOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gbm9vcCgpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGZpbHRlcihwcmVkaWNhdGUpIHsKICAgICAgcmV0dXJuICh0cmVlKSA9PiB7CiAgICAgICAgaWYgKGhvc3RfdHJlZV8xLkhvc3RUcmVlLmlzSG9zdFRyZWUodHJlZSkpIHsKICAgICAgICAgIHJldHVybiBuZXcgaG9zdF90cmVlXzEuRmlsdGVySG9zdFRyZWUodHJlZSwgcHJlZGljYXRlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbl8xLlNjaGVtYXRpY3NFeGNlcHRpb24oIlRyZWUgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLiIpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGFzU291cmNlKHJ1bGUpIHsKICAgICAgcmV0dXJuIChjb250ZXh0KSA9PiAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlLCAoMCwgc3RhdGljXzEuZW1wdHkpKCksIGNvbnRleHQpOwogICAgfQogICAgZnVuY3Rpb24gYnJhbmNoQW5kTWVyZ2UocnVsZSwgc3RyYXRlZ3kgPSBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkRlZmF1bHQpIHsKICAgICAgcmV0dXJuICh0cmVlLCBjb250ZXh0KSA9PiB7CiAgICAgICAgcmV0dXJuICgwLCBjYWxsXzEuY2FsbFJ1bGUpKHJ1bGUsIHRyZWUuYnJhbmNoKCksIGNvbnRleHQpLnBpcGUoKDAsIHJ4anNfMS5tYXApKChicmFuY2gpID0+IHRyZWUubWVyZ2UoYnJhbmNoLCBzdHJhdGVneSB8fCBjb250ZXh0LnN0cmF0ZWd5KSksICgwLCByeGpzXzEubWFwVG8pKHRyZWUpKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHdoZW4ocHJlZGljYXRlLCBvcGVyYXRvcikgewogICAgICByZXR1cm4gKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKHByZWRpY2F0ZShlbnRyeS5wYXRoLCBlbnRyeSkpIHsKICAgICAgICAgIHJldHVybiBvcGVyYXRvcihlbnRyeSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHJldHVybiBlbnRyeTsKICAgICAgICB9CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBwYXJ0aXRpb25BcHBseU1lcmdlKHByZWRpY2F0ZSwgcnVsZVllcywgcnVsZU5vKSB7CiAgICAgIHJldHVybiAodHJlZSwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IFt5ZXMsIG5vXSA9ICgwLCBzdGF0aWNfMS5wYXJ0aXRpb24pKHRyZWUsIHByZWRpY2F0ZSk7CiAgICAgICAgcmV0dXJuICgwLCByeGpzXzEuY29uY2F0KSgoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlWWVzLCB5ZXMsIGNvbnRleHQpLCAoMCwgY2FsbF8xLmNhbGxSdWxlKShydWxlTm8gfHwgbm9vcCgpLCBubywgY29udGV4dCkpLnBpcGUoKDAsIHJ4anNfMS50b0FycmF5KSgpLCAoMCwgcnhqc18xLm1hcCkoKFt5ZXNUcmVlLCBub1RyZWVdKSA9PiB7CiAgICAgICAgICB5ZXNUcmVlLm1lcmdlKG5vVHJlZSwgY29udGV4dC5zdHJhdGVneSk7CiAgICAgICAgICByZXR1cm4geWVzVHJlZTsKICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBmb3JFYWNoKG9wZXJhdG9yKSB7CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIHRyZWUudmlzaXQoKHBhdGgsIGVudHJ5KSA9PiB7CiAgICAgICAgICBpZiAoIWVudHJ5KSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGNvbnN0IG5ld0VudHJ5ID0gb3BlcmF0b3IoZW50cnkpOwogICAgICAgICAgaWYgKG5ld0VudHJ5ID09PSBlbnRyeSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgICB9CiAgICAgICAgICBpZiAobmV3RW50cnkgPT09IG51bGwpIHsKICAgICAgICAgICAgdHJlZS5kZWxldGUocGF0aCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChuZXdFbnRyeS5wYXRoICE9IHBhdGgpIHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgbmV3RW50cnkucGF0aCk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoIW5ld0VudHJ5LmNvbnRlbnQuZXF1YWxzKGVudHJ5LmNvbnRlbnQpKSB7CiAgICAgICAgICAgIHRyZWUub3ZlcndyaXRlKG5ld0VudHJ5LnBhdGgsIG5ld0VudHJ5LmNvbnRlbnQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gY29tcG9zZUZpbGVPcGVyYXRvcnMob3BlcmF0b3JzKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBsZXQgY3VycmVudCA9IGVudHJ5OwogICAgICAgIGZvciAoY29uc3Qgb3Agb2Ygb3BlcmF0b3JzKSB7CiAgICAgICAgICBjdXJyZW50ID0gb3AoY3VycmVudCk7CiAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN1cnJlbnQ7CiAgICAgIH07CiAgICB9CiAgICBmdW5jdGlvbiBhcHBseVRvU3VidHJlZShwYXRoLCBydWxlcykgewogICAgICByZXR1cm4gKHRyZWUsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBzY29wZWQgPSBuZXcgc2NvcGVkXzEuU2NvcGVkVHJlZSh0cmVlLCBwYXRoKTsKICAgICAgICByZXR1cm4gKDAsIGNhbGxfMS5jYWxsUnVsZSkoY2hhaW4yKHJ1bGVzKSwgc2NvcGVkLCBjb250ZXh0KS5waXBlKCgwLCByeGpzXzEubWFwKSgocmVzdWx0KSA9PiB7CiAgICAgICAgICBpZiAocmVzdWx0ID09PSBzY29wZWQpIHsKICAgICAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uXzEuU2NoZW1hdGljc0V4Y2VwdGlvbignT3JpZ2luYWwgdHJlZSBtdXN0IGJlIHJldHVybmVkIGZyb20gYWxsIHJ1bGVzIHdoZW4gdXNpbmcgImFwcGx5VG9TdWJ0cmVlIi4nKTsKICAgICAgICAgIH0KICAgICAgICB9KSk7CiAgICAgIH07CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9tb3ZlLmpzCnZhciByZXF1aXJlX21vdmUgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL21vdmUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLm1vdmUgPSBtb3ZlMzsKICAgIHZhciBjb3JlXzEgPSByZXF1aXJlX3NyYygpOwogICAgdmFyIGJhc2VfMSA9IHJlcXVpcmVfYmFzZTIoKTsKICAgIGZ1bmN0aW9uIG1vdmUzKGZyb20sIHRvKSB7CiAgICAgIGlmICh0byA9PT0gdm9pZCAwKSB7CiAgICAgICAgdG8gPSBmcm9tOwogICAgICAgIGZyb20gPSAiLyI7CiAgICAgIH0KICAgICAgY29uc3QgZnJvbVBhdGggPSAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoIi8iICsgZnJvbSk7CiAgICAgIGNvbnN0IHRvUGF0aCA9ICgwLCBjb3JlXzEubm9ybWFsaXplKSgiLyIgKyB0byk7CiAgICAgIGlmIChmcm9tUGF0aCA9PT0gdG9QYXRoKSB7CiAgICAgICAgcmV0dXJuIGJhc2VfMS5ub29wOwogICAgICB9CiAgICAgIHJldHVybiAodHJlZSkgPT4gewogICAgICAgIGlmICh0cmVlLmV4aXN0cyhmcm9tUGF0aCkpIHsKICAgICAgICAgIHRyZWUucmVuYW1lKGZyb21QYXRoLCB0b1BhdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0cmVlLmdldERpcihmcm9tUGF0aCkudmlzaXQoKHBhdGgpID0+IHsKICAgICAgICAgICAgdHJlZS5yZW5hbWUocGF0aCwgKDAsIGNvcmVfMS5qb2luKSh0b1BhdGgsIHBhdGguc2xpY2UoZnJvbVBhdGgubGVuZ3RoKSkpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0cmVlOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzCnZhciByZXF1aXJlX3JhbmRvbSA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5kZWZhdWx0ID0gZGVmYXVsdF8xOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIGZ1bmN0aW9uIGdlbmVyYXRlU3RyaW5nT2ZMZW5ndGgobCkgewogICAgICByZXR1cm4gbmV3IEFycmF5KGwpLmZpbGwoMCkubWFwKChfeCkgPT4gewogICAgICAgIHJldHVybiAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI2KV07CiAgICAgIH0pLmpvaW4oIiIpOwogICAgfQogICAgZnVuY3Rpb24gcmFuZG9tKGZyb20sIHRvKSB7CiAgICAgIHJldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAodG8gLSBmcm9tKSkgKyBmcm9tOwogICAgfQogICAgZnVuY3Rpb24gZGVmYXVsdF8xKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICBjb25zdCByb290ID0gInJvb3QiIGluIG9wdGlvbnMgPyBvcHRpb25zLnJvb3QgOiAiLyI7CiAgICAgICAgY29uc3QgbWFwMiA9IG5ldyBob3N0X3RyZWVfMS5Ib3N0VHJlZSgpOwogICAgICAgIGNvbnN0IG5iRmlsZXMgPSAibXVsdGlGaWxlcyIgaW4gb3B0aW9ucyA/IHR5cGVvZiBvcHRpb25zLm11bHRpRmlsZXMgPT0gIm51bWJlciIgPyBvcHRpb25zLm11bHRpRmlsZXMgOiByYW5kb20oMiwgMTIpIDogMTsKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5iRmlsZXM7IGkrKykgewogICAgICAgICAgY29uc3QgcGF0aCA9ICJhL2IvYy9kL2UvZiIuc2xpY2UoTWF0aC5yYW5kb20oKSAqIDEwKTsKICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgyMCk7CiAgICAgICAgICBjb25zdCBjb250ZW50ID0gZ2VuZXJhdGVTdHJpbmdPZkxlbmd0aCgxMDApOwogICAgICAgICAgbWFwMi5jcmVhdGUocm9vdCArICIvIiArIHBhdGggKyAiLyIgKyBmaWxlTmFtZSwgY29udGVudCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBtYXAyOwogICAgICB9OwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvc2NoZW1hdGljLmpzCnZhciByZXF1aXJlX3NjaGVtYXRpYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3NjaGVtYXRpYy5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuZXh0ZXJuYWxTY2hlbWF0aWMgPSBleHRlcm5hbFNjaGVtYXRpYzsKICAgIGV4cG9ydHMyLnNjaGVtYXRpYyA9IHNjaGVtYXRpYzsKICAgIHZhciByeGpzXzEgPSByZXF1aXJlX2NqcygpOwogICAgdmFyIGludGVyZmFjZV8xID0gcmVxdWlyZV9pbnRlcmZhY2UzKCk7CiAgICB2YXIgc3RhdGljXzEgPSByZXF1aXJlX3N0YXRpYygpOwogICAgZnVuY3Rpb24gZXh0ZXJuYWxTY2hlbWF0aWMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIG9wdGlvbnMsIGV4ZWN1dGlvbk9wdGlvbnMpIHsKICAgICAgcmV0dXJuIChpbnB1dCwgY29udGV4dCkgPT4gewogICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb250ZXh0LmVuZ2luZS5jcmVhdGVDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lLCBjb250ZXh0LnNjaGVtYXRpYy5jb2xsZWN0aW9uKTsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIHNjaGVtYXRpYyhzY2hlbWF0aWNOYW1lLCBvcHRpb25zLCBleGVjdXRpb25PcHRpb25zKSB7CiAgICAgIHJldHVybiAoaW5wdXQsIGNvbnRleHQpID0+IHsKICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29udGV4dC5zY2hlbWF0aWMuY29sbGVjdGlvbjsKICAgICAgICBjb25zdCBzY2hlbWF0aWMyID0gY29sbGVjdGlvbi5jcmVhdGVTY2hlbWF0aWMoc2NoZW1hdGljTmFtZSwgdHJ1ZSk7CiAgICAgICAgcmV0dXJuIHNjaGVtYXRpYzIuY2FsbChvcHRpb25zLCAoMCwgcnhqc18xLm9mKSgoMCwgc3RhdGljXzEuYnJhbmNoKShpbnB1dCkpLCBjb250ZXh0LCBleGVjdXRpb25PcHRpb25zKS5waXBlKCgwLCByeGpzXzEubGFzdCkoKSwgKDAsIHJ4anNfMS5tYXApKCh4KSA9PiB7CiAgICAgICAgICBpbnB1dC5tZXJnZSh4LCBpbnRlcmZhY2VfMS5NZXJnZVN0cmF0ZWd5LkFsbG93T3ZlcndyaXRlQ29uZmxpY3QpOwogICAgICAgICAgcmV0dXJuIGlucHV0OwogICAgICAgIH0pKTsKICAgICAgfTsKICAgIH0KICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzCnZhciByZXF1aXJlX3RlbXBsYXRlMiA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdGVtcGxhdGUuanMiKGV4cG9ydHMyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0czIsICJfX2VzTW9kdWxlIiwgeyB2YWx1ZTogdHJ1ZSB9KTsKICAgIGV4cG9ydHMyLkludmFsaWRQaXBlRXhjZXB0aW9uID0gZXhwb3J0czIuVW5rbm93blBpcGVFeGNlcHRpb24gPSBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBleHBvcnRzMi5URU1QTEFURV9GSUxFTkFNRV9SRSA9IHZvaWQgMDsKICAgIGV4cG9ydHMyLmFwcGx5Q29udGVudFRlbXBsYXRlID0gYXBwbHlDb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5jb250ZW50VGVtcGxhdGUgPSBjb250ZW50VGVtcGxhdGU7CiAgICBleHBvcnRzMi5hcHBseVBhdGhUZW1wbGF0ZSA9IGFwcGx5UGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucGF0aFRlbXBsYXRlID0gcGF0aFRlbXBsYXRlOwogICAgZXhwb3J0czIucmVuYW1lVGVtcGxhdGVGaWxlcyA9IHJlbmFtZVRlbXBsYXRlRmlsZXM7CiAgICBleHBvcnRzMi50ZW1wbGF0ZSA9IHRlbXBsYXRlMzsKICAgIGV4cG9ydHMyLmFwcGx5VGVtcGxhdGVzID0gYXBwbHlUZW1wbGF0ZXM7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIHZhciBub2RlX29zXzEgPSByZXF1aXJlKCJub2RlOm9zIik7CiAgICB2YXIgYmFzZV8xID0gcmVxdWlyZV9iYXNlMigpOwogICAgZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUgPSAvXC50ZW1wbGF0ZSQvOwogICAgdmFyIE9wdGlvbklzTm90RGVmaW5lZEV4Y2VwdGlvbiA9IGNsYXNzIGV4dGVuZHMgY29yZV8xLkJhc2VFeGNlcHRpb24gewogICAgICBjb25zdHJ1Y3RvcihuYW1lKSB7CiAgICAgICAgc3VwZXIoYE9wdGlvbiAiJHtuYW1lfSIgaXMgbm90IGRlZmluZWQuYCk7CiAgICAgIH0KICAgIH07CiAgICBleHBvcnRzMi5PcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24gPSBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb247CiAgICB2YXIgVW5rbm93blBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBub3QgZGVmaW5lZC5gKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLlVua25vd25QaXBlRXhjZXB0aW9uID0gVW5rbm93blBpcGVFeGNlcHRpb247CiAgICB2YXIgSW52YWxpZFBpcGVFeGNlcHRpb24gPSBjbGFzcyBleHRlbmRzIGNvcmVfMS5CYXNlRXhjZXB0aW9uIHsKICAgICAgY29uc3RydWN0b3IobmFtZSkgewogICAgICAgIHN1cGVyKGBQaXBlICIke25hbWV9IiBpcyBpbnZhbGlkLmApOwogICAgICB9CiAgICB9OwogICAgZXhwb3J0czIuSW52YWxpZFBpcGVFeGNlcHRpb24gPSBJbnZhbGlkUGlwZUV4Y2VwdGlvbjsKICAgIHZhciBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCJ1dGYtOCIsIHsgZmF0YWw6IHRydWUgfSk7CiAgICBmdW5jdGlvbiBhcHBseUNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoZW50cnkpID0+IHsKICAgICAgICBjb25zdCB7IHBhdGgsIGNvbnRlbnQgfSA9IGVudHJ5OwogICAgICAgIHRyeSB7CiAgICAgICAgICBjb25zdCBkZWNvZGVkQ29udGVudCA9IGRlY29kZXIuZGVjb2RlKGNvbnRlbnQpLnJlcGxhY2UoL1xyP1xuL2csIG5vZGVfb3NfMS5FT0wpOwogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgcGF0aCwKICAgICAgICAgICAgY29udGVudDogQnVmZmVyLmZyb20oKDAsIGNvcmVfMS50ZW1wbGF0ZSkoZGVjb2RlZENvbnRlbnQsIHt9KShvcHRpb25zKSkKICAgICAgICAgIH07CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBUeXBlRXJyb3IgfHwgZS5jb2RlID09PSAiRVJSX0VOQ09ESU5HX0lOVkFMSURfRU5DT0RFRF9EQVRBIikgewogICAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgICB9CiAgICAgICAgICB0aHJvdyBlOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGZ1bmN0aW9uIGNvbnRlbnRUZW1wbGF0ZShvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmZvckVhY2gpKGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpKTsKICAgIH0KICAgIGZ1bmN0aW9uIGFwcGx5UGF0aFRlbXBsYXRlKGRhdGEsIG9wdGlvbnMgPSB7CiAgICAgIGludGVycG9sYXRpb25TdGFydDogIl9fIiwKICAgICAgaW50ZXJwb2xhdGlvbkVuZDogIl9fIiwKICAgICAgcGlwZVNlcGFyYXRvcjogIkAiCiAgICB9KSB7CiAgICAgIGNvbnN0IGlzID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uU3RhcnQ7CiAgICAgIGNvbnN0IGllID0gb3B0aW9ucy5pbnRlcnBvbGF0aW9uRW5kOwogICAgICBjb25zdCBpc0wgPSBpcy5sZW5ndGg7CiAgICAgIGNvbnN0IGllTCA9IGllLmxlbmd0aDsKICAgICAgcmV0dXJuIChlbnRyeSkgPT4gewogICAgICAgIGxldCBwYXRoID0gZW50cnkucGF0aDsKICAgICAgICBjb25zdCBjb250ZW50ID0gZW50cnkuY29udGVudDsKICAgICAgICBjb25zdCBvcmlnaW5hbCA9IHBhdGg7CiAgICAgICAgbGV0IHN0YXJ0ID0gcGF0aC5pbmRleE9mKGlzKTsKICAgICAgICBsZXQgZW5kID0gcGF0aC5pbmRleE9mKGllLCBzdGFydCArIGlzTCArIDEpOwogICAgICAgIHdoaWxlIChzdGFydCAhPSAtMSAmJiBlbmQgIT0gLTEpIHsKICAgICAgICAgIGNvbnN0IG1hdGNoID0gcGF0aC5zdWJzdHJpbmcoc3RhcnQgKyBpc0wsIGVuZCk7CiAgICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSBkYXRhW21hdGNoXTsKICAgICAgICAgIGlmICghb3B0aW9ucy5waXBlU2VwYXJhdG9yKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVwbGFjZW1lbnQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gcmVwbGFjZW1lbnQuY2FsbChkYXRhLCBvcmlnaW5hbCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKHJlcGxhY2VtZW50ID09PSB2b2lkIDApIHsKICAgICAgICAgICAgICB0aHJvdyBuZXcgT3B0aW9uSXNOb3REZWZpbmVkRXhjZXB0aW9uKG1hdGNoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3QgW25hbWUsIC4uLnBpcGVzXSA9IG1hdGNoLnNwbGl0KG9wdGlvbnMucGlwZVNlcGFyYXRvcik7CiAgICAgICAgICAgIHJlcGxhY2VtZW50ID0gZGF0YVtuYW1lXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiByZXBsYWNlbWVudCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSByZXBsYWNlbWVudC5jYWxsKGRhdGEsIG9yaWdpbmFsKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAocmVwbGFjZW1lbnQgPT09IHZvaWQgMCkgewogICAgICAgICAgICAgIHRocm93IG5ldyBPcHRpb25Jc05vdERlZmluZWRFeGNlcHRpb24obmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmVwbGFjZW1lbnQgPSBwaXBlcy5yZWR1Y2UoKGFjYywgcGlwZSkgPT4gewogICAgICAgICAgICAgIGlmICghcGlwZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFjYzsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCEocGlwZSBpbiBkYXRhKSkgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IFVua25vd25QaXBlRXhjZXB0aW9uKHBpcGUpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjb25zdCBwaXBlRm4gPSBkYXRhW3BpcGVdOwogICAgICAgICAgICAgIGlmICh0eXBlb2YgcGlwZUZuICE9ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkUGlwZUV4Y2VwdGlvbihwaXBlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgcmV0dXJuICIiICsgcGlwZUZuKGFjYyk7CiAgICAgICAgICAgIH0sICIiICsgcmVwbGFjZW1lbnQpOwogICAgICAgICAgfQogICAgICAgICAgcGF0aCA9IHBhdGguc3Vic3RyaW5nKDAsIHN0YXJ0KSArIHJlcGxhY2VtZW50ICsgcGF0aC5zdWJzdHJpbmcoZW5kICsgaWVMKTsKICAgICAgICAgIHN0YXJ0ID0gcGF0aC5pbmRleE9mKG9wdGlvbnMuaW50ZXJwb2xhdGlvblN0YXJ0KTsKICAgICAgICAgIGVuZCA9IHBhdGguaW5kZXhPZihvcHRpb25zLmludGVycG9sYXRpb25FbmQsIHN0YXJ0ICsgaXNMICsgMSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB7IHBhdGg6ICgwLCBjb3JlXzEubm9ybWFsaXplKShwYXRoKSwgY29udGVudCB9OwogICAgICB9OwogICAgfQogICAgZnVuY3Rpb24gcGF0aFRlbXBsYXRlKG9wdGlvbnMpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoYXBwbHlQYXRoVGVtcGxhdGUob3B0aW9ucykpOwogICAgfQogICAgZnVuY3Rpb24gcmVuYW1lVGVtcGxhdGVGaWxlcygpIHsKICAgICAgcmV0dXJuICgwLCBiYXNlXzEuZm9yRWFjaCkoKGVudHJ5KSA9PiB7CiAgICAgICAgaWYgKGVudHJ5LnBhdGgubWF0Y2goZXhwb3J0czIuVEVNUExBVEVfRklMRU5BTUVfUkUpKSB7CiAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICBjb250ZW50OiBlbnRyeS5jb250ZW50LAogICAgICAgICAgICBwYXRoOiAoMCwgY29yZV8xLm5vcm1hbGl6ZSkoZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikpCiAgICAgICAgICB9OwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICByZXR1cm4gZW50cnk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHRlbXBsYXRlMyhvcHRpb25zKSB7CiAgICAgIHJldHVybiAoMCwgYmFzZV8xLmNoYWluKShbCiAgICAgICAgY29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIEZvcmNlIGNhc3QgdG8gUGF0aFRlbXBsYXRlRGF0YS4gV2UgbmVlZCB0aGUgdHlwZSBmb3IgdGhlIGFjdHVhbCBwYXRoVGVtcGxhdGUoKSBjYWxsLAogICAgICAgIC8vIGJ1dCBpbiB0aGlzIGNhc2Ugd2UgY2Fubm90IGRvIGFueXRoaW5nIGFzIGNvbnRlbnRUZW1wbGF0ZSBhcmUgbW9yZSBwZXJtaXNzaXZlLgogICAgICAgIC8vIFNpbmNlIHZhbHVlcyBhcmUgY29lcmNlZCB0byBzdHJpbmdzIGluIFBhdGhUZW1wbGF0ZXMgaXQgd2lsbCBiZSBmaW5lIGluIHRoZSBlbmQuCiAgICAgICAgcGF0aFRlbXBsYXRlKG9wdGlvbnMpCiAgICAgIF0pOwogICAgfQogICAgZnVuY3Rpb24gYXBwbHlUZW1wbGF0ZXMob3B0aW9ucykgewogICAgICByZXR1cm4gKDAsIGJhc2VfMS5mb3JFYWNoKSgoMCwgYmFzZV8xLndoZW4pKChwYXRoKSA9PiBwYXRoLmVuZHNXaXRoKCIudGVtcGxhdGUiKSwgKDAsIGJhc2VfMS5jb21wb3NlRmlsZU9wZXJhdG9ycykoWwogICAgICAgIGFwcGx5Q29udGVudFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIC8vIFNlZSBhYm92ZSBmb3IgdGhpcyB3ZWlyZCBjYXN0LgogICAgICAgIGFwcGx5UGF0aFRlbXBsYXRlKG9wdGlvbnMpLAogICAgICAgIChlbnRyeSkgPT4gewogICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29udGVudDogZW50cnkuY29udGVudCwKICAgICAgICAgICAgcGF0aDogZW50cnkucGF0aC5yZXBsYWNlKGV4cG9ydHMyLlRFTVBMQVRFX0ZJTEVOQU1FX1JFLCAiIikKICAgICAgICAgIH07CiAgICAgICAgfQogICAgICBdKSkpOwogICAgfQogIH0KfSk7CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzCnZhciByZXF1aXJlX3VybCA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvdXJsLmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi51cmwgPSB1cmwzOwogICAgdmFyIHVybF8xID0gcmVxdWlyZSgidXJsIik7CiAgICBmdW5jdGlvbiB1cmwzKHVybFN0cmluZykgewogICAgICBjb25zdCB1cmw0ID0gKDAsIHVybF8xLnBhcnNlKSh1cmxTdHJpbmcpOwogICAgICByZXR1cm4gKGNvbnRleHQpID0+IGNvbnRleHQuZW5naW5lLmNyZWF0ZVNvdXJjZUZyb21VcmwodXJsNCwgY29udGV4dCkoY29udGV4dCk7CiAgICB9CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL0Bhbmd1bGFyLWRldmtpdC1zY2hlbWF0aWNzLW5wbS0xOS4xLjUtZDgyOGI2MzU1NC0xMC56aXAvbm9kZV9tb2R1bGVzL0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2VtcHR5LmpzCnZhciByZXF1aXJlX2VtcHR5MyA9IF9fY29tbW9uSlMoewogICIuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9AYW5ndWxhci1kZXZraXQtc2NoZW1hdGljcy1ucG0tMTkuMS41LWQ4MjhiNjM1NTQtMTAuemlwL25vZGVfbW9kdWxlcy9AYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9lbXB0eS5qcyIoZXhwb3J0czIpIHsKICAgICJ1c2Ugc3RyaWN0IjsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIl9fZXNNb2R1bGUiLCB7IHZhbHVlOiB0cnVlIH0pOwogICAgZXhwb3J0czIuRW1wdHlUcmVlID0gdm9pZCAwOwogICAgdmFyIGhvc3RfdHJlZV8xID0gcmVxdWlyZV9ob3N0X3RyZWUoKTsKICAgIHZhciBFbXB0eVRyZWUgPSBjbGFzcyBleHRlbmRzIGhvc3RfdHJlZV8xLkhvc3RUcmVlIHsKICAgICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoKTsKICAgICAgfQogICAgfTsKICAgIGV4cG9ydHMyLkVtcHR5VHJlZSA9IEVtcHR5VHJlZTsKICB9Cn0pOwoKLy8gLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzCnZhciByZXF1aXJlX3NyYzIgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvQGFuZ3VsYXItZGV2a2l0LXNjaGVtYXRpY3MtbnBtLTE5LjEuNS1kODI4YjYzNTU0LTEwLnppcC9ub2RlX21vZHVsZXMvQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzIihleHBvcnRzMikgewogICAgInVzZSBzdHJpY3QiOwogICAgdmFyIF9fY3JlYXRlQmluZGluZyA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fY3JlYXRlQmluZGluZyB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIHZhciBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihtLCBrKTsKICAgICAgaWYgKCFkZXNjIHx8ICgiZ2V0IiBpbiBkZXNjID8gIW0uX19lc01vZHVsZSA6IGRlc2Mud3JpdGFibGUgfHwgZGVzYy5jb25maWd1cmFibGUpKSB7CiAgICAgICAgZGVzYyA9IHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsKICAgICAgICAgIHJldHVybiBtW2tdOwogICAgICAgIH0gfTsKICAgICAgfQogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIGRlc2MpOwogICAgfSA6IGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7CiAgICAgIGlmIChrMiA9PT0gdm9pZCAwKSBrMiA9IGs7CiAgICAgIG9bazJdID0gbVtrXTsKICAgIH0pOwogICAgdmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fc2V0TW9kdWxlRGVmYXVsdCB8fCAoT2JqZWN0LmNyZWF0ZSA/IGZ1bmN0aW9uKG8sIHYpIHsKICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sICJkZWZhdWx0IiwgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdiB9KTsKICAgIH0gOiBmdW5jdGlvbihvLCB2KSB7CiAgICAgIG9bImRlZmF1bHQiXSA9IHY7CiAgICB9KTsKICAgIHZhciBfX2ltcG9ydFN0YXIgPSBleHBvcnRzMiAmJiBleHBvcnRzMi5fX2ltcG9ydFN0YXIgfHwgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkgewogICAgICB2YXIgb3duS2V5cyA9IGZ1bmN0aW9uKG8pIHsKICAgICAgICBvd25LZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMgfHwgZnVuY3Rpb24obzIpIHsKICAgICAgICAgIHZhciBhciA9IFtdOwogICAgICAgICAgZm9yICh2YXIgayBpbiBvMikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvMiwgaykpIGFyW2FyLmxlbmd0aF0gPSBrOwogICAgICAgICAgcmV0dXJuIGFyOwogICAgICAgIH07CiAgICAgICAgcmV0dXJuIG93bktleXMobyk7CiAgICAgIH07CiAgICAgIHJldHVybiBmdW5jdGlvbihtb2QpIHsKICAgICAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kOwogICAgICAgIHZhciByZXN1bHQgPSB7fTsKICAgICAgICBpZiAobW9kICE9IG51bGwpIHsKICAgICAgICAgIGZvciAodmFyIGsgPSBvd25LZXlzKG1vZCksIGkgPSAwOyBpIDwgay5sZW5ndGg7IGkrKykgaWYgKGtbaV0gIT09ICJkZWZhdWx0IikgX19jcmVhdGVCaW5kaW5nKHJlc3VsdCwgbW9kLCBrW2ldKTsKICAgICAgICB9CiAgICAgICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICB9OwogICAgfSgpOwogICAgdmFyIF9fZXhwb3J0U3RhciA9IGV4cG9ydHMyICYmIGV4cG9ydHMyLl9fZXhwb3J0U3RhciB8fCBmdW5jdGlvbihtLCBleHBvcnRzMykgewogICAgICBmb3IgKHZhciBwIGluIG0pIGlmIChwICE9PSAiZGVmYXVsdCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzMywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzMywgbSwgcCk7CiAgICB9OwogICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMyLCAiX19lc01vZHVsZSIsIHsgdmFsdWU6IHRydWUgfSk7CiAgICBleHBvcnRzMi5UcmVlID0gZXhwb3J0czIud29ya2Zsb3cgPSBleHBvcnRzMi5zdHJpbmdzID0gZXhwb3J0czIuZm9ybWF0cyA9IGV4cG9ydHMyLlNjaGVtYXRpY3NFeGNlcHRpb24gPSB2b2lkIDA7CiAgICB2YXIgY29yZV8xID0gcmVxdWlyZV9zcmMoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgInN0cmluZ3MiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBjb3JlXzEuc3RyaW5nczsKICAgIH0gfSk7CiAgICB2YXIgZm9ybWF0cyA9IF9faW1wb3J0U3RhcihyZXF1aXJlX2Zvcm1hdHMyKCkpOwogICAgZXhwb3J0czIuZm9ybWF0cyA9IGZvcm1hdHM7CiAgICB2YXIgaW50ZXJmYWNlXzEgPSByZXF1aXJlX2ludGVyZmFjZTMoKTsKICAgIHZhciBzdGF0aWNfMSA9IHJlcXVpcmVfc3RhdGljKCk7CiAgICB2YXIgd29ya2Zsb3cgPSBfX2ltcG9ydFN0YXIocmVxdWlyZV93b3JrZmxvdygpKTsKICAgIGV4cG9ydHMyLndvcmtmbG93ID0gd29ya2Zsb3c7CiAgICB2YXIgZXhjZXB0aW9uXzEgPSByZXF1aXJlX2V4Y2VwdGlvbjIoKTsKICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzMiwgIlNjaGVtYXRpY3NFeGNlcHRpb24iLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBleGNlcHRpb25fMS5TY2hlbWF0aWNzRXhjZXB0aW9uOwogICAgfSB9KTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2FjdGlvbigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbmdpbmUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX2V4Y2VwdGlvbjIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaW50ZXJmYWNlMygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9iYXNlMigpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9jYWxsKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX21vdmUoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfcmFuZG9tKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYzIoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfdGVtcGxhdGUyKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3VybCgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kZWxlZ2F0ZSgpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9lbXB0eTMoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdF90cmVlKCksIGV4cG9ydHMyKTsKICAgIF9fZXhwb3J0U3RhcihyZXF1aXJlX3NjaGVtYXRpYygpLCBleHBvcnRzMik7CiAgICBfX2V4cG9ydFN0YXIocmVxdWlyZV9kcnlydW4oKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfaG9zdDQoKSwgZXhwb3J0czIpOwogICAgX19leHBvcnRTdGFyKHJlcXVpcmVfc2luaygpLCBleHBvcnRzMik7CiAgICBleHBvcnRzMi5UcmVlID0gewogICAgICBlbXB0eSgpIHsKICAgICAgICByZXR1cm4gKDAsIHN0YXRpY18xLmVtcHR5KSgpOwogICAgICB9LAogICAgICBicmFuY2godHJlZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEuYnJhbmNoKSh0cmVlKTsKICAgICAgfSwKICAgICAgbWVyZ2UodHJlZSwgb3RoZXIsIHN0cmF0ZWd5ID0gaW50ZXJmYWNlXzEuTWVyZ2VTdHJhdGVneS5EZWZhdWx0KSB7CiAgICAgICAgcmV0dXJuICgwLCBzdGF0aWNfMS5tZXJnZSkodHJlZSwgb3RoZXIsIHN0cmF0ZWd5KTsKICAgICAgfSwKICAgICAgcGFydGl0aW9uKHRyZWUsIHByZWRpY2F0ZSkgewogICAgICAgIHJldHVybiAoMCwgc3RhdGljXzEucGFydGl0aW9uKSh0cmVlLCBwcmVkaWNhdGUpOwogICAgICB9LAogICAgICBvcHRpbWl6ZSh0cmVlKSB7CiAgICAgICAgcmV0dXJuIHRyZWU7CiAgICAgIH0KICAgIH07CiAgfQp9KTsKCi8vIC4uLy4uLy4uLy55YXJuL2JlcnJ5L2NhY2hlL3N0cmlwLWpzb24tY29tbWVudHMtbnBtLTMuMS4xLWRjYjIzMjQ4MjMtMTAuemlwL25vZGVfbW9kdWxlcy9zdHJpcC1qc29uLWNvbW1lbnRzL2luZGV4LmpzCnZhciByZXF1aXJlX3N0cmlwX2pzb25fY29tbWVudHMgPSBfX2NvbW1vbkpTKHsKICAiLi4vLi4vLi4vLnlhcm4vYmVycnkvY2FjaGUvc3RyaXAtanNvbi1jb21tZW50cy1ucG0tMy4xLjEtZGNiMjMyNDgyMy0xMC56aXAvbm9kZV9tb2R1bGVzL3N0cmlwLWpzb24tY29tbWVudHMvaW5kZXguanMiKGV4cG9ydHMyLCBtb2R1bGUyKSB7CiAgICAidXNlIHN0cmljdCI7CiAgICB2YXIgc2luZ2xlQ29tbWVudCA9IFN5bWJvbCgic2luZ2xlQ29tbWVudCIpOwogICAgdmFyIG11bHRpQ29tbWVudCA9IFN5bWJvbCgibXVsdGlDb21tZW50Iik7CiAgICB2YXIgc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA9ICgpID0+ICIiOwogICAgdmFyIHN0cmlwV2l0aFdoaXRlc3BhY2UgPSAoc3RyaW5nLCBzdGFydCwgZW5kKSA9PiBzdHJpbmcuc2xpY2Uoc3RhcnQsIGVuZCkucmVwbGFjZSgvXFMvZywgIiAiKTsKICAgIHZhciBpc0VzY2FwZWQgPSAoanNvblN0cmluZywgcXVvdGVQb3NpdGlvbikgPT4gewogICAgICBsZXQgaW5kZXggPSBxdW90ZVBvc2l0aW9uIC0gMTsKICAgICAgbGV0IGJhY2tzbGFzaENvdW50ID0gMDsKICAgICAgd2hpbGUgKGpzb25TdHJpbmdbaW5kZXhdID09PSAiXFwiKSB7CiAgICAgICAgaW5kZXggLT0gMTsKICAgICAgICBiYWNrc2xhc2hDb3VudCArPSAxOwogICAgICB9CiAgICAgIHJldHVybiBCb29sZWFuKGJhY2tzbGFzaENvdW50ICUgMik7CiAgICB9OwogICAgbW9kdWxlMi5leHBvcnRzID0gKGpzb25TdHJpbmcsIG9wdGlvbnMgPSB7fSkgPT4gewogICAgICBpZiAodHlwZW9mIGpzb25TdHJpbmcgIT09ICJzdHJpbmciKSB7CiAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgRXhwZWN0ZWQgYXJndW1lbnQgXGBqc29uU3RyaW5nXGAgdG8gYmUgYSBcYHN0cmluZ1xgLCBnb3QgXGAke3R5cGVvZiBqc29uU3RyaW5nfVxgYCk7CiAgICAgIH0KICAgICAgY29uc3Qgc3RyaXAgPSBvcHRpb25zLndoaXRlc3BhY2UgPT09IGZhbHNlID8gc3RyaXBXaXRob3V0V2hpdGVzcGFjZSA6IHN0cmlwV2l0aFdoaXRlc3BhY2U7CiAgICAgIGxldCBpbnNpZGVTdHJpbmcgPSBmYWxzZTsKICAgICAgbGV0IGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgbGV0IG9mZnNldCA9IDA7CiAgICAgIGxldCByZXN1bHQgPSAiIjsKICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uU3RyaW5nLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgY29uc3QgY3VycmVudENoYXJhY3RlciA9IGpzb25TdHJpbmdbaV07CiAgICAgICAgY29uc3QgbmV4dENoYXJhY3RlciA9IGpzb25TdHJpbmdbaSArIDFdOwogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyID09PSAnIicpIHsKICAgICAgICAgIGNvbnN0IGVzY2FwZWQgPSBpc0VzY2FwZWQoanNvblN0cmluZywgaSk7CiAgICAgICAgICBpZiAoIWVzY2FwZWQpIHsKICAgICAgICAgICAgaW5zaWRlU3RyaW5nID0gIWluc2lkZVN0cmluZzsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGluc2lkZVN0cmluZykgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGlmICghaW5zaWRlQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIi8vIikgewogICAgICAgICAgcmVzdWx0ICs9IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0LCBpKTsKICAgICAgICAgIG9mZnNldCA9IGk7CiAgICAgICAgICBpbnNpZGVDb21tZW50ID0gc2luZ2xlQ29tbWVudDsKICAgICAgICAgIGkrKzsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IHNpbmdsZUNvbW1lbnQgJiYgY3VycmVudENoYXJhY3RlciArIG5leHRDaGFyYWN0ZXIgPT09ICJcclxuIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSk7CiAgICAgICAgICBvZmZzZXQgPSBpOwogICAgICAgICAgY29udGludWU7CiAgICAgICAgfSBlbHNlIGlmIChpbnNpZGVDb21tZW50ID09PSBzaW5nbGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgPT09ICJcbiIpIHsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBmYWxzZTsKICAgICAgICAgIHJlc3VsdCArPSBzdHJpcChqc29uU3RyaW5nLCBvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICB9IGVsc2UgaWYgKCFpbnNpZGVDb21tZW50ICYmIGN1cnJlbnRDaGFyYWN0ZXIgKyBuZXh0Q2hhcmFjdGVyID09PSAiLyoiKSB7CiAgICAgICAgICByZXN1bHQgKz0ganNvblN0cmluZy5zbGljZShvZmZzZXQsIGkpOwogICAgICAgICAgb2Zmc2V0ID0gaTsKICAgICAgICAgIGluc2lkZUNvbW1lbnQgPSBtdWx0aUNvbW1lbnQ7CiAgICAgICAgICBpKys7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9IGVsc2UgaWYgKGluc2lkZUNvbW1lbnQgPT09IG11bHRpQ29tbWVudCAmJiBjdXJyZW50Q2hhcmFjdGVyICsgbmV4dENoYXJhY3RlciA9PT0gIiovIikgewogICAgICAgICAgaSsrOwogICAgICAgICAgaW5zaWRlQ29tbWVudCA9IGZhbHNlOwogICAgICAgICAgcmVzdWx0ICs9IHN0cmlwKGpzb25TdHJpbmcsIG9mZnNldCwgaSArIDEpOwogICAgICAgICAgb2Zmc2V0ID0gaSArIDE7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHJlc3VsdCArIChpbnNpZGVDb21tZW50ID8gc3RyaXAoanNvblN0cmluZy5zbGljZShvZmZzZXQpKSA6IGpzb25TdHJpbmcuc2xpY2Uob2Zmc2V0KSk7CiAgICB9OwogIH0KfSk7CgovLyBzcmMvc2NoZW1hdGljL2luZGV4LnRzCnZhciBpbmRleF9leHBvcnRzID0ge307Cl9fZXhwb3J0KGluZGV4X2V4cG9ydHMsIHsKICBtYWluOiAoKSA9PiBtYWluCn0pOwptb2R1bGUuZXhwb3J0cyA9IF9fdG9Db21tb25KUyhpbmRleF9leHBvcnRzKTsKCi8vIHNyYy9zY2hlbWF0aWMvcHJvamVjdC9wcm9qZWN0LmZhY3RvcnkudHMKdmFyIGltcG9ydF9zY2hlbWF0aWNzOSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MxMSA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9qc29uLnV0aWxzLnRzCnZhciBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cyA9IF9fdG9FU00ocmVxdWlyZV9zdHJpcF9qc29uX2NvbW1lbnRzKCksIDEpOwp2YXIgc2VyaWFsaXplSnNvbiA9IChqc29uMikgPT4gYCR7SlNPTi5zdHJpbmdpZnkoanNvbjIsIG51bGwsIDIpfQpgOwp2YXIgcmVhZEpzb25JblRyZWUgPSAoaG9zdCwgcGF0aCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtwYXRofWApOwogIH0KICBjb25zdCBjb250ZW50cyA9ICgwLCBpbXBvcnRfc3RyaXBfanNvbl9jb21tZW50cy5kZWZhdWx0KShob3N0LnJlYWQocGF0aCk/LnRvU3RyaW5nKCJ1dGYtOCIpIHx8ICIiKTsKICB0cnkgewogICAgcmV0dXJuIEpTT04ucGFyc2UoY29udGVudHMpOwogIH0gY2F0Y2ggKGUpIHsKICAgIGNvbnN0IGVycm9yID0gZTsKICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlICR7cGF0aH06ICR7ZXJyb3IubWVzc2FnZX1gKTsKICB9Cn07CnZhciB1cGRhdGVKc29uSW5UcmVlID0gKHBhdGgsIGNhbGxiYWNrKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmICghaG9zdC5leGlzdHMocGF0aCkpIHsKICAgIGhvc3QuY3JlYXRlKHBhdGgsIHNlcmlhbGl6ZUpzb24oY2FsbGJhY2soe30sIGNvbnRleHQpKSk7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgaG9zdC5vdmVyd3JpdGUoCiAgICBwYXRoLAogICAgc2VyaWFsaXplSnNvbihjYWxsYmFjayhyZWFkSnNvbkluVHJlZShob3N0LCBwYXRoKSwgY29udGV4dCkpCiAgKTsKICByZXR1cm4gaG9zdDsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvdXRpbHMvdHNjb25maWcudXRpbHMudHMKdmFyIHVwZGF0ZVRzQ29uZmlnSW5UcmVlID0gKGNvbXBpbGVyT3B0aW9ucykgPT4gdXBkYXRlSnNvbkluVHJlZSgidHNjb25maWcuanNvbiIsICh0c2NvbmZpZykgPT4gKHsKICAuLi50c2NvbmZpZywKICBjb21waWxlck9wdGlvbnMKfSkpOwoKLy8gc3JjL3NjaGVtYXRpYy9ydWxlcy91cGRhdGUtdHMtY29uZmlnLnJ1bGUudHMKdmFyIHVwZGF0ZVRzQ29uZmlnUnVsZSA9IGFzeW5jICgpID0+IHsKICBjb25zdCB7IHRzQ29uZmlnIH0gPSBhd2FpdCBpbXBvcnQoIkBhdGxzL2NvZGUtcnVudGltZSIpOwogIHJldHVybiB1cGRhdGVUc0NvbmZpZ0luVHJlZSh7CiAgICAuLi50c0NvbmZpZy5jb21waWxlck9wdGlvbnMKICB9KTsKfTsKCi8vIHNyYy9zY2hlbWF0aWMvc291cmNlcy9nZW5lcmF0ZS1jb21tb24uc291cmNlLnRzCnZhciBpbXBvcnRfY29yZSA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljcyA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3MyID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczMgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNCA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgZ2VuZXJhdGVDb21tb25Tb3VyY2UgPSAob3B0aW9ucykgPT4gKDAsIGltcG9ydF9zY2hlbWF0aWNzLmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M0LnVybCkoIi4uL3RlbXBsYXRlcy9jb21tb24iKSwgWwogICgwLCBpbXBvcnRfc2NoZW1hdGljczIudGVtcGxhdGUpKHsKICAgIC4uLmltcG9ydF9jb3JlLnN0cmluZ3MsCiAgICAuLi5vcHRpb25zLAogICAgZG90OiAiLiIKICB9KSwKICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MzLm1vdmUpKCIuLyIpCl0pOwoKLy8gc3JjL3NjaGVtYXRpYy9zb3VyY2VzL2dlbmVyYXRlLXByb2plY3Qtc3BlY2lmaWMuc291cmNlLnRzCnZhciBpbXBvcnRfbm9kZV9mcyA9IHJlcXVpcmUoIm5vZGU6ZnMiKTsKdmFyIGltcG9ydF9ub2RlX3BhdGggPSByZXF1aXJlKCJub2RlOnBhdGgiKTsKdmFyIGltcG9ydF9jb3JlMiA9IF9fdG9FU00ocmVxdWlyZV9zcmMoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczUgPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGltcG9ydF9zY2hlbWF0aWNzNiA9IF9fdG9FU00ocmVxdWlyZV9zcmMyKCksIDEpOwp2YXIgaW1wb3J0X3NjaGVtYXRpY3M3ID0gX190b0VTTShyZXF1aXJlX3NyYzIoKSwgMSk7CnZhciBpbXBvcnRfc2NoZW1hdGljczggPSBfX3RvRVNNKHJlcXVpcmVfc3JjMigpLCAxKTsKdmFyIGdlbmVyYXRlUHJvamVjdFNwZWNpZmljU291cmNlID0gKG9wdGlvbnMpID0+IHsKICBjb25zdCB7IG5hbWU6IHByb2plY3ROYW1lIH0gPSBKU09OLnBhcnNlKAogICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG4vbm8tc3luYwogICAgKDAsIGltcG9ydF9ub2RlX2ZzLnJlYWRGaWxlU3luYykoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikob3B0aW9ucy5jd2QsICJwYWNrYWdlLmpzb24iKSwgInV0Zi04IikKICApOwogIHJldHVybiAoMCwgaW1wb3J0X3NjaGVtYXRpY3M1LmFwcGx5KSgoMCwgaW1wb3J0X3NjaGVtYXRpY3M2LnVybCkoKDAsIGltcG9ydF9ub2RlX3BhdGguam9pbikoIi4uL3RlbXBsYXRlcyIsIG9wdGlvbnMudHlwZSkpLCBbCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3M3LnRlbXBsYXRlKSh7CiAgICAgIC4uLmltcG9ydF9jb3JlMi5zdHJpbmdzLAogICAgICAuLi5vcHRpb25zLAogICAgICBwcm9qZWN0TmFtZSwKICAgICAgZG90OiAiLiIKICAgIH0pLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzOC5tb3ZlKSgiLi8iKQogIF0pOwp9OwoKLy8gc3JjL3NjaGVtYXRpYy91dGlscy9tZXJnZS1naXRpZ25vcmUtY29udGVudC51dGlscy50cwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19TVEFSVF9NQVJLRVIgPSAiIyByYWlqaW46YmVnaW4gcHJvamVjdC1zcGVjaWZpYyBnaXRpZ25vcmUiOwp2YXIgUFJPSkVDVF9TUEVDSUZJQ19FTkRfTUFSS0VSID0gIiMgcmFpamluOmVuZCBwcm9qZWN0LXNwZWNpZmljIGdpdGlnbm9yZSI7CnZhciBub3JtYWxpemVDb250ZW50ID0gKGNvbnRlbnQpID0+IGNvbnRlbnQucmVwbGFjZSgvXHJcbi9nLCAiXG4iKTsKdmFyIGdldE5vcm1hbGl6ZWRMaW5lcyA9IChjb250ZW50KSA9PiBub3JtYWxpemVDb250ZW50KGNvbnRlbnQpLnNwbGl0KCJcbiIpOwp2YXIgdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyA9IChsaW5lcykgPT4gewogIGNvbnN0IG5vcm1hbGl6ZWRMaW5lcyA9IFsuLi5saW5lc107CiAgd2hpbGUgKG5vcm1hbGl6ZWRMaW5lcy5sZW5ndGggPiAwICYmIG5vcm1hbGl6ZWRMaW5lc1tub3JtYWxpemVkTGluZXMubGVuZ3RoIC0gMV0gPT09ICIiKSB7CiAgICBub3JtYWxpemVkTGluZXMucG9wKCk7CiAgfQogIHJldHVybiBub3JtYWxpemVkTGluZXM7Cn07CnZhciBpc1Byb2plY3RTcGVjaWZpY0xpbmUgPSAobGluZSwgdGVtcGxhdGVMaW5lU2V0KSA9PiBsaW5lICE9PSAiIiAmJiAhdGVtcGxhdGVMaW5lU2V0LmhhcyhsaW5lKSAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX1NUQVJUX01BUktFUiAmJiBsaW5lICE9PSBQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVI7CnZhciBnZXRQcm9qZWN0U3BlY2lmaWNMaW5lcyA9IChleGlzdGluZ0xpbmVzLCB0ZW1wbGF0ZUxpbmVTZXQpID0+IHsKICBjb25zdCBzdGFydEluZGV4ID0gZXhpc3RpbmdMaW5lcy5pbmRleE9mKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBjb25zdCBlbmRJbmRleCA9IGV4aXN0aW5nTGluZXMuaW5kZXhPZihQUk9KRUNUX1NQRUNJRklDX0VORF9NQVJLRVIpOwogIGlmIChzdGFydEluZGV4ICE9PSAtMSAmJiBlbmRJbmRleCA+IHN0YXJ0SW5kZXgpIHsKICAgIHJldHVybiBBcnJheS5mcm9tKAogICAgICBuZXcgU2V0KGV4aXN0aW5nTGluZXMuZmlsdGVyKChsaW5lKSA9PiBpc1Byb2plY3RTcGVjaWZpY0xpbmUobGluZSwgdGVtcGxhdGVMaW5lU2V0KSkpCiAgICApOwogIH0KICByZXR1cm4gZXhpc3RpbmdMaW5lcy5maWx0ZXIoKGxpbmUpID0+IGlzUHJvamVjdFNwZWNpZmljTGluZShsaW5lLCB0ZW1wbGF0ZUxpbmVTZXQpKTsKfTsKdmFyIG1lcmdlR2l0SWdub3JlQ29udGVudCA9ICh7CiAgZXhpc3RpbmdDb250ZW50LAogIHRlbXBsYXRlQ29udGVudAp9KSA9PiB7CiAgY29uc3QgdGVtcGxhdGVMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyh0ZW1wbGF0ZUNvbnRlbnQpOwogIGNvbnN0IHRlbXBsYXRlTGluZVNldCA9IG5ldyBTZXQodGVtcGxhdGVMaW5lcyk7CiAgY29uc3QgZXhpc3RpbmdMaW5lcyA9IGdldE5vcm1hbGl6ZWRMaW5lcyhleGlzdGluZ0NvbnRlbnQpOwogIGNvbnN0IHByb2plY3RTcGVjaWZpY0xpbmVzID0gZ2V0UHJvamVjdFNwZWNpZmljTGluZXMoZXhpc3RpbmdMaW5lcywgdGVtcGxhdGVMaW5lU2V0KTsKICBpZiAocHJvamVjdFNwZWNpZmljTGluZXMubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gdHJpbVRyYWlsaW5nRW1wdHlMaW5lcyh0ZW1wbGF0ZUxpbmVzKS5qb2luKCJcbiIpOwogIH0KICBjb25zdCBtZXJnZWRMaW5lcyA9IHRyaW1UcmFpbGluZ0VtcHR5TGluZXModGVtcGxhdGVMaW5lcyk7CiAgaWYgKG1lcmdlZExpbmVzLmxlbmd0aCA+IDApIHsKICAgIG1lcmdlZExpbmVzLnB1c2goIiIpOwogIH0KICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfU1RBUlRfTUFSS0VSKTsKICBtZXJnZWRMaW5lcy5wdXNoKC4uLnByb2plY3RTcGVjaWZpY0xpbmVzKTsKICBtZXJnZWRMaW5lcy5wdXNoKFBST0pFQ1RfU1BFQ0lGSUNfRU5EX01BUktFUik7CiAgcmV0dXJuIG1lcmdlZExpbmVzLmpvaW4oIlxuIik7Cn07CgovLyAuLi8uLi8uLi8ueWFybi9iZXJyeS9jYWNoZS9qcy15YW1sLW5wbS00LjEuMC0zNjA2ZjMyMzEyLTEwLnppcC9ub2RlX21vZHVsZXMvanMteWFtbC9kaXN0L2pzLXlhbWwubWpzCmZ1bmN0aW9uIGlzTm90aGluZyhzdWJqZWN0KSB7CiAgcmV0dXJuIHR5cGVvZiBzdWJqZWN0ID09PSAidW5kZWZpbmVkIiB8fCBzdWJqZWN0ID09PSBudWxsOwp9CmZ1bmN0aW9uIGlzT2JqZWN0KHN1YmplY3QpIHsKICByZXR1cm4gdHlwZW9mIHN1YmplY3QgPT09ICJvYmplY3QiICYmIHN1YmplY3QgIT09IG51bGw7Cn0KZnVuY3Rpb24gdG9BcnJheShzZXF1ZW5jZSkgewogIGlmIChBcnJheS5pc0FycmF5KHNlcXVlbmNlKSkgcmV0dXJuIHNlcXVlbmNlOwogIGVsc2UgaWYgKGlzTm90aGluZyhzZXF1ZW5jZSkpIHJldHVybiBbXTsKICByZXR1cm4gW3NlcXVlbmNlXTsKfQpmdW5jdGlvbiBleHRlbmQodGFyZ2V0LCBzb3VyY2UpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwga2V5LCBzb3VyY2VLZXlzOwogIGlmIChzb3VyY2UpIHsKICAgIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsKICAgIH0KICB9CiAgcmV0dXJuIHRhcmdldDsKfQpmdW5jdGlvbiByZXBlYXQoc3RyaW5nLCBjb3VudCkgewogIHZhciByZXN1bHQgPSAiIiwgY3ljbGU7CiAgZm9yIChjeWNsZSA9IDA7IGN5Y2xlIDwgY291bnQ7IGN5Y2xlICs9IDEpIHsKICAgIHJlc3VsdCArPSBzdHJpbmc7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gaXNOZWdhdGl2ZVplcm8obnVtYmVyKSB7CiAgcmV0dXJuIG51bWJlciA9PT0gMCAmJiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IDEgLyBudW1iZXI7Cn0KdmFyIGlzTm90aGluZ18xID0gaXNOb3RoaW5nOwp2YXIgaXNPYmplY3RfMSA9IGlzT2JqZWN0Owp2YXIgdG9BcnJheV8xID0gdG9BcnJheTsKdmFyIHJlcGVhdF8xID0gcmVwZWF0Owp2YXIgaXNOZWdhdGl2ZVplcm9fMSA9IGlzTmVnYXRpdmVaZXJvOwp2YXIgZXh0ZW5kXzEgPSBleHRlbmQ7CnZhciBjb21tb24gPSB7CiAgaXNOb3RoaW5nOiBpc05vdGhpbmdfMSwKICBpc09iamVjdDogaXNPYmplY3RfMSwKICB0b0FycmF5OiB0b0FycmF5XzEsCiAgcmVwZWF0OiByZXBlYXRfMSwKICBpc05lZ2F0aXZlWmVybzogaXNOZWdhdGl2ZVplcm9fMSwKICBleHRlbmQ6IGV4dGVuZF8xCn07CmZ1bmN0aW9uIGZvcm1hdEVycm9yKGV4Y2VwdGlvbjIsIGNvbXBhY3QpIHsKICB2YXIgd2hlcmUgPSAiIiwgbWVzc2FnZSA9IGV4Y2VwdGlvbjIucmVhc29uIHx8ICIodW5rbm93biByZWFzb24pIjsKICBpZiAoIWV4Y2VwdGlvbjIubWFyaykgcmV0dXJuIG1lc3NhZ2U7CiAgaWYgKGV4Y2VwdGlvbjIubWFyay5uYW1lKSB7CiAgICB3aGVyZSArPSAnaW4gIicgKyBleGNlcHRpb24yLm1hcmsubmFtZSArICciICc7CiAgfQogIHdoZXJlICs9ICIoIiArIChleGNlcHRpb24yLm1hcmsubGluZSArIDEpICsgIjoiICsgKGV4Y2VwdGlvbjIubWFyay5jb2x1bW4gKyAxKSArICIpIjsKICBpZiAoIWNvbXBhY3QgJiYgZXhjZXB0aW9uMi5tYXJrLnNuaXBwZXQpIHsKICAgIHdoZXJlICs9ICJcblxuIiArIGV4Y2VwdGlvbjIubWFyay5zbmlwcGV0OwogIH0KICByZXR1cm4gbWVzc2FnZSArICIgIiArIHdoZXJlOwp9CmZ1bmN0aW9uIFlBTUxFeGNlcHRpb24kMShyZWFzb24sIG1hcmspIHsKICBFcnJvci5jYWxsKHRoaXMpOwogIHRoaXMubmFtZSA9ICJZQU1MRXhjZXB0aW9uIjsKICB0aGlzLnJlYXNvbiA9IHJlYXNvbjsKICB0aGlzLm1hcmsgPSBtYXJrOwogIHRoaXMubWVzc2FnZSA9IGZvcm1hdEVycm9yKHRoaXMsIGZhbHNlKTsKICBpZiAoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpIHsKICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpOwogIH0gZWxzZSB7CiAgICB0aGlzLnN0YWNrID0gbmV3IEVycm9yKCkuc3RhY2sgfHwgIiI7CiAgfQp9CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSk7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBZQU1MRXhjZXB0aW9uJDE7CllBTUxFeGNlcHRpb24kMS5wcm90b3R5cGUudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZyhjb21wYWN0KSB7CiAgcmV0dXJuIHRoaXMubmFtZSArICI6ICIgKyBmb3JtYXRFcnJvcih0aGlzLCBjb21wYWN0KTsKfTsKdmFyIGV4Y2VwdGlvbiA9IFlBTUxFeGNlcHRpb24kMTsKZnVuY3Rpb24gZ2V0TGluZShidWZmZXIsIGxpbmVTdGFydCwgbGluZUVuZCwgcG9zaXRpb24sIG1heExpbmVMZW5ndGgpIHsKICB2YXIgaGVhZCA9ICIiOwogIHZhciB0YWlsID0gIiI7CiAgdmFyIG1heEhhbGZMZW5ndGggPSBNYXRoLmZsb29yKG1heExpbmVMZW5ndGggLyAyKSAtIDE7CiAgaWYgKHBvc2l0aW9uIC0gbGluZVN0YXJ0ID4gbWF4SGFsZkxlbmd0aCkgewogICAgaGVhZCA9ICIgLi4uICI7CiAgICBsaW5lU3RhcnQgPSBwb3NpdGlvbiAtIG1heEhhbGZMZW5ndGggKyBoZWFkLmxlbmd0aDsKICB9CiAgaWYgKGxpbmVFbmQgLSBwb3NpdGlvbiA+IG1heEhhbGZMZW5ndGgpIHsKICAgIHRhaWwgPSAiIC4uLiI7CiAgICBsaW5lRW5kID0gcG9zaXRpb24gKyBtYXhIYWxmTGVuZ3RoIC0gdGFpbC5sZW5ndGg7CiAgfQogIHJldHVybiB7CiAgICBzdHI6IGhlYWQgKyBidWZmZXIuc2xpY2UobGluZVN0YXJ0LCBsaW5lRW5kKS5yZXBsYWNlKC9cdC9nLCAiXHUyMTkyIikgKyB0YWlsLAogICAgcG9zOiBwb3NpdGlvbiAtIGxpbmVTdGFydCArIGhlYWQubGVuZ3RoCiAgICAvLyByZWxhdGl2ZSBwb3NpdGlvbgogIH07Cn0KZnVuY3Rpb24gcGFkU3RhcnQoc3RyaW5nLCBtYXgpIHsKICByZXR1cm4gY29tbW9uLnJlcGVhdCgiICIsIG1heCAtIHN0cmluZy5sZW5ndGgpICsgc3RyaW5nOwp9CmZ1bmN0aW9uIG1ha2VTbmlwcGV0KG1hcmssIG9wdGlvbnMpIHsKICBvcHRpb25zID0gT2JqZWN0LmNyZWF0ZShvcHRpb25zIHx8IG51bGwpOwogIGlmICghbWFyay5idWZmZXIpIHJldHVybiBudWxsOwogIGlmICghb3B0aW9ucy5tYXhMZW5ndGgpIG9wdGlvbnMubWF4TGVuZ3RoID0gNzk7CiAgaWYgKHR5cGVvZiBvcHRpb25zLmluZGVudCAhPT0gIm51bWJlciIpIG9wdGlvbnMuaW5kZW50ID0gMTsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNCZWZvcmUgIT09ICJudW1iZXIiKSBvcHRpb25zLmxpbmVzQmVmb3JlID0gMzsKICBpZiAodHlwZW9mIG9wdGlvbnMubGluZXNBZnRlciAhPT0gIm51bWJlciIpIG9wdGlvbnMubGluZXNBZnRlciA9IDI7CiAgdmFyIHJlID0gL1xyP1xufFxyfFwwL2c7CiAgdmFyIGxpbmVTdGFydHMgPSBbMF07CiAgdmFyIGxpbmVFbmRzID0gW107CiAgdmFyIG1hdGNoOwogIHZhciBmb3VuZExpbmVObyA9IC0xOwogIHdoaWxlIChtYXRjaCA9IHJlLmV4ZWMobWFyay5idWZmZXIpKSB7CiAgICBsaW5lRW5kcy5wdXNoKG1hdGNoLmluZGV4KTsKICAgIGxpbmVTdGFydHMucHVzaChtYXRjaC5pbmRleCArIG1hdGNoWzBdLmxlbmd0aCk7CiAgICBpZiAobWFyay5wb3NpdGlvbiA8PSBtYXRjaC5pbmRleCAmJiBmb3VuZExpbmVObyA8IDApIHsKICAgICAgZm91bmRMaW5lTm8gPSBsaW5lU3RhcnRzLmxlbmd0aCAtIDI7CiAgICB9CiAgfQogIGlmIChmb3VuZExpbmVObyA8IDApIGZvdW5kTGluZU5vID0gbGluZVN0YXJ0cy5sZW5ndGggLSAxOwogIHZhciByZXN1bHQgPSAiIiwgaSwgbGluZTsKICB2YXIgbGluZU5vTGVuZ3RoID0gTWF0aC5taW4obWFyay5saW5lICsgb3B0aW9ucy5saW5lc0FmdGVyLCBsaW5lRW5kcy5sZW5ndGgpLnRvU3RyaW5nKCkubGVuZ3RoOwogIHZhciBtYXhMaW5lTGVuZ3RoID0gb3B0aW9ucy5tYXhMZW5ndGggLSAob3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzKTsKICBmb3IgKGkgPSAxOyBpIDw9IG9wdGlvbnMubGluZXNCZWZvcmU7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vIC0gaSA8IDApIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vIC0gaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vIC0gaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ID0gY29tbW9uLnJlcGVhdCgiICIsIG9wdGlvbnMuaW5kZW50KSArIHBhZFN0YXJ0KChtYXJrLmxpbmUgLSBpICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iICsgcmVzdWx0OwogIH0KICBsaW5lID0gZ2V0TGluZShtYXJrLmJ1ZmZlciwgbGluZVN0YXJ0c1tmb3VuZExpbmVOb10sIGxpbmVFbmRzW2ZvdW5kTGluZU5vXSwgbWFyay5wb3NpdGlvbiwgbWF4TGluZUxlbmd0aCk7CiAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgMSkudG9TdHJpbmcoKSwgbGluZU5vTGVuZ3RoKSArICIgfCAiICsgbGluZS5zdHIgKyAiXG4iOwogIHJlc3VsdCArPSBjb21tb24ucmVwZWF0KCItIiwgb3B0aW9ucy5pbmRlbnQgKyBsaW5lTm9MZW5ndGggKyAzICsgbGluZS5wb3MpICsgIl5cbiI7CiAgZm9yIChpID0gMTsgaSA8PSBvcHRpb25zLmxpbmVzQWZ0ZXI7IGkrKykgewogICAgaWYgKGZvdW5kTGluZU5vICsgaSA+PSBsaW5lRW5kcy5sZW5ndGgpIGJyZWFrOwogICAgbGluZSA9IGdldExpbmUoCiAgICAgIG1hcmsuYnVmZmVyLAogICAgICBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIGxpbmVFbmRzW2ZvdW5kTGluZU5vICsgaV0sCiAgICAgIG1hcmsucG9zaXRpb24gLSAobGluZVN0YXJ0c1tmb3VuZExpbmVOb10gLSBsaW5lU3RhcnRzW2ZvdW5kTGluZU5vICsgaV0pLAogICAgICBtYXhMaW5lTGVuZ3RoCiAgICApOwogICAgcmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIiAiLCBvcHRpb25zLmluZGVudCkgKyBwYWRTdGFydCgobWFyay5saW5lICsgaSArIDEpLnRvU3RyaW5nKCksIGxpbmVOb0xlbmd0aCkgKyAiIHwgIiArIGxpbmUuc3RyICsgIlxuIjsKICB9CiAgcmV0dXJuIHJlc3VsdC5yZXBsYWNlKC9cbiQvLCAiIik7Cn0KdmFyIHNuaXBwZXQgPSBtYWtlU25pcHBldDsKdmFyIFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUyA9IFsKICAia2luZCIsCiAgIm11bHRpIiwKICAicmVzb2x2ZSIsCiAgImNvbnN0cnVjdCIsCiAgImluc3RhbmNlT2YiLAogICJwcmVkaWNhdGUiLAogICJyZXByZXNlbnQiLAogICJyZXByZXNlbnROYW1lIiwKICAiZGVmYXVsdFN0eWxlIiwKICAic3R5bGVBbGlhc2VzIgpdOwp2YXIgWUFNTF9OT0RFX0tJTkRTID0gWwogICJzY2FsYXIiLAogICJzZXF1ZW5jZSIsCiAgIm1hcHBpbmciCl07CmZ1bmN0aW9uIGNvbXBpbGVTdHlsZUFsaWFzZXMobWFwMikgewogIHZhciByZXN1bHQgPSB7fTsKICBpZiAobWFwMiAhPT0gbnVsbCkgewogICAgT2JqZWN0LmtleXMobWFwMikuZm9yRWFjaChmdW5jdGlvbihzdHlsZSkgewogICAgICBtYXAyW3N0eWxlXS5mb3JFYWNoKGZ1bmN0aW9uKGFsaWFzKSB7CiAgICAgICAgcmVzdWx0W1N0cmluZyhhbGlhcyldID0gc3R5bGU7CiAgICAgIH0pOwogICAgfSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gVHlwZSQxKHRhZywgb3B0aW9ucykgewogIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9OwogIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goZnVuY3Rpb24obmFtZSkgewogICAgaWYgKFRZUEVfQ09OU1RSVUNUT1JfT1BUSU9OUy5pbmRleE9mKG5hbWUpID09PSAtMSkgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCdVbmtub3duIG9wdGlvbiAiJyArIG5hbWUgKyAnIiBpcyBtZXQgaW4gZGVmaW5pdGlvbiBvZiAiJyArIHRhZyArICciIFlBTUwgdHlwZS4nKTsKICAgIH0KICB9KTsKICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zOwogIHRoaXMudGFnID0gdGFnOwogIHRoaXMua2luZCA9IG9wdGlvbnNbImtpbmQiXSB8fCBudWxsOwogIHRoaXMucmVzb2x2ZSA9IG9wdGlvbnNbInJlc29sdmUiXSB8fCBmdW5jdGlvbigpIHsKICAgIHJldHVybiB0cnVlOwogIH07CiAgdGhpcy5jb25zdHJ1Y3QgPSBvcHRpb25zWyJjb25zdHJ1Y3QiXSB8fCBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YTsKICB9OwogIHRoaXMuaW5zdGFuY2VPZiA9IG9wdGlvbnNbImluc3RhbmNlT2YiXSB8fCBudWxsOwogIHRoaXMucHJlZGljYXRlID0gb3B0aW9uc1sicHJlZGljYXRlIl0gfHwgbnVsbDsKICB0aGlzLnJlcHJlc2VudCA9IG9wdGlvbnNbInJlcHJlc2VudCJdIHx8IG51bGw7CiAgdGhpcy5yZXByZXNlbnROYW1lID0gb3B0aW9uc1sicmVwcmVzZW50TmFtZSJdIHx8IG51bGw7CiAgdGhpcy5kZWZhdWx0U3R5bGUgPSBvcHRpb25zWyJkZWZhdWx0U3R5bGUiXSB8fCBudWxsOwogIHRoaXMubXVsdGkgPSBvcHRpb25zWyJtdWx0aSJdIHx8IGZhbHNlOwogIHRoaXMuc3R5bGVBbGlhc2VzID0gY29tcGlsZVN0eWxlQWxpYXNlcyhvcHRpb25zWyJzdHlsZUFsaWFzZXMiXSB8fCBudWxsKTsKICBpZiAoWUFNTF9OT0RFX0tJTkRTLmluZGV4T2YodGhpcy5raW5kKSA9PT0gLTEpIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oJ1Vua25vd24ga2luZCAiJyArIHRoaXMua2luZCArICciIGlzIHNwZWNpZmllZCBmb3IgIicgKyB0YWcgKyAnIiBZQU1MIHR5cGUuJyk7CiAgfQp9CnZhciB0eXBlID0gVHlwZSQxOwpmdW5jdGlvbiBjb21waWxlTGlzdChzY2hlbWEyLCBuYW1lKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIHNjaGVtYTJbbmFtZV0uZm9yRWFjaChmdW5jdGlvbihjdXJyZW50VHlwZSkgewogICAgdmFyIG5ld0luZGV4ID0gcmVzdWx0Lmxlbmd0aDsKICAgIHJlc3VsdC5mb3JFYWNoKGZ1bmN0aW9uKHByZXZpb3VzVHlwZSwgcHJldmlvdXNJbmRleCkgewogICAgICBpZiAocHJldmlvdXNUeXBlLnRhZyA9PT0gY3VycmVudFR5cGUudGFnICYmIHByZXZpb3VzVHlwZS5raW5kID09PSBjdXJyZW50VHlwZS5raW5kICYmIHByZXZpb3VzVHlwZS5tdWx0aSA9PT0gY3VycmVudFR5cGUubXVsdGkpIHsKICAgICAgICBuZXdJbmRleCA9IHByZXZpb3VzSW5kZXg7CiAgICAgIH0KICAgIH0pOwogICAgcmVzdWx0W25ld0luZGV4XSA9IGN1cnJlbnRUeXBlOwogIH0pOwogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gY29tcGlsZU1hcCgpIHsKICB2YXIgcmVzdWx0ID0gewogICAgc2NhbGFyOiB7fSwKICAgIHNlcXVlbmNlOiB7fSwKICAgIG1hcHBpbmc6IHt9LAogICAgZmFsbGJhY2s6IHt9LAogICAgbXVsdGk6IHsKICAgICAgc2NhbGFyOiBbXSwKICAgICAgc2VxdWVuY2U6IFtdLAogICAgICBtYXBwaW5nOiBbXSwKICAgICAgZmFsbGJhY2s6IFtdCiAgICB9CiAgfSwgaW5kZXgsIGxlbmd0aDsKICBmdW5jdGlvbiBjb2xsZWN0VHlwZSh0eXBlMikgewogICAgaWYgKHR5cGUyLm11bHRpKSB7CiAgICAgIHJlc3VsdC5tdWx0aVt0eXBlMi5raW5kXS5wdXNoKHR5cGUyKTsKICAgICAgcmVzdWx0Lm11bHRpWyJmYWxsYmFjayJdLnB1c2godHlwZTIpOwogICAgfSBlbHNlIHsKICAgICAgcmVzdWx0W3R5cGUyLmtpbmRdW3R5cGUyLnRhZ10gPSByZXN1bHRbImZhbGxiYWNrIl1bdHlwZTIudGFnXSA9IHR5cGUyOwogICAgfQogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gYXJndW1lbnRzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIGFyZ3VtZW50c1tpbmRleF0uZm9yRWFjaChjb2xsZWN0VHlwZSk7CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KZnVuY3Rpb24gU2NoZW1hJDEoZGVmaW5pdGlvbikgewogIHJldHVybiB0aGlzLmV4dGVuZChkZWZpbml0aW9uKTsKfQpTY2hlbWEkMS5wcm90b3R5cGUuZXh0ZW5kID0gZnVuY3Rpb24gZXh0ZW5kMihkZWZpbml0aW9uKSB7CiAgdmFyIGltcGxpY2l0ID0gW107CiAgdmFyIGV4cGxpY2l0ID0gW107CiAgaWYgKGRlZmluaXRpb24gaW5zdGFuY2VvZiB0eXBlKSB7CiAgICBleHBsaWNpdC5wdXNoKGRlZmluaXRpb24pOwogIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKSkgewogICAgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbik7CiAgfSBlbHNlIGlmIChkZWZpbml0aW9uICYmIChBcnJheS5pc0FycmF5KGRlZmluaXRpb24uaW1wbGljaXQpIHx8IEFycmF5LmlzQXJyYXkoZGVmaW5pdGlvbi5leHBsaWNpdCkpKSB7CiAgICBpZiAoZGVmaW5pdGlvbi5pbXBsaWNpdCkgaW1wbGljaXQgPSBpbXBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5pbXBsaWNpdCk7CiAgICBpZiAoZGVmaW5pdGlvbi5leHBsaWNpdCkgZXhwbGljaXQgPSBleHBsaWNpdC5jb25jYXQoZGVmaW5pdGlvbi5leHBsaWNpdCk7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNjaGVtYS5leHRlbmQgYXJndW1lbnQgc2hvdWxkIGJlIGEgVHlwZSwgWyBUeXBlIF0sIG9yIGEgc2NoZW1hIGRlZmluaXRpb24gKHsgaW1wbGljaXQ6IFsuLi5dLCBleHBsaWNpdDogWy4uLl0gfSkiKTsKICB9CiAgaW1wbGljaXQuZm9yRWFjaChmdW5jdGlvbih0eXBlJDEpIHsKICAgIGlmICghKHR5cGUkMSBpbnN0YW5jZW9mIHR5cGUpKSB7CiAgICAgIHRocm93IG5ldyBleGNlcHRpb24oIlNwZWNpZmllZCBsaXN0IG9mIFlBTUwgdHlwZXMgKG9yIGEgc2luZ2xlIFR5cGUgb2JqZWN0KSBjb250YWlucyBhIG5vbi1UeXBlIG9iamVjdC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubG9hZEtpbmQgJiYgdHlwZSQxLmxvYWRLaW5kICE9PSAic2NhbGFyIikgewogICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJUaGVyZSBpcyBhIG5vbi1zY2FsYXIgdHlwZSBpbiB0aGUgaW1wbGljaXQgbGlzdCBvZiBhIHNjaGVtYS4gSW1wbGljaXQgcmVzb2x2aW5nIG9mIHN1Y2ggdHlwZXMgaXMgbm90IHN1cHBvcnRlZC4iKTsKICAgIH0KICAgIGlmICh0eXBlJDEubXVsdGkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiVGhlcmUgaXMgYSBtdWx0aSB0eXBlIGluIHRoZSBpbXBsaWNpdCBsaXN0IG9mIGEgc2NoZW1hLiBNdWx0aSB0YWdzIGNhbiBvbmx5IGJlIGxpc3RlZCBhcyBleHBsaWNpdC4iKTsKICAgIH0KICB9KTsKICBleHBsaWNpdC5mb3JFYWNoKGZ1bmN0aW9uKHR5cGUkMSkgewogICAgaWYgKCEodHlwZSQxIGluc3RhbmNlb2YgdHlwZSkpIHsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigiU3BlY2lmaWVkIGxpc3Qgb2YgWUFNTCB0eXBlcyAob3IgYSBzaW5nbGUgVHlwZSBvYmplY3QpIGNvbnRhaW5zIGEgbm9uLVR5cGUgb2JqZWN0LiIpOwogICAgfQogIH0pOwogIHZhciByZXN1bHQgPSBPYmplY3QuY3JlYXRlKFNjaGVtYSQxLnByb3RvdHlwZSk7CiAgcmVzdWx0LmltcGxpY2l0ID0gKHRoaXMuaW1wbGljaXQgfHwgW10pLmNvbmNhdChpbXBsaWNpdCk7CiAgcmVzdWx0LmV4cGxpY2l0ID0gKHRoaXMuZXhwbGljaXQgfHwgW10pLmNvbmNhdChleHBsaWNpdCk7CiAgcmVzdWx0LmNvbXBpbGVkSW1wbGljaXQgPSBjb21waWxlTGlzdChyZXN1bHQsICJpbXBsaWNpdCIpOwogIHJlc3VsdC5jb21waWxlZEV4cGxpY2l0ID0gY29tcGlsZUxpc3QocmVzdWx0LCAiZXhwbGljaXQiKTsKICByZXN1bHQuY29tcGlsZWRUeXBlTWFwID0gY29tcGlsZU1hcChyZXN1bHQuY29tcGlsZWRJbXBsaWNpdCwgcmVzdWx0LmNvbXBpbGVkRXhwbGljaXQpOwogIHJldHVybiByZXN1bHQ7Cn07CnZhciBzY2hlbWEgPSBTY2hlbWEkMTsKdmFyIHN0ciA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpzdHIiLCB7CiAga2luZDogInNjYWxhciIsCiAgY29uc3RydWN0OiBmdW5jdGlvbihkYXRhKSB7CiAgICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiAiIjsKICB9Cn0pOwp2YXIgc2VxID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNlcSIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107CiAgfQp9KTsKdmFyIG1hcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptYXAiLCB7CiAga2luZDogIm1hcHBpbmciLAogIGNvbnN0cnVjdDogZnVuY3Rpb24oZGF0YSkgewogICAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDoge307CiAgfQp9KTsKdmFyIGZhaWxzYWZlID0gbmV3IHNjaGVtYSh7CiAgZXhwbGljaXQ6IFsKICAgIHN0ciwKICAgIHNlcSwKICAgIG1hcAogIF0KfSk7CmZ1bmN0aW9uIHJlc29sdmVZYW1sTnVsbChkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiB0cnVlOwogIHZhciBtYXggPSBkYXRhLmxlbmd0aDsKICByZXR1cm4gbWF4ID09PSAxICYmIGRhdGEgPT09ICJ+IiB8fCBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJudWxsIiB8fCBkYXRhID09PSAiTnVsbCIgfHwgZGF0YSA9PT0gIk5VTEwiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sTnVsbCgpIHsKICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBpc051bGwob2JqZWN0KSB7CiAgcmV0dXJuIG9iamVjdCA9PT0gbnVsbDsKfQp2YXIgX251bGwgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6bnVsbCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE51bGwsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sTnVsbCwKICBwcmVkaWNhdGU6IGlzTnVsbCwKICByZXByZXNlbnQ6IHsKICAgIGNhbm9uaWNhbDogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAifiI7CiAgICB9LAogICAgbG93ZXJjYXNlOiBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuICJudWxsIjsKICAgIH0sCiAgICB1cHBlcmNhc2U6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIk5VTEwiOwogICAgfSwKICAgIGNhbWVsY2FzZTogZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiAiTnVsbCI7CiAgICB9LAogICAgZW1wdHk6IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gIiI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJvb2xlYW4oZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoOwogIHJldHVybiBtYXggPT09IDQgJiYgKGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiKSB8fCBtYXggPT09IDUgJiYgKGRhdGEgPT09ICJmYWxzZSIgfHwgZGF0YSA9PT0gIkZhbHNlIiB8fCBkYXRhID09PSAiRkFMU0UiKTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQm9vbGVhbihkYXRhKSB7CiAgcmV0dXJuIGRhdGEgPT09ICJ0cnVlIiB8fCBkYXRhID09PSAiVHJ1ZSIgfHwgZGF0YSA9PT0gIlRSVUUiOwp9CmZ1bmN0aW9uIGlzQm9vbGVhbihvYmplY3QpIHsKICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iamVjdCkgPT09ICJbb2JqZWN0IEJvb2xlYW5dIjsKfQp2YXIgYm9vbCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpib29sIiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQm9vbGVhbiwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxCb29sZWFuLAogIHByZWRpY2F0ZTogaXNCb29sZWFuLAogIHJlcHJlc2VudDogewogICAgbG93ZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJ0cnVlIiA6ICJmYWxzZSI7CiAgICB9LAogICAgdXBwZXJjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUUlVFIiA6ICJGQUxTRSI7CiAgICB9LAogICAgY2FtZWxjYXNlOiBmdW5jdGlvbihvYmplY3QpIHsKICAgICAgcmV0dXJuIG9iamVjdCA/ICJUcnVlIiA6ICJGYWxzZSI7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwpmdW5jdGlvbiBpc0hleENvZGUoYykgewogIHJldHVybiA0OCA8PSBjICYmIGMgPD0gNTcgfHwgNjUgPD0gYyAmJiBjIDw9IDcwIHx8IDk3IDw9IGMgJiYgYyA8PSAxMDI7Cn0KZnVuY3Rpb24gaXNPY3RDb2RlKGMpIHsKICByZXR1cm4gNDggPD0gYyAmJiBjIDw9IDU1Owp9CmZ1bmN0aW9uIGlzRGVjQ29kZShjKSB7CiAgcmV0dXJuIDQ4IDw9IGMgJiYgYyA8PSA1NzsKfQpmdW5jdGlvbiByZXNvbHZlWWFtbEludGVnZXIoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gZmFsc2U7CiAgdmFyIG1heCA9IGRhdGEubGVuZ3RoLCBpbmRleCA9IDAsIGhhc0RpZ2l0cyA9IGZhbHNlLCBjaDsKICBpZiAoIW1heCkgcmV0dXJuIGZhbHNlOwogIGNoID0gZGF0YVtpbmRleF07CiAgaWYgKGNoID09PSAiLSIgfHwgY2ggPT09ICIrIikgewogICAgY2ggPSBkYXRhWysraW5kZXhdOwogIH0KICBpZiAoY2ggPT09ICIwIikgewogICAgaWYgKGluZGV4ICsgMSA9PT0gbWF4KSByZXR1cm4gdHJ1ZTsKICAgIGNoID0gZGF0YVsrK2luZGV4XTsKICAgIGlmIChjaCA9PT0gImIiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmIChjaCAhPT0gIjAiICYmIGNoICE9PSAiMSIpIHJldHVybiBmYWxzZTsKICAgICAgICBoYXNEaWdpdHMgPSB0cnVlOwogICAgICB9CiAgICAgIHJldHVybiBoYXNEaWdpdHMgJiYgY2ggIT09ICJfIjsKICAgIH0KICAgIGlmIChjaCA9PT0gIngiKSB7CiAgICAgIGluZGV4Kys7CiAgICAgIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgICAgIGNoID0gZGF0YVtpbmRleF07CiAgICAgICAgaWYgKGNoID09PSAiXyIpIGNvbnRpbnVlOwogICAgICAgIGlmICghaXNIZXhDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSByZXR1cm4gZmFsc2U7CiAgICAgICAgaGFzRGlnaXRzID0gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gaGFzRGlnaXRzICYmIGNoICE9PSAiXyI7CiAgICB9CiAgICBpZiAoY2ggPT09ICJvIikgewogICAgICBpbmRleCsrOwogICAgICBmb3IgKDsgaW5kZXggPCBtYXg7IGluZGV4KyspIHsKICAgICAgICBjaCA9IGRhdGFbaW5kZXhdOwogICAgICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgICAgICBpZiAoIWlzT2N0Q29kZShkYXRhLmNoYXJDb2RlQXQoaW5kZXgpKSkgcmV0dXJuIGZhbHNlOwogICAgICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGhhc0RpZ2l0cyAmJiBjaCAhPT0gIl8iOwogICAgfQogIH0KICBpZiAoY2ggPT09ICJfIikgcmV0dXJuIGZhbHNlOwogIGZvciAoOyBpbmRleCA8IG1heDsgaW5kZXgrKykgewogICAgY2ggPSBkYXRhW2luZGV4XTsKICAgIGlmIChjaCA9PT0gIl8iKSBjb250aW51ZTsKICAgIGlmICghaXNEZWNDb2RlKGRhdGEuY2hhckNvZGVBdChpbmRleCkpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGhhc0RpZ2l0cyA9IHRydWU7CiAgfQogIGlmICghaGFzRGlnaXRzIHx8IGNoID09PSAiXyIpIHJldHVybiBmYWxzZTsKICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sSW50ZWdlcihkYXRhKSB7CiAgdmFyIHZhbHVlID0gZGF0YSwgc2lnbiA9IDEsIGNoOwogIGlmICh2YWx1ZS5pbmRleE9mKCJfIikgIT09IC0xKSB7CiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL18vZywgIiIpOwogIH0KICBjaCA9IHZhbHVlWzBdOwogIGlmIChjaCA9PT0gIi0iIHx8IGNoID09PSAiKyIpIHsKICAgIGlmIChjaCA9PT0gIi0iKSBzaWduID0gLTE7CiAgICB2YWx1ZSA9IHZhbHVlLnNsaWNlKDEpOwogICAgY2ggPSB2YWx1ZVswXTsKICB9CiAgaWYgKHZhbHVlID09PSAiMCIpIHJldHVybiAwOwogIGlmIChjaCA9PT0gIjAiKSB7CiAgICBpZiAodmFsdWVbMV0gPT09ICJiIikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMik7CiAgICBpZiAodmFsdWVbMV0gPT09ICJ4IikgcmV0dXJuIHNpZ24gKiBwYXJzZUludCh2YWx1ZS5zbGljZSgyKSwgMTYpOwogICAgaWYgKHZhbHVlWzFdID09PSAibyIpIHJldHVybiBzaWduICogcGFyc2VJbnQodmFsdWUuc2xpY2UoMiksIDgpOwogIH0KICByZXR1cm4gc2lnbiAqIHBhcnNlSW50KHZhbHVlLCAxMCk7Cn0KZnVuY3Rpb24gaXNJbnRlZ2VyKG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgPT09IDAgJiYgIWNvbW1vbi5pc05lZ2F0aXZlWmVybyhvYmplY3QpKTsKfQp2YXIgaW50ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOmludCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEludGVnZXIsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sSW50ZWdlciwKICBwcmVkaWNhdGU6IGlzSW50ZWdlciwKICByZXByZXNlbnQ6IHsKICAgIGJpbmFyeTogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwYiIgKyBvYmoudG9TdHJpbmcoMikgOiAiLTBiIiArIG9iai50b1N0cmluZygyKS5zbGljZSgxKTsKICAgIH0sCiAgICBvY3RhbDogZnVuY3Rpb24ob2JqKSB7CiAgICAgIHJldHVybiBvYmogPj0gMCA/ICIwbyIgKyBvYmoudG9TdHJpbmcoOCkgOiAiLTBvIiArIG9iai50b1N0cmluZyg4KS5zbGljZSgxKTsKICAgIH0sCiAgICBkZWNpbWFsOiBmdW5jdGlvbihvYmopIHsKICAgICAgcmV0dXJuIG9iai50b1N0cmluZygxMCk7CiAgICB9LAogICAgLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqLwogICAgaGV4YWRlY2ltYWw6IGZ1bmN0aW9uKG9iaikgewogICAgICByZXR1cm4gb2JqID49IDAgPyAiMHgiICsgb2JqLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpIDogIi0weCIgKyBvYmoudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSk7CiAgICB9CiAgfSwKICBkZWZhdWx0U3R5bGU6ICJkZWNpbWFsIiwKICBzdHlsZUFsaWFzZXM6IHsKICAgIGJpbmFyeTogWzIsICJiaW4iXSwKICAgIG9jdGFsOiBbOCwgIm9jdCJdLAogICAgZGVjaW1hbDogWzEwLCAiZGVjIl0sCiAgICBoZXhhZGVjaW1hbDogWzE2LCAiaGV4Il0KICB9Cn0pOwp2YXIgWUFNTF9GTE9BVF9QQVRURVJOID0gbmV3IFJlZ0V4cCgKICAvLyAyLjVlNCwgMi41IGFuZCBpbnRlZ2VycwogICJeKD86Wy0rXT8oPzpbMC05XVswLTlfXSopKD86XFwuWzAtOV9dKik/KD86W2VFXVstK10/WzAtOV0rKT98XFwuWzAtOV9dKyg/OltlRV1bLStdP1swLTldKyk/fFstK10/XFwuKD86aW5mfEluZnxJTkYpfFxcLig/Om5hbnxOYU58TkFOKSkkIgopOwpmdW5jdGlvbiByZXNvbHZlWWFtbEZsb2F0KGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmICghWUFNTF9GTE9BVF9QQVRURVJOLnRlc3QoZGF0YSkgfHwgLy8gUXVpY2sgaGFjayB0byBub3QgYWxsb3cgaW50ZWdlcnMgZW5kIHdpdGggYF9gCiAgLy8gUHJvYmFibHkgc2hvdWxkIHVwZGF0ZSByZWdleHAgJiBjaGVjayBzcGVlZAogIGRhdGFbZGF0YS5sZW5ndGggLSAxXSA9PT0gIl8iKSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxGbG9hdChkYXRhKSB7CiAgdmFyIHZhbHVlLCBzaWduOwogIHZhbHVlID0gZGF0YS5yZXBsYWNlKC9fL2csICIiKS50b0xvd2VyQ2FzZSgpOwogIHNpZ24gPSB2YWx1ZVswXSA9PT0gIi0iID8gLTEgOiAxOwogIGlmICgiKy0iLmluZGV4T2YodmFsdWVbMF0pID49IDApIHsKICAgIHZhbHVlID0gdmFsdWUuc2xpY2UoMSk7CiAgfQogIGlmICh2YWx1ZSA9PT0gIi5pbmYiKSB7CiAgICByZXR1cm4gc2lnbiA9PT0gMSA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKICB9IGVsc2UgaWYgKHZhbHVlID09PSAiLm5hbiIpIHsKICAgIHJldHVybiBOYU47CiAgfQogIHJldHVybiBzaWduICogcGFyc2VGbG9hdCh2YWx1ZSwgMTApOwp9CnZhciBTQ0lFTlRJRklDX1dJVEhPVVRfRE9UID0gL15bLStdP1swLTldK2UvOwpmdW5jdGlvbiByZXByZXNlbnRZYW1sRmxvYXQob2JqZWN0LCBzdHlsZSkgewogIHZhciByZXM7CiAgaWYgKGlzTmFOKG9iamVjdCkpIHsKICAgIHN3aXRjaCAoc3R5bGUpIHsKICAgICAgY2FzZSAibG93ZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5uYW4iOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLk5BTiI7CiAgICAgIGNhc2UgImNhbWVsY2FzZSI6CiAgICAgICAgcmV0dXJuICIuTmFOIjsKICAgIH0KICB9IGVsc2UgaWYgKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA9PT0gb2JqZWN0KSB7CiAgICBzd2l0Y2ggKHN0eWxlKSB7CiAgICAgIGNhc2UgImxvd2VyY2FzZSI6CiAgICAgICAgcmV0dXJuICIuaW5mIjsKICAgICAgY2FzZSAidXBwZXJjYXNlIjoKICAgICAgICByZXR1cm4gIi5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLkluZiI7CiAgICB9CiAgfSBlbHNlIGlmIChOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkgPT09IG9iamVjdCkgewogICAgc3dpdGNoIChzdHlsZSkgewogICAgICBjYXNlICJsb3dlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5pbmYiOwogICAgICBjYXNlICJ1cHBlcmNhc2UiOgogICAgICAgIHJldHVybiAiLS5JTkYiOwogICAgICBjYXNlICJjYW1lbGNhc2UiOgogICAgICAgIHJldHVybiAiLS5JbmYiOwogICAgfQogIH0gZWxzZSBpZiAoY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpIHsKICAgIHJldHVybiAiLTAuMCI7CiAgfQogIHJlcyA9IG9iamVjdC50b1N0cmluZygxMCk7CiAgcmV0dXJuIFNDSUVOVElGSUNfV0lUSE9VVF9ET1QudGVzdChyZXMpID8gcmVzLnJlcGxhY2UoImUiLCAiLmUiKSA6IHJlczsKfQpmdW5jdGlvbiBpc0Zsb2F0KG9iamVjdCkgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqZWN0KSA9PT0gIltvYmplY3QgTnVtYmVyXSIgJiYgKG9iamVjdCAlIDEgIT09IDAgfHwgY29tbW9uLmlzTmVnYXRpdmVaZXJvKG9iamVjdCkpOwp9CnZhciBmbG9hdCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjpmbG9hdCIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbEZsb2F0LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEZsb2F0LAogIHByZWRpY2F0ZTogaXNGbG9hdCwKICByZXByZXNlbnQ6IHJlcHJlc2VudFlhbWxGbG9hdCwKICBkZWZhdWx0U3R5bGU6ICJsb3dlcmNhc2UiCn0pOwp2YXIganNvbiA9IGZhaWxzYWZlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIF9udWxsLAogICAgYm9vbCwKICAgIGludCwKICAgIGZsb2F0CiAgXQp9KTsKdmFyIGNvcmUgPSBqc29uOwp2YXIgWUFNTF9EQVRFX1JFR0VYUCA9IG5ldyBSZWdFeHAoCiAgIl4oWzAtOV1bMC05XVswLTldWzAtOV0pLShbMC05XVswLTldKS0oWzAtOV1bMC05XSkkIgopOwp2YXIgWUFNTF9USU1FU1RBTVBfUkVHRVhQID0gbmV3IFJlZ0V4cCgKICAiXihbMC05XVswLTldWzAtOV1bMC05XSktKFswLTldWzAtOV0/KS0oWzAtOV1bMC05XT8pKD86W1R0XXxbIFxcdF0rKShbMC05XVswLTldPyk6KFswLTldWzAtOV0pOihbMC05XVswLTldKSg/OlxcLihbMC05XSopKT8oPzpbIFxcdF0qKFp8KFstK10pKFswLTldWzAtOV0/KSg/OjooWzAtOV1bMC05XSkpPykpPyQiCik7CmZ1bmN0aW9uIHJlc29sdmVZYW1sVGltZXN0YW1wKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogIGlmIChZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSkgIT09IG51bGwpIHJldHVybiB0cnVlOwogIGlmIChZQU1MX1RJTUVTVEFNUF9SRUdFWFAuZXhlYyhkYXRhKSAhPT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIGNvbnN0cnVjdFlhbWxUaW1lc3RhbXAoZGF0YSkgewogIHZhciBtYXRjaCwgeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uID0gMCwgZGVsdGEgPSBudWxsLCB0el9ob3VyLCB0el9taW51dGUsIGRhdGU7CiAgbWF0Y2ggPSBZQU1MX0RBVEVfUkVHRVhQLmV4ZWMoZGF0YSk7CiAgaWYgKG1hdGNoID09PSBudWxsKSBtYXRjaCA9IFlBTUxfVElNRVNUQU1QX1JFR0VYUC5leGVjKGRhdGEpOwogIGlmIChtYXRjaCA9PT0gbnVsbCkgdGhyb3cgbmV3IEVycm9yKCJEYXRlIHJlc29sdmUgZXJyb3IiKTsKICB5ZWFyID0gK21hdGNoWzFdOwogIG1vbnRoID0gK21hdGNoWzJdIC0gMTsKICBkYXkgPSArbWF0Y2hbM107CiAgaWYgKCFtYXRjaFs0XSkgewogICAgcmV0dXJuIG5ldyBEYXRlKERhdGUuVVRDKHllYXIsIG1vbnRoLCBkYXkpKTsKICB9CiAgaG91ciA9ICttYXRjaFs0XTsKICBtaW51dGUgPSArbWF0Y2hbNV07CiAgc2Vjb25kID0gK21hdGNoWzZdOwogIGlmIChtYXRjaFs3XSkgewogICAgZnJhY3Rpb24gPSBtYXRjaFs3XS5zbGljZSgwLCAzKTsKICAgIHdoaWxlIChmcmFjdGlvbi5sZW5ndGggPCAzKSB7CiAgICAgIGZyYWN0aW9uICs9ICIwIjsKICAgIH0KICAgIGZyYWN0aW9uID0gK2ZyYWN0aW9uOwogIH0KICBpZiAobWF0Y2hbOV0pIHsKICAgIHR6X2hvdXIgPSArbWF0Y2hbMTBdOwogICAgdHpfbWludXRlID0gKyhtYXRjaFsxMV0gfHwgMCk7CiAgICBkZWx0YSA9ICh0el9ob3VyICogNjAgKyB0el9taW51dGUpICogNmU0OwogICAgaWYgKG1hdGNoWzldID09PSAiLSIpIGRlbHRhID0gLWRlbHRhOwogIH0KICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhciwgbW9udGgsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQsIGZyYWN0aW9uKSk7CiAgaWYgKGRlbHRhKSBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgLSBkZWx0YSk7CiAgcmV0dXJuIGRhdGU7Cn0KZnVuY3Rpb24gcmVwcmVzZW50WWFtbFRpbWVzdGFtcChvYmplY3QpIHsKICByZXR1cm4gb2JqZWN0LnRvSVNPU3RyaW5nKCk7Cn0KdmFyIHRpbWVzdGFtcCA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjp0aW1lc3RhbXAiLCB7CiAga2luZDogInNjYWxhciIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxUaW1lc3RhbXAsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sVGltZXN0YW1wLAogIGluc3RhbmNlT2Y6IERhdGUsCiAgcmVwcmVzZW50OiByZXByZXNlbnRZYW1sVGltZXN0YW1wCn0pOwpmdW5jdGlvbiByZXNvbHZlWWFtbE1lcmdlKGRhdGEpIHsKICByZXR1cm4gZGF0YSA9PT0gIjw8IiB8fCBkYXRhID09PSBudWxsOwp9CnZhciBtZXJnZSA9IG5ldyB0eXBlKCJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIsIHsKICBraW5kOiAic2NhbGFyIiwKICByZXNvbHZlOiByZXNvbHZlWWFtbE1lcmdlCn0pOwp2YXIgQkFTRTY0X01BUCA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPVxuXHIiOwpmdW5jdGlvbiByZXNvbHZlWWFtbEJpbmFyeShkYXRhKSB7CiAgaWYgKGRhdGEgPT09IG51bGwpIHJldHVybiBmYWxzZTsKICB2YXIgY29kZSwgaWR4LCBiaXRsZW4gPSAwLCBtYXggPSBkYXRhLmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBjb2RlID0gbWFwMi5pbmRleE9mKGRhdGEuY2hhckF0KGlkeCkpOwogICAgaWYgKGNvZGUgPiA2NCkgY29udGludWU7CiAgICBpZiAoY29kZSA8IDApIHJldHVybiBmYWxzZTsKICAgIGJpdGxlbiArPSA2OwogIH0KICByZXR1cm4gYml0bGVuICUgOCA9PT0gMDsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sQmluYXJ5KGRhdGEpIHsKICB2YXIgaWR4LCB0YWlsYml0cywgaW5wdXQgPSBkYXRhLnJlcGxhY2UoL1tcclxuPV0vZywgIiIpLCBtYXggPSBpbnB1dC5sZW5ndGgsIG1hcDIgPSBCQVNFNjRfTUFQLCBiaXRzID0gMCwgcmVzdWx0ID0gW107CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgNCA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0LnB1c2goYml0cyA+PiAxNiAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICAgIHJlc3VsdC5wdXNoKGJpdHMgJiAyNTUpOwogICAgfQogICAgYml0cyA9IGJpdHMgPDwgNiB8IG1hcDIuaW5kZXhPZihpbnB1dC5jaGFyQXQoaWR4KSk7CiAgfQogIHRhaWxiaXRzID0gbWF4ICUgNCAqIDY7CiAgaWYgKHRhaWxiaXRzID09PSAwKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDE2ICYgMjU1KTsKICAgIHJlc3VsdC5wdXNoKGJpdHMgPj4gOCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzICYgMjU1KTsKICB9IGVsc2UgaWYgKHRhaWxiaXRzID09PSAxOCkgewogICAgcmVzdWx0LnB1c2goYml0cyA+PiAxMCAmIDI1NSk7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDIgJiAyNTUpOwogIH0gZWxzZSBpZiAodGFpbGJpdHMgPT09IDEyKSB7CiAgICByZXN1bHQucHVzaChiaXRzID4+IDQgJiAyNTUpOwogIH0KICByZXR1cm4gbmV3IFVpbnQ4QXJyYXkocmVzdWx0KTsKfQpmdW5jdGlvbiByZXByZXNlbnRZYW1sQmluYXJ5KG9iamVjdCkgewogIHZhciByZXN1bHQgPSAiIiwgYml0cyA9IDAsIGlkeCwgdGFpbCwgbWF4ID0gb2JqZWN0Lmxlbmd0aCwgbWFwMiA9IEJBU0U2NF9NQVA7CiAgZm9yIChpZHggPSAwOyBpZHggPCBtYXg7IGlkeCsrKSB7CiAgICBpZiAoaWR4ICUgMyA9PT0gMCAmJiBpZHgpIHsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxOCAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA2ICYgNjNdOwogICAgICByZXN1bHQgKz0gbWFwMltiaXRzICYgNjNdOwogICAgfQogICAgYml0cyA9IChiaXRzIDw8IDgpICsgb2JqZWN0W2lkeF07CiAgfQogIHRhaWwgPSBtYXggJSAzOwogIGlmICh0YWlsID09PSAwKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDE4ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAxMiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgPj4gNiAmIDYzXTsKICAgIHJlc3VsdCArPSBtYXAyW2JpdHMgJiA2M107CiAgfSBlbHNlIGlmICh0YWlsID09PSAyKSB7CiAgICByZXN1bHQgKz0gbWFwMltiaXRzID4+IDEwICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0gZWxzZSBpZiAodGFpbCA9PT0gMSkgewogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA+PiAyICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbYml0cyA8PCA0ICYgNjNdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogICAgcmVzdWx0ICs9IG1hcDJbNjRdOwogIH0KICByZXR1cm4gcmVzdWx0Owp9CmZ1bmN0aW9uIGlzQmluYXJ5KG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKSA9PT0gIltvYmplY3QgVWludDhBcnJheV0iOwp9CnZhciBiaW5hcnkgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6YmluYXJ5IiwgewogIGtpbmQ6ICJzY2FsYXIiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sQmluYXJ5LAogIGNvbnN0cnVjdDogY29uc3RydWN0WWFtbEJpbmFyeSwKICBwcmVkaWNhdGU6IGlzQmluYXJ5LAogIHJlcHJlc2VudDogcmVwcmVzZW50WWFtbEJpbmFyeQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQzID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIF90b1N0cmluZyQyID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxPbWFwKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIG9iamVjdEtleXMgPSBbXSwgaW5kZXgsIGxlbmd0aCwgcGFpciwgcGFpcktleSwgcGFpckhhc0tleSwgb2JqZWN0ID0gZGF0YTsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHBhaXIgPSBvYmplY3RbaW5kZXhdOwogICAgcGFpckhhc0tleSA9IGZhbHNlOwogICAgaWYgKF90b1N0cmluZyQyLmNhbGwocGFpcikgIT09ICJbb2JqZWN0IE9iamVjdF0iKSByZXR1cm4gZmFsc2U7CiAgICBmb3IgKHBhaXJLZXkgaW4gcGFpcikgewogICAgICBpZiAoX2hhc093blByb3BlcnR5JDMuY2FsbChwYWlyLCBwYWlyS2V5KSkgewogICAgICAgIGlmICghcGFpckhhc0tleSkgcGFpckhhc0tleSA9IHRydWU7CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmICghcGFpckhhc0tleSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKG9iamVjdEtleXMuaW5kZXhPZihwYWlyS2V5KSA9PT0gLTEpIG9iamVjdEtleXMucHVzaChwYWlyS2V5KTsKICAgIGVsc2UgcmV0dXJuIGZhbHNlOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sT21hcChkYXRhKSB7CiAgcmV0dXJuIGRhdGEgIT09IG51bGwgPyBkYXRhIDogW107Cn0KdmFyIG9tYXAgPSBuZXcgdHlwZSgidGFnOnlhbWwub3JnLDIwMDI6b21hcCIsIHsKICBraW5kOiAic2VxdWVuY2UiLAogIHJlc29sdmU6IHJlc29sdmVZYW1sT21hcCwKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxPbWFwCn0pOwp2YXIgX3RvU3RyaW5nJDEgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwpmdW5jdGlvbiByZXNvbHZlWWFtbFBhaXJzKGRhdGEpIHsKICBpZiAoZGF0YSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGlmIChfdG9TdHJpbmckMS5jYWxsKHBhaXIpICE9PSAiW29iamVjdCBPYmplY3RdIikgcmV0dXJuIGZhbHNlOwogICAga2V5cyA9IE9iamVjdC5rZXlzKHBhaXIpOwogICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSByZXR1cm4gZmFsc2U7CiAgICByZXN1bHRbaW5kZXhdID0gW2tleXNbMF0sIHBhaXJba2V5c1swXV1dOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sUGFpcnMoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gW107CiAgdmFyIGluZGV4LCBsZW5ndGgsIHBhaXIsIGtleXMsIHJlc3VsdCwgb2JqZWN0ID0gZGF0YTsKICByZXN1bHQgPSBuZXcgQXJyYXkob2JqZWN0Lmxlbmd0aCk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyID0gb2JqZWN0W2luZGV4XTsKICAgIGtleXMgPSBPYmplY3Qua2V5cyhwYWlyKTsKICAgIHJlc3VsdFtpbmRleF0gPSBba2V5c1swXSwgcGFpcltrZXlzWzBdXV07CiAgfQogIHJldHVybiByZXN1bHQ7Cn0KdmFyIHBhaXJzID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnBhaXJzIiwgewogIGtpbmQ6ICJzZXF1ZW5jZSIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxQYWlycywKICBjb25zdHJ1Y3Q6IGNvbnN0cnVjdFlhbWxQYWlycwp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQyID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKZnVuY3Rpb24gcmVzb2x2ZVlhbWxTZXQoZGF0YSkgewogIGlmIChkYXRhID09PSBudWxsKSByZXR1cm4gdHJ1ZTsKICB2YXIga2V5LCBvYmplY3QgPSBkYXRhOwogIGZvciAoa2V5IGluIG9iamVjdCkgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQyLmNhbGwob2JqZWN0LCBrZXkpKSB7CiAgICAgIGlmIChvYmplY3Rba2V5XSAhPT0gbnVsbCkgcmV0dXJuIGZhbHNlOwogICAgfQogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiBjb25zdHJ1Y3RZYW1sU2V0KGRhdGEpIHsKICByZXR1cm4gZGF0YSAhPT0gbnVsbCA/IGRhdGEgOiB7fTsKfQp2YXIgc2V0ID0gbmV3IHR5cGUoInRhZzp5YW1sLm9yZywyMDAyOnNldCIsIHsKICBraW5kOiAibWFwcGluZyIsCiAgcmVzb2x2ZTogcmVzb2x2ZVlhbWxTZXQsCiAgY29uc3RydWN0OiBjb25zdHJ1Y3RZYW1sU2V0Cn0pOwp2YXIgX2RlZmF1bHQgPSBjb3JlLmV4dGVuZCh7CiAgaW1wbGljaXQ6IFsKICAgIHRpbWVzdGFtcCwKICAgIG1lcmdlCiAgXSwKICBleHBsaWNpdDogWwogICAgYmluYXJ5LAogICAgb21hcCwKICAgIHBhaXJzLAogICAgc2V0CiAgXQp9KTsKdmFyIF9oYXNPd25Qcm9wZXJ0eSQxID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENPTlRFWFRfRkxPV19JTiA9IDE7CnZhciBDT05URVhUX0ZMT1dfT1VUID0gMjsKdmFyIENPTlRFWFRfQkxPQ0tfSU4gPSAzOwp2YXIgQ09OVEVYVF9CTE9DS19PVVQgPSA0Owp2YXIgQ0hPTVBJTkdfQ0xJUCA9IDE7CnZhciBDSE9NUElOR19TVFJJUCA9IDI7CnZhciBDSE9NUElOR19LRUVQID0gMzsKdmFyIFBBVFRFUk5fTk9OX1BSSU5UQUJMRSA9IC9bXHgwMC1ceDA4XHgwQlx4MENceDBFLVx4MUZceDdGLVx4ODRceDg2LVx4OUZcdUZGRkVcdUZGRkZdfFtcdUQ4MDAtXHVEQkZGXSg/IVtcdURDMDAtXHVERkZGXSl8KD86W15cdUQ4MDAtXHVEQkZGXXxeKVtcdURDMDAtXHVERkZGXS87CnZhciBQQVRURVJOX05PTl9BU0NJSV9MSU5FX0JSRUFLUyA9IC9bXHg4NVx1MjAyOFx1MjAyOV0vOwp2YXIgUEFUVEVSTl9GTE9XX0lORElDQVRPUlMgPSAvWyxcW1xdXHtcfV0vOwp2YXIgUEFUVEVSTl9UQUdfSEFORExFID0gL14oPzohfCEhfCFbYS16XC1dKyEpJC9pOwp2YXIgUEFUVEVSTl9UQUdfVVJJID0gL14oPzohfFteLFxbXF1ce1x9XSkoPzolWzAtOWEtZl17Mn18WzAtOWEtelwtIztcL1w/OkAmPVwrXCQsX1wuIX5cKidcKFwpXFtcXV0pKiQvaTsKZnVuY3Rpb24gX2NsYXNzKG9iaikgewogIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwob2JqKTsKfQpmdW5jdGlvbiBpc19FT0woYykgewogIHJldHVybiBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19XSElURV9TUEFDRShjKSB7CiAgcmV0dXJuIGMgPT09IDkgfHwgYyA9PT0gMzI7Cn0KZnVuY3Rpb24gaXNfV1NfT1JfRU9MKGMpIHsKICByZXR1cm4gYyA9PT0gOSB8fCBjID09PSAzMiB8fCBjID09PSAxMCB8fCBjID09PSAxMzsKfQpmdW5jdGlvbiBpc19GTE9XX0lORElDQVRPUihjKSB7CiAgcmV0dXJuIGMgPT09IDQ0IHx8IGMgPT09IDkxIHx8IGMgPT09IDkzIHx8IGMgPT09IDEyMyB8fCBjID09PSAxMjU7Cn0KZnVuY3Rpb24gZnJvbUhleENvZGUoYykgewogIHZhciBsYzsKICBpZiAoNDggPD0gYyAmJiBjIDw9IDU3KSB7CiAgICByZXR1cm4gYyAtIDQ4OwogIH0KICBsYyA9IGMgfCAzMjsKICBpZiAoOTcgPD0gbGMgJiYgbGMgPD0gMTAyKSB7CiAgICByZXR1cm4gbGMgLSA5NyArIDEwOwogIH0KICByZXR1cm4gLTE7Cn0KZnVuY3Rpb24gZXNjYXBlZEhleExlbihjKSB7CiAgaWYgKGMgPT09IDEyMCkgewogICAgcmV0dXJuIDI7CiAgfQogIGlmIChjID09PSAxMTcpIHsKICAgIHJldHVybiA0OwogIH0KICBpZiAoYyA9PT0gODUpIHsKICAgIHJldHVybiA4OwogIH0KICByZXR1cm4gMDsKfQpmdW5jdGlvbiBmcm9tRGVjaW1hbENvZGUoYykgewogIGlmICg0OCA8PSBjICYmIGMgPD0gNTcpIHsKICAgIHJldHVybiBjIC0gNDg7CiAgfQogIHJldHVybiAtMTsKfQpmdW5jdGlvbiBzaW1wbGVFc2NhcGVTZXF1ZW5jZShjKSB7CiAgcmV0dXJuIGMgPT09IDQ4ID8gIlwwIiA6IGMgPT09IDk3ID8gIlx4MDciIDogYyA9PT0gOTggPyAiXGIiIDogYyA9PT0gMTE2ID8gIgkiIDogYyA9PT0gOSA/ICIJIiA6IGMgPT09IDExMCA/ICJcbiIgOiBjID09PSAxMTggPyAiXHYiIDogYyA9PT0gMTAyID8gIlxmIiA6IGMgPT09IDExNCA/ICJcciIgOiBjID09PSAxMDEgPyAiXHgxQiIgOiBjID09PSAzMiA/ICIgIiA6IGMgPT09IDM0ID8gJyInIDogYyA9PT0gNDcgPyAiLyIgOiBjID09PSA5MiA/ICJcXCIgOiBjID09PSA3OCA/ICJceDg1IiA6IGMgPT09IDk1ID8gIlx4QTAiIDogYyA9PT0gNzYgPyAiXHUyMDI4IiA6IGMgPT09IDgwID8gIlx1MjAyOSIgOiAiIjsKfQpmdW5jdGlvbiBjaGFyRnJvbUNvZGVwb2ludChjKSB7CiAgaWYgKGMgPD0gNjU1MzUpIHsKICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGMpOwogIH0KICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgKICAgIChjIC0gNjU1MzYgPj4gMTApICsgNTUyOTYsCiAgICAoYyAtIDY1NTM2ICYgMTAyMykgKyA1NjMyMAogICk7Cn0KdmFyIHNpbXBsZUVzY2FwZUNoZWNrID0gbmV3IEFycmF5KDI1Nik7CnZhciBzaW1wbGVFc2NhcGVNYXAgPSBuZXcgQXJyYXkoMjU2KTsKZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgc2ltcGxlRXNjYXBlQ2hlY2tbaV0gPSBzaW1wbGVFc2NhcGVTZXF1ZW5jZShpKSA/IDEgOiAwOwogIHNpbXBsZUVzY2FwZU1hcFtpXSA9IHNpbXBsZUVzY2FwZVNlcXVlbmNlKGkpOwp9CnZhciBpOwpmdW5jdGlvbiBTdGF0ZSQxKGlucHV0LCBvcHRpb25zKSB7CiAgdGhpcy5pbnB1dCA9IGlucHV0OwogIHRoaXMuZmlsZW5hbWUgPSBvcHRpb25zWyJmaWxlbmFtZSJdIHx8IG51bGw7CiAgdGhpcy5zY2hlbWEgPSBvcHRpb25zWyJzY2hlbWEiXSB8fCBfZGVmYXVsdDsKICB0aGlzLm9uV2FybmluZyA9IG9wdGlvbnNbIm9uV2FybmluZyJdIHx8IG51bGw7CiAgdGhpcy5sZWdhY3kgPSBvcHRpb25zWyJsZWdhY3kiXSB8fCBmYWxzZTsKICB0aGlzLmpzb24gPSBvcHRpb25zWyJqc29uIl0gfHwgZmFsc2U7CiAgdGhpcy5saXN0ZW5lciA9IG9wdGlvbnNbImxpc3RlbmVyIl0gfHwgbnVsbDsKICB0aGlzLmltcGxpY2l0VHlwZXMgPSB0aGlzLnNjaGVtYS5jb21waWxlZEltcGxpY2l0OwogIHRoaXMudHlwZU1hcCA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkVHlwZU1hcDsKICB0aGlzLmxlbmd0aCA9IGlucHV0Lmxlbmd0aDsKICB0aGlzLnBvc2l0aW9uID0gMDsKICB0aGlzLmxpbmUgPSAwOwogIHRoaXMubGluZVN0YXJ0ID0gMDsKICB0aGlzLmxpbmVJbmRlbnQgPSAwOwogIHRoaXMuZmlyc3RUYWJJbkxpbmUgPSAtMTsKICB0aGlzLmRvY3VtZW50cyA9IFtdOwp9CmZ1bmN0aW9uIGdlbmVyYXRlRXJyb3Ioc3RhdGUsIG1lc3NhZ2UpIHsKICB2YXIgbWFyayA9IHsKICAgIG5hbWU6IHN0YXRlLmZpbGVuYW1lLAogICAgYnVmZmVyOiBzdGF0ZS5pbnB1dC5zbGljZSgwLCAtMSksCiAgICAvLyBvbWl0IHRyYWlsaW5nIFwwCiAgICBwb3NpdGlvbjogc3RhdGUucG9zaXRpb24sCiAgICBsaW5lOiBzdGF0ZS5saW5lLAogICAgY29sdW1uOiBzdGF0ZS5wb3NpdGlvbiAtIHN0YXRlLmxpbmVTdGFydAogIH07CiAgbWFyay5zbmlwcGV0ID0gc25pcHBldChtYXJrKTsKICByZXR1cm4gbmV3IGV4Y2VwdGlvbihtZXNzYWdlLCBtYXJrKTsKfQpmdW5jdGlvbiB0aHJvd0Vycm9yKHN0YXRlLCBtZXNzYWdlKSB7CiAgdGhyb3cgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSk7Cn0KZnVuY3Rpb24gdGhyb3dXYXJuaW5nKHN0YXRlLCBtZXNzYWdlKSB7CiAgaWYgKHN0YXRlLm9uV2FybmluZykgewogICAgc3RhdGUub25XYXJuaW5nLmNhbGwobnVsbCwgZ2VuZXJhdGVFcnJvcihzdGF0ZSwgbWVzc2FnZSkpOwogIH0KfQp2YXIgZGlyZWN0aXZlSGFuZGxlcnMgPSB7CiAgWUFNTDogZnVuY3Rpb24gaGFuZGxlWWFtbERpcmVjdGl2ZShzdGF0ZSwgbmFtZSwgYXJncykgewogICAgdmFyIG1hdGNoLCBtYWpvciwgbWlub3I7CiAgICBpZiAoc3RhdGUudmVyc2lvbiAhPT0gbnVsbCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgJVlBTUwgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoYXJncy5sZW5ndGggIT09IDEpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIllBTUwgZGlyZWN0aXZlIGFjY2VwdHMgZXhhY3RseSBvbmUgYXJndW1lbnQiKTsKICAgIH0KICAgIG1hdGNoID0gL14oWzAtOV0rKVwuKFswLTldKykkLy5leGVjKGFyZ3NbMF0pOwogICAgaWYgKG1hdGNoID09PSBudWxsKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIGFyZ3VtZW50IG9mIHRoZSBZQU1MIGRpcmVjdGl2ZSIpOwogICAgfQogICAgbWFqb3IgPSBwYXJzZUludChtYXRjaFsxXSwgMTApOwogICAgbWlub3IgPSBwYXJzZUludChtYXRjaFsyXSwgMTApOwogICAgaWYgKG1ham9yICE9PSAxKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ1bmFjY2VwdGFibGUgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogICAgc3RhdGUudmVyc2lvbiA9IGFyZ3NbMF07CiAgICBzdGF0ZS5jaGVja0xpbmVCcmVha3MgPSBtaW5vciA8IDI7CiAgICBpZiAobWlub3IgIT09IDEgJiYgbWlub3IgIT09IDIpIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAidW5zdXBwb3J0ZWQgWUFNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudCIpOwogICAgfQogIH0sCiAgVEFHOiBmdW5jdGlvbiBoYW5kbGVUYWdEaXJlY3RpdmUoc3RhdGUsIG5hbWUsIGFyZ3MpIHsKICAgIHZhciBoYW5kbGUsIHByZWZpeDsKICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiVEFHIGRpcmVjdGl2ZSBhY2NlcHRzIGV4YWN0bHkgdHdvIGFyZ3VtZW50cyIpOwogICAgfQogICAgaGFuZGxlID0gYXJnc1swXTsKICAgIHByZWZpeCA9IGFyZ3NbMV07CiAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImlsbC1mb3JtZWQgdGFnIGhhbmRsZSAoZmlyc3QgYXJndW1lbnQpIG9mIHRoZSBUQUcgZGlyZWN0aXZlIik7CiAgICB9CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIGhhbmRsZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3RoZXJlIGlzIGEgcHJldmlvdXNseSBkZWNsYXJlZCBzdWZmaXggZm9yICInICsgaGFuZGxlICsgJyIgdGFnIGhhbmRsZScpOwogICAgfQogICAgaWYgKCFQQVRURVJOX1RBR19VUkkudGVzdChwcmVmaXgpKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJpbGwtZm9ybWVkIHRhZyBwcmVmaXggKHNlY29uZCBhcmd1bWVudCkgb2YgdGhlIFRBRyBkaXJlY3RpdmUiKTsKICAgIH0KICAgIHRyeSB7CiAgICAgIHByZWZpeCA9IGRlY29kZVVSSUNvbXBvbmVudChwcmVmaXgpOwogICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgcHJlZml4IGlzIG1hbGZvcm1lZDogIiArIHByZWZpeCk7CiAgICB9CiAgICBzdGF0ZS50YWdNYXBbaGFuZGxlXSA9IHByZWZpeDsKICB9Cn07CmZ1bmN0aW9uIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBzdGFydCwgZW5kLCBjaGVja0pzb24pIHsKICB2YXIgX3Bvc2l0aW9uLCBfbGVuZ3RoLCBfY2hhcmFjdGVyLCBfcmVzdWx0OwogIGlmIChzdGFydCA8IGVuZCkgewogICAgX3Jlc3VsdCA9IHN0YXRlLmlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgaWYgKGNoZWNrSnNvbikgewogICAgICBmb3IgKF9wb3NpdGlvbiA9IDAsIF9sZW5ndGggPSBfcmVzdWx0Lmxlbmd0aDsgX3Bvc2l0aW9uIDwgX2xlbmd0aDsgX3Bvc2l0aW9uICs9IDEpIHsKICAgICAgICBfY2hhcmFjdGVyID0gX3Jlc3VsdC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICAgICAgaWYgKCEoX2NoYXJhY3RlciA9PT0gOSB8fCAzMiA8PSBfY2hhcmFjdGVyICYmIF9jaGFyYWN0ZXIgPD0gMTExNDExMSkpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB2YWxpZCBKU09OIGNoYXJhY3RlciIpOwogICAgICAgIH0KICAgICAgfQogICAgfSBlbHNlIGlmIChQQVRURVJOX05PTl9QUklOVEFCTEUudGVzdChfcmVzdWx0KSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGhlIHN0cmVhbSBjb250YWlucyBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMiKTsKICAgIH0KICAgIHN0YXRlLnJlc3VsdCArPSBfcmVzdWx0OwogIH0KfQpmdW5jdGlvbiBtZXJnZU1hcHBpbmdzKHN0YXRlLCBkZXN0aW5hdGlvbiwgc291cmNlLCBvdmVycmlkYWJsZUtleXMpIHsKICB2YXIgc291cmNlS2V5cywga2V5LCBpbmRleCwgcXVhbnRpdHk7CiAgaWYgKCFjb21tb24uaXNPYmplY3Qoc291cmNlKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImNhbm5vdCBtZXJnZSBtYXBwaW5nczsgdGhlIHByb3ZpZGVkIHNvdXJjZSBvYmplY3QgaXMgdW5hY2NlcHRhYmxlIik7CiAgfQogIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOwogIGZvciAoaW5kZXggPSAwLCBxdWFudGl0eSA9IHNvdXJjZUtleXMubGVuZ3RoOyBpbmRleCA8IHF1YW50aXR5OyBpbmRleCArPSAxKSB7CiAgICBrZXkgPSBzb3VyY2VLZXlzW2luZGV4XTsKICAgIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChkZXN0aW5hdGlvbiwga2V5KSkgewogICAgICBkZXN0aW5hdGlvbltrZXldID0gc291cmNlW2tleV07CiAgICAgIG92ZXJyaWRhYmxlS2V5c1trZXldID0gdHJ1ZTsKICAgIH0KICB9Cn0KZnVuY3Rpb24gc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgc3RhcnRMaW5lLCBzdGFydExpbmVTdGFydCwgc3RhcnRQb3MpIHsKICB2YXIgaW5kZXgsIHF1YW50aXR5OwogIGlmIChBcnJheS5pc0FycmF5KGtleU5vZGUpKSB7CiAgICBrZXlOb2RlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoa2V5Tm9kZSk7CiAgICBmb3IgKGluZGV4ID0gMCwgcXVhbnRpdHkgPSBrZXlOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlOb2RlW2luZGV4XSkpIHsKICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibmVzdGVkIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZCBpbnNpZGUga2V5cyIpOwogICAgICB9CiAgICAgIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGVbaW5kZXhdKSA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgICBrZXlOb2RlW2luZGV4XSA9ICJbb2JqZWN0IE9iamVjdF0iOwogICAgICB9CiAgICB9CiAgfQogIGlmICh0eXBlb2Yga2V5Tm9kZSA9PT0gIm9iamVjdCIgJiYgX2NsYXNzKGtleU5vZGUpID09PSAiW29iamVjdCBPYmplY3RdIikgewogICAga2V5Tm9kZSA9ICJbb2JqZWN0IE9iamVjdF0iOwogIH0KICBrZXlOb2RlID0gU3RyaW5nKGtleU5vZGUpOwogIGlmIChfcmVzdWx0ID09PSBudWxsKSB7CiAgICBfcmVzdWx0ID0ge307CiAgfQogIGlmIChrZXlUYWcgPT09ICJ0YWc6eWFtbC5vcmcsMjAwMjptZXJnZSIpIHsKICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlTm9kZSkpIHsKICAgICAgZm9yIChpbmRleCA9IDAsIHF1YW50aXR5ID0gdmFsdWVOb2RlLmxlbmd0aDsgaW5kZXggPCBxdWFudGl0eTsgaW5kZXggKz0gMSkgewogICAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZVtpbmRleF0sIG92ZXJyaWRhYmxlS2V5cyk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG1lcmdlTWFwcGluZ3Moc3RhdGUsIF9yZXN1bHQsIHZhbHVlTm9kZSwgb3ZlcnJpZGFibGVLZXlzKTsKICAgIH0KICB9IGVsc2UgewogICAgaWYgKCFzdGF0ZS5qc29uICYmICFfaGFzT3duUHJvcGVydHkkMS5jYWxsKG92ZXJyaWRhYmxlS2V5cywga2V5Tm9kZSkgJiYgX2hhc093blByb3BlcnR5JDEuY2FsbChfcmVzdWx0LCBrZXlOb2RlKSkgewogICAgICBzdGF0ZS5saW5lID0gc3RhcnRMaW5lIHx8IHN0YXRlLmxpbmU7CiAgICAgIHN0YXRlLmxpbmVTdGFydCA9IHN0YXJ0TGluZVN0YXJ0IHx8IHN0YXRlLmxpbmVTdGFydDsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGFydFBvcyB8fCBzdGF0ZS5wb3NpdGlvbjsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0ZWQgbWFwcGluZyBrZXkiKTsKICAgIH0KICAgIGlmIChrZXlOb2RlID09PSAiX19wcm90b19fIikgewogICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoX3Jlc3VsdCwga2V5Tm9kZSwgewogICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSwKICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLAogICAgICAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIHZhbHVlOiB2YWx1ZU5vZGUKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBfcmVzdWx0W2tleU5vZGVdID0gdmFsdWVOb2RlOwogICAgfQogICAgZGVsZXRlIG92ZXJyaWRhYmxlS2V5c1trZXlOb2RlXTsKICB9CiAgcmV0dXJuIF9yZXN1bHQ7Cn0KZnVuY3Rpb24gcmVhZExpbmVCcmVhayhzdGF0ZSkgewogIHZhciBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTApIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgfSBlbHNlIGlmIChjaCA9PT0gMTMpIHsKICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDEwKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICB9CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIGxpbmUgYnJlYWsgaXMgZXhwZWN0ZWQiKTsKICB9CiAgc3RhdGUubGluZSArPSAxOwogIHN0YXRlLmxpbmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogIHN0YXRlLmZpcnN0VGFiSW5MaW5lID0gLTE7Cn0KZnVuY3Rpb24gc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgYWxsb3dDb21tZW50cywgY2hlY2tJbmRlbnQpIHsKICB2YXIgbGluZUJyZWFrcyA9IDAsIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICB3aGlsZSAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gOSAmJiBzdGF0ZS5maXJzdFRhYkluTGluZSA9PT0gLTEpIHsKICAgICAgICBzdGF0ZS5maXJzdFRhYkluTGluZSA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB9CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmIChhbGxvd0NvbW1lbnRzICYmIGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlIChjaCAhPT0gMTAgJiYgY2ggIT09IDEzICYmIGNoICE9PSAwKTsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIHJlYWRMaW5lQnJlYWsoc3RhdGUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICBsaW5lQnJlYWtzKys7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQgPSAwOwogICAgICB3aGlsZSAoY2ggPT09IDMyKSB7CiAgICAgICAgc3RhdGUubGluZUluZGVudCsrOwogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgYnJlYWs7CiAgICB9CiAgfQogIGlmIChjaGVja0luZGVudCAhPT0gLTEgJiYgbGluZUJyZWFrcyAhPT0gMCAmJiBzdGF0ZS5saW5lSW5kZW50IDwgY2hlY2tJbmRlbnQpIHsKICAgIHRocm93V2FybmluZyhzdGF0ZSwgImRlZmljaWVudCBpbmRlbnRhdGlvbiIpOwogIH0KICByZXR1cm4gbGluZUJyZWFrczsKfQpmdW5jdGlvbiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb24sIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChfcG9zaXRpb24pOwogIGlmICgoY2ggPT09IDQ1IHx8IGNoID09PSA0NikgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMSkgJiYgY2ggPT09IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoX3Bvc2l0aW9uICsgMikpIHsKICAgIF9wb3NpdGlvbiArPSAzOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KF9wb3NpdGlvbik7CiAgICBpZiAoY2ggPT09IDAgfHwgaXNfV1NfT1JfRU9MKGNoKSkgewogICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICB9CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIGNvdW50KSB7CiAgaWYgKGNvdW50ID09PSAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gIiAiOwogIH0gZWxzZSBpZiAoY291bnQgPiAxKSB7CiAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBjb3VudCAtIDEpOwogIH0KfQpmdW5jdGlvbiByZWFkUGxhaW5TY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQsIHdpdGhpbkZsb3dDb2xsZWN0aW9uKSB7CiAgdmFyIHByZWNlZGluZywgZm9sbG93aW5nLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhhc1BlbmRpbmdDb250ZW50LCBfbGluZSwgX2xpbmVTdGFydCwgX2xpbmVJbmRlbnQsIF9raW5kID0gc3RhdGUua2luZCwgX3Jlc3VsdCA9IHN0YXRlLnJlc3VsdCwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoaXNfV1NfT1JfRU9MKGNoKSB8fCBpc19GTE9XX0lORElDQVRPUihjaCkgfHwgY2ggPT09IDM1IHx8IGNoID09PSAzOCB8fCBjaCA9PT0gNDIgfHwgY2ggPT09IDMzIHx8IGNoID09PSAxMjQgfHwgY2ggPT09IDYyIHx8IGNoID09PSAzOSB8fCBjaCA9PT0gMzQgfHwgY2ggPT09IDM3IHx8IGNoID09PSA2NCB8fCBjaCA9PT0gOTYpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgaWYgKGNoID09PSA2MyB8fCBjaCA9PT0gNDUpIHsKICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICBoYXNQZW5kaW5nQ29udGVudCA9IGZhbHNlOwogIHdoaWxlIChjaCAhPT0gMCkgewogICAgaWYgKGNoID09PSA1OCkgewogICAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgIGlmIChpc19XU19PUl9FT0woZm9sbG93aW5nKSB8fCB3aXRoaW5GbG93Q29sbGVjdGlvbiAmJiBpc19GTE9XX0lORElDQVRPUihmb2xsb3dpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoY2ggPT09IDM1KSB7CiAgICAgIHByZWNlZGluZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gLSAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChwcmVjZWRpbmcpKSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpIHx8IHdpdGhpbkZsb3dDb2xsZWN0aW9uICYmIGlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgICBicmVhazsKICAgIH0gZWxzZSBpZiAoaXNfRU9MKGNoKSkgewogICAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICAgIF9saW5lSW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIC0xKTsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPj0gbm9kZUluZGVudCkgewogICAgICAgIGhhc1BlbmRpbmdDb250ZW50ID0gdHJ1ZTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnBvc2l0aW9uID0gY2FwdHVyZUVuZDsKICAgICAgICBzdGF0ZS5saW5lID0gX2xpbmU7CiAgICAgICAgc3RhdGUubGluZVN0YXJ0ID0gX2xpbmVTdGFydDsKICAgICAgICBzdGF0ZS5saW5lSW5kZW50ID0gX2xpbmVJbmRlbnQ7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgIGlmIChoYXNQZW5kaW5nQ29udGVudCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBjYXB0dXJlRW5kLCBmYWxzZSk7CiAgICAgIHdyaXRlRm9sZGVkTGluZXMoc3RhdGUsIHN0YXRlLmxpbmUgLSBfbGluZSk7CiAgICAgIGNhcHR1cmVTdGFydCA9IGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgaGFzUGVuZGluZ0NvbnRlbnQgPSBmYWxzZTsKICAgIH0KICAgIGlmICghaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbiArIDE7CiAgICB9CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgfQogIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGZhbHNlKTsKICBpZiAoc3RhdGUucmVzdWx0KSB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CiAgc3RhdGUua2luZCA9IF9raW5kOwogIHN0YXRlLnJlc3VsdCA9IF9yZXN1bHQ7CiAgcmV0dXJuIGZhbHNlOwp9CmZ1bmN0aW9uIHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2gsIGNhcHR1cmVTdGFydCwgY2FwdHVyZUVuZDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzkpIHsKICAgIHJldHVybiBmYWxzZTsKICB9CiAgc3RhdGUua2luZCA9ICJzY2FsYXIiOwogIHN0YXRlLnJlc3VsdCA9ICIiOwogIHN0YXRlLnBvc2l0aW9uKys7CiAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogIHdoaWxlICgoY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSkgIT09IDApIHsKICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChjaCA9PT0gMzkpIHsKICAgICAgICBjYXB0dXJlU3RhcnQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICAgIGNhcHR1cmVFbmQgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIHNpbmdsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZERvdWJsZVF1b3RlZFNjYWxhcihzdGF0ZSwgbm9kZUluZGVudCkgewogIHZhciBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIGhleExlbmd0aCwgaGV4UmVzdWx0LCB0bXAsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSAzNCkgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBzdGF0ZS5raW5kID0gInNjYWxhciI7CiAgc3RhdGUucmVzdWx0ID0gIiI7CiAgc3RhdGUucG9zaXRpb24rKzsKICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgd2hpbGUgKChjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pKSAhPT0gMCkgewogICAgaWYgKGNoID09PSAzNCkgewogICAgICBjYXB0dXJlU2VnbWVudChzdGF0ZSwgY2FwdHVyZVN0YXJ0LCBzdGF0ZS5wb3NpdGlvbiwgdHJ1ZSk7CiAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIHJldHVybiB0cnVlOwogICAgfSBlbHNlIGlmIChjaCA9PT0gOTIpIHsKICAgICAgY2FwdHVyZVNlZ21lbnQoc3RhdGUsIGNhcHR1cmVTdGFydCwgc3RhdGUucG9zaXRpb24sIHRydWUpOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgZmFsc2UsIG5vZGVJbmRlbnQpOwogICAgICB9IGVsc2UgaWYgKGNoIDwgMjU2ICYmIHNpbXBsZUVzY2FwZUNoZWNrW2NoXSkgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBzaW1wbGVFc2NhcGVNYXBbY2hdOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSBpZiAoKHRtcCA9IGVzY2FwZWRIZXhMZW4oY2gpKSA+IDApIHsKICAgICAgICBoZXhMZW5ndGggPSB0bXA7CiAgICAgICAgaGV4UmVzdWx0ID0gMDsKICAgICAgICBmb3IgKDsgaGV4TGVuZ3RoID4gMDsgaGV4TGVuZ3RoLS0pIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICAgIGlmICgodG1wID0gZnJvbUhleENvZGUoY2gpKSA+PSAwKSB7CiAgICAgICAgICAgIGhleFJlc3VsdCA9IChoZXhSZXN1bHQgPDwgNCkgKyB0bXA7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZXhwZWN0ZWQgaGV4YWRlY2ltYWwgY2hhcmFjdGVyIik7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjaGFyRnJvbUNvZGVwb2ludChoZXhSZXN1bHQpOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInVua25vd24gZXNjYXBlIHNlcXVlbmNlIik7CiAgICAgIH0KICAgICAgY2FwdHVyZVN0YXJ0ID0gY2FwdHVyZUVuZCA9IHN0YXRlLnBvc2l0aW9uOwogICAgfSBlbHNlIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIGNhcHR1cmVFbmQsIHRydWUpOwogICAgICB3cml0ZUZvbGRlZExpbmVzKHN0YXRlLCBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCBmYWxzZSwgbm9kZUluZGVudCkpOwogICAgICBjYXB0dXJlU3RhcnQgPSBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9IGVsc2UgaWYgKHN0YXRlLnBvc2l0aW9uID09PSBzdGF0ZS5saW5lU3RhcnQgJiYgdGVzdERvY3VtZW50U2VwYXJhdG9yKHN0YXRlKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIGRvY3VtZW50IHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBjYXB0dXJlRW5kID0gc3RhdGUucG9zaXRpb247CiAgICB9CiAgfQogIHRocm93RXJyb3Ioc3RhdGUsICJ1bmV4cGVjdGVkIGVuZCBvZiB0aGUgc3RyZWFtIHdpdGhpbiBhIGRvdWJsZSBxdW90ZWQgc2NhbGFyIik7Cn0KZnVuY3Rpb24gcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIHJlYWROZXh0ID0gdHJ1ZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9yZXN1bHQsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIGZvbGxvd2luZywgdGVybWluYXRvciwgaXNQYWlyLCBpc0V4cGxpY2l0UGFpciwgaXNNYXBwaW5nLCBvdmVycmlkYWJsZUtleXMgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKSwga2V5Tm9kZSwga2V5VGFnLCB2YWx1ZU5vZGUsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoID09PSA5MSkgewogICAgdGVybWluYXRvciA9IDkzOwogICAgaXNNYXBwaW5nID0gZmFsc2U7CiAgICBfcmVzdWx0ID0gW107CiAgfSBlbHNlIGlmIChjaCA9PT0gMTIzKSB7CiAgICB0ZXJtaW5hdG9yID0gMTI1OwogICAgaXNNYXBwaW5nID0gdHJ1ZTsKICAgIF9yZXN1bHQgPSB7fTsKICB9IGVsc2UgewogICAgcmV0dXJuIGZhbHNlOwogIH0KICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gdGVybWluYXRvcikgewogICAgICBzdGF0ZS5wb3NpdGlvbisrOwogICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgICBzdGF0ZS5raW5kID0gaXNNYXBwaW5nID8gIm1hcHBpbmciIDogInNlcXVlbmNlIjsKICAgICAgc3RhdGUucmVzdWx0ID0gX3Jlc3VsdDsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9IGVsc2UgaWYgKCFyZWFkTmV4dCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAibWlzc2VkIGNvbW1hIGJldHdlZW4gZmxvdyBjb2xsZWN0aW9uIGVudHJpZXMiKTsKICAgIH0gZWxzZSBpZiAoY2ggPT09IDQ0KSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJleHBlY3RlZCB0aGUgbm9kZSBjb250ZW50LCBidXQgZm91bmQgJywnIik7CiAgICB9CiAgICBrZXlUYWcgPSBrZXlOb2RlID0gdmFsdWVOb2RlID0gbnVsbDsKICAgIGlzUGFpciA9IGlzRXhwbGljaXRQYWlyID0gZmFsc2U7CiAgICBpZiAoY2ggPT09IDYzKSB7CiAgICAgIGZvbGxvd2luZyA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAxKTsKICAgICAgaWYgKGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgICAgaXNQYWlyID0gaXNFeHBsaWNpdFBhaXIgPSB0cnVlOwogICAgICAgIHN0YXRlLnBvc2l0aW9uKys7CiAgICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIH0KICAgIH0KICAgIF9saW5lID0gc3RhdGUubGluZTsKICAgIF9saW5lU3RhcnQgPSBzdGF0ZS5saW5lU3RhcnQ7CiAgICBfcG9zID0gc3RhdGUucG9zaXRpb247CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9GTE9XX0lOLCBmYWxzZSwgdHJ1ZSk7CiAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChpc0V4cGxpY2l0UGFpciB8fCBzdGF0ZS5saW5lID09PSBfbGluZSkgJiYgY2ggPT09IDU4KSB7CiAgICAgIGlzUGFpciA9IHRydWU7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgbm9kZUluZGVudCk7CiAgICAgIGNvbXBvc2VOb2RlKHN0YXRlLCBub2RlSW5kZW50LCBDT05URVhUX0ZMT1dfSU4sIGZhbHNlLCB0cnVlKTsKICAgICAgdmFsdWVOb2RlID0gc3RhdGUucmVzdWx0OwogICAgfQogICAgaWYgKGlzTWFwcGluZykgewogICAgICBzdG9yZU1hcHBpbmdQYWlyKHN0YXRlLCBfcmVzdWx0LCBvdmVycmlkYWJsZUtleXMsIGtleVRhZywga2V5Tm9kZSwgdmFsdWVOb2RlLCBfbGluZSwgX2xpbmVTdGFydCwgX3Bvcyk7CiAgICB9IGVsc2UgaWYgKGlzUGFpcikgewogICAgICBfcmVzdWx0LnB1c2goc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgbnVsbCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2xpbmUsIF9saW5lU3RhcnQsIF9wb3MpKTsKICAgIH0gZWxzZSB7CiAgICAgIF9yZXN1bHQucHVzaChrZXlOb2RlKTsKICAgIH0KICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIG5vZGVJbmRlbnQpOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDQpIHsKICAgICAgcmVhZE5leHQgPSB0cnVlOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICByZWFkTmV4dCA9IGZhbHNlOwogICAgfQogIH0KICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSBmbG93IGNvbGxlY3Rpb24iKTsKfQpmdW5jdGlvbiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIG5vZGVJbmRlbnQpIHsKICB2YXIgY2FwdHVyZVN0YXJ0LCBmb2xkaW5nLCBjaG9tcGluZyA9IENIT01QSU5HX0NMSVAsIGRpZFJlYWRDb250ZW50ID0gZmFsc2UsIGRldGVjdGVkSW5kZW50ID0gZmFsc2UsIHRleHRJbmRlbnQgPSBub2RlSW5kZW50LCBlbXB0eUxpbmVzID0gMCwgYXRNb3JlSW5kZW50ZWQgPSBmYWxzZSwgdG1wLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCA9PT0gMTI0KSB7CiAgICBmb2xkaW5nID0gZmFsc2U7CiAgfSBlbHNlIGlmIChjaCA9PT0gNjIpIHsKICAgIGZvbGRpbmcgPSB0cnVlOwogIH0gZWxzZSB7CiAgICByZXR1cm4gZmFsc2U7CiAgfQogIHN0YXRlLmtpbmQgPSAic2NhbGFyIjsKICBzdGF0ZS5yZXN1bHQgPSAiIjsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIGlmIChjaCA9PT0gNDMgfHwgY2ggPT09IDQ1KSB7CiAgICAgIGlmIChDSE9NUElOR19DTElQID09PSBjaG9tcGluZykgewogICAgICAgIGNob21waW5nID0gY2ggPT09IDQzID8gQ0hPTVBJTkdfS0VFUCA6IENIT01QSU5HX1NUUklQOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYSBjaG9tcGluZyBtb2RlIGlkZW50aWZpZXIiKTsKICAgICAgfQogICAgfSBlbHNlIGlmICgodG1wID0gZnJvbURlY2ltYWxDb2RlKGNoKSkgPj0gMCkgewogICAgICBpZiAodG1wID09PSAwKSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBleHBsaWNpdCBpbmRlbnRhdGlvbiB3aWR0aCBvZiBhIGJsb2NrIHNjYWxhcjsgaXQgY2Fubm90IGJlIGxlc3MgdGhhbiBvbmUiKTsKICAgICAgfSBlbHNlIGlmICghZGV0ZWN0ZWRJbmRlbnQpIHsKICAgICAgICB0ZXh0SW5kZW50ID0gbm9kZUluZGVudCArIHRtcCAtIDE7CiAgICAgICAgZGV0ZWN0ZWRJbmRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJyZXBlYXQgb2YgYW4gaW5kZW50YXRpb24gd2lkdGggaWRlbnRpZmllciIpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBicmVhazsKICAgIH0KICB9CiAgaWYgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgZG8gewogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpOwogICAgaWYgKGNoID09PSAzNSkgewogICAgICBkbyB7CiAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICB9IHdoaWxlICghaXNfRU9MKGNoKSAmJiBjaCAhPT0gMCk7CiAgICB9CiAgfQogIHdoaWxlIChjaCAhPT0gMCkgewogICAgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBzdGF0ZS5saW5lSW5kZW50ID0gMDsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgICB3aGlsZSAoKCFkZXRlY3RlZEluZGVudCB8fCBzdGF0ZS5saW5lSW5kZW50IDwgdGV4dEluZGVudCkgJiYgY2ggPT09IDMyKSB7CiAgICAgIHN0YXRlLmxpbmVJbmRlbnQrKzsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgaWYgKCFkZXRlY3RlZEluZGVudCAmJiBzdGF0ZS5saW5lSW5kZW50ID4gdGV4dEluZGVudCkgewogICAgICB0ZXh0SW5kZW50ID0gc3RhdGUubGluZUluZGVudDsKICAgIH0KICAgIGlmIChpc19FT0woY2gpKSB7CiAgICAgIGVtcHR5TGluZXMrKzsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUubGluZUluZGVudCA8IHRleHRJbmRlbnQpIHsKICAgICAgaWYgKGNob21waW5nID09PSBDSE9NUElOR19LRUVQKSB7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZGlkUmVhZENvbnRlbnQgPyAxICsgZW1wdHlMaW5lcyA6IGVtcHR5TGluZXMpOwogICAgICB9IGVsc2UgaWYgKGNob21waW5nID09PSBDSE9NUElOR19DTElQKSB7CiAgICAgICAgaWYgKGRpZFJlYWRDb250ZW50KSB7CiAgICAgICAgICBzdGF0ZS5yZXN1bHQgKz0gIlxuIjsKICAgICAgICB9CiAgICAgIH0KICAgICAgYnJlYWs7CiAgICB9CiAgICBpZiAoZm9sZGluZykgewogICAgICBpZiAoaXNfV0hJVEVfU1BBQ0UoY2gpKSB7CiAgICAgICAgYXRNb3JlSW5kZW50ZWQgPSB0cnVlOwogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGRpZFJlYWRDb250ZW50ID8gMSArIGVtcHR5TGluZXMgOiBlbXB0eUxpbmVzKTsKICAgICAgfSBlbHNlIGlmIChhdE1vcmVJbmRlbnRlZCkgewogICAgICAgIGF0TW9yZUluZGVudGVkID0gZmFsc2U7CiAgICAgICAgc3RhdGUucmVzdWx0ICs9IGNvbW1vbi5yZXBlYXQoIlxuIiwgZW1wdHlMaW5lcyArIDEpOwogICAgICB9IGVsc2UgaWYgKGVtcHR5TGluZXMgPT09IDApIHsKICAgICAgICBpZiAoZGlkUmVhZENvbnRlbnQpIHsKICAgICAgICAgIHN0YXRlLnJlc3VsdCArPSAiICI7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHN0YXRlLnJlc3VsdCArPSBjb21tb24ucmVwZWF0KCJcbiIsIGVtcHR5TGluZXMpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgKz0gY29tbW9uLnJlcGVhdCgiXG4iLCBkaWRSZWFkQ29udGVudCA/IDEgKyBlbXB0eUxpbmVzIDogZW1wdHlMaW5lcyk7CiAgICB9CiAgICBkaWRSZWFkQ29udGVudCA9IHRydWU7CiAgICBkZXRlY3RlZEluZGVudCA9IHRydWU7CiAgICBlbXB0eUxpbmVzID0gMDsKICAgIGNhcHR1cmVTdGFydCA9IHN0YXRlLnBvc2l0aW9uOwogICAgd2hpbGUgKCFpc19FT0woY2gpICYmIGNoICE9PSAwKSB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGNhcHR1cmVTZWdtZW50KHN0YXRlLCBjYXB0dXJlU3RhcnQsIHN0YXRlLnBvc2l0aW9uLCBmYWxzZSk7CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIHJlYWRCbG9ja1NlcXVlbmNlKHN0YXRlLCBub2RlSW5kZW50KSB7CiAgdmFyIF9saW5lLCBfdGFnID0gc3RhdGUudGFnLCBfYW5jaG9yID0gc3RhdGUuYW5jaG9yLCBfcmVzdWx0ID0gW10sIGZvbGxvd2luZywgZGV0ZWN0ZWQgPSBmYWxzZSwgY2g7CiAgaWYgKHN0YXRlLmZpcnN0VGFiSW5MaW5lICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIGlmIChzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgIHN0YXRlLmFuY2hvck1hcFtzdGF0ZS5hbmNob3JdID0gX3Jlc3VsdDsKICB9CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICB3aGlsZSAoY2ggIT09IDApIHsKICAgIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHsKICAgICAgc3RhdGUucG9zaXRpb24gPSBzdGF0ZS5maXJzdFRhYkluTGluZTsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhYiBjaGFyYWN0ZXJzIG11c3Qgbm90IGJlIHVzZWQgaW4gaW5kZW50YXRpb24iKTsKICAgIH0KICAgIGlmIChjaCAhPT0gNDUpIHsKICAgICAgYnJlYWs7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBpZiAoIWlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGJyZWFrOwogICAgfQogICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgc3RhdGUucG9zaXRpb24rKzsKICAgIGlmIChza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSkpIHsKICAgICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPD0gbm9kZUluZGVudCkgewogICAgICAgIF9yZXN1bHQucHVzaChudWxsKTsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICB9CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBjb21wb3NlTm9kZShzdGF0ZSwgbm9kZUluZGVudCwgQ09OVEVYVF9CTE9DS19JTiwgZmFsc2UsIHRydWUpOwogICAgX3Jlc3VsdC5wdXNoKHN0YXRlLnJlc3VsdCk7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgJiYgY2ggIT09IDApIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImJhZCBpbmRlbnRhdGlvbiBvZiBhIHNlcXVlbmNlIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoZGV0ZWN0ZWQpIHsKICAgIHN0YXRlLnRhZyA9IF90YWc7CiAgICBzdGF0ZS5hbmNob3IgPSBfYW5jaG9yOwogICAgc3RhdGUua2luZCA9ICJzZXF1ZW5jZSI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogICAgcmV0dXJuIHRydWU7CiAgfQogIHJldHVybiBmYWxzZTsKfQpmdW5jdGlvbiByZWFkQmxvY2tNYXBwaW5nKHN0YXRlLCBub2RlSW5kZW50LCBmbG93SW5kZW50KSB7CiAgdmFyIGZvbGxvd2luZywgYWxsb3dDb21wYWN0LCBfbGluZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MsIF90YWcgPSBzdGF0ZS50YWcsIF9hbmNob3IgPSBzdGF0ZS5hbmNob3IsIF9yZXN1bHQgPSB7fSwgb3ZlcnJpZGFibGVLZXlzID0gLyogQF9fUFVSRV9fICovIE9iamVjdC5jcmVhdGUobnVsbCksIGtleVRhZyA9IG51bGwsIGtleU5vZGUgPSBudWxsLCB2YWx1ZU5vZGUgPSBudWxsLCBhdEV4cGxpY2l0S2V5ID0gZmFsc2UsIGRldGVjdGVkID0gZmFsc2UsIGNoOwogIGlmIChzdGF0ZS5maXJzdFRhYkluTGluZSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IF9yZXN1bHQ7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgd2hpbGUgKGNoICE9PSAwKSB7CiAgICBpZiAoIWF0RXhwbGljaXRLZXkgJiYgc3RhdGUuZmlyc3RUYWJJbkxpbmUgIT09IC0xKSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uID0gc3RhdGUuZmlyc3RUYWJJbkxpbmU7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWIgY2hhcmFjdGVycyBtdXN0IG5vdCBiZSB1c2VkIGluIGluZGVudGF0aW9uIik7CiAgICB9CiAgICBmb2xsb3dpbmcgPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICBfbGluZSA9IHN0YXRlLmxpbmU7CiAgICBpZiAoKGNoID09PSA2MyB8fCBjaCA9PT0gNTgpICYmIGlzX1dTX09SX0VPTChmb2xsb3dpbmcpKSB7CiAgICAgIGlmIChjaCA9PT0gNjMpIHsKICAgICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgIH0KICAgICAgICBkZXRlY3RlZCA9IHRydWU7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IHRydWU7CiAgICAgICAgYWxsb3dDb21wYWN0ID0gdHJ1ZTsKICAgICAgfSBlbHNlIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgIGFsbG93Q29tcGFjdCA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImluY29tcGxldGUgZXhwbGljaXQgbWFwcGluZyBwYWlyOyBhIGtleSBub2RlIGlzIG1pc3NlZDsgb3IgZm9sbG93ZWQgYnkgYSBub24tdGFidWxhdGVkIGVtcHR5IGxpbmUiKTsKICAgICAgfQogICAgICBzdGF0ZS5wb3NpdGlvbiArPSAxOwogICAgICBjaCA9IGZvbGxvd2luZzsKICAgIH0gZWxzZSB7CiAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgX2tleUxpbmVTdGFydCA9IHN0YXRlLmxpbmVTdGFydDsKICAgICAgX2tleVBvcyA9IHN0YXRlLnBvc2l0aW9uOwogICAgICBpZiAoIWNvbXBvc2VOb2RlKHN0YXRlLCBmbG93SW5kZW50LCBDT05URVhUX0ZMT1dfT1VULCBmYWxzZSwgdHJ1ZSkpIHsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoc3RhdGUubGluZSA9PT0gX2xpbmUpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgICAgIHdoaWxlIChpc19XSElURV9TUEFDRShjaCkpIHsKICAgICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKGNoID09PSA1OCkgewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgICAgaWYgKCFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIGlzIGV4cGVjdGVkIGFmdGVyIHRoZSBrZXktdmFsdWUgc2VwYXJhdG9yIHdpdGhpbiBhIGJsb2NrIG1hcHBpbmciKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgICAgIHN0b3JlTWFwcGluZ1BhaXIoc3RhdGUsIF9yZXN1bHQsIG92ZXJyaWRhYmxlS2V5cywga2V5VGFnLCBrZXlOb2RlLCBudWxsLCBfa2V5TGluZSwgX2tleUxpbmVTdGFydCwgX2tleVBvcyk7CiAgICAgICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICAgICAgfQogICAgICAgICAgZGV0ZWN0ZWQgPSB0cnVlOwogICAgICAgICAgYXRFeHBsaWNpdEtleSA9IGZhbHNlOwogICAgICAgICAgYWxsb3dDb21wYWN0ID0gZmFsc2U7CiAgICAgICAgICBrZXlUYWcgPSBzdGF0ZS50YWc7CiAgICAgICAgICBrZXlOb2RlID0gc3RhdGUucmVzdWx0OwogICAgICAgIH0gZWxzZSBpZiAoZGV0ZWN0ZWQpIHsKICAgICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYW4gaW1wbGljaXQgbWFwcGluZyBwYWlyOyBhIGNvbG9uIGlzIG1pc3NlZCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkZXRlY3RlZCkgewogICAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJjYW4gbm90IHJlYWQgYSBibG9jayBtYXBwaW5nIGVudHJ5OyBhIG11bHRpbGluZSBrZXkgbWF5IG5vdCBiZSBhbiBpbXBsaWNpdCBrZXkiKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgICAgIHN0YXRlLmFuY2hvciA9IF9hbmNob3I7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgIH0KICAgIGlmIChzdGF0ZS5saW5lID09PSBfbGluZSB8fCBzdGF0ZS5saW5lSW5kZW50ID4gbm9kZUluZGVudCkgewogICAgICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgICAgIF9rZXlMaW5lID0gc3RhdGUubGluZTsKICAgICAgICBfa2V5TGluZVN0YXJ0ID0gc3RhdGUubGluZVN0YXJ0OwogICAgICAgIF9rZXlQb3MgPSBzdGF0ZS5wb3NpdGlvbjsKICAgICAgfQogICAgICBpZiAoY29tcG9zZU5vZGUoc3RhdGUsIG5vZGVJbmRlbnQsIENPTlRFWFRfQkxPQ0tfT1VULCB0cnVlLCBhbGxvd0NvbXBhY3QpKSB7CiAgICAgICAgaWYgKGF0RXhwbGljaXRLZXkpIHsKICAgICAgICAgIGtleU5vZGUgPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhbHVlTm9kZSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYgKCFhdEV4cGxpY2l0S2V5KSB7CiAgICAgICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIHZhbHVlTm9kZSwgX2tleUxpbmUsIF9rZXlMaW5lU3RhcnQsIF9rZXlQb3MpOwogICAgICAgIGtleVRhZyA9IGtleU5vZGUgPSB2YWx1ZU5vZGUgPSBudWxsOwogICAgICB9CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICAgIH0KICAgIGlmICgoc3RhdGUubGluZSA9PT0gX2xpbmUgfHwgc3RhdGUubGluZUluZGVudCA+IG5vZGVJbmRlbnQpICYmIGNoICE9PSAwKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICJiYWQgaW5kZW50YXRpb24gb2YgYSBtYXBwaW5nIGVudHJ5Iik7CiAgICB9IGVsc2UgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPCBub2RlSW5kZW50KSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICBpZiAoYXRFeHBsaWNpdEtleSkgewogICAgc3RvcmVNYXBwaW5nUGFpcihzdGF0ZSwgX3Jlc3VsdCwgb3ZlcnJpZGFibGVLZXlzLCBrZXlUYWcsIGtleU5vZGUsIG51bGwsIF9rZXlMaW5lLCBfa2V5TGluZVN0YXJ0LCBfa2V5UG9zKTsKICB9CiAgaWYgKGRldGVjdGVkKSB7CiAgICBzdGF0ZS50YWcgPSBfdGFnOwogICAgc3RhdGUuYW5jaG9yID0gX2FuY2hvcjsKICAgIHN0YXRlLmtpbmQgPSAibWFwcGluZyI7CiAgICBzdGF0ZS5yZXN1bHQgPSBfcmVzdWx0OwogIH0KICByZXR1cm4gZGV0ZWN0ZWQ7Cn0KZnVuY3Rpb24gcmVhZFRhZ1Byb3BlcnR5KHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgaXNWZXJiYXRpbSA9IGZhbHNlLCBpc05hbWVkID0gZmFsc2UsIHRhZ0hhbmRsZSwgdGFnTmFtZSwgY2g7CiAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggIT09IDMzKSByZXR1cm4gZmFsc2U7CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImR1cGxpY2F0aW9uIG9mIGEgdGFnIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBpZiAoY2ggPT09IDYwKSB7CiAgICBpc1ZlcmJhdGltID0gdHJ1ZTsKICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICB9IGVsc2UgaWYgKGNoID09PSAzMykgewogICAgaXNOYW1lZCA9IHRydWU7CiAgICB0YWdIYW5kbGUgPSAiISEiOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0gZWxzZSB7CiAgICB0YWdIYW5kbGUgPSAiISI7CiAgfQogIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBkbyB7CiAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgIH0gd2hpbGUgKGNoICE9PSAwICYmIGNoICE9PSA2Mik7CiAgICBpZiAoc3RhdGUucG9zaXRpb24gPCBzdGF0ZS5sZW5ndGgpIHsKICAgICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICB9IGVsc2UgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5leHBlY3RlZCBlbmQgb2YgdGhlIHN0cmVhbSB3aXRoaW4gYSB2ZXJiYXRpbSB0YWciKTsKICAgIH0KICB9IGVsc2UgewogICAgd2hpbGUgKGNoICE9PSAwICYmICFpc19XU19PUl9FT0woY2gpKSB7CiAgICAgIGlmIChjaCA9PT0gMzMpIHsKICAgICAgICBpZiAoIWlzTmFtZWQpIHsKICAgICAgICAgIHRhZ0hhbmRsZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiAtIDEsIHN0YXRlLnBvc2l0aW9uICsgMSk7CiAgICAgICAgICBpZiAoIVBBVFRFUk5fVEFHX0hBTkRMRS50ZXN0KHRhZ0hhbmRsZSkpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWVkIHRhZyBoYW5kbGUgY2Fubm90IGNvbnRhaW4gc3VjaCBjaGFyYWN0ZXJzIik7CiAgICAgICAgICB9CiAgICAgICAgICBpc05hbWVkID0gdHJ1ZTsKICAgICAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uICsgMTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZXhjbGFtYXRpb24gbWFya3MiKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgdGFnTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgaWYgKFBBVFRFUk5fRkxPV19JTkRJQ0FUT1JTLnRlc3QodGFnTmFtZSkpIHsKICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgInRhZyBzdWZmaXggY2Fubm90IGNvbnRhaW4gZmxvdyBpbmRpY2F0b3IgY2hhcmFjdGVycyIpOwogICAgfQogIH0KICBpZiAodGFnTmFtZSAmJiAhUEFUVEVSTl9UQUdfVVJJLnRlc3QodGFnTmFtZSkpIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICJ0YWcgbmFtZSBjYW5ub3QgY29udGFpbiBzdWNoIGNoYXJhY3RlcnM6ICIgKyB0YWdOYW1lKTsKICB9CiAgdHJ5IHsKICAgIHRhZ05hbWUgPSBkZWNvZGVVUklDb21wb25lbnQodGFnTmFtZSk7CiAgfSBjYXRjaCAoZXJyKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAidGFnIG5hbWUgaXMgbWFsZm9ybWVkOiAiICsgdGFnTmFtZSk7CiAgfQogIGlmIChpc1ZlcmJhdGltKSB7CiAgICBzdGF0ZS50YWcgPSB0YWdOYW1lOwogIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS50YWdNYXAsIHRhZ0hhbmRsZSkpIHsKICAgIHN0YXRlLnRhZyA9IHN0YXRlLnRhZ01hcFt0YWdIYW5kbGVdICsgdGFnTmFtZTsKICB9IGVsc2UgaWYgKHRhZ0hhbmRsZSA9PT0gIiEiKSB7CiAgICBzdGF0ZS50YWcgPSAiISIgKyB0YWdOYW1lOwogIH0gZWxzZSBpZiAodGFnSGFuZGxlID09PSAiISEiKSB7CiAgICBzdGF0ZS50YWcgPSAidGFnOnlhbWwub3JnLDIwMDI6IiArIHRhZ05hbWU7CiAgfSBlbHNlIHsKICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmRlY2xhcmVkIHRhZyBoYW5kbGUgIicgKyB0YWdIYW5kbGUgKyAnIicpOwogIH0KICByZXR1cm4gdHJ1ZTsKfQpmdW5jdGlvbiByZWFkQW5jaG9yUHJvcGVydHkoc3RhdGUpIHsKICB2YXIgX3Bvc2l0aW9uLCBjaDsKICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogIGlmIChjaCAhPT0gMzgpIHJldHVybiBmYWxzZTsKICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZHVwbGljYXRpb24gb2YgYW4gYW5jaG9yIHByb3BlcnR5Iik7CiAgfQogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYW5jaG9yIG5vZGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIiKTsKICB9CiAgc3RhdGUuYW5jaG9yID0gc3RhdGUuaW5wdXQuc2xpY2UoX3Bvc2l0aW9uLCBzdGF0ZS5wb3NpdGlvbik7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gcmVhZEFsaWFzKHN0YXRlKSB7CiAgdmFyIF9wb3NpdGlvbiwgYWxpYXMsIGNoOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbik7CiAgaWYgKGNoICE9PSA0MikgcmV0dXJuIGZhbHNlOwogIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICBfcG9zaXRpb24gPSBzdGF0ZS5wb3NpdGlvbjsKICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkgJiYgIWlzX0ZMT1dfSU5ESUNBVE9SKGNoKSkgewogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogIH0KICBpZiAoc3RhdGUucG9zaXRpb24gPT09IF9wb3NpdGlvbikgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm5hbWUgb2YgYW4gYWxpYXMgbm9kZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNoYXJhY3RlciIpOwogIH0KICBhbGlhcyA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogIGlmICghX2hhc093blByb3BlcnR5JDEuY2FsbChzdGF0ZS5hbmNob3JNYXAsIGFsaWFzKSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgJ3VuaWRlbnRpZmllZCBhbGlhcyAiJyArIGFsaWFzICsgJyInKTsKICB9CiAgc3RhdGUucmVzdWx0ID0gc3RhdGUuYW5jaG9yTWFwW2FsaWFzXTsKICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgcmV0dXJuIHRydWU7Cn0KZnVuY3Rpb24gY29tcG9zZU5vZGUoc3RhdGUsIHBhcmVudEluZGVudCwgbm9kZUNvbnRleHQsIGFsbG93VG9TZWVrLCBhbGxvd0NvbXBhY3QpIHsKICB2YXIgYWxsb3dCbG9ja1N0eWxlcywgYWxsb3dCbG9ja1NjYWxhcnMsIGFsbG93QmxvY2tDb2xsZWN0aW9ucywgaW5kZW50U3RhdHVzID0gMSwgYXROZXdMaW5lID0gZmFsc2UsIGhhc0NvbnRlbnQgPSBmYWxzZSwgdHlwZUluZGV4LCB0eXBlUXVhbnRpdHksIHR5cGVMaXN0LCB0eXBlMiwgZmxvd0luZGVudCwgYmxvY2tJbmRlbnQ7CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigib3BlbiIsIHN0YXRlKTsKICB9CiAgc3RhdGUudGFnID0gbnVsbDsKICBzdGF0ZS5hbmNob3IgPSBudWxsOwogIHN0YXRlLmtpbmQgPSBudWxsOwogIHN0YXRlLnJlc3VsdCA9IG51bGw7CiAgYWxsb3dCbG9ja1N0eWxlcyA9IGFsbG93QmxvY2tTY2FsYXJzID0gYWxsb3dCbG9ja0NvbGxlY3Rpb25zID0gQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0IHx8IENPTlRFWFRfQkxPQ0tfSU4gPT09IG5vZGVDb250ZXh0OwogIGlmIChhbGxvd1RvU2VlaykgewogICAgaWYgKHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKSkgewogICAgICBhdE5ld0xpbmUgPSB0cnVlOwogICAgICBpZiAoc3RhdGUubGluZUluZGVudCA+IHBhcmVudEluZGVudCkgewogICAgICAgIGluZGVudFN0YXR1cyA9IDE7CiAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gMDsKICAgICAgfSBlbHNlIGlmIChzdGF0ZS5saW5lSW5kZW50IDwgcGFyZW50SW5kZW50KSB7CiAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgd2hpbGUgKHJlYWRUYWdQcm9wZXJ0eShzdGF0ZSkgfHwgcmVhZEFuY2hvclByb3BlcnR5KHN0YXRlKSkgewogICAgICBpZiAoc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpKSB7CiAgICAgICAgYXROZXdMaW5lID0gdHJ1ZTsKICAgICAgICBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgPSBhbGxvd0Jsb2NrU3R5bGVzOwogICAgICAgIGlmIChzdGF0ZS5saW5lSW5kZW50ID4gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAxOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA9PT0gcGFyZW50SW5kZW50KSB7CiAgICAgICAgICBpbmRlbnRTdGF0dXMgPSAwOwogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUubGluZUluZGVudCA8IHBhcmVudEluZGVudCkgewogICAgICAgICAgaW5kZW50U3RhdHVzID0gLTE7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgfQogIGlmIChhbGxvd0Jsb2NrQ29sbGVjdGlvbnMpIHsKICAgIGFsbG93QmxvY2tDb2xsZWN0aW9ucyA9IGF0TmV3TGluZSB8fCBhbGxvd0NvbXBhY3Q7CiAgfQogIGlmIChpbmRlbnRTdGF0dXMgPT09IDEgfHwgQ09OVEVYVF9CTE9DS19PVVQgPT09IG5vZGVDb250ZXh0KSB7CiAgICBpZiAoQ09OVEVYVF9GTE9XX0lOID09PSBub2RlQ29udGV4dCB8fCBDT05URVhUX0ZMT1dfT1VUID09PSBub2RlQ29udGV4dCkgewogICAgICBmbG93SW5kZW50ID0gcGFyZW50SW5kZW50OwogICAgfSBlbHNlIHsKICAgICAgZmxvd0luZGVudCA9IHBhcmVudEluZGVudCArIDE7CiAgICB9CiAgICBibG9ja0luZGVudCA9IHN0YXRlLnBvc2l0aW9uIC0gc3RhdGUubGluZVN0YXJ0OwogICAgaWYgKGluZGVudFN0YXR1cyA9PT0gMSkgewogICAgICBpZiAoYWxsb3dCbG9ja0NvbGxlY3Rpb25zICYmIChyZWFkQmxvY2tTZXF1ZW5jZShzdGF0ZSwgYmxvY2tJbmRlbnQpIHx8IHJlYWRCbG9ja01hcHBpbmcoc3RhdGUsIGJsb2NrSW5kZW50LCBmbG93SW5kZW50KSkgfHwgcmVhZEZsb3dDb2xsZWN0aW9uKHN0YXRlLCBmbG93SW5kZW50KSkgewogICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICB9IGVsc2UgewogICAgICAgIGlmIChhbGxvd0Jsb2NrU2NhbGFycyAmJiByZWFkQmxvY2tTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWRTaW5nbGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpIHx8IHJlYWREb3VibGVRdW90ZWRTY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgaWYgKHJlYWRBbGlhcyhzdGF0ZSkpIHsKICAgICAgICAgIGhhc0NvbnRlbnQgPSB0cnVlOwogICAgICAgICAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCB8fCBzdGF0ZS5hbmNob3IgIT09IG51bGwpIHsKICAgICAgICAgICAgdGhyb3dFcnJvcihzdGF0ZSwgImFsaWFzIG5vZGUgc2hvdWxkIG5vdCBoYXZlIGFueSBwcm9wZXJ0aWVzIik7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChyZWFkUGxhaW5TY2FsYXIoc3RhdGUsIGZsb3dJbmRlbnQsIENPTlRFWFRfRkxPV19JTiA9PT0gbm9kZUNvbnRleHQpKSB7CiAgICAgICAgICBoYXNDb250ZW50ID0gdHJ1ZTsKICAgICAgICAgIGlmIChzdGF0ZS50YWcgPT09IG51bGwpIHsKICAgICAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAoaW5kZW50U3RhdHVzID09PSAwKSB7CiAgICAgIGhhc0NvbnRlbnQgPSBhbGxvd0Jsb2NrQ29sbGVjdGlvbnMgJiYgcmVhZEJsb2NrU2VxdWVuY2Uoc3RhdGUsIGJsb2NrSW5kZW50KTsKICAgIH0KICB9CiAgaWYgKHN0YXRlLnRhZyA9PT0gbnVsbCkgewogICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICBzdGF0ZS5hbmNob3JNYXBbc3RhdGUuYW5jaG9yXSA9IHN0YXRlLnJlc3VsdDsKICAgIH0KICB9IGVsc2UgaWYgKHN0YXRlLnRhZyA9PT0gIj8iKSB7CiAgICBpZiAoc3RhdGUucmVzdWx0ICE9PSBudWxsICYmIHN0YXRlLmtpbmQgIT09ICJzY2FsYXIiKSB7CiAgICAgIHRocm93RXJyb3Ioc3RhdGUsICd1bmFjY2VwdGFibGUgbm9kZSBraW5kIGZvciAhPD8+IHRhZzsgaXQgc2hvdWxkIGJlICJzY2FsYXIiLCBub3QgIicgKyBzdGF0ZS5raW5kICsgJyInKTsKICAgIH0KICAgIGZvciAodHlwZUluZGV4ID0gMCwgdHlwZVF1YW50aXR5ID0gc3RhdGUuaW1wbGljaXRUeXBlcy5sZW5ndGg7IHR5cGVJbmRleCA8IHR5cGVRdWFudGl0eTsgdHlwZUluZGV4ICs9IDEpIHsKICAgICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW3R5cGVJbmRleF07CiAgICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCkpIHsKICAgICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0KTsKICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi50YWc7CiAgICAgICAgaWYgKHN0YXRlLmFuY2hvciAhPT0gbnVsbCkgewogICAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgICB9CiAgICB9CiAgfSBlbHNlIGlmIChzdGF0ZS50YWcgIT09ICIhIikgewogICAgaWYgKF9oYXNPd25Qcm9wZXJ0eSQxLmNhbGwoc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdLCBzdGF0ZS50YWcpKSB7CiAgICAgIHR5cGUyID0gc3RhdGUudHlwZU1hcFtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdW3N0YXRlLnRhZ107CiAgICB9IGVsc2UgewogICAgICB0eXBlMiA9IG51bGw7CiAgICAgIHR5cGVMaXN0ID0gc3RhdGUudHlwZU1hcC5tdWx0aVtzdGF0ZS5raW5kIHx8ICJmYWxsYmFjayJdOwogICAgICBmb3IgKHR5cGVJbmRleCA9IDAsIHR5cGVRdWFudGl0eSA9IHR5cGVMaXN0Lmxlbmd0aDsgdHlwZUluZGV4IDwgdHlwZVF1YW50aXR5OyB0eXBlSW5kZXggKz0gMSkgewogICAgICAgIGlmIChzdGF0ZS50YWcuc2xpY2UoMCwgdHlwZUxpc3RbdHlwZUluZGV4XS50YWcubGVuZ3RoKSA9PT0gdHlwZUxpc3RbdHlwZUluZGV4XS50YWcpIHsKICAgICAgICAgIHR5cGUyID0gdHlwZUxpc3RbdHlwZUluZGV4XTsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgaWYgKCF0eXBlMikgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5rbm93biB0YWcgITwiICsgc3RhdGUudGFnICsgIj4iKTsKICAgIH0KICAgIGlmIChzdGF0ZS5yZXN1bHQgIT09IG51bGwgJiYgdHlwZTIua2luZCAhPT0gc3RhdGUua2luZCkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAidW5hY2NlcHRhYmxlIG5vZGUga2luZCBmb3IgITwiICsgc3RhdGUudGFnICsgJz4gdGFnOyBpdCBzaG91bGQgYmUgIicgKyB0eXBlMi5raW5kICsgJyIsIG5vdCAiJyArIHN0YXRlLmtpbmQgKyAnIicpOwogICAgfQogICAgaWYgKCF0eXBlMi5yZXNvbHZlKHN0YXRlLnJlc3VsdCwgc3RhdGUudGFnKSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiY2Fubm90IHJlc29sdmUgYSBub2RlIHdpdGggITwiICsgc3RhdGUudGFnICsgIj4gZXhwbGljaXQgdGFnIik7CiAgICB9IGVsc2UgewogICAgICBzdGF0ZS5yZXN1bHQgPSB0eXBlMi5jb25zdHJ1Y3Qoc3RhdGUucmVzdWx0LCBzdGF0ZS50YWcpOwogICAgICBpZiAoc3RhdGUuYW5jaG9yICE9PSBudWxsKSB7CiAgICAgICAgc3RhdGUuYW5jaG9yTWFwW3N0YXRlLmFuY2hvcl0gPSBzdGF0ZS5yZXN1bHQ7CiAgICAgIH0KICAgIH0KICB9CiAgaWYgKHN0YXRlLmxpc3RlbmVyICE9PSBudWxsKSB7CiAgICBzdGF0ZS5saXN0ZW5lcigiY2xvc2UiLCBzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS50YWcgIT09IG51bGwgfHwgc3RhdGUuYW5jaG9yICE9PSBudWxsIHx8IGhhc0NvbnRlbnQ7Cn0KZnVuY3Rpb24gcmVhZERvY3VtZW50KHN0YXRlKSB7CiAgdmFyIGRvY3VtZW50U3RhcnQgPSBzdGF0ZS5wb3NpdGlvbiwgX3Bvc2l0aW9uLCBkaXJlY3RpdmVOYW1lLCBkaXJlY3RpdmVBcmdzLCBoYXNEaXJlY3RpdmVzID0gZmFsc2UsIGNoOwogIHN0YXRlLnZlcnNpb24gPSBudWxsOwogIHN0YXRlLmNoZWNrTGluZUJyZWFrcyA9IHN0YXRlLmxlZ2FjeTsKICBzdGF0ZS50YWdNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICBzdGF0ZS5hbmNob3JNYXAgPSAvKiBAX19QVVJFX18gKi8gT2JqZWN0LmNyZWF0ZShudWxsKTsKICB3aGlsZSAoKGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikpICE9PSAwKSB7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pOwogICAgaWYgKHN0YXRlLmxpbmVJbmRlbnQgPiAwIHx8IGNoICE9PSAzNykgewogICAgICBicmVhazsKICAgIH0KICAgIGhhc0RpcmVjdGl2ZXMgPSB0cnVlOwogICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgX3Bvc2l0aW9uID0gc3RhdGUucG9zaXRpb247CiAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgfQogICAgZGlyZWN0aXZlTmFtZSA9IHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pOwogICAgZGlyZWN0aXZlQXJncyA9IFtdOwogICAgaWYgKGRpcmVjdGl2ZU5hbWUubGVuZ3RoIDwgMSkgewogICAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlIG5hbWUgbXVzdCBub3QgYmUgbGVzcyB0aGFuIG9uZSBjaGFyYWN0ZXIgaW4gbGVuZ3RoIik7CiAgICB9CiAgICB3aGlsZSAoY2ggIT09IDApIHsKICAgICAgd2hpbGUgKGlzX1dISVRFX1NQQUNFKGNoKSkgewogICAgICAgIGNoID0gc3RhdGUuaW5wdXQuY2hhckNvZGVBdCgrK3N0YXRlLnBvc2l0aW9uKTsKICAgICAgfQogICAgICBpZiAoY2ggPT09IDM1KSB7CiAgICAgICAgZG8gewogICAgICAgICAgY2ggPSBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KCsrc3RhdGUucG9zaXRpb24pOwogICAgICAgIH0gd2hpbGUgKGNoICE9PSAwICYmICFpc19FT0woY2gpKTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgICBpZiAoaXNfRU9MKGNoKSkgYnJlYWs7CiAgICAgIF9wb3NpdGlvbiA9IHN0YXRlLnBvc2l0aW9uOwogICAgICB3aGlsZSAoY2ggIT09IDAgJiYgIWlzX1dTX09SX0VPTChjaCkpIHsKICAgICAgICBjaCA9IHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoKytzdGF0ZS5wb3NpdGlvbik7CiAgICAgIH0KICAgICAgZGlyZWN0aXZlQXJncy5wdXNoKHN0YXRlLmlucHV0LnNsaWNlKF9wb3NpdGlvbiwgc3RhdGUucG9zaXRpb24pKTsKICAgIH0KICAgIGlmIChjaCAhPT0gMCkgcmVhZExpbmVCcmVhayhzdGF0ZSk7CiAgICBpZiAoX2hhc093blByb3BlcnR5JDEuY2FsbChkaXJlY3RpdmVIYW5kbGVycywgZGlyZWN0aXZlTmFtZSkpIHsKICAgICAgZGlyZWN0aXZlSGFuZGxlcnNbZGlyZWN0aXZlTmFtZV0oc3RhdGUsIGRpcmVjdGl2ZU5hbWUsIGRpcmVjdGl2ZUFyZ3MpOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3dXYXJuaW5nKHN0YXRlLCAndW5rbm93biBkb2N1bWVudCBkaXJlY3RpdmUgIicgKyBkaXJlY3RpdmVOYW1lICsgJyInKTsKICAgIH0KICB9CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5saW5lSW5kZW50ID09PSAwICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24pID09PSA0NSAmJiBzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uICsgMSkgPT09IDQ1ICYmIHN0YXRlLmlucHV0LmNoYXJDb2RlQXQoc3RhdGUucG9zaXRpb24gKyAyKSA9PT0gNDUpIHsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICBza2lwU2VwYXJhdGlvblNwYWNlKHN0YXRlLCB0cnVlLCAtMSk7CiAgfSBlbHNlIGlmIChoYXNEaXJlY3RpdmVzKSB7CiAgICB0aHJvd0Vycm9yKHN0YXRlLCAiZGlyZWN0aXZlcyBlbmQgbWFyayBpcyBleHBlY3RlZCIpOwogIH0KICBjb21wb3NlTm9kZShzdGF0ZSwgc3RhdGUubGluZUluZGVudCAtIDEsIENPTlRFWFRfQkxPQ0tfT1VULCBmYWxzZSwgdHJ1ZSk7CiAgc2tpcFNlcGFyYXRpb25TcGFjZShzdGF0ZSwgdHJ1ZSwgLTEpOwogIGlmIChzdGF0ZS5jaGVja0xpbmVCcmVha3MgJiYgUEFUVEVSTl9OT05fQVNDSUlfTElORV9CUkVBS1MudGVzdChzdGF0ZS5pbnB1dC5zbGljZShkb2N1bWVudFN0YXJ0LCBzdGF0ZS5wb3NpdGlvbikpKSB7CiAgICB0aHJvd1dhcm5pbmcoc3RhdGUsICJub24tQVNDSUkgbGluZSBicmVha3MgYXJlIGludGVycHJldGVkIGFzIGNvbnRlbnQiKTsKICB9CiAgc3RhdGUuZG9jdW1lbnRzLnB1c2goc3RhdGUucmVzdWx0KTsKICBpZiAoc3RhdGUucG9zaXRpb24gPT09IHN0YXRlLmxpbmVTdGFydCAmJiB0ZXN0RG9jdW1lbnRTZXBhcmF0b3Ioc3RhdGUpKSB7CiAgICBpZiAoc3RhdGUuaW5wdXQuY2hhckNvZGVBdChzdGF0ZS5wb3NpdGlvbikgPT09IDQ2KSB7CiAgICAgIHN0YXRlLnBvc2l0aW9uICs9IDM7CiAgICAgIHNraXBTZXBhcmF0aW9uU3BhY2Uoc3RhdGUsIHRydWUsIC0xKTsKICAgIH0KICAgIHJldHVybjsKICB9CiAgaWYgKHN0YXRlLnBvc2l0aW9uIDwgc3RhdGUubGVuZ3RoIC0gMSkgewogICAgdGhyb3dFcnJvcihzdGF0ZSwgImVuZCBvZiB0aGUgc3RyZWFtIG9yIGEgZG9jdW1lbnQgc2VwYXJhdG9yIGlzIGV4cGVjdGVkIik7CiAgfSBlbHNlIHsKICAgIHJldHVybjsKICB9Cn0KZnVuY3Rpb24gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucykgewogIGlucHV0ID0gU3RyaW5nKGlucHV0KTsKICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKICBpZiAoaW5wdXQubGVuZ3RoICE9PSAwKSB7CiAgICBpZiAoaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTAgJiYgaW5wdXQuY2hhckNvZGVBdChpbnB1dC5sZW5ndGggLSAxKSAhPT0gMTMpIHsKICAgICAgaW5wdXQgKz0gIlxuIjsKICAgIH0KICAgIGlmIChpbnB1dC5jaGFyQ29kZUF0KDApID09PSA2NTI3OSkgewogICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKDEpOwogICAgfQogIH0KICB2YXIgc3RhdGUgPSBuZXcgU3RhdGUkMShpbnB1dCwgb3B0aW9ucyk7CiAgdmFyIG51bGxwb3MgPSBpbnB1dC5pbmRleE9mKCJcMCIpOwogIGlmIChudWxscG9zICE9PSAtMSkgewogICAgc3RhdGUucG9zaXRpb24gPSBudWxscG9zOwogICAgdGhyb3dFcnJvcihzdGF0ZSwgIm51bGwgYnl0ZSBpcyBub3QgYWxsb3dlZCBpbiBpbnB1dCIpOwogIH0KICBzdGF0ZS5pbnB1dCArPSAiXDAiOwogIHdoaWxlIChzdGF0ZS5pbnB1dC5jaGFyQ29kZUF0KHN0YXRlLnBvc2l0aW9uKSA9PT0gMzIpIHsKICAgIHN0YXRlLmxpbmVJbmRlbnQgKz0gMTsKICAgIHN0YXRlLnBvc2l0aW9uICs9IDE7CiAgfQogIHdoaWxlIChzdGF0ZS5wb3NpdGlvbiA8IHN0YXRlLmxlbmd0aCAtIDEpIHsKICAgIHJlYWREb2N1bWVudChzdGF0ZSk7CiAgfQogIHJldHVybiBzdGF0ZS5kb2N1bWVudHM7Cn0KZnVuY3Rpb24gbG9hZEFsbCQxKGlucHV0LCBpdGVyYXRvciwgb3B0aW9ucykgewogIGlmIChpdGVyYXRvciAhPT0gbnVsbCAmJiB0eXBlb2YgaXRlcmF0b3IgPT09ICJvYmplY3QiICYmIHR5cGVvZiBvcHRpb25zID09PSAidW5kZWZpbmVkIikgewogICAgb3B0aW9ucyA9IGl0ZXJhdG9yOwogICAgaXRlcmF0b3IgPSBudWxsOwogIH0KICB2YXIgZG9jdW1lbnRzID0gbG9hZERvY3VtZW50cyhpbnB1dCwgb3B0aW9ucyk7CiAgaWYgKHR5cGVvZiBpdGVyYXRvciAhPT0gImZ1bmN0aW9uIikgewogICAgcmV0dXJuIGRvY3VtZW50czsKICB9CiAgZm9yICh2YXIgaW5kZXggPSAwLCBsZW5ndGggPSBkb2N1bWVudHMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgaXRlcmF0b3IoZG9jdW1lbnRzW2luZGV4XSk7CiAgfQp9CmZ1bmN0aW9uIGxvYWQkMShpbnB1dCwgb3B0aW9ucykgewogIHZhciBkb2N1bWVudHMgPSBsb2FkRG9jdW1lbnRzKGlucHV0LCBvcHRpb25zKTsKICBpZiAoZG9jdW1lbnRzLmxlbmd0aCA9PT0gMCkgewogICAgcmV0dXJuIHZvaWQgMDsKICB9IGVsc2UgaWYgKGRvY3VtZW50cy5sZW5ndGggPT09IDEpIHsKICAgIHJldHVybiBkb2N1bWVudHNbMF07CiAgfQogIHRocm93IG5ldyBleGNlcHRpb24oImV4cGVjdGVkIGEgc2luZ2xlIGRvY3VtZW50IGluIHRoZSBzdHJlYW0sIGJ1dCBmb3VuZCBtb3JlIik7Cn0KdmFyIGxvYWRBbGxfMSA9IGxvYWRBbGwkMTsKdmFyIGxvYWRfMSA9IGxvYWQkMTsKdmFyIGxvYWRlciA9IHsKICBsb2FkQWxsOiBsb2FkQWxsXzEsCiAgbG9hZDogbG9hZF8xCn07CnZhciBfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nOwp2YXIgX2hhc093blByb3BlcnR5ID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTsKdmFyIENIQVJfQk9NID0gNjUyNzk7CnZhciBDSEFSX1RBQiA9IDk7CnZhciBDSEFSX0xJTkVfRkVFRCA9IDEwOwp2YXIgQ0hBUl9DQVJSSUFHRV9SRVRVUk4gPSAxMzsKdmFyIENIQVJfU1BBQ0UgPSAzMjsKdmFyIENIQVJfRVhDTEFNQVRJT04gPSAzMzsKdmFyIENIQVJfRE9VQkxFX1FVT1RFID0gMzQ7CnZhciBDSEFSX1NIQVJQID0gMzU7CnZhciBDSEFSX1BFUkNFTlQgPSAzNzsKdmFyIENIQVJfQU1QRVJTQU5EID0gMzg7CnZhciBDSEFSX1NJTkdMRV9RVU9URSA9IDM5Owp2YXIgQ0hBUl9BU1RFUklTSyA9IDQyOwp2YXIgQ0hBUl9DT01NQSA9IDQ0Owp2YXIgQ0hBUl9NSU5VUyA9IDQ1Owp2YXIgQ0hBUl9DT0xPTiA9IDU4Owp2YXIgQ0hBUl9FUVVBTFMgPSA2MTsKdmFyIENIQVJfR1JFQVRFUl9USEFOID0gNjI7CnZhciBDSEFSX1FVRVNUSU9OID0gNjM7CnZhciBDSEFSX0NPTU1FUkNJQUxfQVQgPSA2NDsKdmFyIENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVCA9IDkxOwp2YXIgQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCA9IDkzOwp2YXIgQ0hBUl9HUkFWRV9BQ0NFTlQgPSA5NjsKdmFyIENIQVJfTEVGVF9DVVJMWV9CUkFDS0VUID0gMTIzOwp2YXIgQ0hBUl9WRVJUSUNBTF9MSU5FID0gMTI0Owp2YXIgQ0hBUl9SSUdIVF9DVVJMWV9CUkFDS0VUID0gMTI1Owp2YXIgRVNDQVBFX1NFUVVFTkNFUyA9IHt9OwpFU0NBUEVfU0VRVUVOQ0VTWzBdID0gIlxcMCI7CkVTQ0FQRV9TRVFVRU5DRVNbN10gPSAiXFxhIjsKRVNDQVBFX1NFUVVFTkNFU1s4XSA9ICJcXGIiOwpFU0NBUEVfU0VRVUVOQ0VTWzldID0gIlxcdCI7CkVTQ0FQRV9TRVFVRU5DRVNbMTBdID0gIlxcbiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTFdID0gIlxcdiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTJdID0gIlxcZiI7CkVTQ0FQRV9TRVFVRU5DRVNbMTNdID0gIlxcciI7CkVTQ0FQRV9TRVFVRU5DRVNbMjddID0gIlxcZSI7CkVTQ0FQRV9TRVFVRU5DRVNbMzRdID0gJ1xcIic7CkVTQ0FQRV9TRVFVRU5DRVNbOTJdID0gIlxcXFwiOwpFU0NBUEVfU0VRVUVOQ0VTWzEzM10gPSAiXFxOIjsKRVNDQVBFX1NFUVVFTkNFU1sxNjBdID0gIlxcXyI7CkVTQ0FQRV9TRVFVRU5DRVNbODIzMl0gPSAiXFxMIjsKRVNDQVBFX1NFUVVFTkNFU1s4MjMzXSA9ICJcXFAiOwp2YXIgREVQUkVDQVRFRF9CT09MRUFOU19TWU5UQVggPSBbCiAgInkiLAogICJZIiwKICAieWVzIiwKICAiWWVzIiwKICAiWUVTIiwKICAib24iLAogICJPbiIsCiAgIk9OIiwKICAibiIsCiAgIk4iLAogICJubyIsCiAgIk5vIiwKICAiTk8iLAogICJvZmYiLAogICJPZmYiLAogICJPRkYiCl07CnZhciBERVBSRUNBVEVEX0JBU0U2MF9TWU5UQVggPSAvXlstK10/WzAtOV9dKyg/OjpbMC05X10rKSsoPzpcLlswLTlfXSopPyQvOwpmdW5jdGlvbiBjb21waWxlU3R5bGVNYXAoc2NoZW1hMiwgbWFwMikgewogIHZhciByZXN1bHQsIGtleXMsIGluZGV4LCBsZW5ndGgsIHRhZywgc3R5bGUsIHR5cGUyOwogIGlmIChtYXAyID09PSBudWxsKSByZXR1cm4ge307CiAgcmVzdWx0ID0ge307CiAga2V5cyA9IE9iamVjdC5rZXlzKG1hcDIpOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBrZXlzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHRhZyA9IGtleXNbaW5kZXhdOwogICAgc3R5bGUgPSBTdHJpbmcobWFwMlt0YWddKTsKICAgIGlmICh0YWcuc2xpY2UoMCwgMikgPT09ICIhISIpIHsKICAgICAgdGFnID0gInRhZzp5YW1sLm9yZywyMDAyOiIgKyB0YWcuc2xpY2UoMik7CiAgICB9CiAgICB0eXBlMiA9IHNjaGVtYTIuY29tcGlsZWRUeXBlTWFwWyJmYWxsYmFjayJdW3RhZ107CiAgICBpZiAodHlwZTIgJiYgX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIuc3R5bGVBbGlhc2VzLCBzdHlsZSkpIHsKICAgICAgc3R5bGUgPSB0eXBlMi5zdHlsZUFsaWFzZXNbc3R5bGVdOwogICAgfQogICAgcmVzdWx0W3RhZ10gPSBzdHlsZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBlbmNvZGVIZXgoY2hhcmFjdGVyKSB7CiAgdmFyIHN0cmluZywgaGFuZGxlLCBsZW5ndGg7CiAgc3RyaW5nID0gY2hhcmFjdGVyLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpOwogIGlmIChjaGFyYWN0ZXIgPD0gMjU1KSB7CiAgICBoYW5kbGUgPSAieCI7CiAgICBsZW5ndGggPSAyOwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDY1NTM1KSB7CiAgICBoYW5kbGUgPSAidSI7CiAgICBsZW5ndGggPSA0OwogIH0gZWxzZSBpZiAoY2hhcmFjdGVyIDw9IDQyOTQ5NjcyOTUpIHsKICAgIGhhbmRsZSA9ICJVIjsKICAgIGxlbmd0aCA9IDg7CiAgfSBlbHNlIHsKICAgIHRocm93IG5ldyBleGNlcHRpb24oImNvZGUgcG9pbnQgd2l0aGluIGEgc3RyaW5nIG1heSBub3QgYmUgZ3JlYXRlciB0aGFuIDB4RkZGRkZGRkYiKTsKICB9CiAgcmV0dXJuICJcXCIgKyBoYW5kbGUgKyBjb21tb24ucmVwZWF0KCIwIiwgbGVuZ3RoIC0gc3RyaW5nLmxlbmd0aCkgKyBzdHJpbmc7Cn0KdmFyIFFVT1RJTkdfVFlQRV9TSU5HTEUgPSAxOwp2YXIgUVVPVElOR19UWVBFX0RPVUJMRSA9IDI7CmZ1bmN0aW9uIFN0YXRlKG9wdGlvbnMpIHsKICB0aGlzLnNjaGVtYSA9IG9wdGlvbnNbInNjaGVtYSJdIHx8IF9kZWZhdWx0OwogIHRoaXMuaW5kZW50ID0gTWF0aC5tYXgoMSwgb3B0aW9uc1siaW5kZW50Il0gfHwgMik7CiAgdGhpcy5ub0FycmF5SW5kZW50ID0gb3B0aW9uc1sibm9BcnJheUluZGVudCJdIHx8IGZhbHNlOwogIHRoaXMuc2tpcEludmFsaWQgPSBvcHRpb25zWyJza2lwSW52YWxpZCJdIHx8IGZhbHNlOwogIHRoaXMuZmxvd0xldmVsID0gY29tbW9uLmlzTm90aGluZyhvcHRpb25zWyJmbG93TGV2ZWwiXSkgPyAtMSA6IG9wdGlvbnNbImZsb3dMZXZlbCJdOwogIHRoaXMuc3R5bGVNYXAgPSBjb21waWxlU3R5bGVNYXAodGhpcy5zY2hlbWEsIG9wdGlvbnNbInN0eWxlcyJdIHx8IG51bGwpOwogIHRoaXMuc29ydEtleXMgPSBvcHRpb25zWyJzb3J0S2V5cyJdIHx8IGZhbHNlOwogIHRoaXMubGluZVdpZHRoID0gb3B0aW9uc1sibGluZVdpZHRoIl0gfHwgODA7CiAgdGhpcy5ub1JlZnMgPSBvcHRpb25zWyJub1JlZnMiXSB8fCBmYWxzZTsKICB0aGlzLm5vQ29tcGF0TW9kZSA9IG9wdGlvbnNbIm5vQ29tcGF0TW9kZSJdIHx8IGZhbHNlOwogIHRoaXMuY29uZGVuc2VGbG93ID0gb3B0aW9uc1siY29uZGVuc2VGbG93Il0gfHwgZmFsc2U7CiAgdGhpcy5xdW90aW5nVHlwZSA9IG9wdGlvbnNbInF1b3RpbmdUeXBlIl0gPT09ICciJyA/IFFVT1RJTkdfVFlQRV9ET1VCTEUgOiBRVU9USU5HX1RZUEVfU0lOR0xFOwogIHRoaXMuZm9yY2VRdW90ZXMgPSBvcHRpb25zWyJmb3JjZVF1b3RlcyJdIHx8IGZhbHNlOwogIHRoaXMucmVwbGFjZXIgPSB0eXBlb2Ygb3B0aW9uc1sicmVwbGFjZXIiXSA9PT0gImZ1bmN0aW9uIiA/IG9wdGlvbnNbInJlcGxhY2VyIl0gOiBudWxsOwogIHRoaXMuaW1wbGljaXRUeXBlcyA9IHRoaXMuc2NoZW1hLmNvbXBpbGVkSW1wbGljaXQ7CiAgdGhpcy5leHBsaWNpdFR5cGVzID0gdGhpcy5zY2hlbWEuY29tcGlsZWRFeHBsaWNpdDsKICB0aGlzLnRhZyA9IG51bGw7CiAgdGhpcy5yZXN1bHQgPSAiIjsKICB0aGlzLmR1cGxpY2F0ZXMgPSBbXTsKICB0aGlzLnVzZWREdXBsaWNhdGVzID0gbnVsbDsKfQpmdW5jdGlvbiBpbmRlbnRTdHJpbmcoc3RyaW5nLCBzcGFjZXMpIHsKICB2YXIgaW5kID0gY29tbW9uLnJlcGVhdCgiICIsIHNwYWNlcyksIHBvc2l0aW9uID0gMCwgbmV4dCA9IC0xLCByZXN1bHQgPSAiIiwgbGluZSwgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aDsKICB3aGlsZSAocG9zaXRpb24gPCBsZW5ndGgpIHsKICAgIG5leHQgPSBzdHJpbmcuaW5kZXhPZigiXG4iLCBwb3NpdGlvbik7CiAgICBpZiAobmV4dCA9PT0gLTEpIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbik7CiAgICAgIHBvc2l0aW9uID0gbGVuZ3RoOwogICAgfSBlbHNlIHsKICAgICAgbGluZSA9IHN0cmluZy5zbGljZShwb3NpdGlvbiwgbmV4dCArIDEpOwogICAgICBwb3NpdGlvbiA9IG5leHQgKyAxOwogICAgfQogICAgaWYgKGxpbmUubGVuZ3RoICYmIGxpbmUgIT09ICJcbiIpIHJlc3VsdCArPSBpbmQ7CiAgICByZXN1bHQgKz0gbGluZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCkgewogIHJldHVybiAiXG4iICsgY29tbW9uLnJlcGVhdCgiICIsIHN0YXRlLmluZGVudCAqIGxldmVsKTsKfQpmdW5jdGlvbiB0ZXN0SW1wbGljaXRSZXNvbHZpbmcoc3RhdGUsIHN0cjIpIHsKICB2YXIgaW5kZXgsIGxlbmd0aCwgdHlwZTI7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IHN0YXRlLmltcGxpY2l0VHlwZXMubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSBzdGF0ZS5pbXBsaWNpdFR5cGVzW2luZGV4XTsKICAgIGlmICh0eXBlMi5yZXNvbHZlKHN0cjIpKSB7CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gYyA9PT0gQ0hBUl9TUEFDRSB8fCBjID09PSBDSEFSX1RBQjsKfQpmdW5jdGlvbiBpc1ByaW50YWJsZShjKSB7CiAgcmV0dXJuIDMyIDw9IGMgJiYgYyA8PSAxMjYgfHwgMTYxIDw9IGMgJiYgYyA8PSA1NTI5NSAmJiBjICE9PSA4MjMyICYmIGMgIT09IDgyMzMgfHwgNTczNDQgPD0gYyAmJiBjIDw9IDY1NTMzICYmIGMgIT09IENIQVJfQk9NIHx8IDY1NTM2IDw9IGMgJiYgYyA8PSAxMTE0MTExOwp9CmZ1bmN0aW9uIGlzTnNDaGFyT3JXaGl0ZXNwYWNlKGMpIHsKICByZXR1cm4gaXNQcmludGFibGUoYykgJiYgYyAhPT0gQ0hBUl9CT00gJiYgYyAhPT0gQ0hBUl9DQVJSSUFHRV9SRVRVUk4gJiYgYyAhPT0gQ0hBUl9MSU5FX0ZFRUQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmUoYywgcHJldiwgaW5ibG9jaykgewogIHZhciBjSXNOc0NoYXJPcldoaXRlc3BhY2UgPSBpc05zQ2hhck9yV2hpdGVzcGFjZShjKTsKICB2YXIgY0lzTnNDaGFyID0gY0lzTnNDaGFyT3JXaGl0ZXNwYWNlICYmICFpc1doaXRlc3BhY2UoYyk7CiAgcmV0dXJuICgKICAgIC8vIG5zLXBsYWluLXNhZmUKICAgIChpbmJsb2NrID8gKAogICAgICAvLyBjID0gZmxvdy1pbgogICAgICBjSXNOc0NoYXJPcldoaXRlc3BhY2UKICAgICkgOiBjSXNOc0NoYXJPcldoaXRlc3BhY2UgJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQpICYmIGMgIT09IENIQVJfU0hBUlAgJiYgIShwcmV2ID09PSBDSEFSX0NPTE9OICYmICFjSXNOc0NoYXIpIHx8IGlzTnNDaGFyT3JXaGl0ZXNwYWNlKHByZXYpICYmICFpc1doaXRlc3BhY2UocHJldikgJiYgYyA9PT0gQ0hBUl9TSEFSUCB8fCBwcmV2ID09PSBDSEFSX0NPTE9OICYmIGNJc05zQ2hhcgogICk7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVGaXJzdChjKSB7CiAgcmV0dXJuIGlzUHJpbnRhYmxlKGMpICYmIGMgIT09IENIQVJfQk9NICYmICFpc1doaXRlc3BhY2UoYykgJiYgYyAhPT0gQ0hBUl9NSU5VUyAmJiBjICE9PSBDSEFSX1FVRVNUSU9OICYmIGMgIT09IENIQVJfQ09MT04gJiYgYyAhPT0gQ0hBUl9DT01NQSAmJiBjICE9PSBDSEFSX0xFRlRfU1FVQVJFX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX0xFRlRfQ1VSTFlfQlJBQ0tFVCAmJiBjICE9PSBDSEFSX1JJR0hUX0NVUkxZX0JSQUNLRVQgJiYgYyAhPT0gQ0hBUl9TSEFSUCAmJiBjICE9PSBDSEFSX0FNUEVSU0FORCAmJiBjICE9PSBDSEFSX0FTVEVSSVNLICYmIGMgIT09IENIQVJfRVhDTEFNQVRJT04gJiYgYyAhPT0gQ0hBUl9WRVJUSUNBTF9MSU5FICYmIGMgIT09IENIQVJfRVFVQUxTICYmIGMgIT09IENIQVJfR1JFQVRFUl9USEFOICYmIGMgIT09IENIQVJfU0lOR0xFX1FVT1RFICYmIGMgIT09IENIQVJfRE9VQkxFX1FVT1RFICYmIGMgIT09IENIQVJfUEVSQ0VOVCAmJiBjICE9PSBDSEFSX0NPTU1FUkNJQUxfQVQgJiYgYyAhPT0gQ0hBUl9HUkFWRV9BQ0NFTlQ7Cn0KZnVuY3Rpb24gaXNQbGFpblNhZmVMYXN0KGMpIHsKICByZXR1cm4gIWlzV2hpdGVzcGFjZShjKSAmJiBjICE9PSBDSEFSX0NPTE9OOwp9CmZ1bmN0aW9uIGNvZGVQb2ludEF0KHN0cmluZywgcG9zKSB7CiAgdmFyIGZpcnN0ID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zKSwgc2Vjb25kOwogIGlmIChmaXJzdCA+PSA1NTI5NiAmJiBmaXJzdCA8PSA1NjMxOSAmJiBwb3MgKyAxIDwgc3RyaW5nLmxlbmd0aCkgewogICAgc2Vjb25kID0gc3RyaW5nLmNoYXJDb2RlQXQocG9zICsgMSk7CiAgICBpZiAoc2Vjb25kID49IDU2MzIwICYmIHNlY29uZCA8PSA1NzM0MykgewogICAgICByZXR1cm4gKGZpcnN0IC0gNTUyOTYpICogMTAyNCArIHNlY29uZCAtIDU2MzIwICsgNjU1MzY7CiAgICB9CiAgfQogIHJldHVybiBmaXJzdDsKfQpmdW5jdGlvbiBuZWVkSW5kZW50SW5kaWNhdG9yKHN0cmluZykgewogIHZhciBsZWFkaW5nU3BhY2VSZSA9IC9eXG4qIC87CiAgcmV0dXJuIGxlYWRpbmdTcGFjZVJlLnRlc3Qoc3RyaW5nKTsKfQp2YXIgU1RZTEVfUExBSU4gPSAxOwp2YXIgU1RZTEVfU0lOR0xFID0gMjsKdmFyIFNUWUxFX0xJVEVSQUwgPSAzOwp2YXIgU1RZTEVfRk9MREVEID0gNDsKdmFyIFNUWUxFX0RPVUJMRSA9IDU7CmZ1bmN0aW9uIGNob29zZVNjYWxhclN0eWxlKHN0cmluZywgc2luZ2xlTGluZU9ubHksIGluZGVudFBlckxldmVsLCBsaW5lV2lkdGgsIHRlc3RBbWJpZ3VvdXNUeXBlLCBxdW90aW5nVHlwZSwgZm9yY2VRdW90ZXMsIGluYmxvY2spIHsKICB2YXIgaTsKICB2YXIgY2hhciA9IDA7CiAgdmFyIHByZXZDaGFyID0gbnVsbDsKICB2YXIgaGFzTGluZUJyZWFrID0gZmFsc2U7CiAgdmFyIGhhc0ZvbGRhYmxlTGluZSA9IGZhbHNlOwogIHZhciBzaG91bGRUcmFja1dpZHRoID0gbGluZVdpZHRoICE9PSAtMTsKICB2YXIgcHJldmlvdXNMaW5lQnJlYWsgPSAtMTsKICB2YXIgcGxhaW4gPSBpc1BsYWluU2FmZUZpcnN0KGNvZGVQb2ludEF0KHN0cmluZywgMCkpICYmIGlzUGxhaW5TYWZlTGFzdChjb2RlUG9pbnRBdChzdHJpbmcsIHN0cmluZy5sZW5ndGggLSAxKSk7CiAgaWYgKHNpbmdsZUxpbmVPbmx5IHx8IGZvcmNlUXVvdGVzKSB7CiAgICBmb3IgKGkgPSAwOyBpIDwgc3RyaW5nLmxlbmd0aDsgY2hhciA+PSA2NTUzNiA/IGkgKz0gMiA6IGkrKykgewogICAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgICAgaWYgKCFpc1ByaW50YWJsZShjaGFyKSkgewogICAgICAgIHJldHVybiBTVFlMRV9ET1VCTEU7CiAgICAgIH0KICAgICAgcGxhaW4gPSBwbGFpbiAmJiBpc1BsYWluU2FmZShjaGFyLCBwcmV2Q2hhciwgaW5ibG9jayk7CiAgICAgIHByZXZDaGFyID0gY2hhcjsKICAgIH0KICB9IGVsc2UgewogICAgZm9yIChpID0gMDsgaSA8IHN0cmluZy5sZW5ndGg7IGNoYXIgPj0gNjU1MzYgPyBpICs9IDIgOiBpKyspIHsKICAgICAgY2hhciA9IGNvZGVQb2ludEF0KHN0cmluZywgaSk7CiAgICAgIGlmIChjaGFyID09PSBDSEFSX0xJTkVfRkVFRCkgewogICAgICAgIGhhc0xpbmVCcmVhayA9IHRydWU7CiAgICAgICAgaWYgKHNob3VsZFRyYWNrV2lkdGgpIHsKICAgICAgICAgIGhhc0ZvbGRhYmxlTGluZSA9IGhhc0ZvbGRhYmxlTGluZSB8fCAvLyBGb2xkYWJsZSBsaW5lID0gdG9vIGxvbmcsIGFuZCBub3QgbW9yZS1pbmRlbnRlZC4KICAgICAgICAgIGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIjsKICAgICAgICAgIHByZXZpb3VzTGluZUJyZWFrID0gaTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoIWlzUHJpbnRhYmxlKGNoYXIpKSB7CiAgICAgICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICAgICAgfQogICAgICBwbGFpbiA9IHBsYWluICYmIGlzUGxhaW5TYWZlKGNoYXIsIHByZXZDaGFyLCBpbmJsb2NrKTsKICAgICAgcHJldkNoYXIgPSBjaGFyOwogICAgfQogICAgaGFzRm9sZGFibGVMaW5lID0gaGFzRm9sZGFibGVMaW5lIHx8IHNob3VsZFRyYWNrV2lkdGggJiYgKGkgLSBwcmV2aW91c0xpbmVCcmVhayAtIDEgPiBsaW5lV2lkdGggJiYgc3RyaW5nW3ByZXZpb3VzTGluZUJyZWFrICsgMV0gIT09ICIgIik7CiAgfQogIGlmICghaGFzTGluZUJyZWFrICYmICFoYXNGb2xkYWJsZUxpbmUpIHsKICAgIGlmIChwbGFpbiAmJiAhZm9yY2VRdW90ZXMgJiYgIXRlc3RBbWJpZ3VvdXNUeXBlKHN0cmluZykpIHsKICAgICAgcmV0dXJuIFNUWUxFX1BMQUlOOwogICAgfQogICAgcmV0dXJuIHF1b3RpbmdUeXBlID09PSBRVU9USU5HX1RZUEVfRE9VQkxFID8gU1RZTEVfRE9VQkxFIDogU1RZTEVfU0lOR0xFOwogIH0KICBpZiAoaW5kZW50UGVyTGV2ZWwgPiA5ICYmIG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSkgewogICAgcmV0dXJuIFNUWUxFX0RPVUJMRTsKICB9CiAgaWYgKCFmb3JjZVF1b3RlcykgewogICAgcmV0dXJuIGhhc0ZvbGRhYmxlTGluZSA/IFNUWUxFX0ZPTERFRCA6IFNUWUxFX0xJVEVSQUw7CiAgfQogIHJldHVybiBxdW90aW5nVHlwZSA9PT0gUVVPVElOR19UWVBFX0RPVUJMRSA/IFNUWUxFX0RPVUJMRSA6IFNUWUxFX1NJTkdMRTsKfQpmdW5jdGlvbiB3cml0ZVNjYWxhcihzdGF0ZSwgc3RyaW5nLCBsZXZlbCwgaXNrZXksIGluYmxvY2spIHsKICBzdGF0ZS5kdW1wID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoc3RyaW5nLmxlbmd0aCA9PT0gMCkgewogICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIiInIDogIicnIjsKICAgIH0KICAgIGlmICghc3RhdGUubm9Db21wYXRNb2RlKSB7CiAgICAgIGlmIChERVBSRUNBVEVEX0JPT0xFQU5TX1NZTlRBWC5pbmRleE9mKHN0cmluZykgIT09IC0xIHx8IERFUFJFQ0FURURfQkFTRTYwX1NZTlRBWC50ZXN0KHN0cmluZykpIHsKICAgICAgICByZXR1cm4gc3RhdGUucXVvdGluZ1R5cGUgPT09IFFVT1RJTkdfVFlQRV9ET1VCTEUgPyAnIicgKyBzdHJpbmcgKyAnIicgOiAiJyIgKyBzdHJpbmcgKyAiJyI7CiAgICAgIH0KICAgIH0KICAgIHZhciBpbmRlbnQgPSBzdGF0ZS5pbmRlbnQgKiBNYXRoLm1heCgxLCBsZXZlbCk7CiAgICB2YXIgbGluZVdpZHRoID0gc3RhdGUubGluZVdpZHRoID09PSAtMSA/IC0xIDogTWF0aC5tYXgoTWF0aC5taW4oc3RhdGUubGluZVdpZHRoLCA0MCksIHN0YXRlLmxpbmVXaWR0aCAtIGluZGVudCk7CiAgICB2YXIgc2luZ2xlTGluZU9ubHkgPSBpc2tleSB8fCBzdGF0ZS5mbG93TGV2ZWwgPiAtMSAmJiBsZXZlbCA+PSBzdGF0ZS5mbG93TGV2ZWw7CiAgICBmdW5jdGlvbiB0ZXN0QW1iaWd1aXR5KHN0cmluZzIpIHsKICAgICAgcmV0dXJuIHRlc3RJbXBsaWNpdFJlc29sdmluZyhzdGF0ZSwgc3RyaW5nMik7CiAgICB9CiAgICBzd2l0Y2ggKGNob29zZVNjYWxhclN0eWxlKAogICAgICBzdHJpbmcsCiAgICAgIHNpbmdsZUxpbmVPbmx5LAogICAgICBzdGF0ZS5pbmRlbnQsCiAgICAgIGxpbmVXaWR0aCwKICAgICAgdGVzdEFtYmlndWl0eSwKICAgICAgc3RhdGUucXVvdGluZ1R5cGUsCiAgICAgIHN0YXRlLmZvcmNlUXVvdGVzICYmICFpc2tleSwKICAgICAgaW5ibG9jawogICAgKSkgewogICAgICBjYXNlIFNUWUxFX1BMQUlOOgogICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgIGNhc2UgU1RZTEVfU0lOR0xFOgogICAgICAgIHJldHVybiAiJyIgKyBzdHJpbmcucmVwbGFjZSgvJy9nLCAiJyciKSArICInIjsKICAgICAgY2FzZSBTVFlMRV9MSVRFUkFMOgogICAgICAgIHJldHVybiAifCIgKyBibG9ja0hlYWRlcihzdHJpbmcsIHN0YXRlLmluZGVudCkgKyBkcm9wRW5kaW5nTmV3bGluZShpbmRlbnRTdHJpbmcoc3RyaW5nLCBpbmRlbnQpKTsKICAgICAgY2FzZSBTVFlMRV9GT0xERUQ6CiAgICAgICAgcmV0dXJuICI+IiArIGJsb2NrSGVhZGVyKHN0cmluZywgc3RhdGUuaW5kZW50KSArIGRyb3BFbmRpbmdOZXdsaW5lKGluZGVudFN0cmluZyhmb2xkU3RyaW5nKHN0cmluZywgbGluZVdpZHRoKSwgaW5kZW50KSk7CiAgICAgIGNhc2UgU1RZTEVfRE9VQkxFOgogICAgICAgIHJldHVybiAnIicgKyBlc2NhcGVTdHJpbmcoc3RyaW5nKSArICciJzsKICAgICAgZGVmYXVsdDoKICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCJpbXBvc3NpYmxlIGVycm9yOiBpbnZhbGlkIHNjYWxhciBzdHlsZSIpOwogICAgfQogIH0oKTsKfQpmdW5jdGlvbiBibG9ja0hlYWRlcihzdHJpbmcsIGluZGVudFBlckxldmVsKSB7CiAgdmFyIGluZGVudEluZGljYXRvciA9IG5lZWRJbmRlbnRJbmRpY2F0b3Ioc3RyaW5nKSA/IFN0cmluZyhpbmRlbnRQZXJMZXZlbCkgOiAiIjsKICB2YXIgY2xpcCA9IHN0cmluZ1tzdHJpbmcubGVuZ3RoIC0gMV0gPT09ICJcbiI7CiAgdmFyIGtlZXAgPSBjbGlwICYmIChzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDJdID09PSAiXG4iIHx8IHN0cmluZyA9PT0gIlxuIik7CiAgdmFyIGNob21wID0ga2VlcCA/ICIrIiA6IGNsaXAgPyAiIiA6ICItIjsKICByZXR1cm4gaW5kZW50SW5kaWNhdG9yICsgY2hvbXAgKyAiXG4iOwp9CmZ1bmN0aW9uIGRyb3BFbmRpbmdOZXdsaW5lKHN0cmluZykgewogIHJldHVybiBzdHJpbmdbc3RyaW5nLmxlbmd0aCAtIDFdID09PSAiXG4iID8gc3RyaW5nLnNsaWNlKDAsIC0xKSA6IHN0cmluZzsKfQpmdW5jdGlvbiBmb2xkU3RyaW5nKHN0cmluZywgd2lkdGgpIHsKICB2YXIgbGluZVJlID0gLyhcbispKFteXG5dKikvZzsKICB2YXIgcmVzdWx0ID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbmV4dExGID0gc3RyaW5nLmluZGV4T2YoIlxuIik7CiAgICBuZXh0TEYgPSBuZXh0TEYgIT09IC0xID8gbmV4dExGIDogc3RyaW5nLmxlbmd0aDsKICAgIGxpbmVSZS5sYXN0SW5kZXggPSBuZXh0TEY7CiAgICByZXR1cm4gZm9sZExpbmUoc3RyaW5nLnNsaWNlKDAsIG5leHRMRiksIHdpZHRoKTsKICB9KCk7CiAgdmFyIHByZXZNb3JlSW5kZW50ZWQgPSBzdHJpbmdbMF0gPT09ICJcbiIgfHwgc3RyaW5nWzBdID09PSAiICI7CiAgdmFyIG1vcmVJbmRlbnRlZDsKICB2YXIgbWF0Y2g7CiAgd2hpbGUgKG1hdGNoID0gbGluZVJlLmV4ZWMoc3RyaW5nKSkgewogICAgdmFyIHByZWZpeCA9IG1hdGNoWzFdLCBsaW5lID0gbWF0Y2hbMl07CiAgICBtb3JlSW5kZW50ZWQgPSBsaW5lWzBdID09PSAiICI7CiAgICByZXN1bHQgKz0gcHJlZml4ICsgKCFwcmV2TW9yZUluZGVudGVkICYmICFtb3JlSW5kZW50ZWQgJiYgbGluZSAhPT0gIiIgPyAiXG4iIDogIiIpICsgZm9sZExpbmUobGluZSwgd2lkdGgpOwogICAgcHJldk1vcmVJbmRlbnRlZCA9IG1vcmVJbmRlbnRlZDsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiBmb2xkTGluZShsaW5lLCB3aWR0aCkgewogIGlmIChsaW5lID09PSAiIiB8fCBsaW5lWzBdID09PSAiICIpIHJldHVybiBsaW5lOwogIHZhciBicmVha1JlID0gLyBbXiBdL2c7CiAgdmFyIG1hdGNoOwogIHZhciBzdGFydCA9IDAsIGVuZCwgY3VyciA9IDAsIG5leHQgPSAwOwogIHZhciByZXN1bHQgPSAiIjsKICB3aGlsZSAobWF0Y2ggPSBicmVha1JlLmV4ZWMobGluZSkpIHsKICAgIG5leHQgPSBtYXRjaC5pbmRleDsKICAgIGlmIChuZXh0IC0gc3RhcnQgPiB3aWR0aCkgewogICAgICBlbmQgPSBjdXJyID4gc3RhcnQgPyBjdXJyIDogbmV4dDsKICAgICAgcmVzdWx0ICs9ICJcbiIgKyBsaW5lLnNsaWNlKHN0YXJ0LCBlbmQpOwogICAgICBzdGFydCA9IGVuZCArIDE7CiAgICB9CiAgICBjdXJyID0gbmV4dDsKICB9CiAgcmVzdWx0ICs9ICJcbiI7CiAgaWYgKGxpbmUubGVuZ3RoIC0gc3RhcnQgPiB3aWR0aCAmJiBjdXJyID4gc3RhcnQpIHsKICAgIHJlc3VsdCArPSBsaW5lLnNsaWNlKHN0YXJ0LCBjdXJyKSArICJcbiIgKyBsaW5lLnNsaWNlKGN1cnIgKyAxKTsKICB9IGVsc2UgewogICAgcmVzdWx0ICs9IGxpbmUuc2xpY2Uoc3RhcnQpOwogIH0KICByZXR1cm4gcmVzdWx0LnNsaWNlKDEpOwp9CmZ1bmN0aW9uIGVzY2FwZVN0cmluZyhzdHJpbmcpIHsKICB2YXIgcmVzdWx0ID0gIiI7CiAgdmFyIGNoYXIgPSAwOwogIHZhciBlc2NhcGVTZXE7CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHJpbmcubGVuZ3RoOyBjaGFyID49IDY1NTM2ID8gaSArPSAyIDogaSsrKSB7CiAgICBjaGFyID0gY29kZVBvaW50QXQoc3RyaW5nLCBpKTsKICAgIGVzY2FwZVNlcSA9IEVTQ0FQRV9TRVFVRU5DRVNbY2hhcl07CiAgICBpZiAoIWVzY2FwZVNlcSAmJiBpc1ByaW50YWJsZShjaGFyKSkgewogICAgICByZXN1bHQgKz0gc3RyaW5nW2ldOwogICAgICBpZiAoY2hhciA+PSA2NTUzNikgcmVzdWx0ICs9IHN0cmluZ1tpICsgMV07CiAgICB9IGVsc2UgewogICAgICByZXN1bHQgKz0gZXNjYXBlU2VxIHx8IGVuY29kZUhleChjaGFyKTsKICAgIH0KICB9CiAgcmV0dXJuIHJlc3VsdDsKfQpmdW5jdGlvbiB3cml0ZUZsb3dTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIG9iamVjdCkgewogIHZhciBfcmVzdWx0ID0gIiIsIF90YWcgPSBzdGF0ZS50YWcsIGluZGV4LCBsZW5ndGgsIHZhbHVlOwogIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdmFsdWUgPSBvYmplY3RbaW5kZXhdOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIHZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIFN0cmluZyhpbmRleCksIHZhbHVlKTsKICAgIH0KICAgIGlmICh3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCB2YWx1ZSwgZmFsc2UsIGZhbHNlKSB8fCB0eXBlb2YgdmFsdWUgPT09ICJ1bmRlZmluZWQiICYmIHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwsIG51bGwsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgaWYgKF9yZXN1bHQgIT09ICIiKSBfcmVzdWx0ICs9ICIsIiArICghc3RhdGUuY29uZGVuc2VGbG93ID8gIiAiIDogIiIpOwogICAgICBfcmVzdWx0ICs9IHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJbIiArIF9yZXN1bHQgKyAiXSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja1NlcXVlbmNlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBjb21wYWN0KSB7CiAgdmFyIF9yZXN1bHQgPSAiIiwgX3RhZyA9IHN0YXRlLnRhZywgaW5kZXgsIGxlbmd0aCwgdmFsdWU7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICB2YWx1ZSA9IG9iamVjdFtpbmRleF07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgdmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgU3RyaW5nKGluZGV4KSwgdmFsdWUpOwogICAgfQogICAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCB2YWx1ZSwgdHJ1ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpIHx8IHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCIgJiYgd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCArIDEsIG51bGwsIHRydWUsIHRydWUsIGZhbHNlLCB0cnVlKSkgewogICAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgICBfcmVzdWx0ICs9IGdlbmVyYXRlTmV4dExpbmUoc3RhdGUsIGxldmVsKTsKICAgICAgfQogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgX3Jlc3VsdCArPSAiLSAiOwogICAgICB9CiAgICAgIF9yZXN1bHQgKz0gc3RhdGUuZHVtcDsKICAgIH0KICB9CiAgc3RhdGUudGFnID0gX3RhZzsKICBzdGF0ZS5kdW1wID0gX3Jlc3VsdCB8fCAiW10iOwp9CmZ1bmN0aW9uIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgcGFpckJ1ZmZlcjsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoX3Jlc3VsdCAhPT0gIiIpIHBhaXJCdWZmZXIgKz0gIiwgIjsKICAgIGlmIChzdGF0ZS5jb25kZW5zZUZsb3cpIHBhaXJCdWZmZXIgKz0gJyInOwogICAgb2JqZWN0S2V5ID0gb2JqZWN0S2V5TGlzdFtpbmRleF07CiAgICBvYmplY3RWYWx1ZSA9IG9iamVjdFtvYmplY3RLZXldOwogICAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICAgIG9iamVjdFZhbHVlID0gc3RhdGUucmVwbGFjZXIuY2FsbChvYmplY3QsIG9iamVjdEtleSwgb2JqZWN0VmFsdWUpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsLCBvYmplY3RLZXksIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0KSBwYWlyQnVmZmVyICs9ICI/ICI7CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXAgKyAoc3RhdGUuY29uZGVuc2VGbG93ID8gJyInIDogIiIpICsgIjoiICsgKHN0YXRlLmNvbmRlbnNlRmxvdyA/ICIiIDogIiAiKTsKICAgIGlmICghd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0VmFsdWUsIGZhbHNlLCBmYWxzZSkpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBfcmVzdWx0ICs9IHBhaXJCdWZmZXI7CiAgfQogIHN0YXRlLnRhZyA9IF90YWc7CiAgc3RhdGUuZHVtcCA9ICJ7IiArIF9yZXN1bHQgKyAifSI7Cn0KZnVuY3Rpb24gd3JpdGVCbG9ja01hcHBpbmcoc3RhdGUsIGxldmVsLCBvYmplY3QsIGNvbXBhY3QpIHsKICB2YXIgX3Jlc3VsdCA9ICIiLCBfdGFnID0gc3RhdGUudGFnLCBvYmplY3RLZXlMaXN0ID0gT2JqZWN0LmtleXMob2JqZWN0KSwgaW5kZXgsIGxlbmd0aCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSwgZXhwbGljaXRQYWlyLCBwYWlyQnVmZmVyOwogIGlmIChzdGF0ZS5zb3J0S2V5cyA9PT0gdHJ1ZSkgewogICAgb2JqZWN0S2V5TGlzdC5zb3J0KCk7CiAgfSBlbHNlIGlmICh0eXBlb2Ygc3RhdGUuc29ydEtleXMgPT09ICJmdW5jdGlvbiIpIHsKICAgIG9iamVjdEtleUxpc3Quc29ydChzdGF0ZS5zb3J0S2V5cyk7CiAgfSBlbHNlIGlmIChzdGF0ZS5zb3J0S2V5cykgewogICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigic29ydEtleXMgbXVzdCBiZSBhIGJvb2xlYW4gb3IgYSBmdW5jdGlvbiIpOwogIH0KICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gb2JqZWN0S2V5TGlzdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICBwYWlyQnVmZmVyID0gIiI7CiAgICBpZiAoIWNvbXBhY3QgfHwgX3Jlc3VsdCAhPT0gIiIpIHsKICAgICAgcGFpckJ1ZmZlciArPSBnZW5lcmF0ZU5leHRMaW5lKHN0YXRlLCBsZXZlbCk7CiAgICB9CiAgICBvYmplY3RLZXkgPSBvYmplY3RLZXlMaXN0W2luZGV4XTsKICAgIG9iamVjdFZhbHVlID0gb2JqZWN0W29iamVjdEtleV07CiAgICBpZiAoc3RhdGUucmVwbGFjZXIpIHsKICAgICAgb2JqZWN0VmFsdWUgPSBzdGF0ZS5yZXBsYWNlci5jYWxsKG9iamVjdCwgb2JqZWN0S2V5LCBvYmplY3RWYWx1ZSk7CiAgICB9CiAgICBpZiAoIXdyaXRlTm9kZShzdGF0ZSwgbGV2ZWwgKyAxLCBvYmplY3RLZXksIHRydWUsIHRydWUsIHRydWUpKSB7CiAgICAgIGNvbnRpbnVlOwogICAgfQogICAgZXhwbGljaXRQYWlyID0gc3RhdGUudGFnICE9PSBudWxsICYmIHN0YXRlLnRhZyAhPT0gIj8iIHx8IHN0YXRlLmR1bXAgJiYgc3RhdGUuZHVtcC5sZW5ndGggPiAxMDI0OwogICAgaWYgKGV4cGxpY2l0UGFpcikgewogICAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyI7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgcGFpckJ1ZmZlciArPSAiPyAiOwogICAgICB9CiAgICB9CiAgICBwYWlyQnVmZmVyICs9IHN0YXRlLmR1bXA7CiAgICBpZiAoZXhwbGljaXRQYWlyKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gZ2VuZXJhdGVOZXh0TGluZShzdGF0ZSwgbGV2ZWwpOwogICAgfQogICAgaWYgKCF3cml0ZU5vZGUoc3RhdGUsIGxldmVsICsgMSwgb2JqZWN0VmFsdWUsIHRydWUsIGV4cGxpY2l0UGFpcikpIHsKICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoc3RhdGUuZHVtcCAmJiBDSEFSX0xJTkVfRkVFRCA9PT0gc3RhdGUuZHVtcC5jaGFyQ29kZUF0KDApKSB7CiAgICAgIHBhaXJCdWZmZXIgKz0gIjoiOwogICAgfSBlbHNlIHsKICAgICAgcGFpckJ1ZmZlciArPSAiOiAiOwogICAgfQogICAgcGFpckJ1ZmZlciArPSBzdGF0ZS5kdW1wOwogICAgX3Jlc3VsdCArPSBwYWlyQnVmZmVyOwogIH0KICBzdGF0ZS50YWcgPSBfdGFnOwogIHN0YXRlLmR1bXAgPSBfcmVzdWx0IHx8ICJ7fSI7Cn0KZnVuY3Rpb24gZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCBleHBsaWNpdCkgewogIHZhciBfcmVzdWx0LCB0eXBlTGlzdCwgaW5kZXgsIGxlbmd0aCwgdHlwZTIsIHN0eWxlOwogIHR5cGVMaXN0ID0gZXhwbGljaXQgPyBzdGF0ZS5leHBsaWNpdFR5cGVzIDogc3RhdGUuaW1wbGljaXRUeXBlczsKICBmb3IgKGluZGV4ID0gMCwgbGVuZ3RoID0gdHlwZUxpc3QubGVuZ3RoOyBpbmRleCA8IGxlbmd0aDsgaW5kZXggKz0gMSkgewogICAgdHlwZTIgPSB0eXBlTGlzdFtpbmRleF07CiAgICBpZiAoKHR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZTIucHJlZGljYXRlKSAmJiAoIXR5cGUyLmluc3RhbmNlT2YgfHwgdHlwZW9mIG9iamVjdCA9PT0gIm9iamVjdCIgJiYgb2JqZWN0IGluc3RhbmNlb2YgdHlwZTIuaW5zdGFuY2VPZikgJiYgKCF0eXBlMi5wcmVkaWNhdGUgfHwgdHlwZTIucHJlZGljYXRlKG9iamVjdCkpKSB7CiAgICAgIGlmIChleHBsaWNpdCkgewogICAgICAgIGlmICh0eXBlMi5tdWx0aSAmJiB0eXBlMi5yZXByZXNlbnROYW1lKSB7CiAgICAgICAgICBzdGF0ZS50YWcgPSB0eXBlMi5yZXByZXNlbnROYW1lKG9iamVjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHN0YXRlLnRhZyA9IHR5cGUyLnRhZzsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgc3RhdGUudGFnID0gIj8iOwogICAgICB9CiAgICAgIGlmICh0eXBlMi5yZXByZXNlbnQpIHsKICAgICAgICBzdHlsZSA9IHN0YXRlLnN0eWxlTWFwW3R5cGUyLnRhZ10gfHwgdHlwZTIuZGVmYXVsdFN0eWxlOwogICAgICAgIGlmIChfdG9TdHJpbmcuY2FsbCh0eXBlMi5yZXByZXNlbnQpID09PSAiW29iamVjdCBGdW5jdGlvbl0iKSB7CiAgICAgICAgICBfcmVzdWx0ID0gdHlwZTIucmVwcmVzZW50KG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSBpZiAoX2hhc093blByb3BlcnR5LmNhbGwodHlwZTIucmVwcmVzZW50LCBzdHlsZSkpIHsKICAgICAgICAgIF9yZXN1bHQgPSB0eXBlMi5yZXByZXNlbnRbc3R5bGVdKG9iamVjdCwgc3R5bGUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aHJvdyBuZXcgZXhjZXB0aW9uKCIhPCIgKyB0eXBlMi50YWcgKyAnPiB0YWcgcmVzb2x2ZXIgYWNjZXB0cyBub3QgIicgKyBzdHlsZSArICciIHN0eWxlJyk7CiAgICAgICAgfQogICAgICAgIHN0YXRlLmR1bXAgPSBfcmVzdWx0OwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfQogIH0KICByZXR1cm4gZmFsc2U7Cn0KZnVuY3Rpb24gd3JpdGVOb2RlKHN0YXRlLCBsZXZlbCwgb2JqZWN0LCBibG9jaywgY29tcGFjdCwgaXNrZXksIGlzYmxvY2tzZXEpIHsKICBzdGF0ZS50YWcgPSBudWxsOwogIHN0YXRlLmR1bXAgPSBvYmplY3Q7CiAgaWYgKCFkZXRlY3RUeXBlKHN0YXRlLCBvYmplY3QsIGZhbHNlKSkgewogICAgZGV0ZWN0VHlwZShzdGF0ZSwgb2JqZWN0LCB0cnVlKTsKICB9CiAgdmFyIHR5cGUyID0gX3RvU3RyaW5nLmNhbGwoc3RhdGUuZHVtcCk7CiAgdmFyIGluYmxvY2sgPSBibG9jazsKICB2YXIgdGFnU3RyOwogIGlmIChibG9jaykgewogICAgYmxvY2sgPSBzdGF0ZS5mbG93TGV2ZWwgPCAwIHx8IHN0YXRlLmZsb3dMZXZlbCA+IGxldmVsOwogIH0KICB2YXIgb2JqZWN0T3JBcnJheSA9IHR5cGUyID09PSAiW29iamVjdCBPYmplY3RdIiB8fCB0eXBlMiA9PT0gIltvYmplY3QgQXJyYXldIiwgZHVwbGljYXRlSW5kZXgsIGR1cGxpY2F0ZTsKICBpZiAob2JqZWN0T3JBcnJheSkgewogICAgZHVwbGljYXRlSW5kZXggPSBzdGF0ZS5kdXBsaWNhdGVzLmluZGV4T2Yob2JqZWN0KTsKICAgIGR1cGxpY2F0ZSA9IGR1cGxpY2F0ZUluZGV4ICE9PSAtMTsKICB9CiAgaWYgKHN0YXRlLnRhZyAhPT0gbnVsbCAmJiBzdGF0ZS50YWcgIT09ICI/IiB8fCBkdXBsaWNhdGUgfHwgc3RhdGUuaW5kZW50ICE9PSAyICYmIGxldmVsID4gMCkgewogICAgY29tcGFjdCA9IGZhbHNlOwogIH0KICBpZiAoZHVwbGljYXRlICYmIHN0YXRlLnVzZWREdXBsaWNhdGVzW2R1cGxpY2F0ZUluZGV4XSkgewogICAgc3RhdGUuZHVtcCA9ICIqcmVmXyIgKyBkdXBsaWNhdGVJbmRleDsKICB9IGVsc2UgewogICAgaWYgKG9iamVjdE9yQXJyYXkgJiYgZHVwbGljYXRlICYmICFzdGF0ZS51c2VkRHVwbGljYXRlc1tkdXBsaWNhdGVJbmRleF0pIHsKICAgICAgc3RhdGUudXNlZER1cGxpY2F0ZXNbZHVwbGljYXRlSW5kZXhdID0gdHJ1ZTsKICAgIH0KICAgIGlmICh0eXBlMiA9PT0gIltvYmplY3QgT2JqZWN0XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIE9iamVjdC5rZXlzKHN0YXRlLmR1bXApLmxlbmd0aCAhPT0gMCkgewogICAgICAgIHdyaXRlQmxvY2tNYXBwaW5nKHN0YXRlLCBsZXZlbCwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgaWYgKGR1cGxpY2F0ZSkgewogICAgICAgICAgc3RhdGUuZHVtcCA9ICImcmVmXyIgKyBkdXBsaWNhdGVJbmRleCArIHN0YXRlLmR1bXA7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHdyaXRlRmxvd01hcHBpbmcoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IEFycmF5XSIpIHsKICAgICAgaWYgKGJsb2NrICYmIHN0YXRlLmR1bXAubGVuZ3RoICE9PSAwKSB7CiAgICAgICAgaWYgKHN0YXRlLm5vQXJyYXlJbmRlbnQgJiYgIWlzYmxvY2tzZXEgJiYgbGV2ZWwgPiAwKSB7CiAgICAgICAgICB3cml0ZUJsb2NrU2VxdWVuY2Uoc3RhdGUsIGxldmVsIC0gMSwgc3RhdGUuZHVtcCwgY29tcGFjdCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHdyaXRlQmxvY2tTZXF1ZW5jZShzdGF0ZSwgbGV2ZWwsIHN0YXRlLmR1bXAsIGNvbXBhY3QpOwogICAgICAgIH0KICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgd3JpdGVGbG93U2VxdWVuY2Uoc3RhdGUsIGxldmVsLCBzdGF0ZS5kdW1wKTsKICAgICAgICBpZiAoZHVwbGljYXRlKSB7CiAgICAgICAgICBzdGF0ZS5kdW1wID0gIiZyZWZfIiArIGR1cGxpY2F0ZUluZGV4ICsgIiAiICsgc3RhdGUuZHVtcDsKICAgICAgICB9CiAgICAgIH0KICAgIH0gZWxzZSBpZiAodHlwZTIgPT09ICJbb2JqZWN0IFN0cmluZ10iKSB7CiAgICAgIGlmIChzdGF0ZS50YWcgIT09ICI/IikgewogICAgICAgIHdyaXRlU2NhbGFyKHN0YXRlLCBzdGF0ZS5kdW1wLCBsZXZlbCwgaXNrZXksIGluYmxvY2spOwogICAgICB9CiAgICB9IGVsc2UgaWYgKHR5cGUyID09PSAiW29iamVjdCBVbmRlZmluZWRdIikgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9IGVsc2UgewogICAgICBpZiAoc3RhdGUuc2tpcEludmFsaWQpIHJldHVybiBmYWxzZTsKICAgICAgdGhyb3cgbmV3IGV4Y2VwdGlvbigidW5hY2NlcHRhYmxlIGtpbmQgb2YgYW4gb2JqZWN0IHRvIGR1bXAgIiArIHR5cGUyKTsKICAgIH0KICAgIGlmIChzdGF0ZS50YWcgIT09IG51bGwgJiYgc3RhdGUudGFnICE9PSAiPyIpIHsKICAgICAgdGFnU3RyID0gZW5jb2RlVVJJKAogICAgICAgIHN0YXRlLnRhZ1swXSA9PT0gIiEiID8gc3RhdGUudGFnLnNsaWNlKDEpIDogc3RhdGUudGFnCiAgICAgICkucmVwbGFjZSgvIS9nLCAiJTIxIik7CiAgICAgIGlmIChzdGF0ZS50YWdbMF0gPT09ICIhIikgewogICAgICAgIHRhZ1N0ciA9ICIhIiArIHRhZ1N0cjsKICAgICAgfSBlbHNlIGlmICh0YWdTdHIuc2xpY2UoMCwgMTgpID09PSAidGFnOnlhbWwub3JnLDIwMDI6IikgewogICAgICAgIHRhZ1N0ciA9ICIhISIgKyB0YWdTdHIuc2xpY2UoMTgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRhZ1N0ciA9ICIhPCIgKyB0YWdTdHIgKyAiPiI7CiAgICAgIH0KICAgICAgc3RhdGUuZHVtcCA9IHRhZ1N0ciArICIgIiArIHN0YXRlLmR1bXA7CiAgICB9CiAgfQogIHJldHVybiB0cnVlOwp9CmZ1bmN0aW9uIGdldER1cGxpY2F0ZVJlZmVyZW5jZXMob2JqZWN0LCBzdGF0ZSkgewogIHZhciBvYmplY3RzID0gW10sIGR1cGxpY2F0ZXNJbmRleGVzID0gW10sIGluZGV4LCBsZW5ndGg7CiAgaW5zcGVjdE5vZGUob2JqZWN0LCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IGR1cGxpY2F0ZXNJbmRleGVzLmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgIHN0YXRlLmR1cGxpY2F0ZXMucHVzaChvYmplY3RzW2R1cGxpY2F0ZXNJbmRleGVzW2luZGV4XV0pOwogIH0KICBzdGF0ZS51c2VkRHVwbGljYXRlcyA9IG5ldyBBcnJheShsZW5ndGgpOwp9CmZ1bmN0aW9uIGluc3BlY3ROb2RlKG9iamVjdCwgb2JqZWN0cywgZHVwbGljYXRlc0luZGV4ZXMpIHsKICB2YXIgb2JqZWN0S2V5TGlzdCwgaW5kZXgsIGxlbmd0aDsKICBpZiAob2JqZWN0ICE9PSBudWxsICYmIHR5cGVvZiBvYmplY3QgPT09ICJvYmplY3QiKSB7CiAgICBpbmRleCA9IG9iamVjdHMuaW5kZXhPZihvYmplY3QpOwogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICBpZiAoZHVwbGljYXRlc0luZGV4ZXMuaW5kZXhPZihpbmRleCkgPT09IC0xKSB7CiAgICAgICAgZHVwbGljYXRlc0luZGV4ZXMucHVzaChpbmRleCk7CiAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgIG9iamVjdHMucHVzaChvYmplY3QpOwogICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7CiAgICAgICAgZm9yIChpbmRleCA9IDAsIGxlbmd0aCA9IG9iamVjdC5sZW5ndGg7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCArPSAxKSB7CiAgICAgICAgICBpbnNwZWN0Tm9kZShvYmplY3RbaW5kZXhdLCBvYmplY3RzLCBkdXBsaWNhdGVzSW5kZXhlcyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIG9iamVjdEtleUxpc3QgPSBPYmplY3Qua2V5cyhvYmplY3QpOwogICAgICAgIGZvciAoaW5kZXggPSAwLCBsZW5ndGggPSBvYmplY3RLZXlMaXN0Lmxlbmd0aDsgaW5kZXggPCBsZW5ndGg7IGluZGV4ICs9IDEpIHsKICAgICAgICAgIGluc3BlY3ROb2RlKG9iamVjdFtvYmplY3RLZXlMaXN0W2luZGV4XV0sIG9iamVjdHMsIGR1cGxpY2F0ZXNJbmRleGVzKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9Cn0KZnVuY3Rpb24gZHVtcCQxKGlucHV0LCBvcHRpb25zKSB7CiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307CiAgdmFyIHN0YXRlID0gbmV3IFN0YXRlKG9wdGlvbnMpOwogIGlmICghc3RhdGUubm9SZWZzKSBnZXREdXBsaWNhdGVSZWZlcmVuY2VzKGlucHV0LCBzdGF0ZSk7CiAgdmFyIHZhbHVlID0gaW5wdXQ7CiAgaWYgKHN0YXRlLnJlcGxhY2VyKSB7CiAgICB2YWx1ZSA9IHN0YXRlLnJlcGxhY2VyLmNhbGwoeyAiIjogdmFsdWUgfSwgIiIsIHZhbHVlKTsKICB9CiAgaWYgKHdyaXRlTm9kZShzdGF0ZSwgMCwgdmFsdWUsIHRydWUsIHRydWUpKSByZXR1cm4gc3RhdGUuZHVtcCArICJcbiI7CiAgcmV0dXJuICIiOwp9CnZhciBkdW1wXzEgPSBkdW1wJDE7CnZhciBkdW1wZXIgPSB7CiAgZHVtcDogZHVtcF8xCn07CmZ1bmN0aW9uIHJlbmFtZWQoZnJvbSwgdG8pIHsKICByZXR1cm4gZnVuY3Rpb24oKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkZ1bmN0aW9uIHlhbWwuIiArIGZyb20gKyAiIGlzIHJlbW92ZWQgaW4ganMteWFtbCA0LiBVc2UgeWFtbC4iICsgdG8gKyAiIGluc3RlYWQsIHdoaWNoIGlzIG5vdyBzYWZlIGJ5IGRlZmF1bHQuIik7CiAgfTsKfQp2YXIgbG9hZCA9IGxvYWRlci5sb2FkOwp2YXIgbG9hZEFsbCA9IGxvYWRlci5sb2FkQWxsOwp2YXIgZHVtcCA9IGR1bXBlci5kdW1wOwp2YXIgc2FmZUxvYWQgPSByZW5hbWVkKCJzYWZlTG9hZCIsICJsb2FkIik7CnZhciBzYWZlTG9hZEFsbCA9IHJlbmFtZWQoInNhZmVMb2FkQWxsIiwgImxvYWRBbGwiKTsKdmFyIHNhZmVEdW1wID0gcmVuYW1lZCgic2FmZUR1bXAiLCAiZHVtcCIpOwoKLy8gc3JjL3NjaGVtYXRpYy9wcm9qZWN0L3Byb2plY3QuZmFjdG9yeS50cwp2YXIgR0lUSUdOT1JFX1BBVEggPSAiLmdpdGlnbm9yZSI7CnZhciBjYXB0dXJlR2l0SWdub3JlQ29udGVudFJ1bGUgPSAoc3RhdGUpID0+IChob3N0KSA9PiB7CiAgY29uc3QgZ2l0SWdub3JlQnVmZmVyID0gaG9zdC5yZWFkKEdJVElHTk9SRV9QQVRIKTsKICBpZiAoIWdpdElnbm9yZUJ1ZmZlcikgewogICAgcmV0dXJuIGhvc3Q7CiAgfQogIHN0YXRlLmNvbnRlbnQgPSBnaXRJZ25vcmVCdWZmZXIudG9TdHJpbmcoInV0Zi04Iik7CiAgcmV0dXJuIGhvc3Q7Cn07CnZhciBtZXJnZUdpdElnbm9yZUNvbnRlbnRSdWxlID0gKHN0YXRlKSA9PiAoaG9zdCwgY29udGV4dCkgPT4gewogIGlmIChzdGF0ZS5jb250ZW50ID09PSB2b2lkIDApIHsKICAgIHJldHVybiBob3N0OwogIH0KICBjb25zdCBnaXRJZ25vcmVCdWZmZXIgPSBob3N0LnJlYWQoR0lUSUdOT1JFX1BBVEgpOwogIGlmICghZ2l0SWdub3JlQnVmZmVyKSB7CiAgICByZXR1cm4gaG9zdDsKICB9CiAgY29uc3QgdGVtcGxhdGVDb250ZW50ID0gZ2l0SWdub3JlQnVmZmVyLnRvU3RyaW5nKCJ1dGYtOCIpOwogIGNvbnN0IG1lcmdlZENvbnRlbnQgPSBtZXJnZUdpdElnbm9yZUNvbnRlbnQoewogICAgZXhpc3RpbmdDb250ZW50OiBzdGF0ZS5jb250ZW50LAogICAgdGVtcGxhdGVDb250ZW50CiAgfSk7CiAgaWYgKG1lcmdlZENvbnRlbnQgIT09IHRlbXBsYXRlQ29udGVudCkgewogICAgY29udGV4dC5sb2dnZXIuaW5mbygiTWVyZ2luZyB0ZW1wbGF0ZSAuZ2l0aWdub3JlIHdpdGggcHJvamVjdC1zcGVjaWZpYyBlbnRyaWVzIik7CiAgICBob3N0Lm92ZXJ3cml0ZShHSVRJR05PUkVfUEFUSCwgbWVyZ2VkQ29udGVudCk7CiAgfQogIHJldHVybiBob3N0Owp9Owp2YXIgbWFpbiA9IChvcHRpb25zKSA9PiB7CiAgY29uc3Qgc3RhdGUgPSB7fTsKICByZXR1cm4gKDAsIGltcG9ydF9zY2hlbWF0aWNzMTAuY2hhaW4pKFsKICAgIGNhcHR1cmVHaXRJZ25vcmVDb250ZW50UnVsZShzdGF0ZSksCiAgICB1cGRhdGVUc0NvbmZpZ1J1bGUsCiAgICAoMCwgaW1wb3J0X3NjaGVtYXRpY3MxMS5tZXJnZVdpdGgpKGdlbmVyYXRlQ29tbW9uU291cmNlKG9wdGlvbnMpLCBpbXBvcnRfc2NoZW1hdGljczkuTWVyZ2VTdHJhdGVneS5PdmVyd3JpdGUpLAogICAgKDAsIGltcG9ydF9zY2hlbWF0aWNzMTEubWVyZ2VXaXRoKShnZW5lcmF0ZVByb2plY3RTcGVjaWZpY1NvdXJjZShvcHRpb25zKSwgaW1wb3J0X3NjaGVtYXRpY3M5Lk1lcmdlU3RyYXRlZ3kuT3ZlcndyaXRlKSwKICAgIG1lcmdlR2l0SWdub3JlQ29udGVudFJ1bGUoc3RhdGUpCiAgXSk7Cn07Ci8vIEFubm90YXRlIHRoZSBDb21tb25KUyBleHBvcnQgbmFtZXMgZm9yIEVTTSBpbXBvcnQgaW4gbm9kZToKMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7CiAgbWFpbgp9KTsKLyohIEJ1bmRsZWQgbGljZW5zZSBpbmZvcm1hdGlvbjoKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3V0aWxzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS91dGlsaXR5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS90cmFuc2Zvcm1zLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2pzb24vc2NoZW1hL3BvaW50ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2V4Y2VwdGlvbi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvbGl0ZXJhbHMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3N0cmluZ3MuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL29iamVjdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvdGVtcGxhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL3BhcnRpYWxseS1vcmRlcmVkLXNldC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdXRpbHMvcHJpb3JpdHktcXVldWUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2xhbmcuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3V0aWxzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS92aXNpdG9yLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9yZWdpc3RyeS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9zY2hlbWEvc2NoZW1hLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9qc29uL3NjaGVtYS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvanNvbi9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2luZGVudC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvbG9nZ2VyL2xldmVsLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvbnVsbC1sb2dnZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2xvZ2dlci90cmFuc2Zvcm0tbG9nZ2VyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy9sb2dnZXIvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9kZWZpbml0aW9ucy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9wYXRoLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvYnVmZmVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvbWVtb3J5LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc3luYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Rlc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9yZXNvbHZlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2FsaWFzLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvY3JlYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3ZpcnR1YWwtZnMvaG9zdC9wYXR0ZXJuLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3QvcmVjb3JkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2hvc3Qvc2FmZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L3Njb3BlZC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvdmlydHVhbC1mcy9ob3N0L2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy92aXJ0dWFsLWZzL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaG9zdC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vbWV0YWRhdGEuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9qc29uL3V0aWxpdGllcy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9zcmMvd29ya3NwYWNlL2pzb24vcmVhZGVyLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvanNvbi93cml0ZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL3dvcmtzcGFjZS9jb3JlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UvaW5kZXguanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9mb3JtYXRzL2h0bWwtc2VsZWN0b3IuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2Zvcm1hdHMvcGF0aC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZm9ybWF0cy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9pbnRlcmZhY2UuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2V4Y2VwdGlvbi9leGNlcHRpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZGVsZWdhdGUuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW50cnkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvcmVjb3JkZXIuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvc2NvcGVkLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy90cmVlL2hvc3QtdHJlZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9zdGF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvbnVsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvY2FsbC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL3NjaGVtYXRpYy5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2VuZ2luZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2ludGVyZmFjZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvZW5naW5lL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9jb3JlL25vZGUvY2xpLWxvZ2dlci5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlL2hvc3QuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZS9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvdHJlZS9hY3Rpb24uanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3Npbmsvc2luay5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvc2luay9ob3N0LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9zaW5rL2RyeXJ1bi5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvd29ya2Zsb3cvaW50ZXJmYWNlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy93b3JrZmxvdy9pbmRleC5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvYmFzZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvbW92ZS5qczoKICAoKioKICAgKiBAbGljZW5zZQogICAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICoKICAgKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQogICAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlCiAgICopCgpAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy9zcmMvcnVsZXMvcmFuZG9tLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy9zY2hlbWF0aWMuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3J1bGVzL3RlbXBsYXRlLmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCkBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3NyYy9ydWxlcy91cmwuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL3RyZWUvZW1wdHkuanM6CiAgKCoqCiAgICogQGxpY2Vuc2UKICAgKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLgogICAqCiAgICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKICAgKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZQogICAqKQoKQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3Mvc3JjL2luZGV4LmpzOgogICgqKgogICAqIEBsaWNlbnNlCiAgICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAgKgogICAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCiAgICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2UKICAgKikKCmpzLXlhbWwvZGlzdC9qcy15YW1sLm1qczoKICAoKiEganMteWFtbCA0LjEuMCBodHRwczovL2dpdGh1Yi5jb20vbm9kZWNhL2pzLXlhbWwgQGxpY2Vuc2UgTUlUICopCiovCg==",cis=async e=>{let t=Buffer.from(pAl,"base64").toString("utf-8");await(await import("fs/promises")).writeFile(e,t)};var lis=async e=>{let{writeFiles:t}=await import("@atls/code-runtime");await t(e);let r=pYr.ppath.join(e,"project");await fAl(r,{recursive:!0}),await cis(pYr.ppath.join(r,"project.factory.cjs")),console.info("All Schematic files writed to the tmp!")};var B_e=Nt(no(),1),kkt=Nt(no(),1),uis=async e=>{let t=process.cwd();await kkt.xfs.copyFilePromise(B_e.ppath.join(t,".pnp.cjs"),B_e.ppath.join(e,".pnp.cjs")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"package.json"),B_e.ppath.join(e,"package.json")),await kkt.xfs.symlinkPromise(B_e.ppath.join(t,"runtime"),B_e.ppath.join(e,"runtime"))};var dis=async e=>async r=>{try{let n=await Ais.xfs.mktempPromise(),a=gis.ppath.join(n,"collection.json");await lis(n),await uis(n),await ais("project",e,a)}catch(n){console.error(n)}};var xkt=class extends pis.BaseCommand{static paths=[["generate","project"]];type=Su.String("-t,--type","project");async execute(){let t=await fis.Configuration.find(this.context.cwd,this.context.plugins),r=["libraries","project"];if(!r.includes(this.type))throw new Error(`Allowed only ${r.join(", ")} types`);let n={type:this.type,cwd:process.cwd()},a=aji(this,t),o=await dis(n);return(await Iis.StreamReport.start(a,o)).exitCode()}};var his={commands:[xkt]};var gWl=Nt(Jls()),AWl=Nt($ls()),dWl=Nt(cus()),pWl=Nt(dus()),fWl=Nt(TGr()),IWl=Nt(Axt()),hWl=Nt(mus()),mWl=Nt(vus()),CWl=Nt(cgs()),_Wl=Nt(fgs()),yWl=Nt(Sgs()),bWl=Nt(Lgs()),EWl=Nt(nDe()),SWl=Nt(Hgs()),vWl=Nt(jgs()),BWl=Nt(rAs()),wWl=Nt(dAs()),TWl=Nt(Wds()),RWl=Nt(sJ()),NWl=Nt(p1s()),DWl=Nt($he()),kWl=Nt(Q1s()),xWl=Nt(mGe()),GWl=Nt(z1s()),FWl=Nt(s2s()),o2s=()=>({modules:new Map([["@yarnpkg/cli",iWl],["@yarnpkg/core",sWl],["@yarnpkg/fslib",oWl],["@yarnpkg/libzip",aWl],["@yarnpkg/parsers",cWl],["@yarnpkg/shell",lWl],["clipanion",rg],["semver",uWl],["typanion",mZ],["@atls/yarn-plugin-badges",opr],["@atls/yarn-plugin-changelog",Ufr],["@atls/yarn-plugin-check",Kfr],["@atls/yarn-plugin-checks",r1r],["@atls/yarn-plugin-cli-publish",i1r],["@atls/yarn-plugin-commit",TBr],["@atls/yarn-plugin-essentials",NBr],["@atls/yarn-plugin-export",nTr],["@atls/yarn-plugin-files",SEr],["@atls/yarn-plugin-format",kkr],["@atls/yarn-plugin-image",Jkr],["@atls/yarn-plugin-library",rxr],["@atls/yarn-plugin-lint",lxr],["@atls/yarn-plugin-release",MGr],["@atls/yarn-plugin-renderer",MFr],["@atls/yarn-plugin-service",hVr],["@atls/yarn-plugin-test",vVr],["@atls/yarn-plugin-tools",GVr],["@atls/yarn-plugin-typescript",PVr],["@atls/yarn-plugin-workspaces",FEr],["@atls/yarn-plugin-ui",rPr],["@atls/yarn-plugin-schematics",fYr],["@yarnpkg/plugin-interactive-tools",gWl],["@yarnpkg/plugin-jsr",AWl],["@yarnpkg/plugin-workspace-tools",dWl],["@yarnpkg/plugin-typescript",pWl],["@yarnpkg/plugin-version",fWl],["@yarnpkg/plugin-essentials",IWl],["@yarnpkg/plugin-catalog",hWl],["@yarnpkg/plugin-compat",mWl],["@yarnpkg/plugin-constraints",CWl],["@yarnpkg/plugin-dlx",_Wl],["@yarnpkg/plugin-exec",yWl],["@yarnpkg/plugin-file",bWl],["@yarnpkg/plugin-git",EWl],["@yarnpkg/plugin-github",SWl],["@yarnpkg/plugin-http",vWl],["@yarnpkg/plugin-init",BWl],["@yarnpkg/plugin-link",wWl],["@yarnpkg/plugin-nm",TWl],["@yarnpkg/plugin-npm",RWl],["@yarnpkg/plugin-npm-cli",NWl],["@yarnpkg/plugin-pack",DWl],["@yarnpkg/plugin-patch",kWl],["@yarnpkg/plugin-pnp",xWl],["@yarnpkg/plugin-pnpm",GWl],["@yarnpkg/plugin-stage",FWl]]),plugins:new Set(["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"])});var a2s={name:"@atls/yarn-cli",version:"1.2.16-atls",private:!0,license:"BSD-3-Clause",type:"module",exports:{"./package.json":"./package.json",".":"./src/index.ts"},main:"src/index.ts",files:["dist"],scripts:{build:"yarn run build:schemaic && yarn run build:clean && yarn run build:version && yarn run build:bundle && yarn run build:fix && yarn run build:dist && yarn run build:version","build:bundle":"builder build bundle --no-git-hash && mv bundles/yarn.js bundles/yarn.mjs","build:clean":"rm -rf dist","build:dist":"mv bundles dist","build:fix":"yarn node patches/cli.patch.mjs","build:schemaic":"yarn workspace @atls/code-schematics prepack","build:version":"yarn node patches/version-postfix-toggle.mjs",fix:"yarn run build:fix",prepack:"yarn run build",postpack:"rm -rf dist"},dependencies:{"@atls/yarn-cli-tools":"workspace:*","@atls/yarn-plugin-badges":"workspace:*","@atls/yarn-plugin-changelog":"workspace:*","@atls/yarn-plugin-check":"workspace:*","@atls/yarn-plugin-checks":"workspace:*","@atls/yarn-plugin-cli-publish":"workspace:*","@atls/yarn-plugin-commit":"workspace:*","@atls/yarn-plugin-essentials":"workspace:*","@atls/yarn-plugin-export":"workspace:*","@atls/yarn-plugin-files":"workspace:*","@atls/yarn-plugin-format":"workspace:*","@atls/yarn-plugin-image":"workspace:*","@atls/yarn-plugin-library":"workspace:*","@atls/yarn-plugin-lint":"workspace:*","@atls/yarn-plugin-release":"workspace:*","@atls/yarn-plugin-renderer":"workspace:*","@atls/yarn-plugin-schematics":"workspace:*","@atls/yarn-plugin-service":"workspace:*","@atls/yarn-plugin-test":"workspace:*","@atls/yarn-plugin-tools":"workspace:*","@atls/yarn-plugin-typescript":"workspace:*","@atls/yarn-plugin-ui":"workspace:*","@atls/yarn-plugin-workspaces":"workspace:*","@yarnpkg/builder":"4.2.0","@yarnpkg/cli":"4.14.1","@yarnpkg/core":"4.7.0","@yarnpkg/fslib":"3.1.5","@yarnpkg/libzip":"3.2.2","@yarnpkg/parsers":"3.0.3","@yarnpkg/plugin-catalog":"1.0.2","@yarnpkg/plugin-compat":"4.0.12","@yarnpkg/plugin-constraints":"4.0.5","@yarnpkg/plugin-dlx":"4.0.2","@yarnpkg/plugin-essentials":"4.5.0","@yarnpkg/plugin-exec":"3.1.0","@yarnpkg/plugin-file":"3.0.2","@yarnpkg/plugin-git":"3.2.0","@yarnpkg/plugin-github":"3.0.2","@yarnpkg/plugin-http":"3.0.3","@yarnpkg/plugin-init":"4.1.2","@yarnpkg/plugin-interactive-tools":"4.1.0","@yarnpkg/plugin-jsr":"1.1.1","@yarnpkg/plugin-link":"3.0.2","@yarnpkg/plugin-nm":"4.0.8","@yarnpkg/plugin-npm":"3.5.0","@yarnpkg/plugin-npm-cli":"4.4.1","@yarnpkg/plugin-pack":"4.0.4","@yarnpkg/plugin-patch":"4.0.3","@yarnpkg/plugin-pnp":"4.1.5","@yarnpkg/plugin-pnpm":"2.1.2","@yarnpkg/plugin-stage":"4.0.2","@yarnpkg/plugin-typescript":"4.1.3","@yarnpkg/plugin-version":"4.2.0","@yarnpkg/plugin-workspace-tools":"4.1.7","@yarnpkg/shell":"4.1.3",clipanion:"4.0.0-rc.2",semver:"7.6.3",typanion:"3.14.0"},"@yarnpkg/builder":{bundles:{standard:["@atls/yarn-plugin-badges","@atls/yarn-plugin-changelog","@atls/yarn-plugin-check","@atls/yarn-plugin-checks","@atls/yarn-plugin-cli-publish","@atls/yarn-plugin-commit","@atls/yarn-plugin-essentials","@atls/yarn-plugin-export","@atls/yarn-plugin-files","@atls/yarn-plugin-format","@atls/yarn-plugin-image","@atls/yarn-plugin-library","@atls/yarn-plugin-lint","@atls/yarn-plugin-release","@atls/yarn-plugin-renderer","@atls/yarn-plugin-service","@atls/yarn-plugin-test","@atls/yarn-plugin-tools","@atls/yarn-plugin-typescript","@atls/yarn-plugin-workspaces","@atls/yarn-plugin-ui","@atls/yarn-plugin-schematics","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-jsr","@yarnpkg/plugin-workspace-tools","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-essentials","@yarnpkg/plugin-catalog","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage"]}},raijin:{pack:{exports:{"./package.json":"./package.json",".":{import:"./dist/index.js",types:"./dist/index.d.ts",default:"./dist/index.js"}},main:"dist/index.js",types:"dist/index.d.ts"}}};var c2s=Yqr.npath.toPortablePath(Yqr.npath.resolve(process.argv[1])),Mqr=o2s(a2s["@yarnpkg/builder"].bundles.standard);Mqr.then?Mqr.then(async e=>{(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:e})}):(0,Hqr.runExit)(process.argv.slice(2),{cwd:Qqr.ppath.cwd(),selfPath:c2s,pluginConfiguration:Mqr}); /*! Bundled license information: is-number/index.js: diff --git a/yarn/cli/package.json b/yarn/cli/package.json index a1ad2df81..9aefde208 100644 --- a/yarn/cli/package.json +++ b/yarn/cli/package.json @@ -84,19 +84,6 @@ "semver": "7.6.3", "typanion": "3.14.0" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" - }, "@yarnpkg/builder": { "bundles": { "standard": [ @@ -149,5 +136,19 @@ "@yarnpkg/plugin-stage" ] } + }, + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/pack-utils/package.json b/yarn/pack-utils/package.json index 675e96190..a782bad1b 100644 --- a/yarn/pack-utils/package.json +++ b/yarn/pack-utils/package.json @@ -24,17 +24,18 @@ "@yarnpkg/plugin-patch": "4.0.3", "tar-stream": "3.1.7" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-changelog/package.json b/yarn/plugin-changelog/package.json index 89608fdb7..bee94f48d 100644 --- a/yarn/plugin-changelog/package.json +++ b/yarn/plugin-changelog/package.json @@ -29,17 +29,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-check/package.json b/yarn/plugin-check/package.json index 82c34427a..42843fb24 100644 --- a/yarn/plugin-check/package.json +++ b/yarn/plugin-check/package.json @@ -25,17 +25,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-checks/package.json b/yarn/plugin-checks/package.json index e5afabd18..15c8076e7 100644 --- a/yarn/plugin-checks/package.json +++ b/yarn/plugin-checks/package.json @@ -50,17 +50,18 @@ "@yarnpkg/core": "*", "@yarnpkg/fslib": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-cli-publish/package.json b/yarn/plugin-cli-publish/package.json index acb232146..447a7d4e5 100644 --- a/yarn/plugin-cli-publish/package.json +++ b/yarn/plugin-cli-publish/package.json @@ -29,17 +29,18 @@ "@yarnpkg/core": "*", "@yarnpkg/fslib": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-commit/package.json b/yarn/plugin-commit/package.json index 185ffcc7d..d04f9ff91 100644 --- a/yarn/plugin-commit/package.json +++ b/yarn/plugin-commit/package.json @@ -41,17 +41,18 @@ "@yarnpkg/core": "*", "@yarnpkg/fslib": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-essentials/package.json b/yarn/plugin-essentials/package.json index 4deb32bb4..8357d6101 100644 --- a/yarn/plugin-essentials/package.json +++ b/yarn/plugin-essentials/package.json @@ -32,17 +32,18 @@ "@yarnpkg/core": "*", "@yarnpkg/plugin-git": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-export/package.json b/yarn/plugin-export/package.json index 72258da04..572a77835 100644 --- a/yarn/plugin-export/package.json +++ b/yarn/plugin-export/package.json @@ -32,17 +32,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-files/package.json b/yarn/plugin-files/package.json index cad15e8b4..dfca03c1a 100644 --- a/yarn/plugin-files/package.json +++ b/yarn/plugin-files/package.json @@ -30,17 +30,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-format/package.json b/yarn/plugin-format/package.json index 7be2c6372..e4d498a13 100644 --- a/yarn/plugin-format/package.json +++ b/yarn/plugin-format/package.json @@ -36,17 +36,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-image/package.json b/yarn/plugin-image/package.json index 9fbb2aeb2..0727ed874 100644 --- a/yarn/plugin-image/package.json +++ b/yarn/plugin-image/package.json @@ -35,17 +35,18 @@ "@yarnpkg/core": "*", "@yarnpkg/fslib": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-library/package.json b/yarn/plugin-library/package.json index 299a3007a..9678fea75 100644 --- a/yarn/plugin-library/package.json +++ b/yarn/plugin-library/package.json @@ -40,9 +40,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "main": "dist/index.js", - "typings": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-library/sources/before-workspace-packing.hook.ts b/yarn/plugin-library/sources/before-workspace-packing.hook.ts index a9702973d..81be77c54 100644 --- a/yarn/plugin-library/sources/before-workspace-packing.hook.ts +++ b/yarn/plugin-library/sources/before-workspace-packing.hook.ts @@ -1,19 +1,46 @@ import type { Workspace } from '@yarnpkg/core' +interface PackManifest { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + exports?: Record + main?: string + types?: string + typings?: string +} + +interface RaijinManifest { + pack?: PackManifest +} + export interface RawManifest { // eslint-disable-next-line @typescript-eslint/no-explicit-any exports?: Record + main?: string + types?: string + typings?: string - publishConfig?: { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - exports?: Record - } + publishConfig?: PackManifest + raijin?: RaijinManifest } -export const beforeWorkspacePacking = (_: Workspace, rawManifest: RawManifest): void => { - if (rawManifest.publishConfig) { - if (rawManifest.publishConfig.exports) { - rawManifest.exports = rawManifest.publishConfig.exports - } +const applyPackManifest = (rawManifest: RawManifest, packManifest?: PackManifest): void => { + if (!packManifest) { + return } + + if (packManifest.exports) rawManifest.exports = packManifest.exports + if (packManifest.main) rawManifest.main = packManifest.main + if (packManifest.types) rawManifest.types = packManifest.types + if (packManifest.typings) rawManifest.typings = packManifest.typings +} + +export const beforeWorkspacePacking = (workspace: Workspace, rawManifest: RawManifest): void => { + const isPrivateWorkspace = workspace.manifest.private + + applyPackManifest( + rawManifest, + isPrivateWorkspace ? rawManifest.raijin?.pack : rawManifest.publishConfig + ) + + delete rawManifest.raijin } diff --git a/yarn/plugin-library/sources/tests/before-workspace-packing.hook.test.ts b/yarn/plugin-library/sources/tests/before-workspace-packing.hook.test.ts new file mode 100644 index 000000000..3f15a4520 --- /dev/null +++ b/yarn/plugin-library/sources/tests/before-workspace-packing.hook.test.ts @@ -0,0 +1,108 @@ +import type { Workspace } from '@yarnpkg/core' + +import type { RawManifest } from '../before-workspace-packing.hook.js' + +import assert from 'node:assert/strict' +import { test } from 'node:test' + +import { beforeWorkspacePacking } from '../before-workspace-packing.hook.js' + +const createWorkspace = (isPrivate: boolean): Workspace => + ({ + manifest: { + private: isPrivate, + }, + }) as Workspace + +test('should apply raijin pack metadata for private workspaces', () => { + const manifest: RawManifest = { + exports: { + '.': './sources/index.ts', + }, + main: 'sources/index.ts', + raijin: { + pack: { + exports: { + '.': { + import: './dist/index.js', + types: './dist/index.d.ts', + default: './dist/index.js', + }, + }, + main: 'dist/index.js', + types: 'dist/index.d.ts', + }, + }, + } + + beforeWorkspacePacking(createWorkspace(true), manifest) + + assert.deepEqual(manifest, { + exports: { + '.': { + import: './dist/index.js', + types: './dist/index.d.ts', + default: './dist/index.js', + }, + }, + main: 'dist/index.js', + types: 'dist/index.d.ts', + }) +}) + +test('should keep publishConfig metadata for public workspaces', () => { + const manifest: RawManifest = { + exports: { + '.': './sources/index.ts', + }, + publishConfig: { + exports: { + '.': './dist/index.js', + }, + main: 'dist/index.js', + }, + } + + beforeWorkspacePacking(createWorkspace(false), manifest) + + assert.deepEqual(manifest, { + exports: { + '.': './dist/index.js', + }, + main: 'dist/index.js', + publishConfig: { + exports: { + '.': './dist/index.js', + }, + main: 'dist/index.js', + }, + }) +}) + +test('should ignore publishConfig metadata for private workspaces', () => { + const manifest: RawManifest = { + exports: { + '.': './sources/index.ts', + }, + publishConfig: { + exports: { + '.': './dist/index.js', + }, + main: 'dist/index.js', + }, + } + + beforeWorkspacePacking(createWorkspace(true), manifest) + + assert.deepEqual(manifest, { + exports: { + '.': './sources/index.ts', + }, + publishConfig: { + exports: { + '.': './dist/index.js', + }, + main: 'dist/index.js', + }, + }) +}) diff --git a/yarn/plugin-lint/package.json b/yarn/plugin-lint/package.json index 58fa6d9ed..6a668b5e8 100644 --- a/yarn/plugin-lint/package.json +++ b/yarn/plugin-lint/package.json @@ -39,17 +39,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-pnp-patch/package.json b/yarn/plugin-pnp-patch/package.json index a5c5a24c6..9a22e7c84 100644 --- a/yarn/plugin-pnp-patch/package.json +++ b/yarn/plugin-pnp-patch/package.json @@ -35,17 +35,18 @@ "rollup-plugin-esbuild": "6.1.1", "tslib": "2.7.0" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-release/package.json b/yarn/plugin-release/package.json index 7babfdbcb..e2f241e81 100644 --- a/yarn/plugin-release/package.json +++ b/yarn/plugin-release/package.json @@ -35,17 +35,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-renderer/package.json b/yarn/plugin-renderer/package.json index 956aaeed7..27c5294ac 100644 --- a/yarn/plugin-renderer/package.json +++ b/yarn/plugin-renderer/package.json @@ -35,17 +35,18 @@ "@yarnpkg/cli": "^4", "@yarnpkg/core": "^4" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-schematics/package.json b/yarn/plugin-schematics/package.json index bb848bc03..552219ea6 100644 --- a/yarn/plugin-schematics/package.json +++ b/yarn/plugin-schematics/package.json @@ -43,9 +43,18 @@ "ink": "*", "react": "*" }, - "publishConfig": { - "access": "public", - "main": "dist/index.js", - "typings": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-service/package.json b/yarn/plugin-service/package.json index cb0dcb2de..2800f83d3 100644 --- a/yarn/plugin-service/package.json +++ b/yarn/plugin-service/package.json @@ -41,17 +41,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-test/package.json b/yarn/plugin-test/package.json index b7996aaf5..8569e54f4 100644 --- a/yarn/plugin-test/package.json +++ b/yarn/plugin-test/package.json @@ -43,17 +43,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-tools/package.json b/yarn/plugin-tools/package.json index 79dd49992..f778a189a 100644 --- a/yarn/plugin-tools/package.json +++ b/yarn/plugin-tools/package.json @@ -33,22 +33,23 @@ "@yarnpkg/core": "4.7.0", "@yarnpkg/fslib": "3.1.5" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - "./current-yarn-executable": { - "import": "./dist/current-yarn-executable.js", - "types": "./dist/current-yarn-executable.d.ts", - "default": "./dist/current-yarn-executable.js" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + "./current-yarn-executable": { + "import": "./dist/current-yarn-executable.js", + "types": "./dist/current-yarn-executable.d.ts", + "default": "./dist/current-yarn-executable.js" + }, + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } }, - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-typescript/package.json b/yarn/plugin-typescript/package.json index cfeb01d64..09b3e76f4 100644 --- a/yarn/plugin-typescript/package.json +++ b/yarn/plugin-typescript/package.json @@ -41,9 +41,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "main": "dist/index.js", - "typings": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-ui/package.json b/yarn/plugin-ui/package.json index 56e457985..261dec835 100644 --- a/yarn/plugin-ui/package.json +++ b/yarn/plugin-ui/package.json @@ -39,17 +39,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } } diff --git a/yarn/plugin-workspaces/package.json b/yarn/plugin-workspaces/package.json index 50ea605fd..34dda4ffe 100644 --- a/yarn/plugin-workspaces/package.json +++ b/yarn/plugin-workspaces/package.json @@ -30,17 +30,18 @@ "@yarnpkg/cli": "*", "@yarnpkg/core": "*" }, - "publishConfig": { - "access": "public", - "exports": { - "./package.json": "./package.json", - ".": { - "import": "./dist/index.js", - "types": "./dist/index.d.ts", - "default": "./dist/index.js" - } - }, - "main": "dist/index.js", - "types": "dist/index.d.ts" + "raijin": { + "pack": { + "exports": { + "./package.json": "./package.json", + ".": { + "import": "./dist/index.js", + "types": "./dist/index.d.ts", + "default": "./dist/index.js" + } + }, + "main": "dist/index.js", + "types": "dist/index.d.ts" + } } }